summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--README.md108
-rw-r--r--docs/BSD3Clause.txt12
-rw-r--r--docs/release/BSD3Clause.txt12
-rw-r--r--docs/release/README.md47
-rw-r--r--docs/release/artwork/PMMMCabArtwork.zipbin0 -> 15543669 bytes
-rw-r--r--docs/release/artwork/monaco.zipbin0 -> 127575 bytes
-rw-r--r--docs/release/build/clean.bat11
-rw-r--r--docs/release/build/d.bat3
-rw-r--r--docs/release/build/make.bat13
-rw-r--r--docs/release/build/make32.bat12
-rw-r--r--docs/release/build/make64.bat14
-rw-r--r--docs/release/build/newsrc.bat51
-rw-r--r--docs/release/build/release.bat25
-rw-r--r--docs/release/build/update.bat6
-rw-r--r--docs/release/build/z.bat3
-rw-r--r--docs/release/cpanel/spatrol.pngbin0 -> 170565 bytes
-rw-r--r--docs/release/docs.rarbin0 -> 19118677 bytes
-rw-r--r--docs/release/docs/BSD3Clause.txt13
-rw-r--r--docs/release/docs/clean.bat12
-rw-r--r--docs/release/docs/compile.docbin0 -> 2799 bytes
-rw-r--r--docs/release/docs/faq.txt107
-rw-r--r--docs/release/docs/hbnew.txt1166
-rw-r--r--docs/release/docs/license.txt118
-rw-r--r--docs/release/docs/make.bat4
-rw-r--r--docs/release/docs/make32.bat14
-rw-r--r--docs/release/docs/make64.bat14
-rw-r--r--docs/release/docs/winui_license.txt72
-rw-r--r--docs/release/hbmame185s.rarbin0 -> 2744327 bytes
-rw-r--r--docs/release/marquees/spatrol.pngbin0 -> 182433 bytes
-rw-r--r--docs/release/scripts/build/complay.py152
-rw-r--r--docs/release/scripts/build/file2str.py63
-rw-r--r--docs/release/scripts/build/makedep.py257
-rw-r--r--docs/release/scripts/build/makelist.py167
-rw-r--r--docs/release/scripts/build/msgfmt.py291
-rw-r--r--docs/release/scripts/build/png.py2782
-rw-r--r--docs/release/scripts/build/png2bdc.py391
-rw-r--r--docs/release/scripts/build/verinfo.py170
-rw-r--r--docs/release/scripts/depfilter.awk25
-rw-r--r--docs/release/scripts/extlib.lua104
-rw-r--r--docs/release/scripts/font/LICENSE92
-rw-r--r--docs/release/scripts/font/NotoSans-Bold.bdcbin0 -> 61317 bytes
-rw-r--r--docs/release/scripts/font/NotoSans-Bold.ttfbin0 -> 310556 bytes
-rw-r--r--docs/release/scripts/font/README.md52
-rw-r--r--docs/release/scripts/genie.lua1399
-rw-r--r--docs/release/scripts/resources/emscripten/emscripten_post.js11
-rw-r--r--docs/release/scripts/resources/uwp/Package.appxmanifest36
-rw-r--r--docs/release/scripts/resources/uwp/assets/LockScreenLogo.scale-200.pngbin0 -> 4544 bytes
-rw-r--r--docs/release/scripts/resources/uwp/assets/SplashScreen.scale-200.pngbin0 -> 249008 bytes
-rw-r--r--docs/release/scripts/resources/uwp/assets/Square150x150Logo.scale-200.pngbin0 -> 27658 bytes
-rw-r--r--docs/release/scripts/resources/uwp/assets/Square44x44Logo.scale-200.pngbin0 -> 6817 bytes
-rw-r--r--docs/release/scripts/resources/uwp/assets/Square44x44Logo.targetsize-24_altform-unplated.pngbin0 -> 3589 bytes
-rw-r--r--docs/release/scripts/resources/uwp/assets/StoreLogo.pngbin0 -> 4705 bytes
-rw-r--r--docs/release/scripts/resources/uwp/assets/Wide310x150Logo.scale-200.pngbin0 -> 97655 bytes
-rw-r--r--docs/release/scripts/resources/uwp/mame_TemporaryKey.pfxbin0 -> 2454 bytes
-rw-r--r--docs/release/scripts/resources/windows/hbmame/hbmame.icobin0 -> 4286 bytes
-rw-r--r--docs/release/scripts/resources/windows/hbmame/hbmame.man15
-rw-r--r--docs/release/scripts/resources/windows/hbmame/hbmame.rc14
-rw-r--r--docs/release/scripts/resources/windows/mame/mame.icobin0 -> 372526 bytes
-rw-r--r--docs/release/scripts/resources/windows/mame/mame.man15
-rw-r--r--docs/release/scripts/resources/windows/mame/mame.rc14
-rw-r--r--docs/release/scripts/resources/windows/mess/mess.icobin0 -> 372526 bytes
-rw-r--r--docs/release/scripts/resources/windows/mess/mess.man15
-rw-r--r--docs/release/scripts/resources/windows/mess/mess.rc14
-rw-r--r--docs/release/scripts/src/3rdparty.lua1698
-rw-r--r--docs/release/scripts/src/benchmarks.lua74
-rw-r--r--docs/release/scripts/src/bus.lua3055
-rw-r--r--docs/release/scripts/src/cpu.lua2442
-rw-r--r--docs/release/scripts/src/devices.lua94
-rw-r--r--docs/release/scripts/src/emu.lua297
-rw-r--r--docs/release/scripts/src/formats.lua1784
-rw-r--r--docs/release/scripts/src/lib.lua116
-rw-r--r--docs/release/scripts/src/machine.lua3160
-rw-r--r--docs/release/scripts/src/main.lua439
-rw-r--r--docs/release/scripts/src/mame/frontend.lua171
-rw-r--r--docs/release/scripts/src/netlist.lua218
-rw-r--r--docs/release/scripts/src/osd/modules.lua555
-rw-r--r--docs/release/scripts/src/osd/newui.lua271
-rw-r--r--docs/release/scripts/src/osd/osdmini.lua130
-rw-r--r--docs/release/scripts/src/osd/osdmini_cfg.lua12
-rw-r--r--docs/release/scripts/src/osd/sdl.lua496
-rw-r--r--docs/release/scripts/src/osd/sdl_cfg.lua156
-rw-r--r--docs/release/scripts/src/osd/uwp.lua121
-rw-r--r--docs/release/scripts/src/osd/uwp_cfg.lua20
-rw-r--r--docs/release/scripts/src/osd/windows.lua291
-rw-r--r--docs/release/scripts/src/osd/windows_cfg.lua59
-rw-r--r--docs/release/scripts/src/osd/winui.lua318
-rw-r--r--docs/release/scripts/src/osd/winui_cfg.lua27
-rw-r--r--docs/release/scripts/src/sound.lua1435
-rw-r--r--docs/release/scripts/src/tests.lua99
-rw-r--r--docs/release/scripts/src/tools.lua805
-rw-r--r--docs/release/scripts/src/video.lua987
-rw-r--r--docs/release/scripts/target/hbmame/hbmame.lua783
-rw-r--r--docs/release/scripts/target/ldplayer/ldplayer.lua88
-rw-r--r--docs/release/scripts/target/mame/arcade.lua4728
-rw-r--r--docs/release/scripts/target/mame/dummy.lua46
-rw-r--r--docs/release/scripts/target/mame/mame.lua26
-rw-r--r--docs/release/scripts/target/mame/mess.lua3497
-rw-r--r--docs/release/scripts/target/mame/nl.lua167
-rw-r--r--docs/release/scripts/target/mame/tiny.lua159
-rw-r--r--docs/release/scripts/target/mame/virtual.lua102
-rw-r--r--docs/release/scripts/target/zexall/zexall.lua12
-rw-r--r--docs/release/scripts/toolchain.lua1147
-rw-r--r--docs/release/snap/spatrol.PNGbin0 -> 5717 bytes
-rw-r--r--docs/release/src/devices/cpu/m68000/m68kcpu.cpp2764
-rw-r--r--docs/release/src/emu/digfx.h236
-rw-r--r--docs/release/src/emu/emuopts.cpp430
-rw-r--r--docs/release/src/emu/emuopts.h462
-rw-r--r--docs/release/src/emu/gamedrv.h198
-rw-r--r--docs/release/src/emu/validity.cpp2075
-rw-r--r--docs/release/src/emu/video.cpp1365
-rw-r--r--docs/release/src/emu/video.h208
-rw-r--r--docs/release/src/frontend/mame/audit.cpp639
-rw-r--r--docs/release/src/frontend/mame/audit.h182
-rw-r--r--docs/release/src/frontend/mame/info.cpp1640
-rw-r--r--docs/release/src/frontend/mame/mameopts.cpp692
-rw-r--r--docs/release/src/frontend/mame/mameopts.h91
-rw-r--r--docs/release/src/hbmame/bus/neogeo/banked_cart.cpp109
-rw-r--r--docs/release/src/hbmame/bus/neogeo/banked_cart.h40
-rw-r--r--docs/release/src/hbmame/bus/neogeo/prot.cpp3131
-rw-r--r--docs/release/src/hbmame/bus/neogeo/prot.h417
-rw-r--r--docs/release/src/hbmame/bus/neogeo_ctrl/ctrl.cpp221
-rw-r--r--docs/release/src/hbmame/bus/neogeo_ctrl/ctrl.h130
-rw-r--r--docs/release/src/hbmame/bus/neogeo_ctrl/dial.cpp131
-rw-r--r--docs/release/src/hbmame/bus/neogeo_ctrl/dial.h58
-rw-r--r--docs/release/src/hbmame/bus/neogeo_ctrl/irrmaze.cpp113
-rw-r--r--docs/release/src/hbmame/bus/neogeo_ctrl/irrmaze.h57
-rw-r--r--docs/release/src/hbmame/bus/neogeo_ctrl/joystick.cpp205
-rw-r--r--docs/release/src/hbmame/bus/neogeo_ctrl/joystick.h81
-rw-r--r--docs/release/src/hbmame/bus/neogeo_ctrl/kizuna4p.cpp171
-rw-r--r--docs/release/src/hbmame/bus/neogeo_ctrl/kizuna4p.h61
-rw-r--r--docs/release/src/hbmame/bus/neogeo_ctrl/mahjong.cpp171
-rw-r--r--docs/release/src/hbmame/bus/neogeo_ctrl/mahjong.h75
-rw-r--r--docs/release/src/hbmame/drivers/1942.cpp126
-rw-r--r--docs/release/src/hbmame/drivers/1943.cpp63
-rw-r--r--docs/release/src/hbmame/drivers/arkanoid.cpp73
-rw-r--r--docs/release/src/hbmame/drivers/asteroid.cpp145
-rw-r--r--docs/release/src/hbmame/drivers/astrocde.cpp29
-rw-r--r--docs/release/src/hbmame/drivers/astrof.cpp19
-rw-r--r--docs/release/src/hbmame/drivers/asuka.cpp27
-rw-r--r--docs/release/src/hbmame/drivers/atari_s1.cpp20
-rw-r--r--docs/release/src/hbmame/drivers/atarisy1.cpp33
-rw-r--r--docs/release/src/hbmame/drivers/bagman.cpp53
-rw-r--r--docs/release/src/hbmame/drivers/blktiger.cpp41
-rw-r--r--docs/release/src/hbmame/drivers/bombjack.cpp96
-rw-r--r--docs/release/src/hbmame/drivers/btime.cpp106
-rw-r--r--docs/release/src/hbmame/drivers/bublbobl.cpp289
-rw-r--r--docs/release/src/hbmame/drivers/bwidow.cpp38
-rw-r--r--docs/release/src/hbmame/drivers/cave.cpp93
-rw-r--r--docs/release/src/hbmame/drivers/cball.cpp37
-rw-r--r--docs/release/src/hbmame/drivers/cclimber.cpp182
-rw-r--r--docs/release/src/hbmame/drivers/centiped.cpp165
-rw-r--r--docs/release/src/hbmame/drivers/cinemat.cpp47
-rw-r--r--docs/release/src/hbmame/drivers/commando.cpp78
-rw-r--r--docs/release/src/hbmame/drivers/cps1.cpp12352
-rw-r--r--docs/release/src/hbmame/drivers/cps1mis.cpp6753
-rw-r--r--docs/release/src/hbmame/drivers/cps2.cpp1975
-rw-r--r--docs/release/src/hbmame/drivers/cps3.cpp1305
-rw-r--r--docs/release/src/hbmame/drivers/dec0.cpp106
-rw-r--r--docs/release/src/hbmame/drivers/dkong.cpp284
-rw-r--r--docs/release/src/hbmame/drivers/docastle.cpp32
-rw-r--r--docs/release/src/hbmame/drivers/dotrikun.cpp208
-rw-r--r--docs/release/src/hbmame/drivers/ertictac.cpp53
-rw-r--r--docs/release/src/hbmame/drivers/exerion.cpp66
-rw-r--r--docs/release/src/hbmame/drivers/exidy.cpp71
-rw-r--r--docs/release/src/hbmame/drivers/fcrash.cpp3156
-rw-r--r--docs/release/src/hbmame/drivers/flower.cpp964
-rw-r--r--docs/release/src/hbmame/drivers/galaga.cpp1105
-rw-r--r--docs/release/src/hbmame/drivers/galaxian.cpp856
-rw-r--r--docs/release/src/hbmame/drivers/gauntlet.cpp139
-rw-r--r--docs/release/src/hbmame/drivers/gottlieb.cpp99
-rw-r--r--docs/release/src/hbmame/drivers/ir.cpp547
-rw-r--r--docs/release/src/hbmame/drivers/itech8.cpp22
-rw-r--r--docs/release/src/hbmame/drivers/jrpacman.cpp1212
-rw-r--r--docs/release/src/hbmame/drivers/kaneko16.cpp66
-rw-r--r--docs/release/src/hbmame/drivers/kof2000.cpp1204
-rw-r--r--docs/release/src/hbmame/drivers/kof2001.cpp2260
-rw-r--r--docs/release/src/hbmame/drivers/kof2002.cpp3717
-rw-r--r--docs/release/src/hbmame/drivers/kof2003.cpp753
-rw-r--r--docs/release/src/hbmame/drivers/kof94.cpp476
-rw-r--r--docs/release/src/hbmame/drivers/kof95.cpp369
-rw-r--r--docs/release/src/hbmame/drivers/kof96.cpp1574
-rw-r--r--docs/release/src/hbmame/drivers/kof97.cpp2249
-rw-r--r--docs/release/src/hbmame/drivers/kof98.cpp4028
-rw-r--r--docs/release/src/hbmame/drivers/kof99.cpp3030
-rw-r--r--docs/release/src/hbmame/drivers/kyugo.cpp46
-rw-r--r--docs/release/src/hbmame/drivers/m52.cpp39
-rw-r--r--docs/release/src/hbmame/drivers/maketrax.cpp824
-rw-r--r--docs/release/src/hbmame/drivers/mappy.cpp202
-rw-r--r--docs/release/src/hbmame/drivers/marinedt.cpp699
-rw-r--r--docs/release/src/hbmame/drivers/mario.cpp32
-rw-r--r--docs/release/src/hbmame/drivers/mcr.cpp114
-rw-r--r--docs/release/src/hbmame/drivers/mcr3.cpp26
-rw-r--r--docs/release/src/hbmame/drivers/mgd2.cpp1189
-rw-r--r--docs/release/src/hbmame/drivers/midtunit.cpp323
-rw-r--r--docs/release/src/hbmame/drivers/midwunit.cpp173
-rw-r--r--docs/release/src/hbmame/drivers/midyunit.cpp36
-rw-r--r--docs/release/src/hbmame/drivers/mitchell.cpp24
-rw-r--r--docs/release/src/hbmame/drivers/mmagic.cpp346
-rw-r--r--docs/release/src/hbmame/drivers/model2.cpp53
-rw-r--r--docs/release/src/hbmame/drivers/monaco.cpp2250
-rw-r--r--docs/release/src/hbmame/drivers/mrdo.cpp166
-rw-r--r--docs/release/src/hbmame/drivers/mslug.cpp2747
-rw-r--r--docs/release/src/hbmame/drivers/mspacman.cpp2560
-rw-r--r--docs/release/src/hbmame/drivers/multipac.cpp1940
-rw-r--r--docs/release/src/hbmame/drivers/nemesis.cpp134
-rw-r--r--docs/release/src/hbmame/drivers/neogeo.cpp1391
-rw-r--r--docs/release/src/hbmame/drivers/neogeo0.cpp144
-rw-r--r--docs/release/src/hbmame/drivers/neogeo1.cpp2986
-rw-r--r--docs/release/src/hbmame/drivers/neogeo_noslot.cpp9212
-rw-r--r--docs/release/src/hbmame/drivers/neogeohb.cpp1855
-rw-r--r--docs/release/src/hbmame/drivers/ngdoubledr.cpp285
-rw-r--r--docs/release/src/hbmame/drivers/nggaroup.cpp322
-rw-r--r--docs/release/src/hbmame/drivers/ngkofmisc.cpp947
-rw-r--r--docs/release/src/hbmame/drivers/nglastblade.cpp713
-rw-r--r--docs/release/src/hbmame/drivers/ngrbff.cpp667
-rw-r--r--docs/release/src/hbmame/drivers/ngrotd.cpp591
-rw-r--r--docs/release/src/hbmame/drivers/ngsamsho.cpp1850
-rw-r--r--docs/release/src/hbmame/drivers/ngsengoku.cpp333
-rw-r--r--docs/release/src/hbmame/drivers/ngsvc.cpp795
-rw-r--r--docs/release/src/hbmame/drivers/ngwh.cpp387
-rw-r--r--docs/release/src/hbmame/drivers/nmk16.cpp65
-rw-r--r--docs/release/src/hbmame/drivers/pacland.cpp106
-rw-r--r--docs/release/src/hbmame/drivers/pacman.cpp3676
-rw-r--r--docs/release/src/hbmame/drivers/pcktgal.cpp53
-rw-r--r--docs/release/src/hbmame/drivers/pengo.cpp148
-rw-r--r--docs/release/src/hbmame/drivers/pgm.cpp2194
-rw-r--r--docs/release/src/hbmame/drivers/phoenix.cpp56
-rw-r--r--docs/release/src/hbmame/drivers/playch10.cpp237
-rw-r--r--docs/release/src/hbmame/drivers/powerins.cpp45
-rw-r--r--docs/release/src/hbmame/drivers/psikyosh.cpp54
-rw-r--r--docs/release/src/hbmame/drivers/rallyx.cpp97
-rw-r--r--docs/release/src/hbmame/drivers/rastan.cpp155
-rw-r--r--docs/release/src/hbmame/drivers/retofinv.cpp40
-rw-r--r--docs/release/src/hbmame/drivers/schaser.cpp602
-rw-r--r--docs/release/src/hbmame/drivers/segac2.cpp15
-rw-r--r--docs/release/src/hbmame/drivers/segag80r.cpp38
-rw-r--r--docs/release/src/hbmame/drivers/segaorun.cpp220
-rw-r--r--docs/release/src/hbmame/drivers/segas16b.cpp34
-rw-r--r--docs/release/src/hbmame/drivers/shaolins.cpp27
-rw-r--r--docs/release/src/hbmame/drivers/simple_st0016.cpp11
-rw-r--r--docs/release/src/hbmame/drivers/snk6502.cpp25
-rw-r--r--docs/release/src/hbmame/drivers/spacmiss.cpp486
-rw-r--r--docs/release/src/hbmame/drivers/system1.cpp70
-rw-r--r--docs/release/src/hbmame/drivers/system16.cpp28
-rw-r--r--docs/release/src/hbmame/drivers/taito_b.cpp21
-rw-r--r--docs/release/src/hbmame/drivers/taito_f2.cpp85
-rw-r--r--docs/release/src/hbmame/drivers/taito_f3.cpp223
-rw-r--r--docs/release/src/hbmame/drivers/taito_l.cpp72
-rw-r--r--docs/release/src/hbmame/drivers/tecmo.cpp73
-rw-r--r--docs/release/src/hbmame/drivers/tecmo16.cpp32
-rw-r--r--docs/release/src/hbmame/drivers/tehkanwc.cpp123
-rw-r--r--docs/release/src/hbmame/drivers/tempest.cpp782
-rw-r--r--docs/release/src/hbmame/drivers/terracre.cpp50
-rw-r--r--docs/release/src/hbmame/drivers/timelimit.cpp107
-rw-r--r--docs/release/src/hbmame/drivers/tmnt.cpp33
-rw-r--r--docs/release/src/hbmame/drivers/toaplan2.cpp91
-rw-r--r--docs/release/src/hbmame/drivers/trackfld.cpp75
-rw-r--r--docs/release/src/hbmame/drivers/twincobr.cpp96
-rw-r--r--docs/release/src/hbmame/drivers/volfied.cpp30
-rw-r--r--docs/release/src/hbmame/drivers/vsnes.cpp34
-rw-r--r--docs/release/src/hbmame/drivers/williams.cpp130
-rw-r--r--docs/release/src/hbmame/drivers/yiear.cpp27
-rw-r--r--docs/release/src/hbmame/hbmame.cpp24
-rw-r--r--docs/release/src/hbmame/hbmame.lst2994
-rw-r--r--docs/release/src/hbmame/hbmame.mak62
-rw-r--r--docs/release/src/hbmame/includes/cps1.h483
-rw-r--r--docs/release/src/hbmame/includes/galaga.h21
-rw-r--r--docs/release/src/hbmame/includes/galaxian.h345
-rw-r--r--docs/release/src/hbmame/includes/neogeo.h508
-rw-r--r--docs/release/src/hbmame/includes/pacman.h226
-rw-r--r--docs/release/src/hbmame/layout/monaco.lay92
-rw-r--r--docs/release/src/hbmame/layout/neogeo.lay40
-rw-r--r--docs/release/src/hbmame/layout/spacmissx.lay30
-rw-r--r--docs/release/src/hbmame/machine/arkanoid.cpp634
-rw-r--r--docs/release/src/hbmame/machine/ng_memcard.cpp83
-rw-r--r--docs/release/src/hbmame/machine/ng_memcard.h65
-rw-r--r--docs/release/src/hbmame/osd/windows/hbmame.man10
-rw-r--r--docs/release/src/hbmame/osd/windows/hbmame.rc49
-rw-r--r--docs/release/src/hbmame/osd/windows/hbmame/hbmame.icobin0 -> 4286 bytes
-rw-r--r--docs/release/src/hbmame/osd/windows/hbmame/hbmame.man15
-rw-r--r--docs/release/src/hbmame/osd/windows/hbmame/hbmame.rc11
-rw-r--r--docs/release/src/hbmame/video/cps1.cpp2930
-rw-r--r--docs/release/src/hbmame/video/galaxian.cpp87
-rw-r--r--docs/release/src/hbmame/video/neogeo.cpp279
-rw-r--r--docs/release/src/hbmame/video/neogeo_spr.cpp644
-rw-r--r--docs/release/src/hbmame/video/neogeo_spr.h87
-rw-r--r--docs/release/src/hbmame/video/pacman.cpp360
-rw-r--r--docs/release/src/mame/drivers/jrpacman.cpp446
-rw-r--r--docs/release/src/osd/modules/render/drawd3d.cpp2749
-rw-r--r--docs/release/src/osd/winui/bitmask.cpp146
-rw-r--r--docs/release/src/osd/winui/bitmask.h33
-rw-r--r--docs/release/src/osd/winui/columnedit.cpp439
-rw-r--r--docs/release/src/osd/winui/columnedit.h15
-rw-r--r--docs/release/src/osd/winui/datamap.cpp782
-rw-r--r--docs/release/src/osd/winui/datamap.h73
-rw-r--r--docs/release/src/osd/winui/dialogs.cpp864
-rw-r--r--docs/release/src/osd/winui/dialogs.h18
-rw-r--r--docs/release/src/osd/winui/dijoystick.cpp629
-rw-r--r--docs/release/src/osd/winui/dijoystick.h63
-rw-r--r--docs/release/src/osd/winui/directdraw.cpp382
-rw-r--r--docs/release/src/osd/winui/directdraw.h36
-rw-r--r--docs/release/src/osd/winui/directinput.cpp149
-rw-r--r--docs/release/src/osd/winui/directinput.h23
-rw-r--r--docs/release/src/osd/winui/directories.cpp753
-rw-r--r--docs/release/src/osd/winui/directories.h72
-rw-r--r--docs/release/src/osd/winui/dirwatch.cpp362
-rw-r--r--docs/release/src/osd/winui/dirwatch.h13
-rw-r--r--docs/release/src/osd/winui/dxdecode.cpp194
-rw-r--r--docs/release/src/osd/winui/dxdecode.h13
-rw-r--r--docs/release/src/osd/winui/game_opts.h166
-rw-r--r--docs/release/src/osd/winui/hbmame.rc20
-rw-r--r--docs/release/src/osd/winui/hbmameui.rc1457
-rw-r--r--docs/release/src/osd/winui/help.cpp107
-rw-r--r--docs/release/src/osd/winui/help.h47
-rw-r--r--docs/release/src/osd/winui/help/cntx_help.txt220
-rw-r--r--docs/release/src/osd/winui/help/docs/Command Line Settings.htm1377
-rw-r--r--docs/release/src/osd/winui/help/docs/Mame License.htm57
-rw-r--r--docs/release/src/osd/winui/help/docs/Mame Statement of Purpose.htm79
-rw-r--r--docs/release/src/osd/winui/help/docs/whatsnew.txt511
-rw-r--r--docs/release/src/osd/winui/help/html/mameui_art.htm139
-rw-r--r--docs/release/src/osd/winui/help/html/mameui_changes.txt2132
-rw-r--r--docs/release/src/osd/winui/help/html/mameui_credits.htm141
-rw-r--r--docs/release/src/osd/winui/help/html/mameui_download.htm62
-rw-r--r--docs/release/src/osd/winui/help/html/mameui_filemenu.htm625
-rw-r--r--docs/release/src/osd/winui/help/html/mameui_help.htm86
-rw-r--r--docs/release/src/osd/winui/help/html/mameui_installprocedures.htm176
-rw-r--r--docs/release/src/osd/winui/help/html/mameui_optionsmenu.htm639
-rw-r--r--docs/release/src/osd/winui/help/html/mameui_overview.htm529
-rw-r--r--docs/release/src/osd/winui/help/html/mameui_playing.htm136
-rw-r--r--docs/release/src/osd/winui/help/html/mameui_properties.htm1034
-rw-r--r--docs/release/src/osd/winui/help/html/mameui_settings.htm96
-rw-r--r--docs/release/src/osd/winui/help/html/mameui_support.htm739
-rw-r--r--docs/release/src/osd/winui/help/html/mameui_systemreq.htm82
-rw-r--r--docs/release/src/osd/winui/help/html/mameui_viewmenu.htm160
-rw-r--r--docs/release/src/osd/winui/help/html/mameui_visual_elements.htm155
-rw-r--r--docs/release/src/osd/winui/help/html/mameui_whatsnew32.htm2058
-rw-r--r--docs/release/src/osd/winui/help/images/1.jpgbin0 -> 33410 bytes
-rw-r--r--docs/release/src/osd/winui/help/images/2.jpgbin0 -> 30360 bytes
-rw-r--r--docs/release/src/osd/winui/help/images/3.jpgbin0 -> 27190 bytes
-rw-r--r--docs/release/src/osd/winui/help/images/4.jpgbin0 -> 22673 bytes
-rw-r--r--docs/release/src/osd/winui/help/images/5.jpgbin0 -> 26135 bytes
-rw-r--r--docs/release/src/osd/winui/help/images/6.jpgbin0 -> 27544 bytes
-rw-r--r--docs/release/src/osd/winui/help/images/7.jpgbin0 -> 27304 bytes
-rw-r--r--docs/release/src/osd/winui/help/images/8.jpgbin0 -> 20064 bytes
-rw-r--r--docs/release/src/osd/winui/help/images/bkground.gifbin0 -> 22558 bytes
-rw-r--r--docs/release/src/osd/winui/help/images/folder.gifbin0 -> 4741 bytes
-rw-r--r--docs/release/src/osd/winui/help/images/int.jpgbin0 -> 72956 bytes
-rw-r--r--docs/release/src/osd/winui/help/images/mame321.gifbin0 -> 917 bytes
-rw-r--r--docs/release/src/osd/winui/help/images/statusbar.gifbin0 -> 1388 bytes
-rw-r--r--docs/release/src/osd/winui/help/images/toolbar.gifbin0 -> 1548 bytes
-rw-r--r--docs/release/src/osd/winui/help/mameui.hhc122
-rw-r--r--docs/release/src/osd/winui/help/mameui.hhk9
-rw-r--r--docs/release/src/osd/winui/help/mameui.hhp24
-rw-r--r--docs/release/src/osd/winui/help/mameui.hm135
-rw-r--r--docs/release/src/osd/winui/help/reshelp.h4
-rw-r--r--docs/release/src/osd/winui/help/stoplist.stp88
-rw-r--r--docs/release/src/osd/winui/helpids.cpp125
-rw-r--r--docs/release/src/osd/winui/history.cpp982
-rw-r--r--docs/release/src/osd/winui/history.h12
-rw-r--r--docs/release/src/osd/winui/layout.cpp265
-rw-r--r--docs/release/src/osd/winui/mameui.rc1467
-rw-r--r--docs/release/src/osd/winui/messui.rc1394
-rw-r--r--docs/release/src/osd/winui/mkhelp.cpp152
-rw-r--r--docs/release/src/osd/winui/mui_audit.cpp497
-rw-r--r--docs/release/src/osd/winui/mui_audit.h21
-rw-r--r--docs/release/src/osd/winui/mui_main.cpp22
-rw-r--r--docs/release/src/osd/winui/mui_opts.cpp2807
-rw-r--r--docs/release/src/osd/winui/mui_opts.h510
-rw-r--r--docs/release/src/osd/winui/mui_util.cpp760
-rw-r--r--docs/release/src/osd/winui/mui_util.h101
-rw-r--r--docs/release/src/osd/winui/newui.cpp3364
-rw-r--r--docs/release/src/osd/winui/newui.h38
-rw-r--r--docs/release/src/osd/winui/newuires.h64
-rw-r--r--docs/release/src/osd/winui/picker.cpp1681
-rw-r--r--docs/release/src/osd/winui/picker.h88
-rw-r--r--docs/release/src/osd/winui/properties.cpp3354
-rw-r--r--docs/release/src/osd/winui/properties.h58
-rw-r--r--docs/release/src/osd/winui/res/about.bmpbin0 -> 93054 bytes
-rw-r--r--docs/release/src/osd/winui/res/bkgnd16.bmpbin0 -> 5362 bytes
-rw-r--r--docs/release/src/osd/winui/res/bkground.bmpbin0 -> 10124 bytes
-rw-r--r--docs/release/src/osd/winui/res/checkmark.icobin0 -> 6518 bytes
-rw-r--r--docs/release/src/osd/winui/res/controller.icobin0 -> 2238 bytes
-rw-r--r--docs/release/src/osd/winui/res/cpu.icobin0 -> 6006 bytes
-rw-r--r--docs/release/src/osd/winui/res/custom.icobin0 -> 3638 bytes
-rw-r--r--docs/release/src/osd/winui/res/display.icobin0 -> 6518 bytes
-rw-r--r--docs/release/src/osd/winui/res/foldavail.icobin0 -> 3638 bytes
-rw-r--r--docs/release/src/osd/winui/res/folder.icobin0 -> 3638 bytes
-rw-r--r--docs/release/src/osd/winui/res/foldmanu.icobin0 -> 3638 bytes
-rw-r--r--docs/release/src/osd/winui/res/foldopen.icobin0 -> 3638 bytes
-rw-r--r--docs/release/src/osd/winui/res/foldsrc.icobin0 -> 3638 bytes
-rw-r--r--docs/release/src/osd/winui/res/foldunav.icobin0 -> 3638 bytes
-rw-r--r--docs/release/src/osd/winui/res/foldyear.icobin0 -> 3638 bytes
-rw-r--r--docs/release/src/osd/winui/res/harddisk.icobin0 -> 3638 bytes
-rw-r--r--docs/release/src/osd/winui/res/hbmame.icobin0 -> 4286 bytes
-rw-r--r--docs/release/src/osd/winui/res/hbmameui.icobin0 -> 4286 bytes
-rw-r--r--docs/release/src/osd/winui/res/header_down.icobin0 -> 502 bytes
-rw-r--r--docs/release/src/osd/winui/res/header_up.icobin0 -> 502 bytes
-rw-r--r--docs/release/src/osd/winui/res/horz.icobin0 -> 3262 bytes
-rw-r--r--docs/release/src/osd/winui/res/icon_asc.icobin0 -> 4846 bytes
-rw-r--r--docs/release/src/osd/winui/res/icon_des.icobin0 -> 4846 bytes
-rw-r--r--docs/release/src/osd/winui/res/icon_snd.icobin0 -> 4846 bytes
-rw-r--r--docs/release/src/osd/winui/res/icon_sndn.icobin0 -> 4846 bytes
-rw-r--r--docs/release/src/osd/winui/res/joystick.icobin0 -> 6518 bytes
-rw-r--r--docs/release/src/osd/winui/res/keyboard.icobin0 -> 6518 bytes
-rw-r--r--docs/release/src/osd/winui/res/mameui.manifest10
-rw-r--r--docs/release/src/osd/winui/res/manufact.icobin0 -> 3638 bytes
-rw-r--r--docs/release/src/osd/winui/res/nonwork.icobin0 -> 1406 bytes
-rw-r--r--docs/release/src/osd/winui/res/samples.icobin0 -> 1406 bytes
-rw-r--r--docs/release/src/osd/winui/res/sound.icobin0 -> 6518 bytes
-rw-r--r--docs/release/src/osd/winui/res/source.icobin0 -> 3638 bytes
-rw-r--r--docs/release/src/osd/winui/res/splith.curbin0 -> 518 bytes
-rw-r--r--docs/release/src/osd/winui/res/toolbar.bmpbin0 -> 1198 bytes
-rw-r--r--docs/release/src/osd/winui/res/vert.icobin0 -> 3262 bytes
-rw-r--r--docs/release/src/osd/winui/res/win_clone.icobin0 -> 6006 bytes
-rw-r--r--docs/release/src/osd/winui/res/win_noro.icobin0 -> 2238 bytes
-rw-r--r--docs/release/src/osd/winui/res/win_redx.icobin0 -> 3638 bytes
-rw-r--r--docs/release/src/osd/winui/res/win_roms.icobin0 -> 6006 bytes
-rw-r--r--docs/release/src/osd/winui/res/win_unkn.icobin0 -> 2238 bytes
-rw-r--r--docs/release/src/osd/winui/res/working.icobin0 -> 3638 bytes
-rw-r--r--docs/release/src/osd/winui/res/year.icobin0 -> 3638 bytes
-rw-r--r--docs/release/src/osd/winui/resource.h453
-rw-r--r--docs/release/src/osd/winui/resource.hm122
-rw-r--r--docs/release/src/osd/winui/screenshot.cpp663
-rw-r--r--docs/release/src/osd/winui/screenshot.h26
-rw-r--r--docs/release/src/osd/winui/splitters.cpp379
-rw-r--r--docs/release/src/osd/winui/splitters.h81
-rw-r--r--docs/release/src/osd/winui/tabview.cpp335
-rw-r--r--docs/release/src/osd/winui/tabview.h44
-rw-r--r--docs/release/src/osd/winui/treeview.cpp2441
-rw-r--r--docs/release/src/osd/winui/treeview.h210
-rw-r--r--docs/release/src/osd/winui/winui.cpp6683
-rw-r--r--docs/release/src/osd/winui/winui.h110
-rw-r--r--docs/release/src/version.cpp22
-rw-r--r--docs/release/winui_license.txt71
-rw-r--r--docs/winui_license.txt71
-rw-r--r--[-rwxr-xr-x]hash/msx1_cass.xml0
-rw-r--r--[-rwxr-xr-x]hash/timex_dock.xml0
-rw-r--r--keymaps/km_be_LINUX.map44
-rw-r--r--keymaps/km_br_LINUX.map33
-rw-r--r--keymaps/km_ch_LINUX.map29
-rw-r--r--keymaps/km_de_LINUX.map29
-rw-r--r--keymaps/km_es_LINUX.map30
-rw-r--r--keymaps/km_fr_LINUX.map43
-rw-r--r--keymaps/km_fr_OSX.map15
-rw-r--r--keymaps/km_gb_LINUX.map20
-rw-r--r--keymaps/km_it_LINUX.map27
-rw-r--r--keymaps/km_pt_LINUX.map30
-rw-r--r--keymaps/km_se_LINUX.map23
-rw-r--r--keymaps/km_se_OSX.map23
-rw-r--r--scripts/build/verinfo.py15
-rw-r--r--scripts/resources/windows/hbmame/hbmame.icobin0 -> 4286 bytes
-rw-r--r--scripts/resources/windows/hbmame/hbmame.man15
-rw-r--r--scripts/resources/windows/hbmame/hbmame.rc14
-rw-r--r--scripts/resources/windows/mame/mame.rc2
-rw-r--r--scripts/src/machine.lua50
-rw-r--r--scripts/src/main.lua5
-rw-r--r--scripts/src/osd/newui.lua273
-rw-r--r--scripts/src/osd/winui.lua320
-rw-r--r--scripts/src/osd/winui_cfg.lua26
-rw-r--r--scripts/target/hbmame/hbmame.lua795
-rw-r--r--src/devices/cpu/m68000/m68kcpu.cpp4
-rw-r--r--src/emu/digfx.h3
-rw-r--r--src/emu/emuopts.cpp2
-rw-r--r--src/emu/romload.cpp4
-rw-r--r--src/emu/validity.cpp2
-rw-r--r--src/emu/video.h1
-rw-r--r--src/frontend/mame/audit.cpp78
-rw-r--r--src/frontend/mame/audit.h1
-rw-r--r--src/frontend/mame/ui/ui.cpp3
-rw-r--r--src/hbmame/bus/neogeo/banked_cart.cpp109
-rw-r--r--src/hbmame/bus/neogeo/banked_cart.h40
-rw-r--r--src/hbmame/bus/neogeo/prot.cpp3131
-rw-r--r--src/hbmame/bus/neogeo/prot.h417
-rw-r--r--src/hbmame/bus/neogeo_ctrl/ctrl.cpp221
-rw-r--r--src/hbmame/bus/neogeo_ctrl/ctrl.h130
-rw-r--r--src/hbmame/bus/neogeo_ctrl/dial.cpp131
-rw-r--r--src/hbmame/bus/neogeo_ctrl/dial.h58
-rw-r--r--src/hbmame/bus/neogeo_ctrl/irrmaze.cpp113
-rw-r--r--src/hbmame/bus/neogeo_ctrl/irrmaze.h57
-rw-r--r--src/hbmame/bus/neogeo_ctrl/joystick.cpp205
-rw-r--r--src/hbmame/bus/neogeo_ctrl/joystick.h81
-rw-r--r--src/hbmame/bus/neogeo_ctrl/kizuna4p.cpp171
-rw-r--r--src/hbmame/bus/neogeo_ctrl/kizuna4p.h61
-rw-r--r--src/hbmame/bus/neogeo_ctrl/mahjong.cpp171
-rw-r--r--src/hbmame/bus/neogeo_ctrl/mahjong.h75
-rw-r--r--src/hbmame/drivers/1942.cpp126
-rw-r--r--src/hbmame/drivers/1943.cpp63
-rw-r--r--src/hbmame/drivers/arkanoid.cpp73
-rw-r--r--src/hbmame/drivers/asteroid.cpp145
-rw-r--r--src/hbmame/drivers/astrocde.cpp29
-rw-r--r--src/hbmame/drivers/astrof.cpp19
-rw-r--r--src/hbmame/drivers/asuka.cpp27
-rw-r--r--src/hbmame/drivers/atari_s1.cpp20
-rw-r--r--src/hbmame/drivers/atarisy1.cpp65
-rw-r--r--src/hbmame/drivers/bagman.cpp53
-rw-r--r--src/hbmame/drivers/blktiger.cpp41
-rw-r--r--src/hbmame/drivers/bombjack.cpp96
-rw-r--r--src/hbmame/drivers/btime.cpp106
-rw-r--r--src/hbmame/drivers/bublbobl.cpp290
-rw-r--r--src/hbmame/drivers/bwidow.cpp38
-rw-r--r--src/hbmame/drivers/cave.cpp201
-rw-r--r--src/hbmame/drivers/cball.cpp37
-rw-r--r--src/hbmame/drivers/cclimber.cpp182
-rw-r--r--src/hbmame/drivers/centiped.cpp165
-rw-r--r--src/hbmame/drivers/cinemat.cpp47
-rw-r--r--src/hbmame/drivers/commando.cpp78
-rw-r--r--src/hbmame/drivers/cps1.cpp12352
-rw-r--r--src/hbmame/drivers/cps1mis.cpp10087
-rw-r--r--src/hbmame/drivers/cps2.cpp2202
-rw-r--r--src/hbmame/drivers/cps3.cpp1618
-rw-r--r--src/hbmame/drivers/dec0.cpp106
-rw-r--r--src/hbmame/drivers/dkong.cpp284
-rw-r--r--src/hbmame/drivers/docastle.cpp32
-rw-r--r--src/hbmame/drivers/dotrikun.cpp198
-rw-r--r--src/hbmame/drivers/ertictac.cpp53
-rw-r--r--src/hbmame/drivers/exerion.cpp66
-rw-r--r--src/hbmame/drivers/exidy.cpp71
-rw-r--r--src/hbmame/drivers/fcrash.cpp3156
-rw-r--r--src/hbmame/drivers/galaga.cpp1073
-rw-r--r--src/hbmame/drivers/galaxian.cpp856
-rw-r--r--src/hbmame/drivers/gauntlet.cpp139
-rw-r--r--src/hbmame/drivers/gottlieb.cpp99
-rw-r--r--src/hbmame/drivers/ir.cpp547
-rw-r--r--src/hbmame/drivers/itech8.cpp26
-rw-r--r--src/hbmame/drivers/jrpacman.cpp1217
-rw-r--r--src/hbmame/drivers/kaneko16.cpp66
-rw-r--r--src/hbmame/drivers/kof2000.cpp1204
-rw-r--r--src/hbmame/drivers/kof2001.cpp2324
-rw-r--r--src/hbmame/drivers/kof2002.cpp4576
-rw-r--r--src/hbmame/drivers/kof2003.cpp958
-rw-r--r--src/hbmame/drivers/kof94.cpp896
-rw-r--r--src/hbmame/drivers/kof95.cpp894
-rw-r--r--src/hbmame/drivers/kof96.cpp3036
-rw-r--r--src/hbmame/drivers/kof97.cpp5144
-rw-r--r--src/hbmame/drivers/kof98.cpp5470
-rw-r--r--src/hbmame/drivers/kof99.cpp3641
-rw-r--r--src/hbmame/drivers/kyugo.cpp46
-rw-r--r--src/hbmame/drivers/m52.cpp39
-rw-r--r--src/hbmame/drivers/maketrax.cpp857
-rw-r--r--src/hbmame/drivers/mappy.cpp202
-rw-r--r--src/hbmame/drivers/mario.cpp32
-rw-r--r--src/hbmame/drivers/mcr.cpp114
-rw-r--r--src/hbmame/drivers/mcr3.cpp26
-rw-r--r--src/hbmame/drivers/mgd2.cpp1189
-rw-r--r--src/hbmame/drivers/midtunit.cpp519
-rw-r--r--src/hbmame/drivers/midwunit.cpp258
-rw-r--r--src/hbmame/drivers/midyunit.cpp36
-rw-r--r--src/hbmame/drivers/mitchell.cpp24
-rw-r--r--src/hbmame/drivers/model2.cpp53
-rw-r--r--src/hbmame/drivers/monaco.cpp2250
-rw-r--r--src/hbmame/drivers/mrdo.cpp166
-rw-r--r--src/hbmame/drivers/mslug.cpp24726
-rw-r--r--src/hbmame/drivers/mspacman.cpp2536
-rw-r--r--src/hbmame/drivers/multipac.cpp1893
-rw-r--r--src/hbmame/drivers/nemesis.cpp134
-rw-r--r--src/hbmame/drivers/neogeo.cpp1391
-rw-r--r--src/hbmame/drivers/neogeo0.cpp159
-rw-r--r--src/hbmame/drivers/neogeo1.cpp3494
-rw-r--r--src/hbmame/drivers/neogeo_noslot.cpp9212
-rw-r--r--src/hbmame/drivers/neogeohb.cpp1881
-rw-r--r--src/hbmame/drivers/ngdoubledr.cpp307
-rw-r--r--src/hbmame/drivers/nggaroup.cpp381
-rw-r--r--src/hbmame/drivers/ngkofmisc.cpp1896
-rw-r--r--src/hbmame/drivers/nglastblade.cpp1269
-rw-r--r--src/hbmame/drivers/ngrbff.cpp930
-rw-r--r--src/hbmame/drivers/ngrotd.cpp956
-rw-r--r--src/hbmame/drivers/ngsamsho.cpp4005
-rw-r--r--src/hbmame/drivers/ngsengoku.cpp364
-rw-r--r--src/hbmame/drivers/ngsvc.cpp3635
-rw-r--r--src/hbmame/drivers/ngwh.cpp554
-rw-r--r--src/hbmame/drivers/nmk16.cpp65
-rw-r--r--src/hbmame/drivers/pacland.cpp106
-rw-r--r--src/hbmame/drivers/pacman.cpp3672
-rw-r--r--src/hbmame/drivers/pcktgal.cpp53
-rw-r--r--src/hbmame/drivers/pengo.cpp148
-rw-r--r--src/hbmame/drivers/pgm.cpp7079
-rw-r--r--src/hbmame/drivers/phoenix.cpp56
-rw-r--r--src/hbmame/drivers/playch10.cpp237
-rw-r--r--src/hbmame/drivers/pooyan.cpp48
-rw-r--r--src/hbmame/drivers/powerins.cpp98
-rw-r--r--src/hbmame/drivers/psikyosh.cpp97
-rw-r--r--src/hbmame/drivers/rallyx.cpp97
-rw-r--r--src/hbmame/drivers/rastan.cpp155
-rw-r--r--src/hbmame/drivers/retofinv.cpp40
-rw-r--r--src/hbmame/drivers/schaser.cpp603
-rw-r--r--src/hbmame/drivers/segac2.cpp15
-rw-r--r--src/hbmame/drivers/segag80r.cpp38
-rw-r--r--src/hbmame/drivers/segaorun.cpp359
-rw-r--r--src/hbmame/drivers/segas16b.cpp34
-rw-r--r--src/hbmame/drivers/shaolins.cpp27
-rw-r--r--src/hbmame/drivers/simple_st0016.cpp11
-rw-r--r--src/hbmame/drivers/snk6502.cpp25
-rw-r--r--src/hbmame/drivers/spacmiss.cpp486
-rw-r--r--src/hbmame/drivers/system1.cpp76
-rw-r--r--src/hbmame/drivers/system16.cpp28
-rw-r--r--src/hbmame/drivers/taito_b.cpp21
-rw-r--r--src/hbmame/drivers/taito_f2.cpp85
-rw-r--r--src/hbmame/drivers/taito_f3.cpp223
-rw-r--r--src/hbmame/drivers/taito_l.cpp72
-rw-r--r--src/hbmame/drivers/tecmo.cpp73
-rw-r--r--src/hbmame/drivers/tecmo16.cpp32
-rw-r--r--src/hbmame/drivers/tehkanwc.cpp123
-rw-r--r--src/hbmame/drivers/tempest.cpp782
-rw-r--r--src/hbmame/drivers/terracre.cpp50
-rw-r--r--src/hbmame/drivers/timelimit.cpp114
-rw-r--r--src/hbmame/drivers/timeplt.cpp50
-rw-r--r--src/hbmame/drivers/tmnt.cpp33
-rw-r--r--src/hbmame/drivers/toaplan2.cpp117
-rw-r--r--src/hbmame/drivers/trackfld.cpp75
-rw-r--r--src/hbmame/drivers/twincobr.cpp96
-rw-r--r--src/hbmame/drivers/volfied.cpp36
-rw-r--r--src/hbmame/drivers/vsnes.cpp34
-rw-r--r--src/hbmame/drivers/williams.cpp130
-rw-r--r--src/hbmame/drivers/yiear.cpp27
-rw-r--r--src/hbmame/hbmame.cpp24
-rw-r--r--src/hbmame/hbmame.lst4816
-rw-r--r--src/hbmame/hbmame.mak62
-rw-r--r--src/hbmame/includes/cps1.h484
-rw-r--r--src/hbmame/includes/galaga.h21
-rw-r--r--src/hbmame/includes/galaxian.h344
-rw-r--r--src/hbmame/includes/neogeo.h508
-rw-r--r--src/hbmame/includes/pacman.h230
-rw-r--r--src/hbmame/layout/monaco.lay92
-rw-r--r--src/hbmame/layout/neogeo.lay40
-rw-r--r--src/hbmame/layout/spacmissx.lay30
-rw-r--r--src/hbmame/machine/arkanoid.cpp634
-rw-r--r--src/hbmame/machine/ng_memcard.cpp83
-rw-r--r--src/hbmame/machine/ng_memcard.h65
-rw-r--r--src/hbmame/osd/windows/hbmame.man10
-rw-r--r--src/hbmame/osd/windows/hbmame.rc49
-rw-r--r--src/hbmame/osd/windows/hbmame/hbmame.icobin0 -> 4286 bytes
-rw-r--r--src/hbmame/osd/windows/hbmame/hbmame.man15
-rw-r--r--src/hbmame/osd/windows/hbmame/hbmame.rc11
-rw-r--r--src/hbmame/video/cps1.cpp3048
-rw-r--r--src/hbmame/video/galaxian.cpp87
-rw-r--r--src/hbmame/video/neogeo.cpp279
-rw-r--r--src/hbmame/video/neogeo_spr.cpp644
-rw-r--r--src/hbmame/video/neogeo_spr.h87
-rw-r--r--src/hbmame/video/pacman.cpp360
-rw-r--r--src/mame/drivers/jrpacman.cpp31
-rw-r--r--src/mame/drivers/timeplt.cpp2
-rw-r--r--src/mame/includes/segaorun.h2
-rw-r--r--src/mame/old/about-0.bmpbin0 -> 93056 bytes
-rw-r--r--src/mame/old/about-1.pngbin0 -> 27276 bytes
-rw-r--r--src/mame/old/bootleg_cart.cpp378
-rw-r--r--src/mame/old/bootleg_cart.h250
-rw-r--r--src/mame/old/bootleg_hybrid_cart.cpp319
-rw-r--r--src/mame/old/bootleg_hybrid_cart.h192
-rw-r--r--src/mame/old/bootleg_prot.cpp1073
-rw-r--r--src/mame/old/bootleg_prot.h92
-rw-r--r--src/mame/old/cmc_cart.cpp223
-rw-r--r--src/mame/old/cmc_cart.h191
-rw-r--r--src/mame/old/cmc_prot.cpp798
-rw-r--r--src/mame/old/cmc_prot.h83
-rw-r--r--src/mame/old/fatfury2_cart.cpp75
-rw-r--r--src/mame/old/fatfury2_cart.h41
-rw-r--r--src/mame/old/fatfury2_prot.cpp112
-rw-r--r--src/mame/old/fatfury2_prot.h36
-rw-r--r--src/mame/old/hbmamesplash.pngbin0 -> 46775 bytes
-rw-r--r--src/mame/old/hbmameui-1.icobin0 -> 370070 bytes
-rw-r--r--src/mame/old/kof2002_cart.cpp157
-rw-r--r--src/mame/old/kof2002_cart.h111
-rw-r--r--src/mame/old/kof2002_prot.cpp83
-rw-r--r--src/mame/old/kof2002_prot.h32
-rw-r--r--src/mame/old/kof98_cart.cpp80
-rw-r--r--src/mame/old/kof98_cart.h41
-rw-r--r--src/mame/old/kof98_prot.cpp142
-rw-r--r--src/mame/old/kof98_prot.h34
-rw-r--r--src/mame/old/kog_prot.cpp118
-rw-r--r--src/mame/old/kog_prot.h34
-rw-r--r--src/mame/old/mame.icobin0 -> 2238 bytes
-rw-r--r--src/mame/old/mameui.icobin0 -> 2238 bytes
-rw-r--r--src/mame/old/mess.icobin0 -> 5430 bytes
-rw-r--r--src/mame/old/messui.icobin0 -> 5430 bytes
-rw-r--r--src/mame/old/mslugx_cart.cpp75
-rw-r--r--src/mame/old/mslugx_cart.h41
-rw-r--r--src/mame/old/mslugx_prot.cpp97
-rw-r--r--src/mame/old/mslugx_prot.h35
-rw-r--r--src/mame/old/neocrypt.cpp181
-rw-r--r--src/mame/old/neogeo_carts.cpp97
-rw-r--r--src/mame/old/neogeo_carts.h30
-rw-r--r--src/mame/old/neogeo_helper.cpp66
-rw-r--r--src/mame/old/neogeo_helper.h4
-rw-r--r--src/mame/old/neogeo_intf.cpp34
-rw-r--r--src/mame/old/neogeo_intf.h78
-rw-r--r--src/mame/old/neogeo_slot.cpp206
-rw-r--r--src/mame/old/neogeo_slot.h86
-rw-r--r--src/mame/old/pcm2_cart.cpp135
-rw-r--r--src/mame/old/pcm2_cart.h98
-rw-r--r--src/mame/old/pcm2_prot.cpp88
-rw-r--r--src/mame/old/pcm2_prot.h30
-rw-r--r--src/mame/old/pvc_cart.cpp139
-rw-r--r--src/mame/old/pvc_cart.h108
-rw-r--r--src/mame/old/pvc_prot.cpp317
-rw-r--r--src/mame/old/pvc_prot.h44
-rw-r--r--src/mame/old/rom.cpp70
-rw-r--r--src/mame/old/rom.h38
-rw-r--r--src/mame/old/sbp_prot.cpp87
-rw-r--r--src/mame/old/sbp_prot.h34
-rw-r--r--src/mame/old/sma_cart.cpp177
-rw-r--r--src/mame/old/sma_cart.h112
-rw-r--r--src/mame/old/sma_prot.cpp464
-rw-r--r--src/mame/old/sma_prot.h52
-rw-r--r--src/osd/modules/render/drawd3d.cpp27
-rw-r--r--src/osd/modules/sound/direct_sound.cpp1
-rw-r--r--src/osd/windows/window.cpp2
-rw-r--r--src/osd/windows/winmain.cpp43
-rw-r--r--src/osd/windows/winmain.h1
-rw-r--r--src/osd/winui/bitmask.cpp146
-rw-r--r--src/osd/winui/bitmask.h33
-rw-r--r--src/osd/winui/columnedit.cpp426
-rw-r--r--src/osd/winui/columnedit.h15
-rw-r--r--src/osd/winui/datamap.cpp765
-rw-r--r--src/osd/winui/datamap.h73
-rw-r--r--src/osd/winui/dialogs.cpp847
-rw-r--r--src/osd/winui/dialogs.h18
-rw-r--r--src/osd/winui/dijoystick.cpp758
-rw-r--r--src/osd/winui/dijoystick.h63
-rw-r--r--src/osd/winui/directinput.cpp143
-rw-r--r--src/osd/winui/directinput.h23
-rw-r--r--src/osd/winui/directories.cpp703
-rw-r--r--src/osd/winui/directories.h83
-rw-r--r--src/osd/winui/dirwatch.cpp346
-rw-r--r--src/osd/winui/dirwatch.h14
-rw-r--r--src/osd/winui/game_opts.h367
-rw-r--r--src/osd/winui/hbmame.rc20
-rw-r--r--src/osd/winui/hbmameui.rc1466
-rw-r--r--src/osd/winui/help.cpp107
-rw-r--r--src/osd/winui/help.h47
-rw-r--r--src/osd/winui/help/cntx_help.txt220
-rw-r--r--src/osd/winui/help/docs/Command Line Settings.htm1377
-rw-r--r--src/osd/winui/help/docs/Mame License.htm57
-rw-r--r--src/osd/winui/help/docs/Mame Statement of Purpose.htm79
-rw-r--r--src/osd/winui/help/docs/whatsnew.txt511
-rw-r--r--src/osd/winui/help/html/mameui_art.htm139
-rw-r--r--src/osd/winui/help/html/mameui_changes.txt2132
-rw-r--r--src/osd/winui/help/html/mameui_credits.htm141
-rw-r--r--src/osd/winui/help/html/mameui_download.htm62
-rw-r--r--src/osd/winui/help/html/mameui_filemenu.htm625
-rw-r--r--src/osd/winui/help/html/mameui_help.htm86
-rw-r--r--src/osd/winui/help/html/mameui_installprocedures.htm176
-rw-r--r--src/osd/winui/help/html/mameui_optionsmenu.htm639
-rw-r--r--src/osd/winui/help/html/mameui_overview.htm529
-rw-r--r--src/osd/winui/help/html/mameui_playing.htm136
-rw-r--r--src/osd/winui/help/html/mameui_properties.htm1034
-rw-r--r--src/osd/winui/help/html/mameui_settings.htm96
-rw-r--r--src/osd/winui/help/html/mameui_support.htm739
-rw-r--r--src/osd/winui/help/html/mameui_systemreq.htm82
-rw-r--r--src/osd/winui/help/html/mameui_viewmenu.htm160
-rw-r--r--src/osd/winui/help/html/mameui_visual_elements.htm155
-rw-r--r--src/osd/winui/help/html/mameui_whatsnew32.htm2058
-rw-r--r--src/osd/winui/help/images/1.jpgbin0 -> 33410 bytes
-rw-r--r--src/osd/winui/help/images/2.jpgbin0 -> 30360 bytes
-rw-r--r--src/osd/winui/help/images/3.jpgbin0 -> 27190 bytes
-rw-r--r--src/osd/winui/help/images/4.jpgbin0 -> 22673 bytes
-rw-r--r--src/osd/winui/help/images/5.jpgbin0 -> 26135 bytes
-rw-r--r--src/osd/winui/help/images/6.jpgbin0 -> 27544 bytes
-rw-r--r--src/osd/winui/help/images/7.jpgbin0 -> 27304 bytes
-rw-r--r--src/osd/winui/help/images/8.jpgbin0 -> 20064 bytes
-rw-r--r--src/osd/winui/help/images/bkground.gifbin0 -> 22558 bytes
-rw-r--r--src/osd/winui/help/images/folder.gifbin0 -> 4741 bytes
-rw-r--r--src/osd/winui/help/images/int.jpgbin0 -> 72956 bytes
-rw-r--r--src/osd/winui/help/images/mame321.gifbin0 -> 917 bytes
-rw-r--r--src/osd/winui/help/images/statusbar.gifbin0 -> 1388 bytes
-rw-r--r--src/osd/winui/help/images/toolbar.gifbin0 -> 1548 bytes
-rw-r--r--src/osd/winui/help/mameui.hhc122
-rw-r--r--src/osd/winui/help/mameui.hhk9
-rw-r--r--src/osd/winui/help/mameui.hhp24
-rw-r--r--src/osd/winui/help/mameui.hm135
-rw-r--r--src/osd/winui/help/reshelp.h4
-rw-r--r--src/osd/winui/help/stoplist.stp88
-rw-r--r--src/osd/winui/helpids.cpp125
-rw-r--r--src/osd/winui/history.cpp665
-rw-r--r--src/osd/winui/history.h13
-rw-r--r--src/osd/winui/ini_opts.h441
-rw-r--r--src/osd/winui/layout.cpp249
-rw-r--r--src/osd/winui/mameui.rc1467
-rw-r--r--src/osd/winui/messui.rc1517
-rw-r--r--src/osd/winui/mkhelp.cpp152
-rw-r--r--src/osd/winui/mui_audit.cpp482
-rw-r--r--src/osd/winui/mui_audit.h21
-rw-r--r--src/osd/winui/mui_main.cpp22
-rw-r--r--src/osd/winui/mui_opts.cpp2638
-rw-r--r--src/osd/winui/mui_opts.h543
-rw-r--r--src/osd/winui/mui_util.cpp859
-rw-r--r--src/osd/winui/mui_util.h102
-rw-r--r--src/osd/winui/newui.h38
-rw-r--r--src/osd/winui/newuires.h64
-rw-r--r--src/osd/winui/picker.cpp1603
-rw-r--r--src/osd/winui/picker.h89
-rw-r--r--src/osd/winui/properties.cpp3333
-rw-r--r--src/osd/winui/properties.h58
-rw-r--r--src/osd/winui/res/about.bmpbin0 -> 93054 bytes
-rw-r--r--src/osd/winui/res/bkgnd16.bmpbin0 -> 5362 bytes
-rw-r--r--src/osd/winui/res/bkground.bmpbin0 -> 10124 bytes
-rw-r--r--src/osd/winui/res/checkmark.icobin0 -> 6518 bytes
-rw-r--r--src/osd/winui/res/controller.icobin0 -> 2238 bytes
-rw-r--r--src/osd/winui/res/cpu.icobin0 -> 6006 bytes
-rw-r--r--src/osd/winui/res/custom.icobin0 -> 3638 bytes
-rw-r--r--src/osd/winui/res/display.icobin0 -> 6518 bytes
-rw-r--r--src/osd/winui/res/foldavail.icobin0 -> 3638 bytes
-rw-r--r--src/osd/winui/res/folder.icobin0 -> 3638 bytes
-rw-r--r--src/osd/winui/res/foldmanu.icobin0 -> 3638 bytes
-rw-r--r--src/osd/winui/res/foldopen.icobin0 -> 3638 bytes
-rw-r--r--src/osd/winui/res/foldsrc.icobin0 -> 3638 bytes
-rw-r--r--src/osd/winui/res/foldunav.icobin0 -> 3638 bytes
-rw-r--r--src/osd/winui/res/foldyear.icobin0 -> 3638 bytes
-rw-r--r--src/osd/winui/res/harddisk.icobin0 -> 3638 bytes
-rw-r--r--src/osd/winui/res/hbmame.icobin0 -> 4286 bytes
-rw-r--r--src/osd/winui/res/hbmameui.icobin0 -> 4286 bytes
-rw-r--r--src/osd/winui/res/header_down.icobin0 -> 502 bytes
-rw-r--r--src/osd/winui/res/header_up.icobin0 -> 502 bytes
-rw-r--r--src/osd/winui/res/horz.icobin0 -> 3262 bytes
-rw-r--r--src/osd/winui/res/icon_asc.icobin0 -> 4846 bytes
-rw-r--r--src/osd/winui/res/icon_des.icobin0 -> 4846 bytes
-rw-r--r--src/osd/winui/res/icon_snd.icobin0 -> 4846 bytes
-rw-r--r--src/osd/winui/res/icon_sndn.icobin0 -> 4846 bytes
-rw-r--r--src/osd/winui/res/joystick.icobin0 -> 6518 bytes
-rw-r--r--src/osd/winui/res/keyboard.icobin0 -> 6518 bytes
-rw-r--r--src/osd/winui/res/mameui.manifest15
-rw-r--r--src/osd/winui/res/manufact.icobin0 -> 3638 bytes
-rw-r--r--src/osd/winui/res/nonwork.icobin0 -> 1406 bytes
-rw-r--r--src/osd/winui/res/samples.icobin0 -> 1406 bytes
-rw-r--r--src/osd/winui/res/sound.icobin0 -> 6518 bytes
-rw-r--r--src/osd/winui/res/source.icobin0 -> 3638 bytes
-rw-r--r--src/osd/winui/res/splith.curbin0 -> 518 bytes
-rw-r--r--src/osd/winui/res/toolbar.bmpbin0 -> 1198 bytes
-rw-r--r--src/osd/winui/res/vert.icobin0 -> 3262 bytes
-rw-r--r--src/osd/winui/res/win_clone.icobin0 -> 2238 bytes
-rw-r--r--src/osd/winui/res/win_imp.icobin0 -> 2238 bytes
-rw-r--r--src/osd/winui/res/win_noro.icobin0 -> 2238 bytes
-rw-r--r--src/osd/winui/res/win_redx.icobin0 -> 3638 bytes
-rw-r--r--src/osd/winui/res/win_roms.icobin0 -> 6006 bytes
-rw-r--r--src/osd/winui/res/win_unkn.icobin0 -> 2238 bytes
-rw-r--r--src/osd/winui/res/working.icobin0 -> 3638 bytes
-rw-r--r--src/osd/winui/res/year.icobin0 -> 3638 bytes
-rw-r--r--src/osd/winui/resource.h482
-rw-r--r--src/osd/winui/resource.hm122
-rw-r--r--src/osd/winui/screenshot.cpp590
-rw-r--r--src/osd/winui/screenshot.h60
-rw-r--r--src/osd/winui/splitters.cpp371
-rw-r--r--src/osd/winui/splitters.h80
-rw-r--r--src/osd/winui/tabview.cpp270
-rw-r--r--src/osd/winui/tabview.h44
-rw-r--r--src/osd/winui/treeview.cpp2515
-rw-r--r--src/osd/winui/treeview.h212
-rw-r--r--src/osd/winui/ui_opts.h367
-rw-r--r--src/osd/winui/winui.cpp6664
-rw-r--r--src/osd/winui/winui.h106
-rw-r--r--src/version.cpp22
850 files changed, 431762 insertions, 489 deletions
diff --git a/README.md b/README.md
index 3640c350e34..d7d386c3ad4 100644
--- a/README.md
+++ b/README.md
@@ -1,111 +1,47 @@
-
-# **MAME** #
-
-[![Join the chat at https://gitter.im/mamedev/mame](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/mamedev/mame?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
-
-Build status for tiny build only, containing just core parts of project:
-
-| OS/Compiler | Status |
-| ------------- |:-------------:|
-|Linux GCC / OSX Clang| [![Build Status](https://travis-ci.org/mamedev/mame.svg?branch=master)](https://travis-ci.org/mamedev/mame) |
-|Windows MinGW | [![Build Status](https://tea-ci.org/api/badges/mamedev/mame/status.svg)](https://tea-ci.org/mamedev/mame) |
-
-Static analysis status for entire build (except for third-party parts of project):
-
-[![Coverity Scan Status](https://scan.coverity.com/projects/5727/badge.svg?flat=1)](https://scan.coverity.com/projects/mame-emulator)
-
-What is MAME?
-=============
-
-MAME is a multi-purpose emulation framework.
-
-MAME's purpose is to preserve decades of software history. As electronic technology continues to rush forward, MAME prevents this important "vintage" software from being lost and forgotten. This is achieved by documenting the hardware and how it functions. The source code to MAME serves as this documentation. The fact that the software is usable serves primarily to validate the accuracy of the documentation (how else can you prove that you have recreated the hardware faithfully?). Over time, MAME (originally stood for Multiple Arcade Machine Emulator) absorbed the sister-project MESS (Multi Emulator Super System), so MAME now documents a wide variety of (mostly vintage) computers, video game consoles and calculators, in addition to the arcade video games that were its initial focus.
-
-How to compile?
+What is HBMAME?
===============
-If you're on a *NIX or OSX system, it could be as easy as typing
-
-```
-make
-```
-
-for a MAME build,
+HBMAME stands for Home Brew MAME.
-```
-make SUBTARGET=arcade
-```
+HBMAME's has 2 purposes:
+Firstly is to preserve homebrew games written for arcade machines or arcade emulators.
+Secondly is to include worthwhile hacks of arcade games.
+All the documentation of the hardware can be found in the MAME source.
-for an arcade-only build, or
+How to compile
+==============
```
-make SUBTARGET=mess
+make TARGET=hbmame
```
-for MESS build.
-
-See the [Compiling MAME](http://docs.mamedev.org/initialsetup/compilingmame.html) page on our documentation site for more information, including prerequisites for Mac OS X and popular Linux distributions.
-
-For recent versions of OSX you need to install [Xcode](https://developer.apple.com/xcode/) including command-line tools and [SDL 2.0](https://www.libsdl.org/download-2.0.php).
-
-For Windows users, we provide a ready-made [build environment](http://mamedev.org/tools/) based on MinGW-w64.
-
-Visual Studio builds are also possible, but you still need [build environment](http://mamedev.org/tools/) based on MinGW-w64.
-In order to generate solution and project files just run:
-
-```
-make vs2015
-```
-or use this command to build it directly using msbuild
+or
```
-make vs2015 MSBUILD=1
+make TARGET=hbmame OSD=winui
```
Where can I find out more?
-=============
+==========================
* [Official MAME Development Team Site](http://mamedev.org/) (includes binary downloads for MAME and MESS, wiki, forums, and more)
-* [Official MESS Wiki](http://mess.redump.net/)
-* [MAME Testers](http://mametesters.org/) (official bug tracker for MAME and MESS)
-
-
-Contributing
-=============
-
-## Coding standard
-
-MAME source code should be viewed and edited with your editor set to use four spaces per tab. Tabs are used for initial indentation of lines, with one tab used per indentation level. Spaces are used for other alignment within a line.
-
-Some parts of the code follow [Allman style](https://en.wikipedia.org/wiki/Indent_style#Allman_style); some parts of the code follow [K&R style](https://en.wikipedia.org/wiki/Indent_style#K.26R_style) -- mostly depending on who wrote the original version. **Above all else, be consistent with what you modify, and keep whitespace changes to a minimum when modifying existing source.** For new code, the majority tends to prefer Allman style, so if you don't care much, use that.
+* [Official HBMAME site](http://hbmame.1emulation.com/)
+* [Forum](http://www.mameworld.info/ubbthreads/postlist.php?Cat=&Board=misfitmame) (bug reports go here too)
-All contributors need to either add a standard header for license info (on new files) or inform us of their wishes regarding which of the following licenses they would like their code to be made available under: the [BSD-3-Clause](http://opensource.org/licenses/BSD-3-Clause) license, the [LGPL-2.1](http://opensource.org/licenses/LGPL-2.1), or the [GPL-2.0](http://opensource.org/licenses/GPL-2.0).
-License
-=======
-The MAME project as a whole is distributed under the terms of the [GNU General Public License, version 2](http://opensource.org/licenses/GPL-2.0) or later (GPL-2.0+), since it contains code made available under multiple GPL-compatible licenses. A great majority of files (over 90% including core files) are under the [BSD-3-Clause License](http://opensource.org/licenses/BSD-3-Clause) and we would encourage new contributors to distribute files under this license.
+Licensing Information
+=====================
-Please note that MAME is a registered trademark of Gregory Ember, and permission is required to use the "MAME" name, logo, or wordmark.
+Information about the MAME content can be found at https://github.com/mamedev/mame/blob/master/README.md
-<a href="http://opensource.org/licenses/GPL-2.0" target="_blank">
-<img align="right" src="http://opensource.org/trademarks/opensource/OSI-Approved-License-100x137.png">
-</a>
+Information about the MAME license particulars and disclaimers can be found at https://github.com/mamedev/mame/blob/master/LICENSE.md
- Copyright (C) 1997-2018 MAMEDev and contributors
+Information about the WINUI portion can be found at https://github.com/Robbbert/mameui/blob/master/docs/winui_license.txt
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
+Warning to trolls
+=================
- You should have received a copy of the GNU General Public License along
- with this program; if not, write to the Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+If this online facility gets abused again, it will be removed permanently.
-Please see [LICENSE.md](LICENSE.md) for further details.
diff --git a/docs/BSD3Clause.txt b/docs/BSD3Clause.txt
new file mode 100644
index 00000000000..ae69751d652
--- /dev/null
+++ b/docs/BSD3Clause.txt
@@ -0,0 +1,12 @@
+Copyright (c) <YEAR>, <OWNER>
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
+
+3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/docs/release/BSD3Clause.txt b/docs/release/BSD3Clause.txt
new file mode 100644
index 00000000000..ae69751d652
--- /dev/null
+++ b/docs/release/BSD3Clause.txt
@@ -0,0 +1,12 @@
+Copyright (c) <YEAR>, <OWNER>
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
+
+3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/docs/release/README.md b/docs/release/README.md
new file mode 100644
index 00000000000..d7d386c3ad4
--- /dev/null
+++ b/docs/release/README.md
@@ -0,0 +1,47 @@
+What is HBMAME?
+===============
+
+HBMAME stands for Home Brew MAME.
+
+HBMAME's has 2 purposes:
+Firstly is to preserve homebrew games written for arcade machines or arcade emulators.
+Secondly is to include worthwhile hacks of arcade games.
+All the documentation of the hardware can be found in the MAME source.
+
+How to compile
+==============
+
+```
+make TARGET=hbmame
+```
+
+or
+
+```
+make TARGET=hbmame OSD=winui
+```
+
+
+Where can I find out more?
+==========================
+
+* [Official MAME Development Team Site](http://mamedev.org/) (includes binary downloads for MAME and MESS, wiki, forums, and more)
+* [Official HBMAME site](http://hbmame.1emulation.com/)
+* [Forum](http://www.mameworld.info/ubbthreads/postlist.php?Cat=&Board=misfitmame) (bug reports go here too)
+
+
+Licensing Information
+=====================
+
+Information about the MAME content can be found at https://github.com/mamedev/mame/blob/master/README.md
+
+Information about the MAME license particulars and disclaimers can be found at https://github.com/mamedev/mame/blob/master/LICENSE.md
+
+Information about the WINUI portion can be found at https://github.com/Robbbert/mameui/blob/master/docs/winui_license.txt
+
+
+Warning to trolls
+=================
+
+If this online facility gets abused again, it will be removed permanently.
+
diff --git a/docs/release/artwork/PMMMCabArtwork.zip b/docs/release/artwork/PMMMCabArtwork.zip
new file mode 100644
index 00000000000..fbf8f3e8a55
--- /dev/null
+++ b/docs/release/artwork/PMMMCabArtwork.zip
Binary files differ
diff --git a/docs/release/artwork/monaco.zip b/docs/release/artwork/monaco.zip
new file mode 100644
index 00000000000..ecd16c5c4d8
--- /dev/null
+++ b/docs/release/artwork/monaco.zip
Binary files differ
diff --git a/docs/release/build/clean.bat b/docs/release/build/clean.bat
new file mode 100644
index 00000000000..2b7d38e4b96
--- /dev/null
+++ b/docs/release/build/clean.bat
@@ -0,0 +1,11 @@
+@echo off
+if %1q==q rd /s /q build
+if %1q==q goto end
+
+if exist ini\%1.ini del ini\%1.ini
+if exist cfg\%1.cfg del cfg\%1.cfg
+if exist nvram\%1.nv del nvram\%1.nv
+if exist nvram\%1 rd /s /q nvram\%1
+:end
+echo %1 cleaned
+
diff --git a/docs/release/build/d.bat b/docs/release/build/d.bat
new file mode 100644
index 00000000000..5a41d754e83
--- /dev/null
+++ b/docs/release/build/d.bat
@@ -0,0 +1,3 @@
+:start
+del %1.exe
+if exist %1.exe goto start
diff --git a/docs/release/build/make.bat b/docs/release/build/make.bat
new file mode 100644
index 00000000000..be54586ea54
--- /dev/null
+++ b/docs/release/build/make.bat
@@ -0,0 +1,13 @@
+del hbmameui.sym
+:start
+del hbmameui.exe
+if exist hbmameui.exe goto start
+call make32 -j4 "OSD=winui" %1 %2 %3
+if not exist hbmameui.exe goto end
+del hbmame.sym
+:start1
+del hbmame.exe
+if exist hbmame.exe goto start1
+call make32 -j4 %1 %2 %3
+:end
+hbmame -valid
diff --git a/docs/release/build/make32.bat b/docs/release/build/make32.bat
new file mode 100644
index 00000000000..e4ccb757d73
--- /dev/null
+++ b/docs/release/build/make32.bat
@@ -0,0 +1,12 @@
+@echo off
+set MINGW32=E:\Mingw\5-3-0\mingw32
+set minpath=%MINGW32%\bin
+set oldpath=%Path%
+set Path=%minpath%;%oldpath%
+%MINGW32%\bin\make PTR64=0 TARGET=hbmame SYMBOLS=0 NO_SYMBOLS=1 %1 %2 %3 %4
+set Path=%oldpath%
+set oldpath=
+if exist hbmame.exe %minpath%\strip -s hbmame.exe
+if exist hbmameui.exe %minpath%\strip -s hbmameui.exe
+set minpath=
+
diff --git a/docs/release/build/make64.bat b/docs/release/build/make64.bat
new file mode 100644
index 00000000000..052de22643b
--- /dev/null
+++ b/docs/release/build/make64.bat
@@ -0,0 +1,14 @@
+@echo off
+set MINGW64=E:\Mingw\5-3-0\mingw64
+set minpath=%MINGW64%\bin
+set oldpath=%Path%
+set Path=%minpath%;%oldpath%
+echo.|time
+%MINGW64%\bin\make PTR64=1 TARGET=hbmame SYMBOLS=0 NO_SYMBOLS=1 %1 %2 %3 %4
+echo.|time
+set Path=%oldpath%
+set oldpath=
+if exist hbmame64.exe %minpath%\strip -s hbmame64.exe
+if exist hbmameui64.exe %minpath%\strip -s hbmameui64.exe
+set minpath=
+
diff --git a/docs/release/build/newsrc.bat b/docs/release/build/newsrc.bat
new file mode 100644
index 00000000000..24a920bd783
--- /dev/null
+++ b/docs/release/build/newsrc.bat
@@ -0,0 +1,51 @@
+set from=c:\HBMAME
+set to=c:\HBMAME\docs\release
+
+rd %to%\src /q /s
+
+md %to%\src\emu
+copy /Y %from%\src\version.cpp %to%\src\version.cpp
+copy /Y %from%\src\emu\validity.cpp %to%\src\emu
+copy /Y %from%\src\emu\digfx.h %to%\src\emu
+copy /Y %from%\src\emu\emuopts.* %to%\src\emu
+copy /Y %from%\src\emu\gamedrv.h %to%\src\emu
+copy /Y %from%\src\emu\video.* %to%\src\emu
+copy /Y %from%\src\version.cpp %to%\src
+
+md %to%\src\frontend\mame
+copy /Y %from%\src\frontend\mame\audit.* %to%\src\frontend\mame
+copy /Y %from%\src\frontend\mame\info.cpp %to%\src\frontend\mame
+copy /Y %from%\src\frontend\mame\mameopts.* %to%\src\frontend\mame
+
+md %to%\src\devices\cpu\m68000
+copy /Y %from%\src\devices\cpu\m68000\m68kcpu.cpp %to%\src\devices\cpu\m68000
+
+md %to%\src\mame\drivers
+copy /Y %from%\src\mame\drivers\jrpacman.cpp %to%\src\mame\drivers
+
+md %to%\src\hbmame
+xcopy /E /Y %from%\src\hbmame %to%\src\hbmame
+
+md %to%\src\osd\winui
+xcopy /E /Y %from%\src\osd\winui %to%\src\osd\winui
+
+md %to%\src\osd\modules\render
+copy /Y %from%\src\osd\modules\render\drawd3d.cpp %to%\src\osd\modules\render
+
+rem now save all our stuff to github
+copy %from%\*.bat %to%\build
+xcopy /E /Y %from%\scripts %to%\scripts
+
+rem convert all the unix documents to windows format for notepad
+type %from%\docs\BSD3Clause.txt | MORE /P > %to%\docs\BSD3Clause.txt
+type %from%\docs\LICENSE | MORE /P > %to%\docs\license.txt
+type %from%\docs\winui_license.txt | MORE /P > %to%\docs\winui_license.txt
+
+pause
+echo off
+cls
+echo.
+echo RAR up everything.
+echo.
+
+pause
diff --git a/docs/release/build/release.bat b/docs/release/build/release.bat
new file mode 100644
index 00000000000..438a9dd6e6e
--- /dev/null
+++ b/docs/release/build/release.bat
@@ -0,0 +1,25 @@
+@echo off
+echo HAVE YOU UPDATED version.cpp ???
+pause
+
+
+call newsrc.bat
+call clean.bat
+call clean.bat
+call clean.bat
+call clean.bat
+
+rem --- 32bit ---
+del hbmameui.exe
+call make32 -j4 "OSD=winui" %1 %2 %3
+if not exist hbmameui.exe goto end
+del hbmame.exe
+call make32 -j4 %1 %2 %3
+
+rem --- 64bit ---
+del hbmameui64.exe
+call make64 -j4 "OSD=winui" %1 %2 %3
+if not exist hbmameui64.exe goto end
+del hbmame64.exe
+call make64 -j4 %1 %2 %3
+:end
diff --git a/docs/release/build/update.bat b/docs/release/build/update.bat
new file mode 100644
index 00000000000..e951c4bf0c6
--- /dev/null
+++ b/docs/release/build/update.bat
@@ -0,0 +1,6 @@
+cd\
+git fetch upstream
+git remote prune upstream
+git checkout master
+git merge upstream/master
+pause
diff --git a/docs/release/build/z.bat b/docs/release/build/z.bat
new file mode 100644
index 00000000000..0e67b45c11e
--- /dev/null
+++ b/docs/release/build/z.bat
@@ -0,0 +1,3 @@
+:start
+del hbmame64.exe
+if exist hbmame64.exe goto start
diff --git a/docs/release/cpanel/spatrol.png b/docs/release/cpanel/spatrol.png
new file mode 100644
index 00000000000..e0c8c95143d
--- /dev/null
+++ b/docs/release/cpanel/spatrol.png
Binary files differ
diff --git a/docs/release/docs.rar b/docs/release/docs.rar
new file mode 100644
index 00000000000..b56b3946af5
--- /dev/null
+++ b/docs/release/docs.rar
Binary files differ
diff --git a/docs/release/docs/BSD3Clause.txt b/docs/release/docs/BSD3Clause.txt
new file mode 100644
index 00000000000..a5d1db6ce7d
--- /dev/null
+++ b/docs/release/docs/BSD3Clause.txt
@@ -0,0 +1,13 @@
+Copyright (c) <YEAR>, <OWNER>
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
+
+3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
diff --git a/docs/release/docs/clean.bat b/docs/release/docs/clean.bat
new file mode 100644
index 00000000000..814ad102fdf
--- /dev/null
+++ b/docs/release/docs/clean.bat
@@ -0,0 +1,12 @@
+@echo off
+if %1q==q rd /s /q build
+if %1q==q del 3rdparty\genie\bin\windows\genie.exe
+if %1q==q goto end
+
+if exist ini\%1.ini del ini\%1.ini
+if exist cfg\%1.cfg del cfg\%1.cfg
+if exist nvram\%1.nv del nvram\%1.nv
+if exist nvram\%1 rd /s /q nvram\%1
+:end
+echo %1 cleaned
+
diff --git a/docs/release/docs/compile.doc b/docs/release/docs/compile.doc
new file mode 100644
index 00000000000..179d28f930b
--- /dev/null
+++ b/docs/release/docs/compile.doc
Binary files differ
diff --git a/docs/release/docs/faq.txt b/docs/release/docs/faq.txt
new file mode 100644
index 00000000000..880b18d5188
--- /dev/null
+++ b/docs/release/docs/faq.txt
@@ -0,0 +1,107 @@
+HBMAME FAQ
+----------
+
+This should answer the most common questions.
+
+
+1. What are the issues regarding use of source code and the emulator?
+A. HBMAME usage follows the MAME licence precisely. See the MAMEDEV site for details.
+ Any source code that is specific to HBMAME may be incorporated into your build, but you
+ MUST GIVE CREDIT to me (Robbbert) or HBMAME.
+
+2. Save state not working!
+A. We currently do NOT support Save States and High Scores (except games that have the [h] designator).
+ If it happens to work for you, feel fortunate.
+
+3. What does [c] mean?
+A. The game has cheat facilities built in. Press 1 to be invulnerable. Press 2 to go fast.
+ Exception: Cookie-Mon goes slower.
+ Another exception: Bagman Turbo has 1 to go fast, and 2 to be invulnerable to guards.
+
+4. What does [f] mean?
+A. The game has a built in hack to make Pacman go fast. It cannot be turned off.
+
+5. What does [h] mean?
+A. The game has built-in support for saving the high scores in NVRAM.
+
+6. What other cheats exist in Pacman games?
+A. Press 8 to end the level you are on and proceed to the next.
+ Most games have a dipswitch available to allow Pacman to go fast when the Fire key is pressed.
+ This cheat also exists in JrPacMan, and MsPacMan.
+
+7. Tell me about HOMERCIDE.
+A. Coded by David Widel, Graphics by Cutebutwrong.
+ You need to pass over each dot 3 times before it is removed. They start out white, then blue,
+ then green, then eaten. If you eat a power pill, the blue dots turn green, and you go faster.
+ The game features a warping feature. At the start, you can see Homer on a round plate. If you
+ press 1, you will warp to this point. Use it when in danger. Pressing 2 will move the plate
+ to your current location. The counter at the top right shows how many warps you have left.
+
+8. I can't shoot in some of Dave Widel's games (example: Alien Armada / Zap / Multipac / 96in1).
+A. Press 1 to fire.
+
+9. ALPACA doesn't work.
+A. It's an operating system, not a game. See the author's website.
+
+10. How do I get to the config menu in 96IN1 / MADPAC?
+A. From the menu, choose Other Games, then choose Eyes or Mr. TNT, press 1 to start, then press 9.
+
+11. How do I get to the config menu in PM4N1E?
+A. In the Dipswitch menu, turn on the Service switch.
+
+12. How do I play Vector Breakout Plus?
+A. Start Vector Breakout, then hold down 1 and press F3.
+
+13. I can't get all the dots in PAC RABBIT.
+A. Rabbits can jump. And yes, it is possible to jump over a monster. Watch out for the mad fox.
+
+14. The cartoons (TMNTI, etc) don't work.
+A. They need to be set to Japan Console-AES mode. When you see the Unibios screen, press the keys
+ Ctrl, Alt and Space together. Now you are at a menu. Press Ctrl. Press Ctrl to select Japan,
+ then Alt to select Console-AES. Then choose Play Game and press Ctrl to start. These settings
+ will be remembered for next time.
+
+15. Shock Troopers 2nd squad Wesker hack (shockt2w) doesn't work properly.
+A. It needs to be set to Console-AES mode. When you see the Unibios screen, press the keys
+ Ctrl, Alt and Space together. Now you are at a menu. Press Ctrl. Press Space to select Europe,
+ then Alt to select Console-AES. Then choose Play Game and press Ctrl to start. These settings
+ will be remembered for next time. Because you're in Console mode, don't try inserting coins,
+ just press 1 to start playing.
+
+16. Absurd/Quadblok
+A. Absurd doesn't work, but Quadblok does. To play it, press the left or right arrow to select,
+ then insert a coin.
+
+17. Monaco GP
+A. Use the up and down arrows to change gear (high or low). Use any of Ctrl, Alt or Space to
+ accelerate. Space will give the highest speed, and you get speed increases if you get 6000
+ points.
+
+18. WW2demo crashes on the 2nd run
+A. Copy nvram\svcd\saveram into nvram\ww2demo, and make it read-only.
+
+19. Crouching Pony Hidden Dragon only shows a black screen on the 2nd run
+A. Copy nvram\svcd\saveram into nvram\cphd, and make it read-only.
+
+20. Santaball misbehaves on the 2nd run
+A. Copy nvram\svcd\saveram into nvram\santabll, and make it read-only.
+
+21. List of neogeo problems
+A. neonopon - high scores 1 and 2 don't show. Key debounce problem.
+ beast - screen tearing
+ neopong, neopong10 - On the intro page, a vertical bar moves slowly from the left.
+
+22. Bubble Bobble Redux
+A. The monsters can fire at you!
+ bbredux1 - as above, and press P1+P2 while playing to skip to the next level;
+ bbredux2 - as above, and when you lose your last life press P1 to continue;
+ bbredux3 - as above, and saves the high scores. Well, it would, except it isn't coded yet.
+
+23. Ironclad - the screen is rather dark.
+A. Choose Japan or US bios. You still get some Japanese text though.
+
+98. I would like to submit a game.
+A. Send me a PM. Remember, games cannot be included without roms to test with.
+
+99. My question isn't here!
+A. Ask it on the forum at mameworld.info
diff --git a/docs/release/docs/hbnew.txt b/docs/release/docs/hbnew.txt
new file mode 100644
index 00000000000..d25b21491ce
--- /dev/null
+++ b/docs/release/docs/hbnew.txt
@@ -0,0 +1,1166 @@
+What's new in HBMAME
+====================
+
+2018-0x-xx 0.19x
+----------------
+
+
+
+New Working Games
+-----------------
+- [doubledrsp] Double Dragon (Special 2017 v1.0.0311)
+- [kof2k2pl17] Kof 2002 (Plus 2017)
+- [kof95sp] Kof '95 (Special 2017 v1.0.0627)
+- [kof95sp2] Kof '95 (Special 2017 v1.0.0613)
+- [lbsp] The Last Blade (Special 2017 v1.0.0701)
+- [lbsp2] The Last Blade (Special 2017 v1.1)
+- [mk2v28b1] Mortal Kombat II ver 2.8 beta
+- [outrunm] Out Run (with music) by cmonkey
+- [pooyandiag] Pooyan Diagnostics by Shoestring
+- [samsho4sp] Samurai Shodown IV (Special 2017)
+- [samsho2sp5] Samurai Shodown II (Special 2017 v1.1)
+- [scroller] Horizontal Scroll demo on pacman hardware by Hurray Banana
+- [umk3r13b1] Ultimate Mortal Kombat 3 rev 1.3 beta 1
+- [wofs32] Tenchi wo Kurau II (Chinese hack: BOSS Cho Unparalleled Edition)
+- [wofs33] Tenchi wo Kurau II (Chinese hack: Bloody Plus Hack Zhanghw511)
+
+
+
+2017-04-26 0.185
+----------------
+
+- cps1: replaced hard-coded per-game tables with a .key rom.
+
+
+New Working Games
+-----------------
+- [ataris1hw] Atari System 1 Hello World by Luigi30
+- [cps1testma] CPS1 Diagnostic (for megaman 2012-10-29)
+- [cps1testsa] CPS1 Diagnostic (for sf2ce 2012-10-29)
+- [fjbusterbh] Fujiyama Buster (Japan) Boss Hack by e107
+- [galaxyfgbh] Galaxy Fight (Boss Hack 2014 Edition by Yumeji)
+- [neofight] Neo Fight (final ver) by Kannagi
+- [ngtd2] Tech Demo 2 by Luis Miguel Mayor
+- [pwrinst2z]
+- [s1945sr3]
+- [samsho2sp] Samurai Shodown II (Special v1.0.0122)
+- [samsho2sp2] Samurai Shodown II (Special v1.0.0221)
+- [samsho2sp3] Samurai Shodown II (Special v1.0.0320)
+- [samsho2sp4] Samurai Shodown II (Special v1.0.0311)
+- [sf2jbh] Street Fighter II: The World Warrior (Japan 910522 Boss Hack 2014 Edition by Yumeji)
+- [shogwarrbh] Shogun Warriors (World) Boss Hack by e107
+- [sfa3nc]
+- [sfa3nch]
+- [tst_trkfld] Test Rom - Track and Field by Shoestring
+
+
+
+2017-03-29 0.184
+----------------
+
+- Cleaned out unused code from Neogeo driver
+- Renamed many roms to avoid name conflicts, not yet completed.
+
+
+New Working Games
+-----------------
+- [jojobbh2] JoJo's Bizarre Adventure (Boss v2.0 hack by Pipi899 2009-08-08)
+- [jojobbss] JoJo's Bizarre Adventure (Boss hack by Pipi899 2009-07-15)
+- [jojobpow] JoJo's Bizarre Adventure (Power hack by Pipi899 2009-07-15)
+- [jojonbss] JoJo's Venture (Boss hack by Pipi899 2009-07-09)
+- [jojonpow] JoJo's Venture (Power hack by Pipi899 2009-07-11)
+- [kof2k3bl2] Kof2003 (Bootleg Boss hack)
+- [kof2k3bs1] Kof2003 (Boss, PS2 version, EGCG/FCHT Hack Set 1)
+- [kof2k3bs2] Kof2003 (Boss, PS2 version, EGCG/FCHT Hack Set 2)
+- [kof2k3bs3] Kof2003 (Boss, PS2 version, EGCG/FCHT Hack Set 3)
+- [kof2k3nd] Kof2003 (Fully decrypted)
+- [kof2k3nrx] Kof2003 (Neoragex)
+- [kof2k3pch] Kof2003 (Boss hack remixed by ZKW japan jamma pcb)
+- [kof2k3ps3] Kof2003 (PS2 2008-10-31 (EGCG/FCHT))
+- [kof2k3ss] Kof2003 (Silver Style Edition)
+- [kof2k4omg] Kof Special Edition 2004 (Omega v0.5 (KOFONTEAM))
+- [kof94bc] Kof'94 (Boss Colour Remix)
+- [kof94cg] Kof'94 (Colour Patch)
+- [kof94cn] Kof'94 (Chinese Version)
+- [kof94kh] Kof'94 (Korean Hack)
+- [kof94qaq] Kof'94 (Power Enhanced hack by Xuyongsheng90)
+- [kof95k] Kof'95 (Korean Hack)
+- [kof95neo] Kof'95 (Boss Like NGCD v1.1)
+- [kof96ae1b] Kof'96 (10th Anniversary Edition set 3)
+- [kof96dr1] Kof'96 (Dragon Edition set 1)
+- [kof96evsp] Kof'96 WESKER HACK (Evolution Special v1.2)
+- [kof96hp1] Kof'96 (Hack by Pipi899 2007-08-31)
+- [kof96rfsa] Kof'96 (Remix Final Standard v1.4 set 2 hack by SNK2003)
+- [kof96ru2] Kof'96 (Remix Ultra v1.1 hack by CHL/Jason/K3)
+- [kof98bge] Kof'98 (Boss Gold Edition)
+- [kof98c20060214] Kof'98 Combo (2006-02-14)
+- [kof98c20100304] Kof'98 Combo (2010-03-04)
+- [kof98cd2] Kof'98 (NGCD v1.04 (EGHT))
+- [kof98ch1] Kof'98 (Chinese Translation hack set 2)
+- [kof98ecm] Kof'98 (Enhanced Chris Moves hack)
+- [kof98fv] Kof'98 (Flash Revision)
+- [kof98fv2] Kof'98 (Flash Version UK)
+- [kof98izh] Kof'98 (Imitates Kof2002 Attacks Version hack by Zuojie 2008-12-24)
+- [kof98ncdh] Kof'98 (CD to MVS Conversion hack by Kof1996)
+- [kof98rsa] Kof'98 (Ralf Special Attack hack by Wanglins)
+- [kof98rup] Kof'98 (Ultimate Edition v1.0)
+- [kof98sv] Kof'98 (Silver Style Edition)
+- [kof98zy] Kof'98 (Purple Remix)
+- [kof99bhp2] Kof'99 (Perfect Boss Edition hack by Kof1996 2009-10-08)
+- [kof99bs2] Kof'99 (Boss Like DC v1.2f (KOF hackteamwork))
+- [kof99eur4] Kof'99 (Evolution Ultra Remix hack by Yashional 2009-07-17)
+- [kof99ev2] Kof'99 (Evolution Special)
+- [kof99evos] Kof'99 (proto)(Evolution Balanced)
+- [kof99fix1] Kof'99 (proto)(Happy Birthday to Iori Special set 1)
+- [kof99fix2] Kof'99 (proto)(Happy Birthday to Iori Special set 2)
+- [kof99nevo] Kof'99 (Evolution Revision hack by Chl, Robert)
+- [kof99phl] Kof'99 (proto)(Plus hack by Liyang1983)
+- [kof99rd] Kof'99 (Red Evil Edition)
+- [kof99rev] Kof'99 (Revolution Merry Christmas Okuhoshi hack set 1)
+- [kof99roll] Kof'99 (Advanced Roll (KOFONTEAM))
+- [kof99spd] Kof'99 (Special Dialogue hack by Star07)
+- [kof99srr1] Kof'99 (Super Remix Red Version)
+- [koggv] King of Gladiator (Green Edition)
+- [kogplus1] King of Gladiator PLUS (set 2)
+- [kogsm] King of Gladiator (Smoke Version v1.5 Fix by KalceTin (KOFONTEAM))
+- [redeartno] Red Earth (Euro 961121, NO CD)
+- [redearex] Red Earth (Ex Super Version hack by Pipi899 2009-09-08)
+- [sfiiibhp] Street Fighter III: New Generation (Boss hack by Pipi899 2009-08-08)
+- [sfiiipmp] Street Fighter III: New Generation (Power hack by Pipi899 2009-07-06)
+- [sfiii2bh] Street Fighter III 2nd Impact: Giant Attack (Boss hack by Yumeji)
+- [sfiii2np] Street Fighter III 2nd Impact: Giant Attack (Power hack by Pipi899 2009-07-14)
+- [sfiii2pl] Street Fighter III 2nd Impact: Giant Attack (Plus v1.0 hack by Krysofun)
+- [sfiii3bh] Street Fighter III 3rd Strike: Fight for the Future (Boss hack by Yumeji)
+- [sfiii3mh] Street Fighter III 3rd Strike: Fight for the Future (Makoto Color hack)
+- [sfiii3ng] Street Fighter III 3rd Strike: Fight for the Future (Gill Unable Reactivating hack by Pipi899 2009-07-14)
+- [sfiii3np] Street Fighter III 3rd Strike: Fight for the Future (Power hack by Pipi899 2009-07-14)
+- [teetertfp] Teeter Torture (free play hack)
+- [timelimit] Time Limit (colour hack) by Dink
+
+
+
+
+2017-03-01 0.183
+----------------
+
+- kizunaeh set name was corrected to kizunab, and the correct kizunaeh added.
+- corrected the parent of ragnagrdeh
+
+
+New Working Games
+-----------------
+- [deathstar] Death Star (by Stefano Bodrato)
+- [fswordsb1] Fighters Swords (Boss Hack v1.0)
+- [fswordsb2] Fighters Swords (Boss Hack v2.0)
+- [fswordsbf] Fighters Swords (Boss Hack v1.0f)
+- [kizunaeh] Kizuna Encounter (Easy Moves hack by 007325 2009-02-23)
+- [lbd] Last Blade (Boss hack by Creamymami/Kurouri/Wesker/Ydmis)
+- [lbsk] Last Blade Special Moves Revision Final (EGCG)
+- [lb2bh] Last Blade 2 (Boss Easy Moves hack by 007325 2009-03-06)
+- [lb2uh] Last Blade 2 (Yano's Ultimate hack)
+- [lresortpx] Last Resort (Plus Max hack by Xyahzhs)
+- [maglordpx] Magician Lord (Plus Max hack by Xyahzhs)
+- [matrimbh] Matrimelee (Boss hack by Creamymami (EGCG))
+- [ncombatpk] Ninja Combat (Plus hack by Krizal chen (Dsght))
+- [ncommandsp] Ninja Commando (Super Plus hack by e107 2009-08-16)
+- [ninjamasasp] Ninja Master's (Plus Remixed by ZKW)
+- [ninjamaschl] Ninja Master's (Hack by CHL)
+- [ninjamashb] Ninja Master's (Happy Batter Edition hack by 007325 2009-09-09)
+- [nitdpx] Nightmare in the Dark (Plus Max hack by Xyahzhs)
+- [preisle2px] Prehistoric Isle 2 (Plus Max hack by Xyahzhs)
+- [ragnagrdbe] Operation Ragnagard (Easy Moves hack)
+- [ragnagrdbs] Operation Ragnagard (Boss hack by Yumeji)
+- [ragnagrdsb] Operation Ragnagard (Super Boss Easy Moves hack by Lichenzhao 2009-11-16)
+- [rotdbh] Rage of the Dragons (Boss hack by Dodowang)
+- [s1945peh] Strikers 1945 Plus (Super Shot hack by KrysoFun)
+- [s1945ph] Strikers 1945 Plus (Ascender P55 hack by Yumeji)
+- [samshos1] Samurai Shodown (Special v0.1 2005-09-19)
+- [samshozk] Samurai Shodown (Hack by Zuojie, Kof1996 2008-10-23)
+- [samsho2emb] Samurai Shodown II (Easy Move hack by Blackheart 2009-08-11)
+- [samsho2hy] Samurai Shodown II (Boss hack by Yashional)
+- [samsho2mb] Samurai Shodown II (Moves hack by Blackheart 2009-08-03)
+- [samsho2q] Samurai Shodown II (Soul Q Version v1.0)
+- [samsho2s2] Samurai Shodown II (Special v0.12 2008-08-26)
+- [samsho2zk] Samurai Shodown II (Hack by Zuojie, Kof1996 2008-10-23)
+- [samsho3s2] Samurai Shodown III (Special v0.12 2008-09-01)
+- [samsho3ss] Samurai Shodown III (Special v0.1 2005-09-19)
+- [samsho3zk] Samurai Shodown III (Hack by Zuojie, Kof1996 2008-10-23)
+- [samsho4mb] Samurai Shodown IV (Moves hack by Blackheart 2009-08-05)
+- [samsho4pm] Samurai Shodown IV (Power Max hack by Pipi899 2009-06-16)
+- [samsho4s2] Samurai Shodown IV (Special v0.12 2008-09-01)
+- [samsho4zk] Samurai Shodown IV (Hack by Zuojie, Kof1996 2008-10-23)
+- [samsho5ba] Samurai Shodown V (Boss hack alternate set)
+- [samsho5bh] Samurai Shodown V (Boss hack by Dodowang)
+- [samsho5ge] Samurai Shodown V (Genjuro Evil Edition hack by Shiro)
+- [samsho5s2] Samurai Shodown V (Special v0.12 2008-08-26)
+- [samsho5zk] Samurai Shodown V (Hack by Zuojie, Kof1996 2008-10-23)
+- [savagereb] Savage Reign (Boss hack by Yumeji/Dodowang)
+- [sdodgebp] Super Dodge Ball (Power hack by Blackheart 2009-09-02)
+- [sengoku3eh] Sengoku 3 (Evolution Special hack)
+- [sengoku3s] Sengoku 3 (Evolution v1.0 hack by Sjx (FCHT))
+- [snakes] Snakes (by Stefano Bodrato)
+- [svccprw] SvC Chaos (Plus Remix v2.0 hack by Wesker)
+- [svcee] SvC Chaos (Hack by Ethen.H(EGHT) 2008-01-21)
+- [svcg] SvC Chaos (Boss Special Kyo Green Edition)
+- [svch2] SvC Chaos (Remix v1.1 by chbandy)
+- [svcice] SvC Chaos (Ice Edition)
+- [svclspc] SvC Chaos (Pink Edition)
+- [svcnh] SvC Chaos (Like PS2 Version old)
+- [svcplusg] SvC Chaos (Plus Special)
+- [svcplusp] SvC Chaos (Plus Purple Fire hack by Kawada7278 set 1)
+- [svcplusp2] SvC Chaos (Plus Purple Fire hack by Kawada7278 set 2)
+- [svcryu] SvC Chaos (Ryu BT Revision hack by Gordon)
+- [svcspjoy] SvC Chaos (Super Plus Joy Modified hack by Wesker/Jason/K3)
+- [svcstdse] SvC Chaos (Subdue the Dragon Super Edition)
+- [svcxlb] SvC Chaos (Knife Millennium Turbidity v1.0 hack by Lb70)
+
+
+
+
+2017-01-27 0.182
+----------------
+
+
+New Games
+---------
+- [mshvsemb] Marvel Super Heroes Vs. Street Fighter (Easy Moves hack by Blackheart 2009-04-23)
+- [mshvsfjh] Marvel Super Heroes Vs. Street Fighter (Boss hack by Yumeji)
+- [mshvsfjphp] Marvel Super Heroes Vs. Street Fighter (Power hack by Pipi899)
+- [pactetris] Tetris on Pacman hardware (by Ben Leperchey)
+- [sf2bhj] Street Fighter II: The World Warrior (Boss hack by Yumeji)
+- [sf2cehk] Street Fighter II': Champion Edition (Hack Unknown by Kawada7278)
+- [sf2cehp] Street Fighter II': Champion Edition (Moves hack by Pipi899 2009-01-10)
+- [sf2cejem] Street Fighter II': Champion Edition (Easy Moves hack by Blackheart 2009-07-30)
+- [sfa3br] Street Fighter Alpha 3 (Brasil 050513)
+- [sfa3dp] Street Fighter Alpha 3 (Dragon Edition hack by Pipi899 2009-05-10)
+- [sfa3sp2] Street Fighter Alpha 3 (Boss Special Fix hack by Pipi899 2009-09-27)
+- [sfa3spp] Street Fighter Alpha 3 (Boss Special hack by Pipi899 2009-07-03)
+- [sfa3uhd] Street Fighter Alpha 3 (Revision hack by Dodowang (ECGC))
+- [sfz2ajhp] Street Fighter Zero 2 Alpha (Enhanced Dan Version hack by Pipi899 2008-12-11)
+- [sfz2aldp] Street Fighter Zero 2 Alpha (Dragon Edition v1.0 hack by Pipi899 2009-03-17)
+- [sfz2aldp2] Street Fighter Zero 2 Alpha (Dragon Edition v2.0 hack by Pipi899 2009-04-24)
+- [sfz2jyh] Street Fighter Zero 2 (Boss hack by Yumeji)
+- [sfz3jb] Street Fighter Zero 3 (Boss hack by Yumeji)
+- [sfz3jemb] Street Fighter Zero 3 (Easy Moves hack by Blackheart 2009-05-01)
+- [sfz3jhp] Street Fighter Zero 3 (Hack by Pipi899)
+- [sfz3jsep] Street Fighter Zero 3 (Shin Edition hack by Pipi899 2009-01-01)
+- [sfjzboss] Street Fighter Zero (Boss hack set 2 by Yumeji)
+- [sfzjyh] Street Fighter Zero (Boss hack set 1 by Yumeji)
+- [sk2h4q] Sangokushi II (Chinese hack v2.0)
+- [sk2h5q] Sangokushi II (Revised Version hack by Winuxx 2009-09-09)
+- [sk2h6q] Sangokushi II (Boss hack by Winuxx)
+- [srallyp] Sega Rally Pro Drivin'
+- [ssf2tfp] Super Street Fighter II Turbo (French Parody by Cigarette Patch)
+- [ssf2tfr] Super Street Fighter II Turbo (French by NEOARC Team)
+- [ssf2tpls] Super Street Fighter II Turbo (Plus v0.9 beta KrysoFun hack)
+- [ssf2xjhy] Super Street Fighter II X: Grand Master Challenge (Gouki Edition hack by Yumeji)
+- [ssf2xjjs] Super Street Fighter II X: Grand Master Challenge (Original Color FGCH hack)
+- [ssf2xjnc] Super Street Fighter II X: Grand Master Challenge (Nude hack by Shiro)
+- [ssf2zhp] Super Street Fighter II (Easy Move Zangief Edition hack by Pipi899 2009-01-05)
+- [wofbio] Tenchi wo Kurau II (Chinese hack: Boss Enhanced)
+- [wofbt] Tenchi wo Kurau II (Chinese hack: Zhang Fei Enhanced)
+- [wofctj] Tenchi wo Kurau II (Chinese hack: Cao Zhi Jian Enhanced)
+- [wofdy] Tenchi wo Kurau II (Chinese hack: Di Yu Enhanced)
+- [wofdyg] Tenchi wo Kurau II (Chinese hack: Di Yi Guan Enhanced)
+- [wofes] Warriors of Fate (Enhanced Super Version hack by Chaihe)
+- [woffh] Tenchi wo Kurau II (Chinese hack: Fen Hong Enhanced)
+- [wofjd] Tenchi wo Kurau II (Japan 921031 Phoenix Edition)
+- [wofjehp] Tenchi wo Kurau II (Hack by Pipi899 2009-01-02)
+- [wofjh2] Tenchi wo Kurau II (Hack by Shinwa)
+- [wofjhdwb] Tenchi wo Kurau II (Heaven and Earth Double Attack Test Version hack by Winuxx, Blackheart 2009-12-14)
+- [wofjhp2] Tenchi wo Kurau II (Easy Moves hack by Pipi899 2009-01-12)
+- [wofjjq] Tenchi wo Kurau II (Chinese hack: Xue Xing Enhanced)
+- [wofjmsp] Tenchi wo Kurau II (Modified SubVersion hack by Pipi899 2010-01-26)
+- [wofjpsrw] Tenchi wo Kurau II (Playstation Version hack by Rockywall 2009-12-09)
+- [wofjrabh] Tenchi wo Kurau II (Revised Alternate hack by Blackheart 2009-12-17)
+- [wofjrlb] Tenchi wo Kurau II (Revised Version hack by Lb70 2009-03-21)
+- [wofjzcr1] Tenchi wo Kurau II (Zhao Chain Revised v1.0 hack by Blackheart 2009-12-16)
+- [wofgyc] Tenchi wo Kurau II (Chinese hack: Guan Yu Chi Tu Ma Enhanced)
+- [wofqyq] Tenchi wo Kurau II (Chinese hack: Guan Yu Enhanced)
+- [wofhgz] Tenchi wo Kurau II (Chinese hack: Han Guang Zhan Enhanced)
+- [wofhzj] Tenchi wo Kurau II (Chinese hack: Huang Zhong Enhanced)
+- [wofjqz] Tenchi wo Kurau II (Chinese hack: Jian Qi Zong Heng Enhanced)
+- [wofmr] Tenchi wo Kurau II (Chinese hack: Mei ren Guan Enhanced)
+- [wofsbl] Tenchi wo Kurau II (Chinese hack: Shen Bing Li Qi Enhanced)
+- [wofsjj] Tenchi wo Kurau II (Chinese hack: Shen Jian + Jian Qi Enhanced)
+- [wofsz] Tenchi wo Kurau II (Chinese hack: Shao Zhu Enhanced)
+- [wofud] Warriors of Fate (USA 921031 Phoenix Edition)
+- [wofyjs] Tenchi wo Kurau II (Chinese hack: Yu Jian Shu Enhanced)
+- [wofxyg] Tenchi wo Kurau II (Chinese hack: Ying Xiong Guan Enhanced)
+- [wofzhs] Tenchi wo Kurau II (Chinese hack: Zhao Huan Shou Enhanced)
+- [wofzhy] Tenchi wo Kurau II (Chinese hack: Zhao Huan Shou + Yu Jian Shu Enhanced)
+- [wofzy2] Tenchi wo Kurau II (Chinese hack: Zhao Yun Lian Ti Enhanced)
+- [wofzy3] Tenchi wo Kurau II (Chinese hack: Zhao Yun Sheng Long Enhanced)
+- [wofzyq] Tenchi wo Kurau II (Chinese hack: Zhao Yun Bao Li Enhanced)
+
+
+
+
+2016-11-30 0.180
+----------------
+
+
+
+A new direction for HBMAME: Games that are added to MAME will no longer be removed
+from HBMAME. If it's a homebrew, it's in HBMAME forever. Also, test roms and other
+non-revenue sets will be added in when they are found. Games such as Pauline Edition
+and Lost Cave have been added back, the search continues for others.
+
+
+
+New Games
+---------
+- [kof97irgc2]
+- [kof98c20160907]
+- [kof98ae20160827]
+- [tinyworld] TinyWorld82 demo (by Scott Lawrence)
+
+
+
+
+2016-08-31 0.177
+----------------
+
+New Games
+---------
+- [akiradmo] Demo [by Mega Shocked]
+- [didemo] Demo of DatImage [by Mega Shocked]
+- [dotrimjr] Dottori-Man Jr [by Chris Covell]
+- [mshjphp] Marvel Super Heroes (Power hack by Pipi899)
+- [mshyh] Marvel Super Heroes (Boss hack by Yumeji)
+- [mvscjemb] Marvel Vs. Capcom: Clash of Super Heroes (Easy Moves hack by Blackheart 24/04/09)
+- [mvscjphp] Marvel Vs. Capcom: Clash of Super Heroes (Power hack by Pipi899)
+- [pfghtjrm] Pocket Fighter (Easy Moves hack by Blackheart 20/04/09)
+- [sgemfch] Super Gem Fighter Mini Mix (Color remix)
+- [vsav2emb] Vampire Savior 2: The Lord of Vampire (Easy Moves hack by Blackheart 30/04/09)
+- [xmcotajb] X-Men: Children of the Atom (Boss hack by Yumeji)
+- [xmcotajphp] X-Men: Children of the Atom (Power hack by Pipi899)
+- [xmvsfjphp] X-Men Vs. Street Fighter (Power hack by Pipi899)
+- [xmvsfrm] X-Men Vs. Street Fighter (Easy Moves hack by Blackheart 22/04/09)
+- [xmvsfryh] X-Men Vs. Street Fighter (ST Char hack by Ydmis)
+
+
+
+2016-07-27 0.176
+----------------
+
+New Games
+---------
+- [ct2k3spi]
+- [garoupx11] Garou Mark of the Wolves Xtreme Plus
+- [kof2k2bl3]
+- [kof2k2bl4]
+- [kof2k2omg]
+- [kof2k2smf]
+- [kof10thep15]
+- [kof96pch]
+- [kof97aot]
+- [kof97cy]
+- [kof97dse]
+- [kof97ei]
+- [kof97frb]
+- [kof97irgc]
+- [kof97rst]
+- [kof97rst2]
+- [kof97rst3]
+- [kof97yk83]
+- [kof97yk85]
+- [kof98c20110314]
+- [kof98c20160320]
+- [kof98evr]
+- [kof98mev]
+- [kof99ndis] Kof'99 Remix Pro
+- [kogmxpls] King of Gladiator Mix Plus-EX
+- [mslugxce]
+- [mslugxfe]
+- [mslugxjdkj]
+- [mslugxmfb]
+- [mslugxres]
+- [mslugxsef]
+- [mslugxsvb]
+- [rotddh]
+- [sengoku3eb]
+- [svcplusa2016]
+- [svcsplus2016]
+
+
+
+
+2016-06-29 0.175
+----------------
+
+Thanks to all those who helped gather the newest hacks.
+
+- WinUI: more 7z support
+- Continued adding hacks from MultiJet
+
+
+
+New Games
+---------
+- [ghohunt] Ghost Hunt [by Hurray Banana]
+- [kof2000ev]
+- [kof200215] Kof2002 Magic Plus II
+- [kof98ae3]
+- [kof98ae20160308] Kof'98 Anniversary Edition 2016
+- [kof99ae20160411]
+- [kof99ae20160419]
+- [kof99aes]
+- [ms5sp]
+- [mslug3hev]
+- [mslug4sp]
+- [mslug5f]
+- [mslug5lvf]
+- [mslug5lvnc]
+- [mslug5w]
+- [neofight] Neo Fight [by Kannagi]
+- [svcesv]
+
+
+
+
+2016-05-25 0.174
+----------------
+
+Thanks to all those who helped gather the newest hacks.
+
+- NewUI: 7z enabled
+- WinUI: Various tweaks
+- Continued adding hacks from MultiJet
+
+
+
+New Games
+---------
+- [3wondrud] 3 Wonders (Phoenix)
+- [captcoud] Captain Commando (Phoenix)
+- [ddsomavs] Dungeons & Dragons: Shadow over Mystara (1vs4 hack by Pipi899 29/06/09)
+- [ddsomhp] Dungeons & Dragons: Shadow over Mystara (HP Revision hack by Pipi899, cheat by sssskkkk 15/06/09)
+- [ddsomjfs] Dungeons & Dragons: Shadow over Mystara (Final Strike hack by e107 17/07/09)
+- [dino08h2] Cadillacs and Dinosaurs (Enhanced Revision 2008 set 3 v2.0f hack by Pipi899 17/10/08)
+- [dino08h3] Cadillacs and Dinosaurs (Enhanced Revision 2008 set 1 v1.1 hack by Pipi899 11/10/08)
+- [dino08hp] Cadillacs and Dinosaurs (Enhanced Revision 2008 set 2 v1.1f hack by Pipi899 17/10/08)
+- [dinobt] Cadillacs and Dinosaurs (BT hack version)
+- [dinobtpp] Cadillacs and Dinosaurs (BT Power hack by Pipi899 15/01/09)
+- [dinocgba] Cadillacs and Dinosaurs (Cngba hack Version set 1)
+- [dinocgbb] Cadillacs and Dinosaurs (Cngba hack Version set 2)
+- [dinocgbc] Cadillacs and Dinosaurs (Cngba hack Version set 3)
+- [dinohp] Cadillacs and Dinosaurs (Hack by Pipi899 set 1)
+- [dinorp] Cadillacs and Dinosaurs (Hack by Pipi899 set 2 05/08/08)
+- [dinouphp] Cadillacs and Dinosaurs (Up Version hack by Pipi899 15/01/09)
+- [dkrdemo] Donkey Kong Remix demo 1.8 [by Sock Master]
+- [ffightb] Final Fight (Boss Hack dumped by Bonky0013, modified by MPT)
+- [garoub] Garou - Mark of the Wolves (Boss hack by Ydmis)
+- [knightud] Knights of the Round (Phoenix)
+- [kodsp] The King of Dragons (Remix Special hack by Bonusjz)
+- [pacpen] Pacman on Pengo hardware [by Andrew Hannay]
+- [punisherje1] The Punisher (SM Experience Edition hack by Zhyxxxx set 1 2009-06-12)
+- [punisherjh1] The Punisher (SQ Unlimited Version hack by Zhyxxxx 2009-06-08)
+- [punisherud1] The Punisher (US 930422 Phoenix Edition (8b/32p))
+- [punisherud2] The Punisher (US 930422 Phoenix Edition (16b/40p))
+- [santabll] Santaball [by M.Priewe] [read the FAQ!]
+- [sk2h15] Sangokushi 2 (Hack by Pipi899 2009-01-02)
+- [sk2h16] Sangokushi 2 (Easy Moves hack by Pipi899 12/01/09)
+- [slammastud] Saturday Night Slam Masters (USA 930713 Phoenix)
+- [vampjb] Vampire: The Night Warriors (Boss hack by Yumeji)
+- [wofchspp] CPS Changer - Tenchi Wo Kurau II (Super Jian Huang hack by Pipi899 29/01/10)
+- [wofjhb] Tenchi wo Kurau II (Japan 921031) (Hack set 2)
+- [wofjhc] Tenchi wo Kurau II (Japan 921031) (Hack set 3)
+
+
+
+
+2016-04-27 0.173
+----------------
+
+Thanks to all those who helped gather the newest hacks.
+
+- NewUI is added but turned off by default
+- Started adding hacks from MultiJet
+
+
+
+New Games
+---------
+- [androdunpx] Andro Dunos (Plus Max hack by Xyahzhs)
+- [aofbh] Art of Fighting (Boss hack by Yumeji)
+- [aof2b1] Art of Fighting 2 (Boss hack)
+- [aof2bh] Art of Fighting 2 (Boss hack by Yumeji)
+- [aof3bh] Art of Fighting 3 (Boss hack by Yumeji)
+- [bjourneypx] Blue's Journey / Raguy (Plus Max hack by Xyahzhs)
+- [breakersbh] Breakers (Boss hack by Yumeji)
+- [breakersy] Breakers (Boss Robert PPX Team hack remixed by ZKW)
+- [breakrevb] Breakers Revenge (Boss hack by Yumeji)
+- [breakrevpp] Breakers Revenge (Enhanced Power hack by Pipi899 11/06/09)
+- [breakrevy] Breakers Revenge (Boss Robert PPX Team hack remixed by ZKW)
+- [columnsncd] Columns (CD conversion)
+- [ct2k3ifz] Crouching Tiger Hidden Dragon 2003 (Ice FZ Remix)
+- [ct2k3xx] Crouching Tiger Hidden Dragon 2003 (Blood Edition)
+- [ct2k3ys] Crouching Tiger Hidden Dragon 2003 (Red Fire Remix)
+- [ctomadaypx] Captain Tomaday (Plus Max hack by Xyahzhs)
+- [dti] Duck Tales Intro [Raregame]
+- [doubledre2] Double Dragon Q (Boss hack Easy Special Attacks)
+- [doubledres] Double Dragon (Boss hack Easy Special Attacks)
+- [doubledrhp] Double Dragon (Boss Hack Perfect Edition hack by Blackheart 19/09/09)
+- [eightmaneb] Eight Man (Enhanced Version hack by Blackheart 22/08/09)
+- [ennemi] Neogeo demo [by Kannagi]
+- [fatfury2b] Fatal Fury 2 (Boss hack by Yumeji)
+- [fatfury3bh] Fatal Fury 3 (Boss hack by Yumeji)
+- [fatfurspbs] Fatal Fury Special (Boss hack by Yumeji)
+- [fatfurspbt] Fatal Fury Special (BT Version PPX Team hack)
+- [fightfevbs] Fight Fever (Boss hack by Yumeji)
+- [galaxyfgb] Galaxy Fight (Boss hack by Yumeji)
+- [gowcaizrb] Voltage Fighter (Boss hack by Wesker (FGCH))
+- [gowcaizrbs] Voltage Fighter (Boss hack by Yumeji)
+- [gowcaizrrv] Voltage Fighter (Boss Revised Version 05/10/09)
+- [gpilotspx] Ghost Pilots (Plus Max hack by Xyahzhs)
+- [kof97rev] KOF'97 Revival 2016 (hack of Kof'97 Plus 2003)
+- [kof98f]
+- [lbowlingcd] League Bowling (CD conversion)
+- [pbcrazyb1] Puzzle Bobble Crazy beta 1 [by Elrayzeur]
+- [pbcrazyb2] Puzzle Bobble Crazy beta 2 [by Elrayzeur]
+- [poknightcd] Poker Night (CD conversion)
+- [poknightfr] Poker Night (French)
+- [rbffspecbs] Real Bout Fatal Fury Special (Boss hack Yumeji)
+- [samsh5sph] Samurai Shodown V Special / Samurai Spirits Zero Special (Bloodlust hack)
+- [samsh5spha] Samurai Shodown V Special / Samurai Spirits Zero Special (Final set 1 hack by Wesker)
+- [samsh5sphb] Samurai Shodown V Special / Samurai Spirits Zero Special (Final set 2 hack by Wesker)
+- [samsh5sphc] Samurai Shodown V Special / Samurai Spirits Zero Special (Final set 3 hack by Wesker)
+- [samsh5spn] Samurai Shodown V Special / Samurai Spirits Zero Special (fully decrypted)
+- [samsh5spnh3] Samurai Shodown V Special / Samurai Spirits Zero Special (Enhanced Blood v3.0 hack by Eddids, Snk2003)
+- [samsh5spnzk] Samurai Shodown V Special / Samurai Spirits Zero Special (Hack by Zuojie, Kof1996 23/10/08)
+- [shocktr2px] Shock Troopers - 2nd Squad (Plus Max hack by Xyahzhs)
+- [shocktrosp] Shock Troopers (Super Plus hack by e107 18/08/09)
+- [sonicwi2eh] Aero Fighters 2 / Sonic Wings 2 (Hack alternate set by Robert)
+- [sonicwi2px] Aero Fighters 2 / Sonic Wings 2 (Plus Max hack by Xyahzhs)
+- [sonicwi3eh] Aero Fighters 3 / Sonic Wings 3 (Hack alternate set by Robert)
+- [sonicwi3h] Aero Fighters 3 / Sonic Wings 3 (ExChar hack by Wesker)
+- [sonicwi3px] Aero Fighters 3 / Sonic Wings 3 (Plus Max hack by Xyahzhs)
+- [spinmastpx] Spin Master / Miracle Adventure (Plus Max hack by Xyahzhs)
+- [ssidekicd] Super Sidekicks / Tokuten Ou (CD conversion)
+- [superspycd] The Super Spy (CD conversion)
+- [tophuntrpx] Top Hunter - Roddy & Cathy (Plus Max hack by Xyahzhs)
+- [twinsprih] Twinkle Star Sprites (ExChar hack by Yumeji)
+- [trallycd] Thrash Rally (CD conversion)
+- [viewpoinf] Viewpoint (French by NEOARC Team)
+- [wh1bs] World Heroes (Boss hack by Yumeji)
+- [wh2bs] World Heroes 2 (Boss hack by Yumeji)
+- [wh2jb] World Heroes 2 Jet (Boss hack by 0days (EGCG))
+- [whphez] World Heroes Perfect (Boss hack by Zeng_K)
+- [whpsp] World Heroes Perfect (Special Boss hack by Yashional)
+- [whpss] World Heroes Perfect (SS v1.0 hack by Eddids (EGHT) 12/25/07)
+- [wjammersf] Windjammers (French v0.1 beta by Elrayzeur)
+- [zintrckbh] Zintrick hack [by Yumeji]
+
+
+
+
+2016-02-26 0.171
+----------------
+
+Thanks to all those who helped gather the newest hacks.
+
+- Added a number of kof hacks.
+
+
+
+New Games
+---------
+- [gaunt2f] Gauntlet 2 (graphics hack)
+- [wofchdx2] Green version of wofchdx (set 2)
+
+
+
+
+2016-01-27 0.170
+----------------
+
+Thanks to all those who helped gather the newest hacks.
+
+- Added a number of kof hacks.
+- finished neogeo modernisation.
+- dkongp: turned patch into a rom
+
+
+
+New Games
+---------
+- [dkrainbow] Rainbow Donkey Kong [by Sock Master]
+- [umk3te2] Ultimate Mortal Kombat III Tournament Edition 2.0.035
+
+
+
+
+2015-12-30 0.169
+----------------
+
+Thanks to all those who helped gather the newest hacks.
+
+- Added more neogeo hacks from MAME Plus/Ash-build.
+- Added a number of kof hacks.
+- Work continues on neogeo modernisation.
+- UI build:
+-- various small improvements
+
+
+
+2015-11-25 0.168 r41860
+-----------------------
+
+Thanks to all those who helped gather the newest hacks.
+
+- Added more neogeo hacks from MAME Plus/Ash-build.
+- Added a number of kof94/95/96/97/98 hacks.
+- Work continues on neogeo modernisation.
+- Removed hack that fudged CPS2 suicide tester results.
+- Fixed kof96ep decryption.
+- UI build:
+-- Fixed problem where Default Game Options changes would revert on exit.
+-- various small improvements
+
+
+New Games
+---------
+- [suicide2] CPS2 Suicide Tester v2 [by Razoola]
+- [sf2ceb1] Street Fighter 2 hack
+- [kovsh18] KOVSH Gem Fighters
+- [kovsh19] KOVSH Rugal 98
+- [lb2te] The Last Blade hack
+- [snddemo] Neo-Geo Sound Loop Demo [by Freem]
+
+
+
+2015-10-28 0.167 r41414
+-----------------------
+
+Thanks to all those who helped gather the newest hacks.
+
+- UI build: various small improvements
+- Added approx 100 neogeo hacks from MAME Plus/Ash-build
+
+
+New Games
+---------
+- [gaunt2ls] Gauntlet II with new levels [by Orange Elf]
+- [mslug3eb] Metal Slug 3 hack [by PlayerX China]
+- [mslugxeb] Metal Slug X hack [by PlayerX China]
+- [mslug5l9a] Metal Slug 5 lvl 9 hack ver A
+- [mslug5l9b] Metal Slug 5 lvl 9 hack ver B
+- [sfiii3an] SF3 Ford Strike
+- [sokoban] Sokoban LE [by cmonkey]
+- [speccies] Speccies 2 [by Sokurah]
+- [zintrkm] Zintrick (music replaces voices)
+- [zintrkcd1] Zintrick CD hack
+
+
+
+2015-09-30 0.166 r40959
+-----------------------
+
+Thanks to all those who helped gather the newest hacks.
+
+- F2demo: Fixed display.
+- Punisherb: Fixed gfx.
+- Punisherf: Fixed exception on stage 1.
+- Monster Zero: added attract mode.
+- Added a number of hacks from MamePlus/Ash-build, fixing them as needed.
+- ddonpacha: used the correct eprom
+- Rearranged/renamed the various hacks of Sangokushi 2
+- Renamed spclone to spcloneo (ver 0.7.2.2) and added a new spclone (ver 0.7.3)
+- Vector Breakout, Tempest Multigame, and Pacman Multigame (pm4n1d) now working.
+- Tldemo2 didn't work properly on real hardware, replacement rom supplied.
+- UI build: fix from MAMEUIFX for history tab
+
+
+New Games
+---------
+- [bbaladar] Bubble Bobble hack [by Aladar]
+- [cballfix] Atari Cannonball (with replacement rom) [by MASH]
+- [kof2002x] KOF 2002 Babel ice field remix
+- [mslug3kho] Metal Slug 3 style remix
+- [spacwarp] Space Warp (proto on Space Duel hardware) [by Jeff Hendrix]
+- [sys16dem] System-16 demo [by Charles Doty]
+- [wofsf2] Warriors of Fate on Street Fighter 2 hardware
+- [1944da] 1944 Alt Phoenix edition
+- [1944fp] 1944 Fire Power version
+- [airwolffr] Air Wolf (French traduction)
+- [asukac] Asuka (Chinese)
+- [batsugunt] Batsugun transparent
+- [bgareggz] Battle Garegga Zakk version
+- [captcomc] Captain Commando (Chinese)
+- [captcommb2] Captain Commando bootleg
+- [dinojp] Cadillacs hack [by Pipi899]
+- [evilstonfr] Evil Stone (French traduction)
+- [knight21] Knights of the Round (debug)
+- [knightsjb] Knights of the Round (Japan, bootleg)
+- [kov2h5] Knights of Valor 2 Plus (hack 5)
+- [kovph24] Knights of Valor Plus (hack 24)
+- [kovph25] Knights of Valor Plus (v120)
+- [mahoudcn] Mahou Daisakusen (Chinese)
+- [mkfr] Mortal Kombat (French traduction)
+- [mk2fr] Mortal Kombat 2 (French traduction)
+- [mpangjd] Mighty Pang Phoenix edition
+- [orlegendcs] Oriental Legand hack
+- [orlegendh] Oriental Legend hack
+- [powernbr] Power Instinct (Brazil)
+- [punisherjh] The Punisher (Shinwa hack)
+- [redeartn] War-Zard No-CD
+- [samenew] Same! Same! Same! NEW version
+- [sf2c] Street Fighter 2 (Chinese)
+- [sf2th] Street Fighter 2 Turbo (hack)
+- [sf2tha] Street Fighter 2 Turbo (hack)
+- [sf2tlonc] Street Fighter 2 (slay the dragon set 3)
+- [sf2yyc3d5] Street Fighter 2 bootleg
+- [sf2yyc3g] Street Fighter 2 bootleg
+- [sf2yyc6] Street Fighter 2 bootleg
+- [sfa2h] Street Fighter Alpha 2 hack
+- [sfaud] Street Fighter Alpha Phoenix edition
+- [sfiii4rd] Street Fighter 3rd strike (4rd arrange edition)
+- [sfz2abr] Street Fighter Zero 2 Alpha (Brazil)
+- [sk2h22] Sangokushi 2 hack 22
+- [spf2tb] Super Puzzle Fighter II Turbo Boss Hack
+- [ssf2td] Super Street Fighter II Turbo Phoenix edition
+- [tdragon2p] Thunder Dragon 2 (Practice version)
+- [varthb] Varth bootleg
+- [wofchdx1] Green version of wofchdx
+
+
+2015-08-26 0.165 r40487
+-----------------------
+
+Thanks to all those who helped gather the newest hacks.
+
+- UI build: various fixes and adjustments.
+- Added 41 versions of KOF'98 Combo.
+- Added a few versions of KOF'99 Anniversary Edition.
+- Renamed the various KOV hacks, and added some more.
+- Fixed knightsha.
+
+
+New Games
+---------
+- [knightsro] Knights of the Round (Romanian) [by Sebastian Mihai]
+- [kof2000r] KOF REMIX PRO
+- [kof96oib]
+- [kof97evo] KOF'97 Evolution
+- [kof98cta] KOF'98 COMBO 10th Anniversary (not fully working)
+- [kof98frp] KOF'98 the Slutfest [by Cigarette Patch]
+- [nitdsp1] Nightmare in the Dark (Spanish.rev2)
+- [sf2h14]
+- [ssf2r1d] Super Street Fighter II ETC 930911 Phoenix
+- [strhoopcd] Street Hoop (CD Conversion)
+- [tldemo2] "256 colours" demo for Taito-L [by cmonkey]
+- [twister] Twister in a mirror intro [by Blastar]
+- [wh2ja]
+
+
+
+2015-06-04 0.162 r38440
+-----------------------
+
+Thanks to various sources of information:
+Smitdogg.
+
+- [pcmbdemo] - fixed with new roms from the author
+- UI build: various fixes and adjustments.
+- Sync'd docs to latest MAME, and can be opened with Notepad.
+
+
+New Games
+---------
+- [1942c64] 1942 with C64 music [by Minwah]
+- [1942fpa] 1942 with attract mode when free play is selected [by cmonkey]
+- [hellowp] Hello World (Pacman HW) [by cmonkey]
+- [robotron201] Robotron 2084 (Hacked Patched Blue-201) [by Sean Riddle]
+- [robotrontie] Robotron 2084 (Tie Die) [by Vid Kidz]
+- [tldemo] Demo - Taito-L [by cmonkey]
+
+
+
+
+2015-05-03 0.161 r37536
+-----------------------
+
+Thanks to various sources of information:
+Smitdogg, mamesick.
+
+- Converted to MAME's Genie compiling system
+- Fixed Charles Doty's Dec0 Chaos Demo.
+- [pacmanp] (Fix for level 256 kill screen) - modified to include Pinky and Inky AI fixes [Don Hodges, Krick]
+- UI build: various fixes and adjustments.
+
+
+New Games
+---------
+- [ketarr17] Ketsui Arrange 1.7 [by trap15]
+- [mslug2t] Metal Slug 2 Turbo [by trap15]
+- [pcmademo] Neogeo ADPCM-A Playback demo [by freem]
+
+
+
+
+2015-03-28 r36652
+-----------------
+
+Thanks to various sources of information:
+Tafoid.
+
+- Cookie-Mon fixed
+
+
+New Games
+---------
+- [ngmontst] Neo Geo Monitor Test
+- [ottop1] Otto Project P1 (Crazy Otto)
+- [ottop2] Otto Project P2 (Crazy Otto)
+- [ottop3] Otto Project P3 (Crazy Otto)
+- [ottopz] Otto Project PZ (Crazy Otto)
+- [pcmbdemo] Neogeo ADPCM-B Playback demo (not working)
+- [spriteex] Sprite Experimenter
+- [stridergf] Strider with minor gfx fixes [Willkaotix]
+- [stridergh] Strider with minor gfx fixes and uncensor amazons [Willkaotix]
+- [superp4g] Otto Project P4G (Super Pacman)
+- [superp4m] Otto Project P4M (Super Pacman)
+- [womanp5] Otto Project P5 (Pac Woman)
+
+
+
+
+2015-03-15 r36430
+-----------------
+
+Thanks to various sources of information:
+Newuzer.
+
+- fixed graphics in svcd
+- bbredux updated to latest patch
+
+- UI build
+-- Added "Video: OpenGL" selection.
+
+New Games
+---------
+- [kof96ae] King of Fighters 96 (10th anniversary set 2)
+- [kof2k2mpu] King of Fighters 2002 (Plus)
+- [kof2k2or] King of Fighters 2002 (3rd strike of Orochi)
+- [kof2k2sm] King of Fighters 2002 (Super Mix 2013)
+- [kof2k4se1] King of Fighters 2004 (alternate set)
+- [robotronp] Robotron (patched)
+- [umk3te] Ultimate Mortal Kombat III Tournament Edition 2.0.032b8 (Public Beta)
+
+
+
+2014-10-16 r32769
+-----------------
+
+Thanks to various sources of information:
+ KOF-ON, Newuzer, Tafoid, JacKc.
+
+- UI build:
+-- Fixed problem where Default Game Options would revert to original defaults.
+-- Adjusted Sound options to match 0.154 baseline.
+-- Added "Video: Auto" selection.
+-- Fixed a number of bugs with certain video/display options being grayed out.
+-- Due to a baseline bug, after modifying the Default Game Options, you should quit and restart HBMAMEUI.
+
+- Updated neogeo information.
+
+
+New Games
+---------
+- [dkongpac] Pacman saves Mspacman, by Tim Appleton
+- [jryumyum] Jr.Pacman vs Yumyum + Friends, by Tim Appleton
+- [pacwf] Pacman Weird Fruit, by Tim Appleton
+- [mspacwf] Ms Weird Fruit Pac, by Tim Appleton
+- [pacfnt] Pacman with Pacman font, by Tim Appleton
+- [mspacfnt] Ms.Pacman with Pacman font, by Tim Appleton
+- [kof2k2ibp] Ice Blue Perfect
+- [kof2k2js] KOF Remix Ultra 3.0
+- [kof2k2mp1] Magic Plus (alt vers)
+- [kof2k2mp3] Magic Plus III
+- [kof2k2rma] Remix-A
+- [kof2k2smg]
+- [knacki] Knackiballs, by Furrtek
+- [mslug4dh] Metal SLug 4 Super D Version, by HappyASR [EGCG]
+- [test01] MVS Test 01, by Furrtek
+- [umk2te52] Ultimate Mortal Kombat II Tournament Edition 5.2
+- [wofchdx] Sangokushi 3 Gaiden Kakou-on's Revenge DX 2010
+- [wofjm] Tenchi wo Kurau 2 (Japan 921031) (with fighting women)
+
+
+
+
+2014-06-13 r30958
+-----------------
+
+Thanks to various sources of information:
+ KOF-ON, Newuzer, Tafoid.
+
+- UI build: fixed certain directory settings not being saved.
+
+- Big Neo-Geo changes:
+-- Added back a number of hacks that had been overlooked
+-- Fixed some sets that were not working as intended
+-- Renamed every rom that's not in MAME to a new standard
+-- Renamed some sets
+-- Created a list of all known homebrews, unreleased and rumoured
+ sets and allocated numbers to them.
+
+
+New Games
+---------
+- [kof95d]
+- [kof96lx] 10th Anniversary
+- [kof97bh]
+- [kof97sed]
+- [kof98fr]
+- [kof98fro]
+- [kof98fro2]
+- [kof99d]
+- [kof99iori]
+- [kof2000d]
+- [kof2001d]
+- [kof2k1pa]
+- [kof2k1pls]
+- [kof2002d]
+- [kof2k2br]
+- [kof2k2br1]
+- [kof2k2br2]
+- [kof2k2ht]
+- [kof2k2omg] KOF-ON Omega
+- [kof2k2omg9] KOF-ON Omega v0.9
+- [kof2k2omg9b] KOF-ON Omega v0.9 beta
+- [kof2k2plb]
+- [kof2k2ps2]
+- [kof2k4ru] Remix Ultra 2.6F
+- [mslug3d]
+- [mslug4d]
+- [mslug5d]
+- [mslugxfr]
+- [mslugxfro]
+- [mslugxit]
+- [mslug2fr]
+- [mslug2fro]
+- [mslug3fr]
+- [mslug3fro]
+- [mslug4fr]
+- [mslug5fr]
+- [punisherf] The Punisher Flash Version by Zhyxxxx
+- [mk2r33] Mortal Kombat II rev 3.3 (proto)
+- [umk2te50] Ultimate Mortal Kombat II Tournament Edition 5.0
+- [umk2te51] Ultimate Mortal Kombat II Tournament Edition 5.1
+
+
+
+
+2014-04-10 r29507
+-----------------
+
+Thanks to various sources of information:
+ JackC, Newuzer.
+
+- Added UI build
+- Various improvements to Galaga bootlegs
+- Fixed a few mspacman sets that crashed
+- Fixed cawingb
+- Lots of misc fixes
+- Added a FAQ entry explaining how to fix cphd.
+
+
+New Games
+---------
+- Warrior of Fate Hack by Zero
+- Bubble Bobble Redux (4 sets)
+- Roboarmy hack (roboarma set removed from MAME)
+- Power Instinct 2 hack by TT
+- [matrimdh] hack by Dodowang
+- KOF98 Combo (5 more sets) by Ivex
+- [sf2koryu] hack by TT
+- [sf2pun] Punishment Edition hack by Drakon
+- [sf2sl73a] Sheng Long hack by Drakon
+- [ddsomchs] Dungeons & Dragons (chinese)
+- [ssridersaex] Sunset Riders hack by Pipi899
+- [s1945iiex] Strikers 1945 II hack by Pipi899
+
+
+
+2014-01-20 r27151
+-----------------
+
+New Games
+---------
+- Crouching Pony Hidden Dragon demo
+
+
+
+2013-12-13 r26602
+-----------------
+
+New Games
+---------
+- Mr. Do! Nightmare (thanks to mamesick)
+- Bubble Bobble: Lost Cave (v1.2)
+
+
+
+2013-09-18 r25368
+-----------------
+
+- Added a FAQ entry explaining how to fix ww2demo.
+
+- Fixed 'neopong' and 'neopong10'
+
+- Fixed sprites in 'beast', but still suffers from
+ some screen tearing.
+
+
+New Games
+---------
+- kf2k8uni (King of Fighters 2002 hack)
+- kof98mix (2011-10-01)
+- Targ Test Rom V1.0
+
+
+
+2013-06-30 r24018
+-----------------
+
+Thanks to various sources of information:
+ JackC, B2K24, Newuzer.
+
+
+New Games
+---------
+- Wofr1h (Warriors of Fate hack)
+- wofchs (Warriors of Fate, Chinese)
+- wofch_v3 (CPS Changer alt version)
+- Dinoex (Cadillacs and Dinosoaurs hack)
+- kof98co1 (King of Fighters 98 Combo 2013-05-09)
+- kof99ae (King of Fighters 99 Anniversary Edition)
+- spacmiss (Space Missile modification)
+
+
+
+2013-05-01 r22408
+-----------------
+
+Thanks to various sources of information:
+ JackC, B2K24, abelenki.
+
+
+New Games
+---------
+- Star Slayer (asteroids hack)
+- KOF2002 Super Black Mix
+- Donkey Kong: Pauline Edition Rev 5
+
+
+
+
+2013-04-15 r22408
+-----------------
+
+Thanks to various sources of information:
+ JackC, B2K24, FBA, Houba, Jan Tleskac.
+
+
+CPS-1 games have seen improvement and cleanup:
+
+- cps1demo - working
+- cps1frog - working
+- daimakb - working
+- knightsb2 - working (fixed high score screen)
+- wofh - working
+- wofha - working
+- wofsj - working
+- wofsja - working
+- wof3sj - working
+- wof3sja - working
+
+
+
+New Games
+---------
+- Bang Bang Busters prototype (neogeo)
+- Treasure of the Caribbean (neogeo)
+- more versions of neogeo galaga demo
+- Out Run Enhanced Edition v1.0.2, v1.0.1, v1.0.0
+- Invaders Revenge
+- and a few non-working games
+
+
+
+2013-03-07 r21683
+-----------------
+
+
+New Games
+---------
+- Street Fighter II (Drakon) (2 sets)
+- Super Bobble Bobble level select hack
+- WW2demo (neogeo)
+- Nyan Cat demo (neogeo)
+- Galaga demo (neogeo) (2 sets)
+- NeoGeo 2-player Tetris
+- Final Romance 2
+- Mortal Kombat (Turbo Endurance)
+- Mortal Kombat (Projectile Insanity)
+- Knights of Valour hacks (12 sets)
+- and a few non-working games
+
+
+
+2013-02-26 r21445
+-----------------
+
+
+New Games
+---------
+- CPS1 Diagnostic for sf2ce
+- CPS1 Diagnostic for megaman
+- Williams 6-in-1 Multigame
+- Ketsui Arrange (7 sets)
+- DoDonPachi Arrange v1.1
+- Out Run Enhanced Edition v1.0.3
+- Metal Slug 3 Violence Edition
+- Final Fight (bootleg)
+- Dinosaurs & Cadillacs Z (Boss hack)
+- and a few non-working games
+
+
+
+2013-02-20 r21209
+-----------------
+
+
+New Games
+---------
+- Neo 3D
+- Neo Castlevania Demo
+- Bubble Bobble: Lost Cave (v1.0)
+- Bubble Bobble: Lost Cave (v1.1)
+- Pac Manic Miner Man
+
+
+
+2013-02-18 r21153
+-----------------
+
+- Fixed listxml output for cmp
+- Removed symbols in build
+- Added hbnew.txt (whatsnew file)
+- Added 64-bit build
+
+New Games
+---------
+- Neo Thunder
+- NGF Transparency Demo
+- Neorom Jukebox
+- Time's Up! Demo
+
+
+
+2013-02-17 r21147
+-----------------
+
+- First release \ No newline at end of file
diff --git a/docs/release/docs/license.txt b/docs/release/docs/license.txt
new file mode 100644
index 00000000000..bb15e9a2645
--- /dev/null
+++ b/docs/release/docs/license.txt
@@ -0,0 +1,118 @@
+CC0 1.0 Universal
+
+Statement of Purpose
+
+The laws of most jurisdictions throughout the world automatically confer
+exclusive Copyright and Related Rights (defined below) upon the creator and
+subsequent owner(s) (each and all, an "owner") of an original work of
+authorship and/or a database (each, a "Work").
+
+Certain owners wish to permanently relinquish those rights to a Work for the
+purpose of contributing to a commons of creative, cultural and scientific
+works ("Commons") that the public can reliably and without fear of later
+claims of infringement build upon, modify, incorporate in other works, reuse
+and redistribute as freely as possible in any form whatsoever and for any
+purposes, including without limitation commercial purposes. These owners may
+contribute to the Commons to promote the ideal of a free culture and the
+further production of creative, cultural and scientific works, or to gain
+reputation or greater distribution for their Work in part through the use and
+efforts of others.
+
+For these and/or other purposes and motivations, and without any expectation
+of additional consideration or compensation, the person associating CC0 with a
+Work (the "Affirmer"), to the extent that he or she is an owner of Copyright
+and Related Rights in the Work, voluntarily elects to apply CC0 to the Work
+and publicly distribute the Work under its terms, with knowledge of his or her
+Copyright and Related Rights in the Work and the meaning and intended legal
+effect of CC0 on those rights.
+
+1. Copyright and Related Rights. A Work made available under CC0 may be
+protected by copyright and related or neighboring rights ("Copyright and
+Related Rights"). Copyright and Related Rights include, but are not limited
+to, the following:
+
+ i. the right to reproduce, adapt, distribute, perform, display, communicate,
+ and translate a Work;
+
+ ii. moral rights retained by the original author(s) and/or performer(s);
+
+ iii. publicity and privacy rights pertaining to a person's image or likeness
+ depicted in a Work;
+
+ iv. rights protecting against unfair competition in regards to a Work,
+ subject to the limitations in paragraph 4(a), below;
+
+ v. rights protecting the extraction, dissemination, use and reuse of data in
+ a Work;
+
+ vi. database rights (such as those arising under Directive 96/9/EC of the
+ European Parliament and of the Council of 11 March 1996 on the legal
+ protection of databases, and under any national implementation thereof,
+ including any amended or successor version of such directive); and
+
+ vii. other similar, equivalent or corresponding rights throughout the world
+ based on applicable law or treaty, and any national implementations thereof.
+
+2. Waiver. To the greatest extent permitted by, but not in contravention of,
+applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and
+unconditionally waives, abandons, and surrenders all of Affirmer's Copyright
+and Related Rights and associated claims and causes of action, whether now
+known or unknown (including existing as well as future claims and causes of
+action), in the Work (i) in all territories worldwide, (ii) for the maximum
+duration provided by applicable law or treaty (including future time
+extensions), (iii) in any current or future medium and for any number of
+copies, and (iv) for any purpose whatsoever, including without limitation
+commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes
+the Waiver for the benefit of each member of the public at large and to the
+detriment of Affirmer's heirs and successors, fully intending that such Waiver
+shall not be subject to revocation, rescission, cancellation, termination, or
+any other legal or equitable action to disrupt the quiet enjoyment of the Work
+by the public as contemplated by Affirmer's express Statement of Purpose.
+
+3. Public License Fallback. Should any part of the Waiver for any reason be
+judged legally invalid or ineffective under applicable law, then the Waiver
+shall be preserved to the maximum extent permitted taking into account
+Affirmer's express Statement of Purpose. In addition, to the extent the Waiver
+is so judged Affirmer hereby grants to each affected person a royalty-free,
+non transferable, non sublicensable, non exclusive, irrevocable and
+unconditional license to exercise Affirmer's Copyright and Related Rights in
+the Work (i) in all territories worldwide, (ii) for the maximum duration
+provided by applicable law or treaty (including future time extensions), (iii)
+in any current or future medium and for any number of copies, and (iv) for any
+purpose whatsoever, including without limitation commercial, advertising or
+promotional purposes (the "License"). The License shall be deemed effective as
+of the date CC0 was applied by Affirmer to the Work. Should any part of the
+License for any reason be judged legally invalid or ineffective under
+applicable law, such partial invalidity or ineffectiveness shall not
+invalidate the remainder of the License, and in such case Affirmer hereby
+affirms that he or she will not (i) exercise any of his or her remaining
+Copyright and Related Rights in the Work or (ii) assert any associated claims
+and causes of action with respect to the Work, in either case contrary to
+Affirmer's express Statement of Purpose.
+
+4. Limitations and Disclaimers.
+
+ a. No trademark or patent rights held by Affirmer are waived, abandoned,
+ surrendered, licensed or otherwise affected by this document.
+
+ b. Affirmer offers the Work as-is and makes no representations or warranties
+ of any kind concerning the Work, express, implied, statutory or otherwise,
+ including without limitation warranties of title, merchantability, fitness
+ for a particular purpose, non infringement, or the absence of latent or
+ other defects, accuracy, or the present or absence of errors, whether or not
+ discoverable, all to the greatest extent permissible under applicable law.
+
+ c. Affirmer disclaims responsibility for clearing rights of other persons
+ that may apply to the Work or any use thereof, including without limitation
+ any person's Copyright and Related Rights in the Work. Further, Affirmer
+ disclaims responsibility for obtaining any necessary consents, permissions
+ or other rights required for any use of the Work.
+
+ d. Affirmer understands and acknowledges that Creative Commons is not a
+ party to this document and has no duty or obligation with respect to this
+ CC0 or use of the Work.
+
+For more information, please see
+<http://creativecommons.org/publicdomain/zero/1.0/>
+
+
diff --git a/docs/release/docs/make.bat b/docs/release/docs/make.bat
new file mode 100644
index 00000000000..6c5eaeeb315
--- /dev/null
+++ b/docs/release/docs/make.bat
@@ -0,0 +1,4 @@
+del hbmameui.exe
+del build\generated\resource\hbmamevers.rc
+call make32 -j4 "OSD=winui" %1 %2 %3 %4
+if exist hbmameui.exe call make32 -j4 %1 %2 %3 %4
diff --git a/docs/release/docs/make32.bat b/docs/release/docs/make32.bat
new file mode 100644
index 00000000000..bf206ea1fbb
--- /dev/null
+++ b/docs/release/docs/make32.bat
@@ -0,0 +1,14 @@
+@echo off
+set MINGW32=E:\Mingw\4-9-1\mingw64-w32
+set minpath=%MINGW32%\bin
+set minpath2=%minpath%;%MINGW32%\opt\bin;%MINGW32%\Qt\bin
+set oldpath=%Path%
+set Path=%minpath2%;%oldpath%
+echo.|time
+%minpath%\make TARGET=hbmame PTR64=0 %1 %2 %3 %4
+echo.|time
+set Path=%oldpath%
+set oldpath=
+set minpath=
+set minpath2=
+set MINGW32=
diff --git a/docs/release/docs/make64.bat b/docs/release/docs/make64.bat
new file mode 100644
index 00000000000..fea8c678c82
--- /dev/null
+++ b/docs/release/docs/make64.bat
@@ -0,0 +1,14 @@
+@echo off
+set MINGW64=E:\Mingw\4-9-1\mingw64-w64
+set minpath=%MINGW64%\bin
+set minpath2=%minpath%;%MINGW64%\opt\bin;%MINGW64%\Qt\bin
+set oldpath=%Path%
+set Path=%minpath2%;%oldpath%
+echo.|time
+%minpath%\make TARGET=hbmame %1 %2 %3 %4
+echo.|time
+set Path=%oldpath%
+set oldpath=
+set minpath=
+set minpath2=
+set MINGW64=
diff --git a/docs/release/docs/winui_license.txt b/docs/release/docs/winui_license.txt
new file mode 100644
index 00000000000..68cfdf37282
--- /dev/null
+++ b/docs/release/docs/winui_license.txt
@@ -0,0 +1,72 @@
+This document is best read with Notepad.
+
+The purpose of this document is to state the names of WINUI authors, disclaimers, and licence conditions.
+
+WINUI is a set of codes which add a 'front-end' facility to the MAME emulator (and certain derivatives).
+It is not maintained or supported by MAMEdev, but by the efforts of dedicated individuals.
+The files are normally found in the src/osd/winui folder(s) of a source package.
+
+WINUI was originally written around 1997, and has had contributions from many authors, both known and unknown.
+Due to the lack of historical records, it is unknown who exactly contributed what.
+
+Here is the list of known authors, and the known licence for them:
+
+Michael Soderstrom BSD-3-Clause
+Christopher Kirmse BSD-3-Clause
+MSH (Mike Haaland) BSD-3-Clause
+Captain Pugwash BSD-3-Clause
+Jeff Miller BSD-3-Clause
+Robbbert BSD-3-Clause
+etabeta (Fabio Priuli) BSD-3-Clause
+Bletch (Nathan Woods) BSD-3-Clause
+Mamesick BSD-3-Clause
+
+
+Copyright exists from 1997 to the present day, and beyond. The project is hereby covered by the GPL,
+with the following additional provisos.
+
+1. Original authors may lay claim to their particular works.
+
+2. Original authors may specify a different licence.
+
+3. Redistributions must include this file, and the file BSD3Clause.txt .
+
+
+
+4. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+
+POSSIBILITY OF SUCH DAMAGE.
+
+In other words, we (authors, contributors, repository holders, official websites)
+are not liable or responsible for anything.
+
+5. Usage: WINUI can be modified and used as you see fit, including commercially, however you
+ cannot claim ownership or copyright of the works. See BSD3Clause.txt for more information.
+
+6. If you are unable to comply with these conditions, you must delete any winui code in your
+ possession, along with any binaries that contain winui code, immediately.
+
+Written by Robbbert on 2015-06-03.
+Updated on 2016-03-14.
+
+Please read the MAME license as well.
+
+
diff --git a/docs/release/hbmame185s.rar b/docs/release/hbmame185s.rar
new file mode 100644
index 00000000000..e5b6f80c631
--- /dev/null
+++ b/docs/release/hbmame185s.rar
Binary files differ
diff --git a/docs/release/marquees/spatrol.png b/docs/release/marquees/spatrol.png
new file mode 100644
index 00000000000..992b7a9479c
--- /dev/null
+++ b/docs/release/marquees/spatrol.png
Binary files differ
diff --git a/docs/release/scripts/build/complay.py b/docs/release/scripts/build/complay.py
new file mode 100644
index 00000000000..4eecaa97353
--- /dev/null
+++ b/docs/release/scripts/build/complay.py
@@ -0,0 +1,152 @@
+#!/usr/bin/python
+##
+## license:BSD-3-Clause
+## copyright-holders:Vas Crabb
+
+import os
+import sys
+import xml.sax
+import xml.sax.saxutils
+import zlib
+
+
+class ErrorHandler(object):
+ def __init__(self, **kwargs):
+ super(ErrorHandler, self).__init__(**kwargs)
+ self.errors = 0
+ self.warnings = 0
+
+ def error(self, exception):
+ self.errors += 1
+ sys.stderr.write('error: %s' % (exception))
+
+ def fatalError(self, exception):
+ raise exception
+
+ def warning(self, exception):
+ self.warnings += 1
+ sys.stderr.write('warning: %s' % (exception))
+
+
+class Minifyer(object):
+ def __init__(self, output, **kwargs):
+ super(Minifyer, self).__init__(**kwargs)
+
+ self.output = output
+ self.incomplete_tag = False
+ self.element_content = ''
+
+ def setDocumentLocator(self, locator):
+ pass
+
+ def startDocument(self):
+ self.output('<?xml version="1.0"?>')
+
+ def endDocument(self):
+ self.output('\n')
+
+ def startElement(self, name, attrs):
+ self.flushElementContent()
+ if self.incomplete_tag:
+ self.output('>')
+ self.output('<%s' % (name))
+ for name in attrs.getNames():
+ self.output(' %s=%s' % (name, xml.sax.saxutils.quoteattr(attrs[name])))
+ self.incomplete_tag = True
+
+ def endElement(self, name):
+ self.flushElementContent()
+ if self.incomplete_tag:
+ self.output('/>')
+ else:
+ self.output('</%s>' % (name))
+ self.incomplete_tag = False
+
+ def characters(self, content):
+ self.element_content += content
+
+ def ignorableWhitespace(self, whitespace):
+ pass
+
+ def processingInstruction(self, target, data):
+ pass
+
+ def flushElementContent(self):
+ self.element_content = self.element_content.strip()
+ if self.element_content:
+ if self.incomplete_tag:
+ self.output('>')
+ self.incomplete_tag = False
+ self.output(xml.sax.saxutils.escape(self.element_content))
+ self.element_content = ''
+
+
+class XmlError(Exception):
+ pass
+
+
+def compressLayout(src, dst, comp):
+ state = [0, 0]
+ def write(block):
+ for ch in bytearray(block):
+ if 0 == state[0]:
+ dst('\t')
+ elif 0 == (state[0] % 32):
+ dst(',\n\t')
+ else:
+ dst(', ')
+ state[0] += 1
+ dst('%3u' % (ch))
+
+ def output(text):
+ block = text.encode('UTF-8')
+ state[1] += len(block)
+ write(comp.compress(block))
+
+ error_handler = ErrorHandler()
+ content_handler = Minifyer(output)
+ parser = xml.sax.make_parser()
+ parser.setErrorHandler(error_handler)
+ parser.setContentHandler(content_handler)
+ try:
+ parser.parse(src)
+ write(comp.flush())
+ dst('\n')
+ except xml.sax.SAXException as exception:
+ print('fatal error: %s' % (exception))
+ raise XmlError('Fatal error parsing XML')
+ if (error_handler.errors > 0) or (error_handler.warnings > 0):
+ raise XmlError('Error(s) and/or warning(s) parsing XML')
+
+ return state[1], state[0]
+
+
+if __name__ == '__main__':
+ if len(sys.argv) != 4:
+ print('Usage:')
+ print(' complay <source.lay> <output.h> <varname>')
+ sys.exit(0 if len(sys.argv) <= 1 else 1)
+
+ srcfile = sys.argv[1]
+ dstfile = sys.argv[2]
+ varname = sys.argv[3]
+
+ comp_type = 1
+ try:
+ dst = open(dstfile,'w')
+ dst.write('static const unsigned char %s_data[] = {\n' % (varname))
+ byte_count, comp_size = compressLayout(srcfile, lambda x: dst.write(x), zlib.compressobj())
+ dst.write('};\n\n')
+ dst.write('const internal_layout %s = {\n' % (varname))
+ dst.write('\t%d, sizeof(%s_data), %d, %s_data\n' % (byte_count, varname, comp_type, varname))
+ dst.write('};\n')
+ dst.close()
+ except XmlError:
+ dst.close()
+ os.remove(dstfile)
+ sys.exit(2)
+ except IOError:
+ sys.stderr.write("Unable to open output file '%s'\n" % dstfile)
+ os.remove(dstfile)
+ dst.close()
+ sys.exit(3)
diff --git a/docs/release/scripts/build/file2str.py b/docs/release/scripts/build/file2str.py
new file mode 100644
index 00000000000..7417f338328
--- /dev/null
+++ b/docs/release/scripts/build/file2str.py
@@ -0,0 +1,63 @@
+#!/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/docs/release/scripts/build/makedep.py b/docs/release/scripts/build/makedep.py
new file mode 100644
index 00000000000..cf4a97f1af0
--- /dev/null
+++ b/docs/release/scripts/build/makedep.py
@@ -0,0 +1,257 @@
+#!/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/devices/', 'src/mame/', 'src/lib/']
+
+mappings = dict()
+
+deps_files_included = [ ]
+
+deps_include_dirs = ['src/mame/']
+
+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, 'r')
+ fp.close()
+ return line + srcfile
+ except IOError:
+ pass
+ return ''
+
+def add_c_if_exists(root, fullname):
+ try:
+ fp = open(root + fullname, 'r')
+ 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','.cpp')
+ 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, 'r')
+ 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 ord(c)==13 or ord(c)==10:
+ if ord(c)==13 and ord(line[srcptr])==10:
+ srcptr+=1
+ continue
+ if c==' ' or ord(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','.cpp'))
+ 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, 'r')
+ 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 ord(c)==13 or ord(c)==10:
+ if ord(c)==13 and ord(line[srcptr])==10:
+ srcptr+=1
+ continue
+ if c==' ' or ord(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/lib/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') and not("src/emu" in fullname) and not("src/devices" in fullname) and not("src/lib" in fullname) and not("src/osd" in fullname)):
+ parse_file_for_deps(root, fullname.replace('.h','.cpp'), newfolder)
+ elif fullname.endswith('.h'):
+ parse_file(root, fullname.replace('.h','.cpp'), newfolder)
+ continue
+ fp.close()
+ return 0
+
+def parse_file_for_drivers(root, srcfile):
+ srcfile = srcfile.replace('\\','/')
+ if srcfile.startswith('src/mame/drivers'):
+ splitname = srcfile.split('/', 4)
+ drivers.append(splitname[3])
+ return 0
+
+def parse_lua_file(srcfile):
+ try:
+ fp = open(srcfile, 'r')
+ 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')
+parse_lua_file(root +'scripts/src/formats.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':
+ #output the list of externs first
+ for drv in sorted(drivers):
+ print(drv)
+ print("")
+
+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(' includedirs {\n')
+ sys.stdout.write(' MAME_DIR .. "src/osd",\n')
+ sys.stdout.write(' MAME_DIR .. "src/emu",\n')
+ sys.stdout.write(' MAME_DIR .. "src/devices",\n')
+ sys.stdout.write(' MAME_DIR .. "src/mame",\n')
+ sys.stdout.write(' MAME_DIR .. "src/lib",\n')
+ sys.stdout.write(' MAME_DIR .. "src/lib/util",\n')
+ sys.stdout.write(' MAME_DIR .. "src/lib/netlist",\n')
+ sys.stdout.write(' MAME_DIR .. "3rdparty",\n')
+ sys.stdout.write(' GEN_DIR .. "mame/layout",\n')
+ sys.stdout.write(' ext_includedir("zlib"),\n')
+ sys.stdout.write(' ext_includedir("flac"),\n')
+ sys.stdout.write(' }\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/docs/release/scripts/build/makelist.py b/docs/release/scripts/build/makelist.py
new file mode 100644
index 00000000000..1a27a515e04
--- /dev/null
+++ b/docs/release/scripts/build/makelist.py
@@ -0,0 +1,167 @@
+#!/usr/bin/python
+##
+## license:BSD-3-Clause
+## copyright-holders:Aaron Giles, Andrew Gardner
+
+from __future__ import with_statement
+
+import sys
+
+drivlist = []
+sourcelist = []
+filter_addlist = []
+filter_removelist = []
+
+def parse_file(srcfile):
+ try:
+ fp = open(srcfile, 'rt')
+ except IOError:
+ sys.stderr.write("Unable to open source file '%s'\n" % srcfile)
+ return 1
+ in_comment = 0
+ linenum = 0
+ curr_source = ''
+ 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 drivname[0]=='@':
+ curr_source= drivname[8:]
+ 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:
+ if (curr_source == '') or (len(sourcelist)==0) or (curr_source in sourcelist):
+ drivlist.append(drivname)
+ return 0
+
+def parse_filter_file(srcfile):
+ try:
+ fp = open(srcfile, 'rt')
+ except IOError:
+ sys.stderr.write("Unable to open filter file '%s'\n" % srcfile)
+ return 1
+ in_comment = 0
+ linenum = 0
+ for line in fp.readlines():
+ sourcename = ''
+ 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
+ sourcename += c
+ sourcename = sourcename.strip()
+ if len(sourcename)>0:
+ if sourcename[0]=='#':
+ sys.stderr.write("Importing drivers from '%s'\n" % sourcename[1:])
+ parse_filter_file(sourcename[1:])
+ continue
+ if sourcename[0]=='+':
+ filter_addlist.append(sourcename[1:])
+ continue
+ if sourcename[0]=='-':
+ filter_removelist.append(sourcename[1:])
+ continue
+ if not all(((c >='a' and c<='z') or (c>='0' and c<='9') or c=='_' or c=='.' or c=='-') for c in sourcename):
+ sys.stderr.write("%s:%d - Invalid character in driver \"%s\"\n" % (srcfile, linenum, sourcename))
+ return 1
+ else:
+ sourcelist.append(sourcename)
+ return 0
+
+
+if len(sys.argv) < 2 or len(sys.argv) > 3:
+ print('Usage:')
+ print(' makelist <source.lst> [<filter.flt>]')
+ sys.exit(0)
+
+if len(sys.argv) == 3:
+ if parse_filter_file(sys.argv[2]) :
+ sys.exit(1)
+ sys.stderr.write("%d source file(s) found\n" % len(sourcelist))
+
+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)
+
+for x in filter_addlist:
+ drivlist.append(x)
+
+drivlist = [x for x in drivlist if (x not in filter_removelist)]
+
+sys.stderr.write("%d driver(s) 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("std::size_t const driver_list::s_driver_count = %d;\n" % len(drivlist))
diff --git a/docs/release/scripts/build/msgfmt.py b/docs/release/scripts/build/msgfmt.py
new file mode 100644
index 00000000000..deb02ae32b2
--- /dev/null
+++ b/docs/release/scripts/build/msgfmt.py
@@ -0,0 +1,291 @@
+#! /usr/bin/env python
+# -*- coding: utf-8 -*-
+# Written by Martin v. Löwis <loewis@informatik.hu-berlin.de>
+
+"""Generate binary message catalog from textual translation description.
+
+This program converts a textual Uniforum-style message catalog (.po file) into
+a binary GNU catalog (.mo file). This is essentially the same function as the
+GNU msgfmt program, however, it is a simpler implementation.
+
+Usage: msgfmt.py [OPTIONS] filename.po
+
+Options:
+ -o file
+ --output-file=file
+ Specify the output file to write to. If omitted, output will go to a
+ file named filename.mo (based off the input file name).
+
+ -h
+ --help
+ Print this message and exit.
+
+ -V
+ --version
+ Display version information and exit.
+"""
+
+from __future__ import print_function
+import os
+import sys
+import getopt
+import struct
+import array
+import re
+import codecs
+from email.parser import HeaderParser
+
+__version__ = "1.2"
+
+MESSAGES = {}
+
+
+
+def usage(code, msg=''):
+ print(__doc__, file=sys.stderr)
+ if msg:
+ print(msg, file=sys.stderr)
+ sys.exit(code)
+
+
+
+def add(id, str, fuzzy):
+ "Add a non-fuzzy translation to the dictionary."
+ global MESSAGES
+ if not fuzzy and str:
+ MESSAGES[id] = str
+
+def dequote(s):
+ if (s[0] == s[-1]) and s.startswith(("'", '"')):
+ return s[1:-1]
+ return s
+
+# decode_escapes from http://stackoverflow.com/a/24519338
+ESCAPE_SEQUENCE_RE = re.compile(r'''
+ ( \\U........ # 8-digit hex escapes
+ | \\u.... # 4-digit hex escapes
+ | \\x.. # 2-digit hex escapes
+ | \\[0-7]{1,3} # Octal escapes
+ | \\N\{[^}]+\} # Unicode characters by name
+ | \\[\\'"abfnrtv] # Single-character escapes
+ )''', re.UNICODE | re.VERBOSE)
+
+def decode_escapes(s):
+ def decode_match(match):
+ return codecs.decode(match.group(0), 'unicode-escape')
+
+ return ESCAPE_SEQUENCE_RE.sub(decode_match, s)
+
+
+def generate():
+ "Return the generated output."
+ global MESSAGES
+ # the keys are sorted in the .mo file
+ keys = sorted(MESSAGES.keys())
+ offsets = []
+ ids = strs = b''
+ for id in keys:
+ # For each string, we need size and file offset. Each string is NUL
+ # terminated; the NUL does not count into the size.
+ offsets.append((len(ids), len(id), len(strs), len(MESSAGES[id])))
+ ids += id + b'\0'
+ strs += MESSAGES[id] + b'\0'
+ output = ''
+ # The header is 7 32-bit unsigned integers. We don't use hash tables, so
+ # the keys start right after the index tables.
+ # translated string.
+ keystart = 7*4+16*len(keys)
+ # and the values start after the keys
+ valuestart = keystart + len(ids)
+ koffsets = []
+ voffsets = []
+ # The string table first has the list of keys, then the list of values.
+ # Each entry has first the size of the string, then the file offset.
+ for o1, l1, o2, l2 in offsets:
+ koffsets += [l1, o1+keystart]
+ voffsets += [l2, o2+valuestart]
+ offsets = koffsets + voffsets
+ output = struct.pack("Iiiiiii",
+ 0x950412de, # Magic
+ 0, # Version
+ len(keys), # # of entries
+ 7*4, # start of key index
+ 7*4+len(keys)*8, # start of value index
+ 0, 0) # size and offset of hash table
+ output += array.array("i", offsets).tostring()
+ output += ids
+ output += strs
+ return output
+
+
+
+def make(filename, outfile):
+ ID = 1
+ STR = 2
+
+ # Compute .mo name from .po name and arguments
+ if filename.endswith('.po'):
+ infile = filename
+ else:
+ infile = filename + '.po'
+ if outfile is None:
+ outfile = os.path.splitext(infile)[0] + '.mo'
+
+ try:
+ lines = open(infile, 'rb').readlines()
+ except IOError as msg:
+ print(msg, file=sys.stderr)
+ sys.exit(1)
+
+ section = None
+ fuzzy = 0
+ empty = 0
+ header_attempted = False
+
+ # Start off assuming Latin-1, so everything decodes without failure,
+ # until we know the exact encoding
+ encoding = 'latin-1'
+
+ # Start off assuming Latin-1, so everything decodes without failure,
+ # until we know the exact encoding
+ encoding = 'latin-1'
+
+ # Parse the catalog
+ for lno, l in enumerate(lines):
+ l = l.decode(encoding)
+ # If we get a comment line after a msgstr, this is a new entry
+ if l[0] == '#' and section == STR:
+ add(msgid, msgstr, fuzzy)
+ section = None
+ fuzzy = 0
+ # Record a fuzzy mark
+ if l[:2] == '#,' and 'fuzzy' in l:
+ fuzzy = 1
+ # Skip comments
+ if l[0] == '#':
+ continue
+ # Now we are in a msgid section, output previous section
+ if l.startswith('msgid') and not l.startswith('msgid_plural'):
+ if section == STR:
+ add(msgid, msgstr, fuzzy)
+ if not msgid:
+ # See whether there is an encoding declaration
+ p = HeaderParser()
+ charset = p.parsestr(msgstr.decode(encoding)).get_content_charset()
+ if charset:
+ encoding = charset
+ section = ID
+ l = l[5:]
+ msgid = msgstr = b''
+ is_plural = False
+ if l.strip() == '""':
+ # Check if next line is msgstr. If so, this is a multiline msgid.
+ if lines[lno+1].decode(encoding).startswith('msgstr'):
+ # If this is the first empty msgid and is followed by msgstr, this is the header, which may contain the encoding declaration.
+ # Otherwise this file is not valid
+ if empty > 1:
+ print("Found multiple empty msgids on line " + str(lno) + ", not valid!")
+ empty += 1
+ # This is a message with plural forms
+ elif l.startswith('msgid_plural'):
+ if section != ID:
+ print('msgid_plural not preceded by msgid on %s:%d' % (infile, lno),
+ file=sys.stderr)
+ sys.exit(1)
+ l = l[12:]
+ msgid += b'\0' # separator of singular and plural
+ is_plural = True
+ # Now we are in a msgstr section
+ elif l.startswith('msgstr'):
+ section = STR
+ if l.startswith('msgstr['):
+ if not is_plural:
+ print('plural without msgid_plural on %s:%d' % (infile, lno),
+ file=sys.stderr)
+ sys.exit(1)
+ l = l.split(']', 1)[1]
+ if msgstr:
+ msgstr += b'\0' # Separator of the various plural forms
+ else:
+ if (l[6:].strip() == '""') and (empty == 1) and (not header_attempted):
+ header = ""
+ # parse up until next empty line = end of header
+ hdrno = lno
+ while(hdrno < len(lines)-1):
+ # This is a roundabout way to strip non-ASCII unicode characters from the header.
+ # As we are only parsing out the encoding, we don't need any unicode chars in it.
+ l = lines[hdrno+1].decode('unicode_escape').encode('ascii','ignore').decode(encoding)
+ if l.strip():
+ header += decode_escapes(dequote(l.strip()))
+ else:
+ break
+ hdrno += 1
+ # See whether there is an encoding declaration
+ if(hdrno > lno):
+ p = HeaderParser()
+ charset = p.parsestr(str(header)).get_content_charset()
+ header_attempted = True
+ if charset:
+ encoding = charset
+ if is_plural:
+ print('indexed msgstr required for plural on %s:%d' % (infile, lno),
+ file=sys.stderr)
+ sys.exit(1)
+ l = l[6:]
+ # Skip empty lines
+ l = l.strip()
+ if not l:
+ continue
+ l = decode_escapes(dequote(l)) # strip quotes and replace newlines if present
+ if section == ID:
+ msgid += l.encode(encoding)
+ elif section == STR:
+ msgstr += l.encode(encoding)
+ else:
+ print('Syntax error on %s:%d' % (infile, lno), \
+ 'before:', file=sys.stderr)
+ print(l, file=sys.stderr)
+ sys.exit(1)
+ # Add last entry
+ if section == STR:
+ add(msgid, msgstr, fuzzy)
+
+ # Compute output
+ output = generate()
+
+ try:
+ open(outfile,"wb").write(output)
+ except IOError as msg:
+ print(msg, file=sys.stderr)
+
+
+
+def main():
+ try:
+ opts, args = getopt.getopt(sys.argv[1:], 'hVo:',
+ ['help', 'version', 'output-file='])
+ except getopt.error as msg:
+ usage(1, msg)
+
+ outfile = None
+ # parse options
+ for opt, arg in opts:
+ if opt in ('-h', '--help'):
+ usage(0)
+ elif opt in ('-V', '--version'):
+ print("msgfmt.py", __version__)
+ sys.exit(0)
+ elif opt in ('-o', '--output-file'):
+ outfile = arg
+ # do it
+ if not args:
+ print('No input file given', file=sys.stderr)
+ print("Try `msgfmt --help' for more information.", file=sys.stderr)
+ return
+
+ for filename in args:
+ make(filename, outfile)
+
+
+if __name__ == '__main__':
+ main()
diff --git a/docs/release/scripts/build/png.py b/docs/release/scripts/build/png.py
new file mode 100644
index 00000000000..76798443669
--- /dev/null
+++ b/docs/release/scripts/build/png.py
@@ -0,0 +1,2782 @@
+#!/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,print_function
+
+__version__ = "0.0.17"
+
+from array import array
+try:
+ from itertools import imap
+except ImportError:
+ imap = map
+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 = list(map(self.bitdepth.__mul__, reversed(range(spb))))
+ for o in raw:
+ out.extend(list(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:
+ raise ChunkError(sys.exc_info()[1].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 = list(self.palette())
+ def iterpal(pixels):
+ for row in pixels:
+ row = list(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 = sys.exc_info()[1]
+ print(e, file=sys.stderr)
diff --git a/docs/release/scripts/build/png2bdc.py b/docs/release/scripts/build/png2bdc.py
new file mode 100644
index 00000000000..a1be5c552d0
--- /dev/null
+++ b/docs/release/scripts/build/png2bdc.py
@@ -0,0 +1,391 @@
+#!/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
+
+if sys.version_info >= (3,):
+ def b2p(v):
+ return bytes([v])
+else:
+ def b2p(v):
+ return chr(v)
+
+
+########################################
+## 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.defChar = -1 # default character for glyphs not present
+ 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, length64, 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 = 16
+ CACHED_HEADER_SIZE = 32
+
+ try:
+ fp.write(b'b')
+ fp.write(b'd')
+ fp.write(b'c')
+ fp.write(b'f')
+ fp.write(b'n')
+ fp.write(b't')
+ fp.write(b2p(1))
+ fp.write(b2p(0))
+ fp.write(b2p(length64 >> 56 & 0xff))
+ fp.write(b2p(length64 >> 48 & 0xff))
+ fp.write(b2p(length64 >> 40 & 0xff))
+ fp.write(b2p(length64 >> 32 & 0xff))
+ fp.write(b2p(length64 >> 24 & 0xff))
+ fp.write(b2p(length64 >> 16 & 0xff))
+ fp.write(b2p(length64 >> 8 & 0xff))
+ fp.write(b2p(length64 >> 0 & 0xff))
+ fp.write(b2p(hash32 >> 24 & 0xff))
+ fp.write(b2p(hash32 >> 16 & 0xff))
+ fp.write(b2p(hash32 >> 8 & 0xff))
+ fp.write(b2p(hash32 >> 0 & 0xff))
+ fp.write(b2p(numChars >> 24 & 0xff))
+ fp.write(b2p(numChars >> 16 & 0xff))
+ fp.write(b2p(numChars >> 8 & 0xff))
+ fp.write(b2p(numChars >> 0 & 0xff))
+ fp.write(b2p(font.height >> 8 & 0xff))
+ fp.write(b2p(font.height >> 0 & 0xff))
+ fp.write(b2p(font.yOffs >> 8 & 0xff))
+ fp.write(b2p(font.yOffs >> 0 & 0xff))
+ fp.write(b2p(font.defChar >> 24 & 0xff))
+ fp.write(b2p(font.defChar >> 16 & 0xff))
+ fp.write(b2p(font.defChar >> 8 & 0xff))
+ fp.write(b2p(font.defChar >> 0 & 0xff))
+
+ # Write a blank table at first (?)
+ charTable = [0]*(numChars * CACHED_CHAR_SIZE)
+ for i in range(numChars * CACHED_CHAR_SIZE):
+ fp.write(b2p(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(b2p(dBuffer[j]))
+
+ destIndex = tableIndex * CACHED_CHAR_SIZE
+ charTable[destIndex + 0] = i >> 24 & 0xff
+ charTable[destIndex + 1] = i >> 16 & 0xff
+ charTable[destIndex + 2] = i >> 8 & 0xff
+ charTable[destIndex + 3] = i >> 0 & 0xff
+ charTable[destIndex + 4] = c.width >> 8 & 0xff
+ charTable[destIndex + 5] = c.width >> 0 & 0xff
+ charTable[destIndex + 8] = c.xOffs >> 8 & 0xff
+ charTable[destIndex + 9] = c.xOffs >> 0 & 0xff
+ charTable[destIndex + 10] = c.yOffs >> 8 & 0xff
+ charTable[destIndex + 11] = c.yOffs >> 0 & 0xff
+ charTable[destIndex + 12] = c.bmWidth >> 8 & 0xff
+ charTable[destIndex + 13] = c.bmWidth >> 0 & 0xff
+ charTable[destIndex + 14] = c.bmHeight >> 8 & 0xff
+ charTable[destIndex + 15] = 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(b2p(charTable[i]))
+
+ fp.close()
+ return 0
+
+ except:
+ print(sys.exc_info[1])
+ 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, 0)
+ return error
+
+
+
+########################################
+## Program entry point
+########################################
+if __name__ == "__main__":
+ sys.exit(main())
diff --git a/docs/release/scripts/build/verinfo.py b/docs/release/scripts/build/verinfo.py
new file mode 100644
index 00000000000..c294df827aa
--- /dev/null
+++ b/docs/release/scripts/build/verinfo.py
@@ -0,0 +1,170 @@
+#!/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] [-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/docs/release/scripts/depfilter.awk b/docs/release/scripts/depfilter.awk
new file mode 100644
index 00000000000..74f3cce9ce7
--- /dev/null
+++ b/docs/release/scripts/depfilter.awk
@@ -0,0 +1,25 @@
+function base_dir(f)
+{
+ ne = split(f, s, "/")
+ for(k=ne;k>=1 && s[k] != "src";k--);
+ r = s[k]
+ for(j=k+1;j<ne;j++)
+ r = r "/" s[j]
+ return r
+}
+
+{
+ for(i=1; i<=NF; i++) {
+ if($i != "\\") {
+ ff = $i
+ fd = base_dir(ff)
+ if(substr(ff,length(ff)) == ":") {
+ root_dir = fd
+ } else if(fd != root_dir) {
+ if(fd == "src/emu" || fd == "src/osd" || fd == "src/lib/util")
+ $i = ""
+ }
+ }
+ }
+ print
+} \ No newline at end of file
diff --git a/docs/release/scripts/extlib.lua b/docs/release/scripts/extlib.lua
new file mode 100644
index 00000000000..674f1b1d881
--- /dev/null
+++ b/docs/release/scripts/extlib.lua
@@ -0,0 +1,104 @@
+-- license:BSD-3-Clause
+-- copyright-holders:MAMEdev Team,Jeffrey Clark
+
+local extlibs = {
+--
+-- 3rdparty system 3rdparty
+-- lib name: lib name, include dir
+--
+ expat = { "expat", "3rdparty/expat/lib" },
+ zlib = { "z", "3rdparty/zlib" },
+ jpeg = { "jpeg", "3rdparty/libjpeg" },
+ flac = { "FLAC", "3rdparty/libflac/include" },
+ sqlite3 = { "sqlite3", "3rdparty/sqlite3" },
+ portmidi = { "portmidi", "3rdparty/portmidi/pm_common" },
+ portaudio = { "portaudio", "3rdparty/portaudio/include" },
+ lua = { "lua", "3rdparty/lua/src" },
+ utf8proc = { "utf8proc", "3rdparty/utf8proc" },
+}
+
+-- system lib options
+newoption {
+ trigger = 'with-system-expat',
+ description = 'Use system Expat library',
+}
+
+newoption {
+ trigger = 'with-system-zlib',
+ description = 'Use system Zlib library',
+}
+
+newoption {
+ trigger = 'with-system-jpeg',
+ description = 'Use system JPEG library',
+}
+
+newoption {
+ trigger = 'with-system-flac',
+ description = 'Use system FLAC library',
+}
+
+newoption {
+ trigger = 'with-system-sqlite3',
+ description = 'Use system SQLite library',
+}
+
+newoption {
+ trigger = 'with-system-portmidi',
+ description = 'Use system PortMidi library',
+}
+
+newoption {
+ trigger = 'with-system-portaudio',
+ description = 'Use system PortAudio library',
+}
+
+newoption {
+ trigger = "with-system-lua",
+ description = "Use system LUA library",
+}
+
+newoption {
+ trigger = "with-system-utf8proc",
+ description = "Use system utf8proc library",
+}
+
+-- build helpers
+function ext_lib(lib)
+ local opt = _OPTIONS["with-system-" .. lib]
+ if (opt~=nil and opt=="1") then
+ default = extlibs[lib][1]
+ else
+ default = lib
+ end
+ return ext_best(lib, default, 1)
+end
+
+function ext_includedir(lib)
+ local opt = _OPTIONS["with-system-" .. lib]
+ if (opt==nil or opt=="0") then
+ -- using bundled, prepend MAME_DIR
+ default = MAME_DIR .. extlibs[lib][2]
+ else
+ default = ""
+ end
+ return ext_best(lib, default, 2)
+end
+
+function ext_best(lib, default, idx)
+ local opt = _OPTIONS["with-system-" .. lib]
+ local found = default
+ if (opt~=nil and opt~="0" and opt~="1") then
+ -- override default if provided (format <libname:includedir>)
+ local x = opt:explode(":")
+ if x[idx]~=nil then
+ local y = x[idx]:explode(",")
+ if y[1]~=nil then
+ found = y
+ else
+ found = x[idx]
+ end
+ end
+ end
+ return found
+end
diff --git a/docs/release/scripts/font/LICENSE b/docs/release/scripts/font/LICENSE
new file mode 100644
index 00000000000..d952d62c065
--- /dev/null
+++ b/docs/release/scripts/font/LICENSE
@@ -0,0 +1,92 @@
+This Font Software is licensed under the SIL Open Font License,
+Version 1.1.
+
+This license is copied below, and is also available with a FAQ at:
+http://scripts.sil.org/OFL
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide
+development of collaborative font projects, to support the font
+creation efforts of academic and linguistic communities, and to
+provide a free and open framework in which fonts may be shared and
+improved in partnership with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and
+redistributed freely as long as they are not sold by themselves. The
+fonts, including any derivative works, can be bundled, embedded,
+redistributed and/or sold with any software provided that any reserved
+names are not used by derivative works. The fonts and derivatives,
+however, cannot be released under any other type of license. The
+requirement for fonts to remain under this license does not apply to
+any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright
+Holder(s) under this license and clearly marked as such. This may
+include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the
+copyright statement(s).
+
+"Original Version" refers to the collection of Font Software
+components as distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to,
+deleting, or substituting -- in part or in whole -- any of the
+components of the Original Version, by changing formats or by porting
+the Font Software to a new environment.
+
+"Author" refers to any designer, engineer, programmer, technical
+writer or other person who contributed to the Font Software.
+
+PERMISSION & CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of the Font Software, to use, study, copy, merge, embed,
+modify, redistribute, and sell modified and unmodified copies of the
+Font Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components, in
+Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled,
+redistributed and/or sold with any software, provided that each copy
+contains the above copyright notice and this license. These can be
+included either as stand-alone text files, human-readable headers or
+in the appropriate machine-readable metadata fields within text or
+binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font
+Name(s) unless explicit written permission is granted by the
+corresponding Copyright Holder. This restriction only applies to the
+primary font name as presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
+Software shall not be used to promote, endorse or advertise any
+Modified Version, except to acknowledge the contribution(s) of the
+Copyright Holder(s) and the Author(s) or with their explicit written
+permission.
+
+5) The Font Software, modified or unmodified, in part or in whole,
+must be distributed entirely under this license, and must not be
+distributed under any other license. The requirement for fonts to
+remain under this license does not apply to any document created using
+the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are
+not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
+COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
+DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
+OTHER DEALINGS IN THE FONT SOFTWARE.
diff --git a/docs/release/scripts/font/NotoSans-Bold.bdc b/docs/release/scripts/font/NotoSans-Bold.bdc
new file mode 100644
index 00000000000..2ac5c7e0e59
--- /dev/null
+++ b/docs/release/scripts/font/NotoSans-Bold.bdc
Binary files differ
diff --git a/docs/release/scripts/font/NotoSans-Bold.ttf b/docs/release/scripts/font/NotoSans-Bold.ttf
new file mode 100644
index 00000000000..21dddde9d3b
--- /dev/null
+++ b/docs/release/scripts/font/NotoSans-Bold.ttf
Binary files differ
diff --git a/docs/release/scripts/font/README.md b/docs/release/scripts/font/README.md
new file mode 100644
index 00000000000..76046e8fcab
--- /dev/null
+++ b/docs/release/scripts/font/README.md
@@ -0,0 +1,52 @@
+![Noto](images/noto.png)
+
+# Noto fonts
+
+Noto's goal is to provide a beautiful reading experience for everyone and for all languages. With visual harmony when multiple languages share a page. With multiple styles and weights. **_Freely available to all._**
+
+Currently, Noto covers all major languages of the world and many others, including European, African, Middle Eastern, Indic, South and Southeast Asian, Central Asian, American, and East Asian languages. Several minority and historical languages are also supported.
+
+Support for Simplified Chinese, Traditional Chinese, Japanese, and Korean was first added in July 2014.
+
+You can preview and download the Noto fonts at http://www.google.com/get/noto
+
+Noto fonts are open source. All fonts are published under the [SIL Open Font License, Version 1.1](http://scripts.sil.org/OFL). (Prior to September 29, 2015, Noto fonts other than CJK were published under the [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.html).)
+
+Use unhinted fonts for Android and Mac (Android and Mac ignore hinting information embedded in fonts). Use hinted fonts for other platforms.
+
+## Development
+
+All Noto fonts are included in this repository, except:
+
+ * Noto CJK fonts are in [noto-cjk](https://github.com/googlei18n/noto-cjk),
+ * Noto Emoji and Noto Color Emoji are in [noto-emoji](https://github.com/googlei18n/noto-emoji).
+
+Tools used for testing fonts are in [nototools](https://github.com/googlei18n/nototools).
+
+Some source files are available in [noto-source](https://github.com/googlei18n/noto-source).
+
+Development and user discussions happen on the [noto-font Google Group](https://groups.google.com/d/forum/noto-font).
+
+## News
+
+* [2015-09-29](NEWS): All Noto fonts now licensed under SIL Open Font License v1.1.
+
+* 2015-06-08: The Noto project moved from Google Code to Github.
+
+* 2015-04-20: Noto Sans CJK Version 1.002 released.
+
+* 2015-03-30: Noto Sans Oriya and and a new design for Armenian fonts released.
+
+* 2014-10-23: Experimental version of Noto Nastaliq Urdu released.
+
+## Special Note on Droid Fonts
+
+The Droid fonts are superseded by Noto. Noto began as Droid, and since renaming all updates are made to the Noto fonts.
+Today Noto gives better support to all languages covered by Droid fonts, with more characters and fewer bugs, and covers many more languages.
+Both Android and ChromeOS have switched to Noto, and we strongly recommend everyone to replace Droid with Noto.
+
+Similarly, the Droid Sans Fallback font is superseded by Noto Sans CJK, available from [noto-cjk](https://github.com/googlei18n/noto-cjk).
+
+Have fun!
+
+Google Internationalization Team
diff --git a/docs/release/scripts/genie.lua b/docs/release/scripts/genie.lua
new file mode 100644
index 00000000000..e905e3b6aef
--- /dev/null
+++ b/docs/release/scripts/genie.lua
@@ -0,0 +1,1399 @@
+-- license:BSD-3-Clause
+-- copyright-holders:MAMEdev Team
+STANDALONE = false
+
+-- Big project specific
+premake.make.makefile_ignore = true
+premake._checkgenerate = false
+
+newoption {
+ trigger = 'build-dir',
+ description = 'Build directory name',
+}
+
+premake.check_paths = true
+premake.make.override = { "TARGET" }
+
+premake.xcode.parameters = { 'CLANG_CXX_LANGUAGE_STANDARD = "c++14"', 'CLANG_CXX_LIBRARY = "libc++"' }
+
+MAME_DIR = (path.getabsolute("..") .. "/")
+--MAME_DIR = string.gsub(MAME_DIR, "(%s)", "\\%1")
+local MAME_BUILD_DIR = (MAME_DIR .. _OPTIONS["build-dir"] .. "/")
+local naclToolchain = ""
+
+newoption {
+ trigger = "precompile",
+ description = "Precompiled headers generation.",
+ allowed = {
+ { "0", "Disabled" },
+ { "1", "Enabled" },
+ }
+}
+
+function backtick(cmd)
+ result = string.gsub(string.gsub(os.outputof(cmd), "\r?\n$", ""), " $", "")
+ return result
+end
+
+function str_to_version(str)
+ local val = 0
+ if (str == nil or str == '') then
+ return val
+ end
+ local cnt = 10000
+ for word in string.gmatch(str, '([^.]+)') do
+ val = val + tonumber(word) * cnt
+ cnt = cnt / 100
+ end
+ return val
+end
+
+function findfunction(x)
+ assert(type(x) == "string")
+ local f=_G
+ for v in x:gmatch("[^%.]+") do
+ if type(f) ~= "table" then
+ return nil, "looking for '"..v.."' expected table, not "..type(f)
+ end
+ f=f[v]
+ end
+ if type(f) == "function" then
+ return f
+ else
+ return nil, "expected function, not "..type(f)
+ end
+end
+
+function layoutbuildtask(_folder, _name)
+ return { MAME_DIR .. "src/".._folder.."/".. _name ..".lay" , GEN_DIR .. _folder .. "/".._name..".lh",
+ { MAME_DIR .. "scripts/build/complay.py" }, {"@echo Compressing src/".._folder.."/".._name..".lay...", PYTHON .. " $(1) $(<) $(@) layout_".._name }};
+end
+
+function precompiledheaders()
+ if _OPTIONS["precompile"]==nil or (_OPTIONS["precompile"]~=nil and _OPTIONS["precompile"]=="1") then
+ configuration { "not xcode4" }
+ pchheader("emu.h")
+ configuration { }
+ end
+end
+
+function addprojectflags()
+ local version = str_to_version(_OPTIONS["gcc_version"])
+ if _OPTIONS["gcc"]~=nil and string.find(_OPTIONS["gcc"], "gcc") then
+ if version >= 50100 then
+ buildoptions_cpp {
+ "-Wsuggest-override",
+ }
+ end
+ if version >= 60000 then
+ buildoptions_cpp {
+ "-flifetime-dse=1",
+ }
+ end
+ end
+end
+
+CPUS = {}
+SOUNDS = {}
+MACHINES = {}
+VIDEOS = {}
+BUSES = {}
+FORMATS = {}
+
+newoption {
+ trigger = "with-tools",
+ description = "Enable building tools.",
+}
+
+newoption {
+ trigger = "with-tests",
+ description = "Enable building tests.",
+}
+
+newoption {
+ trigger = "with-benchmarks",
+ description = "Enable building benchmarks.",
+}
+
+newoption {
+ trigger = "osd",
+ description = "Choose OSD layer implementation",
+}
+
+newoption {
+ trigger = "targetos",
+ description = "Choose target OS",
+ allowed = {
+ { "android", "Android" },
+ { "asmjs", "Emscripten/asm.js" },
+ { "freebsd", "FreeBSD" },
+ { "netbsd", "NetBSD" },
+ { "openbsd", "OpenBSD" },
+ { "pnacl", "Native Client - PNaCl" },
+ { "linux", "Linux" },
+ { "ios", "iOS" },
+ { "macosx", "OSX" },
+ { "windows", "Windows" },
+ { "haiku", "Haiku" },
+ { "solaris", "Solaris SunOS" },
+ { "steamlink", "Steam Link" },
+ { "rpi", "Raspberry Pi" },
+ { "ci20", "Creator-Ci20" },
+ },
+}
+
+newoption {
+ trigger = 'with-bundled-sdl2',
+ description = 'Build bundled SDL2 library',
+}
+
+newoption {
+ trigger = "distro",
+ description = "Choose distribution",
+ allowed = {
+ { "generic", "generic" },
+ { "debian-stable", "debian-stable" },
+ { "ubuntu-intrepid", "ubuntu-intrepid" },
+ },
+}
+
+newoption {
+ trigger = "target",
+ description = "Building target",
+}
+
+newoption {
+ trigger = "subtarget",
+ description = "Building subtarget",
+}
+
+newoption {
+ trigger = "gcc_version",
+ description = "GCC compiler version",
+}
+
+newoption {
+ trigger = "CC",
+ description = "CC replacement",
+}
+
+newoption {
+ trigger = "CXX",
+ description = "CXX replacement",
+}
+
+newoption {
+ trigger = "LD",
+ description = "LD replacement",
+}
+
+newoption {
+ trigger = "TOOLCHAIN",
+ description = "Toolchain prefix"
+}
+
+newoption {
+ trigger = "PROFILE",
+ description = "Enable profiling.",
+}
+
+newoption {
+ trigger = "SYMBOLS",
+ description = "Enable symbols.",
+}
+
+newoption {
+ trigger = "SYMLEVEL",
+ description = "Symbols level.",
+}
+
+newoption {
+ trigger = "PROFILER",
+ description = "Include the internal profiler.",
+}
+
+newoption {
+ trigger = "OPTIMIZE",
+ description = "Optimization level.",
+}
+
+newoption {
+ trigger = "ARCHOPTS",
+ description = "ARCHOPTS.",
+}
+
+newoption {
+ trigger = "OPT_FLAGS",
+ description = "OPT_FLAGS.",
+}
+
+newoption {
+ trigger = "LDOPTS",
+ description = "Additional linker options",
+}
+
+newoption {
+ trigger = "MAP",
+ description = "Generate a link map.",
+}
+
+newoption {
+ trigger = "NOASM",
+ description = "Disable implementations based on assembler code",
+ allowed = {
+ { "0", "Enable assembler code" },
+ { "1", "Disable assembler code" },
+ },
+}
+
+newoption {
+ trigger = "BIGENDIAN",
+ description = "Build for big endian target",
+ allowed = {
+ { "0", "Little endian target" },
+ { "1", "Big endian target" },
+ },
+}
+
+newoption {
+ trigger = "FORCE_DRC_C_BACKEND",
+ description = "Force DRC C backend.",
+}
+
+newoption {
+ trigger = "NOWERROR",
+ description = "NOWERROR",
+}
+
+newoption {
+ trigger = "DEPRECATED",
+ description = "Generate deprecation warnings during compilation.",
+ allowed = {
+ { "0", "Disabled" },
+ { "1", "Enabled" },
+ }
+}
+
+newoption {
+ trigger = "LTO",
+ description = "Clang link time optimization.",
+ allowed = {
+ { "0", "Disabled" },
+ { "1", "Enabled" },
+ }
+}
+
+newoption {
+ trigger = "SSE2",
+ description = "SSE2 optimized code and SSE2 code generation.",
+ allowed = {
+ { "0", "Disabled" },
+ { "1", "Enabled" },
+ }
+}
+
+newoption {
+ trigger = "SSE3",
+ description = "SSE3 optimized code and SSE3 code generation.",
+ allowed = {
+ { "0", "Disabled" },
+ { "1", "Enabled" },
+ }
+}
+
+newoption {
+ trigger = "OPENMP",
+ description = "OpenMP optimized code.",
+ allowed = {
+ { "0", "Disabled" },
+ { "1", "Enabled" },
+ }
+}
+
+newoption {
+ trigger = "FASTDEBUG",
+ description = "Fast DEBUG.",
+ allowed = {
+ { "0", "Disabled" },
+ { "1", "Enabled" },
+ }
+}
+
+newoption {
+ trigger = "SEPARATE_BIN",
+ description = "Use separate bin folders.",
+ allowed = {
+ { "0", "Disabled" },
+ { "1", "Enabled" },
+ }
+}
+
+newoption {
+ trigger = "PYTHON_EXECUTABLE",
+ description = "Python executable.",
+}
+
+newoption {
+ trigger = "SHADOW_CHECK",
+ description = "Shadow checks.",
+ allowed = {
+ { "0", "Disabled" },
+ { "1", "Enabled" },
+ }
+}
+
+newoption {
+ trigger = "STRIP_SYMBOLS",
+ description = "Symbols stripping.",
+ allowed = {
+ { "0", "Disabled" },
+ { "1", "Enabled" },
+ }
+}
+
+
+newoption {
+ trigger = "SHLIB",
+ description = "Generate shared libs.",
+ allowed = {
+ { "0", "Static libs" },
+ { "1", "Shared libs" },
+ }
+}
+
+newoption {
+ trigger = "SOURCES",
+ description = "List of sources to compile.",
+}
+
+newoption {
+ trigger = "PLATFORM",
+ description = "Target machine platform (x86,arm,...)",
+}
+
+newoption {
+ trigger = "DEBUG_DIR",
+ description = "Default directory for debugger.",
+}
+
+newoption {
+ trigger = "DEBUG_ARGS",
+ description = "Arguments for running debug build.",
+}
+
+newoption {
+ trigger = "WEBASSEMBLY",
+ description = "Produce WebAssembly output when building with Emscripten.",
+}
+
+newoption {
+ trigger = "PROJECT",
+ description = "Select projects to be built. Will look into project folder for files.",
+}
+
+dofile ("extlib.lua")
+
+if _OPTIONS["SHLIB"]=="1" then
+ LIBTYPE = "SharedLib"
+else
+ LIBTYPE = "StaticLib"
+end
+
+PYTHON = "python"
+
+if _OPTIONS["PYTHON_EXECUTABLE"]~=nil then
+ PYTHON = _OPTIONS["PYTHON_EXECUTABLE"]
+end
+
+if not _OPTIONS["BIGENDIAN"] then
+ _OPTIONS["BIGENDIAN"] = "0"
+end
+
+if not _OPTIONS["NOASM"] then
+ if _OPTIONS["targetos"]=="emscripten" then
+ _OPTIONS["NOASM"] = "1"
+ else
+ _OPTIONS["NOASM"] = "0"
+ end
+end
+
+if _OPTIONS["NOASM"]=="1" and not _OPTIONS["FORCE_DRC_C_BACKEND"] then
+ _OPTIONS["FORCE_DRC_C_BACKEND"] = "1"
+end
+
+if(_OPTIONS["TOOLCHAIN"] == nil) then
+ _OPTIONS['TOOLCHAIN'] = ""
+end
+
+GEN_DIR = MAME_BUILD_DIR .. "generated/"
+
+if (_OPTIONS["target"] == nil) then return false end
+if (_OPTIONS["subtarget"] == nil) then return false end
+
+if (_OPTIONS["target"] == _OPTIONS["subtarget"]) then
+ solution (_OPTIONS["target"])
+else
+ if (_OPTIONS["subtarget"]=="mess") then
+ solution (_OPTIONS["subtarget"])
+ else
+ solution (_OPTIONS["target"] .. _OPTIONS["subtarget"])
+ end
+end
+
+
+configurations {
+ "Debug",
+ "Release",
+}
+
+if _ACTION == "xcode4" then
+ platforms {
+ "x64",
+ }
+else
+ platforms {
+ "x32",
+ "x64",
+ "Native", -- for targets where bitness is not specified
+ }
+end
+
+language "C++"
+
+flags {
+ "StaticRuntime",
+}
+
+configuration { "vs*" }
+ flags {
+ "NoPCH",
+ "ExtraWarnings",
+ "NoEditAndContinue",
+ }
+ if not _OPTIONS["NOWERROR"] then
+ flags{
+ "FatalWarnings",
+ }
+ end
+
+
+configuration { "Debug", "vs*" }
+ flags {
+ "Symbols",
+ "NoIncrementalLink",
+ }
+
+configuration { "Release", "vs*" }
+ flags {
+ "Optimize",
+ }
+
+-- Force VS2015/17 targets to use bundled SDL2
+if string.sub(_ACTION,1,4) == "vs20" and _OPTIONS["osd"]=="sdl" then
+ if _OPTIONS["with-bundled-sdl2"]==nil then
+ _OPTIONS["with-bundled-sdl2"] = "1"
+ end
+end
+-- Build SDL2 for Android
+if _OPTIONS["targetos"] == "android" then
+ _OPTIONS["with-bundled-sdl2"] = "1"
+end
+
+configuration {}
+
+if _OPTIONS["osd"] == "uwp" then
+ windowstargetplatformversion("10.0.14393.0")
+ windowstargetplatformminversion("10.0.14393.0")
+ premake._filelevelconfig = true
+end
+
+msgcompile ("Compiling $(subst ../,,$<)...")
+
+msgcompile_objc ("Objective-C compiling $(subst ../,,$<)...")
+
+msgresource ("Compiling resources $(subst ../,,$<)...")
+
+msglinking ("Linking $(notdir $@)...")
+
+msgarchiving ("Archiving $(notdir $@)...")
+
+msgprecompile ("Precompiling $(subst ../,,$<)...")
+
+messageskip { "SkipCreatingMessage", "SkipBuildingMessage", "SkipCleaningMessage" }
+
+if (_OPTIONS["PROJECT"] ~= nil) then
+ PROJECT_DIR = path.join(path.getabsolute(".."),"projects",_OPTIONS["PROJECT"]) .. "/"
+ if (not os.isfile(path.join("..", "projects", _OPTIONS["PROJECT"], "scripts", "target", _OPTIONS["target"],_OPTIONS["subtarget"] .. ".lua"))) then
+ error("File definition for TARGET=" .. _OPTIONS["target"] .. " SUBTARGET=" .. _OPTIONS["subtarget"] .. " does not exist")
+ end
+ dofile (path.join(".." ,"projects", _OPTIONS["PROJECT"], "scripts", "target", _OPTIONS["target"],_OPTIONS["subtarget"] .. ".lua"))
+end
+if (_OPTIONS["SOURCES"] == nil and _OPTIONS["PROJECT"] == nil) then
+ if (not os.isfile(path.join("target", _OPTIONS["target"],_OPTIONS["subtarget"] .. ".lua"))) then
+ error("File definition for TARGET=" .. _OPTIONS["target"] .. " SUBTARGET=" .. _OPTIONS["subtarget"] .. " does not exist")
+ end
+ dofile (path.join("target", _OPTIONS["target"],_OPTIONS["subtarget"] .. ".lua"))
+end
+
+configuration { "gmake or ninja" }
+ flags {
+ "SingleOutputDir",
+ }
+
+dofile ("toolchain.lua")
+
+if _OPTIONS["targetos"]=="windows" then
+ configuration { "x64" }
+ defines {
+ "X64_WINDOWS_ABI",
+ }
+ configuration { }
+end
+
+-- Avoid error when invoking genie --help.
+if (_ACTION == nil) then return false end
+
+-- define PTR64 if we are a 64-bit target
+configuration { "x64 or android-*64"}
+ defines { "PTR64=1" }
+
+-- define MAME_DEBUG if we are a debugging build
+configuration { "Debug" }
+ defines {
+ "MAME_DEBUG",
+ "MAME_PROFILER",
+-- "BGFX_CONFIG_DEBUG=1",
+ }
+
+if _OPTIONS["FASTDEBUG"]=="1" then
+ defines {
+ "MAME_DEBUG_FAST"
+ }
+end
+
+configuration { }
+
+if _OPTIONS["PROFILER"]=="1" then
+ defines{
+ "MAME_PROFILER", -- define MAME_PROFILER if we are a profiling build
+ }
+end
+
+configuration { "Release" }
+ defines {
+ "NDEBUG",
+ }
+
+configuration { }
+
+-- CR/LF setup: use on win32, CR only on everything else
+if _OPTIONS["targetos"]=="windows" then
+ defines {
+ "CRLF=3",
+ }
+else
+ defines {
+ "CRLF=2",
+ }
+end
+
+
+if _OPTIONS["BIGENDIAN"]=="1" then
+ if _OPTIONS["targetos"]=="macosx" then
+ defines {
+ "OSX_PPC",
+ }
+ buildoptions {
+ "-Wno-unused-label",
+ "-flax-vector-conversions",
+ }
+ if _OPTIONS["SYMBOLS"] then
+ buildoptions {
+ "-mlong-branch",
+ }
+ end
+ configuration { "x64" }
+ buildoptions {
+ "-arch ppc64",
+ }
+ linkoptions {
+ "-arch ppc64",
+ }
+ configuration { "x32" }
+ buildoptions {
+ "-arch ppc",
+ }
+ linkoptions {
+ "-arch ppc",
+ }
+ configuration { }
+ end
+else
+ defines {
+ "LSB_FIRST",
+ }
+ if _OPTIONS["targetos"]=="macosx" then
+ configuration { "x64" }
+ buildoptions {
+ "-arch x86_64",
+ }
+ linkoptions {
+ "-arch x86_64",
+ }
+ configuration { "x32" }
+ buildoptions {
+ "-arch i386",
+ }
+ linkoptions {
+ "-arch i386",
+ }
+ configuration { }
+ end
+end
+
+if _OPTIONS["with-system-jpeg"]~=nil then
+ defines {
+ "XMD_H",
+ }
+end
+
+if not _OPTIONS["with-system-flac"]~=nil then
+ defines {
+ "FLAC__NO_DLL",
+ }
+end
+
+if _OPTIONS["NOASM"]=="1" then
+ defines {
+ "MAME_NOASM"
+ }
+end
+
+if not _OPTIONS["FORCE_DRC_C_BACKEND"] then
+ if _OPTIONS["BIGENDIAN"]~="1" then
+ configuration { "x64" }
+ defines {
+ "NATIVE_DRC=drcbe_x64",
+ }
+ configuration { "x32" }
+ defines {
+ "NATIVE_DRC=drcbe_x86",
+ }
+ configuration { }
+ end
+end
+
+ defines {
+ "LUA_COMPAT_ALL",
+ "LUA_COMPAT_5_1",
+ "LUA_COMPAT_5_2",
+ }
+
+ if _ACTION == "gmake" or _ACTION == "ninja" then
+
+ --we compile C-only to C99 standard with GNU extensions
+
+ buildoptions_c {
+ "-std=gnu99",
+ }
+
+local version = str_to_version(_OPTIONS["gcc_version"])
+if string.find(_OPTIONS["gcc"], "clang") and ((version < 30500) or (_OPTIONS["targetos"]=="macosx" and (version <= 60000))) then
+ buildoptions_cpp {
+ "-x c++",
+ "-std=c++1y",
+ }
+
+ buildoptions_objcpp {
+ "-x objective-c++",
+ "-std=c++1y",
+ }
+else
+ buildoptions_cpp {
+ "-x c++",
+ "-std=c++14",
+ }
+
+ buildoptions_objcpp {
+ "-x objective-c++",
+ "-std=c++14",
+ }
+end
+-- this speeds it up a bit by piping between the preprocessor/compiler/assembler
+ if not ("pnacl" == _OPTIONS["gcc"]) then
+ buildoptions {
+ "-pipe",
+ }
+ end
+-- add -g if we need symbols, and ensure we have frame pointers
+if _OPTIONS["SYMBOLS"]~=nil and _OPTIONS["SYMBOLS"]~="0" then
+ buildoptions {
+ "-g" .. _OPTIONS["SYMLEVEL"],
+ "-fno-omit-frame-pointer",
+ "-fno-optimize-sibling-calls",
+ }
+end
+
+--# we need to disable some additional implicit optimizations for profiling
+if _OPTIONS["PROFILE"] then
+ buildoptions {
+ "-mno-omit-leaf-frame-pointer",
+ }
+end
+-- add -v if we need verbose build information
+if _OPTIONS["VERBOSE"] then
+ buildoptions {
+ "-v",
+ }
+end
+
+-- only show shadow warnings when enabled
+if (_OPTIONS["SHADOW_CHECK"]=="1") then
+ buildoptions {
+ "-Wshadow"
+ }
+end
+
+-- only show deprecation warnings when enabled
+if _OPTIONS["DEPRECATED"]~="1" then
+ buildoptions {
+ "-Wno-deprecated-declarations"
+ }
+end
+
+-- add profiling information for the compiler
+if _OPTIONS["PROFILE"] then
+ buildoptions {
+ "-pg",
+ }
+ linkoptions {
+ "-pg",
+ }
+end
+
+if _OPTIONS["SYMBOLS"]~=nil and _OPTIONS["SYMBOLS"]~="0" then
+ flags {
+ "Symbols",
+ }
+end
+
+-- add the error warning flag
+if _OPTIONS["NOWERROR"]==nil then
+ buildoptions {
+ "-Werror",
+ }
+end
+
+-- if we are optimizing, include optimization options
+if _OPTIONS["OPTIMIZE"] then
+ buildoptions {
+ "-O".. _OPTIONS["OPTIMIZE"],
+ "-fno-strict-aliasing"
+ }
+ if _OPTIONS["OPT_FLAGS"] then
+ buildoptions {
+ _OPTIONS["OPT_FLAGS"]
+ }
+ end
+ if _OPTIONS["LTO"]=="1" then
+ buildoptions {
+-- windows native mingw GCC 5.2 fails with -flto=x with x > 1. bug unfixed as of this commit
+ "-flto=1",
+-- if ld fails, just buy more RAM or uncomment this!
+-- "-Wl,-no-keep-memory",
+ "-Wl,-v",
+-- silence redefine warnings from discrete.c.
+ "-Wl,-allow-multiple-definition",
+ "-fuse-linker-plugin",
+-- these next flags allow MAME to compile in GCC 5.2. odr warnings should be fixed as LTO randomly crashes otherwise
+-- some GCC 4.9.x on Windows do not have -Wodr and -flto-odr-type-merging enabled. adjust accordingly...
+-- no-fat-lto-objects is faster to compile and uses less memory, but you can't mix with a non-lto .o/.a without rebuilding
+ "-fno-fat-lto-objects",
+ "-flto-odr-type-merging",
+ "-Wodr",
+ "-flto-compression-level=0", -- lto doesn't work with anything <9 on linux with < 12G RAM, much slower if <> 0
+-- "-flto-report", -- if you get an error in lto after [WPA] stage, but before [LTRANS] stage, you need more memory!
+-- "-fmem-report-wpa","-fmem-report","-fpre-ipa-mem-report","-fpost-ipa-mem-report","-flto-report-wpa","-fmem-report",
+-- this six flag combo lets MAME compile with LTO=1 on linux with no errors and ~2% speed boost, but compile time is much longer
+-- if you are going to wait on lto, you might as well enable these for GCC
+-- "-fdevirtualize-at-ltrans","-fgcse-sm","-fgcse-las",
+-- "-fipa-pta","-fipa-icf","-fvariable-expansion-in-unroller",
+ }
+-- same flags are needed by linker
+ linkoptions {
+ "-flto=1",
+-- "-Wl,-no-keep-memory",
+ "-Wl,-v",
+ "-Wl,-allow-multiple-definition",
+ "-fuse-linker-plugin",
+ "-fno-fat-lto-objects",
+ "-flto-odr-type-merging",
+ "-Wodr",
+ "-flto-compression-level=0", -- lto doesn't work with anything <9 on linux with < 12G RAM, much slower if <> 0
+-- "-flto-report", -- if you get an error in lto after [WPA] stage, but before [LTRANS] stage, you need more memory!
+-- "-fmem-report-wpa","-fmem-report","-fpre-ipa-mem-report","-fpost-ipa-mem-report","-flto-report-wpa","-fmem-report",
+-- this six flag combo lets MAME compile with LTO=1 on linux with no errors and ~2% speed boost, but compile time is much longer
+-- if you are going to wait on lto, you might as well enable these for GCC
+-- "-fdevirtualize-at-ltrans","-fgcse-sm","-fgcse-las",
+-- "-fipa-pta","-fipa-icf","-fvariable-expansion-in-unroller",
+
+ }
+
+ end
+end
+
+configuration { "mingw-clang" }
+ buildoptions {
+ "-O1", -- without this executable crash often
+ }
+configuration { }
+
+if _OPTIONS["ARCHOPTS"] then
+ buildoptions {
+ _OPTIONS["ARCHOPTS"]
+ }
+ linkoptions {
+ _OPTIONS["ARCHOPTS"]
+ }
+end
+
+if _OPTIONS["SHLIB"] then
+ buildoptions {
+ "-fPIC"
+ }
+end
+
+if _OPTIONS["SSE2"]=="1" then
+ buildoptions {
+ "-msse",
+ "-msse2"
+ }
+end
+
+if _OPTIONS["SSE3"]=="1" then
+ buildoptions {
+ "-msse",
+ "-msse2",
+ "-msse3"
+ }
+end
+
+
+if _OPTIONS["OPENMP"]=="1" then
+ buildoptions {
+ "-fopenmp",
+ }
+ linkoptions {
+ "-fopenmp"
+ }
+ defines {
+ "USE_OPENMP=1",
+ }
+
+else
+ buildoptions {
+ "-Wno-unknown-pragmas",
+ }
+end
+
+if _OPTIONS["LDOPTS"] then
+ linkoptions {
+ _OPTIONS["LDOPTS"]
+ }
+end
+
+if _OPTIONS["MAP"] then
+ if (_OPTIONS["target"] == _OPTIONS["subtarget"]) then
+ linkoptions {
+ "-Wl,-Map," .. "../../../../" .. _OPTIONS["target"] .. ".map"
+ }
+ else
+ linkoptions {
+ "-Wl,-Map," .. "../../../../" .. _OPTIONS["target"] .. _OPTIONS["subtarget"] .. ".map"
+ }
+
+ end
+end
+
+
+-- add a basic set of warnings
+ buildoptions {
+ "-Wall",
+ "-Wcast-align",
+ "-Wundef",
+ "-Wformat-security",
+ "-Wwrite-strings",
+ "-Wno-sign-compare",
+ "-Wno-conversion",
+ }
+-- warnings only applicable to C compiles
+ buildoptions_c {
+ "-Wpointer-arith",
+ "-Wstrict-prototypes",
+ }
+
+if _OPTIONS["targetos"]~="freebsd" then
+ buildoptions_c {
+ "-Wbad-function-cast",
+ }
+end
+
+-- warnings only applicable to OBJ-C compiles
+ buildoptions_objcpp {
+ "-Wpointer-arith",
+ }
+
+-- warnings only applicable to C++ compiles
+ buildoptions_cpp {
+ "-Woverloaded-virtual",
+ }
+
+--ifdef SANITIZE
+--CCOMFLAGS += -fsanitize=$(SANITIZE)
+
+--ifneq (,$(findstring thread,$(SANITIZE)))
+--CCOMFLAGS += -fPIE
+--endif
+--endif
+
+
+
+ local version = str_to_version(_OPTIONS["gcc_version"])
+ if string.find(_OPTIONS["gcc"], "clang") or string.find(_OPTIONS["gcc"], "pnacl") or string.find(_OPTIONS["gcc"], "asmjs") or string.find(_OPTIONS["gcc"], "android") then
+ if (version < 30400) then
+ print("Clang version 3.4 or later needed")
+ os.exit(-1)
+ end
+ buildoptions {
+ "-Wno-cast-align",
+ "-Wno-tautological-compare",
+ "-Wno-unused-value",
+ "-Wno-constant-logical-operand",
+ "-Wno-missing-braces", -- clang is not as permissive as GCC about std::array initialization
+ "-fdiagnostics-show-note-include-stack",
+ }
+ if (version >= 30500) then
+ buildoptions {
+ "-Wno-unknown-warning-option",
+ "-Wno-extern-c-compat",
+ "-Wno-unknown-attributes",
+ "-Wno-ignored-qualifiers"
+ }
+ end
+ else
+ if (version < 50000) then
+ print("GCC version 5.0 or later needed")
+ os.exit(-1)
+ end
+ buildoptions {
+ "-Wno-unused-result", -- needed for fgets,fread on linux
+ -- array bounds checking seems to be buggy in 4.8.1 (try it on video/stvvdp1.c and video/model1.c without -Wno-array-bounds)
+ "-Wno-array-bounds",
+ }
+ end
+ end
+
+if (_OPTIONS["PLATFORM"]=="alpha") then
+ defines {
+ "PTR64=1",
+ }
+end
+
+if (_OPTIONS["PLATFORM"]=="arm") then
+ buildoptions {
+ "-Wno-cast-align",
+ }
+end
+
+if (_OPTIONS["PLATFORM"]=="arm64") then
+ buildoptions {
+ "-Wno-cast-align",
+ }
+ defines {
+ "PTR64=1",
+ }
+end
+
+if (_OPTIONS["PLATFORM"]=="mips64") then
+ defines {
+ "PTR64=1",
+ }
+end
+
+local subdir
+if (_OPTIONS["target"] == _OPTIONS["subtarget"]) then
+ subdir = _OPTIONS["osd"] .. "/" .. _OPTIONS["target"]
+else
+ subdir = _OPTIONS["osd"] .. "/" .. _OPTIONS["target"] .. _OPTIONS["subtarget"]
+end
+
+if not toolchain(MAME_BUILD_DIR, subdir) then
+ return -- no action specified
+end
+
+configuration { "asmjs" }
+ buildoptions {
+ "-std=gnu89",
+ "-Wno-implicit-function-declaration",
+ "-s USE_SDL_TTF=2",
+ }
+ buildoptions_cpp {
+ "-x c++",
+ "-std=c++14",
+ }
+ archivesplit_size "20"
+
+configuration { "android*" }
+ buildoptions {
+ "-Wno-undef",
+ "-Wno-typedef-redefinition",
+ "-Wno-unknown-warning-option",
+ }
+ buildoptions_cpp {
+ "-x c++",
+ "-std=c++14",
+ "-Wno-extern-c-compat",
+ "-Wno-tautological-constant-out-of-range-compare",
+ "-Wno-tautological-pointer-compare",
+ }
+ archivesplit_size "20"
+
+configuration { "android-arm64" }
+ buildoptions {
+ "-Wno-asm-operand-widths",
+ }
+
+configuration { "pnacl" }
+ buildoptions {
+ "-std=gnu89",
+ "-Wno-inline-new-delete",
+ }
+ buildoptions_cpp {
+ "-x c++",
+ "-std=c++14",
+ }
+ archivesplit_size "20"
+
+configuration { "linux-* or rpi or ci20"}
+ links {
+ "dl",
+ "rt",
+ }
+ if _OPTIONS["distro"]=="debian-stable" then
+ defines
+ {
+ "NO_AFFINITY_NP",
+ }
+ end
+
+
+
+configuration { "steamlink" }
+ links {
+ "dl",
+ "EGL",
+ "GLESv2",
+ "SDL2",
+ }
+ defines {
+ "EGL_API_FB",
+ }
+
+configuration { "rpi" }
+ links {
+ "SDL2",
+ "fontconfig",
+ "X11",
+ "GLESv2",
+ "EGL",
+ "bcm_host",
+ "vcos",
+ "vchiq_arm",
+ "pthread",
+ }
+
+
+configuration { "ci20" }
+ links {
+ "SDL2",
+ "asound",
+ "fontconfig",
+ "freetype",
+ "pthread",
+ }
+
+
+configuration { "osx* or xcode4" }
+ links {
+ "pthread",
+ }
+
+configuration { "mingw*" }
+ linkoptions {
+ "-static-libgcc",
+ "-static-libstdc++",
+ "-static",
+ "-Wl,--start-group",
+ }
+ links {
+ "user32",
+ "winmm",
+ "advapi32",
+ "shlwapi",
+ "wsock32",
+ "ws2_32",
+ "psapi",
+ "iphlpapi",
+ "shell32",
+ "userenv",
+ }
+
+configuration { "mingw-clang" }
+ local version = str_to_version(_OPTIONS["gcc_version"])
+ if _OPTIONS["gcc"]~=nil and string.find(_OPTIONS["gcc"], "clang") and ((version < 30900)) then
+ linkoptions {
+ "-pthread",
+ }
+ end
+
+
+configuration { "vs*" }
+ defines {
+ "XML_STATIC",
+ "WIN32",
+ "_WIN32",
+ "_CRT_NONSTDC_NO_DEPRECATE",
+ "_CRT_SECURE_NO_DEPRECATE",
+ "_CRT_STDIO_LEGACY_WIDE_SPECIFIERS",
+ }
+-- Windows Store/Phone projects already link against the available libraries.
+if _OPTIONS["vs"]==nil or not (string.startswith(_OPTIONS["vs"], "winstore8") or string.startswith(_OPTIONS["vs"], "winphone8")) then
+ links {
+ "user32",
+ "winmm",
+ "advapi32",
+ "shlwapi",
+ "wsock32",
+ "ws2_32",
+ "psapi",
+ "iphlpapi",
+ "shell32",
+ "userenv",
+ }
+end
+
+ buildoptions {
+ "/WX", -- Treats all compiler warnings as errors.
+ "/wd4025", -- warning C4025: 'number' : based pointer passed to function with variable arguments: parameter number
+ "/wd4003", -- warning C4003: not enough actual parameters for macro 'xxx'
+ "/wd4018", -- warning C4018: 'x' : signed/unsigned mismatch
+ "/wd4061", -- warning C4061: enumerator 'xxx' in switch of enum 'xxx' is not explicitly handled by a case label
+ "/wd4100", -- warning C4100: 'xxx' : unreferenced formal parameter
+ "/wd4127", -- warning C4127: conditional expression is constant
+ "/wd4131", -- warning C4131: 'xxx' : uses old-style declarator
+ "/wd4141", -- warning C4141: 'xxx' : used more than once
+ "/wd4146", -- warning C4146: unary minus operator applied to unsigned type, result still unsigned
+ "/wd4150", -- warning C4150: deletion of pointer to incomplete type 'xxx'; no destructor called
+ "/wd4189", -- warning C4189: 'xxx' : local variable is initialized but not referenced
+ "/wd4191", -- warning C4191: 'type cast' : unsafe conversion from 'xxx' to 'xxx' // 64-bit only
+ "/wd4201", -- warning C4201: nonstandard extension used : nameless struct/union
+ "/wd4232", -- warning C4232: nonstandard extension used : 'xxx' : address of dllimport 'xxx' is not static, identity not guaranteed
+ "/wd4242", -- warning C4242: 'x' : conversion from 'xxx' to 'xxx', possible loss of data
+ "/wd4244", -- warning C4244: 'argument' : conversion from 'xxx' to 'xxx', possible loss of data
+ "/wd4250", -- warning C4250: 'xxx' : inherits 'xxx' via dominance
+ "/wd4255", -- warning C4255: 'xxx' : no function prototype given: converting '()' to '(void)'
+ "/wd4296", -- warning C4296: 'x' : expression is always false
+ "/wd4306", -- warning C4306: 'xxx': conversion from 'type1' to 'type2' of greater size // 64-bit only
+ "/wd4310", -- warning C4310: cast truncates constant value
+ "/wd4312", -- warning C4312: 'type cast' : conversion from 'xxx' to 'xxx' of greater size
+ "/wd4324", -- warning C4324: 'xxx' : structure was padded due to __declspec(align())
+ "/wd4347", -- warning C4347: behavior change: 'xxx' is called instead of 'xxx' // obsolete VS2005 - VS2010 only
+ "/wd4435", -- warning C4435: 'xxx' : Object layout under /vd2 will change due to virtual base 'xxx'
+ "/wd4510", -- warning C4510: 'xxx' : default constructor could not be generated
+ "/wd4512", -- warning C4512: 'xxx' : assignment operator could not be generated
+ "/wd4514", -- warning C4514: 'xxx' : unreferenced inline function has been removed
+ "/wd4571", -- warning C4611: interaction between '_setjmp' and C++ object destruction is non-portable
+ "/wd4610", -- warning C4619: #pragma warning : there is no warning number 'xxx'
+ "/wd4611", -- warning C4571: Informational: catch(...) semantics changed since Visual C++ 7.1; structured exceptions (SEH) are no longer caught
+ "/wd4619", -- warning C4610: struct 'xxx' can never be instantiated - user defined constructor required
+ "/wd4625", -- warning C4625: 'xxx' : copy constructor could not be generated because a base class copy constructor is inaccessible or deleted
+ "/wd4626", -- warning C4626: 'xxx' : assignment operator could not be generated because a base class assignment operator is inaccessible or deleted
+ "/wd4640", -- warning C4640: 'xxx' : construction of local static object is not thread-safe
+ "/wd4668", -- warning C4668: 'xxx' is not defined as a preprocessor macro, replacing with '0' for '#if/#elif'
+ "/wd4702", -- warning C4702: unreachable code
+ "/wd4706", -- warning C4706: assignment within conditional expression
+ "/wd4710", -- warning C4710: 'xxx' : function not inlined
+ "/wd4711", -- warning C4711: function 'xxx' selected for automatic inline expansion // optimized only
+ "/wd4805", -- warning C4805: 'x' : unsafe mix of type 'xxx' and type 'xxx' in operation
+ "/wd4820", -- warning C4820: 'xxx' : 'x' bytes padding added after data member 'xxx'
+ "/wd4826", -- warning C4826: Conversion from 'type1 ' to 'type_2' is sign-extended. This may cause unexpected runtime behavior. // 32-bit only
+ "/wd4365", -- warning C4365: 'action' : conversion from 'type_1' to 'type_2', signed/unsigned mismatch
+ "/wd4389", -- warning C4389: 'operator' : signed/unsigned mismatch
+ "/wd4245", -- warning C4245: 'conversion' : conversion from 'type1' to 'type2', signed/unsigned mismatch
+ "/wd4388", -- warning C4388: signed/unsigned mismatch
+ "/wd4267", -- warning C4267: 'var' : conversion from 'size_t' to 'type', possible loss of data
+ "/wd4005", -- warning C4005: The macro identifier is defined twice. The compiler uses the second macro definition
+ "/wd4350", -- warning C4350: behavior change: 'member1' called instead of 'member2'
+ "/wd4996", -- warning C4996: 'function': was declared deprecated
+ "/wd4191", -- warning C4191: 'operator/operation' : unsafe conversion from 'type of expression' to 'type required'
+ "/wd4060", -- warning C4060: switch statement contains no 'case' or 'default' labels
+ "/wd4065", -- warning C4065: switch statement contains 'default' but no 'case' labels
+ "/wd4640", -- warning C4640: 'instance' : construction of local static object is not thread-safe
+ "/wd4290", -- warning C4290: C++ exception specification ignored except to indicate a function is not __declspec(nothrow)
+ "/wd4355", -- warning C4355: 'this' : used in base member initializer list
+ "/wd4800", -- warning C4800: 'type' : forcing value to bool 'true' or 'false' (performance warning)
+ "/wd4371", -- warning C4371: layout of class may have changed from a previous version of the compiler due to better packing of member 'member'
+ "/wd4548", -- warning C4548: expression before comma has no effect; expected expression with side-effect
+ }
+if _OPTIONS["vs"]=="intel-15" then
+ buildoptions {
+ "/Qwd9", -- remark #9: nested comment is not allowed
+ "/Qwd82", -- remark #82: storage class is not first
+ "/Qwd111", -- remark #111: statement is unreachable
+ "/Qwd128", -- remark #128: loop is not reachable
+ "/Qwd177", -- remark #177: function "xxx" was declared but never referenced
+ "/Qwd181", -- remark #181: argument of type "UINT32={unsigned int}" is incompatible with format "%d", expecting argument of type "int"
+ "/Qwd185", -- remark #185: dynamic initialization in unreachable code
+ "/Qwd280", -- remark #280: selector expression is constant
+ "/Qwd344", -- remark #344: typedef name has already been declared (with same type)
+ "/Qwd411", -- remark #411: class "xxx" defines no constructor to initialize the following
+ "/Qwd869", -- remark #869: parameter "xxx" was never referenced
+ "/Qwd2545", -- remark #2545: empty dependent statement in "else" clause of if - statement
+ "/Qwd2553", -- remark #2553: nonstandard second parameter "TCHAR={WCHAR = { __wchar_t } } **" of "main", expected "char *[]" or "char **" extern "C" int _tmain(int argc, TCHAR **argv)
+ "/Qwd2557", -- remark #2557: comparison between signed and unsigned operands
+ "/Qwd3280", -- remark #3280: declaration hides member "attotime::seconds" (declared at line 126) static attotime from_seconds(INT32 seconds) { return attotime(seconds, 0); }
+
+ "/Qwd170", -- error #170: pointer points outside of underlying object
+ "/Qwd188", -- error #188: enumerated type mixed with another type
+
+ "/Qwd63", -- warning #63: shift count is too large
+ "/Qwd177", -- warning #177: label "xxx" was declared but never referenced
+ "/Qwd186", -- warning #186: pointless comparison of unsigned integer with zero
+ "/Qwd488", -- warning #488: template parameter "_FunctionClass" is not used in declaring the parameter types of function template "device_delegate<_Signature>::device_delegate<_FunctionClass>(delegate<_Signature>:
+ "/Qwd1478", -- warning #1478: function "xxx" (declared at line yyy of "zzz") was declared deprecated
+ "/Qwd1879", -- warning #1879: unimplemented pragma ignored
+ "/Qwd3291", -- warning #3291: invalid narrowing conversion from "double" to "int"
+ "/Qwd1195", -- error #1195: conversion from integer to smaller pointer
+ "/Qwd47", -- error #47: incompatible redefinition of macro "xxx"
+ "/Qwd265", -- error #265: floating-point operation result is out of range
+ -- these occur on a release build, while we can increase the size limits instead some of the files do require extreme amounts
+ "/Qwd11074", -- remark #11074: Inlining inhibited by limit max-size / remark #11074: Inlining inhibited by limit max-total-size
+ "/Qwd11075", -- remark #11075: To get full report use -Qopt-report:4 -Qopt-report-phase ipo
+ }
+end
+
+ linkoptions {
+ "/ignore:4221", -- LNK4221: This object file does not define any previously undefined public symbols, so it will not be used by any link operation that consumes this library
+ }
+ includedirs {
+ MAME_DIR .. "3rdparty/dxsdk/Include"
+ }
+configuration { "vs201*" }
+ buildoptions {
+ "/wd4334", -- warning C4334: '<<': result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift intended?)
+ "/wd4456", -- warning C4456: declaration of 'xxx' hides previous local declaration
+ "/wd4457", -- warning C4457: declaration of 'xxx' hides function parameter
+ "/wd4458", -- warning C4458: declaration of 'xxx' hides class member
+ "/wd4459", -- warning C4459: declaration of 'xxx' hides global declaration
+ "/wd4838", -- warning C4838: conversion from 'xxx' to 'yyy' requires a narrowing conversion
+ "/wd4091", -- warning C4091: 'typedef ': ignored on left of '' when no variable is declared
+ "/wd4463", -- warning C4463: overflow; assigning 1 to bit-field that can only hold values from -1 to 0
+ "/wd4297", -- warning C4297: 'xxx::~xxx': function assumed not to throw an exception but does
+ "/wd4319", -- warning C4319: 'operator' : zero extending 'type' to 'type' of greater size
+ "/wd4592", -- warning C4592: symbol will be dynamically initialized (implementation limitation)
+ }
+configuration { "winphone8* or winstore8*" }
+ linkoptions {
+ "/ignore:4264" -- LNK4264: archiving object file compiled with /ZW into a static library; note that when authoring Windows Runtime types it is not recommended to link with a static library that contains Windows Runtime metadata
+ }
+
+
+-- adding this till we sort out asserts in debug mode
+configuration { "Debug", "gmake" }
+ buildoptions_cpp {
+ "-Wno-terminate",
+ }
+
+configuration { }
+
+if (_OPTIONS["SOURCES"] ~= nil) then
+ local str = _OPTIONS["SOURCES"]
+ for word in string.gmatch(str, '([^,]+)') do
+ if (not os.isfile(path.join(MAME_DIR ,word))) then
+ print("File " .. word.. " does not exist")
+ os.exit()
+ end
+ end
+ OUT_STR = os.outputof( PYTHON .. " " .. MAME_DIR .. "scripts/build/makedep.py " .. MAME_DIR .. " " .. _OPTIONS["SOURCES"] .. " target " .. _OPTIONS["subtarget"])
+ load(OUT_STR)()
+ os.outputof( PYTHON .. " " .. MAME_DIR .. "scripts/build/makedep.py " .. MAME_DIR .. " " .. _OPTIONS["SOURCES"] .. " drivers " .. _OPTIONS["subtarget"] .. " > ".. GEN_DIR .. _OPTIONS["target"] .. "/" .. _OPTIONS["subtarget"]..".flt")
+end
+
+group "libs"
+
+if (not os.isfile(path.join("src", "osd", _OPTIONS["osd"] .. ".lua"))) then
+ error("Unsupported value '" .. _OPTIONS["osd"] .. "' for OSD")
+end
+dofile(path.join("src", "osd", _OPTIONS["osd"] .. ".lua"))
+dofile(path.join("src", "lib.lua"))
+if (MACHINES["NETLIST"]~=null or _OPTIONS["with-tools"]) then
+dofile(path.join("src", "netlist.lua"))
+end
+--if (STANDALONE~=true) then
+dofile(path.join("src", "formats.lua"))
+formatsProject(_OPTIONS["target"],_OPTIONS["subtarget"])
+--end
+
+group "3rdparty"
+dofile(path.join("src", "3rdparty.lua"))
+
+
+group "core"
+
+dofile(path.join("src", "emu.lua"))
+
+if (STANDALONE~=true) then
+ dofile(path.join("src", "mame", "frontend.lua"))
+end
+
+group "devices"
+dofile(path.join("src", "devices.lua"))
+devicesProject(_OPTIONS["target"],_OPTIONS["subtarget"])
+
+if (STANDALONE~=true) then
+ group "drivers"
+ findfunction("createProjects_" .. _OPTIONS["target"] .. "_" .. _OPTIONS["subtarget"])(_OPTIONS["target"], _OPTIONS["subtarget"])
+end
+
+group "emulator"
+dofile(path.join("src", "main.lua"))
+if (_OPTIONS["SOURCES"] == nil) then
+ if (_OPTIONS["target"] == _OPTIONS["subtarget"]) then
+ startproject (_OPTIONS["target"])
+ else
+ if (_OPTIONS["subtarget"]=="mess") then
+ startproject (_OPTIONS["subtarget"])
+ else
+ startproject (_OPTIONS["target"] .. _OPTIONS["subtarget"])
+ end
+ end
+else
+ startproject (_OPTIONS["subtarget"])
+end
+mainProject(_OPTIONS["target"],_OPTIONS["subtarget"])
+strip()
+
+if _OPTIONS["with-tools"] then
+ group "tools"
+ dofile(path.join("src", "tools.lua"))
+end
+
+if _OPTIONS["with-tests"] then
+ group "tests"
+ dofile(path.join("src", "tests.lua"))
+end
+
+if _OPTIONS["with-benchmarks"] then
+ group "benchmarks"
+ dofile(path.join("src", "benchmarks.lua"))
+end
diff --git a/docs/release/scripts/resources/emscripten/emscripten_post.js b/docs/release/scripts/resources/emscripten/emscripten_post.js
new file mode 100644
index 00000000000..92cbdd21f9b
--- /dev/null
+++ b/docs/release/scripts/resources/emscripten/emscripten_post.js
@@ -0,0 +1,11 @@
+// MAME-JavaScript function mappings
+var JSMAME = JSMAME || {};
+JSMAME.get_machine = Module.cwrap('_Z14js_get_machinev', 'number');
+JSMAME.get_ui = Module.cwrap('_Z9js_get_uiv', 'number');
+JSMAME.get_sound = Module.cwrap('_Z12js_get_soundv', 'number');
+JSMAME.ui_set_show_fps = Module.cwrap('_ZN15mame_ui_manager12set_show_fpsEb', '', ['number', 'number']);
+JSMAME.ui_get_show_fps = Module.cwrap('_ZNK15mame_ui_manager8show_fpsEv', 'number', ['number']);
+JSMAME.sound_manager_mute = Module.cwrap('_ZN13sound_manager4muteEbh', '', ['number', 'number', 'number']);
+JSMAME.sdl_pauseaudio = Module.cwrap('SDL_PauseAudio', '', ['number']);
+JSMAME.sdl_sendkeyboardkey = Module.cwrap('SDL_SendKeyboardKey', '', ['number', 'number']);
+var JSMESS = JSMAME;
diff --git a/docs/release/scripts/resources/uwp/Package.appxmanifest b/docs/release/scripts/resources/uwp/Package.appxmanifest
new file mode 100644
index 00000000000..60092db9fed
--- /dev/null
+++ b/docs/release/scripts/resources/uwp/Package.appxmanifest
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Package xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10" xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest" xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10" IgnorableNamespaces="uap mp">
+ <Identity Name="f0273023-de0a-46a5-b0db-1514f3a84c71" Publisher="CN=bradhugh" Version="1.0.0.0" />
+ <mp:PhoneIdentity PhoneProductId="f0273023-de0a-46a5-b0db-1514f3a84c71" PhonePublisherId="00000000-0000-0000-0000-000000000000" />
+ <Properties>
+ <DisplayName>MAME</DisplayName>
+ <PublisherDisplayName>MAME Team</PublisherDisplayName>
+ <Logo>scripts\resources\uwp\assets\StoreLogo.png</Logo>
+ </Properties>
+ <Dependencies>
+ <TargetDeviceFamily Name="Windows.Universal" MinVersion="10.0.0.0" MaxVersionTested="10.0.0.0" />
+ </Dependencies>
+ <Resources>
+ <Resource Language="x-generate" />
+ </Resources>
+ <Applications>
+ <Application Id="App" Executable="$targetnametoken$.exe" EntryPoint="Mameuwp.App">
+ <uap:VisualElements DisplayName="MAME" Square150x150Logo="scripts\resources\uwp\assets\Square150x150Logo.png" Square44x44Logo="scripts\resources\uwp\assets\Square44x44Logo.png" Description="MAME for Windows 10" BackgroundColor="transparent">
+ <uap:DefaultTile Wide310x150Logo="scripts\resources\uwp\assets\Wide310x150Logo.png">
+ <uap:ShowNameOnTiles>
+ <uap:ShowOn Tile="square150x150Logo" />
+ </uap:ShowNameOnTiles>
+ </uap:DefaultTile>
+ <uap:SplashScreen Image="scripts\resources\uwp\assets\SplashScreen.scale-200.png" />
+ <uap:InitialRotationPreference>
+ <uap:Rotation Preference="landscape" />
+ </uap:InitialRotationPreference>
+ </uap:VisualElements>
+ </Application>
+ </Applications>
+ <Capabilities>
+ <Capability Name="internetClient" />
+ <Capability Name="codeGeneration" />
+ <Capability Name="privateNetworkClientServer" />
+ </Capabilities>
+</Package> \ No newline at end of file
diff --git a/docs/release/scripts/resources/uwp/assets/LockScreenLogo.scale-200.png b/docs/release/scripts/resources/uwp/assets/LockScreenLogo.scale-200.png
new file mode 100644
index 00000000000..989319d4ec3
--- /dev/null
+++ b/docs/release/scripts/resources/uwp/assets/LockScreenLogo.scale-200.png
Binary files differ
diff --git a/docs/release/scripts/resources/uwp/assets/SplashScreen.scale-200.png b/docs/release/scripts/resources/uwp/assets/SplashScreen.scale-200.png
new file mode 100644
index 00000000000..538a6ad95a9
--- /dev/null
+++ b/docs/release/scripts/resources/uwp/assets/SplashScreen.scale-200.png
Binary files differ
diff --git a/docs/release/scripts/resources/uwp/assets/Square150x150Logo.scale-200.png b/docs/release/scripts/resources/uwp/assets/Square150x150Logo.scale-200.png
new file mode 100644
index 00000000000..15b8043caa8
--- /dev/null
+++ b/docs/release/scripts/resources/uwp/assets/Square150x150Logo.scale-200.png
Binary files differ
diff --git a/docs/release/scripts/resources/uwp/assets/Square44x44Logo.scale-200.png b/docs/release/scripts/resources/uwp/assets/Square44x44Logo.scale-200.png
new file mode 100644
index 00000000000..420dc54bf73
--- /dev/null
+++ b/docs/release/scripts/resources/uwp/assets/Square44x44Logo.scale-200.png
Binary files differ
diff --git a/docs/release/scripts/resources/uwp/assets/Square44x44Logo.targetsize-24_altform-unplated.png b/docs/release/scripts/resources/uwp/assets/Square44x44Logo.targetsize-24_altform-unplated.png
new file mode 100644
index 00000000000..ba31e4f883f
--- /dev/null
+++ b/docs/release/scripts/resources/uwp/assets/Square44x44Logo.targetsize-24_altform-unplated.png
Binary files differ
diff --git a/docs/release/scripts/resources/uwp/assets/StoreLogo.png b/docs/release/scripts/resources/uwp/assets/StoreLogo.png
new file mode 100644
index 00000000000..a16e59dcee9
--- /dev/null
+++ b/docs/release/scripts/resources/uwp/assets/StoreLogo.png
Binary files differ
diff --git a/docs/release/scripts/resources/uwp/assets/Wide310x150Logo.scale-200.png b/docs/release/scripts/resources/uwp/assets/Wide310x150Logo.scale-200.png
new file mode 100644
index 00000000000..b6fd1f57bca
--- /dev/null
+++ b/docs/release/scripts/resources/uwp/assets/Wide310x150Logo.scale-200.png
Binary files differ
diff --git a/docs/release/scripts/resources/uwp/mame_TemporaryKey.pfx b/docs/release/scripts/resources/uwp/mame_TemporaryKey.pfx
new file mode 100644
index 00000000000..de6ef5c5f88
--- /dev/null
+++ b/docs/release/scripts/resources/uwp/mame_TemporaryKey.pfx
Binary files differ
diff --git a/docs/release/scripts/resources/windows/hbmame/hbmame.ico b/docs/release/scripts/resources/windows/hbmame/hbmame.ico
new file mode 100644
index 00000000000..845ec9aedd7
--- /dev/null
+++ b/docs/release/scripts/resources/windows/hbmame/hbmame.ico
Binary files differ
diff --git a/docs/release/scripts/resources/windows/hbmame/hbmame.man b/docs/release/scripts/resources/windows/hbmame/hbmame.man
new file mode 100644
index 00000000000..45d07d3f853
--- /dev/null
+++ b/docs/release/scripts/resources/windows/hbmame/hbmame.man
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+ <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
+ <assemblyIdentity version="1.0.0.0" processorArchitecture="*" name="HBMAME" type="win32" />
+ <description>Homebrew MAME</description>
+ <dependency>
+ <dependentAssembly>
+ <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" publicKeyToken="6595b64144ccf1df" language="*" processorArchitecture="*"/>
+ </dependentAssembly>
+ </dependency>
+ <asmv3:application>
+ <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
+ <dpiAware>true</dpiAware>
+ </asmv3:windowsSettings>
+ </asmv3:application>
+</assembly>
diff --git a/docs/release/scripts/resources/windows/hbmame/hbmame.rc b/docs/release/scripts/resources/windows/hbmame/hbmame.rc
new file mode 100644
index 00000000000..570fe9f8b71
--- /dev/null
+++ b/docs/release/scripts/resources/windows/hbmame/hbmame.rc
@@ -0,0 +1,14 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+//============================================================
+//
+// mame.rc - Minimal resource file for Win32 MAME
+//
+//============================================================
+
+#include <windows.h>
+//#include "mamevers.rc"
+
+1 24 MOVEABLE PURE "hbmame.man"
+
+2 ICON DISCARDABLE "hbmame.ico"
diff --git a/docs/release/scripts/resources/windows/mame/mame.ico b/docs/release/scripts/resources/windows/mame/mame.ico
new file mode 100644
index 00000000000..62761447fc2
--- /dev/null
+++ b/docs/release/scripts/resources/windows/mame/mame.ico
Binary files differ
diff --git a/docs/release/scripts/resources/windows/mame/mame.man b/docs/release/scripts/resources/windows/mame/mame.man
new file mode 100644
index 00000000000..e08eba181cb
--- /dev/null
+++ b/docs/release/scripts/resources/windows/mame/mame.man
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+ <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
+ <assemblyIdentity version="1.0.0.0" processorArchitecture="*" name="MAME" type="win32" />
+ <description>Multiple Arcade Machine Emulator</description>
+ <dependency>
+ <dependentAssembly>
+ <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" publicKeyToken="6595b64144ccf1df" language="*" processorArchitecture="*"/>
+ </dependentAssembly>
+ </dependency>
+ <asmv3:application>
+ <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
+ <dpiAware>true</dpiAware>
+ </asmv3:windowsSettings>
+ </asmv3:application>
+</assembly>
diff --git a/docs/release/scripts/resources/windows/mame/mame.rc b/docs/release/scripts/resources/windows/mame/mame.rc
new file mode 100644
index 00000000000..deceb068193
--- /dev/null
+++ b/docs/release/scripts/resources/windows/mame/mame.rc
@@ -0,0 +1,14 @@
+// license:BSD-3-Clause
+// copyright-holders:Aaron Giles
+//============================================================
+//
+// mame.rc - Minimal resource file for Win32 MAME
+//
+//============================================================
+
+#include <windows.h>
+//#include "mamevers.rc"
+
+1 24 MOVEABLE PURE "mame.man"
+
+2 ICON DISCARDABLE "mame.ico"
diff --git a/docs/release/scripts/resources/windows/mess/mess.ico b/docs/release/scripts/resources/windows/mess/mess.ico
new file mode 100644
index 00000000000..bab67dd6195
--- /dev/null
+++ b/docs/release/scripts/resources/windows/mess/mess.ico
Binary files differ
diff --git a/docs/release/scripts/resources/windows/mess/mess.man b/docs/release/scripts/resources/windows/mess/mess.man
new file mode 100644
index 00000000000..67ba3aced37
--- /dev/null
+++ b/docs/release/scripts/resources/windows/mess/mess.man
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+ <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
+ <assemblyIdentity version="1.0.0.0" processorArchitecture="*" name="MESS" type="win32" />
+ <description>Multi Emulator Super System</description>
+ <dependency>
+ <dependentAssembly>
+ <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" publicKeyToken="6595b64144ccf1df" language="*" processorArchitecture="*"/>
+ </dependentAssembly>
+ </dependency>
+ <asmv3:application>
+ <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
+ <dpiAware>true</dpiAware>
+ </asmv3:windowsSettings>
+ </asmv3:application>
+</assembly>
diff --git a/docs/release/scripts/resources/windows/mess/mess.rc b/docs/release/scripts/resources/windows/mess/mess.rc
new file mode 100644
index 00000000000..1329bcd6fb8
--- /dev/null
+++ b/docs/release/scripts/resources/windows/mess/mess.rc
@@ -0,0 +1,14 @@
+// license:BSD-3-Clause
+// copyright-holders:Aaron Giles
+//============================================================
+//
+// mess.rc - Minimal resource file for Win32 MAME
+//
+//============================================================
+
+#include <windows.h>
+#include "messvers.rc"
+
+1 24 MOVEABLE PURE "mess.man"
+
+2 ICON DISCARDABLE "mess.ico"
diff --git a/docs/release/scripts/src/3rdparty.lua b/docs/release/scripts/src/3rdparty.lua
new file mode 100644
index 00000000000..1e56f4b9bdb
--- /dev/null
+++ b/docs/release/scripts/src/3rdparty.lua
@@ -0,0 +1,1698 @@
+-- license:BSD-3-Clause
+-- copyright-holders:MAMEdev Team
+
+---------------------------------------------------------------------------
+--
+-- 3rdparty.lua
+--
+-- Library objects for all 3rdparty sources
+--
+---------------------------------------------------------------------------
+
+--------------------------------------------------
+-- expat library objects
+--------------------------------------------------
+
+if not _OPTIONS["with-system-expat"] then
+project "expat"
+ uuid "f4cd40b1-c37c-452d-9785-640f26f0bf54"
+ kind "StaticLib"
+
+ -- fake out the enough of expat_config.h to get by
+ defines {
+ "HAVE_MEMMOVE",
+ "HAVE_STDINT_H",
+ "HAVE_STDLIB_H",
+ "HAVE_STRING_H",
+ "PACKAGE_BUGREPORT=\"expat-bugs@libexpat.org\"",
+ "PACKAGE_NAME=\"expat\"",
+ "PACKAGE_STRING=\"expat 2.1.1\"",
+ "PACKAGE_TARNAME=\"expat\"",
+ "PACKAGE_URL=\"\"",
+ "PACKAGE_VERSION=\"2.1.1\"",
+ "STDC_HEADERS",
+ "XML_CONTEXT_BYTES=1024",
+ "XML_DTD",
+ "XML_NS",
+ }
+if _OPTIONS["BIGENDIAN"]=="1" then
+ defines {
+ "BYTEORDER=4321",
+ "WORDS_BIGENDIAN",
+ }
+else
+ defines {
+ "BYTEORDER=1234",
+ }
+end
+
+ configuration { "vs*" }
+ buildoptions {
+ "/wd4100", -- warning C4100: 'xxx' : unreferenced formal parameter
+ "/wd4127", -- warning C4127: conditional expression is constant
+ "/wd4244", -- warning C4244: 'argument' : conversion from 'xxx' to 'xxx', possible loss of data
+ }
+if _OPTIONS["vs"]=="intel-15" then
+ buildoptions {
+ "/Qwd111", -- remark #111: statement is unreachable
+ "/Qwd1879", -- warning #1879: unimplemented pragma ignored
+ "/Qwd2557", -- remark #2557: comparison between signed and unsigned operands
+ "/Qwd869", -- remark #869: parameter "xxx" was never referenced
+ }
+end
+ configuration { "vs201*" }
+ buildoptions {
+ "/wd4456", -- warning C4456: declaration of 'xxx' hides previous local declaration
+ }
+ configuration { }
+
+ files {
+ MAME_DIR .. "3rdparty/expat/lib/xmlparse.c",
+ MAME_DIR .. "3rdparty/expat/lib/xmlrole.c",
+ MAME_DIR .. "3rdparty/expat/lib/xmltok.c",
+ }
+else
+links {
+ ext_lib("expat"),
+}
+end
+
+--------------------------------------------------
+-- zlib library objects
+--------------------------------------------------
+
+if not _OPTIONS["with-system-zlib"] then
+project "zlib"
+ uuid "3d78bd2a-2bd0-4449-8087-42ddfaef7ec9"
+ kind "StaticLib"
+
+ local version = str_to_version(_OPTIONS["gcc_version"])
+ if _OPTIONS["gcc"]~=nil and ((string.find(_OPTIONS["gcc"], "clang") or string.find(_OPTIONS["gcc"], "asmjs") or string.find(_OPTIONS["gcc"], "android"))) then
+ configuration { "gmake or ninja" }
+ if (version >= 30700) then
+ buildoptions {
+ "-Wno-shift-negative-value",
+ }
+ end
+ end
+
+ configuration { "vs*" }
+ buildoptions {
+ "/wd4131", -- warning C4131: 'xxx' : uses old-style declarator
+ "/wd4127", -- warning C4127: conditional expression is constant
+ "/wd4244", -- warning C4244: 'argument' : conversion from 'xxx' to 'xxx', possible loss of data
+ }
+if _OPTIONS["vs"]=="intel-15" then
+ buildoptions {
+ "/Qwd111", -- remark #111: statement is unreachable
+ "/Qwd280", -- remark #280: selector expression is constant
+ }
+end
+ configuration "Debug"
+ defines {
+ "verbose=-1",
+ }
+
+ configuration { "gmake or ninja" }
+ buildoptions_c {
+ "-Wno-strict-prototypes",
+ }
+
+ configuration { }
+ defines {
+ "ZLIB_CONST",
+ }
+
+ files {
+ MAME_DIR .. "3rdparty/zlib/adler32.c",
+ MAME_DIR .. "3rdparty/zlib/compress.c",
+ MAME_DIR .. "3rdparty/zlib/crc32.c",
+ MAME_DIR .. "3rdparty/zlib/deflate.c",
+ MAME_DIR .. "3rdparty/zlib/inffast.c",
+ MAME_DIR .. "3rdparty/zlib/inflate.c",
+ MAME_DIR .. "3rdparty/zlib/infback.c",
+ MAME_DIR .. "3rdparty/zlib/inftrees.c",
+ MAME_DIR .. "3rdparty/zlib/trees.c",
+ MAME_DIR .. "3rdparty/zlib/uncompr.c",
+ MAME_DIR .. "3rdparty/zlib/zutil.c",
+ }
+else
+links {
+ ext_lib("zlib"),
+}
+end
+
+--------------------------------------------------
+-- SoftFloat library objects
+--------------------------------------------------
+
+project "softfloat"
+ uuid "04fbf89e-4761-4cf2-8a12-64500cf0c5c5"
+ kind "StaticLib"
+
+ options {
+ "ForceCPP",
+ }
+
+ includedirs {
+ MAME_DIR .. "src/osd",
+ }
+ configuration { "vs*" }
+ buildoptions {
+ "/wd4244", -- warning C4244: 'argument' : conversion from 'xxx' to 'xxx', possible loss of data
+ "/wd4146", -- warning C4146: unary minus operator applied to unsigned type, result still unsigned
+ "/wd4018", -- warning C4018: 'x' : signed/unsigned mismatch
+ }
+if _OPTIONS["vs"]=="intel-15" then
+ buildoptions {
+ "/Qwd2557", -- remark #2557: comparison between signed and unsigned operands
+ }
+end
+ configuration { }
+
+ files {
+ MAME_DIR .. "3rdparty/softfloat/softfloat.c",
+ MAME_DIR .. "3rdparty/softfloat/fsincos.c",
+ MAME_DIR .. "3rdparty/softfloat/fyl2x.c",
+ }
+
+--------------------------------------------------
+-- libJPEG library objects
+--------------------------------------------------
+
+if not _OPTIONS["with-system-jpeg"] then
+project "jpeg"
+ uuid "447c6800-dcfd-4c48-b72a-a8223bb409ca"
+ kind "StaticLib"
+
+ configuration { "vs*" }
+ buildoptions {
+ "/wd4100", -- warning C4100: 'xxx' : unreferenced formal parameter
+ "/wd4127", -- warning C4127: conditional expression is constant
+ "/wd4244", -- warning C4244: 'argument' : conversion from 'xxx' to 'xxx', possible loss of data
+ }
+if _OPTIONS["vs"]=="intel-15" then
+ buildoptions {
+ "/Qwd869", -- remark #869: parameter "xxx" was never referenced
+ }
+end
+
+ configuration { "winstore*" }
+ defines {
+ "NO_GETENV"
+ }
+
+ configuration { }
+
+ files {
+ MAME_DIR .. "3rdparty/libjpeg/jaricom.c",
+ MAME_DIR .. "3rdparty/libjpeg/jcapimin.c",
+ MAME_DIR .. "3rdparty/libjpeg/jcapistd.c",
+ MAME_DIR .. "3rdparty/libjpeg/jcarith.c",
+ MAME_DIR .. "3rdparty/libjpeg/jccoefct.c",
+ MAME_DIR .. "3rdparty/libjpeg/jccolor.c",
+ MAME_DIR .. "3rdparty/libjpeg/jcdctmgr.c",
+ MAME_DIR .. "3rdparty/libjpeg/jchuff.c",
+ MAME_DIR .. "3rdparty/libjpeg/jcinit.c",
+ MAME_DIR .. "3rdparty/libjpeg/jcmainct.c",
+ MAME_DIR .. "3rdparty/libjpeg/jcmarker.c",
+ MAME_DIR .. "3rdparty/libjpeg/jcmaster.c",
+ MAME_DIR .. "3rdparty/libjpeg/jcomapi.c",
+ MAME_DIR .. "3rdparty/libjpeg/jcparam.c",
+ MAME_DIR .. "3rdparty/libjpeg/jcprepct.c",
+ MAME_DIR .. "3rdparty/libjpeg/jcsample.c",
+ MAME_DIR .. "3rdparty/libjpeg/jctrans.c",
+ MAME_DIR .. "3rdparty/libjpeg/jdapimin.c",
+ MAME_DIR .. "3rdparty/libjpeg/jdapistd.c",
+ MAME_DIR .. "3rdparty/libjpeg/jdarith.c",
+ MAME_DIR .. "3rdparty/libjpeg/jdatadst.c",
+ MAME_DIR .. "3rdparty/libjpeg/jdatasrc.c",
+ MAME_DIR .. "3rdparty/libjpeg/jdcoefct.c",
+ MAME_DIR .. "3rdparty/libjpeg/jdcolor.c",
+ MAME_DIR .. "3rdparty/libjpeg/jddctmgr.c",
+ MAME_DIR .. "3rdparty/libjpeg/jdhuff.c",
+ MAME_DIR .. "3rdparty/libjpeg/jdinput.c",
+ MAME_DIR .. "3rdparty/libjpeg/jdmainct.c",
+ MAME_DIR .. "3rdparty/libjpeg/jdmarker.c",
+ MAME_DIR .. "3rdparty/libjpeg/jdmaster.c",
+ MAME_DIR .. "3rdparty/libjpeg/jdmerge.c",
+ MAME_DIR .. "3rdparty/libjpeg/jdpostct.c",
+ MAME_DIR .. "3rdparty/libjpeg/jdsample.c",
+ MAME_DIR .. "3rdparty/libjpeg/jdtrans.c",
+ MAME_DIR .. "3rdparty/libjpeg/jerror.c",
+ MAME_DIR .. "3rdparty/libjpeg/jfdctflt.c",
+ MAME_DIR .. "3rdparty/libjpeg/jfdctfst.c",
+ MAME_DIR .. "3rdparty/libjpeg/jfdctint.c",
+ MAME_DIR .. "3rdparty/libjpeg/jidctflt.c",
+ MAME_DIR .. "3rdparty/libjpeg/jidctfst.c",
+ MAME_DIR .. "3rdparty/libjpeg/jidctint.c",
+ MAME_DIR .. "3rdparty/libjpeg/jquant1.c",
+ MAME_DIR .. "3rdparty/libjpeg/jquant2.c",
+ MAME_DIR .. "3rdparty/libjpeg/jutils.c",
+ MAME_DIR .. "3rdparty/libjpeg/jmemmgr.c",
+ MAME_DIR .. "3rdparty/libjpeg/jmemansi.c",
+ }
+else
+links {
+ ext_lib("jpeg"),
+}
+end
+
+--------------------------------------------------
+-- libflac library objects
+--------------------------------------------------
+
+if not _OPTIONS["with-system-flac"] then
+project "flac"
+ uuid "b6fc19e8-073a-4541-bb7b-d24b548d424a"
+ kind "StaticLib"
+
+ configuration { "vs*" }
+ buildoptions {
+ "/wd4127", -- warning C4127: conditional expression is constant
+ "/wd4244", -- warning C4244: 'argument' : conversion from 'xxx' to 'xxx', possible loss of data
+ "/wd4100", -- warning C4100: 'xxx' : unreferenced formal parameter
+ "/wd4702", -- warning C4702: unreachable code
+ }
+if _OPTIONS["vs"]=="intel-15" then
+ buildoptions {
+ "/Qwd111", -- remark #111: statement is unreachable
+ "/Qwd177", -- remark #177: function "xxx" was declared but never referenced
+ "/Qwd181", -- remark #181: argument of type "UINT32={unsigned int}" is incompatible with format "%d", expecting argument of type "int"
+ "/Qwd188", -- error #188: enumerated type mixed with another type
+ "/Qwd869", -- remark #869: parameter "xxx" was never referenced
+ }
+end
+
+ configuration { "mingw-clang" }
+ buildoptions {
+ "-include stdint.h"
+ }
+
+ configuration { "vs201*" }
+ buildoptions {
+ "/wd4456", -- warning C4456: declaration of 'xxx' hides previous local declaration
+ }
+
+ configuration { }
+ defines {
+ "WORDS_BIGENDIAN=0",
+ "FLAC__NO_ASM",
+ "_LARGEFILE_SOURCE",
+ "_FILE_OFFSET_BITS=64",
+ "FLAC__HAS_OGG=0",
+ "HAVE_CONFIG_H=1",
+ }
+
+ configuration { "gmake or ninja" }
+ buildoptions_c {
+ "-Wno-unused-function",
+ "-O0",
+ }
+ if _OPTIONS["gcc"]~=nil and (string.find(_OPTIONS["gcc"], "clang") or string.find(_OPTIONS["gcc"], "android")) then
+ buildoptions {
+ "-Wno-enum-conversion",
+ }
+ if _OPTIONS["targetos"]=="macosx" then
+ buildoptions_c {
+ "-Wno-unknown-attributes",
+ }
+ end
+ end
+ configuration { }
+
+ includedirs {
+ MAME_DIR .. "3rdparty/libflac/src/libFLAC/include",
+ MAME_DIR .. "3rdparty/libflac/include",
+ }
+
+ files {
+ MAME_DIR .. "3rdparty/libflac/src/libFLAC/bitmath.c",
+ MAME_DIR .. "3rdparty/libflac/src/libFLAC/bitreader.c",
+ MAME_DIR .. "3rdparty/libflac/src/libFLAC/bitwriter.c",
+ MAME_DIR .. "3rdparty/libflac/src/libFLAC/cpu.c",
+ MAME_DIR .. "3rdparty/libflac/src/libFLAC/crc.c",
+ MAME_DIR .. "3rdparty/libflac/src/libFLAC/fixed.c",
+ MAME_DIR .. "3rdparty/libflac/src/libFLAC/float.c",
+ MAME_DIR .. "3rdparty/libflac/src/libFLAC/format.c",
+ MAME_DIR .. "3rdparty/libflac/src/libFLAC/lpc.c",
+ MAME_DIR .. "3rdparty/libflac/src/libFLAC/md5.c",
+ MAME_DIR .. "3rdparty/libflac/src/libFLAC/memory.c",
+ MAME_DIR .. "3rdparty/libflac/src/libFLAC/stream_decoder.c",
+ MAME_DIR .. "3rdparty/libflac/src/libFLAC/stream_encoder.c",
+ MAME_DIR .. "3rdparty/libflac/src/libFLAC/stream_encoder_framing.c",
+ MAME_DIR .. "3rdparty/libflac/src/libFLAC/window.c",
+ }
+else
+links {
+ ext_lib("flac"),
+}
+end
+
+--------------------------------------------------
+-- lib7z library objects
+--------------------------------------------------
+
+project "7z"
+ uuid "ad573d62-e76a-4b11-ae34-5110a6789a42"
+ kind "StaticLib"
+
+ configuration { "gmake or ninja" }
+ buildoptions_c {
+ "-Wno-undef",
+ "-Wno-strict-prototypes",
+ }
+
+ configuration { "mingw*" }
+ buildoptions_c {
+ "-Wno-strict-prototypes",
+ }
+
+ configuration { "vs*" }
+ buildoptions {
+ "/wd4100", -- warning C4100: 'xxx' : unreferenced formal parameter
+ }
+if _OPTIONS["vs"]=="intel-15" then
+ buildoptions {
+ "/Qwd869", -- remark #869: parameter "xxx" was never referenced
+ }
+end
+ configuration { "vs201*" }
+ buildoptions {
+ "/wd4456", -- warning C4456: declaration of 'xxx' hides previous local declaration
+ "/wd4457", -- warning C4457: declaration of 'xxx' hides function parameter
+ }
+ configuration { "winstore*" }
+ forcedincludes {
+ MAME_DIR .. "src/osd/uwp/uwpcompat.h"
+ }
+
+ configuration { }
+ defines {
+ "_7ZIP_PPMD_SUPPPORT",
+ "_7ZIP_ST",
+ }
+
+ files {
+ MAME_DIR .. "3rdparty/lzma/C/7zAlloc.c",
+ MAME_DIR .. "3rdparty/lzma/C/7zArcIn.c",
+ MAME_DIR .. "3rdparty/lzma/C/7zBuf.c",
+ MAME_DIR .. "3rdparty/lzma/C/7zBuf2.c",
+ MAME_DIR .. "3rdparty/lzma/C/7zCrc.c",
+ MAME_DIR .. "3rdparty/lzma/C/7zCrcOpt.c",
+ MAME_DIR .. "3rdparty/lzma/C/7zDec.c",
+ MAME_DIR .. "3rdparty/lzma/C/7zFile.c",
+ MAME_DIR .. "3rdparty/lzma/C/7zStream.c",
+ MAME_DIR .. "3rdparty/lzma/C/Aes.c",
+ MAME_DIR .. "3rdparty/lzma/C/AesOpt.c",
+ MAME_DIR .. "3rdparty/lzma/C/Alloc.c",
+ MAME_DIR .. "3rdparty/lzma/C/Bcj2.c",
+ -- MAME_DIR .. "3rdparty/lzma/C/Bcj2Enc.c",
+ MAME_DIR .. "3rdparty/lzma/C/Bra.c",
+ MAME_DIR .. "3rdparty/lzma/C/Bra86.c",
+ MAME_DIR .. "3rdparty/lzma/C/BraIA64.c",
+ MAME_DIR .. "3rdparty/lzma/C/CpuArch.c",
+ MAME_DIR .. "3rdparty/lzma/C/Delta.c",
+ -- MAME_DIR .. "3rdparty/lzma/C/DllSecur.c",
+ MAME_DIR .. "3rdparty/lzma/C/LzFind.c",
+ -- MAME_DIR .. "3rdparty/lzma/C/LzFindMt.c",
+ MAME_DIR .. "3rdparty/lzma/C/Lzma2Dec.c",
+ MAME_DIR .. "3rdparty/lzma/C/Lzma2Enc.c",
+ MAME_DIR .. "3rdparty/lzma/C/Lzma86Dec.c",
+ MAME_DIR .. "3rdparty/lzma/C/Lzma86Enc.c",
+ MAME_DIR .. "3rdparty/lzma/C/LzmaDec.c",
+ MAME_DIR .. "3rdparty/lzma/C/LzmaEnc.c",
+ -- MAME_DIR .. "3rdparty/lzma/C/LzmaLib.c",
+ -- MAME_DIR .. "3rdparty/lzma/C/MtCoder.c",
+ MAME_DIR .. "3rdparty/lzma/C/Ppmd7.c",
+ MAME_DIR .. "3rdparty/lzma/C/Ppmd7Dec.c",
+ MAME_DIR .. "3rdparty/lzma/C/Ppmd7Enc.c",
+ MAME_DIR .. "3rdparty/lzma/C/Sha256.c",
+ MAME_DIR .. "3rdparty/lzma/C/Sort.c",
+ -- MAME_DIR .. "3rdparty/lzma/C/Threads.c",
+ -- MAME_DIR .. "3rdparty/lzma/C/Xz.c",
+ -- MAME_DIR .. "3rdparty/lzma/C/XzCrc64.c",
+ -- MAME_DIR .. "3rdparty/lzma/C/XzCrc64Opt.c",
+ -- MAME_DIR .. "3rdparty/lzma/C/XzDec.c",
+ -- MAME_DIR .. "3rdparty/lzma/C/XzEnc.c",
+ -- MAME_DIR .. "3rdparty/lzma/C/XzIn.c",
+ }
+
+--------------------------------------------------
+-- LUA library objects
+--------------------------------------------------
+if (STANDALONE~=true) then
+
+if not _OPTIONS["with-system-lua"] then
+project "lua"
+ uuid "d9e2eed1-f1ab-4737-a6ac-863700b1a5a9"
+ kind "StaticLib"
+
+ -- uncomment the options below to
+ -- compile using c++. Do the same
+ -- in lualibs.
+ -- In addition comment out the "extern "C""
+ -- in lua.hpp and do the same in luaengine.c line 47
+ --options {
+ -- "ForceCPP",
+ --}
+
+ configuration { "gmake or ninja" }
+ buildoptions_c {
+ "-Wno-bad-function-cast"
+ }
+
+ configuration { "vs*" }
+ buildoptions {
+ "/wd4244", -- warning C4244: 'argument' : conversion from 'xxx' to 'xxx', possible loss of data
+ "/wd4702", -- warning C4702: unreachable code
+ "/wd4310", -- warning C4310: cast truncates constant value
+ }
+if _OPTIONS["vs"]=="intel-15" then
+ buildoptions {
+ "/Qwd592", -- error #592: variable "xxx" is used before its value is set
+ }
+end
+
+ configuration { "winstore*" }
+ forcedincludes {
+ MAME_DIR .. "src/osd/uwp/uwpcompat.h",
+ }
+
+ configuration { }
+ defines {
+ "LUA_COMPAT_ALL",
+ "LUA_COMPAT_5_1",
+ "LUA_COMPAT_5_2",
+ }
+ if not (_OPTIONS["targetos"]=="windows") and not (_OPTIONS["targetos"]=="asmjs") and not (_OPTIONS["targetos"]=="pnacl") then
+ defines {
+ "LUA_USE_POSIX",
+ }
+ end
+ if ("pnacl" == _OPTIONS["gcc"]) then
+ defines {
+ "LUA_32BITS",
+ }
+ end
+
+ configuration { }
+
+ includedirs {
+ MAME_DIR .. "3rdparty",
+ }
+
+ files {
+ MAME_DIR .. "3rdparty/lua/src/lapi.c",
+ MAME_DIR .. "3rdparty/lua/src/lcode.c",
+ MAME_DIR .. "3rdparty/lua/src/lctype.c",
+ MAME_DIR .. "3rdparty/lua/src/ldebug.c",
+ MAME_DIR .. "3rdparty/lua/src/ldo.c",
+ MAME_DIR .. "3rdparty/lua/src/ldump.c",
+ MAME_DIR .. "3rdparty/lua/src/lfunc.c",
+ MAME_DIR .. "3rdparty/lua/src/lgc.c",
+ MAME_DIR .. "3rdparty/lua/src/llex.c",
+ MAME_DIR .. "3rdparty/lua/src/lmem.c",
+ MAME_DIR .. "3rdparty/lua/src/lobject.c",
+ MAME_DIR .. "3rdparty/lua/src/lopcodes.c",
+ MAME_DIR .. "3rdparty/lua/src/lparser.c",
+ MAME_DIR .. "3rdparty/lua/src/lstate.c",
+ MAME_DIR .. "3rdparty/lua/src/lstring.c",
+ MAME_DIR .. "3rdparty/lua/src/ltable.c",
+ MAME_DIR .. "3rdparty/lua/src/ltm.c",
+ MAME_DIR .. "3rdparty/lua/src/lundump.c",
+ MAME_DIR .. "3rdparty/lua/src/lvm.c",
+ MAME_DIR .. "3rdparty/lua/src/lzio.c",
+ MAME_DIR .. "3rdparty/lua/src/lauxlib.c",
+ MAME_DIR .. "3rdparty/lua/src/lbaselib.c",
+ MAME_DIR .. "3rdparty/lua/src/lbitlib.c",
+ MAME_DIR .. "3rdparty/lua/src/lcorolib.c",
+ MAME_DIR .. "3rdparty/lua/src/ldblib.c",
+ MAME_DIR .. "3rdparty/lua/src/liolib.c",
+ MAME_DIR .. "3rdparty/lua/src/lmathlib.c",
+ MAME_DIR .. "3rdparty/lua/src/loslib.c",
+ MAME_DIR .. "3rdparty/lua/src/lstrlib.c",
+ MAME_DIR .. "3rdparty/lua/src/ltablib.c",
+ MAME_DIR .. "3rdparty/lua/src/loadlib.c",
+ MAME_DIR .. "3rdparty/lua/src/linit.c",
+ MAME_DIR .. "3rdparty/lua/src/lutf8lib.c",
+ }
+else
+links {
+ ext_lib("lua"),
+}
+end
+
+--------------------------------------------------
+-- small lua library objects
+--------------------------------------------------
+
+project "lualibs"
+ uuid "1d84edab-94cf-48fb-83ee-b75bc697660e"
+ kind "StaticLib"
+
+ configuration { "vs*" }
+ buildoptions {
+ "/wd4244", -- warning C4244: 'argument' : conversion from 'xxx' to 'xxx', possible loss of data
+ "/wd4055", -- warning C4055: 'type cast': from data pointer 'void *' to function pointer 'xxx'
+ "/wd4152", -- warning C4152: nonstandard extension, function/data pointer conversion in expression
+ "/wd4130", -- warning C4130: '==': logical operation on address of string constant
+ }
+
+ configuration { "pnacl"}
+ buildoptions {
+ "-Wno-char-subscripts",
+ }
+
+ configuration { }
+ defines {
+ "LUA_COMPAT_ALL",
+ }
+
+ includedirs {
+ MAME_DIR .. "3rdparty",
+ }
+if (_OPTIONS["osd"] ~= "uwp") then
+ includedirs {
+ MAME_DIR .. "3rdparty/linenoise-ng/include",
+ }
+end
+ includedirs {
+ ext_includedir("lua"),
+ ext_includedir("zlib"),
+ ext_includedir("sqlite3"),
+ }
+
+ configuration { "winstore*" }
+ forcedincludes {
+ MAME_DIR .. "src/osd/uwp/uwpcompat.h"
+ }
+
+ configuration {}
+
+ files {
+ MAME_DIR .. "3rdparty/lsqlite3/lsqlite3.c",
+ MAME_DIR .. "3rdparty/lua-zlib/lua_zlib.c",
+ MAME_DIR .. "3rdparty/luafilesystem/src/lfs.c",
+ }
+if (_OPTIONS["osd"] == "uwp") then
+ files {
+ MAME_DIR .. "3rdparty/lua-linenoise/linenoise_none.c",
+ }
+else
+ files {
+ MAME_DIR .. "3rdparty/lua-linenoise/linenoise.c",
+ }
+end
+
+--------------------------------------------------
+-- SQLite3 library objects
+--------------------------------------------------
+
+if not _OPTIONS["with-system-sqlite3"] then
+project "sqlite3"
+ uuid "5cb3d495-57ed-461c-81e5-80dc0857517d"
+ kind "StaticLib"
+
+ configuration { "gmake" }
+ buildoptions_c {
+ "-Wno-discarded-qualifiers",
+ "-Wno-unused-but-set-variable",
+ "-Wno-bad-function-cast",
+ "-Wno-undef",
+ }
+if _OPTIONS["gcc"]~=nil and ((string.find(_OPTIONS["gcc"], "clang") or string.find(_OPTIONS["gcc"], "asmjs") or string.find(_OPTIONS["gcc"], "android"))) then
+ buildoptions_c {
+ "-Wno-incompatible-pointer-types-discards-qualifiers",
+ }
+end
+ configuration { "winstore*" }
+ defines {
+ "SQLITE_OS_WINRT",
+ }
+
+ configuration { }
+
+ files {
+ MAME_DIR .. "3rdparty/sqlite3/sqlite3.c",
+ }
+else
+links {
+ ext_lib("sqlite3"),
+}
+end
+
+end
+--------------------------------------------------
+-- portmidi library objects
+--------------------------------------------------
+if _OPTIONS["NO_USE_MIDI"]~="1" then
+if not _OPTIONS["with-system-portmidi"] then
+project "portmidi"
+ uuid "587f2da6-3274-4a65-86a2-f13ea315bb98"
+ kind "StaticLib"
+
+ includedirs {
+ MAME_DIR .. "3rdparty/portmidi/pm_common",
+ MAME_DIR .. "3rdparty/portmidi/porttime",
+ }
+
+ configuration { "vs*" }
+ buildoptions {
+ "/wd4100", -- warning C4100: 'xxx' : unreferenced formal parameter
+ "/wd4127", -- warning C4127: conditional expression is constant
+ "/wd4244", -- warning C4244: 'argument' : conversion from 'xxx' to 'xxx', possible loss of data
+ "/wd4706", -- warning C4706: assignment within conditional expression
+ }
+if _OPTIONS["vs"]=="intel-15" then
+ buildoptions {
+ "/Qwd188", -- error #188: enumerated type mixed with another type
+ "/Qwd344", -- remark #344: typedef name has already been declared (with same type)
+ "/Qwd869", -- remark #869: parameter "xxx" was never referenced
+ "/Qwd2557", -- remark #2557: comparison between signed and unsigned operands
+ }
+end
+
+ configuration { "vs201*" }
+ buildoptions {
+ "/wd4456", -- warning C4456: declaration of 'xxx' hides previous local declaration
+ }
+
+ configuration { "linux*" }
+ defines {
+ "PMALSA=1",
+ }
+
+ configuration { }
+
+ files {
+ MAME_DIR .. "3rdparty/portmidi/pm_common/portmidi.c",
+ MAME_DIR .. "3rdparty/portmidi/pm_common/pmutil.c",
+ }
+
+ if _OPTIONS["targetos"]=="windows" then
+ files {
+ MAME_DIR .. "3rdparty/portmidi/porttime/ptwinmm.c",
+ MAME_DIR .. "3rdparty/portmidi/pm_win/pmwin.c",
+ MAME_DIR .. "3rdparty/portmidi/pm_win/pmwinmm.c",
+ MAME_DIR .. "3rdparty/portmidi/porttime/ptwinmm.c",
+ }
+ end
+
+ if _OPTIONS["targetos"]=="linux" then
+ files {
+ MAME_DIR .. "3rdparty/portmidi/pm_linux/pmlinux.c",
+ MAME_DIR .. "3rdparty/portmidi/pm_linux/pmlinuxalsa.c",
+ MAME_DIR .. "3rdparty/portmidi/pm_linux/finddefault.c",
+ MAME_DIR .. "3rdparty/portmidi/porttime/ptlinux.c",
+ }
+ end
+ if _OPTIONS["targetos"]=="netbsd" then
+ files {
+ MAME_DIR .. "3rdparty/portmidi/pm_linux/pmlinux.c",
+ MAME_DIR .. "3rdparty/portmidi/pm_linux/finddefault.c",
+ MAME_DIR .. "3rdparty/portmidi/porttime/ptlinux.c",
+ }
+ end
+ if _OPTIONS["targetos"]=="macosx" then
+ files {
+ MAME_DIR .. "3rdparty/portmidi/pm_mac/pmmac.c",
+ MAME_DIR .. "3rdparty/portmidi/pm_mac/pmmacosxcm.c",
+ MAME_DIR .. "3rdparty/portmidi/pm_mac/finddefault.c",
+ MAME_DIR .. "3rdparty/portmidi/pm_mac/readbinaryplist.c",
+ MAME_DIR .. "3rdparty/portmidi/pm_mac/osxsupport.m",
+ MAME_DIR .. "3rdparty/portmidi/porttime/ptmacosx_mach.c",
+ }
+ end
+else
+links {
+ ext_lib("portmidi"),
+}
+end
+end
+
+--------------------------------------------------
+-- BX library objects
+--------------------------------------------------
+
+project "bx"
+ uuid "238318fe-49f5-4eb4-88be-0618900f5eac"
+ kind "StaticLib"
+
+ defines {
+ "__STDC_LIMIT_MACROS",
+ "__STDC_FORMAT_MACROS",
+ "__STDC_CONSTANT_MACROS",
+ }
+
+ configuration { "vs*" }
+ includedirs {
+ MAME_DIR .. "3rdparty/bx/include/compat/msvc",
+ }
+ configuration { "mingw*" }
+ includedirs {
+ MAME_DIR .. "3rdparty/bx/include/compat/mingw",
+ }
+
+ configuration { "osx* or xcode4" }
+ includedirs {
+ MAME_DIR .. "3rdparty/bx/include/compat/osx",
+ }
+
+ configuration { "freebsd" }
+ includedirs {
+ MAME_DIR .. "3rdparty/bx/include/compat/freebsd",
+ }
+
+ configuration { "netbsd" }
+ includedirs {
+ MAME_DIR .. "3rdparty/bx/include/compat/freebsd",
+ }
+
+ configuration { }
+
+ local version = str_to_version(_OPTIONS["gcc_version"])
+ if _OPTIONS["gcc"]~=nil and string.find(_OPTIONS["gcc"], "gcc") then
+ if version < 60000 then
+ buildoptions {
+ "-Wno-strict-overflow",
+ }
+ end
+ end
+
+ includedirs {
+ MAME_DIR .. "3rdparty/bx/include",
+ }
+
+ files {
+ MAME_DIR .. "3rdparty/bx/src/bx.cpp",
+ MAME_DIR .. "3rdparty/bx/src/commandline.cpp",
+ MAME_DIR .. "3rdparty/bx/src/crtnone.cpp",
+ MAME_DIR .. "3rdparty/bx/src/crtimpl.cpp",
+ MAME_DIR .. "3rdparty/bx/src/debug.cpp",
+ MAME_DIR .. "3rdparty/bx/src/dtoa.cpp",
+ MAME_DIR .. "3rdparty/bx/src/fpumath.cpp",
+ MAME_DIR .. "3rdparty/bx/src/mutex.cpp",
+ MAME_DIR .. "3rdparty/bx/src/os.cpp",
+ MAME_DIR .. "3rdparty/bx/src/semaphore.cpp",
+ MAME_DIR .. "3rdparty/bx/src/sort.cpp",
+ MAME_DIR .. "3rdparty/bx/src/string.cpp",
+ MAME_DIR .. "3rdparty/bx/src/timer.cpp",
+ MAME_DIR .. "3rdparty/bx/src/thread.cpp",
+ }
+
+--------------------------------------------------
+-- BGFX library objects
+--------------------------------------------------
+
+project "bgfx"
+ uuid "d3e7e119-35cf-4f4f-aba0-d3bdcd1b879a"
+ kind "StaticLib"
+
+ configuration { "vs*" }
+ buildoptions {
+ "/wd4324", -- warning C4324: 'xxx' : structure was padded due to __declspec(align())
+ "/wd4244", -- warning C4244: 'argument' : conversion from 'xxx' to 'xxx', possible loss of data
+ "/wd4611", -- warning C4611: interaction between '_setjmp' and C++ object destruction is non-portable
+ "/wd4310", -- warning C4310: cast truncates constant value
+ }
+if _OPTIONS["vs"]=="intel-15" then
+ buildoptions {
+ "/Qwd906", -- message #906: effect of this "#pragma pack" directive is local to function "xxx"
+ "/Qwd1879", -- warning #1879: unimplemented pragma ignored
+ "/Qwd82", -- remark #82: storage class is not first
+ }
+end
+ configuration { }
+
+ includedirs {
+ MAME_DIR .. "3rdparty/bgfx/include",
+ MAME_DIR .. "3rdparty/bgfx/3rdparty",
+ MAME_DIR .. "3rdparty/bx/include",
+ MAME_DIR .. "3rdparty/bgfx/3rdparty/dxsdk/include",
+ }
+
+ configuration { "not steamlink"}
+ includedirs {
+ MAME_DIR .. "3rdparty/bgfx/3rdparty/khronos",
+ }
+
+ configuration { "android-*"}
+ buildoptions {
+ "-Wno-macro-redefined",
+ }
+
+ configuration { "vs*" }
+ includedirs {
+ MAME_DIR .. "3rdparty/bx/include/compat/msvc",
+ }
+ configuration { "mingw*" }
+ includedirs {
+ MAME_DIR .. "3rdparty/bx/include/compat/mingw",
+ }
+
+ configuration { "osx* or xcode4" }
+ includedirs {
+ MAME_DIR .. "3rdparty/bx/include/compat/osx",
+ }
+
+ configuration { "freebsd" }
+ includedirs {
+ MAME_DIR .. "3rdparty/bx/include/compat/freebsd",
+ }
+
+ configuration { "netbsd" }
+ includedirs {
+ MAME_DIR .. "3rdparty/bx/include/compat/freebsd",
+ }
+
+ configuration { "gmake or ninja" }
+ buildoptions {
+ "-Wno-uninitialized",
+ "-Wno-unused-function",
+ "-Wno-unused-variable",
+ "-Wno-unused-but-set-variable",
+ "-Wno-format-extra-args", -- temp for mingw 6.1 till update bgfx code
+ }
+ configuration { "rpi" }
+ buildoptions {
+ "-Wno-unused-but-set-variable",
+ "-Wno-unused-variable",
+ }
+ defines {
+ "__STDC_VERSION__=199901L",
+ }
+
+ configuration { }
+
+ local version = str_to_version(_OPTIONS["gcc_version"])
+ if _OPTIONS["gcc"]~=nil and string.find(_OPTIONS["gcc"], "gcc") then
+ if version >= 60000 then
+ buildoptions_cpp {
+ "-Wno-misleading-indentation",
+ }
+ end
+ end
+
+ if _OPTIONS["targetos"]=="windows" then
+ if _OPTIONS["gcc"]~=nil and string.find(_OPTIONS["gcc"], "clang") then
+ buildoptions {
+ "-Wno-unknown-attributes",
+ "-Wno-missing-braces",
+ "-Wno-int-to-pointer-cast",
+ }
+ end
+ end
+
+ if _OPTIONS["targetos"]=="macosx" or _OPTIONS["targetos"]=="linux" then
+ if _OPTIONS["gcc"]~=nil and string.find(_OPTIONS["gcc"], "clang") then
+ buildoptions {
+ "-Wno-switch",
+ }
+ buildoptions_cpp {
+ "-Wno-unknown-pragmas",
+ }
+ end
+ end
+
+ defines {
+ "__STDC_LIMIT_MACROS",
+ "__STDC_FORMAT_MACROS",
+ "__STDC_CONSTANT_MACROS",
+ "BGFX_CONFIG_MAX_FRAME_BUFFERS=128",
+ }
+ files {
+ MAME_DIR .. "3rdparty/bgfx/src/bgfx.cpp",
+ MAME_DIR .. "3rdparty/bgfx/src/glcontext_egl.cpp",
+ MAME_DIR .. "3rdparty/bgfx/src/glcontext_glx.cpp",
+ MAME_DIR .. "3rdparty/bgfx/src/glcontext_ppapi.cpp",
+ MAME_DIR .. "3rdparty/bgfx/src/glcontext_wgl.cpp",
+ MAME_DIR .. "3rdparty/bgfx/src/image.cpp",
+ MAME_DIR .. "3rdparty/bgfx/src/hmd.cpp",
+ MAME_DIR .. "3rdparty/bgfx/src/hmd_ovr.cpp",
+ MAME_DIR .. "3rdparty/bgfx/src/hmd_openvr.cpp",
+ MAME_DIR .. "3rdparty/bgfx/src/renderer_d3d12.cpp",
+ MAME_DIR .. "3rdparty/bgfx/src/renderer_d3d11.cpp",
+ MAME_DIR .. "3rdparty/bgfx/src/renderer_d3d9.cpp",
+ MAME_DIR .. "3rdparty/bgfx/src/renderer_gl.cpp",
+ MAME_DIR .. "3rdparty/bgfx/src/renderer_gnm.cpp",
+ MAME_DIR .. "3rdparty/bgfx/src/renderer_noop.cpp",
+ MAME_DIR .. "3rdparty/bgfx/src/renderer_vk.cpp",
+ MAME_DIR .. "3rdparty/bgfx/src/debug_renderdoc.cpp",
+ MAME_DIR .. "3rdparty/bgfx/src/shader.cpp",
+ MAME_DIR .. "3rdparty/bgfx/src/shader_dxbc.cpp",
+ MAME_DIR .. "3rdparty/bgfx/src/shader_dx9bc.cpp",
+ MAME_DIR .. "3rdparty/bgfx/src/shader_spirv.cpp",
+ MAME_DIR .. "3rdparty/bgfx/src/topology.cpp",
+ MAME_DIR .. "3rdparty/bgfx/src/vertexdecl.cpp",
+ MAME_DIR .. "3rdparty/bgfx/examples/common/imgui/imgui.cpp",
+ MAME_DIR .. "3rdparty/bgfx/examples/common/imgui/ocornut_imgui.cpp",
+ MAME_DIR .. "3rdparty/bgfx/examples/common/nanovg/nanovg.cpp",
+ MAME_DIR .. "3rdparty/bgfx/examples/common/nanovg/nanovg_bgfx.cpp",
+ MAME_DIR .. "3rdparty/bgfx/3rdparty/ocornut-imgui/imgui.cpp",
+ MAME_DIR .. "3rdparty/bgfx/3rdparty/ocornut-imgui/imgui_draw.cpp",
+ }
+ if _OPTIONS["targetos"]=="macosx" then
+ files {
+ MAME_DIR .. "3rdparty/bgfx/src/glcontext_eagl.mm",
+ MAME_DIR .. "3rdparty/bgfx/src/glcontext_nsgl.mm",
+ MAME_DIR .. "3rdparty/bgfx/src/renderer_mtl.mm",
+ }
+ end
+
+--------------------------------------------------
+-- PortAudio library objects
+--------------------------------------------------
+if _OPTIONS["NO_USE_PORTAUDIO"]~="1" then
+if not _OPTIONS["with-system-portaudio"] then
+project "portaudio"
+ uuid "0755c5f5-eccf-47f3-98a9-df67018a94d4"
+ kind "StaticLib"
+
+ configuration { "vs*" }
+ buildoptions {
+ "/wd4245", -- warning C4245: 'conversion' : conversion from 'type1' to 'type2', signed/unsigned mismatch
+ "/wd4244", -- warning C4244: 'argument' : conversion from 'xxx' to 'xxx', possible loss of data
+ "/wd4100", -- warning C4100: 'xxx' : unreferenced formal parameter
+ "/wd4389", -- warning C4389: 'operator' : signed/unsigned mismatch
+ "/wd4189", -- warning C4189: 'xxx' : local variable is initialized but not referenced
+ "/wd4127", -- warning C4127: conditional expression is constant
+ }
+ if _OPTIONS["vs"]=="intel-15" then
+ buildoptions {
+ "/Qwd869", -- remark #869: parameter "xxx" was never referenced
+ "/Qwd1478", -- warning #1478: function "xxx" (declared at line yyy of "zzz") was declared deprecated
+ "/Qwd2544", -- message #2544: empty dependent statement in if-statement
+ "/Qwd1879", -- warning #1879: unimplemented pragma ignored
+ }
+ end
+ configuration { "vs2015*" }
+ buildoptions {
+ "/wd4456", -- warning C4456: declaration of 'xxx' hides previous local declaration
+ }
+
+ configuration { "gmake or ninja" }
+ buildoptions_c {
+ "-Wno-strict-prototypes",
+ "-Wno-bad-function-cast",
+ "-Wno-undef",
+ "-Wno-missing-braces",
+ "-Wno-unused-variable",
+ "-Wno-unused-value",
+ "-Wno-unused-function",
+ "-Wno-unknown-pragmas",
+ }
+
+ local version = str_to_version(_OPTIONS["gcc_version"])
+ if (_OPTIONS["gcc"]~=nil) then
+ if string.find(_OPTIONS["gcc"], "clang") or string.find(_OPTIONS["gcc"], "android") then
+ buildoptions_c {
+ "-Wno-unknown-warning-option",
+ "-Wno-absolute-value",
+ "-Wno-unused-but-set-variable",
+ "-Wno-maybe-uninitialized",
+ "-Wno-sometimes-uninitialized",
+ }
+ else
+ if (version >= 40600) then
+ buildoptions_c {
+ "-Wno-unused-but-set-variable",
+ "-Wno-maybe-uninitialized",
+ "-Wno-sometimes-uninitialized",
+ "-w",
+ "-Wno-incompatible-pointer-types-discards-qualifiers",
+ }
+ end
+ end
+ end
+ configuration { "vs*" }
+ buildoptions {
+ "/wd4204", -- warning C4204: nonstandard extension used : non-constant aggregate initializer
+ "/wd4701", -- warning C4701: potentially uninitialized local variable 'xxx' used
+ "/wd4057", -- warning C4057: 'function': 'xxx' differs in indirection to slightly different base types from 'xxx'
+ }
+
+ configuration { }
+
+ includedirs {
+ MAME_DIR .. "3rdparty/portaudio/include",
+ MAME_DIR .. "3rdparty/portaudio/src/common",
+ }
+
+ files {
+ MAME_DIR .. "3rdparty/portaudio/src/common/pa_allocation.c",
+ MAME_DIR .. "3rdparty/portaudio/src/common/pa_converters.c",
+ MAME_DIR .. "3rdparty/portaudio/src/common/pa_cpuload.c",
+ MAME_DIR .. "3rdparty/portaudio/src/common/pa_dither.c",
+ MAME_DIR .. "3rdparty/portaudio/src/common/pa_debugprint.c",
+ MAME_DIR .. "3rdparty/portaudio/src/common/pa_front.c",
+ MAME_DIR .. "3rdparty/portaudio/src/common/pa_process.c",
+ MAME_DIR .. "3rdparty/portaudio/src/common/pa_stream.c",
+ MAME_DIR .. "3rdparty/portaudio/src/common/pa_trace.c",
+ MAME_DIR .. "3rdparty/portaudio/src/hostapi/skeleton/pa_hostapi_skeleton.c",
+ }
+
+ if _OPTIONS["targetos"]=="windows" then
+ defines {
+ "PA_USE_DS=1",
+ "PA_USE_WASAPI=1",
+ "PA_USE_WDMKS=1",
+ "PA_USE_WMME=1",
+ }
+ includedirs {
+ MAME_DIR .. "3rdparty/portaudio/src/os/win",
+ }
+
+ configuration { "mingw*" }
+ includedirs {
+ MAME_DIR .. "3rdparty/portaudio/src/hostapi/wasapi/mingw-include",
+ }
+
+ configuration { }
+ files {
+ MAME_DIR .. "3rdparty/portaudio/src/os/win/pa_win_util.c",
+ MAME_DIR .. "3rdparty/portaudio/src/os/win/pa_win_waveformat.c",
+ MAME_DIR .. "3rdparty/portaudio/src/os/win/pa_win_hostapis.c",
+ MAME_DIR .. "3rdparty/portaudio/src/os/win/pa_win_coinitialize.c",
+ MAME_DIR .. "3rdparty/portaudio/src/hostapi/dsound/pa_win_ds.c",
+ MAME_DIR .. "3rdparty/portaudio/src/hostapi/dsound/pa_win_ds_dynlink.c",
+ MAME_DIR .. "3rdparty/portaudio/src/os/win/pa_win_hostapis.c",
+ MAME_DIR .. "3rdparty/portaudio/src/hostapi/wasapi/pa_win_wasapi.c",
+ MAME_DIR .. "3rdparty/portaudio/src/hostapi/wdmks/pa_win_wdmks.c",
+ MAME_DIR .. "3rdparty/portaudio/src/hostapi/wmme/pa_win_wmme.c",
+ MAME_DIR .. "3rdparty/portaudio/src/common/pa_ringbuffer.c",
+ }
+
+ end
+ if _OPTIONS["targetos"]=="linux" then
+ defines {
+ "PA_USE_ALSA=1",
+ "PA_USE_OSS=1",
+ "HAVE_LINUX_SOUNDCARD_H",
+ }
+ includedirs {
+ MAME_DIR .. "3rdparty/portaudio/src/os/unix",
+ }
+ files {
+ MAME_DIR .. "3rdparty/portaudio/src/os/unix/pa_unix_hostapis.c",
+ MAME_DIR .. "3rdparty/portaudio/src/os/unix/pa_unix_util.c",
+ MAME_DIR .. "3rdparty/portaudio/src/hostapi/alsa/pa_linux_alsa.c",
+ MAME_DIR .. "3rdparty/portaudio/src/hostapi/oss/pa_unix_oss.c",
+ }
+ end
+ if _OPTIONS["targetos"]=="macosx" then
+ defines {
+ "PA_USE_COREAUDIO=1",
+ }
+ includedirs {
+ MAME_DIR .. "3rdparty/portaudio/src/os/unix",
+ }
+ files {
+ MAME_DIR .. "3rdparty/portaudio/src/os/unix/pa_unix_hostapis.c",
+ MAME_DIR .. "3rdparty/portaudio/src/os/unix/pa_unix_util.c",
+ MAME_DIR .. "3rdparty/portaudio/src/hostapi/coreaudio/pa_mac_core.c",
+ MAME_DIR .. "3rdparty/portaudio/src/hostapi/coreaudio/pa_mac_core_utilities.c",
+ MAME_DIR .. "3rdparty/portaudio/src/hostapi/coreaudio/pa_mac_core_blocking.c",
+ MAME_DIR .. "3rdparty/portaudio/src/common/pa_ringbuffer.c",
+ }
+ end
+
+else
+links {
+ ext_lib("portaudio"),
+}
+end
+end
+
+--------------------------------------------------
+-- SDL2 library
+--------------------------------------------------
+if _OPTIONS["with-bundled-sdl2"] then
+project "SDL2"
+ uuid "caab3327-574f-4abf-b25b-74d5238ae59b"
+if _OPTIONS["targetos"]=="android" then
+ kind "SharedLib"
+ targetextension ".so"
+ targetprefix "lib"
+ links {
+ "GLESv1_CM",
+ "GLESv2",
+ "log",
+ }
+ linkoptions {
+ "-Wl,-soname,libSDL2.so"
+ }
+
+ if _OPTIONS["SEPARATE_BIN"]~="1" then
+ if _OPTIONS["PLATFORM"]=="arm" then
+ targetdir(MAME_DIR .. "android-project/app/src/main/libs/armeabi-v7a")
+ end
+ if _OPTIONS["PLATFORM"]=="arm64" then
+ targetdir(MAME_DIR .. "android-project/app/src/main/libs/arm64-v8a")
+ end
+ if _OPTIONS["PLATFORM"]=="mips" then
+ targetdir(MAME_DIR .. "android-project/app/src/main/libs/mips")
+ end
+ if _OPTIONS["PLATFORM"]=="mips64" then
+ targetdir(MAME_DIR .. "android-project/app/src/main/libs/mips64")
+ end
+ if _OPTIONS["PLATFORM"]=="x86" then
+ targetdir(MAME_DIR .. "android-project/app/src/main/libs/x86")
+ end
+ if _OPTIONS["PLATFORM"]=="x64" then
+ targetdir(MAME_DIR .. "android-project/app/src/main/libs/x86_64")
+ end
+ end
+
+ strip()
+else
+ kind "StaticLib"
+end
+
+ files {
+ MAME_DIR .. "3rdparty/SDL2/include/begin_code.h",
+ MAME_DIR .. "3rdparty/SDL2/include/close_code.h",
+ MAME_DIR .. "3rdparty/SDL2/include/SDL.h",
+ MAME_DIR .. "3rdparty/SDL2/include/SDL_assert.h",
+ MAME_DIR .. "3rdparty/SDL2/include/SDL_atomic.h",
+ MAME_DIR .. "3rdparty/SDL2/include/SDL_audio.h",
+ MAME_DIR .. "3rdparty/SDL2/include/SDL_bits.h",
+ MAME_DIR .. "3rdparty/SDL2/include/SDL_blendmode.h",
+ MAME_DIR .. "3rdparty/SDL2/include/SDL_clipboard.h",
+ MAME_DIR .. "3rdparty/SDL2/include/SDL_config.h",
+ MAME_DIR .. "3rdparty/SDL2/include/SDL_config_windows.h",
+ MAME_DIR .. "3rdparty/SDL2/include/SDL_copying.h",
+ MAME_DIR .. "3rdparty/SDL2/include/SDL_cpuinfo.h",
+ MAME_DIR .. "3rdparty/SDL2/include/SDL_egl.h",
+ MAME_DIR .. "3rdparty/SDL2/include/SDL_endian.h",
+ MAME_DIR .. "3rdparty/SDL2/include/SDL_error.h",
+ MAME_DIR .. "3rdparty/SDL2/include/SDL_events.h",
+ MAME_DIR .. "3rdparty/SDL2/include/SDL_filesystem.h",
+ MAME_DIR .. "3rdparty/SDL2/include/SDL_gamecontroller.h",
+ MAME_DIR .. "3rdparty/SDL2/include/SDL_gesture.h",
+ MAME_DIR .. "3rdparty/SDL2/include/SDL_haptic.h",
+ MAME_DIR .. "3rdparty/SDL2/include/SDL_hints.h",
+ MAME_DIR .. "3rdparty/SDL2/include/SDL_joystick.h",
+ MAME_DIR .. "3rdparty/SDL2/include/SDL_keyboard.h",
+ MAME_DIR .. "3rdparty/SDL2/include/SDL_keycode.h",
+ MAME_DIR .. "3rdparty/SDL2/include/SDL_loadso.h",
+ MAME_DIR .. "3rdparty/SDL2/include/SDL_log.h",
+ MAME_DIR .. "3rdparty/SDL2/include/SDL_main.h",
+ MAME_DIR .. "3rdparty/SDL2/include/SDL_messagebox.h",
+ MAME_DIR .. "3rdparty/SDL2/include/SDL_mouse.h",
+ MAME_DIR .. "3rdparty/SDL2/include/SDL_mutex.h",
+ MAME_DIR .. "3rdparty/SDL2/include/SDL_name.h",
+ MAME_DIR .. "3rdparty/SDL2/include/SDL_opengl.h",
+ MAME_DIR .. "3rdparty/SDL2/include/SDL_opengl_glext.h",
+ MAME_DIR .. "3rdparty/SDL2/include/SDL_opengles.h",
+ MAME_DIR .. "3rdparty/SDL2/include/SDL_opengles2.h",
+ MAME_DIR .. "3rdparty/SDL2/include/SDL_opengles2_gl2.h",
+ MAME_DIR .. "3rdparty/SDL2/include/SDL_opengles2_gl2ext.h",
+ MAME_DIR .. "3rdparty/SDL2/include/SDL_opengles2_gl2platform.h",
+ MAME_DIR .. "3rdparty/SDL2/include/SDL_opengles2_khrplatform.h",
+ MAME_DIR .. "3rdparty/SDL2/include/SDL_pixels.h",
+ MAME_DIR .. "3rdparty/SDL2/include/SDL_platform.h",
+ MAME_DIR .. "3rdparty/SDL2/include/SDL_power.h",
+ MAME_DIR .. "3rdparty/SDL2/include/SDL_quit.h",
+ MAME_DIR .. "3rdparty/SDL2/include/SDL_rect.h",
+ MAME_DIR .. "3rdparty/SDL2/include/SDL_render.h",
+ MAME_DIR .. "3rdparty/SDL2/include/SDL_revision.h",
+ MAME_DIR .. "3rdparty/SDL2/include/SDL_rwops.h",
+ MAME_DIR .. "3rdparty/SDL2/include/SDL_scancode.h",
+ MAME_DIR .. "3rdparty/SDL2/include/SDL_shape.h",
+ MAME_DIR .. "3rdparty/SDL2/include/SDL_stdinc.h",
+ MAME_DIR .. "3rdparty/SDL2/include/SDL_surface.h",
+ MAME_DIR .. "3rdparty/SDL2/include/SDL_system.h",
+ MAME_DIR .. "3rdparty/SDL2/include/SDL_syswm.h",
+ MAME_DIR .. "3rdparty/SDL2/include/SDL_test.h",
+ MAME_DIR .. "3rdparty/SDL2/include/SDL_test_assert.h",
+ MAME_DIR .. "3rdparty/SDL2/include/SDL_test_common.h",
+ MAME_DIR .. "3rdparty/SDL2/include/SDL_test_compare.h",
+ MAME_DIR .. "3rdparty/SDL2/include/SDL_test_crc32.h",
+ MAME_DIR .. "3rdparty/SDL2/include/SDL_test_font.h",
+ MAME_DIR .. "3rdparty/SDL2/include/SDL_test_fuzzer.h",
+ MAME_DIR .. "3rdparty/SDL2/include/SDL_test_harness.h",
+ MAME_DIR .. "3rdparty/SDL2/include/SDL_test_images.h",
+ MAME_DIR .. "3rdparty/SDL2/include/SDL_test_log.h",
+ MAME_DIR .. "3rdparty/SDL2/include/SDL_test_md5.h",
+ MAME_DIR .. "3rdparty/SDL2/include/SDL_test_random.h",
+ MAME_DIR .. "3rdparty/SDL2/include/SDL_thread.h",
+ MAME_DIR .. "3rdparty/SDL2/include/SDL_timer.h",
+ MAME_DIR .. "3rdparty/SDL2/include/SDL_touch.h",
+ MAME_DIR .. "3rdparty/SDL2/include/SDL_types.h",
+ MAME_DIR .. "3rdparty/SDL2/include/SDL_version.h",
+ MAME_DIR .. "3rdparty/SDL2/include/SDL_video.h",
+
+
+ MAME_DIR .. "3rdparty/SDL2/src/atomic/SDL_atomic.c",
+ MAME_DIR .. "3rdparty/SDL2/src/atomic/SDL_spinlock.c",
+ MAME_DIR .. "3rdparty/SDL2/src/audio/disk/SDL_diskaudio.c",
+ MAME_DIR .. "3rdparty/SDL2/src/audio/disk/SDL_diskaudio.h",
+ MAME_DIR .. "3rdparty/SDL2/src/audio/dummy/SDL_dummyaudio.c",
+ MAME_DIR .. "3rdparty/SDL2/src/audio/dummy/SDL_dummyaudio.h",
+ MAME_DIR .. "3rdparty/SDL2/src/audio/SDL_audio.c",
+ MAME_DIR .. "3rdparty/SDL2/src/audio/SDL_audio_c.h",
+ MAME_DIR .. "3rdparty/SDL2/src/audio/SDL_audiocvt.c",
+ MAME_DIR .. "3rdparty/SDL2/src/audio/SDL_audiodev.c",
+ MAME_DIR .. "3rdparty/SDL2/src/audio/SDL_audiodev_c.h",
+ MAME_DIR .. "3rdparty/SDL2/src/audio/SDL_audiotypecvt.c",
+ MAME_DIR .. "3rdparty/SDL2/src/audio/SDL_mixer.c",
+ MAME_DIR .. "3rdparty/SDL2/src/audio/SDL_sysaudio.h",
+ MAME_DIR .. "3rdparty/SDL2/src/audio/SDL_wave.c",
+ MAME_DIR .. "3rdparty/SDL2/src/audio/SDL_wave.h",
+ MAME_DIR .. "3rdparty/SDL2/src/cpuinfo/SDL_cpuinfo.c",
+ MAME_DIR .. "3rdparty/SDL2/src/dynapi/SDL_dynapi.c",
+ MAME_DIR .. "3rdparty/SDL2/src/dynapi/SDL_dynapi.h",
+ MAME_DIR .. "3rdparty/SDL2/src/dynapi/SDL_dynapi_overrides.h",
+ MAME_DIR .. "3rdparty/SDL2/src/dynapi/SDL_dynapi_procs.h",
+ MAME_DIR .. "3rdparty/SDL2/src/events/blank_cursor.h",
+ MAME_DIR .. "3rdparty/SDL2/src/events/default_cursor.h",
+ MAME_DIR .. "3rdparty/SDL2/src/events/SDL_clipboardevents.c",
+ MAME_DIR .. "3rdparty/SDL2/src/events/SDL_clipboardevents_c.h",
+ MAME_DIR .. "3rdparty/SDL2/src/events/SDL_dropevents.c",
+ MAME_DIR .. "3rdparty/SDL2/src/events/SDL_dropevents_c.h",
+ MAME_DIR .. "3rdparty/SDL2/src/events/SDL_events.c",
+ MAME_DIR .. "3rdparty/SDL2/src/events/SDL_events_c.h",
+ MAME_DIR .. "3rdparty/SDL2/src/events/SDL_gesture.c",
+ MAME_DIR .. "3rdparty/SDL2/src/events/SDL_gesture_c.h",
+ MAME_DIR .. "3rdparty/SDL2/src/events/SDL_keyboard.c",
+ MAME_DIR .. "3rdparty/SDL2/src/events/SDL_keyboard_c.h",
+ MAME_DIR .. "3rdparty/SDL2/src/events/SDL_mouse.c",
+ MAME_DIR .. "3rdparty/SDL2/src/events/SDL_mouse_c.h",
+ MAME_DIR .. "3rdparty/SDL2/src/events/SDL_quit.c",
+ MAME_DIR .. "3rdparty/SDL2/src/events/SDL_sysevents.h",
+ MAME_DIR .. "3rdparty/SDL2/src/events/SDL_touch.c",
+ MAME_DIR .. "3rdparty/SDL2/src/events/SDL_touch_c.h",
+ MAME_DIR .. "3rdparty/SDL2/src/events/SDL_windowevents.c",
+ MAME_DIR .. "3rdparty/SDL2/src/events/SDL_windowevents_c.h",
+ MAME_DIR .. "3rdparty/SDL2/src/file/SDL_rwops.c",
+ MAME_DIR .. "3rdparty/SDL2/src/haptic/SDL_haptic.c",
+ MAME_DIR .. "3rdparty/SDL2/src/haptic/SDL_syshaptic.h",
+ MAME_DIR .. "3rdparty/SDL2/src/joystick/SDL_gamecontroller.c",
+ MAME_DIR .. "3rdparty/SDL2/src/joystick/SDL_joystick.c",
+ MAME_DIR .. "3rdparty/SDL2/src/joystick/SDL_joystick_c.h",
+ MAME_DIR .. "3rdparty/SDL2/src/joystick/SDL_sysjoystick.h",
+ MAME_DIR .. "3rdparty/SDL2/src/loadso/windows/SDL_sysloadso.c",
+ MAME_DIR .. "3rdparty/SDL2/src/power/SDL_power.c",
+ MAME_DIR .. "3rdparty/SDL2/src/power/windows/SDL_syspower.c",
+ MAME_DIR .. "3rdparty/SDL2/src/render/direct3d/SDL_render_d3d.c",
+ MAME_DIR .. "3rdparty/SDL2/src/render/direct3d11/SDL_render_d3d11.c",
+ MAME_DIR .. "3rdparty/SDL2/src/render/mmx.h",
+ MAME_DIR .. "3rdparty/SDL2/src/render/opengl/SDL_render_gl.c",
+ MAME_DIR .. "3rdparty/SDL2/src/render/opengl/SDL_shaders_gl.c",
+ MAME_DIR .. "3rdparty/SDL2/src/render/opengl/SDL_shaders_gl.h",
+ MAME_DIR .. "3rdparty/SDL2/src/render/opengles2/SDL_render_gles2.c",
+ MAME_DIR .. "3rdparty/SDL2/src/render/opengles2/SDL_shaders_gles2.c",
+ MAME_DIR .. "3rdparty/SDL2/src/render/SDL_d3dmath.c",
+ MAME_DIR .. "3rdparty/SDL2/src/render/SDL_d3dmath.h",
+ MAME_DIR .. "3rdparty/SDL2/src/render/SDL_render.c",
+ MAME_DIR .. "3rdparty/SDL2/src/render/SDL_sysrender.h",
+ MAME_DIR .. "3rdparty/SDL2/src/render/SDL_yuv_mmx.c",
+ MAME_DIR .. "3rdparty/SDL2/src/render/SDL_yuv_sw.c",
+ MAME_DIR .. "3rdparty/SDL2/src/render/SDL_yuv_sw_c.h",
+ MAME_DIR .. "3rdparty/SDL2/src/render/software/SDL_blendfillrect.c",
+ MAME_DIR .. "3rdparty/SDL2/src/render/software/SDL_blendfillrect.h",
+ MAME_DIR .. "3rdparty/SDL2/src/render/software/SDL_blendline.c",
+ MAME_DIR .. "3rdparty/SDL2/src/render/software/SDL_blendline.h",
+ MAME_DIR .. "3rdparty/SDL2/src/render/software/SDL_blendpoint.c",
+ MAME_DIR .. "3rdparty/SDL2/src/render/software/SDL_blendpoint.h",
+ MAME_DIR .. "3rdparty/SDL2/src/render/software/SDL_draw.h",
+ MAME_DIR .. "3rdparty/SDL2/src/render/software/SDL_drawline.c",
+ MAME_DIR .. "3rdparty/SDL2/src/render/software/SDL_drawline.h",
+ MAME_DIR .. "3rdparty/SDL2/src/render/software/SDL_drawpoint.c",
+ MAME_DIR .. "3rdparty/SDL2/src/render/software/SDL_drawpoint.h",
+ MAME_DIR .. "3rdparty/SDL2/src/render/software/SDL_render_sw.c",
+ MAME_DIR .. "3rdparty/SDL2/src/render/software/SDL_render_sw_c.h",
+ MAME_DIR .. "3rdparty/SDL2/src/render/software/SDL_rotate.c",
+ MAME_DIR .. "3rdparty/SDL2/src/render/software/SDL_rotate.h",
+ MAME_DIR .. "3rdparty/SDL2/src/SDL.c",
+ MAME_DIR .. "3rdparty/SDL2/src/SDL_assert.c",
+ MAME_DIR .. "3rdparty/SDL2/src/SDL_error.c",
+ MAME_DIR .. "3rdparty/SDL2/src/SDL_error_c.h",
+ MAME_DIR .. "3rdparty/SDL2/src/SDL_hints.c",
+ MAME_DIR .. "3rdparty/SDL2/src/SDL_hints_c.h",
+ MAME_DIR .. "3rdparty/SDL2/src/SDL_log.c",
+ MAME_DIR .. "3rdparty/SDL2/src/stdlib/SDL_getenv.c",
+ MAME_DIR .. "3rdparty/SDL2/src/stdlib/SDL_iconv.c",
+ MAME_DIR .. "3rdparty/SDL2/src/stdlib/SDL_malloc.c",
+ MAME_DIR .. "3rdparty/SDL2/src/stdlib/SDL_qsort.c",
+ MAME_DIR .. "3rdparty/SDL2/src/stdlib/SDL_stdlib.c",
+ MAME_DIR .. "3rdparty/SDL2/src/stdlib/SDL_string.c",
+ MAME_DIR .. "3rdparty/SDL2/src/thread/SDL_systhread.h",
+ MAME_DIR .. "3rdparty/SDL2/src/thread/SDL_thread.c",
+ MAME_DIR .. "3rdparty/SDL2/src/thread/SDL_thread_c.h",
+ MAME_DIR .. "3rdparty/SDL2/src/timer/SDL_systimer.h",
+ MAME_DIR .. "3rdparty/SDL2/src/timer/SDL_timer.c",
+ MAME_DIR .. "3rdparty/SDL2/src/timer/SDL_timer_c.h",
+ MAME_DIR .. "3rdparty/SDL2/src/video/dummy/SDL_nullevents.c",
+ MAME_DIR .. "3rdparty/SDL2/src/video/dummy/SDL_nullevents_c.h",
+ MAME_DIR .. "3rdparty/SDL2/src/video/dummy/SDL_nullframebuffer.c",
+ MAME_DIR .. "3rdparty/SDL2/src/video/dummy/SDL_nullframebuffer_c.h",
+ MAME_DIR .. "3rdparty/SDL2/src/video/dummy/SDL_nullvideo.c",
+ MAME_DIR .. "3rdparty/SDL2/src/video/dummy/SDL_nullvideo.h",
+ MAME_DIR .. "3rdparty/SDL2/src/video/SDL_blit.c",
+ MAME_DIR .. "3rdparty/SDL2/src/video/SDL_blit.h",
+ MAME_DIR .. "3rdparty/SDL2/src/video/SDL_blit_0.c",
+ MAME_DIR .. "3rdparty/SDL2/src/video/SDL_blit_1.c",
+ MAME_DIR .. "3rdparty/SDL2/src/video/SDL_blit_A.c",
+ MAME_DIR .. "3rdparty/SDL2/src/video/SDL_blit_auto.c",
+ MAME_DIR .. "3rdparty/SDL2/src/video/SDL_blit_auto.h",
+ MAME_DIR .. "3rdparty/SDL2/src/video/SDL_blit_copy.c",
+ MAME_DIR .. "3rdparty/SDL2/src/video/SDL_blit_copy.h",
+ MAME_DIR .. "3rdparty/SDL2/src/video/SDL_blit_N.c",
+ MAME_DIR .. "3rdparty/SDL2/src/video/SDL_blit_slow.c",
+ MAME_DIR .. "3rdparty/SDL2/src/video/SDL_blit_slow.h",
+ MAME_DIR .. "3rdparty/SDL2/src/video/SDL_bmp.c",
+ MAME_DIR .. "3rdparty/SDL2/src/video/SDL_clipboard.c",
+ MAME_DIR .. "3rdparty/SDL2/src/video/SDL_egl.c",
+ MAME_DIR .. "3rdparty/SDL2/src/video/SDL_fillrect.c",
+ MAME_DIR .. "3rdparty/SDL2/src/video/SDL_glesfuncs.h",
+ MAME_DIR .. "3rdparty/SDL2/src/video/SDL_glfuncs.h",
+ MAME_DIR .. "3rdparty/SDL2/src/video/SDL_pixels.c",
+ MAME_DIR .. "3rdparty/SDL2/src/video/SDL_pixels_c.h",
+ MAME_DIR .. "3rdparty/SDL2/src/video/SDL_rect.c",
+ MAME_DIR .. "3rdparty/SDL2/src/video/SDL_rect_c.h",
+ MAME_DIR .. "3rdparty/SDL2/src/video/SDL_RLEaccel.c",
+ MAME_DIR .. "3rdparty/SDL2/src/video/SDL_RLEaccel_c.h",
+ MAME_DIR .. "3rdparty/SDL2/src/video/SDL_shape.c",
+ MAME_DIR .. "3rdparty/SDL2/src/video/SDL_shape_internals.h",
+ MAME_DIR .. "3rdparty/SDL2/src/video/SDL_stretch.c",
+ MAME_DIR .. "3rdparty/SDL2/src/video/SDL_surface.c",
+ MAME_DIR .. "3rdparty/SDL2/src/video/SDL_sysvideo.h",
+ MAME_DIR .. "3rdparty/SDL2/src/video/SDL_video.c",
+
+ }
+ if _OPTIONS["targetos"]=="macosx" or _OPTIONS["targetos"]=="windows" then
+ files {
+ MAME_DIR .. "3rdparty/SDL2/src/libm/e_atan2.c",
+ MAME_DIR .. "3rdparty/SDL2/src/libm/e_log.c",
+ MAME_DIR .. "3rdparty/SDL2/src/libm/e_pow.c",
+ MAME_DIR .. "3rdparty/SDL2/src/libm/e_rem_pio2.c",
+ MAME_DIR .. "3rdparty/SDL2/src/libm/e_sqrt.c",
+ MAME_DIR .. "3rdparty/SDL2/src/libm/k_cos.c",
+ MAME_DIR .. "3rdparty/SDL2/src/libm/k_rem_pio2.c",
+ MAME_DIR .. "3rdparty/SDL2/src/libm/k_sin.c",
+ MAME_DIR .. "3rdparty/SDL2/src/libm/k_tan.c",
+ MAME_DIR .. "3rdparty/SDL2/src/libm/math.h",
+ MAME_DIR .. "3rdparty/SDL2/src/libm/math_private.h",
+ MAME_DIR .. "3rdparty/SDL2/src/libm/s_atan.c",
+ MAME_DIR .. "3rdparty/SDL2/src/libm/s_copysign.c",
+ MAME_DIR .. "3rdparty/SDL2/src/libm/s_cos.c",
+ MAME_DIR .. "3rdparty/SDL2/src/libm/s_fabs.c",
+ MAME_DIR .. "3rdparty/SDL2/src/libm/s_floor.c",
+ MAME_DIR .. "3rdparty/SDL2/src/libm/s_scalbn.c",
+ MAME_DIR .. "3rdparty/SDL2/src/libm/s_sin.c",
+ MAME_DIR .. "3rdparty/SDL2/src/libm/s_tan.c",
+ }
+ end
+ if _OPTIONS["targetos"]~="windows" then
+ files {
+ MAME_DIR .. "3rdparty/SDL2/src/render/opengles/SDL_render_gles.c",
+ MAME_DIR .. "3rdparty/SDL2/src/render/opengles/SDL_glesfuncs.h",
+ }
+ end
+
+ if _OPTIONS["targetos"]=="android" then
+ files {
+ MAME_DIR .. "3rdparty/SDL2/src/audio/android/SDL_androidaudio.c",
+ MAME_DIR .. "3rdparty/SDL2/src/audio/android/SDL_androidaudio.h",
+ MAME_DIR .. "3rdparty/SDL2/src/core/android/SDL_android.c",
+ MAME_DIR .. "3rdparty/SDL2/src/core/android/SDL_android.h",
+ MAME_DIR .. "3rdparty/SDL2/src/filesystem/android/SDL_sysfilesystem.c",
+ MAME_DIR .. "3rdparty/SDL2/src/haptic/dummy/SDL_syshaptic.c",
+ MAME_DIR .. "3rdparty/SDL2/src/joystick/android/SDL_sysjoystick.c",
+ MAME_DIR .. "3rdparty/SDL2/src/loadso/dlopen/SDL_sysloadso.c",
+ MAME_DIR .. "3rdparty/SDL2/src/power/android/SDL_syspower.c",
+ MAME_DIR .. "3rdparty/SDL2/src/thread/pthread/SDL_syscond.c",
+ MAME_DIR .. "3rdparty/SDL2/src/thread/pthread/SDL_sysmutex.c",
+ MAME_DIR .. "3rdparty/SDL2/src/thread/pthread/SDL_sysmutex_c.h",
+ MAME_DIR .. "3rdparty/SDL2/src/thread/pthread/SDL_syssem.c",
+ MAME_DIR .. "3rdparty/SDL2/src/thread/pthread/SDL_systhread.c",
+ MAME_DIR .. "3rdparty/SDL2/src/thread/pthread/SDL_systhread_c.h",
+ MAME_DIR .. "3rdparty/SDL2/src/thread/pthread/SDL_systls.c",
+ MAME_DIR .. "3rdparty/SDL2/src/timer/unix/SDL_systimer.c",
+ MAME_DIR .. "3rdparty/SDL2/src/timer/unix/SDL_systimer_c.h",
+ MAME_DIR .. "3rdparty/SDL2/src/video/android/SDL_androidclipboard.c",
+ MAME_DIR .. "3rdparty/SDL2/src/video/android/SDL_androidclipboard.h",
+ MAME_DIR .. "3rdparty/SDL2/src/video/android/SDL_androidevents.c",
+ MAME_DIR .. "3rdparty/SDL2/src/video/android/SDL_androidevents.h",
+ MAME_DIR .. "3rdparty/SDL2/src/video/android/SDL_androidgl.c",
+ MAME_DIR .. "3rdparty/SDL2/src/video/android/SDL_androidkeyboard.c",
+ MAME_DIR .. "3rdparty/SDL2/src/video/android/SDL_androidkeyboard.h",
+ MAME_DIR .. "3rdparty/SDL2/src/video/android/SDL_androidmessagebox.c",
+ MAME_DIR .. "3rdparty/SDL2/src/video/android/SDL_androidmessagebox.h",
+ MAME_DIR .. "3rdparty/SDL2/src/video/android/SDL_androidmouse.c",
+ MAME_DIR .. "3rdparty/SDL2/src/video/android/SDL_androidmouse.h",
+ MAME_DIR .. "3rdparty/SDL2/src/video/android/SDL_androidtouch.c",
+ MAME_DIR .. "3rdparty/SDL2/src/video/android/SDL_androidtouch.h",
+ MAME_DIR .. "3rdparty/SDL2/src/video/android/SDL_androidvideo.c",
+ MAME_DIR .. "3rdparty/SDL2/src/video/android/SDL_androidvideo.h",
+ MAME_DIR .. "3rdparty/SDL2/src/video/android/SDL_androidwindow.c",
+ MAME_DIR .. "3rdparty/SDL2/src/video/android/SDL_androidwindow.h",
+ }
+ end
+
+ if _OPTIONS["targetos"]=="macosx" then
+ files {
+ MAME_DIR .. "3rdparty/SDL2/src/audio/coreaudio/SDL_coreaudio.m",
+ MAME_DIR .. "3rdparty/SDL2/src/audio/coreaudio/SDL_coreaudio.h",
+ MAME_DIR .. "3rdparty/SDL2/src/file/cocoa/SDL_rwopsbundlesupport.m",
+ MAME_DIR .. "3rdparty/SDL2/src/file/cocoa/SDL_rwopsbundlesupport.h",
+ MAME_DIR .. "3rdparty/SDL2/src/filesystem/cocoa/SDL_sysfilesystem.m",
+ MAME_DIR .. "3rdparty/SDL2/src/haptic/darwin/SDL_syshaptic.c",
+ MAME_DIR .. "3rdparty/SDL2/src/haptic/darwin/SDL_syshaptic_c.h",
+ MAME_DIR .. "3rdparty/SDL2/src/joystick/darwin/SDL_sysjoystick.c",
+ MAME_DIR .. "3rdparty/SDL2/src/joystick/darwin/SDL_sysjoystick_c.h",
+ MAME_DIR .. "3rdparty/SDL2/src/loadso/dlopen/SDL_sysloadso.c",
+ MAME_DIR .. "3rdparty/SDL2/src/power/macosx/SDL_syspower.c",
+ MAME_DIR .. "3rdparty/SDL2/src/thread/pthread/SDL_syscond.c",
+ MAME_DIR .. "3rdparty/SDL2/src/thread/pthread/SDL_sysmutex.c",
+ MAME_DIR .. "3rdparty/SDL2/src/thread/pthread/SDL_sysmutex_c.h",
+ MAME_DIR .. "3rdparty/SDL2/src/thread/pthread/SDL_syssem.c",
+ MAME_DIR .. "3rdparty/SDL2/src/thread/pthread/SDL_systhread.c",
+ MAME_DIR .. "3rdparty/SDL2/src/thread/pthread/SDL_systhread_c.h",
+ MAME_DIR .. "3rdparty/SDL2/src/thread/pthread/SDL_systls.c",
+ MAME_DIR .. "3rdparty/SDL2/src/timer/unix/SDL_systimer.c",
+ MAME_DIR .. "3rdparty/SDL2/src/video/cocoa/SDL_cocoaclipboard.m",
+ MAME_DIR .. "3rdparty/SDL2/src/video/cocoa/SDL_cocoaclipboard.h",
+ MAME_DIR .. "3rdparty/SDL2/src/video/cocoa/SDL_cocoaevents.m",
+ MAME_DIR .. "3rdparty/SDL2/src/video/cocoa/SDL_cocoaevents.h",
+ MAME_DIR .. "3rdparty/SDL2/src/video/cocoa/SDL_cocoakeyboard.m",
+ MAME_DIR .. "3rdparty/SDL2/src/video/cocoa/SDL_cocoakeyboard.h",
+ MAME_DIR .. "3rdparty/SDL2/src/video/cocoa/SDL_cocoamessagebox.m",
+ MAME_DIR .. "3rdparty/SDL2/src/video/cocoa/SDL_cocoamessagebox.h",
+ MAME_DIR .. "3rdparty/SDL2/src/video/cocoa/SDL_cocoamodes.m",
+ MAME_DIR .. "3rdparty/SDL2/src/video/cocoa/SDL_cocoamodes.h",
+ MAME_DIR .. "3rdparty/SDL2/src/video/cocoa/SDL_cocoamouse.m",
+ MAME_DIR .. "3rdparty/SDL2/src/video/cocoa/SDL_cocoamouse.h",
+ MAME_DIR .. "3rdparty/SDL2/src/video/cocoa/SDL_cocoamousetap.m",
+ MAME_DIR .. "3rdparty/SDL2/src/video/cocoa/SDL_cocoamousetap.h",
+ MAME_DIR .. "3rdparty/SDL2/src/video/cocoa/SDL_cocoaopengl.m",
+ MAME_DIR .. "3rdparty/SDL2/src/video/cocoa/SDL_cocoaopengl.h",
+ MAME_DIR .. "3rdparty/SDL2/src/video/cocoa/SDL_cocoashape.m",
+ MAME_DIR .. "3rdparty/SDL2/src/video/cocoa/SDL_cocoashape.h",
+ MAME_DIR .. "3rdparty/SDL2/src/video/cocoa/SDL_cocoavideo.m",
+ MAME_DIR .. "3rdparty/SDL2/src/video/cocoa/SDL_cocoavideo.h",
+ MAME_DIR .. "3rdparty/SDL2/src/video/cocoa/SDL_cocoawindow.m",
+ MAME_DIR .. "3rdparty/SDL2/src/video/cocoa/SDL_cocoawindow.h",
+
+ }
+ end
+
+ if _OPTIONS["targetos"]=="windows" then
+ files {
+ MAME_DIR .. "3rdparty/SDL2/src/thread/generic/SDL_syscond.c",
+ MAME_DIR .. "3rdparty/SDL2/src/audio/directsound/SDL_directsound.c",
+ MAME_DIR .. "3rdparty/SDL2/src/audio/directsound/SDL_directsound.h",
+ MAME_DIR .. "3rdparty/SDL2/src/audio/winmm/SDL_winmm.c",
+ MAME_DIR .. "3rdparty/SDL2/src/audio/winmm/SDL_winmm.h",
+ MAME_DIR .. "3rdparty/SDL2/src/core/windows/SDL_directx.h",
+ MAME_DIR .. "3rdparty/SDL2/src/core/windows/SDL_windows.c",
+ MAME_DIR .. "3rdparty/SDL2/src/core/windows/SDL_windows.h",
+ MAME_DIR .. "3rdparty/SDL2/src/core/windows/SDL_xinput.c",
+ MAME_DIR .. "3rdparty/SDL2/src/core/windows/SDL_xinput.h",
+ MAME_DIR .. "3rdparty/SDL2/src/filesystem/windows/SDL_sysfilesystem.c",
+ MAME_DIR .. "3rdparty/SDL2/src/haptic/windows/SDL_dinputhaptic.c",
+ MAME_DIR .. "3rdparty/SDL2/src/haptic/windows/SDL_dinputhaptic_c.h",
+ MAME_DIR .. "3rdparty/SDL2/src/haptic/windows/SDL_windowshaptic.c",
+ MAME_DIR .. "3rdparty/SDL2/src/haptic/windows/SDL_windowshaptic_c.h",
+ MAME_DIR .. "3rdparty/SDL2/src/haptic/windows/SDL_xinputhaptic.c",
+ MAME_DIR .. "3rdparty/SDL2/src/haptic/windows/SDL_xinputhaptic_c.h",
+ MAME_DIR .. "3rdparty/SDL2/src/joystick/windows/SDL_dinputjoystick.c",
+ MAME_DIR .. "3rdparty/SDL2/src/joystick/windows/SDL_dinputjoystick_c.h",
+ MAME_DIR .. "3rdparty/SDL2/src/joystick/windows/SDL_mmjoystick.c",
+ MAME_DIR .. "3rdparty/SDL2/src/joystick/windows/SDL_windowsjoystick.c",
+ MAME_DIR .. "3rdparty/SDL2/src/joystick/windows/SDL_windowsjoystick_c.h",
+ MAME_DIR .. "3rdparty/SDL2/src/joystick/windows/SDL_xinputjoystick.c",
+ MAME_DIR .. "3rdparty/SDL2/src/joystick/windows/SDL_xinputjoystick_c.h",
+ MAME_DIR .. "3rdparty/SDL2/src/thread/windows/SDL_sysmutex.c",
+ MAME_DIR .. "3rdparty/SDL2/src/thread/windows/SDL_syssem.c",
+ MAME_DIR .. "3rdparty/SDL2/src/thread/windows/SDL_systhread.c",
+ MAME_DIR .. "3rdparty/SDL2/src/thread/windows/SDL_systhread_c.h",
+ MAME_DIR .. "3rdparty/SDL2/src/thread/windows/SDL_systls.c",
+ MAME_DIR .. "3rdparty/SDL2/src/timer/windows/SDL_systimer.c",
+ MAME_DIR .. "3rdparty/SDL2/src/video/windows/SDL_vkeys.h",
+ MAME_DIR .. "3rdparty/SDL2/src/video/windows/SDL_windowsclipboard.c",
+ MAME_DIR .. "3rdparty/SDL2/src/video/windows/SDL_windowsclipboard.h",
+ MAME_DIR .. "3rdparty/SDL2/src/video/windows/SDL_windowsevents.c",
+ MAME_DIR .. "3rdparty/SDL2/src/video/windows/SDL_windowsevents.h",
+ MAME_DIR .. "3rdparty/SDL2/src/video/windows/SDL_windowsframebuffer.c",
+ MAME_DIR .. "3rdparty/SDL2/src/video/windows/SDL_windowsframebuffer.h",
+ MAME_DIR .. "3rdparty/SDL2/src/video/windows/SDL_windowskeyboard.c",
+ MAME_DIR .. "3rdparty/SDL2/src/video/windows/SDL_windowskeyboard.h",
+ MAME_DIR .. "3rdparty/SDL2/src/video/windows/SDL_windowsmessagebox.c",
+ MAME_DIR .. "3rdparty/SDL2/src/video/windows/SDL_windowsmessagebox.h",
+ MAME_DIR .. "3rdparty/SDL2/src/video/windows/SDL_windowsmodes.c",
+ MAME_DIR .. "3rdparty/SDL2/src/video/windows/SDL_windowsmodes.h",
+ MAME_DIR .. "3rdparty/SDL2/src/video/windows/SDL_windowsmouse.c",
+ MAME_DIR .. "3rdparty/SDL2/src/video/windows/SDL_windowsmouse.h",
+ MAME_DIR .. "3rdparty/SDL2/src/video/windows/SDL_windowsopengl.c",
+ MAME_DIR .. "3rdparty/SDL2/src/video/windows/SDL_windowsopengl.h",
+ MAME_DIR .. "3rdparty/SDL2/src/video/windows/SDL_windowsopengles.c",
+ MAME_DIR .. "3rdparty/SDL2/src/video/windows/SDL_windowsshape.c",
+ MAME_DIR .. "3rdparty/SDL2/src/video/windows/SDL_windowsshape.h",
+ MAME_DIR .. "3rdparty/SDL2/src/video/windows/SDL_windowsvideo.c",
+ MAME_DIR .. "3rdparty/SDL2/src/video/windows/SDL_windowsvideo.h",
+ MAME_DIR .. "3rdparty/SDL2/src/video/windows/SDL_windowswindow.c",
+ MAME_DIR .. "3rdparty/SDL2/src/video/windows/SDL_windowswindow.h",
+ MAME_DIR .. "3rdparty/SDL2/src/video/windows/wmmsg.h",
+ MAME_DIR .. "3rdparty/SDL2/src/main/windows/version.rc",
+ }
+ end
+
+ configuration { "vs*" }
+ files {
+ MAME_DIR .. "3rdparty/SDL2/src/audio/xaudio2/SDL_xaudio2.c",
+ }
+
+ buildoptions {
+ "/wd4200", -- warning C4200: nonstandard extension used: zero-sized array in struct/union
+ "/wd4055", -- warning C4055: 'type cast': from data pointer 'void *' to function pointer 'xxx'
+ "/wd4152", -- warning C4152: nonstandard extension, function/data pointer conversion in expression
+ "/wd4057", -- warning C4057: 'function': 'xxx' differs in indirection to slightly different base types from 'xxx'
+ "/wd4701", -- warning C4701: potentially uninitialized local variable 'xxx' used
+ "/wd4204", -- warning C4204: nonstandard extension used: non-constant aggregate initializer
+ "/wd4054", -- warning C4054: 'type cast': from function pointer 'xxx' to data pointer 'xxx'
+ }
+ defines {
+ "HAVE_LIBC",
+ }
+
+ configuration { "mingw*"}
+ includedirs {
+ MAME_DIR .. "3rdparty/SDL2-override/mingw",
+ MAME_DIR .. "3rdparty/bgfx/3rdparty/khronos",
+ }
+ buildoptions_c {
+ "-Wno-undef",
+ "-Wno-format",
+ "-Wno-format-security",
+ "-Wno-strict-prototypes",
+ "-Wno-bad-function-cast",
+ "-Wno-pointer-to-int-cast",
+ "-Wno-discarded-qualifiers",
+ "-Wno-unused-but-set-variable",
+ }
+
+ configuration { "mingw-clang"}
+ buildoptions_c {
+ "-Wno-incompatible-pointer-types-discards-qualifiers"
+ }
+
+ configuration { "osx*"}
+ buildoptions {
+ "-Wno-undef",
+ }
+ buildoptions_objc {
+ "-x objective-c",
+ "-std=c99",
+ }
+
+ buildoptions_c {
+ "-Wno-bad-function-cast",
+ }
+
+ configuration { "android-*"}
+ defines {
+ "GL_GLEXT_PROTOTYPES",
+ }
+ buildoptions_c {
+ "-Wno-bad-function-cast",
+ "-Wno-incompatible-pointer-types-discards-qualifiers",
+ "-Wno-unneeded-internal-declaration",
+ "-Wno-unused-const-variable",
+ }
+
+ configuration { }
+ includedirs {
+ MAME_DIR .. "3rdparty/SDL2/include",
+ }
+
+end
+
+--------------------------------------------------
+-- linenoise-ng library
+--------------------------------------------------
+if (_OPTIONS["osd"] ~= "uwp") then
+project "linenoise-ng"
+ uuid "7320ffc8-2748-4add-8864-ae29b72a8511"
+ kind (LIBTYPE)
+
+ addprojectflags()
+
+ configuration { "vs*" }
+ buildoptions {
+ "/wd4701", -- warning C4701: potentially uninitialized local variable 'xxx' used
+ }
+
+ configuration { }
+
+ includedirs {
+ MAME_DIR .. "3rdparty/linenoise-ng/include",
+ }
+
+ files {
+ MAME_DIR .. "3rdparty/linenoise-ng/src/ConvertUTF.cpp",
+ MAME_DIR .. "3rdparty/linenoise-ng/src/linenoise.cpp",
+ MAME_DIR .. "3rdparty/linenoise-ng/src/wcwidth.cpp",
+ }
+end
+
+
+--------------------------------------------------
+-- utf8proc library objects
+--------------------------------------------------
+
+if not _OPTIONS["with-system-utf8proc"] then
+project "utf8proc"
+ uuid "1f881f09-0395-4483-ac37-2935fb092187"
+ kind "StaticLib"
+
+ defines {
+ "UTF8PROC_DLLEXPORT="
+ }
+
+ configuration "Debug"
+ defines {
+ "verbose=-1",
+ }
+
+ configuration { "gmake or ninja" }
+ buildoptions_c {
+ "-Wno-strict-prototypes",
+ }
+
+ configuration { }
+ defines {
+ "ZLIB_CONST",
+ }
+
+ files {
+ MAME_DIR .. "3rdparty/utf8proc/utf8proc.c"
+ }
+else
+links {
+ ext_lib("utf8proc"),
+}
+end
+
diff --git a/docs/release/scripts/src/benchmarks.lua b/docs/release/scripts/src/benchmarks.lua
new file mode 100644
index 00000000000..2e1f97405a2
--- /dev/null
+++ b/docs/release/scripts/src/benchmarks.lua
@@ -0,0 +1,74 @@
+-- license:BSD-3-Clause
+-- copyright-holders:MAMEdev Team
+
+---------------------------------------------------------------------------
+--
+-- benchmarks.lua
+--
+-- Rules for building benchmarks
+--
+---------------------------------------------------------------------------
+
+--------------------------------------------------
+-- Google Benchmark library objects
+--------------------------------------------------
+
+project "benchmark"
+ uuid "60a7e05c-8b4f-497c-bfda-2949a009ba0d"
+ kind "StaticLib"
+
+ configuration { }
+ defines {
+ "HAVE_STD_REGEX",
+ }
+
+ includedirs {
+ MAME_DIR .. "3rdparty/benchmark/include",
+ }
+ files {
+ MAME_DIR .. "3rdparty/benchmark/src/benchmark.cc",
+ MAME_DIR .. "3rdparty/benchmark/src/colorprint.cc",
+ MAME_DIR .. "3rdparty/benchmark/src/commandlineflags.cc",
+ MAME_DIR .. "3rdparty/benchmark/src/complexity.cc",
+ MAME_DIR .. "3rdparty/benchmark/src/console_reporter.cc",
+ MAME_DIR .. "3rdparty/benchmark/src/csv_reporter.cc",
+ MAME_DIR .. "3rdparty/benchmark/src/json_reporter.cc",
+ MAME_DIR .. "3rdparty/benchmark/src/reporter.cc",
+ MAME_DIR .. "3rdparty/benchmark/src/sleep.cc",
+ MAME_DIR .. "3rdparty/benchmark/src/string_util.cc",
+ MAME_DIR .. "3rdparty/benchmark/src/sysinfo.cc",
+ MAME_DIR .. "3rdparty/benchmark/src/timers.cc",
+ MAME_DIR .. "3rdparty/benchmark/src/re_std.cc",
+ }
+
+
+
+project("benchmarks")
+ uuid ("a9750a48-d283-4a6d-b126-31c7ce049af1")
+ kind "ConsoleApp"
+
+ flags {
+ "Symbols", -- always include minimum symbols for executables
+ }
+
+ if _OPTIONS["SEPARATE_BIN"]~="1" then
+ targetdir(MAME_DIR)
+ end
+
+ configuration { }
+
+ links {
+ "benchmark",
+ }
+
+ includedirs {
+ MAME_DIR .. "3rdparty/benchmark/include",
+ MAME_DIR .. "src/osd",
+ }
+
+ files {
+ MAME_DIR .. "benchmarks/main.cpp",
+ MAME_DIR .. "benchmarks/eminline_native.cpp",
+ MAME_DIR .. "benchmarks/eminline_noasm.cpp",
+ }
+
diff --git a/docs/release/scripts/src/bus.lua b/docs/release/scripts/src/bus.lua
new file mode 100644
index 00000000000..289a4417ee8
--- /dev/null
+++ b/docs/release/scripts/src/bus.lua
@@ -0,0 +1,3055 @@
+-- license:BSD-3-Clause
+-- copyright-holders:MAMEdev Team
+
+---------------------------------------------------------------------------
+--
+-- bus.lua
+--
+-- Rules for building bus cores
+--
+---------------------------------------------------------------------------
+
+-------------------------------------------------
+--
+--@src/devices/bus/a7800/a78_slot.h,BUSES["A7800"] = true
+---------------------------------------------------
+
+if (BUSES["A7800"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/a7800/a78_slot.cpp",
+ MAME_DIR .. "src/devices/bus/a7800/a78_slot.h",
+ MAME_DIR .. "src/devices/bus/a7800/a78_carts.h",
+ MAME_DIR .. "src/devices/bus/a7800/rom.cpp",
+ MAME_DIR .. "src/devices/bus/a7800/rom.h",
+ MAME_DIR .. "src/devices/bus/a7800/hiscore.cpp",
+ MAME_DIR .. "src/devices/bus/a7800/hiscore.h",
+ MAME_DIR .. "src/devices/bus/a7800/xboard.cpp",
+ MAME_DIR .. "src/devices/bus/a7800/xboard.h",
+ MAME_DIR .. "src/devices/bus/a7800/cpuwiz.cpp",
+ MAME_DIR .. "src/devices/bus/a7800/cpuwiz.h",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/bus/a800/a800_slot.h,BUSES["A800"] = true
+---------------------------------------------------
+
+if (BUSES["A800"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/a800/a8sio.cpp",
+ MAME_DIR .. "src/devices/bus/a800/a8sio.h",
+ MAME_DIR .. "src/devices/bus/a800/cassette.cpp",
+ MAME_DIR .. "src/devices/bus/a800/cassette.h",
+ MAME_DIR .. "src/devices/bus/a800/a800_slot.cpp",
+ MAME_DIR .. "src/devices/bus/a800/a800_slot.h",
+ MAME_DIR .. "src/devices/bus/a800/a800_carts.h",
+ MAME_DIR .. "src/devices/bus/a800/rom.cpp",
+ MAME_DIR .. "src/devices/bus/a800/rom.h",
+ MAME_DIR .. "src/devices/bus/a800/oss.cpp",
+ MAME_DIR .. "src/devices/bus/a800/oss.h",
+ MAME_DIR .. "src/devices/bus/a800/sparta.cpp",
+ MAME_DIR .. "src/devices/bus/a800/sparta.h",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/bus/abcbus/abcbus.h,BUSES["ABCBUS"] = true
+---------------------------------------------------
+
+if (BUSES["ABCBUS"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/abcbus/abcbus.cpp",
+ MAME_DIR .. "src/devices/bus/abcbus/abcbus.h",
+ MAME_DIR .. "src/devices/bus/abcbus/abc890.cpp",
+ MAME_DIR .. "src/devices/bus/abcbus/abc890.h",
+ MAME_DIR .. "src/devices/bus/abcbus/fd2.cpp",
+ MAME_DIR .. "src/devices/bus/abcbus/fd2.h",
+ MAME_DIR .. "src/devices/bus/abcbus/hdc.cpp",
+ MAME_DIR .. "src/devices/bus/abcbus/hdc.h",
+ MAME_DIR .. "src/devices/bus/abcbus/lux10828.cpp",
+ MAME_DIR .. "src/devices/bus/abcbus/lux10828.h",
+ MAME_DIR .. "src/devices/bus/abcbus/lux21046.cpp",
+ MAME_DIR .. "src/devices/bus/abcbus/lux21046.h",
+ MAME_DIR .. "src/devices/bus/abcbus/lux21056.cpp",
+ MAME_DIR .. "src/devices/bus/abcbus/lux21056.h",
+ MAME_DIR .. "src/devices/bus/abcbus/lux4105.cpp",
+ MAME_DIR .. "src/devices/bus/abcbus/lux4105.h",
+ MAME_DIR .. "src/devices/bus/abcbus/memcard.cpp",
+ MAME_DIR .. "src/devices/bus/abcbus/memcard.h",
+ MAME_DIR .. "src/devices/bus/abcbus/ram.cpp",
+ MAME_DIR .. "src/devices/bus/abcbus/ram.h",
+ MAME_DIR .. "src/devices/bus/abcbus/sio.cpp",
+ MAME_DIR .. "src/devices/bus/abcbus/sio.h",
+ MAME_DIR .. "src/devices/bus/abcbus/slutprov.cpp",
+ MAME_DIR .. "src/devices/bus/abcbus/slutprov.h",
+ MAME_DIR .. "src/devices/bus/abcbus/turbo.cpp",
+ MAME_DIR .. "src/devices/bus/abcbus/turbo.h",
+ MAME_DIR .. "src/devices/bus/abcbus/uni800.cpp",
+ MAME_DIR .. "src/devices/bus/abcbus/uni800.h",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/bus/adam/exp.h,BUSES["ADAM"] = true
+---------------------------------------------------
+
+if (BUSES["ADAM"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/adam/exp.cpp",
+ MAME_DIR .. "src/devices/bus/adam/exp.h",
+ MAME_DIR .. "src/devices/bus/adam/adamlink.cpp",
+ MAME_DIR .. "src/devices/bus/adam/adamlink.h",
+ MAME_DIR .. "src/devices/bus/adam/ide.cpp",
+ MAME_DIR .. "src/devices/bus/adam/ide.h",
+ MAME_DIR .. "src/devices/bus/adam/ram.cpp",
+ MAME_DIR .. "src/devices/bus/adam/ram.h",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/bus/adamnet/adamnet.h,BUSES["ADAMNET"] = true
+---------------------------------------------------
+
+if (BUSES["ADAMNET"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/adamnet/adamnet.cpp",
+ MAME_DIR .. "src/devices/bus/adamnet/adamnet.h",
+ MAME_DIR .. "src/devices/bus/adamnet/ddp.cpp",
+ MAME_DIR .. "src/devices/bus/adamnet/ddp.h",
+ MAME_DIR .. "src/devices/bus/adamnet/fdc.cpp",
+ MAME_DIR .. "src/devices/bus/adamnet/fdc.h",
+ MAME_DIR .. "src/devices/bus/adamnet/kb.cpp",
+ MAME_DIR .. "src/devices/bus/adamnet/kb.h",
+ MAME_DIR .. "src/devices/bus/adamnet/printer.cpp",
+ MAME_DIR .. "src/devices/bus/adamnet/printer.h",
+ MAME_DIR .. "src/devices/bus/adamnet/spi.cpp",
+ MAME_DIR .. "src/devices/bus/adamnet/spi.h",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/bus/apf/slot.h,BUSES["APF"] = true
+---------------------------------------------------
+
+if (BUSES["APF"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/apf/slot.cpp",
+ MAME_DIR .. "src/devices/bus/apf/slot.h",
+ MAME_DIR .. "src/devices/bus/apf/rom.cpp",
+ MAME_DIR .. "src/devices/bus/apf/rom.h",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/bus/apricot/expansion/expansion.h,BUSES["APRICOT_EXPANSION"] = true
+---------------------------------------------------
+
+if (BUSES["APRICOT_EXPANSION"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/apricot/expansion/expansion.cpp",
+ MAME_DIR .. "src/devices/bus/apricot/expansion/expansion.h",
+ MAME_DIR .. "src/devices/bus/apricot/expansion/cards.cpp",
+ MAME_DIR .. "src/devices/bus/apricot/expansion/cards.h",
+ MAME_DIR .. "src/devices/bus/apricot/expansion/ram.cpp",
+ MAME_DIR .. "src/devices/bus/apricot/expansion/ram.h",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/bus/apricot/keyboard/keyboard.h,BUSES["APRICOT_KEYBOARD"] = true
+---------------------------------------------------
+
+if (BUSES["APRICOT_KEYBOARD"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/apricot/keyboard/keyboard.cpp",
+ MAME_DIR .. "src/devices/bus/apricot/keyboard/keyboard.h",
+ MAME_DIR .. "src/devices/bus/apricot/keyboard/hle.cpp",
+ MAME_DIR .. "src/devices/bus/apricot/keyboard/hle.h",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/bus/arcadia/slot.h,BUSES["ARCADIA"] = true
+---------------------------------------------------
+
+if (BUSES["ARCADIA"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/arcadia/slot.cpp",
+ MAME_DIR .. "src/devices/bus/arcadia/slot.h",
+ MAME_DIR .. "src/devices/bus/arcadia/rom.cpp",
+ MAME_DIR .. "src/devices/bus/arcadia/rom.h",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/bus/astrocde/slot.h,BUSES["ASTROCADE"] = true
+---------------------------------------------------
+
+if (BUSES["ASTROCADE"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/astrocde/slot.cpp",
+ MAME_DIR .. "src/devices/bus/astrocde/slot.h",
+ MAME_DIR .. "src/devices/bus/astrocde/rom.cpp",
+ MAME_DIR .. "src/devices/bus/astrocde/rom.h",
+ MAME_DIR .. "src/devices/bus/astrocde/exp.cpp",
+ MAME_DIR .. "src/devices/bus/astrocde/exp.h",
+ MAME_DIR .. "src/devices/bus/astrocde/ram.cpp",
+ MAME_DIR .. "src/devices/bus/astrocde/ram.h",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/bus/bbc/fdc/fdc.h,BUSES["BBC_FDC"] = true
+---------------------------------------------------
+
+if (BUSES["BBC_FDC"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/bbc/fdc/fdc.cpp",
+ MAME_DIR .. "src/devices/bus/bbc/fdc/fdc.h",
+ MAME_DIR .. "src/devices/bus/bbc/fdc/acorn.cpp",
+ MAME_DIR .. "src/devices/bus/bbc/fdc/acorn.h",
+ MAME_DIR .. "src/devices/bus/bbc/fdc/cumana.cpp",
+ MAME_DIR .. "src/devices/bus/bbc/fdc/cumana.h",
+ MAME_DIR .. "src/devices/bus/bbc/fdc/opus.cpp",
+ MAME_DIR .. "src/devices/bus/bbc/fdc/opus.h",
+ MAME_DIR .. "src/devices/bus/bbc/fdc/watford.cpp",
+ MAME_DIR .. "src/devices/bus/bbc/fdc/watford.h",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/bus/bbc/analogue/analogue.h,BUSES["BBC_ANALOGUE"] = true
+---------------------------------------------------
+
+if (BUSES["BBC_ANALOGUE"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/bbc/analogue/analogue.cpp",
+ MAME_DIR .. "src/devices/bus/bbc/analogue/analogue.h",
+ MAME_DIR .. "src/devices/bus/bbc/analogue/joystick.cpp",
+ MAME_DIR .. "src/devices/bus/bbc/analogue/joystick.h",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/bus/bbc/joyport/joyport.h,BUSES["BBC_JOYPORT"] = true
+---------------------------------------------------
+
+if (BUSES["BBC_JOYPORT"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/bbc/joyport/joyport.cpp",
+ MAME_DIR .. "src/devices/bus/bbc/joyport/joyport.h",
+ MAME_DIR .. "src/devices/bus/bbc/joyport/joystick.cpp",
+ MAME_DIR .. "src/devices/bus/bbc/joyport/joystick.h",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/bus/bbc/1mhzbus/1mhzbus.h,BUSES["BBC_1MHZBUS"] = true
+---------------------------------------------------
+
+if (BUSES["BBC_1MHZBUS"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/bbc/1mhzbus/1mhzbus.cpp",
+ MAME_DIR .. "src/devices/bus/bbc/1mhzbus/1mhzbus.h",
+ MAME_DIR .. "src/devices/bus/bbc/1mhzbus/opus3.cpp",
+ MAME_DIR .. "src/devices/bus/bbc/1mhzbus/opus3.h",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/bus/bbc/tube/tube.h,BUSES["BBC_TUBE"] = true
+---------------------------------------------------
+
+if (BUSES["BBC_TUBE"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/bbc/tube/tube.cpp",
+ MAME_DIR .. "src/devices/bus/bbc/tube/tube.h",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/bus/bbc/userport/userport.h,BUSES["BBC_USERPORT"] = true
+---------------------------------------------------
+
+if (BUSES["BBC_USERPORT"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/bbc/userport/userport.cpp",
+ MAME_DIR .. "src/devices/bus/bbc/userport/userport.h",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/bus/bw2/exp.h,BUSES["BW2"] = true
+---------------------------------------------------
+
+if (BUSES["BW2"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/bw2/exp.cpp",
+ MAME_DIR .. "src/devices/bus/bw2/exp.h",
+ MAME_DIR .. "src/devices/bus/bw2/ramcard.cpp",
+ MAME_DIR .. "src/devices/bus/bw2/ramcard.h",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/bus/c64/exp.h,BUSES["C64"] = true
+--@src/devices/bus/c64/user.h,BUSES["C64"] = true
+---------------------------------------------------
+
+if (BUSES["C64"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/c64/exp.cpp",
+ MAME_DIR .. "src/devices/bus/c64/exp.h",
+ MAME_DIR .. "src/devices/bus/c64/c128_comal80.cpp",
+ MAME_DIR .. "src/devices/bus/c64/c128_comal80.h",
+ MAME_DIR .. "src/devices/bus/c64/c128_partner.cpp",
+ MAME_DIR .. "src/devices/bus/c64/c128_partner.h",
+ MAME_DIR .. "src/devices/bus/c64/comal80.cpp",
+ MAME_DIR .. "src/devices/bus/c64/comal80.h",
+ MAME_DIR .. "src/devices/bus/c64/cpm.cpp",
+ MAME_DIR .. "src/devices/bus/c64/cpm.h",
+ MAME_DIR .. "src/devices/bus/c64/currah_speech.cpp",
+ MAME_DIR .. "src/devices/bus/c64/currah_speech.h",
+ MAME_DIR .. "src/devices/bus/c64/dela_ep256.cpp",
+ MAME_DIR .. "src/devices/bus/c64/dela_ep256.h",
+ MAME_DIR .. "src/devices/bus/c64/dela_ep64.cpp",
+ MAME_DIR .. "src/devices/bus/c64/dela_ep64.h",
+ MAME_DIR .. "src/devices/bus/c64/dela_ep7x8.cpp",
+ MAME_DIR .. "src/devices/bus/c64/dela_ep7x8.h",
+ MAME_DIR .. "src/devices/bus/c64/dinamic.cpp",
+ MAME_DIR .. "src/devices/bus/c64/dinamic.h",
+ MAME_DIR .. "src/devices/bus/c64/dqbb.cpp",
+ MAME_DIR .. "src/devices/bus/c64/dqbb.h",
+ MAME_DIR .. "src/devices/bus/c64/easy_calc_result.cpp",
+ MAME_DIR .. "src/devices/bus/c64/easy_calc_result.h",
+ MAME_DIR .. "src/devices/bus/c64/easyflash.cpp",
+ MAME_DIR .. "src/devices/bus/c64/easyflash.h",
+ MAME_DIR .. "src/devices/bus/c64/epyx_fast_load.cpp",
+ MAME_DIR .. "src/devices/bus/c64/epyx_fast_load.h",
+ MAME_DIR .. "src/devices/bus/c64/exos.cpp",
+ MAME_DIR .. "src/devices/bus/c64/exos.h",
+ MAME_DIR .. "src/devices/bus/c64/fcc.cpp",
+ MAME_DIR .. "src/devices/bus/c64/fcc.h",
+ MAME_DIR .. "src/devices/bus/c64/final.cpp",
+ MAME_DIR .. "src/devices/bus/c64/final.h",
+ MAME_DIR .. "src/devices/bus/c64/final3.cpp",
+ MAME_DIR .. "src/devices/bus/c64/final3.h",
+ MAME_DIR .. "src/devices/bus/c64/fun_play.cpp",
+ MAME_DIR .. "src/devices/bus/c64/fun_play.h",
+ MAME_DIR .. "src/devices/bus/c64/georam.cpp",
+ MAME_DIR .. "src/devices/bus/c64/georam.h",
+ MAME_DIR .. "src/devices/bus/c64/ide64.cpp",
+ MAME_DIR .. "src/devices/bus/c64/ide64.h",
+ MAME_DIR .. "src/devices/bus/c64/ieee488.cpp",
+ MAME_DIR .. "src/devices/bus/c64/ieee488.h",
+ MAME_DIR .. "src/devices/bus/c64/kingsoft.cpp",
+ MAME_DIR .. "src/devices/bus/c64/kingsoft.h",
+ MAME_DIR .. "src/devices/bus/c64/mach5.cpp",
+ MAME_DIR .. "src/devices/bus/c64/mach5.h",
+ MAME_DIR .. "src/devices/bus/c64/magic_desk.cpp",
+ MAME_DIR .. "src/devices/bus/c64/magic_desk.h",
+ MAME_DIR .. "src/devices/bus/c64/magic_formel.cpp",
+ MAME_DIR .. "src/devices/bus/c64/magic_formel.h",
+ MAME_DIR .. "src/devices/bus/c64/magic_voice.cpp",
+ MAME_DIR .. "src/devices/bus/c64/magic_voice.h",
+ MAME_DIR .. "src/devices/bus/c64/midi_maplin.cpp",
+ MAME_DIR .. "src/devices/bus/c64/midi_maplin.h",
+ MAME_DIR .. "src/devices/bus/c64/midi_namesoft.cpp",
+ MAME_DIR .. "src/devices/bus/c64/midi_namesoft.h",
+ MAME_DIR .. "src/devices/bus/c64/midi_passport.cpp",
+ MAME_DIR .. "src/devices/bus/c64/midi_passport.h",
+ MAME_DIR .. "src/devices/bus/c64/midi_sci.cpp",
+ MAME_DIR .. "src/devices/bus/c64/midi_sci.h",
+ MAME_DIR .. "src/devices/bus/c64/midi_siel.cpp",
+ MAME_DIR .. "src/devices/bus/c64/midi_siel.h",
+ MAME_DIR .. "src/devices/bus/c64/mikro_assembler.cpp",
+ MAME_DIR .. "src/devices/bus/c64/mikro_assembler.h",
+ MAME_DIR .. "src/devices/bus/c64/multiscreen.cpp",
+ MAME_DIR .. "src/devices/bus/c64/multiscreen.h",
+ MAME_DIR .. "src/devices/bus/c64/music64.cpp",
+ MAME_DIR .. "src/devices/bus/c64/music64.h",
+ MAME_DIR .. "src/devices/bus/c64/neoram.cpp",
+ MAME_DIR .. "src/devices/bus/c64/neoram.h",
+ MAME_DIR .. "src/devices/bus/c64/ocean.cpp",
+ MAME_DIR .. "src/devices/bus/c64/ocean.h",
+ MAME_DIR .. "src/devices/bus/c64/pagefox.cpp",
+ MAME_DIR .. "src/devices/bus/c64/pagefox.h",
+ MAME_DIR .. "src/devices/bus/c64/partner.cpp",
+ MAME_DIR .. "src/devices/bus/c64/partner.h",
+ MAME_DIR .. "src/devices/bus/c64/prophet64.cpp",
+ MAME_DIR .. "src/devices/bus/c64/prophet64.h",
+ MAME_DIR .. "src/devices/bus/c64/ps64.cpp",
+ MAME_DIR .. "src/devices/bus/c64/ps64.h",
+ MAME_DIR .. "src/devices/bus/c64/reu.cpp",
+ MAME_DIR .. "src/devices/bus/c64/reu.h",
+ MAME_DIR .. "src/devices/bus/c64/rex.cpp",
+ MAME_DIR .. "src/devices/bus/c64/rex.h",
+ MAME_DIR .. "src/devices/bus/c64/rex_ep256.cpp",
+ MAME_DIR .. "src/devices/bus/c64/rex_ep256.h",
+ MAME_DIR .. "src/devices/bus/c64/ross.cpp",
+ MAME_DIR .. "src/devices/bus/c64/ross.h",
+ MAME_DIR .. "src/devices/bus/c64/sfx_sound_expander.cpp",
+ MAME_DIR .. "src/devices/bus/c64/sfx_sound_expander.h",
+ MAME_DIR .. "src/devices/bus/c64/silverrock.cpp",
+ MAME_DIR .. "src/devices/bus/c64/silverrock.h",
+ MAME_DIR .. "src/devices/bus/c64/simons_basic.cpp",
+ MAME_DIR .. "src/devices/bus/c64/simons_basic.h",
+ MAME_DIR .. "src/devices/bus/c64/speakeasy.cpp",
+ MAME_DIR .. "src/devices/bus/c64/speakeasy.h",
+ MAME_DIR .. "src/devices/bus/c64/stardos.cpp",
+ MAME_DIR .. "src/devices/bus/c64/stardos.h",
+ MAME_DIR .. "src/devices/bus/c64/std.cpp",
+ MAME_DIR .. "src/devices/bus/c64/std.h",
+ MAME_DIR .. "src/devices/bus/c64/structured_basic.cpp",
+ MAME_DIR .. "src/devices/bus/c64/structured_basic.h",
+ MAME_DIR .. "src/devices/bus/c64/super_explode.cpp",
+ MAME_DIR .. "src/devices/bus/c64/super_explode.h",
+ MAME_DIR .. "src/devices/bus/c64/super_games.cpp",
+ MAME_DIR .. "src/devices/bus/c64/super_games.h",
+ MAME_DIR .. "src/devices/bus/c64/supercpu.cpp",
+ MAME_DIR .. "src/devices/bus/c64/supercpu.h",
+ MAME_DIR .. "src/devices/bus/c64/sw8k.cpp",
+ MAME_DIR .. "src/devices/bus/c64/sw8k.h",
+ MAME_DIR .. "src/devices/bus/c64/swiftlink.cpp",
+ MAME_DIR .. "src/devices/bus/c64/swiftlink.h",
+ MAME_DIR .. "src/devices/bus/c64/system3.cpp",
+ MAME_DIR .. "src/devices/bus/c64/system3.h",
+ MAME_DIR .. "src/devices/bus/c64/tdos.cpp",
+ MAME_DIR .. "src/devices/bus/c64/tdos.h",
+ MAME_DIR .. "src/devices/bus/c64/turbo232.cpp",
+ MAME_DIR .. "src/devices/bus/c64/turbo232.h",
+ MAME_DIR .. "src/devices/bus/c64/vizastar.cpp",
+ MAME_DIR .. "src/devices/bus/c64/vizastar.h",
+ MAME_DIR .. "src/devices/bus/c64/vw64.cpp",
+ MAME_DIR .. "src/devices/bus/c64/vw64.h",
+ MAME_DIR .. "src/devices/bus/c64/warp_speed.cpp",
+ MAME_DIR .. "src/devices/bus/c64/warp_speed.h",
+ MAME_DIR .. "src/devices/bus/c64/westermann.cpp",
+ MAME_DIR .. "src/devices/bus/c64/westermann.h",
+ MAME_DIR .. "src/devices/bus/c64/xl80.cpp",
+ MAME_DIR .. "src/devices/bus/c64/xl80.h",
+ MAME_DIR .. "src/devices/bus/c64/zaxxon.cpp",
+ MAME_DIR .. "src/devices/bus/c64/zaxxon.h",
+ MAME_DIR .. "src/devices/bus/c64/user.cpp",
+ MAME_DIR .. "src/devices/bus/c64/user.h",
+ MAME_DIR .. "src/devices/bus/c64/4dxh.cpp",
+ MAME_DIR .. "src/devices/bus/c64/4dxh.h",
+ MAME_DIR .. "src/devices/bus/c64/4ksa.cpp",
+ MAME_DIR .. "src/devices/bus/c64/4ksa.h",
+ MAME_DIR .. "src/devices/bus/c64/4tba.cpp",
+ MAME_DIR .. "src/devices/bus/c64/4tba.h",
+ MAME_DIR .. "src/devices/bus/c64/16kb.cpp",
+ MAME_DIR .. "src/devices/bus/c64/16kb.h",
+ MAME_DIR .. "src/devices/bus/c64/bn1541.cpp",
+ MAME_DIR .. "src/devices/bus/c64/bn1541.h",
+ MAME_DIR .. "src/devices/bus/c64/geocable.cpp",
+ MAME_DIR .. "src/devices/bus/c64/geocable.h",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/bus/cbm2/exp.h,BUSES["CBM2"] = true
+--@src/devices/bus/cbm2/user.h,BUSES["CBM2"] = true
+---------------------------------------------------
+
+if (BUSES["CBM2"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/cbm2/exp.cpp",
+ MAME_DIR .. "src/devices/bus/cbm2/exp.h",
+ MAME_DIR .. "src/devices/bus/cbm2/24k.cpp",
+ MAME_DIR .. "src/devices/bus/cbm2/24k.h",
+ MAME_DIR .. "src/devices/bus/cbm2/hrg.cpp",
+ MAME_DIR .. "src/devices/bus/cbm2/hrg.h",
+ MAME_DIR .. "src/devices/bus/cbm2/std.cpp",
+ MAME_DIR .. "src/devices/bus/cbm2/std.h",
+ MAME_DIR .. "src/devices/bus/cbm2/user.cpp",
+ MAME_DIR .. "src/devices/bus/cbm2/user.h",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/bus/cbmiec/cbmiec.h,BUSES["CBMIEC"] = true
+---------------------------------------------------
+
+if (BUSES["CBMIEC"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/cbmiec/cbmiec.cpp",
+ MAME_DIR .. "src/devices/bus/cbmiec/cbmiec.h",
+ MAME_DIR .. "src/devices/bus/cbmiec/c1541.cpp",
+ MAME_DIR .. "src/devices/bus/cbmiec/c1541.h",
+ MAME_DIR .. "src/devices/bus/cbmiec/c1571.cpp",
+ MAME_DIR .. "src/devices/bus/cbmiec/c1571.h",
+ MAME_DIR .. "src/devices/bus/cbmiec/c1581.cpp",
+ MAME_DIR .. "src/devices/bus/cbmiec/c1581.h",
+ MAME_DIR .. "src/devices/bus/cbmiec/c64_nl10.cpp",
+ MAME_DIR .. "src/devices/bus/cbmiec/c64_nl10.h",
+ MAME_DIR .. "src/devices/bus/cbmiec/cmdhd.cpp",
+ MAME_DIR .. "src/devices/bus/cbmiec/cmdhd.h",
+ MAME_DIR .. "src/devices/bus/cbmiec/diag264_lb_iec.cpp",
+ MAME_DIR .. "src/devices/bus/cbmiec/diag264_lb_iec.h",
+ MAME_DIR .. "src/devices/bus/cbmiec/fd2000.cpp",
+ MAME_DIR .. "src/devices/bus/cbmiec/fd2000.h",
+ MAME_DIR .. "src/devices/bus/cbmiec/interpod.cpp",
+ MAME_DIR .. "src/devices/bus/cbmiec/interpod.h",
+ MAME_DIR .. "src/devices/bus/cbmiec/serialbox.cpp",
+ MAME_DIR .. "src/devices/bus/cbmiec/serialbox.h",
+ MAME_DIR .. "src/devices/bus/cbmiec/vic1515.cpp",
+ MAME_DIR .. "src/devices/bus/cbmiec/vic1515.h",
+ MAME_DIR .. "src/devices/bus/cbmiec/vic1520.cpp",
+ MAME_DIR .. "src/devices/bus/cbmiec/vic1520.h",
+ MAME_DIR .. "src/devices/bus/cbmiec/c1526.cpp",
+ MAME_DIR .. "src/devices/bus/cbmiec/c1526.h",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/bus/chanf/slot.h,BUSES["CHANNELF"] = true
+---------------------------------------------------
+
+if (BUSES["CHANNELF"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/chanf/slot.cpp",
+ MAME_DIR .. "src/devices/bus/chanf/slot.h",
+ MAME_DIR .. "src/devices/bus/chanf/rom.cpp",
+ MAME_DIR .. "src/devices/bus/chanf/rom.h",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/bus/comx35/exp.h,BUSES["COMX35"] = true
+---------------------------------------------------
+
+if (BUSES["COMX35"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/comx35/exp.cpp",
+ MAME_DIR .. "src/devices/bus/comx35/exp.h",
+ MAME_DIR .. "src/devices/bus/comx35/clm.cpp",
+ MAME_DIR .. "src/devices/bus/comx35/clm.h",
+ MAME_DIR .. "src/devices/bus/comx35/expbox.cpp",
+ MAME_DIR .. "src/devices/bus/comx35/expbox.h",
+ MAME_DIR .. "src/devices/bus/comx35/eprom.cpp",
+ MAME_DIR .. "src/devices/bus/comx35/eprom.h",
+ MAME_DIR .. "src/devices/bus/comx35/fdc.cpp",
+ MAME_DIR .. "src/devices/bus/comx35/fdc.h",
+ MAME_DIR .. "src/devices/bus/comx35/joycard.cpp",
+ MAME_DIR .. "src/devices/bus/comx35/joycard.h",
+ MAME_DIR .. "src/devices/bus/comx35/printer.cpp",
+ MAME_DIR .. "src/devices/bus/comx35/printer.h",
+ MAME_DIR .. "src/devices/bus/comx35/ram.cpp",
+ MAME_DIR .. "src/devices/bus/comx35/ram.h",
+ MAME_DIR .. "src/devices/bus/comx35/thermal.cpp",
+ MAME_DIR .. "src/devices/bus/comx35/thermal.h",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/bus/coleco/ctrl.h,BUSES["COLECO"] = true
+--@src/devices/bus/coleco/exp.h,BUSES["COLECO"] = true
+---------------------------------------------------
+
+if (BUSES["COLECO"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/coleco/ctrl.cpp",
+ MAME_DIR .. "src/devices/bus/coleco/ctrl.h",
+ MAME_DIR .. "src/devices/bus/coleco/hand.cpp",
+ MAME_DIR .. "src/devices/bus/coleco/hand.h",
+ MAME_DIR .. "src/devices/bus/coleco/sac.cpp",
+ MAME_DIR .. "src/devices/bus/coleco/sac.h",
+ MAME_DIR .. "src/devices/bus/coleco/exp.cpp",
+ MAME_DIR .. "src/devices/bus/coleco/exp.h",
+ MAME_DIR .. "src/devices/bus/coleco/std.cpp",
+ MAME_DIR .. "src/devices/bus/coleco/std.h",
+ MAME_DIR .. "src/devices/bus/coleco/xin1.h",
+ MAME_DIR .. "src/devices/bus/coleco/xin1.cpp",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/bus/crvision/slot.h,BUSES["CRVISION"] = true
+---------------------------------------------------
+
+if (BUSES["CRVISION"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/crvision/slot.cpp",
+ MAME_DIR .. "src/devices/bus/crvision/slot.h",
+ MAME_DIR .. "src/devices/bus/crvision/rom.cpp",
+ MAME_DIR .. "src/devices/bus/crvision/rom.h",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/bus/dmv/dmvbus.h,BUSES["DMV"] = true
+---------------------------------------------------
+
+if (BUSES["DMV"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/dmv/dmvbus.cpp",
+ MAME_DIR .. "src/devices/bus/dmv/dmvbus.h",
+ MAME_DIR .. "src/devices/bus/dmv/k210.cpp",
+ MAME_DIR .. "src/devices/bus/dmv/k210.h",
+ MAME_DIR .. "src/devices/bus/dmv/k220.cpp",
+ MAME_DIR .. "src/devices/bus/dmv/k220.h",
+ MAME_DIR .. "src/devices/bus/dmv/k230.cpp",
+ MAME_DIR .. "src/devices/bus/dmv/k230.h",
+ MAME_DIR .. "src/devices/bus/dmv/k233.cpp",
+ MAME_DIR .. "src/devices/bus/dmv/k233.h",
+ MAME_DIR .. "src/devices/bus/dmv/k801.cpp",
+ MAME_DIR .. "src/devices/bus/dmv/k801.h",
+ MAME_DIR .. "src/devices/bus/dmv/k803.cpp",
+ MAME_DIR .. "src/devices/bus/dmv/k803.h",
+ MAME_DIR .. "src/devices/bus/dmv/k806.cpp",
+ MAME_DIR .. "src/devices/bus/dmv/k806.h",
+ MAME_DIR .. "src/devices/bus/dmv/ram.cpp",
+ MAME_DIR .. "src/devices/bus/dmv/ram.h",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/bus/ecbbus/ecbbus.h,BUSES["ECBBUS"] = true
+---------------------------------------------------
+
+if (BUSES["ECBBUS"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/ecbbus/ecbbus.cpp",
+ MAME_DIR .. "src/devices/bus/ecbbus/ecbbus.h",
+ MAME_DIR .. "src/devices/bus/ecbbus/grip.cpp",
+ MAME_DIR .. "src/devices/bus/ecbbus/grip.h",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/bus/econet/econet.h,BUSES["ECONET"] = true
+---------------------------------------------------
+
+if (BUSES["ECONET"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/econet/econet.cpp",
+ MAME_DIR .. "src/devices/bus/econet/econet.h",
+ MAME_DIR .. "src/devices/bus/econet/e01.cpp",
+ MAME_DIR .. "src/devices/bus/econet/e01.h",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/bus/electron/exp.h,BUSES["ELECTRON"] = true
+---------------------------------------------------
+
+if (BUSES["ELECTRON"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/electron/exp.cpp",
+ MAME_DIR .. "src/devices/bus/electron/exp.h",
+ MAME_DIR .. "src/devices/bus/electron/fbjoy.cpp",
+ MAME_DIR .. "src/devices/bus/electron/fbjoy.h",
+ MAME_DIR .. "src/devices/bus/electron/plus3.cpp",
+ MAME_DIR .. "src/devices/bus/electron/plus3.h",
+ MAME_DIR .. "src/devices/bus/electron/pwrjoy.cpp",
+ MAME_DIR .. "src/devices/bus/electron/pwrjoy.h",
+ MAME_DIR .. "src/devices/bus/electron/m2105.cpp",
+ MAME_DIR .. "src/devices/bus/electron/m2105.h",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/bus/ep64/exp.h,BUSES["EP64"] = true
+---------------------------------------------------
+
+if (BUSES["EP64"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/ep64/exp.cpp",
+ MAME_DIR .. "src/devices/bus/ep64/exp.h",
+ MAME_DIR .. "src/devices/bus/ep64/exdos.cpp",
+ MAME_DIR .. "src/devices/bus/ep64/exdos.h",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/bus/hp_hil/hp_hil.h,BUSES["HPHIL"] = true
+---------------------------------------------------
+
+if (BUSES["HPHIL"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/hp_hil/hp_hil.cpp",
+ MAME_DIR .. "src/devices/bus/hp_hil/hp_hil.h",
+ MAME_DIR .. "src/devices/bus/hp_hil/hil_devices.cpp",
+ MAME_DIR .. "src/devices/bus/hp_hil/hil_devices.h",
+ MAME_DIR .. "src/devices/bus/hp_hil/hlekbd.cpp",
+ MAME_DIR .. "src/devices/bus/hp_hil/hlekbd.h",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/bus/generic/slot.h,BUSES["GENERIC"] = true
+---------------------------------------------------
+
+if (BUSES["GENERIC"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/generic/slot.cpp",
+ MAME_DIR .. "src/devices/bus/generic/slot.h",
+ MAME_DIR .. "src/devices/bus/generic/carts.cpp",
+ MAME_DIR .. "src/devices/bus/generic/carts.h",
+ MAME_DIR .. "src/devices/bus/generic/ram.cpp",
+ MAME_DIR .. "src/devices/bus/generic/ram.h",
+ MAME_DIR .. "src/devices/bus/generic/rom.cpp",
+ MAME_DIR .. "src/devices/bus/generic/rom.h",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/bus/ieee488/ieee488.h,BUSES["IEEE488"] = true
+---------------------------------------------------
+
+if (BUSES["IEEE488"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/ieee488/ieee488.cpp",
+ MAME_DIR .. "src/devices/bus/ieee488/ieee488.h",
+ MAME_DIR .. "src/devices/bus/ieee488/c2031.cpp",
+ MAME_DIR .. "src/devices/bus/ieee488/c2031.h",
+ MAME_DIR .. "src/devices/bus/ieee488/c2040.cpp",
+ MAME_DIR .. "src/devices/bus/ieee488/c2040.h",
+ MAME_DIR .. "src/devices/bus/ieee488/c2040fdc.cpp",
+ MAME_DIR .. "src/devices/bus/ieee488/c2040fdc.h",
+ MAME_DIR .. "src/devices/bus/ieee488/c8050.cpp",
+ MAME_DIR .. "src/devices/bus/ieee488/c8050.h",
+ MAME_DIR .. "src/devices/bus/ieee488/c8050fdc.cpp",
+ MAME_DIR .. "src/devices/bus/ieee488/c8050fdc.h",
+ MAME_DIR .. "src/devices/bus/ieee488/c8280.cpp",
+ MAME_DIR .. "src/devices/bus/ieee488/c8280.h",
+ MAME_DIR .. "src/devices/bus/ieee488/d9060.cpp",
+ MAME_DIR .. "src/devices/bus/ieee488/d9060.h",
+ MAME_DIR .. "src/devices/bus/ieee488/softbox.cpp",
+ MAME_DIR .. "src/devices/bus/ieee488/softbox.h",
+ MAME_DIR .. "src/devices/bus/ieee488/hardbox.cpp",
+ MAME_DIR .. "src/devices/bus/ieee488/hardbox.h",
+ MAME_DIR .. "src/devices/bus/ieee488/shark.cpp",
+ MAME_DIR .. "src/devices/bus/ieee488/shark.h",
+ MAME_DIR .. "src/devices/bus/ieee488/hp9895.cpp",
+ MAME_DIR .. "src/devices/bus/ieee488/hp9895.h",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/bus/iq151/iq151.h,BUSES["IQ151"] = true
+---------------------------------------------------
+
+if (BUSES["IQ151"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/iq151/iq151.cpp",
+ MAME_DIR .. "src/devices/bus/iq151/iq151.h",
+ MAME_DIR .. "src/devices/bus/iq151/disc2.cpp",
+ MAME_DIR .. "src/devices/bus/iq151/disc2.h",
+ MAME_DIR .. "src/devices/bus/iq151/grafik.cpp",
+ MAME_DIR .. "src/devices/bus/iq151/grafik.h",
+ MAME_DIR .. "src/devices/bus/iq151/minigraf.cpp",
+ MAME_DIR .. "src/devices/bus/iq151/minigraf.h",
+ MAME_DIR .. "src/devices/bus/iq151/ms151a.cpp",
+ MAME_DIR .. "src/devices/bus/iq151/ms151a.h",
+ MAME_DIR .. "src/devices/bus/iq151/rom.cpp",
+ MAME_DIR .. "src/devices/bus/iq151/rom.h",
+ MAME_DIR .. "src/devices/bus/iq151/staper.cpp",
+ MAME_DIR .. "src/devices/bus/iq151/staper.h",
+ MAME_DIR .. "src/devices/bus/iq151/video32.cpp",
+ MAME_DIR .. "src/devices/bus/iq151/video32.h",
+ MAME_DIR .. "src/devices/bus/iq151/video64.cpp",
+ MAME_DIR .. "src/devices/bus/iq151/video64.h",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/bus/imi7000/imi7000.h,BUSES["IMI7000"] = true
+---------------------------------------------------
+
+if (BUSES["IMI7000"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/imi7000/imi7000.cpp",
+ MAME_DIR .. "src/devices/bus/imi7000/imi7000.h",
+ MAME_DIR .. "src/devices/bus/imi7000/imi5000h.cpp",
+ MAME_DIR .. "src/devices/bus/imi7000/imi5000h.h",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/bus/intv/slot.h,BUSES["INTV"] = true
+---------------------------------------------------
+
+if (BUSES["INTV"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/intv/slot.cpp",
+ MAME_DIR .. "src/devices/bus/intv/slot.h",
+ MAME_DIR .. "src/devices/bus/intv/rom.cpp",
+ MAME_DIR .. "src/devices/bus/intv/rom.h",
+ MAME_DIR .. "src/devices/bus/intv/voice.cpp",
+ MAME_DIR .. "src/devices/bus/intv/voice.h",
+ MAME_DIR .. "src/devices/bus/intv/ecs.cpp",
+ MAME_DIR .. "src/devices/bus/intv/ecs.h",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/bus/intv_ctrl/ctrl.h,BUSES["INTV_CTRL"] = true
+---------------------------------------------------
+
+if (BUSES["INTV_CTRL"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/intv_ctrl/ctrl.cpp",
+ MAME_DIR .. "src/devices/bus/intv_ctrl/ctrl.h",
+ MAME_DIR .. "src/devices/bus/intv_ctrl/handctrl.cpp",
+ MAME_DIR .. "src/devices/bus/intv_ctrl/handctrl.h",
+ MAME_DIR .. "src/devices/bus/intv_ctrl/ecs_ctrl.cpp",
+ MAME_DIR .. "src/devices/bus/intv_ctrl/ecs_ctrl.h",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/bus/isa/isa.h,BUSES["ISA"] = true
+---------------------------------------------------
+
+if (BUSES["ISA"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/isa/isa.cpp",
+ MAME_DIR .. "src/devices/bus/isa/isa.h",
+ MAME_DIR .. "src/devices/bus/isa/isa_cards.cpp",
+ MAME_DIR .. "src/devices/bus/isa/isa_cards.h",
+ MAME_DIR .. "src/devices/bus/isa/mda.cpp",
+ MAME_DIR .. "src/devices/bus/isa/mda.h",
+ MAME_DIR .. "src/devices/bus/isa/wdxt_gen.cpp",
+ MAME_DIR .. "src/devices/bus/isa/wdxt_gen.h",
+ MAME_DIR .. "src/devices/bus/isa/adlib.cpp",
+ MAME_DIR .. "src/devices/bus/isa/adlib.h",
+ MAME_DIR .. "src/devices/bus/isa/com.cpp",
+ MAME_DIR .. "src/devices/bus/isa/com.h",
+ MAME_DIR .. "src/devices/bus/isa/fdc.cpp",
+ MAME_DIR .. "src/devices/bus/isa/fdc.h",
+ MAME_DIR .. "src/devices/bus/isa/mufdc.cpp",
+ MAME_DIR .. "src/devices/bus/isa/mufdc.h",
+ MAME_DIR .. "src/devices/bus/isa/finalchs.cpp",
+ MAME_DIR .. "src/devices/bus/isa/finalchs.h",
+ MAME_DIR .. "src/devices/bus/isa/gblaster.cpp",
+ MAME_DIR .. "src/devices/bus/isa/gblaster.h",
+ MAME_DIR .. "src/devices/bus/isa/gus.cpp",
+ MAME_DIR .. "src/devices/bus/isa/gus.h",
+ MAME_DIR .. "src/devices/bus/isa/sb16.cpp",
+ MAME_DIR .. "src/devices/bus/isa/sb16.h",
+ MAME_DIR .. "src/devices/bus/isa/hdc.cpp",
+ MAME_DIR .. "src/devices/bus/isa/hdc.h",
+ MAME_DIR .. "src/devices/bus/isa/ibm_mfc.cpp",
+ MAME_DIR .. "src/devices/bus/isa/ibm_mfc.h",
+ MAME_DIR .. "src/devices/bus/isa/mpu401.cpp",
+ MAME_DIR .. "src/devices/bus/isa/mpu401.h",
+ MAME_DIR .. "src/devices/bus/isa/sblaster.cpp",
+ MAME_DIR .. "src/devices/bus/isa/sblaster.h",
+ MAME_DIR .. "src/devices/bus/isa/stereo_fx.cpp",
+ MAME_DIR .. "src/devices/bus/isa/stereo_fx.h",
+ MAME_DIR .. "src/devices/bus/isa/ssi2001.cpp",
+ MAME_DIR .. "src/devices/bus/isa/ssi2001.h",
+ MAME_DIR .. "src/devices/bus/isa/ide.cpp",
+ MAME_DIR .. "src/devices/bus/isa/ide.h",
+ MAME_DIR .. "src/devices/bus/isa/xtide.cpp",
+ MAME_DIR .. "src/devices/bus/isa/xtide.h",
+ MAME_DIR .. "src/devices/bus/isa/side116.cpp",
+ MAME_DIR .. "src/devices/bus/isa/side116.h",
+ MAME_DIR .. "src/devices/bus/isa/aha1542.cpp",
+ MAME_DIR .. "src/devices/bus/isa/aha1542.h",
+ MAME_DIR .. "src/devices/bus/isa/wd1002a_wx1.cpp",
+ MAME_DIR .. "src/devices/bus/isa/wd1002a_wx1.h",
+ MAME_DIR .. "src/devices/bus/isa/dectalk.cpp",
+ MAME_DIR .. "src/devices/bus/isa/dectalk.h",
+ MAME_DIR .. "src/devices/bus/isa/pds.cpp",
+ MAME_DIR .. "src/devices/bus/isa/pds.h",
+ MAME_DIR .. "src/devices/bus/isa/omti8621.cpp",
+ MAME_DIR .. "src/devices/bus/isa/omti8621.h",
+ MAME_DIR .. "src/devices/bus/isa/cga.cpp",
+ MAME_DIR .. "src/devices/bus/isa/cga.h",
+ MAME_DIR .. "src/devices/bus/isa/svga_cirrus.cpp",
+ MAME_DIR .. "src/devices/bus/isa/svga_cirrus.h",
+ MAME_DIR .. "src/devices/bus/isa/ega.cpp",
+ MAME_DIR .. "src/devices/bus/isa/ega.h",
+ MAME_DIR .. "src/devices/bus/isa/pgc.cpp",
+ MAME_DIR .. "src/devices/bus/isa/pgc.h",
+ MAME_DIR .. "src/devices/bus/isa/vga.cpp",
+ MAME_DIR .. "src/devices/bus/isa/vga.h",
+ MAME_DIR .. "src/devices/bus/isa/vga_ati.cpp",
+ MAME_DIR .. "src/devices/bus/isa/vga_ati.h",
+ MAME_DIR .. "src/devices/bus/isa/mach32.cpp",
+ MAME_DIR .. "src/devices/bus/isa/mach32.h",
+ MAME_DIR .. "src/devices/bus/isa/svga_tseng.cpp",
+ MAME_DIR .. "src/devices/bus/isa/svga_tseng.h",
+ MAME_DIR .. "src/devices/bus/isa/svga_s3.cpp",
+ MAME_DIR .. "src/devices/bus/isa/svga_s3.h",
+ MAME_DIR .. "src/devices/bus/isa/s3virge.cpp",
+ MAME_DIR .. "src/devices/bus/isa/s3virge.h",
+ MAME_DIR .. "src/devices/bus/isa/pc1640_iga.cpp",
+ MAME_DIR .. "src/devices/bus/isa/pc1640_iga.h",
+ MAME_DIR .. "src/devices/bus/isa/3c503.cpp",
+ MAME_DIR .. "src/devices/bus/isa/3c503.h",
+ MAME_DIR .. "src/devices/bus/isa/ne1000.cpp",
+ MAME_DIR .. "src/devices/bus/isa/ne1000.h",
+ MAME_DIR .. "src/devices/bus/isa/ne2000.cpp",
+ MAME_DIR .. "src/devices/bus/isa/ne2000.h",
+ MAME_DIR .. "src/devices/bus/isa/3c505.cpp",
+ MAME_DIR .. "src/devices/bus/isa/3c505.h",
+ MAME_DIR .. "src/devices/bus/isa/lpt.cpp",
+ MAME_DIR .. "src/devices/bus/isa/lpt.h",
+ MAME_DIR .. "src/devices/bus/isa/p1_fdc.cpp",
+ MAME_DIR .. "src/devices/bus/isa/p1_fdc.h",
+ MAME_DIR .. "src/devices/bus/isa/p1_hdc.cpp",
+ MAME_DIR .. "src/devices/bus/isa/p1_hdc.h",
+ MAME_DIR .. "src/devices/bus/isa/p1_rom.cpp",
+ MAME_DIR .. "src/devices/bus/isa/p1_rom.h",
+ MAME_DIR .. "src/devices/bus/isa/p1_sound.cpp",
+ MAME_DIR .. "src/devices/bus/isa/p1_sound.h",
+ MAME_DIR .. "src/devices/bus/isa/mc1502_fdc.cpp",
+ MAME_DIR .. "src/devices/bus/isa/mc1502_fdc.h",
+ MAME_DIR .. "src/devices/bus/isa/mc1502_rom.cpp",
+ MAME_DIR .. "src/devices/bus/isa/mc1502_rom.h",
+ MAME_DIR .. "src/devices/bus/isa/xsu_cards.cpp",
+ MAME_DIR .. "src/devices/bus/isa/xsu_cards.h",
+ MAME_DIR .. "src/devices/bus/isa/sc499.cpp",
+ MAME_DIR .. "src/devices/bus/isa/sc499.h",
+ MAME_DIR .. "src/devices/bus/isa/aga.cpp",
+ MAME_DIR .. "src/devices/bus/isa/aga.h",
+ MAME_DIR .. "src/devices/bus/isa/svga_trident.cpp",
+ MAME_DIR .. "src/devices/bus/isa/svga_trident.h",
+ MAME_DIR .. "src/devices/bus/isa/num9rev.cpp",
+ MAME_DIR .. "src/devices/bus/isa/num9rev.h",
+ MAME_DIR .. "src/devices/bus/isa/mcd.cpp",
+ MAME_DIR .. "src/devices/bus/isa/mcd.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/bus/isbx/isbx.h,BUSES["ISBX"] = true
+---------------------------------------------------
+
+if (BUSES["ISBX"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/isbx/isbx.cpp",
+ MAME_DIR .. "src/devices/bus/isbx/isbx.h",
+ MAME_DIR .. "src/devices/bus/isbx/compis_fdc.cpp",
+ MAME_DIR .. "src/devices/bus/isbx/compis_fdc.h",
+ MAME_DIR .. "src/devices/bus/isbx/isbc_218a.cpp",
+ MAME_DIR .. "src/devices/bus/isbx/isbc_218a.h",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/bus/msx_slot/slot.h,BUSES["MSX_SLOT"] = true
+---------------------------------------------------
+
+if (BUSES["MSX_SLOT"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/msx_slot/bunsetsu.cpp",
+ MAME_DIR .. "src/devices/bus/msx_slot/bunsetsu.h",
+ MAME_DIR .. "src/devices/bus/msx_slot/cartridge.cpp",
+ MAME_DIR .. "src/devices/bus/msx_slot/cartridge.h",
+ MAME_DIR .. "src/devices/bus/msx_slot/disk.cpp",
+ MAME_DIR .. "src/devices/bus/msx_slot/disk.h",
+ MAME_DIR .. "src/devices/bus/msx_slot/fs4600.cpp",
+ MAME_DIR .. "src/devices/bus/msx_slot/fs4600.h",
+ MAME_DIR .. "src/devices/bus/msx_slot/music.cpp",
+ MAME_DIR .. "src/devices/bus/msx_slot/music.h",
+ MAME_DIR .. "src/devices/bus/msx_slot/panasonic08.cpp",
+ MAME_DIR .. "src/devices/bus/msx_slot/panasonic08.h",
+ MAME_DIR .. "src/devices/bus/msx_slot/rom.cpp",
+ MAME_DIR .. "src/devices/bus/msx_slot/rom.h",
+ MAME_DIR .. "src/devices/bus/msx_slot/ram.cpp",
+ MAME_DIR .. "src/devices/bus/msx_slot/ram.h",
+ MAME_DIR .. "src/devices/bus/msx_slot/ram_mm.cpp",
+ MAME_DIR .. "src/devices/bus/msx_slot/ram_mm.h",
+ MAME_DIR .. "src/devices/bus/msx_slot/slot.cpp",
+ MAME_DIR .. "src/devices/bus/msx_slot/slot.h",
+ MAME_DIR .. "src/devices/bus/msx_slot/sony08.cpp",
+ MAME_DIR .. "src/devices/bus/msx_slot/sony08.h",
+ MAME_DIR .. "src/devices/bus/msx_cart/arc.cpp",
+ MAME_DIR .. "src/devices/bus/msx_cart/arc.h",
+ MAME_DIR .. "src/devices/bus/msx_cart/ascii.cpp",
+ MAME_DIR .. "src/devices/bus/msx_cart/ascii.h",
+ MAME_DIR .. "src/devices/bus/msx_cart/bm_012.cpp",
+ MAME_DIR .. "src/devices/bus/msx_cart/bm_012.h",
+ MAME_DIR .. "src/devices/bus/msx_cart/cartridge.cpp",
+ MAME_DIR .. "src/devices/bus/msx_cart/cartridge.h",
+ MAME_DIR .. "src/devices/bus/msx_cart/crossblaim.cpp",
+ MAME_DIR .. "src/devices/bus/msx_cart/crossblaim.h",
+ MAME_DIR .. "src/devices/bus/msx_cart/disk.cpp",
+ MAME_DIR .. "src/devices/bus/msx_cart/disk.h",
+ MAME_DIR .. "src/devices/bus/msx_cart/dooly.cpp",
+ MAME_DIR .. "src/devices/bus/msx_cart/dooly.h",
+ MAME_DIR .. "src/devices/bus/msx_cart/fmpac.cpp",
+ MAME_DIR .. "src/devices/bus/msx_cart/fmpac.h",
+ MAME_DIR .. "src/devices/bus/msx_cart/fs_sr022.cpp",
+ MAME_DIR .. "src/devices/bus/msx_cart/fs_sr022.h",
+ MAME_DIR .. "src/devices/bus/msx_cart/halnote.cpp",
+ MAME_DIR .. "src/devices/bus/msx_cart/halnote.h",
+ MAME_DIR .. "src/devices/bus/msx_cart/hfox.cpp",
+ MAME_DIR .. "src/devices/bus/msx_cart/hfox.h",
+ MAME_DIR .. "src/devices/bus/msx_cart/holy_quran.cpp",
+ MAME_DIR .. "src/devices/bus/msx_cart/holy_quran.h",
+ MAME_DIR .. "src/devices/bus/msx_cart/konami.cpp",
+ MAME_DIR .. "src/devices/bus/msx_cart/konami.h",
+ MAME_DIR .. "src/devices/bus/msx_cart/korean.cpp",
+ MAME_DIR .. "src/devices/bus/msx_cart/korean.h",
+ MAME_DIR .. "src/devices/bus/msx_cart/majutsushi.cpp",
+ MAME_DIR .. "src/devices/bus/msx_cart/majutsushi.h",
+ MAME_DIR .. "src/devices/bus/msx_cart/moonsound.h",
+ MAME_DIR .. "src/devices/bus/msx_cart/moonsound.cpp",
+ MAME_DIR .. "src/devices/bus/msx_cart/msx_audio.cpp",
+ MAME_DIR .. "src/devices/bus/msx_cart/msx_audio.h",
+ MAME_DIR .. "src/devices/bus/msx_cart/msx_audio_kb.cpp",
+ MAME_DIR .. "src/devices/bus/msx_cart/msx_audio_kb.h",
+ MAME_DIR .. "src/devices/bus/msx_cart/msxdos2.cpp",
+ MAME_DIR .. "src/devices/bus/msx_cart/msxdos2.h",
+ MAME_DIR .. "src/devices/bus/msx_cart/nomapper.cpp",
+ MAME_DIR .. "src/devices/bus/msx_cart/nomapper.h",
+ MAME_DIR .. "src/devices/bus/msx_cart/rtype.cpp",
+ MAME_DIR .. "src/devices/bus/msx_cart/rtype.h",
+ MAME_DIR .. "src/devices/bus/msx_cart/superloderunner.cpp",
+ MAME_DIR .. "src/devices/bus/msx_cart/superloderunner.h",
+ MAME_DIR .. "src/devices/bus/msx_cart/super_swangi.cpp",
+ MAME_DIR .. "src/devices/bus/msx_cart/super_swangi.h",
+ MAME_DIR .. "src/devices/bus/msx_cart/yamaha.cpp",
+ MAME_DIR .. "src/devices/bus/msx_cart/yamaha.h",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/bus/kc/kc.h,BUSES["KC"] = true
+---------------------------------------------------
+
+if (BUSES["KC"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/kc/kc.cpp",
+ MAME_DIR .. "src/devices/bus/kc/kc.h",
+ MAME_DIR .. "src/devices/bus/kc/d002.cpp",
+ MAME_DIR .. "src/devices/bus/kc/d002.h",
+ MAME_DIR .. "src/devices/bus/kc/d004.cpp",
+ MAME_DIR .. "src/devices/bus/kc/d004.h",
+ MAME_DIR .. "src/devices/bus/kc/ram.cpp",
+ MAME_DIR .. "src/devices/bus/kc/ram.h",
+ MAME_DIR .. "src/devices/bus/kc/rom.cpp",
+ MAME_DIR .. "src/devices/bus/kc/rom.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/bus/odyssey2/slot.h,BUSES["O2"] = true
+---------------------------------------------------
+
+if (BUSES["O2"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/odyssey2/slot.cpp",
+ MAME_DIR .. "src/devices/bus/odyssey2/slot.h",
+ MAME_DIR .. "src/devices/bus/odyssey2/rom.cpp",
+ MAME_DIR .. "src/devices/bus/odyssey2/rom.h",
+ MAME_DIR .. "src/devices/bus/odyssey2/chess.cpp",
+ MAME_DIR .. "src/devices/bus/odyssey2/chess.h",
+ MAME_DIR .. "src/devices/bus/odyssey2/voice.cpp",
+ MAME_DIR .. "src/devices/bus/odyssey2/voice.h",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/bus/pc_joy/pc_joy.h,BUSES["PC_JOY"] = true
+---------------------------------------------------
+
+if (BUSES["PC_JOY"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/pc_joy/pc_joy.cpp",
+ MAME_DIR .. "src/devices/bus/pc_joy/pc_joy.h",
+ MAME_DIR .. "src/devices/bus/pc_joy/pc_joy_sw.cpp",
+ MAME_DIR .. "src/devices/bus/pc_joy/pc_joy_sw.h",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/bus/pc_kbd/pc_kbdc.h,BUSES["PC_KBD"] = true
+---------------------------------------------------
+
+if (BUSES["PC_KBD"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/pc_kbd/pc_kbdc.cpp",
+ MAME_DIR .. "src/devices/bus/pc_kbd/pc_kbdc.h",
+ MAME_DIR .. "src/devices/bus/pc_kbd/keyboards.cpp",
+ MAME_DIR .. "src/devices/bus/pc_kbd/keyboards.h",
+ MAME_DIR .. "src/devices/bus/pc_kbd/ec1841.cpp",
+ MAME_DIR .. "src/devices/bus/pc_kbd/ec1841.h",
+ MAME_DIR .. "src/devices/bus/pc_kbd/iskr1030.cpp",
+ MAME_DIR .. "src/devices/bus/pc_kbd/iskr1030.h",
+ MAME_DIR .. "src/devices/bus/pc_kbd/keytro.cpp",
+ MAME_DIR .. "src/devices/bus/pc_kbd/keytro.h",
+ MAME_DIR .. "src/devices/bus/pc_kbd/msnat.cpp",
+ MAME_DIR .. "src/devices/bus/pc_kbd/msnat.h",
+ MAME_DIR .. "src/devices/bus/pc_kbd/pc83.cpp",
+ MAME_DIR .. "src/devices/bus/pc_kbd/pc83.h",
+ MAME_DIR .. "src/devices/bus/pc_kbd/pcat84.cpp",
+ MAME_DIR .. "src/devices/bus/pc_kbd/pcat84.h",
+ MAME_DIR .. "src/devices/bus/pc_kbd/pcxt83.cpp",
+ MAME_DIR .. "src/devices/bus/pc_kbd/pcxt83.h",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/bus/pet/cass.h,BUSES["PET"] = true
+--@src/devices/bus/pet/exp.h,BUSES["PET"] = true
+--@src/devices/bus/pet/user.h,BUSES["PET"] = true
+---------------------------------------------------
+
+if (BUSES["PET"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/pet/cass.cpp",
+ MAME_DIR .. "src/devices/bus/pet/cass.h",
+ MAME_DIR .. "src/devices/bus/pet/c2n.cpp",
+ MAME_DIR .. "src/devices/bus/pet/c2n.h",
+ MAME_DIR .. "src/devices/bus/pet/diag264_lb_tape.cpp",
+ MAME_DIR .. "src/devices/bus/pet/diag264_lb_tape.h",
+ MAME_DIR .. "src/devices/bus/pet/exp.cpp",
+ MAME_DIR .. "src/devices/bus/pet/exp.h",
+ MAME_DIR .. "src/devices/bus/pet/64k.cpp",
+ MAME_DIR .. "src/devices/bus/pet/64k.h",
+ MAME_DIR .. "src/devices/bus/pet/hsg.cpp",
+ MAME_DIR .. "src/devices/bus/pet/hsg.h",
+ MAME_DIR .. "src/devices/bus/pet/superpet.cpp",
+ MAME_DIR .. "src/devices/bus/pet/superpet.h",
+ MAME_DIR .. "src/devices/bus/pet/user.cpp",
+ MAME_DIR .. "src/devices/bus/pet/user.h",
+ MAME_DIR .. "src/devices/bus/pet/diag.cpp",
+ MAME_DIR .. "src/devices/bus/pet/diag.h",
+ MAME_DIR .. "src/devices/bus/pet/petuja.cpp",
+ MAME_DIR .. "src/devices/bus/pet/petuja.h",
+ MAME_DIR .. "src/devices/bus/pet/cb2snd.cpp",
+ MAME_DIR .. "src/devices/bus/pet/cb2snd.h",
+ MAME_DIR .. "src/devices/bus/pet/2joysnd.h",
+ MAME_DIR .. "src/devices/bus/pet/2joysnd.cpp",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/bus/plus4/exp.h,BUSES["PLUS4"] = true
+--@src/devices/bus/plus4/user.h,BUSES["PLUS4"] = true
+---------------------------------------------------
+
+if (BUSES["PLUS4"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/plus4/exp.cpp",
+ MAME_DIR .. "src/devices/bus/plus4/exp.h",
+ MAME_DIR .. "src/devices/bus/plus4/c1551.cpp",
+ MAME_DIR .. "src/devices/bus/plus4/c1551.h",
+ MAME_DIR .. "src/devices/bus/plus4/sid.cpp",
+ MAME_DIR .. "src/devices/bus/plus4/sid.h",
+ MAME_DIR .. "src/devices/bus/plus4/std.cpp",
+ MAME_DIR .. "src/devices/bus/plus4/std.h",
+ MAME_DIR .. "src/devices/bus/plus4/user.cpp",
+ MAME_DIR .. "src/devices/bus/plus4/user.h",
+ MAME_DIR .. "src/devices/bus/plus4/diag264_lb_user.cpp",
+ MAME_DIR .. "src/devices/bus/plus4/diag264_lb_user.h",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/bus/pofo/exp.h,BUSES["POFO"] = true
+---------------------------------------------------
+
+if (BUSES["POFO"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/pofo/exp.cpp",
+ MAME_DIR .. "src/devices/bus/pofo/exp.h",
+ MAME_DIR .. "src/devices/bus/pofo/hpc101.cpp",
+ MAME_DIR .. "src/devices/bus/pofo/hpc101.h",
+ MAME_DIR .. "src/devices/bus/pofo/hpc102.cpp",
+ MAME_DIR .. "src/devices/bus/pofo/hpc102.h",
+ MAME_DIR .. "src/devices/bus/pofo/hpc104.cpp",
+ MAME_DIR .. "src/devices/bus/pofo/hpc104.h",
+ MAME_DIR .. "src/devices/bus/pofo/ccm.cpp",
+ MAME_DIR .. "src/devices/bus/pofo/ccm.h",
+ MAME_DIR .. "src/devices/bus/pofo/ram.cpp",
+ MAME_DIR .. "src/devices/bus/pofo/ram.h",
+ MAME_DIR .. "src/devices/bus/pofo/rom.cpp",
+ MAME_DIR .. "src/devices/bus/pofo/rom.h",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/bus/s100/s100.h,BUSES["S100"] = true
+---------------------------------------------------
+
+if (BUSES["S100"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/s100/s100.cpp",
+ MAME_DIR .. "src/devices/bus/s100/s100.h",
+ MAME_DIR .. "src/devices/bus/s100/dj2db.cpp",
+ MAME_DIR .. "src/devices/bus/s100/dj2db.h",
+ MAME_DIR .. "src/devices/bus/s100/djdma.cpp",
+ MAME_DIR .. "src/devices/bus/s100/djdma.h",
+ MAME_DIR .. "src/devices/bus/s100/mm65k16s.cpp",
+ MAME_DIR .. "src/devices/bus/s100/mm65k16s.h",
+ MAME_DIR .. "src/devices/bus/s100/nsmdsa.cpp",
+ MAME_DIR .. "src/devices/bus/s100/nsmdsa.h",
+ MAME_DIR .. "src/devices/bus/s100/nsmdsad.cpp",
+ MAME_DIR .. "src/devices/bus/s100/nsmdsad.h",
+ MAME_DIR .. "src/devices/bus/s100/wunderbus.cpp",
+ MAME_DIR .. "src/devices/bus/s100/wunderbus.h",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/bus/spc1000/exp.h,BUSES["SPC1000"] = true
+---------------------------------------------------
+
+if (BUSES["SPC1000"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/spc1000/exp.cpp",
+ MAME_DIR .. "src/devices/bus/spc1000/exp.h",
+ MAME_DIR .. "src/devices/bus/spc1000/fdd.cpp",
+ MAME_DIR .. "src/devices/bus/spc1000/fdd.h",
+ MAME_DIR .. "src/devices/bus/spc1000/vdp.cpp",
+ MAME_DIR .. "src/devices/bus/spc1000/vdp.h",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/bus/tiki100/exp.h,BUSES["TIKI100"] = true
+---------------------------------------------------
+
+if (BUSES["TIKI100"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/tiki100/exp.cpp",
+ MAME_DIR .. "src/devices/bus/tiki100/exp.h",
+ MAME_DIR .. "src/devices/bus/tiki100/8088.cpp",
+ MAME_DIR .. "src/devices/bus/tiki100/8088.h",
+ MAME_DIR .. "src/devices/bus/tiki100/hdc.cpp",
+ MAME_DIR .. "src/devices/bus/tiki100/hdc.h",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/bus/tvc/tvc.h,BUSES["TVC"] = true
+---------------------------------------------------
+
+if (BUSES["TVC"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/tvc/tvc.cpp",
+ MAME_DIR .. "src/devices/bus/tvc/tvc.h",
+ MAME_DIR .. "src/devices/bus/tvc/hbf.cpp",
+ MAME_DIR .. "src/devices/bus/tvc/hbf.h",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/bus/vc4000/slot.h,BUSES["VC4000"] = true
+---------------------------------------------------
+
+if (BUSES["VC4000"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/vc4000/slot.cpp",
+ MAME_DIR .. "src/devices/bus/vc4000/slot.h",
+ MAME_DIR .. "src/devices/bus/vc4000/rom.cpp",
+ MAME_DIR .. "src/devices/bus/vc4000/rom.h",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/bus/vcs/vcs_slot.h,BUSES["VCS"] = true
+---------------------------------------------------
+
+if (BUSES["VCS"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/vcs/vcs_slot.cpp",
+ MAME_DIR .. "src/devices/bus/vcs/vcs_slot.h",
+ MAME_DIR .. "src/devices/bus/vcs/rom.cpp",
+ MAME_DIR .. "src/devices/bus/vcs/rom.h",
+ MAME_DIR .. "src/devices/bus/vcs/compumat.cpp",
+ MAME_DIR .. "src/devices/bus/vcs/compumat.h",
+ MAME_DIR .. "src/devices/bus/vcs/dpc.cpp",
+ MAME_DIR .. "src/devices/bus/vcs/dpc.h",
+ MAME_DIR .. "src/devices/bus/vcs/harmony_melody.cpp",
+ MAME_DIR .. "src/devices/bus/vcs/harmony_melody.h",
+ MAME_DIR .. "src/devices/bus/vcs/scharger.cpp",
+ MAME_DIR .. "src/devices/bus/vcs/scharger.h",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/bus/vcs_ctrl/ctrl.h,BUSES["VCS_CTRL"] = true
+---------------------------------------------------
+
+if (BUSES["VCS_CTRL"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/vcs_ctrl/ctrl.cpp",
+ MAME_DIR .. "src/devices/bus/vcs_ctrl/ctrl.h",
+ MAME_DIR .. "src/devices/bus/vcs_ctrl/joystick.cpp",
+ MAME_DIR .. "src/devices/bus/vcs_ctrl/joystick.h",
+ MAME_DIR .. "src/devices/bus/vcs_ctrl/joybooster.cpp",
+ MAME_DIR .. "src/devices/bus/vcs_ctrl/joybooster.h",
+ MAME_DIR .. "src/devices/bus/vcs_ctrl/keypad.cpp",
+ MAME_DIR .. "src/devices/bus/vcs_ctrl/keypad.h",
+ MAME_DIR .. "src/devices/bus/vcs_ctrl/lightpen.cpp",
+ MAME_DIR .. "src/devices/bus/vcs_ctrl/lightpen.h",
+ MAME_DIR .. "src/devices/bus/vcs_ctrl/paddles.cpp",
+ MAME_DIR .. "src/devices/bus/vcs_ctrl/paddles.h",
+ MAME_DIR .. "src/devices/bus/vcs_ctrl/wheel.cpp",
+ MAME_DIR .. "src/devices/bus/vcs_ctrl/wheel.h",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/bus/vectrex/slot.h,BUSES["VECTREX"] = true
+---------------------------------------------------
+
+if (BUSES["VECTREX"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/vectrex/slot.cpp",
+ MAME_DIR .. "src/devices/bus/vectrex/slot.h",
+ MAME_DIR .. "src/devices/bus/vectrex/rom.cpp",
+ MAME_DIR .. "src/devices/bus/vectrex/rom.h",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/bus/vic10/exp.h,BUSES["VIC10"] = true
+---------------------------------------------------
+
+if (BUSES["VIC10"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/vic10/exp.cpp",
+ MAME_DIR .. "src/devices/bus/vic10/exp.h",
+ MAME_DIR .. "src/devices/bus/vic10/std.cpp",
+ MAME_DIR .. "src/devices/bus/vic10/std.h",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/bus/vic20/exp.h,BUSES["VIC20"] = true
+--@src/devices/bus/vic20/user.h,BUSES["VIC20"] = true
+---------------------------------------------------
+
+if (BUSES["VIC20"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/vic20/exp.cpp",
+ MAME_DIR .. "src/devices/bus/vic20/exp.h",
+ MAME_DIR .. "src/devices/bus/vic20/fe3.cpp",
+ MAME_DIR .. "src/devices/bus/vic20/fe3.h",
+ MAME_DIR .. "src/devices/bus/vic20/megacart.cpp",
+ MAME_DIR .. "src/devices/bus/vic20/megacart.h",
+ MAME_DIR .. "src/devices/bus/vic20/std.cpp",
+ MAME_DIR .. "src/devices/bus/vic20/std.h",
+ MAME_DIR .. "src/devices/bus/vic20/vic1010.cpp",
+ MAME_DIR .. "src/devices/bus/vic20/vic1010.h",
+ MAME_DIR .. "src/devices/bus/vic20/vic1110.cpp",
+ MAME_DIR .. "src/devices/bus/vic20/vic1110.h",
+ MAME_DIR .. "src/devices/bus/vic20/vic1111.cpp",
+ MAME_DIR .. "src/devices/bus/vic20/vic1111.h",
+ MAME_DIR .. "src/devices/bus/vic20/vic1112.cpp",
+ MAME_DIR .. "src/devices/bus/vic20/vic1112.h",
+ MAME_DIR .. "src/devices/bus/vic20/vic1210.cpp",
+ MAME_DIR .. "src/devices/bus/vic20/vic1210.h",
+ MAME_DIR .. "src/devices/bus/vic20/videopak.cpp",
+ MAME_DIR .. "src/devices/bus/vic20/videopak.h",
+ MAME_DIR .. "src/devices/bus/vic20/speakeasy.cpp",
+ MAME_DIR .. "src/devices/bus/vic20/speakeasy.h",
+ MAME_DIR .. "src/devices/bus/vic20/user.cpp",
+ MAME_DIR .. "src/devices/bus/vic20/user.h",
+ MAME_DIR .. "src/devices/bus/vic20/4cga.cpp",
+ MAME_DIR .. "src/devices/bus/vic20/4cga.h",
+ MAME_DIR .. "src/devices/bus/vic20/vic1011.cpp",
+ MAME_DIR .. "src/devices/bus/vic20/vic1011.h",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/bus/vidbrain/exp.h,BUSES["VIDBRAIN"] = true
+---------------------------------------------------
+
+if (BUSES["VIDBRAIN"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/vidbrain/exp.cpp",
+ MAME_DIR .. "src/devices/bus/vidbrain/exp.h",
+ MAME_DIR .. "src/devices/bus/vidbrain/std.cpp",
+ MAME_DIR .. "src/devices/bus/vidbrain/std.h",
+ MAME_DIR .. "src/devices/bus/vidbrain/money_minder.cpp",
+ MAME_DIR .. "src/devices/bus/vidbrain/money_minder.h",
+ MAME_DIR .. "src/devices/bus/vidbrain/timeshare.cpp",
+ MAME_DIR .. "src/devices/bus/vidbrain/timeshare.h",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/bus/vip/byteio.h,BUSES["VIP"] = true
+--@src/devices/bus/vip/exp.h,BUSES["VIP"] = true
+---------------------------------------------------
+
+if (BUSES["VIP"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/vip/byteio.cpp",
+ MAME_DIR .. "src/devices/bus/vip/byteio.h",
+ MAME_DIR .. "src/devices/bus/vip/vp620.cpp",
+ MAME_DIR .. "src/devices/bus/vip/vp620.h",
+ MAME_DIR .. "src/devices/bus/vip/exp.cpp",
+ MAME_DIR .. "src/devices/bus/vip/exp.h",
+ MAME_DIR .. "src/devices/bus/vip/vp550.cpp",
+ MAME_DIR .. "src/devices/bus/vip/vp550.h",
+ MAME_DIR .. "src/devices/bus/vip/vp570.cpp",
+ MAME_DIR .. "src/devices/bus/vip/vp570.h",
+ MAME_DIR .. "src/devices/bus/vip/vp575.cpp",
+ MAME_DIR .. "src/devices/bus/vip/vp575.h",
+ MAME_DIR .. "src/devices/bus/vip/vp585.cpp",
+ MAME_DIR .. "src/devices/bus/vip/vp585.h",
+ MAME_DIR .. "src/devices/bus/vip/vp590.cpp",
+ MAME_DIR .. "src/devices/bus/vip/vp590.h",
+ MAME_DIR .. "src/devices/bus/vip/vp595.cpp",
+ MAME_DIR .. "src/devices/bus/vip/vp595.h",
+ MAME_DIR .. "src/devices/bus/vip/vp700.cpp",
+ MAME_DIR .. "src/devices/bus/vip/vp700.h",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/bus/vme/vme.h,BUSES["VME"] = true
+---------------------------------------------------
+
+if (BUSES["VME"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/vme/vme.cpp",
+ MAME_DIR .. "src/devices/bus/vme/vme.h",
+ MAME_DIR .. "src/devices/bus/vme/vme_mzr8300.cpp",
+ MAME_DIR .. "src/devices/bus/vme/vme_mzr8300.h",
+ MAME_DIR .. "src/devices/bus/vme/vme_mvme350.cpp",
+ MAME_DIR .. "src/devices/bus/vme/vme_mvme350.h",
+ MAME_DIR .. "src/devices/bus/vme/vme_fccpu20.cpp",
+ MAME_DIR .. "src/devices/bus/vme/vme_fccpu20.h",
+ MAME_DIR .. "src/devices/bus/vme/vme_fcisio.cpp",
+ MAME_DIR .. "src/devices/bus/vme/vme_fcisio.h",
+ MAME_DIR .. "src/devices/bus/vme/vme_fcscsi.cpp",
+ MAME_DIR .. "src/devices/bus/vme/vme_fcscsi.h",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/bus/wangpc/wangpc.h,BUSES["WANGPC"] = true
+---------------------------------------------------
+
+if (BUSES["WANGPC"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/wangpc/wangpc.cpp",
+ MAME_DIR .. "src/devices/bus/wangpc/wangpc.h",
+ MAME_DIR .. "src/devices/bus/wangpc/emb.cpp",
+ MAME_DIR .. "src/devices/bus/wangpc/emb.h",
+ MAME_DIR .. "src/devices/bus/wangpc/lic.cpp",
+ MAME_DIR .. "src/devices/bus/wangpc/lic.h",
+ MAME_DIR .. "src/devices/bus/wangpc/lvc.cpp",
+ MAME_DIR .. "src/devices/bus/wangpc/lvc.h",
+ MAME_DIR .. "src/devices/bus/wangpc/mcc.cpp",
+ MAME_DIR .. "src/devices/bus/wangpc/mcc.h",
+ MAME_DIR .. "src/devices/bus/wangpc/mvc.cpp",
+ MAME_DIR .. "src/devices/bus/wangpc/mvc.h",
+ MAME_DIR .. "src/devices/bus/wangpc/rtc.cpp",
+ MAME_DIR .. "src/devices/bus/wangpc/rtc.h",
+ MAME_DIR .. "src/devices/bus/wangpc/tig.cpp",
+ MAME_DIR .. "src/devices/bus/wangpc/tig.h",
+ MAME_DIR .. "src/devices/bus/wangpc/wdc.cpp",
+ MAME_DIR .. "src/devices/bus/wangpc/wdc.h",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/bus/z88/z88.h,BUSES["Z88"] = true
+---------------------------------------------------
+
+if (BUSES["Z88"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/z88/z88.cpp",
+ MAME_DIR .. "src/devices/bus/z88/z88.h",
+ MAME_DIR .. "src/devices/bus/z88/flash.cpp",
+ MAME_DIR .. "src/devices/bus/z88/flash.h",
+ MAME_DIR .. "src/devices/bus/z88/ram.cpp",
+ MAME_DIR .. "src/devices/bus/z88/ram.h",
+ MAME_DIR .. "src/devices/bus/z88/rom.cpp",
+ MAME_DIR .. "src/devices/bus/z88/rom.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/bus/a2bus/a2bus.h,BUSES["A2BUS"] = true
+---------------------------------------------------
+
+if (BUSES["A2BUS"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/a2bus/a2bus.cpp",
+ MAME_DIR .. "src/devices/bus/a2bus/a2bus.h",
+ MAME_DIR .. "src/devices/bus/a2bus/a2diskii.cpp",
+ MAME_DIR .. "src/devices/bus/a2bus/a2diskii.h",
+ MAME_DIR .. "src/devices/bus/a2bus/a2mockingboard.cpp",
+ MAME_DIR .. "src/devices/bus/a2bus/a2mockingboard.h",
+ MAME_DIR .. "src/devices/bus/a2bus/a2cffa.cpp",
+ MAME_DIR .. "src/devices/bus/a2bus/a2cffa.h",
+ MAME_DIR .. "src/devices/bus/a2bus/a2memexp.cpp",
+ MAME_DIR .. "src/devices/bus/a2bus/a2memexp.h",
+ MAME_DIR .. "src/devices/bus/a2bus/a2scsi.cpp",
+ MAME_DIR .. "src/devices/bus/a2bus/a2scsi.h",
+ MAME_DIR .. "src/devices/bus/a2bus/a2thunderclock.cpp",
+ MAME_DIR .. "src/devices/bus/a2bus/a2thunderclock.h",
+ MAME_DIR .. "src/devices/bus/a2bus/a2softcard.cpp",
+ MAME_DIR .. "src/devices/bus/a2bus/a2softcard.h",
+ MAME_DIR .. "src/devices/bus/a2bus/a2videoterm.cpp",
+ MAME_DIR .. "src/devices/bus/a2bus/a2videoterm.h",
+ MAME_DIR .. "src/devices/bus/a2bus/a2ssc.cpp",
+ MAME_DIR .. "src/devices/bus/a2bus/a2ssc.h",
+ MAME_DIR .. "src/devices/bus/a2bus/a2swyft.cpp",
+ MAME_DIR .. "src/devices/bus/a2bus/a2swyft.h",
+ MAME_DIR .. "src/devices/bus/a2bus/a2eauxslot.cpp",
+ MAME_DIR .. "src/devices/bus/a2bus/a2eauxslot.h",
+ MAME_DIR .. "src/devices/bus/a2bus/a2themill.cpp",
+ MAME_DIR .. "src/devices/bus/a2bus/a2themill.h",
+ MAME_DIR .. "src/devices/bus/a2bus/a2sam.cpp",
+ MAME_DIR .. "src/devices/bus/a2bus/a2sam.h",
+ MAME_DIR .. "src/devices/bus/a2bus/a2alfam2.cpp",
+ MAME_DIR .. "src/devices/bus/a2bus/a2alfam2.h",
+ MAME_DIR .. "src/devices/bus/a2bus/laser128.cpp",
+ MAME_DIR .. "src/devices/bus/a2bus/laser128.h",
+ MAME_DIR .. "src/devices/bus/a2bus/a2echoii.cpp",
+ MAME_DIR .. "src/devices/bus/a2bus/a2echoii.h",
+ MAME_DIR .. "src/devices/bus/a2bus/a2arcadebd.cpp",
+ MAME_DIR .. "src/devices/bus/a2bus/a2arcadebd.h",
+ MAME_DIR .. "src/devices/bus/a2bus/a2midi.cpp",
+ MAME_DIR .. "src/devices/bus/a2bus/a2midi.h",
+ MAME_DIR .. "src/devices/bus/a2bus/a2vulcan.cpp",
+ MAME_DIR .. "src/devices/bus/a2bus/a2vulcan.h",
+ MAME_DIR .. "src/devices/bus/a2bus/a2zipdrive.cpp",
+ MAME_DIR .. "src/devices/bus/a2bus/a2zipdrive.h",
+ MAME_DIR .. "src/devices/bus/a2bus/a2applicard.cpp",
+ MAME_DIR .. "src/devices/bus/a2bus/a2applicard.h",
+ MAME_DIR .. "src/devices/bus/a2bus/a2hsscsi.cpp",
+ MAME_DIR .. "src/devices/bus/a2bus/a2hsscsi.h",
+ MAME_DIR .. "src/devices/bus/a2bus/a2ultraterm.cpp",
+ MAME_DIR .. "src/devices/bus/a2bus/a2ultraterm.h",
+ MAME_DIR .. "src/devices/bus/a2bus/a2pic.cpp",
+ MAME_DIR .. "src/devices/bus/a2bus/a2pic.h",
+ MAME_DIR .. "src/devices/bus/a2bus/a2estd80col.cpp",
+ MAME_DIR .. "src/devices/bus/a2bus/a2estd80col.h",
+ MAME_DIR .. "src/devices/bus/a2bus/a2eext80col.cpp",
+ MAME_DIR .. "src/devices/bus/a2bus/a2eext80col.h",
+ MAME_DIR .. "src/devices/bus/a2bus/a2eramworks3.cpp",
+ MAME_DIR .. "src/devices/bus/a2bus/a2eramworks3.h",
+ MAME_DIR .. "src/devices/bus/a2bus/a2corvus.cpp",
+ MAME_DIR .. "src/devices/bus/a2bus/a2corvus.h",
+ MAME_DIR .. "src/devices/bus/a2bus/a2diskiing.cpp",
+ MAME_DIR .. "src/devices/bus/a2bus/a2diskiing.h",
+ MAME_DIR .. "src/devices/bus/a2bus/a2mcms.cpp",
+ MAME_DIR .. "src/devices/bus/a2bus/a2mcms.h",
+ MAME_DIR .. "src/devices/bus/a2bus/a2dx1.cpp",
+ MAME_DIR .. "src/devices/bus/a2bus/a2dx1.h",
+ MAME_DIR .. "src/devices/bus/a2bus/timemasterho.cpp",
+ MAME_DIR .. "src/devices/bus/a2bus/timemasterho.h",
+ MAME_DIR .. "src/devices/bus/a2bus/mouse.cpp",
+ MAME_DIR .. "src/devices/bus/a2bus/mouse.h",
+ MAME_DIR .. "src/devices/bus/a2bus/corvfdc01.cpp",
+ MAME_DIR .. "src/devices/bus/a2bus/corvfdc01.h",
+ MAME_DIR .. "src/devices/bus/a2bus/corvfdc02.cpp",
+ MAME_DIR .. "src/devices/bus/a2bus/corvfdc02.h",
+ MAME_DIR .. "src/devices/bus/a2bus/ramcard16k.cpp",
+ MAME_DIR .. "src/devices/bus/a2bus/ramcard16k.h",
+ MAME_DIR .. "src/devices/bus/a2bus/ramcard128k.cpp",
+ MAME_DIR .. "src/devices/bus/a2bus/ramcard128k.h",
+ MAME_DIR .. "src/devices/bus/a2bus/ezcgi.cpp",
+ MAME_DIR .. "src/devices/bus/a2bus/ezcgi.h",
+ MAME_DIR .. "src/devices/bus/a2bus/pc_xporter.cpp",
+ MAME_DIR .. "src/devices/bus/a2bus/pc_xporter.h",
+ MAME_DIR .. "src/devices/bus/a2bus/agat7langcard.cpp",
+ MAME_DIR .. "src/devices/bus/a2bus/agat7langcard.h",
+ MAME_DIR .. "src/devices/bus/a2bus/agat7ram.cpp",
+ MAME_DIR .. "src/devices/bus/a2bus/agat7ram.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/bus/nubus/nubus.h,BUSES["NUBUS"] = true
+---------------------------------------------------
+
+if (BUSES["NUBUS"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/nubus/nubus.cpp",
+ MAME_DIR .. "src/devices/bus/nubus/nubus.h",
+ MAME_DIR .. "src/devices/bus/nubus/nubus_48gc.cpp",
+ MAME_DIR .. "src/devices/bus/nubus/nubus_48gc.h",
+ MAME_DIR .. "src/devices/bus/nubus/nubus_cb264.cpp",
+ MAME_DIR .. "src/devices/bus/nubus/nubus_cb264.h",
+ MAME_DIR .. "src/devices/bus/nubus/nubus_vikbw.cpp",
+ MAME_DIR .. "src/devices/bus/nubus/nubus_vikbw.h",
+ MAME_DIR .. "src/devices/bus/nubus/nubus_specpdq.cpp",
+ MAME_DIR .. "src/devices/bus/nubus/nubus_specpdq.h",
+ MAME_DIR .. "src/devices/bus/nubus/nubus_m2hires.cpp",
+ MAME_DIR .. "src/devices/bus/nubus/nubus_m2hires.h",
+ MAME_DIR .. "src/devices/bus/nubus/nubus_spec8.cpp",
+ MAME_DIR .. "src/devices/bus/nubus/nubus_spec8.h",
+ MAME_DIR .. "src/devices/bus/nubus/nubus_radiustpd.cpp",
+ MAME_DIR .. "src/devices/bus/nubus/nubus_radiustpd.h",
+ MAME_DIR .. "src/devices/bus/nubus/nubus_m2video.cpp",
+ MAME_DIR .. "src/devices/bus/nubus/nubus_m2video.h",
+ MAME_DIR .. "src/devices/bus/nubus/nubus_asntmc3b.cpp",
+ MAME_DIR .. "src/devices/bus/nubus/nubus_asntmc3b.h",
+ MAME_DIR .. "src/devices/bus/nubus/nubus_image.cpp",
+ MAME_DIR .. "src/devices/bus/nubus/nubus_image.h",
+ MAME_DIR .. "src/devices/bus/nubus/nubus_wsportrait.cpp",
+ MAME_DIR .. "src/devices/bus/nubus/nubus_wsportrait.h",
+ MAME_DIR .. "src/devices/bus/nubus/pds30_cb264.cpp",
+ MAME_DIR .. "src/devices/bus/nubus/pds30_cb264.h",
+ MAME_DIR .. "src/devices/bus/nubus/pds30_procolor816.cpp",
+ MAME_DIR .. "src/devices/bus/nubus/pds30_procolor816.h",
+ MAME_DIR .. "src/devices/bus/nubus/pds30_sigmalview.cpp",
+ MAME_DIR .. "src/devices/bus/nubus/pds30_sigmalview.h",
+ MAME_DIR .. "src/devices/bus/nubus/pds30_30hr.cpp",
+ MAME_DIR .. "src/devices/bus/nubus/pds30_30hr.h",
+ MAME_DIR .. "src/devices/bus/nubus/pds30_mc30.cpp",
+ MAME_DIR .. "src/devices/bus/nubus/pds30_mc30.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/bus/centronics/ctronics.h,BUSES["CENTRONICS"] = true
+---------------------------------------------------
+
+if (BUSES["CENTRONICS"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/centronics/ctronics.cpp",
+ MAME_DIR .. "src/devices/bus/centronics/ctronics.h",
+ MAME_DIR .. "src/devices/bus/centronics/comxpl80.cpp",
+ MAME_DIR .. "src/devices/bus/centronics/comxpl80.h",
+ MAME_DIR .. "src/devices/bus/centronics/covox.cpp",
+ MAME_DIR .. "src/devices/bus/centronics/covox.h",
+ MAME_DIR .. "src/devices/bus/centronics/dsjoy.cpp",
+ MAME_DIR .. "src/devices/bus/centronics/dsjoy.h",
+ MAME_DIR .. "src/devices/bus/centronics/epson_ex800.cpp",
+ MAME_DIR .. "src/devices/bus/centronics/epson_ex800.h",
+ MAME_DIR .. "src/devices/bus/centronics/epson_lx800.cpp",
+ MAME_DIR .. "src/devices/bus/centronics/epson_lx800.h",
+ MAME_DIR .. "src/devices/bus/centronics/epson_lx810l.cpp",
+ MAME_DIR .. "src/devices/bus/centronics/epson_lx810l.h",
+ MAME_DIR .. "src/devices/bus/centronics/nec_p72.cpp",
+ MAME_DIR .. "src/devices/bus/centronics/nec_p72.h",
+ MAME_DIR .. "src/devices/bus/centronics/printer.cpp",
+ MAME_DIR .. "src/devices/bus/centronics/printer.h",
+ MAME_DIR .. "src/devices/bus/centronics/digiblst.cpp",
+ MAME_DIR .. "src/devices/bus/centronics/digiblst.h",
+ }
+
+ dependency {
+ { MAME_DIR .. "src/devices/bus/centronics/epson_ex800.cpp", GEN_DIR .. "emu/layout/ex800.lh" },
+ { MAME_DIR .. "src/devices/bus/centronics/epson_lx800.cpp", GEN_DIR .. "emu/layout/lx800.lh" },
+ { MAME_DIR .. "src/devices/bus/centronics/epson_lx810l.cpp", GEN_DIR .. "emu/layout/lx800.lh" },
+ }
+
+ custombuildtask {
+ layoutbuildtask("emu/layout", "ex800"),
+ layoutbuildtask("emu/layout", "lx800"),
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/bus/rs232/rs232.h,BUSES["RS232"] = true
+---------------------------------------------------
+
+if (BUSES["RS232"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/rs232/keyboard.cpp",
+ MAME_DIR .. "src/devices/bus/rs232/keyboard.h",
+ MAME_DIR .. "src/devices/bus/rs232/loopback.cpp",
+ MAME_DIR .. "src/devices/bus/rs232/loopback.h",
+ MAME_DIR .. "src/devices/bus/rs232/null_modem.cpp",
+ MAME_DIR .. "src/devices/bus/rs232/null_modem.h",
+ MAME_DIR .. "src/devices/bus/rs232/printer.cpp",
+ MAME_DIR .. "src/devices/bus/rs232/printer.h",
+ MAME_DIR .. "src/devices/bus/rs232/rs232.cpp",
+ MAME_DIR .. "src/devices/bus/rs232/rs232.h",
+ MAME_DIR .. "src/devices/bus/rs232/pty.cpp",
+ MAME_DIR .. "src/devices/bus/rs232/pty.h",
+ MAME_DIR .. "src/devices/bus/rs232/ser_mouse.cpp",
+ MAME_DIR .. "src/devices/bus/rs232/ser_mouse.h",
+ MAME_DIR .. "src/devices/bus/rs232/sun_kbd.cpp",
+ MAME_DIR .. "src/devices/bus/rs232/sun_kbd.h",
+ MAME_DIR .. "src/devices/bus/rs232/terminal.cpp",
+ MAME_DIR .. "src/devices/bus/rs232/terminal.h",
+ MAME_DIR .. "src/devices/bus/rs232/xvd701.cpp",
+ MAME_DIR .. "src/devices/bus/rs232/xvd701.h",
+ MAME_DIR .. "src/devices/bus/rs232/ie15.cpp",
+ MAME_DIR .. "src/devices/bus/rs232/ie15.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/bus/midi/midi.h,BUSES["MIDI"] = true
+---------------------------------------------------
+
+if (BUSES["MIDI"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/midi/midi.cpp",
+ MAME_DIR .. "src/devices/bus/midi/midi.h",
+ MAME_DIR .. "src/devices/bus/midi/midiinport.cpp",
+ MAME_DIR .. "src/devices/bus/midi/midiinport.h",
+ MAME_DIR .. "src/devices/bus/midi/midioutport.cpp",
+ MAME_DIR .. "src/devices/bus/midi/midioutport.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/bus/lpci/pci.h,BUSES["LPCI"] = true
+---------------------------------------------------
+
+if (BUSES["LPCI"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/lpci/pci.cpp",
+ MAME_DIR .. "src/devices/bus/lpci/pci.h",
+ MAME_DIR .. "src/devices/bus/lpci/cirrus.cpp",
+ MAME_DIR .. "src/devices/bus/lpci/cirrus.h",
+ MAME_DIR .. "src/devices/bus/lpci/i82371ab.cpp",
+ MAME_DIR .. "src/devices/bus/lpci/i82371ab.h",
+ MAME_DIR .. "src/devices/bus/lpci/i82371sb.cpp",
+ MAME_DIR .. "src/devices/bus/lpci/i82371sb.h",
+ MAME_DIR .. "src/devices/bus/lpci/i82439tx.cpp",
+ MAME_DIR .. "src/devices/bus/lpci/i82439tx.h",
+ MAME_DIR .. "src/devices/bus/lpci/northbridge.cpp",
+ MAME_DIR .. "src/devices/bus/lpci/northbridge.h",
+ MAME_DIR .. "src/devices/bus/lpci/southbridge.cpp",
+ MAME_DIR .. "src/devices/bus/lpci/southbridge.h",
+ MAME_DIR .. "src/devices/bus/lpci/mpc105.cpp",
+ MAME_DIR .. "src/devices/bus/lpci/mpc105.h",
+ MAME_DIR .. "src/devices/bus/lpci/vt82c505.cpp",
+ MAME_DIR .. "src/devices/bus/lpci/vt82c505.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/bus/nes/nes_slot.h,BUSES["NES"] = true
+---------------------------------------------------
+
+if (BUSES["NES"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/nes/nes_slot.cpp",
+ MAME_DIR .. "src/devices/bus/nes/nes_slot.h",
+ MAME_DIR .. "src/devices/bus/nes/nes_ines.hxx",
+ MAME_DIR .. "src/devices/bus/nes/nes_pcb.hxx",
+ MAME_DIR .. "src/devices/bus/nes/nes_unif.hxx",
+ MAME_DIR .. "src/devices/bus/nes/nes_carts.cpp",
+ MAME_DIR .. "src/devices/bus/nes/nes_carts.h",
+ MAME_DIR .. "src/devices/bus/nes/2a03pur.cpp",
+ MAME_DIR .. "src/devices/bus/nes/2a03pur.h",
+ MAME_DIR .. "src/devices/bus/nes/act53.cpp",
+ MAME_DIR .. "src/devices/bus/nes/act53.h",
+ MAME_DIR .. "src/devices/bus/nes/aladdin.cpp",
+ MAME_DIR .. "src/devices/bus/nes/aladdin.h",
+ MAME_DIR .. "src/devices/bus/nes/ave.cpp",
+ MAME_DIR .. "src/devices/bus/nes/ave.h",
+ MAME_DIR .. "src/devices/bus/nes/bandai.cpp",
+ MAME_DIR .. "src/devices/bus/nes/bandai.h",
+ MAME_DIR .. "src/devices/bus/nes/benshieng.cpp",
+ MAME_DIR .. "src/devices/bus/nes/benshieng.h",
+ MAME_DIR .. "src/devices/bus/nes/bootleg.cpp",
+ MAME_DIR .. "src/devices/bus/nes/bootleg.h",
+ MAME_DIR .. "src/devices/bus/nes/camerica.cpp",
+ MAME_DIR .. "src/devices/bus/nes/camerica.h",
+ MAME_DIR .. "src/devices/bus/nes/cne.cpp",
+ MAME_DIR .. "src/devices/bus/nes/cne.h",
+ MAME_DIR .. "src/devices/bus/nes/cony.cpp",
+ MAME_DIR .. "src/devices/bus/nes/cony.h",
+ MAME_DIR .. "src/devices/bus/nes/datach.cpp",
+ MAME_DIR .. "src/devices/bus/nes/datach.h",
+ MAME_DIR .. "src/devices/bus/nes/discrete.cpp",
+ MAME_DIR .. "src/devices/bus/nes/discrete.h",
+ MAME_DIR .. "src/devices/bus/nes/disksys.cpp",
+ MAME_DIR .. "src/devices/bus/nes/disksys.h",
+ MAME_DIR .. "src/devices/bus/nes/event.cpp",
+ MAME_DIR .. "src/devices/bus/nes/event.h",
+ MAME_DIR .. "src/devices/bus/nes/ggenie.cpp",
+ MAME_DIR .. "src/devices/bus/nes/ggenie.h",
+ MAME_DIR .. "src/devices/bus/nes/henggedianzi.cpp",
+ MAME_DIR .. "src/devices/bus/nes/henggedianzi.h",
+ MAME_DIR .. "src/devices/bus/nes/hes.cpp",
+ MAME_DIR .. "src/devices/bus/nes/hes.h",
+ MAME_DIR .. "src/devices/bus/nes/hosenkan.cpp",
+ MAME_DIR .. "src/devices/bus/nes/hosenkan.h",
+ MAME_DIR .. "src/devices/bus/nes/irem.cpp",
+ MAME_DIR .. "src/devices/bus/nes/irem.h",
+ MAME_DIR .. "src/devices/bus/nes/jaleco.cpp",
+ MAME_DIR .. "src/devices/bus/nes/jaleco.h",
+ MAME_DIR .. "src/devices/bus/nes/jy.cpp",
+ MAME_DIR .. "src/devices/bus/nes/jy.h",
+ MAME_DIR .. "src/devices/bus/nes/kaiser.cpp",
+ MAME_DIR .. "src/devices/bus/nes/kaiser.h",
+ MAME_DIR .. "src/devices/bus/nes/karastudio.cpp",
+ MAME_DIR .. "src/devices/bus/nes/karastudio.h",
+ MAME_DIR .. "src/devices/bus/nes/konami.cpp",
+ MAME_DIR .. "src/devices/bus/nes/konami.h",
+ MAME_DIR .. "src/devices/bus/nes/legacy.cpp",
+ MAME_DIR .. "src/devices/bus/nes/legacy.h",
+ MAME_DIR .. "src/devices/bus/nes/mmc1.cpp",
+ MAME_DIR .. "src/devices/bus/nes/mmc1.h",
+ MAME_DIR .. "src/devices/bus/nes/mmc2.cpp",
+ MAME_DIR .. "src/devices/bus/nes/mmc2.h",
+ MAME_DIR .. "src/devices/bus/nes/mmc3.cpp",
+ MAME_DIR .. "src/devices/bus/nes/mmc3.h",
+ MAME_DIR .. "src/devices/bus/nes/mmc3_clones.cpp",
+ MAME_DIR .. "src/devices/bus/nes/mmc3_clones.h",
+ MAME_DIR .. "src/devices/bus/nes/mmc5.cpp",
+ MAME_DIR .. "src/devices/bus/nes/mmc5.h",
+ MAME_DIR .. "src/devices/bus/nes/multigame.cpp",
+ MAME_DIR .. "src/devices/bus/nes/multigame.h",
+ MAME_DIR .. "src/devices/bus/nes/namcot.cpp",
+ MAME_DIR .. "src/devices/bus/nes/namcot.h",
+ MAME_DIR .. "src/devices/bus/nes/nanjing.cpp",
+ MAME_DIR .. "src/devices/bus/nes/nanjing.h",
+ MAME_DIR .. "src/devices/bus/nes/ntdec.cpp",
+ MAME_DIR .. "src/devices/bus/nes/ntdec.h",
+ MAME_DIR .. "src/devices/bus/nes/nxrom.cpp",
+ MAME_DIR .. "src/devices/bus/nes/nxrom.h",
+ MAME_DIR .. "src/devices/bus/nes/pirate.cpp",
+ MAME_DIR .. "src/devices/bus/nes/pirate.h",
+ MAME_DIR .. "src/devices/bus/nes/pt554.cpp",
+ MAME_DIR .. "src/devices/bus/nes/pt554.h",
+ MAME_DIR .. "src/devices/bus/nes/racermate.cpp",
+ MAME_DIR .. "src/devices/bus/nes/racermate.h",
+ MAME_DIR .. "src/devices/bus/nes/rcm.cpp",
+ MAME_DIR .. "src/devices/bus/nes/rcm.h",
+ MAME_DIR .. "src/devices/bus/nes/rexsoft.cpp",
+ MAME_DIR .. "src/devices/bus/nes/rexsoft.h",
+ MAME_DIR .. "src/devices/bus/nes/sachen.cpp",
+ MAME_DIR .. "src/devices/bus/nes/sachen.h",
+ MAME_DIR .. "src/devices/bus/nes/somari.cpp",
+ MAME_DIR .. "src/devices/bus/nes/somari.h",
+ MAME_DIR .. "src/devices/bus/nes/subor.cpp",
+ MAME_DIR .. "src/devices/bus/nes/subor.h",
+ MAME_DIR .. "src/devices/bus/nes/sunsoft.cpp",
+ MAME_DIR .. "src/devices/bus/nes/sunsoft.h",
+ MAME_DIR .. "src/devices/bus/nes/sunsoft_dcs.cpp",
+ MAME_DIR .. "src/devices/bus/nes/sunsoft_dcs.h",
+ MAME_DIR .. "src/devices/bus/nes/taito.cpp",
+ MAME_DIR .. "src/devices/bus/nes/taito.h",
+ MAME_DIR .. "src/devices/bus/nes/tengen.cpp",
+ MAME_DIR .. "src/devices/bus/nes/tengen.h",
+ MAME_DIR .. "src/devices/bus/nes/txc.cpp",
+ MAME_DIR .. "src/devices/bus/nes/txc.h",
+ MAME_DIR .. "src/devices/bus/nes/waixing.cpp",
+ MAME_DIR .. "src/devices/bus/nes/waixing.h",
+ MAME_DIR .. "src/devices/bus/nes/zemina.cpp",
+ MAME_DIR .. "src/devices/bus/nes/zemina.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/bus/nes_ctrl/ctrl.h,BUSES["NES_CTRL"] = true
+---------------------------------------------------
+
+if (BUSES["NES_CTRL"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/nes_ctrl/ctrl.cpp",
+ MAME_DIR .. "src/devices/bus/nes_ctrl/ctrl.h",
+ MAME_DIR .. "src/devices/bus/nes_ctrl/joypad.cpp",
+ MAME_DIR .. "src/devices/bus/nes_ctrl/joypad.h",
+ MAME_DIR .. "src/devices/bus/nes_ctrl/4score.cpp",
+ MAME_DIR .. "src/devices/bus/nes_ctrl/4score.h",
+ MAME_DIR .. "src/devices/bus/nes_ctrl/arkpaddle.cpp",
+ MAME_DIR .. "src/devices/bus/nes_ctrl/arkpaddle.h",
+ MAME_DIR .. "src/devices/bus/nes_ctrl/bcbattle.cpp",
+ MAME_DIR .. "src/devices/bus/nes_ctrl/bcbattle.h",
+ MAME_DIR .. "src/devices/bus/nes_ctrl/ftrainer.cpp",
+ MAME_DIR .. "src/devices/bus/nes_ctrl/ftrainer.h",
+ MAME_DIR .. "src/devices/bus/nes_ctrl/fckeybrd.cpp",
+ MAME_DIR .. "src/devices/bus/nes_ctrl/fckeybrd.h",
+ MAME_DIR .. "src/devices/bus/nes_ctrl/hori.cpp",
+ MAME_DIR .. "src/devices/bus/nes_ctrl/hori.h",
+ MAME_DIR .. "src/devices/bus/nes_ctrl/konamihs.cpp",
+ MAME_DIR .. "src/devices/bus/nes_ctrl/konamihs.h",
+ MAME_DIR .. "src/devices/bus/nes_ctrl/miracle.cpp",
+ MAME_DIR .. "src/devices/bus/nes_ctrl/miracle.h",
+ MAME_DIR .. "src/devices/bus/nes_ctrl/mjpanel.cpp",
+ MAME_DIR .. "src/devices/bus/nes_ctrl/mjpanel.h",
+ MAME_DIR .. "src/devices/bus/nes_ctrl/pachinko.cpp",
+ MAME_DIR .. "src/devices/bus/nes_ctrl/pachinko.h",
+ MAME_DIR .. "src/devices/bus/nes_ctrl/partytap.cpp",
+ MAME_DIR .. "src/devices/bus/nes_ctrl/partytap.h",
+ MAME_DIR .. "src/devices/bus/nes_ctrl/powerpad.cpp",
+ MAME_DIR .. "src/devices/bus/nes_ctrl/powerpad.h",
+ MAME_DIR .. "src/devices/bus/nes_ctrl/suborkey.cpp",
+ MAME_DIR .. "src/devices/bus/nes_ctrl/suborkey.h",
+ MAME_DIR .. "src/devices/bus/nes_ctrl/zapper.cpp",
+ MAME_DIR .. "src/devices/bus/nes_ctrl/zapper.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/bus/snes/snes_slot.h,BUSES["SNES"] = true
+---------------------------------------------------
+
+if (BUSES["SNES"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/snes/snes_slot.cpp",
+ MAME_DIR .. "src/devices/bus/snes/snes_slot.h",
+ MAME_DIR .. "src/devices/bus/snes/snes_carts.cpp",
+ MAME_DIR .. "src/devices/bus/snes/snes_carts.h",
+ MAME_DIR .. "src/devices/bus/snes/bsx.cpp",
+ MAME_DIR .. "src/devices/bus/snes/bsx.h",
+ MAME_DIR .. "src/devices/bus/snes/event.cpp",
+ MAME_DIR .. "src/devices/bus/snes/event.h",
+ MAME_DIR .. "src/devices/bus/snes/rom.cpp",
+ MAME_DIR .. "src/devices/bus/snes/rom.h",
+ MAME_DIR .. "src/devices/bus/snes/rom21.cpp",
+ MAME_DIR .. "src/devices/bus/snes/rom21.h",
+ MAME_DIR .. "src/devices/bus/snes/sa1.cpp",
+ MAME_DIR .. "src/devices/bus/snes/sa1.h",
+ MAME_DIR .. "src/devices/bus/snes/sdd1.cpp",
+ MAME_DIR .. "src/devices/bus/snes/sdd1.h",
+ MAME_DIR .. "src/devices/bus/snes/sfx.cpp",
+ MAME_DIR .. "src/devices/bus/snes/sfx.h",
+ MAME_DIR .. "src/devices/bus/snes/sgb.cpp",
+ MAME_DIR .. "src/devices/bus/snes/sgb.h",
+ MAME_DIR .. "src/devices/bus/snes/spc7110.cpp",
+ MAME_DIR .. "src/devices/bus/snes/spc7110.h",
+ MAME_DIR .. "src/devices/bus/snes/sufami.cpp",
+ MAME_DIR .. "src/devices/bus/snes/sufami.h",
+ MAME_DIR .. "src/devices/bus/snes/upd.cpp",
+ MAME_DIR .. "src/devices/bus/snes/upd.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/bus/snes_ctrl/ctrl.h,BUSES["SNES_CTRL"] = true
+---------------------------------------------------
+
+if (BUSES["SNES_CTRL"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/snes_ctrl/ctrl.cpp",
+ MAME_DIR .. "src/devices/bus/snes_ctrl/ctrl.h",
+ MAME_DIR .. "src/devices/bus/snes_ctrl/bcbattle.cpp",
+ MAME_DIR .. "src/devices/bus/snes_ctrl/bcbattle.h",
+ MAME_DIR .. "src/devices/bus/snes_ctrl/joypad.cpp",
+ MAME_DIR .. "src/devices/bus/snes_ctrl/joypad.h",
+ MAME_DIR .. "src/devices/bus/snes_ctrl/miracle.cpp",
+ MAME_DIR .. "src/devices/bus/snes_ctrl/miracle.h",
+ MAME_DIR .. "src/devices/bus/snes_ctrl/mouse.cpp",
+ MAME_DIR .. "src/devices/bus/snes_ctrl/mouse.h",
+ MAME_DIR .. "src/devices/bus/snes_ctrl/multitap.cpp",
+ MAME_DIR .. "src/devices/bus/snes_ctrl/multitap.h",
+ MAME_DIR .. "src/devices/bus/snes_ctrl/pachinko.cpp",
+ MAME_DIR .. "src/devices/bus/snes_ctrl/pachinko.h",
+ MAME_DIR .. "src/devices/bus/snes_ctrl/sscope.cpp",
+ MAME_DIR .. "src/devices/bus/snes_ctrl/sscope.h",
+ MAME_DIR .. "src/devices/bus/snes_ctrl/twintap.cpp",
+ MAME_DIR .. "src/devices/bus/snes_ctrl/twintap.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/bus/vboy/slot.h,BUSES["VBOY"] = true
+---------------------------------------------------
+if (BUSES["VBOY"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/vboy/slot.cpp",
+ MAME_DIR .. "src/devices/bus/vboy/slot.h",
+ MAME_DIR .. "src/devices/bus/vboy/rom.cpp",
+ MAME_DIR .. "src/devices/bus/vboy/rom.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/bus/megadrive/md_slot.h,BUSES["MEGADRIVE"] = true
+---------------------------------------------------
+
+if (BUSES["MEGADRIVE"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/megadrive/md_slot.cpp",
+ MAME_DIR .. "src/devices/bus/megadrive/md_slot.h",
+ MAME_DIR .. "src/devices/bus/megadrive/md_carts.cpp",
+ MAME_DIR .. "src/devices/bus/megadrive/md_carts.h",
+ MAME_DIR .. "src/devices/bus/megadrive/eeprom.cpp",
+ MAME_DIR .. "src/devices/bus/megadrive/eeprom.h",
+ MAME_DIR .. "src/devices/bus/megadrive/ggenie.cpp",
+ MAME_DIR .. "src/devices/bus/megadrive/ggenie.h",
+ MAME_DIR .. "src/devices/bus/megadrive/jcart.cpp",
+ MAME_DIR .. "src/devices/bus/megadrive/jcart.h",
+ MAME_DIR .. "src/devices/bus/megadrive/rom.cpp",
+ MAME_DIR .. "src/devices/bus/megadrive/rom.h",
+ MAME_DIR .. "src/devices/bus/megadrive/sk.cpp",
+ MAME_DIR .. "src/devices/bus/megadrive/sk.h",
+ MAME_DIR .. "src/devices/bus/megadrive/stm95.cpp",
+ MAME_DIR .. "src/devices/bus/megadrive/stm95.h",
+ MAME_DIR .. "src/devices/bus/megadrive/svp.cpp",
+ MAME_DIR .. "src/devices/bus/megadrive/svp.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/bus/neogeo/slot.h,BUSES["NEOGEO"] = true
+---------------------------------------------------
+
+if (BUSES["NEOGEO"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/neogeo/slot.cpp",
+ MAME_DIR .. "src/devices/bus/neogeo/slot.h",
+ MAME_DIR .. "src/devices/bus/neogeo/carts.cpp",
+ MAME_DIR .. "src/devices/bus/neogeo/carts.h",
+ MAME_DIR .. "src/devices/bus/neogeo/rom.cpp",
+ MAME_DIR .. "src/devices/bus/neogeo/rom.h",
+ MAME_DIR .. "src/devices/bus/neogeo/fatfury2.cpp",
+ MAME_DIR .. "src/devices/bus/neogeo/fatfury2.h",
+ MAME_DIR .. "src/devices/bus/neogeo/kof98.cpp",
+ MAME_DIR .. "src/devices/bus/neogeo/kof98.h",
+ MAME_DIR .. "src/devices/bus/neogeo/mslugx.cpp",
+ MAME_DIR .. "src/devices/bus/neogeo/mslugx.h",
+ MAME_DIR .. "src/devices/bus/neogeo/cmc.cpp",
+ MAME_DIR .. "src/devices/bus/neogeo/cmc.h",
+ MAME_DIR .. "src/devices/bus/neogeo/sma.cpp",
+ MAME_DIR .. "src/devices/bus/neogeo/sma.h",
+ MAME_DIR .. "src/devices/bus/neogeo/pcm2.cpp",
+ MAME_DIR .. "src/devices/bus/neogeo/pcm2.h",
+ MAME_DIR .. "src/devices/bus/neogeo/kof2k2.cpp",
+ MAME_DIR .. "src/devices/bus/neogeo/kof2k2.h",
+ MAME_DIR .. "src/devices/bus/neogeo/pvc.cpp",
+ MAME_DIR .. "src/devices/bus/neogeo/pvc.h",
+ MAME_DIR .. "src/devices/bus/neogeo/boot_cthd.cpp",
+ MAME_DIR .. "src/devices/bus/neogeo/boot_cthd.h",
+ MAME_DIR .. "src/devices/bus/neogeo/boot_misc.cpp",
+ MAME_DIR .. "src/devices/bus/neogeo/boot_misc.h",
+ MAME_DIR .. "src/devices/bus/neogeo/boot_svc.cpp",
+ MAME_DIR .. "src/devices/bus/neogeo/boot_svc.h",
+ MAME_DIR .. "src/devices/bus/neogeo/boot_kof2k2.cpp",
+ MAME_DIR .. "src/devices/bus/neogeo/boot_kof2k2.h",
+ MAME_DIR .. "src/devices/bus/neogeo/boot_kof2k3.cpp",
+ MAME_DIR .. "src/devices/bus/neogeo/boot_kof2k3.h",
+ MAME_DIR .. "src/devices/bus/neogeo/sbp.cpp",
+ MAME_DIR .. "src/devices/bus/neogeo/sbp.h",
+ MAME_DIR .. "src/devices/bus/neogeo/prot_fatfury2.cpp",
+ MAME_DIR .. "src/devices/bus/neogeo/prot_fatfury2.h",
+ MAME_DIR .. "src/devices/bus/neogeo/prot_kof98.cpp",
+ MAME_DIR .. "src/devices/bus/neogeo/prot_kof98.h",
+ MAME_DIR .. "src/devices/bus/neogeo/prot_mslugx.cpp",
+ MAME_DIR .. "src/devices/bus/neogeo/prot_mslugx.h",
+ MAME_DIR .. "src/devices/bus/neogeo/prot_cmc.cpp",
+ MAME_DIR .. "src/devices/bus/neogeo/prot_cmc.h",
+ MAME_DIR .. "src/devices/bus/neogeo/prot_sma.cpp",
+ MAME_DIR .. "src/devices/bus/neogeo/prot_sma.h",
+ MAME_DIR .. "src/devices/bus/neogeo/prot_pcm2.cpp",
+ MAME_DIR .. "src/devices/bus/neogeo/prot_pcm2.h",
+ MAME_DIR .. "src/devices/bus/neogeo/prot_kof2k2.cpp",
+ MAME_DIR .. "src/devices/bus/neogeo/prot_kof2k2.h",
+ MAME_DIR .. "src/devices/bus/neogeo/prot_pvc.cpp",
+ MAME_DIR .. "src/devices/bus/neogeo/prot_pvc.h",
+ MAME_DIR .. "src/devices/bus/neogeo/prot_cthd.cpp",
+ MAME_DIR .. "src/devices/bus/neogeo/prot_cthd.h",
+ MAME_DIR .. "src/devices/bus/neogeo/prot_kof2k3bl.cpp",
+ MAME_DIR .. "src/devices/bus/neogeo/prot_kof2k3bl.h",
+ MAME_DIR .. "src/devices/bus/neogeo/boot_kof10th.cpp",
+ MAME_DIR .. "src/devices/bus/neogeo/boot_kof10th.h",
+ MAME_DIR .. "src/devices/bus/neogeo/prot_misc.cpp",
+ MAME_DIR .. "src/devices/bus/neogeo/prot_misc.h",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/bus/neogeo_ctrl/ctrl.h,BUSES["NEOGEO_CTRL"] = true
+---------------------------------------------------
+
+if (BUSES["NEOGEO_CTRL"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/neogeo_ctrl/ctrl.cpp",
+ MAME_DIR .. "src/devices/bus/neogeo_ctrl/ctrl.h",
+ MAME_DIR .. "src/devices/bus/neogeo_ctrl/joystick.cpp",
+ MAME_DIR .. "src/devices/bus/neogeo_ctrl/joystick.h",
+ MAME_DIR .. "src/devices/bus/neogeo_ctrl/mahjong.cpp",
+ MAME_DIR .. "src/devices/bus/neogeo_ctrl/mahjong.h",
+ MAME_DIR .. "src/devices/bus/neogeo_ctrl/dial.cpp",
+ MAME_DIR .. "src/devices/bus/neogeo_ctrl/dial.h",
+ MAME_DIR .. "src/devices/bus/neogeo_ctrl/irrmaze.cpp",
+ MAME_DIR .. "src/devices/bus/neogeo_ctrl/irrmaze.h",
+ MAME_DIR .. "src/devices/bus/neogeo_ctrl/kizuna4p.cpp",
+ MAME_DIR .. "src/devices/bus/neogeo_ctrl/kizuna4p.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/bus/sat_ctrl/ctrl.h,BUSES["SAT_CTRL"] = true
+---------------------------------------------------
+
+if (BUSES["SAT_CTRL"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/sat_ctrl/ctrl.cpp",
+ MAME_DIR .. "src/devices/bus/sat_ctrl/ctrl.h",
+ MAME_DIR .. "src/devices/bus/sat_ctrl/analog.cpp",
+ MAME_DIR .. "src/devices/bus/sat_ctrl/analog.h",
+ MAME_DIR .. "src/devices/bus/sat_ctrl/joy.cpp",
+ MAME_DIR .. "src/devices/bus/sat_ctrl/joy.h",
+ MAME_DIR .. "src/devices/bus/sat_ctrl/joy_md.cpp",
+ MAME_DIR .. "src/devices/bus/sat_ctrl/joy_md.h",
+ MAME_DIR .. "src/devices/bus/sat_ctrl/keybd.cpp",
+ MAME_DIR .. "src/devices/bus/sat_ctrl/keybd.h",
+ MAME_DIR .. "src/devices/bus/sat_ctrl/mouse.cpp",
+ MAME_DIR .. "src/devices/bus/sat_ctrl/mouse.h",
+ MAME_DIR .. "src/devices/bus/sat_ctrl/multitap.cpp",
+ MAME_DIR .. "src/devices/bus/sat_ctrl/multitap.h",
+ MAME_DIR .. "src/devices/bus/sat_ctrl/pointer.cpp",
+ MAME_DIR .. "src/devices/bus/sat_ctrl/pointer.h",
+ MAME_DIR .. "src/devices/bus/sat_ctrl/racing.cpp",
+ MAME_DIR .. "src/devices/bus/sat_ctrl/racing.h",
+ MAME_DIR .. "src/devices/bus/sat_ctrl/segatap.cpp",
+ MAME_DIR .. "src/devices/bus/sat_ctrl/segatap.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/bus/saturn/sat_slot.h,BUSES["SATURN"] = true
+---------------------------------------------------
+
+if (BUSES["SATURN"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/saturn/sat_slot.cpp",
+ MAME_DIR .. "src/devices/bus/saturn/sat_slot.h",
+ MAME_DIR .. "src/devices/bus/saturn/bram.cpp",
+ MAME_DIR .. "src/devices/bus/saturn/bram.h",
+ MAME_DIR .. "src/devices/bus/saturn/dram.cpp",
+ MAME_DIR .. "src/devices/bus/saturn/dram.h",
+ MAME_DIR .. "src/devices/bus/saturn/rom.cpp",
+ MAME_DIR .. "src/devices/bus/saturn/rom.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/bus/sega8/sega8_slot.h,BUSES["SEGA8"] = true
+---------------------------------------------------
+
+if (BUSES["SEGA8"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/sega8/sega8_slot.cpp",
+ MAME_DIR .. "src/devices/bus/sega8/sega8_slot.h",
+ MAME_DIR .. "src/devices/bus/sega8/rom.cpp",
+ MAME_DIR .. "src/devices/bus/sega8/rom.h",
+ MAME_DIR .. "src/devices/bus/sega8/ccatch.cpp",
+ MAME_DIR .. "src/devices/bus/sega8/ccatch.h",
+ MAME_DIR .. "src/devices/bus/sega8/mgear.cpp",
+ MAME_DIR .. "src/devices/bus/sega8/mgear.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/bus/sg1000_exp/sg1000exp.h,BUSES["SG1000_EXP"] = true
+---------------------------------------------------
+
+if (BUSES["SG1000_EXP"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/sg1000_exp/sg1000exp.cpp",
+ MAME_DIR .. "src/devices/bus/sg1000_exp/sg1000exp.h",
+ MAME_DIR .. "src/devices/bus/sg1000_exp/sk1100.cpp",
+ MAME_DIR .. "src/devices/bus/sg1000_exp/sk1100.h",
+ MAME_DIR .. "src/devices/bus/sg1000_exp/fm_unit.cpp",
+ MAME_DIR .. "src/devices/bus/sg1000_exp/fm_unit.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/bus/sms_ctrl/smsctrl.h,BUSES["SMS_CTRL"] = true
+---------------------------------------------------
+
+if (BUSES["SMS_CTRL"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/sms_ctrl/smsctrl.cpp",
+ MAME_DIR .. "src/devices/bus/sms_ctrl/smsctrl.h",
+ MAME_DIR .. "src/devices/bus/sms_ctrl/joypad.cpp",
+ MAME_DIR .. "src/devices/bus/sms_ctrl/joypad.h",
+ MAME_DIR .. "src/devices/bus/sms_ctrl/lphaser.cpp",
+ MAME_DIR .. "src/devices/bus/sms_ctrl/lphaser.h",
+ MAME_DIR .. "src/devices/bus/sms_ctrl/paddle.cpp",
+ MAME_DIR .. "src/devices/bus/sms_ctrl/paddle.h",
+ MAME_DIR .. "src/devices/bus/sms_ctrl/rfu.cpp",
+ MAME_DIR .. "src/devices/bus/sms_ctrl/rfu.h",
+ MAME_DIR .. "src/devices/bus/sms_ctrl/sports.cpp",
+ MAME_DIR .. "src/devices/bus/sms_ctrl/sports.h",
+ MAME_DIR .. "src/devices/bus/sms_ctrl/sportsjp.cpp",
+ MAME_DIR .. "src/devices/bus/sms_ctrl/sportsjp.h",
+ MAME_DIR .. "src/devices/bus/sms_ctrl/multitap.cpp",
+ MAME_DIR .. "src/devices/bus/sms_ctrl/multitap.h",
+ MAME_DIR .. "src/devices/bus/sms_ctrl/graphic.cpp",
+ MAME_DIR .. "src/devices/bus/sms_ctrl/graphic.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/bus/sms_exp/smsexp.h,BUSES["SMS_EXP"] = true
+---------------------------------------------------
+
+if (BUSES["SMS_EXP"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/sms_exp/smsexp.cpp",
+ MAME_DIR .. "src/devices/bus/sms_exp/smsexp.h",
+ MAME_DIR .. "src/devices/bus/sms_exp/gender.cpp",
+ MAME_DIR .. "src/devices/bus/sms_exp/gender.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/bus/ti8x/ti8x.h,BUSES["TI8X"] = true
+---------------------------------------------------
+
+if (BUSES["TI8X"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/ti8x/bitsocket.cpp",
+ MAME_DIR .. "src/devices/bus/ti8x/bitsocket.h",
+ MAME_DIR .. "src/devices/bus/ti8x/graphlinkhle.cpp",
+ MAME_DIR .. "src/devices/bus/ti8x/graphlinkhle.h",
+ MAME_DIR .. "src/devices/bus/ti8x/teeconn.cpp",
+ MAME_DIR .. "src/devices/bus/ti8x/teeconn.h",
+ MAME_DIR .. "src/devices/bus/ti8x/ti8x.cpp",
+ MAME_DIR .. "src/devices/bus/ti8x/ti8x.h",
+ MAME_DIR .. "src/devices/bus/ti8x/tispeaker.cpp",
+ MAME_DIR .. "src/devices/bus/ti8x/tispeaker.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/bus/ti99x/990_dk.h,BUSES["TI99X"] = true
+--@src/devices/bus/ti99x/990_tap.h,BUSES["TI99X"] = true
+--@src/devices/bus/ti99x/990_hd.h,BUSES["TI99X"] = true
+--@src/devices/bus/ti99x/genboard.h,BUSES["TI99X"] = true
+--@src/devices/bus/ti99x/joyport.h,BUSES["TI99X"] = true
+---------------------------------------------------
+
+if (BUSES["TI99X"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/ti99x/990_dk.cpp",
+ MAME_DIR .. "src/devices/bus/ti99x/990_dk.h",
+ MAME_DIR .. "src/devices/bus/ti99x/990_hd.cpp",
+ MAME_DIR .. "src/devices/bus/ti99x/990_hd.h",
+ MAME_DIR .. "src/devices/bus/ti99x/990_tap.cpp",
+ MAME_DIR .. "src/devices/bus/ti99x/990_tap.h",
+ MAME_DIR .. "src/devices/bus/ti99x/998board.cpp",
+ MAME_DIR .. "src/devices/bus/ti99x/998board.h",
+ MAME_DIR .. "src/devices/bus/ti99x/busmouse.cpp",
+ MAME_DIR .. "src/devices/bus/ti99x/busmouse.h",
+ MAME_DIR .. "src/devices/bus/ti99x/colorbus.cpp",
+ MAME_DIR .. "src/devices/bus/ti99x/colorbus.h",
+ MAME_DIR .. "src/devices/bus/ti99x/datamux.cpp",
+ MAME_DIR .. "src/devices/bus/ti99x/datamux.h",
+ MAME_DIR .. "src/devices/bus/ti99x/genboard.cpp",
+ MAME_DIR .. "src/devices/bus/ti99x/genboard.h",
+ MAME_DIR .. "src/devices/bus/ti99x/gromport.cpp",
+ MAME_DIR .. "src/devices/bus/ti99x/gromport.h",
+ MAME_DIR .. "src/devices/bus/ti99x/handset.cpp",
+ MAME_DIR .. "src/devices/bus/ti99x/handset.h",
+ MAME_DIR .. "src/devices/bus/ti99x/joyport.cpp",
+ MAME_DIR .. "src/devices/bus/ti99x/joyport.h",
+ MAME_DIR .. "src/devices/bus/ti99x/mecmouse.cpp",
+ MAME_DIR .. "src/devices/bus/ti99x/mecmouse.h",
+ MAME_DIR .. "src/devices/bus/ti99x/ti99defs.cpp",
+ MAME_DIR .. "src/devices/bus/ti99x/ti99defs.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/bus/ti99_peb/peribox.h,BUSES["TI99PEB"] = true
+---------------------------------------------------
+
+if (BUSES["TI99PEB"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/ti99_peb/peribox.cpp",
+ MAME_DIR .. "src/devices/bus/ti99_peb/peribox.h",
+ MAME_DIR .. "src/devices/bus/ti99_peb/bwg.cpp",
+ MAME_DIR .. "src/devices/bus/ti99_peb/bwg.h",
+ MAME_DIR .. "src/devices/bus/ti99_peb/evpc.cpp",
+ MAME_DIR .. "src/devices/bus/ti99_peb/evpc.h",
+ MAME_DIR .. "src/devices/bus/ti99_peb/hfdc.cpp",
+ MAME_DIR .. "src/devices/bus/ti99_peb/hfdc.h",
+ MAME_DIR .. "src/devices/bus/ti99_peb/horizon.cpp",
+ MAME_DIR .. "src/devices/bus/ti99_peb/horizon.h",
+ MAME_DIR .. "src/devices/bus/ti99_peb/hsgpl.cpp",
+ MAME_DIR .. "src/devices/bus/ti99_peb/hsgpl.h",
+ MAME_DIR .. "src/devices/bus/ti99_peb/memex.cpp",
+ MAME_DIR .. "src/devices/bus/ti99_peb/memex.h",
+ MAME_DIR .. "src/devices/bus/ti99_peb/myarcmem.cpp",
+ MAME_DIR .. "src/devices/bus/ti99_peb/myarcmem.h",
+ MAME_DIR .. "src/devices/bus/ti99_peb/pcode.cpp",
+ MAME_DIR .. "src/devices/bus/ti99_peb/pcode.h",
+ MAME_DIR .. "src/devices/bus/ti99_peb/samsmem.cpp",
+ MAME_DIR .. "src/devices/bus/ti99_peb/samsmem.h",
+ MAME_DIR .. "src/devices/bus/ti99_peb/spchsyn.cpp",
+ MAME_DIR .. "src/devices/bus/ti99_peb/spchsyn.h",
+ MAME_DIR .. "src/devices/bus/ti99_peb/ti_32kmem.cpp",
+ MAME_DIR .. "src/devices/bus/ti99_peb/ti_32kmem.h",
+ MAME_DIR .. "src/devices/bus/ti99_peb/ti_fdc.cpp",
+ MAME_DIR .. "src/devices/bus/ti99_peb/ti_fdc.h",
+ MAME_DIR .. "src/devices/bus/ti99_peb/ti_rs232.cpp",
+ MAME_DIR .. "src/devices/bus/ti99_peb/ti_rs232.h",
+ MAME_DIR .. "src/devices/bus/ti99_peb/tn_ide.cpp",
+ MAME_DIR .. "src/devices/bus/ti99_peb/tn_ide.h",
+ MAME_DIR .. "src/devices/bus/ti99_peb/tn_usbsm.cpp",
+ MAME_DIR .. "src/devices/bus/ti99_peb/tn_usbsm.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/bus/gameboy/gb_slot.h,BUSES["GAMEBOY"] = true
+---------------------------------------------------
+
+if (BUSES["GAMEBOY"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/gameboy/gb_slot.cpp",
+ MAME_DIR .. "src/devices/bus/gameboy/gb_slot.h",
+ MAME_DIR .. "src/devices/bus/gameboy/rom.cpp",
+ MAME_DIR .. "src/devices/bus/gameboy/rom.h",
+ MAME_DIR .. "src/devices/bus/gameboy/mbc.cpp",
+ MAME_DIR .. "src/devices/bus/gameboy/mbc.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/bus/gamegear/ggext.h,BUSES["GAMEGEAR"] = true
+---------------------------------------------------
+
+if (BUSES["GAMEGEAR"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/gamegear/ggext.cpp",
+ MAME_DIR .. "src/devices/bus/gamegear/ggext.h",
+ MAME_DIR .. "src/devices/bus/gamegear/smsctrladp.cpp",
+ MAME_DIR .. "src/devices/bus/gamegear/smsctrladp.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/bus/gba/gba_slot.h,BUSES["GBA"] = true
+---------------------------------------------------
+
+if (BUSES["GBA"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/gba/gba_slot.cpp",
+ MAME_DIR .. "src/devices/bus/gba/gba_slot.h",
+ MAME_DIR .. "src/devices/bus/gba/rom.cpp",
+ MAME_DIR .. "src/devices/bus/gba/rom.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/bus/bml3/bml3bus.h,BUSES["BML3"] = true
+---------------------------------------------------
+if (BUSES["BML3"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/bml3/bml3bus.cpp",
+ MAME_DIR .. "src/devices/bus/bml3/bml3bus.h",
+ MAME_DIR .. "src/devices/bus/bml3/bml3mp1802.cpp",
+ MAME_DIR .. "src/devices/bus/bml3/bml3mp1802.h",
+ MAME_DIR .. "src/devices/bus/bml3/bml3mp1805.cpp",
+ MAME_DIR .. "src/devices/bus/bml3/bml3mp1805.h",
+ MAME_DIR .. "src/devices/bus/bml3/bml3kanji.cpp",
+ MAME_DIR .. "src/devices/bus/bml3/bml3kanji.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/bus/coco/cococart.h,BUSES["COCO"] = true
+---------------------------------------------------
+if (BUSES["COCO"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/coco/cococart.cpp",
+ MAME_DIR .. "src/devices/bus/coco/cococart.h",
+ MAME_DIR .. "src/devices/bus/coco/coco_232.cpp",
+ MAME_DIR .. "src/devices/bus/coco/coco_232.h",
+ MAME_DIR .. "src/devices/bus/coco/coco_orch90.cpp",
+ MAME_DIR .. "src/devices/bus/coco/coco_orch90.h",
+ MAME_DIR .. "src/devices/bus/coco/coco_pak.cpp",
+ MAME_DIR .. "src/devices/bus/coco/coco_pak.h",
+ MAME_DIR .. "src/devices/bus/coco/coco_fdc.cpp",
+ MAME_DIR .. "src/devices/bus/coco/coco_fdc.h",
+ MAME_DIR .. "src/devices/bus/coco/coco_multi.cpp",
+ MAME_DIR .. "src/devices/bus/coco/coco_multi.h",
+ MAME_DIR .. "src/devices/bus/coco/coco_dwsock.cpp",
+ MAME_DIR .. "src/devices/bus/coco/coco_dwsock.h",
+ MAME_DIR .. "src/devices/bus/coco/dragon_fdc.cpp",
+ MAME_DIR .. "src/devices/bus/coco/coco_t4426.cpp",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/bus/cpc/cpcexp.h,BUSES["CPC"] = true
+---------------------------------------------------
+if (BUSES["CPC"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/cpc/cpcexp.cpp",
+ MAME_DIR .. "src/devices/bus/cpc/cpcexp.h",
+ MAME_DIR .. "src/devices/bus/cpc/cpc_ssa1.cpp",
+ MAME_DIR .. "src/devices/bus/cpc/cpc_ssa1.h",
+ MAME_DIR .. "src/devices/bus/cpc/cpc_rom.cpp",
+ MAME_DIR .. "src/devices/bus/cpc/cpc_rom.h",
+ MAME_DIR .. "src/devices/bus/cpc/cpc_pds.cpp",
+ MAME_DIR .. "src/devices/bus/cpc/cpc_pds.h",
+ MAME_DIR .. "src/devices/bus/cpc/cpc_rs232.cpp",
+ MAME_DIR .. "src/devices/bus/cpc/cpc_rs232.h",
+ MAME_DIR .. "src/devices/bus/cpc/mface2.cpp",
+ MAME_DIR .. "src/devices/bus/cpc/mface2.h",
+ MAME_DIR .. "src/devices/bus/cpc/symbfac2.cpp",
+ MAME_DIR .. "src/devices/bus/cpc/symbfac2.h",
+ MAME_DIR .. "src/devices/bus/cpc/amdrum.cpp",
+ MAME_DIR .. "src/devices/bus/cpc/amdrum.h",
+ MAME_DIR .. "src/devices/bus/cpc/playcity.cpp",
+ MAME_DIR .. "src/devices/bus/cpc/playcity.h",
+ MAME_DIR .. "src/devices/bus/cpc/smartwatch.cpp",
+ MAME_DIR .. "src/devices/bus/cpc/smartwatch.h",
+ MAME_DIR .. "src/devices/bus/cpc/brunword4.cpp",
+ MAME_DIR .. "src/devices/bus/cpc/brunword4.h",
+ MAME_DIR .. "src/devices/bus/cpc/hd20.cpp",
+ MAME_DIR .. "src/devices/bus/cpc/hd20.h",
+ MAME_DIR .. "src/devices/bus/cpc/ddi1.cpp",
+ MAME_DIR .. "src/devices/bus/cpc/ddi1.h",
+ MAME_DIR .. "src/devices/bus/cpc/magicsound.cpp",
+ MAME_DIR .. "src/devices/bus/cpc/magicsound.h",
+ MAME_DIR .. "src/devices/bus/cpc/doubler.cpp",
+ MAME_DIR .. "src/devices/bus/cpc/doubler.h",
+ MAME_DIR .. "src/devices/bus/cpc/transtape.cpp",
+ MAME_DIR .. "src/devices/bus/cpc/transtape.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/bus/epson_sio/epson_sio.h,BUSES["EPSON_SIO"] = true
+---------------------------------------------------
+if (BUSES["EPSON_SIO"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/epson_sio/epson_sio.cpp",
+ MAME_DIR .. "src/devices/bus/epson_sio/epson_sio.h",
+ MAME_DIR .. "src/devices/bus/epson_sio/pf10.cpp",
+ MAME_DIR .. "src/devices/bus/epson_sio/pf10.h",
+ MAME_DIR .. "src/devices/bus/epson_sio/tf20.cpp",
+ MAME_DIR .. "src/devices/bus/epson_sio/tf20.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/bus/pce/pce_slot.h,BUSES["PCE"] = true
+---------------------------------------------------
+if (BUSES["PCE"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/pce/pce_slot.cpp",
+ MAME_DIR .. "src/devices/bus/pce/pce_slot.h",
+ MAME_DIR .. "src/devices/bus/pce/pce_rom.cpp",
+ MAME_DIR .. "src/devices/bus/pce/pce_rom.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/bus/scv/slot.h,BUSES["SCV"] = true
+---------------------------------------------------
+if (BUSES["SCV"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/scv/slot.cpp",
+ MAME_DIR .. "src/devices/bus/scv/slot.h",
+ MAME_DIR .. "src/devices/bus/scv/rom.cpp",
+ MAME_DIR .. "src/devices/bus/scv/rom.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/bus/x68k/x68kexp.h,BUSES["X68K"] = true
+---------------------------------------------------
+if (BUSES["X68K"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/x68k/x68kexp.cpp",
+ MAME_DIR .. "src/devices/bus/x68k/x68kexp.h",
+ MAME_DIR .. "src/devices/bus/x68k/x68k_neptunex.cpp",
+ MAME_DIR .. "src/devices/bus/x68k/x68k_neptunex.h",
+ MAME_DIR .. "src/devices/bus/x68k/x68k_scsiext.cpp",
+ MAME_DIR .. "src/devices/bus/x68k/x68k_scsiext.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/bus/abckb/abckb.h,BUSES["ABCKB"] = true
+---------------------------------------------------
+if (BUSES["ABCKB"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/abckb/abckb.cpp",
+ MAME_DIR .. "src/devices/bus/abckb/abckb.h",
+ MAME_DIR .. "src/devices/bus/abckb/abc77.cpp",
+ MAME_DIR .. "src/devices/bus/abckb/abc77.h",
+ MAME_DIR .. "src/devices/bus/abckb/abc99.cpp",
+ MAME_DIR .. "src/devices/bus/abckb/abc99.h",
+ MAME_DIR .. "src/devices/bus/abckb/abc800kb.cpp",
+ MAME_DIR .. "src/devices/bus/abckb/abc800kb.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/bus/compucolor/floppy.h,BUSES["COMPUCOLOR"] = true
+---------------------------------------------------
+if (BUSES["COMPUCOLOR"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/compucolor/floppy.cpp",
+ MAME_DIR .. "src/devices/bus/compucolor/floppy.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/bus/scsi/scsi.h,BUSES["SCSI"] = true
+---------------------------------------------------
+if (BUSES["SCSI"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/scsi/scsi.cpp",
+ MAME_DIR .. "src/devices/bus/scsi/scsi.h",
+ MAME_DIR .. "src/devices/bus/scsi/scsicd.cpp",
+ MAME_DIR .. "src/devices/bus/scsi/scsicd.h",
+ MAME_DIR .. "src/devices/bus/scsi/scsihd.cpp",
+ MAME_DIR .. "src/devices/bus/scsi/scsihd.h",
+ MAME_DIR .. "src/devices/bus/scsi/scsihle.cpp",
+ MAME_DIR .. "src/devices/bus/scsi/scsihle.h",
+ MAME_DIR .. "src/devices/bus/scsi/cdu76s.cpp",
+ MAME_DIR .. "src/devices/bus/scsi/cdu76s.h",
+ MAME_DIR .. "src/devices/bus/scsi/acb4070.cpp",
+ MAME_DIR .. "src/devices/bus/scsi/acb4070.h",
+ MAME_DIR .. "src/devices/bus/scsi/d9060hd.cpp",
+ MAME_DIR .. "src/devices/bus/scsi/d9060hd.h",
+ MAME_DIR .. "src/devices/bus/scsi/sa1403d.cpp",
+ MAME_DIR .. "src/devices/bus/scsi/sa1403d.h",
+ MAME_DIR .. "src/devices/bus/scsi/s1410.cpp",
+ MAME_DIR .. "src/devices/bus/scsi/s1410.h",
+ MAME_DIR .. "src/devices/bus/scsi/pc9801_sasi.cpp",
+ MAME_DIR .. "src/devices/bus/scsi/pc9801_sasi.h",
+ MAME_DIR .. "src/devices/bus/scsi/omti5100.cpp",
+ MAME_DIR .. "src/devices/bus/scsi/omti5100.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/bus/macpds/macpds.h,BUSES["MACPDS"] = true
+---------------------------------------------------
+if (BUSES["MACPDS"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/macpds/macpds.cpp",
+ MAME_DIR .. "src/devices/bus/macpds/macpds.h",
+ MAME_DIR .. "src/devices/bus/macpds/pds_tpdfpd.cpp",
+ MAME_DIR .. "src/devices/bus/macpds/pds_tpdfpd.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/bus/oricext/oricext.h,BUSES["ORICEXT"] = true
+---------------------------------------------------
+if (BUSES["ORICEXT"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/oricext/oricext.cpp",
+ MAME_DIR .. "src/devices/bus/oricext/oricext.h",
+ MAME_DIR .. "src/devices/bus/oricext/jasmin.cpp",
+ MAME_DIR .. "src/devices/bus/oricext/jasmin.h",
+ MAME_DIR .. "src/devices/bus/oricext/microdisc.cpp",
+ MAME_DIR .. "src/devices/bus/oricext/microdisc.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/bus/a1bus/a1bus.h,BUSES["A1BUS"] = true
+---------------------------------------------------
+
+if (BUSES["A1BUS"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/a1bus/a1bus.cpp",
+ MAME_DIR .. "src/devices/bus/a1bus/a1bus.h",
+ MAME_DIR .. "src/devices/bus/a1bus/a1cassette.cpp",
+ MAME_DIR .. "src/devices/bus/a1bus/a1cassette.h",
+ MAME_DIR .. "src/devices/bus/a1bus/a1cffa.cpp",
+ MAME_DIR .. "src/devices/bus/a1bus/a1cffa.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/bus/amiga/keyboard/keyboard.h,BUSES["AMIGA_KEYBOARD"] = true
+---------------------------------------------------
+
+if (BUSES["AMIGA_KEYBOARD"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/amiga/keyboard/keyboard.cpp",
+ MAME_DIR .. "src/devices/bus/amiga/keyboard/keyboard.h",
+ MAME_DIR .. "src/devices/bus/amiga/keyboard/matrix.cpp",
+ MAME_DIR .. "src/devices/bus/amiga/keyboard/matrix.h",
+ MAME_DIR .. "src/devices/bus/amiga/keyboard/a1200.cpp",
+ MAME_DIR .. "src/devices/bus/amiga/keyboard/a1200.h",
+ MAME_DIR .. "src/devices/bus/amiga/keyboard/a500.cpp",
+ MAME_DIR .. "src/devices/bus/amiga/keyboard/a500.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/bus/amiga/zorro/zorro.h,BUSES["ZORRO"] = true
+---------------------------------------------------
+
+if (BUSES["ZORRO"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/amiga/zorro/zorro.cpp",
+ MAME_DIR .. "src/devices/bus/amiga/zorro/zorro.h",
+ MAME_DIR .. "src/devices/bus/amiga/zorro/cards.cpp",
+ MAME_DIR .. "src/devices/bus/amiga/zorro/cards.h",
+ MAME_DIR .. "src/devices/bus/amiga/zorro/a2052.cpp",
+ MAME_DIR .. "src/devices/bus/amiga/zorro/a2052.h",
+ MAME_DIR .. "src/devices/bus/amiga/zorro/a2232.cpp",
+ MAME_DIR .. "src/devices/bus/amiga/zorro/a2232.h",
+ MAME_DIR .. "src/devices/bus/amiga/zorro/a590.cpp",
+ MAME_DIR .. "src/devices/bus/amiga/zorro/a590.h",
+ MAME_DIR .. "src/devices/bus/amiga/zorro/action_replay.cpp",
+ MAME_DIR .. "src/devices/bus/amiga/zorro/action_replay.h",
+ MAME_DIR .. "src/devices/bus/amiga/zorro/buddha.cpp",
+ MAME_DIR .. "src/devices/bus/amiga/zorro/buddha.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/bus/sunkbd/sunkbd.h,BUSES["SUNKBD"] = true
+---------------------------------------------------
+
+if (BUSES["SUNKBD"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/sunkbd/hlekbd.cpp",
+ MAME_DIR .. "src/devices/bus/sunkbd/hlekbd.h",
+ MAME_DIR .. "src/devices/bus/sunkbd/sunkbd.cpp",
+ MAME_DIR .. "src/devices/bus/sunkbd/sunkbd.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/bus/ql/exp.h,BUSES["QL"] = true
+---------------------------------------------------
+
+if (BUSES["QL"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/ql/exp.cpp",
+ MAME_DIR .. "src/devices/bus/ql/exp.h",
+ MAME_DIR .. "src/devices/bus/ql/cst_qdisc.cpp",
+ MAME_DIR .. "src/devices/bus/ql/cst_qdisc.h",
+ MAME_DIR .. "src/devices/bus/ql/cst_q_plus4.cpp",
+ MAME_DIR .. "src/devices/bus/ql/cst_q_plus4.h",
+ MAME_DIR .. "src/devices/bus/ql/cumana_fdi.cpp",
+ MAME_DIR .. "src/devices/bus/ql/cumana_fdi.h",
+ MAME_DIR .. "src/devices/bus/ql/kempston_di.cpp",
+ MAME_DIR .. "src/devices/bus/ql/kempston_di.h",
+ MAME_DIR .. "src/devices/bus/ql/miracle_gold_card.cpp",
+ MAME_DIR .. "src/devices/bus/ql/miracle_gold_card.h",
+ MAME_DIR .. "src/devices/bus/ql/mp_fdi.cpp",
+ MAME_DIR .. "src/devices/bus/ql/mp_fdi.h",
+ MAME_DIR .. "src/devices/bus/ql/opd_basic_master.cpp",
+ MAME_DIR .. "src/devices/bus/ql/opd_basic_master.h",
+ MAME_DIR .. "src/devices/bus/ql/pcml_qdisk.cpp",
+ MAME_DIR .. "src/devices/bus/ql/pcml_qdisk.h",
+ MAME_DIR .. "src/devices/bus/ql/qubide.cpp",
+ MAME_DIR .. "src/devices/bus/ql/qubide.h",
+ MAME_DIR .. "src/devices/bus/ql/sandy_superdisk.cpp",
+ MAME_DIR .. "src/devices/bus/ql/sandy_superdisk.h",
+ MAME_DIR .. "src/devices/bus/ql/sandy_superqboard.cpp",
+ MAME_DIR .. "src/devices/bus/ql/sandy_superqboard.h",
+ MAME_DIR .. "src/devices/bus/ql/trumpcard.cpp",
+ MAME_DIR .. "src/devices/bus/ql/trumpcard.h",
+ MAME_DIR .. "src/devices/bus/ql/rom.cpp",
+ MAME_DIR .. "src/devices/bus/ql/rom.h",
+ MAME_DIR .. "src/devices/bus/ql/miracle_hd.cpp",
+ MAME_DIR .. "src/devices/bus/ql/miracle_hd.h",
+ MAME_DIR .. "src/devices/bus/ql/std.cpp",
+ MAME_DIR .. "src/devices/bus/ql/std.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/bus/vtech/memexp/memexp.h,BUSES["VTECH_MEMEXP"] = true
+---------------------------------------------------
+
+if (BUSES["VTECH_MEMEXP"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/vtech/memexp/memexp.cpp",
+ MAME_DIR .. "src/devices/bus/vtech/memexp/memexp.h",
+ MAME_DIR .. "src/devices/bus/vtech/memexp/carts.cpp",
+ MAME_DIR .. "src/devices/bus/vtech/memexp/carts.h",
+ MAME_DIR .. "src/devices/bus/vtech/memexp/floppy.cpp",
+ MAME_DIR .. "src/devices/bus/vtech/memexp/floppy.h",
+ MAME_DIR .. "src/devices/bus/vtech/memexp/memory.cpp",
+ MAME_DIR .. "src/devices/bus/vtech/memexp/memory.h",
+ MAME_DIR .. "src/devices/bus/vtech/memexp/rs232.cpp",
+ MAME_DIR .. "src/devices/bus/vtech/memexp/rs232.h",
+ MAME_DIR .. "src/devices/bus/vtech/memexp/rtty.cpp",
+ MAME_DIR .. "src/devices/bus/vtech/memexp/rtty.h",
+ MAME_DIR .. "src/devices/bus/vtech/memexp/wordpro.cpp",
+ MAME_DIR .. "src/devices/bus/vtech/memexp/wordpro.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/bus/vtech/ioexp/ioexp.h,BUSES["VTECH_IOEXP"] = true
+---------------------------------------------------
+
+if (BUSES["VTECH_IOEXP"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/vtech/ioexp/ioexp.cpp",
+ MAME_DIR .. "src/devices/bus/vtech/ioexp/ioexp.h",
+ MAME_DIR .. "src/devices/bus/vtech/ioexp/carts.cpp",
+ MAME_DIR .. "src/devices/bus/vtech/ioexp/carts.h",
+ MAME_DIR .. "src/devices/bus/vtech/ioexp/joystick.cpp",
+ MAME_DIR .. "src/devices/bus/vtech/ioexp/joystick.h",
+ MAME_DIR .. "src/devices/bus/vtech/ioexp/printer.cpp",
+ MAME_DIR .. "src/devices/bus/vtech/ioexp/printer.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/bus/wswan/slot.h,BUSES["WSWAN"] = true
+---------------------------------------------------
+
+if (BUSES["WSWAN"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/wswan/slot.cpp",
+ MAME_DIR .. "src/devices/bus/wswan/slot.h",
+ MAME_DIR .. "src/devices/bus/wswan/rom.cpp",
+ MAME_DIR .. "src/devices/bus/wswan/rom.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/bus/psx/ctlrport.h,BUSES["PSX_CONTROLLER"] = true
+---------------------------------------------------
+
+if (BUSES["PSX_CONTROLLER"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/psx/ctlrport.cpp",
+ MAME_DIR .. "src/devices/bus/psx/ctlrport.h",
+ MAME_DIR .. "src/devices/bus/psx/analogue.cpp",
+ MAME_DIR .. "src/devices/bus/psx/analogue.h",
+ MAME_DIR .. "src/devices/bus/psx/multitap.cpp",
+ MAME_DIR .. "src/devices/bus/psx/multitap.h",
+ MAME_DIR .. "src/devices/bus/psx/memcard.cpp",
+ MAME_DIR .. "src/devices/bus/psx/memcard.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/bus/nasbus/nasbus.h,BUSES["NASBUS"] = true
+---------------------------------------------------
+
+if (BUSES["NASBUS"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/nasbus/nasbus.cpp",
+ MAME_DIR .. "src/devices/bus/nasbus/nasbus.h",
+ MAME_DIR .. "src/devices/bus/nasbus/cards.cpp",
+ MAME_DIR .. "src/devices/bus/nasbus/cards.h",
+ MAME_DIR .. "src/devices/bus/nasbus/avc.cpp",
+ MAME_DIR .. "src/devices/bus/nasbus/avc.h",
+ MAME_DIR .. "src/devices/bus/nasbus/floppy.cpp",
+ MAME_DIR .. "src/devices/bus/nasbus/floppy.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/bus/cgenie/expansion/expansion.h,BUSES["CGENIE_EXPANSION"] = true
+---------------------------------------------------
+
+if (BUSES["CGENIE_EXPANSION"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/cgenie/expansion/expansion.cpp",
+ MAME_DIR .. "src/devices/bus/cgenie/expansion/expansion.h",
+ MAME_DIR .. "src/devices/bus/cgenie/expansion/carts.cpp",
+ MAME_DIR .. "src/devices/bus/cgenie/expansion/carts.h",
+ MAME_DIR .. "src/devices/bus/cgenie/expansion/floppy.cpp",
+ MAME_DIR .. "src/devices/bus/cgenie/expansion/floppy.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/bus/cgenie/parallel/parallel.h,BUSES["CGENIE_PARALLEL"] = true
+---------------------------------------------------
+
+if (BUSES["CGENIE_PARALLEL"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/cgenie/parallel/parallel.cpp",
+ MAME_DIR .. "src/devices/bus/cgenie/parallel/parallel.h",
+ MAME_DIR .. "src/devices/bus/cgenie/parallel/carts.cpp",
+ MAME_DIR .. "src/devices/bus/cgenie/parallel/carts.h",
+ MAME_DIR .. "src/devices/bus/cgenie/parallel/joystick.cpp",
+ MAME_DIR .. "src/devices/bus/cgenie/parallel/joystick.h",
+ MAME_DIR .. "src/devices/bus/cgenie/parallel/printer.cpp",
+ MAME_DIR .. "src/devices/bus/cgenie/parallel/printer.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/bus/m5/slot.h,BUSES["M5"] = true
+---------------------------------------------------
+if (BUSES["M5"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/m5/slot.cpp",
+ MAME_DIR .. "src/devices/bus/m5/slot.h",
+ MAME_DIR .. "src/devices/bus/m5/rom.cpp",
+ MAME_DIR .. "src/devices/bus/m5/rom.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/bus/newbrain/exp.h,BUSES["NEWBRAIN"] = true
+---------------------------------------------------
+
+if (BUSES["NEWBRAIN"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/newbrain/exp.cpp",
+ MAME_DIR .. "src/devices/bus/newbrain/exp.h",
+ MAME_DIR .. "src/devices/bus/newbrain/eim.cpp",
+ MAME_DIR .. "src/devices/bus/newbrain/eim.h",
+ MAME_DIR .. "src/devices/bus/newbrain/fdc.cpp",
+ MAME_DIR .. "src/devices/bus/newbrain/fdc.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/bus/svi3x8/expander/expander.h,BUSES["SVI_EXPANDER"] = true
+---------------------------------------------------
+
+if (BUSES["SVI_EXPANDER"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/svi3x8/expander/expander.cpp",
+ MAME_DIR .. "src/devices/bus/svi3x8/expander/expander.h",
+ MAME_DIR .. "src/devices/bus/svi3x8/expander/modules.cpp",
+ MAME_DIR .. "src/devices/bus/svi3x8/expander/modules.h",
+ MAME_DIR .. "src/devices/bus/svi3x8/expander/sv601.cpp",
+ MAME_DIR .. "src/devices/bus/svi3x8/expander/sv601.h",
+ MAME_DIR .. "src/devices/bus/svi3x8/expander/sv602.cpp",
+ MAME_DIR .. "src/devices/bus/svi3x8/expander/sv602.h",
+ MAME_DIR .. "src/devices/bus/svi3x8/expander/sv603.cpp",
+ MAME_DIR .. "src/devices/bus/svi3x8/expander/sv603.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/bus/svi3x8/slot/slot.h,BUSES["SVI_SLOT"] = true
+---------------------------------------------------
+
+if (BUSES["SVI_SLOT"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/svi3x8/slot/slot.cpp",
+ MAME_DIR .. "src/devices/bus/svi3x8/slot/slot.h",
+ MAME_DIR .. "src/devices/bus/svi3x8/slot/cards.cpp",
+ MAME_DIR .. "src/devices/bus/svi3x8/slot/cards.h",
+ MAME_DIR .. "src/devices/bus/svi3x8/slot/sv801.cpp",
+ MAME_DIR .. "src/devices/bus/svi3x8/slot/sv801.h",
+ MAME_DIR .. "src/devices/bus/svi3x8/slot/sv802.cpp",
+ MAME_DIR .. "src/devices/bus/svi3x8/slot/sv802.h",
+ MAME_DIR .. "src/devices/bus/svi3x8/slot/sv803.cpp",
+ MAME_DIR .. "src/devices/bus/svi3x8/slot/sv803.h",
+ MAME_DIR .. "src/devices/bus/svi3x8/slot/sv805.cpp",
+ MAME_DIR .. "src/devices/bus/svi3x8/slot/sv805.h",
+ MAME_DIR .. "src/devices/bus/svi3x8/slot/sv806.cpp",
+ MAME_DIR .. "src/devices/bus/svi3x8/slot/sv806.h",
+ MAME_DIR .. "src/devices/bus/svi3x8/slot/sv807.cpp",
+ MAME_DIR .. "src/devices/bus/svi3x8/slot/sv807.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/bus/hp_optroms/hp_optrom.h,BUSES["HP_OPTROM"] = true
+---------------------------------------------------
+
+if (BUSES["HP_OPTROM"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/hp_optroms/hp_optrom.cpp",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/bus/hp9845_io/hp9845_io.h,BUSES["HP9845_IO"] = true
+---------------------------------------------------
+
+if (BUSES["HP9845_IO"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/hp9845_io/hp9845_io.cpp",
+ MAME_DIR .. "src/devices/bus/hp9845_io/98034.cpp",
+ MAME_DIR .. "src/devices/bus/hp9845_io/98035.cpp",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/bus/compis/graphics.h,BUSES["COMPIS_GRAPHICS"] = true
+---------------------------------------------------
+
+if (BUSES["COMPIS_GRAPHICS"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/compis/graphics.cpp",
+ MAME_DIR .. "src/devices/bus/compis/graphics.h",
+ MAME_DIR .. "src/devices/bus/compis/hrg.cpp",
+ MAME_DIR .. "src/devices/bus/compis/hrg.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/bus/pc1512/mouse.h,BUSES["PC1512"] = true
+---------------------------------------------------
+
+if (BUSES["PC1512"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/pc1512/mouse.cpp",
+ MAME_DIR .. "src/devices/bus/pc1512/mouse.h",
+ }
+end
diff --git a/docs/release/scripts/src/cpu.lua b/docs/release/scripts/src/cpu.lua
new file mode 100644
index 00000000000..8b2fc31abed
--- /dev/null
+++ b/docs/release/scripts/src/cpu.lua
@@ -0,0 +1,2442 @@
+-- license:BSD-3-Clause
+-- copyright-holders:MAMEdev Team
+
+---------------------------------------------------------------------------
+--
+-- cpu.lua
+--
+-- Rules for building CPU cores
+--
+---------------------------------------------------------------------------
+
+--------------------------------------------------
+-- Dynamic recompiler objects
+--------------------------------------------------
+
+if (CPUS["SH2"]~=null or CPUS["MIPS"]~=null or CPUS["POWERPC"]~=null or CPUS["RSP"]~=null or CPUS["ARM7"]~=null or CPUS["ADSP21062"]~=null or CPUS["MB86235"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/drcbec.cpp",
+ MAME_DIR .. "src/devices/cpu/drcbec.h",
+ MAME_DIR .. "src/devices/cpu/drcbeut.cpp",
+ MAME_DIR .. "src/devices/cpu/drcbeut.h",
+ MAME_DIR .. "src/devices/cpu/drccache.cpp",
+ MAME_DIR .. "src/devices/cpu/drccache.h",
+ MAME_DIR .. "src/devices/cpu/drcfe.cpp",
+ MAME_DIR .. "src/devices/cpu/drcfe.h",
+ MAME_DIR .. "src/devices/cpu/drcuml.cpp",
+ MAME_DIR .. "src/devices/cpu/drcuml.h",
+ MAME_DIR .. "src/devices/cpu/uml.cpp",
+ MAME_DIR .. "src/devices/cpu/uml.h",
+ MAME_DIR .. "src/devices/cpu/x86log.cpp",
+ MAME_DIR .. "src/devices/cpu/x86log.h",
+ MAME_DIR .. "src/devices/cpu/drcbex86.cpp",
+ MAME_DIR .. "src/devices/cpu/drcbex86.h",
+ MAME_DIR .. "src/devices/cpu/drcbex64.cpp",
+ MAME_DIR .. "src/devices/cpu/drcbex64.h",
+ MAME_DIR .. "src/devices/cpu/drcumlsh.h",
+ MAME_DIR .. "src/devices/cpu/x86emit.h",
+ }
+end
+
+--------------------------------------------------
+-- Signetics 8X300 / Scientific Micro Systems SMS300
+--@src/devices/cpu/8x300/8x300.h,CPUS["8X300"] = true
+--------------------------------------------------
+
+if (CPUS["8X300"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/8x300/8x300.cpp",
+ MAME_DIR .. "src/devices/cpu/8x300/8x300.h",
+ }
+end
+
+if (CPUS["8X300"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/8x300/8x300dasm.cpp")
+end
+
+--------------------------------------------------
+-- ARCangent A4
+--@src/devices/cpu/arc/arc.h,CPUS["ARC"] = true
+--------------------------------------------------
+
+if (CPUS["ARC"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/arc/arc.cpp",
+ MAME_DIR .. "src/devices/cpu/arc/arc.h",
+ }
+end
+
+if (CPUS["ARC"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/arc/arcdasm.cpp")
+end
+
+--------------------------------------------------
+-- ARcompact (ARCtangent-A5, ARC 600, ARC 700)
+--@src/devices/cpu/arcompact/arcompact.h,CPUS["ARCOMPACT"] = true
+--------------------------------------------------
+
+if (CPUS["ARCOMPACT"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/arcompact/arcompact.cpp",
+ MAME_DIR .. "src/devices/cpu/arcompact/arcompact.h",
+ MAME_DIR .. "src/devices/cpu/arcompact/arcompact_execute.cpp",
+ MAME_DIR .. "src/devices/cpu/arcompact/arcompactdasm_dispatch.h",
+ MAME_DIR .. "src/devices/cpu/arcompact/arcompactdasm_ops.h",
+ MAME_DIR .. "src/devices/cpu/arcompact/arcompact_common.h",
+ }
+ dependency {
+ { MAME_DIR .. "src/devices/cpu/arcompact/arcompact.cpp", GEN_DIR .. "emu/cpu/arcompact/arcompact.hxx" },
+ { MAME_DIR .. "src/devices/cpu/arcompact/arcompact_execute.cpp", GEN_DIR .. "emu/cpu/arcompact/arcompact.hxx" },
+ }
+
+ custombuildtask {
+ { MAME_DIR .. "src/devices/cpu/arcompact/arcompact_make.py" , GEN_DIR .. "emu/cpu/arcompact/arcompact.hxx", { MAME_DIR .. "src/devices/cpu/arcompact/arcompact_make.py" }, {"@echo Generating ARCOMPACT source files...", PYTHON .. " $(1) $(@)" }},
+ }
+end
+
+if (CPUS["ARCOMPACT"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/arcompact/arcompactdasm.cpp")
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/arcompact/arcompactdasm_dispatch.cpp")
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/arcompact/arcompactdasm_ops.cpp")
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/arcompact/arcompact_common.cpp")
+end
+
+--------------------------------------------------
+-- Acorn ARM series
+--
+--@src/devices/cpu/arm/arm.h,CPUS["ARM"] = true
+--@src/devices/cpu/arm7/arm7.h,CPUS["ARM7"] = true
+--------------------------------------------------
+
+if (CPUS["ARM"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/arm/arm.cpp",
+ MAME_DIR .. "src/devices/cpu/arm/arm.h",
+ }
+end
+
+if (CPUS["ARM"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/arm/armdasm.cpp")
+end
+
+if (CPUS["ARM7"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/arm7/arm7.cpp",
+ MAME_DIR .. "src/devices/cpu/arm7/arm7.h",
+ MAME_DIR .. "src/devices/cpu/arm7/arm7thmb.cpp",
+ MAME_DIR .. "src/devices/cpu/arm7/arm7ops.cpp",
+ MAME_DIR .. "src/devices/cpu/arm7/lpc210x.cpp",
+ MAME_DIR .. "src/devices/cpu/arm7/lpc210x.h",
+ MAME_DIR .. "src/devices/cpu/arm7/arm7core.h",
+ MAME_DIR .. "src/devices/cpu/arm7/arm7core.hxx",
+ MAME_DIR .. "src/devices/cpu/arm7/arm7drc.hxx",
+ MAME_DIR .. "src/devices/cpu/arm7/arm7help.h",
+ MAME_DIR .. "src/devices/cpu/arm7/arm7tdrc.hxx",
+ }
+end
+
+if (CPUS["ARM7"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/arm7/arm7dasm.cpp")
+end
+
+--------------------------------------------------
+-- Advanced Digital Chips SE3208
+--@src/devices/cpu/se3208/se3208.h,CPUS["SE3208"] = true
+--------------------------------------------------
+
+if (CPUS["SE3208"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/se3208/se3208.cpp",
+ MAME_DIR .. "src/devices/cpu/se3208/se3208.h",
+ }
+end
+
+if (CPUS["SE3208"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/se3208/se3208dis.cpp")
+end
+
+--------------------------------------------------
+-- American Microsystems, Inc.(AMI) S2000 series
+--@src/devices/cpu/amis2000/amis2000.h,CPUS["AMIS2000"] = true
+--------------------------------------------------
+
+if (CPUS["AMIS2000"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/amis2000/amis2000.cpp",
+ MAME_DIR .. "src/devices/cpu/amis2000/amis2000.h",
+ MAME_DIR .. "src/devices/cpu/amis2000/amis2000op.cpp",
+ }
+end
+
+if (CPUS["AMIS2000"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/amis2000/amis2000d.cpp")
+end
+
+--------------------------------------------------
+-- Alpha 8201
+--@src/devices/cpu/alph8201/alph8201.h,CPUS["ALPHA8201"] = true
+--------------------------------------------------
+
+if (CPUS["ALPHA8201"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/alph8201/alph8201.cpp",
+ MAME_DIR .. "src/devices/cpu/alph8201/alph8201.h",
+ }
+end
+
+if (CPUS["ALPHA8201"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/alph8201/8201dasm.cpp")
+end
+
+--------------------------------------------------
+-- Analog Devices ADSP21xx series
+--@src/devices/cpu/adsp2100/adsp2100.h,CPUS["ADSP21XX"] = true
+--------------------------------------------------
+
+if (CPUS["ADSP21XX"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/adsp2100/adsp2100.cpp",
+ MAME_DIR .. "src/devices/cpu/adsp2100/adsp2100.h",
+ MAME_DIR .. "src/devices/cpu/adsp2100/2100ops.hxx",
+ }
+end
+
+if (CPUS["ADSP21XX"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/adsp2100/2100dasm.cpp")
+end
+
+--------------------------------------------------
+-- Analog Devices "Sharc" ADSP21062
+--@src/devices/cpu/sharc/sharc.h,CPUS["ADSP21062"] = true
+--------------------------------------------------
+
+if (CPUS["ADSP21062"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/sharc/sharc.cpp",
+ MAME_DIR .. "src/devices/cpu/sharc/sharc.h",
+ MAME_DIR .. "src/devices/cpu/sharc/compute.hxx",
+ MAME_DIR .. "src/devices/cpu/sharc/sharcdma.hxx",
+ MAME_DIR .. "src/devices/cpu/sharc/sharcdsm.h",
+ MAME_DIR .. "src/devices/cpu/sharc/sharcmem.hxx",
+ MAME_DIR .. "src/devices/cpu/sharc/sharcops.h",
+ MAME_DIR .. "src/devices/cpu/sharc/sharcops.hxx",
+ MAME_DIR .. "src/devices/cpu/sharc/sharcdrc.cpp",
+ MAME_DIR .. "src/devices/cpu/sharc/sharcfe.cpp",
+ MAME_DIR .. "src/devices/cpu/sharc/sharcfe.h",
+ }
+end
+
+if (CPUS["ADSP21062"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/sharc/sharcdsm.cpp")
+end
+
+--------------------------------------------------
+-- APEXC
+--@src/devices/cpu/apexc/apexc.h,CPUS["APEXC"] = true
+--------------------------------------------------
+
+if (CPUS["APEXC"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/apexc/apexc.cpp",
+ MAME_DIR .. "src/devices/cpu/apexc/apexc.h",
+ }
+end
+
+if (CPUS["APEXC"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/apexc/apexcdsm.cpp")
+end
+
+--------------------------------------------------
+-- AT&T DSP16A
+--@src/devices/cpu/dsp16/dsp16.h,CPUS["DSP16A"] = true
+--------------------------------------------------
+
+if (CPUS["DSP16A"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/dsp16/dsp16.cpp",
+ MAME_DIR .. "src/devices/cpu/dsp16/dsp16.h",
+ MAME_DIR .. "src/devices/cpu/dsp16/dsp16ops.hxx",
+ }
+end
+
+if (CPUS["DSP16A"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/dsp16/dsp16dis.cpp")
+end
+
+--------------------------------------------------
+-- AT&T DSP32C
+--@src/devices/cpu/dsp32/dsp32.h,CPUS["DSP32C"] = true
+--------------------------------------------------
+
+if (CPUS["DSP32C"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/dsp32/dsp32.cpp",
+ MAME_DIR .. "src/devices/cpu/dsp32/dsp32.h",
+ MAME_DIR .. "src/devices/cpu/dsp32/dsp32ops.hxx",
+ }
+end
+
+if (CPUS["DSP32C"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/dsp32/dsp32dis.cpp")
+end
+
+--------------------------------------------------
+-- Atari custom RISC processor
+--@src/devices/cpu/asap/asap.h,CPUS["ASAP"] = true
+--------------------------------------------------
+
+if (CPUS["ASAP"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/asap/asap.cpp",
+ MAME_DIR .. "src/devices/cpu/asap/asap.h",
+ }
+end
+
+if (CPUS["ASAP"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/asap/asapdasm.cpp")
+end
+
+--------------------------------------------------
+-- AMD Am29000
+--@src/devices/cpu/am29000/am29000.h,CPUS["AM29000"] = true
+--------------------------------------------------
+
+if (CPUS["AM29000"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/am29000/am29000.cpp",
+ MAME_DIR .. "src/devices/cpu/am29000/am29000.h",
+ MAME_DIR .. "src/devices/cpu/am29000/am29ops.h",
+ }
+end
+
+if (CPUS["AM29000"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/am29000/am29dasm.cpp")
+end
+
+--------------------------------------------------
+-- Atari Jaguar custom DSPs
+--@src/devices/cpu/jaguar/jaguar.h,CPUS["JAGUAR"] = true
+--------------------------------------------------
+
+if (CPUS["JAGUAR"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/jaguar/jaguar.cpp",
+ MAME_DIR .. "src/devices/cpu/jaguar/jaguar.h",
+ }
+end
+
+if (CPUS["JAGUAR"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/jaguar/jagdasm.cpp")
+end
+
+--------------------------------------------------
+-- Simutrek Cube Quest bit-sliced CPUs
+--@src/devices/cpu/cubeqcpu/cubeqcpu.h,CPUS["CUBEQCPU"] = true
+--------------------------------------------------
+
+if (CPUS["CUBEQCPU"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/cubeqcpu/cubeqcpu.cpp",
+ MAME_DIR .. "src/devices/cpu/cubeqcpu/cubeqcpu.h",
+ }
+end
+
+if (CPUS["CUBEQCPU"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/cubeqcpu/cubedasm.cpp")
+end
+
+--------------------------------------------------
+-- Ensoniq ES5510 ('ESP') DSP
+--@src/devices/cpu/es5510/es5510.h,CPUS["ES5510"] = true
+--------------------------------------------------
+
+if (CPUS["ES5510"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/es5510/es5510.cpp",
+ MAME_DIR .. "src/devices/cpu/es5510/es5510.h",
+ }
+end
+
+--------------------------------------------------
+-- Entertainment Sciences AM29116-based RIP
+--@src/devices/cpu/esrip/esrip.h,CPUS["ESRIP"] = true
+--------------------------------------------------
+
+if (CPUS["ESRIP"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/esrip/esrip.cpp",
+ MAME_DIR .. "src/devices/cpu/esrip/esrip.h",
+ }
+end
+
+if (CPUS["ESRIP"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/esrip/esripdsm.cpp")
+end
+
+--------------------------------------------------
+-- Seiko Epson E0C6200 series
+--@src/devices/cpu/e0c6200/e0c6200.h,CPUS["E0C6200"] = true
+--------------------------------------------------
+
+if (CPUS["E0C6200"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/e0c6200/e0c6200.cpp",
+ MAME_DIR .. "src/devices/cpu/e0c6200/e0c6200.h",
+ MAME_DIR .. "src/devices/cpu/e0c6200/e0c6s46.cpp",
+ MAME_DIR .. "src/devices/cpu/e0c6200/e0c6s46.h",
+ MAME_DIR .. "src/devices/cpu/e0c6200/e0c6200op.cpp",
+ }
+end
+
+if (CPUS["E0C6200"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/e0c6200/e0c6200d.cpp")
+end
+
+--------------------------------------------------
+-- RCA COSMAC
+--@src/devices/cpu/cosmac/cosmac.h,CPUS["COSMAC"] = true
+--------------------------------------------------
+
+if (CPUS["COSMAC"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/cosmac/cosmac.cpp",
+ MAME_DIR .. "src/devices/cpu/cosmac/cosmac.h",
+ }
+end
+
+if (CPUS["COSMAC"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/cosmac/cosdasm.cpp")
+end
+
+--------------------------------------------------
+-- National Semiconductor COP400 family
+--@src/devices/cpu/cop400/cop400.h,CPUS["COP400"] = true
+--------------------------------------------------
+
+if (CPUS["COP400"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/cop400/cop400.cpp",
+ MAME_DIR .. "src/devices/cpu/cop400/cop400.h",
+ MAME_DIR .. "src/devices/cpu/cop400/cop400op.hxx",
+ }
+end
+
+if (CPUS["COP400"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/cop400/cop410ds.cpp")
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/cop400/cop420ds.cpp")
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/cop400/cop444ds.cpp")
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/cop400/cop424ds.cpp")
+end
+
+--------------------------------------------------
+-- CP1610
+--@src/devices/cpu/cp1610/cp1610.h,CPUS["CP1610"] = true
+--------------------------------------------------
+
+if (CPUS["CP1610"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/cp1610/cp1610.cpp",
+ MAME_DIR .. "src/devices/cpu/cp1610/cp1610.h",
+ }
+end
+
+if (CPUS["CP1610"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/cp1610/1610dasm.cpp")
+end
+
+--------------------------------------------------
+-- Cinematronics vector "CPU"
+--@src/devices/cpu/ccpu/ccpu.h,CPUS["CCPU"] = true
+--------------------------------------------------
+
+if (CPUS["CCPU"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/ccpu/ccpu.cpp",
+ MAME_DIR .. "src/devices/cpu/ccpu/ccpu.h",
+ }
+end
+
+if (CPUS["CCPU"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/ccpu/ccpudasm.cpp")
+end
+
+--------------------------------------------------
+-- DEC T-11
+--@src/devices/cpu/t11/t11.h,CPUS["T11"] = true
+--------------------------------------------------
+
+if (CPUS["T11"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/t11/t11.cpp",
+ MAME_DIR .. "src/devices/cpu/t11/t11.h",
+ MAME_DIR .. "src/devices/cpu/t11/t11ops.hxx",
+ MAME_DIR .. "src/devices/cpu/t11/t11table.hxx",
+ }
+end
+
+if (CPUS["T11"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/t11/t11dasm.cpp")
+end
+
+--------------------------------------------------
+-- DEC PDP-8
+--@src/devices/cpu/pdp8/pdp8.h,CPUS["PDP8"] = true
+--------------------------------------------------
+
+if (CPUS["PDP8"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/pdp8/pdp8.cpp",
+ MAME_DIR .. "src/devices/cpu/pdp8/pdp8.h",
+ }
+end
+
+if (CPUS["PDP8"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/pdp8/pdp8dasm.cpp")
+end
+
+--------------------------------------------------
+-- F8
+--@src/devices/cpu/f8/f8.h,CPUS["F8"] = true
+--------------------------------------------------
+
+if (CPUS["F8"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/f8/f8.cpp",
+ MAME_DIR .. "src/devices/cpu/f8/f8.h",
+ }
+end
+
+if (CPUS["F8"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/f8/f8dasm.cpp")
+end
+
+--------------------------------------------------
+-- G65816
+--@src/devices/cpu/g65816/g65816.h,CPUS["G65816"] = true
+--------------------------------------------------
+
+if (CPUS["G65816"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/g65816/g65816.cpp",
+ MAME_DIR .. "src/devices/cpu/g65816/g65816.h",
+ MAME_DIR .. "src/devices/cpu/g65816/g65816o0.cpp",
+ MAME_DIR .. "src/devices/cpu/g65816/g65816o1.cpp",
+ MAME_DIR .. "src/devices/cpu/g65816/g65816o2.cpp",
+ MAME_DIR .. "src/devices/cpu/g65816/g65816o3.cpp",
+ MAME_DIR .. "src/devices/cpu/g65816/g65816o4.cpp",
+ MAME_DIR .. "src/devices/cpu/g65816/g65816cm.h",
+ MAME_DIR .. "src/devices/cpu/g65816/g65816ds.h",
+ MAME_DIR .. "src/devices/cpu/g65816/g65816op.h",
+ }
+end
+
+if (CPUS["G65816"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/g65816/g65816ds.cpp")
+end
+
+--------------------------------------------------
+-- Hitachi H8 (16/32-bit H8/300, H8/300H, H8S2000 and H8S2600 series)
+--@src/devices/cpu/h8/h8.h,CPUS["H8"] = true
+--------------------------------------------------
+
+if (CPUS["H8"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/h8/h8.cpp",
+ MAME_DIR .. "src/devices/cpu/h8/h8.h",
+ MAME_DIR .. "src/devices/cpu/h8/h8h.cpp",
+ MAME_DIR .. "src/devices/cpu/h8/h8h.h",
+ MAME_DIR .. "src/devices/cpu/h8/h8s2000.cpp",
+ MAME_DIR .. "src/devices/cpu/h8/h8s2000.h",
+ MAME_DIR .. "src/devices/cpu/h8/h8s2600.cpp",
+ MAME_DIR .. "src/devices/cpu/h8/h8s2600.h",
+ MAME_DIR .. "src/devices/cpu/h8/h83337.cpp",
+ MAME_DIR .. "src/devices/cpu/h8/h83337.h",
+ MAME_DIR .. "src/devices/cpu/h8/h83002.cpp",
+ MAME_DIR .. "src/devices/cpu/h8/h83002.h",
+ MAME_DIR .. "src/devices/cpu/h8/h83006.cpp",
+ MAME_DIR .. "src/devices/cpu/h8/h83006.h",
+ MAME_DIR .. "src/devices/cpu/h8/h83008.cpp",
+ MAME_DIR .. "src/devices/cpu/h8/h83008.h",
+ MAME_DIR .. "src/devices/cpu/h8/h83048.cpp",
+ MAME_DIR .. "src/devices/cpu/h8/h83048.h",
+ MAME_DIR .. "src/devices/cpu/h8/h8s2245.cpp",
+ MAME_DIR .. "src/devices/cpu/h8/h8s2245.h",
+ MAME_DIR .. "src/devices/cpu/h8/h8s2320.cpp",
+ MAME_DIR .. "src/devices/cpu/h8/h8s2320.h",
+ MAME_DIR .. "src/devices/cpu/h8/h8s2357.cpp",
+ MAME_DIR .. "src/devices/cpu/h8/h8s2357.h",
+ MAME_DIR .. "src/devices/cpu/h8/h8s2655.cpp",
+ MAME_DIR .. "src/devices/cpu/h8/h8s2655.h",
+ MAME_DIR .. "src/devices/cpu/h8/h8_adc.cpp",
+ MAME_DIR .. "src/devices/cpu/h8/h8_adc.h",
+ MAME_DIR .. "src/devices/cpu/h8/h8_dma.cpp",
+ MAME_DIR .. "src/devices/cpu/h8/h8_dma.h",
+ MAME_DIR .. "src/devices/cpu/h8/h8_dtc.cpp",
+ MAME_DIR .. "src/devices/cpu/h8/h8_dtc.h",
+ MAME_DIR .. "src/devices/cpu/h8/h8_intc.cpp",
+ MAME_DIR .. "src/devices/cpu/h8/h8_intc.h",
+ MAME_DIR .. "src/devices/cpu/h8/h8_port.cpp",
+ MAME_DIR .. "src/devices/cpu/h8/h8_port.h",
+ MAME_DIR .. "src/devices/cpu/h8/h8_timer8.cpp",
+ MAME_DIR .. "src/devices/cpu/h8/h8_timer8.h",
+ MAME_DIR .. "src/devices/cpu/h8/h8_timer16.cpp",
+ MAME_DIR .. "src/devices/cpu/h8/h8_timer16.h",
+ MAME_DIR .. "src/devices/cpu/h8/h8_sci.cpp",
+ MAME_DIR .. "src/devices/cpu/h8/h8_sci.h",
+ MAME_DIR .. "src/devices/cpu/h8/h8_watchdog.cpp",
+ MAME_DIR .. "src/devices/cpu/h8/h8_watchdog.h",
+ }
+
+ dependency {
+ { MAME_DIR .. "src/devices/cpu/h8/h8.cpp", GEN_DIR .. "emu/cpu/h8/h8.hxx" },
+ { MAME_DIR .. "src/devices/cpu/h8/h8h.cpp", GEN_DIR .. "emu/cpu/h8/h8h.hxx" },
+ { MAME_DIR .. "src/devices/cpu/h8/h8s2000.cpp", GEN_DIR .. "emu/cpu/h8/h8s2000.hxx" },
+ { MAME_DIR .. "src/devices/cpu/h8/h8s2600.cpp", GEN_DIR .. "emu/cpu/h8/h8s2600.hxx" },
+ }
+
+ custombuildtask {
+ { MAME_DIR .. "src/devices/cpu/h8/h8.lst" , GEN_DIR .. "emu/cpu/h8/h8.hxx", { MAME_DIR .. "src/devices/cpu/h8/h8make.py" }, {"@echo Generating H8-300 source file...", PYTHON .. " $(1) $(<) o $(@)" }},
+ { MAME_DIR .. "src/devices/cpu/h8/h8.lst" , GEN_DIR .. "emu/cpu/h8/h8h.hxx", { MAME_DIR .. "src/devices/cpu/h8/h8make.py" }, {"@echo Generating H8-300H source file...", PYTHON .. " $(1) $(<) h $(@)" }},
+ { MAME_DIR .. "src/devices/cpu/h8/h8.lst" , GEN_DIR .. "emu/cpu/h8/h8s2000.hxx", { MAME_DIR .. "src/devices/cpu/h8/h8make.py" }, {"@echo Generating H8S/2000 source file...", PYTHON .. " $(1) $(<) s20 $(@)" }},
+ { MAME_DIR .. "src/devices/cpu/h8/h8.lst" , GEN_DIR .. "emu/cpu/h8/h8s2600.hxx", { MAME_DIR .. "src/devices/cpu/h8/h8make.py" }, {"@echo Generating H8S/2600 source file...", PYTHON .. " $(1) $(<) s26 $(@)" }},
+ }
+end
+
+--------------------------------------------------
+-- Hitachi HCD62121
+--@src/devices/cpu/hcd62121/hcd62121.h,CPUS["HCD62121"] = true
+--------------------------------------------------
+
+if (CPUS["HCD62121"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/hcd62121/hcd62121.cpp",
+ MAME_DIR .. "src/devices/cpu/hcd62121/hcd62121.h",
+ }
+end
+
+if (CPUS["HCD62121"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/hcd62121/hcd62121d.cpp")
+end
+
+--------------------------------------------------
+-- Hitachi HMCS40 series
+--@src/devices/cpu/hmcs40/hmcs40.h,CPUS["HMCS40"] = true
+--------------------------------------------------
+
+if (CPUS["HMCS40"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/hmcs40/hmcs40.cpp",
+ MAME_DIR .. "src/devices/cpu/hmcs40/hmcs40.h",
+ MAME_DIR .. "src/devices/cpu/hmcs40/hmcs40op.cpp",
+ }
+end
+
+if (CPUS["HMCS40"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/hmcs40/hmcs40d.cpp")
+end
+
+--------------------------------------------------
+-- Hitachi SH1/SH2
+--@src/devices/cpu/sh2/sh2.h,CPUS["SH2"] = true
+--------------------------------------------------
+
+if (CPUS["SH2"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/sh2/sh2.cpp",
+ MAME_DIR .. "src/devices/cpu/sh2/sh2.h",
+ MAME_DIR .. "src/devices/cpu/sh2/sh2fe.cpp",
+ MAME_DIR .. "src/devices/cpu/sh2/sh7604_bus.cpp",
+ MAME_DIR .. "src/devices/cpu/sh2/sh7604_bus.h",
+ MAME_DIR .. "src/devices/cpu/sh2/sh7604_sci.cpp",
+ MAME_DIR .. "src/devices/cpu/sh2/sh7604_sci.h",
+ MAME_DIR .. "src/devices/cpu/sh2/sh7604_wdt.cpp",
+ MAME_DIR .. "src/devices/cpu/sh2/sh7604_wdt.h",
+ --MAME_DIR .. "src/devices/cpu/sh2/sh2comn.cpp",
+ --MAME_DIR .. "src/devices/cpu/sh2/sh2comn.h",
+ --MAME_DIR .. "src/devices/cpu/sh2/sh2drc.cpp",
+ }
+end
+
+if (CPUS["SH2"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/sh2/sh2dasm.cpp")
+end
+
+--------------------------------------------------
+-- Hitachi SH4
+--@src/devices/cpu/sh4/sh4.h,CPUS["SH4"] = true
+--------------------------------------------------
+
+if (CPUS["SH4"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/sh4/sh4.cpp",
+ MAME_DIR .. "src/devices/cpu/sh4/sh4.h",
+ MAME_DIR .. "src/devices/cpu/sh4/sh4comn.cpp",
+ MAME_DIR .. "src/devices/cpu/sh4/sh4comn.h",
+ MAME_DIR .. "src/devices/cpu/sh4/sh3comn.cpp",
+ MAME_DIR .. "src/devices/cpu/sh4/sh3comn.h",
+ MAME_DIR .. "src/devices/cpu/sh4/sh4tmu.cpp",
+ MAME_DIR .. "src/devices/cpu/sh4/sh4tmu.h",
+ MAME_DIR .. "src/devices/cpu/sh4/sh4dmac.cpp",
+ MAME_DIR .. "src/devices/cpu/sh4/sh4dmac.h",
+ MAME_DIR .. "src/devices/cpu/sh4/sh4regs.h",
+ }
+end
+
+if (CPUS["SH4"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/sh4/sh4dasm.cpp")
+end
+
+--------------------------------------------------
+-- HP Hybrid processor
+--@src/devices/cpu/hphybrid/hphybrid.h,CPUS["HPHYBRID"] = true
+--------------------------------------------------
+
+if (CPUS["HPHYBRID"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/hphybrid/hphybrid.cpp",
+ MAME_DIR .. "src/devices/cpu/hphybrid/hphybrid.h",
+ }
+end
+
+if (CPUS["HPHYBRID"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/hphybrid/hphybrid_dasm.cpp")
+end
+
+--------------------------------------------------
+-- HP Nanoprocessor
+--@src/devices/cpu/nanoprocessor/nanoprocessor.h,CPUS["NANOPROCESSOR"] = true
+--------------------------------------------------
+
+if (CPUS["NANOPROCESSOR"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/nanoprocessor/nanoprocessor.cpp",
+ MAME_DIR .. "src/devices/cpu/nanoprocessor/nanoprocessor.h",
+ }
+end
+
+if (CPUS["NANOPROCESSOR"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/nanoprocessor/nanoprocessor_dasm.cpp")
+end
+
+--------------------------------------------------
+-- Hudsonsoft 6280
+--@src/devices/cpu/h6280/h6280.h,CPUS["H6280"] = true
+--------------------------------------------------
+
+if (CPUS["H6280"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/h6280/h6280.cpp",
+ MAME_DIR .. "src/devices/cpu/h6280/h6280.h",
+ }
+end
+
+if (CPUS["H6280"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/h6280/6280dasm.cpp")
+end
+
+--------------------------------------------------
+-- Hyperstone E1 series
+--@src/devices/cpu/e132xs/e132xs.h,CPUS["E1"] = true
+--------------------------------------------------
+
+if (CPUS["E1"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/e132xs/e132xs.cpp",
+ MAME_DIR .. "src/devices/cpu/e132xs/e132xs.h",
+ MAME_DIR .. "src/devices/cpu/e132xs/e132xsop.hxx",
+ }
+end
+
+if (CPUS["E1"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/e132xs/32xsdasm.cpp")
+end
+
+--------------------------------------------------
+-- 15IE-00-013 CPU ("Microprogrammed Control Device")
+--@src/devices/cpu/ie15/ie15.h,CPUS["IE15"] = true
+--------------------------------------------------
+
+if (CPUS["IE15"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/ie15/ie15.cpp",
+ MAME_DIR .. "src/devices/cpu/ie15/ie15.h",
+ }
+end
+
+if (CPUS["IE15"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/ie15/ie15dasm.cpp")
+end
+
+--------------------------------------------------
+-- Intel 4004
+--@src/devices/cpu/i4004/i4004.h,CPUS["I4004"] = true
+--------------------------------------------------
+
+if (CPUS["I4004"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/i4004/i4004.cpp",
+ MAME_DIR .. "src/devices/cpu/i4004/i4004.h",
+ }
+end
+
+if (CPUS["I4004"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/i4004/4004dasm.cpp")
+end
+
+--------------------------------------------------
+-- Intel 8008
+--@src/devices/cpu/i8008/i8008.h,CPUS["I8008"] = true
+--------------------------------------------------
+
+if (CPUS["I8008"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/i8008/i8008.cpp",
+ MAME_DIR .. "src/devices/cpu/i8008/i8008.h",
+ }
+end
+
+if (CPUS["I8008"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/i8008/8008dasm.cpp")
+end
+
+--------------------------------------------------
+-- National Semiconductor SC/MP
+--@src/devices/cpu/scmp/scmp.h,CPUS["SCMP"] = true
+--------------------------------------------------
+
+if (CPUS["SCMP"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/scmp/scmp.cpp",
+ MAME_DIR .. "src/devices/cpu/scmp/scmp.h",
+ }
+end
+
+if (CPUS["SCMP"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/scmp/scmpdasm.cpp")
+end
+
+--------------------------------------------------
+-- Intel 8080/8085A
+--@src/devices/cpu/i8085/i8085.h,CPUS["I8085"] = true
+--------------------------------------------------
+
+if (CPUS["I8085"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/i8085/i8085.cpp",
+ MAME_DIR .. "src/devices/cpu/i8085/i8085.h",
+ MAME_DIR .. "src/devices/cpu/i8085/i8085cpu.h",
+ }
+end
+
+if (CPUS["I8085"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/i8085/8085dasm.cpp")
+end
+
+--------------------------------------------------
+-- Intel 8089
+--@src/devices/cpu/i8089/i8089.h,CPUS["I8089"] = true
+--------------------------------------------------
+
+if (CPUS["I8089"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/i8089/i8089.cpp",
+ MAME_DIR .. "src/devices/cpu/i8089/i8089.h",
+ MAME_DIR .. "src/devices/cpu/i8089/i8089_channel.cpp",
+ MAME_DIR .. "src/devices/cpu/i8089/i8089_channel.h",
+ MAME_DIR .. "src/devices/cpu/i8089/i8089_ops.cpp",
+ }
+end
+
+if (CPUS["I8089"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/i8089/i8089_dasm.cpp")
+end
+
+--------------------------------------------------
+-- Intel MCS-48 (8039 and derivatives)
+--@src/devices/cpu/mcs48/mcs48.h,CPUS["MCS48"] = true
+--------------------------------------------------
+
+if (CPUS["MCS48"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/mcs48/mcs48.cpp",
+ MAME_DIR .. "src/devices/cpu/mcs48/mcs48.h",
+ }
+end
+
+if (CPUS["MCS48"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/mcs48/mcs48dsm.cpp")
+end
+
+--------------------------------------------------
+-- Intel 8051 and derivatives
+--@src/devices/cpu/mcs51/mcs51.h,CPUS["MCS51"] = true
+--------------------------------------------------
+
+if (CPUS["MCS51"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/mcs51/mcs51.cpp",
+ MAME_DIR .. "src/devices/cpu/mcs51/mcs51.h",
+ MAME_DIR .. "src/devices/cpu/mcs51/mcs51ops.hxx",
+ }
+end
+
+if (CPUS["MCS51"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/mcs51/mcs51dasm.cpp")
+end
+
+--------------------------------------------------
+-- Intel MCS-96
+--@src/devices/cpu/mcs96/mcs96.h,CPUS["MCS96"] = true
+--------------------------------------------------
+
+if (CPUS["MCS96"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/mcs96/mcs96.cpp",
+ MAME_DIR .. "src/devices/cpu/mcs96/mcs96.h",
+ MAME_DIR .. "src/devices/cpu/mcs96/i8x9x.cpp",
+ MAME_DIR .. "src/devices/cpu/mcs96/i8x9x.h",
+ MAME_DIR .. "src/devices/cpu/mcs96/i8xc196.cpp",
+ MAME_DIR .. "src/devices/cpu/mcs96/i8xc196.h",
+ }
+ dependency {
+ { MAME_DIR .. "src/devices/cpu/mcs96/mcs96.cpp", GEN_DIR .. "emu/cpu/mcs96/mcs96.hxx" },
+ { MAME_DIR .. "src/devices/cpu/mcs96/i8x9x.cpp", GEN_DIR .. "emu/cpu/mcs96/i8x9x.hxx" },
+ { MAME_DIR .. "src/devices/cpu/mcs96/i8xc196.cpp", GEN_DIR .. "emu/cpu/mcs96/i8xc196.hxx" },
+ }
+
+ custombuildtask {
+ { MAME_DIR .. "src/devices/cpu/mcs96/mcs96ops.lst" , GEN_DIR .. "emu/cpu/mcs96/mcs96.hxx", { MAME_DIR .. "src/devices/cpu/mcs96/mcs96make.py" }, {"@echo Generating mcs96 source file...", PYTHON .. " $(1) mcs96 $(<) $(@)" }},
+ { MAME_DIR .. "src/devices/cpu/mcs96/mcs96ops.lst" , GEN_DIR .. "emu/cpu/mcs96/i8x9x.hxx", { MAME_DIR .. "src/devices/cpu/mcs96/mcs96make.py" }, {"@echo Generating i8x9x source file...", PYTHON .. " $(1) i8x9x $(<) $(@)" }},
+ { MAME_DIR .. "src/devices/cpu/mcs96/mcs96ops.lst" , GEN_DIR .. "emu/cpu/mcs96/i8xc196.hxx", { MAME_DIR .. "src/devices/cpu/mcs96/mcs96make.py" }, {"@echo Generating i8xc196 source file...", PYTHON .. " $(1) i8xc196 $(<) $(@)" }},
+ }
+end
+
+--------------------------------------------------
+-- Intel 80x86 series
+--@src/devices/cpu/i86/i86.h,CPUS["I86"] = true
+--@src/devices/cpu/i86/i286.h,CPUS["I86"] = true
+--@src/devices/cpu/i386/i386.h,CPUS["I386"] = true
+--------------------------------------------------
+
+if (CPUS["I86"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/i86/i86.cpp",
+ MAME_DIR .. "src/devices/cpu/i86/i86.h",
+ MAME_DIR .. "src/devices/cpu/i86/i186.cpp",
+ MAME_DIR .. "src/devices/cpu/i86/i186.h",
+ MAME_DIR .. "src/devices/cpu/i86/i286.cpp",
+ MAME_DIR .. "src/devices/cpu/i86/i286.h",
+ MAME_DIR .. "src/devices/cpu/i86/i86inline.h",
+ }
+end
+
+if (CPUS["SH2"]~=null or CPUS["MIPS"]~=null or CPUS["POWERPC"]~=null or CPUS["RSP"]~=null or CPUS["ARM7"]~=null or CPUS["ADSP21062"]~=null or CPUS["MB86235"]~=null or CPUS["I86"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/i386/i386dasm.cpp")
+end
+
+if (CPUS["I386"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/i386/i386.cpp",
+ MAME_DIR .. "src/devices/cpu/i386/i386.h",
+ MAME_DIR .. "src/devices/cpu/i386/cycles.h",
+ MAME_DIR .. "src/devices/cpu/i386/i386op16.hxx",
+ MAME_DIR .. "src/devices/cpu/i386/i386op32.hxx",
+ MAME_DIR .. "src/devices/cpu/i386/i386ops.h",
+ MAME_DIR .. "src/devices/cpu/i386/i386ops.hxx",
+ MAME_DIR .. "src/devices/cpu/i386/i386priv.h",
+ MAME_DIR .. "src/devices/cpu/i386/i486ops.hxx",
+ MAME_DIR .. "src/devices/cpu/i386/pentops.hxx",
+ MAME_DIR .. "src/devices/cpu/i386/x87ops.hxx",
+ }
+end
+
+--------------------------------------------------
+-- Intel i860
+--@src/devices/cpu/i860/i860.h,CPUS["I860"] = true
+--------------------------------------------------
+
+if (CPUS["I860"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/i860/i860.cpp",
+ MAME_DIR .. "src/devices/cpu/i860/i860.h",
+ --MAME_DIR .. "src/devices/cpu/i860/i860dasm.cpp",
+ MAME_DIR .. "src/devices/cpu/i860/i860dec.hxx",
+ }
+end
+
+if (CPUS["I860"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/i860/i860dis.cpp")
+end
+
+--------------------------------------------------
+-- Intel i960
+--@src/devices/cpu/i960/i960.h,CPUS["I960"] = true
+--------------------------------------------------
+
+if (CPUS["I960"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/i960/i960.cpp",
+ MAME_DIR .. "src/devices/cpu/i960/i960.h",
+ }
+end
+
+if (CPUS["I960"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/i960/i960dis.cpp")
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/i960/i960dis.h")
+end
+
+--------------------------------------------------
+-- LH5801
+--@src/devices/cpu/lh5801/lh5801.h,CPUS["LH5801"] = true
+--------------------------------------------------
+
+if (CPUS["LH5801"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/lh5801/lh5801.cpp",
+ MAME_DIR .. "src/devices/cpu/lh5801/lh5801.h",
+ MAME_DIR .. "src/devices/cpu/lh5801/5801tbl.hxx",
+ }
+end
+
+if (CPUS["LH5801"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/lh5801/5801dasm.cpp")
+end
+--------
+------------------------------------------
+-- Manchester Small-Scale Experimental Machine
+--@src/devices/cpu/ssem/ssem.h,CPUS["SSEM"] = true
+--------------------------------------------------
+
+if (CPUS["SSEM"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/ssem/ssem.cpp",
+ MAME_DIR .. "src/devices/cpu/ssem/ssem.h",
+ }
+end
+
+if (CPUS["SSEM"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/ssem/ssemdasm.cpp")
+end
+
+--------------------------------------------------
+-- Fujitsu MB88xx
+--@src/devices/cpu/mb88xx/mb88xx.h,CPUS["MB88XX"] = true
+--------------------------------------------------
+
+if (CPUS["MB88XX"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/mb88xx/mb88xx.cpp",
+ MAME_DIR .. "src/devices/cpu/mb88xx/mb88xx.h",
+ }
+end
+
+if (CPUS["MB88XX"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/mb88xx/mb88dasm.cpp")
+end
+
+--------------------------------------------------
+-- Fujitsu MB86233
+--@src/devices/cpu/mb86233/mb86233.h,CPUS["MB86233"] = true
+--------------------------------------------------
+
+if (CPUS["MB86233"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/mb86233/mb86233.cpp",
+ MAME_DIR .. "src/devices/cpu/mb86233/mb86233.h",
+ }
+end
+
+if (CPUS["MB86233"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/mb86233/mb86233d.cpp")
+end
+
+--------------------------------------------------
+-- Fujitsu MB86235
+--@src/devices/cpu/mb86235/mb86235.h,CPUS["MB86235"] = true
+--------------------------------------------------
+
+if (CPUS["MB86235"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/mb86235/mb86235.cpp",
+ MAME_DIR .. "src/devices/cpu/mb86235/mb86235.h",
+ MAME_DIR .. "src/devices/cpu/mb86235/mb86235drc.cpp",
+ MAME_DIR .. "src/devices/cpu/mb86235/mb86235fe.cpp",
+ MAME_DIR .. "src/devices/cpu/mb86235/mb86235fe.h",
+ }
+end
+
+if (CPUS["MB86235"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/mb86235/mb86235d.cpp")
+end
+
+--------------------------------------------------
+-- Microchip PIC16C5x
+--@src/devices/cpu/pic16c5x/pic16c5x.h,CPUS["PIC16C5X"] = true
+--------------------------------------------------
+
+if (CPUS["PIC16C5X"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/pic16c5x/pic16c5x.cpp",
+ MAME_DIR .. "src/devices/cpu/pic16c5x/pic16c5x.h",
+ --MAME_DIR .. "src/devices/cpu/pic16c5x/dis16c5x.cpp",
+ }
+end
+
+if (CPUS["PIC16C5X"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/pic16c5x/16c5xdsm.cpp")
+end
+
+--------------------------------------------------
+-- Microchip PIC16C62x
+--@src/devices/cpu/pic16c62x/pic16c62x.h,CPUS["PIC16C62X"] = true
+--------------------------------------------------
+
+if (CPUS["PIC16C62X"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/pic16c62x/pic16c62x.cpp",
+ MAME_DIR .. "src/devices/cpu/pic16c62x/pic16c62x.h",
+ --MAME_DIR .. "src/devices/cpu/pic16c62x/dis16c62x.cpp",
+ }
+end
+
+if (CPUS["PIC16C62X"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/pic16c62x/16c62xdsm.cpp")
+end
+
+--------------------------------------------------
+-- MIPS R3000 (MIPS I/II) series
+--@src/devices/cpu/mips/r3000.h,CPUS["R3000"] = true
+--------------------------------------------------
+
+if (CPUS["R3000"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/mips/r3000.cpp",
+ MAME_DIR .. "src/devices/cpu/mips/r3000.h",
+ }
+end
+
+if (CPUS["R3000"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/mips/r3kdasm.cpp")
+end
+
+--------------------------------------------------
+-- MIPS R4000 (MIPS III/IV) series
+--@src/devices/cpu/mips/mips3.h,CPUS["MIPS"] = true
+--------------------------------------------------
+
+if (CPUS["MIPS"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/mips/mips3com.cpp",
+ MAME_DIR .. "src/devices/cpu/mips/mips3com.h",
+ MAME_DIR .. "src/devices/cpu/mips/mips3.cpp",
+ MAME_DIR .. "src/devices/cpu/mips/mips3.h",
+ MAME_DIR .. "src/devices/cpu/mips/mips3fe.cpp",
+ MAME_DIR .. "src/devices/cpu/mips/mips3fe.h",
+ MAME_DIR .. "src/devices/cpu/mips/mips3drc.cpp",
+ }
+end
+
+if (CPUS["MIPS"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/mips/mips3dsm.cpp")
+end
+
+--------------------------------------------------
+-- Sony PlayStation CPU (R3000-based + GTE)
+--@src/devices/cpu/psx/psx.h,CPUS["PSX"] = true
+--------------------------------------------------
+
+if (CPUS["PSX"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/psx/psx.cpp",
+ MAME_DIR .. "src/devices/cpu/psx/psx.h",
+ MAME_DIR .. "src/devices/cpu/psx/gte.cpp",
+ MAME_DIR .. "src/devices/cpu/psx/gte.h",
+ MAME_DIR .. "src/devices/cpu/psx/dma.cpp",
+ MAME_DIR .. "src/devices/cpu/psx/dma.h",
+ MAME_DIR .. "src/devices/cpu/psx/irq.cpp",
+ MAME_DIR .. "src/devices/cpu/psx/irq.h",
+ MAME_DIR .. "src/devices/cpu/psx/mdec.cpp",
+ MAME_DIR .. "src/devices/cpu/psx/mdec.h",
+ MAME_DIR .. "src/devices/cpu/psx/rcnt.cpp",
+ MAME_DIR .. "src/devices/cpu/psx/rcnt.h",
+ MAME_DIR .. "src/devices/cpu/psx/sio.cpp",
+ MAME_DIR .. "src/devices/cpu/psx/sio.h",
+ --MAME_DIR .. "src/devices/cpu/psx/dismips.cpp",
+ }
+end
+
+if (CPUS["PSX"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/psx/psxdasm.cpp")
+end
+
+--------------------------------------------------
+-- Mitsubishi MELPS 4 series
+--@src/devices/cpu/melps4/melps4.h,CPUS["MELPS4"] = true
+--------------------------------------------------
+
+if (CPUS["MELPS4"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/melps4/melps4.cpp",
+ MAME_DIR .. "src/devices/cpu/melps4/melps4.h",
+ MAME_DIR .. "src/devices/cpu/melps4/melps4op.cpp",
+ MAME_DIR .. "src/devices/cpu/melps4/m58846.cpp",
+ MAME_DIR .. "src/devices/cpu/melps4/m58846.h",
+ }
+end
+
+if (CPUS["MELPS4"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/melps4/melps4d.cpp")
+end
+
+--------------------------------------------------
+-- Mitsubishi M37702 and M37710 (based on 65C816)
+--@src/devices/cpu/m37710/m37710.h,CPUS["M37710"] = true
+--------------------------------------------------
+
+if (CPUS["M37710"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/m37710/m37710.cpp",
+ MAME_DIR .. "src/devices/cpu/m37710/m37710.h",
+ MAME_DIR .. "src/devices/cpu/m37710/m37710o0.cpp",
+ MAME_DIR .. "src/devices/cpu/m37710/m37710o1.cpp",
+ MAME_DIR .. "src/devices/cpu/m37710/m37710o2.cpp",
+ MAME_DIR .. "src/devices/cpu/m37710/m37710o3.cpp",
+ MAME_DIR .. "src/devices/cpu/m37710/m37710cm.h",
+ MAME_DIR .. "src/devices/cpu/m37710/m37710il.h",
+ MAME_DIR .. "src/devices/cpu/m37710/m37710op.h",
+ MAME_DIR .. "src/devices/cpu/m37710/m7700ds.h",
+ }
+end
+
+if (CPUS["M37710"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/m37710/m7700ds.cpp")
+end
+
+--------------------------------------------------
+-- Mostek 6502 and its many derivatives
+--@src/devices/cpu/m6502/m6502.h,CPUS["M6502"] = true
+--@src/devices/cpu/m6502/deco16.h,CPUS["M6502"] = true
+--@src/devices/cpu/m6502/m4510.h,CPUS["M6502"] = true
+--@src/devices/cpu/m6502/m65ce02.h,CPUS["M6502"] = true
+--@src/devices/cpu/m6502/m65c02.h,CPUS["M6502"] = true
+--@src/devices/cpu/m6502/r65c02.h,CPUS["M6502"] = true
+--@src/devices/cpu/m6502/m65sc02.h,CPUS["M6502"] = true
+--@src/devices/cpu/m6502/m6504.h,CPUS["M6502"] = true
+--@src/devices/cpu/m6502/m6507.h,CPUS["M6502"] = true
+--@src/devices/cpu/m6502/m6509.h,CPUS["M6502"] = true
+--@src/devices/cpu/m6502/m6510.h,CPUS["M6502"] = true
+--@src/devices/cpu/m6502/m6510t.h,CPUS["M6502"] = true
+--@src/devices/cpu/m6502/m7501.h,CPUS["M6502"] = true
+--@src/devices/cpu/m6502/m8502.h,CPUS["M6502"] = true
+--@src/devices/cpu/m6502/n2a03.h,CPUS["M6502"] = true
+--@src/devices/cpu/m6502/m740.h,CPUS["M6502"] = true
+--@src/devices/cpu/m6502/m3745x.h,CPUS["M6502"] = true
+--@src/devices/cpu/m6502/m5074x.h,CPUS["M6502"] = true
+
+--------------------------------------------------
+
+if (CPUS["M6502"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/m6502/deco16.cpp",
+ MAME_DIR .. "src/devices/cpu/m6502/deco16.h",
+ MAME_DIR .. "src/devices/cpu/m6502/m4510.cpp",
+ MAME_DIR .. "src/devices/cpu/m6502/m4510.h",
+ MAME_DIR .. "src/devices/cpu/m6502/m6502.cpp",
+ MAME_DIR .. "src/devices/cpu/m6502/m6502.h",
+ MAME_DIR .. "src/devices/cpu/m6502/m65c02.cpp",
+ MAME_DIR .. "src/devices/cpu/m6502/m65c02.h",
+ MAME_DIR .. "src/devices/cpu/m6502/m65ce02.cpp",
+ MAME_DIR .. "src/devices/cpu/m6502/m65ce02.h",
+ MAME_DIR .. "src/devices/cpu/m6502/m65sc02.cpp",
+ MAME_DIR .. "src/devices/cpu/m6502/m65sc02.h",
+ MAME_DIR .. "src/devices/cpu/m6502/m6504.cpp",
+ MAME_DIR .. "src/devices/cpu/m6502/m6504.h",
+ MAME_DIR .. "src/devices/cpu/m6502/m6507.cpp",
+ MAME_DIR .. "src/devices/cpu/m6502/m6507.h",
+ MAME_DIR .. "src/devices/cpu/m6502/m6509.cpp",
+ MAME_DIR .. "src/devices/cpu/m6502/m6509.h",
+ MAME_DIR .. "src/devices/cpu/m6502/m6510.cpp",
+ MAME_DIR .. "src/devices/cpu/m6502/m6510.h",
+ MAME_DIR .. "src/devices/cpu/m6502/m6510t.cpp",
+ MAME_DIR .. "src/devices/cpu/m6502/m6510t.h",
+ MAME_DIR .. "src/devices/cpu/m6502/m7501.cpp",
+ MAME_DIR .. "src/devices/cpu/m6502/m7501.h",
+ MAME_DIR .. "src/devices/cpu/m6502/m8502.cpp",
+ MAME_DIR .. "src/devices/cpu/m6502/m8502.h",
+ MAME_DIR .. "src/devices/cpu/m6502/n2a03.cpp",
+ MAME_DIR .. "src/devices/cpu/m6502/n2a03.h",
+ MAME_DIR .. "src/devices/cpu/m6502/r65c02.cpp",
+ MAME_DIR .. "src/devices/cpu/m6502/r65c02.h",
+ MAME_DIR .. "src/devices/cpu/m6502/m740.cpp",
+ MAME_DIR .. "src/devices/cpu/m6502/m740.h",
+ MAME_DIR .. "src/devices/cpu/m6502/m3745x.cpp",
+ MAME_DIR .. "src/devices/cpu/m6502/m3745x.h",
+ MAME_DIR .. "src/devices/cpu/m6502/m5074x.cpp",
+ MAME_DIR .. "src/devices/cpu/m6502/m5074x.h",
+ }
+
+ dependency {
+ { MAME_DIR .. "src/devices/cpu/m6502/deco16.cpp", GEN_DIR .. "emu/cpu/m6502/deco16.hxx" },
+ { MAME_DIR .. "src/devices/cpu/m6502/m4510.cpp", GEN_DIR .. "emu/cpu/m6502/m4510.hxx" },
+ { MAME_DIR .. "src/devices/cpu/m6502/m6502.cpp", GEN_DIR .. "emu/cpu/m6502/m6502.hxx" },
+ { MAME_DIR .. "src/devices/cpu/m6502/m65c02.cpp", GEN_DIR .. "emu/cpu/m6502/m65c02.hxx" },
+ { MAME_DIR .. "src/devices/cpu/m6502/m65ce02.cpp", GEN_DIR .. "emu/cpu/m6502/m65ce02.hxx" },
+ { MAME_DIR .. "src/devices/cpu/m6502/m6509.cpp", GEN_DIR .. "emu/cpu/m6502/m6509.hxx" },
+ { MAME_DIR .. "src/devices/cpu/m6502/m6510.cpp", GEN_DIR .. "emu/cpu/m6502/m6510.hxx" },
+ { MAME_DIR .. "src/devices/cpu/m6502/n2a03.cpp", GEN_DIR .. "emu/cpu/m6502/n2a03.hxx" },
+ { MAME_DIR .. "src/devices/cpu/m6502/r65c02.cpp", GEN_DIR .. "emu/cpu/m6502/r65c02.hxx" },
+ { MAME_DIR .. "src/devices/cpu/m6502/m740.cpp", GEN_DIR .. "emu/cpu/m6502/m740.hxx" },
+ }
+
+ custombuildtask {
+ { MAME_DIR .. "src/devices/cpu/m6502/odeco16.lst", GEN_DIR .. "emu/cpu/m6502/deco16.hxx", { MAME_DIR .. "src/devices/cpu/m6502/m6502make.py", MAME_DIR .. "src/devices/cpu/m6502/ddeco16.lst" }, {"@echo Generating deco16 source file...", PYTHON .. " $(1) deco16_device $(<) $(2) $(@)" }},
+ { MAME_DIR .. "src/devices/cpu/m6502/om4510.lst", GEN_DIR .. "emu/cpu/m6502/m4510.hxx", { MAME_DIR .. "src/devices/cpu/m6502/m6502make.py", MAME_DIR .. "src/devices/cpu/m6502/dm4510.lst" }, {"@echo Generating m4510 source file...", PYTHON .. " $(1) m4510_device $(<) $(2) $(@)" }},
+ { MAME_DIR .. "src/devices/cpu/m6502/om6502.lst", GEN_DIR .. "emu/cpu/m6502/m6502.hxx", { MAME_DIR .. "src/devices/cpu/m6502/m6502make.py", MAME_DIR .. "src/devices/cpu/m6502/dm6502.lst" }, {"@echo Generating m6502 source file...", PYTHON .. " $(1) m6502_device $(<) $(2) $(@)" }},
+ { MAME_DIR .. "src/devices/cpu/m6502/om65c02.lst", GEN_DIR .. "emu/cpu/m6502/m65c02.hxx", { MAME_DIR .. "src/devices/cpu/m6502/m6502make.py", MAME_DIR .. "src/devices/cpu/m6502/dm65c02.lst" }, {"@echo Generating m65c02 source file...", PYTHON .. " $(1) m65c02_device $(<) $(2) $(@)" }},
+ { MAME_DIR .. "src/devices/cpu/m6502/om65ce02.lst",GEN_DIR .. "emu/cpu/m6502/m65ce02.hxx",{ MAME_DIR .. "src/devices/cpu/m6502/m6502make.py", MAME_DIR .. "src/devices/cpu/m6502/dm65ce02.lst" }, {"@echo Generating m65ce02 source file...", PYTHON .. " $(1) m65ce02_device $(<) $(2) $(@)" }},
+ { MAME_DIR .. "src/devices/cpu/m6502/om6509.lst", GEN_DIR .. "emu/cpu/m6502/m6509.hxx", { MAME_DIR .. "src/devices/cpu/m6502/m6502make.py", MAME_DIR .. "src/devices/cpu/m6502/dm6509.lst" }, {"@echo Generating m6509 source file...", PYTHON .. " $(1) m6509_device $(<) $(2) $(@)" }},
+ { MAME_DIR .. "src/devices/cpu/m6502/om6510.lst", GEN_DIR .. "emu/cpu/m6502/m6510.hxx", { MAME_DIR .. "src/devices/cpu/m6502/m6502make.py", MAME_DIR .. "src/devices/cpu/m6502/dm6510.lst" }, {"@echo Generating m6510 source file...", PYTHON .. " $(1) m6510_device $(<) $(2) $(@)" }},
+ { MAME_DIR .. "src/devices/cpu/m6502/on2a03.lst", GEN_DIR .. "emu/cpu/m6502/n2a03.hxx", { MAME_DIR .. "src/devices/cpu/m6502/m6502make.py", MAME_DIR .. "src/devices/cpu/m6502/dn2a03.lst" }, {"@echo Generating n2a03 source file...", PYTHON .. " $(1) n2a03_device $(<) $(2) $(@)" }},
+ { MAME_DIR .. "src/devices/cpu/m6502/om740.lst" , GEN_DIR .. "emu/cpu/m6502/m740.hxx", { MAME_DIR .. "src/devices/cpu/m6502/m6502make.py", MAME_DIR .. "src/devices/cpu/m6502/dm740.lst" }, {"@echo Generating m740 source file...", PYTHON .. " $(1) m740_device $(<) $(2) $(@)" }},
+
+ { MAME_DIR .. "src/devices/cpu/m6502/dr65c02.lst", GEN_DIR .. "emu/cpu/m6502/r65c02.hxx", { MAME_DIR .. "src/devices/cpu/m6502/m6502make.py" }, {"@echo Generating r65c02 source file...", PYTHON .. " $(1) r65c02_device - $(<) $(@)" }},
+ }
+end
+
+--------------------------------------------------
+-- Motorola 680x
+--@src/devices/cpu/m6800/m6800.h,CPUS["M6800"] = true
+--------------------------------------------------
+
+if (CPUS["M6800"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/m6800/m6800.cpp",
+ MAME_DIR .. "src/devices/cpu/m6800/m6800.h",
+ MAME_DIR .. "src/devices/cpu/m6800/6800ops.hxx",
+ MAME_DIR .. "src/devices/cpu/m6800/6800tbl.hxx",
+ }
+end
+
+if (CPUS["M6800"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/m6800/6800dasm.cpp")
+end
+
+--------------------------------------------------
+-- Motorola 6805
+--@src/devices/cpu/m6805/m6805.h,CPUS["M6805"] = true
+--------------------------------------------------
+
+if (CPUS["M6805"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/m6805/m6805.cpp",
+ MAME_DIR .. "src/devices/cpu/m6805/m6805.h",
+ MAME_DIR .. "src/devices/cpu/m6805/6805defs.h",
+ MAME_DIR .. "src/devices/cpu/m6805/6805ops.hxx",
+ MAME_DIR .. "src/devices/cpu/m6805/m68705.cpp",
+ MAME_DIR .. "src/devices/cpu/m6805/m68705.h",
+ MAME_DIR .. "src/devices/cpu/m6805/m68hc05.cpp",
+ MAME_DIR .. "src/devices/cpu/m6805/m68hc05.h",
+ }
+end
+
+if (CPUS["M6805"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/m6805/6805dasm.cpp")
+end
+
+--------------------------------------------------
+-- Motorola 6809
+--@src/devices/cpu/m6809/m6809.h,CPUS["M6809"] = true
+--@src/devices/cpu/m6809/hd6309.h,CPUS["M6809"] = true
+--@src/devices/cpu/m6809/konami.h,CPUS["M6809"] = true
+--------------------------------------------------
+
+if (CPUS["M6809"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/m6809/m6809.cpp",
+ MAME_DIR .. "src/devices/cpu/m6809/m6809.h",
+ MAME_DIR .. "src/devices/cpu/m6809/hd6309.cpp",
+ MAME_DIR .. "src/devices/cpu/m6809/hd6309.h",
+ MAME_DIR .. "src/devices/cpu/m6809/konami.cpp",
+ MAME_DIR .. "src/devices/cpu/m6809/konami.h",
+ MAME_DIR .. "src/devices/cpu/m6809/m6809inl.h",
+ }
+
+ dependency {
+ { MAME_DIR .. "src/devices/cpu/m6809/m6809.cpp", GEN_DIR .. "emu/cpu/m6809/m6809.hxx" },
+ { MAME_DIR .. "src/devices/cpu/m6809/hd6309.cpp", GEN_DIR .. "emu/cpu/m6809/hd6309.hxx" },
+ { MAME_DIR .. "src/devices/cpu/m6809/konami.cpp", GEN_DIR .. "emu/cpu/m6809/konami.hxx" },
+ }
+
+ custombuildtask {
+ { MAME_DIR .. "src/devices/cpu/m6809/m6809.ops" , GEN_DIR .. "emu/cpu/m6809/m6809.hxx", { MAME_DIR .. "src/devices/cpu/m6809/m6809make.py" , MAME_DIR .. "src/devices/cpu/m6809/base6x09.ops" }, {"@echo Generating m6809 source file...", PYTHON .. " $(1) $(<) > $(@)" }},
+ { MAME_DIR .. "src/devices/cpu/m6809/hd6309.ops" , GEN_DIR .. "emu/cpu/m6809/hd6309.hxx", { MAME_DIR .. "src/devices/cpu/m6809/m6809make.py" , MAME_DIR .. "src/devices/cpu/m6809/base6x09.ops" }, {"@echo Generating hd6309 source file...", PYTHON .. " $(1) $(<) > $(@)" }},
+ { MAME_DIR .. "src/devices/cpu/m6809/konami.ops" , GEN_DIR .. "emu/cpu/m6809/konami.hxx", { MAME_DIR .. "src/devices/cpu/m6809/m6809make.py" , MAME_DIR .. "src/devices/cpu/m6809/base6x09.ops" }, {"@echo Generating konami source file...", PYTHON .. " $(1) $(<) > $(@)" }},
+ }
+end
+
+if (CPUS["M6809"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/m6809/6x09dasm.cpp")
+end
+
+--------------------------------------------------
+-- Motorola 68HC11
+--@src/devices/cpu/mc68hc11/mc68hc11.h,CPUS["MC68HC11"] = true
+--------------------------------------------------
+
+if (CPUS["MC68HC11"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/mc68hc11/mc68hc11.cpp",
+ MAME_DIR .. "src/devices/cpu/mc68hc11/mc68hc11.h",
+ MAME_DIR .. "src/devices/cpu/mc68hc11/hc11ops.h",
+ MAME_DIR .. "src/devices/cpu/mc68hc11/hc11ops.hxx",
+ }
+end
+
+if (CPUS["MC68HC11"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/mc68hc11/hc11dasm.cpp")
+end
+
+--------------------------------------------------
+-- Motorola 68000 series
+--@src/devices/cpu/m68000/m68000.h,CPUS["M680X0"] = true
+--------------------------------------------------
+
+if (CPUS["M680X0"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/m68000/m68kcpu.cpp",
+ MAME_DIR .. "src/devices/cpu/m68000/m68kcpu.h",
+ MAME_DIR .. "src/devices/cpu/m68000/m68kops.cpp",
+ MAME_DIR .. "src/devices/cpu/m68000/m68kops.h",
+ MAME_DIR .. "src/devices/cpu/m68000/m68000.h",
+ MAME_DIR .. "src/devices/cpu/m68000/m68kfpu.hxx",
+ --MAME_DIR .. "src/devices/cpu/m68000/m68kmake.cpp",
+ MAME_DIR .. "src/devices/cpu/m68000/m68kmmu.h",
+ --MAME_DIR .. "src/devices/cpu/m68000/m68k_in.cpp",
+ }
+end
+
+if (CPUS["M680X0"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/m68000/m68kdasm.cpp")
+end
+
+--------------------------------------------------
+-- Motorola/Freescale dsp56k
+--@src/devices/cpu/dsp56k/dsp56k.h,CPUS["DSP56156"] = true
+--------------------------------------------------
+
+if (CPUS["DSP56156"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/dsp56k/dsp56k.cpp",
+ MAME_DIR .. "src/devices/cpu/dsp56k/dsp56k.h",
+ MAME_DIR .. "src/devices/cpu/dsp56k/dsp56mem.cpp",
+ MAME_DIR .. "src/devices/cpu/dsp56k/dsp56mem.h",
+ MAME_DIR .. "src/devices/cpu/dsp56k/dsp56pcu.cpp",
+ MAME_DIR .. "src/devices/cpu/dsp56k/dsp56pcu.h",
+ MAME_DIR .. "src/devices/cpu/dsp56k/dsp56def.h",
+ MAME_DIR .. "src/devices/cpu/dsp56k/dsp56ops.hxx",
+ MAME_DIR .. "src/devices/cpu/dsp56k/inst.h",
+ MAME_DIR .. "src/devices/cpu/dsp56k/opcode.h",
+ MAME_DIR .. "src/devices/cpu/dsp56k/pmove.h",
+ MAME_DIR .. "src/devices/cpu/dsp56k/tables.h",
+ }
+end
+
+if (CPUS["DSP56156"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/dsp56k/dsp56dsm.cpp")
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/dsp56k/opcode.cpp")
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/dsp56k/inst.cpp")
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/dsp56k/pmove.cpp")
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/dsp56k/tables.cpp")
+end
+
+--------------------------------------------------
+-- PDP-1
+-- TX0
+--@src/devices/cpu/pdp1/pdp1.h,CPUS["PDP1"] = true
+--@src/devices/cpu/pdp1/tx0.h,CPUS["PDP1"] = true
+--------------------------------------------------
+
+if (CPUS["PDP1"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/pdp1/pdp1.cpp",
+ MAME_DIR .. "src/devices/cpu/pdp1/pdp1.h",
+ MAME_DIR .. "src/devices/cpu/pdp1/tx0.cpp",
+ MAME_DIR .. "src/devices/cpu/pdp1/tx0.h",
+ }
+end
+
+if (CPUS["PDP1"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/pdp1/pdp1dasm.cpp")
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/pdp1/tx0dasm.cpp")
+end
+
+--------------------------------------------------
+-- PATINHO FEIO - Escola Politecnica - USP (Brazil)
+--@src/devices/cpu/patinhofeio/patinhofeio_cpu.h,CPUS["PATINHOFEIO"] = true
+--------------------------------------------------
+
+if (CPUS["PATINHOFEIO"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/patinhofeio/patinho_feio.cpp",
+ MAME_DIR .. "src/devices/cpu/patinhofeio/patinhofeio_cpu.h",
+ }
+end
+
+if (CPUS["PATINHOFEIO"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/patinhofeio/patinho_feio_dasm.cpp")
+end
+
+--------------------------------------------------
+-- Motorola PowerPC series
+--@src/devices/cpu/powerpc/ppc.h,CPUS["POWERPC"] = true
+--------------------------------------------------
+
+if (CPUS["POWERPC"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/powerpc/ppccom.cpp",
+ MAME_DIR .. "src/devices/cpu/powerpc/ppccom.h",
+ MAME_DIR .. "src/devices/cpu/powerpc/ppcfe.cpp",
+ MAME_DIR .. "src/devices/cpu/powerpc/ppcfe.h",
+ MAME_DIR .. "src/devices/cpu/powerpc/ppcdrc.cpp",
+ MAME_DIR .. "src/devices/cpu/powerpc/ppc.h",
+ }
+end
+
+if (CPUS["POWERPC"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/powerpc/ppc_dasm.cpp")
+end
+
+--------------------------------------------------
+-- NEC V-series Intel-compatible
+--@src/devices/cpu/nec/nec.h,CPUS["NEC"] = true
+--@src/devices/cpu/nec/v25.h,CPUS["NEC"] = true
+--@src/devices/cpu/nec/v53.h,CPUS["NEC"] = true
+--@src/devices/cpu/v30mz/v30mz.h,CPUS["V30MZ"] = true
+--------------------------------------------------
+
+if (CPUS["NEC"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/nec/nec.cpp",
+ MAME_DIR .. "src/devices/cpu/nec/nec.h",
+ MAME_DIR .. "src/devices/cpu/nec/nec_common.h",
+ MAME_DIR .. "src/devices/cpu/nec/necea.h",
+ MAME_DIR .. "src/devices/cpu/nec/necinstr.h",
+ MAME_DIR .. "src/devices/cpu/nec/necinstr.hxx",
+ MAME_DIR .. "src/devices/cpu/nec/necmacro.h",
+ MAME_DIR .. "src/devices/cpu/nec/necmodrm.h",
+ MAME_DIR .. "src/devices/cpu/nec/necpriv.h",
+ MAME_DIR .. "src/devices/cpu/nec/v25instr.h",
+ MAME_DIR .. "src/devices/cpu/nec/v25instr.hxx",
+ MAME_DIR .. "src/devices/cpu/nec/v25priv.h",
+ MAME_DIR .. "src/devices/cpu/nec/v25.cpp",
+ MAME_DIR .. "src/devices/cpu/nec/v25.h",
+ MAME_DIR .. "src/devices/cpu/nec/v25sfr.cpp",
+ MAME_DIR .. "src/devices/cpu/nec/v53.cpp",
+ MAME_DIR .. "src/devices/cpu/nec/v53.h",
+ }
+end
+
+if (CPUS["NEC"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/nec/necdasm.cpp")
+end
+
+if (CPUS["V30MZ"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/v30mz/v30mz.cpp",
+ MAME_DIR .. "src/devices/cpu/v30mz/v30mz.h",
+ }
+end
+
+if (CPUS["V30MZ"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/nec/necdasm.cpp")
+end
+
+--------------------------------------------------
+-- NEC V60/V70
+--@src/devices/cpu/v60/v60.h,CPUS["V60"] = true
+--------------------------------------------------
+
+if (CPUS["V60"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/v60/v60.cpp",
+ MAME_DIR .. "src/devices/cpu/v60/v60.h",
+ MAME_DIR .. "src/devices/cpu/v60/am.hxx",
+ MAME_DIR .. "src/devices/cpu/v60/am1.hxx",
+ MAME_DIR .. "src/devices/cpu/v60/am2.hxx",
+ MAME_DIR .. "src/devices/cpu/v60/am3.hxx",
+ MAME_DIR .. "src/devices/cpu/v60/op12.hxx",
+ MAME_DIR .. "src/devices/cpu/v60/op2.hxx",
+ MAME_DIR .. "src/devices/cpu/v60/op3.hxx",
+ MAME_DIR .. "src/devices/cpu/v60/op4.hxx",
+ MAME_DIR .. "src/devices/cpu/v60/op5.hxx",
+ MAME_DIR .. "src/devices/cpu/v60/op6.hxx",
+ MAME_DIR .. "src/devices/cpu/v60/op7a.hxx",
+ MAME_DIR .. "src/devices/cpu/v60/optable.hxx",
+ }
+end
+
+if (CPUS["V60"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/v60/v60d.cpp")
+end
+
+--------------------------------------------------
+-- NEC V810 (uPD70732)
+--@src/devices/cpu/v810/v810.h,CPUS["V810"] = true
+--------------------------------------------------
+
+if (CPUS["V810"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/v810/v810.cpp",
+ MAME_DIR .. "src/devices/cpu/v810/v810.h",
+ }
+end
+
+if (CPUS["V810"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/v810/v810dasm.cpp")
+end
+
+--------------------------------------------------
+-- NEC uPD7725
+--@src/devices/cpu/upd7725/upd7725.h,CPUS["UPD7725"] = true
+--------------------------------------------------
+
+if (CPUS["UPD7725"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/upd7725/upd7725.cpp",
+ MAME_DIR .. "src/devices/cpu/upd7725/upd7725.h",
+ }
+end
+
+if (CPUS["UPD7725"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/upd7725/dasm7725.cpp")
+end
+
+--------------------------------------------------
+-- NEC uPD7810 series
+--@src/devices/cpu/upd7810/upd7810.h,CPUS["UPD7810"] = true
+--------------------------------------------------
+
+if (CPUS["UPD7810"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/upd7810/upd7810.cpp",
+ MAME_DIR .. "src/devices/cpu/upd7810/upd7810.h",
+ MAME_DIR .. "src/devices/cpu/upd7810/upd7810_opcodes.cpp",
+ MAME_DIR .. "src/devices/cpu/upd7810/upd7810_table.cpp",
+ MAME_DIR .. "src/devices/cpu/upd7810/upd7810_macros.h",
+ }
+end
+
+if (CPUS["UPD7810"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/upd7810/upd7810_dasm.cpp")
+end
+
+--------------------------------------------------
+-- NEC uCOM-4 series
+--@src/devices/cpu/ucom4/ucom4.h,CPUS["UCOM4"] = true
+--------------------------------------------------
+
+if (CPUS["UCOM4"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/ucom4/ucom4.cpp",
+ MAME_DIR .. "src/devices/cpu/ucom4/ucom4.h",
+ MAME_DIR .. "src/devices/cpu/ucom4/ucom4op.cpp",
+ }
+end
+
+if (CPUS["UCOM4"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/ucom4/ucom4d.cpp")
+end
+
+--------------------------------------------------
+-- Nintendo Minx
+--@src/devices/cpu/minx/minx.h,CPUS["MINX"] = true
+--------------------------------------------------
+
+if (CPUS["MINX"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/minx/minx.cpp",
+ MAME_DIR .. "src/devices/cpu/minx/minx.h",
+ MAME_DIR .. "src/devices/cpu/minx/minxfunc.h",
+ MAME_DIR .. "src/devices/cpu/minx/minxopce.h",
+ MAME_DIR .. "src/devices/cpu/minx/minxopcf.h",
+ MAME_DIR .. "src/devices/cpu/minx/minxops.h",
+ }
+end
+
+if (CPUS["MINX"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/minx/minxd.cpp")
+end
+
+--------------------------------------------------
+-- Nintendo/SGI RSP (R3000-based + vector processing)
+--@src/devices/cpu/rsp/rsp.h,CPUS["RSP"] = true
+--------------------------------------------------
+
+if (CPUS["RSP"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/rsp/rsp.cpp",
+ MAME_DIR .. "src/devices/cpu/rsp/rsp.h",
+ MAME_DIR .. "src/devices/cpu/rsp/rspdrc.cpp",
+ MAME_DIR .. "src/devices/cpu/rsp/rspfe.cpp",
+ MAME_DIR .. "src/devices/cpu/rsp/rspfe.h",
+ MAME_DIR .. "src/devices/cpu/rsp/rspcp2.cpp",
+ MAME_DIR .. "src/devices/cpu/rsp/rspcp2.h",
+ MAME_DIR .. "src/devices/cpu/rsp/rspcp2d.cpp",
+ MAME_DIR .. "src/devices/cpu/rsp/rspcp2d.h",
+ MAME_DIR .. "src/devices/cpu/rsp/clamp.h",
+ MAME_DIR .. "src/devices/cpu/rsp/vabs.h",
+ MAME_DIR .. "src/devices/cpu/rsp/vadd.h",
+ MAME_DIR .. "src/devices/cpu/rsp/vaddc.h",
+ MAME_DIR .. "src/devices/cpu/rsp/vand.h",
+ MAME_DIR .. "src/devices/cpu/rsp/vch.h",
+ MAME_DIR .. "src/devices/cpu/rsp/vcl.h",
+ MAME_DIR .. "src/devices/cpu/rsp/vcmp.h",
+ MAME_DIR .. "src/devices/cpu/rsp/vcr.h",
+ MAME_DIR .. "src/devices/cpu/rsp/vdivh.h",
+ MAME_DIR .. "src/devices/cpu/rsp/vldst.h",
+ MAME_DIR .. "src/devices/cpu/rsp/vmac.h",
+ MAME_DIR .. "src/devices/cpu/rsp/vmov.h",
+ MAME_DIR .. "src/devices/cpu/rsp/vmrg.h",
+ MAME_DIR .. "src/devices/cpu/rsp/vmudh.h",
+ MAME_DIR .. "src/devices/cpu/rsp/vmul.h",
+ MAME_DIR .. "src/devices/cpu/rsp/vmulh.h",
+ MAME_DIR .. "src/devices/cpu/rsp/vmull.h",
+ MAME_DIR .. "src/devices/cpu/rsp/vmulm.h",
+ MAME_DIR .. "src/devices/cpu/rsp/vmuln.h",
+ MAME_DIR .. "src/devices/cpu/rsp/vor.h",
+ MAME_DIR .. "src/devices/cpu/rsp/vrcpsq.h",
+ MAME_DIR .. "src/devices/cpu/rsp/vrsq.h",
+ MAME_DIR .. "src/devices/cpu/rsp/vsub.h",
+ MAME_DIR .. "src/devices/cpu/rsp/vsubc.h",
+ MAME_DIR .. "src/devices/cpu/rsp/vxor.h",
+ MAME_DIR .. "src/devices/cpu/rsp/rspdiv.h",
+ }
+end
+
+if (CPUS["RSP"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/rsp/rsp_dasm.cpp")
+end
+
+--------------------------------------------------
+-- Panasonic MN10200
+--@src/devices/cpu/mn10200/mn10200.h,CPUS["MN10200"] = true
+--------------------------------------------------
+
+if (CPUS["MN10200"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/mn10200/mn10200.cpp",
+ MAME_DIR .. "src/devices/cpu/mn10200/mn10200.h",
+ }
+end
+
+if (CPUS["MN10200"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/mn10200/mn102dis.cpp")
+end
+
+--------------------------------------------------
+-- Saturn
+--@src/devices/cpu/saturn/saturn.h,CPUS["SATURN"] = true
+--------------------------------------------------
+
+if (CPUS["SATURN"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/saturn/saturn.cpp",
+ MAME_DIR .. "src/devices/cpu/saturn/saturn.h",
+ MAME_DIR .. "src/devices/cpu/saturn/satops.hxx",
+ MAME_DIR .. "src/devices/cpu/saturn/sattable.hxx",
+ }
+end
+
+if (CPUS["SATURN"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/saturn/saturnds.cpp")
+end
+
+--------------------------------------------------
+-- Sharp SM510 series
+--@src/devices/cpu/sm510/sm510.h,CPUS["SM510"] = true
+--------------------------------------------------
+
+if (CPUS["SM510"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/sm510/sm510.cpp",
+ MAME_DIR .. "src/devices/cpu/sm510/sm510.h",
+ MAME_DIR .. "src/devices/cpu/sm510/sm510op.cpp",
+ MAME_DIR .. "src/devices/cpu/sm510/sm510core.cpp",
+ MAME_DIR .. "src/devices/cpu/sm510/sm511core.cpp",
+ MAME_DIR .. "src/devices/cpu/sm510/sm500.h",
+ MAME_DIR .. "src/devices/cpu/sm510/sm500op.cpp",
+ MAME_DIR .. "src/devices/cpu/sm510/sm500core.cpp",
+ MAME_DIR .. "src/devices/cpu/sm510/kb1013vk1-2.h",
+ MAME_DIR .. "src/devices/cpu/sm510/kb1013vk1-2op.cpp",
+ MAME_DIR .. "src/devices/cpu/sm510/kb1013vk1-2core.cpp",
+ }
+end
+
+if (CPUS["SM510"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/sm510/sm510d.cpp")
+end
+
+--------------------------------------------------
+-- Sharp SM8500
+--@src/devices/cpu/sm8500/sm8500.h,CPUS["SM8500"] = true
+--------------------------------------------------
+
+if (CPUS["SM8500"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/sm8500/sm8500.cpp",
+ MAME_DIR .. "src/devices/cpu/sm8500/sm8500.h",
+ MAME_DIR .. "src/devices/cpu/sm8500/sm85ops.h",
+ }
+end
+
+if (CPUS["SM8500"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/sm8500/sm8500d.cpp")
+end
+
+--------------------------------------------------
+-- Signetics 2650
+--@src/devices/cpu/s2650/s2650.h,CPUS["S2650"] = true
+--------------------------------------------------
+
+if (CPUS["S2650"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/s2650/s2650.cpp",
+ MAME_DIR .. "src/devices/cpu/s2650/s2650.h",
+ MAME_DIR .. "src/devices/cpu/s2650/s2650cpu.h",
+ }
+end
+
+if (CPUS["S2650"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/s2650/2650dasm.cpp")
+end
+
+--------------------------------------------------
+-- SC61860
+--@src/devices/cpu/sc61860/sc61860.h,CPUS["SC61860"] = true
+--------------------------------------------------
+
+if (CPUS["SC61860"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/sc61860/sc61860.cpp",
+ MAME_DIR .. "src/devices/cpu/sc61860/sc61860.h",
+ --MAME_DIR .. "src/devices/cpu/sc61860/readpc.cpp",
+ MAME_DIR .. "src/devices/cpu/sc61860/scops.hxx",
+ MAME_DIR .. "src/devices/cpu/sc61860/sctable.hxx",
+ }
+end
+
+if (CPUS["SC61860"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/sc61860/scdasm.cpp")
+end
+
+--------------------------------------------------
+-- Sony/Nintendo SPC700
+--@src/devices/cpu/spc700/spc700.h,CPUS["SPC700"] = true
+--------------------------------------------------
+
+if (CPUS["SPC700"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/spc700/spc700.cpp",
+ MAME_DIR .. "src/devices/cpu/spc700/spc700.h",
+ MAME_DIR .. "src/devices/cpu/spc700/spc700ds.h",
+ }
+end
+
+if (CPUS["SPC700"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/spc700/spc700ds.cpp")
+end
+
+--------------------------------------------------
+-- SSP1601
+--@src/devices/cpu/ssp1601/ssp1601.h,CPUS["SSP1601"] = true
+--------------------------------------------------
+
+if (CPUS["SSP1601"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/ssp1601/ssp1601.cpp",
+ MAME_DIR .. "src/devices/cpu/ssp1601/ssp1601.h",
+ }
+end
+
+if (CPUS["SSP1601"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/ssp1601/ssp1601d.cpp")
+end
+
+--------------------------------------------------
+-- SunPlus u'nSP
+--@src/devices/cpu/unsp/unsp.h,CPUS["UNSP"] = true
+--------------------------------------------------
+
+if (CPUS["UNSP"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/unsp/unsp.cpp",
+ MAME_DIR .. "src/devices/cpu/unsp/unsp.h",
+ }
+end
+
+if (CPUS["UNSP"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/unsp/unspdasm.cpp")
+end
+
+--------------------------------------------------
+-- Atmel 8-bit AVR
+--@src/devices/cpu/avr8/avr8.h,CPUS["AVR8"] = true
+--------------------------------------------------
+
+if (CPUS["AVR8"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/avr8/avr8.cpp",
+ MAME_DIR .. "src/devices/cpu/avr8/avr8.h",
+ }
+end
+
+if (CPUS["AVR8"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/avr8/avr8dasm.cpp")
+end
+
+--------------------------------------------------
+-- Texas Instruments TMS1000 series
+--@src/devices/cpu/tms1000/tms1000.h,CPUS["TMS1000"] = true
+--@src/devices/cpu/tms1000/tms1100.h,CPUS["TMS1000"] = true
+--@src/devices/cpu/tms1000/tms1400.h,CPUS["TMS1000"] = true
+--@src/devices/cpu/tms1000/tms0970.h,CPUS["TMS1000"] = true
+--@src/devices/cpu/tms1000/tms0980.h,CPUS["TMS1000"] = true
+--@src/devices/cpu/tms1000/tms0270.h,CPUS["TMS1000"] = true
+--@src/devices/cpu/tms1000/tp0320.h,CPUS["TMS1000"] = true
+--------------------------------------------------
+
+if (CPUS["TMS1000"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/tms1000/tms1k_base.cpp",
+ MAME_DIR .. "src/devices/cpu/tms1000/tms1k_base.h",
+ MAME_DIR .. "src/devices/cpu/tms1000/tms1000.cpp",
+ MAME_DIR .. "src/devices/cpu/tms1000/tms1000.h",
+ MAME_DIR .. "src/devices/cpu/tms1000/tms1100.cpp",
+ MAME_DIR .. "src/devices/cpu/tms1000/tms1100.h",
+ MAME_DIR .. "src/devices/cpu/tms1000/tms1400.cpp",
+ MAME_DIR .. "src/devices/cpu/tms1000/tms1400.h",
+ MAME_DIR .. "src/devices/cpu/tms1000/tms0970.cpp",
+ MAME_DIR .. "src/devices/cpu/tms1000/tms0970.h",
+ MAME_DIR .. "src/devices/cpu/tms1000/tms0980.cpp",
+ MAME_DIR .. "src/devices/cpu/tms1000/tms0980.h",
+ MAME_DIR .. "src/devices/cpu/tms1000/tms0270.cpp",
+ MAME_DIR .. "src/devices/cpu/tms1000/tms0270.h",
+ MAME_DIR .. "src/devices/cpu/tms1000/tp0320.cpp",
+ MAME_DIR .. "src/devices/cpu/tms1000/tp0320.h",
+ }
+end
+
+if (CPUS["TMS1000"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/tms1000/tms1k_dasm.cpp")
+end
+
+--------------------------------------------------
+-- Texas Instruments TMS7000 series
+--@src/devices/cpu/tms7000/tms7000.h,CPUS["TMS7000"] = true
+--------------------------------------------------
+
+if (CPUS["TMS7000"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/tms7000/tms7000.cpp",
+ MAME_DIR .. "src/devices/cpu/tms7000/tms7000.h",
+ MAME_DIR .. "src/devices/cpu/tms7000/tms7000op.cpp",
+ }
+end
+
+if (CPUS["TMS7000"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/tms7000/7000dasm.cpp")
+end
+
+--------------------------------------------------
+-- Texas Instruments TMS99xx series
+--@src/devices/cpu/tms9900/tms9900.h,CPUS["TMS9900"] = true
+--@src/devices/cpu/tms9900/tms9980a.h,CPUS["TMS9900"] = true
+--@src/devices/cpu/tms9900/tms9995.h,CPUS["TMS9900"] = true
+--@src/devices/cpu/tms9900/ti990_10.h,CPUS["TMS9900"] = true
+--------------------------------------------------
+
+if (CPUS["TMS9900"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/tms9900/tms9900.cpp",
+ MAME_DIR .. "src/devices/cpu/tms9900/tms9900.h",
+ MAME_DIR .. "src/devices/cpu/tms9900/tms9980a.cpp",
+ MAME_DIR .. "src/devices/cpu/tms9900/tms9980a.h",
+ MAME_DIR .. "src/devices/cpu/tms9900/tms9995.cpp",
+ MAME_DIR .. "src/devices/cpu/tms9900/tms9995.h",
+ MAME_DIR .. "src/devices/cpu/tms9900/ti990_10.cpp",
+ MAME_DIR .. "src/devices/cpu/tms9900/ti990_10.h",
+ MAME_DIR .. "src/devices/cpu/tms9900/tms99com.h",
+ }
+end
+
+if (CPUS["TMS9900"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/tms9900/9900dasm.cpp")
+end
+
+--------------------------------------------------
+-- Texas Instruments TMS340x0 graphics controllers
+--@src/devices/cpu/tms34010/tms34010.h,CPUS["TMS340X0"] = true
+--------------------------------------------------
+
+if (CPUS["TMS340X0"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/tms34010/tms34010.cpp",
+ MAME_DIR .. "src/devices/cpu/tms34010/tms34010.h",
+ MAME_DIR .. "src/devices/cpu/tms34010/34010fld.hxx",
+ MAME_DIR .. "src/devices/cpu/tms34010/34010gfx.hxx",
+ MAME_DIR .. "src/devices/cpu/tms34010/34010ops.h",
+ MAME_DIR .. "src/devices/cpu/tms34010/34010ops.hxx",
+ MAME_DIR .. "src/devices/cpu/tms34010/34010tbl.hxx",
+ --MAME_DIR .. "src/devices/cpu/tms34010/dis34010.cpp",
+ }
+end
+
+if (CPUS["TMS340X0"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/tms34010/34010dsm.cpp")
+end
+
+--------------------------------------------------
+-- Texas Instruments TMS3201x DSP
+--@src/devices/cpu/tms32010/tms32010.h,CPUS["TMS32010"] = true
+--------------------------------------------------
+
+if (CPUS["TMS32010"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/tms32010/tms32010.cpp",
+ MAME_DIR .. "src/devices/cpu/tms32010/tms32010.h",
+ --MAME_DIR .. "src/devices/cpu/tms32010/dis32010.cpp",
+ }
+end
+
+if (CPUS["TMS32010"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/tms32010/32010dsm.cpp")
+end
+
+--------------------------------------------------
+-- Texas Instruments TMS3202x DSP
+--@src/devices/cpu/tms32025/tms32025.h,CPUS["TMS32025"] = true
+--------------------------------------------------
+
+if (CPUS["TMS32025"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/tms32025/tms32025.cpp",
+ MAME_DIR .. "src/devices/cpu/tms32025/tms32025.h",
+ --MAME_DIR .. "src/devices/cpu/tms32025/dis32025.cpp",
+ }
+end
+
+if (CPUS["TMS32025"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/tms32025/32025dsm.cpp")
+end
+
+--------------------------------------------------
+-- Texas Instruments TMS3203x DSP
+--@src/devices/cpu/tms32031/tms32031.h,CPUS["TMS32031"] = true
+--------------------------------------------------
+
+if (CPUS["TMS32031"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/tms32031/tms32031.cpp",
+ MAME_DIR .. "src/devices/cpu/tms32031/tms32031.h",
+ MAME_DIR .. "src/devices/cpu/tms32031/32031ops.hxx",
+ }
+end
+
+if (CPUS["TMS32031"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/tms32031/dis32031.cpp")
+end
+
+--------------------------------------------------
+-- Texas Instruments TMS3205x DSP
+--@src/devices/cpu/tms32051/tms32051.h,CPUS["TMS32051"] = true
+--------------------------------------------------
+
+if (CPUS["TMS32051"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/tms32051/tms32051.cpp",
+ MAME_DIR .. "src/devices/cpu/tms32051/tms32051.h",
+ MAME_DIR .. "src/devices/cpu/tms32051/32051ops.h",
+ MAME_DIR .. "src/devices/cpu/tms32051/32051ops.hxx",
+ }
+end
+
+if (CPUS["TMS32051"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/tms32051/dis32051.cpp")
+end
+
+--------------------------------------------------
+-- Texas Instruments TMS3208x DSP
+--@src/devices/cpu/tms32082/tms32082.h,CPUS["TMS32082"] = true
+--------------------------------------------------
+
+if (CPUS["TMS32082"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/tms32082/tms32082.cpp",
+ MAME_DIR .. "src/devices/cpu/tms32082/tms32082.h",
+ MAME_DIR .. "src/devices/cpu/tms32082/mp_ops.cpp",
+ }
+end
+
+if (CPUS["TMS32082"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/tms32082/dis_mp.cpp")
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/tms32082/dis_pp.cpp")
+end
+
+--------------------------------------------------
+-- Texas Instruments TMS57002 DSP
+--@src/devices/cpu/tms57002/tms57002.h,CPUS["TMS57002"] = true
+--------------------------------------------------
+
+if (CPUS["TMS57002"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/tms57002/tms57002.cpp",
+ MAME_DIR .. "src/devices/cpu/tms57002/tms57002.h",
+ MAME_DIR .. "src/devices/cpu/tms57002/tms57kdec.cpp",
+ }
+ dependency {
+ { MAME_DIR .. "src/devices/cpu/tms57002/tms57kdec.cpp", GEN_DIR .. "emu/cpu/tms57002/tms57002.hxx" },
+ { MAME_DIR .. "src/devices/cpu/tms57002/tms57002.cpp", GEN_DIR .. "emu/cpu/tms57002/tms57002.hxx" },
+ }
+ custombuildtask {
+ { MAME_DIR .. "src/devices/cpu/tms57002/tmsinstr.lst" , GEN_DIR .. "emu/cpu/tms57002/tms57002.hxx", { MAME_DIR .. "src/devices/cpu/tms57002/tmsmake.py" }, {"@echo Generating TMS57002 source file...", PYTHON .. " $(1) $(<) $(@)" } }
+ }
+end
+
+if (CPUS["TMS57002"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/tms57002/57002dsm.cpp")
+ table.insert(disasm_dependency , { MAME_DIR .. "src/devices/cpu/tms57002/57002dsm.cpp", GEN_DIR .. "emu/cpu/tms57002/tms57002.hxx" } )
+ table.insert(disasm_custombuildtask , { MAME_DIR .. "src/devices/cpu/tms57002/tmsinstr.lst" , GEN_DIR .. "emu/cpu/tms57002/tms57002.hxx", { MAME_DIR .. "src/devices/cpu/tms57002/tmsmake.py" }, {"@echo Generating TMS57002 source file...", PYTHON .. " $(1) $(<) $(@)" }})
+end
+
+--------------------------------------------------
+-- Toshiba TLCS-90 Series
+--@src/devices/cpu/tlcs90/tlcs90.h,CPUS["TLCS90"] = true
+--------------------------------------------------
+
+if (CPUS["TLCS90"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/tlcs90/tlcs90.cpp",
+ MAME_DIR .. "src/devices/cpu/tlcs90/tlcs90.h",
+ }
+end
+
+--------------------------------------------------
+-- Toshiba TLCS-870 Series
+--@src/devices/cpu/tlcs870/tlcs870.h,CPUS["TLCS870"] = true
+--------------------------------------------------
+
+if (CPUS["TLCS870"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/tlcs870/tlcs870.cpp",
+ MAME_DIR .. "src/devices/cpu/tlcs870/tlcs870.h",
+ }
+end
+
+--------------------------------------------------
+-- Toshiba TLCS-900 Series
+--@src/devices/cpu/tlcs900/tlcs900.h,CPUS["TLCS900"] = true
+--------------------------------------------------
+
+if (CPUS["TLCS900"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/tlcs900/tlcs900.cpp",
+ MAME_DIR .. "src/devices/cpu/tlcs900/tlcs900.h",
+ MAME_DIR .. "src/devices/cpu/tlcs900/900tbl.hxx",
+ }
+end
+
+if (CPUS["TLCS900"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/tlcs900/dasm900.cpp")
+end
+
+--------------------------------------------------
+-- Zilog Z80
+--@src/devices/cpu/z80/z80.h,CPUS["Z80"] = true
+--@src/devices/cpu/z80/z80daisy.h,CPUS["Z80"] = true
+--------------------------------------------------
+
+if (CPUS["Z80"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/z80/z80.cpp",
+ MAME_DIR .. "src/devices/cpu/z80/z80.h",
+ MAME_DIR .. "src/devices/cpu/z80/z80daisy.cpp",
+ MAME_DIR .. "src/devices/cpu/z80/z80daisy.h",
+ MAME_DIR .. "src/devices/cpu/z80/tmpz84c011.cpp",
+ MAME_DIR .. "src/devices/cpu/z80/tmpz84c011.h",
+ MAME_DIR .. "src/devices/cpu/z80/tmpz84c015.cpp",
+ MAME_DIR .. "src/devices/cpu/z80/tmpz84c015.h",
+ MAME_DIR .. "src/devices/cpu/z80/kl5c80a12.cpp",
+ MAME_DIR .. "src/devices/cpu/z80/kl5c80a12.h",
+ }
+end
+
+if (CPUS["Z80"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/z80/z80dasm.cpp")
+end
+
+--------------------------------------------------
+-- Sharp LR35902 (Game Boy CPU)
+--@src/devices/cpu/lr35902/lr35902.h,CPUS["LR35902"] = true
+--------------------------------------------------
+
+if (CPUS["LR35902"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/lr35902/lr35902.cpp",
+ MAME_DIR .. "src/devices/cpu/lr35902/lr35902.h",
+ MAME_DIR .. "src/devices/cpu/lr35902/opc_cb.hxx",
+ MAME_DIR .. "src/devices/cpu/lr35902/opc_main.hxx",
+ }
+end
+
+if (CPUS["LR35902"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/lr35902/lr35902d.cpp")
+end
+
+--------------------------------------------------
+-- Zilog Z180
+--@src/devices/cpu/z180/z180.h,CPUS["Z180"] = true
+--------------------------------------------------
+
+if (CPUS["Z180"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/z180/z180.cpp",
+ MAME_DIR .. "src/devices/cpu/z180/z180.h",
+ MAME_DIR .. "src/devices/cpu/z180/z180cb.hxx",
+ MAME_DIR .. "src/devices/cpu/z180/z180dd.hxx",
+ MAME_DIR .. "src/devices/cpu/z180/z180ed.hxx",
+ MAME_DIR .. "src/devices/cpu/z180/z180fd.hxx",
+ MAME_DIR .. "src/devices/cpu/z180/z180op.hxx",
+ MAME_DIR .. "src/devices/cpu/z180/z180ops.h",
+ MAME_DIR .. "src/devices/cpu/z180/z180tbl.h",
+ MAME_DIR .. "src/devices/cpu/z180/z180xy.hxx",
+ MAME_DIR .. "src/devices/cpu/z80/z80daisy.cpp",
+ MAME_DIR .. "src/devices/cpu/z80/z80daisy.h",
+ }
+end
+
+if (CPUS["Z180"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/z180/z180dasm.cpp")
+end
+
+--------------------------------------------------
+-- Zilog Z8000
+--@src/devices/cpu/z8000/z8000.h,CPUS["Z8000"] = true
+--------------------------------------------------
+
+if (CPUS["Z8000"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/z8000/z8000.cpp",
+ MAME_DIR .. "src/devices/cpu/z8000/z8000.h",
+ --MAME_DIR .. "src/devices/cpu/z8000/makedab.cpp",
+ MAME_DIR .. "src/devices/cpu/z8000/z8000cpu.h",
+ MAME_DIR .. "src/devices/cpu/z8000/z8000dab.h",
+ MAME_DIR .. "src/devices/cpu/z8000/z8000ops.hxx",
+ MAME_DIR .. "src/devices/cpu/z8000/z8000tbl.hxx",
+ }
+end
+
+if (CPUS["Z8000"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/z8000/8000dasm.cpp")
+end
+
+--------------------------------------------------
+-- Zilog Z8
+--@src/devices/cpu/z8/z8.h,CPUS["Z8"] = true
+--------------------------------------------------
+
+if (CPUS["Z8"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/z8/z8.cpp",
+ MAME_DIR .. "src/devices/cpu/z8/z8.h",
+ MAME_DIR .. "src/devices/cpu/z8/z8ops.hxx",
+ }
+end
+
+if (CPUS["Z8"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/z8/z8dasm.cpp")
+end
+
+--------------------------------------------------
+-- Argonaut SuperFX
+--@src/devices/cpu/superfx/superfx.h,CPUS["SUPERFX"] = true
+--------------------------------------------------
+
+if (CPUS["SUPERFX"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/superfx/superfx.cpp",
+ MAME_DIR .. "src/devices/cpu/superfx/superfx.h",
+ }
+end
+
+if (CPUS["SUPERFX"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/superfx/sfx_dasm.cpp")
+end
+
+--------------------------------------------------
+-- Rockwell PPS-4
+--@src/devices/cpu/pps4/pps4.h,CPUS["PPS4"] = true
+--------------------------------------------------
+
+if (CPUS["PPS4"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/pps4/pps4.cpp",
+ MAME_DIR .. "src/devices/cpu/pps4/pps4.h",
+ }
+end
+
+if (CPUS["PPS4"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/pps4/pps4dasm.cpp")
+end
+
+--------------------------------------------------
+-- Hitachi HD61700
+--@src/devices/cpu/hd61700/hd61700.h,CPUS["HD61700"] = true
+--------------------------------------------------
+
+if (CPUS["HD61700"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/hd61700/hd61700.cpp",
+ MAME_DIR .. "src/devices/cpu/hd61700/hd61700.h",
+ }
+end
+
+if (CPUS["HD61700"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/hd61700/hd61700d.cpp")
+end
+
+--------------------------------------------------
+-- Sanyo LC8670
+--@src/devices/cpu/lc8670/lc8670.h,CPUS["LC8670"] = true
+--------------------------------------------------
+
+if (CPUS["LC8670"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/lc8670/lc8670.cpp",
+ MAME_DIR .. "src/devices/cpu/lc8670/lc8670.h",
+ }
+end
+
+if (CPUS["LC8670"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/lc8670/lc8670dsm.cpp")
+end
+
+--------------------------------------------------
+-- Sega SCU DSP
+--@src/devices/cpu/scudsp/scudsp.h,CPUS["SCUDSP"] = true
+--------------------------------------------------
+
+if (CPUS["SCUDSP"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/scudsp/scudsp.cpp",
+ MAME_DIR .. "src/devices/cpu/scudsp/scudsp.h",
+ }
+end
+
+if (CPUS["SCUDSP"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/scudsp/scudspdasm.cpp")
+end
+
+--------------------------------------------------
+-- Sunplus Technology S+core
+--@src/devices/cpu/score/score.h,CPUS["SCORE"] = true
+--------------------------------------------------
+
+if (CPUS["SCORE"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/score/score.cpp",
+ MAME_DIR .. "src/devices/cpu/score/score.h",
+ MAME_DIR .. "src/devices/cpu/score/scorem.h",
+ }
+end
+
+if (CPUS["SCORE"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/score/scoredsm.cpp")
+end
+
+--------------------------------------------------
+-- Xerox Alto-II
+--@src/devices/cpu/alto2/alto2cpu.h,CPUS["ALTO2"] = true
+--------------------------------------------------
+
+if (CPUS["ALTO2"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/alto2/alto2cpu.cpp",
+ MAME_DIR .. "src/devices/cpu/alto2/alto2cpu.h",
+ MAME_DIR .. "src/devices/cpu/alto2/a2disk.cpp",
+ MAME_DIR .. "src/devices/cpu/alto2/a2disk.h",
+ MAME_DIR .. "src/devices/cpu/alto2/a2disp.cpp",
+ MAME_DIR .. "src/devices/cpu/alto2/a2disp.h",
+ MAME_DIR .. "src/devices/cpu/alto2/a2curt.cpp",
+ MAME_DIR .. "src/devices/cpu/alto2/a2curt.h",
+ MAME_DIR .. "src/devices/cpu/alto2/a2dht.cpp",
+ MAME_DIR .. "src/devices/cpu/alto2/a2dht.h",
+ MAME_DIR .. "src/devices/cpu/alto2/a2dvt.cpp",
+ MAME_DIR .. "src/devices/cpu/alto2/a2dvt.h",
+ MAME_DIR .. "src/devices/cpu/alto2/a2dwt.cpp",
+ MAME_DIR .. "src/devices/cpu/alto2/a2dwt.h",
+ MAME_DIR .. "src/devices/cpu/alto2/a2emu.cpp",
+ MAME_DIR .. "src/devices/cpu/alto2/a2emu.h",
+ MAME_DIR .. "src/devices/cpu/alto2/a2ether.cpp",
+ MAME_DIR .. "src/devices/cpu/alto2/a2ether.h",
+ MAME_DIR .. "src/devices/cpu/alto2/a2hw.cpp",
+ MAME_DIR .. "src/devices/cpu/alto2/a2hw.h",
+ MAME_DIR .. "src/devices/cpu/alto2/a2kbd.cpp",
+ MAME_DIR .. "src/devices/cpu/alto2/a2kbd.h",
+ MAME_DIR .. "src/devices/cpu/alto2/a2ksec.cpp",
+ MAME_DIR .. "src/devices/cpu/alto2/a2ksec.h",
+ MAME_DIR .. "src/devices/cpu/alto2/a2kwd.cpp",
+ MAME_DIR .. "src/devices/cpu/alto2/a2kwd.h",
+ MAME_DIR .. "src/devices/cpu/alto2/a2mem.cpp",
+ MAME_DIR .. "src/devices/cpu/alto2/a2mem.h",
+ MAME_DIR .. "src/devices/cpu/alto2/a2mouse.cpp",
+ MAME_DIR .. "src/devices/cpu/alto2/a2mouse.h",
+ MAME_DIR .. "src/devices/cpu/alto2/a2mrt.cpp",
+ MAME_DIR .. "src/devices/cpu/alto2/a2mrt.h",
+ MAME_DIR .. "src/devices/cpu/alto2/a2part.cpp",
+ MAME_DIR .. "src/devices/cpu/alto2/a2part.h",
+ MAME_DIR .. "src/devices/cpu/alto2/a2ram.cpp",
+ MAME_DIR .. "src/devices/cpu/alto2/a2ram.h",
+ MAME_DIR .. "src/devices/cpu/alto2/a2roms.cpp",
+ MAME_DIR .. "src/devices/cpu/alto2/a2roms.h",
+ MAME_DIR .. "src/devices/cpu/alto2/a2jkff.h",
+ }
+end
+
+if (CPUS["ALTO2"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/alto2/alto2dsm.cpp")
+end
+
+------------------------------------------
+-- Sun SPARC, Fujitus MB86901 implementation
+--@src/devices/cpu/sparc/sparc.h,CPUS["MB86901"] = true
+--------------------------------------------------
+
+if (CPUS["MB86901"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/sparc/mb86901.cpp",
+ MAME_DIR .. "src/devices/cpu/sparc/sparcv8ops.ipp",
+ MAME_DIR .. "src/devices/cpu/sparc/sparcdasm.h",
+ MAME_DIR .. "src/devices/cpu/sparc/sparcdefs.h",
+ MAME_DIR .. "src/devices/cpu/sparc/sparc.h",
+ }
+end
+
+if (CPUS["MB86901"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/sparc/sparcdasm.cpp")
+end
+
+--------------------------------------------------
+-- Intergraph CLIPPER (C100/C300/C400) series
+--@src/devices/cpu/clipper/clipper.h,CPUS["CLIPPER"] = true
+--------------------------------------------------
+
+if (CPUS["CLIPPER"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/clipper/clipper.cpp",
+ MAME_DIR .. "src/devices/cpu/clipper/clipper.h",
+ }
+end
+
+if (CPUS["CLIPPER"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/clipper/clipperd.cpp")
+end
diff --git a/docs/release/scripts/src/devices.lua b/docs/release/scripts/src/devices.lua
new file mode 100644
index 00000000000..ede4d8b0a86
--- /dev/null
+++ b/docs/release/scripts/src/devices.lua
@@ -0,0 +1,94 @@
+-- license:BSD-3-Clause
+-- copyright-holders:MAMEdev Team
+
+---------------------------------------------------------------------------
+--
+-- devices.lua
+--
+-- Rules for building device cores
+--
+---------------------------------------------------------------------------
+
+function devicesProject(_target, _subtarget)
+
+ disasm_files = { }
+ disasm_dependency = { }
+ disasm_custombuildtask = { }
+
+ project ("optional")
+ uuid (os.uuid("optional-" .. _target .."_" .. _subtarget))
+ kind (LIBTYPE)
+ targetsubdir(_target .."_" .. _subtarget)
+
+ if (_OPTIONS["targetos"] ~= "asmjs") then
+ options {
+ "ArchiveSplit",
+ }
+ end
+
+ addprojectflags()
+ precompiledheaders()
+
+ includedirs {
+ MAME_DIR .. "src/osd",
+ MAME_DIR .. "src/emu",
+ MAME_DIR .. "src/devices",
+ MAME_DIR .. "src/mame", -- used for sound amiga
+ MAME_DIR .. "src/lib",
+ MAME_DIR .. "src/lib/util",
+ MAME_DIR .. "3rdparty",
+ GEN_DIR .. "emu",
+ GEN_DIR .. "emu/layout",
+ ext_includedir("expat"),
+ ext_includedir("flac"),
+ MAME_DIR .. "3rdparty/asio/include",
+ }
+
+ dofile(path.join("src", "cpu.lua"))
+
+ dofile(path.join("src", "sound.lua"))
+
+ dofile(path.join("src", "video.lua"))
+
+ dofile(path.join("src", "machine.lua"))
+
+ dofile(path.join("src", "bus.lua"))
+
+if #disasm_files > 0 then
+ project ("dasm")
+ uuid ("f2d28b0a-6da5-4f78-b629-d834aa00429d")
+ kind (LIBTYPE)
+ targetsubdir(_target .."_" .. _subtarget)
+ addprojectflags()
+ precompiledheaders()
+
+ includedirs {
+ MAME_DIR .. "src/osd",
+ MAME_DIR .. "src/emu",
+ MAME_DIR .. "src/devices",
+ MAME_DIR .. "src/lib",
+ MAME_DIR .. "src/lib/util",
+ MAME_DIR .. "3rdparty",
+ MAME_DIR .. "3rdparty/asio/include",
+ GEN_DIR .. "emu",
+ ext_includedir("expat"),
+ }
+
+ files {
+ disasm_files
+ }
+
+ if #disasm_dependency > 0 then
+ dependency {
+ disasm_dependency[1]
+ }
+ end
+
+ if #disasm_custombuildtask > 0 then
+ custombuildtask {
+ disasm_custombuildtask[1]
+ }
+ end
+end
+
+end
diff --git a/docs/release/scripts/src/emu.lua b/docs/release/scripts/src/emu.lua
new file mode 100644
index 00000000000..0b6a770bdfc
--- /dev/null
+++ b/docs/release/scripts/src/emu.lua
@@ -0,0 +1,297 @@
+-- license:BSD-3-Clause
+-- copyright-holders:MAMEdev Team
+
+---------------------------------------------------------------------------
+--
+-- emu.lua
+--
+-- Rules for building emu cores
+--
+---------------------------------------------------------------------------
+
+project ("emu")
+uuid ("e6fa15e4-a354-4526-acef-13c8e80fcacf")
+kind (LIBTYPE)
+
+addprojectflags()
+precompiledheaders()
+options {
+ "ArchiveSplit",
+}
+includedirs {
+ MAME_DIR .. "src/osd",
+ MAME_DIR .. "src/emu",
+ MAME_DIR .. "src/lib",
+ MAME_DIR .. "src/lib/util",
+ MAME_DIR .. "3rdparty",
+ GEN_DIR .. "emu",
+ GEN_DIR .. "emu/layout",
+}
+
+includedirs {
+ ext_includedir("expat"),
+ ext_includedir("zlib"),
+ ext_includedir("flac"),
+ ext_includedir("jpeg"),
+ MAME_DIR .. "3rdparty/asio/include",
+}
+
+files {
+ MAME_DIR .. "src/emu/emu.h",
+ MAME_DIR .. "src/emu/main.h",
+ MAME_DIR .. "src/emu/main.cpp",
+ MAME_DIR .. "src/emu/gamedrv.h",
+ MAME_DIR .. "src/emu/hashfile.cpp",
+ MAME_DIR .. "src/emu/hashfile.h",
+ MAME_DIR .. "src/emu/addrmap.cpp",
+ MAME_DIR .. "src/emu/addrmap.h",
+ MAME_DIR .. "src/emu/attotime.cpp",
+ MAME_DIR .. "src/emu/attotime.h",
+ MAME_DIR .. "src/emu/bookkeeping.cpp",
+ MAME_DIR .. "src/emu/bookkeeping.h",
+ MAME_DIR .. "src/emu/config.cpp",
+ MAME_DIR .. "src/emu/config.h",
+ MAME_DIR .. "src/emu/crsshair.cpp",
+ MAME_DIR .. "src/emu/crsshair.h",
+ MAME_DIR .. "src/emu/debugger.cpp",
+ MAME_DIR .. "src/emu/debugger.h",
+ MAME_DIR .. "src/emu/devdelegate.cpp",
+ MAME_DIR .. "src/emu/devdelegate.h",
+ MAME_DIR .. "src/emu/devcb.cpp",
+ MAME_DIR .. "src/emu/devcb.h",
+ MAME_DIR .. "src/emu/devcpu.cpp",
+ MAME_DIR .. "src/emu/devcpu.h",
+ MAME_DIR .. "src/emu/devfind.cpp",
+ MAME_DIR .. "src/emu/devfind.h",
+ MAME_DIR .. "src/emu/device.cpp",
+ MAME_DIR .. "src/emu/device.h",
+ MAME_DIR .. "src/emu/device.ipp",
+ MAME_DIR .. "src/emu/didisasm.cpp",
+ MAME_DIR .. "src/emu/didisasm.h",
+ MAME_DIR .. "src/emu/diexec.cpp",
+ MAME_DIR .. "src/emu/diexec.h",
+ MAME_DIR .. "src/emu/digfx.cpp",
+ MAME_DIR .. "src/emu/digfx.h",
+ MAME_DIR .. "src/emu/diimage.cpp",
+ MAME_DIR .. "src/emu/diimage.h",
+ MAME_DIR .. "src/emu/dimemory.cpp",
+ MAME_DIR .. "src/emu/dimemory.h",
+ MAME_DIR .. "src/emu/dinetwork.cpp",
+ MAME_DIR .. "src/emu/dinetwork.h",
+ MAME_DIR .. "src/emu/dinvram.cpp",
+ MAME_DIR .. "src/emu/dinvram.h",
+ MAME_DIR .. "src/emu/dioutput.cpp",
+ MAME_DIR .. "src/emu/dioutput.h",
+ MAME_DIR .. "src/emu/dipalette.cpp",
+ MAME_DIR .. "src/emu/dipalette.h",
+ MAME_DIR .. "src/emu/dipty.cpp",
+ MAME_DIR .. "src/emu/dipty.h",
+ MAME_DIR .. "src/emu/dirom.cpp",
+ MAME_DIR .. "src/emu/dirom.h",
+ MAME_DIR .. "src/emu/dirtc.cpp",
+ MAME_DIR .. "src/emu/dirtc.h",
+ MAME_DIR .. "src/emu/diserial.cpp",
+ MAME_DIR .. "src/emu/diserial.h",
+ MAME_DIR .. "src/emu/dislot.cpp",
+ MAME_DIR .. "src/emu/dislot.h",
+ MAME_DIR .. "src/emu/disound.cpp",
+ MAME_DIR .. "src/emu/disound.h",
+ MAME_DIR .. "src/emu/distate.cpp",
+ MAME_DIR .. "src/emu/distate.h",
+ MAME_DIR .. "src/emu/divideo.cpp",
+ MAME_DIR .. "src/emu/divideo.h",
+ MAME_DIR .. "src/emu/divtlb.cpp",
+ MAME_DIR .. "src/emu/divtlb.h",
+ MAME_DIR .. "src/emu/drawgfx.cpp",
+ MAME_DIR .. "src/emu/drawgfx.h",
+ MAME_DIR .. "src/emu/drawgfxm.h",
+ MAME_DIR .. "src/emu/driver.cpp",
+ MAME_DIR .. "src/emu/driver.h",
+ MAME_DIR .. "src/emu/drivenum.cpp",
+ MAME_DIR .. "src/emu/drivenum.h",
+ MAME_DIR .. "src/emu/emualloc.cpp",
+ MAME_DIR .. "src/emu/emualloc.h",
+ MAME_DIR .. "src/emu/emucore.cpp",
+ MAME_DIR .. "src/emu/emucore.h",
+ MAME_DIR .. "src/emu/emumem.cpp",
+ MAME_DIR .. "src/emu/emumem.h",
+ MAME_DIR .. "src/emu/emuopts.cpp",
+ MAME_DIR .. "src/emu/emuopts.h",
+ MAME_DIR .. "src/emu/emupal.cpp",
+ MAME_DIR .. "src/emu/emupal.h",
+ MAME_DIR .. "src/emu/fileio.cpp",
+ MAME_DIR .. "src/emu/fileio.h",
+ MAME_DIR .. "src/emu/http.h",
+ MAME_DIR .. "src/emu/http.cpp",
+ MAME_DIR .. "src/emu/image.cpp",
+ MAME_DIR .. "src/emu/image.h",
+ MAME_DIR .. "src/emu/input.cpp",
+ MAME_DIR .. "src/emu/input.h",
+ MAME_DIR .. "src/emu/inputdev.cpp",
+ MAME_DIR .. "src/emu/inputdev.h",
+ MAME_DIR .. "src/emu/ioport.cpp",
+ MAME_DIR .. "src/emu/ioport.h",
+ MAME_DIR .. "src/emu/inpttype.h",
+ MAME_DIR .. "src/emu/logmacro.h",
+ MAME_DIR .. "src/emu/machine.cpp",
+ MAME_DIR .. "src/emu/machine.h",
+ MAME_DIR .. "src/emu/mconfig.cpp",
+ MAME_DIR .. "src/emu/mconfig.h",
+ MAME_DIR .. "src/emu/memarray.cpp",
+ MAME_DIR .. "src/emu/memarray.h",
+ MAME_DIR .. "src/emu/natkeyboard.cpp",
+ MAME_DIR .. "src/emu/natkeyboard.h",
+ MAME_DIR .. "src/emu/network.cpp",
+ MAME_DIR .. "src/emu/network.h",
+ MAME_DIR .. "src/emu/parameters.cpp",
+ MAME_DIR .. "src/emu/parameters.h",
+ MAME_DIR .. "src/emu/profiler.cpp",
+ MAME_DIR .. "src/emu/profiler.h",
+ MAME_DIR .. "src/emu/output.cpp",
+ MAME_DIR .. "src/emu/output.h",
+ MAME_DIR .. "src/emu/render.cpp",
+ MAME_DIR .. "src/emu/render.h",
+ MAME_DIR .. "src/emu/rendfont.cpp",
+ MAME_DIR .. "src/emu/rendfont.h",
+ MAME_DIR .. "src/emu/rendlay.cpp",
+ MAME_DIR .. "src/emu/rendlay.h",
+ MAME_DIR .. "src/emu/rendutil.cpp",
+ MAME_DIR .. "src/emu/rendutil.h",
+ MAME_DIR .. "src/emu/romload.cpp",
+ MAME_DIR .. "src/emu/romload.h",
+ MAME_DIR .. "src/emu/romentry.h",
+ MAME_DIR .. "src/emu/romentry.cpp",
+ MAME_DIR .. "src/emu/save.cpp",
+ MAME_DIR .. "src/emu/save.h",
+ MAME_DIR .. "src/emu/schedule.cpp",
+ MAME_DIR .. "src/emu/schedule.h",
+ MAME_DIR .. "src/emu/screen.cpp",
+ MAME_DIR .. "src/emu/screen.h",
+ MAME_DIR .. "src/emu/softlist.cpp",
+ MAME_DIR .. "src/emu/softlist.h",
+ MAME_DIR .. "src/emu/softlist_dev.cpp",
+ MAME_DIR .. "src/emu/softlist_dev.h",
+ MAME_DIR .. "src/emu/sound.cpp",
+ MAME_DIR .. "src/emu/sound.h",
+ MAME_DIR .. "src/emu/speaker.cpp",
+ MAME_DIR .. "src/emu/speaker.h",
+ MAME_DIR .. "src/emu/tilemap.cpp",
+ MAME_DIR .. "src/emu/tilemap.h",
+ MAME_DIR .. "src/emu/timer.cpp",
+ MAME_DIR .. "src/emu/timer.h",
+ MAME_DIR .. "src/emu/uiinput.cpp",
+ MAME_DIR .. "src/emu/uiinput.h",
+ MAME_DIR .. "src/emu/validity.cpp",
+ MAME_DIR .. "src/emu/validity.h",
+ MAME_DIR .. "src/emu/video.cpp",
+ MAME_DIR .. "src/emu/video.h",
+ MAME_DIR .. "src/emu/rendersw.hxx",
+ MAME_DIR .. "src/emu/ui/uimain.h",
+ MAME_DIR .. "src/emu/ui/cmddata.h", -- TODO: remove
+ MAME_DIR .. "src/emu/debug/debugcmd.cpp",
+ MAME_DIR .. "src/emu/debug/debugcmd.h",
+ MAME_DIR .. "src/emu/debug/debugcon.cpp",
+ MAME_DIR .. "src/emu/debug/debugcon.h",
+ MAME_DIR .. "src/emu/debug/debugcpu.cpp",
+ MAME_DIR .. "src/emu/debug/debugcpu.h",
+ MAME_DIR .. "src/emu/debug/debughlp.cpp",
+ MAME_DIR .. "src/emu/debug/debughlp.h",
+ MAME_DIR .. "src/emu/debug/debugvw.cpp",
+ MAME_DIR .. "src/emu/debug/debugvw.h",
+ MAME_DIR .. "src/emu/debug/dvdisasm.cpp",
+ MAME_DIR .. "src/emu/debug/dvdisasm.h",
+ MAME_DIR .. "src/emu/debug/dvmemory.cpp",
+ MAME_DIR .. "src/emu/debug/dvmemory.h",
+ MAME_DIR .. "src/emu/debug/dvbpoints.cpp",
+ MAME_DIR .. "src/emu/debug/dvbpoints.h",
+ MAME_DIR .. "src/emu/debug/dvwpoints.cpp",
+ MAME_DIR .. "src/emu/debug/dvwpoints.h",
+ MAME_DIR .. "src/emu/debug/dvstate.cpp",
+ MAME_DIR .. "src/emu/debug/dvstate.h",
+ MAME_DIR .. "src/emu/debug/dvtext.cpp",
+ MAME_DIR .. "src/emu/debug/dvtext.h",
+ MAME_DIR .. "src/emu/debug/express.cpp",
+ MAME_DIR .. "src/emu/debug/express.h",
+ MAME_DIR .. "src/emu/debug/textbuf.cpp",
+ MAME_DIR .. "src/emu/debug/textbuf.h",
+ MAME_DIR .. "src/emu/drivers/empty.cpp",
+ MAME_DIR .. "src/emu/drivers/xtal.h",
+ MAME_DIR .. "src/emu/video/generic.cpp",
+ MAME_DIR .. "src/emu/video/generic.h",
+ MAME_DIR .. "src/emu/video/resnet.cpp",
+ MAME_DIR .. "src/emu/video/resnet.h",
+ MAME_DIR .. "src/emu/video/rgbutil.h",
+ MAME_DIR .. "src/emu/video/rgbgen.cpp",
+ MAME_DIR .. "src/emu/video/rgbgen.h",
+ MAME_DIR .. "src/emu/video/rgbsse.cpp",
+ MAME_DIR .. "src/emu/video/rgbsse.h",
+ MAME_DIR .. "src/emu/video/rgbvmx.cpp",
+ MAME_DIR .. "src/emu/video/rgbvmx.h",
+}
+
+dependency {
+ --------------------------------------------------
+ -- additional dependencies
+ --------------------------------------------------
+ { MAME_DIR .. "src/emu/rendfont.cpp", GEN_DIR .. "emu/uismall.fh" },
+ { MAME_DIR .. "src/emu/rendfont.cpp", GEN_DIR .. "emu/ui/uicmd14.fh" },
+ -------------------------------------------------
+ -- core layouts
+ --------------------------------------------------
+ { MAME_DIR .. "src/emu/rendlay.cpp", GEN_DIR .. "emu/layout/dualhovu.lh" },
+ { MAME_DIR .. "src/emu/rendlay.cpp", GEN_DIR .. "emu/layout/dualhsxs.lh" },
+ { MAME_DIR .. "src/emu/rendlay.cpp", GEN_DIR .. "emu/layout/dualhuov.lh" },
+ { MAME_DIR .. "src/emu/rendlay.cpp", GEN_DIR .. "emu/layout/horizont.lh" },
+ { MAME_DIR .. "src/emu/rendlay.cpp", GEN_DIR .. "emu/layout/triphsxs.lh" },
+ { MAME_DIR .. "src/emu/rendlay.cpp", GEN_DIR .. "emu/layout/quadhsxs.lh" },
+ { MAME_DIR .. "src/emu/rendlay.cpp", GEN_DIR .. "emu/layout/vertical.lh" },
+ { MAME_DIR .. "src/emu/rendlay.cpp", GEN_DIR .. "emu/layout/lcd.lh" },
+ { MAME_DIR .. "src/emu/rendlay.cpp", GEN_DIR .. "emu/layout/lcd_rot.lh" },
+ { MAME_DIR .. "src/emu/rendlay.cpp", GEN_DIR .. "emu/layout/svg.lh" },
+ { MAME_DIR .. "src/emu/rendlay.cpp", GEN_DIR .. "emu/layout/noscreens.lh" },
+
+ { MAME_DIR .. "src/emu/video.cpp", GEN_DIR .. "emu/layout/snap.lh" },
+
+}
+
+custombuildtask {
+ { MAME_DIR .. "scripts/font/NotoSans-Bold.bdc", GEN_DIR .. "emu/uismall.fh", { MAME_DIR .. "scripts/build/file2str.py" }, {"@echo Converting NotoSans-Bold.bdc...", PYTHON .. " $(1) $(<) $(@) font_uismall uint8_t" }},
+}
+
+custombuildtask {
+ { MAME_DIR .. "src/frontend/mame/ui/uicmd14.png" , GEN_DIR .. "emu/ui/uicmd14.fh", { MAME_DIR.. "scripts/build/png2bdc.py", MAME_DIR .. "scripts/build/file2str.py" }, {"@echo Converting uicmd14.png...", PYTHON .. " $(1) $(<) temp_cmd.bdc", PYTHON .. " $(2) temp_cmd.bdc $(@) font_uicmd14 uint8_t" }},
+
+ layoutbuildtask("emu/layout", "dualhovu"),
+ layoutbuildtask("emu/layout", "dualhsxs"),
+ layoutbuildtask("emu/layout", "dualhuov"),
+ layoutbuildtask("emu/layout", "horizont"),
+ layoutbuildtask("emu/layout", "triphsxs"),
+ layoutbuildtask("emu/layout", "quadhsxs"),
+ layoutbuildtask("emu/layout", "vertical"),
+ layoutbuildtask("emu/layout", "lcd"),
+ layoutbuildtask("emu/layout", "lcd_rot"),
+ layoutbuildtask("emu/layout", "svg"),
+ layoutbuildtask("emu/layout", "noscreens"),
+ layoutbuildtask("emu/layout", "snap"),
+}
+
+project ("precompile")
+uuid ("a6fb15d4-b123-4445-acef-13c8e80fcacf")
+kind (LIBTYPE)
+
+addprojectflags()
+precompiledheaders()
+
+includedirs {
+ MAME_DIR .. "src/osd",
+ MAME_DIR .. "src/emu",
+ MAME_DIR .. "src/lib/util",
+}
+files {
+ MAME_DIR .. "src/emu/drivers/empty.cpp",
+}
+dependency {
+ { "$(OBJDIR)/src/emu/drivers/empty.o", "$(GCH)", true },
+}
+
+
diff --git a/docs/release/scripts/src/formats.lua b/docs/release/scripts/src/formats.lua
new file mode 100644
index 00000000000..ba20df392a0
--- /dev/null
+++ b/docs/release/scripts/src/formats.lua
@@ -0,0 +1,1784 @@
+-- license:BSD-3-Clause
+-- copyright-holders:MAMEdev Team
+
+---------------------------------------------------------------------------
+--
+-- formats.lua
+--
+-- Rules for building formats
+--
+---------------------------------------------------------------------------
+function formatsProject(_target, _subtarget)
+project "formats"
+ uuid (os.uuid("formats-" .. _target .."_" .. _subtarget))
+ kind (LIBTYPE)
+ targetsubdir(_target .."_" .. _subtarget)
+ addprojectflags()
+
+ options {
+ "ArchiveSplit",
+ }
+
+ includedirs {
+ MAME_DIR .. "src/osd",
+ MAME_DIR .. "src/emu",
+ MAME_DIR .. "src/lib",
+ MAME_DIR .. "src/lib/util",
+ MAME_DIR .. "3rdparty",
+ ext_includedir("zlib"),
+ }
+
+ files {
+ MAME_DIR .. "src/lib/formats/ioprocs.cpp",
+ MAME_DIR .. "src/lib/formats/ioprocs.h",
+ MAME_DIR .. "src/lib/formats/imageutl.cpp",
+ MAME_DIR .. "src/lib/formats/imageutl.h",
+
+ MAME_DIR .. "src/lib/formats/cassimg.cpp",
+ MAME_DIR .. "src/lib/formats/cassimg.h",
+ MAME_DIR .. "src/lib/formats/wavfile.cpp",
+ MAME_DIR .. "src/lib/formats/wavfile.h",
+
+ MAME_DIR .. "src/lib/formats/flopimg.cpp",
+ MAME_DIR .. "src/lib/formats/flopimg.h",
+
+ MAME_DIR .. "src/lib/formats/cqm_dsk.cpp",
+ MAME_DIR .. "src/lib/formats/cqm_dsk.h",
+ MAME_DIR .. "src/lib/formats/dsk_dsk.cpp",
+ MAME_DIR .. "src/lib/formats/dsk_dsk.h",
+ MAME_DIR .. "src/lib/formats/td0_dsk.cpp",
+ MAME_DIR .. "src/lib/formats/td0_dsk.h",
+ MAME_DIR .. "src/lib/formats/hxchfe_dsk.cpp",
+ MAME_DIR .. "src/lib/formats/hxchfe_dsk.h",
+ MAME_DIR .. "src/lib/formats/hxcmfm_dsk.cpp",
+ MAME_DIR .. "src/lib/formats/hxcmfm_dsk.h",
+ MAME_DIR .. "src/lib/formats/mfi_dsk.cpp",
+ MAME_DIR .. "src/lib/formats/mfi_dsk.h",
+ MAME_DIR .. "src/lib/formats/imd_dsk.cpp",
+ MAME_DIR .. "src/lib/formats/imd_dsk.h",
+ MAME_DIR .. "src/lib/formats/ipf_dsk.cpp",
+ MAME_DIR .. "src/lib/formats/ipf_dsk.h",
+ MAME_DIR .. "src/lib/formats/d88_dsk.cpp",
+ MAME_DIR .. "src/lib/formats/d88_dsk.h",
+ MAME_DIR .. "src/lib/formats/dfi_dsk.cpp",
+ MAME_DIR .. "src/lib/formats/dfi_dsk.h",
+ MAME_DIR .. "src/lib/formats/fdi_dsk.cpp",
+ }
+
+--------------------------------------------------
+--
+--@src/lib/formats/2d_dsk.h,FORMATS["2D_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["2D_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/2d_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/2d_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/a26_cas.h,FORMATS["A26_CAS"] = true
+--------------------------------------------------
+
+if (FORMATS["A26_CAS"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/a26_cas.cpp",
+ MAME_DIR.. "src/lib/formats/a26_cas.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/a5105_dsk.h,FORMATS["A5105_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["A5105_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/a5105_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/a5105_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/abc800_dsk.h,FORMATS["ABC800_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["ABC800_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/abc800_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/abc800_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/abcfd2_dsk.h,FORMATS["ABCFD2_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["ABCFD2_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/abcfd2_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/abcfd2_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/ace_tap.h,FORMATS["ACE_TAP"] = true
+--------------------------------------------------
+
+if (FORMATS["ACE_TAP"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/ace_tap.cpp",
+ MAME_DIR.. "src/lib/formats/ace_tap.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/acorn_dsk.h,FORMATS["ACORN_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["ACORN_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/acorn_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/acorn_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/adam_cas.h,FORMATS["ADAM_CAS"] = true
+--------------------------------------------------
+
+if (FORMATS["ADAM_CAS"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/adam_cas.cpp",
+ MAME_DIR.. "src/lib/formats/adam_cas.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/adam_dsk.h,FORMATS["ADAM_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["ADAM_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/adam_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/adam_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/afs_dsk.h,FORMATS["AFS_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["AFS_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/afs_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/afs_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/ami_dsk.h,FORMATS["AMI_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["AMI_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/ami_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/ami_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/ap2_dsk.h,FORMATS["AP2_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["AP2_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/ap2_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/ap2_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/apd_dsk.h,FORMATS["APD_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["APD_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/apd_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/apd_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/apf_apt.h,FORMATS["APF_APT"] = true
+--------------------------------------------------
+
+if (FORMATS["APF_APT"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/apf_apt.cpp",
+ MAME_DIR.. "src/lib/formats/apf_apt.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/apollo_dsk.h,FORMATS["APOLLO_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["APOLLO_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/apollo_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/apollo_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/applix_dsk.h,FORMATS["APPLIX_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["APPLIX_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/applix_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/applix_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/apridisk.h,FORMATS["APRIDISK"] = true
+--------------------------------------------------
+
+if (FORMATS["APRIDISK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/apridisk.cpp",
+ MAME_DIR.. "src/lib/formats/apridisk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/ap_dsk35.h,FORMATS["AP_DSK35"] = true
+--------------------------------------------------
+
+if (FORMATS["AP_DSK35"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/ap_dsk35.cpp",
+ MAME_DIR.. "src/lib/formats/ap_dsk35.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/asst128_dsk.h,FORMATS["ASST128_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["ASST128_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/asst128_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/asst128_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/atari_dsk.h,FORMATS["ATARI_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["ATARI_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/atari_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/atari_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/atom_dsk.h,FORMATS["ATOM_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["ATOM_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/atom_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/atom_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/atom_tap.h,FORMATS["ATOM_TAP"] = true
+--------------------------------------------------
+
+if (FORMATS["ATOM_TAP"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/atom_tap.cpp",
+ MAME_DIR.. "src/lib/formats/atom_tap.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/basicdsk.h,FORMATS["BASICDSK"] = true
+--------------------------------------------------
+
+if (FORMATS["BASICDSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/basicdsk.cpp",
+ MAME_DIR.. "src/lib/formats/basicdsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/bw12_dsk.h,FORMATS["BW12_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["BW12_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/bw12_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/bw12_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/bw2_dsk.h,FORMATS["BW2_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["BW2_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/bw2_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/bw2_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/c3040_dsk.h,FORMATS["C3040_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["C3040_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/c3040_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/c3040_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/c4040_dsk.h,FORMATS["C4040_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["C4040_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/c4040_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/c4040_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/c8280_dsk.h,FORMATS["C8280_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["C8280_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/c8280_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/c8280_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/camplynx_cas.h,FORMATS["CAMPLYNX_CAS"] = true
+--------------------------------------------------
+
+if (FORMATS["CAMPLYNX_CAS"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/camplynx_cas.cpp",
+ MAME_DIR.. "src/lib/formats/camplynx_cas.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/camplynx_dsk.h,FORMATS["CAMPLYNX_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["CAMPLYNX_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/camplynx_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/camplynx_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/cbm_crt.h,FORMATS["CBM_CRT"] = true
+--------------------------------------------------
+
+if (FORMATS["CBM_CRT"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/cbm_crt.cpp",
+ MAME_DIR.. "src/lib/formats/cbm_crt.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/cbm_tap.h,FORMATS["CBM_TAP"] = true
+--------------------------------------------------
+
+if (FORMATS["CBM_TAP"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/cbm_tap.cpp",
+ MAME_DIR.. "src/lib/formats/cbm_tap.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/ccvf_dsk.h,FORMATS["CCVF_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["CCVF_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/ccvf_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/ccvf_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/cd90_640_dsk.h,FORMATS["CD90_640_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["CD90_640_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/cd90_640_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/cd90_640_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/cgenie_dsk.h,FORMATS["CGENIE_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["CGENIE_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/cgenie_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/cgenie_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/cgen_cas.h,FORMATS["CGEN_CAS"] = true
+--------------------------------------------------
+
+if (FORMATS["CGEN_CAS"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/cgen_cas.cpp",
+ MAME_DIR.. "src/lib/formats/cgen_cas.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/coco_cas.h,FORMATS["COCO_CAS"] = true
+--------------------------------------------------
+
+if (FORMATS["COCO_CAS"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/coco_cas.cpp",
+ MAME_DIR.. "src/lib/formats/coco_cas.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/comx35_dsk.h,FORMATS["COMX35_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["COMX35_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/comx35_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/comx35_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/concept_dsk.h,FORMATS["CONCEPT_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["CONCEPT_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/concept_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/concept_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/coupedsk.h,FORMATS["COUPEDSK"] = true
+--------------------------------------------------
+
+if (FORMATS["COUPEDSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/coupedsk.cpp",
+ MAME_DIR.. "src/lib/formats/coupedsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/cpis_dsk.h,FORMATS["CPIS_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["CPIS_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/cpis_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/cpis_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/csw_cas.h,FORMATS["CSW_CAS"] = true
+--------------------------------------------------
+
+if (FORMATS["CSW_CAS"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/csw_cas.cpp",
+ MAME_DIR.. "src/lib/formats/csw_cas.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/d64_dsk.h,FORMATS["D64_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["D64_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/d64_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/d64_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/d71_dsk.h,FORMATS["D71_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["D71_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/d71_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/d71_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/d80_dsk.h,FORMATS["D80_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["D80_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/d80_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/d80_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/d81_dsk.h,FORMATS["D81_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["D81_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/d81_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/d81_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/d82_dsk.h,FORMATS["D82_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["D82_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/d82_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/d82_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/dcp_dsk.h,FORMATS["DCP_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["DCP_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/dcp_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/dcp_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/dim_dsk.h,FORMATS["DIM_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["DIM_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/dim_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/dim_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/dip_dsk.h,FORMATS["DIP_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["DIP_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/dip_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/dip_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/dmk_dsk.h,FORMATS["DMK_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["DMK_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/dmk_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/dmk_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/ep64_dsk.h,FORMATS["EP64_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["EP64_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/ep64_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/ep64_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/dmv_dsk.h,FORMATS["DMV_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["DMV_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/dmv_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/dmv_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/esq16_dsk.h,FORMATS["ESQ16_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["ESQ16_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/esq16_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/esq16_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/esq8_dsk.h,FORMATS["ESQ8_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["ESQ8_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/esq8_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/esq8_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/excali64_dsk.h,FORMATS["EXCALI64_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["EXCALI64_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/excali64_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/excali64_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/fc100_cas.h,FORMATS["FC100_CAS"] = true
+--------------------------------------------------
+
+if (FORMATS["FC100_CAS"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/fc100_cas.cpp",
+ MAME_DIR.. "src/lib/formats/fc100_cas.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/fdd_dsk.h,FORMATS["FDD_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["FDD_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/fdd_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/fdd_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/flex_dsk.h,FORMATS["FLEX_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["FLEX_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/flex_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/flex_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/fm7_cas.h,FORMATS["FM7_CAS"] = true
+--------------------------------------------------
+
+if (FORMATS["FM7_CAS"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/fm7_cas.cpp",
+ MAME_DIR.. "src/lib/formats/fm7_cas.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/fmsx_cas.h,FORMATS["FMSX_CAS"] = true
+--------------------------------------------------
+
+if (FORMATS["FMSX_CAS"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/fmsx_cas.cpp",
+ MAME_DIR.. "src/lib/formats/fmsx_cas.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/fmtowns_dsk.h,FORMATS["FMTOWNS_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["FMTOWNS_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/fmtowns_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/fmtowns_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/fsd_dsk.h,FORMATS["FSD_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["FSD_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/fsd_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/fsd_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/g64_dsk.h,FORMATS["G64_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["G64_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/g64_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/g64_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/gtp_cas.h,FORMATS["GTP_CAS"] = true
+--------------------------------------------------
+
+if (FORMATS["GTP_CAS"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/gtp_cas.cpp",
+ MAME_DIR.. "src/lib/formats/gtp_cas.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/guab_dsk.h,FORMATS["GUAB_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["GUAB_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/guab_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/guab_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/hector_minidisc.h,FORMATS["HECTOR_MINIDISC"] = true
+--------------------------------------------------
+
+if (FORMATS["HECTOR_MINIDISC"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/hector_minidisc.cpp",
+ MAME_DIR.. "src/lib/formats/hector_minidisc.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/hect_dsk.h,FORMATS["HECT_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["HECT_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/hect_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/hect_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/hect_tap.h,FORMATS["HECT_TAP"] = true
+--------------------------------------------------
+
+if (FORMATS["HECT_TAP"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/hect_tap.cpp",
+ MAME_DIR.. "src/lib/formats/hect_tap.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/hp_ipc_dsk.h,FORMATS["HP_IPC_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["HP_IPC_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/hp_ipc_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/hp_ipc_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/iq151_dsk.h,FORMATS["IQ151_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["IQ151_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/iq151_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/iq151_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/itt3030_dsk.h,FORMATS["ITT3030_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["ITT3030_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/itt3030_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/itt3030_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/jvc_dsk.h,FORMATS["JVC_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["JVC_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/jvc_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/jvc_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/jfd_dsk.h,FORMATS["JFD_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["JFD_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/jfd_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/jfd_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/kaypro_dsk.h,FORMATS["KAYPRO_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["KAYPRO_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/kaypro_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/kaypro_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/kc85_dsk.h,FORMATS["KC85_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["KC85_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/kc85_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/kc85_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/kc_cas.h,FORMATS["KC_CAS"] = true
+--------------------------------------------------
+
+if (FORMATS["KC_CAS"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/kc_cas.cpp",
+ MAME_DIR.. "src/lib/formats/kc_cas.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/kim1_cas.h,FORMATS["KIM1_CAS"] = true
+--------------------------------------------------
+
+if (FORMATS["KIM1_CAS"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/kim1_cas.cpp",
+ MAME_DIR.. "src/lib/formats/kim1_cas.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/lviv_lvt.h,FORMATS["LVIV_LVT"] = true
+--------------------------------------------------
+
+if (FORMATS["LVIV_LVT"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/lviv_lvt.cpp",
+ MAME_DIR.. "src/lib/formats/lviv_lvt.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/m20_dsk.h,FORMATS["M20_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["M20_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/m20_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/m20_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/m5_dsk.h,FORMATS["M5_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["M5_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/m5_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/m5_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/mbee_cas.h,FORMATS["MBEE_CAS"] = true
+--------------------------------------------------
+
+if (FORMATS["MBEE_CAS"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/mbee_cas.cpp",
+ MAME_DIR.. "src/lib/formats/mbee_cas.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/mfm_hd.h,FORMATS["MFM_HD"] = true
+--------------------------------------------------
+
+if (FORMATS["MFM_HD"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/mfm_hd.cpp",
+ MAME_DIR.. "src/lib/formats/mfm_hd.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/mm_dsk.h,FORMATS["MM_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["MM_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/mm_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/mm_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/ms0515_dsk.h,FORMATS["MS0515_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["MS0515_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/ms0515_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/ms0515_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/msx_dsk.h,FORMATS["MSX_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["MSX_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/msx_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/msx_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/mz_cas.h,FORMATS["MZ_CAS"] = true
+--------------------------------------------------
+
+if (FORMATS["MZ_CAS"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/mz_cas.cpp",
+ MAME_DIR.. "src/lib/formats/mz_cas.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/nanos_dsk.h,FORMATS["NANOS_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["NANOS_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/nanos_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/nanos_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/nascom_dsk.h,FORMATS["NASCOM_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["NASCOM_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/nascom_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/nascom_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/naslite_dsk.h,FORMATS["NASLITE_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["NASLITE_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/naslite_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/naslite_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/nes_dsk.h,FORMATS["NES_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["NES_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/nes_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/nes_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/nfd_dsk.h,FORMATS["NFD_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["NFD_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/nfd_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/nfd_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/orao_cas.h,FORMATS["ORAO_CAS"] = true
+--------------------------------------------------
+
+if (FORMATS["ORAO_CAS"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/orao_cas.cpp",
+ MAME_DIR.. "src/lib/formats/orao_cas.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/oric_dsk.h,FORMATS["ORIC_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["ORIC_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/oric_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/oric_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/oric_tap.h,FORMATS["ORIC_TAP"] = true
+--------------------------------------------------
+
+if (FORMATS["ORIC_TAP"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/oric_tap.cpp",
+ MAME_DIR.. "src/lib/formats/oric_tap.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/p6001_cas.h,FORMATS["P6001_CAS"] = true
+--------------------------------------------------
+
+if (FORMATS["P6001_CAS"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/p6001_cas.cpp",
+ MAME_DIR.. "src/lib/formats/p6001_cas.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/pasti_dsk.h,FORMATS["PASTI_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["PASTI_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/pasti_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/pasti_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/pc98fdi_dsk.h,FORMATS["PC98FDI_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["PC98FDI_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/pc98fdi_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/pc98fdi_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/pc98_dsk.h,FORMATS["PC98_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["PC98_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/pc98_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/pc98_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/pc_dsk.h,FORMATS["PC_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["PC_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/pc_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/pc_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/phc25_cas.h,FORMATS["PHC25_CAS"] = true
+--------------------------------------------------
+
+if (FORMATS["PHC25_CAS"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/phc25_cas.cpp",
+ MAME_DIR.. "src/lib/formats/phc25_cas.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/pk8020_dsk.h,FORMATS["PK8020_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["PK8020_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/pk8020_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/pk8020_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/pmd_cas.h,FORMATS["PMD_CAS"] = true
+--------------------------------------------------
+
+if (FORMATS["PMD_CAS"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/pmd_cas.cpp",
+ MAME_DIR.. "src/lib/formats/pmd_cas.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/ppg_dsk.h,FORMATS["PPG_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["PPG_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/ppg_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/ppg_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/primoptp.h,FORMATS["PRIMOPTP"] = true
+--------------------------------------------------
+
+if (FORMATS["PRIMOPTP"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/primoptp.cpp",
+ MAME_DIR.. "src/lib/formats/primoptp.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/pyldin_dsk.h,FORMATS["PYLDIN_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["PYLDIN_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/pyldin_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/pyldin_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/ql_dsk.h,FORMATS["QL_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["QL_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/ql_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/ql_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/rk_cas.h,FORMATS["RK_CAS"] = true
+--------------------------------------------------
+
+if (FORMATS["RK_CAS"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/rk_cas.cpp",
+ MAME_DIR.. "src/lib/formats/rk_cas.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/rx50_dsk.h,FORMATS["RX50_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["RX50_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/rx50_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/rx50_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/sc3000_bit.h,FORMATS["SC3000_BIT"] = true
+--------------------------------------------------
+
+if (FORMATS["SC3000_BIT"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/sc3000_bit.cpp",
+ MAME_DIR.. "src/lib/formats/sc3000_bit.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/sf7000_dsk.h,FORMATS["SF7000_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["SF7000_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/sf7000_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/sf7000_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/smx_dsk.h,FORMATS["SMX_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["SMX_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/smx_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/smx_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/sol_cas.h,FORMATS["SOL_CAS"] = true
+--------------------------------------------------
+
+if (FORMATS["SOL_CAS"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/sol_cas.cpp",
+ MAME_DIR.. "src/lib/formats/sol_cas.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/sorc_cas.h,FORMATS["SORC_CAS"] = true
+--------------------------------------------------
+
+if (FORMATS["SORC_CAS"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/sorc_cas.cpp",
+ MAME_DIR.. "src/lib/formats/sorc_cas.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/sorc_dsk.h,FORMATS["SORC_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["SORC_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/sorc_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/sorc_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/sord_cas.h,FORMATS["SORD_CAS"] = true
+--------------------------------------------------
+
+if (FORMATS["SORD_CAS"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/sord_cas.cpp",
+ MAME_DIR.. "src/lib/formats/sord_cas.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/spc1000_cas.h,FORMATS["SPC1000_CAS"] = true
+--------------------------------------------------
+
+if (FORMATS["SPC1000_CAS"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/spc1000_cas.cpp",
+ MAME_DIR.. "src/lib/formats/spc1000_cas.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/st_dsk.h,FORMATS["ST_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["ST_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/st_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/st_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/svi_cas.h,FORMATS["SVI_CAS"] = true
+--------------------------------------------------
+
+if (FORMATS["SVI_CAS"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/svi_cas.cpp",
+ MAME_DIR.. "src/lib/formats/svi_cas.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/svi_dsk.h,FORMATS["SVI_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["SVI_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/svi_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/svi_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/tandy2k_dsk.h,FORMATS["TANDY2K_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["TANDY2K_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/tandy2k_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/tandy2k_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/thom_cas.h,FORMATS["THOM_CAS"] = true
+--------------------------------------------------
+
+if (FORMATS["THOM_CAS"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/thom_cas.cpp",
+ MAME_DIR.. "src/lib/formats/thom_cas.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/thom_dsk.h,FORMATS["THOM_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["THOM_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/thom_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/thom_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/ti99_dsk.h,FORMATS["TI99_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["TI99_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/ti99_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/ti99_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/tiki100_dsk.h,FORMATS["TIKI100_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["TIKI100_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/tiki100_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/tiki100_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/trd_dsk.h,FORMATS["TRD_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["TRD_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/trd_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/trd_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/trs80_dsk.h,FORMATS["TRS80_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["TRS80_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/trs80_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/trs80_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/trs_cas.h,FORMATS["TRS_CAS"] = true
+--------------------------------------------------
+
+if (FORMATS["TRS_CAS"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/trs_cas.cpp",
+ MAME_DIR.. "src/lib/formats/trs_cas.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/tvc_cas.h,FORMATS["TVC_CAS"] = true
+--------------------------------------------------
+
+if (FORMATS["TVC_CAS"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/tvc_cas.cpp",
+ MAME_DIR.. "src/lib/formats/tvc_cas.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/tvc_dsk.h,FORMATS["TVC_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["TVC_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/tvc_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/tvc_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/tzx_cas.h,FORMATS["TZX_CAS"] = true
+--------------------------------------------------
+
+if (FORMATS["TZX_CAS"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/tzx_cas.cpp",
+ MAME_DIR.. "src/lib/formats/tzx_cas.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/uef_cas.h,FORMATS["UEF_CAS"] = true
+--------------------------------------------------
+
+if (FORMATS["UEF_CAS"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/uef_cas.cpp",
+ MAME_DIR.. "src/lib/formats/uef_cas.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/upd765_dsk.h,FORMATS["UPD765_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["UPD765_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/upd765_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/upd765_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/vdk_dsk.h,FORMATS["VDK_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["VDK_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/vdk_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/vdk_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/vector06_dsk.h,FORMATS["VECTOR06_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["VECTOR06_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/vector06_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/vector06_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/vg5k_cas.h,FORMATS["VG5K_CAS"] = true
+--------------------------------------------------
+
+if (FORMATS["VG5K_CAS"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/vg5k_cas.cpp",
+ MAME_DIR.. "src/lib/formats/vg5k_cas.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/victor9k_dsk.h,FORMATS["VICTOR9K_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["VICTOR9K_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/victor9k_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/victor9k_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/vt_cas.h,FORMATS["VT_CAS"] = true
+--------------------------------------------------
+
+if (FORMATS["VT_CAS"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/vt_cas.cpp",
+ MAME_DIR.. "src/lib/formats/vt_cas.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/wd177x_dsk.h,FORMATS["WD177X_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["WD177X_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/wd177x_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/wd177x_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/x07_cas.h,FORMATS["X07_CAS"] = true
+--------------------------------------------------
+
+if (FORMATS["X07_CAS"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/x07_cas.cpp",
+ MAME_DIR.. "src/lib/formats/x07_cas.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/x1_tap.h,FORMATS["X1_TAP"] = true
+--------------------------------------------------
+
+if (FORMATS["X1_TAP"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/x1_tap.cpp",
+ MAME_DIR.. "src/lib/formats/x1_tap.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/xdf_dsk.h,FORMATS["XDF_DSK"] = true
+--------------------------------------------------
+
+if (FORMATS["XDF_DSK"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/xdf_dsk.cpp",
+ MAME_DIR.. "src/lib/formats/xdf_dsk.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/lib/formats/zx81_p.h,FORMATS["ZX81_P"] = true
+--------------------------------------------------
+
+if (FORMATS["ZX81_P"]~=null or _OPTIONS["with-tools"]) then
+ files {
+ MAME_DIR.. "src/lib/formats/zx81_p.cpp",
+ MAME_DIR.. "src/lib/formats/zx81_p.h",
+ }
+end
+
+end
diff --git a/docs/release/scripts/src/lib.lua b/docs/release/scripts/src/lib.lua
new file mode 100644
index 00000000000..9c631aebbab
--- /dev/null
+++ b/docs/release/scripts/src/lib.lua
@@ -0,0 +1,116 @@
+-- license:BSD-3-Clause
+-- copyright-holders:MAMEdev Team
+
+---------------------------------------------------------------------------
+--
+-- lib.lua
+--
+-- Rules for building lib cores
+--
+---------------------------------------------------------------------------
+
+project "utils"
+ uuid "22489ad0-4cb2-4d91-ad81-24b0d80ca30a"
+ kind (LIBTYPE)
+
+ addprojectflags()
+
+ includedirs {
+ MAME_DIR .. "src/osd",
+ MAME_DIR .. "src/lib/util",
+ MAME_DIR .. "3rdparty",
+ ext_includedir("expat"),
+ ext_includedir("zlib"),
+ ext_includedir("flac"),
+ ext_includedir("utf8proc"),
+ }
+
+ files {
+ MAME_DIR .. "src/lib/util/bitstream.h",
+ MAME_DIR .. "src/lib/util/coretmpl.h",
+ MAME_DIR .. "src/lib/util/avhuff.cpp",
+ MAME_DIR .. "src/lib/util/avhuff.h",
+ MAME_DIR .. "src/lib/util/aviio.cpp",
+ MAME_DIR .. "src/lib/util/aviio.h",
+ MAME_DIR .. "src/lib/util/base64.hpp",
+ MAME_DIR .. "src/lib/util/bitmap.cpp",
+ MAME_DIR .. "src/lib/util/bitmap.h",
+ MAME_DIR .. "src/lib/util/cdrom.cpp",
+ MAME_DIR .. "src/lib/util/cdrom.h",
+ MAME_DIR .. "src/lib/util/chd.cpp",
+ MAME_DIR .. "src/lib/util/chd.h",
+ MAME_DIR .. "src/lib/util/chdcd.cpp",
+ MAME_DIR .. "src/lib/util/chdcd.h",
+ MAME_DIR .. "src/lib/util/chdcodec.cpp",
+ MAME_DIR .. "src/lib/util/chdcodec.h",
+ MAME_DIR .. "src/lib/util/client_http.hpp",
+ MAME_DIR .. "src/lib/util/client_https.hpp",
+ MAME_DIR .. "src/lib/util/client_ws.hpp",
+ MAME_DIR .. "src/lib/util/client_wss.hpp",
+ MAME_DIR .. "src/lib/util/corealloc.h",
+ MAME_DIR .. "src/lib/util/corefile.cpp",
+ MAME_DIR .. "src/lib/util/corefile.h",
+ MAME_DIR .. "src/lib/util/corestr.cpp",
+ MAME_DIR .. "src/lib/util/corestr.h",
+ MAME_DIR .. "src/lib/util/coreutil.cpp",
+ MAME_DIR .. "src/lib/util/coreutil.h",
+ MAME_DIR .. "src/lib/util/crypto.hpp",
+ MAME_DIR .. "src/lib/util/delegate.cpp",
+ MAME_DIR .. "src/lib/util/delegate.h",
+ MAME_DIR .. "src/lib/util/flac.cpp",
+ MAME_DIR .. "src/lib/util/flac.h",
+ MAME_DIR .. "src/lib/util/harddisk.cpp",
+ MAME_DIR .. "src/lib/util/harddisk.h",
+ MAME_DIR .. "src/lib/util/hash.cpp",
+ MAME_DIR .. "src/lib/util/hash.h",
+ MAME_DIR .. "src/lib/util/hashing.cpp",
+ MAME_DIR .. "src/lib/util/hashing.h",
+ MAME_DIR .. "src/lib/util/huffman.cpp",
+ MAME_DIR .. "src/lib/util/huffman.h",
+ MAME_DIR .. "src/lib/util/jedparse.cpp",
+ MAME_DIR .. "src/lib/util/jedparse.h",
+ MAME_DIR .. "src/lib/util/md5.cpp",
+ MAME_DIR .. "src/lib/util/md5.h",
+ MAME_DIR .. "src/lib/util/nanosvg.cpp",
+ MAME_DIR .. "src/lib/util/opresolv.cpp",
+ MAME_DIR .. "src/lib/util/opresolv.h",
+ MAME_DIR .. "src/lib/util/options.cpp",
+ MAME_DIR .. "src/lib/util/options.h",
+ MAME_DIR .. "src/lib/util/palette.cpp",
+ MAME_DIR .. "src/lib/util/palette.h",
+ MAME_DIR .. "src/lib/util/path_to_regex.cpp",
+ MAME_DIR .. "src/lib/util/path_to_regex.h",
+ MAME_DIR .. "src/lib/util/plaparse.cpp",
+ MAME_DIR .. "src/lib/util/plaparse.h",
+ MAME_DIR .. "src/lib/util/png.cpp",
+ MAME_DIR .. "src/lib/util/png.h",
+ MAME_DIR .. "src/lib/util/pool.cpp",
+ MAME_DIR .. "src/lib/util/pool.h",
+ MAME_DIR .. "src/lib/util/server_http.hpp",
+ MAME_DIR .. "src/lib/util/server_https.hpp",
+ MAME_DIR .. "src/lib/util/server_ws.hpp",
+ MAME_DIR .. "src/lib/util/server_wss.hpp",
+ MAME_DIR .. "src/lib/util/sha1.cpp",
+ MAME_DIR .. "src/lib/util/sha1.h",
+ MAME_DIR .. "src/lib/util/sha1.hpp",
+ MAME_DIR .. "src/lib/util/strformat.cpp",
+ MAME_DIR .. "src/lib/util/strformat.h",
+ MAME_DIR .. "src/lib/util/timeconv.cpp",
+ MAME_DIR .. "src/lib/util/timeconv.h",
+ MAME_DIR .. "src/lib/util/unicode.cpp",
+ MAME_DIR .. "src/lib/util/unicode.h",
+ MAME_DIR .. "src/lib/util/unzip.cpp",
+ MAME_DIR .. "src/lib/util/unzip.h",
+ MAME_DIR .. "src/lib/util/un7z.cpp",
+ MAME_DIR .. "src/lib/util/un7z.h",
+ MAME_DIR .. "src/lib/util/vbiparse.cpp",
+ MAME_DIR .. "src/lib/util/vbiparse.h",
+ MAME_DIR .. "src/lib/util/vecstream.cpp",
+ MAME_DIR .. "src/lib/util/vecstream.h",
+ MAME_DIR .. "src/lib/util/wavwrite.cpp",
+ MAME_DIR .. "src/lib/util/wavwrite.h",
+ MAME_DIR .. "src/lib/util/xmlfile.cpp",
+ MAME_DIR .. "src/lib/util/xmlfile.h",
+ MAME_DIR .. "src/lib/util/zippath.cpp",
+ MAME_DIR .. "src/lib/util/zippath.h",
+ }
diff --git a/docs/release/scripts/src/machine.lua b/docs/release/scripts/src/machine.lua
new file mode 100644
index 00000000000..789dcff9e06
--- /dev/null
+++ b/docs/release/scripts/src/machine.lua
@@ -0,0 +1,3160 @@
+-- license:BSD-3-Clause
+-- copyright-holders:MAMEdev Team
+
+---------------------------------------------------------------------------
+--
+-- machine.lua
+--
+-- Rules for building machine cores
+--
+----------------------------------------------------------------------------
+
+files {
+ MAME_DIR .. "src/devices/machine/bcreader.cpp",
+ MAME_DIR .. "src/devices/machine/bcreader.h",
+-- MAME_DIR .. "src/devices/machine/buffer.cpp",
+-- MAME_DIR .. "src/devices/machine/buffer.h",
+ MAME_DIR .. "src/devices/machine/clock.cpp",
+ MAME_DIR .. "src/devices/machine/clock.h",
+-- MAME_DIR .. "src/devices/machine/keyboard.cpp",
+-- MAME_DIR .. "src/devices/machine/keyboard.h",
+-- MAME_DIR .. "src/devices/machine/keyboard.ipp",
+ MAME_DIR .. "src/devices/machine/laserdsc.cpp",
+ MAME_DIR .. "src/devices/machine/laserdsc.h",
+-- MAME_DIR .. "src/devices/machine/latch.cpp",
+-- MAME_DIR .. "src/devices/machine/latch.h",
+ MAME_DIR .. "src/devices/machine/nvram.cpp",
+ MAME_DIR .. "src/devices/machine/nvram.h",
+ MAME_DIR .. "src/devices/machine/ram.cpp",
+ MAME_DIR .. "src/devices/machine/ram.h",
+ MAME_DIR .. "src/devices/machine/legscsi.cpp",
+ MAME_DIR .. "src/devices/machine/legscsi.h",
+-- MAME_DIR .. "src/devices/machine/terminal.cpp",
+-- MAME_DIR .. "src/devices/machine/terminal.h",
+}
+files {
+-- MAME_DIR .. "src/devices/imagedev/bitbngr.cpp",
+-- MAME_DIR .. "src/devices/imagedev/bitbngr.h",
+ MAME_DIR .. "src/devices/imagedev/cassette.cpp",
+ MAME_DIR .. "src/devices/imagedev/cassette.h",
+ MAME_DIR .. "src/devices/imagedev/chd_cd.cpp",
+ MAME_DIR .. "src/devices/imagedev/chd_cd.h",
+-- MAME_DIR .. "src/devices/imagedev/diablo.cpp",
+-- MAME_DIR .. "src/devices/imagedev/diablo.h",
+ MAME_DIR .. "src/devices/imagedev/flopdrv.cpp",
+ MAME_DIR .. "src/devices/imagedev/flopdrv.h",
+ MAME_DIR .. "src/devices/imagedev/floppy.cpp",
+ MAME_DIR .. "src/devices/imagedev/floppy.h",
+ MAME_DIR .. "src/devices/imagedev/harddriv.cpp",
+ MAME_DIR .. "src/devices/imagedev/harddriv.h",
+-- MAME_DIR .. "src/devices/imagedev/mfmhd.cpp",
+-- MAME_DIR .. "src/devices/imagedev/mfmhd.h",
+-- MAME_DIR .. "src/devices/imagedev/midiin.cpp",
+-- MAME_DIR .. "src/devices/imagedev/midiin.h",
+-- MAME_DIR .. "src/devices/imagedev/midiout.cpp",
+-- MAME_DIR .. "src/devices/imagedev/midiout.h",
+-- MAME_DIR .. "src/devices/imagedev/printer.cpp",
+-- MAME_DIR .. "src/devices/imagedev/printer.h",
+-- MAME_DIR .. "src/devices/imagedev/snapquik.cpp",
+-- MAME_DIR .. "src/devices/imagedev/snapquik.h",
+}
+---------------------------------------------------
+--
+--@src/devices/machine/akiko.h,MACHINES["AKIKO"] = true
+---------------------------------------------------
+
+if (MACHINES["AKIKO"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/akiko.cpp",
+ MAME_DIR .. "src/devices/machine/akiko.h",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/machine/autoconfig.h,MACHINES["AUTOCONFIG"] = true
+---------------------------------------------------
+
+if (MACHINES["AUTOCONFIG"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/autoconfig.cpp",
+ MAME_DIR .. "src/devices/machine/autoconfig.h",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/machine/cr511b.h,MACHINES["CR511B"] = true
+---------------------------------------------------
+
+if (MACHINES["CR511B"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/cr511b.cpp",
+ MAME_DIR .. "src/devices/machine/cr511b.h",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/machine/dmac.h,MACHINES["DMAC"] = true
+---------------------------------------------------
+
+if (MACHINES["DMAC"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/dmac.cpp",
+ MAME_DIR .. "src/devices/machine/dmac.h",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/machine/gayle.h,MACHINES["GAYLE"] = true
+---------------------------------------------------
+
+if (MACHINES["GAYLE"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/gayle.cpp",
+ MAME_DIR .. "src/devices/machine/gayle.h",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/machine/40105.h,MACHINES["CMOS40105"] = true
+---------------------------------------------------
+
+if (MACHINES["CMOS40105"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/40105.cpp",
+ MAME_DIR .. "src/devices/machine/40105.h",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/machine/53c7xx.h,MACHINES["NCR53C7XX"] = true
+---------------------------------------------------
+
+if (MACHINES["NCR53C7XX"]~=null) then
+ MACHINES["NSCSI"] = true
+ files {
+ MAME_DIR .. "src/devices/machine/53c7xx.cpp",
+ MAME_DIR .. "src/devices/machine/53c7xx.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/53c810.h,MACHINES["LSI53C810"] = true
+---------------------------------------------------
+
+if (MACHINES["LSI53C810"]~=null) then
+ MACHINES["SCSI"] = true
+ files {
+ MAME_DIR .. "src/devices/machine/53c810.cpp",
+ MAME_DIR .. "src/devices/machine/53c810.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/6522via.h,MACHINES["6522VIA"] = true
+---------------------------------------------------
+
+if (MACHINES["6522VIA"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/6522via.cpp",
+ MAME_DIR .. "src/devices/machine/6522via.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/6525tpi.h,MACHINES["TPI6525"] = true
+---------------------------------------------------
+
+if (MACHINES["TPI6525"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/6525tpi.cpp",
+ MAME_DIR .. "src/devices/machine/6525tpi.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/6532riot.h,MACHINES["RIOT6532"] = true
+---------------------------------------------------
+
+if (MACHINES["RIOT6532"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/6532riot.cpp",
+ MAME_DIR .. "src/devices/machine/6532riot.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/6821pia.h,MACHINES["6821PIA"] = true
+---------------------------------------------------
+
+if (MACHINES["6821PIA"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/6821pia.cpp",
+ MAME_DIR .. "src/devices/machine/6821pia.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/6840ptm.h,MACHINES["6840PTM"] = true
+---------------------------------------------------
+
+if (MACHINES["6840PTM"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/6840ptm.cpp",
+ MAME_DIR .. "src/devices/machine/6840ptm.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/6850acia.h,MACHINES["ACIA6850"] = true
+---------------------------------------------------
+
+if (MACHINES["ACIA6850"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/6850acia.cpp",
+ MAME_DIR .. "src/devices/machine/6850acia.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/68153bim.h,MACHINES["BIM68153"] = true
+---------------------------------------------------
+
+if (MACHINES["BIM68153"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/68153bim.cpp",
+ MAME_DIR .. "src/devices/machine/68153bim.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/68230pit.h,MACHINES["PIT68230"] = true
+---------------------------------------------------
+
+if (MACHINES["PIT68230"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/68230pit.cpp",
+ MAME_DIR .. "src/devices/machine/68230pit.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/68561mpcc.h,MACHINES["MPCC68561"] = true
+---------------------------------------------------
+
+if (MACHINES["MPCC68561"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/68561mpcc.cpp",
+ MAME_DIR .. "src/devices/machine/68561mpcc.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/mc68681.h,MACHINES["68681"] = true
+---------------------------------------------------
+
+if (MACHINES["68681"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/mc68681.cpp",
+ MAME_DIR .. "src/devices/machine/mc68681.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/7200fifo.h,MACHINES["7200FIFO"] = true
+---------------------------------------------------
+
+if (MACHINES["7200FIFO"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/7200fifo.cpp",
+ MAME_DIR .. "src/devices/machine/7200fifo.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/7400.h,MACHINES["TTL7400"] = true
+---------------------------------------------------
+
+if (MACHINES["TTL7400"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/7400.cpp",
+ MAME_DIR .. "src/devices/machine/7400.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/7404.h,MACHINES["TTL7404"] = true
+---------------------------------------------------
+
+if (MACHINES["TTL7404"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/7404.cpp",
+ MAME_DIR .. "src/devices/machine/7404.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/74123.h,MACHINES["TTL74123"] = true
+---------------------------------------------------
+
+if (MACHINES["TTL74123"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/74123.cpp",
+ MAME_DIR .. "src/devices/machine/74123.h",
+ MAME_DIR .. "src/devices/machine/rescap.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/74145.h,MACHINES["TTL74145"] = true
+---------------------------------------------------
+
+if (MACHINES["TTL74145"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/74145.cpp",
+ MAME_DIR .. "src/devices/machine/74145.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/74148.h,MACHINES["TTL74148"] = true
+---------------------------------------------------
+
+if (MACHINES["TTL74148"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/74148.cpp",
+ MAME_DIR .. "src/devices/machine/74148.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/74153.h,MACHINES["TTL74153"] = true
+---------------------------------------------------
+
+if (MACHINES["TTL74153"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/74153.cpp",
+ MAME_DIR .. "src/devices/machine/74153.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/74157.h,MACHINES["TTL74157"] = true
+---------------------------------------------------
+
+if (MACHINES["TTL74157"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/74157.cpp",
+ MAME_DIR .. "src/devices/machine/74157.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/74161.h,MACHINES["TTL74161"] = true
+---------------------------------------------------
+
+if (MACHINES["TTL74161"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/74161.cpp",
+ MAME_DIR .. "src/devices/machine/74161.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/74175.h,MACHINES["TTL74175"] = true
+---------------------------------------------------
+
+if (MACHINES["TTL74175"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/74175.cpp",
+ MAME_DIR .. "src/devices/machine/74175.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/74181.h,MACHINES["TTL74181"] = true
+---------------------------------------------------
+
+if (MACHINES["TTL74181"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/74181.cpp",
+ MAME_DIR .. "src/devices/machine/74181.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/7474.h,MACHINES["TTL7474"] = true
+---------------------------------------------------
+
+if (MACHINES["TTL7474"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/7474.cpp",
+ MAME_DIR .. "src/devices/machine/7474.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/82s129.h,MACHINES["PROM82S129"] = true
+---------------------------------------------------
+
+if (MACHINES["PROM82S129"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/82s129.cpp",
+ MAME_DIR .. "src/devices/machine/82s129.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/8042kbdc.h,MACHINES["KBDC8042"] = true
+---------------------------------------------------
+
+if (MACHINES["KBDC8042"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/8042kbdc.cpp",
+ MAME_DIR .. "src/devices/machine/8042kbdc.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/8530scc.h,MACHINES["8530SCC"] = true
+---------------------------------------------------
+
+if (MACHINES["8530SCC"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/8530scc.cpp",
+ MAME_DIR .. "src/devices/machine/8530scc.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/aakart.h,MACHINES["AAKARTDEV"] = true
+---------------------------------------------------
+
+if (MACHINES["AAKARTDEV"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/aakart.cpp",
+ MAME_DIR .. "src/devices/machine/aakart.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/adc0808.h,MACHINES["ADC0808"] = true
+---------------------------------------------------
+
+if (MACHINES["ADC0808"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/adc0808.cpp",
+ MAME_DIR .. "src/devices/machine/adc0808.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/adc083x.h,MACHINES["ADC083X"] = true
+---------------------------------------------------
+
+if (MACHINES["ADC083X"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/adc083x.cpp",
+ MAME_DIR .. "src/devices/machine/adc083x.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/adc1038.h,MACHINES["ADC1038"] = true
+---------------------------------------------------
+
+if (MACHINES["ADC1038"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/adc1038.cpp",
+ MAME_DIR .. "src/devices/machine/adc1038.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/adc1213x.h,MACHINES["ADC1213X"] = true
+---------------------------------------------------
+
+if (MACHINES["ADC1213X"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/adc1213x.cpp",
+ MAME_DIR .. "src/devices/machine/adc1213x.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/aicartc.h,MACHINES["AICARTC"] = true
+---------------------------------------------------
+
+if (MACHINES["AICARTC"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/aicartc.cpp",
+ MAME_DIR .. "src/devices/machine/aicartc.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/am2847.h,MACHINES["AM2847"] = true
+---------------------------------------------------
+
+if (MACHINES["AM2847"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/am2847.cpp",
+ MAME_DIR .. "src/devices/machine/am2847.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/am53cf96.h,MACHINES["AM53CF96"] = true
+---------------------------------------------------
+
+if (MACHINES["AM53CF96"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/am53cf96.cpp",
+ MAME_DIR .. "src/devices/machine/am53cf96.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/am9517a.h,MACHINES["AM9517A"] = true
+---------------------------------------------------
+
+if (MACHINES["AM9517A"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/am9517a.cpp",
+ MAME_DIR .. "src/devices/machine/am9517a.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/amigafdc.h,MACHINES["AMIGAFDC"] = true
+---------------------------------------------------
+
+if (MACHINES["AMIGAFDC"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/amigafdc.cpp",
+ MAME_DIR .. "src/devices/machine/amigafdc.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/at28c16.h,MACHINES["AT28C16"] = true
+---------------------------------------------------
+
+if (MACHINES["AT28C16"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/at28c16.cpp",
+ MAME_DIR .. "src/devices/machine/at28c16.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/at29x.h,MACHINES["AT29X"] = true
+---------------------------------------------------
+
+if (MACHINES["AT29X"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/at29x.cpp",
+ MAME_DIR .. "src/devices/machine/at29x.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/at45dbxx.h,MACHINES["AT45DBXX"] = true
+---------------------------------------------------
+
+if (MACHINES["AT45DBXX"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/at45dbxx.cpp",
+ MAME_DIR .. "src/devices/machine/at45dbxx.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/ataflash.h,MACHINES["ATAFLASH"] = true
+---------------------------------------------------
+
+if (MACHINES["ATAFLASH"]~=null) then
+ MACHINES["IDE"] = true
+ MACHINES["PCCARD"] = true
+ files {
+ MAME_DIR .. "src/devices/machine/ataflash.cpp",
+ MAME_DIR .. "src/devices/machine/ataflash.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/ay31015.h,MACHINES["AY31015"] = true
+---------------------------------------------------
+
+if (MACHINES["AY31015"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/ay31015.cpp",
+ MAME_DIR .. "src/devices/machine/ay31015.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/bankdev.h,MACHINES["BANKDEV"] = true
+---------------------------------------------------
+
+if (MACHINES["BANKDEV"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/bankdev.cpp",
+ MAME_DIR .. "src/devices/machine/bankdev.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/cdp1852.h,MACHINES["CDP1852"] = true
+---------------------------------------------------
+
+if (MACHINES["CDP1852"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/cdp1852.cpp",
+ MAME_DIR .. "src/devices/machine/cdp1852.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/cdp1871.h,MACHINES["CDP1871"] = true
+---------------------------------------------------
+
+if (MACHINES["CDP1871"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/cdp1871.cpp",
+ MAME_DIR .. "src/devices/machine/cdp1871.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/cdp1879.h,MACHINES["CDP1879"] = true
+---------------------------------------------------
+
+if (MACHINES["CDP1879"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/cdp1879.cpp",
+ MAME_DIR .. "src/devices/machine/cdp1879.h",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/machine/com8116.h,MACHINES["COM8116"] = true
+---------------------------------------------------
+
+if (MACHINES["COM8116"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/com8116.cpp",
+ MAME_DIR .. "src/devices/machine/com8116.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/cr589.h,MACHINES["CR589"] = true
+---------------------------------------------------
+
+if (MACHINES["CR589"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/cr589.cpp",
+ MAME_DIR .. "src/devices/machine/cr589.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/cs4031.h,MACHINES["CS4031"] = true
+---------------------------------------------------
+
+if (MACHINES["CS4031"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/cs4031.cpp",
+ MAME_DIR .. "src/devices/machine/cs4031.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/cs8221.h,MACHINES["CS8221"] = true
+---------------------------------------------------
+
+if (MACHINES["CS8221"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/cs8221.cpp",
+ MAME_DIR .. "src/devices/machine/cs8221.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/cxd1095.h,MACHINES["CXD1095"] = true
+---------------------------------------------------
+
+if (MACHINES["CXD1095"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/cxd1095.cpp",
+ MAME_DIR .. "src/devices/machine/cxd1095.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/dm9334.h,MACHINES["DM9334"] = true
+---------------------------------------------------
+
+if (MACHINES["DM9334"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/dm9334.cpp",
+ MAME_DIR .. "src/devices/machine/dm9334.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/ds1204.h,MACHINES["DS1204"] = true
+---------------------------------------------------
+
+if (MACHINES["DS1204"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/ds1204.cpp",
+ MAME_DIR .. "src/devices/machine/ds1204.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/ds1205.h,MACHINES["DS1205"] = true
+---------------------------------------------------
+
+if (MACHINES["DS1205"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/ds1205.cpp",
+ MAME_DIR .. "src/devices/machine/ds1205.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/ds1302.h,MACHINES["DS1302"] = true
+---------------------------------------------------
+
+if (MACHINES["DS1302"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/ds1302.cpp",
+ MAME_DIR .. "src/devices/machine/ds1302.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/ds1315.h,MACHINES["DS1315"] = true
+---------------------------------------------------
+
+if (MACHINES["DS1315"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/ds1315.cpp",
+ MAME_DIR .. "src/devices/machine/ds1315.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/ds1386.h,MACHINES["DS1386"] = true
+---------------------------------------------------
+
+if (MACHINES["DS1386"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/ds1386.cpp",
+ MAME_DIR .. "src/devices/machine/ds1386.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/ds2401.h,MACHINES["DS2401"] = true
+---------------------------------------------------
+
+if (MACHINES["DS2401"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/ds2401.cpp",
+ MAME_DIR .. "src/devices/machine/ds2401.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/ds2404.h,MACHINES["DS2404"] = true
+---------------------------------------------------
+
+if (MACHINES["DS2404"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/ds2404.cpp",
+ MAME_DIR .. "src/devices/machine/ds2404.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/ds75160a.h,MACHINES["DS75160A"] = true
+---------------------------------------------------
+
+if (MACHINES["DS75160A"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/ds75160a.cpp",
+ MAME_DIR .. "src/devices/machine/ds75160a.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/ds75161a.h,MACHINES["DS75161A"] = true
+---------------------------------------------------
+
+if (MACHINES["DS75161A"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/ds75161a.cpp",
+ MAME_DIR .. "src/devices/machine/ds75161a.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/e0516.h,MACHINES["E0516"] = true
+---------------------------------------------------
+
+if (MACHINES["E0516"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/e0516.cpp",
+ MAME_DIR .. "src/devices/machine/e0516.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/e05a03.h,MACHINES["E05A03"] = true
+---------------------------------------------------
+
+if (MACHINES["E05A03"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/e05a03.cpp",
+ MAME_DIR .. "src/devices/machine/e05a03.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/e05a30.h,MACHINES["E05A30"] = true
+---------------------------------------------------
+
+if (MACHINES["E05A30"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/e05a30.cpp",
+ MAME_DIR .. "src/devices/machine/e05a30.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/eeprom.h,MACHINES["EEPROMDEV"] = true
+--@src/devices/machine/eepromser.h,MACHINES["EEPROMDEV"] = true
+--@src/devices/machine/eeprompar.h,MACHINES["EEPROMDEV"] = true
+---------------------------------------------------
+
+if (MACHINES["EEPROMDEV"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/eeprom.cpp",
+ MAME_DIR .. "src/devices/machine/eeprom.h",
+ MAME_DIR .. "src/devices/machine/eepromser.cpp",
+ MAME_DIR .. "src/devices/machine/eepromser.h",
+ MAME_DIR .. "src/devices/machine/eeprompar.cpp",
+ MAME_DIR .. "src/devices/machine/eeprompar.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/er2055.h,MACHINES["ER2055"] = true
+---------------------------------------------------
+
+if (MACHINES["ER2055"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/er2055.cpp",
+ MAME_DIR .. "src/devices/machine/er2055.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/f3853.h,MACHINES["F3853"] = true
+---------------------------------------------------
+
+if (MACHINES["F3853"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/f3853.cpp",
+ MAME_DIR .. "src/devices/machine/f3853.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/fga002.h,MACHINES["FGA002"] = true
+---------------------------------------------------
+
+if (MACHINES["FGA002"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/fga002.cpp",
+ MAME_DIR .. "src/devices/machine/fga002.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/hd63450.h,MACHINES["HD63450"] = true
+---------------------------------------------------
+
+if (MACHINES["HD63450"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/hd63450.cpp",
+ MAME_DIR .. "src/devices/machine/hd63450.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/hd64610.h,MACHINES["HD64610"] = true
+---------------------------------------------------
+
+if (MACHINES["HD64610"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/hd64610.cpp",
+ MAME_DIR .. "src/devices/machine/hd64610.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/hp_taco.h,MACHINES["HP_TACO"] = true
+---------------------------------------------------
+
+if (MACHINES["HP_TACO"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/hp_taco.cpp",
+ MAME_DIR .. "src/devices/machine/hp_taco.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/i2cmem.h,MACHINES["I2CMEM"] = true
+---------------------------------------------------
+
+if (MACHINES["I2CMEM"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/i2cmem.cpp",
+ MAME_DIR .. "src/devices/machine/i2cmem.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/i8155.h,MACHINES["I8155"] = true
+---------------------------------------------------
+
+if (MACHINES["I8155"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/i8155.cpp",
+ MAME_DIR .. "src/devices/machine/i8155.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/i8212.h,MACHINES["I8212"] = true
+---------------------------------------------------
+
+if (MACHINES["I8212"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/i8212.cpp",
+ MAME_DIR .. "src/devices/machine/i8212.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/i8214.h,MACHINES["I8214"] = true
+---------------------------------------------------
+
+if (MACHINES["I8214"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/i8214.cpp",
+ MAME_DIR .. "src/devices/machine/i8214.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/i8243.h,MACHINES["I8243"] = true
+---------------------------------------------------
+
+if (MACHINES["I8243"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/i8243.cpp",
+ MAME_DIR .. "src/devices/machine/i8243.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/i8251.h,MACHINES["I8251"] = true
+---------------------------------------------------
+
+if (MACHINES["I8251"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/i8251.cpp",
+ MAME_DIR .. "src/devices/machine/i8251.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/i8257.h,MACHINES["I8257"] = true
+---------------------------------------------------
+
+if (MACHINES["I8257"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/i8257.cpp",
+ MAME_DIR .. "src/devices/machine/i8257.h",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/machine/i8271.h,MACHINES["I8271"] = true
+---------------------------------------------------
+
+if (MACHINES["I8271"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/i8271.cpp",
+ MAME_DIR .. "src/devices/machine/i8271.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/i8279.h,MACHINES["I8279"] = true
+---------------------------------------------------
+
+if (MACHINES["I8279"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/i8279.cpp",
+ MAME_DIR .. "src/devices/machine/i8279.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/i8355.h,MACHINES["I8355"] = true
+---------------------------------------------------
+
+if (MACHINES["I8355"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/i8355.cpp",
+ MAME_DIR .. "src/devices/machine/i8355.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/i80130.h,MACHINES["I80130"] = true
+---------------------------------------------------
+
+if (MACHINES["I80130"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/i80130.cpp",
+ MAME_DIR .. "src/devices/machine/i80130.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/atadev.h,MACHINES["IDE"] = true
+--@src/devices/machine/ataintf.h,MACHINES["IDE"] = true
+---------------------------------------------------
+
+if (MACHINES["IDE"]~=null) then
+ MACHINES["T10"] = true
+ files {
+ MAME_DIR .. "src/devices/machine/atadev.cpp",
+ MAME_DIR .. "src/devices/machine/atadev.h",
+ MAME_DIR .. "src/devices/machine/atahle.cpp",
+ MAME_DIR .. "src/devices/machine/atahle.h",
+ MAME_DIR .. "src/devices/machine/ataintf.cpp",
+ MAME_DIR .. "src/devices/machine/ataintf.h",
+ MAME_DIR .. "src/devices/machine/atapicdr.cpp",
+ MAME_DIR .. "src/devices/machine/atapicdr.h",
+ MAME_DIR .. "src/devices/machine/atapihle.cpp",
+ MAME_DIR .. "src/devices/machine/atapihle.h",
+ MAME_DIR .. "src/devices/machine/idectrl.cpp",
+ MAME_DIR .. "src/devices/machine/idectrl.h",
+ MAME_DIR .. "src/devices/machine/idehd.cpp",
+ MAME_DIR .. "src/devices/machine/idehd.h",
+ MAME_DIR .. "src/devices/machine/vt83c461.cpp",
+ MAME_DIR .. "src/devices/machine/vt83c461.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/ie15.h,MACHINES["IE15"] = true
+---------------------------------------------------
+
+if (MACHINES["IE15"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/ie15.cpp",
+ MAME_DIR .. "src/devices/machine/ie15.h",
+ MAME_DIR .. "src/devices/machine/ie15_kbd.cpp",
+ MAME_DIR .. "src/devices/machine/ie15_kbd.h",
+ }
+
+ dependency {
+ { MAME_DIR .. "src/devices/machine/ie15.cpp", GEN_DIR .. "emu/layout/ie15.lh" },
+ }
+
+ custombuildtask {
+ layoutbuildtask("emu/layout", "ie15"),
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/im6402.h,MACHINES["IM6402"] = true
+---------------------------------------------------
+
+if (MACHINES["IM6402"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/im6402.cpp",
+ MAME_DIR .. "src/devices/machine/im6402.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/ins8154.h,MACHINES["INS8154"] = true
+---------------------------------------------------
+
+if (MACHINES["INS8154"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/ins8154.cpp",
+ MAME_DIR .. "src/devices/machine/ins8154.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/ins8250.h,MACHINES["INS8250"] = true
+---------------------------------------------------
+
+if (MACHINES["INS8250"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/ins8250.cpp",
+ MAME_DIR .. "src/devices/machine/ins8250.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/intelfsh.h,MACHINES["INTELFLASH"] = true
+---------------------------------------------------
+
+if (MACHINES["INTELFLASH"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/intelfsh.cpp",
+ MAME_DIR .. "src/devices/machine/intelfsh.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/jvsdev.h,MACHINES["JVS"] = true
+--@src/devices/machine/jvshost.h,MACHINES["JVS"] = true
+---------------------------------------------------
+
+if (MACHINES["JVS"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/jvsdev.cpp",
+ MAME_DIR .. "src/devices/machine/jvsdev.h",
+ MAME_DIR .. "src/devices/machine/jvshost.cpp",
+ MAME_DIR .. "src/devices/machine/jvshost.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/k033906.h,MACHINES["K033906"] = true
+---------------------------------------------------
+
+if (MACHINES["K033906"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/k033906.cpp",
+ MAME_DIR .. "src/devices/machine/k033906.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/k053252.h,MACHINES["K053252"] = true
+---------------------------------------------------
+
+if (MACHINES["K053252"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/k053252.cpp",
+ MAME_DIR .. "src/devices/machine/k053252.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/k056230.h,MACHINES["K056230"] = true
+---------------------------------------------------
+
+if (MACHINES["K056230"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/k056230.cpp",
+ MAME_DIR .. "src/devices/machine/k056230.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/mm5740.h,MACHINES["MM5740"] = true
+---------------------------------------------------
+
+if (MACHINES["MM5740"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/mm5740.cpp",
+ MAME_DIR .. "src/devices/machine/mm5740.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/kb3600.h,MACHINES["KB3600"] = true
+---------------------------------------------------
+
+if (MACHINES["KB3600"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/kb3600.cpp",
+ MAME_DIR .. "src/devices/machine/kb3600.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/kr2376.h,MACHINES["KR2376"] = true
+---------------------------------------------------
+
+if (MACHINES["KR2376"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/kr2376.cpp",
+ MAME_DIR .. "src/devices/machine/kr2376.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/latch8.h,MACHINES["LATCH8"] = true
+---------------------------------------------------
+
+if (MACHINES["LATCH8"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/latch8.cpp",
+ MAME_DIR .. "src/devices/machine/latch8.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/lc89510.h,MACHINES["LC89510"] = true
+---------------------------------------------------
+
+if (MACHINES["LC89510"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/lc89510.cpp",
+ MAME_DIR .. "src/devices/machine/lc89510.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/ldpr8210.h,MACHINES["LDPR8210"] = true
+---------------------------------------------------
+
+if (MACHINES["LDPR8210"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/ldpr8210.cpp",
+ MAME_DIR .. "src/devices/machine/ldpr8210.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/ldstub.h,MACHINES["LDSTUB"] = true
+---------------------------------------------------
+
+if (MACHINES["LDSTUB"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/ldstub.cpp",
+ MAME_DIR .. "src/devices/machine/ldstub.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/ldv1000.h,MACHINES["LDV1000"] = true
+---------------------------------------------------
+
+if (MACHINES["LDV1000"]~=null) then
+ MACHINES["Z80CTC"] = true
+ MACHINES["I8255"] = true
+ files {
+ MAME_DIR .. "src/devices/machine/ldv1000.cpp",
+ MAME_DIR .. "src/devices/machine/ldv1000.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/ldp1000.h,MACHINES["LDP1000"] = true
+---------------------------------------------------
+
+if (MACHINES["LDP1000"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/ldp1000.cpp",
+ MAME_DIR .. "src/devices/machine/ldp1000.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/ldp1450.h,MACHINES["LDP1450"] = true
+---------------------------------------------------
+
+if (MACHINES["LDP1450"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/ldp1450.cpp",
+ MAME_DIR .. "src/devices/machine/ldp1450.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/ldvp931.h,MACHINES["LDVP931"] = true
+---------------------------------------------------
+
+if (MACHINES["LDVP931"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/ldvp931.cpp",
+ MAME_DIR .. "src/devices/machine/ldvp931.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/lh5810.h,MACHINES["LH5810"] = true
+---------------------------------------------------
+
+if (MACHINES["LH5810"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/lh5810.cpp",
+ MAME_DIR .. "src/devices/machine/lh5810.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/linflash.h,MACHINES["LINFLASH"] = true
+---------------------------------------------------
+
+if (MACHINES["LINFLASH"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/linflash.cpp",
+ MAME_DIR .. "src/devices/machine/linflash.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/m6m80011ap.h,MACHINES["M6M80011AP"] = true
+---------------------------------------------------
+
+if (MACHINES["M6M80011AP"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/m6m80011ap.cpp",
+ MAME_DIR .. "src/devices/machine/m6m80011ap.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/mb14241.h,MACHINES["MB14241"] = true
+---------------------------------------------------
+
+if (MACHINES["MB14241"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/mb14241.cpp",
+ MAME_DIR .. "src/devices/machine/mb14241.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/mb3773.h,MACHINES["MB3773"] = true
+---------------------------------------------------
+
+if (MACHINES["MB3773"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/mb3773.cpp",
+ MAME_DIR .. "src/devices/machine/mb3773.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/mb8421.h,MACHINES["MB8421"] = true
+---------------------------------------------------
+
+if (MACHINES["MB8421"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/mb8421.cpp",
+ MAME_DIR .. "src/devices/machine/mb8421.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/mb87078.h,MACHINES["MB87078"] = true
+---------------------------------------------------
+
+if (MACHINES["MB87078"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/mb87078.cpp",
+ MAME_DIR .. "src/devices/machine/mb87078.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/mb8795.h,MACHINES["MB8795"] = true
+---------------------------------------------------
+
+if (MACHINES["MB8795"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/mb8795.cpp",
+ MAME_DIR .. "src/devices/machine/mb8795.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/mb89352.h,MACHINES["MB89352"] = true
+---------------------------------------------------
+
+if (MACHINES["MB89352"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/mb89352.cpp",
+ MAME_DIR .. "src/devices/machine/mb89352.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/mb89371.h,MACHINES["MB89371"] = true
+---------------------------------------------------
+
+if (MACHINES["MB89371"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/mb89371.cpp",
+ MAME_DIR .. "src/devices/machine/mb89371.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/mc146818.h,MACHINES["MC146818"] = true
+---------------------------------------------------
+
+if (MACHINES["MC146818"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/mc146818.cpp",
+ MAME_DIR .. "src/devices/machine/mc146818.h",
+ MAME_DIR .. "src/devices/machine/ds128x.cpp",
+ MAME_DIR .. "src/devices/machine/ds128x.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/mc2661.h,MACHINES["MC2661"] = true
+---------------------------------------------------
+
+if (MACHINES["MC2661"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/mc2661.cpp",
+ MAME_DIR .. "src/devices/machine/mc2661.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/mc6843.h,MACHINES["MC6843"] = true
+---------------------------------------------------
+
+if (MACHINES["MC6843"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/mc6843.cpp",
+ MAME_DIR .. "src/devices/machine/mc6843.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/mc6846.h,MACHINES["MC6846"] = true
+---------------------------------------------------
+
+if (MACHINES["MC6846"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/mc6846.cpp",
+ MAME_DIR .. "src/devices/machine/mc6846.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/mc6852.h,MACHINES["MC6852"] = true
+---------------------------------------------------
+
+if (MACHINES["MC6852"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/mc6852.cpp",
+ MAME_DIR .. "src/devices/machine/mc6852.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/mc6854.h,MACHINES["MC6854"] = true
+---------------------------------------------------
+
+if (MACHINES["MC6854"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/mc6854.cpp",
+ MAME_DIR .. "src/devices/machine/mc6854.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/mc68328.h,MACHINES["MC68328"] = true
+---------------------------------------------------
+
+if (MACHINES["MC68328"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/mc68328.cpp",
+ MAME_DIR .. "src/devices/machine/mc68328.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/mc68901.h,MACHINES["MC68901"] = true
+---------------------------------------------------
+
+if (MACHINES["MC68901"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/mc68901.cpp",
+ MAME_DIR .. "src/devices/machine/mc68901.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/mccs1850.h,MACHINES["MCCS1850"] = true
+---------------------------------------------------
+
+if (MACHINES["MCCS1850"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/mccs1850.cpp",
+ MAME_DIR .. "src/devices/machine/mccs1850.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/68307.h,MACHINES["M68307"] = true
+---------------------------------------------------
+
+if (MACHINES["M68307"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/68307.cpp",
+ MAME_DIR .. "src/devices/machine/68307.h",
+ MAME_DIR .. "src/devices/machine/68307sim.cpp",
+ MAME_DIR .. "src/devices/machine/68307sim.h",
+ MAME_DIR .. "src/devices/machine/68307bus.cpp",
+ MAME_DIR .. "src/devices/machine/68307bus.h",
+ MAME_DIR .. "src/devices/machine/68307tmu.cpp",
+ MAME_DIR .. "src/devices/machine/68307tmu.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/68340.h,MACHINES["M68340"] = true
+---------------------------------------------------
+
+if (MACHINES["M68340"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/68340.cpp",
+ MAME_DIR .. "src/devices/machine/68340.h",
+ MAME_DIR .. "src/devices/machine/68340sim.cpp",
+ MAME_DIR .. "src/devices/machine/68340sim.h",
+ MAME_DIR .. "src/devices/machine/68340dma.cpp",
+ MAME_DIR .. "src/devices/machine/68340dma.h",
+ MAME_DIR .. "src/devices/machine/68340ser.cpp",
+ MAME_DIR .. "src/devices/machine/68340ser.h",
+ MAME_DIR .. "src/devices/machine/68340tmu.cpp",
+ MAME_DIR .. "src/devices/machine/68340tmu.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/mcf5206e.h,MACHINES["MCF5206E"] = true
+---------------------------------------------------
+
+if (MACHINES["MCF5206E"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/mcf5206e.cpp",
+ MAME_DIR .. "src/devices/machine/mcf5206e.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/microtch.h,MACHINES["MICROTOUCH"] = true
+---------------------------------------------------
+
+if (MACHINES["MICROTOUCH"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/microtch.cpp",
+ MAME_DIR .. "src/devices/machine/microtch.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/mm58274c.h,MACHINES["MM58274C"] = true
+---------------------------------------------------
+
+if (MACHINES["MM58274C"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/mm58274c.cpp",
+ MAME_DIR .. "src/devices/machine/mm58274c.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/mm74c922.h,MACHINES["MM74C922"] = true
+---------------------------------------------------
+
+if (MACHINES["MM74C922"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/mm74c922.cpp",
+ MAME_DIR .. "src/devices/machine/mm74c922.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/mos6526.h,MACHINES["MOS6526"] = true
+---------------------------------------------------
+
+if (MACHINES["MOS6526"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/mos6526.cpp",
+ MAME_DIR .. "src/devices/machine/mos6526.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/mos6529.h,MACHINES["MOS6529"] = true
+---------------------------------------------------
+
+if (MACHINES["MOS6529"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/mos6529.cpp",
+ MAME_DIR .. "src/devices/machine/mos6529.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/mos6702.h,MACHINES["MOS6702"] = true
+---------------------------------------------------
+
+if (MACHINES["MOS6702"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/mos6702.cpp",
+ MAME_DIR .. "src/devices/machine/mos6702.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/mos8706.h,MACHINES["MOS8706"] = true
+---------------------------------------------------
+
+if (MACHINES["MOS8706"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/mos8706.cpp",
+ MAME_DIR .. "src/devices/machine/mos8706.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/mos8722.h,MACHINES["MOS8722"] = true
+---------------------------------------------------
+
+if (MACHINES["MOS8722"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/mos8722.cpp",
+ MAME_DIR .. "src/devices/machine/mos8722.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/mos8726.h,MACHINES["MOS8726"] = true
+---------------------------------------------------
+
+if (MACHINES["MOS8726"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/mos8726.cpp",
+ MAME_DIR .. "src/devices/machine/mos8726.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/mos6530.h,MACHINES["MIOT6530"] = true
+--@src/devices/machine/mos6530n.h,MACHINES["MIOT6530"] = true
+---------------------------------------------------
+
+if (MACHINES["MIOT6530"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/mos6530.cpp",
+ MAME_DIR .. "src/devices/machine/mos6530.h",
+ MAME_DIR .. "src/devices/machine/mos6530n.cpp",
+ MAME_DIR .. "src/devices/machine/mos6530n.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/mos6551.h,MACHINES["MOS6551"] = true
+---------------------------------------------------
+
+if (MACHINES["MOS6551"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/mos6551.cpp",
+ MAME_DIR .. "src/devices/machine/mos6551.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/msm5832.h,MACHINES["MSM5832"] = true
+---------------------------------------------------
+
+if (MACHINES["MSM5832"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/msm5832.cpp",
+ MAME_DIR .. "src/devices/machine/msm5832.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/msm58321.h,MACHINES["MSM58321"] = true
+---------------------------------------------------
+
+if (MACHINES["MSM58321"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/msm58321.cpp",
+ MAME_DIR .. "src/devices/machine/msm58321.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/msm6242.h,MACHINES["MSM6242"] = true
+---------------------------------------------------
+
+if (MACHINES["MSM6242"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/msm6242.cpp",
+ MAME_DIR .. "src/devices/machine/msm6242.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/msm6253.h,MACHINES["MSM6253"] = true
+---------------------------------------------------
+
+if (MACHINES["MSM6253"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/msm6253.cpp",
+ MAME_DIR .. "src/devices/machine/msm6253.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/ncr539x.h,MACHINES["NCR539x"] = true
+---------------------------------------------------
+
+if (MACHINES["NCR539x"]~=null) then
+ MACHINES["SCSI"] = true
+ files {
+ MAME_DIR .. "src/devices/machine/ncr539x.cpp",
+ MAME_DIR .. "src/devices/machine/ncr539x.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/nmc9306.h,MACHINES["NMC9306"] = true
+---------------------------------------------------
+
+if (MACHINES["NMC9306"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/nmc9306.cpp",
+ MAME_DIR .. "src/devices/machine/nmc9306.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/nscsi_bus.h,MACHINES["NSCSI"] = true
+--@src/devices/machine/nscsi_cb.h,MACHINES["NSCSI"] = true
+--@src/devices/machine/nscsi_cd.h,MACHINES["NSCSI"] = true
+--@src/devices/machine/nscsi_hd.h,MACHINES["NSCSI"] = true
+--@src/devices/machine/nscsi_s1410.h,MACHINES["NSCSI"] = true
+---------------------------------------------------
+
+if (MACHINES["NSCSI"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/nscsi_bus.cpp",
+ MAME_DIR .. "src/devices/machine/nscsi_bus.h",
+ MAME_DIR .. "src/devices/machine/nscsi_cb.cpp",
+ MAME_DIR .. "src/devices/machine/nscsi_cb.h",
+ MAME_DIR .. "src/devices/machine/nscsi_cd.cpp",
+ MAME_DIR .. "src/devices/machine/nscsi_cd.h",
+ MAME_DIR .. "src/devices/machine/nscsi_hd.cpp",
+ MAME_DIR .. "src/devices/machine/nscsi_hd.h",
+ MAME_DIR .. "src/devices/machine/nscsi_s1410.cpp",
+ MAME_DIR .. "src/devices/machine/nscsi_s1410.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/pcf8593.h,MACHINES["PCF8593"] = true
+---------------------------------------------------
+
+if (MACHINES["PCF8593"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/pcf8593.cpp",
+ MAME_DIR .. "src/devices/machine/pcf8593.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/lpci.h,MACHINES["LPCI"] = true
+---------------------------------------------------
+
+if (MACHINES["LPCI"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/lpci.cpp",
+ MAME_DIR .. "src/devices/machine/lpci.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/pci.h,MACHINES["PCI"] = true
+---------------------------------------------------
+
+if (MACHINES["PCI"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/pci.cpp",
+ MAME_DIR .. "src/devices/machine/pci.h",
+ MAME_DIR .. "src/devices/machine/pci-usb.cpp",
+ MAME_DIR .. "src/devices/machine/pci-usb.h",
+ MAME_DIR .. "src/devices/machine/pci-sata.cpp",
+ MAME_DIR .. "src/devices/machine/pci-sata.h",
+ MAME_DIR .. "src/devices/machine/pci-ide.cpp",
+ MAME_DIR .. "src/devices/machine/pci-ide.h",
+ MAME_DIR .. "src/devices/machine/pci-apic.cpp",
+ MAME_DIR .. "src/devices/machine/pci-apic.h",
+ MAME_DIR .. "src/devices/machine/pci-smbus.cpp",
+ MAME_DIR .. "src/devices/machine/pci-smbus.h",
+ MAME_DIR .. "src/devices/machine/i82541.cpp",
+ MAME_DIR .. "src/devices/machine/i82541.h",
+ MAME_DIR .. "src/devices/machine/i82875p.cpp",
+ MAME_DIR .. "src/devices/machine/i82875p.h",
+ MAME_DIR .. "src/devices/machine/i6300esb.cpp",
+ MAME_DIR .. "src/devices/machine/i6300esb.h",
+ MAME_DIR .. "src/devices/machine/i82439hx.cpp",
+ MAME_DIR .. "src/devices/machine/i82439hx.h",
+ MAME_DIR .. "src/devices/machine/i82439tx.cpp",
+ MAME_DIR .. "src/devices/machine/i82439tx.h",
+ MAME_DIR .. "src/devices/machine/i82371sb.cpp",
+ MAME_DIR .. "src/devices/machine/i82371sb.h",
+ MAME_DIR .. "src/devices/machine/lpc.cpp",
+ MAME_DIR .. "src/devices/machine/lpc.h",
+ MAME_DIR .. "src/devices/machine/lpc-acpi.cpp",
+ MAME_DIR .. "src/devices/machine/lpc-acpi.h",
+ MAME_DIR .. "src/devices/machine/lpc-rtc.cpp",
+ MAME_DIR .. "src/devices/machine/lpc-rtc.h",
+ MAME_DIR .. "src/devices/machine/lpc-pit.cpp",
+ MAME_DIR .. "src/devices/machine/lpc-pit.h",
+ MAME_DIR .. "src/devices/machine/vrc4373.cpp",
+ MAME_DIR .. "src/devices/machine/vrc4373.h",
+ MAME_DIR .. "src/devices/machine/gt64xxx.cpp",
+ MAME_DIR .. "src/devices/machine/gt64xxx.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/pckeybrd.h,MACHINES["PCKEYBRD"] = true
+---------------------------------------------------
+
+if (MACHINES["PCKEYBRD"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/pckeybrd.cpp",
+ MAME_DIR .. "src/devices/machine/pckeybrd.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/phi.h,MACHINES["PHI"] = true
+---------------------------------------------------
+
+if (MACHINES["PHI"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/phi.cpp",
+ MAME_DIR .. "src/devices/machine/phi.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/pic8259.h,MACHINES["PIC8259"] = true
+---------------------------------------------------
+
+if (MACHINES["PIC8259"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/pic8259.cpp",
+ MAME_DIR .. "src/devices/machine/pic8259.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/pit8253.h,MACHINES["PIT8253"] = true
+---------------------------------------------------
+
+if (MACHINES["PIT8253"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/pit8253.cpp",
+ MAME_DIR .. "src/devices/machine/pit8253.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/pla.h,MACHINES["PLA"] = true
+---------------------------------------------------
+
+if (MACHINES["PLA"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/pla.cpp",
+ MAME_DIR .. "src/devices/machine/pla.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/r10696.h,MACHINES["R10696"] = true
+---------------------------------------------------
+
+if (MACHINES["R10696"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/r10696.cpp",
+ MAME_DIR .. "src/devices/machine/r10696.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/r10788.h,MACHINES["R10788"] = true
+---------------------------------------------------
+
+if (MACHINES["R10788"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/r10788.cpp",
+ MAME_DIR .. "src/devices/machine/r10788.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/ra17xx.h,MACHINES["RA17XX"] = true
+---------------------------------------------------
+
+if (MACHINES["RA17XX"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/ra17xx.cpp",
+ MAME_DIR .. "src/devices/machine/ra17xx.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/rf5c296.h,MACHINES["RF5C296"] = true
+---------------------------------------------------
+
+if (MACHINES["RF5C296"]~=null) then
+ MACHINES["PCCARD"] = true
+ files {
+ MAME_DIR .. "src/devices/machine/rf5c296.cpp",
+ MAME_DIR .. "src/devices/machine/rf5c296.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/roc10937.h,MACHINES["ROC10937"] = true
+---------------------------------------------------
+
+if (MACHINES["ROC10937"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/roc10937.cpp",
+ MAME_DIR .. "src/devices/machine/roc10937.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/rp5c01.h,MACHINES["RP5C01"] = true
+---------------------------------------------------
+
+if (MACHINES["RP5C01"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/rp5c01.cpp",
+ MAME_DIR .. "src/devices/machine/rp5c01.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/rp5c15.h,MACHINES["RP5C15"] = true
+---------------------------------------------------
+
+if (MACHINES["RP5C15"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/rp5c15.cpp",
+ MAME_DIR .. "src/devices/machine/rp5c15.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/rp5h01.h,MACHINES["RP5H01"] = true
+---------------------------------------------------
+
+if (MACHINES["RP5H01"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/rp5h01.cpp",
+ MAME_DIR .. "src/devices/machine/rp5h01.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/64h156.h,MACHINES["R64H156"] = true
+---------------------------------------------------
+
+if (MACHINES["R64H156"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/64h156.cpp",
+ MAME_DIR .. "src/devices/machine/64h156.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/rtc4543.h,MACHINES["RTC4543"] = true
+---------------------------------------------------
+
+if (MACHINES["RTC4543"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/rtc4543.cpp",
+ MAME_DIR .. "src/devices/machine/rtc4543.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/rtc65271.h,MACHINES["RTC65271"] = true
+---------------------------------------------------
+
+if (MACHINES["RTC65271"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/rtc65271.cpp",
+ MAME_DIR .. "src/devices/machine/rtc65271.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/rtc9701.h,MACHINES["RTC9701"] = true
+---------------------------------------------------
+
+if (MACHINES["RTC9701"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/rtc9701.cpp",
+ MAME_DIR .. "src/devices/machine/rtc9701.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/s2636.h,MACHINES["S2636"] = true
+---------------------------------------------------
+
+if (MACHINES["S2636"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/s2636.cpp",
+ MAME_DIR .. "src/devices/machine/s2636.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/s3520cf.h,MACHINES["S3520CF"] = true
+---------------------------------------------------
+
+if (MACHINES["S3520CF"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/s3520cf.cpp",
+ MAME_DIR .. "src/devices/machine/s3520cf.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/s3c2400.h,MACHINES["S3C2400"] = true
+---------------------------------------------------
+
+if (MACHINES["S3C2400"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/s3c2400.cpp",
+ MAME_DIR .. "src/devices/machine/s3c2400.h",
+ MAME_DIR .. "src/devices/machine/s3c24xx.hxx",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/s3c2410.h,MACHINES["S3C2410"] = true
+---------------------------------------------------
+
+if (MACHINES["S3C2410"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/s3c2410.cpp",
+ MAME_DIR .. "src/devices/machine/s3c2410.h",
+ MAME_DIR .. "src/devices/machine/s3c24xx.hxx",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/s3c44b0.h,MACHINES["S3C44B0"] = true
+---------------------------------------------------
+
+if (MACHINES["S3C44B0"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/s3c44b0.cpp",
+ MAME_DIR .. "src/devices/machine/s3c44b0.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/s3c2440.h,MACHINES["S3C2440"] = true
+---------------------------------------------------
+
+if (MACHINES["S3C2440"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/s3c2440.cpp",
+ MAME_DIR .. "src/devices/machine/s3c2440.h",
+ MAME_DIR .. "src/devices/machine/s3c24xx.hxx",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/scnxx562.h,MACHINES["DUSCC"] = true
+---------------------------------------------------
+
+if (MACHINES["DUSCC"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/scnxx562.cpp",
+ MAME_DIR .. "src/devices/machine/scnxx562.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/serflash.h,MACHINES["SERFLASH"] = true
+---------------------------------------------------
+
+if (MACHINES["SERFLASH"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/serflash.cpp",
+ MAME_DIR .. "src/devices/machine/serflash.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/smc91c9x.h,MACHINES["SMC91C9X"] = true
+---------------------------------------------------
+
+if (MACHINES["SMC91C9X"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/smc91c9x.cpp",
+ MAME_DIR .. "src/devices/machine/smc91c9x.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/smpc.h,MACHINES["SMPC"] = true
+---------------------------------------------------
+
+if (MACHINES["SMPC"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/smpc.cpp",
+ MAME_DIR .. "src/devices/machine/smpc.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/stvcd.h,MACHINES["STVCD"] = true
+---------------------------------------------------
+
+if (MACHINES["STVCD"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/stvcd.cpp",
+ MAME_DIR .. "src/devices/machine/stvcd.h",
+ }
+end
+
+---------------------------------------------------
+--
+--
+---------------------------------------------------
+
+if (BUSES["SCSI"]~=null) then
+ MACHINES["T10"] = true
+end
+
+if (MACHINES["T10"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/t10mmc.cpp",
+ MAME_DIR .. "src/devices/machine/t10mmc.h",
+ MAME_DIR .. "src/devices/machine/t10sbc.cpp",
+ MAME_DIR .. "src/devices/machine/t10sbc.h",
+ MAME_DIR .. "src/devices/machine/t10spc.cpp",
+ MAME_DIR .. "src/devices/machine/t10spc.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/tc009xlvc.h,MACHINES["TC0091LVC"] = true
+---------------------------------------------------
+
+if (MACHINES["TC0091LVC"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/tc009xlvc.cpp",
+ MAME_DIR .. "src/devices/machine/tc009xlvc.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/timekpr.h,MACHINES["TIMEKPR"] = true
+---------------------------------------------------
+
+if (MACHINES["TIMEKPR"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/timekpr.cpp",
+ MAME_DIR .. "src/devices/machine/timekpr.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/tmc0430.h,MACHINES["TMC0430"] = true
+---------------------------------------------------
+
+if (MACHINES["TMC0430"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/tmc0430.cpp",
+ MAME_DIR .. "src/devices/machine/tmc0430.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/tmp68301.h,MACHINES["TMP68301"] = true
+---------------------------------------------------
+
+if (MACHINES["TMP68301"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/tmp68301.cpp",
+ MAME_DIR .. "src/devices/machine/tmp68301.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/tms1024.h,MACHINES["TMS1024"] = true
+---------------------------------------------------
+
+if (MACHINES["TMS1024"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/tms1024.cpp",
+ MAME_DIR .. "src/devices/machine/tms1024.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/tms5501.h,MACHINES["TMS5501"] = true
+---------------------------------------------------
+
+if (MACHINES["TMS5501"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/tms5501.cpp",
+ MAME_DIR .. "src/devices/machine/tms5501.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/tms6100.h,MACHINES["TMS6100"] = true
+---------------------------------------------------
+
+if (MACHINES["TMS6100"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/tms6100.cpp",
+ MAME_DIR .. "src/devices/machine/tms6100.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/tms9901.h,MACHINES["TMS9901"] = true
+---------------------------------------------------
+
+if (MACHINES["TMS9901"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/tms9901.cpp",
+ MAME_DIR .. "src/devices/machine/tms9901.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/tms9902.h,MACHINES["TMS9902"] = true
+---------------------------------------------------
+
+if (MACHINES["TMS9902"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/tms9902.cpp",
+ MAME_DIR .. "src/devices/machine/tms9902.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/upd1990a.h,MACHINES["UPD1990A"] = true
+---------------------------------------------------
+
+if (MACHINES["UPD1990A"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/upd1990a.cpp",
+ MAME_DIR .. "src/devices/machine/upd1990a.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/upd4992.h,MACHINES["UPD4992"] = true
+---------------------------------------------------
+
+if (MACHINES["UPD4992"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/upd4992.cpp",
+ MAME_DIR .. "src/devices/machine/upd4992.h",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/machine/upd4701.h,MACHINES["UPD4701"] = true
+---------------------------------------------------
+
+if (MACHINES["UPD4701"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/upd4701.cpp",
+ MAME_DIR .. "src/devices/machine/upd4701.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/upd7002.h,MACHINES["UPD7002"] = true
+---------------------------------------------------
+
+if (MACHINES["UPD7002"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/upd7002.cpp",
+ MAME_DIR .. "src/devices/machine/upd7002.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/upd71071.h,MACHINES["UPD71071"] = true
+---------------------------------------------------
+
+if (MACHINES["UPD71071"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/upd71071.cpp",
+ MAME_DIR .. "src/devices/machine/upd71071.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/upd765.h,MACHINES["UPD765"] = true
+---------------------------------------------------
+
+if (MACHINES["UPD765"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/upd765.cpp",
+ MAME_DIR .. "src/devices/machine/upd765.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/v3021.h,MACHINES["V3021"] = true
+---------------------------------------------------
+
+if (MACHINES["V3021"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/v3021.cpp",
+ MAME_DIR .. "src/devices/machine/v3021.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/wd_fdc.h,MACHINES["WD_FDC"] = true
+---------------------------------------------------
+
+if (MACHINES["WD_FDC"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/wd_fdc.cpp",
+ MAME_DIR .. "src/devices/machine/wd_fdc.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/wd11c00_17.h,MACHINES["WD11C00_17"] = true
+---------------------------------------------------
+
+if (MACHINES["WD11C00_17"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/wd11c00_17.cpp",
+ MAME_DIR .. "src/devices/machine/wd11c00_17.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/wd2010.h,MACHINES["WD2010"] = true
+---------------------------------------------------
+
+if (MACHINES["WD2010"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/wd2010.cpp",
+ MAME_DIR .. "src/devices/machine/wd2010.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/wd33c93.h,MACHINES["WD33C93"] = true
+---------------------------------------------------
+
+if (MACHINES["WD33C93"]~=null) then
+ MACHINES["SCSI"] = true
+ files {
+ MAME_DIR .. "src/devices/machine/wd33c93.cpp",
+ MAME_DIR .. "src/devices/machine/wd33c93.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/wd7600.h,MACHINES["WD7600"] = true
+---------------------------------------------------
+
+if (MACHINES["WD7600"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/wd7600.cpp",
+ MAME_DIR .. "src/devices/machine/wd7600.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/x2212.h,MACHINES["X2212"] = true
+---------------------------------------------------
+
+if (MACHINES["X2212"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/x2212.cpp",
+ MAME_DIR .. "src/devices/machine/x2212.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/x76f041.h,MACHINES["X76F041"] = true
+---------------------------------------------------
+
+if (MACHINES["X76F041"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/x76f041.cpp",
+ MAME_DIR .. "src/devices/machine/x76f041.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/x76f100.h,MACHINES["X76F100"] = true
+---------------------------------------------------
+
+if (MACHINES["X76F100"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/x76f100.cpp",
+ MAME_DIR .. "src/devices/machine/x76f100.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/ym2148.h,MACHINES["YM2148"] = true
+---------------------------------------------------
+
+if (MACHINES["YM2148"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/ym2148.cpp",
+ MAME_DIR .. "src/devices/machine/ym2148.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/z80ctc.h,MACHINES["Z80CTC"] = true
+---------------------------------------------------
+
+if (MACHINES["Z80CTC"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/z80ctc.cpp",
+ MAME_DIR .. "src/devices/machine/z80ctc.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/z80dart.h,MACHINES["Z80DART"] = true
+---------------------------------------------------
+
+if (MACHINES["Z80DART"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/z80dart.cpp",
+ MAME_DIR .. "src/devices/machine/z80dart.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/z80sio.h,MACHINES["Z80SIO"] = true
+---------------------------------------------------
+
+if (MACHINES["Z80SIO"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/z80sio.cpp",
+ MAME_DIR .. "src/devices/machine/z80sio.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/z80scc.h,MACHINES["Z80SCC"] = true
+---------------------------------------------------
+
+if (MACHINES["Z80SCC"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/z80scc.cpp",
+ MAME_DIR .. "src/devices/machine/z80scc.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/z80dma.h,MACHINES["Z80DMA"] = true
+---------------------------------------------------
+
+if (MACHINES["Z80DMA"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/z80dma.cpp",
+ MAME_DIR .. "src/devices/machine/z80dma.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/z80pio.h,MACHINES["Z80PIO"] = true
+---------------------------------------------------
+
+if (MACHINES["Z80PIO"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/z80pio.cpp",
+ MAME_DIR .. "src/devices/machine/z80pio.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/z80sti.h,MACHINES["Z80STI"] = true
+---------------------------------------------------
+
+if (MACHINES["Z80STI"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/z80sti.cpp",
+ MAME_DIR .. "src/devices/machine/z80sti.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/z8536.h,MACHINES["Z8536"] = true
+---------------------------------------------------
+
+if (MACHINES["Z8536"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/z8536.cpp",
+ MAME_DIR .. "src/devices/machine/z8536.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/pccard.h,MACHINES["PCCARD"] = true
+---------------------------------------------------
+
+if (MACHINES["PCCARD"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/pccard.cpp",
+ MAME_DIR .. "src/devices/machine/pccard.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/i8255.h,MACHINES["I8255"] = true
+---------------------------------------------------
+
+if (MACHINES["I8255"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/i8255.cpp",
+ MAME_DIR .. "src/devices/machine/i8255.h",
+ MAME_DIR .. "src/devices/machine/mb89363b.cpp",
+ MAME_DIR .. "src/devices/machine/mb89363b.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/ncr5380.h,MACHINES["NCR5380"] = true
+---------------------------------------------------
+
+if (MACHINES["NCR5380"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/ncr5380.cpp",
+ MAME_DIR .. "src/devices/machine/ncr5380.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/ncr5380n.h,MACHINES["NCR5380N"] = true
+---------------------------------------------------
+
+if (MACHINES["NCR5380N"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/ncr5380n.cpp",
+ MAME_DIR .. "src/devices/machine/ncr5380n.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/ncr5390.h,MACHINES["NCR5390"] = true
+---------------------------------------------------
+
+if (MACHINES["NCR5390"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/ncr5390.cpp",
+ MAME_DIR .. "src/devices/machine/ncr5390.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/mm58167.h,MACHINES["MM58167"] = true
+---------------------------------------------------
+
+if (MACHINES["MM58167"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/mm58167.cpp",
+ MAME_DIR .. "src/devices/machine/mm58167.h",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/machine/dp8390.h,MACHINES["DP8390"] = true
+---------------------------------------------------
+
+if (MACHINES["DP8390"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/dp8390.cpp",
+ MAME_DIR .. "src/devices/machine/dp8390.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/pc_lpt.h,MACHINES["PC_LPT"] = true
+---------------------------------------------------
+
+if (MACHINES["PC_LPT"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/pc_lpt.cpp",
+ MAME_DIR .. "src/devices/machine/pc_lpt.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/pc_fdc.h,MACHINES["PC_FDC"] = true
+---------------------------------------------------
+
+if (MACHINES["PC_FDC"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/pc_fdc.cpp",
+ MAME_DIR .. "src/devices/machine/pc_fdc.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/mpu401.h,MACHINES["MPU401"] = true
+---------------------------------------------------
+
+if (MACHINES["MPU401"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/mpu401.cpp",
+ MAME_DIR .. "src/devices/machine/mpu401.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/at_keybc.h,MACHINES["AT_KEYBC"] = true
+---------------------------------------------------
+
+if (MACHINES["AT_KEYBC"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/at_keybc.cpp",
+ MAME_DIR .. "src/devices/machine/at_keybc.h",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/machine/hdc92x4.h,MACHINES["HDC9234"] = true
+---------------------------------------------------
+
+if (MACHINES["HDC9234"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/hdc92x4.cpp",
+ MAME_DIR .. "src/devices/machine/hdc92x4.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/strata.h,MACHINES["STRATA"] = true
+---------------------------------------------------
+
+if (MACHINES["STRATA"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/strata.cpp",
+ MAME_DIR .. "src/devices/machine/strata.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/steppers.h,MACHINES["STEPPERS"] = true
+---------------------------------------------------
+
+if (MACHINES["STEPPERS"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/steppers.cpp",
+ MAME_DIR .. "src/devices/machine/steppers.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/corvushd.h,MACHINES["CORVUSHD"] = true
+---------------------------------------------------
+if (MACHINES["CORVUSHD"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/corvushd.cpp",
+ MAME_DIR .. "src/devices/machine/corvushd.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/wozfdc.h,MACHINES["WOZFDC"] = true
+---------------------------------------------------
+if (MACHINES["WOZFDC"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/wozfdc.cpp",
+ MAME_DIR .. "src/devices/machine/wozfdc.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/diablo_hd.h,MACHINES["DIABLO_HD"] = true
+---------------------------------------------------
+if (MACHINES["DIABLO_HD"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/diablo_hd.cpp",
+ MAME_DIR .. "src/devices/machine/diablo_hd.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/fdc37c665gt.h,MACHINES["FDC37C665GT"] = true
+---------------------------------------------------
+
+if (MACHINES["FDC37C665GT"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/fdc37c665gt.cpp",
+ MAME_DIR .. "src/devices/machine/fdc37c665gt.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/pci9050.h,MACHINES["PCI9050"] = true
+---------------------------------------------------
+
+if (MACHINES["PCI9050"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/pci9050.cpp",
+ MAME_DIR .. "src/devices/machine/pci9050.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/netlist.h,MACHINES["NETLIST"] = true
+---------------------------------------------------
+
+if (MACHINES["NETLIST"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/netlist.cpp",
+ MAME_DIR .. "src/devices/machine/netlist.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/nsc810.h,MACHINES["NSC810"] = true
+---------------------------------------------------
+
+if (MACHINES["NSC810"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/nsc810.cpp",
+ MAME_DIR .. "src/devices/machine/nsc810.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/vt82c496.h,MACHINES["VT82C496"] = true
+---------------------------------------------------
+
+if (MACHINES["VT82C496"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/vt82c496.cpp",
+ MAME_DIR .. "src/devices/machine/vt82c496.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/pdc.h,MACHINES["PDC"] = true
+---------------------------------------------------
+
+if (MACHINES["PDC"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/pdc.cpp",
+ MAME_DIR .. "src/devices/machine/pdc.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/genpc.h,MACHINES["GENPC"] = true
+---------------------------------------------------
+
+if (MACHINES["GENPC"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/genpc.cpp",
+ MAME_DIR .. "src/devices/machine/genpc.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/gen_latch.h,MACHINES["GEN_LATCH"] = true
+---------------------------------------------------
+
+if (MACHINES["GEN_LATCH"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/gen_latch.cpp",
+ MAME_DIR .. "src/devices/machine/gen_latch.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/fdc_pll.h,MACHINES["FDC_PLL"] = true
+---------------------------------------------------
+
+if (MACHINES["FDC_PLL"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/fdc_pll.cpp",
+ MAME_DIR .. "src/devices/machine/fdc_pll.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/watchdog.h,MACHINES["WATCHDOG"] = true
+---------------------------------------------------
+
+if (MACHINES["WATCHDOG"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/watchdog.cpp",
+ MAME_DIR .. "src/devices/machine/watchdog.h",
+ }
+end
+
+
+---------------------------------------------------
+--
+--@src/devices/machine/smartmed.h,MACHINES["SMARTMEDIA"] = true
+---------------------------------------------------
+if (MACHINES["SMARTMEDIA"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/smartmed.cpp",
+ MAME_DIR .. "src/devices/machine/smartmed.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/appldriv.h,MACHINES["APPLE_DRIVE"] = true
+---------------------------------------------------
+if (MACHINES["APPLE_DRIVE"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/appldriv.cpp",
+ MAME_DIR .. "src/devices/machine/appldriv.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/applefdc.h,MACHINES["APPLE_FDC"] = true
+---------------------------------------------------
+if (MACHINES["APPLE_FDC"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/applefdc.cpp",
+ MAME_DIR .. "src/devices/machine/applefdc.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/sonydriv.h,MACHINES["SONY_DRIVE"] = true
+---------------------------------------------------
+if (MACHINES["SONY_DRIVE"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/sonydriv.cpp",
+ MAME_DIR .. "src/devices/machine/sonydriv.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/scnxx562.h,MACHINES["SCNXX562"] = true
+---------------------------------------------------
+if (MACHINES["SCNXX562"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/scnxx562.cpp",
+ MAME_DIR .. "src/devices/machine/scnxx562.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/input_merger.h,MACHINES["INPUT_MERGER"] = true
+---------------------------------------------------
+if (MACHINES["INPUT_MERGER"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/input_merger.cpp",
+ MAME_DIR .. "src/devices/machine/input_merger.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/k054321.h,MACHINES["K054321"] = true
+---------------------------------------------------
+if (MACHINES["K054321"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/k054321.cpp",
+ MAME_DIR .. "src/devices/machine/k054321.h",
+ }
+end
diff --git a/docs/release/scripts/src/main.lua b/docs/release/scripts/src/main.lua
new file mode 100644
index 00000000000..8b4e95ecc9e
--- /dev/null
+++ b/docs/release/scripts/src/main.lua
@@ -0,0 +1,439 @@
+-- license:BSD-3-Clause
+-- copyright-holders:MAMEdev Team
+
+---------------------------------------------------------------------------
+--
+-- main.lua
+--
+-- Rules for building main binary
+--
+---------------------------------------------------------------------------
+
+function mainProject(_target, _subtarget)
+if (_OPTIONS["SOURCES"] == nil) then
+ if (_target == _subtarget) then
+ project (_target)
+ else
+ if (_subtarget=="mess") then
+ project (_subtarget)
+ else
+ project (_target .. _subtarget)
+ end
+ end
+else
+ project (_subtarget)
+end
+ uuid (os.uuid(_target .."_" .. _subtarget))
+ kind "ConsoleApp"
+
+ configuration { "android*" }
+ targetprefix "lib"
+ targetname "main"
+ targetextension ".so"
+ linkoptions {
+ "-shared",
+ "-Wl,-soname,libmain.so"
+ }
+ links {
+ "EGL",
+ "GLESv1_CM",
+ "GLESv2",
+ "SDL2",
+ }
+ configuration { "pnacl" }
+ kind "ConsoleApp"
+ targetextension ".pexe"
+ links {
+ "ppapi",
+ "ppapi_gles2",
+ "pthread",
+ }
+
+ configuration { "winstore*" }
+ kind "WindowedApp"
+
+ configuration { }
+
+ addprojectflags()
+ flags {
+ "NoManifest",
+ "Symbols", -- always include minimum symbols for executables
+ }
+
+ if _OPTIONS["SYMBOLS"] then
+ configuration { "mingw*" }
+ postbuildcommands {
+ "$(SILENT) echo Dumping symbols.",
+ "$(SILENT) objdump --section=.text --line-numbers --syms --demangle $(TARGET) >$(subst .exe,.sym,$(TARGET))"
+ }
+ end
+
+ configuration { "vs*" }
+ flags {
+ "Unicode",
+ }
+
+ configuration { "winstore*" }
+ -- Windows Required Files
+ files {
+ -- Manifest file
+ MAME_DIR .. "scripts/resources/uwp/Package.appxmanifest",
+ }
+
+ configuration { "winstore*" }
+ files {
+ MAME_DIR .. "scripts/resources/uwp/assets/*.png"
+ }
+ configuration "**/scripts/resources/uwp/assets/*.png"
+ flags { "DeploymentContent" }
+
+ -- Effects and Shaders
+ configuration { "winstore*" }
+ files {
+ MAME_DIR .. "artwork/*",
+ MAME_DIR .. "artwork/**/*",
+ MAME_DIR .. "bgfx/*",
+ MAME_DIR .. "bgfx/**/*",
+ MAME_DIR .. "hash/*",
+ MAME_DIR .. "language/*",
+ MAME_DIR .. "language/**/*",
+ MAME_DIR .. "plugins/*",
+ MAME_DIR .. "plugins/**/*",
+ }
+ configuration "**/*"
+ flags { "DeploymentContent" }
+
+ configuration { "x64", "Release" }
+ targetsuffix "64"
+ if _OPTIONS["PROFILE"] then
+ targetsuffix "64p"
+ end
+
+ configuration { "x64", "Debug" }
+ targetsuffix "64d"
+ if _OPTIONS["PROFILE"] then
+ targetsuffix "64dp"
+ end
+
+ configuration { "x32", "Release" }
+ targetsuffix ""
+ if _OPTIONS["PROFILE"] then
+ targetsuffix "p"
+ end
+
+ configuration { "x32", "Debug" }
+ targetsuffix "d"
+ if _OPTIONS["PROFILE"] then
+ targetsuffix "dp"
+ end
+
+ configuration { "Native", "Release" }
+ targetsuffix ""
+ if _OPTIONS["PROFILE"] then
+ targetsuffix "p"
+ end
+
+ configuration { "Native", "Debug" }
+ targetsuffix "d"
+ if _OPTIONS["PROFILE"] then
+ targetsuffix "dp"
+ end
+
+ configuration { "mingw*" or "vs*" }
+ targetextension ".exe"
+
+ configuration { "rpi" }
+ targetextension ""
+
+ configuration { "asmjs" }
+ targetextension ".bc"
+ if os.getenv("EMSCRIPTEN") then
+ local emccopts = ""
+ .. " -O" .. _OPTIONS["OPTIMIZE"]
+ .. " -s USE_SDL=2"
+ .. " -s USE_SDL_TTF=2"
+ .. " --memory-init-file 0"
+ .. " -s ALLOW_MEMORY_GROWTH=0"
+ .. " -s TOTAL_MEMORY=268435456"
+ .. " -s DISABLE_EXCEPTION_CATCHING=2"
+ .. " -s EXCEPTION_CATCHING_WHITELIST='[\"__ZN15running_machine17start_all_devicesEv\",\"__ZN12cli_frontend7executeEiPPc\"]'"
+ .. " -s EXPORTED_FUNCTIONS=\"['_main', '_malloc', '__Z14js_get_machinev', '__Z9js_get_uiv', '__Z12js_get_soundv', '__ZN15mame_ui_manager12set_show_fpsEb', '__ZNK15mame_ui_manager8show_fpsEv', '__ZN13sound_manager4muteEbh', '_SDL_PauseAudio', '_SDL_SendKeyboardKey']\""
+ .. " --pre-js " .. _MAKE.esc(MAME_DIR) .. "src/osd/modules/sound/js_sound.js"
+ .. " --post-js " .. _MAKE.esc(MAME_DIR) .. "scripts/resources/emscripten/emscripten_post.js"
+ .. " --embed-file " .. _MAKE.esc(MAME_DIR) .. "bgfx/chains@bgfx/chains"
+ .. " --embed-file " .. _MAKE.esc(MAME_DIR) .. "bgfx/effects@bgfx/effects"
+ .. " --embed-file " .. _MAKE.esc(MAME_DIR) .. "bgfx/shaders/essl@bgfx/shaders/essl"
+ .. " --embed-file " .. _MAKE.esc(MAME_DIR) .. "artwork/slot-mask.png@artwork/slot-mask.png"
+
+ if _OPTIONS["SYMBOLS"]~=nil and _OPTIONS["SYMBOLS"]~="0" then
+ emccopts = emccopts
+ .. " -g" .. _OPTIONS["SYMLEVEL"]
+ .. " -s DEMANGLE_SUPPORT=1"
+ end
+
+ if _OPTIONS["WEBASSEMBLY"] then
+ emccopts = emccopts
+ .. " -s BINARYEN=1"
+ end
+
+ if _OPTIONS["ARCHOPTS"] then
+ emccopts = emccopts .. " " .. _OPTIONS["ARCHOPTS"]
+ end
+
+ postbuildcommands {
+ os.getenv("EMSCRIPTEN") .. "/emcc " .. emccopts .. " $(TARGET) -o " .. _MAKE.esc(MAME_DIR) .. _OPTIONS["target"] .. _OPTIONS["subtarget"] .. ".js",
+ }
+ end
+
+ configuration { }
+
+ if _OPTIONS["targetos"]=="android" then
+ includedirs {
+ MAME_DIR .. "3rdparty/SDL2/include",
+ }
+
+ files {
+ MAME_DIR .. "3rdparty/SDL2/src/main/android/SDL_android_main.c",
+ }
+ targetsuffix ""
+ if _OPTIONS["SEPARATE_BIN"]~="1" then
+ if _OPTIONS["PLATFORM"]=="arm" then
+ targetdir(MAME_DIR .. "android-project/app/src/main/libs/armeabi-v7a")
+ end
+ if _OPTIONS["PLATFORM"]=="arm64" then
+ targetdir(MAME_DIR .. "android-project/app/src/main/libs/arm64-v8a")
+ end
+ if _OPTIONS["PLATFORM"]=="mips" then
+ targetdir(MAME_DIR .. "android-project/app/src/main/libs/mips")
+ end
+ if _OPTIONS["PLATFORM"]=="mips64" then
+ targetdir(MAME_DIR .. "android-project/app/src/main/libs/mips64")
+ end
+ if _OPTIONS["PLATFORM"]=="x86" then
+ targetdir(MAME_DIR .. "android-project/app/src/main/libs/x86")
+ end
+ if _OPTIONS["PLATFORM"]=="x64" then
+ targetdir(MAME_DIR .. "android-project/app/src/main/libs/x86_64")
+ end
+ end
+ else
+ if _OPTIONS["SEPARATE_BIN"]~="1" then
+ targetdir(MAME_DIR)
+ end
+ end
+
+if (STANDALONE~=true) then
+ findfunction("linkProjects_" .. _OPTIONS["target"] .. "_" .. _OPTIONS["subtarget"])(_OPTIONS["target"], _OPTIONS["subtarget"])
+end
+ links {
+ "osd_" .. _OPTIONS["osd"],
+ }
+ links {
+ "qtdbg_" .. _OPTIONS["osd"],
+ }
+if (STANDALONE~=true) then
+ links {
+ "frontend",
+ }
+end
+if (MACHINES["NETLIST"]~=null) then
+ links {
+ "netlist",
+ }
+end
+ links {
+ "optional",
+ "emu",
+ }
+--if (STANDALONE~=true) then
+ links {
+ "formats",
+ }
+--end
+if #disasm_files > 0 then
+ links {
+ "dasm",
+ }
+end
+ links {
+ "utils",
+ ext_lib("expat"),
+ "softfloat",
+ ext_lib("jpeg"),
+ "7z",
+ }
+if (STANDALONE~=true) then
+ links {
+ ext_lib("lua"),
+ "lualibs",
+ }
+if (_OPTIONS["osd"] ~= "uwp") then
+ links {
+ "linenoise-ng",
+ }
+end
+end
+ links {
+ ext_lib("zlib"),
+ ext_lib("flac"),
+ ext_lib("utf8proc"),
+ }
+if (STANDALONE~=true) then
+ links {
+ ext_lib("sqlite3"),
+ }
+end
+
+ if _OPTIONS["NO_USE_PORTAUDIO"]~="1" then
+ links {
+ ext_lib("portaudio"),
+ }
+ if _OPTIONS["targetos"]=="windows" then
+ links {
+ "setupapi",
+ }
+ end
+ end
+ if _OPTIONS["NO_USE_MIDI"]~="1" then
+ links {
+ ext_lib("portmidi"),
+ }
+ end
+ links {
+ "bgfx",
+ "bx",
+ "ocore_" .. _OPTIONS["osd"],
+ }
+
+ override_resources = false;
+
+ maintargetosdoptions(_target,_subtarget)
+
+ includedirs {
+ MAME_DIR .. "src/osd",
+ MAME_DIR .. "src/emu",
+ MAME_DIR .. "src/devices",
+ MAME_DIR .. "src/" .. _target,
+ MAME_DIR .. "src/lib",
+ MAME_DIR .. "src/lib/util",
+ MAME_DIR .. "3rdparty",
+ GEN_DIR .. _target .. "/layout",
+ GEN_DIR .. "resource",
+ ext_includedir("zlib"),
+ ext_includedir("flac"),
+ }
+
+
+if (STANDALONE==true) then
+ standalone();
+end
+
+if (STANDALONE~=true) then
+ if _OPTIONS["targetos"]=="macosx" and (not override_resources) then
+ linkoptions {
+ "-sectcreate __TEXT __info_plist " .. _MAKE.esc(GEN_DIR) .. "resource/" .. _subtarget .. "-Info.plist"
+ }
+ custombuildtask {
+ { GEN_DIR .. "version.cpp" , GEN_DIR .. "resource/" .. _subtarget .. "-Info.plist", { MAME_DIR .. "scripts/build/verinfo.py" }, {"@echo Emitting " .. _subtarget .. "-Info.plist" .. "...", PYTHON .. " $(1) -p -b " .. _subtarget .. " $(<) > $(@)" }},
+ }
+ dependency {
+ { "$(TARGET)" , GEN_DIR .. "resource/" .. _subtarget .. "-Info.plist", true },
+ }
+
+ end
+ local rctarget = _subtarget
+
+ if _OPTIONS["targetos"]=="windows" and (not override_resources) then
+ rcfile = MAME_DIR .. "scripts/resources/windows/" .. _subtarget .. "/" .. rctarget ..".rc"
+ if os.isfile(rcfile) then
+ files {
+ rcfile,
+ }
+ dependency {
+ { "$(OBJDIR)/".._subtarget ..".res" , GEN_DIR .. "resource/" .. rctarget .. "vers.rc", true },
+ }
+ else
+ rctarget = "mame"
+ files {
+ MAME_DIR .. "scripts/resources/windows/mame/mame.rc",
+ }
+ dependency {
+ { "$(OBJDIR)/mame.res" , GEN_DIR .. "resource/" .. rctarget .. "vers.rc", true },
+ }
+ end
+ end
+
+ local mainfile = MAME_DIR .. "src/".._target .."/" .. _subtarget ..".cpp"
+ if not os.isfile(mainfile) then
+ mainfile = MAME_DIR .. "src/".._target .."/" .. _target ..".cpp"
+ end
+ files {
+ mainfile,
+ MAME_DIR .. "src/version.cpp",
+ GEN_DIR .. _target .. "/" .. _subtarget .."/drivlist.cpp",
+ }
+
+ if (_OPTIONS["SOURCES"] == nil) then
+
+ if os.isfile(MAME_DIR .. "src/".._target .."/" .. _subtarget ..".flt") then
+ dependency {
+ {
+ GEN_DIR .. _target .. "/" .. _subtarget .."/drivlist.cpp", MAME_DIR .. "src/".._target .."/" .. _target ..".lst", true },
+ }
+ custombuildtask {
+ { MAME_DIR .. "src/".._target .."/" .. _subtarget ..".flt" , GEN_DIR .. _target .. "/" .. _subtarget .."/drivlist.cpp", { MAME_DIR .. "scripts/build/makelist.py", MAME_DIR .. "src/".._target .."/" .. _target ..".lst" }, {"@echo Building driver list...", PYTHON .. " $(1) $(2) $(<) > $(@)" }},
+ }
+ else
+ if os.isfile(MAME_DIR .. "src/".._target .."/" .. _subtarget ..".lst") then
+ custombuildtask {
+ { MAME_DIR .. "src/".._target .."/" .. _subtarget ..".lst" , GEN_DIR .. _target .. "/" .. _subtarget .."/drivlist.cpp", { MAME_DIR .. "scripts/build/makelist.py" }, {"@echo Building driver list...", PYTHON .. " $(1) $(<) > $(@)" }},
+ }
+ else
+ dependency {
+ {
+ GEN_DIR .. _target .. "/" .. _target .."/drivlist.cpp", MAME_DIR .. "src/".._target .."/" .. _target ..".lst", true },
+ }
+ custombuildtask {
+ { MAME_DIR .. "src/".._target .."/" .. _target ..".lst" , GEN_DIR .. _target .. "/" .. _target .."/drivlist.cpp", { MAME_DIR .. "scripts/build/makelist.py" }, {"@echo Building driver list...", PYTHON .. " $(1) $(<) > $(@)" }},
+ }
+ end
+ end
+ end
+
+ if (_OPTIONS["SOURCES"] ~= nil) then
+ dependency {
+ {
+ GEN_DIR .. _target .. "/" .. _subtarget .."/drivlist.cpp", MAME_DIR .. "src/".._target .."/" .. _target ..".lst", true },
+ }
+ custombuildtask {
+ { GEN_DIR .. _target .."/" .. _subtarget ..".flt" , GEN_DIR .. _target .. "/" .. _subtarget .."/drivlist.cpp", { MAME_DIR .. "scripts/build/makelist.py", MAME_DIR .. "src/".._target .."/" .. _target ..".lst" }, {"@echo Building driver list...", PYTHON .. " $(1) $(2) $(<) > $(@)" }},
+ }
+ end
+
+ configuration { "mingw*" }
+ custombuildtask {
+ { GEN_DIR .. "version.cpp" , GEN_DIR .. "resource/" .. rctarget .. "vers.rc", { MAME_DIR .. "scripts/build/verinfo.py" }, {"@echo Emitting " .. rctarget .. "vers.rc" .. "...", PYTHON .. " $(1) -r -b " .. rctarget .. " $(<) > $(@)" }},
+ }
+
+ configuration { "vs*" }
+ prebuildcommands {
+ "mkdir " .. path.translate(GEN_DIR .. "resource/","\\") .. " 2>NUL",
+ "@echo Emitting ".. rctarget .. "vers.rc...",
+ PYTHON .. " " .. path.translate(MAME_DIR .. "scripts/build/verinfo.py","\\") .. " -r -b " .. rctarget .. " " .. path.translate(GEN_DIR .. "version.cpp","\\") .. " > " .. path.translate(GEN_DIR .. "resource/" .. rctarget .. "vers.rc", "\\") ,
+ }
+end
+
+ configuration { }
+
+ if _OPTIONS["DEBUG_DIR"]~=nil then
+ debugdir(_OPTIONS["DEBUG_DIR"])
+ else
+ debugdir (MAME_DIR)
+ end
+ if _OPTIONS["DEBUG_ARGS"]~=nil then
+ debugargs (_OPTIONS["DEBUG_ARGS"])
+ else
+ debugargs ("-window")
+ end
+
+end
diff --git a/docs/release/scripts/src/mame/frontend.lua b/docs/release/scripts/src/mame/frontend.lua
new file mode 100644
index 00000000000..3af66578ad6
--- /dev/null
+++ b/docs/release/scripts/src/mame/frontend.lua
@@ -0,0 +1,171 @@
+-- license:BSD-3-Clause
+-- copyright-holders:MAMEdev Team
+
+---------------------------------------------------------------------------
+--
+-- frontend.lua
+--
+-- Rules for building frontend
+--
+---------------------------------------------------------------------------
+
+project ("frontend")
+uuid ("e98e14c4-82a4-4988-ba29-01c90c817ab8")
+kind (LIBTYPE)
+
+addprojectflags()
+precompiledheaders()
+
+if (_OPTIONS["targetos"] ~= "asmjs") then
+ options {
+ "ArchiveSplit",
+ }
+end
+
+includedirs {
+ MAME_DIR .. "src/osd",
+ MAME_DIR .. "src/emu",
+ MAME_DIR .. "src/frontend/mame",
+ MAME_DIR .. "src/devices", -- till deps are fixed
+ MAME_DIR .. "src/lib",
+ MAME_DIR .. "src/lib/util",
+ MAME_DIR .. "3rdparty/rapidjson/include",
+ MAME_DIR .. "3rdparty",
+ GEN_DIR .. "emu",
+ GEN_DIR .. "emu/layout",
+}
+
+includedirs {
+ ext_includedir("expat"),
+ ext_includedir("lua"),
+ ext_includedir("zlib"),
+ ext_includedir("flac"),
+ MAME_DIR .. "3rdparty/asio/include",
+}
+
+configuration { "vs*" }
+ buildoptions {
+ "/bigobj",
+ }
+configuration { }
+if (_OPTIONS["targetos"] == "windows") then
+ defines {
+ "UI_WINDOWS",
+ }
+end
+
+if (_OPTIONS["osd"] == "sdl") then
+ defines {
+ "UI_SDL",
+ }
+end
+
+files {
+ MAME_DIR .. "src/frontend/mame/audit.cpp",
+ MAME_DIR .. "src/frontend/mame/audit.h",
+ MAME_DIR .. "src/frontend/mame/cheat.cpp",
+ MAME_DIR .. "src/frontend/mame/cheat.h",
+ MAME_DIR .. "src/frontend/mame/clifront.cpp",
+ MAME_DIR .. "src/frontend/mame/clifront.h",
+ MAME_DIR .. "src/frontend/mame/info.cpp",
+ MAME_DIR .. "src/frontend/mame/info.h",
+ MAME_DIR .. "src/frontend/mame/language.cpp",
+ MAME_DIR .. "src/frontend/mame/language.h",
+ MAME_DIR .. "src/frontend/mame/luaengine.cpp",
+ MAME_DIR .. "src/frontend/mame/luaengine.h",
+ MAME_DIR .. "src/frontend/mame/mame.cpp",
+ MAME_DIR .. "src/frontend/mame/mame.h",
+ MAME_DIR .. "src/frontend/mame/mameopts.cpp",
+ MAME_DIR .. "src/frontend/mame/mameopts.h",
+ MAME_DIR .. "src/frontend/mame/media_ident.cpp",
+ MAME_DIR .. "src/frontend/mame/media_ident.h",
+ MAME_DIR .. "src/frontend/mame/pluginopts.cpp",
+ MAME_DIR .. "src/frontend/mame/pluginopts.h",
+ MAME_DIR .. "src/frontend/mame/ui/ui.cpp",
+ MAME_DIR .. "src/frontend/mame/ui/ui.h",
+ MAME_DIR .. "src/frontend/mame/ui/text.cpp",
+ MAME_DIR .. "src/frontend/mame/ui/text.h",
+ MAME_DIR .. "src/frontend/mame/ui/devctrl.h",
+ MAME_DIR .. "src/frontend/mame/ui/menu.cpp",
+ MAME_DIR .. "src/frontend/mame/ui/menu.h",
+ MAME_DIR .. "src/frontend/mame/ui/submenu.cpp",
+ MAME_DIR .. "src/frontend/mame/ui/submenu.h",
+ MAME_DIR .. "src/frontend/mame/ui/mainmenu.cpp",
+ MAME_DIR .. "src/frontend/mame/ui/mainmenu.h",
+ MAME_DIR .. "src/frontend/mame/ui/miscmenu.cpp",
+ MAME_DIR .. "src/frontend/mame/ui/miscmenu.h",
+ MAME_DIR .. "src/frontend/mame/ui/barcode.cpp",
+ MAME_DIR .. "src/frontend/mame/ui/barcode.h",
+ MAME_DIR .. "src/frontend/mame/ui/cheatopt.cpp",
+ MAME_DIR .. "src/frontend/mame/ui/cheatopt.h",
+ MAME_DIR .. "src/frontend/mame/ui/pluginopt.cpp",
+ MAME_DIR .. "src/frontend/mame/ui/pluginopt.h",
+ MAME_DIR .. "src/frontend/mame/ui/devopt.cpp",
+ MAME_DIR .. "src/frontend/mame/ui/devopt.h",
+ MAME_DIR .. "src/frontend/mame/ui/filemngr.cpp",
+ MAME_DIR .. "src/frontend/mame/ui/filemngr.h",
+ MAME_DIR .. "src/frontend/mame/ui/filesel.cpp",
+ MAME_DIR .. "src/frontend/mame/ui/filesel.h",
+ MAME_DIR .. "src/frontend/mame/ui/filecreate.cpp",
+ MAME_DIR .. "src/frontend/mame/ui/filecreate.h",
+ MAME_DIR .. "src/frontend/mame/ui/floppycntrl.cpp",
+ MAME_DIR .. "src/frontend/mame/ui/floppycntrl.h",
+ MAME_DIR .. "src/frontend/mame/ui/imgcntrl.cpp",
+ MAME_DIR .. "src/frontend/mame/ui/imgcntrl.h",
+ MAME_DIR .. "src/frontend/mame/ui/info.cpp",
+ MAME_DIR .. "src/frontend/mame/ui/info.h",
+ MAME_DIR .. "src/frontend/mame/ui/info_pty.cpp",
+ MAME_DIR .. "src/frontend/mame/ui/info_pty.h",
+ MAME_DIR .. "src/frontend/mame/ui/inputmap.cpp",
+ MAME_DIR .. "src/frontend/mame/ui/inputmap.h",
+ MAME_DIR .. "src/frontend/mame/ui/selmenu.cpp",
+ MAME_DIR .. "src/frontend/mame/ui/selmenu.h",
+ MAME_DIR .. "src/frontend/mame/ui/sliders.cpp",
+ MAME_DIR .. "src/frontend/mame/ui/sliders.h",
+ MAME_DIR .. "src/frontend/mame/ui/slotopt.cpp",
+ MAME_DIR .. "src/frontend/mame/ui/slotopt.h",
+ MAME_DIR .. "src/frontend/mame/ui/swlist.cpp",
+ MAME_DIR .. "src/frontend/mame/ui/swlist.h",
+ MAME_DIR .. "src/frontend/mame/ui/tapectrl.cpp",
+ MAME_DIR .. "src/frontend/mame/ui/tapectrl.h",
+ MAME_DIR .. "src/frontend/mame/ui/videoopt.cpp",
+ MAME_DIR .. "src/frontend/mame/ui/videoopt.h",
+ MAME_DIR .. "src/frontend/mame/ui/viewgfx.cpp",
+ MAME_DIR .. "src/frontend/mame/ui/viewgfx.h",
+ MAME_DIR .. "src/frontend/mame/ui/auditmenu.cpp",
+ MAME_DIR .. "src/frontend/mame/ui/auditmenu.h",
+ MAME_DIR .. "src/frontend/mame/ui/custmenu.cpp",
+ MAME_DIR .. "src/frontend/mame/ui/custmenu.h",
+ MAME_DIR .. "src/frontend/mame/ui/custui.cpp",
+ MAME_DIR .. "src/frontend/mame/ui/custui.h",
+ MAME_DIR .. "src/frontend/mame/ui/datmenu.cpp",
+ MAME_DIR .. "src/frontend/mame/ui/datmenu.h",
+ MAME_DIR .. "src/frontend/mame/ui/defimg.ipp",
+ MAME_DIR .. "src/frontend/mame/ui/dirmenu.cpp",
+ MAME_DIR .. "src/frontend/mame/ui/dirmenu.h",
+ MAME_DIR .. "src/frontend/mame/ui/icorender.h",
+ MAME_DIR .. "src/frontend/mame/ui/inifile.cpp",
+ MAME_DIR .. "src/frontend/mame/ui/inifile.h",
+ MAME_DIR .. "src/frontend/mame/ui/miscmenu.cpp",
+ MAME_DIR .. "src/frontend/mame/ui/miscmenu.h",
+ MAME_DIR .. "src/frontend/mame/ui/moptions.cpp",
+ MAME_DIR .. "src/frontend/mame/ui/moptions.h",
+ MAME_DIR .. "src/frontend/mame/ui/optsmenu.cpp",
+ MAME_DIR .. "src/frontend/mame/ui/optsmenu.h",
+ MAME_DIR .. "src/frontend/mame/ui/selector.cpp",
+ MAME_DIR .. "src/frontend/mame/ui/selector.h",
+ MAME_DIR .. "src/frontend/mame/ui/selgame.cpp",
+ MAME_DIR .. "src/frontend/mame/ui/selgame.h",
+ MAME_DIR .. "src/frontend/mame/ui/simpleselgame.cpp",
+ MAME_DIR .. "src/frontend/mame/ui/simpleselgame.h",
+ MAME_DIR .. "src/frontend/mame/ui/selsoft.cpp",
+ MAME_DIR .. "src/frontend/mame/ui/selsoft.h",
+ MAME_DIR .. "src/frontend/mame/ui/sndmenu.cpp",
+ MAME_DIR .. "src/frontend/mame/ui/sndmenu.h",
+ MAME_DIR .. "src/frontend/mame/ui/starimg.ipp",
+ MAME_DIR .. "src/frontend/mame/ui/toolbar.ipp",
+ MAME_DIR .. "src/frontend/mame/ui/utils.cpp",
+ MAME_DIR .. "src/frontend/mame/ui/utils.h",
+ MAME_DIR .. "src/frontend/mame/ui/widgets.cpp",
+ MAME_DIR .. "src/frontend/mame/ui/widgets.h",
+}
diff --git a/docs/release/scripts/src/netlist.lua b/docs/release/scripts/src/netlist.lua
new file mode 100644
index 00000000000..a484644306b
--- /dev/null
+++ b/docs/release/scripts/src/netlist.lua
@@ -0,0 +1,218 @@
+-- license:BSD-3-Clause
+-- copyright-holders:MAMEdev Team
+
+---------------------------------------------------------------------------
+--
+-- netlist.lua
+--
+-- Rules for building netlist cores
+--
+---------------------------------------------------------------------------
+
+project "netlist"
+ uuid "665ef8ac-2a4c-4c3e-a05f-fd1e5db11de9"
+ kind (LIBTYPE)
+
+ if _OPTIONS["targetos"]=="windows" then
+ configuration { "mingw* or vs*" }
+ defines {
+ "UNICODE",
+ "_UNICODE",
+ "_WIN32_WINNT=0x0501",
+ "WIN32_LEAN_AND_MEAN",
+ "NOMINMAX",
+ }
+ end
+
+ addprojectflags()
+
+ defines {
+ "__STDC_CONSTANT_MACROS",
+ }
+
+ includedirs {
+ MAME_DIR .. "src/lib",
+ }
+
+ files {
+ MAME_DIR .. "src/lib/netlist/nl_base.cpp",
+ MAME_DIR .. "src/lib/netlist/nl_base.h",
+ MAME_DIR .. "src/lib/netlist/nl_config.h",
+ MAME_DIR .. "src/lib/netlist/nl_errstr.h",
+ MAME_DIR .. "src/lib/netlist/nl_dice_compat.h",
+ MAME_DIR .. "src/lib/netlist/nl_factory.cpp",
+ MAME_DIR .. "src/lib/netlist/nl_factory.h",
+ MAME_DIR .. "src/lib/netlist/nl_lists.h",
+ MAME_DIR .. "src/lib/netlist/nl_parser.cpp",
+ MAME_DIR .. "src/lib/netlist/nl_parser.h",
+ MAME_DIR .. "src/lib/netlist/nl_setup.cpp",
+ MAME_DIR .. "src/lib/netlist/nl_setup.h",
+ MAME_DIR .. "src/lib/netlist/nl_time.h",
+ MAME_DIR .. "src/lib/netlist/plib/pconfig.h",
+ MAME_DIR .. "src/lib/netlist/plib/palloc.cpp",
+ MAME_DIR .. "src/lib/netlist/plib/palloc.h",
+ MAME_DIR .. "src/lib/netlist/plib/pchrono.cpp",
+ MAME_DIR .. "src/lib/netlist/plib/pchrono.h",
+ MAME_DIR .. "src/lib/netlist/plib/pexception.cpp",
+ MAME_DIR .. "src/lib/netlist/plib/pexception.h",
+ MAME_DIR .. "src/lib/netlist/plib/pfunction.cpp",
+ MAME_DIR .. "src/lib/netlist/plib/pfunction.h",
+ MAME_DIR .. "src/lib/netlist/plib/pfmtlog.cpp",
+ MAME_DIR .. "src/lib/netlist/plib/pfmtlog.h",
+ MAME_DIR .. "src/lib/netlist/plib/plists.h",
+ MAME_DIR .. "src/lib/netlist/plib/pdynlib.cpp",
+ MAME_DIR .. "src/lib/netlist/plib/pdynlib.h",
+ MAME_DIR .. "src/lib/netlist/plib/pmain.cpp",
+ MAME_DIR .. "src/lib/netlist/plib/pmain.h",
+ MAME_DIR .. "src/lib/netlist/plib/poptions.cpp",
+ MAME_DIR .. "src/lib/netlist/plib/poptions.h",
+ MAME_DIR .. "src/lib/netlist/plib/pparser.cpp",
+ MAME_DIR .. "src/lib/netlist/plib/pparser.h",
+ MAME_DIR .. "src/lib/netlist/plib/ppmf.h",
+ MAME_DIR .. "src/lib/netlist/plib/pstate.cpp",
+ MAME_DIR .. "src/lib/netlist/plib/pstate.h",
+ MAME_DIR .. "src/lib/netlist/plib/pstring.cpp",
+ MAME_DIR .. "src/lib/netlist/plib/pstring.h",
+ MAME_DIR .. "src/lib/netlist/plib/pstring.cpp",
+ MAME_DIR .. "src/lib/netlist/plib/pstring.h",
+ MAME_DIR .. "src/lib/netlist/plib/pstream.cpp",
+ MAME_DIR .. "src/lib/netlist/plib/pstream.h",
+ MAME_DIR .. "src/lib/netlist/plib/ptypes.h",
+ MAME_DIR .. "src/lib/netlist/plib/putil.cpp",
+ MAME_DIR .. "src/lib/netlist/plib/putil.h",
+ MAME_DIR .. "src/lib/netlist/tools/nl_convert.cpp",
+ MAME_DIR .. "src/lib/netlist/tools/nl_convert.h",
+ MAME_DIR .. "src/lib/netlist/analog/nld_bjt.cpp",
+ MAME_DIR .. "src/lib/netlist/analog/nld_bjt.h",
+ MAME_DIR .. "src/lib/netlist/analog/nlid_fourterm.cpp",
+ MAME_DIR .. "src/lib/netlist/analog/nlid_fourterm.h",
+ MAME_DIR .. "src/lib/netlist/analog/nld_fourterm.h",
+ MAME_DIR .. "src/lib/netlist/analog/nld_switches.cpp",
+ MAME_DIR .. "src/lib/netlist/analog/nld_switches.h",
+ MAME_DIR .. "src/lib/netlist/analog/nlid_twoterm.cpp",
+ MAME_DIR .. "src/lib/netlist/analog/nlid_twoterm.h",
+ MAME_DIR .. "src/lib/netlist/analog/nld_twoterm.h",
+ MAME_DIR .. "src/lib/netlist/analog/nld_opamps.cpp",
+ MAME_DIR .. "src/lib/netlist/analog/nld_opamps.h",
+ MAME_DIR .. "src/lib/netlist/solver/nld_solver.cpp",
+ MAME_DIR .. "src/lib/netlist/solver/nld_solver.h",
+ MAME_DIR .. "src/lib/netlist/solver/nld_matrix_solver.cpp",
+ MAME_DIR .. "src/lib/netlist/solver/nld_matrix_solver.h",
+ MAME_DIR .. "src/lib/netlist/solver/nld_ms_direct.h",
+ MAME_DIR .. "src/lib/netlist/solver/nld_ms_direct1.h",
+ MAME_DIR .. "src/lib/netlist/solver/nld_ms_direct2.h",
+ MAME_DIR .. "src/lib/netlist/solver/nld_ms_sor.h",
+ MAME_DIR .. "src/lib/netlist/solver/nld_ms_sor_mat.h",
+ MAME_DIR .. "src/lib/netlist/solver/nld_ms_gmres.h",
+ MAME_DIR .. "src/lib/netlist/solver/mat_cr.h",
+ MAME_DIR .. "src/lib/netlist/solver/nld_ms_sm.h",
+ MAME_DIR .. "src/lib/netlist/solver/nld_ms_w.h",
+ MAME_DIR .. "src/lib/netlist/solver/nld_ms_direct_lu.h",
+ MAME_DIR .. "src/lib/netlist/solver/vector_base.h",
+ MAME_DIR .. "src/lib/netlist/devices/nld_2102A.cpp",
+ MAME_DIR .. "src/lib/netlist/devices/nld_2102A.h",
+ MAME_DIR .. "src/lib/netlist/devices/nld_2716.cpp",
+ MAME_DIR .. "src/lib/netlist/devices/nld_2716.h",
+ MAME_DIR .. "src/lib/netlist/devices/nld_4020.cpp",
+ MAME_DIR .. "src/lib/netlist/devices/nld_4020.h",
+ MAME_DIR .. "src/lib/netlist/devices/nld_4066.cpp",
+ MAME_DIR .. "src/lib/netlist/devices/nld_4066.h",
+ MAME_DIR .. "src/lib/netlist/devices/nld_4316.cpp",
+ MAME_DIR .. "src/lib/netlist/devices/nld_4316.h",
+ MAME_DIR .. "src/lib/netlist/devices/nld_7448.cpp",
+ MAME_DIR .. "src/lib/netlist/devices/nld_7448.h",
+ MAME_DIR .. "src/lib/netlist/devices/nld_7450.cpp",
+ MAME_DIR .. "src/lib/netlist/devices/nld_7450.h",
+ MAME_DIR .. "src/lib/netlist/devices/nld_7473.cpp",
+ MAME_DIR .. "src/lib/netlist/devices/nld_7473.h",
+ MAME_DIR .. "src/lib/netlist/devices/nld_7474.cpp",
+ MAME_DIR .. "src/lib/netlist/devices/nld_7474.h",
+ MAME_DIR .. "src/lib/netlist/devices/nld_7475.cpp",
+ MAME_DIR .. "src/lib/netlist/devices/nld_7475.h",
+ MAME_DIR .. "src/lib/netlist/devices/nld_7483.cpp",
+ MAME_DIR .. "src/lib/netlist/devices/nld_7483.h",
+ MAME_DIR .. "src/lib/netlist/devices/nld_7485.cpp",
+ MAME_DIR .. "src/lib/netlist/devices/nld_7485.h",
+ MAME_DIR .. "src/lib/netlist/devices/nld_7490.cpp",
+ MAME_DIR .. "src/lib/netlist/devices/nld_7490.h",
+ MAME_DIR .. "src/lib/netlist/devices/nld_7493.cpp",
+ MAME_DIR .. "src/lib/netlist/devices/nld_7493.h",
+ MAME_DIR .. "src/lib/netlist/devices/nld_74107.cpp",
+ MAME_DIR .. "src/lib/netlist/devices/nld_74107.h",
+ MAME_DIR .. "src/lib/netlist/devices/nld_74123.cpp",
+ MAME_DIR .. "src/lib/netlist/devices/nld_74123.h",
+ MAME_DIR .. "src/lib/netlist/devices/nld_74153.cpp",
+ MAME_DIR .. "src/lib/netlist/devices/nld_74153.h",
+ MAME_DIR .. "src/lib/netlist/devices/nld_74161.cpp",
+ MAME_DIR .. "src/lib/netlist/devices/nld_74161.h",
+ MAME_DIR .. "src/lib/netlist/devices/nld_74164.cpp",
+ MAME_DIR .. "src/lib/netlist/devices/nld_74164.h",
+ MAME_DIR .. "src/lib/netlist/devices/nld_74165.cpp",
+ MAME_DIR .. "src/lib/netlist/devices/nld_74165.h",
+ MAME_DIR .. "src/lib/netlist/devices/nld_74166.cpp",
+ MAME_DIR .. "src/lib/netlist/devices/nld_74166.h",
+ MAME_DIR .. "src/lib/netlist/devices/nld_74174.cpp",
+ MAME_DIR .. "src/lib/netlist/devices/nld_74174.h",
+ MAME_DIR .. "src/lib/netlist/devices/nld_74175.cpp",
+ MAME_DIR .. "src/lib/netlist/devices/nld_74175.h",
+ MAME_DIR .. "src/lib/netlist/devices/nld_74192.cpp",
+ MAME_DIR .. "src/lib/netlist/devices/nld_74192.h",
+ MAME_DIR .. "src/lib/netlist/devices/nld_74193.cpp",
+ MAME_DIR .. "src/lib/netlist/devices/nld_74193.h",
+ MAME_DIR .. "src/lib/netlist/devices/nld_74194.cpp",
+ MAME_DIR .. "src/lib/netlist/devices/nld_74194.h",
+ MAME_DIR .. "src/lib/netlist/devices/nld_74365.cpp",
+ MAME_DIR .. "src/lib/netlist/devices/nld_74365.h",
+ MAME_DIR .. "src/lib/netlist/devices/nld_74ls629.cpp",
+ MAME_DIR .. "src/lib/netlist/devices/nld_74ls629.h",
+ MAME_DIR .. "src/lib/netlist/devices/nld_82S16.cpp",
+ MAME_DIR .. "src/lib/netlist/devices/nld_82S16.h",
+ MAME_DIR .. "src/lib/netlist/devices/nld_82S115.cpp",
+ MAME_DIR .. "src/lib/netlist/devices/nld_82S115.h",
+ MAME_DIR .. "src/lib/netlist/devices/nld_82S123.cpp",
+ MAME_DIR .. "src/lib/netlist/devices/nld_82S123.h",
+ MAME_DIR .. "src/lib/netlist/devices/nld_82S126.cpp",
+ MAME_DIR .. "src/lib/netlist/devices/nld_82S126.h",
+ MAME_DIR .. "src/lib/netlist/devices/nld_9310.cpp",
+ MAME_DIR .. "src/lib/netlist/devices/nld_9310.h",
+ MAME_DIR .. "src/lib/netlist/devices/nld_9316.cpp",
+ MAME_DIR .. "src/lib/netlist/devices/nld_9316.h",
+ MAME_DIR .. "src/lib/netlist/devices/nld_9322.cpp",
+ MAME_DIR .. "src/lib/netlist/devices/nld_9322.h",
+ MAME_DIR .. "src/lib/netlist/devices/nld_am2847.cpp",
+ MAME_DIR .. "src/lib/netlist/devices/nld_am2847.h",
+ MAME_DIR .. "src/lib/netlist/devices/nld_dm9334.cpp",
+ MAME_DIR .. "src/lib/netlist/devices/nld_dm9334.h",
+ MAME_DIR .. "src/lib/netlist/devices/nld_ne555.cpp",
+ MAME_DIR .. "src/lib/netlist/devices/nld_ne555.h",
+ MAME_DIR .. "src/lib/netlist/devices/nld_mm5837.cpp",
+ MAME_DIR .. "src/lib/netlist/devices/nld_mm5837.h",
+ MAME_DIR .. "src/lib/netlist/devices/nld_r2r_dac.cpp",
+ MAME_DIR .. "src/lib/netlist/devices/nld_r2r_dac.h",
+ MAME_DIR .. "src/lib/netlist/devices/nld_tristate.cpp",
+ MAME_DIR .. "src/lib/netlist/devices/nld_tristate.h",
+ MAME_DIR .. "src/lib/netlist/devices/nld_legacy.cpp",
+ MAME_DIR .. "src/lib/netlist/devices/nld_legacy.h",
+ MAME_DIR .. "src/lib/netlist/devices/net_lib.cpp",
+ MAME_DIR .. "src/lib/netlist/devices/net_lib.h",
+ MAME_DIR .. "src/lib/netlist/devices/nld_log.cpp",
+ MAME_DIR .. "src/lib/netlist/devices/nld_log.h",
+ MAME_DIR .. "src/lib/netlist/devices/nld_system.cpp",
+ MAME_DIR .. "src/lib/netlist/devices/nld_system.h",
+ MAME_DIR .. "src/lib/netlist/devices/nlid_truthtable.cpp",
+ MAME_DIR .. "src/lib/netlist/devices/nlid_truthtable.h",
+ MAME_DIR .. "src/lib/netlist/devices/nlid_cmos.h",
+ MAME_DIR .. "src/lib/netlist/devices/nlid_system.h",
+ MAME_DIR .. "src/lib/netlist/devices/nlid_proxy.cpp",
+ MAME_DIR .. "src/lib/netlist/devices/nlid_proxy.h",
+ MAME_DIR .. "src/lib/netlist/macro/nlm_base.cpp",
+ MAME_DIR .. "src/lib/netlist/macro/nlm_base.h",
+ MAME_DIR .. "src/lib/netlist/macro/nlm_ttl74xx.cpp",
+ MAME_DIR .. "src/lib/netlist/macro/nlm_ttl74xx.h",
+ MAME_DIR .. "src/lib/netlist/macro/nlm_cd4xxx.cpp",
+ MAME_DIR .. "src/lib/netlist/macro/nlm_cd4xxx.h",
+ MAME_DIR .. "src/lib/netlist/macro/nlm_opamp.cpp",
+ MAME_DIR .. "src/lib/netlist/macro/nlm_opamp.h",
+ MAME_DIR .. "src/lib/netlist/macro/nlm_other.cpp",
+ MAME_DIR .. "src/lib/netlist/macro/nlm_other.h",
+}
diff --git a/docs/release/scripts/src/osd/modules.lua b/docs/release/scripts/src/osd/modules.lua
new file mode 100644
index 00000000000..79ecfed35a7
--- /dev/null
+++ b/docs/release/scripts/src/osd/modules.lua
@@ -0,0 +1,555 @@
+-- license:BSD-3-Clause
+-- copyright-holders:MAMEdev Team
+
+---------------------------------------------------------------------------
+--
+-- modules.lua
+--
+-- Rules for the building of modules
+--
+---------------------------------------------------------------------------
+
+function string.starts(String,Start)
+ return string.sub(String,1,string.len(Start))==Start
+end
+
+function addlibfromstring(str)
+ if (str==nil) then return end
+ for w in str:gmatch("%S+") do
+ if string.starts(w,"-l")==true then
+ links {
+ string.sub(w,3)
+ }
+ end
+ end
+end
+
+function addoptionsfromstring(str)
+ if (str==nil) then return end
+ for w in str:gmatch("%S+") do
+ if string.starts(w,"-l")==false then
+ linkoptions {
+ w
+ }
+ end
+ end
+end
+
+function pkgconfigcmd()
+ local pkgconfig = os.getenv("PKG_CONFIG")
+ if pkgconfig == nil then
+ return "pkg-config"
+ end
+ return pkgconfig
+end
+
+function osdmodulesbuild()
+
+ removeflags {
+ "SingleOutputDir",
+ }
+
+ files {
+ MAME_DIR .. "src/osd/osdnet.cpp",
+ MAME_DIR .. "src/osd/osdnet.h",
+ MAME_DIR .. "src/osd/watchdog.cpp",
+ MAME_DIR .. "src/osd/watchdog.h",
+ MAME_DIR .. "src/osd/modules/debugger/debug_module.h",
+ MAME_DIR .. "src/osd/modules/font/font_module.h",
+ MAME_DIR .. "src/osd/modules/midi/midi_module.h",
+ MAME_DIR .. "src/osd/modules/netdev/netdev_module.h",
+ MAME_DIR .. "src/osd/modules/sound/sound_module.h",
+ MAME_DIR .. "src/osd/modules/diagnostics/diagnostics_module.h",
+ MAME_DIR .. "src/osd/modules/monitor/monitor_module.h",
+ MAME_DIR .. "src/osd/modules/lib/osdobj_common.cpp",
+ MAME_DIR .. "src/osd/modules/lib/osdobj_common.h",
+ MAME_DIR .. "src/osd/modules/diagnostics/none.cpp",
+ MAME_DIR .. "src/osd/modules/diagnostics/diagnostics_win32.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/none.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/debugwin.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/debugimgui.cpp",
+ MAME_DIR .. "src/osd/modules/font/font_sdl.cpp",
+ MAME_DIR .. "src/osd/modules/font/font_windows.cpp",
+ MAME_DIR .. "src/osd/modules/font/font_dwrite.cpp",
+ MAME_DIR .. "src/osd/modules/font/font_osx.cpp",
+ MAME_DIR .. "src/osd/modules/font/font_none.cpp",
+ MAME_DIR .. "src/osd/modules/netdev/taptun.cpp",
+ MAME_DIR .. "src/osd/modules/netdev/pcap.cpp",
+ MAME_DIR .. "src/osd/modules/netdev/none.cpp",
+ MAME_DIR .. "src/osd/modules/midi/portmidi.cpp",
+ MAME_DIR .. "src/osd/modules/midi/none.cpp",
+ MAME_DIR .. "src/osd/modules/sound/js_sound.cpp",
+ MAME_DIR .. "src/osd/modules/sound/direct_sound.cpp",
+ MAME_DIR .. "src/osd/modules/sound/pa_sound.cpp",
+ MAME_DIR .. "src/osd/modules/sound/coreaudio_sound.cpp",
+ MAME_DIR .. "src/osd/modules/sound/sdl_sound.cpp",
+ MAME_DIR .. "src/osd/modules/sound/xaudio2_sound.cpp",
+ MAME_DIR .. "src/osd/modules/sound/none.cpp",
+ MAME_DIR .. "src/osd/modules/input/input_module.h",
+ MAME_DIR .. "src/osd/modules/input/input_common.cpp",
+ MAME_DIR .. "src/osd/modules/input/input_common.h",
+ MAME_DIR .. "src/osd/modules/input/input_dinput.cpp",
+ MAME_DIR .. "src/osd/modules/input/input_dinput.h",
+ MAME_DIR .. "src/osd/modules/input/input_none.cpp",
+ MAME_DIR .. "src/osd/modules/input/input_rawinput.cpp",
+ MAME_DIR .. "src/osd/modules/input/input_win32.cpp",
+ MAME_DIR .. "src/osd/modules/input/input_sdl.cpp",
+ MAME_DIR .. "src/osd/modules/input/input_sdlcommon.cpp",
+ MAME_DIR .. "src/osd/modules/input/input_sdlcommon.h",
+ MAME_DIR .. "src/osd/modules/input/input_x11.cpp",
+ MAME_DIR .. "src/osd/modules/input/input_windows.cpp",
+ MAME_DIR .. "src/osd/modules/input/input_windows.h",
+ MAME_DIR .. "src/osd/modules/input/input_xinput.cpp",
+ MAME_DIR .. "src/osd/modules/input/input_xinput.h",
+ MAME_DIR .. "src/osd/modules/input/input_winhybrid.cpp",
+ MAME_DIR .. "src/osd/modules/input/input_uwp.cpp",
+ MAME_DIR .. "src/osd/modules/output/output_module.h",
+ MAME_DIR .. "src/osd/modules/output/none.cpp",
+ MAME_DIR .. "src/osd/modules/output/console.cpp",
+ MAME_DIR .. "src/osd/modules/output/network.cpp",
+ MAME_DIR .. "src/osd/modules/output/win32_output.cpp",
+ MAME_DIR .. "src/osd/modules/output/win32_output.h",
+ MAME_DIR .. "src/osd/modules/monitor/monitor_common.h",
+ MAME_DIR .. "src/osd/modules/monitor/monitor_common.cpp",
+ MAME_DIR .. "src/osd/modules/monitor/monitor_win32.cpp",
+ MAME_DIR .. "src/osd/modules/monitor/monitor_dxgi.cpp",
+ MAME_DIR .. "src/osd/modules/monitor/monitor_sdl.cpp",
+ }
+ includedirs {
+ MAME_DIR .. "3rdparty/asio/include",
+ }
+
+ if _OPTIONS["targetos"]=="windows" then
+ includedirs {
+ MAME_DIR .. "3rdparty/winpcap/Include",
+ MAME_DIR .. "3rdparty/compat/mingw",
+ MAME_DIR .. "3rdparty/portaudio/include",
+ }
+
+ includedirs {
+ MAME_DIR .. "3rdparty/compat/winsdk-override",
+ }
+ end
+
+ if _OPTIONS["NO_OPENGL"]=="1" then
+ defines {
+ "USE_OPENGL=0",
+ }
+ else
+ files {
+ MAME_DIR .. "src/osd/modules/render/drawogl.cpp",
+ MAME_DIR .. "src/osd/modules/opengl/gl_shader_tool.cpp",
+ MAME_DIR .. "src/osd/modules/opengl/gl_shader_mgr.cpp",
+ MAME_DIR .. "src/osd/modules/opengl/gl_shader_mgr.h",
+ MAME_DIR .. "src/osd/modules/opengl/gl_shader_tool.h",
+ MAME_DIR .. "src/osd/modules/opengl/osd_opengl.h",
+ }
+ defines {
+ "USE_OPENGL=1",
+ }
+ if _OPTIONS["USE_DISPATCH_GL"]=="1" then
+ defines {
+ "USE_DISPATCH_GL=1",
+ }
+ end
+ end
+
+ defines {
+ "__STDC_LIMIT_MACROS",
+ "__STDC_FORMAT_MACROS",
+ "__STDC_CONSTANT_MACROS",
+ "IMGUI_DISABLE_OBSOLETE_FUNCTIONS",
+ }
+
+ files {
+ MAME_DIR .. "src/osd/modules/render/drawbgfx.cpp",
+ MAME_DIR .. "src/osd/modules/render/aviwrite.cpp",
+ MAME_DIR .. "src/osd/modules/render/aviwrite.h",
+ MAME_DIR .. "src/osd/modules/render/bgfxutil.cpp",
+ MAME_DIR .. "src/osd/modules/render/bgfxutil.h",
+ MAME_DIR .. "src/osd/modules/render/binpacker.cpp",
+ MAME_DIR .. "src/osd/modules/render/bgfx/blendreader.cpp",
+ MAME_DIR .. "src/osd/modules/render/bgfx/chain.cpp",
+ MAME_DIR .. "src/osd/modules/render/bgfx/chainentry.cpp",
+ MAME_DIR .. "src/osd/modules/render/bgfx/chainentryreader.cpp",
+ MAME_DIR .. "src/osd/modules/render/bgfx/chainmanager.cpp",
+ MAME_DIR .. "src/osd/modules/render/bgfx/chainreader.cpp",
+ MAME_DIR .. "src/osd/modules/render/bgfx/clear.cpp",
+ MAME_DIR .. "src/osd/modules/render/bgfx/clear.h",
+ MAME_DIR .. "src/osd/modules/render/bgfx/clearreader.cpp",
+ MAME_DIR .. "src/osd/modules/render/bgfx/clearreader.h",
+ MAME_DIR .. "src/osd/modules/render/bgfx/cullreader.cpp",
+ MAME_DIR .. "src/osd/modules/render/bgfx/depthreader.cpp",
+ MAME_DIR .. "src/osd/modules/render/bgfx/effect.cpp",
+ MAME_DIR .. "src/osd/modules/render/bgfx/effectmanager.cpp",
+ MAME_DIR .. "src/osd/modules/render/bgfx/effectreader.cpp",
+ MAME_DIR .. "src/osd/modules/render/bgfx/entryuniformreader.cpp",
+ MAME_DIR .. "src/osd/modules/render/bgfx/inputpair.cpp",
+ MAME_DIR .. "src/osd/modules/render/bgfx/frameparameter.cpp",
+ MAME_DIR .. "src/osd/modules/render/bgfx/timeparameter.cpp",
+ MAME_DIR .. "src/osd/modules/render/bgfx/paramreader.cpp",
+ MAME_DIR .. "src/osd/modules/render/bgfx/paramuniform.cpp",
+ MAME_DIR .. "src/osd/modules/render/bgfx/paramuniformreader.cpp",
+ MAME_DIR .. "src/osd/modules/render/bgfx/shadermanager.cpp",
+ MAME_DIR .. "src/osd/modules/render/bgfx/slider.cpp",
+ MAME_DIR .. "src/osd/modules/render/bgfx/sliderreader.cpp",
+ MAME_DIR .. "src/osd/modules/render/bgfx/slideruniform.cpp",
+ MAME_DIR .. "src/osd/modules/render/bgfx/slideruniformreader.cpp",
+ MAME_DIR .. "src/osd/modules/render/bgfx/statereader.cpp",
+ MAME_DIR .. "src/osd/modules/render/bgfx/suppressor.cpp",
+ MAME_DIR .. "src/osd/modules/render/bgfx/suppressorreader.cpp",
+ MAME_DIR .. "src/osd/modules/render/bgfx/target.cpp",
+ MAME_DIR .. "src/osd/modules/render/bgfx/targetreader.cpp",
+ MAME_DIR .. "src/osd/modules/render/bgfx/targetmanager.cpp",
+ MAME_DIR .. "src/osd/modules/render/bgfx/texture.cpp",
+ MAME_DIR .. "src/osd/modules/render/bgfx/texturemanager.cpp",
+ MAME_DIR .. "src/osd/modules/render/bgfx/uniform.cpp",
+ MAME_DIR .. "src/osd/modules/render/bgfx/uniformreader.cpp",
+ MAME_DIR .. "src/osd/modules/render/bgfx/valueuniform.cpp",
+ MAME_DIR .. "src/osd/modules/render/bgfx/valueuniformreader.cpp",
+ MAME_DIR .. "src/osd/modules/render/bgfx/writereader.cpp",
+ }
+ includedirs {
+ MAME_DIR .. "3rdparty/bgfx/examples/common",
+ MAME_DIR .. "3rdparty/bgfx/include",
+ MAME_DIR .. "3rdparty/bgfx/3rdparty",
+ MAME_DIR .. "3rdparty/bx/include",
+ MAME_DIR .. "3rdparty/rapidjson/include",
+ }
+
+ if _OPTIONS["NO_USE_PORTAUDIO"]=="1" then
+ defines {
+ "NO_USE_PORTAUDIO",
+ }
+ else
+ includedirs {
+ ext_includedir("portaudio"),
+ }
+ end
+
+ if _OPTIONS["NO_USE_MIDI"]=="1" then
+ defines {
+ "NO_USE_MIDI",
+ }
+ else
+ includedirs {
+ ext_includedir("portmidi"),
+ }
+ end
+
+ if _OPTIONS["USE_QTDEBUG"]=="1" then
+ defines {
+ "USE_QTDEBUG=1",
+ }
+ else
+ defines {
+ "USE_QTDEBUG=0",
+ }
+ end
+
+end
+
+
+function qtdebuggerbuild()
+
+ removeflags {
+ "SingleOutputDir",
+ }
+ local version = str_to_version(_OPTIONS["gcc_version"])
+ if _OPTIONS["gcc"]~=nil and (string.find(_OPTIONS["gcc"], "clang") or string.find(_OPTIONS["gcc"], "asmjs")) then
+ configuration { "gmake or ninja" }
+ if (version >= 30600) then
+ buildoptions {
+ "-Wno-inconsistent-missing-override",
+ }
+ end
+ configuration { }
+ end
+
+ files {
+ MAME_DIR .. "src/osd/modules/debugger/debugqt.cpp",
+ }
+
+ if _OPTIONS["USE_QTDEBUG"]=="1" then
+ files {
+ MAME_DIR .. "src/osd/modules/debugger/qt/debuggerview.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/qt/debuggerview.h",
+ MAME_DIR .. "src/osd/modules/debugger/qt/windowqt.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/qt/windowqt.h",
+ MAME_DIR .. "src/osd/modules/debugger/qt/logwindow.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/qt/logwindow.h",
+ MAME_DIR .. "src/osd/modules/debugger/qt/dasmwindow.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/qt/dasmwindow.h",
+ MAME_DIR .. "src/osd/modules/debugger/qt/mainwindow.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/qt/mainwindow.h",
+ MAME_DIR .. "src/osd/modules/debugger/qt/memorywindow.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/qt/memorywindow.h",
+ MAME_DIR .. "src/osd/modules/debugger/qt/breakpointswindow.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/qt/breakpointswindow.h",
+ MAME_DIR .. "src/osd/modules/debugger/qt/deviceswindow.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/qt/deviceinformationwindow.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/qt/deviceinformationwindow.h",
+ MAME_DIR .. "src/osd/modules/debugger/qt/deviceswindow.h",
+ GEN_DIR .. "osd/modules/debugger/qt/debuggerview.moc.cpp",
+ GEN_DIR .. "osd/modules/debugger/qt/windowqt.moc.cpp",
+ GEN_DIR .. "osd/modules/debugger/qt/logwindow.moc.cpp",
+ GEN_DIR .. "osd/modules/debugger/qt/dasmwindow.moc.cpp",
+ GEN_DIR .. "osd/modules/debugger/qt/mainwindow.moc.cpp",
+ GEN_DIR .. "osd/modules/debugger/qt/memorywindow.moc.cpp",
+ GEN_DIR .. "osd/modules/debugger/qt/breakpointswindow.moc.cpp",
+ GEN_DIR .. "osd/modules/debugger/qt/deviceswindow.moc.cpp",
+ GEN_DIR .. "osd/modules/debugger/qt/deviceinformationwindow.moc.cpp",
+ }
+ defines {
+ "USE_QTDEBUG=1",
+ }
+
+ local MOC = ""
+ if (os.is("windows")) then
+ MOC = "moc"
+ else
+ if _OPTIONS["QT_HOME"]~=nil then
+ QMAKETST = backtick(_OPTIONS["QT_HOME"] .. "/bin/qmake --version 2>/dev/null")
+ if (QMAKETST=='') then
+ print("Qt's Meta Object Compiler (moc) wasn't found!")
+ os.exit(1)
+ end
+ MOC = _OPTIONS["QT_HOME"] .. "/bin/moc"
+ else
+ MOCTST = backtick("which moc-qt5 2>/dev/null")
+ if (MOCTST=='') then
+ MOCTST = backtick("which moc 2>/dev/null")
+ end
+ if (MOCTST=='') then
+ print("Qt's Meta Object Compiler (moc) wasn't found!")
+ os.exit(1)
+ end
+ MOC = MOCTST
+ end
+ end
+
+
+ custombuildtask {
+ { MAME_DIR .. "src/osd/modules/debugger/qt/debuggerview.h", GEN_DIR .. "osd/modules/debugger/qt/debuggerview.moc.cpp", { }, { MOC .. "$(MOCINCPATH) -b emu.h $(<) -o $(@)" }},
+ { MAME_DIR .. "src/osd/modules/debugger/qt/windowqt.h", GEN_DIR .. "osd/modules/debugger/qt/windowqt.moc.cpp", { }, { MOC .. "$(MOCINCPATH) -b emu.h $(<) -o $(@)" }},
+ { MAME_DIR .. "src/osd/modules/debugger/qt/logwindow.h", GEN_DIR .. "osd/modules/debugger/qt/logwindow.moc.cpp", { }, { MOC .. "$(MOCINCPATH) -b emu.h $(<) -o $(@)" }},
+ { MAME_DIR .. "src/osd/modules/debugger/qt/dasmwindow.h", GEN_DIR .. "osd/modules/debugger/qt/dasmwindow.moc.cpp", { }, { MOC .. "$(MOCINCPATH) -b emu.h $(<) -o $(@)" }},
+ { MAME_DIR .. "src/osd/modules/debugger/qt/mainwindow.h", GEN_DIR .. "osd/modules/debugger/qt/mainwindow.moc.cpp", { }, { MOC .. "$(MOCINCPATH) -b emu.h $(<) -o $(@)" }},
+ { MAME_DIR .. "src/osd/modules/debugger/qt/memorywindow.h", GEN_DIR .. "osd/modules/debugger/qt/memorywindow.moc.cpp", { }, { MOC .. "$(MOCINCPATH) -b emu.h $(<) -o $(@)" }},
+ { MAME_DIR .. "src/osd/modules/debugger/qt/breakpointswindow.h", GEN_DIR .. "osd/modules/debugger/qt/breakpointswindow.moc.cpp", { }, { MOC .. "$(MOCINCPATH) -b emu.h $(<) -o $(@)" }},
+ { MAME_DIR .. "src/osd/modules/debugger/qt/deviceswindow.h", GEN_DIR .. "osd/modules/debugger/qt/deviceswindow.moc.cpp", { }, { MOC .. "$(MOCINCPATH) -b emu.h $(<) -o $(@)" }},
+ { MAME_DIR .. "src/osd/modules/debugger/qt/deviceinformationwindow.h", GEN_DIR .. "osd/modules/debugger/qt/deviceinformationwindow.moc.cpp", { },{ MOC .. "$(MOCINCPATH) -b emu.h $(<) -o $(@)" }},
+
+ }
+
+ if _OPTIONS["targetos"]=="windows" then
+ configuration { "mingw*" }
+ buildoptions {
+ "-I$(shell qmake -query QT_INSTALL_HEADERS)",
+ }
+ configuration { }
+ elseif _OPTIONS["targetos"]=="macosx" then
+ buildoptions {
+ "-F" .. backtick("qmake -query QT_INSTALL_LIBS"),
+ }
+ else
+ if _OPTIONS["QT_HOME"]~=nil then
+ buildoptions {
+ "-I" .. backtick(_OPTIONS["QT_HOME"] .. "/bin/qmake -query QT_INSTALL_HEADERS"),
+ }
+ else
+ buildoptions {
+ backtick(pkgconfigcmd() .. " --cflags Qt5Widgets"),
+ }
+ end
+ end
+ else
+ defines {
+ "USE_QTDEBUG=0",
+ }
+ end
+
+end
+
+
+function osdmodulestargetconf()
+
+ if _OPTIONS["NO_OPENGL"]~="1" then
+ if _OPTIONS["targetos"]=="macosx" then
+ links {
+ "OpenGL.framework",
+ }
+ elseif _OPTIONS["USE_DISPATCH_GL"]~="1" then
+ if _OPTIONS["targetos"]=="windows" then
+ links {
+ "opengl32",
+ }
+ else
+ links {
+ "GL",
+ }
+ end
+ end
+ end
+
+ if _OPTIONS["NO_USE_MIDI"]~="1" then
+ if _OPTIONS["targetos"]=="linux" then
+ local str = backtick(pkgconfigcmd() .. " --libs alsa")
+ addlibfromstring(str)
+ addoptionsfromstring(str)
+ elseif _OPTIONS["targetos"]=="macosx" then
+ links {
+ "CoreMIDI.framework",
+ }
+ end
+ end
+
+ if _OPTIONS["USE_QTDEBUG"]=="1" then
+ if _OPTIONS["targetos"]=="windows" then
+ linkoptions {
+ "-L$(shell qmake -query QT_INSTALL_LIBS)",
+ }
+ links {
+ "qtmain",
+ "Qt5Core.dll",
+ "Qt5Gui.dll",
+ "Qt5Widgets.dll",
+ }
+ elseif _OPTIONS["targetos"]=="macosx" then
+ linkoptions {
+ "-F" .. backtick("qmake -query QT_INSTALL_LIBS"),
+ }
+ links {
+ "Qt5Core.framework",
+ "Qt5Gui.framework",
+ "Qt5Widgets.framework",
+ }
+ else
+ if _OPTIONS["QT_HOME"]~=nil then
+ linkoptions {
+ "-L" .. backtick(_OPTIONS["QT_HOME"] .. "/bin/qmake -query QT_INSTALL_LIBS"),
+ }
+ links {
+ "Qt5Core",
+ "Qt5Gui",
+ "Qt5Widgets",
+ }
+ else
+ local str = backtick(pkgconfigcmd() .. " --libs Qt5Widgets")
+ addlibfromstring(str)
+ addoptionsfromstring(str)
+ end
+ end
+ end
+
+ if _OPTIONS["targetos"]=="windows" then
+ links {
+ "gdi32",
+ "dsound",
+ "dxguid",
+ "oleaut32",
+ }
+ elseif _OPTIONS["targetos"]=="macosx" then
+ links {
+ "AudioUnit.framework",
+ "AudioToolbox.framework",
+ "CoreAudio.framework",
+ "CoreServices.framework",
+ }
+ end
+
+end
+
+
+newoption {
+ trigger = "DONT_USE_NETWORK",
+ description = "Disable network access",
+}
+
+newoption {
+ trigger = "NO_OPENGL",
+ description = "Disable use of OpenGL",
+ allowed = {
+ { "0", "Enable OpenGL" },
+ { "1", "Disable OpenGL" },
+ },
+}
+
+newoption {
+ trigger = "USE_DISPATCH_GL",
+ description = "Use GL-dispatching",
+ allowed = {
+ { "0", "Link to OpenGL library" },
+ { "1", "Use GL-dispatching" },
+ },
+}
+
+if not _OPTIONS["USE_DISPATCH_GL"] then
+ _OPTIONS["USE_DISPATCH_GL"] = "0"
+end
+
+newoption {
+ trigger = "NO_USE_MIDI",
+ description = "Disable MIDI I/O",
+ allowed = {
+ { "0", "Enable MIDI" },
+ { "1", "Disable MIDI" },
+ },
+}
+
+if not _OPTIONS["NO_USE_MIDI"] then
+ if _OPTIONS["targetos"]=="freebsd" or _OPTIONS["targetos"]=="openbsd" or _OPTIONS["targetos"]=="netbsd" or _OPTIONS["targetos"]=="solaris" or _OPTIONS["targetos"]=="haiku" or _OPTIONS["targetos"] == "asmjs" then
+ _OPTIONS["NO_USE_MIDI"] = "1"
+ else
+ _OPTIONS["NO_USE_MIDI"] = "0"
+ end
+end
+
+newoption {
+ trigger = "NO_USE_PORTAUDIO",
+ description = "Disable PortAudio interface",
+ allowed = {
+ { "0", "Enable PortAudio" },
+ { "1", "Disable PortAudio" },
+ },
+}
+
+if not _OPTIONS["NO_USE_PORTAUDIO"] then
+ if _OPTIONS["targetos"]=="windows" or _OPTIONS["targetos"]=="linux" or _OPTIONS["targetos"]=="macosx" then
+ _OPTIONS["NO_USE_PORTAUDIO"] = "0"
+ else
+ _OPTIONS["NO_USE_PORTAUDIO"] = "1"
+ end
+end
+
+newoption {
+ trigger = "MODERN_WIN_API",
+ description = "Use Modern Windows APIs",
+ allowed = {
+ { "0", "Use classic Windows APIs - allows support for XP and later" },
+ { "1", "Use Modern Windows APIs - support for Windows 8.1 and later" },
+ },
+}
+
+newoption {
+ trigger = "USE_QTDEBUG",
+ description = "Use QT debugger",
+ allowed = {
+ { "0", "Don't use Qt debugger" },
+ { "1", "Use Qt debugger" },
+ },
+}
+
+newoption {
+ trigger = "QT_HOME",
+ description = "QT lib location",
+}
+
+
+if not _OPTIONS["USE_QTDEBUG"] then
+ if _OPTIONS["targetos"]=="windows" or _OPTIONS["targetos"]=="macosx" or _OPTIONS["targetos"]=="solaris" or _OPTIONS["targetos"]=="haiku" or _OPTIONS["targetos"] == "asmjs" then
+ _OPTIONS["USE_QTDEBUG"] = "0"
+ else
+ _OPTIONS["USE_QTDEBUG"] = "1"
+ end
+end
diff --git a/docs/release/scripts/src/osd/newui.lua b/docs/release/scripts/src/osd/newui.lua
new file mode 100644
index 00000000000..a2e95a665da
--- /dev/null
+++ b/docs/release/scripts/src/osd/newui.lua
@@ -0,0 +1,271 @@
+-- license:BSD-3-Clause
+-- copyright-holders:Robbbert
+
+---------------------------------------------------------------------------
+--
+-- newui.lua
+--
+-- Rules for the building for Windows
+--
+---------------------------------------------------------------------------
+
+dofile("modules.lua")
+
+premake.make.linkoptions_after = false;
+
+function maintargetosdoptions(_target,_subtarget)
+ osdmodulestargetconf()
+
+ configuration { "mingw*-gcc" }
+ linkoptions {
+ "-municode",
+ }
+
+ configuration { }
+
+ if _OPTIONS["DIRECTINPUT"] == "8" then
+ links {
+ "dinput8",
+ }
+ else
+ links {
+ "dinput",
+ }
+ end
+
+ links {
+ "comctl32",
+ "comdlg32",
+ "psapi",
+ "ole32",
+ }
+
+-- needs same resources as messui, because dropdown menus are in mameui.rc
+ override_resources = true;
+ rctarget = _subtarget;
+ local rcfile = MAME_DIR .. "src/osd/winui/" .. _subtarget .. ".rc"
+ local uifile = MAME_DIR .. "src/osd/winui/" .. _subtarget .. "ui.rc"
+
+ if not os.isfile(rcfile) then
+ print(string.format("***** %s not found *****",rcfile))
+ os.exit();
+ end
+
+ if not os.isfile(uifile) then
+ print(string.format("***** %s not found *****",uifile))
+ os.exit();
+ end
+
+ files {
+ rcfile,
+ }
+ dependency {
+ { "$(OBJDIR)/".._subtarget..".res" , GEN_DIR .. "/resource/".._subtarget.."vers.rc", true },
+ }
+end
+
+
+newoption {
+ trigger = "DIRECTINPUT",
+ description = "Minimum DirectInput version to support",
+ allowed = {
+ { "7", "Support DirectInput 7 or later" },
+ { "8", "Support DirectInput 8 or later" },
+ },
+}
+
+if not _OPTIONS["DIRECTINPUT"] then
+ _OPTIONS["DIRECTINPUT"] = "8"
+end
+
+
+project ("qtdbg_" .. _OPTIONS["osd"])
+ uuid (os.uuid("qtdbg_" .. _OPTIONS["osd"]))
+ kind (LIBTYPE)
+
+ dofile("windows_cfg.lua")
+ includedirs {
+ MAME_DIR .. "src/emu",
+ MAME_DIR .. "src/devices", -- accessing imagedev from debugger
+ MAME_DIR .. "src/osd",
+ MAME_DIR .. "src/lib",
+ MAME_DIR .. "src/lib/util",
+ MAME_DIR .. "src/osd/modules/render",
+ MAME_DIR .. "3rdparty",
+ }
+ qtdebuggerbuild()
+
+project ("osd_" .. _OPTIONS["osd"])
+ uuid (os.uuid("osd_" .. _OPTIONS["osd"]))
+ kind "StaticLib"
+
+ dofile("winui_cfg.lua")
+ osdmodulesbuild()
+
+ defines {
+ "DIRECT3D_VERSION=0x0900",
+ }
+
+ if _OPTIONS["DIRECTINPUT"] == "8" then
+ defines {
+ "DIRECTINPUT_VERSION=0x0800",
+ }
+ else
+ defines {
+ "DIRECTINPUT_VERSION=0x0700",
+ }
+ end
+
+ includedirs {
+ MAME_DIR .. "src/emu",
+ MAME_DIR .. "src/devices",
+ MAME_DIR .. "src/osd",
+ MAME_DIR .. "src/lib",
+ MAME_DIR .. "src/lib/util",
+ MAME_DIR .. "src/osd/modules/file",
+ MAME_DIR .. "src/osd/modules/render",
+ MAME_DIR .. "3rdparty",
+ MAME_DIR .. "src/frontend/mame",
+ MAME_DIR .. "src/osd/windows",
+ }
+
+ files {
+ MAME_DIR .. "src/osd/modules/render/d3d/d3dintf.h",
+ MAME_DIR .. "src/osd/modules/render/d3d/d3dhlsl.cpp",
+ MAME_DIR .. "src/osd/modules/render/d3d/d3dcomm.h",
+ MAME_DIR .. "src/osd/modules/render/d3d/d3dhlsl.h",
+ MAME_DIR .. "src/osd/modules/render/drawd3d.cpp",
+ MAME_DIR .. "src/osd/modules/render/drawd3d.h",
+ MAME_DIR .. "src/osd/modules/render/drawgdi.cpp",
+ MAME_DIR .. "src/osd/modules/render/drawgdi.h",
+ MAME_DIR .. "src/osd/modules/render/drawnone.cpp",
+ MAME_DIR .. "src/osd/modules/render/drawnone.h",
+ MAME_DIR .. "src/osd/windows/video.cpp",
+ MAME_DIR .. "src/osd/windows/video.h",
+ MAME_DIR .. "src/osd/windows/window.cpp",
+ MAME_DIR .. "src/osd/windows/window.h",
+ MAME_DIR .. "src/osd/modules/osdwindow.cpp",
+ MAME_DIR .. "src/osd/modules/osdwindow.h",
+ MAME_DIR .. "src/osd/windows/winmain.cpp",
+ MAME_DIR .. "src/osd/windows/winmain.h",
+ MAME_DIR .. "src/osd/osdepend.h",
+ MAME_DIR .. "src/osd/winui/newui.cpp",
+ MAME_DIR .. "src/osd/windows/winmain.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/consolewininfo.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/consolewininfo.h",
+ MAME_DIR .. "src/osd/modules/debugger/win/debugbaseinfo.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/debugbaseinfo.h",
+ MAME_DIR .. "src/osd/modules/debugger/win/debugviewinfo.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/debugviewinfo.h",
+ MAME_DIR .. "src/osd/modules/debugger/win/debugwininfo.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/debugwininfo.h",
+ MAME_DIR .. "src/osd/modules/debugger/win/disasmbasewininfo.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/disasmbasewininfo.h",
+ MAME_DIR .. "src/osd/modules/debugger/win/disasmviewinfo.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/disasmviewinfo.h",
+ MAME_DIR .. "src/osd/modules/debugger/win/disasmwininfo.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/disasmwininfo.h",
+ MAME_DIR .. "src/osd/modules/debugger/win/editwininfo.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/editwininfo.h",
+ MAME_DIR .. "src/osd/modules/debugger/win/logwininfo.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/logwininfo.h",
+ MAME_DIR .. "src/osd/modules/debugger/win/memoryviewinfo.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/memoryviewinfo.h",
+ MAME_DIR .. "src/osd/modules/debugger/win/memorywininfo.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/memorywininfo.h",
+ MAME_DIR .. "src/osd/modules/debugger/win/pointswininfo.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/pointswininfo.h",
+ MAME_DIR .. "src/osd/modules/debugger/win/uimetrics.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/uimetrics.h",
+ MAME_DIR .. "src/osd/modules/debugger/win/debugwin.h",
+ }
+
+
+project ("ocore_" .. _OPTIONS["osd"])
+ uuid (os.uuid("ocore_" .. _OPTIONS["osd"]))
+ kind "StaticLib"
+
+ options {
+ "ForceCPP",
+ }
+ removeflags {
+ "SingleOutputDir",
+ }
+
+ dofile("windows_cfg.lua")
+
+ includedirs {
+ MAME_DIR .. "3rdparty",
+ MAME_DIR .. "src/emu",
+ MAME_DIR .. "src/osd",
+ MAME_DIR .. "src/osd/modules/file",
+ MAME_DIR .. "src/lib",
+ MAME_DIR .. "src/lib/util",
+ }
+
+ BASE_TARGETOS = "win32"
+ SDLOS_TARGETOS = "win32"
+ SYNC_IMPLEMENTATION = "windows"
+
+ includedirs {
+ MAME_DIR .. "src/osd/windows",
+ MAME_DIR .. "src/lib/winpcap",
+ }
+
+ files {
+ MAME_DIR .. "src/osd/eigccppc.h",
+ MAME_DIR .. "src/osd/eigccx86.h",
+ MAME_DIR .. "src/osd/eivc.h",
+ MAME_DIR .. "src/osd/eivcx86.h",
+ MAME_DIR .. "src/osd/eminline.h",
+ MAME_DIR .. "src/osd/osdcomm.h",
+ MAME_DIR .. "src/osd/osdcore.cpp",
+ MAME_DIR .. "src/osd/osdcore.h",
+ MAME_DIR .. "src/osd/strconv.cpp",
+ MAME_DIR .. "src/osd/strconv.h",
+ MAME_DIR .. "src/osd/windows/main.cpp",
+ MAME_DIR .. "src/osd/osdsync.cpp",
+ MAME_DIR .. "src/osd/osdsync.h",
+ MAME_DIR .. "src/osd/windows/winutf8.cpp",
+ MAME_DIR .. "src/osd/windows/winutf8.h",
+ MAME_DIR .. "src/osd/windows/winutil.cpp",
+ MAME_DIR .. "src/osd/windows/winutil.h",
+ MAME_DIR .. "src/osd/modules/osdmodule.cpp",
+ MAME_DIR .. "src/osd/modules/osdmodule.h",
+ MAME_DIR .. "src/osd/modules/file/windir.cpp",
+ MAME_DIR .. "src/osd/modules/file/winfile.cpp",
+ MAME_DIR .. "src/osd/modules/file/winfile.h",
+ MAME_DIR .. "src/osd/modules/file/winptty.cpp",
+ MAME_DIR .. "src/osd/modules/file/winsocket.cpp",
+ MAME_DIR .. "src/osd/modules/lib/osdlib_win32.cpp",
+ }
+
+
+
+--------------------------------------------------
+-- ledutil
+--------------------------------------------------
+
+if _OPTIONS["with-tools"] then
+ project("ledutil")
+ uuid ("061293ca-7290-44ac-b2b5-5913ae8dc9c0")
+ kind "ConsoleApp"
+
+ options {
+ "ForceCPP",
+ }
+
+ targetdir(MAME_DIR)
+
+ links {
+ "ocore_" .. _OPTIONS["osd"],
+ }
+
+ includedirs {
+ MAME_DIR .. "src/osd",
+ }
+
+ files {
+ MAME_DIR .. "src/osd/windows/ledutil.cpp",
+ }
+end
diff --git a/docs/release/scripts/src/osd/osdmini.lua b/docs/release/scripts/src/osd/osdmini.lua
new file mode 100644
index 00000000000..b05839e7873
--- /dev/null
+++ b/docs/release/scripts/src/osd/osdmini.lua
@@ -0,0 +1,130 @@
+-- license:BSD-3-Clause
+-- copyright-holders:MAMEdev Team
+
+---------------------------------------------------------------------------
+--
+-- osdmini.lua
+--
+-- Rules for the building of osdmini
+--
+---------------------------------------------------------------------------
+
+function maintargetosdoptions(_target,_subtarget)
+end
+
+project ("qtdbg_" .. _OPTIONS["osd"])
+ uuid (os.uuid("qtdbg_" .. _OPTIONS["osd"]))
+ kind (LIBTYPE)
+
+ dofile("osdmini_cfg.lua")
+ includedirs {
+ MAME_DIR .. "src/emu",
+ MAME_DIR .. "src/devices", -- accessing imagedev from debugger
+ MAME_DIR .. "src/osd",
+ MAME_DIR .. "src/lib",
+ MAME_DIR .. "src/lib/util",
+ MAME_DIR .. "src/osd/modules/render",
+ MAME_DIR .. "3rdparty",
+ }
+ removeflags {
+ "SingleOutputDir",
+ }
+
+ files {
+ MAME_DIR .. "src/osd/modules/debugger/debugqt.cpp",
+ }
+
+project ("osd_" .. _OPTIONS["osd"])
+ uuid (os.uuid("osd_" .. _OPTIONS["osd"]))
+ kind (LIBTYPE)
+
+ removeflags {
+ "SingleOutputDir",
+ }
+
+ dofile("osdmini_cfg.lua")
+
+ includedirs {
+ MAME_DIR .. "src/emu",
+ MAME_DIR .. "src/osd",
+ MAME_DIR .. "src/lib",
+ MAME_DIR .. "src/lib/util",
+ MAME_DIR .. "src/osd/sdl",
+ MAME_DIR .. "src/osd/modules/render",
+ MAME_DIR .. "3rdparty",
+ MAME_DIR .. "3rdparty/winpcap/Include",
+ MAME_DIR .. "3rdparty/bgfx/include",
+ MAME_DIR .. "3rdparty/bx/include",
+ }
+
+ files {
+ MAME_DIR .. "src/osd/osdnet.cpp",
+ MAME_DIR .. "src/osd/osdnet.h",
+ MAME_DIR .. "src/osd/osdmini/minimain.cpp",
+ MAME_DIR .. "src/osd/osdmini/osdmini.h",
+ MAME_DIR .. "src/osd/osdepend.h",
+ MAME_DIR .. "src/osd/modules/lib/osdobj_common.cpp",
+ MAME_DIR .. "src/osd/modules/lib/osdobj_common.h",
+ MAME_DIR .. "src/osd/modules/font/font_sdl.cpp",
+ MAME_DIR .. "src/osd/modules/font/font_windows.cpp",
+ MAME_DIR .. "src/osd/modules/font/font_osx.cpp",
+ MAME_DIR .. "src/osd/modules/font/font_none.cpp",
+ MAME_DIR .. "src/osd/modules/netdev/taptun.cpp",
+ MAME_DIR .. "src/osd/modules/netdev/pcap.cpp",
+ MAME_DIR .. "src/osd/modules/netdev/none.cpp",
+ MAME_DIR .. "src/osd/modules/midi/portmidi.cpp",
+ MAME_DIR .. "src/osd/modules/midi/none.cpp",
+ MAME_DIR .. "src/osd/modules/sound/js_sound.cpp",
+ MAME_DIR .. "src/osd/modules/sound/direct_sound.cpp",
+ MAME_DIR .. "src/osd/modules/sound/coreaudio_sound.cpp",
+ MAME_DIR .. "src/osd/modules/sound/sdl_sound.cpp",
+ MAME_DIR .. "src/osd/modules/sound/none.cpp",
+ MAME_DIR .. "src/osd/modules/sound/xaudio2_sound.cpp",
+ }
+
+project ("ocore_" .. _OPTIONS["osd"])
+ uuid (os.uuid("ocore_" .. _OPTIONS["osd"]))
+ kind (LIBTYPE)
+
+ removeflags {
+ "SingleOutputDir",
+ }
+
+ dofile("osdmini_cfg.lua")
+
+ includedirs {
+ MAME_DIR .. "src/emu",
+ MAME_DIR .. "src/osd",
+ MAME_DIR .. "src/lib",
+ MAME_DIR .. "src/lib/util",
+ }
+
+ if _OPTIONS["targetos"]=="linux" then
+ BASE_TARGETOS = "unix"
+ SDLOS_TARGETOS = "unix"
+ SYNC_IMPLEMENTATION = "tc"
+ end
+
+ if _OPTIONS["targetos"]=="windows" then
+ BASE_TARGETOS = "win32"
+ SDLOS_TARGETOS = "win32"
+ SYNC_IMPLEMENTATION = "windows"
+ end
+
+ if _OPTIONS["targetos"]=="macosx" then
+ BASE_TARGETOS = "unix"
+ SDLOS_TARGETOS = "macosx"
+ SYNC_IMPLEMENTATION = "ntc"
+ end
+
+ files {
+ MAME_DIR .. "src/osd/osdcore.cpp",
+ MAME_DIR .. "src/osd/osdcore.h",
+ MAME_DIR .. "src/osd/modules/osdmodule.cpp",
+ MAME_DIR .. "src/osd/modules/osdmodule.h",
+ MAME_DIR .. "src/osd/osdmini/minidir.cpp",
+ MAME_DIR .. "src/osd/osdmini/minifile.cpp",
+ MAME_DIR .. "src/osd/osdmini/minimisc.cpp",
+ MAME_DIR .. "src/osd/osdmini/minitime.cpp",
+ MAME_DIR .. "src/osd/modules/sync/work_mini.cpp",
+ }
diff --git a/docs/release/scripts/src/osd/osdmini_cfg.lua b/docs/release/scripts/src/osd/osdmini_cfg.lua
new file mode 100644
index 00000000000..586075d3cac
--- /dev/null
+++ b/docs/release/scripts/src/osd/osdmini_cfg.lua
@@ -0,0 +1,12 @@
+-- license:BSD-3-Clause
+-- copyright-holders:MAMEdev Team
+
+defines {
+ "OSD_MINI",
+ "USE_QTDEBUG=0",
+ "USE_SDL",
+ "SDLMAME_NOASM=1",
+ "USE_OPENGL=0",
+ "NO_USE_MIDI=1",
+ "USE_XAUDIO2=0",
+}
diff --git a/docs/release/scripts/src/osd/sdl.lua b/docs/release/scripts/src/osd/sdl.lua
new file mode 100644
index 00000000000..5970f6d3334
--- /dev/null
+++ b/docs/release/scripts/src/osd/sdl.lua
@@ -0,0 +1,496 @@
+-- license:BSD-3-Clause
+-- copyright-holders:MAMEdev Team
+
+---------------------------------------------------------------------------
+--
+-- sdl.lua
+--
+-- Rules for the building with SDL
+--
+---------------------------------------------------------------------------
+
+dofile("modules.lua")
+
+
+function maintargetosdoptions(_target,_subtarget)
+ osdmodulestargetconf()
+
+ if _OPTIONS["USE_DISPATCH_GL"]~="1" and _OPTIONS["MESA_INSTALL_ROOT"] then
+ libdirs {
+ path.join(_OPTIONS["MESA_INSTALL_ROOT"],"lib"),
+ }
+ linkoptions {
+ "-Wl,-rpath=" .. path.join(_OPTIONS["MESA_INSTALL_ROOT"],"lib"),
+ }
+ end
+
+ if _OPTIONS["NO_X11"]~="1" then
+ links {
+ "X11",
+ "Xinerama",
+ }
+ end
+
+ if _OPTIONS["NO_USE_XINPUT"]~="1" then
+ links {
+ "Xext",
+ "Xi",
+ }
+ end
+
+ if BASE_TARGETOS=="unix" and _OPTIONS["targetos"]~="macosx" and _OPTIONS["targetos"]~="android" then
+ links {
+ "SDL2_ttf",
+ }
+ local str = backtick(pkgconfigcmd() .. " --libs fontconfig")
+ addlibfromstring(str)
+ addoptionsfromstring(str)
+ end
+
+ if _OPTIONS["targetos"]=="windows" then
+ if _OPTIONS["with-bundled-sdl2"]~=nil then
+ configuration { "mingw*"}
+ links {
+ "SDL2",
+ "Imm32",
+ "Version",
+ "Ole32",
+ "OleAut32",
+ }
+ configuration { "vs*" }
+ links {
+ "SDL2",
+ "Imm32",
+ "Version",
+ }
+ configuration { }
+ else
+ if _OPTIONS["USE_LIBSDL"]~="1" then
+ configuration { "mingw*"}
+ links {
+ "SDL2.dll",
+ }
+ configuration { "vs*" }
+ links {
+ "SDL2",
+ "Imm32",
+ "Version",
+ }
+ configuration { }
+ else
+ local str = backtick(sdlconfigcmd() .. " --libs | sed 's/ -lSDLmain//'")
+ addlibfromstring(str)
+ addoptionsfromstring(str)
+ end
+ configuration { "x32", "vs*" }
+ libdirs {
+ path.join(_OPTIONS["SDL_INSTALL_ROOT"],"lib","x86")
+ }
+ configuration { "x64", "vs*" }
+ libdirs {
+ path.join(_OPTIONS["SDL_INSTALL_ROOT"],"lib","x64")
+ }
+ end
+ links {
+ "psapi",
+ }
+ configuration { "mingw*" }
+ linkoptions{
+ "-municode",
+ }
+ configuration { "vs*" }
+ flags {
+ "Unicode",
+ }
+ configuration {}
+ elseif _OPTIONS["targetos"]=="haiku" then
+ links {
+ "network",
+ "bsd",
+ }
+ end
+
+ configuration { "mingw*" or "vs*" }
+ targetprefix "sdl"
+ links {
+ "psapi",
+ "Ole32",
+ }
+ configuration { }
+
+ if _OPTIONS["targetos"]=="macosx" then
+ if _OPTIONS["with-bundled-sdl2"]~=nil then
+ links {
+ "SDL2",
+ }
+ end
+ end
+
+end
+
+
+function sdlconfigcmd()
+ if _OPTIONS["targetos"]=="asmjs" then
+ return "sdl2-config"
+ elseif not _OPTIONS["SDL_INSTALL_ROOT"] then
+ return pkgconfigcmd() .. " sdl2"
+ else
+ return path.join(_OPTIONS["SDL_INSTALL_ROOT"],"bin","sdl2") .. "-config"
+ end
+end
+
+
+newoption {
+ trigger = "MESA_INSTALL_ROOT",
+ description = "link against specific GL-Library - also adds rpath to executable (overridden by USE_DISPATCH_GL)",
+}
+
+newoption {
+ trigger = "SDL_INI_PATH",
+ description = "Default search path for .ini files",
+}
+
+newoption {
+ trigger = "NO_X11",
+ description = "Disable use of X11",
+ allowed = {
+ { "0", "Enable X11" },
+ { "1", "Disable X11" },
+ },
+}
+
+if not _OPTIONS["NO_X11"] then
+ if _OPTIONS["targetos"]=="windows" or _OPTIONS["targetos"]=="macosx" or _OPTIONS["targetos"]=="haiku" or _OPTIONS["targetos"]=="asmjs" then
+ _OPTIONS["NO_X11"] = "1"
+ else
+ _OPTIONS["NO_X11"] = "0"
+ end
+end
+
+newoption {
+ trigger = "NO_USE_XINPUT",
+ description = "Disable use of Xinput",
+ allowed = {
+ { "0", "Enable Xinput" },
+ { "1", "Disable Xinput" },
+ },
+}
+
+if not _OPTIONS["NO_USE_XINPUT"] then
+ _OPTIONS["NO_USE_XINPUT"] = "1"
+end
+
+newoption {
+ trigger = "SDL2_MULTIAPI",
+ description = "Use couriersud's multi-keyboard patch for SDL 2.1? (this API was removed prior to the 2.0 release)",
+ allowed = {
+ { "0", "Use single-keyboard API" },
+ { "1", "Use multi-keyboard API" },
+ },
+}
+
+if not _OPTIONS["SDL2_MULTIAPI"] then
+ _OPTIONS["SDL2_MULTIAPI"] = "0"
+end
+
+newoption {
+ trigger = "SDL_INSTALL_ROOT",
+ description = "Equivalent to the ./configure --prefix=<path>",
+}
+
+newoption {
+ trigger = "SDL_FRAMEWORK_PATH",
+ description = "Location of SDL framework for custom OS X installations",
+}
+
+if not _OPTIONS["SDL_FRAMEWORK_PATH"] then
+ _OPTIONS["SDL_FRAMEWORK_PATH"] = "/Library/Frameworks/"
+end
+
+newoption {
+ trigger = "USE_LIBSDL",
+ description = "Use SDL library on OS (rather than framework/dll)",
+ allowed = {
+ { "0", "Use framework/dll" },
+ { "1", "Use library" },
+ },
+}
+
+if not _OPTIONS["USE_LIBSDL"] then
+ _OPTIONS["USE_LIBSDL"] = "0"
+end
+
+
+BASE_TARGETOS = "unix"
+SDLOS_TARGETOS = "unix"
+SDL_NETWORK = ""
+if _OPTIONS["targetos"]=="linux" then
+ SDL_NETWORK = "taptun"
+elseif _OPTIONS["targetos"]=="openbsd" then
+elseif _OPTIONS["targetos"]=="netbsd" then
+ SDL_NETWORK = "pcap"
+elseif _OPTIONS["targetos"]=="haiku" then
+elseif _OPTIONS["targetos"]=="asmjs" then
+elseif _OPTIONS["targetos"]=="windows" then
+ BASE_TARGETOS = "win32"
+ SDLOS_TARGETOS = "win32"
+ SDL_NETWORK = "pcap"
+elseif _OPTIONS["targetos"]=="macosx" then
+ SDLOS_TARGETOS = "macosx"
+ SDL_NETWORK = "pcap"
+end
+
+if _OPTIONS["with-bundled-sdl2"]~=nil then
+ includedirs {
+ GEN_DIR .. "includes",
+ }
+end
+if BASE_TARGETOS=="unix" then
+ if _OPTIONS["targetos"]=="macosx" then
+ local os_version = str_to_version(backtick("sw_vers -productVersion"))
+
+ links {
+ "Cocoa.framework",
+ }
+ linkoptions {
+ "-framework QuartzCore",
+ "-framework OpenGL",
+ }
+
+
+ if os_version>=101100 then
+ linkoptions {
+ "-weak_framework Metal",
+ }
+ end
+ if _OPTIONS["with-bundled-sdl2"]~=nil then
+ linkoptions {
+ "-framework AudioUnit",
+ "-framework CoreAudio",
+ "-framework Carbon",
+ "-framework ForceFeedback",
+ "-framework IOKit",
+ "-framework CoreVideo",
+ }
+ else
+ if _OPTIONS["USE_LIBSDL"]~="1" then
+ linkoptions {
+ "-F" .. _OPTIONS["SDL_FRAMEWORK_PATH"],
+ }
+ links {
+ "SDL2.framework",
+ }
+ else
+ local str = backtick(sdlconfigcmd() .. " --libs --static | sed 's/-lSDLmain//'")
+ addlibfromstring(str)
+ addoptionsfromstring(str)
+ end
+ end
+ else
+ if _OPTIONS["NO_X11"]=="1" then
+ _OPTIONS["USE_QTDEBUG"] = "0"
+ else
+ libdirs {
+ "/usr/X11/lib",
+ "/usr/X11R6/lib",
+ "/usr/openwin/lib",
+ }
+ end
+ if _OPTIONS["with-bundled-sdl2"]~=nil then
+ if _OPTIONS["targetos"]~="android" then
+ links {
+ "SDL2",
+ }
+ end
+ else
+ local str = backtick(sdlconfigcmd() .. " --libs")
+ addlibfromstring(str)
+ addoptionsfromstring(str)
+ end
+
+ if _OPTIONS["targetos"]~="haiku" and _OPTIONS["targetos"]~="android" then
+ links {
+ "m",
+ "pthread",
+ }
+ if _OPTIONS["targetos"]=="solaris" then
+ links {
+ "socket",
+ "nsl",
+ }
+ else
+ links {
+ "util",
+ }
+ end
+ end
+ end
+end
+
+project ("qtdbg_" .. _OPTIONS["osd"])
+ uuid (os.uuid("qtdbg_" .. _OPTIONS["osd"]))
+ kind (LIBTYPE)
+
+ dofile("sdl_cfg.lua")
+ includedirs {
+ MAME_DIR .. "src/emu",
+ MAME_DIR .. "src/devices", -- accessing imagedev from debugger
+ MAME_DIR .. "src/osd",
+ MAME_DIR .. "src/lib",
+ MAME_DIR .. "src/lib/util",
+ MAME_DIR .. "src/osd/modules/render",
+ MAME_DIR .. "3rdparty",
+ }
+ configuration { "linux-* or freebsd" }
+ buildoptions {
+ "-fPIC",
+ }
+ configuration { }
+
+ qtdebuggerbuild()
+
+project ("osd_" .. _OPTIONS["osd"])
+ targetsubdir(_OPTIONS["target"] .."_" .._OPTIONS["subtarget"])
+ uuid (os.uuid("osd_" .. _OPTIONS["osd"]))
+ kind (LIBTYPE)
+
+ dofile("sdl_cfg.lua")
+ osdmodulesbuild()
+
+ includedirs {
+ MAME_DIR .. "src/emu",
+ MAME_DIR .. "src/devices", -- accessing imagedev from debugger
+ MAME_DIR .. "src/osd",
+ MAME_DIR .. "src/lib",
+ MAME_DIR .. "src/lib/util",
+ MAME_DIR .. "src/osd/modules/file",
+ MAME_DIR .. "src/osd/modules/render",
+ MAME_DIR .. "3rdparty",
+ MAME_DIR .. "src/osd/sdl",
+ }
+
+ if _OPTIONS["targetos"]=="windows" then
+ files {
+ MAME_DIR .. "src/osd/windows/main.cpp",
+ }
+ end
+
+ if _OPTIONS["targetos"]=="macosx" then
+ files {
+ MAME_DIR .. "src/osd/modules/debugger/debugosx.mm",
+ MAME_DIR .. "src/osd/modules/debugger/osx/breakpointsview.mm",
+ MAME_DIR .. "src/osd/modules/debugger/osx/breakpointsview.h",
+ MAME_DIR .. "src/osd/modules/debugger/osx/consoleview.mm",
+ MAME_DIR .. "src/osd/modules/debugger/osx/consoleview.h",
+ MAME_DIR .. "src/osd/modules/debugger/osx/debugcommandhistory.mm",
+ MAME_DIR .. "src/osd/modules/debugger/osx/debugcommandhistory.h",
+ MAME_DIR .. "src/osd/modules/debugger/osx/debugconsole.mm",
+ MAME_DIR .. "src/osd/modules/debugger/osx/debugconsole.h",
+ MAME_DIR .. "src/osd/modules/debugger/osx/debugview.mm",
+ MAME_DIR .. "src/osd/modules/debugger/osx/debugview.h",
+ MAME_DIR .. "src/osd/modules/debugger/osx/debugwindowhandler.mm",
+ MAME_DIR .. "src/osd/modules/debugger/osx/debugwindowhandler.h",
+ MAME_DIR .. "src/osd/modules/debugger/osx/deviceinfoviewer.mm",
+ MAME_DIR .. "src/osd/modules/debugger/osx/deviceinfoviewer.h",
+ MAME_DIR .. "src/osd/modules/debugger/osx/devicesviewer.mm",
+ MAME_DIR .. "src/osd/modules/debugger/osx/devicesviewer.h",
+ MAME_DIR .. "src/osd/modules/debugger/osx/disassemblyview.mm",
+ MAME_DIR .. "src/osd/modules/debugger/osx/disassemblyviewer.mm",
+ MAME_DIR .. "src/osd/modules/debugger/osx/disassemblyviewer.h",
+ MAME_DIR .. "src/osd/modules/debugger/osx/errorlogview.mm",
+ MAME_DIR .. "src/osd/modules/debugger/osx/errorlogview.h",
+ MAME_DIR .. "src/osd/modules/debugger/osx/disassemblyview.h",
+ MAME_DIR .. "src/osd/modules/debugger/osx/errorlogviewer.mm",
+ MAME_DIR .. "src/osd/modules/debugger/osx/errorlogviewer.h",
+ MAME_DIR .. "src/osd/modules/debugger/osx/memoryview.mm",
+ MAME_DIR .. "src/osd/modules/debugger/osx/memoryview.h",
+ MAME_DIR .. "src/osd/modules/debugger/osx/memoryviewer.mm",
+ MAME_DIR .. "src/osd/modules/debugger/osx/memoryviewer.h",
+ MAME_DIR .. "src/osd/modules/debugger/osx/pointsviewer.mm",
+ MAME_DIR .. "src/osd/modules/debugger/osx/pointsviewer.h",
+ MAME_DIR .. "src/osd/modules/debugger/osx/registersview.mm",
+ MAME_DIR .. "src/osd/modules/debugger/osx/registersview.h",
+ MAME_DIR .. "src/osd/modules/debugger/osx/watchpointsview.mm",
+ MAME_DIR .. "src/osd/modules/debugger/osx/watchpointsview.h",
+ MAME_DIR .. "src/osd/modules/debugger/osx/debugosx.h",
+ }
+ end
+
+ files {
+ MAME_DIR .. "src/osd/sdl/osdsdl.h",
+ MAME_DIR .. "src/osd/sdl/sdlinc.h",
+ MAME_DIR .. "src/osd/sdl/sdlprefix.h",
+ MAME_DIR .. "src/osd/sdl/sdlmain.cpp",
+ MAME_DIR .. "src/osd/osdepend.h",
+ MAME_DIR .. "src/osd/sdl/video.cpp",
+ MAME_DIR .. "src/osd/sdl/window.cpp",
+ MAME_DIR .. "src/osd/sdl/window.h",
+ MAME_DIR .. "src/osd/modules/osdwindow.cpp",
+ MAME_DIR .. "src/osd/modules/osdwindow.h",
+ MAME_DIR .. "src/osd/modules/render/drawsdl.cpp",
+ }
+ files {
+ MAME_DIR .. "src/osd/modules/render/draw13.cpp",
+ MAME_DIR .. "src/osd/modules/render/blit13.h",
+ }
+
+
+project ("ocore_" .. _OPTIONS["osd"])
+ targetsubdir(_OPTIONS["target"] .."_" .. _OPTIONS["subtarget"])
+ uuid (os.uuid("ocore_" .. _OPTIONS["osd"]))
+ kind (LIBTYPE)
+
+ removeflags {
+ "SingleOutputDir",
+ }
+
+ dofile("sdl_cfg.lua")
+
+ includedirs {
+ MAME_DIR .. "src/emu",
+ MAME_DIR .. "src/osd",
+ MAME_DIR .. "src/lib",
+ MAME_DIR .. "src/lib/util",
+ MAME_DIR .. "src/osd/sdl",
+ }
+
+ files {
+ MAME_DIR .. "src/osd/osdcore.cpp",
+ MAME_DIR .. "src/osd/osdcore.h",
+ MAME_DIR .. "src/osd/strconv.cpp",
+ MAME_DIR .. "src/osd/strconv.h",
+ MAME_DIR .. "src/osd/osdsync.cpp",
+ MAME_DIR .. "src/osd/osdsync.h",
+ MAME_DIR .. "src/osd/modules/osdmodule.cpp",
+ MAME_DIR .. "src/osd/modules/osdmodule.h",
+ MAME_DIR .. "src/osd/modules/lib/osdlib_" .. SDLOS_TARGETOS .. ".cpp",
+ MAME_DIR .. "src/osd/modules/lib/osdlib.h",
+ }
+
+ if BASE_TARGETOS=="unix" then
+ files {
+ MAME_DIR .. "src/osd/modules/file/posixdir.cpp",
+ MAME_DIR .. "src/osd/modules/file/posixfile.cpp",
+ MAME_DIR .. "src/osd/modules/file/posixfile.h",
+ MAME_DIR .. "src/osd/modules/file/posixptty.cpp",
+ MAME_DIR .. "src/osd/modules/file/posixsocket.cpp",
+ }
+ elseif BASE_TARGETOS=="win32" then
+ includedirs {
+ MAME_DIR .. "src/osd/windows",
+ }
+ files {
+ MAME_DIR .. "src/osd/modules/file/windir.cpp",
+ MAME_DIR .. "src/osd/modules/file/winfile.cpp",
+ MAME_DIR .. "src/osd/modules/file/winfile.h",
+ MAME_DIR .. "src/osd/modules/file/winptty.cpp",
+ MAME_DIR .. "src/osd/modules/file/winsocket.cpp",
+ MAME_DIR .. "src/osd/windows/winutil.cpp", -- FIXME put the necessary functions somewhere more appropriate
+ }
+ else
+ files {
+ MAME_DIR .. "src/osd/modules/file/stdfile.cpp",
+ }
+ end
+
+
diff --git a/docs/release/scripts/src/osd/sdl_cfg.lua b/docs/release/scripts/src/osd/sdl_cfg.lua
new file mode 100644
index 00000000000..3f8e3e10bbc
--- /dev/null
+++ b/docs/release/scripts/src/osd/sdl_cfg.lua
@@ -0,0 +1,156 @@
+-- license:BSD-3-Clause
+-- copyright-holders:MAMEdev Team
+
+dofile('modules.lua')
+
+forcedincludes {
+ MAME_DIR .. "src/osd/sdl/sdlprefix.h"
+}
+
+if SDL_NETWORK~="" and not _OPTIONS["DONT_USE_NETWORK"] then
+ defines {
+ "USE_NETWORK",
+ "OSD_NET_USE_" .. string.upper(SDL_NETWORK),
+ }
+end
+
+if _OPTIONS["NO_OPENGL"]~="1" and _OPTIONS["USE_DISPATCH_GL"]~="1" and _OPTIONS["MESA_INSTALL_ROOT"] then
+ includedirs {
+ path.join(_OPTIONS["MESA_INSTALL_ROOT"],"include"),
+ }
+end
+
+if _OPTIONS["SDL_INI_PATH"]~=nil then
+ defines {
+ "'INI_PATH=\"" .. _OPTIONS["SDL_INI_PATH"] .. "\"'",
+ }
+end
+
+if _OPTIONS["NO_X11"]=="1" then
+ defines {
+ "SDLMAME_NO_X11",
+ }
+else
+ defines {
+ "SDLMAME_X11",
+ }
+ includedirs {
+ "/usr/X11/include",
+ "/usr/X11R6/include",
+ "/usr/openwin/include",
+ }
+end
+
+if _OPTIONS["NO_USE_XINPUT"]=="1" then
+ defines {
+ "USE_XINPUT=0",
+ }
+else
+ defines {
+ "USE_XINPUT=1",
+ "USE_XINPUT_DEBUG=0",
+ }
+end
+
+if _OPTIONS["NO_USE_MIDI"]~="1" and _OPTIONS["targetos"]=="linux" then
+ buildoptions {
+ backtick(pkgconfigcmd() .. " --cflags alsa"),
+ }
+end
+
+defines {
+ "SDLMAME_SDL2=1",
+}
+if _OPTIONS["SDL2_MULTIAPI"]=="1" then
+ defines {
+ "SDL2_MULTIAPI",
+ }
+end
+
+defines {
+ "OSD_SDL",
+}
+
+if BASE_TARGETOS=="unix" then
+ defines {
+ "SDLMAME_UNIX",
+ }
+ if _OPTIONS["targetos"]=="macosx" then
+ if _OPTIONS["with-bundled-sdl2"]==nil then
+ if _OPTIONS["USE_LIBSDL"]~="1" then
+ buildoptions {
+ "-F" .. _OPTIONS["SDL_FRAMEWORK_PATH"],
+ }
+ else
+ defines {
+ "MACOSX_USE_LIBSDL",
+ }
+ buildoptions {
+ backtick(sdlconfigcmd() .. " --cflags | sed 's:/SDL::'"),
+ }
+ end
+ end
+ else
+ buildoptions {
+ backtick(sdlconfigcmd() .. " --cflags"),
+ }
+ if _OPTIONS["targetos"]~="asmjs" then
+ buildoptions {
+ backtick(pkgconfigcmd() .. " --cflags fontconfig"),
+ }
+ end
+ end
+end
+
+if _OPTIONS["targetos"]=="windows" then
+ configuration { "mingw* or vs*" }
+ defines {
+ "UNICODE",
+ "_UNICODE",
+ "main=utf8_main",
+ "_WIN32_WINNT=0x0501",
+ "WIN32_LEAN_AND_MEAN",
+ "NOMINMAX",
+ }
+
+ configuration { }
+
+elseif _OPTIONS["targetos"]=="linux" then
+ if _OPTIONS["QT_HOME"]~=nil then
+ buildoptions {
+ "-I" .. backtick(_OPTIONS["QT_HOME"] .. "/bin/qmake -query QT_INSTALL_HEADERS"),
+ }
+ else
+ buildoptions {
+ backtick(pkgconfigcmd() .. " --cflags Qt5Widgets"),
+ }
+ end
+elseif _OPTIONS["targetos"]=="macosx" then
+ defines {
+ "SDLMAME_MACOSX",
+ "SDLMAME_DARWIN",
+ }
+elseif _OPTIONS["targetos"]=="freebsd" then
+ buildoptions {
+ -- /usr/local/include is not considered a system include director on FreeBSD. GL.h resides there and throws warnings
+ "-isystem /usr/local/include",
+ }
+end
+
+configuration { "osx*" }
+ includedirs {
+ MAME_DIR .. "3rdparty/bx/include/compat/osx",
+ }
+
+configuration { "freebsd" }
+ includedirs {
+ MAME_DIR .. "3rdparty/bx/include/compat/freebsd",
+ }
+
+configuration { "netbsd" }
+ includedirs {
+ MAME_DIR .. "3rdparty/bx/include/compat/freebsd",
+ }
+
+configuration { }
+
diff --git a/docs/release/scripts/src/osd/uwp.lua b/docs/release/scripts/src/osd/uwp.lua
new file mode 100644
index 00000000000..47e8e149e24
--- /dev/null
+++ b/docs/release/scripts/src/osd/uwp.lua
@@ -0,0 +1,121 @@
+-- license:BSD-3-Clause
+-- copyright-holders:MAMEdev Team
+
+---------------------------------------------------------------------------
+--
+-- uwp.lua
+--
+-- Rules for the building of UWP OSD
+--
+---------------------------------------------------------------------------
+
+dofile("modules.lua")
+
+function maintargetosdoptions(_target,_subtarget)
+end
+
+project ("qtdbg_" .. _OPTIONS["osd"])
+ uuid (os.uuid("qtdbg_" .. _OPTIONS["osd"]))
+ kind (LIBTYPE)
+
+ dofile("uwp_cfg.lua")
+ includedirs {
+ MAME_DIR .. "src/emu",
+ MAME_DIR .. "src/devices", -- accessing imagedev from debugger
+ MAME_DIR .. "src/osd",
+ MAME_DIR .. "src/lib",
+ MAME_DIR .. "src/lib/util",
+ MAME_DIR .. "src/osd/modules/render",
+ MAME_DIR .. "3rdparty",
+ }
+ removeflags {
+ "SingleOutputDir",
+ }
+
+ files {
+ MAME_DIR .. "src/osd/modules/debugger/debugqt.cpp",
+ }
+
+project ("osd_" .. _OPTIONS["osd"])
+ uuid (os.uuid("osd_" .. _OPTIONS["osd"]))
+ kind (LIBTYPE)
+
+ removeflags {
+ "SingleOutputDir",
+ }
+
+ dofile("uwp_cfg.lua")
+ osdmodulesbuild()
+
+ includedirs {
+ MAME_DIR .. "src/emu",
+ MAME_DIR .. "src/devices", -- accessing imagedev from debugger
+ MAME_DIR .. "src/osd",
+ MAME_DIR .. "src/lib",
+ MAME_DIR .. "src/lib/util",
+ MAME_DIR .. "src/osd/modules/file",
+ MAME_DIR .. "src/osd/modules/render",
+ MAME_DIR .. "3rdparty",
+ }
+
+ includedirs {
+ MAME_DIR .. "src/osd/uwp",
+ MAME_DIR .. "src/osd/windows",
+ }
+
+ files {
+ MAME_DIR .. "src/osd/uwp/video.cpp",
+ MAME_DIR .. "src/osd/uwp/video.h",
+ MAME_DIR .. "src/osd/uwp/window.cpp",
+ MAME_DIR .. "src/osd/uwp/window.h",
+ MAME_DIR .. "src/osd/windows/winutf8.cpp",
+ MAME_DIR .. "src/osd/windows/winutf8.h",
+ MAME_DIR .. "src/osd/modules/osdwindow.cpp",
+ MAME_DIR .. "src/osd/modules/osdwindow.h",
+ MAME_DIR .. "src/osd/windows/winmain.cpp",
+ MAME_DIR .. "src/osd/windows/winmain.h",
+ MAME_DIR .. "src/osd/modules/render/drawnone.cpp",
+ MAME_DIR .. "src/osd/modules/render/drawnone.h",
+ MAME_DIR .. "src/osd/uwp/uwpcompat.cpp",
+ MAME_DIR .. "src/osd/uwp/uwpcompat.h",
+ MAME_DIR .. "src/osd/osdepend.h",
+ }
+
+project ("ocore_" .. _OPTIONS["osd"])
+ uuid (os.uuid("ocore_" .. _OPTIONS["osd"]))
+ kind (LIBTYPE)
+
+ removeflags {
+ "SingleOutputDir",
+ }
+
+ dofile("uwp_cfg.lua")
+
+ includedirs {
+ MAME_DIR .. "3rdparty",
+ MAME_DIR .. "src/emu",
+ MAME_DIR .. "src/osd",
+ MAME_DIR .. "src/osd/modules/file",
+ MAME_DIR .. "src/lib",
+ MAME_DIR .. "src/lib/util",
+ }
+
+ files {
+ MAME_DIR .. "src/osd/osdcomm.h",
+ MAME_DIR .. "src/osd/osdcore.cpp",
+ MAME_DIR .. "src/osd/osdcore.h",
+ MAME_DIR .. "src/osd/strconv.cpp",
+ MAME_DIR .. "src/osd/strconv.h",
+ MAME_DIR .. "src/osd/osdsync.cpp",
+ MAME_DIR .. "src/osd/osdsync.h",
+ MAME_DIR .. "src/osd/windows/winutil.cpp",
+ MAME_DIR .. "src/osd/windows/winutil.h",
+ MAME_DIR .. "src/osd/modules/osdmodule.cpp",
+ MAME_DIR .. "src/osd/modules/osdmodule.h",
+ MAME_DIR .. "src/osd/modules/file/winrtdir.cpp",
+ MAME_DIR .. "src/osd/modules/file/winrtfile.cpp",
+ MAME_DIR .. "src/osd/modules/file/winrtfile.h",
+ MAME_DIR .. "src/osd/modules/file/winrtptty.cpp",
+ MAME_DIR .. "src/osd/modules/file/winrtsocket.cpp",
+ MAME_DIR .. "src/osd/modules/lib/osdlib_uwp.cpp",
+ }
diff --git a/docs/release/scripts/src/osd/uwp_cfg.lua b/docs/release/scripts/src/osd/uwp_cfg.lua
new file mode 100644
index 00000000000..28892656728
--- /dev/null
+++ b/docs/release/scripts/src/osd/uwp_cfg.lua
@@ -0,0 +1,20 @@
+-- license:BSD-3-Clause
+-- copyright-holders:MAMEdev Team
+
+defines {
+ "OSD_UWP=1",
+ "USE_QTDEBUG=0",
+ "SDLMAME_NOASM=1",
+ "USE_OPENGL=0",
+ "NO_USE_MIDI=1",
+ "WINVER=0x0603",
+ "_WIN32_WINNT=0x0603",
+ "NTDDI_VERSION=0x06030000",
+ "MODERN_WIN_API",
+ "WIN32_LEAN_AND_MEAN",
+ "NOMINMAX",
+}
+
+flags {
+ "Unicode",
+}
diff --git a/docs/release/scripts/src/osd/windows.lua b/docs/release/scripts/src/osd/windows.lua
new file mode 100644
index 00000000000..32e7f2339a7
--- /dev/null
+++ b/docs/release/scripts/src/osd/windows.lua
@@ -0,0 +1,291 @@
+-- license:BSD-3-Clause
+-- copyright-holders:MAMEdev Team
+
+---------------------------------------------------------------------------
+--
+-- windows.lua
+--
+-- Rules for the building for Windows
+--
+---------------------------------------------------------------------------
+
+dofile("modules.lua")
+
+
+function maintargetosdoptions(_target,_subtarget)
+ osdmodulestargetconf()
+
+ configuration { "mingw*" }
+ linkoptions {
+ "-municode",
+ }
+ links {
+ "mingw32",
+ }
+
+ configuration { }
+
+ if _OPTIONS["DIRECTINPUT"] == "8" then
+ links {
+ "dinput8",
+ }
+ else
+ links {
+ "dinput",
+ }
+ end
+
+
+ if _OPTIONS["USE_SDL"] == "1" then
+ links {
+ "SDL.dll",
+ }
+ end
+
+ links {
+ "comctl32",
+ "comdlg32",
+ "psapi",
+ "ole32",
+ }
+end
+
+
+newoption {
+ trigger = "DIRECTINPUT",
+ description = "Minimum DirectInput version to support",
+ allowed = {
+ { "7", "Support DirectInput 7 or later" },
+ { "8", "Support DirectInput 8 or later" },
+ },
+}
+
+if not _OPTIONS["DIRECTINPUT"] then
+ _OPTIONS["DIRECTINPUT"] = "8"
+end
+
+newoption {
+ trigger = "USE_SDL",
+ description = "Enable SDL sound output",
+ allowed = {
+ { "0", "Disable SDL sound output" },
+ { "1", "Enable SDL sound output" },
+ },
+}
+
+if not _OPTIONS["USE_SDL"] then
+ _OPTIONS["USE_SDL"] = "0"
+end
+
+newoption {
+ trigger = "CYGWIN_BUILD",
+ description = "Build with Cygwin tools",
+ allowed = {
+ { "0", "Build with MinGW tools" },
+ { "1", "Build with Cygwin tools" },
+ },
+}
+
+if not _OPTIONS["CYGWIN_BUILD"] then
+ _OPTIONS["CYGWIN_BUILD"] = "0"
+end
+
+
+if _OPTIONS["CYGWIN_BUILD"] == "1" then
+ buildoptions {
+ "-mmo-cygwin",
+ }
+ linkoptions {
+ "-mno-cygwin",
+ }
+end
+
+
+project ("qtdbg_" .. _OPTIONS["osd"])
+ uuid (os.uuid("qtdbg_" .. _OPTIONS["osd"]))
+ kind (LIBTYPE)
+
+ dofile("windows_cfg.lua")
+ includedirs {
+ MAME_DIR .. "src/emu",
+ MAME_DIR .. "src/devices", -- accessing imagedev from debugger
+ MAME_DIR .. "src/osd",
+ MAME_DIR .. "src/lib",
+ MAME_DIR .. "src/lib/util",
+ MAME_DIR .. "src/osd/modules/render",
+ MAME_DIR .. "3rdparty",
+ }
+ qtdebuggerbuild()
+
+project ("osd_" .. _OPTIONS["osd"])
+ uuid (os.uuid("osd_" .. _OPTIONS["osd"]))
+ kind (LIBTYPE)
+
+ dofile("windows_cfg.lua")
+ osdmodulesbuild()
+
+ defines {
+ "DIRECT3D_VERSION=0x0900",
+ }
+
+ if _OPTIONS["DIRECTINPUT"] == "8" then
+ defines {
+ "DIRECTINPUT_VERSION=0x0800",
+ }
+ else
+ defines {
+ "DIRECTINPUT_VERSION=0x0700",
+ }
+ end
+
+ includedirs {
+ MAME_DIR .. "src/emu",
+ MAME_DIR .. "src/devices", -- accessing imagedev from debugger
+ MAME_DIR .. "src/osd",
+ MAME_DIR .. "src/lib",
+ MAME_DIR .. "src/lib/util",
+ MAME_DIR .. "src/osd/modules/file",
+ MAME_DIR .. "src/osd/modules/render",
+ MAME_DIR .. "3rdparty",
+ }
+
+ includedirs {
+ MAME_DIR .. "src/osd/windows",
+ }
+
+ files {
+ MAME_DIR .. "src/osd/modules/render/d3d/d3dhlsl.cpp",
+ MAME_DIR .. "src/osd/modules/render/d3d/d3dcomm.h",
+ MAME_DIR .. "src/osd/modules/render/d3d/d3dhlsl.h",
+ MAME_DIR .. "src/osd/modules/render/drawd3d.cpp",
+ MAME_DIR .. "src/osd/modules/render/drawd3d.h",
+ MAME_DIR .. "src/osd/modules/render/drawgdi.cpp",
+ MAME_DIR .. "src/osd/modules/render/drawgdi.h",
+ MAME_DIR .. "src/osd/modules/render/drawnone.cpp",
+ MAME_DIR .. "src/osd/modules/render/drawnone.h",
+ MAME_DIR .. "src/osd/windows/video.cpp",
+ MAME_DIR .. "src/osd/windows/video.h",
+ MAME_DIR .. "src/osd/windows/window.cpp",
+ MAME_DIR .. "src/osd/windows/window.h",
+ MAME_DIR .. "src/osd/modules/osdwindow.cpp",
+ MAME_DIR .. "src/osd/modules/osdwindow.h",
+ MAME_DIR .. "src/osd/windows/winmenu.cpp",
+ MAME_DIR .. "src/osd/windows/winmain.cpp",
+ MAME_DIR .. "src/osd/windows/winmain.h",
+ MAME_DIR .. "src/osd/osdepend.h",
+ MAME_DIR .. "src/osd/modules/debugger/win/consolewininfo.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/consolewininfo.h",
+ MAME_DIR .. "src/osd/modules/debugger/win/debugbaseinfo.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/debugbaseinfo.h",
+ MAME_DIR .. "src/osd/modules/debugger/win/debugviewinfo.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/debugviewinfo.h",
+ MAME_DIR .. "src/osd/modules/debugger/win/debugwininfo.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/debugwininfo.h",
+ MAME_DIR .. "src/osd/modules/debugger/win/disasmbasewininfo.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/disasmbasewininfo.h",
+ MAME_DIR .. "src/osd/modules/debugger/win/disasmviewinfo.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/disasmviewinfo.h",
+ MAME_DIR .. "src/osd/modules/debugger/win/disasmwininfo.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/disasmwininfo.h",
+ MAME_DIR .. "src/osd/modules/debugger/win/editwininfo.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/editwininfo.h",
+ MAME_DIR .. "src/osd/modules/debugger/win/logwininfo.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/logwininfo.h",
+ MAME_DIR .. "src/osd/modules/debugger/win/memoryviewinfo.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/memoryviewinfo.h",
+ MAME_DIR .. "src/osd/modules/debugger/win/memorywininfo.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/memorywininfo.h",
+ MAME_DIR .. "src/osd/modules/debugger/win/pointswininfo.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/pointswininfo.h",
+ MAME_DIR .. "src/osd/modules/debugger/win/uimetrics.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/uimetrics.h",
+ MAME_DIR .. "src/osd/modules/debugger/win/debugwin.h",
+ }
+
+
+project ("ocore_" .. _OPTIONS["osd"])
+ uuid (os.uuid("ocore_" .. _OPTIONS["osd"]))
+ kind (LIBTYPE)
+
+ removeflags {
+ "SingleOutputDir",
+ }
+
+ dofile("windows_cfg.lua")
+
+ includedirs {
+ MAME_DIR .. "3rdparty",
+ MAME_DIR .. "src/emu",
+ MAME_DIR .. "src/osd",
+ MAME_DIR .. "src/osd/modules/file",
+ MAME_DIR .. "src/lib",
+ MAME_DIR .. "src/lib/util",
+ }
+
+ BASE_TARGETOS = "win32"
+ SDLOS_TARGETOS = "win32"
+
+ includedirs {
+ MAME_DIR .. "src/osd/windows",
+ MAME_DIR .. "src/lib/winpcap",
+ }
+
+ files {
+ MAME_DIR .. "src/osd/eigccppc.h",
+ MAME_DIR .. "src/osd/eigccx86.h",
+ MAME_DIR .. "src/osd/eivc.h",
+ MAME_DIR .. "src/osd/eivcx86.h",
+ MAME_DIR .. "src/osd/eminline.h",
+ MAME_DIR .. "src/osd/osdcomm.h",
+ MAME_DIR .. "src/osd/osdcore.cpp",
+ MAME_DIR .. "src/osd/osdcore.h",
+ MAME_DIR .. "src/osd/strconv.cpp",
+ MAME_DIR .. "src/osd/strconv.h",
+ MAME_DIR .. "src/osd/osdsync.cpp",
+ MAME_DIR .. "src/osd/osdsync.h",
+ MAME_DIR .. "src/osd/windows/main.cpp",
+ MAME_DIR .. "src/osd/windows/winutf8.cpp",
+ MAME_DIR .. "src/osd/windows/winutf8.h",
+ MAME_DIR .. "src/osd/windows/winutil.cpp",
+ MAME_DIR .. "src/osd/windows/winutil.h",
+ MAME_DIR .. "src/osd/modules/osdmodule.cpp",
+ MAME_DIR .. "src/osd/modules/osdmodule.h",
+ MAME_DIR .. "src/osd/modules/file/windir.cpp",
+ MAME_DIR .. "src/osd/modules/file/winfile.cpp",
+ MAME_DIR .. "src/osd/modules/file/winfile.h",
+ MAME_DIR .. "src/osd/modules/file/winptty.cpp",
+ MAME_DIR .. "src/osd/modules/file/winsocket.cpp",
+ MAME_DIR .. "src/osd/modules/lib/osdlib_win32.cpp",
+ }
+
+
+
+--------------------------------------------------
+-- ledutil
+--------------------------------------------------
+
+if _OPTIONS["with-tools"] then
+ project("ledutil")
+ uuid ("061293ca-7290-44ac-b2b5-5913ae8dc9c0")
+ kind "ConsoleApp"
+
+ flags {
+ "Symbols", -- always include minimum symbols for executables
+ }
+
+ if _OPTIONS["SEPARATE_BIN"]~="1" then
+ targetdir(MAME_DIR)
+ end
+
+ links {
+ "ocore_" .. _OPTIONS["osd"],
+ }
+
+ includedirs {
+ MAME_DIR .. "src/osd",
+ }
+
+ files {
+ MAME_DIR .. "src/osd/windows/ledutil.cpp",
+ }
+end
diff --git a/docs/release/scripts/src/osd/windows_cfg.lua b/docs/release/scripts/src/osd/windows_cfg.lua
new file mode 100644
index 00000000000..1baa45f4255
--- /dev/null
+++ b/docs/release/scripts/src/osd/windows_cfg.lua
@@ -0,0 +1,59 @@
+-- license:BSD-3-Clause
+-- copyright-holders:MAMEdev Team
+
+defines {
+ "OSD_WINDOWS",
+ "WIN32_LEAN_AND_MEAN",
+ "NOMINMAX",
+}
+
+configuration { "mingw* or vs*" }
+ defines {
+ "UNICODE",
+ "_UNICODE",
+ "main=utf8_main",
+ }
+
+configuration { "vs*" }
+ flags {
+ "Unicode",
+ }
+
+configuration { }
+
+if not _OPTIONS["MODERN_WIN_API"] then
+ _OPTIONS["MODERN_WIN_API"] = "0"
+end
+
+if _OPTIONS["MODERN_WIN_API"]=="1" then
+ defines {
+ "WINVER=0x0602",
+ "_WIN32_WINNT=0x0602",
+ "NTDDI_VERSION=0x06030000",
+ "MODERN_WIN_API",
+ }
+else
+ defines {
+ "_WIN32_WINNT=0x0501",
+ }
+end
+
+if not _OPTIONS["DONT_USE_NETWORK"] then
+ defines {
+ "USE_NETWORK",
+ "OSD_NET_USE_PCAP",
+ }
+end
+
+if _OPTIONS["USE_SDL"]=="1" then
+ defines {
+ "SDLMAME_SDL2=1",
+ "USE_XINPUT=0",
+ "USE_SDL=1",
+ "USE_SDL_SOUND",
+ }
+else
+ defines {
+ "USE_SDL=0",
+ }
+end
diff --git a/docs/release/scripts/src/osd/winui.lua b/docs/release/scripts/src/osd/winui.lua
new file mode 100644
index 00000000000..8cfdd0408e2
--- /dev/null
+++ b/docs/release/scripts/src/osd/winui.lua
@@ -0,0 +1,318 @@
+-- license:BSD-3-Clause
+-- copyright-holders:Robbbert
+
+---------------------------------------------------------------------------
+--
+-- winui.lua
+--
+-- Rules for the building for Windows
+--
+---------------------------------------------------------------------------
+
+dofile("modules.lua")
+
+premake.make.linkoptions_after = false;
+
+function maintargetosdoptions(_target,_subtarget)
+ kind "WindowedApp"
+
+ osdmodulestargetconf()
+
+ configuration { "mingw*-gcc" }
+ linkoptions {
+ "-municode",
+ "-lmingw32",
+ "-Wl,--allow-multiple-definition",
+ }
+
+ configuration { "x64", "Release" }
+ targetsuffix "ui64"
+
+ configuration { "x64", "Debug" }
+ targetsuffix "ui64d"
+
+ configuration { "x32", "Release" }
+ targetsuffix "ui"
+
+ configuration { "x32", "Debug" }
+ targetsuffix "uid"
+
+ configuration { "Native", "Release" }
+ targetsuffix "ui"
+
+ configuration { "Native", "Debug" }
+ targetsuffix "uid"
+
+ configuration { }
+
+ if _OPTIONS["DIRECTINPUT"] == "8" then
+ links {
+ "dinput8",
+ }
+ else
+ links {
+ "dinput",
+ }
+ end
+
+ links {
+ "comctl32",
+ "comdlg32",
+ "psapi",
+ "ole32",
+ }
+
+-- Local file gives correct icon in mame instance inside of mameui
+-- Local file must #include mameui.rc
+ override_resources = true;
+ rctarget = _target;
+ local rcfile = MAME_DIR .. "src/osd/winui/" .. _target .. ".rc"
+ local uifile = MAME_DIR .. "src/osd/winui/" .. _target .. "ui.rc"
+
+ if not os.isfile(rcfile) then
+ print(string.format("***** %s not found *****",rcfile))
+ os.exit();
+ end
+
+ if not os.isfile(uifile) then
+ print(string.format("***** %s not found *****",uifile))
+ os.exit();
+ end
+
+ files {
+ rcfile,
+ }
+ dependency {
+ { "$(OBJDIR)/".._target ..".res" , GEN_DIR .. "/resource/" .. _target .. "vers.rc", true },
+ }
+end
+
+
+newoption {
+ trigger = "DIRECTINPUT",
+ description = "Minimum DirectInput version to support",
+ allowed = {
+ { "7", "Support DirectInput 7 or later" },
+ { "8", "Support DirectInput 8 or later" },
+ },
+}
+
+if not _OPTIONS["DIRECTINPUT"] then
+ _OPTIONS["DIRECTINPUT"] = "8"
+end
+
+
+project ("qtdbg_" .. _OPTIONS["osd"])
+ uuid (os.uuid("qtdbg_" .. _OPTIONS["osd"]))
+ kind (LIBTYPE)
+
+ dofile("winui_cfg.lua")
+ includedirs {
+ MAME_DIR .. "src/emu",
+ MAME_DIR .. "src/devices", -- accessing imagedev from debugger
+ MAME_DIR .. "src/osd",
+ MAME_DIR .. "src/lib",
+ MAME_DIR .. "src/lib/util",
+ MAME_DIR .. "src/osd/modules/render",
+ MAME_DIR .. "3rdparty",
+ }
+ qtdebuggerbuild()
+
+project ("osd_" .. _OPTIONS["osd"])
+ uuid (os.uuid("osd_" .. _OPTIONS["osd"]))
+ kind "StaticLib"
+
+ dofile("winui_cfg.lua")
+ osdmodulesbuild()
+
+ defines {
+ "DIRECT3D_VERSION=0x0900",
+ }
+
+ if _OPTIONS["DIRECTINPUT"] == "8" then
+ defines {
+ "DIRECTINPUT_VERSION=0x0800",
+ }
+ else
+ defines {
+ "DIRECTINPUT_VERSION=0x0700",
+ }
+ end
+
+ includedirs {
+ MAME_DIR .. "src/emu",
+ MAME_DIR .. "src/devices",
+ MAME_DIR .. "src/osd",
+ MAME_DIR .. "src/lib",
+ MAME_DIR .. "src/lib/util",
+ MAME_DIR .. "src/osd/modules/file",
+ MAME_DIR .. "src/osd/modules/render",
+ MAME_DIR .. "3rdparty",
+ MAME_DIR .. "src/frontend/mame",
+ MAME_DIR .. "src/osd/windows",
+ }
+
+ files {
+ MAME_DIR .. "src/osd/modules/render/d3d/d3dintf.h",
+ MAME_DIR .. "src/osd/modules/render/d3d/d3dhlsl.cpp",
+ MAME_DIR .. "src/osd/modules/render/d3d/d3dcomm.h",
+ MAME_DIR .. "src/osd/modules/render/d3d/d3dhlsl.h",
+ MAME_DIR .. "src/osd/modules/render/drawd3d.cpp",
+ MAME_DIR .. "src/osd/modules/render/drawd3d.h",
+ MAME_DIR .. "src/osd/modules/render/drawgdi.cpp",
+ MAME_DIR .. "src/osd/modules/render/drawgdi.h",
+ MAME_DIR .. "src/osd/modules/render/drawnone.cpp",
+ MAME_DIR .. "src/osd/modules/render/drawnone.h",
+ MAME_DIR .. "src/osd/windows/video.cpp",
+ MAME_DIR .. "src/osd/windows/video.h",
+ MAME_DIR .. "src/osd/windows/window.cpp",
+ MAME_DIR .. "src/osd/windows/window.h",
+ MAME_DIR .. "src/osd/modules/osdwindow.cpp",
+ MAME_DIR .. "src/osd/modules/osdwindow.h",
+ MAME_DIR .. "src/osd/windows/winmain.cpp",
+ MAME_DIR .. "src/osd/windows/winmain.h",
+ MAME_DIR .. "src/osd/osdepend.h",
+ MAME_DIR .. "src/osd/windows/winmenu.cpp",
+-- MAME_DIR .. "src/osd/winui/newui.cpp",
+ MAME_DIR .. "src/osd/windows/winmain.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/consolewininfo.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/consolewininfo.h",
+ MAME_DIR .. "src/osd/modules/debugger/win/debugbaseinfo.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/debugbaseinfo.h",
+ MAME_DIR .. "src/osd/modules/debugger/win/debugviewinfo.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/debugviewinfo.h",
+ MAME_DIR .. "src/osd/modules/debugger/win/debugwininfo.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/debugwininfo.h",
+ MAME_DIR .. "src/osd/modules/debugger/win/disasmbasewininfo.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/disasmbasewininfo.h",
+ MAME_DIR .. "src/osd/modules/debugger/win/disasmviewinfo.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/disasmviewinfo.h",
+ MAME_DIR .. "src/osd/modules/debugger/win/disasmwininfo.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/disasmwininfo.h",
+ MAME_DIR .. "src/osd/modules/debugger/win/editwininfo.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/editwininfo.h",
+ MAME_DIR .. "src/osd/modules/debugger/win/logwininfo.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/logwininfo.h",
+ MAME_DIR .. "src/osd/modules/debugger/win/memoryviewinfo.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/memoryviewinfo.h",
+ MAME_DIR .. "src/osd/modules/debugger/win/memorywininfo.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/memorywininfo.h",
+ MAME_DIR .. "src/osd/modules/debugger/win/pointswininfo.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/pointswininfo.h",
+ MAME_DIR .. "src/osd/modules/debugger/win/uimetrics.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/uimetrics.h",
+ MAME_DIR .. "src/osd/modules/debugger/win/debugwin.h",
+ MAME_DIR .. "src/osd/winui/bitmask.cpp",
+ MAME_DIR .. "src/osd/winui/columnedit.cpp",
+ MAME_DIR .. "src/osd/winui/datamap.cpp",
+ MAME_DIR .. "src/osd/winui/dialogs.cpp",
+ MAME_DIR .. "src/osd/winui/dijoystick.cpp",
+ MAME_DIR .. "src/osd/winui/directdraw.cpp",
+ MAME_DIR .. "src/osd/winui/directinput.cpp",
+ MAME_DIR .. "src/osd/winui/directories.cpp",
+ MAME_DIR .. "src/osd/winui/dirwatch.cpp",
+ MAME_DIR .. "src/osd/winui/dxdecode.cpp",
+ MAME_DIR .. "src/osd/winui/help.cpp",
+ MAME_DIR .. "src/osd/winui/helpids.cpp",
+ MAME_DIR .. "src/osd/winui/history.cpp",
+ MAME_DIR .. "src/osd/winui/layout.cpp",
+ MAME_DIR .. "src/osd/winui/mui_audit.cpp",
+ MAME_DIR .. "src/osd/winui/mui_main.cpp",
+ MAME_DIR .. "src/osd/winui/mui_opts.cpp",
+ MAME_DIR .. "src/osd/winui/mui_util.cpp",
+ MAME_DIR .. "src/osd/winui/picker.cpp",
+ MAME_DIR .. "src/osd/winui/properties.cpp",
+ MAME_DIR .. "src/osd/winui/resource.h",
+ MAME_DIR .. "src/osd/winui/screenshot.cpp",
+ MAME_DIR .. "src/osd/winui/splitters.cpp",
+ MAME_DIR .. "src/osd/winui/tabview.cpp",
+ MAME_DIR .. "src/osd/winui/treeview.cpp",
+ MAME_DIR .. "src/osd/winui/winui.cpp",
+ }
+
+project ("ocore_" .. _OPTIONS["osd"])
+ uuid (os.uuid("ocore_" .. _OPTIONS["osd"]))
+ kind "StaticLib"
+
+ options {
+ "ForceCPP",
+ }
+ removeflags {
+ "SingleOutputDir",
+ }
+
+ dofile("windows_cfg.lua")
+
+ includedirs {
+ MAME_DIR .. "3rdparty",
+ MAME_DIR .. "src/emu",
+ MAME_DIR .. "src/osd",
+ MAME_DIR .. "src/osd/modules/file",
+ MAME_DIR .. "src/lib",
+ MAME_DIR .. "src/lib/util",
+ }
+
+ BASE_TARGETOS = "win32"
+ SDLOS_TARGETOS = "win32"
+ SYNC_IMPLEMENTATION = "windows"
+
+ includedirs {
+ MAME_DIR .. "src/osd/windows",
+ MAME_DIR .. "src/lib/winpcap",
+ }
+
+ files {
+ MAME_DIR .. "src/osd/eigccppc.h",
+ MAME_DIR .. "src/osd/eigccx86.h",
+ MAME_DIR .. "src/osd/eivc.h",
+ MAME_DIR .. "src/osd/eivcx86.h",
+ MAME_DIR .. "src/osd/eminline.h",
+ MAME_DIR .. "src/osd/osdcomm.h",
+ MAME_DIR .. "src/osd/osdcore.cpp",
+ MAME_DIR .. "src/osd/osdcore.h",
+ MAME_DIR .. "src/osd/strconv.cpp",
+ MAME_DIR .. "src/osd/strconv.h",
+ MAME_DIR .. "src/osd/windows/main.cpp",
+ MAME_DIR .. "src/osd/osdsync.cpp",
+ MAME_DIR .. "src/osd/osdsync.h",
+ MAME_DIR .. "src/osd/windows/winutf8.cpp",
+ MAME_DIR .. "src/osd/windows/winutf8.h",
+ MAME_DIR .. "src/osd/windows/winutil.cpp",
+ MAME_DIR .. "src/osd/windows/winutil.h",
+ MAME_DIR .. "src/osd/modules/osdmodule.cpp",
+ MAME_DIR .. "src/osd/modules/osdmodule.h",
+ MAME_DIR .. "src/osd/modules/file/windir.cpp",
+ MAME_DIR .. "src/osd/modules/file/winfile.cpp",
+ MAME_DIR .. "src/osd/modules/file/winfile.h",
+ MAME_DIR .. "src/osd/modules/file/winptty.cpp",
+ MAME_DIR .. "src/osd/modules/file/winsocket.cpp",
+ MAME_DIR .. "src/osd/modules/lib/osdlib_win32.cpp",
+ }
+
+
+--------------------------------------------------
+-- ledutil
+--------------------------------------------------
+
+if _OPTIONS["with-tools"] then
+ project("ledutil")
+ uuid ("061293ca-7290-44ac-b2b5-5913ae8dc9c0")
+ kind "ConsoleApp"
+
+ if _OPTIONS["SEPARATE_BIN"]~="1" then
+ targetdir(MAME_DIR)
+ end
+
+ links {
+ "ocore_" .. _OPTIONS["osd"],
+ }
+
+ includedirs {
+ MAME_DIR .. "src/osd",
+ }
+
+ files {
+ MAME_DIR .. "src/osd/windows/ledutil.cpp",
+ }
+end
+
diff --git a/docs/release/scripts/src/osd/winui_cfg.lua b/docs/release/scripts/src/osd/winui_cfg.lua
new file mode 100644
index 00000000000..9c5cb9b3778
--- /dev/null
+++ b/docs/release/scripts/src/osd/winui_cfg.lua
@@ -0,0 +1,27 @@
+defines {
+ "UNICODE",
+ "_UNICODE",
+ "OSD_WINDOWS",
+ "USE_SDL=0",
+ --"WIN95_MULTIMON"
+ "main=utf8_main",
+ "_WIN32_WINNT=0x0501",
+ "USE_QTDEBUG=0",
+ "WIN32_LEAN_AND_MEAN",
+ "NOMINMAX",
+}
+
+configuration { "vs*" }
+ flags {
+ "Unicode",
+ }
+
+configuration { }
+
+if not _OPTIONS["DONT_USE_NETWORK"] then
+ defines {
+ "USE_NETWORK",
+ "OSD_NET_USE_PCAP",
+ }
+end
+
diff --git a/docs/release/scripts/src/sound.lua b/docs/release/scripts/src/sound.lua
new file mode 100644
index 00000000000..a4797ce9bf3
--- /dev/null
+++ b/docs/release/scripts/src/sound.lua
@@ -0,0 +1,1435 @@
+-- license:BSD-3-Clause
+-- copyright-holders:MAMEdev Team
+
+---------------------------------------------------------------------------
+--
+-- sound.lua
+--
+-- Rules for building sound cores
+--
+----------------------------------------------------------------------------
+
+files {
+ MAME_DIR .. "src/devices/sound/flt_vol.cpp",
+ MAME_DIR .. "src/devices/sound/flt_vol.h",
+ MAME_DIR .. "src/devices/sound/flt_rc.cpp",
+ MAME_DIR .. "src/devices/sound/flt_rc.h",
+ MAME_DIR .. "src/devices/sound/samples.cpp",
+ MAME_DIR .. "src/devices/sound/samples.h",
+}
+
+---------------------------------------------------
+-- DACs
+--@src/devices/sound/dac.h,SOUNDS["DAC"] = true
+--@src/devices/sound/dmadac.h,SOUNDS["DMADAC"] = true
+--@src/devices/sound/spkrdev.h,SOUNDS["SPEAKER"] = true
+--@src/devices/sound/beep.h,SOUNDS["BEEP"] = true
+---------------------------------------------------
+
+if (SOUNDS["DAC"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/dac.cpp",
+ MAME_DIR .. "src/devices/sound/dac.h",
+ }
+end
+
+if (SOUNDS["DMADAC"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/dmadac.cpp",
+ MAME_DIR .. "src/devices/sound/dmadac.h",
+ }
+end
+
+if (SOUNDS["SPEAKER"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/spkrdev.cpp",
+ MAME_DIR .. "src/devices/sound/spkrdev.h",
+ }
+end
+
+if (SOUNDS["BEEP"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/beep.cpp",
+ MAME_DIR .. "src/devices/sound/beep.h",
+ }
+end
+
+
+
+---------------------------------------------------
+-- CD audio
+--@src/devices/sound/cdda.h,SOUNDS["CDDA"] = true
+---------------------------------------------------
+
+if (SOUNDS["CDDA"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/cdda.cpp",
+ MAME_DIR .. "src/devices/sound/cdda.h",
+ }
+end
+
+
+
+---------------------------------------------------
+-- Discrete component audio
+--@src/devices/sound/discrete.h,SOUNDS["DISCRETE"] = true
+---------------------------------------------------
+
+if (SOUNDS["DISCRETE"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/discrete.cpp",
+ MAME_DIR .. "src/devices/sound/discrete.h",
+ MAME_DIR .. "src/devices/sound/disc_cls.h",
+ MAME_DIR .. "src/devices/sound/disc_dev.h",
+ MAME_DIR .. "src/devices/sound/disc_dev.hxx",
+ MAME_DIR .. "src/devices/sound/disc_flt.h",
+ MAME_DIR .. "src/devices/sound/disc_flt.hxx",
+ MAME_DIR .. "src/devices/sound/disc_inp.hxx",
+ MAME_DIR .. "src/devices/sound/disc_mth.h",
+ MAME_DIR .. "src/devices/sound/disc_mth.hxx",
+ MAME_DIR .. "src/devices/sound/disc_sys.hxx",
+ MAME_DIR .. "src/devices/sound/disc_wav.h",
+ MAME_DIR .. "src/devices/sound/disc_wav.hxx",
+ }
+end
+
+---------------------------------------------------
+-- AC97
+--@src/devices/sound/pci-ac97.h,SOUNDS["AC97"] = true
+---------------------------------------------------
+
+if (SOUNDS["AC97"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/pci-ac97.cpp",
+ MAME_DIR .. "src/devices/sound/pci-ac97.h",
+ }
+end
+
+
+
+---------------------------------------------------
+-- Apple custom sound chips
+--@src/devices/sound/asc.h,SOUNDS["ASC"] = true
+--@src/devices/sound/awacs.h,SOUNDS["AWACS"] = true
+---------------------------------------------------
+
+if (SOUNDS["ASC"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/asc.cpp",
+ MAME_DIR .. "src/devices/sound/asc.h",
+ }
+end
+
+if (SOUNDS["AWACS"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/awacs.cpp",
+ MAME_DIR .. "src/devices/sound/awacs.h",
+ }
+end
+
+
+---------------------------------------------------
+-- Atari custom sound chips
+--@src/devices/sound/pokey.h,SOUNDS["POKEY"] = true
+--@src/devices/sound/tiaintf.h,SOUNDS["TIA"] = true
+---------------------------------------------------
+
+if (SOUNDS["POKEY"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/pokey.cpp",
+ MAME_DIR .. "src/devices/sound/pokey.h",
+ }
+end
+
+if (SOUNDS["TIA"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/tiasound.cpp",
+ MAME_DIR .. "src/devices/sound/tiasound.h",
+ MAME_DIR .. "src/devices/sound/tiaintf.cpp",
+ MAME_DIR .. "src/devices/sound/tiaintf.h",
+ }
+end
+
+
+
+---------------------------------------------------
+-- Amiga audio hardware
+--@src/devices/machine/8364_paula.h,SOUNDS["PAULA_8364"] = true
+---------------------------------------------------
+
+if (SOUNDS["PAULA_8364"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/8364_paula.cpp",
+ MAME_DIR .. "src/devices/machine/8364_paula.h",
+ }
+end
+
+
+
+---------------------------------------------------
+-- Bally Astrocade sound system
+--@src/devices/sound/astrocde.h,SOUNDS["ASTROCADE"] = true
+---------------------------------------------------
+
+if (SOUNDS["ASTROCADE"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/astrocde.cpp",
+ MAME_DIR .. "src/devices/sound/astrocde.h",
+ }
+end
+
+
+
+---------------------------------------------------
+---------------------------------------------------
+-- AC97
+--@src/devices/sound/pic-ac97.h,SOUNDS["AC97"] = true
+---------------------------------------------------
+
+if (SOUNDS["AC97"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/pci-ac97.cpp",
+ MAME_DIR .. "src/devices/sound/pci-ac97.h",
+ }
+end
+-- CEM 3394 analog synthesizer chip
+--@src/devices/sound/cem3394.h,SOUNDS["CEM3394"] = true
+---------------------------------------------------
+
+if (SOUNDS["CEM3394"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/cem3394.cpp",
+ MAME_DIR .. "src/devices/sound/cem3394.h",
+ }
+end
+
+
+
+---------------------------------------------------
+-- Creative Labs SB0400 Audigy2 Value
+--@src/devices/sound/sb0400.h,SOUNDS["SB0400"] = true
+---------------------------------------------------
+
+if (SOUNDS["SB0400"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/sb0400.cpp",
+ MAME_DIR .. "src/devices/sound/sb0400.h",
+ }
+end
+
+
+--------------------------------------------------
+-- Creative Labs Ensonic AudioPCI97 ES1373
+--@src/devices/sound/es1373.h,SOUNDS["ES1373"] = true
+--------------------------------------------------
+
+if (SOUNDS["ES1373"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/es1373.cpp",
+ MAME_DIR .. "src/devices/sound/es1373.h",
+ }
+end
+
+---------------------------------------------------
+-- Data East custom sound chips
+--@src/devices/sound/bsmt2000.h,SOUNDS["BSMT2000"] = true
+---------------------------------------------------
+
+if (SOUNDS["BSMT2000"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/bsmt2000.cpp",
+ MAME_DIR .. "src/devices/sound/bsmt2000.h",
+ }
+end
+
+
+
+---------------------------------------------------
+-- Ensoniq 5503 (Apple IIgs)
+--@src/devices/sound/es5503.h,SOUNDS["ES5503"] = true
+---------------------------------------------------
+
+if (SOUNDS["ES5503"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/es5503.cpp",
+ MAME_DIR .. "src/devices/sound/es5503.h",
+ }
+end
+
+
+
+---------------------------------------------------
+-- Ensoniq 5505/5506
+--@src/devices/sound/es5506.h,SOUNDS["ES5505"] = true
+---------------------------------------------------
+
+if (SOUNDS["ES5505"]~=null or SOUNDS["ES5506"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/es5506.cpp",
+ MAME_DIR .. "src/devices/sound/es5506.h",
+ }
+end
+
+
+---------------------------------------------------
+-- Ensoniq "pump" device, interfaces 5505/5506 with 5510
+--@src/devices/sound/esqpump.h,SOUNDS["ESQPUMP"] = true
+---------------------------------------------------
+
+if (SOUNDS["ESQPUMP"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/esqpump.cpp",
+ MAME_DIR .. "src/devices/sound/esqpump.h",
+ }
+end
+
+
+---------------------------------------------------
+-- Excellent Systems ADPCM sound chip
+--@src/devices/sound/es8712.h,SOUNDS["ES8712"] = true
+---------------------------------------------------
+
+if (SOUNDS["ES8712"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/es8712.cpp",
+ MAME_DIR .. "src/devices/sound/es8712.h",
+ }
+end
+
+
+
+---------------------------------------------------
+-- Gaelco custom sound chips
+--@src/devices/sound/gaelco.h,SOUNDS["GAELCO_CG1V"] = true
+---------------------------------------------------
+
+if (SOUNDS["GAELCO_CG1V"]~=null or SOUNDS["GAELCO_GAE1"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/gaelco.cpp",
+ MAME_DIR .. "src/devices/sound/gaelco.h",
+ }
+end
+
+
+---------------------------------------------------
+-- RCA CDP1863
+--@src/devices/sound/cdp1863.h,SOUNDS["CDP1863"] = true
+---------------------------------------------------
+
+if (SOUNDS["CDP1863"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/cdp1863.cpp",
+ MAME_DIR .. "src/devices/sound/cdp1863.h",
+ }
+end
+
+
+
+---------------------------------------------------
+-- RCA CDP1864
+--@src/devices/sound/cdp1864.h,SOUNDS["CDP1864"] = true
+---------------------------------------------------
+
+if (SOUNDS["CDP1864"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/cdp1864.cpp",
+ MAME_DIR .. "src/devices/sound/cdp1864.h",
+ }
+end
+
+
+
+---------------------------------------------------
+-- RCA CDP1869
+--@src/devices/sound/cdp1869.h,SOUNDS["CDP1869"] = true
+---------------------------------------------------
+
+if (SOUNDS["CDP1869"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/cdp1869.cpp",
+ MAME_DIR .. "src/devices/sound/cdp1869.h",
+ }
+end
+
+
+
+---------------------------------------------------
+-- GI AY-8910
+--@src/devices/sound/ay8910.h,SOUNDS["AY8910"] = true
+---------------------------------------------------
+
+if (SOUNDS["AY8910"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/ay8910.cpp",
+ MAME_DIR .. "src/devices/sound/ay8910.h",
+ }
+end
+
+
+
+---------------------------------------------------
+-- Harris HC55516 CVSD
+--@src/devices/sound/hc55516.h,SOUNDS["HC55516"] = true
+---------------------------------------------------
+
+if (SOUNDS["HC55516"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/hc55516.cpp",
+ MAME_DIR .. "src/devices/sound/hc55516.h",
+ }
+end
+
+
+
+---------------------------------------------------
+-- Hudsonsoft C6280 sound chip
+--@src/devices/sound/c6280.h,SOUNDS["C6280"] = true
+---------------------------------------------------
+
+if (SOUNDS["C6280"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/c6280.cpp",
+ MAME_DIR .. "src/devices/sound/c6280.h",
+ }
+end
+
+
+
+---------------------------------------------------
+-- ICS2115 sound chip
+--@src/devices/sound/ics2115.h,SOUNDS["ICS2115"] = true
+---------------------------------------------------
+
+if (SOUNDS["ICS2115"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/ics2115.cpp",
+ MAME_DIR .. "src/devices/sound/ics2115.h",
+ }
+end
+
+
+
+---------------------------------------------------
+-- Imagetek I5000 sound
+--@src/devices/sound/i5000.h,SOUNDS["I5000_SND"] = true
+---------------------------------------------------
+
+if (SOUNDS["I5000_SND"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/i5000.cpp",
+ MAME_DIR .. "src/devices/sound/i5000.h",
+ }
+end
+
+
+
+---------------------------------------------------
+-- Irem custom sound chips
+--@src/devices/sound/iremga20.h,SOUNDS["IREMGA20"] = true
+---------------------------------------------------
+
+if (SOUNDS["IREMGA20"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/iremga20.cpp",
+ MAME_DIR .. "src/devices/sound/iremga20.h",
+ }
+end
+
+
+
+---------------------------------------------------
+-- Konami custom sound chips
+--@src/devices/sound/k005289.h,SOUNDS["K005289"] = true
+--@src/devices/sound/k007232.h,SOUNDS["K007232"] = true
+--@src/devices/sound/k051649.h,SOUNDS["K051649"] = true
+--@src/devices/sound/k053260.h,SOUNDS["K053260"] = true
+--@src/devices/sound/k054539.h,SOUNDS["K054539"] = true
+--@src/devices/sound/k056800.h,SOUNDS["K056800"] = true
+---------------------------------------------------
+
+if (SOUNDS["K005289"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/k005289.cpp",
+ MAME_DIR .. "src/devices/sound/k005289.h",
+ }
+end
+
+if (SOUNDS["K007232"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/k007232.cpp",
+ MAME_DIR .. "src/devices/sound/k007232.h",
+ }
+end
+
+if (SOUNDS["K051649"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/k051649.cpp",
+ MAME_DIR .. "src/devices/sound/k051649.h",
+ }
+end
+
+if (SOUNDS["K053260"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/k053260.cpp",
+ MAME_DIR .. "src/devices/sound/k053260.h",
+ }
+end
+
+if (SOUNDS["K054539"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/k054539.cpp",
+ MAME_DIR .. "src/devices/sound/k054539.h",
+ }
+end
+
+if (SOUNDS["K056800"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/k056800.cpp",
+ MAME_DIR .. "src/devices/sound/k056800.h",
+ }
+end
+
+
+---------------------------------------------------
+-- L7A1045 L6028 DSP-A
+--@src/devices/sound/l7a1045_l6028_dsp_a.h,SOUNDS["L7A1045"] = true
+---------------------------------------------------
+
+if (SOUNDS["L7A1045"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/l7a1045_l6028_dsp_a.cpp",
+ MAME_DIR .. "src/devices/sound/l7a1045_l6028_dsp_a.h",
+ }
+end
+
+
+---------------------------------------------------
+-- LMC1992 mixer chip
+--@src/devices/sound/lmc1992.h,SOUNDS["LMC1992"] = true
+---------------------------------------------------
+
+if (SOUNDS["LMC1992"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/lmc1992.cpp",
+ MAME_DIR .. "src/devices/sound/lmc1992.h",
+ }
+end
+
+
+
+---------------------------------------------------
+-- MAS 3507D MPEG 1/2 Layer 2/3 Audio Decoder
+--@src/devices/sound/mas3507d.h,SOUNDS["MAS3507D"] = true
+---------------------------------------------------
+
+if (SOUNDS["MAS3507D"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/mas3507d.cpp",
+ MAME_DIR .. "src/devices/sound/mas3507d.h",
+ }
+end
+
+
+
+---------------------------------------------------
+-- MEA8000 Voice Synthesizer
+--@src/devices/sound/mea8000.h,SOUNDS["MEA8000"] = true
+---------------------------------------------------
+
+if (SOUNDS["MEA8000"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/mea8000.cpp",
+ MAME_DIR .. "src/devices/sound/mea8000.h",
+ }
+end
+
+
+
+---------------------------------------------------
+-- MOS 6560VIC
+--@src/devices/sound/mos6560.h,SOUNDS["MOS656X"] = true
+---------------------------------------------------
+
+if (SOUNDS["MOS656X"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/mos6560.cpp",
+ MAME_DIR .. "src/devices/sound/mos6560.h",
+ }
+end
+
+
+
+---------------------------------------------------
+-- MOS 7360 TED
+--@src/devices/sound/mos7360.h,SOUNDS["MOS7360"] = true
+---------------------------------------------------
+
+if (SOUNDS["MOS7360"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/mos7360.cpp",
+ MAME_DIR .. "src/devices/sound/mos7360.h",
+ }
+end
+
+
+
+---------------------------------------------------
+-- Namco custom sound chips
+--@src/devices/sound/namco.h,SOUNDS["NAMCO"] = true
+--@src/devices/sound/n63701x.h,SOUNDS["NAMCO_63701X"] = true
+--@src/devices/sound/c140.h,SOUNDS["C140"] = true
+--@src/devices/sound/c352.h,SOUNDS["C352"] = true
+---------------------------------------------------
+
+if (SOUNDS["NAMCO"]~=null or SOUNDS["NAMCO_15XX"]~=null or SOUNDS["NAMCO_CUS30"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/namco.cpp",
+ MAME_DIR .. "src/devices/sound/namco.h",
+ }
+end
+
+if (SOUNDS["NAMCO_63701X"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/n63701x.cpp",
+ MAME_DIR .. "src/devices/sound/n63701x.h",
+ }
+end
+
+if (SOUNDS["C140"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/c140.cpp",
+ MAME_DIR .. "src/devices/sound/c140.h",
+ }
+end
+
+if (SOUNDS["C352"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/c352.cpp",
+ MAME_DIR .. "src/devices/sound/c352.h",
+ }
+end
+
+
+
+---------------------------------------------------
+-- National Semiconductor Digitalker
+--@src/devices/sound/digitalk.h,SOUNDS["DIGITALKER"] = true
+---------------------------------------------------
+
+if (SOUNDS["DIGITALKER"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/digitalk.cpp",
+ MAME_DIR .. "src/devices/sound/digitalk.h",
+ }
+end
+
+
+
+---------------------------------------------------
+-- Nintendo custom sound chips
+--@src/devices/sound/nes_apu.h,SOUNDS["NES_APU"] = true
+---------------------------------------------------
+
+if (SOUNDS["NES_APU"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/nes_apu.cpp",
+ MAME_DIR .. "src/devices/sound/nes_apu.h",
+ MAME_DIR .. "src/devices/sound/nes_defs.h",
+ }
+end
+
+
+
+---------------------------------------------------
+-- NEC uPD7759 ADPCM sample player
+--@src/devices/sound/upd7759.h,SOUNDS["UPD7759"] = true
+---------------------------------------------------
+
+if (SOUNDS["UPD7759"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/upd7759.cpp",
+ MAME_DIR .. "src/devices/sound/upd7759.h",
+ MAME_DIR .. "src/devices/sound/315-5641.cpp",
+ MAME_DIR .. "src/devices/sound/315-5641.h",
+ }
+end
+
+
+
+---------------------------------------------------
+-- OKI ADPCM sample players
+--@src/devices/sound/okim6258.h,SOUNDS["OKIM6258"] = true
+--@src/devices/sound/msm5205.h,SOUNDS["MSM5205"] = true
+--@src/devices/sound/msm5232.h,SOUNDS["MSM5232"] = true
+--@src/devices/sound/okim6376.h,SOUNDS["OKIM6376"] = true
+--@src/devices/sound/okim6295.h,SOUNDS["OKIM6295"] = true
+--@src/devices/sound/okim9810.h,SOUNDS["OKIM9810"] = true
+--@src/devices/sound/okiadpcm.h,SOUNDS["OKIADPCM"] = true
+---------------------------------------------------
+
+if (SOUNDS["OKIM6258"]~=null or SOUNDS["OKIM6295"]~=null or SOUNDS["OKIM9810"]~=null or SOUNDS["I5000_SND"]~=null or SOUNDS["OKIADPCM"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/okiadpcm.cpp",
+ MAME_DIR .. "src/devices/sound/okiadpcm.h",
+ }
+end
+
+if (SOUNDS["MSM5205"]~=null or SOUNDS["MSM6585"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/msm5205.cpp",
+ MAME_DIR .. "src/devices/sound/msm5205.h",
+ }
+end
+
+if (SOUNDS["MSM5232"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/msm5232.cpp",
+ MAME_DIR .. "src/devices/sound/msm5232.h",
+ }
+end
+
+if (SOUNDS["OKIM6376"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/okim6376.cpp",
+ MAME_DIR .. "src/devices/sound/okim6376.h",
+ }
+end
+
+if (SOUNDS["OKIM6295"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/okim6295.cpp",
+ MAME_DIR .. "src/devices/sound/okim6295.h",
+ }
+end
+
+if (SOUNDS["OKIM6258"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/okim6258.cpp",
+ MAME_DIR .. "src/devices/sound/okim6258.h",
+ }
+end
+
+if (SOUNDS["OKIM9810"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/okim9810.cpp",
+ MAME_DIR .. "src/devices/sound/okim9810.h",
+ }
+end
+
+
+
+---------------------------------------------------
+-- Philips SAA1099
+--@src/devices/sound/saa1099.h,SOUNDS["SAA1099"] = true
+---------------------------------------------------
+
+if (SOUNDS["SAA1099"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/saa1099.cpp",
+ MAME_DIR .. "src/devices/sound/saa1099.h",
+ }
+end
+
+
+
+---------------------------------------------------
+-- AdMOS QS1000
+--@src/devices/sound/qs1000.h,SOUNDS["QS1000"] = true
+---------------------------------------------------
+
+if (SOUNDS["QS1000"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/qs1000.cpp",
+ MAME_DIR .. "src/devices/sound/qs1000.h",
+ }
+end
+
+
+
+---------------------------------------------------
+-- QSound sample player
+--@src/devices/sound/qsound.h,SOUNDS["QSOUND"] = true
+---------------------------------------------------
+
+if (SOUNDS["QSOUND"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/qsound.cpp",
+ MAME_DIR .. "src/devices/sound/qsound.h",
+ }
+end
+
+
+
+---------------------------------------------------
+-- Ricoh sample players
+--@src/devices/sound/rf5c68.h,SOUNDS["RF5C68"] = true
+--@src/devices/sound/rf5c400.h,SOUNDS["RF5C400"] = true
+---------------------------------------------------
+
+if (SOUNDS["RF5C68"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/rf5c68.cpp",
+ MAME_DIR .. "src/devices/sound/rf5c68.h",
+ }
+end
+
+if (SOUNDS["RF5C400"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/rf5c400.cpp",
+ MAME_DIR .. "src/devices/sound/rf5c400.h",
+ }
+end
+
+
+
+---------------------------------------------------
+-- Sega custom sound chips
+--@src/devices/sound/segapcm.h,SOUNDS["SEGAPCM"] = true
+--@src/devices/sound/multipcm.h,SOUNDS["MULTIPCM"] = true
+--@src/devices/sound/scsp.h,SOUNDS["SCSP"] = true
+--@src/devices/sound/aica.h,SOUNDS["AICA"] = true
+---------------------------------------------------
+
+if (SOUNDS["SEGAPCM"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/segapcm.cpp",
+ MAME_DIR .. "src/devices/sound/segapcm.h",
+ }
+end
+
+if (SOUNDS["MULTIPCM"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/multipcm.cpp",
+ MAME_DIR .. "src/devices/sound/multipcm.h",
+ }
+end
+
+if (SOUNDS["SCSP"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/scsp.cpp",
+ MAME_DIR .. "src/devices/sound/scsp.h",
+ MAME_DIR .. "src/devices/sound/scspdsp.cpp",
+ MAME_DIR .. "src/devices/sound/scspdsp.h",
+ }
+end
+
+if (SOUNDS["AICA"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/aica.cpp",
+ MAME_DIR .. "src/devices/sound/aica.h",
+ MAME_DIR .. "src/devices/sound/aicadsp.cpp",
+ MAME_DIR .. "src/devices/sound/aicadsp.h",
+ }
+end
+
+---------------------------------------------------
+-- Seta custom sound chips
+--@src/devices/sound/st0016.h,SOUNDS["ST0016"] = true
+--@src/devices/sound/nile.h,SOUNDS["NILE"] = true
+--@src/devices/sound/x1_010.h,SOUNDS["X1_010"] = true
+---------------------------------------------------
+
+if (SOUNDS["ST0016"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/st0016.cpp",
+ MAME_DIR .. "src/devices/sound/st0016.h",
+ }
+end
+
+if (SOUNDS["NILE"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/nile.cpp",
+ MAME_DIR .. "src/devices/sound/nile.h",
+ }
+end
+
+if (SOUNDS["X1_010"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/x1_010.cpp",
+ MAME_DIR .. "src/devices/sound/x1_010.h",
+ }
+end
+
+
+
+---------------------------------------------------
+-- SID custom sound chips
+--@src/devices/sound/mos6581.h,SOUNDS["SID6581"] = true
+---------------------------------------------------
+
+if (SOUNDS["SID6581"]~=null or SOUNDS["SID8580"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/mos6581.cpp",
+ MAME_DIR .. "src/devices/sound/mos6581.h",
+ MAME_DIR .. "src/devices/sound/sid.cpp",
+ MAME_DIR .. "src/devices/sound/sid.h",
+ MAME_DIR .. "src/devices/sound/sidenvel.cpp",
+ MAME_DIR .. "src/devices/sound/sidenvel.h",
+ MAME_DIR .. "src/devices/sound/sidvoice.cpp",
+ MAME_DIR .. "src/devices/sound/sidvoice.h",
+ MAME_DIR .. "src/devices/sound/side6581.h",
+ MAME_DIR .. "src/devices/sound/sidw6581.h",
+ MAME_DIR .. "src/devices/sound/sidw8580.h",
+ }
+end
+
+
+---------------------------------------------------
+-- SNK(?) custom stereo sn76489a clone
+--@src/devices/sound/t6w28.h,SOUNDS["T6W28"] = true
+---------------------------------------------------
+
+if (SOUNDS["T6W28"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/t6w28.cpp",
+ MAME_DIR .. "src/devices/sound/t6w28.h",
+ }
+end
+
+
+
+---------------------------------------------------
+-- SNK custom wave generator
+--@src/devices/sound/snkwave.h,SOUNDS["SNKWAVE"] = true
+---------------------------------------------------
+
+if (SOUNDS["SNKWAVE"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/snkwave.cpp",
+ MAME_DIR .. "src/devices/sound/snkwave.h",
+ }
+end
+
+
+
+---------------------------------------------------
+-- Sony custom sound chips
+--@src/devices/sound/spu.h,SOUNDS["SPU"] = true
+---------------------------------------------------
+
+if (SOUNDS["SPU"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/spu.cpp",
+ MAME_DIR .. "src/devices/sound/spu.h",
+ MAME_DIR .. "src/devices/sound/spu_tables.cpp",
+ MAME_DIR .. "src/devices/sound/spureverb.cpp",
+ MAME_DIR .. "src/devices/sound/spureverb.h",
+ }
+end
+
+
+---------------------------------------------------
+-- SP0256 speech synthesizer
+--@src/devices/sound/sp0256.h,SOUNDS["SP0256"] = true
+---------------------------------------------------
+
+if (SOUNDS["SP0256"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/sp0256.cpp",
+ MAME_DIR .. "src/devices/sound/sp0256.h",
+ }
+end
+
+
+
+---------------------------------------------------
+-- SP0250 speech synthesizer
+--@src/devices/sound/sp0250.h,SOUNDS["SP0250"] = true
+---------------------------------------------------
+
+if (SOUNDS["SP0250"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/sp0250.cpp",
+ MAME_DIR .. "src/devices/sound/sp0250.h",
+ }
+end
+
+
+
+---------------------------------------------------
+-- S14001A speech synthesizer
+--@src/devices/sound/s14001a.h,SOUNDS["S14001A"] = true
+---------------------------------------------------
+
+if (SOUNDS["S14001A"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/s14001a.cpp",
+ MAME_DIR .. "src/devices/sound/s14001a.h",
+ }
+end
+
+
+
+---------------------------------------------------
+-- Texas Instruments SN76477 analog chip
+--@src/devices/sound/sn76477.h,SOUNDS["SN76477"] = true
+---------------------------------------------------
+
+if (SOUNDS["SN76477"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/sn76477.cpp",
+ MAME_DIR .. "src/devices/sound/sn76477.h",
+ }
+end
+
+
+
+---------------------------------------------------
+-- Texas Instruments SN76496
+--@src/devices/sound/sn76496.h,SOUNDS["SN76496"] = true
+---------------------------------------------------
+
+if (SOUNDS["SN76496"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/sn76496.cpp",
+ MAME_DIR .. "src/devices/sound/sn76496.h",
+ }
+end
+
+
+
+---------------------------------------------------
+-- Texas Instruments TMS36xx doorbell chime
+--@src/devices/sound/tms36xx.h,SOUNDS["TMS36XX"] = true
+---------------------------------------------------
+
+if (SOUNDS["TMS36XX"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/tms36xx.cpp",
+ MAME_DIR .. "src/devices/sound/tms36xx.h",
+ }
+end
+
+
+
+---------------------------------------------------
+-- Texas Instruments TMS3615 Octave Multiple Tone Synthesizer
+--@src/devices/sound/tms3615.h,SOUNDS["TMS3615"] = true
+---------------------------------------------------
+
+if (SOUNDS["TMS3615"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/tms3615.cpp",
+ MAME_DIR .. "src/devices/sound/tms3615.h",
+ }
+end
+
+
+
+---------------------------------------------------
+-- Texas Instruments TMS5100-series speech synthesizers
+--@src/devices/sound/tms5110.h,SOUNDS["TMS5110"] = true
+---------------------------------------------------
+
+if (SOUNDS["TMS5110"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/tms5110.cpp",
+ MAME_DIR .. "src/devices/sound/tms5110.h",
+ MAME_DIR .. "src/devices/sound/tms5110r.hxx",
+ }
+end
+
+---------------------------------------------------
+-- Texas Instruments TMS5200-series speech synthesizers
+--@src/devices/sound/tms5220.h,SOUNDS["TMS5220"] = true
+---------------------------------------------------
+if (SOUNDS["TMS5220"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/tms5220.cpp",
+ MAME_DIR .. "src/devices/sound/tms5220.h",
+ MAME_DIR .. "src/devices/sound/tms5110r.hxx",
+ MAME_DIR .. "src/devices/machine/spchrom.cpp",
+ MAME_DIR .. "src/devices/machine/spchrom.h",
+ }
+end
+
+
+---------------------------------------------------
+-- Toshiba T6721A voice synthesizer
+--@src/devices/sound/t6721a.h,SOUNDS["T6721A"] = true
+---------------------------------------------------
+
+if (SOUNDS["T6721A"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/t6721a.cpp",
+ MAME_DIR .. "src/devices/sound/t6721a.h",
+ }
+end
+
+
+
+---------------------------------------------------
+-- Toshiba TC8830F sample player/recorder
+--@src/devices/sound/tc8830f.h,SOUNDS["TC8830F"] = true
+---------------------------------------------------
+
+if (SOUNDS["TC8830F"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/tc8830f.cpp",
+ MAME_DIR .. "src/devices/sound/tc8830f.h",
+ }
+end
+
+
+---------------------------------------------------
+-- NEC uPD7752
+--@src/devices/sound/upd7752.h,SOUNDS["UPD7752"] = true
+---------------------------------------------------
+
+if (SOUNDS["UPD7752"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/upd7752.cpp",
+ MAME_DIR .. "src/devices/sound/upd7752.h",
+ }
+end
+
+
+---------------------------------------------------
+-- VLM5030 speech synthesizer
+--@src/devices/sound/vlm5030.h,SOUNDS["VLM5030"] = true
+---------------------------------------------------
+
+if (SOUNDS["VLM5030"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/vlm5030.cpp",
+ MAME_DIR .. "src/devices/sound/vlm5030.h",
+ MAME_DIR .. "src/devices/sound/tms5110r.hxx",
+ }
+end
+
+---------------------------------------------------
+-- Votrax speech synthesizer
+--@src/devices/sound/votrax.h,SOUNDS["VOTRAX"] = true
+---------------------------------------------------
+
+if (SOUNDS["VOTRAX"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/votrax.cpp",
+ MAME_DIR .. "src/devices/sound/votrax.h",
+ }
+end
+
+
+
+---------------------------------------------------
+-- VRender0 custom sound chip
+--@src/devices/sound/vrender0.h,SOUNDS["VRENDER0"] = true
+---------------------------------------------------
+
+if (SOUNDS["VRENDER0"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/vrender0.cpp",
+ MAME_DIR .. "src/devices/sound/vrender0.h",
+ }
+end
+
+
+
+---------------------------------------------------
+-- WAVE file (used for MESS cassette)
+--@src/devices/sound/wave.h,SOUNDS["WAVE"] = true
+---------------------------------------------------
+
+if (SOUNDS["WAVE"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/wave.cpp",
+ MAME_DIR .. "src/devices/sound/wave.h",
+ }
+end
+
+
+
+---------------------------------------------------
+-- Yamaha FM synthesizers
+--@src/devices/sound/ym2151.h,SOUNDS["YM2151"] = true
+--@src/devices/sound/2203intf.h,SOUNDS["YM2203"] = true
+--@src/devices/sound/ym2413.h,SOUNDS["YM2413"] = true
+--@src/devices/sound/2608intf.h,SOUNDS["YM2608"] = true
+--@src/devices/sound/2610intf.h,SOUNDS["YM2610"] = true
+--@src/devices/sound/2612intf.h,SOUNDS["YM2612"] = true
+--@src/devices/sound/3812intf.h,SOUNDS["YM3812"] = true
+--@src/devices/sound/3526intf.h,SOUNDS["YM3526"] = true
+--@src/devices/sound/8950intf.h,SOUNDS["Y8950"] = true
+--@src/devices/sound/ymf262.h,SOUNDS["YMF262"] = true
+--@src/devices/sound/ymf271.h,SOUNDS["YMF271"] = true
+--@src/devices/sound/ymf278b.h,SOUNDS["YMF278B"] = true
+--@src/devices/sound/262intf.h,SOUNDS["YMF262"] = true
+---------------------------------------------------
+
+if (SOUNDS["YM2151"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/ym2151.cpp",
+ MAME_DIR .. "src/devices/sound/ym2151.h",
+ }
+end
+
+if (SOUNDS["YM2413"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/ym2413.cpp",
+ MAME_DIR .. "src/devices/sound/ym2413.h",
+ }
+end
+
+if (SOUNDS["YM2203"]~=null or SOUNDS["YM2608"]~=null or SOUNDS["YM2610"]~=null or SOUNDS["YM2610B"]~=null or SOUNDS["YM2612"]~=null or SOUNDS["YM3438"]~=null) then
+--if (SOUNDS["YM2203"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/2203intf.cpp",
+ MAME_DIR .. "src/devices/sound/2203intf.h",
+ MAME_DIR .. "src/devices/sound/ay8910.cpp",
+ MAME_DIR .. "src/devices/sound/ay8910.h",
+ MAME_DIR .. "src/devices/sound/fm.cpp",
+ MAME_DIR .. "src/devices/sound/fm.h",
+ }
+--end
+
+
+--if (SOUNDS["YM2608"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/2608intf.cpp",
+ MAME_DIR .. "src/devices/sound/2608intf.h",
+ MAME_DIR .. "src/devices/sound/ay8910.cpp",
+ MAME_DIR .. "src/devices/sound/ay8910.h",
+ MAME_DIR .. "src/devices/sound/fm.cpp",
+ MAME_DIR .. "src/devices/sound/fm.h",
+ MAME_DIR .. "src/devices/sound/ymdeltat.cpp",
+ MAME_DIR .. "src/devices/sound/ymdeltat.h",
+ }
+--end
+
+--if (SOUNDS["YM2610"]~=null or SOUNDS["YM2610B"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/2610intf.cpp",
+ MAME_DIR .. "src/devices/sound/2610intf.h",
+ MAME_DIR .. "src/devices/sound/ay8910.cpp",
+ MAME_DIR .. "src/devices/sound/ay8910.h",
+ MAME_DIR .. "src/devices/sound/fm.cpp",
+ MAME_DIR .. "src/devices/sound/fm.h",
+ MAME_DIR .. "src/devices/sound/ymdeltat.cpp",
+ MAME_DIR .. "src/devices/sound/ymdeltat.h",
+ }
+--end
+
+--if (SOUNDS["YM2612"]~=null or SOUNDS["YM3438"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/2612intf.cpp",
+ MAME_DIR .. "src/devices/sound/2612intf.h",
+ MAME_DIR .. "src/devices/sound/ay8910.cpp",
+ MAME_DIR .. "src/devices/sound/ay8910.h",
+ MAME_DIR .. "src/devices/sound/fm2612.cpp",
+ }
+--end
+end
+
+if (SOUNDS["YM3812"]~=null or SOUNDS["YM3526"]~=null or SOUNDS["Y8950"]~=null) then
+--if (SOUNDS["YM3812"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/3812intf.cpp",
+ MAME_DIR .. "src/devices/sound/3812intf.h",
+ MAME_DIR .. "src/devices/sound/fmopl.cpp",
+ MAME_DIR .. "src/devices/sound/fmopl.h",
+ MAME_DIR .. "src/devices/sound/ymdeltat.cpp",
+ MAME_DIR .. "src/devices/sound/ymdeltat.h",
+ }
+--end
+
+--if (SOUNDS["YM3526"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/3526intf.cpp",
+ MAME_DIR .. "src/devices/sound/3526intf.h",
+ MAME_DIR .. "src/devices/sound/fmopl.cpp",
+ MAME_DIR .. "src/devices/sound/fmopl.h",
+ MAME_DIR .. "src/devices/sound/ymdeltat.cpp",
+ MAME_DIR .. "src/devices/sound/ymdeltat.h",
+ }
+--end
+
+--if (SOUNDS["Y8950"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/8950intf.cpp",
+ MAME_DIR .. "src/devices/sound/8950intf.h",
+ MAME_DIR .. "src/devices/sound/fmopl.cpp",
+ MAME_DIR .. "src/devices/sound/fmopl.h",
+ MAME_DIR .. "src/devices/sound/ymdeltat.cpp",
+ MAME_DIR .. "src/devices/sound/ymdeltat.h",
+ }
+--end
+end
+
+if (SOUNDS["YMF262"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/ymf262.cpp",
+ MAME_DIR .. "src/devices/sound/ymf262.h",
+ MAME_DIR .. "src/devices/sound/262intf.cpp",
+ MAME_DIR .. "src/devices/sound/262intf.h",
+ }
+end
+
+if (SOUNDS["YMF271"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/ymf271.cpp",
+ MAME_DIR .. "src/devices/sound/ymf271.h",
+ }
+end
+
+if (SOUNDS["YMF278B"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/ymf278b.cpp",
+ MAME_DIR .. "src/devices/sound/ymf278b.h",
+ }
+end
+
+
+
+---------------------------------------------------
+-- Yamaha YMZ280B ADPCM
+--@src/devices/sound/ymz280b.h,SOUNDS["YMZ280B"] = true
+---------------------------------------------------
+
+if (SOUNDS["YMZ280B"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/ymz280b.cpp",
+ MAME_DIR .. "src/devices/sound/ymz280b.h",
+ }
+end
+
+---------------------------------------------------
+-- Yamaha YMZ770 AMM
+--@src/devices/sound/ymz770.h,SOUNDS["YMZ770"] = true
+---------------------------------------------------
+
+if (SOUNDS["YMZ770"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/ymz770.cpp",
+ MAME_DIR .. "src/devices/sound/ymz770.h",
+ }
+end
+
+---------------------------------------------------
+-- MPEG AUDIO
+--@src/devices/sound/mpeg_audio.h,SOUNDS["MPEG_AUDIO"] = true
+---------------------------------------------------
+
+if (SOUNDS["MPEG_AUDIO"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/mpeg_audio.cpp",
+ MAME_DIR .. "src/devices/sound/mpeg_audio.h",
+ }
+end
+
+---------------------------------------------------
+-- ZOOM ZSG-2
+--@src/devices/sound/zsg2.h,SOUNDS["ZSG2"] = true
+---------------------------------------------------
+
+if (SOUNDS["ZSG2"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/zsg2.cpp",
+ MAME_DIR .. "src/devices/sound/zsg2.h",
+ }
+end
+
+---------------------------------------------------
+-- VRC6
+--@src/devices/sound/vrc6.h,SOUNDS["VRC6"] = true
+---------------------------------------------------
+
+if (SOUNDS["VRC6"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/vrc6.cpp",
+ MAME_DIR .. "src/devices/sound/vrc6.h",
+ }
+end
+
+---------------------------------------------------
+-- AD1848
+--@src/devices/sound/ad1848.h,SOUNDS["AD1848"] = true
+---------------------------------------------------
+
+if (SOUNDS["AD1848"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/ad1848.cpp",
+ MAME_DIR .. "src/devices/sound/ad1848.h",
+ }
+end
+
+---------------------------------------------------
+-- UPD1771
+--@src/devices/sound/upd1771.h,SOUNDS["UPD1771"] = true
+---------------------------------------------------
+
+if (SOUNDS["UPD1771"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/upd1771.cpp",
+ MAME_DIR .. "src/devices/sound/upd1771.h",
+ }
+end
+
+---------------------------------------------------
+-- GB_SOUND
+--@src/devices/sound/gb.h,SOUNDS["GB_SOUND"] = true
+---------------------------------------------------
+
+if (SOUNDS["GB_SOUND"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/gb.cpp",
+ MAME_DIR .. "src/devices/sound/gb.h",
+ }
+end
+
+---------------------------------------------------
+-- PCD3311
+--@src/devices/sound/pcd3311.h,SOUNDS["PCD3311"] = true
+---------------------------------------------------
+
+if (SOUNDS["PCD3311"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/pcd3311.cpp",
+ MAME_DIR .. "src/devices/sound/pcd3311.h",
+ }
+end
+
+---------------------------------------------------
+-- Voltage Regulator
+--@src/devices/sound/volt_reg.h,SOUNDS["VOLT_REG"] = true
+---------------------------------------------------
+if (SOUNDS["VOLT_REG"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/volt_reg.cpp",
+ MAME_DIR .. "src/devices/sound/volt_reg.h",
+ }
+end
+
+---------------------------------------------------
+-- DAC-76 COMDAC
+--@src/devices/sound/dac76.h,SOUNDS["DAC76"] = true
+---------------------------------------------------
+if (SOUNDS["DAC76"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/dac76.cpp",
+ MAME_DIR .. "src/devices/sound/dac76.h",
+ }
+end
+
+---------------------------------------------------
+-- MM5837 Noise Generator
+--@src/devices/sound/mm5837.h,MACHINES["MM5837"] = true
+---------------------------------------------------
+
+if (SOUNDS["MM5837"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/mm5837.cpp",
+ MAME_DIR .. "src/devices/sound/mm5837.h",
+ }
+end
+
+---------------------------------------------------
+-- Intelligent Designs DAVE
+--@src/devices/sound/dave.h,MACHINES["DAVE"] = true
+---------------------------------------------------
+
+if (SOUNDS["DAVE"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/sound/dave.cpp",
+ MAME_DIR .. "src/devices/sound/dave.h",
+ }
+end
diff --git a/docs/release/scripts/src/tests.lua b/docs/release/scripts/src/tests.lua
new file mode 100644
index 00000000000..6d964737079
--- /dev/null
+++ b/docs/release/scripts/src/tests.lua
@@ -0,0 +1,99 @@
+-- license:BSD-3-Clause
+-- copyright-holders:MAMEdev Team
+
+---------------------------------------------------------------------------
+--
+-- tests.lua
+--
+-- Rules for building tests
+--
+---------------------------------------------------------------------------
+
+project("mametests")
+ uuid ("66d4c639-196b-4065-a411-7ee9266564f5")
+ kind "ConsoleApp"
+
+ flags {
+ "Symbols", -- always include minimum symbols for executables
+ }
+
+ if _OPTIONS["SEPARATE_BIN"]~="1" then
+ targetdir(MAME_DIR)
+ end
+
+ configuration { "x64", "Release" }
+ targetsuffix "64"
+ if _OPTIONS["PROFILE"] then
+ targetsuffix "64p"
+ end
+
+ configuration { "x64", "Debug" }
+ targetsuffix "64d"
+ if _OPTIONS["PROFILE"] then
+ targetsuffix "64dp"
+ end
+
+ configuration { "x32", "Release" }
+ targetsuffix ""
+ if _OPTIONS["PROFILE"] then
+ targetsuffix "p"
+ end
+
+ configuration { "x32", "Debug" }
+ targetsuffix "d"
+ if _OPTIONS["PROFILE"] then
+ targetsuffix "dp"
+ end
+
+ configuration { "Native", "Release" }
+ targetsuffix ""
+ if _OPTIONS["PROFILE"] then
+ targetsuffix "p"
+ end
+
+ configuration { "Native", "Debug" }
+ targetsuffix "d"
+ if _OPTIONS["PROFILE"] then
+ targetsuffix "dp"
+ end
+
+ configuration { "mingw*" or "vs*" }
+ targetextension ".exe"
+
+ configuration { "rpi" }
+ targetextension ""
+
+
+ configuration { }
+
+ links {
+ "utils",
+ ext_lib("expat"),
+ ext_lib("zlib"),
+ "ocore_" .. _OPTIONS["osd"],
+ }
+
+ includedirs {
+ MAME_DIR .. "3rdparty/catch/single_include",
+ MAME_DIR .. "src/osd",
+ MAME_DIR .. "src/emu",
+ MAME_DIR .. "src/lib/util",
+ ext_includedir("expat"),
+ ext_includedir("zlib"),
+ }
+
+ files {
+ MAME_DIR .. "src/emu/video/rgbsse.cpp",
+ MAME_DIR .. "src/emu/video/rgbsse.h",
+ MAME_DIR .. "src/emu/video/rgbvmx.cpp",
+ MAME_DIR .. "src/emu/video/rgbvmx.h",
+ }
+
+ files {
+ MAME_DIR .. "tests/main.cpp",
+ MAME_DIR .. "tests/lib/util/corestr.cpp",
+ MAME_DIR .. "tests/lib/util/options.cpp",
+ MAME_DIR .. "tests/emu/attotime.cpp",
+ MAME_DIR .. "tests/emu/video/rgbutil.cpp",
+ }
+
diff --git a/docs/release/scripts/src/tools.lua b/docs/release/scripts/src/tools.lua
new file mode 100644
index 00000000000..083554cd76c
--- /dev/null
+++ b/docs/release/scripts/src/tools.lua
@@ -0,0 +1,805 @@
+-- license:BSD-3-Clause
+-- copyright-holders:MAMEdev Team
+
+---------------------------------------------------------------------------
+--
+-- tools.lua
+--
+-- Rules for the building of tools
+--
+---------------------------------------------------------------------------
+
+--------------------------------------------------
+-- romcmp
+--------------------------------------------------
+
+project("romcmp")
+uuid ("1b40275b-194c-497b-8abd-9338775a21b8")
+kind "ConsoleApp"
+
+flags {
+ "Symbols", -- always include minimum symbols for executables
+}
+
+if _OPTIONS["SEPARATE_BIN"]~="1" then
+ targetdir(MAME_DIR)
+end
+
+links {
+ "utils",
+ ext_lib("expat"),
+ "7z",
+ "ocore_" .. _OPTIONS["osd"],
+ ext_lib("zlib"),
+ ext_lib("utf8proc"),
+}
+
+includedirs {
+ MAME_DIR .. "src/osd",
+ MAME_DIR .. "src/lib/util",
+}
+
+files {
+ MAME_DIR .. "src/tools/romcmp.cpp",
+ MAME_DIR .. "src/emu/emucore.cpp",
+}
+
+configuration { "mingw*" or "vs*" }
+ targetextension ".exe"
+
+configuration { }
+
+strip()
+
+--------------------------------------------------
+-- chdman
+--------------------------------------------------
+
+project("chdman")
+uuid ("7d948868-42db-432a-9bb5-70ce5c5f4620")
+kind "ConsoleApp"
+
+flags {
+ "Symbols", -- always include minimum symbols for executables
+}
+
+if _OPTIONS["SEPARATE_BIN"]~="1" then
+ targetdir(MAME_DIR)
+end
+
+links {
+ "utils",
+ ext_lib("expat"),
+ "7z",
+ "ocore_" .. _OPTIONS["osd"],
+ ext_lib("zlib"),
+ ext_lib("flac"),
+ ext_lib("utf8proc"),
+}
+
+includedirs {
+ MAME_DIR .. "src/osd",
+ MAME_DIR .. "src/lib/util",
+ MAME_DIR .. "3rdparty",
+}
+includedirs {
+ ext_includedir("flac"),
+}
+
+files {
+ MAME_DIR .. "src/tools/chdman.cpp",
+ MAME_DIR .. "src/emu/emucore.cpp",
+ GEN_DIR .. "version.cpp",
+}
+
+configuration { "mingw*" or "vs*" }
+ targetextension ".exe"
+
+configuration { }
+
+strip()
+
+--------------------------------------------------
+-- jedutil
+--------------------------------------------------
+
+project("jedutil")
+uuid ("bda60edb-f7f5-489f-b232-23d33c43dda1")
+kind "ConsoleApp"
+
+flags {
+ "Symbols", -- always include minimum symbols for executables
+}
+
+if _OPTIONS["SEPARATE_BIN"]~="1" then
+ targetdir(MAME_DIR)
+end
+
+links {
+ "utils",
+ ext_lib("expat"),
+ "ocore_" .. _OPTIONS["osd"],
+ ext_lib("zlib"),
+ ext_lib("utf8proc"),
+}
+
+includedirs {
+ MAME_DIR .. "src/osd",
+ MAME_DIR .. "src/lib/util",
+}
+
+files {
+ MAME_DIR .. "src/tools/jedutil.cpp",
+ MAME_DIR .. "src/emu/emucore.cpp",
+}
+
+configuration { "mingw*" or "vs*" }
+ targetextension ".exe"
+
+configuration { }
+
+strip()
+
+--------------------------------------------------
+-- unidasm
+--------------------------------------------------
+
+project("unidasm")
+uuid ("65f81d3b-299a-4b08-a3fa-d5241afa9fd1")
+kind "ConsoleApp"
+
+flags {
+ "Symbols", -- always include minimum symbols for executables
+}
+
+if _OPTIONS["SEPARATE_BIN"]~="1" then
+ targetdir(MAME_DIR)
+end
+
+links {
+ "dasm",
+ "utils",
+ ext_lib("expat"),
+ "7z",
+ "ocore_" .. _OPTIONS["osd"],
+ ext_lib("zlib"),
+ ext_lib("flac"),
+ ext_lib("utf8proc"),
+}
+
+includedirs {
+ MAME_DIR .. "src/osd",
+ MAME_DIR .. "src/devices",
+ MAME_DIR .. "src/emu",
+ MAME_DIR .. "src/lib/util",
+ MAME_DIR .. "3rdparty",
+}
+
+files {
+ MAME_DIR .. "src/tools/unidasm.cpp",
+ MAME_DIR .. "src/emu/emucore.cpp",
+}
+
+configuration { "mingw*" or "vs*" }
+ targetextension ".exe"
+
+configuration { }
+
+strip()
+
+--------------------------------------------------
+-- ldresample
+--------------------------------------------------
+
+project("ldresample")
+uuid ("3401561a-4407-4e13-9c6d-c0801330f7cc")
+kind "ConsoleApp"
+
+flags {
+ "Symbols", -- always include minimum symbols for executables
+}
+
+if _OPTIONS["SEPARATE_BIN"]~="1" then
+ targetdir(MAME_DIR)
+end
+
+links {
+ "utils",
+ ext_lib("expat"),
+ "7z",
+ "ocore_" .. _OPTIONS["osd"],
+ ext_lib("zlib"),
+ ext_lib("flac"),
+ ext_lib("utf8proc"),
+}
+
+includedirs {
+ MAME_DIR .. "src/osd",
+ MAME_DIR .. "src/lib/util",
+ MAME_DIR .. "3rdparty",
+}
+includedirs {
+ ext_includedir("flac"),
+}
+
+files {
+ MAME_DIR .. "src/tools/ldresample.cpp",
+ MAME_DIR .. "src/emu/emucore.cpp",
+}
+
+configuration { "mingw*" or "vs*" }
+ targetextension ".exe"
+
+configuration { }
+
+strip()
+
+--------------------------------------------------
+-- ldverify
+--------------------------------------------------
+
+project("ldverify")
+uuid ("3e66560d-b928-4227-928b-eadd0a10f00a")
+kind "ConsoleApp"
+
+flags {
+ "Symbols", -- always include minimum symbols for executables
+}
+
+if _OPTIONS["SEPARATE_BIN"]~="1" then
+ targetdir(MAME_DIR)
+end
+
+links {
+ "utils",
+ ext_lib("expat"),
+ "7z",
+ "ocore_" .. _OPTIONS["osd"],
+ ext_lib("zlib"),
+ ext_lib("flac"),
+ ext_lib("utf8proc"),
+}
+
+includedirs {
+ MAME_DIR .. "src/osd",
+ MAME_DIR .. "src/lib/util",
+ MAME_DIR .. "3rdparty",
+}
+includedirs {
+ ext_includedir("flac"),
+}
+
+files {
+ MAME_DIR .. "src/tools/ldverify.cpp",
+ MAME_DIR .. "src/emu/emucore.cpp",
+}
+
+configuration { "mingw*" or "vs*" }
+ targetextension ".exe"
+
+configuration { }
+
+strip()
+
+--------------------------------------------------
+-- regrep
+--------------------------------------------------
+
+project("regrep")
+uuid ("7f6de580-d800-4e8d-bed6-9fc86829584d")
+kind "ConsoleApp"
+
+flags {
+ "Symbols", -- always include minimum symbols for executables
+}
+
+if _OPTIONS["SEPARATE_BIN"]~="1" then
+ targetdir(MAME_DIR)
+end
+
+links {
+ "utils",
+ ext_lib("expat"),
+ "ocore_" .. _OPTIONS["osd"],
+ ext_lib("zlib"),
+ ext_lib("utf8proc"),
+}
+
+includedirs {
+ MAME_DIR .. "src/osd",
+ MAME_DIR .. "src/lib/util",
+}
+
+files {
+ MAME_DIR .. "src/tools/regrep.cpp",
+ MAME_DIR .. "src/emu/emucore.cpp",
+}
+
+configuration { "mingw*" or "vs*" }
+ targetextension ".exe"
+
+configuration { }
+
+strip()
+
+--------------------------------------------------
+-- srcclean
+---------------------------------------------------
+
+project("srcclean")
+uuid ("4dd58139-313a-42c5-965d-f378bdeed220")
+kind "ConsoleApp"
+
+flags {
+ "Symbols", -- always include minimum symbols for executables
+}
+
+if _OPTIONS["SEPARATE_BIN"]~="1" then
+ targetdir(MAME_DIR)
+end
+
+links {
+ "utils",
+ ext_lib("expat"),
+ "ocore_" .. _OPTIONS["osd"],
+ ext_lib("zlib"),
+ ext_lib("utf8proc"),
+}
+
+includedirs {
+ MAME_DIR .. "src/osd",
+ MAME_DIR .. "src/lib/util",
+}
+
+files {
+ MAME_DIR .. "src/tools/srcclean.cpp",
+ MAME_DIR .. "src/emu/emucore.cpp",
+}
+
+configuration { "mingw*" or "vs*" }
+ targetextension ".exe"
+
+configuration { }
+
+strip()
+
+--------------------------------------------------
+-- src2html
+--------------------------------------------------
+
+project("src2html")
+uuid ("b31e963a-09ef-4696-acbd-e663e35ce6f7")
+kind "ConsoleApp"
+
+flags {
+ "Symbols", -- always include minimum symbols for executables
+}
+
+if _OPTIONS["SEPARATE_BIN"]~="1" then
+ targetdir(MAME_DIR)
+end
+
+links {
+ "utils",
+ ext_lib("expat"),
+ "ocore_" .. _OPTIONS["osd"],
+ ext_lib("zlib"),
+ ext_lib("utf8proc"),
+}
+
+includedirs {
+ MAME_DIR .. "src/osd",
+ MAME_DIR .. "src/lib/util",
+}
+
+files {
+ MAME_DIR .. "src/tools/src2html.cpp",
+ MAME_DIR .. "src/emu/emucore.cpp",
+}
+
+configuration { "mingw*" or "vs*" }
+ targetextension ".exe"
+
+configuration { }
+
+strip()
+
+--------------------------------------------------
+-- split
+--------------------------------------------------
+
+project("split")
+uuid ("8ef6ff18-3199-4cc2-afd0-d64033070faa")
+kind "ConsoleApp"
+
+flags {
+ "Symbols", -- always include minimum symbols for executables
+}
+
+if _OPTIONS["SEPARATE_BIN"]~="1" then
+ targetdir(MAME_DIR)
+end
+
+links {
+ "utils",
+ ext_lib("expat"),
+ "7z",
+ "ocore_" .. _OPTIONS["osd"],
+ ext_lib("zlib"),
+ ext_lib("flac"),
+ ext_lib("utf8proc"),
+}
+
+includedirs {
+ MAME_DIR .. "src/osd",
+ MAME_DIR .. "src/lib/util",
+}
+
+files {
+ MAME_DIR .. "src/tools/split.cpp",
+ MAME_DIR .. "src/emu/emucore.cpp",
+}
+
+configuration { "mingw*" or "vs*" }
+ targetextension ".exe"
+
+configuration { }
+
+strip()
+
+--------------------------------------------------
+-- pngcmp
+--------------------------------------------------
+
+project("pngcmp")
+uuid ("61f647d9-b129-409b-9c62-8acf98ed39be")
+kind "ConsoleApp"
+
+flags {
+ "Symbols", -- always include minimum symbols for executables
+}
+
+if _OPTIONS["SEPARATE_BIN"]~="1" then
+ targetdir(MAME_DIR)
+end
+
+links {
+ "utils",
+ ext_lib("expat"),
+ "ocore_" .. _OPTIONS["osd"],
+ ext_lib("zlib"),
+ ext_lib("utf8proc"),
+}
+
+includedirs {
+ MAME_DIR .. "src/osd",
+ MAME_DIR .. "src/lib/util",
+}
+
+files {
+ MAME_DIR .. "src/tools/pngcmp.cpp",
+ MAME_DIR .. "src/emu/emucore.cpp",
+}
+
+configuration { "mingw*" or "vs*" }
+ targetextension ".exe"
+
+configuration { }
+
+strip()
+
+--------------------------------------------------
+-- nltool
+--------------------------------------------------
+
+project("nltool")
+uuid ("853a03b7-fa37-41a8-8250-0dc23dd935d6")
+kind "ConsoleApp"
+
+flags {
+ "Symbols", -- always include minimum symbols for executables
+}
+
+if _OPTIONS["SEPARATE_BIN"]~="1" then
+ targetdir(MAME_DIR)
+end
+
+links {
+ "netlist",
+}
+
+includedirs {
+ MAME_DIR .. "src/lib",
+}
+
+files {
+ MAME_DIR .. "src/lib/netlist/prg/nltool.cpp",
+}
+
+configuration { "mingw*" }
+ linkoptions{
+ "-municode",
+ }
+configuration { "vs*" }
+ flags {
+ "Unicode",
+ }
+
+configuration { "mingw*" or "vs*" }
+ targetextension ".exe"
+
+configuration { }
+
+strip()
+
+--------------------------------------------------
+-- nlwav
+--------------------------------------------------
+
+project("nlwav")
+uuid ("7c5396d1-2a1a-4c93-bed6-6b8fa182054a")
+kind "ConsoleApp"
+
+flags {
+ "Symbols", -- always include minimum symbols for executables
+}
+
+if _OPTIONS["SEPARATE_BIN"]~="1" then
+ targetdir(MAME_DIR)
+end
+
+links {
+ "netlist",
+}
+
+includedirs {
+ MAME_DIR .. "src/lib",
+}
+
+files {
+ MAME_DIR .. "src/lib/netlist/prg/nlwav.cpp",
+}
+
+configuration { "mingw*" }
+ linkoptions{
+ "-municode",
+ }
+configuration { "vs*" }
+ flags {
+ "Unicode",
+ }
+
+configuration { "mingw*" or "vs*" }
+ targetextension ".exe"
+
+configuration { }
+
+strip()
+
+--------------------------------------------------
+-- castool
+--------------------------------------------------
+
+project("castool")
+uuid ("7d9ed428-e2ba-4448-832d-d882a64d5c22")
+kind "ConsoleApp"
+
+flags {
+ "Symbols", -- always include minimum symbols for executables
+}
+
+if _OPTIONS["SEPARATE_BIN"]~="1" then
+ targetdir(MAME_DIR)
+end
+
+links {
+ "formats",
+ "utils",
+ ext_lib("expat"),
+ "7z",
+ "ocore_" .. _OPTIONS["osd"],
+ ext_lib("zlib"),
+ ext_lib("flac"),
+ ext_lib("utf8proc"),
+}
+
+includedirs {
+ MAME_DIR .. "src/osd",
+ MAME_DIR .. "src/lib",
+ MAME_DIR .. "src/lib/util",
+}
+
+files {
+ MAME_DIR .. "src/tools/castool.cpp",
+ MAME_DIR .. "src/emu/emucore.cpp",
+}
+
+configuration { "mingw*" or "vs*" }
+ targetextension ".exe"
+
+configuration { }
+
+strip()
+
+--------------------------------------------------
+-- floptool
+--------------------------------------------------
+
+project("floptool")
+uuid ("85d8e3a6-1661-4ac9-8c21-281d20cbaf5b")
+kind "ConsoleApp"
+
+flags {
+ "Symbols", -- always include minimum symbols for executables
+}
+
+if _OPTIONS["SEPARATE_BIN"]~="1" then
+ targetdir(MAME_DIR)
+end
+
+links {
+ "formats",
+ "emu",
+ "utils",
+ ext_lib("expat"),
+ "7z",
+ "ocore_" .. _OPTIONS["osd"],
+ ext_lib("zlib"),
+ ext_lib("flac"),
+ ext_lib("utf8proc"),
+}
+
+includedirs {
+ MAME_DIR .. "src/osd",
+ MAME_DIR .. "src/lib",
+ MAME_DIR .. "src/lib/util",
+}
+
+files {
+ MAME_DIR .. "src/tools/floptool.cpp",
+ MAME_DIR .. "src/emu/emucore.cpp",
+}
+
+configuration { "mingw*" or "vs*" }
+ targetextension ".exe"
+
+configuration { }
+
+strip()
+
+--------------------------------------------------
+-- imgtool
+--------------------------------------------------
+
+project("imgtool")
+uuid ("f3707807-e587-4297-a5d8-bc98f3d0b1ca")
+kind "ConsoleApp"
+
+flags {
+ "Symbols", -- always include minimum symbols for executables
+}
+
+if _OPTIONS["SEPARATE_BIN"]~="1" then
+ targetdir(MAME_DIR)
+end
+
+links {
+ "formats",
+ "emu",
+ "utils",
+ ext_lib("expat"),
+ "7z",
+ "ocore_" .. _OPTIONS["osd"],
+ ext_lib("zlib"),
+ ext_lib("flac"),
+ ext_lib("utf8proc"),
+}
+
+includedirs {
+ MAME_DIR .. "src/osd",
+ MAME_DIR .. "src/lib",
+ MAME_DIR .. "src/lib/util",
+ ext_includedir("zlib"),
+ MAME_DIR .. "src/tools/imgtool",
+}
+
+files {
+ MAME_DIR .. "src/tools/imgtool/main.cpp",
+ MAME_DIR .. "src/tools/imgtool/main.h",
+ MAME_DIR .. "src/tools/imgtool/stream.cpp",
+ MAME_DIR .. "src/tools/imgtool/stream.h",
+ MAME_DIR .. "src/tools/imgtool/library.cpp",
+ MAME_DIR .. "src/tools/imgtool/library.h",
+ MAME_DIR .. "src/tools/imgtool/modules.cpp",
+ MAME_DIR .. "src/tools/imgtool/modules.h",
+ MAME_DIR .. "src/tools/imgtool/iflopimg.cpp",
+ MAME_DIR .. "src/tools/imgtool/iflopimg.h",
+ MAME_DIR .. "src/tools/imgtool/filter.cpp",
+ MAME_DIR .. "src/tools/imgtool/filter.h",
+ MAME_DIR .. "src/tools/imgtool/filteoln.cpp",
+ MAME_DIR .. "src/tools/imgtool/filtbas.cpp",
+ MAME_DIR .. "src/tools/imgtool/imgtool.cpp",
+ MAME_DIR .. "src/tools/imgtool/imgtool.h",
+ MAME_DIR .. "src/tools/imgtool/imgterrs.cpp",
+ MAME_DIR .. "src/tools/imgtool/imgterrs.h",
+ MAME_DIR .. "src/tools/imgtool/imghd.cpp",
+ MAME_DIR .. "src/tools/imgtool/imghd.h",
+ MAME_DIR .. "src/tools/imgtool/charconv.cpp",
+ MAME_DIR .. "src/tools/imgtool/charconv.h",
+ MAME_DIR .. "src/tools/imgtool/formats/vt_dsk.cpp",
+ MAME_DIR .. "src/tools/imgtool/formats/vt_dsk.h",
+ MAME_DIR .. "src/tools/imgtool/formats/coco_dsk.cpp",
+ MAME_DIR .. "src/tools/imgtool/formats/coco_dsk.h",
+ MAME_DIR .. "src/tools/imgtool/modules/amiga.cpp",
+ MAME_DIR .. "src/tools/imgtool/modules/macbin.cpp",
+ MAME_DIR .. "src/tools/imgtool/modules/rsdos.cpp",
+ MAME_DIR .. "src/tools/imgtool/modules/os9.cpp",
+ MAME_DIR .. "src/tools/imgtool/modules/mac.cpp",
+ MAME_DIR .. "src/tools/imgtool/modules/ti99.cpp",
+ MAME_DIR .. "src/tools/imgtool/modules/ti990hd.cpp",
+ MAME_DIR .. "src/tools/imgtool/modules/concept.cpp",
+ MAME_DIR .. "src/tools/imgtool/modules/fat.cpp",
+ MAME_DIR .. "src/tools/imgtool/modules/fat.h",
+ MAME_DIR .. "src/tools/imgtool/modules/pc_flop.cpp",
+ MAME_DIR .. "src/tools/imgtool/modules/pc_hard.cpp",
+ MAME_DIR .. "src/tools/imgtool/modules/prodos.cpp",
+ MAME_DIR .. "src/tools/imgtool/modules/vzdos.cpp",
+ MAME_DIR .. "src/tools/imgtool/modules/thomson.cpp",
+ MAME_DIR .. "src/tools/imgtool/modules/macutil.cpp",
+ MAME_DIR .. "src/tools/imgtool/modules/macutil.h",
+ MAME_DIR .. "src/tools/imgtool/modules/cybiko.cpp",
+ MAME_DIR .. "src/tools/imgtool/modules/cybikoxt.cpp",
+ MAME_DIR .. "src/tools/imgtool/modules/psion.cpp",
+ MAME_DIR .. "src/tools/imgtool/modules/bml3.cpp",
+ MAME_DIR .. "src/tools/imgtool/modules/hp48.cpp",
+ MAME_DIR .. "src/tools/imgtool/modules/hp9845_tape.cpp",
+}
+
+configuration { "mingw*" or "vs*" }
+ targetextension ".exe"
+
+configuration { }
+
+strip()
+
+--------------------------------------------------
+-- aueffectutil
+--------------------------------------------------
+
+if _OPTIONS["targetos"] == "macosx" then
+ project("aueffectutil")
+ uuid ("3db8316d-fad7-4f5b-b46a-99373c91550e")
+ kind "ConsoleApp"
+
+ flags {
+ "Symbols", -- always include minimum symbols for executables
+ }
+
+ if _OPTIONS["SEPARATE_BIN"]~="1" then
+ targetdir(MAME_DIR)
+ end
+
+ linkoptions {
+ "-sectcreate __TEXT __info_plist " .. _MAKE.esc(MAME_DIR) .. "src/tools/aueffectutil-Info.plist",
+ }
+
+ dependency {
+ { "aueffectutil", MAME_DIR .. "src/tools/aueffectutil-Info.plist", true },
+ }
+
+ links {
+ "AudioUnit.framework",
+ "AudioToolbox.framework",
+ "CoreAudio.framework",
+ "CoreAudioKit.framework",
+ "CoreServices.framework",
+ }
+
+ files {
+ MAME_DIR .. "src/tools/aueffectutil.mm",
+ }
+
+ configuration { }
+
+ strip()
+end
diff --git a/docs/release/scripts/src/video.lua b/docs/release/scripts/src/video.lua
new file mode 100644
index 00000000000..742a7c7c34f
--- /dev/null
+++ b/docs/release/scripts/src/video.lua
@@ -0,0 +1,987 @@
+-- license:BSD-3-Clause
+-- copyright-holders:MAMEdev Team
+
+---------------------------------------------------------------------------
+--
+-- video.lua
+--
+-- Rules for building video cores
+--
+---------------------------------------------------------------------------
+
+files {
+ MAME_DIR .. "src/devices/video/poly.h",
+ MAME_DIR .. "src/devices/video/sprite.cpp",
+ MAME_DIR .. "src/devices/video/sprite.h",
+ MAME_DIR .. "src/devices/video/vector.cpp",
+ MAME_DIR .. "src/devices/video/vector.h",
+}
+
+--------------------------------------------------
+--
+--@src/devices/video/315_5124.h,VIDEOS["SEGA315_5124"] = true
+--------------------------------------------------
+
+if (VIDEOS["SEGA315_5124"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/315_5124.cpp",
+ MAME_DIR .. "src/devices/video/315_5124.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/315_5313.h,VIDEOS["SEGA315_5313"] = true
+--------------------------------------------------
+
+if (VIDEOS["SEGA315_5313"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/315_5313.cpp",
+ MAME_DIR .. "src/devices/video/315_5313.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/bufsprite.h,VIDEOS["BUFSPRITE"] = true
+--------------------------------------------------
+
+if (VIDEOS["BUFSPRITE"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/bufsprite.cpp",
+ MAME_DIR .. "src/devices/video/bufsprite.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/cdp1861.h,VIDEOS["CDP1861"] = true
+--------------------------------------------------
+
+if (VIDEOS["CDP1861"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/cdp1861.cpp",
+ MAME_DIR .. "src/devices/video/cdp1861.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/cdp1862.h,VIDEOS["CDP1862"] = true
+--------------------------------------------------
+
+if (VIDEOS["CDP1862"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/cdp1862.cpp",
+ MAME_DIR .. "src/devices/video/cdp1862.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/cesblit.h,VIDEOS["CESBLIT"] = true
+--------------------------------------------------
+
+if (VIDEOS["CESBLIT"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/cesblit.cpp",
+ MAME_DIR .. "src/devices/video/cesblit.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/crt9007.h,VIDEOS["CRT9007"] = true
+--------------------------------------------------
+
+if (VIDEOS["CRT9007"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/crt9007.cpp",
+ MAME_DIR .. "src/devices/video/crt9007.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/crt9021.h,VIDEOS["CRT9021"] = true
+--------------------------------------------------
+
+if (VIDEOS["CRT9021"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/crt9021.cpp",
+ MAME_DIR .. "src/devices/video/crt9021.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/crt9212.h,VIDEOS["CRT9212"] = true
+--------------------------------------------------
+
+if (VIDEOS["CRT9212"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/crt9212.cpp",
+ MAME_DIR .. "src/devices/video/crt9212.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/dl1416.h,VIDEOS["DL1416"] = true
+--------------------------------------------------
+
+if (VIDEOS["DL1416"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/dl1416.cpp",
+ MAME_DIR .. "src/devices/video/dl1416.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/dm9368.h,VIDEOS["DM9368"] = true
+--------------------------------------------------
+
+if (VIDEOS["DM9368"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/dm9368.cpp",
+ MAME_DIR .. "src/devices/video/dm9368.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/ef9340_1.h,VIDEOS["EF9340_1"] = true
+--------------------------------------------------
+
+if (VIDEOS["EF9340_1"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/ef9340_1.cpp",
+ MAME_DIR .. "src/devices/video/ef9340_1.h",
+ MAME_DIR .. "src/devices/video/ef9341_chargen.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/ef9345.h,VIDEOS["EF9345"] = true
+--------------------------------------------------
+
+if (VIDEOS["EF9345"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/ef9345.cpp",
+ MAME_DIR .. "src/devices/video/ef9345.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/ef9364.h,VIDEOS["EF9364"] = true
+--------------------------------------------------
+
+if (VIDEOS["EF9364"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/ef9364.cpp",
+ MAME_DIR .. "src/devices/video/ef9364.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/ef9365.h,VIDEOS["EF9365"] = true
+--------------------------------------------------
+
+if (VIDEOS["EF9365"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/ef9365.cpp",
+ MAME_DIR .. "src/devices/video/ef9365.h",
+ }
+end
+
+--------------------------------------------------
+--@src/devices/video/epic12.h,VIDEOS["EPIC12"] = true
+--------------------------------------------------
+
+if (VIDEOS["EPIC12"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/epic12.cpp",
+ MAME_DIR .. "src/devices/video/epic12.h",
+ MAME_DIR .. "src/devices/video/epic12_blit0.cpp",
+ MAME_DIR .. "src/devices/video/epic12_blit1.cpp",
+ MAME_DIR .. "src/devices/video/epic12_blit2.cpp",
+ MAME_DIR .. "src/devices/video/epic12_blit3.cpp",
+ MAME_DIR .. "src/devices/video/epic12_blit4.cpp",
+ MAME_DIR .. "src/devices/video/epic12_blit5.cpp",
+ MAME_DIR .. "src/devices/video/epic12_blit6.cpp",
+ MAME_DIR .. "src/devices/video/epic12_blit7.cpp",
+ MAME_DIR .. "src/devices/video/epic12_blit8.cpp",
+ MAME_DIR .. "src/devices/video/epic12in.hxx",
+ MAME_DIR .. "src/devices/video/epic12pixel.hxx",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/fixfreq.h,VIDEOS["FIXFREQ"] = true
+--------------------------------------------------
+
+if (VIDEOS["FIXFREQ"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/fixfreq.cpp",
+ MAME_DIR .. "src/devices/video/fixfreq.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/gf4500.h,VIDEOS["GF4500"] = true
+--------------------------------------------------
+
+if (VIDEOS["GF4500"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/gf4500.cpp",
+ MAME_DIR .. "src/devices/video/gf4500.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/gf7600gs.h,VIDEOS["GF7600GS"] = true
+--------------------------------------------------
+
+if (VIDEOS["GF7600GS"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/gf7600gs.cpp",
+ MAME_DIR .. "src/devices/video/gf7600gs.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/mga2064w.h,VIDEOS["MGA2064W"] = true
+--------------------------------------------------
+
+if (VIDEOS["MGA2064W"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/mga2064w.cpp",
+ MAME_DIR .. "src/devices/video/mga2064w.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/hd44102.h,VIDEOS["HD44102"] = true
+--------------------------------------------------
+
+if (VIDEOS["HD44102"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/hd44102.cpp",
+ MAME_DIR .. "src/devices/video/hd44102.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/hd44352.h,VIDEOS["HD44352"] = true
+--------------------------------------------------
+
+if (VIDEOS["HD44352"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/hd44352.cpp",
+ MAME_DIR .. "src/devices/video/hd44352.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/hd44780.h,VIDEOS["HD44780"] = true
+--------------------------------------------------
+
+if (VIDEOS["HD44780"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/hd44780.cpp",
+ MAME_DIR .. "src/devices/video/hd44780.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/hd61830.h,VIDEOS["HD61830"] = true
+--------------------------------------------------
+
+if (VIDEOS["HD61830"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/hd61830.cpp",
+ MAME_DIR .. "src/devices/video/hd61830.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/hd63484.h,VIDEOS["HD63484"] = true
+--------------------------------------------------
+
+if (VIDEOS["HD63484"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/hd63484.cpp",
+ MAME_DIR .. "src/devices/video/hd63484.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/hd66421.h,VIDEOS["HD66421"] = true
+--------------------------------------------------
+
+if (VIDEOS["HD66421"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/hd66421.cpp",
+ MAME_DIR .. "src/devices/video/hd66421.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/hlcd0515.h,VIDEOS["HLCD0515"] = true
+--------------------------------------------------
+
+if (VIDEOS["HLCD0515"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/hlcd0515.cpp",
+ MAME_DIR .. "src/devices/video/hlcd0515.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/hlcd0538.h,VIDEOS["HLCD0538"] = true
+--------------------------------------------------
+
+if (VIDEOS["HLCD0538"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/hlcd0538.cpp",
+ MAME_DIR .. "src/devices/video/hlcd0538.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/hp1ll3.h,VIDEOS["HP1LL3"] = true
+--------------------------------------------------
+
+if (VIDEOS["HP1LL3"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/hp1ll3.cpp",
+ MAME_DIR .. "src/devices/video/hp1ll3.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/huc6202.h,VIDEOS["HUC6202"] = true
+--------------------------------------------------
+
+if (VIDEOS["HUC6202"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/huc6202.cpp",
+ MAME_DIR .. "src/devices/video/huc6202.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/huc6260.h,VIDEOS["HUC6260"] = true
+--------------------------------------------------
+
+if (VIDEOS["HUC6260"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/huc6260.cpp",
+ MAME_DIR .. "src/devices/video/huc6260.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/huc6261.h,VIDEOS["HUC6261"] = true
+--------------------------------------------------
+
+if (VIDEOS["HUC6261"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/huc6261.cpp",
+ MAME_DIR .. "src/devices/video/huc6261.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/huc6270.h,VIDEOS["HUC6270"] = true
+--------------------------------------------------
+
+if (VIDEOS["HUC6270"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/huc6270.cpp",
+ MAME_DIR .. "src/devices/video/huc6270.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/huc6271.h,VIDEOS["HUC6271"] = true
+--------------------------------------------------
+
+if (VIDEOS["HUC6271"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/huc6271.cpp",
+ MAME_DIR .. "src/devices/video/huc6271.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/huc6272.h,VIDEOS["HUC6272"] = true
+--------------------------------------------------
+
+if (VIDEOS["HUC6272"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/huc6272.cpp",
+ MAME_DIR .. "src/devices/video/huc6272.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/i8244.h,VIDEOS["I8244"] = true
+--------------------------------------------------
+
+if (VIDEOS["I8244"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/i8244.cpp",
+ MAME_DIR .. "src/devices/video/i8244.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/i82730.h,VIDEOS["I82730"] = true
+--------------------------------------------------
+
+if (VIDEOS["I82730"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/i82730.cpp",
+ MAME_DIR .. "src/devices/video/i82730.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/i8275.h,VIDEOS["I8275"] = true
+--------------------------------------------------
+
+if (VIDEOS["I8275"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/i8275.cpp",
+ MAME_DIR .. "src/devices/video/i8275.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/m50458.h,VIDEOS["M50458"] = true
+--------------------------------------------------
+
+if (VIDEOS["M50458"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/m50458.cpp",
+ MAME_DIR .. "src/devices/video/m50458.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/mb90082.h,VIDEOS["MB90082"] = true
+--------------------------------------------------
+
+if (VIDEOS["MB90082"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/mb90082.cpp",
+ MAME_DIR .. "src/devices/video/mb90082.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/mb_vcu.h,VIDEOS["MB_VCU"] = true
+--------------------------------------------------
+
+if (VIDEOS["MB_VCU"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/mb_vcu.cpp",
+ MAME_DIR .. "src/devices/video/mb_vcu.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/mc6845.h,VIDEOS["MC6845"] = true
+--------------------------------------------------
+
+if (VIDEOS["MC6845"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/mc6845.cpp",
+ MAME_DIR .. "src/devices/video/mc6845.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/mc6847.h,VIDEOS["MC6847"] = true
+--------------------------------------------------
+
+if (VIDEOS["MC6847"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/mc6847.cpp",
+ MAME_DIR .. "src/devices/video/mc6847.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/msm6222b.h,VIDEOS["MSM6222B"] = true
+--------------------------------------------------
+
+if (VIDEOS["MSM6222B"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/msm6222b.cpp",
+ MAME_DIR .. "src/devices/video/msm6222b.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/msm6255.h,VIDEOS["MSM6255"] = true
+--------------------------------------------------
+
+if (VIDEOS["MSM6255"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/msm6255.cpp",
+ MAME_DIR .. "src/devices/video/msm6255.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/mos6566.h,VIDEOS["MOS6566"] = true
+--------------------------------------------------
+
+if (VIDEOS["MOS6566"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/mos6566.cpp",
+ MAME_DIR .. "src/devices/video/mos6566.h",
+ }
+end
+
+
+files {
+ MAME_DIR .. "src/devices/video/cgapal.cpp",
+ MAME_DIR .. "src/devices/video/cgapal.h",
+}
+
+--------------------------------------------------
+--
+--@src/devices/video/pc_vga.h,VIDEOS["PC_VGA"] = true
+--------------------------------------------------
+
+if (VIDEOS["PC_VGA"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/pc_vga.cpp",
+ MAME_DIR .. "src/devices/video/pc_vga.h",
+ MAME_DIR .. "src/devices/bus/isa/trident.cpp",
+ MAME_DIR .. "src/devices/bus/isa/trident.h",
+ MAME_DIR .. "src/devices/video/clgd542x.cpp",
+ MAME_DIR .. "src/devices/video/clgd542x.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/pcd8544.h,VIDEOS["PCD8544"] = true
+--------------------------------------------------
+
+if (VIDEOS["PCD8544"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/pcd8544.cpp",
+ MAME_DIR .. "src/devices/video/pcd8544.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/polylgcy.h,VIDEOS["POLY"] = true
+--------------------------------------------------
+
+if (VIDEOS["POLY"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/polylgcy.cpp",
+ MAME_DIR .. "src/devices/video/polylgcy.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/psx.h,VIDEOS["PSX"] = true
+--------------------------------------------------
+
+if (VIDEOS["PSX"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/psx.cpp",
+ MAME_DIR .. "src/devices/video/psx.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/ramdac.h,VIDEOS["RAMDAC"] = true
+--------------------------------------------------
+
+if (VIDEOS["RAMDAC"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/ramdac.cpp",
+ MAME_DIR .. "src/devices/video/ramdac.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/saa5050.h,VIDEOS["SAA5050"] = true
+--------------------------------------------------
+
+if (VIDEOS["SAA5050"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/saa5050.cpp",
+ MAME_DIR .. "src/devices/video/saa5050.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/sed1200.h,VIDEOS["SED1200"] = true
+--------------------------------------------------
+if (VIDEOS["SED1200"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/sed1200.cpp",
+ MAME_DIR .. "src/devices/video/sed1200.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/sed1330.h,VIDEOS["SED1330"] = true
+--------------------------------------------------
+if (VIDEOS["SED1330"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/sed1330.cpp",
+ MAME_DIR .. "src/devices/video/sed1330.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/sed1520.h,VIDEOS["SED1520"] = true
+--------------------------------------------------
+if (VIDEOS["SED1520"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/sed1520.cpp",
+ MAME_DIR .. "src/devices/video/sed1520.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/scn2674.h,VIDEOS["SCN2674"] = true
+--------------------------------------------------
+if (VIDEOS["SCN2674"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/scn2674.cpp",
+ MAME_DIR .. "src/devices/video/scn2674.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/snes_ppu.h,VIDEOS["SNES_PPU"] = true
+--------------------------------------------------
+if (VIDEOS["SNES_PPU"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/snes_ppu.cpp",
+ MAME_DIR .. "src/devices/video/snes_ppu.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/stvvdp1.h,VIDEOS["STVVDP"] = true
+--@src/devices/video/stvvdp2.h,VIDEOS["STVVDP"] = true
+--------------------------------------------------
+
+if (VIDEOS["STVVDP"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/stvvdp1.cpp",
+ MAME_DIR .. "src/devices/video/stvvdp1.h",
+ MAME_DIR .. "src/devices/video/stvvdp2.cpp",
+ MAME_DIR .. "src/devices/video/stvvdp2.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/t6a04.h,VIDEOS["T6A04"] = true
+--------------------------------------------------
+
+if (VIDEOS["T6A04"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/t6a04.cpp",
+ MAME_DIR .. "src/devices/video/t6a04.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/tea1002.h,VIDEOS["TEA1002"] = true
+--------------------------------------------------
+
+if (VIDEOS["TEA1002"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/tea1002.cpp",
+ MAME_DIR .. "src/devices/video/tea1002.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/tlc34076.h,VIDEOS["TLC34076"] = true
+--------------------------------------------------
+
+if (VIDEOS["TLC34076"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/tlc34076.cpp",
+ MAME_DIR .. "src/devices/video/tlc34076.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/tms34061.h,VIDEOS["TMS34061"] = true
+--------------------------------------------------
+
+if (VIDEOS["TMS34061"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/tms34061.cpp",
+ MAME_DIR .. "src/devices/video/tms34061.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/tms3556.h,VIDEOS["TMS3556"] = true
+--------------------------------------------------
+
+if (VIDEOS["TMS3556"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/tms3556.cpp",
+ MAME_DIR .. "src/devices/video/tms3556.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/tms9927.h,VIDEOS["TMS9927"] = true
+--------------------------------------------------
+
+if (VIDEOS["TMS9927"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/tms9927.cpp",
+ MAME_DIR .. "src/devices/video/tms9927.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/tms9928a.h,VIDEOS["TMS9928A"] = true
+--------------------------------------------------
+
+if (VIDEOS["TMS9928A"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/tms9928a.cpp",
+ MAME_DIR .. "src/devices/video/tms9928a.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/upd3301.h,VIDEOS["UPD3301"] = true
+--------------------------------------------------
+
+if (VIDEOS["UPD3301"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/upd3301.cpp",
+ MAME_DIR .. "src/devices/video/upd3301.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/upd7220.h,VIDEOS["UPD7220"] = true
+--------------------------------------------------
+
+if (VIDEOS["UPD7220"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/upd7220.cpp",
+ MAME_DIR .. "src/devices/video/upd7220.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/upd7227.h,VIDEOS["UPD7227"] = true
+--------------------------------------------------
+
+if (VIDEOS["UPD7227"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/upd7227.cpp",
+ MAME_DIR .. "src/devices/video/upd7227.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/vic4567.h,VIDEOS["VIC4567"] = true
+--------------------------------------------------
+
+if (VIDEOS["VIC4567"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/vic4567.cpp",
+ MAME_DIR .. "src/devices/video/vic4567.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/v9938.h,VIDEOS["V9938"] = true
+--------------------------------------------------
+
+if (VIDEOS["V9938"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/v9938.cpp",
+ MAME_DIR .. "src/devices/video/v9938.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/zeus2.h,VIDEOS["ZEUS2"] = true
+--------------------------------------------------
+
+if (VIDEOS["ZEUS2"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/zeus2.cpp",
+ MAME_DIR .. "src/devices/video/zeus2.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/voodoo.h,VIDEOS["VOODOO"] = true
+--------------------------------------------------
+
+if (VIDEOS["VOODOO"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/voodoo.cpp",
+ MAME_DIR .. "src/devices/video/voodoo.h",
+ MAME_DIR .. "src/devices/video/vooddefs.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/voodoo_pci.h,VIDEOS["VOODOO_PCI"] = true
+--------------------------------------------------
+
+if (VIDEOS["VOODOO_PCI"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/voodoo_pci.cpp",
+ MAME_DIR .. "src/devices/video/voodoo_pci.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/crtc_ega.h,VIDEOS["CRTC_EGA"] = true
+--------------------------------------------------
+
+if (VIDEOS["CRTC_EGA"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/crtc_ega.cpp",
+ MAME_DIR .. "src/devices/video/crtc_ega.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/jangou_blitter.h,VIDEOS["JANGOU_BLITTER"] = true
+--------------------------------------------------
+
+if (VIDEOS["JANGOU_BLITTER"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/jangou_blitter.cpp",
+ MAME_DIR .. "src/devices/video/jangou_blitter.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/gb_lcd.h,VIDEOS["GB_LCD"] = true
+--------------------------------------------------
+
+if (VIDEOS["GB_LCD"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/gb_lcd.cpp",
+ MAME_DIR .. "src/devices/video/gb_lcd.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/gba_lcd.h,VIDEOS["GBA_LCD"] = true
+--------------------------------------------------
+
+if (VIDEOS["GBA_LCD"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/gba_lcd.cpp",
+ MAME_DIR .. "src/devices/video/gba_lcd.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/ef9369.h,VIDEOS["EF9369"] = true
+--------------------------------------------------
+
+if (VIDEOS["EF9369"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/ef9369.cpp",
+ MAME_DIR .. "src/devices/video/ef9369.h",
+ }
+end
+
+--------------------------------------------------
+--
+--@src/devices/video/ppu2c0x.h,VIDEOS["PPU2C0X"] = true
+--------------------------------------------------
+
+if (VIDEOS["PPU2C0X"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/video/ppu2c0x.cpp",
+ MAME_DIR .. "src/devices/video/ppu2c0x.h",
+ }
+end
+
diff --git a/docs/release/scripts/target/hbmame/hbmame.lua b/docs/release/scripts/target/hbmame/hbmame.lua
new file mode 100644
index 00000000000..c77d3705723
--- /dev/null
+++ b/docs/release/scripts/target/hbmame/hbmame.lua
@@ -0,0 +1,783 @@
+-- license:BSD-3-Clause
+-- copyright-holders:Robbbert
+---------------------------------------------------------------------------
+--
+-- hbmame.lua
+--
+-- HBMAME target makefile
+--
+---------------------------------------------------------------------------
+
+--------------------------------------------------
+-- specify available CPU cores
+---------------------------------------------------
+
+CPUS["ADSP21XX"] = true
+CPUS["ADSP21062"] = true -- model2
+CPUS["ARM"] = true
+CPUS["ARM7"] = true
+CPUS["CCPU"] = true
+CPUS["DSP16A"] = true
+CPUS["H6280"] = true
+CPUS["HD6309"] = true
+CPUS["I8085"] = true
+CPUS["I8089"] = true
+CPUS["I86"] = true
+CPUS["I960"] = true -- model2
+CPUS["M6502"] = true
+CPUS["M6800"] = true
+CPUS["M6805"] = true
+CPUS["M6809"] = true
+CPUS["M680X0"] = true
+CPUS["MB88XX"] = true
+CPUS["MB86233"] = true -- model2
+CPUS["MB86235"] = true -- model2
+CPUS["MCS48"] = true
+CPUS["MCS51"] = true
+CPUS["NEC"] = true
+CPUS["S2650"] = true
+CPUS["SH2"] = true
+CPUS["SSP1601"] = true
+CPUS["TLCS90"] = true
+CPUS["TMS32010"] = true
+CPUS["TMS32031"] = true
+CPUS["TMS340X0"] = true
+CPUS["PIC16C5X"] = true
+CPUS["V810"] = true
+CPUS["Z180"] = true
+CPUS["Z80"] = true
+
+--------------------------------------------------
+-- specify available sound cores
+--------------------------------------------------
+
+SOUNDS["SAMPLES"] = true
+SOUNDS["DAC"] = true
+SOUNDS["DMADAC"] = true
+SOUNDS["SPEAKER"] = true
+SOUNDS["BEEP"] = true
+SOUNDS["DISCRETE"] = true
+SOUNDS["AY8910"] = true
+SOUNDS["YM2151"] = true
+SOUNDS["YM2203"] = true
+SOUNDS["YM2413"] = true
+SOUNDS["YM2608"] = true
+SOUNDS["YM2610"] = true
+SOUNDS["YM2612"] = true
+SOUNDS["YM3812"] = true
+SOUNDS["YM3526"] = true
+SOUNDS["YMF262"] = true
+SOUNDS["YMF278B"] = true
+SOUNDS["YMZ280B"] = true
+SOUNDS["SN76477"] = true
+SOUNDS["SN76496"] = true
+SOUNDS["POKEY"] = true
+SOUNDS["NES_APU"] = true
+SOUNDS["ASTROCADE"] = true
+SOUNDS["NAMCO_15XX"] = true
+SOUNDS["NAMCO_52XX"] = true
+SOUNDS["TMS36XX"] = true
+SOUNDS["TMS5110"] = true
+SOUNDS["TMS5220"] = true
+SOUNDS["VLM5030"] = true
+SOUNDS["MSM5205"] = true
+SOUNDS["OKIM6295"] = true
+SOUNDS["UPD7759"] = true
+SOUNDS["HC55516"] = true
+SOUNDS["K005289"] = true
+SOUNDS["K007232"] = true
+SOUNDS["K051649"] = true
+SOUNDS["K053260"] = true
+SOUNDS["K054539"] = true
+SOUNDS["SEGAPCM"] = true
+SOUNDS["RF5C68"] = true
+SOUNDS["QSOUND"] = true
+SOUNDS["ES5505"] = true
+SOUNDS["SP0250"] = true
+SOUNDS["CDDA"] = true
+SOUNDS["ICS2115"] = true
+SOUNDS["ST0016"] = true
+SOUNDS["VOLT_REG"] = true
+SOUNDS["VOTRAX"] = true
+SOUNDS["DIGITALKER"] = true
+SOUNDS["MULTIPCM"] = true -- model2
+SOUNDS["SCSP"] = true -- model2
+SOUNDS["MPEG_AUDIO"] = true -- model2
+
+--------------------------------------------------
+-- specify available video cores
+--------------------------------------------------
+
+VIDEOS["SEGA315_5124"] = true
+VIDEOS["SEGA315_5313"] = true
+VIDEOS["BUFSPRITE"] = true
+VIDEOS["HD63484"] = true
+VIDEOS["MC6845"] = true
+VIDEOS["TLC34076"] = true
+VIDEOS["TMS34061"] = true
+
+--------------------------------------------------
+-- specify available machine cores
+--------------------------------------------------
+
+MACHINES["6522VIA"] = true
+MACHINES["RIOT6532"] = true
+MACHINES["6821PIA"] = true
+MACHINES["68681"] = true
+MACHINES["I8257"] = true
+MACHINES["AAKARTDEV"] = true
+MACHINES["BANKDEV"] = true
+MACHINES["CXD1095"] = true
+MACHINES["EEPROMDEV"] = true
+MACHINES["ER2055"] = true
+MACHINES["FDC_PLL"] = true
+MACHINES["I2CMEM"] = true
+MACHINES["I8243"] = true
+MACHINES["I8251"] = true
+MACHINES["I8255"] = true
+MACHINES["INTELFLASH"] = true
+MACHINES["GEN_LATCH"] = true
+MACHINES["LATCH8"] = true
+MACHINES["LDPR8210"] = true
+MACHINES["MB14241"] = true
+MACHINES["MB87078"] = true
+MACHINES["MIOT6530"] = true
+MACHINES["MSM6253"] = true
+MACHINES["NETLIST"] = true
+MACHINES["RP5H01"] = true
+MACHINES["TIMEKPR"] = true
+MACHINES["TMS1024"] = true -- docastle
+MACHINES["TMS6100"] = true
+MACHINES["TTL74157"] = true
+MACHINES["UPD1990A"] = true
+MACHINES["UPD4992"] = true
+MACHINES["V3021"] = true
+MACHINES["WATCHDOG"] = true
+MACHINES["WD33C93"] = true
+MACHINES["WD_FDC"] = true
+MACHINES["Z80CTC"] = true
+MACHINES["Z80DART"] = true
+MACHINES["Z80PIO"] = true
+
+--------------------------------------------------
+-- specify available bus cores
+--------------------------------------------------
+
+BUSES["GENERIC"] = true
+-- BUSES["NEOGEO"] = true
+-- BUSES["NEOGEO_CTRL"] = true
+BUSES["SCSI"] = true
+
+--------------------------------------------------
+-- this is the list of driver libraries that
+-- comprise MAME plus hbmame.lst which contains
+-- the list of drivers
+--------------------------------------------------
+
+function linkProjects_hbmame_hbmame(_target, _subtarget)
+ links {
+ "acorn",
+ "atari",
+ "atlus",
+ "capcom",
+ "cave",
+ "cinemat",
+ "dataeast",
+ "exidy",
+ "gottlieb",
+ "igs",
+ "irem",
+ "itech",
+ "jaleco",
+ "kaneko",
+ "konami",
+ "midway",
+ "namco",
+ "neogeo",
+ "nichibut",
+ "nintendo",
+ "nmk",
+ "pacman",
+ "phoenix",
+ "psikyo",
+ "sega",
+ "seta",
+ "snk",
+ "taito",
+ "tehkan",
+ "toaplan",
+ "univers",
+ "valadon",
+ "shared",
+ "misc",
+ }
+end
+
+function createHBMAMEProjects(_target, _subtarget, _name)
+ project (_name)
+ targetsubdir(_target .."_" .. _subtarget)
+ kind (LIBTYPE)
+ uuid (os.uuid("drv-" .. _target .."_" .. _subtarget .. "_" .._name))
+-- addprojectflags() -- no idea if this is needed, seems to work fine without it
+ precompiledheaders()
+
+ includedirs {
+ MAME_DIR .. "src/osd",
+ MAME_DIR .. "src/emu",
+ MAME_DIR .. "src/devices",
+ MAME_DIR .. "src/hbmame/includes",
+ MAME_DIR .. "src/hbmame",
+ MAME_DIR .. "src/mame",
+ MAME_DIR .. "src/lib",
+ MAME_DIR .. "src/lib/util",
+ MAME_DIR .. "src/lib/netlist",
+ MAME_DIR .. "3rdparty",
+ MAME_DIR .. "3rdparty/zlib",
+ GEN_DIR .. "mame/layout",
+ GEN_DIR .. "hbmame/layout",
+ }
+ includedirs {
+ ext_includedir("flac"),
+ }
+end
+
+function createProjects_hbmame_hbmame(_target, _subtarget)
+--------------------------------------------------
+-- the following files are general components and
+-- shared across a number of drivers
+--------------------------------------------------
+
+createHBMAMEProjects(_target, _subtarget, "shared")
+files {
+ MAME_DIR .. "src/mame/machine/ticket.cpp",
+}
+
+--------------------------------------------------
+-- manufacturer-specific groupings for drivers
+--------------------------------------------------
+
+createHBMAMEProjects(_target, _subtarget, "acorn")
+files {
+ MAME_DIR .. "src/hbmame/drivers/ertictac.cpp",
+ MAME_DIR .. "src/mame/machine/archimds.cpp",
+ MAME_DIR .. "src/mame/video/archimds.cpp",
+}
+
+createHBMAMEProjects(_target, _subtarget, "atari")
+files {
+ MAME_DIR .. "src/hbmame/drivers/asteroid.cpp",
+ MAME_DIR .. "src/mame/machine/asteroid.cpp",
+ MAME_DIR .. "src/hbmame/drivers/atarisy1.cpp",
+ MAME_DIR .. "src/mame/video/atarisy1.cpp",
+ MAME_DIR .. "src/mame/audio/asteroid.cpp",
+ MAME_DIR .. "src/hbmame/drivers/bwidow.cpp",
+ MAME_DIR .. "src/mame/audio/bwidow.cpp",
+ MAME_DIR .. "src/hbmame/drivers/cball.cpp",
+ MAME_DIR .. "src/hbmame/drivers/centiped.cpp",
+ MAME_DIR .. "src/mame/video/centiped.cpp",
+ MAME_DIR .. "src/hbmame/drivers/gauntlet.cpp",
+ MAME_DIR .. "src/mame/video/gauntlet.cpp",
+ MAME_DIR .. "src/hbmame/drivers/tempest.cpp",
+ MAME_DIR .. "src/mame/machine/atari_vg.cpp",
+ MAME_DIR .. "src/mame/machine/atarigen.cpp",
+ MAME_DIR .. "src/mame/machine/mathbox.cpp",
+ MAME_DIR .. "src/mame/machine/slapstic.cpp",
+ MAME_DIR .. "src/mame/audio/llander.cpp",
+ MAME_DIR .. "src/mame/video/atarimo.cpp",
+ MAME_DIR .. "src/mame/video/avgdvg.cpp",
+}
+
+createHBMAMEProjects(_target, _subtarget, "atlus")
+files {
+ MAME_DIR .. "src/hbmame/drivers/powerins.cpp",
+ MAME_DIR .. "src/mame/video/powerins.cpp",
+}
+
+createHBMAMEProjects(_target, _subtarget, "capcom")
+files {
+ MAME_DIR .. "src/hbmame/drivers/1942.cpp",
+ MAME_DIR .. "src/mame/video/1942.cpp",
+ MAME_DIR .. "src/hbmame/drivers/blktiger.cpp",
+ MAME_DIR .. "src/mame/video/blktiger.cpp",
+ MAME_DIR .. "src/hbmame/drivers/commando.cpp",
+ MAME_DIR .. "src/mame/video/commando.cpp",
+ MAME_DIR .. "src/hbmame/drivers/cps1.cpp",
+ MAME_DIR .. "src/hbmame/video/cps1.cpp",
+ MAME_DIR .. "src/hbmame/drivers/cps2.cpp",
+ MAME_DIR .. "src/mame/machine/cps2crypt.cpp",
+ MAME_DIR .. "src/hbmame/drivers/cps3.cpp",
+ MAME_DIR .. "src/mame/audio/cps3.cpp",
+ MAME_DIR .. "src/hbmame/drivers/fcrash.cpp",
+ MAME_DIR .. "src/hbmame/drivers/mitchell.cpp",
+ MAME_DIR .. "src/mame/video/mitchell.cpp",
+ MAME_DIR .. "src/mame/machine/kabuki.cpp",
+}
+
+createHBMAMEProjects(_target, _subtarget, "cave")
+files {
+ MAME_DIR .. "src/hbmame/drivers/cave.cpp",
+ MAME_DIR .. "src/mame/video/cave.cpp",
+}
+
+createHBMAMEProjects(_target, _subtarget, "cinemat")
+files {
+ MAME_DIR .. "src/hbmame/drivers/cinemat.cpp",
+ MAME_DIR .. "src/mame/audio/cinemat.cpp",
+ MAME_DIR .. "src/mame/video/cinemat.cpp",
+}
+
+createHBMAMEProjects(_target, _subtarget, "dataeast")
+files {
+ MAME_DIR .. "src/hbmame/drivers/astrof.cpp",
+ MAME_DIR .. "src/mame/audio/astrof.cpp",
+ MAME_DIR .. "src/hbmame/drivers/btime.cpp",
+ MAME_DIR .. "src/mame/machine/btime.cpp",
+ MAME_DIR .. "src/mame/video/btime.cpp",
+ MAME_DIR .. "src/hbmame/drivers/dec0.cpp",
+ MAME_DIR .. "src/mame/machine/dec0.cpp",
+ MAME_DIR .. "src/mame/video/dec0.cpp",
+ MAME_DIR .. "src/mame/machine/deco222.cpp",
+ MAME_DIR .. "src/mame/machine/decocpu7.cpp",
+ MAME_DIR .. "src/hbmame/drivers/pcktgal.cpp",
+ MAME_DIR .. "src/mame/video/pcktgal.cpp",
+ MAME_DIR .. "src/mame/video/decbac06.cpp",
+ MAME_DIR .. "src/mame/video/decmxc06.cpp",
+}
+
+createHBMAMEProjects(_target, _subtarget, "exidy")
+files {
+ MAME_DIR .. "src/hbmame/drivers/exidy.cpp",
+ MAME_DIR .. "src/mame/audio/exidy.cpp",
+ MAME_DIR .. "src/mame/video/exidy.cpp",
+ MAME_DIR .. "src/mame/audio/targ.cpp",
+}
+
+createHBMAMEProjects(_target, _subtarget, "gottlieb")
+files {
+ MAME_DIR .. "src/hbmame/drivers/gottlieb.cpp",
+ MAME_DIR .. "src/mame/audio/gottlieb.cpp",
+ MAME_DIR .. "src/mame/video/gottlieb.cpp",
+}
+
+createHBMAMEProjects(_target, _subtarget, "igs")
+files {
+ MAME_DIR .. "src/hbmame/drivers/pgm.cpp",
+ MAME_DIR .. "src/mame/video/pgm.cpp",
+ MAME_DIR .. "src/mame/machine/pgmprot_igs027a_type1.cpp",
+ MAME_DIR .. "src/mame/machine/pgmprot_igs027a_type2.cpp",
+ MAME_DIR .. "src/mame/machine/pgmprot_igs027a_type3.cpp",
+ MAME_DIR .. "src/mame/machine/pgmprot_igs025_igs012.cpp",
+ MAME_DIR .. "src/mame/machine/pgmprot_igs025_igs022.cpp",
+ MAME_DIR .. "src/mame/machine/pgmprot_igs025_igs028.cpp",
+ MAME_DIR .. "src/mame/machine/pgmprot_orlegend.cpp",
+ MAME_DIR .. "src/mame/machine/pgmcrypt.cpp",
+ MAME_DIR .. "src/mame/machine/igs025.cpp",
+ MAME_DIR .. "src/mame/machine/igs022.cpp",
+ MAME_DIR .. "src/mame/machine/igs028.cpp",
+}
+
+createHBMAMEProjects(_target, _subtarget, "irem")
+files {
+ MAME_DIR .. "src/hbmame/drivers/m52.cpp",
+ MAME_DIR .. "src/mame/video/m52.cpp",
+ MAME_DIR .. "src/mame/machine/irem_cpu.cpp",
+ MAME_DIR .. "src/mame/audio/nl_kidniki.cpp",
+ MAME_DIR .. "src/mame/audio/irem.cpp",
+}
+
+createHBMAMEProjects(_target, _subtarget, "itech")
+files {
+ MAME_DIR .. "src/hbmame/drivers/itech8.cpp",
+ MAME_DIR .. "src/mame/machine/itech8.cpp",
+ MAME_DIR .. "src/mame/video/itech8.cpp",
+}
+
+createHBMAMEProjects(_target, _subtarget, "jaleco")
+files {
+ MAME_DIR .. "src/hbmame/drivers/exerion.cpp",
+ MAME_DIR .. "src/mame/video/exerion.cpp",
+}
+
+createHBMAMEProjects(_target, _subtarget, "kaneko")
+files {
+ MAME_DIR .. "src/hbmame/drivers/kaneko16.cpp",
+ MAME_DIR .. "src/mame/includes/kaneko16.h",
+ MAME_DIR .. "src/mame/video/kaneko16.cpp",
+ MAME_DIR .. "src/mame/video/kaneko_tmap.cpp",
+ MAME_DIR .. "src/mame/video/kaneko_tmap.h",
+ MAME_DIR .. "src/mame/video/kaneko_spr.cpp",
+ MAME_DIR .. "src/mame/video/kaneko_spr.h",
+ MAME_DIR .. "src/mame/machine/kaneko_hit.cpp",
+ MAME_DIR .. "src/mame/machine/kaneko_hit.h",
+ MAME_DIR .. "src/mame/machine/kaneko_calc3.cpp",
+ MAME_DIR .. "src/mame/machine/kaneko_calc3.h",
+ MAME_DIR .. "src/mame/machine/kaneko_toybox.cpp",
+ MAME_DIR .. "src/mame/machine/kaneko_toybox.h",
+ MAME_DIR .. "src/mame/video/kan_pand.cpp", -- these 2 needed for linux compile
+ MAME_DIR .. "src/mame/video/kan_pand.h",
+}
+
+createHBMAMEProjects(_target, _subtarget, "konami")
+files {
+ MAME_DIR .. "src/hbmame/drivers/1943.cpp",
+ MAME_DIR .. "src/mame/video/1943.cpp",
+ MAME_DIR .. "src/mame/audio/hyprolyb.cpp",
+ MAME_DIR .. "src/hbmame/drivers/nemesis.cpp",
+ MAME_DIR .. "src/mame/video/nemesis.cpp",
+ MAME_DIR .. "src/hbmame/drivers/shaolins.cpp",
+ MAME_DIR .. "src/mame/video/shaolins.cpp",
+ MAME_DIR .. "src/hbmame/drivers/tmnt.cpp",
+ MAME_DIR .. "src/mame/video/tmnt.cpp",
+ MAME_DIR .. "src/hbmame/drivers/trackfld.cpp",
+ MAME_DIR .. "src/mame/machine/konami1.cpp",
+ MAME_DIR .. "src/mame/audio/trackfld.cpp",
+ MAME_DIR .. "src/mame/video/trackfld.cpp",
+ MAME_DIR .. "src/mame/video/tutankhm.cpp",
+ MAME_DIR .. "src/hbmame/drivers/yiear.cpp",
+ MAME_DIR .. "src/mame/video/yiear.cpp",
+ MAME_DIR .. "src/mame/video/konami_helper.cpp",
+ MAME_DIR .. "src/mame/video/k051960.cpp",
+ MAME_DIR .. "src/mame/video/k052109.cpp",
+ MAME_DIR .. "src/mame/video/k053251.cpp",
+ MAME_DIR .. "src/mame/video/k053244_k053245.cpp",
+ MAME_DIR .. "src/mame/video/k054000.cpp",
+ MAME_DIR .. "src/mame/video/k053936.cpp",
+}
+
+createHBMAMEProjects(_target, _subtarget, "midway")
+files {
+ MAME_DIR .. "src/mame/drivers/8080bw.cpp",
+ MAME_DIR .. "src/mame/includes/8080bw.h",
+ MAME_DIR .. "src/mame/audio/8080bw.cpp",
+ MAME_DIR .. "src/mame/video/8080bw.cpp",
+ MAME_DIR .. "src/mame/drivers/mw8080bw.cpp",
+ MAME_DIR .. "src/mame/includes/mw8080bw.h",
+ MAME_DIR .. "src/mame/machine/mw8080bw.cpp",
+ MAME_DIR .. "src/mame/audio/mw8080bw.cpp",
+ MAME_DIR .. "src/mame/video/mw8080bw.cpp",
+ MAME_DIR .. "src/hbmame/drivers/astrocde.cpp",
+ MAME_DIR .. "src/mame/video/astrocde.cpp",
+ MAME_DIR .. "src/hbmame/drivers/mcr.cpp",
+ MAME_DIR .. "src/mame/machine/mcr.cpp",
+ MAME_DIR .. "src/mame/video/mcr.cpp",
+ MAME_DIR .. "src/hbmame/drivers/mcr3.cpp",
+ MAME_DIR .. "src/mame/video/mcr3.cpp",
+ MAME_DIR .. "src/mame/drivers/mcr68.cpp",
+ MAME_DIR .. "src/mame/machine/mcr68.cpp",
+ MAME_DIR .. "src/mame/video/mcr68.cpp",
+ MAME_DIR .. "src/hbmame/drivers/midtunit.cpp",
+ MAME_DIR .. "src/mame/machine/midtunit.cpp",
+ MAME_DIR .. "src/mame/video/midtunit.cpp",
+ MAME_DIR .. "src/hbmame/drivers/midwunit.cpp",
+ MAME_DIR .. "src/mame/machine/midwunit.cpp",
+ MAME_DIR .. "src/hbmame/drivers/midyunit.cpp",
+ MAME_DIR .. "src/mame/machine/midyunit.cpp",
+ MAME_DIR .. "src/mame/video/midyunit.cpp",
+ MAME_DIR .. "src/mame/drivers/wmg.cpp",
+ MAME_DIR .. "src/hbmame/drivers/williams.cpp",
+ MAME_DIR .. "src/mame/machine/williams.cpp",
+ MAME_DIR .. "src/mame/audio/williams.cpp",
+ MAME_DIR .. "src/mame/video/williams.cpp",
+ MAME_DIR .. "src/mame/machine/midwayic.cpp",
+ MAME_DIR .. "src/mame/audio/midway.cpp",
+ MAME_DIR .. "src/mame/audio/cage.cpp",
+ MAME_DIR .. "src/mame/audio/dcs.cpp",
+ MAME_DIR .. "src/mame/audio/csd.cpp",
+ MAME_DIR .. "src/mame/audio/csd.h",
+}
+
+createHBMAMEProjects(_target, _subtarget, "namco")
+files {
+ MAME_DIR .. "src/hbmame/drivers/galaga.cpp",
+ MAME_DIR .. "src/mame/audio/galaga.cpp",
+ MAME_DIR .. "src/mame/video/galaga.cpp",
+ MAME_DIR .. "src/mame/video/bosco.cpp",
+ MAME_DIR .. "src/mame/video/digdug.cpp",
+ MAME_DIR .. "src/mame/machine/xevious.cpp",
+ MAME_DIR .. "src/mame/video/xevious.cpp",
+ MAME_DIR .. "src/hbmame/drivers/galaxian.cpp",
+ MAME_DIR .. "src/mame/audio/galaxian.cpp",
+ MAME_DIR .. "src/hbmame/video/galaxian.cpp",
+ MAME_DIR .. "src/hbmame/drivers/mappy.cpp",
+ MAME_DIR .. "src/mame/video/mappy.cpp",
+ MAME_DIR .. "src/hbmame/drivers/pacland.cpp",
+ MAME_DIR .. "src/mame/video/pacland.cpp",
+ MAME_DIR .. "src/mame/drivers/polepos.cpp",
+ MAME_DIR .. "src/mame/audio/polepos.cpp",
+ MAME_DIR .. "src/mame/video/polepos.cpp",
+ MAME_DIR .. "src/hbmame/drivers/rallyx.cpp",
+ MAME_DIR .. "src/mame/video/rallyx.cpp",
+ MAME_DIR .. "src/mame/machine/namcoio.cpp",
+ MAME_DIR .. "src/mame/machine/namco06.cpp",
+ MAME_DIR .. "src/mame/machine/namco50.cpp",
+ MAME_DIR .. "src/mame/machine/namco51.cpp",
+ MAME_DIR .. "src/mame/machine/namco53.cpp",
+ MAME_DIR .. "src/mame/audio/namco52.cpp",
+ MAME_DIR .. "src/mame/audio/namco54.cpp",
+ MAME_DIR .. "src/mame/audio/timeplt.cpp",
+}
+
+createHBMAMEProjects(_target, _subtarget, "neogeo")
+files {
+ MAME_DIR .. "src/hbmame/drivers/neogeo.cpp",
+ MAME_DIR .. "src/hbmame/video/neogeo.cpp",
+ MAME_DIR .. "src/hbmame/drivers/neogeo_noslot.cpp",
+ MAME_DIR .. "src/hbmame/video/neogeo_spr.cpp",
+ MAME_DIR .. "src/hbmame/machine/ng_memcard.cpp",
+ MAME_DIR .. "src/hbmame/bus/neogeo/prot.cpp",
+ MAME_DIR .. "src/hbmame/bus/neogeo/prot.h",
+ MAME_DIR .. "src/hbmame/bus/neogeo/banked_cart.cpp",
+ MAME_DIR .. "src/hbmame/bus/neogeo/banked_cart.h",
+ MAME_DIR .. "src/hbmame/bus/neogeo_ctrl/ctrl.cpp",
+ MAME_DIR .. "src/hbmame/bus/neogeo_ctrl/ctrl.h",
+ MAME_DIR .. "src/hbmame/bus/neogeo_ctrl/joystick.cpp",
+ MAME_DIR .. "src/hbmame/bus/neogeo_ctrl/joystick.h",
+ MAME_DIR .. "src/hbmame/bus/neogeo_ctrl/mahjong.cpp",
+ MAME_DIR .. "src/hbmame/bus/neogeo_ctrl/mahjong.h",
+ MAME_DIR .. "src/hbmame/bus/neogeo_ctrl/dial.cpp",
+ MAME_DIR .. "src/hbmame/bus/neogeo_ctrl/dial.h",
+ MAME_DIR .. "src/hbmame/bus/neogeo_ctrl/irrmaze.cpp",
+ MAME_DIR .. "src/hbmame/bus/neogeo_ctrl/irrmaze.h",
+ MAME_DIR .. "src/hbmame/bus/neogeo_ctrl/kizuna4p.cpp",
+ MAME_DIR .. "src/hbmame/bus/neogeo_ctrl/kizuna4p.h",
+}
+
+createHBMAMEProjects(_target, _subtarget, "nichibut")
+files {
+ MAME_DIR .. "src/hbmame/drivers/cclimber.cpp",
+ MAME_DIR .. "src/mame/machine/cclimber.cpp",
+ MAME_DIR .. "src/mame/audio/cclimber.cpp",
+ MAME_DIR .. "src/mame/video/cclimber.cpp",
+ MAME_DIR .. "src/hbmame/drivers/terracre.cpp",
+ MAME_DIR .. "src/mame/video/terracre.cpp",
+}
+
+createHBMAMEProjects(_target, _subtarget, "nintendo")
+files {
+ MAME_DIR .. "src/hbmame/drivers/dkong.cpp",
+ MAME_DIR .. "src/mame/audio/dkong.cpp",
+ MAME_DIR .. "src/mame/video/dkong.cpp",
+ MAME_DIR .. "src/hbmame/drivers/mario.cpp",
+ MAME_DIR .. "src/mame/audio/mario.cpp",
+ MAME_DIR .. "src/mame/video/mario.cpp",
+ MAME_DIR .. "src/mame/audio/nl_mario.cpp",
+ MAME_DIR .. "src/mame/audio/nl_mario.h",
+ MAME_DIR .. "src/hbmame/drivers/mmagic.cpp",
+ MAME_DIR .. "src/hbmame/drivers/playch10.cpp",
+ MAME_DIR .. "src/mame/machine/playch10.cpp",
+ MAME_DIR .. "src/mame/video/playch10.cpp",
+ MAME_DIR .. "src/hbmame/drivers/vsnes.cpp",
+ MAME_DIR .. "src/mame/machine/vsnes.cpp",
+ MAME_DIR .. "src/mame/video/vsnes.cpp",
+ MAME_DIR .. "src/devices/video/ppu2c0x.cpp",
+ MAME_DIR .. "src/devices/machine/z80dma.cpp",
+
+}
+
+createHBMAMEProjects(_target, _subtarget, "nmk")
+files {
+ MAME_DIR .. "src/hbmame/drivers/nmk16.cpp",
+ MAME_DIR .. "src/mame/video/nmk16.cpp",
+ MAME_DIR .. "src/mame/machine/nmk004.cpp",
+ MAME_DIR .. "src/mame/audio/seibu.cpp",
+}
+
+createHBMAMEProjects(_target, _subtarget, "pacman")
+files {
+ MAME_DIR .. "src/hbmame/drivers/jrpacman.cpp",
+ MAME_DIR .. "src/hbmame/drivers/pacman.cpp",
+ MAME_DIR .. "src/hbmame/video/pacman.cpp",
+ MAME_DIR .. "src/hbmame/drivers/pengo.cpp",
+}
+
+createHBMAMEProjects(_target, _subtarget, "phoenix")
+files {
+ MAME_DIR .. "src/hbmame/drivers/phoenix.cpp",
+ MAME_DIR .. "src/mame/audio/phoenix.cpp",
+ MAME_DIR .. "src/mame/video/phoenix.cpp",
+ MAME_DIR .. "src/mame/audio/pleiads.cpp",
+}
+
+createHBMAMEProjects(_target, _subtarget, "psikyo")
+files {
+ MAME_DIR .. "src/hbmame/drivers/psikyosh.cpp",
+ MAME_DIR .. "src/mame/video/psikyosh.cpp",
+}
+
+createHBMAMEProjects(_target, _subtarget, "sega")
+files {
+ MAME_DIR .. "src/mame/machine/megadriv.cpp",
+ MAME_DIR .. "src/mame/drivers/megaplay.cpp",
+ MAME_DIR .. "src/mame/drivers/megatech.cpp",
+ MAME_DIR .. "src/hbmame/drivers/segac2.cpp",
+ MAME_DIR .. "src/mame/drivers/segae.cpp",
+ MAME_DIR .. "src/hbmame/drivers/segag80r.cpp",
+ MAME_DIR .. "src/mame/machine/segag80.cpp",
+ MAME_DIR .. "src/mame/audio/segag80r.cpp",
+ MAME_DIR .. "src/mame/video/segag80r.cpp",
+ MAME_DIR .. "src/hbmame/drivers/segaorun.cpp",
+ MAME_DIR .. "src/mame/video/segaorun.cpp",
+ MAME_DIR .. "src/hbmame/drivers/system1.cpp",
+ MAME_DIR .. "src/mame/video/system1.cpp",
+ MAME_DIR .. "src/hbmame/drivers/system16.cpp",
+ MAME_DIR .. "src/mame/video/system16.cpp",
+ MAME_DIR .. "src/mame/machine/315_5296.cpp",
+ MAME_DIR .. "src/mame/machine/fd1089.cpp",
+ MAME_DIR .. "src/mame/machine/fd1094.cpp",
+ MAME_DIR .. "src/mame/machine/mc8123.cpp",
+ MAME_DIR .. "src/mame/machine/segaic16.cpp",
+ MAME_DIR .. "src/mame/machine/segacrpt_device.cpp",
+ MAME_DIR .. "src/mame/machine/segacrpt_device.h",
+ MAME_DIR .. "src/mame/machine/segacrp2_device.cpp",
+ MAME_DIR .. "src/mame/machine/segacrp2_device.h",
+ MAME_DIR .. "src/mame/audio/segasnd.cpp",
+ MAME_DIR .. "src/mame/video/segaic16.cpp",
+ MAME_DIR .. "src/mame/video/segaic16_road.cpp",
+ MAME_DIR .. "src/mame/video/sega16sp.cpp",
+ MAME_DIR .. "src/hbmame/drivers/segas16b.cpp",
+ MAME_DIR .. "src/mame/video/segas16b.cpp",
+ MAME_DIR .. "src/mame/machine/m2comm.cpp", -- from here, for model2
+ MAME_DIR .. "src/mame/machine/m2comm.h",
+ MAME_DIR .. "src/mame/audio/dsbz80.cpp",
+ MAME_DIR .. "src/mame/audio/dsbz80.h",
+ MAME_DIR .. "src/hbmame/drivers/model2.cpp",
+ MAME_DIR .. "src/mame/includes/model2.h",
+ MAME_DIR .. "src/mame/video/model2rd.hxx",
+ MAME_DIR .. "src/mame/video/model2.cpp",
+ MAME_DIR .. "src/mame/audio/segam1audio.cpp",
+ MAME_DIR .. "src/mame/audio/segam1audio.h",
+ MAME_DIR .. "src/mame/video/segaic24.cpp",
+ MAME_DIR .. "src/mame/video/segaic24.h",
+ MAME_DIR .. "src/mame/machine/315-5881_crypt.cpp",
+ MAME_DIR .. "src/mame/machine/315-5881_crypt.h",
+ MAME_DIR .. "src/mame/machine/315-5838_317-0229_comp.cpp",
+ MAME_DIR .. "src/mame/machine/315-5838_317-0229_comp.h",
+}
+
+createHBMAMEProjects(_target, _subtarget, "seta")
+files {
+ MAME_DIR .. "src/mame/machine/st0016.cpp",
+ MAME_DIR .. "src/hbmame/drivers/simple_st0016.cpp",
+}
+
+createHBMAMEProjects(_target, _subtarget, "snk")
+files {
+ MAME_DIR .. "src/hbmame/drivers/snk6502.cpp",
+ MAME_DIR .. "src/mame/audio/snk6502.cpp",
+ MAME_DIR .. "src/mame/video/snk6502.cpp",
+}
+
+createHBMAMEProjects(_target, _subtarget, "taito")
+files {
+ MAME_DIR .. "src/hbmame/drivers/arkanoid.cpp",
+ MAME_DIR .. "src/mame/machine/arkanoid.cpp",
+ MAME_DIR .. "src/mame/video/arkanoid.cpp",
+ MAME_DIR .. "src/hbmame/drivers/asuka.cpp",
+ MAME_DIR .. "src/mame/machine/bonzeadv.cpp",
+ MAME_DIR .. "src/mame/video/asuka.cpp",
+ MAME_DIR .. "src/hbmame/drivers/bublbobl.cpp",
+ MAME_DIR .. "src/mame/machine/bublbobl.cpp",
+ MAME_DIR .. "src/mame/video/bublbobl.cpp",
+ MAME_DIR .. "src/hbmame/drivers/rastan.cpp",
+ MAME_DIR .. "src/mame/video/rastan.cpp",
+ MAME_DIR .. "src/hbmame/drivers/retofinv.cpp",
+ MAME_DIR .. "src/mame/video/retofinv.cpp",
+ MAME_DIR .. "src/hbmame/drivers/taito_b.cpp",
+ MAME_DIR .. "src/mame/video/taito_b.cpp",
+ MAME_DIR .. "src/hbmame/drivers/taito_f2.cpp",
+ MAME_DIR .. "src/mame/video/taito_f2.cpp",
+ MAME_DIR .. "src/hbmame/drivers/taito_f3.cpp",
+ MAME_DIR .. "src/mame/video/taito_f3.cpp",
+ MAME_DIR .. "src/mame/machine/cchip.cpp",
+ MAME_DIR .. "src/hbmame/drivers/volfied.cpp",
+ MAME_DIR .. "src/mame/machine/volfied.cpp",
+ MAME_DIR .. "src/mame/video/volfied.cpp",
+ MAME_DIR .. "src/mame/audio/taitosnd.cpp",
+ MAME_DIR .. "src/mame/audio/taito_en.cpp",
+ MAME_DIR .. "src/mame/machine/taitoio.cpp",
+ MAME_DIR .. "src/mame/video/taito_helper.cpp",
+ MAME_DIR .. "src/mame/video/pc080sn.cpp",
+ MAME_DIR .. "src/mame/video/pc090oj.cpp",
+ MAME_DIR .. "src/mame/video/tc0100scn.cpp",
+ MAME_DIR .. "src/mame/video/tc0280grd.cpp",
+ MAME_DIR .. "src/mame/video/tc0360pri.cpp",
+ MAME_DIR .. "src/mame/video/tc0480scp.cpp",
+ MAME_DIR .. "src/mame/video/tc0110pcr.cpp",
+ MAME_DIR .. "src/mame/video/tc0180vcu.cpp",
+ MAME_DIR .. "src/hbmame/drivers/taito_l.cpp",
+ MAME_DIR .. "src/mame/video/taito_l.cpp",
+ MAME_DIR .. "src/mame/machine/taito68705interface.cpp",
+ MAME_DIR .. "src/mame/machine/taito68705interface.h",
+}
+
+createHBMAMEProjects(_target, _subtarget, "tehkan")
+files {
+ MAME_DIR .. "src/mame/video/tecmo_spr.cpp",
+ MAME_DIR .. "src/mame/video/tecmo_mix.cpp",
+ MAME_DIR .. "src/mame/video/tecmo_mix.h",
+ MAME_DIR .. "src/hbmame/drivers/bombjack.cpp",
+ MAME_DIR .. "src/mame/video/bombjack.cpp",
+ MAME_DIR .. "src/hbmame/drivers/tecmo.cpp",
+ MAME_DIR .. "src/mame/video/tecmo.cpp",
+ MAME_DIR .. "src/hbmame/drivers/tecmo16.cpp",
+ MAME_DIR .. "src/mame/includes/tecmo16.h",
+ MAME_DIR .. "src/mame/video/tecmo16.cpp",
+ MAME_DIR .. "src/hbmame/drivers/tehkanwc.cpp",
+ MAME_DIR .. "src/mame/video/tehkanwc.cpp",
+ MAME_DIR .. "src/mame/drivers/wc90.cpp",
+ MAME_DIR .. "src/mame/includes/wc90.h",
+ MAME_DIR .. "src/mame/video/wc90.cpp",
+}
+
+createHBMAMEProjects(_target, _subtarget, "toaplan")
+files {
+ MAME_DIR .. "src/mame/drivers/toaplan1.cpp",
+ MAME_DIR .. "src/mame/machine/toaplan1.cpp",
+ MAME_DIR .. "src/mame/video/toaplan1.cpp",
+ MAME_DIR .. "src/hbmame/drivers/toaplan2.cpp",
+ MAME_DIR .. "src/mame/video/toaplan2.cpp",
+ MAME_DIR .. "src/mame/video/gp9001.cpp",
+ MAME_DIR .. "src/hbmame/drivers/twincobr.cpp",
+ MAME_DIR .. "src/mame/machine/twincobr.cpp",
+ MAME_DIR .. "src/mame/video/twincobr.cpp",
+ MAME_DIR .. "src/mame/drivers/wardner.cpp",
+ MAME_DIR .. "src/mame/video/toaplan_scu.cpp",
+ MAME_DIR .. "src/mame/machine/nmk112.cpp",
+}
+
+createHBMAMEProjects(_target, _subtarget, "univers")
+files {
+ MAME_DIR .. "src/hbmame/drivers/docastle.cpp",
+ MAME_DIR .. "src/mame/machine/docastle.cpp",
+ MAME_DIR .. "src/mame/video/docastle.cpp",
+ MAME_DIR .. "src/hbmame/drivers/mrdo.cpp",
+ MAME_DIR .. "src/mame/video/mrdo.cpp",
+}
+
+createHBMAMEProjects(_target, _subtarget, "valadon")
+files {
+ MAME_DIR .. "src/hbmame/drivers/bagman.cpp",
+ MAME_DIR .. "src/mame/machine/bagman.cpp",
+ MAME_DIR .. "src/mame/video/bagman.cpp",
+}
+
+createHBMAMEProjects(_target, _subtarget, "misc")
+files {
+ MAME_DIR .. "src/hbmame/drivers/dotrikun.cpp",
+ MAME_DIR .. "src/hbmame/drivers/ir.cpp",
+ MAME_DIR .. "src/hbmame/drivers/schaser.cpp",
+ MAME_DIR .. "src/hbmame/drivers/spacmiss.cpp",
+ MAME_DIR .. "src/hbmame/drivers/monaco.cpp",
+-- MAME_DIR .. "src/hbmame/drivers/atari_s1.cpp",
+-- MAME_DIR .. "src/mame/machine/genpin.cpp",
+ MAME_DIR .. "src/hbmame/drivers/flower.cpp",
+ MAME_DIR .. "src/hbmame/drivers/marinedt.cpp",
+ MAME_DIR .. "src/hbmame/drivers/kyugo.cpp",
+ MAME_DIR .. "src/mame/video/kyugo.cpp",
+ MAME_DIR .. "src/mame/drivers/skimaxx.cpp",
+ MAME_DIR .. "src/hbmame/drivers/timelimit.cpp",
+ MAME_DIR .. "src/mame/video/timelimt.cpp",
+}
+
+end
+
diff --git a/docs/release/scripts/target/ldplayer/ldplayer.lua b/docs/release/scripts/target/ldplayer/ldplayer.lua
new file mode 100644
index 00000000000..4348f3bd318
--- /dev/null
+++ b/docs/release/scripts/target/ldplayer/ldplayer.lua
@@ -0,0 +1,88 @@
+-- license:BSD-3-Clause
+-- copyright-holders:MAMEdev Team
+
+---------------------------------------------------------------------------
+--
+-- ldplayer.lua
+--
+-- Small makefile to build a standalone laserdisc player
+--
+---------------------------------------------------------------------------
+
+--------------------------------------------------
+-- specify required CPU cores (none)
+--------------------------------------------------
+
+CPUS["MCS48"] = true
+CPUS["Z80"] = true
+
+
+
+--------------------------------------------------
+-- specify required sound cores
+--------------------------------------------------
+
+SOUNDS["WAVE"] = true
+
+
+--------------------------------------------------
+-- specify available video cores
+--------------------------------------------------
+
+--------------------------------------------------
+-- specify available machine cores
+--------------------------------------------------
+
+MACHINES["LDV1000"] = true
+MACHINES["LDPR8210"] = true
+
+--------------------------------------------------
+-- specify available bus cores
+--
+-- MIDI is here as dummy bus to allow libbus.a to
+-- be created on OSX.
+--------------------------------------------------
+
+BUSES["MIDI"] = true
+
+--------------------------------------------------
+-- this is the list of driver libraries that
+-- comprise MAME plus mamedriv.o which contains
+-- the list of drivers
+--------------------------------------------------
+
+function createProjects_ldplayer_ldplayer(_target, _subtarget)
+ project ("drvldplayer")
+ targetsubdir(_target .."_" .. _subtarget)
+ kind (LIBTYPE)
+ uuid (os.uuid("drvldplayer"))
+
+ includedirs {
+ MAME_DIR .. "src/osd",
+ MAME_DIR .. "src/emu",
+ MAME_DIR .. "src/devices",
+ MAME_DIR .. "src/mame",
+ MAME_DIR .. "src/lib",
+ MAME_DIR .. "src/lib/util",
+ MAME_DIR .. "3rdparty",
+ GEN_DIR .. "mame/layout",
+ }
+
+ files{
+ MAME_DIR .. "src/emu/drivers/emudummy.cpp",
+ }
+
+ dependency {
+ { MAME_DIR .. "src/emu/drivers/emudummy.cpp", GEN_DIR .. "ldplayer/layout/pr8210.lh" },
+ }
+
+ custombuildtask {
+ layoutbuildtask("ldplayer/layout", "pr8210"),
+ }
+end
+
+function linkProjects_ldplayer_ldplayer(_target, _subtarget)
+ links {
+ "drvldplayer",
+ }
+end
diff --git a/docs/release/scripts/target/mame/arcade.lua b/docs/release/scripts/target/mame/arcade.lua
new file mode 100644
index 00000000000..a4f7a27b332
--- /dev/null
+++ b/docs/release/scripts/target/mame/arcade.lua
@@ -0,0 +1,4728 @@
+-- license:BSD-3-Clause
+-- copyright-holders:MAMEdev Team
+
+---------------------------------------------------------------------------
+--
+-- mame.lua
+--
+-- MAME target makefile
+--
+---------------------------------------------------------------------------
+
+--------------------------------------------------
+-- specify available CPU cores
+---------------------------------------------------
+
+CPUS["Z80"] = true
+CPUS["Z180"] = true
+CPUS["I8085"] = true
+CPUS["I8089"] = true
+CPUS["M6502"] = true
+CPUS["H6280"] = true
+CPUS["I86"] = true
+CPUS["I386"] = true
+CPUS["NEC"] = true
+CPUS["V30MZ"] = true
+CPUS["V60"] = true
+CPUS["MCS48"] = true
+CPUS["MCS51"] = true
+CPUS["MCS96"] = true
+CPUS["M6800"] = true
+CPUS["M6805"] = true
+CPUS["HD6309"] = true
+CPUS["M6809"] = true
+CPUS["KONAMI"] = true
+CPUS["M680X0"] = true
+CPUS["T11"] = true
+CPUS["S2650"] = true
+CPUS["TMS340X0"] = true
+CPUS["TMS9900"] = true
+CPUS["TMS9995"] = true
+CPUS["TMS9900L"] = true
+CPUS["Z8000"] = true
+CPUS["Z8001"] = true
+CPUS["TMS32010"] = true
+CPUS["TMS32025"] = true
+CPUS["TMS32031"] = true
+CPUS["TMS32051"] = true
+CPUS["TMS32082"] = true
+CPUS["TMS57002"] = true
+CPUS["CCPU"] = true
+CPUS["ADSP21XX"] = true
+CPUS["ASAP"] = true
+CPUS["AM29000"] = true
+CPUS["UPD7810"] = true
+CPUS["ARM"] = true
+CPUS["ARM7"] = true
+CPUS["JAGUAR"] = true
+CPUS["CUBEQCPU"] = true
+CPUS["ESRIP"] = true
+CPUS["MIPS"] = true
+CPUS["R3000"] = true
+CPUS["PSX"] = true
+CPUS["SH2"] = true
+CPUS["SH4"] = true
+CPUS["DSP16A"] = true
+CPUS["DSP32C"] = true
+CPUS["PIC16C5X"] = true
+CPUS["PIC16C62X"] = true
+CPUS["G65816"] = true
+CPUS["SPC700"] = true
+CPUS["E1"] = true
+CPUS["I860"] = true
+CPUS["I960"] = true
+CPUS["H8"] = true
+CPUS["V810"] = true
+CPUS["M37710"] = true
+CPUS["POWERPC"] = true
+CPUS["SE3208"] = true
+CPUS["MC68HC11"] = true
+CPUS["ADSP21062"] = true
+CPUS["DSP56156"] = true
+CPUS["RSP"] = true
+CPUS["ALPHA8201"] = true
+CPUS["COP400"] = true
+CPUS["TLCS90"] = true
+CPUS["TLCS870"] = true
+CPUS["TLCS900"] = true
+CPUS["MB88XX"] = true
+CPUS["MB86233"] = true
+CPUS["MB86235"] = true
+CPUS["SSP1601"] = true
+CPUS["APEXC"] = true
+CPUS["CP1610"] = true
+CPUS["F8"] = true
+CPUS["LH5801"] = true
+CPUS["PDP1"] = true
+CPUS["SATURN"] = true
+CPUS["SC61860"] = true
+CPUS["LR35902"] = true
+CPUS["TMS7000"] = true
+CPUS["SM8500"] = true
+CPUS["MINX"] = true
+CPUS["SSEM"] = true
+CPUS["AVR8"] = true
+--CPUS["TMS1000"] = true
+CPUS["I4004"] = true
+CPUS["SUPERFX"] = true
+CPUS["Z8"] = true
+CPUS["I8008"] = true
+CPUS["SCMP"] = true
+CPUS["MN10200"] = true
+CPUS["COSMAC"] = true
+CPUS["UNSP"] = true
+CPUS["HCD62121"] = true
+CPUS["PPS4"] = true
+CPUS["UPD7725"] = true
+CPUS["HD61700"] = true
+CPUS["LC8670"] = true
+CPUS["SCORE"] = true
+CPUS["ES5510"] = true
+CPUS["SCUDSP"] = true
+CPUS["IE15"] = true
+CPUS["8X300"] = true
+CPUS["ALTO2"] = true
+--CPUS["W65816"] = true
+CPUS["ARC"] = true
+CPUS["ARCOMPACT"] = true
+--CPUS["AMIS2000"] = true
+--CPUS["UCOM4"] = true
+CPUS["HMCS40"] = true
+--CPUS["E0C6200"] = true
+--CPUS["MELPS4"] = true
+--CPUS["HPHYBRID"] = true
+--CPUS["SM510"] = true
+
+--------------------------------------------------
+-- specify available sound cores
+--------------------------------------------------
+
+SOUNDS["SAMPLES"] = true
+SOUNDS["DAC"] = true
+SOUNDS["DMADAC"] = true
+SOUNDS["SPEAKER"] = true
+SOUNDS["BEEP"] = true
+SOUNDS["DISCRETE"] = true
+SOUNDS["AY8910"] = true
+SOUNDS["YM2151"] = true
+SOUNDS["YM2203"] = true
+SOUNDS["YM2413"] = true
+SOUNDS["YM2608"] = true
+SOUNDS["YM2610"] = true
+SOUNDS["YM2610B"] = true
+SOUNDS["YM2612"] = true
+SOUNDS["YM3438"] = true
+SOUNDS["YM3812"] = true
+SOUNDS["YM3526"] = true
+SOUNDS["Y8950"] = true
+SOUNDS["YMF262"] = true
+SOUNDS["YMF271"] = true
+SOUNDS["YMF278B"] = true
+SOUNDS["YMZ280B"] = true
+SOUNDS["SN76477"] = true
+SOUNDS["SN76496"] = true
+SOUNDS["POKEY"] = true
+SOUNDS["TIA"] = true
+SOUNDS["NES_APU"] = true
+SOUNDS["PAULA_8364"] = true
+SOUNDS["ASTROCADE"] = true
+SOUNDS["NAMCO"] = true
+SOUNDS["NAMCO_15XX"] = true
+SOUNDS["NAMCO_CUS30"] = true
+SOUNDS["NAMCO_52XX"] = true
+SOUNDS["NAMCO_63701X"] = true
+SOUNDS["T6W28"] = true
+SOUNDS["SNKWAVE"] = true
+SOUNDS["C140"] = true
+SOUNDS["C352"] = true
+SOUNDS["TMS36XX"] = true
+SOUNDS["TMS3615"] = true
+SOUNDS["TMS5110"] = true
+SOUNDS["TMS5220"] = true
+SOUNDS["VLM5030"] = true
+SOUNDS["ADPCM"] = true
+SOUNDS["MSM5205"] = true
+SOUNDS["MSM5232"] = true
+SOUNDS["OKIM6258"] = true
+SOUNDS["OKIM6295"] = true
+SOUNDS["OKIM6376"] = true
+SOUNDS["OKIM9810"] = true
+--SOUNDS["UPD7752"] = true
+SOUNDS["UPD7759"] = true
+SOUNDS["HC55516"] = true
+SOUNDS["TC8830F"] = true
+SOUNDS["K005289"] = true
+SOUNDS["K007232"] = true
+SOUNDS["K051649"] = true
+SOUNDS["K053260"] = true
+SOUNDS["K054539"] = true
+SOUNDS["K056800"] = true
+SOUNDS["SEGAPCM"] = true
+SOUNDS["MULTIPCM"] = true
+SOUNDS["SCSP"] = true
+SOUNDS["AICA"] = true
+SOUNDS["RF5C68"] = true
+SOUNDS["RF5C400"] = true
+SOUNDS["CEM3394"] = true
+SOUNDS["QSOUND"] = true
+SOUNDS["QS1000"] = true
+SOUNDS["SAA1099"] = true
+SOUNDS["IREMGA20"] = true
+SOUNDS["ES5503"] = true
+SOUNDS["ES5505"] = true
+SOUNDS["ES5506"] = true
+SOUNDS["BSMT2000"] = true
+SOUNDS["GAELCO_CG1V"] = true
+SOUNDS["GAELCO_GAE1"] = true
+SOUNDS["C6280"] = true
+SOUNDS["SP0250"] = true
+SOUNDS["SPU"] = true
+SOUNDS["CDDA"] = true
+SOUNDS["ICS2115"] = true
+SOUNDS["I5000_SND"] = true
+SOUNDS["ST0016"] = true
+SOUNDS["NILE"] = true
+SOUNDS["X1_010"] = true
+SOUNDS["VRENDER0"] = true
+SOUNDS["VOTRAX"] = true
+SOUNDS["ES8712"] = true
+SOUNDS["CDP1869"] = true
+SOUNDS["S14001A"] = true
+SOUNDS["WAVE"] = true
+SOUNDS["SID6581"] = true
+SOUNDS["SID8580"] = true
+SOUNDS["SP0256"] = true
+SOUNDS["DIGITALKER"] = true
+SOUNDS["CDP1863"] = true
+SOUNDS["CDP1864"] = true
+SOUNDS["ZSG2"] = true
+SOUNDS["MOS656X"] = true
+SOUNDS["ASC"] = true
+SOUNDS["MAS3507D"] = true
+SOUNDS["SOCRATES"] = true
+SOUNDS["TMC0285"] = true
+SOUNDS["TMS5200"] = true
+SOUNDS["CD2801"] = true
+SOUNDS["CD2802"] = true
+SOUNDS["M58817"] = true
+SOUNDS["TMC0281"] = true
+SOUNDS["TMS5100"] = true
+SOUNDS["TMS5110A"] = true
+SOUNDS["LMC1992"] = true
+SOUNDS["AWACS"] = true
+SOUNDS["YMZ770"] = true
+SOUNDS["MPEG_AUDIO"] = true
+SOUNDS["T6721A"] = true
+SOUNDS["MOS7360"] = true
+--SOUNDS["ESQPUMP"] = true
+--SOUNDS["VRC6"] = true
+SOUNDS["SB0400"] = true
+SOUNDS["AC97"] = true
+SOUNDS["ES1373"] = true
+SOUNDS["L7A1045"] = true
+SOUNDS["AD1848"] = true
+--SOUNDS["UPD1771"] = true
+SOUNDS["VOLT_REG"] = true
+SOUNDS["MEA8000"] = true
+SOUNDS["DAC76"] = true
+SOUNDS["MM5837"] = true
+--SOUNDS["DAVE"] = true
+
+--------------------------------------------------
+-- specify available video cores
+--------------------------------------------------
+
+VIDEOS["SEGA315_5124"] = true
+VIDEOS["SEGA315_5313"] = true
+VIDEOS["BUFSPRITE"] = true
+--VIDEOS["CDP1861"] = true
+--VIDEOS["CDP1862"] = true
+VIDEOS["CESBLIT"] = true
+--VIDEOS["CRT9007"] = true
+--VIDEOS["CRT9021"] = true
+--VIDEOS["CRT9212"] = true
+VIDEOS["CRTC_EGA"] = true
+--VIDEOS["DL1416"] = true
+VIDEOS["DM9368"] = true
+--VIDEOS["EF9340_1"] = true
+--VIDEOS["EF9345"] = true
+--VIDEOS["EF9364"] = true
+--VIDEOS["EF9365"] = true
+VIDEOS["EF9369"] = true
+--VIDEOS["GF4500"] = true
+VIDEOS["GF7600GS"] = true
+VIDEOS["EPIC12"] = true
+VIDEOS["FIXFREQ"] = true
+--VIDEOS["HD44102"] = true
+--VIDEOS["HD44352"] = true
+VIDEOS["HD44780"] = true
+VIDEOS["HD61830"] = true
+VIDEOS["HD63484"] = true
+--VIDEOS["HD66421"] = true
+--VIDEOS["HLCD0515"] = true
+--VIDEOS["HLCD0538"] = true
+VIDEOS["HUC6202"] = true
+VIDEOS["HUC6260"] = true
+--VIDEOS["HUC6261"] = true
+VIDEOS["HUC6270"] = true
+--VIDEOS["HUC6272"] = true
+--VIDEOS["I8244"] = true
+VIDEOS["I8275"] = true
+VIDEOS["JANGOU_BLITTER"] = true
+VIDEOS["M50458"] = true
+VIDEOS["MB90082"] = true
+VIDEOS["MB_VCU"] = true
+VIDEOS["MC6845"] = true
+--VIDEOS["MC6847"] = true
+--VIDEOS["MSM6222B"] = true
+--VIDEOS["MSM6255"] = true
+--VIDEOS["MOS6566"] = true
+VIDEOS["PC_VGA"] = true
+VIDEOS["POLY"] = true
+VIDEOS["PSX"] = true
+VIDEOS["RAMDAC"] = true
+--VIDEOS["S2636"] = true
+VIDEOS["SAA5050"] = true
+VIDEOS["SCN2674"] = true
+--VIDEOS["SED1200"] = true
+--VIDEOS["SED1330"] = true
+--VIDEOS["SED1520"] = true
+VIDEOS["SNES_PPU"] = true
+VIDEOS["STVVDP"] = true
+--VIDEOS["T6A04"] = true
+VIDEOS["TLC34076"] = true
+VIDEOS["TMS34061"] = true
+--VIDEOS["TMS3556"] = true
+VIDEOS["TMS9927"] = true
+VIDEOS["TMS9928A"] = true
+--VIDEOS["UPD3301"] = true
+VIDEOS["UPD7220"] = true
+--VIDEOS["UPD7227"] = true
+VIDEOS["V9938"] = true
+--VIDEOS["VIC4567"] = true
+VIDEOS["VOODOO"] = true
+VIDEOS["VOODOO_PCI"] = true
+VIDEOS["ZEUS2"] = true
+VIDEOS["PPU2C0X"] = true
+
+--------------------------------------------------
+-- specify available machine cores
+--------------------------------------------------
+
+MACHINES["AKIKO"] = true
+MACHINES["NCR53C7XX"] = true
+MACHINES["LSI53C810"] = true
+MACHINES["6522VIA"] = true
+MACHINES["TPI6525"] = true
+MACHINES["RIOT6532"] = true
+MACHINES["6821PIA"] = true
+MACHINES["6840PTM"] = true
+--MACHINES["MPCC68561"] = true
+MACHINES["ACIA6850"] = true
+MACHINES["68681"] = true
+MACHINES["7200FIFO"] = true
+--MACHINES["8530SCC"] = true
+--MACHINES["TTL7400"] = true
+--MACHINES["TTL7404"] = true
+MACHINES["TTL74123"] = true
+MACHINES["TTL74145"] = true
+MACHINES["TTL74148"] = true
+MACHINES["TTL74153"] = true
+MACHINES["TTL74157"] = true
+--MACHINES["TTL74161"] = true
+--MACHINES["TTL74164"] = true
+--MACHINES["TTL74175"] = true
+MACHINES["TTL74181"] = true
+MACHINES["TTL7474"] = true
+MACHINES["KBDC8042"] = true
+MACHINES["I8257"] = true
+MACHINES["AAKARTDEV"] = true
+--MACHINES["ACIA6850"] = true
+MACHINES["ADC0808"] = true
+MACHINES["ADC083X"] = true
+MACHINES["ADC1038"] = true
+MACHINES["ADC1213X"] = true
+MACHINES["AICARTC"] = true
+--MACHINES["AM2847"] = true
+MACHINES["AM53CF96"] = true
+MACHINES["AM9517A"] = true
+MACHINES["AMIGAFDC"] = true
+MACHINES["AT_KEYBC"] = true
+MACHINES["AT28C16"] = true
+MACHINES["AT29X"] = true
+MACHINES["AT45DBXX"] = true
+MACHINES["ATAFLASH"] = true
+MACHINES["AY31015"] = true
+MACHINES["BANKDEV"] = true
+--MACHINES["BIM68153"] = true
+MACHINES["CDP1852"] = true
+MACHINES["CDP1871"] = true
+MACHINES["CMOS40105"] = true
+MACHINES["CDU76S"] = true
+MACHINES["COM8116"] = true
+MACHINES["CR589"] = true
+--MACHINES["CS4031"] = true
+--MACHINES["CS8221"] = true
+MACHINES["CXD1095"] = true
+--MACHINES["DM9334"] = true
+MACHINES["DP8390"] = true
+MACHINES["DS1204"] = true
+MACHINES["DS1205"] = true
+MACHINES["DS1302"] = true
+--MACHINES["DS1315"] = true
+--MACHINES["DS1386"] = true
+MACHINES["DS2401"] = true
+MACHINES["DS2404"] = true
+MACHINES["DS75160A"] = true
+MACHINES["DS75161A"] = true
+MACHINES["E0516"] = true
+MACHINES["E05A03"] = true
+MACHINES["E05A30"] = true
+MACHINES["EEPROMDEV"] = true
+MACHINES["ER2055"] = true
+MACHINES["F3853"] = true
+--MACHINES["HD63450"] = true
+--MACHINES["HD64610"] = true
+MACHINES["I2CMEM"] = true
+--MACHINES["I80130"] = true
+--MACHINES["I8089"] = true
+MACHINES["I8155"] = true
+MACHINES["I8212"] = true
+MACHINES["I8214"] = true
+MACHINES["I8243"] = true
+MACHINES["I8251"] = true
+MACHINES["I8255"] = true
+--MACHINES["I8257"] = true
+--MACHINES["I8271"] = true
+MACHINES["I8279"] = true
+MACHINES["I8355"] = true
+MACHINES["IDE"] = true
+MACHINES["IE15"] = true
+MACHINES["IM6402"] = true
+MACHINES["INS8154"] = true
+MACHINES["INS8250"] = true
+MACHINES["INTELFLASH"] = true
+MACHINES["JVS"] = true
+MACHINES["K033906"] = true
+MACHINES["K053252"] = true
+MACHINES["K056230"] = true
+--MACHINES["KB3600"] = true
+--MACHINES["KBDC8042"] = true
+--MACHINES["KR2376"] = true
+MACHINES["LATCH8"] = true
+MACHINES["LC89510"] = true
+MACHINES["LDPR8210"] = true
+MACHINES["LDSTUB"] = true
+MACHINES["LDV1000"] = true
+MACHINES["LDP1000"] = true
+MACHINES["LDP1450"] = true
+MACHINES["LDVP931"] = true
+--MACHINES["LH5810"] = true
+MACHINES["LINFLASH"] = true
+MACHINES["LPCI"] = true
+--MACHINES["LSI53C810"] = true
+--MACHINES["M68307"] = true
+--MACHINES["M68340"] = true
+MACHINES["M6M80011AP"] = true
+MACHINES["MB14241"] = true
+MACHINES["MB3773"] = true
+MACHINES["MB8421"] = true
+MACHINES["MB87078"] = true
+--MACHINES["MB8795"] = true
+--MACHINES["MB89352"] = true
+MACHINES["MB89371"] = true
+MACHINES["MC146818"] = true
+MACHINES["MC2661"] = true
+MACHINES["MC6843"] = true
+MACHINES["MC6846"] = true
+MACHINES["MC6852"] = true
+MACHINES["MC6854"] = true
+--MACHINES["MC68328"] = true
+MACHINES["MC68901"] = true
+MACHINES["MCCS1850"] = true
+MACHINES["M68307"] = true
+MACHINES["M68340"] = true
+MACHINES["MCF5206E"] = true
+MACHINES["MICROTOUCH"] = true
+--MACHINES["MIOT6530"] = true
+--MACHINES["MM58167"] = true
+MACHINES["MM58274C"] = true
+MACHINES["MM74C922"] = true
+MACHINES["MOS6526"] = true
+MACHINES["MOS6529"] = true
+MACHINES["MIOT6530"] = true
+MACHINES["MOS6551"] = true
+--MACHINES["MOS6702"] = true
+--MACHINES["MOS8706"] = true
+--MACHINES["MOS8722"] = true
+--MACHINES["MOS8726"] = true
+MACHINES["MPU401"] = true
+MACHINES["MSM5832"] = true
+MACHINES["MSM58321"] = true
+MACHINES["MSM6242"] = true
+MACHINES["MSM6253"] = true
+--MACHINES["NCR5380"] = true
+--MACHINES["NCR5380N"] = true
+--MACHINES["NCR5390"] = true
+MACHINES["NCR539x"] = true
+MACHINES["NETLIST"] = true
+--MACHINES["NCR53C7XX"] = true
+MACHINES["NMC9306"] = true
+--MACHINES["NSC810"] = true
+MACHINES["NSCSI"] = true
+MACHINES["PC_FDC"] = true
+MACHINES["PC_LPT"] = true
+--MACHINES["PCCARD"] = true
+MACHINES["PCF8593"] = true
+MACHINES["PCI"] = true
+MACHINES["PCKEYBRD"] = true
+MACHINES["PIC8259"] = true
+--MACHINES["PIT68230"] = true
+MACHINES["PIT8253"] = true
+MACHINES["PLA"] = true
+--MACHINES["PROFILE"] = true
+--MACHINES["PROM82S129"] = true
+MACHINES["R10696"] = true
+MACHINES["R10788"] = true
+MACHINES["RA17XX"] = true
+--MACHINES["R64H156"] = true
+MACHINES["RF5C296"] = true
+--MACHINES["RIOT6532"] = true
+MACHINES["ROC10937"] = true
+MACHINES["RP5C01"] = true
+MACHINES["RP5C15"] = true
+MACHINES["RP5H01"] = true
+MACHINES["RTC4543"] = true
+MACHINES["RTC65271"] = true
+MACHINES["RTC9701"] = true
+MACHINES["S2636"] = true
+MACHINES["S3520CF"] = true
+MACHINES["S3C2400"] = true
+MACHINES["S3C2410"] = true
+MACHINES["S3C2440"] = true
+--MACHINES["S3C44B0"] = true
+MACHINES["SATURN"] = true
+MACHINES["SCSI"] = true
+MACHINES["SCUDSP"] = true
+--MACHINES["SECFLASH"] = true
+MACHINES["SERFLASH"] = true
+MACHINES["SMC91C9X"] = true
+MACHINES["SMPC"] = true
+MACHINES["STVCD"] = true
+MACHINES["TC0091LVC"] = true
+MACHINES["TIMEKPR"] = true
+MACHINES["TMP68301"] = true
+--MACHINES["TMS5501"] = true
+MACHINES["TMS6100"] = true
+MACHINES["TMS9901"] = true
+MACHINES["TMS9902"] = true
+--MACHINES["TPI6525"] = true
+--MACHINES["TTL74123"] = true
+--MACHINES["TTL74145"] = true
+--MACHINES["TTL74148"] = true
+--MACHINES["TTL74153"] = true
+--MACHINES["TTL74181"] = true
+--MACHINES["TTL7474"] = true
+MACHINES["UPD1990A"] = true
+MACHINES["UPD4992"] = true
+MACHINES["UPD4701"] = true
+MACHINES["UPD7002"] = true
+MACHINES["UPD71071"] = true
+MACHINES["UPD765"] = true
+MACHINES["FDC_PLL"] = true
+MACHINES["V3021"] = true
+MACHINES["WD_FDC"] = true
+MACHINES["WD11C00_17"] = true
+MACHINES["WD2010"] = true
+MACHINES["WD33C93"] = true
+MACHINES["X2212"] = true
+MACHINES["X76F041"] = true
+MACHINES["X76F100"] = true
+MACHINES["Z80CTC"] = true
+MACHINES["Z80DART"] = true
+MACHINES["Z80SIO"] = true
+MACHINES["Z80SCC"] = true
+MACHINES["Z80DMA"] = true
+MACHINES["Z80PIO"] = true
+MACHINES["Z80STI"] = true
+MACHINES["Z8536"] = true
+MACHINES["SECFLASH"] = true
+MACHINES["PCCARD"] = true
+MACHINES["FDC37C665GT"] = true
+--MACHINES["SMC92X4"] = true
+--MACHINES["TI99_HD"] = true
+--MACHINES["STRATA"] = true
+MACHINES["STEPPERS"] = true
+--MACHINES["CORVUSHD"] = true
+--MACHINES["WOZFDC"] = true
+--MACHINES["DIABLO_HD"] = true
+MACHINES["PCI9050"] = true
+MACHINES["TMS1024"] = true
+MACHINES["GENPC"] = true
+MACHINES["GEN_LATCH"] = true
+MACHINES["WATCHDOG"] = true
+MACHINES["INPUT_MERGER"] = true
+MACHINES["K054321"] = true
+
+--------------------------------------------------
+-- specify available bus cores
+--------------------------------------------------
+
+--BUSES["A1BUS"] = true
+--BUSES["A2BUS"] = true
+--BUSES["A7800"] = true
+--BUSES["A800"] = true
+--BUSES["ABCBUS"] = true
+--BUSES["ABCKB"] = true
+--BUSES["ADAM"] = true
+--BUSES["ADAMNET"] = true
+--BUSES["APF"] = true
+--BUSES["ARCADIA"] = true
+--BUSES["ASTROCADE"] = true
+--BUSES["BML3"] = true
+--BUSES["BW2"] = true
+--BUSES["C64"] = true
+--BUSES["CBM2"] = true
+--BUSES["CBMIEC"] = true
+BUSES["CENTRONICS"] = true
+--BUSES["CHANNELF"] = true
+--BUSES["COCO"] = true
+--BUSES["COLECO"] = true
+--BUSES["COMPUCOLOR"] = true
+--BUSES["COMX35"] = true
+--BUSES["CPC"] = true
+--BUSES["CRVISION"] = true
+--BUSES["DMV"] = true
+--BUSES["ECBBUS"] = true
+--BUSES["ECONET"] = true
+--BUSES["EP64"] = true
+--BUSES["EPSON_SIO"] = true
+--BUSES["GAMEBOY"] = true
+BUSES["GAMEGEAR"] = true
+--BUSES["GBA"] = true
+BUSES["GENERIC"] = true
+--BUSES["IEEE488"] = true
+--BUSES["IMI7000"] = true
+--BUSES["INTV"] = true
+--BUSES["IQ151"] = true
+BUSES["ISA"] = true
+--BUSES["ISBX"] = true
+--BUSES["KC"] = true
+--BUSES["LPCI"] = true
+--BUSES["MACPDS"] = true
+BUSES["MIDI"] = true
+--BUSES["MEGADRIVE"] = true
+--BUSES["MSX_SLOT"] = true
+BUSES["NEOGEO"] = true
+BUSES["NEOGEO_CTRL"] = true
+--BUSES["NES"] = true
+--BUSES["NUBUS"] = true
+--BUSES["O2"] = true
+--BUSES["ORICEXT"] = true
+--BUSES["PCE"] = true
+BUSES["PC_JOY"] = true
+BUSES["PC_KBD"] = true
+--BUSES["PET"] = true
+--BUSES["PLUS4"] = true
+--BUSES["PSX_CONTROLLER"] = true
+--BUSES["QL"] = true
+BUSES["RS232"] = true
+--BUSES["S100"] = true
+BUSES["SAT_CTRL"] = true
+--BUSES["SATURN"] = true
+BUSES["SCSI"] = true
+--BUSES["SCV"] = true
+BUSES["SEGA8"] = true
+BUSES["SG1000_EXP"] = true
+BUSES["SMS_CTRL"] = true
+BUSES["SMS_EXP"] = true
+--BUSES["SNES"] = true
+--BUSES["SPC1000"] = true
+BUSES["SUNKBD"] = true
+--BUSES["TI99PEB"] = true
+--BUSES["TVC"] = true
+--BUSES["VBOY"] = true
+--BUSES["VC4000"] = true
+--BUSES["VCS"] = true
+--BUSES["VCS_CTRL"] = true
+BUSES["VECTREX"] = true
+--BUSES["VIC10"] = true
+--BUSES["VIC20"] = true
+--BUSES["VIDBRAIN"] = true
+--BUSES["VIP"] = true
+--BUSES["VME"] = true
+--BUSES["VTECH_IOEXP"] = true
+--BUSES["VTECH_MEMEXP"] = true
+--BUSES["WANGPC"] = true
+--BUSES["WSWAN"] = true
+--BUSES["X68K"] = true
+--BUSES["Z88"] = true
+--BUSES["ZORRO"] = true
+
+
+--------------------------------------------------
+-- specify used file formats
+--------------------------------------------------
+
+FORMATS["GUAB_DSK"] = true
+FORMATS["AMI_DSK"] = true
+FORMATS["SC3000_BIT"] = true
+FORMATS["WD177X_DSK"] = true
+FORMATS["NASLITE_DSK"] = true
+FORMATS["UPD765_DSK"] = true
+FORMATS["PC_DSK"] = true
+FORMATS["BASICDSK"] = true
+
+--------------------------------------------------
+-- this is the list of driver libraries that
+-- comprise MAME plus mamedriv.o which contains
+-- the list of drivers
+--------------------------------------------------
+
+function linkProjects_mame_arcade(_target, _subtarget)
+ links {
+ "acorn",
+ "alba",
+ "alliedl",
+ "alpha",
+ "amiga",
+ "aristocr",
+ "ascii",
+ "atari",
+ "atlus",
+ "barcrest",
+ "bfm",
+ "bmc",
+ "capcom",
+ "ces",
+ "cinemat",
+ "comad",
+ "cvs",
+ "dataeast",
+ "dgrm",
+ "dooyong",
+ "dynax",
+ "edevices",
+ "efo",
+ "eolith",
+ "excelent",
+ "exidy",
+ "f32",
+ "funworld",
+ "fuuki",
+ "gaelco",
+ "gameplan",
+ "gametron",
+ "gottlieb",
+ "ibmpc",
+ "igs",
+ "igt",
+ "irem",
+ "itech",
+ "jaleco",
+ "jpm",
+ "kaneko",
+ "kiwako",
+ "konami",
+ "matic",
+ "maygay",
+ "meadows",
+ "merit",
+ "metro",
+ "midcoin",
+ "midw8080",
+ "midway",
+ "namco",
+ "nasco",
+ "neogeo",
+ "nichibut",
+ "nintendo",
+ "nix",
+ "nmk",
+ "omori",
+ "olympia",
+ "orca",
+ "pacific",
+ "pacman",
+ "pce",
+ "phoenix",
+ "playmark",
+ "promat",
+ "psikyo",
+ "ramtek",
+ "rare",
+ "sanritsu",
+ "sega",
+ "seibu",
+ "seta",
+ "sigma",
+ "snk",
+ "sony",
+ "stern",
+ "subsino",
+ "suna",
+ "sunelect",
+ "taito",
+ "tatsumi",
+ "tch",
+ "tecfri",
+ "technos",
+ "tehkan",
+ "terminal",
+ "thepit",
+ "toaplan",
+ "unico",
+ "univers",
+ "upl",
+ "valadon",
+ "venture",
+ "vsystem",
+ "wing",
+ "yunsung",
+ "zaccaria",
+ "misc",
+ "pinball",
+ "shared",
+ }
+end
+
+function createMAMEProjects(_target, _subtarget, _name)
+ project (_name)
+ targetsubdir(_target .."_" .. _subtarget)
+ kind (LIBTYPE)
+ uuid (os.uuid("drv-" .. _target .."_" .. _subtarget .. "_" .._name))
+ addprojectflags()
+ precompiledheaders()
+
+ includedirs {
+ MAME_DIR .. "src/osd",
+ MAME_DIR .. "src/emu",
+ MAME_DIR .. "src/devices",
+ MAME_DIR .. "src/mame",
+ MAME_DIR .. "src/lib",
+ MAME_DIR .. "src/lib/util",
+ MAME_DIR .. "src/lib/netlist",
+ MAME_DIR .. "3rdparty",
+ GEN_DIR .. "mame/layout",
+ }
+ includedirs {
+ ext_includedir("flac"),
+ }
+
+end
+
+function createProjects_mame_arcade(_target, _subtarget)
+--------------------------------------------------
+-- the following files are general components and
+-- shared across a number of drivers
+--------------------------------------------------
+
+createMAMEProjects(_target, _subtarget, "shared")
+files {
+ MAME_DIR .. "src/mame/machine/meters.cpp",
+ MAME_DIR .. "src/mame/machine/meters.h",
+ MAME_DIR .. "src/mame/machine/nmk112.cpp",
+ MAME_DIR .. "src/mame/machine/nmk112.h",
+ MAME_DIR .. "src/mame/machine/pcshare.cpp",
+ MAME_DIR .. "src/mame/machine/pcshare.h",
+ MAME_DIR .. "src/mame/machine/segacrpt_device.cpp",
+ MAME_DIR .. "src/mame/machine/segacrpt_device.h",
+ MAME_DIR .. "src/mame/machine/ticket.cpp",
+ MAME_DIR .. "src/mame/machine/ticket.h",
+ MAME_DIR .. "src/mame/video/avgdvg.cpp",
+ MAME_DIR .. "src/mame/video/avgdvg.h",
+ MAME_DIR .. "src/mame/video/awpvid.cpp",
+ MAME_DIR .. "src/mame/video/awpvid.h",
+ MAME_DIR .. "src/mame/audio/dcs.cpp",
+ MAME_DIR .. "src/mame/audio/dcs.h",
+ MAME_DIR .. "src/mame/audio/decobsmt.cpp",
+ MAME_DIR .. "src/mame/audio/decobsmt.h",
+ MAME_DIR .. "src/mame/audio/efo_zsu.cpp",
+ MAME_DIR .. "src/mame/audio/efo_zsu.h",
+ MAME_DIR .. "src/mame/audio/segam1audio.cpp",
+ MAME_DIR .. "src/mame/audio/segam1audio.h",
+}
+
+--------------------------------------------------
+-- manufacturer-specific groupings for drivers
+--------------------------------------------------
+
+createMAMEProjects(_target, _subtarget, "acorn")
+files {
+ MAME_DIR .. "src/mame/drivers/ertictac.cpp",
+ MAME_DIR .. "src/mame/drivers/ssfindo.cpp",
+ MAME_DIR .. "src/mame/drivers/aristmk5.cpp",
+ MAME_DIR .. "src/mame/machine/archimds.cpp",
+ MAME_DIR .. "src/mame/includes/archimds.h",
+ MAME_DIR .. "src/mame/video/archimds.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "alba")
+files {
+ MAME_DIR .. "src/mame/drivers/albazc.cpp",
+ MAME_DIR .. "src/mame/drivers/albazg.cpp",
+ MAME_DIR .. "src/mame/drivers/rmhaihai.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "alliedl")
+files {
+ MAME_DIR .. "src/mame/drivers/ace.cpp",
+ MAME_DIR .. "src/mame/drivers/aleisttl.cpp",
+ MAME_DIR .. "src/mame/drivers/clayshoo.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "alpha")
+files {
+ MAME_DIR .. "src/mame/drivers/alpha68k.cpp",
+ MAME_DIR .. "src/mame/includes/alpha68k.h",
+ MAME_DIR .. "src/mame/video/alpha68k.cpp",
+ MAME_DIR .. "src/mame/drivers/champbas.cpp",
+ MAME_DIR .. "src/mame/includes/champbas.h",
+ MAME_DIR .. "src/mame/video/champbas.cpp",
+ MAME_DIR .. "src/mame/drivers/equites.cpp",
+ MAME_DIR .. "src/mame/includes/equites.h",
+ MAME_DIR .. "src/mame/video/equites.cpp",
+ MAME_DIR .. "src/mame/drivers/meijinsn.cpp",
+ MAME_DIR .. "src/mame/drivers/shougi.cpp",
+ MAME_DIR .. "src/mame/machine/alpha8201.cpp",
+ MAME_DIR .. "src/mame/machine/alpha8201.h",
+}
+
+createMAMEProjects(_target, _subtarget, "amiga")
+files {
+ MAME_DIR .. "src/mame/drivers/alg.cpp",
+ MAME_DIR .. "src/mame/machine/amiga.cpp",
+ MAME_DIR .. "src/mame/video/amiga.cpp",
+ MAME_DIR .. "src/mame/video/amigaaga.cpp",
+ MAME_DIR .. "src/mame/video/amigaaga.h",
+ MAME_DIR .. "src/mame/drivers/arsystems.cpp",
+ MAME_DIR .. "src/mame/drivers/cubo.cpp",
+ MAME_DIR .. "src/mame/drivers/mquake.cpp",
+ MAME_DIR .. "src/mame/drivers/upscope.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "aristocr")
+files {
+ MAME_DIR .. "src/mame/drivers/aristmk4.cpp",
+ MAME_DIR .. "src/mame/drivers/aristmk6.cpp",
+ MAME_DIR .. "src/mame/drivers/caswin.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "ascii")
+files {
+ MAME_DIR .. "src/mame/drivers/big10.cpp",
+ MAME_DIR .. "src/mame/drivers/forte2.cpp",
+ MAME_DIR .. "src/mame/drivers/pengadvb.cpp",
+ MAME_DIR .. "src/mame/drivers/sangho.cpp",
+ MAME_DIR .. "src/mame/drivers/sfkick.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "atari")
+files {
+ MAME_DIR .. "src/mame/drivers/arcadecl.cpp",
+ MAME_DIR .. "src/mame/includes/arcadecl.h",
+ MAME_DIR .. "src/mame/video/arcadecl.cpp",
+ MAME_DIR .. "src/mame/drivers/asteroid.cpp",
+ MAME_DIR .. "src/mame/includes/asteroid.h",
+ MAME_DIR .. "src/mame/machine/asteroid.cpp",
+ MAME_DIR .. "src/mame/audio/asteroid.cpp",
+ MAME_DIR .. "src/mame/audio/llander.cpp",
+ MAME_DIR .. "src/mame/audio/llander.h",
+ MAME_DIR .. "src/mame/drivers/atarifb.cpp",
+ MAME_DIR .. "src/mame/includes/atarifb.h",
+ MAME_DIR .. "src/mame/machine/atarifb.cpp",
+ MAME_DIR .. "src/mame/audio/atarifb.cpp",
+ MAME_DIR .. "src/mame/video/atarifb.cpp",
+ MAME_DIR .. "src/mame/drivers/atarig1.cpp",
+ MAME_DIR .. "src/mame/includes/atarig1.h",
+ MAME_DIR .. "src/mame/video/atarig1.cpp",
+ MAME_DIR .. "src/mame/includes/slapstic.h",
+ MAME_DIR .. "src/mame/drivers/atarig42.cpp",
+ MAME_DIR .. "src/mame/includes/atarig42.h",
+ MAME_DIR .. "src/mame/video/atarig42.cpp",
+ MAME_DIR .. "src/mame/drivers/atarigt.cpp",
+ MAME_DIR .. "src/mame/includes/atarigt.h",
+ MAME_DIR .. "src/mame/video/atarigt.cpp",
+ MAME_DIR .. "src/mame/drivers/atarigx2.cpp",
+ MAME_DIR .. "src/mame/includes/atarigx2.h",
+ MAME_DIR .. "src/mame/video/atarigx2.cpp",
+ MAME_DIR .. "src/mame/drivers/atarisy1.cpp",
+ MAME_DIR .. "src/mame/includes/atarisy1.h",
+ MAME_DIR .. "src/mame/video/atarisy1.cpp",
+ MAME_DIR .. "src/mame/drivers/atarisy2.cpp",
+ MAME_DIR .. "src/mame/includes/atarisy2.h",
+ MAME_DIR .. "src/mame/video/atarisy2.cpp",
+ MAME_DIR .. "src/mame/drivers/atarisy4.cpp",
+ MAME_DIR .. "src/mame/drivers/atarittl.cpp",
+ MAME_DIR .. "src/mame/machine/nl_stuntcyc.cpp",
+ MAME_DIR .. "src/mame/machine/nl_stuntcyc.h",
+ MAME_DIR .. "src/mame/drivers/atetris.cpp",
+ MAME_DIR .. "src/mame/includes/atetris.h",
+ MAME_DIR .. "src/mame/video/atetris.cpp",
+ MAME_DIR .. "src/mame/drivers/avalnche.cpp",
+ MAME_DIR .. "src/mame/includes/avalnche.h",
+ MAME_DIR .. "src/mame/audio/avalnche.cpp",
+ MAME_DIR .. "src/mame/drivers/badlands.cpp",
+ MAME_DIR .. "src/mame/includes/badlands.h",
+ MAME_DIR .. "src/mame/video/badlands.cpp",
+ MAME_DIR .. "src/mame/drivers/bartop52.cpp",
+ MAME_DIR .. "src/mame/drivers/batman.cpp",
+ MAME_DIR .. "src/mame/includes/batman.h",
+ MAME_DIR .. "src/mame/video/batman.cpp",
+ MAME_DIR .. "src/mame/drivers/beathead.cpp",
+ MAME_DIR .. "src/mame/includes/beathead.h",
+ MAME_DIR .. "src/mame/video/beathead.cpp",
+ MAME_DIR .. "src/mame/drivers/blstroid.cpp",
+ MAME_DIR .. "src/mame/includes/blstroid.h",
+ MAME_DIR .. "src/mame/video/blstroid.cpp",
+ MAME_DIR .. "src/mame/drivers/boxer.cpp",
+ MAME_DIR .. "src/mame/drivers/bsktball.cpp",
+ MAME_DIR .. "src/mame/includes/bsktball.h",
+ MAME_DIR .. "src/mame/machine/bsktball.cpp",
+ MAME_DIR .. "src/mame/audio/bsktball.cpp",
+ MAME_DIR .. "src/mame/video/bsktball.cpp",
+ MAME_DIR .. "src/mame/drivers/bwidow.cpp",
+ MAME_DIR .. "src/mame/includes/bwidow.h",
+ MAME_DIR .. "src/mame/audio/bwidow.cpp",
+ MAME_DIR .. "src/mame/drivers/bzone.cpp",
+ MAME_DIR .. "src/mame/includes/bzone.h",
+ MAME_DIR .. "src/mame/audio/bzone.cpp",
+ MAME_DIR .. "src/mame/drivers/canyon.cpp",
+ MAME_DIR .. "src/mame/includes/canyon.h",
+ MAME_DIR .. "src/mame/audio/canyon.cpp",
+ MAME_DIR .. "src/mame/video/canyon.cpp",
+ MAME_DIR .. "src/mame/drivers/cball.cpp",
+ MAME_DIR .. "src/mame/drivers/ccastles.cpp",
+ MAME_DIR .. "src/mame/includes/ccastles.h",
+ MAME_DIR .. "src/mame/video/ccastles.cpp",
+ MAME_DIR .. "src/mame/drivers/centiped.cpp",
+ MAME_DIR .. "src/mame/includes/centiped.h",
+ MAME_DIR .. "src/mame/video/centiped.cpp",
+ MAME_DIR .. "src/mame/drivers/cloak.cpp",
+ MAME_DIR .. "src/mame/includes/cloak.h",
+ MAME_DIR .. "src/mame/video/cloak.cpp",
+ MAME_DIR .. "src/mame/drivers/cloud9.cpp",
+ MAME_DIR .. "src/mame/includes/cloud9.h",
+ MAME_DIR .. "src/mame/video/cloud9.cpp",
+ MAME_DIR .. "src/mame/drivers/cmmb.cpp",
+ MAME_DIR .. "src/mame/drivers/cops.cpp",
+ MAME_DIR .. "src/mame/drivers/copsnrob.cpp",
+ MAME_DIR .. "src/mame/includes/copsnrob.h",
+ MAME_DIR .. "src/mame/audio/copsnrob.cpp",
+ MAME_DIR .. "src/mame/video/copsnrob.cpp",
+ MAME_DIR .. "src/mame/drivers/cyberbal.cpp",
+ MAME_DIR .. "src/mame/includes/cyberbal.h",
+ MAME_DIR .. "src/mame/audio/cyberbal.cpp",
+ MAME_DIR .. "src/mame/video/cyberbal.cpp",
+ MAME_DIR .. "src/mame/drivers/destroyr.cpp",
+ MAME_DIR .. "src/mame/drivers/dragrace.cpp",
+ MAME_DIR .. "src/mame/includes/dragrace.h",
+ MAME_DIR .. "src/mame/audio/dragrace.cpp",
+ MAME_DIR .. "src/mame/video/dragrace.cpp",
+ MAME_DIR .. "src/mame/drivers/eprom.cpp",
+ MAME_DIR .. "src/mame/includes/eprom.h",
+ MAME_DIR .. "src/mame/video/eprom.cpp",
+ MAME_DIR .. "src/mame/drivers/firefox.cpp",
+ MAME_DIR .. "src/mame/drivers/firetrk.cpp",
+ MAME_DIR .. "src/mame/includes/firetrk.h",
+ MAME_DIR .. "src/mame/audio/firetrk.cpp",
+ MAME_DIR .. "src/mame/video/firetrk.cpp",
+ MAME_DIR .. "src/mame/drivers/flyball.cpp",
+ MAME_DIR .. "src/mame/drivers/foodf.cpp",
+ MAME_DIR .. "src/mame/includes/foodf.h",
+ MAME_DIR .. "src/mame/video/foodf.cpp",
+ MAME_DIR .. "src/mame/drivers/gauntlet.cpp",
+ MAME_DIR .. "src/mame/includes/gauntlet.h",
+ MAME_DIR .. "src/mame/video/gauntlet.cpp",
+ MAME_DIR .. "src/mame/drivers/harddriv.cpp",
+ MAME_DIR .. "src/mame/includes/harddriv.h",
+ MAME_DIR .. "src/mame/machine/harddriv.cpp",
+ MAME_DIR .. "src/mame/audio/harddriv.cpp",
+ MAME_DIR .. "src/mame/video/harddriv.cpp",
+ MAME_DIR .. "src/mame/drivers/irobot.cpp",
+ MAME_DIR .. "src/mame/includes/irobot.h",
+ MAME_DIR .. "src/mame/machine/irobot.cpp",
+ MAME_DIR .. "src/mame/video/irobot.cpp",
+ MAME_DIR .. "src/mame/drivers/jaguar.cpp",
+ MAME_DIR .. "src/mame/includes/jaguar.h",
+ MAME_DIR .. "src/mame/audio/jaguar.cpp",
+ MAME_DIR .. "src/mame/video/jaguar.cpp",
+ MAME_DIR .. "src/mame/video/jagblit.h",
+ MAME_DIR .. "src/mame/video/jagblit.hxx",
+ MAME_DIR .. "src/mame/video/jagobj.hxx",
+ MAME_DIR .. "src/mame/drivers/jedi.cpp",
+ MAME_DIR .. "src/mame/includes/jedi.h",
+ MAME_DIR .. "src/mame/audio/jedi.cpp",
+ MAME_DIR .. "src/mame/video/jedi.cpp",
+ MAME_DIR .. "src/mame/drivers/klax.cpp",
+ MAME_DIR .. "src/mame/includes/klax.h",
+ MAME_DIR .. "src/mame/video/klax.cpp",
+ MAME_DIR .. "src/mame/drivers/liberatr.cpp",
+ MAME_DIR .. "src/mame/includes/liberatr.h",
+ MAME_DIR .. "src/mame/video/liberatr.cpp",
+ MAME_DIR .. "src/mame/drivers/mediagx.cpp",
+ MAME_DIR .. "src/mame/drivers/metalmx.cpp",
+ MAME_DIR .. "src/mame/includes/metalmx.h",
+ MAME_DIR .. "src/mame/drivers/mgolf.cpp",
+ MAME_DIR .. "src/mame/drivers/mhavoc.cpp",
+ MAME_DIR .. "src/mame/includes/mhavoc.h",
+ MAME_DIR .. "src/mame/machine/mhavoc.cpp",
+ MAME_DIR .. "src/mame/drivers/missile.cpp",
+ MAME_DIR .. "src/mame/drivers/nitedrvr.cpp",
+ MAME_DIR .. "src/mame/includes/nitedrvr.h",
+ MAME_DIR .. "src/mame/machine/nitedrvr.cpp",
+ MAME_DIR .. "src/mame/audio/nitedrvr.cpp",
+ MAME_DIR .. "src/mame/video/nitedrvr.cpp",
+ MAME_DIR .. "src/mame/drivers/offtwall.cpp",
+ MAME_DIR .. "src/mame/includes/offtwall.h",
+ MAME_DIR .. "src/mame/video/offtwall.cpp",
+ MAME_DIR .. "src/mame/drivers/orbit.cpp",
+ MAME_DIR .. "src/mame/includes/orbit.h",
+ MAME_DIR .. "src/mame/audio/orbit.cpp",
+ MAME_DIR .. "src/mame/video/orbit.cpp",
+ MAME_DIR .. "src/mame/drivers/pong.cpp",
+ MAME_DIR .. "src/mame/machine/nl_pong.cpp",
+ MAME_DIR .. "src/mame/machine/nl_pong.h",
+ MAME_DIR .. "src/mame/machine/nl_pongd.cpp",
+ MAME_DIR .. "src/mame/machine/nl_pongd.h",
+ MAME_DIR .. "src/mame/machine/nl_breakout.cpp",
+ MAME_DIR .. "src/mame/machine/nl_breakout.h",
+ MAME_DIR .. "src/mame/drivers/poolshrk.cpp",
+ MAME_DIR .. "src/mame/includes/poolshrk.h",
+ MAME_DIR .. "src/mame/audio/poolshrk.cpp",
+ MAME_DIR .. "src/mame/video/poolshrk.cpp",
+ MAME_DIR .. "src/mame/drivers/quantum.cpp",
+ MAME_DIR .. "src/mame/drivers/quizshow.cpp",
+ MAME_DIR .. "src/mame/drivers/rampart.cpp",
+ MAME_DIR .. "src/mame/includes/rampart.h",
+ MAME_DIR .. "src/mame/video/rampart.cpp",
+ MAME_DIR .. "src/mame/drivers/relief.cpp",
+ MAME_DIR .. "src/mame/includes/relief.h",
+ MAME_DIR .. "src/mame/video/relief.cpp",
+ MAME_DIR .. "src/mame/drivers/runaway.cpp",
+ MAME_DIR .. "src/mame/includes/runaway.h",
+ MAME_DIR .. "src/mame/video/runaway.cpp",
+ MAME_DIR .. "src/mame/drivers/sbrkout.cpp",
+ MAME_DIR .. "src/mame/drivers/shuuz.cpp",
+ MAME_DIR .. "src/mame/includes/shuuz.h",
+ MAME_DIR .. "src/mame/video/shuuz.cpp",
+ MAME_DIR .. "src/mame/drivers/skullxbo.cpp",
+ MAME_DIR .. "src/mame/includes/skullxbo.h",
+ MAME_DIR .. "src/mame/video/skullxbo.cpp",
+ MAME_DIR .. "src/mame/drivers/skydiver.cpp",
+ MAME_DIR .. "src/mame/includes/skydiver.h",
+ MAME_DIR .. "src/mame/audio/skydiver.cpp",
+ MAME_DIR .. "src/mame/video/skydiver.cpp",
+ MAME_DIR .. "src/mame/drivers/skyraid.cpp",
+ MAME_DIR .. "src/mame/includes/skyraid.h",
+ MAME_DIR .. "src/mame/audio/skyraid.cpp",
+ MAME_DIR .. "src/mame/video/skyraid.cpp",
+ MAME_DIR .. "src/mame/drivers/sprint2.cpp",
+ MAME_DIR .. "src/mame/includes/sprint2.h",
+ MAME_DIR .. "src/mame/audio/sprint2.cpp",
+ MAME_DIR .. "src/mame/video/sprint2.cpp",
+ MAME_DIR .. "src/mame/drivers/sprint4.cpp",
+ MAME_DIR .. "src/mame/includes/sprint4.h",
+ MAME_DIR .. "src/mame/video/sprint4.cpp",
+ MAME_DIR .. "src/mame/audio/sprint4.cpp",
+ MAME_DIR .. "src/mame/audio/sprint4.h",
+ MAME_DIR .. "src/mame/drivers/sprint8.cpp",
+ MAME_DIR .. "src/mame/includes/sprint8.h",
+ MAME_DIR .. "src/mame/audio/sprint8.cpp",
+ MAME_DIR .. "src/mame/video/sprint8.cpp",
+ MAME_DIR .. "src/mame/drivers/starshp1.cpp",
+ MAME_DIR .. "src/mame/includes/starshp1.h",
+ MAME_DIR .. "src/mame/audio/starshp1.cpp",
+ MAME_DIR .. "src/mame/video/starshp1.cpp",
+ MAME_DIR .. "src/mame/drivers/starwars.cpp",
+ MAME_DIR .. "src/mame/includes/starwars.h",
+ MAME_DIR .. "src/mame/machine/starwars.cpp",
+ MAME_DIR .. "src/mame/audio/starwars.cpp",
+ MAME_DIR .. "src/mame/drivers/subs.cpp",
+ MAME_DIR .. "src/mame/includes/subs.h",
+ MAME_DIR .. "src/mame/machine/subs.cpp",
+ MAME_DIR .. "src/mame/audio/subs.cpp",
+ MAME_DIR .. "src/mame/video/subs.cpp",
+ MAME_DIR .. "src/mame/drivers/tank8.cpp",
+ MAME_DIR .. "src/mame/includes/tank8.h",
+ MAME_DIR .. "src/mame/audio/tank8.cpp",
+ MAME_DIR .. "src/mame/video/tank8.cpp",
+ MAME_DIR .. "src/mame/drivers/tempest.cpp",
+ MAME_DIR .. "src/mame/drivers/thunderj.cpp",
+ MAME_DIR .. "src/mame/includes/thunderj.h",
+ MAME_DIR .. "src/mame/video/thunderj.cpp",
+ MAME_DIR .. "src/mame/drivers/tomcat.cpp",
+ MAME_DIR .. "src/mame/drivers/toobin.cpp",
+ MAME_DIR .. "src/mame/includes/toobin.h",
+ MAME_DIR .. "src/mame/video/toobin.cpp",
+ MAME_DIR .. "src/mame/drivers/tourtabl.cpp",
+ MAME_DIR .. "src/mame/video/tia.cpp",
+ MAME_DIR .. "src/mame/video/tia.h",
+ MAME_DIR .. "src/mame/drivers/triplhnt.cpp",
+ MAME_DIR .. "src/mame/includes/triplhnt.h",
+ MAME_DIR .. "src/mame/audio/triplhnt.cpp",
+ MAME_DIR .. "src/mame/video/triplhnt.cpp",
+ MAME_DIR .. "src/mame/drivers/tunhunt.cpp",
+ MAME_DIR .. "src/mame/includes/tunhunt.h",
+ MAME_DIR .. "src/mame/video/tunhunt.cpp",
+ MAME_DIR .. "src/mame/drivers/ultratnk.cpp",
+ MAME_DIR .. "src/mame/includes/ultratnk.h",
+ MAME_DIR .. "src/mame/video/ultratnk.cpp",
+ MAME_DIR .. "src/mame/drivers/videopin.cpp",
+ MAME_DIR .. "src/mame/includes/videopin.h",
+ MAME_DIR .. "src/mame/audio/videopin.cpp",
+ MAME_DIR .. "src/mame/video/videopin.cpp",
+ MAME_DIR .. "src/mame/drivers/vindictr.cpp",
+ MAME_DIR .. "src/mame/includes/vindictr.h",
+ MAME_DIR .. "src/mame/video/vindictr.cpp",
+ MAME_DIR .. "src/mame/drivers/wolfpack.cpp",
+ MAME_DIR .. "src/mame/includes/wolfpack.h",
+ MAME_DIR .. "src/mame/video/wolfpack.cpp",
+ MAME_DIR .. "src/mame/drivers/xybots.cpp",
+ MAME_DIR .. "src/mame/includes/xybots.h",
+ MAME_DIR .. "src/mame/video/xybots.cpp",
+ MAME_DIR .. "src/mame/machine/asic65.cpp",
+ MAME_DIR .. "src/mame/machine/asic65.h",
+ MAME_DIR .. "src/mame/machine/atari_vg.cpp",
+ MAME_DIR .. "src/mame/machine/atari_vg.h",
+ MAME_DIR .. "src/mame/machine/atarigen.cpp",
+ MAME_DIR .. "src/mame/machine/atarigen.h",
+ MAME_DIR .. "src/mame/machine/mathbox.cpp",
+ MAME_DIR .. "src/mame/machine/mathbox.h",
+ MAME_DIR .. "src/mame/machine/slapstic.cpp",
+ MAME_DIR .. "src/mame/machine/atarixga.cpp",
+ MAME_DIR .. "src/mame/machine/atarixga.h",
+ MAME_DIR .. "src/mame/audio/atarijsa.cpp",
+ MAME_DIR .. "src/mame/audio/atarijsa.h",
+ MAME_DIR .. "src/mame/audio/cage.cpp",
+ MAME_DIR .. "src/mame/audio/cage.h",
+ MAME_DIR .. "src/mame/audio/redbaron.cpp",
+ MAME_DIR .. "src/mame/audio/redbaron.h",
+ MAME_DIR .. "src/mame/video/atarimo.cpp",
+ MAME_DIR .. "src/mame/video/atarimo.h",
+ MAME_DIR .. "src/mame/video/atarirle.cpp",
+ MAME_DIR .. "src/mame/video/atarirle.h",
+}
+
+createMAMEProjects(_target, _subtarget, "atlus")
+files {
+ MAME_DIR .. "src/mame/drivers/blmbycar.cpp",
+ MAME_DIR .. "src/mame/includes/blmbycar.h",
+ MAME_DIR .. "src/mame/video/blmbycar.cpp",
+ MAME_DIR .. "src/mame/drivers/ohmygod.cpp",
+ MAME_DIR .. "src/mame/includes/ohmygod.h",
+ MAME_DIR .. "src/mame/video/ohmygod.cpp",
+ MAME_DIR .. "src/mame/drivers/powerins.cpp",
+ MAME_DIR .. "src/mame/includes/powerins.h",
+ MAME_DIR .. "src/mame/video/powerins.cpp",
+ MAME_DIR .. "src/mame/drivers/bowltry.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "barcrest")
+files {
+ MAME_DIR .. "src/mame/drivers/mpu2.cpp",
+ MAME_DIR .. "src/mame/drivers/mpu3.cpp",
+ MAME_DIR .. "src/mame/drivers/mpu4.cpp",
+ MAME_DIR .. "src/mame/drivers/mpu4sw.hxx",
+ MAME_DIR .. "src/mame/drivers/mpu4.hxx",
+ MAME_DIR .. "src/mame/includes/mpu4.h",
+ MAME_DIR .. "src/mame/drivers/mpu4mod2sw.hxx",
+ MAME_DIR .. "src/mame/drivers/mpu4mod4yam.hxx",
+ MAME_DIR .. "src/mame/drivers/mpu4plasma.cpp",
+ MAME_DIR .. "src/mame/drivers/mpu4dealem.cpp",
+ MAME_DIR .. "src/mame/drivers/mpu4vid.cpp",
+ MAME_DIR .. "src/mame/drivers/mpu4avan.hxx",
+ MAME_DIR .. "src/mame/drivers/mpu4union.hxx",
+ MAME_DIR .. "src/mame/drivers/mpu4concept.hxx",
+ MAME_DIR .. "src/mame/drivers/mpu4empire.hxx",
+ MAME_DIR .. "src/mame/drivers/mpu4mdm.hxx",
+ MAME_DIR .. "src/mame/drivers/mpu4crystal.hxx",
+ MAME_DIR .. "src/mame/drivers/mpu4bwb.hxx",
+ MAME_DIR .. "src/mame/drivers/mpu4misc.hxx",
+ MAME_DIR .. "src/mame/drivers/mpu5.cpp",
+ MAME_DIR .. "src/mame/drivers/mpu5.hxx",
+}
+
+createMAMEProjects(_target, _subtarget, "bfm")
+files {
+ MAME_DIR .. "src/mame/drivers/bfcobra.cpp",
+ MAME_DIR .. "src/mame/machine/bfm_comn.cpp",
+ MAME_DIR .. "src/mame/machine/bfm_comn.h",
+ MAME_DIR .. "src/mame/drivers/bfm_sc1.cpp",
+ MAME_DIR .. "src/mame/drivers/bfm_sc2.cpp",
+ MAME_DIR .. "src/mame/video/bfm_adr2.cpp",
+ MAME_DIR .. "src/mame/video/bfm_adr2.h",
+ MAME_DIR .. "src/mame/drivers/bfm_sc4.cpp",
+ MAME_DIR .. "src/mame/drivers/bfm_sc5.cpp",
+ MAME_DIR .. "src/mame/includes/bfm_sc5.h",
+ MAME_DIR .. "src/mame/drivers/bfm_sc5.hxx",
+ MAME_DIR .. "src/mame/drivers/bfm_ad5.cpp",
+ MAME_DIR .. "src/mame/includes/bfm_ad5.h",
+ MAME_DIR .. "src/mame/drivers/bfm_ad5.hxx",
+ MAME_DIR .. "src/mame/machine/bfm_sc45_helper.cpp",
+ MAME_DIR .. "src/mame/machine/bfm_sc45_helper.h",
+ MAME_DIR .. "src/mame/includes/bfm_sc45.h",
+ MAME_DIR .. "src/mame/drivers/bfm_swp.cpp",
+ MAME_DIR .. "src/mame/drivers/bfmsys83.cpp",
+ MAME_DIR .. "src/mame/drivers/bfmsys85.cpp",
+ MAME_DIR .. "src/mame/machine/sec.cpp",
+ MAME_DIR .. "src/mame/machine/sec.h",
+ MAME_DIR .. "src/mame/machine/bfm_bd1.cpp",
+ MAME_DIR .. "src/mame/machine/bfm_bd1.h",
+ MAME_DIR .. "src/mame/machine/bfm_bda.cpp",
+ MAME_DIR .. "src/mame/machine/bfm_bda.h",
+ MAME_DIR .. "src/mame/video/bfm_dm01.cpp",
+ MAME_DIR .. "src/mame/video/bfm_dm01.h",
+ MAME_DIR .. "src/mame/drivers/rastersp.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "bmc")
+files {
+ MAME_DIR .. "src/mame/drivers/bmcbowl.cpp",
+ MAME_DIR .. "src/mame/drivers/koftball.cpp",
+ MAME_DIR .. "src/mame/drivers/popobear.cpp",
+ MAME_DIR .. "src/mame/drivers/bmcpokr.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "capcom")
+files {
+ MAME_DIR .. "src/mame/drivers/1942.cpp",
+ MAME_DIR .. "src/mame/includes/1942.h",
+ MAME_DIR .. "src/mame/video/1942.cpp",
+ MAME_DIR .. "src/mame/drivers/1943.cpp",
+ MAME_DIR .. "src/mame/includes/1943.h",
+ MAME_DIR .. "src/mame/video/1943.cpp",
+ MAME_DIR .. "src/mame/drivers/alien.cpp",
+ MAME_DIR .. "src/mame/drivers/bionicc.cpp",
+ MAME_DIR .. "src/mame/includes/bionicc.h",
+ MAME_DIR .. "src/mame/video/bionicc.cpp",
+ MAME_DIR .. "src/mame/drivers/supduck.cpp",
+ MAME_DIR .. "src/mame/video/tigeroad_spr.cpp",
+ MAME_DIR .. "src/mame/video/tigeroad_spr.h",
+ MAME_DIR .. "src/mame/drivers/blktiger.cpp",
+ MAME_DIR .. "src/mame/includes/blktiger.h",
+ MAME_DIR .. "src/mame/video/blktiger.cpp",
+ MAME_DIR .. "src/mame/drivers/cbasebal.cpp",
+ MAME_DIR .. "src/mame/includes/cbasebal.h",
+ MAME_DIR .. "src/mame/video/cbasebal.cpp",
+ MAME_DIR .. "src/mame/drivers/commando.cpp",
+ MAME_DIR .. "src/mame/includes/commando.h",
+ MAME_DIR .. "src/mame/video/commando.cpp",
+ MAME_DIR .. "src/mame/drivers/cps1.cpp",
+ MAME_DIR .. "src/mame/includes/cps1.h",
+ MAME_DIR .. "src/mame/video/cps1.cpp",
+ MAME_DIR .. "src/mame/drivers/kenseim.cpp",
+ MAME_DIR .. "src/mame/drivers/cps2.cpp",
+ MAME_DIR .. "src/mame/machine/cps2crypt.cpp",
+ MAME_DIR .. "src/mame/machine/cps2crypt.h",
+ MAME_DIR .. "src/mame/drivers/cps3.cpp",
+ MAME_DIR .. "src/mame/includes/cps3.h",
+ MAME_DIR .. "src/mame/audio/cps3.cpp",
+ MAME_DIR .. "src/mame/audio/cps3.h",
+ MAME_DIR .. "src/mame/drivers/egghunt.cpp",
+ MAME_DIR .. "src/mame/drivers/exedexes.cpp",
+ MAME_DIR .. "src/mame/includes/exedexes.h",
+ MAME_DIR .. "src/mame/video/exedexes.cpp",
+ MAME_DIR .. "src/mame/drivers/fcrash.cpp",
+ MAME_DIR .. "src/mame/drivers/gng.cpp",
+ MAME_DIR .. "src/mame/includes/gng.h",
+ MAME_DIR .. "src/mame/video/gng.cpp",
+ MAME_DIR .. "src/mame/drivers/gunsmoke.cpp",
+ MAME_DIR .. "src/mame/includes/gunsmoke.h",
+ MAME_DIR .. "src/mame/video/gunsmoke.cpp",
+ MAME_DIR .. "src/mame/drivers/higemaru.cpp",
+ MAME_DIR .. "src/mame/includes/higemaru.h",
+ MAME_DIR .. "src/mame/video/higemaru.cpp",
+ MAME_DIR .. "src/mame/drivers/lastduel.cpp",
+ MAME_DIR .. "src/mame/includes/lastduel.h",
+ MAME_DIR .. "src/mame/video/lastduel.cpp",
+ MAME_DIR .. "src/mame/drivers/lwings.cpp",
+ MAME_DIR .. "src/mame/includes/lwings.h",
+ MAME_DIR .. "src/mame/video/lwings.cpp",
+ MAME_DIR .. "src/mame/drivers/mitchell.cpp",
+ MAME_DIR .. "src/mame/includes/mitchell.h",
+ MAME_DIR .. "src/mame/video/mitchell.cpp",
+ MAME_DIR .. "src/mame/drivers/sf.cpp",
+ MAME_DIR .. "src/mame/includes/sf.h",
+ MAME_DIR .. "src/mame/video/sf.cpp",
+ MAME_DIR .. "src/mame/drivers/sidearms.cpp",
+ MAME_DIR .. "src/mame/includes/sidearms.h",
+ MAME_DIR .. "src/mame/video/sidearms.cpp",
+ MAME_DIR .. "src/mame/drivers/sonson.cpp",
+ MAME_DIR .. "src/mame/includes/sonson.h",
+ MAME_DIR .. "src/mame/video/sonson.cpp",
+ MAME_DIR .. "src/mame/drivers/srumbler.cpp",
+ MAME_DIR .. "src/mame/includes/srumbler.h",
+ MAME_DIR .. "src/mame/video/srumbler.cpp",
+ MAME_DIR .. "src/mame/drivers/tigeroad.cpp",
+ MAME_DIR .. "src/mame/includes/tigeroad.h",
+ MAME_DIR .. "src/mame/video/tigeroad.cpp",
+ MAME_DIR .. "src/mame/machine/tigeroad.cpp",
+ MAME_DIR .. "src/mame/drivers/vulgus.cpp",
+ MAME_DIR .. "src/mame/includes/vulgus.h",
+ MAME_DIR .. "src/mame/video/vulgus.cpp",
+ MAME_DIR .. "src/mame/machine/kabuki.cpp",
+ MAME_DIR .. "src/mame/machine/kabuki.h",
+ MAME_DIR .. "src/mame/drivers/tvcapcom.cpp",
+ MAME_DIR .. "src/mame/drivers/instantm.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "ces")
+files {
+ MAME_DIR .. "src/mame/drivers/cesclass.cpp",
+ MAME_DIR .. "src/mame/drivers/galgames.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "cinemat")
+files {
+ MAME_DIR .. "src/mame/drivers/cinemat.cpp",
+ MAME_DIR .. "src/mame/includes/cinemat.h",
+ MAME_DIR .. "src/mame/audio/cinemat.cpp",
+ MAME_DIR .. "src/mame/video/cinemat.cpp",
+ MAME_DIR .. "src/mame/drivers/cchasm.cpp",
+ MAME_DIR .. "src/mame/includes/cchasm.h",
+ MAME_DIR .. "src/mame/machine/cchasm.cpp",
+ MAME_DIR .. "src/mame/audio/cchasm.cpp",
+ MAME_DIR .. "src/mame/video/cchasm.cpp",
+ MAME_DIR .. "src/mame/drivers/dlair.cpp",
+ MAME_DIR .. "src/mame/drivers/dlair2.cpp",
+ MAME_DIR .. "src/mame/drivers/embargo.cpp",
+ MAME_DIR .. "src/mame/drivers/jack.cpp",
+ MAME_DIR .. "src/mame/includes/jack.h",
+ MAME_DIR .. "src/mame/video/jack.cpp",
+ MAME_DIR .. "src/mame/drivers/leland.cpp",
+ MAME_DIR .. "src/mame/includes/leland.h",
+ MAME_DIR .. "src/mame/machine/leland.cpp",
+ MAME_DIR .. "src/mame/audio/leland.cpp",
+ MAME_DIR .. "src/mame/video/leland.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "comad")
+files {
+ MAME_DIR .. "src/mame/drivers/funybubl.cpp",
+ MAME_DIR .. "src/mame/includes/funybubl.h",
+ MAME_DIR .. "src/mame/video/funybubl.cpp",
+ MAME_DIR .. "src/mame/drivers/galspnbl.cpp",
+ MAME_DIR .. "src/mame/includes/galspnbl.h",
+ MAME_DIR .. "src/mame/video/galspnbl.cpp",
+ MAME_DIR .. "src/mame/drivers/zerozone.cpp",
+ MAME_DIR .. "src/mame/includes/zerozone.h",
+ MAME_DIR .. "src/mame/video/zerozone.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "cvs")
+files {
+ MAME_DIR .. "src/mame/drivers/cvs.cpp",
+ MAME_DIR .. "src/mame/includes/cvs.h",
+ MAME_DIR .. "src/mame/video/cvs.cpp",
+ MAME_DIR .. "src/mame/drivers/galaxia.cpp",
+ MAME_DIR .. "src/mame/includes/galaxia.h",
+ MAME_DIR .. "src/mame/video/galaxia.cpp",
+ MAME_DIR .. "src/mame/drivers/quasar.cpp",
+ MAME_DIR .. "src/mame/includes/quasar.h",
+ MAME_DIR .. "src/mame/video/quasar.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "dataeast")
+files {
+ MAME_DIR .. "src/mame/drivers/actfancr.cpp",
+ MAME_DIR .. "src/mame/includes/actfancr.h",
+ MAME_DIR .. "src/mame/video/actfancr.cpp",
+ MAME_DIR .. "src/mame/drivers/astrof.cpp",
+ MAME_DIR .. "src/mame/includes/astrof.h",
+ MAME_DIR .. "src/mame/audio/astrof.cpp",
+ MAME_DIR .. "src/mame/drivers/backfire.cpp",
+ MAME_DIR .. "src/mame/drivers/battlera.cpp",
+ MAME_DIR .. "src/mame/includes/battlera.h",
+ MAME_DIR .. "src/mame/drivers/boogwing.cpp",
+ MAME_DIR .. "src/mame/includes/boogwing.h",
+ MAME_DIR .. "src/mame/video/boogwing.cpp",
+ MAME_DIR .. "src/mame/drivers/brkthru.cpp",
+ MAME_DIR .. "src/mame/includes/brkthru.h",
+ MAME_DIR .. "src/mame/video/brkthru.cpp",
+ MAME_DIR .. "src/mame/drivers/btime.cpp",
+ MAME_DIR .. "src/mame/includes/btime.h",
+ MAME_DIR .. "src/mame/machine/btime.cpp",
+ MAME_DIR .. "src/mame/video/btime.cpp",
+ MAME_DIR .. "src/mame/drivers/bwing.cpp",
+ MAME_DIR .. "src/mame/includes/bwing.h",
+ MAME_DIR .. "src/mame/video/bwing.cpp",
+ MAME_DIR .. "src/mame/drivers/cbuster.cpp",
+ MAME_DIR .. "src/mame/includes/cbuster.h",
+ MAME_DIR .. "src/mame/video/cbuster.cpp",
+ MAME_DIR .. "src/mame/drivers/chanbara.cpp",
+ MAME_DIR .. "src/mame/drivers/cninja.cpp",
+ MAME_DIR .. "src/mame/includes/cninja.h",
+ MAME_DIR .. "src/mame/video/cninja.cpp",
+ MAME_DIR .. "src/mame/drivers/cntsteer.cpp",
+ MAME_DIR .. "src/mame/drivers/compgolf.cpp",
+ MAME_DIR .. "src/mame/includes/compgolf.h",
+ MAME_DIR .. "src/mame/video/compgolf.cpp",
+ MAME_DIR .. "src/mame/drivers/darkseal.cpp",
+ MAME_DIR .. "src/mame/includes/darkseal.h",
+ MAME_DIR .. "src/mame/video/darkseal.cpp",
+ MAME_DIR .. "src/mame/drivers/dassault.cpp",
+ MAME_DIR .. "src/mame/includes/dassault.h",
+ MAME_DIR .. "src/mame/video/dassault.cpp",
+ MAME_DIR .. "src/mame/drivers/dblewing.cpp",
+ MAME_DIR .. "src/mame/drivers/dec0.cpp",
+ MAME_DIR .. "src/mame/includes/dec0.h",
+ MAME_DIR .. "src/mame/machine/dec0.cpp",
+ MAME_DIR .. "src/mame/video/dec0.cpp",
+ MAME_DIR .. "src/mame/drivers/dec8.cpp",
+ MAME_DIR .. "src/mame/includes/dec8.h",
+ MAME_DIR .. "src/mame/video/dec8.cpp",
+ MAME_DIR .. "src/mame/machine/deco222.cpp",
+ MAME_DIR .. "src/mame/machine/deco222.h",
+ MAME_DIR .. "src/mame/machine/decocpu7.cpp",
+ MAME_DIR .. "src/mame/machine/decocpu7.h",
+ MAME_DIR .. "src/mame/machine/decocpu6.cpp",
+ MAME_DIR .. "src/mame/machine/decocpu6.h",
+ MAME_DIR .. "src/mame/drivers/deco_ld.cpp",
+ MAME_DIR .. "src/mame/drivers/deco_mlc.cpp",
+ MAME_DIR .. "src/mame/includes/deco_mlc.h",
+ MAME_DIR .. "src/mame/video/deco_mlc.cpp",
+ MAME_DIR .. "src/mame/drivers/deco156.cpp",
+ MAME_DIR .. "src/mame/machine/deco156.cpp",
+ MAME_DIR .. "src/mame/machine/deco156.h",
+ MAME_DIR .. "src/mame/drivers/deco32.cpp",
+ MAME_DIR .. "src/mame/includes/deco32.h",
+ MAME_DIR .. "src/mame/video/deco32.cpp",
+ MAME_DIR .. "src/mame/video/dvi.cpp",
+ MAME_DIR .. "src/mame/video/deco_zoomspr.cpp",
+ MAME_DIR .. "src/mame/video/deco_zoomspr.h",
+ MAME_DIR .. "src/mame/drivers/decocass.cpp",
+ MAME_DIR .. "src/mame/includes/decocass.h",
+ MAME_DIR .. "src/mame/machine/decocass.cpp",
+ MAME_DIR .. "src/mame/machine/decocass_tape.cpp",
+ MAME_DIR .. "src/mame/machine/decocass_tape.h",
+ MAME_DIR .. "src/mame/video/decocass.cpp",
+ MAME_DIR .. "src/mame/drivers/deshoros.cpp",
+ MAME_DIR .. "src/mame/drivers/dietgo.cpp",
+ MAME_DIR .. "src/mame/includes/dietgo.h",
+ MAME_DIR .. "src/mame/video/dietgo.cpp",
+ MAME_DIR .. "src/mame/drivers/dreambal.cpp",
+ MAME_DIR .. "src/mame/drivers/exprraid.cpp",
+ MAME_DIR .. "src/mame/includes/exprraid.h",
+ MAME_DIR .. "src/mame/video/exprraid.cpp",
+ MAME_DIR .. "src/mame/drivers/firetrap.cpp",
+ MAME_DIR .. "src/mame/includes/firetrap.h",
+ MAME_DIR .. "src/mame/video/firetrap.cpp",
+ MAME_DIR .. "src/mame/drivers/funkyjet.cpp",
+ MAME_DIR .. "src/mame/includes/funkyjet.h",
+ MAME_DIR .. "src/mame/video/funkyjet.cpp",
+ MAME_DIR .. "src/mame/drivers/karnov.cpp",
+ MAME_DIR .. "src/mame/includes/karnov.h",
+ MAME_DIR .. "src/mame/video/karnov.cpp",
+ MAME_DIR .. "src/mame/drivers/kchamp.cpp",
+ MAME_DIR .. "src/mame/includes/kchamp.h",
+ MAME_DIR .. "src/mame/video/kchamp.cpp",
+ MAME_DIR .. "src/mame/drivers/kingobox.cpp",
+ MAME_DIR .. "src/mame/includes/kingobox.h",
+ MAME_DIR .. "src/mame/video/kingobox.cpp",
+ MAME_DIR .. "src/mame/drivers/lemmings.cpp",
+ MAME_DIR .. "src/mame/includes/lemmings.h",
+ MAME_DIR .. "src/mame/video/lemmings.cpp",
+ MAME_DIR .. "src/mame/drivers/liberate.cpp",
+ MAME_DIR .. "src/mame/includes/liberate.h",
+ MAME_DIR .. "src/mame/video/liberate.cpp",
+ MAME_DIR .. "src/mame/drivers/madalien.cpp",
+ MAME_DIR .. "src/mame/includes/madalien.h",
+ MAME_DIR .. "src/mame/audio/madalien.cpp",
+ MAME_DIR .. "src/mame/video/madalien.cpp",
+ MAME_DIR .. "src/mame/drivers/madmotor.cpp",
+ MAME_DIR .. "src/mame/includes/madmotor.h",
+ MAME_DIR .. "src/mame/video/madmotor.cpp",
+ MAME_DIR .. "src/mame/drivers/metlclsh.cpp",
+ MAME_DIR .. "src/mame/includes/metlclsh.h",
+ MAME_DIR .. "src/mame/video/metlclsh.cpp",
+ MAME_DIR .. "src/mame/drivers/mirage.cpp",
+ MAME_DIR .. "src/mame/drivers/pcktgal.cpp",
+ MAME_DIR .. "src/mame/includes/pcktgal.h",
+ MAME_DIR .. "src/mame/video/pcktgal.cpp",
+ MAME_DIR .. "src/mame/drivers/pktgaldx.cpp",
+ MAME_DIR .. "src/mame/includes/pktgaldx.h",
+ MAME_DIR .. "src/mame/video/pktgaldx.cpp",
+ MAME_DIR .. "src/mame/drivers/progolf.cpp",
+ MAME_DIR .. "src/mame/drivers/rohga.cpp",
+ MAME_DIR .. "src/mame/includes/rohga.h",
+ MAME_DIR .. "src/mame/video/rohga.cpp",
+ MAME_DIR .. "src/mame/drivers/shootout.cpp",
+ MAME_DIR .. "src/mame/includes/shootout.h",
+ MAME_DIR .. "src/mame/video/shootout.cpp",
+ MAME_DIR .. "src/mame/drivers/sidepckt.cpp",
+ MAME_DIR .. "src/mame/includes/sidepckt.h",
+ MAME_DIR .. "src/mame/video/sidepckt.cpp",
+ MAME_DIR .. "src/mame/drivers/simpl156.cpp",
+ MAME_DIR .. "src/mame/includes/simpl156.h",
+ MAME_DIR .. "src/mame/video/simpl156.cpp",
+ MAME_DIR .. "src/mame/drivers/sshangha.cpp",
+ MAME_DIR .. "src/mame/includes/sshangha.h",
+ MAME_DIR .. "src/mame/video/sshangha.cpp",
+ MAME_DIR .. "src/mame/drivers/stadhero.cpp",
+ MAME_DIR .. "src/mame/includes/stadhero.h",
+ MAME_DIR .. "src/mame/video/stadhero.cpp",
+ MAME_DIR .. "src/mame/drivers/supbtime.cpp",
+ MAME_DIR .. "src/mame/includes/supbtime.h",
+ MAME_DIR .. "src/mame/video/supbtime.cpp",
+ MAME_DIR .. "src/mame/drivers/tryout.cpp",
+ MAME_DIR .. "src/mame/includes/tryout.h",
+ MAME_DIR .. "src/mame/video/tryout.cpp",
+ MAME_DIR .. "src/mame/drivers/tumbleb.cpp",
+ MAME_DIR .. "src/mame/includes/tumbleb.h",
+ MAME_DIR .. "src/mame/video/tumbleb.cpp",
+ MAME_DIR .. "src/mame/drivers/tumblep.cpp",
+ MAME_DIR .. "src/mame/includes/tumblep.h",
+ MAME_DIR .. "src/mame/video/tumblep.cpp",
+ MAME_DIR .. "src/mame/drivers/vaportra.cpp",
+ MAME_DIR .. "src/mame/includes/vaportra.h",
+ MAME_DIR .. "src/mame/video/vaportra.cpp",
+ MAME_DIR .. "src/mame/machine/deco102.cpp",
+ MAME_DIR .. "src/mame/machine/deco102.h",
+ MAME_DIR .. "src/mame/machine/decocrpt.cpp",
+ MAME_DIR .. "src/mame/machine/decocrpt.h",
+ MAME_DIR .. "src/mame/machine/deco104.cpp",
+ MAME_DIR .. "src/mame/machine/deco104.h",
+ MAME_DIR .. "src/mame/machine/deco146.cpp",
+ MAME_DIR .. "src/mame/machine/deco146.h",
+ MAME_DIR .. "src/mame/video/decbac06.cpp",
+ MAME_DIR .. "src/mame/video/decbac06.h",
+ MAME_DIR .. "src/mame/video/deco16ic.cpp",
+ MAME_DIR .. "src/mame/video/deco16ic.h",
+ MAME_DIR .. "src/mame/video/decocomn.cpp",
+ MAME_DIR .. "src/mame/video/decocomn.h",
+ MAME_DIR .. "src/mame/video/decospr.cpp",
+ MAME_DIR .. "src/mame/video/decospr.h",
+ MAME_DIR .. "src/mame/video/decmxc06.cpp",
+ MAME_DIR .. "src/mame/video/decmxc06.h",
+ MAME_DIR .. "src/mame/video/deckarn.cpp",
+ MAME_DIR .. "src/mame/video/deckarn.h",
+}
+
+createMAMEProjects(_target, _subtarget, "dgrm")
+files {
+ MAME_DIR .. "src/mame/drivers/blackt96.cpp",
+ MAME_DIR .. "src/mame/drivers/pokechmp.cpp",
+ MAME_DIR .. "src/mame/includes/pokechmp.h",
+ MAME_DIR .. "src/mame/video/pokechmp.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "dooyong")
+files {
+ MAME_DIR .. "src/mame/drivers/dooyong.cpp",
+ MAME_DIR .. "src/mame/includes/dooyong.h",
+ MAME_DIR .. "src/mame/video/dooyong.cpp",
+ MAME_DIR .. "src/mame/drivers/gundealr.cpp",
+ MAME_DIR .. "src/mame/includes/gundealr.h",
+ MAME_DIR .. "src/mame/video/gundealr.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "dynax")
+files {
+ MAME_DIR .. "src/mame/drivers/ddenlovr.cpp",
+ MAME_DIR .. "src/mame/drivers/dynax.cpp",
+ MAME_DIR .. "src/mame/includes/dynax.h",
+ MAME_DIR .. "src/mame/video/dynax.cpp",
+ MAME_DIR .. "src/mame/drivers/hnayayoi.cpp",
+ MAME_DIR .. "src/mame/includes/hnayayoi.h",
+ MAME_DIR .. "src/mame/video/hnayayoi.cpp",
+ MAME_DIR .. "src/mame/drivers/realbrk.cpp",
+ MAME_DIR .. "src/mame/includes/realbrk.h",
+ MAME_DIR .. "src/mame/video/realbrk.cpp",
+ MAME_DIR .. "src/mame/drivers/royalmah.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "edevices")
+files {
+ MAME_DIR .. "src/mame/drivers/diverboy.cpp",
+ MAME_DIR .. "src/mame/drivers/fantland.cpp",
+ MAME_DIR .. "src/mame/includes/fantland.h",
+ MAME_DIR .. "src/mame/video/fantland.cpp",
+ MAME_DIR .. "src/mame/drivers/mwarr.cpp",
+ MAME_DIR .. "src/mame/drivers/mugsmash.cpp",
+ MAME_DIR .. "src/mame/includes/mugsmash.h",
+ MAME_DIR .. "src/mame/video/mugsmash.cpp",
+ MAME_DIR .. "src/mame/drivers/ppmast93.cpp",
+ MAME_DIR .. "src/mame/drivers/pzletime.cpp",
+ MAME_DIR .. "src/mame/drivers/stlforce.cpp",
+ MAME_DIR .. "src/mame/includes/stlforce.h",
+ MAME_DIR .. "src/mame/video/stlforce.cpp",
+ MAME_DIR .. "src/mame/drivers/twins.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "efo")
+files {
+ MAME_DIR .. "src/mame/drivers/cedar_magnet.cpp",
+ MAME_DIR .. "src/mame/machine/cedar_magnet_plane.cpp",
+ MAME_DIR .. "src/mame/machine/cedar_magnet_sprite.cpp",
+ MAME_DIR .. "src/mame/machine/cedar_magnet_board.cpp",
+ MAME_DIR .. "src/mame/machine/cedar_magnet_flop.cpp",
+ MAME_DIR .. "src/mame/drivers/cidelsa.cpp",
+ MAME_DIR .. "src/mame/includes/cidelsa.h",
+ MAME_DIR .. "src/mame/video/cidelsa.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "eolith")
+files {
+ MAME_DIR .. "src/mame/drivers/eolith.cpp",
+ MAME_DIR .. "src/mame/includes/eolith.h",
+ MAME_DIR .. "src/mame/video/eolith.cpp",
+ MAME_DIR .. "src/mame/drivers/eolith16.cpp",
+ MAME_DIR .. "src/mame/drivers/ghosteo.cpp",
+ MAME_DIR .. "src/mame/drivers/vegaeo.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "excelent")
+files {
+ MAME_DIR .. "src/mame/drivers/aquarium.cpp",
+ MAME_DIR .. "src/mame/includes/aquarium.h",
+ MAME_DIR .. "src/mame/video/aquarium.cpp",
+ MAME_DIR .. "src/mame/drivers/d9final.cpp",
+ MAME_DIR .. "src/mame/drivers/dblcrown.cpp",
+ MAME_DIR .. "src/mame/drivers/gcpinbal.cpp",
+ MAME_DIR .. "src/mame/includes/gcpinbal.h",
+ MAME_DIR .. "src/mame/video/gcpinbal.cpp",
+ MAME_DIR .. "src/mame/video/excellent_spr.cpp",
+ MAME_DIR .. "src/mame/video/excellent_spr.h",
+ MAME_DIR .. "src/mame/drivers/lastbank.cpp",
+ MAME_DIR .. "src/mame/drivers/witch.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "exidy")
+files {
+ MAME_DIR .. "src/mame/drivers/carpolo.cpp",
+ MAME_DIR .. "src/mame/includes/carpolo.h",
+ MAME_DIR .. "src/mame/machine/carpolo.cpp",
+ MAME_DIR .. "src/mame/video/carpolo.cpp",
+ MAME_DIR .. "src/mame/drivers/circus.cpp",
+ MAME_DIR .. "src/mame/includes/circus.h",
+ MAME_DIR .. "src/mame/audio/circus.cpp",
+ MAME_DIR .. "src/mame/video/circus.cpp",
+ MAME_DIR .. "src/mame/drivers/exidy.cpp",
+ MAME_DIR .. "src/mame/includes/exidy.h",
+ MAME_DIR .. "src/mame/audio/exidy.cpp",
+ MAME_DIR .. "src/mame/audio/exidy.h",
+ MAME_DIR .. "src/mame/video/exidy.cpp",
+ MAME_DIR .. "src/mame/audio/targ.cpp",
+ MAME_DIR .. "src/mame/audio/targ.h",
+ MAME_DIR .. "src/mame/drivers/exidy440.cpp",
+ MAME_DIR .. "src/mame/includes/exidy440.h",
+ MAME_DIR .. "src/mame/audio/exidy440.cpp",
+ MAME_DIR .. "src/mame/audio/exidy440.h",
+ MAME_DIR .. "src/mame/video/exidy440.cpp",
+ MAME_DIR .. "src/mame/drivers/exidyttl.cpp",
+ MAME_DIR .. "src/mame/drivers/maxaflex.cpp",
+ MAME_DIR .. "src/mame/machine/atari400.cpp",
+ MAME_DIR .. "src/mame/includes/atari400.h",
+ MAME_DIR .. "src/mame/video/atari400.cpp",
+ MAME_DIR .. "src/mame/video/antic.cpp",
+ MAME_DIR .. "src/mame/video/antic.h",
+ MAME_DIR .. "src/mame/video/gtia.cpp",
+ MAME_DIR .. "src/mame/video/gtia.h",
+ MAME_DIR .. "src/mame/drivers/starfire.cpp",
+ MAME_DIR .. "src/mame/includes/starfire.h",
+ MAME_DIR .. "src/mame/video/starfire.cpp",
+ MAME_DIR .. "src/mame/drivers/vertigo.cpp",
+ MAME_DIR .. "src/mame/includes/vertigo.h",
+ MAME_DIR .. "src/mame/machine/vertigo.cpp",
+ MAME_DIR .. "src/mame/video/vertigo.cpp",
+ MAME_DIR .. "src/mame/drivers/victory.cpp",
+ MAME_DIR .. "src/mame/includes/victory.h",
+ MAME_DIR .. "src/mame/video/victory.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "f32")
+files {
+ MAME_DIR .. "src/mame/drivers/crospang.cpp",
+ MAME_DIR .. "src/mame/includes/crospang.h",
+ MAME_DIR .. "src/mame/video/crospang.cpp",
+ MAME_DIR .. "src/mame/drivers/silvmil.cpp",
+ MAME_DIR .. "src/mame/drivers/f-32.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "funworld")
+files {
+ MAME_DIR .. "src/mame/drivers/4roses.cpp",
+ MAME_DIR .. "src/mame/drivers/funworld.cpp",
+ MAME_DIR .. "src/mame/includes/funworld.h",
+ MAME_DIR .. "src/mame/video/funworld.cpp",
+ MAME_DIR .. "src/mame/drivers/snookr10.cpp",
+ MAME_DIR .. "src/mame/includes/snookr10.h",
+ MAME_DIR .. "src/mame/video/snookr10.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "fuuki")
+files {
+ MAME_DIR .. "src/mame/drivers/fuukifg2.cpp",
+ MAME_DIR .. "src/mame/includes/fuukifg2.h",
+ MAME_DIR .. "src/mame/video/fuukifg2.cpp",
+ MAME_DIR .. "src/mame/drivers/fuukifg3.cpp",
+ MAME_DIR .. "src/mame/includes/fuukifg3.h",
+ MAME_DIR .. "src/mame/video/fuukifg3.cpp",
+ MAME_DIR .. "src/mame/video/fuukifg.cpp",
+ MAME_DIR .. "src/mame/video/fuukifg.h",
+}
+
+createMAMEProjects(_target, _subtarget, "gaelco")
+files {
+ MAME_DIR .. "src/mame/drivers/atvtrack.cpp",
+ MAME_DIR .. "src/mame/drivers/gaelco.cpp",
+ MAME_DIR .. "src/mame/includes/gaelco.h",
+ MAME_DIR .. "src/mame/video/gaelco.cpp",
+ MAME_DIR .. "src/mame/machine/gaelcrpt.cpp",
+ MAME_DIR .. "src/mame/includes/gaelcrpt.h",
+ MAME_DIR .. "src/mame/drivers/gaelco2.cpp",
+ MAME_DIR .. "src/mame/includes/gaelco2.h",
+ MAME_DIR .. "src/mame/machine/gaelco2.cpp",
+ MAME_DIR .. "src/mame/video/gaelco2.cpp",
+ MAME_DIR .. "src/mame/drivers/gaelco3d.cpp",
+ MAME_DIR .. "src/mame/includes/gaelco3d.h",
+ MAME_DIR .. "src/mame/video/gaelco3d.cpp",
+ MAME_DIR .. "src/mame/machine/gaelco3d.cpp",
+ MAME_DIR .. "src/mame/machine/gaelco3d.h",
+ MAME_DIR .. "src/mame/drivers/gaelcopc.cpp",
+ MAME_DIR .. "src/mame/drivers/glass.cpp",
+ MAME_DIR .. "src/mame/includes/glass.h",
+ MAME_DIR .. "src/mame/video/glass.cpp",
+ MAME_DIR .. "src/mame/drivers/mastboy.cpp",
+ MAME_DIR .. "src/mame/drivers/rollext.cpp",
+ MAME_DIR .. "src/mame/drivers/splash.cpp",
+ MAME_DIR .. "src/mame/includes/splash.h",
+ MAME_DIR .. "src/mame/video/splash.cpp",
+ MAME_DIR .. "src/mame/drivers/targeth.cpp",
+ MAME_DIR .. "src/mame/includes/targeth.h",
+ MAME_DIR .. "src/mame/video/targeth.cpp",
+ MAME_DIR .. "src/mame/drivers/thoop2.cpp",
+ MAME_DIR .. "src/mame/includes/thoop2.h",
+ MAME_DIR .. "src/mame/video/thoop2.cpp",
+ MAME_DIR .. "src/mame/drivers/wrally.cpp",
+ MAME_DIR .. "src/mame/includes/wrally.h",
+ MAME_DIR .. "src/mame/machine/wrally.cpp",
+ MAME_DIR .. "src/mame/video/wrally.cpp",
+ MAME_DIR .. "src/mame/drivers/xorworld.cpp",
+ MAME_DIR .. "src/mame/includes/xorworld.h",
+ MAME_DIR .. "src/mame/video/xorworld.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "gameplan")
+files {
+ MAME_DIR .. "src/mame/drivers/enigma2.cpp",
+ MAME_DIR .. "src/mame/drivers/gameplan.cpp",
+ MAME_DIR .. "src/mame/includes/gameplan.h",
+ MAME_DIR .. "src/mame/video/gameplan.cpp",
+ MAME_DIR .. "src/mame/drivers/toratora.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "gametron")
+files {
+ MAME_DIR .. "src/mame/drivers/gatron.cpp",
+ MAME_DIR .. "src/mame/includes/gatron.h",
+ MAME_DIR .. "src/mame/video/gatron.cpp",
+ MAME_DIR .. "src/mame/drivers/gotya.cpp",
+ MAME_DIR .. "src/mame/includes/gotya.h",
+ MAME_DIR .. "src/mame/audio/gotya.cpp",
+ MAME_DIR .. "src/mame/video/gotya.cpp",
+ MAME_DIR .. "src/mame/drivers/sbugger.cpp",
+ MAME_DIR .. "src/mame/includes/sbugger.h",
+ MAME_DIR .. "src/mame/video/sbugger.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "gottlieb")
+files {
+ MAME_DIR .. "src/mame/drivers/exterm.cpp",
+ MAME_DIR .. "src/mame/includes/exterm.h",
+ MAME_DIR .. "src/mame/video/exterm.cpp",
+ MAME_DIR .. "src/mame/drivers/gottlieb.cpp",
+ MAME_DIR .. "src/mame/includes/gottlieb.h",
+ MAME_DIR .. "src/mame/audio/gottlieb.cpp",
+ MAME_DIR .. "src/mame/audio/gottlieb.h",
+ MAME_DIR .. "src/mame/video/gottlieb.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "ibmpc")
+files {
+ MAME_DIR .. "src/mame/drivers/calchase.cpp",
+ MAME_DIR .. "src/mame/drivers/fruitpc.cpp",
+ MAME_DIR .. "src/mame/drivers/pangofun.cpp",
+ MAME_DIR .. "src/mame/drivers/pcat_dyn.cpp",
+ MAME_DIR .. "src/mame/drivers/pcat_nit.cpp",
+ MAME_DIR .. "src/mame/drivers/pcxt.cpp",
+ MAME_DIR .. "src/mame/drivers/quakeat.cpp",
+ MAME_DIR .. "src/mame/drivers/queen.cpp",
+ MAME_DIR .. "src/mame/drivers/igspc.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "igs")
+files {
+ MAME_DIR .. "src/mame/drivers/cabaret.cpp",
+ MAME_DIR .. "src/mame/drivers/dunhuang.cpp",
+ MAME_DIR .. "src/mame/drivers/goldstar.cpp",
+ MAME_DIR .. "src/mame/includes/goldstar.h",
+ MAME_DIR .. "src/mame/video/goldstar.cpp",
+ MAME_DIR .. "src/mame/drivers/funtech.cpp",
+ MAME_DIR .. "src/mame/drivers/jackie.cpp",
+ MAME_DIR .. "src/mame/drivers/igspoker.cpp",
+ MAME_DIR .. "src/mame/drivers/igs009.cpp",
+ MAME_DIR .. "src/mame/drivers/igs011.cpp",
+ MAME_DIR .. "src/mame/drivers/igs017.cpp",
+ MAME_DIR .. "src/mame/video/igs017_igs031.cpp",
+ MAME_DIR .. "src/mame/video/igs017_igs031.h",
+ MAME_DIR .. "src/mame/drivers/igs_fear.cpp",
+ MAME_DIR .. "src/mame/drivers/igs_m027.cpp",
+ MAME_DIR .. "src/mame/drivers/igs_m036.cpp",
+ MAME_DIR .. "src/mame/drivers/iqblock.cpp",
+ MAME_DIR .. "src/mame/includes/iqblock.h",
+ MAME_DIR .. "src/mame/video/iqblock.cpp",
+ MAME_DIR .. "src/mame/drivers/lordgun.cpp",
+ MAME_DIR .. "src/mame/includes/lordgun.h",
+ MAME_DIR .. "src/mame/video/lordgun.cpp",
+ MAME_DIR .. "src/mame/drivers/pgm.cpp",
+ MAME_DIR .. "src/mame/includes/pgm.h",
+ MAME_DIR .. "src/mame/video/pgm.cpp",
+ MAME_DIR .. "src/mame/machine/pgmprot_igs027a_type1.cpp",
+ MAME_DIR .. "src/mame/machine/pgmprot_igs027a_type1.h",
+ MAME_DIR .. "src/mame/machine/pgmprot_igs027a_type2.cpp",
+ MAME_DIR .. "src/mame/machine/pgmprot_igs027a_type2.h",
+ MAME_DIR .. "src/mame/machine/pgmprot_igs027a_type3.cpp",
+ MAME_DIR .. "src/mame/machine/pgmprot_igs027a_type3.h",
+ MAME_DIR .. "src/mame/machine/pgmprot_igs025_igs012.cpp",
+ MAME_DIR .. "src/mame/machine/pgmprot_igs025_igs012.h",
+ MAME_DIR .. "src/mame/machine/pgmprot_igs025_igs022.cpp",
+ MAME_DIR .. "src/mame/machine/pgmprot_igs025_igs022.h",
+ MAME_DIR .. "src/mame/machine/pgmprot_igs025_igs028.cpp",
+ MAME_DIR .. "src/mame/machine/pgmprot_igs025_igs028.h",
+ MAME_DIR .. "src/mame/machine/pgmprot_orlegend.cpp",
+ MAME_DIR .. "src/mame/machine/pgmprot_orlegend.h",
+ MAME_DIR .. "src/mame/drivers/pgm2.cpp",
+ MAME_DIR .. "src/mame/drivers/pgm3.cpp",
+ MAME_DIR .. "src/mame/drivers/spoker.cpp",
+ MAME_DIR .. "src/mame/machine/igs036crypt.cpp",
+ MAME_DIR .. "src/mame/machine/igs036crypt.h",
+ MAME_DIR .. "src/mame/machine/pgmcrypt.cpp",
+ MAME_DIR .. "src/mame/machine/pgmcrypt.h",
+ MAME_DIR .. "src/mame/machine/igs025.cpp",
+ MAME_DIR .. "src/mame/machine/igs025.h",
+ MAME_DIR .. "src/mame/machine/igs022.cpp",
+ MAME_DIR .. "src/mame/machine/igs022.h",
+ MAME_DIR .. "src/mame/machine/igs028.cpp",
+ MAME_DIR .. "src/mame/machine/igs028.h",
+}
+
+createMAMEProjects(_target, _subtarget, "igt")
+files {
+ MAME_DIR .. "src/mame/drivers/drw80pkr.cpp",
+ MAME_DIR .. "src/mame/drivers/gkigt.cpp",
+ MAME_DIR .. "src/mame/drivers/peplus.cpp",
+ MAME_DIR .. "src/mame/drivers/splus.cpp",
+ MAME_DIR .. "src/mame/drivers/videopkr.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "irem")
+files {
+ MAME_DIR .. "src/mame/drivers/m10.cpp",
+ MAME_DIR .. "src/mame/includes/m10.h",
+ MAME_DIR .. "src/mame/video/m10.cpp",
+ MAME_DIR .. "src/mame/drivers/m14.cpp",
+ MAME_DIR .. "src/mame/drivers/m52.cpp",
+ MAME_DIR .. "src/mame/includes/m52.h",
+ MAME_DIR .. "src/mame/video/m52.cpp",
+ MAME_DIR .. "src/mame/drivers/m57.cpp",
+ MAME_DIR .. "src/mame/includes/m57.h",
+ MAME_DIR .. "src/mame/video/m57.cpp",
+ MAME_DIR .. "src/mame/drivers/m58.cpp",
+ MAME_DIR .. "src/mame/includes/m58.h",
+ MAME_DIR .. "src/mame/video/m58.cpp",
+ MAME_DIR .. "src/mame/drivers/m62.cpp",
+ MAME_DIR .. "src/mame/includes/m62.h",
+ MAME_DIR .. "src/mame/video/m62.cpp",
+ MAME_DIR .. "src/mame/drivers/spartanxtec.cpp",
+ MAME_DIR .. "src/mame/drivers/m63.cpp",
+ MAME_DIR .. "src/mame/drivers/m72.cpp",
+ MAME_DIR .. "src/mame/includes/m72.h",
+ MAME_DIR .. "src/mame/audio/m72.cpp",
+ MAME_DIR .. "src/mame/audio/m72.h",
+ MAME_DIR .. "src/mame/video/m72.cpp",
+ MAME_DIR .. "src/mame/drivers/m90.cpp",
+ MAME_DIR .. "src/mame/includes/m90.h",
+ MAME_DIR .. "src/mame/video/m90.cpp",
+ MAME_DIR .. "src/mame/drivers/m92.cpp",
+ MAME_DIR .. "src/mame/includes/m92.h",
+ MAME_DIR .. "src/mame/video/m92.cpp",
+ MAME_DIR .. "src/mame/drivers/m107.cpp",
+ MAME_DIR .. "src/mame/includes/m107.h",
+ MAME_DIR .. "src/mame/video/m107.cpp",
+ MAME_DIR .. "src/mame/includes/iremipt.h",
+ MAME_DIR .. "src/mame/drivers/olibochu.cpp",
+ MAME_DIR .. "src/mame/drivers/redalert.cpp",
+ MAME_DIR .. "src/mame/includes/redalert.h",
+ MAME_DIR .. "src/mame/audio/redalert.cpp",
+ MAME_DIR .. "src/mame/video/redalert.cpp",
+ MAME_DIR .. "src/mame/drivers/shisen.cpp",
+ MAME_DIR .. "src/mame/includes/shisen.h",
+ MAME_DIR .. "src/mame/video/shisen.cpp",
+ MAME_DIR .. "src/mame/drivers/travrusa.cpp",
+ MAME_DIR .. "src/mame/includes/travrusa.h",
+ MAME_DIR .. "src/mame/video/travrusa.cpp",
+ MAME_DIR .. "src/mame/drivers/vigilant.cpp",
+ MAME_DIR .. "src/mame/includes/vigilant.h",
+ MAME_DIR .. "src/mame/video/vigilant.cpp",
+ MAME_DIR .. "src/mame/machine/irem_cpu.cpp",
+ MAME_DIR .. "src/mame/machine/irem_cpu.h",
+ MAME_DIR .. "src/mame/audio/irem.cpp",
+ MAME_DIR .. "src/mame/audio/irem.h",
+ MAME_DIR .. "src/mame/audio/nl_kidniki.cpp",
+ MAME_DIR .. "src/mame/audio/nl_kidniki.h",
+}
+
+createMAMEProjects(_target, _subtarget, "itech")
+files {
+ MAME_DIR .. "src/mame/drivers/capbowl.cpp",
+ MAME_DIR .. "src/mame/includes/capbowl.h",
+ MAME_DIR .. "src/mame/video/capbowl.cpp",
+ MAME_DIR .. "src/mame/drivers/itech8.cpp",
+ MAME_DIR .. "src/mame/includes/itech8.h",
+ MAME_DIR .. "src/mame/machine/itech8.cpp",
+ MAME_DIR .. "src/mame/video/itech8.cpp",
+ MAME_DIR .. "src/mame/drivers/itech32.cpp",
+ MAME_DIR .. "src/mame/includes/itech32.h",
+ MAME_DIR .. "src/mame/video/itech32.cpp",
+ MAME_DIR .. "src/mame/drivers/iteagle.cpp",
+ MAME_DIR .. "src/mame/machine/iteagle_fpga.cpp",
+ MAME_DIR .. "src/mame/machine/iteagle_fpga.h",
+}
+
+createMAMEProjects(_target, _subtarget, "jaleco")
+files {
+ MAME_DIR .. "src/mame/drivers/aeroboto.cpp",
+ MAME_DIR .. "src/mame/includes/aeroboto.h",
+ MAME_DIR .. "src/mame/video/aeroboto.cpp",
+ MAME_DIR .. "src/mame/drivers/argus.cpp",
+ MAME_DIR .. "src/mame/includes/argus.h",
+ MAME_DIR .. "src/mame/video/argus.cpp",
+ MAME_DIR .. "src/mame/drivers/bestleag.cpp",
+ MAME_DIR .. "src/mame/drivers/bigstrkb.cpp",
+ MAME_DIR .. "src/mame/includes/bigstrkb.h",
+ MAME_DIR .. "src/mame/video/bigstrkb.cpp",
+ MAME_DIR .. "src/mame/drivers/blueprnt.cpp",
+ MAME_DIR .. "src/mame/includes/blueprnt.h",
+ MAME_DIR .. "src/mame/video/blueprnt.cpp",
+ MAME_DIR .. "src/mame/drivers/bnstars.cpp",
+ MAME_DIR .. "src/mame/drivers/cischeat.cpp",
+ MAME_DIR .. "src/mame/includes/cischeat.h",
+ MAME_DIR .. "src/mame/video/cischeat.cpp",
+ MAME_DIR .. "src/mame/drivers/citycon.cpp",
+ MAME_DIR .. "src/mame/includes/citycon.h",
+ MAME_DIR .. "src/mame/video/citycon.cpp",
+ MAME_DIR .. "src/mame/drivers/ddayjlc.cpp",
+ MAME_DIR .. "src/mame/drivers/exerion.cpp",
+ MAME_DIR .. "src/mame/includes/exerion.h",
+ MAME_DIR .. "src/mame/video/exerion.cpp",
+ MAME_DIR .. "src/mame/drivers/fcombat.cpp",
+ MAME_DIR .. "src/mame/includes/fcombat.h",
+ MAME_DIR .. "src/mame/video/fcombat.cpp",
+ MAME_DIR .. "src/mame/drivers/ginganin.cpp",
+ MAME_DIR .. "src/mame/includes/ginganin.h",
+ MAME_DIR .. "src/mame/video/ginganin.cpp",
+ MAME_DIR .. "src/mame/drivers/homerun.cpp",
+ MAME_DIR .. "src/mame/includes/homerun.h",
+ MAME_DIR .. "src/mame/video/homerun.cpp",
+ MAME_DIR .. "src/mame/drivers/megasys1.cpp",
+ MAME_DIR .. "src/mame/includes/megasys1.h",
+ MAME_DIR .. "src/mame/video/megasys1.cpp",
+ MAME_DIR .. "src/mame/drivers/momoko.cpp",
+ MAME_DIR .. "src/mame/includes/momoko.h",
+ MAME_DIR .. "src/mame/video/momoko.cpp",
+ MAME_DIR .. "src/mame/drivers/ms32.cpp",
+ MAME_DIR .. "src/mame/includes/ms32.h",
+ MAME_DIR .. "src/mame/video/ms32.cpp",
+ MAME_DIR .. "src/mame/drivers/psychic5.cpp",
+ MAME_DIR .. "src/mame/includes/psychic5.h",
+ MAME_DIR .. "src/mame/video/psychic5.cpp",
+ MAME_DIR .. "src/mame/drivers/pturn.cpp",
+ MAME_DIR .. "src/mame/drivers/skyfox.cpp",
+ MAME_DIR .. "src/mame/includes/skyfox.h",
+ MAME_DIR .. "src/mame/video/skyfox.cpp",
+ MAME_DIR .. "src/mame/drivers/tetrisp2.cpp",
+ MAME_DIR .. "src/mame/includes/tetrisp2.h",
+ MAME_DIR .. "src/mame/video/tetrisp2.cpp",
+ MAME_DIR .. "src/mame/machine/jalcrpt.cpp",
+ MAME_DIR .. "src/mame/machine/jalcrpt.h",
+ MAME_DIR .. "src/mame/video/jalblend.cpp",
+ MAME_DIR .. "src/mame/video/jalblend.h",
+ MAME_DIR .. "src/mame/video/ms1_tmap.cpp",
+ MAME_DIR .. "src/mame/video/ms1_tmap.h",
+}
+
+createMAMEProjects(_target, _subtarget, "jpm")
+files {
+ MAME_DIR .. "src/mame/drivers/guab.cpp",
+ MAME_DIR .. "src/mame/drivers/jpmsys5.cpp",
+ MAME_DIR .. "src/mame/includes/jpmsys5.h",
+ MAME_DIR .. "src/mame/drivers/jpmsys5sw.cpp",
+ MAME_DIR .. "src/mame/drivers/jpmmps.cpp",
+ MAME_DIR .. "src/mame/drivers/jpms80.cpp",
+ MAME_DIR .. "src/mame/drivers/jpmsru.cpp",
+ MAME_DIR .. "src/mame/drivers/jpmimpct.cpp",
+ MAME_DIR .. "src/mame/includes/jpmimpct.h",
+ MAME_DIR .. "src/mame/video/jpmimpct.cpp",
+ MAME_DIR .. "src/mame/drivers/jpmimpctsw.cpp",
+ MAME_DIR .. "src/mame/drivers/pluto5.cpp",
+ MAME_DIR .. "src/mame/drivers/jpmsys7.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "kaneko")
+files {
+ MAME_DIR .. "src/mame/drivers/airbustr.cpp",
+ MAME_DIR .. "src/mame/includes/airbustr.h",
+ MAME_DIR .. "src/mame/video/airbustr.cpp",
+ MAME_DIR .. "src/mame/drivers/djboy.cpp",
+ MAME_DIR .. "src/mame/includes/djboy.h",
+ MAME_DIR .. "src/mame/video/djboy.cpp",
+ MAME_DIR .. "src/mame/drivers/expro02.cpp",
+ MAME_DIR .. "src/mame/drivers/galpanic.cpp",
+ MAME_DIR .. "src/mame/includes/galpnipt.h",
+ MAME_DIR .. "src/mame/includes/galpanic.h",
+ MAME_DIR .. "src/mame/video/galpanic.cpp",
+ MAME_DIR .. "src/mame/drivers/galpani2.cpp",
+ MAME_DIR .. "src/mame/includes/galpani2.h",
+ MAME_DIR .. "src/mame/video/galpani2.cpp",
+ MAME_DIR .. "src/mame/drivers/galpani3.cpp",
+ MAME_DIR .. "src/mame/video/kaneko_grap2.cpp",
+ MAME_DIR .. "src/mame/video/kaneko_grap2.h",
+ MAME_DIR .. "src/mame/drivers/hvyunit.cpp",
+ MAME_DIR .. "src/mame/drivers/jchan.cpp",
+ MAME_DIR .. "src/mame/drivers/kaneko16.cpp",
+ MAME_DIR .. "src/mame/includes/kaneko16.h",
+ MAME_DIR .. "src/mame/video/kaneko16.cpp",
+ MAME_DIR .. "src/mame/video/kaneko_tmap.cpp",
+ MAME_DIR .. "src/mame/video/kaneko_tmap.h",
+ MAME_DIR .. "src/mame/video/kaneko_spr.cpp",
+ MAME_DIR .. "src/mame/video/kaneko_spr.h",
+ MAME_DIR .. "src/mame/machine/kaneko_hit.cpp",
+ MAME_DIR .. "src/mame/machine/kaneko_hit.h",
+ MAME_DIR .. "src/mame/machine/kaneko_calc3.cpp",
+ MAME_DIR .. "src/mame/machine/kaneko_calc3.h",
+ MAME_DIR .. "src/mame/machine/kaneko_toybox.cpp",
+ MAME_DIR .. "src/mame/machine/kaneko_toybox.h",
+ MAME_DIR .. "src/mame/drivers/sandscrp.cpp",
+ MAME_DIR .. "src/mame/drivers/suprnova.cpp",
+ MAME_DIR .. "src/mame/includes/suprnova.h",
+ MAME_DIR .. "src/mame/video/suprnova.cpp",
+ MAME_DIR .. "src/mame/video/sknsspr.cpp",
+ MAME_DIR .. "src/mame/video/sknsspr.h",
+}
+
+createMAMEProjects(_target, _subtarget, "kiwako")
+files {
+ MAME_DIR .. "src/mame/drivers/jongkyo.cpp",
+ MAME_DIR .. "src/mame/drivers/koikoi.cpp",
+ MAME_DIR .. "src/mame/drivers/mrjong.cpp",
+ MAME_DIR .. "src/mame/includes/mrjong.h",
+ MAME_DIR .. "src/mame/video/mrjong.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "konami")
+files {
+ MAME_DIR .. "src/mame/drivers/88games.cpp",
+ MAME_DIR .. "src/mame/includes/88games.h",
+ MAME_DIR .. "src/mame/video/88games.cpp",
+ MAME_DIR .. "src/mame/drivers/ajax.cpp",
+ MAME_DIR .. "src/mame/includes/ajax.h",
+ MAME_DIR .. "src/mame/machine/ajax.cpp",
+ MAME_DIR .. "src/mame/video/ajax.cpp",
+ MAME_DIR .. "src/mame/drivers/aliens.cpp",
+ MAME_DIR .. "src/mame/includes/aliens.h",
+ MAME_DIR .. "src/mame/video/aliens.cpp",
+ MAME_DIR .. "src/mame/drivers/asterix.cpp",
+ MAME_DIR .. "src/mame/includes/asterix.h",
+ MAME_DIR .. "src/mame/video/asterix.cpp",
+ MAME_DIR .. "src/mame/drivers/battlnts.cpp",
+ MAME_DIR .. "src/mame/includes/battlnts.h",
+ MAME_DIR .. "src/mame/video/battlnts.cpp",
+ MAME_DIR .. "src/mame/drivers/bishi.cpp",
+ MAME_DIR .. "src/mame/includes/bishi.h",
+ MAME_DIR .. "src/mame/video/bishi.cpp",
+ MAME_DIR .. "src/mame/drivers/bladestl.cpp",
+ MAME_DIR .. "src/mame/includes/bladestl.h",
+ MAME_DIR .. "src/mame/video/bladestl.cpp",
+ MAME_DIR .. "src/mame/drivers/blockhl.cpp",
+ MAME_DIR .. "src/mame/drivers/bottom9.cpp",
+ MAME_DIR .. "src/mame/includes/bottom9.h",
+ MAME_DIR .. "src/mame/video/bottom9.cpp",
+ MAME_DIR .. "src/mame/drivers/chqflag.cpp",
+ MAME_DIR .. "src/mame/includes/chqflag.h",
+ MAME_DIR .. "src/mame/video/chqflag.cpp",
+ MAME_DIR .. "src/mame/drivers/circusc.cpp",
+ MAME_DIR .. "src/mame/includes/circusc.h",
+ MAME_DIR .. "src/mame/video/circusc.cpp",
+ MAME_DIR .. "src/mame/drivers/cobra.cpp",
+ MAME_DIR .. "src/mame/drivers/combatsc.cpp",
+ MAME_DIR .. "src/mame/includes/combatsc.h",
+ MAME_DIR .. "src/mame/video/combatsc.cpp",
+ MAME_DIR .. "src/mame/drivers/contra.cpp",
+ MAME_DIR .. "src/mame/includes/contra.h",
+ MAME_DIR .. "src/mame/video/contra.cpp",
+ MAME_DIR .. "src/mame/drivers/crimfght.cpp",
+ MAME_DIR .. "src/mame/includes/crimfght.h",
+ MAME_DIR .. "src/mame/video/crimfght.cpp",
+ MAME_DIR .. "src/mame/drivers/dbz.cpp",
+ MAME_DIR .. "src/mame/includes/dbz.h",
+ MAME_DIR .. "src/mame/video/dbz.cpp",
+ MAME_DIR .. "src/mame/drivers/ddribble.cpp",
+ MAME_DIR .. "src/mame/includes/ddribble.h",
+ MAME_DIR .. "src/mame/video/ddribble.cpp",
+ MAME_DIR .. "src/mame/drivers/divebomb.cpp",
+ MAME_DIR .. "src/mame/includes/divebomb.h",
+ MAME_DIR .. "src/mame/video/divebomb.cpp",
+ MAME_DIR .. "src/mame/drivers/djmain.cpp",
+ MAME_DIR .. "src/mame/includes/djmain.h",
+ MAME_DIR .. "src/mame/video/djmain.cpp",
+ MAME_DIR .. "src/mame/drivers/fastfred.cpp",
+ MAME_DIR .. "src/mame/includes/fastfred.h",
+ MAME_DIR .. "src/mame/video/fastfred.cpp",
+ MAME_DIR .. "src/mame/drivers/fastlane.cpp",
+ MAME_DIR .. "src/mame/includes/fastlane.h",
+ MAME_DIR .. "src/mame/video/fastlane.cpp",
+ MAME_DIR .. "src/mame/drivers/finalizr.cpp",
+ MAME_DIR .. "src/mame/includes/finalizr.h",
+ MAME_DIR .. "src/mame/video/finalizr.cpp",
+ MAME_DIR .. "src/mame/drivers/firebeat.cpp",
+ MAME_DIR .. "src/mame/machine/midikbd.cpp",
+ MAME_DIR .. "src/mame/machine/midikbd.h",
+ MAME_DIR .. "src/mame/drivers/flkatck.cpp",
+ MAME_DIR .. "src/mame/includes/flkatck.h",
+ MAME_DIR .. "src/mame/video/flkatck.cpp",
+ MAME_DIR .. "src/mame/drivers/gberet.cpp",
+ MAME_DIR .. "src/mame/includes/gberet.h",
+ MAME_DIR .. "src/mame/video/gberet.cpp",
+ MAME_DIR .. "src/mame/drivers/giclassic.cpp",
+ MAME_DIR .. "src/mame/drivers/gijoe.cpp",
+ MAME_DIR .. "src/mame/includes/gijoe.h",
+ MAME_DIR .. "src/mame/video/gijoe.cpp",
+ MAME_DIR .. "src/mame/drivers/gradius3.cpp",
+ MAME_DIR .. "src/mame/includes/gradius3.h",
+ MAME_DIR .. "src/mame/video/gradius3.cpp",
+ MAME_DIR .. "src/mame/drivers/gticlub.cpp",
+ MAME_DIR .. "src/mame/drivers/gyruss.cpp",
+ MAME_DIR .. "src/mame/includes/gyruss.h",
+ MAME_DIR .. "src/mame/video/gyruss.cpp",
+ MAME_DIR .. "src/mame/drivers/hcastle.cpp",
+ MAME_DIR .. "src/mame/includes/hcastle.h",
+ MAME_DIR .. "src/mame/video/hcastle.cpp",
+ MAME_DIR .. "src/mame/drivers/hexion.cpp",
+ MAME_DIR .. "src/mame/includes/hexion.h",
+ MAME_DIR .. "src/mame/video/hexion.cpp",
+ MAME_DIR .. "src/mame/drivers/hornet.cpp",
+ MAME_DIR .. "src/mame/machine/konppc.cpp",
+ MAME_DIR .. "src/mame/machine/konppc.h",
+ MAME_DIR .. "src/mame/drivers/hyperspt.cpp",
+ MAME_DIR .. "src/mame/includes/hyperspt.h",
+ MAME_DIR .. "src/mame/audio/hyprolyb.cpp",
+ MAME_DIR .. "src/mame/audio/hyprolyb.h",
+ MAME_DIR .. "src/mame/video/hyperspt.cpp",
+ MAME_DIR .. "src/mame/drivers/ironhors.cpp",
+ MAME_DIR .. "src/mame/includes/ironhors.h",
+ MAME_DIR .. "src/mame/video/ironhors.cpp",
+ MAME_DIR .. "src/mame/drivers/jackal.cpp",
+ MAME_DIR .. "src/mame/includes/jackal.h",
+ MAME_DIR .. "src/mame/video/jackal.cpp",
+ MAME_DIR .. "src/mame/drivers/jailbrek.cpp",
+ MAME_DIR .. "src/mame/includes/jailbrek.h",
+ MAME_DIR .. "src/mame/video/jailbrek.cpp",
+ MAME_DIR .. "src/mame/drivers/junofrst.cpp",
+ MAME_DIR .. "src/mame/drivers/konamigq.cpp",
+ MAME_DIR .. "src/mame/drivers/konamigv.cpp",
+ MAME_DIR .. "src/mame/drivers/konamigx.cpp",
+ MAME_DIR .. "src/mame/includes/konamigx.h",
+ MAME_DIR .. "src/mame/machine/konamigx.cpp",
+ MAME_DIR .. "src/mame/video/konamigx.cpp",
+ MAME_DIR .. "src/mame/drivers/konamim2.cpp",
+ MAME_DIR .. "src/mame/drivers/konmedal.cpp",
+ MAME_DIR .. "src/mame/drivers/kontest.cpp",
+ MAME_DIR .. "src/mame/drivers/konendev.cpp",
+ MAME_DIR .. "src/mame/drivers/ksys573.cpp",
+ MAME_DIR .. "src/mame/machine/k573cass.cpp",
+ MAME_DIR .. "src/mame/machine/k573cass.h",
+ MAME_DIR .. "src/mame/machine/k573dio.cpp",
+ MAME_DIR .. "src/mame/machine/k573dio.h",
+ MAME_DIR .. "src/mame/machine/k573mcr.cpp",
+ MAME_DIR .. "src/mame/machine/k573mcr.h",
+ MAME_DIR .. "src/mame/machine/k573msu.cpp",
+ MAME_DIR .. "src/mame/machine/k573msu.h",
+ MAME_DIR .. "src/mame/machine/k573npu.cpp",
+ MAME_DIR .. "src/mame/machine/k573npu.h",
+ MAME_DIR .. "src/mame/machine/zs01.cpp",
+ MAME_DIR .. "src/mame/machine/zs01.h",
+ MAME_DIR .. "src/mame/drivers/labyrunr.cpp",
+ MAME_DIR .. "src/mame/includes/labyrunr.h",
+ MAME_DIR .. "src/mame/video/labyrunr.cpp",
+ MAME_DIR .. "src/mame/drivers/lethal.cpp",
+ MAME_DIR .. "src/mame/includes/lethal.h",
+ MAME_DIR .. "src/mame/video/lethal.cpp",
+ MAME_DIR .. "src/mame/drivers/mainevt.cpp",
+ MAME_DIR .. "src/mame/includes/mainevt.h",
+ MAME_DIR .. "src/mame/video/mainevt.cpp",
+ MAME_DIR .. "src/mame/drivers/megazone.cpp",
+ MAME_DIR .. "src/mame/includes/megazone.h",
+ MAME_DIR .. "src/mame/video/megazone.cpp",
+ MAME_DIR .. "src/mame/drivers/mikie.cpp",
+ MAME_DIR .. "src/mame/includes/mikie.h",
+ MAME_DIR .. "src/mame/video/mikie.cpp",
+ MAME_DIR .. "src/mame/drivers/mogura.cpp",
+ MAME_DIR .. "src/mame/drivers/moo.cpp",
+ MAME_DIR .. "src/mame/includes/moo.h",
+ MAME_DIR .. "src/mame/video/moo.cpp",
+ MAME_DIR .. "src/mame/drivers/mystwarr.cpp",
+ MAME_DIR .. "src/mame/includes/mystwarr.h",
+ MAME_DIR .. "src/mame/video/mystwarr.cpp",
+ MAME_DIR .. "src/mame/drivers/nemesis.cpp",
+ MAME_DIR .. "src/mame/includes/nemesis.h",
+ MAME_DIR .. "src/mame/video/nemesis.cpp",
+ MAME_DIR .. "src/mame/drivers/nwk-tr.cpp",
+ MAME_DIR .. "src/mame/drivers/otomedius.cpp",
+ MAME_DIR .. "src/mame/drivers/overdriv.cpp",
+ MAME_DIR .. "src/mame/includes/overdriv.h",
+ MAME_DIR .. "src/mame/video/overdriv.cpp",
+ MAME_DIR .. "src/mame/drivers/pandoras.cpp",
+ MAME_DIR .. "src/mame/includes/pandoras.h",
+ MAME_DIR .. "src/mame/video/pandoras.cpp",
+ MAME_DIR .. "src/mame/drivers/parodius.cpp",
+ MAME_DIR .. "src/mame/includes/parodius.h",
+ MAME_DIR .. "src/mame/video/parodius.cpp",
+ MAME_DIR .. "src/mame/drivers/pingpong.cpp",
+ MAME_DIR .. "src/mame/includes/pingpong.h",
+ MAME_DIR .. "src/mame/video/pingpong.cpp",
+ MAME_DIR .. "src/mame/drivers/piratesh.cpp",
+ MAME_DIR .. "src/mame/drivers/plygonet.cpp",
+ MAME_DIR .. "src/mame/includes/plygonet.h",
+ MAME_DIR .. "src/mame/video/plygonet.cpp",
+ MAME_DIR .. "src/mame/drivers/pooyan.cpp",
+ MAME_DIR .. "src/mame/includes/pooyan.h",
+ MAME_DIR .. "src/mame/video/pooyan.cpp",
+ MAME_DIR .. "src/mame/drivers/pyson.cpp",
+ MAME_DIR .. "src/mame/drivers/qdrmfgp.cpp",
+ MAME_DIR .. "src/mame/includes/qdrmfgp.h",
+ MAME_DIR .. "src/mame/video/qdrmfgp.cpp",
+ MAME_DIR .. "src/mame/drivers/rockrage.cpp",
+ MAME_DIR .. "src/mame/includes/rockrage.h",
+ MAME_DIR .. "src/mame/video/rockrage.cpp",
+ MAME_DIR .. "src/mame/drivers/rocnrope.cpp",
+ MAME_DIR .. "src/mame/includes/rocnrope.h",
+ MAME_DIR .. "src/mame/video/rocnrope.cpp",
+ MAME_DIR .. "src/mame/drivers/rollerg.cpp",
+ MAME_DIR .. "src/mame/includes/rollerg.h",
+ MAME_DIR .. "src/mame/video/rollerg.cpp",
+ MAME_DIR .. "src/mame/drivers/rungun.cpp",
+ MAME_DIR .. "src/mame/includes/rungun.h",
+ MAME_DIR .. "src/mame/video/rungun.cpp",
+ MAME_DIR .. "src/mame/drivers/sbasketb.cpp",
+ MAME_DIR .. "src/mame/includes/sbasketb.h",
+ MAME_DIR .. "src/mame/video/sbasketb.cpp",
+ MAME_DIR .. "src/mame/drivers/scobra.cpp",
+ MAME_DIR .. "src/mame/drivers/scotrsht.cpp",
+ MAME_DIR .. "src/mame/includes/scotrsht.h",
+ MAME_DIR .. "src/mame/video/scotrsht.cpp",
+ MAME_DIR .. "src/mame/drivers/scramble.cpp",
+ MAME_DIR .. "src/mame/includes/scramble.h",
+ MAME_DIR .. "src/mame/machine/scramble.cpp",
+ MAME_DIR .. "src/mame/audio/scramble.cpp",
+ MAME_DIR .. "src/mame/drivers/shaolins.cpp",
+ MAME_DIR .. "src/mame/includes/shaolins.h",
+ MAME_DIR .. "src/mame/video/shaolins.cpp",
+ MAME_DIR .. "src/mame/drivers/simpsons.cpp",
+ MAME_DIR .. "src/mame/includes/simpsons.h",
+ MAME_DIR .. "src/mame/machine/simpsons.cpp",
+ MAME_DIR .. "src/mame/video/simpsons.cpp",
+ MAME_DIR .. "src/mame/drivers/spy.cpp",
+ MAME_DIR .. "src/mame/includes/spy.h",
+ MAME_DIR .. "src/mame/video/spy.cpp",
+ MAME_DIR .. "src/mame/drivers/surpratk.cpp",
+ MAME_DIR .. "src/mame/includes/surpratk.h",
+ MAME_DIR .. "src/mame/video/surpratk.cpp",
+ MAME_DIR .. "src/mame/drivers/tasman.cpp",
+ MAME_DIR .. "src/mame/drivers/tgtpanic.cpp",
+ MAME_DIR .. "src/mame/drivers/thunderx.cpp",
+ MAME_DIR .. "src/mame/includes/thunderx.h",
+ MAME_DIR .. "src/mame/video/thunderx.cpp",
+ MAME_DIR .. "src/mame/drivers/timeplt.cpp",
+ MAME_DIR .. "src/mame/includes/timeplt.h",
+ MAME_DIR .. "src/mame/audio/timeplt.cpp",
+ MAME_DIR .. "src/mame/audio/timeplt.h",
+ MAME_DIR .. "src/mame/video/timeplt.cpp",
+ MAME_DIR .. "src/mame/drivers/tmnt.cpp",
+ MAME_DIR .. "src/mame/includes/tmnt.h",
+ MAME_DIR .. "src/mame/video/tmnt.cpp",
+ MAME_DIR .. "src/mame/drivers/tp84.cpp",
+ MAME_DIR .. "src/mame/includes/tp84.h",
+ MAME_DIR .. "src/mame/video/tp84.cpp",
+ MAME_DIR .. "src/mame/drivers/trackfld.cpp",
+ MAME_DIR .. "src/mame/includes/trackfld.h",
+ MAME_DIR .. "src/mame/machine/konami1.cpp",
+ MAME_DIR .. "src/mame/machine/konami1.h",
+ MAME_DIR .. "src/mame/audio/trackfld.cpp",
+ MAME_DIR .. "src/mame/audio/trackfld.h",
+ MAME_DIR .. "src/mame/video/trackfld.cpp",
+ MAME_DIR .. "src/mame/drivers/tutankhm.cpp",
+ MAME_DIR .. "src/mame/includes/tutankhm.h",
+ MAME_DIR .. "src/mame/video/tutankhm.cpp",
+ MAME_DIR .. "src/mame/drivers/twin16.cpp",
+ MAME_DIR .. "src/mame/includes/twin16.h",
+ MAME_DIR .. "src/mame/video/twin16.cpp",
+ MAME_DIR .. "src/mame/drivers/twinkle.cpp",
+ MAME_DIR .. "src/mame/drivers/ultrsprt.cpp",
+ MAME_DIR .. "src/mame/drivers/ultraman.cpp",
+ MAME_DIR .. "src/mame/includes/ultraman.h",
+ MAME_DIR .. "src/mame/video/ultraman.cpp",
+ MAME_DIR .. "src/mame/drivers/vendetta.cpp",
+ MAME_DIR .. "src/mame/includes/vendetta.h",
+ MAME_DIR .. "src/mame/video/vendetta.cpp",
+ MAME_DIR .. "src/mame/drivers/viper.cpp",
+ MAME_DIR .. "src/mame/drivers/wecleman.cpp",
+ MAME_DIR .. "src/mame/includes/wecleman.h",
+ MAME_DIR .. "src/mame/video/wecleman.cpp",
+ MAME_DIR .. "src/mame/drivers/xexex.cpp",
+ MAME_DIR .. "src/mame/includes/xexex.h",
+ MAME_DIR .. "src/mame/video/xexex.cpp",
+ MAME_DIR .. "src/mame/drivers/xmen.cpp",
+ MAME_DIR .. "src/mame/includes/xmen.h",
+ MAME_DIR .. "src/mame/video/xmen.cpp",
+ MAME_DIR .. "src/mame/drivers/yiear.cpp",
+ MAME_DIR .. "src/mame/includes/yiear.h",
+ MAME_DIR .. "src/mame/video/yiear.cpp",
+ MAME_DIR .. "src/mame/drivers/zr107.cpp",
+ MAME_DIR .. "src/mame/includes/konamipt.h",
+ MAME_DIR .. "src/mame/video/konami_helper.cpp",
+ MAME_DIR .. "src/mame/video/konami_helper.h",
+ MAME_DIR .. "src/mame/video/k007121.cpp",
+ MAME_DIR .. "src/mame/video/k007121.h",
+ MAME_DIR .. "src/mame/video/k007342.cpp",
+ MAME_DIR .. "src/mame/video/k007342.h",
+ MAME_DIR .. "src/mame/video/k007420.cpp",
+ MAME_DIR .. "src/mame/video/k007420.h",
+ MAME_DIR .. "src/mame/video/k037122.cpp",
+ MAME_DIR .. "src/mame/video/k037122.h",
+ MAME_DIR .. "src/mame/video/k051316.cpp",
+ MAME_DIR .. "src/mame/video/k051316.h",
+ MAME_DIR .. "src/mame/video/k051733.cpp",
+ MAME_DIR .. "src/mame/video/k051733.h",
+ MAME_DIR .. "src/mame/video/k051960.cpp",
+ MAME_DIR .. "src/mame/video/k051960.h",
+ MAME_DIR .. "src/mame/video/k052109.cpp",
+ MAME_DIR .. "src/mame/video/k052109.h",
+ MAME_DIR .. "src/mame/video/k053250.cpp",
+ MAME_DIR .. "src/mame/video/k053250.h",
+ MAME_DIR .. "src/mame/video/k053250_ps.cpp",
+ MAME_DIR .. "src/mame/video/k053250_ps.h",
+ MAME_DIR .. "src/mame/video/k053251.cpp",
+ MAME_DIR .. "src/mame/video/k053251.h",
+ MAME_DIR .. "src/mame/video/k054156_k054157_k056832.cpp",
+ MAME_DIR .. "src/mame/video/k054156_k054157_k056832.h",
+ MAME_DIR .. "src/mame/video/k053244_k053245.cpp",
+ MAME_DIR .. "src/mame/video/k053244_k053245.h",
+ MAME_DIR .. "src/mame/video/k053246_k053247_k055673.cpp",
+ MAME_DIR .. "src/mame/video/k053246_k053247_k055673.h",
+ MAME_DIR .. "src/mame/video/k055555.cpp",
+ MAME_DIR .. "src/mame/video/k055555.h",
+ MAME_DIR .. "src/mame/video/k054000.cpp",
+ MAME_DIR .. "src/mame/video/k054000.h",
+ MAME_DIR .. "src/mame/video/k054338.cpp",
+ MAME_DIR .. "src/mame/video/k054338.h",
+ MAME_DIR .. "src/mame/video/k053936.cpp",
+ MAME_DIR .. "src/mame/video/k053936.h",
+ MAME_DIR .. "src/mame/video/k001006.cpp",
+ MAME_DIR .. "src/mame/video/k001006.h",
+ MAME_DIR .. "src/mame/video/k001005.cpp",
+ MAME_DIR .. "src/mame/video/k001005.h",
+ MAME_DIR .. "src/mame/video/k001604.cpp",
+ MAME_DIR .. "src/mame/video/k001604.h",
+ MAME_DIR .. "src/mame/video/k057714.cpp",
+ MAME_DIR .. "src/mame/video/k057714.h",
+}
+
+createMAMEProjects(_target, _subtarget, "matic")
+files {
+ MAME_DIR .. "src/mame/drivers/barata.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "maygay")
+files {
+ MAME_DIR .. "src/mame/drivers/maygay1b.cpp",
+ MAME_DIR .. "src/mame/includes/maygay1b.h",
+ MAME_DIR .. "src/mame/drivers/maygay1b.hxx",
+ MAME_DIR .. "src/mame/drivers/maygayv1.cpp",
+ MAME_DIR .. "src/mame/drivers/maygayep.cpp",
+ MAME_DIR .. "src/mame/drivers/maygaysw.cpp",
+ MAME_DIR .. "src/mame/drivers/mmm.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "meadows")
+files {
+ MAME_DIR .. "src/mame/drivers/lazercmd.cpp",
+ MAME_DIR .. "src/mame/includes/lazercmd.h",
+ MAME_DIR .. "src/mame/video/lazercmd.cpp",
+ MAME_DIR .. "src/mame/drivers/meadwttl.cpp",
+ MAME_DIR .. "src/mame/drivers/meadows.cpp",
+ MAME_DIR .. "src/mame/includes/meadows.h",
+ MAME_DIR .. "src/mame/audio/meadows.cpp",
+ MAME_DIR .. "src/mame/video/meadows.cpp",
+ MAME_DIR .. "src/mame/drivers/warpsped.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "merit")
+files {
+ MAME_DIR .. "src/mame/drivers/mgames.cpp",
+ MAME_DIR .. "src/mame/drivers/merit.cpp",
+ MAME_DIR .. "src/mame/drivers/meritm.cpp",
+ MAME_DIR .. "src/mame/drivers/mtouchxl.cpp",
+ MAME_DIR .. "src/mame/machine/at.h",
+ MAME_DIR .. "src/mame/machine/at.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "metro")
+files {
+ MAME_DIR .. "src/mame/drivers/hyprduel.cpp",
+ MAME_DIR .. "src/mame/includes/hyprduel.h",
+ MAME_DIR .. "src/mame/video/hyprduel.cpp",
+ MAME_DIR .. "src/mame/drivers/metro.cpp",
+ MAME_DIR .. "src/mame/includes/metro.h",
+ MAME_DIR .. "src/mame/video/metro.cpp",
+ MAME_DIR .. "src/mame/drivers/rabbit.cpp",
+ MAME_DIR .. "src/mame/drivers/tmmjprd.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "midcoin")
+files {
+ MAME_DIR .. "src/mame/drivers/wallc.cpp",
+ MAME_DIR .. "src/mame/drivers/wink.cpp",
+ MAME_DIR .. "src/mame/drivers/24cdjuke.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "midw8080")
+files {
+ MAME_DIR .. "src/mame/drivers/8080bw.cpp",
+ MAME_DIR .. "src/mame/includes/8080bw.h",
+ MAME_DIR .. "src/mame/audio/8080bw.cpp",
+ MAME_DIR .. "src/mame/video/8080bw.cpp",
+ MAME_DIR .. "src/mame/drivers/m79amb.cpp",
+ MAME_DIR .. "src/mame/includes/m79amb.h",
+ MAME_DIR .. "src/mame/audio/m79amb.cpp",
+ MAME_DIR .. "src/mame/drivers/mw8080bw.cpp",
+ MAME_DIR .. "src/mame/includes/mw8080bw.h",
+ MAME_DIR .. "src/mame/machine/mw8080bw.cpp",
+ MAME_DIR .. "src/mame/audio/mw8080bw.cpp",
+ MAME_DIR .. "src/mame/video/mw8080bw.cpp",
+ MAME_DIR .. "src/mame/drivers/rotaryf.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "midway")
+files {
+ MAME_DIR .. "src/mame/drivers/astrocde.cpp",
+ MAME_DIR .. "src/mame/includes/astrocde.h",
+ MAME_DIR .. "src/mame/video/astrocde.cpp",
+ MAME_DIR .. "src/mame/drivers/atlantis.cpp",
+ MAME_DIR .. "src/mame/drivers/balsente.cpp",
+ MAME_DIR .. "src/mame/includes/balsente.h",
+ MAME_DIR .. "src/mame/machine/balsente.cpp",
+ MAME_DIR .. "src/mame/video/balsente.cpp",
+ MAME_DIR .. "src/mame/drivers/gridlee.cpp",
+ MAME_DIR .. "src/mame/includes/gridlee.h",
+ MAME_DIR .. "src/mame/audio/gridlee.cpp",
+ MAME_DIR .. "src/mame/video/gridlee.cpp",
+ MAME_DIR .. "src/mame/drivers/mcr.cpp",
+ MAME_DIR .. "src/mame/includes/mcr.h",
+ MAME_DIR .. "src/mame/machine/mcr.cpp",
+ MAME_DIR .. "src/mame/video/mcr.cpp",
+ MAME_DIR .. "src/mame/drivers/mcr3.cpp",
+ MAME_DIR .. "src/mame/includes/mcr3.h",
+ MAME_DIR .. "src/mame/video/mcr3.cpp",
+ MAME_DIR .. "src/mame/drivers/spyhuntertec.cpp",
+ MAME_DIR .. "src/mame/drivers/mcr68.cpp",
+ MAME_DIR .. "src/mame/includes/mcr68.h",
+ MAME_DIR .. "src/mame/machine/mcr68.cpp",
+ MAME_DIR .. "src/mame/video/mcr68.cpp",
+ MAME_DIR .. "src/mame/drivers/zwackery.cpp",
+ MAME_DIR .. "src/mame/drivers/midqslvr.cpp",
+ MAME_DIR .. "src/mame/drivers/midtunit.cpp",
+ MAME_DIR .. "src/mame/includes/midtunit.h",
+ MAME_DIR .. "src/mame/machine/midtunit.cpp",
+ MAME_DIR .. "src/mame/video/midtunit.cpp",
+ MAME_DIR .. "src/mame/drivers/midvunit.cpp",
+ MAME_DIR .. "src/mame/includes/midvunit.h",
+ MAME_DIR .. "src/mame/video/midvunit.cpp",
+ MAME_DIR .. "src/mame/drivers/midwunit.cpp",
+ MAME_DIR .. "src/mame/includes/midwunit.h",
+ MAME_DIR .. "src/mame/machine/midwunit.cpp",
+ MAME_DIR .. "src/mame/drivers/midxunit.cpp",
+ MAME_DIR .. "src/mame/includes/midxunit.h",
+ MAME_DIR .. "src/mame/machine/midxunit.cpp",
+ MAME_DIR .. "src/mame/drivers/midyunit.cpp",
+ MAME_DIR .. "src/mame/includes/midyunit.h",
+ MAME_DIR .. "src/mame/machine/midyunit.cpp",
+ MAME_DIR .. "src/mame/video/midyunit.cpp",
+ MAME_DIR .. "src/mame/drivers/midzeus.cpp",
+ MAME_DIR .. "src/mame/includes/midzeus.h",
+ MAME_DIR .. "src/mame/video/midzeus.cpp",
+ MAME_DIR .. "src/mame/drivers/mw18w.cpp",
+ MAME_DIR .. "src/mame/drivers/mwsub.cpp",
+ MAME_DIR .. "src/mame/drivers/omegrace.cpp",
+ MAME_DIR .. "src/mame/drivers/pinball2k.cpp",
+ MAME_DIR .. "src/mame/drivers/seattle.cpp",
+ MAME_DIR .. "src/mame/drivers/sspeedr.cpp",
+ MAME_DIR .. "src/mame/includes/sspeedr.h",
+ MAME_DIR .. "src/mame/video/sspeedr.cpp",
+ MAME_DIR .. "src/mame/drivers/tmaster.cpp",
+ MAME_DIR .. "src/mame/drivers/vegas.cpp",
+ MAME_DIR .. "src/mame/drivers/wmg.cpp",
+ MAME_DIR .. "src/mame/drivers/williams.cpp",
+ MAME_DIR .. "src/mame/includes/williams.h",
+ MAME_DIR .. "src/mame/machine/williams.cpp",
+ MAME_DIR .. "src/mame/audio/williams.cpp",
+ MAME_DIR .. "src/mame/audio/williams.h",
+ MAME_DIR .. "src/mame/video/williams.cpp",
+ MAME_DIR .. "src/mame/machine/midwayic.cpp",
+ MAME_DIR .. "src/mame/machine/midwayic.h",
+ MAME_DIR .. "src/mame/audio/midway.cpp",
+ MAME_DIR .. "src/mame/audio/midway.h",
+ MAME_DIR .. "src/mame/audio/csd.cpp",
+ MAME_DIR .. "src/mame/audio/csd.h",
+}
+
+createMAMEProjects(_target, _subtarget, "namco")
+files {
+ MAME_DIR .. "src/mame/drivers/20pacgal.cpp",
+ MAME_DIR .. "src/mame/includes/20pacgal.h",
+ MAME_DIR .. "src/mame/video/20pacgal.cpp",
+ MAME_DIR .. "src/mame/drivers/30test.cpp",
+ MAME_DIR .. "src/mame/drivers/baraduke.cpp",
+ MAME_DIR .. "src/mame/includes/baraduke.h",
+ MAME_DIR .. "src/mame/video/baraduke.cpp",
+ MAME_DIR .. "src/mame/drivers/cswat.cpp",
+ MAME_DIR .. "src/mame/drivers/dambustr.cpp",
+ MAME_DIR .. "src/mame/drivers/gal3.cpp",
+ MAME_DIR .. "src/mame/drivers/galaga.cpp",
+ MAME_DIR .. "src/mame/includes/galaga.h",
+ MAME_DIR .. "src/mame/audio/galaga.cpp",
+ MAME_DIR .. "src/mame/video/galaga.cpp",
+ MAME_DIR .. "src/mame/video/bosco.cpp",
+ MAME_DIR .. "src/mame/includes/bosco.h",
+ MAME_DIR .. "src/mame/video/digdug.cpp",
+ MAME_DIR .. "src/mame/includes/digdug.h",
+ MAME_DIR .. "src/mame/machine/xevious.cpp",
+ MAME_DIR .. "src/mame/includes/xevious.h",
+ MAME_DIR .. "src/mame/video/xevious.cpp",
+ MAME_DIR .. "src/mame/drivers/galaxian.cpp",
+ MAME_DIR .. "src/mame/includes/galaxian.h",
+ MAME_DIR .. "src/mame/audio/galaxian.cpp",
+ MAME_DIR .. "src/mame/audio/galaxian.h",
+ MAME_DIR .. "src/mame/video/galaxian.cpp",
+ MAME_DIR .. "src/mame/drivers/galaxold.cpp",
+ MAME_DIR .. "src/mame/includes/galaxold.h",
+ MAME_DIR .. "src/mame/machine/galaxold.cpp",
+ MAME_DIR .. "src/mame/video/galaxold.cpp",
+ MAME_DIR .. "src/mame/drivers/gaplus.cpp",
+ MAME_DIR .. "src/mame/includes/gaplus.h",
+ MAME_DIR .. "src/mame/machine/gaplus.cpp",
+ MAME_DIR .. "src/mame/video/gaplus.cpp",
+ MAME_DIR .. "src/mame/drivers/kungfur.cpp",
+ MAME_DIR .. "src/mame/drivers/mappy.cpp",
+ MAME_DIR .. "src/mame/includes/mappy.h",
+ MAME_DIR .. "src/mame/video/mappy.cpp",
+ MAME_DIR .. "src/mame/drivers/namcofl.cpp",
+ MAME_DIR .. "src/mame/includes/namcofl.h",
+ MAME_DIR .. "src/mame/video/namcofl.cpp",
+ MAME_DIR .. "src/mame/machine/namcoic.cpp",
+ MAME_DIR .. "src/mame/includes/namcoic.h",
+ MAME_DIR .. "src/mame/drivers/namcona1.cpp",
+ MAME_DIR .. "src/mame/includes/namcona1.h",
+ MAME_DIR .. "src/mame/video/namcona1.cpp",
+ MAME_DIR .. "src/mame/drivers/namconb1.cpp",
+ MAME_DIR .. "src/mame/includes/namconb1.h",
+ MAME_DIR .. "src/mame/video/namconb1.cpp",
+ MAME_DIR .. "src/mame/drivers/namcond1.cpp",
+ MAME_DIR .. "src/mame/includes/namcond1.h",
+ MAME_DIR .. "src/mame/machine/namcond1.cpp",
+ MAME_DIR .. "src/mame/video/ygv608.cpp",
+ MAME_DIR .. "src/mame/video/ygv608.h",
+ MAME_DIR .. "src/mame/drivers/namcops2.cpp",
+ MAME_DIR .. "src/mame/drivers/namcos1.cpp",
+ MAME_DIR .. "src/mame/includes/namcos1.h",
+ MAME_DIR .. "src/mame/machine/namcos1.cpp",
+ MAME_DIR .. "src/mame/video/namcos1.cpp",
+ MAME_DIR .. "src/mame/drivers/namcos10.cpp",
+ MAME_DIR .. "src/mame/machine/ns10crypt.cpp",
+ MAME_DIR .. "src/mame/machine/ns10crypt.h",
+ MAME_DIR .. "src/mame/drivers/namcos11.cpp",
+ MAME_DIR .. "src/mame/machine/ns11prot.cpp",
+ MAME_DIR .. "src/mame/machine/ns11prot.h",
+ MAME_DIR .. "src/mame/drivers/namcos12.cpp",
+ MAME_DIR .. "src/mame/machine/namco_settings.cpp",
+ MAME_DIR .. "src/mame/machine/namco_settings.h",
+ MAME_DIR .. "src/mame/drivers/namcos2.cpp",
+ MAME_DIR .. "src/mame/includes/namcos2.h",
+ MAME_DIR .. "src/mame/machine/namcos2.cpp",
+ MAME_DIR .. "src/mame/video/namcos2.cpp",
+ MAME_DIR .. "src/mame/drivers/namcos21.cpp",
+ MAME_DIR .. "src/mame/includes/namcos21.h",
+ MAME_DIR .. "src/mame/video/namcos21.cpp",
+ MAME_DIR .. "src/mame/drivers/namcos22.cpp",
+ MAME_DIR .. "src/mame/includes/namcos22.h",
+ MAME_DIR .. "src/mame/video/namcos22.cpp",
+ MAME_DIR .. "src/mame/drivers/namcos23.cpp",
+ MAME_DIR .. "src/mame/drivers/namcos86.cpp",
+ MAME_DIR .. "src/mame/includes/namcos86.h",
+ MAME_DIR .. "src/mame/video/namcos86.cpp",
+ MAME_DIR .. "src/mame/drivers/pacland.cpp",
+ MAME_DIR .. "src/mame/includes/pacland.h",
+ MAME_DIR .. "src/mame/video/pacland.cpp",
+ MAME_DIR .. "src/mame/drivers/polepos.cpp",
+ MAME_DIR .. "src/mame/includes/polepos.h",
+ MAME_DIR .. "src/mame/audio/polepos.cpp",
+ MAME_DIR .. "src/mame/video/polepos.cpp",
+ MAME_DIR .. "src/mame/drivers/rallyx.cpp",
+ MAME_DIR .. "src/mame/includes/rallyx.h",
+ MAME_DIR .. "src/mame/video/rallyx.cpp",
+ MAME_DIR .. "src/mame/drivers/skykid.cpp",
+ MAME_DIR .. "src/mame/includes/skykid.h",
+ MAME_DIR .. "src/mame/video/skykid.cpp",
+ MAME_DIR .. "src/mame/drivers/tankbatt.cpp",
+ MAME_DIR .. "src/mame/includes/tankbatt.h",
+ MAME_DIR .. "src/mame/video/tankbatt.cpp",
+ MAME_DIR .. "src/mame/drivers/tceptor.cpp",
+ MAME_DIR .. "src/mame/includes/tceptor.h",
+ MAME_DIR .. "src/mame/video/tceptor.cpp",
+ MAME_DIR .. "src/mame/drivers/toypop.cpp",
+ MAME_DIR .. "src/mame/drivers/turrett.cpp",
+ MAME_DIR .. "src/mame/includes/turrett.h",
+ MAME_DIR .. "src/mame/audio/turrett.cpp",
+ MAME_DIR .. "src/mame/video/turrett.cpp",
+ MAME_DIR .. "src/mame/drivers/warpwarp.cpp",
+ MAME_DIR .. "src/mame/includes/warpwarp.h",
+ MAME_DIR .. "src/mame/audio/geebee.cpp",
+ MAME_DIR .. "src/mame/audio/geebee.h",
+ MAME_DIR .. "src/mame/audio/warpwarp.cpp",
+ MAME_DIR .. "src/mame/audio/warpwarp.h",
+ MAME_DIR .. "src/mame/video/warpwarp.cpp",
+ MAME_DIR .. "src/mame/machine/c117.cpp",
+ MAME_DIR .. "src/mame/machine/c117.h",
+ MAME_DIR .. "src/mame/machine/namcoio.cpp",
+ MAME_DIR .. "src/mame/machine/namcoio.h",
+ MAME_DIR .. "src/mame/machine/namco06.cpp",
+ MAME_DIR .. "src/mame/machine/namco06.h",
+ MAME_DIR .. "src/mame/machine/namco50.cpp",
+ MAME_DIR .. "src/mame/machine/namco50.h",
+ MAME_DIR .. "src/mame/machine/namco51.cpp",
+ MAME_DIR .. "src/mame/machine/namco51.h",
+ MAME_DIR .. "src/mame/machine/namco53.cpp",
+ MAME_DIR .. "src/mame/machine/namco53.h",
+ MAME_DIR .. "src/mame/machine/namco62.cpp",
+ MAME_DIR .. "src/mame/machine/namco62.h",
+ MAME_DIR .. "src/mame/machine/namcomcu.cpp",
+ MAME_DIR .. "src/mame/machine/namcomcu.h",
+ MAME_DIR .. "src/mame/machine/namcoio_gearbox.cpp",
+ MAME_DIR .. "src/mame/machine/namcoio_gearbox.h",
+ MAME_DIR .. "src/mame/machine/namco_c148.cpp",
+ MAME_DIR .. "src/mame/machine/namco_c148.h",
+ MAME_DIR .. "src/mame/machine/namco_c139.cpp",
+ MAME_DIR .. "src/mame/machine/namco_c139.h",
+ MAME_DIR .. "src/mame/audio/namco52.cpp",
+ MAME_DIR .. "src/mame/audio/namco52.h",
+ MAME_DIR .. "src/mame/audio/namco54.cpp",
+ MAME_DIR .. "src/mame/audio/namco54.h",
+ MAME_DIR .. "src/mame/video/namco_c116.cpp",
+ MAME_DIR .. "src/mame/video/namco_c116.h",
+ MAME_DIR .. "src/mame/video/c45.cpp",
+ MAME_DIR .. "src/mame/video/c45.h",
+}
+
+createMAMEProjects(_target, _subtarget, "nasco")
+files {
+ MAME_DIR .. "src/mame/drivers/crgolf.cpp",
+ MAME_DIR .. "src/mame/includes/crgolf.h",
+ MAME_DIR .. "src/mame/video/crgolf.cpp",
+ MAME_DIR .. "src/mame/drivers/himesiki.cpp",
+ MAME_DIR .. "src/mame/includes/himesiki.h",
+ MAME_DIR .. "src/mame/video/himesiki.cpp",
+ MAME_DIR .. "src/mame/drivers/suprgolf.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "neogeo")
+files {
+ MAME_DIR .. "src/mame/drivers/neogeo.cpp",
+ MAME_DIR .. "src/mame/includes/neogeo.h",
+ MAME_DIR .. "src/mame/drivers/neodriv.hxx",
+ MAME_DIR .. "src/mame/video/neogeo.cpp",
+ MAME_DIR .. "src/mame/drivers/neopcb.cpp",
+ MAME_DIR .. "src/mame/video/neogeo_spr.cpp",
+ MAME_DIR .. "src/mame/video/neogeo_spr.h",
+ MAME_DIR .. "src/mame/machine/ng_memcard.cpp",
+ MAME_DIR .. "src/mame/machine/ng_memcard.h",
+}
+
+createMAMEProjects(_target, _subtarget, "nichibut")
+files {
+ MAME_DIR .. "src/mame/drivers/armedf.cpp",
+ MAME_DIR .. "src/mame/includes/armedf.h",
+ MAME_DIR .. "src/mame/video/armedf.cpp",
+ MAME_DIR .. "src/mame/drivers/cclimber.cpp",
+ MAME_DIR .. "src/mame/includes/cclimber.h",
+ MAME_DIR .. "src/mame/machine/cclimber.cpp",
+ MAME_DIR .. "src/mame/audio/cclimber.cpp",
+ MAME_DIR .. "src/mame/audio/cclimber.h",
+ MAME_DIR .. "src/mame/video/cclimber.cpp",
+ MAME_DIR .. "src/mame/drivers/clshroad.cpp",
+ MAME_DIR .. "src/mame/includes/clshroad.h",
+ MAME_DIR .. "src/mame/video/clshroad.cpp",
+ MAME_DIR .. "src/mame/drivers/csplayh5.cpp",
+ MAME_DIR .. "src/mame/drivers/cop01.cpp",
+ MAME_DIR .. "src/mame/includes/cop01.h",
+ MAME_DIR .. "src/mame/video/cop01.cpp",
+ MAME_DIR .. "src/mame/drivers/dacholer.cpp",
+ MAME_DIR .. "src/mame/drivers/galivan.cpp",
+ MAME_DIR .. "src/mame/includes/galivan.h",
+ MAME_DIR .. "src/mame/video/galivan.cpp",
+ MAME_DIR .. "src/mame/drivers/gomoku.cpp",
+ MAME_DIR .. "src/mame/includes/gomoku.h",
+ MAME_DIR .. "src/mame/audio/gomoku.cpp",
+ MAME_DIR .. "src/mame/video/gomoku.cpp",
+ MAME_DIR .. "src/mame/drivers/hyhoo.cpp",
+ MAME_DIR .. "src/mame/includes/hyhoo.h",
+ MAME_DIR .. "src/mame/video/hyhoo.cpp",
+ MAME_DIR .. "src/mame/drivers/jangou.cpp",
+ MAME_DIR .. "src/mame/drivers/magmax.cpp",
+ MAME_DIR .. "src/mame/includes/magmax.h",
+ MAME_DIR .. "src/mame/video/magmax.cpp",
+ MAME_DIR .. "src/mame/drivers/nbmj8688.cpp",
+ MAME_DIR .. "src/mame/includes/nbmj8688.h",
+ MAME_DIR .. "src/mame/video/nbmj8688.cpp",
+ MAME_DIR .. "src/mame/drivers/nbmj8891.cpp",
+ MAME_DIR .. "src/mame/includes/nbmj8891.h",
+ MAME_DIR .. "src/mame/video/nbmj8891.cpp",
+ MAME_DIR .. "src/mame/drivers/nbmj8900.cpp",
+ MAME_DIR .. "src/mame/includes/nbmj8900.h",
+ MAME_DIR .. "src/mame/video/nbmj8900.cpp",
+ MAME_DIR .. "src/mame/drivers/nbmj8991.cpp",
+ MAME_DIR .. "src/mame/includes/nbmj8991.h",
+ MAME_DIR .. "src/mame/video/nbmj8991.cpp",
+ MAME_DIR .. "src/mame/drivers/nbmj9195.cpp",
+ MAME_DIR .. "src/mame/includes/nbmj9195.h",
+ MAME_DIR .. "src/mame/video/nbmj9195.cpp",
+ MAME_DIR .. "src/mame/drivers/nightgal.cpp",
+ MAME_DIR .. "src/mame/drivers/niyanpai.cpp",
+ MAME_DIR .. "src/mame/includes/niyanpai.h",
+ MAME_DIR .. "src/mame/video/niyanpai.cpp",
+ MAME_DIR .. "src/mame/drivers/pastelg.cpp",
+ MAME_DIR .. "src/mame/includes/pastelg.h",
+ MAME_DIR .. "src/mame/video/pastelg.cpp",
+ MAME_DIR .. "src/mame/drivers/seicross.cpp",
+ MAME_DIR .. "src/mame/includes/seicross.h",
+ MAME_DIR .. "src/mame/video/seicross.cpp",
+ MAME_DIR .. "src/mame/drivers/terracre.cpp",
+ MAME_DIR .. "src/mame/includes/terracre.h",
+ MAME_DIR .. "src/mame/video/terracre.cpp",
+ MAME_DIR .. "src/mame/drivers/tubep.cpp",
+ MAME_DIR .. "src/mame/includes/tubep.h",
+ MAME_DIR .. "src/mame/video/tubep.cpp",
+ MAME_DIR .. "src/mame/drivers/wiping.cpp",
+ MAME_DIR .. "src/mame/includes/wiping.h",
+ MAME_DIR .. "src/mame/audio/wiping.cpp",
+ MAME_DIR .. "src/mame/audio/wiping.h",
+ MAME_DIR .. "src/mame/video/wiping.cpp",
+ MAME_DIR .. "src/mame/machine/nb1413m3.cpp",
+ MAME_DIR .. "src/mame/includes/nb1413m3.h",
+ MAME_DIR .. "src/mame/machine/nb1414m4.cpp",
+ MAME_DIR .. "src/mame/includes/nb1414m4.h",
+}
+
+createMAMEProjects(_target, _subtarget, "nintendo")
+files {
+ MAME_DIR .. "src/mame/drivers/cham24.cpp",
+ MAME_DIR .. "src/mame/drivers/dkong.cpp",
+ MAME_DIR .. "src/mame/includes/dkong.h",
+ MAME_DIR .. "src/mame/audio/dkong.cpp",
+ MAME_DIR .. "src/mame/video/dkong.cpp",
+ MAME_DIR .. "src/mame/drivers/mario.cpp",
+ MAME_DIR .. "src/mame/includes/mario.h",
+ MAME_DIR .. "src/mame/audio/nl_mario.cpp",
+ MAME_DIR .. "src/mame/audio/nl_mario.h",
+ MAME_DIR .. "src/mame/audio/mario.cpp",
+ MAME_DIR .. "src/mame/video/mario.cpp",
+ MAME_DIR .. "src/mame/drivers/mmagic.cpp",
+ MAME_DIR .. "src/mame/drivers/multigam.cpp",
+ MAME_DIR .. "src/mame/drivers/n8080.cpp",
+ MAME_DIR .. "src/mame/includes/n8080.h",
+ MAME_DIR .. "src/mame/audio/n8080.cpp",
+ MAME_DIR .. "src/mame/video/n8080.cpp",
+ MAME_DIR .. "src/mame/drivers/nss.cpp",
+ MAME_DIR .. "src/mame/machine/snes.cpp",
+ MAME_DIR .. "src/mame/audio/snes_snd.cpp",
+ MAME_DIR .. "src/mame/audio/snes_snd.h",
+ MAME_DIR .. "src/mame/drivers/playch10.cpp",
+ MAME_DIR .. "src/mame/includes/playch10.h",
+ MAME_DIR .. "src/mame/machine/playch10.cpp",
+ MAME_DIR .. "src/mame/video/playch10.cpp",
+ MAME_DIR .. "src/mame/drivers/popeye.cpp",
+ MAME_DIR .. "src/mame/includes/popeye.h",
+ MAME_DIR .. "src/mame/video/popeye.cpp",
+ MAME_DIR .. "src/mame/drivers/punchout.cpp",
+ MAME_DIR .. "src/mame/includes/punchout.h",
+ MAME_DIR .. "src/mame/video/punchout.cpp",
+ MAME_DIR .. "src/mame/drivers/famibox.cpp",
+ MAME_DIR .. "src/mame/drivers/sfcbox.cpp",
+ MAME_DIR .. "src/mame/drivers/snesb.cpp",
+ MAME_DIR .. "src/mame/drivers/spacefb.cpp",
+ MAME_DIR .. "src/mame/includes/spacefb.h",
+ MAME_DIR .. "src/mame/audio/spacefb.cpp",
+ MAME_DIR .. "src/mame/video/spacefb.cpp",
+ MAME_DIR .. "src/mame/drivers/vsnes.cpp",
+ MAME_DIR .. "src/mame/includes/vsnes.h",
+ MAME_DIR .. "src/mame/machine/vsnes.cpp",
+ MAME_DIR .. "src/mame/video/vsnes.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "nix")
+files {
+ MAME_DIR .. "src/mame/drivers/fitfight.cpp",
+ MAME_DIR .. "src/mame/includes/fitfight.h",
+ MAME_DIR .. "src/mame/video/fitfight.cpp",
+ MAME_DIR .. "src/mame/drivers/pirates.cpp",
+ MAME_DIR .. "src/mame/includes/pirates.h",
+ MAME_DIR .. "src/mame/video/pirates.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "nmk")
+files {
+ MAME_DIR .. "src/mame/drivers/acchi.cpp",
+ MAME_DIR .. "src/mame/drivers/acommand.cpp",
+ MAME_DIR .. "src/mame/drivers/cultures.cpp",
+ MAME_DIR .. "src/mame/drivers/ddealer.cpp",
+ MAME_DIR .. "src/mame/drivers/jalmah.cpp",
+ MAME_DIR .. "src/mame/drivers/macrossp.cpp",
+ MAME_DIR .. "src/mame/includes/macrossp.h",
+ MAME_DIR .. "src/mame/video/macrossp.cpp",
+ MAME_DIR .. "src/mame/drivers/nmk16.cpp",
+ MAME_DIR .. "src/mame/includes/nmk16.h",
+ MAME_DIR .. "src/mame/machine/nmk004.cpp",
+ MAME_DIR .. "src/mame/machine/nmk004.h",
+ MAME_DIR .. "src/mame/video/nmk16.cpp",
+ MAME_DIR .. "src/mame/drivers/quizdna.cpp",
+ MAME_DIR .. "src/mame/includes/quizdna.h",
+ MAME_DIR .. "src/mame/video/quizdna.cpp",
+ MAME_DIR .. "src/mame/drivers/quizpani.cpp",
+ MAME_DIR .. "src/mame/includes/quizpani.h",
+ MAME_DIR .. "src/mame/video/quizpani.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "olympia")
+files {
+ MAME_DIR .. "src/mame/drivers/dday.cpp",
+ MAME_DIR .. "src/mame/includes/dday.h",
+ MAME_DIR .. "src/mame/video/dday.cpp",
+ MAME_DIR .. "src/mame/drivers/lbeach.cpp",
+ MAME_DIR .. "src/mame/drivers/monzagp.cpp",
+ MAME_DIR .. "src/mame/drivers/portrait.cpp",
+ MAME_DIR .. "src/mame/includes/portrait.h",
+ MAME_DIR .. "src/mame/video/portrait.cpp",
+ MAME_DIR .. "src/mame/drivers/vega.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "omori")
+files {
+ MAME_DIR .. "src/mame/drivers/battlex.cpp",
+ MAME_DIR .. "src/mame/includes/battlex.h",
+ MAME_DIR .. "src/mame/video/battlex.cpp",
+ MAME_DIR .. "src/mame/drivers/carjmbre.cpp",
+ MAME_DIR .. "src/mame/drivers/popper.cpp",
+ MAME_DIR .. "src/mame/drivers/spaceg.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "orca")
+files {
+ MAME_DIR .. "src/mame/drivers/espial.cpp",
+ MAME_DIR .. "src/mame/includes/espial.h",
+ MAME_DIR .. "src/mame/video/espial.cpp",
+ MAME_DIR .. "src/mame/drivers/funkybee.cpp",
+ MAME_DIR .. "src/mame/includes/funkybee.h",
+ MAME_DIR .. "src/mame/video/funkybee.cpp",
+ MAME_DIR .. "src/mame/drivers/marineb.cpp",
+ MAME_DIR .. "src/mame/includes/marineb.h",
+ MAME_DIR .. "src/mame/video/marineb.cpp",
+ MAME_DIR .. "src/mame/drivers/vastar.cpp",
+ MAME_DIR .. "src/mame/includes/vastar.h",
+ MAME_DIR .. "src/mame/video/vastar.cpp",
+ MAME_DIR .. "src/mame/drivers/zodiack.cpp",
+ MAME_DIR .. "src/mame/includes/zodiack.h",
+ MAME_DIR .. "src/mame/video/zodiack.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "pacific")
+files {
+ MAME_DIR .. "src/mame/drivers/mrflea.cpp",
+ MAME_DIR .. "src/mame/includes/mrflea.h",
+ MAME_DIR .. "src/mame/video/mrflea.cpp",
+ MAME_DIR .. "src/mame/drivers/thief.cpp",
+ MAME_DIR .. "src/mame/includes/thief.h",
+ MAME_DIR .. "src/mame/video/thief.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "pacman")
+files {
+ MAME_DIR .. "src/mame/drivers/jrpacman.cpp",
+ MAME_DIR .. "src/mame/drivers/pacman.cpp",
+ MAME_DIR .. "src/mame/includes/pacman.h",
+ MAME_DIR .. "src/mame/video/pacman.cpp",
+ MAME_DIR .. "src/mame/machine/epos.cpp",
+ MAME_DIR .. "src/mame/machine/epos.h",
+ MAME_DIR .. "src/mame/machine/jumpshot.cpp",
+ MAME_DIR .. "src/mame/machine/jumpshot.h",
+ MAME_DIR .. "src/mame/machine/pacplus.cpp",
+ MAME_DIR .. "src/mame/machine/pacplus.h",
+ MAME_DIR .. "src/mame/drivers/pengo.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "pce")
+files {
+ MAME_DIR .. "src/mame/drivers/ggconnie.cpp",
+ MAME_DIR .. "src/mame/drivers/paranoia.cpp",
+ MAME_DIR .. "src/mame/drivers/tourvis.cpp",
+ MAME_DIR .. "src/mame/drivers/uapce.cpp",
+ MAME_DIR .. "src/mame/machine/pcecommn.cpp",
+ MAME_DIR .. "src/mame/machine/pcecommn.h",
+}
+
+createMAMEProjects(_target, _subtarget, "phoenix")
+files {
+ MAME_DIR .. "src/mame/drivers/naughtyb.cpp",
+ MAME_DIR .. "src/mame/includes/naughtyb.h",
+ MAME_DIR .. "src/mame/video/naughtyb.cpp",
+ MAME_DIR .. "src/mame/drivers/phoenix.cpp",
+ MAME_DIR .. "src/mame/includes/phoenix.h",
+ MAME_DIR .. "src/mame/audio/phoenix.cpp",
+ MAME_DIR .. "src/mame/video/phoenix.cpp",
+ MAME_DIR .. "src/mame/drivers/safarir.cpp",
+ MAME_DIR .. "src/mame/audio/pleiads.cpp",
+ MAME_DIR .. "src/mame/audio/pleiads.h",
+}
+
+createMAMEProjects(_target, _subtarget, "playmark")
+files {
+ MAME_DIR .. "src/mame/drivers/drtomy.cpp",
+ MAME_DIR .. "src/mame/drivers/playmark.cpp",
+ MAME_DIR .. "src/mame/includes/playmark.h",
+ MAME_DIR .. "src/mame/video/playmark.cpp",
+ MAME_DIR .. "src/mame/drivers/powerbal.cpp",
+ MAME_DIR .. "src/mame/drivers/sderby.cpp",
+ MAME_DIR .. "src/mame/includes/sderby.h",
+ MAME_DIR .. "src/mame/video/sderby.cpp",
+ MAME_DIR .. "src/mame/drivers/sslam.cpp",
+ MAME_DIR .. "src/mame/includes/sslam.h",
+ MAME_DIR .. "src/mame/video/sslam.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "promat")
+files {
+ MAME_DIR .. "src/mame/drivers/1945kiii.cpp",
+ MAME_DIR .. "src/mame/drivers/3x3puzzl.cpp",
+ MAME_DIR .. "src/mame/drivers/gstream.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "psikyo")
+files {
+ MAME_DIR .. "src/mame/drivers/psikyo.cpp",
+ MAME_DIR .. "src/mame/includes/psikyo.h",
+ MAME_DIR .. "src/mame/video/psikyo.cpp",
+ MAME_DIR .. "src/mame/drivers/psikyo4.cpp",
+ MAME_DIR .. "src/mame/includes/psikyo4.h",
+ MAME_DIR .. "src/mame/video/psikyo4.cpp",
+ MAME_DIR .. "src/mame/drivers/psikyosh.cpp",
+ MAME_DIR .. "src/mame/includes/psikyosh.h",
+ MAME_DIR .. "src/mame/video/psikyosh.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "ramtek")
+files {
+ MAME_DIR .. "src/mame/drivers/hitme.cpp",
+ MAME_DIR .. "src/mame/includes/hitme.h",
+ MAME_DIR .. "src/mame/audio/hitme.cpp",
+ MAME_DIR .. "src/mame/drivers/ramtek.cpp",
+ MAME_DIR .. "src/mame/drivers/starcrus.cpp",
+ MAME_DIR .. "src/mame/includes/starcrus.h",
+ MAME_DIR .. "src/mame/video/starcrus.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "rare")
+files {
+ MAME_DIR .. "src/mame/drivers/btoads.cpp",
+ MAME_DIR .. "src/mame/includes/btoads.h",
+ MAME_DIR .. "src/mame/video/btoads.cpp",
+ MAME_DIR .. "src/mame/drivers/kinst.cpp",
+ MAME_DIR .. "src/mame/drivers/xtheball.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "sanritsu")
+files {
+ MAME_DIR .. "src/mame/drivers/appoooh.cpp",
+ MAME_DIR .. "src/mame/includes/appoooh.h",
+ MAME_DIR .. "src/mame/video/appoooh.cpp",
+ MAME_DIR .. "src/mame/drivers/bankp.cpp",
+ MAME_DIR .. "src/mame/includes/bankp.h",
+ MAME_DIR .. "src/mame/video/bankp.cpp",
+ MAME_DIR .. "src/mame/drivers/chinsan.cpp",
+ MAME_DIR .. "src/mame/drivers/drmicro.cpp",
+ MAME_DIR .. "src/mame/includes/drmicro.h",
+ MAME_DIR .. "src/mame/video/drmicro.cpp",
+ MAME_DIR .. "src/mame/drivers/jantotsu.cpp",
+ MAME_DIR .. "src/mame/drivers/mayumi.cpp",
+ MAME_DIR .. "src/mame/drivers/mermaid.cpp",
+ MAME_DIR .. "src/mame/includes/mermaid.h",
+ MAME_DIR .. "src/mame/video/mermaid.cpp",
+ MAME_DIR .. "src/mame/drivers/mjkjidai.cpp",
+ MAME_DIR .. "src/mame/includes/mjkjidai.h",
+ MAME_DIR .. "src/mame/video/mjkjidai.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "sega")
+files {
+ MAME_DIR .. "src/mame/drivers/angelkds.cpp",
+ MAME_DIR .. "src/mame/includes/angelkds.h",
+ MAME_DIR .. "src/mame/video/angelkds.cpp",
+ MAME_DIR .. "src/mame/drivers/bingoc.cpp",
+ MAME_DIR .. "src/mame/drivers/blockade.cpp",
+ MAME_DIR .. "src/mame/drivers/calorie.cpp",
+ MAME_DIR .. "src/mame/drivers/chihiro.cpp",
+ MAME_DIR .. "src/mame/includes/xbox_nv2a.h",
+ MAME_DIR .. "src/mame/video/xbox_nv2a.cpp",
+ MAME_DIR .. "src/mame/drivers/coolridr.cpp",
+ MAME_DIR .. "src/mame/drivers/deniam.cpp",
+ MAME_DIR .. "src/mame/includes/deniam.h",
+ MAME_DIR .. "src/mame/video/deniam.cpp",
+ MAME_DIR .. "src/mame/drivers/dotrikun.cpp",
+ MAME_DIR .. "src/mame/drivers/gpworld.cpp",
+ MAME_DIR .. "src/mame/drivers/hikaru.cpp",
+ MAME_DIR .. "src/mame/drivers/hshavoc.cpp",
+ MAME_DIR .. "src/mame/drivers/kopunch.cpp",
+ MAME_DIR .. "src/mame/includes/kopunch.h",
+ MAME_DIR .. "src/mame/video/kopunch.cpp",
+ MAME_DIR .. "src/mame/drivers/lindbergh.cpp",
+ MAME_DIR .. "src/mame/machine/segabb.cpp",
+ MAME_DIR .. "src/mame/machine/segabb.h",
+ MAME_DIR .. "src/mame/machine/megadriv.cpp",
+ MAME_DIR .. "src/mame/includes/megadriv.h",
+ MAME_DIR .. "src/mame/drivers/megadrvb.cpp",
+ MAME_DIR .. "src/mame/includes/megadrvb.h",
+ MAME_DIR .. "src/mame/drivers/megaplay.cpp",
+ MAME_DIR .. "src/mame/drivers/megatech.cpp",
+ MAME_DIR .. "src/mame/drivers/model1.cpp",
+ MAME_DIR .. "src/mame/includes/model1.h",
+ MAME_DIR .. "src/mame/machine/model1.cpp",
+ MAME_DIR .. "src/mame/video/model1.cpp",
+ MAME_DIR .. "src/mame/machine/s32comm.cpp",
+ MAME_DIR .. "src/mame/machine/s32comm.h",
+ MAME_DIR .. "src/mame/machine/m1comm.cpp",
+ MAME_DIR .. "src/mame/machine/m1comm.h",
+ MAME_DIR .. "src/mame/machine/m2comm.cpp",
+ MAME_DIR .. "src/mame/machine/m2comm.h",
+ MAME_DIR .. "src/mame/audio/dsbz80.cpp",
+ MAME_DIR .. "src/mame/audio/dsbz80.h",
+ MAME_DIR .. "src/mame/drivers/model2.cpp",
+ MAME_DIR .. "src/mame/includes/model2.h",
+ MAME_DIR .. "src/mame/video/model2rd.hxx",
+ MAME_DIR .. "src/mame/video/model2.cpp",
+ MAME_DIR .. "src/mame/drivers/model3.cpp",
+ MAME_DIR .. "src/mame/includes/model3.h",
+ MAME_DIR .. "src/mame/video/model3.cpp",
+ MAME_DIR .. "src/mame/machine/model3.cpp",
+ MAME_DIR .. "src/mame/drivers/monacogp.cpp",
+ MAME_DIR .. "src/mame/drivers/naomi.cpp",
+ MAME_DIR .. "src/mame/includes/naomi.h",
+ MAME_DIR .. "src/mame/includes/dc.h",
+ MAME_DIR .. "src/mame/drivers/segasp.cpp",
+ MAME_DIR .. "src/mame/includes/segasp.h",
+ MAME_DIR .. "src/mame/machine/dc.cpp",
+ MAME_DIR .. "src/mame/video/powervr2.cpp",
+ MAME_DIR .. "src/mame/video/powervr2.h",
+ MAME_DIR .. "src/mame/machine/naomi.cpp",
+ MAME_DIR .. "src/mame/machine/naomig1.cpp",
+ MAME_DIR .. "src/mame/machine/naomig1.h",
+ MAME_DIR .. "src/mame/machine/naomibd.cpp",
+ MAME_DIR .. "src/mame/machine/naomibd.h",
+ MAME_DIR .. "src/mame/machine/naomirom.cpp",
+ MAME_DIR .. "src/mame/machine/naomirom.h",
+ MAME_DIR .. "src/mame/machine/naomigd.cpp",
+ MAME_DIR .. "src/mame/machine/naomigd.h",
+ MAME_DIR .. "src/mame/machine/naomim1.cpp",
+ MAME_DIR .. "src/mame/machine/naomim1.h",
+ MAME_DIR .. "src/mame/machine/naomim2.cpp",
+ MAME_DIR .. "src/mame/machine/naomim2.h",
+ MAME_DIR .. "src/mame/machine/naomim4.cpp",
+ MAME_DIR .. "src/mame/machine/naomim4.h",
+ MAME_DIR .. "src/mame/machine/m3comm.cpp",
+ MAME_DIR .. "src/mame/machine/m3comm.h",
+ MAME_DIR .. "src/mame/machine/315-5881_crypt.cpp",
+ MAME_DIR .. "src/mame/machine/315-5881_crypt.h",
+ MAME_DIR .. "src/mame/machine/awboard.cpp",
+ MAME_DIR .. "src/mame/machine/awboard.h",
+ MAME_DIR .. "src/mame/machine/mie.cpp",
+ MAME_DIR .. "src/mame/machine/mie.h",
+ MAME_DIR .. "src/mame/machine/maple-dc.cpp",
+ MAME_DIR .. "src/mame/machine/maple-dc.h",
+ MAME_DIR .. "src/mame/machine/mapledev.cpp",
+ MAME_DIR .. "src/mame/machine/mapledev.h",
+ MAME_DIR .. "src/mame/machine/dc-ctrl.cpp",
+ MAME_DIR .. "src/mame/machine/dc-ctrl.h",
+ MAME_DIR .. "src/mame/machine/jvs13551.cpp",
+ MAME_DIR .. "src/mame/machine/jvs13551.h",
+ MAME_DIR .. "src/mame/drivers/triforce.cpp",
+ MAME_DIR .. "src/mame/drivers/puckpkmn.cpp",
+ MAME_DIR .. "src/mame/drivers/segac2.cpp",
+ MAME_DIR .. "src/mame/drivers/segae.cpp",
+ MAME_DIR .. "src/mame/drivers/sms.cpp",
+ MAME_DIR .. "src/mame/includes/sms.h",
+ MAME_DIR .. "src/mame/machine/sms.cpp",
+ MAME_DIR .. "src/mame/drivers/sms_bootleg.cpp",
+ MAME_DIR .. "src/mame/drivers/shtzone.cpp",
+ MAME_DIR .. "src/mame/drivers/segacoin.cpp",
+ MAME_DIR .. "src/mame/drivers/segag80r.cpp",
+ MAME_DIR .. "src/mame/includes/segag80r.h",
+ MAME_DIR .. "src/mame/machine/segag80.cpp",
+ MAME_DIR .. "src/mame/machine/segag80.h",
+ MAME_DIR .. "src/mame/audio/segag80r.cpp",
+ MAME_DIR .. "src/mame/video/segag80r.cpp",
+ MAME_DIR .. "src/mame/drivers/segag80v.cpp",
+ MAME_DIR .. "src/mame/includes/segag80v.h",
+ MAME_DIR .. "src/mame/audio/segag80v.cpp",
+ MAME_DIR .. "src/mame/video/segag80v.cpp",
+ MAME_DIR .. "src/mame/drivers/segahang.cpp",
+ MAME_DIR .. "src/mame/includes/segahang.h",
+ MAME_DIR .. "src/mame/video/segahang.cpp",
+ MAME_DIR .. "src/mame/drivers/segajw.cpp",
+ MAME_DIR .. "src/mame/drivers/segald.cpp",
+ MAME_DIR .. "src/mame/drivers/segaorun.cpp",
+ MAME_DIR .. "src/mame/includes/segaorun.h",
+ MAME_DIR .. "src/mame/video/segaorun.cpp",
+ MAME_DIR .. "src/mame/drivers/segas16a.cpp",
+ MAME_DIR .. "src/mame/includes/segas16a.h",
+ MAME_DIR .. "src/mame/video/segas16a.cpp",
+ MAME_DIR .. "src/mame/drivers/segas16b.cpp",
+ MAME_DIR .. "src/mame/includes/segas16b.h",
+ MAME_DIR .. "src/mame/video/segas16b.cpp",
+ MAME_DIR .. "src/mame/drivers/segas18.cpp",
+ MAME_DIR .. "src/mame/includes/segas18.h",
+ MAME_DIR .. "src/mame/video/segas18.cpp",
+ MAME_DIR .. "src/mame/drivers/segas24.cpp",
+ MAME_DIR .. "src/mame/includes/segas24.h",
+ MAME_DIR .. "src/mame/video/segas24.cpp",
+ MAME_DIR .. "src/mame/drivers/segam1.cpp",
+ MAME_DIR .. "src/mame/drivers/segas32.cpp",
+ MAME_DIR .. "src/mame/includes/segas32.h",
+ MAME_DIR .. "src/mame/machine/segas32.cpp",
+ MAME_DIR .. "src/mame/video/segas32.cpp",
+ MAME_DIR .. "src/mame/drivers/segaufo.cpp",
+ MAME_DIR .. "src/mame/drivers/segaxbd.cpp",
+ MAME_DIR .. "src/mame/includes/segaxbd.h",
+ MAME_DIR .. "src/mame/video/segaxbd.cpp",
+ MAME_DIR .. "src/mame/drivers/segaybd.cpp",
+ MAME_DIR .. "src/mame/includes/segaybd.h",
+ MAME_DIR .. "src/mame/video/segaybd.cpp",
+ MAME_DIR .. "src/mame/includes/segaipt.h",
+ MAME_DIR .. "src/mame/drivers/sg1000a.cpp",
+ MAME_DIR .. "src/mame/drivers/stactics.cpp",
+ MAME_DIR .. "src/mame/includes/stactics.h",
+ MAME_DIR .. "src/mame/video/stactics.cpp",
+ MAME_DIR .. "src/mame/drivers/stv.cpp",
+ MAME_DIR .. "src/mame/includes/saturn.h",
+ MAME_DIR .. "src/mame/drivers/saturn.cpp",
+ MAME_DIR .. "src/mame/machine/saturn.cpp",
+ MAME_DIR .. "src/mame/includes/stv.h",
+ MAME_DIR .. "src/mame/machine/stvprot.cpp",
+ MAME_DIR .. "src/mame/machine/stvprot.h",
+ MAME_DIR .. "src/mame/machine/315-5838_317-0229_comp.cpp",
+ MAME_DIR .. "src/mame/machine/315-5838_317-0229_comp.h",
+ MAME_DIR .. "src/mame/drivers/suprloco.cpp",
+ MAME_DIR .. "src/mame/includes/suprloco.h",
+ MAME_DIR .. "src/mame/video/suprloco.cpp",
+ MAME_DIR .. "src/mame/drivers/system1.cpp",
+ MAME_DIR .. "src/mame/includes/system1.h",
+ MAME_DIR .. "src/mame/machine/segacrp2_device.cpp",
+ MAME_DIR .. "src/mame/machine/segacrp2_device.h",
+ MAME_DIR .. "src/mame/video/system1.cpp",
+ MAME_DIR .. "src/mame/drivers/system16.cpp",
+ MAME_DIR .. "src/mame/includes/system16.h",
+ MAME_DIR .. "src/mame/video/system16.cpp",
+ MAME_DIR .. "src/mame/drivers/timetrv.cpp",
+ MAME_DIR .. "src/mame/drivers/turbo.cpp",
+ MAME_DIR .. "src/mame/includes/turbo.h",
+ MAME_DIR .. "src/mame/audio/turbo.cpp",
+ MAME_DIR .. "src/mame/video/turbo.cpp",
+ MAME_DIR .. "src/mame/drivers/vicdual.cpp",
+ MAME_DIR .. "src/mame/includes/vicdual.h",
+ MAME_DIR .. "src/mame/audio/vicdual.cpp",
+ MAME_DIR .. "src/mame/audio/vicdual.h",
+ MAME_DIR .. "src/mame/audio/vicdual-97271p.cpp",
+ MAME_DIR .. "src/mame/audio/vicdual-97271p.h",
+ MAME_DIR .. "src/mame/video/vicdual.cpp",
+ MAME_DIR .. "src/mame/video/vicdual-97269pb.cpp",
+ MAME_DIR .. "src/mame/video/vicdual-97269pb.h",
+ MAME_DIR .. "src/mame/audio/carnival.cpp",
+ MAME_DIR .. "src/mame/audio/carnival.h",
+ MAME_DIR .. "src/mame/audio/depthch.cpp",
+ MAME_DIR .. "src/mame/audio/depthch.h",
+ MAME_DIR .. "src/mame/audio/invinco.cpp",
+ MAME_DIR .. "src/mame/audio/invinco.h",
+ MAME_DIR .. "src/mame/audio/pulsar.cpp",
+ MAME_DIR .. "src/mame/audio/pulsar.h",
+ MAME_DIR .. "src/mame/drivers/zaxxon.cpp",
+ MAME_DIR .. "src/mame/includes/zaxxon.h",
+ MAME_DIR .. "src/mame/audio/zaxxon.cpp",
+ MAME_DIR .. "src/mame/video/zaxxon.cpp",
+ MAME_DIR .. "src/mame/machine/315_5296.cpp",
+ MAME_DIR .. "src/mame/machine/315_5296.h",
+ MAME_DIR .. "src/mame/machine/fd1089.cpp",
+ MAME_DIR .. "src/mame/machine/fd1089.h",
+ MAME_DIR .. "src/mame/machine/fd1094.cpp",
+ MAME_DIR .. "src/mame/machine/fd1094.h",
+ MAME_DIR .. "src/mame/machine/fddebug.cpp",
+ MAME_DIR .. "src/mame/machine/fddebug.h",
+ MAME_DIR .. "src/mame/machine/mc8123.cpp",
+ MAME_DIR .. "src/mame/machine/mc8123.h",
+ MAME_DIR .. "src/mame/machine/segaic16.cpp",
+ MAME_DIR .. "src/mame/machine/segaic16.h",
+ MAME_DIR .. "src/mame/audio/segasnd.cpp",
+ MAME_DIR .. "src/mame/audio/segasnd.h",
+ MAME_DIR .. "src/mame/video/segaic16.cpp",
+ MAME_DIR .. "src/mame/video/segaic16.h",
+ MAME_DIR .. "src/mame/video/segaic16_road.cpp",
+ MAME_DIR .. "src/mame/video/segaic16_road.h",
+ MAME_DIR .. "src/mame/video/sega16sp.cpp",
+ MAME_DIR .. "src/mame/video/sega16sp.h",
+ MAME_DIR .. "src/mame/video/segaic24.cpp",
+ MAME_DIR .. "src/mame/video/segaic24.h",
+ MAME_DIR .. "src/mame/machine/gdrom.cpp",
+ MAME_DIR .. "src/mame/machine/gdrom.h",
+ MAME_DIR .. "src/mame/machine/xbox.cpp",
+ MAME_DIR .. "src/mame/machine/xbox_usb.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "seibu")
+files {
+ MAME_DIR .. "src/mame/drivers/airraid.cpp",
+ MAME_DIR .. "src/mame/drivers/bloodbro.cpp",
+ MAME_DIR .. "src/mame/includes/bloodbro.h",
+ MAME_DIR .. "src/mame/video/bloodbro.cpp",
+ MAME_DIR .. "src/mame/drivers/cabal.cpp",
+ MAME_DIR .. "src/mame/includes/cabal.h",
+ MAME_DIR .. "src/mame/video/cabal.cpp",
+ MAME_DIR .. "src/mame/drivers/darkmist.cpp",
+ MAME_DIR .. "src/mame/includes/darkmist.h",
+ MAME_DIR .. "src/mame/video/darkmist.cpp",
+ MAME_DIR .. "src/mame/drivers/dcon.cpp",
+ MAME_DIR .. "src/mame/includes/dcon.h",
+ MAME_DIR .. "src/mame/video/dcon.cpp",
+ MAME_DIR .. "src/mame/drivers/deadang.cpp",
+ MAME_DIR .. "src/mame/includes/deadang.h",
+ MAME_DIR .. "src/mame/video/deadang.cpp",
+ MAME_DIR .. "src/mame/drivers/dynduke.cpp",
+ MAME_DIR .. "src/mame/includes/dynduke.h",
+ MAME_DIR .. "src/mame/video/dynduke.cpp",
+ MAME_DIR .. "src/mame/drivers/feversoc.cpp",
+ MAME_DIR .. "src/mame/drivers/goal92.cpp",
+ MAME_DIR .. "src/mame/includes/goal92.h",
+ MAME_DIR .. "src/mame/video/goal92.cpp",
+ MAME_DIR .. "src/mame/drivers/goodejan.cpp",
+ MAME_DIR .. "src/mame/drivers/kncljoe.cpp",
+ MAME_DIR .. "src/mame/includes/kncljoe.h",
+ MAME_DIR .. "src/mame/video/kncljoe.cpp",
+ MAME_DIR .. "src/mame/drivers/legionna.cpp",
+ MAME_DIR .. "src/mame/includes/legionna.h",
+ MAME_DIR .. "src/mame/video/legionna.cpp",
+ MAME_DIR .. "src/mame/drivers/seicupbl.cpp",
+ MAME_DIR .. "src/mame/drivers/metlfrzr.cpp",
+ MAME_DIR .. "src/mame/drivers/mustache.cpp",
+ MAME_DIR .. "src/mame/includes/mustache.h",
+ MAME_DIR .. "src/mame/video/mustache.cpp",
+ MAME_DIR .. "src/mame/drivers/panicr.cpp",
+ MAME_DIR .. "src/mame/drivers/raiden.cpp",
+ MAME_DIR .. "src/mame/includes/raiden.h",
+ MAME_DIR .. "src/mame/video/raiden.cpp",
+ MAME_DIR .. "src/mame/drivers/raiden2.cpp",
+ MAME_DIR .. "src/mame/includes/raiden2.h",
+ MAME_DIR .. "src/mame/machine/r2crypt.cpp",
+ MAME_DIR .. "src/mame/machine/r2crypt.h",
+ MAME_DIR .. "src/mame/machine/seibucop/seibucop.cpp",
+ MAME_DIR .. "src/mame/machine/seibucop/seibucop_dma.hxx",
+ MAME_DIR .. "src/mame/machine/seibucop/seibucop_cmd.hxx",
+ MAME_DIR .. "src/mame/machine/seibucop/seibucop.h",
+ MAME_DIR .. "src/mame/drivers/r2dx_v33.cpp",
+ MAME_DIR .. "src/mame/drivers/seibuspi.cpp",
+ MAME_DIR .. "src/mame/includes/seibuspi.h",
+ MAME_DIR .. "src/mame/video/seibuspi.cpp",
+ MAME_DIR .. "src/mame/drivers/sengokmj.cpp",
+ MAME_DIR .. "src/mame/drivers/stfight.cpp",
+ MAME_DIR .. "src/mame/video/stfight_dev.cpp",
+ MAME_DIR .. "src/mame/video/stfight_dev.h",
+ MAME_DIR .. "src/mame/video/airraid_dev.cpp",
+ MAME_DIR .. "src/mame/video/airraid_dev.h",
+ MAME_DIR .. "src/mame/includes/stfight.h",
+ MAME_DIR .. "src/mame/machine/stfight.cpp",
+ MAME_DIR .. "src/mame/drivers/toki.cpp",
+ MAME_DIR .. "src/mame/includes/toki.h",
+ MAME_DIR .. "src/mame/video/toki.cpp",
+ MAME_DIR .. "src/mame/drivers/wiz.cpp",
+ MAME_DIR .. "src/mame/includes/wiz.h",
+ MAME_DIR .. "src/mame/video/wiz.cpp",
+ MAME_DIR .. "src/mame/machine/seicop.cpp",
+ MAME_DIR .. "src/mame/machine/seicop.h",
+ MAME_DIR .. "src/mame/machine/seibuspi.cpp",
+ MAME_DIR .. "src/mame/machine/seibuspi.h",
+ MAME_DIR .. "src/mame/audio/seibu.cpp",
+ MAME_DIR .. "src/mame/audio/seibu.h",
+ MAME_DIR .. "src/mame/audio/t5182.cpp",
+ MAME_DIR .. "src/mame/audio/t5182.h",
+ MAME_DIR .. "src/mame/video/seibu_crtc.cpp",
+ MAME_DIR .. "src/mame/video/seibu_crtc.h",
+}
+
+createMAMEProjects(_target, _subtarget, "seta")
+files {
+ MAME_DIR .. "src/mame/drivers/aleck64.cpp",
+ MAME_DIR .. "src/mame/machine/n64.cpp",
+ MAME_DIR .. "src/mame/video/n64.cpp",
+ MAME_DIR .. "src/mame/video/n64types.h",
+ MAME_DIR .. "src/mame/video/rdpfiltr.hxx",
+ MAME_DIR .. "src/mame/video/n64.h",
+ MAME_DIR .. "src/mame/video/rdpblend.cpp",
+ MAME_DIR .. "src/mame/video/rdpblend.h",
+ MAME_DIR .. "src/mame/video/rdptpipe.cpp",
+ MAME_DIR .. "src/mame/video/rdptpipe.h",
+ MAME_DIR .. "src/mame/video/pin64.cpp",
+ MAME_DIR .. "src/mame/video/pin64.h",
+ MAME_DIR .. "src/mame/drivers/hanaawas.cpp",
+ MAME_DIR .. "src/mame/includes/hanaawas.h",
+ MAME_DIR .. "src/mame/video/hanaawas.cpp",
+ MAME_DIR .. "src/mame/drivers/jclub2.cpp",
+ MAME_DIR .. "src/mame/drivers/macs.cpp",
+ MAME_DIR .. "src/mame/drivers/seta.cpp",
+ MAME_DIR .. "src/mame/includes/seta.h",
+ MAME_DIR .. "src/mame/video/seta.cpp",
+ MAME_DIR .. "src/mame/drivers/seta2.cpp",
+ MAME_DIR .. "src/mame/includes/seta2.h",
+ MAME_DIR .. "src/mame/video/seta2.cpp",
+ MAME_DIR .. "src/mame/drivers/speedatk.cpp",
+ MAME_DIR .. "src/mame/includes/speedatk.h",
+ MAME_DIR .. "src/mame/video/speedatk.cpp",
+ MAME_DIR .. "src/mame/drivers/speglsht.cpp",
+ MAME_DIR .. "src/mame/drivers/srmp2.cpp",
+ MAME_DIR .. "src/mame/includes/srmp2.h",
+ MAME_DIR .. "src/mame/video/srmp2.cpp",
+ MAME_DIR .. "src/mame/drivers/srmp5.cpp",
+ MAME_DIR .. "src/mame/drivers/srmp6.cpp",
+ MAME_DIR .. "src/mame/drivers/ssv.cpp",
+ MAME_DIR .. "src/mame/includes/ssv.h",
+ MAME_DIR .. "src/mame/video/ssv.cpp",
+ MAME_DIR .. "src/mame/video/st0020.cpp",
+ MAME_DIR .. "src/mame/video/st0020.h",
+ MAME_DIR .. "src/mame/machine/st0016.cpp",
+ MAME_DIR .. "src/mame/machine/st0016.h",
+ MAME_DIR .. "src/mame/drivers/simple_st0016.cpp",
+ MAME_DIR .. "src/mame/includes/simple_st0016.h",
+ MAME_DIR .. "src/mame/video/seta001.cpp",
+ MAME_DIR .. "src/mame/video/seta001.h",
+ MAME_DIR .. "src/mame/drivers/thedealr.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "sigma")
+files {
+ MAME_DIR .. "src/mame/drivers/nyny.cpp",
+ MAME_DIR .. "src/mame/drivers/r2dtank.cpp",
+ MAME_DIR .. "src/mame/drivers/sigmab52.cpp",
+ MAME_DIR .. "src/mame/drivers/sigmab98.cpp",
+ MAME_DIR .. "src/mame/drivers/spiders.cpp",
+ MAME_DIR .. "src/mame/includes/spiders.h",
+ MAME_DIR .. "src/mame/audio/spiders.cpp",
+ MAME_DIR .. "src/mame/drivers/sub.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "snk")
+files {
+ MAME_DIR .. "src/mame/drivers/bbusters.cpp",
+ MAME_DIR .. "src/mame/includes/bbusters.h",
+ MAME_DIR .. "src/mame/video/bbusters.cpp",
+ MAME_DIR .. "src/mame/drivers/dmndrby.cpp",
+ MAME_DIR .. "src/mame/drivers/hng64.cpp",
+ MAME_DIR .. "src/mame/includes/hng64.h",
+ MAME_DIR .. "src/mame/video/hng64.cpp",
+ MAME_DIR .. "src/mame/audio/hng64.cpp",
+ MAME_DIR .. "src/mame/machine/hng64_net.cpp",
+ MAME_DIR .. "src/mame/machine/hng64_net.h",
+ MAME_DIR .. "src/mame/video/hng64_3d.hxx",
+ MAME_DIR .. "src/mame/video/hng64_sprite.hxx",
+ MAME_DIR .. "src/mame/drivers/lasso.cpp",
+ MAME_DIR .. "src/mame/includes/lasso.h",
+ MAME_DIR .. "src/mame/video/lasso.cpp",
+ MAME_DIR .. "src/mame/drivers/mainsnk.cpp",
+ MAME_DIR .. "src/mame/includes/mainsnk.h",
+ MAME_DIR .. "src/mame/video/mainsnk.cpp",
+ MAME_DIR .. "src/mame/drivers/munchmo.cpp",
+ MAME_DIR .. "src/mame/includes/munchmo.h",
+ MAME_DIR .. "src/mame/video/munchmo.cpp",
+ MAME_DIR .. "src/mame/drivers/prehisle.cpp",
+ MAME_DIR .. "src/mame/includes/prehisle.h",
+ MAME_DIR .. "src/mame/video/prehisle.cpp",
+ MAME_DIR .. "src/mame/drivers/snk6502.cpp",
+ MAME_DIR .. "src/mame/includes/snk6502.h",
+ MAME_DIR .. "src/mame/audio/snk6502.cpp",
+ MAME_DIR .. "src/mame/video/snk6502.cpp",
+ MAME_DIR .. "src/mame/drivers/snk.cpp",
+ MAME_DIR .. "src/mame/includes/snk.h",
+ MAME_DIR .. "src/mame/video/snk.cpp",
+ MAME_DIR .. "src/mame/drivers/snk68.cpp",
+ MAME_DIR .. "src/mame/includes/snk68.h",
+ MAME_DIR .. "src/mame/video/snk68.cpp",
+ MAME_DIR .. "src/mame/video/snk68_spr.cpp",
+
+}
+
+createMAMEProjects(_target, _subtarget, "sony")
+files {
+ MAME_DIR .. "src/mame/drivers/zn.cpp",
+ MAME_DIR .. "src/mame/machine/znmcu.cpp",
+ MAME_DIR .. "src/mame/machine/znmcu.h",
+ MAME_DIR .. "src/mame/machine/cat702.cpp",
+ MAME_DIR .. "src/mame/machine/cat702.h",
+}
+
+createMAMEProjects(_target, _subtarget, "stern")
+files {
+ MAME_DIR .. "src/mame/drivers/astinvad.cpp",
+ MAME_DIR .. "src/mame/drivers/berzerk.cpp",
+ MAME_DIR .. "src/mame/drivers/cliffhgr.cpp",
+ MAME_DIR .. "src/mame/audio/cliffhgr.cpp",
+ MAME_DIR .. "src/mame/audio/cliffhgr.h",
+ MAME_DIR .. "src/mame/drivers/mazerbla.cpp",
+ MAME_DIR .. "src/mame/drivers/supdrapo.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "subsino")
+files {
+ MAME_DIR .. "src/mame/drivers/lastfght.cpp",
+ MAME_DIR .. "src/mame/drivers/subsino.cpp",
+ MAME_DIR .. "src/mame/drivers/subsino2.cpp",
+ MAME_DIR .. "src/mame/machine/subsino.cpp",
+ MAME_DIR .. "src/mame/machine/subsino.h",
+}
+
+createMAMEProjects(_target, _subtarget, "suna")
+files {
+ MAME_DIR .. "src/mame/drivers/go2000.cpp",
+ MAME_DIR .. "src/mame/drivers/goindol.cpp",
+ MAME_DIR .. "src/mame/includes/goindol.h",
+ MAME_DIR .. "src/mame/video/goindol.cpp",
+ MAME_DIR .. "src/mame/drivers/suna8.cpp",
+ MAME_DIR .. "src/mame/includes/suna8.h",
+ MAME_DIR .. "src/mame/audio/suna8.cpp",
+ MAME_DIR .. "src/mame/video/suna8.cpp",
+ MAME_DIR .. "src/mame/drivers/suna16.cpp",
+ MAME_DIR .. "src/mame/includes/suna16.h",
+ MAME_DIR .. "src/mame/video/suna16.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "sunelect")
+files {
+ MAME_DIR .. "src/mame/drivers/arabian.cpp",
+ MAME_DIR .. "src/mame/includes/arabian.h",
+ MAME_DIR .. "src/mame/video/arabian.cpp",
+ MAME_DIR .. "src/mame/drivers/dai3wksi.cpp",
+ MAME_DIR .. "src/mame/drivers/ikki.cpp",
+ MAME_DIR .. "src/mame/includes/ikki.h",
+ MAME_DIR .. "src/mame/video/ikki.cpp",
+ MAME_DIR .. "src/mame/drivers/kangaroo.cpp",
+ MAME_DIR .. "src/mame/includes/kangaroo.h",
+ MAME_DIR .. "src/mame/video/kangaroo.cpp",
+ MAME_DIR .. "src/mame/drivers/markham.cpp",
+ MAME_DIR .. "src/mame/includes/markham.h",
+ MAME_DIR .. "src/mame/video/markham.cpp",
+ MAME_DIR .. "src/mame/drivers/route16.cpp",
+ MAME_DIR .. "src/mame/includes/route16.h",
+ MAME_DIR .. "src/mame/video/route16.cpp",
+ MAME_DIR .. "src/mame/drivers/shanghai.cpp",
+ MAME_DIR .. "src/mame/drivers/shangha3.cpp",
+ MAME_DIR .. "src/mame/includes/shangha3.h",
+ MAME_DIR .. "src/mame/video/shangha3.cpp",
+ MAME_DIR .. "src/mame/drivers/strnskil.cpp",
+ MAME_DIR .. "src/mame/includes/strnskil.h",
+ MAME_DIR .. "src/mame/video/strnskil.cpp",
+ MAME_DIR .. "src/mame/drivers/tonton.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "taito")
+files {
+ MAME_DIR .. "src/mame/drivers/2mindril.cpp",
+ MAME_DIR .. "src/mame/drivers/40love.cpp",
+ MAME_DIR .. "src/mame/includes/40love.h",
+ MAME_DIR .. "src/mame/video/40love.cpp",
+ MAME_DIR .. "src/mame/drivers/arkanoid.cpp",
+ MAME_DIR .. "src/mame/includes/arkanoid.h",
+ MAME_DIR .. "src/mame/machine/arkanoid.cpp",
+ MAME_DIR .. "src/mame/video/arkanoid.cpp",
+ MAME_DIR .. "src/mame/drivers/ashnojoe.cpp",
+ MAME_DIR .. "src/mame/includes/ashnojoe.h",
+ MAME_DIR .. "src/mame/video/ashnojoe.cpp",
+ MAME_DIR .. "src/mame/drivers/asuka.cpp",
+ MAME_DIR .. "src/mame/includes/asuka.h",
+ MAME_DIR .. "src/mame/machine/bonzeadv.cpp",
+ MAME_DIR .. "src/mame/machine/bonzeadv.h",
+ MAME_DIR .. "src/mame/video/asuka.cpp",
+ MAME_DIR .. "src/mame/drivers/bigevglf.cpp",
+ MAME_DIR .. "src/mame/includes/bigevglf.h",
+ MAME_DIR .. "src/mame/video/bigevglf.cpp",
+ MAME_DIR .. "src/mame/drivers/bking.cpp",
+ MAME_DIR .. "src/mame/includes/bking.h",
+ MAME_DIR .. "src/mame/video/bking.cpp",
+ MAME_DIR .. "src/mame/drivers/bublbobl.cpp",
+ MAME_DIR .. "src/mame/includes/bublbobl.h",
+ MAME_DIR .. "src/mame/machine/bublbobl.cpp",
+ MAME_DIR .. "src/mame/video/bublbobl.cpp",
+ MAME_DIR .. "src/mame/drivers/buggychl.cpp",
+ MAME_DIR .. "src/mame/includes/buggychl.h",
+ MAME_DIR .. "src/mame/machine/taito68705interface.cpp",
+ MAME_DIR .. "src/mame/machine/taito68705interface.h",
+ MAME_DIR .. "src/mame/video/buggychl.cpp",
+ MAME_DIR .. "src/mame/drivers/capr1.cpp",
+ MAME_DIR .. "src/mame/drivers/caprcyc.cpp",
+ MAME_DIR .. "src/mame/drivers/cchance.cpp",
+ MAME_DIR .. "src/mame/drivers/chaknpop.cpp",
+ MAME_DIR .. "src/mame/includes/chaknpop.h",
+ MAME_DIR .. "src/mame/machine/chaknpop.cpp",
+ MAME_DIR .. "src/mame/video/chaknpop.cpp",
+ MAME_DIR .. "src/mame/drivers/champbwl.cpp",
+ MAME_DIR .. "src/mame/drivers/changela.cpp",
+ MAME_DIR .. "src/mame/includes/changela.h",
+ MAME_DIR .. "src/mame/video/changela.cpp",
+ MAME_DIR .. "src/mame/drivers/crbaloon.cpp",
+ MAME_DIR .. "src/mame/includes/crbaloon.h",
+ MAME_DIR .. "src/mame/video/crbaloon.cpp",
+ MAME_DIR .. "src/mame/audio/crbaloon.cpp",
+ MAME_DIR .. "src/mame/drivers/cyclemb.cpp",
+ MAME_DIR .. "src/mame/drivers/darius.cpp",
+ MAME_DIR .. "src/mame/includes/darius.h",
+ MAME_DIR .. "src/mame/video/darius.cpp",
+ MAME_DIR .. "src/mame/drivers/exzisus.cpp",
+ MAME_DIR .. "src/mame/includes/exzisus.h",
+ MAME_DIR .. "src/mame/video/exzisus.cpp",
+ MAME_DIR .. "src/mame/drivers/fgoal.cpp",
+ MAME_DIR .. "src/mame/includes/fgoal.h",
+ MAME_DIR .. "src/mame/video/fgoal.cpp",
+ MAME_DIR .. "src/mame/drivers/flstory.cpp",
+ MAME_DIR .. "src/mame/includes/flstory.h",
+ MAME_DIR .. "src/mame/machine/flstory.cpp",
+ MAME_DIR .. "src/mame/video/flstory.cpp",
+ MAME_DIR .. "src/mame/drivers/galastrm.cpp",
+ MAME_DIR .. "src/mame/includes/galastrm.h",
+ MAME_DIR .. "src/mame/video/galastrm.cpp",
+ MAME_DIR .. "src/mame/drivers/gladiatr.cpp",
+ MAME_DIR .. "src/mame/includes/gladiatr.h",
+ MAME_DIR .. "src/mame/video/gladiatr.cpp",
+ MAME_DIR .. "src/mame/drivers/grchamp.cpp",
+ MAME_DIR .. "src/mame/includes/grchamp.h",
+ MAME_DIR .. "src/mame/audio/grchamp.cpp",
+ MAME_DIR .. "src/mame/video/grchamp.cpp",
+ MAME_DIR .. "src/mame/drivers/groundfx.cpp",
+ MAME_DIR .. "src/mame/includes/groundfx.h",
+ MAME_DIR .. "src/mame/video/groundfx.cpp",
+ MAME_DIR .. "src/mame/drivers/gsword.cpp",
+ MAME_DIR .. "src/mame/includes/gsword.h",
+ MAME_DIR .. "src/mame/machine/tait8741.cpp",
+ MAME_DIR .. "src/mame/machine/tait8741.h",
+ MAME_DIR .. "src/mame/video/gsword.cpp",
+ MAME_DIR .. "src/mame/drivers/gunbustr.cpp",
+ MAME_DIR .. "src/mame/includes/gunbustr.h",
+ MAME_DIR .. "src/mame/video/gunbustr.cpp",
+ MAME_DIR .. "src/mame/drivers/halleys.cpp",
+ MAME_DIR .. "src/mame/drivers/invqix.cpp",
+ MAME_DIR .. "src/mame/drivers/jollyjgr.cpp",
+ MAME_DIR .. "src/mame/drivers/ksayakyu.cpp",
+ MAME_DIR .. "src/mame/includes/ksayakyu.h",
+ MAME_DIR .. "src/mame/video/ksayakyu.cpp",
+ MAME_DIR .. "src/mame/drivers/lgp.cpp",
+ MAME_DIR .. "src/mame/drivers/lkage.cpp",
+ MAME_DIR .. "src/mame/includes/lkage.h",
+ MAME_DIR .. "src/mame/video/lkage.cpp",
+ MAME_DIR .. "src/mame/drivers/lsasquad.cpp",
+ MAME_DIR .. "src/mame/includes/lsasquad.h",
+ MAME_DIR .. "src/mame/machine/lsasquad.cpp",
+ MAME_DIR .. "src/mame/video/lsasquad.cpp",
+ MAME_DIR .. "src/mame/drivers/marinedt.cpp",
+ MAME_DIR .. "src/mame/drivers/mexico86.cpp",
+ MAME_DIR .. "src/mame/includes/mexico86.h",
+ MAME_DIR .. "src/mame/machine/mexico86.cpp",
+ MAME_DIR .. "src/mame/video/mexico86.cpp",
+ MAME_DIR .. "src/mame/drivers/minivadr.cpp",
+ MAME_DIR .. "src/mame/drivers/missb2.cpp",
+ MAME_DIR .. "src/mame/drivers/mlanding.cpp",
+ MAME_DIR .. "src/mame/drivers/msisaac.cpp",
+ MAME_DIR .. "src/mame/includes/msisaac.h",
+ MAME_DIR .. "src/mame/video/msisaac.cpp",
+ MAME_DIR .. "src/mame/drivers/ninjaw.cpp",
+ MAME_DIR .. "src/mame/includes/ninjaw.h",
+ MAME_DIR .. "src/mame/video/ninjaw.cpp",
+ MAME_DIR .. "src/mame/drivers/nycaptor.cpp",
+ MAME_DIR .. "src/mame/includes/nycaptor.h",
+ MAME_DIR .. "src/mame/video/nycaptor.cpp",
+ MAME_DIR .. "src/mame/drivers/opwolf.cpp",
+ MAME_DIR .. "src/mame/includes/opwolf.h",
+ MAME_DIR .. "src/mame/machine/opwolf.cpp",
+ MAME_DIR .. "src/mame/video/opwolf.cpp",
+ MAME_DIR .. "src/mame/drivers/othunder.cpp",
+ MAME_DIR .. "src/mame/includes/othunder.h",
+ MAME_DIR .. "src/mame/video/othunder.cpp",
+ MAME_DIR .. "src/mame/drivers/pitnrun.cpp",
+ MAME_DIR .. "src/mame/includes/pitnrun.h",
+ MAME_DIR .. "src/mame/machine/pitnrun.cpp",
+ MAME_DIR .. "src/mame/video/pitnrun.cpp",
+ MAME_DIR .. "src/mame/drivers/qix.cpp",
+ MAME_DIR .. "src/mame/includes/qix.h",
+ MAME_DIR .. "src/mame/machine/qix.cpp",
+ MAME_DIR .. "src/mame/audio/qix.cpp",
+ MAME_DIR .. "src/mame/video/qix.cpp",
+ MAME_DIR .. "src/mame/drivers/rbisland.cpp",
+ MAME_DIR .. "src/mame/includes/rbisland.h",
+ MAME_DIR .. "src/mame/machine/rbisland.cpp",
+ MAME_DIR .. "src/mame/video/rbisland.cpp",
+ MAME_DIR .. "src/mame/drivers/rastan.cpp",
+ MAME_DIR .. "src/mame/includes/rastan.h",
+ MAME_DIR .. "src/mame/video/rastan.cpp",
+ MAME_DIR .. "src/mame/drivers/retofinv.cpp",
+ MAME_DIR .. "src/mame/includes/retofinv.h",
+ MAME_DIR .. "src/mame/video/retofinv.cpp",
+ MAME_DIR .. "src/mame/drivers/rollrace.cpp",
+ MAME_DIR .. "src/mame/includes/rollrace.h",
+ MAME_DIR .. "src/mame/video/rollrace.cpp",
+ MAME_DIR .. "src/mame/drivers/sbowling.cpp",
+ MAME_DIR .. "src/mame/drivers/scyclone.cpp",
+ MAME_DIR .. "src/mame/drivers/slapshot.cpp",
+ MAME_DIR .. "src/mame/includes/slapshot.h",
+ MAME_DIR .. "src/mame/video/slapshot.cpp",
+ MAME_DIR .. "src/mame/drivers/ssrj.cpp",
+ MAME_DIR .. "src/mame/includes/ssrj.h",
+ MAME_DIR .. "src/mame/video/ssrj.cpp",
+ MAME_DIR .. "src/mame/drivers/superchs.cpp",
+ MAME_DIR .. "src/mame/includes/superchs.h",
+ MAME_DIR .. "src/mame/video/superchs.cpp",
+ MAME_DIR .. "src/mame/drivers/superqix.cpp",
+ MAME_DIR .. "src/mame/includes/superqix.h",
+ MAME_DIR .. "src/mame/video/superqix.cpp",
+ MAME_DIR .. "src/mame/drivers/taito_b.cpp",
+ MAME_DIR .. "src/mame/includes/taito_b.h",
+ MAME_DIR .. "src/mame/video/taito_b.cpp",
+ MAME_DIR .. "src/mame/includes/taitoipt.h",
+ MAME_DIR .. "src/mame/drivers/taito_f2.cpp",
+ MAME_DIR .. "src/mame/includes/taito_f2.h",
+ MAME_DIR .. "src/mame/video/taito_f2.cpp",
+ MAME_DIR .. "src/mame/drivers/taito_f3.cpp",
+ MAME_DIR .. "src/mame/includes/taito_f3.h",
+ MAME_DIR .. "src/mame/video/taito_f3.cpp",
+ MAME_DIR .. "src/mame/audio/taito_en.cpp",
+ MAME_DIR .. "src/mame/audio/taito_en.h",
+ MAME_DIR .. "src/mame/drivers/taito_h.cpp",
+ MAME_DIR .. "src/mame/includes/taito_h.h",
+ MAME_DIR .. "src/mame/video/taito_h.cpp",
+ MAME_DIR .. "src/mame/drivers/taito_l.cpp",
+ MAME_DIR .. "src/mame/includes/taito_l.h",
+ MAME_DIR .. "src/mame/video/taito_l.cpp",
+ MAME_DIR .. "src/mame/drivers/taito_x.cpp",
+ MAME_DIR .. "src/mame/includes/taito_x.h",
+ MAME_DIR .. "src/mame/machine/cchip.cpp",
+ MAME_DIR .. "src/mame/machine/cchip.h",
+ MAME_DIR .. "src/mame/drivers/taito_z.cpp",
+ MAME_DIR .. "src/mame/includes/taito_z.h",
+ MAME_DIR .. "src/mame/video/taito_z.cpp",
+ MAME_DIR .. "src/mame/drivers/taito_o.cpp",
+ MAME_DIR .. "src/mame/includes/taito_o.h",
+ MAME_DIR .. "src/mame/video/taito_o.cpp",
+ MAME_DIR .. "src/mame/drivers/taitoair.cpp",
+ MAME_DIR .. "src/mame/includes/taitoair.h",
+ MAME_DIR .. "src/mame/video/taitoair.cpp",
+ MAME_DIR .. "src/mame/drivers/taitogn.cpp",
+ MAME_DIR .. "src/mame/drivers/taitojc.cpp",
+ MAME_DIR .. "src/mame/includes/taitojc.h",
+ MAME_DIR .. "src/mame/video/taitojc.cpp",
+ MAME_DIR .. "src/mame/drivers/taitopjc.cpp",
+ MAME_DIR .. "src/mame/drivers/taitosj.cpp",
+ MAME_DIR .. "src/mame/includes/taitosj.h",
+ MAME_DIR .. "src/mame/machine/taitosj.cpp",
+ MAME_DIR .. "src/mame/video/taitosj.cpp",
+ MAME_DIR .. "src/mame/drivers/taitottl.cpp",
+ MAME_DIR .. "src/mame/drivers/taitotz.cpp",
+ MAME_DIR .. "src/mame/drivers/taitotx.cpp",
+ MAME_DIR .. "src/mame/drivers/taitowlf.cpp",
+ MAME_DIR .. "src/mame/drivers/tnzs.cpp",
+ MAME_DIR .. "src/mame/includes/tnzs.h",
+ MAME_DIR .. "src/mame/machine/tnzs.cpp",
+ MAME_DIR .. "src/mame/video/tnzs.cpp",
+ MAME_DIR .. "src/mame/drivers/topspeed.cpp",
+ MAME_DIR .. "src/mame/includes/topspeed.h",
+ MAME_DIR .. "src/mame/video/topspeed.cpp",
+ MAME_DIR .. "src/mame/drivers/tsamurai.cpp",
+ MAME_DIR .. "src/mame/includes/tsamurai.h",
+ MAME_DIR .. "src/mame/video/tsamurai.cpp",
+ MAME_DIR .. "src/mame/drivers/undrfire.cpp",
+ MAME_DIR .. "src/mame/includes/undrfire.h",
+ MAME_DIR .. "src/mame/video/undrfire.cpp",
+ MAME_DIR .. "src/mame/drivers/volfied.cpp",
+ MAME_DIR .. "src/mame/includes/volfied.h",
+ MAME_DIR .. "src/mame/machine/volfied.cpp",
+ MAME_DIR .. "src/mame/video/volfied.cpp",
+ MAME_DIR .. "src/mame/drivers/warriorb.cpp",
+ MAME_DIR .. "src/mame/includes/warriorb.h",
+ MAME_DIR .. "src/mame/video/warriorb.cpp",
+ MAME_DIR .. "src/mame/drivers/wgp.cpp",
+ MAME_DIR .. "src/mame/includes/wgp.h",
+ MAME_DIR .. "src/mame/video/wgp.cpp",
+ MAME_DIR .. "src/mame/drivers/wyvernf0.cpp",
+ MAME_DIR .. "src/mame/audio/taitosnd.cpp",
+ MAME_DIR .. "src/mame/audio/taitosnd.h",
+ MAME_DIR .. "src/mame/audio/taito_zm.cpp",
+ MAME_DIR .. "src/mame/audio/taito_zm.h",
+ MAME_DIR .. "src/mame/machine/taitoio.cpp",
+ MAME_DIR .. "src/mame/machine/taitoio.h",
+ MAME_DIR .. "src/mame/video/taito_helper.cpp",
+ MAME_DIR .. "src/mame/video/taito_helper.h",
+ MAME_DIR .. "src/mame/video/pc080sn.cpp",
+ MAME_DIR .. "src/mame/video/pc080sn.h",
+ MAME_DIR .. "src/mame/video/pc090oj.cpp",
+ MAME_DIR .. "src/mame/video/pc090oj.h",
+ MAME_DIR .. "src/mame/video/tc0080vco.cpp",
+ MAME_DIR .. "src/mame/video/tc0080vco.h",
+ MAME_DIR .. "src/mame/video/tc0100scn.cpp",
+ MAME_DIR .. "src/mame/video/tc0100scn.h",
+ MAME_DIR .. "src/mame/video/tc0150rod.cpp",
+ MAME_DIR .. "src/mame/video/tc0150rod.h",
+ MAME_DIR .. "src/mame/video/tc0280grd.cpp",
+ MAME_DIR .. "src/mame/video/tc0280grd.h",
+ MAME_DIR .. "src/mame/video/tc0360pri.cpp",
+ MAME_DIR .. "src/mame/video/tc0360pri.h",
+ MAME_DIR .. "src/mame/video/tc0480scp.cpp",
+ MAME_DIR .. "src/mame/video/tc0480scp.h",
+ MAME_DIR .. "src/mame/video/tc0110pcr.cpp",
+ MAME_DIR .. "src/mame/video/tc0110pcr.h",
+ MAME_DIR .. "src/mame/video/tc0180vcu.cpp",
+ MAME_DIR .. "src/mame/video/tc0180vcu.h",
+ MAME_DIR .. "src/mame/video/tc0780fpa.cpp",
+ MAME_DIR .. "src/mame/video/tc0780fpa.h",
+}
+
+createMAMEProjects(_target, _subtarget, "tatsumi")
+files {
+ MAME_DIR .. "src/mame/drivers/kingdrby.cpp",
+ MAME_DIR .. "src/mame/drivers/lockon.cpp",
+ MAME_DIR .. "src/mame/includes/lockon.h",
+ MAME_DIR .. "src/mame/video/lockon.cpp",
+ MAME_DIR .. "src/mame/drivers/tatsumi.cpp",
+ MAME_DIR .. "src/mame/includes/tatsumi.h",
+ MAME_DIR .. "src/mame/machine/tatsumi.cpp",
+ MAME_DIR .. "src/mame/video/tatsumi.cpp",
+ MAME_DIR .. "src/mame/drivers/tx1.cpp",
+ MAME_DIR .. "src/mame/includes/tx1.h",
+ MAME_DIR .. "src/mame/machine/tx1.cpp",
+ MAME_DIR .. "src/mame/audio/tx1.cpp",
+ MAME_DIR .. "src/mame/video/tx1.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "tch")
+files {
+ MAME_DIR .. "src/mame/drivers/kickgoal.cpp",
+ MAME_DIR .. "src/mame/includes/kickgoal.h",
+ MAME_DIR .. "src/mame/video/kickgoal.cpp",
+ MAME_DIR .. "src/mame/drivers/littlerb.cpp",
+ MAME_DIR .. "src/mame/drivers/rltennis.cpp",
+ MAME_DIR .. "src/mame/includes/rltennis.h",
+ MAME_DIR .. "src/mame/video/rltennis.cpp",
+ MAME_DIR .. "src/mame/drivers/speedspn.cpp",
+ MAME_DIR .. "src/mame/includes/speedspn.h",
+ MAME_DIR .. "src/mame/video/speedspn.cpp",
+ MAME_DIR .. "src/mame/drivers/wheelfir.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "tecfri")
+files {
+ MAME_DIR .. "src/mame/drivers/ambush.cpp",
+ MAME_DIR .. "src/mame/drivers/holeland.cpp",
+ MAME_DIR .. "src/mame/includes/holeland.h",
+ MAME_DIR .. "src/mame/video/holeland.cpp",
+ MAME_DIR .. "src/mame/drivers/sauro.cpp",
+ MAME_DIR .. "src/mame/includes/sauro.h",
+ MAME_DIR .. "src/mame/video/sauro.cpp",
+ MAME_DIR .. "src/mame/drivers/speedbal.cpp",
+ MAME_DIR .. "src/mame/includes/speedbal.h",
+ MAME_DIR .. "src/mame/video/speedbal.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "technos")
+files {
+ MAME_DIR .. "src/mame/drivers/battlane.cpp",
+ MAME_DIR .. "src/mame/includes/battlane.h",
+ MAME_DIR .. "src/mame/video/battlane.cpp",
+ MAME_DIR .. "src/mame/drivers/blockout.cpp",
+ MAME_DIR .. "src/mame/includes/blockout.h",
+ MAME_DIR .. "src/mame/video/blockout.cpp",
+ MAME_DIR .. "src/mame/drivers/bogeyman.cpp",
+ MAME_DIR .. "src/mame/includes/bogeyman.h",
+ MAME_DIR .. "src/mame/video/bogeyman.cpp",
+ MAME_DIR .. "src/mame/drivers/chinagat.cpp",
+ MAME_DIR .. "src/mame/drivers/ddragon.cpp",
+ MAME_DIR .. "src/mame/includes/ddragon.h",
+ MAME_DIR .. "src/mame/video/ddragon.cpp",
+ MAME_DIR .. "src/mame/drivers/ddragon3.cpp",
+ MAME_DIR .. "src/mame/includes/ddragon3.h",
+ MAME_DIR .. "src/mame/video/ddragon3.cpp",
+ MAME_DIR .. "src/mame/drivers/dogfgt.cpp",
+ MAME_DIR .. "src/mame/includes/dogfgt.h",
+ MAME_DIR .. "src/mame/video/dogfgt.cpp",
+ MAME_DIR .. "src/mame/drivers/matmania.cpp",
+ MAME_DIR .. "src/mame/includes/matmania.h",
+ MAME_DIR .. "src/mame/video/matmania.cpp",
+ MAME_DIR .. "src/mame/drivers/mystston.cpp",
+ MAME_DIR .. "src/mame/includes/mystston.h",
+ MAME_DIR .. "src/mame/video/mystston.cpp",
+ MAME_DIR .. "src/mame/drivers/renegade.cpp",
+ MAME_DIR .. "src/mame/includes/renegade.h",
+ MAME_DIR .. "src/mame/video/renegade.cpp",
+ MAME_DIR .. "src/mame/drivers/scregg.cpp",
+ MAME_DIR .. "src/mame/drivers/shadfrce.cpp",
+ MAME_DIR .. "src/mame/includes/shadfrce.h",
+ MAME_DIR .. "src/mame/video/shadfrce.cpp",
+ MAME_DIR .. "src/mame/drivers/spdodgeb.cpp",
+ MAME_DIR .. "src/mame/includes/spdodgeb.h",
+ MAME_DIR .. "src/mame/video/spdodgeb.cpp",
+ MAME_DIR .. "src/mame/drivers/ssozumo.cpp",
+ MAME_DIR .. "src/mame/includes/ssozumo.h",
+ MAME_DIR .. "src/mame/video/ssozumo.cpp",
+ MAME_DIR .. "src/mame/drivers/tagteam.cpp",
+ MAME_DIR .. "src/mame/includes/tagteam.h",
+ MAME_DIR .. "src/mame/video/tagteam.cpp",
+ MAME_DIR .. "src/mame/drivers/vball.cpp",
+ MAME_DIR .. "src/mame/includes/vball.h",
+ MAME_DIR .. "src/mame/video/vball.cpp",
+ MAME_DIR .. "src/mame/drivers/wwfsstar.cpp",
+ MAME_DIR .. "src/mame/includes/wwfsstar.h",
+ MAME_DIR .. "src/mame/video/wwfsstar.cpp",
+ MAME_DIR .. "src/mame/drivers/xain.cpp",
+ MAME_DIR .. "src/mame/includes/xain.h",
+ MAME_DIR .. "src/mame/video/xain.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "tehkan")
+files {
+ MAME_DIR .. "src/mame/video/tecmo_spr.cpp",
+ MAME_DIR .. "src/mame/video/tecmo_spr.h",
+ MAME_DIR .. "src/mame/video/tecmo_mix.cpp",
+ MAME_DIR .. "src/mame/video/tecmo_mix.h",
+ MAME_DIR .. "src/mame/drivers/bombjack.cpp",
+ MAME_DIR .. "src/mame/includes/bombjack.h",
+ MAME_DIR .. "src/mame/video/bombjack.cpp",
+ MAME_DIR .. "src/mame/drivers/gaiden.cpp",
+ MAME_DIR .. "src/mame/includes/gaiden.h",
+ MAME_DIR .. "src/mame/video/gaiden.cpp",
+ MAME_DIR .. "src/mame/drivers/lvcards.cpp",
+ MAME_DIR .. "src/mame/includes/lvcards.h",
+ MAME_DIR .. "src/mame/video/lvcards.cpp",
+ MAME_DIR .. "src/mame/drivers/pbaction.cpp",
+ MAME_DIR .. "src/mame/includes/pbaction.h",
+ MAME_DIR .. "src/mame/video/pbaction.cpp",
+ MAME_DIR .. "src/mame/drivers/senjyo.cpp",
+ MAME_DIR .. "src/mame/includes/senjyo.h",
+ MAME_DIR .. "src/mame/audio/senjyo.cpp",
+ MAME_DIR .. "src/mame/video/senjyo.cpp",
+ MAME_DIR .. "src/mame/drivers/solomon.cpp",
+ MAME_DIR .. "src/mame/includes/solomon.h",
+ MAME_DIR .. "src/mame/video/solomon.cpp",
+ MAME_DIR .. "src/mame/drivers/spbactn.cpp",
+ MAME_DIR .. "src/mame/includes/spbactn.h",
+ MAME_DIR .. "src/mame/video/spbactn.cpp",
+ MAME_DIR .. "src/mame/drivers/tbowl.cpp",
+ MAME_DIR .. "src/mame/includes/tbowl.h",
+ MAME_DIR .. "src/mame/video/tbowl.cpp",
+ MAME_DIR .. "src/mame/drivers/tecmo.cpp",
+ MAME_DIR .. "src/mame/includes/tecmo.h",
+ MAME_DIR .. "src/mame/video/tecmo.cpp",
+ MAME_DIR .. "src/mame/drivers/tecmo16.cpp",
+ MAME_DIR .. "src/mame/includes/tecmo16.h",
+ MAME_DIR .. "src/mame/video/tecmo16.cpp",
+ MAME_DIR .. "src/mame/drivers/tecmosys.cpp",
+ MAME_DIR .. "src/mame/includes/tecmosys.h",
+ MAME_DIR .. "src/mame/machine/tecmosys.cpp",
+ MAME_DIR .. "src/mame/video/tecmosys.cpp",
+ MAME_DIR .. "src/mame/drivers/tehkanwc.cpp",
+ MAME_DIR .. "src/mame/includes/tehkanwc.h",
+ MAME_DIR .. "src/mame/video/tehkanwc.cpp",
+ MAME_DIR .. "src/mame/drivers/wc90.cpp",
+ MAME_DIR .. "src/mame/includes/wc90.h",
+ MAME_DIR .. "src/mame/video/wc90.cpp",
+ MAME_DIR .. "src/mame/drivers/wc90b.cpp",
+ MAME_DIR .. "src/mame/includes/wc90b.h",
+ MAME_DIR .. "src/mame/video/wc90b.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "terminal")
+files {
+ MAME_DIR .. "src/mame/drivers/istrebiteli.cpp",
+ MAME_DIR .. "src/mame/drivers/tiamc1.cpp",
+ MAME_DIR .. "src/mame/includes/tiamc1.h",
+ MAME_DIR .. "src/mame/video/tiamc1.cpp",
+ MAME_DIR .. "src/mame/audio/tiamc1.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "thepit")
+files {
+ MAME_DIR .. "src/mame/drivers/thepit.cpp",
+ MAME_DIR .. "src/mame/includes/thepit.h",
+ MAME_DIR .. "src/mame/video/thepit.cpp",
+ MAME_DIR .. "src/mame/drivers/timelimt.cpp",
+ MAME_DIR .. "src/mame/includes/timelimt.h",
+ MAME_DIR .. "src/mame/video/timelimt.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "toaplan")
+files {
+ MAME_DIR .. "src/mame/drivers/mjsister.cpp",
+ MAME_DIR .. "src/mame/drivers/slapfght.cpp",
+ MAME_DIR .. "src/mame/includes/slapfght.h",
+ MAME_DIR .. "src/mame/machine/slapfght.cpp",
+ MAME_DIR .. "src/mame/video/slapfght.cpp",
+ MAME_DIR .. "src/mame/drivers/snowbros.cpp",
+ MAME_DIR .. "src/mame/includes/snowbros.h",
+ MAME_DIR .. "src/mame/video/snowbros.cpp",
+ MAME_DIR .. "src/mame/video/kan_pand.cpp",
+ MAME_DIR .. "src/mame/video/kan_pand.h",
+ MAME_DIR .. "src/mame/drivers/toaplan1.cpp",
+ MAME_DIR .. "src/mame/includes/toaplan1.h",
+ MAME_DIR .. "src/mame/machine/toaplan1.cpp",
+ MAME_DIR .. "src/mame/video/toaplan1.cpp",
+ MAME_DIR .. "src/mame/includes/toaplipt.h",
+ MAME_DIR .. "src/mame/drivers/toaplan2.cpp",
+ MAME_DIR .. "src/mame/includes/toaplan2.h",
+ MAME_DIR .. "src/mame/video/toaplan2.cpp",
+ MAME_DIR .. "src/mame/video/gp9001.cpp",
+ MAME_DIR .. "src/mame/video/gp9001.h",
+ MAME_DIR .. "src/mame/drivers/twincobr.cpp",
+ MAME_DIR .. "src/mame/includes/twincobr.h",
+ MAME_DIR .. "src/mame/machine/twincobr.cpp",
+ MAME_DIR .. "src/mame/video/twincobr.cpp",
+ MAME_DIR .. "src/mame/drivers/wardner.cpp",
+ MAME_DIR .. "src/mame/video/toaplan_scu.cpp",
+ MAME_DIR .. "src/mame/video/toaplan_scu.h",
+}
+
+createMAMEProjects(_target, _subtarget, "unico")
+files {
+ MAME_DIR .. "src/mame/drivers/drgnmst.cpp",
+ MAME_DIR .. "src/mame/includes/drgnmst.h",
+ MAME_DIR .. "src/mame/video/drgnmst.cpp",
+ MAME_DIR .. "src/mame/drivers/silkroad.cpp",
+ MAME_DIR .. "src/mame/includes/silkroad.h",
+ MAME_DIR .. "src/mame/video/silkroad.cpp",
+ MAME_DIR .. "src/mame/drivers/unico.cpp",
+ MAME_DIR .. "src/mame/includes/unico.h",
+ MAME_DIR .. "src/mame/video/unico.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "univers")
+files {
+ MAME_DIR .. "src/mame/drivers/cheekyms.cpp",
+ MAME_DIR .. "src/mame/includes/cheekyms.h",
+ MAME_DIR .. "src/mame/video/cheekyms.cpp",
+ MAME_DIR .. "src/mame/drivers/cosmic.cpp",
+ MAME_DIR .. "src/mame/includes/cosmic.h",
+ MAME_DIR .. "src/mame/video/cosmic.cpp",
+ MAME_DIR .. "src/mame/drivers/docastle.cpp",
+ MAME_DIR .. "src/mame/includes/docastle.h",
+ MAME_DIR .. "src/mame/machine/docastle.cpp",
+ MAME_DIR .. "src/mame/video/docastle.cpp",
+ MAME_DIR .. "src/mame/drivers/ladybug.cpp",
+ MAME_DIR .. "src/mame/includes/ladybug.h",
+ MAME_DIR .. "src/mame/video/ladybug.cpp",
+ MAME_DIR .. "src/mame/drivers/mrdo.cpp",
+ MAME_DIR .. "src/mame/includes/mrdo.h",
+ MAME_DIR .. "src/mame/video/mrdo.cpp",
+ MAME_DIR .. "src/mame/drivers/redclash.cpp",
+ MAME_DIR .. "src/mame/includes/redclash.h",
+ MAME_DIR .. "src/mame/video/redclash.cpp",
+ MAME_DIR .. "src/mame/drivers/superdq.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "upl")
+files {
+ MAME_DIR .. "src/mame/drivers/mouser.cpp",
+ MAME_DIR .. "src/mame/includes/mouser.h",
+ MAME_DIR .. "src/mame/video/mouser.cpp",
+ MAME_DIR .. "src/mame/drivers/ninjakd2.cpp",
+ MAME_DIR .. "src/mame/includes/ninjakd2.h",
+ MAME_DIR .. "src/mame/video/ninjakd2.cpp",
+ MAME_DIR .. "src/mame/drivers/nova2001.cpp",
+ MAME_DIR .. "src/mame/includes/nova2001.h",
+ MAME_DIR .. "src/mame/video/nova2001.cpp",
+ MAME_DIR .. "src/mame/drivers/xxmissio.cpp",
+ MAME_DIR .. "src/mame/includes/xxmissio.h",
+ MAME_DIR .. "src/mame/video/xxmissio.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "valadon")
+files {
+ MAME_DIR .. "src/mame/drivers/bagman.cpp",
+ MAME_DIR .. "src/mame/includes/bagman.h",
+ MAME_DIR .. "src/mame/machine/bagman.cpp",
+ MAME_DIR .. "src/mame/video/bagman.cpp",
+ MAME_DIR .. "src/mame/drivers/tankbust.cpp",
+ MAME_DIR .. "src/mame/includes/tankbust.h",
+ MAME_DIR .. "src/mame/video/tankbust.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "venture")
+files {
+ MAME_DIR .. "src/mame/drivers/looping.cpp",
+ MAME_DIR .. "src/mame/drivers/spcforce.cpp",
+ MAME_DIR .. "src/mame/includes/spcforce.h",
+ MAME_DIR .. "src/mame/video/spcforce.cpp",
+ MAME_DIR .. "src/mame/drivers/suprridr.cpp",
+ MAME_DIR .. "src/mame/includes/suprridr.h",
+ MAME_DIR .. "src/mame/video/suprridr.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "vsystem")
+files {
+ MAME_DIR .. "src/mame/machine/vs9209.cpp",
+ MAME_DIR .. "src/mame/machine/vs9209.h",
+ MAME_DIR .. "src/mame/video/vsystem_gga.cpp",
+ MAME_DIR .. "src/mame/video/vsystem_gga.h",
+ MAME_DIR .. "src/mame/video/vsystem_spr.cpp",
+ MAME_DIR .. "src/mame/video/vsystem_spr.h",
+ MAME_DIR .. "src/mame/video/vsystem_spr2.cpp",
+ MAME_DIR .. "src/mame/video/vsystem_spr2.h",
+ MAME_DIR .. "src/mame/drivers/aerofgt.cpp",
+ MAME_DIR .. "src/mame/includes/aerofgt.h",
+ MAME_DIR .. "src/mame/video/aerofgt.cpp",
+ MAME_DIR .. "src/mame/drivers/crshrace.cpp",
+ MAME_DIR .. "src/mame/includes/crshrace.h",
+ MAME_DIR .. "src/mame/video/crshrace.cpp",
+ MAME_DIR .. "src/mame/drivers/f1gp.cpp",
+ MAME_DIR .. "src/mame/includes/f1gp.h",
+ MAME_DIR .. "src/mame/video/f1gp.cpp",
+ MAME_DIR .. "src/mame/drivers/fromance.cpp",
+ MAME_DIR .. "src/mame/includes/fromance.h",
+ MAME_DIR .. "src/mame/video/fromance.cpp",
+ MAME_DIR .. "src/mame/drivers/fromanc2.cpp",
+ MAME_DIR .. "src/mame/includes/fromanc2.h",
+ MAME_DIR .. "src/mame/video/fromanc2.cpp",
+ MAME_DIR .. "src/mame/drivers/gstriker.cpp",
+ MAME_DIR .. "src/mame/includes/gstriker.h",
+ MAME_DIR .. "src/mame/video/gstriker.cpp",
+ MAME_DIR .. "src/mame/video/mb60553.cpp",
+ MAME_DIR .. "src/mame/video/mb60553.h",
+ MAME_DIR .. "src/mame/video/vs920a.cpp",
+ MAME_DIR .. "src/mame/video/vs920a.h",
+ MAME_DIR .. "src/mame/drivers/inufuku.cpp",
+ MAME_DIR .. "src/mame/includes/inufuku.h",
+ MAME_DIR .. "src/mame/video/inufuku.cpp",
+ MAME_DIR .. "src/mame/drivers/ojankohs.cpp",
+ MAME_DIR .. "src/mame/includes/ojankohs.h",
+ MAME_DIR .. "src/mame/video/ojankohs.cpp",
+ MAME_DIR .. "src/mame/drivers/pipedrm.cpp",
+ MAME_DIR .. "src/mame/drivers/rpunch.cpp",
+ MAME_DIR .. "src/mame/includes/rpunch.h",
+ MAME_DIR .. "src/mame/video/rpunch.cpp",
+ MAME_DIR .. "src/mame/drivers/suprslam.cpp",
+ MAME_DIR .. "src/mame/includes/suprslam.h",
+ MAME_DIR .. "src/mame/video/suprslam.cpp",
+ MAME_DIR .. "src/mame/drivers/tail2nos.cpp",
+ MAME_DIR .. "src/mame/includes/tail2nos.h",
+ MAME_DIR .. "src/mame/video/tail2nos.cpp",
+ MAME_DIR .. "src/mame/drivers/taotaido.cpp",
+ MAME_DIR .. "src/mame/includes/taotaido.h",
+ MAME_DIR .. "src/mame/video/taotaido.cpp",
+ MAME_DIR .. "src/mame/drivers/welltris.cpp",
+ MAME_DIR .. "src/mame/includes/welltris.h",
+ MAME_DIR .. "src/mame/video/welltris.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "wing")
+files {
+ MAME_DIR .. "src/mame/drivers/lucky74.cpp",
+ MAME_DIR .. "src/mame/includes/lucky74.h",
+ MAME_DIR .. "src/mame/video/lucky74.cpp",
+ MAME_DIR .. "src/mame/drivers/luckgrln.cpp",
+ MAME_DIR .. "src/mame/drivers/pinkiri8.cpp",
+ MAME_DIR .. "src/mame/drivers/slotcarn.cpp",
+ MAME_DIR .. "src/mame/drivers/superwng.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "yunsung")
+files {
+ MAME_DIR .. "src/mame/drivers/nmg5.cpp",
+ MAME_DIR .. "src/mame/drivers/paradise.cpp",
+ MAME_DIR .. "src/mame/includes/paradise.h",
+ MAME_DIR .. "src/mame/video/paradise.cpp",
+ MAME_DIR .. "src/mame/drivers/yunsung8.cpp",
+ MAME_DIR .. "src/mame/includes/yunsung8.h",
+ MAME_DIR .. "src/mame/video/yunsung8.cpp",
+ MAME_DIR .. "src/mame/drivers/yunsun16.cpp",
+ MAME_DIR .. "src/mame/includes/yunsun16.h",
+ MAME_DIR .. "src/mame/video/yunsun16.cpp",
+}
+
+createMAMEProjects(_target, _subtarget, "zaccaria")
+files {
+ MAME_DIR .. "src/mame/audio/zaccaria.cpp",
+ MAME_DIR .. "src/mame/audio/zaccaria.h",
+ MAME_DIR .. "src/mame/drivers/laserbat.cpp",
+ MAME_DIR .. "src/mame/includes/laserbat.h",
+ MAME_DIR .. "src/mame/video/laserbat.cpp",
+ MAME_DIR .. "src/mame/audio/laserbat.cpp",
+ MAME_DIR .. "src/mame/drivers/seabattl.cpp",
+ MAME_DIR .. "src/mame/drivers/zac2650.cpp",
+ MAME_DIR .. "src/mame/includes/zac2650.h",
+ MAME_DIR .. "src/mame/video/zac2650.cpp",
+ MAME_DIR .. "src/mame/drivers/zaccaria.cpp",
+ MAME_DIR .. "src/mame/includes/zaccaria.h",
+ MAME_DIR .. "src/mame/video/zaccaria.cpp",
+}
+
+--------------------------------------------------
+-- pinball drivers
+--------------------------------------------------
+
+createMAMEProjects(_target, _subtarget, "pinball")
+files {
+ MAME_DIR .. "src/mame/drivers/allied.cpp",
+ MAME_DIR .. "src/mame/drivers/alvg.cpp",
+ MAME_DIR .. "src/mame/drivers/atari_s1.cpp",
+ MAME_DIR .. "src/mame/drivers/atari_s2.cpp",
+ MAME_DIR .. "src/mame/drivers/barni.cpp",
+ MAME_DIR .. "src/mame/drivers/bingo.cpp",
+ MAME_DIR .. "src/mame/drivers/by17.cpp",
+ MAME_DIR .. "src/mame/drivers/by35.cpp",
+ MAME_DIR .. "src/mame/drivers/by6803.cpp",
+ MAME_DIR .. "src/mame/drivers/by68701.cpp",
+ MAME_DIR .. "src/mame/drivers/byvid.cpp",
+ MAME_DIR .. "src/mame/drivers/capcom.cpp",
+ MAME_DIR .. "src/mame/drivers/de_2.cpp",
+ MAME_DIR .. "src/mame/drivers/de_3.cpp",
+ MAME_DIR .. "src/mame/machine/decopincpu.cpp",
+ MAME_DIR .. "src/mame/machine/decopincpu.h",
+ MAME_DIR .. "src/mame/video/decodmd1.cpp",
+ MAME_DIR .. "src/mame/video/decodmd1.h",
+ MAME_DIR .. "src/mame/video/decodmd2.cpp",
+ MAME_DIR .. "src/mame/video/decodmd2.h",
+ MAME_DIR .. "src/mame/video/decodmd3.cpp",
+ MAME_DIR .. "src/mame/video/decodmd3.h",
+ MAME_DIR .. "src/mame/drivers/de_3b.cpp",
+ MAME_DIR .. "src/mame/drivers/flicker.cpp",
+ MAME_DIR .. "src/mame/drivers/g627.cpp",
+ MAME_DIR .. "src/mame/drivers/gp_1.cpp",
+ MAME_DIR .. "src/mame/machine/genpin.cpp",
+ MAME_DIR .. "src/mame/machine/genpin.h",
+ MAME_DIR .. "src/mame/drivers/gp_2.cpp",
+ MAME_DIR .. "src/mame/drivers/gts1.cpp",
+ MAME_DIR .. "src/mame/drivers/gts3.cpp",
+ MAME_DIR .. "src/mame/drivers/gts3a.cpp",
+ MAME_DIR .. "src/mame/drivers/gts80.cpp",
+ MAME_DIR .. "src/mame/drivers/gts80a.cpp",
+ MAME_DIR .. "src/mame/drivers/gts80b.cpp",
+ MAME_DIR .. "src/mame/drivers/hankin.cpp",
+ MAME_DIR .. "src/mame/drivers/icecold.cpp",
+ MAME_DIR .. "src/mame/drivers/idsa.cpp",
+ MAME_DIR .. "src/mame/drivers/inder.cpp",
+ MAME_DIR .. "src/mame/drivers/inderp.cpp",
+ MAME_DIR .. "src/mame/drivers/jeutel.cpp",
+ MAME_DIR .. "src/mame/drivers/joctronic.cpp",
+ MAME_DIR .. "src/mame/drivers/jp.cpp",
+ MAME_DIR .. "src/mame/drivers/jvh.cpp",
+ MAME_DIR .. "src/mame/drivers/kissproto.cpp",
+ MAME_DIR .. "src/mame/drivers/ltd.cpp",
+ MAME_DIR .. "src/mame/drivers/macp.cpp",
+ MAME_DIR .. "src/mame/drivers/micropin.cpp",
+ MAME_DIR .. "src/mame/drivers/mephistp.cpp",
+ MAME_DIR .. "src/mame/drivers/mrgame.cpp",
+ MAME_DIR .. "src/mame/drivers/nsm.cpp",
+ MAME_DIR .. "src/mame/drivers/peyper.cpp",
+ MAME_DIR .. "src/mame/drivers/play_1.cpp",
+ MAME_DIR .. "src/mame/drivers/play_2.cpp",
+ MAME_DIR .. "src/mame/drivers/play_3.cpp",
+ MAME_DIR .. "src/mame/drivers/rowamet.cpp",
+ MAME_DIR .. "src/mame/drivers/s11.cpp",
+ MAME_DIR .. "src/mame/includes/s11.h",
+ MAME_DIR .. "src/mame/drivers/s11a.cpp",
+ MAME_DIR .. "src/mame/includes/s11a.h",
+ MAME_DIR .. "src/mame/drivers/s11b.cpp",
+ MAME_DIR .. "src/mame/includes/s11b.h",
+ MAME_DIR .. "src/mame/drivers/s11c.cpp",
+ MAME_DIR .. "src/mame/includes/s11c.h",
+ MAME_DIR .. "src/mame/audio/s11c_bg.cpp",
+ MAME_DIR .. "src/mame/audio/s11c_bg.h",
+ MAME_DIR .. "src/mame/drivers/s3.cpp",
+ MAME_DIR .. "src/mame/drivers/s4.cpp",
+ MAME_DIR .. "src/mame/drivers/s6.cpp",
+ MAME_DIR .. "src/mame/drivers/s6a.cpp",
+ MAME_DIR .. "src/mame/drivers/s7.cpp",
+ MAME_DIR .. "src/mame/drivers/s8.cpp",
+ MAME_DIR .. "src/mame/drivers/s8a.cpp",
+ MAME_DIR .. "src/mame/drivers/s9.cpp",
+ MAME_DIR .. "src/mame/drivers/sam.cpp",
+ MAME_DIR .. "src/mame/drivers/sleic.cpp",
+ MAME_DIR .. "src/mame/drivers/spectra.cpp",
+ MAME_DIR .. "src/mame/drivers/spinb.cpp",
+ MAME_DIR .. "src/mame/drivers/st_mp100.cpp",
+ MAME_DIR .. "src/mame/drivers/st_mp200.cpp",
+ MAME_DIR .. "src/mame/drivers/stargame.cpp",
+ MAME_DIR .. "src/mame/drivers/supstarf.cpp",
+ MAME_DIR .. "src/mame/drivers/taito.cpp",
+ MAME_DIR .. "src/mame/drivers/techno.cpp",
+ MAME_DIR .. "src/mame/drivers/vd.cpp",
+ MAME_DIR .. "src/mame/drivers/whitestar.cpp",
+ MAME_DIR .. "src/mame/drivers/white_mod.cpp",
+ MAME_DIR .. "src/mame/drivers/wico.cpp",
+ MAME_DIR .. "src/mame/drivers/wpc_95.cpp",
+ MAME_DIR .. "src/mame/drivers/wpc_an.cpp",
+ MAME_DIR .. "src/mame/drivers/wpc_dcs.cpp",
+ MAME_DIR .. "src/mame/drivers/wpc_dot.cpp",
+ MAME_DIR .. "src/mame/includes/wpc_dot.h",
+ MAME_DIR .. "src/mame/drivers/wpc_flip1.cpp",
+ MAME_DIR .. "src/mame/includes/wpc_flip1.h",
+ MAME_DIR .. "src/mame/drivers/wpc_flip2.cpp",
+ MAME_DIR .. "src/mame/includes/wpc_flip2.h",
+ MAME_DIR .. "src/mame/drivers/wpc_s.cpp",
+ MAME_DIR .. "src/mame/machine/wpc.cpp",
+ MAME_DIR .. "src/mame/machine/wpc.h",
+ MAME_DIR .. "src/mame/audio/wpcsnd.cpp",
+ MAME_DIR .. "src/mame/audio/wpcsnd.h",
+ MAME_DIR .. "src/mame/video/wpc_dmd.cpp",
+ MAME_DIR .. "src/mame/video/wpc_dmd.h",
+ MAME_DIR .. "src/mame/machine/wpc_pic.cpp",
+ MAME_DIR .. "src/mame/machine/wpc_pic.h",
+ MAME_DIR .. "src/mame/machine/wpc_lamp.cpp",
+ MAME_DIR .. "src/mame/machine/wpc_lamp.h",
+ MAME_DIR .. "src/mame/machine/wpc_out.cpp",
+ MAME_DIR .. "src/mame/machine/wpc_out.h",
+ MAME_DIR .. "src/mame/machine/wpc_shift.cpp",
+ MAME_DIR .. "src/mame/machine/wpc_shift.h",
+ MAME_DIR .. "src/mame/drivers/zac_1.cpp",
+ MAME_DIR .. "src/mame/drivers/zac_2.cpp",
+ MAME_DIR .. "src/mame/drivers/zac_proto.cpp",
+}
+
+--------------------------------------------------
+-- remaining drivers
+--------------------------------------------------
+
+createMAMEProjects(_target, _subtarget, "misc")
+
+includedirs {
+ ext_includedir("jpeg"),
+}
+
+files {
+ MAME_DIR .. "src/mame/drivers/39in1.cpp",
+ MAME_DIR .. "src/mame/machine/pxa255.h",
+ MAME_DIR .. "src/mame/drivers/3do.cpp",
+ MAME_DIR .. "src/mame/includes/3do.h",
+ MAME_DIR .. "src/mame/machine/3do.cpp",
+ MAME_DIR .. "src/mame/drivers/4enraya.cpp",
+ MAME_DIR .. "src/mame/includes/4enraya.h",
+ MAME_DIR .. "src/mame/video/4enraya.cpp",
+ MAME_DIR .. "src/mame/drivers/4enlinea.cpp",
+ MAME_DIR .. "src/mame/drivers/5clown.cpp",
+ MAME_DIR .. "src/mame/drivers/a1supply.cpp",
+ MAME_DIR .. "src/mame/drivers/acefruit.cpp",
+ MAME_DIR .. "src/mame/drivers/aces1.cpp",
+ MAME_DIR .. "src/mame/drivers/acesp.cpp",
+ MAME_DIR .. "src/mame/drivers/adp.cpp",
+ MAME_DIR .. "src/mame/drivers/age_candy.cpp",
+ MAME_DIR .. "src/mame/drivers/alinvade.cpp",
+ MAME_DIR .. "src/mame/drivers/amaticmg.cpp",
+ MAME_DIR .. "src/mame/drivers/amerihok.cpp",
+ MAME_DIR .. "src/mame/drivers/ampoker2.cpp",
+ MAME_DIR .. "src/mame/includes/ampoker2.h",
+ MAME_DIR .. "src/mame/video/ampoker2.cpp",
+ MAME_DIR .. "src/mame/drivers/amspdwy.cpp",
+ MAME_DIR .. "src/mame/includes/amspdwy.h",
+ MAME_DIR .. "src/mame/video/amspdwy.cpp",
+ MAME_DIR .. "src/mame/drivers/amusco.cpp",
+ MAME_DIR .. "src/mame/drivers/arachnid.cpp",
+ MAME_DIR .. "src/mame/drivers/artmagic.cpp",
+ MAME_DIR .. "src/mame/includes/artmagic.h",
+ MAME_DIR .. "src/mame/video/artmagic.cpp",
+ MAME_DIR .. "src/mame/drivers/astrafr.cpp",
+ MAME_DIR .. "src/mame/drivers/astrcorp.cpp",
+ MAME_DIR .. "src/mame/drivers/astropc.cpp",
+ MAME_DIR .. "src/mame/drivers/atronic.cpp",
+ MAME_DIR .. "src/mame/drivers/attckufo.cpp",
+ MAME_DIR .. "src/mame/drivers/avt.cpp",
+ MAME_DIR .. "src/mame/drivers/aztarac.cpp",
+ MAME_DIR .. "src/mame/includes/aztarac.h",
+ MAME_DIR .. "src/mame/audio/aztarac.cpp",
+ MAME_DIR .. "src/mame/video/aztarac.cpp",
+ MAME_DIR .. "src/mame/drivers/bailey.cpp",
+ MAME_DIR .. "src/mame/drivers/beaminv.cpp",
+ MAME_DIR .. "src/mame/drivers/beezer.cpp",
+ MAME_DIR .. "src/mame/drivers/belatra.cpp",
+ MAME_DIR .. "src/mame/drivers/bgt.cpp",
+ MAME_DIR .. "src/mame/drivers/bingoman.cpp",
+ MAME_DIR .. "src/mame/drivers/bingor.cpp",
+ MAME_DIR .. "src/mame/drivers/blitz.cpp",
+ MAME_DIR .. "src/mame/drivers/blitz68k.cpp",
+ MAME_DIR .. "src/mame/drivers/buster.cpp",
+ MAME_DIR .. "src/mame/drivers/calomega.cpp",
+ MAME_DIR .. "src/mame/includes/calomega.h",
+ MAME_DIR .. "src/mame/video/calomega.cpp",
+ MAME_DIR .. "src/mame/drivers/cardline.cpp",
+ MAME_DIR .. "src/mame/drivers/carrera.cpp",
+ MAME_DIR .. "src/mame/drivers/castle.cpp",
+ MAME_DIR .. "src/mame/drivers/cave.cpp",
+ MAME_DIR .. "src/mame/includes/cave.h",
+ MAME_DIR .. "src/mame/video/cave.cpp",
+ MAME_DIR .. "src/mame/drivers/cavepc.cpp",
+ MAME_DIR .. "src/mame/drivers/cv1k.cpp",
+ MAME_DIR .. "src/mame/drivers/cb2001.cpp",
+ MAME_DIR .. "src/mame/drivers/cdi.cpp",
+ MAME_DIR .. "src/mame/includes/cdi.h",
+ MAME_DIR .. "src/mame/video/mcd212.cpp",
+ MAME_DIR .. "src/mame/video/mcd212.h",
+ MAME_DIR .. "src/mame/machine/cdi070.cpp",
+ MAME_DIR .. "src/mame/machine/cdi070.h",
+ MAME_DIR .. "src/mame/machine/cdislave.cpp",
+ MAME_DIR .. "src/mame/machine/cdislave.h",
+ MAME_DIR .. "src/mame/machine/cdicdic.cpp",
+ MAME_DIR .. "src/mame/machine/cdicdic.h",
+ MAME_DIR .. "src/mame/drivers/chance32.cpp",
+ MAME_DIR .. "src/mame/drivers/chexx.cpp",
+ MAME_DIR .. "src/mame/drivers/chicago.cpp",
+ MAME_DIR .. "src/mame/drivers/chsuper.cpp",
+ MAME_DIR .. "src/mame/drivers/clowndwn.cpp",
+ MAME_DIR .. "src/mame/drivers/clpoker.cpp",
+ MAME_DIR .. "src/mame/drivers/cocoloco.cpp",
+ MAME_DIR .. "src/mame/drivers/coinmstr.cpp",
+ MAME_DIR .. "src/mame/drivers/coinmvga.cpp",
+ MAME_DIR .. "src/mame/drivers/comebaby.cpp",
+ MAME_DIR .. "src/mame/drivers/cupidon.cpp",
+ MAME_DIR .. "src/mame/drivers/bntyhunt.cpp",
+ MAME_DIR .. "src/mame/drivers/coolpool.cpp",
+ MAME_DIR .. "src/mame/includes/coolpool.h",
+ MAME_DIR .. "src/mame/drivers/megaphx.cpp",
+ MAME_DIR .. "src/mame/machine/inder_sb.cpp",
+ MAME_DIR .. "src/mame/machine/inder_sb.h",
+ MAME_DIR .. "src/mame/machine/inder_vid.cpp",
+ MAME_DIR .. "src/mame/machine/inder_vid.h",
+ MAME_DIR .. "src/mame/drivers/corona.cpp",
+ MAME_DIR .. "src/mame/drivers/crystal.cpp",
+ MAME_DIR .. "src/mame/video/vrender0.cpp",
+ MAME_DIR .. "src/mame/video/vrender0.h",
+ MAME_DIR .. "src/mame/drivers/cubeqst.cpp",
+ MAME_DIR .. "src/mame/drivers/cybertnk.cpp",
+ MAME_DIR .. "src/mame/drivers/dcheese.cpp",
+ MAME_DIR .. "src/mame/includes/dcheese.h",
+ MAME_DIR .. "src/mame/video/dcheese.cpp",
+ MAME_DIR .. "src/mame/drivers/dfruit.cpp",
+ MAME_DIR .. "src/mame/drivers/dgpix.cpp",
+ MAME_DIR .. "src/mame/drivers/discoboy.cpp",
+ MAME_DIR .. "src/mame/drivers/dominob.cpp",
+ MAME_DIR .. "src/mame/drivers/dorachan.cpp",
+ MAME_DIR .. "src/mame/drivers/dreamwld.cpp",
+ MAME_DIR .. "src/mame/drivers/dribling.cpp",
+ MAME_DIR .. "src/mame/includes/dribling.h",
+ MAME_DIR .. "src/mame/video/dribling.cpp",
+ MAME_DIR .. "src/mame/drivers/dwarfd.cpp",
+ MAME_DIR .. "src/mame/drivers/dynadice.cpp",
+ MAME_DIR .. "src/mame/drivers/ecoinfr.cpp",
+ MAME_DIR .. "src/mame/drivers/ecoinf1.cpp",
+ MAME_DIR .. "src/mame/drivers/ecoinf2.cpp",
+ MAME_DIR .. "src/mame/drivers/ecoinf3.cpp",
+ MAME_DIR .. "src/mame/drivers/electra.cpp",
+ MAME_DIR .. "src/mame/drivers/epos.cpp",
+ MAME_DIR .. "src/mame/includes/epos.h",
+ MAME_DIR .. "src/mame/video/epos.cpp",
+ MAME_DIR .. "src/mame/drivers/esd16.cpp",
+ MAME_DIR .. "src/mame/includes/esd16.h",
+ MAME_DIR .. "src/mame/video/esd16.cpp",
+ MAME_DIR .. "src/mame/drivers/esh.cpp",
+ MAME_DIR .. "src/mame/drivers/esripsys.cpp",
+ MAME_DIR .. "src/mame/includes/esripsys.h",
+ MAME_DIR .. "src/mame/video/esripsys.cpp",
+ MAME_DIR .. "src/mame/drivers/ettrivia.cpp",
+ MAME_DIR .. "src/mame/drivers/extrema.cpp",
+ MAME_DIR .. "src/mame/drivers/fastinvaders.cpp",
+ MAME_DIR .. "src/mame/drivers/fireball.cpp",
+ MAME_DIR .. "src/mame/drivers/flipjack.cpp",
+ MAME_DIR .. "src/mame/drivers/flower.cpp",
+ MAME_DIR .. "src/mame/drivers/fortecar.cpp",
+ MAME_DIR .. "src/mame/drivers/fresh.cpp",
+ MAME_DIR .. "src/mame/drivers/freekick.cpp",
+ MAME_DIR .. "src/mame/includes/freekick.h",
+ MAME_DIR .. "src/mame/video/freekick.cpp",
+ MAME_DIR .. "src/mame/drivers/fungames.cpp",
+ MAME_DIR .. "src/mame/drivers/funkball.cpp",
+ MAME_DIR .. "src/mame/drivers/gambl186.cpp",
+ MAME_DIR .. "src/mame/drivers/galaxi.cpp",
+ MAME_DIR .. "src/mame/drivers/galgame.cpp",
+ MAME_DIR .. "src/mame/drivers/gamecstl.cpp",
+ MAME_DIR .. "src/mame/drivers/gammagic.cpp",
+ MAME_DIR .. "src/mame/drivers/gamtor.cpp",
+ MAME_DIR .. "src/mame/drivers/gei.cpp",
+ MAME_DIR .. "src/mame/drivers/globalfr.cpp",
+ MAME_DIR .. "src/mame/drivers/globalvr.cpp",
+ MAME_DIR .. "src/mame/drivers/gluck2.cpp",
+ MAME_DIR .. "src/mame/drivers/goldngam.cpp",
+ MAME_DIR .. "src/mame/drivers/goldnpkr.cpp",
+ MAME_DIR .. "src/mame/drivers/good.cpp",
+ MAME_DIR .. "src/mame/drivers/gotcha.cpp",
+ MAME_DIR .. "src/mame/includes/gotcha.h",
+ MAME_DIR .. "src/mame/video/gotcha.cpp",
+ MAME_DIR .. "src/mame/drivers/gumbo.cpp",
+ MAME_DIR .. "src/mame/includes/gumbo.h",
+ MAME_DIR .. "src/mame/video/gumbo.cpp",
+ MAME_DIR .. "src/mame/drivers/gunpey.cpp",
+ MAME_DIR .. "src/mame/drivers/hapyfish.cpp",
+ MAME_DIR .. "src/mame/drivers/hideseek.cpp",
+ MAME_DIR .. "src/mame/drivers/hazelgr.cpp",
+ MAME_DIR .. "src/mame/drivers/headonb.cpp",
+ MAME_DIR .. "src/mame/drivers/highvdeo.cpp",
+ MAME_DIR .. "src/mame/drivers/hitpoker.cpp",
+ MAME_DIR .. "src/mame/drivers/homedata.cpp",
+ MAME_DIR .. "src/mame/includes/homedata.h",
+ MAME_DIR .. "src/mame/video/homedata.cpp",
+ MAME_DIR .. "src/mame/drivers/hotblock.cpp",
+ MAME_DIR .. "src/mame/drivers/hotstuff.cpp",
+ MAME_DIR .. "src/mame/drivers/ichiban.cpp",
+ MAME_DIR .. "src/mame/drivers/imolagp.cpp",
+ MAME_DIR .. "src/mame/drivers/intrscti.cpp",
+ MAME_DIR .. "src/mame/drivers/istellar.cpp",
+ MAME_DIR .. "src/mame/drivers/itgambl2.cpp",
+ MAME_DIR .. "src/mame/drivers/itgambl3.cpp",
+ MAME_DIR .. "src/mame/drivers/itgamble.cpp",
+ MAME_DIR .. "src/mame/drivers/jackpool.cpp",
+ MAME_DIR .. "src/mame/drivers/jankenmn.cpp",
+ MAME_DIR .. "src/mame/drivers/jokrwild.cpp",
+ MAME_DIR .. "src/mame/drivers/joystand.cpp",
+ MAME_DIR .. "src/mame/drivers/jubilee.cpp",
+ MAME_DIR .. "src/mame/drivers/jungleyo.cpp",
+ MAME_DIR .. "src/mame/drivers/kas89.cpp",
+ MAME_DIR .. "src/mame/drivers/kingpin.cpp",
+ MAME_DIR .. "src/mame/drivers/kurukuru.cpp",
+ MAME_DIR .. "src/mame/drivers/kyugo.cpp",
+ MAME_DIR .. "src/mame/includes/kyugo.h",
+ MAME_DIR .. "src/mame/video/kyugo.cpp",
+ MAME_DIR .. "src/mame/drivers/ladyfrog.cpp",
+ MAME_DIR .. "src/mame/includes/ladyfrog.h",
+ MAME_DIR .. "src/mame/video/ladyfrog.cpp",
+ MAME_DIR .. "src/mame/drivers/laserbas.cpp",
+ MAME_DIR .. "src/mame/drivers/laz_awetoss.cpp",
+ MAME_DIR .. "src/mame/drivers/laz_aftrshok.cpp",
+ MAME_DIR .. "src/mame/drivers/laz_ribrac.cpp",
+ MAME_DIR .. "src/mame/drivers/lethalj.cpp",
+ MAME_DIR .. "src/mame/includes/lethalj.h",
+ MAME_DIR .. "src/mame/video/lethalj.cpp",
+ MAME_DIR .. "src/mame/drivers/limenko.cpp",
+ MAME_DIR .. "src/mame/drivers/ltcasino.cpp",
+ MAME_DIR .. "src/mame/drivers/magic10.cpp",
+ MAME_DIR .. "src/mame/drivers/magicard.cpp",
+ MAME_DIR .. "src/mame/drivers/magicfly.cpp",
+ MAME_DIR .. "src/mame/drivers/magictg.cpp",
+ MAME_DIR .. "src/mame/drivers/magtouch.cpp",
+ MAME_DIR .. "src/mame/drivers/majorpkr.cpp",
+ MAME_DIR .. "src/mame/drivers/malzak.cpp",
+ MAME_DIR .. "src/mame/includes/malzak.h",
+ MAME_DIR .. "src/mame/video/malzak.cpp",
+ MAME_DIR .. "src/mame/drivers/manohman.cpp",
+ MAME_DIR .. "src/mame/drivers/marywu.cpp",
+ MAME_DIR .. "src/mame/drivers/mcatadv.cpp",
+ MAME_DIR .. "src/mame/includes/mcatadv.h",
+ MAME_DIR .. "src/mame/video/mcatadv.cpp",
+ MAME_DIR .. "src/mame/drivers/mgavegas.cpp",
+ MAME_DIR .. "src/mame/drivers/meyc8080.cpp",
+ MAME_DIR .. "src/mame/drivers/meyc8088.cpp",
+ MAME_DIR .. "src/mame/drivers/micro3d.cpp",
+ MAME_DIR .. "src/mame/includes/micro3d.h",
+ MAME_DIR .. "src/mame/machine/micro3d.cpp",
+ MAME_DIR .. "src/mame/video/micro3d.cpp",
+ MAME_DIR .. "src/mame/audio/micro3d.cpp",
+ MAME_DIR .. "src/mame/drivers/midas.cpp",
+ MAME_DIR .. "src/mame/drivers/mil4000.cpp",
+ MAME_DIR .. "src/mame/drivers/miniboy7.cpp",
+ MAME_DIR .. "src/mame/drivers/mirax.cpp",
+ MAME_DIR .. "src/mame/drivers/mjsenpu.cpp",
+ MAME_DIR .. "src/mame/drivers/mole.cpp",
+ MAME_DIR .. "src/mame/drivers/mosaic.cpp",
+ MAME_DIR .. "src/mame/includes/mosaic.h",
+ MAME_DIR .. "src/mame/video/mosaic.cpp",
+ MAME_DIR .. "src/mame/drivers/mpu12wbk.cpp",
+ MAME_DIR .. "src/mame/drivers/multfish.cpp",
+ MAME_DIR .. "src/mame/includes/multfish.h",
+ MAME_DIR .. "src/mame/drivers/multfish_boot.cpp",
+ MAME_DIR .. "src/mame/drivers/murogem.cpp",
+ MAME_DIR .. "src/mame/drivers/murogmbl.cpp",
+ MAME_DIR .. "src/mame/drivers/neoprint.cpp",
+ MAME_DIR .. "src/mame/drivers/neptunp2.cpp",
+ MAME_DIR .. "src/mame/drivers/news.cpp",
+ MAME_DIR .. "src/mame/includes/news.h",
+ MAME_DIR .. "src/mame/video/news.cpp",
+ MAME_DIR .. "src/mame/drivers/nexus3d.cpp",
+ MAME_DIR .. "src/mame/drivers/nibble.cpp",
+ MAME_DIR .. "src/mame/drivers/norautp.cpp",
+ MAME_DIR .. "src/mame/includes/norautp.h",
+ MAME_DIR .. "src/mame/audio/norautp.cpp",
+ MAME_DIR .. "src/mame/drivers/nsmpoker.cpp",
+ MAME_DIR .. "src/mame/drivers/oneshot.cpp",
+ MAME_DIR .. "src/mame/includes/oneshot.h",
+ MAME_DIR .. "src/mame/video/oneshot.cpp",
+ MAME_DIR .. "src/mame/drivers/onetwo.cpp",
+ MAME_DIR .. "src/mame/drivers/othello.cpp",
+ MAME_DIR .. "src/mame/drivers/pachifev.cpp",
+ MAME_DIR .. "src/mame/drivers/pasha2.cpp",
+ MAME_DIR .. "src/mame/drivers/pass.cpp",
+ MAME_DIR .. "src/mame/includes/pass.h",
+ MAME_DIR .. "src/mame/video/pass.cpp",
+ MAME_DIR .. "src/mame/drivers/photon.cpp",
+ MAME_DIR .. "src/mame/drivers/piggypas.cpp",
+ MAME_DIR .. "src/mame/video/pk8000.cpp",
+ MAME_DIR .. "src/mame/drivers/photon2.cpp",
+ MAME_DIR .. "src/mame/drivers/photoply.cpp",
+ MAME_DIR .. "src/mame/drivers/pipeline.cpp",
+ MAME_DIR .. "src/mame/drivers/pkscram.cpp",
+ MAME_DIR .. "src/mame/drivers/pntnpuzl.cpp",
+ MAME_DIR .. "src/mame/drivers/policetr.cpp",
+ MAME_DIR .. "src/mame/includes/policetr.h",
+ MAME_DIR .. "src/mame/video/policetr.cpp",
+ MAME_DIR .. "src/mame/drivers/polyplay.cpp",
+ MAME_DIR .. "src/mame/includes/polyplay.h",
+ MAME_DIR .. "src/mame/audio/polyplay.cpp",
+ MAME_DIR .. "src/mame/video/polyplay.cpp",
+ MAME_DIR .. "src/mame/drivers/poker72.cpp",
+ MAME_DIR .. "src/mame/drivers/potgoldu.cpp",
+ MAME_DIR .. "src/mame/drivers/proconn.cpp",
+ MAME_DIR .. "src/mame/drivers/pse.cpp",
+ MAME_DIR .. "src/mame/drivers/quizo.cpp",
+ MAME_DIR .. "src/mame/drivers/quizpun2.cpp",
+ MAME_DIR .. "src/mame/audio/rax.cpp",
+ MAME_DIR .. "src/mame/audio/rax.h",
+ MAME_DIR .. "src/mame/drivers/rbmk.cpp",
+ MAME_DIR .. "src/mame/drivers/rcorsair.cpp",
+ MAME_DIR .. "src/mame/drivers/re900.cpp",
+ MAME_DIR .. "src/mame/drivers/rgum.cpp",
+ MAME_DIR .. "src/mame/drivers/roul.cpp",
+ MAME_DIR .. "src/mame/drivers/savquest.cpp",
+ MAME_DIR .. "src/mame/drivers/sanremo.cpp",
+ MAME_DIR .. "src/mame/drivers/sanremmg.cpp",
+ MAME_DIR .. "src/mame/drivers/sealy.cpp",
+ MAME_DIR .. "src/mame/drivers/scm_500.cpp",
+ MAME_DIR .. "src/mame/drivers/sfbonus.cpp",
+ MAME_DIR .. "src/mame/drivers/shangkid.cpp",
+ MAME_DIR .. "src/mame/includes/shangkid.h",
+ MAME_DIR .. "src/mame/video/shangkid.cpp",
+ MAME_DIR .. "src/mame/drivers/skeetsht.cpp",
+ MAME_DIR .. "src/mame/drivers/skimaxx.cpp",
+ MAME_DIR .. "src/mame/drivers/skyarmy.cpp",
+ MAME_DIR .. "src/mame/drivers/skylncr.cpp",
+ MAME_DIR .. "src/mame/drivers/sliver.cpp",
+ MAME_DIR .. "src/mame/drivers/smsmcorp.cpp",
+ MAME_DIR .. "src/mame/drivers/sothello.cpp",
+ MAME_DIR .. "src/mame/drivers/spool99.cpp",
+ MAME_DIR .. "src/mame/drivers/sprcros2.cpp",
+ MAME_DIR .. "src/mame/drivers/sshot.cpp",
+ MAME_DIR .. "src/mame/drivers/ssingles.cpp",
+ MAME_DIR .. "src/mame/drivers/sstrangr.cpp",
+ MAME_DIR .. "src/mame/drivers/statriv2.cpp",
+ MAME_DIR .. "src/mame/drivers/stellafr.cpp",
+ MAME_DIR .. "src/mame/drivers/stuntair.cpp",
+ MAME_DIR .. "src/mame/drivers/su2000.cpp",
+ MAME_DIR .. "src/mame/drivers/subhuntr.cpp",
+ MAME_DIR .. "src/mame/drivers/summit.cpp",
+ MAME_DIR .. "src/mame/drivers/sumt8035.cpp",
+ MAME_DIR .. "src/mame/drivers/supercrd.cpp",
+ MAME_DIR .. "src/mame/drivers/supertnk.cpp",
+ MAME_DIR .. "src/mame/drivers/tapatune.cpp",
+ MAME_DIR .. "src/mame/drivers/tattack.cpp",
+ MAME_DIR .. "src/mame/drivers/taxidriv.cpp",
+ MAME_DIR .. "src/mame/includes/taxidriv.h",
+ MAME_DIR .. "src/mame/video/taxidriv.cpp",
+ MAME_DIR .. "src/mame/drivers/tcl.cpp",
+ MAME_DIR .. "src/mame/drivers/thayers.cpp",
+ MAME_DIR .. "src/mame/drivers/thedeep.cpp",
+ MAME_DIR .. "src/mame/includes/thedeep.h",
+ MAME_DIR .. "src/mame/video/thedeep.cpp",
+ MAME_DIR .. "src/mame/drivers/tickee.cpp",
+ MAME_DIR .. "src/mame/drivers/tmspoker.cpp",
+ MAME_DIR .. "src/mame/drivers/truco.cpp",
+ MAME_DIR .. "src/mame/includes/truco.h",
+ MAME_DIR .. "src/mame/video/truco.cpp",
+ MAME_DIR .. "src/mame/drivers/trucocl.cpp",
+ MAME_DIR .. "src/mame/includes/trucocl.h",
+ MAME_DIR .. "src/mame/video/trucocl.cpp",
+ MAME_DIR .. "src/mame/drivers/trvmadns.cpp",
+ MAME_DIR .. "src/mame/drivers/trvquest.cpp",
+ MAME_DIR .. "src/mame/drivers/ttchamp.cpp",
+ MAME_DIR .. "src/mame/drivers/tugboat.cpp",
+ MAME_DIR .. "src/mame/drivers/ice_bozopail.cpp",
+ MAME_DIR .. "src/mame/drivers/ice_tbd.cpp",
+ MAME_DIR .. "src/mame/drivers/umipoker.cpp",
+ MAME_DIR .. "src/mame/drivers/unkhorse.cpp",
+ MAME_DIR .. "src/mame/drivers/usbilliards.cpp",
+ MAME_DIR .. "src/mame/drivers/usgames.cpp",
+ MAME_DIR .. "src/mame/includes/usgames.h",
+ MAME_DIR .. "src/mame/video/usgames.cpp",
+ MAME_DIR .. "src/mame/drivers/vamphalf.cpp",
+ MAME_DIR .. "src/mame/drivers/vcombat.cpp",
+ MAME_DIR .. "src/mame/drivers/vectrex.cpp",
+ MAME_DIR .. "src/mame/includes/vectrex.h",
+ MAME_DIR .. "src/mame/video/vectrex.cpp",
+ MAME_DIR .. "src/mame/machine/vectrex.cpp",
+ MAME_DIR .. "src/mame/drivers/vlc.cpp",
+ MAME_DIR .. "src/mame/drivers/voyager.cpp",
+ MAME_DIR .. "src/mame/drivers/vp101.cpp",
+ MAME_DIR .. "src/mame/drivers/vpoker.cpp",
+ MAME_DIR .. "src/mame/drivers/vroulet.cpp",
+ MAME_DIR .. "src/mame/drivers/wildpkr.cpp",
+ MAME_DIR .. "src/mame/drivers/wms.cpp",
+ MAME_DIR .. "src/mame/drivers/wacky_gator.cpp",
+ MAME_DIR .. "src/mame/drivers/xtom3d.cpp",
+ MAME_DIR .. "src/mame/drivers/xyonix.cpp",
+ MAME_DIR .. "src/mame/includes/xyonix.h",
+ MAME_DIR .. "src/mame/video/xyonix.cpp",
+}
+end
diff --git a/docs/release/scripts/target/mame/dummy.lua b/docs/release/scripts/target/mame/dummy.lua
new file mode 100644
index 00000000000..ec5d366abc6
--- /dev/null
+++ b/docs/release/scripts/target/mame/dummy.lua
@@ -0,0 +1,46 @@
+-- license:BSD-3-Clause
+-- copyright-holders:MAMEdev Team
+
+---------------------------------------------------------------------------
+--
+-- dummy.lua
+--
+-- Dummy target makefile
+--
+---------------------------------------------------------------------------
+
+dofile("arcade.lua")
+dofile("mess.lua")
+
+function createProjects_mame_dummy(_target, _subtarget)
+ project ("mame_dummy")
+ targetsubdir(_target .."_" .. _subtarget)
+ kind (LIBTYPE)
+ uuid (os.uuid("drv-mame_dummy"))
+ addprojectflags()
+ precompiledheaders()
+
+ includedirs {
+ MAME_DIR .. "src/osd",
+ MAME_DIR .. "src/emu",
+ MAME_DIR .. "src/devices",
+ MAME_DIR .. "src/mame",
+ MAME_DIR .. "src/lib",
+ MAME_DIR .. "src/lib/util",
+ MAME_DIR .. "3rdparty",
+ GEN_DIR .. "mess/layout",
+ }
+
+files{
+ MAME_DIR .. "src/mame/drivers/coleco.cpp",
+ MAME_DIR .. "src/mame/includes/coleco.h",
+ MAME_DIR .. "src/mame/machine/coleco.cpp",
+ MAME_DIR .. "src/mame/machine/coleco.h",
+}
+end
+
+function linkProjects_mame_dummy(_target, _subtarget)
+ links {
+ "mame_dummy",
+ }
+end
diff --git a/docs/release/scripts/target/mame/mame.lua b/docs/release/scripts/target/mame/mame.lua
new file mode 100644
index 00000000000..d58bfab4595
--- /dev/null
+++ b/docs/release/scripts/target/mame/mame.lua
@@ -0,0 +1,26 @@
+-- license:BSD-3-Clause
+-- copyright-holders:MAMEdev Team
+
+---------------------------------------------------------------------------
+--
+-- mame.lua
+--
+-- MAME target makefile
+--
+---------------------------------------------------------------------------
+
+dofile("arcade.lua")
+dofile("mess.lua")
+dofile("virtual.lua")
+
+function createProjects_mame_mame(_target, _subtarget)
+ createProjects_mame_arcade(_target, _subtarget)
+ createProjects_mame_mess(_target, _subtarget)
+ createProjects_mame_virtual(_target, _subtarget)
+end
+
+function linkProjects_mame_mame(_target, _subtarget)
+ linkProjects_mame_arcade(_target, _subtarget)
+ linkProjects_mame_mess(_target, _subtarget)
+ linkProjects_mame_virtual(_target, _subtarget)
+end
diff --git a/docs/release/scripts/target/mame/mess.lua b/docs/release/scripts/target/mame/mess.lua
new file mode 100644
index 00000000000..0bcd50dcc58
--- /dev/null
+++ b/docs/release/scripts/target/mame/mess.lua
@@ -0,0 +1,3497 @@
+-- license:BSD-3-Clause
+-- copyright-holders:MAMEdev Team
+
+---------------------------------------------------------------------------
+--
+-- mess.lua
+--
+-- MESS target makefile
+--
+---------------------------------------------------------------------------
+
+--------------------------------------------------
+-- specify available CPU cores
+--------------------------------------------------
+
+CPUS["Z80"] = true
+CPUS["Z180"] = true
+CPUS["I8085"] = true
+CPUS["I8089"] = true
+CPUS["M6502"] = true
+CPUS["H6280"] = true
+CPUS["I86"] = true
+CPUS["I386"] = true
+CPUS["NEC"] = true
+CPUS["V30MZ"] = true
+CPUS["V60"] = true
+CPUS["MCS48"] = true
+CPUS["MCS51"] = true
+CPUS["MCS96"] = true
+CPUS["M6800"] = true
+CPUS["M6805"] = true
+CPUS["HD6309"] = true
+CPUS["M6809"] = true
+CPUS["KONAMI"] = true
+CPUS["M680X0"] = true
+CPUS["T11"] = true
+CPUS["S2650"] = true
+CPUS["TMS340X0"] = true
+CPUS["TMS9900"] = true
+CPUS["TMS9995"] = true
+CPUS["TMS9900L"] = true
+CPUS["Z8000"] = true
+CPUS["Z8001"] = true
+CPUS["TMS32010"] = true
+CPUS["TMS32025"] = true
+CPUS["TMS32031"] = true
+CPUS["TMS32051"] = true
+CPUS["TMS32082"] = true
+CPUS["TMS57002"] = true
+CPUS["CCPU"] = true
+CPUS["ADSP21XX"] = true
+CPUS["ASAP"] = true
+CPUS["AM29000"] = true
+CPUS["UPD7810"] = true
+CPUS["ARM"] = true
+CPUS["ARM7"] = true
+CPUS["JAGUAR"] = true
+CPUS["CUBEQCPU"] = true
+CPUS["ESRIP"] = true
+CPUS["MIPS"] = true
+CPUS["R3000"] = true
+CPUS["PSX"] = true
+CPUS["SH2"] = true
+CPUS["SH4"] = true
+CPUS["DSP16A"] = true
+CPUS["DSP32C"] = true
+CPUS["PIC16C5X"] = true
+CPUS["PIC16C62X"] = true
+CPUS["G65816"] = true
+CPUS["SPC700"] = true
+CPUS["E1"] = true
+CPUS["I860"] = true
+CPUS["I960"] = true
+CPUS["H8"] = true
+CPUS["V810"] = true
+CPUS["M37710"] = true
+CPUS["POWERPC"] = true
+CPUS["SE3208"] = true
+CPUS["MC68HC11"] = true
+CPUS["ADSP21062"] = true
+CPUS["DSP56156"] = true
+CPUS["RSP"] = true
+CPUS["ALPHA8201"] = true
+CPUS["COP400"] = true
+CPUS["TLCS90"] = true
+CPUS["TLCS900"] = true
+CPUS["MB88XX"] = true
+CPUS["MB86233"] = true
+CPUS["MB86235"] = true
+CPUS["SSP1601"] = true
+CPUS["APEXC"] = true
+CPUS["CP1610"] = true
+CPUS["F8"] = true
+CPUS["LH5801"] = true
+CPUS["PATINHOFEIO"] = true
+CPUS["PDP1"] = true
+CPUS["SATURN"] = true
+CPUS["SC61860"] = true
+CPUS["LR35902"] = true
+CPUS["TMS7000"] = true
+CPUS["SM8500"] = true
+CPUS["MINX"] = true
+CPUS["SSEM"] = true
+CPUS["AVR8"] = true
+CPUS["TMS1000"] = true
+CPUS["I4004"] = true
+CPUS["SUPERFX"] = true
+CPUS["Z8"] = true
+CPUS["I8008"] = true
+CPUS["SCMP"] = true
+--CPUS["MN10200"] = true
+CPUS["COSMAC"] = true
+CPUS["UNSP"] = true
+CPUS["HCD62121"] = true
+CPUS["PPS4"] = true
+CPUS["UPD7725"] = true
+CPUS["HD61700"] = true
+CPUS["LC8670"] = true
+CPUS["SCORE"] = true
+CPUS["ES5510"] = true
+CPUS["SCUDSP"] = true
+CPUS["IE15"] = true
+CPUS["8X300"] = true
+CPUS["ALTO2"] = true
+--CPUS["W65816"] = true
+CPUS["ARC"] = true
+CPUS["ARCOMPACT"] = true
+CPUS["AMIS2000"] = true
+CPUS["UCOM4"] = true
+CPUS["HMCS40"] = true
+CPUS["E0C6200"] = true
+CPUS["MELPS4"] = true
+CPUS["HPHYBRID"] = true
+CPUS["SM510"] = true
+CPUS["MB86901"] = true
+CPUS["NANOPROCESSOR"] = true
+CPUS["CLIPPER"] = true
+
+--------------------------------------------------
+-- specify available sound cores; some of these are
+-- only for MAME and so aren't included
+--------------------------------------------------
+
+--SOUNDS["SAMPLES"] = true
+SOUNDS["DAC"] = true
+SOUNDS["DMADAC"] = true
+SOUNDS["SPEAKER"] = true
+SOUNDS["BEEP"] = true
+SOUNDS["DISCRETE"] = true
+SOUNDS["AY8910"] = true
+SOUNDS["YM2151"] = true
+SOUNDS["YM2203"] = true
+SOUNDS["YM2413"] = true
+SOUNDS["YM2608"] = true
+SOUNDS["YM2610"] = true
+SOUNDS["YM2610B"] = true
+SOUNDS["YM2612"] = true
+--SOUNDS["YM3438"] = true
+SOUNDS["YM3812"] = true
+SOUNDS["YM3526"] = true
+SOUNDS["Y8950"] = true
+SOUNDS["YMF262"] = true
+--SOUNDS["YMF271"] = true
+SOUNDS["YMF278B"] = true
+--SOUNDS["YMZ280B"] = true
+SOUNDS["SN76477"] = true
+SOUNDS["SN76496"] = true
+SOUNDS["POKEY"] = true
+SOUNDS["TIA"] = true
+SOUNDS["NES_APU"] = true
+SOUNDS["PAULA_8364"] = true
+SOUNDS["ASTROCADE"] = true
+--SOUNDS["NAMCO"] = true
+--SOUNDS["NAMCO_15XX"] = true
+--SOUNDS["NAMCO_CUS30"] = true
+--SOUNDS["NAMCO_52XX"] = true
+--SOUNDS["NAMCO_63701X"] = true
+SOUNDS["T6W28"] = true
+--SOUNDS["SNKWAVE"] = true
+--SOUNDS["C140"] = true
+--SOUNDS["C352"] = true
+--SOUNDS["TMS36XX"] = true
+--SOUNDS["TMS3615"] = true
+SOUNDS["TMS5110"] = true
+SOUNDS["TMS5220"] = true
+SOUNDS["VLM5030"] = true
+--SOUNDS["ADPCM"] = true
+SOUNDS["MSM5205"] = true
+--SOUNDS["MSM5232"] = true
+SOUNDS["OKIM6258"] = true
+SOUNDS["OKIM6295"] = true
+--SOUNDS["OKIM6376"] = true
+--SOUNDS["OKIM9810"] = true
+SOUNDS["UPD7752"] = true
+SOUNDS["UPD7759"] = true
+SOUNDS["HC55516"] = true
+--SOUNDS["TC8830F"] = true
+--SOUNDS["K005289"] = true
+--SOUNDS["K007232"] = true
+SOUNDS["K051649"] = true
+--SOUNDS["K053260"] = true
+--SOUNDS["K054539"] = true
+--SOUNDS["K056800"] = true
+--SOUNDS["SEGAPCM"] = true
+--SOUNDS["MULTIPCM"] = true
+SOUNDS["SCSP"] = true
+SOUNDS["AICA"] = true
+SOUNDS["RF5C68"] = true
+--SOUNDS["RF5C400"] = true
+--SOUNDS["CEM3394"] = true
+SOUNDS["QSOUND"] = true
+--SOUNDS["QS1000"] = true
+SOUNDS["SAA1099"] = true
+--SOUNDS["IREMGA20"] = true
+SOUNDS["ES5503"] = true
+SOUNDS["ES5505"] = true
+SOUNDS["ES5506"] = true
+--SOUNDS["BSMT2000"] = true
+--SOUNDS["GAELCO_CG1V"] = true
+--SOUNDS["GAELCO_GAE1"] = true
+SOUNDS["C6280"] = true
+--SOUNDS["SP0250"] = true
+SOUNDS["SPU"] = true
+SOUNDS["CDDA"] = true
+--SOUNDS["ICS2115"] = true
+--SOUNDS["I5000_SND"] = true
+--SOUNDS["ST0016"] = true
+--SOUNDS["NILE"] = true
+--SOUNDS["X1_010"] = true
+--SOUNDS["VRENDER0"] = true
+SOUNDS["VOTRAX"] = true
+--SOUNDS["ES8712"] = true
+SOUNDS["CDP1869"] = true
+SOUNDS["S14001A"] = true
+SOUNDS["WAVE"] = true
+SOUNDS["SID6581"] = true
+SOUNDS["SID8580"] = true
+SOUNDS["SP0256"] = true
+--SOUNDS["DIGITALKER"] = true
+SOUNDS["CDP1863"] = true
+SOUNDS["CDP1864"] = true
+--SOUNDS["ZSG2"] = true
+SOUNDS["MOS656X"] = true
+SOUNDS["ASC"] = true
+--SOUNDS["MAS3507D"] = true
+SOUNDS["SOCRATES"] = true
+SOUNDS["TMC0285"] = true
+SOUNDS["TMS5200"] = true
+SOUNDS["CD2801"] = true
+SOUNDS["CD2802"] = true
+--SOUNDS["M58817"] = true
+SOUNDS["TMC0281"] = true
+SOUNDS["TMS5100"] = true
+SOUNDS["TMS5110A"] = true
+SOUNDS["LMC1992"] = true
+SOUNDS["AWACS"] = true
+--SOUNDS["YMZ770"] = true
+--SOUNDS["MPEG_AUDIO"] = true
+SOUNDS["T6721A"] = true
+SOUNDS["MOS7360"] = true
+SOUNDS["ESQPUMP"] = true
+SOUNDS["VRC6"] = true
+SOUNDS["UPD1771"] = true
+SOUNDS["GB_SOUND"] = true
+SOUNDS["PCD3311"] = true
+SOUNDS["VOLT_REG"] = true
+SOUNDS["MEA8000"] = true
+--SOUNDS["DAC76"] = true
+--SOUNDS["MM5837"] = true
+SOUNDS["DAVE"] = true
+
+--------------------------------------------------
+-- specify available video cores
+--------------------------------------------------
+
+VIDEOS["SEGA315_5124"] = true
+VIDEOS["SEGA315_5313"] = true
+--VIDEOS+= BUFSPRITE"] = true
+VIDEOS["CDP1861"] = true
+VIDEOS["CDP1862"] = true
+--VIDEOS["CESBLIT"] = true
+VIDEOS["CRT9007"] = true
+VIDEOS["CRT9021"] = true
+VIDEOS["CRT9212"] = true
+VIDEOS["CRTC_EGA"] = true
+VIDEOS["DL1416"] = true
+VIDEOS["DM9368"] = true
+VIDEOS["EF9340_1"] = true
+VIDEOS["EF9345"] = true
+VIDEOS["EF9364"] = true
+VIDEOS["EF9365"] = true
+--VIDEOS["EF9369"] = true
+VIDEOS["GF4500"] = true
+--VIDEOS+= EPIC12"] = true
+--VIDEOS+= FIXFREQ"] = true
+VIDEOS["HD44102"] = true
+VIDEOS["HD44352"] = true
+VIDEOS["HD44780"] = true
+VIDEOS["HD61830"] = true
+--VIDEOS+= HD63484"] = true
+VIDEOS["HD66421"] = true
+VIDEOS["HLCD0515"] = true
+VIDEOS["HLCD0538"] = true
+VIDEOS["HP1LL3"] = true
+VIDEOS["HUC6202"] = true
+VIDEOS["HUC6260"] = true
+VIDEOS["HUC6261"] = true
+VIDEOS["HUC6270"] = true
+VIDEOS["HUC6271"] = true
+VIDEOS["HUC6272"] = true
+VIDEOS["I8244"] = true
+VIDEOS["I82730"] = true
+VIDEOS["I8275"] = true
+--VIDEOS+= M50458"] = true
+--VIDEOS+= MB90082"] = true
+--VIDEOS+= MB_VCU"] = true
+VIDEOS["MC6845"] = true
+VIDEOS["MC6847"] = true
+VIDEOS["MSM6222B"] = true
+VIDEOS["MSM6255"] = true
+VIDEOS["MOS6566"] = true
+VIDEOS["PC_VGA"] = true
+VIDEOS["PCD8544"] = true
+--VIDEOS+= POLY"] = true
+VIDEOS["PSX"] = true
+VIDEOS["RAMDAC"] = true
+VIDEOS["S2636"] = true
+VIDEOS["SAA5050"] = true
+VIDEOS["SED1200"] = true
+VIDEOS["SED1330"] = true
+VIDEOS["SED1520"] = true
+VIDEOS["SNES_PPU"] = true
+VIDEOS["STVVDP"] = true
+VIDEOS["T6A04"] = true
+VIDEOS["TEA1002"] = true
+--VIDEOS+= TLC34076"] = true
+--VIDEOS+= TMS34061"] = true
+VIDEOS["TMS3556"] = true
+VIDEOS["TMS9927"] = true
+VIDEOS["TMS9928A"] = true
+VIDEOS["UPD3301"] = true
+VIDEOS["UPD7220"] = true
+VIDEOS["UPD7227"] = true
+VIDEOS["V9938"] = true
+VIDEOS["VIC4567"] = true
+--VIDEOS+= VOODOO"] = true
+VIDEOS["SCN2674"] = true
+VIDEOS["GB_LCD"] = true
+VIDEOS["GBA_LCD"] = true
+VIDEOS["MGA2064W"] = true
+VIDEOS["PPU2C0X"] = true
+
+--------------------------------------------------
+-- specify available machine cores
+--------------------------------------------------
+
+MACHINES["AKIKO"] = true
+MACHINES["AUTOCONFIG"] = true
+MACHINES["CR511B"] = true
+MACHINES["DMAC"] = true
+MACHINES["GAYLE"] = true
+MACHINES["6522VIA"] = true
+MACHINES["6821PIA"] = true
+MACHINES["6840PTM"] = true
+MACHINES["MPCC68561"] = true
+MACHINES["68681"] = true
+MACHINES["7200FIFO"] = true
+MACHINES["8530SCC"] = true
+MACHINES["AAKARTDEV"] = true
+MACHINES["ACIA6850"] = true
+MACHINES["ADC0808"] = true
+MACHINES["ADC083X"] = true
+MACHINES["ADC1038"] = true
+MACHINES["ADC1213X"] = true
+MACHINES["AICARTC"] = true
+MACHINES["AM2847"] = true
+MACHINES["AM53CF96"] = true
+MACHINES["AM9517A"] = true
+MACHINES["AMIGAFDC"] = true
+MACHINES["AT_KEYBC"] = true
+MACHINES["AT28C16"] = true
+MACHINES["AT29X"] = true
+MACHINES["AT45DBXX"] = true
+MACHINES["ATAFLASH"] = true
+MACHINES["AY31015"] = true
+MACHINES["BANKDEV"] = true
+MACHINES["BIM68153"] = true
+MACHINES["CDP1852"] = true
+MACHINES["CDP1871"] = true
+MACHINES["CDP1879"] = true
+MACHINES["CMOS40105"] = true
+--MACHINES["CDU76S"] = true
+MACHINES["COM8116"] = true
+MACHINES["CR589"] = true
+MACHINES["CS4031"] = true
+MACHINES["CS8221"] = true
+--MACHINES["CXD1095"] = true
+MACHINES["DM9334"] = true
+MACHINES["DP8390"] = true
+--MACHINES["DS1204"] = true
+MACHINES["DS1302"] = true
+MACHINES["DS1315"] = true
+MACHINES["DS1386"] = true
+MACHINES["DS2401"] = true
+MACHINES["DS2404"] = true
+MACHINES["DS75160A"] = true
+MACHINES["DS75161A"] = true
+MACHINES["E0516"] = true
+MACHINES["E05A03"] = true
+MACHINES["E05A30"] = true
+MACHINES["EEPROMDEV"] = true
+MACHINES["ER2055"] = true
+MACHINES["F3853"] = true
+MACHINES["HD63450"] = true
+MACHINES["HD64610"] = true
+MACHINES["HP_TACO"] = true
+MACHINES["I2CMEM"] = true
+MACHINES["I80130"] = true
+MACHINES["I8089"] = true
+MACHINES["I8155"] = true
+MACHINES["I8212"] = true
+MACHINES["I8214"] = true
+MACHINES["I8243"] = true
+MACHINES["I8251"] = true
+MACHINES["I8255"] = true
+MACHINES["I8257"] = true
+MACHINES["I8271"] = true
+MACHINES["I8279"] = true
+MACHINES["I8355"] = true
+MACHINES["IDE"] = true
+MACHINES["IE15"] = true
+MACHINES["IM6402"] = true
+MACHINES["INS8154"] = true
+MACHINES["INS8250"] = true
+MACHINES["INTELFLASH"] = true
+MACHINES["JVS"] = true
+MACHINES["K033906"] = true
+MACHINES["K053252"] = true
+MACHINES["K056230"] = true
+MACHINES["KB3600"] = true
+MACHINES["KBDC8042"] = true
+MACHINES["KR2376"] = true
+MACHINES["LATCH8"] = true
+MACHINES["LC89510"] = true
+MACHINES["LDPR8210"] = true
+MACHINES["LDSTUB"] = true
+MACHINES["LDV1000"] = true
+MACHINES["LDVP931"] = true
+MACHINES["LH5810"] = true
+MACHINES["LINFLASH"] = true
+MACHINES["LPCI"] = true
+MACHINES["LSI53C810"] = true
+MACHINES["M68307"] = true
+MACHINES["M68340"] = true
+MACHINES["M6M80011AP"] = true
+MACHINES["MB14241"] = true
+MACHINES["MB3773"] = true
+MACHINES["MB8421"] = true
+MACHINES["MB87078"] = true
+MACHINES["MB8795"] = true
+MACHINES["MB89352"] = true
+MACHINES["MB89371"] = true
+MACHINES["MC146818"] = true
+MACHINES["MC2661"] = true
+MACHINES["MC6843"] = true
+MACHINES["MC6846"] = true
+MACHINES["MC6852"] = true
+MACHINES["MC6854"] = true
+MACHINES["MC68328"] = true
+MACHINES["MC68901"] = true
+MACHINES["MCCS1850"] = true
+MACHINES["MCF5206E"] = true
+MACHINES["MICROTOUCH"] = true
+MACHINES["MIOT6530"] = true
+MACHINES["MM58167"] = true
+MACHINES["MM58274C"] = true
+MACHINES["MM74C922"] = true
+MACHINES["MM5740"] = true
+MACHINES["MOS6526"] = true
+MACHINES["MOS6529"] = true
+MACHINES["MOS6551"] = true
+MACHINES["MOS6702"] = true
+MACHINES["MOS8706"] = true
+MACHINES["MOS8722"] = true
+MACHINES["MOS8726"] = true
+MACHINES["MPU401"] = true
+MACHINES["MSM5832"] = true
+MACHINES["MSM58321"] = true
+MACHINES["MSM6242"] = true
+--MACHINES["MSM6253"] = true
+MACHINES["NCR5380"] = true
+MACHINES["NCR5380N"] = true
+MACHINES["NCR5390"] = true
+MACHINES["NCR539x"] = true
+MACHINES["NCR53C7XX"] = true
+MACHINES["NETLIST"] = true
+MACHINES["NMC9306"] = true
+MACHINES["NSC810"] = true
+MACHINES["NSCSI"] = true
+MACHINES["OMTI5100"] = true
+MACHINES["PC_FDC"] = true
+MACHINES["PC_LPT"] = true
+MACHINES["PCCARD"] = true
+MACHINES["PCF8593"] = true
+MACHINES["PCI"] = true
+MACHINES["PCKEYBRD"] = true
+MACHINES["PDC"] = true
+MACHINES["PHI"] = true
+MACHINES["PIC8259"] = true
+MACHINES["PIT68230"] = true
+MACHINES["PIT8253"] = true
+MACHINES["PLA"] = true
+--MACHINES["PROFILE"] = true
+MACHINES["PROM82S129"] = true
+MACHINES["R64H156"] = true
+MACHINES["RF5C296"] = true
+MACHINES["RIOT6532"] = true
+MACHINES["ROC10937"] = true
+MACHINES["RP5C01"] = true
+MACHINES["RP5C15"] = true
+MACHINES["RP5H01"] = true
+MACHINES["RTC4543"] = true
+MACHINES["RTC65271"] = true
+MACHINES["RTC9701"] = true
+--MACHINES["S2636"] = true
+MACHINES["S3520CF"] = true
+MACHINES["S3C2400"] = true
+MACHINES["S3C2410"] = true
+MACHINES["S3C2440"] = true
+MACHINES["S3C44B0"] = true
+MACHINES["SATURN"] = true
+--MACHINES["SCSI"] = true
+MACHINES["SCUDSP"] = true
+MACHINES["SECFLASH"] = true
+MACHINES["SEIBU_COP"] = true
+--MACHINES["SERFLASH"] = true
+MACHINES["SMC91C9X"] = true
+MACHINES["SMPC"] = true
+MACHINES["STVCD"] = true
+MACHINES["TC0091LVC"] = true
+MACHINES["TIMEKPR"] = true
+MACHINES["TMC0430"] = true
+MACHINES["TMP68301"] = true
+MACHINES["TMS5501"] = true
+MACHINES["TMS6100"] = true
+MACHINES["TMS9901"] = true
+MACHINES["TMS9902"] = true
+MACHINES["TPI6525"] = true
+MACHINES["TTL7400"] = true
+MACHINES["TTL7404"] = true
+MACHINES["TTL74123"] = true
+MACHINES["TTL74145"] = true
+MACHINES["TTL74148"] = true
+MACHINES["TTL74153"] = true
+--MACHINES["TTL74157"] = true
+MACHINES["TTL74161"] = true
+MACHINES["TTL74164"] = true
+MACHINES["TTL74175"] = true
+MACHINES["TTL74181"] = true
+MACHINES["TTL7474"] = true
+MACHINES["UPD1990A"] = true
+--MACHINES["UPD4992"] = true
+MACHINES["UPD4701"] = true
+MACHINES["UPD7002"] = true
+MACHINES["UPD71071"] = true
+MACHINES["UPD765"] = true
+MACHINES["FDC_PLL"] = true
+MACHINES["V3021"] = true
+MACHINES["WD_FDC"] = true
+MACHINES["WD11C00_17"] = true
+MACHINES["WD2010"] = true
+MACHINES["WD33C93"] = true
+MACHINES["WD7600"] = true
+MACHINES["X2212"] = true
+MACHINES["X76F041"] = true
+MACHINES["X76F100"] = true
+MACHINES["YM2148"] = true
+MACHINES["Z80CTC"] = true
+MACHINES["Z80DART"] = true
+MACHINES["Z80SIO"] = true
+MACHINES["Z80SCC"] = true
+MACHINES["Z80DMA"] = true
+MACHINES["Z80PIO"] = true
+MACHINES["Z80STI"] = true
+MACHINES["Z8536"] = true
+MACHINES["SMC92X4"] = true
+MACHINES["HDC9234"] = true
+MACHINES["TI99_HD"] = true
+MACHINES["STRATA"] = true
+MACHINES["STEPPERS"] = true
+MACHINES["CORVUSHD"] = true
+MACHINES["WOZFDC"] = true
+MACHINES["DIABLO_HD"] = true
+MACHINES["TMS1024"] = true
+MACHINES["NSC810"] = true
+MACHINES["VT82C496"] = true
+MACHINES["GENPC"] = true
+MACHINES["GEN_LATCH"] = true
+MACHINES["WATCHDOG"] = true
+MACHINES["SMARTMEDIA"] = true
+MACHINES["APPLE_DRIVE"] = true
+MACHINES["APPLE_FDC"] = true
+MACHINES["SONY_DRIVE"] = true
+MACHINES["SCNXX562"] = true
+MACHINES["FGA002"] = true
+MACHINES["INPUT_MERGER"] = true
+-- MACHINES["K054321"] = true
+
+--------------------------------------------------
+-- specify available bus cores
+--------------------------------------------------
+
+BUSES["A1BUS"] = true
+BUSES["A2BUS"] = true
+BUSES["A7800"] = true
+BUSES["A800"] = true
+BUSES["ABCBUS"] = true
+BUSES["ABCKB"] = true
+BUSES["ADAM"] = true
+BUSES["ADAMNET"] = true
+BUSES["APF"] = true
+BUSES["APRICOT_EXPANSION"] = true
+BUSES["APRICOT_KEYBOARD"] = true
+BUSES["AMIGA_KEYBOARD"] = true
+BUSES["ARCADIA"] = true
+BUSES["ASTROCADE"] = true
+BUSES["BBC_FDC"] = true
+BUSES["BBC_ANALOGUE"] = true
+BUSES["BBC_JOYPORT"] = true
+BUSES["BBC_1MHZBUS"] = true
+BUSES["BBC_TUBE"] = true
+BUSES["BBC_USERPORT"] = true
+BUSES["BML3"] = true
+BUSES["BW2"] = true
+BUSES["C64"] = true
+BUSES["CBM2"] = true
+BUSES["CBMIEC"] = true
+BUSES["CENTRONICS"] = true
+BUSES["CGENIE_EXPANSION"] = true
+BUSES["CGENIE_PARALLEL"] = true
+BUSES["CHANNELF"] = true
+BUSES["COCO"] = true
+BUSES["COLECO"] = true
+BUSES["COMPIS_GRAPHICS"] = true
+BUSES["COMPUCOLOR"] = true
+BUSES["COMX35"] = true
+BUSES["CPC"] = true
+BUSES["CRVISION"] = true
+BUSES["DMV"] = true
+BUSES["ECBBUS"] = true
+BUSES["ECONET"] = true
+BUSES["ELECTRON"] = true
+BUSES["EP64"] = true
+BUSES["EPSON_SIO"] = true
+BUSES["GAMEBOY"] = true
+BUSES["GAMEGEAR"] = true
+BUSES["GBA"] = true
+BUSES["GENERIC"] = true
+BUSES["HPHIL"] = true
+BUSES["IEEE488"] = true
+BUSES["IMI7000"] = true
+BUSES["INTV"] = true
+BUSES["INTV_CTRL"] = true
+BUSES["IQ151"] = true
+BUSES["ISA"] = true
+BUSES["ISBX"] = true
+BUSES["HP_OPTROM"] = true
+BUSES["HP9845_IO"] = true
+BUSES["KC"] = true
+BUSES["LPCI"] = true
+BUSES["M5"] = true
+BUSES["MACPDS"] = true
+BUSES["MIDI"] = true
+BUSES["MEGADRIVE"] = true
+BUSES["MSX_SLOT"] = true
+BUSES["NASBUS"] = true
+BUSES["NEOGEO"] = true
+BUSES["NEOGEO_CTRL"] = true
+BUSES["NES"] = true
+BUSES["NES_CTRL"] = true
+BUSES["NEWBRAIN"] = true
+BUSES["NUBUS"] = true
+BUSES["O2"] = true
+BUSES["ORICEXT"] = true
+BUSES["PC1512"] = true
+BUSES["PCE"] = true
+BUSES["PC_JOY"] = true
+BUSES["PC_KBD"] = true
+BUSES["PET"] = true
+BUSES["PLUS4"] = true
+BUSES["POFO"] = true
+BUSES["PSX_CONTROLLER"] = true
+BUSES["QL"] = true
+BUSES["RS232"] = true
+BUSES["S100"] = true
+BUSES["SAT_CTRL"] = true
+BUSES["SATURN"] = true
+BUSES["SCSI"] = true
+BUSES["SCV"] = true
+BUSES["SEGA8"] = true
+BUSES["SG1000_EXP"] = true
+BUSES["SMS_CTRL"] = true
+BUSES["SMS_EXP"] = true
+BUSES["SNES"] = true
+BUSES["SNES_CTRL"] = true
+BUSES["SPC1000"] = true
+BUSES["SUNKBD"] = true
+BUSES["SVI_EXPANDER"] = true
+BUSES["SVI_SLOT"] = true
+BUSES["TI8X"] = true
+BUSES["TI99PEB"] = true
+BUSES["TI99X"] = true
+BUSES["TIKI100"] = true
+BUSES["TVC"] = true
+BUSES["VBOY"] = true
+BUSES["VC4000"] = true
+BUSES["VCS"] = true
+BUSES["VCS_CTRL"] = true
+BUSES["VECTREX"] = true
+BUSES["VIC10"] = true
+BUSES["VIC20"] = true
+BUSES["VIDBRAIN"] = true
+BUSES["VIP"] = true
+BUSES["VME"] = true
+BUSES["VTECH_IOEXP"] = true
+BUSES["VTECH_MEMEXP"] = true
+BUSES["WANGPC"] = true
+BUSES["WSWAN"] = true
+BUSES["X68K"] = true
+BUSES["Z88"] = true
+BUSES["ZORRO"] = true
+
+--------------------------------------------------
+-- specify used file formats
+--------------------------------------------------
+
+FORMATS["2D_DSK"] = true
+FORMATS["A26_CAS"] = true
+FORMATS["A5105_DSK"] = true
+FORMATS["ABC800_DSK"] = true
+FORMATS["ABCFD2_DSK"] = true
+FORMATS["ACE_TAP"] = true
+FORMATS["ACORN_DSK"] = true
+FORMATS["ADAM_CAS"] = true
+FORMATS["ADAM_DSK"] = true
+FORMATS["AFS_DSK"] = true
+FORMATS["AMI_DSK"] = true
+FORMATS["AP2_DSK"] = true
+FORMATS["APD_DSK"] = true
+FORMATS["APF_APT"] = true
+FORMATS["APOLLO_DSK"] = true
+FORMATS["APPLIX_DSK"] = true
+FORMATS["APRIDISK"] = true
+FORMATS["AP_DSK35"] = true
+FORMATS["ASST128_DSK"] = true
+FORMATS["ATARI_DSK"] = true
+FORMATS["ATOM_DSK"] = true
+FORMATS["ATOM_TAP"] = true
+FORMATS["BASICDSK"] = true
+FORMATS["BW12_DSK"] = true
+FORMATS["BW2_DSK"] = true
+FORMATS["C3040_DSK"] = true
+FORMATS["C4040_DSK"] = true
+FORMATS["C8280_DSK"] = true
+FORMATS["CAMPLYNX_CAS"] = true
+FORMATS["CAMPLYNX_DSK"] = true
+FORMATS["CBM_CRT"] = true
+FORMATS["CBM_TAP"] = true
+FORMATS["CCVF_DSK"] = true
+FORMATS["CD90_640_DSK"] = true
+FORMATS["CGENIE_DSK"] = true
+FORMATS["CGEN_CAS"] = true
+FORMATS["COCO_CAS"] = true
+FORMATS["COMX35_DSK"] = true
+FORMATS["CONCEPT_DSK"] = true
+FORMATS["COUPEDSK"] = true
+FORMATS["CPIS_DSK"] = true
+FORMATS["CSW_CAS"] = true
+FORMATS["D64_DSK"] = true
+FORMATS["D71_DSK"] = true
+FORMATS["D80_DSK"] = true
+FORMATS["D81_DSK"] = true
+FORMATS["D82_DSK"] = true
+FORMATS["DCP_DSK"] = true
+FORMATS["DIM_DSK"] = true
+FORMATS["DIP_DSK"] = true
+FORMATS["DMK_DSK"] = true
+FORMATS["EP64_DSK"] = true
+FORMATS["DMV_DSK"] = true
+FORMATS["ESQ16_DSK"] = true
+FORMATS["ESQ8_DSK"] = true
+FORMATS["EXCALI64_DSK"] = true
+FORMATS["FC100_CAS"] = true
+FORMATS["FDD_DSK"] = true
+FORMATS["FLEX_DSK"] = true
+FORMATS["FM7_CAS"] = true
+FORMATS["FMSX_CAS"] = true
+FORMATS["FMTOWNS_DSK"] = true
+FORMATS["FSD_DSK"] = true
+FORMATS["G64_DSK"] = true
+FORMATS["GTP_CAS"] = true
+FORMATS["HECTOR_MINIDISC"] = true
+FORMATS["HECT_DSK"] = true
+FORMATS["HECT_TAP"] = true
+FORMATS["HP_IPC_DSK"] = true
+FORMATS["IQ151_DSK"] = true
+FORMATS["ITT3030_DSK"] = true
+FORMATS["JFD_DSK"] = true
+FORMATS["JVC_DSK"] = true
+FORMATS["KAYPRO_DSK"] = true
+FORMATS["KC85_DSK"] = true
+FORMATS["KC_CAS"] = true
+FORMATS["KIM1_CAS"] = true
+FORMATS["LVIV_LVT"] = true
+FORMATS["M20_DSK"] = true
+FORMATS["M5_DSK"] = true
+FORMATS["MBEE_CAS"] = true
+FORMATS["MFM_HD"] = true
+FORMATS["MM_DSK"] = true
+FORMATS["MS0515_DSK"] = true
+FORMATS["MSX_DSK"] = true
+FORMATS["MZ_CAS"] = true
+FORMATS["NANOS_DSK"] = true
+FORMATS["NASCOM_DSK"] = true
+FORMATS["NASLITE_DSK"] = true
+FORMATS["NES_DSK"] = true
+FORMATS["NFD_DSK"] = true
+FORMATS["ORAO_CAS"] = true
+FORMATS["ORIC_DSK"] = true
+FORMATS["ORIC_TAP"] = true
+FORMATS["P6001_CAS"] = true
+FORMATS["PASTI_DSK"] = true
+FORMATS["PC98FDI_DSK"] = true
+FORMATS["PC98_DSK"] = true
+FORMATS["PC_DSK"] = true
+FORMATS["PHC25_CAS"] = true
+FORMATS["PK8020_DSK"] = true
+FORMATS["PPG_DSK"] = true
+FORMATS["PMD_CAS"] = true
+FORMATS["PRIMOPTP"] = true
+FORMATS["PYLDIN_DSK"] = true
+FORMATS["QL_DSK"] = true
+FORMATS["RK_CAS"] = true
+FORMATS["RX50_DSK"] = true
+FORMATS["SC3000_BIT"] = true
+FORMATS["SF7000_DSK"] = true
+FORMATS["SMX_DSK"] = true
+FORMATS["SOL_CAS"] = true
+FORMATS["SORC_CAS"] = true
+FORMATS["SORC_DSK"] = true
+FORMATS["SORD_CAS"] = true
+FORMATS["SPC1000_CAS"] = true
+FORMATS["ST_DSK"] = true
+FORMATS["SVI_CAS"] = true
+FORMATS["SVI_DSK"] = true
+FORMATS["TANDY2K_DSK"] = true
+FORMATS["THOM_CAS"] = true
+FORMATS["THOM_DSK"] = true
+FORMATS["TI99_DSK"] = true
+FORMATS["TIKI100_DSK"] = true
+FORMATS["TRD_DSK"] = true
+FORMATS["TRS80_DSK"] = true
+FORMATS["TRS_CAS"] = true
+FORMATS["TVC_CAS"] = true
+FORMATS["TVC_DSK"] = true
+FORMATS["TZX_CAS"] = true
+FORMATS["UEF_CAS"] = true
+FORMATS["UPD765_DSK"] = true
+FORMATS["VDK_DSK"] = true
+FORMATS["VECTOR06_DSK"] = true
+FORMATS["VG5K_CAS"] = true
+FORMATS["VICTOR9K_DSK"] = true
+FORMATS["VT_CAS"] = true
+FORMATS["WD177X_DSK"] = true
+FORMATS["X07_CAS"] = true
+FORMATS["X1_TAP"] = true
+FORMATS["XDF_DSK"] = true
+FORMATS["ZX81_P"] = true
+
+--------------------------------------------------
+-- this is the list of driver libraries that
+-- comprise MESS plus messdriv.*", which contains
+-- the list of drivers
+--------------------------------------------------
+function linkProjects_mame_mess(_target, _subtarget)
+ links {
+ "acorn",
+ "act",
+ "adc",
+ "agat",
+ "alesis",
+ "altos",
+ "ami",
+ "amiga",
+ "ampro",
+ "amstrad",
+ "apf",
+ "apollo",
+ "apple",
+ "applied",
+ "arcadia",
+ "ascii",
+ "at",
+ "atari",
+ "att",
+ "bally",
+ "bandai",
+ "banctec",
+ "be",
+ "bnpo",
+ "bondwell",
+ "booth",
+ "camputers",
+ "canon",
+ "cantab",
+ "casio",
+ "cbm",
+ "cccp",
+ "cce",
+ "ccs",
+ "chromatics",
+ "coleco",
+ "compugraphic",
+ "cromemco",
+ "comx",
+ "concept",
+ "conitec",
+ "cxg",
+ "cybiko",
+ "dai",
+ "ddr",
+ "dec",
+ "dicksmth",
+ "dms",
+ "dragon",
+ "drc",
+ "dulmont",
+ "eaca",
+ "einis",
+ "elektor",
+ "elektrka",
+ "ensoniq",
+ "enterprise",
+ "entex",
+ "epoch",
+ "epson",
+ "exidy",
+ "fairch",
+ "fairlight",
+ "fidelity",
+ "force",
+ "fujitsu",
+ "funtech",
+ "galaxy",
+ "gamepark",
+ "gi",
+ "grundy",
+ "hartung",
+ "heathkit",
+ "hec2hrp",
+ "hegener",
+ "heurikon",
+ "hitachi",
+ "homebrew",
+ "homelab",
+ "hp",
+ "ibm6580",
+ "ie15",
+ "imp",
+ "intel",
+ "interpro",
+ "interton",
+ "intv",
+ "isc",
+ "kaypro",
+ "koei",
+ "kyocera",
+ "luxor",
+ "magnavox",
+ "makerbot",
+ "matsushi",
+ "mattel",
+ "mb",
+ "mchester",
+ "memotech",
+ "mgu",
+ "microkey",
+ "microsoft",
+ "mit",
+ "mits",
+ "mitsubishi",
+ "mizar",
+ "morrow",
+ "mos",
+ "motorola",
+ "multitch",
+ "nakajima",
+ "nascom",
+ "ne",
+ "nec",
+ "netronic",
+ "next",
+ "nintendo",
+ "nokia",
+ "northstar",
+ "novag",
+ "ns",
+ "olivetti",
+ "olympia",
+ "omnibyte",
+ "orion",
+ "osborne",
+ "osi",
+ "palm",
+ "pc",
+ "pdp1",
+ "pel",
+ "philips",
+ "pitronic",
+ "poly88",
+ "prodigy",
+ "psion",
+ "radio",
+ "rca",
+ "regnecentralen",
+ "ritam",
+ "rm",
+ "robotron",
+ "rockwell",
+ "roland",
+ "rolm",
+ "sage",
+ "samcoupe",
+ "samsung",
+ "sanyo",
+ "saturn",
+ "sega",
+ "sequential",
+ "sgi",
+ "sharp",
+ "siemens",
+ "sinclair",
+ "skeleton",
+ "slicer",
+ "snk",
+ "sony",
+ "sord",
+ "special",
+ "sun",
+ "svi",
+ "svision",
+ "swtpc09",
+ "synertec",
+ "ta",
+ "tandberg",
+ "tangerin",
+ "tatung",
+ "teamconc",
+ "tektroni",
+ "telenova",
+ "telercas",
+ "televideo",
+ "tem",
+ "tesla",
+ "test",
+ "thomson",
+ "ti",
+ "tiger",
+ "tigertel",
+ "tiki",
+ "tomy",
+ "toshiba",
+ "trainer",
+ "trs",
+ "ultimachine",
+ "ultratec",
+ "unicard",
+ "unisonic",
+ "unisys",
+ "usp",
+ "veb",
+ "verifone",
+ "vidbrain",
+ "videoton",
+ "visual",
+ "votrax",
+ "vtech",
+ "wang",
+ "wavemate",
+ "westinghouse",
+ "xerox",
+ "xussrpc",
+ "yamaha",
+ "zenith",
+ "zpa",
+ "zvt",
+ "messshared",
+ }
+ if (_subtarget=="mess") then
+ links {
+ "mameshared",
+ }
+ end
+end
+
+function createMESSProjects(_target, _subtarget, _name)
+ project (_name)
+ targetsubdir(_target .."_" .. _subtarget)
+ kind (LIBTYPE)
+ uuid (os.uuid("drv-" .. _target .."_" .. _subtarget .. "_" .._name))
+ addprojectflags()
+ precompiledheaders()
+
+ includedirs {
+ MAME_DIR .. "src/osd",
+ MAME_DIR .. "src/emu",
+ MAME_DIR .. "src/devices",
+ MAME_DIR .. "src/mame",
+ MAME_DIR .. "src/lib",
+ MAME_DIR .. "src/lib/util",
+ MAME_DIR .. "src/lib/netlist",
+ MAME_DIR .. "3rdparty",
+ GEN_DIR .. "mess/layout",
+ GEN_DIR .. "mame/layout",
+ }
+end
+
+function createProjects_mame_mess(_target, _subtarget)
+--------------------------------------------------
+-- the following files are MAME components and
+-- shared across a number of drivers
+--
+-- aa310.c (MESS), aristmk5.c, ertictac.c (MAME)
+-- amiga.c (MESS), alg.c, arcadia.c, cubo.c, mquake.c, upscope.c (MAME)
+-- a2600.c (MESS), tourtabl.c (MAME)
+-- atari400.c (MESS), bartop52.c, maxaflex.c (MAME)
+-- jaguar.c (MAME)
+-- astrocde.c (MAME+MESS), g627.c
+-- cps1.c (MAME + MESS), cbaseball.c, mitchell.c (MAME)
+-- pk8000.c (MESS), photon.c (MAME)
+-- nes.c (MESS), cham23.c, famibox.c, multigam.c, playch10.c, vsnes.c (MAME)
+-- snes.c (MESS), nss.c, sfcbox.c, snesb.c (MAME)
+-- n64.c (MESS), aleck64.c (MAME)
+-- megadriv.c, segapico.c (MESS), hshavoc.c, megadrvb.c, megaplay.c, megatech.c, puckpkmn.c, segac2.c, segas18.c (MAME)
+-- dccons.c (MESS), naomi.c (MAME)
+-- neogeocd.c (MESS), midas.c, neogeo.c, neoprint.c (MAME)
+-- cdi.c (MESS + MAME)
+-- 3do.c (MESS + MAME), konamim2.c (MAME)
+-- vectrex.c (MESS + MAME)
+-- cps1.c (MESS + MAME)
+--------------------------------------------------
+if (_subtarget=="mess") then
+createMESSProjects(_target, _subtarget, "mameshared")
+files {
+ MAME_DIR .. "src/mame/machine/archimds.cpp",
+ MAME_DIR .. "src/mame/video/archimds.cpp",
+ MAME_DIR .. "src/mame/machine/amiga.cpp",
+ MAME_DIR .. "src/mame/video/amiga.cpp",
+ MAME_DIR .. "src/mame/video/amigaaga.cpp",
+ MAME_DIR .. "src/mame/video/amigaaga.h",
+ MAME_DIR .. "src/mame/video/tia.cpp",
+ MAME_DIR .. "src/mame/video/tia.h",
+ MAME_DIR .. "src/mame/machine/atari400.cpp",
+ MAME_DIR .. "src/mame/video/atari400.cpp",
+ MAME_DIR .. "src/mame/includes/atari400.h",
+ MAME_DIR .. "src/mame/video/antic.cpp",
+ MAME_DIR .. "src/mame/video/antic.h",
+ MAME_DIR .. "src/mame/video/gtia.cpp",
+ MAME_DIR .. "src/mame/video/gtia.h",
+ MAME_DIR .. "src/mame/drivers/jaguar.cpp",
+ MAME_DIR .. "src/mame/includes/jaguar.h",
+ MAME_DIR .. "src/mame/audio/jaguar.cpp",
+ MAME_DIR .. "src/mame/video/jaguar.cpp",
+ MAME_DIR .. "src/mame/video/jagblit.h",
+ MAME_DIR .. "src/mame/video/jagblit.hxx",
+ MAME_DIR .. "src/mame/video/jagobj.hxx",
+ MAME_DIR .. "src/mame/drivers/astrocde.cpp",
+ MAME_DIR .. "src/mame/includes/astrocde.h",
+ MAME_DIR .. "src/mame/video/astrocde.cpp",
+ MAME_DIR .. "src/mame/machine/kabuki.cpp",
+ MAME_DIR .. "src/mame/machine/kabuki.h",
+ MAME_DIR .. "src/mame/video/pk8000.cpp",
+ MAME_DIR .. "src/mame/machine/snes.cpp",
+ MAME_DIR .. "src/mame/audio/snes_snd.cpp",
+ MAME_DIR .. "src/mame/audio/snes_snd.h",
+ MAME_DIR .. "src/mame/machine/n64.cpp",
+ MAME_DIR .. "src/mame/video/n64.cpp",
+ MAME_DIR .. "src/mame/video/n64types.h",
+ MAME_DIR .. "src/mame/video/rdpfiltr.hxx",
+ MAME_DIR .. "src/mame/video/n64.h",
+ MAME_DIR .. "src/mame/video/rdpblend.cpp",
+ MAME_DIR .. "src/mame/video/rdpblend.h",
+ MAME_DIR .. "src/mame/video/rdptpipe.cpp",
+ MAME_DIR .. "src/mame/video/rdptpipe.h",
+ MAME_DIR .. "src/mame/video/pin64.cpp",
+ MAME_DIR .. "src/mame/video/pin64.h",
+ MAME_DIR .. "src/mame/machine/megadriv.cpp",
+ MAME_DIR .. "src/mame/drivers/naomi.cpp",
+ MAME_DIR .. "src/mame/includes/naomi.h",
+ MAME_DIR .. "src/mame/includes/dc.h",
+ MAME_DIR .. "src/mame/machine/awboard.cpp",
+ MAME_DIR .. "src/mame/machine/awboard.h",
+ MAME_DIR .. "src/mame/machine/dc.cpp",
+ MAME_DIR .. "src/mame/machine/dc-ctrl.cpp",
+ MAME_DIR .. "src/mame/machine/dc-ctrl.h",
+ MAME_DIR .. "src/mame/machine/gdrom.cpp",
+ MAME_DIR .. "src/mame/machine/gdrom.h",
+ MAME_DIR .. "src/mame/machine/jvs13551.cpp",
+ MAME_DIR .. "src/mame/machine/jvs13551.h",
+ MAME_DIR .. "src/mame/machine/maple-dc.cpp",
+ MAME_DIR .. "src/mame/machine/maple-dc.h",
+ MAME_DIR .. "src/mame/machine/mapledev.cpp",
+ MAME_DIR .. "src/mame/machine/mapledev.h",
+ MAME_DIR .. "src/mame/machine/mie.cpp",
+ MAME_DIR .. "src/mame/machine/mie.h",
+ MAME_DIR .. "src/mame/machine/naomi.cpp",
+ MAME_DIR .. "src/mame/machine/naomibd.cpp",
+ MAME_DIR .. "src/mame/machine/naomibd.h",
+ MAME_DIR .. "src/mame/machine/naomig1.cpp",
+ MAME_DIR .. "src/mame/machine/naomig1.h",
+ MAME_DIR .. "src/mame/machine/naomigd.cpp",
+ MAME_DIR .. "src/mame/machine/naomigd.h",
+ MAME_DIR .. "src/mame/machine/naomim1.cpp",
+ MAME_DIR .. "src/mame/machine/naomim1.h",
+ MAME_DIR .. "src/mame/machine/naomim2.cpp",
+ MAME_DIR .. "src/mame/machine/naomim2.h",
+ MAME_DIR .. "src/mame/machine/naomim4.cpp",
+ MAME_DIR .. "src/mame/machine/naomim4.h",
+ MAME_DIR .. "src/mame/machine/naomirom.cpp",
+ MAME_DIR .. "src/mame/machine/naomirom.h",
+ MAME_DIR .. "src/mame/machine/315-5881_crypt.cpp",
+ MAME_DIR .. "src/mame/machine/315-5881_crypt.h",
+ MAME_DIR .. "src/mame/video/powervr2.cpp",
+ MAME_DIR .. "src/mame/video/powervr2.h",
+ MAME_DIR .. "src/mame/drivers/neogeo.cpp",
+ MAME_DIR .. "src/mame/includes/neogeo.h",
+ MAME_DIR .. "src/mame/machine/ng_memcard.cpp",
+ MAME_DIR .. "src/mame/machine/ng_memcard.h",
+ MAME_DIR .. "src/mame/video/neogeo.cpp",
+ MAME_DIR .. "src/mame/video/neogeo_spr.cpp",
+ MAME_DIR .. "src/mame/video/neogeo_spr.h",
+ MAME_DIR .. "src/mame/drivers/cdi.cpp",
+ MAME_DIR .. "src/mame/includes/cdi.h",
+ MAME_DIR .. "src/mame/machine/cdi070.cpp",
+ MAME_DIR .. "src/mame/machine/cdi070.h",
+ MAME_DIR .. "src/mame/machine/cdicdic.cpp",
+ MAME_DIR .. "src/mame/machine/cdicdic.h",
+ MAME_DIR .. "src/mame/machine/cdislave.cpp",
+ MAME_DIR .. "src/mame/machine/cdislave.h",
+ MAME_DIR .. "src/mame/video/mcd212.cpp",
+ MAME_DIR .. "src/mame/video/mcd212.h",
+ MAME_DIR .. "src/mame/drivers/3do.cpp",
+ MAME_DIR .. "src/mame/includes/3do.h",
+ MAME_DIR .. "src/mame/machine/3do.cpp",
+ MAME_DIR .. "src/mame/drivers/konamim2.cpp",
+ MAME_DIR .. "src/mame/drivers/vectrex.cpp",
+ MAME_DIR .. "src/mame/includes/vectrex.h",
+ MAME_DIR .. "src/mame/machine/vectrex.cpp",
+ MAME_DIR .. "src/mame/video/vectrex.cpp",
+ MAME_DIR .. "src/mame/drivers/cps1.cpp",
+ MAME_DIR .. "src/mame/includes/cps1.h",
+ MAME_DIR .. "src/mame/video/cps1.cpp",
+ MAME_DIR .. "src/mame/video/xbox_nv2a.cpp",
+ MAME_DIR .. "src/mame/machine/xbox.cpp",
+ MAME_DIR .. "src/mame/machine/xbox_usb.cpp",
+ MAME_DIR .. "src/mame/includes/saturn.h",
+ MAME_DIR .. "src/mame/drivers/saturn.cpp",
+ MAME_DIR .. "src/mame/machine/saturn.cpp",
+}
+end
+--------------------------------------------------
+-- the following files are general components and
+-- shared across a number of drivers
+--------------------------------------------------
+createMESSProjects(_target, _subtarget, "messshared")
+files {
+ MAME_DIR .. "src/mame/machine/microdrv.cpp",
+ MAME_DIR .. "src/mame/machine/microdrv.h",
+ MAME_DIR .. "src/mame/machine/teleprinter.cpp",
+ MAME_DIR .. "src/mame/machine/teleprinter.h",
+ MAME_DIR .. "src/mame/machine/z80bin.cpp",
+ MAME_DIR .. "src/mame/machine/z80bin.h",
+}
+--------------------------------------------------
+-- manufacturer-specific groupings for drivers
+--------------------------------------------------
+
+createMESSProjects(_target, _subtarget, "acorn")
+files {
+ MAME_DIR .. "src/mame/drivers/aa310.cpp",
+ MAME_DIR .. "src/mame/drivers/a6809.cpp",
+ MAME_DIR .. "src/mame/drivers/acrnsys1.cpp",
+ MAME_DIR .. "src/mame/drivers/atom.cpp",
+ MAME_DIR .. "src/mame/includes/atom.h",
+ MAME_DIR .. "src/mame/drivers/bbc.cpp",
+ MAME_DIR .. "src/mame/includes/bbc.h",
+ MAME_DIR .. "src/mame/machine/bbc.cpp",
+ MAME_DIR .. "src/mame/video/bbc.cpp",
+ MAME_DIR .. "src/mame/drivers/electron.cpp",
+ MAME_DIR .. "src/mame/includes/electron.h",
+ MAME_DIR .. "src/mame/machine/electron.cpp",
+ MAME_DIR .. "src/mame/video/electron.cpp",
+ MAME_DIR .. "src/mame/drivers/riscpc.cpp",
+ MAME_DIR .. "src/mame/drivers/z88.cpp",
+ MAME_DIR .. "src/mame/includes/z88.h",
+ MAME_DIR .. "src/mame/machine/upd65031.cpp",
+ MAME_DIR .. "src/mame/machine/upd65031.h",
+ MAME_DIR .. "src/mame/video/z88.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "act")
+files {
+ MAME_DIR .. "src/mame/drivers/apricot.cpp",
+ MAME_DIR .. "src/mame/drivers/apricotf.cpp",
+ MAME_DIR .. "src/mame/drivers/apricotp.cpp",
+ MAME_DIR .. "src/mame/machine/apricotkb.cpp",
+ MAME_DIR .. "src/mame/machine/apricotkb.h",
+ MAME_DIR .. "src/mame/drivers/victor9k.cpp",
+ MAME_DIR .. "src/mame/includes/victor9k.h",
+ MAME_DIR .. "src/mame/machine/victor9kb.cpp",
+ MAME_DIR .. "src/mame/machine/victor9kb.h",
+ MAME_DIR .. "src/mame/machine/victor9k_fdc.cpp",
+ MAME_DIR .. "src/mame/machine/victor9k_fdc.h",
+}
+
+createMESSProjects(_target, _subtarget, "adc")
+files {
+ MAME_DIR .. "src/mame/drivers/super6.cpp",
+ MAME_DIR .. "src/mame/includes/super6.h",
+ MAME_DIR .. "src/mame/drivers/superslave.cpp",
+ MAME_DIR .. "src/mame/includes/superslave.h",
+}
+
+createMESSProjects(_target, _subtarget, "agat")
+files {
+ MAME_DIR .. "src/mame/drivers/agat.cpp",
+ MAME_DIR .. "src/mame/includes/apple2.h",
+ MAME_DIR .. "src/mame/video/agat7.cpp",
+ MAME_DIR .. "src/mame/video/agat7.h",
+}
+
+createMESSProjects(_target, _subtarget, "alesis")
+files {
+ MAME_DIR .. "src/mame/drivers/alesis.cpp",
+ MAME_DIR .. "src/mame/includes/alesis.h",
+ MAME_DIR .. "src/mame/audio/alesis.cpp",
+ MAME_DIR .. "src/mame/video/alesis.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "altos")
+files {
+ MAME_DIR .. "src/mame/drivers/altos5.cpp",
+ MAME_DIR .. "src/mame/drivers/altos486.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "ami")
+files {
+ MAME_DIR .. "src/mame/drivers/hh_amis2k.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "amiga")
+files {
+ MAME_DIR .. "src/mame/drivers/amiga.cpp",
+ MAME_DIR .. "src/mame/includes/amiga.h",
+}
+
+createMESSProjects(_target, _subtarget, "ampro")
+files {
+ MAME_DIR .. "src/mame/drivers/lb186.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "amstrad")
+files {
+ MAME_DIR .. "src/mame/drivers/amstrad.cpp",
+ MAME_DIR .. "src/mame/includes/amstrad.h",
+ MAME_DIR .. "src/mame/machine/amstrad.cpp",
+ MAME_DIR .. "src/mame/drivers/amstr_pc.cpp",
+ MAME_DIR .. "src/mame/drivers/nc.cpp",
+ MAME_DIR .. "src/mame/includes/nc.h",
+ MAME_DIR .. "src/mame/machine/nc.cpp",
+ MAME_DIR .. "src/mame/video/nc.cpp",
+ MAME_DIR .. "src/mame/drivers/pc1512.cpp",
+ MAME_DIR .. "src/mame/includes/pc1512.h",
+ MAME_DIR .. "src/mame/machine/pc1512kb.cpp",
+ MAME_DIR .. "src/mame/machine/pc1512kb.h",
+ MAME_DIR .. "src/mame/video/pc1512.cpp",
+ MAME_DIR .. "src/mame/drivers/pcw.cpp",
+ MAME_DIR .. "src/mame/includes/pcw.h",
+ MAME_DIR .. "src/mame/video/pcw.cpp",
+ MAME_DIR .. "src/mame/drivers/pcw16.cpp",
+ MAME_DIR .. "src/mame/includes/pcw16.h",
+ MAME_DIR .. "src/mame/video/pcw16.cpp",
+ MAME_DIR .. "src/mame/drivers/pda600.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "apf")
+files {
+ MAME_DIR .. "src/mame/drivers/apf.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "apollo")
+files {
+ MAME_DIR .. "src/mame/drivers/apollo.cpp",
+ MAME_DIR .. "src/mame/includes/apollo.h",
+ MAME_DIR .. "src/mame/machine/apollo.cpp",
+ MAME_DIR .. "src/mame/machine/apollo_dbg.cpp",
+ MAME_DIR .. "src/mame/machine/apollo_kbd.cpp",
+ MAME_DIR .. "src/mame/machine/apollo_kbd.h",
+ MAME_DIR .. "src/mame/video/apollo.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "apple")
+files {
+ MAME_DIR .. "src/mame/drivers/apple1.cpp",
+ MAME_DIR .. "src/mame/drivers/apple2.cpp",
+ MAME_DIR .. "src/mame/includes/apple2.h",
+ MAME_DIR .. "src/mame/drivers/apple2e.cpp",
+ MAME_DIR .. "src/mame/includes/apple2e.h",
+ MAME_DIR .. "src/mame/machine/apple2.cpp",
+ MAME_DIR .. "src/mame/video/apple2.cpp",
+ MAME_DIR .. "src/mame/video/apple2.h",
+ MAME_DIR .. "src/mame/drivers/tk2000.cpp",
+ MAME_DIR .. "src/mame/drivers/apple2gs.cpp",
+ MAME_DIR .. "src/mame/includes/apple2gs.h",
+ MAME_DIR .. "src/mame/machine/apple2gs.cpp",
+ MAME_DIR .. "src/mame/video/apple2gs.cpp",
+ MAME_DIR .. "src/mame/drivers/apple3.cpp",
+ MAME_DIR .. "src/mame/includes/apple3.h",
+ MAME_DIR .. "src/mame/machine/apple3.cpp",
+ MAME_DIR .. "src/mame/video/apple3.cpp",
+ MAME_DIR .. "src/mame/drivers/lisa.cpp",
+ MAME_DIR .. "src/mame/includes/lisa.h",
+ MAME_DIR .. "src/mame/machine/lisa.cpp",
+ MAME_DIR .. "src/mame/drivers/lwriter.cpp",
+ MAME_DIR .. "src/mame/drivers/mac128.cpp",
+ MAME_DIR .. "src/mame/drivers/mac.cpp",
+ MAME_DIR .. "src/mame/includes/mac.h",
+ MAME_DIR .. "src/mame/machine/egret.cpp",
+ MAME_DIR .. "src/mame/machine/egret.h",
+ MAME_DIR .. "src/mame/machine/mac.cpp",
+ MAME_DIR .. "src/mame/machine/macadb.cpp",
+ MAME_DIR .. "src/mame/machine/macadb.h",
+ MAME_DIR .. "src/mame/machine/macrtc.cpp",
+ MAME_DIR .. "src/mame/machine/macrtc.h",
+ MAME_DIR .. "src/mame/machine/mackbd.cpp",
+ MAME_DIR .. "src/mame/machine/mackbd.h",
+ MAME_DIR .. "src/mame/machine/swim.cpp",
+ MAME_DIR .. "src/mame/machine/swim.h",
+ MAME_DIR .. "src/mame/video/mac.cpp",
+ MAME_DIR .. "src/mame/drivers/macpci.cpp",
+ MAME_DIR .. "src/mame/includes/macpci.h",
+ MAME_DIR .. "src/mame/machine/macpci.cpp",
+ MAME_DIR .. "src/mame/machine/cuda.cpp",
+ MAME_DIR .. "src/mame/machine/cuda.h",
+}
+
+createMESSProjects(_target, _subtarget, "applied")
+files {
+ MAME_DIR .. "src/mame/drivers/mbee.cpp",
+ MAME_DIR .. "src/mame/includes/mbee.h",
+ MAME_DIR .. "src/mame/machine/mbee.cpp",
+ MAME_DIR .. "src/mame/video/mbee.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "arcadia")
+files {
+ MAME_DIR .. "src/mame/drivers/arcadia.cpp",
+ MAME_DIR .. "src/mame/includes/arcadia.h",
+ MAME_DIR .. "src/mame/audio/arcadia.cpp",
+ MAME_DIR .. "src/mame/audio/arcadia.h",
+ MAME_DIR .. "src/mame/video/arcadia.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "ascii")
+files {
+ MAME_DIR .. "src/mame/drivers/msx.cpp",
+ MAME_DIR .. "src/mame/includes/msx.h",
+ MAME_DIR .. "src/mame/machine/msx.cpp",
+ MAME_DIR .. "src/mame/machine/msx_matsushita.cpp",
+ MAME_DIR .. "src/mame/machine/msx_matsushita.h",
+ MAME_DIR .. "src/mame/machine/msx_s1985.cpp",
+ MAME_DIR .. "src/mame/machine/msx_s1985.h",
+ MAME_DIR .. "src/mame/machine/msx_switched.h",
+ MAME_DIR .. "src/mame/machine/msx_systemflags.cpp",
+ MAME_DIR .. "src/mame/machine/msx_systemflags.h",
+}
+
+createMESSProjects(_target, _subtarget, "at")
+files {
+ MAME_DIR .. "src/mame/drivers/at.cpp",
+ MAME_DIR .. "src/mame/drivers/atpci.cpp",
+ MAME_DIR .. "src/mame/drivers/ps2.cpp",
+ MAME_DIR .. "src/mame/machine/at.h",
+ MAME_DIR .. "src/mame/machine/at.cpp",
+ MAME_DIR .. "src/mame/drivers/ct486.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "atari")
+files {
+ MAME_DIR .. "src/mame/drivers/a2600.cpp",
+ MAME_DIR .. "src/mame/drivers/a7800.cpp",
+ MAME_DIR .. "src/mame/video/maria.cpp",
+ MAME_DIR .. "src/mame/video/maria.h",
+ MAME_DIR .. "src/mame/drivers/atari400.cpp",
+ MAME_DIR .. "src/mame/machine/atarifdc.cpp",
+ MAME_DIR .. "src/mame/machine/atarifdc.h",
+ MAME_DIR .. "src/mame/drivers/atarist.cpp",
+ MAME_DIR .. "src/mame/includes/atarist.h",
+ MAME_DIR .. "src/mame/video/atarist.cpp",
+ MAME_DIR .. "src/mame/video/atarist.h",
+ MAME_DIR .. "src/mame/drivers/lynx.cpp",
+ MAME_DIR .. "src/mame/includes/lynx.h",
+ MAME_DIR .. "src/mame/audio/lynx.cpp",
+ MAME_DIR .. "src/mame/audio/lynx.h",
+ MAME_DIR .. "src/mame/machine/lynx.cpp",
+ MAME_DIR .. "src/mame/drivers/pofo.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "att")
+files {
+ MAME_DIR .. "src/mame/drivers/unixpc.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "bally")
+files {
+ MAME_DIR .. "src/mame/drivers/astrohome.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "banctec")
+files {
+ MAME_DIR .. "src/mame/drivers/banctec.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "bandai")
+files {
+ MAME_DIR .. "src/mame/drivers/sv8000.cpp",
+ MAME_DIR .. "src/mame/drivers/rx78.cpp",
+ MAME_DIR .. "src/mame/drivers/tamag1.cpp",
+ MAME_DIR .. "src/mame/drivers/wswan.cpp",
+ MAME_DIR .. "src/mame/includes/wswan.h",
+ MAME_DIR .. "src/mame/audio/wswan.cpp",
+ MAME_DIR .. "src/mame/audio/wswan.h",
+ MAME_DIR .. "src/mame/machine/wswan.cpp",
+ MAME_DIR .. "src/mame/video/wswan.cpp",
+ MAME_DIR .. "src/mame/video/wswan.h",
+}
+
+createMESSProjects(_target, _subtarget, "be")
+files {
+ MAME_DIR .. "src/mame/drivers/bebox.cpp",
+ MAME_DIR .. "src/mame/includes/bebox.h",
+ MAME_DIR .. "src/mame/machine/bebox.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "bnpo")
+files {
+ MAME_DIR .. "src/mame/drivers/b2m.cpp",
+ MAME_DIR .. "src/mame/includes/b2m.h",
+ MAME_DIR .. "src/mame/machine/b2m.cpp",
+ MAME_DIR .. "src/mame/video/b2m.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "bondwell")
+files {
+ MAME_DIR .. "src/mame/drivers/bw12.cpp",
+ MAME_DIR .. "src/mame/includes/bw12.h",
+ MAME_DIR .. "src/mame/drivers/bw2.cpp",
+ MAME_DIR .. "src/mame/includes/bw2.h",
+}
+
+createMESSProjects(_target, _subtarget, "booth")
+files {
+ MAME_DIR .. "src/mame/drivers/apexc.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "camputers")
+files {
+ MAME_DIR .. "src/mame/drivers/camplynx.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "canon")
+files {
+ MAME_DIR .. "src/mame/drivers/cat.cpp",
+ MAME_DIR .. "src/mame/drivers/x07.cpp",
+ MAME_DIR .. "src/mame/includes/x07.h",
+ MAME_DIR .. "src/mame/drivers/canon_s80.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "cantab")
+files {
+ MAME_DIR .. "src/mame/drivers/jupace.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "casio")
+files {
+ MAME_DIR .. "src/mame/drivers/casloopy.cpp",
+ MAME_DIR .. "src/mame/drivers/cfx9850.cpp",
+ MAME_DIR .. "src/mame/drivers/fp200.cpp",
+ MAME_DIR .. "src/mame/drivers/fp1100.cpp",
+ MAME_DIR .. "src/mame/drivers/fp6000.cpp",
+ MAME_DIR .. "src/mame/drivers/pb1000.cpp",
+ MAME_DIR .. "src/mame/drivers/pv1000.cpp",
+ MAME_DIR .. "src/mame/drivers/pv2000.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "cbm")
+files {
+ MAME_DIR .. "src/mame/drivers/c128.cpp",
+ MAME_DIR .. "src/mame/drivers/c64.cpp",
+ MAME_DIR .. "src/mame/drivers/c64dtv.cpp",
+ MAME_DIR .. "src/mame/drivers/c65.cpp",
+ MAME_DIR .. "src/mame/includes/c65.h",
+ MAME_DIR .. "src/mame/drivers/c900.cpp",
+ MAME_DIR .. "src/mame/drivers/cbm2.cpp",
+ MAME_DIR .. "src/mame/drivers/clcd.cpp",
+ MAME_DIR .. "src/mame/drivers/pet.cpp",
+ MAME_DIR .. "src/mame/drivers/plus4.cpp",
+ MAME_DIR .. "src/mame/drivers/vic10.cpp",
+ MAME_DIR .. "src/mame/drivers/vic20.cpp",
+ MAME_DIR .. "src/mame/machine/cbm_snqk.cpp",
+ MAME_DIR .. "src/mame/machine/cbm_snqk.h",
+ MAME_DIR .. "src/mame/drivers/mps1230.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "cccp")
+files {
+ MAME_DIR .. "src/mame/drivers/argo.cpp",
+ MAME_DIR .. "src/mame/drivers/cm1800.cpp",
+ MAME_DIR .. "src/mame/drivers/lviv.cpp",
+ MAME_DIR .. "src/mame/includes/lviv.h",
+ MAME_DIR .. "src/mame/machine/lviv.cpp",
+ MAME_DIR .. "src/mame/video/lviv.cpp",
+ MAME_DIR .. "src/mame/drivers/mikro80.cpp",
+ MAME_DIR .. "src/mame/includes/mikro80.h",
+ MAME_DIR .. "src/mame/machine/mikro80.cpp",
+ MAME_DIR .. "src/mame/video/mikro80.cpp",
+ MAME_DIR .. "src/mame/drivers/pk8000.cpp",
+ MAME_DIR .. "src/mame/includes/pk8000.h",
+ MAME_DIR .. "src/mame/drivers/pk8020.cpp",
+ MAME_DIR .. "src/mame/includes/pk8020.h",
+ MAME_DIR .. "src/mame/machine/pk8020.cpp",
+ MAME_DIR .. "src/mame/video/pk8020.cpp",
+ MAME_DIR .. "src/mame/drivers/pyl601.cpp",
+ MAME_DIR .. "src/mame/drivers/sm1800.cpp",
+ MAME_DIR .. "src/mame/drivers/sm7238.cpp",
+ MAME_DIR .. "src/mame/machine/km035.cpp",
+ MAME_DIR .. "src/mame/machine/km035.h",
+ MAME_DIR .. "src/mame/drivers/uknc.cpp",
+ MAME_DIR .. "src/mame/drivers/unior.cpp",
+ MAME_DIR .. "src/mame/drivers/ut88.cpp",
+ MAME_DIR .. "src/mame/includes/ut88.h",
+ MAME_DIR .. "src/mame/machine/ut88.cpp",
+ MAME_DIR .. "src/mame/video/ut88.cpp",
+ MAME_DIR .. "src/mame/drivers/vector06.cpp",
+ MAME_DIR .. "src/mame/includes/vector06.h",
+ MAME_DIR .. "src/mame/machine/vector06.cpp",
+ MAME_DIR .. "src/mame/video/vector06.cpp",
+ MAME_DIR .. "src/mame/drivers/vta2000.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "cce")
+files {
+ MAME_DIR .. "src/mame/drivers/mc1000.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "ccs")
+files {
+ MAME_DIR .. "src/mame/drivers/ccs2810.cpp",
+ MAME_DIR .. "src/mame/drivers/ccs300.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "chromatics")
+files {
+ MAME_DIR .. "src/mame/drivers/cgc7900.cpp",
+ MAME_DIR .. "src/mame/includes/cgc7900.h",
+ MAME_DIR .. "src/mame/video/cgc7900.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "coleco")
+files {
+ MAME_DIR .. "src/mame/drivers/adam.cpp",
+ MAME_DIR .. "src/mame/includes/adam.h",
+ MAME_DIR .. "src/mame/drivers/coleco.cpp",
+ MAME_DIR .. "src/mame/includes/coleco.h",
+ MAME_DIR .. "src/mame/machine/coleco.cpp",
+ MAME_DIR .. "src/mame/machine/coleco.h",
+}
+
+createMESSProjects(_target, _subtarget, "compugraphic")
+files {
+ MAME_DIR .. "src/mame/drivers/pwrview.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "cromemco")
+files {
+ MAME_DIR .. "src/mame/drivers/c10.cpp",
+ MAME_DIR .. "src/mame/drivers/mcb216.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "comx")
+files {
+ MAME_DIR .. "src/mame/drivers/comx35.cpp",
+ MAME_DIR .. "src/mame/includes/comx35.h",
+ MAME_DIR .. "src/mame/video/comx35.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "concept")
+files {
+ MAME_DIR .. "src/mame/drivers/concept.cpp",
+ MAME_DIR .. "src/mame/includes/concept.h",
+ MAME_DIR .. "src/mame/machine/concept.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "conitec")
+files {
+ MAME_DIR .. "src/mame/drivers/prof180x.cpp",
+ MAME_DIR .. "src/mame/includes/prof180x.h",
+ MAME_DIR .. "src/mame/drivers/prof80.cpp",
+ MAME_DIR .. "src/mame/includes/prof80.h",
+ MAME_DIR .. "src/mame/machine/prof80mmu.cpp",
+ MAME_DIR .. "src/mame/machine/prof80mmu.h",
+}
+
+createMESSProjects(_target, _subtarget, "cxg")
+files {
+ MAME_DIR .. "src/mame/drivers/cxgz80.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "cybiko")
+files {
+ MAME_DIR .. "src/mame/drivers/cybiko.cpp",
+ MAME_DIR .. "src/mame/includes/cybiko.h",
+ MAME_DIR .. "src/mame/machine/cybiko.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "dai")
+files {
+ MAME_DIR .. "src/mame/drivers/dai.cpp",
+ MAME_DIR .. "src/mame/includes/dai.h",
+ MAME_DIR .. "src/mame/audio/dai_snd.cpp",
+ MAME_DIR .. "src/mame/audio/dai_snd.h",
+ MAME_DIR .. "src/mame/machine/dai.cpp",
+ MAME_DIR .. "src/mame/video/dai.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "ddr")
+files {
+ MAME_DIR .. "src/mame/drivers/ac1.cpp",
+ MAME_DIR .. "src/mame/includes/ac1.h",
+ MAME_DIR .. "src/mame/machine/ac1.cpp",
+ MAME_DIR .. "src/mame/video/ac1.cpp",
+ MAME_DIR .. "src/mame/drivers/bcs3.cpp",
+ MAME_DIR .. "src/mame/drivers/c80.cpp",
+ MAME_DIR .. "src/mame/includes/c80.h",
+ MAME_DIR .. "src/mame/drivers/huebler.cpp",
+ MAME_DIR .. "src/mame/includes/huebler.h",
+ MAME_DIR .. "src/mame/drivers/jtc.cpp",
+ MAME_DIR .. "src/mame/drivers/kramermc.cpp",
+ MAME_DIR .. "src/mame/includes/kramermc.h",
+ MAME_DIR .. "src/mame/machine/kramermc.cpp",
+ MAME_DIR .. "src/mame/video/kramermc.cpp",
+ MAME_DIR .. "src/mame/drivers/llc.cpp",
+ MAME_DIR .. "src/mame/includes/llc.h",
+ MAME_DIR .. "src/mame/machine/llc.cpp",
+ MAME_DIR .. "src/mame/video/llc.cpp",
+ MAME_DIR .. "src/mame/drivers/nanos.cpp",
+ MAME_DIR .. "src/mame/drivers/pcm.cpp",
+ MAME_DIR .. "src/mame/drivers/vcs80.cpp",
+ MAME_DIR .. "src/mame/includes/vcs80.h",
+ MAME_DIR .. "src/mame/machine/k7659kb.cpp",
+ MAME_DIR .. "src/mame/machine/k7659kb.h",
+}
+
+createMESSProjects(_target, _subtarget, "dec")
+files {
+ MAME_DIR .. "src/mame/drivers/dct11em.cpp",
+ MAME_DIR .. "src/mame/drivers/dectalk.cpp",
+ MAME_DIR .. "src/mame/drivers/decwritr.cpp",
+ MAME_DIR .. "src/mame/drivers/pdp11.cpp",
+ MAME_DIR .. "src/mame/drivers/vax11.cpp",
+ MAME_DIR .. "src/mame/drivers/rainbow.cpp",
+ MAME_DIR .. "src/mame/drivers/vk100.cpp",
+ MAME_DIR .. "src/mame/drivers/vt100.cpp",
+ MAME_DIR .. "src/mame/drivers/vt220.cpp",
+ MAME_DIR .. "src/mame/drivers/vt240.cpp",
+ MAME_DIR .. "src/mame/drivers/vt320.cpp",
+ MAME_DIR .. "src/mame/drivers/vt520.cpp",
+ MAME_DIR .. "src/mame/machine/dec_lk201.cpp",
+ MAME_DIR .. "src/mame/machine/dec_lk201.h",
+ MAME_DIR .. "src/mame/machine/rx01.cpp",
+ MAME_DIR .. "src/mame/machine/rx01.h",
+ MAME_DIR .. "src/mame/video/vtvideo.cpp",
+ MAME_DIR .. "src/mame/video/vtvideo.h",
+}
+
+createMESSProjects(_target, _subtarget, "dicksmth")
+files {
+ MAME_DIR .. "src/mame/drivers/super80.cpp",
+ MAME_DIR .. "src/mame/includes/super80.h",
+ MAME_DIR .. "src/mame/machine/super80.cpp",
+ MAME_DIR .. "src/mame/video/super80.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "dms")
+files {
+ MAME_DIR .. "src/mame/drivers/dms5000.cpp",
+ MAME_DIR .. "src/mame/drivers/dms86.cpp",
+ MAME_DIR .. "src/mame/drivers/zsbc3.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "dragon")
+files {
+ MAME_DIR .. "src/mame/drivers/dgn_beta.cpp",
+ MAME_DIR .. "src/mame/includes/dgn_beta.h",
+ MAME_DIR .. "src/mame/machine/dgn_beta.cpp",
+ MAME_DIR .. "src/mame/video/dgn_beta.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "drc")
+files {
+ MAME_DIR .. "src/mame/drivers/zrt80.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "dulmont")
+files {
+ MAME_DIR .. "src/mame/drivers/magnum.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "eaca")
+files {
+ MAME_DIR .. "src/mame/drivers/cgenie.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "einis")
+files {
+ MAME_DIR .. "src/mame/drivers/pecom.cpp",
+ MAME_DIR .. "src/mame/includes/pecom.h",
+ MAME_DIR .. "src/mame/machine/pecom.cpp",
+ MAME_DIR .. "src/mame/video/pecom.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "elektrka")
+files {
+ MAME_DIR .. "src/mame/drivers/bk.cpp",
+ MAME_DIR .. "src/mame/includes/bk.h",
+ MAME_DIR .. "src/mame/machine/bk.cpp",
+ MAME_DIR .. "src/mame/video/bk.cpp",
+ MAME_DIR .. "src/mame/drivers/dvk_kcgd.cpp",
+ MAME_DIR .. "src/mame/drivers/dvk_ksm.cpp",
+ MAME_DIR .. "src/mame/machine/ms7004.cpp",
+ MAME_DIR .. "src/mame/machine/ms7004.h",
+ MAME_DIR .. "src/mame/drivers/mk85.cpp",
+ MAME_DIR .. "src/mame/drivers/mk90.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "elektor")
+files {
+ MAME_DIR .. "src/mame/drivers/ec65.cpp",
+ MAME_DIR .. "src/mame/drivers/elekscmp.cpp",
+ MAME_DIR .. "src/mame/drivers/junior.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "ensoniq")
+files {
+ MAME_DIR .. "src/mame/drivers/esq1.cpp",
+ MAME_DIR .. "src/mame/drivers/esq5505.cpp",
+ MAME_DIR .. "src/mame/drivers/esqasr.cpp",
+ MAME_DIR .. "src/mame/drivers/esqkt.cpp",
+ MAME_DIR .. "src/mame/drivers/esqmr.cpp",
+ MAME_DIR .. "src/mame/drivers/enmirage.cpp",
+ MAME_DIR .. "src/mame/machine/esqpanel.cpp",
+ MAME_DIR .. "src/mame/machine/esqpanel.h",
+ MAME_DIR .. "src/mame/machine/esqvfd.cpp",
+ MAME_DIR .. "src/mame/machine/esqvfd.h",
+ MAME_DIR .. "src/mame/machine/esqlcd.cpp",
+ MAME_DIR .. "src/mame/machine/esqlcd.h",
+}
+
+createMESSProjects(_target, _subtarget, "enterprise")
+files {
+ MAME_DIR .. "src/mame/drivers/ep64.cpp",
+ MAME_DIR .. "src/mame/video/nick.cpp",
+ MAME_DIR .. "src/mame/video/nick.h",
+}
+
+createMESSProjects(_target, _subtarget, "entex")
+files {
+ MAME_DIR .. "src/mame/drivers/advision.cpp",
+ MAME_DIR .. "src/mame/includes/advision.h",
+ MAME_DIR .. "src/mame/machine/advision.cpp",
+ MAME_DIR .. "src/mame/video/advision.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "epoch")
+files {
+ MAME_DIR .. "src/mame/drivers/gamepock.cpp",
+ MAME_DIR .. "src/mame/includes/gamepock.h",
+ MAME_DIR .. "src/mame/machine/gamepock.cpp",
+ MAME_DIR .. "src/mame/drivers/scv.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "epson")
+files {
+ MAME_DIR .. "src/mame/drivers/hx20.cpp",
+ MAME_DIR .. "src/mame/includes/hx20.h",
+ MAME_DIR .. "src/mame/drivers/px4.cpp",
+ MAME_DIR .. "src/mame/drivers/px8.cpp",
+ MAME_DIR .. "src/mame/includes/px8.h",
+ MAME_DIR .. "src/mame/drivers/qx10.cpp",
+ MAME_DIR .. "src/mame/machine/qx10kbd.cpp",
+ MAME_DIR .. "src/mame/machine/qx10kbd.h",
+}
+
+createMESSProjects(_target, _subtarget, "exidy")
+files {
+ MAME_DIR .. "src/mame/machine/sorcerer.cpp",
+ MAME_DIR .. "src/mame/drivers/sorcerer.cpp",
+ MAME_DIR .. "src/mame/includes/sorcerer.h",
+ MAME_DIR .. "src/mame/machine/micropolis.cpp",
+ MAME_DIR .. "src/mame/machine/micropolis.h",
+}
+
+createMESSProjects(_target, _subtarget, "fairch")
+files {
+ MAME_DIR .. "src/mame/drivers/channelf.cpp",
+ MAME_DIR .. "src/mame/includes/channelf.h",
+ MAME_DIR .. "src/mame/audio/channelf.cpp",
+ MAME_DIR .. "src/mame/audio/channelf.h",
+ MAME_DIR .. "src/mame/video/channelf.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "fairlight")
+files {
+ MAME_DIR .. "src/mame/drivers/cmi.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "fidelity")
+files {
+ MAME_DIR .. "src/mame/drivers/fidelz80.cpp",
+ MAME_DIR .. "src/mame/includes/fidelbase.h",
+ MAME_DIR .. "src/mame/drivers/fidel6502.cpp",
+ MAME_DIR .. "src/mame/drivers/fidel68k.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "force")
+files {
+ MAME_DIR .. "src/mame/drivers/miniforce.cpp",
+ MAME_DIR .. "src/mame/drivers/fccpu20.cpp",
+ MAME_DIR .. "src/mame/drivers/fccpu30.cpp",
+ MAME_DIR .. "src/mame/drivers/force68k.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "fujitsu")
+files {
+ MAME_DIR .. "src/mame/drivers/fmtowns.cpp",
+ MAME_DIR .. "src/mame/includes/fmtowns.h",
+ MAME_DIR .. "src/mame/video/fmtowns.cpp",
+ MAME_DIR .. "src/mame/machine/fm_scsi.cpp",
+ MAME_DIR .. "src/mame/machine/fm_scsi.h",
+ MAME_DIR .. "src/mame/machine/fmt_icmem.cpp",
+ MAME_DIR .. "src/mame/machine/fmt_icmem.h",
+ MAME_DIR .. "src/mame/drivers/fm7.cpp",
+ MAME_DIR .. "src/mame/includes/fm7.h",
+ MAME_DIR .. "src/mame/video/fm7.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "funtech")
+files {
+ MAME_DIR .. "src/mame/drivers/supracan.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "galaxy")
+files {
+ MAME_DIR .. "src/mame/drivers/galaxy.cpp",
+ MAME_DIR .. "src/mame/includes/galaxy.h",
+ MAME_DIR .. "src/mame/machine/galaxy.cpp",
+ MAME_DIR .. "src/mame/video/galaxy.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "gamepark")
+files {
+ MAME_DIR .. "src/mame/drivers/gp2x.cpp",
+ MAME_DIR .. "src/mame/drivers/gp32.cpp",
+ MAME_DIR .. "src/mame/includes/gp32.h",
+}
+
+createMESSProjects(_target, _subtarget, "gi")
+files {
+ MAME_DIR .. "src/mame/drivers/hh_pic16.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "grundy")
+files {
+ MAME_DIR .. "src/mame/drivers/newbrain.cpp",
+ MAME_DIR .. "src/mame/includes/newbrain.h",
+ MAME_DIR .. "src/mame/video/newbrain.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "hartung")
+files {
+ MAME_DIR .. "src/mame/drivers/gmaster.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "heathkit")
+files {
+ MAME_DIR .. "src/mame/drivers/et3400.cpp",
+ MAME_DIR .. "src/mame/drivers/h8.cpp",
+ MAME_DIR .. "src/mame/drivers/h19.cpp",
+ MAME_DIR .. "src/mame/drivers/h89.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "hegener")
+files {
+ MAME_DIR .. "src/mame/drivers/glasgow.cpp",
+ MAME_DIR .. "src/mame/drivers/mephisto.cpp",
+ MAME_DIR .. "src/mame/drivers/mmodular.cpp",
+ MAME_DIR .. "src/mame/drivers/risc2500.cpp",
+ MAME_DIR .. "src/mame/drivers/stratos.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "hitachi")
+files {
+ MAME_DIR .. "src/mame/drivers/b16.cpp",
+ MAME_DIR .. "src/mame/drivers/bmjr.cpp",
+ MAME_DIR .. "src/mame/drivers/bml3.cpp",
+ MAME_DIR .. "src/mame/drivers/hh_hmcs40.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "homebrew")
+files {
+ MAME_DIR .. "src/mame/drivers/4004clk.cpp",
+ MAME_DIR .. "src/mame/drivers/68ksbc.cpp",
+ MAME_DIR .. "src/mame/drivers/craft.cpp",
+ MAME_DIR .. "src/mame/drivers/homez80.cpp",
+ MAME_DIR .. "src/mame/drivers/p112.cpp",
+ MAME_DIR .. "src/mame/drivers/phunsy.cpp",
+ MAME_DIR .. "src/mame/drivers/pimps.cpp",
+ MAME_DIR .. "src/mame/drivers/ravens.cpp",
+ MAME_DIR .. "src/mame/drivers/sbc6510.cpp",
+ MAME_DIR .. "src/mame/drivers/sitcom.cpp",
+ MAME_DIR .. "src/mame/drivers/slc1.cpp",
+ MAME_DIR .. "src/mame/drivers/uzebox.cpp",
+ MAME_DIR .. "src/mame/drivers/z80dev.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "homelab")
+files {
+ MAME_DIR .. "src/mame/drivers/homelab.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "hp")
+files {
+ MAME_DIR .. "src/mame/drivers/hp16500.cpp",
+ MAME_DIR .. "src/mame/drivers/hp48.cpp",
+ MAME_DIR .. "src/mame/includes/hp48.h",
+ MAME_DIR .. "src/mame/machine/hp48.cpp",
+ MAME_DIR .. "src/mame/video/hp48.cpp",
+ MAME_DIR .. "src/mame/drivers/hp49gp.cpp",
+ MAME_DIR .. "src/mame/drivers/hp9845.cpp",
+ MAME_DIR .. "src/mame/drivers/hp9k.cpp",
+ MAME_DIR .. "src/mame/drivers/hp9k_3xx.cpp",
+ MAME_DIR .. "src/mame/drivers/hp64k.cpp",
+ MAME_DIR .. "src/mame/drivers/hp_ipc.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "hec2hrp")
+files {
+ MAME_DIR .. "src/mame/drivers/hec2hrp.cpp",
+ MAME_DIR .. "src/mame/includes/hec2hrp.h",
+ MAME_DIR .. "src/mame/machine/hec2hrp.cpp",
+ MAME_DIR .. "src/mame/video/hec2hrp.cpp",
+ MAME_DIR .. "src/mame/drivers/interact.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "heurikon")
+files {
+ MAME_DIR .. "src/mame/drivers/hk68v10.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "ibm6580")
+files {
+ MAME_DIR .. "src/mame/drivers/ibm6580.cpp",
+ MAME_DIR .. "src/mame/machine/ibm6580_kbd.cpp",
+ MAME_DIR .. "src/mame/machine/ibm6580_kbd.h",
+ MAME_DIR .. "src/mame/machine/ibm6580_fdc.cpp",
+ MAME_DIR .. "src/mame/machine/ibm6580_fdc.h",
+}
+
+createMESSProjects(_target, _subtarget, "ie15")
+files {
+ MAME_DIR .. "src/mame/drivers/ie15.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "intel")
+files {
+ MAME_DIR .. "src/mame/drivers/basic52.cpp",
+ MAME_DIR .. "src/mame/drivers/imds.cpp",
+ MAME_DIR .. "src/mame/drivers/ipc.cpp",
+ MAME_DIR .. "src/mame/drivers/ipds.cpp",
+ MAME_DIR .. "src/mame/drivers/isbc.cpp",
+ MAME_DIR .. "src/mame/drivers/isbc8010.cpp",
+ MAME_DIR .. "src/mame/drivers/isbc8030.cpp",
+ MAME_DIR .. "src/mame/machine/isbc_215g.cpp",
+ MAME_DIR .. "src/mame/machine/isbc_215g.h",
+ MAME_DIR .. "src/mame/machine/isbc_208.cpp",
+ MAME_DIR .. "src/mame/machine/isbc_208.h",
+ MAME_DIR .. "src/mame/drivers/rex6000.cpp",
+ MAME_DIR .. "src/mame/drivers/sdk80.cpp",
+ MAME_DIR .. "src/mame/drivers/sdk85.cpp",
+ MAME_DIR .. "src/mame/drivers/sdk86.cpp",
+ MAME_DIR .. "src/mame/drivers/imds2.cpp",
+ MAME_DIR .. "src/mame/includes/imds2.h",
+}
+
+createMESSProjects(_target, _subtarget, "imp")
+files {
+ MAME_DIR .. "src/mame/drivers/tim011.cpp",
+ MAME_DIR .. "src/mame/drivers/tim100.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "interpro")
+files {
+ MAME_DIR .. "src/mame/drivers/interpro.cpp",
+ MAME_DIR .. "src/mame/includes/interpro.h",
+ MAME_DIR .. "src/mame/machine/cammu.h",
+ MAME_DIR .. "src/mame/machine/cammu.cpp",
+ MAME_DIR .. "src/mame/machine/interpro_ioga.h",
+ MAME_DIR .. "src/mame/machine/interpro_ioga.cpp",
+ MAME_DIR .. "src/mame/machine/interpro_ioga.h",
+ MAME_DIR .. "src/mame/machine/interpro_ioga.cpp",
+ MAME_DIR .. "src/mame/machine/interpro_mcga.h",
+ MAME_DIR .. "src/mame/machine/interpro_mcga.cpp",
+ MAME_DIR .. "src/mame/machine/interpro_sga.h",
+ MAME_DIR .. "src/mame/machine/interpro_sga.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "interton")
+files {
+ MAME_DIR .. "src/mame/drivers/vc4000.cpp",
+ MAME_DIR .. "src/mame/includes/vc4000.h",
+ MAME_DIR .. "src/mame/audio/vc4000.cpp",
+ MAME_DIR .. "src/mame/audio/vc4000.h",
+ MAME_DIR .. "src/mame/video/vc4000.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "intv")
+files {
+ MAME_DIR .. "src/mame/drivers/intv.cpp",
+ MAME_DIR .. "src/mame/includes/intv.h",
+ MAME_DIR .. "src/mame/machine/intv.cpp",
+ MAME_DIR .. "src/mame/video/intv.cpp",
+ MAME_DIR .. "src/mame/video/stic.cpp",
+ MAME_DIR .. "src/mame/video/stic.h",
+}
+
+createMESSProjects(_target, _subtarget, "isc")
+files {
+ MAME_DIR .. "src/mame/drivers/compucolor.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "kaypro")
+files {
+ MAME_DIR .. "src/mame/drivers/kaypro.cpp",
+ MAME_DIR .. "src/mame/includes/kaypro.h",
+ MAME_DIR .. "src/mame/machine/kaypro.cpp",
+ MAME_DIR .. "src/mame/machine/kay_kbd.cpp",
+ MAME_DIR .. "src/mame/machine/kay_kbd.h",
+ MAME_DIR .. "src/mame/video/kaypro.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "koei")
+files {
+ MAME_DIR .. "src/mame/drivers/pasogo.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "kyocera")
+files {
+ MAME_DIR .. "src/mame/drivers/kyocera.cpp",
+ MAME_DIR .. "src/mame/includes/kyocera.h",
+ MAME_DIR .. "src/mame/video/kyocera.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "luxor")
+files {
+ MAME_DIR .. "src/mame/drivers/abc80.cpp",
+ MAME_DIR .. "src/mame/includes/abc80.h",
+ MAME_DIR .. "src/mame/machine/abc80kb.cpp",
+ MAME_DIR .. "src/mame/machine/abc80kb.h",
+ MAME_DIR .. "src/mame/video/abc80.cpp",
+ MAME_DIR .. "src/mame/drivers/abc80x.cpp",
+ MAME_DIR .. "src/mame/includes/abc80x.h",
+ MAME_DIR .. "src/mame/video/abc800.cpp",
+ MAME_DIR .. "src/mame/video/abc800.h",
+ MAME_DIR .. "src/mame/video/abc802.cpp",
+ MAME_DIR .. "src/mame/video/abc802.h",
+ MAME_DIR .. "src/mame/video/abc806.cpp",
+ MAME_DIR .. "src/mame/video/abc806.h",
+ MAME_DIR .. "src/mame/drivers/abc1600.cpp",
+ MAME_DIR .. "src/mame/includes/abc1600.h",
+ MAME_DIR .. "src/mame/machine/abc1600mac.cpp",
+ MAME_DIR .. "src/mame/machine/abc1600mac.h",
+ MAME_DIR .. "src/mame/video/abc1600.cpp",
+ MAME_DIR .. "src/mame/video/abc1600.h",
+}
+
+createMESSProjects(_target, _subtarget, "magnavox")
+files {
+ MAME_DIR .. "src/mame/drivers/odyssey2.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "makerbot")
+files {
+ MAME_DIR .. "src/mame/drivers/replicator.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "mattel")
+files {
+ MAME_DIR .. "src/mame/drivers/aquarius.cpp",
+ MAME_DIR .. "src/mame/includes/aquarius.h",
+ MAME_DIR .. "src/mame/video/aquarius.cpp",
+ MAME_DIR .. "src/mame/drivers/juicebox.cpp",
+ MAME_DIR .. "src/mame/drivers/hyperscan.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "matsushi")
+files {
+ MAME_DIR .. "src/mame/drivers/jr100.cpp",
+ MAME_DIR .. "src/mame/drivers/jr200.cpp",
+ MAME_DIR .. "src/mame/drivers/myb3k.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "mb")
+files {
+ MAME_DIR .. "src/mame/drivers/microvsn.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "mchester")
+files {
+ MAME_DIR .. "src/mame/drivers/ssem.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "memotech")
+files {
+ MAME_DIR .. "src/mame/drivers/mtx.cpp",
+ MAME_DIR .. "src/mame/includes/mtx.h",
+ MAME_DIR .. "src/mame/machine/mtx.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "mgu")
+files {
+ MAME_DIR .. "src/mame/drivers/irisha.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "microkey")
+files {
+ MAME_DIR .. "src/mame/drivers/primo.cpp",
+ MAME_DIR .. "src/mame/includes/primo.h",
+ MAME_DIR .. "src/mame/machine/primo.cpp",
+ MAME_DIR .. "src/mame/video/primo.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "microsoft")
+files {
+ MAME_DIR .. "src/mame/drivers/xbox.cpp",
+ MAME_DIR .. "src/mame/includes/xbox.h",
+ MAME_DIR .. "src/mame/includes/xbox_usb.h",
+}
+
+createMESSProjects(_target, _subtarget, "mit")
+files {
+ MAME_DIR .. "src/mame/drivers/tx0.cpp",
+ MAME_DIR .. "src/mame/includes/tx0.h",
+ MAME_DIR .. "src/mame/video/crt.cpp",
+ MAME_DIR .. "src/mame/video/crt.h",
+ MAME_DIR .. "src/mame/video/tx0.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "mits")
+files {
+ MAME_DIR .. "src/mame/drivers/altair.cpp",
+ MAME_DIR .. "src/mame/drivers/mits680b.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "mitsubishi")
+files {
+ MAME_DIR .. "src/mame/drivers/hh_melps4.cpp",
+ MAME_DIR .. "src/mame/drivers/multi8.cpp",
+ MAME_DIR .. "src/mame/drivers/multi16.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "mizar")
+files {
+ MAME_DIR .. "src/mame/drivers/mzr8105.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "morrow")
+files {
+ MAME_DIR .. "src/mame/drivers/microdec.cpp",
+ MAME_DIR .. "src/mame/drivers/mpz80.cpp",
+ MAME_DIR .. "src/mame/includes/mpz80.h",
+ MAME_DIR .. "src/mame/drivers/tricep.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "mos")
+files {
+ MAME_DIR .. "src/mame/drivers/kim1.cpp",
+ MAME_DIR .. "src/mame/includes/kim1.h",
+}
+
+createMESSProjects(_target, _subtarget, "motorola")
+files {
+ MAME_DIR .. "src/mame/drivers/m6805evs.cpp",
+ MAME_DIR .. "src/mame/drivers/m68705prg.cpp",
+ MAME_DIR .. "src/mame/drivers/mekd2.cpp",
+ MAME_DIR .. "src/mame/drivers/mvme147.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "multitch")
+files {
+ MAME_DIR .. "src/mame/drivers/mkit09.cpp",
+ MAME_DIR .. "src/mame/drivers/mpf1.cpp",
+ MAME_DIR .. "src/mame/includes/mpf1.h",
+}
+
+createMESSProjects(_target, _subtarget, "nakajima")
+files {
+ MAME_DIR .. "src/mame/drivers/nakajies.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "nascom")
+files {
+ MAME_DIR .. "src/mame/drivers/nascom1.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "ne")
+files {
+ MAME_DIR .. "src/mame/drivers/z80ne.cpp",
+ MAME_DIR .. "src/mame/includes/z80ne.h",
+ MAME_DIR .. "src/mame/machine/z80ne.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "nec")
+files {
+ MAME_DIR .. "src/mame/drivers/apc.cpp",
+ MAME_DIR .. "src/mame/drivers/pce.cpp",
+ MAME_DIR .. "src/mame/includes/pce.h",
+ MAME_DIR .. "src/mame/machine/pce.cpp",
+ MAME_DIR .. "src/mame/machine/pce_cd.cpp",
+ MAME_DIR .. "src/mame/machine/pce_cd.h",
+ MAME_DIR .. "src/mame/drivers/pcfx.cpp",
+ MAME_DIR .. "src/mame/drivers/pc6001.cpp",
+ MAME_DIR .. "src/mame/drivers/pc8401a.cpp",
+ MAME_DIR .. "src/mame/includes/pc8401a.h",
+ MAME_DIR .. "src/mame/video/pc8401a.cpp",
+ MAME_DIR .. "src/mame/drivers/pc8001.cpp",
+ MAME_DIR .. "src/mame/includes/pc8001.h",
+ MAME_DIR .. "src/mame/drivers/pc8801.cpp",
+ MAME_DIR .. "src/mame/drivers/pc88va.cpp",
+ MAME_DIR .. "src/mame/drivers/pc100.cpp",
+ MAME_DIR .. "src/mame/drivers/pc9801.cpp",
+ MAME_DIR .. "src/mame/machine/pc9801_26.cpp",
+ MAME_DIR .. "src/mame/machine/pc9801_26.h",
+ MAME_DIR .. "src/mame/machine/pc9801_86.cpp",
+ MAME_DIR .. "src/mame/machine/pc9801_86.h",
+ MAME_DIR .. "src/mame/machine/pc9801_118.cpp",
+ MAME_DIR .. "src/mame/machine/pc9801_118.h",
+ MAME_DIR .. "src/mame/machine/pc9801_cbus.cpp",
+ MAME_DIR .. "src/mame/machine/pc9801_cbus.h",
+ MAME_DIR .. "src/mame/machine/pc9801_kbd.cpp",
+ MAME_DIR .. "src/mame/machine/pc9801_kbd.h",
+ MAME_DIR .. "src/mame/machine/pc9801_cd.cpp",
+ MAME_DIR .. "src/mame/machine/pc9801_cd.h",
+ MAME_DIR .. "src/mame/drivers/tk80bs.cpp",
+ MAME_DIR .. "src/mame/drivers/hh_ucom4.cpp",
+ MAME_DIR .. "src/mame/includes/hh_ucom4.h",
+}
+
+createMESSProjects(_target, _subtarget, "netronic")
+files {
+ MAME_DIR .. "src/mame/drivers/elf.cpp",
+ MAME_DIR .. "src/mame/includes/elf.h",
+ MAME_DIR .. "src/mame/drivers/exp85.cpp",
+ MAME_DIR .. "src/mame/includes/exp85.h",
+}
+
+createMESSProjects(_target, _subtarget, "next")
+files {
+ MAME_DIR .. "src/mame/drivers/next.cpp",
+ MAME_DIR .. "src/mame/includes/next.h",
+ MAME_DIR .. "src/mame/machine/nextkbd.cpp",
+ MAME_DIR .. "src/mame/machine/nextkbd.h",
+ MAME_DIR .. "src/mame/machine/nextmo.cpp",
+ MAME_DIR .. "src/mame/machine/nextmo.h",
+}
+
+createMESSProjects(_target, _subtarget, "nintendo")
+files {
+ MAME_DIR .. "src/mame/drivers/gb.cpp",
+ MAME_DIR .. "src/mame/includes/gb.h",
+ MAME_DIR .. "src/mame/machine/gb.cpp",
+ MAME_DIR .. "src/mame/drivers/gba.cpp",
+ MAME_DIR .. "src/mame/includes/gba.h",
+ MAME_DIR .. "src/mame/drivers/n64.cpp",
+ MAME_DIR .. "src/mame/includes/n64.h",
+ MAME_DIR .. "src/mame/drivers/nes.cpp",
+ MAME_DIR .. "src/mame/includes/nes.h",
+ MAME_DIR .. "src/mame/machine/nes.cpp",
+ MAME_DIR .. "src/mame/video/nes.cpp",
+ MAME_DIR .. "src/mame/drivers/pokemini.cpp",
+ MAME_DIR .. "src/mame/drivers/snes.cpp",
+ MAME_DIR .. "src/mame/includes/snes.h",
+ MAME_DIR .. "src/mame/machine/snescx4.cpp",
+ MAME_DIR .. "src/mame/machine/snescx4.h",
+ MAME_DIR .. "src/mame/machine/cx4data.hxx",
+ MAME_DIR .. "src/mame/machine/cx4fn.hxx",
+ MAME_DIR .. "src/mame/machine/cx4oam.hxx",
+ MAME_DIR .. "src/mame/machine/cx4ops.hxx",
+ MAME_DIR .. "src/mame/drivers/vboy.cpp",
+ MAME_DIR .. "src/mame/audio/vboy.cpp",
+ MAME_DIR .. "src/mame/audio/vboy.h",
+}
+
+createMESSProjects(_target, _subtarget, "nokia")
+files {
+ MAME_DIR .. "src/mame/drivers/mikromik.cpp",
+ MAME_DIR .. "src/mame/includes/mikromik.h",
+ MAME_DIR .. "src/mame/machine/mm1kb.cpp",
+ MAME_DIR .. "src/mame/machine/mm1kb.h",
+ MAME_DIR .. "src/mame/video/mikromik.cpp",
+ MAME_DIR .. "src/mame/drivers/nokia_3310.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "northstar")
+files {
+ MAME_DIR .. "src/mame/drivers/horizon.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "novag")
+files {
+ MAME_DIR .. "src/mame/drivers/mk1.cpp",
+ MAME_DIR .. "src/mame/drivers/mk2.cpp",
+ MAME_DIR .. "src/mame/drivers/novag6502.cpp",
+ MAME_DIR .. "src/mame/drivers/novagbase.h",
+ MAME_DIR .. "src/mame/drivers/novag68k.cpp",
+ MAME_DIR .. "src/mame/drivers/novagmcs48.cpp",
+ MAME_DIR .. "src/mame/drivers/ssystem3.cpp",
+ MAME_DIR .. "src/mame/includes/ssystem3.h",
+ MAME_DIR .. "src/mame/video/ssystem3.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "olivetti")
+files {
+ MAME_DIR .. "src/mame/drivers/m20.cpp",
+ MAME_DIR .. "src/mame/machine/m20_kbd.cpp",
+ MAME_DIR .. "src/mame/machine/m20_kbd.h",
+ MAME_DIR .. "src/mame/machine/m20_8086.cpp",
+ MAME_DIR .. "src/mame/machine/m20_8086.h",
+ MAME_DIR .. "src/mame/drivers/m24.cpp",
+ MAME_DIR .. "src/mame/machine/m24_kbd.cpp",
+ MAME_DIR .. "src/mame/machine/m24_kbd.h",
+ MAME_DIR .. "src/mame/machine/m24_z8000.cpp",
+ MAME_DIR .. "src/mame/machine/m24_z8000.h",
+}
+
+createMESSProjects(_target, _subtarget, "olympia")
+files {
+ MAME_DIR .. "src/mame/drivers/peoplepc.cpp"
+}
+
+createMESSProjects(_target, _subtarget, "ns")
+files {
+ MAME_DIR .. "src/mame/drivers/hh_cop400.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "omnibyte")
+files {
+ MAME_DIR .. "src/mame/drivers/msbc1.cpp",
+ MAME_DIR .. "src/mame/includes/msbc1.h",
+ MAME_DIR .. "src/mame/drivers/ob68k1a.cpp",
+ MAME_DIR .. "src/mame/includes/ob68k1a.h",
+}
+
+createMESSProjects(_target, _subtarget, "orion")
+files {
+ MAME_DIR .. "src/mame/drivers/orion.cpp",
+ MAME_DIR .. "src/mame/includes/orion.h",
+ MAME_DIR .. "src/mame/machine/orion.cpp",
+ MAME_DIR .. "src/mame/video/orion.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "osborne")
+files {
+ MAME_DIR .. "src/mame/drivers/osborne1.cpp",
+ MAME_DIR .. "src/mame/includes/osborne1.h",
+ MAME_DIR .. "src/mame/machine/osborne1.cpp",
+ MAME_DIR .. "src/mame/drivers/osbexec.cpp",
+ MAME_DIR .. "src/mame/drivers/vixen.cpp",
+ MAME_DIR .. "src/mame/includes/vixen.h",
+}
+
+createMESSProjects(_target, _subtarget, "osi")
+files {
+ MAME_DIR .. "src/mame/drivers/osi.cpp",
+ MAME_DIR .. "src/mame/includes/osi.h",
+ MAME_DIR .. "src/mame/video/osi.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "palm")
+files {
+ MAME_DIR .. "src/mame/drivers/palm.cpp",
+ MAME_DIR .. "src/mame/drivers/palm_dbg.hxx",
+ MAME_DIR .. "src/mame/drivers/palmz22.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "pitronic")
+files {
+ MAME_DIR .. "src/mame/drivers/beta.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "pc")
+files {
+ MAME_DIR .. "src/mame/drivers/asst128.cpp",
+ MAME_DIR .. "src/mame/drivers/europc.cpp",
+ MAME_DIR .. "src/mame/drivers/genpc.cpp",
+ MAME_DIR .. "src/mame/drivers/ibmpc.cpp",
+ MAME_DIR .. "src/mame/drivers/ibmpcjr.cpp",
+ MAME_DIR .. "src/mame/drivers/pc.cpp",
+ MAME_DIR .. "src/mame/drivers/pcipc.cpp",
+ MAME_DIR .. "src/mame/drivers/tandy1t.cpp",
+ MAME_DIR .. "src/mame/drivers/tosh1000.cpp",
+ MAME_DIR .. "src/mame/video/pc_t1t.cpp",
+ MAME_DIR .. "src/mame/video/pc_t1t.h",
+}
+
+createMESSProjects(_target, _subtarget, "pdp1")
+files {
+ MAME_DIR .. "src/mame/drivers/pdp1.cpp",
+ MAME_DIR .. "src/mame/includes/pdp1.h",
+ MAME_DIR .. "src/mame/video/pdp1.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "pel")
+files {
+ MAME_DIR .. "src/mame/drivers/galeb.cpp",
+ MAME_DIR .. "src/mame/includes/galeb.h",
+ MAME_DIR .. "src/mame/video/galeb.cpp",
+ MAME_DIR .. "src/mame/drivers/orao.cpp",
+ MAME_DIR .. "src/mame/includes/orao.h",
+ MAME_DIR .. "src/mame/machine/orao.cpp",
+ MAME_DIR .. "src/mame/video/orao.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "philips")
+files {
+ MAME_DIR .. "src/mame/drivers/p2000t.cpp",
+ MAME_DIR .. "src/mame/includes/p2000t.h",
+ MAME_DIR .. "src/mame/machine/p2000t.cpp",
+ MAME_DIR .. "src/mame/video/p2000t.cpp",
+ MAME_DIR .. "src/mame/drivers/vg5k.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "poly88")
+files {
+ MAME_DIR .. "src/mame/drivers/poly88.cpp",
+ MAME_DIR .. "src/mame/includes/poly88.h",
+ MAME_DIR .. "src/mame/machine/poly88.cpp",
+ MAME_DIR .. "src/mame/video/poly88.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "prodigy")
+files {
+ MAME_DIR .. "src/mame/drivers/prodigy.cpp",
+ MAME_DIR .. "src/mame/machine/nl_prodigy.cpp",
+ MAME_DIR .. "src/mame/machine/nl_prodigy.h",
+}
+
+createMESSProjects(_target, _subtarget, "psion")
+files {
+ MAME_DIR .. "src/mame/drivers/psion.cpp",
+ MAME_DIR .. "src/mame/includes/psion.h",
+ MAME_DIR .. "src/mame/machine/psion_pack.cpp",
+ MAME_DIR .. "src/mame/machine/psion_pack.h",
+}
+
+createMESSProjects(_target, _subtarget, "radio")
+files {
+ MAME_DIR .. "src/mame/drivers/apogee.cpp",
+ MAME_DIR .. "src/mame/drivers/mikrosha.cpp",
+ MAME_DIR .. "src/mame/drivers/partner.cpp",
+ MAME_DIR .. "src/mame/includes/partner.h",
+ MAME_DIR .. "src/mame/machine/partner.cpp",
+ MAME_DIR .. "src/mame/drivers/radio86.cpp",
+ MAME_DIR .. "src/mame/includes/radio86.h",
+ MAME_DIR .. "src/mame/machine/radio86.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "rca")
+files {
+ MAME_DIR .. "src/mame/drivers/microkit.cpp",
+ MAME_DIR .. "src/mame/drivers/studio2.cpp",
+ MAME_DIR .. "src/mame/drivers/vip.cpp",
+ MAME_DIR .. "src/mame/includes/vip.h",
+}
+
+createMESSProjects(_target, _subtarget, "regnecentralen")
+files {
+ MAME_DIR .. "src/mame/drivers/rc702.cpp",
+ MAME_DIR .. "src/mame/drivers/rc759.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "ritam")
+files {
+ MAME_DIR .. "src/mame/drivers/monty.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "rm")
+files {
+ MAME_DIR .. "src/mame/drivers/rm380z.cpp",
+ MAME_DIR .. "src/mame/includes/rm380z.h",
+ MAME_DIR .. "src/mame/machine/rm380z.cpp",
+ MAME_DIR .. "src/mame/video/rm380z.cpp",
+ MAME_DIR .. "src/mame/drivers/rmnimbus.cpp",
+ MAME_DIR .. "src/mame/includes/rmnimbus.h",
+ MAME_DIR .. "src/mame/machine/rmnimbus.cpp",
+ MAME_DIR .. "src/mame/video/rmnimbus.cpp",
+ MAME_DIR .. "src/mame/machine/rmnkbd.cpp",
+ MAME_DIR .. "src/mame/machine/rmnkbd.h",
+}
+
+createMESSProjects(_target, _subtarget, "robotron")
+files {
+ MAME_DIR .. "src/mame/drivers/a5105.cpp",
+ MAME_DIR .. "src/mame/drivers/a51xx.cpp",
+ MAME_DIR .. "src/mame/drivers/a7150.cpp",
+ MAME_DIR .. "src/mame/drivers/k1003.cpp",
+ MAME_DIR .. "src/mame/drivers/k8915.cpp",
+ MAME_DIR .. "src/mame/drivers/rt1715.cpp",
+ MAME_DIR .. "src/mame/drivers/z1013.cpp",
+ MAME_DIR .. "src/mame/drivers/z9001.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "roland")
+files {
+ MAME_DIR .. "src/mame/drivers/rmt32.cpp",
+ MAME_DIR .. "src/mame/drivers/rd110.cpp",
+ MAME_DIR .. "src/mame/drivers/rsc55.cpp",
+ MAME_DIR .. "src/mame/drivers/tb303.cpp",
+ MAME_DIR .. "src/mame/drivers/tr606.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "rolm")
+files {
+ MAME_DIR .. "src/mame/drivers/r9751.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "rockwell")
+files {
+ MAME_DIR .. "src/mame/drivers/aim65.cpp",
+ MAME_DIR .. "src/mame/includes/aim65.h",
+ MAME_DIR .. "src/mame/machine/aim65.cpp",
+ MAME_DIR .. "src/mame/drivers/aim65_40.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "saturn")
+files {
+ MAME_DIR .. "src/mame/drivers/st17xx.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "sage")
+files {
+ MAME_DIR .. "src/mame/drivers/sage2.cpp",
+ MAME_DIR .. "src/mame/includes/sage2.h",
+}
+
+createMESSProjects(_target, _subtarget, "samcoupe")
+files {
+ MAME_DIR .. "src/mame/drivers/samcoupe.cpp",
+ MAME_DIR .. "src/mame/includes/samcoupe.h",
+ MAME_DIR .. "src/mame/machine/samcoupe.cpp",
+ MAME_DIR .. "src/mame/video/samcoupe.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "samsung")
+files {
+ MAME_DIR .. "src/mame/drivers/spc1000.cpp",
+ MAME_DIR .. "src/mame/drivers/spc1500.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "sanyo")
+files {
+ MAME_DIR .. "src/mame/drivers/mbc200.cpp",
+ MAME_DIR .. "src/mame/drivers/mbc55x.cpp",
+ MAME_DIR .. "src/mame/includes/mbc55x.h",
+ MAME_DIR .. "src/mame/machine/mbc55x.cpp",
+ MAME_DIR .. "src/mame/video/mbc55x.cpp",
+ MAME_DIR .. "src/mame/drivers/phc25.cpp",
+ MAME_DIR .. "src/mame/includes/phc25.h",
+}
+
+createMESSProjects(_target, _subtarget, "sega")
+files {
+ MAME_DIR .. "src/mame/drivers/dccons.cpp",
+ MAME_DIR .. "src/mame/includes/dccons.h",
+ MAME_DIR .. "src/mame/machine/dccons.cpp",
+ MAME_DIR .. "src/mame/drivers/megadriv.cpp",
+ MAME_DIR .. "src/mame/includes/megadriv.h",
+ MAME_DIR .. "src/mame/drivers/segapico.cpp",
+ MAME_DIR .. "src/mame/drivers/sega_sawatte.cpp",
+ MAME_DIR .. "src/mame/drivers/segapm.cpp",
+ MAME_DIR .. "src/mame/drivers/sg1000.cpp",
+ MAME_DIR .. "src/mame/includes/sg1000.h",
+ MAME_DIR .. "src/mame/drivers/sms.cpp",
+ MAME_DIR .. "src/mame/includes/sms.h",
+ MAME_DIR .. "src/mame/machine/sms.cpp",
+ MAME_DIR .. "src/mame/drivers/svmu.cpp",
+ MAME_DIR .. "src/mame/machine/mega32x.cpp",
+ MAME_DIR .. "src/mame/machine/mega32x.h",
+ MAME_DIR .. "src/mame/machine/megacd.cpp",
+ MAME_DIR .. "src/mame/machine/megacd.h",
+ MAME_DIR .. "src/mame/machine/megacdcd.cpp",
+ MAME_DIR .. "src/mame/machine/megacdcd.h",
+}
+
+createMESSProjects(_target, _subtarget, "sequential")
+files {
+ MAME_DIR .. "src/mame/drivers/prophet600.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "sgi")
+files {
+ MAME_DIR .. "src/mame/machine/sgi.cpp",
+ MAME_DIR .. "src/mame/machine/sgi.h",
+ MAME_DIR .. "src/mame/drivers/iris3130.cpp",
+ MAME_DIR .. "src/mame/drivers/4dpi.cpp",
+ MAME_DIR .. "src/mame/drivers/indigo.cpp",
+ MAME_DIR .. "src/mame/drivers/indy_indigo2.cpp",
+ MAME_DIR .. "src/mame/video/newport.cpp",
+ MAME_DIR .. "src/mame/video/newport.h",
+}
+
+createMESSProjects(_target, _subtarget, "sharp")
+files {
+ MAME_DIR .. "src/mame/drivers/hh_sm510.cpp",
+ MAME_DIR .. "src/mame/video/mz700.cpp",
+ MAME_DIR .. "src/mame/drivers/mz700.cpp",
+ MAME_DIR .. "src/mame/includes/mz700.h",
+ MAME_DIR .. "src/mame/drivers/pc1500.cpp",
+ MAME_DIR .. "src/mame/drivers/pocketc.cpp",
+ MAME_DIR .. "src/mame/includes/pocketc.h",
+ MAME_DIR .. "src/mame/video/pc1401.cpp",
+ MAME_DIR .. "src/mame/machine/pc1401.cpp",
+ MAME_DIR .. "src/mame/includes/pc1401.h",
+ MAME_DIR .. "src/mame/video/pc1403.cpp",
+ MAME_DIR .. "src/mame/machine/pc1403.cpp",
+ MAME_DIR .. "src/mame/includes/pc1403.h",
+ MAME_DIR .. "src/mame/video/pc1350.cpp",
+ MAME_DIR .. "src/mame/machine/pc1350.cpp",
+ MAME_DIR .. "src/mame/includes/pc1350.h",
+ MAME_DIR .. "src/mame/video/pc1251.cpp",
+ MAME_DIR .. "src/mame/machine/pc1251.cpp",
+ MAME_DIR .. "src/mame/includes/pc1251.h",
+ MAME_DIR .. "src/mame/video/pocketc.cpp",
+ MAME_DIR .. "src/mame/machine/mz700.cpp",
+ MAME_DIR .. "src/mame/drivers/x68k.cpp",
+ MAME_DIR .. "src/mame/includes/x68k.h",
+ MAME_DIR .. "src/mame/video/x68k.cpp",
+ MAME_DIR .. "src/mame/machine/x68k_hdc.cpp",
+ MAME_DIR .. "src/mame/machine/x68k_hdc.h",
+ MAME_DIR .. "src/mame/machine/x68k_kbd.cpp",
+ MAME_DIR .. "src/mame/machine/x68k_kbd.h",
+ MAME_DIR .. "src/mame/drivers/mz80.cpp",
+ MAME_DIR .. "src/mame/includes/mz80.h",
+ MAME_DIR .. "src/mame/video/mz80.cpp",
+ MAME_DIR .. "src/mame/machine/mz80.cpp",
+ MAME_DIR .. "src/mame/drivers/mz2000.cpp",
+ MAME_DIR .. "src/mame/drivers/x1.cpp",
+ MAME_DIR .. "src/mame/includes/x1.h",
+ MAME_DIR .. "src/mame/machine/x1.cpp",
+ MAME_DIR .. "src/mame/drivers/x1twin.cpp",
+ MAME_DIR .. "src/mame/drivers/mz2500.cpp",
+ MAME_DIR .. "src/mame/drivers/mz3500.cpp",
+ MAME_DIR .. "src/mame/drivers/pce220.cpp",
+ MAME_DIR .. "src/mame/machine/pce220_ser.cpp",
+ MAME_DIR .. "src/mame/machine/pce220_ser.h",
+ MAME_DIR .. "src/mame/drivers/mz6500.cpp",
+ MAME_DIR .. "src/mame/drivers/zaurus.cpp",
+ MAME_DIR .. "src/mame/machine/pxa255.h",
+}
+
+createMESSProjects(_target, _subtarget, "sinclair")
+files {
+ MAME_DIR .. "src/mame/video/spectrum.cpp",
+ MAME_DIR .. "src/mame/video/timex.cpp",
+ MAME_DIR .. "src/mame/video/zx.cpp",
+ MAME_DIR .. "src/mame/drivers/zx.cpp",
+ MAME_DIR .. "src/mame/includes/zx.h",
+ MAME_DIR .. "src/mame/machine/zx.cpp",
+ MAME_DIR .. "src/mame/drivers/spectrum.cpp",
+ MAME_DIR .. "src/mame/includes/spectrum.h",
+ MAME_DIR .. "src/mame/drivers/spec128.cpp",
+ MAME_DIR .. "src/mame/includes/spec128.h",
+ MAME_DIR .. "src/mame/drivers/timex.cpp",
+ MAME_DIR .. "src/mame/includes/timex.h",
+ MAME_DIR .. "src/mame/drivers/specpls3.cpp",
+ MAME_DIR .. "src/mame/includes/specpls3.h",
+ MAME_DIR .. "src/mame/drivers/scorpion.cpp",
+ MAME_DIR .. "src/mame/drivers/atm.cpp",
+ MAME_DIR .. "src/mame/drivers/pentagon.cpp",
+ MAME_DIR .. "src/mame/machine/beta.cpp",
+ MAME_DIR .. "src/mame/machine/beta.h",
+ MAME_DIR .. "src/mame/machine/spec_snqk.cpp",
+ MAME_DIR .. "src/mame/machine/spec_snqk.h",
+ MAME_DIR .. "src/mame/drivers/ql.cpp",
+ MAME_DIR .. "src/mame/machine/qimi.cpp",
+ MAME_DIR .. "src/mame/machine/qimi.h",
+ MAME_DIR .. "src/mame/video/zx8301.cpp",
+ MAME_DIR .. "src/mame/video/zx8301.h",
+ MAME_DIR .. "src/mame/machine/zx8302.cpp",
+ MAME_DIR .. "src/mame/machine/zx8302.h",
+}
+
+createMESSProjects(_target, _subtarget, "siemens")
+files {
+ MAME_DIR .. "src/mame/drivers/pcd.cpp",
+ MAME_DIR .. "src/mame/machine/pcd_kbd.cpp",
+ MAME_DIR .. "src/mame/machine/pcd_kbd.h",
+ MAME_DIR .. "src/mame/video/pcd.cpp",
+ MAME_DIR .. "src/mame/video/pcd.h",
+ MAME_DIR .. "src/mame/drivers/pg685.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "slicer")
+files {
+ MAME_DIR .. "src/mame/drivers/slicer.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "snk")
+files {
+ MAME_DIR .. "src/mame/drivers/neogeocd.cpp",
+ MAME_DIR .. "src/mame/drivers/ngp.cpp",
+ MAME_DIR .. "src/mame/video/k1ge.cpp",
+ MAME_DIR .. "src/mame/video/k1ge.h",
+}
+
+createMESSProjects(_target, _subtarget, "sony")
+files {
+ MAME_DIR .. "src/mame/drivers/pockstat.cpp",
+ MAME_DIR .. "src/mame/drivers/psx.cpp",
+ MAME_DIR .. "src/mame/machine/psxcd.cpp",
+ MAME_DIR .. "src/mame/machine/psxcd.h",
+ MAME_DIR .. "src/mame/drivers/pve500.cpp",
+ MAME_DIR .. "src/mame/drivers/smc777.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "sord")
+files {
+ MAME_DIR .. "src/mame/drivers/m5.cpp",
+ MAME_DIR .. "src/mame/includes/m5.h",
+}
+
+createMESSProjects(_target, _subtarget, "special")
+files {
+ MAME_DIR .. "src/mame/drivers/special.cpp",
+ MAME_DIR .. "src/mame/includes/special.h",
+ MAME_DIR .. "src/mame/audio/special.cpp",
+ MAME_DIR .. "src/mame/audio/special.h",
+ MAME_DIR .. "src/mame/machine/special.cpp",
+ MAME_DIR .. "src/mame/video/special.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "sun")
+files {
+ MAME_DIR .. "src/mame/drivers/sun1.cpp",
+ MAME_DIR .. "src/mame/drivers/sun2.cpp",
+ MAME_DIR .. "src/mame/drivers/sun3.cpp",
+ MAME_DIR .. "src/mame/drivers/sun3x.cpp",
+ MAME_DIR .. "src/mame/drivers/sun4.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "svi")
+files {
+ MAME_DIR .. "src/mame/drivers/svi318.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "svision")
+files {
+ MAME_DIR .. "src/mame/drivers/svision.cpp",
+ MAME_DIR .. "src/mame/includes/svision.h",
+ MAME_DIR .. "src/mame/audio/svis_snd.cpp",
+ MAME_DIR .. "src/mame/audio/svis_snd.h",
+}
+
+createMESSProjects(_target, _subtarget, "swtpc09")
+files {
+ MAME_DIR .. "src/mame/drivers/swtpc09.cpp",
+ MAME_DIR .. "src/mame/includes/swtpc09.h",
+ MAME_DIR .. "src/mame/machine/swtpc09.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "synertec")
+files {
+ MAME_DIR .. "src/mame/drivers/sym1.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "ta")
+files {
+ MAME_DIR .. "src/mame/drivers/alphatro.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "tandberg")
+files {
+ MAME_DIR .. "src/mame/drivers/tdv2324.cpp",
+ MAME_DIR .. "src/mame/includes/tdv2324.h",
+}
+
+createMESSProjects(_target, _subtarget, "tangerin")
+files {
+ MAME_DIR .. "src/mame/drivers/microtan.cpp",
+ MAME_DIR .. "src/mame/includes/microtan.h",
+ MAME_DIR .. "src/mame/machine/microtan.cpp",
+ MAME_DIR .. "src/mame/video/microtan.cpp",
+ MAME_DIR .. "src/mame/drivers/oric.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "tatung")
+files {
+ MAME_DIR .. "src/mame/drivers/einstein.cpp",
+ MAME_DIR .. "src/mame/includes/einstein.h",
+ MAME_DIR .. "src/mame/machine/einstein.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "teamconc")
+files {
+ MAME_DIR .. "src/mame/drivers/comquest.cpp",
+ MAME_DIR .. "src/mame/includes/comquest.h",
+ MAME_DIR .. "src/mame/video/comquest.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "tektroni")
+files {
+ MAME_DIR .. "src/mame/drivers/tek405x.cpp",
+ MAME_DIR .. "src/mame/includes/tek405x.h",
+ MAME_DIR .. "src/mame/drivers/tek410x.cpp",
+ MAME_DIR .. "src/mame/drivers/tek440x.cpp",
+ MAME_DIR .. "src/mame/drivers/tekxp33x.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "telenova")
+files {
+ MAME_DIR .. "src/mame/drivers/compis.cpp",
+ MAME_DIR .. "src/mame/machine/compiskb.cpp",
+ MAME_DIR .. "src/mame/machine/compiskb.h",
+}
+
+createMESSProjects(_target, _subtarget, "telercas")
+files {
+ MAME_DIR .. "src/mame/drivers/tmc1800.cpp",
+ MAME_DIR .. "src/mame/includes/tmc1800.h",
+ MAME_DIR .. "src/mame/video/tmc1800.cpp",
+ MAME_DIR .. "src/mame/drivers/tmc600.cpp",
+ MAME_DIR .. "src/mame/includes/tmc600.h",
+ MAME_DIR .. "src/mame/video/tmc600.cpp",
+ MAME_DIR .. "src/mame/drivers/tmc2000e.cpp",
+ MAME_DIR .. "src/mame/includes/tmc2000e.h",
+}
+
+createMESSProjects(_target, _subtarget, "televideo")
+files {
+ MAME_DIR .. "src/mame/drivers/ts802.cpp",
+ MAME_DIR .. "src/mame/drivers/ts803.cpp",
+ MAME_DIR .. "src/mame/drivers/ts816.cpp",
+ MAME_DIR .. "src/mame/drivers/tv910.cpp",
+ MAME_DIR .. "src/mame/drivers/tv950.cpp",
+ MAME_DIR .. "src/mame/drivers/tv990.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "tem")
+files {
+ MAME_DIR .. "src/mame/drivers/tec1.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "tesla")
+files {
+ MAME_DIR .. "src/mame/drivers/ondra.cpp",
+ MAME_DIR .. "src/mame/includes/ondra.h",
+ MAME_DIR .. "src/mame/machine/ondra.cpp",
+ MAME_DIR .. "src/mame/video/ondra.cpp",
+ MAME_DIR .. "src/mame/drivers/pmd85.cpp",
+ MAME_DIR .. "src/mame/includes/pmd85.h",
+ MAME_DIR .. "src/mame/machine/pmd85.cpp",
+ MAME_DIR .. "src/mame/drivers/pmi80.cpp",
+ MAME_DIR .. "src/mame/drivers/sapi1.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "test")
+files {
+ MAME_DIR .. "src/mame/drivers/test_t400.cpp",
+ MAME_DIR .. "src/mame/drivers/zexall.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "thomson")
+files {
+ MAME_DIR .. "src/mame/drivers/thomson.cpp",
+ MAME_DIR .. "src/mame/includes/thomson.h",
+ MAME_DIR .. "src/mame/machine/thomson.cpp",
+ MAME_DIR .. "src/mame/machine/thomflop.cpp",
+ MAME_DIR .. "src/mame/machine/thomflop.h",
+ MAME_DIR .. "src/mame/video/thomson.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "ti")
+files {
+ MAME_DIR .. "src/mame/drivers/avigo.cpp",
+ MAME_DIR .. "src/mame/includes/avigo.h",
+ MAME_DIR .. "src/mame/video/avigo.cpp",
+ MAME_DIR .. "src/mame/drivers/cc40.cpp",
+ MAME_DIR .. "src/mame/drivers/evmbug.cpp",
+ MAME_DIR .. "src/mame/drivers/exelv.cpp",
+ MAME_DIR .. "src/mame/drivers/geneve.cpp",
+ MAME_DIR .. "src/mame/drivers/ticalc1x.cpp",
+ MAME_DIR .. "src/mame/drivers/tispeak.cpp",
+ MAME_DIR .. "src/mame/drivers/tispellb.cpp",
+ MAME_DIR .. "src/mame/drivers/ti74.cpp",
+ MAME_DIR .. "src/mame/drivers/ti85.cpp",
+ MAME_DIR .. "src/mame/includes/ti85.h",
+ MAME_DIR .. "src/mame/machine/ti85.cpp",
+ MAME_DIR .. "src/mame/video/ti85.cpp",
+ MAME_DIR .. "src/mame/drivers/ti89.cpp",
+ MAME_DIR .. "src/mame/includes/ti89.h",
+ MAME_DIR .. "src/mame/drivers/ti99_2.cpp",
+ MAME_DIR .. "src/mame/drivers/ti99_4x.cpp",
+ MAME_DIR .. "src/mame/drivers/ti99_4p.cpp",
+ MAME_DIR .. "src/mame/drivers/ti99_8.cpp",
+ MAME_DIR .. "src/mame/drivers/ti990_4.cpp",
+ MAME_DIR .. "src/mame/drivers/ti990_10.cpp",
+ MAME_DIR .. "src/mame/drivers/tm990189.cpp",
+ MAME_DIR .. "src/mame/video/733_asr.cpp",
+ MAME_DIR .. "src/mame/video/733_asr.h",
+ MAME_DIR .. "src/mame/video/911_vdt.cpp",
+ MAME_DIR .. "src/mame/video/911_vdt.h",
+ MAME_DIR .. "src/mame/video/911_chr.h",
+ MAME_DIR .. "src/mame/video/911_key.h",
+ MAME_DIR .. "src/mame/drivers/hh_tms1k.cpp",
+ MAME_DIR .. "src/mame/includes/hh_tms1k.h",
+}
+
+createMESSProjects(_target, _subtarget, "tiger")
+files {
+ MAME_DIR .. "src/mame/drivers/gamecom.cpp",
+ MAME_DIR .. "src/mame/includes/gamecom.h",
+ MAME_DIR .. "src/mame/machine/gamecom.cpp",
+ MAME_DIR .. "src/mame/video/gamecom.cpp",
+ MAME_DIR .. "src/mame/drivers/k28.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "tigertel")
+files {
+ MAME_DIR .. "src/mame/drivers/gizmondo.cpp",
+ MAME_DIR .. "src/mame/machine/docg3.cpp",
+ MAME_DIR .. "src/mame/machine/docg3.h",
+}
+
+createMESSProjects(_target, _subtarget, "tiki")
+files {
+ MAME_DIR .. "src/mame/drivers/tiki100.cpp",
+ MAME_DIR .. "src/mame/includes/tiki100.h",
+}
+
+createMESSProjects(_target, _subtarget, "tomy")
+files {
+ MAME_DIR .. "src/mame/drivers/tutor.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "toshiba")
+files {
+ MAME_DIR .. "src/mame/drivers/pasopia.cpp",
+ MAME_DIR .. "src/mame/includes/pasopia.h",
+ MAME_DIR .. "src/mame/drivers/pasopia7.cpp",
+ MAME_DIR .. "src/mame/drivers/paso1600.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "trainer")
+files {
+ MAME_DIR .. "src/mame/drivers/amico2k.cpp",
+ MAME_DIR .. "src/mame/drivers/babbage.cpp",
+ MAME_DIR .. "src/mame/drivers/bob85.cpp",
+ MAME_DIR .. "src/mame/drivers/cvicny.cpp",
+ MAME_DIR .. "src/mame/drivers/datum.cpp",
+ MAME_DIR .. "src/mame/drivers/dolphunk.cpp",
+ MAME_DIR .. "src/mame/drivers/instruct.cpp",
+ MAME_DIR .. "src/mame/drivers/mk14.cpp",
+ MAME_DIR .. "src/mame/drivers/pro80.cpp",
+ MAME_DIR .. "src/mame/drivers/savia84.cpp",
+ MAME_DIR .. "src/mame/drivers/selz80.cpp",
+ MAME_DIR .. "src/mame/drivers/tk80.cpp",
+ MAME_DIR .. "src/mame/drivers/zapcomputer.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "trs")
+files {
+ MAME_DIR .. "src/mame/drivers/coco12.cpp",
+ MAME_DIR .. "src/mame/includes/coco12.h",
+ MAME_DIR .. "src/mame/drivers/coco3.cpp",
+ MAME_DIR .. "src/mame/includes/coco3.h",
+ MAME_DIR .. "src/mame/drivers/dragon.cpp",
+ MAME_DIR .. "src/mame/includes/dragon.h",
+ MAME_DIR .. "src/mame/drivers/mc10.cpp",
+ MAME_DIR .. "src/mame/machine/6883sam.cpp",
+ MAME_DIR .. "src/mame/machine/6883sam.h",
+ MAME_DIR .. "src/mame/machine/coco.cpp",
+ MAME_DIR .. "src/mame/includes/coco.h",
+ MAME_DIR .. "src/mame/machine/coco12.cpp",
+ MAME_DIR .. "src/mame/machine/coco3.cpp",
+ MAME_DIR .. "src/mame/machine/coco_vhd.cpp",
+ MAME_DIR .. "src/mame/machine/coco_vhd.h",
+ MAME_DIR .. "src/mame/machine/dragon.cpp",
+ MAME_DIR .. "src/mame/machine/dgnalpha.cpp",
+ MAME_DIR .. "src/mame/includes/dgnalpha.h",
+ MAME_DIR .. "src/mame/video/gime.cpp",
+ MAME_DIR .. "src/mame/video/gime.h",
+ MAME_DIR .. "src/mame/drivers/trs80.cpp",
+ MAME_DIR .. "src/mame/includes/trs80.h",
+ MAME_DIR .. "src/mame/machine/trs80.cpp",
+ MAME_DIR .. "src/mame/video/trs80.cpp",
+ MAME_DIR .. "src/mame/drivers/trs80m2.cpp",
+ MAME_DIR .. "src/mame/includes/trs80m2.h",
+ MAME_DIR .. "src/mame/machine/trs80m2kb.cpp",
+ MAME_DIR .. "src/mame/machine/trs80m2kb.h",
+ MAME_DIR .. "src/mame/drivers/tandy2k.cpp",
+ MAME_DIR .. "src/mame/includes/tandy2k.h",
+ MAME_DIR .. "src/mame/machine/tandy2kb.cpp",
+ MAME_DIR .. "src/mame/machine/tandy2kb.h",
+ MAME_DIR .. "src/mame/drivers/vis.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "ultimachine")
+files {
+ MAME_DIR .. "src/mame/drivers/rambo.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "ultratec")
+files {
+ MAME_DIR .. "src/mame/drivers/minicom.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "unicard")
+files {
+ MAME_DIR .. "src/mame/drivers/bbcbc.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "unisonic")
+files {
+ MAME_DIR .. "src/mame/drivers/unichamp.cpp",
+ MAME_DIR .. "src/mame/video/gic.cpp",
+ MAME_DIR .. "src/mame/video/gic.h",
+ MAME_DIR .. "src/mame/video/gic.cpp",
+ MAME_DIR .. "src/mame/video/gic.h",
+}
+
+
+createMESSProjects(_target, _subtarget, "unisys")
+files {
+ MAME_DIR .. "src/mame/drivers/univac.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "usp")
+files {
+ MAME_DIR .. "src/mame/drivers/patinho_feio.cpp",
+ MAME_DIR .. "src/mame/includes/patinhofeio.h",
+}
+
+createMESSProjects(_target, _subtarget, "veb")
+files {
+ MAME_DIR .. "src/mame/drivers/chessmst.cpp",
+ MAME_DIR .. "src/mame/drivers/kc.cpp",
+ MAME_DIR .. "src/mame/includes/kc.h",
+ MAME_DIR .. "src/mame/machine/kc.cpp",
+ MAME_DIR .. "src/mame/machine/kc_keyb.cpp",
+ MAME_DIR .. "src/mame/machine/kc_keyb.h",
+ MAME_DIR .. "src/mame/video/kc.cpp",
+ MAME_DIR .. "src/mame/drivers/lc80.cpp",
+ MAME_DIR .. "src/mame/includes/lc80.h",
+ MAME_DIR .. "src/mame/drivers/mc80.cpp",
+ MAME_DIR .. "src/mame/includes/mc80.h",
+ MAME_DIR .. "src/mame/machine/mc80.cpp",
+ MAME_DIR .. "src/mame/video/mc80.cpp",
+ MAME_DIR .. "src/mame/drivers/poly880.cpp",
+ MAME_DIR .. "src/mame/includes/poly880.h",
+ MAME_DIR .. "src/mame/drivers/sc1.cpp",
+ MAME_DIR .. "src/mame/drivers/sc2.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "verifone")
+files {
+ MAME_DIR .. "src/mame/drivers/tranz330.cpp",
+ MAME_DIR .. "src/mame/includes/tranz330.h"
+}
+
+createMESSProjects(_target, _subtarget, "vidbrain")
+files {
+ MAME_DIR .. "src/mame/drivers/vidbrain.cpp",
+ MAME_DIR .. "src/mame/includes/vidbrain.h",
+ MAME_DIR .. "src/mame/video/uv201.cpp",
+ MAME_DIR .. "src/mame/video/uv201.h",
+}
+
+createMESSProjects(_target, _subtarget, "videoton")
+files {
+ MAME_DIR .. "src/mame/drivers/tvc.cpp",
+ MAME_DIR .. "src/mame/audio/tvc.cpp",
+ MAME_DIR .. "src/mame/audio/tvc.h",
+}
+
+createMESSProjects(_target, _subtarget, "visual")
+files {
+ MAME_DIR .. "src/mame/drivers/v1050.cpp",
+ MAME_DIR .. "src/mame/includes/v1050.h",
+ MAME_DIR .. "src/mame/machine/v1050kb.cpp",
+ MAME_DIR .. "src/mame/machine/v1050kb.h",
+ MAME_DIR .. "src/mame/video/v1050.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "votrax")
+files {
+ MAME_DIR .. "src/mame/drivers/votrpss.cpp",
+ MAME_DIR .. "src/mame/drivers/votrtnt.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "vtech")
+files {
+ MAME_DIR .. "src/mame/drivers/crvision.cpp",
+ MAME_DIR .. "src/mame/includes/crvision.h",
+ MAME_DIR .. "src/mame/drivers/geniusiq.cpp",
+ MAME_DIR .. "src/mame/drivers/laser3k.cpp",
+ MAME_DIR .. "src/mame/drivers/lcmate2.cpp",
+ MAME_DIR .. "src/mame/drivers/pc4.cpp",
+ MAME_DIR .. "src/mame/includes/pc4.h",
+ MAME_DIR .. "src/mame/video/pc4.cpp",
+ MAME_DIR .. "src/mame/drivers/pc2000.cpp",
+ MAME_DIR .. "src/mame/drivers/pitagjr.cpp",
+ MAME_DIR .. "src/mame/drivers/prestige.cpp",
+ MAME_DIR .. "src/mame/drivers/vtech1.cpp",
+ MAME_DIR .. "src/mame/drivers/vtech2.cpp",
+ MAME_DIR .. "src/mame/includes/vtech2.h",
+ MAME_DIR .. "src/mame/machine/vtech2.cpp",
+ MAME_DIR .. "src/mame/video/vtech2.cpp",
+ MAME_DIR .. "src/mame/drivers/socrates.cpp",
+ MAME_DIR .. "src/mame/audio/socrates.cpp",
+ MAME_DIR .. "src/mame/audio/socrates.h",
+}
+
+createMESSProjects(_target, _subtarget, "wang")
+files {
+ MAME_DIR .. "src/mame/drivers/wangpc.cpp",
+ MAME_DIR .. "src/mame/includes/wangpc.h",
+ MAME_DIR .. "src/mame/machine/wangpckb.cpp",
+ MAME_DIR .. "src/mame/machine/wangpckb.h",
+}
+
+createMESSProjects(_target, _subtarget, "westinghouse")
+files {
+ MAME_DIR .. "src/mame/drivers/testconsole.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "wavemate")
+files {
+ MAME_DIR .. "src/mame/drivers/bullet.cpp",
+ MAME_DIR .. "src/mame/includes/bullet.h",
+ MAME_DIR .. "src/mame/drivers/jupiter.cpp",
+ MAME_DIR .. "src/mame/includes/jupiter.h",
+}
+
+createMESSProjects(_target, _subtarget, "xerox")
+files {
+ MAME_DIR .. "src/mame/drivers/xerox820.cpp",
+ MAME_DIR .. "src/mame/includes/xerox820.h",
+ MAME_DIR .. "src/mame/machine/x820kb.cpp",
+ MAME_DIR .. "src/mame/machine/x820kb.h",
+ MAME_DIR .. "src/mame/drivers/bigbord2.cpp",
+ MAME_DIR .. "src/mame/drivers/alto2.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "xussrpc")
+files {
+ MAME_DIR .. "src/mame/drivers/ec184x.cpp",
+ MAME_DIR .. "src/mame/includes/ec184x.h",
+ MAME_DIR .. "src/mame/drivers/iskr103x.cpp",
+ MAME_DIR .. "src/mame/drivers/mc1502.cpp",
+ MAME_DIR .. "src/mame/machine/kb_7007_3.h",
+ MAME_DIR .. "src/mame/includes/mc1502.h",
+ MAME_DIR .. "src/mame/drivers/poisk1.cpp",
+ MAME_DIR .. "src/mame/machine/kb_poisk1.h",
+}
+
+createMESSProjects(_target, _subtarget, "yamaha")
+files {
+ MAME_DIR .. "src/mame/drivers/ymmu100.cpp",
+ MAME_DIR .. "src/mame/drivers/fb01.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "zenith")
+files {
+ MAME_DIR .. "src/mame/drivers/z100.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "zpa")
+files {
+ MAME_DIR .. "src/mame/drivers/iq151.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "zvt")
+files {
+ MAME_DIR .. "src/mame/drivers/pp01.cpp",
+ MAME_DIR .. "src/mame/includes/pp01.h",
+ MAME_DIR .. "src/mame/machine/pp01.cpp",
+ MAME_DIR .. "src/mame/video/pp01.cpp",
+}
+
+createMESSProjects(_target, _subtarget, "skeleton")
+files {
+ MAME_DIR .. "src/mame/drivers/aceex.cpp",
+ MAME_DIR .. "src/mame/drivers/akaiax80.cpp",
+ MAME_DIR .. "src/mame/drivers/alesis_qs.cpp",
+ MAME_DIR .. "src/mame/drivers/alphasma.cpp",
+ MAME_DIR .. "src/mame/drivers/ampro.cpp",
+ MAME_DIR .. "src/mame/drivers/amust.cpp",
+ MAME_DIR .. "src/mame/drivers/anzterm.cpp",
+ MAME_DIR .. "src/mame/drivers/applix.cpp",
+ MAME_DIR .. "src/mame/drivers/argox.cpp",
+ MAME_DIR .. "src/mame/drivers/attache.cpp",
+ MAME_DIR .. "src/mame/drivers/aussiebyte.cpp",
+ MAME_DIR .. "src/mame/includes/aussiebyte.h",
+ MAME_DIR .. "src/mame/video/aussiebyte.cpp",
+ MAME_DIR .. "src/mame/drivers/ax20.cpp",
+ MAME_DIR .. "src/mame/drivers/beehive.cpp",
+ MAME_DIR .. "src/mame/drivers/binbug.cpp",
+ MAME_DIR .. "src/mame/drivers/besta.cpp",
+ MAME_DIR .. "src/mame/drivers/bitgraph.cpp",
+ MAME_DIR .. "src/mame/drivers/bpmmicro.cpp",
+ MAME_DIR .. "src/mame/drivers/br8641.cpp",
+ MAME_DIR .. "src/mame/drivers/busicom.cpp",
+ MAME_DIR .. "src/mame/includes/busicom.h",
+ MAME_DIR .. "src/mame/video/busicom.cpp",
+ MAME_DIR .. "src/mame/drivers/chaos.cpp",
+ MAME_DIR .. "src/mame/drivers/chesstrv.cpp",
+ MAME_DIR .. "src/mame/drivers/cd2650.cpp",
+ MAME_DIR .. "src/mame/drivers/cdc721.cpp",
+ MAME_DIR .. "src/mame/drivers/codata.cpp",
+ MAME_DIR .. "src/mame/drivers/cortex.cpp",
+ MAME_DIR .. "src/mame/drivers/cosmicos.cpp",
+ MAME_DIR .. "src/mame/includes/cosmicos.h",
+ MAME_DIR .. "src/mame/drivers/cp1.cpp",
+ MAME_DIR .. "src/mame/drivers/cxhumax.cpp",
+ MAME_DIR .. "src/mame/includes/cxhumax.h",
+ MAME_DIR .. "src/mame/drivers/czk80.cpp",
+ MAME_DIR .. "src/mame/drivers/d6800.cpp",
+ MAME_DIR .. "src/mame/drivers/d6809.cpp",
+ MAME_DIR .. "src/mame/drivers/daruma.cpp",
+ MAME_DIR .. "src/mame/drivers/didact.cpp",
+ MAME_DIR .. "src/mame/drivers/digel804.cpp",
+ MAME_DIR .. "src/mame/drivers/digijet.cpp",
+ MAME_DIR .. "src/mame/drivers/dim68k.cpp",
+ MAME_DIR .. "src/mame/drivers/dm7000.cpp",
+ MAME_DIR .. "src/mame/includes/dm7000.h",
+ MAME_DIR .. "src/mame/drivers/dmax8000.cpp",
+ MAME_DIR .. "src/mame/drivers/dmv.cpp",
+ MAME_DIR .. "src/mame/machine/dmv_keyb.cpp",
+ MAME_DIR .. "src/mame/machine/dmv_keyb.h",
+ MAME_DIR .. "src/mame/drivers/dps1.cpp",
+ MAME_DIR .. "src/mame/drivers/dsb46.cpp",
+ MAME_DIR .. "src/mame/drivers/dual68.cpp",
+ MAME_DIR .. "src/mame/drivers/eacc.cpp",
+ MAME_DIR .. "src/mame/drivers/elwro800.cpp",
+ MAME_DIR .. "src/mame/drivers/eti660.cpp",
+ MAME_DIR .. "src/mame/includes/eti660.h",
+ MAME_DIR .. "src/mame/drivers/eurocom2.cpp",
+ MAME_DIR .. "src/mame/drivers/excali64.cpp",
+ MAME_DIR .. "src/mame/drivers/fanucs15.cpp",
+ MAME_DIR .. "src/mame/drivers/fanucspmg.cpp",
+ MAME_DIR .. "src/mame/drivers/fc100.cpp",
+-- MAME_DIR .. "src/mame/drivers/fcisio.cpp",
+-- MAME_DIR .. "src/mame/drivers/fcscsi.cpp",
+ MAME_DIR .. "src/mame/drivers/fk1.cpp",
+ MAME_DIR .. "src/mame/drivers/ft68m.cpp",
+ MAME_DIR .. "src/mame/drivers/gamate.cpp",
+ MAME_DIR .. "src/mame/includes/gamate.h",
+ MAME_DIR .. "src/mame/audio/gamate.cpp",
+ MAME_DIR .. "src/mame/drivers/gameking.cpp",
+ MAME_DIR .. "src/mame/drivers/gimix.cpp",
+ MAME_DIR .. "src/mame/drivers/goupil.cpp",
+ MAME_DIR .. "src/mame/drivers/grfd2301.cpp",
+ MAME_DIR .. "src/mame/drivers/harriet.cpp",
+ MAME_DIR .. "src/mame/drivers/hazeltin.cpp",
+ MAME_DIR .. "src/mame/drivers/hprot1.cpp",
+ MAME_DIR .. "src/mame/drivers/hpz80unk.cpp",
+ MAME_DIR .. "src/mame/drivers/ht68k.cpp",
+ MAME_DIR .. "src/mame/drivers/hunter2.cpp",
+ MAME_DIR .. "src/mame/drivers/i7000.cpp",
+ MAME_DIR .. "src/mame/drivers/ibm3153.cpp",
+ MAME_DIR .. "src/mame/drivers/icatel.cpp",
+ MAME_DIR .. "src/mame/drivers/if800.cpp",
+ MAME_DIR .. "src/mame/drivers/imsai.cpp",
+ MAME_DIR .. "src/mame/drivers/indiana.cpp",
+ MAME_DIR .. "src/mame/drivers/itt3030.cpp",
+ MAME_DIR .. "src/mame/drivers/jade.cpp",
+ MAME_DIR .. "src/mame/drivers/jonos.cpp",
+ MAME_DIR .. "src/mame/drivers/konin.cpp",
+ MAME_DIR .. "src/mame/drivers/kron.cpp",
+ MAME_DIR .. "src/mame/drivers/leapster.cpp",
+ MAME_DIR .. "src/mame/drivers/lft.cpp",
+ MAME_DIR .. "src/mame/drivers/lg-dvd.cpp",
+ MAME_DIR .. "src/mame/drivers/lola8a.cpp",
+ MAME_DIR .. "src/mame/drivers/m79152pc.cpp",
+ MAME_DIR .. "src/mame/drivers/mccpm.cpp",
+ MAME_DIR .. "src/mame/drivers/mes.cpp",
+ MAME_DIR .. "src/mame/drivers/mice.cpp",
+ MAME_DIR .. "src/mame/drivers/micral.cpp",
+ MAME_DIR .. "src/mame/drivers/micro20.cpp",
+ MAME_DIR .. "src/mame/drivers/micronic.cpp",
+ MAME_DIR .. "src/mame/includes/micronic.h",
+ MAME_DIR .. "src/mame/drivers/mini2440.cpp",
+ MAME_DIR .. "src/mame/drivers/mmd1.cpp",
+ MAME_DIR .. "src/mame/drivers/mod8.cpp",
+ MAME_DIR .. "src/mame/drivers/modellot.cpp",
+ MAME_DIR .. "src/mame/drivers/molecular.cpp",
+ MAME_DIR .. "src/mame/drivers/ms0515.cpp",
+ MAME_DIR .. "src/mame/drivers/ms9540.cpp",
+ MAME_DIR .. "src/mame/drivers/mstation.cpp",
+ MAME_DIR .. "src/mame/drivers/mt735.cpp",
+ MAME_DIR .. "src/mame/drivers/mx2178.cpp",
+ MAME_DIR .. "src/mame/drivers/mycom.cpp",
+ MAME_DIR .. "src/mame/drivers/myvision.cpp",
+ MAME_DIR .. "src/mame/machine/nl_hazelvid.cpp",
+ MAME_DIR .. "src/mame/machine/nl_hazelvid.h",
+ MAME_DIR .. "src/mame/drivers/notetaker.cpp",
+ MAME_DIR .. "src/mame/drivers/ngen.cpp",
+ MAME_DIR .. "src/mame/machine/ngen_kb.cpp",
+ MAME_DIR .. "src/mame/machine/ngen_kb.h",
+ MAME_DIR .. "src/mame/drivers/octopus.cpp",
+ MAME_DIR .. "src/mame/machine/octo_kbd.cpp",
+ MAME_DIR .. "src/mame/machine/octo_kbd.h",
+ MAME_DIR .. "src/mame/drivers/onyx.cpp",
+ MAME_DIR .. "src/mame/drivers/okean240.cpp",
+ MAME_DIR .. "src/mame/drivers/p8k.cpp",
+ MAME_DIR .. "src/mame/drivers/pegasus.cpp",
+ MAME_DIR .. "src/mame/drivers/pencil2.cpp",
+ MAME_DIR .. "src/mame/drivers/pes.cpp",
+ MAME_DIR .. "src/mame/includes/pes.h",
+ MAME_DIR .. "src/mame/drivers/pipbug.cpp",
+ MAME_DIR .. "src/mame/drivers/plan80.cpp",
+ MAME_DIR .. "src/mame/drivers/pm68k.cpp",
+ MAME_DIR .. "src/mame/drivers/pockchal.cpp",
+ MAME_DIR .. "src/mame/drivers/poly.cpp",
+ MAME_DIR .. "src/mame/drivers/proteus3.cpp",
+ MAME_DIR .. "src/mame/drivers/pt68k4.cpp",
+ MAME_DIR .. "src/mame/drivers/ptcsol.cpp",
+ MAME_DIR .. "src/mame/drivers/pulsar.cpp",
+ MAME_DIR .. "src/mame/drivers/pv9234.cpp",
+ MAME_DIR .. "src/mame/drivers/qtsbc.cpp",
+ MAME_DIR .. "src/mame/drivers/rd100.cpp",
+ MAME_DIR .. "src/mame/drivers/rvoice.cpp",
+ MAME_DIR .. "src/mame/drivers/sacstate.cpp",
+ MAME_DIR .. "src/mame/drivers/sbrain.cpp",
+ MAME_DIR .. "src/mame/drivers/seattlecmp.cpp",
+ MAME_DIR .. "src/mame/drivers/sh4robot.cpp",
+ MAME_DIR .. "src/mame/drivers/sansa_fuze.cpp",
+ MAME_DIR .. "src/mame/drivers/softbox.cpp",
+ MAME_DIR .. "src/mame/includes/softbox.h",
+ MAME_DIR .. "src/mame/drivers/squale.cpp",
+ MAME_DIR .. "src/mame/drivers/swtpc.cpp",
+ MAME_DIR .. "src/mame/drivers/swyft.cpp",
+ MAME_DIR .. "src/mame/drivers/symbolics.cpp",
+ MAME_DIR .. "src/mame/drivers/sys2900.cpp",
+ MAME_DIR .. "src/mame/drivers/systec.cpp",
+ MAME_DIR .. "src/mame/drivers/tavernie.cpp",
+ MAME_DIR .. "src/mame/drivers/tecnbras.cpp",
+ MAME_DIR .. "src/mame/drivers/terak.cpp",
+ MAME_DIR .. "src/mame/drivers/ti630.cpp",
+ MAME_DIR .. "src/mame/drivers/tsispch.cpp",
+ MAME_DIR .. "src/mame/includes/tsispch.h",
+ MAME_DIR .. "src/mame/drivers/tvgame.cpp",
+ MAME_DIR .. "src/mame/drivers/unistar.cpp",
+ MAME_DIR .. "src/mame/drivers/v6809.cpp",
+ MAME_DIR .. "src/mame/drivers/vector4.cpp",
+ MAME_DIR .. "src/mame/drivers/vii.cpp",
+ MAME_DIR .. "src/mame/drivers/vsmilepro.cpp",
+ MAME_DIR .. "src/mame/drivers/wicat.cpp",
+ MAME_DIR .. "src/mame/drivers/xor100.cpp",
+ MAME_DIR .. "src/mame/includes/xor100.h",
+ MAME_DIR .. "src/mame/drivers/xavix.cpp",
+ MAME_DIR .. "src/mame/drivers/zorba.cpp",
+ MAME_DIR .. "src/mame/includes/zorba.h",
+ MAME_DIR .. "src/mame/machine/zorbakbd.cpp",
+ MAME_DIR .. "src/mame/machine/zorbakbd.h",
+}
+
+end
diff --git a/docs/release/scripts/target/mame/nl.lua b/docs/release/scripts/target/mame/nl.lua
new file mode 100644
index 00000000000..6d33559134a
--- /dev/null
+++ b/docs/release/scripts/target/mame/nl.lua
@@ -0,0 +1,167 @@
+-- license:BSD-3-Clause
+-- copyright-holders:MAMEdev Team
+
+---------------------------------------------------------------------------
+--
+-- nl.lua
+--
+-- Compiles all drivers using netlist code
+-- Use make SUBTARGET=nl to build
+--
+---------------------------------------------------------------------------
+
+
+--------------------------------------------------
+-- Specify all the CPU cores necessary for the
+-- drivers referenced in nl.lst.
+--------------------------------------------------
+
+CPUS["Z80"] = true
+CPUS["M6502"] = true
+CPUS["M6800"] = true
+CPUS["M6803"] = true
+CPUS["M6809"] = true
+CPUS["MCS48"] = true
+CPUS["I8085"] = true
+--CPUS["MCS51"] = true
+--CPUS["M6800"] = true
+--CPUS["M6809"] = true
+--CPUS["M680X0"] = true
+--CPUS["TMS9900"] = true
+--CPUS["COP400"] = true
+
+--------------------------------------------------
+-- Specify all the sound cores necessary for the
+-- drivers referenced in nl.lst.
+--------------------------------------------------
+
+--SOUNDS["SAMPLES"] = true
+SOUNDS["DAC"] = true
+SOUNDS["DISCRETE"] = true
+SOUNDS["AY8910"] = true
+SOUNDS["MSM5205"] = true
+--SOUNDS["ASTROCADE"] = true
+--SOUNDS["TMS5220"] = true
+--SOUNDS["OKIM6295"] = true
+--SOUNDS["HC55516"] = true
+--SOUNDS["YM3812"] = true
+--SOUNDS["CEM3394"] = true
+--SOUNDS["VOTRAX"] = true
+SOUNDS["VOLT_REG"] = true
+
+--------------------------------------------------
+-- specify available video cores
+--------------------------------------------------
+
+VIDEOS["FIXFREQ"] = true
+
+--------------------------------------------------
+-- specify available machine cores
+--------------------------------------------------
+
+MACHINES["NETLIST"] = true
+MACHINES["Z80DMA"] = true
+MACHINES["GEN_LATCH"] = true
+MACHINES["AY31015"] = true
+MACHINES["KB3600"] = true
+MACHINES["COM8116"] = true
+
+MACHINES["TTL74145"] = true
+MACHINES["6522VIA"] = true
+
+--MACHINES["6821PIA"] = true
+--MACHINES["TTL74148"] = true
+--MACHINES["TTL74153"] = true
+--MACHINES["TTL7474"] = true
+--MACHINES["RIOT6532"] = true
+--MACHINES["PIT8253"] = true
+--MACHINES["Z80CTC"] = true
+--MACHINES["68681"] = true
+--MACHINES["BANKDEV"] = true
+
+
+--------------------------------------------------
+-- specify available bus cores
+--------------------------------------------------
+
+-- not needed by nl.lua but build system wants at least one bus
+BUSES["CENTRONICS"] = true
+
+--------------------------------------------------
+-- This is the list of files that are necessary
+-- for building all of the drivers referenced
+-- in nl.lst
+--------------------------------------------------
+
+function createProjects_mame_nl(_target, _subtarget)
+ project ("mame_netlist")
+ targetsubdir(_target .."_" .. _subtarget)
+ kind (LIBTYPE)
+ uuid (os.uuid("drv-mame-nl"))
+ addprojectflags()
+ precompiledheaders()
+
+ includedirs {
+ MAME_DIR .. "src/osd",
+ MAME_DIR .. "src/emu",
+ MAME_DIR .. "src/devices",
+ MAME_DIR .. "src/lib/netlist",
+ MAME_DIR .. "src/mame",
+ MAME_DIR .. "src/lib",
+ MAME_DIR .. "src/lib/util",
+ MAME_DIR .. "3rdparty",
+ GEN_DIR .. "mame/layout",
+ }
+
+files{
+ MAME_DIR .. "src/mame/drivers/pong.cpp",
+ MAME_DIR .. "src/mame/machine/nl_pong.cpp",
+ MAME_DIR .. "src/mame/machine/nl_pong.h",
+ MAME_DIR .. "src/mame/machine/nl_pongd.cpp",
+ MAME_DIR .. "src/mame/machine/nl_pongd.h",
+ MAME_DIR .. "src/mame/machine/nl_breakout.cpp",
+ MAME_DIR .. "src/mame/machine/nl_breakout.h",
+ MAME_DIR .. "src/mame/machine/nl_hazelvid.cpp",
+ MAME_DIR .. "src/mame/machine/nl_hazelvid.h",
+
+ MAME_DIR .. "src/mame/drivers/atarittl.cpp",
+ MAME_DIR .. "src/mame/machine/nl_stuntcyc.cpp",
+ MAME_DIR .. "src/mame/machine/nl_stuntcyc.h",
+
+ MAME_DIR .. "src/mame/drivers/prodigy.cpp",
+ MAME_DIR .. "src/mame/machine/nl_prodigy.cpp",
+ MAME_DIR .. "src/mame/machine/nl_prodigy.h",
+
+ MAME_DIR .. "src/mame/drivers/hazeltin.cpp",
+
+ MAME_DIR .. "src/mame/drivers/1942.cpp",
+ MAME_DIR .. "src/mame/includes/1942.h",
+ MAME_DIR .. "src/mame/video/1942.cpp",
+
+ MAME_DIR .. "src/mame/drivers/popeye.cpp",
+ MAME_DIR .. "src/mame/includes/popeye.h",
+ MAME_DIR .. "src/mame/video/popeye.cpp",
+
+ MAME_DIR .. "src/mame/drivers/mario.cpp",
+ MAME_DIR .. "src/mame/includes/mario.h",
+ MAME_DIR .. "src/mame/audio/nl_mario.cpp",
+ MAME_DIR .. "src/mame/audio/nl_mario.h",
+ MAME_DIR .. "src/mame/video/mario.cpp",
+ MAME_DIR .. "src/mame/audio/mario.cpp",
+
+ MAME_DIR .. "src/mame/drivers/m62.cpp",
+ MAME_DIR .. "src/mame/includes/m62.h",
+ MAME_DIR .. "src/mame/video/m62.cpp",
+ MAME_DIR .. "src/mame/audio/irem.cpp",
+ MAME_DIR .. "src/mame/audio/irem.h",
+ MAME_DIR .. "src/mame/audio/nl_kidniki.cpp",
+ MAME_DIR .. "src/mame/audio/nl_kidniki.h",
+
+}
+end
+
+function linkProjects_mame_nl(_target, _subtarget)
+ links {
+ "mame_netlist",
+ }
+end
diff --git a/docs/release/scripts/target/mame/tiny.lua b/docs/release/scripts/target/mame/tiny.lua
new file mode 100644
index 00000000000..129e276e208
--- /dev/null
+++ b/docs/release/scripts/target/mame/tiny.lua
@@ -0,0 +1,159 @@
+-- license:BSD-3-Clause
+-- copyright-holders:MAMEdev Team
+
+---------------------------------------------------------------------------
+--
+-- tiny.lua
+--
+-- Small driver-specific example makefile
+-- Use make SUBTARGET=tiny to build
+--
+---------------------------------------------------------------------------
+
+
+--------------------------------------------------
+-- Specify all the CPU cores necessary for the
+-- drivers referenced in tiny.lst.
+--------------------------------------------------
+
+CPUS["Z80"] = true
+CPUS["M6502"] = true
+CPUS["MCS48"] = true
+CPUS["MCS51"] = true
+CPUS["M6800"] = true
+CPUS["M6809"] = true
+CPUS["M680X0"] = true
+CPUS["TMS9900"] = true
+CPUS["COP400"] = true
+
+--------------------------------------------------
+-- Specify all the sound cores necessary for the
+-- drivers referenced in tiny.lst.
+--------------------------------------------------
+
+SOUNDS["SAMPLES"] = true
+SOUNDS["DAC"] = true
+SOUNDS["DISCRETE"] = true
+SOUNDS["AY8910"] = true
+SOUNDS["YM2151"] = true
+SOUNDS["ASTROCADE"] = true
+SOUNDS["TMS5220"] = true
+SOUNDS["OKIM6295"] = true
+SOUNDS["HC55516"] = true
+SOUNDS["YM3812"] = true
+SOUNDS["CEM3394"] = true
+SOUNDS["VOTRAX"] = true
+SOUNDS["VOLT_REG"] = true
+
+--------------------------------------------------
+-- specify available video cores
+--------------------------------------------------
+
+--------------------------------------------------
+-- specify available machine cores
+--------------------------------------------------
+
+MACHINES["6821PIA"] = true
+MACHINES["TTL74148"] = true
+MACHINES["TTL74153"] = true
+MACHINES["TTL7474"] = true
+MACHINES["RIOT6532"] = true
+MACHINES["PIT8253"] = true
+MACHINES["Z80CTC"] = true
+MACHINES["68681"] = true
+MACHINES["BANKDEV"] = true
+MACHINES["GEN_LATCH"] = true
+MACHINES["WATCHDOG"] = true
+
+
+--------------------------------------------------
+-- specify available bus cores
+--------------------------------------------------
+
+BUSES["CENTRONICS"] = true
+
+--------------------------------------------------
+-- This is the list of files that are necessary
+-- for building all of the drivers referenced
+-- in tiny.lst
+--------------------------------------------------
+
+function createProjects_mame_tiny(_target, _subtarget)
+ project ("mame_tiny")
+ targetsubdir(_target .."_" .. _subtarget)
+ kind (LIBTYPE)
+ uuid (os.uuid("drv-mame-tiny"))
+ addprojectflags()
+ precompiledheaders()
+
+ includedirs {
+ MAME_DIR .. "src/osd",
+ MAME_DIR .. "src/emu",
+ MAME_DIR .. "src/devices",
+ MAME_DIR .. "src/mame",
+ MAME_DIR .. "src/lib",
+ MAME_DIR .. "src/lib/util",
+ MAME_DIR .. "3rdparty",
+ GEN_DIR .. "mame/layout",
+ }
+
+files{
+ MAME_DIR .. "src/mame/machine/ticket.cpp",
+ MAME_DIR .. "src/mame/machine/ticket.h",
+ MAME_DIR .. "src/mame/drivers/carpolo.cpp",
+ MAME_DIR .. "src/mame/includes/carpolo.h",
+ MAME_DIR .. "src/mame/machine/carpolo.cpp",
+ MAME_DIR .. "src/mame/video/carpolo.cpp",
+ MAME_DIR .. "src/mame/drivers/circus.cpp",
+ MAME_DIR .. "src/mame/includes/circus.h",
+ MAME_DIR .. "src/mame/audio/circus.cpp",
+ MAME_DIR .. "src/mame/video/circus.cpp",
+ MAME_DIR .. "src/mame/drivers/exidy.cpp",
+ MAME_DIR .. "src/mame/includes/exidy.h",
+ MAME_DIR .. "src/mame/audio/exidy.cpp",
+ MAME_DIR .. "src/mame/audio/exidy.h",
+ MAME_DIR .. "src/mame/video/exidy.cpp",
+ MAME_DIR .. "src/mame/audio/exidy440.cpp",
+ MAME_DIR .. "src/mame/audio/exidy440.h",
+ MAME_DIR .. "src/mame/drivers/starfire.cpp",
+ MAME_DIR .. "src/mame/includes/starfire.h",
+ MAME_DIR .. "src/mame/video/starfire.cpp",
+ MAME_DIR .. "src/mame/drivers/vertigo.cpp",
+ MAME_DIR .. "src/mame/includes/vertigo.h",
+ MAME_DIR .. "src/mame/machine/vertigo.cpp",
+ MAME_DIR .. "src/mame/video/vertigo.cpp",
+ MAME_DIR .. "src/mame/drivers/victory.cpp",
+ MAME_DIR .. "src/mame/includes/victory.h",
+ MAME_DIR .. "src/mame/video/victory.cpp",
+ MAME_DIR .. "src/mame/audio/targ.cpp",
+ MAME_DIR .. "src/mame/drivers/astrocde.cpp",
+ MAME_DIR .. "src/mame/includes/astrocde.h",
+ MAME_DIR .. "src/mame/video/astrocde.cpp",
+ MAME_DIR .. "src/mame/drivers/gridlee.cpp",
+ MAME_DIR .. "src/mame/includes/gridlee.h",
+ MAME_DIR .. "src/mame/audio/gridlee.cpp",
+ MAME_DIR .. "src/mame/video/gridlee.cpp",
+ MAME_DIR .. "src/mame/drivers/williams.cpp",
+ MAME_DIR .. "src/mame/includes/williams.h",
+ MAME_DIR .. "src/mame/machine/williams.cpp",
+ MAME_DIR .. "src/mame/audio/williams.cpp",
+ MAME_DIR .. "src/mame/audio/williams.h",
+ MAME_DIR .. "src/mame/video/williams.cpp",
+ MAME_DIR .. "src/mame/drivers/gaelco.cpp",
+ MAME_DIR .. "src/mame/includes/gaelco.h",
+ MAME_DIR .. "src/mame/video/gaelco.cpp",
+ MAME_DIR .. "src/mame/machine/gaelcrpt.cpp",
+ MAME_DIR .. "src/mame/drivers/wrally.cpp",
+ MAME_DIR .. "src/mame/includes/wrally.h",
+ MAME_DIR .. "src/mame/machine/wrally.cpp",
+ MAME_DIR .. "src/mame/video/wrally.cpp",
+ MAME_DIR .. "src/mame/drivers/looping.cpp",
+ MAME_DIR .. "src/mame/drivers/supertnk.cpp",
+}
+end
+
+function linkProjects_mame_tiny(_target, _subtarget)
+ links {
+ "mame_tiny",
+ }
+end
diff --git a/docs/release/scripts/target/mame/virtual.lua b/docs/release/scripts/target/mame/virtual.lua
new file mode 100644
index 00000000000..5a884e33fc0
--- /dev/null
+++ b/docs/release/scripts/target/mame/virtual.lua
@@ -0,0 +1,102 @@
+-- license:BSD-3-Clause
+-- copyright-holders:MAMEdev Team
+
+---------------------------------------------------------------------------
+--
+-- virtual.lua
+--
+-- Virtual target makefile
+--
+---------------------------------------------------------------------------
+
+--------------------------------------------------
+-- specify available CPU cores
+--------------------------------------------------
+
+CPUS["M6502"] = true
+CPUS["H6280"] = true
+CPUS["MCS48"] = true
+CPUS["Z80"] = true
+
+--------------------------------------------------
+-- specify available sound cores; some of these are
+-- only for MAME and so aren't included
+--------------------------------------------------
+
+SOUNDS["NES_APU"] = true
+SOUNDS["YM2612"] = true
+SOUNDS["YM2151"] = true
+SOUNDS["YM2413"] = true
+SOUNDS["YM2203"] = true
+SOUNDS["AY8910"] = true
+SOUNDS["YM3526"] = true
+SOUNDS["YM3812"] = true
+SOUNDS["C6280"] = true
+SOUNDS["SN76496"] = true
+SOUNDS["K053260"] = true
+SOUNDS["SEGAPCM"] = true
+SOUNDS["MULTIPCM"] = true
+SOUNDS["GB_SOUND"] = true
+SOUNDS["POKEY"] = true
+SOUNDS["C352"] = true
+SOUNDS["OKIM6295"] = true
+SOUNDS["WAVE"] = true
+
+--------------------------------------------------
+-- specify available video cores
+--------------------------------------------------
+
+
+--------------------------------------------------
+-- specify available machine cores
+--------------------------------------------------
+MACHINES["LDV1000"] = true
+MACHINES["LDPR8210"] = true
+
+--------------------------------------------------
+-- specify available bus cores
+--------------------------------------------------
+
+
+--------------------------------------------------
+-- this is the driver library that
+-- comprise the virtual drivers
+--------------------------------------------------
+function linkProjects_mame_virtual(_target, _subtarget)
+ links {
+ "virtual",
+ }
+end
+
+function createVirtualProjects(_target, _subtarget, _name)
+ project (_name)
+ targetsubdir(_target .."_" .. _subtarget)
+ kind (LIBTYPE)
+ uuid (os.uuid("drv-" .. _target .."_" .. _subtarget .. "_" .._name))
+ addprojectflags()
+ precompiledheaders()
+
+ includedirs {
+ MAME_DIR .. "src/osd",
+ MAME_DIR .. "src/emu",
+ MAME_DIR .. "src/devices",
+ MAME_DIR .. "src/mame",
+ MAME_DIR .. "src/lib",
+ MAME_DIR .. "src/lib/util",
+ MAME_DIR .. "3rdparty",
+ GEN_DIR .. "mame/layout",
+ }
+
+ includedirs {
+ ext_includedir("zlib"),
+ ext_includedir("flac"),
+ }
+end
+
+function createProjects_mame_virtual(_target, _subtarget)
+ createVirtualProjects(_target, _subtarget, "virtual")
+ files {
+ MAME_DIR .. "src/mame/drivers/vgmplay.cpp",
+ MAME_DIR .. "src/mame/drivers/ldplayer.cpp",
+ }
+end
diff --git a/docs/release/scripts/target/zexall/zexall.lua b/docs/release/scripts/target/zexall/zexall.lua
new file mode 100644
index 00000000000..36a1ff64a34
--- /dev/null
+++ b/docs/release/scripts/target/zexall/zexall.lua
@@ -0,0 +1,12 @@
+STANDALONE = true
+
+CPUS["Z80"] = true
+
+function standalone()
+ files{
+ MAME_DIR .. "src/zexall/main.cpp",
+ MAME_DIR .. "src/zexall/zexall.cpp",
+ MAME_DIR .. "src/zexall/zexall.h",
+ }
+end
+
diff --git a/docs/release/scripts/toolchain.lua b/docs/release/scripts/toolchain.lua
new file mode 100644
index 00000000000..46a1b4b22ce
--- /dev/null
+++ b/docs/release/scripts/toolchain.lua
@@ -0,0 +1,1147 @@
+--
+-- Copyright 2010-2015 Branimir Karadzic. All rights reserved.
+-- License: https://github.com/bkaradzic/bx#license-bsd-2-clause
+--
+
+local naclToolchain = ""
+local toolchainPrefix = ""
+
+if _OPTIONS['TOOLCHAIN'] then
+ toolchainPrefix = _OPTIONS["TOOLCHAIN"]
+end
+
+newoption {
+ trigger = "gcc",
+ value = "GCC",
+ description = "Choose GCC flavor",
+ allowed = {
+ { "android-arm", "Android - ARM" },
+ { "android-arm64", "Android - ARM64" },
+ { "android-mips", "Android - MIPS" },
+ { "android-mips64","Android - MIPS64" },
+ { "android-x86", "Android - x86" },
+ { "android-x64", "Android - x64" },
+ { "asmjs", "Emscripten/asm.js" },
+ { "freebsd", "FreeBSD" },
+ { "linux-gcc", "Linux (GCC compiler)" },
+ { "linux-clang", "Linux (Clang compiler)" },
+ { "ios-arm", "iOS - ARM" },
+ { "ios-simulator", "iOS - Simulator" },
+ { "mingw32-gcc", "MinGW32" },
+ { "mingw64-gcc", "MinGW64" },
+ { "mingw-clang", "MinGW (clang compiler)" },
+ { "netbsd", "NetBSD" },
+ { "openbsd", "OpenBSD" },
+ { "osx", "OSX (GCC compiler)" },
+ { "osx-clang", "OSX (Clang compiler)" },
+ { "pnacl", "Native Client - PNaCl" },
+ { "rpi", "RaspberryPi" },
+ { "solaris", "Solaris" },
+ { "steamlink", "Steam Link" },
+ { "ci20", "Creator-Ci20" },
+ },
+}
+
+newoption {
+ trigger = "vs",
+ value = "toolset",
+ description = "Choose VS toolset",
+ allowed = {
+ { "intel-14", "Intel C++ Compiler XE 14.0" },
+ { "intel-15", "Intel C++ Compiler XE 15.0" },
+ { "vs2015-clang", "Clang 3.6" },
+ { "vs2015-xp", "Visual Studio 2015 targeting XP" },
+ { "vs2017-clang", "Clang 3.6" },
+ { "vs2017-xp", "Visual Studio 2017 targeting XP" },
+ { "winphone8", "Windows Phone 8.0" },
+ { "winphone81", "Windows Phone 8.1" },
+ { "winstore81", "Windows Store 8.1" },
+ { "winstore82", "Universal Windows App" }
+ },
+}
+
+newoption {
+ trigger = "xcode",
+ value = "xcode_target",
+ description = "Choose XCode target",
+ allowed = {
+ { "osx", "OSX" },
+ { "ios", "iOS" },
+ }
+}
+
+newoption {
+ trigger = "with-android",
+ value = "#",
+ description = "Set Android platform version (default: android-21).",
+}
+
+newoption {
+ trigger = "with-ios",
+ value = "#",
+ description = "Set iOS target version (default: 8.0).",
+}
+
+newoption {
+ trigger = "with-windows",
+ value = "#",
+ description = "Set the Windows target platform version (default: 10.0.10240.0).",
+}
+
+function toolchain(_buildDir, _subDir)
+
+ location (_buildDir .. "projects/" .. _subDir .. "/".. _ACTION)
+
+ local androidPlatform = "android-21"
+ if _OPTIONS["with-android"] then
+ androidPlatform = "android-" .. _OPTIONS["with-android"]
+ elseif _OPTIONS["PLATFORM"]:find("64", -2) then
+ androidPlatform = "android-21"
+ end
+
+ local iosPlatform = ""
+ if _OPTIONS["with-ios"] then
+ iosPlatform = _OPTIONS["with-ios"]
+ end
+
+ local windowsPlatform = "10.0.10240.0"
+ if _OPTIONS["with-windows"] then
+ windowsPlatform = _OPTIONS["with-windows"]
+ end
+
+ if _ACTION == "gmake" or _ACTION == "ninja" then
+
+ if nil == _OPTIONS["gcc"] or nil == _OPTIONS["gcc_version"] then
+ print("GCC flavor and version must be specified!")
+ os.exit(1)
+ end
+
+ if string.find(_OPTIONS["gcc"], "android") then
+ -- 64-bit android platform requires >= 21
+ if _OPTIONS["PLATFORM"]:find("64", -2) and tonumber(androidPlatform:sub(9)) < 21 then
+ error("64-bit android requires platform 21 or higher")
+ end
+ if not os.getenv("ANDROID_NDK_ROOT") then
+ print("Set ANDROID_NDK_ROOT environment variable.")
+ end
+ if not os.getenv("ANDROID_NDK_LLVM") then
+ print("Set ANDROID_NDK_LLVM envrionment variable.")
+ end
+ platform_ndk_env = "ANDROID_NDK_" .. _OPTIONS["PLATFORM"]:upper()
+ if not os.getenv(platform_ndk_env) then
+ print("Set " .. platform_ndk_env .. " environment variable.")
+ end
+
+ local platformToolchainMap = {
+ ['arm'] = "arm-linux-androideabi",
+ ['arm64'] = "aarch64-linux-android",
+ ['mips64'] = "mips64el-linux-android",
+ ['mips'] = "mipsel-linux-android",
+ ['x86'] = "i686-linux-android",
+ ['x64'] = "x86_64-linux-android",
+ }
+
+ toolchainPrefix = os.getenv(platform_ndk_env) .. "/bin/" .. platformToolchainMap[_OPTIONS["PLATFORM"]] .. "-"
+
+ premake.gcc.cc = "$(ANDROID_NDK_LLVM)/bin/clang"
+ premake.gcc.cxx = "$(ANDROID_NDK_LLVM)/bin/clang++"
+ premake.gcc.ar = toolchainPrefix .. "ar"
+ premake.gcc.llvm = true
+
+ location (_buildDir .. "projects/" .. _subDir .. "/".. _ACTION .. "-android-" .. _OPTIONS["PLATFORM"])
+ end
+
+ if "asmjs" == _OPTIONS["gcc"] then
+
+ if not os.getenv("EMSCRIPTEN") then
+ print("Set EMSCRIPTEN enviroment variables.")
+ end
+
+ premake.gcc.cc = "$(EMSCRIPTEN)/emcc"
+ premake.gcc.cxx = "$(EMSCRIPTEN)/em++"
+ premake.gcc.ar = "$(EMSCRIPTEN)/emar"
+ premake.gcc.llvm = true
+ location (_buildDir .. "projects/" .. _subDir .. "/".. _ACTION .. "-asmjs")
+ end
+
+ if "freebsd" == _OPTIONS["gcc"] then
+ location (_buildDir .. "projects/" .. _subDir .. "/".. _ACTION .. "-freebsd")
+ end
+
+ if "netbsd" == _OPTIONS["gcc"] then
+ location (_buildDir .. "projects/" .. _subDir .. "/".. _ACTION .. "-netbsd")
+ end
+
+ if "openbsd" == _OPTIONS["gcc"] then
+ location (_buildDir .. "projects/" .. _subDir .. "/".. _ACTION .. "-openbsd")
+ end
+
+ if "ios-arm" == _OPTIONS["gcc"] then
+ premake.gcc.cc = "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang"
+ premake.gcc.cxx = "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++"
+ premake.gcc.ar = "ar"
+ location (_buildDir .. "projects/" .. _subDir .. "/".. _ACTION .. "-ios-arm")
+ end
+
+ if "ios-simulator" == _OPTIONS["gcc"] then
+ premake.gcc.cc = "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang"
+ premake.gcc.cxx = "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++"
+ premake.gcc.ar = "ar"
+ location (_buildDir .. "projects/" .. _subDir .. "/".. _ACTION .. "-ios-simulator")
+ end
+
+ if "linux-gcc" == _OPTIONS["gcc"] then
+ -- Force gcc-4.2 on ubuntu-intrepid
+ if _OPTIONS["distro"]=="ubuntu-intrepid" then
+ premake.gcc.cc = "@gcc -V 4.2"
+ premake.gcc.cxx = "@g++-4.2"
+ end
+ premake.gcc.ar = "ar"
+ location (_buildDir .. "projects/" .. _subDir .. "/".. _ACTION .. "-linux")
+ end
+
+ if "solaris" == _OPTIONS["gcc"] then
+ location (_buildDir .. "projects/" .. _subDir .. "/".. _ACTION .. "-solaris")
+ end
+
+
+ if "linux-clang" == _OPTIONS["gcc"] then
+ premake.gcc.cc = "clang"
+ premake.gcc.cxx = "clang++"
+ premake.gcc.ar = "ar"
+ location (_buildDir .. "projects/" .. _subDir .. "/".. _ACTION .. "-linux-clang")
+ end
+
+ if "steamlink" == _OPTIONS["gcc"] then
+ if not os.getenv("MARVELL_SDK_PATH") then
+ print("Set MARVELL_SDK_PATH envrionment variable.")
+ end
+ premake.gcc.cc = "$(MARVELL_SDK_PATH)/toolchain/bin/armv7a-cros-linux-gnueabi-gcc"
+ premake.gcc.cxx = "$(MARVELL_SDK_PATH)/toolchain/bin/armv7a-cros-linux-gnueabi-g++"
+ premake.gcc.ar = "$(MARVELL_SDK_PATH)/toolchain/bin/armv7a-cros-linux-gnueabi-ar"
+ location (_buildDir .. "projects/" .. _subDir .. "/".. _ACTION .. "-steamlink")
+ end
+
+ if "rpi" == _OPTIONS["gcc"] then
+ if not os.getenv("RASPBERRY_SDK_PATH") then
+ print("Set RASPBERRY_SDK_PATH envrionment variable.")
+ end
+ premake.gcc.cc = "$(RASPBERRY_SDK_PATH)/bin/arm-linux-gnueabihf-gcc"
+ premake.gcc.cxx = "$(RASPBERRY_SDK_PATH)/bin/arm-linux-gnueabihf-g++"
+ premake.gcc.ar = "$(RASPBERRY_SDK_PATH)/bin/arm-linux-gnueabihf-ar"
+ location (_buildDir .. "projects/" .. _subDir .. "/".. _ACTION .. "-rpi")
+ end
+
+ if "ci20" == _OPTIONS["gcc"] then
+ if not os.getenv("MIPS_LINUXGNU_ROOT") then
+ print("Set MIPS_LINUXGNU_ROOT envrionment variable.")
+ end
+ premake.gcc.cc = "$(MIPS_LINUXGNU_ROOT)/bin/mips-mti-linux-gnu-gcc"
+ premake.gcc.cxx = "$(MIPS_LINUXGNU_ROOT)/bin/mips-mti-linux-gnu-g++"
+ premake.gcc.ar = "$(MIPS_LINUXGNU_ROOT)/bin/mips-mti-linux-gnu-ar"
+ location (_buildDir .. "projects/" .. _subDir .. "/".. _ACTION .. "-ci20")
+ end
+
+ if "mingw32-gcc" == _OPTIONS["gcc"] then
+ if not os.getenv("MINGW32") then
+ print("Set MINGW32 envrionment variable.")
+ end
+ if toolchainPrefix == nil or toolchainPrefix == "" then
+ toolchainPrefix = "$(MINGW32)/bin/i686-w64-mingw32-"
+ end
+ premake.gcc.cc = toolchainPrefix .. "gcc"
+ premake.gcc.cxx = toolchainPrefix .. "g++"
+-- work around GCC 4.9.2 not having proper linker for LTO=1 usage
+ local version_4_ar = str_to_version(_OPTIONS["gcc_version"])
+ if (version_4_ar < 50000) then
+ premake.gcc.ar = toolchainPrefix .. "ar"
+ end
+ if (version_4_ar >= 50000) then
+ premake.gcc.ar = toolchainPrefix .. "gcc-ar"
+ end
+ location (_buildDir .. "projects/" .. _subDir .. "/".. _ACTION .. "-mingw32-gcc")
+ end
+
+ if "mingw64-gcc" == _OPTIONS["gcc"] then
+ if not os.getenv("MINGW64") then
+ print("Set MINGW64 envrionment variable.")
+ end
+ if toolchainPrefix == nil or toolchainPrefix == "" then
+ toolchainPrefix = "$(MINGW64)/bin/x86_64-w64-mingw32-"
+ end
+ premake.gcc.cc = toolchainPrefix .. "gcc"
+ premake.gcc.cxx = toolchainPrefix .. "g++"
+-- work around GCC 4.9.2 not having proper linker for LTO=1 usage
+ local version_4_ar = str_to_version(_OPTIONS["gcc_version"])
+ if (version_4_ar < 50000) then
+ premake.gcc.ar = toolchainPrefix .. "ar"
+ end
+ if (version_4_ar >= 50000) then
+ premake.gcc.ar = toolchainPrefix .. "gcc-ar"
+ end
+ location (_buildDir .. "projects/" .. _subDir .. "/".. _ACTION .. "-mingw64-gcc")
+ end
+
+ if "mingw-clang" == _OPTIONS["gcc"] then
+ premake.gcc.cc = "clang"
+ premake.gcc.cxx = "clang++"
+ premake.gcc.ar = "llvm-ar"
+ premake.gcc.llvm = true
+ location (_buildDir .. "projects/" .. _subDir .. "/".. _ACTION .. "-mingw-clang")
+ end
+
+ if "osx" == _OPTIONS["gcc"] then
+ if os.is("linux") then
+ premake.gcc.cc = toolchainPrefix .. "clang"
+ premake.gcc.cxx = toolchainPrefix .. "clang++"
+ premake.gcc.ar = toolchainPrefix .. "ar"
+ end
+ location (_buildDir .. "projects/" .. _subDir .. "/".. _ACTION .. "-osx")
+ end
+
+ if "osx-clang" == _OPTIONS["gcc"] then
+ premake.gcc.cc = toolchainPrefix .. "clang"
+ premake.gcc.cxx = toolchainPrefix .. "clang++"
+ premake.gcc.ar = toolchainPrefix .. "ar"
+ location (_buildDir .. "projects/" .. _subDir .. "/".. _ACTION .. "-osx-clang")
+ end
+
+ if "pnacl" == _OPTIONS["gcc"] then
+
+ if not os.getenv("NACL_SDK_ROOT") then
+ print("Set NACL_SDK_ROOT enviroment variables.")
+ end
+
+ naclToolchain = "$(NACL_SDK_ROOT)/toolchain/win_pnacl/bin/pnacl-"
+ if os.is("macosx") then
+ naclToolchain = "$(NACL_SDK_ROOT)/toolchain/mac_pnacl/bin/pnacl-"
+ elseif os.is("linux") then
+ naclToolchain = "$(NACL_SDK_ROOT)/toolchain/linux_pnacl/bin/pnacl-"
+ end
+
+ premake.gcc.cc = naclToolchain .. "clang"
+ premake.gcc.cxx = naclToolchain .. "clang++"
+ premake.gcc.ar = naclToolchain .. "ar"
+ location (_buildDir .. "projects/" .. _subDir .. "/".. _ACTION .. "-pnacl")
+ end
+
+ if "rpi" == _OPTIONS["gcc"] then
+ location (_buildDir .. "projects/" .. _subDir .. "/".. _ACTION .. "-rpi")
+ end
+
+ if "ci20" == _OPTIONS["gcc"] then
+ location (_buildDir .. "projects/" .. _subDir .. "/".. _ACTION .. "-ci20")
+ end
+ elseif _ACTION == "vs2015" or _ACTION == "vs2015-fastbuild" then
+
+ if (_ACTION .. "-clang") == _OPTIONS["vs"] then
+ premake.vstudio.toolset = ("LLVM-" .. _ACTION)
+ location (_buildDir .. "projects/" .. _subDir .. "/".. _ACTION .. "-clang")
+ end
+
+ if "winphone8" == _OPTIONS["vs"] then
+ premake.vstudio.toolset = "v110_wp80"
+ location (_buildDir .. "projects/" .. _subDir .. "/".. _ACTION .. "-winphone8")
+ end
+
+ if "winphone81" == _OPTIONS["vs"] then
+ premake.vstudio.toolset = "v120_wp81"
+ platforms { "ARM" }
+ location (_buildDir .. "projects/" .. _subDir .. "/".. _ACTION .. "-winphone81")
+ end
+
+ if "winstore81" == _OPTIONS["vs"] then
+ premake.vstudio.toolset = "v120"
+ premake.vstudio.storeapp = "8.1"
+ platforms { "ARM" }
+ location (_buildDir .. "projects/" .. _subDir .. "/".. _ACTION .. "-winstore81")
+ end
+
+ if "winstore82" == _OPTIONS["vs"] then
+ premake.vstudio.toolset = "v140"
+ premake.vstudio.storeapp = "8.2"
+
+ -- If needed, depending on GENie version, enable file-level configuration
+ if enablefilelevelconfig ~= nil then
+ enablefilelevelconfig()
+ end
+
+ local action = premake.action.current()
+ action.vstudio.windowsTargetPlatformVersion = windowsPlatform
+
+ platforms { "ARM" }
+ location (_buildDir .. "projects/" .. _subDir .. "/".. _ACTION .. "-winstore82")
+ end
+
+ if "intel-14" == _OPTIONS["vs"] then
+ premake.vstudio.toolset = "Intel C++ Compiler XE 14.0"
+ location (_buildDir .. "projects/" .. _subDir .. "/".. _ACTION .. "-intel")
+ end
+
+ if "intel-15" == _OPTIONS["vs"] then
+ premake.vstudio.toolset = "Intel C++ Compiler XE 15.0"
+ location (_buildDir .. "projects/" .. _subDir .. "/".. _ACTION .. "-intel")
+ end
+
+ if ("vs2015-xp") == _OPTIONS["vs"] then
+ premake.vstudio.toolset = ("v140_xp")
+ location (_buildDir .. "projects/" .. _subDir .. "/".. _ACTION .. "-xp")
+ end
+ elseif _ACTION == "vs2017" or _ACTION == "vs2017-fastbuild" then
+
+ if (_ACTION .. "-clang") == _OPTIONS["vs"] then
+ premake.vstudio.toolset = ("LLVM-" .. _ACTION)
+ location (_buildDir .. "projects/" .. _subDir .. "/".. _ACTION .. "-clang")
+ end
+
+ if "winphone8" == _OPTIONS["vs"] then
+ premake.vstudio.toolset = "v110_wp80"
+ location (_buildDir .. "projects/" .. _subDir .. "/".. _ACTION .. "-winphone8")
+ end
+
+ if "winphone81" == _OPTIONS["vs"] then
+ premake.vstudio.toolset = "v120_wp81"
+ platforms { "ARM" }
+ location (_buildDir .. "projects/" .. _subDir .. "/".. _ACTION .. "-winphone81")
+ end
+
+ if "winstore81" == _OPTIONS["vs"] then
+ premake.vstudio.toolset = "v120"
+ premake.vstudio.storeapp = "8.1"
+ platforms { "ARM" }
+ location (_buildDir .. "projects/" .. _subDir .. "/".. _ACTION .. "-winstore81")
+ end
+
+ if "winstore82" == _OPTIONS["vs"] then
+ premake.vstudio.toolset = "v141"
+ premake.vstudio.storeapp = "8.2"
+
+ -- If needed, depending on GENie version, enable file-level configuration
+ if enablefilelevelconfig ~= nil then
+ enablefilelevelconfig()
+ end
+
+ local action = premake.action.current()
+ action.vstudio.windowsTargetPlatformVersion = windowsPlatform
+
+ platforms { "ARM" }
+ location (_buildDir .. "projects/" .. _subDir .. "/".. _ACTION .. "-winstore82")
+ end
+
+ if "intel-14" == _OPTIONS["vs"] then
+ premake.vstudio.toolset = "Intel C++ Compiler XE 14.0"
+ location (_buildDir .. "projects/" .. _subDir .. "/".. _ACTION .. "-intel")
+ end
+
+ if "intel-15" == _OPTIONS["vs"] then
+ premake.vstudio.toolset = "Intel C++ Compiler XE 15.0"
+ location (_buildDir .. "projects/" .. _subDir .. "/".. _ACTION .. "-intel")
+ end
+
+ if ("vs2017-xp") == _OPTIONS["vs"] then
+ premake.vstudio.toolset = ("v141_xp")
+ location (_buildDir .. "projects/" .. _subDir .. "/".. _ACTION .. "-xp")
+ end
+ elseif _ACTION == "xcode4" then
+
+
+ if "osx" == _OPTIONS["xcode"] then
+ premake.xcode.toolset = "macosx"
+ location (path.join(_buildDir, "projects", _ACTION .. "-osx"))
+
+ elseif "ios" == _OPTIONS["xcode"] then
+ premake.xcode.toolset = "iphoneos"
+ location (path.join(_buildDir, "projects", _ACTION .. "-ios"))
+ end
+ end
+
+ if (_OPTIONS["CC"] ~= nil) then
+ premake.gcc.cc = _OPTIONS["CC"]
+ end
+ if (_OPTIONS["CXX"] ~= nil) then
+ premake.gcc.cxx = _OPTIONS["CXX"]
+ end
+ if (_OPTIONS["LD"] ~= nil) then
+ premake.gcc.ld = _OPTIONS["LD"]
+ end
+
+ configuration {} -- reset configuration
+
+
+ configuration { "x32", "vs*" }
+ objdir (_buildDir .. _ACTION .. "/obj")
+
+ configuration { "x32", "vs*", "Release" }
+ targetdir (_buildDir .. _ACTION .. "/bin/x32/Release")
+
+ configuration { "x32", "vs*", "Debug" }
+ targetdir (_buildDir .. _ACTION .. "/bin/x32/Debug")
+
+ configuration { "x64", "vs*" }
+ defines { "_WIN64" }
+ objdir (_buildDir .. _ACTION .. "/obj")
+
+ configuration { "x64", "vs*", "Release" }
+ targetdir (_buildDir .. _ACTION .. "/bin/x64/Release")
+
+ configuration { "x64", "vs*", "Debug" }
+ targetdir (_buildDir .. _ACTION .. "/bin/x64/Debug")
+
+ configuration { "ARM", "vs*" }
+ targetdir (_buildDir .. _ACTION .. "/bin/ARM")
+ objdir (_buildDir .. _ACTION .. "/obj")
+
+ configuration { "ARM", "vs*", "Release" }
+ targetdir (_buildDir .. _ACTION .. "/bin/ARM/Release")
+
+ configuration { "ARM", "vs*", "Debug" }
+ targetdir (_buildDir .. _ACTION .. "/bin/ARM/Debug")
+
+ configuration { "x32", "vs*-clang" }
+ objdir (_buildDir .. _ACTION .. "-clang/obj")
+
+ configuration { "x32", "vs*-clang", "Release" }
+ targetdir (_buildDir .. _ACTION .. "-clang/bin/x32/Release")
+
+ configuration { "x32", "vs*-clang", "Debug" }
+ targetdir (_buildDir .. _ACTION .. "-clang/bin/x32/Debug")
+
+ configuration { "x64", "vs*-clang" }
+ objdir (_buildDir .. _ACTION .. "-clang/obj")
+
+ configuration { "x64", "vs*-clang", "Release" }
+ targetdir (_buildDir .. _ACTION .. "-clang/bin/x64/Release")
+
+ configuration { "x64", "vs*-clang", "Debug" }
+ targetdir (_buildDir .. _ACTION .. "-clang/bin/x64/Debug")
+
+ configuration { "vs*-clang" }
+ buildoptions {
+ "-Qunused-arguments",
+ }
+
+ configuration { "winphone8* or winstore8*" }
+ removeflags {
+ "StaticRuntime",
+ "NoExceptions",
+ }
+ flags {
+ "WinMain"
+ }
+
+ configuration { "mingw*" }
+ defines { "WIN32" }
+
+ configuration { "x32", "mingw32-gcc" }
+ objdir (_buildDir .. "mingw-gcc" .. "/obj")
+ buildoptions { "-m32" }
+
+ configuration { "x32", "mingw32-gcc", "Release" }
+ targetdir (_buildDir .. "mingw-gcc" .. "/bin/x32/Release")
+
+ configuration { "x32", "mingw32-gcc", "Debug" }
+ targetdir (_buildDir .. "mingw-gcc" .. "/bin/x32/Debug")
+
+ configuration { "x64", "mingw64-gcc" }
+ objdir (_buildDir .. "mingw-gcc" .. "/obj")
+ buildoptions { "-m64" }
+
+ configuration { "x64", "mingw64-gcc", "Release" }
+ targetdir (_buildDir .. "mingw-gcc" .. "/bin/x64/Release")
+
+ configuration { "x64", "mingw64-gcc", "Debug" }
+ targetdir (_buildDir .. "mingw-gcc" .. "/bin/x64/Debug")
+
+ configuration { "steamlink" }
+ objdir ( _buildDir .. "steamlink/obj")
+ defines {
+ "__STEAMLINK__=1", -- There is no special prefedined compiler symbol to detect SteamLink, faking it.
+ }
+ buildoptions {
+ "-marm",
+ "-mfloat-abi=hard",
+ "--sysroot=$(MARVELL_SDK_PATH)/rootfs",
+ }
+ linkoptions {
+ "-static-libgcc",
+ "-static-libstdc++",
+ "--sysroot=$(MARVELL_SDK_PATH)/rootfs",
+ }
+
+ configuration { "steamlink", "Release" }
+ targetdir (_buildDir .. "steamlink/bin/Release")
+
+ configuration { "steamlink", "Debug" }
+ targetdir (_buildDir .. "steamlink/bin/Debug")
+
+ configuration { "rpi" }
+ objdir ( _buildDir .. "rpi/obj")
+ libdirs {
+ "$(RASPBERRY_SYSROOT)/opt/vc/lib",
+ }
+ includedirs {
+ "$(RASPBERRY_SYSROOT)/opt/vc/include",
+ "$(RASPBERRY_SYSROOT)/opt/vc/include/interface/vcos/pthreads",
+ "$(RASPBERRY_SYSROOT)/opt/vc/include/interface/vmcs_host/linux",
+ }
+ defines {
+ "__VCCOREVER__=0x04000000", -- There is no special prefedined compiler symbol to detect RaspberryPi, faking it.
+ }
+ linkoptions {
+ "-Wl,--gc-sections",
+ }
+ buildoptions {
+ "--sysroot=$(RASPBERRY_SYSROOT)",
+ }
+ linkoptions {
+ "-static-libgcc",
+ "-static-libstdc++",
+ "--sysroot=$(RASPBERRY_SYSROOT)",
+ }
+
+ configuration { "rpi", "Release" }
+ targetdir (_buildDir .. "rpi/bin/Release")
+
+ configuration { "rpi", "Debug" }
+ targetdir (_buildDir .. "rpi/bin/Debug")
+
+ configuration { "ci20" }
+ objdir ( _buildDir .. "ci20/obj")
+ includedirs {
+ "$(CI20_SYSROOT)/mipsel-r2-hard/usr/include/c++/4.9",
+ "$(CI20_SYSROOT)/mipsel-r2-hard/usr/include/mipsel-linux-gnu/c++/4.9",
+ "$(CI20_SYSROOT)/mipsel-r2-hard/usr/include/c++/4.9/backward",
+ "$(CI20_SYSROOT)/mipsel-r2-hard/usr/lib/gcc/mipsel-linux-gnu/4.9/include",
+ "$(CI20_SYSROOT)/mipsel-r2-hard/usr/local/include",
+ "$(CI20_SYSROOT)/mipsel-r2-hard/usr/lib/gcc/mipsel-linux-gnu/4.9/include-fixed",
+ "$(CI20_SYSROOT)/mipsel-r2-hard/usr/include/mipsel-linux-gnu",
+ "$(CI20_SYSROOT)/mipsel-r2-hard/usr/include",
+ }
+ links {
+ "c",
+ "dl",
+ "m",
+ "gcc",
+ "stdc++",
+ "gcc_s",
+ }
+
+ buildoptions {
+ "--sysroot=$(CI20_SYSROOT)",
+ "-Wno-pragmas",
+ "-Wno-undef",
+ "-EL",
+ "-mel",
+ "-march=mips32r2",
+ "-mllsc",
+ "-mabi=32",
+ }
+ linkoptions {
+ "--sysroot=$(CI20_SYSROOT)",
+ "-Wl,-rpath=$(CI20_SYSROOT)/mipsel-r2-hard/usr/lib/mipsel-linux-gnu/",
+ "-Wl,-rpath=$(CI20_SYSROOT)/mipsel-r2-hard/lib/mipsel-linux-gnu/",
+ "-nostdlib",
+ "-EL",
+ "-mel",
+ "-march=mips32r2",
+ "-mllsc",
+ "-mabi=32",
+ "$(MIPS_LINUXGNU_ROOT)/lib/gcc/mips-mti-linux-gnu/4.9.2/mipsel-r2-hard/lib/crtbegin.o",
+ "$(MIPS_LINUXGNU_ROOT)/lib/gcc/mips-mti-linux-gnu/4.9.2/mipsel-r2-hard/lib/crtend.o",
+ "-L$(CI20_SYSROOT)/mipsel-r2-hard/usr/lib/gcc/mipsel-linux-gnu/4.9",
+ "-L$(CI20_SYSROOT)/mipsel-r2-hard/usr/lib/mipsel-linux-gnu",
+ "-L$(CI20_SYSROOT)/mipsel-r2-hard/usr/lib",
+ "-L$(CI20_SYSROOT)/mipsel-r2-hard/lib/mipsel-linux-gnu",
+ "-L$(CI20_SYSROOT)/mipsel-r2-hard/lib",
+ }
+
+ configuration { "ci20", "Release" }
+ targetdir (_buildDir .. "ci20/bin/Release")
+
+ configuration { "ci20", "Debug" }
+ targetdir (_buildDir .. "ci20/bin/Debug")
+
+ configuration { "mingw-clang" }
+ linkoptions {
+ "-Wl,--allow-multiple-definition",
+ }
+
+ configuration { "x32", "mingw-clang" }
+ objdir ( _buildDir .. "mingw-clang/obj")
+ buildoptions { "-m32" }
+
+ configuration { "x32", "mingw-clang", "Release" }
+ targetdir (_buildDir .. "mingw-clang/bin/x32/Release")
+
+ configuration { "x32", "mingw-clang", "Debug" }
+ targetdir (_buildDir .. "mingw-clang/bin/x32/Debug")
+
+ configuration { "x64", "mingw-clang" }
+ objdir (_buildDir .. "mingw-clang/obj")
+ buildoptions { "-m64" }
+
+ configuration { "x64", "mingw-clang", "Release" }
+ targetdir (_buildDir .. "mingw-clang/bin/x64/Release")
+
+ configuration { "x64", "mingw-clang", "Debug" }
+ targetdir (_buildDir .. "mingw-clang/bin/x64/Debug")
+
+ configuration { "linux-gcc", "x32" }
+ objdir (_buildDir .. "linux_gcc" .. "/obj")
+ buildoptions {
+ "-m32",
+ }
+
+ configuration { "linux-gcc", "x32", "Release" }
+ targetdir (_buildDir .. "linux_gcc" .. "/bin/x32/Release")
+
+ configuration { "linux-gcc", "x32", "Debug" }
+ targetdir (_buildDir .. "linux_gcc" .. "/bin/x32/Debug")
+
+ configuration { "linux-gcc", "x64" }
+ objdir (_buildDir .. "linux_gcc" .. "/obj")
+ buildoptions {
+ "-m64",
+ }
+
+ configuration { "linux-gcc", "x64", "Release" }
+ targetdir (_buildDir .. "linux_gcc" .. "/bin/x64/Release")
+
+ configuration { "linux-gcc", "x64", "Debug" }
+ targetdir (_buildDir .. "linux_gcc" .. "/bin/x64/Debug")
+
+ configuration { "linux-clang", "x32" }
+ objdir (_buildDir .. "linux_clang" .. "/obj")
+ buildoptions {
+ "-m32",
+ }
+
+ configuration { "linux-clang", "x32", "Release" }
+ targetdir (_buildDir .. "linux_clang" .. "/bin/x32/Release")
+
+ configuration { "linux-clang", "x32", "Debug" }
+ targetdir (_buildDir .. "linux_clang" .. "/bin/x32/Debug")
+
+ configuration { "linux-clang", "x64" }
+ objdir (_buildDir .. "linux_clang" .. "/obj")
+ buildoptions {
+ "-m64",
+ }
+
+ configuration { "linux-clang", "x64", "Release" }
+ targetdir (_buildDir .. "linux_clang" .. "/bin/x64/Release")
+
+ configuration { "linux-clang", "x64", "Debug" }
+ targetdir (_buildDir .. "linux_clang" .. "/bin/x64/Debug")
+
+ configuration { "solaris", "x32" }
+ objdir (_buildDir .. "solaris" .. "/obj")
+ buildoptions {
+ "-m32",
+ }
+
+ configuration { "solaris", "x32", "Release" }
+ targetdir (_buildDir .. "solaris" .. "/bin/x32/Release")
+
+ configuration { "solaris", "x32", "Debug" }
+ targetdir (_buildDir .. "solaris" .. "/bin/x32/Debug")
+
+ configuration { "solaris", "x64" }
+ objdir (_buildDir .. "solaris" .. "/obj")
+ buildoptions {
+ "-m64",
+ }
+
+ configuration { "solaris", "x64", "Release" }
+ targetdir (_buildDir .. "solaris" .. "/bin/x64/Release")
+
+ configuration { "solaris", "x64", "Debug" }
+ targetdir (_buildDir .. "solaris" .. "/bin/x64/Debug")
+
+ configuration { "freebsd", "x32" }
+ objdir (_buildDir .. "freebsd" .. "/obj")
+ buildoptions {
+ "-m32",
+ }
+
+ configuration { "freebsd", "x32", "Release" }
+ targetdir (_buildDir .. "freebsd" .. "/bin/x32/Release")
+
+ configuration { "freebsd", "x32", "Debug" }
+ targetdir (_buildDir .. "freebsd" .. "/bin/x32/Debug")
+
+ configuration { "freebsd", "x64" }
+ objdir (_buildDir .. "freebsd" .. "/obj")
+ buildoptions {
+ "-m64",
+ }
+ configuration { "freebsd", "x64", "Release" }
+ targetdir (_buildDir .. "freebsd" .. "/bin/x64/Release")
+
+ configuration { "freebsd", "x64", "Debug" }
+ targetdir (_buildDir .. "freebsd" .. "/bin/x64/Debug")
+
+ configuration { "netbsd", "x32" }
+ objdir (_buildDir .. "netbsd" .. "/obj")
+ buildoptions {
+ "-m32",
+ }
+ configuration { "netbsd", "x32", "Release" }
+ targetdir (_buildDir .. "netbsd" .. "/bin/x32/Release")
+
+ configuration { "netbsd", "x32", "Debug" }
+ targetdir (_buildDir .. "netbsd" .. "/bin/x32/Debug")
+
+ configuration { "netbsd", "x64" }
+ objdir (_buildDir .. "netbsd" .. "/obj")
+ buildoptions {
+ "-m64",
+ }
+ configuration { "netbsd", "x64", "Release" }
+ targetdir (_buildDir .. "netbsd" .. "/bin/x64/Release")
+
+ configuration { "netbsd", "x64", "Debug" }
+ targetdir (_buildDir .. "netbsd" .. "/bin/x64/Debug")
+
+ configuration { "openbsd", "x32" }
+ objdir (_buildDir .. "openbsd" .. "/obj")
+ buildoptions {
+ "-m32",
+ }
+ configuration { "openbsd", "x32", "Release" }
+ targetdir (_buildDir .. "openbsd" .. "/bin/x32/Release")
+
+ configuration { "openbsd", "x32", "Debug" }
+ targetdir (_buildDir .. "openbsd" .. "/bin/x32/Debug")
+
+ configuration { "openbsd", "x64" }
+ objdir (_buildDir .. "openbsd" .. "/obj")
+ buildoptions {
+ "-m64",
+ }
+ configuration { "openbsd", "x64", "Release" }
+ targetdir (_buildDir .. "openbsd" .. "/bin/x64/Release")
+
+ configuration { "openbsd", "x64", "Debug" }
+ targetdir (_buildDir .. "openbsd" .. "/bin/x64/Debug")
+
+ configuration { "android-*", "Release" }
+ targetdir (_buildDir .. "android/bin/" .. _OPTIONS["PLATFORM"] .. "/Release")
+
+ configuration { "android-*", "Debug" }
+ targetdir (_buildDir .. "android/bin/" .. _OPTIONS["PLATFORM"] .. "/Debug")
+
+ configuration { "android-*" }
+ objdir (_buildDir .. "android/obj/" .. _OPTIONS["PLATFORM"])
+ includedirs {
+ MAME_DIR .. "3rdparty/bgfx/3rdparty/khronos",
+ "$(ANDROID_NDK_ROOT)/sources/cxx-stl/llvm-libc++/libcxx/include",
+ "$(ANDROID_NDK_ROOT)/sources/android/support/include",
+ "$(ANDROID_NDK_ROOT)/sources/android/native_app_glue",
+ }
+ linkoptions {
+ "-nostdlib",
+ }
+ flags {
+ "NoImportLib",
+ }
+ links {
+ "c",
+ "dl",
+ "m",
+ "android",
+ "log",
+ "c++_static",
+ "gcc",
+ }
+ buildoptions {
+ "-fpic",
+ "-ffunction-sections",
+ "-funwind-tables",
+ "-fstack-protector-strong",
+ "-no-canonical-prefixes",
+ "-fno-integrated-as",
+ "-Wunused-value",
+ "-Wundef",
+ "-Wno-cast-align",
+ "-Wno-unknown-attributes",
+ "-Wno-macro-redefined",
+ }
+ linkoptions {
+ "-no-canonical-prefixes",
+ "-Wl,--no-undefined",
+ "-Wl,-z,noexecstack",
+ "-Wl,-z,relro",
+ "-Wl,-z,now",
+ }
+
+
+ configuration { "android-arm" }
+ libdirs {
+ "$(ANDROID_NDK_ROOT)/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a",
+ "$(ANDROID_NDK_ROOT)/platforms/" .. androidPlatform .. "/arch-arm/usr/lib",
+ }
+ includedirs {
+ "$(ANDROID_NDK_ROOT)/platforms/" .. androidPlatform .. "/arch-arm/usr/include",
+ }
+ buildoptions {
+ "-gcc-toolchain $(ANDROID_NDK_ARM)",
+ "-target armv7-none-linux-androideabi",
+ "-march=armv7-a",
+ "-mfloat-abi=softfp",
+ "-mfpu=vfpv3-d16",
+ "-mthumb",
+ }
+ linkoptions {
+ "-gcc-toolchain $(ANDROID_NDK_ARM)",
+ "--sysroot=$(ANDROID_NDK_ROOT)/platforms/" .. androidPlatform .. "/arch-arm",
+ "$(ANDROID_NDK_ROOT)/platforms/" .. androidPlatform .. "/arch-arm/usr/lib/crtbegin_so.o",
+ "$(ANDROID_NDK_ROOT)/platforms/" .. androidPlatform .. "/arch-arm/usr/lib/crtend_so.o",
+ "-target armv7-none-linux-androideabi",
+ "-march=armv7-a",
+ "-mthumb",
+ }
+
+ configuration { "android-arm64" }
+ libdirs {
+ "$(ANDROID_NDK_ROOT)/sources/cxx-stl/llvm-libc++/libs/arm64-v8a",
+ "$(ANDROID_NDK_ROOT)/platforms/" .. androidPlatform .. "/arch-arm64/usr/lib64",
+ }
+ includedirs {
+ "$(ANDROID_NDK_ROOT)/platforms/" .. androidPlatform .. "/arch-arm64/usr/include",
+ }
+ buildoptions {
+ "-gcc-toolchain $(ANDROID_NDK_ARM64)",
+ "-target aarch64-none-linux-android",
+ }
+ linkoptions {
+ "-gcc-toolchain $(ANDROID_NDK_ARM64)",
+ "--sysroot=$(ANDROID_NDK_ROOT)/platforms/" .. androidPlatform .. "/arch-arm64",
+ "$(ANDROID_NDK_ROOT)/platforms/" .. androidPlatform .. "/arch-arm64/usr/lib/crtbegin_so.o",
+ "$(ANDROID_NDK_ROOT)/platforms/" .. androidPlatform .. "/arch-arm64/usr/lib/crtend_so.o",
+ "-target aarch64-none-linux-android",
+ }
+
+ configuration { "android-mips" }
+ libdirs {
+ "$(ANDROID_NDK_ROOT)/sources/cxx-stl/llvm-libc++/libs/mips",
+ "$(ANDROID_NDK_ROOT)/platforms/" .. androidPlatform .. "/arch-mips/usr/lib/",
+ }
+ includedirs {
+ "$(ANDROID_NDK_ROOT)/platforms/" .. androidPlatform .. "/arch-mips/usr/include",
+ }
+ buildoptions {
+ "-gcc-toolchain $(ANDROID_NDK_MIPS)",
+ "-target mipsel-none-linux-android",
+ }
+ linkoptions {
+ "-gcc-toolchain $(ANDROID_NDK_MIPS)",
+ "-target mipsel-none-linux-android",
+ "--sysroot=$(ANDROID_NDK_ROOT)/platforms/" .. androidPlatform .. "/arch-mips",
+ "$(ANDROID_NDK_ROOT)/platforms/" .. androidPlatform .. "/arch-mips/usr/lib/crtbegin_so.o",
+ "$(ANDROID_NDK_ROOT)/platforms/" .. androidPlatform .. "/arch-mips/usr/lib/crtend_so.o",
+ }
+
+ configuration { "android-mips64" }
+ libdirs {
+ "$(ANDROID_NDK_ROOT)/sources/cxx-stl/llvm-libc++/libs/mips64",
+ "$(ANDROID_NDK_ROOT)/platforms/" .. androidPlatform .. "/arch-mips64/usr/lib64/",
+ }
+ includedirs {
+ "$(ANDROID_NDK_ROOT)/platforms/" .. androidPlatform .. "/arch-mips64/usr/include",
+ }
+ buildoptions {
+ "-gcc-toolchain $(ANDROID_NDK_MIPS64)",
+ "-target mips64el-none-linux-android",
+ }
+ linkoptions {
+ "-gcc-toolchain $(ANDROID_NDK_MIPS64)",
+ "-target mips64el-none-linux-android",
+ "--sysroot=$(ANDROID_NDK_ROOT)/platforms/" .. androidPlatform .. "/arch-mips64",
+ "$(ANDROID_NDK_ROOT)/platforms/" .. androidPlatform .. "/arch-mips64/usr/lib64/crtbegin_so.o",
+ "$(ANDROID_NDK_ROOT)/platforms/" .. androidPlatform .. "/arch-mips64/usr/lib64/crtend_so.o",
+ }
+
+ configuration { "android-x86" }
+ libdirs {
+ "$(ANDROID_NDK_ROOT)/sources/cxx-stl/llvm-libc++/libs/x86",
+ "$(ANDROID_NDK_ROOT)/platforms/" .. androidPlatform .. "/arch-x86/usr/lib",
+ }
+ includedirs {
+ "$(ANDROID_NDK_ROOT)/platforms/" .. androidPlatform .. "/arch-x86/usr/include",
+ }
+ buildoptions {
+ "-gcc-toolchain $(ANDROID_NDK_X86)",
+ "-target i686-none-linux-android",
+ "-mssse3"
+ }
+ linkoptions {
+ "-gcc-toolchain $(ANDROID_NDK_X86)",
+ "-target i686-none-linux-android",
+ "-mssse3",
+ "--sysroot=$(ANDROID_NDK_ROOT)/platforms/" .. androidPlatform .. "/arch-x86",
+ "$(ANDROID_NDK_ROOT)/platforms/" .. androidPlatform .. "/arch-x86/usr/lib/crtbegin_so.o",
+ "$(ANDROID_NDK_ROOT)/platforms/" .. androidPlatform .. "/arch-x86/usr/lib/crtend_so.o",
+ }
+
+ configuration { "android-x64" }
+ libdirs {
+ "$(ANDROID_NDK_ROOT)/sources/cxx-stl/llvm-libc++/libs/x86_64",
+ "$(ANDROID_NDK_ROOT)/platforms/" .. androidPlatform .. "/arch-x86_64/usr/lib64",
+ }
+ includedirs {
+ "$(ANDROID_NDK_ROOT)/platforms/" .. androidPlatform .. "/arch-x86_64/usr/include",
+ }
+ buildoptions {
+ "-gcc-toolchain $(ANDROID_NDK_X64)",
+ "-target x86_64-none-linux-android",
+ }
+ linkoptions {
+ "-gcc-toolchain $(ANDROID_NDK_X64)",
+ "-target x86_64-none-linux-android",
+ "--sysroot=$(ANDROID_NDK_ROOT)/platforms/" .. androidPlatform .. "/arch-x86_64",
+ "$(ANDROID_NDK_ROOT)/platforms/" .. androidPlatform .. "/arch-x86_64/usr/lib64/crtbegin_so.o",
+ "$(ANDROID_NDK_ROOT)/platforms/" .. androidPlatform .. "/arch-x86_64/usr/lib64/crtend_so.o",
+ }
+
+ configuration { "asmjs" }
+ targetdir (_buildDir .. "asmjs" .. "/bin")
+ objdir (_buildDir .. "asmjs" .. "/obj")
+ includedirs {
+ "$(EMSCRIPTEN)/system/include",
+ "$(EMSCRIPTEN)/system/include/compat",
+ "$(EMSCRIPTEN)/system/include/libc",
+ "$(EMSCRIPTEN)/system/lib/libcxxabi/include",
+ }
+ buildoptions {
+ "-Wno-cast-align",
+ "-Wno-tautological-compare",
+ "-Wno-self-assign-field",
+ "-Wno-format-security",
+ "-Wno-inline-new-delete",
+ "-Wno-constant-logical-operand",
+ "-Wno-absolute-value",
+ "-Wno-unknown-warning-option",
+ "-Wno-extern-c-compat",
+ }
+
+ configuration { "pnacl" }
+ buildoptions {
+ "-U__STRICT_ANSI__", -- strcasecmp, setenv, unsetenv,...
+ "-fno-stack-protector",
+ "-fdiagnostics-show-option",
+ "-fdata-sections",
+ "-ffunction-sections",
+ "-Wunused-value",
+ }
+
+ configuration { "pnacl" }
+ buildoptions {
+ "-Wno-tautological-undefined-compare",
+ "-Wno-cast-align",
+ }
+ includedirs {
+ "$(NACL_SDK_ROOT)/include",
+ "$(NACL_SDK_ROOT)/include/pnacl",
+ }
+
+ configuration { "pnacl" }
+ targetdir (_buildDir .. "pnacl" .. "/bin")
+ objdir (_buildDir .. "pnacl" .. "/obj")
+
+ configuration { "pnacl", "Debug" }
+ libdirs { "$(NACL_SDK_ROOT)/lib/pnacl/Debug" }
+
+ configuration { "pnacl", "Release" }
+ libdirs { "$(NACL_SDK_ROOT)/lib/pnacl/Release" }
+
+ configuration { "osx*", "x32" }
+ objdir (_buildDir .. "osx_clang" .. "/obj")
+ buildoptions {
+ "-m32",
+ }
+ configuration { "osx*", "x32", "Release" }
+ targetdir (_buildDir .. "osx_clang" .. "/bin/x32/Release")
+
+ configuration { "osx*", "x32", "Debug" }
+ targetdir (_buildDir .. "osx_clang" .. "/bin/x32/Debug")
+
+ configuration { "osx*", "x64" }
+ objdir (_buildDir .. "osx_clang" .. "/obj")
+ buildoptions {
+ "-m64",
+ }
+
+ configuration { "osx*", "x64", "Release" }
+ targetdir (_buildDir .. "osx_clang" .. "/bin/x64/Release")
+
+ configuration { "osx*", "x64", "Debug" }
+ targetdir (_buildDir .. "osx_clang" .. "/bin/x64/Debug")
+
+ configuration { "ios-arm" }
+ targetdir (_buildDir .. "ios-arm" .. "/bin")
+ objdir (_buildDir .. "ios-arm" .. "/obj")
+
+ configuration { "ios-simulator" }
+ targetdir (_buildDir .. "ios-simulator" .. "/bin")
+ objdir (_buildDir .. "ios-simulator" .. "/obj")
+
+ configuration { "rpi" }
+ targetdir (_buildDir .. "rpi" .. "/bin")
+ objdir (_buildDir .. "rpi" .. "/obj")
+
+ configuration {} -- reset configuration
+
+ return true
+end
+
+function strip()
+ if _OPTIONS["STRIP_SYMBOLS"]~="1" then
+ return true
+ end
+
+ configuration { "osx-*" }
+ postbuildcommands {
+ "$(SILENT) echo Stripping symbols.",
+ "$(SILENT) " .. (_OPTIONS['TOOLCHAIN'] and toolchainPrefix) .. "strip \"$(TARGET)\"",
+ }
+
+ configuration { "android-*" }
+ postbuildcommands {
+ "$(SILENT) echo Stripping symbols.",
+ "$(SILENT) " .. toolchainPrefix .. "strip -s \"$(TARGET)\""
+ }
+
+ configuration { "linux-* or rpi" }
+ postbuildcommands {
+ "$(SILENT) echo Stripping symbols.",
+ "$(SILENT) strip -s \"$(TARGET)\""
+ }
+
+ configuration { "mingw*", "x64" }
+ postbuildcommands {
+ "$(SILENT) echo Stripping symbols.",
+ "$(SILENT) " .. (_OPTIONS['TOOLCHAIN'] or "$(MINGW64)/bin/") .. "strip -s \"$(TARGET)\"",
+ }
+ configuration { "mingw*", "x32" }
+ postbuildcommands {
+ "$(SILENT) echo Stripping symbols.",
+ "$(SILENT) " .. (_OPTIONS['TOOLCHAIN'] or "$(MINGW32)/bin/") .. "strip -s \"$(TARGET)\"",
+ }
+
+ configuration { "pnacl" }
+ postbuildcommands {
+ "$(SILENT) echo Running pnacl-finalize.",
+ "$(SILENT) " .. naclToolchain .. "finalize \"$(TARGET)\""
+ }
+
+ configuration { "asmjs" }
+ postbuildcommands {
+ "$(SILENT) echo Running asmjs finalize.",
+ "$(SILENT) $(EMSCRIPTEN)/emcc -O2 -s TOTAL_MEMORY=268435456 \"$(TARGET)\" -o \"$(TARGET)\".html"
+ -- ALLOW_MEMORY_GROWTH
+ }
+
+ configuration {} -- reset configuration
+end
+
diff --git a/docs/release/snap/spatrol.PNG b/docs/release/snap/spatrol.PNG
new file mode 100644
index 00000000000..53a3df7bf08
--- /dev/null
+++ b/docs/release/snap/spatrol.PNG
Binary files differ
diff --git a/docs/release/src/devices/cpu/m68000/m68kcpu.cpp b/docs/release/src/devices/cpu/m68000/m68kcpu.cpp
new file mode 100644
index 00000000000..f73a10923c4
--- /dev/null
+++ b/docs/release/src/devices/cpu/m68000/m68kcpu.cpp
@@ -0,0 +1,2764 @@
+// license:BSD-3-Clause
+// copyright-holders:Karl Stenerud
+/* ======================================================================== */
+/* ========================= LICENSING & COPYRIGHT ======================== */
+/* ======================================================================== */
+
+#if 0
+static const char copyright_notice[] =
+"MUSASHI\n"
+"Version 4.95 (2012-02-19)\n"
+"A portable Motorola M68xxx/CPU32/ColdFire processor emulation engine.\n"
+"Copyright Karl Stenerud. All rights reserved.\n"
+;
+#endif
+
+
+/* ======================================================================== */
+/* ================================= NOTES ================================ */
+/* ======================================================================== */
+
+
+
+/* ======================================================================== */
+/* ================================ INCLUDES ============================== */
+/* ======================================================================== */
+
+#include "emu.h"
+#include "debugger.h"
+#include "m68kcpu.h"
+#include "m68kops.h"
+
+#include "m68kfpu.hxx"
+#include "m68kmmu.h"
+
+extern void m68040_fpu_op0(m68000_base_device *m68k);
+extern void m68040_fpu_op1(m68000_base_device *m68k);
+extern void m68881_mmu_ops(m68000_base_device *m68k);
+
+/* ======================================================================== */
+/* ================================= DATA ================================= */
+/* ======================================================================== */
+
+/* Used by shift & rotate instructions */
+const uint8_t m68ki_shift_8_table[65] =
+{
+ 0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff
+};
+const uint16_t m68ki_shift_16_table[65] =
+{
+ 0x0000, 0x8000, 0xc000, 0xe000, 0xf000, 0xf800, 0xfc00, 0xfe00, 0xff00,
+ 0xff80, 0xffc0, 0xffe0, 0xfff0, 0xfff8, 0xfffc, 0xfffe, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
+ 0xffff, 0xffff
+};
+const uint32_t m68ki_shift_32_table[65] =
+{
+ 0x00000000, 0x80000000, 0xc0000000, 0xe0000000, 0xf0000000, 0xf8000000,
+ 0xfc000000, 0xfe000000, 0xff000000, 0xff800000, 0xffc00000, 0xffe00000,
+ 0xfff00000, 0xfff80000, 0xfffc0000, 0xfffe0000, 0xffff0000, 0xffff8000,
+ 0xffffc000, 0xffffe000, 0xfffff000, 0xfffff800, 0xfffffc00, 0xfffffe00,
+ 0xffffff00, 0xffffff80, 0xffffffc0, 0xffffffe0, 0xfffffff0, 0xfffffff8,
+ 0xfffffffc, 0xfffffffe, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+ 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff
+};
+
+
+/* Number of clock cycles to use for exception processing.
+ * I used 4 for any vectors that are undocumented for processing times.
+ */
+const uint8_t m68ki_exception_cycle_table[7][256] =
+{
+ { /* 000 */
+ 40, /* 0: Reset - Initial Stack Pointer */
+ 4, /* 1: Reset - Initial Program Counter */
+ 50, /* 2: Bus Error (unemulated) */
+ 50, /* 3: Address Error (unemulated) */
+ 34, /* 4: Illegal Instruction */
+ 38, /* 5: Divide by Zero */
+ 40, /* 6: CHK */
+ 34, /* 7: TRAPV */
+ 34, /* 8: Privilege Violation */
+ 34, /* 9: Trace */
+ 4, /* 10: 1010 */
+ 4, /* 11: 1111 */
+ 4, /* 12: RESERVED */
+ 4, /* 13: Coprocessor Protocol Violation (unemulated) */
+ 4, /* 14: Format Error */
+ 44, /* 15: Uninitialized Interrupt */
+ 4, /* 16: RESERVED */
+ 4, /* 17: RESERVED */
+ 4, /* 18: RESERVED */
+ 4, /* 19: RESERVED */
+ 4, /* 20: RESERVED */
+ 4, /* 21: RESERVED */
+ 4, /* 22: RESERVED */
+ 4, /* 23: RESERVED */
+ 44, /* 24: Spurious Interrupt */
+ 44, /* 25: Level 1 Interrupt Autovector */
+ 44, /* 26: Level 2 Interrupt Autovector */
+ 44, /* 27: Level 3 Interrupt Autovector */
+ 44, /* 28: Level 4 Interrupt Autovector */
+ 44, /* 29: Level 5 Interrupt Autovector */
+ 44, /* 30: Level 6 Interrupt Autovector */
+ 44, /* 31: Level 7 Interrupt Autovector */
+ 34, /* 32: TRAP #0 */
+ 34, /* 33: TRAP #1 */
+ 34, /* 34: TRAP #2 */
+ 34, /* 35: TRAP #3 */
+ 34, /* 36: TRAP #4 */
+ 34, /* 37: TRAP #5 */
+ 34, /* 38: TRAP #6 */
+ 34, /* 39: TRAP #7 */
+ 34, /* 40: TRAP #8 */
+ 34, /* 41: TRAP #9 */
+ 34, /* 42: TRAP #10 */
+ 34, /* 43: TRAP #11 */
+ 34, /* 44: TRAP #12 */
+ 34, /* 45: TRAP #13 */
+ 34, /* 46: TRAP #14 */
+ 34, /* 47: TRAP #15 */
+ 4, /* 48: FP Branch or Set on Unknown Condition (unemulated) */
+ 4, /* 49: FP Inexact Result (unemulated) */
+ 4, /* 50: FP Divide by Zero (unemulated) */
+ 4, /* 51: FP Underflow (unemulated) */
+ 4, /* 52: FP Operand Error (unemulated) */
+ 4, /* 53: FP Overflow (unemulated) */
+ 4, /* 54: FP Signaling NAN (unemulated) */
+ 4, /* 55: FP Unimplemented Data Type (unemulated) */
+ 4, /* 56: MMU Configuration Error (unemulated) */
+ 4, /* 57: MMU Illegal Operation Error (unemulated) */
+ 4, /* 58: MMU Access Level Violation Error (unemulated) */
+ 4, /* 59: RESERVED */
+ 4, /* 60: RESERVED */
+ 4, /* 61: RESERVED */
+ 4, /* 62: RESERVED */
+ 4, /* 63: RESERVED */
+ /* 64-255: User Defined */
+ 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
+ 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
+ 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
+ 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
+ 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
+ 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
+ },
+ { /* 010 */
+ 40, /* 0: Reset - Initial Stack Pointer */
+ 4, /* 1: Reset - Initial Program Counter */
+ 126, /* 2: Bus Error (unemulated) */
+ 126, /* 3: Address Error (unemulated) */
+ 38, /* 4: Illegal Instruction */
+ 44, /* 5: Divide by Zero */
+ 44, /* 6: CHK */
+ 34, /* 7: TRAPV */
+ 38, /* 8: Privilege Violation */
+ 38, /* 9: Trace */
+ 4, /* 10: 1010 */
+ 4, /* 11: 1111 */
+ 4, /* 12: RESERVED */
+ 4, /* 13: Coprocessor Protocol Violation (unemulated) */
+ 4, /* 14: Format Error */
+ 44, /* 15: Uninitialized Interrupt */
+ 4, /* 16: RESERVED */
+ 4, /* 17: RESERVED */
+ 4, /* 18: RESERVED */
+ 4, /* 19: RESERVED */
+ 4, /* 20: RESERVED */
+ 4, /* 21: RESERVED */
+ 4, /* 22: RESERVED */
+ 4, /* 23: RESERVED */
+ 46, /* 24: Spurious Interrupt */
+ 46, /* 25: Level 1 Interrupt Autovector */
+ 46, /* 26: Level 2 Interrupt Autovector */
+ 46, /* 27: Level 3 Interrupt Autovector */
+ 46, /* 28: Level 4 Interrupt Autovector */
+ 46, /* 29: Level 5 Interrupt Autovector */
+ 46, /* 30: Level 6 Interrupt Autovector */
+ 46, /* 31: Level 7 Interrupt Autovector */
+ 38, /* 32: TRAP #0 */
+ 38, /* 33: TRAP #1 */
+ 38, /* 34: TRAP #2 */
+ 38, /* 35: TRAP #3 */
+ 38, /* 36: TRAP #4 */
+ 38, /* 37: TRAP #5 */
+ 38, /* 38: TRAP #6 */
+ 38, /* 39: TRAP #7 */
+ 38, /* 40: TRAP #8 */
+ 38, /* 41: TRAP #9 */
+ 38, /* 42: TRAP #10 */
+ 38, /* 43: TRAP #11 */
+ 38, /* 44: TRAP #12 */
+ 38, /* 45: TRAP #13 */
+ 38, /* 46: TRAP #14 */
+ 38, /* 47: TRAP #15 */
+ 4, /* 48: FP Branch or Set on Unknown Condition (unemulated) */
+ 4, /* 49: FP Inexact Result (unemulated) */
+ 4, /* 50: FP Divide by Zero (unemulated) */
+ 4, /* 51: FP Underflow (unemulated) */
+ 4, /* 52: FP Operand Error (unemulated) */
+ 4, /* 53: FP Overflow (unemulated) */
+ 4, /* 54: FP Signaling NAN (unemulated) */
+ 4, /* 55: FP Unimplemented Data Type (unemulated) */
+ 4, /* 56: MMU Configuration Error (unemulated) */
+ 4, /* 57: MMU Illegal Operation Error (unemulated) */
+ 4, /* 58: MMU Access Level Violation Error (unemulated) */
+ 4, /* 59: RESERVED */
+ 4, /* 60: RESERVED */
+ 4, /* 61: RESERVED */
+ 4, /* 62: RESERVED */
+ 4, /* 63: RESERVED */
+ /* 64-255: User Defined */
+ 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
+ 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
+ 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
+ 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
+ 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
+ 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
+ },
+ { /* 020 */
+ 4, /* 0: Reset - Initial Stack Pointer */
+ 4, /* 1: Reset - Initial Program Counter */
+ 50, /* 2: Bus Error (unemulated) */
+ 50, /* 3: Address Error (unemulated) */
+ 20, /* 4: Illegal Instruction */
+ 38, /* 5: Divide by Zero */
+ 40, /* 6: CHK */
+ 20, /* 7: TRAPV */
+ 34, /* 8: Privilege Violation */
+ 25, /* 9: Trace */
+ 20, /* 10: 1010 */
+ 20, /* 11: 1111 */
+ 4, /* 12: RESERVED */
+ 4, /* 13: Coprocessor Protocol Violation (unemulated) */
+ 4, /* 14: Format Error */
+ 30, /* 15: Uninitialized Interrupt */
+ 4, /* 16: RESERVED */
+ 4, /* 17: RESERVED */
+ 4, /* 18: RESERVED */
+ 4, /* 19: RESERVED */
+ 4, /* 20: RESERVED */
+ 4, /* 21: RESERVED */
+ 4, /* 22: RESERVED */
+ 4, /* 23: RESERVED */
+ 30, /* 24: Spurious Interrupt */
+ 30, /* 25: Level 1 Interrupt Autovector */
+ 30, /* 26: Level 2 Interrupt Autovector */
+ 30, /* 27: Level 3 Interrupt Autovector */
+ 30, /* 28: Level 4 Interrupt Autovector */
+ 30, /* 29: Level 5 Interrupt Autovector */
+ 30, /* 30: Level 6 Interrupt Autovector */
+ 30, /* 31: Level 7 Interrupt Autovector */
+ 20, /* 32: TRAP #0 */
+ 20, /* 33: TRAP #1 */
+ 20, /* 34: TRAP #2 */
+ 20, /* 35: TRAP #3 */
+ 20, /* 36: TRAP #4 */
+ 20, /* 37: TRAP #5 */
+ 20, /* 38: TRAP #6 */
+ 20, /* 39: TRAP #7 */
+ 20, /* 40: TRAP #8 */
+ 20, /* 41: TRAP #9 */
+ 20, /* 42: TRAP #10 */
+ 20, /* 43: TRAP #11 */
+ 20, /* 44: TRAP #12 */
+ 20, /* 45: TRAP #13 */
+ 20, /* 46: TRAP #14 */
+ 20, /* 47: TRAP #15 */
+ 4, /* 48: FP Branch or Set on Unknown Condition (unemulated) */
+ 4, /* 49: FP Inexact Result (unemulated) */
+ 4, /* 50: FP Divide by Zero (unemulated) */
+ 4, /* 51: FP Underflow (unemulated) */
+ 4, /* 52: FP Operand Error (unemulated) */
+ 4, /* 53: FP Overflow (unemulated) */
+ 4, /* 54: FP Signaling NAN (unemulated) */
+ 4, /* 55: FP Unimplemented Data Type (unemulated) */
+ 4, /* 56: MMU Configuration Error (unemulated) */
+ 4, /* 57: MMU Illegal Operation Error (unemulated) */
+ 4, /* 58: MMU Access Level Violation Error (unemulated) */
+ 4, /* 59: RESERVED */
+ 4, /* 60: RESERVED */
+ 4, /* 61: RESERVED */
+ 4, /* 62: RESERVED */
+ 4, /* 63: RESERVED */
+ /* 64-255: User Defined */
+ 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
+ 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
+ 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
+ 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
+ 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
+ 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
+ },
+ { /* 030 - not correct */
+ 4, /* 0: Reset - Initial Stack Pointer */
+ 4, /* 1: Reset - Initial Program Counter */
+ 50, /* 2: Bus Error (unemulated) */
+ 50, /* 3: Address Error (unemulated) */
+ 20, /* 4: Illegal Instruction */
+ 38, /* 5: Divide by Zero */
+ 40, /* 6: CHK */
+ 20, /* 7: TRAPV */
+ 34, /* 8: Privilege Violation */
+ 25, /* 9: Trace */
+ 20, /* 10: 1010 */
+ 20, /* 11: 1111 */
+ 4, /* 12: RESERVED */
+ 4, /* 13: Coprocessor Protocol Violation (unemulated) */
+ 4, /* 14: Format Error */
+ 30, /* 15: Uninitialized Interrupt */
+ 4, /* 16: RESERVED */
+ 4, /* 17: RESERVED */
+ 4, /* 18: RESERVED */
+ 4, /* 19: RESERVED */
+ 4, /* 20: RESERVED */
+ 4, /* 21: RESERVED */
+ 4, /* 22: RESERVED */
+ 4, /* 23: RESERVED */
+ 30, /* 24: Spurious Interrupt */
+ 30, /* 25: Level 1 Interrupt Autovector */
+ 30, /* 26: Level 2 Interrupt Autovector */
+ 30, /* 27: Level 3 Interrupt Autovector */
+ 30, /* 28: Level 4 Interrupt Autovector */
+ 30, /* 29: Level 5 Interrupt Autovector */
+ 30, /* 30: Level 6 Interrupt Autovector */
+ 30, /* 31: Level 7 Interrupt Autovector */
+ 20, /* 32: TRAP #0 */
+ 20, /* 33: TRAP #1 */
+ 20, /* 34: TRAP #2 */
+ 20, /* 35: TRAP #3 */
+ 20, /* 36: TRAP #4 */
+ 20, /* 37: TRAP #5 */
+ 20, /* 38: TRAP #6 */
+ 20, /* 39: TRAP #7 */
+ 20, /* 40: TRAP #8 */
+ 20, /* 41: TRAP #9 */
+ 20, /* 42: TRAP #10 */
+ 20, /* 43: TRAP #11 */
+ 20, /* 44: TRAP #12 */
+ 20, /* 45: TRAP #13 */
+ 20, /* 46: TRAP #14 */
+ 20, /* 47: TRAP #15 */
+ 4, /* 48: FP Branch or Set on Unknown Condition (unemulated) */
+ 4, /* 49: FP Inexact Result (unemulated) */
+ 4, /* 50: FP Divide by Zero (unemulated) */
+ 4, /* 51: FP Underflow (unemulated) */
+ 4, /* 52: FP Operand Error (unemulated) */
+ 4, /* 53: FP Overflow (unemulated) */
+ 4, /* 54: FP Signaling NAN (unemulated) */
+ 4, /* 55: FP Unimplemented Data Type (unemulated) */
+ 4, /* 56: MMU Configuration Error (unemulated) */
+ 4, /* 57: MMU Illegal Operation Error (unemulated) */
+ 4, /* 58: MMU Access Level Violation Error (unemulated) */
+ 4, /* 59: RESERVED */
+ 4, /* 60: RESERVED */
+ 4, /* 61: RESERVED */
+ 4, /* 62: RESERVED */
+ 4, /* 63: RESERVED */
+ /* 64-255: User Defined */
+ 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
+ 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
+ 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
+ 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
+ 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
+ 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
+ },
+ { /* 040 */ // TODO: these values are not correct
+ 4, /* 0: Reset - Initial Stack Pointer */
+ 4, /* 1: Reset - Initial Program Counter */
+ 50, /* 2: Bus Error (unemulated) */
+ 50, /* 3: Address Error (unemulated) */
+ 20, /* 4: Illegal Instruction */
+ 38, /* 5: Divide by Zero */
+ 40, /* 6: CHK */
+ 20, /* 7: TRAPV */
+ 34, /* 8: Privilege Violation */
+ 25, /* 9: Trace */
+ 20, /* 10: 1010 */
+ 20, /* 11: 1111 */
+ 4, /* 12: RESERVED */
+ 4, /* 13: Coprocessor Protocol Violation (unemulated) */
+ 4, /* 14: Format Error */
+ 30, /* 15: Uninitialized Interrupt */
+ 4, /* 16: RESERVED */
+ 4, /* 17: RESERVED */
+ 4, /* 18: RESERVED */
+ 4, /* 19: RESERVED */
+ 4, /* 20: RESERVED */
+ 4, /* 21: RESERVED */
+ 4, /* 22: RESERVED */
+ 4, /* 23: RESERVED */
+ 30, /* 24: Spurious Interrupt */
+ 30, /* 25: Level 1 Interrupt Autovector */
+ 30, /* 26: Level 2 Interrupt Autovector */
+ 30, /* 27: Level 3 Interrupt Autovector */
+ 30, /* 28: Level 4 Interrupt Autovector */
+ 30, /* 29: Level 5 Interrupt Autovector */
+ 30, /* 30: Level 6 Interrupt Autovector */
+ 30, /* 31: Level 7 Interrupt Autovector */
+ 20, /* 32: TRAP #0 */
+ 20, /* 33: TRAP #1 */
+ 20, /* 34: TRAP #2 */
+ 20, /* 35: TRAP #3 */
+ 20, /* 36: TRAP #4 */
+ 20, /* 37: TRAP #5 */
+ 20, /* 38: TRAP #6 */
+ 20, /* 39: TRAP #7 */
+ 20, /* 40: TRAP #8 */
+ 20, /* 41: TRAP #9 */
+ 20, /* 42: TRAP #10 */
+ 20, /* 43: TRAP #11 */
+ 20, /* 44: TRAP #12 */
+ 20, /* 45: TRAP #13 */
+ 20, /* 46: TRAP #14 */
+ 20, /* 47: TRAP #15 */
+ 4, /* 48: FP Branch or Set on Unknown Condition (unemulated) */
+ 4, /* 49: FP Inexact Result (unemulated) */
+ 4, /* 50: FP Divide by Zero (unemulated) */
+ 4, /* 51: FP Underflow (unemulated) */
+ 4, /* 52: FP Operand Error (unemulated) */
+ 4, /* 53: FP Overflow (unemulated) */
+ 4, /* 54: FP Signaling NAN (unemulated) */
+ 4, /* 55: FP Unimplemented Data Type (unemulated) */
+ 4, /* 56: MMU Configuration Error (unemulated) */
+ 4, /* 57: MMU Illegal Operation Error (unemulated) */
+ 4, /* 58: MMU Access Level Violation Error (unemulated) */
+ 4, /* 59: RESERVED */
+ 4, /* 60: RESERVED */
+ 4, /* 61: RESERVED */
+ 4, /* 62: RESERVED */
+ 4, /* 63: RESERVED */
+ /* 64-255: User Defined */
+ 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
+ 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
+ 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
+ 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
+ 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
+ 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
+ },
+ { /* CPU32 */
+ 4, /* 0: Reset - Initial Stack Pointer */
+ 4, /* 1: Reset - Initial Program Counter */
+ 50, /* 2: Bus Error (unemulated) */
+ 50, /* 3: Address Error (unemulated) */
+ 20, /* 4: Illegal Instruction */
+ 38, /* 5: Divide by Zero */
+ 40, /* 6: CHK */
+ 20, /* 7: TRAPV */
+ 34, /* 8: Privilege Violation */
+ 25, /* 9: Trace */
+ 20, /* 10: 1010 */
+ 20, /* 11: 1111 */
+ 4, /* 12: RESERVED */
+ 4, /* 13: Coprocessor Protocol Violation (unemulated) */
+ 4, /* 14: Format Error */
+ 30, /* 15: Uninitialized Interrupt */
+ 4, /* 16: RESERVED */
+ 4, /* 17: RESERVED */
+ 4, /* 18: RESERVED */
+ 4, /* 19: RESERVED */
+ 4, /* 20: RESERVED */
+ 4, /* 21: RESERVED */
+ 4, /* 22: RESERVED */
+ 4, /* 23: RESERVED */
+ 30, /* 24: Spurious Interrupt */
+ 30, /* 25: Level 1 Interrupt Autovector */
+ 30, /* 26: Level 2 Interrupt Autovector */
+ 30, /* 27: Level 3 Interrupt Autovector */
+ 30, /* 28: Level 4 Interrupt Autovector */
+ 30, /* 29: Level 5 Interrupt Autovector */
+ 30, /* 30: Level 6 Interrupt Autovector */
+ 30, /* 31: Level 7 Interrupt Autovector */
+ 20, /* 32: TRAP #0 */
+ 20, /* 33: TRAP #1 */
+ 20, /* 34: TRAP #2 */
+ 20, /* 35: TRAP #3 */
+ 20, /* 36: TRAP #4 */
+ 20, /* 37: TRAP #5 */
+ 20, /* 38: TRAP #6 */
+ 20, /* 39: TRAP #7 */
+ 20, /* 40: TRAP #8 */
+ 20, /* 41: TRAP #9 */
+ 20, /* 42: TRAP #10 */
+ 20, /* 43: TRAP #11 */
+ 20, /* 44: TRAP #12 */
+ 20, /* 45: TRAP #13 */
+ 20, /* 46: TRAP #14 */
+ 20, /* 47: TRAP #15 */
+ 4, /* 48: FP Branch or Set on Unknown Condition (unemulated) */
+ 4, /* 49: FP Inexact Result (unemulated) */
+ 4, /* 50: FP Divide by Zero (unemulated) */
+ 4, /* 51: FP Underflow (unemulated) */
+ 4, /* 52: FP Operand Error (unemulated) */
+ 4, /* 53: FP Overflow (unemulated) */
+ 4, /* 54: FP Signaling NAN (unemulated) */
+ 4, /* 55: FP Unimplemented Data Type (unemulated) */
+ 4, /* 56: MMU Configuration Error (unemulated) */
+ 4, /* 57: MMU Illegal Operation Error (unemulated) */
+ 4, /* 58: MMU Access Level Violation Error (unemulated) */
+ 4, /* 59: RESERVED */
+ 4, /* 60: RESERVED */
+ 4, /* 61: RESERVED */
+ 4, /* 62: RESERVED */
+ 4, /* 63: RESERVED */
+ /* 64-255: User Defined */
+ 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
+ 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
+ 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
+ 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
+ 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
+ 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
+ },
+ { /* ColdFire - not correct */
+ 4, /* 0: Reset - Initial Stack Pointer */
+ 4, /* 1: Reset - Initial Program Counter */
+ 50, /* 2: Bus Error (unemulated) */
+ 50, /* 3: Address Error (unemulated) */
+ 20, /* 4: Illegal Instruction */
+ 38, /* 5: Divide by Zero */
+ 40, /* 6: CHK */
+ 20, /* 7: TRAPV */
+ 34, /* 8: Privilege Violation */
+ 25, /* 9: Trace */
+ 20, /* 10: 1010 */
+ 20, /* 11: 1111 */
+ 4, /* 12: RESERVED */
+ 4, /* 13: Coprocessor Protocol Violation (unemulated) */
+ 4, /* 14: Format Error */
+ 30, /* 15: Uninitialized Interrupt */
+ 4, /* 16: RESERVED */
+ 4, /* 17: RESERVED */
+ 4, /* 18: RESERVED */
+ 4, /* 19: RESERVED */
+ 4, /* 20: RESERVED */
+ 4, /* 21: RESERVED */
+ 4, /* 22: RESERVED */
+ 4, /* 23: RESERVED */
+ 30, /* 24: Spurious Interrupt */
+ 30, /* 25: Level 1 Interrupt Autovector */
+ 30, /* 26: Level 2 Interrupt Autovector */
+ 30, /* 27: Level 3 Interrupt Autovector */
+ 30, /* 28: Level 4 Interrupt Autovector */
+ 30, /* 29: Level 5 Interrupt Autovector */
+ 30, /* 30: Level 6 Interrupt Autovector */
+ 30, /* 31: Level 7 Interrupt Autovector */
+ 20, /* 32: TRAP #0 */
+ 20, /* 33: TRAP #1 */
+ 20, /* 34: TRAP #2 */
+ 20, /* 35: TRAP #3 */
+ 20, /* 36: TRAP #4 */
+ 20, /* 37: TRAP #5 */
+ 20, /* 38: TRAP #6 */
+ 20, /* 39: TRAP #7 */
+ 20, /* 40: TRAP #8 */
+ 20, /* 41: TRAP #9 */
+ 20, /* 42: TRAP #10 */
+ 20, /* 43: TRAP #11 */
+ 20, /* 44: TRAP #12 */
+ 20, /* 45: TRAP #13 */
+ 20, /* 46: TRAP #14 */
+ 20, /* 47: TRAP #15 */
+ 4, /* 48: FP Branch or Set on Unknown Condition (unemulated) */
+ 4, /* 49: FP Inexact Result (unemulated) */
+ 4, /* 50: FP Divide by Zero (unemulated) */
+ 4, /* 51: FP Underflow (unemulated) */
+ 4, /* 52: FP Operand Error (unemulated) */
+ 4, /* 53: FP Overflow (unemulated) */
+ 4, /* 54: FP Signaling NAN (unemulated) */
+ 4, /* 55: FP Unimplemented Data Type (unemulated) */
+ 4, /* 56: MMU Configuration Error (unemulated) */
+ 4, /* 57: MMU Illegal Operation Error (unemulated) */
+ 4, /* 58: MMU Access Level Violation Error (unemulated) */
+ 4, /* 59: RESERVED */
+ 4, /* 60: RESERVED */
+ 4, /* 61: RESERVED */
+ 4, /* 62: RESERVED */
+ 4, /* 63: RESERVED */
+ /* 64-255: User Defined */
+ 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
+ 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
+ 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
+ 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
+ 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
+ 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
+ },
+};
+
+const uint8_t m68ki_ea_idx_cycle_table[64] =
+{
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, /* ..01.000 no memory indirect, base nullptr */
+ 5, /* ..01..01 memory indirect, base nullptr, outer nullptr */
+ 7, /* ..01..10 memory indirect, base nullptr, outer 16 */
+ 7, /* ..01..11 memory indirect, base nullptr, outer 32 */
+ 0, 5, 7, 7, 0, 5, 7, 7, 0, 5, 7, 7,
+ 2, /* ..10.000 no memory indirect, base 16 */
+ 7, /* ..10..01 memory indirect, base 16, outer nullptr */
+ 9, /* ..10..10 memory indirect, base 16, outer 16 */
+ 9, /* ..10..11 memory indirect, base 16, outer 32 */
+ 0, 7, 9, 9, 0, 7, 9, 9, 0, 7, 9, 9,
+ 6, /* ..11.000 no memory indirect, base 32 */
+ 11, /* ..11..01 memory indirect, base 32, outer nullptr */
+ 13, /* ..11..10 memory indirect, base 32, outer 16 */
+ 13, /* ..11..11 memory indirect, base 32, outer 32 */
+ 0, 11, 13, 13, 0, 11, 13, 13, 0, 11, 13, 13
+};
+
+
+
+/***************************************************************************
+ CPU STATE DESCRIPTION
+***************************************************************************/
+
+#define MASK_ALL (CPU_TYPE_000 | CPU_TYPE_008 | CPU_TYPE_010 | CPU_TYPE_EC020 | CPU_TYPE_020 | CPU_TYPE_EC030 | CPU_TYPE_030 | CPU_TYPE_EC040 | CPU_TYPE_040 | CPU_TYPE_FSCPU32 )
+#define MASK_24BIT_SPACE (CPU_TYPE_000 | CPU_TYPE_008 | CPU_TYPE_010 | CPU_TYPE_EC020)
+#define MASK_32BIT_SPACE (CPU_TYPE_020 | CPU_TYPE_EC030 | CPU_TYPE_030 | CPU_TYPE_EC040 | CPU_TYPE_040 | CPU_TYPE_FSCPU32 )
+#define MASK_010_OR_LATER (CPU_TYPE_010 | CPU_TYPE_EC020 | CPU_TYPE_020 | CPU_TYPE_030 | CPU_TYPE_EC030 | CPU_TYPE_040 | CPU_TYPE_EC040 | CPU_TYPE_FSCPU32 )
+#define MASK_020_OR_LATER (CPU_TYPE_EC020 | CPU_TYPE_020 | CPU_TYPE_EC030 | CPU_TYPE_030 | CPU_TYPE_EC040 | CPU_TYPE_040 | CPU_TYPE_FSCPU32 )
+#define MASK_030_OR_LATER (CPU_TYPE_030 | CPU_TYPE_EC030 | CPU_TYPE_040 | CPU_TYPE_EC040)
+#define MASK_040_OR_LATER (CPU_TYPE_040 | CPU_TYPE_EC040)
+
+
+
+/* ======================================================================== */
+/* ================================= API ================================== */
+/* ======================================================================== */
+
+static void set_irq_line(m68000_base_device *m68k, int irqline, int state)
+{
+ uint32_t old_level = m68k->int_level;
+ uint32_t vstate = m68k->virq_state;
+ uint32_t blevel;
+
+ if(state == ASSERT_LINE)
+ vstate |= 1 << irqline;
+ else
+ vstate &= ~(1 << irqline);
+ m68k->virq_state = vstate;
+
+ for(blevel = 7; blevel > 0; blevel--)
+ if(vstate & (1 << blevel))
+ break;
+
+ m68k->int_level = blevel << 8;
+
+ /* A transition from < 7 to 7 always interrupts (NMI) */
+ /* Note: Level 7 can also level trigger like a normal IRQ */
+ if(old_level != 0x0700 && m68k->int_level == 0x0700)
+ m68k->nmi_pending = true;
+}
+
+void m68000_base_device::presave()
+{
+ save_sr = m68ki_get_sr(this);
+ save_stopped = (stopped & STOP_LEVEL_STOP) != 0;
+ save_halted = (stopped & STOP_LEVEL_HALT) != 0;
+}
+
+void m68000_base_device::postload()
+{
+ m68ki_set_sr_noint_nosp(this, save_sr);
+ //fprintf(stderr, "Reloaded, pc=%x\n", REG_PC(m68k));
+ stopped = (save_stopped ? STOP_LEVEL_STOP : 0) | (save_halted ? STOP_LEVEL_HALT : 0);
+ m68ki_jump(this, REG_PC(this));
+}
+
+static void m68k_cause_bus_error(m68000_base_device *m68k)
+{
+ uint32_t sr;
+
+ sr = m68ki_init_exception(m68k);
+
+ m68k->run_mode = RUN_MODE_BERR_AERR_RESET;
+
+ if (!CPU_TYPE_IS_010_PLUS(m68k->cpu_type))
+ {
+ /* Note: This is implemented for 68000 only! */
+ m68ki_stack_frame_buserr(m68k, sr);
+ }
+ else if (CPU_TYPE_IS_010(m68k->cpu_type))
+ {
+ /* only the 68010 throws this unique type-1000 frame */
+ m68ki_stack_frame_1000(m68k, REG_PPC(m68k), sr, EXCEPTION_BUS_ERROR);
+ }
+ else if (m68k->mmu_tmp_buserror_address == REG_PPC(m68k))
+ {
+ m68ki_stack_frame_1010(m68k, sr, EXCEPTION_BUS_ERROR, REG_PPC(m68k), m68k->mmu_tmp_buserror_address);
+ }
+ else
+ {
+ m68ki_stack_frame_1011(m68k, sr, EXCEPTION_BUS_ERROR, REG_PPC(m68k), m68k->mmu_tmp_buserror_address);
+ }
+
+ m68ki_jump_vector(m68k, EXCEPTION_BUS_ERROR);
+}
+
+bool m68000_base_device::memory_translate(address_spacenum space, int intention, offs_t &address)
+{
+ /* only applies to the program address space and only does something if the MMU's enabled */
+ {
+ /* 68040 needs to call the MMU even when disabled so transparent translation works */
+ if ((space == AS_PROGRAM) && ((pmmu_enabled) || (CPU_TYPE_IS_040_PLUS(cpu_type))))
+ {
+ // FIXME: mmu_tmp_sr will be overwritten in pmmu_translate_addr_with_fc
+ uint16_t temp_mmu_tmp_sr = mmu_tmp_sr;
+ int mode = s_flag ? FUNCTION_CODE_SUPERVISOR_PROGRAM : FUNCTION_CODE_USER_PROGRAM;
+// uint32_t va=address;
+
+ if (CPU_TYPE_IS_040_PLUS(cpu_type))
+ {
+ address = pmmu_translate_addr_with_fc_040(this, address, mode, 1);
+ }
+ else
+ {
+ address = pmmu_translate_addr_with_fc(this, address, mode, 1);
+ }
+
+ if ((mmu_tmp_sr & M68K_MMU_SR_INVALID) != 0) {
+// logerror("cpu_translate_m68k failed with mmu_sr=%04x va=%08x pa=%08x\n",mmu_tmp_sr,va ,address);
+ address = 0;
+ }
+
+ mmu_tmp_sr = temp_mmu_tmp_sr;
+ }
+ }
+ return true;
+}
+
+
+
+
+
+
+
+
+
+inline void m68000_base_device::cpu_execute(void)
+{
+ initial_cycles = remaining_cycles;
+
+ /* eat up any reset cycles */
+ if (reset_cycles) {
+ int rc = reset_cycles;
+ reset_cycles = 0;
+ remaining_cycles -= rc;
+
+ if (remaining_cycles <= 0) return;
+ }
+
+ /* See if interrupts came in */
+ m68ki_check_interrupts(this);
+
+ /* Make sure we're not stopped */
+ if(!stopped)
+ {
+ /* Return point if we had an address error */
+ check_address_error:
+// HBMAME temp hack, to see if this allows us to run chinese hacks
+#if 0
+ if (m_address_error==1)
+ {
+ m_address_error = 0;
+ try {
+ m68ki_exception_address_error(this);
+ }
+ catch(int error)
+ {
+ if (error==10)
+ {
+ m_address_error = 1;
+ REG_PPC(this) = REG_PC(this);
+ goto check_address_error;
+ }
+ else
+ throw;
+ }
+ if(stopped)
+ {
+ if (remaining_cycles > 0)
+ remaining_cycles = 0;
+ return;
+ }
+ }
+#endif
+
+ /* Main loop. Keep going until we run out of clock cycles */
+ while (remaining_cycles > 0)
+ {
+ /* Set tracing accodring to T1. (T0 is done inside instruction) */
+ m68ki_trace_t1(this); /* auto-disable (see m68kcpu.h) */
+
+ /* Record previous program counter */
+ REG_PPC(this) = REG_PC(this);
+
+ /* Call external hook to peek at CPU */
+ debugger_instruction_hook(this, REG_PC(this));
+
+ /* call external instruction hook (independent of debug mode) */
+ if (!instruction_hook.isnull())
+ instruction_hook(*program, REG_PC(this), 0xffffffff);
+
+ try
+ {
+ if (!pmmu_enabled)
+ {
+ run_mode = RUN_MODE_NORMAL;
+ /* Read an instruction and call its handler */
+ ir = m68ki_read_imm_16(this);
+ jump_table[ir](this);
+ remaining_cycles -= cyc_instruction[ir];
+ }
+ else
+ {
+ run_mode = RUN_MODE_NORMAL;
+ // save CPU address registers values at start of instruction
+ int i;
+ uint32_t tmp_dar[16];
+
+ for (i = 15; i >= 0; i--)
+ {
+ tmp_dar[i] = REG_DA(this)[i];
+ }
+
+ mmu_tmp_buserror_occurred = 0;
+
+ /* Read an instruction and call its handler */
+ ir = m68ki_read_imm_16(this);
+
+ if (!mmu_tmp_buserror_occurred)
+ {
+ jump_table[ir](this);
+ remaining_cycles -= cyc_instruction[ir];
+ }
+
+ if (mmu_tmp_buserror_occurred)
+ {
+ uint32_t sr;
+
+ mmu_tmp_buserror_occurred = 0;
+
+ // restore cpu address registers to value at start of instruction
+ for (i = 15; i >= 0; i--)
+ {
+ if (REG_DA(this)[i] != tmp_dar[i])
+ {
+// logerror("PMMU: pc=%08x sp=%08x bus error: fixed %s[%d]: %08x -> %08x\n",
+// REG_PPC(this), REG_A(this)[7], i < 8 ? "D" : "A", i & 7, REG_DA(this)[i], tmp_dar[i]);
+ REG_DA(this)[i] = tmp_dar[i];
+ }
+ }
+
+ sr = m68ki_init_exception(this);
+
+ run_mode = RUN_MODE_BERR_AERR_RESET;
+
+ if (!CPU_TYPE_IS_020_PLUS(cpu_type))
+ {
+ /* Note: This is implemented for 68000 only! */
+ m68ki_stack_frame_buserr(this, sr);
+ }
+ else if(!CPU_TYPE_IS_040_PLUS(cpu_type)) {
+ if (mmu_tmp_buserror_address == REG_PPC(this))
+ {
+ m68ki_stack_frame_1010(this, sr, EXCEPTION_BUS_ERROR, REG_PPC(this), mmu_tmp_buserror_address);
+ }
+ else
+ {
+ m68ki_stack_frame_1011(this, sr, EXCEPTION_BUS_ERROR, REG_PPC(this), mmu_tmp_buserror_address);
+ }
+ }
+ else
+ {
+ m68ki_stack_frame_0111(this, sr, EXCEPTION_BUS_ERROR, REG_PPC(this), mmu_tmp_buserror_address, true);
+ }
+
+ m68ki_jump_vector(this, EXCEPTION_BUS_ERROR);
+
+ // TODO:
+ /* Use up some clock cycles and undo the instruction's cycles */
+ // remaining_cycles -= cyc_exception[EXCEPTION_BUS_ERROR] - cyc_instruction[ir];
+ }
+ }
+ }
+ catch (int error)
+ {
+ if (error==10)
+ {
+ m_address_error = 1;
+ goto check_address_error;
+ }
+ else
+ throw;
+ }
+
+
+ /* Trace m68k_exception, if necessary */
+ m68ki_exception_if_trace(this); /* auto-disable (see m68kcpu.h) */
+ }
+
+ /* set previous PC to current PC for the next entry into the loop */
+ REG_PPC(this) = REG_PC(this);
+ }
+ else if (remaining_cycles > 0)
+ remaining_cycles = 0;
+}
+
+
+
+void m68000_base_device::init_cpu_common(void)
+{
+ static uint32_t emulation_initialized = 0;
+
+ //this = device;//deviceparam;
+ program = &space(AS_PROGRAM);
+ oprogram = has_space(AS_DECRYPTED_OPCODES) ? &space(AS_DECRYPTED_OPCODES) : program;
+ int_ack_callback = device_irq_acknowledge_delegate(FUNC(m68000_base_device::standard_irq_callback_member), this);
+
+ /* disable all MMUs */
+ has_pmmu = 0;
+ has_hmmu = 0;
+ pmmu_enabled = 0;
+ hmmu_enabled = 0;
+
+ /* The first call to this function initializes the opcode handler jump table */
+ if(!emulation_initialized)
+ {
+ m68ki_build_opcode_table();
+ emulation_initialized = 1;
+ }
+
+ /* Note, D covers A because the dar array is common, REG_A(m68k)=REG_D(m68k)+8 */
+ save_item(NAME(REG_D(this)));
+ save_item(NAME(REG_PPC(this)));
+ save_item(NAME(REG_PC(this)));
+ save_item(NAME(REG_USP(this)));
+ save_item(NAME(REG_ISP(this)));
+ save_item(NAME(REG_MSP(this)));
+ save_item(NAME(vbr));
+ save_item(NAME(sfc));
+ save_item(NAME(dfc));
+ save_item(NAME(cacr));
+ save_item(NAME(caar));
+ save_item(NAME(save_sr));
+ save_item(NAME(int_level));
+ save_item(NAME(save_stopped));
+ save_item(NAME(save_halted));
+ save_item(NAME(pref_addr));
+ save_item(NAME(pref_data));
+ save_item(NAME(reset_cycles));
+ save_item(NAME(virq_state));
+ save_item(NAME(nmi_pending));
+ save_item(NAME(has_pmmu));
+ save_item(NAME(has_hmmu));
+ save_item(NAME(pmmu_enabled));
+ save_item(NAME(hmmu_enabled));
+
+ save_item(NAME(mmu_crp_aptr));
+ save_item(NAME(mmu_crp_limit));
+ save_item(NAME(mmu_srp_aptr));
+ save_item(NAME(mmu_srp_limit));
+ save_item(NAME(mmu_urp_aptr));
+ save_item(NAME(mmu_tc));
+ save_item(NAME(mmu_sr));
+ save_item(NAME(mmu_sr_040));
+ save_item(NAME(mmu_atc_rr));
+ save_item(NAME(mmu_tt0));
+ save_item(NAME(mmu_tt1));
+ save_item(NAME(mmu_itt0));
+ save_item(NAME(mmu_itt1));
+ save_item(NAME(mmu_dtt0));
+ save_item(NAME(mmu_dtt1));
+ save_item(NAME(mmu_acr0));
+ save_item(NAME(mmu_acr1));
+ save_item(NAME(mmu_acr2));
+ save_item(NAME(mmu_acr3));
+ save_item(NAME(mmu_last_page_entry));
+ save_item(NAME(mmu_last_page_entry_addr));
+
+ for (int i=0; i<MMU_ATC_ENTRIES;i++) {
+ save_item(NAME(mmu_atc_tag[i]), i);
+ save_item(NAME(mmu_atc_data[i]), i);
+ }
+
+ machine().save().register_presave(save_prepost_delegate(FUNC(m68000_base_device::presave), this));
+ machine().save().register_postload(save_prepost_delegate(FUNC(m68000_base_device::postload), this));
+
+ m_icountptr = &remaining_cycles;
+ remaining_cycles = 0;
+
+}
+
+void m68000_base_device::reset_cpu(void)
+{
+ /* Disable the PMMU/HMMU on reset, if any */
+ pmmu_enabled = 0;
+ hmmu_enabled = 0;
+
+ mmu_tc = 0;
+ mmu_tt0 = 0;
+ mmu_tt1 = 0;
+
+ /* Clear all stop levels and eat up all remaining cycles */
+ stopped = 0;
+ if (remaining_cycles > 0)
+ remaining_cycles = 0;
+
+ run_mode = RUN_MODE_BERR_AERR_RESET;
+
+ /* Turn off tracing */
+ t1_flag = t0_flag = 0;
+ m68ki_clear_trace(this);
+ /* Interrupt mask to level 7 */
+ int_mask = 0x0700;
+ int_level = 0;
+ virq_state = 0;
+ /* Reset VBR */
+ vbr = 0;
+ /* Go to supervisor mode */
+ m68ki_set_sm_flag(this, SFLAG_SET | MFLAG_CLEAR);
+
+ /* Invalidate the prefetch queue */
+ /* Set to arbitrary number since our first fetch is from 0 */
+ pref_addr = 0x1000;
+
+ /* Read the initial stack pointer and program counter */
+ m68ki_jump(this, 0);
+ REG_SP(this) = m68ki_read_imm_32(this);
+ REG_PC(this) = m68ki_read_imm_32(this);
+ m68ki_jump(this, REG_PC(this));
+
+ run_mode = RUN_MODE_NORMAL;
+
+ reset_cycles = cyc_exception[EXCEPTION_RESET];
+
+ /* flush the MMU's cache */
+ pmmu_atc_flush(this);
+
+ if(CPU_TYPE_IS_EC020_PLUS(cpu_type))
+ {
+ // clear instruction cache
+ m68ki_ic_clear(this);
+ }
+}
+
+
+
+/**************************************************************************
+ * STATE IMPORT/EXPORT
+ **************************************************************************/
+
+void m68000_base_device::state_import(const device_state_entry &entry)
+{
+ switch (entry.index())
+ {
+ case STATE_GENPC:
+ ppc = pc;
+ break;
+
+ case STATE_GENPCBASE:
+ pc = ppc;
+ break;
+
+ case M68K_SR:
+ case STATE_GENFLAGS:
+ m68ki_set_sr(this, iotemp);
+ break;
+
+ case M68K_ISP:
+ if (s_flag && !m_flag)
+ REG_SP(this) = iotemp;
+ else
+ REG_ISP(this) = iotemp;
+ break;
+
+ case M68K_USP:
+ if (!s_flag)
+ REG_SP(this) = iotemp;
+ else
+ REG_USP(this) = iotemp;
+ break;
+
+ case M68K_MSP:
+ if (s_flag && m_flag)
+ REG_SP(this) = iotemp;
+ else
+ REG_MSP(this) = iotemp;
+ break;
+
+ default:
+ fatalerror("CPU_IMPORT_STATE(this) called for unexpected value\n");
+ }
+
+}
+
+
+
+void m68000_base_device::state_export(const device_state_entry &entry)
+{
+ switch (entry.index())
+ {
+ case M68K_SR:
+ case STATE_GENFLAGS:
+ iotemp = m68ki_get_sr(this);
+ break;
+
+ case M68K_ISP:
+ iotemp = (s_flag && !m_flag) ? REG_SP(this) : REG_ISP(this);
+ break;
+
+ case M68K_USP:
+ iotemp = (!s_flag) ? REG_SP(this) : REG_USP(this);
+ break;
+
+ case M68K_MSP:
+ iotemp = (s_flag && m_flag) ? REG_SP(this) : REG_MSP(this);
+ break;
+
+ case M68K_FP0:
+ case M68K_FP1:
+ case M68K_FP2:
+ case M68K_FP3:
+ case M68K_FP4:
+ case M68K_FP5:
+ case M68K_FP6:
+ case M68K_FP7:
+ break;
+
+ default:
+ fatalerror("CPU_EXPORT_STATE(this) called for unexpected value\n");
+ }
+}
+
+void m68000_base_device::state_string_export(const device_state_entry &entry, std::string &str) const
+{
+ uint16_t sr;
+
+ switch (entry.index())
+ {
+ case M68K_FP0:
+ str = string_format("%f", fx80_to_double(REG_FP(this)[0]));
+ break;
+
+ case M68K_FP1:
+ str = string_format("%f", fx80_to_double(REG_FP(this)[1]));
+ break;
+
+ case M68K_FP2:
+ str = string_format("%f", fx80_to_double(REG_FP(this)[2]));
+ break;
+
+ case M68K_FP3:
+ str = string_format("%f", fx80_to_double(REG_FP(this)[3]));
+ break;
+
+ case M68K_FP4:
+ str = string_format("%f", fx80_to_double(REG_FP(this)[4]));
+ break;
+
+ case M68K_FP5:
+ str = string_format("%f", fx80_to_double(REG_FP(this)[5]));
+ break;
+
+ case M68K_FP6:
+ str = string_format("%f", fx80_to_double(REG_FP(this)[6]));
+ break;
+
+ case M68K_FP7:
+ str = string_format("%f", fx80_to_double(REG_FP(this)[7]));
+ break;
+
+ case STATE_GENFLAGS:
+ sr = m68ki_get_sr(this);
+ str = string_format("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c",
+ sr & 0x8000 ? 'T':'.',
+ sr & 0x4000 ? 't':'.',
+ sr & 0x2000 ? 'S':'.',
+ sr & 0x1000 ? 'M':'.',
+ sr & 0x0800 ? '?':'.',
+ sr & 0x0400 ? 'I':'.',
+ sr & 0x0200 ? 'I':'.',
+ sr & 0x0100 ? 'I':'.',
+ sr & 0x0080 ? '?':'.',
+ sr & 0x0040 ? '?':'.',
+ sr & 0x0020 ? '?':'.',
+ sr & 0x0010 ? 'X':'.',
+ sr & 0x0008 ? 'N':'.',
+ sr & 0x0004 ? 'Z':'.',
+ sr & 0x0002 ? 'V':'.',
+ sr & 0x0001 ? 'C':'.');
+ break;
+ }
+
+}
+
+
+/* global access */
+
+void m68000_base_device::set_hmmu_enable(int enable)
+{
+ hmmu_enabled = enable;
+}
+
+void m68000_base_device::set_fpu_enable(int enable)
+{
+ has_fpu = enable;
+}
+
+int m68000_base_device::get_fpu_enable()
+{
+ return has_fpu;
+}
+
+void m68000_base_device::set_instruction_hook(read32_delegate ihook)
+{
+ instruction_hook = ihook;
+}
+
+/****************************************************************************
+ * 8-bit data memory interface
+ ****************************************************************************/
+
+uint16_t m68000_base_device::m68008_read_immediate_16(offs_t address)
+{
+ return (m_odirect->read_byte(address) << 8) | (m_odirect->read_byte(address + 1));
+}
+
+void m68000_base_device::init8(address_space &space, address_space &ospace)
+{
+ m_space = &space;
+ m_direct = &space.direct();
+ m_ospace = &ospace;
+ m_odirect = &ospace.direct();
+// m_cpustate = this;
+ opcode_xor = 0;
+
+ readimm16 = m68k_readimm16_delegate(&m68000_base_device::m68008_read_immediate_16, this);
+ read8 = m68k_read8_delegate(&address_space::read_byte, &space);
+ read16 = m68k_read16_delegate(&address_space::read_word, &space);
+ read32 = m68k_read32_delegate(&address_space::read_dword, &space);
+ write8 = m68k_write8_delegate(&address_space::write_byte, &space);
+ write16 = m68k_write16_delegate(&address_space::write_word, &space);
+ write32 = m68k_write32_delegate(&address_space::write_dword, &space);
+}
+
+/****************************************************************************
+ * 16-bit data memory interface
+ ****************************************************************************/
+
+uint16_t m68000_base_device::read_immediate_16(offs_t address)
+{
+ return m_odirect->read_word((address), opcode_xor);
+}
+
+uint16_t m68000_base_device::simple_read_immediate_16(offs_t address)
+{
+ return m_odirect->read_word(address);
+}
+
+void m68000_base_device::m68000_write_byte(offs_t address, uint8_t data)
+{
+ static const uint16_t masks[] = {0xff00, 0x00ff};
+
+ m_space->write_word(address & ~1, data | (data << 8), masks[address & 1]);
+}
+
+void m68000_base_device::init16(address_space &space, address_space &ospace)
+{
+ m_space = &space;
+ m_direct = &space.direct();
+ m_ospace = &ospace;
+ m_odirect = &ospace.direct();
+
+ opcode_xor = 0;
+
+ readimm16 = m68k_readimm16_delegate(&m68000_base_device::simple_read_immediate_16, this);
+ read8 = m68k_read8_delegate(&address_space::read_byte, &space);
+ read16 = m68k_read16_delegate(&address_space::read_word, &space);
+ read32 = m68k_read32_delegate(&address_space::read_dword, &space);
+ write8 = m68k_write8_delegate(&m68000_base_device::m68000_write_byte, this);
+ write16 = m68k_write16_delegate(&address_space::write_word, &space);
+ write32 = m68k_write32_delegate(&address_space::write_dword, &space);
+}
+
+
+
+
+
+/****************************************************************************
+ * 32-bit data memory interface
+ ****************************************************************************/
+
+/* interface for 32-bit data bus (68EC020, 68020) */
+void m68000_base_device::init32(address_space &space, address_space &ospace)
+{
+ m_space = &space;
+ m_direct = &space.direct();
+ m_ospace = &ospace;
+ m_odirect = &ospace.direct();
+ opcode_xor = WORD_XOR_BE(0);
+
+ readimm16 = m68k_readimm16_delegate(&m68000_base_device::read_immediate_16, this);
+ read8 = m68k_read8_delegate(&address_space::read_byte, &space);
+ read16 = m68k_read16_delegate(&address_space::read_word_unaligned, &space);
+ read32 = m68k_read32_delegate(&address_space::read_dword_unaligned, &space);
+ write8 = m68k_write8_delegate(&address_space::write_byte, &space);
+ write16 = m68k_write16_delegate(&address_space::write_word_unaligned, &space);
+ write32 = m68k_write32_delegate(&address_space::write_dword_unaligned, &space);
+}
+
+/* interface for 32-bit data bus with PMMU (68EC020, 68020) */
+uint8_t m68000_base_device::read_byte_32_mmu(offs_t address)
+{
+ if (pmmu_enabled)
+ {
+ address = pmmu_translate_addr(this, address);
+ if (mmu_tmp_buserror_occurred) {
+ return ~0;
+ }
+ }
+
+ return m_space->read_byte(address);
+}
+
+void m68000_base_device::write_byte_32_mmu(offs_t address, uint8_t data)
+{
+ if (pmmu_enabled)
+ {
+ address = pmmu_translate_addr(this, address);
+ if (mmu_tmp_buserror_occurred) {
+ return;
+ }
+ }
+
+ m_space->write_byte(address, data);
+}
+
+uint16_t m68000_base_device::read_immediate_16_mmu(offs_t address)
+{
+ if (pmmu_enabled)
+ {
+ address = pmmu_translate_addr(this, address);
+ if (mmu_tmp_buserror_occurred) {
+ return ~0;
+ }
+ }
+
+ return m_odirect->read_word((address), opcode_xor);
+}
+
+/* potentially misaligned 16-bit reads with a 32-bit data bus (and 24-bit address bus) */
+uint16_t m68000_base_device::readword_d32_mmu(offs_t address)
+{
+ uint16_t result;
+
+ if (pmmu_enabled)
+ {
+ uint32_t address0 = pmmu_translate_addr(this, address);
+ if (mmu_tmp_buserror_occurred) {
+ return ~0;
+ } else if (WORD_ALIGNED(address)) {
+ return m_space->read_word(address0);
+ } else {
+ uint32_t address1 = pmmu_translate_addr(this, address + 1);
+ if (mmu_tmp_buserror_occurred) {
+ return ~0;
+ } else {
+ result = m_space->read_byte(address0) << 8;
+ return result | m_space->read_byte(address1);
+ }
+ }
+ }
+
+ if (WORD_ALIGNED(address))
+ return m_space->read_word(address);
+ result = m_space->read_byte(address) << 8;
+ return result | m_space->read_byte(address + 1);
+}
+
+/* potentially misaligned 16-bit writes with a 32-bit data bus (and 24-bit address bus) */
+void m68000_base_device::writeword_d32_mmu(offs_t address, uint16_t data)
+{
+ if (pmmu_enabled)
+ {
+ uint32_t address0 = pmmu_translate_addr(this, address);
+ if (mmu_tmp_buserror_occurred) {
+ return;
+ } else if (WORD_ALIGNED(address)) {
+ m_space->write_word(address0, data);
+ return;
+ } else {
+ uint32_t address1 = pmmu_translate_addr(this, address + 1);
+ if (mmu_tmp_buserror_occurred) {
+ return;
+ } else {
+ m_space->write_byte(address0, data >> 8);
+ m_space->write_byte(address1, data);
+ return;
+ }
+ }
+ }
+
+ if (WORD_ALIGNED(address))
+ {
+ m_space->write_word(address, data);
+ return;
+ }
+ m_space->write_byte(address, data >> 8);
+ m_space->write_byte(address + 1, data);
+}
+
+/* potentially misaligned 32-bit reads with a 32-bit data bus (and 24-bit address bus) */
+uint32_t m68000_base_device::readlong_d32_mmu(offs_t address)
+{
+ uint32_t result;
+
+ if (pmmu_enabled)
+ {
+ uint32_t address0 = pmmu_translate_addr(this, address);
+ if (mmu_tmp_buserror_occurred) {
+ return ~0;
+ } else if ((address +3) & 0xfc) {
+ // not at page boundary; use default code
+ address = address0;
+ } else if (DWORD_ALIGNED(address)) { // 0
+ return m_space->read_dword(address0);
+ } else {
+ uint32_t address2 = pmmu_translate_addr(this, address+2);
+ if (mmu_tmp_buserror_occurred) {
+ return ~0;
+ } else if (WORD_ALIGNED(address)) { // 2
+ result = m_space->read_word(address0) << 16;
+ return result | m_space->read_word(address2);
+ } else {
+ uint32_t address1 = pmmu_translate_addr(this, address+1);
+ uint32_t address3 = pmmu_translate_addr(this, address+3);
+ if (mmu_tmp_buserror_occurred) {
+ return ~0;
+ } else {
+ result = m_space->read_byte(address0) << 24;
+ result |= m_space->read_word(address1) << 8;
+ return result | m_space->read_byte(address3);
+ }
+ }
+ }
+ }
+
+ if (DWORD_ALIGNED(address))
+ return m_space->read_dword(address);
+ else if (WORD_ALIGNED(address))
+ {
+ result = m_space->read_word(address) << 16;
+ return result | m_space->read_word(address + 2);
+ }
+ result = m_space->read_byte(address) << 24;
+ result |= m_space->read_word(address + 1) << 8;
+ return result | m_space->read_byte(address + 3);
+}
+
+/* potentially misaligned 32-bit writes with a 32-bit data bus (and 24-bit address bus) */
+void m68000_base_device::writelong_d32_mmu(offs_t address, uint32_t data)
+{
+ if (pmmu_enabled)
+ {
+ uint32_t address0 = pmmu_translate_addr(this, address);
+ if (mmu_tmp_buserror_occurred) {
+ return;
+ } else if ((address +3) & 0xfc) {
+ // not at page boundary; use default code
+ address = address0;
+ } else if (DWORD_ALIGNED(address)) { // 0
+ m_space->write_dword(address0, data);
+ return;
+ } else {
+ uint32_t address2 = pmmu_translate_addr(this, address+2);
+ if (mmu_tmp_buserror_occurred) {
+ return;
+ } else if (WORD_ALIGNED(address)) { // 2
+ m_space->write_word(address0, data >> 16);
+ m_space->write_word(address2, data);
+ return;
+ } else {
+ uint32_t address1 = pmmu_translate_addr(this, address+1);
+ uint32_t address3 = pmmu_translate_addr(this, address+3);
+ if (mmu_tmp_buserror_occurred) {
+ return;
+ } else {
+ m_space->write_byte(address0, data >> 24);
+ m_space->write_word(address1, data >> 8);
+ m_space->write_byte(address3, data);
+ return;
+ }
+ }
+ }
+ }
+
+ if (DWORD_ALIGNED(address))
+ {
+ m_space->write_dword(address, data);
+ return;
+ }
+ else if (WORD_ALIGNED(address))
+ {
+ m_space->write_word(address, data >> 16);
+ m_space->write_word(address + 2, data);
+ return;
+ }
+ m_space->write_byte(address, data >> 24);
+ m_space->write_word(address + 1, data >> 8);
+ m_space->write_byte(address + 3, data);
+}
+
+void m68000_base_device::init32mmu(address_space &space, address_space &ospace)
+{
+ m_space = &space;
+ m_direct = &space.direct();
+ m_ospace = &ospace;
+ m_odirect = &ospace.direct();
+ opcode_xor = WORD_XOR_BE(0);
+
+ readimm16 = m68k_readimm16_delegate(&m68000_base_device::read_immediate_16_mmu, this);
+ read8 = m68k_read8_delegate(&m68000_base_device::read_byte_32_mmu, this);
+ read16 = m68k_read16_delegate(&m68000_base_device::readword_d32_mmu, this);
+ read32 = m68k_read32_delegate(&m68000_base_device::readlong_d32_mmu, this);
+ write8 = m68k_write8_delegate(&m68000_base_device::write_byte_32_mmu, this);
+ write16 = m68k_write16_delegate(&m68000_base_device::writeword_d32_mmu, this);
+ write32 = m68k_write32_delegate(&m68000_base_device::writelong_d32_mmu, this);
+}
+
+
+/* interface for 32-bit data bus with PMMU (68EC020, 68020) */
+uint8_t m68000_base_device::read_byte_32_hmmu(offs_t address)
+{
+ if (hmmu_enabled)
+ {
+ address = hmmu_translate_addr(this, address);
+ }
+
+ return m_space->read_byte(address);
+}
+
+void m68000_base_device::write_byte_32_hmmu(offs_t address, uint8_t data)
+{
+ if (hmmu_enabled)
+ {
+ address = hmmu_translate_addr(this, address);
+ }
+
+ m_space->write_byte(address, data);
+}
+
+uint16_t m68000_base_device::read_immediate_16_hmmu(offs_t address)
+{
+ if (hmmu_enabled)
+ {
+ address = hmmu_translate_addr(this, address);
+ }
+
+ return m_odirect->read_word((address), opcode_xor);
+}
+
+/* potentially misaligned 16-bit reads with a 32-bit data bus (and 24-bit address bus) */
+uint16_t m68000_base_device::readword_d32_hmmu(offs_t address)
+{
+ uint16_t result;
+
+ if (hmmu_enabled)
+ {
+ address = hmmu_translate_addr(this, address);
+ }
+
+ if (WORD_ALIGNED(address))
+ return m_space->read_word(address);
+ result = m_space->read_byte(address) << 8;
+ return result | m_space->read_byte(address + 1);
+}
+
+/* potentially misaligned 16-bit writes with a 32-bit data bus (and 24-bit address bus) */
+void m68000_base_device::writeword_d32_hmmu(offs_t address, uint16_t data)
+{
+ if (hmmu_enabled)
+ {
+ address = hmmu_translate_addr(this, address);
+ }
+
+ if (WORD_ALIGNED(address))
+ {
+ m_space->write_word(address, data);
+ return;
+ }
+ m_space->write_byte(address, data >> 8);
+ m_space->write_byte(address + 1, data);
+}
+
+/* potentially misaligned 32-bit reads with a 32-bit data bus (and 24-bit address bus) */
+uint32_t m68000_base_device::readlong_d32_hmmu(offs_t address)
+{
+ uint32_t result;
+
+ if (hmmu_enabled)
+ {
+ address = hmmu_translate_addr(this, address);
+ }
+
+ if (DWORD_ALIGNED(address))
+ return m_space->read_dword(address);
+ else if (WORD_ALIGNED(address))
+ {
+ result = m_space->read_word(address) << 16;
+ return result | m_space->read_word(address + 2);
+ }
+ result = m_space->read_byte(address) << 24;
+ result |= m_space->read_word(address + 1) << 8;
+ return result | m_space->read_byte(address + 3);
+}
+
+/* potentially misaligned 32-bit writes with a 32-bit data bus (and 24-bit address bus) */
+void m68000_base_device::writelong_d32_hmmu(offs_t address, uint32_t data)
+{
+ if (hmmu_enabled)
+ {
+ address = hmmu_translate_addr(this, address);
+ }
+
+ if (DWORD_ALIGNED(address))
+ {
+ m_space->write_dword(address, data);
+ return;
+ }
+ else if (WORD_ALIGNED(address))
+ {
+ m_space->write_word(address, data >> 16);
+ m_space->write_word(address + 2, data);
+ return;
+ }
+ m_space->write_byte(address, data >> 24);
+ m_space->write_word(address + 1, data >> 8);
+ m_space->write_byte(address + 3, data);
+}
+
+void m68000_base_device::init32hmmu(address_space &space, address_space &ospace)
+{
+ m_space = &space;
+ m_direct = &space.direct();
+ m_ospace = &ospace;
+ m_odirect = &ospace.direct();
+ opcode_xor = WORD_XOR_BE(0);
+
+ readimm16 = m68k_readimm16_delegate(&m68000_base_device::read_immediate_16_hmmu, this);
+ read8 = m68k_read8_delegate(&m68000_base_device::read_byte_32_hmmu, this);
+ read16 = m68k_read16_delegate(&m68000_base_device::readword_d32_hmmu, this);
+ read32 = m68k_read32_delegate(&m68000_base_device::readlong_d32_hmmu, this);
+ write8 = m68k_write8_delegate(&m68000_base_device::write_byte_32_hmmu, this);
+ write16 = m68k_write16_delegate(&m68000_base_device::writeword_d32_hmmu, this);
+ write32 = m68k_write32_delegate(&m68000_base_device::writelong_d32_hmmu, this);
+}
+
+void m68000_base_device::set_reset_callback(write_line_delegate callback)
+{
+ reset_instr_callback = callback;
+}
+
+// fault_addr = address to indicate fault at
+// rw = 0 for read, 1 for write
+// fc = 3-bit function code of access (usually you'd just put what m68k_get_fc() returns here)
+void m68000_base_device::set_buserror_details(uint32_t fault_addr, uint8_t rw, uint8_t fc)
+{
+ aerr_address = fault_addr;
+ aerr_write_mode = rw;
+ aerr_fc = fc;
+}
+
+void m68000_base_device::set_cmpild_callback(write32_delegate callback)
+{
+ cmpild_instr_callback = callback;
+}
+
+void m68000_base_device::set_rte_callback(write_line_delegate callback)
+{
+ rte_instr_callback = callback;
+}
+
+void m68000_base_device::set_tas_write_callback(write8_delegate callback)
+{
+ tas_write_callback = callback;
+}
+
+uint16_t m68000_base_device::get_fc()
+{
+ return mmu_tmp_fc;
+}
+
+/****************************************************************************
+ * State definition
+ ****************************************************************************/
+
+void m68000_base_device::define_state(void)
+{
+ uint32_t addrmask = (cpu_type & MASK_24BIT_SPACE) ? 0xffffff : 0xffffffff;
+
+ state_add(STATE_GENPC, "PC", pc).mask(addrmask).callimport();
+ state_add(STATE_GENPCBASE, "CURPC", ppc).mask(addrmask).callimport().noshow();
+ state_add(M68K_SP, "SP", dar[15]);
+ state_add(STATE_GENSP, "GENSP", dar[15]).noshow();
+ state_add(STATE_GENFLAGS, "GENFLAGS", iotemp).noshow().callimport().callexport().formatstr("%16s");
+ state_add(M68K_ISP, "ISP", iotemp).callimport().callexport();
+ state_add(M68K_USP, "USP", iotemp).callimport().callexport();
+ if (cpu_type & MASK_020_OR_LATER)
+ state_add(M68K_MSP, "MSP", iotemp).callimport().callexport();
+
+ for (int regnum = 0; regnum < 8; regnum++) {
+ state_add(M68K_D0 + regnum, string_format("D%d", regnum).c_str(), dar[regnum]);
+ }
+ for (int regnum = 0; regnum < 8; regnum++) {
+ state_add(M68K_A0 + regnum, string_format("A%d", regnum).c_str(), dar[8 + regnum]);
+ }
+
+ state_add(M68K_PREF_ADDR, "PREF_ADDR", pref_addr).mask(addrmask);
+ state_add(M68K_PREF_DATA, "PREF_DATA", pref_data);
+
+ if (cpu_type & MASK_010_OR_LATER)
+ {
+ state_add(M68K_SFC, "SFC", sfc).mask(0x7);
+ state_add(M68K_DFC, "DFC", dfc).mask(0x7);
+ state_add(M68K_VBR, "VBR", vbr);
+ }
+
+ if (cpu_type & MASK_020_OR_LATER)
+ {
+ state_add(M68K_CACR, "CACR", cacr);
+ state_add(M68K_CAAR, "CAAR", caar);
+ }
+
+ if (cpu_type & MASK_030_OR_LATER)
+ {
+ for (int regnum = 0; regnum < 8; regnum++) {
+ state_add(M68K_FP0 + regnum, string_format("FP%d", regnum).c_str(), iotemp).callimport().callexport().formatstr("%10s");
+ }
+ state_add(M68K_FPSR, "FPSR", fpsr);
+ state_add(M68K_FPCR, "FPCR", fpcr);
+ }
+}
+
+
+
+/****************
+ CPU Inits
+****************/
+
+
+void m68000_base_device::init_cpu_m68000(void)
+{
+ init_cpu_common();
+
+ cpu_type = CPU_TYPE_000;
+// dasm_type = M68K_CPU_TYPE_68000;
+
+ init16(*program, *oprogram);
+ sr_mask = 0xa71f; /* T1 -- S -- -- I2 I1 I0 -- -- -- X N Z V C */
+ jump_table = m68ki_instruction_jump_table[0];
+ cyc_instruction = m68ki_cycles[0];
+ cyc_exception = m68ki_exception_cycle_table[0];
+ cyc_bcc_notake_b = -2;
+ cyc_bcc_notake_w = 2;
+ cyc_dbcc_f_noexp = -2;
+ cyc_dbcc_f_exp = 2;
+ cyc_scc_r_true = 2;
+ cyc_movem_w = 2;
+ cyc_movem_l = 3;
+ cyc_shift = 1;
+ cyc_reset = 132;
+ has_pmmu = 0;
+ has_hmmu = 0;
+ has_fpu = 0;
+
+ define_state();
+
+}
+
+
+void m68000_base_device::init_cpu_m68008(void)
+{
+ init_cpu_common();
+
+ cpu_type = CPU_TYPE_008;
+// dasm_type = M68K_CPU_TYPE_68008;
+
+ init8(*program, *oprogram);
+ sr_mask = 0xa71f; /* T1 -- S -- -- I2 I1 I0 -- -- -- X N Z V C */
+ jump_table = m68ki_instruction_jump_table[0];
+ cyc_instruction = m68ki_cycles[0];
+ cyc_exception = m68ki_exception_cycle_table[0];
+ cyc_bcc_notake_b = -2;
+ cyc_bcc_notake_w = 2;
+ cyc_dbcc_f_noexp = -2;
+ cyc_dbcc_f_exp = 2;
+ cyc_scc_r_true = 2;
+ cyc_movem_w = 2;
+ cyc_movem_l = 3;
+ cyc_shift = 1;
+ cyc_reset = 132;
+ has_pmmu = 0;
+ has_fpu = 0;
+
+ define_state();
+
+}
+
+
+void m68000_base_device::init_cpu_m68010(void)
+{
+ init_cpu_common();
+ cpu_type = CPU_TYPE_010;
+// dasm_type = M68K_CPU_TYPE_68010;
+
+ init16(*program, *oprogram);
+ sr_mask = 0xa71f; /* T1 -- S -- -- I2 I1 I0 -- -- -- X N Z V C */
+ jump_table = m68ki_instruction_jump_table[1];
+ cyc_instruction = m68ki_cycles[1];
+ cyc_exception = m68ki_exception_cycle_table[1];
+ cyc_bcc_notake_b = -4;
+ cyc_bcc_notake_w = 0;
+ cyc_dbcc_f_noexp = 0;
+ cyc_dbcc_f_exp = 6;
+ cyc_scc_r_true = 0;
+ cyc_movem_w = 2;
+ cyc_movem_l = 3;
+ cyc_shift = 1;
+ cyc_reset = 130;
+ has_pmmu = 0;
+ has_fpu = 0;
+
+ define_state();
+}
+
+
+void m68000_base_device::init_cpu_m68020(void)
+{
+ init_cpu_common();
+ cpu_type = CPU_TYPE_020;
+// dasm_type = M68K_CPU_TYPE_68020;
+
+ init32(*program, *oprogram);
+ sr_mask = 0xf71f; /* T1 T0 S M -- I2 I1 I0 -- -- -- X N Z V C */
+ jump_table = m68ki_instruction_jump_table[2];
+ cyc_instruction = m68ki_cycles[2];
+ cyc_exception = m68ki_exception_cycle_table[2];
+ cyc_bcc_notake_b = -2;
+ cyc_bcc_notake_w = 0;
+ cyc_dbcc_f_noexp = 0;
+ cyc_dbcc_f_exp = 4;
+ cyc_scc_r_true = 0;
+ cyc_movem_w = 2;
+ cyc_movem_l = 2;
+ cyc_shift = 0;
+ cyc_reset = 518;
+
+ define_state();
+}
+
+void m68000_base_device::init_cpu_m68020fpu(void)
+{
+ init_cpu_m68020();
+
+ has_fpu = 1;
+}
+
+void m68000_base_device::init_cpu_m68020pmmu(void)
+{
+ init_cpu_m68020();
+
+ has_pmmu = 1;
+ has_fpu = 1;
+
+
+ init32mmu(*program, *oprogram);
+}
+
+
+
+void m68000_base_device::init_cpu_m68020hmmu(void)
+{
+ init_cpu_m68020();
+
+ has_hmmu = 1;
+ has_fpu = 1;
+
+
+ init32hmmu(*program, *oprogram);
+}
+
+void m68000_base_device::init_cpu_m68ec020(void)
+{
+ init_cpu_common();
+
+ cpu_type = CPU_TYPE_EC020;
+// dasm_type = M68K_CPU_TYPE_68EC020;
+
+
+ init32(*program, *oprogram);
+ sr_mask = 0xf71f; /* T1 T0 S M -- I2 I1 I0 -- -- -- X N Z V C */
+ jump_table = m68ki_instruction_jump_table[2];
+ cyc_instruction = m68ki_cycles[2];
+ cyc_exception = m68ki_exception_cycle_table[2];
+ cyc_bcc_notake_b = -2;
+ cyc_bcc_notake_w = 0;
+ cyc_dbcc_f_noexp = 0;
+ cyc_dbcc_f_exp = 4;
+ cyc_scc_r_true = 0;
+ cyc_movem_w = 2;
+ cyc_movem_l = 2;
+ cyc_shift = 0;
+ cyc_reset = 518;
+ has_pmmu = 0;
+ has_fpu = 0;
+
+ define_state();
+}
+
+
+void m68000_base_device::init_cpu_m68030(void)
+{
+ init_cpu_common();
+
+ cpu_type = CPU_TYPE_030;
+// dasm_type = M68K_CPU_TYPE_68030;
+
+
+ init32mmu(*program, *oprogram);
+ sr_mask = 0xf71f; /* T1 T0 S M -- I2 I1 I0 -- -- -- X N Z V C */
+ jump_table = m68ki_instruction_jump_table[3];
+ cyc_instruction = m68ki_cycles[3];
+ cyc_exception = m68ki_exception_cycle_table[3];
+ cyc_bcc_notake_b = -2;
+ cyc_bcc_notake_w = 0;
+ cyc_dbcc_f_noexp = 0;
+ cyc_dbcc_f_exp = 4;
+ cyc_scc_r_true = 0;
+ cyc_movem_w = 2;
+ cyc_movem_l = 2;
+ cyc_shift = 0;
+ cyc_reset = 518;
+ has_pmmu = 1;
+ has_fpu = 1;
+
+ define_state();
+}
+
+
+
+void m68000_base_device::init_cpu_m68ec030(void)
+{
+ init_cpu_common();
+
+ cpu_type = CPU_TYPE_EC030;
+// dasm_type = M68K_CPU_TYPE_68EC030;
+
+
+ init32(*program, *oprogram);
+ sr_mask = 0xf71f; /* T1 T0 S M -- I2 I1 I0 -- -- -- X N Z V C */
+ jump_table = m68ki_instruction_jump_table[3];
+ cyc_instruction = m68ki_cycles[3];
+ cyc_exception = m68ki_exception_cycle_table[3];
+ cyc_bcc_notake_b = -2;
+ cyc_bcc_notake_w = 0;
+ cyc_dbcc_f_noexp = 0;
+ cyc_dbcc_f_exp = 4;
+ cyc_scc_r_true = 0;
+ cyc_movem_w = 2;
+ cyc_movem_l = 2;
+ cyc_shift = 0;
+ cyc_reset = 518;
+ has_pmmu = 0; /* EC030 lacks the PMMU and is effectively a die-shrink 68020 */
+ has_fpu = 1;
+
+ define_state();
+}
+
+
+
+void m68000_base_device::init_cpu_m68040(void)
+{
+ init_cpu_common();
+
+ cpu_type = CPU_TYPE_040;
+// dasm_type = M68K_CPU_TYPE_68040;
+
+
+ init32mmu(*program, *oprogram);
+ sr_mask = 0xf71f; /* T1 T0 S M -- I2 I1 I0 -- -- -- X N Z V C */
+ jump_table = m68ki_instruction_jump_table[4];
+ cyc_instruction = m68ki_cycles[4];
+ cyc_exception = m68ki_exception_cycle_table[4];
+ cyc_bcc_notake_b = -2;
+ cyc_bcc_notake_w = 0;
+ cyc_dbcc_f_noexp = 0;
+ cyc_dbcc_f_exp = 4;
+ cyc_scc_r_true = 0;
+ cyc_movem_w = 2;
+ cyc_movem_l = 2;
+ cyc_shift = 0;
+ cyc_reset = 518;
+ has_pmmu = 1;
+ has_fpu = 1;
+
+ define_state();
+}
+
+
+void m68000_base_device::init_cpu_m68ec040(void)
+{
+ init_cpu_common();
+
+ cpu_type = CPU_TYPE_EC040;
+// dasm_type = M68K_CPU_TYPE_68EC040;
+
+
+ init32(*program, *oprogram);
+ sr_mask = 0xf71f; /* T1 T0 S M -- I2 I1 I0 -- -- -- X N Z V C */
+ jump_table = m68ki_instruction_jump_table[4];
+ cyc_instruction = m68ki_cycles[4];
+ cyc_exception = m68ki_exception_cycle_table[4];
+ cyc_bcc_notake_b = -2;
+ cyc_bcc_notake_w = 0;
+ cyc_dbcc_f_noexp = 0;
+ cyc_dbcc_f_exp = 4;
+ cyc_scc_r_true = 0;
+ cyc_movem_w = 2;
+ cyc_movem_l = 2;
+ cyc_shift = 0;
+ cyc_reset = 518;
+ has_pmmu = 0;
+ has_fpu = 0;
+
+ define_state();
+}
+
+
+void m68000_base_device::init_cpu_m68lc040(void)
+{
+ init_cpu_common();
+
+ cpu_type = CPU_TYPE_LC040;
+// dasm_type = M68K_CPU_TYPE_68LC040;
+
+
+ init32mmu(*program, *oprogram);
+ sr_mask = 0xf71f; /* T1 T0 S M -- I2 I1 I0 -- -- -- X N Z V C */
+ jump_table = m68ki_instruction_jump_table[4];
+ cyc_instruction = m68ki_cycles[4];
+ cyc_exception = m68ki_exception_cycle_table[4];
+ cyc_bcc_notake_b = -2;
+ cyc_bcc_notake_w = 0;
+ cyc_dbcc_f_noexp = 0;
+ cyc_dbcc_f_exp = 4;
+ cyc_scc_r_true = 0;
+ cyc_movem_w = 2;
+ cyc_movem_l = 2;
+ cyc_shift = 0;
+ cyc_reset = 518;
+ has_pmmu = 1;
+ has_fpu = 0;
+
+ define_state();
+}
+
+
+void m68000_base_device::init_cpu_scc68070(void)
+{
+ init_cpu_m68010();
+ cpu_type = CPU_TYPE_SCC070;
+}
+
+
+void m68000_base_device::init_cpu_fscpu32(void)
+{
+ init_cpu_common();
+
+ cpu_type = CPU_TYPE_FSCPU32;
+// dasm_type = M68K_CPU_TYPE_FSCPU32;
+
+
+ init32(*program, *oprogram);
+ sr_mask = 0xf71f; /* T1 T0 S M -- I2 I1 I0 -- -- -- X N Z V C */
+ jump_table = m68ki_instruction_jump_table[5];
+ cyc_instruction = m68ki_cycles[5];
+ cyc_exception = m68ki_exception_cycle_table[5];
+ cyc_bcc_notake_b = -2;
+ cyc_bcc_notake_w = 0;
+ cyc_dbcc_f_noexp = 0;
+ cyc_dbcc_f_exp = 4;
+ cyc_scc_r_true = 0;
+ cyc_movem_w = 2;
+ cyc_movem_l = 2;
+ cyc_shift = 0;
+ cyc_reset = 518;
+
+ define_state();
+}
+
+
+
+void m68000_base_device::init_cpu_coldfire(void)
+{
+ init_cpu_common();
+
+ cpu_type = CPU_TYPE_COLDFIRE;
+// dasm_type = M68K_CPU_TYPE_COLDFIRE;
+
+
+ init32(*program, *oprogram);
+ sr_mask = 0xf71f; /* T1 T0 S M -- I2 I1 I0 -- -- -- X N Z V C */
+ jump_table = m68ki_instruction_jump_table[6];
+ cyc_instruction = m68ki_cycles[6];
+ cyc_exception = m68ki_exception_cycle_table[6];
+ cyc_bcc_notake_b = -2;
+ cyc_bcc_notake_w = 0;
+ cyc_dbcc_f_noexp = 0;
+ cyc_dbcc_f_exp = 4;
+ cyc_scc_r_true = 0;
+ cyc_movem_w = 2;
+ cyc_movem_l = 2;
+ cyc_shift = 0;
+ cyc_reset = 518;
+
+ define_state();
+}
+
+CPU_DISASSEMBLE( dasm_m68000 )
+{
+ return m68k_disassemble_raw(stream, pc, oprom, opram, M68K_CPU_TYPE_68000);
+}
+
+CPU_DISASSEMBLE( dasm_m68008 )
+{
+ return m68k_disassemble_raw(stream, pc, oprom, opram, M68K_CPU_TYPE_68008);
+}
+
+CPU_DISASSEMBLE( dasm_m68010 )
+{
+ return m68k_disassemble_raw(stream, pc, oprom, opram, M68K_CPU_TYPE_68010);
+}
+
+CPU_DISASSEMBLE( dasm_m68020 )
+{
+ return m68k_disassemble_raw(stream, pc, oprom, opram, M68K_CPU_TYPE_68020);
+}
+
+CPU_DISASSEMBLE( dasm_m68030 )
+{
+ return m68k_disassemble_raw(stream, pc, oprom, opram, M68K_CPU_TYPE_68030);
+}
+
+CPU_DISASSEMBLE( dasm_m68ec030 )
+{
+ return m68k_disassemble_raw(stream, pc, oprom, opram, M68K_CPU_TYPE_68EC030);
+}
+
+CPU_DISASSEMBLE( dasm_m68040 )
+{
+ return m68k_disassemble_raw(stream, pc, oprom, opram, M68K_CPU_TYPE_68040);
+}
+
+CPU_DISASSEMBLE( dasm_m68ec040 )
+{
+ return m68k_disassemble_raw(stream, pc, oprom, opram, M68K_CPU_TYPE_68EC040);
+}
+
+CPU_DISASSEMBLE( dasm_m68lc040 )
+{
+ return m68k_disassemble_raw(stream, pc, oprom, opram, M68K_CPU_TYPE_68LC040);
+}
+
+CPU_DISASSEMBLE( dasm_fscpu32 )
+{
+ return m68k_disassemble_raw(stream, pc, oprom, opram, M68K_CPU_TYPE_FSCPU32);
+}
+
+CPU_DISASSEMBLE( dasm_coldfire )
+{
+ return m68k_disassemble_raw(stream, pc, oprom, opram, M68K_CPU_TYPE_COLDFIRE);
+}
+
+offs_t m68000_base_device::disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) { return CPU_DISASSEMBLE_NAME(dasm_m68000)(this, stream, pc, oprom, opram, options); }
+offs_t m68000_device::disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) { return CPU_DISASSEMBLE_NAME(dasm_m68000)(this, stream, pc, oprom, opram, options); }
+offs_t m68301_device::disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) { return CPU_DISASSEMBLE_NAME(dasm_m68000)(this, stream, pc, oprom, opram, options); }
+offs_t m68008_device::disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) { return CPU_DISASSEMBLE_NAME(dasm_m68008)(this, stream, pc, oprom, opram, options); }
+offs_t m68008plcc_device::disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) { return CPU_DISASSEMBLE_NAME(dasm_m68008)(this, stream, pc, oprom, opram, options); }
+offs_t m68010_device::disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) { return CPU_DISASSEMBLE_NAME(dasm_m68010)(this, stream, pc, oprom, opram, options); }
+offs_t m68ec020_device::disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) { return CPU_DISASSEMBLE_NAME(dasm_m68020)(this, stream, pc, oprom, opram, options); }
+offs_t m68020_device::disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) { return CPU_DISASSEMBLE_NAME(dasm_m68020)(this, stream, pc, oprom, opram, options); }
+offs_t m68020fpu_device::disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) { return CPU_DISASSEMBLE_NAME(dasm_m68020)(this, stream, pc, oprom, opram, options); }
+offs_t m68020pmmu_device::disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) { return CPU_DISASSEMBLE_NAME(dasm_m68020)(this, stream, pc, oprom, opram, options); }
+offs_t m68020hmmu_device::disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) { return CPU_DISASSEMBLE_NAME(dasm_m68020)(this, stream, pc, oprom, opram, options); }
+offs_t m68ec030_device::disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) { return CPU_DISASSEMBLE_NAME(dasm_m68ec030)(this, stream, pc, oprom, opram, options); }
+offs_t m68030_device::disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) { return CPU_DISASSEMBLE_NAME(dasm_m68030)(this, stream, pc, oprom, opram, options); }
+offs_t m68ec040_device::disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) { return CPU_DISASSEMBLE_NAME(dasm_m68ec040)(this, stream, pc, oprom, opram, options); }
+offs_t m68lc040_device::disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) { return CPU_DISASSEMBLE_NAME(dasm_m68lc040)(this, stream, pc, oprom, opram, options); }
+offs_t m68040_device::disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) { return CPU_DISASSEMBLE_NAME(dasm_m68040)(this, stream, pc, oprom, opram, options); }
+offs_t scc68070_device::disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) { return CPU_DISASSEMBLE_NAME(dasm_m68000)(this, stream, pc, oprom, opram, options); }
+offs_t fscpu32_device::disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) { return CPU_DISASSEMBLE_NAME(dasm_fscpu32)(this, stream, pc, oprom, opram, options); }
+offs_t mcf5206e_device::disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) { return CPU_DISASSEMBLE_NAME(dasm_coldfire)(this, stream, pc, oprom, opram, options); }
+
+
+/* Service an interrupt request and start exception processing */
+void m68000_base_device::m68ki_exception_interrupt(m68000_base_device *m68k, uint32_t int_level)
+{
+ uint32_t vector;
+ uint32_t sr;
+ uint32_t new_pc;
+
+ if(CPU_TYPE_IS_000(cpu_type))
+ {
+ instr_mode = INSTRUCTION_NO;
+ }
+
+ /* Turn off the stopped state */
+ stopped &= ~STOP_LEVEL_STOP;
+
+ /* If we are halted, don't do anything */
+ if(stopped)
+ return;
+
+ /* Acknowledge the interrupt */
+ vector = int_ack_callback(*this, int_level);
+
+ /* Get the interrupt vector */
+ if(vector == M68K_INT_ACK_AUTOVECTOR)
+ /* Use the autovectors. This is the most commonly used implementation */
+ vector = EXCEPTION_INTERRUPT_AUTOVECTOR+int_level;
+ else if(vector == M68K_INT_ACK_SPURIOUS)
+ /* Called if no devices respond to the interrupt acknowledge */
+ vector = EXCEPTION_SPURIOUS_INTERRUPT;
+ else if(vector > 255)
+ return;
+
+ /* Start exception processing */
+ sr = m68ki_init_exception(m68k);
+
+ /* Set the interrupt mask to the level of the one being serviced */
+ int_mask = int_level<<8;
+
+ /* Get the new PC */
+ new_pc = m68ki_read_data_32(this, (vector<<2) + vbr);
+
+ /* If vector is uninitialized, call the uninitialized interrupt vector */
+ if(new_pc == 0)
+ new_pc = m68ki_read_data_32(this, (EXCEPTION_UNINITIALIZED_INTERRUPT<<2) + vbr);
+
+ /* Generate a stack frame */
+ m68ki_stack_frame_0000(this, REG_PC(m68k), sr, vector);
+ if(m_flag && CPU_TYPE_IS_EC020_PLUS(cpu_type))
+ {
+ /* Create throwaway frame */
+ m68ki_set_sm_flag(this, s_flag); /* clear M */
+ sr |= 0x2000; /* Same as SR in master stack frame except S is forced high */
+ m68ki_stack_frame_0001(this, REG_PC(m68k), sr, vector);
+ }
+
+ m68ki_jump(this, new_pc);
+
+ /* Defer cycle counting until later */
+ remaining_cycles -= cyc_exception[vector];
+}
+
+
+const device_type M68K = device_creator<m68000_base_device>;
+
+//-------------------------------------------------
+// h6280_device - constructor
+//-------------------------------------------------
+
+m68000_base_device::m68000_base_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : cpu_device(mconfig, M68K, "M68K", tag, owner, clock, "m68k", __FILE__),
+ m_program_config("program", ENDIANNESS_BIG, 16, 24),
+ m_oprogram_config("decrypted_opcodes", ENDIANNESS_BIG, 16, 24)
+{
+ clear_all();
+}
+
+
+
+
+m68000_base_device::m68000_base_device(const machine_config &mconfig, const char *name, const char *tag, device_t *owner, uint32_t clock,
+ const device_type type, uint32_t prg_data_width, uint32_t prg_address_bits, address_map_constructor internal_map, const char *shortname, const char *source)
+ : cpu_device(mconfig, type, name, tag, owner, clock, shortname, source),
+ 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();
+}
+
+
+m68000_base_device::m68000_base_device(const machine_config &mconfig, const char *name, const char *tag, device_t *owner, uint32_t clock,
+ const device_type type, uint32_t prg_data_width, uint32_t prg_address_bits, const char *shortname, const char *source)
+ : cpu_device(mconfig, type, name, tag, owner, clock, shortname, source),
+ 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();
+}
+
+void m68000_base_device::clear_all()
+{
+ cpu_type= 0;
+// dasm_type= 0;
+ for (auto & elem : dar)
+ elem= 0;
+ ppc= 0;
+ pc= 0;
+ for (auto & elem : sp)
+ elem= 0;
+ vbr= 0;
+ sfc= 0;
+ dfc= 0;
+ cacr= 0;
+ caar= 0;
+ ir= 0;
+// for (int i=0;i<8;i++)
+// fpr[i]= 0;
+ fpiar= 0;
+ fpsr= 0;
+ fpcr= 0;
+ t1_flag= 0;
+ t0_flag= 0;
+ s_flag= 0;
+ m_flag= 0;
+ x_flag= 0;
+ n_flag= 0;
+ not_z_flag= 0;
+ v_flag= 0;
+ c_flag= 0;
+ int_mask= 0;
+ int_level= 0;
+ stopped= 0;
+ pref_addr= 0;
+ pref_data= 0;
+ sr_mask= 0;
+ instr_mode= 0;
+ run_mode= 0;
+ has_pmmu= 0;
+ has_hmmu= 0;
+ pmmu_enabled= 0;
+ hmmu_enabled= 0;
+ has_fpu= 0;
+ fpu_just_reset= 0;
+
+ cyc_bcc_notake_b = 0;
+ cyc_bcc_notake_w = 0;
+ cyc_dbcc_f_noexp = 0;
+ cyc_dbcc_f_exp = 0;
+ cyc_scc_r_true = 0;
+ cyc_movem_w = 0;
+ cyc_movem_l = 0;
+ cyc_shift = 0;
+ cyc_reset = 0;
+
+ initial_cycles = 0;
+ remaining_cycles = 0;
+ reset_cycles = 0;
+ tracing = 0;
+
+ m_address_error = 0;
+
+ aerr_address = 0;
+ aerr_write_mode = 0;
+ aerr_fc = 0;
+
+ virq_state = 0;
+ nmi_pending = 0;
+
+ cyc_instruction = nullptr;
+ cyc_exception = nullptr;
+
+ int_ack_callback = device_irq_acknowledge_delegate();
+ program = nullptr;
+
+ opcode_xor = 0;
+// readimm16 = 0;
+// read8 = 0;
+// read16 = 0;
+// read32 = 0;
+// write8 = 0;
+// write16 = 0;
+// write32 = 0;
+
+ m_space = nullptr;
+ m_direct = nullptr;
+
+
+ iotemp = 0;
+
+ save_sr = 0;
+ save_stopped = 0;
+ save_halted = 0;
+
+
+ mmu_crp_aptr = mmu_crp_limit = 0;
+ mmu_srp_aptr = mmu_srp_limit = 0;
+ mmu_urp_aptr = 0;
+ mmu_tc = 0;
+ mmu_sr = 0;
+ mmu_sr_040 = 0;
+
+ for (int i=0; i<MMU_ATC_ENTRIES;i++)
+ mmu_atc_tag[i] = mmu_atc_data[i] = 0;
+
+ mmu_atc_rr = 0;
+ mmu_tt0 = mmu_tt1 = 0;
+ mmu_itt0 = mmu_itt1 = mmu_dtt0 = mmu_dtt1 = 0;
+ mmu_acr0= mmu_acr1 = mmu_acr2 = mmu_acr3 = 0;
+ mmu_tmp_sr = 0;
+ mmu_tmp_fc = 0;
+ mmu_tmp_rw = 0;
+ mmu_tmp_buserror_address = 0;
+ mmu_tmp_buserror_occurred = 0;
+ mmu_tmp_buserror_fc = 0;
+ mmu_tmp_buserror_rw = 0;
+
+ for (int i=0;i<M68K_IC_SIZE;i++)
+ {
+ ic_address[i] = 0;
+ ic_data[i] = 0;
+ ic_valid[i] = false;
+ }
+
+ internal = nullptr;
+}
+
+
+void m68000_base_device::execute_run()
+{
+ cpu_execute();
+}
+
+void m68000_base_device::device_start()
+{
+}
+
+void m68000_base_device::device_reset()
+{
+ reset_cpu();
+}
+
+void m68000_base_device::device_stop()
+{
+}
+
+
+
+
+void m68000_base_device::execute_set_input(int inputnum, int state)
+{
+ switch (inputnum)
+ {
+ /* --- the following bits of info are set as 64-bit signed integers --- */
+ case M68K_IRQ_NONE:
+ case M68K_IRQ_1:
+ case M68K_IRQ_2:
+ case M68K_IRQ_3:
+ case M68K_IRQ_4:
+ case M68K_IRQ_5:
+ case M68K_IRQ_6:
+ case M68K_IRQ_7:
+ case INPUT_LINE_NMI:
+ set_irq_line(this, inputnum, state);
+ break;
+
+ case M68K_LINE_BUSERROR:
+ if (state == ASSERT_LINE)
+ {
+ m68k_cause_bus_error(this);
+ }
+ break;
+ }
+}
+
+
+const address_space_config *m68000_base_device::memory_space_config(address_spacenum spacenum) const
+{
+ switch(spacenum)
+ {
+ case AS_PROGRAM: return &m_program_config;
+ case AS_DECRYPTED_OPCODES: return has_configured_map(AS_DECRYPTED_OPCODES) ? &m_oprogram_config : nullptr;
+ default: return nullptr;
+ }
+}
+
+
+
+const device_type M68000 = device_creator<m68000_device>;
+const device_type M68301 = device_creator<m68301_device>;
+const device_type M68008 = device_creator<m68008_device>;
+const device_type M68008PLCC = device_creator<m68008plcc_device>;
+const device_type M68010 = device_creator<m68010_device>;
+const device_type M68EC020 = device_creator<m68ec020_device>;
+const device_type M68020 = device_creator<m68020_device>;
+const device_type M68020FPU = device_creator<m68020fpu_device>;
+const device_type M68020PMMU = device_creator<m68020pmmu_device>;
+const device_type M68020HMMU = device_creator<m68020hmmu_device>;
+const device_type M68EC030 = device_creator<m68ec030_device>;
+const device_type M68030 = device_creator<m68030_device>;
+const device_type M68EC040 = device_creator<m68ec040_device>;
+const device_type M68LC040 = device_creator<m68lc040_device>;
+const device_type M68040 = device_creator<m68040_device>;
+const device_type SCC68070 = device_creator<scc68070_device>;
+const device_type FSCPU32 = device_creator<fscpu32_device>;
+const device_type MCF5206E = device_creator<mcf5206e_device>;
+
+m68000_device::m68000_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : m68000_base_device(mconfig, "M68000", tag, owner, clock, M68000, 16,24, "m68000", __FILE__)
+{
+}
+
+m68000_device::m68000_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source)
+ : m68000_base_device(mconfig, "M68000", tag, owner, clock, M68000, 16,24, shortname, source)
+{
+}
+
+m68000_device::m68000_device(const machine_config &mconfig, const device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source)
+ : m68000_base_device(mconfig, name, tag, owner, clock, type, 16,24, shortname, source)
+{
+}
+
+void m68000_device::device_start()
+{
+ init_cpu_m68000();
+}
+
+m68000_device::m68000_device(const machine_config &mconfig, const char *name, const char *tag, device_t *owner, uint32_t clock,
+ const device_type type, uint32_t prg_data_width, uint32_t prg_address_bits, address_map_constructor internal_map, const char *shortname, const char *source)
+ : m68000_base_device(mconfig, name, tag, owner, clock, type, prg_data_width, prg_address_bits, internal_map, shortname, source)
+{
+}
+
+
+
+
+
+m68301_device::m68301_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : m68000_base_device(mconfig, "M68301", tag, owner, clock, M68301, 16,24, "m68301", __FILE__)
+{
+}
+
+
+void m68301_device::device_start()
+{
+ init_cpu_m68000();
+}
+
+
+
+
+
+
+/* m68008_device */
+
+m68008_device::m68008_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : m68000_base_device(mconfig, "M68008", tag, owner, clock, M68008, 8,20, "m68008", __FILE__)
+{
+}
+
+void m68008_device::device_start()
+{
+ init_cpu_m68008();
+}
+
+
+m68008plcc_device::m68008plcc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : m68000_base_device(mconfig, "M68008PLCC", tag, owner, clock, M68008PLCC, 8,22, "m68008plcc", __FILE__)
+{
+}
+
+void m68008plcc_device::device_start()
+{
+ init_cpu_m68008();
+}
+
+
+
+m68010_device::m68010_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : m68000_base_device(mconfig, "M68010", tag, owner, clock, M68010, 16,24, "m68010", __FILE__)
+{
+}
+
+void m68010_device::device_start()
+{
+ init_cpu_m68010();
+}
+
+
+
+m68020_device::m68020_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : m68000_base_device(mconfig, "M68020", tag, owner, clock, M68020, 32,32, "m68020", __FILE__)
+{
+}
+
+void m68020_device::device_start()
+{
+ init_cpu_m68020();
+}
+
+
+m68020fpu_device::m68020fpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : m68000_base_device(mconfig, "M68020FPU", tag, owner, clock, M68020FPU, 32,32, "m68020fpu", __FILE__)
+{
+}
+
+void m68020fpu_device::device_start()
+{
+ init_cpu_m68020fpu();
+}
+
+// 68020 with 68851 PMMU
+m68020pmmu_device::m68020pmmu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : m68000_base_device(mconfig, "M68020PMMU", tag, owner, clock, M68020PMMU, 32,32, "m68020pmmu", __FILE__)
+{
+}
+
+void m68020pmmu_device::device_start()
+{
+ init_cpu_m68020pmmu();
+}
+
+bool m68020hmmu_device::memory_translate(address_spacenum space, int intention, offs_t &address)
+{
+ /* only applies to the program address space and only does something if the MMU's enabled */
+ {
+ if ((space == AS_PROGRAM) && (hmmu_enabled))
+ {
+ address = hmmu_translate_addr(this, address);
+ }
+ }
+ return true;
+}
+
+
+// 68020 with Apple HMMU & 68881 FPU
+// case CPUINFO_FCT_TRANSLATE: info->translate = CPU_TRANSLATE_NAME(m68khmmu); break;
+m68020hmmu_device::m68020hmmu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : m68000_base_device(mconfig, "M68020HMMU", tag, owner, clock, M68020HMMU, 32,32, "m68020hmmu", __FILE__)
+{
+}
+
+void m68020hmmu_device::device_start()
+{
+ init_cpu_m68020hmmu();
+}
+
+
+m68ec020_device::m68ec020_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : m68000_base_device(mconfig, "M68EC020", tag, owner, clock, M68EC020, 32,24, "m68ec020", __FILE__)
+{
+}
+
+void m68ec020_device::device_start()
+{
+ init_cpu_m68ec020();
+}
+
+m68030_device::m68030_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : m68000_base_device(mconfig, "M68030", tag, owner, clock, M68030, 32,32, "m68030", __FILE__)
+{
+}
+
+void m68030_device::device_start()
+{
+ init_cpu_m68030();
+}
+
+m68ec030_device::m68ec030_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : m68000_base_device(mconfig, "M68EC030", tag, owner, clock, M68EC030, 32,32, "m68ec030", __FILE__)
+{
+}
+
+void m68ec030_device::device_start()
+{
+ init_cpu_m68ec030();
+}
+
+m68040_device::m68040_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : m68000_base_device(mconfig, "M68040", tag, owner, clock, M68040, 32,32, "m68040", __FILE__)
+{
+}
+
+
+void m68040_device::device_start()
+{
+ init_cpu_m68040();
+}
+
+
+
+m68ec040_device::m68ec040_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : m68000_base_device(mconfig, "M68EC040", tag, owner, clock, M68EC040, 32,32, "m68ec040", __FILE__)
+{
+}
+
+void m68ec040_device::device_start()
+{
+ init_cpu_m68ec040();
+}
+
+
+
+m68lc040_device::m68lc040_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : m68000_base_device(mconfig, "M68LC040", tag, owner, clock, M68LC040, 32,32, "m68lc040", __FILE__)
+{
+}
+
+void m68lc040_device::device_start()
+{
+ init_cpu_m68lc040();
+}
+
+
+scc68070_device::scc68070_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : m68000_base_device(mconfig, "SCC68070", tag, owner, clock, SCC68070, 16,32, "scc68070", __FILE__)
+{
+}
+
+void scc68070_device::device_start()
+{
+ init_cpu_scc68070();
+}
+
+
+fscpu32_device::fscpu32_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : m68000_base_device(mconfig, "Freescale CPU32 Core", tag, owner, clock, FSCPU32, 32,32, "fscpu32", __FILE__)
+{
+}
+
+fscpu32_device::fscpu32_device(const machine_config &mconfig, const char *name, const char *tag, device_t *owner, uint32_t clock,
+ const device_type type, uint32_t prg_data_width, uint32_t prg_address_bits, address_map_constructor internal_map, const char *shortname, const char *source)
+ : m68000_base_device(mconfig, name, tag, owner, clock, type, prg_data_width, prg_address_bits, internal_map, shortname, source)
+{
+}
+
+
+void fscpu32_device::device_start()
+{
+ init_cpu_fscpu32();
+}
+
+
+
+mcf5206e_device::mcf5206e_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : m68000_base_device(mconfig, "MCF5206E", tag, owner, clock, MCF5206E, 32,32, "mcf5206e", __FILE__)
+{
+}
+
+void mcf5206e_device::device_start()
+{
+ init_cpu_coldfire();
+}
diff --git a/docs/release/src/emu/digfx.h b/docs/release/src/emu/digfx.h
new file mode 100644
index 00000000000..3908103eb55
--- /dev/null
+++ b/docs/release/src/emu/digfx.h
@@ -0,0 +1,236 @@
+// license:BSD-3-Clause
+// copyright-holders:Nicola Salmoria, Aaron Giles, Alex W. Jackson
+/***************************************************************************
+
+ digfx.h
+
+ Device graphics interfaces.
+
+***************************************************************************/
+
+#pragma once
+
+#ifndef __EMU_H__
+#error Dont include this file directly; include emu.h instead.
+#endif
+
+#ifndef MAME_EMU_DIGFX_H
+#define MAME_EMU_DIGFX_H
+
+
+
+//**************************************************************************
+// CONSTANTS
+//**************************************************************************
+
+constexpr u8 MAX_GFX_ELEMENTS = 32;
+constexpr u16 MAX_GFX_PLANES = 8;
+// HBMAME - needed by monaco
+constexpr u16 MAX_GFX_SIZE = 64;
+
+
+
+//**************************************************************************
+// GRAPHICS LAYOUT MACROS
+//**************************************************************************
+
+#define EXTENDED_XOFFS { 0 }
+#define EXTENDED_YOFFS { 0 }
+
+#define GFX_RAW 0x12345678
+#define GFXLAYOUT_RAW( name, width, height, linemod, charmod ) \
+const gfx_layout name = { width, height, RGN_FRAC(1,1), 8, { GFX_RAW }, { 0 }, { linemod }, charmod };
+// When planeoffset[0] is set to GFX_RAW, the gfx data is left as-is, with no conversion.
+// No buffer is allocated for the decoded data, and gfxdata is set to point to the source
+// data.
+// yoffset[0] is the line modulo (*8) and charincrement the char modulo (*8). They are *8
+// for consistency with the usual behaviour, but the bottom 3 bits are not used.
+//
+// This special mode can be used for graphics that are already in 8bpp linear format,
+// or for unusual formats that don't fit our generic model and need to be decoded using
+// custom code. See blend_gfx() in atarigen.c for an example of the latter usage.
+
+
+// these macros describe gfx_layouts in terms of fractions of a region
+// they can be used for total, planeoffset, xoffset, yoffset
+#define RGN_FRAC(num,den) (0x80000000 | (((num) & 0x0f) << 27) | (((den) & 0x0f) << 23))
+#define IS_FRAC(offset) ((offset) & 0x80000000)
+#define FRAC_NUM(offset) (((offset) >> 27) & 0x0f)
+#define FRAC_DEN(offset) (((offset) >> 23) & 0x0f)
+#define FRAC_OFFSET(offset) ((offset) & 0x007fffff)
+
+// these macros are useful in gfx_layouts
+#define STEP2(START,STEP) (START),(START)+(STEP)
+#define STEP4(START,STEP) STEP2(START,STEP),STEP2((START)+2*(STEP),STEP)
+#define STEP8(START,STEP) STEP4(START,STEP),STEP4((START)+4*(STEP),STEP)
+#define STEP16(START,STEP) STEP8(START,STEP),STEP8((START)+8*(STEP),STEP)
+#define STEP32(START,STEP) STEP16(START,STEP),STEP16((START)+16*(STEP),STEP)
+#define STEP64(START,STEP) STEP32(START,STEP),STEP32((START)+32*(STEP),STEP)
+#define STEP128(START,STEP) STEP64(START,STEP),STEP64((START)+64*(STEP),STEP)
+#define STEP256(START,STEP) STEP128(START,STEP),STEP128((START)+128*(STEP),STEP)
+#define STEP512(START,STEP) STEP256(START,STEP),STEP256((START)+256*(STEP),STEP)
+#define STEP1024(START,STEP) STEP512(START,STEP),STEP512((START)+512*(STEP),STEP)
+#define STEP2048(START,STEP) STEP1024(START,STEP),STEP1024((START)+1024*(STEP),STEP)
+
+#define STEP2_INV(START,STEP) (START)+(STEP),(START)
+#define STEP4_INV(START,STEP) STEP2_INV(START+2*STEP,STEP),STEP2_INV(START,STEP)
+
+//**************************************************************************
+// GRAPHICS INFO MACROS
+//**************************************************************************
+
+// optional horizontal and vertical scaling factors
+#define GFXENTRY_XSCALEMASK 0x000000ff
+#define GFXENTRY_YSCALEMASK 0x0000ff00
+#define GFXENTRY_XSCALE(x) ((((x)-1) << 0) & GFXENTRY_XSCALEMASK)
+#define GFXENTRY_YSCALE(x) ((((x)-1) << 8) & GFXENTRY_YSCALEMASK)
+#define GFXENTRY_GETXSCALE(x) ((((x) & GFXENTRY_XSCALEMASK) >> 0) + 1)
+#define GFXENTRY_GETYSCALE(x) ((((x) & GFXENTRY_YSCALEMASK) >> 8) + 1)
+
+// GFXENTRY_RAM means region tag refers to a RAM share instead of a ROM region
+#define GFXENTRY_ROM 0x00000000
+#define GFXENTRY_RAM 0x00010000
+#define GFXENTRY_ISROM(x) (((x) & GFXENTRY_RAM) == 0)
+#define GFXENTRY_ISRAM(x) (((x) & GFXENTRY_RAM) != 0)
+
+// GFXENTRY_DEVICE means region tag is relative to this device instead of its owner
+#define GFXENTRY_DEVICE 0x00020000
+#define GFXENTRY_ISDEVICE(x) (((x) & GFXENTRY_DEVICE) != 0)
+
+// GFXENTRY_REVERSE reverses the bit order in the layout (0-7 = LSB-MSB instead of MSB-LSB)
+#define GFXENTRY_REVERSE 0x00040000
+#define GFXENTRY_ISREVERSE(x) (((x) & GFXENTRY_REVERSE) != 0)
+
+
+// these macros are used for declaring gfx_decode_entry info arrays
+#define GFXDECODE_NAME( name ) gfxdecodeinfo_##name
+#define GFXDECODE_EXTERN( name ) extern const gfx_decode_entry GFXDECODE_NAME(name)[]
+#define GFXDECODE_START( name ) const gfx_decode_entry GFXDECODE_NAME(name)[] = {
+#define GFXDECODE_END { 0 } };
+
+// use these to declare a gfx_decode_entry array as a member of a device class
+#define DECLARE_GFXDECODE_MEMBER( name ) static const gfx_decode_entry name[]
+#define GFXDECODE_MEMBER( name ) const gfx_decode_entry name[] = {
+// common gfx_decode_entry macros
+#define GFXDECODE_ENTRYX(region,offset,layout,start,colors,flags) { region, offset, &layout, start, colors, flags },
+#define GFXDECODE_ENTRY(region,offset,layout,start,colors) { region, offset, &layout, start, colors, 0 },
+
+// specialized gfx_decode_entry macros
+#define GFXDECODE_RAM(region,offset,layout,start,colors) { region, offset, &layout, start, colors, GFXENTRY_RAM },
+#define GFXDECODE_DEVICE(region,offset,layout,start,colors) { region, offset, &layout, start, colors, GFXENTRY_DEVICE },
+#define GFXDECODE_DEVICE_RAM(region,offset,layout,start,colors) { region, offset, &layout, start, colors, GFXENTRY_DEVICE | GFXENTRY_RAM },
+#define GFXDECODE_SCALE(region,offset,layout,start,colors,x,y) { region, offset, &layout, start, colors, GFXENTRY_XSCALE(x) | GFXENTRY_YSCALE(y) },
+#define GFXDECODE_REVERSEBITS(region,offset,layout,start,colors) { region, offset, &layout, start, colors, GFXENTRY_REVERSE },
+
+
+
+//**************************************************************************
+// INTERFACE CONFIGURATION MACROS
+//**************************************************************************
+
+#define MCFG_GFX_PALETTE(_palette_tag) \
+ device_gfx_interface::static_set_palette(*device, _palette_tag);
+
+#define MCFG_GFX_INFO(_info) \
+ device_gfx_interface::static_set_info(*device, GFXDECODE_NAME(_info));
+
+
+
+//**************************************************************************
+// DEVICE CONFIGURATION MACROS
+//**************************************************************************
+
+#define MCFG_GFXDECODE_ADD(_tag, _palette_tag, _info) \
+ MCFG_DEVICE_ADD(_tag, GFXDECODE, 0) \
+ MCFG_GFX_PALETTE(_palette_tag) \
+ MCFG_GFX_INFO(_info)
+
+#define MCFG_GFXDECODE_MODIFY(_tag, _info) \
+ MCFG_DEVICE_MODIFY(_tag) \
+ MCFG_GFX_INFO(_info)
+
+
+
+//**************************************************************************
+// TYPE DEFINITIONS
+//**************************************************************************
+
+// forward declarations
+class gfx_element;
+class device_palette_interface;
+
+struct gfx_layout
+{
+ u32 xoffs(int x) const { return (extxoffs != nullptr) ? extxoffs[x] : xoffset[x]; }
+ u32 yoffs(int y) const { return (extyoffs != nullptr) ? extyoffs[y] : yoffset[y]; }
+
+ u16 width; // pixel width of each element
+ u16 height; // pixel height of each element
+ u32 total; // total number of elements, or RGN_FRAC()
+ u16 planes; // number of bitplanes
+ u32 planeoffset[MAX_GFX_PLANES]; // bit offset of each bitplane
+ u32 xoffset[MAX_GFX_SIZE]; // bit offset of each horizontal pixel
+ u32 yoffset[MAX_GFX_SIZE]; // bit offset of each vertical pixel
+ u32 charincrement; // distance between two consecutive elements (in bits)
+ const u32 * extxoffs; // extended X offset array for really big layouts
+ const u32 * extyoffs; // extended Y offset array for really big layouts
+};
+
+struct gfx_decode_entry
+{
+ const char * memory_region; // memory region where the data resides
+ u32 start; // offset of beginning of data to decode
+ const gfx_layout *gfxlayout; // pointer to gfx_layout describing the layout; nullptr marks the end of the array
+ u16 color_codes_start; // offset in the color lookup table where color codes start
+ u16 total_color_codes; // total number of color codes
+ u32 flags; // flags and optional scaling factors
+};
+
+// ======================> device_gfx_interface
+
+class device_gfx_interface : public device_interface
+{
+public:
+ // construction/destruction
+ device_gfx_interface(const machine_config &mconfig, device_t &device,
+ const gfx_decode_entry *gfxinfo = nullptr, const char *palette_tag = nullptr);
+ virtual ~device_gfx_interface();
+
+ // static configuration
+ static void static_set_info(device_t &device, const gfx_decode_entry *gfxinfo);
+ static void static_set_palette(device_t &device, const char *tag);
+
+ // getters
+ device_palette_interface &palette() const { assert(m_palette != nullptr); return *m_palette; }
+ gfx_element *gfx(u8 index) const { assert(index < MAX_GFX_ELEMENTS); return m_gfx[index].get(); }
+
+ // decoding
+ void decode_gfx(const gfx_decode_entry *gfxdecodeinfo);
+ void decode_gfx() { decode_gfx(m_gfxdecodeinfo); }
+
+ void set_gfx(u8 index, std::unique_ptr<gfx_element> &&element) { assert(index < MAX_GFX_ELEMENTS); m_gfx[index] = std::move(element); }
+
+protected:
+ // interface-level overrides
+ virtual void interface_validity_check(validity_checker &valid) const override;
+ virtual void interface_pre_start() override;
+ virtual void interface_post_start() override;
+
+private:
+ device_palette_interface * m_palette; // pointer to the palette device interface
+ std::unique_ptr<gfx_element> m_gfx[MAX_GFX_ELEMENTS]; // array of pointers to graphic sets
+
+ // configuration
+ const gfx_decode_entry * m_gfxdecodeinfo; // pointer to array of gfx decode information
+ const char * m_palette_tag; // configured tag for palette device
+ bool m_palette_is_sibling; // is palette a sibling or a subdevice?
+
+ // internal state
+ bool m_decoded; // have we processed our decode info yet?
+};
+
+// iterator
+typedef device_interface_iterator<device_gfx_interface> gfx_interface_iterator;
+
+
+#endif /* MAME_EMU_DIGFX_H */
diff --git a/docs/release/src/emu/emuopts.cpp b/docs/release/src/emu/emuopts.cpp
new file mode 100644
index 00000000000..462b4f92413
--- /dev/null
+++ b/docs/release/src/emu/emuopts.cpp
@@ -0,0 +1,430 @@
+// license:BSD-3-Clause
+// copyright-holders:Aaron Giles
+/***************************************************************************
+
+ emuopts.cpp
+
+ Options file and command line management.
+
+***************************************************************************/
+
+#include "emu.h"
+#include "emuopts.h"
+
+
+//**************************************************************************
+// CORE EMULATOR OPTIONS
+//**************************************************************************
+
+const options_entry emu_options::s_option_entries[] =
+{
+ // unadorned options - only a single one supported at the moment
+ { OPTION_SYSTEMNAME, nullptr, OPTION_STRING, nullptr },
+ { OPTION_SOFTWARENAME, nullptr, OPTION_STRING, nullptr },
+
+ // config options
+ { nullptr, nullptr, OPTION_HEADER, "CORE CONFIGURATION OPTIONS" },
+ { OPTION_READCONFIG ";rc", "1", OPTION_BOOLEAN, "enable loading of configuration files" },
+ { OPTION_WRITECONFIG ";wc", "0", OPTION_BOOLEAN, "writes configuration to (driver).ini on exit" },
+
+ // search path options
+ { nullptr, nullptr, OPTION_HEADER, "CORE SEARCH PATH OPTIONS" },
+ { OPTION_HOMEPATH, ".", OPTION_STRING, "path to home directory (read/write) location" },
+ { OPTION_MEDIAPATH ";rp;biospath;bp", "roms", OPTION_STRING, "path to ROMsets and hard disk images" },
+ { OPTION_HASHPATH ";hash_directory;hash", "hash", OPTION_STRING, "path to hash files" },
+ { OPTION_SAMPLEPATH ";sp", "samples", OPTION_STRING, "path to samplesets" },
+ { OPTION_ARTPATH, "artwork", OPTION_STRING, "path to artwork files" },
+ { OPTION_CTRLRPATH, "ctrlr", OPTION_STRING, "path to controller definitions" },
+ { OPTION_INIPATH, ".", OPTION_STRING, "path to ini files" }, // MESSUI
+ { OPTION_FONTPATH, ".", OPTION_STRING, "path to font files" },
+ { OPTION_CHEATPATH, "cheat", OPTION_STRING, "path to cheat files" },
+ { OPTION_CROSSHAIRPATH, "crosshair", OPTION_STRING, "path to crosshair files" },
+ { OPTION_PLUGINSPATH, "plugins", OPTION_STRING, "path to plugin files" },
+ { OPTION_LANGUAGEPATH, "language", OPTION_STRING, "path to language files" },
+ { OPTION_SWPATH, "software", OPTION_STRING, "path to loose software" },
+
+ // output directory options
+ { nullptr, nullptr, OPTION_HEADER, "CORE OUTPUT DIRECTORY OPTIONS" },
+ { OPTION_CFG_DIRECTORY, "cfg", OPTION_STRING, "directory to save configurations" },
+ { OPTION_NVRAM_DIRECTORY, "nvram", OPTION_STRING, "directory to save nvram contents" },
+ { OPTION_INPUT_DIRECTORY, "inp", OPTION_STRING, "directory to save input device logs" },
+ { OPTION_STATE_DIRECTORY, "sta", OPTION_STRING, "directory to save states" },
+ { OPTION_SNAPSHOT_DIRECTORY, "snap", OPTION_STRING, "directory to save/load screenshots" },
+ { OPTION_DIFF_DIRECTORY, "diff", OPTION_STRING, "directory to save hard drive image difference files" },
+ { OPTION_COMMENT_DIRECTORY, "comments", OPTION_STRING, "directory to save debugger comments" },
+
+ // state/playback options
+ { nullptr, nullptr, OPTION_HEADER, "CORE STATE/PLAYBACK OPTIONS" },
+ { OPTION_STATE, nullptr, OPTION_STRING, "saved state to load" },
+ { OPTION_AUTOSAVE, "0", OPTION_BOOLEAN, "enable automatic restore at startup, and automatic save at exit time" },
+ { OPTION_PLAYBACK ";pb", nullptr, OPTION_STRING, "playback an input file" },
+ { OPTION_RECORD ";rec", nullptr, OPTION_STRING, "record an input file" },
+ { OPTION_RECORD_TIMECODE, "0", OPTION_BOOLEAN, "record an input timecode file (requires -record option)" },
+ { OPTION_EXIT_AFTER_PLAYBACK, "0", OPTION_BOOLEAN, "close the program at the end of playback" },
+
+ { OPTION_MNGWRITE, nullptr, OPTION_STRING, "optional filename to write a MNG movie of the current session" },
+ { OPTION_AVIWRITE, nullptr, OPTION_STRING, "optional filename to write an AVI movie of the current session" },
+ { OPTION_WAVWRITE, nullptr, OPTION_STRING, "optional filename to write a WAV file of the current session" },
+ { OPTION_SNAPNAME, "%g/%i", OPTION_STRING, "override of the default snapshot/movie naming; %g == gamename, %i == index" },
+ { OPTION_SNAPSIZE, "auto", OPTION_STRING, "specify snapshot/movie resolution (<width>x<height>) or 'auto' to use minimal size " },
+ { OPTION_SNAPVIEW, "internal", OPTION_STRING, "specify snapshot/movie view or 'internal' to use internal pixel-aspect views" },
+ { OPTION_SNAPBILINEAR, "1", OPTION_BOOLEAN, "specify if the snapshot/movie should have bilinear filtering applied" },
+ { OPTION_STATENAME, "%g", OPTION_STRING, "override of the default state subfolder naming; %g == gamename" },
+ { OPTION_BURNIN, "0", OPTION_BOOLEAN, "create burn-in snapshots for each screen" },
+
+ // performance options
+ { nullptr, nullptr, OPTION_HEADER, "CORE PERFORMANCE OPTIONS" },
+ { OPTION_AUTOFRAMESKIP ";afs", "0", OPTION_BOOLEAN, "enable automatic frameskip selection" },
+ { OPTION_FRAMESKIP ";fs(0-10)", "0", OPTION_INTEGER, "set frameskip to fixed value, 0-10 (autoframeskip must be disabled)" },
+ { OPTION_SECONDS_TO_RUN ";str", "0", OPTION_INTEGER, "number of emulated seconds to run before automatically exiting" },
+ { OPTION_THROTTLE, "1", OPTION_BOOLEAN, "enable throttling to keep game running in sync with real time" },
+ { OPTION_SLEEP, "1", OPTION_BOOLEAN, "enable sleeping, which gives time back to other applications when idle" },
+ { OPTION_SPEED "(0.01-100)", "1.0", OPTION_FLOAT, "controls the speed of gameplay, relative to realtime; smaller numbers are slower" },
+ { OPTION_REFRESHSPEED ";rs", "0", OPTION_BOOLEAN, "automatically adjusts the speed of gameplay to keep the refresh rate lower than the screen" },
+
+ // render options
+ { nullptr, nullptr, OPTION_HEADER, "CORE RENDER OPTIONS" },
+ { OPTION_KEEPASPECT ";ka", "1", OPTION_BOOLEAN, "constrain to the proper aspect ratio" },
+ { OPTION_UNEVENSTRETCH ";ues", "1", OPTION_BOOLEAN, "allow non-integer stretch factors" },
+ { OPTION_UNEVENSTRETCHX ";uesx", "0", OPTION_BOOLEAN, "allow non-integer stretch factors only on horizontal axis"},
+ { OPTION_UNEVENSTRETCHY ";uesy", "0", OPTION_BOOLEAN, "allow non-integer stretch factors only on vertical axis"},
+ { OPTION_AUTOSTRETCHXY ";asxy", "0", OPTION_BOOLEAN, "automatically apply -unevenstretchx/y based on source native orientation"},
+ { OPTION_INTOVERSCAN ";ios", "0", OPTION_BOOLEAN, "allow overscan on integer scaled targets"},
+ { OPTION_INTSCALEX ";sx", "0", OPTION_INTEGER, "set horizontal integer scale factor."},
+ { OPTION_INTSCALEY ";sy", "0", OPTION_INTEGER, "set vertical integer scale."},
+
+ // rotation options
+ { nullptr, nullptr, OPTION_HEADER, "CORE ROTATION OPTIONS" },
+ { OPTION_ROTATE, "1", OPTION_BOOLEAN, "rotate the game screen according to the game's orientation needs it" },
+ { OPTION_ROR, "0", OPTION_BOOLEAN, "rotate screen clockwise 90 degrees" },
+ { OPTION_ROL, "0", OPTION_BOOLEAN, "rotate screen counterclockwise 90 degrees" },
+ { OPTION_AUTOROR, "0", OPTION_BOOLEAN, "automatically rotate screen clockwise 90 degrees if vertical" },
+ { OPTION_AUTOROL, "0", OPTION_BOOLEAN, "automatically rotate screen counterclockwise 90 degrees if vertical" },
+ { OPTION_FLIPX, "0", OPTION_BOOLEAN, "flip screen left-right" },
+ { OPTION_FLIPY, "0", OPTION_BOOLEAN, "flip screen upside-down" },
+
+ // artwork options
+ { nullptr, nullptr, OPTION_HEADER, "CORE ARTWORK OPTIONS" },
+ { OPTION_ARTWORK_CROP ";artcrop", "0", OPTION_BOOLEAN, "crop artwork to game screen size" },
+ { OPTION_USE_BACKDROPS ";backdrop", "1", OPTION_BOOLEAN, "enable backdrops if artwork is enabled and available" },
+ { OPTION_USE_OVERLAYS ";overlay", "1", OPTION_BOOLEAN, "enable overlays if artwork is enabled and available" },
+ { OPTION_USE_BEZELS ";bezel", "1", OPTION_BOOLEAN, "enable bezels if artwork is enabled and available" },
+ { OPTION_USE_CPANELS ";cpanel", "1", OPTION_BOOLEAN, "enable cpanels if artwork is enabled and available" },
+ { OPTION_USE_MARQUEES ";marquee", "1", OPTION_BOOLEAN, "enable marquees if artwork is enabled and available" },
+
+ // screen options
+ { nullptr, nullptr, OPTION_HEADER, "CORE SCREEN OPTIONS" },
+ { OPTION_BRIGHTNESS "(0.1-2.0)", "1.0", OPTION_FLOAT, "default game screen brightness correction" },
+ { OPTION_CONTRAST "(0.1-2.0)", "1.0", OPTION_FLOAT, "default game screen contrast correction" },
+ { OPTION_GAMMA "(0.1-3.0)", "1.0", OPTION_FLOAT, "default game screen gamma correction" },
+ { OPTION_PAUSE_BRIGHTNESS "(0.0-1.0)", "0.65", OPTION_FLOAT, "amount to scale the screen brightness when paused" },
+ { OPTION_EFFECT, "none", OPTION_STRING, "name of a PNG file to use for visual effects, or 'none'" },
+
+ // vector options
+ { nullptr, nullptr, OPTION_HEADER, "CORE VECTOR OPTIONS" },
+ { OPTION_BEAM_WIDTH_MIN, "1.0", OPTION_FLOAT, "set vector beam width minimum" },
+ { OPTION_BEAM_WIDTH_MAX, "1.0", OPTION_FLOAT, "set vector beam width maximum" },
+ { OPTION_BEAM_INTENSITY_WEIGHT, "0", OPTION_FLOAT, "set vector beam intensity weight " },
+ { OPTION_FLICKER, "0", OPTION_FLOAT, "set vector flicker effect" },
+
+ // sound options
+ { nullptr, nullptr, OPTION_HEADER, "CORE SOUND OPTIONS" },
+ { OPTION_SAMPLERATE ";sr(1000-1000000)", "48000", OPTION_INTEGER, "set sound output sample rate" },
+ { OPTION_SAMPLES, "1", OPTION_BOOLEAN, "enable the use of external samples if available" },
+ { OPTION_VOLUME ";vol", "0", OPTION_INTEGER, "sound volume in decibels (-32 min, 0 max)" },
+
+ // input options
+ { nullptr, nullptr, OPTION_HEADER, "CORE INPUT OPTIONS" },
+ { OPTION_COIN_LOCKOUT ";coinlock", "1", OPTION_BOOLEAN, "enable coin lockouts to actually lock out coins" },
+ { OPTION_CTRLR, nullptr, OPTION_STRING, "preconfigure for specified controller" },
+ { OPTION_MOUSE, "0", OPTION_BOOLEAN, "enable mouse input" },
+ { OPTION_JOYSTICK ";joy", "1", OPTION_BOOLEAN, "enable joystick input" },
+ { OPTION_LIGHTGUN ";gun", "0", OPTION_BOOLEAN, "enable lightgun input" },
+ { OPTION_MULTIKEYBOARD ";multikey", "0", OPTION_BOOLEAN, "enable separate input from each keyboard device (if present)" },
+ { OPTION_MULTIMOUSE, "0", OPTION_BOOLEAN, "enable separate input from each mouse device (if present)" },
+ { OPTION_STEADYKEY ";steady", "0", OPTION_BOOLEAN, "enable steadykey support" },
+ { OPTION_UI_ACTIVE, "0", OPTION_BOOLEAN, "enable user interface on top of emulated keyboard (if present)" },
+ { OPTION_OFFSCREEN_RELOAD ";reload", "0", OPTION_BOOLEAN, "convert lightgun button 2 into offscreen reload" },
+ { OPTION_JOYSTICK_MAP ";joymap", "auto", OPTION_STRING, "explicit joystick map, or auto to auto-select" },
+ { OPTION_JOYSTICK_DEADZONE ";joy_deadzone;jdz(0.00-1)", "0.3", OPTION_FLOAT, "center deadzone range for joystick where change is ignored (0.0 center, 1.0 end)" },
+ { OPTION_JOYSTICK_SATURATION ";joy_saturation;jsat(0.00-1)", "0.85", OPTION_FLOAT, "end of axis saturation range for joystick where change is ignored (0.0 center, 1.0 end)" },
+ { OPTION_NATURAL_KEYBOARD ";nat", "0", OPTION_BOOLEAN, "specifies whether to use a natural keyboard or not" },
+ { OPTION_JOYSTICK_CONTRADICTORY ";joy_contradictory","0", OPTION_BOOLEAN, "enable contradictory direction digital joystick input at the same time" },
+ { OPTION_COIN_IMPULSE, "0", OPTION_INTEGER, "set coin impulse time (n<0 disable impulse, n==0 obey driver, 0<n set time n)" },
+
+ // input autoenable options
+ { nullptr, nullptr, OPTION_HEADER, "CORE INPUT AUTOMATIC ENABLE OPTIONS" },
+ { OPTION_PADDLE_DEVICE ";paddle", "keyboard", OPTION_STRING, "enable (none|keyboard|mouse|lightgun|joystick) if a paddle control is present" },
+ { OPTION_ADSTICK_DEVICE ";adstick", "keyboard", OPTION_STRING, "enable (none|keyboard|mouse|lightgun|joystick) if an analog joystick control is present" },
+ { OPTION_PEDAL_DEVICE ";pedal", "keyboard", OPTION_STRING, "enable (none|keyboard|mouse|lightgun|joystick) if a pedal control is present" },
+ { OPTION_DIAL_DEVICE ";dial", "keyboard", OPTION_STRING, "enable (none|keyboard|mouse|lightgun|joystick) if a dial control is present" },
+ { OPTION_TRACKBALL_DEVICE ";trackball", "keyboard", OPTION_STRING, "enable (none|keyboard|mouse|lightgun|joystick) if a trackball control is present" },
+ { OPTION_LIGHTGUN_DEVICE, "keyboard", OPTION_STRING, "enable (none|keyboard|mouse|lightgun|joystick) if a lightgun control is present" },
+ { OPTION_POSITIONAL_DEVICE, "keyboard", OPTION_STRING, "enable (none|keyboard|mouse|lightgun|joystick) if a positional control is present" },
+ { OPTION_MOUSE_DEVICE, "mouse", OPTION_STRING, "enable (none|keyboard|mouse|lightgun|joystick) if a mouse control is present" },
+
+ // debugging options
+ { nullptr, nullptr, OPTION_HEADER, "CORE DEBUGGING OPTIONS" },
+ { OPTION_VERBOSE ";v", "0", OPTION_BOOLEAN, "display additional diagnostic information" },
+ { OPTION_LOG, "0", OPTION_BOOLEAN, "generate an error.log file" },
+ { OPTION_OSLOG, "0", OPTION_BOOLEAN, "output error.log data to the system debugger" },
+ { OPTION_DEBUG ";d", "0", OPTION_BOOLEAN, "enable/disable debugger" },
+ { OPTION_UPDATEINPAUSE, "0", OPTION_BOOLEAN, "keep calling video updates while in pause" },
+ { OPTION_DEBUGSCRIPT, nullptr, OPTION_STRING, "script for debugger" },
+
+ // comm options
+ { nullptr, nullptr, OPTION_HEADER, "CORE COMM OPTIONS" },
+ { OPTION_COMM_LOCAL_HOST, "0.0.0.0", OPTION_STRING, "local address to bind to" },
+ { OPTION_COMM_LOCAL_PORT, "15112", OPTION_STRING, "local port to bind to" },
+ { OPTION_COMM_REMOTE_HOST, "127.0.0.1", OPTION_STRING, "remote address to connect to" },
+ { OPTION_COMM_REMOTE_PORT, "15112", OPTION_STRING, "remote port to connect to" },
+
+ // misc options
+ { nullptr, nullptr, OPTION_HEADER, "CORE MISC OPTIONS" },
+ { OPTION_DRC, "1", OPTION_BOOLEAN, "enable DRC cpu core if available" },
+ { OPTION_DRC_USE_C, "0", OPTION_BOOLEAN, "force DRC use C backend" },
+ { OPTION_DRC_LOG_UML, "0", OPTION_BOOLEAN, "write DRC UML disassembly log" },
+ { OPTION_DRC_LOG_NATIVE, "0", OPTION_BOOLEAN, "write DRC native disassembly log" },
+ { OPTION_BIOS, nullptr, OPTION_STRING, "select the system BIOS to use" },
+ { OPTION_CHEAT ";c", "0", OPTION_BOOLEAN, "enable cheat subsystem" },
+ { OPTION_SKIP_GAMEINFO, "0", OPTION_BOOLEAN, "skip displaying the information screen at startup" },
+ { OPTION_UI_FONT, "default", OPTION_STRING, "specify a font to use" },
+ { OPTION_UI, "cabinet", OPTION_STRING, "type of UI (simple|cabinet)" },
+ { OPTION_RAMSIZE ";ram", nullptr, OPTION_STRING, "size of RAM (if supported by driver)" },
+ { OPTION_CONFIRM_QUIT, "0", OPTION_BOOLEAN, "display confirm quit screen on exit" },
+ { OPTION_UI_MOUSE, "1", OPTION_BOOLEAN, "display ui mouse cursor" },
+ { OPTION_AUTOBOOT_COMMAND ";ab", nullptr, OPTION_STRING, "command to execute after machine boot" },
+ { OPTION_AUTOBOOT_DELAY, "0", OPTION_INTEGER, "timer delay in sec to trigger command execution on autoboot" },
+ { OPTION_AUTOBOOT_SCRIPT ";script", nullptr, OPTION_STRING, "lua script to execute after machine boot" },
+ { OPTION_CONSOLE, "0", OPTION_BOOLEAN, "enable emulator LUA console" },
+ { OPTION_PLUGINS, "1", OPTION_BOOLEAN, "enable LUA plugin support" },
+ { OPTION_PLUGIN, nullptr, OPTION_STRING, "list of plugins to enable" },
+ { OPTION_NO_PLUGIN, nullptr, OPTION_STRING, "list of plugins to disable" },
+ { OPTION_LANGUAGE ";lang", "English", OPTION_STRING, "display language" },
+
+ { nullptr, nullptr, OPTION_HEADER, "HTTP SERVER OPTIONS" },
+ { OPTION_HTTP, "0", OPTION_BOOLEAN, "HTTP server enable" },
+ { OPTION_HTTP_PORT, "8080", OPTION_INTEGER, "HTTP server port" },
+ { OPTION_HTTP_ROOT, "web", OPTION_STRING, "HTTP server document root" },
+
+ { nullptr }
+};
+
+
+
+//**************************************************************************
+// EMU OPTIONS
+//**************************************************************************
+
+//-------------------------------------------------
+// emu_options - constructor
+//-------------------------------------------------
+
+emu_options::emu_options()
+: core_options()
+, m_coin_impulse(0)
+, m_joystick_contradictory(false)
+, m_sleep(true)
+, m_refresh_speed(false)
+, m_ui(UI_CABINET)
+{
+ add_entries(emu_options::s_option_entries);
+}
+
+
+//-------------------------------------------------
+// value_changed - to prevent tagmap
+// lookups keep copies of frequently requested
+// options in member variables.
+//-------------------------------------------------
+
+void emu_options::value_changed(const std::string &name, const std::string &value)
+{
+ if (name == OPTION_COIN_IMPULSE)
+ {
+ m_coin_impulse = int_value(OPTION_COIN_IMPULSE);
+ }
+ else if (name == OPTION_JOYSTICK_CONTRADICTORY)
+ {
+ m_joystick_contradictory = bool_value(OPTION_JOYSTICK_CONTRADICTORY);
+ }
+ else if (name == OPTION_SLEEP)
+ {
+ m_sleep = bool_value(OPTION_SLEEP);
+ }
+ else if (name == OPTION_REFRESHSPEED)
+ {
+ m_refresh_speed = bool_value(OPTION_REFRESHSPEED);
+ }
+ else if (name == OPTION_UI)
+ {
+ if (value == "simple")
+ m_ui = UI_SIMPLE;
+ else
+ m_ui = UI_CABINET;
+ }
+}
+
+
+//-------------------------------------------------
+// override_get_value - when saving to an INI, we
+// need to hook into that process so we can write
+// out image/slot options
+//-------------------------------------------------
+
+core_options::override_get_value_result emu_options::override_get_value(const char *name, std::string &value) const
+{
+ if (name)
+ {
+ auto slotiter = m_slot_options.find(name);
+ if (slotiter != m_slot_options.end())
+ {
+ value = slotiter->second.specified_value();
+ return slotiter->second.specified()
+ ? override_get_value_result::OVERRIDE
+ : override_get_value_result::SKIP;
+ }
+
+ auto imageiter = m_image_options.find(name);
+ if (imageiter != m_image_options.end())
+ {
+ value = imageiter->second;
+ return override_get_value_result::OVERRIDE;
+ }
+ }
+
+ return override_get_value_result::NONE;
+}
+
+
+//-------------------------------------------------
+// override_set_value - when parsing an INI, we
+// need to hook into into it so we can do the same
+// crazy slot logic done in mameopt
+//-------------------------------------------------
+
+bool emu_options::override_set_value(const char *name, const std::string &value)
+{
+ auto slotiter = m_slot_options.find(name);
+ if (slotiter != m_slot_options.end())
+ {
+ slotiter->second.specify(std::string(value));
+ return true;
+ }
+
+ auto imageiter = m_image_options.find(name);
+ if (imageiter != m_image_options.end())
+ {
+ // We've found a potential image slot for this value. However, we're only going to specify it
+ // if the current image option is empty. This is because if there is an image option already
+ // present, it is almost certain that this was because something was specified at the command
+ // line and we're parsing an INI. Because INIs have less priority than the command line, this
+ // should be ignored
+ //
+ // Obviously, this ignores that INIs themselves have their own prioritization, so this should be
+ // considered to be a hack. Instead of having image options being just a straight map of std::string
+ // it should really be a structure where the priority can be recorded
+ if (imageiter->second.empty())
+ imageiter->second = value;
+ return true;
+ }
+
+ return false;
+}
+
+
+//-------------------------------------------------
+// slot_option ctor
+//-------------------------------------------------
+
+slot_option::slot_option(const char *default_value)
+ : m_specified(false)
+ , m_default_value(default_value ? default_value : "")
+{
+}
+
+
+//-------------------------------------------------
+// slot_option::value
+//-------------------------------------------------
+
+const std::string &slot_option::value() const
+{
+ // There are a number of ways that the value can be determined; there
+ // is a specific order of precedence:
+ //
+ // 1. Highest priority is whatever may have been specified by the user (whether it
+ // was specified at the command line, an INI file, or in the UI). We keep track
+ // of whether these values were specified this way
+ //
+ // Take note that slots have a notion of being "selectable". Slots that are not
+ // marked as selectable cannot be specified with this technique
+ //
+ // 2. Next highest is what is returned from get_default_card_software()
+ //
+ // 3. Last in priority is what was specified as the slot default. This comes from
+ // device setup
+ if (m_specified)
+ return m_specified_value;
+ else if (!m_default_card_software.empty())
+ return m_default_card_software;
+ else
+ return m_default_value;
+}
+
+
+//-------------------------------------------------
+// slot_option::specified_value
+//-------------------------------------------------
+
+std::string slot_option::specified_value() const
+{
+ std::string result;
+ if (m_specified)
+ {
+ result = m_specified_bios.empty()
+ ? m_specified_value
+ : util::string_format("%s,bios=%s", m_specified_value, m_specified_bios);
+ }
+ return result;
+}
+
+
+//-------------------------------------------------
+// slot_option::specify
+//-------------------------------------------------
+
+void slot_option::specify(std::string &&text)
+{
+ // we need to do some elementary parsing here
+ const char *bios_arg = ",bios=";
+
+ size_t pos = text.find(bios_arg);
+ if (pos != std::string::npos)
+ {
+ m_specified = true;
+ m_specified_value = text.substr(0, pos);
+ m_specified_bios = text.substr(pos + strlen(bios_arg));
+ }
+ else
+ {
+ m_specified = true;
+ m_specified_value = std::move(text);
+ m_specified_bios = "";
+ }
+}
+
+
+//-------------------------------------------------
+// slot_option::set_bios
+//-------------------------------------------------
+
+void slot_option::set_bios(std::string &&text)
+{
+ if (!m_specified)
+ {
+ m_specified = true;
+ m_specified_value = value();
+ }
+ m_specified_bios = std::move(text);
+}
diff --git a/docs/release/src/emu/emuopts.h b/docs/release/src/emu/emuopts.h
new file mode 100644
index 00000000000..e592d04d6e3
--- /dev/null
+++ b/docs/release/src/emu/emuopts.h
@@ -0,0 +1,462 @@
+// license:BSD-3-Clause
+// copyright-holders:Aaron Giles
+/***************************************************************************
+
+ emuopts.h
+
+ Options file and command line management.
+
+***************************************************************************/
+
+#ifndef MAME_EMU_EMUOPTS_H
+#define MAME_EMU_EMUOPTS_H
+
+#pragma once
+
+#include "options.h"
+
+#define OPTION_PRIORITY_CMDLINE OPTION_PRIORITY_HIGH + 1
+// core options
+#define OPTION_SYSTEMNAME core_options::unadorned(0)
+#define OPTION_SOFTWARENAME core_options::unadorned(1)
+
+// core configuration options
+#define OPTION_READCONFIG "readconfig"
+#define OPTION_WRITECONFIG "writeconfig"
+
+// core search path options
+#define OPTION_HOMEPATH "homepath"
+#define OPTION_MEDIAPATH "rompath"
+#define OPTION_HASHPATH "hashpath"
+#define OPTION_SAMPLEPATH "samplepath"
+#define OPTION_ARTPATH "artpath"
+#define OPTION_CTRLRPATH "ctrlrpath"
+#define OPTION_INIPATH "inipath"
+#define OPTION_FONTPATH "fontpath"
+#define OPTION_CHEATPATH "cheatpath"
+#define OPTION_CROSSHAIRPATH "crosshairpath"
+#define OPTION_PLUGINSPATH "pluginspath"
+#define OPTION_LANGUAGEPATH "languagepath"
+#define OPTION_SWPATH "swpath"
+
+// core directory options
+#define OPTION_CFG_DIRECTORY "cfg_directory"
+#define OPTION_NVRAM_DIRECTORY "nvram_directory"
+#define OPTION_INPUT_DIRECTORY "input_directory"
+#define OPTION_STATE_DIRECTORY "state_directory"
+#define OPTION_SNAPSHOT_DIRECTORY "snapshot_directory"
+#define OPTION_DIFF_DIRECTORY "diff_directory"
+#define OPTION_COMMENT_DIRECTORY "comment_directory"
+
+// core state/playback options
+#define OPTION_STATE "state"
+#define OPTION_AUTOSAVE "autosave"
+#define OPTION_PLAYBACK "playback"
+#define OPTION_RECORD "record"
+#define OPTION_RECORD_TIMECODE "record_timecode"
+#define OPTION_EXIT_AFTER_PLAYBACK "exit_after_playback"
+#define OPTION_MNGWRITE "mngwrite"
+#define OPTION_AVIWRITE "aviwrite"
+#define OPTION_WAVWRITE "wavwrite"
+#define OPTION_SNAPNAME "snapname"
+#define OPTION_SNAPSIZE "snapsize"
+#define OPTION_SNAPVIEW "snapview"
+#define OPTION_SNAPBILINEAR "snapbilinear"
+#define OPTION_STATENAME "statename"
+#define OPTION_BURNIN "burnin"
+
+// core performance options
+#define OPTION_AUTOFRAMESKIP "autoframeskip"
+#define OPTION_FRAMESKIP "frameskip"
+#define OPTION_SECONDS_TO_RUN "seconds_to_run"
+#define OPTION_THROTTLE "throttle"
+#define OPTION_SLEEP "sleep"
+#define OPTION_SPEED "speed"
+#define OPTION_REFRESHSPEED "refreshspeed"
+
+// core render options
+#define OPTION_KEEPASPECT "keepaspect"
+#define OPTION_UNEVENSTRETCH "unevenstretch"
+#define OPTION_UNEVENSTRETCHX "unevenstretchx"
+#define OPTION_UNEVENSTRETCHY "unevenstretchy"
+#define OPTION_AUTOSTRETCHXY "autostretchxy"
+#define OPTION_INTOVERSCAN "intoverscan"
+#define OPTION_INTSCALEX "intscalex"
+#define OPTION_INTSCALEY "intscaley"
+
+// core rotation options
+#define OPTION_ROTATE "rotate"
+#define OPTION_ROR "ror"
+#define OPTION_ROL "rol"
+#define OPTION_AUTOROR "autoror"
+#define OPTION_AUTOROL "autorol"
+#define OPTION_FLIPX "flipx"
+#define OPTION_FLIPY "flipy"
+
+// core artwork options
+#define OPTION_ARTWORK_CROP "artwork_crop"
+#define OPTION_USE_BACKDROPS "use_backdrops"
+#define OPTION_USE_OVERLAYS "use_overlays"
+#define OPTION_USE_BEZELS "use_bezels"
+#define OPTION_USE_CPANELS "use_cpanels"
+#define OPTION_USE_MARQUEES "use_marquees"
+
+// core screen options
+#define OPTION_BRIGHTNESS "brightness"
+#define OPTION_CONTRAST "contrast"
+#define OPTION_GAMMA "gamma"
+#define OPTION_PAUSE_BRIGHTNESS "pause_brightness"
+#define OPTION_EFFECT "effect"
+
+// core vector options
+#define OPTION_BEAM_WIDTH_MIN "beam_width_min"
+#define OPTION_BEAM_WIDTH_MAX "beam_width_max"
+#define OPTION_BEAM_INTENSITY_WEIGHT "beam_intensity_weight"
+#define OPTION_FLICKER "flicker"
+
+// core sound options
+#define OPTION_SAMPLERATE "samplerate"
+#define OPTION_SAMPLES "samples"
+#define OPTION_VOLUME "volume"
+
+// core input options
+#define OPTION_COIN_LOCKOUT "coin_lockout"
+#define OPTION_CTRLR "ctrlr"
+#define OPTION_MOUSE "mouse"
+#define OPTION_JOYSTICK "joystick"
+#define OPTION_LIGHTGUN "lightgun"
+#define OPTION_MULTIKEYBOARD "multikeyboard"
+#define OPTION_MULTIMOUSE "multimouse"
+#define OPTION_STEADYKEY "steadykey"
+#define OPTION_UI_ACTIVE "ui_active"
+#define OPTION_OFFSCREEN_RELOAD "offscreen_reload"
+#define OPTION_JOYSTICK_MAP "joystick_map"
+#define OPTION_JOYSTICK_DEADZONE "joystick_deadzone"
+#define OPTION_JOYSTICK_SATURATION "joystick_saturation"
+#define OPTION_NATURAL_KEYBOARD "natural"
+#define OPTION_JOYSTICK_CONTRADICTORY "joystick_contradictory"
+#define OPTION_COIN_IMPULSE "coin_impulse"
+
+// input autoenable options
+#define OPTION_PADDLE_DEVICE "paddle_device"
+#define OPTION_ADSTICK_DEVICE "adstick_device"
+#define OPTION_PEDAL_DEVICE "pedal_device"
+#define OPTION_DIAL_DEVICE "dial_device"
+#define OPTION_TRACKBALL_DEVICE "trackball_device"
+#define OPTION_LIGHTGUN_DEVICE "lightgun_device"
+#define OPTION_POSITIONAL_DEVICE "positional_device"
+#define OPTION_MOUSE_DEVICE "mouse_device"
+
+// core debugging options
+#define OPTION_LOG "log"
+#define OPTION_DEBUG "debug"
+#define OPTION_VERBOSE "verbose"
+#define OPTION_OSLOG "oslog"
+#define OPTION_UPDATEINPAUSE "update_in_pause"
+#define OPTION_DEBUGSCRIPT "debugscript"
+
+// core misc options
+#define OPTION_DRC "drc"
+#define OPTION_DRC_USE_C "drc_use_c"
+#define OPTION_DRC_LOG_UML "drc_log_uml"
+#define OPTION_DRC_LOG_NATIVE "drc_log_native"
+#define OPTION_BIOS "bios"
+#define OPTION_CHEAT "cheat"
+#define OPTION_SKIP_GAMEINFO "skip_gameinfo"
+#define OPTION_UI_FONT "uifont"
+#define OPTION_UI "ui"
+#define OPTION_RAMSIZE "ramsize"
+
+// core comm options
+#define OPTION_COMM_LOCAL_HOST "comm_localhost"
+#define OPTION_COMM_LOCAL_PORT "comm_localport"
+#define OPTION_COMM_REMOTE_HOST "comm_remotehost"
+#define OPTION_COMM_REMOTE_PORT "comm_remoteport"
+
+#define OPTION_CONFIRM_QUIT "confirm_quit"
+#define OPTION_UI_MOUSE "ui_mouse"
+
+#define OPTION_AUTOBOOT_COMMAND "autoboot_command"
+#define OPTION_AUTOBOOT_DELAY "autoboot_delay"
+#define OPTION_AUTOBOOT_SCRIPT "autoboot_script"
+
+#define OPTION_CONSOLE "console"
+#define OPTION_PLUGINS "plugins"
+#define OPTION_PLUGIN "plugin"
+#define OPTION_NO_PLUGIN "noplugin"
+
+#define OPTION_LANGUAGE "language"
+
+#define OPTION_HTTP "http"
+#define OPTION_HTTP_PORT "http_port"
+#define OPTION_HTTP_ROOT "http_root"
+
+//**************************************************************************
+// TYPE DEFINITIONS
+//**************************************************************************
+
+class slot_option
+{
+public:
+ slot_option(const char *default_value = nullptr);
+ slot_option(const slot_option &that) = default;
+ slot_option(slot_option &&that) = default;
+
+ const slot_option &operator=(const slot_option &that)
+ {
+ m_specified = that.m_specified;
+ m_specified_value = that.m_specified_value;
+ m_specified_bios = that.m_specified_bios;
+ m_default_card_software = that.m_default_card_software;
+ m_default_value = that.m_default_value;
+ return *this;
+ }
+
+ const slot_option &operator=(slot_option &&that)
+ {
+ m_specified = that.m_specified;
+ m_specified_value = std::move(that.m_specified_value);
+ m_specified_bios = std::move(that.m_specified_bios);
+ m_default_card_software = std::move(that.m_default_card_software);
+ m_default_value = std::move(that.m_default_value);
+ return *this;
+ }
+
+ // accessors
+ const std::string &value() const;
+ std::string specified_value() const;
+ const std::string &bios() const { return m_specified_bios; }
+ const std::string &default_card_software() const { return m_default_card_software; }
+ bool specified() const { return m_specified; }
+
+ // seters
+ void specify(std::string &&text);
+ void set_bios(std::string &&text);
+ void set_default_card_software(std::string &&s) { m_default_card_software = std::move(s); }
+
+private:
+ bool m_specified;
+ std::string m_specified_value;
+ std::string m_specified_bios;
+ std::string m_default_card_software;
+ std::string m_default_value;
+};
+
+
+class emu_options : public core_options
+{
+public:
+ enum ui_option
+ {
+ UI_CABINET,
+ UI_SIMPLE
+ };
+
+ // construction/destruction
+ emu_options();
+
+ // core options
+ const char *system_name() const { return value(OPTION_SYSTEMNAME); }
+ const char *software_name() const { return value(OPTION_SOFTWARENAME); }
+
+ // core configuration options
+ bool read_config() const { return bool_value(OPTION_READCONFIG); }
+ bool write_config() const { return bool_value(OPTION_WRITECONFIG); }
+
+ // core search path options
+ const char *home_path() const { return value(OPTION_HOMEPATH); }
+ const char *media_path() const { return value(OPTION_MEDIAPATH); }
+ const char *hash_path() const { return value(OPTION_HASHPATH); }
+ const char *sample_path() const { return value(OPTION_SAMPLEPATH); }
+ const char *art_path() const { return value(OPTION_ARTPATH); }
+ const char *ctrlr_path() const { return value(OPTION_CTRLRPATH); }
+ const char *ini_path() const { return value(OPTION_INIPATH); }
+ const char *font_path() const { return value(OPTION_FONTPATH); }
+ const char *cheat_path() const { return value(OPTION_CHEATPATH); }
+ const char *crosshair_path() const { return value(OPTION_CROSSHAIRPATH); }
+ const char *plugins_path() const { return value(OPTION_PLUGINSPATH); }
+ const char *language_path() const { return value(OPTION_LANGUAGEPATH); }
+ const char *sw_path() const { return value(OPTION_SWPATH); }
+
+ // core directory options
+ const char *cfg_directory() const { return value(OPTION_CFG_DIRECTORY); }
+ const char *nvram_directory() const { return value(OPTION_NVRAM_DIRECTORY); }
+ const char *input_directory() const { return value(OPTION_INPUT_DIRECTORY); }
+ const char *state_directory() const { return value(OPTION_STATE_DIRECTORY); }
+ const char *snapshot_directory() const { return value(OPTION_SNAPSHOT_DIRECTORY); }
+ const char *diff_directory() const { return value(OPTION_DIFF_DIRECTORY); }
+ const char *comment_directory() const { return value(OPTION_COMMENT_DIRECTORY); }
+
+ // core state/playback options
+ const char *state() const { return value(OPTION_STATE); }
+ bool autosave() const { return bool_value(OPTION_AUTOSAVE); }
+ const char *playback() const { return value(OPTION_PLAYBACK); }
+ const char *record() const { return value(OPTION_RECORD); }
+ bool record_timecode() const { return bool_value(OPTION_RECORD_TIMECODE); }
+ bool exit_after_playback() const { return bool_value(OPTION_EXIT_AFTER_PLAYBACK); }
+ const char *mng_write() const { return value(OPTION_MNGWRITE); }
+ const char *avi_write() const { return value(OPTION_AVIWRITE); }
+ const char *wav_write() const { return value(OPTION_WAVWRITE); }
+ const char *snap_name() const { return value(OPTION_SNAPNAME); }
+ const char *snap_size() const { return value(OPTION_SNAPSIZE); }
+ const char *snap_view() const { return value(OPTION_SNAPVIEW); }
+ bool snap_bilinear() const { return bool_value(OPTION_SNAPBILINEAR); }
+ const char *state_name() const { return value(OPTION_STATENAME); }
+ bool burnin() const { return bool_value(OPTION_BURNIN); }
+
+ // core performance options
+ bool auto_frameskip() const { return bool_value(OPTION_AUTOFRAMESKIP); }
+ 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 m_sleep; }
+ float speed() const { return float_value(OPTION_SPEED); }
+ bool refresh_speed() const { return m_refresh_speed; }
+
+ // core render options
+ bool keep_aspect() const { return bool_value(OPTION_KEEPASPECT); }
+ bool uneven_stretch() const { return bool_value(OPTION_UNEVENSTRETCH); }
+ bool uneven_stretch_x() const { return bool_value(OPTION_UNEVENSTRETCHX); }
+ bool uneven_stretch_y() const { return bool_value(OPTION_UNEVENSTRETCHY); }
+ bool auto_stretch_xy() const { return bool_value(OPTION_AUTOSTRETCHXY); }
+ bool int_overscan() const { return bool_value(OPTION_INTOVERSCAN); }
+ int int_scale_x() const { return int_value(OPTION_INTSCALEX); }
+ int int_scale_y() const { return int_value(OPTION_INTSCALEY); }
+
+ // core rotation options
+ bool rotate() const { return bool_value(OPTION_ROTATE); }
+ bool ror() const { return bool_value(OPTION_ROR); }
+ bool rol() const { return bool_value(OPTION_ROL); }
+ bool auto_ror() const { return bool_value(OPTION_AUTOROR); }
+ bool auto_rol() const { return bool_value(OPTION_AUTOROL); }
+ bool flipx() const { return bool_value(OPTION_FLIPX); }
+ bool flipy() const { return bool_value(OPTION_FLIPY); }
+
+ // core artwork options
+ bool artwork_crop() const { return bool_value(OPTION_ARTWORK_CROP); }
+ bool use_backdrops() const { return bool_value(OPTION_USE_BACKDROPS); }
+ bool use_overlays() const { return bool_value(OPTION_USE_OVERLAYS); }
+ bool use_bezels() const { return bool_value(OPTION_USE_BEZELS); }
+ bool use_cpanels() const { return bool_value(OPTION_USE_CPANELS); }
+ bool use_marquees() const { return bool_value(OPTION_USE_MARQUEES); }
+
+ // core screen options
+ float brightness() const { return float_value(OPTION_BRIGHTNESS); }
+ float contrast() const { return float_value(OPTION_CONTRAST); }
+ float gamma() const { return float_value(OPTION_GAMMA); }
+ float pause_brightness() const { return float_value(OPTION_PAUSE_BRIGHTNESS); }
+ const char *effect() const { return value(OPTION_EFFECT); }
+
+ // core vector options
+ float beam_width_min() const { return float_value(OPTION_BEAM_WIDTH_MIN); }
+ float beam_width_max() const { return float_value(OPTION_BEAM_WIDTH_MAX); }
+ float beam_intensity_weight() const { return float_value(OPTION_BEAM_INTENSITY_WEIGHT); }
+ float flicker() const { return float_value(OPTION_FLICKER); }
+
+ // core sound options
+ int sample_rate() const { return int_value(OPTION_SAMPLERATE); }
+ bool samples() const { return bool_value(OPTION_SAMPLES); }
+ int volume() const { return int_value(OPTION_VOLUME); }
+
+ // core input options
+ bool coin_lockout() const { return bool_value(OPTION_COIN_LOCKOUT); }
+ const char *ctrlr() const { return value(OPTION_CTRLR); }
+ bool mouse() const { return bool_value(OPTION_MOUSE); }
+ bool joystick() const { return bool_value(OPTION_JOYSTICK); }
+ bool lightgun() const { return bool_value(OPTION_LIGHTGUN); }
+ bool multi_keyboard() const { return bool_value(OPTION_MULTIKEYBOARD); }
+ bool multi_mouse() const { return bool_value(OPTION_MULTIMOUSE); }
+ const char *paddle_device() const { return value(OPTION_PADDLE_DEVICE); }
+ const char *adstick_device() const { return value(OPTION_ADSTICK_DEVICE); }
+ const char *pedal_device() const { return value(OPTION_PEDAL_DEVICE); }
+ const char *dial_device() const { return value(OPTION_DIAL_DEVICE); }
+ const char *trackball_device() const { return value(OPTION_TRACKBALL_DEVICE); }
+ const char *lightgun_device() const { return value(OPTION_LIGHTGUN_DEVICE); }
+ const char *positional_device() const { return value(OPTION_POSITIONAL_DEVICE); }
+ const char *mouse_device() const { return value(OPTION_MOUSE_DEVICE); }
+ const char *joystick_map() const { return value(OPTION_JOYSTICK_MAP); }
+ float joystick_deadzone() const { return float_value(OPTION_JOYSTICK_DEADZONE); }
+ float joystick_saturation() const { return float_value(OPTION_JOYSTICK_SATURATION); }
+ bool steadykey() const { return bool_value(OPTION_STEADYKEY); }
+ 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 m_joystick_contradictory; }
+ int coin_impulse() const { return m_coin_impulse; }
+
+ // core debugging options
+ bool log() const { return bool_value(OPTION_LOG); }
+ bool debug() const { return bool_value(OPTION_DEBUG); }
+ bool verbose() const { return bool_value(OPTION_VERBOSE); }
+ bool oslog() const { return bool_value(OPTION_OSLOG); }
+ const char *debug_script() const { return value(OPTION_DEBUGSCRIPT); }
+ bool update_in_pause() const { return bool_value(OPTION_UPDATEINPAUSE); }
+
+ // core misc options
+ bool drc() const { return bool_value(OPTION_DRC); }
+ bool drc_use_c() const { return bool_value(OPTION_DRC_USE_C); }
+ bool drc_log_uml() const { return bool_value(OPTION_DRC_LOG_UML); }
+ bool drc_log_native() const { return bool_value(OPTION_DRC_LOG_NATIVE); }
+ const char *bios() const { return value(OPTION_BIOS); }
+ bool cheat() const { return bool_value(OPTION_CHEAT); }
+ bool skip_gameinfo() const { return bool_value(OPTION_SKIP_GAMEINFO); }
+ const char *ui_font() const { return value(OPTION_UI_FONT); }
+ ui_option ui() const { return m_ui; }
+ const char *ram_size() const { return value(OPTION_RAMSIZE); }
+
+ // core comm options
+ const char *comm_localhost() const { return value(OPTION_COMM_LOCAL_HOST); }
+ const char *comm_localport() const { return value(OPTION_COMM_LOCAL_PORT); }
+ const char *comm_remotehost() const { return value(OPTION_COMM_REMOTE_HOST); }
+ const char *comm_remoteport() const { return value(OPTION_COMM_REMOTE_PORT); }
+
+
+ bool confirm_quit() const { return bool_value(OPTION_CONFIRM_QUIT); }
+ bool ui_mouse() const { return bool_value(OPTION_UI_MOUSE); }
+
+ const char *autoboot_command() const { return value(OPTION_AUTOBOOT_COMMAND); }
+ int autoboot_delay() const { return int_value(OPTION_AUTOBOOT_DELAY); }
+ const char *autoboot_script() const { return value(OPTION_AUTOBOOT_SCRIPT); }
+
+ bool console() const { return bool_value(OPTION_CONSOLE); }
+
+ bool plugins() const { return bool_value(OPTION_PLUGINS); }
+
+ const char *plugin() const { return value(OPTION_PLUGIN); }
+ const char *no_plugin() const { return value(OPTION_NO_PLUGIN); }
+
+ const char *language() const { return value(OPTION_LANGUAGE); }
+
+ // Web server specific optopns
+ bool http() const { return bool_value(OPTION_HTTP); }
+ short http_port() const { return int_value(OPTION_HTTP_PORT); }
+ const char *http_root() const { return value(OPTION_HTTP_ROOT); }
+
+ // slots and devices - the values for these are stored outside of the core_options
+ // structure
+ std::map<std::string, slot_option> &slot_options() { return m_slot_options; }
+ const std::map<std::string, slot_option> &slot_options() const { return m_slot_options; }
+ std::map<std::string, std::string> &image_options() { return m_image_options; }
+ const std::map<std::string, std::string> &image_options() const { return m_image_options; }
+
+protected:
+ virtual void value_changed(const std::string &name, const std::string &value) override;
+ virtual override_get_value_result override_get_value(const char *name, std::string &value) const override;
+ virtual bool override_set_value(const char *name, const std::string &value) override;
+
+private:
+ static const options_entry s_option_entries[];
+
+ // slots and devices
+ std::map<std::string, slot_option> m_slot_options;
+ std::map<std::string, std::string> m_image_options;
+
+ // cached options, for scenarios where parsing core_options is too slow
+ int m_coin_impulse;
+ bool m_joystick_contradictory;
+ bool m_sleep;
+ bool m_refresh_speed;
+ ui_option m_ui;
+};
+
+#endif // MAME_EMU_EMUOPTS_H
diff --git a/docs/release/src/emu/gamedrv.h b/docs/release/src/emu/gamedrv.h
new file mode 100644
index 00000000000..44db809f7c9
--- /dev/null
+++ b/docs/release/src/emu/gamedrv.h
@@ -0,0 +1,198 @@
+// license:BSD-3-Clause
+// copyright-holders:Aaron Giles
+/***************************************************************************
+
+ gamedrv.h
+
+ Definitions for game drivers.
+
+***************************************************************************/
+
+#ifndef MAME_EMU_GAMEDRV_H
+#define MAME_EMU_GAMEDRV_H
+
+#pragma once
+
+
+//**************************************************************************
+// CONSTANTS
+//**************************************************************************
+
+// maxima
+constexpr int MAX_DRIVER_NAME_CHARS = 16;
+
+// flags for game drivers
+constexpr u32 ORIENTATION_MASK = 0x00000007;
+constexpr u32 MACHINE_NOT_WORKING = 0x00000008;
+constexpr u32 MACHINE_UNEMULATED_PROTECTION = 0x00000010; // game's protection not fully emulated
+constexpr u32 MACHINE_WRONG_COLORS = 0x00000020; // colors are totally wrong
+constexpr u32 MACHINE_IMPERFECT_COLORS = 0x00000040; // colors are not 100% accurate, but close
+constexpr u32 MACHINE_IMPERFECT_GRAPHICS = 0x00000080; // graphics are wrong/incomplete
+constexpr u32 MACHINE_NO_COCKTAIL = 0x00000100; // screen flip support is missing
+constexpr u32 MACHINE_NO_SOUND = 0x00000200; // sound is missing
+constexpr u32 MACHINE_IMPERFECT_SOUND = 0x00000400; // sound is known to be wrong
+constexpr u32 MACHINE_SUPPORTS_SAVE = 0x00000800; // game supports save states
+constexpr u32 MACHINE_IS_BIOS_ROOT = 0x00001000; // this driver entry is a BIOS root
+constexpr u32 MACHINE_NO_STANDALONE = 0x00002000; // this driver cannot stand alone
+constexpr u32 MACHINE_REQUIRES_ARTWORK = 0x00004000; // the driver requires external artwork for key elements of the game
+constexpr u32 MACHINE_UNOFFICIAL = 0x00008000; // unofficial hardware change
+constexpr u32 MACHINE_NO_SOUND_HW = 0x00010000; // sound hardware not available
+constexpr u32 MACHINE_MECHANICAL = 0x00020000; // contains mechanical parts (pinball, redemption games,...)
+constexpr u32 MACHINE_TYPE_ARCADE = 0x00040000; // arcade machine (coin operated machines)
+constexpr u32 MACHINE_TYPE_CONSOLE = 0x00080000; // console system
+constexpr u32 MACHINE_TYPE_COMPUTER = 0x00100000; // any kind of computer including home computers, minis, calcs,...
+constexpr u32 MACHINE_TYPE_OTHER = 0x00200000; // any other emulated system that doesn't fit above (ex. clock, satellite receiver,...)
+constexpr u32 MACHINE_IMPERFECT_KEYBOARD = 0x00400000; // keyboard is known to be wrong
+constexpr u32 MACHINE_CLICKABLE_ARTWORK = 0x00800000; // marking that artwork is clickable and require mouse cursor
+constexpr u32 MACHINE_IS_INCOMPLETE = 0x01000000; // any official game/system with blatantly incomplete HW or SW should be marked with this
+constexpr u32 MACHINE_NODEVICE_MICROPHONE = 0x02000000; // any game/system that has unemulated recording voice device peripheral
+constexpr u32 MACHINE_NODEVICE_CAMERA = 0x04000000; // any game/system that has unemulated capturing image device peripheral
+constexpr u32 MACHINE_NODEVICE_PRINTER = 0x08000000; // any game/system that has unemulated grabbing of screen content device
+constexpr u32 MACHINE_NODEVICE_LAN = 0x10000000; // any game/system that has unemulated multi-linking capability
+constexpr u32 MACHINE_NODEVICE_WAN = 0x20000000; // any game/system that has unemulated networking capability
+
+// useful combinations of flags
+constexpr u32 MACHINE_IS_SKELETON = MACHINE_NO_SOUND | MACHINE_NOT_WORKING; // mask for skelly games
+constexpr u32 MACHINE_IS_SKELETON_MECHANICAL = MACHINE_IS_SKELETON | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK; // mask for skelly mechanical games
+constexpr u32 MACHINE_FATAL_FLAGS = MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_MECHANICAL; // red disclaimer
+constexpr u32 MACHINE_WARNING_FLAGS = MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_COLORS | MACHINE_REQUIRES_ARTWORK | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_KEYBOARD | MACHINE_NO_SOUND | MACHINE_NO_COCKTAIL | MACHINE_NODEVICE_MICROPHONE | MACHINE_NODEVICE_CAMERA | MACHINE_NODEVICE_PRINTER | MACHINE_NODEVICE_LAN | MACHINE_NODEVICE_WAN; // yellow disclaimer
+constexpr u32 MACHINE_BTANB_FLAGS = MACHINE_IS_INCOMPLETE; // HBMAME // | MACHINE_NO_SOUND_HW; // default disclaimer
+
+//**************************************************************************
+// TYPE DEFINITIONS
+//**************************************************************************
+
+// static driver initialization callback
+typedef void (*driver_init_func)(running_machine &machine);
+
+// static POD structure describing each game driver entry
+struct game_driver
+{
+ const char * source_file; // set this to __FILE__
+ const char * parent; // if this is a clone, the name of the parent
+ const char * description; // full name of the game
+ const char * year; // year the game was released
+ const char * manufacturer; // manufacturer of the game
+ machine_config_constructor machine_config; // machine driver tokens
+ ioport_constructor ipt; // pointer to constructor for input ports
+ driver_init_func driver_init; // DRIVER_INIT callback
+ const tiny_rom_entry * rom; // pointer to list of ROMs for the game
+ const char * compatible_with;
+ const internal_layout * default_layout; // default internally defined layout
+ u32 flags; // orientation and other flags; see defines above
+ char name[MAX_DRIVER_NAME_CHARS + 1]; // short name of the game
+};
+
+
+//**************************************************************************
+// MACROS
+//**************************************************************************
+
+// wrappers for the DRIVER_INIT callback
+#define DRIVER_INIT_NAME(name) init_##name
+#define DECLARE_DRIVER_INIT(name) void DRIVER_INIT_NAME(name)() ATTR_COLD
+#define DRIVER_INIT_MEMBER(cls, name) void cls::DRIVER_INIT_NAME(name)()
+#define DRIVER_INIT_CALL(name) DRIVER_INIT_NAME(name)()
+
+// wrappers for declaring and defining game drivers
+#define GAME_NAME(name) driver_##name
+#define GAME_EXTERN(name) extern game_driver const GAME_NAME(name)
+
+// standard GAME() macro
+#define GAME(YEAR,NAME,PARENT,MACHINE,INPUT,CLASS,INIT,MONITOR,COMPANY,FULLNAME,FLAGS) \
+extern game_driver const GAME_NAME(NAME) \
+{ \
+ __FILE__, \
+ #PARENT, \
+ FULLNAME, \
+ #YEAR, \
+ COMPANY, \
+ MACHINE_CONFIG_NAME(MACHINE), \
+ INPUT_PORTS_NAME(INPUT), \
+ &driver_device::driver_init_wrapper<CLASS, &CLASS::init_##INIT>, \
+ ROM_NAME(NAME), \
+ nullptr, \
+ nullptr, \
+ (MONITOR) | (FLAGS) | MACHINE_TYPE_ARCADE, \
+ #NAME \
+};
+
+// standard macro with additional layout
+#define GAMEL(YEAR,NAME,PARENT,MACHINE,INPUT,CLASS,INIT,MONITOR,COMPANY,FULLNAME,FLAGS,LAYOUT) \
+extern game_driver const GAME_NAME(NAME) \
+{ \
+ __FILE__, \
+ #PARENT, \
+ FULLNAME, \
+ #YEAR, \
+ COMPANY, \
+ MACHINE_CONFIG_NAME(MACHINE), \
+ INPUT_PORTS_NAME(INPUT), \
+ &driver_device::driver_init_wrapper<CLASS, &CLASS::init_##INIT>, \
+ ROM_NAME(NAME), \
+ nullptr, \
+ &LAYOUT, \
+ (MONITOR) | (FLAGS) | MACHINE_TYPE_ARCADE, \
+ #NAME \
+};
+
+
+// standard console definition macro
+#define CONS(YEAR,NAME,PARENT,COMPAT,MACHINE,INPUT,CLASS,INIT,COMPANY,FULLNAME,FLAGS) \
+extern game_driver const GAME_NAME(NAME) \
+{ \
+ __FILE__, \
+ #PARENT, \
+ FULLNAME, \
+ #YEAR, \
+ COMPANY, \
+ MACHINE_CONFIG_NAME(MACHINE), \
+ INPUT_PORTS_NAME(INPUT), \
+ &driver_device::driver_init_wrapper<CLASS, &CLASS::init_##INIT>, \
+ ROM_NAME(NAME), \
+ #COMPAT, \
+ nullptr, \
+ ROT0 | (FLAGS) | MACHINE_TYPE_CONSOLE, \
+ #NAME \
+};
+
+// standard computer definition macro
+#define COMP(YEAR,NAME,PARENT,COMPAT,MACHINE,INPUT,CLASS,INIT,COMPANY,FULLNAME,FLAGS) \
+extern game_driver const GAME_NAME(NAME) \
+{ \
+ __FILE__, \
+ #PARENT, \
+ FULLNAME, \
+ #YEAR, \
+ COMPANY, \
+ MACHINE_CONFIG_NAME(MACHINE), \
+ INPUT_PORTS_NAME(INPUT), \
+ &driver_device::driver_init_wrapper<CLASS, &CLASS::init_##INIT>, \
+ ROM_NAME(NAME), \
+ #COMPAT, \
+ nullptr, \
+ ROT0 | (FLAGS) | MACHINE_TYPE_COMPUTER, \
+ #NAME \
+};
+
+// standard system definition macro
+#define SYST(YEAR,NAME,PARENT,COMPAT,MACHINE,INPUT,CLASS,INIT,COMPANY,FULLNAME,FLAGS) \
+extern game_driver const GAME_NAME(NAME) \
+{ \
+ __FILE__, \
+ #PARENT, \
+ FULLNAME, \
+ #YEAR, \
+ COMPANY, \
+ MACHINE_CONFIG_NAME(MACHINE), \
+ INPUT_PORTS_NAME(INPUT), \
+ &driver_device::driver_init_wrapper<CLASS, &CLASS::init_##INIT>, \
+ ROM_NAME(NAME), \
+ #COMPAT, \
+ nullptr, \
+ ROT0 | (FLAGS) | MACHINE_TYPE_OTHER, \
+ #NAME \
+};
+
+
+#endif // MAME_EMU_GAMEDRV_H
diff --git a/docs/release/src/emu/validity.cpp b/docs/release/src/emu/validity.cpp
new file mode 100644
index 00000000000..9e3996d9c9f
--- /dev/null
+++ b/docs/release/src/emu/validity.cpp
@@ -0,0 +1,2075 @@
+// license:BSD-3-Clause
+// copyright-holders:Aaron Giles, Paul Priest
+/***************************************************************************
+
+ validity.cpp
+
+ Validity checks on internal data structures.
+
+***************************************************************************/
+
+#include "emu.h"
+#include "validity.h"
+
+#include "emuopts.h"
+#include "video/rgbutil.h"
+
+#include <ctype.h>
+#include <type_traits>
+#include <typeindex>
+#include <typeinfo>
+
+
+//**************************************************************************
+// TYPE DEFINITIONS
+//**************************************************************************
+
+//**************************************************************************
+// INLINE FUNCTIONS
+//**************************************************************************
+
+//-------------------------------------------------
+// ioport_string_from_index - return an indexed
+// string from the I/O port system
+//-------------------------------------------------
+
+inline const char *validity_checker::ioport_string_from_index(u32 index)
+{
+ return ioport_configurer::string_from_token((const char *)(uintptr_t)index);
+}
+
+
+//-------------------------------------------------
+// get_defstr_index - return the index of the
+// string assuming it is one of the default
+// strings
+//-------------------------------------------------
+
+inline int validity_checker::get_defstr_index(const char *string, bool suppress_error)
+{
+ // check for strings that should be DEF_STR
+ auto strindex = m_defstr_map.find(string);
+ if (!suppress_error && strindex != m_defstr_map.end() && string != ioport_string_from_index(strindex->second))
+ osd_printf_error("Must use DEF_STR( %s )\n", string);
+ return (strindex != m_defstr_map.end()) ? strindex->second : 0;
+}
+
+
+//-------------------------------------------------
+// random_u64
+// random_s64
+// random_u32
+// random_s32
+//-------------------------------------------------
+#undef rand
+inline s32 validity_checker::random_i32() { return s32(random_u32()); }
+inline u32 validity_checker::random_u32() { return rand() ^ (rand() << 15); }
+inline s64 validity_checker::random_i64() { return s64(random_u64()); }
+inline u64 validity_checker::random_u64() { return u64(random_u32()) ^ (u64(random_u32()) << 30); }
+
+
+
+//-------------------------------------------------
+// validate_tag - ensure that the given tag
+// meets the general requirements
+//-------------------------------------------------
+
+void validity_checker::validate_tag(const char *tag)
+{
+ // some common names that are now deprecated
+ if (strcmp(tag, "main") == 0 || strcmp(tag, "audio") == 0 || strcmp(tag, "sound") == 0 || strcmp(tag, "left") == 0 || strcmp(tag, "right") == 0)
+ osd_printf_error("Invalid generic tag '%s' used\n", tag);
+
+ // scan for invalid characters
+ static const char *validchars = "abcdefghijklmnopqrstuvwxyz0123456789_.:^$";
+ for (const char *p = tag; *p != 0; p++)
+ {
+ // only lower-case permitted
+ if (*p != tolower(u8(*p)))
+ {
+ osd_printf_error("Tag '%s' contains upper-case characters\n", tag);
+ break;
+ }
+ if (*p == ' ')
+ {
+ osd_printf_error("Tag '%s' contains spaces\n", tag);
+ break;
+ }
+ if (strchr(validchars, *p) == nullptr)
+ {
+ osd_printf_error("Tag '%s' contains invalid character '%c'\n", tag, *p);
+ break;
+ }
+ }
+
+ // find the start of the final tag
+ const char *begin = strrchr(tag, ':');
+ if (begin == nullptr)
+ begin = tag;
+ else
+ begin += 1;
+
+ // 0-length = bad
+ if (*begin == 0)
+ osd_printf_error("Found 0-length tag\n");
+
+ // too short/too long = bad
+ if (strlen(begin) < MIN_TAG_LENGTH)
+ osd_printf_error("Tag '%s' is too short (must be at least %d characters)\n", tag, MIN_TAG_LENGTH);
+}
+
+
+
+//**************************************************************************
+// VALIDATION FUNCTIONS
+//**************************************************************************
+
+//-------------------------------------------------
+// validity_checker - constructor
+//-------------------------------------------------
+
+validity_checker::validity_checker(emu_options &options)
+ : m_drivlist(options)
+ , m_errors(0)
+ , m_warnings(0)
+ , m_print_verbose(options.verbose())
+ , m_current_driver(nullptr)
+ , m_current_config(nullptr)
+ , m_current_device(nullptr)
+ , m_current_ioport(nullptr)
+ , m_validate_all(false)
+{
+ // pre-populate the defstr map with all the default strings
+ for (int strnum = 1; strnum < INPUT_STRING_COUNT; strnum++)
+ {
+ const char *string = ioport_string_from_index(strnum);
+ if (string != nullptr)
+ m_defstr_map.insert(std::make_pair(string, strnum));
+ }
+}
+
+//-------------------------------------------------
+// validity_checker - destructor
+//-------------------------------------------------
+
+validity_checker::~validity_checker()
+{
+ validate_end();
+}
+
+//-------------------------------------------------
+// check_driver - check a single driver
+//-------------------------------------------------
+
+void validity_checker::check_driver(const game_driver &driver)
+{
+ // simply validate the one driver
+ validate_begin();
+ validate_one(driver);
+ validate_end();
+}
+
+
+//-------------------------------------------------
+// check_shared_source - check all drivers that
+// share the same source file as the given driver
+//-------------------------------------------------
+
+void validity_checker::check_shared_source(const game_driver &driver)
+{
+ // initialize
+ validate_begin();
+
+ // then iterate over all drivers and check the ones that share the same source file
+ m_drivlist.reset();
+ while (m_drivlist.next())
+ if (strcmp(driver.source_file, m_drivlist.driver().source_file) == 0)
+ validate_one(m_drivlist.driver());
+
+ // cleanup
+ validate_end();
+}
+
+
+//-------------------------------------------------
+// check_all_matching - check all drivers whose
+// names match the given string
+//-------------------------------------------------
+
+bool validity_checker::check_all_matching(const char *string)
+{
+ // start by checking core stuff
+ validate_begin();
+ validate_core();
+ validate_inlines();
+ validate_rgb();
+
+ // if we had warnings or errors, output
+ if (m_errors > 0 || m_warnings > 0 || !m_verbose_text.empty())
+ {
+ output_via_delegate(OSD_OUTPUT_CHANNEL_ERROR, "Core: %d errors, %d warnings\n", m_errors, m_warnings);
+ if (m_errors > 0)
+ output_indented_errors(m_error_text, "Errors");
+ if (m_warnings > 0)
+ output_indented_errors(m_warning_text, "Warnings");
+ if (!m_verbose_text.empty())
+ output_indented_errors(m_verbose_text, "Messages");
+ output_via_delegate(OSD_OUTPUT_CHANNEL_ERROR, "\n");
+ }
+
+ // then iterate over all drivers and check them
+ m_drivlist.reset();
+ while (m_drivlist.next())
+ if (m_drivlist.matches(string, m_drivlist.driver().name))
+ validate_one(m_drivlist.driver());
+
+ // validate devices
+ if (!string)
+ validate_device_types();
+
+ // cleanup
+ validate_end();
+
+ return !(m_errors > 0 || m_warnings > 0);
+}
+
+
+//-------------------------------------------------
+// validate_begin - prepare for validation by
+// taking over the output callbacks and resetting
+// our internal state
+//-------------------------------------------------
+
+void validity_checker::validate_begin()
+{
+ // take over error and warning outputs
+ osd_output::push(this);
+
+ // reset all our maps
+ m_names_map.clear();
+ m_descriptions_map.clear();
+ m_roms_map.clear();
+ m_defstr_map.clear();
+ m_region_map.clear();
+
+ // reset internal state
+ m_errors = 0;
+ m_warnings = 0;
+ m_already_checked.clear();
+}
+
+
+//-------------------------------------------------
+// validate_end - restore output callbacks and
+// clean up
+//-------------------------------------------------
+
+void validity_checker::validate_end()
+{
+ // restore the original output callbacks
+ osd_output::pop(this);
+}
+
+
+//-------------------------------------------------
+// validate_drivers - master validity checker
+//-------------------------------------------------
+
+void validity_checker::validate_one(const game_driver &driver)
+{
+ // help verbose validation detect configuration-related crashes
+ if (m_print_verbose)
+ output_via_delegate(OSD_OUTPUT_CHANNEL_ERROR, "Validating driver %s (%s)...\n", driver.name, core_filename_extract_base(driver.source_file).c_str());
+
+ // set the current driver
+ m_current_driver = &driver;
+ m_current_config = nullptr;
+ m_current_device = nullptr;
+ m_current_ioport = nullptr;
+ m_region_map.clear();
+
+ // reset error/warning state
+ int start_errors = m_errors;
+ int start_warnings = m_warnings;
+ m_error_text.clear();
+ m_warning_text.clear();
+ m_verbose_text.clear();
+
+ // wrap in try/except to catch fatalerrors
+ try
+ {
+ machine_config config(driver, m_blank_options);
+ m_current_config = &config;
+ validate_driver();
+ validate_roms();
+ validate_inputs();
+ validate_devices();
+ m_current_config = nullptr;
+ }
+ catch (emu_fatalerror &err)
+ {
+ osd_printf_error("Fatal error %s", err.string());
+ }
+
+ // if we had warnings or errors, output
+ if (m_errors > start_errors || m_warnings > start_warnings || !m_verbose_text.empty())
+ {
+ if (!m_print_verbose)
+ output_via_delegate(OSD_OUTPUT_CHANNEL_ERROR, "Driver %s (file %s): ", driver.name, core_filename_extract_base(driver.source_file).c_str());
+ output_via_delegate(OSD_OUTPUT_CHANNEL_ERROR, "%d errors, %d warnings\n", m_errors - start_errors, m_warnings - start_warnings);
+ if (m_errors > start_errors)
+ output_indented_errors(m_error_text, "Errors");
+ if (m_warnings > start_warnings)
+ output_indented_errors(m_warning_text, "Warnings");
+ if (!m_verbose_text.empty())
+ output_indented_errors(m_verbose_text, "Messages");
+ output_via_delegate(OSD_OUTPUT_CHANNEL_ERROR, "\n");
+ }
+
+ // reset the driver/device
+ m_current_driver = nullptr;
+ m_current_config = nullptr;
+ m_current_device = nullptr;
+ m_current_ioport = nullptr;
+}
+
+
+//-------------------------------------------------
+// validate_core - validate core internal systems
+//-------------------------------------------------
+
+void validity_checker::validate_core()
+{
+ // basic system checks
+ if (~0 != -1) osd_printf_error("Machine must be two's complement\n");
+
+ u8 a = 0xff;
+ u8 b = a + 1;
+ if (b > a) osd_printf_error("u8 must be 8 bits\n");
+
+ // check size of core integer types
+ if (sizeof(s8) != 1) osd_printf_error("s8 must be 8 bits\n");
+ if (sizeof(u8) != 1) osd_printf_error("u8 must be 8 bits\n");
+ if (sizeof(s16) != 2) osd_printf_error("s16 must be 16 bits\n");
+ if (sizeof(u16) != 2) osd_printf_error("u16 must be 16 bits\n");
+ if (sizeof(s32) != 4) osd_printf_error("s32 must be 32 bits\n");
+ if (sizeof(u32) != 4) osd_printf_error("u32 must be 32 bits\n");
+ if (sizeof(s64) != 8) osd_printf_error("s64 must be 64 bits\n");
+ if (sizeof(u64) != 8) osd_printf_error("u64 must be 64 bits\n");
+
+ // check signed right shift
+ s8 a8 = -3;
+ s16 a16 = -3;
+ s32 a32 = -3;
+ s64 a64 = -3;
+ if (a8 >> 1 != -2) osd_printf_error("s8 right shift must be arithmetic\n");
+ if (a16 >> 1 != -2) osd_printf_error("s16 right shift must be arithmetic\n");
+ if (a32 >> 1 != -2) osd_printf_error("s32 right shift must be arithmetic\n");
+ if (a64 >> 1 != -2) osd_printf_error("s64 right shift must be arithmetic\n");
+
+ // check pointer size
+#ifdef PTR64
+ static_assert(sizeof(void *) == 8, "PTR64 flag enabled, but was compiled for 32-bit target\n");
+#else
+ static_assert(sizeof(void *) == 4, "PTR64 flag not enabled, but was compiled for 64-bit target\n");
+#endif
+
+ // TODO: check if this is actually working
+ // check endianness definition
+ u16 lsbtest = 0;
+ *(u8 *)&lsbtest = 0xff;
+#ifdef LSB_FIRST
+ if (lsbtest == 0xff00) osd_printf_error("LSB_FIRST specified, but running on a big-endian machine\n");
+#else
+ if (lsbtest == 0x00ff) osd_printf_error("LSB_FIRST not specified, but running on a little-endian machine\n");
+#endif
+}
+
+
+//-------------------------------------------------
+// validate_inlines - validate inline function
+// behaviors
+//-------------------------------------------------
+
+void validity_checker::validate_inlines()
+{
+ volatile u64 testu64a = random_u64();
+ volatile s64 testi64a = random_i64();
+ volatile u32 testu32a = random_u32();
+ volatile u32 testu32b = random_u32();
+ volatile s32 testi32a = random_i32();
+ volatile s32 testi32b = random_i32();
+ s32 resulti32, expectedi32;
+ u32 resultu32, expectedu32;
+ s64 resulti64, expectedi64;
+ u64 resultu64, expectedu64;
+ s32 remainder, expremainder;
+ u32 uremainder, expuremainder, bigu32 = 0xffffffff;
+
+ // use only non-zero, positive numbers
+ if (testu64a == 0) testu64a++;
+ if (testi64a == 0) testi64a++;
+ else if (testi64a < 0) testi64a = -testi64a;
+ if (testu32a == 0) testu32a++;
+ if (testu32b == 0) testu32b++;
+ if (testi32a == 0) testi32a++;
+ else if (testi32a < 0) testi32a = -testi32a;
+ if (testi32b == 0) testi32b++;
+ else if (testi32b < 0) testi32b = -testi32b;
+
+ resulti64 = mul_32x32(testi32a, testi32b);
+ expectedi64 = s64(testi32a) * s64(testi32b);
+ if (resulti64 != expectedi64)
+ osd_printf_error("Error testing mul_32x32 (%08X x %08X) = %08X%08X (expected %08X%08X)\n", testi32a, testi32b, u32(resulti64 >> 32), u32(resulti64), u32(expectedi64 >> 32), u32(expectedi64));
+
+ resultu64 = mulu_32x32(testu32a, testu32b);
+ expectedu64 = u64(testu32a) * u64(testu32b);
+ if (resultu64 != expectedu64)
+ osd_printf_error("Error testing mulu_32x32 (%08X x %08X) = %08X%08X (expected %08X%08X)\n", testu32a, testu32b, u32(resultu64 >> 32), u32(resultu64), u32(expectedu64 >> 32), u32(expectedu64));
+
+ resulti32 = mul_32x32_hi(testi32a, testi32b);
+ expectedi32 = (s64(testi32a) * s64(testi32b)) >> 32;
+ if (resulti32 != expectedi32)
+ osd_printf_error("Error testing mul_32x32_hi (%08X x %08X) = %08X (expected %08X)\n", testi32a, testi32b, resulti32, expectedi32);
+
+ resultu32 = mulu_32x32_hi(testu32a, testu32b);
+ expectedu32 = (s64(testu32a) * s64(testu32b)) >> 32;
+ if (resultu32 != expectedu32)
+ osd_printf_error("Error testing mulu_32x32_hi (%08X x %08X) = %08X (expected %08X)\n", testu32a, testu32b, resultu32, expectedu32);
+
+ resulti32 = mul_32x32_shift(testi32a, testi32b, 7);
+ expectedi32 = (s64(testi32a) * s64(testi32b)) >> 7;
+ if (resulti32 != expectedi32)
+ osd_printf_error("Error testing mul_32x32_shift (%08X x %08X) >> 7 = %08X (expected %08X)\n", testi32a, testi32b, resulti32, expectedi32);
+
+ resultu32 = mulu_32x32_shift(testu32a, testu32b, 7);
+ expectedu32 = (s64(testu32a) * s64(testu32b)) >> 7;
+ if (resultu32 != expectedu32)
+ osd_printf_error("Error testing mulu_32x32_shift (%08X x %08X) >> 7 = %08X (expected %08X)\n", testu32a, testu32b, resultu32, expectedu32);
+
+ while (s64(testi32a) * s64(0x7fffffff) < testi64a)
+ testi64a /= 2;
+ while (u64(testu32a) * u64(bigu32) < testu64a)
+ testu64a /= 2;
+
+ resulti32 = div_64x32(testi64a, testi32a);
+ expectedi32 = testi64a / s64(testi32a);
+ if (resulti32 != expectedi32)
+ osd_printf_error("Error testing div_64x32 (%08X%08X / %08X) = %08X (expected %08X)\n", u32(testi64a >> 32), u32(testi64a), testi32a, resulti32, expectedi32);
+
+ resultu32 = divu_64x32(testu64a, testu32a);
+ expectedu32 = testu64a / u64(testu32a);
+ if (resultu32 != expectedu32)
+ osd_printf_error("Error testing divu_64x32 (%08X%08X / %08X) = %08X (expected %08X)\n", u32(testu64a >> 32), u32(testu64a), testu32a, resultu32, expectedu32);
+
+ resulti32 = div_64x32_rem(testi64a, testi32a, &remainder);
+ expectedi32 = testi64a / s64(testi32a);
+ expremainder = testi64a % s64(testi32a);
+ if (resulti32 != expectedi32 || remainder != expremainder)
+ osd_printf_error("Error testing div_64x32_rem (%08X%08X / %08X) = %08X,%08X (expected %08X,%08X)\n", u32(testi64a >> 32), u32(testi64a), testi32a, resulti32, remainder, expectedi32, expremainder);
+
+ resultu32 = divu_64x32_rem(testu64a, testu32a, &uremainder);
+ expectedu32 = testu64a / u64(testu32a);
+ expuremainder = testu64a % u64(testu32a);
+ if (resultu32 != expectedu32 || uremainder != expuremainder)
+ osd_printf_error("Error testing divu_64x32_rem (%08X%08X / %08X) = %08X,%08X (expected %08X,%08X)\n", u32(testu64a >> 32), u32(testu64a), testu32a, resultu32, uremainder, expectedu32, expuremainder);
+
+ resulti32 = mod_64x32(testi64a, testi32a);
+ expectedi32 = testi64a % s64(testi32a);
+ if (resulti32 != expectedi32)
+ osd_printf_error("Error testing mod_64x32 (%08X%08X / %08X) = %08X (expected %08X)\n", u32(testi64a >> 32), u32(testi64a), testi32a, resulti32, expectedi32);
+
+ resultu32 = modu_64x32(testu64a, testu32a);
+ expectedu32 = testu64a % u64(testu32a);
+ if (resultu32 != expectedu32)
+ osd_printf_error("Error testing modu_64x32 (%08X%08X / %08X) = %08X (expected %08X)\n", u32(testu64a >> 32), u32(testu64a), testu32a, resultu32, expectedu32);
+
+ while (s64(testi32a) * s64(0x7fffffff) < (s32(testi64a) << 3))
+ testi64a /= 2;
+ while (u64(testu32a) * u64(0xffffffff) < (u32(testu64a) << 3))
+ testu64a /= 2;
+
+ resulti32 = div_32x32_shift(s32(testi64a), testi32a, 3);
+ expectedi32 = (s64(s32(testi64a)) << 3) / s64(testi32a);
+ if (resulti32 != expectedi32)
+ osd_printf_error("Error testing div_32x32_shift (%08X << 3) / %08X = %08X (expected %08X)\n", s32(testi64a), testi32a, resulti32, expectedi32);
+
+ resultu32 = divu_32x32_shift(u32(testu64a), testu32a, 3);
+ expectedu32 = (u64(u32(testu64a)) << 3) / u64(testu32a);
+ if (resultu32 != expectedu32)
+ osd_printf_error("Error testing divu_32x32_shift (%08X << 3) / %08X = %08X (expected %08X)\n", u32(testu64a), testu32a, resultu32, expectedu32);
+
+ if (fabsf(recip_approx(100.0f) - 0.01f) > 0.0001f)
+ osd_printf_error("Error testing recip_approx\n");
+
+ testi32a = (testi32a & 0x0000ffff) | 0x400000;
+ if (count_leading_zeros(testi32a) != 9)
+ osd_printf_error("Error testing count_leading_zeros\n");
+ testi32a = (testi32a | 0xffff0000) & ~0x400000;
+ if (count_leading_ones(testi32a) != 9)
+ osd_printf_error("Error testing count_leading_ones\n");
+}
+
+
+//-------------------------------------------------
+// validate_rgb - validate optimised RGB utility
+// class
+//-------------------------------------------------
+
+void validity_checker::validate_rgb()
+{
+ /*
+ This performs cursory tests of most of the vector-optimised RGB
+ utilities, concentrating on the low-level maths. It uses random
+ values most of the time for a quick go/no-go indication rather
+ than trying to exercise edge cases. It doesn't matter too much
+ if the compiler optimises out some of the operations since it's
+ really intended to check for logic bugs in the vector code. If
+ the compiler can work out that the code produces the expected
+ result, that's good enough.
+
+ The tests for bitwise logical operations are ordered to minimise
+ the chance of all-zero or all-one patterns producing a
+ misleading good result.
+
+ The following functions are not tested yet:
+ rgbaint_t()
+ clamp_and_clear(const u32)
+ sign_extend(const u32, const u32)
+ min(const s32)
+ max(const s32)
+ blend(const rgbaint_t&, u8)
+ scale_and_clamp(const rgbaint_t&)
+ scale_imm_and_clamp(const s32)
+ scale2_add_and_clamp(const rgbaint_t&, const rgbaint_t&, const rgbaint_t&)
+ scale_add_and_clamp(const rgbaint_t&, const rgbaint_t&);
+ scale_imm_add_and_clamp(const s32, const rgbaint_t&);
+ static bilinear_filter(u32, u32, u32, u32, u8, u8)
+ bilinear_filter_rgbaint(u32, u32, u32, u32, u8, u8)
+ */
+
+ auto random_i32_nolimit = [this]
+ {
+ s32 result;
+ do { result = random_i32(); } while ((result == std::numeric_limits<s32>::min()) || (result == std::numeric_limits<s32>::max()));
+ return result;
+ };
+
+ volatile s32 expected_a, expected_r, expected_g, expected_b;
+ volatile s32 actual_a, actual_r, actual_g, actual_b;
+ volatile s32 imm;
+ rgbaint_t rgb, other;
+ rgb_t packed;
+ auto check_expected = [&] (const char *desc)
+ {
+ const volatile s32 a = rgb.get_a32();
+ const volatile s32 r = rgb.get_r32();
+ const volatile s32 g = rgb.get_g32();
+ const volatile s32 b = rgb.get_b32();
+ if (a != expected_a) osd_printf_error("Error testing %s get_a32() = %d (expected %d)\n", desc, a, expected_a);
+ if (r != expected_r) osd_printf_error("Error testing %s get_r32() = %d (expected %d)\n", desc, r, expected_r);
+ if (g != expected_g) osd_printf_error("Error testing %s get_g32() = %d (expected %d)\n", desc, g, expected_g);
+ if (b != expected_b) osd_printf_error("Error testing %s get_b32() = %d (expected %d)\n", desc, b, expected_b);
+ };
+
+ // check set/get
+ expected_a = random_i32();
+ expected_r = random_i32();
+ expected_g = random_i32();
+ expected_b = random_i32();
+ rgb.set(expected_a, expected_r, expected_g, expected_b);
+ check_expected("rgbaint_t::set(a, r, g, b)");
+
+ // check construct/set
+ expected_a = random_i32();
+ expected_r = random_i32();
+ expected_g = random_i32();
+ expected_b = random_i32();
+ rgb.set(rgbaint_t(expected_a, expected_r, expected_g, expected_b));
+ check_expected("rgbaint_t::set(rgbaint_t)");
+
+ // check construct/assign
+ expected_a = random_i32();
+ expected_r = random_i32();
+ expected_g = random_i32();
+ expected_b = random_i32();
+ rgb = rgbaint_t(expected_a, expected_r, expected_g, expected_b);
+ check_expected("rgbaint_t assignment");
+
+ // check piecewise set
+ rgb.set_a(expected_a = random_i32());
+ check_expected("rgbaint_t::set_a");
+ rgb.set_r(expected_r = random_i32());
+ check_expected("rgbaint_t::set_r");
+ rgb.set_g(expected_g = random_i32());
+ check_expected("rgbaint_t::set_g");
+ rgb.set_b(expected_b = random_i32());
+ check_expected("rgbaint_t::set_b");
+
+ // test merge_alpha
+ expected_a = rand();
+ rgb.merge_alpha(rgbaint_t(expected_a, rand(), rand(), rand()));
+ check_expected("rgbaint_t::merge_alpha");
+
+ // test RGB addition (method)
+ expected_a += actual_a = random_i32();
+ expected_r += actual_r = random_i32();
+ expected_g += actual_g = random_i32();
+ expected_b += actual_b = random_i32();
+ rgb.add(rgbaint_t(actual_a, actual_r, actual_g, actual_b));
+ check_expected("rgbaint_t::add");
+
+ // test RGB addition (operator)
+ expected_a += actual_a = random_i32();
+ expected_r += actual_r = random_i32();
+ expected_g += actual_g = random_i32();
+ expected_b += actual_b = random_i32();
+ rgb += rgbaint_t(actual_a, actual_r, actual_g, actual_b);
+ check_expected("rgbaint_t::operator+=");
+
+ // test offset addition (method)
+ imm = random_i32();
+ expected_a += imm;
+ expected_r += imm;
+ expected_g += imm;
+ expected_b += imm;
+ rgb.add_imm(imm);
+ check_expected("rgbaint_t::add_imm");
+
+ // test offset addition (operator)
+ imm = random_i32();
+ expected_a += imm;
+ expected_r += imm;
+ expected_g += imm;
+ expected_b += imm;
+ rgb += imm;
+ check_expected("rgbaint_t::operator+=");
+
+ // test immediate RGB addition
+ expected_a += actual_a = random_i32();
+ expected_r += actual_r = random_i32();
+ expected_g += actual_g = random_i32();
+ expected_b += actual_b = random_i32();
+ rgb.add_imm_rgba(actual_a, actual_r, actual_g, actual_b);
+ check_expected("rgbaint_t::add_imm_rgba");
+
+ // test RGB subtraction (method)
+ expected_a -= actual_a = random_i32();
+ expected_r -= actual_r = random_i32();
+ expected_g -= actual_g = random_i32();
+ expected_b -= actual_b = random_i32();
+ rgb.sub(rgbaint_t(actual_a, actual_r, actual_g, actual_b));
+ check_expected("rgbaint_t::sub");
+
+ // test RGB subtraction (operator)
+ expected_a -= actual_a = random_i32();
+ expected_r -= actual_r = random_i32();
+ expected_g -= actual_g = random_i32();
+ expected_b -= actual_b = random_i32();
+ rgb -= rgbaint_t(actual_a, actual_r, actual_g, actual_b);
+ check_expected("rgbaint_t::operator-=");
+
+ // test offset subtraction
+ imm = random_i32();
+ expected_a -= imm;
+ expected_r -= imm;
+ expected_g -= imm;
+ expected_b -= imm;
+ rgb.sub_imm(imm);
+ check_expected("rgbaint_t::sub_imm");
+
+ // test immediate RGB subtraction
+ expected_a -= actual_a = random_i32();
+ expected_r -= actual_r = random_i32();
+ expected_g -= actual_g = random_i32();
+ expected_b -= actual_b = random_i32();
+ rgb.sub_imm_rgba(actual_a, actual_r, actual_g, actual_b);
+ check_expected("rgbaint_t::sub_imm_rgba");
+
+ // test reversed RGB subtraction
+ expected_a = (actual_a = random_i32()) - expected_a;
+ expected_r = (actual_r = random_i32()) - expected_r;
+ expected_g = (actual_g = random_i32()) - expected_g;
+ expected_b = (actual_b = random_i32()) - expected_b;
+ rgb.subr(rgbaint_t(actual_a, actual_r, actual_g, actual_b));
+ check_expected("rgbaint_t::subr");
+
+ // test reversed offset subtraction
+ imm = random_i32();
+ expected_a = imm - expected_a;
+ expected_r = imm - expected_r;
+ expected_g = imm - expected_g;
+ expected_b = imm - expected_b;
+ rgb.subr_imm(imm);
+ check_expected("rgbaint_t::subr_imm");
+
+ // test reversed immediate RGB subtraction
+ expected_a = (actual_a = random_i32()) - expected_a;
+ expected_r = (actual_r = random_i32()) - expected_r;
+ expected_g = (actual_g = random_i32()) - expected_g;
+ expected_b = (actual_b = random_i32()) - expected_b;
+ rgb.subr_imm_rgba(actual_a, actual_r, actual_g, actual_b);
+ check_expected("rgbaint_t::subr_imm_rgba");
+
+ // test RGB multiplication (method)
+ expected_a *= actual_a = random_i32();
+ expected_r *= actual_r = random_i32();
+ expected_g *= actual_g = random_i32();
+ expected_b *= actual_b = random_i32();
+ rgb.mul(rgbaint_t(actual_a, actual_r, actual_g, actual_b));
+ check_expected("rgbaint_t::mul");
+
+ // test RGB multiplication (operator)
+ expected_a *= actual_a = random_i32();
+ expected_r *= actual_r = random_i32();
+ expected_g *= actual_g = random_i32();
+ expected_b *= actual_b = random_i32();
+ rgb *= rgbaint_t(actual_a, actual_r, actual_g, actual_b);
+ check_expected("rgbaint_t::operator*=");
+
+ // test factor multiplication (method)
+ imm = random_i32();
+ expected_a *= imm;
+ expected_r *= imm;
+ expected_g *= imm;
+ expected_b *= imm;
+ rgb.mul_imm(imm);
+ check_expected("rgbaint_t::mul_imm");
+
+ // test factor multiplication (operator)
+ imm = random_i32();
+ expected_a *= imm;
+ expected_r *= imm;
+ expected_g *= imm;
+ expected_b *= imm;
+ rgb *= imm;
+ check_expected("rgbaint_t::operator*=");
+
+ // test immediate RGB multiplication
+ expected_a *= actual_a = random_i32();
+ expected_r *= actual_r = random_i32();
+ expected_g *= actual_g = random_i32();
+ expected_b *= actual_b = random_i32();
+ rgb.mul_imm_rgba(actual_a, actual_r, actual_g, actual_b);
+ check_expected("rgbaint_t::mul_imm_rgba");
+
+ // test RGB and not
+ expected_a &= ~(actual_a = random_i32());
+ expected_r &= ~(actual_r = random_i32());
+ expected_g &= ~(actual_g = random_i32());
+ expected_b &= ~(actual_b = random_i32());
+ rgb.andnot_reg(rgbaint_t(actual_a, actual_r, actual_g, actual_b));
+ check_expected("rgbaint_t::andnot_reg");
+
+ // test RGB or
+ expected_a |= actual_a = random_i32();
+ expected_r |= actual_r = random_i32();
+ expected_g |= actual_g = random_i32();
+ expected_b |= actual_b = random_i32();
+ rgb.or_reg(rgbaint_t(actual_a, actual_r, actual_g, actual_b));
+ check_expected("rgbaint_t::or_reg");
+
+ // test RGB and
+ expected_a &= actual_a = random_i32();
+ expected_r &= actual_r = random_i32();
+ expected_g &= actual_g = random_i32();
+ expected_b &= actual_b = random_i32();
+ rgb.and_reg(rgbaint_t(actual_a, actual_r, actual_g, actual_b));
+ check_expected("rgbaint_t::and_reg");
+
+ // test RGB xor
+ expected_a ^= actual_a = random_i32();
+ expected_r ^= actual_r = random_i32();
+ expected_g ^= actual_g = random_i32();
+ expected_b ^= actual_b = random_i32();
+ rgb.xor_reg(rgbaint_t(actual_a, actual_r, actual_g, actual_b));
+ check_expected("rgbaint_t::xor_reg");
+
+ // test uniform or
+ imm = random_i32();
+ expected_a |= imm;
+ expected_r |= imm;
+ expected_g |= imm;
+ expected_b |= imm;
+ rgb.or_imm(imm);
+ check_expected("rgbaint_t::or_imm");
+
+ // test uniform and
+ imm = random_i32();
+ expected_a &= imm;
+ expected_r &= imm;
+ expected_g &= imm;
+ expected_b &= imm;
+ rgb.and_imm(imm);
+ check_expected("rgbaint_t::and_imm");
+
+ // test uniform xor
+ imm = random_i32();
+ expected_a ^= imm;
+ expected_r ^= imm;
+ expected_g ^= imm;
+ expected_b ^= imm;
+ rgb.xor_imm(imm);
+ check_expected("rgbaint_t::xor_imm");
+
+ // test immediate RGB or
+ expected_a |= actual_a = random_i32();
+ expected_r |= actual_r = random_i32();
+ expected_g |= actual_g = random_i32();
+ expected_b |= actual_b = random_i32();
+ rgb.or_imm_rgba(actual_a, actual_r, actual_g, actual_b);
+ check_expected("rgbaint_t::or_imm_rgba");
+
+ // test immediate RGB and
+ expected_a &= actual_a = random_i32();
+ expected_r &= actual_r = random_i32();
+ expected_g &= actual_g = random_i32();
+ expected_b &= actual_b = random_i32();
+ rgb.and_imm_rgba(actual_a, actual_r, actual_g, actual_b);
+ check_expected("rgbaint_t::and_imm_rgba");
+
+ // test immediate RGB xor
+ expected_a ^= actual_a = random_i32();
+ expected_r ^= actual_r = random_i32();
+ expected_g ^= actual_g = random_i32();
+ expected_b ^= actual_b = random_i32();
+ rgb.xor_imm_rgba(actual_a, actual_r, actual_g, actual_b);
+ check_expected("rgbaint_t::xor_imm_rgba");
+
+ // test 8-bit get
+ expected_a = s32(u32(expected_a) & 0x00ff);
+ expected_r = s32(u32(expected_r) & 0x00ff);
+ expected_g = s32(u32(expected_g) & 0x00ff);
+ expected_b = s32(u32(expected_b) & 0x00ff);
+ actual_a = s32(u32(rgb.get_a()));
+ actual_r = s32(u32(rgb.get_r()));
+ actual_g = s32(u32(rgb.get_g()));
+ actual_b = s32(u32(rgb.get_b()));
+ if (actual_a != expected_a) osd_printf_error("Error testing rgbaint_t::get_a() = %d (expected %d)\n", actual_a, expected_a);
+ if (actual_r != expected_r) osd_printf_error("Error testing rgbaint_t::get_r() = %d (expected %d)\n", actual_r, expected_r);
+ if (actual_g != expected_g) osd_printf_error("Error testing rgbaint_t::get_g() = %d (expected %d)\n", actual_g, expected_g);
+ if (actual_b != expected_b) osd_printf_error("Error testing rgbaint_t::get_b() = %d (expected %d)\n", actual_b, expected_b);
+
+ // test set from packed RGBA
+ imm = random_i32();
+ expected_a = s32((u32(imm) >> 24) & 0x00ff);
+ expected_r = s32((u32(imm) >> 16) & 0x00ff);
+ expected_g = s32((u32(imm) >> 8) & 0x00ff);
+ expected_b = s32((u32(imm) >> 0) & 0x00ff);
+ rgb.set(u32(imm));
+ check_expected("rgbaint_t::set(u32)");
+
+ // while we have a value loaded that we know doesn't exceed 8-bit range, check the non-clamping convert-to-rgba
+ packed = rgb.to_rgba();
+ if (u32(imm) != u32(packed))
+ osd_printf_error("Error testing rgbaint_t::to_rgba() = %08x (expected %08x)\n", u32(packed), u32(imm));
+
+ // test construct from packed RGBA and assign
+ imm = random_i32();
+ expected_a = s32((u32(imm) >> 24) & 0x00ff);
+ expected_r = s32((u32(imm) >> 16) & 0x00ff);
+ expected_g = s32((u32(imm) >> 8) & 0x00ff);
+ expected_b = s32((u32(imm) >> 0) & 0x00ff);
+ rgb = rgbaint_t(u32(imm));
+ check_expected("rgbaint_t(u32)");
+
+ // while we have a value loaded that we know doesn't exceed 8-bit range, check the non-clamping convert-to-rgba
+ packed = rgb.to_rgba();
+ if (u32(imm) != u32(packed))
+ osd_printf_error("Error testing rgbaint_t::to_rgba() = %08x (expected %08x)\n", u32(packed), u32(imm));
+
+ // test set with rgb_t
+ packed = random_u32();
+ expected_a = s32(u32(packed.a()));
+ expected_r = s32(u32(packed.r()));
+ expected_g = s32(u32(packed.g()));
+ expected_b = s32(u32(packed.b()));
+ rgb.set(packed);
+ check_expected("rgbaint_t::set(rgba_t)");
+
+ // test construct with rgb_t
+ packed = random_u32();
+ expected_a = s32(u32(packed.a()));
+ expected_r = s32(u32(packed.r()));
+ expected_g = s32(u32(packed.g()));
+ expected_b = s32(u32(packed.b()));
+ rgb = rgbaint_t(packed);
+ check_expected("rgbaint_t::set(rgba_t)");
+
+ // test clamping convert-to-rgba with hand-crafted values to catch edge cases
+ rgb.set(std::numeric_limits<s32>::min(), -1, 0, 1);
+ packed = rgb.to_rgba_clamp();
+ if (u32(0x00000001) != u32(packed))
+ osd_printf_error("Error testing rgbaint_t::to_rgba_clamp() = %08x (expected 0x00000001)\n", u32(packed));
+ rgb.set(254, 255, 256, std::numeric_limits<s32>::max());
+ packed = rgb.to_rgba_clamp();
+ if (u32(0xfeffffff) != u32(packed))
+ osd_printf_error("Error testing rgbaint_t::to_rgba_clamp() = %08x (expected 0xfeffffff)\n", u32(packed));
+ rgb.set(std::numeric_limits<s32>::max(), std::numeric_limits<s32>::min(), 256, -1);
+ packed = rgb.to_rgba_clamp();
+ if (u32(0xff00ff00) != u32(packed))
+ osd_printf_error("Error testing rgbaint_t::to_rgba_clamp() = %08x (expected 0xff00ff00)\n", u32(packed));
+ rgb.set(0, 255, 1, 254);
+ packed = rgb.to_rgba_clamp();
+ if (u32(0x00ff01fe) != u32(packed))
+ osd_printf_error("Error testing rgbaint_t::to_rgba_clamp() = %08x (expected 0x00ff01fe)\n", u32(packed));
+
+ // test in-place clamping with hand-crafted values to catch edge cases
+ expected_a = 0;
+ expected_r = 0;
+ expected_g = 0;
+ expected_b = 1;
+ rgb.set(std::numeric_limits<s32>::min(), -1, 0, 1);
+ rgb.clamp_to_uint8();
+ check_expected("rgbaint_t::clamp_to_uint8");
+ expected_a = 254;
+ expected_r = 255;
+ expected_g = 255;
+ expected_b = 255;
+ rgb.set(254, 255, 256, std::numeric_limits<s32>::max());
+ rgb.clamp_to_uint8();
+ check_expected("rgbaint_t::clamp_to_uint8");
+ expected_a = 255;
+ expected_r = 0;
+ expected_g = 255;
+ expected_b = 0;
+ rgb.set(std::numeric_limits<s32>::max(), std::numeric_limits<s32>::min(), 256, -1);
+ rgb.clamp_to_uint8();
+ check_expected("rgbaint_t::clamp_to_uint8");
+ expected_a = 0;
+ expected_r = 255;
+ expected_g = 1;
+ expected_b = 254;
+ rgb.set(0, 255, 1, 254);
+ rgb.clamp_to_uint8();
+ check_expected("rgbaint_t::clamp_to_uint8");
+
+ // test shift left
+ expected_a = (actual_a = random_i32()) << 19;
+ expected_r = (actual_r = random_i32()) << 3;
+ expected_g = (actual_g = random_i32()) << 21;
+ expected_b = (actual_b = random_i32()) << 6;
+ rgb.set(actual_a, actual_r, actual_g, actual_b);
+ rgb.shl(rgbaint_t(19, 3, 21, 6));
+ check_expected("rgbaint_t::shl");
+
+ // test shift left immediate
+ expected_a = (actual_a = random_i32()) << 7;
+ expected_r = (actual_r = random_i32()) << 7;
+ expected_g = (actual_g = random_i32()) << 7;
+ expected_b = (actual_b = random_i32()) << 7;
+ rgb.set(actual_a, actual_r, actual_g, actual_b);
+ rgb.shl_imm(7);
+ check_expected("rgbaint_t::shl_imm");
+
+ // test logical shift right
+ expected_a = s32(u32(actual_a = random_i32()) >> 8);
+ expected_r = s32(u32(actual_r = random_i32()) >> 18);
+ expected_g = s32(u32(actual_g = random_i32()) >> 26);
+ expected_b = s32(u32(actual_b = random_i32()) >> 4);
+ rgb.set(actual_a, actual_r, actual_g, actual_b);
+ rgb.shr(rgbaint_t(8, 18, 26, 4));
+ check_expected("rgbaint_t::shr");
+
+ // test logical shift right with opposite signs
+ expected_a = s32(u32(actual_a = -actual_a) >> 21);
+ expected_r = s32(u32(actual_r = -actual_r) >> 13);
+ expected_g = s32(u32(actual_g = -actual_g) >> 11);
+ expected_b = s32(u32(actual_b = -actual_b) >> 17);
+ rgb.set(actual_a, actual_r, actual_g, actual_b);
+ rgb.shr(rgbaint_t(21, 13, 11, 17));
+ check_expected("rgbaint_t::shr");
+
+ // test logical shift right immediate
+ expected_a = s32(u32(actual_a = random_i32()) >> 5);
+ expected_r = s32(u32(actual_r = random_i32()) >> 5);
+ expected_g = s32(u32(actual_g = random_i32()) >> 5);
+ expected_b = s32(u32(actual_b = random_i32()) >> 5);
+ rgb.set(actual_a, actual_r, actual_g, actual_b);
+ rgb.shr_imm(5);
+ check_expected("rgbaint_t::shr_imm");
+
+ // test logical shift right immediate with opposite signs
+ expected_a = s32(u32(actual_a = -actual_a) >> 15);
+ expected_r = s32(u32(actual_r = -actual_r) >> 15);
+ expected_g = s32(u32(actual_g = -actual_g) >> 15);
+ expected_b = s32(u32(actual_b = -actual_b) >> 15);
+ rgb.set(actual_a, actual_r, actual_g, actual_b);
+ rgb.shr_imm(15);
+ check_expected("rgbaint_t::shr_imm");
+
+ // test arithmetic shift right
+ expected_a = (actual_a = random_i32()) >> 16;
+ expected_r = (actual_r = random_i32()) >> 20;
+ expected_g = (actual_g = random_i32()) >> 14;
+ expected_b = (actual_b = random_i32()) >> 2;
+ rgb.set(actual_a, actual_r, actual_g, actual_b);
+ rgb.sra(rgbaint_t(16, 20, 14, 2));
+ check_expected("rgbaint_t::sra");
+
+ // test arithmetic shift right with opposite signs
+ expected_a = (actual_a = -actual_a) >> 1;
+ expected_r = (actual_r = -actual_r) >> 29;
+ expected_g = (actual_g = -actual_g) >> 10;
+ expected_b = (actual_b = -actual_b) >> 22;
+ rgb.set(actual_a, actual_r, actual_g, actual_b);
+ rgb.sra(rgbaint_t(1, 29, 10, 22));
+ check_expected("rgbaint_t::sra");
+
+ // test arithmetic shift right immediate (method)
+ expected_a = (actual_a = random_i32()) >> 12;
+ expected_r = (actual_r = random_i32()) >> 12;
+ expected_g = (actual_g = random_i32()) >> 12;
+ expected_b = (actual_b = random_i32()) >> 12;
+ rgb.set(actual_a, actual_r, actual_g, actual_b);
+ rgb.sra_imm(12);
+ check_expected("rgbaint_t::sra_imm");
+
+ // test arithmetic shift right immediate with opposite signs (method)
+ expected_a = (actual_a = -actual_a) >> 9;
+ expected_r = (actual_r = -actual_r) >> 9;
+ expected_g = (actual_g = -actual_g) >> 9;
+ expected_b = (actual_b = -actual_b) >> 9;
+ rgb.set(actual_a, actual_r, actual_g, actual_b);
+ rgb.sra_imm(9);
+ check_expected("rgbaint_t::sra_imm");
+
+ // test arithmetic shift right immediate (operator)
+ expected_a = (actual_a = random_i32()) >> 7;
+ expected_r = (actual_r = random_i32()) >> 7;
+ expected_g = (actual_g = random_i32()) >> 7;
+ expected_b = (actual_b = random_i32()) >> 7;
+ rgb.set(actual_a, actual_r, actual_g, actual_b);
+ rgb >>= 7;
+ check_expected("rgbaint_t::operator>>=");
+
+ // test arithmetic shift right immediate with opposite signs (operator)
+ expected_a = (actual_a = -actual_a) >> 11;
+ expected_r = (actual_r = -actual_r) >> 11;
+ expected_g = (actual_g = -actual_g) >> 11;
+ expected_b = (actual_b = -actual_b) >> 11;
+ rgb.set(actual_a, actual_r, actual_g, actual_b);
+ rgb >>= 11;
+ check_expected("rgbaint_t::operator>>=");
+
+ // test RGB equality comparison
+ actual_a = random_i32_nolimit();
+ actual_r = random_i32_nolimit();
+ actual_g = random_i32_nolimit();
+ actual_b = random_i32_nolimit();
+ expected_a = ~s32(0);
+ expected_r = 0;
+ expected_g = 0;
+ expected_b = 0;
+ rgb.set(actual_a, actual_r, actual_g, actual_b);
+ rgb.cmpeq(rgbaint_t(actual_a, actual_r - 1, actual_g + 1, std::numeric_limits<s32>::min()));
+ check_expected("rgbaint_t::cmpeq");
+ expected_a = 0;
+ expected_r = ~s32(0);
+ expected_g = 0;
+ expected_b = 0;
+ rgb.set(actual_a, actual_r, actual_g, actual_b);
+ rgb.cmpeq(rgbaint_t(std::numeric_limits<s32>::max(), actual_r, actual_g - 1, actual_b + 1));
+ check_expected("rgbaint_t::cmpeq");
+
+ // test immediate equality comparison
+ actual_a = random_i32_nolimit();
+ actual_r = random_i32_nolimit();
+ actual_g = random_i32_nolimit();
+ actual_b = random_i32_nolimit();
+ expected_a = ~s32(0);
+ expected_r = (actual_r == actual_a) ? ~s32(0) : 0;
+ expected_g = (actual_g == actual_a) ? ~s32(0) : 0;
+ expected_b = (actual_b == actual_a) ? ~s32(0) : 0;
+ rgb.set(actual_a, actual_r, actual_g, actual_b);
+ rgb.cmpeq_imm(actual_a);
+ check_expected("rgbaint_t::cmpeq_imm");
+ expected_a = (actual_a == actual_r) ? ~s32(0) : 0;
+ expected_r = ~s32(0);
+ expected_g = (actual_g == actual_r) ? ~s32(0) : 0;
+ expected_b = (actual_b == actual_r) ? ~s32(0) : 0;
+ rgb.set(actual_a, actual_r, actual_g, actual_b);
+ rgb.cmpeq_imm(actual_r);
+ check_expected("rgbaint_t::cmpeq_imm");
+ expected_a = (actual_a == actual_g) ? ~s32(0) : 0;
+ expected_r = (actual_r == actual_g) ? ~s32(0) : 0;
+ expected_g = ~s32(0);
+ expected_b = (actual_b == actual_g) ? ~s32(0) : 0;
+ rgb.set(actual_a, actual_r, actual_g, actual_b);
+ rgb.cmpeq_imm(actual_g);
+ check_expected("rgbaint_t::cmpeq_imm");
+ expected_a = (actual_a == actual_b) ? ~s32(0) : 0;
+ expected_r = (actual_r == actual_b) ? ~s32(0) : 0;
+ expected_g = (actual_g == actual_b) ? ~s32(0) : 0;
+ expected_b = ~s32(0);
+ rgb.set(actual_a, actual_r, actual_g, actual_b);
+ rgb.cmpeq_imm(actual_b);
+ check_expected("rgbaint_t::cmpeq_imm");
+ expected_a = 0;
+ expected_r = 0;
+ expected_g = 0;
+ expected_b = 0;
+ rgb.set(actual_a, actual_r, actual_g, actual_b);
+ rgb.cmpeq_imm(std::numeric_limits<s32>::min());
+ check_expected("rgbaint_t::cmpeq_imm");
+ expected_a = !actual_a ? ~s32(0) : 0;
+ expected_r = !actual_r ? ~s32(0) : 0;
+ expected_g = !actual_g ? ~s32(0) : 0;
+ expected_b = !actual_b ? ~s32(0) : 0;
+ rgb.set(actual_a, actual_r, actual_g, actual_b);
+ rgb.cmpeq_imm(0);
+ check_expected("rgbaint_t::cmpeq_imm");
+ expected_a = 0;
+ expected_r = 0;
+ expected_g = 0;
+ expected_b = 0;
+ rgb.set(actual_a, actual_r, actual_g, actual_b);
+ rgb.cmpeq_imm(std::numeric_limits<s32>::max());
+ check_expected("rgbaint_t::cmpeq_imm");
+
+ // test immediate RGB equality comparison
+ actual_a = random_i32_nolimit();
+ actual_r = random_i32_nolimit();
+ actual_g = random_i32_nolimit();
+ actual_b = random_i32_nolimit();
+ expected_a = 0;
+ expected_r = 0;
+ expected_g = ~s32(0);
+ expected_b = 0;
+ rgb.set(actual_a, actual_r, actual_g, actual_b);
+ rgb.cmpeq_imm_rgba(std::numeric_limits<s32>::min(), std::numeric_limits<s32>::max(), actual_g, actual_b - 1);
+ check_expected("rgbaint_t::cmpeq_imm_rgba");
+ expected_a = 0;
+ expected_r = 0;
+ expected_g = 0;
+ expected_b = ~s32(0);
+ rgb.set(actual_a, actual_r, actual_g, actual_b);
+ rgb.cmpeq_imm_rgba(actual_a + 1, std::numeric_limits<s32>::min(), std::numeric_limits<s32>::max(), actual_b);
+ check_expected("rgbaint_t::cmpeq_imm_rgba");
+
+ // test RGB greater than comparison
+ actual_a = random_i32_nolimit();
+ actual_r = random_i32_nolimit();
+ actual_g = random_i32_nolimit();
+ actual_b = random_i32_nolimit();
+ expected_a = 0;
+ expected_r = ~s32(0);
+ expected_g = 0;
+ expected_b = ~s32(0);
+ rgb.set(actual_a, actual_r, actual_g, actual_b);
+ rgb.cmpgt(rgbaint_t(actual_a, actual_r - 1, actual_g + 1, std::numeric_limits<s32>::min()));
+ check_expected("rgbaint_t::cmpgt");
+ expected_a = 0;
+ expected_r = 0;
+ expected_g = ~s32(0);
+ expected_b = 0;
+ rgb.set(actual_a, actual_r, actual_g, actual_b);
+ rgb.cmpgt(rgbaint_t(std::numeric_limits<s32>::max(), actual_r, actual_g - 1, actual_b + 1));
+ check_expected("rgbaint_t::cmpgt");
+
+ // test immediate greater than comparison
+ actual_a = random_i32_nolimit();
+ actual_r = random_i32_nolimit();
+ actual_g = random_i32_nolimit();
+ actual_b = random_i32_nolimit();
+ expected_a = 0;
+ expected_r = (actual_r > actual_a) ? ~s32(0) : 0;
+ expected_g = (actual_g > actual_a) ? ~s32(0) : 0;
+ expected_b = (actual_b > actual_a) ? ~s32(0) : 0;
+ rgb.set(actual_a, actual_r, actual_g, actual_b);
+ rgb.cmpgt_imm(actual_a);
+ check_expected("rgbaint_t::cmpgt_imm");
+ expected_a = (actual_a > actual_r) ? ~s32(0) : 0;
+ expected_r = 0;
+ expected_g = (actual_g > actual_r) ? ~s32(0) : 0;
+ expected_b = (actual_b > actual_r) ? ~s32(0) : 0;
+ rgb.set(actual_a, actual_r, actual_g, actual_b);
+ rgb.cmpgt_imm(actual_r);
+ check_expected("rgbaint_t::cmpgt_imm");
+ expected_a = (actual_a > actual_g) ? ~s32(0) : 0;
+ expected_r = (actual_r > actual_g) ? ~s32(0) : 0;
+ expected_g =0;
+ expected_b = (actual_b > actual_g) ? ~s32(0) : 0;
+ rgb.set(actual_a, actual_r, actual_g, actual_b);
+ rgb.cmpgt_imm(actual_g);
+ check_expected("rgbaint_t::cmpgt_imm");
+ expected_a = (actual_a > actual_b) ? ~s32(0) : 0;
+ expected_r = (actual_r > actual_b) ? ~s32(0) : 0;
+ expected_g = (actual_g > actual_b) ? ~s32(0) : 0;
+ expected_b = 0;
+ rgb.set(actual_a, actual_r, actual_g, actual_b);
+ rgb.cmpgt_imm(actual_b);
+ check_expected("rgbaint_t::cmpgt_imm");
+ expected_a = ~s32(0);
+ expected_r = ~s32(0);
+ expected_g = ~s32(0);
+ expected_b = ~s32(0);
+ rgb.set(actual_a, actual_r, actual_g, actual_b);
+ rgb.cmpgt_imm(std::numeric_limits<s32>::min());
+ check_expected("rgbaint_t::cmpgt_imm");
+ expected_a = (actual_a > 0) ? ~s32(0) : 0;
+ expected_r = (actual_r > 0) ? ~s32(0) : 0;
+ expected_g = (actual_g > 0) ? ~s32(0) : 0;
+ expected_b = (actual_b > 0) ? ~s32(0) : 0;
+ rgb.set(actual_a, actual_r, actual_g, actual_b);
+ rgb.cmpgt_imm(0);
+ check_expected("rgbaint_t::cmpgt_imm");
+ expected_a = 0;
+ expected_r = 0;
+ expected_g = 0;
+ expected_b = 0;
+ rgb.set(actual_a, actual_r, actual_g, actual_b);
+ rgb.cmpgt_imm(std::numeric_limits<s32>::max());
+ check_expected("rgbaint_t::cmpgt_imm");
+
+ // test immediate RGB greater than comparison
+ actual_a = random_i32_nolimit();
+ actual_r = random_i32_nolimit();
+ actual_g = random_i32_nolimit();
+ actual_b = random_i32_nolimit();
+ expected_a = ~s32(0);
+ expected_r = 0;
+ expected_g = 0;
+ expected_b = ~s32(0);
+ rgb.set(actual_a, actual_r, actual_g, actual_b);
+ rgb.cmpgt_imm_rgba(std::numeric_limits<s32>::min(), std::numeric_limits<s32>::max(), actual_g, actual_b - 1);
+ check_expected("rgbaint_t::cmpgt_imm_rgba");
+ expected_a = 0;
+ expected_r = ~s32(0);
+ expected_g = 0;
+ expected_b = 0;
+ rgb.set(actual_a, actual_r, actual_g, actual_b);
+ rgb.cmpgt_imm_rgba(actual_a + 1, std::numeric_limits<s32>::min(), std::numeric_limits<s32>::max(), actual_b);
+ check_expected("rgbaint_t::cmpgt_imm_rgba");
+
+ // test RGB less than comparison
+ actual_a = random_i32_nolimit();
+ actual_r = random_i32_nolimit();
+ actual_g = random_i32_nolimit();
+ actual_b = random_i32_nolimit();
+ expected_a = 0;
+ expected_r = 0;
+ expected_g = ~s32(0);
+ expected_b = 0;
+ rgb.set(actual_a, actual_r, actual_g, actual_b);
+ rgb.cmplt(rgbaint_t(actual_a, actual_r - 1, actual_g + 1, std::numeric_limits<s32>::min()));
+ check_expected("rgbaint_t::cmplt");
+ expected_a = ~s32(0);
+ expected_r = 0;
+ expected_g = 0;
+ expected_b = ~s32(0);
+ rgb.set(actual_a, actual_r, actual_g, actual_b);
+ rgb.cmplt(rgbaint_t(std::numeric_limits<s32>::max(), actual_r, actual_g - 1, actual_b + 1));
+ check_expected("rgbaint_t::cmplt");
+
+ // test immediate less than comparison
+ actual_a = random_i32_nolimit();
+ actual_r = random_i32_nolimit();
+ actual_g = random_i32_nolimit();
+ actual_b = random_i32_nolimit();
+ expected_a = 0;
+ expected_r = (actual_r < actual_a) ? ~s32(0) : 0;
+ expected_g = (actual_g < actual_a) ? ~s32(0) : 0;
+ expected_b = (actual_b < actual_a) ? ~s32(0) : 0;
+ rgb.set(actual_a, actual_r, actual_g, actual_b);
+ rgb.cmplt_imm(actual_a);
+ check_expected("rgbaint_t::cmplt_imm");
+ expected_a = (actual_a < actual_r) ? ~s32(0) : 0;
+ expected_r = 0;
+ expected_g = (actual_g < actual_r) ? ~s32(0) : 0;
+ expected_b = (actual_b < actual_r) ? ~s32(0) : 0;
+ rgb.set(actual_a, actual_r, actual_g, actual_b);
+ rgb.cmplt_imm(actual_r);
+ check_expected("rgbaint_t::cmplt_imm");
+ expected_a = (actual_a < actual_g) ? ~s32(0) : 0;
+ expected_r = (actual_r < actual_g) ? ~s32(0) : 0;
+ expected_g =0;
+ expected_b = (actual_b < actual_g) ? ~s32(0) : 0;
+ rgb.set(actual_a, actual_r, actual_g, actual_b);
+ rgb.cmplt_imm(actual_g);
+ check_expected("rgbaint_t::cmplt_imm");
+ expected_a = (actual_a < actual_b) ? ~s32(0) : 0;
+ expected_r = (actual_r < actual_b) ? ~s32(0) : 0;
+ expected_g = (actual_g < actual_b) ? ~s32(0) : 0;
+ expected_b = 0;
+ rgb.set(actual_a, actual_r, actual_g, actual_b);
+ rgb.cmplt_imm(actual_b);
+ check_expected("rgbaint_t::cmplt_imm");
+ expected_a = 0;
+ expected_r = 0;
+ expected_g = 0;
+ expected_b = 0;
+ rgb.set(actual_a, actual_r, actual_g, actual_b);
+ rgb.cmplt_imm(std::numeric_limits<s32>::min());
+ check_expected("rgbaint_t::cmplt_imm");
+ expected_a = (actual_a < 0) ? ~s32(0) : 0;
+ expected_r = (actual_r < 0) ? ~s32(0) : 0;
+ expected_g = (actual_g < 0) ? ~s32(0) : 0;
+ expected_b = (actual_b < 0) ? ~s32(0) : 0;
+ rgb.set(actual_a, actual_r, actual_g, actual_b);
+ rgb.cmplt_imm(0);
+ check_expected("rgbaint_t::cmplt_imm");
+ expected_a = ~s32(0);
+ expected_r = ~s32(0);
+ expected_g = ~s32(0);
+ expected_b = ~s32(0);
+ rgb.set(actual_a, actual_r, actual_g, actual_b);
+ rgb.cmplt_imm(std::numeric_limits<s32>::max());
+ check_expected("rgbaint_t::cmplt_imm");
+
+ // test immediate RGB less than comparison
+ actual_a = random_i32_nolimit();
+ actual_r = random_i32_nolimit();
+ actual_g = random_i32_nolimit();
+ actual_b = random_i32_nolimit();
+ expected_a = 0;
+ expected_r = ~s32(0);
+ expected_g = 0;
+ expected_b = 0;
+ rgb.set(actual_a, actual_r, actual_g, actual_b);
+ rgb.cmplt_imm_rgba(std::numeric_limits<s32>::min(), std::numeric_limits<s32>::max(), actual_g, actual_b - 1);
+ check_expected("rgbaint_t::cmplt_imm_rgba");
+ expected_a = ~s32(0);
+ expected_r = 0;
+ expected_g = ~s32(0);
+ expected_b = 0;
+ rgb.set(actual_a, actual_r, actual_g, actual_b);
+ rgb.cmplt_imm_rgba(actual_a + 1, std::numeric_limits<s32>::min(), std::numeric_limits<s32>::max(), actual_b);
+ check_expected("rgbaint_t::cmplt_imm_rgba");
+}
+
+
+//-------------------------------------------------
+// validate_driver - validate basic driver
+// information
+//-------------------------------------------------
+
+void validity_checker::validate_driver()
+{
+ // check for duplicate names
+ if (!m_names_map.insert(std::make_pair(m_current_driver->name, m_current_driver)).second)
+ {
+ const game_driver *match = m_names_map.find(m_current_driver->name)->second;
+ osd_printf_error("Driver name is a duplicate of %s(%s)\n", core_filename_extract_base(match->source_file).c_str(), match->name);
+ }
+
+ // check for duplicate descriptions
+ if (!m_descriptions_map.insert(std::make_pair(m_current_driver->description, m_current_driver)).second)
+ {
+ const game_driver *match = m_descriptions_map.find(m_current_driver->description)->second;
+ osd_printf_error("Driver description is a duplicate of %s(%s)\n", core_filename_extract_base(match->source_file).c_str(), match->name);
+ }
+
+ // 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 & MACHINE_IS_BIOS_ROOT))
+ is_clone = false;
+
+ // if we have at least 100 drivers, validate the clone
+ // (100 is arbitrary, but tries to avoid tiny.mak dependencies)
+ if (driver_list::total() > 100 && clone_of == -1 && is_clone)
+ osd_printf_error("Driver is a clone of nonexistent driver %s\n", m_current_driver->parent);
+
+ // look for recursive cloning
+ if (clone_of != -1 && &m_drivlist.driver(clone_of) == m_current_driver)
+ osd_printf_error("Driver is a clone of itself\n");
+
+ // look for clones that are too deep
+ if (clone_of != -1 && (clone_of = m_drivlist.non_bios_clone(clone_of)) != -1)
+ osd_printf_error("Driver is a clone of a clone\n");
+
+ // make sure the driver name is not too long
+ if (!is_clone && strlen(m_current_driver->name) > 16)
+ osd_printf_error("Parent driver name must be 16 characters or less\n");
+ if (is_clone && strlen(m_current_driver->name) > 16)
+ osd_printf_error("Clone driver name must be 16 characters or less\n");
+
+ // make sure the driver name doesn't contain invalid characters
+ for (const char *s = m_current_driver->name; *s != 0; s++)
+ if (((*s < '0') || (*s > '9')) && ((*s < 'a') || (*s > 'z')) && (*s != '_'))
+ {
+ osd_printf_error("Driver name contains invalid characters\n");
+ break;
+ }
+
+ // make sure the year is only digits, '?' or '+'
+ for (const char *s = m_current_driver->year; *s != 0; s++)
+ if (!isdigit(u8(*s)) && *s != '?' && *s != '+')
+ {
+ osd_printf_error("Driver has an invalid year '%s'\n", m_current_driver->year);
+ break;
+ }
+
+ // normalize driver->compatible_with
+ const char *compatible_with = m_current_driver->compatible_with;
+ if (compatible_with != nullptr && strcmp(compatible_with, "0") == 0)
+ compatible_with = nullptr;
+
+ // check for this driver being compatible with a non-existant driver
+ if (compatible_with != nullptr && m_drivlist.find(m_current_driver->compatible_with) == -1)
+ osd_printf_error("Driver is listed as compatible with nonexistent driver %s\n", m_current_driver->compatible_with);
+
+ // check for clone_of and compatible_with being specified at the same time
+ if (m_drivlist.clone(*m_current_driver) != -1 && compatible_with != nullptr)
+ osd_printf_error("Driver cannot be both a clone and listed as compatible with another system\n");
+
+ // find any recursive dependencies on the current driver
+ for (int other_drv = m_drivlist.compatible_with(*m_current_driver); other_drv != -1; other_drv = m_drivlist.compatible_with(other_drv))
+ if (m_current_driver == &m_drivlist.driver(other_drv))
+ {
+ osd_printf_error("Driver is recursively compatible with itself\n");
+ break;
+ }
+
+ // make sure sound-less drivers are flagged
+ sound_interface_iterator iter(m_current_config->root_device());
+ if ((m_current_driver->flags & MACHINE_IS_BIOS_ROOT) == 0 && iter.first() == nullptr && (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");
+}
+
+
+//-------------------------------------------------
+// validate_roms - validate ROM definitions
+//-------------------------------------------------
+
+void validity_checker::validate_roms()
+{
+ // iterate, starting with the driver's ROMs and continuing with device ROMs
+ for (device_t &device : device_iterator(m_current_config->root_device()))
+ {
+ // track the current device
+ m_current_device = &device;
+
+ // scan the ROM entries for this device
+ const char *last_region_name = "???";
+ const char *last_name = "???";
+ u32 current_length = 0;
+ int items_since_region = 1;
+ int last_bios = 0;
+ int total_files = 0;
+ for (const rom_entry *romp = rom_first_region(device); romp != nullptr && !ROMENTRY_ISEND(romp); romp++)
+ {
+ // if this is a region, make sure it's valid, and record the length
+ if (ROMENTRY_ISREGION(romp))
+ {
+ // if we haven't seen any items since the last region, print a warning
+ if (items_since_region == 0)
+ osd_printf_warning("Empty ROM region '%s' (warning)\n", last_region_name);
+
+ // reset our region tracking states
+ const char *basetag = ROMREGION_GETTAG(romp);
+ items_since_region = (ROMREGION_ISERASE(romp) || ROMREGION_ISDISKDATA(romp)) ? 1 : 0;
+ last_region_name = basetag;
+
+ // check for a valid tag
+ if (basetag == nullptr)
+ {
+ osd_printf_error("ROM_REGION tag with nullptr name\n");
+ continue;
+ }
+
+ // validate the base tag
+ validate_tag(basetag);
+
+ // generate the full tag
+ std::string fulltag = rom_region_name(device, romp);
+
+ // attempt to add it to the map, reporting duplicates as errors
+ current_length = ROMREGION_GETLENGTH(romp);
+ if (!m_region_map.insert(std::make_pair(fulltag, current_length)).second)
+ osd_printf_error("Multiple ROM_REGIONs with the same tag '%s' defined\n", fulltag.c_str());
+ }
+
+ // If this is a system bios, make sure it is using the next available bios number
+ else if (ROMENTRY_ISSYSTEM_BIOS(romp))
+ {
+ int bios_flags = ROM_GETBIOSFLAGS(romp);
+ if (bios_flags != last_bios + 1)
+ osd_printf_error("Non-sequential bios %s (specified as %d, expected to be %d)\n", ROM_GETNAME(romp), bios_flags, last_bios + 1);
+ last_bios = bios_flags;
+ }
+
+ // if this is a file, make sure it is properly formatted
+ else if (ROMENTRY_ISFILE(romp))
+ {
+ // track the last filename we found
+ last_name = ROM_GETNAME(romp);
+ total_files++;
+
+ // make sure the hash is valid
+ util::hash_collection hashes;
+ if (!hashes.from_internal_string(ROM_GETHASHDATA(romp)))
+ osd_printf_error("ROM '%s' has an invalid hash string '%s'\n", last_name, ROM_GETHASHDATA(romp));
+ }
+
+ // for any non-region ending entries, make sure they don't extend past the end
+ if (!ROMENTRY_ISREGIONEND(romp) && current_length > 0 && !ROMENTRY_ISIGNORE(romp)) // HBMAME
+ {
+ items_since_region++;
+ if (ROM_GETOFFSET(romp) + ROM_GETLENGTH(romp) > current_length)
+ osd_printf_error("ROM '%s' extends past the defined memory region\n", last_name);
+ }
+ }
+
+ // final check for empty regions
+ if (items_since_region == 0)
+ osd_printf_warning("Empty ROM region '%s' (warning)\n", last_region_name);
+
+
+ // reset the current device
+ m_current_device = nullptr;
+ }
+}
+
+
+//-------------------------------------------------
+// validate_analog_input_field - validate an
+// analog input field
+//-------------------------------------------------
+
+void validity_checker::validate_analog_input_field(ioport_field &field)
+{
+ // analog ports must have a valid sensitivity
+ if (field.sensitivity() == 0)
+ osd_printf_error("Analog port with zero sensitivity\n");
+
+ // check that the default falls in the bitmask range
+ if (field.defvalue() & ~field.mask())
+ osd_printf_error("Analog port with a default value (%X) out of the bitmask range (%X)\n", field.defvalue(), field.mask());
+
+ // tests for positional devices
+ if (field.type() == IPT_POSITIONAL || field.type() == IPT_POSITIONAL_V)
+ {
+ int shift;
+ for (shift = 0; shift <= 31 && (~field.mask() & (1 << shift)) != 0; shift++) { }
+
+ // convert the positional max value to be in the bitmask for testing
+ //s32 analog_max = field.maxval();
+ //analog_max = (analog_max - 1) << shift;
+
+ // positional port size must fit in bits used
+ if ((field.mask() >> shift) + 1 < field.maxval())
+ osd_printf_error("Analog port with a positional port size bigger then the mask size\n");
+ }
+
+ // tests for absolute devices
+ else if (field.type() > IPT_ANALOG_ABSOLUTE_FIRST && field.type() < IPT_ANALOG_ABSOLUTE_LAST)
+ {
+ // adjust for signed values
+ s32 default_value = field.defvalue();
+ s32 analog_min = field.minval();
+ s32 analog_max = field.maxval();
+ if (analog_min > analog_max)
+ {
+ analog_min = -analog_min;
+ if (default_value > analog_max)
+ default_value = -default_value;
+ }
+
+ // check that the default falls in the MINMAX range
+ if (default_value < analog_min || default_value > analog_max)
+ osd_printf_error("Analog port with a default value (%X) out of PORT_MINMAX range (%X-%X)\n", field.defvalue(), field.minval(), field.maxval());
+
+ // check that the MINMAX falls in the bitmask range
+ // we use the unadjusted min for testing
+ if (field.minval() & ~field.mask() || analog_max & ~field.mask())
+ osd_printf_error("Analog port with a PORT_MINMAX (%X-%X) value out of the bitmask range (%X)\n", field.minval(), field.maxval(), field.mask());
+
+ // absolute analog ports do not use PORT_RESET
+ if (field.analog_reset())
+ osd_printf_error("Absolute analog port using PORT_RESET\n");
+
+ // absolute analog ports do not use PORT_WRAPS
+ if (field.analog_wraps())
+ osd_printf_error("Absolute analog port using PORT_WRAPS\n");
+ }
+
+ // tests for non IPT_POSITIONAL relative devices
+ else
+ {
+ // relative devices do not use PORT_MINMAX
+ if (field.minval() != 0 || field.maxval() != field.mask())
+ osd_printf_error("Relative port using PORT_MINMAX\n");
+
+ // relative devices do not use a default value
+ // the counter is at 0 on power up
+ if (field.defvalue() != 0)
+ osd_printf_error("Relative port using non-0 default value\n");
+
+ // relative analog ports do not use PORT_WRAPS
+ if (field.analog_wraps())
+ osd_printf_error("Absolute analog port using PORT_WRAPS\n");
+ }
+}
+
+
+//-------------------------------------------------
+// validate_dip_settings - validate a DIP switch
+// setting
+//-------------------------------------------------
+
+void validity_checker::validate_dip_settings(ioport_field &field)
+{
+ const char *demo_sounds = ioport_string_from_index(INPUT_STRING_Demo_Sounds);
+ const char *flipscreen = ioport_string_from_index(INPUT_STRING_Flip_Screen);
+ u8 coin_list[__input_string_coinage_end + 1 - __input_string_coinage_start] = { 0 };
+ bool coin_error = false;
+
+ // iterate through the settings
+ for (ioport_setting &setting : field.settings())
+ {
+ // note any coinage strings
+ int strindex = get_defstr_index(setting.name());
+ if (strindex >= __input_string_coinage_start && strindex <= __input_string_coinage_end)
+ coin_list[strindex - __input_string_coinage_start] = 1;
+
+ // make sure demo sounds default to on
+ if (field.name() == demo_sounds && strindex == INPUT_STRING_On && field.defvalue() != setting.value())
+ osd_printf_error("Demo Sounds must default to On\n");
+
+ // check for bad demo sounds options
+ if (field.name() == demo_sounds && (strindex == INPUT_STRING_Yes || strindex == INPUT_STRING_No))
+ osd_printf_error("Demo Sounds option must be Off/On, not %s\n", setting.name());
+
+ // check for bad flip screen options
+ if (field.name() == flipscreen && (strindex == INPUT_STRING_Yes || strindex == INPUT_STRING_No))
+ osd_printf_error("Flip Screen option must be Off/On, not %s\n", setting.name());
+
+ // if we have a neighbor, compare ourselves to him
+ if (setting.next() != nullptr)
+ {
+ // check for inverted off/on dispswitch order
+ int next_strindex = get_defstr_index(setting.next()->name(), true);
+ if (strindex == INPUT_STRING_On && next_strindex == INPUT_STRING_Off)
+ osd_printf_error("%s option must have Off/On options in the order: Off, On\n", field.name());
+
+ // check for inverted yes/no dispswitch order
+ else if (strindex == INPUT_STRING_Yes && next_strindex == INPUT_STRING_No)
+ osd_printf_error("%s option must have Yes/No options in the order: No, Yes\n", field.name());
+
+ // check for inverted upright/cocktail dispswitch order
+ else if (strindex == INPUT_STRING_Cocktail && next_strindex == INPUT_STRING_Upright)
+ osd_printf_error("%s option must have Upright/Cocktail options in the order: Upright, Cocktail\n", field.name());
+
+ // check for proper coin ordering
+ else if (strindex >= __input_string_coinage_start && strindex <= __input_string_coinage_end && next_strindex >= __input_string_coinage_start && next_strindex <= __input_string_coinage_end &&
+ strindex >= next_strindex && setting.condition() == setting.next()->condition())
+ {
+ osd_printf_error("%s option has unsorted coinage %s > %s\n", field.name(), setting.name(), setting.next()->name());
+ coin_error = true;
+ }
+ }
+ }
+
+ // if we have a coin error, demonstrate the correct way
+ if (coin_error)
+ {
+ output_via_delegate(OSD_OUTPUT_CHANNEL_ERROR, " Note proper coin sort order should be:\n");
+ for (int entry = 0; entry < ARRAY_LENGTH(coin_list); entry++)
+ if (coin_list[entry])
+ output_via_delegate(OSD_OUTPUT_CHANNEL_ERROR, " %s\n", ioport_string_from_index(__input_string_coinage_start + entry));
+ }
+}
+
+
+//-------------------------------------------------
+// validate_condition - validate a condition
+// stored within an ioport field or setting
+//-------------------------------------------------
+
+void validity_checker::validate_condition(ioport_condition &condition, device_t &device, std::unordered_set<std::string> &port_map)
+{
+ // resolve the tag
+ // then find a matching port
+ if (port_map.find(device.subtag(condition.tag())) == port_map.end())
+ osd_printf_error("Condition referencing non-existent ioport tag '%s'\n", condition.tag());
+}
+
+
+//-------------------------------------------------
+// validate_inputs - validate input configuration
+//-------------------------------------------------
+
+void validity_checker::validate_inputs()
+{
+ std::unordered_set<std::string> port_map;
+
+ // iterate over devices
+ for (device_t &device : device_iterator(m_current_config->root_device()))
+ {
+ // see if this device has ports; if not continue
+ if (device.input_ports() == nullptr)
+ continue;
+
+ // track the current device
+ m_current_device = &device;
+
+ // allocate the input ports
+ ioport_list portlist;
+ std::string errorbuf;
+ portlist.append(device, errorbuf);
+
+ // report any errors during construction
+ if (!errorbuf.empty())
+ osd_printf_error("I/O port error during construction:\n%s\n", errorbuf.c_str());
+
+ // do a first pass over ports to add their names and find duplicates
+ for (auto &port : portlist)
+ if (!port_map.insert(port.second->tag()).second)
+ osd_printf_error("Multiple I/O ports with the same tag '%s' defined\n", port.second->tag());
+
+ // iterate over ports
+ for (auto &port : portlist)
+ {
+ m_current_ioport = port.second->tag();
+
+ // iterate through the fields on this port
+ for (ioport_field &field : port.second->fields())
+ {
+ // verify analog inputs
+ if (field.is_analog())
+ validate_analog_input_field(field);
+
+ // look for invalid (0) types which should be mapped to IPT_OTHER
+ if (field.type() == IPT_INVALID)
+ osd_printf_error("Field has an invalid type (0); use IPT_OTHER instead\n");
+
+ // verify dip switches
+ if (field.type() == IPT_DIPSWITCH)
+ {
+ // dip switch fields must have a specific name
+ if (field.specific_name() == nullptr)
+ osd_printf_error("DIP switch has no specific name\n");
+
+ // verify the settings list
+ validate_dip_settings(field);
+ }
+
+ // verify config settings
+ if (field.type() == IPT_CONFIG)
+ {
+ // config fields must have a specific name
+ if (field.specific_name() == nullptr)
+ osd_printf_error("Config switch has no specific name\n");
+ }
+
+ // verify names
+ const char *name = field.specific_name();
+ if (name != nullptr)
+ {
+ // check for empty string
+ if (name[0] == 0)
+ osd_printf_error("Field name is an empty string\n");
+
+ // check for trailing spaces
+ if (name[0] != 0 && name[strlen(name) - 1] == ' ')
+ osd_printf_error("Field '%s' has trailing spaces\n", name);
+
+ // check for invalid UTF-8
+ if (!utf8_is_valid_string(name))
+ osd_printf_error("Field '%s' has invalid characters\n", name);
+
+ // look up the string and print an error if default strings are not used
+ /*strindex =get_defstr_index(defstr_map, name, driver, &error);*/
+ }
+
+ // verify conditions on the field
+ if (!field.condition().none())
+ validate_condition(field.condition(), device, port_map);
+
+ // verify conditions on the settings
+ for (ioport_setting &setting : field.settings())
+ if (!setting.condition().none())
+ validate_condition(setting.condition(), device, port_map);
+ }
+
+ // done with this port
+ m_current_ioport = nullptr;
+ }
+
+ // done with this device
+ m_current_device = nullptr;
+ }
+}
+
+
+//-------------------------------------------------
+// validate_devices - run per-device validity
+// checks
+//-------------------------------------------------
+
+void validity_checker::validate_devices()
+{
+ std::unordered_set<std::string> device_map;
+
+ for (device_t &device : device_iterator(m_current_config->root_device()))
+ {
+ // track the current device
+ m_current_device = &device;
+
+ // validate auto-finders
+ device.findit(true);
+
+ // validate the device tag
+ validate_tag(device.basetag());
+
+ // look for duplicates
+ if (!device_map.insert(device.tag()).second)
+ osd_printf_error("Multiple devices with the same tag '%s' defined\n", device.tag());
+
+ // all devices must have a shortname
+ if (strcmp(device.shortname(), "") == 0)
+ osd_printf_error("Device does not have short name defined\n");
+
+ // all devices must have a source file defined
+ if (strcmp(device.source(), "") == 0)
+ osd_printf_error("Device does not have source file location defined\n");
+
+ // check for device-specific validity check
+ device.validity_check(*this);
+
+ // done with this device
+ m_current_device = nullptr;
+ }
+
+ // if device is slot cart device, we must have a shortname
+ std::unordered_set<std::string> slot_device_map;
+ for (const device_slot_interface &slot : slot_interface_iterator(m_current_config->root_device()))
+ {
+ for (auto &option : slot.option_list())
+ {
+ std::string temptag("_");
+ temptag.append(option.second->name());
+ device_t *dev = const_cast<machine_config &>(*m_current_config).device_add(&m_current_config->root_device(), temptag.c_str(), option.second->devtype(), 0);
+
+ // notify this device and all its subdevices that they are now configured
+ for (device_t &device : device_iterator(*dev))
+ if (!device.configured())
+ device.config_complete();
+
+ if (strcmp(dev->shortname(), "") == 0) {
+ if (slot_device_map.insert(dev->name()).second)
+ osd_printf_error("Device '%s' is slot cart device but does not have short name defined\n", dev->name());
+ }
+
+ const_cast<machine_config &>(*m_current_config).device_remove(&m_current_config->root_device(), temptag.c_str());
+ }
+ }
+
+}
+
+
+//-------------------------------------------------
+// validate_devices_types - check validity of
+// registered device types
+//-------------------------------------------------
+
+void validity_checker::validate_device_types()
+{
+ // reset error/warning state
+ int start_errors = m_errors;
+ int start_warnings = m_warnings;
+ m_error_text.clear();
+ m_warning_text.clear();
+ m_verbose_text.clear();
+
+ std::unordered_map<std::string, std::add_pointer_t<device_type> > device_name_map, device_shortname_map;
+ std::unordered_set<std::type_index> device_types;
+ machine_config config(GAME_NAME(___empty), m_drivlist.options());
+ for (device_type type : registered_device_types)
+ {
+ if (!device_types.emplace(type.type()).second)
+ {
+ osd_printf_error("Device class '%s' registered multiple times\n", type.type().name());
+ }
+ else
+ {
+ device_t *const dev = config.device_add(&config.root_device(), "_tmp", type, 0);
+
+ char const *name((dev->shortname() && *dev->shortname()) ? dev->shortname() : type.type().name());
+ std::string const description((dev->source() && *dev->source()) ? util::string_format("%s(%s)", core_filename_extract_base(dev->source()).c_str(), name) : name);
+
+ // ensure shortname exists
+ if (!dev->shortname() || !*dev->shortname())
+ {
+ osd_printf_error("Device %s does not have short name defined\n", description.c_str());
+ }
+ else
+ {
+ // check for invalid characters in shortname
+ for (char const *s = dev->shortname(); *s; ++s)
+ {
+ if (((*s < '0') || (*s > '9')) && ((*s < 'a') || (*s > 'z')) && (*s != '_'))
+ {
+ osd_printf_error("Device %s short name contains invalid characters\n", description.c_str());
+ break;
+ }
+ }
+
+ // check for name conflicts
+ auto const drvname(m_names_map.find(dev->shortname()));
+ auto const devname(device_shortname_map.emplace(dev->shortname(), &type));
+ if (m_names_map.end() != drvname)
+ {
+ game_driver const &dup(*drvname->second);
+ osd_printf_error("Device %s short name is a duplicate of %s(%s)\n", description.c_str(), core_filename_extract_base(dup.source_file).c_str(), dup.name);
+ }
+ else if (!devname.second)
+ {
+ device_t *const dup = config.device_add(&config.root_device(), "_dup", *devname.first->second, 0);
+ osd_printf_error("Device %s short name is a duplicate of %s(%s)\n", description.c_str(), core_filename_extract_base(dup->source()).c_str(), dup->shortname());
+ config.device_remove(&config.root_device(), "_dup");
+ }
+ }
+
+ // ensure name exists
+ if (!dev->name() || !*dev->name())
+ {
+ osd_printf_error("Device %s does not have name defined\n", description.c_str());
+ }
+ else
+ {
+ // check for description conflicts
+ auto const drvdesc(m_descriptions_map.find(dev->name()));
+ auto const devdesc(device_name_map.emplace(dev->name(), &type));
+ if (m_names_map.end() != drvdesc)
+ {
+ game_driver const &dup(*drvdesc->second);
+ osd_printf_error("Device %s name is a duplicate of %s(%s)\n", description.c_str(), core_filename_extract_base(dup.source_file).c_str(), dup.name);
+ }
+ else if (!devdesc.second)
+ {
+ device_t *const dup = config.device_add(&config.root_device(), "_dup", *devdesc.first->second, 0);
+ osd_printf_error("Device %s name is a duplicate of %s(%s)\n", description.c_str(), core_filename_extract_base(dup->source()).c_str(), dup->shortname());
+ config.device_remove(&config.root_device(), "_dup");
+ }
+ }
+
+ // ensure source exists
+ if (!dev->source() || !*dev->source())
+ osd_printf_error("Device %s does not have source defined\n", description.c_str());
+
+ // check that reported type matches supplied type
+ if (dev->type().type() != type.type())
+ osd_printf_error("Device %s reports type '%s' (created with '%s')\n", description.c_str(), dev->type().type().name(), type.type().name());
+
+ config.device_remove(&config.root_device(), "_tmp");
+ }
+ }
+
+ // if we had warnings or errors, output
+ if (m_errors > start_errors || m_warnings > start_warnings || !m_verbose_text.empty())
+ {
+ output_via_delegate(OSD_OUTPUT_CHANNEL_ERROR, "%d errors, %d warnings\n", m_errors - start_errors, m_warnings - start_warnings);
+ if (m_errors > start_errors)
+ output_indented_errors(m_error_text, "Errors");
+ if (m_warnings > start_warnings)
+ output_indented_errors(m_warning_text, "Warnings");
+ if (!m_verbose_text.empty())
+ output_indented_errors(m_verbose_text, "Messages");
+ output_via_delegate(OSD_OUTPUT_CHANNEL_ERROR, "\n");
+ }
+}
+
+
+//-------------------------------------------------
+// build_output_prefix - create a prefix
+// indicating the current source file, driver,
+// and device
+//-------------------------------------------------
+
+void validity_checker::build_output_prefix(std::string &str)
+{
+ // start empty
+ str.clear();
+
+ // if we have a current (non-root) device, indicate that
+ if (m_current_device != nullptr && m_current_device->owner() != nullptr)
+ str.append(m_current_device->name()).append(" device '").append(m_current_device->tag() + 1).append("': ");
+
+ // if we have a current port, indicate that as well
+ if (m_current_ioport != nullptr)
+ str.append("ioport '").append(m_current_ioport).append("': ");
+}
+
+
+//-------------------------------------------------
+// error_output - error message output override
+//-------------------------------------------------
+
+void validity_checker::output_callback(osd_output_channel channel, const char *msg, va_list args)
+{
+ std::string output;
+ switch (channel)
+ {
+ case OSD_OUTPUT_CHANNEL_ERROR:
+ // count the error
+ m_errors++;
+
+ // output the source(driver) device 'tag'
+ build_output_prefix(output);
+
+ // generate the string
+ strcatvprintf(output, msg, args);
+ m_error_text.append(output);
+ break;
+
+ case OSD_OUTPUT_CHANNEL_WARNING:
+ // count the error
+ m_warnings++;
+
+ // output the source(driver) device 'tag'
+ build_output_prefix(output);
+
+ // generate the string and output to the original target
+ strcatvprintf(output, msg, args);
+ m_warning_text.append(output);
+ break;
+
+ case OSD_OUTPUT_CHANNEL_VERBOSE:
+ // if we're not verbose, skip it
+ if (!m_print_verbose) break;
+
+ // output the source(driver) device 'tag'
+ build_output_prefix(output);
+
+ // generate the string and output to the original target
+ strcatvprintf(output, msg, args);
+ m_verbose_text.append(output);
+ break;
+
+ default:
+ chain_output(channel, msg, args);
+ break;
+ }
+}
+
+//-------------------------------------------------
+// output_via_delegate - helper to output a
+// message via a varargs string, so the argptr
+// can be forwarded onto the given delegate
+//-------------------------------------------------
+
+void validity_checker::output_via_delegate(osd_output_channel channel, const char *format, ...)
+{
+ va_list argptr;
+
+ // call through to the delegate with the proper parameters
+ va_start(argptr, format);
+ chain_output(channel, format, argptr);
+ va_end(argptr);
+}
+
+//-------------------------------------------------
+// output_indented_errors - helper to output error
+// and warning messages with header and indents
+//-------------------------------------------------
+void validity_checker::output_indented_errors(std::string &text, const char *header)
+{
+ // remove trailing newline
+ if (text[text.size()-1] == '\n')
+ text.erase(text.size()-1, 1);
+ strreplace(text, "\n", "\n ");
+ output_via_delegate(OSD_OUTPUT_CHANNEL_ERROR, "%s:\n %s\n", header, text.c_str());
+}
diff --git a/docs/release/src/emu/video.cpp b/docs/release/src/emu/video.cpp
new file mode 100644
index 00000000000..46a2cbfd9d8
--- /dev/null
+++ b/docs/release/src/emu/video.cpp
@@ -0,0 +1,1365 @@
+// license:BSD-3-Clause
+// copyright-holders:Aaron Giles
+/***************************************************************************
+
+ video.cpp
+
+ Core MAME video routines.
+
+***************************************************************************/
+
+#include "emu.h"
+#include "emuopts.h"
+#include "png.h"
+#include "debugger.h"
+#include "ui/uimain.h"
+#include "aviio.h"
+#include "crsshair.h"
+#include "rendersw.hxx"
+#include "output.h"
+
+#include "snap.lh"
+
+#include "osdepend.h"
+
+//**************************************************************************
+// DEBUGGING
+//**************************************************************************
+
+#define LOG_THROTTLE (0)
+
+
+
+//**************************************************************************
+// GLOBAL VARIABLES
+//**************************************************************************
+
+// frameskipping tables
+const bool video_manager::s_skiptable[FRAMESKIP_LEVELS][FRAMESKIP_LEVELS] =
+{
+ { false, false, false, false, false, false, false, false, false, false, false, false },
+ { false, false, false, false, false, false, false, false, false, false, false, true },
+ { false, false, false, false, false, true , false, false, false, false, false, true },
+ { false, false, false, true , false, false, false, true , false, false, false, true },
+ { false, false, true , false, false, true , false, false, true , false, false, true },
+ { false, true , false, false, true , false, true , false, false, true , false, true },
+ { false, true , false, true , false, true , false, true , false, true , false, true },
+ { false, true , false, true , true , false, true , false, true , true , false, true },
+ { false, true , true , false, true , true , false, true , true , false, true , true },
+ { false, true , true , true , false, true , true , true , false, true , true , true },
+ { false, true , true , true , true , true , false, true , true , true , true , true },
+ { false, true , true , true , true , true , true , true , true , true , true , true }
+};
+
+
+
+//**************************************************************************
+// VIDEO MANAGER
+//**************************************************************************
+
+static void video_notifier_callback(const char *outname, s32 value, void *param)
+{
+ video_manager *vm = (video_manager *)param;
+
+ vm->set_output_changed();
+}
+
+
+//-------------------------------------------------
+// video_manager - constructor
+//-------------------------------------------------
+
+video_manager::video_manager(running_machine &machine)
+ : m_machine(machine),
+ m_screenless_frame_timer(nullptr),
+ m_output_changed(false),
+ m_throttle_last_ticks(0),
+ m_throttle_realtime(attotime::zero),
+ m_throttle_emutime(attotime::zero),
+ m_throttle_history(0),
+ m_speed_last_realtime(0),
+ m_speed_last_emutime(attotime::zero),
+ m_speed_percent(1.0),
+ m_overall_real_seconds(0),
+ m_overall_real_ticks(0),
+ m_overall_emutime(attotime::zero),
+ m_overall_valid_counter(0),
+ m_throttled(machine.options().throttle()),
+ m_throttle_rate(1.0f),
+ m_fastforward(false),
+ m_seconds_to_run(machine.options().seconds_to_run()),
+ m_auto_frameskip(machine.options().auto_frameskip()),
+ m_speed(original_speed_setting()),
+ m_empty_skip_count(0),
+ m_frameskip_level(machine.options().frameskip()),
+ m_frameskip_counter(0),
+ m_frameskip_adjust(0),
+ m_skipping_this_frame(false),
+ m_average_oversleep(0),
+ m_snap_target(nullptr),
+ m_snap_native(true),
+ m_snap_width(0),
+ m_snap_height(0),
+ m_mng_frame_period(attotime::zero),
+ m_mng_next_frame_time(attotime::zero),
+ m_mng_frame(0),
+ m_avi_file(nullptr),
+ m_avi_frame_period(attotime::zero),
+ m_avi_next_frame_time(attotime::zero),
+ m_avi_frame(0),
+ m_timecode_enabled(false),
+ m_timecode_write(false),
+ m_timecode_text(""),
+ m_timecode_start(attotime::zero),
+ m_timecode_total(attotime::zero)
+
+{
+ // request a callback upon exiting
+ machine.add_notifier(MACHINE_NOTIFY_EXIT, machine_notify_delegate(&video_manager::exit, this));
+ machine.save().register_postload(save_prepost_delegate(FUNC(video_manager::postload), this));
+
+ // extract initial execution state from global configuration settings
+ update_refresh_speed();
+
+ // create a render target for snapshots
+ const char *viewname = machine.options().snap_view();
+ m_snap_native = (machine.first_screen() != nullptr && (viewname[0] == 0 || strcmp(viewname, "native") == 0));
+
+ // the native target is hard-coded to our internal layout and has all options disabled
+ if (m_snap_native)
+ {
+ m_snap_target = machine.render().target_alloc(&layout_snap, RENDER_CREATE_SINGLE_FILE | RENDER_CREATE_HIDDEN);
+ m_snap_target->set_backdrops_enabled(false);
+ m_snap_target->set_overlays_enabled(false);
+ m_snap_target->set_bezels_enabled(false);
+ m_snap_target->set_cpanels_enabled(false);
+ m_snap_target->set_marquees_enabled(false);
+ m_snap_target->set_screen_overlay_enabled(false);
+ m_snap_target->set_zoom_to_screen(false);
+ }
+
+ // other targets select the specified view and turn off effects
+ else
+ {
+ m_snap_target = machine.render().target_alloc(nullptr, RENDER_CREATE_HIDDEN);
+ m_snap_target->set_view(m_snap_target->configured_view(viewname, 0, 1));
+ m_snap_target->set_screen_overlay_enabled(false);
+ }
+
+ // extract snap resolution if present
+ if (sscanf(machine.options().snap_size(), "%dx%d", &m_snap_width, &m_snap_height) != 2)
+ m_snap_width = m_snap_height = 0;
+
+ // start recording movie if specified
+ const char *filename = machine.options().mng_write();
+ if (filename[0] != 0)
+ begin_recording(filename, MF_MNG);
+
+ filename = machine.options().avi_write();
+ if (filename[0] != 0)
+ begin_recording(filename, MF_AVI);
+
+ // if no screens, create a periodic timer to drive updates
+ if (machine.first_screen() == nullptr)
+ {
+ m_screenless_frame_timer = machine.scheduler().timer_alloc(timer_expired_delegate(FUNC(video_manager::screenless_update_callback), this));
+ m_screenless_frame_timer->adjust(screen_device::DEFAULT_FRAME_PERIOD, 0, screen_device::DEFAULT_FRAME_PERIOD);
+ machine.output().set_notifier(nullptr, video_notifier_callback, this);
+ }
+}
+
+
+//-------------------------------------------------
+// set_frameskip - set the current actual
+// frameskip (-1 means autoframeskip)
+//-------------------------------------------------
+
+void video_manager::set_frameskip(int frameskip)
+{
+ // -1 means autoframeskip
+ if (frameskip == -1)
+ {
+ m_auto_frameskip = true;
+ m_frameskip_level = 0;
+ }
+
+ // any other level is a direct control
+ else if (frameskip >= 0 && frameskip <= MAX_FRAMESKIP)
+ {
+ m_auto_frameskip = false;
+ m_frameskip_level = frameskip;
+ }
+}
+
+
+//-------------------------------------------------
+// frame_update - handle frameskipping and UI,
+// plus updating the screen during normal
+// operations
+//-------------------------------------------------
+
+void video_manager::frame_update(bool from_debugger)
+{
+ // only render sound and video if we're in the running phase
+ int phase = machine().phase();
+ bool skipped_it = m_skipping_this_frame;
+ if (phase == MACHINE_PHASE_RUNNING && (!machine().paused() || machine().options().update_in_pause()))
+ {
+ bool anything_changed = finish_screen_updates();
+
+ // if none of the screens changed and we haven't skipped too many frames in a row,
+ // mark this frame as skipped to prevent throttling; this helps for games that
+ // don't update their screen at the monitor refresh rate
+ if (!anything_changed && !m_auto_frameskip && m_frameskip_level == 0 && m_empty_skip_count++ < 3)
+ skipped_it = true;
+ else
+ m_empty_skip_count = 0;
+ }
+
+ // draw the user interface
+ emulator_info::draw_user_interface(machine());
+
+ // if we're throttling, synchronize before rendering
+ attotime current_time = machine().time();
+ if (!from_debugger && !skipped_it && effective_throttle())
+ update_throttle(current_time);
+
+ // ask the OSD to update
+ g_profiler.start(PROFILER_BLIT);
+ machine().osd().update(!from_debugger && skipped_it);
+ g_profiler.stop();
+
+ emulator_info::periodic_check();
+
+ // perform tasks for this frame
+ if (!from_debugger)
+ machine().call_notifiers(MACHINE_NOTIFY_FRAME);
+
+ // update frameskipping
+ if (!from_debugger)
+ update_frameskip();
+
+ // update speed computations
+ if (!from_debugger && !skipped_it)
+ recompute_speed(current_time);
+
+ // call the end-of-frame callback
+ if (phase == MACHINE_PHASE_RUNNING)
+ {
+ // reset partial updates if we're paused or if the debugger is active
+ screen_device *const screen = machine().first_screen();
+ bool const debugger_enabled = machine().debug_flags & DEBUG_FLAG_ENABLED;
+ bool const within_instruction_hook = debugger_enabled && machine().debugger().within_instruction_hook();
+ if (screen && (machine().paused() || from_debugger || within_instruction_hook))
+ screen->reset_partial_updates();
+ }
+}
+
+
+//-------------------------------------------------
+// speed_text - print the text to be displayed
+// into a string buffer
+//-------------------------------------------------
+
+std::string video_manager::speed_text()
+{
+ std::ostringstream str;
+
+ // if we're paused, just display Paused
+ bool paused = machine().paused();
+ if (paused)
+ str << "paused";
+
+ // if we're fast forwarding, just display Fast-forward
+ else if (m_fastforward)
+ str << "fast ";
+
+ // if we're auto frameskipping, display that plus the level
+ else if (effective_autoframeskip())
+ util::stream_format(str, "auto%2d/%d", effective_frameskip(), MAX_FRAMESKIP);
+
+ // otherwise, just display the frameskip plus the level
+ else
+ util::stream_format(str, "skip %d/%d", effective_frameskip(), MAX_FRAMESKIP);
+
+ // append the speed for all cases except paused
+ if (!paused)
+ util::stream_format(str, "%4d%%", (int)(100 * m_speed_percent + 0.5));
+
+ // display the number of partial updates as well
+ int partials = 0;
+ for (screen_device &screen : screen_device_iterator(machine().root_device()))
+ partials += screen.partial_updates();
+ if (partials > 1)
+ util::stream_format(str, "\n%d partial updates", partials);
+
+ return str.str();
+}
+
+
+//-------------------------------------------------
+// save_snapshot - save a snapshot to the given
+// file handle
+//-------------------------------------------------
+
+void video_manager::save_snapshot(screen_device *screen, emu_file &file)
+{
+ // validate
+ assert(!m_snap_native || screen != nullptr);
+
+ // create the bitmap to pass in
+ create_snapshot_bitmap(screen);
+
+ // add two text entries describing the image
+ std::string text1 = std::string(emulator_info::get_appname()).append(" ").append(emulator_info::get_build_version());
+ std::string text2 = std::string(machine().system().manufacturer).append(" ").append(machine().system().description);
+ png_info pnginfo = { nullptr };
+ png_add_text(&pnginfo, "Software", text1.c_str());
+ png_add_text(&pnginfo, "System", text2.c_str());
+
+ // now do the actual work
+ const rgb_t *palette = (screen != nullptr && screen->has_palette()) ? screen->palette().palette()->entry_list_adjusted() : nullptr;
+ int entries = (screen != nullptr && screen->has_palette()) ? screen->palette().entries() : 0;
+ png_error error = png_write_bitmap(file, &pnginfo, m_snap_bitmap, entries, palette);
+ if (error != PNGERR_NONE)
+ osd_printf_error("Error generating PNG for snapshot: png_error = %d\n", error);
+
+ // free any data allocated
+ png_free(&pnginfo);
+}
+
+
+//-------------------------------------------------
+// save_active_screen_snapshots - save a
+// snapshot of all active screens
+//-------------------------------------------------
+
+void video_manager::save_active_screen_snapshots()
+{
+ // if we're native, then write one snapshot per visible screen
+ if (m_snap_native)
+ {
+ // write one snapshot per visible screen
+ for (screen_device &screen : screen_device_iterator(machine().root_device()))
+ if (machine().render().is_live(screen))
+ {
+ emu_file file(machine().options().snapshot_directory(), OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS);
+ osd_file::error filerr = open_next(file, "png");
+ if (filerr == osd_file::error::NONE)
+ save_snapshot(&screen, file);
+ }
+ }
+
+ // otherwise, just write a single snapshot
+ else
+ {
+ emu_file file(machine().options().snapshot_directory(), OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS);
+ osd_file::error filerr = open_next(file, "png");
+ if (filerr == osd_file::error::NONE)
+ save_snapshot(nullptr, file);
+ }
+}
+
+
+//-------------------------------------------------
+// save_input_timecode - add a line of current
+// timestamp to inp.timecode file
+//-------------------------------------------------
+
+void video_manager::save_input_timecode()
+{
+ // if record timecode input is not active, do nothing
+ if (!m_timecode_enabled) {
+ return;
+ }
+ m_timecode_write = true;
+}
+
+std::string &video_manager::timecode_text(std::string &str)
+{
+ attotime elapsed_time = machine().time() - m_timecode_start;
+ str = string_format(" %s%s%02d:%02d %s",
+ m_timecode_text,
+ m_timecode_text.empty() ? "" : " ",
+ (elapsed_time.m_seconds / 60) % 60,
+ elapsed_time.m_seconds % 60,
+ machine().paused() ? "[paused] " : "");
+ return str;
+}
+
+std::string &video_manager::timecode_total_text(std::string &str)
+{
+ attotime elapsed_time = m_timecode_total;
+ if (machine().ui().show_timecode_counter()) {
+ elapsed_time += machine().time() - m_timecode_start;
+ }
+ str = string_format("TOTAL %02d:%02d ",
+ (elapsed_time.m_seconds / 60) % 60,
+ elapsed_time.m_seconds % 60);
+ return str;
+}
+
+
+
+//-------------------------------------------------
+// begin_recording - begin recording of a movie
+//-------------------------------------------------
+
+void video_manager::begin_recording(const char *name, movie_format format)
+{
+ // create a snapshot bitmap so we know what the target size is
+ create_snapshot_bitmap(nullptr);
+
+ // start up an AVI recording
+ if (format == MF_AVI)
+ {
+ // stop any existing recording
+ end_recording(format);
+
+ // reset the state
+ m_avi_frame = 0;
+ m_avi_next_frame_time = machine().time();
+
+ // build up information about this new movie
+ screen_device *screen = machine().first_screen();
+ avi_file::movie_info info;
+ info.video_format = 0;
+ info.video_timescale = 1000 * ((screen != nullptr) ? ATTOSECONDS_TO_HZ(screen->frame_period().attoseconds()) : screen_device::DEFAULT_FRAME_RATE);
+ info.video_sampletime = 1000;
+ info.video_numsamples = 0;
+ info.video_width = m_snap_bitmap.width();
+ info.video_height = m_snap_bitmap.height();
+ info.video_depth = 24;
+
+ info.audio_format = 0;
+ info.audio_timescale = machine().sample_rate();
+ info.audio_sampletime = 1;
+ info.audio_numsamples = 0;
+ info.audio_channels = 2;
+ info.audio_samplebits = 16;
+ info.audio_samplerate = machine().sample_rate();
+
+ // create a new temporary movie file
+ osd_file::error filerr;
+ std::string fullpath;
+ {
+ emu_file tempfile(machine().options().snapshot_directory(), OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS);
+ if (name != nullptr)
+ filerr = tempfile.open(name);
+ else
+ filerr = open_next(tempfile, "avi");
+
+ // if we succeeded, make a copy of the name and create the real file over top
+ if (filerr == osd_file::error::NONE)
+ fullpath = tempfile.fullpath();
+ }
+
+ if (filerr == osd_file::error::NONE)
+ {
+ // compute the frame time
+ m_avi_frame_period = attotime::from_seconds(1000) / info.video_timescale;
+
+ // create the file and free the string
+ avi_file::error avierr = avi_file::create(fullpath, info, m_avi_file);
+ if (avierr != avi_file::error::NONE)
+ {
+ osd_printf_error("Error creating AVI: %s\n", avi_file::error_string(avierr));
+ return end_recording(format);
+ }
+ }
+ }
+
+ // start up a MNG recording
+ else if (format == MF_MNG)
+ {
+ // stop any existing recording
+ end_recording(format);
+
+ // reset the state
+ m_mng_frame = 0;
+ m_mng_next_frame_time = machine().time();
+
+ // create a new movie file and start recording
+ m_mng_file = std::make_unique<emu_file>(machine().options().snapshot_directory(), OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS);
+ osd_file::error filerr;
+ if (name != nullptr)
+ filerr = m_mng_file->open(name);
+ else
+ filerr = open_next(*m_mng_file, "mng");
+
+ if (filerr == osd_file::error::NONE)
+ {
+ // start the capture
+ screen_device *screen = machine().first_screen();
+ int rate = (screen != nullptr) ? ATTOSECONDS_TO_HZ(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)
+ {
+ osd_printf_error("Error capturing MNG, png_error=%d\n", pngerr);
+ return end_recording(format);
+ }
+
+ // compute the frame time
+ m_mng_frame_period = attotime::from_hz(rate);
+ }
+ else
+ {
+ osd_printf_error("Error creating MNG, osd_file::error=%d\n", int(filerr));
+ m_mng_file.reset();
+ }
+ }
+}
+
+
+//-------------------------------------------------
+// end_recording - stop recording of a movie
+//-------------------------------------------------
+
+void video_manager::end_recording(movie_format format)
+{
+ if (format == MF_AVI)
+ {
+ // close the file if it exists
+ if (m_avi_file)
+ {
+ m_avi_file.reset();
+
+ // reset the state
+ m_avi_frame = 0;
+ }
+ }
+ else if (format == MF_MNG)
+ {
+ // close the file if it exists
+ if (m_mng_file != nullptr)
+ {
+ mng_capture_stop(*m_mng_file);
+ m_mng_file.reset();
+
+ // reset the state
+ m_mng_frame = 0;
+ }
+ }
+}
+
+
+//-------------------------------------------------
+// add_sound_to_recording - add sound to a movie
+// recording
+//-------------------------------------------------
+
+void video_manager::add_sound_to_recording(const s16 *sound, int numsamples)
+{
+ // only record if we have a file
+ if (m_avi_file != nullptr)
+ {
+ g_profiler.start(PROFILER_MOVIE_REC);
+
+ // write the next frame
+ avi_file::error avierr = m_avi_file->append_sound_samples(0, sound + 0, numsamples, 1);
+ if (avierr == avi_file::error::NONE)
+ avierr = m_avi_file->append_sound_samples(1, sound + 1, numsamples, 1);
+ if (avierr != avi_file::error::NONE)
+ end_recording(MF_AVI);
+
+ g_profiler.stop();
+ }
+}
+
+
+
+//-------------------------------------------------
+// video_exit - close down the video system
+//-------------------------------------------------
+
+void video_manager::exit()
+{
+ // stop recording any movie
+ end_recording(MF_AVI);
+ end_recording(MF_MNG);
+
+ // free the snapshot target
+ machine().render().target_free(m_snap_target);
+ m_snap_bitmap.reset();
+
+ // print a final result if we have at least 2 seconds' worth of data
+ if (!emulator_info::standalone() && 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());
+ }
+}
+
+
+//-------------------------------------------------
+// screenless_update_callback - update generator
+// when there are no screens to drive it
+//-------------------------------------------------
+
+void video_manager::screenless_update_callback(void *ptr, int param)
+{
+ // force an update
+ frame_update(false);
+}
+
+
+//-------------------------------------------------
+// postload - callback for resetting things after
+// state has been loaded
+//-------------------------------------------------
+
+void video_manager::postload()
+{
+ m_avi_next_frame_time = machine().time();
+ m_mng_next_frame_time = machine().time();
+}
+
+
+//-------------------------------------------------
+// effective_autoframeskip - return the effective
+// autoframeskip value, accounting for fast
+// forward
+//-------------------------------------------------
+
+inline bool video_manager::effective_autoframeskip() const
+{
+ // if we're fast forwarding or paused, autoframeskip is disabled
+ if (m_fastforward || machine().paused())
+ return false;
+
+ // otherwise, it's up to the user
+ return m_auto_frameskip;
+}
+
+
+//-------------------------------------------------
+// effective_frameskip - return the effective
+// frameskip value, accounting for fast
+// forward
+//-------------------------------------------------
+
+inline int video_manager::effective_frameskip() const
+{
+ // if we're fast forwarding, use the maximum frameskip
+ if (m_fastforward)
+ return FRAMESKIP_LEVELS - 1;
+
+ // otherwise, it's up to the user
+ return m_frameskip_level;
+}
+
+
+//-------------------------------------------------
+// effective_throttle - return the effective
+// throttle value, accounting for fast
+// forward and user interface
+//-------------------------------------------------
+
+inline bool video_manager::effective_throttle() const
+{
+ // if we're paused, or if the UI is active, we always throttle
+ if (machine().paused()) //|| machine().ui().is_menu_active())
+ return true;
+
+ // if we're fast forwarding, we don't throttle
+ if (m_fastforward)
+ return false;
+
+ // otherwise, it's up to the user
+ return throttled();
+}
+
+
+//-------------------------------------------------
+// original_speed_setting - return the original
+// speed setting
+//-------------------------------------------------
+
+inline int video_manager::original_speed_setting() const
+{
+ return machine().options().speed() * 1000.0f + 0.5f;
+}
+
+
+//-------------------------------------------------
+// finish_screen_updates - finish updating all
+// the screens
+//-------------------------------------------------
+
+bool video_manager::finish_screen_updates()
+{
+ // finish updating the screens
+ screen_device_iterator iter(machine().root_device());
+
+ for (screen_device &screen : iter)
+ screen.update_partial(screen.visible_area().max_y);
+
+ // now add the quads for all the screens
+ bool anything_changed = m_output_changed;
+ m_output_changed = false;
+ for (screen_device &screen : iter)
+ if (screen.update_quads())
+ anything_changed = true;
+
+ // draw HUD from LUA callback (if any)
+ anything_changed |= emulator_info::frame_hook();
+
+ // update our movie recording and burn-in state
+ if (!machine().paused())
+ {
+ record_frame();
+
+ // iterate over screens and update the burnin for the ones that care
+ for (screen_device &screen : iter)
+ screen.update_burnin();
+ }
+
+ // draw any crosshairs
+ for (screen_device &screen : iter)
+ machine().crosshair().render(screen);
+
+ return anything_changed;
+}
+
+
+
+//-------------------------------------------------
+// update_throttle - throttle to the game's
+// natural speed
+//-------------------------------------------------
+
+void video_manager::update_throttle(attotime emutime)
+{
+/*
+
+ Throttling theory:
+
+ This routine is called periodically with an up-to-date emulated time.
+ The idea is to synchronize real time with emulated time. We do this
+ by "throttling", or waiting for real time to catch up with emulated
+ time.
+
+ In an ideal world, it will take less real time to emulate and render
+ each frame than the emulated time, so we need to slow things down to
+ get both times in sync.
+
+ There are many complications to this model:
+
+ * some games run too slow, so each frame we get further and
+ further behind real time; our only choice here is to not
+ throttle
+
+ * some games have very uneven frame rates; one frame will take
+ a long time to emulate, and the next frame may be very fast
+
+ * we run on top of multitasking OSes; sometimes execution time
+ is taken away from us, and this means we may not get enough
+ time to emulate one frame
+
+ * we may be paused, and emulated time may not be marching
+ forward
+
+ * emulated time could jump due to resetting the machine or
+ restoring from a saved state
+
+*/
+ static const u8 popcount[256] =
+ {
+ 0,1,1,2,1,2,2,3, 1,2,2,3,2,3,3,4, 1,2,2,3,2,3,3,4, 2,3,3,4,3,4,4,5,
+ 1,2,2,3,2,3,3,4, 2,3,3,4,3,4,4,5, 2,3,3,4,3,4,4,5, 3,4,4,5,4,5,5,6,
+ 1,2,2,3,2,3,3,4, 2,3,3,4,3,4,4,5, 2,3,3,4,3,4,4,5, 3,4,4,5,4,5,5,6,
+ 2,3,3,4,3,4,4,5, 3,4,4,5,4,5,5,6, 3,4,4,5,4,5,5,6, 4,5,5,6,5,6,6,7,
+ 1,2,2,3,2,3,3,4, 2,3,3,4,3,4,4,5, 2,3,3,4,3,4,4,5, 3,4,4,5,4,5,5,6,
+ 2,3,3,4,3,4,4,5, 3,4,4,5,4,5,5,6, 3,4,4,5,4,5,5,6, 4,5,5,6,5,6,6,7,
+ 2,3,3,4,3,4,4,5, 3,4,4,5,4,5,5,6, 3,4,4,5,4,5,5,6, 4,5,5,6,5,6,6,7,
+ 3,4,4,5,4,5,5,6, 4,5,5,6,5,6,6,7, 4,5,5,6,5,6,6,7, 5,6,6,7,6,7,7,8
+ };
+
+ // outer scope so we can break out in case of a resync
+ while (1)
+ {
+ // apply speed factor to emu time
+ if (m_speed != 0 && m_speed != 1000)
+ {
+ // multiply emutime by 1000, then divide by the global speed factor
+ emutime = (emutime * 1000) / m_speed;
+ }
+
+ // compute conversion factors up front
+ osd_ticks_t ticks_per_second = osd_ticks_per_second();
+ attoseconds_t attoseconds_per_tick = ATTOSECONDS_PER_SECOND / ticks_per_second * m_throttle_rate;
+
+ // if we're paused, emutime will not advance; instead, we subtract a fixed
+ // amount of time (1/60th of a second) from the emulated time that was passed in,
+ // and explicitly reset our tracked real and emulated timers to that value ...
+ // this means we pretend that the last update was exactly 1/60th of a second
+ // ago, and was in sync in both real and emulated time
+ if (machine().paused())
+ {
+ m_throttle_emutime = emutime - attotime(0, ATTOSECONDS_PER_SECOND / PAUSED_REFRESH_RATE);
+ m_throttle_realtime = m_throttle_emutime;
+ }
+
+ // attempt to detect anomalies in the emulated time by subtracting the previously
+ // reported value from our current value; this should be a small value somewhere
+ // between 0 and 1/10th of a second ... anything outside of this range is obviously
+ // wrong and requires a resync
+ attoseconds_t emu_delta_attoseconds = (emutime - m_throttle_emutime).as_attoseconds();
+ if (emu_delta_attoseconds < 0 || emu_delta_attoseconds > ATTOSECONDS_PER_SECOND / 10)
+ {
+ if (LOG_THROTTLE)
+ machine().logerror("Resync due to weird emutime delta: %s\n", attotime(0, emu_delta_attoseconds).as_string(18));
+ break;
+ }
+
+ // now determine the current real time in OSD-specified ticks; we have to be careful
+ // here because counters can wrap, so we only use the difference between the last
+ // read value and the current value in our computations
+ osd_ticks_t diff_ticks = osd_ticks() - m_throttle_last_ticks;
+ m_throttle_last_ticks += diff_ticks;
+
+ // if it has been more than a full second of real time since the last call to this
+ // function, we just need to resynchronize
+ if (diff_ticks >= ticks_per_second)
+ {
+ if (LOG_THROTTLE)
+ machine().logerror("Resync due to real time advancing by more than 1 second\n");
+ break;
+ }
+
+ // convert this value into attoseconds for easier comparison
+ attoseconds_t real_delta_attoseconds = diff_ticks * attoseconds_per_tick;
+
+ // now update our real and emulated timers with the current values
+ m_throttle_emutime = emutime;
+ m_throttle_realtime += attotime(0, real_delta_attoseconds);
+
+ // keep a history of whether or not emulated time beat real time over the last few
+ // updates; this can be used for future heuristics
+ m_throttle_history = (m_throttle_history << 1) | (emu_delta_attoseconds > real_delta_attoseconds);
+
+ // determine how far ahead real time is versus emulated time; note that we use the
+ // accumulated times for this instead of the deltas for the current update because
+ // we want to track time over a longer duration than a single update
+ attoseconds_t real_is_ahead_attoseconds = (m_throttle_emutime - m_throttle_realtime).as_attoseconds();
+
+ // if we're more than 1/10th of a second out, or if we are behind at all and emulation
+ // is taking longer than the real frame, we just need to resync
+ if (real_is_ahead_attoseconds < -ATTOSECONDS_PER_SECOND / 10 ||
+ (real_is_ahead_attoseconds < 0 && popcount[m_throttle_history & 0xff] < 6))
+ {
+ if (LOG_THROTTLE)
+ machine().logerror("Resync due to being behind: %s (history=%08X)\n", attotime(0, -real_is_ahead_attoseconds).as_string(18), m_throttle_history);
+ break;
+ }
+
+ // if we're behind, it's time to just get out
+ if (real_is_ahead_attoseconds < 0)
+ return;
+
+ // compute the target real time, in ticks, where we want to be
+ osd_ticks_t target_ticks = m_throttle_last_ticks + real_is_ahead_attoseconds / attoseconds_per_tick;
+
+ // throttle until we read the target, and update real time to match the final time
+ diff_ticks = throttle_until_ticks(target_ticks) - m_throttle_last_ticks;
+ m_throttle_last_ticks += diff_ticks;
+ m_throttle_realtime += attotime(0, diff_ticks * attoseconds_per_tick);
+ return;
+ }
+
+ // reset realtime and emutime to the same value
+ m_throttle_realtime = m_throttle_emutime = emutime;
+}
+
+
+//-------------------------------------------------
+// throttle_until_ticks - spin until the
+// specified target time, calling the OSD code
+// to sleep if possible
+//-------------------------------------------------
+
+osd_ticks_t video_manager::throttle_until_ticks(osd_ticks_t target_ticks)
+{
+ // we're allowed to sleep via the OSD code only if we're configured to do so
+ // and we're not frameskipping due to autoframeskip, or if we're paused
+ bool allowed_to_sleep = false;
+ if (machine().options().sleep() && (!effective_autoframeskip() || effective_frameskip() == 0))
+ allowed_to_sleep = true;
+ if (machine().paused())
+ allowed_to_sleep = true;
+
+ // loop until we reach our target
+ g_profiler.start(PROFILER_IDLE);
+ osd_ticks_t minimum_sleep = osd_ticks_per_second() / 1000;
+ osd_ticks_t current_ticks = osd_ticks();
+ while (current_ticks < target_ticks)
+ {
+ // compute how much time to sleep for, taking into account the average oversleep
+ osd_ticks_t delta = (target_ticks - current_ticks) * 1000 / (1000 + m_average_oversleep);
+
+ // see if we can sleep
+ bool slept = false;
+ if (allowed_to_sleep && delta >= minimum_sleep)
+ {
+ osd_sleep(delta);
+ slept = true;
+ }
+
+ // read the new value
+ osd_ticks_t new_ticks = osd_ticks();
+
+ // keep some metrics on the sleeping patterns of the OSD layer
+ if (slept)
+ {
+ // if we overslept, keep an average of the amount
+ osd_ticks_t actual_ticks = new_ticks - current_ticks;
+ if (actual_ticks > delta)
+ {
+ // take 90% of the previous average plus 10% of the new value
+ osd_ticks_t oversleep_milliticks = 1000 * (actual_ticks - delta) / delta;
+ m_average_oversleep = (m_average_oversleep * 99 + oversleep_milliticks) / 100;
+
+ if (LOG_THROTTLE)
+ machine().logerror("Slept for %d ticks, got %d ticks, avgover = %d\n", (int)delta, (int)actual_ticks, (int)m_average_oversleep);
+ }
+ }
+ current_ticks = new_ticks;
+ }
+ g_profiler.stop();
+
+ return current_ticks;
+}
+
+
+//-------------------------------------------------
+// update_frameskip - update frameskipping
+// counters and periodically update autoframeskip
+//-------------------------------------------------
+
+void video_manager::update_frameskip()
+{
+ // if we're throttling and autoframeskip is on, adjust
+ if (effective_throttle() && effective_autoframeskip() && m_frameskip_counter == 0)
+ {
+ // calibrate the "adjusted speed" based on the target
+ double adjusted_speed_percent = m_speed_percent / (double) m_throttle_rate;
+
+ // if we're too fast, attempt to increase the frameskip
+ double speed = m_speed * 0.001;
+ if (adjusted_speed_percent >= 0.995 * speed)
+ {
+ // but only after 3 consecutive frames where we are too fast
+ if (++m_frameskip_adjust >= 3)
+ {
+ m_frameskip_adjust = 0;
+ if (m_frameskip_level > 0)
+ m_frameskip_level--;
+ }
+ }
+
+ // if we're too slow, attempt to increase the frameskip
+ else
+ {
+ // if below 80% speed, be more aggressive
+ if (adjusted_speed_percent < 0.80 * speed)
+ m_frameskip_adjust -= (0.90 * speed - m_speed_percent) / 0.05;
+
+ // if we're close, only force it up to frameskip 8
+ else if (m_frameskip_level < 8)
+ m_frameskip_adjust--;
+
+ // perform the adjustment
+ while (m_frameskip_adjust <= -2)
+ {
+ m_frameskip_adjust += 2;
+ if (m_frameskip_level < MAX_FRAMESKIP)
+ m_frameskip_level++;
+ }
+ }
+ }
+
+ // increment the frameskip counter and determine if we will skip the next frame
+ m_frameskip_counter = (m_frameskip_counter + 1) % FRAMESKIP_LEVELS;
+ m_skipping_this_frame = s_skiptable[effective_frameskip()][m_frameskip_counter];
+}
+
+
+//-------------------------------------------------
+// update_refresh_speed - update the m_speed
+// based on the maximum refresh rate supported
+//-------------------------------------------------
+
+void video_manager::update_refresh_speed()
+{
+ // only do this if the refreshspeed option is used
+ if (machine().options().refresh_speed())
+ {
+ double minrefresh = machine().render().max_update_rate();
+ if (minrefresh != 0)
+ {
+ // find the screen with the shortest frame period (max refresh rate)
+ // note that we first check the token since this can get called before all screens are created
+ attoseconds_t min_frame_period = ATTOSECONDS_PER_SECOND;
+ for (screen_device &screen : screen_device_iterator(machine().root_device()))
+ {
+ attoseconds_t period = screen.frame_period().attoseconds();
+ if (period != 0)
+ min_frame_period = std::min(min_frame_period, period);
+ }
+
+ // compute a target speed as an integral percentage
+ // note that we lop 0.25Hz off of the minrefresh when doing the computation to allow for
+ // the fact that most refresh rates are not accurate to 10 digits...
+ u32 target_speed = floor((minrefresh - 0.25) * 1000.0 / ATTOSECONDS_TO_HZ(min_frame_period));
+ u32 original_speed = original_speed_setting();
+ target_speed = std::min(target_speed, original_speed);
+
+ // if we changed, log that verbosely
+ if (target_speed != m_speed)
+ {
+ osd_printf_verbose("Adjusting target speed to %.1f%% (hw=%.2fHz, game=%.2fHz, adjusted=%.2fHz)\n", target_speed / 10.0, minrefresh, ATTOSECONDS_TO_HZ(min_frame_period), ATTOSECONDS_TO_HZ(min_frame_period * 1000.0 / target_speed));
+ m_speed = target_speed;
+ }
+ }
+ }
+}
+
+
+//-------------------------------------------------
+// recompute_speed - recompute the current
+// overall speed; we assume this is called only
+// if we did not skip a frame
+//-------------------------------------------------
+
+void video_manager::recompute_speed(const attotime &emutime)
+{
+ // if we don't have a starting time yet, or if we're paused, reset our starting point
+ if (m_speed_last_realtime == 0 || machine().paused())
+ {
+ m_speed_last_realtime = osd_ticks();
+ m_speed_last_emutime = emutime;
+ }
+
+ // if it has been more than the update interval, update the time
+ attotime delta_emutime = emutime - m_speed_last_emutime;
+ if (delta_emutime > attotime(0, ATTOSECONDS_PER_SPEED_UPDATE))
+ {
+ // convert from ticks to attoseconds
+ osd_ticks_t realtime = osd_ticks();
+ osd_ticks_t delta_realtime = realtime - m_speed_last_realtime;
+ osd_ticks_t tps = osd_ticks_per_second();
+ m_speed_percent = delta_emutime.as_double() * (double)tps / (double)delta_realtime;
+
+ // remember the last times
+ m_speed_last_realtime = realtime;
+ m_speed_last_emutime = emutime;
+
+ // if we're throttled, this time period counts for overall speed; otherwise, we reset the counter
+ if (!m_fastforward)
+ m_overall_valid_counter++;
+ else
+ m_overall_valid_counter = 0;
+
+ // if we've had at least 4 consecutive valid periods, accumulate stats
+ if (m_overall_valid_counter >= 4)
+ {
+ m_overall_real_ticks += delta_realtime;
+ while (m_overall_real_ticks >= tps)
+ {
+ m_overall_real_ticks -= tps;
+ m_overall_real_seconds++;
+ }
+ m_overall_emutime += delta_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)
+ {
+ // create a final screenshot
+ emu_file file(machine().options().snapshot_directory(), OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS);
+ osd_file::error filerr = file.open(machine().basename(), PATH_SEPARATOR "final.png");
+ if (filerr == osd_file::error::NONE)
+ save_snapshot(nullptr, file);
+
+ //printf("Scheduled exit at %f\n", emutime.as_double());
+ // schedule our demise
+ machine().schedule_exit();
+ }
+}
+
+
+//-------------------------------------------------
+// create_snapshot_bitmap - creates a
+// bitmap containing the screenshot for the
+// given screen
+//-------------------------------------------------
+
+typedef software_renderer<u32, 0,0,0, 16,8,0, false, true> snap_renderer_bilinear;
+typedef software_renderer<u32, 0,0,0, 16,8,0, false, false> snap_renderer;
+
+void video_manager::create_snapshot_bitmap(screen_device *screen)
+{
+ // select the appropriate view in our dummy target
+ if (m_snap_native && screen != nullptr)
+ {
+ screen_device_iterator iter(machine().root_device());
+ int view_index = iter.indexof(*screen);
+ assert(view_index != -1);
+ m_snap_target->set_view(view_index);
+ }
+
+ // get the minimum width/height and set it on the target
+ s32 width = m_snap_width;
+ s32 height = m_snap_height;
+ if (width == 0 || height == 0)
+ m_snap_target->compute_minimum_size(width, height);
+ m_snap_target->set_bounds(width, height);
+
+ // if we don't have a bitmap, or if it's not the right size, allocate a new one
+ if (!m_snap_bitmap.valid() || width != m_snap_bitmap.width() || height != m_snap_bitmap.height())
+ m_snap_bitmap.allocate(width, height);
+
+ // render the screen there
+ render_primitive_list &primlist = m_snap_target->get_primitives();
+ primlist.acquire_lock();
+ if (machine().options().snap_bilinear())
+ snap_renderer_bilinear::draw_primitives(primlist, &m_snap_bitmap.pix32(0), width, height, m_snap_bitmap.rowpixels());
+ else
+ snap_renderer::draw_primitives(primlist, &m_snap_bitmap.pix32(0), width, height, m_snap_bitmap.rowpixels());
+ primlist.release_lock();
+}
+
+
+//-------------------------------------------------
+// open_next - open the next non-existing file of
+// type filetype according to our numbering
+// scheme
+//-------------------------------------------------
+
+osd_file::error video_manager::open_next(emu_file &file, const char *extension)
+{
+ u32 origflags = file.openflags();
+
+ // handle defaults
+ const char *snapname = machine().options().snap_name();
+
+ if (snapname == nullptr || snapname[0] == 0)
+ snapname = "%g/%i";
+ std::string snapstr(snapname);
+
+ // strip any extension in the provided name
+ int index = snapstr.find_last_of('.');
+ if (index != -1)
+ snapstr = snapstr.substr(0, index);
+
+ // handle %d in the template (for image devices)
+ std::string snapdev("%d_");
+ int pos = snapstr.find(snapdev);
+
+ if (pos != -1)
+ {
+ // if more %d are found, revert to default and ignore them all
+ if (snapstr.find(snapdev.c_str(), pos + 3) != -1)
+ snapstr.assign("%g/%i");
+ // else if there is a single %d, try to create the correct snapname
+ else
+ {
+ int name_found = 0;
+
+ // find length of the device name
+ int end1 = snapstr.find("/", pos + 3);
+ int end2 = snapstr.find("%", pos + 3);
+ int end;
+
+ if ((end1 != -1) && (end2 != -1))
+ end = std::min(end1, end2);
+ else if (end1 != -1)
+ end = end1;
+ else if (end2 != -1)
+ end = end2;
+ else
+ end = snapstr.length();
+
+ if (end - pos < 3)
+ fatalerror("Something very wrong is going on!!!\n");
+
+ // copy the device name to an std::string
+ std::string snapdevname;
+ snapdevname.assign(snapstr.substr(pos + 3, end - pos - 3));
+ //printf("check template: %s\n", snapdevname.c_str());
+
+ // verify that there is such a device for this system
+ for (device_image_interface &image : image_interface_iterator(machine().root_device()))
+ {
+ // get the device name
+ std::string tempdevname(image.brief_instance_name());
+ //printf("check device: %s\n", tempdevname.c_str());
+
+ if (snapdevname.compare(tempdevname) == 0)
+ {
+ // verify that such a device has an image mounted
+ if (image.basename() != nullptr)
+ {
+ std::string filename(image.basename());
+
+ // strip extension
+ filename = filename.substr(0, filename.find_last_of('.'));
+
+ // setup snapname and remove the %d_
+ strreplace(snapstr, snapdevname.c_str(), filename.c_str());
+ snapstr.erase(pos, 3);
+ //printf("check image: %s\n", filename.c_str());
+
+ name_found = 1;
+ }
+ }
+ }
+
+ // or fallback to default
+ if (name_found == 0)
+ snapstr.assign("%g/%i");
+ }
+ }
+
+ // add our own extension
+ snapstr.append(".").append(extension);
+
+ // substitute path and gamename up front
+ strreplace(snapstr, "/", PATH_SEPARATOR);
+ strreplace(snapstr, "%g", machine().basename());
+
+ // determine if the template has an index; if not, we always use the same name
+ std::string fname;
+ if (snapstr.find("%i") == -1)
+ fname.assign(snapstr);
+
+ // otherwise, we scan for the next available filename
+ else
+ {
+ // try until we succeed
+ file.set_openflags(OPEN_FLAG_READ);
+ for (int seq = 0; ; seq++)
+ {
+ // build up the filename
+ fname.assign(snapstr);
+ strreplace(fname, "%i", string_format("%04d", seq).c_str());
+
+ // try to open the file; stop when we fail
+ osd_file::error filerr = file.open(fname.c_str());
+ if (filerr != osd_file::error::NONE)
+ break;
+ }
+ }
+
+ // create the final file
+ file.set_openflags(origflags);
+ return file.open(fname.c_str());
+}
+
+
+//-------------------------------------------------
+// record_frame - record a frame of a movie
+//-------------------------------------------------
+
+void video_manager::record_frame()
+{
+ // ignore if nothing to do
+ if (m_mng_file == nullptr && m_avi_file == nullptr)
+ return;
+
+ // start the profiler and get the current time
+ g_profiler.start(PROFILER_MOVIE_REC);
+ attotime curtime = machine().time();
+
+ // create the bitmap
+ create_snapshot_bitmap(nullptr);
+
+ // handle an AVI recording
+ if (m_avi_file != nullptr)
+ {
+ // loop until we hit the right time
+ while (m_avi_next_frame_time <= curtime)
+ {
+ // write the next frame
+ avi_file::error avierr = m_avi_file->append_video_frame(m_snap_bitmap);
+ if (avierr != avi_file::error::NONE)
+ {
+ g_profiler.stop();
+ end_recording(MF_AVI);
+ break;
+ }
+
+ // advance time
+ m_avi_next_frame_time += m_avi_frame_period;
+ m_avi_frame++;
+ }
+ }
+
+ // handle a MNG recording
+ if (m_mng_file != nullptr)
+ {
+ // loop until we hit the right time
+ while (m_mng_next_frame_time <= curtime)
+ {
+ // set up the text fields in the movie info
+ png_info pnginfo = { nullptr };
+ if (m_mng_frame == 0)
+ {
+ std::string text1 = std::string(emulator_info::get_appname()).append(" ").append(emulator_info::get_build_version());
+ std::string text2 = std::string(machine().system().manufacturer).append(" ").append(machine().system().description);
+ png_add_text(&pnginfo, "Software", text1.c_str());
+ png_add_text(&pnginfo, "System", text2.c_str());
+ }
+
+ // write the next frame
+ screen_device *screen = machine().first_screen();
+ const rgb_t *palette = (screen != nullptr && screen->has_palette()) ? screen->palette().palette()->entry_list_adjusted() : nullptr;
+ int entries = (screen != nullptr && screen->has_palette()) ? screen->palette().entries() : 0;
+ png_error error = mng_capture_frame(*m_mng_file, &pnginfo, m_snap_bitmap, entries, palette);
+ png_free(&pnginfo);
+ if (error != PNGERR_NONE)
+ {
+ g_profiler.stop();
+ end_recording(MF_MNG);
+ break;
+ }
+
+ // advance time
+ m_mng_next_frame_time += m_mng_frame_period;
+ m_mng_frame++;
+ }
+ }
+
+ g_profiler.stop();
+}
+
+//-------------------------------------------------
+// toggle_throttle
+//-------------------------------------------------
+
+void video_manager::toggle_throttle()
+{
+ set_throttled(!throttled());
+}
+
+
+//-------------------------------------------------
+// toggle_record_movie
+//-------------------------------------------------
+
+void video_manager::toggle_record_movie()
+{
+ if (!is_recording())
+ {
+ begin_recording(nullptr, MF_MNG);
+ machine().popmessage("REC START");
+ }
+ else
+ {
+ end_recording(MF_MNG);
+ machine().popmessage("REC STOP");
+ }
+}
diff --git a/docs/release/src/emu/video.h b/docs/release/src/emu/video.h
new file mode 100644
index 00000000000..b7b9e4b1fa0
--- /dev/null
+++ b/docs/release/src/emu/video.h
@@ -0,0 +1,208 @@
+// license:BSD-3-Clause
+// copyright-holders:Aaron Giles
+/***************************************************************************
+
+ video.h
+
+ Core MAME video routines.
+
+***************************************************************************/
+
+#pragma once
+
+#ifndef __EMU_H__
+#error Dont include this file directly; include emu.h instead.
+#endif
+
+#ifndef MAME_EMU_VIDEO_H
+#define MAME_EMU_VIDEO_H
+
+#include "aviio.h"
+
+
+//**************************************************************************
+// CONSTANTS
+//**************************************************************************
+
+// number of levels of frameskipping supported
+const int FRAMESKIP_LEVELS = 12;
+const int MAX_FRAMESKIP = FRAMESKIP_LEVELS - 2;
+
+#define LCD_FRAMES_PER_SECOND 30
+
+//**************************************************************************
+// TYPE DEFINITIONS
+//**************************************************************************
+
+// forward references
+class render_target;
+class screen_device;
+class avi_file;
+
+
+
+// ======================> video_manager
+
+class video_manager
+{
+ friend class screen_device;
+
+public:
+ // movie format options
+ enum movie_format
+ {
+ MF_MNG,
+ MF_AVI
+ };
+
+ // construction/destruction
+ video_manager(running_machine &machine);
+
+ // getters
+ running_machine &machine() const { return m_machine; }
+ bool skip_this_frame() const { return m_skipping_this_frame; }
+ int speed_factor() const { return m_speed; }
+ int frameskip() const { return m_auto_frameskip ? -1 : m_frameskip_level; }
+ bool throttled() const { return m_throttled; }
+ float throttle_rate() const { return m_throttle_rate; }
+ bool fastforward() const { return m_fastforward; }
+ bool is_recording() const { return (m_mng_file || m_avi_file); }
+
+ // setters
+ void set_speed_factor(int speed) { m_speed = speed; } // MESSUI
+ void set_frameskip(int frameskip);
+ void set_throttled(bool throttled = true) { m_throttled = throttled; }
+ void set_throttle_rate(float throttle_rate) { m_throttle_rate = throttle_rate; }
+ void set_fastforward(bool ffwd = true) { m_fastforward = ffwd; }
+ void set_output_changed() { m_output_changed = true; }
+
+ // misc
+ void toggle_throttle();
+ void toggle_record_movie();
+ osd_file::error open_next(emu_file &file, const char *extension);
+
+ // render a frame
+ void frame_update(bool from_debugger = false);
+
+ // current speed helpers
+ std::string speed_text();
+ double speed_percent() const { return m_speed_percent; }
+
+ // snapshots
+ void save_snapshot(screen_device *screen, emu_file &file);
+ void save_active_screen_snapshots();
+ void save_input_timecode();
+
+ // movies
+ void begin_recording(const char *name, movie_format format);
+ void end_recording(movie_format format);
+ void add_sound_to_recording(const s16 *sound, int numsamples);
+
+ void set_timecode_enabled(bool value) { m_timecode_enabled = value; }
+ bool get_timecode_enabled() { return m_timecode_enabled; }
+ bool get_timecode_write() { return m_timecode_write; }
+ void set_timecode_write(bool value) { m_timecode_write = value; }
+ void set_timecode_text(std::string &str) { m_timecode_text = str; }
+ void set_timecode_start(attotime time) { m_timecode_start = time; }
+ void add_to_total_time(attotime time) { m_timecode_total += time; }
+ std::string &timecode_text(std::string &str);
+ std::string &timecode_total_text(std::string &str);
+
+
+private:
+ // internal helpers
+ void exit();
+ void screenless_update_callback(void *ptr, int param);
+ void postload();
+
+ // effective value helpers
+ bool effective_autoframeskip() const;
+ int effective_frameskip() const;
+ bool effective_throttle() const;
+
+ // speed and throttling helpers
+ int original_speed_setting() const;
+ bool finish_screen_updates();
+ void update_throttle(attotime emutime);
+ osd_ticks_t throttle_until_ticks(osd_ticks_t target_ticks);
+ void update_frameskip();
+ void update_refresh_speed();
+ void recompute_speed(const attotime &emutime);
+
+ // snapshot/movie helpers
+ void create_snapshot_bitmap(screen_device *screen);
+ void record_frame();
+
+ // internal state
+ running_machine & m_machine; // reference to our machine
+
+ // screenless systems
+ emu_timer * m_screenless_frame_timer; // timer to signal VBLANK start
+ bool m_output_changed; // did an output element change?
+
+ // throttling calculations
+ osd_ticks_t m_throttle_last_ticks; // osd_ticks the last call to throttle
+ attotime m_throttle_realtime; // real time the last call to throttle
+ attotime m_throttle_emutime; // emulated time the last call to throttle
+ u32 m_throttle_history; // history of frames where we were fast enough
+
+ // dynamic speed computation
+ osd_ticks_t m_speed_last_realtime; // real time at the last speed calculation
+ attotime m_speed_last_emutime; // emulated time at the last speed calculation
+ double m_speed_percent; // most recent speed percentage
+
+ // overall speed computation
+ u32 m_overall_real_seconds; // accumulated real seconds at normal speed
+ osd_ticks_t m_overall_real_ticks; // accumulated real ticks at normal speed
+ attotime m_overall_emutime; // accumulated emulated time at normal speed
+ u32 m_overall_valid_counter; // number of consecutive valid time periods
+
+ // configuration
+ bool m_throttled; // flag: true if we're currently throttled
+ float m_throttle_rate; // target rate for throttling
+ bool m_fastforward; // flag: true if we're currently fast-forwarding
+ u32 m_seconds_to_run; // number of seconds to run before quitting
+ bool m_auto_frameskip; // flag: true if we're automatically frameskipping
+ u32 m_speed; // overall speed (*1000)
+
+ // frameskipping
+ u8 m_empty_skip_count; // number of empty frames we have skipped
+ u8 m_frameskip_level; // current frameskip level
+ u8 m_frameskip_counter; // counter that counts through the frameskip steps
+ s8 m_frameskip_adjust;
+ bool m_skipping_this_frame; // flag: true if we are skipping the current frame
+ osd_ticks_t m_average_oversleep; // average number of ticks the OSD oversleeps
+
+ // snapshot stuff
+ render_target * m_snap_target; // screen shapshot target
+ bitmap_rgb32 m_snap_bitmap; // screen snapshot bitmap
+ bool m_snap_native; // are we using native per-screen layouts?
+ s32 m_snap_width; // width of snapshots (0 == auto)
+ s32 m_snap_height; // height of snapshots (0 == auto)
+
+ // movie recording - MNG
+ std::unique_ptr<emu_file> m_mng_file; // handle to the open movie file
+ attotime m_mng_frame_period; // period of a single movie frame
+ attotime m_mng_next_frame_time; // time of next frame
+ u32 m_mng_frame; // current movie frame number
+
+ // movie recording - AVI
+ avi_file::ptr m_avi_file; // handle to the open movie file
+ attotime m_avi_frame_period; // period of a single movie frame
+ attotime m_avi_next_frame_time; // time of next frame
+ u32 m_avi_frame; // current movie frame number
+
+ static const bool s_skiptable[FRAMESKIP_LEVELS][FRAMESKIP_LEVELS];
+
+ static const attoseconds_t ATTOSECONDS_PER_SPEED_UPDATE = ATTOSECONDS_PER_SECOND / 4;
+ static const int PAUSED_REFRESH_RATE = 30;
+
+ bool m_timecode_enabled; // inp.timecode record enabled
+ bool m_timecode_write; // Show/hide timer at right (partial time)
+ std::string m_timecode_text; // Message for that video part (intro, gameplay, extra)
+ attotime m_timecode_start; // Starting timer for that video part (intro, gameplay, extra)
+ attotime m_timecode_total; // Show/hide timer at left (total elapsed on resulting video preview)
+
+};
+
+#endif // MAME_EMU_VIDEO_H
diff --git a/docs/release/src/frontend/mame/audit.cpp b/docs/release/src/frontend/mame/audit.cpp
new file mode 100644
index 00000000000..d3f9790a4e0
--- /dev/null
+++ b/docs/release/src/frontend/mame/audit.cpp
@@ -0,0 +1,639 @@
+// license:BSD-3-Clause
+// copyright-holders:Aaron Giles
+/***************************************************************************
+
+ audit.cpp
+
+ ROM set auditing functions.
+
+***************************************************************************/
+
+#include "emu.h"
+#include "emuopts.h"
+#include "audit.h"
+#include "chd.h"
+#include "drivenum.h"
+#include "sound/samples.h"
+#include "softlist_dev.h"
+
+
+//**************************************************************************
+// CORE FUNCTIONS
+//**************************************************************************
+
+//-------------------------------------------------
+// media_auditor - constructor
+//-------------------------------------------------
+
+media_auditor::media_auditor(const driver_enumerator &enumerator)
+ : m_enumerator(enumerator)
+ , m_validation(AUDIT_VALIDATE_FULL)
+ , m_searchpath(nullptr)
+{
+}
+
+
+//-------------------------------------------------
+// audit_media - audit the media described by the
+// currently-enumerated driver
+//-------------------------------------------------
+
+media_auditor::summary media_auditor::audit_media(const char *validation)
+{
+ // start fresh
+ m_record_list.clear();
+
+ // store validation for later
+ m_validation = validation;
+
+// temporary hack until romload is update: get the driver path and support it for
+// all searches
+const char *driverpath = m_enumerator.config()->root_device().searchpath();
+
+ std::size_t found = 0;
+ std::size_t required = 0;
+ std::size_t shared_found = 0;
+ std::size_t shared_required = 0;
+
+ // iterate over devices and regions
+ for (device_t &device : device_iterator(m_enumerator.config()->root_device()))
+ {
+ // determine the search path for this source and iterate through the regions
+ m_searchpath = device.searchpath();
+
+ // now iterate over regions and ROMs within
+ for (const rom_entry *region = rom_first_region(device); region; region = rom_next_region(region))
+ {
+// temporary hack: add the driver path & region name
+std::string combinedpath = util::string_format("%s;%s", device.searchpath(), driverpath);
+if (device.shortname())
+ combinedpath.append(";").append(device.shortname());
+m_searchpath = combinedpath.c_str();
+
+ for (const rom_entry *rom = rom_first_file(region); rom; rom = rom_next_file(rom))
+ {
+ char const *const name(ROM_GETNAME(rom));
+ util::hash_collection const hashes(ROM_GETHASHDATA(rom));
+ device_t *const shared_device(find_shared_device(device, name, hashes, ROM_GETLENGTH(rom)));
+
+ // count the number of files with hashes
+ if (!hashes.flag(util::hash_collection::FLAG_NO_DUMP) && !ROM_ISOPTIONAL(rom))
+ {
+ required++;
+ if (shared_device)
+ shared_required++;
+ }
+
+ audit_record *record = nullptr;
+ if (ROMREGION_ISROMDATA(region))
+ record = &audit_one_rom(rom);
+ else if (ROMREGION_ISDISKDATA(region))
+ record = &audit_one_disk(rom, nullptr);
+
+ if (record)
+ {
+ // count the number of files that are found.
+ if ((record->status() == audit_status::GOOD) || ((record->status() == audit_status::FOUND_INVALID) && !find_shared_device(device, name, record->actual_hashes(), record->actual_length())))
+ {
+ found++;
+ if (shared_device)
+ shared_found++;
+ }
+
+ record->set_shared_device(shared_device);
+ }
+ }
+ }
+ }
+
+ // if we only find files that are in the parent & either the set has no unique files or the parent is not found, then assume we don't have the set at all
+ if ((found == shared_found) && (required > 0) && ((required != shared_required) || (shared_found == 0)))
+ {
+ m_record_list.clear();
+ return NOTFOUND;
+ }
+
+ // return a summary
+ return summarize(m_enumerator.driver().name);
+}
+
+
+//-------------------------------------------------
+// audit_device - audit the device
+//-------------------------------------------------
+
+media_auditor::summary media_auditor::audit_device(device_t &device, const char *validation)
+{
+ // start fresh
+ m_record_list.clear();
+
+ // store validation for later
+ m_validation = validation;
+ m_searchpath = device.shortname();
+
+ std::size_t found = 0;
+ std::size_t required = 0;
+
+ audit_regions(rom_first_region(device), nullptr, found, required);
+
+ if ((found == 0) && (required > 0))
+ {
+ m_record_list.clear();
+ return NOTFOUND;
+ }
+
+ // return a summary
+ return summarize(device.shortname());
+}
+
+
+//-------------------------------------------------
+// audit_software
+//-------------------------------------------------
+media_auditor::summary media_auditor::audit_software(const std::string &list_name, const software_info *swinfo, const char *validation)
+{
+ // start fresh
+ m_record_list.clear();
+
+ // store validation for later
+ m_validation = validation;
+
+ std::string combinedpath(util::string_format("%s;%s%s%s", swinfo->shortname(), list_name, PATH_SEPARATOR, swinfo->shortname()));
+ std::string locationtag(util::string_format("%s%%%s%%", list_name, swinfo->shortname()));
+ if (!swinfo->parentname().empty())
+ {
+ locationtag.append(swinfo->parentname());
+ combinedpath.append(util::string_format(";%s;%s%s%s", swinfo->parentname(), list_name, PATH_SEPARATOR, swinfo->parentname()));
+ }
+ m_searchpath = combinedpath.c_str();
+
+ std::size_t found = 0;
+ std::size_t required = 0;
+
+ // now iterate over software parts
+ for (const software_part &part : swinfo->parts())
+ audit_regions(part.romdata().data(), locationtag.c_str(), found, required);
+
+ if ((found == 0) && (required > 0))
+ {
+ m_record_list.clear();
+ return NOTFOUND;
+ }
+
+ // return a summary
+ return summarize(list_name.c_str());
+}
+
+
+//-------------------------------------------------
+// audit_samples - validate the samples for the
+// currently-enumerated driver
+//-------------------------------------------------
+
+media_auditor::summary media_auditor::audit_samples()
+{
+ // start fresh
+ m_record_list.clear();
+
+ std::size_t required = 0;
+ std::size_t found = 0;
+
+ // iterate over sample entries
+ for (samples_device &device : samples_device_iterator(m_enumerator.config()->root_device()))
+ {
+ // by default we just search using the driver name
+ std::string searchpath(m_enumerator.driver().name);
+
+ // add the alternate path if present
+ samples_iterator iter(device);
+ if (iter.altbasename() != nullptr)
+ searchpath.append(";").append(iter.altbasename());
+
+ // iterate over samples in this entry
+ for (const char *samplename = iter.first(); samplename; samplename = iter.next())
+ {
+ required++;
+
+ // create a new record
+ audit_record &record = *m_record_list.emplace(m_record_list.end(), samplename, media_type::SAMPLE);
+
+ // look for the files
+ emu_file file(m_enumerator.options().sample_path(), OPEN_FLAG_READ | OPEN_FLAG_NO_PRELOAD);
+ path_iterator path(searchpath.c_str());
+ std::string curpath;
+ while (path.next(curpath, samplename))
+ {
+ // attempt to access the file (.flac) or (.wav)
+ osd_file::error filerr = file.open(curpath.c_str(), ".flac");
+ if (filerr != osd_file::error::NONE)
+ filerr = file.open(curpath.c_str(), ".wav");
+
+ if (filerr == osd_file::error::NONE)
+ {
+ record.set_status(audit_status::GOOD, audit_substatus::GOOD);
+ found++;
+ }
+ else
+ {
+ record.set_status(audit_status::NOT_FOUND, audit_substatus::NOT_FOUND);
+ }
+ }
+ }
+ }
+
+ if ((found == 0) && (required > 0))
+ {
+ m_record_list.clear();
+ return NOTFOUND;
+ }
+
+ // return a summary
+ return summarize(m_enumerator.driver().name);
+}
+
+
+//-------------------------------------------------
+// summary - generate a summary, with an optional
+// string format
+//-------------------------------------------------
+
+media_auditor::summary media_auditor::summarize(const char *name, std::ostream *output) const
+{
+ if (m_record_list.empty())
+ return NONE_NEEDED;
+
+ // loop over records
+ summary overall_status = CORRECT;
+ for (audit_record const &record : m_record_list)
+ {
+ // skip anything that's fine
+ if (record.substatus() == audit_substatus::GOOD)
+ continue;
+
+ // output the game name, file name, and length (if applicable)
+ if (output)
+ {
+ util::stream_format(*output, "%-12s: %s", name, record.name());
+ if (record.expected_length() > 0)
+ util::stream_format(*output, " (%d bytes)", record.expected_length());
+ *output << " - ";
+ }
+
+ // use the substatus for finer details
+ summary best_new_status = INCORRECT;
+ switch (record.substatus())
+ {
+ case audit_substatus::GOOD_NEEDS_REDUMP:
+ if (output) *output << "NEEDS REDUMP\n";
+ best_new_status = BEST_AVAILABLE;
+ break;
+
+ case audit_substatus::FOUND_NODUMP:
+ if (output) *output << "NO GOOD DUMP KNOWN\n";
+ best_new_status = BEST_AVAILABLE;
+ break;
+
+ case audit_substatus::FOUND_BAD_CHECKSUM:
+ if (output)
+ {
+ util::stream_format(*output, "INCORRECT CHECKSUM:\n");
+ util::stream_format(*output, "EXPECTED: %s\n", record.expected_hashes().macro_string());
+ util::stream_format(*output, " FOUND: %s\n", record.actual_hashes().macro_string());
+ }
+ break;
+
+ case audit_substatus::FOUND_WRONG_LENGTH:
+ if (output) util::stream_format(*output, "INCORRECT LENGTH: %d bytes\n", record.actual_length());
+ break;
+
+ case audit_substatus::NOT_FOUND:
+ if (output)
+ {
+ device_t *const shared_device = record.shared_device();
+ if (shared_device)
+ util::stream_format(*output, "NOT FOUND (%s)\n", shared_device->shortname());
+ else
+ util::stream_format(*output, "NOT FOUND\n");
+ }
+ break;
+
+ case audit_substatus::NOT_FOUND_NODUMP:
+ if (output) *output << "NOT FOUND - NO GOOD DUMP KNOWN\n";
+ best_new_status = BEST_AVAILABLE;
+ break;
+
+ case audit_substatus::NOT_FOUND_OPTIONAL:
+ if (output) *output << "NOT FOUND BUT OPTIONAL\n";
+ best_new_status = BEST_AVAILABLE;
+ break;
+
+ default:
+ assert(false);
+ }
+
+ // downgrade the overall status if necessary
+ overall_status = (std::max)(overall_status, best_new_status);
+ }
+ return overall_status;
+}
+
+
+//-------------------------------------------------
+// audit_regions - validate/count for regions
+//-------------------------------------------------
+
+void media_auditor::audit_regions(const rom_entry *region, const char *locationtag, std::size_t &found, std::size_t &required)
+{
+ // now iterate over regions
+ for ( ; region; region = rom_next_region(region))
+ {
+ // now iterate over rom definitions
+ for (const rom_entry *rom = rom_first_file(region); rom; rom = rom_next_file(rom))
+ {
+ util::hash_collection const hashes(ROM_GETHASHDATA(rom));
+
+ // count the number of files with hashes
+ if (!hashes.flag(util::hash_collection::FLAG_NO_DUMP) && !ROM_ISOPTIONAL(rom))
+ required++;
+
+ audit_record const *record = nullptr;
+ if (ROMREGION_ISROMDATA(region))
+ record = &audit_one_rom(rom);
+ else if (ROMREGION_ISDISKDATA(region))
+ record = &audit_one_disk(rom, locationtag);
+
+ // count the number of files that are found.
+ if (record && ((record->status() == audit_status::GOOD) || (record->status() == audit_status::FOUND_INVALID)))
+ found++;
+ }
+ }
+}
+
+
+//-------------------------------------------------
+// audit_one_rom - validate a single ROM entry
+//-------------------------------------------------
+
+media_auditor::audit_record &media_auditor::audit_one_rom(const rom_entry *rom)
+{
+ // allocate and append a new record
+ audit_record &record = *m_record_list.emplace(m_record_list.end(), *rom, media_type::ROM);
+
+ // see if we have a CRC and extract it if so
+ uint32_t crc = 0;
+ bool const has_crc = record.expected_hashes().crc(crc);
+
+ // find the file and checksum it, getting the file length along the way
+ emu_file file(m_enumerator.options().media_path(), OPEN_FLAG_READ | OPEN_FLAG_NO_PRELOAD);
+ file.set_restrict_to_mediapath(true);
+ path_iterator path(m_searchpath);
+ std::string curpath;
+ while (path.next(curpath, record.name()))
+ {
+ // open the file if we can
+ osd_file::error filerr;
+ if (has_crc)
+ filerr = file.open(curpath.c_str(), crc);
+ else
+ filerr = file.open(curpath.c_str());
+
+ // if it worked, get the actual length and hashes, then stop
+ if (filerr == osd_file::error::NONE)
+ {
+ record.set_actual(file.hashes(m_validation), file.size());
+ break;
+ }
+ }
+
+ // compute the final status
+ compute_status(record, rom, record.actual_length() != 0);
+ return record;
+}
+
+
+//-------------------------------------------------
+// audit_one_disk - validate a single disk entry
+//-------------------------------------------------
+
+media_auditor::audit_record &media_auditor::audit_one_disk(const rom_entry *rom, const char *locationtag)
+{
+ // allocate and append a new record
+ audit_record &record = *m_record_list.emplace(m_record_list.end(), *rom, media_type::DISK);
+
+ // open the disk
+ chd_file source;
+ chd_error err = chd_error(open_disk_image(m_enumerator.options(), &m_enumerator.driver(), rom, source, locationtag));
+
+ // if we succeeded, get the hashes
+ if (err == CHDERR_NONE)
+ {
+ util::hash_collection hashes;
+
+ // if there's a SHA1 hash, add them to the output hash
+ if (source.sha1() != util::sha1_t::null)
+ hashes.add_sha1(source.sha1());
+
+ // update the actual values
+ record.set_actual(hashes);
+ }
+
+ // compute the final status
+ compute_status(record, rom, err == CHDERR_NONE);
+ return record;
+}
+
+
+//-------------------------------------------------
+// compute_status - compute a detailed status
+// based on the information we have
+//-------------------------------------------------
+
+void media_auditor::compute_status(audit_record &record, const rom_entry *rom, bool found)
+{
+ // if not found, provide more details
+ if (!found)
+ {
+ if (record.expected_hashes().flag(util::hash_collection::FLAG_NO_DUMP))
+ record.set_status(audit_status::NOT_FOUND, audit_substatus::NOT_FOUND_NODUMP);
+ else if (ROM_ISOPTIONAL(rom))
+ record.set_status(audit_status::NOT_FOUND, audit_substatus::NOT_FOUND_OPTIONAL);
+ else
+ record.set_status(audit_status::NOT_FOUND, audit_substatus::NOT_FOUND);
+ }
+ else
+ {
+ if (record.expected_length() != record.actual_length())
+ record.set_status(audit_status::FOUND_INVALID, audit_substatus::FOUND_WRONG_LENGTH);
+ else if (record.expected_hashes().flag(util::hash_collection::FLAG_NO_DUMP))
+ record.set_status(audit_status::GOOD, audit_substatus::FOUND_NODUMP);
+ else if (record.expected_hashes() != record.actual_hashes())
+ record.set_status(audit_status::FOUND_INVALID, audit_substatus::FOUND_BAD_CHECKSUM);
+ else if (record.expected_hashes().flag(util::hash_collection::FLAG_BAD_DUMP))
+ record.set_status(audit_status::GOOD, audit_substatus::GOOD_NEEDS_REDUMP);
+ else
+ record.set_status(audit_status::GOOD, audit_substatus::GOOD);
+ }
+}
+
+
+//-------------------------------------------------
+// find_shared_device - return the source that
+// shares a media entry with the same hashes
+//-------------------------------------------------
+
+device_t *media_auditor::find_shared_device(device_t &device, const char *name, const util::hash_collection &romhashes, uint64_t romlength)
+{
+ bool const dumped = !romhashes.flag(util::hash_collection::FLAG_NO_DUMP);
+
+ // special case for non-root devices
+ device_t *highest_device = nullptr;
+ if (device.owner())
+ {
+ for (const rom_entry *region = rom_first_region(device); region; region = rom_next_region(region))
+ {
+ for (const rom_entry *rom = rom_first_file(region); rom; rom = rom_next_file(rom))
+ {
+ if (ROM_GETLENGTH(rom) == romlength)
+ {
+ util::hash_collection hashes(ROM_GETHASHDATA(rom));
+ if ((dumped && hashes == romhashes) || (!dumped && ROM_GETNAME(rom) == name))
+ highest_device = &device;
+ }
+ }
+ }
+ }
+ else
+ {
+ // iterate up the parent chain
+ for (auto drvindex = m_enumerator.find(m_enumerator.driver().parent); drvindex >= 0; drvindex = m_enumerator.find(m_enumerator.driver(drvindex).parent))
+ {
+ for (device_t &scandevice : device_iterator(m_enumerator.config(drvindex)->root_device()))
+ {
+ for (const rom_entry *region = rom_first_region(scandevice); region; region = rom_next_region(region))
+ {
+ for (const rom_entry *rom = rom_first_file(region); rom; rom = rom_next_file(rom))
+ {
+ if (ROM_GETLENGTH(rom) == romlength)
+ {
+ util::hash_collection hashes(ROM_GETHASHDATA(rom));
+ if ((dumped && hashes == romhashes) || (!dumped && ROM_GETNAME(rom) == name))
+ highest_device = &scandevice;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ return highest_device;
+}
+
+
+//-------------------------------------------------
+// audit_record - constructor
+//-------------------------------------------------
+
+media_auditor::audit_record::audit_record(const rom_entry &media, media_type type)
+ : m_type(type)
+ , m_status(audit_status::UNVERIFIED)
+ , m_substatus(audit_substatus::UNVERIFIED)
+ , m_name(ROM_GETNAME(&media))
+ , m_explength(rom_file_size(&media))
+ , m_length(0)
+ , m_exphashes()
+ , m_hashes()
+ , m_shared_device(nullptr)
+{
+ m_exphashes.from_internal_string(ROM_GETHASHDATA(&media));
+}
+
+media_auditor::audit_record::audit_record(const char *name, media_type type)
+ : m_type(type)
+ , m_status(audit_status::UNVERIFIED)
+ , m_substatus(audit_substatus::UNVERIFIED)
+ , m_name(name)
+ , m_explength(0)
+ , m_length(0)
+ , m_exphashes()
+ , m_hashes()
+ , m_shared_device(nullptr)
+{
+}
+
+
+
+// MESSUI - only report problems that the user can fix
+media_auditor::summary media_auditor::winui_summarize(const char *name, std::string *output)
+{
+ if (m_record_list.empty())
+ return NONE_NEEDED;
+
+ // loop over records
+ summary overall_status = CORRECT;
+ for (audit_record const &record : m_record_list)
+ {
+ summary best_new_status = INCORRECT;
+
+ // skip anything that's fine
+ if ( (record.substatus() == audit_substatus::GOOD)
+ || (record.substatus() == audit_substatus::GOOD_NEEDS_REDUMP)
+ || (record.substatus() == audit_substatus::NOT_FOUND_NODUMP)
+ || (record.substatus() == audit_substatus::FOUND_NODUMP)
+ )
+ continue;
+
+ // output the game name, file name, and length (if applicable)
+ //if (output)
+ {
+ output->append(string_format("%-12s: %s", name, record.name()));
+ if (record.expected_length() > 0)
+ output->append(string_format(" (%d bytes)", record.expected_length()));
+ output->append(" - ");
+ }
+
+ // use the substatus for finer details
+ switch (record.substatus())
+ {
+ case audit_substatus::FOUND_NODUMP:
+ if (output) output->append("NO GOOD DUMP KNOWN\n");
+ best_new_status = BEST_AVAILABLE;
+ break;
+
+ case audit_substatus::FOUND_BAD_CHECKSUM:
+ if (output)
+ {
+ output->append("INCORRECT CHECKSUM:\n");
+ output->append(string_format("EXPECTED: %s\n", record.expected_hashes().macro_string().c_str()));
+ output->append(string_format(" FOUND: %s\n", record.actual_hashes().macro_string().c_str()));
+ }
+ break;
+
+ case audit_substatus::FOUND_WRONG_LENGTH:
+ if (output) output->append(string_format("INCORRECT LENGTH: %d bytes\n", record.actual_length()));
+ break;
+
+ case audit_substatus::NOT_FOUND:
+ if (output)
+ {
+ device_t *shared_device = record.shared_device();
+ if (shared_device == NULL)
+ output->append("NOT FOUND\n");
+ else
+ output->append(string_format("NOT FOUND (%s)\n", shared_device->shortname()));
+ }
+ break;
+
+ case audit_substatus::NOT_FOUND_OPTIONAL:
+ if (output) output->append("NOT FOUND BUT OPTIONAL\n");
+ best_new_status = BEST_AVAILABLE;
+ break;
+
+ default:
+ break;
+ }
+
+ // downgrade the overall status if necessary
+ overall_status = (std::max)(overall_status, best_new_status);
+ }
+ return overall_status;
+}
diff --git a/docs/release/src/frontend/mame/audit.h b/docs/release/src/frontend/mame/audit.h
new file mode 100644
index 00000000000..c017651842f
--- /dev/null
+++ b/docs/release/src/frontend/mame/audit.h
@@ -0,0 +1,182 @@
+// license:BSD-3-Clause
+// copyright-holders:Aaron Giles
+/***************************************************************************
+
+ audit.h
+
+ ROM, disk, and sample auditing functions.
+
+***************************************************************************/
+
+#pragma once
+
+#ifndef MAME_FRONTEND_AUDIT_H
+#define MAME_FRONTEND_AUDIT_H
+
+#include "hash.h"
+
+#include <iosfwd>
+#include <list>
+#include <utility>
+
+
+
+//**************************************************************************
+// CONSTANTS
+//**************************************************************************
+
+// hashes to use for validation
+#define AUDIT_VALIDATE_FAST "R" /* CRC only */
+#define AUDIT_VALIDATE_FULL "RS" /* CRC + SHA1 */
+
+
+
+//**************************************************************************
+// TYPE DEFINITIONS
+//**************************************************************************
+
+
+// forward declarations
+class driver_enumerator;
+
+
+
+// ======================> media_auditor
+
+// class which manages auditing of items
+class media_auditor
+{
+public:
+ enum class media_type
+ {
+ ROM = 0,
+ DISK,
+ SAMPLE
+ };
+
+ // status values
+ enum class audit_status
+ {
+ GOOD = 0,
+ FOUND_INVALID,
+ NOT_FOUND,
+ UNVERIFIED = 100
+ };
+
+ // substatus values
+ enum class audit_substatus
+ {
+ GOOD = 0,
+ GOOD_NEEDS_REDUMP,
+ FOUND_NODUMP,
+ FOUND_BAD_CHECKSUM,
+ FOUND_WRONG_LENGTH,
+ NOT_FOUND,
+ NOT_FOUND_NODUMP,
+ NOT_FOUND_OPTIONAL,
+ UNVERIFIED = 100
+ };
+
+ // summary values
+ enum summary
+ {
+ CORRECT = 0,
+ NONE_NEEDED,
+ BEST_AVAILABLE,
+ INCORRECT,
+ NOTFOUND
+ };
+
+ // holds the result of auditing a single item
+ class audit_record
+ {
+ public:
+ // media types
+ // construction/destruction
+ audit_record(const rom_entry &media, media_type type);
+ audit_record(const char *name, media_type type);
+ audit_record(const audit_record &) = default;
+ audit_record(audit_record &&) = default;
+ audit_record &operator=(const audit_record &) = default;
+ audit_record &operator=(audit_record &&) = default;
+
+ // getters
+ media_type type() const { return m_type; }
+ audit_status status() const { return m_status; }
+ audit_substatus substatus() const { return m_substatus; }
+ const char *name() const { return m_name; }
+ uint64_t expected_length() const { return m_explength; }
+ uint64_t actual_length() const { return m_length; }
+ const util::hash_collection &expected_hashes() const { return m_exphashes; }
+ const util::hash_collection &actual_hashes() const { return m_hashes; }
+ device_t *shared_device() const { return m_shared_device; }
+
+ // setters
+ void set_status(audit_status status, audit_substatus substatus)
+ {
+ m_status = status;
+ m_substatus = substatus;
+ }
+
+ void set_actual(const util::hash_collection &hashes, uint64_t length = 0)
+ {
+ m_hashes = hashes;
+ m_length = length;
+ }
+
+ void set_actual(util::hash_collection &&hashes, uint64_t length = 0)
+ {
+ m_hashes = std::move(hashes);
+ m_length = length;
+ }
+
+ void set_shared_device(device_t *shared_device)
+ {
+ m_shared_device = shared_device;
+ }
+
+ private:
+ // internal state
+ media_type m_type; // type of item that was audited
+ audit_status m_status; // status of audit on this item
+ audit_substatus m_substatus; // finer-detail status
+ const char * m_name; // name of item
+ uint64_t m_explength; // expected length of item
+ uint64_t m_length; // actual length of item
+ util::hash_collection m_exphashes; // expected hash data
+ util::hash_collection m_hashes; // actual hash information
+ device_t * m_shared_device; // device that shares the rom
+ };
+ using record_list = std::list<audit_record>;
+
+ // construction/destruction
+ media_auditor(const driver_enumerator &enumerator);
+
+ // getters
+ const record_list &records() const { return m_record_list; }
+
+ // audit operations
+ summary audit_media(const char *validation = AUDIT_VALIDATE_FULL);
+ summary audit_device(device_t &device, const char *validation = AUDIT_VALIDATE_FULL);
+ summary audit_software(const std::string &list_name, const software_info *swinfo, const char *validation = AUDIT_VALIDATE_FULL);
+ summary audit_samples();
+ summary summarize(const char *name, std::ostream *output = nullptr) const;
+ summary winui_summarize(const char *name, std::string *output = nullptr); //WINUI - only report problems that the user can fix
+
+private:
+ // internal helpers
+ void audit_regions(const rom_entry *region, const char *locationtag, std::size_t &found, std::size_t &required);
+ audit_record &audit_one_rom(const rom_entry *rom);
+ audit_record &audit_one_disk(const rom_entry *rom, const char *locationtag);
+ void compute_status(audit_record &record, const rom_entry *rom, bool found);
+ device_t *find_shared_device(device_t &device, const char *name, const util::hash_collection &romhashes, uint64_t romlength);
+
+ // internal state
+ record_list m_record_list;
+ const driver_enumerator & m_enumerator;
+ const char * m_validation;
+ const char * m_searchpath;
+};
+
+
+#endif // MAME_FRONTEND_AUDIT_H
diff --git a/docs/release/src/frontend/mame/info.cpp b/docs/release/src/frontend/mame/info.cpp
new file mode 100644
index 00000000000..fa742dfe2f4
--- /dev/null
+++ b/docs/release/src/frontend/mame/info.cpp
@@ -0,0 +1,1640 @@
+// license:BSD-3-Clause
+// copyright-holders:Aaron Giles,Paul Priest
+/***************************************************************************
+
+ info.c
+
+ Dumps the MAME internal data as an XML file.
+
+***************************************************************************/
+
+#include "emu.h"
+
+#include "info.h"
+#include "mameopts.h"
+
+#include "machine/ram.h"
+#include "sound/samples.h"
+
+#include "config.h"
+#include "drivenum.h"
+#include "screen.h"
+#include "softlist_dev.h"
+#include "speaker.h"
+
+#include "xmlfile.h"
+
+#include <ctype.h>
+
+
+#define XML_ROOT "mame"
+#define XML_TOP "machine"
+
+
+//**************************************************************************
+// GLOBAL VARIABLES
+//**************************************************************************
+
+// DTD string describing the data
+const char info_xml_creator::s_dtd_string[] =
+"<!DOCTYPE __XML_ROOT__ [\n"
+"<!ELEMENT __XML_ROOT__ (__XML_TOP__+)>\n"
+"\t<!ATTLIST __XML_ROOT__ build CDATA #IMPLIED>\n"
+"\t<!ATTLIST __XML_ROOT__ debug (yes|no) \"no\">\n"
+"\t<!ATTLIST __XML_ROOT__ mameconfig CDATA #REQUIRED>\n"
+"\t<!ELEMENT __XML_TOP__ (description, year?, manufacturer?, biosset*, rom*, disk*, device_ref*, sample*, chip*, display*, sound?, input?, dipswitch*, configuration*, port*, adjuster*, driver?, device*, slot*, softwarelist*, ramoption*)>\n"
+"\t\t<!ATTLIST __XML_TOP__ name CDATA #REQUIRED>\n"
+"\t\t<!ATTLIST __XML_TOP__ sourcefile CDATA #IMPLIED>\n"
+"\t\t<!ATTLIST __XML_TOP__ isbios (yes|no) \"no\">\n"
+"\t\t<!ATTLIST __XML_TOP__ isdevice (yes|no) \"no\">\n"
+"\t\t<!ATTLIST __XML_TOP__ ismechanical (yes|no) \"no\">\n"
+"\t\t<!ATTLIST __XML_TOP__ runnable (yes|no) \"yes\">\n"
+"\t\t<!ATTLIST __XML_TOP__ cloneof CDATA #IMPLIED>\n"
+"\t\t<!ATTLIST __XML_TOP__ romof CDATA #IMPLIED>\n"
+"\t\t<!ATTLIST __XML_TOP__ sampleof CDATA #IMPLIED>\n"
+"\t\t<!ELEMENT description (#PCDATA)>\n"
+"\t\t<!ELEMENT year (#PCDATA)>\n"
+"\t\t<!ELEMENT manufacturer (#PCDATA)>\n"
+"\t\t<!ELEMENT biosset EMPTY>\n"
+"\t\t\t<!ATTLIST biosset name CDATA #REQUIRED>\n"
+"\t\t\t<!ATTLIST biosset description CDATA #REQUIRED>\n"
+"\t\t\t<!ATTLIST biosset default (yes|no) \"no\">\n"
+"\t\t<!ELEMENT rom EMPTY>\n"
+"\t\t\t<!ATTLIST rom name CDATA #REQUIRED>\n"
+"\t\t\t<!ATTLIST rom bios CDATA #IMPLIED>\n"
+"\t\t\t<!ATTLIST rom size CDATA #REQUIRED>\n"
+"\t\t\t<!ATTLIST rom crc CDATA #IMPLIED>\n"
+"\t\t\t<!ATTLIST rom sha1 CDATA #IMPLIED>\n"
+"\t\t\t<!ATTLIST rom merge CDATA #IMPLIED>\n"
+"\t\t\t<!ATTLIST rom region CDATA #IMPLIED>\n"
+"\t\t\t<!ATTLIST rom offset CDATA #IMPLIED>\n"
+"\t\t\t<!ATTLIST rom status (baddump|nodump|good) \"good\">\n"
+"\t\t\t<!ATTLIST rom optional (yes|no) \"no\">\n"
+"\t\t<!ELEMENT disk EMPTY>\n"
+"\t\t\t<!ATTLIST disk name CDATA #REQUIRED>\n"
+"\t\t\t<!ATTLIST disk sha1 CDATA #IMPLIED>\n"
+"\t\t\t<!ATTLIST disk merge CDATA #IMPLIED>\n"
+"\t\t\t<!ATTLIST disk region CDATA #IMPLIED>\n"
+"\t\t\t<!ATTLIST disk index CDATA #IMPLIED>\n"
+"\t\t\t<!ATTLIST disk writable (yes|no) \"no\">\n"
+"\t\t\t<!ATTLIST disk status (baddump|nodump|good) \"good\">\n"
+"\t\t\t<!ATTLIST disk optional (yes|no) \"no\">\n"
+"\t\t<!ELEMENT device_ref EMPTY>\n"
+"\t\t\t<!ATTLIST device_ref name CDATA #REQUIRED>\n"
+"\t\t<!ELEMENT sample EMPTY>\n"
+"\t\t\t<!ATTLIST sample name CDATA #REQUIRED>\n"
+"\t\t<!ELEMENT chip EMPTY>\n"
+"\t\t\t<!ATTLIST chip name CDATA #REQUIRED>\n"
+"\t\t\t<!ATTLIST chip tag CDATA #IMPLIED>\n"
+"\t\t\t<!ATTLIST chip type (cpu|audio) #REQUIRED>\n"
+"\t\t\t<!ATTLIST chip clock CDATA #IMPLIED>\n"
+"\t\t<!ELEMENT display EMPTY>\n"
+"\t\t\t<!ATTLIST display tag CDATA #IMPLIED>\n"
+"\t\t\t<!ATTLIST display type (raster|vector|lcd|unknown) #REQUIRED>\n"
+"\t\t\t<!ATTLIST display rotate (0|90|180|270) #IMPLIED>\n"
+"\t\t\t<!ATTLIST display flipx (yes|no) \"no\">\n"
+"\t\t\t<!ATTLIST display width CDATA #IMPLIED>\n"
+"\t\t\t<!ATTLIST display height CDATA #IMPLIED>\n"
+"\t\t\t<!ATTLIST display refresh CDATA #REQUIRED>\n"
+"\t\t\t<!ATTLIST display pixclock CDATA #IMPLIED>\n"
+"\t\t\t<!ATTLIST display htotal CDATA #IMPLIED>\n"
+"\t\t\t<!ATTLIST display hbend CDATA #IMPLIED>\n"
+"\t\t\t<!ATTLIST display hbstart CDATA #IMPLIED>\n"
+"\t\t\t<!ATTLIST display vtotal CDATA #IMPLIED>\n"
+"\t\t\t<!ATTLIST display vbend CDATA #IMPLIED>\n"
+"\t\t\t<!ATTLIST display vbstart CDATA #IMPLIED>\n"
+"\t\t<!ELEMENT sound EMPTY>\n"
+"\t\t\t<!ATTLIST sound channels CDATA #REQUIRED>\n"
+"\t\t<!ELEMENT input (control*)>\n"
+"\t\t\t<!ATTLIST input service (yes|no) \"no\">\n"
+"\t\t\t<!ATTLIST input tilt (yes|no) \"no\">\n"
+"\t\t\t<!ATTLIST input players CDATA #REQUIRED>\n"
+"\t\t\t<!ATTLIST input coins CDATA #IMPLIED>\n"
+"\t\t\t<!ELEMENT control EMPTY>\n"
+"\t\t\t\t<!ATTLIST control type CDATA #REQUIRED>\n"
+"\t\t\t\t<!ATTLIST control player CDATA #IMPLIED>\n"
+"\t\t\t\t<!ATTLIST control buttons CDATA #IMPLIED>\n"
+"\t\t\t\t<!ATTLIST control reqbuttons CDATA #IMPLIED>\n"
+"\t\t\t\t<!ATTLIST control minimum CDATA #IMPLIED>\n"
+"\t\t\t\t<!ATTLIST control maximum CDATA #IMPLIED>\n"
+"\t\t\t\t<!ATTLIST control sensitivity CDATA #IMPLIED>\n"
+"\t\t\t\t<!ATTLIST control keydelta CDATA #IMPLIED>\n"
+"\t\t\t\t<!ATTLIST control reverse (yes|no) \"no\">\n"
+"\t\t\t\t<!ATTLIST control ways CDATA #IMPLIED>\n"
+"\t\t\t\t<!ATTLIST control ways2 CDATA #IMPLIED>\n"
+"\t\t\t\t<!ATTLIST control ways3 CDATA #IMPLIED>\n"
+"\t\t<!ELEMENT dipswitch (dipvalue*)>\n"
+"\t\t\t<!ATTLIST dipswitch name CDATA #REQUIRED>\n"
+"\t\t\t<!ATTLIST dipswitch tag CDATA #REQUIRED>\n"
+"\t\t\t<!ATTLIST dipswitch mask CDATA #REQUIRED>\n"
+"\t\t\t<!ELEMENT dipvalue EMPTY>\n"
+"\t\t\t\t<!ATTLIST dipvalue name CDATA #REQUIRED>\n"
+"\t\t\t\t<!ATTLIST dipvalue value CDATA #REQUIRED>\n"
+"\t\t\t\t<!ATTLIST dipvalue default (yes|no) \"no\">\n"
+"\t\t<!ELEMENT configuration (confsetting*)>\n"
+"\t\t\t<!ATTLIST configuration name CDATA #REQUIRED>\n"
+"\t\t\t<!ATTLIST configuration tag CDATA #REQUIRED>\n"
+"\t\t\t<!ATTLIST configuration mask CDATA #REQUIRED>\n"
+"\t\t\t<!ELEMENT confsetting EMPTY>\n"
+"\t\t\t\t<!ATTLIST confsetting name CDATA #REQUIRED>\n"
+"\t\t\t\t<!ATTLIST confsetting value CDATA #REQUIRED>\n"
+"\t\t\t\t<!ATTLIST confsetting default (yes|no) \"no\">\n"
+"\t\t<!ELEMENT port (analog*)>\n"
+"\t\t\t<!ATTLIST port tag CDATA #REQUIRED>\n"
+"\t\t\t<!ELEMENT analog EMPTY>\n"
+"\t\t\t\t<!ATTLIST analog mask CDATA #REQUIRED>\n"
+"\t\t<!ELEMENT adjuster EMPTY>\n"
+"\t\t\t<!ATTLIST adjuster name CDATA #REQUIRED>\n"
+"\t\t\t<!ATTLIST adjuster default CDATA #REQUIRED>\n"
+"\t\t<!ELEMENT driver EMPTY>\n"
+"\t\t\t<!ATTLIST driver status (good|imperfect|preliminary) #REQUIRED>\n"
+"\t\t\t<!ATTLIST driver emulation (good|imperfect|preliminary) #REQUIRED>\n"
+"\t\t\t<!ATTLIST driver color (good|imperfect|preliminary) #REQUIRED>\n"
+"\t\t\t<!ATTLIST driver sound (good|imperfect|preliminary) #REQUIRED>\n"
+"\t\t\t<!ATTLIST driver graphic (good|imperfect|preliminary) #REQUIRED>\n"
+"\t\t\t<!ATTLIST driver cocktail (good|imperfect|preliminary) #IMPLIED>\n"
+"\t\t\t<!ATTLIST driver protection (good|imperfect|preliminary) #IMPLIED>\n"
+"\t\t\t<!ATTLIST driver savestate (supported|unsupported) #REQUIRED>\n"
+"\t\t<!ELEMENT device (instance*, extension*)>\n"
+"\t\t\t<!ATTLIST device type CDATA #REQUIRED>\n"
+"\t\t\t<!ATTLIST device tag CDATA #IMPLIED>\n"
+"\t\t\t<!ATTLIST device fixed_image CDATA #IMPLIED>\n"
+"\t\t\t<!ATTLIST device mandatory CDATA #IMPLIED>\n"
+"\t\t\t<!ATTLIST device interface CDATA #IMPLIED>\n"
+"\t\t\t<!ELEMENT instance EMPTY>\n"
+"\t\t\t\t<!ATTLIST instance name CDATA #REQUIRED>\n"
+"\t\t\t\t<!ATTLIST instance briefname CDATA #REQUIRED>\n"
+"\t\t\t<!ELEMENT extension EMPTY>\n"
+"\t\t\t\t<!ATTLIST extension name CDATA #REQUIRED>\n"
+"\t\t<!ELEMENT slot (slotoption*)>\n"
+"\t\t\t<!ATTLIST slot name CDATA #REQUIRED>\n"
+"\t\t\t<!ELEMENT slotoption EMPTY>\n"
+"\t\t\t\t<!ATTLIST slotoption name CDATA #REQUIRED>\n"
+"\t\t\t\t<!ATTLIST slotoption devname CDATA #REQUIRED>\n"
+"\t\t\t\t<!ATTLIST slotoption default (yes|no) \"no\">\n"
+"\t\t<!ELEMENT softwarelist EMPTY>\n"
+"\t\t\t<!ATTLIST softwarelist name CDATA #REQUIRED>\n"
+"\t\t\t<!ATTLIST softwarelist status (original|compatible) #REQUIRED>\n"
+"\t\t\t<!ATTLIST softwarelist filter CDATA #IMPLIED>\n"
+"\t\t<!ELEMENT ramoption (#PCDATA)>\n"
+"\t\t\t<!ATTLIST ramoption default CDATA #IMPLIED>\n"
+"]>";
+
+
+//**************************************************************************
+// INFO XML CREATOR
+//**************************************************************************
+
+//-------------------------------------------------
+// info_xml_creator - constructor
+//-------------------------------------------------
+
+info_xml_creator::info_xml_creator(driver_enumerator &drivlist, bool filter_devices)
+ : m_output(nullptr)
+ , m_drivlist(drivlist)
+ , m_filter_devices(filter_devices)
+ , m_lookup_options(m_drivlist.options())
+{
+ mame_options::remove_device_options(m_lookup_options);
+}
+
+
+//-------------------------------------------------
+// output_mame_xml - print the XML information
+// for all known games
+//-------------------------------------------------
+
+void info_xml_creator::output(FILE *out, bool nodevices)
+{
+ m_output = out;
+
+ // output the DTD
+ fprintf(m_output, "<?xml version=\"1.0\"?>\n");
+ std::string dtd(s_dtd_string);
+ strreplace(dtd, "__XML_ROOT__", XML_ROOT);
+ strreplace(dtd, "__XML_TOP__", XML_TOP);
+
+ fprintf(m_output, "%s\n\n", dtd.c_str());
+
+ // top-level tag
+ fprintf(m_output, "<%s build=\"%s\" debug=\""
+#ifdef MAME_DEBUG
+ "yes"
+#else
+ "no"
+#endif
+ "\" mameconfig=\"%d\">\n",
+ XML_ROOT,
+ util::xml::normalize_string(emulator_info::get_build_version()),
+ CONFIG_VERSION
+ );
+
+ std::unique_ptr<device_type_set> devfilter((m_filter_devices && !nodevices) ? new device_type_set : nullptr);
+
+ // iterate through the drivers, outputting one at a time
+ while (m_drivlist.next())
+ output_one(devfilter.get());
+
+ // output devices (both devices with roms and slot devices)
+ if (!nodevices)
+ output_devices(devfilter.get());
+
+ // close the top level tag
+ fprintf(m_output, "</%s>\n",XML_ROOT);
+}
+
+
+//-------------------------------------------------
+// output_one - print the XML information
+// for one particular game driver
+//-------------------------------------------------
+
+void info_xml_creator::output_one(device_type_set *devtypes)
+{
+ // no action if not a game
+ const game_driver &driver = m_drivlist.driver();
+ if (driver.flags & MACHINE_NO_STANDALONE)
+ return;
+
+ std::shared_ptr<machine_config> const config(m_drivlist.config());
+ device_iterator iter(config->root_device());
+
+ // allocate input ports
+ ioport_list portlist;
+ std::string errors;
+ for (device_t &device : iter)
+ {
+ portlist.append(device, errors);
+
+ if (devtypes && device.owner() && device.shortname() && *device.shortname())
+ devtypes->insert(&device.type());
+ }
+
+ // renumber player numbers for controller ports
+ int player_offset = 0;
+ // but treat keyboard count separately from players' number
+ int kbd_offset = 0;
+ for (device_t &device : iter)
+ {
+ int nplayers = 0;
+ bool new_kbd = false;
+ for (auto &port : portlist)
+ if (&port.second->device() == &device)
+ for (ioport_field &field : port.second->fields())
+ if (field.type() >= IPT_START && field.type() < IPT_ANALOG_LAST)
+ {
+ if (field.type() == IPT_KEYBOARD)
+ {
+ if (!new_kbd) new_kbd = true;
+ field.set_player(field.player() + kbd_offset);
+ }
+ else
+ {
+ nplayers = std::max(nplayers, field.player() + 1);
+ field.set_player(field.player() + player_offset);
+ }
+ }
+ player_offset += nplayers;
+ if (new_kbd) kbd_offset++;
+ }
+
+ // print the header and the machine name
+ fprintf(m_output, "\t<%s",XML_TOP);
+ fprintf(m_output, " name=\"%s\"", util::xml::normalize_string(driver.name));
+
+ // strip away any path information from the source_file and output it
+ const char *start = strrchr(driver.source_file, '/');
+ if (!start)
+ start = strrchr(driver.source_file, '\\');
+ start = start ? (start + 1) : driver.source_file;
+ fprintf(m_output, " sourcefile=\"%s\"", util::xml::normalize_string(start));
+
+ // append bios and runnable flags
+ if (driver.flags & MACHINE_IS_BIOS_ROOT)
+ fprintf(m_output, " isbios=\"yes\"");
+ if (driver.flags & MACHINE_NO_STANDALONE)
+ fprintf(m_output, " runnable=\"no\"");
+ 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 & MACHINE_IS_BIOS_ROOT))
+ fprintf(m_output, " cloneof=\"%s\"", util::xml::normalize_string(m_drivlist.driver(clone_of).name));
+ if (clone_of != -1)
+ fprintf(m_output, " romof=\"%s\"", util::xml::normalize_string(m_drivlist.driver(clone_of).name));
+
+ // display sample information and close the game tag
+ output_sampleof(config->root_device());
+ fprintf(m_output, ">\n");
+
+ // output game description
+ if (driver.description != nullptr)
+ fprintf(m_output, "\t\t<description>%s</description>\n", util::xml::normalize_string(driver.description));
+
+ // print the year only if is a number or another allowed character (? or +)
+ if (driver.year != nullptr && strspn(driver.year, "0123456789?+") == strlen(driver.year))
+ fprintf(m_output, "\t\t<year>%s</year>\n", util::xml::normalize_string(driver.year));
+
+ // print the manufacturer information
+ if (driver.manufacturer != nullptr)
+ fprintf(m_output, "\t\t<manufacturer>%s</manufacturer>\n", util::xml::normalize_string(driver.manufacturer));
+
+ // now print various additional information
+ output_bios();
+ output_rom(config->root_device());
+ output_device_roms();
+ output_sample(config->root_device());
+ output_chips(config->root_device(), "");
+ output_display(config->root_device(), &m_drivlist.driver().flags, "");
+ output_sound(config->root_device());
+ output_input(portlist);
+ output_switches(portlist, "", IPT_DIPSWITCH, "dipswitch", "dipvalue");
+ output_switches(portlist, "", IPT_CONFIG, "configuration", "confsetting");
+ output_ports(portlist);
+ output_adjusters(portlist);
+ output_driver();
+ output_images(config->root_device(), "");
+ output_slots(*config, config->root_device(), "", devtypes);
+ output_software_list();
+ output_ramoptions();
+
+ // close the topmost tag
+ fprintf(m_output, "\t</%s>\n",XML_TOP);
+}
+
+
+//-------------------------------------------------
+// output_one_device - print the XML info for
+// a single device
+//-------------------------------------------------
+
+void info_xml_creator::output_one_device(machine_config &config, device_t &device, const char *devtag)
+{
+ bool has_speaker = false, has_input = false;
+ // check if the device adds speakers to the system
+ sound_interface_iterator snditer(device);
+ if (snditer.first() != nullptr)
+ has_speaker = true;
+ // generate input list
+ ioport_list portlist;
+ std::string errors;
+ for (device_t &dev : device_iterator(device))
+ portlist.append(dev, errors);
+ // check if the device adds player inputs (other than dsw and configs) to the system
+ for (auto &port : portlist)
+ for (ioport_field &field : port.second->fields())
+ if (field.type() >= IPT_START1 && field.type() < IPT_UI_FIRST)
+ {
+ has_input = true;
+ break;
+ }
+
+ // start to output info
+ fprintf(m_output, "\t<%s", XML_TOP);
+ fprintf(m_output, " name=\"%s\"", util::xml::normalize_string(device.shortname()));
+ std::string src(device.source());
+ strreplace(src,"../", "");
+ fprintf(m_output, " sourcefile=\"%s\"", util::xml::normalize_string(src.c_str()));
+ fprintf(m_output, " isdevice=\"yes\"");
+ fprintf(m_output, " runnable=\"no\"");
+ output_sampleof(device);
+ fprintf(m_output, ">\n");
+ fprintf(m_output, "\t\t<description>%s</description>\n", util::xml::normalize_string(device.name()));
+
+ output_rom(device);
+
+ if (device.type().type() != typeid(samples_device)) // ignore samples_device itself
+ output_sample(device);
+
+ output_chips(device, devtag);
+ output_display(device, nullptr, devtag);
+ if (has_speaker)
+ output_sound(device);
+ if (has_input)
+ output_input(portlist);
+ output_switches(portlist, devtag, IPT_DIPSWITCH, "dipswitch", "dipvalue");
+ output_switches(portlist, devtag, IPT_CONFIG, "configuration", "confsetting");
+ output_adjusters(portlist);
+ output_images(device, devtag);
+ output_slots(config, device, devtag, nullptr);
+ fprintf(m_output, "\t</%s>\n", XML_TOP);
+}
+
+
+//-------------------------------------------------
+// output_devices - print the XML info for devices
+// with roms and for devices that can be mounted
+// in slots
+// The current solution works to some extent, but
+// it is limited by the fact that devices are only
+// acknowledged when attached to a driver (so that
+// for instance sub-sub-devices could never appear
+// in the xml input if they are not also attached
+// directly to a driver as device or sub-device)
+//-------------------------------------------------
+
+void info_xml_creator::output_devices(device_type_set const *filter)
+{
+ // get config for empty machine
+ machine_config config(GAME_NAME(___empty), m_lookup_options);
+
+ auto const action = [this, &config] (device_type type)
+ {
+ // add it at the root of the machine config
+ device_t *const dev = config.device_add(&config.root_device(), "_tmp", type, 0);
+
+ // notify this device and all its subdevices that they are now configured
+ for (device_t &device : device_iterator(*dev))
+ if (!device.configured())
+ device.config_complete();
+
+ // print details and remove it
+ output_one_device(config, *dev, dev->tag());
+ config.device_remove(&config.root_device(), "_tmp");
+ };
+
+ // run through devices
+ if (filter)
+ {
+ for (std::add_pointer_t<device_type> type : *filter) action(*type);
+ }
+ else
+ {
+ for (device_type type : registered_device_types) action(type);
+ }
+}
+
+
+//------------------------------------------------
+// output_device_roms - when a driver uses roms
+// included in a device set, print a reference
+//-------------------------------------------------
+
+void info_xml_creator::output_device_roms()
+{
+ for (device_t &device : device_iterator(m_drivlist.config()->root_device()))
+ if (device.owner() != nullptr && device.shortname() != nullptr && device.shortname()[0] != '\0')
+ fprintf(m_output, "\t\t<device_ref name=\"%s\"/>\n", util::xml::normalize_string(device.shortname()));
+}
+
+
+//------------------------------------------------
+// output_sampleof - print the 'sampleof'
+// attribute, if appropriate
+//-------------------------------------------------
+
+void info_xml_creator::output_sampleof(device_t &device)
+{
+ // iterate over sample devices
+ for (samples_device &samples : samples_device_iterator(device))
+ {
+ samples_iterator sampiter(samples);
+ if (sampiter.altbasename() != nullptr)
+ {
+ fprintf(m_output, " sampleof=\"%s\"", util::xml::normalize_string(sampiter.altbasename()));
+
+ // must stop here, as there can only be one attribute of the same name
+ return;
+ }
+ }
+}
+
+
+//-------------------------------------------------
+// output_bios - print the BIOS set for a
+// game
+//-------------------------------------------------
+
+void info_xml_creator::output_bios()
+{
+ // skip if no ROMs
+ if (m_drivlist.driver().rom == nullptr)
+ return;
+
+ auto rom_entries = rom_build_entries(m_drivlist.driver().rom);
+
+ // first determine the default BIOS name
+ std::string defaultname;
+ for (const rom_entry &rom : rom_entries)
+ if (ROMENTRY_ISDEFAULT_BIOS(&rom))
+ defaultname = ROM_GETNAME(&rom);
+
+ // iterate over ROM entries and look for BIOSes
+ for (const rom_entry &rom : rom_entries)
+ if (ROMENTRY_ISSYSTEM_BIOS(&rom))
+ {
+ // output extracted name and descriptions
+ fprintf(m_output, "\t\t<biosset");
+ fprintf(m_output, " name=\"%s\"", util::xml::normalize_string(ROM_GETNAME(&rom)));
+ fprintf(m_output, " description=\"%s\"", util::xml::normalize_string(ROM_GETHASHDATA(&rom)));
+ if (defaultname == ROM_GETNAME(&rom))
+ fprintf(m_output, " default=\"yes\"");
+ fprintf(m_output, "/>\n");
+ }
+}
+
+
+//-------------------------------------------------
+// output_rom - print the roms section of
+// the XML output
+//-------------------------------------------------
+
+void info_xml_creator::output_rom(device_t &device)
+{
+ // iterate over 3 different ROM "types": BIOS, ROMs, DISKs
+ for (int rom_type = 0; rom_type < 3; rom_type++)
+ for (const rom_entry *region = rom_first_region(device); region != nullptr; region = rom_next_region(region))
+ {
+ bool is_disk = ROMREGION_ISDISKDATA(region);
+
+ // disk regions only work for disks
+ if ((is_disk && rom_type != 2) || (!is_disk && rom_type == 2))
+ continue;
+
+ // iterate through ROM entries
+ for (const rom_entry *rom = rom_first_file(region); rom != nullptr; rom = rom_next_file(rom))
+ {
+ bool is_bios = ROM_GETBIOSFLAGS(rom);
+ const char *name = ROM_GETNAME(rom);
+ int offset = ROM_GETOFFSET(rom);
+ const char *merge_name = nullptr;
+ char bios_name[100];
+
+ // BIOS ROMs only apply to bioses
+ if ((is_bios && rom_type != 0) || (!is_bios && rom_type == 0))
+ continue;
+
+ // if we have a valid ROM and we are a clone, see if we can find the parent ROM
+ util::hash_collection hashes(ROM_GETHASHDATA(rom));
+ if (dynamic_cast<driver_device *>(&device) &&!hashes.flag(util::hash_collection::FLAG_NO_DUMP))
+ merge_name = get_merge_name(hashes);
+
+ // scan for a BIOS name
+ bios_name[0] = 0;
+ if (!is_disk && is_bios)
+ {
+ // scan backwards through the ROM entries
+ for (const rom_entry *brom = rom - 1; brom != device.rom_region(); brom--)
+ if (ROMENTRY_ISSYSTEM_BIOS(brom))
+ {
+ strcpy(bios_name, ROM_GETNAME(brom));
+ break;
+ }
+ }
+
+ std::ostringstream output;
+
+ // opening tag
+ if (!is_disk)
+ output << "\t\t<rom";
+ else
+ output << "\t\t<disk";
+
+ // add name, merge, bios, and size tags */
+ if (name != nullptr && name[0] != 0)
+ util::stream_format(output, " name=\"%s\"", util::xml::normalize_string(name));
+ if (merge_name != nullptr)
+ util::stream_format(output, " merge=\"%s\"", util::xml::normalize_string(merge_name));
+ if (bios_name[0] != 0)
+ util::stream_format(output, " bios=\"%s\"", util::xml::normalize_string(bios_name));
+ if (!is_disk)
+ util::stream_format(output, " size=\"%u\"", rom_file_size(rom));
+
+ // dump checksum information only if there is a known dump
+ if (!hashes.flag(util::hash_collection::FLAG_NO_DUMP))
+ {
+ // iterate over hash function types and print m_output their values
+ output << " " << hashes.attribute_string();
+ }
+ else
+ output << " status=\"nodump\"";
+
+ // append a region name
+ util::stream_format(output, " region=\"%s\"", ROMREGION_GETTAG(region));
+
+ // for non-disk entries, print offset
+ if (!is_disk)
+ util::stream_format(output, " offset=\"%x\"", offset);
+
+ // for disk entries, add the disk index
+ else
+ {
+ util::stream_format(output, " index=\"%x\"", DISK_GETINDEX(rom));
+ util::stream_format(output, " writable=\"%s\"", DISK_ISREADONLY(rom) ? "no" : "yes");
+ }
+
+ // add optional flag
+ if (ROM_ISOPTIONAL(rom))
+ output << " optional=\"yes\"";
+
+ output << "/>\n";
+
+ fprintf(m_output, "%s", output.str().c_str());
+ }
+ }
+}
+
+
+//-------------------------------------------------
+// output_sample - print a list of all
+// samples referenced by a game_driver
+//-------------------------------------------------
+
+void info_xml_creator::output_sample(device_t &device)
+{
+ // iterate over sample devices
+ for (samples_device &samples : samples_device_iterator(device))
+ {
+ samples_iterator iter(samples);
+ std::unordered_set<std::string> already_printed;
+ for (const char *samplename = iter.first(); samplename != nullptr; samplename = iter.next())
+ {
+ // filter out duplicates
+ if (!already_printed.insert(samplename).second)
+ continue;
+
+ // output the sample name
+ fprintf(m_output, "\t\t<sample name=\"%s\"/>\n", util::xml::normalize_string(samplename));
+ }
+ }
+}
+
+
+/*-------------------------------------------------
+ output_chips - print a list of CPU and
+ sound chips used by a game
+-------------------------------------------------*/
+
+void info_xml_creator::output_chips(device_t &device, const char *root_tag)
+{
+ // iterate over executable devices
+ for (device_execute_interface &exec : execute_interface_iterator(device))
+ {
+ if (strcmp(exec.device().tag(), device.tag()))
+ {
+ std::string newtag(exec.device().tag()), oldtag(":");
+ newtag = newtag.substr(newtag.find(oldtag.append(root_tag)) + oldtag.length());
+
+ fprintf(m_output, "\t\t<chip");
+ fprintf(m_output, " type=\"cpu\"");
+ fprintf(m_output, " tag=\"%s\"", util::xml::normalize_string(newtag.c_str()));
+ fprintf(m_output, " name=\"%s\"", util::xml::normalize_string(exec.device().name()));
+ fprintf(m_output, " clock=\"%d\"", exec.device().clock());
+ fprintf(m_output, "/>\n");
+ }
+ }
+
+ // iterate over sound devices
+ for (device_sound_interface &sound : sound_interface_iterator(device))
+ {
+ if (strcmp(sound.device().tag(), device.tag()) != 0 && sound.issound())
+ {
+ std::string newtag(sound.device().tag()), oldtag(":");
+ newtag = newtag.substr(newtag.find(oldtag.append(root_tag)) + oldtag.length());
+
+ fprintf(m_output, "\t\t<chip");
+ fprintf(m_output, " type=\"audio\"");
+ fprintf(m_output, " tag=\"%s\"", util::xml::normalize_string(newtag.c_str()));
+ fprintf(m_output, " name=\"%s\"", util::xml::normalize_string(sound.device().name()));
+ if (sound.device().clock() != 0)
+ fprintf(m_output, " clock=\"%d\"", sound.device().clock());
+ fprintf(m_output, "/>\n");
+ }
+ }
+}
+
+
+//-------------------------------------------------
+// output_display - print a list of all the
+// displays
+//-------------------------------------------------
+
+void info_xml_creator::output_display(device_t &device, u32 const *flags, const char *root_tag)
+{
+ // iterate over screens
+ for (const screen_device &screendev : screen_device_iterator(device))
+ {
+ if (strcmp(screendev.tag(), device.tag()))
+ {
+ std::string newtag(screendev.tag()), oldtag(":");
+ newtag = newtag.substr(newtag.find(oldtag.append(root_tag)) + oldtag.length());
+
+ fprintf(m_output, "\t\t<display");
+ fprintf(m_output, " tag=\"%s\"", util::xml::normalize_string(newtag.c_str()));
+
+ switch (screendev.screen_type())
+ {
+ case SCREEN_TYPE_RASTER: fprintf(m_output, " type=\"raster\""); break;
+ case SCREEN_TYPE_VECTOR: fprintf(m_output, " type=\"vector\""); break;
+ case SCREEN_TYPE_LCD: fprintf(m_output, " type=\"lcd\""); break;
+ default: fprintf(m_output, " type=\"unknown\""); break;
+ }
+
+ // output the orientation as a string
+ if (flags)
+ {
+ switch (*flags & ORIENTATION_MASK)
+ {
+ case ORIENTATION_FLIP_X:
+ fprintf(m_output, " rotate=\"0\" flipx=\"yes\"");
+ break;
+ case ORIENTATION_FLIP_Y:
+ fprintf(m_output, " rotate=\"180\" flipx=\"yes\"");
+ break;
+ case ORIENTATION_FLIP_X|ORIENTATION_FLIP_Y:
+ fprintf(m_output, " rotate=\"180\"");
+ break;
+ case ORIENTATION_SWAP_XY:
+ fprintf(m_output, " rotate=\"90\" flipx=\"yes\"");
+ break;
+ case ORIENTATION_SWAP_XY|ORIENTATION_FLIP_X:
+ fprintf(m_output, " rotate=\"90\"");
+ break;
+ case ORIENTATION_SWAP_XY|ORIENTATION_FLIP_Y:
+ fprintf(m_output, " rotate=\"270\"");
+ break;
+ case ORIENTATION_SWAP_XY|ORIENTATION_FLIP_X|ORIENTATION_FLIP_Y:
+ fprintf(m_output, " rotate=\"270\" flipx=\"yes\"");
+ break;
+ default:
+ fprintf(m_output, " rotate=\"0\"");
+ break;
+ }
+ }
+
+ // output width and height only for games that are not vector
+ if (screendev.screen_type() != SCREEN_TYPE_VECTOR)
+ {
+ const rectangle &visarea = screendev.visible_area();
+ fprintf(m_output, " width=\"%d\"", visarea.width());
+ fprintf(m_output, " height=\"%d\"", visarea.height());
+ }
+
+ // output refresh rate
+ fprintf(m_output, " refresh=\"%f\"", ATTOSECONDS_TO_HZ(screendev.refresh_attoseconds()));
+
+ // output raw video parameters only for games that are not vector
+ // and had raw parameters specified
+ if (screendev.screen_type() != SCREEN_TYPE_VECTOR && !screendev.oldstyle_vblank_supplied())
+ {
+ int pixclock = screendev.width() * screendev.height() * ATTOSECONDS_TO_HZ(screendev.refresh_attoseconds());
+
+ fprintf(m_output, " pixclock=\"%d\"", pixclock);
+ fprintf(m_output, " htotal=\"%d\"", screendev.width());
+ fprintf(m_output, " hbend=\"%d\"", screendev.visible_area().min_x);
+ fprintf(m_output, " hbstart=\"%d\"", screendev.visible_area().max_x+1);
+ fprintf(m_output, " vtotal=\"%d\"", screendev.height());
+ fprintf(m_output, " vbend=\"%d\"", screendev.visible_area().min_y);
+ fprintf(m_output, " vbstart=\"%d\"", screendev.visible_area().max_y+1);
+ }
+ fprintf(m_output, " />\n");
+ }
+ }
+}
+
+
+//-------------------------------------------------
+// output_sound - print a list of all the
+// speakers
+//------------------------------------------------
+
+void info_xml_creator::output_sound(device_t &device)
+{
+ speaker_device_iterator spkiter(device);
+ int speakers = spkiter.count();
+
+ // if we have no sound, zero m_output the speaker count
+ sound_interface_iterator snditer(device);
+ if (snditer.first() == nullptr)
+ speakers = 0;
+
+ fprintf(m_output, "\t\t<sound channels=\"%d\"/>\n", speakers);
+}
+
+
+//-------------------------------------------------
+// output_input - print a summary of a game's
+// input
+//-------------------------------------------------
+
+void info_xml_creator::output_input(const ioport_list &portlist)
+{
+ // enumerated list of control types
+ // NOTE: the order is chosen so that 'spare' button inputs are assigned to the
+ // most-likely-correct input device when info is output (you can think of it as
+ // a sort of likelihood order of having buttons)
+ enum
+ {
+ CTRL_DIGITAL_BUTTONS,
+ CTRL_DIGITAL_JOYSTICK,
+ CTRL_ANALOG_JOYSTICK,
+ CTRL_ANALOG_LIGHTGUN,
+ CTRL_ANALOG_DIAL,
+ CTRL_ANALOG_POSITIONAL,
+ CTRL_ANALOG_TRACKBALL,
+ CTRL_ANALOG_MOUSE,
+ CTRL_ANALOG_PADDLE,
+ CTRL_ANALOG_PEDAL,
+ CTRL_DIGITAL_KEYPAD,
+ CTRL_DIGITAL_KEYBOARD,
+ CTRL_DIGITAL_MAHJONG,
+ CTRL_DIGITAL_HANAFUDA,
+ CTRL_DIGITAL_GAMBLING,
+ CTRL_COUNT
+ };
+
+ enum
+ {
+ CTRL_P1,
+ CTRL_P2,
+ CTRL_P3,
+ CTRL_P4,
+ CTRL_P5,
+ CTRL_P6,
+ CTRL_P7,
+ CTRL_P8,
+ CTRL_P9,
+ CTRL_P10,
+ CTRL_PCOUNT
+ };
+
+ // directions
+ const uint8_t DIR_UP = 0x01;
+ const uint8_t DIR_DOWN = 0x02;
+ const uint8_t DIR_LEFT = 0x04;
+ const uint8_t DIR_RIGHT = 0x08;
+
+ // initialize the list of control types
+ struct
+ {
+ const char * type; // general type of input
+ int player; // player which the input belongs to
+ int nbuttons; // total number of buttons
+ int reqbuttons; // total number of non-optional buttons
+ int maxbuttons; // max index of buttons (using IPT_BUTTONn) [probably to be removed soonish]
+ int ways; // directions for joystick
+ bool analog; // is analog input?
+ uint8_t helper[3]; // for dual joysticks [possibly to be removed soonish]
+ int32_t min; // analog minimum value
+ int32_t max; // analog maximum value
+ int32_t sensitivity; // default analog sensitivity
+ int32_t keydelta; // default analog keydelta
+ bool reverse; // default analog reverse setting
+ } control_info[CTRL_COUNT * CTRL_PCOUNT];
+
+ memset(&control_info, 0, sizeof(control_info));
+
+ // tracking info as we iterate
+ int nplayer = 0;
+ int ncoin = 0;
+ bool service = false;
+ bool tilt = false;
+
+ // iterate over the ports
+ for (auto &port : portlist)
+ {
+ int ctrl_type = CTRL_DIGITAL_BUTTONS;
+ bool ctrl_analog = false;
+ for (ioport_field &field : port.second->fields())
+ {
+ // track the highest player number
+ if (nplayer < field.player() + 1)
+ nplayer = field.player() + 1;
+
+ // switch off of the type
+ switch (field.type())
+ {
+ // map joysticks
+ case IPT_JOYSTICK_UP:
+ ctrl_type = CTRL_DIGITAL_JOYSTICK;
+ control_info[field.player() * CTRL_COUNT + ctrl_type].type = "joy";
+ control_info[field.player() * CTRL_COUNT + ctrl_type].player = field.player() + 1;
+ control_info[field.player() * CTRL_COUNT + ctrl_type].ways = field.way();
+ control_info[field.player() * CTRL_COUNT + ctrl_type].helper[0] |= DIR_UP;
+ break;
+ case IPT_JOYSTICK_DOWN:
+ ctrl_type = CTRL_DIGITAL_JOYSTICK;
+ control_info[field.player() * CTRL_COUNT + ctrl_type].type = "joy";
+ control_info[field.player() * CTRL_COUNT + ctrl_type].player = field.player() + 1;
+ control_info[field.player() * CTRL_COUNT + ctrl_type].ways = field.way();
+ control_info[field.player() * CTRL_COUNT + ctrl_type].helper[0] |= DIR_DOWN;
+ break;
+ case IPT_JOYSTICK_LEFT:
+ ctrl_type = CTRL_DIGITAL_JOYSTICK;
+ control_info[field.player() * CTRL_COUNT + ctrl_type].type = "joy";
+ control_info[field.player() * CTRL_COUNT + ctrl_type].player = field.player() + 1;
+ control_info[field.player() * CTRL_COUNT + ctrl_type].ways = field.way();
+ control_info[field.player() * CTRL_COUNT + ctrl_type].helper[0] |= DIR_LEFT;
+ break;
+ case IPT_JOYSTICK_RIGHT:
+ ctrl_type = CTRL_DIGITAL_JOYSTICK;
+ control_info[field.player() * CTRL_COUNT + ctrl_type].type = "joy";
+ control_info[field.player() * CTRL_COUNT + ctrl_type].player = field.player() + 1;
+ control_info[field.player() * CTRL_COUNT + ctrl_type].ways = field.way();
+ control_info[field.player() * CTRL_COUNT + ctrl_type].helper[0] |= DIR_RIGHT;
+ break;
+
+ case IPT_JOYSTICKLEFT_UP:
+ ctrl_type = CTRL_DIGITAL_JOYSTICK;
+ control_info[field.player() * CTRL_COUNT + ctrl_type].type = "joy";
+ control_info[field.player() * CTRL_COUNT + ctrl_type].player = field.player() + 1;
+ control_info[field.player() * CTRL_COUNT + ctrl_type].ways = field.way();
+ control_info[field.player() * CTRL_COUNT + ctrl_type].helper[1] |= DIR_UP;
+ break;
+ case IPT_JOYSTICKLEFT_DOWN:
+ ctrl_type = CTRL_DIGITAL_JOYSTICK;
+ control_info[field.player() * CTRL_COUNT + ctrl_type].type = "joy";
+ control_info[field.player() * CTRL_COUNT + ctrl_type].player = field.player() + 1;
+ control_info[field.player() * CTRL_COUNT + ctrl_type].ways = field.way();
+ control_info[field.player() * CTRL_COUNT + ctrl_type].helper[1] |= DIR_DOWN;
+ break;
+ case IPT_JOYSTICKLEFT_LEFT:
+ ctrl_type = CTRL_DIGITAL_JOYSTICK;
+ control_info[field.player() * CTRL_COUNT + ctrl_type].type = "joy";
+ control_info[field.player() * CTRL_COUNT + ctrl_type].player = field.player() + 1;
+ control_info[field.player() * CTRL_COUNT + ctrl_type].ways = field.way();
+ control_info[field.player() * CTRL_COUNT + ctrl_type].helper[1] |= DIR_LEFT;
+ break;
+ case IPT_JOYSTICKLEFT_RIGHT:
+ ctrl_type = CTRL_DIGITAL_JOYSTICK;
+ control_info[field.player() * CTRL_COUNT + ctrl_type].type = "joy";
+ control_info[field.player() * CTRL_COUNT + ctrl_type].player = field.player() + 1;
+ control_info[field.player() * CTRL_COUNT + ctrl_type].ways = field.way();
+ control_info[field.player() * CTRL_COUNT + ctrl_type].helper[1] |= DIR_RIGHT;
+ break;
+
+ case IPT_JOYSTICKRIGHT_UP:
+ ctrl_type = CTRL_DIGITAL_JOYSTICK;
+ control_info[field.player() * CTRL_COUNT + ctrl_type].type = "joy";
+ control_info[field.player() * CTRL_COUNT + ctrl_type].player = field.player() + 1;
+ control_info[field.player() * CTRL_COUNT + ctrl_type].ways = field.way();
+ control_info[field.player() * CTRL_COUNT + ctrl_type].helper[2] |= DIR_UP;
+ break;
+ case IPT_JOYSTICKRIGHT_DOWN:
+ ctrl_type = CTRL_DIGITAL_JOYSTICK;
+ control_info[field.player() * CTRL_COUNT + ctrl_type].type = "joy";
+ control_info[field.player() * CTRL_COUNT + ctrl_type].player = field.player() + 1;
+ control_info[field.player() * CTRL_COUNT + ctrl_type].ways = field.way();
+ control_info[field.player() * CTRL_COUNT + ctrl_type].helper[2] |= DIR_DOWN;
+ break;
+ case IPT_JOYSTICKRIGHT_LEFT:
+ ctrl_type = CTRL_DIGITAL_JOYSTICK;
+ control_info[field.player() * CTRL_COUNT + ctrl_type].type = "joy";
+ control_info[field.player() * CTRL_COUNT + ctrl_type].player = field.player() + 1;
+ control_info[field.player() * CTRL_COUNT + ctrl_type].ways = field.way();
+ control_info[field.player() * CTRL_COUNT + ctrl_type].helper[2] |= DIR_LEFT;
+ break;
+ case IPT_JOYSTICKRIGHT_RIGHT:
+ ctrl_type = CTRL_DIGITAL_JOYSTICK;
+ control_info[field.player() * CTRL_COUNT + ctrl_type].type = "joy";
+ control_info[field.player() * CTRL_COUNT + ctrl_type].player = field.player() + 1;
+ control_info[field.player() * CTRL_COUNT + ctrl_type].ways = field.way();
+ control_info[field.player() * CTRL_COUNT + ctrl_type].helper[2] |= DIR_RIGHT;
+ break;
+
+ // map analog inputs
+ case IPT_AD_STICK_X:
+ case IPT_AD_STICK_Y:
+ case IPT_AD_STICK_Z:
+ ctrl_analog = true;
+ ctrl_type = CTRL_ANALOG_JOYSTICK;
+ control_info[field.player() * CTRL_COUNT + ctrl_type].type = "stick";
+ control_info[field.player() * CTRL_COUNT + ctrl_type].player = field.player() + 1;
+ control_info[field.player() * CTRL_COUNT + ctrl_type].analog = true;
+ break;
+
+ case IPT_PADDLE:
+ case IPT_PADDLE_V:
+ ctrl_analog = true;
+ ctrl_type = CTRL_ANALOG_PADDLE;
+ control_info[field.player() * CTRL_COUNT + ctrl_type].type = "paddle";
+ control_info[field.player() * CTRL_COUNT + ctrl_type].player = field.player() + 1;
+ control_info[field.player() * CTRL_COUNT + ctrl_type].analog = true;
+ break;
+
+ case IPT_PEDAL:
+ case IPT_PEDAL2:
+ case IPT_PEDAL3:
+ ctrl_analog = true;
+ ctrl_type = CTRL_ANALOG_PEDAL;
+ control_info[field.player() * CTRL_COUNT + ctrl_type].type = "pedal";
+ control_info[field.player() * CTRL_COUNT + ctrl_type].player = field.player() + 1;
+ control_info[field.player() * CTRL_COUNT + ctrl_type].analog = true;
+ break;
+
+ case IPT_LIGHTGUN_X:
+ case IPT_LIGHTGUN_Y:
+ ctrl_analog = true;
+ ctrl_type = CTRL_ANALOG_LIGHTGUN;
+ control_info[field.player() * CTRL_COUNT + ctrl_type].type = "lightgun";
+ control_info[field.player() * CTRL_COUNT + ctrl_type].player = field.player() + 1;
+ control_info[field.player() * CTRL_COUNT + ctrl_type].analog = true;
+ break;
+
+ case IPT_POSITIONAL:
+ case IPT_POSITIONAL_V:
+ ctrl_analog = true;
+ ctrl_type = CTRL_ANALOG_POSITIONAL;
+ control_info[field.player() * CTRL_COUNT + ctrl_type].type = "positional";
+ control_info[field.player() * CTRL_COUNT + ctrl_type].player = field.player() + 1;
+ control_info[field.player() * CTRL_COUNT + ctrl_type].analog = true;
+ break;
+
+ case IPT_DIAL:
+ case IPT_DIAL_V:
+ ctrl_analog = true;
+ ctrl_type = CTRL_ANALOG_DIAL;
+ control_info[field.player() * CTRL_COUNT + ctrl_type].type = "dial";
+ control_info[field.player() * CTRL_COUNT + ctrl_type].player = field.player() + 1;
+ control_info[field.player() * CTRL_COUNT + ctrl_type].analog = true;
+ break;
+
+ case IPT_TRACKBALL_X:
+ case IPT_TRACKBALL_Y:
+ ctrl_analog = true;
+ ctrl_type = CTRL_ANALOG_TRACKBALL;
+ control_info[field.player() * CTRL_COUNT + ctrl_type].type = "trackball";
+ control_info[field.player() * CTRL_COUNT + ctrl_type].player = field.player() + 1;
+ control_info[field.player() * CTRL_COUNT + ctrl_type].analog = true;
+ break;
+
+ case IPT_MOUSE_X:
+ case IPT_MOUSE_Y:
+ ctrl_analog = true;
+ ctrl_type = CTRL_ANALOG_MOUSE;
+ control_info[field.player() * CTRL_COUNT + ctrl_type].type = "mouse";
+ control_info[field.player() * CTRL_COUNT + ctrl_type].player = field.player() + 1;
+ control_info[field.player() * CTRL_COUNT + ctrl_type].analog = true;
+ break;
+
+ // map buttons
+ case IPT_BUTTON1:
+ case IPT_BUTTON2:
+ case IPT_BUTTON3:
+ case IPT_BUTTON4:
+ case IPT_BUTTON5:
+ case IPT_BUTTON6:
+ case IPT_BUTTON7:
+ case IPT_BUTTON8:
+ case IPT_BUTTON9:
+ case IPT_BUTTON10:
+ case IPT_BUTTON11:
+ case IPT_BUTTON12:
+ case IPT_BUTTON13:
+ case IPT_BUTTON14:
+ case IPT_BUTTON15:
+ case IPT_BUTTON16:
+ ctrl_analog = false;
+ if (control_info[field.player() * CTRL_COUNT + ctrl_type].type == nullptr)
+ {
+ control_info[field.player() * CTRL_COUNT + ctrl_type].type = "only_buttons";
+ control_info[field.player() * CTRL_COUNT + ctrl_type].player = field.player() + 1;
+ control_info[field.player() * CTRL_COUNT + ctrl_type].analog = false;
+ }
+ control_info[field.player() * CTRL_COUNT + ctrl_type].maxbuttons = std::max(control_info[field.player() * CTRL_COUNT + ctrl_type].maxbuttons, field.type() - IPT_BUTTON1 + 1);
+ control_info[field.player() * CTRL_COUNT + ctrl_type].nbuttons++;
+ if (!field.optional())
+ control_info[field.player() * CTRL_COUNT + ctrl_type].reqbuttons++;
+ break;
+
+ // track maximum coin index
+ case IPT_COIN1:
+ case IPT_COIN2:
+ case IPT_COIN3:
+ case IPT_COIN4:
+ case IPT_COIN5:
+ case IPT_COIN6:
+ case IPT_COIN7:
+ case IPT_COIN8:
+ case IPT_COIN9:
+ case IPT_COIN10:
+ case IPT_COIN11:
+ case IPT_COIN12:
+ ncoin = std::max(ncoin, field.type() - IPT_COIN1 + 1);
+ break;
+
+ // track presence of keypads and keyboards
+ case IPT_KEYPAD:
+ ctrl_type = CTRL_DIGITAL_KEYPAD;
+ control_info[field.player() * CTRL_COUNT + ctrl_type].type = "keypad";
+ control_info[field.player() * CTRL_COUNT + ctrl_type].player = field.player() + 1;
+ control_info[field.player() * CTRL_COUNT + ctrl_type].nbuttons++;
+ if (!field.optional())
+ control_info[field.player() * CTRL_COUNT + ctrl_type].reqbuttons++;
+ break;
+
+ case IPT_KEYBOARD:
+ ctrl_type = CTRL_DIGITAL_KEYBOARD;
+ control_info[field.player() * CTRL_COUNT + ctrl_type].type = "keyboard";
+ control_info[field.player() * CTRL_COUNT + ctrl_type].player = field.player() + 1;
+ control_info[field.player() * CTRL_COUNT + ctrl_type].nbuttons++;
+ if (!field.optional())
+ control_info[field.player() * CTRL_COUNT + ctrl_type].reqbuttons++;
+ break;
+
+ // additional types
+ case IPT_SERVICE:
+ service = true;
+ break;
+
+ case IPT_TILT:
+ tilt = true;
+ break;
+
+ default:
+ if (field.type() > IPT_MAHJONG_FIRST && field.type() < IPT_MAHJONG_LAST)
+ {
+ ctrl_type = CTRL_DIGITAL_MAHJONG;
+ control_info[field.player() * CTRL_COUNT + ctrl_type].type = "mahjong";
+ control_info[field.player() * CTRL_COUNT + ctrl_type].player = field.player() + 1;
+ control_info[field.player() * CTRL_COUNT + ctrl_type].nbuttons++;
+ if (!field.optional())
+ control_info[field.player() * CTRL_COUNT + ctrl_type].reqbuttons++;
+ }
+ else if (field.type() > IPT_HANAFUDA_FIRST && field.type() < IPT_HANAFUDA_LAST)
+ {
+ ctrl_type = CTRL_DIGITAL_HANAFUDA;
+ control_info[field.player() * CTRL_COUNT + ctrl_type].type = "hanafuda";
+ control_info[field.player() * CTRL_COUNT + ctrl_type].player = field.player() + 1;
+ control_info[field.player() * CTRL_COUNT + ctrl_type].nbuttons++;
+ if (!field.optional())
+ control_info[field.player() * CTRL_COUNT + ctrl_type].reqbuttons++;
+ }
+ else if (field.type() > IPT_GAMBLING_FIRST && field.type() < IPT_GAMBLING_LAST)
+ {
+ ctrl_type = CTRL_DIGITAL_GAMBLING;
+ control_info[field.player() * CTRL_COUNT + ctrl_type].type = "gambling";
+ control_info[field.player() * CTRL_COUNT + ctrl_type].player = field.player() + 1;
+ control_info[field.player() * CTRL_COUNT + ctrl_type].nbuttons++;
+ if (!field.optional())
+ control_info[field.player() * CTRL_COUNT + ctrl_type].reqbuttons++;
+ }
+ break;
+ }
+
+ if (ctrl_analog)
+ {
+ // get the analog stats
+ if (field.minval() != 0)
+ control_info[field.player() * CTRL_COUNT + ctrl_type].min = field.minval();
+ if (field.maxval() != 0)
+ control_info[field.player() * CTRL_COUNT + ctrl_type].max = field.maxval();
+ if (field.sensitivity() != 0)
+ control_info[field.player() * CTRL_COUNT + ctrl_type].sensitivity = field.sensitivity();
+ if (field.delta() != 0)
+ control_info[field.player() * CTRL_COUNT + ctrl_type].keydelta = field.delta();
+ if (field.analog_reverse() != 0)
+ control_info[field.player() * CTRL_COUNT + ctrl_type].reverse = true;
+ }
+ }
+ }
+
+ // Clean-up those entries, if any, where buttons were defined in a separate port than the actual controller they belong to.
+ // This is quite often the case, especially for arcades where controls can be easily mapped to separate input ports on PCB.
+ // If such situation would only happen for joystick, it would be possible to work it around by initializing differently
+ // ctrl_type above, but it is quite common among analog inputs as well (for instance, this is the tipical situation
+ // for lightguns) and therefore we really need this separate loop.
+ for (int i = 0; i < CTRL_PCOUNT; i++)
+ {
+ bool fix_done = false;
+ for (int j = 1; j < CTRL_COUNT; j++)
+ if (control_info[i * CTRL_COUNT].type != nullptr && control_info[i * CTRL_COUNT + j].type != nullptr && !fix_done)
+ {
+ control_info[i * CTRL_COUNT + j].nbuttons += control_info[i * CTRL_COUNT].nbuttons;
+ control_info[i * CTRL_COUNT + j].reqbuttons += control_info[i * CTRL_COUNT].reqbuttons;
+ control_info[i * CTRL_COUNT + j].maxbuttons = std::max(control_info[i * CTRL_COUNT + j].maxbuttons, control_info[i * CTRL_COUNT].maxbuttons);
+
+ memset(&control_info[i * CTRL_COUNT], 0, sizeof(control_info[0]));
+ fix_done = true;
+ }
+ }
+
+ // Output the input info
+ // First basic info
+ fprintf(m_output, "\t\t<input");
+ fprintf(m_output, " players=\"%d\"", nplayer);
+ if (ncoin != 0)
+ fprintf(m_output, " coins=\"%d\"", ncoin);
+ if (service)
+ fprintf(m_output, " service=\"yes\"");
+ if (tilt)
+ fprintf(m_output, " tilt=\"yes\"");
+ fprintf(m_output, ">\n");
+
+ // Then controller specific ones
+ for (auto & elem : control_info)
+ if (elem.type != nullptr)
+ {
+ //printf("type %s - player %d - buttons %d\n", elem.type, elem.player, elem.nbuttons);
+ if (elem.analog)
+ {
+ fprintf(m_output, "\t\t\t<control type=\"%s\"", util::xml::normalize_string(elem.type));
+ if (nplayer > 1)
+ fprintf(m_output, " player=\"%d\"", elem.player);
+ if (elem.nbuttons > 0)
+ {
+ fprintf(m_output, " buttons=\"%d\"", strcmp(elem.type, "stick") ? elem.nbuttons : elem.maxbuttons);
+ if (elem.reqbuttons < elem.nbuttons)
+ fprintf(m_output, " reqbuttons=\"%d\"", elem.reqbuttons);
+ }
+ if (elem.min != 0 || elem.max != 0)
+ {
+ fprintf(m_output, " minimum=\"%d\"", elem.min);
+ fprintf(m_output, " maximum=\"%d\"", elem.max);
+ }
+ if (elem.sensitivity != 0)
+ fprintf(m_output, " sensitivity=\"%d\"", elem.sensitivity);
+ if (elem.keydelta != 0)
+ fprintf(m_output, " keydelta=\"%d\"", elem.keydelta);
+ if (elem.reverse)
+ fprintf(m_output, " reverse=\"yes\"");
+
+ fprintf(m_output, "/>\n");
+ }
+ else
+ {
+ if (elem.helper[1] == 0 && elem.helper[2] != 0) { elem.helper[1] = elem.helper[2]; elem.helper[2] = 0; }
+ if (elem.helper[0] == 0 && elem.helper[1] != 0) { elem.helper[0] = elem.helper[1]; elem.helper[1] = 0; }
+ if (elem.helper[1] == 0 && elem.helper[2] != 0) { elem.helper[1] = elem.helper[2]; elem.helper[2] = 0; }
+ const char *joys = (elem.helper[2] != 0) ? "triple" : (elem.helper[1] != 0) ? "double" : "";
+ fprintf(m_output, "\t\t\t<control type=\"%s%s\"", joys, util::xml::normalize_string(elem.type));
+ if (nplayer > 1)
+ fprintf(m_output, " player=\"%d\"", elem.player);
+ if (elem.nbuttons > 0)
+ {
+ fprintf(m_output, " buttons=\"%d\"", strcmp(elem.type, "joy") ? elem.nbuttons : elem.maxbuttons);
+ if (elem.reqbuttons < elem.nbuttons)
+ fprintf(m_output, " reqbuttons=\"%d\"", elem.reqbuttons);
+ }
+ for (int lp = 0; lp < 3 && elem.helper[lp] != 0; lp++)
+ {
+ const char *plural = (lp==2) ? "3" : (lp==1) ? "2" : "";
+ const char *ways;
+ std::string helper;
+ switch (elem.helper[lp] & (DIR_UP | DIR_DOWN | DIR_LEFT | DIR_RIGHT))
+ {
+ case DIR_UP | DIR_DOWN | DIR_LEFT | DIR_RIGHT:
+ helper = string_format("%d", (elem.ways == 0) ? 8 : elem.ways);
+ ways = helper.c_str();
+ break;
+ case DIR_LEFT | DIR_RIGHT:
+ ways = "2";
+ break;
+ case DIR_UP | DIR_DOWN:
+ ways = "vertical2";
+ break;
+ case DIR_UP:
+ case DIR_DOWN:
+ case DIR_LEFT:
+ case DIR_RIGHT:
+ ways = "1";
+ break;
+ case DIR_UP | DIR_DOWN | DIR_LEFT:
+ case DIR_UP | DIR_DOWN | DIR_RIGHT:
+ case DIR_UP | DIR_LEFT | DIR_RIGHT:
+ case DIR_DOWN | DIR_LEFT | DIR_RIGHT:
+ ways = (elem.ways == 4) ? "3 (half4)" : "5 (half8)";
+ break;
+ default:
+ ways = "strange2";
+ break;
+ }
+ fprintf(m_output, " ways%s=\"%s\"", plural, ways);
+ }
+ fprintf(m_output, "/>\n");
+ }
+ }
+
+ fprintf(m_output, "\t\t</input>\n");
+}
+
+
+//-------------------------------------------------
+// output_switches - print the configurations or
+// DIP switch settings
+//-------------------------------------------------
+
+void info_xml_creator::output_switches(const ioport_list &portlist, const char *root_tag, int type, const char *outertag, const char *innertag)
+{
+ // iterate looking for DIP switches
+ for (auto &port : portlist)
+ for (ioport_field &field : port.second->fields())
+ if (field.type() == type)
+ {
+ std::ostringstream output;
+
+ std::string newtag(port.second->tag()), oldtag(":");
+ newtag = newtag.substr(newtag.find(oldtag.append(root_tag)) + oldtag.length());
+
+ // output the switch name information
+ std::string normalized_field_name(util::xml::normalize_string(field.name()));
+ std::string normalized_newtag(util::xml::normalize_string(newtag.c_str()));
+ util::stream_format(output,"\t\t<%s name=\"%s\" tag=\"%s\" mask=\"%u\">\n", outertag, normalized_field_name.c_str(), normalized_newtag.c_str(), field.mask());
+
+ // loop over settings
+ for (ioport_setting &setting : field.settings())
+ {
+ util::stream_format(output,"\t\t\t<%s name=\"%s\" value=\"%u\"%s/>\n", innertag, util::xml::normalize_string(setting.name()), setting.value(), setting.value() == field.defvalue() ? " default=\"yes\"" : "");
+ }
+
+ // terminate the switch entry
+ util::stream_format(output,"\t\t</%s>\n", outertag);
+
+ fprintf(m_output, "%s", output.str().c_str());
+ }
+}
+
+//-------------------------------------------------
+// output_ports - print the structure of input
+// ports in the driver
+//-------------------------------------------------
+void info_xml_creator::output_ports(const ioport_list &portlist)
+{
+ // cycle through ports
+ for (auto &port : portlist)
+ {
+ fprintf(m_output,"\t\t<port tag=\"%s\">\n", util::xml::normalize_string(port.second->tag()));
+ for (ioport_field &field : port.second->fields())
+ {
+ if(field.is_analog())
+ fprintf(m_output,"\t\t\t<analog mask=\"%u\"/>\n", field.mask());
+ }
+ // close element
+ fprintf(m_output,"\t\t</port>\n");
+ }
+
+}
+
+//-------------------------------------------------
+// output_adjusters - print the Analog
+// Adjusters for a game
+//-------------------------------------------------
+
+void info_xml_creator::output_adjusters(const ioport_list &portlist)
+{
+ // iterate looking for Adjusters
+ for (auto &port : portlist)
+ for (ioport_field &field : port.second->fields())
+ if (field.type() == IPT_ADJUSTER)
+ fprintf(m_output, "\t\t<adjuster name=\"%s\" default=\"%d\"/>\n", util::xml::normalize_string(field.name()), field.defvalue());
+}
+
+
+//-------------------------------------------------
+// output_driver - print driver status
+//-------------------------------------------------
+
+void info_xml_creator::output_driver()
+{
+ fprintf(m_output, "\t\t<driver");
+
+ /* The status entry is an hint for frontend authors */
+ /* to select working and not working games without */
+ /* the need to know all the other status entries. */
+ /* Games marked as status=good are perfectly emulated, games */
+ /* marked as status=imperfect are emulated with only */
+ /* some minor issues, games marked as status=preliminary */
+ /* don't work or have major emulation problems. */
+
+ u32 const flags = m_drivlist.driver().flags;
+ if (flags & (MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_NO_SOUND | MACHINE_WRONG_COLORS | MACHINE_MECHANICAL))
+ fprintf(m_output, " status=\"preliminary\"");
+ else if (flags & (MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS))
+ fprintf(m_output, " status=\"imperfect\"");
+ else
+ fprintf(m_output, " status=\"good\"");
+
+ if (flags & MACHINE_NOT_WORKING)
+ fprintf(m_output, " emulation=\"preliminary\"");
+ else
+ fprintf(m_output, " emulation=\"good\"");
+
+ if (flags & MACHINE_WRONG_COLORS)
+ fprintf(m_output, " color=\"preliminary\"");
+ else if (flags & MACHINE_IMPERFECT_COLORS)
+ fprintf(m_output, " color=\"imperfect\"");
+ else
+ fprintf(m_output, " color=\"good\"");
+
+ if (flags & MACHINE_NO_SOUND)
+ fprintf(m_output, " sound=\"preliminary\"");
+ else if (flags & MACHINE_IMPERFECT_SOUND)
+ fprintf(m_output, " sound=\"imperfect\"");
+ else
+ fprintf(m_output, " sound=\"good\"");
+
+ if (flags & MACHINE_IMPERFECT_GRAPHICS)
+ fprintf(m_output, " graphic=\"imperfect\"");
+ else
+ fprintf(m_output, " graphic=\"good\"");
+
+ if (flags & MACHINE_NO_COCKTAIL)
+ fprintf(m_output, " cocktail=\"preliminary\"");
+
+ if (flags & MACHINE_UNEMULATED_PROTECTION)
+ fprintf(m_output, " protection=\"preliminary\"");
+
+ if (flags & MACHINE_SUPPORTS_SAVE)
+ fprintf(m_output, " savestate=\"supported\"");
+ else
+ fprintf(m_output, " savestate=\"unsupported\"");
+
+ fprintf(m_output, "/>\n");
+}
+
+
+//-------------------------------------------------
+// output_images - prints m_output all info on
+// image devices
+//-------------------------------------------------
+
+void info_xml_creator::output_images(device_t &device, const char *root_tag)
+{
+ for (const device_image_interface &imagedev : image_interface_iterator(device))
+ {
+ if (strcmp(imagedev.device().tag(), device.tag()))
+ {
+ bool loadable = imagedev.user_loadable();
+ std::string newtag(imagedev.device().tag()), oldtag(":");
+ newtag = newtag.substr(newtag.find(oldtag.append(root_tag)) + oldtag.length());
+
+ // print m_output device type
+ fprintf(m_output, "\t\t<device type=\"%s\"", util::xml::normalize_string(imagedev.image_type_name()));
+
+ // does this device have a tag?
+ if (imagedev.device().tag())
+ fprintf(m_output, " tag=\"%s\"", util::xml::normalize_string(newtag.c_str()));
+
+ // is this device available as media switch?
+ if (!loadable)
+ fprintf(m_output, " fixed_image=\"1\"");
+
+ // is this device mandatory?
+ if (imagedev.must_be_loaded())
+ fprintf(m_output, " mandatory=\"1\"");
+
+ if (imagedev.image_interface() && imagedev.image_interface()[0])
+ fprintf(m_output, " interface=\"%s\"", util::xml::normalize_string(imagedev.image_interface()));
+
+ // close the XML tag
+ fprintf(m_output, ">\n");
+
+ if (loadable)
+ {
+ const char *name = imagedev.instance_name().c_str();
+ const char *shortname = imagedev.brief_instance_name().c_str();
+
+ fprintf(m_output, "\t\t\t<instance");
+ fprintf(m_output, " name=\"%s\"", util::xml::normalize_string(name));
+ fprintf(m_output, " briefname=\"%s\"", util::xml::normalize_string(shortname));
+ fprintf(m_output, "/>\n");
+
+ std::string extensions(imagedev.file_extensions());
+
+ char *ext = strtok((char *)extensions.c_str(), ",");
+ while (ext != nullptr)
+ {
+ fprintf(m_output, "\t\t\t<extension");
+ fprintf(m_output, " name=\"%s\"", util::xml::normalize_string(ext));
+ fprintf(m_output, "/>\n");
+ ext = strtok(nullptr, ",");
+ }
+ }
+ fprintf(m_output, "\t\t</device>\n");
+ }
+ }
+}
+
+
+//-------------------------------------------------
+// output_images - prints all info about slots
+//-------------------------------------------------
+
+void info_xml_creator::output_slots(machine_config &config, device_t &device, const char *root_tag, device_type_set *devtypes)
+{
+ for (const device_slot_interface &slot : slot_interface_iterator(device))
+ {
+ // shall we list fixed slots as non-configurable?
+ bool const listed(!slot.fixed() && strcmp(slot.device().tag(), device.tag()));
+
+ if (devtypes || listed)
+ {
+ std::string newtag(slot.device().tag()), oldtag(":");
+ newtag = newtag.substr(newtag.find(oldtag.append(root_tag)) + oldtag.length());
+
+ // print m_output device type
+ if (listed)
+ fprintf(m_output, "\t\t<slot name=\"%s\">\n", util::xml::normalize_string(newtag.c_str()));
+
+ /*
+ if (listed && slot.slot_interface()[0])
+ fprintf(m_output, " interface=\"%s\"", util::xml::normalize_string(slot.slot_interface()));
+ */
+
+ for (auto &option : slot.option_list())
+ {
+ if (devtypes || (listed && option.second->selectable()))
+ {
+ device_t *const dev = config.device_add(&device, "_dummy", option.second->devtype(), 0);
+ if (!dev->configured())
+ dev->config_complete();
+
+ if (devtypes)
+ for (device_t &device : device_iterator(*dev)) devtypes->insert(&device.type());
+
+ if (listed && option.second->selectable())
+ {
+ fprintf(m_output, "\t\t\t<slotoption");
+ fprintf(m_output, " name=\"%s\"", util::xml::normalize_string(option.second->name()));
+ fprintf(m_output, " devname=\"%s\"", util::xml::normalize_string(dev->shortname()));
+ if (slot.default_option() != nullptr && strcmp(slot.default_option(), option.second->name())==0)
+ fprintf(m_output, " default=\"yes\"");
+ fprintf(m_output, "/>\n");
+ }
+
+ config.device_remove(&device, "_dummy");
+ }
+ }
+
+ if (listed)
+ fprintf(m_output, "\t\t</slot>\n");
+ }
+ }
+}
+
+
+//-------------------------------------------------
+// output_software_list - print the information
+// for all known software lists for this system
+//-------------------------------------------------
+
+void info_xml_creator::output_software_list()
+{
+ for (const software_list_device &swlist : software_list_device_iterator(m_drivlist.config()->root_device()))
+ {
+ fprintf(m_output, "\t\t<softwarelist name=\"%s\" ", swlist.list_name().c_str());
+ fprintf(m_output, "status=\"%s\" ", (swlist.list_type() == SOFTWARE_LIST_ORIGINAL_SYSTEM) ? "original" : "compatible");
+ if (swlist.filter())
+ fprintf(m_output, "filter=\"%s\" ", swlist.filter());
+ fprintf(m_output, "/>\n");
+ }
+}
+
+
+
+//-------------------------------------------------
+// output_ramoptions - prints m_output all RAM
+// options for this system
+//-------------------------------------------------
+
+void info_xml_creator::output_ramoptions()
+{
+ for (const ram_device &ram : ram_device_iterator(m_drivlist.config()->root_device()))
+ {
+ fprintf(m_output, "\t\t<ramoption default=\"1\">%u</ramoption>\n", ram.default_size());
+
+ if (ram.extra_options() != nullptr)
+ {
+ std::string options(ram.extra_options());
+ for (int start = 0, end = options.find_first_of(',');; start = end + 1, end = options.find_first_of(',', start))
+ {
+ std::string option;
+ option.assign(options.substr(start, (end == -1) ? -1 : end - start));
+ fprintf(m_output, "\t\t<ramoption>%u</ramoption>\n", ram_device::parse_string(option.c_str()));
+ if (end == -1)
+ break;
+ }
+ }
+ }
+}
+
+
+//-------------------------------------------------
+// get_merge_name - get the rom name from a
+// parent set
+//-------------------------------------------------
+
+const char *info_xml_creator::get_merge_name(const util::hash_collection &romhashes)
+{
+ // walk the parent chain
+ const char *merge_name = nullptr;
+ for (int clone_of = m_drivlist.find(m_drivlist.driver().parent); clone_of != -1; clone_of = m_drivlist.find(m_drivlist.driver(clone_of).parent))
+ {
+ // look in the parent's ROMs
+ device_t *device = &m_drivlist.config(clone_of, m_lookup_options)->root_device();
+ for (const rom_entry *pregion = rom_first_region(*device); pregion != nullptr; pregion = rom_next_region(pregion))
+ for (const rom_entry *prom = rom_first_file(pregion); prom != nullptr; prom = rom_next_file(prom))
+ {
+ util::hash_collection phashes(ROM_GETHASHDATA(prom));
+ if (!phashes.flag(util::hash_collection::FLAG_NO_DUMP) && romhashes == phashes)
+ {
+ // stop when we find a match
+ merge_name = ROM_GETNAME(prom);
+ break;
+ }
+ }
+ }
+
+ return merge_name;
+}
diff --git a/docs/release/src/frontend/mame/mameopts.cpp b/docs/release/src/frontend/mame/mameopts.cpp
new file mode 100644
index 00000000000..8cb8cff09fa
--- /dev/null
+++ b/docs/release/src/frontend/mame/mameopts.cpp
@@ -0,0 +1,692 @@
+// license:BSD-3-Clause
+// copyright-holders:Aaron Giles
+/***************************************************************************
+
+ mameopts.cpp
+
+ Options file and command line management.
+
+***************************************************************************/
+
+#include "emu.h"
+#include "mameopts.h"
+
+#include "drivenum.h"
+#include "screen.h"
+#include "softlist_dev.h"
+#include "zippath.h"
+#include "hashfile.h"
+
+#include <ctype.h>
+#include <stack>
+
+
+int mame_options::m_slot_options = 0;
+int mame_options::m_device_options = 0;
+
+//-------------------------------------------------
+// add_slot_options - add all of the slot
+// options for the configured system
+//-------------------------------------------------
+
+bool mame_options::add_slot_options(emu_options &options, value_specifier_func value_specifier)
+{
+ // look up the system configured by name; if no match, do nothing
+ const game_driver *cursystem = system(options);
+ if (cursystem == nullptr)
+ return false;
+
+ // create the configuration
+ machine_config config(*cursystem, options);
+
+ // iterate through all slot devices
+ int starting_count = options.options_count();
+ for (const device_slot_interface &slot : slot_interface_iterator(config.root_device()))
+ {
+ // skip fixed slots
+ if (slot.fixed())
+ continue;
+
+ // retrieve info about the device instance
+ const char *name = slot.device().tag() + 1;
+ if (!options.exists(name))
+ {
+ // first device? add the header as to be pretty
+ if (m_slot_options++ == 0)
+ options.add_entry(nullptr, "SLOT DEVICES", OPTION_HEADER | OPTION_FLAG_DEVICE);
+
+ // add the option
+ options.add_entry(name, nullptr, OPTION_STRING | OPTION_FLAG_DEVICE, slot.default_option(), true);
+ options.slot_options()[name] = slot_option(slot.default_option());
+
+ // allow opportunity to specify this value
+ if (value_specifier)
+ {
+ std::string specified_value = value_specifier(name);
+ if (specified_value != value_specifier_invalid_value())
+ options.slot_options()[name].specify(std::move(specified_value));
+ }
+ }
+ }
+ return (options.options_count() != starting_count);
+}
+
+
+//-------------------------------------------------
+// update_slot_options - update slot values
+// depending of image mounted
+//-------------------------------------------------
+
+void mame_options::update_slot_options(emu_options &options, const software_part *swpart)
+{
+ // look up the system configured by name; if no match, do nothing
+ const game_driver *cursystem = system(options);
+ if (cursystem == nullptr)
+ return;
+ machine_config config(*cursystem, options);
+
+ // iterate through all slot devices
+ for (device_slot_interface &slot : slot_interface_iterator(config.root_device()))
+ {
+ // retrieve info about the device instance
+ const char *name = slot.device().tag() + 1;
+ if (options.exists(name) && !slot.option_list().empty())
+ {
+ std::string defvalue = get_default_card_software(slot, options);
+ if (defvalue.empty())
+ {
+ // keep any non-default setting
+ if (options.priority(name) > OPTION_PRIORITY_DEFAULT)
+ continue;
+
+ // reinstate the actual default value as configured
+ if (slot.default_option() != nullptr)
+ defvalue.assign(slot.default_option());
+ }
+
+ // set the value and hide the option if not selectable
+ options.set_default_value(name, defvalue.c_str());
+ const device_slot_option *option = slot.option(defvalue.c_str());
+ options.set_flag(name, ~OPTION_FLAG_INTERNAL, (option != nullptr && !option->selectable()) ? OPTION_FLAG_INTERNAL : 0);
+ }
+ }
+ add_device_options(options);
+}
+
+
+//-------------------------------------------------
+// get_default_card_software
+//-------------------------------------------------
+
+std::string mame_options::get_default_card_software(device_slot_interface &slot, const emu_options &options)
+{
+ std::string image_path;
+ std::function<bool(util::core_file &, std::string&)> get_hashfile_extrainfo;
+
+ // figure out if an image option has been specified, and if so, get the image path out of the options
+ device_image_interface *image = dynamic_cast<device_image_interface *>(&slot);
+ if (image)
+ {
+ auto iter = options.image_options().find(image->instance_name());
+ if (iter != options.image_options().end())
+ image_path = iter->second;
+
+ get_hashfile_extrainfo = [image, &options](util::core_file &file, std::string &extrainfo)
+ {
+ util::hash_collection hashes = image->calculate_hash_on_file(file);
+
+ return hashfile_extrainfo(
+ options.hash_path(),
+ image->device().mconfig().gamedrv(),
+ hashes,
+ extrainfo);
+ };
+ }
+
+ // create the hook
+ get_default_card_software_hook hook(image_path, std::move(get_hashfile_extrainfo));
+
+ // and invoke the slot's implementation of get_default_card_software()
+ return slot.get_default_card_software(hook);
+}
+
+
+//-------------------------------------------------
+// add_device_options - add all of the device
+// options for the configured system
+//-------------------------------------------------
+
+void mame_options::add_device_options(emu_options &options, value_specifier_func value_specifier)
+{
+ // look up the system configured by name; if no match, do nothing
+ const game_driver *cursystem = system(options);
+ if (cursystem == nullptr)
+ return;
+ machine_config config(*cursystem, options);
+
+ // iterate through all image devices
+ for (device_image_interface &image : image_interface_iterator(config.root_device()))
+ {
+ if (!image.user_loadable())
+ continue;
+
+ // add the option
+ if (!options.exists(image.instance_name().c_str()))
+ {
+ // first device? add the header as to be pretty
+ if (m_device_options++ == 0)
+ options.add_entry(nullptr, "IMAGE DEVICES", OPTION_HEADER | OPTION_FLAG_DEVICE);
+
+ // add the option
+ std::string option_name = get_full_option_name(image);
+ options.add_entry(option_name.c_str(), nullptr, OPTION_STRING | OPTION_FLAG_DEVICE, nullptr, true);
+ options.image_options()[image.instance_name()] = "";
+
+ // allow opportunity to specify this value
+ if (value_specifier)
+ {
+ std::string value = value_specifier(image.instance_name());
+ if (value != value_specifier_invalid_value())
+ options.image_options()[image.instance_name()] = std::move(value);
+ }
+ }
+ }
+}
+
+
+//-------------------------------------------------
+// remove_device_options - remove device options
+//-------------------------------------------------
+
+std::string mame_options::get_full_option_name(const device_image_interface &image)
+{
+ std::ostringstream option_name;
+ util::stream_format(option_name, "%s;%s", image.instance_name(), image.brief_instance_name());
+ if (strcmp(image.device_typename(image.image_type()), image.instance_name().c_str()) == 0)
+ util::stream_format(option_name, ";%s1;%s1", image.instance_name(), image.brief_instance_name());
+ return option_name.str();
+}
+
+
+//-------------------------------------------------
+// remove_device_options - remove device options
+//-------------------------------------------------
+
+void mame_options::remove_device_options(emu_options &options)
+{
+ // iterate through options and remove interesting ones
+ core_options::entry *nextentry;
+ for (auto *curentry = options.first(); curentry != nullptr; curentry = nextentry)
+ {
+ // pre-fetch the next entry in case we delete this one
+ nextentry = curentry->next();
+
+ // if this is a device option, nuke it
+ if ((curentry->flags() & OPTION_FLAG_DEVICE) != 0)
+ options.remove_entry(*curentry);
+ }
+
+ // take also care of ramsize options
+ options.set_default_value(OPTION_RAMSIZE, "");
+
+ // reset counters
+ m_slot_options = 0;
+ m_device_options = 0;
+}
+
+
+//-------------------------------------------------
+// parse_slot_devices - parse the command line
+// and update slot and image devices
+//-------------------------------------------------
+
+void mame_options::parse_slot_devices(emu_options &options, value_specifier_func value_specifier)
+{
+ bool still_adding = true;
+ while (still_adding)
+ {
+ // keep adding slot options until we stop seeing new stuff
+ still_adding = false;
+ while (add_slot_options(options, value_specifier))
+ still_adding = true;
+
+ // add device options
+ add_device_options(options, value_specifier);
+
+ if (reevaluate_slot_options(options))
+ still_adding = true;
+ }
+}
+
+
+//-------------------------------------------------
+// reevaluate_slot_options - based on recent changes
+// in what images are mounted, give drivers a chance
+// to specify new default slot options
+//-------------------------------------------------
+
+bool mame_options::reevaluate_slot_options(emu_options &options)
+{
+ bool result = false;
+
+ // look up the system configured by name; if no match, do nothing
+ const game_driver *cursystem = system(options);
+ if (cursystem == nullptr)
+ return result;
+ machine_config config(*cursystem, options);
+
+ // iterate through all slot devices
+ for (device_slot_interface &slot : slot_interface_iterator(config.root_device()))
+ {
+ // retrieve info about the device instance
+ const char *name = slot.device().tag() + 1;
+ if (options.exists(name) && !slot.option_list().empty())
+ {
+ // device_slot_interface::get_default_card_software() is essentially a hook
+ // that lets devices provide a feedback loop to force a specified software
+ // list entry to be loaded
+ //
+ // In the repeated cycle of adding slots and slot devices, this gives a chance
+ // for devices to "plug in" default software list items. Of course, the fact
+ // that this is all shuffling options is brittle and roundabout, but such is
+ // the nature of software lists.
+ //
+ // In reality, having some sort of hook into the pipeline of slot/device evaluation
+ // makes sense, but the fact that it is joined at the hip to device_image_interface
+ // and device_slot_interface is unfortunate
+ std::string default_card_software = get_default_card_software(slot, options);
+ if (!default_card_software.empty())
+ {
+ // we have default card software - is this resulting in the slot option being mutated?
+ if (options.slot_options()[name].default_card_software() != default_card_software)
+ {
+ options.slot_options()[name].set_default_card_software(std::move(default_card_software));
+ result = true;
+ }
+ }
+ }
+ }
+ return result;
+}
+
+
+//-------------------------------------------------
+// parse_command_line - parse the command line
+// and update the devices
+//-------------------------------------------------
+
+bool mame_options::parse_command_line(emu_options &options, std::vector<std::string> &args, std::string &error_string)
+{
+ // parse the command line
+ if (!options.parse_command_line(args, OPTION_PRIORITY_CMDLINE, error_string))
+ return false;
+
+ // identify any options as a result of softlists
+ auto softlist_opts = evaluate_initial_softlist_options(options);
+
+ // assemble a "value specifier" that will be used to specify options set up as a consequence
+ // of slot and device setup
+ auto value_specifier = [&options, &softlist_opts, &args, &error_string](const std::string &arg)
+ {
+ // first find within the command line
+ std::string arg_value;
+ bool success = options.pluck_from_command_line(args, arg, arg_value);
+
+ // next try to find within softlist-specified options
+ if (!success)
+ {
+ auto iter = softlist_opts.find(arg);
+ if (iter != softlist_opts.end())
+ {
+ arg_value = iter->second;
+ success = true;
+ }
+ }
+
+ // did we find something?
+ return success
+ ? arg_value
+ : value_specifier_invalid_value();
+ };
+
+ // parse the slot devices
+ parse_slot_devices(options, value_specifier);
+
+ // at this point, we should have handled all arguments; the only argument that shouldn't have
+ // been handled is the file name
+ if (args.size() > 1)
+ {
+ error_string.append(string_format("Error: unknown option: %s\n", args[1]));
+ return false;
+ }
+
+ return true;
+}
+
+
+//-------------------------------------------------
+// evaluate_initial_softlist_options
+//-------------------------------------------------
+
+std::map<std::string, std::string> mame_options::evaluate_initial_softlist_options(emu_options &options)
+{
+ std::map<std::string, std::string> results;
+
+ // load software specified at the command line (if any of course)
+ std::string software_identifier = options.software_name();
+ if (!software_identifier.empty())
+ {
+ // we have software; first identify the proper game_driver
+ const game_driver *system = mame_options::system(options);
+ if (system == nullptr && *(options.system_name()) != 0)
+ throw emu_fatalerror(EMU_ERR_NO_SUCH_GAME, "Unknown system '%s'", options.system_name());
+
+ // and set up a configuration
+ machine_config config(*system, options);
+ software_list_device_iterator iter(config.root_device());
+ if (iter.count() == 0)
+ throw emu_fatalerror(EMU_ERR_FATALERROR, "Error: unknown option: %s\n", options.software_name());
+
+ // and finally set up the stack
+ std::stack<std::string> software_identifier_stack;
+ software_identifier_stack.push(software_identifier);
+
+ // we need to keep evaluating softlist identifiers until the stack is empty
+ while (!software_identifier_stack.empty())
+ {
+ // pop the identifier
+ software_identifier = std::move(software_identifier_stack.top());
+ software_identifier_stack.pop();
+
+ // and parse it
+ std::string list_name, software_name;
+ auto colon_pos = software_identifier.find_first_of(':');
+ if (colon_pos != std::string::npos)
+ {
+ list_name = software_identifier.substr(0, colon_pos);
+ software_name = software_identifier.substr(colon_pos + 1);
+ }
+ else
+ {
+ software_name = software_identifier;
+ }
+
+ // loop through all softlist devices, and try to find one capable of handling the requested software
+ bool found = false;
+ bool compatible = false;
+ for (software_list_device &swlistdev : iter)
+ {
+ if (list_name.empty() || (list_name == swlistdev.list_name()))
+ {
+ const software_info *swinfo = swlistdev.find(software_name);
+ if (swinfo != nullptr)
+ {
+ // loop through all parts
+ for (const software_part &swpart : swinfo->parts())
+ {
+ // only load compatible software this way
+ if (swlistdev.is_compatible(swpart) == SOFTWARE_IS_COMPATIBLE)
+ {
+ // we need to find a mountable image slot, but we need to ensure it is a slot
+ // for which we have not already distributed a part to
+ device_image_interface *image = software_list_device::find_mountable_image(
+ config,
+ swpart,
+ [&results](const device_image_interface &candidate) { return results.count(candidate.instance_name()) == 0; });
+
+ // did we find a slot to put this part into?
+ if (image != nullptr)
+ {
+ // we've resolved this software
+ results[image->instance_name()] = string_format("%s:%s:%s", swlistdev.list_name(), software_name, swpart.name());
+
+ // does this software part have a requirement on another part?
+ const char *requirement = swpart.feature("requirement");
+ if (requirement)
+ software_identifier_stack.push(requirement);
+ }
+ compatible = true;
+ }
+ found = true;
+ }
+
+ // identify other shared features specified as '<<slot name>>_default'
+ //
+ // example from SMS:
+ //
+ // <software name = "alexbmx">
+ // ...
+ // <sharedfeat name = "ctrl1_default" value = "paddle" />
+ // </software>
+ for (const feature_list_item &fi : swinfo->shared_info())
+ {
+ const std::string default_suffix = "_default";
+ if (fi.name().size() > default_suffix.size()
+ && fi.name().compare(fi.name().size() - default_suffix.size(), default_suffix.size(), default_suffix) == 0)
+ {
+ std::string slot_name = fi.name().substr(0, fi.name().size() - default_suffix.size());
+ results[slot_name] = fi.value();
+ }
+ }
+ }
+ }
+ if (compatible)
+ break;
+ }
+
+ if (!compatible)
+ {
+ software_list_device::display_matches(config, nullptr, software_name);
+ if (!found)
+ throw emu_fatalerror(EMU_ERR_FATALERROR, nullptr);
+ else
+ throw emu_fatalerror(EMU_ERR_FATALERROR, "Software '%s' is incompatible with system '%s'\n", software_name.c_str(), options.system_name());
+ }
+ }
+ }
+ return results;
+}
+
+
+//-------------------------------------------------
+// parse_standard_inis - parse the standard set
+// of INI files
+//-------------------------------------------------
+
+void mame_options::parse_standard_inis(emu_options &options, std::string &error_string, const game_driver *driver)
+{
+ // start with an empty string
+ error_string.clear();
+
+ // parse the INI file defined by the platform (e.g., "mame.ini")
+ // we do this twice so that the first file can change the INI path
+ parse_one_ini(options,emulator_info::get_configname(), OPTION_PRIORITY_MAME_INI);
+ parse_one_ini(options,emulator_info::get_configname(), OPTION_PRIORITY_MAME_INI, &error_string);
+
+ // debug mode: parse "debug.ini" as well
+ if (options.debug())
+ parse_one_ini(options,"debug", OPTION_PRIORITY_DEBUG_INI, &error_string);
+
+ // if we have a valid system driver, parse system-specific INI files
+ const game_driver *cursystem = (driver == nullptr) ? system(options) : driver;
+ if (cursystem == nullptr)
+ return;
+
+ // parse "vertical.ini" or "horizont.ini"
+ if (cursystem->flags & ORIENTATION_SWAP_XY)
+ parse_one_ini(options,"vertical", OPTION_PRIORITY_ORIENTATION_INI, &error_string);
+ else
+ parse_one_ini(options,"horizont", OPTION_PRIORITY_ORIENTATION_INI, &error_string);
+
+ if (cursystem->flags & MACHINE_TYPE_ARCADE)
+ parse_one_ini(options,"arcade", OPTION_PRIORITY_SYSTYPE_INI, &error_string);
+ else if (cursystem->flags & MACHINE_TYPE_CONSOLE)
+ parse_one_ini(options,"console", OPTION_PRIORITY_SYSTYPE_INI, &error_string);
+ else if (cursystem->flags & MACHINE_TYPE_COMPUTER)
+ parse_one_ini(options,"computer", OPTION_PRIORITY_SYSTYPE_INI, &error_string);
+ else if (cursystem->flags & MACHINE_TYPE_OTHER)
+ parse_one_ini(options,"othersys", OPTION_PRIORITY_SYSTYPE_INI, &error_string);
+
+ machine_config config(*cursystem, options);
+ for (const screen_device &device : screen_device_iterator(config.root_device()))
+ {
+ // parse "raster.ini" for raster games
+ if (device.screen_type() == SCREEN_TYPE_RASTER)
+ {
+ parse_one_ini(options,"raster", OPTION_PRIORITY_SCREEN_INI, &error_string);
+ break;
+ }
+ // parse "vector.ini" for vector games
+ if (device.screen_type() == SCREEN_TYPE_VECTOR)
+ {
+ parse_one_ini(options,"vector", OPTION_PRIORITY_SCREEN_INI, &error_string);
+ break;
+ }
+ // parse "lcd.ini" for lcd games
+ if (device.screen_type() == SCREEN_TYPE_LCD)
+ {
+ parse_one_ini(options,"lcd", OPTION_PRIORITY_SCREEN_INI, &error_string);
+ break;
+ }
+ }
+
+ // next parse "source/<sourcefile>.ini"
+ std::string sourcename = core_filename_extract_base(cursystem->source_file, true).insert(0, "source" PATH_SEPARATOR);
+ parse_one_ini(options,sourcename.c_str(), OPTION_PRIORITY_SOURCE_INI, &error_string);
+
+ // then parse the grandparent, parent, and system-specific INIs
+ int parent = driver_list::clone(*cursystem);
+ int gparent = (parent != -1) ? driver_list::clone(parent) : -1;
+ if (gparent != -1)
+ parse_one_ini(options,driver_list::driver(gparent).name, OPTION_PRIORITY_GPARENT_INI, &error_string);
+ if (parent != -1)
+ parse_one_ini(options,driver_list::driver(parent).name, OPTION_PRIORITY_PARENT_INI, &error_string);
+ parse_one_ini(options,cursystem->name, OPTION_PRIORITY_DRIVER_INI, &error_string);
+}
+
+
+//-------------------------------------------------
+// system - return a pointer to the specified
+// system driver, or nullptr if no match
+//-------------------------------------------------
+
+const game_driver *mame_options::system(const emu_options &options)
+{
+ int index = driver_list::find(core_filename_extract_base(options.system_name(), true).c_str());
+ return (index != -1) ? &driver_list::driver(index) : nullptr;
+}
+
+
+//-------------------------------------------------
+// set_system_name - set a new system name
+//-------------------------------------------------
+
+void mame_options::set_system_name(emu_options &options, const char *name)
+{
+ // remember the original system name
+ std::string old_system_name(options.system_name());
+ bool new_system = old_system_name.compare(name) != 0;
+
+ // if the system name changed, fix up the device options
+ if (new_system)
+ {
+ // first set the new name
+ std::string error;
+ options.set_value(OPTION_SYSTEMNAME, name, OPTION_PRIORITY_CMDLINE, error);
+ assert(error.empty());
+
+ // remove any existing device options
+ remove_device_options(options);
+ }
+ else
+ {
+ // revert device options set for the old software
+ options.revert(OPTION_PRIORITY_SUBCMD, OPTION_PRIORITY_SUBCMD);
+ }
+
+ // get the new system
+ const game_driver *cursystem = system(options);
+ if (cursystem == nullptr)
+ return;
+
+ if (*options.software_name() != 0)
+ {
+ std::string sw_load(options.software_name());
+ std::string sw_list, sw_name, sw_part, sw_instance, error_string;
+ int left = sw_load.find_first_of(':');
+ int middle = sw_load.find_first_of(':', left + 1);
+ int right = sw_load.find_last_of(':');
+
+ sw_list = sw_load.substr(0, left);
+ sw_name = sw_load.substr(left + 1, middle - left - 1);
+ sw_part = sw_load.substr(middle + 1, right - middle - 1);
+ sw_instance = sw_load.substr(right + 1);
+ sw_load.assign(sw_load.substr(0, right));
+
+ // look up the software part
+ machine_config config(*cursystem, options);
+ software_list_device *swlist = software_list_device::find_by_name(config, sw_list.c_str());
+ const software_info *swinfo = swlist != nullptr ? swlist->find(sw_name.c_str()) : nullptr;
+ const software_part *swpart = swinfo != nullptr ? swinfo->find_part(sw_part.c_str()) : nullptr;
+ if (swpart == nullptr)
+ osd_printf_warning("Could not find %s in software list\n", options.software_name());
+
+ // then add the options
+ if (new_system)
+ {
+ while (add_slot_options(options)) {}
+ add_device_options(options);
+ }
+
+ options.set_value(OPTION_SOFTWARENAME, sw_name.c_str(), OPTION_PRIORITY_CMDLINE, error_string);
+ if (options.exists(sw_instance.c_str()))
+ options.set_value(sw_instance.c_str(), sw_load.c_str(), OPTION_PRIORITY_SUBCMD, error_string);
+
+ int num;
+ do {
+ num = options.options_count();
+ update_slot_options(options,swpart);
+ } while (num != options.options_count());
+ }
+ else if (new_system)
+ {
+ // add the options afresh
+ while (add_slot_options(options)) {}
+ add_device_options(options);
+ int num;
+ do {
+ num = options.options_count();
+ update_slot_options(options);
+ } while (num != options.options_count());
+ }
+}
+
+//-------------------------------------------------
+// parse_one_ini - parse a single INI file
+//-------------------------------------------------
+
+bool mame_options::parse_one_ini(emu_options &options, const char *basename, int priority, std::string *error_string)
+{
+ // don't parse if it has been disabled
+ if (!options.read_config())
+ return false;
+
+ // open the file; if we fail, that's ok
+ emu_file file(options.ini_path(), OPEN_FLAG_READ);
+ osd_printf_verbose("Attempting load of %s.ini\n", basename);
+ osd_file::error filerr = file.open(basename, ".ini");
+ if (filerr != osd_file::error::NONE)
+ return false;
+
+ // parse the file
+ osd_printf_verbose("Parsing %s.ini\n", basename);
+ std::string error;
+ bool result = options.parse_ini_file((util::core_file&)file, priority, OPTION_PRIORITY_DRIVER_INI, error);
+
+ // append errors if requested
+ if (!error.empty() && error_string)
+ error_string->append(string_format("While parsing %s:\n%s\n", file.fullpath(), error));
+
+ return result;
+}
+
diff --git a/docs/release/src/frontend/mame/mameopts.h b/docs/release/src/frontend/mame/mameopts.h
new file mode 100644
index 00000000000..3c543e65c66
--- /dev/null
+++ b/docs/release/src/frontend/mame/mameopts.h
@@ -0,0 +1,91 @@
+// license:BSD-3-Clause
+// copyright-holders:Aaron Giles
+/***************************************************************************
+
+ mameopts.h
+
+ Options file and command line management.
+
+***************************************************************************/
+
+#pragma once
+
+#ifndef __MAMEOPTS_H__
+#define __MAMEOPTS_H__
+
+#include "emuopts.h"
+
+//**************************************************************************
+// CONSTANTS
+//**************************************************************************
+#undef OPTION_PRIORITY_CMDLINE
+
+// option priorities
+enum
+{
+ // command-line options are HIGH priority
+ OPTION_PRIORITY_SUBCMD = OPTION_PRIORITY_HIGH,
+ OPTION_PRIORITY_CMDLINE,
+
+ // INI-based options are NORMAL priority, in increasing order:
+ OPTION_PRIORITY_MAME_INI = OPTION_PRIORITY_NORMAL + 1,
+ OPTION_PRIORITY_DEBUG_INI,
+ OPTION_PRIORITY_ORIENTATION_INI,
+ OPTION_PRIORITY_SYSTYPE_INI,
+ OPTION_PRIORITY_SCREEN_INI,
+ OPTION_PRIORITY_SOURCE_INI,
+ OPTION_PRIORITY_GPARENT_INI,
+ OPTION_PRIORITY_PARENT_INI,
+ OPTION_PRIORITY_DRIVER_INI,
+ OPTION_PRIORITY_INI,
+};
+
+//**************************************************************************
+// TYPE DEFINITIONS
+//**************************************************************************
+
+// forward references
+struct game_driver;
+class software_part;
+
+class mame_options
+{
+ static const uint32_t OPTION_FLAG_DEVICE = 0x80000000;
+
+public:
+ typedef std::function<std::string (const std::string &)> value_specifier_func;
+
+ // parsing wrappers
+ static bool parse_command_line(emu_options &options, std::vector<std::string> &args, std::string &error_string);
+ static void parse_standard_inis(emu_options &options, std::string &error_string, const game_driver *driver = nullptr);
+ // FIXME: Couriersud: This should be in image_device_exit
+ static void remove_device_options(emu_options &options);
+
+ static const game_driver *system(const emu_options &options);
+ static void set_system_name(emu_options &options, const char *name);
+ static bool add_slot_options(emu_options &options, value_specifier_func value_specifier = nullptr);
+ static bool reevaluate_slot_options(emu_options &options);
+
+private:
+ // device-specific option handling
+ static void add_device_options(emu_options &options, value_specifier_func value_specifier = nullptr);
+ static void update_slot_options(emu_options &options, const software_part *swpart = nullptr);
+ static void parse_slot_devices(emu_options &options, value_specifier_func value_specifier);
+ static std::string get_full_option_name(const device_image_interface &image);
+ static std::string get_default_card_software(device_slot_interface &slot, const emu_options &options);
+
+ // INI parsing helper
+ static bool parse_one_ini(emu_options &options, const char *basename, int priority, std::string *error_string = nullptr);
+
+ // softlist handling
+ static std::map<std::string, std::string> evaluate_initial_softlist_options(emu_options &options);
+
+ // represents an "invalid" value (an empty string is valid so we can't use that; what I
+ // really want to return is std::optional<std::string> but C++17 isn't here yet)
+ static std::string value_specifier_invalid_value() { return std::string("\x01\x02\x03"); }
+
+ static int m_slot_options;
+ static int m_device_options;
+};
+
+#endif /* __MAMEOPTS_H__ */
diff --git a/docs/release/src/hbmame/bus/neogeo/banked_cart.cpp b/docs/release/src/hbmame/bus/neogeo/banked_cart.cpp
new file mode 100644
index 00000000000..a1ea684c5eb
--- /dev/null
+++ b/docs/release/src/hbmame/bus/neogeo/banked_cart.cpp
@@ -0,0 +1,109 @@
+// license:BSD-3-Clause
+// copyright-holders:S. Smith,David Haywood
+#include "emu.h"
+#include "banked_cart.h"
+
+
+
+const device_type NEOGEO_BANKED_CART = device_creator<neogeo_banked_cart_device>;
+
+
+neogeo_banked_cart_device::neogeo_banked_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : device_t(mconfig, NEOGEO_BANKED_CART, "NeoGeo Banked Cartridge", tag, owner, clock, "neogeo_banked_cart", __FILE__),
+ m_bank_cartridge(nullptr),
+ m_main_cpu_bank_address(0),
+ m_region(nullptr),
+ m_region_size(0)
+
+{
+}
+
+void neogeo_banked_cart_device::postload()
+{
+ _set_main_cpu_bank_address();
+}
+
+void neogeo_banked_cart_device::device_start()
+{
+ save_item(NAME(m_main_cpu_bank_address));
+ machine().save().register_postload(save_prepost_delegate(FUNC(neogeo_banked_cart_device::postload), this));
+}
+
+void neogeo_banked_cart_device::device_reset()
+{
+}
+
+
+
+
+
+
+/*************************************
+ *
+ * Main CPU banking
+ *
+ *************************************/
+
+void neogeo_banked_cart_device::_set_main_cpu_bank_address(void)
+{
+ if (!m_region)
+ printf("region is null\n");
+
+ if (!m_bank_cartridge)
+ printf("bank_cartridge is null\n");
+
+ if (m_region && m_bank_cartridge) m_bank_cartridge->set_base(m_region + m_main_cpu_bank_address);
+}
+
+
+void neogeo_banked_cart_device::neogeo_set_main_cpu_bank_address( uint32_t bank_address )
+{
+// if (LOG_MAIN_CPU_BANKING) logerror("MAIN CPU PC %06x: neogeo_set_main_cpu_bank_address %06x\n", m_maincpu->pc(), bank_address);
+
+ m_main_cpu_bank_address = bank_address;
+
+ _set_main_cpu_bank_address();
+}
+
+
+WRITE16_MEMBER(neogeo_banked_cart_device::main_cpu_bank_select_w)
+{
+ uint32_t bank_address;
+ uint32_t len = m_region_size;
+
+ if ((len <= 0x100000) && (data & 0x07))
+ logerror("PC %06x: warning: bankswitch to %02x but no banks available\n", space.device().safe_pc(), data);
+ else
+ {
+ bank_address = ((data & 0x07) + 1) * 0x100000;
+
+ if (bank_address >= len)
+ {
+ logerror("PC %06x: warning: bankswitch to empty bank %02x\n", space.device().safe_pc(), data);
+ bank_address = 0x100000;
+ }
+
+ neogeo_set_main_cpu_bank_address(bank_address);
+ }
+}
+
+void neogeo_banked_cart_device::init_banks(void)
+{
+ /* set initial main CPU bank */
+ if (m_region_size > 0x100000)
+ neogeo_set_main_cpu_bank_address(0x100000);
+ else
+ neogeo_set_main_cpu_bank_address(0x000000);
+}
+
+void neogeo_banked_cart_device::install_banks(running_machine& machine, cpu_device* maincpu, uint8_t* region, uint32_t region_size)
+{
+ maincpu->space(AS_PROGRAM).install_read_bank(0x200000, 0x2fffff, "cartridge");
+ maincpu->space(AS_PROGRAM).install_write_handler(0x2ffff0, 0x2fffff, write16_delegate(FUNC(neogeo_banked_cart_device::main_cpu_bank_select_w),this));
+
+ m_bank_cartridge = machine.root_device().membank("cartridge");
+ m_region = region;
+ m_region_size = region_size;
+
+ init_banks();
+}
diff --git a/docs/release/src/hbmame/bus/neogeo/banked_cart.h b/docs/release/src/hbmame/bus/neogeo/banked_cart.h
new file mode 100644
index 00000000000..e0210b68d4a
--- /dev/null
+++ b/docs/release/src/hbmame/bus/neogeo/banked_cart.h
@@ -0,0 +1,40 @@
+// license:BSD-3-Clause
+// copyright-holders:S. Smith,David Haywood
+
+
+#pragma once
+
+#ifndef __NEOGEO_BANKED_CART__
+#define __NEOGEO_BANKED_CART__
+
+extern const device_type NEOGEO_BANKED_CART;
+
+#define MCFG_NEOGEO_BANKED_CART_ADD(_tag) \
+ MCFG_DEVICE_ADD(_tag, NEOGEO_BANKED_CART, 0)
+
+
+class neogeo_banked_cart_device : public device_t
+{
+public:
+ // construction/destruction
+ neogeo_banked_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
+ memory_bank* m_bank_cartridge;
+ uint32_t m_main_cpu_bank_address;
+ uint8_t* m_region;
+ uint32_t m_region_size;
+
+
+ void install_banks(running_machine& machine, cpu_device* maincpu, uint8_t* region, uint32_t region_size);
+ WRITE16_MEMBER(main_cpu_bank_select_w);
+ void neogeo_set_main_cpu_bank_address(uint32_t bank_address);
+ void _set_main_cpu_bank_address();
+ void init_banks(void);
+
+protected:
+ virtual void device_start() override;
+ virtual void device_reset() override;
+ void postload();
+};
+
+#endif
diff --git a/docs/release/src/hbmame/bus/neogeo/prot.cpp b/docs/release/src/hbmame/bus/neogeo/prot.cpp
new file mode 100644
index 00000000000..12bca1793f2
--- /dev/null
+++ b/docs/release/src/hbmame/bus/neogeo/prot.cpp
@@ -0,0 +1,3131 @@
+// license:BSD-3-Clause
+// copyright-holders:S. Smith,David Haywood
+#include "neogeo.h"
+
+
+const device_type NGBOOTLEG_PROT = device_creator<ngbootleg_prot_device>;
+
+
+ngbootleg_prot_device::ngbootleg_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : device_t(mconfig, NGBOOTLEG_PROT, "NeoGeo Protection (Bootleg)", tag, owner, clock, "ngbootleg_prot", __FILE__)
+ , kof2k3_overlay(0)
+ , m_mainrom(nullptr)
+ , m_fixedrom(nullptr)
+ , m_bankdev(nullptr)
+ { }
+
+
+void ngbootleg_prot_device::device_start()
+{
+ memset(m_cartridge_ram, 0x00, 0x2000);
+
+ save_item(NAME(m_cartridge_ram));
+}
+
+void ngbootleg_prot_device::device_reset() { }
+
+
+/* General Bootleg Functions - used by more than 1 game */
+
+
+void ngbootleg_prot_device::neogeo_bootleg_cx_decrypt(uint8_t*sprrom, uint32_t sprrom_size)
+{
+ int i;
+ int cx_size = sprrom_size;
+ uint8_t *rom = sprrom;
+ std::vector<uint8_t> buf( cx_size );
+
+ memcpy( &buf[0], rom, cx_size );
+
+ for( i = 0; i < cx_size / 0x40; i++ )
+ memcpy( &rom[ i * 0x40 ], &buf[ (i ^ 1) * 0x40 ], 0x40 );
+}
+
+
+void ngbootleg_prot_device::neogeo_bootleg_sx_decrypt(uint8_t* fixed, uint32_t fixed_size, int value )
+{
+ int sx_size = fixed_size;
+ uint8_t *rom = fixed;
+ int i;
+
+ if (value == 1)
+ {
+ std::vector<uint8_t> buf( sx_size );
+ memcpy( &buf[0], rom, sx_size );
+
+ for( i = 0; i < sx_size; i += 0x10 )
+ {
+ memcpy( &rom[ i ], &buf[ i + 8 ], 8 );
+ memcpy( &rom[ i + 8 ], &buf[ i ], 8 );
+ }
+ }
+ else if (value == 2)
+ {
+ for( i = 0; i < sx_size; i++ )
+ rom[ i ] = BITSWAP8( rom[ i ], 7, 6, 0, 4, 3, 2, 1, 5 );
+ }
+}
+
+
+
+/* The King of Fighters '97 Oroshi Plus 2003 (bootleg) */
+
+void ngbootleg_prot_device::kof97oro_px_decode(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ int i;
+ std::vector<uint16_t> tmp( 0x500000 );
+ uint16_t *src = (uint16_t*)cpurom;
+
+ for (i = 0; i < 0x500000/2; i++)
+ tmp[i] = src[i ^ 0x7ffef];
+
+ memcpy (src, &tmp[0], 0x500000);
+}
+
+
+/* The King of Fighters 10th Anniversary (The King of Fighters 2002 bootleg) */
+
+
+/* this uses RAM based tiles for the text layer, however the implementation
+ is incomplete, at the moment the S data is copied from the program rom on
+ start-up instead */
+
+void ngbootleg_prot_device::kof10thBankswitch(address_space &space, uint16_t nBank)
+{
+ uint32_t bank = 0x100000 + ((nBank & 7) << 20);
+ if (bank >= 0x700000)
+ bank = 0x100000;
+ m_bankdev->neogeo_set_main_cpu_bank_address(bank);
+}
+
+READ16_MEMBER( ngbootleg_prot_device::kof10th_RAMB_r )
+{
+ return m_cartridge_ram[offset];
+}
+
+READ16_MEMBER(ngbootleg_prot_device::kof10th_RAM2_r)
+{
+// printf("kof10th_RAM2_r\n");
+ return m_cartridge_ram2[offset];
+}
+
+WRITE16_MEMBER( ngbootleg_prot_device::kof10th_custom_w )
+{
+ if (!m_cartridge_ram[0xFFE]) { // Write to RAM bank A
+ //uint16_t *prom = (uint16_t*)m_mainrom;
+ COMBINE_DATA(&m_cartridge_ram2[(0x00000/2) + (offset & 0xFFFF)]);
+ }
+ else
+ { // Write S data on-the-fly
+ m_fixedrom[offset] = BITSWAP8(data,7,6,0,4,3,2,1,5);
+ }
+}
+
+WRITE16_MEMBER( ngbootleg_prot_device::kof10th_bankswitch_w )
+{
+ if (offset >= 0x5F000) {
+ if (offset == 0x5FFF8)
+ { // Standard bankswitch
+ kof10thBankswitch(space, data);
+ }
+ else
+ if (offset == 0x5FFFC && m_cartridge_ram[0xFFC] != data)
+ { // Special bankswitch
+ uint8_t *src = m_mainrom;
+ memcpy (src + 0x10000, src + ((data & 1) ? 0x810000 : 0x710000), 0xcffff);
+ }
+ COMBINE_DATA(&m_cartridge_ram[offset & 0xFFF]);
+ }
+}
+
+void ngbootleg_prot_device::install_kof10th_protection (cpu_device* maincpu, neogeo_banked_cart_device* bankdev, uint8_t* cpurom, uint32_t cpurom_size, uint8_t* fixedrom, uint32_t fixedrom_size)
+{
+ m_mainrom = cpurom;
+ m_fixedrom = fixedrom;
+ m_bankdev = bankdev;
+
+ maincpu->space(AS_PROGRAM).install_read_handler(0x0e0000, 0x0fffff, read16_delegate(FUNC(ngbootleg_prot_device::kof10th_RAM2_r),this));
+
+ maincpu->space(AS_PROGRAM).install_read_handler(0x2fe000, 0x2fffff, read16_delegate(FUNC(ngbootleg_prot_device::kof10th_RAMB_r),this));
+ maincpu->space(AS_PROGRAM).install_write_handler(0x200000, 0x23ffff, write16_delegate(FUNC(ngbootleg_prot_device::kof10th_custom_w),this));
+ maincpu->space(AS_PROGRAM).install_write_handler(0x240000, 0x2fffff, write16_delegate(FUNC(ngbootleg_prot_device::kof10th_bankswitch_w),this));
+ memcpy(m_cartridge_ram2, cpurom + 0xe0000, 0x20000);
+
+ // HACK: only save this at device_start (not allowed later)
+ if (machine().phase() <= MACHINE_PHASE_INIT)
+ save_pointer(NAME(m_fixedrom), 0x40000);
+}
+
+void ngbootleg_prot_device::decrypt_kof10th(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ int i, j;
+ std::vector<uint8_t> dst(0x900000);
+ uint8_t *src = cpurom;
+
+ memcpy(&dst[0x000000], src + 0x700000, 0x100000); // Correct (Verified in Uni-bios)
+ memcpy(&dst[0x100000], src + 0x000000, 0x800000);
+
+ for (i = 0; i < 0x900000; i++)
+ {
+ j = BITSWAP24(i,23,22,21,20,19,18,17,16,15,14,13,12,11,2,9,8,7,1,5,4,3,10,6,0);
+ src[j] = dst[i];
+ }
+
+ // Altera protection chip patches these over P ROM
+ ((uint16_t*)src)[0x0124/2] = 0x000d; // Enables XOR for RAM moves, forces SoftDIPs, and USA region
+ ((uint16_t*)src)[0x0126/2] = 0xf7a8;
+ ((uint16_t*)src)[0x8bf4/2] = 0x4ef9; // Run code to change "S" data
+ ((uint16_t*)src)[0x8bf6/2] = 0x000d;
+ ((uint16_t*)src)[0x8bf8/2] = 0xf980;
+}
+
+
+/* The King of Fighters 10th Anniversary Extra Plus (The King of Fighters 2002 bootleg) */
+
+
+void ngbootleg_prot_device::kf10thep_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ uint16_t *rom = (uint16_t*)cpurom;
+ std::vector<uint16_t> buf(0x100000/2);
+
+ memcpy(&buf[0x000000/2], &rom[0x060000/2], 0x20000);
+ memcpy(&buf[0x020000/2], &rom[0x100000/2], 0x20000);
+ memcpy(&buf[0x040000/2], &rom[0x0e0000/2], 0x20000);
+ memcpy(&buf[0x060000/2], &rom[0x180000/2], 0x20000);
+ memcpy(&buf[0x080000/2], &rom[0x020000/2], 0x20000);
+ memcpy(&buf[0x0a0000/2], &rom[0x140000/2], 0x20000);
+ memcpy(&buf[0x0c0000/2], &rom[0x0c0000/2], 0x20000);
+ memcpy(&buf[0x0e0000/2], &rom[0x1a0000/2], 0x20000);
+ memcpy(&buf[0x0002e0/2], &rom[0x0402e0/2], 0x6a); // copy banked code to a new memory region
+ memcpy(&buf[0x0f92bc/2], &rom[0x0492bc/2], 0xb9e); // copy banked code to a new memory region
+ memcpy(rom, &buf[0], 0x100000);
+
+ for (int i = 0xf92bc/2; i < 0xf9e58/2; i++)
+ {
+ if (rom[i+0] == 0x4eb9 && rom[i+1] == 0x0000) rom[i+1] = 0x000F; // correct JSR in moved code
+ if (rom[i+0] == 0x4ef9 && rom[i+1] == 0x0000) rom[i+1] = 0x000F; // correct JMP in moved code
+ }
+ rom[0x00342/2] = 0x000f;
+
+ memmove(&rom[0x100000/2], &rom[0x200000/2], 0x600000);
+}
+
+
+/* The King of Fighters 10th Anniversary 2005 Unique (The King of Fighters 2002 bootleg) */
+
+
+void ngbootleg_prot_device::kf2k5uni_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ int i, j, ofst;
+ uint8_t *src = cpurom;
+ uint8_t dst[0x80];
+
+ for (i = 0; i < 0x800000; i+=0x80)
+ {
+ for (j = 0; j < 0x80; j+=2)
+ {
+ ofst = BITSWAP8(j, 0, 3, 4, 5, 6, 1, 2, 7);
+ memcpy(&dst[j], src + i + ofst, 2);
+ }
+ memcpy(src + i, &dst[0], 0x80);
+ }
+
+ memcpy(src, src + 0x600000, 0x100000); // Seems to be the same as kof10th
+}
+
+void ngbootleg_prot_device::kf2k5uni_sx_decrypt(uint8_t* fixedrom, uint32_t fixedrom_size)
+{
+ int i;
+ uint8_t *srom = fixedrom;
+
+ for (i = 0; i < 0x20000; i++)
+ srom[i] = BITSWAP8(srom[i], 4, 5, 6, 7, 0, 1, 2, 3);
+}
+
+void ngbootleg_prot_device::kf2k5uni_mx_decrypt(uint8_t* audiorom, uint32_t audiorom_size)
+{
+ int i;
+ uint8_t *mrom = audiorom;
+
+ for (i = 0; i < 0x30000; i++)
+ mrom[i] = BITSWAP8(mrom[i], 4, 5, 6, 7, 0, 1, 2, 3);
+}
+
+void ngbootleg_prot_device::decrypt_kf2k5uni(uint8_t* cpurom, uint32_t cpurom_size, uint8_t* audiorom, uint32_t audiorom_size, uint8_t* fixedrom, uint32_t fixedrom_size)
+{
+ kf2k5uni_px_decrypt(cpurom, cpurom_size);
+ kf2k5uni_sx_decrypt(fixedrom, fixedrom_size);
+ kf2k5uni_mx_decrypt(audiorom, audiorom_size);
+}
+
+
+/* The King of Fighters 2002 (bootleg) */
+
+
+void ngbootleg_prot_device::kof2002b_gfx_decrypt(uint8_t *src, int size)
+{
+ int i, j;
+ static const uint8_t t[ 8 ][ 6 ] =
+ {
+ { 0, 8, 7, 6, 2, 1 },
+ { 1, 0, 8, 7, 6, 2 },
+ { 2, 1, 0, 8, 7, 6 },
+ { 6, 2, 1, 0, 8, 7 },
+ { 7, 6, 2, 1, 0, 8 },
+ { 0, 1, 2, 6, 7, 8 },
+ { 2, 1, 0, 6, 7, 8 },
+ { 8, 0, 7, 6, 2, 1 },
+ };
+
+ std::vector<uint8_t> dst( 0x10000 );
+
+ for ( i = 0; i < size; i+=0x10000 )
+ {
+ memcpy( &dst[0], src+i, 0x10000 );
+
+ for ( j = 0; j < 0x200; j++ )
+ {
+ int n = (j & 0x38) >> 3;
+ int ofst = BITSWAP16(j, 15, 14, 13, 12, 11, 10, 9, t[n][0], t[n][1], t[n][2], 5, 4, 3, t[n][3], t[n][4], t[n][5]);
+ memcpy( src+i+ofst*128, &dst[j*128], 128 );
+ }
+ }
+}
+
+
+/* The King of Fighters 2002 Magic Plus (bootleg) */
+
+
+void ngbootleg_prot_device::kf2k2mp_decrypt(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ int i,j;
+
+ uint8_t *src = cpurom;
+ uint8_t dst[0x80];
+
+ memmove(src, src + 0x300000, 0x500000);
+
+ for (i = 0; i < 0x800000; i+=0x80)
+ {
+ for (j = 0; j < 0x80 / 2; j++)
+ {
+ int ofst = BITSWAP8( j, 6, 7, 2, 3, 4, 5, 0, 1 );
+ memcpy(dst + j * 2, src + i + ofst * 2, 2);
+ }
+ memcpy(src + i, dst, 0x80);
+ }
+}
+
+
+/* The King of Fighters 2002 Magic Plus II (bootleg) */
+
+
+void ngbootleg_prot_device::kf2k2mp2_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ uint8_t *src = cpurom;
+ std::vector<uint8_t> dst(0x600000);
+
+ memcpy (&dst[0x000000], &src[0x1C0000], 0x040000);
+ memcpy (&dst[0x040000], &src[0x140000], 0x080000);
+ memcpy (&dst[0x0C0000], &src[0x100000], 0x040000);
+ memcpy (&dst[0x100000], &src[0x200000], 0x400000);
+ memcpy (&src[0x000000], &dst[0x000000], 0x600000);
+}
+
+
+/* Crouching Tiger Hidden Dragon 2003 (bootleg of King of Fighters 2001) */
+
+
+/* descrambling information from razoola */
+void ngbootleg_prot_device::cthd2003_neogeo_gfx_address_fix_do(uint8_t* sprrom, uint32_t sprrom_size, int start, int end, int bit3shift, int bit2shift, int bit1shift, int bit0shift)
+{
+ int i,j;
+ int tilesize=128;
+
+ std::vector<uint8_t> rom(16*tilesize); // 16 tiles buffer
+ uint8_t* realrom = sprrom + start*tilesize;
+
+ for (i = 0; i < (end-start)/16; i++)
+ {
+ for (j = 0; j < 16; j++)
+ {
+ int offset = (((j&1)>>0)<<bit0shift) +(((j&2)>>1)<<bit1shift) +(((j&4)>>2)<<bit2shift) +(((j&8)>>3)<<bit3shift);
+
+ memcpy(&rom[j*tilesize], realrom+offset*tilesize, tilesize);
+ }
+ memcpy(realrom,&rom[0],tilesize*16);
+ realrom += 16*tilesize;
+ }
+}
+
+void ngbootleg_prot_device::cthd2003_neogeo_gfx_address_fix(uint8_t* sprrom, uint32_t sprrom_size, int start, int end)
+{
+ cthd2003_neogeo_gfx_address_fix_do(sprrom, sprrom_size, start+512*0, end+512*0, 0,3,2,1);
+ cthd2003_neogeo_gfx_address_fix_do(sprrom, sprrom_size, start+512*1, end+512*1, 1,0,3,2);
+ cthd2003_neogeo_gfx_address_fix_do(sprrom, sprrom_size, start+512*2, end+512*2, 2,1,0,3);
+ // skip 3 & 4
+ cthd2003_neogeo_gfx_address_fix_do(sprrom, sprrom_size, start+512*5, end+512*5, 0,1,2,3);
+ cthd2003_neogeo_gfx_address_fix_do(sprrom, sprrom_size, start+512*6, end+512*6, 0,1,2,3);
+ cthd2003_neogeo_gfx_address_fix_do(sprrom, sprrom_size, start+512*7, end+512*7, 0,2,3,1);
+}
+
+void ngbootleg_prot_device::cthd2003_c(uint8_t* sprrom, uint32_t sprrom_size, int pow)
+{
+ int i;
+
+ for (i=0; i<=192; i+=8)
+ cthd2003_neogeo_gfx_address_fix(sprrom, sprrom_size, i*512,i*512+512);
+
+ for (i=200; i<=392; i+=8)
+ cthd2003_neogeo_gfx_address_fix(sprrom, sprrom_size, i*512,i*512+512);
+
+ for (i=400; i<=592; i+=8)
+ cthd2003_neogeo_gfx_address_fix(sprrom, sprrom_size, i*512,i*512+512);
+
+ for (i=600; i<=792; i+=8)
+ cthd2003_neogeo_gfx_address_fix(sprrom, sprrom_size, i*512,i*512+512);
+
+ for (i=800; i<=992; i+=8)
+ cthd2003_neogeo_gfx_address_fix(sprrom, sprrom_size, i*512,i*512+512);
+
+ for (i=1000; i<=1016; i+=8)
+ cthd2003_neogeo_gfx_address_fix(sprrom, sprrom_size, i*512,i*512+512);
+}
+
+void ngbootleg_prot_device::decrypt_cthd2003(uint8_t* sprrom, uint32_t sprrom_size, uint8_t* audiorom, uint32_t audiorom_size, uint8_t* fixedrom, uint32_t fixedrom_size)
+{
+ uint8_t *romdata = fixedrom;
+ std::vector<uint8_t> tmp(8*128*128);
+
+ memcpy(&tmp[8*0*128], romdata+8*0*128, 8*32*128);
+ memcpy(&tmp[8*32*128], romdata+8*64*128, 8*32*128);
+ memcpy(&tmp[8*64*128], romdata+8*32*128, 8*32*128);
+ memcpy(&tmp[8*96*128], romdata+8*96*128, 8*32*128);
+ memcpy(romdata, &tmp[0], 8*128*128);
+
+ romdata = audiorom+0x10000;
+ memcpy(&tmp[8*0*128], romdata+8*0*128, 8*32*128);
+ memcpy(&tmp[8*32*128], romdata+8*64*128, 8*32*128);
+ memcpy(&tmp[8*64*128], romdata+8*32*128, 8*32*128);
+ memcpy(&tmp[8*96*128], romdata+8*96*128, 8*32*128);
+ memcpy(romdata, &tmp[0], 8*128*128);
+
+ memcpy(romdata-0x10000,romdata,0x10000);
+
+ cthd2003_c(sprrom, sprrom_size, 0);
+}
+
+WRITE16_MEMBER( ngbootleg_prot_device::cthd2003_bankswitch_w )
+{
+ int bankaddress;
+ static const int cthd2003_banks[8] = { 1,0,1,0,1,0,3,2 };
+ if (offset == 0)
+ {
+ bankaddress = 0x100000 + cthd2003_banks[data&7] * 0x100000;
+ m_bankdev->neogeo_set_main_cpu_bank_address(bankaddress);
+ }
+}
+
+void ngbootleg_prot_device::patch_cthd2003(cpu_device* maincpu, neogeo_banked_cart_device* bankdev, uint8_t* cpurom, uint32_t cpurom_size)
+{
+ /* patches thanks to razoola */
+ int i;
+ uint16_t *mem16 = (uint16_t *)cpurom;
+
+ /* special ROM banking handler */
+ maincpu->space(AS_PROGRAM).install_write_handler(0x2ffff0, 0x2fffff, write16_delegate(FUNC(ngbootleg_prot_device::cthd2003_bankswitch_w),this));
+ m_bankdev = bankdev;
+
+ // theres still a problem on the character select screen but it seems to be related to cpu core timing issues,
+ // overclocking the 68k prevents it.
+
+ // fix garbage on s1 layer over everything
+ mem16[0xf415a/2] = 0x4ef9;
+ mem16[0xf415c/2] = 0x000f;
+ mem16[0xf415e/2] = 0x4cf2;
+ // Fix corruption in attract mode before title screen
+ for (i=0x1ae290/2;i < 0x1ae8d0/2; i=i+1)
+ mem16[i] = 0x0000;
+
+ // Fix for title page
+ for (i=0x1f8ef0/2;i < 0x1fa1f0/2; i=i+2)
+ {
+ mem16[i] -= 0x7000;
+ mem16[i+1] -= 0x0010;
+ }
+
+ // Fix for green dots on title page
+ for (i=0xac500/2;i < 0xac520/2; i=i+1)
+ mem16[i] = 0xFFFF;
+
+ // Fix for blanks as screen change level end clear
+ mem16[0x991d0/2] = 0xdd03;
+ mem16[0x99306/2] = 0xdd03;
+ mem16[0x99354/2] = 0xdd03;
+ mem16[0x9943e/2] = 0xdd03;
+}
+
+
+/* Crouching Tiger Hidden Dragon 2003 Super Plus (bootleg of King of Fighters 2001) */
+
+
+void ngbootleg_prot_device::ct2k3sp_sx_decrypt( uint8_t* fixedrom, uint32_t fixedrom_size )
+{
+ int rom_size = fixedrom_size;
+ uint8_t *rom = fixedrom;
+ std::vector<uint8_t> buf( rom_size );
+ int i;
+ int ofst;
+
+ memcpy( &buf[0], rom, rom_size );
+
+ for( i = 0; i < rom_size; i++ ){
+ ofst = BITSWAP24( (i & 0x1ffff), 23, 22, 21, 20, 19, 18, 17, 3, 0, 1, 4, 2, 13, 14, 16, 15, 5, 6, 11, 10, 9, 8, 7, 12 );
+
+ ofst += (i >> 17) << 17;
+
+ rom[ i ] = buf[ ofst ];
+ }
+
+ memcpy( &buf[0], rom, rom_size );
+
+ memcpy( &rom[ 0x08000 ], &buf[ 0x10000 ], 0x8000 );
+ memcpy( &rom[ 0x10000 ], &buf[ 0x08000 ], 0x8000 );
+ memcpy( &rom[ 0x28000 ], &buf[ 0x30000 ], 0x8000 );
+ memcpy( &rom[ 0x30000 ], &buf[ 0x28000 ], 0x8000 );
+}
+
+void ngbootleg_prot_device::decrypt_ct2k3sp(uint8_t* sprrom, uint32_t sprrom_size, uint8_t* audiorom, uint32_t audiorom_size, uint8_t* fixedrom, uint32_t fixedrom_size)
+{
+ uint8_t *romdata = audiorom + 0x10000;
+ std::vector<uint8_t> tmp(8*128*128);
+ memcpy(&tmp[8*0*128], romdata+8*0*128, 8*32*128);
+ memcpy(&tmp[8*32*128], romdata+8*64*128, 8*32*128);
+ memcpy(&tmp[8*64*128], romdata+8*32*128, 8*32*128);
+ memcpy(&tmp[8*96*128], romdata+8*96*128, 8*32*128);
+ memcpy(romdata, &tmp[0], 8*128*128);
+ memcpy(romdata - 0x10000, romdata, 0x10000);
+ ct2k3sp_sx_decrypt(fixedrom, fixedrom_size);
+ cthd2003_c(sprrom, sprrom_size, 0);
+}
+
+
+/* Crouching Tiger Hidden Dragon 2003 Super Plus alternate (bootleg of King of Fighters 2001) */
+
+
+void ngbootleg_prot_device::decrypt_ct2k3sa(uint8_t* sprrom, uint32_t sprrom_size, uint8_t* audiorom, uint32_t audiorom_size )
+{
+ uint8_t *romdata = audiorom + 0x10000;
+ std::vector<uint8_t> tmp(8*128*128);
+ memcpy(&tmp[8*0*128], romdata+8*0*128, 8*32*128);
+ memcpy(&tmp[8*32*128], romdata+8*64*128, 8*32*128);
+ memcpy(&tmp[8*64*128], romdata+8*32*128, 8*32*128);
+ memcpy(&tmp[8*96*128], romdata+8*96*128, 8*32*128);
+ memcpy(romdata, &tmp[0], 8*128*128);
+
+ memcpy(romdata - 0x10000, romdata, 0x10000);
+ cthd2003_c(sprrom, sprrom_size, 0);
+}
+
+void ngbootleg_prot_device::patch_ct2k3sa(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ /* patches thanks to razoola - same as for cthd2003*/
+ int i;
+ uint16_t *mem16 = (uint16_t *)cpurom;
+
+ // theres still a problem on the character select screen but it seems to be related to cpu core timing issues,
+ // overclocking the 68k prevents it.
+
+ // fix garbage on s1 layer over everything
+ mem16[0xf415a/2] = 0x4ef9;
+ mem16[0xf415c/2] = 0x000f;
+ mem16[0xf415e/2] = 0x4cf2;
+
+ // Fix corruption in attract mode before title screen
+ for (i=0x1ae290/2;i < 0x1ae8d0/2; i=i+1)
+ mem16[i] = 0x0000;
+
+ // Fix for title page
+ for (i=0x1f8ef0/2;i < 0x1fa1f0/2; i=i+2)
+ {
+ mem16[i] -= 0x7000;
+ mem16[i+1] -= 0x0010;
+ }
+
+ // Fix for green dots on title page
+ for (i=0xac500/2;i < 0xac520/2; i=i+1)
+ mem16[i] = 0xFFFF;
+
+ // Fix for blanks as screen change level end clear
+ mem16[0x991d0/2] = 0xdd03;
+ mem16[0x99306/2] = 0xdd03;
+ mem16[0x99354/2] = 0xdd03;
+ mem16[0x9943e/2] = 0xdd03;
+}
+
+
+/* King of Fighters Special Edition 2004 (bootleg of King of Fighters 2002) */
+
+
+void ngbootleg_prot_device::decrypt_kof2k4se_68k(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ uint8_t *src = cpurom+0x100000;
+ std::vector<uint8_t> dst(0x400000);
+ static const int sec[] = {0x300000, 0x200000, 0x100000, 0x000000};
+ memcpy(&dst[0], src, 0x400000);
+
+ for(uint8_t i = 0; i < 4; ++i)
+ memcpy(src + i*0x100000, &dst[sec[i]], 0x100000);
+}
+
+
+/* Lansquenet 2004 (Shock Troopers - 2nd Squad bootleg) */
+
+
+void ngbootleg_prot_device::lans2004_vx_decrypt(uint8_t* ymsndrom, uint32_t ymsndrom_size)
+{
+ uint8_t *rom = ymsndrom;
+ for (uint8_t i = 0; i < 0xA00000; i++)
+ rom[i] = BITSWAP8(rom[i], 0, 1, 5, 4, 3, 2, 6, 7);
+}
+
+void ngbootleg_prot_device::lans2004_decrypt_68k(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ /* Descrambling P ROMs - Thanks to Razoola for the info */
+ int i;
+ uint8_t *src = cpurom;
+ uint16_t *rom = (uint16_t*)cpurom;
+
+ static const int sec[] = { 0x3, 0x8, 0x7, 0xC, 0x1, 0xA, 0x6, 0xD };
+ std::vector<uint8_t> dst(0x600000);
+
+ for (i = 0; i < 8; i++)
+ memcpy (&dst[i * 0x20000], src + sec[i] * 0x20000, 0x20000);
+
+ memcpy (&dst[0x0BBB00], src + 0x045B00, 0x001710);
+ memcpy (&dst[0x02FFF0], src + 0x1A92BE, 0x000010);
+ memcpy (&dst[0x100000], src + 0x200000, 0x400000);
+ memcpy (src, &dst[0], 0x600000);
+
+ for (i = 0xBBB00/2; i < 0xBE000/2; i++)
+ {
+ if ((((rom[i]&0xFFBF)==0x4EB9) || ((rom[i]&0xFFBF)==0x43B9)) && (rom[i+1]==0x0000))
+ {
+ rom[i + 1] = 0x000B;
+ rom[i + 2] += 0x6000;
+ }
+ }
+
+ /* Patched by protection chip (Altera) ? */
+ rom[0x2D15C/2] = 0x000B;
+ rom[0x2D15E/2] = 0xBB00;
+ rom[0x2D1E4/2] = 0x6002;
+ rom[0x2EA7E/2] = 0x6002;
+ rom[0xBBCD0/2] = 0x6002;
+ rom[0xBBDF2/2] = 0x6002;
+ rom[0xBBE42/2] = 0x6002;
+}
+
+
+/* Metal Slug 5 Plus (bootleg) */
+
+
+READ16_MEMBER( ngbootleg_prot_device::mslug5_prot_r )
+{
+ logerror("PC %06x: access protected\n",space.device().safe_pc());
+ return 0xa0;
+}
+
+WRITE16_MEMBER( ngbootleg_prot_device::ms5plus_bankswitch_w )
+{
+ int bankaddress;
+ logerror("offset: %06x PC %06x: set banking %04x\n",offset,space.device().safe_pc(),data);
+ if ((offset == 0)&&(data == 0xa0))
+ {
+ bankaddress=0xa0;
+ m_bankdev->neogeo_set_main_cpu_bank_address(bankaddress);
+ logerror("offset: %06x PC %06x: set banking %04x\n\n",offset,space.device().safe_pc(),bankaddress);
+ }
+ else if(offset == 2)
+ {
+ data=data>>4;
+ //data=data&7;
+ bankaddress=data*0x100000;
+ m_bankdev->neogeo_set_main_cpu_bank_address(bankaddress);
+ logerror("offset: %06x PC %06x: set banking %04x\n\n",offset,space.device().safe_pc(),bankaddress);
+ }
+}
+
+void ngbootleg_prot_device::install_ms5plus_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev)
+{
+ // special ROM banking handler / additional protection
+ maincpu->space(AS_PROGRAM).install_readwrite_handler(0x2ffff0, 0x2fffff,
+ read16_delegate(FUNC(ngbootleg_prot_device::mslug5_prot_r),this),
+ write16_delegate(FUNC(ngbootleg_prot_device::ms5plus_bankswitch_w),this));
+ m_bankdev = bankdev;
+}
+
+
+/* SNK vs. CAPCOM SVC CHAOS (bootleg) */
+
+
+void ngbootleg_prot_device::svcboot_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ static const uint8_t sec[] = { 0x06, 0x07, 0x01, 0x02, 0x03, 0x04, 0x05, 0x00 };
+ int i;
+ int size = cpurom_size;
+ uint8_t *src = cpurom;
+ std::vector<uint8_t> dst( size );
+ int ofst;
+ for( i = 0; i < size / 0x100000; i++ )
+ memcpy( &dst[ i * 0x100000 ], &src[ sec[ i ] * 0x100000 ], 0x100000 );
+
+ for( i = 0; i < size / 2; i++ )
+ {
+ ofst = BITSWAP8( (i & 0x0000ff), 7, 6, 1, 0, 3, 2, 5, 4 );
+ ofst += (i & 0xffff00);
+ memcpy( &src[ i * 2 ], &dst[ ofst * 2 ], 0x02 );
+ }
+}
+
+void ngbootleg_prot_device::svcboot_cx_decrypt(uint8_t*sprrom, uint32_t sprrom_size)
+{
+ static const uint8_t idx_tbl[ 0x10 ] = { 0, 1, 0, 1, 2, 3, 2, 3, 3, 4, 3, 4, 4, 5, 4, 5 };
+ static const uint8_t bitswap4_tbl[ 6 ][ 4 ] = { { 3, 0, 1, 2 }, { 2, 3, 0, 1 }, { 1, 2, 3, 0 }, { 0, 1, 2, 3 }, { 3, 2, 1, 0 }, { 3, 0, 2, 1 } };
+ int i;
+ int size = sprrom_size;
+ uint8_t *src = sprrom;
+ std::vector<uint8_t> dst( size );
+ int ofst;
+ memcpy( &dst[0], src, size );
+ for( i = 0; i < size / 0x80; i++ )
+ {
+ int idx = idx_tbl[ (i & 0xf00) >> 8 ];
+ int bit0 = bitswap4_tbl[ idx ][ 0 ];
+ int bit1 = bitswap4_tbl[ idx ][ 1 ];
+ int bit2 = bitswap4_tbl[ idx ][ 2 ];
+ int bit3 = bitswap4_tbl[ idx ][ 3 ];
+ ofst = BITSWAP8( (i & 0x0000ff), 7, 6, 5, 4, bit3, bit2, bit1, bit0 );
+ ofst += (i & 0xfffff00);
+ memcpy( &src[ i * 0x80 ], &dst[ ofst * 0x80 ], 0x80 );
+ }
+}
+
+
+/* SNK vs. CAPCOM SVC CHAOS Plus (bootleg set 1) */
+
+
+void ngbootleg_prot_device::svcplus_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ static const int sec[] = { 0x00, 0x03, 0x02, 0x05, 0x04, 0x01 };
+ int i, ofst, size = cpurom_size;
+ uint8_t *src = cpurom;
+ std::vector<uint8_t> dst( size );
+ memcpy( &dst[0], src, size );
+ for( i = 0; i < size / 2; i++ )
+ {
+ ofst = BITSWAP24( (i & 0xfffff), 0x17, 0x16, 0x15, 0x14, 0x13, 0x00, 0x01, 0x02, 0x0f, 0x0e, 0x0d, 0x0c,
+ 0x0b, 0x0a, 0x09, 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x10, 0x11, 0x12 );
+ ofst ^= 0x0f0007;
+ ofst += (i & 0xff00000);
+ memcpy( &src[ i * 0x02 ], &dst[ ofst * 0x02 ], 0x02 );
+ }
+ memcpy( &dst[0], src, size );
+ for( i = 0; i < 6; i++ )
+ memcpy( &src[ i * 0x100000 ], &dst[ sec[ i ] * 0x100000 ], 0x100000 );
+}
+
+void ngbootleg_prot_device::svcplus_px_hack(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ /* patched by the protection chip? */
+ uint16_t *mem16 = (uint16_t *)cpurom;
+ mem16[0x0f8016/2] = 0x33c1;
+}
+
+
+/* SNK vs. CAPCOM SVC CHAOS Plus (bootleg set 2) */
+
+
+void ngbootleg_prot_device::svcplusa_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ int i;
+ static const int sec[] = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x00 };
+ int size = cpurom_size;
+ uint8_t *src = cpurom;
+ std::vector<uint8_t> dst( size );
+ memcpy( &dst[0], src, size );
+ for( i = 0; i < 6; i++ )
+ memcpy( &src[ i * 0x100000 ], &dst[ sec[ i ] * 0x100000 ], 0x100000 );
+}
+
+
+/* SNK vs. CAPCOM SVC CHAOS Super Plus (bootleg) */
+
+
+void ngbootleg_prot_device::svcsplus_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ static const int sec[] = { 0x06, 0x07, 0x01, 0x02, 0x03, 0x04, 0x05, 0x00 };
+ int i, ofst, size = cpurom_size;
+ uint8_t *src = cpurom;
+ std::vector<uint8_t> dst( size );
+ memcpy( &dst[0], src, size );
+ for( i = 0; i < size / 2; i++ )
+ {
+ ofst = BITSWAP16( (i & 0x007fff), 0x0f, 0x00, 0x08, 0x09, 0x0b, 0x0a, 0x0c, 0x0d, 0x04, 0x03, 0x01, 0x07, 0x06, 0x02, 0x05, 0x0e );
+ ofst += (i & 0x078000);
+ ofst += sec[ (i & 0xf80000) >> 19 ] << 19;
+ memcpy( &src[ i * 2 ], &dst[ ofst * 2 ], 0x02 );
+ }
+}
+
+void ngbootleg_prot_device::svcsplus_px_hack(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ /* patched by the protection chip? */
+ uint16_t *mem16 = (uint16_t *)cpurom;
+ mem16[0x9e90/2] = 0x000f;
+ mem16[0x9e92/2] = 0xc9c0;
+ mem16[0xa10c/2] = 0x4eb9;
+ mem16[0xa10e/2] = 0x000e;
+ mem16[0xa110/2] = 0x9750;
+}
+
+
+/* The King of Fighters 2003 (bootleg set 1) */
+
+
+READ16_MEMBER( ngbootleg_prot_device::kof2003_r)
+{
+ return m_cartridge_ram[offset];
+}
+
+READ16_MEMBER(ngbootleg_prot_device::kof2003_overlay_r) // hack?
+{
+ return kof2k3_overlay;
+}
+
+WRITE16_MEMBER( ngbootleg_prot_device::kof2003_w )
+{
+ data = COMBINE_DATA(&m_cartridge_ram[offset]);
+ if (offset == 0x1ff0/2 || offset == 0x1ff2/2)
+ {
+ uint8_t* cr = (uint8_t *)m_cartridge_ram;
+ uint32_t address = (cr[BYTE_XOR_LE(0x1ff3)]<<16)|(cr[BYTE_XOR_LE(0x1ff2)]<<8)|cr[BYTE_XOR_LE(0x1ff1)];
+ uint8_t prt = cr[BYTE_XOR_LE(0x1ff2)];
+
+ cr[BYTE_XOR_LE(0x1ff0)] = 0xa0;
+ cr[BYTE_XOR_LE(0x1ff1)] &= 0xfe;
+ cr[BYTE_XOR_LE(0x1ff3)] &= 0x7f;
+ m_bankdev->neogeo_set_main_cpu_bank_address(address+0x100000);
+
+ kof2k3_overlay = (prt & 0x00ff) | (kof2k3_overlay & 0xff00);
+ }
+}
+
+WRITE16_MEMBER( ngbootleg_prot_device::kof2003p_w )
+{
+ data = COMBINE_DATA(&m_cartridge_ram[offset]);
+ if (offset == 0x1ff0/2 || offset == 0x1ff2/2)
+ {
+ uint8_t* cr = (uint8_t *)m_cartridge_ram;
+ uint32_t address = (cr[BYTE_XOR_LE(0x1ff3)]<<16)|(cr[BYTE_XOR_LE(0x1ff2)]<<8)|cr[BYTE_XOR_LE(0x1ff0)];
+ uint8_t prt = cr[BYTE_XOR_LE(0x1ff2)];
+
+ cr[BYTE_XOR_LE(0x1ff0)] &= 0xfe;
+ cr[BYTE_XOR_LE(0x1ff3)] &= 0x7f;
+ m_bankdev->neogeo_set_main_cpu_bank_address(address+0x100000);
+
+ kof2k3_overlay = (prt & 0x00ff) | (kof2k3_overlay & 0xff00);
+ }
+}
+
+void ngbootleg_prot_device::kf2k3bl_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ static const uint8_t sec[] = { 0x07, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06 };
+
+ int rom_size = 0x800000;
+ uint8_t *rom = cpurom;
+ std::vector<uint8_t> buf( rom_size );
+ memcpy( &buf[0], rom, rom_size );
+
+ for( int i = 0; i < rom_size / 0x100000; i++ )
+ memcpy( &rom[ i * 0x100000 ], &buf[ sec[ i ] * 0x100000 ], 0x100000 );
+}
+
+void ngbootleg_prot_device::kf2k3bl_install_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev, uint8_t* cpurom, uint32_t cpurom_size)
+{
+ m_mainrom = cpurom;
+
+ maincpu->space(AS_PROGRAM).install_read_handler(0x58196, 0x58197, read16_delegate(FUNC(ngbootleg_prot_device::kof2003_overlay_r),this) );
+
+ maincpu->space(AS_PROGRAM).install_readwrite_handler(0x2fe000, 0x2fffff, read16_delegate(FUNC(ngbootleg_prot_device::kof2003_r),this), write16_delegate(FUNC(ngbootleg_prot_device::kof2003_w),this) );
+ m_bankdev = bankdev;
+}
+
+
+/* The King of Fighters 2004 Plus / Hero (The King of Fighters 2003 bootleg) */
+
+
+void ngbootleg_prot_device::kf2k3pl_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ std::vector<uint16_t> tmp(0x100000/2);
+ uint16_t*rom16 = (uint16_t*)cpurom;
+ int i, j;
+
+ for (i = 0;i < 0x700000/2;i+=0x100000/2)
+ {
+ memcpy(&tmp[0], &rom16[i], 0x100000);
+ for (j = 0; j < 0x100000/2; j++)
+ rom16[i+j] = tmp[BITSWAP24(j,23,22,21,20,19,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18)];
+ }
+
+ /* patched by Altera protection chip on PCB */
+ rom16[0xf38ac/2] = 0x4e75;
+
+ kof2k3_overlay = rom16[0x58196 / 2];
+}
+
+void ngbootleg_prot_device::kf2k3pl_install_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev, uint8_t* cpurom, uint32_t cpurom_size)
+{
+ m_mainrom = cpurom;
+ maincpu->space(AS_PROGRAM).install_readwrite_handler(0x2fe000, 0x2fffff,
+ read16_delegate(FUNC(ngbootleg_prot_device::kof2003_r),this),
+ write16_delegate(FUNC(ngbootleg_prot_device::kof2003p_w),this) );
+ m_bankdev = bankdev;
+}
+
+
+/* The King of Fighters 2004 Ultra Plus (The King of Fighters 2003 bootleg) */
+
+
+void ngbootleg_prot_device::kf2k3upl_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ {
+ uint8_t *src = cpurom;
+ memmove(src+0x100000, src, 0x600000);
+ memmove(src, src+0x700000, 0x100000);
+ }
+
+ {
+ int i, ofst;
+ uint8_t *rom = cpurom + 0xfe000;
+ uint8_t *buf = cpurom + 0xd0610;
+
+ for( i = 0; i < 0x2000 / 2; i++ )
+ {
+ ofst = (i & 0xff00) + BITSWAP8( (i & 0x00ff), 7, 6, 0, 4, 3, 2, 1, 5 );
+ memcpy( &rom[ i * 2 ], &buf[ ofst * 2 ], 2 );
+ }
+ }
+
+ uint16_t*rom16 = (uint16_t*)cpurom;
+ kof2k3_overlay = rom16[0x58196 / 2];
+}
+
+
+/* Samurai Shodown V / Samurai Spirits Zero (bootleg) */
+
+
+void ngbootleg_prot_device::samsho5b_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ int i, ofst, px_size = cpurom_size;
+ uint8_t *rom = cpurom;
+ std::vector<uint8_t> buf( px_size );
+
+ memcpy( &buf[0], rom, px_size );
+
+ for( i = 0; i < px_size / 2; i++ )
+ {
+ ofst = BITSWAP8( (i & 0x000ff), 7, 6, 5, 4, 3, 0, 1, 2 );
+ ofst += (i & 0xfffff00);
+ ofst ^= 0x060005;
+ memcpy( &rom[ i * 2 ], &buf[ ofst * 2 ], 0x02 );
+ }
+
+ memcpy( &buf[0], rom, px_size );
+
+ memcpy( &rom[ 0x000000 ], &buf[ 0x700000 ], 0x100000 );
+ memcpy( &rom[ 0x100000 ], &buf[ 0x000000 ], 0x700000 );
+}
+
+
+void ngbootleg_prot_device::samsho5b_vx_decrypt(uint8_t* ymsndrom, uint32_t ymsndrom_size)
+{
+ int vx_size = ymsndrom_size;
+ uint8_t *rom = ymsndrom;
+
+ for( int i = 0; i < vx_size; i++ )
+ rom[ i ] = BITSWAP8( rom[ i ], 0, 1, 5, 4, 3, 2, 6, 7 );
+}
+
+
+/* Matrimelee / Shin Gouketsuji Ichizoku Toukon (bootleg) */
+
+
+#define MATRIMBLZ80( i ) ( i^(BITSWAP8(i&0x3,4,3,1,2,0,7,6,5)<<8) )
+
+void ngbootleg_prot_device::matrimbl_decrypt(uint8_t* sprrom, uint32_t sprrom_size, uint8_t* audiorom, uint32_t audiorom_size)
+{
+ /* decrypt Z80 */
+ uint8_t *rom = audiorom+0x10000;
+ std::vector<uint8_t> buf( 0x20000 );
+ int i, j;
+ memcpy( &buf[0], rom, 0x20000 );
+ for( i=0x00000; i<0x20000; i++ )
+ {
+ if ( i&0x10000 )
+ {
+ if ( i&0x800 )
+ {
+ j=MATRIMBLZ80( i );
+ j=j^0x10000;
+ }
+ else
+ {
+ j=MATRIMBLZ80(( i^0x01 ));
+ }
+ }
+ else
+ {
+ if ( i&0x800 )
+ {
+ j=MATRIMBLZ80(( i^0x01 ));
+ j=j^0x10000;
+ }
+ else
+ {
+ j=MATRIMBLZ80( i );
+ }
+ }
+ rom[ j ]=buf[ i ];
+ }
+ memcpy( rom-0x10000, rom, 0x10000 );
+
+ /* decrypt gfx */
+ cthd2003_c(sprrom,sprrom_size, 0 );
+}
+
+/***********************************************************************************************************************************/
+
+const device_type KOG_PROT = device_creator<kog_prot_device>;
+
+
+kog_prot_device::kog_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : device_t(mconfig, KOG_PROT, "NeoGeo Protection (King of Gladiator)", tag, owner, clock, "kog_prot", __FILE__)
+ , m_jumper(*this, "JUMPER")
+ { }
+
+
+void kog_prot_device::device_start() { }
+void kog_prot_device::device_reset() { }
+
+READ16_MEMBER(kog_prot_device::read_jumper)
+{
+ return ioport("JUMPER")->read();
+}
+
+void kog_prot_device::kog_install_protection(cpu_device* maincpu)
+{
+ /* overlay cartridge ROM */
+ maincpu->space(AS_PROGRAM).install_read_handler(0x0ffffe, 0x0fffff, read16_delegate(FUNC(kog_prot_device::read_jumper), this));
+}
+
+
+void kog_prot_device::kog_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ uint8_t *src = cpurom;
+ std::vector<uint8_t> dst( 0x600000 );
+ uint16_t *rom = (uint16_t *)cpurom;
+ int i;
+ static const int sec[] = { 0x3, 0x8, 0x7, 0xC, 0x1, 0xA, 0x6, 0xD };
+
+ for (i = 0; i < 8; i++)
+ memcpy (&dst[i * 0x20000], src + sec[i] * 0x20000, 0x20000);
+
+ memcpy (&dst[0x0007A6], src + 0x0407A6, 0x000006);
+ memcpy (&dst[0x0007C6], src + 0x0407C6, 0x000006);
+ memcpy (&dst[0x0007E6], src + 0x0407E6, 0x000006);
+ memcpy (&dst[0x090000], src + 0x040000, 0x004000);
+ memcpy (&dst[0x100000], src + 0x200000, 0x400000);
+ memcpy (src, &dst[0], 0x600000);
+
+ for (i = 0x90000/2; i < 0x94000/2; i++)
+ {
+ if (((rom[i]&0xFFBF) == 0x4EB9 || rom[i] == 0x43F9) && !rom[i + 1])
+ rom[i + 1] = 0x0009;
+
+ if (rom[i] == 0x4EB8)
+ rom[i] = 0x6100;
+ }
+
+ rom[0x007A8/2] = 0x0009;
+ rom[0x007C8/2] = 0x0009;
+ rom[0x007E8/2] = 0x0009;
+ rom[0x93408/2] = 0xF168;
+ rom[0x9340C/2] = 0xFB7A;
+ rom[0x924AC/2] = 0x0009;
+ rom[0x9251C/2] = 0x0009;
+ rom[0x93966/2] = 0xFFDA;
+ rom[0x93974/2] = 0xFFCC;
+ rom[0x93982/2] = 0xFFBE;
+ rom[0x93990/2] = 0xFFB0;
+ rom[0x9399E/2] = 0xFFA2;
+ rom[0x939AC/2] = 0xFF94;
+ rom[0x939BA/2] = 0xFF86;
+ rom[0x939C8/2] = 0xFF78;
+ rom[0x939D4/2] = 0xFA5C;
+ rom[0x939E0/2] = 0xFA50;
+ rom[0x939EC/2] = 0xFA44;
+ rom[0x939F8/2] = 0xFA38;
+ rom[0x93A04/2] = 0xFA2C;
+ rom[0x93A10/2] = 0xFA20;
+ rom[0x93A1C/2] = 0xFA14;
+ rom[0x93A28/2] = 0xFA08;
+ rom[0x93A34/2] = 0xF9FC;
+ rom[0x93A40/2] = 0xF9F0;
+ rom[0x93A4C/2] = 0xFD14;
+ rom[0x93A58/2] = 0xFD08;
+ rom[0x93A66/2] = 0xF9CA;
+ rom[0x93A72/2] = 0xF9BE;
+}
+
+
+static INPUT_PORTS_START( kog )
+ /* a jumper on the pcb overlays a ROM address, very strange but that's how it works. */
+ PORT_START("JUMPER")
+ PORT_DIPNAME( 0x0001, 0x0001, "Title Language" ) PORT_DIPLOCATION("CART-JUMPER:1")
+ PORT_DIPSETTING( 0x0001, DEF_STR( English ) )
+ PORT_DIPSETTING( 0x0000, "Non-English" )
+ PORT_BIT( 0x00fe, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED )
+INPUT_PORTS_END
+
+ioport_constructor kog_prot_device::device_input_ports() const
+{
+ return INPUT_PORTS_NAME( kog );
+}
+
+/***********************************************************************************************************************************/
+
+
+const device_type CMC_PROT = device_creator<cmc_prot_device>;
+
+
+cmc_prot_device::cmc_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : device_t(mconfig, CMC_PROT, "NeoGeo Protection (CMC)", tag, owner, clock, "cmc_prot", __FILE__)
+ , type0_t03(nullptr)
+ , type0_t12(nullptr)
+ , type1_t03(nullptr)
+ , type1_t12(nullptr)
+ , address_8_15_xor1(nullptr)
+ , address_8_15_xor2(nullptr)
+ , address_16_23_xor1(nullptr)
+ , address_16_23_xor2(nullptr)
+ , address_0_7_xor(nullptr)
+ { }
+
+
+void cmc_prot_device::device_start() { }
+void cmc_prot_device::device_reset() { }
+
+static const uint8_t kof99_type0_t03[256] =
+{
+ 0xfb, 0x86, 0x9d, 0xf1, 0xbf, 0x80, 0xd5, 0x43, 0xab, 0xb3, 0x9f, 0x6a, 0x33, 0xd9, 0xdb, 0xb6,
+ 0x66, 0x08, 0x69, 0x88, 0xcc, 0xb7, 0xde, 0x49, 0x97, 0x64, 0x1f, 0xa6, 0xc0, 0x2f, 0x52, 0x42,
+ 0x44, 0x5a, 0xf2, 0x28, 0x98, 0x87, 0x96, 0x8a, 0x83, 0x0b, 0x03, 0x61, 0x71, 0x99, 0x6b, 0xb5,
+ 0x1a, 0x8e, 0xfe, 0x04, 0xe1, 0xf7, 0x7d, 0xdd, 0xed, 0xca, 0x37, 0xfc, 0xef, 0x39, 0x72, 0xda,
+ 0xb8, 0xbe, 0xee, 0x7f, 0xe5, 0x31, 0x78, 0xf3, 0x91, 0x9a, 0xd2, 0x11, 0x19, 0xb9, 0x09, 0x4c,
+ 0xfd, 0x6d, 0x2a, 0x4d, 0x65, 0xa1, 0x89, 0xc7, 0x75, 0x50, 0x21, 0xfa, 0x16, 0x00, 0xe9, 0x12,
+ 0x74, 0x2b, 0x1e, 0x4f, 0x14, 0x01, 0x70, 0x3a, 0x4e, 0x3f, 0xf5, 0xf4, 0x1d, 0x3d, 0x15, 0x27,
+ 0xa7, 0xff, 0x45, 0xe0, 0x6e, 0xf9, 0x54, 0xc8, 0x48, 0xad, 0xa5, 0x0a, 0xf6, 0x2d, 0x2c, 0xe2,
+ 0x68, 0x67, 0xd6, 0x85, 0xb4, 0xc3, 0x34, 0xbc, 0x62, 0xd3, 0x5f, 0x84, 0x06, 0x5b, 0x0d, 0x95,
+ 0xea, 0x5e, 0x9e, 0xd4, 0xeb, 0x90, 0x7a, 0x05, 0x81, 0x57, 0xe8, 0x60, 0x2e, 0x20, 0x25, 0x7c,
+ 0x46, 0x0c, 0x93, 0xcb, 0xbd, 0x17, 0x7e, 0xec, 0x79, 0xb2, 0xc2, 0x22, 0x41, 0xb1, 0x10, 0xac,
+ 0xa8, 0xbb, 0x9b, 0x82, 0x4b, 0x9c, 0x8b, 0x07, 0x47, 0x35, 0x24, 0x56, 0x8d, 0xaf, 0xe6, 0x26,
+ 0x40, 0x38, 0xc4, 0x5d, 0x1b, 0xc5, 0xd1, 0x0f, 0x6c, 0x7b, 0xb0, 0xe3, 0xa3, 0x23, 0x6f, 0x58,
+ 0xc1, 0xba, 0xcf, 0xd7, 0xa2, 0xe7, 0xd0, 0x63, 0x5c, 0xf8, 0x73, 0xa0, 0x13, 0xdc, 0x29, 0xcd,
+ 0xc9, 0x76, 0xae, 0x8f, 0xe4, 0x59, 0x30, 0xaa, 0x94, 0x1c, 0x3c, 0x0e, 0x55, 0x92, 0x77, 0x32,
+ 0xc6, 0xce, 0x18, 0x36, 0xdf, 0xa9, 0x8c, 0xd8, 0xa4, 0xf0, 0x3b, 0x51, 0x4a, 0x02, 0x3e, 0x53,
+};
+
+
+static const uint8_t kof99_type0_t12[256] =
+{
+ 0x1f, 0xac, 0x4d, 0xcd, 0xca, 0x70, 0x02, 0x6b, 0x18, 0x40, 0x62, 0xb2, 0x3f, 0x9b, 0x5b, 0xef,
+ 0x69, 0x68, 0x71, 0x3b, 0xcb, 0xd4, 0x30, 0xbc, 0x47, 0x72, 0x74, 0x5e, 0x84, 0x4c, 0x1b, 0xdb,
+ 0x6a, 0x35, 0x1d, 0xf5, 0xa1, 0xb3, 0x87, 0x5d, 0x57, 0x28, 0x2f, 0xc4, 0xfd, 0x24, 0x26, 0x36,
+ 0xad, 0xbe, 0x61, 0x63, 0x73, 0xaa, 0x82, 0xee, 0x29, 0xd0, 0xdf, 0x8c, 0x15, 0xb5, 0x96, 0xf3,
+ 0xdd, 0x7e, 0x3a, 0x37, 0x58, 0x7f, 0x0c, 0xfc, 0x0b, 0x07, 0xe8, 0xf7, 0xf4, 0x14, 0xb8, 0x81,
+ 0xb6, 0xd7, 0x1e, 0xc8, 0x85, 0xe6, 0x9d, 0x33, 0x60, 0xc5, 0x95, 0xd5, 0x55, 0x00, 0xa3, 0xb7,
+ 0x7d, 0x50, 0x0d, 0xd2, 0xc1, 0x12, 0xe5, 0xed, 0xd8, 0xa4, 0x9c, 0x8f, 0x2a, 0x4f, 0xa8, 0x01,
+ 0x52, 0x83, 0x65, 0xea, 0x9a, 0x6c, 0x44, 0x4a, 0xe2, 0xa5, 0x2b, 0x46, 0xe1, 0x34, 0x25, 0xf8,
+ 0xc3, 0xda, 0xc7, 0x6e, 0x48, 0x38, 0x7c, 0x78, 0x06, 0x53, 0x64, 0x16, 0x98, 0x3c, 0x91, 0x42,
+ 0x39, 0xcc, 0xb0, 0xf1, 0xeb, 0x13, 0xbb, 0x05, 0x32, 0x86, 0x0e, 0xa2, 0x0a, 0x9e, 0xfa, 0x66,
+ 0x54, 0x8e, 0xd3, 0xe7, 0x19, 0x20, 0x77, 0xec, 0xff, 0xbd, 0x6d, 0x43, 0x23, 0x03, 0xab, 0x75,
+ 0x3d, 0xcf, 0xd1, 0xde, 0x92, 0x31, 0xa7, 0x45, 0x4b, 0xc2, 0x97, 0xf9, 0x7a, 0x88, 0xd9, 0x1c,
+ 0xe9, 0xe4, 0x10, 0xc9, 0x22, 0x2d, 0x90, 0x76, 0x17, 0x79, 0x04, 0x51, 0x1a, 0x5a, 0x5f, 0x2c,
+ 0x21, 0x6f, 0x3e, 0xe0, 0xf0, 0xbf, 0xd6, 0x94, 0x0f, 0x80, 0x11, 0xa0, 0x5c, 0xa9, 0x49, 0x2e,
+ 0xce, 0xaf, 0xa6, 0x9f, 0x7b, 0x99, 0xb9, 0xb4, 0xe3, 0xfb, 0xf6, 0x27, 0xf2, 0x93, 0xfe, 0x08,
+ 0x67, 0xae, 0x09, 0x89, 0xdc, 0x4e, 0xc6, 0xc0, 0x8a, 0xb1, 0x59, 0x8b, 0x41, 0x56, 0x8d, 0xba,
+};
+
+
+static const uint8_t kof99_type1_t03[256] =
+{
+ 0xa9, 0x17, 0xaf, 0x0d, 0x34, 0x6e, 0x53, 0xb6, 0x7f, 0x58, 0xe9, 0x14, 0x5f, 0x55, 0xdb, 0xd4,
+ 0x42, 0x80, 0x99, 0x59, 0xa8, 0x3a, 0x57, 0x5d, 0xd5, 0x6f, 0x4c, 0x68, 0x35, 0x46, 0xa6, 0xe7,
+ 0x7b, 0x71, 0xe0, 0x93, 0xa2, 0x1f, 0x64, 0x21, 0xe3, 0xb1, 0x98, 0x26, 0xab, 0xad, 0xee, 0xe5,
+ 0xbb, 0xd9, 0x1e, 0x2e, 0x95, 0x36, 0xef, 0x23, 0x79, 0x45, 0x04, 0xed, 0x13, 0x1d, 0xf4, 0x85,
+ 0x96, 0xec, 0xc2, 0x32, 0xaa, 0x7c, 0x15, 0xd8, 0xda, 0x92, 0x90, 0x9d, 0xb7, 0x56, 0x6a, 0x66,
+ 0x41, 0xfc, 0x00, 0xf6, 0x50, 0x24, 0xcf, 0xfb, 0x11, 0xfe, 0x82, 0x48, 0x9b, 0x27, 0x1b, 0x67,
+ 0x4e, 0x84, 0x69, 0x97, 0x6d, 0x8c, 0xd2, 0xba, 0x74, 0xf9, 0x8f, 0xa5, 0x54, 0x5c, 0xcd, 0x73,
+ 0x07, 0xd1, 0x01, 0x09, 0xf1, 0x19, 0x3b, 0x5e, 0x87, 0x30, 0x76, 0xcc, 0xc0, 0x5a, 0xa7, 0x49,
+ 0x22, 0xfa, 0x16, 0x02, 0xdf, 0xa4, 0xff, 0xb3, 0x75, 0x33, 0xbd, 0x88, 0x2f, 0xcb, 0x2a, 0x44,
+ 0xb8, 0xbf, 0x1c, 0x0f, 0x81, 0x10, 0x43, 0xb4, 0xc8, 0x7e, 0x9a, 0x25, 0xea, 0x83, 0x4b, 0x38,
+ 0x7a, 0xd7, 0x3d, 0x1a, 0x4f, 0x62, 0x51, 0xc9, 0x47, 0x0e, 0xce, 0x3f, 0xc7, 0x4d, 0x2c, 0xa1,
+ 0x86, 0xb9, 0xc5, 0xca, 0xdd, 0x6b, 0x70, 0x6c, 0x91, 0x9c, 0xbe, 0x0a, 0x9f, 0xf5, 0x94, 0xbc,
+ 0x18, 0x2b, 0x60, 0x20, 0x29, 0xf7, 0xf2, 0x28, 0xc4, 0xa0, 0x0b, 0x65, 0xde, 0x8d, 0x78, 0x12,
+ 0x3e, 0xd0, 0x77, 0x08, 0x8b, 0xae, 0x05, 0x31, 0x3c, 0xd6, 0xa3, 0x89, 0x06, 0xdc, 0x52, 0x72,
+ 0xb0, 0xb5, 0x37, 0xd3, 0xc3, 0x8a, 0xc6, 0xf0, 0xc1, 0x61, 0xfd, 0x4a, 0x5b, 0x7d, 0x9e, 0xf3,
+ 0x63, 0x40, 0x2d, 0xe8, 0xb2, 0xe6, 0x39, 0x03, 0xeb, 0x8e, 0xe1, 0x0c, 0xe4, 0xe2, 0xf8, 0xac,
+};
+
+
+static const uint8_t kof99_type1_t12[256] =
+{
+ 0xea, 0xe6, 0x5e, 0xa7, 0x8e, 0xac, 0x34, 0x03, 0x30, 0x97, 0x52, 0x53, 0x76, 0xf2, 0x62, 0x0b,
+ 0x0a, 0xfc, 0x94, 0xb8, 0x67, 0x36, 0x11, 0xbc, 0xae, 0xca, 0xfa, 0x15, 0x04, 0x2b, 0x17, 0xc4,
+ 0x3e, 0x5b, 0x59, 0x01, 0x57, 0xe2, 0xba, 0xb7, 0xd1, 0x3f, 0xf0, 0x6a, 0x9c, 0x2a, 0xcb, 0xa9,
+ 0xe3, 0x2c, 0xc0, 0x0f, 0x46, 0x91, 0x8a, 0xd0, 0x98, 0xc5, 0xa6, 0x1b, 0x96, 0x29, 0x12, 0x09,
+ 0x63, 0xed, 0xe0, 0xa2, 0x86, 0x77, 0xbe, 0xe5, 0x65, 0xdb, 0xbd, 0x50, 0xb3, 0x9d, 0x1a, 0x4e,
+ 0x79, 0x0c, 0x00, 0x43, 0xdf, 0x3d, 0x54, 0x33, 0x8f, 0x89, 0xa8, 0x7b, 0xf9, 0xd5, 0x27, 0x82,
+ 0xbb, 0xc2, 0x8c, 0x47, 0x88, 0x6b, 0xb4, 0xc3, 0xf8, 0xaa, 0x06, 0x1e, 0x83, 0x7d, 0x05, 0x78,
+ 0x85, 0xf6, 0x6e, 0x2e, 0xec, 0x5a, 0x31, 0x45, 0x38, 0x14, 0x16, 0x8b, 0x02, 0xe4, 0x4f, 0xb0,
+ 0xbf, 0xab, 0xa4, 0x9e, 0x48, 0x60, 0x19, 0x35, 0x08, 0xde, 0xdd, 0x66, 0x90, 0x51, 0xcc, 0xa3,
+ 0xaf, 0x70, 0x9b, 0x75, 0x95, 0x49, 0x6c, 0x64, 0x72, 0x7e, 0x44, 0xa0, 0x73, 0x25, 0x68, 0x55,
+ 0x1f, 0x40, 0x7a, 0x74, 0x0e, 0x8d, 0xdc, 0x1c, 0x71, 0xc8, 0xcf, 0xd7, 0xe8, 0xce, 0xeb, 0x32,
+ 0x3a, 0xee, 0x07, 0x61, 0x4d, 0xfe, 0x5c, 0x7c, 0x56, 0x2f, 0x2d, 0x5f, 0x6f, 0x9f, 0x81, 0x22,
+ 0x58, 0x4b, 0xad, 0xda, 0xb9, 0x10, 0x18, 0x23, 0xe1, 0xf3, 0x6d, 0xe7, 0xe9, 0x28, 0xd6, 0xd8,
+ 0xf4, 0x4c, 0x39, 0x21, 0xb2, 0x84, 0xc1, 0x24, 0x26, 0xf1, 0x93, 0x37, 0xc6, 0x4a, 0xcd, 0x20,
+ 0xc9, 0xd9, 0xc7, 0xb1, 0xff, 0x99, 0xd4, 0x5d, 0xb5, 0xa1, 0x87, 0x0d, 0x69, 0x92, 0x13, 0x80,
+ 0xd2, 0xd3, 0xfd, 0x1d, 0xf5, 0x3b, 0xa5, 0x7f, 0xef, 0x9a, 0xb6, 0x42, 0xfb, 0x3c, 0xf7, 0x41,
+};
+
+
+/* underlined values are wrong (not enough evidence, FF fill in kof99 and garou) */
+/* they correspond to tiles 7d000-7efff */
+static const uint8_t kof99_address_8_15_xor1[256] =
+{
+ 0x00, 0xb1, 0x1e, 0xc5, 0x3d, 0x40, 0x45, 0x5e, 0xf2, 0xf8, 0x04, 0x63, 0x36, 0x87, 0x88, 0xbf,
+ 0xab, 0xcc, 0x78, 0x08, 0xdd, 0x20, 0xd4, 0x35, 0x09, 0x8e, 0x44, 0xae, 0x33, 0xa9, 0x9e, 0xcd,
+ 0xb3, 0xe5, 0xad, 0x41, 0xda, 0xbe, 0xf4, 0x16, 0x57, 0x2e, 0x53, 0x67, 0xaf, 0xdb, 0x8a, 0xd8,
+ 0x34, 0x17, 0x3c, 0x01, 0x55, 0x73, 0xcf, 0xe3, 0xe8, 0xc7, 0x0d, 0xe9, 0xa3, 0x13, 0x0c, 0xf6,
+ 0x90, 0x4e, 0xfb, 0x97, 0x6d, 0x5f, 0xa8, 0x71, 0x11, 0xfc, 0xd1, 0x95, 0x81, 0xba, 0x8c, 0x1b,
+ 0x39, 0xfe, 0xa2, 0x15, 0xa6, 0x52, 0x4d, 0x5b, 0x59, 0xa5, 0xe0, 0x96, 0xd9, 0x8f, 0x7b, 0xed,
+ 0x29, 0xd3, 0x1f, 0x0e, 0xec, 0x23, 0x0f, 0xb8, 0x6c, 0x6f, 0x7d, 0x18, 0x46, 0xd6, 0xe4, 0xb5,
+ 0x9a, 0x79, 0x02, 0xf5, 0x03, 0xc0, 0x60, 0x66, 0x5c, 0x2f, 0x76, 0x85, 0x9d, 0x54, 0x1a, 0x6a,
+ 0x28, 0xce, 0x7f, 0x7c, 0x91, 0x99, 0x4c, 0x83, 0x3e, 0xb4, 0x1d, 0x05, 0xc1, 0xc3, 0xd7, 0x47,
+ 0xde, 0xbc, 0x62, 0x6e, 0x86, 0x14, 0x80, 0x77, 0xeb, 0xf3, 0x07, 0x31, 0x56, 0xd2, 0xc2, 0xc6,
+ 0x6b, 0xdc, 0xfd, 0x22, 0x92, 0xf0, 0x06, 0x51, 0x2d, 0x38, 0xe6, 0xa0, 0x25, 0xdf, 0xd5, 0x2c,
+ 0x1c, 0x94, 0x12, 0x9c, 0xb0, 0x9b, 0xc4, 0x0b, 0xc8, 0xd0, 0xf7, 0x30, 0xcb, 0x27, 0xfa, 0x7a,
+ 0x10, 0x61, 0xaa, 0xa4, 0x70, 0xb7, 0x2a, 0x5a, 0xc9, 0xf1, 0x0a, 0x49, 0x65, 0xee, 0x69, 0x4b,
+ 0x3a, 0x8d, 0x32, 0x5d, 0x68, 0xb9, 0x9f, 0x75, 0x19, 0x3f, 0xac, 0x37, 0x4f, 0xe7, 0x93, 0x89,
+ 0x7e, 0x4a, 0x3b, 0xea, 0x74, 0x72, 0x43, 0xbd, 0x24, 0xef, 0xb6, 0xff, 0x64, 0x58, 0x84, 0x8b,
+ 0xa7, 0xbb, 0xb2, 0xe1, 0x26, 0x2b, 0x50, 0xca, 0x21, 0xf9, 0x98, 0xa1, 0xe2, 0x42, 0x82, 0x48,
+// ^^^^ ^^^^ ^^^^ ^^^^
+};
+
+
+static const uint8_t kof99_address_8_15_xor2[256] =
+{
+ 0x9b, 0x9d, 0xc1, 0x3d, 0xa9, 0xb8, 0xf4, 0x6f, 0xf6, 0x25, 0xc7, 0x47, 0xd5, 0x97, 0xdf, 0x6b,
+ 0xeb, 0x90, 0xa4, 0xb2, 0x5d, 0xf5, 0x66, 0xb0, 0xb9, 0x8b, 0x93, 0x64, 0xec, 0x7b, 0x65, 0x8c,
+ 0xf1, 0x43, 0x42, 0x6e, 0x45, 0x9f, 0xb3, 0x35, 0x06, 0x71, 0x96, 0xdb, 0xa0, 0xfb, 0x0b, 0x3a,
+ 0x1f, 0xf8, 0x8e, 0x69, 0xcd, 0x26, 0xab, 0x86, 0xa2, 0x0c, 0xbd, 0x63, 0xa5, 0x7a, 0xe7, 0x6a,
+ 0x5f, 0x18, 0x9e, 0xbf, 0xad, 0x55, 0xb1, 0x1c, 0x5c, 0x03, 0x30, 0xc6, 0x37, 0x20, 0xe3, 0xc9,
+ 0x52, 0xe8, 0xee, 0x4f, 0x01, 0x70, 0xc4, 0x77, 0x29, 0x2a, 0xba, 0x53, 0x12, 0x04, 0x7d, 0xaf,
+ 0x33, 0x8f, 0xa8, 0x4d, 0xaa, 0x5b, 0xb4, 0x0f, 0x92, 0xbb, 0xed, 0xe1, 0x2f, 0x50, 0x6c, 0xd2,
+ 0x2c, 0x95, 0xd9, 0xf9, 0x98, 0xc3, 0x76, 0x4c, 0xf2, 0xe4, 0xe5, 0x2b, 0xef, 0x9c, 0x49, 0xb6,
+ 0x31, 0x3b, 0xbc, 0xa1, 0xca, 0xde, 0x62, 0x74, 0xea, 0x81, 0x00, 0xdd, 0xa6, 0x46, 0x88, 0x3f,
+ 0x39, 0xd6, 0x23, 0x54, 0x24, 0x4a, 0xd8, 0xdc, 0xd7, 0xd1, 0xcc, 0xbe, 0x57, 0x7c, 0xda, 0x44,
+ 0x61, 0xce, 0xd3, 0xd4, 0xe9, 0x28, 0x80, 0xe0, 0x56, 0x8a, 0x09, 0x05, 0x9a, 0x89, 0x1b, 0xf7,
+ 0xf3, 0x99, 0x6d, 0x5e, 0x48, 0x91, 0xc0, 0xd0, 0xc5, 0x79, 0x78, 0x41, 0x59, 0x21, 0x2e, 0xff,
+ 0xc2, 0x4b, 0x38, 0x83, 0x32, 0xe6, 0xe2, 0x7f, 0x1e, 0x17, 0x58, 0x1d, 0x1a, 0xfa, 0x85, 0x82,
+ 0x94, 0xc8, 0x72, 0x7e, 0xb7, 0xac, 0x0e, 0xfc, 0xfd, 0x16, 0x27, 0x75, 0x8d, 0xcb, 0x08, 0xfe,
+ 0x0a, 0x02, 0x0d, 0x36, 0x11, 0x22, 0x84, 0x40, 0x34, 0x3e, 0x2d, 0x68, 0x5a, 0xa7, 0x67, 0xae,
+ 0x87, 0x07, 0x10, 0x60, 0x14, 0x73, 0x3c, 0x51, 0x19, 0xa3, 0xb5, 0xcf, 0x13, 0xf0, 0x15, 0x4e,
+};
+
+
+static const uint8_t kof99_address_16_23_xor1[256] =
+{
+ 0x00, 0x5f, 0x03, 0x52, 0xce, 0xe3, 0x7d, 0x8f, 0x6b, 0xf8, 0x20, 0xde, 0x7b, 0x7e, 0x39, 0xbe,
+ 0xf5, 0x94, 0x18, 0x78, 0x80, 0xc9, 0x7f, 0x7a, 0x3e, 0x63, 0xf2, 0xe0, 0x4e, 0xf7, 0x87, 0x27,
+ 0x69, 0x6c, 0xa4, 0x1d, 0x85, 0x5b, 0xe6, 0x44, 0x25, 0x0c, 0x98, 0xc7, 0x01, 0x02, 0xa3, 0x26,
+ 0x09, 0x38, 0xdb, 0xc3, 0x1e, 0xcf, 0x23, 0x45, 0x68, 0x76, 0xd6, 0x22, 0x5d, 0x5a, 0xae, 0x16,
+ 0x9f, 0xa2, 0xb5, 0xcd, 0x81, 0xea, 0x5e, 0xb8, 0xb9, 0x9d, 0x9c, 0x1a, 0x0f, 0xff, 0xe1, 0xe7,
+ 0x74, 0xaa, 0xd4, 0xaf, 0xfc, 0xc6, 0x33, 0x29, 0x5c, 0xab, 0x95, 0xf0, 0x19, 0x47, 0x59, 0x67,
+ 0xf3, 0x96, 0x60, 0x1f, 0x62, 0x92, 0xbd, 0x89, 0xee, 0x28, 0x13, 0x06, 0xfe, 0xfa, 0x32, 0x6d,
+ 0x57, 0x3c, 0x54, 0x50, 0x2c, 0x58, 0x49, 0xfb, 0x17, 0xcc, 0xef, 0xb2, 0xb4, 0xf9, 0x07, 0x70,
+ 0xc5, 0xa9, 0xdf, 0xd5, 0x3b, 0x86, 0x2b, 0x0d, 0x6e, 0x4d, 0x0a, 0x90, 0x43, 0x31, 0xc1, 0xf6,
+ 0x88, 0x0b, 0xda, 0x53, 0x14, 0xdc, 0x75, 0x8e, 0xb0, 0xeb, 0x99, 0x46, 0xa1, 0x15, 0x71, 0xc8,
+ 0xe9, 0x3f, 0x4a, 0xd9, 0x73, 0xe5, 0x7c, 0x30, 0x77, 0xd3, 0xb3, 0x4b, 0x37, 0x72, 0xc2, 0x04,
+ 0x97, 0x08, 0x36, 0xb1, 0x3a, 0x61, 0xec, 0xe2, 0x1c, 0x9a, 0x8b, 0xd1, 0x1b, 0x2e, 0x9e, 0x8a,
+ 0xd8, 0x41, 0xe4, 0xc4, 0x40, 0x2f, 0xad, 0xc0, 0xb6, 0x84, 0x51, 0x66, 0xbb, 0x12, 0xe8, 0xdd,
+ 0xcb, 0xbc, 0x6f, 0xd0, 0x11, 0x83, 0x56, 0x4c, 0xca, 0xbf, 0x05, 0x10, 0xd7, 0xba, 0xfd, 0xed,
+ 0x8c, 0x0e, 0x4f, 0x3d, 0x35, 0x91, 0xb7, 0xac, 0x34, 0x64, 0x2a, 0xf1, 0x79, 0x6a, 0x9b, 0x2d,
+ 0x65, 0xf4, 0x42, 0xa0, 0x8d, 0xa7, 0x48, 0x55, 0x21, 0x93, 0x24, 0xd2, 0xa6, 0xa5, 0xa8, 0x82,
+};
+
+
+static const uint8_t kof99_address_16_23_xor2[256] =
+{
+ 0x29, 0x97, 0x1a, 0x2c, 0x0b, 0x94, 0x3e, 0x75, 0x01, 0x0d, 0x1b, 0xe1, 0x4d, 0x38, 0x39, 0x8f,
+ 0xe7, 0xd0, 0x60, 0x90, 0xb2, 0x0f, 0xbb, 0x70, 0x1f, 0xe6, 0x5b, 0x87, 0xb4, 0x43, 0xfd, 0xf5,
+ 0xf6, 0xf9, 0xad, 0xc0, 0x98, 0x17, 0x9f, 0x91, 0x15, 0x51, 0x55, 0x64, 0x6c, 0x18, 0x61, 0x0e,
+ 0xd9, 0x93, 0xab, 0xd6, 0x24, 0x2f, 0x6a, 0x3a, 0x22, 0xb1, 0x4f, 0xaa, 0x23, 0x48, 0xed, 0xb9,
+ 0x88, 0x8b, 0xa3, 0x6b, 0x26, 0x4c, 0xe8, 0x2d, 0x1c, 0x99, 0xbd, 0x5c, 0x58, 0x08, 0x50, 0xf2,
+ 0x2a, 0x62, 0xc1, 0x72, 0x66, 0x04, 0x10, 0x37, 0x6e, 0xfc, 0x44, 0xa9, 0xdf, 0xd4, 0x20, 0xdd,
+ 0xee, 0x41, 0xdb, 0x73, 0xde, 0x54, 0xec, 0xc9, 0xf3, 0x4b, 0x2e, 0xae, 0x5a, 0x4a, 0x5e, 0x47,
+ 0x07, 0x2b, 0x76, 0xa4, 0xe3, 0x28, 0xfe, 0xb0, 0xf0, 0x02, 0x06, 0xd1, 0xaf, 0x42, 0xc2, 0xa5,
+ 0xe0, 0x67, 0xbf, 0x16, 0x8e, 0x35, 0xce, 0x8a, 0xe5, 0x3d, 0x7b, 0x96, 0xd7, 0x79, 0x52, 0x1e,
+ 0xa1, 0xfb, 0x9b, 0xbe, 0x21, 0x9c, 0xe9, 0x56, 0x14, 0x7f, 0xa0, 0xe4, 0xc3, 0xc4, 0x46, 0xea,
+ 0xf7, 0xd2, 0x1d, 0x31, 0x0a, 0x5f, 0xeb, 0xa2, 0x68, 0x8d, 0xb5, 0xc5, 0x74, 0x0c, 0xdc, 0x82,
+ 0x80, 0x09, 0x19, 0x95, 0x71, 0x9a, 0x11, 0x57, 0x77, 0x4e, 0xc6, 0xff, 0x12, 0x03, 0xa7, 0xc7,
+ 0xf4, 0xc8, 0xb6, 0x7a, 0x59, 0x36, 0x3c, 0x53, 0xe2, 0x69, 0x8c, 0x25, 0x05, 0x45, 0x63, 0xf8,
+ 0x34, 0x89, 0x33, 0x3f, 0x85, 0x27, 0xbc, 0x65, 0xfa, 0xa8, 0x6d, 0x84, 0x5d, 0xba, 0x40, 0x32,
+ 0x30, 0xef, 0x83, 0x13, 0xa6, 0x78, 0xcc, 0x81, 0x9e, 0xda, 0xca, 0xd3, 0x7e, 0x9d, 0x6f, 0xcd,
+ 0xb7, 0xb3, 0xd8, 0xcf, 0x3b, 0x00, 0x92, 0xb8, 0x86, 0xac, 0x49, 0x7c, 0xf1, 0xd5, 0xcb, 0x7d,
+};
+
+
+static const uint8_t kof99_address_0_7_xor[256] =
+{
+ 0x74, 0xad, 0x5d, 0x1d, 0x9e, 0xc3, 0xfa, 0x4e, 0xf7, 0xdb, 0xca, 0xa2, 0x64, 0x36, 0x56, 0x0c,
+ 0x4f, 0xcf, 0x43, 0x66, 0x1e, 0x91, 0xe3, 0xa5, 0x58, 0xc2, 0xc1, 0xd4, 0xb9, 0xdd, 0x76, 0x16,
+ 0xce, 0x61, 0x75, 0x01, 0x2b, 0x22, 0x38, 0x55, 0x50, 0xef, 0x6c, 0x99, 0x05, 0xe9, 0xe8, 0xe0,
+ 0x2d, 0xa4, 0x4b, 0x4a, 0x42, 0xae, 0xba, 0x8c, 0x6f, 0x93, 0x14, 0xbd, 0x71, 0x21, 0xb0, 0x02,
+ 0x15, 0xc4, 0xe6, 0x60, 0xd7, 0x44, 0xfd, 0x85, 0x7e, 0x78, 0x8f, 0x00, 0x81, 0xf1, 0xa7, 0x3b,
+ 0xa0, 0x10, 0xf4, 0x9f, 0x39, 0x88, 0x35, 0x62, 0xcb, 0x19, 0x31, 0x11, 0x51, 0xfb, 0x2a, 0x20,
+ 0x45, 0xd3, 0x7d, 0x92, 0x1b, 0xf2, 0x09, 0x0d, 0x97, 0xa9, 0xb5, 0x3c, 0xee, 0x5c, 0xaf, 0x7b,
+ 0xd2, 0x3a, 0x49, 0x8e, 0xb6, 0xcd, 0xd9, 0xde, 0x8a, 0x29, 0x6e, 0xd8, 0x0b, 0xe1, 0x69, 0x87,
+ 0x1a, 0x96, 0x18, 0xcc, 0xdf, 0xe7, 0xc5, 0xc7, 0xf8, 0x52, 0xc9, 0xf0, 0xb7, 0xe5, 0x33, 0xda,
+ 0x67, 0x9d, 0xa3, 0x03, 0x0e, 0x72, 0x26, 0x79, 0xe2, 0xb8, 0xfc, 0xaa, 0xfe, 0xb4, 0x86, 0xc8,
+ 0xd1, 0xbc, 0x12, 0x08, 0x77, 0xeb, 0x40, 0x8d, 0x04, 0x25, 0x4d, 0x5a, 0x6a, 0x7a, 0x2e, 0x41,
+ 0x65, 0x1c, 0x13, 0x94, 0xb2, 0x63, 0x28, 0x59, 0x5e, 0x9a, 0x30, 0x07, 0xc6, 0xbf, 0x17, 0xf5,
+ 0x0f, 0x89, 0xf3, 0x1f, 0xea, 0x6d, 0xb3, 0xc0, 0x70, 0x47, 0xf9, 0x53, 0xf6, 0xd6, 0x54, 0xed,
+ 0x6b, 0x4c, 0xe4, 0x8b, 0x83, 0x24, 0x90, 0xb1, 0x7c, 0xbb, 0x73, 0xab, 0xd5, 0x2f, 0x5f, 0xec,
+ 0x9c, 0x2c, 0xa8, 0x34, 0x46, 0x37, 0x27, 0xa1, 0x0a, 0x06, 0x80, 0x68, 0x82, 0x32, 0x84, 0xff,
+ 0x48, 0xac, 0x7f, 0x3f, 0x95, 0xdc, 0x98, 0x9b, 0xbe, 0x23, 0x57, 0x3e, 0x5b, 0xd0, 0x3d, 0xa6,
+};
+
+
+static const uint8_t kof2000_type0_t03[256] =
+{
+ 0x10, 0x61, 0xf1, 0x78, 0x85, 0x52, 0x68, 0xe3, 0x12, 0x0d, 0xfa, 0xf0, 0xc9, 0x36, 0x5e, 0x3d,
+ 0xf9, 0xa6, 0x01, 0x2e, 0xc7, 0x84, 0xea, 0x2b, 0x6d, 0x14, 0x38, 0x4f, 0x55, 0x1c, 0x9d, 0xa7,
+ 0x7a, 0xc6, 0xf8, 0x9a, 0xe6, 0x42, 0xb5, 0xed, 0x7d, 0x3a, 0xb1, 0x05, 0x43, 0x4a, 0x22, 0xfd,
+ 0xac, 0xa4, 0x31, 0xc3, 0x32, 0x76, 0x95, 0x9e, 0x7e, 0x88, 0x8e, 0xa2, 0x97, 0x18, 0xbe, 0x2a,
+ 0xf5, 0xd6, 0xca, 0xcc, 0x72, 0x3b, 0x87, 0x6c, 0xde, 0x75, 0xd7, 0x21, 0xcb, 0x0b, 0xdd, 0xe7,
+ 0xe1, 0x65, 0xaa, 0xb9, 0x44, 0xfb, 0x66, 0x15, 0x1a, 0x3c, 0x98, 0xcf, 0x8a, 0xdf, 0x37, 0xa5,
+ 0x2f, 0x67, 0xd2, 0x83, 0xb6, 0x6b, 0xfc, 0xe0, 0xb4, 0x7c, 0x08, 0xdc, 0x93, 0x30, 0xab, 0xe4,
+ 0x19, 0xc2, 0x8b, 0xeb, 0xa0, 0x0a, 0xc8, 0x03, 0xc0, 0x4b, 0x64, 0x71, 0x86, 0x9c, 0x9b, 0x16,
+ 0x79, 0xff, 0x70, 0x09, 0x8c, 0xd0, 0xf6, 0x53, 0x07, 0x73, 0xd4, 0x89, 0xb3, 0x00, 0xe9, 0xfe,
+ 0xec, 0x8f, 0xbc, 0xb2, 0x1e, 0x5d, 0x11, 0x35, 0xa9, 0x06, 0x59, 0x9f, 0xc1, 0xd3, 0x7b, 0xf2,
+ 0xc5, 0x77, 0x4e, 0x39, 0x20, 0xd5, 0x6a, 0x82, 0xda, 0x45, 0xf3, 0x33, 0x81, 0x23, 0xba, 0xe2,
+ 0x1d, 0x5f, 0x5c, 0x51, 0x49, 0xae, 0x8d, 0xc4, 0xa8, 0xf7, 0x1f, 0x0f, 0x34, 0x28, 0xa1, 0xd9,
+ 0x27, 0xd8, 0x4c, 0x2c, 0xbf, 0x91, 0x3e, 0x69, 0x57, 0x41, 0x25, 0x0c, 0x5a, 0x90, 0x92, 0xb0,
+ 0x63, 0x6f, 0x40, 0xaf, 0x74, 0xb8, 0x2d, 0x80, 0xbb, 0x46, 0x94, 0xe5, 0x29, 0xee, 0xb7, 0x1b,
+ 0x96, 0xad, 0x13, 0x0e, 0x58, 0x99, 0x60, 0x4d, 0x17, 0x26, 0xce, 0xe8, 0xdb, 0xef, 0x24, 0xa3,
+ 0x6e, 0x7f, 0x54, 0x3f, 0x02, 0xd1, 0x5b, 0x50, 0x56, 0x48, 0xf4, 0xbd, 0x62, 0x47, 0x04, 0xcd,
+};
+
+
+static const uint8_t kof2000_type0_t12[256] =
+{
+ 0xf4, 0x28, 0xb4, 0x8f, 0xfa, 0xeb, 0x8e, 0x54, 0x2b, 0x49, 0xd1, 0x76, 0x71, 0x47, 0x8b, 0x57,
+ 0x92, 0x85, 0x7c, 0xb8, 0x5c, 0x22, 0xf9, 0x26, 0xbc, 0x5b, 0x6d, 0x67, 0xae, 0x5f, 0x6f, 0xf5,
+ 0x9f, 0x48, 0x66, 0x40, 0x0d, 0x11, 0x4e, 0xb2, 0x6b, 0x35, 0x15, 0x0f, 0x18, 0x25, 0x1d, 0xba,
+ 0xd3, 0x69, 0x79, 0xec, 0xa8, 0x8c, 0xc9, 0x7f, 0x4b, 0xdb, 0x51, 0xaf, 0xca, 0xe2, 0xb3, 0x81,
+ 0x12, 0x5e, 0x7e, 0x38, 0xc8, 0x95, 0x01, 0xff, 0xfd, 0xfb, 0xf2, 0x74, 0x62, 0x14, 0xa5, 0x98,
+ 0xa6, 0xda, 0x80, 0x53, 0xe8, 0x56, 0xac, 0x1b, 0x52, 0xd0, 0xf1, 0x45, 0x42, 0xb6, 0x1a, 0x4a,
+ 0x3a, 0x99, 0xfc, 0xd2, 0x9c, 0xcf, 0x31, 0x2d, 0xdd, 0x86, 0x2f, 0x29, 0xe1, 0x03, 0x19, 0xa2,
+ 0x41, 0x33, 0x83, 0x90, 0xc1, 0xbf, 0x0b, 0x08, 0x3d, 0xd8, 0x8d, 0x6c, 0x39, 0xa0, 0xe3, 0x55,
+ 0x02, 0x50, 0x46, 0xe6, 0xc3, 0x82, 0x36, 0x13, 0x75, 0xab, 0x27, 0xd7, 0x1f, 0x0a, 0xd4, 0x89,
+ 0x59, 0x4f, 0xc0, 0x5d, 0xc6, 0xf7, 0x88, 0xbd, 0x3c, 0x00, 0xef, 0xcd, 0x05, 0x1c, 0xaa, 0x9b,
+ 0xed, 0x7a, 0x61, 0x17, 0x93, 0xfe, 0x23, 0xb9, 0xf3, 0x68, 0x78, 0xf6, 0x5a, 0x7b, 0xe0, 0xe4,
+ 0xa3, 0xee, 0x16, 0x72, 0xc7, 0x3b, 0x8a, 0x37, 0x2a, 0x70, 0xa9, 0x2c, 0x21, 0xf8, 0x24, 0x09,
+ 0xce, 0x20, 0x9e, 0x06, 0x87, 0xc5, 0x04, 0x64, 0x43, 0x7d, 0x4d, 0x10, 0xd6, 0xa4, 0x94, 0x4c,
+ 0x60, 0xde, 0xdf, 0x58, 0xb1, 0x44, 0x3f, 0xb0, 0xd9, 0xe5, 0xcb, 0xbb, 0xbe, 0xea, 0x07, 0x34,
+ 0x73, 0x6a, 0x77, 0xf0, 0x9d, 0x0c, 0x2e, 0x0e, 0x91, 0x9a, 0xcc, 0xc2, 0xb7, 0x63, 0x97, 0xd5,
+ 0xdc, 0xc4, 0x32, 0xe7, 0x84, 0x3e, 0x30, 0xa1, 0x1e, 0xb5, 0x6e, 0x65, 0xe9, 0xad, 0xa7, 0x96,
+};
+
+
+static const uint8_t kof2000_type1_t03[256] =
+{
+ 0x9a, 0x2f, 0xcc, 0x4e, 0x40, 0x69, 0xac, 0xca, 0xa5, 0x7b, 0x0a, 0x61, 0x91, 0x0d, 0x55, 0x74,
+ 0xcd, 0x8b, 0x0b, 0x80, 0x09, 0x5e, 0x38, 0xc7, 0xda, 0xbf, 0xf5, 0x37, 0x23, 0x31, 0x33, 0xe9,
+ 0xae, 0x87, 0xe5, 0xfa, 0x6e, 0x5c, 0xad, 0xf4, 0x76, 0x62, 0x9f, 0x2e, 0x01, 0xe2, 0xf6, 0x47,
+ 0x8c, 0x7c, 0xaa, 0x98, 0xb5, 0x92, 0x51, 0xec, 0x5f, 0x07, 0x5d, 0x6f, 0x16, 0xa1, 0x1d, 0xa9,
+ 0x48, 0x45, 0xf0, 0x6a, 0x9c, 0x1e, 0x11, 0xa0, 0x06, 0x46, 0xd5, 0xf1, 0x73, 0xed, 0x94, 0xf7,
+ 0xc3, 0x57, 0x1b, 0xe0, 0x97, 0xb1, 0xa4, 0xa7, 0x24, 0xe7, 0x2b, 0x05, 0x5b, 0x34, 0x0c, 0xb8,
+ 0x0f, 0x9b, 0xc8, 0x4d, 0x5a, 0xa6, 0x86, 0x3e, 0x14, 0x29, 0x84, 0x58, 0x90, 0xdb, 0x2d, 0x54,
+ 0x9d, 0x82, 0xd4, 0x7d, 0xc6, 0x67, 0x41, 0x89, 0xc1, 0x13, 0xb0, 0x9e, 0x81, 0x6d, 0xa8, 0x59,
+ 0xbd, 0x39, 0x8e, 0xe6, 0x25, 0x8f, 0xd9, 0xa2, 0xe4, 0x53, 0xc5, 0x72, 0x7e, 0x36, 0x4a, 0x4f,
+ 0x52, 0xc2, 0x22, 0x2a, 0xce, 0x3c, 0x21, 0x2c, 0x00, 0xd7, 0x75, 0x8a, 0x27, 0xee, 0x43, 0xfe,
+ 0xcb, 0x6b, 0xb9, 0xa3, 0x78, 0xb7, 0x85, 0x02, 0x20, 0xd0, 0x83, 0xc4, 0x12, 0xf9, 0xfd, 0xd8,
+ 0x79, 0x64, 0x3a, 0x49, 0x03, 0xb4, 0xc0, 0xf2, 0xdf, 0x15, 0x93, 0x08, 0x35, 0xff, 0x70, 0xdd,
+ 0x28, 0x6c, 0x0e, 0x04, 0xde, 0x7a, 0x65, 0xd2, 0xab, 0x42, 0x95, 0xe1, 0x3f, 0x3b, 0x7f, 0x66,
+ 0xd1, 0x8d, 0xe3, 0xbb, 0x1c, 0xfc, 0x77, 0x1a, 0x88, 0x18, 0x19, 0x68, 0x1f, 0x56, 0xd6, 0xe8,
+ 0xb6, 0xbc, 0xd3, 0xea, 0x3d, 0x26, 0xb3, 0xc9, 0x44, 0xdc, 0xf3, 0x32, 0x30, 0xef, 0x96, 0x4c,
+ 0xaf, 0x17, 0xf8, 0xfb, 0x60, 0x50, 0xeb, 0x4b, 0x99, 0x63, 0xba, 0xb2, 0x71, 0xcf, 0x10, 0xbe,
+};
+
+
+static const uint8_t kof2000_type1_t12[256] =
+{
+ 0xda, 0xa7, 0xd6, 0x6e, 0x2f, 0x5e, 0xf0, 0x3f, 0xa4, 0xce, 0xd3, 0xfd, 0x46, 0x2a, 0xac, 0xc9,
+ 0xbe, 0xeb, 0x9f, 0xd5, 0x3c, 0x61, 0x96, 0x11, 0xd0, 0x38, 0xca, 0x06, 0xed, 0x1b, 0x65, 0xe7,
+ 0x23, 0xdd, 0xd9, 0x05, 0xbf, 0x5b, 0x5d, 0xa5, 0x95, 0x00, 0xec, 0xf1, 0x01, 0xa9, 0xa6, 0xfc,
+ 0xbb, 0x54, 0xe3, 0x2e, 0x92, 0x58, 0x0a, 0x7b, 0xb6, 0xcc, 0xb1, 0x5f, 0x14, 0x35, 0x72, 0xff,
+ 0xe6, 0x52, 0xd7, 0x8c, 0xf3, 0x43, 0xaf, 0x9c, 0xc0, 0x4f, 0x0c, 0x42, 0x8e, 0xef, 0x80, 0xcd,
+ 0x1d, 0x7e, 0x88, 0x3b, 0x98, 0xa1, 0xad, 0xe4, 0x9d, 0x8d, 0x2b, 0x56, 0xb5, 0x50, 0xdf, 0x66,
+ 0x6d, 0xd4, 0x60, 0x09, 0xe1, 0xee, 0x4a, 0x47, 0xf9, 0xfe, 0x73, 0x07, 0x89, 0xa8, 0x39, 0xea,
+ 0x82, 0x9e, 0xcf, 0x26, 0xb2, 0x4e, 0xc3, 0x59, 0xf2, 0x3d, 0x9a, 0xb0, 0x69, 0xf7, 0xbc, 0x34,
+ 0xe5, 0x36, 0x22, 0xfb, 0x57, 0x71, 0x99, 0x6c, 0x83, 0x30, 0x55, 0xc2, 0xbd, 0xf4, 0x77, 0xe9,
+ 0x76, 0x97, 0xa0, 0xe0, 0xb9, 0x86, 0x6b, 0xa3, 0x84, 0x67, 0x1a, 0x70, 0x02, 0x5a, 0x41, 0x5c,
+ 0x25, 0x81, 0xaa, 0x28, 0x78, 0x4b, 0xc6, 0x64, 0x53, 0x16, 0x4d, 0x8b, 0x20, 0x93, 0xae, 0x0f,
+ 0x94, 0x2c, 0x3a, 0xc7, 0x62, 0xe8, 0xc4, 0xdb, 0x04, 0xc5, 0xfa, 0x29, 0x48, 0xd1, 0x08, 0x24,
+ 0x0d, 0xe2, 0xd8, 0x10, 0xb4, 0x91, 0x8a, 0x13, 0x0e, 0xdc, 0xd2, 0x79, 0xb8, 0xf8, 0xba, 0x2d,
+ 0xcb, 0xf5, 0x7d, 0x37, 0x51, 0x40, 0x31, 0xa2, 0x0b, 0x18, 0x63, 0x7f, 0xb3, 0xab, 0x9b, 0x87,
+ 0xf6, 0x90, 0xde, 0xc8, 0x27, 0x45, 0x7c, 0x1c, 0x85, 0x68, 0x33, 0x19, 0x03, 0x75, 0x15, 0x7a,
+ 0x1f, 0x49, 0x8f, 0x4c, 0xc1, 0x44, 0x17, 0x12, 0x6f, 0x32, 0xb7, 0x3e, 0x74, 0x1e, 0x21, 0x6a,
+};
+
+
+static const uint8_t kof2000_address_8_15_xor1[256] =
+{
+ 0xfc, 0x9b, 0x1c, 0x35, 0x72, 0x53, 0xd6, 0x7d, 0x84, 0xa4, 0xc5, 0x93, 0x7b, 0xe7, 0x47, 0xd5,
+ 0x24, 0xa2, 0xfa, 0x19, 0x0c, 0xb1, 0x8c, 0xb9, 0x9d, 0xd8, 0x59, 0x4f, 0x3c, 0xb2, 0x78, 0x4a,
+ 0x2a, 0x96, 0x9a, 0xf1, 0x1f, 0x22, 0xa8, 0x5b, 0x67, 0xa3, 0x0f, 0x00, 0xfb, 0xdf, 0xeb, 0x0a,
+ 0x57, 0xb8, 0x25, 0xd7, 0xf0, 0x6b, 0x0b, 0x31, 0x95, 0x23, 0x2d, 0x5c, 0x27, 0xc7, 0xf4, 0x55,
+ 0x1a, 0xf7, 0x74, 0xbe, 0xd3, 0xac, 0x3d, 0xc1, 0x7f, 0xbd, 0x28, 0x01, 0x10, 0xe5, 0x09, 0x37,
+ 0x1e, 0x58, 0xaf, 0x17, 0xf2, 0x16, 0x30, 0x92, 0x36, 0x68, 0xe6, 0xd4, 0xea, 0xb7, 0x75, 0x54,
+ 0x77, 0x41, 0xb4, 0x8d, 0xe0, 0xf3, 0x51, 0x03, 0xa9, 0xe8, 0x66, 0xab, 0x29, 0xa5, 0xed, 0xcb,
+ 0xd1, 0xaa, 0xf5, 0xdb, 0x4c, 0x42, 0x97, 0x8a, 0xae, 0xc9, 0x6e, 0x04, 0x33, 0x85, 0xdd, 0x2b,
+ 0x6f, 0xef, 0x12, 0x21, 0x7a, 0xa1, 0x5a, 0x91, 0xc8, 0xcc, 0xc0, 0xa7, 0x60, 0x3e, 0x56, 0x2f,
+ 0xe4, 0x71, 0x99, 0xc2, 0xa0, 0x45, 0x80, 0x65, 0xbb, 0x87, 0x69, 0x81, 0x73, 0xca, 0xf6, 0x46,
+ 0x43, 0xda, 0x26, 0x7e, 0x8f, 0xe1, 0x8b, 0xfd, 0x50, 0x79, 0xba, 0xc6, 0x63, 0x4b, 0xb3, 0x8e,
+ 0x34, 0xe2, 0x48, 0x14, 0xcd, 0xe3, 0xc4, 0x05, 0x13, 0x40, 0x06, 0x6c, 0x88, 0xb0, 0xe9, 0x1b,
+ 0x4d, 0xf8, 0x76, 0x02, 0x44, 0x94, 0xcf, 0x32, 0xfe, 0xce, 0x3b, 0x5d, 0x2c, 0x89, 0x5f, 0xdc,
+ 0xd2, 0x9c, 0x6a, 0xec, 0x18, 0x6d, 0x0e, 0x86, 0xff, 0x5e, 0x9e, 0xee, 0x11, 0xd0, 0x49, 0x52,
+ 0x4e, 0x61, 0x90, 0x0d, 0xc3, 0x39, 0x15, 0x83, 0xb5, 0x62, 0x3f, 0x70, 0x7c, 0xad, 0x20, 0xbf,
+ 0x2e, 0x08, 0x1d, 0xf9, 0xb6, 0xa6, 0x64, 0x07, 0x82, 0x38, 0x98, 0x3a, 0x9f, 0xde, 0xbc, 0xd9,
+};
+
+
+static const uint8_t kof2000_address_8_15_xor2[256] =
+{
+ 0x00, 0xbe, 0x06, 0x5a, 0xfa, 0x42, 0x15, 0xf2, 0x3f, 0x0a, 0x84, 0x93, 0x4e, 0x78, 0x3b, 0x89,
+ 0x32, 0x98, 0xa2, 0x87, 0x73, 0xdd, 0x26, 0xe5, 0x05, 0x71, 0x08, 0x6e, 0x9b, 0xe0, 0xdf, 0x9e,
+ 0xfc, 0x83, 0x81, 0xef, 0xb2, 0xc0, 0xc3, 0xbf, 0xa7, 0x6d, 0x1b, 0x95, 0xed, 0xb9, 0x3e, 0x13,
+ 0xb0, 0x47, 0x9c, 0x7a, 0x24, 0x41, 0x68, 0xd0, 0x36, 0x0b, 0xb5, 0xc2, 0x67, 0xf7, 0x54, 0x92,
+ 0x1e, 0x44, 0x86, 0x2b, 0x94, 0xcc, 0xba, 0x23, 0x0d, 0xca, 0x6b, 0x4c, 0x2a, 0x9a, 0x2d, 0x8b,
+ 0xe3, 0x52, 0x29, 0xf0, 0x21, 0xbd, 0xbb, 0x1f, 0xa3, 0xab, 0xf8, 0x46, 0xb7, 0x45, 0x82, 0x5e,
+ 0xdb, 0x07, 0x5d, 0xe9, 0x9d, 0x1a, 0x48, 0xce, 0x91, 0x12, 0xd4, 0xee, 0xa9, 0x39, 0xf1, 0x18,
+ 0x2c, 0x22, 0x8a, 0x7e, 0x34, 0x4a, 0x8c, 0xc1, 0x14, 0xf3, 0x20, 0x35, 0xd9, 0x96, 0x33, 0x77,
+ 0x9f, 0x76, 0x7c, 0x90, 0xc6, 0xd5, 0xa1, 0x5b, 0xac, 0x75, 0xc7, 0x0c, 0xb3, 0x17, 0xd6, 0x99,
+ 0x56, 0xa6, 0x3d, 0x1d, 0xb1, 0x2e, 0xd8, 0xbc, 0x2f, 0xde, 0x60, 0x55, 0x6c, 0x40, 0xcd, 0x43,
+ 0xff, 0xad, 0x38, 0x79, 0x51, 0xc8, 0x0e, 0x5f, 0xc4, 0x66, 0xcb, 0xa8, 0x7d, 0xa4, 0x3a, 0xea,
+ 0x27, 0x7b, 0x70, 0x8e, 0x5c, 0x19, 0x0f, 0x80, 0x6f, 0x8f, 0x10, 0xf9, 0x49, 0x85, 0x69, 0x7f,
+ 0xeb, 0x1c, 0x01, 0x65, 0x37, 0xa5, 0x28, 0xe4, 0x6a, 0x03, 0x04, 0xd1, 0x31, 0x11, 0x30, 0xfb,
+ 0x88, 0x97, 0xd3, 0xf6, 0xc5, 0x4d, 0xf5, 0x3c, 0xe8, 0x61, 0xdc, 0xd2, 0xb4, 0xb8, 0xa0, 0xae,
+ 0x16, 0x25, 0x02, 0x09, 0xfe, 0xcf, 0x53, 0x63, 0xaf, 0x59, 0xf4, 0xe1, 0xec, 0xd7, 0xe7, 0x50,
+ 0xe2, 0xc9, 0xaa, 0x4b, 0x8d, 0x4f, 0xe6, 0x64, 0xda, 0x74, 0xb6, 0x72, 0x57, 0x62, 0xfd, 0x58,
+};
+
+
+static const uint8_t kof2000_address_16_23_xor1[256] =
+{
+ 0x45, 0x9f, 0x6e, 0x2f, 0x28, 0xbc, 0x5e, 0x6d, 0xda, 0xb5, 0x0d, 0xb8, 0xc0, 0x8e, 0xa2, 0x32,
+ 0xee, 0xcd, 0x8d, 0x48, 0x8c, 0x27, 0x14, 0xeb, 0x65, 0xd7, 0xf2, 0x93, 0x99, 0x90, 0x91, 0xfc,
+ 0x5f, 0xcb, 0xfa, 0x75, 0x3f, 0x26, 0xde, 0x72, 0x33, 0x39, 0xc7, 0x1f, 0x88, 0x79, 0x73, 0xab,
+ 0x4e, 0x36, 0x5d, 0x44, 0xd2, 0x41, 0xa0, 0x7e, 0xa7, 0x8b, 0xa6, 0xbf, 0x03, 0xd8, 0x86, 0xdc,
+ 0x2c, 0xaa, 0x70, 0x3d, 0x46, 0x07, 0x80, 0x58, 0x0b, 0x2b, 0xe2, 0xf0, 0xb1, 0xfe, 0x42, 0xf3,
+ 0xe9, 0xa3, 0x85, 0x78, 0xc3, 0xd0, 0x5a, 0xdb, 0x1a, 0xfb, 0x9d, 0x8a, 0xa5, 0x12, 0x0e, 0x54,
+ 0x8f, 0xc5, 0x6c, 0xae, 0x25, 0x5b, 0x4b, 0x17, 0x02, 0x9c, 0x4a, 0x24, 0x40, 0xe5, 0x9e, 0x22,
+ 0xc6, 0x49, 0x62, 0xb6, 0x6b, 0xbb, 0xa8, 0xcc, 0xe8, 0x81, 0x50, 0x47, 0xc8, 0xbe, 0x5c, 0xa4,
+ 0xd6, 0x94, 0x4f, 0x7b, 0x9a, 0xcf, 0xe4, 0x59, 0x7a, 0xa1, 0xea, 0x31, 0x37, 0x13, 0x2d, 0xaf,
+ 0x21, 0x69, 0x19, 0x1d, 0x6f, 0x16, 0x98, 0x1e, 0x08, 0xe3, 0xb2, 0x4d, 0x9b, 0x7f, 0xa9, 0x77,
+ 0xed, 0xbd, 0xd4, 0xd9, 0x34, 0xd3, 0xca, 0x09, 0x18, 0x60, 0xc9, 0x6a, 0x01, 0xf4, 0xf6, 0x64,
+ 0xb4, 0x3a, 0x15, 0xac, 0x89, 0x52, 0x68, 0x71, 0xe7, 0x82, 0xc1, 0x0c, 0x92, 0xf7, 0x30, 0xe6,
+ 0x1c, 0x3e, 0x0f, 0x0a, 0x67, 0x35, 0xba, 0x61, 0xdd, 0x29, 0xc2, 0xf8, 0x97, 0x95, 0xb7, 0x3b,
+ 0xe0, 0xce, 0xf9, 0xd5, 0x06, 0x76, 0xb3, 0x05, 0x4c, 0x04, 0x84, 0x3c, 0x87, 0x23, 0x63, 0x7c,
+ 0x53, 0x56, 0xe1, 0x7d, 0x96, 0x1b, 0xd1, 0xec, 0x2a, 0x66, 0xf1, 0x11, 0x10, 0xff, 0x43, 0x2e,
+ 0xdf, 0x83, 0x74, 0xf5, 0x38, 0x20, 0xfd, 0xad, 0xc4, 0xb9, 0x55, 0x51, 0xb0, 0xef, 0x00, 0x57,
+};
+
+
+static const uint8_t kof2000_address_16_23_xor2[256] =
+{
+ 0x00, 0xb8, 0xf0, 0x34, 0xca, 0x21, 0x3c, 0xf9, 0x01, 0x8e, 0x75, 0x70, 0xec, 0x13, 0x27, 0x96,
+ 0xf4, 0x5b, 0x88, 0x1f, 0xeb, 0x4a, 0x7d, 0x9d, 0xbe, 0x02, 0x14, 0xaf, 0xa2, 0x06, 0xc6, 0xdb,
+ 0x35, 0x6b, 0x74, 0x45, 0x7b, 0x29, 0xd2, 0xfe, 0xb6, 0x15, 0xd0, 0x8a, 0xa9, 0x2d, 0x19, 0xf6,
+ 0x5e, 0x5a, 0x90, 0xe9, 0x11, 0x33, 0xc2, 0x47, 0x37, 0x4c, 0x4f, 0x59, 0xc3, 0x04, 0x57, 0x1d,
+ 0xf2, 0x63, 0x6d, 0x6e, 0x31, 0x95, 0xcb, 0x3e, 0x67, 0xb2, 0xe3, 0x98, 0xed, 0x8d, 0xe6, 0xfb,
+ 0xf8, 0xba, 0x5d, 0xd4, 0x2a, 0xf5, 0x3b, 0x82, 0x05, 0x16, 0x44, 0xef, 0x4d, 0xe7, 0x93, 0xda,
+ 0x9f, 0xbb, 0x61, 0xc9, 0x53, 0xbd, 0x76, 0x78, 0x52, 0x36, 0x0c, 0x66, 0xc1, 0x10, 0xdd, 0x7a,
+ 0x84, 0x69, 0xcd, 0xfd, 0x58, 0x0d, 0x6c, 0x89, 0x68, 0xad, 0x3a, 0xb0, 0x4b, 0x46, 0xc5, 0x03,
+ 0xb4, 0xf7, 0x30, 0x8c, 0x4e, 0x60, 0x73, 0xa1, 0x8b, 0xb1, 0x62, 0xcc, 0xd1, 0x08, 0xfc, 0x77,
+ 0x7e, 0xcf, 0x56, 0x51, 0x07, 0xa6, 0x80, 0x92, 0xdc, 0x0b, 0xa4, 0xc7, 0xe8, 0xe1, 0xb5, 0x71,
+ 0xea, 0xb3, 0x2f, 0x94, 0x18, 0xe2, 0x3d, 0x49, 0x65, 0xaa, 0xf1, 0x91, 0xc8, 0x99, 0x55, 0x79,
+ 0x86, 0xa7, 0x26, 0xa0, 0xac, 0x5f, 0xce, 0x6a, 0x5c, 0xf3, 0x87, 0x8f, 0x12, 0x1c, 0xd8, 0xe4,
+ 0x9b, 0x64, 0x2e, 0x1e, 0xd7, 0xc0, 0x17, 0xbc, 0xa3, 0xa8, 0x9a, 0x0e, 0x25, 0x40, 0x41, 0x50,
+ 0xb9, 0xbf, 0x28, 0xdf, 0x32, 0x54, 0x9e, 0x48, 0xd5, 0x2b, 0x42, 0xfa, 0x9c, 0x7f, 0xd3, 0x85,
+ 0x43, 0xde, 0x81, 0x0f, 0x24, 0xc4, 0x38, 0xae, 0x83, 0x1b, 0x6f, 0x7c, 0xe5, 0xff, 0x1a, 0xd9,
+ 0x3f, 0xb7, 0x22, 0x97, 0x09, 0xe0, 0xa5, 0x20, 0x23, 0x2c, 0x72, 0xd6, 0x39, 0xab, 0x0a, 0xee,
+};
+
+
+static const uint8_t kof2000_address_0_7_xor[256] =
+{
+ 0x26, 0x48, 0x06, 0x9b, 0x21, 0xa9, 0x1b, 0x76, 0xc9, 0xf8, 0xb4, 0x67, 0xe4, 0xff, 0x99, 0xf7,
+ 0x15, 0x9e, 0x62, 0x00, 0x72, 0x4d, 0xa0, 0x4f, 0x02, 0xf1, 0xea, 0xef, 0x0b, 0xf3, 0xeb, 0xa6,
+ 0x93, 0x78, 0x6f, 0x7c, 0xda, 0xd4, 0x7b, 0x05, 0xe9, 0xc6, 0xd6, 0xdb, 0x50, 0xce, 0xd2, 0x01,
+ 0xb5, 0xe8, 0xe0, 0x2a, 0x08, 0x1a, 0xb8, 0xe3, 0xf9, 0xb1, 0xf4, 0x8b, 0x39, 0x2d, 0x85, 0x9c,
+ 0x55, 0x73, 0x63, 0x40, 0x38, 0x96, 0xdc, 0xa3, 0xa2, 0xa1, 0x25, 0x66, 0x6d, 0x56, 0x8e, 0x10,
+ 0x0f, 0x31, 0x1c, 0xf5, 0x28, 0x77, 0x0a, 0xd1, 0x75, 0x34, 0xa4, 0xfe, 0x7d, 0x07, 0x51, 0x79,
+ 0x41, 0x90, 0x22, 0x35, 0x12, 0xbb, 0xc4, 0xca, 0xb2, 0x1f, 0xcb, 0xc8, 0xac, 0xdd, 0xd0, 0x0d,
+ 0xfc, 0xc5, 0x9d, 0x14, 0xbc, 0x83, 0xd9, 0x58, 0xc2, 0x30, 0x9a, 0x6a, 0xc0, 0x0c, 0xad, 0xf6,
+ 0x5d, 0x74, 0x7f, 0x2f, 0xbd, 0x1d, 0x47, 0xd5, 0xe6, 0x89, 0xcf, 0xb7, 0xd3, 0x59, 0x36, 0x98,
+ 0xf0, 0xfb, 0x3c, 0xf2, 0x3f, 0xa7, 0x18, 0x82, 0x42, 0x5c, 0xab, 0xba, 0xde, 0x52, 0x09, 0x91,
+ 0xaa, 0x61, 0xec, 0xd7, 0x95, 0x23, 0xcd, 0x80, 0xa5, 0x68, 0x60, 0x27, 0x71, 0xe1, 0x2c, 0x2e,
+ 0x8d, 0x2b, 0x57, 0x65, 0xbf, 0xc1, 0x19, 0xc7, 0x49, 0x64, 0x88, 0x4a, 0xcc, 0x20, 0x4e, 0xd8,
+ 0x3b, 0x4c, 0x13, 0x5f, 0x9f, 0xbe, 0x5e, 0x6e, 0xfd, 0xe2, 0xfa, 0x54, 0x37, 0x0e, 0x16, 0x7a,
+ 0x6c, 0x33, 0xb3, 0x70, 0x84, 0x7e, 0xc3, 0x04, 0xb0, 0xae, 0xb9, 0x81, 0x03, 0x29, 0xdf, 0x46,
+ 0xe5, 0x69, 0xe7, 0x24, 0x92, 0x5a, 0x4b, 0x5b, 0x94, 0x11, 0x3a, 0x3d, 0x87, 0xed, 0x97, 0xb6,
+ 0x32, 0x3e, 0x45, 0xaf, 0x1e, 0x43, 0x44, 0x8c, 0x53, 0x86, 0x6b, 0xee, 0xa8, 0x8a, 0x8f, 0x17,
+};
+
+
+
+void cmc_prot_device::decrypt(uint8_t *r0, uint8_t *r1, uint8_t c0, uint8_t c1, const uint8_t *table0hi, const uint8_t *table0lo, const uint8_t *table1, int base, int invert)
+{
+ uint8_t tmp,xor0,xor1;
+
+ tmp = table1[(base & 0xff) ^ address_0_7_xor[(base >> 8) & 0xff]];
+ xor0 = (table0hi[(base >> 8) & 0xff] & 0xfe) | (tmp & 0x01);
+ xor1 = (tmp & 0xfe) | (table0lo[(base >> 8) & 0xff] & 0x01);
+
+ if (invert)
+ {
+ *r0 = c1 ^ xor0;
+ *r1 = c0 ^ xor1;
+ }
+ else
+ {
+ *r0 = c0 ^ xor0;
+ *r1 = c1 ^ xor1;
+ }
+}
+
+
+void cmc_prot_device::neogeo_gfx_decrypt(uint8_t* rom, uint32_t rom_size, int extra_xor)
+{
+ int rpos;
+ std::vector<uint8_t> buf(rom_size);
+
+ // Data xor
+ for (rpos = 0;rpos < rom_size/4;rpos++)
+ {
+ decrypt(&buf[4*rpos+0], &buf[4*rpos+3], rom[4*rpos+0], rom[4*rpos+3], type0_t03, type0_t12, type1_t03, rpos, (rpos>>8) & 1);
+ decrypt(&buf[4*rpos+1], &buf[4*rpos+2], rom[4*rpos+1], rom[4*rpos+2], type0_t12, type0_t03, type1_t12, rpos, ((rpos>>16) ^ address_16_23_xor2[(rpos>>8) & 0xff]) & 1);
+ }
+
+ // Address xor
+ for (rpos = 0;rpos < rom_size/4;rpos++)
+ {
+ int baser = rpos ^ extra_xor;
+ baser ^= address_8_15_xor1[(baser >> 16) & 0xff] << 8;
+ baser ^= address_8_15_xor2[baser & 0xff] << 8;
+ baser ^= address_16_23_xor1[baser & 0xff] << 16;
+ baser ^= address_16_23_xor2[(baser >> 8) & 0xff] << 16;
+ baser ^= address_0_7_xor[(baser >> 8) & 0xff];
+
+ if (rom_size == 0x3000000) /* special handling for preisle2 */
+ {
+ if (rpos < 0x2000000/4)
+ baser &= (0x2000000/4)-1;
+ else
+ baser = 0x2000000/4 + (baser & ((0x1000000/4)-1));
+ }
+ else if (rom_size == 0x6000000) /* special handling for kf2k3pcb */
+ {
+ if (rpos < 0x4000000/4)
+ baser &= (0x4000000/4)-1;
+ else
+ baser = 0x4000000/4 + (baser & ((0x1000000/4)-1));
+ }
+ else /* Clamp to the real rom size */
+ baser &= (rom_size/4)-1;
+
+ rom[4*rpos+0] = buf[4*baser+0];
+ rom[4*rpos+1] = buf[4*baser+1];
+ rom[4*rpos+2] = buf[4*baser+2];
+ rom[4*rpos+3] = buf[4*baser+3];
+ }
+}
+
+
+/* the S data comes from the end of the C data */
+void cmc_prot_device::neogeo_sfix_decrypt(uint8_t* rom, uint32_t rom_size, uint8_t* fixed, uint32_t fixed_size)
+{
+ int i;
+ int tx_size = fixed_size;
+ uint8_t *src = rom+rom_size-tx_size;
+ uint8_t *dst = fixed;
+
+ for (i = 0;i < tx_size;i++)
+ dst[i] = src[(i & ~0x1f) + ((i & 7) << 2) + ((~i & 8) >> 2) + ((i & 0x10) >> 4)];
+}
+
+
+/* CMC42 protection chip */
+void cmc_prot_device::cmc42_neogeo_gfx_decrypt(uint8_t* rom, uint32_t rom_size, int extra_xor)
+{
+ type0_t03 = kof99_type0_t03;
+ type0_t12 = kof99_type0_t12;
+ type1_t03 = kof99_type1_t03;
+ type1_t12 = kof99_type1_t12;
+ address_8_15_xor1 = kof99_address_8_15_xor1;
+ address_8_15_xor2 = kof99_address_8_15_xor2;
+ address_16_23_xor1 = kof99_address_16_23_xor1;
+ address_16_23_xor2 = kof99_address_16_23_xor2;
+ address_0_7_xor = kof99_address_0_7_xor;
+ neogeo_gfx_decrypt(rom, rom_size, extra_xor);
+}
+
+
+/* CMC50 protection chip */
+void cmc_prot_device::cmc50_neogeo_gfx_decrypt(uint8_t* rom, uint32_t rom_size, int extra_xor)
+{
+ type0_t03 = kof2000_type0_t03;
+ type0_t12 = kof2000_type0_t12;
+ type1_t03 = kof2000_type1_t03;
+ type1_t12 = kof2000_type1_t12;
+ address_8_15_xor1 = kof2000_address_8_15_xor1;
+ address_8_15_xor2 = kof2000_address_8_15_xor2;
+ address_16_23_xor1 = kof2000_address_16_23_xor1;
+ address_16_23_xor2 = kof2000_address_16_23_xor2;
+ address_0_7_xor = kof2000_address_0_7_xor;
+ neogeo_gfx_decrypt(rom, rom_size, extra_xor);
+}
+
+
+
+/***************************************************************************
+
+NeoGeo 'M' ROM encryption
+ CMC50 protection chip
+
+***************************************************************************/
+
+
+static const uint8_t m1_address_8_15_xor[256] =
+{
+ 0x0a, 0x72, 0xb7, 0xaf, 0x67, 0xde, 0x1d, 0xb1, 0x78, 0xc4, 0x4f, 0xb5, 0x4b, 0x18, 0x76, 0xdd,
+ 0x11, 0xe2, 0x36, 0xa1, 0x82, 0x03, 0x98, 0xa0, 0x10, 0x5f, 0x3f, 0xd6, 0x1f, 0x90, 0x6a, 0x0b,
+ 0x70, 0xe0, 0x64, 0xcb, 0x9f, 0x38, 0x8b, 0x53, 0x04, 0xca, 0xf8, 0xd0, 0x07, 0x68, 0x56, 0x32,
+ 0xae, 0x1c, 0x2e, 0x48, 0x63, 0x92, 0x9a, 0x9c, 0x44, 0x85, 0x41, 0x40, 0x09, 0xc0, 0xc8, 0xbf,
+ 0xea, 0xbb, 0xf7, 0x2d, 0x99, 0x21, 0xf6, 0xba, 0x15, 0xce, 0xab, 0xb0, 0x2a, 0x60, 0xbc, 0xf1,
+ 0xf0, 0x9e, 0xd5, 0x97, 0xd8, 0x4e, 0x14, 0x9d, 0x42, 0x4d, 0x2c, 0x5c, 0x2b, 0xa6, 0xe1, 0xa7,
+ 0xef, 0x25, 0x33, 0x7a, 0xeb, 0xe7, 0x1b, 0x6d, 0x4c, 0x52, 0x26, 0x62, 0xb6, 0x35, 0xbe, 0x80,
+ 0x01, 0xbd, 0xfd, 0x37, 0xf9, 0x47, 0x55, 0x71, 0xb4, 0xf2, 0xff, 0x27, 0xfa, 0x23, 0xc9, 0x83,
+ 0x17, 0x39, 0x13, 0x0d, 0xc7, 0x86, 0x16, 0xec, 0x49, 0x6f, 0xfe, 0x34, 0x05, 0x8f, 0x00, 0xe6,
+ 0xa4, 0xda, 0x7b, 0xc1, 0xf3, 0xf4, 0xd9, 0x75, 0x28, 0x66, 0x87, 0xa8, 0x45, 0x6c, 0x20, 0xe9,
+ 0x77, 0x93, 0x7e, 0x3c, 0x1e, 0x74, 0xf5, 0x8c, 0x3e, 0x94, 0xd4, 0xc2, 0x5a, 0x06, 0x0e, 0xe8,
+ 0x3d, 0xa9, 0xb2, 0xe3, 0xe4, 0x22, 0xcf, 0x24, 0x8e, 0x6b, 0x8a, 0x8d, 0x84, 0x4a, 0xd2, 0x91,
+ 0x88, 0x79, 0x57, 0xa5, 0x0f, 0xcd, 0xb9, 0xac, 0x3b, 0xaa, 0xb3, 0xd1, 0xee, 0x31, 0x81, 0x7c,
+ 0xd7, 0x89, 0xd3, 0x96, 0x43, 0xc5, 0xc6, 0xc3, 0x69, 0x7f, 0x46, 0xdf, 0x30, 0x5b, 0x6e, 0xe5,
+ 0x08, 0x95, 0x9b, 0xfb, 0xb8, 0x58, 0x0c, 0x61, 0x50, 0x5d, 0x3a, 0xa2, 0x29, 0x12, 0xfc, 0x51,
+ 0x7d, 0x1a, 0x02, 0x65, 0x54, 0x5e, 0x19, 0xcc, 0xdc, 0xdb, 0x73, 0xed, 0xad, 0x59, 0x2f, 0xa3,
+};
+
+static const uint8_t m1_address_0_7_xor[256] =
+{
+ 0xf4, 0xbc, 0x02, 0xf7, 0x2c, 0x3d, 0xe8, 0xd9, 0x50, 0x62, 0xec, 0xbd, 0x53, 0x73, 0x79, 0x61,
+ 0x00, 0x34, 0xcf, 0xa2, 0x63, 0x28, 0x90, 0xaf, 0x44, 0x3b, 0xc5, 0x8d, 0x3a, 0x46, 0x07, 0x70,
+ 0x66, 0xbe, 0xd8, 0x8b, 0xe9, 0xa0, 0x4b, 0x98, 0xdc, 0xdf, 0xe2, 0x16, 0x74, 0xf1, 0x37, 0xf5,
+ 0xb7, 0x21, 0x81, 0x01, 0x1c, 0x1b, 0x94, 0x36, 0x09, 0xa1, 0x4a, 0x91, 0x30, 0x92, 0x9b, 0x9a,
+ 0x29, 0xb1, 0x38, 0x4d, 0x55, 0xf2, 0x56, 0x18, 0x24, 0x47, 0x9d, 0x3f, 0x80, 0x1f, 0x22, 0xa4,
+ 0x11, 0x54, 0x84, 0x0d, 0x25, 0x48, 0xee, 0xc6, 0x59, 0x15, 0x03, 0x7a, 0xfd, 0x6c, 0xc3, 0x33,
+ 0x5b, 0xc4, 0x7b, 0x5a, 0x05, 0x7f, 0xa6, 0x40, 0xa9, 0x5d, 0x41, 0x8a, 0x96, 0x52, 0xd3, 0xf0,
+ 0xab, 0x72, 0x10, 0x88, 0x6f, 0x95, 0x7c, 0xa8, 0xcd, 0x9c, 0x5f, 0x32, 0xae, 0x85, 0x39, 0xac,
+ 0xe5, 0xd7, 0xfb, 0xd4, 0x08, 0x23, 0x19, 0x65, 0x6b, 0xa7, 0x93, 0xbb, 0x2b, 0xbf, 0xb8, 0x35,
+ 0xd0, 0x06, 0x26, 0x68, 0x3e, 0xdd, 0xb9, 0x69, 0x2a, 0xb2, 0xde, 0x87, 0x45, 0x58, 0xff, 0x3c,
+ 0x9e, 0x7d, 0xda, 0xed, 0x49, 0x8c, 0x14, 0x8e, 0x75, 0x2f, 0xe0, 0x6e, 0x78, 0x6d, 0x20, 0xd2,
+ 0xfa, 0x2d, 0x51, 0xcc, 0xc7, 0xe7, 0x1d, 0x27, 0x97, 0xfc, 0x31, 0xdb, 0xf8, 0x42, 0xe3, 0x99,
+ 0x5e, 0x83, 0x0e, 0xb4, 0x2e, 0xf6, 0xc0, 0x0c, 0x4c, 0x57, 0xb6, 0x64, 0x0a, 0x17, 0xa3, 0xc1,
+ 0x77, 0x12, 0xfe, 0xe6, 0x8f, 0x13, 0x71, 0xe4, 0xf9, 0xad, 0x9f, 0xce, 0xd5, 0x89, 0x7e, 0x0f,
+ 0xc2, 0x86, 0xf3, 0x67, 0xba, 0x60, 0x43, 0xc9, 0x04, 0xb3, 0xb0, 0x1e, 0xb5, 0xc8, 0xeb, 0xa5,
+ 0x76, 0xea, 0x5c, 0x82, 0x1a, 0x4f, 0xaa, 0xca, 0xe1, 0x0b, 0x4e, 0xcb, 0x6a, 0xef, 0xd1, 0xd6,
+};
+
+
+/* The CMC50 hardware does a checksum of the first 64kb of the M1 rom,
+ ,and uses this checksum as the basis of the key with which to decrypt
+ the rom */
+
+uint16_t cmc_prot_device::generate_cs16(uint8_t *rom, int size)
+{
+ uint16_t cs16 = 0;
+ for (int i=0; i<size; i++ )
+ cs16 += rom[i];
+
+ return cs16;
+}
+
+
+int cmc_prot_device::m1_address_scramble(int address, uint16_t key)
+{
+ const int p1[8][16] = {
+ {15,14,10,7,1,2,3,8,0,12,11,13,6,9,5,4},
+ {7,1,8,11,15,9,2,3,5,13,4,14,10,0,6,12},
+ {8,6,14,3,10,7,15,1,4,0,2,5,13,11,12,9},
+ {2,8,15,9,3,4,11,7,13,6,0,10,1,12,14,5},
+ {1,13,6,15,14,3,8,10,9,4,7,12,5,2,0,11},
+ {11,15,3,4,7,0,9,2,6,14,12,1,8,5,10,13},
+ {10,5,13,8,6,15,1,14,11,9,3,0,12,7,4,2},
+ {9,3,7,0,2,12,4,11,14,10,5,8,15,13,1,6},
+ };
+
+ int block = (address>>16)&7;
+ int aux = address&0xffff;
+
+ aux ^= BITSWAP16(key,12,0,2,4,8,15,7,13,10,1,3,6,11,9,14,5);
+ aux = BITSWAP16(aux,
+ p1[block][15],p1[block][14],p1[block][13],p1[block][12],
+ p1[block][11],p1[block][10],p1[block][9],p1[block][8],
+ p1[block][7],p1[block][6],p1[block][5],p1[block][4],
+ p1[block][3],p1[block][2],p1[block][1],p1[block][0]);
+ aux ^= m1_address_0_7_xor[(aux>>8)&0xff];
+ aux ^= m1_address_8_15_xor[aux&0xff]<<8;
+ aux = BITSWAP16(aux, 7,15,14,6,5,13,12,4,11,3,10,2,9,1,8,0);
+
+ return (block<<16)|aux;
+}
+
+
+void cmc_prot_device::neogeo_cmc50_m1_decrypt(uint8_t* romcrypt, uint32_t romcrypt_size, uint8_t* romaudio, uint32_t romaudio_size)
+{
+ uint8_t* rom = romcrypt;
+ size_t rom_size = 0x80000;
+ uint8_t* rom2 = romaudio;
+
+ std::vector<uint8_t> buffer(rom_size);
+
+ uint32_t i;
+
+ uint16_t key=generate_cs16(rom,0x10000);
+
+ //printf("key %04x\n",key);
+
+ for (i=0; i<rom_size; i++)
+ buffer[i] = rom[m1_address_scramble(i, key)];
+
+ memcpy(rom,&buffer[0],rom_size);
+ memcpy(rom2,rom,0x10000);
+ memcpy(rom2+0x10000,rom,0x80000);
+
+#if 0
+ {
+ FILE *fp;
+ const char *gamename = machine().system().name;
+ char filename[256];
+ sprintf(filename, "%s_m1.dump", gamename);
+
+ fp=fopen(filename, "w+b");
+ if (fp)
+ {
+ fwrite(rom, rom_size, 1, fp);
+ fclose(fp);
+ }
+ }
+#endif
+
+
+#if 0
+ {
+ FILE *fp;
+ const char *gamename = machine().system().name;
+ char filename[256];
+ sprintf(filename, "%s_m1extra.dump", gamename);
+
+ fp=fopen(filename, "w+b");
+ if (fp)
+ {
+ fwrite(&rom[0xf800], 0x800, 1, fp);
+ fclose(fp);
+ }
+ }
+#endif
+}
+
+/***********************************************************************************************************************************/
+
+const device_type FATFURY2_PROT = device_creator<fatfury2_prot_device>;
+
+
+fatfury2_prot_device::fatfury2_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : device_t(mconfig, FATFURY2_PROT, "NeoGeo Protection (Fatal Fury 2)", tag, owner, clock, "fatfury2_prot", __FILE__)
+ , m_bankdev(nullptr)
+ , m_fatfury2_prot_data(0)
+ { }
+
+
+void fatfury2_prot_device::device_start()
+{
+ save_item(NAME(m_fatfury2_prot_data));
+}
+
+void fatfury2_prot_device::device_reset() { }
+
+
+
+/************************ Fatal Fury 2 *************************/
+
+READ16_MEMBER( fatfury2_prot_device::fatfury2_protection_16_r )
+{
+ uint16_t res = m_fatfury2_prot_data >> 24;
+
+ switch (offset)
+ {
+ case 0x55550/2:
+ case 0xffff0/2:
+ case 0x00000/2:
+ case 0xff000/2:
+ case 0x36000/2:
+ case 0x36008/2:
+ return res;
+
+ case 0x36004/2:
+ case 0x3600c/2:
+ return ((res & 0xf0) >> 4) | ((res & 0x0f) << 4);
+
+ default:
+ logerror("unknown protection read at pc %06x, offset %08x\n", space.device().safe_pc(), offset << 1);
+ return 0;
+ }
+}
+
+
+WRITE16_MEMBER( fatfury2_prot_device::fatfury2_protection_16_w )
+{
+ switch (offset)
+ {
+ case 0x11112/2: /* data == 0x1111; expects 0xff000000 back */
+ m_fatfury2_prot_data = 0xff000000;
+ break;
+
+ case 0x33332/2: /* data == 0x3333; expects 0x0000ffff back */
+ m_fatfury2_prot_data = 0x0000ffff;
+ break;
+
+ case 0x44442/2: /* data == 0x4444; expects 0x00ff0000 back */
+ m_fatfury2_prot_data = 0x00ff0000;
+ break;
+
+ case 0x55552/2: /* data == 0x5555; read back from 55550, ffff0, 00000, ff000 */
+ m_fatfury2_prot_data = 0xff00ff00;
+ break;
+
+ case 0x56782/2: /* data == 0x1234; read back from 36000 *or* 36004 */
+ m_fatfury2_prot_data = 0xf05a3601;
+ break;
+
+ case 0x42812/2: /* data == 0x1824; read back from 36008 *or* 3600c */
+ m_fatfury2_prot_data = 0x81422418;
+ break;
+
+ case 0x55550/2:
+ case 0xffff0/2:
+ case 0xff000/2:
+ case 0x36000/2:
+ case 0x36004/2:
+ case 0x36008/2:
+ case 0x3600c/2:
+ m_fatfury2_prot_data <<= 8;
+ break;
+
+ default:
+ logerror("unknown protection write at pc %06x, offset %08x, data %02x\n", space.device().safe_pc(), offset, data);
+ break;
+ }
+}
+
+
+void fatfury2_prot_device::fatfury2_install_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev)
+{
+ /* the protection involves reading and writing addresses in the */
+ /* 0x2xxxxx range. There are several checks all around the code. */
+ maincpu->space(AS_PROGRAM).install_readwrite_handler(0x200000, 0x2fffff,
+ read16_delegate(FUNC(fatfury2_prot_device::fatfury2_protection_16_r),this),
+ write16_delegate(FUNC(fatfury2_prot_device::fatfury2_protection_16_w),this));
+
+ m_bankdev = bankdev;
+ m_fatfury2_prot_data = 0;
+
+}
+
+/***********************************************************************************************************************************/
+
+
+const device_type KOF2002_PROT = device_creator<kof2002_prot_device>;
+
+
+kof2002_prot_device::kof2002_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : device_t(mconfig, KOF2002_PROT, "NeoGeo Protection (KOF2002)", tag, owner, clock, "kof2002_prot", __FILE__)
+ { }
+
+
+void kof2002_prot_device::device_start() { }
+
+void kof2002_prot_device::device_reset() { }
+
+
+/* kof2002, matrim, samsho5, samsh5sp have some simple block swapping */
+void kof2002_prot_device::kof2002_decrypt_68k(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ static const int sec[]={0x100000,0x280000,0x300000,0x180000,0x000000,0x380000,0x200000,0x080000};
+ uint8_t *src = cpurom+0x100000;
+ std::vector<uint8_t> dst(0x400000);
+ memcpy( &dst[0], src, 0x400000 );
+ for( uint8_t i=0; i<8; ++i )
+ memcpy( src+i*0x80000, &dst[sec[i]], 0x80000 );
+}
+
+
+void kof2002_prot_device::matrim_decrypt_68k(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ static const int sec[]={0x100000,0x280000,0x300000,0x180000,0x000000,0x380000,0x200000,0x080000};
+ uint8_t *src = cpurom+0x100000;
+ std::vector<uint8_t> dst(0x400000);
+ memcpy( &dst[0], src, 0x400000);
+ for( uint8_t i=0; i<8; ++i )
+ memcpy( src+i*0x80000, &dst[sec[i]], 0x80000 );
+}
+
+
+void kof2002_prot_device::samsho5_decrypt_68k(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ static const int sec[]={0x000000,0x080000,0x700000,0x680000,0x500000,0x180000,0x200000,0x480000,0x300000,0x780000,0x600000,0x280000,0x100000,0x580000,0x400000,0x380000};
+ uint8_t *src = cpurom;
+ std::vector<uint8_t> dst(0x800000);
+ memcpy( &dst[0], src, 0x800000 );
+ for( uint8_t i=0; i<16; ++i )
+ memcpy( src+i*0x80000, &dst[sec[i]], 0x80000 );
+}
+
+
+void kof2002_prot_device::samsh5sp_decrypt_68k(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ static const int sec[]={0x000000,0x080000,0x500000,0x480000,0x600000,0x580000,0x700000,0x280000,0x100000,0x680000,0x400000,0x780000,0x200000,0x380000,0x300000,0x180000};
+ uint8_t *src = cpurom;
+ std::vector<uint8_t> dst(0x800000);
+ memcpy( &dst[0], src, 0x800000 );
+ for( uint8_t i=0; i<16; ++i )
+ memcpy( src+i*0x80000, &dst[sec[i]], 0x80000 );
+}
+
+/***********************************************************************************************************************************/
+
+const device_type KOF98_PROT = device_creator<kof98_prot_device>;
+
+
+kof98_prot_device::kof98_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : device_t(mconfig, KOF98_PROT, "NeoGeo Protection (KOF98)", tag, owner, clock, "kof98_prot", __FILE__)
+ , kof98_prot_state(0)
+ { }
+
+
+void kof98_prot_device::device_start() { }
+
+void kof98_prot_device::device_reset()
+{
+ kof98_prot_state = 0;
+}
+
+
+/* Kof98 uses an early encryption, quite different from the others */
+void kof98_prot_device::kof98_decrypt_68k(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ uint8_t *src = cpurom;
+ std::vector<uint8_t> dst(0x200000);
+ int i, j, k;
+ static const uint32_t sec[]={0x000000,0x100000,0x000004,0x100004,0x10000a,0x00000a,0x10000e,0x00000e};
+ static const uint32_t pos[]={0x000,0x004,0x00a,0x00e};
+
+ memcpy( &dst[0], src, 0x200000);
+ for( i=0x800; i<0x100000; i+=0x200 )
+ {
+ for( j=0; j<0x100; j+=0x10 )
+ {
+ for( k=0; k<16; k+=2)
+ {
+ memcpy( &src[i+j+k], &dst[ i+j+sec[k/2]+0x100 ], 2 );
+ memcpy( &src[i+j+k+0x100], &dst[ i+j+sec[k/2] ], 2 );
+ }
+ if( i >= 0x080000 && i < 0x0c0000)
+ {
+ for( k=0; k<4; k++ )
+ {
+ memcpy( &src[i+j+pos[k]], &dst[i+j+pos[k]], 2 );
+ memcpy( &src[i+j+pos[k]+0x100], &dst[i+j+pos[k]+0x100], 2 );
+ }
+ }
+ else if( i >= 0x0c0000 )
+ {
+ for( k=0; k<4; k++ )
+ {
+ memcpy( &src[i+j+pos[k]], &dst[i+j+pos[k]+0x100], 2 );
+ memcpy( &src[i+j+pos[k]+0x100], &dst[i+j+pos[k]], 2 );
+ }
+ }
+ }
+ memcpy( &src[i+0x000000], &dst[i+0x000000], 2 );
+ memcpy( &src[i+0x000002], &dst[i+0x100000], 2 );
+ memcpy( &src[i+0x000100], &dst[i+0x000100], 2 );
+ memcpy( &src[i+0x000102], &dst[i+0x100100], 2 );
+ }
+ memmove( &src[0x100000], &src[0x200000], 0x400000 );
+
+ uint16_t* mem16 = (uint16_t*)cpurom;
+ m_default_rom[0] = mem16[0x100 / 2];
+ m_default_rom[1] = mem16[0x102 / 2];
+}
+
+
+/************************ King of Fighters 98*******************
+ The encrypted set has a rom overlay feature, checked at
+ various points in the game.
+ Boards used: NEO-MVS PROGSF1 (1998.6.17) / NEO-MVS PROGSF1E (1998.6.18)
+ The boards have an ALTERA chip (EPM7128SQC100-15) which is tied to 242-P1
+***************************************************************/
+
+READ16_MEMBER(kof98_prot_device::kof98_prot_r)
+{
+ if (kof98_prot_state == 1)
+ {
+ if (!offset)
+ return 0x00c2;
+ else
+ return 0x00fd;
+ }
+
+ if (kof98_prot_state == 2)
+ {
+ if (!offset)
+ return 0x4e45;
+ else
+ return 0x4f2d;
+ }
+
+ if (!offset)
+ return m_default_rom[0];
+
+ return m_default_rom[1];
+}
+
+WRITE16_MEMBER( kof98_prot_device::kof98_prot_w )
+{
+ /* info from razoola */
+ switch (data)
+ {
+ case 0x0090:
+ logerror ("%06x kof98 - protection 0x0090x\n", space.device().safe_pc());
+ kof98_prot_state = 1;
+ break;
+
+ case 0x00f0:
+ logerror ("%06x kof98 - protection 0x00f0x\n", space.device().safe_pc());
+ kof98_prot_state = 2;
+ break;
+
+ default: // 00aa is written, but not needed?
+ logerror ("%06x kof98 - unknown protection write %04x\n", space.device().safe_pc(), data);
+ break;
+ }
+}
+
+
+void kof98_prot_device::install_kof98_protection(cpu_device* maincpu)
+{
+ /* when 0x20aaaa contains 0x0090 (word) then 0x100 (normally the neogeo header) should return 0x00c200fd worked out using real hw */
+ maincpu->space(AS_PROGRAM).install_read_handler(0x00100, 0x00103, read16_delegate(FUNC(kof98_prot_device::kof98_prot_r),this));
+ maincpu->space(AS_PROGRAM).install_write_handler(0x20aaaa, 0x20aaab, write16_delegate(FUNC(kof98_prot_device::kof98_prot_w),this));
+}
+
+/***********************************************************************************************************************************/
+
+
+const device_type MSLUGX_PROT = device_creator<mslugx_prot_device>;
+
+
+mslugx_prot_device::mslugx_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : device_t(mconfig, MSLUGX_PROT, "NeoGeo Protection (Metal Slug X)", tag, owner, clock, "mslugx_prot", __FILE__)
+ , m_mslugx_counter(0)
+ , m_mslugx_command(0)
+ { }
+
+
+void mslugx_prot_device::device_start()
+{
+ save_item(NAME(m_mslugx_command));
+ save_item(NAME(m_mslugx_counter));
+}
+
+void mslugx_prot_device::device_reset() { }
+
+
+
+
+/************************ Metal Slug X *************************
+ Board used: NEO-MVS PROGEOP (1999.2.2)
+ The board has an ALTERA chip (EPM7128SQC100-15) which is tied to 250-P1
+ Also found is a QFP144 chip labeled with 0103 - function unknown
+***************************************************************/
+
+WRITE16_MEMBER( mslugx_prot_device::mslugx_protection_16_w )
+{
+ switch (offset)
+ {
+ case 0x0/2: // start new read?
+ m_mslugx_command = 0;
+ break;
+
+ case 0x2/2: // command? These are pulsed with data and then 0
+ case 0x4/2:
+ m_mslugx_command |= data;
+ break;
+
+ case 0x6/2: // finished?
+ break;
+
+ case 0xa/2: // init?
+ m_mslugx_counter = 0;
+ m_mslugx_command = 0;
+ break;
+
+ default:
+ logerror("unknown protection write at pc %06x, offset %08x, data %02x\n", space.device().safe_pc(), offset << 1, data);
+ break;
+ }
+}
+
+
+READ16_MEMBER( mslugx_prot_device::mslugx_protection_16_r )
+{
+ uint16_t res = 0;
+
+ switch (m_mslugx_command)
+ {
+ case 0x0001: { // $3bdc(?) and $3c30 (Register D7)
+ res = (space.read_byte(0xdedd2 + ((m_mslugx_counter >> 3) & 0xfff)) >> (~m_mslugx_counter & 0x07)) & 1;
+ m_mslugx_counter++;
+ }
+ break;
+
+ case 0x0fff: { // All other accesses (Register D2)
+ int32_t select = space.read_word(0x10f00a) - 1; // How should this be calculated?
+ res = (space.read_byte(0xdedd2 + ((select >> 3) & 0x0fff)) >> (~select & 0x07)) & 1;
+ }
+ break;
+
+ default:
+ logerror("unknown protection read at pc %06x, offset %08x\n", space.device().safe_pc(), offset << 1);
+ break;
+ }
+
+ return res;
+}
+
+
+void mslugx_prot_device::mslugx_install_protection(cpu_device* maincpu)
+{
+ maincpu->space(AS_PROGRAM).install_readwrite_handler(0x2fffe0, 0x2fffef,
+ read16_delegate(FUNC(mslugx_prot_device::mslugx_protection_16_r),this),
+ write16_delegate(FUNC(mslugx_prot_device::mslugx_protection_16_w),this));
+}
+
+/***********************************************************************************************************************************/
+
+
+const device_type PCM2_PROT = device_creator<pcm2_prot_device>;
+
+
+pcm2_prot_device::pcm2_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : device_t(mconfig, PCM2_PROT, "NeoGeo Protection (NEOPCM2)", tag, owner, clock, "pcm2_prot", __FILE__)
+ { }
+
+
+void pcm2_prot_device::device_start() { }
+
+void pcm2_prot_device::device_reset() { }
+
+/***************************************************************************
+
+NeoGeo 'V' (PCM) ROM encryption
+ NEOPCM2 chip
+
+***************************************************************************/
+
+/* Neo-Pcm2 Drivers for Encrypted V Roms */
+void pcm2_prot_device::neo_pcm2_snk_1999(uint8_t* ymrom, uint32_t ymsize, int value)
+{ /* thanks to Elsemi for the NEO-PCM2 info */
+ uint16_t *rom = (uint16_t *)ymrom;
+ int size = ymsize;
+ int i, j;
+
+ if (rom)
+ { /* swap address lines on the whole ROMs */
+ std::vector<uint16_t> buffer(value / 2);
+
+ for( i = 0; i < size / 2; i += ( value / 2 ) )
+ {
+ memcpy( &buffer[0], &rom[ i ], value );
+ for( j = 0; j < (value / 2); j++ )
+ rom[ i + j ] = buffer[ j ^ (value/4) ];
+ }
+ }
+}
+
+
+/* the later PCM2 games have additional scrambling */
+void pcm2_prot_device::neo_pcm2_swap(uint8_t* ymrom, uint32_t ymsize, int value)
+{
+ static const uint32_t addrs[7][2]={
+ {0x000000,0xa5000},
+ {0xffce20,0x01000},
+ {0xfe2cf6,0x4e001},
+ {0xffac28,0xc2000},
+ {0xfeb2c0,0x0a000},
+ {0xff14ea,0xa7001},
+ {0xffb440,0x02000}};
+ static const uint8_t xordata[7][8]={
+ {0xf9,0xe0,0x5d,0xf3,0xea,0x92,0xbe,0xef},
+ {0xc4,0x83,0xa8,0x5f,0x21,0x27,0x64,0xaf},
+ {0xc3,0xfd,0x81,0xac,0x6d,0xe7,0xbf,0x9e},
+ {0xc3,0xfd,0x81,0xac,0x6d,0xe7,0xbf,0x9e},
+ {0xcb,0x29,0x7d,0x43,0xd2,0x3a,0xc2,0xb4},
+ {0x4b,0xa4,0x63,0x46,0xf0,0x91,0xea,0x62},
+ {0x4b,0xa4,0x63,0x46,0xf0,0x91,0xea,0x62}};
+
+ std::vector<uint8_t> buf(0x1000000);
+ int i, j, d;
+ uint8_t* src = ymrom;
+ memcpy(&buf[0], src, 0x1000000);
+ for (i=0; i<0x1000000; i++)
+ {
+ j = BITSWAP24(i,23,22,21,20,19,18,17,0,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,16);
+ j ^= addrs[value][1];
+ d=((i + addrs[value][0]) & 0xffffff);
+ src[j] = buf[d] ^ xordata[value][j & 0x7];
+ }
+}
+
+/***********************************************************************************************************************************/
+
+
+const device_type PVC_PROT = device_creator<pvc_prot_device>;
+
+
+pvc_prot_device::pvc_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : device_t(mconfig, PVC_PROT, "NeoGeo Protection (PVC)", tag, owner, clock, "pvc_prot", __FILE__)
+ , m_bankdev(nullptr)
+ { }
+
+
+void pvc_prot_device::device_start()
+{
+ save_item(NAME(m_cartridge_ram));
+}
+
+void pvc_prot_device::device_reset() { }
+
+
+
+
+/************************ PVC Protection ***********************
+ mslug5, svcchaos, kof2003
+***************************************************************/
+
+void pvc_prot_device::pvc_write_unpack_color()
+{
+ uint16_t pen = m_cartridge_ram[0xff0];
+
+ uint8_t b = ((pen & 0x000f) << 1) | ((pen & 0x1000) >> 12);
+ uint8_t g = ((pen & 0x00f0) >> 3) | ((pen & 0x2000) >> 13);
+ uint8_t r = ((pen & 0x0f00) >> 7) | ((pen & 0x4000) >> 14);
+ uint8_t s = (pen & 0x8000) >> 15;
+
+ m_cartridge_ram[0xff1] = (g << 8) | b;
+ m_cartridge_ram[0xff2] = (s << 8) | r;
+}
+
+
+void pvc_prot_device::pvc_write_pack_color()
+{
+ uint16_t gb = m_cartridge_ram[0xff4];
+ uint16_t sr = m_cartridge_ram[0xff5];
+
+ m_cartridge_ram[0xff6] = ((gb & 0x001e) >> 1) | ((gb & 0x1e00) >> 5) | ((sr & 0x001e) << 7) |
+ ((gb & 0x0001) << 12) | ((gb & 0x0100) << 5) | ((sr & 0x0001) << 14) | ((sr & 0x0100) << 7);
+}
+
+
+void pvc_prot_device::pvc_write_bankswitch( address_space &space )
+{
+ uint32_t bankaddress = ((m_cartridge_ram[0xff8] >> 8)|(m_cartridge_ram[0xff9] << 8));
+ m_cartridge_ram[0xff8] = (m_cartridge_ram[0xff8] & 0xfe00) | 0x00a0;
+ m_cartridge_ram[0xff9] &= 0x7fff;
+ m_bankdev->neogeo_set_main_cpu_bank_address(bankaddress + 0x100000);
+}
+
+
+READ16_MEMBER( pvc_prot_device::pvc_prot_r )
+{
+ return m_cartridge_ram[offset];
+}
+
+
+WRITE16_MEMBER( pvc_prot_device::pvc_prot_w )
+{
+ COMBINE_DATA(&m_cartridge_ram[offset] );
+ if (offset == 0xff0)
+ pvc_write_unpack_color();
+ else
+ if(offset >= 0xff4 && offset <= 0xff5)
+ pvc_write_pack_color();
+ else
+ if(offset >= 0xff8)
+ pvc_write_bankswitch(space);
+}
+
+
+void pvc_prot_device::install_pvc_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev)
+{
+ m_bankdev = bankdev;
+ maincpu->space(AS_PROGRAM).install_readwrite_handler(0x2fe000, 0x2fffff,
+ read16_delegate(FUNC(pvc_prot_device::pvc_prot_r),this),
+ write16_delegate(FUNC(pvc_prot_device::pvc_prot_w),this));
+}
+
+
+
+
+/* kf2k3pcb, kof2003, kof2003h, mslug5 and svc have updated P rom scramble */
+void pvc_prot_device::mslug5_decrypt_68k(uint8_t* rom, uint32_t size)
+{
+ static const uint8_t xor1[ 0x20 ] = { 0xc2, 0x4b, 0x74, 0xfd, 0x0b, 0x34, 0xeb, 0xd7, 0x10, 0x6d, 0xf9, 0xce, 0x5d, 0xd5, 0x61, 0x29, 0xf5, 0xbe, 0x0d, 0x82, 0x72, 0x45, 0x0f, 0x24, 0xb3, 0x34, 0x1b, 0x99, 0xea, 0x09, 0xf3, 0x03 };
+ static const uint8_t xor2[ 0x20 ] = { 0x36, 0x09, 0xb0, 0x64, 0x95, 0x0f, 0x90, 0x42, 0x6e, 0x0f, 0x30, 0xf6, 0xe5, 0x08, 0x30, 0x64, 0x08, 0x04, 0x00, 0x2f, 0x72, 0x09, 0xa0, 0x13, 0xc9, 0x0b, 0xa0, 0x3e, 0xc2, 0x00, 0x40, 0x2b };
+ int i, ofst, rom_size = 0x800000;
+ std::vector<uint8_t> buf( rom_size );
+
+ for( i = 0; i < 0x100000; i++ )
+ rom[ i ] ^= xor1[ (BYTE_XOR_LE(i) % 0x20) ];
+
+ for( i = 0x100000; i < 0x800000; i++ )
+ rom[ i ] ^= xor2[ (BYTE_XOR_LE(i) % 0x20) ];
+
+ for( i = 0x100000; i < 0x0800000; i += 4 )
+ {
+ uint16_t rom16;
+ rom16 = rom[BYTE_XOR_LE(i+1)] | rom[BYTE_XOR_LE(i+2)]<<8;
+ rom16 = BITSWAP16( rom16, 15, 14, 13, 12, 10, 11, 8, 9, 6, 7, 4, 5, 3, 2, 1, 0 );
+ rom[BYTE_XOR_LE(i+1)] = rom16&0xff;
+ rom[BYTE_XOR_LE(i+2)] = rom16>>8;
+ }
+
+ memcpy( &buf[0], rom, rom_size );
+
+ for( i = 0; i < 0x0100000 / 0x10000; i++ )
+ {
+ ofst = (i & 0xf0) + BITSWAP8( (i & 0x0f), 7, 6, 5, 4, 1, 0, 3, 2 );
+ memcpy( &rom[ i * 0x10000 ], &buf[ ofst * 0x10000 ], 0x10000 );
+ }
+
+ for( i = 0x100000; i < 0x800000; i += 0x100 )
+ {
+ ofst = (i & 0xf000ff) + ((i & 0x000f00) ^ 0x00700) + (BITSWAP8( ((i & 0x0ff000) >> 12), 5, 4, 7, 6, 1, 0, 3, 2 ) << 12);
+ memcpy( &rom[ i ], &buf[ ofst ], 0x100 );
+ }
+
+ memcpy( &buf[0], rom, rom_size );
+ memcpy( &rom[ 0x100000 ], &buf[ 0x700000 ], 0x100000 );
+ memcpy( &rom[ 0x200000 ], &buf[ 0x100000 ], 0x600000 );
+}
+
+
+void pvc_prot_device::svc_px_decrypt(uint8_t* rom, uint32_t size)
+{
+ static const uint8_t xor1[ 0x20 ] = { 0x3b, 0x6a, 0xf7, 0xb7, 0xe8, 0xa9, 0x20, 0x99, 0x9f, 0x39, 0x34, 0x0c, 0xc3, 0x9a, 0xa5, 0xc8,
+ 0xb8, 0x18, 0xce, 0x56, 0x94, 0x44, 0xe3, 0x7a, 0xf7, 0xdd, 0x42, 0xf0, 0x18, 0x60, 0x92, 0x9f };
+ static const uint8_t xor2[ 0x20 ] = { 0x69, 0x0b, 0x60, 0xd6, 0x4f, 0x01, 0x40, 0x1a, 0x9f, 0x0b, 0xf0, 0x75, 0x58, 0x0e, 0x60, 0xb4,
+ 0x14, 0x04, 0x20, 0xe4, 0xb9, 0x0d, 0x10, 0x89, 0xeb, 0x07, 0x30, 0x90, 0x50, 0x0e, 0x20, 0x26 };
+ int i, ofst, rom_size = 0x800000;
+ std::vector<uint8_t> buf( rom_size );
+
+ for( i = 0; i < 0x100000; i++ )
+ rom[ i ] ^= xor1[ (BYTE_XOR_LE(i) % 0x20) ];
+
+ for( i = 0x100000; i < 0x800000; i++ )
+ rom[ i ] ^= xor2[ (BYTE_XOR_LE(i) % 0x20) ];
+
+ for( i = 0x100000; i < 0x0800000; i += 4 )
+ {
+ uint16_t rom16;
+ rom16 = rom[BYTE_XOR_LE(i+1)] | rom[BYTE_XOR_LE(i+2)]<<8;
+ rom16 = BITSWAP16( rom16, 15, 14, 13, 12, 10, 11, 8, 9, 6, 7, 4, 5, 3, 2, 1, 0 );
+ rom[BYTE_XOR_LE(i+1)] = rom16&0xff;
+ rom[BYTE_XOR_LE(i+2)] = rom16>>8;
+ }
+
+ memcpy( &buf[0], rom, rom_size );
+
+ for( i = 0; i < 0x0100000 / 0x10000; i++ )
+ {
+ ofst = (i & 0xf0) + BITSWAP8( (i & 0x0f), 7, 6, 5, 4, 2, 3, 0, 1 );
+ memcpy( &rom[ i * 0x10000 ], &buf[ ofst * 0x10000 ], 0x10000 );
+ }
+
+ for( i = 0x100000; i < 0x800000; i += 0x100 )
+ {
+ ofst = (i & 0xf000ff) + ((i & 0x000f00) ^ 0x00a00) + (BITSWAP8( ((i & 0x0ff000) >> 12), 4, 5, 6, 7, 1, 0, 3, 2 ) << 12);
+ memcpy( &rom[ i ], &buf[ ofst ], 0x100 );
+ }
+
+ memcpy( &buf[0], rom, rom_size );
+ memcpy( &rom[ 0x100000 ], &buf[ 0x700000 ], 0x100000 );
+ memcpy( &rom[ 0x200000 ], &buf[ 0x100000 ], 0x600000 );
+}
+
+
+void pvc_prot_device::kf2k3pcb_decrypt_68k(uint8_t* rom, uint32_t size)
+{
+ static const uint8_t xor2[ 0x20 ] = { 0xb4, 0x0f, 0x40, 0x6c, 0x38, 0x07, 0xd0, 0x3f, 0x53, 0x08, 0x80, 0xaa, 0xbe, 0x07, 0xc0, 0xfa,
+ 0xd0, 0x08, 0x10, 0xd2, 0xf1, 0x03, 0x70, 0x7e, 0x87, 0x0b, 0x40, 0xf6, 0x2a, 0x0a, 0xe0, 0xf9 };
+ int i, ofst, rom_size = 0x900000;
+ std::vector<uint8_t> buf( rom_size );
+
+ for (i = 0; i < 0x100000; i++)
+ rom[ 0x800000 + i ] ^= rom[ 0x100002 | i ];
+
+ for( i = 0x100000; i < 0x800000; i++ )
+ rom[ i ] ^= xor2[ (BYTE_XOR_LE(i) % 0x20) ];
+
+ for( i = 0x100000; i < 0x800000; i += 4 )
+ {
+ uint16_t rom16;
+ rom16 = rom[BYTE_XOR_LE(i+1)] | rom[BYTE_XOR_LE(i+2)]<<8;
+ rom16 = BITSWAP16( rom16, 15, 14, 13, 12, 4, 5, 6, 7, 8, 9, 10, 11, 3, 2, 1, 0 );
+ rom[BYTE_XOR_LE(i+1)] = rom16&0xff;
+ rom[BYTE_XOR_LE(i+2)] = rom16>>8;
+ }
+
+ for( i = 0; i < 0x0100000 / 0x10000; i++ )
+ {
+ ofst = (i & 0xf0) + BITSWAP8( (i & 0x0f), 7, 6, 5, 4, 1, 0, 3, 2 );
+ memcpy( &buf[ i * 0x10000 ], &rom[ ofst * 0x10000 ], 0x10000 );
+ }
+
+ for( i = 0x100000; i < 0x900000; i += 0x100 )
+ {
+ ofst = (i & 0xf000ff) + ((i & 0x000f00) ^ 0x00300) + (BITSWAP8( ((i & 0x0ff000) >> 12), 4, 5, 6, 7, 1, 0, 3, 2 ) << 12);
+ memcpy( &buf[ i ], &rom[ ofst ], 0x100 );
+ }
+
+ memcpy (&rom[0x000000], &buf[0x000000], 0x100000);
+ memcpy (&rom[0x100000], &buf[0x800000], 0x100000);
+ memcpy (&rom[0x200000], &buf[0x100000], 0x700000);
+}
+
+
+void pvc_prot_device::kof2003_decrypt_68k(uint8_t* rom, uint32_t size)
+{
+ static const uint8_t xor1[0x20] = { 0x3b, 0x6a, 0xf7, 0xb7, 0xe8, 0xa9, 0x20, 0x99, 0x9f, 0x39, 0x34, 0x0c, 0xc3, 0x9a, 0xa5, 0xc8,
+ 0xb8, 0x18, 0xce, 0x56, 0x94, 0x44, 0xe3, 0x7a, 0xf7, 0xdd, 0x42, 0xf0, 0x18, 0x60, 0x92, 0x9f };
+ static const uint8_t xor2[0x20] = { 0x2f, 0x02, 0x60, 0xbb, 0x77, 0x01, 0x30, 0x08, 0xd8, 0x01, 0xa0, 0xdf, 0x37, 0x0a, 0xf0, 0x65,
+ 0x28, 0x03, 0xd0, 0x23, 0xd3, 0x03, 0x70, 0x42, 0xbb, 0x06, 0xf0, 0x28, 0xba, 0x0f, 0xf0, 0x7a };
+ int i, ofst, rom_size = 0x900000;
+ std::vector<uint8_t> buf( rom_size );
+
+ for (i = 0; i < 0x100000; i++)
+ rom[ 0x800000 + i ] ^= rom[ 0x100002 | i ];
+
+ for( i = 0; i < 0x100000; i++)
+ rom[ i ] ^= xor1[ (BYTE_XOR_LE(i) % 0x20) ];
+
+ for( i = 0x100000; i < 0x800000; i++)
+ rom[ i ] ^= xor2[ (BYTE_XOR_LE(i) % 0x20) ];
+
+ for( i = 0x100000; i < 0x800000; i += 4)
+ {
+ uint16_t rom16;
+ rom16 = rom[BYTE_XOR_LE(i+1)] | rom[BYTE_XOR_LE(i+2)]<<8;
+ rom16 = BITSWAP16( rom16, 15, 14, 13, 12, 5, 4, 7, 6, 9, 8, 11, 10, 3, 2, 1, 0 );
+ rom[BYTE_XOR_LE(i+1)] = rom16&0xff;
+ rom[BYTE_XOR_LE(i+2)] = rom16>>8;
+ }
+
+ for( i = 0; i < 0x0100000 / 0x10000; i++ )
+ {
+ ofst = (i & 0xf0) + BITSWAP8((i & 0x0f), 7, 6, 5, 4, 0, 1, 2, 3);
+ memcpy( &buf[ i * 0x10000 ], &rom[ ofst * 0x10000 ], 0x10000 );
+ }
+
+ for( i = 0x100000; i < 0x900000; i += 0x100)
+ {
+ ofst = (i & 0xf000ff) + ((i & 0x000f00) ^ 0x00800) + (BITSWAP8( ((i & 0x0ff000) >> 12), 4, 5, 6, 7, 1, 0, 3, 2 ) << 12);
+ memcpy( &buf[ i ], &rom[ ofst ], 0x100 );
+ }
+
+ memcpy (&rom[0x000000], &buf[0x000000], 0x100000);
+ memcpy (&rom[0x100000], &buf[0x800000], 0x100000);
+ memcpy (&rom[0x200000], &buf[0x100000], 0x700000);
+}
+
+
+void pvc_prot_device::kof2003h_decrypt_68k(uint8_t* rom, uint32_t size)
+{
+ static const uint8_t xor1[0x20] = { 0xc2, 0x4b, 0x74, 0xfd, 0x0b, 0x34, 0xeb, 0xd7, 0x10, 0x6d, 0xf9, 0xce, 0x5d, 0xd5, 0x61, 0x29,
+ 0xf5, 0xbe, 0x0d, 0x82, 0x72, 0x45, 0x0f, 0x24, 0xb3, 0x34, 0x1b, 0x99, 0xea, 0x09, 0xf3, 0x03 };
+ static const uint8_t xor2[0x20] = { 0x2b, 0x09, 0xd0, 0x7f, 0x51, 0x0b, 0x10, 0x4c, 0x5b, 0x07, 0x70, 0x9d, 0x3e, 0x0b, 0xb0, 0xb6,
+ 0x54, 0x09, 0xe0, 0xcc, 0x3d, 0x0d, 0x80, 0x99, 0x87, 0x03, 0x90, 0x82, 0xfe, 0x04, 0x20, 0x18 };
+ int i, ofst, rom_size = 0x900000;
+ std::vector<uint8_t> buf( rom_size );
+
+ for (i = 0; i < 0x100000; i++)
+ rom[ 0x800000 + i ] ^= rom[ 0x100002 | i ];
+
+ for( i = 0; i < 0x100000; i++)
+ rom[ i ] ^= xor1[ (BYTE_XOR_LE(i) % 0x20) ];
+
+ for( i = 0x100000; i < 0x800000; i++)
+ rom[ i ] ^= xor2[ (BYTE_XOR_LE(i) % 0x20) ];
+
+ for( i = 0x100000; i < 0x800000; i += 4)
+ {
+ uint16_t rom16;
+ rom16 = rom[BYTE_XOR_LE(i+1)] | rom[BYTE_XOR_LE(i+2)]<<8;
+ rom16 = BITSWAP16( rom16, 15, 14, 13, 12, 10, 11, 8, 9, 6, 7, 4, 5, 3, 2, 1, 0 );
+ rom[BYTE_XOR_LE(i+1)] = rom16&0xff;
+ rom[BYTE_XOR_LE(i+2)] = rom16>>8;
+ }
+
+ for( i = 0; i < 0x0100000 / 0x10000; i++ )
+ {
+ ofst = (i & 0xf0) + BITSWAP8((i & 0x0f), 7, 6, 5, 4, 1, 0, 3, 2);
+ memcpy( &buf[ i * 0x10000 ], &rom[ ofst * 0x10000 ], 0x10000 );
+ }
+
+ for( i = 0x100000; i < 0x900000; i += 0x100)
+ {
+ ofst = (i & 0xf000ff) + ((i & 0x000f00) ^ 0x00400) + (BITSWAP8( ((i & 0x0ff000) >> 12), 6, 7, 4, 5, 0, 1, 2, 3 ) << 12);
+ memcpy( &buf[ i ], &rom[ ofst ], 0x100 );
+ }
+
+ memcpy (&rom[0x000000], &buf[0x000000], 0x100000);
+ memcpy (&rom[0x100000], &buf[0x800000], 0x100000);
+ memcpy (&rom[0x200000], &buf[0x100000], 0x700000);
+}
+
+/***********************************************************************************************************************************/
+
+
+const device_type SBP_PROT = device_creator<sbp_prot_device>;
+
+
+sbp_prot_device::sbp_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : device_t(mconfig, SBP_PROT, "NeoGeo Protection (Super Bubble Pop)", tag, owner, clock, "sbp_prot", __FILE__)
+ , m_mainrom(nullptr)
+ { }
+
+void sbp_prot_device::device_start() { }
+void sbp_prot_device::device_reset() { }
+
+READ16_MEMBER( sbp_prot_device::sbp_lowerrom_r )
+{
+ uint16_t* rom = (uint16_t*)m_mainrom;
+ uint16_t origdata = rom[(offset+(0x200/2))];
+ uint16_t data = BITSWAP16(origdata, 11,10,9,8,15,14,13,12,3,2,1,0,7,6,5,4);
+ int realoffset = 0x200+(offset*2);
+ logerror("sbp_lowerrom_r offset %08x data %04x\n", realoffset, data );
+
+ // there is actually data in the rom here already, maybe we should just return it 'as is'
+ if (realoffset==0xd5e) return origdata;
+
+ return data;
+}
+
+WRITE16_MEMBER( sbp_prot_device::sbp_lowerrom_w )
+{
+ int realoffset = 0x200+(offset*2);
+
+ // the actual data written is just pulled from the end of the rom, and unused space
+ // maybe this is just some kind of watchdog for the protection device and it doesn't
+ // matter?
+ if (realoffset == 0x1080)
+ {
+ if (data==0x4e75)
+ return;
+ else
+ if (data==0xffff)
+ return;
+ }
+
+ printf("sbp_lowerrom_w offset %08x data %04x\n", realoffset, data );
+}
+
+
+void sbp_prot_device::sbp_install_protection(cpu_device* maincpu, uint8_t* cpurom, uint32_t cpurom_size)
+{
+ m_mainrom = cpurom;
+
+ // there seems to be a protection device living around here..
+ // if you nibble swap the data in the rom the game will boot
+ // there are also writes to 0x1080..
+ //
+ // other stuff going on as well tho, the main overlay is still missing, and p1 inputs don't work
+ maincpu->space(AS_PROGRAM).install_read_handler(0x00200, 0x001fff, read16_delegate(FUNC(sbp_prot_device::sbp_lowerrom_r), this));
+ maincpu->space(AS_PROGRAM).install_write_handler(0x00200, 0x001fff, write16_delegate(FUNC(sbp_prot_device::sbp_lowerrom_w), this));
+
+ /* the game code clears the text overlay used ingame immediately after writing it.. why? protection? sloppy code that the hw ignores? imperfect emulation? */
+ {
+ uint16_t* rom = (uint16_t*)cpurom;
+
+ rom[0x2a6f8 / 2] = 0x4e71;
+ rom[0x2a6fa / 2] = 0x4e71;
+ rom[0x2a6fc / 2] = 0x4e71;
+ }
+}
+
+/***********************************************************************************************************************************/
+
+
+const device_type SMA_PROT = device_creator<sma_prot_device>;
+
+
+sma_prot_device::sma_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : device_t(mconfig, SMA_PROT, "NeoGeo SMA Cartridge", tag, owner, clock, "sma_prot", __FILE__)
+ , m_bankdev(nullptr)
+ , m_sma_rng(0)
+ { }
+
+
+void sma_prot_device::device_start()
+{
+ save_item(NAME(m_sma_rng));
+}
+
+void sma_prot_device::device_reset()
+{
+ reset_sma_rng();
+}
+
+
+/************************ SMA Protection************************
+ thanks to Razoola
+***************************************************************/
+
+WRITE16_MEMBER( sma_prot_device::kof99_bankswitch_w )
+{
+ static const int bankoffset[64] =
+ {
+ 0x000000, 0x100000, 0x200000, 0x300000,
+ 0x3cc000, 0x4cc000, 0x3f2000, 0x4f2000,
+ 0x407800, 0x507800, 0x40d000, 0x50d000,
+ 0x417800, 0x517800, 0x420800, 0x520800,
+ 0x424800, 0x524800, 0x429000, 0x529000,
+ 0x42e800, 0x52e800, 0x431800, 0x531800,
+ 0x54d000, 0x551000, 0x567000, 0x592800,
+ 0x588800, 0x581800, 0x599800, 0x594800,
+ 0x598000, /* rest not used? */
+ };
+
+ /* unscramble bank number */
+ data = (((data>>14)&1)<<0) + (((data>> 6)&1)<<1) + (((data>> 8)&1)<<2) + (((data>>10)&1)<<3) + (((data>>12)&1)<<4) + (((data>> 5)&1)<<5);
+
+ int bankaddress = 0x100000 + bankoffset[data];
+ m_bankdev->neogeo_set_main_cpu_bank_address(bankaddress);
+}
+
+
+WRITE16_MEMBER( sma_prot_device::garou_bankswitch_w )
+{
+ /* thanks to Razoola and Mr K for the info */
+ static const int bankoffset[64] =
+ {
+ 0x000000, 0x100000, 0x200000, 0x300000, // 00
+ 0x280000, 0x380000, 0x2d0000, 0x3d0000, // 04
+ 0x2f0000, 0x3f0000, 0x400000, 0x500000, // 08
+ 0x420000, 0x520000, 0x440000, 0x540000, // 12
+ 0x498000, 0x598000, 0x4a0000, 0x5a0000, // 16
+ 0x4a8000, 0x5a8000, 0x4b0000, 0x5b0000, // 20
+ 0x4b8000, 0x5b8000, 0x4c0000, 0x5c0000, // 24
+ 0x4c8000, 0x5c8000, 0x4d0000, 0x5d0000, // 28
+ 0x458000, 0x558000, 0x460000, 0x560000, // 32
+ 0x468000, 0x568000, 0x470000, 0x570000, // 36
+ 0x478000, 0x578000, 0x480000, 0x580000, // 40
+ 0x488000, 0x588000, 0x490000, 0x590000, // 44
+ 0x5d0000, 0x5d8000, 0x5e0000, 0x5e8000, // 48
+ 0x5f0000, 0x5f8000, 0x600000, /* rest not used? */
+ };
+
+ /* unscramble bank number */
+ data = (((data>> 5)&1)<<0) + (((data>> 9)&1)<<1) + (((data>> 7)&1)<<2) + (((data>> 6)&1)<<3) + (((data>>14)&1)<<4) + (((data>>12)&1)<<5);
+
+ int bankaddress = 0x100000 + bankoffset[data];
+ m_bankdev->neogeo_set_main_cpu_bank_address(bankaddress);
+}
+
+
+WRITE16_MEMBER( sma_prot_device::garouh_bankswitch_w )
+{
+ /* thanks to Razoola and Mr K for the info */
+ static const int bankoffset[64] =
+ {
+ 0x000000, 0x100000, 0x200000, 0x300000, // 00
+ 0x280000, 0x380000, 0x2d0000, 0x3d0000, // 04
+ 0x2c8000, 0x3c8000, 0x400000, 0x500000, // 08
+ 0x420000, 0x520000, 0x440000, 0x540000, // 12
+ 0x598000, 0x698000, 0x5a0000, 0x6a0000, // 16
+ 0x5a8000, 0x6a8000, 0x5b0000, 0x6b0000, // 20
+ 0x5b8000, 0x6b8000, 0x5c0000, 0x6c0000, // 24
+ 0x5c8000, 0x6c8000, 0x5d0000, 0x6d0000, // 28
+ 0x458000, 0x558000, 0x460000, 0x560000, // 32
+ 0x468000, 0x568000, 0x470000, 0x570000, // 36
+ 0x478000, 0x578000, 0x480000, 0x580000, // 40
+ 0x488000, 0x588000, 0x490000, 0x590000, // 44
+ 0x5d8000, 0x6d8000, 0x5e0000, 0x6e0000, // 48
+ 0x5e8000, 0x6e8000, 0x6e8000, 0x000000, // 52
+ 0x000000, 0x000000, 0x000000, 0x000000, // 56
+ 0x000000, 0x000000, 0x000000, 0x000000, // 60
+ };
+
+ /* unscramble bank number */
+ data = (((data>> 4)&1)<<0) + (((data>> 8)&1)<<1) + (((data>>14)&1)<<2) + (((data>> 2)&1)<<3) + (((data>>11)&1)<<4) + (((data>>13)&1)<<5);
+
+ int bankaddress = 0x100000 + bankoffset[data];
+ m_bankdev->neogeo_set_main_cpu_bank_address(bankaddress);
+}
+
+
+WRITE16_MEMBER( sma_prot_device::mslug3_bankswitch_w )
+{
+ /* thanks to Razoola and Mr K for the info */
+ static const int bankoffset[64] =
+ {
+ 0x000000, 0x020000, 0x040000, 0x060000, // 00
+ 0x070000, 0x090000, 0x0b0000, 0x0d0000, // 04
+ 0x0e0000, 0x0f0000, 0x120000, 0x130000, // 08
+ 0x140000, 0x150000, 0x180000, 0x190000, // 12
+ 0x1a0000, 0x1b0000, 0x1e0000, 0x1f0000, // 16
+ 0x200000, 0x210000, 0x240000, 0x250000, // 20
+ 0x260000, 0x270000, 0x2a0000, 0x2b0000, // 24
+ 0x2c0000, 0x2d0000, 0x300000, 0x310000, // 28
+ 0x320000, 0x330000, 0x360000, 0x370000, // 32
+ 0x380000, 0x390000, 0x3c0000, 0x3d0000, // 36
+ 0x400000, 0x410000, 0x440000, 0x450000, // 40
+ 0x460000, 0x470000, 0x4a0000, 0x4b0000, // 44
+ 0x4c0000, /* rest not used? */
+ };
+
+ /* unscramble bank number */
+ data = (((data>>14)&1)<<0) + (((data>>12)&1)<<1) + (((data>>15)&1)<<2) + (((data>> 6)&1)<<3) + (((data>> 3)&1)<<4) + (((data>> 9)&1)<<5);
+
+ int bankaddress = 0x100000 + bankoffset[data];
+ m_bankdev->neogeo_set_main_cpu_bank_address(bankaddress);
+}
+
+
+WRITE16_MEMBER( sma_prot_device::kof2000_bankswitch_w )
+{
+ /* thanks to Razoola and Mr K for the info */
+ static const int bankoffset[64] =
+ {
+ 0x000000, 0x100000, 0x200000, 0x300000, // 00
+ 0x3f7800, 0x4f7800, 0x3ff800, 0x4ff800, // 04
+ 0x407800, 0x507800, 0x40f800, 0x50f800, // 08
+ 0x416800, 0x516800, 0x41d800, 0x51d800, // 12
+ 0x424000, 0x524000, 0x523800, 0x623800, // 16
+ 0x526000, 0x626000, 0x528000, 0x628000, // 20
+ 0x52a000, 0x62a000, 0x52b800, 0x62b800, // 24
+ 0x52d000, 0x62d000, 0x52e800, 0x62e800, // 28
+ 0x618000, 0x619000, 0x61a000, 0x61a800, // 32
+ };
+
+ /* unscramble bank number */
+ data = (((data>>15)&1)<<0) + (((data>>14)&1)<<1) + (((data>> 7)&1)<<2) + (((data>> 3)&1)<<3) + (((data>>10)&1)<<4) + (((data>> 5)&1)<<5);
+
+ int bankaddress = 0x100000 + bankoffset[data];
+ m_bankdev->neogeo_set_main_cpu_bank_address(bankaddress);
+}
+
+
+READ16_MEMBER( sma_prot_device::prot_9a37_r )
+{
+ return 0x9a37;
+}
+
+
+/* information about the sma random number generator provided by razoola */
+/* this RNG is correct for KOF99, other games might be different */
+
+READ16_MEMBER( sma_prot_device::sma_random_r )
+{
+ uint16_t old = m_sma_rng;
+ uint16_t newbit = ((m_sma_rng >> 2) ^ (m_sma_rng >> 3) ^ (m_sma_rng >> 5) ^ (m_sma_rng >> 6) ^ (m_sma_rng >> 7) ^ (m_sma_rng >>11) ^ (m_sma_rng >>12) ^ (m_sma_rng >>15)) & 1;
+ m_sma_rng = (m_sma_rng << 1) | newbit;
+ return old;
+}
+
+
+void sma_prot_device::reset_sma_rng()
+{
+ m_sma_rng = 0x2345;
+}
+
+
+void sma_prot_device::sma_install_random_read_handler(cpu_device* maincpu, int addr1, int addr2 )
+{
+ maincpu->space(AS_PROGRAM).install_read_handler(addr1, addr1 + 1, read16_delegate(FUNC(sma_prot_device::sma_random_r),this));
+ maincpu->space(AS_PROGRAM).install_read_handler(addr2, addr2 + 1, read16_delegate(FUNC(sma_prot_device::sma_random_r),this));
+}
+
+
+void sma_prot_device::kof99_install_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev)
+{
+ maincpu->space(AS_PROGRAM).install_write_handler(0x2ffff0, 0x2ffff1, write16_delegate(FUNC(sma_prot_device::kof99_bankswitch_w),this));
+ maincpu->space(AS_PROGRAM).install_read_handler(0x2fe446, 0x2fe447, read16_delegate(FUNC(sma_prot_device::prot_9a37_r),this));
+ m_bankdev = bankdev;
+
+ sma_install_random_read_handler(maincpu, 0x2ffff8, 0x2ffffa);
+}
+
+
+void sma_prot_device::garou_install_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev)
+{
+ maincpu->space(AS_PROGRAM).install_write_handler(0x2fffc0, 0x2fffc1, write16_delegate(FUNC(sma_prot_device::garou_bankswitch_w),this));
+ maincpu->space(AS_PROGRAM).install_read_handler(0x2fe446, 0x2fe447, read16_delegate(FUNC(sma_prot_device::prot_9a37_r),this));
+ m_bankdev = bankdev;
+
+ sma_install_random_read_handler(maincpu, 0x2fffcc, 0x2ffff0);
+}
+
+
+void sma_prot_device::garouh_install_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev)
+{
+ maincpu->space(AS_PROGRAM).install_write_handler(0x2fffc0, 0x2fffc1, write16_delegate(FUNC(sma_prot_device::garouh_bankswitch_w),this));
+ maincpu->space(AS_PROGRAM).install_read_handler(0x2fe446, 0x2fe447, read16_delegate(FUNC(sma_prot_device::prot_9a37_r),this));
+ m_bankdev = bankdev;
+
+ sma_install_random_read_handler(maincpu, 0x2fffcc, 0x2ffff0);
+}
+
+
+void sma_prot_device::mslug3_install_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev)
+{
+ maincpu->space(AS_PROGRAM).install_write_handler(0x2fffe4, 0x2fffe5, write16_delegate(FUNC(sma_prot_device::mslug3_bankswitch_w),this));
+ maincpu->space(AS_PROGRAM).install_read_handler(0x2fe446, 0x2fe447, read16_delegate(FUNC(sma_prot_device::prot_9a37_r),this));
+ m_bankdev = bankdev;
+
+// sma_install_random_read_handler(maincpu, 0x2ffff8, 0x2ffffa);
+}
+
+
+void sma_prot_device::kof2000_install_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev)
+{
+ maincpu->space(AS_PROGRAM).install_write_handler(0x2fffec, 0x2fffed, write16_delegate(FUNC(sma_prot_device::kof2000_bankswitch_w),this));
+ maincpu->space(AS_PROGRAM).install_read_handler(0x2fe446, 0x2fe447, read16_delegate(FUNC(sma_prot_device::prot_9a37_r),this));
+ m_bankdev = bankdev;
+
+ sma_install_random_read_handler(maincpu, 0x2fffd8, 0x2fffda);
+}
+
+
+
+/* kof99, garou, garouh, mslug3 and kof2000 have a SMA chip which contains program code and decrypts the 68k roms */
+void sma_prot_device::kof99_decrypt_68k(uint8_t* base)
+{
+ int i,j;
+ uint16_t *rom = (uint16_t *)(base + 0x100000);
+ /* swap data lines on the whole ROMs */
+ for (i = 0;i < 0x800000/2;i++)
+ rom[i] = BITSWAP16(rom[i],13,7,3,0,9,4,5,6,1,12,8,14,10,11,2,15);
+
+ /* swap address lines for the banked part */
+ for (i = 0;i < 0x600000/2;i+=0x800/2)
+ {
+ uint16_t buffer[0x800/2];
+ memcpy(buffer, &rom[i], 0x800);
+ for (j = 0; j < 0x800/2; j++)
+ rom[i+j] = buffer[BITSWAP24(j,23,22,21,20,19,18,17,16,15,14,13,12,11,10,6,2,4,9,8,3,1,7,0,5)];
+ }
+
+ /* swap address lines & relocate fixed part */
+ rom = (uint16_t *)base;
+ for (i = 0;i < 0x0c0000/2;i++)
+ rom[i] = rom[0x700000/2 + BITSWAP24(i,23,22,21,20,19,18,11,6,14,17,16,5,8,10,12,0,4,3,2,7,9,15,13,1)];
+}
+
+
+void sma_prot_device::garou_decrypt_68k(uint8_t* base)
+{
+ int i,j;
+
+ /* thanks to Razoola and Mr K for the info */
+ uint16_t *rom = (uint16_t *)(base + 0x100000);
+ /* swap data lines on the whole ROMs */
+ for (i = 0;i < 0x800000/2;i++)
+ rom[i] = BITSWAP16(rom[i],13,12,14,10,8,2,3,1,5,9,11,4,15,0,6,7);
+
+ /* swap address lines & relocate fixed part */
+ rom = (uint16_t *)base;
+ for (i = 0;i < 0x0c0000/2;i++)
+ rom[i] = rom[0x710000/2 + BITSWAP24(i,23,22,21,20,19,18,4,5,16,14,7,9,6,13,17,15,3,1,2,12,11,8,10,0)];
+
+ /* swap address lines for the banked part */
+ rom = (uint16_t *)(base + 0x100000);
+ for (i = 0;i < 0x800000/2;i+=0x8000/2)
+ {
+ uint16_t buffer[0x8000/2];
+ memcpy(buffer,&rom[i],0x8000);
+ for (j = 0;j < 0x8000/2;j++)
+ rom[i+j] = buffer[BITSWAP24(j,23,22,21,20,19,18,17,16,15,14,9,4,8,3,13,6,2,7,0,12,1,11,10,5)];
+ }
+}
+
+
+void sma_prot_device::garouh_decrypt_68k(uint8_t* base)
+{
+ int i,j;
+
+ /* thanks to Razoola and Mr K for the info */
+ uint16_t *rom = (uint16_t *)(base + 0x100000);
+ /* swap data lines on the whole ROMs */
+ for (i = 0;i < 0x800000/2;i++)
+ rom[i] = BITSWAP16(rom[i],14,5,1,11,7,4,10,15,3,12,8,13,0,2,9,6);
+
+ /* swap address lines & relocate fixed part */
+ rom = (uint16_t *)base;
+ for (i = 0;i < 0x0c0000/2;i++)
+ rom[i] = rom[0x7f8000/2 + BITSWAP24(i,23,22,21,20,19,18,5,16,11,2,6,7,17,3,12,8,14,4,0,9,1,10,15,13)];
+
+ /* swap address lines for the banked part */
+ rom = (uint16_t *)(base + 0x100000);
+ for (i = 0;i < 0x800000/2;i+=0x8000/2)
+ {
+ uint16_t buffer[0x8000/2];
+ memcpy(buffer,&rom[i],0x8000);
+ for (j = 0;j < 0x8000/2;j++)
+ rom[i+j] = buffer[BITSWAP24(j,23,22,21,20,19,18,17,16,15,14,12,8,1,7,11,3,13,10,6,9,5,4,0,2)];
+ }
+}
+
+
+void sma_prot_device::mslug3_decrypt_68k(uint8_t* base)
+{
+ int i,j;
+
+ /* thanks to Razoola and Mr K for the info */
+ uint16_t *rom = (uint16_t *)(base + 0x100000);
+ /* swap data lines on the whole ROMs */
+ for (i = 0;i < 0x800000/2;i++)
+ rom[i] = BITSWAP16(rom[i],4,11,14,3,1,13,0,7,2,8,12,15,10,9,5,6);
+
+ /* swap address lines & relocate fixed part */
+ rom = (uint16_t *)base;
+ for (i = 0;i < 0x0c0000/2;i++)
+ rom[i] = rom[0x5d0000/2 + BITSWAP24(i,23,22,21,20,19,18,15,2,1,13,3,0,9,6,16,4,11,5,7,12,17,14,10,8)];
+
+ /* swap address lines for the banked part */
+ rom = (uint16_t *)(base + 0x100000);
+ for (i = 0;i < 0x800000/2;i+=0x10000/2)
+ {
+ uint16_t buffer[0x10000/2];
+ memcpy(buffer,&rom[i],0x10000);
+ for (j = 0;j < 0x10000/2;j++)
+ rom[i+j] = buffer[BITSWAP24(j,23,22,21,20,19,18,17,16,15,2,11,0,14,6,4,13,8,9,3,10,7,5,12,1)];
+ }
+}
+
+
+void sma_prot_device::kof2000_decrypt_68k(uint8_t* base)
+{
+ int i,j;
+
+ /* thanks to Razoola and Mr K for the info */
+ uint16_t *rom = (uint16_t *)(base + 0x100000);
+ /* swap data lines on the whole ROMs */
+ for (i = 0;i < 0x800000/2;i++)
+ rom[i] = BITSWAP16(rom[i],12,8,11,3,15,14,7,0,10,13,6,5,9,2,1,4);
+
+ /* swap address lines for the banked part */
+ for (i = 0;i < 0x63a000/2;i+=0x800/2)
+ {
+ uint16_t buffer[0x800/2];
+ memcpy(buffer,&rom[i],0x800);
+ for (j = 0;j < 0x800/2;j++)
+ rom[i+j] = buffer[BITSWAP24(j,23,22,21,20,19,18,17,16,15,14,13,12,11,10,4,1,3,8,6,2,7,0,9,5)];
+ }
+
+ /* swap address lines & relocate fixed part */
+ rom = (uint16_t *)base;
+ for (i = 0;i < 0x0c0000/2;i++)
+ rom[i] = rom[0x73a000/2 + BITSWAP24(i,23,22,21,20,19,18,8,4,15,13,3,14,16,2,6,17,7,12,10,0,5,11,1,9)];
+}
+
+// From here are not sma decrypts, it's a convenient place to store them **************************************************
+
+
+/* ms5pcb and svcpcb have an additional scramble on top of the standard CMC scrambling */
+void sma_prot_device::svcpcb_gfx_decrypt(uint8_t* rom, uint32_t rom_size)
+{
+ static const uint8_t xorval[ 4 ] = { 0x34, 0x21, 0xc4, 0xe9 };
+ int i, ofst;
+ std::vector<uint8_t> buf( rom_size );
+
+ for( i = 0; i < rom_size; i++ )
+ rom[ i ] ^= xorval[ (i % 4) ];
+
+ for( i = 0; i < rom_size; i += 4 )
+ {
+ uint32_t rom32 = rom[i] | rom[i+1]<<8 | rom[i+2]<<16 | rom[i+3]<<24;
+ rom32 = BITSWAP32( rom32, 0x09, 0x0d, 0x13, 0x00, 0x17, 0x0f, 0x03, 0x05, 0x04, 0x0c, 0x11, 0x1e, 0x12,
+ 0x15, 0x0b, 0x06, 0x1b, 0x0a, 0x1a, 0x1c, 0x14, 0x02, 0x0e, 0x1d, 0x18, 0x08, 0x01, 0x10, 0x19, 0x1f, 0x07, 0x16 );
+ buf[i] = rom32 & 0xff;
+ buf[i+1] = (rom32>>8) & 0xff;
+ buf[i+2] = (rom32>>16) & 0xff;
+ buf[i+3] = (rom32>>24) & 0xff;
+ }
+
+ for( i = 0; i < rom_size / 4; i++ )
+ {
+ ofst = BITSWAP24( (i & 0x1fffff), 0x17, 0x16, 0x15, 0x04, 0x0b, 0x0e, 0x08, 0x0c, 0x10, 0x00, 0x0a, 0x13,
+ 0x03, 0x06, 0x02, 0x07, 0x0d, 0x01, 0x11, 0x09, 0x14, 0x0f, 0x12, 0x05 );
+ ofst ^= 0x0c8923;
+ ofst += (i & 0xffe00000);
+ memcpy( &rom[ i * 4 ], &buf[ ofst * 4 ], 0x04 );
+ }
+}
+
+
+/* and a further swap on the s1 data */
+void sma_prot_device::svcpcb_s1data_decrypt(uint8_t* rom, uint32_t rom_size)
+{
+ for( int i = 0; i < rom_size; i++ ) // Decrypt S
+ rom[ i ] = BITSWAP8( rom[ i ] ^ 0xd2, 4, 0, 7, 2, 5, 1, 6, 3 );
+}
+
+
+/* kf2k3pcb has an additional scramble on top of the standard CMC scrambling */
+/* Thanks to Razoola & Halrin for the info */
+void sma_prot_device::kf2k3pcb_gfx_decrypt(uint8_t* rom, uint32_t rom_size)
+{
+ const uint8_t xorval[ 4 ] = { 0x34, 0x21, 0xc4, 0xe9 };
+ int i, ofst;
+ std::vector<uint8_t> buf( rom_size );
+
+ for ( i = 0; i < rom_size; i++ )
+ rom[ i ] ^= xorval[ (i % 4) ];
+
+ for ( i = 0; i < rom_size; i +=4 )
+ {
+ uint32_t rom32 = rom[i] | rom[i+1]<<8 | rom[i+2]<<16 | rom[i+3]<<24;
+ rom32 = BITSWAP32( rom32, 0x09, 0x0d, 0x13, 0x00, 0x17, 0x0f, 0x03, 0x05, 0x04, 0x0c, 0x11, 0x1e, 0x12,
+ 0x15, 0x0b, 0x06, 0x1b, 0x0a, 0x1a, 0x1c, 0x14, 0x02, 0x0e, 0x1d, 0x18, 0x08, 0x01, 0x10, 0x19, 0x1f, 0x07, 0x16 );
+ buf[i] = rom32 & 0xff;
+ buf[i+1] = (rom32>>8) & 0xff;
+ buf[i+2] = (rom32>>16) & 0xff;
+ buf[i+3] = (rom32>>24) & 0xff;
+ }
+
+ for ( i = 0; i < rom_size; i+=4 )
+ {
+ ofst = BITSWAP24( (i & 0x7fffff), 0x17, 0x15, 0x0a, 0x14, 0x13, 0x16, 0x12, 0x11, 0x10, 0x0f, 0x0e, 0x0d,
+ 0x0c, 0x0b, 0x09, 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x00 );
+ ofst += (i & 0xff800000);
+ memcpy( &rom[ ofst ], &buf[ i ], 0x04 );
+ }
+}
+
+
+/* and a further swap on the s1 data */
+void sma_prot_device::kf2k3pcb_decrypt_s1data(uint8_t* rom, uint32_t rom_size, uint8_t* fixed, uint32_t fixed_size)
+{
+ uint8_t *src;
+ uint8_t *dst;
+ int i;
+
+ src = rom + rom_size - 0x1000000 - 0x80000; // Decrypt S
+
+ for( i = 0; i < fixed_size / 2; i++ )
+ fixed[ i ] = src[ (i & ~0x1f) + ((i & 7) << 2) + ((~i & 8) >> 2) + ((i & 0x10) >> 4) ];
+
+ src = rom + rom_size - 0x80000;
+ dst = fixed + 0x80000;
+
+ for( i = 0; i < fixed_size / 2; i++ )
+ dst[ i ] = src[ (i & ~0x1f) + ((i & 7) << 2) + ((~i & 8) >> 2) + ((i & 0x10) >> 4) ];
+
+ for( i = 0; i < fixed_size; i++ )
+ fixed[ i ] = BITSWAP8( fixed[ i ] ^ 0xd2, 4, 0, 7, 2, 5, 1, 6, 3 );
+}
+
+
+/***************************************************************************
+
+NeoGeo 'SP1' (BIOS) ROM encryption
+
+***************************************************************************/
+
+
+/* only found on kf2k3pcb */
+void sma_prot_device::kf2k3pcb_sp1_decrypt(uint16_t* rom)
+{
+ static const uint8_t address[0x40] = {
+ 0x04,0x0a,0x04,0x0a,0x04,0x0a,0x04,0x0a,
+ 0x0a,0x04,0x0a,0x04,0x0a,0x04,0x0a,0x04,
+ 0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,
+ 0x09,0x09,0x04,0x04,0x09,0x09,0x04,0x04,
+ 0x0b,0x0d,0x0b,0x0d,0x03,0x05,0x03,0x05,
+ 0x0e,0x0e,0x03,0x03,0x0e,0x0e,0x03,0x03,
+ 0x03,0x05,0x0b,0x0d,0x03,0x05,0x0b,0x0d,
+ 0x04,0x00,0x04,0x00,0x0e,0x0a,0x0e,0x0a
+ };
+
+ std::vector<uint16_t> buf(0x80000/2);
+ int i, addr;
+
+ for (i = 0; i < 0x80000/2; i++)
+ {
+ // address xor
+ addr = i ^ 0x0020;
+ if ( i & 0x00020) addr ^= 0x0010;
+ if (~i & 0x00010) addr ^= 0x0040;
+ if (~i & 0x00004) addr ^= 0x0080;
+ if ( i & 0x00200) addr ^= 0x0100;
+ if (~i & 0x02000) addr ^= 0x0400;
+ if (~i & 0x10000) addr ^= 0x1000;
+ if ( i & 0x02000) addr ^= 0x8000;
+ addr ^= address[((i >> 1) & 0x38) | (i & 7)];
+ buf[i] = rom[addr];
+
+ // data xor
+ if (buf[i] & 0x0004) buf[i] ^= 0x0001;
+ if (buf[i] & 0x0010) buf[i] ^= 0x0002;
+ if (buf[i] & 0x0020) buf[i] ^= 0x0008;
+ }
+
+ memcpy(rom, &buf[0], 0x80000);
+}
diff --git a/docs/release/src/hbmame/bus/neogeo/prot.h b/docs/release/src/hbmame/bus/neogeo/prot.h
new file mode 100644
index 00000000000..f883440401f
--- /dev/null
+++ b/docs/release/src/hbmame/bus/neogeo/prot.h
@@ -0,0 +1,417 @@
+// license:BSD-3-Clause
+// copyright-holders:S. Smith,David Haywood
+
+
+#pragma once
+
+#include "banked_cart.h"
+
+#ifndef __NEOGEO_PROT__
+#define __NEOGEO_PROT__
+
+extern const device_type NGBOOTLEG_PROT;
+
+#define MCFG_NGBOOTLEG_PROT_ADD(_tag) \
+ MCFG_DEVICE_ADD(_tag, NGBOOTLEG_PROT, 0)
+
+
+class ngbootleg_prot_device : public device_t
+{
+public:
+ // construction/destruction
+ ngbootleg_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
+ void neogeo_bootleg_cx_decrypt(uint8_t*sprrom, uint32_t sprrom_size);
+ void neogeo_bootleg_sx_decrypt(uint8_t* fixed, uint32_t fixed_size, int value);
+ void kof97oro_px_decode(uint8_t* cpurom, uint32_t cpurom_size);
+ void kof10thBankswitch(address_space &space, uint16_t nBank);
+ DECLARE_READ16_MEMBER(kof10th_RAM2_r);
+ DECLARE_READ16_MEMBER(kof10th_RAMB_r);
+ DECLARE_WRITE16_MEMBER(kof10th_custom_w);
+ DECLARE_WRITE16_MEMBER(kof10th_bankswitch_w);
+ void install_kof10th_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev, uint8_t* cpurom, uint32_t cpurom_size, uint8_t* fixedrom, uint32_t fixedrom_size);
+ void decrypt_kof10th(uint8_t* cpurom, uint32_t cpurom_size);
+ void kf10thep_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size);
+ void kf2k5uni_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size);
+ void kf2k5uni_sx_decrypt(uint8_t* fixedrom, uint32_t fixedrom_size);
+ void kf2k5uni_mx_decrypt(uint8_t* audiorom, uint32_t audiorom_size);
+ void decrypt_kf2k5uni(uint8_t* cpurom, uint32_t cpurom_size, uint8_t* audiorom, uint32_t audiorom_size, uint8_t* fixedrom, uint32_t fixedrom_size);
+ void kof2002b_gfx_decrypt(uint8_t *src, int size);
+ void kf2k2mp_decrypt(uint8_t* cpurom, uint32_t cpurom_size);
+ void kf2k2mp2_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size);
+ void cthd2003_neogeo_gfx_address_fix_do(uint8_t* sprrom, uint32_t sprrom_size, int start, int end, int bit3shift, int bit2shift, int bit1shift, int bit0shift);
+ void cthd2003_neogeo_gfx_address_fix(uint8_t* sprrom, uint32_t sprrom_size, int start, int end);
+ void cthd2003_c(uint8_t* sprrom, uint32_t sprrom_size, int pow);
+ void decrypt_cthd2003(uint8_t* sprrom, uint32_t sprrom_size, uint8_t* audiorom, uint32_t audiorom_size, uint8_t* fixedrom, uint32_t fixedrom_size);
+ DECLARE_WRITE16_MEMBER(cthd2003_bankswitch_w);
+ void patch_cthd2003(cpu_device* maincpu, neogeo_banked_cart_device* bankdev, uint8_t* cpurom, uint32_t cpurom_size);
+ void ct2k3sp_sx_decrypt(uint8_t* fixedrom, uint32_t fixedrom_size);
+ void decrypt_ct2k3sp(uint8_t* sprrom, uint32_t sprrom_size, uint8_t* audiorom, uint32_t audiorom_size, uint8_t* fixedrom, uint32_t fixedrom_size);
+ void decrypt_ct2k3sa(uint8_t* sprrom, uint32_t sprrom_size, uint8_t* audiorom, uint32_t audiorom_size);
+ void patch_ct2k3sa(uint8_t* cpurom, uint32_t cpurom_size);
+ void decrypt_kof2k4se_68k(uint8_t* cpurom, uint32_t cpurom_size);
+ void lans2004_vx_decrypt(uint8_t* ymsndrom, uint32_t ymsndrom_size);
+ void lans2004_decrypt_68k(uint8_t* cpurom, uint32_t cpurom_size);
+ DECLARE_READ16_MEMBER(mslug5_prot_r);
+ DECLARE_WRITE16_MEMBER(ms5plus_bankswitch_w);
+ void install_ms5plus_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev);
+ void svcboot_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size);
+ void svcboot_cx_decrypt(uint8_t*sprrom, uint32_t sprrom_size);
+ void svcplus_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size);
+ void svcplus_px_hack(uint8_t* cpurom, uint32_t cpurom_size);
+ void svcplusa_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size);
+ void svcsplus_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size);
+ void svcsplus_px_hack(uint8_t* cpurom, uint32_t cpurom_size);
+ DECLARE_READ16_MEMBER(kof2003_r);
+ DECLARE_WRITE16_MEMBER(kof2003_w);
+ DECLARE_WRITE16_MEMBER(kof2003p_w);
+ DECLARE_READ16_MEMBER(kof2003_overlay_r);
+ void kf2k3bl_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size);
+ void kf2k3bl_install_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev, uint8_t* cpurom, uint32_t cpurom_size);
+ void kf2k3pl_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size);
+ void kf2k3pl_install_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev, uint8_t* cpurom, uint32_t cpurom_size);
+ uint16_t kof2k3_overlay;
+
+ void kf2k3upl_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size);
+ void samsho5b_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size);
+ void samsho5b_vx_decrypt(uint8_t* ymsndrom, uint32_t ymsndrom_size);
+ void matrimbl_decrypt(uint8_t* sprrom, uint32_t sprrom_size, uint8_t* audiorom, uint32_t audiorom_size);
+
+ uint16_t m_cartridge_ram[0x1000]; // bootlegs
+
+ // for kof10th
+ uint8_t* m_mainrom;
+ uint8_t* m_fixedrom;
+ neogeo_banked_cart_device* m_bankdev;
+ uint16_t m_cartridge_ram2[0x10000];
+
+protected:
+ virtual void device_start() override;
+ virtual void device_reset() override;
+};
+
+
+extern const device_type KOG_PROT;
+
+#define MCFG_KOG_PROT_ADD(_tag) \
+ MCFG_DEVICE_ADD(_tag, KOG_PROT, 0)
+
+
+class kog_prot_device : public device_t
+{
+public:
+ // construction/destruction
+ kog_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
+ void kog_install_protection(cpu_device* maincpu);
+ void kog_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size);
+ READ16_MEMBER(read_jumper);
+
+ required_ioport m_jumper;
+
+protected:
+ virtual void device_start() override;
+ virtual void device_reset() override;
+ virtual ioport_constructor device_input_ports() const override;
+};
+
+
+extern const device_type CMC_PROT;
+
+#define MCFG_CMC_PROT_ADD(_tag) \
+ MCFG_DEVICE_ADD(_tag, CMC_PROT, 0)
+
+// cmc42
+#define KOF99_GFX_KEY (0x00)
+#define GAROU_GFX_KEY (0x06)
+#define MSLUG3_GFX_KEY (0xad)
+#define ZUPAPA_GFX_KEY (0xbd)
+#define GANRYU_GFX_KEY (0x07)
+#define S1945P_GFX_KEY (0x05)
+#define PREISLE2_GFX_KEY (0x9f)
+#define BANGBEAD_GFX_KEY (0xf8)
+#define NITD_GFX_KEY (0xff)
+#define SENGOKU3_GFX_KEY (0xfe)
+
+// cmc50
+#define KOF2000_GFX_KEY (0x00)
+#define KOF2001_GFX_KEY (0x1e)
+#define MSLUG4_GFX_KEY (0x31)
+#define ROTD_GFX_KEY (0x3f)
+#define PNYAA_GFX_KEY (0x2e)
+#define KOF2002_GFX_KEY (0xec)
+#define MATRIM_GFX_KEY (0x6a)
+#define SAMSHO5_GFX_KEY (0x0f)
+#define SAMSHO5SP_GFX_KEY (0x0d)
+#define MSLUG5_GFX_KEY (0x19)
+#define SVC_GFX_KEY (0x57)
+#define KOF2003_GFX_KEY (0x9d)
+#define JOCKEYGP_GFX_KEY (0xac)
+
+
+class cmc_prot_device : public device_t
+{
+public:
+ // construction/destruction
+ cmc_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
+ void decrypt(uint8_t *r0, uint8_t *r1,
+ uint8_t c0, uint8_t c1,
+ const uint8_t *table0hi,
+ const uint8_t *table0lo,
+ const uint8_t *table1,
+ int base,
+ int invert);
+
+ void neogeo_gfx_decrypt(uint8_t* rom, uint32_t rom_size, int extra_xor);
+ void neogeo_sfix_decrypt(uint8_t* rom, uint32_t rom_size, uint8_t* fixed, uint32_t fixed_size);
+ void cmc42_neogeo_gfx_decrypt(uint8_t* rom, uint32_t rom_size, int extra_xor);
+ void cmc50_neogeo_gfx_decrypt(uint8_t* rom, uint32_t rom_size, int extra_xor);
+
+ uint16_t generate_cs16(uint8_t *rom, int size);
+ int m1_address_scramble(int address, uint16_t key);
+ void neogeo_cmc50_m1_decrypt(uint8_t* romcrypt, uint32_t romcrypt_size, uint8_t* romaudio, uint32_t romaudio_size);
+
+protected:
+ virtual void device_start() override;
+ virtual void device_reset() override;
+
+ const uint8_t *type0_t03;
+ const uint8_t *type0_t12;
+ const uint8_t *type1_t03;
+ const uint8_t *type1_t12;
+ const uint8_t *address_8_15_xor1;
+ const uint8_t *address_8_15_xor2;
+ const uint8_t *address_16_23_xor1;
+ const uint8_t *address_16_23_xor2;
+ const uint8_t *address_0_7_xor;
+};
+
+
+extern const device_type FATFURY2_PROT;
+
+#define MCFG_FATFURY2_PROT_ADD(_tag) \
+ MCFG_DEVICE_ADD(_tag, FATFURY2_PROT, 0)
+
+
+class fatfury2_prot_device : public device_t
+{
+public:
+ // construction/destruction
+ fatfury2_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
+ DECLARE_READ16_MEMBER( fatfury2_protection_16_r );
+ DECLARE_WRITE16_MEMBER( fatfury2_protection_16_w );
+ void fatfury2_install_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev);
+
+
+ neogeo_banked_cart_device* m_bankdev;
+ uint32_t m_fatfury2_prot_data;
+
+protected:
+ virtual void device_start() override;
+ virtual void device_reset() override;
+};
+
+
+extern const device_type KOF2002_PROT;
+
+#define MCFG_KOF2002_PROT_ADD(_tag) \
+ MCFG_DEVICE_ADD(_tag, KOF2002_PROT, 0)
+
+
+class kof2002_prot_device : public device_t
+{
+public:
+ // construction/destruction
+ kof2002_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
+ void kof2002_decrypt_68k(uint8_t* cpurom, uint32_t cpurom_size);
+ void matrim_decrypt_68k(uint8_t* cpurom, uint32_t cpurom_size);
+ void samsho5_decrypt_68k(uint8_t* cpurom, uint32_t cpurom_size);
+ void samsh5sp_decrypt_68k(uint8_t* cpurom, uint32_t cpurom_size);
+
+protected:
+ virtual void device_start() override;
+ virtual void device_reset() override;
+};
+
+
+extern const device_type KOF98_PROT;
+
+#define MCFG_KOF98_PROT_ADD(_tag) \
+ MCFG_DEVICE_ADD(_tag, KOF98_PROT, 0)
+
+
+class kof98_prot_device : public device_t
+{
+public:
+ // construction/destruction
+ kof98_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
+ void kof98_decrypt_68k(uint8_t* cpurom, uint32_t cpurom_size);
+ void install_kof98_protection(cpu_device* maincpu);
+ DECLARE_WRITE16_MEMBER(kof98_prot_w);
+ DECLARE_READ16_MEMBER(kof98_prot_r);
+ int kof98_prot_state;
+ uint16_t m_default_rom[2];
+
+protected:
+ virtual void device_start() override;
+ virtual void device_reset() override;
+};
+
+
+extern const device_type MSLUGX_PROT;
+
+#define MCFG_MSLUGX_PROT_ADD(_tag) \
+ MCFG_DEVICE_ADD(_tag, MSLUGX_PROT, 0)
+
+
+class mslugx_prot_device : public device_t
+{
+public:
+ // construction/destruction
+ mslugx_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
+
+ DECLARE_WRITE16_MEMBER( mslugx_protection_16_w );
+ DECLARE_READ16_MEMBER( mslugx_protection_16_r );
+ void mslugx_install_protection(cpu_device* maincpu);
+
+ uint16_t m_mslugx_counter;
+ uint16_t m_mslugx_command;
+
+protected:
+ virtual void device_start() override;
+ virtual void device_reset() override;
+};
+
+
+extern const device_type PCM2_PROT;
+
+#define MCFG_PCM2_PROT_ADD(_tag) \
+ MCFG_DEVICE_ADD(_tag, PCM2_PROT, 0)
+
+
+class pcm2_prot_device : public device_t
+{
+public:
+ // construction/destruction
+ pcm2_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
+ void neo_pcm2_snk_1999(uint8_t* ymrom, uint32_t ymsize, int value);
+ void neo_pcm2_swap(uint8_t* ymrom, uint32_t ymsize, int value);
+
+protected:
+ virtual void device_start() override;
+ virtual void device_reset() override;
+};
+
+
+extern const device_type PVC_PROT;
+
+#define MCFG_PVC_PROT_ADD(_tag) \
+ MCFG_DEVICE_ADD(_tag, PVC_PROT, 0)
+
+
+class pvc_prot_device : public device_t
+{
+public:
+ // construction/destruction
+ pvc_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
+ void pvc_write_unpack_color();
+ void pvc_write_pack_color();
+ void pvc_write_bankswitch(address_space &space);
+ DECLARE_READ16_MEMBER(pvc_prot_r);
+ DECLARE_WRITE16_MEMBER(pvc_prot_w);
+ void install_pvc_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev);
+ neogeo_banked_cart_device* m_bankdev;
+
+ uint16_t m_cartridge_ram[0x1000];
+
+ void mslug5_decrypt_68k(uint8_t* rom, uint32_t size);
+ void svc_px_decrypt(uint8_t* rom, uint32_t size);
+ void kf2k3pcb_decrypt_68k(uint8_t* rom, uint32_t size);
+ void kof2003_decrypt_68k(uint8_t* rom, uint32_t size);
+ void kof2003h_decrypt_68k(uint8_t* rom, uint32_t size);
+
+protected:
+ virtual void device_start() override;
+ virtual void device_reset() override;
+};
+
+
+extern const device_type SBP_PROT;
+
+#define MCFG_SBP_PROT_ADD(_tag) \
+ MCFG_DEVICE_ADD(_tag, SBP_PROT, 0)
+
+
+class sbp_prot_device : public device_t
+{
+public:
+ // construction/destruction
+ sbp_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
+
+ uint8_t* m_mainrom;
+
+ void sbp_install_protection(cpu_device* maincpu, uint8_t* cpurom, uint32_t cpurom_size);
+ DECLARE_WRITE16_MEMBER(sbp_lowerrom_w);
+ DECLARE_READ16_MEMBER(sbp_lowerrom_r);
+
+protected:
+ virtual void device_start() override;
+ virtual void device_reset() override;
+};
+
+extern const device_type SMA_PROT;
+
+#define MCFG_SMA_PROT_ADD(_tag) \
+ MCFG_DEVICE_ADD(_tag, SMA_PROT, 0)
+
+
+class sma_prot_device : public device_t
+{
+public:
+ // construction/destruction
+ sma_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
+
+ DECLARE_WRITE16_MEMBER( kof99_bankswitch_w );
+ DECLARE_WRITE16_MEMBER( garou_bankswitch_w );
+ DECLARE_WRITE16_MEMBER( garouh_bankswitch_w );
+ DECLARE_WRITE16_MEMBER( mslug3_bankswitch_w );
+ DECLARE_WRITE16_MEMBER( kof2000_bankswitch_w );
+ DECLARE_READ16_MEMBER( prot_9a37_r );
+ DECLARE_READ16_MEMBER( sma_random_r );
+ void reset_sma_rng();
+ void sma_install_random_read_handler(cpu_device* maincpu, int addr1, int addr2 );
+ void kof99_install_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev);
+ void garou_install_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev);
+ void garouh_install_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev);
+ void mslug3_install_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev);
+ void kof2000_install_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev);
+ neogeo_banked_cart_device* m_bankdev;
+ void kof99_decrypt_68k(uint8_t* base);
+ void garou_decrypt_68k(uint8_t* base);
+ void garouh_decrypt_68k(uint8_t* base);
+ void mslug3_decrypt_68k(uint8_t* base);
+ void kof2000_decrypt_68k(uint8_t* base);
+
+ // PCB decrypts (not sma)
+ void svcpcb_gfx_decrypt(uint8_t* rom, uint32_t rom_size);
+ void svcpcb_s1data_decrypt(uint8_t* rom, uint32_t rom_size);
+ void kf2k3pcb_gfx_decrypt(uint8_t* rom, uint32_t rom_size);
+ void kf2k3pcb_decrypt_s1data(uint8_t* rom, uint32_t rom_size, uint8_t* fixed, uint32_t fixed_size);
+ void kf2k3pcb_sp1_decrypt(uint16_t* rom);
+
+ uint16_t m_sma_rng;
+protected:
+ virtual void device_start() override;
+ virtual void device_reset() override;
+};
+
+#endif
diff --git a/docs/release/src/hbmame/bus/neogeo_ctrl/ctrl.cpp b/docs/release/src/hbmame/bus/neogeo_ctrl/ctrl.cpp
new file mode 100644
index 00000000000..0324ff6e9d0
--- /dev/null
+++ b/docs/release/src/hbmame/bus/neogeo_ctrl/ctrl.cpp
@@ -0,0 +1,221 @@
+// license:BSD-3-Clause
+// copyright-holders:Fabio Priuli
+/**********************************************************************
+
+ SNK Neo Geo Controller Port emulation
+
+ This actually covers two separate piece of hardware of Neo Geo system:
+ - The 15-pin controller ports that are used for controllers in the
+ AES home system and for mahjong controllers in the MVS arcade PCB
+ - The controller part of the main edge connector that is used for
+ joystick inputs in the MVS arcade PCB
+
+ Technically, the latter is not a configurable slot, because it's not
+ a component that arcade operators could simply change with a different
+ controller, but this implementation allows for simpler code.
+
+**********************************************************************/
+
+#include "ctrl.h"
+// slot devices
+#include "joystick.h"
+#include "mahjong.h"
+#include "dial.h"
+#include "irrmaze.h"
+#include "kizuna4p.h"
+
+
+//**************************************************************************
+// GLOBAL VARIABLES
+//**************************************************************************
+
+const device_type NEOGEO_CONTROL_PORT = device_creator<neogeo_control_port_device>;
+const device_type NEOGEO_CTRL_EDGE_CONNECTOR = device_creator<neogeo_ctrl_edge_port_device>;
+
+
+//**************************************************************************
+// CARD INTERFACE
+//**************************************************************************
+
+//-------------------------------------------------
+// device_neogeo_control_port_interface - constructor
+//-------------------------------------------------
+
+device_neogeo_control_port_interface::device_neogeo_control_port_interface(const machine_config &mconfig, device_t &device)
+ : device_slot_card_interface(mconfig,device)
+{
+ m_port = dynamic_cast<neogeo_control_port_device *>(device.owner());
+}
+
+
+//-------------------------------------------------
+// ~device_neogeo_control_port_interface - destructor
+//-------------------------------------------------
+
+device_neogeo_control_port_interface::~device_neogeo_control_port_interface()
+{
+}
+
+//-------------------------------------------------
+// device_neogeo_ctrl_edge_interface - constructor
+//-------------------------------------------------
+
+device_neogeo_ctrl_edge_interface::device_neogeo_ctrl_edge_interface(const machine_config &mconfig, device_t &device)
+ : device_slot_card_interface(mconfig,device)
+{
+ m_port = dynamic_cast<neogeo_ctrl_edge_port_device *>(device.owner());
+}
+
+
+//-------------------------------------------------
+// ~device_neogeo_ctrl_edge_interface - destructor
+//-------------------------------------------------
+
+device_neogeo_ctrl_edge_interface::~device_neogeo_ctrl_edge_interface()
+{
+}
+
+
+//**************************************************************************
+// LIVE DEVICE
+//**************************************************************************
+
+//-------------------------------------------------
+// neogeo_control_port_device - constructor
+//-------------------------------------------------
+
+neogeo_control_port_device::neogeo_control_port_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
+ device_t(mconfig, NEOGEO_CONTROL_PORT, "SNK Neo Geo control port", tag, owner, clock, "neogeo_control_port", __FILE__),
+ device_slot_interface(mconfig, *this), m_device(nullptr)
+{
+}
+
+
+//-------------------------------------------------
+// ~neogeo_control_port_device - destructor
+//-------------------------------------------------
+
+neogeo_control_port_device::~neogeo_control_port_device()
+{
+}
+
+
+//-------------------------------------------------
+// device_start - device-specific startup
+//-------------------------------------------------
+
+void neogeo_control_port_device::device_start()
+{
+ m_device = dynamic_cast<device_neogeo_control_port_interface *>(get_card_device());
+}
+
+
+uint8_t neogeo_control_port_device::read_ctrl()
+{
+ uint8_t data = 0xff;
+ if (m_device)
+ data &= m_device->read_ctrl();
+ return data;
+}
+
+uint8_t neogeo_control_port_device::read_start_sel()
+{
+ uint8_t data = 0xff;
+ if (m_device)
+ data &= m_device->read_start_sel();
+ return data;
+}
+
+
+void neogeo_control_port_device::write_ctrlsel(uint8_t data)
+{
+ if (m_device)
+ m_device->write_ctrlsel(data);
+}
+
+
+//-------------------------------------------------
+// neogeo_ctrl_edge_port_device - constructor
+//-------------------------------------------------
+
+neogeo_ctrl_edge_port_device::neogeo_ctrl_edge_port_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
+ device_t(mconfig, NEOGEO_CTRL_EDGE_CONNECTOR, "SNK Neo Geo Edge Connector (Controller)", tag, owner, clock, "neogeo_ctrl_edge", __FILE__),
+ device_slot_interface(mconfig, *this), m_device(nullptr)
+{
+}
+
+
+//-------------------------------------------------
+// ~neogeo_ctrl_edge_port_device - destructor
+//-------------------------------------------------
+
+neogeo_ctrl_edge_port_device::~neogeo_ctrl_edge_port_device()
+{
+}
+
+
+//-------------------------------------------------
+// device_start - device-specific startup
+//-------------------------------------------------
+
+void neogeo_ctrl_edge_port_device::device_start()
+{
+ m_device = dynamic_cast<device_neogeo_ctrl_edge_interface *>(get_card_device());
+}
+
+
+READ8_MEMBER(neogeo_ctrl_edge_port_device::in0_r)
+{
+ uint8_t data = 0xff;
+ if (m_device)
+ data &= m_device->in0_r(space, offset, mem_mask);
+ return data;
+}
+
+READ8_MEMBER(neogeo_ctrl_edge_port_device::in1_r)
+{
+ uint8_t data = 0xff;
+ if (m_device)
+ data &= m_device->in1_r(space, offset, mem_mask);
+ return data;
+}
+
+uint8_t neogeo_ctrl_edge_port_device::read_start_sel()
+{
+ uint8_t data = 0xff;
+ if (m_device)
+ data &= m_device->read_start_sel();
+ return data;
+}
+
+void neogeo_ctrl_edge_port_device::write_ctrlsel(uint8_t data)
+{
+ if (m_device)
+ m_device->write_ctrlsel(data);
+}
+
+
+
+//-------------------------------------------------
+// SLOT_INTERFACE( neogeo_control_port_devices )
+//-------------------------------------------------
+
+SLOT_INTERFACE_START( neogeo_controls )
+ SLOT_INTERFACE("joy", NEOGEO_JOY)
+ SLOT_INTERFACE("mahjong", NEOGEO_MJCTRL)
+SLOT_INTERFACE_END
+
+SLOT_INTERFACE_START( neogeo_arc_edge )
+ SLOT_INTERFACE("joy", NEOGEO_JOY_AC)
+SLOT_INTERFACE_END
+
+SLOT_INTERFACE_START( neogeo_arc_edge_fixed )
+ SLOT_INTERFACE("joy", NEOGEO_JOY_AC)
+ SLOT_INTERFACE("dial", NEOGEO_DIAL)
+ SLOT_INTERFACE("irrmaze", NEOGEO_IRRMAZE)
+ SLOT_INTERFACE("kiz4p", NEOGEO_KIZ4P)
+SLOT_INTERFACE_END
+
+SLOT_INTERFACE_START( neogeo_arc_pin15 )
+ SLOT_INTERFACE("mahjong", NEOGEO_MJCTRL)
+SLOT_INTERFACE_END
diff --git a/docs/release/src/hbmame/bus/neogeo_ctrl/ctrl.h b/docs/release/src/hbmame/bus/neogeo_ctrl/ctrl.h
new file mode 100644
index 00000000000..678e9871cfa
--- /dev/null
+++ b/docs/release/src/hbmame/bus/neogeo_ctrl/ctrl.h
@@ -0,0 +1,130 @@
+// license:BSD-3-Clause
+// copyright-holders:Fabio Priuli
+/**********************************************************************
+
+ SNK Neo Geo controller port emulation
+
+**********************************************************************/
+
+
+#pragma once
+
+#ifndef __NEOGEO_CONTROL_PORT__
+#define __NEOGEO_CONTROL_PORT__
+
+#include "emu.h"
+
+//**************************************************************************
+// TYPE DEFINITIONS
+//**************************************************************************
+
+class neogeo_control_port_device;
+class neogeo_ctrl_edge_port_device;
+
+// ======================> device_neogeo_control_port_interface
+
+class device_neogeo_control_port_interface : public device_slot_card_interface
+{
+public:
+ // construction/destruction
+ device_neogeo_control_port_interface(const machine_config &mconfig, device_t &device);
+ virtual ~device_neogeo_control_port_interface();
+
+ virtual uint8_t read_ctrl() { return 0xff; };
+ virtual uint8_t read_start_sel() { return 0xff; };
+ virtual void write_ctrlsel(uint8_t data) { };
+
+protected:
+ neogeo_control_port_device *m_port;
+};
+
+// ======================> neogeo_control_port_device
+
+class neogeo_control_port_device : public device_t,
+ public device_slot_interface
+{
+public:
+ // construction/destruction
+ neogeo_control_port_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ virtual ~neogeo_control_port_device();
+
+ uint8_t read_ctrl();
+ uint8_t read_start_sel();
+ void write_ctrlsel(uint8_t data);
+ DECLARE_READ8_MEMBER( ctrl_r ) { return read_ctrl(); }
+
+protected:
+ // device-level overrides
+ virtual void device_start() override;
+
+ device_neogeo_control_port_interface *m_device;
+};
+
+
+// ======================> device_neogeo_ctrl_edge_interface
+
+class device_neogeo_ctrl_edge_interface : public device_slot_card_interface
+{
+public:
+ // construction/destruction
+ device_neogeo_ctrl_edge_interface(const machine_config &mconfig, device_t &device);
+ virtual ~device_neogeo_ctrl_edge_interface();
+
+ virtual uint8_t read_start_sel() { return 0xff; }
+ virtual DECLARE_READ8_MEMBER( in0_r ) { return 0xff; }
+ virtual DECLARE_READ8_MEMBER( in1_r ) { return 0xff; }
+ virtual void write_ctrlsel(uint8_t data) { }
+
+protected:
+ neogeo_ctrl_edge_port_device *m_port;
+};
+
+// ======================> neogeo_ctrl_edge_port_device
+
+class neogeo_ctrl_edge_port_device : public device_t,
+ public device_slot_interface
+{
+public:
+ // construction/destruction
+ neogeo_ctrl_edge_port_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ virtual ~neogeo_ctrl_edge_port_device();
+
+ uint8_t read_start_sel();
+ DECLARE_READ8_MEMBER( in0_r );
+ DECLARE_READ8_MEMBER( in1_r );
+ void write_ctrlsel(uint8_t data);
+
+protected:
+ // device-level overrides
+ virtual void device_start() override;
+
+ device_neogeo_ctrl_edge_interface *m_device;
+};
+
+
+// device type definition
+extern const device_type NEOGEO_CONTROL_PORT;
+extern const device_type NEOGEO_CTRL_EDGE_CONNECTOR;
+
+
+//**************************************************************************
+// INTERFACE CONFIGURATION MACROS
+//**************************************************************************
+
+#define MCFG_NEOGEO_CONTROL_PORT_ADD(_tag, _slot_intf, _def_slot, _fixed) \
+ MCFG_DEVICE_ADD(_tag, NEOGEO_CONTROL_PORT, 0) \
+ MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, _fixed)
+
+#define MCFG_NEOGEO_CONTROL_EDGE_CONNECTOR_ADD(_tag, _slot_intf, _def_slot, _fixed) \
+ MCFG_DEVICE_ADD(_tag, NEOGEO_CTRL_EDGE_CONNECTOR, 0) \
+ MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, _fixed)
+
+
+
+SLOT_INTERFACE_EXTERN( neogeo_controls );
+SLOT_INTERFACE_EXTERN( neogeo_arc_edge );
+SLOT_INTERFACE_EXTERN( neogeo_arc_edge_fixed );
+SLOT_INTERFACE_EXTERN( neogeo_arc_pin15 );
+
+
+#endif
diff --git a/docs/release/src/hbmame/bus/neogeo_ctrl/dial.cpp b/docs/release/src/hbmame/bus/neogeo_ctrl/dial.cpp
new file mode 100644
index 00000000000..2193753bb91
--- /dev/null
+++ b/docs/release/src/hbmame/bus/neogeo_ctrl/dial.cpp
@@ -0,0 +1,131 @@
+// license:BSD-3-Clause
+// copyright-holders:Fabio Priuli
+/**********************************************************************
+
+ SNK Neo Geo Dial Controller emulation
+
+**********************************************************************/
+
+#include "dial.h"
+
+//**************************************************************************
+// DEVICE DEFINITIONS
+//**************************************************************************
+
+const device_type NEOGEO_DIAL = device_creator<neogeo_dial_device>;
+
+
+static INPUT_PORTS_START( neogeo_dial )
+ PORT_START("JOY1")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1)
+ PORT_BIT( 0x90, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) /* note it needs it from 0x80 when using paddle */
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
+
+ PORT_START("JOY2")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2)
+ PORT_BIT( 0x90, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) /* note it needs it from 0x80 when using paddle */
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
+
+ PORT_START("DIAL1")
+ PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(20) PORT_PLAYER(1)
+
+ PORT_START("DIAL2")
+ PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(20) PORT_PLAYER(2)
+INPUT_PORTS_END
+
+
+//-------------------------------------------------
+// input_ports - device-specific input ports
+//-------------------------------------------------
+
+ioport_constructor neogeo_dial_device::device_input_ports() const
+{
+ return INPUT_PORTS_NAME( neogeo_dial );
+}
+
+
+//**************************************************************************
+// LIVE DEVICE
+//**************************************************************************
+
+//-------------------------------------------------
+// neogeo_dial_device - constructor
+//-------------------------------------------------
+
+neogeo_dial_device::neogeo_dial_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
+ device_t(mconfig, NEOGEO_DIAL, "SNK Neo Geo Dial Controller", tag, owner, clock, "neogeo_dial", __FILE__),
+ device_neogeo_ctrl_edge_interface(mconfig, *this),
+ m_joy1(*this, "JOY1"),
+ m_joy2(*this, "JOY2"),
+ m_dial1(*this, "DIAL1"),
+ m_dial2(*this, "DIAL2")
+{
+}
+
+
+//-------------------------------------------------
+// device_start - device-specific startup
+//-------------------------------------------------
+
+void neogeo_dial_device::device_start()
+{
+ save_item(NAME(m_ctrl_sel));
+}
+
+
+//-------------------------------------------------
+// device_reset - device-specific reset
+//-------------------------------------------------
+
+void neogeo_dial_device::device_reset()
+{
+ m_ctrl_sel = 0;
+}
+
+
+//-------------------------------------------------
+// in0_r
+//-------------------------------------------------
+
+READ8_MEMBER(neogeo_dial_device::in0_r)
+{
+ uint8_t res = 0;
+ if (m_ctrl_sel & 0x01)
+ res = m_joy1->read();
+ else
+ res = m_dial1->read();
+
+ return res;
+}
+
+//-------------------------------------------------
+// in1_r
+//-------------------------------------------------
+
+READ8_MEMBER(neogeo_dial_device::in1_r)
+{
+ uint8_t res = 0;
+ if (m_ctrl_sel & 0x01)
+ res = m_joy2->read();
+ else
+ res = m_dial2->read();
+
+ return res;
+}
+
+//-------------------------------------------------
+// write_ctrlsel
+//-------------------------------------------------
+
+void neogeo_dial_device::write_ctrlsel(uint8_t data)
+{
+ m_ctrl_sel = data;
+}
diff --git a/docs/release/src/hbmame/bus/neogeo_ctrl/dial.h b/docs/release/src/hbmame/bus/neogeo_ctrl/dial.h
new file mode 100644
index 00000000000..ff4d9d12dfe
--- /dev/null
+++ b/docs/release/src/hbmame/bus/neogeo_ctrl/dial.h
@@ -0,0 +1,58 @@
+// license:BSD-3-Clause
+// copyright-holders:Fabio Priuli
+/**********************************************************************
+
+ SNK Neo Geo Dial controller emulation
+
+**********************************************************************/
+
+#pragma once
+
+#ifndef __NEOGEO_DIAL__
+#define __NEOGEO_DIAL__
+
+
+#include "emu.h"
+#include "ctrl.h"
+
+//**************************************************************************
+// TYPE DEFINITIONS
+//**************************************************************************
+
+// ======================> neogeo_dial_device
+
+class neogeo_dial_device : public device_t,
+ public device_neogeo_ctrl_edge_interface
+{
+public:
+ // construction/destruction
+ neogeo_dial_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
+ // optional information overrides
+ virtual ioport_constructor device_input_ports() const override;
+
+protected:
+ // device-level overrides
+ virtual void device_start() override;
+ virtual void device_reset() override;
+
+ // device_neogeo_control_port_interface overrides
+ virtual DECLARE_READ8_MEMBER( in0_r ) override;
+ virtual DECLARE_READ8_MEMBER( in1_r ) override;
+ virtual void write_ctrlsel(uint8_t data) override;
+
+private:
+ required_ioport m_joy1;
+ required_ioport m_joy2;
+ required_ioport m_dial1;
+ required_ioport m_dial2;
+ uint8_t m_ctrl_sel;
+};
+
+
+
+// device type definition
+extern const device_type NEOGEO_DIAL;
+
+
+#endif
diff --git a/docs/release/src/hbmame/bus/neogeo_ctrl/irrmaze.cpp b/docs/release/src/hbmame/bus/neogeo_ctrl/irrmaze.cpp
new file mode 100644
index 00000000000..9efbef8f6d0
--- /dev/null
+++ b/docs/release/src/hbmame/bus/neogeo_ctrl/irrmaze.cpp
@@ -0,0 +1,113 @@
+// license:BSD-3-Clause
+// copyright-holders:Fabio Priuli
+/**********************************************************************
+
+ SNK Neo Geo Irritation Maze Analog Controller emulation
+
+**********************************************************************/
+
+#include "irrmaze.h"
+
+//**************************************************************************
+// DEVICE DEFINITIONS
+//**************************************************************************
+
+const device_type NEOGEO_IRRMAZE = device_creator<neogeo_irrmaze_device>;
+
+
+static INPUT_PORTS_START( neogeo_irrmaze )
+ PORT_START("BUTTONS")
+ PORT_BIT( 0x0f, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
+
+ PORT_START("TRACK_X")
+ PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X ) PORT_SENSITIVITY(10) PORT_KEYDELTA(20) PORT_REVERSE
+
+ PORT_START("TRACK_Y")
+ PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(10) PORT_KEYDELTA(20) PORT_REVERSE
+INPUT_PORTS_END
+
+
+//-------------------------------------------------
+// input_ports - device-specific input ports
+//-------------------------------------------------
+
+ioport_constructor neogeo_irrmaze_device::device_input_ports() const
+{
+ return INPUT_PORTS_NAME( neogeo_irrmaze );
+}
+
+
+//**************************************************************************
+// LIVE DEVICE
+//**************************************************************************
+
+//-------------------------------------------------
+// neogeo_irrmaze_device - constructor
+//-------------------------------------------------
+
+neogeo_irrmaze_device::neogeo_irrmaze_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
+ device_t(mconfig, NEOGEO_IRRMAZE, "SNK Neo Geo Irritating Maze Analog Controller", tag, owner, clock, "neogeo_irrmaze", __FILE__),
+ device_neogeo_ctrl_edge_interface(mconfig, *this),
+ m_tx(*this, "TRACK_X"),
+ m_ty(*this, "TRACK_Y"),
+ m_buttons(*this, "BUTTONS")
+{
+}
+
+
+//-------------------------------------------------
+// device_start - device-specific startup
+//-------------------------------------------------
+
+void neogeo_irrmaze_device::device_start()
+{
+ save_item(NAME(m_ctrl_sel));
+}
+
+
+//-------------------------------------------------
+// device_reset - device-specific reset
+//-------------------------------------------------
+
+void neogeo_irrmaze_device::device_reset()
+{
+ m_ctrl_sel = 0;
+}
+
+
+//-------------------------------------------------
+// in0_r
+//-------------------------------------------------
+
+READ8_MEMBER(neogeo_irrmaze_device::in0_r)
+{
+ uint8_t res = 0;
+ if (m_ctrl_sel & 0x01)
+ res = m_ty->read();
+ else
+ res = m_tx->read();
+
+ return res;
+}
+
+//-------------------------------------------------
+// in1_r
+//-------------------------------------------------
+
+READ8_MEMBER(neogeo_irrmaze_device::in1_r)
+{
+ return m_buttons->read();
+}
+
+//-------------------------------------------------
+// write_ctrlsel
+//-------------------------------------------------
+
+void neogeo_irrmaze_device::write_ctrlsel(uint8_t data)
+{
+ m_ctrl_sel = data;
+}
diff --git a/docs/release/src/hbmame/bus/neogeo_ctrl/irrmaze.h b/docs/release/src/hbmame/bus/neogeo_ctrl/irrmaze.h
new file mode 100644
index 00000000000..2ba9c17c13a
--- /dev/null
+++ b/docs/release/src/hbmame/bus/neogeo_ctrl/irrmaze.h
@@ -0,0 +1,57 @@
+// license:BSD-3-Clause
+// copyright-holders:Fabio Priuli
+/**********************************************************************
+
+ SNK Neo Geo Dial controller emulation
+
+**********************************************************************/
+
+#pragma once
+
+#ifndef __NEOGEO_IRRMAZE__
+#define __NEOGEO_IRRMAZE__
+
+
+#include "emu.h"
+#include "ctrl.h"
+
+//**************************************************************************
+// TYPE DEFINITIONS
+//**************************************************************************
+
+// ======================> neogeo_dial_device
+
+class neogeo_irrmaze_device : public device_t,
+ public device_neogeo_ctrl_edge_interface
+{
+public:
+ // construction/destruction
+ neogeo_irrmaze_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
+ // optional information overrides
+ virtual ioport_constructor device_input_ports() const override;
+
+protected:
+ // device-level overrides
+ virtual void device_start() override;
+ virtual void device_reset() override;
+
+ // device_neogeo_control_port_interface overrides
+ virtual DECLARE_READ8_MEMBER( in0_r ) override;
+ virtual DECLARE_READ8_MEMBER( in1_r ) override;
+ virtual void write_ctrlsel(uint8_t data) override;
+
+private:
+ required_ioport m_tx;
+ required_ioport m_ty;
+ required_ioport m_buttons;
+ uint8_t m_ctrl_sel;
+};
+
+
+
+// device type definition
+extern const device_type NEOGEO_IRRMAZE;
+
+
+#endif
diff --git a/docs/release/src/hbmame/bus/neogeo_ctrl/joystick.cpp b/docs/release/src/hbmame/bus/neogeo_ctrl/joystick.cpp
new file mode 100644
index 00000000000..1ab8a350afc
--- /dev/null
+++ b/docs/release/src/hbmame/bus/neogeo_ctrl/joystick.cpp
@@ -0,0 +1,205 @@
+// license:BSD-3-Clause
+// copyright-holders:Fabio Priuli
+/**********************************************************************
+
+ SNK Neo Geo Joystick emulation
+
+**********************************************************************/
+
+#include "joystick.h"
+
+
+
+/**********************************************************************
+
+ Implementation through the 15-pin controller port (used by AES)
+
+ **********************************************************************/
+
+
+//**************************************************************************
+// DEVICE DEFINITIONS
+//**************************************************************************
+
+const device_type NEOGEO_JOY = device_creator<neogeo_joystick_device>;
+
+
+static INPUT_PORTS_START( neogeo_joy )
+ PORT_START("JOY")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP )
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN )
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT )
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT )
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON4 )
+
+ PORT_START("START_SELECT")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START )
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SELECT )
+INPUT_PORTS_END
+
+
+//-------------------------------------------------
+// input_ports - device-specific input ports
+//-------------------------------------------------
+
+ioport_constructor neogeo_joystick_device::device_input_ports() const
+{
+ return INPUT_PORTS_NAME( neogeo_joy );
+}
+
+
+//**************************************************************************
+// LIVE DEVICE
+//**************************************************************************
+
+//-------------------------------------------------
+// neogeo_joystick_device - constructor
+//-------------------------------------------------
+
+neogeo_joystick_device::neogeo_joystick_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
+ device_t(mconfig, NEOGEO_JOY, "SNK Neo Geo Joystick", tag, owner, clock, "neogeo_joy", __FILE__),
+ device_neogeo_control_port_interface(mconfig, *this),
+ m_joy(*this, "JOY"),
+ m_ss(*this, "START_SELECT")
+{
+}
+
+
+//-------------------------------------------------
+// device_start - device-specific startup
+//-------------------------------------------------
+
+void neogeo_joystick_device::device_start()
+{
+}
+
+
+//-------------------------------------------------
+// device_reset - device-specific reset
+//-------------------------------------------------
+
+void neogeo_joystick_device::device_reset()
+{
+}
+
+
+//-------------------------------------------------
+// read_ctrl
+//-------------------------------------------------
+
+uint8_t neogeo_joystick_device::read_ctrl()
+{
+ return m_joy->read();
+}
+
+//-------------------------------------------------
+// read_start_sel
+//-------------------------------------------------
+
+uint8_t neogeo_joystick_device::read_start_sel()
+{
+ return m_ss->read();
+}
+
+
+
+/**********************************************************************
+
+ Implementation through the edge connector (used by MVS) and
+ connecting two controllers
+
+ **********************************************************************/
+
+//**************************************************************************
+// DEVICE DEFINITIONS
+//**************************************************************************
+
+const device_type NEOGEO_JOY_AC = device_creator<neogeo_joy_ac_device>;
+
+
+static INPUT_PORTS_START( neogeo_joy_ac )
+ PORT_START("JOY1")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1)
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
+ 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("JOY2")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) 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_BUTTON3 ) PORT_PLAYER(2)
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2)
+INPUT_PORTS_END
+
+
+//-------------------------------------------------
+// input_ports - device-specific input ports
+//-------------------------------------------------
+
+ioport_constructor neogeo_joy_ac_device::device_input_ports() const
+{
+ return INPUT_PORTS_NAME( neogeo_joy_ac );
+}
+
+//**************************************************************************
+// LIVE DEVICE
+//**************************************************************************
+
+//-------------------------------------------------
+// neogeo_joy_ac_device / neogeo_joystick_device - constructor
+//-------------------------------------------------
+
+neogeo_joy_ac_device::neogeo_joy_ac_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
+ device_t(mconfig, NEOGEO_JOY_AC, "SNK Neo Geo Arcade Joystick", tag, owner, clock, "neogeo_joyac", __FILE__),
+ device_neogeo_ctrl_edge_interface(mconfig, *this),
+ m_joy1(*this, "JOY1"),
+ m_joy2(*this, "JOY2")
+{
+}
+
+//-------------------------------------------------
+// device_start - device-specific startup
+//-------------------------------------------------
+
+void neogeo_joy_ac_device::device_start()
+{
+}
+
+
+//-------------------------------------------------
+// device_reset - device-specific reset
+//-------------------------------------------------
+
+void neogeo_joy_ac_device::device_reset()
+{
+}
+
+
+//-------------------------------------------------
+// in0_r
+//-------------------------------------------------
+
+READ8_MEMBER(neogeo_joy_ac_device::in0_r)
+{
+ return m_joy1->read();
+}
+
+//-------------------------------------------------
+// in1_r
+//-------------------------------------------------
+
+READ8_MEMBER(neogeo_joy_ac_device::in1_r)
+{
+ return m_joy2->read();
+}
diff --git a/docs/release/src/hbmame/bus/neogeo_ctrl/joystick.h b/docs/release/src/hbmame/bus/neogeo_ctrl/joystick.h
new file mode 100644
index 00000000000..c7f571f6d36
--- /dev/null
+++ b/docs/release/src/hbmame/bus/neogeo_ctrl/joystick.h
@@ -0,0 +1,81 @@
+// license:BSD-3-Clause
+// copyright-holders:Fabio Priuli
+/**********************************************************************
+
+ SNK Neo Geo Joystick emulation
+
+**********************************************************************/
+
+#pragma once
+
+#ifndef __NEOGEO_JOYSTICK__
+#define __NEOGEO_JOYSTICK__
+
+
+#include "emu.h"
+#include "ctrl.h"
+
+//**************************************************************************
+// TYPE DEFINITIONS
+//**************************************************************************
+
+// ======================> neogeo_joystick_device
+
+class neogeo_joystick_device : public device_t,
+ public device_neogeo_control_port_interface
+{
+public:
+ // construction/destruction
+ neogeo_joystick_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
+ // optional information overrides
+ virtual ioport_constructor device_input_ports() const override;
+
+protected:
+ // device-level overrides
+ virtual void device_start() override;
+ virtual void device_reset() override;
+
+ // device_neogeo_control_port_interface overrides
+ virtual uint8_t read_ctrl() override;
+ virtual uint8_t read_start_sel() override;
+
+private:
+ required_ioport m_joy;
+ required_ioport m_ss;
+};
+
+
+// ======================> neogeo_joy_ac_device
+
+class neogeo_joy_ac_device : public device_t,
+ public device_neogeo_ctrl_edge_interface
+{
+public:
+ // construction/destruction
+ neogeo_joy_ac_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
+ // optional information overrides
+ virtual ioport_constructor device_input_ports() const override;
+
+protected:
+ // device-level overrides
+ virtual void device_start() override;
+ virtual void device_reset() override;
+
+ // device_neogeo_ctrl_edge_interface overrides
+ virtual DECLARE_READ8_MEMBER( in0_r ) override;
+ virtual DECLARE_READ8_MEMBER( in1_r ) override;
+
+private:
+ required_ioport m_joy1;
+ required_ioport m_joy2;
+};
+
+
+// device type definition
+extern const device_type NEOGEO_JOY;
+extern const device_type NEOGEO_JOY_AC;
+
+
+#endif
diff --git a/docs/release/src/hbmame/bus/neogeo_ctrl/kizuna4p.cpp b/docs/release/src/hbmame/bus/neogeo_ctrl/kizuna4p.cpp
new file mode 100644
index 00000000000..ed721ef4516
--- /dev/null
+++ b/docs/release/src/hbmame/bus/neogeo_ctrl/kizuna4p.cpp
@@ -0,0 +1,171 @@
+// license:BSD-3-Clause
+// copyright-holders:Fabio Priuli
+/**********************************************************************
+
+ SNK Neo Geo Kizuna 4Players Controller emulation
+
+**********************************************************************/
+
+#include "kizuna4p.h"
+
+//**************************************************************************
+// DEVICE DEFINITIONS
+//**************************************************************************
+
+const device_type NEOGEO_KIZ4P = device_creator<neogeo_kizuna4p_device>;
+
+
+static INPUT_PORTS_START( neogeo_kiz4p )
+ PORT_START("JOY1")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1)
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
+ 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("JOY2")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) 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_BUTTON3 ) PORT_PLAYER(2)
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2)
+
+ PORT_START("JOY3")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(3)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(3)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(3)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(3)
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3)
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3)
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3)
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(3)
+
+ PORT_START("JOY4")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(4)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(4)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(4)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(4)
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4)
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4)
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4)
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(4)
+
+ PORT_START("START13")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START3 )
+
+ PORT_START("START24")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START2 )
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START4 )
+INPUT_PORTS_END
+
+
+//-------------------------------------------------
+// input_ports - device-specific input ports
+//-------------------------------------------------
+
+ioport_constructor neogeo_kizuna4p_device::device_input_ports() const
+{
+ return INPUT_PORTS_NAME( neogeo_kiz4p );
+}
+
+
+//**************************************************************************
+// LIVE DEVICE
+//**************************************************************************
+
+//-------------------------------------------------
+// neogeo_kizuna4p_device - constructor
+//-------------------------------------------------
+
+neogeo_kizuna4p_device::neogeo_kizuna4p_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
+ device_t(mconfig, NEOGEO_KIZ4P, "SNK Neo Geo Kizuna 4P Controller", tag, owner, clock, "neogeo_kiz4p", __FILE__),
+ device_neogeo_ctrl_edge_interface(mconfig, *this),
+ m_joy1(*this, "JOY1"),
+ m_joy2(*this, "JOY2"),
+ m_joy3(*this, "JOY3"),
+ m_joy4(*this, "JOY4"),
+ m_ss1(*this, "START13"),
+ m_ss2(*this, "START24")
+{
+}
+
+
+//-------------------------------------------------
+// device_start - device-specific startup
+//-------------------------------------------------
+
+void neogeo_kizuna4p_device::device_start()
+{
+ save_item(NAME(m_ctrl_sel));
+}
+
+
+//-------------------------------------------------
+// device_reset - device-specific reset
+//-------------------------------------------------
+
+void neogeo_kizuna4p_device::device_reset()
+{
+ m_ctrl_sel = 0;
+}
+
+
+//-------------------------------------------------
+// in0_r
+//-------------------------------------------------
+
+READ8_MEMBER(neogeo_kizuna4p_device::in0_r)
+{
+ uint8_t res = 0;
+ if (m_ctrl_sel & 0x01)
+ res = m_joy3->read();
+ else
+ res = m_joy1->read();
+
+ if (m_ctrl_sel & 0x04) res &= ((m_ctrl_sel & 0x01) ? ~0x20 : ~0x10);
+
+ return res;
+}
+
+//-------------------------------------------------
+// in1_r
+//-------------------------------------------------
+
+READ8_MEMBER(neogeo_kizuna4p_device::in1_r)
+{
+ uint8_t res = 0;
+ if (m_ctrl_sel & 0x01)
+ res = m_joy4->read();
+ else
+ res = m_joy2->read();
+
+ if (m_ctrl_sel & 0x04) res &= ((m_ctrl_sel & 0x01) ? ~0x20 : ~0x10);
+
+ return res;
+}
+
+//-------------------------------------------------
+// read_start_sel
+//-------------------------------------------------
+
+uint8_t neogeo_kizuna4p_device::read_start_sel()
+{
+ return (BIT(m_ss1->read(), m_ctrl_sel & 0x01)) | (BIT(m_ss2->read(), m_ctrl_sel & 0x01) << 2);
+}
+
+
+//-------------------------------------------------
+// write_ctrlsel
+//-------------------------------------------------
+
+void neogeo_kizuna4p_device::write_ctrlsel(uint8_t data)
+{
+ m_ctrl_sel = data;
+}
diff --git a/docs/release/src/hbmame/bus/neogeo_ctrl/kizuna4p.h b/docs/release/src/hbmame/bus/neogeo_ctrl/kizuna4p.h
new file mode 100644
index 00000000000..d35b7d15ca2
--- /dev/null
+++ b/docs/release/src/hbmame/bus/neogeo_ctrl/kizuna4p.h
@@ -0,0 +1,61 @@
+// license:BSD-3-Clause
+// copyright-holders:Fabio Priuli
+/**********************************************************************
+
+ SNK Neo Geo Kizuna 4Players controller emulation
+
+**********************************************************************/
+
+#pragma once
+
+#ifndef __NEOGEO_KIZ4P__
+#define __NEOGEO_KIZ4P__
+
+
+#include "emu.h"
+#include "ctrl.h"
+
+//**************************************************************************
+// TYPE DEFINITIONS
+//**************************************************************************
+
+// ======================> neogeo_kizuna4p_device
+
+class neogeo_kizuna4p_device : public device_t,
+ public device_neogeo_ctrl_edge_interface
+{
+public:
+ // construction/destruction
+ neogeo_kizuna4p_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
+ // optional information overrides
+ virtual ioport_constructor device_input_ports() const override;
+
+protected:
+ // device-level overrides
+ virtual void device_start() override;
+ virtual void device_reset() override;
+
+ // device_neogeo_control_port_interface overrides
+ virtual DECLARE_READ8_MEMBER( in0_r ) override;
+ virtual DECLARE_READ8_MEMBER( in1_r ) override;
+ virtual uint8_t read_start_sel() override;
+ virtual void write_ctrlsel(uint8_t data) override;
+
+private:
+ required_ioport m_joy1;
+ required_ioport m_joy2;
+ required_ioport m_joy3;
+ required_ioport m_joy4;
+ required_ioport m_ss1;
+ required_ioport m_ss2;
+ uint8_t m_ctrl_sel;
+};
+
+
+
+// device type definition
+extern const device_type NEOGEO_KIZ4P;
+
+
+#endif
diff --git a/docs/release/src/hbmame/bus/neogeo_ctrl/mahjong.cpp b/docs/release/src/hbmame/bus/neogeo_ctrl/mahjong.cpp
new file mode 100644
index 00000000000..bca18ed6bfb
--- /dev/null
+++ b/docs/release/src/hbmame/bus/neogeo_ctrl/mahjong.cpp
@@ -0,0 +1,171 @@
+// license:BSD-3-Clause
+// copyright-holders:Fabio Priuli
+/**********************************************************************
+
+ SNK Neo Geo Mahjong controller emulation
+
+**********************************************************************/
+
+#include "mahjong.h"
+
+//**************************************************************************
+// DEVICE DEFINITIONS
+//**************************************************************************
+
+const device_type NEOGEO_MJCTRL_AC = device_creator<neogeo_mjctrl_ac_device>;
+const device_type NEOGEO_MJCTRL = device_creator<neogeo_mjctrl_device>;
+
+
+static INPUT_PORTS_START( neogeo_mj_ac )
+ PORT_START("MJ.0")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_A )
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_B )
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_C )
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_D )
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_E )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_MAHJONG_F )
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_MAHJONG_G )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("MJ.1")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_H )
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_I )
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_J )
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_K )
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_L )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_MAHJONG_M )
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_MAHJONG_N )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON6 )
+
+ // is this actually connected?
+ PORT_START("MJ.2")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP )
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN )
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT )
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT )
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON4 )
+
+ PORT_START("MJ.3")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_PON )
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_CHI )
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_KAN )
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_RON )
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_REACH )
+ 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( neogeo_mj )
+ PORT_INCLUDE( neogeo_mj_ac )
+
+ PORT_START("START_SELECT")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START )
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SELECT )
+INPUT_PORTS_END
+
+
+//-------------------------------------------------
+// input_ports - device-specific input ports
+//-------------------------------------------------
+
+ioport_constructor neogeo_mjctrl_ac_device::device_input_ports() const
+{
+ return INPUT_PORTS_NAME( neogeo_mj_ac );
+}
+
+ioport_constructor neogeo_mjctrl_device::device_input_ports() const
+{
+ return INPUT_PORTS_NAME( neogeo_mj );
+}
+
+
+
+//**************************************************************************
+// LIVE DEVICE
+//**************************************************************************
+
+//-------------------------------------------------
+// neogeo_joystick_device - constructor
+//-------------------------------------------------
+
+neogeo_mjctrl_ac_device::neogeo_mjctrl_ac_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source)
+ : device_t(mconfig, type, name, tag, owner, clock, shortname, source)
+ , device_neogeo_control_port_interface(mconfig, *this)
+ , m_mjpanel(*this, "MJ.%u", 0)
+{
+}
+
+neogeo_mjctrl_ac_device::neogeo_mjctrl_ac_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : neogeo_mjctrl_ac_device(mconfig, NEOGEO_MJCTRL_AC, "SNK Neo Geo Arcade Mahjong panel", tag, owner, clock, "neogeo_mjac", __FILE__)
+{
+}
+
+neogeo_mjctrl_device::neogeo_mjctrl_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
+ neogeo_mjctrl_ac_device(mconfig, NEOGEO_MJCTRL, "SNK Neo Geo Mahjong controller", tag, owner, clock, "neogeo_mjctrl", __FILE__),
+ m_ss(*this, "START_SELECT")
+{
+}
+
+
+//-------------------------------------------------
+// device_start - device-specific startup
+//-------------------------------------------------
+
+void neogeo_mjctrl_ac_device::device_start()
+{
+ save_item(NAME(m_ctrl_sel));
+}
+
+
+//-------------------------------------------------
+// device_reset - device-specific reset
+//-------------------------------------------------
+
+void neogeo_mjctrl_ac_device::device_reset()
+{
+ m_ctrl_sel = 0;
+}
+
+
+//-------------------------------------------------
+// read_ctrl
+//-------------------------------------------------
+
+uint8_t neogeo_mjctrl_ac_device::read_ctrl()
+{
+ uint8_t res = 0;
+ switch (m_ctrl_sel)
+ {
+ default:
+ case 0x00: res = 0xff; break;
+ case 0x09: res = m_mjpanel[0]->read(); break;
+ case 0x12: res = m_mjpanel[1]->read(); break;
+ case 0x1b: res = m_mjpanel[2]->read(); break;
+ case 0x24: res = m_mjpanel[3]->read(); break;
+ }
+
+ return res;
+}
+
+//-------------------------------------------------
+// write_ctrlsel
+//-------------------------------------------------
+
+void neogeo_mjctrl_ac_device::write_ctrlsel(uint8_t data)
+{
+ m_ctrl_sel = data;
+}
+
+//-------------------------------------------------
+// read_start_sel
+//-------------------------------------------------
+
+uint8_t neogeo_mjctrl_device::read_start_sel()
+{
+ return m_ss->read();
+}
diff --git a/docs/release/src/hbmame/bus/neogeo_ctrl/mahjong.h b/docs/release/src/hbmame/bus/neogeo_ctrl/mahjong.h
new file mode 100644
index 00000000000..d92b974b213
--- /dev/null
+++ b/docs/release/src/hbmame/bus/neogeo_ctrl/mahjong.h
@@ -0,0 +1,75 @@
+// license:BSD-3-Clause
+// copyright-holders:Fabio Priuli
+/**********************************************************************
+
+ SNK Neo Geo Mahjong controller emulation
+
+**********************************************************************/
+
+#pragma once
+
+#ifndef __NEOGEO_MJCTRL__
+#define __NEOGEO_MJCTRL__
+
+
+#include "emu.h"
+#include "ctrl.h"
+
+//**************************************************************************
+// TYPE DEFINITIONS
+//**************************************************************************
+
+// ======================> neogeo_mjctrl_ac_device
+
+class neogeo_mjctrl_ac_device : public device_t,
+ public device_neogeo_control_port_interface
+{
+public:
+ // construction/destruction
+ neogeo_mjctrl_ac_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source);
+ neogeo_mjctrl_ac_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
+ // optional information overrides
+ virtual ioport_constructor device_input_ports() const override;
+
+protected:
+ // device-level overrides
+ virtual void device_start() override;
+ virtual void device_reset() override;
+
+ // device_neogeo_control_port_interface overrides
+ virtual uint8_t read_ctrl() override;
+ virtual void write_ctrlsel(uint8_t data) override;
+
+private:
+ required_ioport_array<4> m_mjpanel;
+ uint8_t m_ctrl_sel;
+};
+
+// ======================> neogeo_mjctrl_device
+
+class neogeo_mjctrl_device : public neogeo_mjctrl_ac_device
+{
+public:
+ // construction/destruction
+ neogeo_mjctrl_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
+ // optional information overrides
+ virtual ioport_constructor device_input_ports() const override;
+
+protected:
+
+ // device_neogeo_control_port_interface overrides
+ virtual uint8_t read_start_sel() override;
+
+private:
+ required_ioport m_ss;
+};
+
+
+// device type definition
+extern const device_type NEOGEO_MJCTRL;
+extern const device_type NEOGEO_MJCTRL_AC;
+
+
+#endif
diff --git a/docs/release/src/hbmame/drivers/1942.cpp b/docs/release/src/hbmame/drivers/1942.cpp
new file mode 100644
index 00000000000..c7e369c78fe
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/1942.cpp
@@ -0,0 +1,126 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/1942.cpp"
+
+ROM_START( 1942c64 )
+ ROM_REGION( 0x20000, "maincpu", ROMREGION_ERASEFF )
+ ROM_LOAD( "srb-03.m3", 0x00000, 0x4000, CRC(d9dafcc3) SHA1(a089a9bc55fb7d6d0ac53f91b258396d5d62677a) )
+ ROM_LOAD( "srb-04.m4", 0x04000, 0x4000, CRC(da0cf924) SHA1(856fbb302c9a4ec7850a26ab23dab8467f79bba4) )
+ ROM_LOAD( "srb-05.m5", 0x10000, 0x4000, CRC(d102911c) SHA1(35ba1d82bd901940f61d8619273463d02fc0a952) )
+ ROM_LOAD( "srb-06.m6", 0x14000, 0x2000, CRC(466f8248) SHA1(2ccc8fc59962d3001fbc10e8d2f20a254a74f251) )
+ ROM_LOAD( "srb-07.m7", 0x18000, 0x4000, CRC(0d31038c) SHA1(b588eaf6fddd66ecb2d9832dc197f286f1ccd846) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "1942c64.c11", 0x0000, 0x4000, CRC(4ee7ab6b) SHA1(609d2d9124da47d305c15ee034efd64a73adc1c0) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "sr-02.f2", 0x0000, 0x2000, CRC(6ebca191) SHA1(0dbddadde54a0ab66994c4a8726be05c6ca88a0e) )
+
+ ROM_REGION( 0xc000, "gfx2", 0 )
+ ROM_LOAD( "sr-08.a1", 0x0000, 0x2000, CRC(3884d9eb) SHA1(5cbd9215fa5ba5a61208b383700adc4428521aed) )
+ ROM_LOAD( "sr-09.a2", 0x2000, 0x2000, CRC(999cf6e0) SHA1(5b8b685038ec98b781908b92eb7fb9506db68544) )
+ ROM_LOAD( "sr-10.a3", 0x4000, 0x2000, CRC(8edb273a) SHA1(85fdd4c690ed31e6396e3c16aa02140ee7ea2d61) )
+ ROM_LOAD( "sr-11.a4", 0x6000, 0x2000, CRC(3a2726c3) SHA1(187c92ef591febdcbd1d42ab850e0cbb62c00873) )
+ ROM_LOAD( "sr-12.a5", 0x8000, 0x2000, CRC(1bd3d8bb) SHA1(ef4dce605eb4dc8035985a415315ec61c21419c6) )
+ ROM_LOAD( "sr-13.a6", 0xa000, 0x2000, CRC(658f02c4) SHA1(f087d69e49e38cf3107350cde18fcf85a8fa04f0) )
+
+ ROM_REGION( 0x10000, "gfx3", 0 )
+ ROM_LOAD( "sr-14.l1", 0x00000, 0x4000, CRC(2528bec6) SHA1(29f7719f18faad6bd1ec6735cc24e69168361470) )
+ ROM_LOAD( "sr-15.l2", 0x04000, 0x4000, CRC(f89287aa) SHA1(136fff6d2a4f48a488fc7c620213761459c3ada0) )
+ ROM_LOAD( "sr-16.n1", 0x08000, 0x4000, CRC(024418f8) SHA1(145b8d5d6c8654cd090955a98f6dd8c8dbafe7c1) )
+ ROM_LOAD( "sr-17.n2", 0x0c000, 0x4000, CRC(e2c7e489) SHA1(d4b5d575c021f58f6966df189df94e08c5b3621c) )
+
+ ROM_REGION( 0x0a00, "proms", 0 )
+ ROM_LOAD( "sb-5.e8", 0x0000, 0x0100, CRC(93ab8153) SHA1(a792f24e5c0c3c4a6b436102e7a98199f878ece1) )
+ ROM_LOAD( "sb-6.e9", 0x0100, 0x0100, CRC(8ab44f7d) SHA1(f74680a6a987d74b3acb32e6396f20e127874149) )
+ ROM_LOAD( "sb-7.e10", 0x0200, 0x0100, CRC(f4ade9a4) SHA1(62ad31d31d183cce213b03168daa035083b2f28e) )
+ ROM_LOAD( "sb-0.f1", 0x0300, 0x0100, CRC(6047d91b) SHA1(1ce025f9524c1033e48c5294ee7d360f8bfebe8d) )
+ ROM_LOAD( "sb-4.d6", 0x0400, 0x0100, CRC(4858968d) SHA1(20b5dbcaa1a4081b3139e7e2332d8fe3c9e55ed6) )
+ ROM_LOAD( "sb-8.k3", 0x0500, 0x0100, CRC(f6fad943) SHA1(b0a24ea7805272e8ebf72a99b08907bc00d5f82f) )
+ ROM_LOAD( "sb-2.d1", 0x0600, 0x0100, CRC(8bb8b3df) SHA1(49de2819c4c92057fedcb20425282515d85829aa) )
+ ROM_LOAD( "sb-3.d2", 0x0700, 0x0100, CRC(3b0c99af) SHA1(38f30ac1e48632634e409f328ee3051b987de7ad) )
+ ROM_LOAD( "sb-1.k6", 0x0800, 0x0100, CRC(712ac508) SHA1(5349d722ab6733afdda65f6e0a98322f0d515e86) )
+ ROM_LOAD( "sb-9.m11", 0x0900, 0x0100, CRC(4921635c) SHA1(aee37d6cdc36acf0f11ff5f93e7b16e4b12f6c39) )
+ROM_END
+
+ROM_START( 1942fpa )
+ ROM_REGION( 0x20000, "maincpu", ROMREGION_ERASEFF )
+ ROM_LOAD( "1942fpa.m3", 0x00000, 0x4000, CRC(dcec86c9) SHA1(73ee4ca2d861eaa5805b4b8ff7db05cd6f06650a) )
+ ROM_LOAD( "1942fpa.m4", 0x04000, 0x4000, CRC(cdd75d78) SHA1(6ee714f9d3dd1a0c9404a8e3c8ca96a74c08e1cf) )
+ ROM_LOAD( "srb-05.m5", 0x10000, 0x4000, CRC(d102911c) SHA1(35ba1d82bd901940f61d8619273463d02fc0a952) )
+ ROM_LOAD( "srb-06.m6", 0x14000, 0x2000, CRC(466f8248) SHA1(2ccc8fc59962d3001fbc10e8d2f20a254a74f251) )
+ ROM_LOAD( "srb-07.m7", 0x18000, 0x4000, CRC(0d31038c) SHA1(b588eaf6fddd66ecb2d9832dc197f286f1ccd846) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "sr-01.c11", 0x0000, 0x4000, CRC(bd87f06b) SHA1(821f85cf157f81117eeaba0c3cf0337eac357e58) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "sr-02.f2", 0x0000, 0x2000, CRC(6ebca191) SHA1(0dbddadde54a0ab66994c4a8726be05c6ca88a0e) )
+
+ ROM_REGION( 0xc000, "gfx2", 0 )
+ ROM_LOAD( "sr-08.a1", 0x0000, 0x2000, CRC(3884d9eb) SHA1(5cbd9215fa5ba5a61208b383700adc4428521aed) )
+ ROM_LOAD( "sr-09.a2", 0x2000, 0x2000, CRC(999cf6e0) SHA1(5b8b685038ec98b781908b92eb7fb9506db68544) )
+ ROM_LOAD( "sr-10.a3", 0x4000, 0x2000, CRC(8edb273a) SHA1(85fdd4c690ed31e6396e3c16aa02140ee7ea2d61) )
+ ROM_LOAD( "sr-11.a4", 0x6000, 0x2000, CRC(3a2726c3) SHA1(187c92ef591febdcbd1d42ab850e0cbb62c00873) )
+ ROM_LOAD( "sr-12.a5", 0x8000, 0x2000, CRC(1bd3d8bb) SHA1(ef4dce605eb4dc8035985a415315ec61c21419c6) )
+ ROM_LOAD( "sr-13.a6", 0xa000, 0x2000, CRC(658f02c4) SHA1(f087d69e49e38cf3107350cde18fcf85a8fa04f0) )
+
+ ROM_REGION( 0x10000, "gfx3", 0 )
+ ROM_LOAD( "sr-14.l1", 0x00000, 0x4000, CRC(2528bec6) SHA1(29f7719f18faad6bd1ec6735cc24e69168361470) )
+ ROM_LOAD( "sr-15.l2", 0x04000, 0x4000, CRC(f89287aa) SHA1(136fff6d2a4f48a488fc7c620213761459c3ada0) )
+ ROM_LOAD( "sr-16.n1", 0x08000, 0x4000, CRC(024418f8) SHA1(145b8d5d6c8654cd090955a98f6dd8c8dbafe7c1) )
+ ROM_LOAD( "sr-17.n2", 0x0c000, 0x4000, CRC(e2c7e489) SHA1(d4b5d575c021f58f6966df189df94e08c5b3621c) )
+
+ ROM_REGION( 0x0a00, "proms", 0 )
+ ROM_LOAD( "sb-5.e8", 0x0000, 0x0100, CRC(93ab8153) SHA1(a792f24e5c0c3c4a6b436102e7a98199f878ece1) )
+ ROM_LOAD( "sb-6.e9", 0x0100, 0x0100, CRC(8ab44f7d) SHA1(f74680a6a987d74b3acb32e6396f20e127874149) )
+ ROM_LOAD( "sb-7.e10", 0x0200, 0x0100, CRC(f4ade9a4) SHA1(62ad31d31d183cce213b03168daa035083b2f28e) )
+ ROM_LOAD( "sb-0.f1", 0x0300, 0x0100, CRC(6047d91b) SHA1(1ce025f9524c1033e48c5294ee7d360f8bfebe8d) )
+ ROM_LOAD( "sb-4.d6", 0x0400, 0x0100, CRC(4858968d) SHA1(20b5dbcaa1a4081b3139e7e2332d8fe3c9e55ed6) )
+ ROM_LOAD( "sb-8.k3", 0x0500, 0x0100, CRC(f6fad943) SHA1(b0a24ea7805272e8ebf72a99b08907bc00d5f82f) )
+ ROM_LOAD( "sb-2.d1", 0x0600, 0x0100, CRC(8bb8b3df) SHA1(49de2819c4c92057fedcb20425282515d85829aa) )
+ ROM_LOAD( "sb-3.d2", 0x0700, 0x0100, CRC(3b0c99af) SHA1(38f30ac1e48632634e409f328ee3051b987de7ad) )
+ ROM_LOAD( "sb-1.k6", 0x0800, 0x0100, CRC(712ac508) SHA1(5349d722ab6733afdda65f6e0a98322f0d515e86) )
+ ROM_LOAD( "sb-9.m11", 0x0900, 0x0100, CRC(4921635c) SHA1(aee37d6cdc36acf0f11ff5f93e7b16e4b12f6c39) )
+ROM_END
+
+ROM_START( galagax )
+ ROM_REGION( 0x20000, "maincpu", ROMREGION_ERASEFF )
+ ROM_LOAD( "galagax1.n3", 0x00000, 0x4000, CRC(c78cdc46) SHA1(50ac4ab7a884b8555f15d959dac2b33e317fcd16) )
+ ROM_LOAD( "galagax1.n4", 0x04000, 0x4000, CRC(863f2f49) SHA1(dbe7d13bcaa3919e1be51ba04fbf50f898e5c76e) )
+ ROM_LOAD( "galagax1.n5", 0x10000, 0x4000, CRC(0da115f9) SHA1(0517c60877a8067fb13c61c63a032a3f5ed16a57) )
+ ROM_LOAD( "1-n6.bin", 0x14000, 0x2000, CRC(821c6481) SHA1(06becb6bf8b4bde3a458098498eecad566a87711) )
+ ROM_LOAD( "1-n7.bin", 0x18000, 0x4000, CRC(5df525e1) SHA1(70cd2910e2945db76bd6ebfa0ff09a5efadc2d0b) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "sr-01.c11", 0x0000, 0x4000, CRC(bd87f06b) SHA1(821f85cf157f81117eeaba0c3cf0337eac357e58) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "galagax1.f2", 0x00000, 0x2000, CRC(b3e1862b) SHA1(736fbef1ef15892ba6ea87be5366abf520e3d5fd) )
+
+ ROM_REGION( 0xc000, "gfx2", 0 )
+ ROM_LOAD( "galagax2.a1", 0x00000, 0x2000, CRC(21f3fee2) SHA1(2eed32063b808fae27255e9b026fb92209cfc214) )
+ ROM_LOAD( "galagax2.a2", 0x02000, 0x2000, CRC(5542beae) SHA1(f37fad84fbeb2f98092bdb2f2a3bc80804392e07) )
+ ROM_LOAD( "galagax2.a3", 0x04000, 0x2000, CRC(118e87ec) SHA1(0b79eee01bd6aef2e85409de16ff9cb032c457cb) )
+ ROM_LOAD( "galagax2.a4", 0x06000, 0x2000, CRC(fc3db895) SHA1(bc469fd6f5634eca77728a24e4e6d83a2074c780) )
+ ROM_LOAD( "galagax2.a5", 0x08000, 0x2000, CRC(4a336de1) SHA1(8359abb42fc9f774350524a7fbf561e6c8799822) )
+ ROM_LOAD( "galagax2.a6", 0x0a000, 0x2000, CRC(1d4a69c9) SHA1(34d3ea5e7666fee1ecd0ac763f3114d9c8d60806) )
+
+ ROM_REGION( 0x10000, "gfx3", 0 )
+ ROM_LOAD( "galagax2.l1", 0x00000, 0x4000, CRC(8408b932) SHA1(bea9d62156c566e7a3ae296e3e411d5542b7544b) )
+ ROM_LOAD( "galagax2.l2", 0x04000, 0x4000, CRC(2218cb80) SHA1(5dd05b59a55804bedf637abb339188e9c9e6037a) )
+ ROM_LOAD( "galagax2.n1", 0x08000, 0x4000, CRC(4d5ed5e5) SHA1(a66e979d8a6ed9cae77c8415130c5f17f8149eda) )
+ ROM_LOAD( "galagax2.n2", 0x0c000, 0x4000, CRC(8f4a1688) SHA1(69bab8f167a47eee34dadf56b1727b414f3e6579) )
+
+ ROM_REGION( 0x0600, "proms", 0 )
+ ROM_LOAD( "sb-5.e8", 0x0000, 0x0100, CRC(93ab8153) SHA1(a792f24e5c0c3c4a6b436102e7a98199f878ece1) )
+ ROM_LOAD( "sb-6.e9", 0x0100, 0x0100, CRC(8ab44f7d) SHA1(f74680a6a987d74b3acb32e6396f20e127874149) )
+ ROM_LOAD( "sb-7.e10", 0x0200, 0x0100, CRC(f4ade9a4) SHA1(62ad31d31d183cce213b03168daa035083b2f28e) )
+ ROM_LOAD( "sb-0.f1", 0x0300, 0x0100, CRC(6047d91b) SHA1(1ce025f9524c1033e48c5294ee7d360f8bfebe8d) )
+ ROM_LOAD( "sb-4.d6", 0x0400, 0x0100, CRC(4858968d) SHA1(20b5dbcaa1a4081b3139e7e2332d8fe3c9e55ed6) )
+ ROM_LOAD( "sb-8.k3", 0x0500, 0x0100, CRC(f6fad943) SHA1(b0a24ea7805272e8ebf72a99b08907bc00d5f82f) )
+ROM_END
+
+GAME( 2015, 1942c64, 1942, 1942, 1942, _1942_state, 1942, ROT270, "Minwah", "1942 with C64 music", MACHINE_SUPPORTS_SAVE )
+GAME( 2015, 1942fpa, 1942, 1942, 1942, _1942_state, 1942, ROT270, "cmonkey", "1942 with attract mode in free play", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, galagax, 1942, 1942, 1942, _1942_state, 1942, ROT270, "Jerky and Chris Moore", "Galaga X (1942 hack)", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/1943.cpp b/docs/release/src/hbmame/drivers/1943.cpp
new file mode 100644
index 00000000000..f2d25984e94
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/1943.cpp
@@ -0,0 +1,63 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/1943.cpp"
+
+ROM_START( 1943h )
+ ROM_REGION( 0x30000, "maincpu", 0 )
+ ROM_LOAD( "bme01addontext.12d", 0x00000, 0x08000, CRC(36ab7c07) SHA1(baa9342c6c509b96e3c28a79284300707461a0fc) )
+ ROM_LOAD( "bme02.13d", 0x10000, 0x10000, CRC(073fc57c) SHA1(6824fa387badd3c420f5c9e2b68159ac8a3aaec7) )
+ ROM_LOAD( "bme03.14d", 0x20000, 0x10000, CRC(835822c2) SHA1(2c2fad13f062069efa7721abb9d807fb5a7625b4) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "bm05.4k", 0x00000, 0x8000, CRC(ee2bd2d7) SHA1(4d2d019a9f8452fbbb247e893280568a2e86073e) )
+
+ ROM_REGION( 0x10000, "mcu", 0 )
+ ROM_LOAD( "bm.7k", 0x00000, 0x10000 , NO_DUMP )
+
+ ROM_REGION( 0x8000, "gfx1", 0 )
+ ROM_LOAD( "bm04.5h", 0x00000, 0x8000, CRC(46cb9d3d) SHA1(96fd0e714b91fe13a2ca0d185ada9e4b4baa0c0b) )
+
+ ROM_REGION( 0x40000, "gfx2", 0 )
+ ROM_LOAD( "bm15.10f", 0x00000, 0x8000, CRC(6b1a0443) SHA1(32337c840ccd6815fd5844c194365c58d708f6dc) )
+ ROM_LOAD( "bm16.11f", 0x08000, 0x8000, CRC(23c908c2) SHA1(42b83ff5781be9181802a21ff1b23c17ab1bc5a2) )
+ ROM_LOAD( "bm17.12f", 0x10000, 0x8000, CRC(46bcdd07) SHA1(38feda668be25d1adc04aa36afc73b07c1545f89) )
+ ROM_LOAD( "bm18.14f", 0x18000, 0x8000, CRC(e6ae7ba0) SHA1(959c306dc28b9be2adc54b3d46312d26764c7b8b) )
+ ROM_LOAD( "bm19.10j", 0x20000, 0x8000, CRC(868ababc) SHA1(1c7be905f53c63bad25fbbd9b3cf82d2c7749bc3) )
+ ROM_LOAD( "bm20.11j", 0x28000, 0x8000, CRC(0917e5d4) SHA1(62dd277bc1fa54cfe168ae2380bc147bd17f4205) )
+ ROM_LOAD( "bm21.12j", 0x30000, 0x8000, CRC(9bfb0d89) SHA1(f1bae7ec46edcf46c7af84c054e89b322f8c8972) )
+ ROM_LOAD( "bm22.14j", 0x38000, 0x8000, CRC(04f3c274) SHA1(932780c04abe285e1ec67b726b145175f73eafe0) )
+
+ ROM_REGION( 0x10000, "gfx3", 0 )
+ ROM_LOAD( "bm24.14k", 0x00000, 0x8000, CRC(11134036) SHA1(88da112ab9fc7e0d8f0e901f273715b950ae588c) )
+ ROM_LOAD( "bm25.14l", 0x08000, 0x8000, CRC(092cf9c1) SHA1(19fe3c714b1d52cbb21dea25cdee5af841f525db) )
+
+ ROM_REGION( 0x40000, "gfx4", 0 )
+ ROM_LOAD( "bm06.10a", 0x00000, 0x8000, CRC(97acc8af) SHA1(c9fa07cb61f6905408b355edabfe453fb652ff0d) )
+ ROM_LOAD( "bm07.11a", 0x08000, 0x8000, CRC(d78f7197) SHA1(6367c7e80e80d4a0d33d7840b5c843c63c80123e) )
+ ROM_LOAD( "bm08.12a", 0x10000, 0x8000, CRC(1a626608) SHA1(755c27a07728fd686168e9d9e4dee3d8f274892a) )
+ ROM_LOAD( "bm09.14a", 0x18000, 0x8000, CRC(92408400) SHA1(3ab299bad1ba115efead53ebd92254abe7a092ba) )
+ ROM_LOAD( "bm10.10c", 0x20000, 0x8000, CRC(8438a44a) SHA1(873629b00cf3f6d8976a7fdafe63cd16e47b7491) )
+ ROM_LOAD( "bm11.11c", 0x28000, 0x8000, CRC(6c69351d) SHA1(c213d5c3e76a5749bc32539604716dcef6dcb694) )
+ ROM_LOAD( "bm12.12c", 0x30000, 0x8000, CRC(5e7efdb7) SHA1(fef271a38dc1a9e45a0c6e27e28e713c77c8f8c9) )
+ ROM_LOAD( "bm13.14c", 0x38000, 0x8000, CRC(1143829a) SHA1(2b3a65e354a205c05a87f783e9938b64bc62396f) )
+
+ ROM_REGION( 0x10000, "gfx5", 0 )
+ ROM_LOAD( "bm14.5f", 0x0000, 0x8000, CRC(4d3c6401) SHA1(ce4f6dbf8fa030ad45cbb5afd58df27fed2d4618) )
+ ROM_LOAD( "bm23.8k", 0x8000, 0x8000, CRC(a52aecbd) SHA1(45b0283d84d394c16c35802463ca95d70d1062d4) )
+
+ ROM_REGION( 0x0c00, "proms", 0 )
+ ROM_LOAD( "bm1.12a", 0x0000, 0x0100, CRC(74421f18) SHA1(5b8b59f6f4e5ad358611de50608f47f41a5b0e51) )
+ ROM_LOAD( "bm2.13a", 0x0100, 0x0100, CRC(ac27541f) SHA1(1796c4c9041dfe28e6319576f21df1dbcb8d12bf) )
+ ROM_LOAD( "bm3.14a", 0x0200, 0x0100, CRC(251fb6ff) SHA1(d1118159b3d429d841e4efa938728ebedadd7ec5) )
+ ROM_LOAD( "bm5.7f", 0x0300, 0x0100, CRC(206713d0) SHA1(fa609f6d675af18c379838583505724d28bcff0e) )
+ ROM_LOAD( "bm10.7l", 0x0400, 0x0100, CRC(33c2491c) SHA1(13da924e4b182759c4aae49034f3a7cbe556ea65) )
+ ROM_LOAD( "bm9.6l", 0x0500, 0x0100, CRC(aeea4af7) SHA1(98f4570ee061e9aa58d8ed2d2f8ae59ce2ec5795) )
+ ROM_LOAD( "bm12.12m", 0x0600, 0x0100, CRC(c18aa136) SHA1(684f04d9a5b94ae1db5fb95763e65271f4cf8e01) )
+ ROM_LOAD( "bm11.12l", 0x0700, 0x0100, CRC(405aae37) SHA1(94a06f81b775c4e49d57d42fc064d3072a253bbd) )
+ ROM_LOAD( "bm8.8c", 0x0800, 0x0100, CRC(c2010a9e) SHA1(be9852500209066e2f0ff2770e0c217d1636a0b5) )
+ ROM_LOAD( "bm7.7c", 0x0900, 0x0100, CRC(b56f30c3) SHA1(9f5e6db464d21457a33ec8bdfdff069632b791db) )
+ ROM_LOAD( "bm4.12c", 0x0a00, 0x0100, CRC(91a8a2e1) SHA1(9583c87eff876f04bc2ccf7218cd8081f1bcdb94) )
+ ROM_LOAD( "bm6.4b", 0x0b00, 0x0100, CRC(0eaf5158) SHA1(bafd4108708f66cd7b280e47152b108f3e254fc9) )
+ROM_END
+
+GAME( 1987, 1943h, 1943, 1943, 1943, _1943_state, 1943, ROT270, "Capcom", "1943: The Battle of Midway (US, Rev C) (hacked)", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/arkanoid.cpp b/docs/release/src/hbmame/drivers/arkanoid.cpp
new file mode 100644
index 00000000000..c3a6b908018
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/arkanoid.cpp
@@ -0,0 +1,73 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/arkanoid.cpp"
+
+ROM_START( akblc2dx )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "akblc2dx.bin", 0x0000, 0x10000, CRC(e8ca9820) SHA1(ac97ebf285d1b8dd216dfc7024f7630fceac50b6) )
+
+ ROM_REGION( 0x18000, "gfx1", 0 )
+ ROM_LOAD( "a75-03.ic64", 0x00000, 0x8000, CRC(038b74ba) SHA1(ac053cc4908b4075f918748b89570e07a0ba5116) )
+ ROM_LOAD( "a75-04.ic63", 0x08000, 0x8000, CRC(71fae199) SHA1(5d253c46ccf4cd2976a5fb8b8713f0f345443d06) )
+ ROM_LOAD( "a75-05.ic62", 0x10000, 0x8000, CRC(c76374e2) SHA1(7520dd48de20db60a2038f134dcaa454988e7874) )
+
+ ROM_REGION( 0x0600, "proms", 0 )
+ ROM_LOAD( "a75-07.ic24", 0x0000, 0x0200, CRC(0af8b289) SHA1(6bc589e8a609b4cf450aebedc8ce02d5d45c970f) )
+ ROM_LOAD( "a75-08.ic23", 0x0200, 0x0200, CRC(abb002fb) SHA1(c14f56b8ef103600862e7930709d293b0aa97a73) )
+ ROM_LOAD( "a75-09.ic22", 0x0400, 0x0200, CRC(a7c6c277) SHA1(adaa003dcd981576ea1cc5f697d709b2d6b2ea29) )
+ROM_END
+
+ROM_START( akgcdx )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "akgcdx.bin", 0x0000, 0x10000, CRC(6e6ba560) SHA1(477a68caa1a9d0ce6e21f1164f8ec01434011308) )
+
+ ROM_REGION( 0x18000, "gfx1", 0 )
+ ROM_LOAD( "a75-03.ic64", 0x00000, 0x8000, CRC(038b74ba) SHA1(ac053cc4908b4075f918748b89570e07a0ba5116) )
+ ROM_LOAD( "a75-04.ic63", 0x08000, 0x8000, CRC(71fae199) SHA1(5d253c46ccf4cd2976a5fb8b8713f0f345443d06) )
+ ROM_LOAD( "a75-05.ic62", 0x10000, 0x8000, CRC(c76374e2) SHA1(7520dd48de20db60a2038f134dcaa454988e7874) )
+
+ ROM_REGION( 0x0600, "proms", 0 )
+ ROM_LOAD( "a75-07.ic24", 0x0000, 0x0200, CRC(0af8b289) SHA1(6bc589e8a609b4cf450aebedc8ce02d5d45c970f) )
+ ROM_LOAD( "a75-08.ic23", 0x0200, 0x0200, CRC(abb002fb) SHA1(c14f56b8ef103600862e7930709d293b0aa97a73) )
+ ROM_LOAD( "a75-09.ic22", 0x0400, 0x0200, CRC(a7c6c277) SHA1(adaa003dcd981576ea1cc5f697d709b2d6b2ea29) )
+ROM_END
+
+ROM_START( aktaytdx )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "aktaytdx.bin", 0x0000, 0x10000, CRC(8606f0ee) SHA1(d1edb58a9b29a354023484089d0ca5f32e9985e4) )
+
+ ROM_REGION( 0x18000, "gfx1", 0 )
+ ROM_LOAD( "a75-03.ic64", 0x00000, 0x8000, CRC(038b74ba) SHA1(ac053cc4908b4075f918748b89570e07a0ba5116) )
+ ROM_LOAD( "a75-04.ic63", 0x08000, 0x8000, CRC(71fae199) SHA1(5d253c46ccf4cd2976a5fb8b8713f0f345443d06) )
+ ROM_LOAD( "a75-05.ic62", 0x10000, 0x8000, CRC(c76374e2) SHA1(7520dd48de20db60a2038f134dcaa454988e7874) )
+
+ ROM_REGION( 0x0600, "proms", 0 )
+ ROM_LOAD( "a75-07.ic24", 0x0000, 0x0200, CRC(0af8b289) SHA1(6bc589e8a609b4cf450aebedc8ce02d5d45c970f) )
+ ROM_LOAD( "a75-08.ic23", 0x0200, 0x0200, CRC(abb002fb) SHA1(c14f56b8ef103600862e7930709d293b0aa97a73) )
+ ROM_LOAD( "a75-09.ic22", 0x0400, 0x0200, CRC(a7c6c277) SHA1(adaa003dcd981576ea1cc5f697d709b2d6b2ea29) )
+ROM_END
+
+ROM_START( arkll32 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "lle_a75_01-1.rom", 0x0000, 0x8000, CRC(8e6d7e7f) SHA1(3682c548c1bc3ceea2ff685fc5b82e61ed0044d2) )
+ ROM_LOAD( "lle_a75_11.rom", 0x8000, 0x8000, CRC(845fa7b0) SHA1(e89ab456281bcb83a61a89b347dc93303928d365) )
+
+ ROM_REGION( 0x0800, "mcu:mcu", 0 )
+ ROM_LOAD( "a75-06__bootleg_68705.ic14", 0x0000, 0x0800, CRC(515d77b6) SHA1(a302937683d11f663abd56a2fd7c174374e4d7fb) )
+
+ ROM_REGION( 0x18000, "gfx1", 0 )
+ ROM_LOAD( "a75-03.ic64", 0x00000, 0x8000, CRC(038b74ba) SHA1(ac053cc4908b4075f918748b89570e07a0ba5116) )
+ ROM_LOAD( "a75-04.ic63", 0x08000, 0x8000, CRC(71fae199) SHA1(5d253c46ccf4cd2976a5fb8b8713f0f345443d06) )
+ ROM_LOAD( "a75-05.ic62", 0x10000, 0x8000, CRC(c76374e2) SHA1(7520dd48de20db60a2038f134dcaa454988e7874) )
+
+ ROM_REGION( 0x0600, "proms", 0 )
+ ROM_LOAD( "a75-07.ic24", 0x0000, 0x0200, CRC(0af8b289) SHA1(6bc589e8a609b4cf450aebedc8ce02d5d45c970f) )
+ ROM_LOAD( "a75-08.ic23", 0x0200, 0x0200, CRC(abb002fb) SHA1(c14f56b8ef103600862e7930709d293b0aa97a73) )
+ ROM_LOAD( "a75-09.ic22", 0x0400, 0x0200, CRC(a7c6c277) SHA1(adaa003dcd981576ea1cc5f697d709b2d6b2ea29) )
+ROM_END
+
+
+GAME( 2000, akblc2dx, arkanoid, bootleg, arkangc, arkanoid_state, arkblock, ROT90, "hack", "Block Deluxe (Game Corporation)", 0 )
+GAME( 2000, akgcdx, arkanoid, bootleg, arkangc, arkanoid_state, arkgcbl, ROT90, "hack", "Arkanoid Deluxe (Game Corporation)", 0 )
+GAME( 2000, aktaytdx, arkanoid, bootleg, arktayt2, driver_device, 0, ROT90, "hack", "Arkanoid Deluxe (Japan, Tayto)", 0 )
+GAME( 2000, arkll32, arkanoid, p3mcu, arkanoidj, driver_device, 0, ROT90, "hack", "Arkanoid LL32", 0 )
diff --git a/docs/release/src/hbmame/drivers/asteroid.cpp b/docs/release/src/hbmame/drivers/asteroid.cpp
new file mode 100644
index 00000000000..79e5165856c
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/asteroid.cpp
@@ -0,0 +1,145 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/asteroid.cpp"
+
+static INPUT_PORTS_START( astdelu4 )
+ PORT_INCLUDE(astdelux)
+ PORT_MODIFY("IN1")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) // Coin Left
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) // Coin Center
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN3 ) // Coin Right
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START1 )
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START2 )
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_CODE(KEYCODE_LALT) PORT_CODE(JOYCODE_BUTTON2) // thrust
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CODE(KEYCODE_RIGHT) PORT_CODE(JOYCODE_X_RIGHT_SWITCH) // right
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CODE(KEYCODE_LEFT) PORT_CODE(JOYCODE_X_LEFT_SWITCH) // left
+INPUT_PORTS_END
+
+
+
+/*************************************
+ *
+ * ROM definitions
+ *
+ *************************************/
+
+ROM_START( starslayer ) // This name does not appear anywhere, but it does say Star Destroyer at the end.
+ ROM_REGION( 0x8000, "maincpu", 0 )
+ ROM_LOAD( "035145-02.ef2", 0x6800, 0x0800, CRC(0cc75459) SHA1(2af85c9689b878155004da47fedbde5853a18723) )
+ ROM_LOAD( "035144-02.h2", 0x7000, 0x0800, CRC(096ed35c) SHA1(064d680ded7f30c543f93ae5ca85f90d550f73e5) )
+ ROM_LOAD( "035143-02.j2", 0x7800, 0x0800, CRC(312caa02) SHA1(1ce2eac1ab90b972e3f1fc3d250908f26328d6cb) )
+ /* Vector ROM */
+ ROM_LOAD( "035127-02.ss", 0x5000, 0x0800, CRC(edf610a2) SHA1(bbbf62820a3b06488201137c735c0d8c03cf535c) )
+
+ /* DVG PROM */
+ ROM_REGION( 0x100, "user1", 0 )
+ ROM_LOAD( "034602-01.c8", 0x0000, 0x0100, CRC(97953db8) SHA1(8cbded64d1dd35b18c4d5cece00f77e7b2cab2ad) )
+ROM_END
+
+ROM_START( asteroid6 )
+ ROM_REGION( 0x8000, "maincpu", 0 )
+ ROM_LOAD( "asteroid6.ef2", 0x6800, 0x0800, CRC(6cdf25a3) SHA1(96e7882e5e144757d3adc51de8bfd5f583c0302e) )
+ ROM_LOAD( "asteroid6.h2", 0x7000, 0x0800, CRC(b4dcfbde) SHA1(447e888c4af704c9f30801b2417617b7caa73921) )
+ ROM_LOAD( "035143-02.j2", 0x7800, 0x0800, CRC(312caa02) SHA1(1ce2eac1ab90b972e3f1fc3d250908f26328d6cb) )
+ /* Vector ROM */
+ ROM_LOAD( "035127-02.np3", 0x5000, 0x0800, CRC(8b71fd9e) SHA1(8cd5005e531eafa361d6b7e9eed159d164776c70) )
+
+ ROM_REGION( 0x0100, "user1", 0 )
+ ROM_LOAD( "034602-01.c8", 0x0000, 0x0100, CRC(97953db8) SHA1(8cbded64d1dd35b18c4d5cece00f77e7b2cab2ad) )
+ROM_END
+
+ROM_START( astdelux4 )
+ ROM_REGION( 0x8000, "maincpu", 0 )
+ ROM_LOAD( "036430.02", 0x6000, 0x0800, CRC(cbcfba4f) SHA1(7e0ed90588e47c89182a18a8f5815ad052a42674) )
+ ROM_LOAD( "036431.02", 0x6800, 0x0800, CRC(3249e623) SHA1(7dd7f4531680e4fe2efb14e22466458c2e2ea4e7) )
+ ROM_LOAD( "036432.02", 0x7000, 0x0800, CRC(6d720c41) SHA1(198218cd2f43f8b83e4463b1f3a8aa49da5015e4) )
+ ROM_LOAD( "036433.03", 0x7800, 0x0800, CRC(0dcc0be6) SHA1(bf10ffb0c4870e777d6b509cbede35db8bb6b0b8) )
+ /* Vector ROM */
+ ROM_LOAD( "036800.02", 0x4800, 0x0800, CRC(5c0ca7a6) SHA1(4abbac4a4974c89a0b44e1a92ea0c8b9095d9594) )
+ ROM_LOAD( "036799.01", 0x5000, 0x0800, CRC(7d511572) SHA1(1956a12bccb5d3a84ce0c1cc10c6ad7f64e30b40) )
+ /* DVG PROM */
+ ROM_REGION( 0x100, "user1", 0 )
+ ROM_LOAD( "034602-01.c8", 0x0000, 0x0100, CRC(97953db8) SHA1(8cbded64d1dd35b18c4d5cece00f77e7b2cab2ad) )
+ROM_END
+
+
+GAME( 1979, asteroid6, asteroid, asteroid, asteroid, driver_device, 0, ROT0, "Clay Cowgill", "Asteroids (Six-Bullet Hack)", MACHINE_SUPPORTS_SAVE )
+GAMEL(1980, astdelux4, asteroid, astdelux, astdelu4, driver_device, 0, ROT0, "Atari", "Asteroids Deluxe (Unknown Revision) [h]", MACHINE_SUPPORTS_SAVE, layout_astdelux )
+GAME( 1979, starslayer, asteroid, asteroid, asteroid, driver_device, 0, ROT0, "Nufekop", "Starslayer (hack of Asteroids (rev 2))", MACHINE_SUPPORTS_SAVE )
+
+
+/*********************************************************************************************************************/
+
+#if 0
+/* Asteroids Multigame
+
+such a confusing pile of roms
+
+*/
+
+class amg_state : public asteroid_state
+{
+public:
+ amg_state(const machine_config &mconfig, device_type type, const char *tag)
+ : asteroid_state(mconfig, type, tag)
+// , m_maincpu(*this, "maincpu")
+// , m_p_ram(*this, "ram")
+ { }
+
+ DECLARE_DRIVER_INIT(amg);
+};
+
+ROM_START( amg )
+ ROM_REGION( 0x8000, "maincpu", 0 )
+ ROM_LOAD( "035145-02.ef2", 0x6800, 0x0800, CRC(0cc75459) SHA1(2af85c9689b878155004da47fedbde5853a18723) )
+ ROM_LOAD( "035144-02.h2", 0x7000, 0x0800, CRC(096ed35c) SHA1(064d680ded7f30c543f93ae5ca85f90d550f73e5) )
+ ROM_LOAD( "035143-02.j2", 0x7800, 0x0800, CRC(312caa02) SHA1(1ce2eac1ab90b972e3f1fc3d250908f26328d6cb) )
+ /* Vector ROM */
+ ROM_LOAD( "035127.02", 0x5000, 0x0800, CRC(8b71fd9e) SHA1(8cd5005e531eafa361d6b7e9eed159d164776c70) )
+
+ /* DVG PROM */
+ ROM_REGION( 0x100, "user1", 0 )
+ ROM_LOAD( "034602-01.c8", 0x0000, 0x0100, CRC(97953db8) SHA1(8cbded64d1dd35b18c4d5cece00f77e7b2cab2ad) )
+
+ ROM_REGION( 0x20000, "user2", 0 )
+ ROM_LOAD( "adla-11a.512", 0x0000, 0x10000, CRC(43ad0f95) SHA1(6105926b4d734ec12e23579faa4453b4d5a981f9) )
+ ROM_LOAD( "adlv-11a.256", 0x10000, 0x8000, CRC(a03b957c) SHA1(45819fafdb34b9da0c3100e5ff143ba8e164c9d0) )
+
+ ROM_REGION( 0x20000, "user3", ROMREGION_ERASEFF )
+ROM_END
+
+DRIVER_INIT_MEMBER( amg_state, amg )
+{
+ UINT8 *src = memregion("user2")->base();
+// int len = memregion("user1")->bytes();
+ UINT8 *dest = memregion("user3")->base();
+
+ offs_t i,j;
+
+ for (i = 0; i < 0x10000; i++)
+ src[i] = BITSWAP8(src[i], 3, 4, 5, 6, 7, 1, 2, 0);
+
+ for (i = 0; i < 0x10000; i++)
+ {
+ j = BITSWAP16(i, 15, 5, 4, 7, 0, 10, 1, 11, 6, 2, 12, 3, 9, 8, 13, 14);
+
+ if (!BIT(i, 10))
+ j ^= 0x100;
+
+ dest[j] = src[i];
+ }
+
+ for (i = 0x10000; i < 0x18000; i++)
+ src[i] = BITSWAP8(src[i], 3, 4, 5, 6, 7, 1, 2, 0);
+
+ for (i = 0x10000; i < 0x18000; i++)
+ {
+ j = BITSWAP16(i, 15, 6, 5, 12, 11, 10, 9, 8, 7, 14, 13, 4, 3, 2, 1, 0);
+ dest[j|0x10000] = src[i];
+ }
+}
+
+
+GAME( 2002, amg, asteroid, asteroid, asteroid, amg_state, amg, ROT0, "Braze", "Asteroids Multigame", MACHINE_NOT_WORKING )
+#endif
+
diff --git a/docs/release/src/hbmame/drivers/astrocde.cpp b/docs/release/src/hbmame/drivers/astrocde.cpp
new file mode 100644
index 00000000000..61cd79fe320
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/astrocde.cpp
@@ -0,0 +1,29 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/astrocde.cpp"
+
+
+ROM_START( tst_gorf )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "gorfmd.bin", 0x0000, 0x1000, CRC(3776a6a1) SHA1(bd6b0a1dd587e8d4b325ef4133b8e3797416d8d2) )
+ROM_END
+
+ROM_START( tst_gor1 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "gorftest.bin", 0x0000, 0x0627, CRC(676137a2) SHA1(d99192a16add7b188b29db7f9497b6c129d81144) )
+ROM_END
+
+ROM_START( tst_wow2 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "wowmd02b.x1", 0x0000, 0x1000, CRC(0af2f2c8) SHA1(e883afe696c2a444c8691041f1b9e0e015dff517) )
+ROM_END
+
+ROM_START( tst_wow3 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "wowmd030.x1", 0x0000, 0x1000, CRC(f493ec4d) SHA1(030cd12e7a7e9ac346e8299df83b62480004c954) )
+ROM_END
+
+GAME( 2005, tst_gorf, 0, gorf, gorf, astrocde_state, gorf, ROT270, "David Turner", "Test Rom - Gorf", MACHINE_SUPPORTS_SAVE )
+GAME( 2006, tst_gor1, 0, gorf, gorf, astrocde_state, gorf, ROT270, "Mark Spaeth", "Test Rom - Gorf Complete Memory Diagnostics", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, tst_wow2, 0, wow, wow, astrocde_state, wow, ROT0, "David Turner", "Test Rom - Wizard of Wor (ver 0.2b)", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, tst_wow3, 0, wow, wow, astrocde_state, wow, ROT0, "David Turner", "Test Rom - Wizard of Wor (ver 0.3)", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/astrof.cpp b/docs/release/src/hbmame/drivers/astrof.cpp
new file mode 100644
index 00000000000..4de0a573083
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/astrof.cpp
@@ -0,0 +1,19 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/astrof.cpp"
+
+ROM_START( astrofbl )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "afii.6", 0xd000, 0x0800, CRC(d6cd13a4) SHA1(359b00b02f4256f1138c8526214c6a34d2e5b47a) )
+ ROM_LOAD( "afii.5", 0xd800, 0x0800, CRC(6fd3c4df) SHA1(73aad03e2588ac9f249d5751eb4a7c7cd12fd3b9) )
+ ROM_LOAD( "afii.4", 0xe000, 0x0800, CRC(9612dae3) SHA1(8ee1797c212e06c381972b7b555f240ff317d75d) )
+ ROM_LOAD( "afii.3", 0xe800, 0x0800, CRC(5a0fef42) SHA1(92a575abdf17bbb5ed6bc67479049523a985aa75) )
+ ROM_LOAD( "afii.2", 0xf000, 0x0800, CRC(69f8a4fc) SHA1(9f9a935f19187640018009ade92f8993912ef6c2) )
+ ROM_LOAD( "afii.1", 0xf800, 0x0800, CRC(322c09d2) SHA1(89723e3d998ff9cb9b174bca4b072b412b290c04) )
+
+ ROM_REGION( 0x0020, "proms", 0 )
+ ROM_LOAD( "astrf_bl.clr", 0x0000, 0x0020, CRC(6be69d4b) SHA1(4197cf9110db08e45b5d18aedb0fde96779491c1) )
+ROM_END
+
+
+GAME( 1979, astrofbl, astrof, astrof, astrof, driver_device, 0, ROT90, "Hack", "Astro Fighter (Black Background)", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/asuka.cpp b/docs/release/src/hbmame/drivers/asuka.cpp
new file mode 100644
index 00000000000..11799a90c3f
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/asuka.cpp
@@ -0,0 +1,27 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/asuka.cpp"
+
+ROM_START( asukac )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "b68-13c.ic23", 0x00000, 0x20000, CRC(356a3151) SHA1(a2929a30bcd45962a4fc08a980e82d9914078c29) )
+ ROM_LOAD16_BYTE( "b68-12c.ic8", 0x00001, 0x20000, CRC(8bd073d4) SHA1(53453cb0dd4aa606215922ad8363e536524dc0f3) )
+ ROM_LOAD16_WORD( "b68-03c.ic30", 0x80000, 0x80000, CRC(3d0d7798) SHA1(a63d9fc043e8ba0b79a7606c17faac406e0b92ec) )
+
+ ROM_REGION( 0x80000, "gfx1", 0 )
+ ROM_LOAD( "b68-01c.ic3", 0x00000, 0x80000, CRC(d5dec087) SHA1(1f8888c15cb08c1c0d27ce29cb71106360c9c852) )
+
+ ROM_REGION( 0xa0000, "gfx2", 0 )
+ ROM_LOAD ( "b68-02c.ic6", 0x00000, 0x80000, CRC(09927d23) SHA1(b9761286feaa14c4eb6fc87ec35e7245c318d687) )
+ 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 )
+ ROM_LOAD( "b68-11.ic27", 0x00000, 0x04000, CRC(c378b508) SHA1(1b145fe736b924f298e02532cf9f26cc18b42ca7) )
+ ROM_CONTINUE( 0x10000, 0x0c000 )
+
+ ROM_REGION( 0x10000, "ymsnd", 0 )
+ ROM_LOAD( "b68-10.ic24", 0x00000, 0x10000, CRC(387aaf40) SHA1(47c583564ef1d49ece15f97221b2e073e8fb0544) )
+ROM_END
+
+GAME( 1988, asukac, asuka, asuka, asuka, driver_device, 0, ROT270, "Taito Corporation", "Asuka & Asuka (Chinese)", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/atari_s1.cpp b/docs/release/src/hbmame/drivers/atari_s1.cpp
new file mode 100644
index 00000000000..b6ec2ce695d
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/atari_s1.cpp
@@ -0,0 +1,20 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/atari_s1.cpp"
+
+/*-------------------------------------------------------------------
+ The Atarians (working bootleg)
+Game modified to work in emulation from original set (atarians)
+
+Except, it doesn't work.
+-------------------------------------------------------------------*/
+ROM_START(atarianb)
+ ROM_REGION(0x10000, "maincpu", 0)
+ ROM_LOAD("atarianb.e00", 0x7000, 0x0800, CRC(74fc86e4) SHA1(135d75e5c03feae0929fa84caa3c802353cdd94e))
+ ROM_LOAD("atarian.e0", 0x7800, 0x0800, CRC(45cb0427) SHA1(e286930ca36bdd0f79acefd142d2a5431fa8005b))
+
+ ROM_REGION(0x0200, "proms", 0)
+ ROM_LOAD("82s130.bin", 0x0000, 0x0200, CRC(da1f77b4) SHA1(b21fdc1c6f196c320ec5404013d672c35f95890b))
+ROM_END
+
+GAME( 2002, atarianb, atarians, atari_s1, atari_s1, driver_device, 0, ROT0, "Atari / Gaston", "The Atarians (modified for emulation)", MACHINE_NOT_WORKING | MACHINE_MECHANICAL)
diff --git a/docs/release/src/hbmame/drivers/atarisy1.cpp b/docs/release/src/hbmame/drivers/atarisy1.cpp
new file mode 100644
index 00000000000..c545f07b559
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/atarisy1.cpp
@@ -0,0 +1,33 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+
+#include "../mame/drivers/atarisy1.cpp"
+ROM_START( ataris1hw )
+ ROM_REGION( 0x88000, "maincpu", 0 )
+ MOTHERBOARD_BIOS
+ ROM_LOAD16_BYTE( "136036.432", 0x10000, 0x08000, CRC(db3f1d4e) SHA1(58d6a88f73f90c8fe2981e60fbf6f359e0b88ea7) )
+ ROM_LOAD16_BYTE( "136036.431", 0x10001, 0x08000, CRC(e439e2a1) SHA1(4346252c81336c087edfbd2e334d488f13dcaba3) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "136036.153", 0x4000, 0x4000, CRC(95294641) SHA1(00f90a0d49d2c77d5288080036f81a74ad31f8bc) )
+ ROM_LOAD( "136036.154", 0x8000, 0x4000, CRC(cbfc6adb) SHA1(ee132eced924435f1214e2997533e866a3e5364b) )
+ ROM_LOAD( "136036.155", 0xc000, 0x4000, CRC(fd1a6878) SHA1(28e1b2187f58098e5140d9a88bda969965758f26) )
+
+ ROM_REGION( 0x2000, "alpha", 0 )
+ MOTHERBOARD_ALPHA
+
+ ROM_REGION( 0x200000, "tiles", ROMREGION_INVERT | ROMREGION_ERASEFF )
+ ROM_LOAD( "136036.135", 0x000000, 0x08000, CRC(a8fa9870) SHA1(375cb16ccaae62cf429bf1a7d2c6de1829b86877) )
+ ROM_LOAD( "136036.139", 0x010000, 0x08000, CRC(6959604d) SHA1(94f130507981ec01240252ab7b044f6d1e19280e) )
+ ROM_LOAD( "136036.143", 0x020000, 0x08000, CRC(b6b14274) SHA1(441c0447721afe0aadf320e1b0c40ebf97d0e485) )
+ ROM_LOAD( "136036.147", 0x030000, 0x08000, CRC(2de2e834) SHA1(ba7640ea7440250152b1be71e65e3480f782011f) )
+
+ ROM_REGION( 0x400, "proms", 0 )
+ ROM_LOAD( "136036.152", 0x000, 0x200, CRC(4f96e57c) SHA1(271633a0aacd1d1efe2917728b73e90010c64d2c) )
+ ROM_LOAD( "136036.151", 0x200, 0x200, CRC(7daf351f) SHA1(95c13d81a47440f847af7b19632cc032380b9ff4) )
+
+ ROM_REGION( 0x201, "motherbrd_proms", 0)
+ MOTHERBOARD_PROMS
+ROM_END
+
+GAME( 2017, ataris1hw, indytemp, indytemp, indytemp, atarisy1_state, indytemp, ROT0, "Luigi30", "Atari System 1 Hello World", 0 )
diff --git a/docs/release/src/hbmame/drivers/bagman.cpp b/docs/release/src/hbmame/drivers/bagman.cpp
new file mode 100644
index 00000000000..e17370e35aa
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/bagman.cpp
@@ -0,0 +1,53 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/bagman.cpp"
+
+ROM_START( bagturbo )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "bagt_a4_9e.bin", 0x0000, 0x1000, CRC(c070635c) SHA1(98c920f9ab377258d376e62337f14df3e51badaa) )
+ ROM_LOAD( "a5-9f", 0x1000, 0x1000, CRC(2ddf6bb9) SHA1(151068dddc55163bb6f925f68e5d04e347ded6a5) )
+ ROM_LOAD( "a4_9j.bin", 0x2000, 0x1000, CRC(b2da8b77) SHA1(ea36cd6be42c5548a9a91054aeebb4b985ba15c9) )
+ ROM_LOAD( "a5-9k", 0x3000, 0x1000, CRC(f91d617b) SHA1(a3323b51277e08747701cc4e2d3a9c466e96d4c1) )
+ ROM_LOAD( "bagt_a4_9m.bin", 0x4000, 0x1000, CRC(8cb278fe) SHA1(807a4f1d89dcbd7482ef86f4b2e88cc2f64abbf4) )
+ ROM_LOAD( "a5-9n", 0x5000, 0x1000, CRC(68e4b64d) SHA1(55950d7c07c621cafa001d5d3bfec6bbc02712e2) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "a2_1e.bin", 0x0000, 0x1000, CRC(f217ac09) SHA1(a9716674401dff27344a01df8121b6b648688680) )
+ ROM_LOAD( "j1_b04.bin", 0x1000, 0x1000, CRC(c680ef04) SHA1(79406bc786374abfcd9f548268c445b5c8d8858d) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "a2_1c.bin", 0x0000, 0x1000, CRC(f3e11bd7) SHA1(43ee00ff777008c89f619eb183e7c5e63f6c7694) )
+ ROM_LOAD( "a2_1f.bin", 0x1000, 0x1000, CRC(d0f7105b) SHA1(fb382703850a4ded567706e02ebb7f3e22531b7c) )
+
+ ROM_REGION( 0x0060, "proms", 0 )
+ ROM_LOAD( "p3.bin", 0x0000, 0x0020, CRC(2a855523) SHA1(91e032233fee397c90b7c1662934aca9e0671482) )
+ ROM_LOAD( "r3.bin", 0x0020, 0x0020, CRC(ae6f1019) SHA1(fd711882b670380cb4bd909c840ba06277b8fbe3) )
+
+ ROM_REGION( 0x0020, "5110ctrl", 0)
+ ROM_LOAD( "r6.bin", 0x0000, 0x0020, CRC(c58a4f6a) SHA1(35ef244b3e94032df2610aa594ea5670b91e1449) )
+
+ ROM_REGION( 0x2000, "tmsprom", 0 )
+ ROM_LOAD( "r9_b11.bin", 0x0000, 0x1000, CRC(2e0057ff) SHA1(33e3ffa6418f86864eb81e5e9bda4bf540c143a6) )
+ ROM_LOAD( "t9_b12.bin", 0x1000, 0x1000, CRC(b2120edd) SHA1(52b89dbcc749b084331fa82b13d0876e911fce52) )
+ROM_END
+
+ROM_START( pickinpi )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "9e", 0x0000, 0x1000, CRC(efd0bd43) SHA1(b70a471a809c08286a82934046357fb46556f641) )
+ ROM_LOAD( "9f", 0x1000, 0x1000, CRC(b5785a23) SHA1(9eddda5695981cb0470dfea68d5e2e8e220382b1) )
+ ROM_LOAD( "9j", 0x2000, 0x1000, CRC(65ee9fd4) SHA1(2efa40c19a7b0644ef4f4b2ce6a025b2b880239d) )
+ ROM_LOAD( "9k", 0x3000, 0x1000, CRC(7b23350e) SHA1(dff19602a0e46ca0bcdbdf2a1d61fd2c80ac70e7) )
+ ROM_LOAD( "9m", 0x4000, 0x1000, CRC(935a7248) SHA1(d9af4405d51ce1ff6c4b84709dc85c0db88b1d54) )
+ ROM_LOAD( "9n", 0x5000, 0x1000, CRC(52485d1d) SHA1(c309eec506f978388463f20d56d958e6639c31e8) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "1f", 0x0000, 0x1000, CRC(c5e96ac6) SHA1(b2d740b6d07c765e8eb2dce31fe285a15a9fe597) )
+ ROM_LOAD( "1j", 0x1000, 0x1000, CRC(41c4ac1c) SHA1(aac58a9d675a9b70140d82341231bcf6c77c7b41) )
+
+ ROM_REGION( 0x0040, "proms", 0 )
+ ROM_LOAD( "6331-1pi.3p", 0x0000, 0x0020, CRC(b1dd1e68) SHA1(059c5f6c43e62b9381f4a0fa322dbe59c29812f5) )
+ ROM_LOAD( "6331-1pi.3r", 0x0020, 0x0020, CRC(47fadc93) SHA1(3ba46957e664a2ea639a97a0c199a9636861ca50) )
+ROM_END
+
+GAME(1991, bagturbo, bagman, bagman, bagman, bagman_state, bagman, ROT270, "Tim Arcadecollecting", "Bagman Turbo (Stern set 1) [c]", 0 ) // http://www.arcadecollecting.com/hacks/bagman
+GAME(1983, pickinpi, pickin, pickin, pickin, driver_device, 0, ROT270, "Pi", "Pickin' (Color Hack)", 0 )
diff --git a/docs/release/src/hbmame/drivers/blktiger.cpp b/docs/release/src/hbmame/drivers/blktiger.cpp
new file mode 100644
index 00000000000..ad393e29450
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/blktiger.cpp
@@ -0,0 +1,41 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/blktiger.cpp"
+
+ROM_START( blkdrgonk )
+ ROM_REGION( 0x50000, "maincpu", 0 )
+ ROM_LOAD( "blkdrgnk.5e", 0x00000, 0x08000, CRC(e713b486) SHA1(468a75120080f9529f2b56d66c72c767e7ee86df) )
+ ROM_LOAD( "blkdrgon.6e", 0x10000, 0x10000, CRC(7d39c26f) SHA1(562a3f578e109ae020f65e341c876ad7e510a311) )
+ ROM_LOAD( "blkdrgon.8e", 0x20000, 0x10000, CRC(d1bf3757) SHA1(b19f8b986406bde65ac7f0d55d54f87b37f5e42f) )
+ ROM_LOAD( "blkdrgon.9e", 0x30000, 0x10000, CRC(4d1d6680) SHA1(e137624c59392de6aaffeded99b024938360bd25) )
+ ROM_LOAD( "blkdrgon.10e", 0x40000, 0x10000, CRC(c8d0c45e) SHA1(66c2e5a74c5875a2c8e28740fe944bd943246ce5) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "bd-06.1l", 0x0000, 0x8000, CRC(2cf54274) SHA1(87df100c65999ba1e9d358ffd0fe4bba23ae0efb) )
+
+ ROM_REGION( 0x10000, "mcu", 0 )
+ ROM_LOAD( "bd.6k", 0x0000, 0x1000, CRC(ac7d14f1) SHA1(46fd6b43f10312e3e8d3c9e0c0fd616af98fdbad) )
+
+ ROM_REGION( 0x08000, "gfx1", 0 )
+ ROM_LOAD( "blkdrgnk.2n", 0x00000, 0x08000, CRC(3b432217) SHA1(da0b3fe16fb5192f6514bdf5fef85a889c7b2f0a) )
+
+ ROM_REGION( 0x40000, "gfx2", 0 )
+ ROM_LOAD( "blkdrgon.5b", 0x00000, 0x10000, CRC(22d0a4b0) SHA1(f9402ea9ffedcb280497a63c5eb352de9d4ca3fd) )
+ ROM_LOAD( "blkdrgon.4b", 0x10000, 0x10000, CRC(c8b5fc52) SHA1(621e899285ce6302e5b25d133d9cd52c09b7b202) )
+ ROM_LOAD( "blkdrgon.9b", 0x20000, 0x10000, CRC(9498c378) SHA1(841934ddef724faf04162c4be4aea1684d8d8e0f) )
+ ROM_LOAD( "blkdrgon.8b", 0x30000, 0x10000, CRC(5b0df8ce) SHA1(57d10b48bd61b0224ce21b36bde8d2479e8e5df4) )
+
+ ROM_REGION( 0x40000, "gfx3", 0 )
+ ROM_LOAD( "bd-08.5a", 0x00000, 0x10000, CRC(e2f17438) SHA1(3e5fdae07d40febedc59c7c7c4d9c6f0d72b58b5) )
+ ROM_LOAD( "bd-07.4a", 0x10000, 0x10000, CRC(5fccbd27) SHA1(33c55aa9c12b3121ca5c3b4c39a9b152b6946461) )
+ ROM_LOAD( "bd-10.9a", 0x20000, 0x10000, CRC(fc33ccc6) SHA1(d492626a88565c2626f98ecb1d74535f1ad68e4c) )
+ ROM_LOAD( "bd-09.8a", 0x30000, 0x10000, CRC(f449de01) SHA1(f6b40e9eb2471b89c42ab84f4214295d284db0c3) )
+
+ ROM_REGION( 0x0400, "proms", 0 )
+ ROM_LOAD( "bd01.8j", 0x0000, 0x0100, CRC(29b459e5) SHA1(0034734a533df3dea16b7b48e072485d7f26f850) )
+ ROM_LOAD( "bd02.9j", 0x0100, 0x0100, CRC(8b741e66) SHA1(6c1fda59936a7217b05949f5c54b1f91f4b49dbe) )
+ ROM_LOAD( "bd03.11k", 0x0200, 0x0100, CRC(27201c75) SHA1(c54d87f06bfe0b0908389c005014d97156e272c2) )
+ ROM_LOAD( "bd04.11l", 0x0300, 0x0100, CRC(e5490b68) SHA1(40f9f92efe7dd97b49144aec02eb509834056915) )
+ROM_END
+
+GAME( 1987, blkdrgonk, blktiger, blktiger, blktiger, driver_device, 0, ROT0, "hack", "Black Dragon (Korean)", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/bombjack.cpp b/docs/release/src/hbmame/drivers/bombjack.cpp
new file mode 100644
index 00000000000..3816f75d1f8
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/bombjack.cpp
@@ -0,0 +1,96 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/bombjack.cpp"
+
+ROM_START( bmbjckgr )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "09_j01b.bin", 0x0000, 0x2000, CRC(c668dc30) SHA1(51dd6a2688b42e9f28f0882bd76f75be7ec3222a) )
+ ROM_LOAD( "10_l01b.bin", 0x2000, 0x2000, CRC(52a1e5fb) SHA1(e1cdc4b4efbc6c7a1e4fa65019486617f2acba1b) )
+ ROM_LOAD( "11_m01b.bin", 0x4000, 0x2000, CRC(b68a062a) SHA1(43bae56494ac0202aaa8f1ed5c1ed1bff775b2b8) )
+ ROM_LOAD( "12g_n01b.bin", 0x6000, 0x2000, CRC(b457909f) SHA1(807b30742a89a327721596c4f5d091912f0ab4ec) )
+ ROM_LOAD( "13g.1r", 0xc000, 0x2000, CRC(f8e14e2c) SHA1(a5dff87ad26eff6a07313594d9bce2ea568c8f26) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "01_h03t.bin", 0x0000, 0x2000, CRC(8407917d) SHA1(318face9f7a7ab6c7eeac773995040425e780aaf) )
+
+ ROM_REGION( 0x3000, "chars", 0 )
+ ROM_LOAD( "03g_e08t.bin", 0x0000, 0x1000, CRC(df120e35) SHA1(b389320cd95fe3ac7bfb613098140d169c0485b1) )
+ ROM_LOAD( "04g_h08t.bin", 0x1000, 0x1000, CRC(2af09b2b) SHA1(4ce87353a941c6527c9426e578ed2a6c7286175e) )
+ ROM_LOAD( "05g_k08t.bin", 0x2000, 0x1000, CRC(4362417c) SHA1(680a5c06c938e7cca33880bc18a2b592a4204ec8) )
+
+ ROM_REGION( 0x6000, "tiles", 0 )
+ ROM_LOAD( "06_l08t.bin", 0x0000, 0x2000, CRC(51eebd89) SHA1(515128a3971fcb97b60c5b6bdd2b03026aec1921) )
+ ROM_LOAD( "07_n08t.bin", 0x2000, 0x2000, CRC(9dd98e9d) SHA1(6db6006a6e20ff7c243d88293ca53681c4703ea5) )
+ ROM_LOAD( "08_r08t.bin", 0x4000, 0x2000, CRC(3155ee7d) SHA1(e7897dca4c145f10b7d975b8ef0e4d8aa9354c25) )
+
+ ROM_REGION( 0x6000, "sprites", 0 )
+ ROM_LOAD( "16g_m07b.bin", 0x0000, 0x2000, CRC(e33942bf) SHA1(a9fad16f9b83faf1c0948ad15186959ec17eb448) )
+ ROM_LOAD( "15g_l07b.bin", 0x2000, 0x2000, CRC(1bb8ec79) SHA1(14c8b6ee9f22491330bbf14356fa4ab3c62cb811) )
+ ROM_LOAD( "14g_j07b.bin", 0x4000, 0x2000, CRC(0a9b3106) SHA1(bfd1c430e3e96896ebf4db962f755353a9a57be8) )
+
+ ROM_REGION( 0x1000, "gfx4", 0 )
+ ROM_LOAD( "02_p04t.bin", 0x0000, 0x1000, CRC(398d4a02) SHA1(ac18a8219f99ba9178b96c9564de3978e39c59fd) )
+ROM_END
+
+/* E720 - rom 13 = the old rom11+rom12; rom 14 = the old rom09+rom10+alterations */
+ROM_START( bombjckb )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "bombjckb.14", 0x0000, 0x4000, CRC(129f94f7) SHA1(499625812166c5288efe74d75c8fbc7ce8f197eb) )
+ ROM_LOAD( "bombjckb.13", 0x4000, 0x4000, CRC(87fa35ad) SHA1(42d82658609cbc88928fb2fdf579eb117d4b0cbc) )
+ ROM_LOAD( "13.1r", 0xc000, 0x2000, CRC(70e0244d) SHA1(67654155e42821ea78a655f869fb81c8d6387f63) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "01_h03t.bin", 0x0000, 0x2000, CRC(8407917d) SHA1(318face9f7a7ab6c7eeac773995040425e780aaf) )
+
+ ROM_REGION( 0x3000, "chars", 0 )
+ ROM_LOAD( "03_e08t.bin", 0x0000, 0x1000, CRC(9f0470d5) SHA1(94ef52ef47b4399a03528fe3efeac9c1d6983446) )
+ ROM_LOAD( "04_h08t.bin", 0x1000, 0x1000, CRC(81ec12e6) SHA1(e29ba193f21aa898499187603b25d2e226a07c7b) )
+ ROM_LOAD( "05_k08t.bin", 0x2000, 0x1000, CRC(e87ec8b1) SHA1(a66808ef2d62fca2854396898b86bac9be5f17a3) )
+
+ ROM_REGION( 0x6000, "tiles", 0 )
+ ROM_LOAD( "06_l08t.bin", 0x0000, 0x2000, CRC(51eebd89) SHA1(515128a3971fcb97b60c5b6bdd2b03026aec1921) )
+ ROM_LOAD( "07_n08t.bin", 0x2000, 0x2000, CRC(9dd98e9d) SHA1(6db6006a6e20ff7c243d88293ca53681c4703ea5) )
+ ROM_LOAD( "08_r08t.bin", 0x4000, 0x2000, CRC(3155ee7d) SHA1(e7897dca4c145f10b7d975b8ef0e4d8aa9354c25) )
+
+ ROM_REGION( 0x6000, "sprites", 0 )
+ ROM_LOAD( "16_m07b.bin", 0x0000, 0x2000, CRC(94694097) SHA1(de71bcd67f97d05527f2504fc8430be333fb9ec2) )
+ ROM_LOAD( "15_l07b.bin", 0x2000, 0x2000, CRC(013f58f2) SHA1(20c64593ab9fcb04cefbce0cd5d17ce3ff26441b) )
+ ROM_LOAD( "14_j07b.bin", 0x4000, 0x2000, CRC(101c858d) SHA1(ed1746c15cdb04fae888601d940183d5c7702282) )
+
+ ROM_REGION( 0x1000, "gfx4", 0 )
+ ROM_LOAD( "02_p04t.bin", 0x0000, 0x1000, CRC(398d4a02) SHA1(ac18a8219f99ba9178b96c9564de3978e39c59fd) )
+ROM_END
+
+ROM_START( bombjred )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "09_j01b.bin", 0x0000, 0x2000, CRC(c668dc30) SHA1(51dd6a2688b42e9f28f0882bd76f75be7ec3222a) )
+ ROM_LOAD( "10_l01b.bin", 0x2000, 0x2000, CRC(52a1e5fb) SHA1(e1cdc4b4efbc6c7a1e4fa65019486617f2acba1b) )
+ ROM_LOAD( "11_m01b.bin", 0x4000, 0x2000, CRC(b68a062a) SHA1(43bae56494ac0202aaa8f1ed5c1ed1bff775b2b8) )
+ ROM_LOAD( "12_n01b.bin", 0x6000, 0x2000, CRC(1d3ecee5) SHA1(8b3c49e21ea4952cae7042890d1be2115f7d6fda) )
+ ROM_LOAD( "13.1r", 0xc000, 0x2000, CRC(70e0244d) SHA1(67654155e42821ea78a655f869fb81c8d6387f63) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "01_h03t.bin", 0x0000, 0x2000, CRC(8407917d) SHA1(318face9f7a7ab6c7eeac773995040425e780aaf) )
+
+ ROM_REGION( 0x3000, "chars", 0 )
+ ROM_LOAD( "bombjred.03", 0x0000, 0x1000, CRC(8732fa2b) SHA1(e9919bd812a44d6edaf7a08e6cb857cdee2af057) )
+ ROM_LOAD( "bombjred.04", 0x1000, 0x1000, CRC(dc392a25) SHA1(8ace01ef128b92ff04d668fdd3c2be9cb9a25e4d) )
+ ROM_LOAD( "bombjred.05", 0x2000, 0x1000, CRC(ad9d7a8c) SHA1(8ae81bf891544c825115925b38a53c89c1ca2f65) )
+
+ ROM_REGION( 0x6000, "tiles", 0 )
+ ROM_LOAD( "06_l08t.bin", 0x0000, 0x2000, CRC(51eebd89) SHA1(515128a3971fcb97b60c5b6bdd2b03026aec1921) )
+ ROM_LOAD( "07_n08t.bin", 0x2000, 0x2000, CRC(9dd98e9d) SHA1(6db6006a6e20ff7c243d88293ca53681c4703ea5) )
+ ROM_LOAD( "08_r08t.bin", 0x4000, 0x2000, CRC(3155ee7d) SHA1(e7897dca4c145f10b7d975b8ef0e4d8aa9354c25) )
+
+ ROM_REGION( 0x6000, "sprites", 0 )
+ ROM_LOAD( "bombjred.16", 0x0000, 0x2000, CRC(bdabd682) SHA1(3caf238295ba4d033d50b8e2a51e6c2bd0ad6bde) )
+ ROM_LOAD( "bombjred.15", 0x2000, 0x2000, CRC(a213f039) SHA1(67e247c4d3fe2b4791d3c5de9bb242c21f31c84d) )
+ ROM_LOAD( "bombjred.14", 0x4000, 0x2000, CRC(498513fe) SHA1(81851994da287982a67a4e47231404f534b6b9df) )
+
+ ROM_REGION( 0x1000, "gfx4", 0 )
+ ROM_LOAD( "02_p04t.bin", 0x0000, 0x1000, CRC(398d4a02) SHA1(ac18a8219f99ba9178b96c9564de3978e39c59fd) )
+ROM_END
+
+GAME( 1984, bmbjckgr, bombjack, bombjack, bombjack, driver_device, 0, ROT90, "hack", "Bomb Jack (Greek)", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, bombjckb, bombjack, bombjack, bombjack, driver_device, 0, ROT90, "hack", "Bomb Jack (Bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 2008, bombjred, bombjack, bombjack, bombjack, driver_device, 0, ROT90, "hack", "Bomb Jack Red", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/btime.cpp b/docs/release/src/hbmame/drivers/btime.cpp
new file mode 100644
index 00000000000..e15e6434ad4
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/btime.cpp
@@ -0,0 +1,106 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/btime.cpp"
+
+ROM_START( bnjr )
+ ROM_REGION( 2*0x10000, "maincpu", 0 )
+ ROM_LOAD( "bnj12b.bin", 0xa000, 0x2000, CRC(ba3e3801) SHA1(56284076d938c33c1492a07281b936681eb09808) )
+ ROM_LOAD( "bnj12c.bin", 0xc000, 0x2000, CRC(fb3a2cdd) SHA1(4a964389cc8035b9264d4cb133eb6d3826e74b95) )
+ ROM_LOAD( "bnj12d.bin", 0xe000, 0x2000, CRC(b88bc99e) SHA1(08a4ddea4037f9e14d0d9f4262a1746b0a3a140c) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "bnj6c.bin", 0xe000, 0x1000, CRC(8c02f662) SHA1(1279d564e65fd3ccac25b1f9fbb40d910de2b544) )
+
+ ROM_REGION( 0x6000, "gfx1", 0 )
+ ROM_LOAD( "bnjr4e.bin", 0x0000, 0x2000, CRC(876cc672) SHA1(860cfc92752f312ce167fdfb7752fb5e7d7d8817) )
+ ROM_LOAD( "bnjr4f.bin", 0x2000, 0x2000, CRC(e5e95e3f) SHA1(c16e03e29229fa7dcc9ed01b43b645fbcc79cc97) )
+ ROM_LOAD( "bnjr4h.bin", 0x4000, 0x2000, CRC(570ffa46) SHA1(e397fbca0cc7b8173476d34d4e651752937b7569) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "bnjr10e.bin", 0x0000, 0x1000, CRC(9e523e4c) SHA1(4d76696c7594d84d081d17220dc58c0e7e35a14c) )
+ ROM_LOAD( "bnjr10f.bin", 0x1000, 0x1000, CRC(5cf10f28) SHA1(66b2d8cc27ff6dd340054290f6eb2d71c9a1052a) )
+ROM_END
+
+ROM_START( pnc )
+ ROM_REGION( 2*0x10000, "maincpu", 0 )
+ ROM_LOAD( "s3-3d", 0xc000, 0x1000, CRC(1ab4f2c2) SHA1(c5890b768172cd2e3912b84db5f71546969ad7e2) )
+ ROM_LOAD( "s2-3c", 0xd000, 0x1000, CRC(5e46b789) SHA1(00b2510e07eb565cb373db798dd537191b0b7cc8) )
+ ROM_LOAD( "s1-3b", 0xe000, 0x1000, CRC(1308a32e) SHA1(da64fe7b76f5ac8ac35460e6c789ab1e986c78ef) )
+ ROM_LOAD( "s0-3a", 0xf000, 0x1000, CRC(beb4b1fc) SHA1(166a96b5757946231f3619844366218065412935) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "sa-1h", 0xe000, 0x1000, CRC(379387ec) SHA1(29d37f04c64ed53a2573962dfa9c0623b89e0045) )
+
+ ROM_REGION( 0x6000, "gfx1", 0 )
+ ROM_LOAD( "pnc-s4-11l", 0x0000, 0x1000, CRC(38a40f50) SHA1(c5188fc3eeffb9843a22211b95ef6fec656dedb9) )
+ ROM_LOAD( "pnc-s5-11m", 0x1000, 0x1000, CRC(c6c7236a) SHA1(da50b4066c6d39c1c860afdbd353de5576bf9fbf) )
+ ROM_LOAD( "pnc-s6-13l", 0x2000, 0x1000, CRC(20779144) SHA1(f580db44ce870cb5945ef341ef5dd674b170ffc6) )
+ ROM_LOAD( "pnc-s7-13m", 0x3000, 0x1000, CRC(8911a546) SHA1(e78ff510af33789e6a25227afa269008c049b553) )
+ ROM_LOAD( "pnc-s8-15l", 0x4000, 0x1000, CRC(1c8f5112) SHA1(01601dc443e1db13f9fb9b32cc5180d5d19b4c10) )
+ ROM_LOAD( "pnc-s9-15m", 0x5000, 0x1000, CRC(b919e43b) SHA1(1bb22f48a7914afc8b4eb8d90b9c6a4d93ae2b24) )
+
+ ROM_REGION( 0x0040, "proms", 0 )
+ ROM_LOAD( "sc-5m", 0x0000, 0x0020, CRC(2a976ebe) SHA1(f3c1b0d98f431f9cd0d5fa009fafa1115aabe6e5) )
+ ROM_LOAD( "sb-4c", 0x0020, 0x0020, CRC(a29b4204) SHA1(7f15cae5c4aaa29638fb45029782dafd2b3d1484) )
+ROM_END
+
+ROM_START( stictime )
+ ROM_REGION( 2*0x10000, "maincpu", 0 )
+ ROM_LOAD( "aa04.9b", 0xc000, 0x1000, CRC(368a25b5) SHA1(ed3f3712423979dcb351941fa85dce6a0a7bb16b) )
+ ROM_LOAD( "aa06.13b", 0xd000, 0x1000, CRC(b4ba400d) SHA1(8c77397e934907bc47a739f263196a0f2f81ba3d) )
+ ROM_LOAD( "aa05.10b", 0xe000, 0x1000, CRC(8005bffa) SHA1(d0da4e360039f6a8d8142a4e8e05c1f90c0af68a) )
+ ROM_LOAD( "aa07.15b", 0xf000, 0x1000, CRC(086440ad) SHA1(4a32bc92f8ff5fbe112f56e62d2c03da8851a7b9) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "ab14.12h", 0xe000, 0x1000, CRC(f55e5211) SHA1(27940026d0c6212d1138d2fd88880df697218627) )
+
+ ROM_REGION( 0x6000, "gfx1", 0 )
+ ROM_LOAD( "stic_aa12.7k", 0x0000, 0x1000, CRC(0550e118) SHA1(74ab46a307ea9d61e38ba0b541bf509436cd9290) )
+ ROM_LOAD( "ab13.9k", 0x1000, 0x1000, CRC(ac01042f) SHA1(e64b6381a9298eaf74e79fa5f1ea8e9596c58a49) )
+ ROM_LOAD( "stic_ab10.10k",0x2000, 0x1000, CRC(ba774d51) SHA1(68806bbe93aeea82d7aefc376b69af66858c6028) )
+ ROM_LOAD( "ab11.12k", 0x3000, 0x1000, CRC(d4848014) SHA1(0a55b091cd4e7f317c35defe13d5051b26042eee) )
+ ROM_LOAD( "stic_aa8.13k", 0x4000, 0x1000, CRC(00a15086) SHA1(e78047ebffdc642583d363b12dd8fbd1368eb3c4) )
+ ROM_LOAD( "ab9.15k", 0x5000, 0x1000, CRC(8dec15e6) SHA1(b72633de6268ce16742bba4dcba835df860d6c2f) )
+
+ ROM_REGION( 0x1800, "gfx2", 0 )
+ ROM_LOAD( "stic_ab00.1b", 0x0000, 0x0800, CRC(4010c652) SHA1(418eae0ef70c62c3f69becf167bd40a4faba176b) )
+ ROM_LOAD( "ab01.3b", 0x0800, 0x0800, CRC(25b49078) SHA1(4abdcbd4f3362c3e4463a1274731289f1a72d2e6) )
+ ROM_LOAD( "stic_ab02.4b", 0x1000, 0x0800, CRC(1def5b40) SHA1(845a6b1105757d4d921a4d1f9378a3731f6460b3) )
+
+ ROM_REGION( 0x0800, "bg_map", 0 )
+ ROM_LOAD( "ab03.6b", 0x0000, 0x0800, CRC(d26bc1f3) SHA1(737af6e264183a1f151f277a07cf250d6abb3fd8) )
+ROM_END
+
+ROM_START( vecbtime )
+ ROM_REGION( 2*0x10000, "maincpu", 0 )
+ ROM_LOAD( "ab05a1.12b", 0xb000, 0x1000, CRC(0a98b230) SHA1(aeee4f6f0aaa27575b80261d03c5453cc6ebd646) )
+ ROM_LOAD( "ab04.9b", 0xc000, 0x1000, CRC(797e5f75) SHA1(35ea5fa4b8f3494adf7774b3946ed2540ac826ff) )
+ ROM_LOAD( "ab06.13b", 0xd000, 0x1000, CRC(c77f3f64) SHA1(f283087fad0a102fe92be7ce80ed18e64dc93b67) )
+ ROM_LOAD( "ab05.10b", 0xe000, 0x1000, CRC(b0d3640f) SHA1(6ba28971714ece6f1c04fa2dbf1f9f216ded7cfa) )
+ ROM_LOAD( "ab07.15b", 0xf000, 0x1000, CRC(a142f862) SHA1(39d7ef172d18874885f1b1542e885cc4287dc344) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "ab14.12h", 0xe000, 0x1000, CRC(f55e5211) SHA1(27940026d0c6212d1138d2fd88880df697218627) )
+
+ ROM_REGION( 0x6000, "gfx1", 0 )
+ ROM_LOAD( "vec_ab12.7k", 0x0000, 0x1000, CRC(b02d859c) SHA1(0d506c52dd2a76d62bd980087fbb5c3808aedf56) )
+ ROM_LOAD( "vec_ab13.9k", 0x1000, 0x1000, CRC(d9757010) SHA1(fc70cfbd7bb7c23d0b5880f42ef92df711c6a46d) )
+ ROM_LOAD( "vec_ab10.10k", 0x2000, 0x1000, CRC(2b71a1db) SHA1(424c3fceeeb030c0cf89e8f872957a75d5475cfb) )
+ ROM_LOAD( "vec_ab11.12k", 0x3000, 0x1000, CRC(a98fea41) SHA1(1ddbb8b26bca2b8c6ab4d9b1bfd8b21db2b2d97b) )
+ ROM_LOAD( "vec_ab8.13k", 0x4000, 0x1000, CRC(0ca7828f) SHA1(eb7db2607b10e8276a97a20030bdbeeeb7b6935b) )
+ ROM_LOAD( "vec_ab9.15k", 0x5000, 0x1000, CRC(1e460ff7) SHA1(6ac3ec08e3c79490262324fd4a93a6eb1188554b) )
+
+ ROM_REGION( 0x1800, "gfx2", 0 )
+ ROM_LOAD( "vec_ab00.1b", 0x0000, 0x0800, CRC(03dbe9b6) SHA1(4844d490a767d15ed5230868cbd25dadf70cf1e3) )
+ ROM_LOAD( "vec_ab01.3b", 0x0800, 0x0800, CRC(698089da) SHA1(6b6e61536d1247a8784a4657cdc50e48b002335d) )
+ ROM_LOAD( "vec_ab02.4b", 0x1000, 0x0800, CRC(4464ccef) SHA1(1fa91178c55c1120910be89f724b909a356796e8) )
+
+ ROM_REGION( 0x0800, "bg_map", 0 )
+ ROM_LOAD( "ab03.6b", 0x0000, 0x0800, CRC(d26bc1f3) SHA1(737af6e264183a1f151f277a07cf250d6abb3fd8) )
+ROM_END
+
+
+GAME( 2002, bnjr, brubber, bnj, bnj, btime_state, lnc, ROT270, "DaveC", "Bump 'n' Jump Reverse Mod", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, pnc, lnc, lnc, lnc, btime_state, lnc, ROT270, "Marks Hacks", "Pac'n'Chase", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, stictime, btime, btime, btime, btime_state, btime, ROT270, "Marks Hacks", "Mr Sticky Time", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, vecbtime, btime, btime, btime, btime_state, btime, ROT270, "T-Bone", "Burgertime (Vector sim)", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/bublbobl.cpp b/docs/release/src/hbmame/drivers/bublbobl.cpp
new file mode 100644
index 00000000000..41668836f35
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/bublbobl.cpp
@@ -0,0 +1,289 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/bublbobl.cpp"
+
+static INPUT_PORTS_START( bbaladar )
+ PORT_INCLUDE( boblbobl )
+
+ PORT_MODIFY( "DSW1" )
+ PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNKNOWN )
+INPUT_PORTS_END
+
+ROM_START( bbaladar )
+ ROM_REGION( 0x30000, "maincpu", 0 )
+ ROM_LOAD( "bbaladar.3", 0x00000, 0x8000, CRC(31bfc6fb) SHA1(6a72086d415a69b9e5c003ec6cf7858e8c4b346f) )
+ ROM_LOAD( "bbaladar.5", 0x10000, 0x8000, CRC(16386e9a) SHA1(77fa3f5ecce5c79ba52098c0870482459926b415) )
+ ROM_LOAD( "bbaladar.4", 0x18000, 0x8000, CRC(0c4bcb07) SHA1(3e3f7fa098d6be61d265cab5258dbd0e279bd8ed) )
+
+ ROM_REGION( 0x10000, "slave", 0 )
+ ROM_LOAD( "a78-08.37", 0x0000, 0x08000, CRC(ae11a07b) SHA1(af7a335c8da637103103cc274e077f123908ebb7) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "a78-07.46", 0x0000, 0x08000, CRC(4f9a26e8) SHA1(3105b34b88a7134493c2b3f584729f8b0407a011) )
+
+ ROM_REGION( 0x80000, "gfx1", ROMREGION_INVERT )
+ ROM_LOAD( "a78-09.12", 0x00000, 0x8000, CRC(20358c22) SHA1(2297af6c53d5807bf90a8e081075b8c72a994fc5) )
+ ROM_LOAD( "a78-10.13", 0x08000, 0x8000, CRC(930168a9) SHA1(fd358c3c3b424bca285f67a1589eb98a345ff670) )
+ ROM_LOAD( "a78-11.14", 0x10000, 0x8000, CRC(9773e512) SHA1(33c1687ee575d66bf0e98add45d06da827813765) )
+ ROM_LOAD( "a78-12.15", 0x18000, 0x8000, CRC(d045549b) SHA1(0c12077d3ddc2ce6aa45a0224ad5540f3f218446) )
+ ROM_LOAD( "a78-13.16", 0x20000, 0x8000, CRC(d0af35c5) SHA1(c5a89f4d73acc0db86654540b3abfd77b3757db5) )
+ ROM_LOAD( "a78-14.17", 0x28000, 0x8000, CRC(7b5369a8) SHA1(1307b26d80e6f36ebe6c442bebec41d20066eaf9) )
+ ROM_LOAD( "a78-15.30", 0x40000, 0x8000, CRC(6b61a413) SHA1(44eddf12fb46fceca2addbe6da929aaea7636b13) )
+ ROM_LOAD( "a78-16.31", 0x48000, 0x8000, CRC(b5492d97) SHA1(d5b045e3ebaa44809757a4220cefb3c6815470da) )
+ ROM_LOAD( "a78-17.32", 0x50000, 0x8000, CRC(d69762d5) SHA1(3326fef4e0bd86681a3047dc11886bb171ecb609) )
+ ROM_LOAD( "a78-18.33", 0x58000, 0x8000, CRC(9f243b68) SHA1(32dce8d311a4be003693182a999e4053baa6bb0a) )
+ ROM_LOAD( "a78-19.34", 0x60000, 0x8000, CRC(66e9438c) SHA1(b94e62b6fbe7f4e08086d0365afc5cff6e0ccafd) )
+ ROM_LOAD( "a78-20.35", 0x68000, 0x8000, CRC(9ef863ad) SHA1(29f91b5a3765e4d6e6c3382db1d8d8297b6e56c8) )
+
+ ROM_REGION( 0x0100, "proms", 0 )
+ ROM_LOAD( "a71-25.41", 0x0000, 0x0100, CRC(2d0f8545) SHA1(089c31e2f614145ef2743164f7b52ae35bc06808) )
+
+ ROM_REGION( 0x0600, "plds", 0 )
+ ROM_LOAD( "pal16r4.u36", 0x0000, 0x0104, CRC(22fe26ac) SHA1(bbbfcbe6faded4af7ceec57b800297c054a997da) )
+ ROM_LOAD( "pal16l8.u38", 0x0200, 0x0104, CRC(c02d9663) SHA1(5d23cfd96f072981fd5fcf0dd7e98459da58b662) )
+ ROM_LOAD( "pal16l8.u4", 0x0400, 0x0104, CRC(077d20a8) SHA1(8e568ffd6f66c3dd61708dd0f3be9c2ed488ae4b) )
+ROM_END
+
+ROM_START( bb2bmh )
+ ROM_REGION( 0x30000, "maincpu", 0 )
+ ROM_LOAD( "a78-06.51", 0x00000, 0x08000, CRC(32c8305b) SHA1(6bf69b3edfbefd33cd670a762b4bf0b39629a220) )
+ ROM_LOAD( "bb2bmh-05.52", 0x10000, 0x10000, CRC(d286f2e9) SHA1(ac293aa5bb3973738c7a48ce78c523154d650ded) )
+
+ ROM_REGION( 0x10000, "slave", 0 )
+ ROM_LOAD( "bb2bmh-08.37", 0x0000, 0x08000, CRC(ebce6c5c) SHA1(bd99a67a044763567c443b174115aae89957a60c) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "a78-07.46", 0x0000, 0x08000, CRC(4f9a26e8) SHA1(3105b34b88a7134493c2b3f584729f8b0407a011) )
+
+ ROM_REGION( 0x0800, "mcu", 0 )
+ ROM_LOAD( "68705.bin", 0x0000, 0x0800, CRC(78caa635) SHA1(a756e45b25b007843ba4f2204cad6081cf7260e9) )
+
+ ROM_REGION( 0x80000, "gfx1", ROMREGION_INVERT )
+ ROM_LOAD( "a78-09.12", 0x00000, 0x8000, CRC(20358c22) SHA1(2297af6c53d5807bf90a8e081075b8c72a994fc5) )
+ ROM_LOAD( "a78-10.13", 0x08000, 0x8000, CRC(930168a9) SHA1(fd358c3c3b424bca285f67a1589eb98a345ff670) )
+ ROM_LOAD( "a78-11.14", 0x10000, 0x8000, CRC(9773e512) SHA1(33c1687ee575d66bf0e98add45d06da827813765) )
+ ROM_LOAD( "a78-12.15", 0x18000, 0x8000, CRC(d045549b) SHA1(0c12077d3ddc2ce6aa45a0224ad5540f3f218446) )
+ ROM_LOAD( "a78-13.16", 0x20000, 0x8000, CRC(d0af35c5) SHA1(c5a89f4d73acc0db86654540b3abfd77b3757db5) )
+ ROM_LOAD( "a78-14.17", 0x28000, 0x8000, CRC(7b5369a8) SHA1(1307b26d80e6f36ebe6c442bebec41d20066eaf9) )
+ ROM_LOAD( "a78-15.30", 0x40000, 0x8000, CRC(6b61a413) SHA1(44eddf12fb46fceca2addbe6da929aaea7636b13) )
+ ROM_LOAD( "a78-16.31", 0x48000, 0x8000, CRC(b5492d97) SHA1(d5b045e3ebaa44809757a4220cefb3c6815470da) )
+ ROM_LOAD( "a78-17.32", 0x50000, 0x8000, CRC(d69762d5) SHA1(3326fef4e0bd86681a3047dc11886bb171ecb609) )
+ ROM_LOAD( "a78-18.33", 0x58000, 0x8000, CRC(9f243b68) SHA1(32dce8d311a4be003693182a999e4053baa6bb0a) )
+ ROM_LOAD( "a78-19.34", 0x60000, 0x8000, CRC(66e9438c) SHA1(b94e62b6fbe7f4e08086d0365afc5cff6e0ccafd) )
+ ROM_LOAD( "a78-20.35", 0x68000, 0x8000, CRC(9ef863ad) SHA1(29f91b5a3765e4d6e6c3382db1d8d8297b6e56c8) )
+
+ ROM_REGION( 0x0100, "proms", 0 )
+ ROM_LOAD( "a71-25.41", 0x0000, 0x0100, CRC(2d0f8545) SHA1(089c31e2f614145ef2743164f7b52ae35bc06808) )
+ROM_END
+
+ROM_START( bbhackv1 )
+ ROM_REGION( 0x30000, "maincpu", 0 )
+ ROM_LOAD( "a78-06.51", 0x00000, 0x08000, CRC(32c8305b) SHA1(6bf69b3edfbefd33cd670a762b4bf0b39629a220) )
+ ROM_LOAD( "bbhackv1-05.52", 0x10000, 0x10000, CRC(8da82422) SHA1(385ccd427b101255bc865af0802672b4d8432339) )
+
+ ROM_REGION( 0x10000, "slave", 0 )
+ ROM_LOAD( "bbhackv1-08.37", 0x0000, 0x08000, CRC(419caf60) SHA1(95d680c2be15e813081d3f78f17c5d97eda8b60b) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "a78-07.46", 0x0000, 0x08000, CRC(4f9a26e8) SHA1(3105b34b88a7134493c2b3f584729f8b0407a011) )
+
+ ROM_REGION( 0x0800, "mcu", 0 )
+ ROM_LOAD( "68705.bin", 0x0000, 0x0800, CRC(78caa635) SHA1(a756e45b25b007843ba4f2204cad6081cf7260e9) )
+
+ ROM_REGION( 0x80000, "gfx1", ROMREGION_INVERT )
+ ROM_LOAD( "a78-09.12", 0x00000, 0x8000, CRC(20358c22) SHA1(2297af6c53d5807bf90a8e081075b8c72a994fc5) )
+ ROM_LOAD( "a78-10.13", 0x08000, 0x8000, CRC(930168a9) SHA1(fd358c3c3b424bca285f67a1589eb98a345ff670) )
+ ROM_LOAD( "a78-11.14", 0x10000, 0x8000, CRC(9773e512) SHA1(33c1687ee575d66bf0e98add45d06da827813765) )
+ ROM_LOAD( "a78-12.15", 0x18000, 0x8000, CRC(d045549b) SHA1(0c12077d3ddc2ce6aa45a0224ad5540f3f218446) )
+ ROM_LOAD( "a78-13.16", 0x20000, 0x8000, CRC(d0af35c5) SHA1(c5a89f4d73acc0db86654540b3abfd77b3757db5) )
+ ROM_LOAD( "a78-14.17", 0x28000, 0x8000, CRC(7b5369a8) SHA1(1307b26d80e6f36ebe6c442bebec41d20066eaf9) )
+ ROM_LOAD( "a78-15.30", 0x40000, 0x8000, CRC(6b61a413) SHA1(44eddf12fb46fceca2addbe6da929aaea7636b13) )
+ ROM_LOAD( "a78-16.31", 0x48000, 0x8000, CRC(b5492d97) SHA1(d5b045e3ebaa44809757a4220cefb3c6815470da) )
+ ROM_LOAD( "a78-17.32", 0x50000, 0x8000, CRC(d69762d5) SHA1(3326fef4e0bd86681a3047dc11886bb171ecb609) )
+ ROM_LOAD( "a78-18.33", 0x58000, 0x8000, CRC(9f243b68) SHA1(32dce8d311a4be003693182a999e4053baa6bb0a) )
+ ROM_LOAD( "a78-19.34", 0x60000, 0x8000, CRC(66e9438c) SHA1(b94e62b6fbe7f4e08086d0365afc5cff6e0ccafd) )
+ ROM_LOAD( "a78-20.35", 0x68000, 0x8000, CRC(9ef863ad) SHA1(29f91b5a3765e4d6e6c3382db1d8d8297b6e56c8) )
+
+ ROM_REGION( 0x0100, "proms", 0 )
+ ROM_LOAD( "a71-25.41", 0x0000, 0x0100, CRC(2d0f8545) SHA1(089c31e2f614145ef2743164f7b52ae35bc06808) )
+ROM_END
+
+//Press P1+P2 while playing, to advance
+ROM_START( bbredux1 )
+ ROM_REGION( 0x30000, "maincpu", 0 )
+ ROM_LOAD( "bb3.1", 0x00000, 0x8000, CRC(b802046d) SHA1(93dba2507c67f3f61eca80908a7a4409d2cd1b75) )
+ ROM_LOAD( "bb5", 0x10000, 0x8000, CRC(d29d3444) SHA1(3db694a6ba2ba2ed85d31c2bc4c7c94911b99b85) )
+ ROM_LOAD( "bb4.1", 0x18000, 0x8000, CRC(19a5a0fa) SHA1(e7fff3643d7922a494ad8118d1a0f74e52443f9f) )
+
+ ROM_REGION( 0x10000, "slave", 0 )
+ ROM_LOAD( "a78-08.37", 0x0000, 0x08000, CRC(ae11a07b) SHA1(af7a335c8da637103103cc274e077f123908ebb7) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "a78-07.46", 0x0000, 0x08000, CRC(4f9a26e8) SHA1(3105b34b88a7134493c2b3f584729f8b0407a011) )
+
+ ROM_REGION( 0x80000, "gfx1", ROMREGION_INVERT )
+ ROM_LOAD( "a78-09.12", 0x00000, 0x8000, CRC(20358c22) SHA1(2297af6c53d5807bf90a8e081075b8c72a994fc5) )
+ ROM_LOAD( "a78-10.13", 0x08000, 0x8000, CRC(930168a9) SHA1(fd358c3c3b424bca285f67a1589eb98a345ff670) )
+ ROM_LOAD( "a78-11.14", 0x10000, 0x8000, CRC(9773e512) SHA1(33c1687ee575d66bf0e98add45d06da827813765) )
+ ROM_LOAD( "a78-12.15", 0x18000, 0x8000, CRC(d045549b) SHA1(0c12077d3ddc2ce6aa45a0224ad5540f3f218446) )
+ ROM_LOAD( "a78-13.16", 0x20000, 0x8000, CRC(d0af35c5) SHA1(c5a89f4d73acc0db86654540b3abfd77b3757db5) )
+ ROM_LOAD( "a78-14.17", 0x28000, 0x8000, CRC(7b5369a8) SHA1(1307b26d80e6f36ebe6c442bebec41d20066eaf9) )
+ ROM_LOAD( "a78-15.30", 0x40000, 0x8000, CRC(6b61a413) SHA1(44eddf12fb46fceca2addbe6da929aaea7636b13) )
+ ROM_LOAD( "a78-16.31", 0x48000, 0x8000, CRC(b5492d97) SHA1(d5b045e3ebaa44809757a4220cefb3c6815470da) )
+ ROM_LOAD( "a78-17.32", 0x50000, 0x8000, CRC(d69762d5) SHA1(3326fef4e0bd86681a3047dc11886bb171ecb609) )
+ ROM_LOAD( "a78-18.33", 0x58000, 0x8000, CRC(9f243b68) SHA1(32dce8d311a4be003693182a999e4053baa6bb0a) )
+ ROM_LOAD( "a78-19.34", 0x60000, 0x8000, CRC(66e9438c) SHA1(b94e62b6fbe7f4e08086d0365afc5cff6e0ccafd) )
+ ROM_LOAD( "a78-20.35", 0x68000, 0x8000, CRC(9ef863ad) SHA1(29f91b5a3765e4d6e6c3382db1d8d8297b6e56c8) )
+
+ ROM_REGION( 0x0100, "proms", 0 )
+ ROM_LOAD( "a71-25.41", 0x0000, 0x0100, CRC(2d0f8545) SHA1(089c31e2f614145ef2743164f7b52ae35bc06808) )
+
+ ROM_REGION( 0x0600, "plds", 0 )
+ ROM_LOAD( "pal16r4.u36", 0x0000, 0x0104, CRC(22fe26ac) SHA1(bbbfcbe6faded4af7ceec57b800297c054a997da) )
+ ROM_LOAD( "pal16l8.u38", 0x0200, 0x0104, CRC(c02d9663) SHA1(5d23cfd96f072981fd5fcf0dd7e98459da58b662) )
+ ROM_LOAD( "pal16l8.u4", 0x0400, 0x0104, CRC(077d20a8) SHA1(8e568ffd6f66c3dd61708dd0f3be9c2ed488ae4b) )
+ROM_END
+
+// When you die for the last time, it momentarily says says press P1. Do so, to continue.
+ROM_START( bbredux2 )
+ ROM_REGION( 0x30000, "maincpu", 0 )
+ ROM_LOAD( "bb3.2", 0x00000, 0x8000, CRC(198dc44e) SHA1(de9538b47703c468f85ba318deb8aa0b65174a26) )
+ ROM_LOAD( "bb5", 0x10000, 0x8000, CRC(d29d3444) SHA1(3db694a6ba2ba2ed85d31c2bc4c7c94911b99b85) )
+ ROM_LOAD( "bb4.2", 0x18000, 0x8000, CRC(9b819b62) SHA1(79d7208cb81fa36ed317f4776b1eda3082b1a21c) )
+
+ ROM_REGION( 0x10000, "slave", 0 )
+ ROM_LOAD( "a78-08.37", 0x0000, 0x08000, CRC(ae11a07b) SHA1(af7a335c8da637103103cc274e077f123908ebb7) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "a78-07.46", 0x0000, 0x08000, CRC(4f9a26e8) SHA1(3105b34b88a7134493c2b3f584729f8b0407a011) )
+
+ ROM_REGION( 0x80000, "gfx1", ROMREGION_INVERT )
+ ROM_LOAD( "a78-09.12", 0x00000, 0x8000, CRC(20358c22) SHA1(2297af6c53d5807bf90a8e081075b8c72a994fc5) )
+ ROM_LOAD( "a78-10.13", 0x08000, 0x8000, CRC(930168a9) SHA1(fd358c3c3b424bca285f67a1589eb98a345ff670) )
+ ROM_LOAD( "a78-11.14", 0x10000, 0x8000, CRC(9773e512) SHA1(33c1687ee575d66bf0e98add45d06da827813765) )
+ ROM_LOAD( "a78-12.15", 0x18000, 0x8000, CRC(d045549b) SHA1(0c12077d3ddc2ce6aa45a0224ad5540f3f218446) )
+ ROM_LOAD( "a78-13.16", 0x20000, 0x8000, CRC(d0af35c5) SHA1(c5a89f4d73acc0db86654540b3abfd77b3757db5) )
+ ROM_LOAD( "a78-14.17", 0x28000, 0x8000, CRC(7b5369a8) SHA1(1307b26d80e6f36ebe6c442bebec41d20066eaf9) )
+ ROM_LOAD( "a78-15.30", 0x40000, 0x8000, CRC(6b61a413) SHA1(44eddf12fb46fceca2addbe6da929aaea7636b13) )
+ ROM_LOAD( "a78-16.31", 0x48000, 0x8000, CRC(b5492d97) SHA1(d5b045e3ebaa44809757a4220cefb3c6815470da) )
+ ROM_LOAD( "a78-17.32", 0x50000, 0x8000, CRC(d69762d5) SHA1(3326fef4e0bd86681a3047dc11886bb171ecb609) )
+ ROM_LOAD( "a78-18.33", 0x58000, 0x8000, CRC(9f243b68) SHA1(32dce8d311a4be003693182a999e4053baa6bb0a) )
+ ROM_LOAD( "a78-19.34", 0x60000, 0x8000, CRC(66e9438c) SHA1(b94e62b6fbe7f4e08086d0365afc5cff6e0ccafd) )
+ ROM_LOAD( "a78-20.35", 0x68000, 0x8000, CRC(9ef863ad) SHA1(29f91b5a3765e4d6e6c3382db1d8d8297b6e56c8) )
+
+ ROM_REGION( 0x0100, "proms", 0 )
+ ROM_LOAD( "a71-25.41", 0x0000, 0x0100, CRC(2d0f8545) SHA1(089c31e2f614145ef2743164f7b52ae35bc06808) )
+
+ ROM_REGION( 0x0600, "plds", 0 )
+ ROM_LOAD( "pal16r4.u36", 0x0000, 0x0104, CRC(22fe26ac) SHA1(bbbfcbe6faded4af7ceec57b800297c054a997da) )
+ ROM_LOAD( "pal16l8.u38", 0x0200, 0x0104, CRC(c02d9663) SHA1(5d23cfd96f072981fd5fcf0dd7e98459da58b662) )
+ ROM_LOAD( "pal16l8.u4", 0x0400, 0x0104, CRC(077d20a8) SHA1(8e568ffd6f66c3dd61708dd0f3be9c2ed488ae4b) )
+ROM_END
+
+// High score save is not working as yet
+ROM_START( bbredux3 )
+ ROM_REGION( 0x30000, "maincpu", 0 )
+ ROM_LOAD( "bb3.3", 0x00000, 0x8000, CRC(959cafca) SHA1(9c541e45326d27f4d25a1fd9d66f234ce7f969c9) )
+ ROM_LOAD( "bb5", 0x10000, 0x8000, CRC(d29d3444) SHA1(3db694a6ba2ba2ed85d31c2bc4c7c94911b99b85) )
+ ROM_LOAD( "bb4.3", 0x18000, 0x8000, CRC(3f350047) SHA1(7e23d1c9b1a29760d96dcc7f7784ae610ac860d9) )
+
+ ROM_REGION( 0x10000, "slave", 0 )
+ ROM_LOAD( "a78-08.37", 0x0000, 0x08000, CRC(ae11a07b) SHA1(af7a335c8da637103103cc274e077f123908ebb7) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "a78-07.46", 0x0000, 0x08000, CRC(4f9a26e8) SHA1(3105b34b88a7134493c2b3f584729f8b0407a011) )
+
+ ROM_REGION( 0x80000, "gfx1", ROMREGION_INVERT )
+ ROM_LOAD( "a78-09.12", 0x00000, 0x8000, CRC(20358c22) SHA1(2297af6c53d5807bf90a8e081075b8c72a994fc5) )
+ ROM_LOAD( "a78-10.13", 0x08000, 0x8000, CRC(930168a9) SHA1(fd358c3c3b424bca285f67a1589eb98a345ff670) )
+ ROM_LOAD( "a78-11.14", 0x10000, 0x8000, CRC(9773e512) SHA1(33c1687ee575d66bf0e98add45d06da827813765) )
+ ROM_LOAD( "a78-12.15", 0x18000, 0x8000, CRC(d045549b) SHA1(0c12077d3ddc2ce6aa45a0224ad5540f3f218446) )
+ ROM_LOAD( "a78-13.16", 0x20000, 0x8000, CRC(d0af35c5) SHA1(c5a89f4d73acc0db86654540b3abfd77b3757db5) )
+ ROM_LOAD( "a78-14.17", 0x28000, 0x8000, CRC(7b5369a8) SHA1(1307b26d80e6f36ebe6c442bebec41d20066eaf9) )
+ ROM_LOAD( "a78-15.30", 0x40000, 0x8000, CRC(6b61a413) SHA1(44eddf12fb46fceca2addbe6da929aaea7636b13) )
+ ROM_LOAD( "a78-16.31", 0x48000, 0x8000, CRC(b5492d97) SHA1(d5b045e3ebaa44809757a4220cefb3c6815470da) )
+ ROM_LOAD( "a78-17.32", 0x50000, 0x8000, CRC(d69762d5) SHA1(3326fef4e0bd86681a3047dc11886bb171ecb609) )
+ ROM_LOAD( "a78-18.33", 0x58000, 0x8000, CRC(9f243b68) SHA1(32dce8d311a4be003693182a999e4053baa6bb0a) )
+ ROM_LOAD( "a78-19.34", 0x60000, 0x8000, CRC(66e9438c) SHA1(b94e62b6fbe7f4e08086d0365afc5cff6e0ccafd) )
+ ROM_LOAD( "a78-20.35", 0x68000, 0x8000, CRC(9ef863ad) SHA1(29f91b5a3765e4d6e6c3382db1d8d8297b6e56c8) )
+
+ ROM_REGION( 0x0100, "proms", 0 )
+ ROM_LOAD( "a71-25.41", 0x0000, 0x0100, CRC(2d0f8545) SHA1(089c31e2f614145ef2743164f7b52ae35bc06808) )
+
+ ROM_REGION( 0x0600, "plds", 0 )
+ ROM_LOAD( "pal16r4.u36", 0x0000, 0x0104, CRC(22fe26ac) SHA1(bbbfcbe6faded4af7ceec57b800297c054a997da) )
+ ROM_LOAD( "pal16l8.u38", 0x0200, 0x0104, CRC(c02d9663) SHA1(5d23cfd96f072981fd5fcf0dd7e98459da58b662) )
+ ROM_LOAD( "pal16l8.u4", 0x0400, 0x0104, CRC(077d20a8) SHA1(8e568ffd6f66c3dd61708dd0f3be9c2ed488ae4b) )
+ROM_END
+
+ROM_START( sboblboblh )
+ ROM_REGION( 0x30000, "maincpu", 0 )
+ ROM_LOAD( "bb3.u28", 0x00000, 0x08000, CRC(c23cd704) SHA1(a389ecc8d55d1b0c915fd3814d93338b9e402701) )
+ ROM_LOAD( "bb5.s", 0x10000, 0x08000, CRC(13118eb1) SHA1(5a5da40c2cc82420f70bc58ffa32de1088c6c82f) )
+ ROM_LOAD( "bbb-4.rom", 0x18000, 0x08000, CRC(94c75591) SHA1(7698bc4b7d20e554a73a489cd3a15ae61b350e37) )
+
+ ROM_REGION( 0x10000, "slave", 0 )
+ ROM_LOAD( "a78-08.37", 0x0000, 0x08000, CRC(ae11a07b) SHA1(af7a335c8da637103103cc274e077f123908ebb7) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "a78-07.46", 0x0000, 0x08000, CRC(4f9a26e8) SHA1(3105b34b88a7134493c2b3f584729f8b0407a011) )
+
+ ROM_REGION( 0x80000, "gfx1", ROMREGION_INVERT )
+ ROM_LOAD( "a78-09.12", 0x00000, 0x8000, CRC(20358c22) SHA1(2297af6c53d5807bf90a8e081075b8c72a994fc5) )
+ ROM_LOAD( "a78-10.13", 0x08000, 0x8000, CRC(930168a9) SHA1(fd358c3c3b424bca285f67a1589eb98a345ff670) )
+ ROM_LOAD( "a78-11.14", 0x10000, 0x8000, CRC(9773e512) SHA1(33c1687ee575d66bf0e98add45d06da827813765) )
+ ROM_LOAD( "a78-12.15", 0x18000, 0x8000, CRC(d045549b) SHA1(0c12077d3ddc2ce6aa45a0224ad5540f3f218446) )
+ ROM_LOAD( "a78-13.16", 0x20000, 0x8000, CRC(d0af35c5) SHA1(c5a89f4d73acc0db86654540b3abfd77b3757db5) )
+ ROM_LOAD( "a78-14.17", 0x28000, 0x8000, CRC(7b5369a8) SHA1(1307b26d80e6f36ebe6c442bebec41d20066eaf9) )
+ ROM_LOAD( "a78-15.30", 0x40000, 0x8000, CRC(6b61a413) SHA1(44eddf12fb46fceca2addbe6da929aaea7636b13) )
+ ROM_LOAD( "a78-16.31", 0x48000, 0x8000, CRC(b5492d97) SHA1(d5b045e3ebaa44809757a4220cefb3c6815470da) )
+ ROM_LOAD( "a78-17.32", 0x50000, 0x8000, CRC(d69762d5) SHA1(3326fef4e0bd86681a3047dc11886bb171ecb609) )
+ ROM_LOAD( "a78-18.33", 0x58000, 0x8000, CRC(9f243b68) SHA1(32dce8d311a4be003693182a999e4053baa6bb0a) )
+ ROM_LOAD( "a78-19.34", 0x60000, 0x8000, CRC(66e9438c) SHA1(b94e62b6fbe7f4e08086d0365afc5cff6e0ccafd) )
+ ROM_LOAD( "a78-20.35", 0x68000, 0x8000, CRC(9ef863ad) SHA1(29f91b5a3765e4d6e6c3382db1d8d8297b6e56c8) )
+
+ ROM_REGION( 0x0100, "proms", 0 )
+ ROM_LOAD( "a71-25.41", 0x0000, 0x0100, CRC(2d0f8545) SHA1(089c31e2f614145ef2743164f7b52ae35bc06808) )
+ROM_END
+
+ROM_START( bublbobf )
+ ROM_REGION( 0x30000, "maincpu", 0 )
+ ROM_LOAD( "bublbobf-06.51", 0x00000, 0x08000, CRC(9ced3d8f) SHA1(d445f218fca822e7083a9347abd4a4e049b6555b) )
+ ROM_LOAD( "bublbobf-05.52", 0x10000, 0x10000, CRC(56197d88) SHA1(b1b750df33835df012b2550585edcd6ea58db186) )
+
+ ROM_REGION( 0x10000, "slave", 0 )
+ ROM_LOAD( "a78-08.37", 0x0000, 0x08000, CRC(ae11a07b) SHA1(af7a335c8da637103103cc274e077f123908ebb7) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "a78-07.46", 0x0000, 0x08000, CRC(4f9a26e8) SHA1(3105b34b88a7134493c2b3f584729f8b0407a011) )
+
+ ROM_REGION( 0x10000, "mcu", 0 )
+ ROM_LOAD( "a78-01.17", 0xf000, 0x1000, CRC(b1bfb53d) SHA1(31b8f31acd3aa394acd80db362774749842e1285) )
+
+ ROM_REGION( 0x80000, "gfx1", ROMREGION_INVERT )
+ ROM_LOAD( "a78-09.12", 0x00000, 0x8000, CRC(20358c22) SHA1(2297af6c53d5807bf90a8e081075b8c72a994fc5) )
+ ROM_LOAD( "a78-10.13", 0x08000, 0x8000, CRC(930168a9) SHA1(fd358c3c3b424bca285f67a1589eb98a345ff670) )
+ ROM_LOAD( "a78-11.14", 0x10000, 0x8000, CRC(9773e512) SHA1(33c1687ee575d66bf0e98add45d06da827813765) )
+ ROM_LOAD( "a78-12.15", 0x18000, 0x8000, CRC(d045549b) SHA1(0c12077d3ddc2ce6aa45a0224ad5540f3f218446) )
+ ROM_LOAD( "a78-13.16", 0x20000, 0x8000, CRC(d0af35c5) SHA1(c5a89f4d73acc0db86654540b3abfd77b3757db5) )
+ ROM_LOAD( "a78-14.17", 0x28000, 0x8000, CRC(7b5369a8) SHA1(1307b26d80e6f36ebe6c442bebec41d20066eaf9) )
+ ROM_LOAD( "a78-15.30", 0x40000, 0x8000, CRC(6b61a413) SHA1(44eddf12fb46fceca2addbe6da929aaea7636b13) )
+ ROM_LOAD( "a78-16.31", 0x48000, 0x8000, CRC(b5492d97) SHA1(d5b045e3ebaa44809757a4220cefb3c6815470da) )
+ ROM_LOAD( "a78-17.32", 0x50000, 0x8000, CRC(d69762d5) SHA1(3326fef4e0bd86681a3047dc11886bb171ecb609) )
+ ROM_LOAD( "a78-18.33", 0x58000, 0x8000, CRC(9f243b68) SHA1(32dce8d311a4be003693182a999e4053baa6bb0a) )
+ ROM_LOAD( "a78-19.34", 0x60000, 0x8000, CRC(66e9438c) SHA1(b94e62b6fbe7f4e08086d0365afc5cff6e0ccafd) )
+ ROM_LOAD( "a78-20.35", 0x68000, 0x8000, CRC(9ef863ad) SHA1(29f91b5a3765e4d6e6c3382db1d8d8297b6e56c8) )
+
+ ROM_REGION( 0x0100, "proms", 0 )
+ ROM_LOAD( "a71-25.41", 0x0000, 0x0100, CRC(2d0f8545) SHA1(089c31e2f614145ef2743164f7b52ae35bc06808) )
+ROM_END
+
+
+GAME( 2012, bbaladar, bublbobl, boblbobl, bbaladar, bublbobl_state, bublbobl, ROT0, "Aladar", "Bubble Bobble Bootleg", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, bb2bmh, bublbobl, bub68705, bublbobl, bublbobl_state, bublbobl, ROT0, "hack", "Bubble Bobble (Memories Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, bbhackv1, bublbobl, bub68705, bublbobl, bublbobl_state, bublbobl, ROT0, "hack", "Bubble Bobble (Level Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2013, bbredux1, bublbobl, boblbobl, boblbobl, bublbobl_state, bublbobl, ROT0, "Punji", "Bobble Bobble Redux (Level Skip)", MACHINE_SUPPORTS_SAVE )
+GAME( 2013, bbredux2, bublbobl, boblbobl, boblbobl, bublbobl_state, bublbobl, ROT0, "Punji", "Bobble Bobble Redux (Game Continue)", MACHINE_SUPPORTS_SAVE )
+GAME( 2013, bbredux3, bublbobl, boblbobl, boblbobl, bublbobl_state, bublbobl, ROT0, "Punji", "Bobble Bobble Redux (High Score)", MACHINE_SUPPORTS_SAVE )
+GAME( 19??, sboblboblh, bublbobl, boblbobl, boblbobl, bublbobl_state, bublbobl, ROT0, "hack", "Super Bobble Bobble (Level Select)", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, bublbobf, bublbobl, bublbobl, bublbobl, bublbobl_state, bublbobl, ROT0, "Arkatrad", "Bubble Bobble (French)", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/bwidow.cpp b/docs/release/src/hbmame/drivers/bwidow.cpp
new file mode 100644
index 00000000000..12b4f9c1f68
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/bwidow.cpp
@@ -0,0 +1,38 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/bwidow.cpp"
+
+/************************************************************************************************
+ *
+ * The only sound in this game is a low continuous growl when a ship is damaged or destroyed
+ *
+ ************************************************************************************************/
+
+
+ROM_START( spacwarp )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ /* Vector ROM */
+ ROM_LOAD( "spacwarp.106", 0x2800, 0x0800, CRC(23a25ff9) SHA1(e4117e6c453408079bd4a9e7b30a9b82e7b1712d) )
+ ROM_LOAD( "136006.107", 0x3000, 0x1000, CRC(d8dd0461) SHA1(58060b20b2511d30d2ec06479d21840bdd0b53c6) )
+ /* Program ROM */
+ ROM_LOAD( "spacwarp.201", 0x4000, 0x1000, CRC(0acb38e9) SHA1(dcdeeedc798d7735d03249559556d55b8256abc6) )
+ ROM_LOAD( "spacwarp.102", 0x5000, 0x1000, CRC(75fae2df) SHA1(7510e93781fe444ff10aac92abf4b882a65999aa) )
+ ROM_LOAD( "136006.103", 0x6000, 0x1000, CRC(ee72da63) SHA1(d36d62cdf7fe76ee9cdbfc2e76ac5d90f22986ba) )
+ ROM_LOAD( "spacwarp.104", 0x7000, 0x1000, CRC(aae05ec6) SHA1(14629e8375e1ae12dce96a742f1a0777e5114edb) )
+ ROM_LOAD( "spacwarp.105", 0x8000, 0x1000, CRC(41cddb2d) SHA1(8dcd7f72ca1099b04f3d29730b5071d3cb55888e) )
+ ROM_RELOAD( 0xf000, 0x1000 ) /* for reset/interrupt vectors */
+
+ // patch irq code to acknowledge the interrupt
+ ROM_COPY( "maincpu", 0x4003, 0x5353, 3 ) // move jump
+ ROM_FILL(0x4004, 1, 0x50) // new jump
+ ROM_FILL(0x4005, 1, 0x53)
+ ROM_FILL(0x5350, 1, 0x8D) // ack irq
+ ROM_FILL(0x5351, 1, 0x00)
+ ROM_FILL(0x5352, 1, 0x0E)
+
+ /* AVG PROM */
+ ROM_REGION( 0x100, "user1", 0 )
+ ROM_LOAD( "136002-125.n4", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
+ROM_END
+
+GAME( 1999, spacwarp, 0, spacduel, spacduel, driver_device, 0, ROT0, "Jeff Hendrix", "Space War (Proto on Space Duel HW)", MACHINE_IS_INCOMPLETE | MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/cave.cpp b/docs/release/src/hbmame/drivers/cave.cpp
new file mode 100644
index 00000000000..55c135b3826
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/cave.cpp
@@ -0,0 +1,93 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/cave.cpp"
+
+
+ROM_START( pwrinst2h )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "pwrinst2h.u45", 0x000000, 0x80000, CRC(126af635) SHA1(83222ed11f4f8e7b8bb6b5bc78ff1ef59738124d) )
+ ROM_LOAD16_BYTE( "pwrinst2h.u44", 0x000001, 0x80000, CRC(e4eff14d) SHA1(d60de745c79e53a909905e0769a776d2e2d96a02) )
+ ROM_LOAD16_BYTE( "g02.u43", 0x100000, 0x80000, CRC(178e3d24) SHA1(926234f4196a5d5e3bd1438abbf73355f2c65b06) )
+ ROM_LOAD16_BYTE( "g02.u42", 0x100001, 0x80000, CRC(a0b4ee99) SHA1(c6df4aa2543b04d8bda7683f503e5eb763e506af) )
+
+ ROM_REGION16_BE( 0x100000, "user1", ROMREGION_ERASE00 )
+
+ ROM_REGION( 0x20000, "audiocpu", 0 )
+ ROM_LOAD( "g02.u3a", 0x00000, 0x20000, CRC(ebea5e1e) SHA1(4d3af9e5f29d0c1b26563f51250039c9e8bd3735) )
+
+ ROM_REGION( 0x1C00000, "sprites0", 0 )
+ ROM_LOAD( "g02.u61", 0x000000, 0x200000, CRC(91e30398) SHA1(2b59a5e40bed2a988382054fe30d92808dad3348) )
+ ROM_LOAD( "g02.u62", 0x200000, 0x200000, CRC(d9455dd7) SHA1(afa69fe9a540cd78b8cfecf09cffa1401c01141a) )
+ ROM_LOAD( "g02.u63", 0x400000, 0x200000, CRC(4d20560b) SHA1(ceaee8cf0b69cc366b95ddcb689a5594d79e5114) )
+ ROM_LOAD( "g02.u64", 0x600000, 0x200000, CRC(b17b9b6e) SHA1(fc6213d8322cda4c7f653e2d7d6d314ce84c97b7) )
+ ROM_LOAD( "g02.u65", 0x800000, 0x200000, CRC(08541878) SHA1(138cf077a49a26440a3da1bdc2c399a208359e57) )
+ ROM_LOAD( "g02.u66", 0xa00000, 0x200000, CRC(becf2a36) SHA1(f8b386d0292b1dc745b7253a3df51d1aa8d5e9db) )
+ ROM_LOAD( "g02.u67", 0xc00000, 0x200000, CRC(52fe2b8b) SHA1(dd50aa62f7db995e28f47de9b3fb749aeeaaa5b0) )
+
+ ROM_REGION( 0x200000, "layer0", 0 )
+ ROM_LOAD( "g02.u78", 0x000000, 0x200000, CRC(1eca63d2) SHA1(538942b43301f950e3d5139461331c54dc90129d) )
+
+ ROM_REGION( 0x100000, "layer1", 0 )
+ ROM_LOAD( "g02.u81", 0x000000, 0x100000, CRC(8a3ff685) SHA1(4a59ec50ec4470453374fe10f76d3e894494b49f) )
+
+ ROM_REGION( 0x100000, "layer2", 0 )
+ ROM_LOAD( "g02.u89", 0x000000, 0x100000, CRC(373e1f73) SHA1(ec1ae9fab37eee41be8e1bc6dad03809b62fdbce) )
+
+ ROM_REGION( 0x080000, "layer3", 0 )
+ ROM_LOAD( "g02.82a", 0x000000, 0x080000, CRC(4b3567d6) SHA1(d3e14783b312d2bea9722a8e3c22bcec81e26166) )
+
+ ROM_REGION( 0x440000, "oki1", 0 )
+ ROM_LOAD( "g02.u53", 0x040000, 0x200000, CRC(c4bdd9e0) SHA1(a938a831e789ddf6f3cc5f3e5f3877ec7bd62d4e) )
+ ROM_LOAD( "g02.u54", 0x240000, 0x200000, CRC(1357d50e) SHA1(433766177ce9d6933f90de85ba91bfc6d8d5d664) )
+
+ ROM_REGION( 0x440000, "oki2", 0 )
+ ROM_LOAD( "g02.u55", 0x040000, 0x200000, CRC(2d102898) SHA1(bd81f4cd2ba100707db0c5bb1419f0b23c998574) )
+ ROM_LOAD( "g02.u56", 0x240000, 0x200000, CRC(9ff50dda) SHA1(1121685e387c20e228032f2b0f5cbb606376fc15) )
+ROM_END
+
+ROM_START( pwrinst2z )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "pwrinst2z.u45", 0x000000, 0x80000, CRC(7b66ff4f) SHA1(ffbc2616197f1fd67dfbb9993018fe51fb12e623) )
+ ROM_IGNORE(0x3d4f47)
+ ROM_LOAD16_BYTE( "pwrinst2z.u44", 0x000001, 0x80000, CRC(b2b19ac4) SHA1(5d846c9e8a69b754bd8e874c3df50a20c0ab009a) )
+ ROM_IGNORE(0x3d4f48)
+ ROM_LOAD16_BYTE( "g02.u43", 0x100000, 0x80000, CRC(178e3d24) SHA1(926234f4196a5d5e3bd1438abbf73355f2c65b06) )
+ ROM_LOAD16_BYTE( "g02.u42", 0x100001, 0x80000, CRC(a0b4ee99) SHA1(c6df4aa2543b04d8bda7683f503e5eb763e506af) )
+
+ ROM_REGION16_BE( 0x100000, "user1", ROMREGION_ERASE00 )
+
+ ROM_REGION( 0x20000, "audiocpu", 0 )
+ ROM_LOAD( "g02.u3a", 0x00000, 0x20000, CRC(ebea5e1e) SHA1(4d3af9e5f29d0c1b26563f51250039c9e8bd3735) )
+
+ ROM_REGION( 0x1C00000, "sprites0", 0 )
+ ROM_LOAD( "g02.u61", 0x000000, 0x200000, CRC(91e30398) SHA1(2b59a5e40bed2a988382054fe30d92808dad3348) )
+ ROM_LOAD( "g02.u62", 0x200000, 0x200000, CRC(d9455dd7) SHA1(afa69fe9a540cd78b8cfecf09cffa1401c01141a) )
+ ROM_LOAD( "g02.u63", 0x400000, 0x200000, CRC(4d20560b) SHA1(ceaee8cf0b69cc366b95ddcb689a5594d79e5114) )
+ ROM_LOAD( "g02.u64", 0x600000, 0x200000, CRC(b17b9b6e) SHA1(fc6213d8322cda4c7f653e2d7d6d314ce84c97b7) )
+ ROM_LOAD( "g02.u65", 0x800000, 0x200000, CRC(08541878) SHA1(138cf077a49a26440a3da1bdc2c399a208359e57) )
+ ROM_LOAD( "g02.u66", 0xa00000, 0x200000, CRC(becf2a36) SHA1(f8b386d0292b1dc745b7253a3df51d1aa8d5e9db) )
+ ROM_LOAD( "g02.u67", 0xc00000, 0x200000, CRC(52fe2b8b) SHA1(dd50aa62f7db995e28f47de9b3fb749aeeaaa5b0) )
+
+ ROM_REGION( 0x200000, "layer0", 0 )
+ ROM_LOAD( "g02.u78", 0x000000, 0x200000, CRC(1eca63d2) SHA1(538942b43301f950e3d5139461331c54dc90129d) )
+
+ ROM_REGION( 0x100000, "layer1", 0 )
+ ROM_LOAD( "g02.u81", 0x000000, 0x100000, CRC(8a3ff685) SHA1(4a59ec50ec4470453374fe10f76d3e894494b49f) )
+
+ ROM_REGION( 0x100000, "layer2", 0 )
+ ROM_LOAD( "g02.u89", 0x000000, 0x100000, CRC(373e1f73) SHA1(ec1ae9fab37eee41be8e1bc6dad03809b62fdbce) )
+
+ ROM_REGION( 0x080000, "layer3", 0 )
+ ROM_LOAD( "g02.82a", 0x000000, 0x080000, CRC(4b3567d6) SHA1(d3e14783b312d2bea9722a8e3c22bcec81e26166) )
+
+ ROM_REGION( 0x440000, "oki1", 0 )
+ ROM_LOAD( "g02.u53", 0x040000, 0x200000, CRC(c4bdd9e0) SHA1(a938a831e789ddf6f3cc5f3e5f3877ec7bd62d4e) )
+ ROM_LOAD( "g02.u54", 0x240000, 0x200000, CRC(1357d50e) SHA1(433766177ce9d6933f90de85ba91bfc6d8d5d664) )
+
+ ROM_REGION( 0x440000, "oki2", 0 )
+ ROM_LOAD( "g02.u55", 0x040000, 0x200000, CRC(2d102898) SHA1(bd81f4cd2ba100707db0c5bb1419f0b23c998574) )
+ ROM_LOAD( "g02.u56", 0x240000, 0x200000, CRC(9ff50dda) SHA1(1121685e387c20e228032f2b0f5cbb606376fc15) )
+ROM_END
+
+GAME( 2013, pwrinst2h, pwrinst2, pwrinst2, metmqstr, cave_state, pwrinst2j, ROT0, "TT", "Power Instinct 2 (hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, pwrinst2z, pwrinst2, pwrinst2, metmqstr, cave_state, pwrinst2j, ROT0, "hack", "Power Instinct 2 (unknown hack)", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/cball.cpp b/docs/release/src/hbmame/drivers/cball.cpp
new file mode 100644
index 00000000000..b07d8264370
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/cball.cpp
@@ -0,0 +1,37 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/cball.cpp"
+/***************************************************************************
+
+ Atari Cannonball (prototype) driver
+
+ Note: canballmash.6m is an approximate replacement created by MASH.
+
+ The maincpu rom has heaps of illegal '02' opcodes.
+
+***************************************************************************/
+
+
+ROM_START( cballfix )
+ ROM_REGION( 0x8000, "maincpu", 0 )
+ ROM_LOAD_NIB_LOW ( "canball.1e", 0x7400, 0x0400, CRC(0b34823b) SHA1(0db6b9f78f7c07ee7d35f2bf048ba61fe43b1e26) )
+ ROM_LOAD_NIB_HIGH( "canball.1l", 0x7400, 0x0400, CRC(b43ca275) SHA1(a03e03f6366877cfdcec71030a5fb2c5171c8d8a) )
+ ROM_LOAD_NIB_LOW ( "canball.1f", 0x7800, 0x0400, CRC(29b4e1f7) SHA1(8cef944b6e0153c304aa2d4cfdc530b8a4eef021) )
+ ROM_LOAD_NIB_HIGH( "canball.1k", 0x7800, 0x0400, CRC(a4d1cf12) SHA1(99de6470efd16e57d72019e065f55bc740f3c7fc) )
+ ROM_LOAD_NIB_LOW ( "canball.1h", 0x7c00, 0x0400, CRC(13f55937) SHA1(7514c27e60944c4e00992c8ecbc5115f8ff948bb) )
+ ROM_LOAD_NIB_HIGH( "canball.1j", 0x7c00, 0x0400, CRC(5b905d69) SHA1(2408dd6e44c51c0c9bdb82d2d33826c03f8308c4) )
+
+ ROM_REGION( 0x0200, "gfx1", 0 )
+ ROM_LOAD_NIB_LOW ( "canballmash.6m", 0x0000, 0x0200, BAD_DUMP CRC(bec9eb19) SHA1(8d84d783a4615e58fa4138e039658922ce50e967) )
+ ROM_LOAD_NIB_HIGH( "canball.6l", 0x0000, 0x0200, CRC(5b1c9e88) SHA1(6e9630db9907170c53942a21302bcf8b721590a3) )
+
+ ROM_REGION( 0x0200, "gfx2", 0 )
+ ROM_LOAD_NIB_LOW ( "canball.5l", 0x0000, 0x0200, CRC(3d0d1569) SHA1(1dfcf5cf9468d476c4b7d76a261c6fec87a99f93) )
+ ROM_LOAD_NIB_HIGH( "canball.5k", 0x0000, 0x0200, CRC(c5fdd3c8) SHA1(5aae148439683ff1cf0005a810c81fdcbed525c3) )
+
+ ROM_REGION( 0x0100, "proms", 0 )
+ ROM_LOAD( "canball.6h", 0x0000, 0x0100, CRC(b8094b4c) SHA1(82dc6799a19984f3b204ee3aeeb007e55afc8be3) )
+ROM_END
+
+
+GAME( 2004, cballfix, cball, cball, cball, driver_device, 0, ROT0, "MASH", "Cannonball (Atari, prototype) with new rom", MACHINE_NO_SOUND | MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/cclimber.cpp b/docs/release/src/hbmame/drivers/cclimber.cpp
new file mode 100644
index 00000000000..a906291974e
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/cclimber.cpp
@@ -0,0 +1,182 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/cclimber.cpp"
+
+INPUT_PORTS_START( ckonga2 ) /* one less life than normal */
+ PORT_INCLUDE( ckong )
+ PORT_MODIFY("DSW")
+ PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) )
+ PORT_DIPSETTING( 0x00, "2" )
+ PORT_DIPSETTING( 0x01, "3" )
+ PORT_DIPSETTING( 0x02, "4" )
+ PORT_DIPSETTING( 0x03, "5" )
+INPUT_PORTS_END
+
+INPUT_PORTS_START( ckonga4 ) /* two less lives than normal */
+ PORT_INCLUDE( ckong )
+ PORT_MODIFY("DSW")
+ PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) )
+ PORT_DIPSETTING( 0x00, "1" )
+ PORT_DIPSETTING( 0x01, "2" )
+ PORT_DIPSETTING( 0x02, "3" )
+ PORT_DIPSETTING( 0x03, "4" )
+INPUT_PORTS_END
+
+ROM_START( cclimbrm )
+ ROM_REGION( 0x6000, "maincpu", 0 )
+ ROM_LOAD( "cc11m", 0x0000, 0x1000, CRC(a7d58b7e) SHA1(83a21b1a731895c84f1f3604f36b21b172bb144b) )
+ ROM_LOAD( "cc10", 0x1000, 0x1000, CRC(b3c26cef) SHA1(f52cb5482c12a9c5fb56e2e2aec7cab0ed23e5a5) )
+ ROM_LOAD( "cc09", 0x2000, 0x1000, CRC(6db0879c) SHA1(c0ba1976c1dcd6edadd78073173a26851ae8dd4f) )
+ ROM_LOAD( "cc08", 0x3000, 0x1000, CRC(f48c5fe3) SHA1(79072bbbf37387998ffd031afe8eb569a16fa9bd) )
+ ROM_LOAD( "cc07m", 0x4000, 0x1000, CRC(a417e7a3) SHA1(0cc8e306268119e11d8375749147cb7c1a831bd8) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "cc06", 0x0000, 0x0800, CRC(481b64cc) SHA1(3f35c545fc784ed4f969aba2d7be6e13a5ae32b7) )
+ /* empty hole - Crazy Kong has an additional ROM here */
+ ROM_LOAD( "cc04", 0x2000, 0x0800, CRC(332347cb) SHA1(4115ca32af73f1791635b7d9e093bf77088a8222) )
+ /* empty hole - Crazy Kong has an additional ROM here */
+ ROM_LOAD( "cc05", 0x1000, 0x0800, CRC(2c33b760) SHA1(2edea8fe13376fbd51a5586d97aba3b30d78e94b) )
+ /* empty hole - Crazy Kong has an additional ROM here */
+ ROM_LOAD( "cc03", 0x3000, 0x0800, CRC(4e4b3658) SHA1(0d39a8cb5cd6cf06008be60707f9b277a8a32a2d) )
+ /* empty hole - Crazy Kong has an additional ROM here */
+
+ ROM_REGION( 0x1000, "gfx2", 0 )
+ ROM_LOAD( "cc02", 0x0000, 0x0800, CRC(14f3ecc9) SHA1(a1b5121abfbe8f07580eb3fa6384352d239a3d75) )
+ ROM_LOAD( "cc01", 0x0800, 0x0800, CRC(21c0f9fb) SHA1(44fad56d302a439257216ddac9fd62b3666589f1) )
+
+ ROM_REGION( 0x0060, "proms", 0 )
+ ROM_LOAD( "cclimber.pr1", 0x0000, 0x0020, CRC(751c3325) SHA1(edce2bc883996c1d72dc6c1c9f62799b162d415a) )
+ ROM_LOAD( "cclimber.pr2", 0x0020, 0x0020, CRC(ab1940fa) SHA1(8d98e05cbaa6f55770c12e0a9a8ed9c73cc54423) )
+ ROM_LOAD( "cclimber.pr3", 0x0040, 0x0020, CRC(71317756) SHA1(1195f0a037e379cc1a3c0314cb746f5cd2bffe50) )
+
+ ROM_REGION( 0x2000, "samples", 0 )
+ ROM_LOAD( "cc13", 0x0000, 0x1000, CRC(e0042f75) SHA1(86cb31b110742a0f7ae33052c88f42d00deb5468) )
+ ROM_LOAD( "cc12", 0x1000, 0x1000, CRC(5da13aaa) SHA1(b2d41e69435d09c456648a10e33f5e1fbb0bc64c) )
+ROM_END
+
+/* E376 and E449 are basically the same bootleg of "ckonga". One gfx rom in E376 is changed, and we use it here.
+ Changes: One less life than normal, and gfx corruptions on the stage with the incinerator in the middle. */
+ROM_START( ckonga2 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "ckonga2.07", 0x0000, 0x1000, CRC(1c21386f) SHA1(ce1a0c469dd09d81485cede6c8fbaf6299a9decf) )
+ ROM_LOAD( "f05-08.bin", 0x1000, 0x1000, CRC(5dc1aaba) SHA1(42b9e5946ffce7c156d114bde68f37c2c34853c4) )
+ ROM_LOAD( "h05-09.bin", 0x2000, 0x1000, CRC(c9054c94) SHA1(1aa08d2501ee620759fd5c111e12f6d432c25294) )
+ ROM_LOAD( "10.dat", 0x3000, 0x1000, CRC(c3beb501) SHA1(14f49c45fc7c91799034c5a51fca310f0a66b1d7) )
+ ROM_LOAD( "l05-11.bin", 0x4000, 0x1000, CRC(ae159192) SHA1(d467256a3a366e246243e7828ff4a45d4c146e2c) )
+ ROM_LOAD( "n05-12.bin", 0x5000, 0x1000, CRC(966bc9ab) SHA1(4434fc620169ffea1b1f227b61674e1daf79b54b) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "n11-06.bin", 0x0000, 0x1000, CRC(2dcedd12) SHA1(dfdcfc21bcba7c8e148ee54daae511ca78c58e70) )
+ ROM_LOAD( "falcon5", 0x1000, 0x1000, CRC(cd3b5dde) SHA1(2319a2be04d70989b01f4fc703756ba6e1c1f388) )
+ ROM_LOAD( "k11-04.bin", 0x2000, 0x1000, CRC(3375b3bd) SHA1(a00b3c31cff123aab6ac0833aabfdd663302971a) )
+ ROM_LOAD( "h11-03.bin", 0x3000, 0x1000, CRC(5655cc11) SHA1(5195e9b2a60c54280b48b32ee8248090904dbc51) )
+
+ ROM_REGION( 0x1000, "gfx2", 0 )
+ ROM_LOAD( "c11-02.bin", 0x0000, 0x0800, CRC(d1352c31) SHA1(da726a63a8be830d695afeddc1717749af8c9d47) )
+ ROM_LOAD( "a11-01.bin", 0x0800, 0x0800, CRC(a7a2fdbd) SHA1(529865f8bbfbdbbf34ac39c70ef17e6d5bd0f845) )
+
+ ROM_REGION( 0x0060, "proms", 0 )
+ ROM_LOAD( "prom.v6", 0x0000, 0x0020, CRC(b3fc1505) SHA1(5b94adde0428a26b815c7eb9b3f3716470d349c7) )
+ ROM_LOAD( "prom.u6", 0x0020, 0x0020, CRC(26aada9e) SHA1(f59645e606ea4f0dd0fc4ea47dd03f526c534941) )
+ ROM_LOAD( "prom.t6", 0x0040, 0x0020, CRC(676b3166) SHA1(29b9434cd34d43ea5664e436e2a24b54f8d88aac) )
+
+ ROM_REGION( 0x2000, "samples", 0 )
+ ROM_LOAD( "falcon13", 0x0000, 0x1000, CRC(5f0bcdfb) SHA1(7f79bf6de117348f606696ed7ea1937bbf926612) )
+ ROM_LOAD( "falcon12", 0x1000, 0x1000, CRC(9003ffbd) SHA1(fd016056aabc23957643f37230f03842294f795e) )
+ROM_END
+
+/* E448 and E589 are basically the same bootleg of "ckonga". One prom in E448 is changed, and we use it here.
+ Changes: Two less lives than normal. */
+ROM_START( ckonga3 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "ckonga4.07", 0x0000, 0x1000, CRC(9b5e7592) SHA1(c2b44765eef7d6a8f9f1fb8a7cefd011ebf2a330) )
+ ROM_LOAD( "f05-08.bin", 0x1000, 0x1000, CRC(5dc1aaba) SHA1(42b9e5946ffce7c156d114bde68f37c2c34853c4) )
+ ROM_LOAD( "h05-09.bin", 0x2000, 0x1000, CRC(c9054c94) SHA1(1aa08d2501ee620759fd5c111e12f6d432c25294) )
+ ROM_LOAD( "10.dat", 0x3000, 0x1000, CRC(c3beb501) SHA1(14f49c45fc7c91799034c5a51fca310f0a66b1d7) )
+ ROM_LOAD( "l05-11.bin", 0x4000, 0x1000, CRC(ae159192) SHA1(d467256a3a366e246243e7828ff4a45d4c146e2c) )
+ ROM_LOAD( "n05-12.bin", 0x5000, 0x1000, CRC(966bc9ab) SHA1(4434fc620169ffea1b1f227b61674e1daf79b54b) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "n11-06.bin", 0x0000, 0x1000, CRC(2dcedd12) SHA1(dfdcfc21bcba7c8e148ee54daae511ca78c58e70) )
+ ROM_LOAD( "l11-05.bin", 0x1000, 0x1000, CRC(fa7cbd91) SHA1(0208d2ebc59f3600005476b6987472685bc99d67) )
+ ROM_LOAD( "k11-04.bin", 0x2000, 0x1000, CRC(3375b3bd) SHA1(a00b3c31cff123aab6ac0833aabfdd663302971a) )
+ ROM_LOAD( "h11-03.bin", 0x3000, 0x1000, CRC(5655cc11) SHA1(5195e9b2a60c54280b48b32ee8248090904dbc51) )
+
+ ROM_REGION( 0x1000, "gfx2", 0 )
+ ROM_LOAD( "c11-02.bin", 0x0000, 0x0800, CRC(d1352c31) SHA1(da726a63a8be830d695afeddc1717749af8c9d47) )
+ ROM_LOAD( "a11-01.bin", 0x0800, 0x0800, CRC(a7a2fdbd) SHA1(529865f8bbfbdbbf34ac39c70ef17e6d5bd0f845) )
+
+ ROM_REGION( 0x0060, "proms", 0 )
+ ROM_LOAD( "ckonga4.v6", 0x0000, 0x0020, CRC(d3b84067) SHA1(1d025c28c47c4c7508b0dfd534de87e923262630) )
+ ROM_LOAD( "prom.u6", 0x0020, 0x0020, CRC(26aada9e) SHA1(f59645e606ea4f0dd0fc4ea47dd03f526c534941) )
+ ROM_LOAD( "prom.t6", 0x0040, 0x0020, CRC(676b3166) SHA1(29b9434cd34d43ea5664e436e2a24b54f8d88aac) )
+
+ ROM_REGION( 0x2000, "samples", 0 )
+ ROM_LOAD( "falcon13", 0x0000, 0x1000, CRC(5f0bcdfb) SHA1(7f79bf6de117348f606696ed7ea1937bbf926612) )
+ ROM_LOAD( "falcon12", 0x1000, 0x1000, CRC(9003ffbd) SHA1(fd016056aabc23957643f37230f03842294f795e) )
+ROM_END
+
+ROM_START( ckongfix )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "d05-07.bin", 0x0000, 0x1000, CRC(b27df032) SHA1(57f9be139c610405e3c2fddd7093dfb1277e450e) )
+ ROM_LOAD( "f05-08.bin", 0x1000, 0x1000, CRC(5dc1aaba) SHA1(42b9e5946ffce7c156d114bde68f37c2c34853c4) )
+ ROM_LOAD( "h05-09.bin", 0x2000, 0x1000, CRC(c9054c94) SHA1(1aa08d2501ee620759fd5c111e12f6d432c25294) )
+ ROM_LOAD( "k05-10.bin", 0x3000, 0x1000, CRC(069c4797) SHA1(03be185e6914ec7f3770ce3da4eb49cdb97adc85) )
+ ROM_LOAD( "l05-11.bin", 0x4000, 0x1000, CRC(ae159192) SHA1(d467256a3a366e246243e7828ff4a45d4c146e2c) )
+ ROM_LOAD( "n05-12.bin", 0x5000, 0x1000, CRC(966bc9ab) SHA1(4434fc620169ffea1b1f227b61674e1daf79b54b) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "n11-06.bin", 0x0000, 0x1000, CRC(2dcedd12) SHA1(dfdcfc21bcba7c8e148ee54daae511ca78c58e70) )
+ ROM_LOAD( "l11-05.bin", 0x1000, 0x1000, CRC(fa7cbd91) SHA1(0208d2ebc59f3600005476b6987472685bc99d67) )
+ ROM_LOAD( "k11-04.bin", 0x2000, 0x1000, CRC(3375b3bd) SHA1(a00b3c31cff123aab6ac0833aabfdd663302971a) )
+ ROM_LOAD( "h11-03.bin", 0x3000, 0x1000, CRC(5655cc11) SHA1(5195e9b2a60c54280b48b32ee8248090904dbc51) )
+
+ ROM_REGION( 0x1000, "gfx2", 0 )
+ ROM_LOAD( "c11-02f.bin", 0x0000, 0x0800, CRC(881ed76e) SHA1(e516d898b68da7040f7fb8c7dbc47e0526349e4c) )
+ ROM_LOAD( "a11-01f.bin", 0x0800, 0x0800, CRC(d49aa505) SHA1(7dec6d62e874fb23f827ffddb72d85777a5c39f7) )
+
+ ROM_REGION( 0x0060, "proms", 0 )
+ ROM_LOAD( "prom.v6", 0x0000, 0x0020, CRC(b3fc1505) SHA1(5b94adde0428a26b815c7eb9b3f3716470d349c7) )
+ ROM_LOAD( "prom.u6", 0x0020, 0x0020, CRC(26aada9e) SHA1(f59645e606ea4f0dd0fc4ea47dd03f526c534941) )
+ ROM_LOAD( "prom.t6", 0x0040, 0x0020, CRC(676b3166) SHA1(29b9434cd34d43ea5664e436e2a24b54f8d88aac) )
+
+ ROM_REGION( 0x2000, "samples", 0 )
+ ROM_LOAD( "falcon13", 0x0000, 0x1000, CRC(5f0bcdfb) SHA1(7f79bf6de117348f606696ed7ea1937bbf926612) )
+ ROM_LOAD( "falcon12", 0x1000, 0x1000, CRC(9003ffbd) SHA1(fd016056aabc23957643f37230f03842294f795e) )
+ROM_END
+
+/* This is a gfx hack of monkeyd. Should monkeyd get correct colours, it must be applied here too. */
+ROM_START( tongypac )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "falcon7", 0x0000, 0x1000, CRC(2171cac3) SHA1(7b18bfe44c32fb64b675bbbe2136344522c79b09) )
+ ROM_LOAD( "falcon8", 0x1000, 0x1000, CRC(88b83ff7) SHA1(4afc494cc264aaa4614da6aed02ce062d9c20850) )
+ ROM_LOAD( "falcon9", 0x2000, 0x1000, CRC(cff2af47) SHA1(1757428cefad13855a623162101ec01c04006c94) )
+ ROM_LOAD( "ck10.bin", 0x3000, 0x1000, CRC(520fa4de) SHA1(6edbaf727756cd33bde94492d72654aa12dbd7e1) )
+ ROM_LOAD( "md5l.bin", 0x4000, 0x1000, CRC(d1db1bb0) SHA1(fe7d700c7f9eca9c389be3717ebebf3e7dc63aa2) )
+ /* no ROM at 5000 */
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "tpac6.bin", 0x0000, 0x1000, CRC(918e3c52) SHA1(bc630759a525615aba1a06a0781e26a1a5c2c377) )
+ ROM_LOAD( "tpac5.bin", 0x1000, 0x1000, CRC(2bbc69e7) SHA1(5741aa6944e9b936289368d533c2b19d34320260) )
+ ROM_LOAD( "tpac4.bin", 0x2000, 0x1000, CRC(8d5890b6) SHA1(92d48d75084df2e2a3fa9d92a3c6c059f0781d81) )
+ ROM_LOAD( "tpac3.bin", 0x3000, 0x1000, CRC(6b16145b) SHA1(ef17fad07b81c9dae5c6e16a86afc4a8f6a7ff8c) )
+
+ ROM_REGION( 0x1000, "gfx2", 0 )
+ ROM_LOAD( "falcon2", 0x0000, 0x0800, CRC(f67c80f1) SHA1(d1fbcce1b6242f810e106ff50812636e3168ebc1) )
+ ROM_LOAD( "falcon1", 0x0800, 0x0800, CRC(80eb517d) SHA1(fef4111f656c58b28e7eac5aa5b5cc7e07ccb2fd) )
+
+ ROM_REGION( 0x0060, "proms", 0 )
+ ROM_LOAD( "ck6v.bin", 0x0000, 0x0020, CRC(751c3325) SHA1(edce2bc883996c1d72dc6c1c9f62799b162d415a) )
+ ROM_LOAD( "ck6u.bin", 0x0020, 0x0020, CRC(ab1940fa) SHA1(8d98e05cbaa6f55770c12e0a9a8ed9c73cc54423) )
+ ROM_LOAD( "ck6t.bin", 0x0040, 0x0020, CRC(b4e827a5) SHA1(31a5a5ad54417a474d22bb16c473415d99a2b6f1) )
+
+ ROM_REGION( 0x2000, "samples", 0 )
+ ROM_LOAD( "falcon13", 0x0000, 0x1000, CRC(5f0bcdfb) SHA1(7f79bf6de117348f606696ed7ea1937bbf926612) )
+ ROM_LOAD( "ck12.bin", 0x1000, 0x1000, CRC(2eb23b60) SHA1(c9e7dc584562aceb374193655fbacb7df6c9c731) )
+ROM_END
+
+GAME( 1980, cclimbrm, cclimber, cclimberx, cclimber, cclimber_state, cclimber, ROT0, "Tim Arcadecollecting", "Crazy Climber (US - modded)", MACHINE_SUPPORTS_SAVE ) // http://www.arcadecollecting.com/crazy/cchack
+GAME( 1981, ckonga2, ckong, cclimber, ckonga2, driver_device, 0, ROT270, "bootleg", "Crazy Kong Part II -1", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, ckonga3, ckong, cclimber, ckonga4, driver_device, 0, ROT270, "bootleg", "Crazy Kong Part II -2", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, ckongfix, ckong, cclimber, ckong, driver_device, 0, ROT270, "Pinny", "Crazy Kong Part II (Graphic Fix)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, tongypac, ckong, cclimber, ckong, driver_device, 0, ROT270, "Grand Master Peter", "Tongy Paccy", MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/centiped.cpp b/docs/release/src/hbmame/drivers/centiped.cpp
new file mode 100644
index 00000000000..fba3faa5eb6
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/centiped.cpp
@@ -0,0 +1,165 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/centiped.cpp"
+
+ROM_START( astropd2 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "136001-307.d1", 0x2000, 0x0800, CRC(5ab0d9de) SHA1(8ea6e3304202831aabaf31dbd0f970a7b3bfe421) )
+ ROM_LOAD( "136001-308.e1", 0x2800, 0x0800, CRC(4c07fd3e) SHA1(af4fdbf32c23b1864819d620a874e7f205da3cdb) )
+ ROM_LOAD( "136001-309.fh1", 0x3000, 0x0800, CRC(ff69b424) SHA1(689fa560d40a384dcbcad7c8095bc12e91875580) )
+ ROM_LOAD( "136001-310.j1", 0x3800, 0x0800, CRC(44e40fa4) SHA1(c557db83876afc8ab52047ab1a3c3bfef34d6351) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "astropd2.211", 0x0000, 0x0800, CRC(7bdb6861) SHA1(38e3f1827687e8a93ad66f69bee5a34f5f553fa4) )
+ ROM_LOAD( "astropd2.212", 0x0800, 0x0800, CRC(043f9810) SHA1(954e55d6cc464f6f992f615b89b43d6cb29d35a9) )
+
+ ROM_REGION( 0x0100, "proms", 0 )
+ ROM_LOAD( "136001-213.p4", 0x0000, 0x0100, CRC(6fa3093a) SHA1(2b7aeca74c1ae4156bf1878453a047330f96f0a8) )
+ROM_END
+
+ROM_START( astroped )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "136001-307.d1", 0x2000, 0x0800, CRC(5ab0d9de) SHA1(8ea6e3304202831aabaf31dbd0f970a7b3bfe421) )
+ ROM_LOAD( "136001-308.e1", 0x2800, 0x0800, CRC(4c07fd3e) SHA1(af4fdbf32c23b1864819d620a874e7f205da3cdb) )
+ ROM_LOAD( "136001-309.fh1", 0x3000, 0x0800, CRC(ff69b424) SHA1(689fa560d40a384dcbcad7c8095bc12e91875580) )
+ ROM_LOAD( "136001-310.j1", 0x3800, 0x0800, CRC(44e40fa4) SHA1(c557db83876afc8ab52047ab1a3c3bfef34d6351) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "astroped.211", 0x0000, 0x0800, CRC(47992235) SHA1(f200c55327edee86abb82a2c33f75a2cf1abbb1f) )
+ ROM_LOAD( "astroped.212", 0x0800, 0x0800, CRC(1f877066) SHA1(7254765394c71bfcca8a1061b0544438f2783218) )
+
+ ROM_REGION( 0x0100, "proms", 0 )
+ ROM_LOAD( "136001-213.p4", 0x0000, 0x0100, CRC(6fa3093a) SHA1(2b7aeca74c1ae4156bf1878453a047330f96f0a8) )
+ROM_END
+
+ROM_START( cemescry )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "136001-307.d1", 0x2000, 0x0800, CRC(5ab0d9de) SHA1(8ea6e3304202831aabaf31dbd0f970a7b3bfe421) )
+ ROM_LOAD( "136001-308.e1", 0x2800, 0x0800, CRC(4c07fd3e) SHA1(af4fdbf32c23b1864819d620a874e7f205da3cdb) )
+ ROM_LOAD( "136001-309.fh1", 0x3000, 0x0800, CRC(ff69b424) SHA1(689fa560d40a384dcbcad7c8095bc12e91875580) )
+ ROM_LOAD( "136001-310.j1", 0x3800, 0x0800, CRC(44e40fa4) SHA1(c557db83876afc8ab52047ab1a3c3bfef34d6351) )
+
+ ROM_REGION(0x1000, "gfx1", 0 )
+ ROM_LOAD( "cemescry.211", 0x0000, 0x0800, CRC(dad550a7) SHA1(3a5067dac4d5fc5af01a9778654463f37f793606) )
+ ROM_LOAD( "cemescry.212", 0x0800, 0x0800, CRC(47982803) SHA1(62b3aa80379fd71eb4efc5994b594b1eb69c0468) )
+
+ ROM_REGION( 0x0100, "proms", 0 )
+ ROM_LOAD( "136001-213.p4", 0x0000, 0x0100, CRC(6fa3093a) SHA1(2b7aeca74c1ae4156bf1878453a047330f96f0a8) )
+ROM_END
+
+/* E418 - same as centipdb except for 2 roms */
+ROM_START( centipb )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "d1", 0x2000, 0x0800, CRC(b17b8e0b) SHA1(01944cf040cf23aeb4c50d4f2e63181e08a07310) )
+ ROM_LOAD( "e1", 0x2800, 0x0800, CRC(7684398e) SHA1(eea8e05506a7af2fec55c2689e3caafc62ea524f) )
+ ROM_LOAD( "h1", 0x3000, 0x0800, CRC(74580fe4) SHA1(35b8a8675e4e020e234e51c3e4bd4ee5c24b79d2) )
+ ROM_LOAD( "centipb.4", 0x3800, 0x0800, CRC(849b1614) SHA1(9060e39ec1d5c66e26c8d28a86818bcc1801c610) )
+ ROM_LOAD( "centipb.5", 0x6000, 0x0800, CRC(9d3ad0e5) SHA1(ad7520b3c95d729bfd022553817f868485e9a191) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "136001-211.f7", 0x0000, 0x0800, CRC(880acfb9) SHA1(6c862352c329776f2f9974a0df9dbe41f9dbc361) )
+ ROM_LOAD( "136001-212.hj7", 0x0800, 0x0800, CRC(b1397029) SHA1(974c03d29aeca672fffa4dfc00a06be6a851aacb) )
+
+ ROM_REGION( 0x0100, "proms", 0 )
+ ROM_LOAD( "136001-213.p4", 0x0000, 0x0100, CRC(6fa3093a) SHA1(2b7aeca74c1ae4156bf1878453a047330f96f0a8) )
+ROM_END
+
+ROM_START( killiped )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "136001-307.d1", 0x2000, 0x0800, CRC(5ab0d9de) SHA1(8ea6e3304202831aabaf31dbd0f970a7b3bfe421) )
+ ROM_LOAD( "136001-308.e1", 0x2800, 0x0800, CRC(4c07fd3e) SHA1(af4fdbf32c23b1864819d620a874e7f205da3cdb) )
+ ROM_LOAD( "136001-309.fh1", 0x3000, 0x0800, CRC(ff69b424) SHA1(689fa560d40a384dcbcad7c8095bc12e91875580) )
+ ROM_LOAD( "136001-310.j1", 0x3800, 0x0800, CRC(44e40fa4) SHA1(c557db83876afc8ab52047ab1a3c3bfef34d6351) )
+
+ ROM_REGION(0x1000, "gfx1", 0 )
+ ROM_LOAD( "killiped.211", 0x0000, 0x0800, CRC(6115917c) SHA1(ec9d7fc6503647a4bd13894c44584cb308232ecd) )
+ ROM_LOAD( "killiped.212", 0x0800, 0x0800, CRC(3d545e5b) SHA1(098f714084ada6ea1f379da9783581bb6be20d2c) )
+
+ ROM_REGION( 0x0100, "proms", 0 )
+ ROM_LOAD( "136001-213.p4", 0x0000, 0x0100, CRC(6fa3093a) SHA1(2b7aeca74c1ae4156bf1878453a047330f96f0a8) )
+ROM_END
+
+/* E626 - This dump has a bad "2" rom. Using the one from magworm for now. The coins aren't always detected. */
+ROM_START( magworm2 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "magworm2.k0", 0x2000, 0x0800, CRC(22985495) SHA1(ad477b05d9303a03d99d110ff4546d1e5de165bd) )
+ ROM_LOAD( "magworm2.k1", 0x2800, 0x0800, CRC(981e1ddc) SHA1(b7ba1d522cb45b646d2b26e06d9531196152722e) )
+ ROM_LOAD( "11005-2.k2", 0x3000, 0x0800, CRC(f127f1c3) SHA1(3fddcd6f458ac60eaebacef921b522dd2c7b8141) )
+ ROM_LOAD( "magworm2.k3", 0x3800, 0x0800, CRC(95029f45) SHA1(a341cf1a3bf91f24bf3ae87b2f5950228cc9379d) )
+
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "11005-4.c4", 0x0000, 0x0800, CRC(cea64e1a) SHA1(9022102124e1ad93f912ce8bdf85f8a886b0879b) )
+ ROM_LOAD( "11005-5.c5", 0x0800, 0x0800, CRC(24558ea5) SHA1(8cd7131e19afd7a96191b1b3c3fba7ae9a140f4b) )
+ROM_END
+
+ROM_START( pacipede )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "136001-307.d1", 0x2000, 0x0800, CRC(5ab0d9de) SHA1(8ea6e3304202831aabaf31dbd0f970a7b3bfe421) )
+ ROM_LOAD( "136001-308.e1", 0x2800, 0x0800, CRC(4c07fd3e) SHA1(af4fdbf32c23b1864819d620a874e7f205da3cdb) )
+ ROM_LOAD( "136001-309.fh1", 0x3000, 0x0800, CRC(ff69b424) SHA1(689fa560d40a384dcbcad7c8095bc12e91875580) )
+ ROM_LOAD( "136001-310.j1", 0x3800, 0x0800, CRC(44e40fa4) SHA1(c557db83876afc8ab52047ab1a3c3bfef34d6351) )
+
+ ROM_REGION(0x1000, "gfx1", 0 )
+ ROM_LOAD( "paciped.211", 0x0000, 0x0800, CRC(4d2a94c0) SHA1(6f07f86ec6b8fbd62a63a808b20ced5116765f11) )
+ ROM_LOAD( "paciped.212", 0x0800, 0x0800, CRC(10fac52e) SHA1(80c4f9148b5310b81963960ddc8ad4ec3e26217b) )
+
+ ROM_REGION( 0x0100, "proms", 0 )
+ ROM_LOAD( "136001-213.p4", 0x0000, 0x0100, CRC(6fa3093a) SHA1(2b7aeca74c1ae4156bf1878453a047330f96f0a8) )
+ROM_END
+
+ROM_START( silliped )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "136013-104.mn1", 0x4000, 0x1000, CRC(40711675) SHA1(b595d6a0f5d3c611ade1b83a94c3b909d2124dc4) )
+ ROM_LOAD( "136013-103.l1", 0x5000, 0x1000, CRC(fb01baf2) SHA1(9c1d0bbc20bf25dd21761a311fd1ed80aa029241) )
+ ROM_LOAD( "136013-102.jk1", 0x6000, 0x1000, CRC(62e137e0) SHA1(9fe40db55ba1d20d4f11704f7f5df9ff75b87f30) )
+ ROM_LOAD( "136013-101.h1", 0x7000, 0x1000, CRC(46752c7d) SHA1(ab06b1fd80271849946f90757b3837b617394929) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "silliped.106", 0x0000, 0x0800, CRC(b946599e) SHA1(3bd7360c8b4e4bbda0ffcda6b8d5961430073d5c) )
+ ROM_LOAD( "silliped.107", 0x0800, 0x0800, CRC(89442fbc) SHA1(450bedd9d09300191bbc31c4cc5b5ca0424661ef) )
+
+ ROM_REGION( 0x0100, "proms", 0 )
+ ROM_LOAD( "136001-213.e7", 0x0000, 0x0100, CRC(6fa3093a) SHA1(2b7aeca74c1ae4156bf1878453a047330f96f0a8) ) /* not used */
+ROM_END
+
+ROM_START( vectiped )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "136001-307.d1", 0x2000, 0x0800, CRC(5ab0d9de) SHA1(8ea6e3304202831aabaf31dbd0f970a7b3bfe421) )
+ ROM_LOAD( "136001-308.e1", 0x2800, 0x0800, CRC(4c07fd3e) SHA1(af4fdbf32c23b1864819d620a874e7f205da3cdb) )
+ ROM_LOAD( "136001-309.fh1", 0x3000, 0x0800, CRC(ff69b424) SHA1(689fa560d40a384dcbcad7c8095bc12e91875580) )
+ ROM_LOAD( "136001-310.j1", 0x3800, 0x0800, CRC(44e40fa4) SHA1(c557db83876afc8ab52047ab1a3c3bfef34d6351) )
+
+ ROM_REGION(0x1000, "gfx1", 0 )
+ ROM_LOAD( "vectiped.211", 0x0000, 0x0800, CRC(33eccc59) SHA1(ab456577e4a4392abb35831a20e30e6314502367) )
+ ROM_LOAD( "vectiped.212", 0x0800, 0x0800, CRC(bc71790c) SHA1(b5a69ee0cb5861a0b328f478a49d453716a8703d) )
+
+ ROM_REGION( 0x0100, "proms", 0 )
+ ROM_LOAD( "136001-213.p4", 0x0000, 0x0100, CRC(6fa3093a) SHA1(2b7aeca74c1ae4156bf1878453a047330f96f0a8) )
+ROM_END
+
+ROM_START( vectrped )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "136001-307.d1", 0x2000, 0x0800, CRC(5ab0d9de) SHA1(8ea6e3304202831aabaf31dbd0f970a7b3bfe421) )
+ ROM_LOAD( "136001-308.e1", 0x2800, 0x0800, CRC(4c07fd3e) SHA1(af4fdbf32c23b1864819d620a874e7f205da3cdb) )
+ ROM_LOAD( "136001-309.fh1", 0x3000, 0x0800, CRC(ff69b424) SHA1(689fa560d40a384dcbcad7c8095bc12e91875580) )
+ ROM_LOAD( "136001-310.j1", 0x3800, 0x0800, CRC(44e40fa4) SHA1(c557db83876afc8ab52047ab1a3c3bfef34d6351) )
+
+ ROM_REGION(0x1000, "gfx1", 0 )
+ ROM_LOAD( "vectrped.211", 0x0000, 0x0800, CRC(e65cd908) SHA1(ceb25e4850e5e7cbe2809c465313610b99321269) )
+ ROM_LOAD( "vectrped.212", 0x0800, 0x0800, CRC(72616fcb) SHA1(c7617be0f28dbeae662738a0d8bba6c2e12a02aa) )
+
+ ROM_REGION( 0x0100, "proms", 0 )
+ ROM_LOAD( "136001-213.p4", 0x0000, 0x0100, CRC(6fa3093a) SHA1(2b7aeca74c1ae4156bf1878453a047330f96f0a8) )
+ROM_END
+
+GAME( 2002, astropd2, centiped, centiped, centiped, driver_device, 0, ROT270, "Twisty", "Astropede II", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, astroped, centiped, centiped, centiped, driver_device, 0, ROT270, "Twisty", "Astropede", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, cemescry, centiped, centiped, centiped, driver_device, 0, ROT270, "NoSync", "Cemescary", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, centipb, centiped, centipdb, centiped, driver_device, 0, ROT270, "bootleg", "Centipede", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, killiped, centiped, centiped, centiped, driver_device, 0, ROT270, "The Dog", "Killipede", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, magworm2, centiped, magworm, magworm, driver_device, 0, ROT270, "bootleg", "Magic Worm", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pacipede, centiped, centiped, centiped, driver_device, 0, ROT270, "Jeff Coleburn", "Pacipede", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, silliped, milliped, milliped, milliped, driver_device, 0, ROT270, "Andy", "Sillipede", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, vectiped, centiped, centiped, centiped, driver_device, 0, ROT270, "The Dog", "Vectipede", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, vectrped, centiped, centiped, centiped, driver_device, 0, ROT270, "T-Bone", "Vectorpede", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/cinemat.cpp b/docs/release/src/hbmame/drivers/cinemat.cpp
new file mode 100644
index 00000000000..b43b81d75cf
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/cinemat.cpp
@@ -0,0 +1,47 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+/* BBUGTEST NOTES
+
+With no documentation whatsoever, I have compiled what I know to share with you all.
+
+I do not know if the graphics are complete, or if all tests are working.
+
+Use the dipswitches to select a test pattern.
+
+Pressing any player key, or start button will make a slight change to the colours.
+
+If you move your mouse to the left, pressing the keys will alter the numbers across the bottom
+of the screen. Moving the mouse to the right will revert to changing colours again.
+
+*/
+
+
+#include "../mame/drivers/cinemat.cpp"
+
+static MACHINE_CONFIG_DERIVED( bbugtest, cinemat_jmi_32k )
+ MCFG_SCREEN_MODIFY("screen")
+ MCFG_SCREEN_VISIBLE_AREA(0, 1024, 0, 788)
+ MCFG_VIDEO_START_OVERRIDE(cinemat_state,cinemat_color)
+MACHINE_CONFIG_END
+
+/*************************************
+ *
+ * Game drivers
+ *
+ *************************************/
+
+ROM_START( bbugtest )
+ ROM_REGION( 0x10000, "maincpu", 0 ) /* 16k for code */
+ ROM_LOAD16_BYTE( "bbugtest.t7", 0x0000, 0x1000, CRC(92a460f1) SHA1(eaa8fea38d87f1fd6e2e52b92085fed43498e5ce) )
+ ROM_LOAD16_BYTE( "bbugtest.p7", 0x0001, 0x1000, CRC(06d0bde2) SHA1(b0a224b7a74fa739b293ad7383236ffaa012f3c3) )
+
+ ROM_REGION( 0x1a0, "proms", 0 )
+ ROM_LOAD("prom.f14", 0x000, 0x100, CRC(9edbf536) SHA1(036ad8a231284e05f44b1106d38fc0c7e041b6e8) )
+ ROM_LOAD("prom.e14", 0x100, 0x020, CRC(29dbfb87) SHA1(d8c40ab010b2ea30f29b2c443819e2b69f376c04) )
+ ROM_LOAD("prom.d14", 0x120, 0x020, CRC(9a05afbf) SHA1(5d806a42424942ba5ef0b70a1d629315b37f931b) )
+ ROM_LOAD("prom.c14", 0x140, 0x020, CRC(07492cda) SHA1(32df9148797c23f70db47b840139c40e046dd710) )
+ ROM_LOAD("prom.j14", 0x160, 0x020, CRC(a481ca71) SHA1(ce145d61686f600cc16b77febfd5c783bf8c13b0) )
+ ROM_LOAD("prom.e8", 0x180, 0x020, CRC(791ec9e1) SHA1(6f7fcce4aa3be9020595235568381588adaab88e) )
+ROM_END
+
+GAME(1981, bbugtest, 0, bbugtest, boxingb, cinemat_state, boxingb, ORIENTATION_FLIP_Y, "Test Rom", "Test Rom - Boxing Bugs", MACHINE_NO_SOUND_HW | MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/commando.cpp b/docs/release/src/hbmame/drivers/commando.cpp
new file mode 100644
index 00000000000..0e2bc7dd41d
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/commando.cpp
@@ -0,0 +1,78 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/commando.cpp"
+
+ROM_START( comdelux )
+ ROM_REGION( 2*0x10000, "maincpu", 0 ) /* 64k for code + 64k for decrypted opcodes */
+ ROM_LOAD( "cm04.9m", 0x0000, 0x8000, CRC(8438b694) SHA1(e154478d8f1b635355bd777370acabe49cb9d309) )
+ ROM_LOAD( "cm03.8m", 0x8000, 0x4000, CRC(35486542) SHA1(531a85c9e03970ce037be84f2240c2df6f6e3ec1) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the audio CPU */
+ ROM_LOAD( "cm02.9f", 0x0000, 0x4000, CRC(f9cc4a74) SHA1(ee8dd73919c6f47f62cc6d999de9510db9f79b8f) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "vt01.5d", 0x0000, 0x4000, CRC(505726e0) SHA1(2435c87c9c9d78a6e703cf0e1f6a0288207fcd4c) ) // characters
+
+ ROM_REGION( 0x18000, "gfx2", 0 )
+ ROM_LOAD( "vt11.5a", 0x00000, 0x4000, CRC(7b2e1b48) SHA1(5d49e1d8146e4ef744445b68f35677302e875a85) ) // SCR X (tiles)
+ ROM_LOAD( "vt12.6a", 0x04000, 0x4000, CRC(81b417d3) SHA1(5ec7e3f0c8069384a5f6eb39232c228b9d7b8c0c) ) // SCR X
+ ROM_LOAD( "vt13.7a", 0x08000, 0x4000, CRC(5612dbd2) SHA1(9e4e1a22b6cbf60607b9a81dae34482ae55f7c47) ) // SCR Y
+ ROM_LOAD( "vt14.8a", 0x0c000, 0x4000, CRC(2b2dee36) SHA1(8792278464fa3da47176582025f6673a15a581e2) ) // SCR Y
+ ROM_LOAD( "vt15.9a", 0x10000, 0x4000, CRC(de70babf) SHA1(6717e23baf55f84d3143fb432140a7c3e102ac26) ) // SCR Z
+ ROM_LOAD( "vt16.10a", 0x14000, 0x4000, CRC(14178237) SHA1(f896e71c7004349c9a46155edfd9f0aaa186065d) ) // SCR Z
+
+ ROM_REGION( 0x18000, "gfx3", 0 )
+ ROM_LOAD( "dx_vt05.7e", 0x00000, 0x4000, CRC(b1839dd4) SHA1(7172718a0a5f5ba1c6785545dea196e03d3c58c3) ) /* sprites */
+ ROM_LOAD( "vt06.8e", 0x04000, 0x4000, CRC(26fee521) SHA1(2fbfc73ee860f72a20229a01d4da9f5cc2e858d3) )
+ ROM_LOAD( "dx_vt07.9e", 0x08000, 0x4000, CRC(4cb1cd67) SHA1(317cfbbff00870b7f7d8023b135d3a96dc0e73fb) )
+ ROM_LOAD( "dx_vt08.7h", 0x0c000, 0x4000, CRC(42ff8a11) SHA1(94d0fdbb98670953e586f75030ec48b5af2138a9) )
+ ROM_LOAD( "vt09.8h", 0x10000, 0x4000, CRC(98703982) SHA1(ba9a9b0dcadd4f52502828408c4a19b0bd518351) )
+ ROM_LOAD( "dx_vt10.9h", 0x14000, 0x4000, CRC(7650a262) SHA1(e4d59c2dda161d49849b1d20782a2126fa0743c7) )
+
+ ROM_REGION( 0x600, "proms", 0 )
+ ROM_LOAD( "vtb1.1d", 0x0000, 0x0100, CRC(3aba15a1) SHA1(8b057f6e26155dd9e48bde182e680fce4519f600) ) /* red */
+ ROM_LOAD( "vtb2.2d", 0x0100, 0x0100, CRC(88865754) SHA1(ca6dddca98baf00a65b2fb70b69cf4704ef8c831) ) /* green */
+ ROM_LOAD( "vtb3.3d", 0x0200, 0x0100, CRC(4c14c3f6) SHA1(644ac17c7413f094ec9a15cba87bbd421b26321f) ) /* blue */
+ ROM_LOAD( "vtb4.1h", 0x0300, 0x0100, CRC(b388c246) SHA1(038f9851699331ad887b6281a9df053dca3db8fd) ) /* palette selector (not used) */
+ ROM_LOAD( "vtb5.6l", 0x0400, 0x0100, CRC(712ac508) SHA1(5349d722ab6733afdda65f6e0a98322f0d515e86) ) /* interrupt timing (not used) */
+ ROM_LOAD( "vtb6.6e", 0x0500, 0x0100, CRC(0eaf5158) SHA1(bafd4108708f66cd7b280e47152b108f3e254fc9) ) /* video timing (not used) */
+ROM_END
+
+ROM_START( comdlux1 )
+ ROM_REGION( 2*0x10000, "maincpu", 0 ) /* 64k for code + 64k for decrypted opcodes */
+ ROM_LOAD( "cm04.9m", 0x0000, 0x8000, CRC(8438b694) SHA1(e154478d8f1b635355bd777370acabe49cb9d309) )
+ ROM_LOAD( "cm03.8m", 0x8000, 0x4000, CRC(35486542) SHA1(531a85c9e03970ce037be84f2240c2df6f6e3ec1) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the audio CPU */
+ ROM_LOAD( "cm02.9f", 0x0000, 0x4000, CRC(f9cc4a74) SHA1(ee8dd73919c6f47f62cc6d999de9510db9f79b8f) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "vt01.5d", 0x0000, 0x4000, CRC(505726e0) SHA1(2435c87c9c9d78a6e703cf0e1f6a0288207fcd4c) ) // characters
+
+ ROM_REGION( 0x18000, "gfx2", 0 )
+ ROM_LOAD( "vt11.5a", 0x00000, 0x4000, CRC(7b2e1b48) SHA1(5d49e1d8146e4ef744445b68f35677302e875a85) ) // SCR X (tiles)
+ ROM_LOAD( "vt12.6a", 0x04000, 0x4000, CRC(81b417d3) SHA1(5ec7e3f0c8069384a5f6eb39232c228b9d7b8c0c) ) // SCR X
+ ROM_LOAD( "vt13.7a", 0x08000, 0x4000, CRC(5612dbd2) SHA1(9e4e1a22b6cbf60607b9a81dae34482ae55f7c47) ) // SCR Y
+ ROM_LOAD( "vt14.8a", 0x0c000, 0x4000, CRC(2b2dee36) SHA1(8792278464fa3da47176582025f6673a15a581e2) ) // SCR Y
+ ROM_LOAD( "vt15.9a", 0x10000, 0x4000, CRC(de70babf) SHA1(6717e23baf55f84d3143fb432140a7c3e102ac26) ) // SCR Z
+ ROM_LOAD( "vt16.10a", 0x14000, 0x4000, CRC(14178237) SHA1(f896e71c7004349c9a46155edfd9f0aaa186065d) ) // SCR Z
+
+ ROM_REGION( 0x18000, "gfx3", 0 )
+ ROM_LOAD( "dx1_vt05.7e", 0x00000, 0x4000, CRC(91865879) SHA1(151b3202ea16141f53bf7ae96ac2171b70564ee5) ) /* sprites */
+ ROM_LOAD( "vt06.8e", 0x04000, 0x4000, CRC(26fee521) SHA1(2fbfc73ee860f72a20229a01d4da9f5cc2e858d3) )
+ ROM_LOAD( "dx_vt07.9e", 0x08000, 0x4000, CRC(4cb1cd67) SHA1(317cfbbff00870b7f7d8023b135d3a96dc0e73fb) )
+ ROM_LOAD( "dx1_vt08.7h", 0x0c000, 0x4000, CRC(ba3a06f7) SHA1(9ae9fbd490308e27b71bc1dcd54f3e4e420feb3f) )
+ ROM_LOAD( "vt09.8h", 0x10000, 0x4000, CRC(98703982) SHA1(ba9a9b0dcadd4f52502828408c4a19b0bd518351) )
+ ROM_LOAD( "dx_vt10.9h", 0x14000, 0x4000, CRC(7650a262) SHA1(e4d59c2dda161d49849b1d20782a2126fa0743c7) )
+
+ ROM_REGION( 0x600, "proms", 0 )
+ ROM_LOAD( "vtb1.1d", 0x0000, 0x0100, CRC(3aba15a1) SHA1(8b057f6e26155dd9e48bde182e680fce4519f600) ) /* red */
+ ROM_LOAD( "vtb2.2d", 0x0100, 0x0100, CRC(88865754) SHA1(ca6dddca98baf00a65b2fb70b69cf4704ef8c831) ) /* green */
+ ROM_LOAD( "vtb3.3d", 0x0200, 0x0100, CRC(4c14c3f6) SHA1(644ac17c7413f094ec9a15cba87bbd421b26321f) ) /* blue */
+ ROM_LOAD( "vtb4.1h", 0x0300, 0x0100, CRC(b388c246) SHA1(038f9851699331ad887b6281a9df053dca3db8fd) ) /* palette selector (not used) */
+ ROM_LOAD( "vtb5.6l", 0x0400, 0x0100, CRC(712ac508) SHA1(5349d722ab6733afdda65f6e0a98322f0d515e86) ) /* interrupt timing (not used) */
+ ROM_LOAD( "vtb6.6e", 0x0500, 0x0100, CRC(0eaf5158) SHA1(bafd4108708f66cd7b280e47152b108f3e254fc9) ) /* video timing (not used) */
+ROM_END
+
+GAME( 2002, comdelux, commando, commando, commandou, commando_state, commando, ROT270, "Twisty", "Commando Deluxe", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, comdlux1, commando, commando, commandou, commando_state, commando, ROT270, "Twisty", "Commando Deluxe Again", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/cps1.cpp b/docs/release/src/hbmame/drivers/cps1.cpp
new file mode 100644
index 00000000000..356664fe463
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/cps1.cpp
@@ -0,0 +1,12352 @@
+// license:BSD-3-Clause
+// copyright-holders:Paul Leaman
+/***************************************************************************
+
+Capcom System 1
+===============
+
+Driver provided by:
+Paul Leaman (paul@vortexcomputing.demon.co.uk)
+
+68000 for game, Z80, YM-2151 and OKIM6295 for sound.
+
+68000 clock speeds are unknown for all games (except where commented)
+
+todo: move the bootleg sets with modified hardware into their own
+ drivers, like fcrash.c
+
+
+Notes
+-----
+- All original PALs are protected. The images loaded in the ROM definitions are
+ logically equivalent replacements with a GAL16V8 target. The actual pld types
+ found on the boards can also be PAL16P8, PAL16L8 etc.
+
+- There are five PALs on the A-Board, they are the same across all A-Board
+ revisions, but their location varies.
+ The A-Boards are interchangeable, so the IC locations are not specified in
+ the ROM definitions and are listed here instead:
+
+ PAL ID 88617A 89626A
+ ------ ------ ------
+ PRG1 12H 9K
+ IOA1 12F 4A
+ BUF1 16H 13K
+ ROM1 15H 14K
+ SOU1 13E 10F
+
+ For Q-Sound games, the A-Board misses the Z80, Oki and amp, which are replaced
+ by the D-Board; the SOU1 PAL is missing as well, while PRG1 is replaced by
+ PRG2. The other PALs are the same.
+
+- The B-board usually has two PALs (later revisions have three). The first PAL
+ is used to map tile codes to the graphics ROMs, and changes from game to game.
+ The other doesn't change from game to game and there are only two versions,
+ called LWIO and IOB1, which are almost identical, the only difference being
+ that outputs o16 and o17 are R/W in IOB1 and Write only in LWIO. Since those
+ outputs are not used anyway except that in Forgotten Worlds, one wonders why
+ they were changed.
+
+ SF2 revision "E" World and USA 910228 maps CPS-B at 8001C0 instead of 800140
+ and seems to be the only one that uses the IOB2 and C632B PALs instead of the
+ IOB1 and C632, while STF29 PAL is confirmed to be the same as the other SF2 sets.
+
+ pin 1 CN2 D9 = /IOCS (i.e. address 8xxxxx)
+ pin 2 CN2 D7 = /RDB
+ pin 3 CN2 C6 = /UDSWR
+ pin 4 CN2 D6 = /LDSWR
+ pin 5 CN2 C19 = A8
+ pin 6 CN2 C20 = A7
+ pin 7 CN2 C21 = A6
+ pin 8 CN2 C22 = A5
+ pin 9 CN2 C23 = A4
+ pin 10 GND
+ pin 11 CN2 C24 = A3
+ pin 12 CN2 C25 = A2
+
+ LWIO:
+ /o19 = /i1 * /i2 * /i5 * /i6 * i7 * i8 * /i9 800060-80006f R not used
+ /o18 = /i1 * /i2 * /i5 * /i6 * i7 * /i8 * i9 800050-80005f R forgotten worlds dial (on 88618B & 88621B B-boards)
+ o17 = /i1 * /i4 * /i5 * /i6 * i7 * /i8 * /i9 * /i11 800040-800047 W forgotten worlds dial (on 88618B & 88621B B-boards)
+ o16 = /i1 * /i4 * /i5 * /i6 * i7 * /i8 * /i9 * i11 800048-80004f W forgotten worlds dial (on 88618B & 88621B B-boards)
+ /o15 = /i1 * i5 * /i6 * i7 800140-80017f R/W CPS-B
+ /o14 = /i1 * /i4 * /i5 * /i6 * /i7 * i8 * i9 * /i11 800030-800037 W not used (overlaps coinctrl on A-board)
+ /o13 = /i1 * /i2 * /i5 * /i6 * /i7 * /i8 * /i9 * i11 800008-80000f R not used
+ /o12 = /i1 * /i2 * /i5 * /i6 * /i7 * /i8 * i9 * i11 800018-80001f R not used (overlaps system/dsw inputs on A-board)
+
+ IOB1:
+ /o19 = /i1 * /i2 * /i5 * /i6 * i7 * i8 * /i9 800060-80006f R not used
+ /o18 = /i1 * /i2 * /i5 * /i6 * i7 * /i8 * i9 800050-80005f R not used
+ o17 = /i1 * /i5 * /i6 * i7 * /i8 * /i9 * /i11 800040-800047 R/W not used
+ o16 = /i1 * /i5 * /i6 * i7 * /i8 * /i9 * i11 800048-80004f R/W not used
+ /o15 = /i1 * i5 * /i6 * i7 800140-80017f R/W CPS-B
+ /o14 = /i1 * /i4 * /i5 * /i6 * /i7 * i8 * i9 * /i11 800030-800037 W not used (overlaps coinctrl on A-board)
+ /o13 = /i1 * /i2 * /i5 * /i6 * /i7 * /i8 * /i9 * i11 800008-80000f R not used
+ /o12 = /i1 * /i2 * /i5 * /i6 * /i7 * /i8 * i9 * i11 800018-80001f R not used (overlaps system/dsw inputs on A-board)
+
+
+
+Stephh's notes (based on the games M68000 code and some tests) :
+
+1) 'forgottn' and clones
+
+ - Keys in the "scroll 1 test" screen :
+ * P1 UP : char code += 0x0200
+ * P1 DOWN : char code -= 0x0200
+ * P1 RIGHT : attribute ^= 0x20 ; also affects Hflip
+ * P1 LEFT : attribute ^= 0x40 ; also affects Vflip
+ * P1 button 1 : (attribute++) & 0x1f ; also affects color
+ * P1 button 2 : (attribute--) & 0x1f ; also affects color
+
+2) 'ghouls' and clones
+
+2a) 'ghouls'
+
+ - NO debug features
+
+2b) 'ghoulsu'
+
+ - How to activate the debug features :
+ * set "Game Mode" Dip Switch to "Game"
+ * set both "Coin A" and "Coin B" Dip Switches to 1C_1C
+ * reset the game (F3 key)
+ * insert a coin
+ * set "Game Mode" Dip Switch to "Test"
+ * set the debug Dip Switches to what you want
+ * start a 1 player game
+ - Some debug features :
+ * "Armor on New Life" is effective at the beginning of a new life
+ Note that even when you start without armor, you need to be hit twice
+ * "Starting Weapon" is effective only when you start a new game
+ or when you continue play
+ * "Starting Level" is effective only when you start a new game
+ (you must NOT continue play !)
+ * "Slow Motion" and "Invulnerability" can be changed at any time
+
+2c) 'daimakai'
+
+ - NO debug features
+ - Different Dip Switches than in 'ghouls'
+
+3) 'strider' and clones
+
+ - TO DO !
+
+4) 'dynwar' and clones
+
+4a) 'dynwar'
+
+ - According to code at 0x0125fa and 0x012634, bits 0 and 1 of DSWC also affect the energy cost
+ (table at 0x012662) when you press button 3 ("tactics" in the manual) :
+
+ bit 0 bit 1 cost possible BCD values (based on kind of "tactics")
+ OFF OFF normal 0x10 (rockslide) 0x08 (ambush) 0x14 (flame) 0x12 (explosion)
+ ON OFF very low 0x03 0x02 0x05 0x04
+ OFF ON low 0x06 0x04 0x10 0x08
+ ON ON high 0x13 0x10 0x19 0x16
+
+ So IMO, there might be an ingame bug at 0x000c7e which should read bits 2 and 3 of DSWC
+ (instead of having them unused) :
+ 000C7E: 0240 0003 andi.w #$3, D0
+ should be
+ 000C7E: 0240 000c andi.w #$c, D0
+ However, only bits 4 to 7 are tested while you are in the "test mode".
+
+ Note that code at 0x000c7e is only executed once when you reset the machine;
+ this means that you can change the "Freeze" and "Turbo Mode" Dip Switches before
+ reseting the game to change the energy cost settings, then put them back to "Off"
+ after the startup routine (when screen is black) so you can play the game.
+ - Both "Coin A" and "Coin B" Dip Switches must be set to "2 Coins/1 Credit" to make
+ this mode available. If only one Dip Switch is set to it, it is the same as 2C_1C.
+
+4b) 'dynwarj'
+
+ - The "energy cost" bug also exists in this version as well as code at 0x000c7e;
+ in fact, only code that reads these settings is at a different address :
+ check code at 0x01267a and 0x0126b4 and table at 0x0126e2.
+ - Both "Coin A" and "Coin B" Dip Switches must be set to "2 Coins/1 Credit" to make
+ this mode available. If only one Dip Switch is set to it, it is the same as 2C_1C.
+
+5) 'willow' and clones
+
+ - How to activate the debug features :
+ * set "Game Mode" Dip Switch to "Game"
+ * set both "Coin A" and "Coin B" Dip Switches to 1C_1C
+ * reset the game (F3 key)
+ * insert a coin
+ * set "Game Mode" Dip Switch to "Test"
+ * set the debug Dip Switches to what you want
+ * start a 1 player game
+ - Some debug features :
+ * "Starting Level" is effective only when you start a new game
+ (you must NOT continue play !)
+ * Once you set "Maximum magic/sword power" to "On", setting it to "Off" won't have
+ any effect until you start a new game (you must NOT continue play !)
+ * "Slow Motion Delay" is effective only when "Slow Motion" is set to "On"
+ * Even if "Freeze" Dip Switch is set to "On" a message will be displayed to its end.
+ * I can't tell what kind of infos are displayed when "Display Debug Infos"
+ Dip Switch is sry to "On" :( Any hint about them are welcome !
+ - Both "Coin A" and "Coin B" Dip Switches must be set to "2 Coins/1 Credit" to make
+ this mode available. If only one Dip Switch is set to it, it is the same as 2C_1C.
+ - When the "Stage Magic Continue" Dip Switch is set to "On", your magic and sword power
+ will be increased at the end of the level if you haven't bought the magic/sword item.
+ But you won't notice this before you use the character again.
+ For example, magic power will be increased at the end of level 1 but you won't notice
+ it before level 3, and sword power will be increased at the end of level 2 but you
+ won't notice it before level 4.
+
+6) 'ganbare'
+
+ - Using the payout setting dip switch results in some occasional hopper errors, if this
+ happens, then the clear ram dip switch needs to be used. This needs to be resolved.
+
+TO DO (2006.09.20) :
+
+ - Check 'strider' and its clones and add debug features
+ - Check other games to see if there are some debug or hidden features
+ - Add addresses from routines with debug features in the notes
+ - Look at what IN2 and IN3 do for the following sets :
+ * 'cworld2j' (IN2 only)
+ * 'qad' and 'qadjr'
+ * 'qtono2j'
+ - Check daimakar dip switches. E.g. changing the number of lives also changes the
+ starting level.
+
+Stephh's log (2006.09.20) :
+
+ - Changed the "readinputport" reads by "readinputportbytag" reads.
+ This way, inputs and Dip Switch can be in any order
+ (and I don't have the nasty conditional Dip Switch bug).
+ BTW, I've slightly changed the read memory map :
+ * one handler for the 3 Dip Switches banks : cps1_dsw_r
+ * one handler for the system inputs (IN0) : cps1_in0_r
+ * one handler for the player inputs (IN1) : cps1_in1_r
+ * renamed cps1_input2_r to cps_in2_r
+ * renamed cps1_input3_r to cps_in3_r
+ - Applied these changes to src/drivers/fcrash.c as well.
+ - Added debug features in the following sets :
+ * 'ghoulsu'
+ * 'willowu', 'willowou' and 'willowj'
+ - Checked sets with no debug features :
+ * 'forgottnua' and 'lostwrld'
+ * 'ghouls' and 'daimakai'
+ * 'dynwar' and 'dynwarj'
+
+2008-07:
+ - replaced input read handler with direct AM_READ_PORT where suitable
+
+***************************************************************************/
+
+#include "emu.h"
+#include "cpu/z80/z80.h"
+#include "cpu/pic16c5x/pic16c5x.h"
+#include "cpu/m68000/m68000.h"
+#include "machine/eepromser.h"
+#include "sound/ym2151.h"
+#include "sound/okim6295.h"
+#include "sound/qsound.h"
+#include "machine/kabuki.h"
+#include "includes/cps1.h"
+
+
+
+READ16_MEMBER(cps_state::cps1_dsw_r)
+{
+ static const char *const dswname[] = { "IN0", "DSWA", "DSWB", "DSWC" };
+ int in = ioport(dswname[offset])->read();
+ return (in << 8) | 0xff;
+}
+
+READ16_MEMBER(cps_state::cps1_hack_dsw_r)
+{
+ static const char *const dswname[] = { "IN0", "DSWA", "DSWB", "DSWC" };
+ int in = ioport(dswname[offset])->read();
+ return (in << 8) | in;
+}
+
+READ16_MEMBER(cps_state::cps1_in1_r)
+{
+ int in = ioport("IN1")->read();
+ return (in << 8) | in;
+}
+
+READ16_MEMBER(cps_state::cps1_in2_r)
+{
+ int in = ioport("IN2")->read();
+ return (in << 8) | in;
+}
+
+READ16_MEMBER(cps_state::cps1_in3_r)
+{
+ int in = ioport("IN3")->read();
+ return (in << 8) | in;
+}
+
+READ16_MEMBER(cps_state::forgottn_dial_0_r)
+{
+ return ((ioport("DIAL0")->read() - m_dial[0]) >> (8 * offset)) & 0xff;
+}
+
+READ16_MEMBER(cps_state::forgottn_dial_1_r)
+{
+ return ((ioport("DIAL1")->read() - m_dial[1]) >> (8 * offset)) & 0xff;
+}
+
+WRITE16_MEMBER(cps_state::forgottn_dial_0_reset_w)
+{
+ m_dial[0] = ioport("DIAL0")->read();
+}
+
+WRITE16_MEMBER(cps_state::forgottn_dial_1_reset_w)
+{
+ m_dial[1] = ioport("DIAL1")->read();
+}
+
+
+WRITE8_MEMBER(cps_state::cps1_snd_bankswitch_w)
+{
+ membank("bank1")->set_entry(data & 0x01);
+}
+
+WRITE8_MEMBER(cps_state::cps1_oki_pin7_w)
+{
+ m_oki->set_pin7(data & 1);
+}
+
+WRITE16_MEMBER(cps_state::cps1_soundlatch_w)
+{
+ if (ACCESSING_BITS_0_7)
+ m_soundlatch->write(space, 0, data & 0xff);
+ else
+ m_soundlatch->write(space, 0, data >> 8);
+}
+
+WRITE16_MEMBER(cps_state::cps1_soundlatch2_w)
+{
+ if (ACCESSING_BITS_0_7)
+ m_soundlatch2->write(space, 0, data & 0xff);
+}
+
+WRITE16_MEMBER(cps_state::cps1_coinctrl_w)
+{
+ if (ACCESSING_BITS_8_15)
+ {
+ machine().bookkeeping().coin_counter_w(0, data & 0x0100);
+ machine().bookkeeping().coin_counter_w(1, data & 0x0200);
+ machine().bookkeeping().coin_lockout_w(0, ~data & 0x0400);
+ machine().bookkeeping().coin_lockout_w(1, ~data & 0x0800);
+
+ // bit 15 = CPS-A custom reset?
+ }
+}
+
+WRITE16_MEMBER(cps_state::cpsq_coinctrl2_w)
+{
+ if (ACCESSING_BITS_0_7)
+ {
+ machine().bookkeeping().coin_counter_w(2, data & 0x01);
+ machine().bookkeeping().coin_lockout_w(2, ~data & 0x02);
+ machine().bookkeeping().coin_counter_w(3, data & 0x04);
+ machine().bookkeeping().coin_lockout_w(3, ~data & 0x08);
+ }
+}
+
+INTERRUPT_GEN_MEMBER(cps_state::cps1_interrupt)
+{
+ /* Strider also has a IRQ4 handler. It is input port related, but the game */
+ /* works without it. It is the *only* CPS1 game to have that. */
+ /* ...until we found out that ganbare relies on it, see below */
+ device.execute().set_input_line(2, HOLD_LINE);
+}
+
+TIMER_DEVICE_CALLBACK_MEMBER(cps_state::ganbare_interrupt)
+{
+ /* not sure on the timing or source of this - the game needs it once per frame, */
+ /* otherwise you get a "HARD ERROR" after boot */
+ if (param == 0)
+ m_maincpu->set_input_line(4, HOLD_LINE);
+}
+
+
+/********************************************************************
+*
+* Q Sound
+* =======
+*
+********************************************************************/
+
+READ16_MEMBER(cps_state::qsound_rom_r)
+{
+ uint8_t *rom = memregion("user1")->base();
+
+ if (rom)
+ return rom[offset] | 0xff00;
+ else
+ {
+ popmessage("%06x: read sound ROM byte %04x", space.device().safe_pc(), offset);
+ return 0;
+ }
+}
+
+READ16_MEMBER(cps_state::qsound_sharedram1_r)
+{
+ return m_qsound_sharedram1[offset] | 0xff00;
+}
+
+WRITE16_MEMBER(cps_state::qsound_sharedram1_w)
+{
+ if (ACCESSING_BITS_0_7)
+ m_qsound_sharedram1[offset] = data;
+}
+
+READ16_MEMBER(cps_state::qsound_sharedram2_r)
+{
+ return m_qsound_sharedram2[offset] | 0xff00;
+}
+
+WRITE16_MEMBER(cps_state::qsound_sharedram2_w)
+{
+ if (ACCESSING_BITS_0_7)
+ m_qsound_sharedram2[offset] = data;
+}
+
+WRITE8_MEMBER(cps_state::qsound_banksw_w)
+{
+ /* Z80 bank register for music note data. It's odd that it isn't encrypted though. */
+ int bank = data & 0x0f;
+ if ((0x10000 + (bank * 0x4000)) >= memregion("audiocpu")->bytes())
+ {
+ logerror("WARNING: Q sound bank overflow (%02x)\n", data);
+ bank = 0;
+ }
+
+ membank("bank1")->set_entry(bank);
+}
+
+
+/********************************************************************
+*
+* EEPROM
+* ======
+*
+* The EEPROM is accessed by a serial protocol using the register
+* 0xf1c006
+*
+********************************************************************/
+
+/*
+PAL PRG1 (16P8B @ 12H):
+
+I0 = AS
+I1 = /BGACKB
+I2 = A23
+I3 = A22
+I4 = A21
+I5 = A20
+I6 = A19
+I7 = A18
+I8 = A17
+I9 = A16
+
+n.c. = pin19 = ( !I0 & I1 )
+n.c. = pin18 = ( !I0 & I1 )
+n.c. = pin17 = ! ( I0 & I1 & (!I2 | !I3 | !I4 | !I5 | !I6 | !I7) )
+n.c. = pin16 = ! ( I2 & I3 & I4 & I5 & I6 & I7 )
+/IOCS = pin15 = ! ( I0 & I1 & I2 & !I3 & !I4 & !I5 )
+/ONE WAIT = pin14 = ! ( I0 & I1 & ( I2 | !I3) )
+/databus = pin13 = ! ( I0 & I1 & (!I2 | !I3 | !I4 | !I5 | !I6 | !I7) )
+/workram = pin12 = ! ( I0 & I1 & I2 & I3 & I4 & I5 & I6 & I7 )
+
+
+In Q-Sound games, PRG1 is replaced by PRG2:
+
+/IOCS = pin 15 = ! ( I0 & I1 & I2 & !I3 & !I4 & !I5 )
+/ONE WAIT = pin 14 = ! ( I0 & I1 & (!I2 | !I3 | !I4 | !I5 | ( I6 & I7 & I8 & I9)) )
+/databus = pin 13 = ! ( I0 & I1 & (!I2 | !I3 | !I4 | !I5 | (!I6 & !I7 & !I8)) )
+/workram = pin 12 = ! ( I0 & I1 & I2 & I3 & I4 & I5 & I6 & I7 & I8 & I9 )
+
+
+
+
+
+PAL IOA1 (16P8B @ 12F):
+
+I0 = /IOCS
+I1 = /RDB
+I2 = /UDSWR
+I3 = /LDSWR
+I4 = AB8
+I5 = AB7
+I6 = AB6
+I7 = AB5
+I8 = AB4
+I9 = AB3
+
+player input = pin19 = ! ( !I0 & !I1 & !I4 & !I5 & !I6 & !I7 & !I8 & !I9 )
+system input/dips = pin18 = ! ( !I0 & !I1 & !I4 & !I5 & !I6 & !I7 & I8 & I9 )
+outputs = pin17 = ! ( !I0 & !I2 & !I4 & !I5 & !I6 & I7 & I8 & !I9 )
+sound 1B = pin16 = ! ( !I0 & !I3 & I4 & I5 & !I6 & !I7 & !I8 & I9 )
+sound 0B = pin15 = ! ( !I0 & !I3 & I4 & I5 & !I6 & !I7 & !I8 & !I9 )
+n.c. = pin14 = ( !I1 & !I2 )
+/PPU1 = pin13 = ! ( !I0 & I4 & !I5 & !I6 )
+n.c. = pin12 = ( !I1 & !I2 )
+
+
+PAL BUF1 (16P8B @ 16H):
+
+I0 = A23 (all address lines can come both from 68000 and CPS-A custom)
+I1 = A22
+I2 = A21
+I3 = A20
+I4 = A19
+I5 = A18
+I6 = A17
+I7 = A16
+I8 = ASB
+
+BUF0 = pin19 = ! ( I0 & !I1 & !I2 & I3 & !I4 & !I5 & !I6 & !I7 )
+BUF1 = pin18 = ! ( I0 & !I1 & !I2 & I3 & !I4 & !I5 & !I6 & I7 )
+BUF2 = pin17 = ! ( I0 & !I1 & !I2 & I3 & !I4 & !I5 & I6 & !I7 )
+BUF3 = pin16 = ! ( I0 & !I1 & !I2 & I3 & !I4 & !I5 & I6 & I7 )
+BUF4 = pin15 = ! ( I0 & !I1 & !I2 & I3 & !I4 & I5 & !I6 & !I7 )
+BUF5 = pin14 = ! ( I0 & !I1 & !I2 & I3 & !I4 & I5 & !I6 & I7 )
+BUF6 = pin13 = ! ( I0 & !I1 & !I2 & I3 & !I4 & I5 & I6 & !I7 )
+/RDB = pin12 = ( I0 & !I1 & !I2 & I3 & !I8 )
+
+BUF0-BUF2 are gfxram on A-board. BUF3-BUF6 go to B-board (provision for expansion, never used)
+
+
+PAL ROM1 (16P8B @ 15H):
+
+I0 = A23 (all address lines can come both from 68000 and CPS-A custom)
+I1 = A22
+I2 = A21
+I3 = A20
+I4 = A19
+I5 = A18
+I6 = A17
+I7 = A16
+I8 = ASB
+
+PRG0 = pin17 = ! ( !I8 & !I0 & !I1 & !I2 & !I3 & !I4 & !I5 )
+PRG1 = pin16 = ! ( !I8 & !I0 & !I1 & !I2 & !I3 & !I4 & I5 )
+PRG2 = pin15 = ! ( !I8 & !I0 & !I1 & !I2 & !I3 & I4 & !I5 )
+PRG3 = pin14 = ! ( !I8 & !I0 & !I1 & !I2 & !I3 & I4 & I5 )
+PRG4 = pin19 = ! ( !I8 & !I0 & !I1 & !I2 & I3 & !I4 )
+PRG5 = pin18 = ! ( !I8 & !I0 & !I1 & !I2 & I3 & I4 )
+PRG6 = pin13 = ! ( !I8 & !I0 & !I1 & I2 & !I3 & !I4 )
+/RDB = pin12 = ( !I8 & !I0 & !I1 )
+
+All PRGx go to B-board. Provision for up to 4MB of ROM space, which was never used in full.
+
+*/
+
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, cps_state )
+ AM_RANGE(0x000000, 0x3fffff) AM_ROM
+ AM_RANGE(0x800000, 0x800007) AM_READ_PORT("IN1") /* Player input ports */
+ /* forgottn, willow, cawing, nemo, varth read from 800010. Probably debug input leftover from development */
+ AM_RANGE(0x800018, 0x80001f) AM_READ(cps1_hack_dsw_r) // HBMAME /* System input ports / Dip Switches */
+ AM_RANGE(0x800020, 0x800021) AM_READNOP /* ? Used by Rockman ? not mapped according to PAL */
+ AM_RANGE(0x800030, 0x800037) AM_WRITE(cps1_coinctrl_w)
+ /* Forgotten Worlds has dial controls on B-board mapped at 800040-80005f. See DRIVER_INIT */
+ AM_RANGE(0x800100, 0x80013f) AM_WRITE(cps1_cps_a_w) AM_SHARE("cps_a_regs") /* CPS-A custom */
+ /* CPS-B custom is mapped by the PAL IOB2 on the B-board. SF2 revision "E" World and USA 910228 has it at a different
+ address, see DRIVER_INIT */
+ AM_RANGE(0x800140, 0x80017f) AM_READWRITE(cps1_cps_b_r, cps1_cps_b_w) AM_SHARE("cps_b_regs")
+ AM_RANGE(0x800180, 0x800187) AM_WRITE(cps1_soundlatch_w) /* Sound command */
+ AM_RANGE(0x800188, 0x80018f) AM_WRITE(cps1_soundlatch2_w) /* Sound timer fade */
+ AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram") /* SF2CE executes code from here */
+ AM_RANGE(0xf1c000, 0xf1c001) AM_READ(cps1_in2_r) /* Player 3 controls (later games) HBMAME */
+ AM_RANGE(0xff0000, 0xffffff) AM_RAM AM_SHARE("mainram")
+ADDRESS_MAP_END
+
+/*
+PAL SOU1 (16P8 @ 13E):
+
+I0 = /MREQ
+I1 = A15
+I2 = A14
+I3 = A13
+I4 = A12
+I5 = bank latch
+I6 = /RD
+I7 = /WR
+I8 = /BANK
+
+bank latch = pin19 = ! ( !I0 & !I7 & !I8 )
+/SWR = pin18 = ! ( !I0 & !I7 )
+/SRD = pin17 = ! ( !I0 & !I6 )
+ls138 = pin16 = ! ( !I0 & I1 & I2 & I3 & I4 )
+workram = pin15 = ! ( !I0 & I1 & I2 & !I3 & I4 )
+SOUNDA14 = pin14 = ! ( !I0 & ((!I1 & !I2) | ( I1 & !I2 & !I5)) )
+SOUNDA15 = pin13 = ( I1 )
+/SOUNDCE = pin12 = ! ( !I0 & (!I1 | ( I1 & !I2)) )
+*/
+
+static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 8, cps_state )
+ AM_RANGE(0x0000, 0x7fff) AM_ROM
+ AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
+ AM_RANGE(0xd000, 0xd7ff) AM_RAM
+ AM_RANGE(0xf000, 0xf001) AM_DEVREADWRITE("2151", ym2151_device, read, write)
+ AM_RANGE(0xf002, 0xf002) AM_DEVREADWRITE("oki", okim6295_device, read, write)
+ AM_RANGE(0xf004, 0xf004) AM_WRITE(cps1_snd_bankswitch_w)
+ AM_RANGE(0xf006, 0xf006) AM_WRITE(cps1_oki_pin7_w) /* controls pin 7 of OKI chip */
+ AM_RANGE(0xf008, 0xf008) AM_DEVREAD("soundlatch", generic_latch_8_device, read) /* Sound command */
+ AM_RANGE(0xf00a, 0xf00a) AM_DEVREAD("soundlatch2", generic_latch_8_device, read) /* Sound timer fade */
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( qsound_main_map, AS_PROGRAM, 16, cps_state )
+ AM_RANGE(0x000000, 0x3fffff) AM_ROM // HBMAME for dinoz
+ AM_RANGE(0x800000, 0x800007) AM_READ_PORT("IN1") /* Player input ports */
+ AM_RANGE(0x800018, 0x80001f) AM_READ(cps1_dsw_r) /* System input ports / Dip Switches */
+ AM_RANGE(0x800030, 0x800037) AM_WRITE(cps1_coinctrl_w)
+ AM_RANGE(0x800100, 0x80013f) AM_WRITE(cps1_cps_a_w) AM_SHARE("cps_a_regs") /* CPS-A custom */
+ AM_RANGE(0x800140, 0x80017f) AM_READWRITE(cps1_cps_b_r, cps1_cps_b_w) AM_SHARE("cps_b_regs") /* CPS-B custom (mapped by LWIO/IOB1 PAL on B-board) */
+ AM_RANGE(0x800180, 0x800187) AM_WRITE(cps1_soundlatch_w) /* Sound command HBMAME */
+ AM_RANGE(0x800188, 0x80018f) AM_WRITE(cps1_soundlatch2_w) /* Sound timer fade HBMAME */
+ AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram") /* SF2CE executes code from here */
+ AM_RANGE(0xf00000, 0xf0ffff) AM_READ(qsound_rom_r) /* Slammasters protection */
+ AM_RANGE(0xf18000, 0xf19fff) AM_READWRITE(qsound_sharedram1_r, qsound_sharedram1_w) /* Q RAM */
+ AM_RANGE(0xf1c000, 0xf1c001) AM_READ_PORT("IN2") /* Player 3 controls (later games) */
+ AM_RANGE(0xf1c002, 0xf1c003) AM_READ_PORT("IN3") /* Player 4 controls ("Muscle Bombers") */
+ AM_RANGE(0xf1c004, 0xf1c005) AM_WRITE(cpsq_coinctrl2_w) /* Coin control2 (later games) */
+ AM_RANGE(0xf1c006, 0xf1c007) AM_READ_PORT("EEPROMIN") AM_WRITE_PORT("EEPROMOUT")
+ AM_RANGE(0xf1e000, 0xf1ffff) AM_READWRITE(qsound_sharedram2_r, qsound_sharedram2_w) /* Q RAM */
+ AM_RANGE(0xff0000, 0xffffff) AM_RAM AM_SHARE("mainram")
+ADDRESS_MAP_END
+
+ADDRESS_MAP_START( qsound_sub_map, AS_PROGRAM, 8, cps_state ) // used by cps2.c too
+ AM_RANGE(0x0000, 0x7fff) AM_ROM
+ AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") /* banked (contains music data) */
+ AM_RANGE(0xc000, 0xcfff) AM_RAM AM_SHARE("qsound_ram1")
+ AM_RANGE(0xd000, 0xd002) AM_DEVWRITE("qsound", qsound_device, qsound_w)
+ AM_RANGE(0xd003, 0xd003) AM_WRITE(qsound_banksw_w)
+ AM_RANGE(0xd007, 0xd007) AM_DEVREAD("qsound", qsound_device, qsound_r)
+ AM_RANGE(0xf000, 0xffff) AM_RAM AM_SHARE("qsound_ram2")
+ADDRESS_MAP_END
+
+ADDRESS_MAP_START( qsound_decrypted_opcodes_map, AS_DECRYPTED_OPCODES, 8, cps_state )
+ AM_RANGE(0x0000, 0x7fff) AM_ROMBANK("decrypted")
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( sf2m3_map, AS_PROGRAM, 16, cps_state )
+ AM_RANGE(0x000000, 0x3fffff) AM_ROM
+ AM_RANGE(0x800010, 0x800011) AM_READ_PORT("IN1") /* Player input ports */
+ AM_RANGE(0x800028, 0x80002f) AM_READ(cps1_hack_dsw_r) /* System input ports / Dip Switches */
+ AM_RANGE(0x800030, 0x800037) AM_WRITE(cps1_coinctrl_w)
+ AM_RANGE(0x800100, 0x80013f) AM_WRITE(cps1_cps_a_w) AM_SHARE("cps_a_regs") /* CPS-A custom */
+ AM_RANGE(0x800140, 0x80017f) AM_READWRITE(cps1_cps_b_r, cps1_cps_b_w) AM_SHARE("cps_b_regs") /* CPS-B custom */
+ AM_RANGE(0x800186, 0x800187) AM_READ(cps1_in2_r) /* Buttons 4,5,6 for both players */
+ AM_RANGE(0x800190, 0x800197) AM_WRITE(cps1_soundlatch_w) /* Sound command */
+ AM_RANGE(0x800198, 0x80019f) AM_WRITE(cps1_soundlatch2_w) /* Sound timer fade */
+ AM_RANGE(0x8001a0, 0x8001c3) AM_WRITE(cps1_cps_a_w)
+ AM_RANGE(0x8001c4, 0x8001c5) AM_WRITE(sf2m3_layer_w)
+ AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram")
+ AM_RANGE(0xff0000, 0xffffff) AM_RAM
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( sf2m10_map, AS_PROGRAM, 16, cps_state )
+ AM_RANGE(0x000000, 0x3fffff) AM_ROM
+ AM_RANGE(0x800000, 0x800007) AM_READ_PORT("IN1")
+ AM_RANGE(0x800018, 0x80001f) AM_READ(cps1_hack_dsw_r)
+ AM_RANGE(0x800020, 0x800021) AM_READNOP
+ AM_RANGE(0x800030, 0x800037) AM_WRITE(cps1_coinctrl_w)
+ AM_RANGE(0x800100, 0x80013f) AM_WRITE(cps1_cps_a_w) AM_SHARE("cps_a_regs")
+ AM_RANGE(0x800140, 0x80017f) AM_READWRITE(cps1_cps_b_r, cps1_cps_b_w) AM_SHARE("cps_b_regs")
+ AM_RANGE(0x800180, 0x800187) AM_WRITE(cps1_soundlatch_w)
+ AM_RANGE(0x800188, 0x80018f) AM_WRITE(cps1_soundlatch2_w)
+ AM_RANGE(0x8001a2, 0x8001b3) AM_WRITE(cps1_cps_a_w) // make 8001b2 point at 800110
+ AM_RANGE(0x8001fe, 0x8001ff) AM_WRITENOP // writes FFFF here a lot
+ AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram")
+ AM_RANGE(0xe00000, 0xefffff) AM_RAM // it writes to the whole range at start
+ AM_RANGE(0xf1c000, 0xf1c001) AM_READ(cps1_in2_r)
+ AM_RANGE(0xfeff00, 0xfeffff) AM_RAM // fix stack crash at start
+ AM_RANGE(0xff0000, 0xffffff) AM_RAM AM_SHARE("mainram")
+ADDRESS_MAP_END
+
+/***********************************************************
+ INPUT PORTS, DIPs
+***********************************************************/
+
+#define CPS1_COINAGE_1(diploc) \
+ PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coin_A ) ) PORT_DIPLOCATION(diploc ":1,2,3") \
+ PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) \
+ PORT_DIPSETTING( 0x01, DEF_STR( 3C_1C ) ) \
+ PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) ) \
+ PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) ) \
+ PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) ) \
+ PORT_DIPSETTING( 0x05, DEF_STR( 1C_3C ) ) \
+ PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ) ) \
+ PORT_DIPSETTING( 0x03, DEF_STR( 1C_6C ) ) \
+ PORT_DIPNAME( 0x38, 0x38, DEF_STR( Coin_B ) ) PORT_DIPLOCATION(diploc ":4,5,6") \
+ PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) \
+ PORT_DIPSETTING( 0x08, DEF_STR( 3C_1C ) ) \
+ PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) \
+ PORT_DIPSETTING( 0x38, DEF_STR( 1C_1C ) ) \
+ PORT_DIPSETTING( 0x30, DEF_STR( 1C_2C ) ) \
+ PORT_DIPSETTING( 0x28, DEF_STR( 1C_3C ) ) \
+ PORT_DIPSETTING( 0x20, DEF_STR( 1C_4C ) ) \
+ PORT_DIPSETTING( 0x18, DEF_STR( 1C_6C ) )
+
+#define CPS1_COINAGE_2(diploc) \
+ PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coinage ) ) PORT_DIPLOCATION(diploc ":1,2,3") \
+ PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) \
+ PORT_DIPSETTING( 0x01, DEF_STR( 3C_1C ) ) \
+ PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) ) \
+ PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) ) \
+ PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) ) \
+ PORT_DIPSETTING( 0x05, DEF_STR( 1C_3C ) ) \
+ PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ) ) \
+ PORT_DIPSETTING( 0x03, DEF_STR( 1C_6C ) )
+
+#define CPS1_COINAGE_3(diploc) \
+ PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coin_A ) ) PORT_DIPLOCATION(diploc ":1,2,3") \
+ PORT_DIPSETTING( 0x01, DEF_STR( 4C_1C ) ) \
+ PORT_DIPSETTING( 0x02, DEF_STR( 3C_1C ) ) \
+ PORT_DIPSETTING( 0x03, DEF_STR( 2C_1C ) ) \
+ PORT_DIPSETTING( 0x00, "2 Coins/1 Credit (1 to continue)" ) \
+ PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) ) \
+ PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) ) \
+ PORT_DIPSETTING( 0x05, DEF_STR( 1C_3C ) ) \
+ PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ) ) \
+ PORT_DIPNAME( 0x38, 0x38, DEF_STR( Coin_B ) ) PORT_DIPLOCATION(diploc ":4,5,6") \
+ PORT_DIPSETTING( 0x08, DEF_STR( 4C_1C ) ) \
+ PORT_DIPSETTING( 0x10, DEF_STR( 3C_1C ) ) \
+ PORT_DIPSETTING( 0x18, DEF_STR( 2C_1C ) ) \
+ PORT_DIPSETTING( 0x00, "2 Coins/1 Credit (1 to continue)" ) \
+ PORT_DIPSETTING( 0x38, DEF_STR( 1C_1C ) ) \
+ PORT_DIPSETTING( 0x30, DEF_STR( 1C_2C ) ) \
+ PORT_DIPSETTING( 0x28, DEF_STR( 1C_3C ) ) \
+ PORT_DIPSETTING( 0x20, DEF_STR( 1C_4C ) )
+
+#define CPS1_DIFFICULTY_1(diploc) \
+ PORT_DIPNAME( 0x07, 0x04, DEF_STR( Difficulty ) ) PORT_DIPLOCATION(diploc ":1,2,3") \
+ PORT_DIPSETTING( 0x07, "0 (Easiest)" ) \
+ PORT_DIPSETTING( 0x06, "1" ) \
+ PORT_DIPSETTING( 0x05, "2" ) \
+ PORT_DIPSETTING( 0x04, "3 (Normal)" ) \
+ PORT_DIPSETTING( 0x03, "4" ) \
+ PORT_DIPSETTING( 0x02, "5" ) \
+ PORT_DIPSETTING( 0x01, "6" ) \
+ PORT_DIPSETTING( 0x00, "7 (Hardest)" )
+
+#define CPS1_DIFFICULTY_2(diploc) \
+ PORT_DIPNAME( 0x07, 0x07, DEF_STR( Difficulty ) ) PORT_DIPLOCATION(diploc ":1,2,3") \
+ PORT_DIPSETTING( 0x04, "1 (Easiest)" ) \
+ PORT_DIPSETTING( 0x05, "2" ) \
+ PORT_DIPSETTING( 0x06, "3" ) \
+ PORT_DIPSETTING( 0x07, "4 (Normal)" ) \
+ PORT_DIPSETTING( 0x03, "5" ) \
+ PORT_DIPSETTING( 0x02, "6" ) \
+ PORT_DIPSETTING( 0x01, "7" ) \
+ PORT_DIPSETTING( 0x00, "8 (Hardest)" )
+
+/* CPS1 games with 2 players and 3 buttons each */
+static INPUT_PORTS_START( cps1_3b )
+ PORT_START("IN0")
+ 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_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
+ PORT_SERVICE( 0x40, IP_ACTIVE_LOW )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("IN1")
+ PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) 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 )
+INPUT_PORTS_END
+
+/* CPS1 games with 2 players and 2 buttons each */
+static INPUT_PORTS_START( cps1_2b )
+ PORT_INCLUDE( cps1_3b )
+
+ PORT_MODIFY("IN1")
+ PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) // no button 3
+ PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) // no button 3
+INPUT_PORTS_END
+
+/* CPS1 games with 2 players and 1 button each */
+static INPUT_PORTS_START( cps1_1b )
+ PORT_INCLUDE( cps1_2b )
+
+ PORT_MODIFY("IN1")
+ PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN ) // no button 2
+ PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) // no button 2
+INPUT_PORTS_END
+
+/* CPS1 games with 3 players and 2 buttons each */
+static INPUT_PORTS_START( cps1_3players )
+ PORT_INCLUDE( cps1_2b )
+
+ PORT_START("IN2") /* Player 3 */
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3)
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3)
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN3 )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 )
+INPUT_PORTS_END
+
+/* CPS1 games with 4 players and 2 buttons each */
+static INPUT_PORTS_START( cps1_4players )
+ PORT_INCLUDE( cps1_3players )
+
+ PORT_START("IN3") /* Player 4 */
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4)
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4)
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4)
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN4 )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START4 )
+INPUT_PORTS_END
+
+/* CPS1 games with 2 players and 6 buttons each */
+static INPUT_PORTS_START( cps1_6b)
+ PORT_INCLUDE( cps1_3b)
+
+ PORT_MODIFY("IN1")
+ PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P1 Jab Punch") PORT_PLAYER(1)
+ PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P1 Strong Punch") PORT_PLAYER(1)
+ PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("P1 Fierce Punch") PORT_PLAYER(1)
+ PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P2 Jab Punch") PORT_PLAYER(2)
+ PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P2 Strong Punch") PORT_PLAYER(2)
+ PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("P2 Fierce Punch") PORT_PLAYER(2)
+
+ PORT_START("IN2") /* Extra buttons */
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("P1 Short Kick") PORT_PLAYER(1)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("P1 Forward Kick") PORT_PLAYER(1)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("P1 Roundhouse Kick") PORT_PLAYER(1)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("P2 Short Kick") PORT_PLAYER(2)
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("P2 Forward Kick") PORT_PLAYER(2)
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("P2 Roundhouse Kick") PORT_PLAYER(2)
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
+INPUT_PORTS_END
+
+/* CPS1 quiz games */
+static INPUT_PORTS_START( cps1_quiz )
+ PORT_INCLUDE( cps1_3b )
+
+ PORT_MODIFY("IN1") /* no joystick and 4th button */
+ PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1)
+ 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( 0x8000, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2)
+INPUT_PORTS_END
+
+
+static INPUT_PORTS_START( forgottn )
+ PORT_INCLUDE( cps1_1b )
+
+ PORT_MODIFY("IN0")
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("DSWC") // The manual only mentions two DIP switch banks.
+ PORT_DIPUNUSED( 0x80, 0x80 ) // Is this port brought out to DIP switches or not?
+ PORT_DIPUNKNOWN( 0x40, 0x40 ) // Check code at 0x013c78 (0x013690 in 'lostwrld')
+ PORT_DIPUNUSED( 0x20, 0x20 )
+ PORT_DIPUNUSED( 0x10, 0x10 )
+ PORT_DIPUNUSED( 0x08, 0x08 )
+ PORT_DIPUNUSED( 0x04, 0x04 )
+ PORT_DIPUNUSED( 0x02, 0x02 )
+ PORT_DIPUNUSED( 0x01, 0x01 )
+
+ PORT_START("DSWB")
+ CPS1_DIFFICULTY_1( "DIP-B" )
+ PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "DIP-B:4" )
+ PORT_DIPUNUSED_DIPLOC( 0x10, 0x10, "DIP-B:5" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "DIP-B:6" ) // Check code at 0x00111c (0x00112c in 'lostwrld')
+ PORT_SERVICE_DIPLOC( 0x40, IP_ACTIVE_LOW, "DIP-B:7" )
+ PORT_DIPNAME( 0x80, 0x80, "Freeze" ) PORT_DIPLOCATION("DIP-B:8")
+ PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+
+ PORT_START("DSWA")
+ CPS1_COINAGE_1( "DIP-A" )
+ PORT_DIPNAME( 0x40, 0x40, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("DIP-A:7")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( On ) )
+ PORT_DIPNAME( 0x80, 0x80, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("DIP-A:8")
+ PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+
+ PORT_START("DIAL0")
+ PORT_BIT( 0x0fff, 0x0000, IPT_DIAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(20) PORT_CODE_DEC(KEYCODE_Z) PORT_CODE_INC(KEYCODE_X) PORT_PLAYER(1)
+
+ PORT_START("DIAL1")
+ PORT_BIT( 0x0fff, 0x0000, IPT_DIAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(20) PORT_CODE_DEC(KEYCODE_N) PORT_CODE_INC(KEYCODE_M) PORT_PLAYER(2)
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( ghouls )
+ PORT_INCLUDE( cps1_2b )
+ /* Service1 doesn't give any credit */
+
+ PORT_START("DSWC")
+ PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW(C):1,2")
+ PORT_DIPSETTING( 0x03, "3" )
+ PORT_DIPSETTING( 0x02, "4" )
+ PORT_DIPSETTING( 0x01, "5" )
+ PORT_DIPSETTING( 0x00, "6" )
+ PORT_DIPUNUSED_DIPLOC( 0x04, 0x04, "SW(C):3" )
+ PORT_DIPUNUSED_DIPLOC( 0x08, 0x08, "SW(C):4" )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW(C):6")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) // "Demo Sounds" in manual; doesn't work
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x40, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7")
+ PORT_DIPSETTING( 0x00, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( Yes ) )
+ PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8")
+ PORT_DIPSETTING( 0x80, "Game" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Test ) )
+
+ PORT_START("DSWB") /* Manual states default difficulty "B" (2) which differs from the normal macro */
+ PORT_DIPNAME( 0x07, 0x05, DEF_STR( Difficulty ) ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x80) PORT_DIPLOCATION("SW(B):1,2,3")
+ PORT_DIPSETTING( 0x04, "1 (Easiest)" )
+ PORT_DIPSETTING( 0x05, "2" )
+ PORT_DIPSETTING( 0x06, "3" )
+ PORT_DIPSETTING( 0x07, "4 (Normal)" )
+ PORT_DIPSETTING( 0x03, "5" )
+ PORT_DIPSETTING( 0x02, "6" )
+ PORT_DIPSETTING( 0x01, "7" )
+ PORT_DIPSETTING( 0x00, "8 (Hardest)" )
+ PORT_DIPUNUSED_DIPLOC( 0x08, 0x08, "SW(B):4" )
+ PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW(B):5,6")
+ PORT_DIPSETTING( 0x20, "10K, 30K and every 30K" )
+ PORT_DIPSETTING( 0x10, "20K, 50K and every 70K" )
+ PORT_DIPSETTING( 0x30, "30K, 60K and every 70K" )
+ PORT_DIPSETTING( 0x00, "40K, 70K and every 80K" )
+ PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW(B):7" )
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(B):8" )
+
+ PORT_START("DSWA")
+ CPS1_COINAGE_1( "SW(A)" )
+ PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW(A):7,8")
+ PORT_DIPSETTING( 0xc0, "Upright 1 Player" )
+ PORT_DIPSETTING( 0x80, "Upright 2 Players" )
+// PORT_DIPSETTING( 0x40, DEF_STR( Cocktail ) ) // Manual says these are both valid settings
+ PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) // for 2-player cocktail cabinet
+INPUT_PORTS_END
+
+/* Same as 'ghouls' but additional "Freeze" Dip Switch, different "Lives" Dip Switch,
+ and LOTS of "debug" features (read the notes to know how to activate them) */
+static INPUT_PORTS_START( ghoulsu )
+ PORT_INCLUDE( ghouls )
+
+ PORT_MODIFY("DSWC")
+ PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW(C):1,2")
+ PORT_DIPSETTING( 0x00, "2" )
+ PORT_DIPSETTING( 0x03, "3" )
+ PORT_DIPSETTING( 0x02, "4" )
+ PORT_DIPSETTING( 0x01, "5" )
+
+ PORT_MODIFY("DSWB")
+ /* Standard Dip Switches */
+ PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unused ) ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x80) PORT_DIPLOCATION("SW(B):4")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x30, 0x00, DEF_STR( Bonus_Life ) ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x80) PORT_DIPLOCATION("SW(B):5,6")
+ PORT_DIPSETTING( 0x20, "10K, 30K and every 30K" )
+ PORT_DIPSETTING( 0x10, "20K, 50K and every 70K" )
+ PORT_DIPSETTING( 0x30, "30K, 60K and every 70K" )
+ PORT_DIPSETTING( 0x00, "40K, 70K and every 80K" )
+/* Manuals states the following bonus settings
+ PORT_DIPSETTING( 0x20, "20K, 50K and every 70K" )
+ PORT_DIPSETTING( 0x10, "10K, 30K and every 30K" )
+ PORT_DIPSETTING( 0x30, "40K, 70K and every 80K" )
+ PORT_DIPSETTING( 0x00, "30K, 60K and every 70K" )
+*/
+ /* Debug Dip Switches */
+ PORT_DIPNAME( 0x07, 0x07, "Starting Weapon" ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x00) PORT_DIPLOCATION("SW(B):1,2,3")
+ PORT_DIPSETTING( 0x07, "Spear" )
+ PORT_DIPSETTING( 0x06, "Knife" )
+ PORT_DIPSETTING( 0x05, "Torch" )
+ PORT_DIPSETTING( 0x04, "Sword" )
+ PORT_DIPSETTING( 0x03, "Axe" )
+ PORT_DIPSETTING( 0x02, "Shield" )
+ PORT_DIPSETTING( 0x01, "Super Weapon" )
+// PORT_DIPSETTING( 0x00, "INVALID !" )
+ PORT_DIPNAME( 0x38, 0x30, "Armor on New Life" ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x00) PORT_DIPLOCATION("SW(B):4,5,6")
+// PORT_DIPSETTING( 0x38, "Silver Armor" )
+ PORT_DIPSETTING( 0x18, "Golden Armor" )
+ PORT_DIPSETTING( 0x30, "Silver Armor" )
+ PORT_DIPSETTING( 0x28, "None (young man)" )
+ PORT_DIPSETTING( 0x20, "None (old man)" )
+// PORT_DIPSETTING( 0x10, "INVALID !" )
+// PORT_DIPSETTING( 0x08, "INVALID !" )
+// PORT_DIPSETTING( 0x00, "INVALID !" )
+
+ PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW(B):7" )
+ PORT_DIPNAME( 0x80, 0x80, "Freeze" ) PORT_DIPLOCATION("SW(B):8")
+ PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+
+ PORT_MODIFY("DSWA")
+ /* Standard Dip Switches */
+ PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coin_A ) ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x80) PORT_DIPLOCATION("SW(A):1,2,3")
+ PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( 3C_1C ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) )
+ PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) )
+ PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) )
+ PORT_DIPSETTING( 0x05, DEF_STR( 1C_3C ) )
+ PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ) )
+ PORT_DIPSETTING( 0x03, DEF_STR( 1C_6C ) )
+ PORT_DIPNAME( 0x38, 0x38, DEF_STR( Coin_B ) ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x80) PORT_DIPLOCATION("SW(A):4,5,6")
+ PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) )
+ PORT_DIPSETTING( 0x08, DEF_STR( 3C_1C ) )
+ PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) )
+ PORT_DIPSETTING( 0x38, DEF_STR( 1C_1C ) )
+ PORT_DIPSETTING( 0x30, DEF_STR( 1C_2C ) )
+ PORT_DIPSETTING( 0x28, DEF_STR( 1C_3C ) )
+ PORT_DIPSETTING( 0x20, DEF_STR( 1C_4C ) )
+ PORT_DIPSETTING( 0x18, DEF_STR( 1C_6C ) )
+ /* Debug Dip Switches */
+ PORT_DIPNAME( 0x0f, 0x0f, "Starting Level" ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x00) PORT_DIPLOCATION("SW(A):1,2,3,4")
+ PORT_DIPSETTING( 0x0f, "Level 1 (1st half)" )
+ PORT_DIPSETTING( 0x0e, "Level 1 (2nd half)" )
+ PORT_DIPSETTING( 0x0d, "Level 2 (1st half)" )
+ PORT_DIPSETTING( 0x0c, "Level 2 (2nd half)" )
+ PORT_DIPSETTING( 0x0b, "Level 3 (1st half)" )
+ PORT_DIPSETTING( 0x0a, "Level 3 (2nd half)" )
+ PORT_DIPSETTING( 0x09, "Level 4 (1st half)" )
+ PORT_DIPSETTING( 0x08, "Level 4 (2nd half)" )
+ PORT_DIPSETTING( 0x07, "Level 5 (1st half)" )
+ PORT_DIPSETTING( 0x06, "Level 5 (2nd half)" )
+ PORT_DIPSETTING( 0x05, "Level 6" )
+// PORT_DIPSETTING( 0x04, "INVALID !" )
+// PORT_DIPSETTING( 0x03, "INVALID !" )
+// PORT_DIPSETTING( 0x02, "INVALID !" )
+// PORT_DIPSETTING( 0x01, "INVALID !" )
+// PORT_DIPSETTING( 0x00, "INVALID !" )
+ PORT_DIPNAME( 0x10, 0x10, "Invulnerability" ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x00) PORT_DIPLOCATION("SW(A):5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x20, "Slow Motion" ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x00) PORT_DIPLOCATION("SW(A):6")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+
+ PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW(A):7,8")
+ PORT_DIPSETTING( 0xc0, "Upright 1 Player" )
+ PORT_DIPSETTING( 0x80, "Upright 2 Players" )
+// PORT_DIPSETTING( 0x40, DEF_STR( Cocktail ) ) // Manual says these are both valid settings
+ PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) // for 2-player cocktail cabinet
+INPUT_PORTS_END
+
+/* Same as 'ghouls' but additional "Freeze" Dip Switch */
+static INPUT_PORTS_START( daimakai )
+ PORT_INCLUDE(ghouls)
+
+ PORT_MODIFY("DSWB")
+ PORT_DIPNAME( 0x80, 0x80, "Freeze" ) PORT_DIPLOCATION("SW(B):8")
+ PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) // This switch isn't documented in the manual
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+INPUT_PORTS_END
+
+/* "Debug" features to be implemented */
+static INPUT_PORTS_START( strider )
+ PORT_INCLUDE( cps1_3b )
+
+ PORT_START("DSWA")
+ CPS1_COINAGE_1( "SW(A)" )
+ PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW(A):7,8")
+ PORT_DIPSETTING( 0xc0, "Upright 1 Player" ) // These switches are not documented in the manual
+ PORT_DIPSETTING( 0x80, "Upright 2 Players" )
+// PORT_DIPSETTING( 0x40, DEF_STR( Cocktail ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
+
+ PORT_START("DSWB") /* Like Ghouls, Strider manual states "B" (or 2) as the recommended difficulty level. */
+ PORT_DIPNAME( 0x07, 0x05, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW(B):1,2,3")
+ PORT_DIPSETTING( 0x04, "1 (Easiest)" )
+ PORT_DIPSETTING( 0x05, "2" )
+ PORT_DIPSETTING( 0x06, "3" )
+ PORT_DIPSETTING( 0x07, "4 (Normal)" )
+ PORT_DIPSETTING( 0x03, "5" )
+ PORT_DIPSETTING( 0x02, "6" )
+ PORT_DIPSETTING( 0x01, "7" )
+ PORT_DIPSETTING( 0x00, "8 (Hardest)" )
+ /* In 'striderj', bit 3 is stored at 0xff8e77 ($e77,A5) via code at 0x000a2a,
+ but this address is never checked again.
+ In 'strider' and 'stridrjr', this code even doesn't exist ! */
+ PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW(B):4")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) // Manual says this is 2c start/1c continue but it
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) ) // doesn't work (see comment above)
+ PORT_DIPNAME( 0x30, 0x00, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW(B):5,6")
+/* These show in test mode */
+ PORT_DIPSETTING( 0x30, "20K, 40K then every 60K" )
+ PORT_DIPSETTING( 0x20, "30K, 50K then every 70K" )
+ PORT_DIPSETTING( 0x10, "20K & 60K only" )
+ PORT_DIPSETTING( 0x00, "30K & 60K only" )
+/* According to manual, these are the proper settings
+ PORT_DIPSETTING( 0x30, "40K, 70K then every 80K" )
+ PORT_DIPSETTING( 0x20, "20K, 50K then every 70K" )
+ PORT_DIPSETTING( 0x10, "10k, 30k then every 30k" )
+ PORT_DIPSETTING( 0x00, "30K, 60k then every 70k" )
+*/
+
+ PORT_DIPNAME( 0xc0, 0x80, "Internal Diff. on Life Loss" ) PORT_DIPLOCATION("SW(B):7,8")
+ PORT_DIPSETTING( 0xc0, "-3" ) // Check code at 0x00d15a
+// PORT_DIPSETTING( 0x40, "-1" ) // These switches are not documented in the manual
+ PORT_DIPSETTING( 0x00, "-1" )
+ PORT_DIPSETTING( 0x80, "Default" )
+
+ PORT_START("DSWC")
+ PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW(C):1,2")
+ PORT_DIPSETTING( 0x00, "2" ) // "6" in the "test mode" and manual
+ PORT_DIPSETTING( 0x03, "3" )
+ PORT_DIPSETTING( 0x02, "4" )
+ PORT_DIPSETTING( 0x01, "5" )
+ PORT_DIPNAME( 0x04, 0x04, "Freeze" ) PORT_DIPLOCATION("SW(C):3")
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x08, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW(C):4")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x20, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x20, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x40, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7")
+ PORT_DIPSETTING( 0x00, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( Yes ) )
+ PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8")
+ PORT_DIPSETTING( 0x80, "Game" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Test ) ) // To enable the "debug" features
+INPUT_PORTS_END
+
+/* Same as 'strider' but additional "2 Coins to Start, 1 to Continue" Dip Switch */
+/* "Debug" features to be implemented */
+static INPUT_PORTS_START( stridrua )
+ PORT_INCLUDE( strider )
+
+ PORT_MODIFY("DSWB")
+ /* In 'striderj', bit 3 is stored at 0xff8e77 ($e77,A5) via code at 0x000a2a,
+ but this address is never checked again.
+ In 'strider' and 'stridrjr', this code even doesn't exist ! */
+ PORT_DIPNAME( 0x08, 0x08, "2 Coins to Start, 1 to Continue" ) PORT_DIPLOCATION("SW(B):4")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) // This works in this revision
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( dynwar )
+ PORT_INCLUDE( cps1_3b )
+
+ PORT_START("DSWC")
+ PORT_DIPNAME( 0x01, 0x01, "Freeze" ) PORT_DIPLOCATION("SW(C):1")
+ PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) // Also affects energy cost - read notes
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) ) // This switch is not documented in the manual
+ PORT_DIPNAME( 0x02, 0x02, "Turbo Mode" ) PORT_DIPLOCATION("SW(C):2")
+ PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) // Also affects energy cost - read notes
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) ) // This switch is not documented in the manual
+ PORT_DIPUNUSED_DIPLOC( 0x04, 0x04, "SW(C):3" ) // This switch is not documented in the manual
+ PORT_DIPUNUSED_DIPLOC( 0x08, 0x08, "SW(C):4" ) // This switch is not documented in the manual
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x20, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) // "ON" in the "test mode"
+ PORT_DIPSETTING( 0x20, DEF_STR( On ) ) // "OFF" in the "test mode"
+ PORT_DIPNAME( 0x40, 0x40, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7")
+ PORT_DIPSETTING( 0x00, DEF_STR( No ) ) // "ON" in the "test mode"
+ PORT_DIPSETTING( 0x40, DEF_STR( Yes ) ) // "OFF" in the "test mode"
+ PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8")
+ PORT_DIPSETTING( 0x80, "Game" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Test ) )
+
+ PORT_START("DSWB")
+ CPS1_DIFFICULTY_2( "SW(B)" )
+ PORT_DIPUNUSED_DIPLOC( 0x08, 0x08, "SW(B):4" ) // These five switches are not documented in the
+ PORT_DIPUNUSED_DIPLOC( 0x10, 0x10, "SW(B):5" ) // manual
+ PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW(B):6" )
+ PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW(B):7" )
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(B):8" )
+
+ PORT_START("DSWA")
+ /* According to the manual, ALL switches 1 to 6 must be ON to have
+ "2 Coins/1 Credit (1 to continue)" for both coin slots */
+ CPS1_COINAGE_3( "SW(A)" )
+ PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW(A):7" ) // This switch is not documented in the manual
+ PORT_DIPNAME( 0x80, 0x80, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW(A):8")
+ PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) // This switch is not documented in the manual
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+INPUT_PORTS_END
+
+/* Read the notes to know how to activate the "debug" features */
+static INPUT_PORTS_START( willow )
+ PORT_INCLUDE( cps1_3b )
+
+ PORT_MODIFY("IN0")
+ PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW )
+
+ PORT_START("DSWC")
+ /* Standard Dip Switches */
+ PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x80) PORT_DIPLOCATION("SW(C):1,2")
+ PORT_DIPSETTING( 0x02, "1" )
+ PORT_DIPSETTING( 0x03, "2" )
+ PORT_DIPSETTING( 0x01, "3" )
+ PORT_DIPSETTING( 0x00, "4" )
+ PORT_DIPNAME( 0x0c, 0x08, "Vitality" ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x80) PORT_DIPLOCATION("SW(C):3,4")
+ PORT_DIPSETTING( 0x00, "2" )
+ PORT_DIPSETTING( 0x0c, "3" )
+ PORT_DIPSETTING( 0x08, "4" )
+ PORT_DIPSETTING( 0x04, "5" )
+ /* Debug Dip Switches */
+ PORT_DIPNAME( 0x01, 0x01, "Turbo Mode" ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x00) PORT_DIPLOCATION("SW(C):1")
+ PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x02, 0x02, "Freeze" ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x00) PORT_DIPLOCATION("SW(C):2")
+ PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x04, 0x04, "Slow Motion" ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x00) PORT_DIPLOCATION("SW(C):3")
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x08, "Invulnerability" ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x00) PORT_DIPLOCATION("SW(C):4")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+
+ /* Standard Dip Switches */
+ PORT_DIPNAME( 0x20, 0x20, DEF_STR( Demo_Sounds ) ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x80) PORT_DIPLOCATION("SW(C):6")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x20, DEF_STR( On ) )
+ /* Debug Dip Switches */
+ PORT_DIPNAME( 0x20, 0x20, "Display Debug Infos" ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x00) PORT_DIPLOCATION("SW(C):6")
+ PORT_DIPSETTING( 0x20, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
+
+ PORT_DIPNAME( 0x40, 0x40, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7")
+ PORT_DIPSETTING( 0x00, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( Yes ) )
+ PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8")
+ PORT_DIPSETTING( 0x80, "Game" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Test ) ) // To enable the "debug" features
+
+ PORT_START("DSWB")
+ /* Standard Dip Switches */
+ PORT_DIPNAME( 0x07, 0x07, DEF_STR( Difficulty ) ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x80) PORT_DIPLOCATION("SW(B):1,2,3")
+ PORT_DIPSETTING( 0x04, "1 (Easiest)" )
+ PORT_DIPSETTING( 0x05, "2" )
+ PORT_DIPSETTING( 0x06, "3" )
+ PORT_DIPSETTING( 0x07, "4 (Normal)" )
+ PORT_DIPSETTING( 0x03, "5" )
+ PORT_DIPSETTING( 0x02, "6" )
+ PORT_DIPSETTING( 0x01, "7" )
+ PORT_DIPSETTING( 0x00, "8 (Hardest)" )
+ PORT_DIPNAME( 0x18, 0x18, "Nando Speed" ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x80) PORT_DIPLOCATION("SW(B):4,5")
+ PORT_DIPSETTING( 0x10, "Slow" )
+ PORT_DIPSETTING( 0x18, DEF_STR( Normal ) )
+ PORT_DIPSETTING( 0x08, "Fast" )
+ PORT_DIPSETTING( 0x00, "Very Fast" )
+ PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unused ) ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x80) PORT_DIPLOCATION("SW(B):6")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x80) PORT_DIPLOCATION("SW(B):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x80, 0x80, "Stage Magic Continue" ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x80) PORT_DIPLOCATION("SW(B):8")
+ PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ /* Debug Dip Switches */
+ PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x00) PORT_DIPLOCATION("SW(B):1")
+ PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x1e, 0x1e, "Slow Motion Delay" ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x00) PORT_DIPLOCATION("SW(B):2,3,4,5")
+ PORT_DIPSETTING( 0x1e, "2 Frames" )
+ PORT_DIPSETTING( 0x1c, "3 Frames" )
+ PORT_DIPSETTING( 0x1a, "4 Frames" )
+ PORT_DIPSETTING( 0x18, "5 Frames" )
+ PORT_DIPSETTING( 0x16, "6 Frames" )
+ PORT_DIPSETTING( 0x14, "7 Frames" )
+ PORT_DIPSETTING( 0x12, "8 Frames" )
+ PORT_DIPSETTING( 0x10, "9 Frames" )
+ PORT_DIPSETTING( 0x0e, "10 Frames" )
+ PORT_DIPSETTING( 0x0c, "11 Frames" )
+ PORT_DIPSETTING( 0x0a, "12 Frames" )
+ PORT_DIPSETTING( 0x08, "13 Frames" )
+ PORT_DIPSETTING( 0x06, "14 Frames" )
+ PORT_DIPSETTING( 0x04, "15 Frames" )
+ PORT_DIPSETTING( 0x02, "16 Frames" )
+ PORT_DIPSETTING( 0x00, "17 Frames" )
+ PORT_DIPNAME( 0xe0, 0xe0, "Starting Level" ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x00) PORT_DIPLOCATION("SW(B):6,7,8")
+ PORT_DIPSETTING( 0xe0, "Level 1" )
+ PORT_DIPSETTING( 0xc0, "Level 2" )
+ PORT_DIPSETTING( 0xa0, "Level 3" )
+ PORT_DIPSETTING( 0x80, "Level 4" )
+ PORT_DIPSETTING( 0x60, "Level 5" )
+ PORT_DIPSETTING( 0x40, "Level 6" )
+// PORT_DIPSETTING( 0x20, "INVALID !" )
+// PORT_DIPSETTING( 0x00, "INVALID !" )
+
+ PORT_START("DSWA")
+ /* Standard Dip Switches */
+ PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coin_A ) ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x80) PORT_DIPLOCATION("SW(A):1,2,3")
+ PORT_DIPSETTING( 0x01, DEF_STR( 4C_1C ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( 3C_1C ) )
+ PORT_DIPSETTING( 0x03, DEF_STR( 2C_1C ) )
+ PORT_DIPSETTING( 0x00, "2 Coins/1 Credit (1 to continue)" )
+ PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) )
+ PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) )
+ PORT_DIPSETTING( 0x05, DEF_STR( 1C_3C ) )
+ PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ) )
+ PORT_DIPNAME( 0x38, 0x38, DEF_STR( Coin_B ) ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x80) PORT_DIPLOCATION("SW(A):4,5,6")
+ PORT_DIPSETTING( 0x08, DEF_STR( 4C_1C ) )
+ PORT_DIPSETTING( 0x10, DEF_STR( 3C_1C ) )
+ PORT_DIPSETTING( 0x18, DEF_STR( 2C_1C ) )
+ PORT_DIPSETTING( 0x00, "2 Coins/1 Credit (1 to continue)" )
+ PORT_DIPSETTING( 0x38, DEF_STR( 1C_1C ) )
+ PORT_DIPSETTING( 0x30, DEF_STR( 1C_2C ) )
+ PORT_DIPSETTING( 0x28, DEF_STR( 1C_3C ) )
+ PORT_DIPSETTING( 0x20, DEF_STR( 1C_4C ) )
+ PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Cabinet ) ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x80) PORT_DIPLOCATION("SW(A):7,8")
+ PORT_DIPSETTING( 0xc0, "Upright 1 Player" )
+ PORT_DIPSETTING( 0x80, "Upright 2 Players" )
+// PORT_DIPSETTING( 0x40, DEF_STR( Cocktail ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
+ /* Debug Dip Switches */
+ PORT_DIPNAME( 0x3f, 0x3f, DEF_STR( Free_Play ) ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x00) PORT_DIPLOCATION("SW(A):1,2,3,4,5,6")
+ PORT_DIPSETTING( 0x3f, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x38, DEF_STR( On ) )
+ /* Other values don't give free play */
+ PORT_DIPNAME( 0x40, 0x40, DEF_STR( Cabinet ) ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x00) PORT_DIPLOCATION("SW(A):7")
+ PORT_DIPSETTING( 0x40, "Upright 1 Player" )
+ PORT_DIPSETTING( 0x00, "Upright 2 Players" )
+ PORT_DIPNAME( 0x80, 0x80, "Maximum magic/sword power" ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x00) PORT_DIPLOCATION("SW(A):8")
+ PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+INPUT_PORTS_END
+
+/* To enable extra choices in the "test mode", you must press "Coin 1" ('5') AND "Service Mode" ('F2') */
+static INPUT_PORTS_START( unsquad )
+ PORT_INCLUDE( cps1_3b )
+
+ PORT_MODIFY("IN0")
+ PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW )
+
+ PORT_START("DSWA")
+ CPS1_COINAGE_3( "SW(A)" )
+ /* According to the manual, ALL bits 0 to 5 must be ON to have
+ "2 Coins/1 Credit (1 to continue)" for both coin slots */
+ PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW(A):7" )
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(A):8" )
+
+ PORT_START("DSWB")
+ CPS1_DIFFICULTY_1( "SW(B)" )
+ PORT_DIPNAME( 0x18, 0x18, "Damage" ) PORT_DIPLOCATION("SW(B):4,5")
+ PORT_DIPSETTING( 0x10, "Small" ) // Check code at 0x006f4e
+ PORT_DIPSETTING( 0x18, DEF_STR( Normal ) )
+ PORT_DIPSETTING( 0x08, "Big" )
+ PORT_DIPSETTING( 0x00, "Biggest" )
+ PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW(B):6" )
+ PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW(B):7" )
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(B):8" )
+
+ PORT_START("DSWC")
+ PORT_DIPUNUSED_DIPLOC( 0x01, 0x01, "SW(C):1" )
+ PORT_DIPUNUSED_DIPLOC( 0x02, 0x02, "SW(C):2" )
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW(C):3")
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x08, "Freeze" ) PORT_DIPLOCATION("SW(C):4")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
+ PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8")
+ PORT_DIPSETTING( 0x80, "Game" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Test ) )
+INPUT_PORTS_END
+
+/* To enable other choices in the "test mode", you must press ("P1 Button 1" ('Ctrl')
+ or "P1 Button 2" ('Alt')) when "Service Mode" is ON */
+static INPUT_PORTS_START( ffight )
+ PORT_INCLUDE( cps1_3b )
+
+ PORT_MODIFY("IN1")
+ PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) PORT_NAME ("P1 Button 3 (Cheat)")
+ PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) PORT_NAME ("P2 Button 3 (Cheat)")
+
+ PORT_START("DSWA")
+ CPS1_COINAGE_1( "SW(A)" )
+ PORT_DIPNAME( 0x40, 0x40, "2 Coins to Start, 1 to Continue" ) PORT_DIPLOCATION("SW(A):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(A):8" )
+
+ PORT_START("DSWB")
+ PORT_DIPNAME( 0x07, 0x04, "Difficulty Level 1" ) PORT_DIPLOCATION("SW(B):1,2,3")
+ PORT_DIPSETTING( 0x07, DEF_STR( Easiest ) ) // "01"
+ PORT_DIPSETTING( 0x06, DEF_STR( Easier ) ) // "02"
+ PORT_DIPSETTING( 0x05, DEF_STR( Easy ) ) // "03"
+ PORT_DIPSETTING( 0x04, DEF_STR( Normal ) ) // "04"
+ PORT_DIPSETTING( 0x03, DEF_STR( Medium ) ) // "05"
+ PORT_DIPSETTING( 0x02, DEF_STR( Hard ) ) // "06"
+ PORT_DIPSETTING( 0x01, DEF_STR( Harder ) ) // "07"
+ PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) // "08"
+ PORT_DIPNAME( 0x18, 0x10, "Difficulty Level 2" ) PORT_DIPLOCATION("SW(B):4,5")
+ PORT_DIPSETTING( 0x18, DEF_STR( Easy ) ) // "01"
+ PORT_DIPSETTING( 0x10, DEF_STR( Normal ) ) // "02"
+ PORT_DIPSETTING( 0x08, DEF_STR( Hard ) ) // "03"
+ PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) // "04"
+ PORT_DIPNAME( 0x60, 0x60, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW(B):6,7")
+ PORT_DIPSETTING( 0x60, "100k" )
+ PORT_DIPSETTING( 0x40, "200k" )
+ PORT_DIPSETTING( 0x20, "100k and every 200k" )
+ PORT_DIPSETTING( 0x00, DEF_STR( None ) )
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(B):8" )
+
+ PORT_START("DSWC")
+ PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW(C):1,2")
+ PORT_DIPSETTING( 0x00, "1" )
+ PORT_DIPSETTING( 0x03, "2" )
+ PORT_DIPSETTING( 0x02, "3" )
+ PORT_DIPSETTING( 0x01, "4" )
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW(C):3")
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x08, "Freeze" ) PORT_DIPLOCATION("SW(C):4")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
+ PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8")
+ PORT_DIPSETTING( 0x80, "Game" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Test ) )
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( 1941 )
+ PORT_INCLUDE( cps1_2b )
+
+ PORT_START("DSWA")
+ CPS1_COINAGE_1( "SW(A)" )
+ PORT_DIPNAME( 0x40, 0x40, "2 Coins to Start, 1 to Continue" ) PORT_DIPLOCATION("SW(A):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(A):8" )
+
+ PORT_START("DSWB")
+ CPS1_DIFFICULTY_1( "SW(B)" )
+ PORT_DIPNAME( 0x18, 0x18, "Level Up Timer" ) PORT_DIPLOCATION("SW(B):4,5")
+ PORT_DIPSETTING( 0x18, "More Slowly" )
+ PORT_DIPSETTING( 0x10, "Slowly" )
+ PORT_DIPSETTING( 0x08, "Quickly" )
+ PORT_DIPSETTING( 0x00, "More Quickly" )
+ PORT_DIPNAME( 0x60, 0x60, "Bullet's Speed" ) PORT_DIPLOCATION("SW(B):6,7")
+ PORT_DIPSETTING( 0x60, "Very Slow" )
+ PORT_DIPSETTING( 0x40, "Slow" )
+ PORT_DIPSETTING( 0x20, "Fast" )
+ PORT_DIPSETTING( 0x00, "Very Fast" )
+ PORT_DIPNAME( 0x80, 0x80, "Initial Vitality" ) PORT_DIPLOCATION("SW(B):8")
+ PORT_DIPSETTING( 0x80, "3 Bars" )
+ PORT_DIPSETTING( 0x00, "4 Bars" )
+
+ PORT_START("DSWC")
+ PORT_DIPNAME( 0x01, 0x01, "Throttle Game Speed" ) PORT_DIPLOCATION("SW(C):1")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) // turning this off will break the game
+ PORT_DIPSETTING( 0x01, DEF_STR( On ) )
+ PORT_DIPUNUSED_DIPLOC( 0x02, 0x02, "SW(C):2" )
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW(C):3")
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x08, "Freeze" ) PORT_DIPLOCATION("SW(C):4")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
+ PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8")
+ PORT_DIPSETTING( 0x80, "Game" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Test ) )
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( mercs )
+ PORT_INCLUDE( cps1_3players )
+
+ PORT_MODIFY("IN0")
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("DSWA")
+ CPS1_COINAGE_2( "SW(A)" )
+ PORT_DIPUNUSED_DIPLOC( 0x08, 0x08, "SW(A):4" ) // These three switches are not documented in
+ PORT_DIPUNUSED_DIPLOC( 0x10, 0x10, "SW(A):5" ) // the manual
+ PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW(A):6" )
+ PORT_DIPNAME( 0x40, 0x40, "2 Coins to Start, 1 to Continue" ) PORT_DIPLOCATION("SW(A):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(A):8" ) // This switch is not documented in the manual
+
+ PORT_START("DSWB")
+ CPS1_DIFFICULTY_1( "SW(B)" )
+ PORT_DIPNAME( 0x08, 0x08, "Coin Slots" ) PORT_DIPLOCATION("SW(B):4")
+ PORT_DIPSETTING( 0x00, "1" )
+ PORT_DIPSETTING( 0x08, "3" ) // This setting can't be used in two-player mode
+ PORT_DIPNAME( 0x10, 0x10, "Play Mode" ) PORT_DIPLOCATION("SW(B):5")
+ PORT_DIPSETTING( 0x00, "2 Players" )
+ PORT_DIPSETTING( 0x10, "3 Players" )
+ PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW(B):6" ) // These three switches are not documented in
+ PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW(B):7" ) // the manual
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(B):8" )
+
+ PORT_START("DSWC")
+ PORT_DIPUNUSED_DIPLOC( 0x01, 0x01, "SW(C):1" ) // These three switches are not documented in
+ PORT_DIPUNUSED_DIPLOC( 0x02, 0x02, "SW(C):2" ) // the manual
+ PORT_DIPUNUSED_DIPLOC( 0x04, 0x04, "SW(C):3" )
+ PORT_DIPNAME( 0x08, 0x08, "Freeze" ) PORT_DIPLOCATION("SW(C):4")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
+ PORT_SERVICE_DIPLOC( 0x80, IP_ACTIVE_LOW, "SW(C):8" )
+INPUT_PORTS_END
+
+/* According to code at 0x001c4e ('mtwins') or ('chikij') , ALL bits 0 to 5 of DSWA
+ must be ON to have "2 Coins/1 Credit (1 to continue)" for both coin slots.
+ But according to routine starting at 0x06b27c ('mtwins') or 0x06b4fa ('chikij'),
+ bit 6 of DSWA is tested to have the same "feature" in the "test mode".
+
+ Bits 3 and 4 of DSWB affect the number of lives AND the level of damage when you get hit.
+ When bit 5 of DSWB is ON you ALWAYS have 1 life but more energy (0x38 instead of 0x20).
+ Useful addresses to know :
+ - 0xff147b.b : lives (player 1)
+ - 0xff153b.b : lives (player 2)
+ - 0xff14ab.w : energy (player 1)
+ - 0xff156b.w : energy (player 2)
+*/
+static INPUT_PORTS_START( mtwins )
+ PORT_INCLUDE( cps1_3b )
+
+ PORT_MODIFY("IN0")
+ PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW )
+
+ PORT_START("DSWA")
+ CPS1_COINAGE_1( "SW(A)" )
+ PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW(A):7" )
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(A):8" )
+
+ PORT_START("DSWB")
+ CPS1_DIFFICULTY_1( "SW(B)" )
+ PORT_DIPNAME( 0x38, 0x18, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW(B):4,5,6")
+// PORT_DIPSETTING( 0x30, "1" ) // 0x38 energy, smallest damage
+// PORT_DIPSETTING( 0x38, "1" ) // 0x38 energy, small damage
+// PORT_DIPSETTING( 0x28, "1" ) // 0x38 energy, big damage
+// PORT_DIPSETTING( 0x20, "1" ) // 0x38 energy, biggest damage
+ PORT_DIPSETTING( 0x10, "1" ) // 0x20 energy, smallest damage
+ PORT_DIPSETTING( 0x18, "2" ) // 0x20 energy, small damage
+ PORT_DIPSETTING( 0x08, "3" ) // 0x20 energy, big damage
+ PORT_DIPSETTING( 0x00, "4" ) // 0x20 energy, biggest damage
+ PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW(B):7" )
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(B):8" )
+
+ PORT_START("DSWC")
+ PORT_DIPUNUSED_DIPLOC( 0x01, 0x01, "SW(C):1" )
+ PORT_DIPUNUSED_DIPLOC( 0x02, 0x02, "SW(C):2" )
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW(C):3")
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x08, "Freeze" ) PORT_DIPLOCATION("SW(C):4")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
+ PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8")
+ PORT_DIPSETTING( 0x80, "Game" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Test ) )
+INPUT_PORTS_END
+
+/* I guess that bit 8 of DSWB was used for debug purpose :
+ - code at 0x001094 : move players during "attract mode"
+ - code at 0x019b62 ('msword' and 'mswordr1'), 0x019bde ('mswordu') or 0x019c26 ('mswordj') : unknown effect
+ - code at 0x01c322 ('msword' and 'mswordr1'), 0x01c39e ('mswordu') or 0x01c3e0 ('mswordj') : unknown effect
+ These features are not available because of the 'bra' instruction after the test of bit 7. */
+static INPUT_PORTS_START( msword )
+ PORT_INCLUDE( cps1_3b )
+
+ PORT_MODIFY("IN0")
+ PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW )
+
+ PORT_START("DSWA")
+ CPS1_COINAGE_1( "SW(A)" )
+ PORT_DIPNAME( 0x40, 0x40, "2 Coins to Start, 1 to Continue" ) PORT_DIPLOCATION("SW(A):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(A):8" )
+
+ PORT_START("DSWB")
+ PORT_DIPNAME( 0x07, 0x04, "Player's vitality consumption" ) PORT_DIPLOCATION("SW(B):1,2,3") // "Level 1"
+ PORT_DIPSETTING( 0x07, "1 (Easiest)" ) // "Easy 3" (-1 every 28 frames)
+ PORT_DIPSETTING( 0x06, "2" ) // "Easy 2" (-1 every 24 frames)
+ PORT_DIPSETTING( 0x05, "3" ) // "Easy 1" (-1 every 20 frames)
+ PORT_DIPSETTING( 0x04, "4 (Normal)" ) // DEF_STR( Normal ) (-1 every 18 frames)
+ PORT_DIPSETTING( 0x03, "5" ) // "Difficult 1" (-1 every 16 frames)
+ PORT_DIPSETTING( 0x02, "6" ) // "Difficult 2" (-1 every 14 frames)
+ PORT_DIPSETTING( 0x01, "7" ) // "Difficult 3" (-1 every 12 frames)
+ PORT_DIPSETTING( 0x00, "8 (Hardest)" ) // "Difficult 4" (-1 every 8 frames)
+ PORT_DIPNAME( 0x38, 0x38, "Enemy's vitality and attacking power" ) PORT_DIPLOCATION("SW(B):4,5,6") // "Level 2"
+ PORT_DIPSETTING( 0x20, "1 (Easiest)" ) // "Easy 3"
+ PORT_DIPSETTING( 0x28, "2" ) // "Easy 2"
+ PORT_DIPSETTING( 0x30, "3" ) // "Easy 1"
+ PORT_DIPSETTING( 0x38, "4 (Normal)" ) // DEF_STR( Normal )
+ PORT_DIPSETTING( 0x18, "5" ) // "Difficult 1"
+ PORT_DIPSETTING( 0x10, "6" ) // "Difficult 2"
+ PORT_DIPSETTING( 0x08, "7" ) // "Difficult 3"
+ PORT_DIPSETTING( 0x00, "8 (Hardest)" ) // "Difficult 4"
+ PORT_DIPNAME( 0x40, 0x00, "Stage Select" ) PORT_DIPLOCATION("SW(B):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(B):8" )
+
+ PORT_START("DSWC")
+ PORT_DIPNAME( 0x03, 0x03, "Vitality Packs" ) PORT_DIPLOCATION("SW(C):1,2")
+ PORT_DIPSETTING( 0x00, "1" ) // 0x0320
+ PORT_DIPSETTING( 0x03, "2" ) // 0x0640
+ PORT_DIPSETTING( 0x02, "3 (2 when continue)" ) // 0x0960 (0x0640 when continue)
+ PORT_DIPSETTING( 0x01, "4 (3 when continue)" ) // 0x0c80 (0x0960 when continue)
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW(C):3")
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x08, "Freeze" ) PORT_DIPLOCATION("SW(C):4")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
+ PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8")
+ PORT_DIPSETTING( 0x80, "Game" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Test ) )
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( cawing )
+ PORT_INCLUDE( cps1_3b )
+
+ PORT_MODIFY("IN0")
+ PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW )
+
+ PORT_START("DSWA")
+ CPS1_COINAGE_1( "SW(A)" )
+ PORT_DIPNAME( 0x40, 0x40, "2 Coins to Start, 1 to Continue" ) PORT_DIPLOCATION("SW(A):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) // Overrides all other coinage settings
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) ) // according to manual
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(A):8" ) // This switch is not documented
+
+ PORT_START("DSWB")
+ PORT_DIPNAME( 0x07, 0x04, "Difficulty Level (Enemy's Strength)" ) PORT_DIPLOCATION("SW(B):1,2,3")
+ PORT_DIPSETTING( 0x07, "1 (Easiest)" )
+ PORT_DIPSETTING( 0x06, "2" )
+ PORT_DIPSETTING( 0x05, "3" )
+ PORT_DIPSETTING( 0x04, "4 (Normal)" )
+ PORT_DIPSETTING( 0x03, "5" )
+ PORT_DIPSETTING( 0x02, "6" )
+ PORT_DIPSETTING( 0x01, "7" )
+ PORT_DIPSETTING( 0x00, "8 (Hardest)" )
+ PORT_DIPNAME( 0x18, 0x18, "Difficulty Level (Player's Strength)" ) PORT_DIPLOCATION("SW(B):4,5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Easy ) )
+ PORT_DIPSETTING( 0x18, DEF_STR( Normal ) )
+ PORT_DIPSETTING( 0x08, DEF_STR( Hard ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) )
+ PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW(B):6" ) // This switch is not documented
+ PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW(B):7" ) // This switch is not documented
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(B):8" ) // This switch is not documented
+
+ PORT_START("DSWC")
+ PORT_DIPUNUSED_DIPLOC( 0x01, 0x01, "SW(C):1" ) // This switch is not documented
+ PORT_DIPUNUSED_DIPLOC( 0x02, 0x02, "SW(C):2" ) // This switch is not documented
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW(C):3")
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x08, "Freeze" ) PORT_DIPLOCATION("SW(C):4")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
+ PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8")
+ PORT_DIPSETTING( 0x80, "Game" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Test ) )
+INPUT_PORTS_END
+
+/* "Debug" features to be implemented */
+static INPUT_PORTS_START( nemo )
+ PORT_INCLUDE( cps1_3b )
+
+ PORT_MODIFY("IN0")
+ PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW )
+
+ PORT_START("DSWA")
+ CPS1_COINAGE_1( "SW(A)" )
+ PORT_DIPNAME( 0x40, 0x40, "2 Coins to Start, 1 to Continue" ) PORT_DIPLOCATION("SW(A):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(A):8" )
+
+ PORT_START("DSWB")
+ CPS1_DIFFICULTY_1( "SW(B)" )
+ PORT_DIPNAME( 0x18, 0x18, "Life Bar" ) PORT_DIPLOCATION("SW(B):4,5")
+ PORT_DIPSETTING( 0x00, "Minimun" )
+ PORT_DIPSETTING( 0x18, DEF_STR( Medium ) )
+// PORT_DIPSETTING( 0x10, DEF_STR( Medium ) )
+ PORT_DIPSETTING( 0x08, "Maximum" )
+ PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW(B):6" )
+ PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW(B):7" )
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(B):8" )
+
+ PORT_START("DSWC")
+ PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW(C):1,2")
+ PORT_DIPSETTING( 0x02, "1" )
+ PORT_DIPSETTING( 0x03, "2" )
+ PORT_DIPSETTING( 0x01, "3" )
+ PORT_DIPSETTING( 0x00, "4" )
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW(C):3")
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x08, "Freeze" ) PORT_DIPLOCATION("SW(C):4")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
+ PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8")
+ PORT_DIPSETTING( 0x80, "Game" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Test ) ) // To enable the "debug" features
+INPUT_PORTS_END
+
+INPUT_PORTS_START( sf2 )
+ PORT_INCLUDE( cps1_6b )
+
+ PORT_MODIFY("IN0")
+ PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW )
+
+ PORT_START("DSWA")
+ CPS1_COINAGE_1( "SW(A)" )
+ PORT_DIPNAME( 0x40, 0x40, "2 Coins to Start, 1 to Continue" ) PORT_DIPLOCATION("SW(A):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(A):8" )
+
+ PORT_START("DSWB")
+ CPS1_DIFFICULTY_1( "SW(B)" )
+ PORT_DIPUNUSED_DIPLOC( 0x08, 0x08, "SW(B):4" )
+ PORT_DIPUNUSED_DIPLOC( 0x10, 0x10, "SW(B):5" )
+ PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW(B):6" )
+ PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW(B):7" )
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(B):8" )
+
+ PORT_START("DSWC")
+ PORT_DIPUNUSED_DIPLOC( 0x01, 0x01, "SW(C):1" )
+ PORT_DIPUNUSED_DIPLOC( 0x02, 0x02, "SW(C):2" )
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW(C):3")
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x08, "Freeze" ) PORT_DIPLOCATION("SW(C):4")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
+ PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8")
+ PORT_DIPSETTING( 0x80, "Game" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Test ) )
+
+INPUT_PORTS_END
+
+/* Needs further checking */
+static INPUT_PORTS_START( sf2j )
+ PORT_INCLUDE( sf2 )
+
+ PORT_MODIFY("DSWB")
+ PORT_DIPNAME( 0x08, 0x00, "2 Players Game" ) PORT_DIPLOCATION("SW(B):4")
+ PORT_DIPSETTING( 0x08, "1 Credit/No Continue" )
+ PORT_DIPSETTING( 0x00, "2 Credits/Winner Continue" ) //Winner stays, loser pays, in other words.
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( sf2hack )
+ PORT_INCLUDE( sf2 )
+
+ PORT_MODIFY("IN2") /* Extra buttons */
+ PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("P1 Short Kick") PORT_PLAYER(1)
+ PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("P1 Forward Kick") PORT_PLAYER(1)
+ PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("P1 Roundhouse Kick") PORT_PLAYER(1)
+ PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("P2 Short Kick") PORT_PLAYER(2)
+ PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("P2 Forward Kick") PORT_PLAYER(2)
+ PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("P2 Roundhouse Kick") PORT_PLAYER(2)
+ PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( sf2m2 )
+ PORT_INCLUDE( sf2hack )
+
+ PORT_MODIFY("DSWB")
+ PORT_DIPNAME( 0x10, 0x00, "It needs to be High" ) PORT_DIPLOCATION("SW(B):5")
+ PORT_DIPSETTING( 0x10, DEF_STR ( Low ) )
+ PORT_DIPSETTING( 0x00, DEF_STR ( High ) )
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( sf2m4 )
+ PORT_INCLUDE( sf2hack )
+
+ PORT_MODIFY("DSWB")
+ PORT_DIPNAME( 0x08, 0x00, "2 Players Game" ) PORT_DIPLOCATION("SW(B):4")
+ PORT_DIPSETTING( 0x08, "1 Credit/No Continue" )
+ PORT_DIPSETTING( 0x00, "2 Credits/Winner Continue" ) //Winner stays, loser pays, in other words.
+INPUT_PORTS_END
+
+/* SWB.4, SWB.5 and SWB.6 need to be enabled simultaneously for turbo mode */
+static INPUT_PORTS_START( sf2amf )
+ PORT_INCLUDE( sf2hack )
+
+ PORT_MODIFY("DSWB")
+ PORT_DIPNAME( 0x08, 0x08, "Turbo Mode Switch 1 of 3" ) PORT_DIPLOCATION("SW(B):4")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, "Turbo Mode Switch 2 of 3" ) PORT_DIPLOCATION("SW(B):5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x20, "Turbo Mode Switch 3 of 3" ) PORT_DIPLOCATION("SW(B):6")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( 3wonders )
+ PORT_INCLUDE( cps1_3b )
+
+ PORT_MODIFY("IN0")
+ PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW )
+
+ PORT_START("DSWA")
+ CPS1_COINAGE_1( "SW(A)" )
+ PORT_DIPNAME( 0x40, 0x40, "2 Coins to Start, 1 to Continue" ) PORT_CONDITION("DSWA", 0x3f,NOTEQUALS,0x00) PORT_DIPLOCATION("SW(A):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x40, DEF_STR( Free_Play ) ) PORT_CONDITION("DSWA", 0x3f, EQUALS, 0x00) PORT_DIPLOCATION("SW(A):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ /* Free Play: ALL bits 0 to 7 must be ON ; 4C_1C, 4C_1C, 2 Coins to Start, 1 to Continue ON */
+ PORT_DIPNAME( 0x80, 0x80, "Freeze" ) PORT_DIPLOCATION("SW(A):8")
+ PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+
+ PORT_START("DSWB")
+ PORT_DIPNAME( 0x03, 0x02, "Lives (Midnight Wanderers)" ) PORT_DIPLOCATION("SW(B):1,2")
+ PORT_DIPSETTING( 0x03, "1" )
+ PORT_DIPSETTING( 0x02, "2" )
+ PORT_DIPSETTING( 0x01, "3" )
+ PORT_DIPSETTING( 0x00, "5" )
+ PORT_DIPNAME( 0x0c, 0x08, "Difficulty (Midnight Wanderers)" ) PORT_DIPLOCATION("SW(B):3,4")
+ PORT_DIPSETTING( 0x0c, DEF_STR( Easy ) )
+ PORT_DIPSETTING( 0x08, DEF_STR( Normal ) )
+ PORT_DIPSETTING( 0x04, DEF_STR( Hard ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) )
+ PORT_DIPNAME( 0x30, 0x10, "Lives (Chariot)" ) PORT_DIPLOCATION("SW(B):5,6")
+ PORT_DIPSETTING( 0x30, "1" )
+ PORT_DIPSETTING( 0x20, "2" )
+ PORT_DIPSETTING( 0x10, "3" )
+ PORT_DIPSETTING( 0x00, "5" )
+ PORT_DIPNAME( 0xc0, 0x80, "Difficulty (Chariot)" ) PORT_DIPLOCATION("SW(B):7,8")
+ PORT_DIPSETTING( 0xc0, DEF_STR( Easy ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( Normal ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( Hard ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) )
+
+ PORT_START("DSWC")
+ PORT_DIPNAME( 0x03, 0x01, "Lives (Don't Pull)" ) PORT_DIPLOCATION("SW(C):1,2")
+ PORT_DIPSETTING( 0x03, "1" )
+ PORT_DIPSETTING( 0x02, "2" )
+ PORT_DIPSETTING( 0x01, "3" )
+ PORT_DIPSETTING( 0x00, "5" )
+ PORT_DIPNAME( 0x0c, 0x08, "Difficulty (Don't Pull)" ) PORT_DIPLOCATION("SW(C):3,4")
+ PORT_DIPSETTING( 0x0c, DEF_STR( Easy ) )
+ PORT_DIPSETTING( 0x08, DEF_STR( Normal ) )
+ PORT_DIPSETTING( 0x04, DEF_STR( Hard ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
+ PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8")
+ PORT_DIPSETTING( 0x80, "Game" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Test ) )
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( kod )
+ PORT_INCLUDE( cps1_3players )
+
+ PORT_MODIFY("IN0")
+ PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW )
+
+ PORT_START("DSWA")
+ CPS1_COINAGE_2( "SW(A)" )
+ PORT_DIPNAME( 0x08, 0x08, "Coin Slots" ) PORT_DIPLOCATION("SW(A):4")
+ PORT_DIPSETTING( 0x00, "1" )
+ PORT_DIPSETTING( 0x08, "3" )
+ PORT_DIPNAME( 0x10, 0x10, "Play Mode" ) PORT_DIPLOCATION("SW(A):5")
+ PORT_DIPSETTING( 0x00, "2 Players" )
+ PORT_DIPSETTING( 0x10, "3 Players" )
+ PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW(A):6" )
+ PORT_DIPNAME( 0x40, 0x40, "2 Coins to Start, 1 to Continue" ) PORT_DIPLOCATION("SW(A):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(A):8" )
+
+ PORT_START("DSWB")
+ CPS1_DIFFICULTY_1( "SW(B)" )
+ PORT_DIPNAME( 0x38, 0x38, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW(B):4,5,6")
+ PORT_DIPSETTING( 0x30, "1" )
+ PORT_DIPSETTING( 0x38, "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, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW(B):7,8")
+ PORT_DIPSETTING( 0x80, "80k and every 400k" )
+ PORT_DIPSETTING( 0x40, "160k and every 450k" )
+ PORT_DIPSETTING( 0xc0, "200k and every 450k" )
+ PORT_DIPSETTING( 0x00, DEF_STR( None ) )
+
+ PORT_START("DSWC")
+ PORT_DIPUNUSED_DIPLOC( 0x01, 0x01, "SW(C):1" )
+ PORT_DIPUNUSED_DIPLOC( 0x02, 0x02, "SW(C):2" )
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW(C):3")
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x08, "Freeze" ) PORT_DIPLOCATION("SW(C):4")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
+ PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8")
+ PORT_DIPSETTING( 0x80, "Game" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Test ) )
+INPUT_PORTS_END
+
+/* Needs further checking
+ Same as kod but different "Bonus_life" values */
+static INPUT_PORTS_START( kodr1 )
+ PORT_INCLUDE( kod )
+
+ PORT_MODIFY("DSWB")
+ PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW(B):7,8")
+ PORT_DIPSETTING( 0x80, "80k and every 400k" )
+ PORT_DIPSETTING( 0xc0, "100k and every 450k" )
+ PORT_DIPSETTING( 0x40, "160k and every 450k" )
+ PORT_DIPSETTING( 0x00, DEF_STR( None ) )
+INPUT_PORTS_END
+
+
+INPUT_PORTS_START( captcomm ) // HBMAME
+ PORT_INCLUDE( cps1_4players )
+
+ PORT_MODIFY("IN0")
+ PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW )
+
+ PORT_START("DSWA")
+ CPS1_COINAGE_2( "SW(A)" )
+ PORT_DIPUNUSED_DIPLOC( 0x08, 0x08, "SW(A):4" ) // The manual says to leave these three
+ PORT_DIPUNUSED_DIPLOC( 0x10, 0x10, "SW(A):5" ) // switches off. Does turning them on cause
+ PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW(A):6" ) // any "undesirable" behaviour?
+ PORT_DIPNAME( 0x40, 0x40, "2 Coins to Start, 1 to Continue" ) PORT_DIPLOCATION("SW(A):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(A):8" ) // Unused according to manual
+
+ PORT_START("DSWB")
+ PORT_DIPNAME( 0x07, 0x04, "Difficulty 1" ) PORT_DIPLOCATION("SW(B):1,2,3")
+ PORT_DIPSETTING( 0x07, "1 (Easiest)" )
+ PORT_DIPSETTING( 0x06, "2" )
+ PORT_DIPSETTING( 0x05, "3" )
+ PORT_DIPSETTING( 0x04, "4 (Normal)" )
+ PORT_DIPSETTING( 0x03, "5" )
+ PORT_DIPSETTING( 0x02, "6" )
+ PORT_DIPSETTING( 0x01, "7" )
+ PORT_DIPSETTING( 0x00, "8 (Hardest)" )
+ PORT_DIPNAME( 0x18, 0x10, "Difficulty 2" ) PORT_DIPLOCATION("SW(B):4,5")
+ PORT_DIPSETTING( 0x18, DEF_STR( Easy ) )
+ PORT_DIPSETTING( 0x10, DEF_STR( Normal ) )
+ PORT_DIPSETTING( 0x08, DEF_STR( Hard ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) )
+ PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW(B):6" ) // Manual says to leave this switch off.
+ PORT_DIPNAME( 0xc0, 0xc0, "Play Mode" ) PORT_DIPLOCATION("SW(B):7,8")
+ PORT_DIPSETTING( 0x40, "1 Players" ) // Actual setting is 4 players
+ PORT_DIPSETTING( 0xc0, "2 Players" )
+ PORT_DIPSETTING( 0x80, "3 Players" )
+ PORT_DIPSETTING( 0x00, "4 Players" )
+
+ PORT_START("DSWC")
+ PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW(C):1,2")
+ PORT_DIPSETTING( 0x00, "1" )
+ PORT_DIPSETTING( 0x03, "2" )
+ PORT_DIPSETTING( 0x02, "3" )
+ PORT_DIPSETTING( 0x01, "4" )
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW(C):3")
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x08, "Freeze" ) PORT_DIPLOCATION("SW(C):4")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
+ PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8")
+ PORT_DIPSETTING( 0x80, "Game" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Test ) )
+INPUT_PORTS_END
+
+INPUT_PORTS_START( knights )
+ PORT_INCLUDE( cps1_3players )
+
+ PORT_MODIFY("IN0")
+ PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW )
+
+ PORT_START("DSWA")
+ CPS1_COINAGE_2( "SW(A)" )
+ PORT_DIPUNUSED_DIPLOC( 0x08, 0x08, "SW(A):4" )
+ PORT_DIPUNUSED_DIPLOC( 0x10, 0x10, "SW(A):5" )
+ PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW(A):6" )
+ PORT_DIPNAME( 0x40, 0x40, "2 Coins to Start, 1 to Continue" ) PORT_DIPLOCATION("SW(A):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(A):8" )
+
+ PORT_START("DSWB")
+ PORT_DIPNAME( 0x07, 0x04, "Enemy's attack frequency" ) PORT_DIPLOCATION("SW(B):1,2,3")
+ PORT_DIPSETTING( 0x07, "1 (Easiest)" )
+ PORT_DIPSETTING( 0x06, "2" )
+ PORT_DIPSETTING( 0x05, "3" )
+ PORT_DIPSETTING( 0x04, "4 (Normal)" )
+ PORT_DIPSETTING( 0x03, "5" )
+ PORT_DIPSETTING( 0x02, "6" )
+ PORT_DIPSETTING( 0x01, "7" )
+ PORT_DIPSETTING( 0x00, "8 (Hardest)" )
+ PORT_DIPNAME( 0x38, 0x38, "Enemy's attack power" ) PORT_DIPLOCATION("SW(B):4,5,6")
+ PORT_DIPSETTING( 0x00, "1 (Easiest)" )
+ PORT_DIPSETTING( 0x08, "2" )
+ PORT_DIPSETTING( 0x10, "3" )
+ PORT_DIPSETTING( 0x38, "4 (Normal)" )
+ PORT_DIPSETTING( 0x30, "5" )
+ PORT_DIPSETTING( 0x28, "6" )
+ PORT_DIPSETTING( 0x20, "7" )
+ PORT_DIPSETTING( 0x18, "8 (Hardest)" )
+ PORT_DIPNAME( 0x40, 0x40, "Coin Slots" ) PORT_DIPLOCATION("SW(B):7")
+ PORT_DIPSETTING( 0x00, "1" )
+ PORT_DIPSETTING( 0x40, "3" )
+ PORT_DIPNAME( 0x80, 0x80, "Play Mode" ) PORT_DIPLOCATION("SW(B):8")
+ PORT_DIPSETTING( 0x00, "2 Players" )
+ PORT_DIPSETTING( 0x80, "3 Players" )
+
+ PORT_START("DSWC")
+ PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW(C):1,2")
+ PORT_DIPSETTING( 0x00, "1" )
+ PORT_DIPSETTING( 0x03, "2" )
+ PORT_DIPSETTING( 0x02, "3" )
+ PORT_DIPSETTING( 0x01, "4" )
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW(C):3")
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x08, "Freeze" ) PORT_DIPLOCATION("SW(C):4")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
+ PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8")
+ PORT_DIPSETTING( 0x80, "Game" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Test ) )
+INPUT_PORTS_END
+
+INPUT_PORTS_START( varth )
+ PORT_INCLUDE( cps1_3b )
+
+ PORT_MODIFY("IN0")
+ PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW )
+
+ PORT_START("DSWA")
+ CPS1_COINAGE_1( "SW(A)" )
+ PORT_DIPNAME( 0x40, 0x40, "2 Coins to Start, 1 to Continue" ) PORT_DIPLOCATION("SW(A):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(A):8" )
+
+ PORT_START("DSWB")
+ CPS1_DIFFICULTY_1( "SW(B)" )
+ PORT_DIPNAME( 0x18, 0x10, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW(B):4,5")
+ PORT_DIPSETTING( 0x18, "600k and every 1.400k" )
+ PORT_DIPSETTING( 0x10, "600k 2.000k and 4500k" )
+ PORT_DIPSETTING( 0x08, "1.200k 3.500k" )
+ PORT_DIPSETTING( 0x00, "2000k only" )
+ PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW(B):6" )
+ PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW(B):7" )
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(B):8" )
+
+ PORT_START("DSWC")
+ PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW(C):1,2")
+ PORT_DIPSETTING( 0x02, "1" )
+ PORT_DIPSETTING( 0x01, "2" )
+ PORT_DIPSETTING( 0x03, "3" )
+ PORT_DIPSETTING( 0x00, "4" )
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW(C):3")
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x08, "Freeze" ) PORT_DIPLOCATION("SW(C):4")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
+ PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8")
+ PORT_DIPSETTING( 0x80, "Game" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Test ) )
+INPUT_PORTS_END
+
+/* Needs further checking */
+static INPUT_PORTS_START( cworld2j )
+ PORT_INCLUDE( cps1_quiz )
+
+ PORT_MODIFY("IN0")
+ PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW )
+
+ PORT_START("DSWA")
+ CPS1_COINAGE_2( "SW(A)" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SW(A):4" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW(A):5" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SW(A):6" )
+ PORT_DIPNAME( 0x40, 0x40, "2 Coins to Start, 1 to Continue" ) PORT_DIPLOCATION("SW(A):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x80, 0x80, "Extended Test Mode" ) PORT_DIPLOCATION("SW(A):8")
+ PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+
+ PORT_START("DSWB")
+ PORT_DIPNAME( 0x07, 0x06, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW(B):1,2,3")
+ PORT_DIPSETTING( 0x06, "0" )
+ PORT_DIPSETTING( 0x05, "1" )
+ PORT_DIPSETTING( 0x04, "2" )
+ PORT_DIPSETTING( 0x03, "3" )
+ PORT_DIPSETTING( 0x02, "4" )
+ PORT_DIPNAME( 0x18, 0x18, "Extend" ) PORT_DIPLOCATION("SW(B):4,5")
+ PORT_DIPSETTING( 0x18, "N" )
+ PORT_DIPSETTING( 0x10, "E" )
+ PORT_DIPSETTING( 0x00, "D" )
+ PORT_DIPNAME( 0xe0, 0xe0, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW(B):6,7,8")
+ PORT_DIPSETTING( 0x00, "1" )
+ PORT_DIPSETTING( 0x80, "2" )
+ PORT_DIPSETTING( 0xe0, "3" )
+ PORT_DIPSETTING( 0xa0, "4" )
+ PORT_DIPSETTING( 0xc0, "5" )
+
+ PORT_START("DSWC")
+ PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "SW(C):1" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x02, "SW(C):2" )
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW(C):3")
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x08, "Freeze" ) PORT_DIPLOCATION("SW(C):4")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x40, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7")
+ PORT_DIPSETTING( 0x00, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( Yes ) )
+ PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8")
+ PORT_DIPSETTING( 0x80, "Game" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Test ) )
+
+ PORT_START("IN2") /* check code at 0x000614, 0x0008ac and 0x000e36 */
+ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
+INPUT_PORTS_END
+
+/* Needs further checking */
+static INPUT_PORTS_START( wof )
+ PORT_INCLUDE( cps1_3players )
+
+ PORT_MODIFY("IN0")
+ PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW )
+
+ PORT_START("DSWA") /* (not used, EEPROM) */
+ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("DSWB") /* (not used, EEPROM) */
+ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("DSWC")
+ PORT_DIPNAME( 0x08, 0x08, "Freeze" )
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_BIT( 0xf7, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("IN3") /* Player 4 - not used */
+ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
+
+ PORT_START( "EEPROMIN" )
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, do_read)
+
+ PORT_START( "EEPROMOUT" )
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, di_write)
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, clk_write)
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, cs_write)
+INPUT_PORTS_END
+
+INPUT_PORTS_START( dino )
+ PORT_INCLUDE( cps1_3players )
+
+ PORT_MODIFY("IN0")
+ PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW )
+
+ PORT_START("DSWA") /* (not used, EEPROM) */
+ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("DSWB") /* (not used, EEPROM) */
+ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("DSWC")
+ PORT_DIPNAME( 0x08, 0x08, "Freeze" )
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_BIT( 0xf7, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("IN3") /* Player 4 - not used */
+ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
+
+ PORT_START( "EEPROMIN" )
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, do_read)
+
+ PORT_START( "EEPROMOUT" )
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, di_write)
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, clk_write)
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, cs_write)
+INPUT_PORTS_END
+
+
+static INPUT_PORTS_START( dinoh )
+ PORT_INCLUDE( dino )
+
+ PORT_MODIFY("DSWA")
+ CPS1_COINAGE_2( "SW(A)" )
+ PORT_DIPNAME( 0x08, 0x08, "Coin Slots" ) PORT_DIPLOCATION("SW(B):4")
+ PORT_DIPSETTING( 0x00, "1" )
+ PORT_DIPSETTING( 0x08, "3" ) // This setting can't be used in two-player mode
+ PORT_DIPNAME( 0x10, 0x10, "Play Mode" ) PORT_DIPLOCATION("SW(B):5")
+ PORT_DIPSETTING( 0x00, "2 Players" )
+ PORT_DIPSETTING( 0x10, "3 Players" )
+ PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW(A):6" ) // This switch is not documented in the manual
+ PORT_DIPNAME( 0x40, 0x40, "2 Coins to Start, 1 to Continue" ) PORT_DIPLOCATION("SW(A):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(A):8" ) // This switch is not documented in the manual
+
+ PORT_MODIFY("DSWB")
+ PORT_DIPNAME( 0x07, 0x04, "Difficulty Level 1" ) PORT_DIPLOCATION("SW(B):1,2,3")
+ PORT_DIPSETTING( 0x07, DEF_STR( Easiest ) ) // "01"
+ PORT_DIPSETTING( 0x06, DEF_STR( Easier ) ) // "02"
+ PORT_DIPSETTING( 0x05, DEF_STR( Easy ) ) // "03"
+ PORT_DIPSETTING( 0x04, DEF_STR( Normal ) ) // "04"
+ PORT_DIPSETTING( 0x03, DEF_STR( Medium ) ) // "05"
+ PORT_DIPSETTING( 0x02, DEF_STR( Hard ) ) // "06"
+ PORT_DIPSETTING( 0x01, DEF_STR( Harder ) ) // "07"
+ PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) // "08"
+ PORT_DIPNAME( 0x18, 0x10, "Difficulty Level 2" ) PORT_DIPLOCATION("SW(B):4,5")
+ PORT_DIPSETTING( 0x18, DEF_STR( Easy ) ) // "01"
+ PORT_DIPSETTING( 0x10, DEF_STR( Normal ) ) // "02"
+ PORT_DIPSETTING( 0x08, DEF_STR( Hard ) ) // "03"
+ PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) // "04"
+ PORT_DIPNAME( 0x60, 0x40, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW(B):6,7")
+ PORT_DIPSETTING( 0x60, "300k and 700k" )
+ PORT_DIPSETTING( 0x40, "500k and 1000k" )
+ PORT_DIPSETTING( 0x20, "1000k" )
+ PORT_DIPSETTING( 0x00, DEF_STR( None ) )
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(B):8" )
+
+ PORT_MODIFY("DSWC")
+ PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW(C):1,2")
+ PORT_DIPSETTING( 0x00, "4" )
+ PORT_DIPSETTING( 0x01, "3" )
+ PORT_DIPSETTING( 0x02, "2" )
+ PORT_DIPSETTING( 0x03, "1" )
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW(C):3")
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x08, "Freeze" ) PORT_DIPLOCATION("SW(C):4")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
+ PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8")
+ PORT_DIPSETTING( 0x80, "Game" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Test ) )
+
+ PORT_MODIFY("IN1")
+ PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) 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_MODIFY("IN2") /* Player 3 */
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3)
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3)
+// PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3)
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN3 )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 )
+INPUT_PORTS_END
+
+INPUT_PORTS_START( punisher )
+ PORT_INCLUDE( cps1_2b )
+
+ PORT_MODIFY("IN0")
+ PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW )
+
+ PORT_START("DSWA") /* (not used, EEPROM) */
+ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("DSWB") /* (not used, EEPROM) */
+ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("DSWC")
+ PORT_DIPNAME( 0x08, 0x08, "Freeze" )
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_BIT( 0xf7, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("IN2") /* Player 3 - not used */
+ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
+
+ PORT_START("IN3") /* Player 4 - not used */
+ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
+
+ PORT_START( "EEPROMIN" )
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, do_read)
+
+ PORT_START( "EEPROMOUT" )
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, di_write)
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, clk_write)
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, cs_write)
+INPUT_PORTS_END
+
+
+static INPUT_PORTS_START( punisherbz )
+ PORT_INCLUDE( punisher )
+
+ PORT_MODIFY("DSWA")
+ CPS1_COINAGE_2( "SW(A)" )
+ PORT_DIPNAME( 0x08, 0x08, "2 Coins to Start, 1 to Continue" ) PORT_DIPLOCATION("SW(A):4")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x30, 0x20, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW(A):5,6")
+ PORT_DIPSETTING( 0x30, "1" )
+ PORT_DIPSETTING( 0x20, "2" )
+ PORT_DIPSETTING( 0x10, "3" )
+ PORT_DIPSETTING( 0x00, "4" )
+ PORT_DIPNAME( 0x40, 0x40, "Sound" ) PORT_DIPLOCATION("SW(A):7")
+ PORT_DIPSETTING( 0x40, "Q Sound" )
+ PORT_DIPSETTING( 0x00, "Monaural" )
+ PORT_DIPNAME( 0x80, 0x80, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(A):8")
+ PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+
+ PORT_MODIFY("DSWB")
+ PORT_DIPNAME( 0x07, 0x04, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW(B):1,2,3")
+ PORT_DIPSETTING( 0x07, "Extra Easy" )
+ PORT_DIPSETTING( 0x06, DEF_STR( Very_Easy) )
+ PORT_DIPSETTING( 0x05, DEF_STR( Easy) )
+ PORT_DIPSETTING( 0x04, DEF_STR( Normal) )
+ PORT_DIPSETTING( 0x03, DEF_STR( Hard) )
+ PORT_DIPSETTING( 0x02, DEF_STR( Very_Hard) )
+ PORT_DIPSETTING( 0x01, "Extra Hard" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Hardest) )
+ PORT_DIPNAME( 0x18, 0x10, "Extend" ) PORT_DIPLOCATION("SW(B):4,5")
+ PORT_DIPSETTING( 0x18, "800000" )
+ PORT_DIPSETTING( 0x10, "1800000" )
+ PORT_DIPSETTING( 0x08, "2800000" )
+ PORT_DIPSETTING( 0x00, "No Extend" )
+ PORT_DIPNAME( 0x20, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(B):6")
+ PORT_DIPSETTING( 0x20, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
+ PORT_DIPNAME( 0x40, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(B):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPUNKNOWN_DIPLOC( 0x80, 0x80, "SW(B):8" )
+
+ PORT_MODIFY("DSWC")
+ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_MODIFY("IN1")
+ PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) 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 )
+INPUT_PORTS_END
+
+/* Needs further checking */
+INPUT_PORTS_START( slammast )
+ PORT_INCLUDE( cps1_4players )
+
+ PORT_MODIFY("IN0")
+ PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW )
+
+ PORT_MODIFY("IN1")
+ PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3)
+ PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
+ PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4)
+
+ PORT_START("DSWA") /* (not used, EEPROM) */
+ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("DSWB") /* (not used, EEPROM) */
+ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("DSWC")
+ PORT_DIPNAME( 0x08, 0x08, "Freeze" )
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_BIT( 0xf7, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START( "EEPROMIN" )
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, do_read)
+
+ PORT_START( "EEPROMOUT" )
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, di_write)
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, clk_write)
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, cs_write)
+INPUT_PORTS_END
+
+/* Needs further checking */
+static INPUT_PORTS_START( pnickj )
+ PORT_INCLUDE( cps1_3b )
+
+ PORT_MODIFY("IN0")
+ PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW )
+
+ PORT_START("DSWA")
+ CPS1_COINAGE_2( "SW(A)" )
+ PORT_DIPNAME( 0x08, 0x08, "Coin Slots" ) PORT_DIPLOCATION("SW(A):4")
+ PORT_DIPSETTING( 0x08, "1" )
+ PORT_DIPSETTING( 0x00, "2" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW(A):5" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SW(A):6" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x40, 0x40, "SW(A):7" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x80, 0x80, "SW(A):8" )
+
+ PORT_START("DSWB")
+ CPS1_DIFFICULTY_1( "SW(B)" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SW(B):4" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW(B):5" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SW(B):6" )
+ PORT_DIPNAME( 0xc0, 0xc0, "Vs Play Mode" ) PORT_DIPLOCATION("SW(B):7,8")
+ PORT_DIPSETTING( 0xc0, "1 Game Match" )
+ PORT_DIPSETTING( 0x80, "3 Games Match" )
+ PORT_DIPSETTING( 0x40, "5 Games Match" )
+ PORT_DIPSETTING( 0x00, "7 Games Match" )
+
+ PORT_START("DSWC")
+ PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "SW(C):1" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x02, "SW(C):2" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x04, "SW(C):3" )
+ PORT_DIPNAME( 0x08, 0x08, "Freeze" ) PORT_DIPLOCATION("SW(C):4")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPUNKNOWN_DIPLOC( 0x40, 0x40, "SW(C):7" )
+ PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8")
+ PORT_DIPSETTING( 0x80, "Game" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Test ) )
+INPUT_PORTS_END
+
+/* Needs further checking */
+static INPUT_PORTS_START( qad )
+ PORT_INCLUDE( cps1_quiz )
+
+ PORT_MODIFY("IN0")
+ PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW )
+
+ PORT_START("DSWA")
+ CPS1_COINAGE_2( "SW(A)" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SW(A):4" ) // Manual says these are for coin 2, but they
+ PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW(A):5" ) // coin to setting, but they clearly don't do
+ PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SW(A):6" ) // that.
+ PORT_DIPNAME( 0x40, 0x40, "2 Coins to Start, 1 to Continue" ) PORT_DIPLOCATION("SW(A):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(A):8" )
+
+ PORT_START("DSWB")
+ PORT_DIPNAME( 0x07, 0x04, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW(B):1,2,3")
+// PORT_DIPSETTING( 0x07, DEF_STR( Easiest ) ) // Controls overall difficulty
+ PORT_DIPSETTING( 0x06, DEF_STR( Easiest ) ) // Manual documents duplicate settings
+ PORT_DIPSETTING( 0x05, DEF_STR( Easy ) )
+ PORT_DIPSETTING( 0x04, DEF_STR( Normal ) )
+ PORT_DIPSETTING( 0x03, DEF_STR( Hard ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( Hardest ) )
+// PORT_DIPSETTING( 0x01, DEF_STR( Hardest ) )
+// PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) )
+ PORT_DIPNAME( 0x18, 0x10, "Wisdom (questions to win game)" ) PORT_DIPLOCATION("SW(B):4,5")
+ PORT_DIPSETTING( 0x18, DEF_STR( Easy ) ) // Controls number of needed questions to finish
+ PORT_DIPSETTING( 0x10, DEF_STR( Normal ) )
+ PORT_DIPSETTING( 0x08, DEF_STR( Hard ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) )
+ PORT_DIPNAME( 0xe0, 0xe0, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW(B):6,7,8")
+ PORT_DIPSETTING( 0x60, "1" )
+ PORT_DIPSETTING( 0x80, "2" )
+ PORT_DIPSETTING( 0xa0, "3" )
+ PORT_DIPSETTING( 0xc0, "4" )
+ PORT_DIPSETTING( 0xe0, "5" )
+// PORT_DIPSETTING( 0x40, "1" ) // These three settings are not documented
+// PORT_DIPSETTING( 0x20, "1" )
+// PORT_DIPSETTING( 0x00, "1" )
+
+ PORT_START("DSWC")
+ PORT_DIPUNUSED_DIPLOC( 0x01, 0x01, "SW(C):1" )
+ PORT_DIPUNUSED_DIPLOC( 0x02, 0x02, "SW(C):2" )
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW(C):3")
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x08, "Freeze" ) PORT_DIPLOCATION("SW(C):4")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x20, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x20, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x40, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7")
+ PORT_DIPSETTING( 0x00, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( Yes ) )
+ PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8")
+ PORT_DIPSETTING( 0x80, "Game" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Test ) )
+
+ PORT_START("IN2") /* check code at 0x01d2d2 */
+ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
+INPUT_PORTS_END
+
+/* Needs further checking */
+static INPUT_PORTS_START( qadjr )
+ PORT_INCLUDE( qad )
+
+ PORT_MODIFY("DSWB")
+ PORT_DIPNAME( 0x07, 0x07, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW(B):1,2,3")
+ PORT_DIPSETTING( 0x07, "0" )
+ PORT_DIPSETTING( 0x06, "1" )
+ PORT_DIPSETTING( 0x05, "2" )
+ PORT_DIPSETTING( 0x04, "3" )
+ PORT_DIPSETTING( 0x03, "4" )
+// PORT_DIPSETTING( 0x02, "4" )
+// PORT_DIPSETTING( 0x01, "4" )
+// PORT_DIPSETTING( 0x00, "4" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SW(B):4" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW(B):5" )
+ PORT_DIPNAME( 0xe0, 0xe0, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW(B):6,7,8")
+ PORT_DIPSETTING( 0xa0, "1" )
+ PORT_DIPSETTING( 0xc0, "2" )
+ PORT_DIPSETTING( 0xe0, "3" )
+// PORT_DIPSETTING( 0x00, "1" )
+// PORT_DIPSETTING( 0x20, "1" )
+// PORT_DIPSETTING( 0x80, "1" )
+// PORT_DIPSETTING( 0x40, "2" )
+// PORT_DIPSETTING( 0x60, "3" )
+
+ PORT_MODIFY("IN2") /* check code at 0x000c48 */
+ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("IN3") /* check code at 0x000c3e */
+ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
+INPUT_PORTS_END
+
+/* Needs further checking */
+static INPUT_PORTS_START( qtono2j )
+ PORT_INCLUDE( cps1_quiz )
+
+ PORT_MODIFY("IN0")
+ PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW )
+
+ PORT_START("DSWA")
+ CPS1_COINAGE_2( "SW(A)" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SW(A):4" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW(A):5" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SW(A):6" )
+ PORT_DIPNAME( 0x40, 0x40, "2 Coins to Start, 1 to Continue" ) PORT_DIPLOCATION("SW(A):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPUNKNOWN_DIPLOC( 0x80, 0x80, "SW(A):8" )
+
+ PORT_START("DSWB")
+ CPS1_DIFFICULTY_1( "SW(B)" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SW(B):4" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW(B):5" )
+ PORT_DIPNAME( 0xe0, 0xe0, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW(B):6,7,8")
+ PORT_DIPSETTING( 0x60, "1" )
+ PORT_DIPSETTING( 0x80, "2" )
+ PORT_DIPSETTING( 0xe0, "3" )
+ PORT_DIPSETTING( 0xa0, "4" )
+ PORT_DIPSETTING( 0xc0, "5" )
+// PORT_DIPSETTING( 0x40, "?" )
+// PORT_DIPSETTING( 0x20, "?" )
+// PORT_DIPSETTING( 0x00, "?" )
+
+ PORT_START("DSWC")
+ PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "SW(C):1" )
+ PORT_DIPNAME( 0x02, 0x02, "Infinite Lives (Cheat)") PORT_DIPLOCATION("SW(C):2")
+ PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW(C):3")
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x08, "Freeze" ) PORT_DIPLOCATION("SW(C):4")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x40, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7")
+ PORT_DIPSETTING( 0x00, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( Yes ) )
+ PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8")
+ PORT_DIPSETTING( 0x80, "Game" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Test ) )
+
+ PORT_START("IN2") /* check code at 0x000f80 */
+ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("IN3") /* check code at 0x000f76 */
+ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
+INPUT_PORTS_END
+
+/* Needs further checking */
+static INPUT_PORTS_START( pang3 )
+ PORT_INCLUDE( cps1_3b )
+
+ PORT_MODIFY("IN0")
+ PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW )
+
+ PORT_START("DSWA") /* (not used, EEPROM) */
+ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("DSWB") /* (not used, EEPROM) */
+ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("DSWC")
+ PORT_DIPUNUSED( 0x01, 0x01 )
+ PORT_DIPUNUSED( 0x02, 0x02 )
+ PORT_DIPUNUSED( 0x04, 0x04 )
+ PORT_DIPUNUSED( 0x08, 0x08 )
+ PORT_DIPUNUSED( 0x10, 0x10 )
+ PORT_DIPUNUSED( 0x20, 0x20 )
+ PORT_DIPUNUSED( 0x40, 0x40 )
+ PORT_DIPUNUSED( 0x80, 0x80 ) /* doubles up as an extra service switch */
+
+ PORT_START( "EEPROMIN" )
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, do_read)
+
+ PORT_START( "EEPROMOUT" )
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, di_write)
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, clk_write)
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, cs_write)
+INPUT_PORTS_END
+
+/* Needs further checking */
+static INPUT_PORTS_START( pang3b )
+ PORT_INCLUDE( pang3 )
+
+ PORT_MODIFY("DSWC")
+ PORT_DIPUNUSED( 0x01, 0x01 )
+ PORT_DIPUNUSED( 0x02, 0x02 )
+ PORT_DIPUNUSED( 0x04, 0x04 )
+ PORT_DIPNAME( 0x08, 0x08, "Freeze" )
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPUNUSED( 0x10, 0x10 )
+ PORT_DIPUNUSED( 0x20, 0x20 )
+ PORT_DIPUNUSED( 0x40, 0x40 )
+ PORT_DIPUNUSED( 0x80, 0x80 )
+INPUT_PORTS_END
+
+/* Needs further checking */
+static INPUT_PORTS_START( megaman )
+ PORT_INCLUDE( cps1_3b )
+
+ PORT_MODIFY("IN0")
+ PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW )
+
+ PORT_START("DSWA")
+ PORT_DIPNAME( 0x1f, 0x1f, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW(A):1,2,3,4,5")
+ PORT_DIPSETTING( 0x0f, DEF_STR( 9C_1C ) )
+ PORT_DIPSETTING( 0x10, DEF_STR( 8C_1C ) )
+ PORT_DIPSETTING( 0x11, DEF_STR( 7C_1C ) )
+ PORT_DIPSETTING( 0x12, DEF_STR( 6C_1C ) )
+ PORT_DIPSETTING( 0x13, DEF_STR( 5C_1C ) )
+ PORT_DIPSETTING( 0x14, DEF_STR( 4C_1C ) )
+ PORT_DIPSETTING( 0x15, DEF_STR( 3C_1C ) )
+ PORT_DIPSETTING( 0x16, DEF_STR( 2C_1C ) )
+ PORT_DIPSETTING( 0x0e, "2 Coins to Start, 1 to Continue" )
+ PORT_DIPSETTING( 0x1f, DEF_STR( 1C_1C ) )
+ PORT_DIPSETTING( 0x1e, DEF_STR( 1C_2C ) )
+ PORT_DIPSETTING( 0x1d, DEF_STR( 1C_3C ) )
+ PORT_DIPSETTING( 0x1c, DEF_STR( 1C_4C ) )
+ PORT_DIPSETTING( 0x1b, DEF_STR( 1C_5C ) )
+ PORT_DIPSETTING( 0x1a, DEF_STR( 1C_6C ) )
+ PORT_DIPSETTING( 0x19, DEF_STR( 1C_7C ) )
+ PORT_DIPSETTING( 0x18, DEF_STR( 1C_8C ) )
+ PORT_DIPSETTING( 0x17, DEF_STR( 1C_9C ) )
+ PORT_DIPSETTING( 0x0d, DEF_STR( Free_Play ) )
+ /* 0x00 to 0x0c 1 Coin/1 Credit */
+ PORT_DIPNAME( 0x60, 0x60, "Coin slots" ) PORT_DIPLOCATION("SW(A):6,7")
+// PORT_DIPSETTING( 0x00, "Invalid" )
+ PORT_DIPSETTING( 0x20, "1, Common" )
+ PORT_DIPSETTING( 0x60, "2, Common" )
+ PORT_DIPSETTING( 0x40, "2, Individual" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x80, 0x80, "SW(A):8" )
+
+ PORT_START("DSWB")
+ PORT_DIPNAME( 0x03, 0x02, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW(B):1,2")
+ PORT_DIPSETTING( 0x03, DEF_STR( Easy ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( Normal ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( Hard ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) )
+ PORT_DIPNAME( 0x0c, 0x0c, "Time" ) PORT_DIPLOCATION("SW(B):3,4")
+ PORT_DIPSETTING( 0x0c, "100" )
+ PORT_DIPSETTING( 0x08, "90" )
+ PORT_DIPSETTING( 0x04, "70" )
+ PORT_DIPSETTING( 0x00, "60" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW(B):5" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SW(B):6" )
+ PORT_DIPNAME( 0x40, 0x40, "Voice" ) PORT_DIPLOCATION("SW(B):7")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( On ) )
+ PORT_DIPUNKNOWN_DIPLOC( 0x80, 0x80, "SW(B):8" )
+
+ PORT_START("DSWC")
+ PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):1")
+ PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x02, 0x02, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):2")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( On ) )
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):3")
+ PORT_DIPSETTING( 0x00, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x04, DEF_STR( Yes ) )
+ PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SW(C):4" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW(C):5" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SW(C):6" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x40, 0x40, "SW(C):7" )
+ PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8")
+ PORT_DIPSETTING( 0x80, "Game" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Test ) )
+INPUT_PORTS_END
+
+/* Needs further checking */
+/* Same as 'megaman' but no "Voice" Dip Switch */
+static INPUT_PORTS_START( rockmanj )
+ PORT_INCLUDE(megaman)
+
+ PORT_MODIFY("DSWB")
+ PORT_DIPUNKNOWN_DIPLOC( 0x40, 0x40, "SW(B):7" )
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( wofhfh )
+ PORT_INCLUDE( wof )
+
+ PORT_MODIFY("DSWA")
+ PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW(A):1,2")
+ PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( 1C_3C ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( 1C_4C ) )
+ PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_MODIFY("DSWB")
+ PORT_DIPNAME( 0x07, 0x04, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW(B):1,2,3")
+ PORT_DIPSETTING( 0x07, "Extra Easy" )
+ PORT_DIPSETTING( 0x06, DEF_STR( Very_Easy) )
+ PORT_DIPSETTING( 0x05, DEF_STR( Easy) )
+ PORT_DIPSETTING( 0x04, DEF_STR( Normal) )
+ PORT_DIPSETTING( 0x03, DEF_STR( Hard) )
+ PORT_DIPSETTING( 0x02, DEF_STR( Very_Hard) )
+ PORT_DIPSETTING( 0x01, "Extra Hard" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Hardest) )
+ PORT_DIPNAME( 0x70, 0x60, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW(B):4,5,6")
+ PORT_DIPSETTING( 0x00, "Start 4 Continue 5" )
+ PORT_DIPSETTING( 0x10, "Start 3 Continue 4" )
+ PORT_DIPSETTING( 0x20, "Start 2 Continue 3" )
+ PORT_DIPSETTING( 0x30, "Start 1 Continue 2" )
+ PORT_DIPSETTING( 0x40, "Start 4 Continue 4" )
+ PORT_DIPSETTING( 0x50, "Start 3 Continue 3" )
+ PORT_DIPSETTING( 0x60, "Start 2 Continue 2" )
+ PORT_DIPSETTING( 0x70, "Start 1 Continue 1" )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_MODIFY("DSWC")
+ PORT_DIPNAME( 0x03, 0x03, "Coin Slots" ) PORT_DIPLOCATION("SW(C):1,2")
+// PORT_DIPSETTING( 0x00, "2 Players 1 Shooter" )
+ PORT_DIPSETTING( 0x01, "2 Players 1 Shooter" )
+ PORT_DIPSETTING( 0x02, "3 Players 1 Shooter" )
+ PORT_DIPSETTING( 0x03, "3 Players 3 Shooters" )
+ PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_MODIFY("IN1")
+ PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
+ PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
+
+ PORT_MODIFY("IN2") /* Player 3 */
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN3 ) PORT_NAME("Coin 3 (P3 Button 3 in-game)")
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( ganbare )
+ PORT_START("IN0")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) /* definitely read here in test mode, coin lock prevents it though */
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
+ 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_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("IN1")
+ PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ 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("DSWA")
+ PORT_DIPNAME( 0x01, 0x01, "Medal Setup" ) PORT_DIPLOCATION("SW(A):1")
+ PORT_DIPSETTING( 0x01, "1 Medal 1 Credit" )
+ PORT_DIPSETTING( 0x00, "Don't use" )
+ PORT_DIPNAME( 0x02, 0x02, "Coin Setup" ) PORT_DIPLOCATION("SW(A):2")
+ PORT_DIPSETTING( 0x02, "100 Yen" )
+ PORT_DIPSETTING( 0x00, "10 Yen" )
+ PORT_DIPNAME( 0x1c, 0x1c, "Change Setup" ) PORT_DIPLOCATION("SW(A):3,4,5")
+ PORT_DIPSETTING( 0x04, "12" )
+ PORT_DIPSETTING( 0x00, "11" )
+ PORT_DIPSETTING( 0x1c, "10" )
+ PORT_DIPSETTING( 0x18, "8" )
+ PORT_DIPSETTING( 0x14, "7" )
+ PORT_DIPSETTING( 0x10, "6" )
+ PORT_DIPSETTING( 0x0c, "5" )
+ PORT_DIPSETTING( 0x08, "No change" )
+ PORT_DIPNAME( 0x60, 0x60, "10 Yen Setup" ) PORT_DIPLOCATION("SW(A):6,7")
+ PORT_DIPSETTING( 0x60, DEF_STR( 1C_1C ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( 2C_1C ) )
+ PORT_DIPSETTING( 0x20, DEF_STR( 3C_1C ) )
+ PORT_DIPSETTING( 0x00, "Don't use" )
+ PORT_DIPNAME( 0x80, 0x80, "Payout Setup" ) PORT_DIPLOCATION("SW(A):8")
+ PORT_DIPSETTING( 0x80, "Credit Mode" )
+ PORT_DIPSETTING( 0x00, "Payout Mode" )
+
+ PORT_START("DSWB")
+ PORT_DIPNAME( 0x07, 0x07, "Payout Rate Setup" ) PORT_DIPLOCATION("SW(B):1,2,3")
+ PORT_DIPSETTING( 0x01, "90%" )
+ PORT_DIPSETTING( 0x00, "85%" )
+ PORT_DIPSETTING( 0x07, "80%" )
+ PORT_DIPSETTING( 0x06, "75%" )
+ PORT_DIPSETTING( 0x05, "70%" )
+ PORT_DIPSETTING( 0x04, "65%" )
+ PORT_DIPSETTING( 0x03, "60%" )
+ PORT_DIPSETTING( 0x02, "55%" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SW(B):4" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW(B):5" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SW(B):6" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x40, 0x40, "SW(B):7" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x80, 0x80, "SW(B):8" )
+
+ PORT_START("DSWC")
+ PORT_DIPNAME( 0x03, 0x03, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):1,2")
+ PORT_DIPSETTING( 0x03, DEF_STR( On ) )
+ PORT_DIPSETTING( 0x02, "Every second sound" )
+ PORT_DIPSETTING( 0x01, "Every third sound" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x04, "SW(C):3" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SW(C):4" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW(C):5" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SW(C):6" )
+ PORT_DIPNAME( 0x40, 0x40, "Clear RAM" ) PORT_DIPLOCATION("SW(C):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
+ PORT_DIPNAME( 0x80, 0x80, "Tes Mode Display" ) PORT_DIPLOCATION("SW(C):8")
+ PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+INPUT_PORTS_END
+
+
+static INPUT_PORTS_START( sfzch )
+ PORT_START("IN0") /* IN0 */
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON5) PORT_PLAYER(1)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON5) PORT_PLAYER(2)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE) PORT_NAME(DEF_STR(Pause)) PORT_CODE(KEYCODE_F1) /* pause */
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE ) /* pause */
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1)
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2)
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON6) PORT_PLAYER(1)
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON6) PORT_PLAYER(2)
+
+ PORT_START("DSWA")
+ PORT_DIPNAME( 0xff, 0xff, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0xff, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+
+ PORT_START("DSWB")
+ PORT_DIPNAME( 0xff, 0xff, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0xff, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+
+ PORT_START("DSWC")
+ PORT_DIPNAME( 0xff, 0xff, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0xff, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+
+ 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
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP) PORT_PLAYER(1) PORT_8WAY
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1) PORT_PLAYER(1)
+ 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_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 )
+
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( wofch )
+ PORT_INCLUDE( sfzch )
+
+ PORT_START( "EEPROMIN" )
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, do_read)
+
+ PORT_START( "EEPROMOUT" )
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, di_write)
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, clk_write)
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, cs_write)
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( pokonyan )
+ PORT_INCLUDE( cps1_3b )
+
+ PORT_START("DSWA")
+ PORT_DIPNAME( 0x03, 0x02, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW(A):1,2")
+ PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( 3C_1C ) )
+ PORT_DIPSETTING( 0x03, DEF_STR( 2C_1C ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( 1C_1C ) )
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW(A):3")
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW(A):4")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW(A):5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW(A):6")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW(A):7") // not listed in service mode, but left/right don't seem to work otherwise? maybe tied to some cabinet sensor?
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW(A):8")
+ PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+
+ PORT_START("DSWB")
+ PORT_DIPNAME( 0x03, 0x03, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(B):1,2")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x01, "Every 4" )
+ PORT_DIPSETTING( 0x02, "Every 2" )
+ PORT_DIPSETTING( 0x03, DEF_STR( On ) )
+ PORT_DIPNAME( 0x04, 0x00, "Prize Mode" ) PORT_DIPLOCATION("SW(B):3")
+ PORT_DIPSETTING( 0x00, "Not Used" )
+ PORT_DIPSETTING( 0x04, "Used" )
+ PORT_DIPNAME( 0x08, 0x08, "Credit Mode" ) PORT_DIPLOCATION("SW(B):4")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, "Max Stage" ) PORT_DIPLOCATION("SW(B):5")
+ PORT_DIPSETTING( 0x00, "2" )
+ PORT_DIPSETTING( 0x10, "3" )
+ PORT_DIPNAME( 0x20, 0x20, "Card Check" ) PORT_DIPLOCATION("SW(B):6")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW(B):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW(B):8")
+ PORT_DIPSETTING( 0x00, "1.0 sec" )
+ PORT_DIPSETTING( 0x80, "1.2 sec" )
+
+ PORT_START("DSWC")
+ PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW(C):1")
+ PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x02, 0x02, "Body Check") PORT_DIPLOCATION("SW(C):2")
+ PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW(C):3")
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x08, "Screen Stop" ) PORT_DIPLOCATION("SW(C):4")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW(C):6")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW(C):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_SERVICE_DIPLOC( 0x80, IP_ACTIVE_LOW, "SW(C):8" )
+INPUT_PORTS_END
+
+/*
+A Final Fight board with mismatched USA and Japan GFX proves that the columns
+of the 8x8 tilemap alternate between sides of the 16x16 tile resulting
+in a corrupt WDUD screen. ffightub is now fixed since a genuine pcb surfaced.
+*/
+
+static const gfx_layout cps1_layout8x8 =
+{
+ 8,8,
+ RGN_FRAC(1,1),
+ 4,
+ { 24, 16, 8, 0 },
+ { STEP8(0, 1) },
+ { STEP8(0, 4*16) },
+ 64*8
+};
+
+static const gfx_layout cps1_layout8x8_2 =
+{
+ 8,8,
+ RGN_FRAC(1,1),
+ 4,
+ { 24, 16, 8, 0 },
+ { STEP8(32, 1) },
+ { STEP8(0, 4*16) },
+ 64*8
+};
+
+static const gfx_layout cps1_layout16x16 =
+{
+ 16,16,
+ RGN_FRAC(1,1),
+ 4,
+ { 24, 16, 8, 0 },
+ { STEP8(0, 1), STEP8(32, 1) },
+ { STEP16(0, 4*16) },
+ 4*16*16
+};
+
+static const gfx_layout cps1_layout32x32 =
+{
+ 32,32,
+ RGN_FRAC(1,1),
+ 4,
+ { 24, 16, 8, 0 },
+ { STEP8(0, 1), STEP8(32, 1), STEP8(64, 1), STEP8(96, 1) },
+ { STEP32(0, 4*32) },
+ 4*32*32
+};
+
+GFXDECODE_START( cps1 )
+ GFXDECODE_ENTRY( "gfx", 0, cps1_layout8x8, 0, 0x100 )
+ GFXDECODE_ENTRY( "gfx", 0, cps1_layout8x8_2, 0, 0x100 )
+ GFXDECODE_ENTRY( "gfx", 0, cps1_layout16x16, 0, 0x100 )
+ GFXDECODE_ENTRY( "gfx", 0, cps1_layout32x32, 0, 0x100 )
+GFXDECODE_END
+
+
+
+/********************************************************************
+*
+* Machine Driver macro
+* ====================
+*
+* Abusing the pre-processor.
+*
+********************************************************************/
+
+MACHINE_START_MEMBER(cps_state,common)
+{
+}
+
+MACHINE_START_MEMBER(cps_state,cps1)
+{
+ MACHINE_START_CALL_MEMBER(common);
+ membank("bank1")->configure_entries(0, 2, memregion("audiocpu")->base() + 0x10000, 0x4000);
+}
+
+MACHINE_START_MEMBER(cps_state,qsound)
+{
+ MACHINE_START_CALL_MEMBER(common);
+ membank("bank1")->configure_entries(0, 6, memregion("audiocpu")->base() + 0x10000, 0x4000);
+}
+
+static MACHINE_CONFIG_START( cps1_10MHz, cps_state )
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", M68000, XTAL_10MHz ) /* verified on pcb */
+ MCFG_CPU_PROGRAM_MAP(main_map)
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", cps_state, cps1_interrupt)
+
+ MCFG_CPU_ADD("audiocpu", Z80, XTAL_3_579545MHz) /* verified on pcb */
+ MCFG_CPU_PROGRAM_MAP(sub_map)
+
+ MCFG_MACHINE_START_OVERRIDE(cps_state,cps1)
+
+ /* video hardware */
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_RAW_PARAMS(CPS_PIXEL_CLOCK, CPS_HTOTAL, CPS_HBEND, CPS_HBSTART, CPS_VTOTAL, CPS_VBEND, CPS_VBSTART)
+ MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_cps1)
+ MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(cps_state, screen_vblank_cps1))
+ MCFG_SCREEN_PALETTE("palette")
+
+ MCFG_GFXDECODE_ADD("gfxdecode", "palette", cps1)
+ MCFG_PALETTE_ADD("palette", 0xc00)
+
+ MCFG_VIDEO_START_OVERRIDE(cps_state, cps1)
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+
+ MCFG_GENERIC_LATCH_8_ADD("soundlatch")
+ MCFG_GENERIC_LATCH_8_ADD("soundlatch2")
+
+ MCFG_YM2151_ADD("2151", XTAL_3_579545MHz) /* verified on pcb */
+ MCFG_YM2151_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
+ MCFG_SOUND_ROUTE(0, "mono", 0.35)
+ MCFG_SOUND_ROUTE(1, "mono", 0.35)
+
+ /* CPS PPU is fed by a 16mhz clock,pin 117 outputs a 4mhz clock which is divided by 4 using 2 74ls74 */
+ MCFG_OKIM6295_ADD("oki", XTAL_16MHz/4/4, OKIM6295_PIN7_HIGH) // pin 7 can be changed by the game code, see f006 on z80
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
+MACHINE_CONFIG_END
+
+MACHINE_CONFIG_DERIVED( cps1_12MHz, cps1_10MHz )
+
+ /* basic machine hardware */
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_CLOCK( XTAL_12MHz ) /* verified on pcb */
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( pang3, cps1_12MHz )
+
+ /* basic machine hardware */
+ MCFG_EEPROM_SERIAL_93C46_ADD("eeprom")
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( ganbare, cps1_10MHz )
+
+ /* basic machine hardware */
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", cps_state, ganbare_interrupt, "screen", 0, 1) // need to investigate more
+
+ MCFG_M48T35_ADD("m48t35")
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( qsound, cps1_12MHz )
+
+ /* basic machine hardware */
+ MCFG_CPU_REPLACE("maincpu", M68000, XTAL_12MHz ) /* verified on pcb */
+ MCFG_CPU_PROGRAM_MAP(qsound_main_map)
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", cps_state, cps1_interrupt)
+
+ MCFG_CPU_REPLACE("audiocpu", Z80, XTAL_8MHz) /* verified on pcb */
+ MCFG_CPU_PROGRAM_MAP(qsound_sub_map)
+ MCFG_CPU_DECRYPTED_OPCODES_MAP(qsound_decrypted_opcodes_map)
+ MCFG_CPU_PERIODIC_INT_DRIVER(cps_state, irq0_line_hold, 250) // measured (cps2.c)
+
+ MCFG_MACHINE_START_OVERRIDE(cps_state, qsound)
+
+ MCFG_EEPROM_SERIAL_93C46_8BIT_ADD("eeprom")
+
+ /* sound hardware */
+ MCFG_DEVICE_REMOVE("mono")
+ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
+
+ //MCFG_DEVICE_REMOVE("soundlatch") // HBMAME
+ //MCFG_DEVICE_REMOVE("soundlatch2") // HBMAME
+ MCFG_DEVICE_REMOVE("2151")
+ MCFG_DEVICE_REMOVE("oki")
+
+ MCFG_QSOUND_ADD("qsound", QSOUND_CLOCK)
+ MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
+ MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( wofhfh, cps1_12MHz )
+
+ /* basic machine hardware */
+ MCFG_EEPROM_SERIAL_93C46_8BIT_ADD("eeprom")
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( sf2m3, cps1_12MHz)
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(sf2m3_map)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( sf2m10, cps1_12MHz)
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(sf2m10_map)
+MACHINE_CONFIG_END
+
+
+/***************************************************************************
+
+ Game driver(s)
+
+***************************************************************************/
+
+#define CODE_SIZE 0x400000
+
+/* B-Board 88621B-2 */
+/*
+ There are 4 surface mounted ROMs each on it's own small 88621B-sub satellite board, type HN62404FP-18 package is QFP44.
+ The ROMs on the satellite boards are named and located as follows:
+
+ LW-02 @ 6B
+ LW-08 @ 9B
+ LW-06 @ 9D
+ LW-07 @ 10G
+
+ OTHER:
+ 2 PALs labeled LW621 (near LW_1.2A) and LWI0 (near LW_00.13C)
+ Custom chip - CAPCOM CPS-B-01 (QFP160)
+ NEC D4701AC
+*/
+/* Note that ROMs are labeled left to right, top to bottom, instead of top to bottom, left to right as usual. */
+ROM_START( forgottn )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "lw40.12f", 0x00000, 0x20000, CRC(73e920b7) SHA1(2df12fc1a66f488d06b0927db909da81466d7d07) ) /* Higher program numbers indicates a later revision */
+ ROM_LOAD16_BYTE( "lw41.12h", 0x00001, 0x20000, CRC(58210b9e) SHA1(416cb56a81e74fce6f86c2b2519ba620457b785a) ) /* 1 byte difference: 0x66D4 == 0x0C versus 0x04 in lw15.12h below */
+ ROM_LOAD16_BYTE( "lw42.13f", 0x40000, 0x20000, CRC(bea45994) SHA1(c419f65c5e0c11ae7508ec54412bf6b62fac4f72) )
+ ROM_LOAD16_BYTE( "lw43.13h", 0x40001, 0x20000, CRC(539b2339) SHA1(8a9e452ef8ed05e0b956d36990266657d3077470) )
+ ROM_LOAD16_WORD_SWAP( "lw-07.10g", 0x80000, 0x80000, CRC(fd252a26) SHA1(5cfb097984912a5167a8c7ec4c2e119b642f9970) ) // == lw-07.13e
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "lw_2.2b", 0x000000, 0x20000, CRC(4bd75fee) SHA1(c27bfba951a0dc4f493937ceca335c50a1afeddf) , ROM_SKIP(7) ) // == lw-01.9d
+ ROMX_LOAD( "lw_1.2a", 0x000001, 0x20000, CRC(65f41485) SHA1(fb05dffc87ee2f2b1b6646d54b13671f8eee0429) , ROM_SKIP(7) ) // == lw-01.9d
+ ROMX_LOAD( "lw-08.9b", 0x000002, 0x80000, CRC(25a8e43c) SHA1(d57cee1fc508db2677e84882fb814e4d9ad20543) , ROM_GROUPWORD | ROM_SKIP(6) ) // == lw-08.9f
+ ROMX_LOAD( "lw_18.5e", 0x000004, 0x20000, CRC(b4b6241b) SHA1(92b6b530e18ce27ba8739ebba0d8096b1551026c) , ROM_SKIP(7) )
+ ROMX_LOAD( "lw_17.5c", 0x000005, 0x20000, CRC(c5eea115) SHA1(22fe692eaf9dd00a56a76f46c19fb76bb5e5f0d6) , ROM_SKIP(7) )
+ ROMX_LOAD( "lw_30.8h", 0x000006, 0x20000, CRC(b385954e) SHA1(d33adb5842e7b85d304836bd92a7a96be4ff3694) , ROM_SKIP(7) ) // == lw-12.9g
+ ROMX_LOAD( "lw_29.8f", 0x000007, 0x20000, CRC(7bda1ac6) SHA1(5b8bd05f52798f98ae16efa2ff61c06e28a4e3a0) , ROM_SKIP(7) ) // == lw-12.9g
+ ROMX_LOAD( "lw_4.3b", 0x100000, 0x20000, CRC(50cf757f) SHA1(c70d7d34ac2d6671d40dd372e241ccb60bf3bf2b) , ROM_SKIP(7) ) // == lw-01.9d
+ ROMX_LOAD( "lw_3.3a", 0x100001, 0x20000, CRC(c03ef278) SHA1(ad33b01bd8194025a2ecf7755894d6d638da457a) , ROM_SKIP(7) ) // == lw-01.9d
+ ROMX_LOAD( "lw_20.7e", 0x100004, 0x20000, CRC(df1a3665) SHA1(7ba9c0edc64d4f9a8563533ce723a0a748352a15) , ROM_SKIP(7) )
+ ROMX_LOAD( "lw_19.7c", 0x100005, 0x20000, CRC(15af8440) SHA1(5afd0e833593f1a78487af489fe4384ab68f52b1) , ROM_SKIP(7) )
+ ROMX_LOAD( "lw_32.9h", 0x100006, 0x20000, CRC(30967a15) SHA1(6f6c6ca2f40aa9beec63ed64f0571bebc7c1aa50) , ROM_SKIP(7) ) // == lw-12.9g
+ ROMX_LOAD( "lw_31.9f", 0x100007, 0x20000, CRC(c49d37fb) SHA1(ce400261a0f8d5a9b95d3823f8f52de87b8007f1) , ROM_SKIP(7) ) // == lw-12.9g
+ ROMX_LOAD( "lw-02.6b", 0x200000, 0x80000, CRC(43e6c5c8) SHA1(d3e6c971de0477ec4e178adc82508208dd8b397f) , ROM_GROUPWORD | ROM_SKIP(6) ) // == lw-02.12d
+ ROMX_LOAD( "lw_14.10b", 0x200002, 0x20000, CRC(82862cce) SHA1(727ca4ee55e076185b071a49afc87533fde9ec27) , ROM_SKIP(7) ) // == lw-09.12f
+ ROMX_LOAD( "lw_13.10a", 0x200003, 0x20000, CRC(b81c0e96) SHA1(09f4235786b8ff92a57112669c0385b64477eb01) , ROM_SKIP(7) ) // == lw-09.12f
+ ROMX_LOAD( "lw-06.9d", 0x200004, 0x80000, CRC(5b9edffc) SHA1(6fd8f4a3ab070733b52365ab1945bf86acb2bf62) , ROM_GROUPWORD | ROM_SKIP(6) ) // == lw-06.12e
+ ROMX_LOAD( "lw_26.10e", 0x200006, 0x20000, CRC(57bcd032) SHA1(6db0f96fb909ed02fe4b7ee25fe662ea23f884d2) , ROM_SKIP(7) ) // == lw-13.12g
+ ROMX_LOAD( "lw_25.10c", 0x200007, 0x20000, CRC(bac91554) SHA1(52f5de144193e0f78b9824cc8fd6f934dc19bab0) , ROM_SKIP(7) ) // == lw-13.12g
+ ROMX_LOAD( "lw_16.11b", 0x300002, 0x20000, CRC(40b26554) SHA1(b4b27573d6c329bc2bc4c64fd857475bf2a10877) , ROM_SKIP(7) ) // == lw-09.12f
+ ROMX_LOAD( "lw_15.11a", 0x300003, 0x20000, CRC(1b7d2e07) SHA1(0edf4d4b314fd9c29e7915d5d1adef6f9617f921) , ROM_SKIP(7) ) // == lw-09.12f
+ ROMX_LOAD( "lw_28.11e", 0x300006, 0x20000, CRC(a805ad30) SHA1(baded4ab5fe4e87d53233b5df88edc693c292fc4) , ROM_SKIP(7) ) // == lw-13.12g
+ ROMX_LOAD( "lw_27.11c", 0x300007, 0x20000, CRC(103c1bd2) SHA1(fc7ce74e108c30554139e55651c5348b11e9e3bd) , ROM_SKIP(7) ) // == lw-13.12g
+
+ ROM_REGION( 0x8000, "stars", 0 )
+ ROM_COPY( "gfx", 0x200000, 0x000000, 0x8000 )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "lw_37.13c", 0x00000, 0x08000, CRC(59df2a63) SHA1(dfe1fffc7a17179a80a2ae623e93b30a7d6df20d) ) // == lw_00b.13c
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "lw-03u.12e", 0x00000, 0x20000, CRC(807d051f) SHA1(720e4733787b9b11f4d1cdce0892b69475802844) ) // == lw-03u.14c
+ ROM_LOAD( "lw-04u.13e", 0x20000, 0x20000, CRC(e6cd098e) SHA1(667f6e5736f76a1c4c450c4e2035574ea89d7910) ) // == lw-04u.13c
+
+ 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( "lw621.1a", 0x0000, 0x0117, CRC(5eec6ce9) SHA1(5ec8b60f1f1bdba865b1fa2387987ce99ff4093a) )
+ ROM_LOAD( "lwio.12b", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) )
+ROM_END
+
+/* B-Board 88621B-2 */
+/*
+ These ROMs read from a dead and very unique top board. All EPROMs are type 27C1000, except LW_00.13C which is a 27C512.
+ There are 5 surface mounted ROMs each on it's own small 88621B-sub satellite board, type HN62404FP-18 package is QFP44.
+ The ROMs on the satellite boards are named and located as follows:
+
+ LW-02 @ 6B
+ LW-05 @ 6D (instead of LW_17.5C, LW_18.5E, LW_19.7C & LW_20.7E as above)
+ LW-08 @ 9B
+ LW-06 @ 9D
+ LW-07 @ 10G
+
+ Also known to have LW-13 @ 10D instead of LW_25.10C, LW_26.10E, LW_27.11C & LW_28.11E
+
+ OTHER:
+ 2 PALs labeled LW621 (near LW_1.2A) and LWI0 (near LW_00.13C)
+ Custom chip - CAPCOM CPS-B-01 (QFP160)
+ NEC D4701AC
+*/
+/* Note that ROMs are labeled left to right, top to bottom, instead of top to bottom, left to right as usual. */
+ROM_START( forgottna )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "lw11.12f", 0x00000, 0x20000, CRC(73e920b7) SHA1(2df12fc1a66f488d06b0927db909da81466d7d07) )
+ ROM_LOAD16_BYTE( "lw15.12h", 0x00001, 0x20000, CRC(50d7012d) SHA1(f82a28a835f0a83b26c2c8170b824447b1d7409f) )
+ ROM_LOAD16_BYTE( "lw10.13f", 0x40000, 0x20000, CRC(bea45994) SHA1(c419f65c5e0c11ae7508ec54412bf6b62fac4f72) )
+ ROM_LOAD16_BYTE( "lw14.13h", 0x40001, 0x20000, CRC(539b2339) SHA1(8a9e452ef8ed05e0b956d36990266657d3077470) )
+ ROM_LOAD16_WORD_SWAP( "lw-07.10g", 0x80000, 0x80000, CRC(fd252a26) SHA1(5cfb097984912a5167a8c7ec4c2e119b642f9970) ) // == lw-07.13e
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "lw_2.2b", 0x000000, 0x20000, CRC(4bd75fee) SHA1(c27bfba951a0dc4f493937ceca335c50a1afeddf) , ROM_SKIP(7) ) // == lw-01.9d
+ ROMX_LOAD( "lw_1.2a", 0x000001, 0x20000, CRC(65f41485) SHA1(fb05dffc87ee2f2b1b6646d54b13671f8eee0429) , ROM_SKIP(7) ) // == lw-01.9d
+ ROMX_LOAD( "lw-08.9b", 0x000002, 0x80000, CRC(25a8e43c) SHA1(d57cee1fc508db2677e84882fb814e4d9ad20543) , ROM_GROUPWORD | ROM_SKIP(6) ) // == lw-08.9f
+ ROMX_LOAD( "lw-05.6d", 0x000004, 0x80000, CRC(e4552fd7) SHA1(11147afc475904848458425661473586dd6f60cc) , ROM_GROUPWORD | ROM_SKIP(6) ) // == lw-05.9e
+ ROMX_LOAD( "lw_30.8h", 0x000006, 0x20000, CRC(b385954e) SHA1(d33adb5842e7b85d304836bd92a7a96be4ff3694) , ROM_SKIP(7) ) // == lw-12.9g
+ ROMX_LOAD( "lw_29.8f", 0x000007, 0x20000, CRC(7bda1ac6) SHA1(5b8bd05f52798f98ae16efa2ff61c06e28a4e3a0) , ROM_SKIP(7) ) // == lw-12.9g
+ ROMX_LOAD( "lw_4.3b", 0x100000, 0x20000, CRC(50cf757f) SHA1(c70d7d34ac2d6671d40dd372e241ccb60bf3bf2b) , ROM_SKIP(7) ) // == lw-01.9d
+ ROMX_LOAD( "lw_3.3a", 0x100001, 0x20000, CRC(c03ef278) SHA1(ad33b01bd8194025a2ecf7755894d6d638da457a) , ROM_SKIP(7) ) // == lw-01.9d
+ ROMX_LOAD( "lw_32.9h", 0x100006, 0x20000, CRC(30967a15) SHA1(6f6c6ca2f40aa9beec63ed64f0571bebc7c1aa50) , ROM_SKIP(7) ) // == lw-12.9g
+ ROMX_LOAD( "lw_31.9f", 0x100007, 0x20000, CRC(c49d37fb) SHA1(ce400261a0f8d5a9b95d3823f8f52de87b8007f1) , ROM_SKIP(7) ) // == lw-12.9g
+ ROMX_LOAD( "lw-02.6b", 0x200000, 0x80000, CRC(43e6c5c8) SHA1(d3e6c971de0477ec4e178adc82508208dd8b397f) , ROM_GROUPWORD | ROM_SKIP(6) ) // == lw-02.12d
+ ROMX_LOAD( "lw_14.10b", 0x200002, 0x20000, CRC(82862cce) SHA1(727ca4ee55e076185b071a49afc87533fde9ec27) , ROM_SKIP(7) ) // == lw-09.12f
+ ROMX_LOAD( "lw_13.10a", 0x200003, 0x20000, CRC(b81c0e96) SHA1(09f4235786b8ff92a57112669c0385b64477eb01) , ROM_SKIP(7) ) // == lw-09.12f
+ ROMX_LOAD( "lw-06.9d", 0x200004, 0x80000, CRC(5b9edffc) SHA1(6fd8f4a3ab070733b52365ab1945bf86acb2bf62) , ROM_GROUPWORD | ROM_SKIP(6) ) // == lw-06.12e
+ ROMX_LOAD( "lw_26.10e", 0x200006, 0x20000, CRC(57bcd032) SHA1(6db0f96fb909ed02fe4b7ee25fe662ea23f884d2) , ROM_SKIP(7) ) // == lw-13.12g
+ ROMX_LOAD( "lw_25.10c", 0x200007, 0x20000, CRC(bac91554) SHA1(52f5de144193e0f78b9824cc8fd6f934dc19bab0) , ROM_SKIP(7) ) // == lw-13.12g
+ ROMX_LOAD( "lw_16.11b", 0x300002, 0x20000, CRC(40b26554) SHA1(b4b27573d6c329bc2bc4c64fd857475bf2a10877) , ROM_SKIP(7) ) // == lw-09.12f
+ ROMX_LOAD( "lw_15.11a", 0x300003, 0x20000, CRC(1b7d2e07) SHA1(0edf4d4b314fd9c29e7915d5d1adef6f9617f921) , ROM_SKIP(7) ) // == lw-09.12f
+ ROMX_LOAD( "lw_28.11e", 0x300006, 0x20000, CRC(a805ad30) SHA1(baded4ab5fe4e87d53233b5df88edc693c292fc4) , ROM_SKIP(7) ) // == lw-13.12g
+ ROMX_LOAD( "lw_27.11c", 0x300007, 0x20000, CRC(103c1bd2) SHA1(fc7ce74e108c30554139e55651c5348b11e9e3bd) , ROM_SKIP(7) ) // == lw-13.12g
+
+ ROM_REGION( 0x8000, "stars", 0 )
+ ROM_COPY( "gfx", 0x200000, 0x000000, 0x8000 )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "lw_00.13c", 0x00000, 0x08000, CRC(59df2a63) SHA1(dfe1fffc7a17179a80a2ae623e93b30a7d6df20d) ) // == lw_00b.14a
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "lw-03u.12e", 0x00000, 0x20000, CRC(807d051f) SHA1(720e4733787b9b11f4d1cdce0892b69475802844) ) // == lw-03u.14c
+ ROM_LOAD( "lw-04u.13e", 0x20000, 0x20000, CRC(e6cd098e) SHA1(667f6e5736f76a1c4c450c4e2035574ea89d7910) ) // == lw-04u.13c
+
+ 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( "lw621.1a", 0x0000, 0x0117, CRC(5eec6ce9) SHA1(5ec8b60f1f1bdba865b1fa2387987ce99ff4093a) )
+ ROM_LOAD( "lwio.12b", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) )
+ROM_END
+
+/* B-Board 88621B-2 */
+/* This set comes from a USA board with the same pcb layout of the parent forgottn, but uses one more surface mounted ROM
+ named LW-13 and located @ 10D instead of LW_25.10C, LW_26.10E, LW_27.11C, LW_28.11E EPROMs. */
+/* Note that ROMs are labeled left to right, top to bottom, instead of top to bottom, left to right as usual. */
+ROM_START( forgottnu )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "lw11c.12f", 0x00000, 0x20000, CRC(e62742b6) SHA1(39dd3bdd405a8217d8816567d4f2014fc77f5ce8) )
+ ROM_LOAD16_BYTE( "lw15c.12h", 0x00001, 0x20000, CRC(1b70f216) SHA1(f200f615dca8aa23d166e74b8baa9a8863ee7a95) )
+ ROM_LOAD16_BYTE( "lw10c.13f", 0x40000, 0x20000, CRC(8f5ea3f5) SHA1(c3e43659bd7e03ec3d5c79647db380bde391b0f1) )
+ ROM_LOAD16_BYTE( "lw14c.13h", 0x40001, 0x20000, CRC(708e7472) SHA1(44f82db41ffd1eece2d3f3c977f481fd84dfdbf3) )
+ ROM_LOAD16_WORD_SWAP( "lw-07.10g", 0x80000, 0x80000, CRC(fd252a26) SHA1(5cfb097984912a5167a8c7ec4c2e119b642f9970) ) // == lw-07.13e
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "lw_2.2b", 0x000000, 0x20000, CRC(4bd75fee) SHA1(c27bfba951a0dc4f493937ceca335c50a1afeddf) , ROM_SKIP(7) ) // == lw-01.9d
+ ROMX_LOAD( "lw_1.2a", 0x000001, 0x20000, CRC(65f41485) SHA1(fb05dffc87ee2f2b1b6646d54b13671f8eee0429) , ROM_SKIP(7) ) // == lw-01.9d
+ ROMX_LOAD( "lw-08.9b", 0x000002, 0x80000, CRC(25a8e43c) SHA1(d57cee1fc508db2677e84882fb814e4d9ad20543) , ROM_GROUPWORD | ROM_SKIP(6) ) // == lw-08.9f
+ ROMX_LOAD( "lw-05.6d", 0x000004, 0x80000, CRC(e4552fd7) SHA1(11147afc475904848458425661473586dd6f60cc) , ROM_GROUPWORD | ROM_SKIP(6) ) // == lw-05.9e
+ ROMX_LOAD( "lw_30.8h", 0x000006, 0x20000, CRC(b385954e) SHA1(d33adb5842e7b85d304836bd92a7a96be4ff3694) , ROM_SKIP(7) ) // == lw-12.9g
+ ROMX_LOAD( "lw_29.8f", 0x000007, 0x20000, CRC(7bda1ac6) SHA1(5b8bd05f52798f98ae16efa2ff61c06e28a4e3a0) , ROM_SKIP(7) ) // == lw-12.9g
+ ROMX_LOAD( "lw_4.3b", 0x100000, 0x20000, CRC(50cf757f) SHA1(c70d7d34ac2d6671d40dd372e241ccb60bf3bf2b) , ROM_SKIP(7) ) // == lw-01.9d
+ ROMX_LOAD( "lw_3.3a", 0x100001, 0x20000, CRC(c03ef278) SHA1(ad33b01bd8194025a2ecf7755894d6d638da457a) , ROM_SKIP(7) ) // == lw-01.9d
+ ROMX_LOAD( "lw_32.9h", 0x100006, 0x20000, CRC(30967a15) SHA1(6f6c6ca2f40aa9beec63ed64f0571bebc7c1aa50) , ROM_SKIP(7) ) // == lw-12.9g
+ ROMX_LOAD( "lw_31.9f", 0x100007, 0x20000, CRC(c49d37fb) SHA1(ce400261a0f8d5a9b95d3823f8f52de87b8007f1) , ROM_SKIP(7) ) // == lw-12.9g
+ ROMX_LOAD( "lw-02.6b", 0x200000, 0x80000, CRC(43e6c5c8) SHA1(d3e6c971de0477ec4e178adc82508208dd8b397f) , ROM_GROUPWORD | ROM_SKIP(6) ) // == lw-02.12d
+ ROMX_LOAD( "lw_14.10b", 0x200002, 0x20000, CRC(82862cce) SHA1(727ca4ee55e076185b071a49afc87533fde9ec27) , ROM_SKIP(7) ) // == lw-09.12f
+ ROMX_LOAD( "lw_13.10a", 0x200003, 0x20000, CRC(b81c0e96) SHA1(09f4235786b8ff92a57112669c0385b64477eb01) , ROM_SKIP(7) ) // == lw-09.12f
+ ROMX_LOAD( "lw-06.9d", 0x200004, 0x80000, CRC(5b9edffc) SHA1(6fd8f4a3ab070733b52365ab1945bf86acb2bf62) , ROM_GROUPWORD | ROM_SKIP(6) ) // == lw-06.12e
+ ROMX_LOAD( "lw-13.10d", 0x200006, 0x80000, CRC(8e058ef5) SHA1(00f2c0050fd106276ea5398511c5861ebfbc0d10) , ROM_GROUPWORD | ROM_SKIP(6) ) // == lw-13.12g
+ ROMX_LOAD( "lw_16.11b", 0x300002, 0x20000, CRC(40b26554) SHA1(b4b27573d6c329bc2bc4c64fd857475bf2a10877) , ROM_SKIP(7) ) // == lw-09.12f
+ ROMX_LOAD( "lw_15.11a", 0x300003, 0x20000, CRC(1b7d2e07) SHA1(0edf4d4b314fd9c29e7915d5d1adef6f9617f921) , ROM_SKIP(7) ) // == lw-09.12f
+
+ ROM_REGION( 0x8000, "stars", 0 )
+ ROM_COPY( "gfx", 0x200000, 0x000000, 0x8000 )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "lw_00.13c", 0x00000, 0x08000, CRC(59df2a63) SHA1(dfe1fffc7a17179a80a2ae623e93b30a7d6df20d) ) // == lw_00b.14a
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "lw-03u.12e", 0x00000, 0x20000, CRC(807d051f) SHA1(720e4733787b9b11f4d1cdce0892b69475802844) ) // == lw-03u.14c
+ ROM_LOAD( "lw-04u.13e", 0x20000, 0x20000, CRC(e6cd098e) SHA1(667f6e5736f76a1c4c450c4e2035574ea89d7910) ) // == lw-04u.13c
+
+ 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( "lw621.1a", 0x0000, 0x0117, CRC(5eec6ce9) SHA1(5ec8b60f1f1bdba865b1fa2387987ce99ff4093a) )
+ ROM_LOAD( "lwio.12b", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) )
+ROM_END
+
+/* B-Board 88618B-2 */
+/* Note that this set is equivalent to forgottnu, but ROMs use the 88618B-2 B-Board layout. */
+ROM_START( forgottnu1 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "lw11c.14f", 0x00000, 0x20000, CRC(e62742b6) SHA1(39dd3bdd405a8217d8816567d4f2014fc77f5ce8) )
+ ROM_LOAD16_BYTE( "lw15c.14g", 0x00001, 0x20000, CRC(1b70f216) SHA1(f200f615dca8aa23d166e74b8baa9a8863ee7a95) )
+ ROM_LOAD16_BYTE( "lw10c.13f", 0x40000, 0x20000, CRC(8f5ea3f5) SHA1(c3e43659bd7e03ec3d5c79647db380bde391b0f1) )
+ ROM_LOAD16_BYTE( "lw14c.13g", 0x40001, 0x20000, CRC(708e7472) SHA1(44f82db41ffd1eece2d3f3c977f481fd84dfdbf3) )
+ ROM_LOAD16_WORD_SWAP( "lw-07.13e", 0x80000, 0x80000, CRC(fd252a26) SHA1(5cfb097984912a5167a8c7ec4c2e119b642f9970) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "lw-01.9d", 0x000000, 0x80000, CRC(0318f298) SHA1(178ffd6da7bf845e30abf1bfc38a469cd319a73f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "lw-08.9f", 0x000002, 0x80000, CRC(25a8e43c) SHA1(d57cee1fc508db2677e84882fb814e4d9ad20543) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "lw-05.9e", 0x000004, 0x80000, CRC(e4552fd7) SHA1(11147afc475904848458425661473586dd6f60cc) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "lw-12.9g", 0x000006, 0x80000, CRC(8e6a832b) SHA1(d63a1331fda2365f090fa31950098f321a720ea8) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "lw-02.12d", 0x200000, 0x80000, CRC(43e6c5c8) SHA1(d3e6c971de0477ec4e178adc82508208dd8b397f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "lw-09.12f", 0x200002, 0x80000, CRC(899cb4ad) SHA1(95e61af338945e690f2a82746feba3871ea224eb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "lw-06.12e", 0x200004, 0x80000, CRC(5b9edffc) SHA1(6fd8f4a3ab070733b52365ab1945bf86acb2bf62) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "lw-13.12g", 0x200006, 0x80000, CRC(8e058ef5) SHA1(00f2c0050fd106276ea5398511c5861ebfbc0d10) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x8000, "stars", 0 )
+ ROM_COPY( "gfx", 0x200000, 0x000000, 0x8000 )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "lw_00.14a", 0x00000, 0x08000, CRC(59df2a63) SHA1(dfe1fffc7a17179a80a2ae623e93b30a7d6df20d) ) // == lw_00b.14a
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "lw-03u.14c", 0x00000, 0x20000, CRC(807d051f) SHA1(720e4733787b9b11f4d1cdce0892b69475802844) )
+ ROM_LOAD( "lw-04u.13c", 0x20000, 0x20000, CRC(e6cd098e) SHA1(667f6e5736f76a1c4c450c4e2035574ea89d7910) )
+
+ 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( "lwchr.3a", 0x0000, 0x0117, CRC(54ed4c39) SHA1(961309335dc1c84482ebe99ea938b32d3a6ae9a8) )
+ ROM_LOAD( "lwio.15e", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) )
+ROM_END
+
+/* B-Board 88618B-2 */
+ROM_START( forgottnua )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "lwu_11a.14f", 0x00000, 0x20000, CRC(ddf78831) SHA1(b9c815613efdfde933d4500b588798b7fb4c1854) )
+ ROM_LOAD16_BYTE( "lwu_15a.14g", 0x00001, 0x20000, CRC(f7ce2097) SHA1(44c06fabdb6de7d8afc2164458c90b0be9cf945d) )
+ ROM_LOAD16_BYTE( "lwu_10a.13f", 0x40000, 0x20000, CRC(8cb38c81) SHA1(1d36cab7d17ff778ee7dfcd9606a3a87f6906f21) )
+ ROM_LOAD16_BYTE( "lwu_14a.13g", 0x40001, 0x20000, CRC(d70ef9fd) SHA1(b393aa2a7bea440fdcf057ffc6ff233fc0d35d4b) )
+ ROM_LOAD16_WORD_SWAP( "lw-07.13e", 0x80000, 0x80000, CRC(fd252a26) SHA1(5cfb097984912a5167a8c7ec4c2e119b642f9970) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "lw-01.9d", 0x000000, 0x80000, CRC(0318f298) SHA1(178ffd6da7bf845e30abf1bfc38a469cd319a73f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "lw-08.9f", 0x000002, 0x80000, CRC(25a8e43c) SHA1(d57cee1fc508db2677e84882fb814e4d9ad20543) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "lw-05.9e", 0x000004, 0x80000, CRC(e4552fd7) SHA1(11147afc475904848458425661473586dd6f60cc) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "lw-12.9g", 0x000006, 0x80000, CRC(8e6a832b) SHA1(d63a1331fda2365f090fa31950098f321a720ea8) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "lw-02.12d", 0x200000, 0x80000, CRC(43e6c5c8) SHA1(d3e6c971de0477ec4e178adc82508208dd8b397f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "lw-09.12f", 0x200002, 0x80000, CRC(899cb4ad) SHA1(95e61af338945e690f2a82746feba3871ea224eb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "lw-06.12e", 0x200004, 0x80000, CRC(5b9edffc) SHA1(6fd8f4a3ab070733b52365ab1945bf86acb2bf62) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "lw-13.12g", 0x200006, 0x80000, CRC(8e058ef5) SHA1(00f2c0050fd106276ea5398511c5861ebfbc0d10) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x8000, "stars", 0 )
+ ROM_COPY( "gfx", 0x200000, 0x000000, 0x8000 )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "lwu_00.14a", 0x00000, 0x08000, CRC(59df2a63) SHA1(dfe1fffc7a17179a80a2ae623e93b30a7d6df20d) ) // == lw_00b.14a
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "lw-03u.14c", 0x00000, 0x20000, CRC(807d051f) SHA1(720e4733787b9b11f4d1cdce0892b69475802844) )
+ ROM_LOAD( "lw-04u.13c", 0x20000, 0x20000, CRC(e6cd098e) SHA1(667f6e5736f76a1c4c450c4e2035574ea89d7910) )
+
+ 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( "lwchr.3a", 0x0000, 0x0117, CRC(54ed4c39) SHA1(961309335dc1c84482ebe99ea938b32d3a6ae9a8) )
+ ROM_LOAD( "lwio.15e", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) )
+ROM_END
+
+/* B-Board 88618B-2 */
+ROM_START( forgottnuaa ) /* 1 byte difference to parent set. Region byte or pointer to the US "warning" screen at boot */
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "lwu_11aa.14f", 0x00000, 0x20000, CRC(73e920b7) SHA1(2df12fc1a66f488d06b0927db909da81466d7d07) ) // == lw11.12f
+ ROM_LOAD16_BYTE( "lwu_15aa.14g", 0x00001, 0x20000, CRC(e47524b9) SHA1(2fad1e59432cb63017caf691bb28eb7cbcecb3c6) ) // 1 byte difference to lw15.12h 0x8B6 == 0x07
+ ROM_LOAD16_BYTE( "lwu_10aa.13f", 0x40000, 0x20000, CRC(bea45994) SHA1(c419f65c5e0c11ae7508ec54412bf6b62fac4f72) ) // == lw10.13f
+ ROM_LOAD16_BYTE( "lwu_14aa.13g", 0x40001, 0x20000, CRC(539b2339) SHA1(8a9e452ef8ed05e0b956d36990266657d3077470) ) // == lw14.13h
+ ROM_LOAD16_WORD_SWAP( "lw-07.13e", 0x80000, 0x80000, CRC(fd252a26) SHA1(5cfb097984912a5167a8c7ec4c2e119b642f9970) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "lw-01.9d", 0x000000, 0x80000, CRC(0318f298) SHA1(178ffd6da7bf845e30abf1bfc38a469cd319a73f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "lw-08.9f", 0x000002, 0x80000, CRC(25a8e43c) SHA1(d57cee1fc508db2677e84882fb814e4d9ad20543) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "lw-05.9e", 0x000004, 0x80000, CRC(e4552fd7) SHA1(11147afc475904848458425661473586dd6f60cc) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "lw-12.9g", 0x000006, 0x80000, CRC(8e6a832b) SHA1(d63a1331fda2365f090fa31950098f321a720ea8) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "lw-02.12d", 0x200000, 0x80000, CRC(43e6c5c8) SHA1(d3e6c971de0477ec4e178adc82508208dd8b397f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "lw-09.12f", 0x200002, 0x80000, CRC(899cb4ad) SHA1(95e61af338945e690f2a82746feba3871ea224eb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "lw-06.12e", 0x200004, 0x80000, CRC(5b9edffc) SHA1(6fd8f4a3ab070733b52365ab1945bf86acb2bf62) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "lw-13.12g", 0x200006, 0x80000, CRC(8e058ef5) SHA1(00f2c0050fd106276ea5398511c5861ebfbc0d10) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x8000, "stars", 0 )
+ ROM_COPY( "gfx", 0x200000, 0x000000, 0x8000 )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "lwu_00.14a", 0x00000, 0x08000, CRC(59df2a63) SHA1(dfe1fffc7a17179a80a2ae623e93b30a7d6df20d) ) // == lw_00b.14a
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "lw-03u.14c", 0x00000, 0x20000, CRC(807d051f) SHA1(720e4733787b9b11f4d1cdce0892b69475802844) )
+ ROM_LOAD( "lw-04u.13c", 0x20000, 0x20000, CRC(e6cd098e) SHA1(667f6e5736f76a1c4c450c4e2035574ea89d7910) )
+
+ 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( "lwchr.3a", 0x0000, 0x0117, CRC(54ed4c39) SHA1(961309335dc1c84482ebe99ea938b32d3a6ae9a8) )
+ ROM_LOAD( "lwio.15e", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) )
+ROM_END
+
+/* B-Board 88618B-2 */
+ROM_START( lostwrld )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "lw_11c.14f", 0x00000, 0x20000, CRC(67e42546) SHA1(3e385661f71616180a26b74e443978077246fe66) )
+ ROM_LOAD16_BYTE( "lw_15c.14g", 0x00001, 0x20000, CRC(402e2a46) SHA1(cbb7017e75a425706505717bf83c2615f53309f9) )
+ ROM_LOAD16_BYTE( "lw_10c.13f", 0x40000, 0x20000, CRC(c46479d7) SHA1(84fd9ef33ae7d0af2110e8dc299de25c0f039cee) )
+ ROM_LOAD16_BYTE( "lw_14c.13g", 0x40001, 0x20000, CRC(97670f4a) SHA1(f249977c814abdff85007216d7fa57db5684be0f) )
+ ROM_LOAD16_WORD_SWAP( "lw-07.13e", 0x80000, 0x80000, CRC(fd252a26) SHA1(5cfb097984912a5167a8c7ec4c2e119b642f9970) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "lw-01.9d", 0x000000, 0x80000, CRC(0318f298) SHA1(178ffd6da7bf845e30abf1bfc38a469cd319a73f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "lw-08.9f", 0x000002, 0x80000, CRC(25a8e43c) SHA1(d57cee1fc508db2677e84882fb814e4d9ad20543) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "lw-05.9e", 0x000004, 0x80000, CRC(e4552fd7) SHA1(11147afc475904848458425661473586dd6f60cc) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "lw-12.9g", 0x000006, 0x80000, CRC(8e6a832b) SHA1(d63a1331fda2365f090fa31950098f321a720ea8) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "lw-02.12d", 0x200000, 0x80000, CRC(43e6c5c8) SHA1(d3e6c971de0477ec4e178adc82508208dd8b397f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "lw-09.12f", 0x200002, 0x80000, CRC(899cb4ad) SHA1(95e61af338945e690f2a82746feba3871ea224eb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "lw-06.12e", 0x200004, 0x80000, CRC(5b9edffc) SHA1(6fd8f4a3ab070733b52365ab1945bf86acb2bf62) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "lw-13.12g", 0x200006, 0x80000, CRC(8e058ef5) SHA1(00f2c0050fd106276ea5398511c5861ebfbc0d10) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x8000, "stars", 0 )
+ ROM_COPY( "gfx", 0x200000, 0x000000, 0x8000 )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "lw_00b.14a", 0x00000, 0x08000, CRC(59df2a63) SHA1(dfe1fffc7a17179a80a2ae623e93b30a7d6df20d) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "lw-03.14c", 0x00000, 0x20000, CRC(ce2159e7) SHA1(77d564f8b768c1cbd6e5b334f7ee86c4c3f9d62e) )
+ ROM_LOAD( "lw-04.13c", 0x20000, 0x20000, CRC(39305536) SHA1(ad24d7b6df2dc5e84a35aecb9ba9b0aaa27ab6e5) )
+
+ 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( "lwchr.3a", 0x0000, 0x0117, CRC(54ed4c39) SHA1(961309335dc1c84482ebe99ea938b32d3a6ae9a8) )
+ ROM_LOAD( "lwio.15e", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) )
+ROM_END
+
+/* B-Board 88618B-2 */
+ROM_START( lostwrldo )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "lw_11.14f", 0x00000, 0x20000, CRC(61e2cc56) SHA1(bc192e37806129dd00677ca2c2e4287aa670973d) )
+ ROM_LOAD16_BYTE( "lw_15.14g", 0x00001, 0x20000, CRC(8a0c18d3) SHA1(7a4d80cefa0c2be427de43fbbbb906880876ed1d) )
+ ROM_LOAD16_BYTE( "lw_10.13f", 0x40000, 0x20000, CRC(23bca4d5) SHA1(c9d356d052d82117b6c30e40aa02a5f1f5335a73) )
+ ROM_LOAD16_BYTE( "lw_14.13g", 0x40001, 0x20000, CRC(3a023771) SHA1(30de9b76e104e897ddce64615f24bba0aa270d14) )
+ ROM_LOAD16_WORD_SWAP( "lw-07.13e", 0x80000, 0x80000, CRC(fd252a26) SHA1(5cfb097984912a5167a8c7ec4c2e119b642f9970) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "lw-01.9d", 0x000000, 0x80000, CRC(0318f298) SHA1(178ffd6da7bf845e30abf1bfc38a469cd319a73f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "lw-08.9f", 0x000002, 0x80000, CRC(25a8e43c) SHA1(d57cee1fc508db2677e84882fb814e4d9ad20543) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "lw-05.9e", 0x000004, 0x80000, CRC(e4552fd7) SHA1(11147afc475904848458425661473586dd6f60cc) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "lw-12.9g", 0x000006, 0x80000, CRC(8e6a832b) SHA1(d63a1331fda2365f090fa31950098f321a720ea8) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "lw-02.12d", 0x200000, 0x80000, CRC(43e6c5c8) SHA1(d3e6c971de0477ec4e178adc82508208dd8b397f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "lw-09.12f", 0x200002, 0x80000, CRC(899cb4ad) SHA1(95e61af338945e690f2a82746feba3871ea224eb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "lw-06.12e", 0x200004, 0x80000, CRC(5b9edffc) SHA1(6fd8f4a3ab070733b52365ab1945bf86acb2bf62) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "lw-13.12g", 0x200006, 0x80000, CRC(8e058ef5) SHA1(00f2c0050fd106276ea5398511c5861ebfbc0d10) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x8000, "stars", 0 )
+ ROM_COPY( "gfx", 0x200000, 0x000000, 0x8000 )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "lw_00b.14a", 0x00000, 0x08000, CRC(59df2a63) SHA1(dfe1fffc7a17179a80a2ae623e93b30a7d6df20d) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "lw-03.14c", 0x00000, 0x20000, CRC(ce2159e7) SHA1(77d564f8b768c1cbd6e5b334f7ee86c4c3f9d62e) )
+ ROM_LOAD( "lw-04.13c", 0x20000, 0x20000, CRC(39305536) SHA1(ad24d7b6df2dc5e84a35aecb9ba9b0aaa27ab6e5) )
+
+ 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( "lwchr.3a", 0x0000, 0x0117, CRC(54ed4c39) SHA1(961309335dc1c84482ebe99ea938b32d3a6ae9a8) )
+ ROM_LOAD( "lwio.15e", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) )
+ROM_END
+
+/* B-Board 88620-B-? */
+/* Note that ROMs are labeled left to right, top to bottom, instead of top to bottom, left to right as usual. */
+ROM_START( ghouls )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "dme_29.10h", 0x00000, 0x20000, CRC(166a58a2) SHA1(f21fcf88d2ebb7bc9e8885fde760a5d82f295c1a) )
+ ROM_LOAD16_BYTE( "dme_30.10j", 0x00001, 0x20000, CRC(7ac8407a) SHA1(3613699213db47bfeabedf87f12eb0fa7e5973b6) )
+ ROM_LOAD16_BYTE( "dme_27.9h", 0x40000, 0x20000, CRC(f734b2be) SHA1(fa230bf5503487ec11d767485a18f0a55dcc13d2) )
+ ROM_LOAD16_BYTE( "dme_28.9j", 0x40001, 0x20000, CRC(03d3e714) SHA1(a07786062358c89f3b4634b8822173261802290b) )
+ ROM_LOAD16_WORD( "dm-17.7j", 0x80000, 0x80000, CRC(3ea1b0f2) SHA1(c51f1c38cdaed77ad715cedd845617a291ab2441) )
+
+ ROM_REGION( 0x300000, "gfx", 0 )
+ ROMX_LOAD( "dm-05.3a", 0x000000, 0x80000, CRC(0ba9c0b0) SHA1(c4945b603115f32b7346d72426571dc2d361159f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "dm-07.3f", 0x000002, 0x80000, CRC(5d760ab9) SHA1(212176947933fcfef991bc80ad5bd91718689ffe) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "dm-06.3c", 0x000004, 0x80000, CRC(4ba90b59) SHA1(35bc9dec5ddbf064c30c951627581c16764456ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "dm-08.3g", 0x000006, 0x80000, CRC(4bdee9de) SHA1(7d0c4736f16577afe9966447a18f039728f6fbdf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "09.4a", 0x200000, 0x10000, CRC(ae24bb19) SHA1(aa91c6ffe657b878e10e4e930457b530f7bb529b) , ROM_SKIP(7) )
+ ROMX_LOAD( "18.7a", 0x200001, 0x10000, CRC(d34e271a) SHA1(55211fc2861dce32951f41624c9c99c09bf3b184) , ROM_SKIP(7) )
+ ROMX_LOAD( "13.4e", 0x200002, 0x10000, CRC(3f70dd37) SHA1(9ecb4dec9d131e9fca15ded7d71986a9fcb62c19) , ROM_SKIP(7) )
+ ROMX_LOAD( "22.7e", 0x200003, 0x10000, CRC(7e69e2e6) SHA1(4e0b4d2474beaa5c869c8f1a91893c79ac6e7f39) , ROM_SKIP(7) )
+ ROMX_LOAD( "11.4c", 0x200004, 0x10000, CRC(37c9b6c6) SHA1(b2bb82537e335339846dbf9588cfacfdbdd75ee6) , ROM_SKIP(7) )
+ ROMX_LOAD( "20.7c", 0x200005, 0x10000, CRC(2f1345b4) SHA1(14c450abcf9defa29c6f48e5ffd0b9d1e4a66a1d) , ROM_SKIP(7) )
+ ROMX_LOAD( "15.4g", 0x200006, 0x10000, CRC(3c2a212a) SHA1(f8fa0e0e2d09ea37c54d1c2493752b4e97e3f534) , ROM_SKIP(7) )
+ ROMX_LOAD( "24.7g", 0x200007, 0x10000, CRC(889aac05) SHA1(9301dcecee699e7f7672bb498122e1f4831ce536) , ROM_SKIP(7) )
+ ROMX_LOAD( "10.4b", 0x280000, 0x10000, CRC(bcc0f28c) SHA1(02f587aa4ae71631f27b0e3aaf1829cdded1bdc2) , ROM_SKIP(7) )
+ ROMX_LOAD( "19.7b", 0x280001, 0x10000, CRC(2a40166a) SHA1(dc4e75d7ed87ae5386d721a09113bba364740465) , ROM_SKIP(7) )
+ ROMX_LOAD( "14.4f", 0x280002, 0x10000, CRC(20f85c03) SHA1(86385139a9b42270aade758bfe338525936f5671) , ROM_SKIP(7) )
+ ROMX_LOAD( "23.7f", 0x280003, 0x10000, CRC(8426144b) SHA1(2dbf9625413b302fcdad5bef8733a9dfbfaead52) , ROM_SKIP(7) )
+ ROMX_LOAD( "12.4d", 0x280004, 0x10000, CRC(da088d61) SHA1(67229eff2827a42af97a60ceb252e132e7f307bc) , ROM_SKIP(7) )
+ ROMX_LOAD( "21.7d", 0x280005, 0x10000, CRC(17e11df0) SHA1(42fb15e9300b07fc5f4bc21744484869859b130c) , ROM_SKIP(7) )
+ ROMX_LOAD( "16.4h", 0x280006, 0x10000, CRC(f187ba1c) SHA1(6d9441d04ecef2a9d9c7a2cc7781acd7904c2061) , ROM_SKIP(7) )
+ ROMX_LOAD( "25.7h", 0x280007, 0x10000, CRC(29f79c78) SHA1(26000a58454a06c3016f99ebc3a79c52911a7070) , ROM_SKIP(7) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "26.10a", 0x00000, 0x08000, CRC(3692f6e5) SHA1(61b8438d60a39b4cf5062dff0a53228e8a4e4b5f) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", ROMREGION_ERASEFF ) /* Samples (not present) */
+
+ 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( "dm620.2a", 0x0000, 0x0117, CRC(f6e5f727) SHA1(8d38c458721347272ccc14b2c0e9885c4f891477) )
+ ROM_LOAD( "lwio.8i", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) )
+ROM_END
+
+/* B-Board 88620-B-2 */
+/* Note that ROMs are labeled left to right, top to bottom, instead of top to bottom, left to right as usual. */
+ROM_START( ghoulsu )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "dmu_29.10h", 0x00000, 0x20000, CRC(334d85b2) SHA1(89bacc28b7c799c7568420e3de5a99060baa7b0f) )
+ ROM_LOAD16_BYTE( "dmu_30.10j", 0x00001, 0x20000, CRC(cee8ceb5) SHA1(fc8db1ce0c143dfda0b5989d02d5e5a872e27cd2) )
+ ROM_LOAD16_BYTE( "dmu_27.9h", 0x40000, 0x20000, CRC(4a524140) SHA1(cebd651293c3570912d5506c1c223c39bcccc802) )
+ ROM_LOAD16_BYTE( "dmu_28.9j", 0x40001, 0x20000, CRC(94aae205) SHA1(514b3c1b9b0b22300a94229825c3be66332ea5ed) )
+ ROM_LOAD16_WORD( "dm-17.7j", 0x80000, 0x80000, CRC(3ea1b0f2) SHA1(c51f1c38cdaed77ad715cedd845617a291ab2441) )
+
+ ROM_REGION( 0x300000, "gfx", 0 )
+ ROMX_LOAD( "dm-05.3a", 0x000000, 0x80000, CRC(0ba9c0b0) SHA1(c4945b603115f32b7346d72426571dc2d361159f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "dm-07.3f", 0x000002, 0x80000, CRC(5d760ab9) SHA1(212176947933fcfef991bc80ad5bd91718689ffe) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "dm-06.3c", 0x000004, 0x80000, CRC(4ba90b59) SHA1(35bc9dec5ddbf064c30c951627581c16764456ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "dm-08.3g", 0x000006, 0x80000, CRC(4bdee9de) SHA1(7d0c4736f16577afe9966447a18f039728f6fbdf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "09.4a", 0x200000, 0x10000, CRC(ae24bb19) SHA1(aa91c6ffe657b878e10e4e930457b530f7bb529b) , ROM_SKIP(7) )
+ ROMX_LOAD( "18.7a", 0x200001, 0x10000, CRC(d34e271a) SHA1(55211fc2861dce32951f41624c9c99c09bf3b184) , ROM_SKIP(7) )
+ ROMX_LOAD( "13.4e", 0x200002, 0x10000, CRC(3f70dd37) SHA1(9ecb4dec9d131e9fca15ded7d71986a9fcb62c19) , ROM_SKIP(7) )
+ ROMX_LOAD( "22.7e", 0x200003, 0x10000, CRC(7e69e2e6) SHA1(4e0b4d2474beaa5c869c8f1a91893c79ac6e7f39) , ROM_SKIP(7) )
+ ROMX_LOAD( "11.4c", 0x200004, 0x10000, CRC(37c9b6c6) SHA1(b2bb82537e335339846dbf9588cfacfdbdd75ee6) , ROM_SKIP(7) )
+ ROMX_LOAD( "20.7c", 0x200005, 0x10000, CRC(2f1345b4) SHA1(14c450abcf9defa29c6f48e5ffd0b9d1e4a66a1d) , ROM_SKIP(7) )
+ ROMX_LOAD( "15.4g", 0x200006, 0x10000, CRC(3c2a212a) SHA1(f8fa0e0e2d09ea37c54d1c2493752b4e97e3f534) , ROM_SKIP(7) )
+ ROMX_LOAD( "24.7g", 0x200007, 0x10000, CRC(889aac05) SHA1(9301dcecee699e7f7672bb498122e1f4831ce536) , ROM_SKIP(7) )
+ ROMX_LOAD( "10.4b", 0x280000, 0x10000, CRC(bcc0f28c) SHA1(02f587aa4ae71631f27b0e3aaf1829cdded1bdc2) , ROM_SKIP(7) )
+ ROMX_LOAD( "19.7b", 0x280001, 0x10000, CRC(2a40166a) SHA1(dc4e75d7ed87ae5386d721a09113bba364740465) , ROM_SKIP(7) )
+ ROMX_LOAD( "14.4f", 0x280002, 0x10000, CRC(20f85c03) SHA1(86385139a9b42270aade758bfe338525936f5671) , ROM_SKIP(7) )
+ ROMX_LOAD( "23.7f", 0x280003, 0x10000, CRC(8426144b) SHA1(2dbf9625413b302fcdad5bef8733a9dfbfaead52) , ROM_SKIP(7) )
+ ROMX_LOAD( "12.4d", 0x280004, 0x10000, CRC(da088d61) SHA1(67229eff2827a42af97a60ceb252e132e7f307bc) , ROM_SKIP(7) )
+ ROMX_LOAD( "21.7d", 0x280005, 0x10000, CRC(17e11df0) SHA1(42fb15e9300b07fc5f4bc21744484869859b130c) , ROM_SKIP(7) )
+ ROMX_LOAD( "16.4h", 0x280006, 0x10000, CRC(f187ba1c) SHA1(6d9441d04ecef2a9d9c7a2cc7781acd7904c2061) , ROM_SKIP(7) )
+ ROMX_LOAD( "25.7h", 0x280007, 0x10000, CRC(29f79c78) SHA1(26000a58454a06c3016f99ebc3a79c52911a7070) , ROM_SKIP(7) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "26.10a", 0x00000, 0x08000, CRC(3692f6e5) SHA1(61b8438d60a39b4cf5062dff0a53228e8a4e4b5f) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", ROMREGION_ERASEFF ) /* Samples (not present) */
+
+ 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( "dm620.2a", 0x0000, 0x0117, CRC(f6e5f727) SHA1(8d38c458721347272ccc14b2c0e9885c4f891477) )
+ ROM_LOAD( "lwio.8i", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) )
+ROM_END
+
+/* B-Board 88622B-2 */
+/* Note that ROMs are labeled left to right, top to bottom, instead of top to bottom, left to right as usual. */
+ROM_START( daimakai )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "dmj_38.12f", 0x00000, 0x20000, CRC(82fd1798) SHA1(7a199384659d8e6602384b1953339f221d61a9e6) )
+ ROM_LOAD16_BYTE( "dmj_39.12h", 0x00001, 0x20000, CRC(35366ccc) SHA1(42c7004a641f34b9dd1333be51b50639a97e2be9) )
+ ROM_LOAD16_BYTE( "dmj_40.13f", 0x40000, 0x20000, CRC(a17c170a) SHA1(62a9cb65df90827334d453a98e826dc1bfc27136) )
+ ROM_LOAD16_BYTE( "dmj_41.13h", 0x40001, 0x20000, CRC(6af0b391) SHA1(5a2d74d207c04e24bcea7eeffa1c8b96b6df77e1) )
+ ROM_LOAD16_BYTE( "dm_33.10f", 0x80000, 0x20000, CRC(384d60c4) SHA1(258f9e2334b7240cf665b530f2c69b8826850687) ) // == dm-17.7j
+ ROM_LOAD16_BYTE( "dm_34.10h", 0x80001, 0x20000, CRC(19abe30f) SHA1(aea7d5c8357201b68dec70d7cc8f87dfb8fce207) ) // == dm-17.7j
+ ROM_LOAD16_BYTE( "dm_35.11f", 0xc0000, 0x20000, CRC(c04b85c8) SHA1(f8659624bb9d418d02f63f43478d3b53cfe18718) ) // == dm-17.7j
+ ROM_LOAD16_BYTE( "dm_36.11h", 0xc0001, 0x20000, CRC(89be83de) SHA1(6dfd1380304a85dee7cac4d0b2cfd7625b9020bf) ) // == dm-17.7j
+
+ ROM_REGION( 0x300000, "gfx", 0 )
+ ROMX_LOAD( "dm_02.4b", 0x000000, 0x20000, CRC(8b98dc48) SHA1(e827881e2ba5cccd907d1692a1945c1b75d46f12) , ROM_SKIP(7) ) // == dm-05.3a
+ ROMX_LOAD( "dm_01.4a", 0x000001, 0x20000, CRC(80896c33) SHA1(20ffc427c596828005e34cdd8e4efa0d332262e9) , ROM_SKIP(7) ) // == dm-05.3a
+ ROMX_LOAD( "dm_10.9b", 0x000002, 0x20000, CRC(c2e7d9ef) SHA1(52aae6cf373f8c7150833047be28b74dd5eb5af6) , ROM_SKIP(7) ) // == dm-07.3f
+ ROMX_LOAD( "dm_09.9a", 0x000003, 0x20000, CRC(c9c4afa5) SHA1(34571e3e49c86b87fa34eefbc5f9fe258aba5f1a) , ROM_SKIP(7) ) // == dm-07.3f
+ ROMX_LOAD( "dm_18.5e", 0x000004, 0x20000, CRC(1aa0db99) SHA1(69ac302b2f6f0b96f78cb57b0b4cdae464086262) , ROM_SKIP(7) ) // == dm-06.3c
+ ROMX_LOAD( "dm_17.5c", 0x000005, 0x20000, CRC(dc6ed8ad) SHA1(1ffc4a48a7ff9b542ab6f63a60bea3c1a7a6e63b) , ROM_SKIP(7) ) // == dm-06.3c
+ ROMX_LOAD( "dm_30.8h", 0x000006, 0x20000, CRC(d9d3f8bd) SHA1(6c6853a384f8d60ca46a0607fd47c76a83700fba) , ROM_SKIP(7) ) // == dm-08.3g
+ ROMX_LOAD( "dm_29.8f", 0x000007, 0x20000, CRC(49a48796) SHA1(76c18c684dba4aa91ee6caae0f38fe3e1cc50832) , ROM_SKIP(7) ) // == dm-08.3g
+ ROMX_LOAD( "dm_04.5b", 0x100000, 0x20000, CRC(a4f4f8f0) SHA1(edca0f61b40a18afe279f7007c233064130cfb4f) , ROM_SKIP(7) ) // == dm-05.3a
+ ROMX_LOAD( "dm_03.5a", 0x100001, 0x20000, CRC(b1033e62) SHA1(547fc281dd9e7a74ac86c3692508c7bde9b6167b) , ROM_SKIP(7) ) // == dm-05.3a
+ ROMX_LOAD( "dm_12.10b", 0x100002, 0x20000, CRC(10fdd76a) SHA1(aee774d6323292799dff7a30ef9559c92fe5507a) , ROM_SKIP(7) ) // == dm-07.3f
+ ROMX_LOAD( "dm_11.10a", 0x100003, 0x20000, CRC(9040cb04) SHA1(b32e9056fc20a5162868eade10f3ef5efc167a28) , ROM_SKIP(7) ) // == dm-07.3f
+ ROMX_LOAD( "dm_20.7e", 0x100004, 0x20000, CRC(281d0b3e) SHA1(70e1813de184ad0ec164145b7b843b5e387494e3) , ROM_SKIP(7) ) // == dm-06.3c
+ ROMX_LOAD( "dm_19.7c", 0x100005, 0x20000, CRC(2623b52f) SHA1(fc4200924452bfbff687934782398ed345dc0aa0) , ROM_SKIP(7) ) // == dm-06.3c
+ ROMX_LOAD( "dm_32.9h", 0x100006, 0x20000, CRC(99692344) SHA1(67dc70618568b7c0adcb00a612aaf5501f6c8c0f) , ROM_SKIP(7) ) // == dm-08.3g
+ ROMX_LOAD( "dm_31.9f", 0x100007, 0x20000, CRC(54acb729) SHA1(d1fca43db36253fd19db4337c49272a6cadff597) , ROM_SKIP(7) ) // == dm-08.3g
+ ROMX_LOAD( "dm_06.7b", 0x200000, 0x10000, CRC(ae24bb19) SHA1(aa91c6ffe657b878e10e4e930457b530f7bb529b) , ROM_SKIP(7) ) // == 09.4a
+ ROMX_LOAD( "dm_05.7a", 0x200001, 0x10000, CRC(d34e271a) SHA1(55211fc2861dce32951f41624c9c99c09bf3b184) , ROM_SKIP(7) ) // == 18.7a
+ ROMX_LOAD( "dm_14.11b", 0x200002, 0x10000, CRC(3f70dd37) SHA1(9ecb4dec9d131e9fca15ded7d71986a9fcb62c19) , ROM_SKIP(7) ) // == 13.4e
+ ROMX_LOAD( "dm_13.11a", 0x200003, 0x10000, CRC(7e69e2e6) SHA1(4e0b4d2474beaa5c869c8f1a91893c79ac6e7f39) , ROM_SKIP(7) ) // == 22.7e
+ ROMX_LOAD( "dm_22.8e", 0x200004, 0x10000, CRC(37c9b6c6) SHA1(b2bb82537e335339846dbf9588cfacfdbdd75ee6) , ROM_SKIP(7) ) // == 11.4c
+ ROMX_LOAD( "dm_21.8c", 0x200005, 0x10000, CRC(2f1345b4) SHA1(14c450abcf9defa29c6f48e5ffd0b9d1e4a66a1d) , ROM_SKIP(7) ) // == 20.7c
+ ROMX_LOAD( "dm_26.10e", 0x200006, 0x10000, CRC(3c2a212a) SHA1(f8fa0e0e2d09ea37c54d1c2493752b4e97e3f534) , ROM_SKIP(7) ) // == 15.4g
+ ROMX_LOAD( "dm_25.10c", 0x200007, 0x10000, CRC(889aac05) SHA1(9301dcecee699e7f7672bb498122e1f4831ce536) , ROM_SKIP(7) ) // == 24.7g
+ ROMX_LOAD( "dm_08.8b", 0x280000, 0x10000, CRC(bcc0f28c) SHA1(02f587aa4ae71631f27b0e3aaf1829cdded1bdc2) , ROM_SKIP(7) ) // == 10.4b
+ ROMX_LOAD( "dm_07.8a", 0x280001, 0x10000, CRC(2a40166a) SHA1(dc4e75d7ed87ae5386d721a09113bba364740465) , ROM_SKIP(7) ) // == 19.7b
+ ROMX_LOAD( "dm_16.12b", 0x280002, 0x10000, CRC(20f85c03) SHA1(86385139a9b42270aade758bfe338525936f5671) , ROM_SKIP(7) ) // == 14.4f
+ ROMX_LOAD( "dm_15.12a", 0x280003, 0x10000, CRC(8426144b) SHA1(2dbf9625413b302fcdad5bef8733a9dfbfaead52) , ROM_SKIP(7) ) // == 23.7f
+ ROMX_LOAD( "dm_24.9e", 0x280004, 0x10000, CRC(da088d61) SHA1(67229eff2827a42af97a60ceb252e132e7f307bc) , ROM_SKIP(7) ) // == 12.4d
+ ROMX_LOAD( "dm_23.9c", 0x280005, 0x10000, CRC(17e11df0) SHA1(42fb15e9300b07fc5f4bc21744484869859b130c) , ROM_SKIP(7) ) // == 21.7d
+ ROMX_LOAD( "dm_28.11e", 0x280006, 0x10000, CRC(f187ba1c) SHA1(6d9441d04ecef2a9d9c7a2cc7781acd7904c2061) , ROM_SKIP(7) ) // == 16.4h
+ ROMX_LOAD( "dm_27.11c", 0x280007, 0x10000, CRC(29f79c78) SHA1(26000a58454a06c3016f99ebc3a79c52911a7070) , ROM_SKIP(7) ) // == 25.7h
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "37.13c", 0x00000, 0x08000, CRC(3692f6e5) SHA1(61b8438d60a39b4cf5062dff0a53228e8a4e4b5f) ) // == 26.10a
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", ROMREGION_ERASEFF ) /* Samples (not present) */
+
+ 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( "dm22a.1a", 0x0000, 0x0117, NO_DUMP )
+ ROM_LOAD( "lwio.12c", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) )
+ROM_END
+
+/* B-Board 91634B-2, Japan Resale Ver. */
+ROM_START( daimakair )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "damj_23.8f", 0x00000, 0x80000, CRC(c3b248ec) SHA1(5c016d2dcf882b2a9564e3c4502a0f51ee3d1803) )
+ ROM_LOAD16_WORD_SWAP( "damj_22.7f", 0x80000, 0x80000, CRC(595ff2f3) SHA1(ac14b81e15f2c340526a03acbb4c28181d94d5b9) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "dam_01.3a", 0x000000, 0x80000, CRC(0ba9c0b0) SHA1(c4945b603115f32b7346d72426571dc2d361159f) , ROM_GROUPWORD | ROM_SKIP(6) ) // == dm-05.3a
+ ROMX_LOAD( "dam_02.4a", 0x000002, 0x80000, CRC(5d760ab9) SHA1(212176947933fcfef991bc80ad5bd91718689ffe) , ROM_GROUPWORD | ROM_SKIP(6) ) // == dm-07.3f
+ ROMX_LOAD( "dam_03.5a", 0x000004, 0x80000, CRC(4ba90b59) SHA1(35bc9dec5ddbf064c30c951627581c16764456ac) , ROM_GROUPWORD | ROM_SKIP(6) ) // == dm-06.3c
+ ROMX_LOAD( "dam_04.6a", 0x000006, 0x80000, CRC(4bdee9de) SHA1(7d0c4736f16577afe9966447a18f039728f6fbdf) , ROM_GROUPWORD | ROM_SKIP(6) ) // == dm-08.3g
+ ROMX_LOAD( "dam_05.7a", 0x200000, 0x80000, CRC(7dc61b94) SHA1(7796bae7555c541b3c80aacfa24788aeb2ccdfd5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "dam_06.8a", 0x200002, 0x80000, CRC(fde89758) SHA1(9a6192f629cd1e74e225ef7426338c2816c6b977) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "dam_07.9a", 0x200004, 0x80000, CRC(ec351d78) SHA1(1005a83be4b5577612143ae7f64ca4a08aae7959) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "dam_08.10a", 0x200006, 0x80000, CRC(ee2acc1e) SHA1(4628a9b2447266349d97132003992a21e2bb423a) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "dam_09.12a", 0x00000, 0x08000, CRC(0656ff53) SHA1(063a8124dbe73d014b11f72007f1b877afd1a661) ) // == 26.10a + garbage
+ ROM_CONTINUE( 0x10000, 0x18000 ) // second half of ROM is unused, not mapped in memory
+
+ ROM_REGION( 0x40000, "oki", ROMREGION_ERASEFF ) /* Samples (not present) */
+
+ 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( "dam63b.1a", 0x0000, 0x0117, CRC(474b3c8a) SHA1(da364581685067fc955ed43b982a7aa7a2648286) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 89624B-2 */
+ROM_START( strider )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "30.11f", 0x00000, 0x20000, CRC(da997474) SHA1(3e4ac98f9a6967d61899281b31c7de779723397b) )
+ ROM_LOAD16_BYTE( "35.11h", 0x00001, 0x20000, CRC(5463aaa3) SHA1(e2d07ec2d818e9a2e2d7a77ff0309ae4011c0083) )
+ ROM_LOAD16_BYTE( "31.12f", 0x40000, 0x20000, CRC(d20786db) SHA1(c9c75488e6bb37cfd0d56073faf87ff5713bc9a0) )
+ ROM_LOAD16_BYTE( "36.12h", 0x40001, 0x20000, CRC(21aa2863) SHA1(446dc9280630318deb423531210a4eedfb4adfa6) )
+ ROM_LOAD16_WORD_SWAP( "st-14.8h", 0x80000, 0x80000, CRC(9b3cfc08) SHA1(a7d7f270a097437affa845d80bed82a1fa874878) ) // in "32" socket
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "st-2.8a", 0x000000, 0x80000, CRC(4eee9aea) SHA1(5e619fd5f3f1181e32a8fd9dbb4661d74ff8a484) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "6" socket
+ ROMX_LOAD( "st-11.10a", 0x000002, 0x80000, CRC(2d7f21e4) SHA1(593cec513de40ff802084d54313bb25a4561e25d) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "8" socket
+ ROMX_LOAD( "st-5.4a", 0x000004, 0x80000, CRC(7705aa46) SHA1(6cbfa30b2852fd117d117beefba434ce41d24c2f) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket
+ ROMX_LOAD( "st-9.6a", 0x000006, 0x80000, CRC(5b18b722) SHA1(cf71c62348ca6b404279e87a6686cb3a842eb381) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket
+ ROMX_LOAD( "st-1.7a", 0x200000, 0x80000, CRC(005f000b) SHA1(e6f65af7cc3295be9efaaded352e7ae6320b4133) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "5" socket
+ ROMX_LOAD( "st-10.9a", 0x200002, 0x80000, CRC(b9441519) SHA1(bb0926dc484dae4f64c5e5a6bce20afdc7aeba55) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "7" socket
+ ROMX_LOAD( "st-4.3a", 0x200004, 0x80000, CRC(b7d04e8b) SHA1(5c5a079baa694927c33d0e0c23e5ff09d6c9d985) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket
+ ROMX_LOAD( "st-8.5a", 0x200006, 0x80000, CRC(6b4713b4) SHA1(759b8b1fc7a5c4b00d74a27c2dd11667db44b09e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket
+
+ ROM_REGION( 0x8000, "stars", 0 )
+ ROM_COPY( "gfx", 0x000000, 0x000000, 0x8000 )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "09.12b", 0x00000, 0x08000, CRC(2ed403bc) SHA1(4ce863ea40d789db5a7cfce91d2c7c720deb9be5) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "18.11c", 0x00000, 0x20000, CRC(4386bc80) SHA1(fb2b261995aeacfa13e7ee40b1a973dfb178f015) )
+ ROM_LOAD( "19.12c", 0x20000, 0x20000, CRC(444536d7) SHA1(a14f5de2f6b5b29ae5161dca1f8c08c566301a91) )
+
+ 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( "st24m1.1a", 0x0000, 0x0117, CRC(a80d357e) SHA1(4cb79c99c62c8300e694f4cd26f41dab7818f17f) )
+ ROM_LOAD( "lwio.11e", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) )
+ROM_END
+
+/* B-Board 89624B-3 */
+ROM_START( striderua )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "30.11f", 0x00000, 0x20000, CRC(66aec273) SHA1(576b1e9062874e68d68f8725949c151509eb6d56) ) /* different CRC from strider, pcb verified */
+ ROM_LOAD16_BYTE( "35.11h", 0x00001, 0x20000, CRC(50e0e865) SHA1(201ef385c228c124ed9412002233a501ea514efd) ) /* different CRC from strider, pcb verified */
+ ROM_LOAD16_BYTE( "31.12f", 0x40000, 0x20000, CRC(eae93bd1) SHA1(b320a00b67ea3c7fffc6c37d57863163975f7b80) ) /* different CRC from strider, pcb verified */
+ ROM_LOAD16_BYTE( "36.12h", 0x40001, 0x20000, CRC(b904a31d) SHA1(5509d1024151eb8548fd1b29e6c0c95775c61364) ) /* different CRC from strider, pcb verified */
+ ROM_LOAD16_WORD_SWAP( "st-14.8h", 0x80000, 0x80000, CRC(9b3cfc08) SHA1(a7d7f270a097437affa845d80bed82a1fa874878) ) // in "32" socket
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "st-2.8a", 0x000000, 0x80000, CRC(4eee9aea) SHA1(5e619fd5f3f1181e32a8fd9dbb4661d74ff8a484) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "6" socket
+ ROMX_LOAD( "st-11.10a", 0x000002, 0x80000, CRC(2d7f21e4) SHA1(593cec513de40ff802084d54313bb25a4561e25d) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "8" socket
+ ROMX_LOAD( "st-5.4a", 0x000004, 0x80000, CRC(7705aa46) SHA1(6cbfa30b2852fd117d117beefba434ce41d24c2f) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket
+ ROMX_LOAD( "st-9.6a", 0x000006, 0x80000, CRC(5b18b722) SHA1(cf71c62348ca6b404279e87a6686cb3a842eb381) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket
+ ROMX_LOAD( "st-1.7a", 0x200000, 0x80000, CRC(005f000b) SHA1(e6f65af7cc3295be9efaaded352e7ae6320b4133) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "5" socket
+ ROMX_LOAD( "st-10.9a", 0x200002, 0x80000, CRC(b9441519) SHA1(bb0926dc484dae4f64c5e5a6bce20afdc7aeba55) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "7" socket
+ ROMX_LOAD( "st-4.3a", 0x200004, 0x80000, CRC(b7d04e8b) SHA1(5c5a079baa694927c33d0e0c23e5ff09d6c9d985) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket
+ ROMX_LOAD( "st-8.5a", 0x200006, 0x80000, CRC(6b4713b4) SHA1(759b8b1fc7a5c4b00d74a27c2dd11667db44b09e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket
+
+ ROM_REGION( 0x8000, "stars", 0 )
+ ROM_COPY( "gfx", 0x000000, 0x000000, 0x8000 )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "09.12b", 0x00000, 0x08000, CRC(08d63519) SHA1(c120ecfe25c3c50bc51bc7d5a9ef1c8ca6591240) ) /* different CRC from strider, pcb verified */
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "18.11c", 0x00000, 0x20000, CRC(4386bc80) SHA1(fb2b261995aeacfa13e7ee40b1a973dfb178f015) )
+ ROM_LOAD( "19.12c", 0x20000, 0x20000, CRC(444536d7) SHA1(a14f5de2f6b5b29ae5161dca1f8c08c566301a91) )
+
+ 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( "st24b2.1a", 0x0000, 0x0117, NO_DUMP )
+ ROM_LOAD( "lwio.11e", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) )
+ROM_END
+
+// 90629B-3 PCB - Converted from an SF2 'inhouse' (but with no official labels etc.)
+// actually an incomplete conversion, layer enables are wrong in a number of places which causes the game to break even on real hardware.
+// this is essentially a Capcom made bootleg of a Capcom game.
+ROM_START( strideruc )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "34.8f", 0x000000, 0x80000, CRC(e0fb5657) SHA1(6c7f668220de80169feea35371aff363f67f7b0c) )
+ ROM_LOAD16_WORD_SWAP( "33.6f", 0x080000, 0x80000, CRC(9b3cfc08) SHA1(a7d7f270a097437affa845d80bed82a1fa874878) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "6.8a", 0x000000, 0x80000, CRC(4eee9aea) SHA1(5e619fd5f3f1181e32a8fd9dbb4661d74ff8a484) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "8.10a", 0x000002, 0x80000, CRC(2d7f21e4) SHA1(593cec513de40ff802084d54313bb25a4561e25d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "5.7a", 0x000004, 0x80000, CRC(7705aa46) SHA1(6cbfa30b2852fd117d117beefba434ce41d24c2f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "7.9a", 0x000006, 0x80000, CRC(5b18b722) SHA1(cf71c62348ca6b404279e87a6686cb3a842eb381) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "15.8c", 0x200000, 0x80000, CRC(005f000b) SHA1(e6f65af7cc3295be9efaaded352e7ae6320b4133) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "17.10c", 0x200002, 0x80000, CRC(b9441519) SHA1(bb0926dc484dae4f64c5e5a6bce20afdc7aeba55) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "14.7c", 0x200004, 0x80000, CRC(b7d04e8b) SHA1(5c5a079baa694927c33d0e0c23e5ff09d6c9d985) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "16.9c", 0x200006, 0x80000, CRC(6b4713b4) SHA1(759b8b1fc7a5c4b00d74a27c2dd11667db44b09e) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "9.12a", 0x00000, 0x08000, CRC(08d63519) SHA1(c120ecfe25c3c50bc51bc7d5a9ef1c8ca6591240) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "18.11c", 0x00000, 0x20000, CRC(4386bc80) SHA1(fb2b261995aeacfa13e7ee40b1a973dfb178f015) )
+ ROM_LOAD( "19.12c", 0x20000, 0x20000, CRC(444536d7) SHA1(a14f5de2f6b5b29ae5161dca1f8c08c566301a91) )
+
+ // which of these should we be using?
+ /*
+ ROM_REGION( 0x0200, "aboardplds", ROMREGION_ERASE00 )
+ 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", ROMREGION_ERASE00 )
+ ROM_LOAD( "stf29.1a", 0x0000, 0x0117, CRC(043309c5) SHA1(f6b9610c9f896c495041ba56a654776a521c356b) )
+ ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+
+ ROM_REGION( 0x0200, "cboardplds", ROMREGION_ERASE00 )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ */
+ROM_END
+
+/* B-Board 88622B-3 */
+ROM_START( striderj )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "sth_36.12f", 0x00000, 0x20000, CRC(53c7b006) SHA1(30daa256a32b209b907e5d916a82068017862a01) )
+ ROM_LOAD16_BYTE( "sth_42.12h", 0x00001, 0x20000, CRC(4037f65f) SHA1(490b9fb15f80772316101ea15e61ab32f42feaec) )
+ ROM_LOAD16_BYTE( "sth_37.13f", 0x40000, 0x20000, CRC(80e8877d) SHA1(806a62c03007efe6d58fb24dac467d4fc39bb96a) )
+ ROM_LOAD16_BYTE( "sth_43.13h", 0x40001, 0x20000, CRC(6b3fa466) SHA1(6a3c9bd491eecf864971f7fdf02d01112d5ef7dd) )
+ ROM_LOAD16_BYTE( "sth_34.10f", 0x80000, 0x20000, CRC(bea770b5) SHA1(b1d3111c8878708b6d0589d6bdfd3b380842d98b) ) // == st-14.8h
+ ROM_LOAD16_BYTE( "sth_40.10h", 0x80001, 0x20000, CRC(43b922dc) SHA1(441c932080ae2b19e3834e7173d46be2e8762119) ) // == st-14.8h
+ ROM_LOAD16_BYTE( "sth_35.11f", 0xc0000, 0x20000, CRC(5cc429da) SHA1(1d3593444d556fcb7b209ef254b7733cb32dc502) ) // == st-14.8h
+ ROM_LOAD16_BYTE( "sth_41.11h", 0xc0001, 0x20000, CRC(50af457f) SHA1(fb7248e41c09f137c929a2bd9ef17591f48b7009) ) // == st-14.8h
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "sth_09.4b", 0x000000, 0x20000, CRC(1ef6bfbd) SHA1(5e66168e2526b4b4569d9dabacd5602181b23874) , ROM_SKIP(7) ) // == st-2.8a
+ ROMX_LOAD( "sth_01.4a", 0x000001, 0x20000, CRC(1e21b0c1) SHA1(2ac543dccefa7e2438d7eb53cdf2e6aff09c735b) , ROM_SKIP(7) ) // == st-2.8a
+ ROMX_LOAD( "sth_13.9b", 0x000002, 0x20000, CRC(063263ae) SHA1(38ea256f9a0f3fd6786d21c8b540030b73742971) , ROM_SKIP(7) ) // == st-11.10a
+ ROMX_LOAD( "sth_05.9a", 0x000003, 0x20000, CRC(ec9f8714) SHA1(8eb2b92ad576849b8049f9c90b850f74c2a5cba2) , ROM_SKIP(7) ) // == st-11.10a
+ ROMX_LOAD( "sth_24.5e", 0x000004, 0x20000, CRC(6356f4d2) SHA1(8d6786e07dba3e59a609c1a13be8685e4fdb8879) , ROM_SKIP(7) ) // == st-5.4a
+ ROMX_LOAD( "sth_17.5c", 0x000005, 0x20000, CRC(b4f73d86) SHA1(0ffbcc93ce7eadfd29255a15bc5cbd6e24f98759) , ROM_SKIP(7) ) // == st-5.4a
+ ROMX_LOAD( "sth_38.8h", 0x000006, 0x20000, CRC(ee5abfc2) SHA1(1c162bc09991f1082b4d9d22fbce13f2c08e0ceb) , ROM_SKIP(7) ) // == st-9.6a
+ ROMX_LOAD( "sth_32.8f", 0x000007, 0x20000, CRC(44a206a3) SHA1(67ec4b9cf3ff181c8c4c4751a1d2e8ee8e56278a) , ROM_SKIP(7) ) // == st-9.6a
+ ROMX_LOAD( "sth_10.5b", 0x100000, 0x20000, CRC(df3dd3bc) SHA1(648218f94ecda25873103ac4e2d7132c79f1c5b2) , ROM_SKIP(7) ) // == st-2.8a
+ ROMX_LOAD( "sth_02.5a", 0x100001, 0x20000, CRC(c75f9ea0) SHA1(e9268bfa6f5254935fda726ab4b5d9acb0f1942a) , ROM_SKIP(7) ) // == st-2.8a
+ ROMX_LOAD( "sth_14.10b", 0x100002, 0x20000, CRC(6c03e19d) SHA1(83f892df551ea79534288643b07613a3c595d526) , ROM_SKIP(7) ) // == st-11.10a
+ ROMX_LOAD( "sth_06.10a", 0x100003, 0x20000, CRC(d84f5478) SHA1(c3812056ff2563a43d11746ec8327700f370a053) , ROM_SKIP(7) ) // == st-11.10a
+ ROMX_LOAD( "sth_25.7e", 0x100004, 0x20000, CRC(921e506a) SHA1(fd2b5e2121c2adedcb0325b4159273506dab27e8) , ROM_SKIP(7) ) // == st-5.4a
+ ROMX_LOAD( "sth_18.7c", 0x100005, 0x20000, CRC(5b318956) SHA1(b1415472bf45787219b3b7680057910b210d57f5) , ROM_SKIP(7) ) // == st-5.4a
+ ROMX_LOAD( "sth_39.9h", 0x100006, 0x20000, CRC(9321d6aa) SHA1(acec3c880d29692cf010540c120b9092d7dd8ce9) , ROM_SKIP(7) ) // == st-9.6a
+ ROMX_LOAD( "sth_33.9f", 0x100007, 0x20000, CRC(b47ddfc7) SHA1(12388c37abdde85d63305f86244fc3c07f8b6b0c) , ROM_SKIP(7) ) // == st-9.6a
+ ROMX_LOAD( "sth_11.7b", 0x200000, 0x20000, CRC(2484f241) SHA1(28c48526ec2577119cc3207e92138749124b5959) , ROM_SKIP(7) ) // == st-1.7a
+ ROMX_LOAD( "sth_03.7a", 0x200001, 0x20000, CRC(aaa07245) SHA1(64a1b75b7613c1949eee6f9ba865dbdd7ec34413) , ROM_SKIP(7) ) // == st-1.7a
+ ROMX_LOAD( "sth_15.11b", 0x200002, 0x20000, CRC(e415d943) SHA1(12069d02d3a6afa9241222b48420daaf97874271) , ROM_SKIP(7) ) // == st-10.9a
+ ROMX_LOAD( "sth_07.11a", 0x200003, 0x20000, CRC(97d072d2) SHA1(fb0e10464a878ec6c0f3e6c6ddb0ea542bfb87a8) , ROM_SKIP(7) ) // == st-10.9a
+ ROMX_LOAD( "sth_26.8e", 0x200004, 0x20000, CRC(0ebfcb02) SHA1(a7238e1c76dbc2de1b7ae0d2cc532170cd1ab6c2) , ROM_SKIP(7) ) // == st-4.3a
+ ROMX_LOAD( "sth_19.8c", 0x200005, 0x20000, CRC(257ce683) SHA1(762f22b5ba24864d69dda303310a310d8dbfcc1c) , ROM_SKIP(7) ) // == st-4.3a
+ ROMX_LOAD( "sth_28.10e", 0x200006, 0x20000, CRC(98ac8cd1) SHA1(53dbe418d5cb7af5ef4be91e5e6bcd4474d2fdfe) , ROM_SKIP(7) ) // == st-8.5a
+ ROMX_LOAD( "sth_21.10c", 0x200007, 0x20000, CRC(538d9423) SHA1(418ea54d6582723d3e568364787862a6df2d1523) , ROM_SKIP(7) ) // == st-8.5a
+ ROMX_LOAD( "sth_12.8b", 0x300000, 0x20000, CRC(f670a477) SHA1(de5154ca093a9e5f9adb836d9a933d14e939180d) , ROM_SKIP(7) ) // == st-1.7a
+ ROMX_LOAD( "sth_04.8a", 0x300001, 0x20000, CRC(853d3e01) SHA1(422cc9f539e79c2a9b3bda47eb1fc714d79838d1) , ROM_SKIP(7) ) // == st-1.7a
+ ROMX_LOAD( "sth_16.12b", 0x300002, 0x20000, CRC(4092019f) SHA1(2173e72a8325d12da70666bdc279409b23fb7024) , ROM_SKIP(7) ) // == st-10.9a
+ ROMX_LOAD( "sth_08.12a", 0x300003, 0x20000, CRC(2ce9b4c7) SHA1(f267d323c9310433852e3308b36100440bee33d7) , ROM_SKIP(7) ) // == st-10.9a
+ ROMX_LOAD( "sth_27.9e", 0x300004, 0x20000, CRC(f82c88d9) SHA1(200bd025800eb20c4a15af17e7c3effbfa6f00fa) , ROM_SKIP(7) ) // == st-4.3a
+ ROMX_LOAD( "sth_20.9c", 0x300005, 0x20000, CRC(eb584dd4) SHA1(aeee39c0fc9f234249253b14de88a8da494b18d0) , ROM_SKIP(7) ) // == st-4.3a
+ ROMX_LOAD( "sth_29.11e", 0x300006, 0x20000, CRC(34ae2997) SHA1(9449eb9c85b7cb4a12aa06cb65a9d849a528e633) , ROM_SKIP(7) ) // == st-8.5a
+ ROMX_LOAD( "sth_22.11c", 0x300007, 0x20000, CRC(78dd9c48) SHA1(35fbf3ca21f56c9899283ba08c89c0faf7a8f717) , ROM_SKIP(7) ) // == st-8.5a
+
+ ROM_REGION( 0x8000, "stars", 0 )
+ ROM_COPY( "gfx", 0x000000, 0x000000, 0x8000 )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sth_23.13c", 0x00000, 0x08000, CRC(2ed403bc) SHA1(4ce863ea40d789db5a7cfce91d2c7c720deb9be5) ) // == 09.12b
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "sth_30.12e", 0x00000, 0x20000, CRC(4386bc80) SHA1(fb2b261995aeacfa13e7ee40b1a973dfb178f015) ) // == 18.11c
+ ROM_LOAD( "sth_31.13e", 0x20000, 0x20000, CRC(444536d7) SHA1(a14f5de2f6b5b29ae5161dca1f8c08c566301a91) ) // == 19.12c
+
+ 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( "st22b.1a", 0x0000, 0x0117, CRC(68fecc55) SHA1(238f6781f972e834f2c6054cfe925ffec579dec3) )
+ ROM_LOAD( "lwio.12c", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) )
+ROM_END
+
+/* B-Board 91634B-2, Japan Resale Ver. */
+ROM_START( striderjr )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "sthj_23.8f", 0x00000, 0x80000, CRC(046e7b12) SHA1(a5761f730f6844a7e93556a6aeae76240a99540c) )
+ ROM_LOAD16_WORD_SWAP( "sthj_22.7f", 0x80000, 0x80000, CRC(9b3cfc08) SHA1(a7d7f270a097437affa845d80bed82a1fa874878) ) // == st-14.8h
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "sth_01.3a", 0x000000, 0x80000, CRC(4eee9aea) SHA1(5e619fd5f3f1181e32a8fd9dbb4661d74ff8a484) , ROM_GROUPWORD | ROM_SKIP(6) ) // == st-2.8a
+ ROMX_LOAD( "sth_02.4a", 0x000002, 0x80000, CRC(2d7f21e4) SHA1(593cec513de40ff802084d54313bb25a4561e25d) , ROM_GROUPWORD | ROM_SKIP(6) ) // == st-11.10a
+ ROMX_LOAD( "sth_03.5a", 0x000004, 0x80000, CRC(7705aa46) SHA1(6cbfa30b2852fd117d117beefba434ce41d24c2f) , ROM_GROUPWORD | ROM_SKIP(6) ) // == st-5.4a
+ ROMX_LOAD( "sth_04.6a", 0x000006, 0x80000, CRC(5b18b722) SHA1(cf71c62348ca6b404279e87a6686cb3a842eb381) , ROM_GROUPWORD | ROM_SKIP(6) ) // == st-9.6a
+ ROMX_LOAD( "sth_05.7a", 0x200000, 0x80000, CRC(005f000b) SHA1(e6f65af7cc3295be9efaaded352e7ae6320b4133) , ROM_GROUPWORD | ROM_SKIP(6) ) // == st-1.7a
+ ROMX_LOAD( "sth_06.8a", 0x200002, 0x80000, CRC(b9441519) SHA1(bb0926dc484dae4f64c5e5a6bce20afdc7aeba55) , ROM_GROUPWORD | ROM_SKIP(6) ) // == st-10.9a
+ ROMX_LOAD( "sth_07.9a", 0x200004, 0x80000, CRC(b7d04e8b) SHA1(5c5a079baa694927c33d0e0c23e5ff09d6c9d985) , ROM_GROUPWORD | ROM_SKIP(6) ) // == st-4.3a
+ ROMX_LOAD( "sth_08.10a", 0x200006, 0x80000, CRC(6b4713b4) SHA1(759b8b1fc7a5c4b00d74a27c2dd11667db44b09e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == st-8.5a
+
+ ROM_REGION( 0x8000, "stars", 0 )
+ ROM_COPY( "gfx", 0x000000, 0x000000, 0x8000 )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sth_09.12a", 0x00000, 0x08000, CRC(08d63519) SHA1(c120ecfe25c3c50bc51bc7d5a9ef1c8ca6591240) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "sth_18.11c", 0x00000, 0x20000, CRC(4386bc80) SHA1(fb2b261995aeacfa13e7ee40b1a973dfb178f015) )
+ ROM_LOAD( "sth_19.12c", 0x20000, 0x20000, CRC(444536d7) SHA1(a14f5de2f6b5b29ae5161dca1f8c08c566301a91) )
+
+ 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( "sth63b.1a", 0x0000, 0x0117, BAD_DUMP CRC(c706b773) SHA1(ddfe2e747637eec081a5125cfefcb478a4ba9e76) ) /* Handcrafted but works on actual PCB. Redump needed */
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 89624B-? */
+ROM_START( dynwar )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "30.11f", 0x00000, 0x20000, CRC(f9ec6d68) SHA1(02912db2b48f77489b0b841c2a5414bfb49b93f4) )
+ ROM_LOAD16_BYTE( "35.11h", 0x00001, 0x20000, CRC(e41fff2f) SHA1(a960c39c69f97b46d5efcbcd3e2bc652888094c4) )
+ ROM_LOAD16_BYTE( "31.12f", 0x40000, 0x20000, CRC(e3de76ff) SHA1(fdc552312e10c91dd00bfa72e4e686ac356d2244) )
+ ROM_LOAD16_BYTE( "36.12h", 0x40001, 0x20000, CRC(7a13cfbf) SHA1(c6b4d775a2e507fdefbb895cc75bb5bdb442218d) )
+ ROM_LOAD16_WORD_SWAP( "tkm-9.8h", 0x80000, 0x80000, CRC(93654bcf) SHA1(c72daeb2a98d350568555059a3225343c219a1d2) ) // in "32" socket
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tkm-5.7a", 0x000000, 0x80000, CRC(f64bb6a0) SHA1(8c0ae0305704ad876bb1938e46550c68b0de8e8e), ROM_GROUPWORD | ROM_SKIP(6) ) // in "5" socket
+ ROMX_LOAD( "tkm-8.9a", 0x000002, 0x80000, CRC(21fe6274) SHA1(f92e509d88d5e264be9c7812966d64ad9ac518e7), ROM_GROUPWORD | ROM_SKIP(6) ) // in "7" socket
+ ROMX_LOAD( "tkm-6.3a", 0x000004, 0x80000, CRC(0bf228cb) SHA1(e72957155cb459c4dee50df2e53256f271528964), ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket
+ ROMX_LOAD( "tkm-7.5a", 0x000006, 0x80000, CRC(1255dfb1) SHA1(c943e3c989d5b20fbe24e38e54ee8ca294b3d182), ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket
+ ROMX_LOAD( "tkm-1.8a", 0x200000, 0x80000, CRC(44f7661e) SHA1(f29b5ad0c5dfd91a56a4a1084ce578cfe496dd6f), ROM_GROUPWORD | ROM_SKIP(6) ) // in "6" socket
+ ROMX_LOAD( "tkm-4.10a", 0x200002, 0x80000, CRC(a54c515d) SHA1(bfa457cef7e29ae56ee9b10f60e233d82b4efc61), ROM_GROUPWORD | ROM_SKIP(6) ) // in "8" socket
+ ROMX_LOAD( "tkm-2.4a", 0x200004, 0x80000, CRC(ca5c687c) SHA1(de47cb5a071ffb3ff408f60d45b79345032232a7), ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket
+ ROMX_LOAD( "tkm-3.6a", 0x200006, 0x80000, CRC(f9fe6591) SHA1(260da5f9e305cccd621b8b5b2073c79e161ddeb0), ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "tke_17.12b", 0x00000, 0x08000, CRC(b3b79d4f) SHA1(2b960545741d3b9a53ffbf3ed83030392aa02698) ) // in "9" socket
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "tke_18.11c", 0x00000, 0x20000, CRC(ac6e307d) SHA1(b490ce625bb7ce0904b0fd121fbfbd5252790f7a) )
+ ROM_LOAD( "tke_19.12c", 0x20000, 0x20000, CRC(068741db) SHA1(ab48aff639a7ac218b7d5304145e10e92d61fd9f) )
+
+ 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( "tk24b1.1a", 0x0000, 0x0117, CRC(ae4a7645) SHA1(593478a177ea1794c9dfff07c6c6d8624a883eae) )
+ ROM_LOAD( "lwio.11e", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) ) // pal verification required
+ROM_END
+
+/* B-Board 88622B-3 */
+ROM_START( dynwara )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "tke_36.12f", 0x00000, 0x20000, CRC(895991d1) SHA1(56b105b85ccab1c49c89ae8d4aa55c9374077df0) )
+ ROM_LOAD16_BYTE( "tke_42.12h", 0x00001, 0x20000, CRC(c898d2e8) SHA1(c8b10685681bf155ea44e30f3cb0574df7d4f984) )
+ ROM_LOAD16_BYTE( "tke_37.13f", 0x40000, 0x20000, CRC(b228d58c) SHA1(99a1f42d930f788c4f9b410addc95173fda801a2) )
+ ROM_LOAD16_BYTE( "tke_43.13h", 0x40001, 0x20000, CRC(1a14375a) SHA1(2b1a62f7961dceabf98461266da37abfec13aaa9) )
+ ROM_LOAD16_BYTE( "34.10f", 0x80000, 0x20000, CRC(8f663d00) SHA1(77811783c87c7aee058b8533e34049a01047258a) ) // == tkm-9.8h
+ ROM_LOAD16_BYTE( "40.10h", 0x80001, 0x20000, CRC(1586dbf3) SHA1(d9f03e001effdef021a9ceda512e73a24726fca1) ) // == tkm-9.8h
+ ROM_LOAD16_BYTE( "35.11f", 0xc0000, 0x20000, CRC(9db93d7a) SHA1(f75e3fb5273baef0cd5d8eea26f07d5acaa743ca) ) // == tkm-9.8h
+ ROM_LOAD16_BYTE( "41.11h", 0xc0001, 0x20000, CRC(1aae69a4) SHA1(56e4761818f7857bc7520f2b8de90eabd857c577) ) // == tkm-9.8h
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "09.4b", 0x000000, 0x20000, CRC(c3e83c69) SHA1(bd361a39dc6428fea8f56ebbe5cdcc4bf63a51f0) , ROM_SKIP(7) ) // == tkm-5.7a
+ ROMX_LOAD( "01.4a", 0x000001, 0x20000, CRC(187b2886) SHA1(b16121f57926d9fd2c3bc82ae6babf6a2297f140) , ROM_SKIP(7) ) // == tkm-5.7a
+ ROMX_LOAD( "13.9b", 0x000002, 0x20000, CRC(0273d87d) SHA1(7803b04d72eedb4c8b39f63fea458cfef0034813) , ROM_SKIP(7) ) // == tkm-8.9a
+ ROMX_LOAD( "05.9a", 0x000003, 0x20000, CRC(339378b8) SHA1(c3dfe7039e4572b9ef56166346f3cbc6f6ab07c1) , ROM_SKIP(7) ) // == tkm-8.9a
+ ROMX_LOAD( "24.5e", 0x000004, 0x20000, CRC(c6909b6f) SHA1(2828bd6bdc8e3f87a4a37d4e20bdff86cb6850c9) , ROM_SKIP(7) ) // == tkm-6.3a
+ ROMX_LOAD( "17.5c", 0x000005, 0x20000, CRC(2e2f8320) SHA1(7bcb80447d9ce7cc9a38e2506196acd6bf50b49f) , ROM_SKIP(7) ) // == tkm-6.3a
+ ROMX_LOAD( "38.8h", 0x000006, 0x20000, CRC(cd7923ed) SHA1(29187b99847a4b56f2f1763d086b8e7dc5cebed7) , ROM_SKIP(7) ) // == tkm-7.5a
+ ROMX_LOAD( "32.8f", 0x000007, 0x20000, CRC(21a0a453) SHA1(ace38c5943f9f744212cfdb7caa2caa43312e82c) , ROM_SKIP(7) ) // == tkm-7.5a
+ ROMX_LOAD( "10.5b", 0x100000, 0x20000, CRC(ff28f8d0) SHA1(c8c4851816f17a4a0494164f5e8cc910f16669e8) , ROM_SKIP(7) ) // == tkm-5.7a
+ ROMX_LOAD( "02.5a", 0x100001, 0x20000, CRC(cc83c02f) SHA1(915e9d7acec1ba7a2035ae140f576839eba8694f) , ROM_SKIP(7) ) // == tkm-5.7a
+ ROMX_LOAD( "14.10b", 0x100002, 0x20000, CRC(58d9b32f) SHA1(c13a12afcb83159b284b95053951dfa1841bb612) , ROM_SKIP(7) ) // == tkm-8.9a
+ ROMX_LOAD( "06.10a", 0x100003, 0x20000, CRC(6f9edd75) SHA1(e8d43c0ec2165e88aefbb5c92048fbcd06fe578b) , ROM_SKIP(7) ) // == tkm-8.9a
+ ROMX_LOAD( "25.7e", 0x100004, 0x20000, CRC(152ea74a) SHA1(c0c56b1bdfa0d7fdea040dbcc6ff871e5957a5b6) , ROM_SKIP(7) ) // == tkm-6.3a
+ ROMX_LOAD( "18.7c", 0x100005, 0x20000, CRC(1833f932) SHA1(81f94d26bdb6758736ca02d7b1772801be4da181) , ROM_SKIP(7) ) // == tkm-6.3a
+ ROMX_LOAD( "39.9h", 0x100006, 0x20000, CRC(bc09b360) SHA1(de2c9a42490db79c8e5fe57b9107f1adbe5dd241) , ROM_SKIP(7) ) // == tkm-7.5a
+ ROMX_LOAD( "33.9f", 0x100007, 0x20000, CRC(89de1533) SHA1(e48312e37c0f98faeec91546acde5daf0da8f6b3) , ROM_SKIP(7) ) // == tkm-7.5a
+ ROMX_LOAD( "11.7b", 0x200000, 0x20000, CRC(29eaf490) SHA1(42fcb67c7014e0ad62cde9e77c79e61268647528) , ROM_SKIP(7) ) // == tkm-1.8a
+ ROMX_LOAD( "03.7a", 0x200001, 0x20000, CRC(7bf51337) SHA1(c21938029641ebcbc484680cf8a57186cdde220f) , ROM_SKIP(7) ) // == tkm-1.8a
+ ROMX_LOAD( "15.11b", 0x200002, 0x20000, CRC(d36cdb91) SHA1(66ab873ce285e857f30294dd1c9b1dda0c6c6b76) , ROM_SKIP(7) ) // == tkm-4.10a
+ ROMX_LOAD( "07.11a", 0x200003, 0x20000, CRC(e04af054) SHA1(f227b8a0a3d8f41e1922d184eaec7a1243c7c3af) , ROM_SKIP(7) ) // == tkm-4.10a
+ ROMX_LOAD( "26.8e", 0x200004, 0x20000, CRC(07fc714b) SHA1(eda97a3c5596ebdfa61bdd01d39647c89b9a2f13) , ROM_SKIP(7) ) // == tkm-2.4a
+ ROMX_LOAD( "19.8c", 0x200005, 0x20000, CRC(7114e5c6) SHA1(2f2925b942af50781857f4fe74e9a58f2cf7b883) , ROM_SKIP(7) ) // == tkm-2.4a
+ ROMX_LOAD( "28.10e", 0x200006, 0x20000, CRC(af62bf07) SHA1(a6e0f598de1fa8a4960e89d655b7514572ed6310) , ROM_SKIP(7) ) // == tkm-3.6a
+ ROMX_LOAD( "21.10c", 0x200007, 0x20000, CRC(523f462a) SHA1(b0fc9e29d6ca44aafb20a62355bde9f4b4cf1e43) , ROM_SKIP(7) ) // == tkm-3.6a
+ ROMX_LOAD( "12.8b", 0x300000, 0x20000, CRC(38652339) SHA1(930a035bbe34c81c26d774d2ab45f53a3a9205fb) , ROM_SKIP(7) ) // == tkm-1.8a
+ ROMX_LOAD( "04.8a", 0x300001, 0x20000, CRC(4951bc0f) SHA1(07f424c147d787321b668d787216733c35e2cff9) , ROM_SKIP(7) ) // == tkm-1.8a
+ ROMX_LOAD( "16.12b", 0x300002, 0x20000, CRC(381608ae) SHA1(666e15e61c7c59df5a97bdc2d77db611d60b3ca8) , ROM_SKIP(7) ) // == tkm-4.10a
+ ROMX_LOAD( "08.12a", 0x300003, 0x20000, CRC(b475d4e9) SHA1(dc5d223bc2a27904e6e38b68507d2e87fbbde158) , ROM_SKIP(7) ) // == tkm-4.10a
+ ROMX_LOAD( "27.9e", 0x300004, 0x20000, CRC(a27e81fa) SHA1(b25854d4a7e52d500c19445badb4cfe745d88d23) , ROM_SKIP(7) ) // == tkm-2.4a
+ ROMX_LOAD( "20.9c", 0x300005, 0x20000, CRC(002796dc) SHA1(2dba0434916dd82c59a66e2f3ce8d3165713c308) , ROM_SKIP(7) ) // == tkm-2.4a
+ ROMX_LOAD( "29.11e", 0x300006, 0x20000, CRC(6b41f82d) SHA1(111af606d8107d377e3af618584a75ed6cfc9bbd) , ROM_SKIP(7) ) // == tkm-3.6a
+ ROMX_LOAD( "22.11c", 0x300007, 0x20000, CRC(52145369) SHA1(bd422f0c51cdd62b69229f926569ad05d430bd57) , ROM_SKIP(7) ) // == tkm-3.6a
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "23.13c", 0x00000, 0x08000, CRC(b3b79d4f) SHA1(2b960545741d3b9a53ffbf3ed83030392aa02698) ) // == tke_17.12b
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "tke_30.12e", 0x00000, 0x20000, CRC(ac6e307d) SHA1(b490ce625bb7ce0904b0fd121fbfbd5252790f7a) ) // == tke_18.11c
+ ROM_LOAD( "tke_31.13e", 0x20000, 0x20000, CRC(068741db) SHA1(ab48aff639a7ac218b7d5304145e10e92d61fd9f) ) // == tke_19.12c
+
+ 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( "tk22b.1a", 0x0000, 0x0117, CRC(1a1ab6d7) SHA1(eacd3a21a09683e1d8ad36215c1f8ea96a1f7c12) )
+ ROM_LOAD( "lwio.12c", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) )
+ROM_END
+
+/* B-Board 88622B-3 */
+ROM_START( dynwarj )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "36.12f", 0x00000, 0x20000, CRC(1a516657) SHA1(f5c7c3bfd482eb59221cfd3eec4d47e717b04efa) )
+ ROM_LOAD16_BYTE( "42.12h", 0x00001, 0x20000, CRC(12a290a0) SHA1(29fd3f77c497ef8db48121301beab2862ca380b4) )
+ ROM_LOAD16_BYTE( "37.13f", 0x40000, 0x20000, CRC(932fc943) SHA1(1bd1c696072e61db791c075fae8936dece73d1d8) )
+ ROM_LOAD16_BYTE( "43.13h", 0x40001, 0x20000, CRC(872ad76d) SHA1(77cfb380dd358eb9e65894a026e0718918c5b68f) )
+ ROM_LOAD16_BYTE( "34.10f", 0x80000, 0x20000, CRC(8f663d00) SHA1(77811783c87c7aee058b8533e34049a01047258a) ) // == tkm-9.8h
+ ROM_LOAD16_BYTE( "40.10h", 0x80001, 0x20000, CRC(1586dbf3) SHA1(d9f03e001effdef021a9ceda512e73a24726fca1) ) // == tkm-9.8h
+ ROM_LOAD16_BYTE( "35.11f", 0xc0000, 0x20000, CRC(9db93d7a) SHA1(f75e3fb5273baef0cd5d8eea26f07d5acaa743ca) ) // == tkm-9.8h
+ ROM_LOAD16_BYTE( "41.11h", 0xc0001, 0x20000, CRC(1aae69a4) SHA1(56e4761818f7857bc7520f2b8de90eabd857c577) ) // == tkm-9.8h
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "09.4b", 0x000000, 0x20000, CRC(c3e83c69) SHA1(bd361a39dc6428fea8f56ebbe5cdcc4bf63a51f0) , ROM_SKIP(7) ) // == tkm-5.7a
+ ROMX_LOAD( "01.4a", 0x000001, 0x20000, CRC(187b2886) SHA1(b16121f57926d9fd2c3bc82ae6babf6a2297f140) , ROM_SKIP(7) ) // == tkm-5.7a
+ ROMX_LOAD( "13.9b", 0x000002, 0x20000, CRC(0273d87d) SHA1(7803b04d72eedb4c8b39f63fea458cfef0034813) , ROM_SKIP(7) ) // == tkm-8.9a
+ ROMX_LOAD( "05.9a", 0x000003, 0x20000, CRC(339378b8) SHA1(c3dfe7039e4572b9ef56166346f3cbc6f6ab07c1) , ROM_SKIP(7) ) // == tkm-8.9a
+ ROMX_LOAD( "24.5e", 0x000004, 0x20000, CRC(c6909b6f) SHA1(2828bd6bdc8e3f87a4a37d4e20bdff86cb6850c9) , ROM_SKIP(7) ) // == tkm-6.3a
+ ROMX_LOAD( "17.5c", 0x000005, 0x20000, CRC(2e2f8320) SHA1(7bcb80447d9ce7cc9a38e2506196acd6bf50b49f) , ROM_SKIP(7) ) // == tkm-6.3a
+ ROMX_LOAD( "38.8h", 0x000006, 0x20000, CRC(cd7923ed) SHA1(29187b99847a4b56f2f1763d086b8e7dc5cebed7) , ROM_SKIP(7) ) // == tkm-7.5a
+ ROMX_LOAD( "32.8f", 0x000007, 0x20000, CRC(21a0a453) SHA1(ace38c5943f9f744212cfdb7caa2caa43312e82c) , ROM_SKIP(7) ) // == tkm-7.5a
+ ROMX_LOAD( "10.5b", 0x100000, 0x20000, CRC(ff28f8d0) SHA1(c8c4851816f17a4a0494164f5e8cc910f16669e8) , ROM_SKIP(7) ) // == tkm-5.7a
+ ROMX_LOAD( "02.5a", 0x100001, 0x20000, CRC(cc83c02f) SHA1(915e9d7acec1ba7a2035ae140f576839eba8694f) , ROM_SKIP(7) ) // == tkm-5.7a
+ ROMX_LOAD( "14.10b", 0x100002, 0x20000, CRC(18fb232c) SHA1(c690ca668a56c756c04ef5db4900eb3fd34897e7) , ROM_SKIP(7) ) /* 1 byte different from dynwara, pcb verified */
+ ROMX_LOAD( "06.10a", 0x100003, 0x20000, CRC(6f9edd75) SHA1(e8d43c0ec2165e88aefbb5c92048fbcd06fe578b) , ROM_SKIP(7) ) // == tkm-8.9a
+ ROMX_LOAD( "25.7e", 0x100004, 0x20000, CRC(152ea74a) SHA1(c0c56b1bdfa0d7fdea040dbcc6ff871e5957a5b6) , ROM_SKIP(7) ) // == tkm-6.3a
+ ROMX_LOAD( "18.7c", 0x100005, 0x20000, CRC(1833f932) SHA1(81f94d26bdb6758736ca02d7b1772801be4da181) , ROM_SKIP(7) ) // == tkm-6.3a
+ ROMX_LOAD( "39.9h", 0x100006, 0x20000, CRC(bc09b360) SHA1(de2c9a42490db79c8e5fe57b9107f1adbe5dd241) , ROM_SKIP(7) ) // == tkm-7.5a
+ ROMX_LOAD( "33.9f", 0x100007, 0x20000, CRC(89de1533) SHA1(e48312e37c0f98faeec91546acde5daf0da8f6b3) , ROM_SKIP(7) ) // == tkm-7.5a
+ ROMX_LOAD( "11.7b", 0x200000, 0x20000, CRC(29eaf490) SHA1(42fcb67c7014e0ad62cde9e77c79e61268647528) , ROM_SKIP(7) ) // == tkm-1.8a
+ ROMX_LOAD( "03.7a", 0x200001, 0x20000, CRC(7bf51337) SHA1(c21938029641ebcbc484680cf8a57186cdde220f) , ROM_SKIP(7) ) // == tkm-1.8a
+ ROMX_LOAD( "15.11b", 0x200002, 0x20000, CRC(d36cdb91) SHA1(66ab873ce285e857f30294dd1c9b1dda0c6c6b76) , ROM_SKIP(7) ) // == tkm-4.10a
+ ROMX_LOAD( "07.11a", 0x200003, 0x20000, CRC(e04af054) SHA1(f227b8a0a3d8f41e1922d184eaec7a1243c7c3af) , ROM_SKIP(7) ) // == tkm-4.10a
+ ROMX_LOAD( "26.8e", 0x200004, 0x20000, CRC(07fc714b) SHA1(eda97a3c5596ebdfa61bdd01d39647c89b9a2f13) , ROM_SKIP(7) ) // == tkm-2.4a
+ ROMX_LOAD( "19.8c", 0x200005, 0x20000, CRC(7114e5c6) SHA1(2f2925b942af50781857f4fe74e9a58f2cf7b883) , ROM_SKIP(7) ) // == tkm-2.4a
+ ROMX_LOAD( "28.10e", 0x200006, 0x20000, CRC(af62bf07) SHA1(a6e0f598de1fa8a4960e89d655b7514572ed6310) , ROM_SKIP(7) ) // == tkm-3.6a
+ ROMX_LOAD( "21.10c", 0x200007, 0x20000, CRC(523f462a) SHA1(b0fc9e29d6ca44aafb20a62355bde9f4b4cf1e43) , ROM_SKIP(7) ) // == tkm-3.6a
+ ROMX_LOAD( "12.8b", 0x300000, 0x20000, CRC(38652339) SHA1(930a035bbe34c81c26d774d2ab45f53a3a9205fb) , ROM_SKIP(7) ) // == tkm-1.8a
+ ROMX_LOAD( "04.8a", 0x300001, 0x20000, CRC(4951bc0f) SHA1(07f424c147d787321b668d787216733c35e2cff9) , ROM_SKIP(7) ) // == tkm-1.8a
+ ROMX_LOAD( "16.12b", 0x300002, 0x20000, CRC(381608ae) SHA1(666e15e61c7c59df5a97bdc2d77db611d60b3ca8) , ROM_SKIP(7) ) // == tkm-4.10a
+ ROMX_LOAD( "08.12a", 0x300003, 0x20000, CRC(b475d4e9) SHA1(dc5d223bc2a27904e6e38b68507d2e87fbbde158) , ROM_SKIP(7) ) // == tkm-4.10a
+ ROMX_LOAD( "27.9e", 0x300004, 0x20000, CRC(a27e81fa) SHA1(b25854d4a7e52d500c19445badb4cfe745d88d23) , ROM_SKIP(7) ) // == tkm-2.4a
+ ROMX_LOAD( "20.9c", 0x300005, 0x20000, CRC(002796dc) SHA1(2dba0434916dd82c59a66e2f3ce8d3165713c308) , ROM_SKIP(7) ) // == tkm-2.4a
+ ROMX_LOAD( "29.11e", 0x300006, 0x20000, CRC(6b41f82d) SHA1(111af606d8107d377e3af618584a75ed6cfc9bbd) , ROM_SKIP(7) ) // == tkm-3.6a
+ ROMX_LOAD( "22.11c", 0x300007, 0x20000, CRC(52145369) SHA1(bd422f0c51cdd62b69229f926569ad05d430bd57) , ROM_SKIP(7) ) // == tkm-3.6a
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "23.13c", 0x00000, 0x08000, CRC(b3b79d4f) SHA1(2b960545741d3b9a53ffbf3ed83030392aa02698) ) // == tke_17.12b
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "30.12e", 0x00000, 0x20000, CRC(7e5f6cb4) SHA1(c7b6b7d6dfe5f9f0e1521e7ce990229f480cf68d) )
+ ROM_LOAD( "31.13e", 0x20000, 0x20000, CRC(4a30c737) SHA1(426eb90f2edf73eb468c94b4a094da3d46acbab2) )
+
+ 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( "tk22b.1a", 0x0000, 0x0117, CRC(1a1ab6d7) SHA1(eacd3a21a09683e1d8ad36215c1f8ea96a1f7c12) )
+ ROM_LOAD( "lwio.12c", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) )
+ROM_END
+
+/* B-Board 91634B-2, Japan Resale Ver. */
+ROM_START( dynwarjr )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "tk1j_23.8f", 0x00000, 0x80000, CRC(088a3009) SHA1(d4c8273d19291d278d2ff895712dfbd8dfda6c84) )
+ ROM_LOAD16_WORD_SWAP( "tk1j_22.7f", 0x80000, 0x80000, CRC(93654bcf) SHA1(c72daeb2a98d350568555059a3225343c219a1d2) ) // == tkm-9.8h
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk1_01.3a", 0x000000, 0x80000, CRC(f64bb6a0) SHA1(8c0ae0305704ad876bb1938e46550c68b0de8e8e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tkm-5.7a
+ ROMX_LOAD( "tk1_02.4a", 0x000002, 0x80000, CRC(21fe6274) SHA1(f92e509d88d5e264be9c7812966d64ad9ac518e7) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tkm-8.9a
+ ROMX_LOAD( "tk1_03.5a", 0x000004, 0x80000, CRC(0bf228cb) SHA1(e72957155cb459c4dee50df2e53256f271528964) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tkm-6.3a
+ ROMX_LOAD( "tk1_04.6a", 0x000006, 0x80000, CRC(1255dfb1) SHA1(c943e3c989d5b20fbe24e38e54ee8ca294b3d182) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tkm-7.5a
+ ROMX_LOAD( "tk1_05.7a", 0x200000, 0x80000, CRC(44f7661e) SHA1(f29b5ad0c5dfd91a56a4a1084ce578cfe496dd6f) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tkm-1.8a
+ ROMX_LOAD( "tk1_06.8a", 0x200002, 0x80000, CRC(a54c515d) SHA1(bfa457cef7e29ae56ee9b10f60e233d82b4efc61) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tkm-4.10a
+ ROMX_LOAD( "tk1_07.9a", 0x200004, 0x80000, CRC(ca5c687c) SHA1(de47cb5a071ffb3ff408f60d45b79345032232a7) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tkm-2.4a
+ ROMX_LOAD( "tk1_08.10a", 0x200006, 0x80000, CRC(f9fe6591) SHA1(260da5f9e305cccd621b8b5b2073c79e161ddeb0) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tkm-3.6a
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "tk1_09.12a", 0x00000, 0x08000, CRC(db77d899) SHA1(314a8134ed15f603f1c7894fd50b14aef5c9fc7a) )
+ ROM_CONTINUE( 0x10000, 0x18000 ) // second half of ROM is empty, not mapped in memory
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "tk1_18.11c", 0x00000, 0x20000, CRC(7e5f6cb4) SHA1(c7b6b7d6dfe5f9f0e1521e7ce990229f480cf68d) )
+ ROM_LOAD( "tk1_19.12c", 0x20000, 0x20000, CRC(4a30c737) SHA1(426eb90f2edf73eb468c94b4a094da3d46acbab2) )
+
+ 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( "tk163b.1a", 0x0000, 0x0117, NO_DUMP )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 89624B-3 */
+ROM_START( willow )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "wle_30.11f", 0x00000, 0x20000, CRC(15372aa2) SHA1(ba8e1984180b0438255dfc68dc4eb560f3ecbe56) )
+ ROM_LOAD16_BYTE( "wle_35.11h", 0x00001, 0x20000, CRC(2e64623b) SHA1(473f6fd10b2456553f1cbf92fd9a61ce94b1c59f) )
+ ROM_LOAD16_BYTE( "wlu_31.12f", 0x40000, 0x20000, CRC(0eb48a83) SHA1(28c40c4b5d767f88922cd899e948abf11a85a864) )
+ ROM_LOAD16_BYTE( "wlu_36.12h", 0x40001, 0x20000, CRC(36100209) SHA1(63c9338e71dba8b52daffba50b4bca31aaa10d9e) )
+ ROM_LOAD16_WORD_SWAP( "wlm-32.8h", 0x80000, 0x80000, CRC(dfd9f643) SHA1(9c760c30af593a87e7fd39fb213a4c73c68ca440) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "wlm-7.7a", 0x000000, 0x80000, CRC(afa74b73) SHA1(09081926260c76986a13ac5351dddd2ea11d7a10) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "5" socket
+ ROMX_LOAD( "wlm-5.9a", 0x000002, 0x80000, CRC(12a0dc0b) SHA1(fea235ce9489f04919daf52f4d3f3bac9b558316) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "7" socket
+ ROMX_LOAD( "wlm-3.3a", 0x000004, 0x80000, CRC(c6f2abce) SHA1(ff5fcfe417c43b4747bbe12db6052fdb60f5f0e4) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket
+ ROMX_LOAD( "wlm-1.5a", 0x000006, 0x80000, CRC(4aa4c6d3) SHA1(7dd6f18f6126c380821a2ca8955439fd6864f4c6) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket
+ ROMX_LOAD( "wl_24.7d", 0x200000, 0x20000, CRC(6f0adee5) SHA1(07b18e51b376001f25173b78e0e816f252400210) , ROM_SKIP(7) )
+ ROMX_LOAD( "wl_14.7c", 0x200001, 0x20000, CRC(9cf3027d) SHA1(1e8eb20d51a54f6f756c0ab9395ac38b96e67fb2) , ROM_SKIP(7) )
+ ROMX_LOAD( "wl_26.9d", 0x200002, 0x20000, CRC(f09c8ecf) SHA1(b39f83e80af010d6481693d9ec8b1d7e258b531d) , ROM_SKIP(7) )
+ ROMX_LOAD( "wl_16.9c", 0x200003, 0x20000, CRC(e35407aa) SHA1(7ddae9cef96839da72488c1fe73268c50e0262ff) , ROM_SKIP(7) )
+ ROMX_LOAD( "wl_20.3d", 0x200004, 0x20000, CRC(84992350) SHA1(f0ebd810ce099337cda94222dccce8ab9b3c3281) , ROM_SKIP(7) )
+ ROMX_LOAD( "wl_10.3c", 0x200005, 0x20000, CRC(b87b5a36) SHA1(25fb8f9698142473233ee509d4146089920e94e1) , ROM_SKIP(7) )
+ ROMX_LOAD( "wl_22.5d", 0x200006, 0x20000, CRC(fd3f89f0) SHA1(51ff95cff56ac78682ea56401b35a0aa63cef8cb) , ROM_SKIP(7) )
+ ROMX_LOAD( "wl_12.5c", 0x200007, 0x20000, CRC(7da49d69) SHA1(b0ae7ac4f858ee8d72e6877c4275da7a631e2e4c) , ROM_SKIP(7) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "wl_09.12b", 0x00000, 0x08000, CRC(f6b3d060) SHA1(0ed2e2f64ba53ba2c371b66ab1e52e40b16d8baf) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "wl_18.11c", 0x00000, 0x20000, CRC(bde23d4d) SHA1(d1fee2f99c858dfb07edcd600da491c7b656afe0) )
+ ROM_LOAD( "wl_19.12c", 0x20000, 0x20000, CRC(683898f5) SHA1(316a77b663d78c8b9ff6d85756cb05aaaeef4003) )
+
+ 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( "wl24b.1a", 0x0000, 0x0117, CRC(7101cdf1) SHA1(c848f109d09641b3159dbbb2d2ee49cf30bc9e9c) )
+ ROM_LOAD( "lwio.11e", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) )
+ROM_END
+
+/* B-Board 89624B-3 */
+ROM_START( willowu )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "wlu_30.11f", 0x00000, 0x20000, CRC(d604dbb1) SHA1(b5d78871011ff11a67f1a0cad147cd4de8d67f35) )
+ ROM_LOAD16_BYTE( "35.11h", 0x00001, 0x20000, CRC(7a791e77) SHA1(fe1429588b7eceab1d369abe03f2cad8de727f71) )
+ ROM_LOAD16_BYTE( "wlu_31.12f", 0x40000, 0x20000, CRC(0eb48a83) SHA1(28c40c4b5d767f88922cd899e948abf11a85a864) )
+ ROM_LOAD16_BYTE( "wlu_36.12h", 0x40001, 0x20000, CRC(36100209) SHA1(63c9338e71dba8b52daffba50b4bca31aaa10d9e) ) /* seen the same pcb with WL_36.12H */
+ ROM_LOAD16_WORD_SWAP( "wlm-32.8h", 0x80000, 0x80000, CRC(dfd9f643) SHA1(9c760c30af593a87e7fd39fb213a4c73c68ca440) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "wlm-7.7a", 0x000000, 0x80000, CRC(afa74b73) SHA1(09081926260c76986a13ac5351dddd2ea11d7a10) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "5" socket
+ ROMX_LOAD( "wlm-5.9a", 0x000002, 0x80000, CRC(12a0dc0b) SHA1(fea235ce9489f04919daf52f4d3f3bac9b558316) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "7" socket
+ ROMX_LOAD( "wlm-3.3a", 0x000004, 0x80000, CRC(c6f2abce) SHA1(ff5fcfe417c43b4747bbe12db6052fdb60f5f0e4) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket
+ ROMX_LOAD( "wlm-1.5a", 0x000006, 0x80000, CRC(4aa4c6d3) SHA1(7dd6f18f6126c380821a2ca8955439fd6864f4c6) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket
+ ROMX_LOAD( "wl_24.7d", 0x200000, 0x20000, CRC(6f0adee5) SHA1(07b18e51b376001f25173b78e0e816f252400210) , ROM_SKIP(7) )
+ ROMX_LOAD( "wl_14.7c", 0x200001, 0x20000, CRC(9cf3027d) SHA1(1e8eb20d51a54f6f756c0ab9395ac38b96e67fb2) , ROM_SKIP(7) )
+ ROMX_LOAD( "wl_26.9d", 0x200002, 0x20000, CRC(f09c8ecf) SHA1(b39f83e80af010d6481693d9ec8b1d7e258b531d) , ROM_SKIP(7) )
+ ROMX_LOAD( "wl_16.9c", 0x200003, 0x20000, CRC(e35407aa) SHA1(7ddae9cef96839da72488c1fe73268c50e0262ff) , ROM_SKIP(7) )
+ ROMX_LOAD( "wl_20.3d", 0x200004, 0x20000, CRC(84992350) SHA1(f0ebd810ce099337cda94222dccce8ab9b3c3281) , ROM_SKIP(7) )
+ ROMX_LOAD( "wl_10.3c", 0x200005, 0x20000, CRC(b87b5a36) SHA1(25fb8f9698142473233ee509d4146089920e94e1) , ROM_SKIP(7) )
+ ROMX_LOAD( "wl_22.5d", 0x200006, 0x20000, CRC(fd3f89f0) SHA1(51ff95cff56ac78682ea56401b35a0aa63cef8cb) , ROM_SKIP(7) )
+ ROMX_LOAD( "wl_12.5c", 0x200007, 0x20000, CRC(7da49d69) SHA1(b0ae7ac4f858ee8d72e6877c4275da7a631e2e4c) , ROM_SKIP(7) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "wl_09.12b", 0x00000, 0x08000, CRC(f6b3d060) SHA1(0ed2e2f64ba53ba2c371b66ab1e52e40b16d8baf) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "wl_18.11c", 0x00000, 0x20000, CRC(bde23d4d) SHA1(d1fee2f99c858dfb07edcd600da491c7b656afe0) )
+ ROM_LOAD( "wl_19.12c", 0x20000, 0x20000, CRC(683898f5) SHA1(316a77b663d78c8b9ff6d85756cb05aaaeef4003) )
+
+ 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( "wl24b.1a", 0x0000, 0x0117, CRC(7101cdf1) SHA1(c848f109d09641b3159dbbb2d2ee49cf30bc9e9c) )
+ ROM_LOAD( "lwio.11e", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) )
+ROM_END
+
+/* B-Board 89624B-3 */
+/* Note that this set comes from a pcb running on an original Capcom USA Willow arcade cabinet, so even if there is
+ the Japan "warning" it's confirmed to be a genuine USA set and almost certainly the first USA release. Then Capcom
+ removed the incorrect "warning" releasing a new proper set of Willow (USA), as documented above. */
+ROM_START( willowuo )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "wlu_30.11f", 0x00000, 0x20000, CRC(d604dbb1) SHA1(b5d78871011ff11a67f1a0cad147cd4de8d67f35) )
+ ROM_LOAD16_BYTE( "wlu_35.11h", 0x00001, 0x20000, CRC(daee72fe) SHA1(2ec62f44394fac2887821881f56b6f24d05234b3) )
+ ROM_LOAD16_BYTE( "wlu_31.12f", 0x40000, 0x20000, CRC(0eb48a83) SHA1(28c40c4b5d767f88922cd899e948abf11a85a864) )
+ ROM_LOAD16_BYTE( "wlu_36.12h", 0x40001, 0x20000, CRC(36100209) SHA1(63c9338e71dba8b52daffba50b4bca31aaa10d9e) )
+ ROM_LOAD16_WORD_SWAP( "wlm-32.8h", 0x80000, 0x80000, CRC(dfd9f643) SHA1(9c760c30af593a87e7fd39fb213a4c73c68ca440) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "wlm-7.7a", 0x000000, 0x80000, CRC(afa74b73) SHA1(09081926260c76986a13ac5351dddd2ea11d7a10) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "5" socket
+ ROMX_LOAD( "wlm-5.9a", 0x000002, 0x80000, CRC(12a0dc0b) SHA1(fea235ce9489f04919daf52f4d3f3bac9b558316) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "7" socket
+ ROMX_LOAD( "wlm-3.3a", 0x000004, 0x80000, CRC(c6f2abce) SHA1(ff5fcfe417c43b4747bbe12db6052fdb60f5f0e4) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket
+ ROMX_LOAD( "wlm-1.5a", 0x000006, 0x80000, CRC(4aa4c6d3) SHA1(7dd6f18f6126c380821a2ca8955439fd6864f4c6) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket
+ ROMX_LOAD( "wl_24.7d", 0x200000, 0x20000, CRC(6f0adee5) SHA1(07b18e51b376001f25173b78e0e816f252400210) , ROM_SKIP(7) )
+ ROMX_LOAD( "wl_14.7c", 0x200001, 0x20000, CRC(9cf3027d) SHA1(1e8eb20d51a54f6f756c0ab9395ac38b96e67fb2) , ROM_SKIP(7) )
+ ROMX_LOAD( "wl_26.9d", 0x200002, 0x20000, CRC(f09c8ecf) SHA1(b39f83e80af010d6481693d9ec8b1d7e258b531d) , ROM_SKIP(7) )
+ ROMX_LOAD( "wl_16.9c", 0x200003, 0x20000, CRC(e35407aa) SHA1(7ddae9cef96839da72488c1fe73268c50e0262ff) , ROM_SKIP(7) )
+ ROMX_LOAD( "wl_20.3d", 0x200004, 0x20000, CRC(84992350) SHA1(f0ebd810ce099337cda94222dccce8ab9b3c3281) , ROM_SKIP(7) )
+ ROMX_LOAD( "wl_10.3c", 0x200005, 0x20000, CRC(b87b5a36) SHA1(25fb8f9698142473233ee509d4146089920e94e1) , ROM_SKIP(7) )
+ ROMX_LOAD( "wl_22.5d", 0x200006, 0x20000, CRC(fd3f89f0) SHA1(51ff95cff56ac78682ea56401b35a0aa63cef8cb) , ROM_SKIP(7) )
+ ROMX_LOAD( "wl_12.5c", 0x200007, 0x20000, CRC(7da49d69) SHA1(b0ae7ac4f858ee8d72e6877c4275da7a631e2e4c) , ROM_SKIP(7) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "wl_09.12b", 0x00000, 0x08000, CRC(f6b3d060) SHA1(0ed2e2f64ba53ba2c371b66ab1e52e40b16d8baf) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "wl_18.11c", 0x00000, 0x20000, CRC(bde23d4d) SHA1(d1fee2f99c858dfb07edcd600da491c7b656afe0) )
+ ROM_LOAD( "wl_19.12c", 0x20000, 0x20000, CRC(683898f5) SHA1(316a77b663d78c8b9ff6d85756cb05aaaeef4003) )
+
+ 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( "wl24b.1a", 0x0000, 0x0117, CRC(7101cdf1) SHA1(c848f109d09641b3159dbbb2d2ee49cf30bc9e9c) )
+ ROM_LOAD( "lwio.11e", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) )
+ROM_END
+
+/* B-Board 88622B-3 */
+ROM_START( willowj )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "wl_36.12f", 0x00000, 0x20000, CRC(2b0d7cbc) SHA1(58172b4fdf856efa8d77abbde76738de2424f712) )
+ ROM_LOAD16_BYTE( "wl_42.12h", 0x00001, 0x20000, CRC(1ac39615) SHA1(c9fa6d20418b9bdc5a08df1fb86368b40709280a) )
+ ROM_LOAD16_BYTE( "wl_37.13f", 0x40000, 0x20000, CRC(30a717fa) SHA1(cb815e9ee2691761925898e3932b502f8f399cb4) )
+ ROM_LOAD16_BYTE( "wl_43.13h", 0x40001, 0x20000, CRC(d0dddc9e) SHA1(1176b9a43b3355a5ba44e59abde01ee7eaa89c25) )
+ ROM_LOAD16_BYTE( "wl_34.10f", 0x80000, 0x20000, CRC(23a84f7a) SHA1(f7667ffc85e2dfb78f5ed8ea54b6223e7375433a) ) // == wlm-32.8h
+ ROM_LOAD16_BYTE( "wl_40.10h", 0x80001, 0x20000, CRC(c7a0ed21) SHA1(190aec48a8f528652b434425f64ea2e52029ad3d) ) // == wlm-32.8h
+ ROM_LOAD16_BYTE( "wl_35.11f", 0xc0000, 0x20000, CRC(5eff7951) SHA1(f336bfd07f3083e3b3e72c61d03abb52d443204d) ) // == wlm-32.8h
+ ROM_LOAD16_BYTE( "wl_41.11h", 0xc0001, 0x20000, CRC(8d6477a3) SHA1(1bdb98f89ec8c2dcd47ab90bdd1be862ea59a16b) ) // == wlm-32.8h
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "wl_09.4b", 0x000000, 0x20000, CRC(05aa71b4) SHA1(791f845928ff164eace07cfcc35d0bd9d7cbb2d0) , ROM_SKIP(7) ) // == wlm-7.7a
+ ROMX_LOAD( "wl_01.4a", 0x000001, 0x20000, CRC(08c2df12) SHA1(269ca05ff6f9928e3b46f43b262c03ac3dd768b8) , ROM_SKIP(7) ) // == wlm-7.7a
+ ROMX_LOAD( "wl_13.9b", 0x000002, 0x20000, CRC(1f7c87cd) SHA1(6817c8b42ef4e8183fc2fbd2765e49ac955cca80) , ROM_SKIP(7) ) // == wlm-5.9a
+ ROMX_LOAD( "wl_05.9a", 0x000003, 0x20000, CRC(f5254bf2) SHA1(a53973b98b8e8903c731eb2514cb9ce4060d5164) , ROM_SKIP(7) ) // == wlm-5.9a
+ ROMX_LOAD( "wl_24.5e", 0x000004, 0x20000, CRC(d9d73ba1) SHA1(5f7b5e7e6fe64106cd96a968a54556e4f5ad9387) , ROM_SKIP(7) ) // == wlm-3.3a
+ ROMX_LOAD( "wl_17.5c", 0x000005, 0x20000, CRC(a652f30c) SHA1(b150d8978d37907c6d17042476c4608c76c4ea3f) , ROM_SKIP(7) ) // == wlm-3.3a
+ ROMX_LOAD( "wl_38.8h", 0x000006, 0x20000, CRC(f6f9111b) SHA1(bd44d1b6084fe2c09cdd91b5ad6eff7a84f3e601) , ROM_SKIP(7) ) // == wlm-1.5a
+ ROMX_LOAD( "wl_32.8f", 0x000007, 0x20000, CRC(10f64027) SHA1(abf387ba7d8f0530a562a984c08345a149cfa226) , ROM_SKIP(7) ) // == wlm-1.5a
+ ROMX_LOAD( "wl_10.5b", 0x100000, 0x20000, CRC(dbba0a3f) SHA1(38c0cdd87e6631721f35a0b85fd5165940454603) , ROM_SKIP(7) ) // == wlm-7.7a
+ ROMX_LOAD( "wl_02.5a", 0x100001, 0x20000, CRC(86fba7a5) SHA1(9389ad4e0968b3edd4baeac8b29637618f49dbfb) , ROM_SKIP(7) ) // == wlm-7.7a
+ ROMX_LOAD( "wl_14.10b", 0x100002, 0x20000, CRC(7d5798b2) SHA1(7dfcc172e5df0e8f4b9188381463f9eca00945dc) , ROM_SKIP(7) ) // == wlm-5.9a
+ ROMX_LOAD( "wl_06.10a", 0x100003, 0x20000, CRC(1f052948) SHA1(ca3a6be94ae50fa50604ee52704792b22cbbc083) , ROM_SKIP(7) ) // == wlm-5.9a
+ ROMX_LOAD( "wl_25.7e", 0x100004, 0x20000, CRC(857d17d2) SHA1(e6b383df9571df6743a7aa3087f0632dc4e6143b) , ROM_SKIP(7) ) // == wlm-3.3a
+ ROMX_LOAD( "wl_18.7c", 0x100005, 0x20000, CRC(316c7fbc) SHA1(631682c7f14fa73f5f5a4fb747bfb45d9613e507) , ROM_SKIP(7) ) // == wlm-3.3a
+ ROMX_LOAD( "wl_39.9h", 0x100006, 0x20000, CRC(e6fce9b0) SHA1(46d50cf32c3518ab3dc717553c5375f3cb022cde) , ROM_SKIP(7) ) // == wlm-1.5a
+ ROMX_LOAD( "wl_33.9f", 0x100007, 0x20000, CRC(a15d5517) SHA1(03a30e216f8240383d5fa9736b4fe5119d231685) , ROM_SKIP(7) ) // == wlm-1.5a
+ ROMX_LOAD( "wl_11.7b", 0x200000, 0x20000, CRC(6f0adee5) SHA1(07b18e51b376001f25173b78e0e816f252400210) , ROM_SKIP(7) ) // == wl_24.7d
+ ROMX_LOAD( "wl_03.7a", 0x200001, 0x20000, CRC(9cf3027d) SHA1(1e8eb20d51a54f6f756c0ab9395ac38b96e67fb2) , ROM_SKIP(7) ) // == wl_14.7c
+ ROMX_LOAD( "wl_15.11b", 0x200002, 0x20000, CRC(f09c8ecf) SHA1(b39f83e80af010d6481693d9ec8b1d7e258b531d) , ROM_SKIP(7) ) // == wl_26.9d
+ ROMX_LOAD( "wl_07.11a", 0x200003, 0x20000, CRC(e35407aa) SHA1(7ddae9cef96839da72488c1fe73268c50e0262ff) , ROM_SKIP(7) ) // == wl_16.9c
+ ROMX_LOAD( "wl_26.8e", 0x200004, 0x20000, CRC(84992350) SHA1(f0ebd810ce099337cda94222dccce8ab9b3c3281) , ROM_SKIP(7) ) // == wl_20.3d
+ ROMX_LOAD( "wl_19.8c", 0x200005, 0x20000, CRC(b87b5a36) SHA1(25fb8f9698142473233ee509d4146089920e94e1) , ROM_SKIP(7) ) // == wl_10.3c
+ ROMX_LOAD( "wl_28.10e", 0x200006, 0x20000, CRC(fd3f89f0) SHA1(51ff95cff56ac78682ea56401b35a0aa63cef8cb) , ROM_SKIP(7) ) // == wl_22.5d
+ ROMX_LOAD( "wl_21.10c", 0x200007, 0x20000, CRC(7da49d69) SHA1(b0ae7ac4f858ee8d72e6877c4275da7a631e2e4c) , ROM_SKIP(7) ) // == wl_12.5c
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "wl_23.13c", 0x00000, 0x08000, CRC(f6b3d060) SHA1(0ed2e2f64ba53ba2c371b66ab1e52e40b16d8baf) ) // == wl_09.12b
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "wl_30.12e", 0x00000, 0x20000, CRC(bde23d4d) SHA1(d1fee2f99c858dfb07edcd600da491c7b656afe0) ) // == wl_18.11c
+ ROM_LOAD( "wl_31.13e", 0x20000, 0x20000, CRC(683898f5) SHA1(316a77b663d78c8b9ff6d85756cb05aaaeef4003) ) // == wl_19.12c
+
+ 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( "wl22b.1a", 0x0000, 0x0117, NO_DUMP )
+ ROM_LOAD( "lwio.12c", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) )
+ROM_END
+
+/* B-Board 89624B-2 */
+ROM_START( unsquad )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "aru_30.11f", 0x00000, 0x20000, CRC(24d8f88d) SHA1(9c39aa1140e92307d6d9c0ca198003282bf78c78) )
+ ROM_LOAD16_BYTE( "aru_35.11h", 0x00001, 0x20000, CRC(8b954b59) SHA1(33114f1417d48f60c6da3e14a094be7c0f0fd979) )
+ ROM_LOAD16_BYTE( "aru_31.12f", 0x40000, 0x20000, CRC(33e9694b) SHA1(90db3052ac2ff859ede8473dd13e0f5be148590c) )
+ ROM_LOAD16_BYTE( "aru_36.12h", 0x40001, 0x20000, CRC(7cc8fb9e) SHA1(f70118d1a368fd4795d9953c55d283305d1f9630) )
+ ROM_LOAD16_WORD_SWAP( "ar-32m.8h", 0x80000, 0x80000, CRC(ae1d7fb0) SHA1(bb51e77574db5e2d807c4ca8e85a5d9661f5d3b3) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "ar-5m.7a", 0x000000, 0x80000, CRC(bf4575d8) SHA1(1b268e1698be8ff9c16f80f7b9081b6be9f72601) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ar-7m.9a", 0x000002, 0x80000, CRC(a02945f4) SHA1(ff35cdbd6c1e43b16a906f68e416559cb3d5746b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ar-1m.3a", 0x000004, 0x80000, CRC(5965ca8d) SHA1(49abf80fc012a7f73306139a2871aeac7fd6a3d0) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ar-3m.5a", 0x000006, 0x80000, CRC(ac6db17d) SHA1(78eef9ba6a392859f70467f6d7cb5aa91964abed) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "ar_09.12b", 0x00000, 0x08000, CRC(f3dd1367) SHA1(09eef72e862ac6b1a5cce5a45938b45bf4e456ad) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "aru_18.11c", 0x00000, 0x20000, CRC(584b43a9) SHA1(7820815c8c67d484baf2fdad7e55d8c14b98b860) )
+ /* 20000-3ffff empty */
+
+ 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( "ar24b.1a", 0x0000, 0x0117, CRC(09a51271) SHA1(147f53f426f258ad127157967fa59d4098e5ed16) )
+ ROM_LOAD( "lwio.11e", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) )
+ROM_END
+
+/* B-Board 88622B-3 */
+ROM_START( area88 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "ar_36.12f", 0x00000, 0x20000, CRC(65030392) SHA1(d9dea5cfde28345716b0e519ee033c475be0454b) )
+ ROM_LOAD16_BYTE( "ar_42.12h", 0x00001, 0x20000, CRC(c48170de) SHA1(e968522dbdd217dd8e4cd6aaeaef801c63488c1d) )
+ ROM_LOAD16_BYTE( "ar_37.13f", 0x40000, 0x20000, CRC(33e9694b) SHA1(90db3052ac2ff859ede8473dd13e0f5be148590c) ) // == aru_31.12f
+ ROM_LOAD16_BYTE( "ar_43.13h", 0x40001, 0x20000, CRC(7cc8fb9e) SHA1(f70118d1a368fd4795d9953c55d283305d1f9630) ) // == aru_36.12h
+ ROM_LOAD16_BYTE( "ar_34.10f", 0x80000, 0x20000, CRC(f6e80386) SHA1(462c1e9981b733df03e4d084df2d1fc58cf2022c) ) // == ar-32m.8h
+ ROM_LOAD16_BYTE( "ar_40.10h", 0x80001, 0x20000, CRC(be36c145) SHA1(9ada7ac7361ff8871e2ae61f75e4e5d98936cdc3) ) // == ar-32m.8h
+ ROM_LOAD16_BYTE( "ar_35.11f", 0xc0000, 0x20000, CRC(86d98ff3) SHA1(18137974fb7812b45f0d93e584ed14d0af2e6a3e) ) // == ar-32m.8h
+ ROM_LOAD16_BYTE( "ar_41.11h", 0xc0001, 0x20000, CRC(758893d3) SHA1(1245bfd35b0f12bd701cd28c9ce2e85e166a4de2) ) // == ar-32m.8h
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "ar_09.4b", 0x000000, 0x20000, CRC(db9376f8) SHA1(501fc5543c66509f8fc1075c128fb01606ced2ad) , ROM_SKIP(7) ) // == ar-5m.7a
+ ROMX_LOAD( "ar_01.4a", 0x000001, 0x20000, CRC(392151b4) SHA1(ba3c69d852f750b43d8b4b2b58fcb7977cc0e5de) , ROM_SKIP(7) ) // == ar-5m.7a
+ ROMX_LOAD( "ar_13.9b", 0x000002, 0x20000, CRC(81436481) SHA1(85ceba63382959f7084bacb6aedcef80ddd8ad6b) , ROM_SKIP(7) ) // == ar-7m.9a
+ ROMX_LOAD( "ar_05.9a", 0x000003, 0x20000, CRC(e246ed9f) SHA1(aaaad5c81bf7c4ec4b2339fd8f0364096c86e903) , ROM_SKIP(7) ) // == ar-7m.9a
+ ROMX_LOAD( "ar_24.5e", 0x000004, 0x20000, CRC(9cd6e2a3) SHA1(186e756af496b0fb5b65cf7a106fe32c78d542c9) , ROM_SKIP(7) ) // == ar-1m.3a
+ ROMX_LOAD( "ar_17.5c", 0x000005, 0x20000, CRC(0b8e0df4) SHA1(ac8ab79e7237b72df9f42292a0c58aa56effe3a1) , ROM_SKIP(7) ) // == ar-1m.3a
+ ROMX_LOAD( "ar_38.8h", 0x000006, 0x20000, CRC(8b9e75b9) SHA1(eeeaa8f84167f7e8127b90318f052fe5e00c36ac) , ROM_SKIP(7) ) // == ar-3m.5a
+ ROMX_LOAD( "ar_32.8f", 0x000007, 0x20000, CRC(db6acdcf) SHA1(5842e29a0e29b4869b2c34a5f47f64c1a1f4609a) , ROM_SKIP(7) ) // == ar-3m.5a
+ ROMX_LOAD( "ar_10.5b", 0x100000, 0x20000, CRC(4219b622) SHA1(ecfc47687b466893b9c8587224830d600c754d17) , ROM_SKIP(7) ) // == ar-5m.7a
+ ROMX_LOAD( "ar_02.5a", 0x100001, 0x20000, CRC(bac5dec5) SHA1(e69f5c4e5c07db46f088d3eabfd394e7d639fea0) , ROM_SKIP(7) ) // == ar-5m.7a
+ ROMX_LOAD( "ar_14.10b", 0x100002, 0x20000, CRC(e6bae179) SHA1(31af958dedce5fcc1a7c159f96af4a3a1a4651fb) , ROM_SKIP(7) ) // == ar-7m.9a
+ ROMX_LOAD( "ar_06.10a", 0x100003, 0x20000, CRC(c8f04223) SHA1(c96eba0ce53e8505668dc646344e5b2456d60546) , ROM_SKIP(7) ) // == ar-7m.9a
+ ROMX_LOAD( "ar_25.7e", 0x100004, 0x20000, CRC(15ccf981) SHA1(2dd7a2d573089aa70b33586d6d9e6b8d816bd28e) , ROM_SKIP(7) ) // == ar-1m.3a
+ ROMX_LOAD( "ar_18.7c", 0x100005, 0x20000, CRC(9336db6a) SHA1(1704d6f0de08ed283c26ee0bcbb82a838060fe70) , ROM_SKIP(7) ) // == ar-1m.3a
+ ROMX_LOAD( "ar_39.9h", 0x100006, 0x20000, CRC(9b8e1363) SHA1(f830834305248446235cc6b17b17f7f0dd6baa03) , ROM_SKIP(7) ) // == ar-3m.5a
+ ROMX_LOAD( "ar_33.9f", 0x100007, 0x20000, CRC(3968f4b5) SHA1(42722c61c4b514b15f1594fdad688375e2c51e71) , ROM_SKIP(7) ) // == ar-3m.5a
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "ar_23.13c", 0x00000, 0x08000, CRC(f3dd1367) SHA1(09eef72e862ac6b1a5cce5a45938b45bf4e456ad) ) // == ar_09.12b
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "ar_30.12e", 0x00000, 0x20000, CRC(584b43a9) SHA1(7820815c8c67d484baf2fdad7e55d8c14b98b860) ) // == aru_18.11c
+ /* 20000-3ffff empty */
+
+ 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( "ar22b.1a", 0x0000, 0x0117, CRC(f1db9030) SHA1(85a6eefb93e7bf7c7d3980737365a425c5324c08) )
+ ROM_LOAD( "lwio.12c", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) )
+ROM_END
+
+/* B-Board 91634B-2, Japan Resale Ver. */
+ROM_START( area88r )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "araj_23.8f", 0x00000, 0x80000, CRC(7045d6cb) SHA1(5f8f3160e8e960ee67778232368d4f3430a0dade) )
+ ROM_LOAD16_WORD_SWAP( "araj_22.7f", 0x80000, 0x80000, CRC(9913002e) SHA1(b2da8ad34bf4ea51679d35d91601faa91ef40ae5) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "ara_01.3a", 0x000000, 0x80000, CRC(bf4575d8) SHA1(1b268e1698be8ff9c16f80f7b9081b6be9f72601) , ROM_GROUPWORD | ROM_SKIP(6) ) // == ar-5m.7a
+ ROMX_LOAD( "ara_02.4a", 0x000002, 0x80000, CRC(a02945f4) SHA1(ff35cdbd6c1e43b16a906f68e416559cb3d5746b) , ROM_GROUPWORD | ROM_SKIP(6) ) // == ar-7m.9a
+ ROMX_LOAD( "ara_03.5a", 0x000004, 0x80000, CRC(5965ca8d) SHA1(49abf80fc012a7f73306139a2871aeac7fd6a3d0) , ROM_GROUPWORD | ROM_SKIP(6) ) // == ar-1m.3a
+ ROMX_LOAD( "ara_04.6a", 0x000006, 0x80000, CRC(ac6db17d) SHA1(78eef9ba6a392859f70467f6d7cb5aa91964abed) , ROM_GROUPWORD | ROM_SKIP(6) ) // == ar-3m.5a
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "ara_09.12a", 0x00000, 0x08000, CRC(af88359c) SHA1(5b7d872700a074fe1a4e11722e73374a23fa5e99) ) // == ar_09.12b + garbage
+ ROM_CONTINUE( 0x10000, 0x18000 ) // second half of ROM is unused, not mapped in memory
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "ara_18.11c", 0x00000, 0x20000, CRC(584b43a9) SHA1(7820815c8c67d484baf2fdad7e55d8c14b98b860) ) // == aru_18.11c
+ /* 20000-3ffff empty */
+
+ 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( "ara63b.1a", 0x0000, 0x0117, BAD_DUMP CRC(f5569c93) SHA1(7db7cf23639036590eef1e5e309f08560859efaf) ) /* Handcrafted but works on actual PCB. Redump needed */
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 89624B-3 */
+ROM_START( ffight )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "ff_36.11f", 0x00000, 0x20000, CRC(f9a5ce83) SHA1(0756ae576a1f6d5b8b22f8630dca40ef38567ea6) ) // in "30" socket
+ ROM_LOAD16_BYTE( "ff_42.11h", 0x00001, 0x20000, CRC(65f11215) SHA1(5045a467f3e228c02b4a355b52f58263ffa90113) ) // in "35" socket
+ ROM_LOAD16_BYTE( "ff_37.12f", 0x40000, 0x20000, CRC(e1033784) SHA1(38f44434c8befd623953ae23d6e5ff4e201d6627) ) // in "31" socket
+ ROM_LOAD16_BYTE( "ffe_43.12h", 0x40001, 0x20000, CRC(995e968a) SHA1(de16873d1639ac1738be0937270b108a9914f263) ) // in "36" socket
+ 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) ) /* seen the same pcb with LWIO.11E */
+ROM_END
+
+/* B-Board 89624B-3 */
+ROM_START( ffighta )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "ffe_30.11f", 0x00000, 0x20000, CRC(2347bf51) SHA1(de05b347a8b4df4889d4e594e1abf741afdf0ab4) )
+ ROM_LOAD16_BYTE( "ffe_35.11h", 0x00001, 0x20000, CRC(5f694ecc) SHA1(57c45ffcada0cdaf1f97c7e33c8300539828a238) )
+ ROM_LOAD16_BYTE( "ffe_31.12f", 0x40000, 0x20000, CRC(6dc6b792) SHA1(553abebed2a1fa1ee2d85a4117f40d90e2321cea) )
+ ROM_LOAD16_BYTE( "ffe_36.12h", 0x40001, 0x20000, CRC(b36a0b99) SHA1(cfb27987ee3d54c83c6fb73437a79dcdd96df22f) )
+ 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( "ffe_23.12b", 0x00000, 0x08000, CRC(b8367eb5) SHA1(ec3db29fdd6200e9a8f4f8073a7e34aef731354f) ) // == ff_09.12b /* label is FFE_23, pcb verified */
+ 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( "lwio.11e", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) )
+ROM_END
+
+/* B-Board 89624B-3 */
+ROM_START( ffightu )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "ff_36.11f", 0x00000, 0x20000, CRC(f9a5ce83) SHA1(0756ae576a1f6d5b8b22f8630dca40ef38567ea6) ) // in "30" socket
+ ROM_LOAD16_BYTE( "ff_42.11h", 0x00001, 0x20000, CRC(65f11215) SHA1(5045a467f3e228c02b4a355b52f58263ffa90113) ) // in "35" socket
+ ROM_LOAD16_BYTE( "ff_37.12f", 0x40000, 0x20000, CRC(e1033784) SHA1(38f44434c8befd623953ae23d6e5ff4e201d6627) ) // in "31" socket
+ ROM_LOAD16_BYTE( "ffu_43.12h", 0x40001, 0x20000, CRC(4ca65947) SHA1(74ffe00df96273770a24d9a46f13e53ea8812670) ) // in "36" socket /* seen the same pcb with FF_43.12H */
+ 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) ) /* seen the same pcb with 23.12B */
+ 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 */
+/* Note that this set is equivalent to ffightu, but the 4Mbit MASK ROM FF-32M located @ 8H is replaced by 4 1Mbit EPROMs. */
+ROM_START( ffightu1 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "ff_36.11f", 0x00000, 0x20000, CRC(f9a5ce83) SHA1(0756ae576a1f6d5b8b22f8630dca40ef38567ea6) ) // in "30" socket
+ ROM_LOAD16_BYTE( "ff_42.11h", 0x00001, 0x20000, CRC(65f11215) SHA1(5045a467f3e228c02b4a355b52f58263ffa90113) ) // in "35" socket
+ ROM_LOAD16_BYTE( "ff_37.12f", 0x40000, 0x20000, CRC(e1033784) SHA1(38f44434c8befd623953ae23d6e5ff4e201d6627) ) // in "31" socket
+ ROM_LOAD16_BYTE( "ffu_43.12h", 0x40001, 0x20000, CRC(4ca65947) SHA1(74ffe00df96273770a24d9a46f13e53ea8812670) ) // in "36" socket
+ ROM_LOAD16_BYTE( "ff_34.9f", 0x80000, 0x20000, CRC(0c8dc3fc) SHA1(edcce3efd9cdd131ef0c96df15a68722d5c3498e) ) // in "28" socket // == ff-32m.8h
+ ROM_LOAD16_BYTE( "ff_40.9h", 0x80001, 0x20000, CRC(8075bab9) SHA1(f9c7405133f6fc5557c90e60e8ccc459e4f6fd7d) ) // in "33" socket // == ff-32m.8h
+ ROM_LOAD16_BYTE( "ff_35.10f", 0xc0000, 0x20000, CRC(4a934121) SHA1(3982c261582755a0eac340d6d7ed96e6c263c8b6) ) // in "29" socket // == ff-32m.8h
+ ROM_LOAD16_BYTE( "ff_41.10h", 0xc0001, 0x20000, CRC(2af68154) SHA1(7d549cb38650b4b79c68ad6d0dfcefdd62be4e99) ) // in "34" socket // == ff-32m.8h
+
+ 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( 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_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( 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) )
+ ROM_LOAD16_BYTE( "ffu_36.12h", 0x40001, 0x20000, CRC(4d89f542) SHA1(0b7d483a2c5759715f99f287cbd8a36165b59de7) )
+ 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_23.12b", 0x00000, 0x08000, CRC(b8367eb5) SHA1(ec3db29fdd6200e9a8f4f8073a7e34aef731354f) ) // == ff_09.12b /* label is FF_23, pcb verified */
+ 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
+
+/* FIXME B-Board uncertain but should be 88622B/89625B from the program ROM names */
+ROM_START( ffightj )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "ff36.bin", 0x00000, 0x20000, CRC(f9a5ce83) SHA1(0756ae576a1f6d5b8b22f8630dca40ef38567ea6) ) // == ff_36.11f
+ ROM_LOAD16_BYTE( "ff42.bin", 0x00001, 0x20000, CRC(65f11215) SHA1(5045a467f3e228c02b4a355b52f58263ffa90113) ) // == ff_42.11h
+ ROM_LOAD16_BYTE( "ff37.bin", 0x40000, 0x20000, CRC(e1033784) SHA1(38f44434c8befd623953ae23d6e5ff4e201d6627) ) // == ff_37.12f
+ ROM_LOAD16_BYTE( "ff43.bin", 0x40001, 0x20000, CRC(b6dee1c3) SHA1(3a85312a2e9d8e06259b73d91ccb5e66a6bad62d) )
+ ROM_LOAD16_BYTE( "ffj_34.10f", 0x80000, 0x20000, CRC(0c8dc3fc) SHA1(edcce3efd9cdd131ef0c96df15a68722d5c3498e) ) // == ff-32m.8h
+ ROM_LOAD16_BYTE( "ffj_40.10h", 0x80001, 0x20000, CRC(8075bab9) SHA1(f9c7405133f6fc5557c90e60e8ccc459e4f6fd7d) ) // == ff-32m.8h
+ ROM_LOAD16_BYTE( "ffj_35.11f", 0xc0000, 0x20000, CRC(4a934121) SHA1(3982c261582755a0eac340d6d7ed96e6c263c8b6) ) // == ff-32m.8h
+ ROM_LOAD16_BYTE( "ffj_41.11h", 0xc0001, 0x20000, CRC(2af68154) SHA1(7d549cb38650b4b79c68ad6d0dfcefdd62be4e99) ) // == ff-32m.8h
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "ffj_09.4b", 0x000000, 0x20000, CRC(5b116d0d) SHA1(a24e829fdfa043bd27b508d7cc0788ad80fd180e) , ROM_SKIP(7) )
+ ROMX_LOAD( "ffj_01.4a", 0x000001, 0x20000, CRC(815b1797) SHA1(549e5eefc8f607fec1c954ba715ff21b8e44a5aa) , ROM_SKIP(7) )
+ ROMX_LOAD( "ffj_13.9b", 0x000002, 0x20000, CRC(8721a7da) SHA1(39b2b324fd7810342503f23695e423f364a6294d) , ROM_SKIP(7) )
+ ROMX_LOAD( "ffj_05.9a", 0x000003, 0x20000, CRC(d0fcd4b5) SHA1(97ebcbead0cca7e425143c500c433dbcf9cadcc2) , ROM_SKIP(7) )
+ ROMX_LOAD( "ffj_24.5e", 0x000004, 0x20000, CRC(a1ab607a) SHA1(56784c028b82d9e2affd9610f56fde57063e4c28) , ROM_SKIP(7) )
+ ROMX_LOAD( "ffj_17.5c", 0x000005, 0x20000, CRC(2dc18cf4) SHA1(5e3bd895600cd30d561a75a2fcb6cc8bc84f4bd1) , ROM_SKIP(7) )
+ ROMX_LOAD( "ffj_38.8h", 0x000006, 0x20000, CRC(6535a57f) SHA1(f4da9ec13cad7e3287e34dcceb0eb2d20107bad6) , ROM_SKIP(7) )
+ ROMX_LOAD( "ffj_32.8f", 0x000007, 0x20000, CRC(c8bc4a57) SHA1(3eaf2b4e910fe1f79154020122d786d23a2e594a) , ROM_SKIP(7) )
+ ROMX_LOAD( "ffj_10.5b", 0x100000, 0x20000, CRC(624a924a) SHA1(48fd0498f9ed54003bf6578fbcbc8b7e90a195eb) , ROM_SKIP(7) )
+ ROMX_LOAD( "ffj_02.5a", 0x100001, 0x20000, CRC(5d91f694) SHA1(e0ea9ec82dec985d8bf5e7cebf5fe3d8ef7557b1) , ROM_SKIP(7) )
+ ROMX_LOAD( "ffj_14.10b", 0x100002, 0x20000, CRC(0a2e9101) SHA1(6c8d550d2066cd53355ccf14ac1fd35914982094) , ROM_SKIP(7) )
+ ROMX_LOAD( "ffj_06.10a", 0x100003, 0x20000, CRC(1c18f042) SHA1(f708296570fecad82a76dc59744873a2f5568ea1) , ROM_SKIP(7) )
+ ROMX_LOAD( "ffj_25.7e", 0x100004, 0x20000, CRC(6e8181ea) SHA1(2c32bc0364650ee6ca0d24754a7a3401295ffcd5) , ROM_SKIP(7) )
+ ROMX_LOAD( "ffj_18.7c", 0x100005, 0x20000, CRC(b19ede59) SHA1(7e79ad9f17b36e042d774bef3bbb44018332ca01) , ROM_SKIP(7) )
+ ROMX_LOAD( "ffj_39.9h", 0x100006, 0x20000, CRC(9416b477) SHA1(f2310dfcfe960e8b822c07849b594d54dfc2b2ca) , ROM_SKIP(7) )
+ ROMX_LOAD( "ffj_33.9f", 0x100007, 0x20000, CRC(7369fa07) SHA1(3b2750fe33729395217c96909b4b6c5f3d6e9943) , ROM_SKIP(7) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "ff_23.bin", 0x00000, 0x08000, CRC(b8367eb5) SHA1(ec3db29fdd6200e9a8f4f8073a7e34aef731354f) ) // == ff_09.12b
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "ffj_30.bin", 0x00000, 0x20000, CRC(375c66e7) SHA1(36189e23209ce4ae5d9cbabd1574540d0591e7b3) ) // == ff_18.11c
+ ROM_LOAD( "ffj_31.bin", 0x20000, 0x20000, CRC(1ef137f9) SHA1(974b5e72aa28b87ebfa7438efbdfeda769dedf5e) ) // == ff_19.12c
+
+ 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( "s222b.1a", 0x0000, 0x0117, CRC(6d86b45e) SHA1(2b27646adaf1ca2f58e14754d6f7ef4fdca77fbe) )
+ ROM_LOAD( "lwio.12c", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) ) // pal & position verification required
+ROM_END
+
+/* B-Board 89625B-1 */
+ROM_START( ffightj1 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "ffj_36.12f", 0x00000, 0x20000, CRC(e2a48af9) SHA1(11e06f95bdf575af396dded2b84d858f6c7388f1) ) // == ffu_36.11f
+ ROM_LOAD16_BYTE( "ffj_42.12h", 0x00001, 0x20000, CRC(f4bb480e) SHA1(32114df1d2f4f98a4a2280a330c7b6af8ab4d862) ) // == ffu_42.11h
+ ROM_LOAD16_BYTE( "ffj_37.13f", 0x40000, 0x20000, CRC(c371c667) SHA1(633977c91a8ff09b7fe83128eced7c4dee9aee1d) ) // == ffu_37.12f
+ ROM_LOAD16_BYTE( "ffj_43.13h", 0x40001, 0x20000, CRC(6f81f194) SHA1(2cddf75a0a607cf57395583876cf81bcca005871) )
+ ROM_LOAD16_BYTE( "ffj_34.10f", 0x80000, 0x20000, CRC(0c8dc3fc) SHA1(edcce3efd9cdd131ef0c96df15a68722d5c3498e) ) // == ff-32m.8h
+ ROM_LOAD16_BYTE( "ffj_40.10h", 0x80001, 0x20000, CRC(8075bab9) SHA1(f9c7405133f6fc5557c90e60e8ccc459e4f6fd7d) ) // == ff-32m.8h
+ ROM_LOAD16_BYTE( "ffj_35.11f", 0xc0000, 0x20000, CRC(4a934121) SHA1(3982c261582755a0eac340d6d7ed96e6c263c8b6) ) // == ff-32m.8h
+ ROM_LOAD16_BYTE( "ffj_41.11h", 0xc0001, 0x20000, CRC(2af68154) SHA1(7d549cb38650b4b79c68ad6d0dfcefdd62be4e99) ) // == ff-32m.8h
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "ffj_09.4b", 0x000000, 0x20000, CRC(5b116d0d) SHA1(a24e829fdfa043bd27b508d7cc0788ad80fd180e) , ROM_SKIP(7) )
+ ROMX_LOAD( "ffj_01.4a", 0x000001, 0x20000, CRC(815b1797) SHA1(549e5eefc8f607fec1c954ba715ff21b8e44a5aa) , ROM_SKIP(7) )
+ ROMX_LOAD( "ffj_13.9b", 0x000002, 0x20000, CRC(8721a7da) SHA1(39b2b324fd7810342503f23695e423f364a6294d) , ROM_SKIP(7) )
+ ROMX_LOAD( "ffj_05.9a", 0x000003, 0x20000, CRC(d0fcd4b5) SHA1(97ebcbead0cca7e425143c500c433dbcf9cadcc2) , ROM_SKIP(7) )
+ ROMX_LOAD( "ffj_24.5e", 0x000004, 0x20000, CRC(a1ab607a) SHA1(56784c028b82d9e2affd9610f56fde57063e4c28) , ROM_SKIP(7) )
+ ROMX_LOAD( "ffj_17.5c", 0x000005, 0x20000, CRC(2dc18cf4) SHA1(5e3bd895600cd30d561a75a2fcb6cc8bc84f4bd1) , ROM_SKIP(7) )
+ ROMX_LOAD( "ffj_38.8h", 0x000006, 0x20000, CRC(6535a57f) SHA1(f4da9ec13cad7e3287e34dcceb0eb2d20107bad6) , ROM_SKIP(7) )
+ ROMX_LOAD( "ffj_32.8f", 0x000007, 0x20000, CRC(c8bc4a57) SHA1(3eaf2b4e910fe1f79154020122d786d23a2e594a) , ROM_SKIP(7) )
+ ROMX_LOAD( "ffj_10.5b", 0x100000, 0x20000, CRC(624a924a) SHA1(48fd0498f9ed54003bf6578fbcbc8b7e90a195eb) , ROM_SKIP(7) )
+ ROMX_LOAD( "ffj_02.5a", 0x100001, 0x20000, CRC(5d91f694) SHA1(e0ea9ec82dec985d8bf5e7cebf5fe3d8ef7557b1) , ROM_SKIP(7) )
+ ROMX_LOAD( "ffj_14.10b", 0x100002, 0x20000, CRC(0a2e9101) SHA1(6c8d550d2066cd53355ccf14ac1fd35914982094) , ROM_SKIP(7) )
+ ROMX_LOAD( "ffj_06.10a", 0x100003, 0x20000, CRC(1c18f042) SHA1(f708296570fecad82a76dc59744873a2f5568ea1) , ROM_SKIP(7) )
+ ROMX_LOAD( "ffj_25.7e", 0x100004, 0x20000, CRC(6e8181ea) SHA1(2c32bc0364650ee6ca0d24754a7a3401295ffcd5) , ROM_SKIP(7) )
+ ROMX_LOAD( "ffj_18.7c", 0x100005, 0x20000, CRC(b19ede59) SHA1(7e79ad9f17b36e042d774bef3bbb44018332ca01) , ROM_SKIP(7) )
+ ROMX_LOAD( "ffj_39.9h", 0x100006, 0x20000, CRC(9416b477) SHA1(f2310dfcfe960e8b822c07849b594d54dfc2b2ca) , ROM_SKIP(7) )
+ ROMX_LOAD( "ffj_33.9f", 0x100007, 0x20000, CRC(7369fa07) SHA1(3b2750fe33729395217c96909b4b6c5f3d6e9943) , ROM_SKIP(7) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "ff_23.13b", 0x00000, 0x08000, CRC(b8367eb5) SHA1(ec3db29fdd6200e9a8f4f8073a7e34aef731354f) ) // == ff_09.12b
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "ffj_30.12c", 0x00000, 0x20000, CRC(375c66e7) SHA1(36189e23209ce4ae5d9cbabd1574540d0591e7b3) ) // == ff_18.11c
+ ROM_LOAD( "ffj_31.13c", 0x20000, 0x20000, CRC(1ef137f9) SHA1(974b5e72aa28b87ebfa7438efbdfeda769dedf5e) ) // == ff_19.12c
+
+ 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( "s222b.1a", 0x0000, 0x0117, CRC(6d86b45e) SHA1(2b27646adaf1ca2f58e14754d6f7ef4fdca77fbe) )
+ ROM_LOAD( "lwio.12e", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) )
+ROM_END
+
+
+/* B-Board 88622B-3 */
+ROM_START( ffightj2 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "ffj_36a.12f", 0x00000, 0x20000, CRC(088ed1c9) SHA1(7b96cd45f4d3d2c0fe94904882652814b7790869) )
+ ROM_LOAD16_BYTE( "ffj_42a.12h", 0x00001, 0x20000, CRC(c4c491e6) SHA1(d0e34d7b94f67c33615710ea721da8fefe832e3a) )
+ ROM_LOAD16_BYTE( "ffj_37a.13f", 0x40000, 0x20000, CRC(708557ff) SHA1(89e56bfd9486623a18fdbf984a72bb52054ca0e6) )
+ ROM_LOAD16_BYTE( "ffj_43a.13h", 0x40001, 0x20000, CRC(c004004a) SHA1(10ccf27972591f65645a8dd2bb65989176ac07d5) )
+ ROM_LOAD16_BYTE( "ff_34.10f", 0x80000, 0x20000, CRC(0c8dc3fc) SHA1(edcce3efd9cdd131ef0c96df15a68722d5c3498e) ) // == ff-32m.8h
+ ROM_LOAD16_BYTE( "ff_40.10h", 0x80001, 0x20000, CRC(8075bab9) SHA1(f9c7405133f6fc5557c90e60e8ccc459e4f6fd7d) ) // == ff-32m.8h
+ ROM_LOAD16_BYTE( "ff_35.11f", 0xc0000, 0x20000, CRC(4a934121) SHA1(3982c261582755a0eac340d6d7ed96e6c263c8b6) ) // == ff-32m.8h
+ ROM_LOAD16_BYTE( "ff_41.11h", 0xc0001, 0x20000, CRC(2af68154) SHA1(7d549cb38650b4b79c68ad6d0dfcefdd62be4e99) ) // == ff-32m.8h
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "ff_09.4b", 0x000000, 0x20000, CRC(5b116d0d) SHA1(a24e829fdfa043bd27b508d7cc0788ad80fd180e) , ROM_SKIP(7) )
+ ROMX_LOAD( "ff_01.4a", 0x000001, 0x20000, CRC(815b1797) SHA1(549e5eefc8f607fec1c954ba715ff21b8e44a5aa) , ROM_SKIP(7) )
+ ROMX_LOAD( "ff_13.9b", 0x000002, 0x20000, CRC(8721a7da) SHA1(39b2b324fd7810342503f23695e423f364a6294d) , ROM_SKIP(7) )
+ ROMX_LOAD( "ff_05.9a", 0x000003, 0x20000, CRC(d0fcd4b5) SHA1(97ebcbead0cca7e425143c500c433dbcf9cadcc2) , ROM_SKIP(7) )
+ ROMX_LOAD( "ff_24.5e", 0x000004, 0x20000, CRC(a1ab607a) SHA1(56784c028b82d9e2affd9610f56fde57063e4c28) , ROM_SKIP(7) )
+ ROMX_LOAD( "ff_17.5c", 0x000005, 0x20000, CRC(2dc18cf4) SHA1(5e3bd895600cd30d561a75a2fcb6cc8bc84f4bd1) , ROM_SKIP(7) )
+ ROMX_LOAD( "ff_38.8h", 0x000006, 0x20000, CRC(6535a57f) SHA1(f4da9ec13cad7e3287e34dcceb0eb2d20107bad6) , ROM_SKIP(7) )
+ ROMX_LOAD( "ff_32.8f", 0x000007, 0x20000, CRC(c8bc4a57) SHA1(3eaf2b4e910fe1f79154020122d786d23a2e594a) , ROM_SKIP(7) )
+ ROMX_LOAD( "ff_10.5b", 0x100000, 0x20000, CRC(624a924a) SHA1(48fd0498f9ed54003bf6578fbcbc8b7e90a195eb) , ROM_SKIP(7) )
+ ROMX_LOAD( "ff_02.5a", 0x100001, 0x20000, CRC(5d91f694) SHA1(e0ea9ec82dec985d8bf5e7cebf5fe3d8ef7557b1) , ROM_SKIP(7) )
+ ROMX_LOAD( "ff_14.10b", 0x100002, 0x20000, CRC(0a2e9101) SHA1(6c8d550d2066cd53355ccf14ac1fd35914982094) , ROM_SKIP(7) )
+ ROMX_LOAD( "ff_06.10a", 0x100003, 0x20000, CRC(1c18f042) SHA1(f708296570fecad82a76dc59744873a2f5568ea1) , ROM_SKIP(7) )
+ ROMX_LOAD( "ff_25.7e", 0x100004, 0x20000, CRC(6e8181ea) SHA1(2c32bc0364650ee6ca0d24754a7a3401295ffcd5) , ROM_SKIP(7) )
+ ROMX_LOAD( "ff_18.7c", 0x100005, 0x20000, CRC(b19ede59) SHA1(7e79ad9f17b36e042d774bef3bbb44018332ca01) , ROM_SKIP(7) )
+ ROMX_LOAD( "ff_39.9h", 0x100006, 0x20000, CRC(9416b477) SHA1(f2310dfcfe960e8b822c07849b594d54dfc2b2ca) , ROM_SKIP(7) )
+ ROMX_LOAD( "ff_33.9f", 0x100007, 0x20000, CRC(7369fa07) SHA1(3b2750fe33729395217c96909b4b6c5f3d6e9943) , ROM_SKIP(7) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "ff_23.13c", 0x00000, 0x08000, CRC(b8367eb5) SHA1(ec3db29fdd6200e9a8f4f8073a7e34aef731354f) ) // == ff_09.12b
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "ff_30.12e", 0x00000, 0x20000, CRC(375c66e7) SHA1(36189e23209ce4ae5d9cbabd1574540d0591e7b3) ) // == ff_18.11c
+ ROM_LOAD( "ff_31.13e", 0x20000, 0x20000, CRC(1ef137f9) SHA1(974b5e72aa28b87ebfa7438efbdfeda769dedf5e) ) // == ff_19.12c
+
+ 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( "s222b.1a", 0x0000, 0x0117, CRC(6d86b45e) SHA1(2b27646adaf1ca2f58e14754d6f7ef4fdca77fbe) )
+ ROM_LOAD( "lwio.12c", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) )
+ROM_END
+
+/* B-Board 89625B-1 */
+ROM_START( ffightj3 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "ff_36.12f", 0x00000, 0x20000, CRC(ed988977) SHA1(c718e989206bd2b68832c8fcb5667397d500ebac) ) // == ffu_30.11f
+ ROM_LOAD16_BYTE( "ffj_42.12h", 0x00001, 0x20000, CRC(07bf1c21) SHA1(f21a939fd92607c7f54816dedbcb3c5818cf4183) ) // sldh - == ffu_35.11h
+ ROM_LOAD16_BYTE( "ff_37.13f", 0x40000, 0x20000, CRC(dba5a476) SHA1(2f0176dd050f9630b914f1c1ca5d96215bcf567f) ) // == ffu_31.12f
+ ROM_LOAD16_BYTE( "ffj_43.13h", 0x40001, 0x20000, CRC(fbeca028) SHA1(85eeed6a25b401d73d12896ca1e2bf7402c921ee) ) // sldh
+ ROM_LOAD16_BYTE( "ff_34.10f", 0x80000, 0x20000, CRC(0c8dc3fc) SHA1(edcce3efd9cdd131ef0c96df15a68722d5c3498e) ) // == ff-32m.8h
+ ROM_LOAD16_BYTE( "ffj_40.10h", 0x80001, 0x20000, CRC(8075bab9) SHA1(f9c7405133f6fc5557c90e60e8ccc459e4f6fd7d) ) // == ff-32m.8h
+ ROM_LOAD16_BYTE( "ff_35.11f", 0xc0000, 0x20000, CRC(4a934121) SHA1(3982c261582755a0eac340d6d7ed96e6c263c8b6) ) // == ff-32m.8h
+ ROM_LOAD16_BYTE( "ffj_41.11h", 0xc0001, 0x20000, CRC(2af68154) SHA1(7d549cb38650b4b79c68ad6d0dfcefdd62be4e99) ) // == ff-32m.8h
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "ff_09.4b", 0x000000, 0x20000, CRC(5b116d0d) SHA1(a24e829fdfa043bd27b508d7cc0788ad80fd180e) , ROM_SKIP(7) )
+ ROMX_LOAD( "ff_01.4a", 0x000001, 0x20000, CRC(815b1797) SHA1(549e5eefc8f607fec1c954ba715ff21b8e44a5aa) , ROM_SKIP(7) )
+ ROMX_LOAD( "ff_13.9b", 0x000002, 0x20000, CRC(8721a7da) SHA1(39b2b324fd7810342503f23695e423f364a6294d) , ROM_SKIP(7) )
+ ROMX_LOAD( "ff_05.9a", 0x000003, 0x20000, CRC(d0fcd4b5) SHA1(97ebcbead0cca7e425143c500c433dbcf9cadcc2) , ROM_SKIP(7) )
+ ROMX_LOAD( "ff_24.5e", 0x000004, 0x20000, CRC(a1ab607a) SHA1(56784c028b82d9e2affd9610f56fde57063e4c28) , ROM_SKIP(7) )
+ ROMX_LOAD( "ff_17.5c", 0x000005, 0x20000, CRC(2dc18cf4) SHA1(5e3bd895600cd30d561a75a2fcb6cc8bc84f4bd1) , ROM_SKIP(7) )
+ ROMX_LOAD( "ffj_38.8h", 0x000006, 0x20000, CRC(6535a57f) SHA1(f4da9ec13cad7e3287e34dcceb0eb2d20107bad6) , ROM_SKIP(7) )
+ ROMX_LOAD( "ff_32.8f", 0x000007, 0x20000, CRC(c8bc4a57) SHA1(3eaf2b4e910fe1f79154020122d786d23a2e594a) , ROM_SKIP(7) )
+ ROMX_LOAD( "ff_10.5b", 0x100000, 0x20000, CRC(624a924a) SHA1(48fd0498f9ed54003bf6578fbcbc8b7e90a195eb) , ROM_SKIP(7) )
+ ROMX_LOAD( "ff_02.5a", 0x100001, 0x20000, CRC(5d91f694) SHA1(e0ea9ec82dec985d8bf5e7cebf5fe3d8ef7557b1) , ROM_SKIP(7) )
+ ROMX_LOAD( "ff_14.10b", 0x100002, 0x20000, CRC(0a2e9101) SHA1(6c8d550d2066cd53355ccf14ac1fd35914982094) , ROM_SKIP(7) )
+ ROMX_LOAD( "ff_06.10a", 0x100003, 0x20000, CRC(1c18f042) SHA1(f708296570fecad82a76dc59744873a2f5568ea1) , ROM_SKIP(7) )
+ ROMX_LOAD( "ff_25.7e", 0x100004, 0x20000, CRC(6e8181ea) SHA1(2c32bc0364650ee6ca0d24754a7a3401295ffcd5) , ROM_SKIP(7) )
+ ROMX_LOAD( "ff_18.7c", 0x100005, 0x20000, CRC(b19ede59) SHA1(7e79ad9f17b36e042d774bef3bbb44018332ca01) , ROM_SKIP(7) )
+ ROMX_LOAD( "ffj_39.9h", 0x100006, 0x20000, CRC(9416b477) SHA1(f2310dfcfe960e8b822c07849b594d54dfc2b2ca) , ROM_SKIP(7) )
+ ROMX_LOAD( "ff_33.9f", 0x100007, 0x20000, CRC(7369fa07) SHA1(3b2750fe33729395217c96909b4b6c5f3d6e9943) , ROM_SKIP(7) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "ff_23.13b", 0x00000, 0x08000, CRC(b8367eb5) SHA1(ec3db29fdd6200e9a8f4f8073a7e34aef731354f) ) // == ff_09.12b
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "ff_30.12c", 0x00000, 0x20000, CRC(375c66e7) SHA1(36189e23209ce4ae5d9cbabd1574540d0591e7b3) ) // == ff_18.11c
+ ROM_LOAD( "ff_31.13c", 0x20000, 0x20000, CRC(1ef137f9) SHA1(974b5e72aa28b87ebfa7438efbdfeda769dedf5e) ) // == ff_19.12c
+
+ 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( "s222b.1a", 0x0000, 0x0117, CRC(6d86b45e) SHA1(2b27646adaf1ca2f58e14754d6f7ef4fdca77fbe) )
+ ROM_LOAD( "lwio.12e", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) ) // pal verification required
+ROM_END
+
+/* B-Board 91634B-2 */
+/* This hack uses an official and original Final Fight JAP CPS-B-21 Board. The EPROMS have been modified and phoenixed.
+ The Board uses a GAL instead of the classic PAL located in position "1A". There is no ROM check at the start and no logo
+ Capcom (instead a chinese logo... maybe the bootleggers logo). Even if it's a JAP Board, the game intro is in english. */
+ROM_START( ffightjh )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "ff_23.8f", 0x00000, 0x80000, CRC(ae3dda7f) SHA1(5f08ce1e6b6b0d45994d3354d59ef79f489c7ad7) )
+ ROM_LOAD16_WORD_SWAP( "ff_22.7f", 0x80000, 0x80000, CRC(b2d5a3aa) SHA1(b60f7480d3d3ceebad4c21025394bacc154d7042) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "ff_1.3a", 0x000000, 0x80000, CRC(969d18e2) SHA1(7a30b7434e34ec98838a9ab8d953b2ef467d562e), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ff_2.4a", 0x000002, 0x80000, CRC(02b59f99) SHA1(c1cb2bbf95c2006baad58b0a5a7278f1a8999901), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ff_3.5a", 0x000004, 0x80000, CRC(01d507ae) SHA1(d7813daa5bd74bebdbbea578acb20ad3c8816997), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ff_4.6a", 0x000006, 0x80000, CRC(f7c4ceb0) SHA1(3e9cf6379f06c5a736b4a0aadb7fbda914b91190), ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "ff_9.12a", 0x00000, 0x08000, CRC(b8367eb5) SHA1(ec3db29fdd6200e9a8f4f8073a7e34aef731354f) ) // == ff_09.12b
+ 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( "gal16v8a-15lp.1a", 0x0000, 0x0117, NO_DUMP )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ROM_END
+
+/* B-Board 89624B-3 */
+ROM_START( 1941 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "41em_30.11f", 0x00000, 0x20000, CRC(4249ec61) SHA1(5323cfa6938e6d95db8469f09b2fb5b5c5068bfc) ) /* label is 41EM_30, pcb verified */
+ ROM_LOAD16_BYTE( "41em_35.11h", 0x00001, 0x20000, CRC(ddbee5eb) SHA1(0fef53398f4e2cd6ccc7bc122dd893e0a4e2e052) ) /* label is 41EM_35, pcb verified */
+ ROM_LOAD16_BYTE( "41em_31.12f", 0x40000, 0x20000, CRC(584e88e5) SHA1(af254408d939cc439b5653e60afbccdf59777085) ) /* label is 41EM_31, pcb verified */
+ ROM_LOAD16_BYTE( "41em_36.12h", 0x40001, 0x20000, CRC(3cfc31d0) SHA1(7c0614e4e25502ff2d18aa4a97c91bf05ead875f) ) /* label is 41EM_36, pcb verified */
+ ROM_LOAD16_WORD_SWAP( "41-32m.8h", 0x80000, 0x80000, CRC(4e9648ca) SHA1(d8e67e6e3a6dc79053e4f56cfd83431385ea7611) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "41-5m.7a", 0x000000, 0x80000, CRC(01d1cb11) SHA1(621e5377d1aaa9f7270d85bea1bdeef6721cdd05) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "41-7m.9a", 0x000002, 0x80000, CRC(aeaa3509) SHA1(6124ef06d9dfdd879181856bd49853f1800c3b87) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "41-1m.3a", 0x000004, 0x80000, CRC(ff77985a) SHA1(7e08df3a829bf9617470a46c79b713d4d9ebacae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "41-3m.5a", 0x000006, 0x80000, CRC(983be58f) SHA1(83a4decdd775f859240771269b8af3a5981b244c) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "41_9.12b", 0x00000, 0x08000, CRC(0f9d8527) SHA1(3a00dd5772f38081fde11d8d61ba467379e2a636) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "41_18.11c", 0x00000, 0x20000, CRC(d1f15aeb) SHA1(88089383f2d54fc97026a67f067d448eee5bd0c2) )
+ ROM_LOAD( "41_19.12c", 0x20000, 0x20000, CRC(15aec3a6) SHA1(8153c03aba005bab62bf0e8b3d15ec1c346326fd) )
+
+ 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( "yi24b.1a", 0x0000, 0x0117, CRC(3004dcdf) SHA1(a73d86d1545af1d99a03d88af83449ec82b03c5c) )
+ ROM_LOAD( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ROM_END
+
+/* B-Board 89624B-3 */
+ROM_START( 1941r1 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "41e_30.11f", 0x00000, 0x20000, CRC(9deb1e75) SHA1(68d9f91bef6a5c9e1bcbf286629aed6b37b4acb9) )
+ ROM_LOAD16_BYTE( "41e_35.11h", 0x00001, 0x20000, CRC(d63942b3) SHA1(b4bc7d06dcefbc075d316f2d31abbd4c7a99dbae) )
+ ROM_LOAD16_BYTE( "41e_31.12f", 0x40000, 0x20000, CRC(df201112) SHA1(d84f63bffeb9255cbabc02f23d7511f9b3c6a96c) )
+ ROM_LOAD16_BYTE( "41e_36.12h", 0x40001, 0x20000, CRC(816a818f) SHA1(3e491a30352b71ddd775142f3a80cdde480b669f) )
+ ROM_LOAD16_WORD_SWAP( "41-32m.8h", 0x80000, 0x80000, CRC(4e9648ca) SHA1(d8e67e6e3a6dc79053e4f56cfd83431385ea7611) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "41-5m.7a", 0x000000, 0x80000, CRC(01d1cb11) SHA1(621e5377d1aaa9f7270d85bea1bdeef6721cdd05) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "41-7m.9a", 0x000002, 0x80000, CRC(aeaa3509) SHA1(6124ef06d9dfdd879181856bd49853f1800c3b87) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "41-1m.3a", 0x000004, 0x80000, CRC(ff77985a) SHA1(7e08df3a829bf9617470a46c79b713d4d9ebacae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "41-3m.5a", 0x000006, 0x80000, CRC(983be58f) SHA1(83a4decdd775f859240771269b8af3a5981b244c) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "41_9.12b", 0x00000, 0x08000, CRC(0f9d8527) SHA1(3a00dd5772f38081fde11d8d61ba467379e2a636) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "41_18.11c", 0x00000, 0x20000, CRC(d1f15aeb) SHA1(88089383f2d54fc97026a67f067d448eee5bd0c2) )
+ ROM_LOAD( "41_19.12c", 0x20000, 0x20000, CRC(15aec3a6) SHA1(8153c03aba005bab62bf0e8b3d15ec1c346326fd) )
+
+ 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( "yi24b.1a", 0x0000, 0x0117, CRC(3004dcdf) SHA1(a73d86d1545af1d99a03d88af83449ec82b03c5c) )
+ ROM_LOAD( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ROM_END
+
+/* B-Board 89624B-3 */
+ROM_START( 1941u )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "41u_30.11f", 0x00000, 0x20000, CRC(be5439d0) SHA1(a62e0aa4f13f504c0eded99d731f7c820c51cb3d) )
+ ROM_LOAD16_BYTE( "41u_35.11h", 0x00001, 0x20000, CRC(6ac96595) SHA1(efff8185fd1aee29d9b5164a9aac61f77f769ae4) )
+ ROM_LOAD16_BYTE( "41u_31.12f", 0x40000, 0x20000, CRC(9811d6eb) SHA1(6dda86a3a726a2b5459f0b90f58343966e9783cc) )
+ ROM_LOAD16_BYTE( "41u_36.12h", 0x40001, 0x20000, CRC(a87e6137) SHA1(d4b63a0c14a35ebd61cddd01cdc6fc955d521ae2) )
+ ROM_LOAD16_WORD_SWAP( "41-32m.8h", 0x80000, 0x80000, CRC(4e9648ca) SHA1(d8e67e6e3a6dc79053e4f56cfd83431385ea7611) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "41-5m.7a", 0x000000, 0x80000, CRC(01d1cb11) SHA1(621e5377d1aaa9f7270d85bea1bdeef6721cdd05) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "41-7m.9a", 0x000002, 0x80000, CRC(aeaa3509) SHA1(6124ef06d9dfdd879181856bd49853f1800c3b87) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "41-1m.3a", 0x000004, 0x80000, CRC(ff77985a) SHA1(7e08df3a829bf9617470a46c79b713d4d9ebacae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "41-3m.5a", 0x000006, 0x80000, CRC(983be58f) SHA1(83a4decdd775f859240771269b8af3a5981b244c) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "41_9.12b", 0x00000, 0x08000, CRC(0f9d8527) SHA1(3a00dd5772f38081fde11d8d61ba467379e2a636) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "41e_18.11c", 0x00000, 0x20000, CRC(d1f15aeb) SHA1(88089383f2d54fc97026a67f067d448eee5bd0c2) ) // == 41_18.11c /* label is 41E_18, pcb verified */
+ ROM_LOAD( "41_19.12c", 0x20000, 0x20000, CRC(15aec3a6) SHA1(8153c03aba005bab62bf0e8b3d15ec1c346326fd) )
+
+ 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( "yi24b.1a", 0x0000, 0x0117, CRC(3004dcdf) SHA1(a73d86d1545af1d99a03d88af83449ec82b03c5c) )
+ ROM_LOAD( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ROM_END
+
+/* B-Board 89625B-1 */
+ROM_START( 1941j )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "41_36.12f", 0x00000, 0x20000, CRC(7fbd42ab) SHA1(4e52a599e3099bf3cccabb89152c69f216fde79e) )
+ ROM_LOAD16_BYTE( "41_42.12h", 0x00001, 0x20000, CRC(c7781f89) SHA1(7e99c433de0c903791ae153a3cc8632042b0a90d) )
+ ROM_LOAD16_BYTE( "41_37.13f", 0x40000, 0x20000, CRC(c6464b0b) SHA1(abef422d891d32334a858d49599f1ef7cf0db45d) )
+ ROM_LOAD16_BYTE( "41_43.13h", 0x40001, 0x20000, CRC(440fc0b5) SHA1(e725535533c25a2c80a45a2200bbfd0dcda5ed97) )
+ ROM_LOAD16_BYTE( "41_34.10f", 0x80000, 0x20000, CRC(b5f341ec) SHA1(95c740332e9e05250979a098e951600ca89cfde4) ) // == 41-32m.8h
+ ROM_LOAD16_BYTE( "41_40.10h", 0x80001, 0x20000, CRC(3979837d) SHA1(e35bca5cd6f7559447c553c7866a3934080ca018) ) // == 41-32m.8h
+ ROM_LOAD16_BYTE( "41_35.11f", 0xc0000, 0x20000, CRC(95cc979a) SHA1(96a22d2accdcd1ed3829ab0e1f17c1615f8bb2a9) ) // == 41-32m.8h
+ ROM_LOAD16_BYTE( "41_41.11h", 0xc0001, 0x20000, CRC(57496819) SHA1(fe705a25a2c6523c3bc0105f4b183931c5ffcc81) ) // == 41-32m.8h
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "41_09.4b", 0x000000, 0x20000, CRC(be1b6bc2) SHA1(0b11efb7adf6bb9c5fdef702171edd38c149e338) , ROM_SKIP(7) ) // == 41-5m.7a
+ ROMX_LOAD( "41_01.4a", 0x000001, 0x20000, CRC(d8946fc1) SHA1(e18d2bd5517a9a74973f5a505e59e400db3843e2) , ROM_SKIP(7) ) // == 41-5m.7a
+ ROMX_LOAD( "41_13.9b", 0x000002, 0x20000, CRC(2e06d0ec) SHA1(b7c886dce6bc5eefa34e39faec658dd9df34f82c) , ROM_SKIP(7) ) // == 41-7m.9a
+ ROMX_LOAD( "41_05.9a", 0x000003, 0x20000, CRC(d8ba28e0) SHA1(dd1908166b32cf3bb3222f6d3febc21371463395) , ROM_SKIP(7) ) // == 41-7m.9a
+ ROMX_LOAD( "41_24.5e", 0x000004, 0x20000, CRC(5aa43cee) SHA1(15e1aa2fee8deb25eefba067395961fee3e4c84d) , ROM_SKIP(7) ) // == 41-1m.3a
+ ROMX_LOAD( "41_17.5c", 0x000005, 0x20000, CRC(bbeff902) SHA1(1bf421072387ab7d59b57ecd33cb5ae6fd8ecd06) , ROM_SKIP(7) ) // == 41-1m.3a
+ ROMX_LOAD( "41_38.8h", 0x000006, 0x20000, CRC(8889c0aa) SHA1(23b74cc78fe1057c1776ea1f7371801441125a85) , ROM_SKIP(7) ) // == 41-3m.5a
+ ROMX_LOAD( "41_32.8f", 0x000007, 0x20000, CRC(f0168249) SHA1(1ce2330ea4460e7e72f16a1f7edbfa8abba6b5a0) , ROM_SKIP(7) ) // == 41-3m.5a
+ ROMX_LOAD( "41_10.5b", 0x100000, 0x20000, CRC(b7eb6a6d) SHA1(444b49e81cd46e90a9e1dfcf465f19c38189b2d7) , ROM_SKIP(7) ) // == 41-5m.7a
+ ROMX_LOAD( "41_02.5a", 0x100001, 0x20000, CRC(802e8153) SHA1(baf19220c53949dac0d0b75368d5f1ee6c32b619) , ROM_SKIP(7) ) // == 41-5m.7a
+ ROMX_LOAD( "41_14.10b", 0x100002, 0x20000, CRC(5a33f676) SHA1(96794463ddfae7ce4a7d7e6b65ff1b8da7b3dd74) , ROM_SKIP(7) ) // == 41-7m.9a
+ ROMX_LOAD( "41_06.10a", 0x100003, 0x20000, CRC(4e53650b) SHA1(a5b19b1ce38f04296dee38d35015869607ecc260) , ROM_SKIP(7) ) // == 41-7m.9a
+ ROMX_LOAD( "41_25.7e", 0x100004, 0x20000, CRC(94add360) SHA1(6f3542f028bdc453d0254de599b124240ea98259) , ROM_SKIP(7) ) // == 41-1m.3a
+ ROMX_LOAD( "41_18.7c", 0x100005, 0x20000, CRC(a5e1c1f3) SHA1(1961ad3c8965c51da8a19a7283333f3a19bb2030) , ROM_SKIP(7) ) // == 41-1m.3a
+ ROMX_LOAD( "41_39.9h", 0x100006, 0x20000, CRC(5b5c3949) SHA1(485b1baecee6bb9a6667baf404375fc758bdfb76) , ROM_SKIP(7) ) // == 41-3m.5a
+ ROMX_LOAD( "41_33.9f", 0x100007, 0x20000, CRC(7a31b0e2) SHA1(f2eca12f4e89266d923a94d0837c555bc1c6cb29) , ROM_SKIP(7) ) // == 41-3m.5a
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "41_23.13b", 0x00000, 0x08000, CRC(0f9d8527) SHA1(3a00dd5772f38081fde11d8d61ba467379e2a636) ) // == 41_9.12b
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "41_30.12c", 0x00000, 0x20000, CRC(d1f15aeb) SHA1(88089383f2d54fc97026a67f067d448eee5bd0c2) ) // == 41_18.11c
+ ROM_LOAD( "41_31.13c", 0x20000, 0x20000, CRC(15aec3a6) SHA1(8153c03aba005bab62bf0e8b3d15ec1c346326fd) ) // == 41_19.12c
+
+ 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( "yi22b.1a", 0x0000, 0x0117, NO_DUMP )
+ ROM_LOAD( "lwio.12e", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) ) // pal verification required
+ROM_END
+
+/* B-Board 89624B-3 */
+ROM_START( mercs )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "so2_30e.11f", 0x00000, 0x20000, CRC(e17f9bf7) SHA1(f44bb378de428b429c97a21f74829182d3187ace) )
+ ROM_LOAD16_BYTE( "so2_35e.11h", 0x00001, 0x20000, CRC(78e63575) SHA1(5776de0daaaedd0dec2cec8d088a0fd8bb3d4dbe) )
+ ROM_LOAD16_BYTE( "so2_31e.12f", 0x40000, 0x20000, CRC(51204d36) SHA1(af288fc369d092f38ea73be967705aacade06f28) )
+ ROM_LOAD16_BYTE( "so2_36e.12h", 0x40001, 0x20000, CRC(9cfba8b4) SHA1(df8ee5e3a68f056f68f096c46fdb548f63d29446) )
+ ROM_LOAD16_WORD_SWAP( "so2-32m.8h", 0x80000, 0x80000, CRC(2eb5cf0c) SHA1(e0d765fb6957d156ffd40cabf51ba6098cbbeb19) )
+
+ ROM_REGION( 0x300000, "gfx", 0 )
+ ROMX_LOAD( "so2-6m.8a", 0x000000, 0x80000, CRC(aa6102af) SHA1(4a45f3547a3640f256e5e20bfd72784f880f03f5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "so2-8m.10a", 0x000002, 0x80000, CRC(839e6869) SHA1(7741141a9f1b1e2956edc1d11f9cc3974390c4ed) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "so2-2m.4a", 0x000004, 0x80000, CRC(597c2875) SHA1(440bd04db2c121a6976e5e1027071d28812942d3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "so2-4m.6a", 0x000006, 0x80000, CRC(912a9ca0) SHA1(b226a4a388e57e23d7a7559773ebee434125a2e4) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "so2_24.7d", 0x200000, 0x20000, CRC(3f254efe) SHA1(5db36eb98a6d3c7acccb561d92c1988d1330cbbf) , ROM_SKIP(7) )
+ ROMX_LOAD( "so2_14.7c", 0x200001, 0x20000, CRC(f5a8905e) SHA1(fada8b635d490c06b75711ed505a025bb0aa4454) , ROM_SKIP(7) )
+ ROMX_LOAD( "so2_26.9d", 0x200002, 0x20000, CRC(f3aa5a4a) SHA1(bcb3396de5524fffd4110bfbeeeca1c936990eb3) , ROM_SKIP(7) )
+ ROMX_LOAD( "so2_16.9c", 0x200003, 0x20000, CRC(b43cd1a8) SHA1(01c2bb802469848a172968802a674c0045a8b8dc) , ROM_SKIP(7) )
+ ROMX_LOAD( "so2_20.3d", 0x200004, 0x20000, CRC(8ca751a3) SHA1(e93bbe7311f14e7e3cbfb42b83fd7fee4bb9cefc) , ROM_SKIP(7) )
+ ROMX_LOAD( "so2_10.3c", 0x200005, 0x20000, CRC(e9f569fd) SHA1(39ae9eacdf1f35ef90d131444c37958d7aaf7238) , ROM_SKIP(7) )
+ ROMX_LOAD( "so2_22.5d", 0x200006, 0x20000, CRC(fce9a377) SHA1(5de5f696f63326f2cb4c38bcb05e07bcf2246071) , ROM_SKIP(7) )
+ ROMX_LOAD( "so2_12.5c", 0x200007, 0x20000, CRC(b7df8a06) SHA1(b42cb0d3f55a1e8fe8afbbd9aeae50074cdc5f08) , ROM_SKIP(7) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "so2_09.12b", 0x00000, 0x08000, CRC(d09d7c7a) SHA1(8e8532be08818c855d9c3ce45716eb07cfab5767) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "so2_18.11c", 0x00000, 0x20000, CRC(bbea1643) SHA1(d43d68a120550067bf0b181f88687ad230cd7908) )
+ ROM_LOAD( "so2_19.12c", 0x20000, 0x20000, CRC(ac58aa71) SHA1(93102272e358bc49d3936302efdc5bb68df84d68) )
+
+ 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( "o224b.1a", 0x0000, 0x0117, CRC(c211c8cd) SHA1(d9464792e663549e6ad20aac6484622298f88a78) )
+ ROM_LOAD( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "c628", 0x0000, 0x0117, NO_DUMP )
+ROM_END
+
+/* B-Board 89624B-3 */
+ROM_START( mercsu )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "so2_30a.11f", 0x00000, 0x20000, CRC(e4e725d7) SHA1(b0454dedeb741a7dd4ceb18bac958417ca74a7e6) )
+ ROM_LOAD16_BYTE( "so2_35a.11h", 0x00001, 0x20000, CRC(e7843445) SHA1(192c85ced637e05b37ed889246ebb73e792e984b) )
+ ROM_LOAD16_BYTE( "so2_31a.12f", 0x40000, 0x20000, CRC(c0b91dea) SHA1(5c1d086ae09e4f66384a03994b3c5e12d80582ff) )
+ ROM_LOAD16_BYTE( "so2_36a.12h", 0x40001, 0x20000, CRC(591edf6c) SHA1(68d77e21fe32e0b95d2fabe40bc1cadd419ab0bd) )
+ ROM_LOAD16_WORD_SWAP( "so2-32m.8h", 0x80000, 0x80000, CRC(2eb5cf0c) SHA1(e0d765fb6957d156ffd40cabf51ba6098cbbeb19) )
+
+ ROM_REGION( 0x300000, "gfx", 0 )
+ ROMX_LOAD( "so2-6m.8a", 0x000000, 0x80000, CRC(aa6102af) SHA1(4a45f3547a3640f256e5e20bfd72784f880f03f5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "so2-8m.10a", 0x000002, 0x80000, CRC(839e6869) SHA1(7741141a9f1b1e2956edc1d11f9cc3974390c4ed) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "so2-2m.4a", 0x000004, 0x80000, CRC(597c2875) SHA1(440bd04db2c121a6976e5e1027071d28812942d3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "so2-4m.6a", 0x000006, 0x80000, CRC(912a9ca0) SHA1(b226a4a388e57e23d7a7559773ebee434125a2e4) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "so2_24.7d", 0x200000, 0x20000, CRC(3f254efe) SHA1(5db36eb98a6d3c7acccb561d92c1988d1330cbbf) , ROM_SKIP(7) )
+ ROMX_LOAD( "so2_14.7c", 0x200001, 0x20000, CRC(f5a8905e) SHA1(fada8b635d490c06b75711ed505a025bb0aa4454) , ROM_SKIP(7) )
+ ROMX_LOAD( "so2_26.9d", 0x200002, 0x20000, CRC(f3aa5a4a) SHA1(bcb3396de5524fffd4110bfbeeeca1c936990eb3) , ROM_SKIP(7) )
+ ROMX_LOAD( "so2_16.9c", 0x200003, 0x20000, CRC(b43cd1a8) SHA1(01c2bb802469848a172968802a674c0045a8b8dc) , ROM_SKIP(7) )
+ ROMX_LOAD( "so2_20.3d", 0x200004, 0x20000, CRC(8ca751a3) SHA1(e93bbe7311f14e7e3cbfb42b83fd7fee4bb9cefc) , ROM_SKIP(7) )
+ ROMX_LOAD( "so2_10.3c", 0x200005, 0x20000, CRC(e9f569fd) SHA1(39ae9eacdf1f35ef90d131444c37958d7aaf7238) , ROM_SKIP(7) )
+ ROMX_LOAD( "so2_22.5d", 0x200006, 0x20000, CRC(fce9a377) SHA1(5de5f696f63326f2cb4c38bcb05e07bcf2246071) , ROM_SKIP(7) )
+ ROMX_LOAD( "so2_12.5c", 0x200007, 0x20000, CRC(b7df8a06) SHA1(b42cb0d3f55a1e8fe8afbbd9aeae50074cdc5f08) , ROM_SKIP(7) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "so2_09.12b", 0x00000, 0x08000, CRC(d09d7c7a) SHA1(8e8532be08818c855d9c3ce45716eb07cfab5767) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "so2_18.11c", 0x00000, 0x20000, CRC(bbea1643) SHA1(d43d68a120550067bf0b181f88687ad230cd7908) )
+ ROM_LOAD( "so2_19.12c", 0x20000, 0x20000, CRC(ac58aa71) SHA1(93102272e358bc49d3936302efdc5bb68df84d68) )
+
+ 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( "o224b.1a", 0x0000, 0x0117, CRC(c211c8cd) SHA1(d9464792e663549e6ad20aac6484622298f88a78) )
+ ROM_LOAD( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "c628", 0x0000, 0x0117, NO_DUMP )
+ROM_END
+
+/* B-Board 89624B-3 */
+ROM_START( mercsur1 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "so2_30.11f", 0x00000, 0x20000, CRC(e17f9bf7) SHA1(f44bb378de428b429c97a21f74829182d3187ace) ) // == so2_30e.11f
+ ROM_LOAD16_BYTE( "so2_35.11h", 0x00001, 0x20000, CRC(4477df61) SHA1(e9b42357c7073c098e8fde7e7d0e4a6e3062fd0d) )
+ ROM_LOAD16_BYTE( "so2_31.12f", 0x40000, 0x20000, CRC(51204d36) SHA1(af288fc369d092f38ea73be967705aacade06f28) ) // == so2_31e.12f
+ ROM_LOAD16_BYTE( "so2_36.12h", 0x40001, 0x20000, CRC(9cfba8b4) SHA1(df8ee5e3a68f056f68f096c46fdb548f63d29446) ) // == so2_36e.12h
+ ROM_LOAD16_WORD_SWAP( "so2-32m.8h", 0x80000, 0x80000, CRC(2eb5cf0c) SHA1(e0d765fb6957d156ffd40cabf51ba6098cbbeb19) )
+
+ ROM_REGION( 0x300000, "gfx", 0 )
+ ROMX_LOAD( "so2-6m.8a", 0x000000, 0x80000, CRC(aa6102af) SHA1(4a45f3547a3640f256e5e20bfd72784f880f03f5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "so2-8m.10a", 0x000002, 0x80000, CRC(839e6869) SHA1(7741141a9f1b1e2956edc1d11f9cc3974390c4ed) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "so2-2m.4a", 0x000004, 0x80000, CRC(597c2875) SHA1(440bd04db2c121a6976e5e1027071d28812942d3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "so2-4m.6a", 0x000006, 0x80000, CRC(912a9ca0) SHA1(b226a4a388e57e23d7a7559773ebee434125a2e4) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "so2_24.7d", 0x200000, 0x20000, CRC(3f254efe) SHA1(5db36eb98a6d3c7acccb561d92c1988d1330cbbf) , ROM_SKIP(7) )
+ ROMX_LOAD( "so2_14.7c", 0x200001, 0x20000, CRC(f5a8905e) SHA1(fada8b635d490c06b75711ed505a025bb0aa4454) , ROM_SKIP(7) )
+ ROMX_LOAD( "so2_26.9d", 0x200002, 0x20000, CRC(f3aa5a4a) SHA1(bcb3396de5524fffd4110bfbeeeca1c936990eb3) , ROM_SKIP(7) )
+ ROMX_LOAD( "so2_16.9c", 0x200003, 0x20000, CRC(b43cd1a8) SHA1(01c2bb802469848a172968802a674c0045a8b8dc) , ROM_SKIP(7) )
+ ROMX_LOAD( "so2_20.3d", 0x200004, 0x20000, CRC(8ca751a3) SHA1(e93bbe7311f14e7e3cbfb42b83fd7fee4bb9cefc) , ROM_SKIP(7) )
+ ROMX_LOAD( "so2_10.3c", 0x200005, 0x20000, CRC(e9f569fd) SHA1(39ae9eacdf1f35ef90d131444c37958d7aaf7238) , ROM_SKIP(7) )
+ ROMX_LOAD( "so2_22.5d", 0x200006, 0x20000, CRC(fce9a377) SHA1(5de5f696f63326f2cb4c38bcb05e07bcf2246071) , ROM_SKIP(7) )
+ ROMX_LOAD( "so2_12.5c", 0x200007, 0x20000, CRC(b7df8a06) SHA1(b42cb0d3f55a1e8fe8afbbd9aeae50074cdc5f08) , ROM_SKIP(7) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "so2_09.12b", 0x00000, 0x08000, CRC(d09d7c7a) SHA1(8e8532be08818c855d9c3ce45716eb07cfab5767) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "so2_18.11c", 0x00000, 0x20000, CRC(bbea1643) SHA1(d43d68a120550067bf0b181f88687ad230cd7908) )
+ ROM_LOAD( "so2_19.12c", 0x20000, 0x20000, CRC(ac58aa71) SHA1(93102272e358bc49d3936302efdc5bb68df84d68) )
+
+ 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( "o224b.1a", 0x0000, 0x0117, CRC(c211c8cd) SHA1(d9464792e663549e6ad20aac6484622298f88a78) )
+ ROM_LOAD( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "c628", 0x0000, 0x0117, NO_DUMP )
+ROM_END
+
+/* B-Board 89625B-1 */
+ROM_START( mercsj )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "so2_36.12f", 0x00000, 0x20000, CRC(e17f9bf7) SHA1(f44bb378de428b429c97a21f74829182d3187ace) ) // == so2_30e.11f
+ ROM_LOAD16_BYTE( "so2_42.12h", 0x00001, 0x20000, CRC(2c3884c6) SHA1(98c3e93741d2344fe0a699aacdc5038bdd9007a0) )
+ ROM_LOAD16_BYTE( "so2_37.13f", 0x40000, 0x20000, CRC(51204d36) SHA1(af288fc369d092f38ea73be967705aacade06f28) ) // == so2_31e.12f
+ ROM_LOAD16_BYTE( "so2_43.13h", 0x40001, 0x20000, CRC(9cfba8b4) SHA1(df8ee5e3a68f056f68f096c46fdb548f63d29446) ) // == so2_36e.12h
+ ROM_LOAD16_BYTE( "so2_34.10f", 0x80000, 0x20000, CRC(b8dae95f) SHA1(2db4a20afd40b772a16f1bee999a0b82d3379ac7) ) // == so2-32m.8h
+ ROM_LOAD16_BYTE( "so2_40.10h", 0x80001, 0x20000, CRC(de37771c) SHA1(45e1e2ef4e46dbe8881e809d700fdd3d06a03c92) ) // == so2-32m.8h
+ ROM_LOAD16_BYTE( "so2_35.11f", 0xc0000, 0x20000, CRC(7d24394d) SHA1(2f4cf51fcfc1b960b68cfe3f1b75914402f2c702) ) // == so2-32m.8h
+ ROM_LOAD16_BYTE( "so2_41.11h", 0xc0001, 0x20000, CRC(914f85e0) SHA1(0b32adf2d3c83e187a5f670de18728726fabb731) ) // == so2-32m.8h
+
+ ROM_REGION( 0x300000, "gfx", 0 )
+ ROMX_LOAD( "so2_09.4b", 0x000000, 0x20000, CRC(690c261d) SHA1(27219101fb62a0c0378e6f5d2f9c0bb5c9397193) , ROM_SKIP(7) ) // == so2-6m.8a
+ ROMX_LOAD( "so2_01.4a", 0x000001, 0x20000, CRC(31fd2715) SHA1(d80b7a93c3b4e5e482fe6bb9ed9d261377980351) , ROM_SKIP(7) ) // == so2-6m.8a
+ ROMX_LOAD( "so2_13.9b", 0x000002, 0x20000, CRC(b5e48282) SHA1(5f387929b4f1ebb8cb8c24138317d4208e2cf7c2) , ROM_SKIP(7) ) // == so2-8m.10a
+ ROMX_LOAD( "so2_05.9a", 0x000003, 0x20000, CRC(54bed82c) SHA1(4a45ceaec3f6162443b2c62b816612c19a609341) , ROM_SKIP(7) ) // == so2-8m.10a
+ ROMX_LOAD( "so2_24.5e", 0x000004, 0x20000, CRC(78b6f0cb) SHA1(679c39d71d3b73db088d0ab017e80fd8316045b5) , ROM_SKIP(7) ) // == so2-2m.4a
+ ROMX_LOAD( "so2_17.5c", 0x000005, 0x20000, CRC(e78bb308) SHA1(7c0c2cf4c79e0bb3c401ba8fdcc88ccc3ed64246) , ROM_SKIP(7) ) // == so2-2m.4a
+ ROMX_LOAD( "so2_38.8h", 0x000006, 0x20000, CRC(0010a9a2) SHA1(03fedaaa939b56afb1b376243542e68da68e2690) , ROM_SKIP(7) ) // == so2-4m.6a
+ ROMX_LOAD( "so2_32.8f", 0x000007, 0x20000, CRC(75dffc9a) SHA1(ef296e1c0742e0b5a6e104032f0492151e631691) , ROM_SKIP(7) ) // == so2-4m.6a
+ ROMX_LOAD( "so2_10.5b", 0x100000, 0x20000, CRC(2f871714) SHA1(8a39f120e3f50fc9a7e6cee659260b2f823fb0e0) , ROM_SKIP(7) ) // == so2-6m.8a
+ ROMX_LOAD( "so2_02.5a", 0x100001, 0x20000, CRC(b4b2a0b7) SHA1(ee42ed3de9021e8d08d6c7115f2de73476b93452) , ROM_SKIP(7) ) // == so2-6m.8a
+ ROMX_LOAD( "so2_14.10b", 0x100002, 0x20000, CRC(737a744b) SHA1(8e1477a67862f7c0c598d3d1a1f633946e7ab31b) , ROM_SKIP(7) ) // == so2-8m.10a
+ ROMX_LOAD( "so2_06.10a", 0x100003, 0x20000, CRC(9d756f51) SHA1(4e9773ee25f6a952fb4f541d37e5e46e4089fd07) , ROM_SKIP(7) ) // == so2-8m.10a
+ ROMX_LOAD( "so2_25.7e", 0x100004, 0x20000, CRC(6d0e05d6) SHA1(47cbec235bd4b250db007218dc357101ae453d1a) , ROM_SKIP(7) ) // == so2-2m.4a
+ ROMX_LOAD( "so2_18.7c", 0x100005, 0x20000, CRC(96f61f4e) SHA1(954334bd8c2d2b02175de60d6a181a23e723d040) , ROM_SKIP(7) ) // == so2-2m.4a
+ ROMX_LOAD( "so2_39.9h", 0x100006, 0x20000, CRC(d52ba336) SHA1(49550d316e575a4e64ea6a5f769f3cd716be6df5) , ROM_SKIP(7) ) // == so2-4m.6a
+ ROMX_LOAD( "so2_33.9f", 0x100007, 0x20000, CRC(39b90d25) SHA1(1089cca168a4abeb398fa93eddd4d9fff70d5db5) , ROM_SKIP(7) ) // == so2-4m.6a
+ ROMX_LOAD( "so2_11.7b", 0x200000, 0x20000, CRC(3f254efe) SHA1(5db36eb98a6d3c7acccb561d92c1988d1330cbbf) , ROM_SKIP(7) ) // == so2_24.7d
+ ROMX_LOAD( "so2_03.7a", 0x200001, 0x20000, CRC(f5a8905e) SHA1(fada8b635d490c06b75711ed505a025bb0aa4454) , ROM_SKIP(7) ) // == so2_14.7c
+ ROMX_LOAD( "so2_15.11b", 0x200002, 0x20000, CRC(f3aa5a4a) SHA1(bcb3396de5524fffd4110bfbeeeca1c936990eb3) , ROM_SKIP(7) ) // == so2_26.9d
+ ROMX_LOAD( "so2_07.11a", 0x200003, 0x20000, CRC(b43cd1a8) SHA1(01c2bb802469848a172968802a674c0045a8b8dc) , ROM_SKIP(7) ) // == so2_16.9c
+ ROMX_LOAD( "so2_26.8e", 0x200004, 0x20000, CRC(8ca751a3) SHA1(e93bbe7311f14e7e3cbfb42b83fd7fee4bb9cefc) , ROM_SKIP(7) ) // == so2_20.3d
+ ROMX_LOAD( "so2_19.8c", 0x200005, 0x20000, CRC(e9f569fd) SHA1(39ae9eacdf1f35ef90d131444c37958d7aaf7238) , ROM_SKIP(7) ) // == so2_10.3c
+ ROMX_LOAD( "so2_28.10e", 0x200006, 0x20000, CRC(fce9a377) SHA1(5de5f696f63326f2cb4c38bcb05e07bcf2246071) , ROM_SKIP(7) ) // == so2_22.5d
+ ROMX_LOAD( "so2_21.10c", 0x200007, 0x20000, CRC(b7df8a06) SHA1(b42cb0d3f55a1e8fe8afbbd9aeae50074cdc5f08) , ROM_SKIP(7) ) // == so2_12.5c
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "so2_23.13b", 0x00000, 0x08000, CRC(d09d7c7a) SHA1(8e8532be08818c855d9c3ce45716eb07cfab5767) ) // == so2_09.12b
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "so2_30.12c", 0x00000, 0x20000, CRC(bbea1643) SHA1(d43d68a120550067bf0b181f88687ad230cd7908) ) // == so2_18.11c
+ ROM_LOAD( "so2_31.13c", 0x20000, 0x20000, CRC(ac58aa71) SHA1(93102272e358bc49d3936302efdc5bb68df84d68) ) // == so2_19.12c
+
+ 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( "o222b.1a", 0x0000, 0x0117, NO_DUMP )
+ ROM_LOAD( "lwio.12e", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) ) // pal verification required
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "c628", 0x0000, 0x0117, NO_DUMP )
+ROM_END
+
+/* B-Board 89624B-3 */
+ROM_START( mtwins )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "che_30.11f", 0x00000, 0x20000, CRC(9a2a2db1) SHA1(57524e76311afc8ab5d5affa76c85cb1be5a1faf) )
+ ROM_LOAD16_BYTE( "che_35.11h", 0x00001, 0x20000, CRC(a7f96b02) SHA1(b5fda02e5069f9e1cdafbacf98334510e9af8fcd) )
+ ROM_LOAD16_BYTE( "che_31.12f", 0x40000, 0x20000, CRC(bbff8a99) SHA1(1f931fad9f43a1494f3b8dbcf910156d5b0bd458) )
+ ROM_LOAD16_BYTE( "che_36.12h", 0x40001, 0x20000, CRC(0fa00c39) SHA1(6404d91590c5c521c8fe944a0aa7091e35b664ae) )
+ ROM_LOAD16_WORD_SWAP( "ck-32m.8h", 0x80000, 0x80000, CRC(9b70bd41) SHA1(28ec37d9d0ace5b9fd212fdc02e0f13dc280c068) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "ck-5m.7a", 0x000000, 0x80000, CRC(4ec75f15) SHA1(a4669e3864009b01894406db784116ad5cd2eced) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ck-7m.9a", 0x000002, 0x80000, CRC(d85d00d6) SHA1(ca6ddcbfbb0f9ad98dc19f09e879fdac5b62d168) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ck-1m.3a", 0x000004, 0x80000, CRC(f33ca9d4) SHA1(480d90ff16f27777cc7d7de6925ed6378b35dc27) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ck-3m.5a", 0x000006, 0x80000, CRC(0ba2047f) SHA1(efee13b955c2ded52700025cecbb9fb301098b61) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "ch_09.12b", 0x00000, 0x08000, CRC(4d4255b7) SHA1(81a76b58043af7252a854b7efc4109957ef0e679) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "ch_18.11c", 0x00000, 0x20000, CRC(f909e8de) SHA1(2dd5bd4076e7d5ded98b72919f868ea700df2e4f) )
+ ROM_LOAD( "ch_19.12c", 0x20000, 0x20000, CRC(fc158cf7) SHA1(294b93d0aea60663ffe96364671552e944a1264b) )
+
+ 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( "ck24b.1a", 0x0000, 0x0117, CRC(bd99c448) SHA1(2692c158f76769b0743103cc3a6d1c5d1f4f52ec) )
+ ROM_LOAD( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ROM_END
+
+/* B-Board 89625B-1 */
+ROM_START( chikij )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "chj_36a.12f", 0x00000, 0x20000, CRC(ec1328d8) SHA1(a7111f9c264c56d1c6474ec3ad90e394a32a86f6) )
+ ROM_LOAD16_BYTE( "chj_42a.12h", 0x00001, 0x20000, CRC(4ae13503) SHA1(c47db0445e107ad4fb62b74e277a7dc2b4d9b7ea) )
+ ROM_LOAD16_BYTE( "chj_37a.13f", 0x40000, 0x20000, CRC(46d2cf7b) SHA1(5cb7ed3003d89a08882d4dcd326c8fd9430f0eac) )
+ ROM_LOAD16_BYTE( "chj_43a.13h", 0x40001, 0x20000, CRC(8d387fe8) SHA1(7832ecd487b5ef4e49b5ea78e80e52f8e2dcaa17) )
+ ROM_LOAD16_BYTE( "ch_34.10f", 0x80000, 0x20000, CRC(609ed2f9) SHA1(869924ff1bc78ac4b50bcfd37a8e76820a9fddf1) ) // == ck-32m.8h
+ ROM_LOAD16_BYTE( "ch_40.10h", 0x80001, 0x20000, CRC(be0d8301) SHA1(28dbbb4176800b31068b1beecf54a78085092e5a) ) // == ck-32m.8h
+ ROM_LOAD16_BYTE( "ch_35.11f", 0xc0000, 0x20000, CRC(b810867f) SHA1(c971d286c60a9b61f42ea3b792cf59847aacb965) ) // == ck-32m.8h
+ ROM_LOAD16_BYTE( "ch_41.11h", 0xc0001, 0x20000, CRC(8ad96155) SHA1(673a5b5eb7330fbbc02aabcdb164efea193613a3) ) // == ck-32m.8h
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "ch_09.4b", 0x000000, 0x20000, CRC(567ab3ca) SHA1(b3d1531d9307285fcecff937dce0bed7ce9e4253) , ROM_SKIP(7) ) // == ck-5m.7a
+ ROMX_LOAD( "ch_01.4a", 0x000001, 0x20000, CRC(7f3b7b56) SHA1(cf78c3122628aa0e14f7b5017429aee35e9b266d) , ROM_SKIP(7) ) // == ck-5m.7a
+ ROMX_LOAD( "ch_13.9b", 0x000002, 0x20000, CRC(12a7a8ba) SHA1(22eaa1c667213a37b2c700c5c80dbf9cb81b9f5f) , ROM_SKIP(7) ) // == ck-7m.9a
+ ROMX_LOAD( "ch_05.9a", 0x000003, 0x20000, CRC(6c1afb9a) SHA1(cef28a63550c6ec3fe7cd7ec478a7fb726df4e27) , ROM_SKIP(7) ) // == ck-7m.9a
+ ROMX_LOAD( "ch_24.5e", 0x000004, 0x20000, CRC(9cb6e6bc) SHA1(af241438de5bd754e176eec8ad45941f9bf30523) , ROM_SKIP(7) ) // == ck-1m.3a
+ ROMX_LOAD( "ch_17.5c", 0x000005, 0x20000, CRC(fe490846) SHA1(0d1ddb79c1ee2a7ff4bcdb960e18fc3cfb115e75) , ROM_SKIP(7) ) // == ck-1m.3a
+ ROMX_LOAD( "ch_38.8h", 0x000006, 0x20000, CRC(6e5c8cb6) SHA1(438b897c14dccc0a185032b1ae2b93d71eed305a) , ROM_SKIP(7) ) // == ck-3m.5a
+ ROMX_LOAD( "ch_32.8f", 0x000007, 0x20000, CRC(317d27b0) SHA1(5d8a3ab24fcf65b30e1c0affd80301e29e3bf208) , ROM_SKIP(7) ) // == ck-3m.5a
+ ROMX_LOAD( "ch_10.5b", 0x100000, 0x20000, CRC(e8251a9b) SHA1(e0d5eaba20dc1132643b9ea334b36034ce97fc6d) , ROM_SKIP(7) ) // == ck-5m.7a
+ ROMX_LOAD( "ch_02.5a", 0x100001, 0x20000, CRC(7c8c88fb) SHA1(29d1e5d6780b7d6875efff6b086fd03bef779df7) , ROM_SKIP(7) ) // == ck-5m.7a
+ ROMX_LOAD( "ch_14.10b", 0x100002, 0x20000, CRC(4012ec4b) SHA1(041e08e1f407528da84b973d16c5f64f02bd14fe) , ROM_SKIP(7) ) // == ck-7m.9a
+ ROMX_LOAD( "ch_06.10a", 0x100003, 0x20000, CRC(81884b2b) SHA1(1e4682183c167c95b2fb3986887c31d3e8911484) , ROM_SKIP(7) ) // == ck-7m.9a
+ ROMX_LOAD( "ch_25.7e", 0x100004, 0x20000, CRC(1dfcbac5) SHA1(a7e419326a4bb7062c5bc7d0b3194b96e00a92d0) , ROM_SKIP(7) ) // == ck-1m.3a
+ ROMX_LOAD( "ch_18.7c", 0x100005, 0x20000, CRC(516a34d1) SHA1(6516fa19d251898c6f55ab0fda760fc5404bef06) , ROM_SKIP(7) ) // == ck-1m.3a
+ ROMX_LOAD( "ch_39.9h", 0x100006, 0x20000, CRC(872fb2a4) SHA1(1f5d12b78100dfba7f6c9a076f7923811467aa2b) , ROM_SKIP(7) ) // == ck-3m.5a
+ ROMX_LOAD( "ch_33.9f", 0x100007, 0x20000, CRC(30dc5ded) SHA1(34a7a6f9aa61ce47116d63c2feb7ea8a427b93e0) , ROM_SKIP(7) ) // == ck-3m.5a
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "ch_23.13b", 0x00000, 0x08000, CRC(4d4255b7) SHA1(81a76b58043af7252a854b7efc4109957ef0e679) ) // == ch_09.12b
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "ch_30.12c", 0x00000, 0x20000, CRC(f909e8de) SHA1(2dd5bd4076e7d5ded98b72919f868ea700df2e4f) ) // == ch_18.11c
+ ROM_LOAD( "ch_31.13c", 0x20000, 0x20000, CRC(fc158cf7) SHA1(294b93d0aea60663ffe96364671552e944a1264b) ) // == ch_19.12c
+
+ 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( "ck22b.1a", 0x0000, 0x0117, CRC(24fdfdeb) SHA1(850b760de694dc5455e63c89983266ecda836400) )
+ ROM_LOAD( "iob1.12e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) // pal verification required
+ROM_END
+
+/* B-Board 89624B-3 */
+ROM_START( msword )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "mse_30.11f", 0x00000, 0x20000, CRC(03fc8dbc) SHA1(a9e4e8a06e2d170faeae75a8b17fd65e6e5fecd4) )
+ ROM_LOAD16_BYTE( "mse_35.11h", 0x00001, 0x20000, CRC(d5bf66cd) SHA1(37c5bc4deafd7037ec5cf09c88bb89f35ea3d95c) )
+ ROM_LOAD16_BYTE( "mse_31.12f", 0x40000, 0x20000, CRC(30332bcf) SHA1(1c77c06028b77473276cb5dde5ecf414b43a7b78) )
+ ROM_LOAD16_BYTE( "mse_36.12h", 0x40001, 0x20000, CRC(8f7d6ce9) SHA1(7694c940023c12520663593f973ddb4168a6bfa5) )
+ ROM_LOAD16_WORD_SWAP( "ms-32m.8h", 0x80000, 0x80000, CRC(2475ddfc) SHA1(cc34dfae8124aa781320be6870a1929495eee456) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "ms-5m.7a", 0x000000, 0x80000, CRC(c00fe7e2) SHA1(1ce82ea36996908620d3ac8aabd3650118d6c255) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ms-7m.9a", 0x000002, 0x80000, CRC(4ccacac5) SHA1(f2e30edf6ad100da411584bb0b828420256a9d5c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ms-1m.3a", 0x000004, 0x80000, CRC(0d2bbe00) SHA1(dca13fc7ff63ad7fb175a71ada1ee22d21a8811d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ms-3m.5a", 0x000006, 0x80000, CRC(3a1a5bf4) SHA1(88a7cc0bf29b3516a97f661691500ff28e91a362) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "ms_09.12b", 0x00000, 0x08000, CRC(57b29519) SHA1(a6b4fc2b9595d1a49f2b93581f107b68d484d156) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "ms_18.11c", 0x00000, 0x20000, CRC(fb64e90d) SHA1(d1a596ce2f8ac14a80b34335b173369a14b45f55) )
+ ROM_LOAD( "ms_19.12c", 0x20000, 0x20000, CRC(74f892b9) SHA1(bf48db5c438154e7b96fd31fde1be4aad5cf25eb) )
+
+ 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( "ms24b.1a", 0x0000, 0x0117, CRC(636dbe6d) SHA1(6622a2294f82e70e9eb5ff24f84e0dc13e9168b5) )
+ ROM_LOAD( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ROM_END
+
+/* B-Board 89624B-3 */
+ROM_START( mswordr1 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "ms_30.11f", 0x00000, 0x20000, CRC(21c1f078) SHA1(f32bd3b462cc84466244b362a66510b9d40ac2fd) )
+ ROM_LOAD16_BYTE( "ms_35.11h", 0x00001, 0x20000, CRC(a540a73a) SHA1(1c91241ba0d17d13adaa68e231b95dfd49d93b6d) )
+ ROM_LOAD16_BYTE( "ms_31.12f", 0x40000, 0x20000, CRC(d7e762b5) SHA1(6977130e9c0cd36d8a67e242c132df38f7aea5b7) )
+ ROM_LOAD16_BYTE( "ms_36.12h", 0x40001, 0x20000, CRC(66f2dcdb) SHA1(287508b1c96762d0048a10272cf2cbd39a7fba5c) )
+ ROM_LOAD16_WORD_SWAP( "ms-32m.8h", 0x80000, 0x80000, CRC(2475ddfc) SHA1(cc34dfae8124aa781320be6870a1929495eee456) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "ms-5m.7a", 0x000000, 0x80000, CRC(c00fe7e2) SHA1(1ce82ea36996908620d3ac8aabd3650118d6c255) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ms-7m.9a", 0x000002, 0x80000, CRC(4ccacac5) SHA1(f2e30edf6ad100da411584bb0b828420256a9d5c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ms-1m.3a", 0x000004, 0x80000, CRC(0d2bbe00) SHA1(dca13fc7ff63ad7fb175a71ada1ee22d21a8811d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ms-3m.5a", 0x000006, 0x80000, CRC(3a1a5bf4) SHA1(88a7cc0bf29b3516a97f661691500ff28e91a362) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "ms_09.12b", 0x00000, 0x08000, CRC(57b29519) SHA1(a6b4fc2b9595d1a49f2b93581f107b68d484d156) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "ms_18.11c", 0x00000, 0x20000, CRC(fb64e90d) SHA1(d1a596ce2f8ac14a80b34335b173369a14b45f55) )
+ ROM_LOAD( "ms_19.12c", 0x20000, 0x20000, CRC(74f892b9) SHA1(bf48db5c438154e7b96fd31fde1be4aad5cf25eb) )
+
+ 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( "ms24b.1a", 0x0000, 0x0117, CRC(636dbe6d) SHA1(6622a2294f82e70e9eb5ff24f84e0dc13e9168b5) )
+ ROM_LOAD( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ROM_END
+
+/* B-Board 89624B-3 */
+ROM_START( mswordu )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "msu_30.11f", 0x00000, 0x20000, CRC(d963c816) SHA1(e23844a60ddfc0a8a98c0ada9c3d58fce71c5484) )
+ ROM_LOAD16_BYTE( "msu_35.11h", 0x00001, 0x20000, CRC(72f179b3) SHA1(8d31cdc84b02fc345fc78e8f231410adeb834c28) )
+ ROM_LOAD16_BYTE( "msu_31.12f", 0x40000, 0x20000, CRC(20cd7904) SHA1(cea2db01be97f69dc10e9da80f3b46f6ddaa953a) )
+ ROM_LOAD16_BYTE( "msu_36.12h", 0x40001, 0x20000, CRC(bf88c080) SHA1(b8cd0b127fd3e1afc45402e667ff4b4b01602384) )
+ ROM_LOAD16_WORD_SWAP( "ms-32m.8h", 0x80000, 0x80000, CRC(2475ddfc) SHA1(cc34dfae8124aa781320be6870a1929495eee456) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "ms-5m.7a", 0x000000, 0x80000, CRC(c00fe7e2) SHA1(1ce82ea36996908620d3ac8aabd3650118d6c255) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ms-7m.9a", 0x000002, 0x80000, CRC(4ccacac5) SHA1(f2e30edf6ad100da411584bb0b828420256a9d5c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ms-1m.3a", 0x000004, 0x80000, CRC(0d2bbe00) SHA1(dca13fc7ff63ad7fb175a71ada1ee22d21a8811d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ms-3m.5a", 0x000006, 0x80000, CRC(3a1a5bf4) SHA1(88a7cc0bf29b3516a97f661691500ff28e91a362) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "ms_09.12b", 0x00000, 0x08000, CRC(57b29519) SHA1(a6b4fc2b9595d1a49f2b93581f107b68d484d156) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "ms_18.11c", 0x00000, 0x20000, CRC(fb64e90d) SHA1(d1a596ce2f8ac14a80b34335b173369a14b45f55) )
+ ROM_LOAD( "ms_19.12c", 0x20000, 0x20000, CRC(74f892b9) SHA1(bf48db5c438154e7b96fd31fde1be4aad5cf25eb) )
+
+ 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( "ms24b.1a", 0x0000, 0x0117, CRC(636dbe6d) SHA1(6622a2294f82e70e9eb5ff24f84e0dc13e9168b5) )
+ ROM_LOAD( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ROM_END
+
+/* B-Board 89625B-1 */
+ROM_START( mswordj )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "msj_36.12f", 0x00000, 0x20000, CRC(04f0ef50) SHA1(76dac695732ade1873bb6da51834ef90c6595689) )
+ ROM_LOAD16_BYTE( "msj_42.12h", 0x00001, 0x20000, CRC(9fcbb9cd) SHA1(bfbf805ddecd3fa9e209a658526e1430ad9e459a) )
+ ROM_LOAD16_BYTE( "msj_37.13f", 0x40000, 0x20000, CRC(6c060d70) SHA1(7fe56f125bc11156955bf0defc956fe7c18a1c72) )
+ ROM_LOAD16_BYTE( "msj_43.13h", 0x40001, 0x20000, CRC(aec77787) SHA1(3260f9a80b67394dd90dbabdd544c9b8b31e5817) )
+ ROM_LOAD16_BYTE( "ms_34.10f", 0x80000, 0x20000, CRC(0e59a62d) SHA1(d109e5edfb32ce3dc7c32e10a78fc3e943029a73) ) // == ms-32m.8h
+ ROM_LOAD16_BYTE( "ms_40.10h", 0x80001, 0x20000, CRC(babade3a) SHA1(00acdcb5b316611a6df55e54f6ac4ec3503e1cac) ) // == ms-32m.8h
+ ROM_LOAD16_BYTE( "ms_35.11f", 0xc0000, 0x20000, CRC(03da99d1) SHA1(f21a27f1122e1ee237a53b06ecd24737ac0d2c0e) ) // == ms-32m.8h
+ ROM_LOAD16_BYTE( "ms_41.11h", 0xc0001, 0x20000, CRC(fadf99ea) SHA1(a3f3ef357f02c30b7f76941e5f854746774b0114) ) // == ms-32m.8h
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "ms_09.4b", 0x000000, 0x20000, CRC(4adee6f6) SHA1(3becf055313f2fb90c42b839124d8ba4ccc047e0) , ROM_SKIP(7) ) // == ms-5m.7a
+ ROMX_LOAD( "ms_01.4a", 0x000001, 0x20000, CRC(f7ab1b88) SHA1(9dae1c21c5379413e173fb13521821339ef0852e) , ROM_SKIP(7) ) // == ms-5m.7a
+ ROMX_LOAD( "ms_13.9b", 0x000002, 0x20000, CRC(e01adc4b) SHA1(1eaf3511a3ffbd4b26a755d5f818e604cfd7764a) , ROM_SKIP(7) ) // == ms-7m.9a
+ ROMX_LOAD( "ms_05.9a", 0x000003, 0x20000, CRC(f62c2369) SHA1(568d05c256889a2450b53373e68858ea6ae52007) , ROM_SKIP(7) ) // == ms-7m.9a
+ ROMX_LOAD( "ms_24.5e", 0x000004, 0x20000, CRC(be64a3a1) SHA1(92a8f44a7f141fa189543f7b2564b9c0e44fb44f) , ROM_SKIP(7) ) // == ms-1m.3a
+ ROMX_LOAD( "ms_17.5c", 0x000005, 0x20000, CRC(0bc1665f) SHA1(4b92e4f1f423964ece9d5ecbe960be3a06c42565) , ROM_SKIP(7) ) // == ms-1m.3a
+ ROMX_LOAD( "ms_38.8h", 0x000006, 0x20000, CRC(904a2ed5) SHA1(8954c13f5c008ab6f28fa3adfba811c1173a2d88) , ROM_SKIP(7) ) // == ms-3m.5a
+ ROMX_LOAD( "ms_32.8f", 0x000007, 0x20000, CRC(3d89c530) SHA1(7a9d82e1ccd0dd3b27d91013ef127233a0dd42a1) , ROM_SKIP(7) ) // == ms-3m.5a
+ ROMX_LOAD( "ms_10.5b", 0x100000, 0x20000, CRC(f02c0718) SHA1(6055673fff3b57b7ba69eea8b45d7df36dfc5ba7) , ROM_SKIP(7) ) // == ms-5m.7a
+ ROMX_LOAD( "ms_02.5a", 0x100001, 0x20000, CRC(d071a405) SHA1(205d706a992efa4bd772699472ab40eedd70f686) , ROM_SKIP(7) ) // == ms-5m.7a
+ ROMX_LOAD( "ms_14.10b", 0x100002, 0x20000, CRC(dfb2e4df) SHA1(371c2a8d97eb0592b7b8767c1b992b4375933ac4) , ROM_SKIP(7) ) // == ms-7m.9a
+ ROMX_LOAD( "ms_06.10a", 0x100003, 0x20000, CRC(d3ce2a91) SHA1(21ed0f7d4a1e9d0b1eb6a1cf4e5d082b773eb36c) , ROM_SKIP(7) ) // == ms-7m.9a
+ ROMX_LOAD( "ms_25.7e", 0x100004, 0x20000, CRC(0f199d56) SHA1(0df4eda96b3327bd1d1fe6416e75e8b76b6593ac) , ROM_SKIP(7) ) // == ms-1m.3a
+ ROMX_LOAD( "ms_18.7c", 0x100005, 0x20000, CRC(1ba76df2) SHA1(db7c16e6fde29c764278bdf76fc04c05567666e5) , ROM_SKIP(7) ) // == ms-1m.3a
+ ROMX_LOAD( "ms_39.9h", 0x100006, 0x20000, CRC(01efce86) SHA1(665182bb61b1efb300422f7076d8538d2ca514ce) , ROM_SKIP(7) ) // == ms-3m.5a
+ ROMX_LOAD( "ms_33.9f", 0x100007, 0x20000, CRC(ce25defc) SHA1(885eef9bac1d401f3e49c46294e573dd9cfad3a1) , ROM_SKIP(7) ) // == ms-3m.5a
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "ms_23.13b", 0x00000, 0x08000, CRC(57b29519) SHA1(a6b4fc2b9595d1a49f2b93581f107b68d484d156) ) // == ms_09.12b
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "ms_30.12c", 0x00000, 0x20000, CRC(fb64e90d) SHA1(d1a596ce2f8ac14a80b34335b173369a14b45f55) ) // == ms_18.11c
+ ROM_LOAD( "ms_31.13c", 0x20000, 0x20000, CRC(74f892b9) SHA1(bf48db5c438154e7b96fd31fde1be4aad5cf25eb) ) // == ms_19.12c
+
+ 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( "ms22b.1a", 0x0000, 0x0117, CRC(dde86cb0) SHA1(d0b93a0b62a7cc3c3473da31fc00043392bc8f75) )
+ ROM_LOAD( "iob1.12e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ROM_END
+
+/* B-Board 89624B-3 */
+ROM_START( cawing )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "cae_30a.11f", 0x00000, 0x20000, CRC(91fceacd) SHA1(4845999a96fee829264346ca399fdd64a8408001) )
+ ROM_LOAD16_BYTE( "cae_35a.11h", 0x00001, 0x20000, CRC(3ef03083) SHA1(297dfc9ec1e0f07d6083bf5efaa0de8d0fb361fa) )
+ ROM_LOAD16_BYTE( "cae_31a.12f", 0x40000, 0x20000, CRC(e5b75caf) SHA1(4d04220c78620867b7598deea5685bbe88298ae6) )
+ ROM_LOAD16_BYTE( "cae_36a.12h", 0x40001, 0x20000, CRC(c73fd713) SHA1(fa202c252b2cc5972d42d634c466d89cf8b5d178) )
+ ROM_LOAD16_WORD_SWAP( "ca-32m.8h", 0x80000, 0x80000, CRC(0c4837d4) SHA1(1c61958b43066b59d86eb4bae0b52c3109be4b07) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "ca-5m.7a", 0x000000, 0x80000, CRC(66d4cc37) SHA1(d355ea64ff29d228dcbfeee72bcf11882bf1cd9d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ca-7m.9a", 0x000002, 0x80000, CRC(b6f896f2) SHA1(bdb6820b81fbce77d7eacb01777af7c380490402) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ca-1m.3a", 0x000004, 0x80000, CRC(4d0620fd) SHA1(5f62cd551b6a230edefd81fa60c10c84186ca804) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ca-3m.5a", 0x000006, 0x80000, CRC(0b0341c3) SHA1(c31f0e78f49d94ea9dea20eb0cbd98a6c613bcbf) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "ca_9.12b", 0x00000, 0x08000, CRC(96fe7485) SHA1(10466889dfc6bc8afd3075385e241a16372efbeb) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "ca_18.11c", 0x00000, 0x20000, CRC(4a613a2c) SHA1(06e10644fc60925b85d2ca0888c9fa057bfe996a) )
+ ROM_LOAD( "ca_19.12c", 0x20000, 0x20000, CRC(74584493) SHA1(5cfb15f1b9729323707972646313aee8ab3ac4eb) )
+
+ 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( "ca24b.1a", 0x0000, 0x0117, CRC(76ec0b1c) SHA1(71a7e22613981182fd5b1156f4e495337ab8a172) )
+ ROM_LOAD( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ROM_END
+
+/* B-Board 89624B-3 */
+ROM_START( cawingr1 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "cae_30.11f", 0x00000, 0x20000, CRC(23305cd5) SHA1(59cbcb79c171b433f278e128c73cdd3635876370) )
+ ROM_LOAD16_BYTE( "cae_35.11h", 0x00001, 0x20000, CRC(69419113) SHA1(cfbb6dbbe224ffaf7747fd70b65a7dbd4f696fe9) )
+ ROM_LOAD16_BYTE( "cae_31.12f", 0x40000, 0x20000, CRC(9008dfb3) SHA1(81fdd21606caabe9e0df773fc33377c958ab80f6) )
+ ROM_LOAD16_BYTE( "cae_36.12h", 0x40001, 0x20000, CRC(4dbf6f8e) SHA1(a2da49dce72c2366381bd8bea8ce4eba0b70d78c) )
+ ROM_LOAD16_WORD_SWAP( "ca-32m.8h", 0x80000, 0x80000, CRC(0c4837d4) SHA1(1c61958b43066b59d86eb4bae0b52c3109be4b07) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "ca-5m.7a", 0x000000, 0x80000, CRC(66d4cc37) SHA1(d355ea64ff29d228dcbfeee72bcf11882bf1cd9d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ca-7m.9a", 0x000002, 0x80000, CRC(b6f896f2) SHA1(bdb6820b81fbce77d7eacb01777af7c380490402) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ca-1m.3a", 0x000004, 0x80000, CRC(4d0620fd) SHA1(5f62cd551b6a230edefd81fa60c10c84186ca804) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ca-3m.5a", 0x000006, 0x80000, CRC(0b0341c3) SHA1(c31f0e78f49d94ea9dea20eb0cbd98a6c613bcbf) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "cae_09.12b", 0x00000, 0x08000, CRC(96fe7485) SHA1(10466889dfc6bc8afd3075385e241a16372efbeb) ) // == ca_9.12b
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "cae_18.11c", 0x00000, 0x20000, CRC(4a613a2c) SHA1(06e10644fc60925b85d2ca0888c9fa057bfe996a) ) // == ca_18.11c
+ ROM_LOAD( "cae_19.12c", 0x20000, 0x20000, CRC(74584493) SHA1(5cfb15f1b9729323707972646313aee8ab3ac4eb) ) // == ca_19.12c
+
+ 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( "ca24b.1a", 0x0000, 0x0117, CRC(76ec0b1c) SHA1(71a7e22613981182fd5b1156f4e495337ab8a172) )
+ ROM_LOAD( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ROM_END
+
+/* B-Board 89624B-3 */
+ROM_START( cawingu )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "cau_30a.11f", 0x00000, 0x20000, CRC(91fceacd) SHA1(4845999a96fee829264346ca399fdd64a8408001) ) // == cae_30a.11f
+ ROM_LOAD16_BYTE( "cau_35a.11h", 0x00001, 0x20000, CRC(f090d9b2) SHA1(261dc4ac79507299a7f9a1ad5edb8425345db06c) )
+ ROM_LOAD16_BYTE( "cau_31a.12f", 0x40000, 0x20000, CRC(e5b75caf) SHA1(4d04220c78620867b7598deea5685bbe88298ae6) ) // == cae_31a.12f
+ ROM_LOAD16_BYTE( "cau_36a.12h", 0x40001, 0x20000, CRC(c73fd713) SHA1(fa202c252b2cc5972d42d634c466d89cf8b5d178) ) // == cae_36a.12h
+ ROM_LOAD16_WORD_SWAP( "ca-32m.8h", 0x80000, 0x80000, CRC(0c4837d4) SHA1(1c61958b43066b59d86eb4bae0b52c3109be4b07) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "ca-5m.7a", 0x000000, 0x80000, CRC(66d4cc37) SHA1(d355ea64ff29d228dcbfeee72bcf11882bf1cd9d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ca-7m.9a", 0x000002, 0x80000, CRC(b6f896f2) SHA1(bdb6820b81fbce77d7eacb01777af7c380490402) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ca-1m.3a", 0x000004, 0x80000, CRC(4d0620fd) SHA1(5f62cd551b6a230edefd81fa60c10c84186ca804) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ca-3m.5a", 0x000006, 0x80000, CRC(0b0341c3) SHA1(c31f0e78f49d94ea9dea20eb0cbd98a6c613bcbf) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "cau_09.12b", 0x00000, 0x08000, CRC(96fe7485) SHA1(10466889dfc6bc8afd3075385e241a16372efbeb) ) // == ca_9.12b
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "cau_18.11c", 0x00000, 0x20000, CRC(4a613a2c) SHA1(06e10644fc60925b85d2ca0888c9fa057bfe996a) ) // == ca_18.11c
+ ROM_LOAD( "cau_19.12c", 0x20000, 0x20000, CRC(74584493) SHA1(5cfb15f1b9729323707972646313aee8ab3ac4eb) ) // == ca_19.12c
+
+ 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( "ca24b.1a", 0x0000, 0x0117, CRC(76ec0b1c) SHA1(71a7e22613981182fd5b1156f4e495337ab8a172) )
+ ROM_LOAD( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ROM_END
+
+/* B-Board 89625B-1 */
+ROM_START( cawingj )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "caj_36a.12f", 0x00000, 0x20000, CRC(91fceacd) SHA1(4845999a96fee829264346ca399fdd64a8408001) ) // == cae_30a.11f
+ ROM_LOAD16_BYTE( "caj_42a.12h", 0x00001, 0x20000, CRC(039f8362) SHA1(3fc7a642ddeaf94abdfdd5788a4b3c3b1f1b4c5e) )
+ ROM_LOAD16_BYTE( "caj_37a.13f", 0x40000, 0x20000, CRC(e5b75caf) SHA1(4d04220c78620867b7598deea5685bbe88298ae6) ) // == cae_31a.12f
+ ROM_LOAD16_BYTE( "caj_43a.13h", 0x40001, 0x20000, CRC(c73fd713) SHA1(fa202c252b2cc5972d42d634c466d89cf8b5d178) ) // == cae_36a.12h
+ ROM_LOAD16_BYTE( "caj_34.10f", 0x80000, 0x20000, CRC(51ea57f4) SHA1(7d7080dbf4b6f9b801b796937e9c3c45afed602f) )
+ ROM_LOAD16_BYTE( "caj_40.10h", 0x80001, 0x20000, CRC(2ab71ae1) SHA1(23814b58322902b23c4bdd744e60d819811462cc) )
+ ROM_LOAD16_BYTE( "caj_35.11f", 0xc0000, 0x20000, CRC(01d71973) SHA1(1f5fc0d47f1456a6338284f883dabc89697f8aa5) )
+ ROM_LOAD16_BYTE( "caj_41.11h", 0xc0001, 0x20000, CRC(3a43b538) SHA1(474a701500632cbd395ae404ede1d10a9969b342) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "caj_09.4b", 0x000000, 0x20000, CRC(41b0f9a6) SHA1(5a59df64d0c665d5d479ef2d9e7ec191ca0e7a92) , ROM_SKIP(7) )
+ ROMX_LOAD( "caj_01.4a", 0x000001, 0x20000, CRC(1002d0b8) SHA1(896bec683c1164c6f1fa1d81cadb8a1c549d4a4e) , ROM_SKIP(7) )
+ ROMX_LOAD( "caj_13.9b", 0x000002, 0x20000, CRC(6f3948b2) SHA1(942d37b84c727074941316b042679110594ae249) , ROM_SKIP(7) )
+ ROMX_LOAD( "caj_05.9a", 0x000003, 0x20000, CRC(207373d7) SHA1(4fa67c847f65e2657900f4fc93f1d8a7b95c12e6) , ROM_SKIP(7) )
+ ROMX_LOAD( "caj_24.5e", 0x000004, 0x20000, CRC(e356aad7) SHA1(55f1489044e70a57ad15e1f2c20567bd6c770f71) , ROM_SKIP(7) )
+ ROMX_LOAD( "caj_17.5c", 0x000005, 0x20000, CRC(540f2fd8) SHA1(4f500c7795aa41d472c59d2594fc84f6b17ed137) , ROM_SKIP(7) )
+ ROMX_LOAD( "caj_38.8h", 0x000006, 0x20000, CRC(2464d4ab) SHA1(092864551e7c1c6adbeb901a556f650ccf6ca2f4) , ROM_SKIP(7) )
+ ROMX_LOAD( "caj_32.8f", 0x000007, 0x20000, CRC(9b5836b3) SHA1(3fda5409d99104f355fa42ec413ccb799d1506c9) , ROM_SKIP(7) )
+ ROMX_LOAD( "caj_10.5b", 0x100000, 0x20000, CRC(bf8a5f52) SHA1(8cdd31a58de560d282e708c57cda0fefa7d6c92f) , ROM_SKIP(7) )
+ ROMX_LOAD( "caj_02.5a", 0x100001, 0x20000, CRC(125b018d) SHA1(edb3271f668e0328efd59e0929ee86efd5aa7b1f) , ROM_SKIP(7) )
+ ROMX_LOAD( "caj_14.10b", 0x100002, 0x20000, CRC(8458e7d7) SHA1(7ebe0a3597a7d8482c2d33640ed1b994fd3a02b2) , ROM_SKIP(7) )
+ ROMX_LOAD( "caj_06.10a", 0x100003, 0x20000, CRC(cf80e164) SHA1(d83573947fec01a9814919df719474aa3e6ae9a0) , ROM_SKIP(7) )
+ ROMX_LOAD( "caj_25.7e", 0x100004, 0x20000, CRC(cdd0204d) SHA1(7cbc129bc148718f8c36e27f05583cdecc57b63e) , ROM_SKIP(7) )
+ ROMX_LOAD( "caj_18.7c", 0x100005, 0x20000, CRC(29c1d4b1) SHA1(d0109ab2f521786a64548910947ca24976ec1218) , ROM_SKIP(7) )
+ ROMX_LOAD( "caj_39.9h", 0x100006, 0x20000, CRC(eea23b67) SHA1(79d35c15b4b4430d90cd6c270cdd3a064bc2e1a3) , ROM_SKIP(7) )
+ ROMX_LOAD( "caj_33.9f", 0x100007, 0x20000, CRC(dde3891f) SHA1(25b8069a9c8615323b94157b1ce39805559b68f4) , ROM_SKIP(7) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "caj_23.13b", 0x00000, 0x08000, CRC(96fe7485) SHA1(10466889dfc6bc8afd3075385e241a16372efbeb) ) // == ca_9.12b
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "caj_30.12c", 0x00000, 0x20000, CRC(4a613a2c) SHA1(06e10644fc60925b85d2ca0888c9fa057bfe996a) ) // == ca_18.11c
+ ROM_LOAD( "caj_31.13c", 0x20000, 0x20000, CRC(74584493) SHA1(5cfb15f1b9729323707972646313aee8ab3ac4eb) ) // == ca_19.12c
+
+ 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( "ca22b.1a", 0x0000, 0x0117, CRC(5152e678) SHA1(ac61df30cd073b26f2145e3ea0c513ec804d047a) )
+ ROM_LOAD( "iob1.12e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) /* seen the same pcb with LWIO.12E */
+ROM_END
+
+/* B-Board 89624B-3 */
+ROM_START( nemo )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "nme_30a.11f", 0x00000, 0x20000, CRC(d2c03e56) SHA1(df468e3b5deba01a6825b742f1cc87bfb26c1981) )
+ ROM_LOAD16_BYTE( "nme_35a.11h", 0x00001, 0x20000, CRC(5fd31661) SHA1(12f92a7255e8cae6975452db956670cf72d51768) )
+ ROM_LOAD16_BYTE( "nme_31a.12f", 0x40000, 0x20000, CRC(b2bd4f6f) SHA1(82a59b5f36cb4c23dca05297e2a643842fc12609) )
+ ROM_LOAD16_BYTE( "nme_36a.12h", 0x40001, 0x20000, CRC(ee9450e3) SHA1(a5454268ef58533e71fe07167b4c3fd263363f77) )
+ ROM_LOAD16_WORD_SWAP( "nm-32m.8h", 0x80000, 0x80000, CRC(d6d1add3) SHA1(61c3013d322dbb7622cca032adcd020ba318e885) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "nm-5m.7a", 0x000000, 0x80000, CRC(487b8747) SHA1(f14339b02b8f7ec2002632349e88fed4afc30050) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "nm-7m.9a", 0x000002, 0x80000, CRC(203dc8c6) SHA1(d52577500e822b89904d1510d559f8575c2aaa78) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "nm-1m.3a", 0x000004, 0x80000, CRC(9e878024) SHA1(9a5ce3a6a7952a8954d0709b9473db9253793d70) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "nm-3m.5a", 0x000006, 0x80000, CRC(bb01e6b6) SHA1(3883e28f721d0278b2f4f877a804e95ee14f53e4) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "nme_09.12b", 0x00000, 0x08000, CRC(0f4b0581) SHA1(2e5a2885149c632abfaf4292a1bf032c13c8da6c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "nme_18.11c", 0x00000, 0x20000, CRC(bab333d4) SHA1(c1d0fb61ec46f17eb7edf69e1ad5ac91b5d51daa) )
+ ROM_LOAD( "nme_19.12c", 0x20000, 0x20000, CRC(2650a0a8) SHA1(e9e8cc1b27a2cb3e87124061fabcf42982f0611f) )
+
+ 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( "nm24b.1a", 0x0000, 0x0117, CRC(7b25bac6) SHA1(fa0083c59c8d6da07798cb3a4fc25d388065b7cd) )
+ ROM_LOAD( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ROM_END
+
+/* B-Board 89624B-3 */
+ROM_START( nemor1 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "nme_30.11f", 0x00000, 0x20000, CRC(71b333db) SHA1(8bd8b62d8fef2ad9d2788ccf46e89da953e5817c) )
+ ROM_LOAD16_BYTE( "nme_35.11h", 0x00001, 0x20000, CRC(d153bc18) SHA1(2b4a9a50081d403a6485b7311e179a31b659b74d) )
+ ROM_LOAD16_BYTE( "nme_31.12f", 0x40000, 0x20000, CRC(7e83dbd2) SHA1(d4c7e3786faab4dd9ded3c1a8f6fea114d423e64) )
+ ROM_LOAD16_BYTE( "nme_36.12h", 0x40001, 0x20000, CRC(6aeeec81) SHA1(d7dce52d0f2225d844d852d2c3e81a48cb53a43d) )
+ ROM_LOAD16_WORD_SWAP( "nm-32m.8h", 0x80000, 0x80000, CRC(d6d1add3) SHA1(61c3013d322dbb7622cca032adcd020ba318e885) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "nm-5m.7a", 0x000000, 0x80000, CRC(487b8747) SHA1(f14339b02b8f7ec2002632349e88fed4afc30050) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "nm-7m.9a", 0x000002, 0x80000, CRC(203dc8c6) SHA1(d52577500e822b89904d1510d559f8575c2aaa78) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "nm-1m.3a", 0x000004, 0x80000, CRC(9e878024) SHA1(9a5ce3a6a7952a8954d0709b9473db9253793d70) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "nm-3m.5a", 0x000006, 0x80000, CRC(bb01e6b6) SHA1(3883e28f721d0278b2f4f877a804e95ee14f53e4) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "nme_09.12b", 0x00000, 0x08000, CRC(0f4b0581) SHA1(2e5a2885149c632abfaf4292a1bf032c13c8da6c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "nme_18.11c", 0x00000, 0x20000, CRC(bab333d4) SHA1(c1d0fb61ec46f17eb7edf69e1ad5ac91b5d51daa) )
+ ROM_LOAD( "nme_19.12c", 0x20000, 0x20000, CRC(2650a0a8) SHA1(e9e8cc1b27a2cb3e87124061fabcf42982f0611f) )
+
+ 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( "nm24b.1a", 0x0000, 0x0117, CRC(7b25bac6) SHA1(fa0083c59c8d6da07798cb3a4fc25d388065b7cd) )
+ ROM_LOAD( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ROM_END
+
+/* B-Board 89625B-? */
+ROM_START( nemoj )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "nmj_36a.12f", 0x00000, 0x20000, CRC(daeceabb) SHA1(ebd44922be9d07a3d3411af52edee8a60cb11dad) )
+ ROM_LOAD16_BYTE( "nmj_42a.12h", 0x00001, 0x20000, CRC(55024740) SHA1(4bacbd191bb435de5dc548ac7fa16ed286bd2d3b) )
+ ROM_LOAD16_BYTE( "nmj_37a.13f", 0x40000, 0x20000, CRC(619068b6) SHA1(2507c6f77a06a80f913c848dcb6816bcbf4bba8a) )
+ ROM_LOAD16_BYTE( "nmj_43a.13h", 0x40001, 0x20000, CRC(a948a53b) SHA1(65c2abf321cf8b171bbfbb51ed57bc99eb552ca9) )
+ ROM_LOAD16_BYTE( "nm_34.10f", 0x80000, 0x20000, CRC(5737feed) SHA1(2635715cc21381e9f0a4ae4227eb5896886ee3e2) ) // == nm-32m.8h
+ ROM_LOAD16_BYTE( "nm_40.10h", 0x80001, 0x20000, CRC(8a4099f3) SHA1(d1af73d8992aa9ef6dcd729675a2fbea8c290311) ) // == nm-32m.8h
+ ROM_LOAD16_BYTE( "nm_35.11f", 0xc0000, 0x20000, CRC(bd11a7f8) SHA1(1c09db7cbd132866d4f08720cdd60707069f8580) ) // == nm-32m.8h
+ ROM_LOAD16_BYTE( "nm_41.11h", 0xc0001, 0x20000, CRC(6309603d) SHA1(51bee785ddb87340ad56960ad816c0513bc93eb8) ) // == nm-32m.8h
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "nm_09.4b", 0x000000, 0x20000, CRC(9d60d286) SHA1(69ea9d584d735c3629e1c017cbd966df264e4324) , ROM_SKIP(7) ) // == nm-5m.7a
+ ROMX_LOAD( "nm_01.4a", 0x000001, 0x20000, CRC(8a83f7c4) SHA1(ef24f47517d22dfecd3e6b5ef76e38073f6b81ba) , ROM_SKIP(7) ) // == nm-5m.7a
+ ROMX_LOAD( "nm_13.9b", 0x000002, 0x20000, CRC(a4909fe0) SHA1(6b1a0e8c2bd2979f7fcc363a86de28d3e365709c) , ROM_SKIP(7) ) // == nm-7m.9a
+ ROMX_LOAD( "nm_05.9a", 0x000003, 0x20000, CRC(16db1e61) SHA1(76ff93edd4d40a2527744585a87052a3fc0c77f6) , ROM_SKIP(7) ) // == nm-7m.9a
+ ROMX_LOAD( "nm_24.5e", 0x000004, 0x20000, CRC(3312c648) SHA1(9e4f584fa360de16d42d65619dbe9426d4322c00) , ROM_SKIP(7) ) // == nm-1m.3a
+ ROMX_LOAD( "nm_17.5c", 0x000005, 0x20000, CRC(ccfc50e2) SHA1(a238f050d11e925b1c0037bb860289ab746b7039) , ROM_SKIP(7) ) // == nm-1m.3a
+ ROMX_LOAD( "nm_38.8h", 0x000006, 0x20000, CRC(ae98a997) SHA1(d2d499395e43aa85d9098966d04fde6bd055900b) , ROM_SKIP(7) ) // == nm-3m.5a
+ ROMX_LOAD( "nm_32.8f", 0x000007, 0x20000, CRC(b3704dde) SHA1(d107fecb45f34e877faabffcdaba437935754906) , ROM_SKIP(7) ) // == nm-3m.5a
+ ROMX_LOAD( "nm_10.5b", 0x100000, 0x20000, CRC(33c1388c) SHA1(cd1ec3e8d6d2b5a65648c749426ec4e254f93d8c) , ROM_SKIP(7) ) // == nm-5m.7a
+ ROMX_LOAD( "nm_02.5a", 0x100001, 0x20000, CRC(84c69469) SHA1(700cf7be644056b1dbc5d8bed37caf6383a81cfe) , ROM_SKIP(7) ) // == nm-5m.7a
+ ROMX_LOAD( "nm_14.10b", 0x100002, 0x20000, CRC(66612270) SHA1(0c996571459ac44d5ca5683bdcb6a6f08dd83480) , ROM_SKIP(7) ) // == nm-7m.9a
+ ROMX_LOAD( "nm_06.10a", 0x100003, 0x20000, CRC(8b9bcf95) SHA1(e03c6dc4946a37bdab68d929722b1e10a2aca31a) , ROM_SKIP(7) ) // == nm-7m.9a
+ ROMX_LOAD( "nm_25.7e", 0x100004, 0x20000, CRC(acfc84d2) SHA1(4cd9f3bc32ef62cb3b414de68db34f950d10f406) , ROM_SKIP(7) ) // == nm-1m.3a
+ ROMX_LOAD( "nm_18.7c", 0x100005, 0x20000, CRC(4347deed) SHA1(fdd9b3f1ddad42464dcc7298e5b740ffe1622343) , ROM_SKIP(7) ) // == nm-1m.3a
+ ROMX_LOAD( "nm_39.9h", 0x100006, 0x20000, CRC(6a274ecd) SHA1(66259fd6e71cfdb618c189b7f18749a996aacfdf) , ROM_SKIP(7) ) // == nm-3m.5a
+ ROMX_LOAD( "nm_33.9f", 0x100007, 0x20000, CRC(c469dc74) SHA1(d06956eef5f9b31779f218d597a1a504c1e16bad) , ROM_SKIP(7) ) // == nm-3m.5a
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "nm_23.13b", 0x00000, 0x08000, CRC(8d3c5a42) SHA1(cc7477da80f3d08cf014379318e39cb75b5d3205) ) /* 1 byte different from nemo, pcb verified */
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "nm_30.12c", 0x00000, 0x20000, CRC(bab333d4) SHA1(c1d0fb61ec46f17eb7edf69e1ad5ac91b5d51daa) ) // == nme_18.11c
+ ROM_LOAD( "nm_31.13c", 0x20000, 0x20000, CRC(2650a0a8) SHA1(e9e8cc1b27a2cb3e87124061fabcf42982f0611f) ) // == nme_19.12c
+
+ 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( "nm22b.1a", 0x0000, 0x0117, NO_DUMP )
+ ROM_LOAD( "iob1.12e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) // pal verification required
+ROM_END
+
+/* B-Board 90629B-3 */
+ROM_START( sf2 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "sf2e_30g.11e", 0x00000, 0x20000, CRC(fe39ee33) SHA1(22558eb15e035b09b80935a32b8425d91cd79669) )
+ ROM_LOAD16_BYTE( "sf2e_37g.11f", 0x00001, 0x20000, CRC(fb92cd74) SHA1(bf1ccfe7cc1133f0f65556430311108722add1f2) )
+ ROM_LOAD16_BYTE( "sf2e_31g.12e", 0x40000, 0x20000, CRC(69a0a301) SHA1(86a3954335310865b14ce8b4e0e4499feb14fc12) )
+ ROM_LOAD16_BYTE( "sf2e_38g.12f", 0x40001, 0x20000, CRC(5e22db70) SHA1(6565946591a18eaf46f04c1aa449ee0ae9ac2901) )
+ ROM_LOAD16_BYTE( "sf2e_28g.9e", 0x80000, 0x20000, CRC(8bf9f1e5) SHA1(bbcef63f35e5bff3f373968ba1278dd6bd86b593) )
+ ROM_LOAD16_BYTE( "sf2e_35g.9f", 0x80001, 0x20000, CRC(626ef934) SHA1(507bda3e4519de237aca919cf72e543403ec9724) )
+ ROM_LOAD16_BYTE( "sf2_29b.10e", 0xc0000, 0x20000, CRC(bb4af315) SHA1(75f0827f4f7e9f292add46467f8d4fe19b2514c9) )
+ ROM_LOAD16_BYTE( "sf2_36b.10f", 0xc0001, 0x20000, CRC(c02a13eb) SHA1(b807cc495bff3f95d03b061fc629c95f965cb6d8) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "sf2-5m.4a", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket
+ ROMX_LOAD( "sf2-7m.6a", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket
+ ROMX_LOAD( "sf2-1m.3a", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket
+ ROMX_LOAD( "sf2-3m.5a", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket
+ ROMX_LOAD( "sf2-6m.4c", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "11" socket
+ ROMX_LOAD( "sf2-8m.6c", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "13" socket
+ ROMX_LOAD( "sf2-2m.3c", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "10" socket
+ ROMX_LOAD( "sf2-4m.5c", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "12" socket
+ ROMX_LOAD( "sf2-13m.4d", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "21" socket
+ ROMX_LOAD( "sf2-15m.6d", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "23" socket
+ ROMX_LOAD( "sf2-9m.3d", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "20" socket
+ ROMX_LOAD( "sf2-11m.5d", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "22" socket
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sf2_9.12a", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "sf2_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "sf2_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ 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( "stf29.1a", 0x0000, 0x0117, CRC(043309c5) SHA1(f6b9610c9f896c495041ba56a654776a521c356b) )
+ ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 90629B-2 */
+ROM_START( sf2eb )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "sf2e_30b.11e", 0x00000, 0x20000, CRC(57bd7051) SHA1(5e211e75b1649b07723cabc03cf15636dbbae595) )
+ ROM_LOAD16_BYTE( "sf2e_37b.11f", 0x00001, 0x20000, CRC(62691cdd) SHA1(328703c3e737ada544e67c36119eeb4a100ca740) )
+ ROM_LOAD16_BYTE( "sf2e_31b.12e", 0x40000, 0x20000, CRC(a673143d) SHA1(e565f0ec23d6deb543c72af5a83f070c07319477) )
+ ROM_LOAD16_BYTE( "sf2e_38b.12f", 0x40001, 0x20000, CRC(4c2ccef7) SHA1(77b119c70c255622b023de25d9af3b3aac52ea47) )
+ ROM_LOAD16_BYTE( "sf2_28b.9e", 0x80000, 0x20000, CRC(4009955e) SHA1(7842dbef7650485639fbae49b9f4db7494d4f73d) )
+ ROM_LOAD16_BYTE( "sf2_35b.9f", 0x80001, 0x20000, CRC(8c1f3994) SHA1(5e1d334399d05a837c2d80f79eada543e83afaf7) )
+ ROM_LOAD16_BYTE( "sf2_29b.10e", 0xc0000, 0x20000, CRC(bb4af315) SHA1(75f0827f4f7e9f292add46467f8d4fe19b2514c9) )
+ ROM_LOAD16_BYTE( "sf2_36b.10f", 0xc0001, 0x20000, CRC(c02a13eb) SHA1(b807cc495bff3f95d03b061fc629c95f965cb6d8) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "sf2-5m.4a", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket
+ ROMX_LOAD( "sf2-7m.6a", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket
+ ROMX_LOAD( "sf2-1m.3a", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket
+ ROMX_LOAD( "sf2-3m.5a", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket
+ ROMX_LOAD( "sf2-6m.4c", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "11" socket
+ ROMX_LOAD( "sf2-8m.6c", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "13" socket
+ ROMX_LOAD( "sf2-2m.3c", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "10" socket
+ ROMX_LOAD( "sf2-4m.5c", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "12" socket
+ ROMX_LOAD( "sf2-13m.4d", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "21" socket
+ ROMX_LOAD( "sf2-15m.6d", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "23" socket
+ ROMX_LOAD( "sf2-9m.3d", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "20" socket
+ ROMX_LOAD( "sf2-11m.5d", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "22" socket
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sf2_9.12a", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "sf2_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "sf2_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ 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( "stf29.1a", 0x0000, 0x0117, CRC(043309c5) SHA1(f6b9610c9f896c495041ba56a654776a521c356b) )
+ ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 90629B-3 */
+ROM_START( sf2ed )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "sf2e_30d.11e", 0x00000, 0x20000, CRC(4bb2657c) SHA1(b2d077296b77be7db371f953b7fc446a67d8a9d6) )
+ ROM_LOAD16_BYTE( "sf2e_37d.11f", 0x00001, 0x20000, CRC(102f4561) SHA1(2fc77cd3b2ecf8fadc4f8614cb200cf2cba4c616) ) //only rom different from sf2ud
+ ROM_LOAD16_BYTE( "sf2e_31d.12e", 0x40000, 0x20000, CRC(d57b67d7) SHA1(43d0b47c9fada8d9b445caa4b96ac8493061aa8b) )
+ ROM_LOAD16_BYTE( "sf2e_38d.12f", 0x40001, 0x20000, CRC(9c8916ef) SHA1(a4629356a816454bcc1d7b41e70e147d4769a682) )
+ ROM_LOAD16_BYTE( "sf2e_28d.9e", 0x80000, 0x20000, CRC(175819d1) SHA1(c98b6b7af4e57735dbfb3d1e61ba1bfb9f145d33) )
+ ROM_LOAD16_BYTE( "sf2e_35d.9f", 0x80001, 0x20000, CRC(82060da4) SHA1(7487cfc28cce3d76772ece657aef83b56034011e) )
+ ROM_LOAD16_BYTE( "sf2_29b.10e", 0xc0000, 0x20000, CRC(bb4af315) SHA1(75f0827f4f7e9f292add46467f8d4fe19b2514c9) )
+ ROM_LOAD16_BYTE( "sf2_36b.10f", 0xc0001, 0x20000, CRC(c02a13eb) SHA1(b807cc495bff3f95d03b061fc629c95f965cb6d8) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "sf2-5m.4a", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket
+ ROMX_LOAD( "sf2-7m.6a", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket
+ ROMX_LOAD( "sf2-1m.3a", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket
+ ROMX_LOAD( "sf2-3m.5a", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket
+ ROMX_LOAD( "sf2-6m.4c", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "11" socket
+ ROMX_LOAD( "sf2-8m.6c", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "13" socket
+ ROMX_LOAD( "sf2-2m.3c", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "10" socket
+ ROMX_LOAD( "sf2-4m.5c", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "12" socket
+ ROMX_LOAD( "sf2-13m.4d", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "21" socket
+ ROMX_LOAD( "sf2-15m.6d", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "23" socket
+ ROMX_LOAD( "sf2-9m.3d", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "20" socket
+ ROMX_LOAD( "sf2-11m.5d", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "22" socket
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sf2_9.12a", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "sf2_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "sf2_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ 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( "stf29.1a", 0x0000, 0x0117, CRC(043309c5) SHA1(f6b9610c9f896c495041ba56a654776a521c356b) )
+ ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 90629B-3 */
+/* Note that this revision seems to be the only one that uses the IOB2 and C632B PALs instead of the IOB1 and C632,
+ while STF29 PAL is confirmed to be the same as the other Street Fighter II: The World Warrior sets. */
+ROM_START( sf2ee )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "sf2e_30e.11e", 0x00000, 0x20000, CRC(f37cd088) SHA1(48b71e44ce88d5f682ed679c737e7ec5262bb0df) )
+ ROM_LOAD16_BYTE( "sf2e_37e.11f", 0x00001, 0x20000, CRC(c39468e6) SHA1(0b1ce83dbc4dcf9b205c67fa6a4b074570baf59b) )
+ ROM_LOAD16_BYTE( "sf2e_31e.12e", 0x40000, 0x20000, CRC(7c4771b4) SHA1(6637b24194c86ec72a1775d4e976891243cd66fd) )
+ ROM_LOAD16_BYTE( "sf2e_38e.12f", 0x40001, 0x20000, CRC(a4bd0cd9) SHA1(32a2bc18d1f860668141e53cbca862ceec238c19) )
+ ROM_LOAD16_BYTE( "sf2e_28e.9e", 0x80000, 0x20000, CRC(e3b95625) SHA1(f7277f9980040f96434d1bd162eaf9ba0dfbb005) )
+ ROM_LOAD16_BYTE( "sf2e_35e.9f", 0x80001, 0x20000, CRC(3648769a) SHA1(74e5934b0e3b4da35ff48086f41e7502b42731c6) )
+ ROM_LOAD16_BYTE( "sf2_29b.10e", 0xc0000, 0x20000, CRC(bb4af315) SHA1(75f0827f4f7e9f292add46467f8d4fe19b2514c9) )
+ ROM_LOAD16_BYTE( "sf2_36b.10f", 0xc0001, 0x20000, CRC(c02a13eb) SHA1(b807cc495bff3f95d03b061fc629c95f965cb6d8) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "sf2-5m.4a", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket
+ ROMX_LOAD( "sf2-7m.6a", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket
+ ROMX_LOAD( "sf2-1m.3a", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket
+ ROMX_LOAD( "sf2-3m.5a", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket
+ ROMX_LOAD( "sf2-6m.4c", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "11" socket
+ ROMX_LOAD( "sf2-8m.6c", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "13" socket
+ ROMX_LOAD( "sf2-2m.3c", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "10" socket
+ ROMX_LOAD( "sf2-4m.5c", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "12" socket
+ ROMX_LOAD( "sf2-13m.4d", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "21" socket
+ ROMX_LOAD( "sf2-15m.6d", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "23" socket
+ ROMX_LOAD( "sf2-9m.3d", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "20" socket
+ ROMX_LOAD( "sf2-11m.5d", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "22" socket
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sf2_9.12a", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "sf2_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "sf2_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ 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( "stf29.1a", 0x0000, 0x0117, CRC(043309c5) SHA1(f6b9610c9f896c495041ba56a654776a521c356b) )
+ ROM_LOAD( "iob2.11d", 0x0000, 0x0117, CRC(d26f0a27) SHA1(22bb5647ff98df22fd19ae079ff98b9d100855f9) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "c632b.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) // == c632.ic1
+ROM_END
+
+/* B-Board 90629B-2 */
+ROM_START( sf2ua )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "sf2u_30a.11e", 0x00000, 0x20000, CRC(08beb861) SHA1(d47f16d0d692dc6405df0aecd7d9fc3f9718c0d1) )
+ ROM_LOAD16_BYTE( "sf2u_37a.11f", 0x00001, 0x20000, CRC(b7638d69) SHA1(b615a2e0e8772462fd875b2e8d2ccba82a8b3c47) )
+ ROM_LOAD16_BYTE( "sf2u_31a.12e", 0x40000, 0x20000, CRC(0d5394e0) SHA1(e1d88ff3669f1dbe1e3fbdf8aa9e2c63adbbcb48) )
+ ROM_LOAD16_BYTE( "sf2u_38a.12f", 0x40001, 0x20000, CRC(42d6a79e) SHA1(5f1e2c176d065325883a60767d05b1a542372b6a) )
+ ROM_LOAD16_BYTE( "sf2u_28a.9e", 0x80000, 0x20000, CRC(387a175c) SHA1(2635bb82758cf217cee63b254a537b02275a6838) )
+ ROM_LOAD16_BYTE( "sf2u_35a.9f", 0x80001, 0x20000, CRC(a1a5adcc) SHA1(47874e6d403256d828474b29e3d93c92efd9e1ce) )
+ ROM_LOAD16_BYTE( "sf2_29b.10e", 0xc0000, 0x20000, CRC(bb4af315) SHA1(75f0827f4f7e9f292add46467f8d4fe19b2514c9) )
+ ROM_LOAD16_BYTE( "sf2_36b.10f", 0xc0001, 0x20000, CRC(c02a13eb) SHA1(b807cc495bff3f95d03b061fc629c95f965cb6d8) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "sf2-5m.4a", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket
+ ROMX_LOAD( "sf2-7m.6a", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket
+ ROMX_LOAD( "sf2-1m.3a", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket
+ ROMX_LOAD( "sf2-3m.5a", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket
+ ROMX_LOAD( "sf2-6m.4c", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "11" socket
+ ROMX_LOAD( "sf2-8m.6c", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "13" socket
+ ROMX_LOAD( "sf2-2m.3c", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "10" socket
+ ROMX_LOAD( "sf2-4m.5c", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "12" socket
+ ROMX_LOAD( "sf2-13m.4d", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "21" socket
+ ROMX_LOAD( "sf2-15m.6d", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "23" socket
+ ROMX_LOAD( "sf2-9m.3d", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "20" socket
+ ROMX_LOAD( "sf2-11m.5d", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "22" socket
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sf2_9.12a", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "sf2_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "sf2_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ 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( "stf29.1a", 0x0000, 0x0117, CRC(043309c5) SHA1(f6b9610c9f896c495041ba56a654776a521c356b) )
+ ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 90629B-3 */
+ROM_START( sf2ub )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "sf2u_30b.11e", 0x00000, 0x20000, CRC(57bd7051) SHA1(5e211e75b1649b07723cabc03cf15636dbbae595) ) // == sf2e_30b.11e
+ ROM_LOAD16_BYTE( "sf2u_37b.11f", 0x00001, 0x20000, CRC(4a54d479) SHA1(eaff7a0d3c858a567c02086fde163850f0f5631e) )
+ ROM_LOAD16_BYTE( "sf2u_31b.12e", 0x40000, 0x20000, CRC(a673143d) SHA1(e565f0ec23d6deb543c72af5a83f070c07319477) ) // == sf2e_31b.12e
+ ROM_LOAD16_BYTE( "sf2u_38b.12f", 0x40001, 0x20000, CRC(4c2ccef7) SHA1(77b119c70c255622b023de25d9af3b3aac52ea47) ) // == sf2e_38b.12f
+ ROM_LOAD16_BYTE( "sf2u_28b.9e", 0x80000, 0x20000, CRC(4009955e) SHA1(7842dbef7650485639fbae49b9f4db7494d4f73d) ) // == sf2_28b.9e
+ ROM_LOAD16_BYTE( "sf2u_35b.9f", 0x80001, 0x20000, CRC(8c1f3994) SHA1(5e1d334399d05a837c2d80f79eada543e83afaf7) ) // == sf2_35b.9f
+ ROM_LOAD16_BYTE( "sf2_29b.10e", 0xc0000, 0x20000, CRC(bb4af315) SHA1(75f0827f4f7e9f292add46467f8d4fe19b2514c9) )
+ ROM_LOAD16_BYTE( "sf2_36b.10f", 0xc0001, 0x20000, CRC(c02a13eb) SHA1(b807cc495bff3f95d03b061fc629c95f965cb6d8) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "sf2-5m.4a", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket
+ ROMX_LOAD( "sf2-7m.6a", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket
+ ROMX_LOAD( "sf2-1m.3a", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket
+ ROMX_LOAD( "sf2-3m.5a", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket
+ ROMX_LOAD( "sf2-6m.4c", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "11" socket
+ ROMX_LOAD( "sf2-8m.6c", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "13" socket
+ ROMX_LOAD( "sf2-2m.3c", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "10" socket
+ ROMX_LOAD( "sf2-4m.5c", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "12" socket
+ ROMX_LOAD( "sf2-13m.4d", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "21" socket
+ ROMX_LOAD( "sf2-15m.6d", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "23" socket
+ ROMX_LOAD( "sf2-9m.3d", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "20" socket
+ ROMX_LOAD( "sf2-11m.5d", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "22" socket
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sf2_9.12a", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "sf2_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "sf2_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ 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( "stf29.1a", 0x0000, 0x0117, CRC(043309c5) SHA1(f6b9610c9f896c495041ba56a654776a521c356b) )
+ ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 90629B-3 */
+ROM_START( sf2uc )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "sf2u_30c.11e", 0x00000, 0x20000, CRC(6cb59385) SHA1(37750e8369298b597590d956f5fb7319301e6c7d) )
+ ROM_LOAD16_BYTE( "sf2u_37c.11f", 0x00001, 0x20000, CRC(32e2c278) SHA1(6cc5e0a9179163136b8104a1583da85a53d537f4) )
+ ROM_LOAD16_BYTE( "sf2u_31c.12e", 0x40000, 0x20000, CRC(c4fff4a9) SHA1(4b593ace201fe7f5a00b5cd7f4e8fc3f8dd4ceed) )
+ ROM_LOAD16_BYTE( "sf2u_38c.12f", 0x40001, 0x20000, CRC(8210fc0e) SHA1(7d6cfb99afa89d0e6e991d9f7c1808b740def125) )
+ ROM_LOAD16_BYTE( "sf2u_28c.9e", 0x80000, 0x20000, CRC(6eddd5e8) SHA1(62bd1c2fc0321809421c9a592f691b5b1a1d8807) )
+ ROM_LOAD16_BYTE( "sf2u_35c.9f", 0x80001, 0x20000, CRC(6bcb404c) SHA1(b5f24556c633c521aadd94e016d78db6922e3dfa) )
+ ROM_LOAD16_BYTE( "sf2_29b.10e", 0xc0000, 0x20000, CRC(bb4af315) SHA1(75f0827f4f7e9f292add46467f8d4fe19b2514c9) )
+ ROM_LOAD16_BYTE( "sf2_36b.10f", 0xc0001, 0x20000, CRC(c02a13eb) SHA1(b807cc495bff3f95d03b061fc629c95f965cb6d8) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "sf2-5m.4a", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket
+ ROMX_LOAD( "sf2-7m.6a", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket
+ ROMX_LOAD( "sf2-1m.3a", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket
+ ROMX_LOAD( "sf2-3m.5a", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket
+ ROMX_LOAD( "sf2-6m.4c", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "11" socket
+ ROMX_LOAD( "sf2-8m.6c", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "13" socket
+ ROMX_LOAD( "sf2-2m.3c", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "10" socket
+ ROMX_LOAD( "sf2-4m.5c", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "12" socket
+ ROMX_LOAD( "sf2-13m.4d", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "21" socket
+ ROMX_LOAD( "sf2-15m.6d", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "23" socket
+ ROMX_LOAD( "sf2-9m.3d", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "20" socket
+ ROMX_LOAD( "sf2-11m.5d", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "22" socket
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sf2_9.12a", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) ) // could be sf2_09.12a
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "sf2_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "sf2_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ 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( "stf29.1a", 0x0000, 0x0117, CRC(043309c5) SHA1(f6b9610c9f896c495041ba56a654776a521c356b) )
+ ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 90629B-3 */
+ROM_START( sf2ud )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "sf2u_30d.11e", 0x00000, 0x20000, CRC(4bb2657c) SHA1(b2d077296b77be7db371f953b7fc446a67d8a9d6) ) // == sf2e_30d.11e
+ ROM_LOAD16_BYTE( "sf2u_37d.11f", 0x00001, 0x20000, CRC(b33b42f2) SHA1(2e0babc8734c79dc2b51a6be64433bb2411c3da5) )
+ ROM_LOAD16_BYTE( "sf2u_31d.12e", 0x40000, 0x20000, CRC(d57b67d7) SHA1(43d0b47c9fada8d9b445caa4b96ac8493061aa8b) ) // == sf2e_31d.12e
+ ROM_LOAD16_BYTE( "sf2u_38d.12f", 0x40001, 0x20000, CRC(9c8916ef) SHA1(a4629356a816454bcc1d7b41e70e147d4769a682) ) // == sf2e_38d.12f
+ ROM_LOAD16_BYTE( "sf2u_28d.9e", 0x80000, 0x20000, CRC(175819d1) SHA1(c98b6b7af4e57735dbfb3d1e61ba1bfb9f145d33) ) // == sf2e_28d.9e
+ ROM_LOAD16_BYTE( "sf2u_35d.9f", 0x80001, 0x20000, CRC(82060da4) SHA1(7487cfc28cce3d76772ece657aef83b56034011e) ) // == sf2e_35d.9f
+ ROM_LOAD16_BYTE( "sf2_29b.10e", 0xc0000, 0x20000, CRC(bb4af315) SHA1(75f0827f4f7e9f292add46467f8d4fe19b2514c9) )
+ ROM_LOAD16_BYTE( "sf2_36b.10f", 0xc0001, 0x20000, CRC(c02a13eb) SHA1(b807cc495bff3f95d03b061fc629c95f965cb6d8) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "sf2-5m.4a", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket
+ ROMX_LOAD( "sf2-7m.6a", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket
+ ROMX_LOAD( "sf2-1m.3a", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket
+ ROMX_LOAD( "sf2-3m.5a", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket
+ ROMX_LOAD( "sf2-6m.4c", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "11" socket
+ ROMX_LOAD( "sf2-8m.6c", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "13" socket
+ ROMX_LOAD( "sf2-2m.3c", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "10" socket
+ ROMX_LOAD( "sf2-4m.5c", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "12" socket
+ ROMX_LOAD( "sf2-13m.4d", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "21" socket
+ ROMX_LOAD( "sf2-15m.6d", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "23" socket
+ ROMX_LOAD( "sf2-9m.3d", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "20" socket
+ ROMX_LOAD( "sf2-11m.5d", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "22" socket
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sf2_9.12a", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "sf2_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "sf2_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ 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( "stf29.1a", 0x0000, 0x0117, CRC(043309c5) SHA1(f6b9610c9f896c495041ba56a654776a521c356b) )
+ ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 90629B-3 */
+/* Note that this revision seems to be the only one that uses the IOB2 and C632B PALs instead of the IOB1 and C632,
+ while STF29 PAL is confirmed to be the same as the other Street Fighter II: The World Warrior sets. */
+ROM_START( sf2ue )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "sf2u_30e.11e", 0x00000, 0x20000, CRC(f37cd088) SHA1(48b71e44ce88d5f682ed679c737e7ec5262bb0df) )
+ ROM_LOAD16_BYTE( "sf2u_37e.11f", 0x00001, 0x20000, CRC(6c61a513) SHA1(6dc9ccd58fd5ef15ff9df20c865ff6c850f2b7dc) )
+ ROM_LOAD16_BYTE( "sf2u_31e.12e", 0x40000, 0x20000, CRC(7c4771b4) SHA1(6637b24194c86ec72a1775d4e976891243cd66fd) )
+ ROM_LOAD16_BYTE( "sf2u_38e.12f", 0x40001, 0x20000, CRC(a4bd0cd9) SHA1(32a2bc18d1f860668141e53cbca862ceec238c19) )
+ ROM_LOAD16_BYTE( "sf2u_28e.9e", 0x80000, 0x20000, CRC(e3b95625) SHA1(f7277f9980040f96434d1bd162eaf9ba0dfbb005) )
+ ROM_LOAD16_BYTE( "sf2u_35e.9f", 0x80001, 0x20000, CRC(3648769a) SHA1(74e5934b0e3b4da35ff48086f41e7502b42731c6) )
+ ROM_LOAD16_BYTE( "sf2_29b.10e", 0xc0000, 0x20000, CRC(bb4af315) SHA1(75f0827f4f7e9f292add46467f8d4fe19b2514c9) )
+ ROM_LOAD16_BYTE( "sf2_36b.10f", 0xc0001, 0x20000, CRC(c02a13eb) SHA1(b807cc495bff3f95d03b061fc629c95f965cb6d8) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "sf2-5m.4a", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket
+ ROMX_LOAD( "sf2-7m.6a", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket
+ ROMX_LOAD( "sf2-1m.3a", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket
+ ROMX_LOAD( "sf2-3m.5a", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket
+ ROMX_LOAD( "sf2-6m.4c", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "11" socket
+ ROMX_LOAD( "sf2-8m.6c", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "13" socket
+ ROMX_LOAD( "sf2-2m.3c", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "10" socket
+ ROMX_LOAD( "sf2-4m.5c", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "12" socket
+ ROMX_LOAD( "sf2-13m.4d", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "21" socket
+ ROMX_LOAD( "sf2-15m.6d", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "23" socket
+ ROMX_LOAD( "sf2-9m.3d", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "20" socket
+ ROMX_LOAD( "sf2-11m.5d", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "22" socket
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sf2_9.12a", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "sf2_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "sf2_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ 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( "stf29.1a", 0x0000, 0x0117, CRC(043309c5) SHA1(f6b9610c9f896c495041ba56a654776a521c356b) )
+ ROM_LOAD( "iob2.11d", 0x0000, 0x0117, CRC(d26f0a27) SHA1(22bb5647ff98df22fd19ae079ff98b9d100855f9) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "c632b.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) // == c632.ic1
+ROM_END
+
+/* B-Board 90629B-3 */
+ROM_START( sf2uf )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "sf2u_30f.11e", 0x00000, 0x20000, CRC(fe39ee33) SHA1(22558eb15e035b09b80935a32b8425d91cd79669) ) // == sf2e_30g.11e
+ ROM_LOAD16_BYTE( "sf2u_37f.11f", 0x00001, 0x20000, CRC(169e7388) SHA1(c7cb2de529d94cea4a018ed3bd611037fe54abe7) )
+ ROM_LOAD16_BYTE( "sf2u_31f.12e", 0x40000, 0x20000, CRC(69a0a301) SHA1(86a3954335310865b14ce8b4e0e4499feb14fc12) ) // == sf2e_31g.12e
+ ROM_LOAD16_BYTE( "sf2u_38f.12f", 0x40001, 0x20000, CRC(1510e4e2) SHA1(fbfdd4e42c4bc894592dbe5a84c88d5f13d21da4) )
+ ROM_LOAD16_BYTE( "sf2u_28f.9e", 0x80000, 0x20000, CRC(acd8175b) SHA1(504991c46fa568d31ce69bd63e2a67926a06b5a9) )
+ ROM_LOAD16_BYTE( "sf2u_35f.9f", 0x80001, 0x20000, CRC(c0a80bd1) SHA1(ac25a9ed488e03baf4115541fdcce3973ce6a442) )
+ ROM_LOAD16_BYTE( "sf2_29b.10e", 0xc0000, 0x20000, CRC(bb4af315) SHA1(75f0827f4f7e9f292add46467f8d4fe19b2514c9) )
+ ROM_LOAD16_BYTE( "sf2_36b.10f", 0xc0001, 0x20000, CRC(c02a13eb) SHA1(b807cc495bff3f95d03b061fc629c95f965cb6d8) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "sf2-5m.4a", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket
+ ROMX_LOAD( "sf2-7m.6a", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket
+ ROMX_LOAD( "sf2-1m.3a", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket
+ ROMX_LOAD( "sf2-3m.5a", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket
+ ROMX_LOAD( "sf2-6m.4c", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "11" socket
+ ROMX_LOAD( "sf2-8m.6c", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "13" socket
+ ROMX_LOAD( "sf2-2m.3c", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "10" socket
+ ROMX_LOAD( "sf2-4m.5c", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "12" socket
+ ROMX_LOAD( "sf2-13m.4d", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "21" socket
+ ROMX_LOAD( "sf2-15m.6d", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "23" socket
+ ROMX_LOAD( "sf2-9m.3d", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "20" socket
+ ROMX_LOAD( "sf2-11m.5d", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "22" socket
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sf2_9.12a", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "sf2_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "sf2_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ 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( "stf29.1a", 0x0000, 0x0117, CRC(043309c5) SHA1(f6b9610c9f896c495041ba56a654776a521c356b) )
+ ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 90629B-3 */
+ROM_START( sf2ug )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "sf2u_30g.11e", 0x00000, 0x20000, CRC(fe39ee33) SHA1(22558eb15e035b09b80935a32b8425d91cd79669) ) // == sf2e_30g.11e
+ ROM_LOAD16_BYTE( "sf2u_37g.11f", 0x00001, 0x20000, CRC(5886cae7) SHA1(8a621d267dfcf5d214b1bbec12b98a06153c86d3) )
+ ROM_LOAD16_BYTE( "sf2u_31g.12e", 0x40000, 0x20000, CRC(69a0a301) SHA1(86a3954335310865b14ce8b4e0e4499feb14fc12) ) // == sf2e_31g.12e
+ ROM_LOAD16_BYTE( "sf2u_38g.12f", 0x40001, 0x20000, CRC(5e22db70) SHA1(6565946591a18eaf46f04c1aa449ee0ae9ac2901) ) // == sf2e_38g.12f
+ ROM_LOAD16_BYTE( "sf2u_28g.9e", 0x80000, 0x20000, CRC(8bf9f1e5) SHA1(bbcef63f35e5bff3f373968ba1278dd6bd86b593) ) // == sf2e_28g.9e
+ ROM_LOAD16_BYTE( "sf2u_35g.9f", 0x80001, 0x20000, CRC(626ef934) SHA1(507bda3e4519de237aca919cf72e543403ec9724) ) // == sf2e_35g.9f
+ ROM_LOAD16_BYTE( "sf2_29b.10e", 0xc0000, 0x20000, CRC(bb4af315) SHA1(75f0827f4f7e9f292add46467f8d4fe19b2514c9) )
+ ROM_LOAD16_BYTE( "sf2_36b.10f", 0xc0001, 0x20000, CRC(c02a13eb) SHA1(b807cc495bff3f95d03b061fc629c95f965cb6d8) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "sf2-5m.4a", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket
+ ROMX_LOAD( "sf2-7m.6a", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket
+ ROMX_LOAD( "sf2-1m.3a", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket
+ ROMX_LOAD( "sf2-3m.5a", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket
+ ROMX_LOAD( "sf2-6m.4c", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "11" socket
+ ROMX_LOAD( "sf2-8m.6c", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "13" socket
+ ROMX_LOAD( "sf2-2m.3c", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "10" socket
+ ROMX_LOAD( "sf2-4m.5c", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "12" socket
+ ROMX_LOAD( "sf2-13m.4d", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "21" socket
+ ROMX_LOAD( "sf2-15m.6d", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "23" socket
+ ROMX_LOAD( "sf2-9m.3d", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "20" socket
+ ROMX_LOAD( "sf2-11m.5d", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "22" socket
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sf2_9.12a", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "sf2_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "sf2_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ 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( "stf29.1a", 0x0000, 0x0117, CRC(043309c5) SHA1(f6b9610c9f896c495041ba56a654776a521c356b) )
+ ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 90629B-3 */
+ROM_START( sf2ui )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "sf2u_30i.11e", 0x00000, 0x20000, CRC(fe39ee33) SHA1(22558eb15e035b09b80935a32b8425d91cd79669) ) // == sf2e_30g.11e
+ ROM_LOAD16_BYTE( "sf2u_37i.11f", 0x00001, 0x20000, CRC(9df707dd) SHA1(b148ea450f9e96f3c20f487010a3c57f778e40c1) )
+ ROM_LOAD16_BYTE( "sf2u_31i.12e", 0x40000, 0x20000, CRC(69a0a301) SHA1(86a3954335310865b14ce8b4e0e4499feb14fc12) ) // == sf2e_31g.12e
+ ROM_LOAD16_BYTE( "sf2u_38i.12f", 0x40001, 0x20000, CRC(4cb46daf) SHA1(dee103ae1391cd9ac150f787187233cd8c06ea1e) )
+ ROM_LOAD16_BYTE( "sf2u_28i.9e", 0x80000, 0x20000, CRC(1580be4c) SHA1(d89ed0ff4bf14ff2eaae4609f55970b6b37c8e32) ) /* seen the same pcb with SF2_28I.9E */
+ ROM_LOAD16_BYTE( "sf2u_35i.9f", 0x80001, 0x20000, CRC(1468d185) SHA1(750de0cad3859e4917aebb02c2e137dea619f201) )
+ ROM_LOAD16_BYTE( "sf2_29b.10e", 0xc0000, 0x20000, CRC(bb4af315) SHA1(75f0827f4f7e9f292add46467f8d4fe19b2514c9) )
+ ROM_LOAD16_BYTE( "sf2_36b.10f", 0xc0001, 0x20000, CRC(c02a13eb) SHA1(b807cc495bff3f95d03b061fc629c95f965cb6d8) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "sf2-5m.4a", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket
+ ROMX_LOAD( "sf2-7m.6a", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket
+ ROMX_LOAD( "sf2-1m.3a", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket
+ ROMX_LOAD( "sf2-3m.5a", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket
+ ROMX_LOAD( "sf2-6m.4c", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "11" socket
+ ROMX_LOAD( "sf2-8m.6c", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "13" socket
+ ROMX_LOAD( "sf2-2m.3c", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "10" socket
+ ROMX_LOAD( "sf2-4m.5c", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "12" socket
+ ROMX_LOAD( "sf2-13m.4d", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "21" socket
+ ROMX_LOAD( "sf2-15m.6d", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "23" socket
+ ROMX_LOAD( "sf2-9m.3d", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "20" socket
+ ROMX_LOAD( "sf2-11m.5d", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "22" socket
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sf2_9.12a", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "sf2_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "sf2_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ 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( "stf29.1a", 0x0000, 0x0117, CRC(043309c5) SHA1(f6b9610c9f896c495041ba56a654776a521c356b) )
+ ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 90629B-3 */
+ROM_START( sf2uk )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "sf2u_30k.11e", 0x00000, 0x20000, CRC(8f66076c) SHA1(f9653b36bb5012e6bde5fe3bcade4a6a7a7e7def) )
+ ROM_LOAD16_BYTE( "sf2u_37k.11f", 0x00001, 0x20000, CRC(4e1f6a83) SHA1(ee679b79ff3c3165979d3de23e0f668839cf465f) )
+ ROM_LOAD16_BYTE( "sf2u_31k.12e", 0x40000, 0x20000, CRC(f9f89f60) SHA1(c3b71482b85c83576518f300be768655412276b0) )
+ ROM_LOAD16_BYTE( "sf2u_38k.12f", 0x40001, 0x20000, CRC(6ce0a85a) SHA1(567fd18cd626c94496d9123ecef87dc638f0041a) )
+ ROM_LOAD16_BYTE( "sf2u_28k.9e", 0x80000, 0x20000, CRC(8e958f31) SHA1(81359bc988c4e9e375b5bbd960921d425b77f706) )
+ ROM_LOAD16_BYTE( "sf2u_35k.9f", 0x80001, 0x20000, CRC(fce76fad) SHA1(66f881ba600c7e6bbe960cfd0772ed16208b79c8) )
+ ROM_LOAD16_BYTE( "sf2u_29a.10e", 0xc0000, 0x20000, CRC(bb4af315) SHA1(75f0827f4f7e9f292add46467f8d4fe19b2514c9) ) // == sf2_29b.10e
+ ROM_LOAD16_BYTE( "sf2u_36a.10f", 0xc0001, 0x20000, CRC(c02a13eb) SHA1(b807cc495bff3f95d03b061fc629c95f965cb6d8) ) // == sf2_36b.10f
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "sf2-5m.4a", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket
+ ROMX_LOAD( "sf2-7m.6a", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket
+ ROMX_LOAD( "sf2-1m.3a", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket
+ ROMX_LOAD( "sf2-3m.5a", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket
+ ROMX_LOAD( "sf2-6m.4c", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "11" socket
+ ROMX_LOAD( "sf2-8m.6c", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "13" socket
+ ROMX_LOAD( "sf2-2m.3c", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "10" socket
+ ROMX_LOAD( "sf2-4m.5c", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "12" socket
+ ROMX_LOAD( "sf2-13m.4d", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "21" socket
+ ROMX_LOAD( "sf2-15m.6d", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "23" socket
+ ROMX_LOAD( "sf2-9m.3d", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "20" socket
+ ROMX_LOAD( "sf2-11m.5d", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "22" socket
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sf2_09.12a", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) ) // == sf2_9.12a
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "sf2_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "sf2_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ 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( "stf29.1a", 0x0000, 0x0117, CRC(043309c5) SHA1(f6b9610c9f896c495041ba56a654776a521c356b) )
+ ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 90629B */
+ROM_START( sf2j )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "sf2j30.bin", 0x00000, 0x20000, CRC(79022b31) SHA1(b7cfe0498260cdd2779580c47829dd02435ffff4) )
+ ROM_LOAD16_BYTE( "sf2j37.bin", 0x00001, 0x20000, CRC(516776ec) SHA1(4f8b63c4d4265a105751fa72b50bd0fa538bf881) )
+ ROM_LOAD16_BYTE( "sf2j31.bin", 0x40000, 0x20000, CRC(fe15cb39) SHA1(383478524881ea70d9e04c9b6143b8735b637eee) )
+ ROM_LOAD16_BYTE( "sf2j38.bin", 0x40001, 0x20000, CRC(38614d70) SHA1(39c58096f3a8e01fb439639b742b83102bbaa7f6) )
+ ROM_LOAD16_BYTE( "sf2j28.bin", 0x80000, 0x20000, CRC(d283187a) SHA1(5ea83d2652e43e46b831b614d1fe06d465bac9a3) )
+ ROM_LOAD16_BYTE( "sf2j35.bin", 0x80001, 0x20000, CRC(d28158e4) SHA1(bf2bca6068e374011afa95e99809d262f522df18) )
+ ROM_LOAD16_BYTE( "sf2_29a.bin", 0xc0000, 0x20000, CRC(bb4af315) SHA1(75f0827f4f7e9f292add46467f8d4fe19b2514c9) )
+ ROM_LOAD16_BYTE( "sf2_36a.bin", 0xc0001, 0x20000, CRC(c02a13eb) SHA1(b807cc495bff3f95d03b061fc629c95f965cb6d8) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "sf2_06.8a", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-5m.4a
+ ROMX_LOAD( "sf2_08.10a", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-7m.6a
+ ROMX_LOAD( "sf2_05.7a", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-1m.3a
+ ROMX_LOAD( "sf2_07.9a", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-3m.5a
+ ROMX_LOAD( "sf2_15.8c", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-6m.4c
+ ROMX_LOAD( "sf2_17.10c", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-8m.6c
+ ROMX_LOAD( "sf2_14.7c", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-2m.3c
+ ROMX_LOAD( "sf2_16.9c", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-4m.5c
+ ROMX_LOAD( "sf2_25.8d", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-13m.4d
+ ROMX_LOAD( "sf2_27.10d", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-15m.6d
+ ROMX_LOAD( "sf2_24.7d", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-9m.3d
+ ROMX_LOAD( "sf2_26.9d", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-11m.5d
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sf2_09.bin", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "sf2_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "sf2_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ 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( "stf29.1a", 0x0000, 0x0117, CRC(043309c5) SHA1(f6b9610c9f896c495041ba56a654776a521c356b) )
+ ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 90629B-2 */
+ROM_START( sf2ja )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "sf2j_30a.11e", 0x00000, 0x20000, CRC(57bd7051) SHA1(5e211e75b1649b07723cabc03cf15636dbbae595) ) // == sf2e_30b.11e
+ ROM_LOAD16_BYTE( "sf2j_37a.11f", 0x00001, 0x20000, CRC(1e1f6844) SHA1(c80e5ac6a6cea39511c38e31ea55b6cd3888024f) )
+ ROM_LOAD16_BYTE( "sf2j_31a.12e", 0x40000, 0x20000, CRC(a673143d) SHA1(e565f0ec23d6deb543c72af5a83f070c07319477) ) // == sf2e_31b.12e
+ ROM_LOAD16_BYTE( "sf2j_38a.12f", 0x40001, 0x20000, CRC(4c2ccef7) SHA1(77b119c70c255622b023de25d9af3b3aac52ea47) ) // == sf2e_38b.12f
+ ROM_LOAD16_BYTE( "sf2j_28a.9e", 0x80000, 0x20000, CRC(4009955e) SHA1(7842dbef7650485639fbae49b9f4db7494d4f73d) ) // == sf2_28b.9e
+ ROM_LOAD16_BYTE( "sf2j_35a.9f", 0x80001, 0x20000, CRC(8c1f3994) SHA1(5e1d334399d05a837c2d80f79eada543e83afaf7) ) // == sf2_35b.9f
+ ROM_LOAD16_BYTE( "sf2j_29a.10e", 0xc0000, 0x20000, CRC(bb4af315) SHA1(75f0827f4f7e9f292add46467f8d4fe19b2514c9) ) // == sf2_29b.10e
+ ROM_LOAD16_BYTE( "sf2j_36a.10f", 0xc0001, 0x20000, CRC(c02a13eb) SHA1(b807cc495bff3f95d03b061fc629c95f965cb6d8) ) // == sf2_36b.10f
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "sf2_06.8a", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-5m.4a
+ ROMX_LOAD( "sf2_08.10a", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-7m.6a
+ ROMX_LOAD( "sf2_05.7a", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-1m.3a
+ ROMX_LOAD( "sf2_07.9a", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-3m.5a
+ ROMX_LOAD( "sf2_15.8c", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-6m.4c
+ ROMX_LOAD( "sf2_17.10c", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-8m.6c
+ ROMX_LOAD( "sf2_14.7c", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-2m.3c
+ ROMX_LOAD( "sf2_16.9c", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-4m.5c
+ ROMX_LOAD( "sf2_25.8d", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-13m.4d
+ ROMX_LOAD( "sf2_27.10d", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-15m.6d
+ ROMX_LOAD( "sf2_24.7d", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-9m.3d
+ ROMX_LOAD( "sf2_26.9d", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-11m.5d
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sf2j_09.12a", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) ) // == sf2_9.12a
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "sf2j_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) // == sf2_18.11c
+ ROM_LOAD( "sf2j_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) // == sf2_19.12c
+
+ 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( "stf29.1a", 0x0000, 0x0117, CRC(043309c5) SHA1(f6b9610c9f896c495041ba56a654776a521c356b) )
+ ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 90629B-3 */
+ROM_START( sf2jc )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "sf2j_30c.11e", 0x00000, 0x20000, CRC(8add35ec) SHA1(b08428ff262ca4feddd3c72058b4b674a5401aba) )
+ ROM_LOAD16_BYTE( "sf2j_37c.11f", 0x00001, 0x20000, CRC(0d74a256) SHA1(587fd0ee1c2ef54554237486eb5b0d1ec30c2868) )
+ ROM_LOAD16_BYTE( "sf2j_31c.12e", 0x40000, 0x20000, CRC(c4fff4a9) SHA1(4b593ace201fe7f5a00b5cd7f4e8fc3f8dd4ceed) ) // == sf2u_31c.12e
+ ROM_LOAD16_BYTE( "sf2j_38c.12f", 0x40001, 0x20000, CRC(8210fc0e) SHA1(7d6cfb99afa89d0e6e991d9f7c1808b740def125) ) // == sf2u_38c.12f
+ ROM_LOAD16_BYTE( "sf2j_28c.9e", 0x80000, 0x20000, CRC(6eddd5e8) SHA1(62bd1c2fc0321809421c9a592f691b5b1a1d8807) ) // == sf2u_28c.9e
+ ROM_LOAD16_BYTE( "sf2j_35c.9f", 0x80001, 0x20000, CRC(6bcb404c) SHA1(b5f24556c633c521aadd94e016d78db6922e3dfa) ) // == sf2u_35c.9f
+ ROM_LOAD16_BYTE( "sf2j_29a.10e", 0xc0000, 0x20000, CRC(bb4af315) SHA1(75f0827f4f7e9f292add46467f8d4fe19b2514c9) ) // == sf2_29b.10e
+ ROM_LOAD16_BYTE( "sf2j_36a.10f", 0xc0001, 0x20000, CRC(c02a13eb) SHA1(b807cc495bff3f95d03b061fc629c95f965cb6d8) ) // == sf2_36b.10f
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "sf2_06.8a", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-5m.4a
+ ROMX_LOAD( "sf2_08.10a", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-7m.6a
+ ROMX_LOAD( "sf2_05.7a", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-1m.3a
+ ROMX_LOAD( "sf2_07.9a", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-3m.5a
+ ROMX_LOAD( "sf2_15.8c", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-6m.4c
+ ROMX_LOAD( "sf2_17.10c", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-8m.6c
+ ROMX_LOAD( "sf2_14.7c", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-2m.3c
+ ROMX_LOAD( "sf2_16.9c", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-4m.5c
+ ROMX_LOAD( "sf2_25.8d", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-13m.4d
+ ROMX_LOAD( "sf2_27.10d", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-15m.6d
+ ROMX_LOAD( "sf2_24.7d", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-9m.3d
+ ROMX_LOAD( "sf2_26.9d", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-11m.5d
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sf2_09.12a", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) ) // == sf2_9.12a
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "sf2j_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) // == sf2_18.11c
+ ROM_LOAD( "sf2j_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) // == sf2_19.12c
+
+ 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( "stf29.1a", 0x0000, 0x0117, CRC(043309c5) SHA1(f6b9610c9f896c495041ba56a654776a521c356b) )
+ ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 90629B-3 */
+ROM_START( sf2jf )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "sf2j_30f.11e", 0x00000, 0x20000, CRC(fe39ee33) SHA1(22558eb15e035b09b80935a32b8425d91cd79669) ) // == sf2e_30g.11e
+ ROM_LOAD16_BYTE( "sf2j_37f.11f", 0x00001, 0x20000, CRC(c1428cc6) SHA1(6a3f21de57c3dd60a7c991ca667dc2a77d813039) )
+ ROM_LOAD16_BYTE( "sf2j_31f.12e", 0x40000, 0x20000, CRC(69a0a301) SHA1(86a3954335310865b14ce8b4e0e4499feb14fc12) ) // == sf2e_31g.12e
+ ROM_LOAD16_BYTE( "sf2j_38f.12f", 0x40001, 0x20000, CRC(1510e4e2) SHA1(fbfdd4e42c4bc894592dbe5a84c88d5f13d21da4) )
+ ROM_LOAD16_BYTE( "sf2j_28f.9e", 0x80000, 0x20000, CRC(acd8175b) SHA1(504991c46fa568d31ce69bd63e2a67926a06b5a9) )
+ ROM_LOAD16_BYTE( "sf2j_35f.9f", 0x80001, 0x20000, CRC(c0a80bd1) SHA1(ac25a9ed488e03baf4115541fdcce3973ce6a442) )
+ ROM_LOAD16_BYTE( "sf2j_29a.10e", 0xc0000, 0x20000, CRC(bb4af315) SHA1(75f0827f4f7e9f292add46467f8d4fe19b2514c9) ) // == sf2_29b.10e
+ ROM_LOAD16_BYTE( "sf2j_36a.10f", 0xc0001, 0x20000, CRC(c02a13eb) SHA1(b807cc495bff3f95d03b061fc629c95f965cb6d8) ) // == sf2_36b.10f
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "sf2_06.8a", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-5m.4a
+ ROMX_LOAD( "sf2_08.10a", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-7m.6a
+ ROMX_LOAD( "sf2_05.7a", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-1m.3a
+ ROMX_LOAD( "sf2_07.9a", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-3m.5a
+ ROMX_LOAD( "sf2_15.8c", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-6m.4c
+ ROMX_LOAD( "sf2_17.10c", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-8m.6c
+ ROMX_LOAD( "sf2_14.7c", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-2m.3c
+ ROMX_LOAD( "sf2_16.9c", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-4m.5c
+ ROMX_LOAD( "sf2_25.8d", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-13m.4d
+ ROMX_LOAD( "sf2_27.10d", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-15m.6d
+ ROMX_LOAD( "sf2_24.7d", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-9m.3d
+ ROMX_LOAD( "sf2_26.9d", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-11m.5d
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sf2_09.12a", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) ) // == sf2_9.12a
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "sf2_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "sf2_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ 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( "stf29.1a", 0x0000, 0x0117, CRC(043309c5) SHA1(f6b9610c9f896c495041ba56a654776a521c356b) )
+ ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 90629B-3 */
+ROM_START( sf2jh )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "sf2j_30h.11e", 0x00000, 0x20000, CRC(fe39ee33) SHA1(22558eb15e035b09b80935a32b8425d91cd79669) ) // == sf2e_30g.11e
+ ROM_LOAD16_BYTE( "sf2j_37h.11f", 0x00001, 0x20000, CRC(330304b0) SHA1(93bf761804228a79d16afa2fcfbe28e6942dff51) )
+ ROM_LOAD16_BYTE( "sf2j_31h.12e", 0x40000, 0x20000, CRC(69a0a301) SHA1(86a3954335310865b14ce8b4e0e4499feb14fc12) ) // == sf2e_31g.12e
+ ROM_LOAD16_BYTE( "sf2j_38h.12f", 0x40001, 0x20000, CRC(a659f678) SHA1(f3b99ebaa59edb889498cf5c9d7ceb939da1dedc) )
+ ROM_LOAD16_BYTE( "sf2j_28h.9e", 0x80000, 0x20000, CRC(8a5c8ee0) SHA1(a6df46e96bf7596665177b18213a3aee4cc7c378) )
+ ROM_LOAD16_BYTE( "sf2j_35h.9f", 0x80001, 0x20000, CRC(c828fc4d) SHA1(0025630bef45862d8b72a2d19a6c5adf96905bd5) )
+ ROM_LOAD16_BYTE( "sf2j_29a.10e", 0xc0000, 0x20000, CRC(bb4af315) SHA1(75f0827f4f7e9f292add46467f8d4fe19b2514c9) ) // == sf2_29b.10e
+ ROM_LOAD16_BYTE( "sf2j_36a.10f", 0xc0001, 0x20000, CRC(c02a13eb) SHA1(b807cc495bff3f95d03b061fc629c95f965cb6d8) ) // == sf2_36b.10f
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "sf2_06.8a", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-5m.4a
+ ROMX_LOAD( "sf2_08.10a", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-7m.6a
+ ROMX_LOAD( "sf2_05.7a", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-1m.3a
+ ROMX_LOAD( "sf2_07.9a", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-3m.5a
+ ROMX_LOAD( "sf2_15.8c", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-6m.4c
+ ROMX_LOAD( "sf2_17.10c", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-8m.6c
+ ROMX_LOAD( "sf2_14.7c", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-2m.3c
+ ROMX_LOAD( "sf2_16.9c", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-4m.5c
+ ROMX_LOAD( "sf2_25.8d", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-13m.4d
+ ROMX_LOAD( "sf2_27.10d", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-15m.6d
+ ROMX_LOAD( "sf2_24.7d", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-9m.3d
+ ROMX_LOAD( "sf2_26.9d", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-11m.5d
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sf2_09.12a", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) ) // == sf2_9.12a
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "sf2_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "sf2_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ 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( "stf29.1a", 0x0000, 0x0117, CRC(043309c5) SHA1(f6b9610c9f896c495041ba56a654776a521c356b) )
+ ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 90629B-2 */
+ROM_START( sf2jl )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "sf-2_30l.11e", 0x00000, 0x20000, CRC(34a1ce02) SHA1(6875813c49a92b8650f444c1857459adc86bc0d0) ) // These "L" revision roms are verified as being
+ ROM_LOAD16_BYTE( "sf-2_37l.11f", 0x00001, 0x20000, CRC(5b630ed2) SHA1(b14ef94b86f55c82391db8aca4d6f9487b9758a7) ) // labeled "SF-2" without "J" for Japan region
+ ROM_LOAD16_BYTE( "sf-2_31l.12e", 0x40000, 0x20000, CRC(64ebc8d2) SHA1(1817de5dcca47a1bb94838d26a9a3adf6b75c911) )
+ ROM_LOAD16_BYTE( "sf-2_38l.12f", 0x40001, 0x20000, CRC(73847443) SHA1(72fb5472a04061e4a50cb57e4f65ba8ec022a965) )
+ ROM_LOAD16_BYTE( "sf-2_28l.9e", 0x80000, 0x20000, CRC(eee2b426) SHA1(1d7b5073b9473d3c92fc95c0d0625716c82fc944) )
+ ROM_LOAD16_BYTE( "sf-2_35l.9f", 0x80001, 0x20000, CRC(eca8b452) SHA1(f3d06bd32ef2649a8278d8a0517372067e3f99b7) )
+ ROM_LOAD16_BYTE( "sf2j_29a.10e", 0xc0000, 0x20000, CRC(bb4af315) SHA1(75f0827f4f7e9f292add46467f8d4fe19b2514c9) ) // == sf2_29b.10e
+ ROM_LOAD16_BYTE( "sf2j_36a.10f", 0xc0001, 0x20000, CRC(c02a13eb) SHA1(b807cc495bff3f95d03b061fc629c95f965cb6d8) ) // == sf2_36b.10f
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "sf2_06.8a", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-5m.4a
+ ROMX_LOAD( "sf2_08.10a", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-7m.6a
+ ROMX_LOAD( "sf2_05.7a", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-1m.3a
+ ROMX_LOAD( "sf2_07.9a", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-3m.5a
+ ROMX_LOAD( "sf2_15.8c", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-6m.4c
+ ROMX_LOAD( "sf2_17.10c", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-8m.6c
+ ROMX_LOAD( "sf2_14.7c", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-2m.3c
+ ROMX_LOAD( "sf2_16.9c", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-4m.5c
+ ROMX_LOAD( "sf2_25.8d", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-13m.4d
+ ROMX_LOAD( "sf2_27.10d", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-15m.6d
+ ROMX_LOAD( "sf2_24.7d", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-9m.3d
+ ROMX_LOAD( "sf2_26.9d", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-11m.5d
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sf2j_09.12a", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) ) // == sf2_9.12a
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "sf2j_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) // == sf2_18.11c
+ ROM_LOAD( "sf2j_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) // == sf2_19.12c
+
+ 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( "stf29.1a", 0x0000, 0x0117, CRC(043309c5) SHA1(f6b9610c9f896c495041ba56a654776a521c356b) )
+ ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* Bootleg manufactured by TAB Austria
+
+ -------------------------------------------------------
+ | ROM1 *2 *3 ROM5 ROM9 |
+ | ROM2 ROM6 ROM8 |
+ | *1 1B 1D |
+ | 6295 1A 1C |
+ | YM ROM4 1F 1H |
+ | ROM3 1E 1G |
+-- Z80 1J 1L |
+-- 1I 1K |
+-- |
+-- |
+-- TAB |
+-- AUSTRIA |
+ | DIP8 6 |
+ | 8 ROM10 ROM9 |
+ | DIP8 0 ROM12 ROM11 |
+ | 0 |
+ | DIP8 0 |
+ |------------------------------------------------------
+
+ *1 = 12.000 Mhz
+ *2 = 3.579545 Mhz
+ *3 = 16.000 Mhz
+
+*/
+ROM_START( sf2ebbl )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "12.bin", 0x00000, 0x40000, CRC(a258b4d5) SHA1(3433b6493794c98bb35c1b27cc65bb5f13d52e9b) )
+ ROM_LOAD16_BYTE( "09.bin", 0x00001, 0x40000, CRC(59ccd474) SHA1(7bb28c28ee722435fdbb18eb73e52bd65b419103) )
+ ROM_LOAD16_BYTE( "11.bin", 0x80000, 0x40000, CRC(82097d63) SHA1(881e7ffb78197f6794b5d41f5c2c87da35e8cb15) )
+ ROM_LOAD16_BYTE( "10.bin", 0x80001, 0x40000, CRC(0c83844d) SHA1(4c25ba4a50d62c62789d026e3d304ed1dfb3c248) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ /* The 12 MASK roms on this PCB match the original roms exactly */
+ ROMX_LOAD( "1b_yf082.bin", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "1d_yf028.bin", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "1a_yf087.bin", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "1c_yf088.bin", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "1f_yf085.bin", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "1h_yf115.bin", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "1e_yf111.bin", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "1g_yf002.bin", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "1j_yf117.bin", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "1l_ye040.bin", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "1i_yf038.bin", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "1k_ye039.bin", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ /* These map over the MASK roms on this bootleg to get rid of the CAPCOM logo (wasteful, but correct) */
+ ROMX_LOAD( "05.bin", 0x400000, 0x10000, CRC(a505621e) SHA1(8ffa8cedad54948870bbd8f629d927332dc9fcf6) , ROM_SKIP(7) )
+ ROM_CONTINUE( 0x400004, 0x10000 )
+ ROMX_LOAD( "07.bin", 0x400002, 0x10000, CRC(de6271fb) SHA1(574ec5d9992941a405fd00abe52da41aba4b29a7) , ROM_SKIP(7) )
+ ROM_CONTINUE( 0x400006, 0x10000 )
+ ROMX_LOAD( "06.bin", 0x400001, 0x10000, CRC(23775344) SHA1(0d6b54f66cd64c3f48c88c8e17a19fdb2002afb0) , ROM_SKIP(7) )
+ ROM_CONTINUE( 0x400005, 0x10000 )
+ ROMX_LOAD( "08.bin", 0x400003, 0x10000, CRC(81c9550f) SHA1(2d75e329148caadfff35c8f2f91b352f14dbe08a) , ROM_SKIP(7) )
+ ROM_CONTINUE( 0x400007, 0x10000 )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "03.bin", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x20000, "user1", 0 ) /* unknown (bootleg priority?) */
+ ROM_LOAD( "04.bin", 0x00000, 0x10000, CRC(13ea1c44) SHA1(5b05fe4c3920e33d94fac5f59e09ff14b3e427fe) )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "02.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "01.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+ROM_END
+
+ROM_START( sf2ebbl2 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "27c020.7", 0x00000, 0x40000, CRC(a258b4d5) SHA1(3433b6493794c98bb35c1b27cc65bb5f13d52e9b) )
+ ROM_LOAD16_BYTE( "27c020.5", 0x00001, 0x40000, CRC(59ccd474) SHA1(7bb28c28ee722435fdbb18eb73e52bd65b419103) )
+ ROM_LOAD16_BYTE( "27c020.6", 0x80000, 0x40000, CRC(82097d63) SHA1(881e7ffb78197f6794b5d41f5c2c87da35e8cb15) )
+ ROM_LOAD16_BYTE( "27c020.4", 0x80001, 0x40000, CRC(0c83844d) SHA1(4c25ba4a50d62c62789d026e3d304ed1dfb3c248) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ /* 5 MASK roms on this PCB match the original roms exactly, */
+ ROMX_LOAD( "a-se235.bin", 0x000000, 0x80000, CRC(a258de13) SHA1(2e477948c4c8a2fb7cfdc4a739766bc4a4e01c49) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000004, 0x80000)
+ ROMX_LOAD( "c-se005.bin", 0x000002, 0x80000, CRC(c781bf87) SHA1(034baa9807c2ce8dc800200963a38cd9262b21fb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000006, 0x80000)
+ ROMX_LOAD( "b-se194.bin", 0x200000, 0x80000, CRC(5726cab8) SHA1(0b2243a9a7184d53d42ddab7a8c51b63001c2f56) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x200004, 0x80000)
+ ROMX_LOAD( "d-se064.bin", 0x200002, 0x80000, CRC(4dd24197) SHA1(548beaa0a6f1c3c88f4fc83169d1a3c86e0755d4) , ROM_GROUPWORD | ROM_SKIP(6) ) //sf2-8m.6c 99.999809%
+ ROM_CONTINUE( 0x200006, 0x80000)
+ ROMX_LOAD( "e-sf004.bin", 0x400000, 0x80000, CRC(187667cc) SHA1(fae65bf23f49a32903fda8080659ccf8d42b911f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x400004, 0x80000)
+ ROMX_LOAD( "f-sf001.bin", 0x400002, 0x80000, CRC(5b585071) SHA1(ad3371b1ba0441c67d9fcbb23b09464710e4e28a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x400006, 0x80000)
+
+ // These map over the MASK roms on this bootleg why? isn't it a waste of eprom?
+ ROMX_LOAD( "27c1024.10", 0x400000, 0x20000, CRC(84427d1b) SHA1(f988a2b53c8cc46eeb8032084f24966a539b3734) , ROM_GROUPWORD | ROM_SKIP(6) )//e-sf004.bin [1/8] IDENTICAL
+ ROMX_LOAD( "27c1024.12", 0x400002, 0x20000, CRC(55bc790c) SHA1(a1114b89f6fa4487210477676984c77ad94b5ef8) , ROM_GROUPWORD | ROM_SKIP(6) )//f-sf001.bin [1/8] IDENTICAL
+ ROMX_LOAD( "27c1024.9", 0x400004, 0x20000, CRC(f8725add) SHA1(fa3fcf6637ee4dd7667bd89766074b3c6ba4f166) , ROM_GROUPWORD | ROM_SKIP(6) )//e-sf004.bin [5/8] IDENTICAL
+ ROMX_LOAD( "27c1024.11", 0x400006, 0x20000, CRC(c2a5373e) SHA1(602b32e5ecc7007efe9ad30751040ee52b81f59a) , ROM_GROUPWORD | ROM_SKIP(6) )//f-sf001.bin [5/8] IDENTICAL
+
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "27c512.3", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x20000, "user1", 0 ) /* unknown (bootleg priority?) */
+ ROM_LOAD( "27c512.8", 0x00000, 0x10000, CRC(13ea1c44) SHA1(5b05fe4c3920e33d94fac5f59e09ff14b3e427fe) )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "27c010.2", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "27c010.1", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+ROM_END
+
+ROM_START( sf2ebbl3 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "ce91e-b.bin", 0x00000, 0x80000, CRC(963200d2) SHA1(3fa23fdee6d43f01066a94b4b01b1811168637a2) )
+ ROM_LOAD16_BYTE( "ce91e-a.bin", 0x00001, 0x80000, CRC(02e88ec7) SHA1(1898e110108301a08686945f449fd084e394fc17) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ /* There are 8 mask and 8 otp eprom on this board, data match sf2 set in the end */
+ ROMX_LOAD( "1-b-yf197.07", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "1-d-yf207.12", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "27020.1", 0x000004, 0x40000, CRC(84afb959) SHA1(ff8f3fb39203d229552649b09046a509aa399b7d) , ROM_SKIP(7) )
+ ROMX_LOAD( "27020.3", 0x000005, 0x40000, CRC(ab21635d) SHA1(c6294b06c482a43cc1736674b0c1bc790da8cc8c) , ROM_SKIP(7) )
+ ROMX_LOAD( "27020.5", 0x000006, 0x40000, CRC(2ce56f9f) SHA1(5bd23823df52aeff8e84a6eb3199a5e75f38cd42) , ROM_SKIP(7) )
+ ROMX_LOAD( "27020.7", 0x000007, 0x40000, CRC(0ad7fb2b) SHA1(51265b331cbbe9d133274bafdbf043151240a20d) , ROM_SKIP(7) )
+
+ ROMX_LOAD( "27020.2", 0x200000, 0x40000, CRC(031525cc) SHA1(65e280607c058cf9c005a6fc809ed375d379c0bf) , ROM_SKIP(7) )
+ ROMX_LOAD( "27020.4", 0x200001, 0x40000, CRC(c97046a5) SHA1(88c7becaa2713c85e22ddd3e2305770525a9132b) , ROM_SKIP(7) )
+ ROMX_LOAD( "1-h-yg010.10", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "1-e-yg003.02", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "27020.6", 0x200006, 0x40000, CRC(dbbfd400) SHA1(fc25928b6ed025fa2397d924bae93fd28a4e728f) , ROM_SKIP(7) )
+ ROMX_LOAD( "27020.8", 0x200007, 0x40000, CRC(37635e97) SHA1(b4e5dd6e93174af76aaeeb47471ded0d0bc253e2) , ROM_SKIP(7) )
+
+ ROMX_LOAD( "1-j-yf213.09", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "wm91m-11-yd025.11", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "1-i-yf224.03", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "1-k-yf036.06", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ /* These map over the MASK roms on this bootleg to get rid of the CAPCOM logo (wasteful, but correct) */
+ ROMX_LOAD( "27010.09hi", 0x400000, 0x10000, CRC(a505621e) SHA1(8ffa8cedad54948870bbd8f629d927332dc9fcf6) , ROM_SKIP(7) )
+ ROM_CONTINUE( 0x400004, 0x10000 )
+ ROMX_LOAD( "27010.11", 0x400002, 0x10000, CRC(de6271fb) SHA1(574ec5d9992941a405fd00abe52da41aba4b29a7) , ROM_SKIP(7) )
+ ROM_CONTINUE( 0x400006, 0x10000 )
+ ROMX_LOAD( "27010.09lo", 0x400001, 0x10000, CRC(23775344) SHA1(0d6b54f66cd64c3f48c88c8e17a19fdb2002afb0) , ROM_SKIP(7) )
+ ROM_CONTINUE( 0x400005, 0x10000 )
+ ROMX_LOAD( "27010.06", 0x400003, 0x10000, CRC(81c9550f) SHA1(2d75e329148caadfff35c8f2f91b352f14dbe08a) , ROM_SKIP(7) )
+ ROM_CONTINUE( 0x400007, 0x10000 )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "27512.3", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x20000, "user1", 0 ) /* unknown (bootleg priority?) */
+ ROM_LOAD( "27512.8", 0x00000, 0x10000, CRC(13ea1c44) SHA1(5b05fe4c3920e33d94fac5f59e09ff14b3e427fe) )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "27010.2", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "27010.1", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+ROM_END
+
+ROM_START( sf2stt )
+ /* the PCB is not working on real hardware */
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ /* do not move this outside comments, this is only for testing purpose
+ ROM_LOAD16_BYTE( "12.bin", 0x00000, 0x40000, CRC(a258b4d5) SHA1(3433b6493794c98bb35c1b27cc65bb5f13d52e9b) )
+ ROM_LOAD16_BYTE( "09.bin", 0x00001, 0x40000, CRC(59ccd474) SHA1(7bb28c28ee722435fdbb18eb73e52bd65b419103) )
+ */
+ ROM_LOAD16_BYTE( "prg part 1.stt", 0x00000, 0x40000, NO_DUMP )
+ ROM_LOAD16_BYTE( "prg part 2.stt", 0x00001, 0x40000, NO_DUMP )
+ /* missing first part of program roms, so it can not boot */
+ ROM_LOAD16_BYTE( "ce91e-b", 0x80000, 0x40000, CRC(0862386e) SHA1(9fcfbcbbc17529de75d5419018e7b1dd90b397c0) )
+ ROM_LOAD16_BYTE( "ce91e-a", 0x80001, 0x40000, CRC(0c83844d) SHA1(4c25ba4a50d62c62789d026e3d304ed1dfb3c248) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "stt-a", 0x000000, 0x80000, CRC(10a7036d) SHA1(5f7780154d12dc202ec4bf2f3666727820745ab0), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000002, 0x80000)
+ ROMX_LOAD( "stt-d", 0x000004, 0x80000, CRC(3580b124) SHA1(55b101e7be3d1244d0b9961ad3c6ff5d682214ce), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000006, 0x80000)
+ ROMX_LOAD( "stt-b", 0x200000, 0x80000, CRC(7a09224e) SHA1(77a95b931f0a1ebd38c9aaf51a3b59139e0aedeb), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x200002, 0x80000)
+ ROMX_LOAD( "stt-e", 0x200004, 0x80000, CRC(382a612c) SHA1(ecdcb66ed9d47d850501abc5f77eb5ad87b868d3), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x200006, 0x80000)
+ ROMX_LOAD( "stt-c", 0x400000, 0x80000, CRC(11701b8f) SHA1(4f0c897349a0f1701a144ec64a75fa23fec32ae5), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x400002, 0x80000)
+ ROMX_LOAD( "stt-f", 0x400004, 0x80000, CRC(101a0b72) SHA1(9e166a4110a583e722566852e27cb0b074ec97c6), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x400006, 0x80000)
+ /* extra gfx layer roms loaded over the former ones to remove the capcom copyright logo */
+ ROMX_LOAD( "5.stt", 0x400000, 0x10000, CRC(a505621e) SHA1(8ffa8cedad54948870bbd8f629d927332dc9fcf6), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x400004, 0x10000 )
+ ROMX_LOAD( "7.stt", 0x400002, 0x10000, CRC(de6271fb) SHA1(574ec5d9992941a405fd00abe52da41aba4b29a7), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x400006, 0x10000 )
+ ROMX_LOAD( "6.stt", 0x400001, 0x10000, CRC(23775344) SHA1(0d6b54f66cd64c3f48c88c8e17a19fdb2002afb0), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x400005, 0x10000 )
+ ROMX_LOAD( "8.stt", 0x400003, 0x10000, CRC(81c9550f) SHA1(2d75e329148caadfff35c8f2f91b352f14dbe08a), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x400007, 0x10000 )
+ /* end of extra gfx layer roms */
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "3.stt", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x20000, "user1", 0 ) /* unknown (bootleg priority?) */
+ ROM_LOAD( "4.stt", 0x00000, 0x10000, CRC(13ea1c44) SHA1(5b05fe4c3920e33d94fac5f59e09ff14b3e427fe) )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "2.stt", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "1.stt", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+ROM_END
+
+ROM_START( sf2rk ) /* unidentified bootleg, name based only on gfx chips label */
+ /* the PCB is not working on real hardware */
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ /* do not move this outside comments, this is only for testing purpose
+ ROM_LOAD16_BYTE( "12.bin", 0x000000, 0x40000, CRC(a258b4d5) SHA1(3433b6493794c98bb35c1b27cc65bb5f13d52e9b) )
+ ROM_LOAD16_BYTE( "09.bin", 0x000001, 0x40000, CRC(59ccd474) SHA1(7bb28c28ee722435fdbb18eb73e52bd65b419103) )
+ ROM_LOAD16_BYTE( "11.bin", 0x080000, 0x40000, CRC(82097d63) SHA1(881e7ffb78197f6794b5d41f5c2c87da35e8cb15) )
+ ROM_LOAD16_BYTE( "10.bin", 0x080001, 0x40000, CRC(0c83844d) SHA1(4c25ba4a50d62c62789d026e3d304ed1dfb3c248) )
+ */
+ ROM_LOAD16_BYTE( "prg part 1.rk", 0x00000, 0x80000, NO_DUMP )
+ ROM_LOAD16_BYTE( "prg part 2.rk", 0x00001, 0x80000, NO_DUMP )
+ /* missing first part of program roms, so it can not boot */
+ ROM_LOAD16_BYTE( "w-6", 0x100000, 0x20000, CRC(bb4af315) SHA1(75f0827f4f7e9f292add46467f8d4fe19b2514c9) )
+ ROM_LOAD16_BYTE( "w-5", 0x100001, 0x20000, CRC(c02a13eb) SHA1(b807cc495bff3f95d03b061fc629c95f965cb6d8) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "01 rk098", 0x000000, 0x80000, CRC(4296de4d) SHA1(2bd5a0ebe2a20c745b11da9c7dc4f13f20efdda7), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000002, 0x80000)
+ ROMX_LOAD( "03 rk097", 0x000004, 0x80000, CRC(16cf11d0) SHA1(e1adf34467e0a6902bcda63718885fe0bea831b1), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000006, 0x80000)
+ ROMX_LOAD( "02 rk037", 0x200000, 0x80000, CRC(68ca7fce) SHA1(f6a37e0ca4d9490f66c3d29308c531f2134fd7aa), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x200002, 0x80000)
+ ROMX_LOAD( "04 rk033", 0x200004, 0x80000, CRC(9f46f926) SHA1(f1ddf8ce6d895358979631fbdecbeff51376b604), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x200006, 0x80000)
+ ROMX_LOAD( "05 rk116", 0x400000, 0x80000, CRC(4c161fa9) SHA1(c3b2f642d3d3be5aab6ff1482d82c2858944d07a), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x400002, 0x80000)
+ ROMX_LOAD( "06 rk077", 0x400004, 0x80000, CRC(ec949f8c) SHA1(34ea3d6d85486a5ff25c774dbc6a4b16037a7347), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x400006, 0x80000)
+ /* extra gfx layer roms loaded over the former ones to remove the capcom copyright logo */
+ ROMX_LOAD( "w-1", 0x400000, 0x08000, CRC(124b9ffc) SHA1(299368e0f95475cf575bc3b041c6179d243b9b81), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x400004, 0x08000 )
+ ROMX_LOAD( "w-3", 0x400002, 0x08000, CRC(5992783a) SHA1(69c90621c72c7889978442009a4ddbbfb1f3444f), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x400006, 0x08000 )
+ ROMX_LOAD( "w-2", 0x400001, 0x08000, CRC(11d715f7) SHA1(cdec16ba16ca1ec6b0ab94addf4cfeeddeff5063), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x400005, 0x08000 )
+ ROMX_LOAD( "w-4", 0x400003, 0x08000, CRC(db0dd977) SHA1(c34ed40709001423325b7b7fad3f4ffeb38c3e7e), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x400007, 0x08000 )
+ /* end of extra gfx layer roms */
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "1.rk", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x20000, "user1", 0 ) /* unknown (bootleg priority?) */
+ ROM_LOAD( "2.rk", 0x00000, 0x10000, CRC(13ea1c44) SHA1(5b05fe4c3920e33d94fac5f59e09ff14b3e427fe) )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "sample part 1.rk", 0x20000, 0x20000, NO_DUMP )
+ /* do not move this outside comments, this is only for testing purpose
+ ROM_LOAD( "sf2_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ */
+ ROM_LOAD( "w-7", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+ROM_END
+
+ROM_START( sf2qp1 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "stfii-qkn-cps-17.33", 0x000000, 0x40000, CRC(3a9458ee) SHA1(cbf56115c22a45e5ce1cde313fa5a5ba496316eb) )
+ ROM_CONTINUE( 0xc0000, 0x40000 )
+ ROM_LOAD16_WORD_SWAP( "stfii-qkn-cps-17.34", 0x080000, 0x40000, CRC(4ed215d8) SHA1(b09075f883c3a4976ab47203acc04f8f993969a8) )
+ ROM_CONTINUE( 0x40000, 0x40000 )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "sf2_06.bin", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-5m.4a
+ ROMX_LOAD( "sf2_08.bin", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-7m.6a
+ ROMX_LOAD( "sf2_05.bin", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-1m.3a
+ ROMX_LOAD( "sf2_07.bin", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-3m.5a
+ ROMX_LOAD( "sf2_15.bin", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-6m.4c
+ ROMX_LOAD( "sf2_17.bin", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-8m.6c
+ ROMX_LOAD( "sf2_14.bin", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-2m.3c
+ ROMX_LOAD( "sf2_16.bin", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-4m.5c
+ ROMX_LOAD( "sf2_25.bin", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-13m.4d
+ ROMX_LOAD( "sf2_27.bin", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-15m.6d
+ ROMX_LOAD( "sf2_24.bin", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-9m.3d
+ ROMX_LOAD( "sf2_26.bin", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-11m.5d
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sf2_09.bin", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "sf2_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "sf2_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ 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_END
+
+ROM_START( sf2thndr )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "17_30.11e", 0x00000, 0x20000, CRC(d3cd6d18) SHA1(c7efe9e7a7dee29bfe40a571960145efa26ac22e) )
+ ROM_LOAD16_BYTE( "17_37.11f", 0x00001, 0x20000, CRC(e892716e) SHA1(b3836b33bc026a0bccc5ed7cdecf8d2ba2b5607a) )
+ ROM_LOAD16_BYTE( "sf2u_31b.12e", 0x40000, 0x20000, CRC(a673143d) SHA1(e565f0ec23d6deb543c72af5a83f070c07319477) )
+ ROM_LOAD16_BYTE( "sf2u_38b.12f", 0x40001, 0x20000, CRC(4c2ccef7) SHA1(77b119c70c255622b023de25d9af3b3aac52ea47) )
+ ROM_LOAD16_BYTE( "sf2u_28b.9e", 0x80000, 0x20000, CRC(4009955e) SHA1(7842dbef7650485639fbae49b9f4db7494d4f73d) )
+ ROM_LOAD16_BYTE( "sf2u_35b.9f", 0x80001, 0x20000, CRC(8c1f3994) SHA1(5e1d334399d05a837c2d80f79eada543e83afaf7) )
+ ROM_LOAD16_BYTE( "17_29.10e", 0xc0000, 0x20000, CRC(8830b54d) SHA1(fe5e958f69d52fa12c31c1a7ccf0dcfd340045cb) )
+ ROM_LOAD16_BYTE( "17_36.10f", 0xc0001, 0x20000, CRC(3f13ada3) SHA1(412572f220f64e5b0ee2cad0a9204142ae2f7c90) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "sf2_06.bin", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-5m.4a
+ ROMX_LOAD( "sf2_08.bin", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-7m.6a
+ ROMX_LOAD( "sf2_05.bin", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-1m.3a
+ ROMX_LOAD( "sf2_07.bin", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-3m.5a
+ ROMX_LOAD( "sf2_15.bin", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-6m.4c
+ ROMX_LOAD( "sf2_17.bin", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-8m.6c
+ ROMX_LOAD( "sf2_14.bin", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-2m.3c
+ ROMX_LOAD( "sf2_16.bin", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-4m.5c
+ ROMX_LOAD( "sf2_25.bin", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-13m.4d
+ ROMX_LOAD( "sf2_27.bin", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-15m.6d
+ ROMX_LOAD( "sf2_24.bin", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-9m.3d
+ ROMX_LOAD( "sf2_26.bin", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-11m.5d
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sf2_09.bin", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "sf2_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "sf2_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ 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_END
+
+/* B-Board 89624B-3 */
+ROM_START( 3wonders )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "rte_30a.11f", 0x00000, 0x20000, CRC(ef5b8b33) SHA1(2313168e5f10505ceece5fdaada0d30df3ca146c) )
+ ROM_LOAD16_BYTE( "rte_35a.11h", 0x00001, 0x20000, CRC(7d705529) SHA1(b456629b5755b701cca8a438d24957367a260ec5) )
+ ROM_LOAD16_BYTE( "rte_31a.12f", 0x40000, 0x20000, CRC(32835e5e) SHA1(9ec530561030a75a1283ff2aacc21e55613b682b) )
+ ROM_LOAD16_BYTE( "rte_36a.12h", 0x40001, 0x20000, CRC(7637975f) SHA1(56935032eebd3e1c5059f6842b97001dae0aa55f) )
+ ROM_LOAD16_BYTE( "rt_28a.9f", 0x80000, 0x20000, CRC(054137c8) SHA1(e4c406e0a32198323a5931093fbaa6836510b8ad) )
+ ROM_LOAD16_BYTE( "rt_33a.9h", 0x80001, 0x20000, CRC(7264cb1b) SHA1(b367acb9f6579569321ecaa98a14e29dd775b9db) )
+ ROM_LOAD16_BYTE( "rte_29a.10f", 0xc0000, 0x20000, CRC(cddaa919) SHA1(0c98e95ad5033d2c5ade7651243e7ccdb4e35463) )
+ ROM_LOAD16_BYTE( "rte_34a.10h", 0xc0001, 0x20000, CRC(ed52e7e5) SHA1(352433ae484967d26376141e3a8a0f968b98fde6) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "rt-5m.7a", 0x000000, 0x80000, CRC(86aef804) SHA1(723927ef3bf992d12395c52db051ece7bf57d5e5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rt-7m.9a", 0x000002, 0x80000, CRC(4f057110) SHA1(b7d35c883a74cf4bfb242d9f15a0e40ed1ec111f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rt-1m.3a", 0x000004, 0x80000, CRC(902489d0) SHA1(748ba416a8b9343059a3e7d8b93f02162feb1d0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rt-3m.5a", 0x000006, 0x80000, CRC(e35ce720) SHA1(6c1a87a1f819bdc20408b5a7823cf35a79d34110) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rt-6m.8a", 0x200000, 0x80000, CRC(13cb0e7c) SHA1(e429d594d9a7ff4cc6306e2796a9d6ad0fa25569) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rt-8m.10a", 0x200002, 0x80000, CRC(1f055014) SHA1(d64f5be9bb2ef761ca9b2e797dbc3554cf996a79) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rt-2m.4a", 0x200004, 0x80000, CRC(e9a034f4) SHA1(deb4cb5886705380b57d4fe9b9bf3c032e1d6227) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rt-4m.6a", 0x200006, 0x80000, CRC(df0eea8b) SHA1(5afa05654cccb0504bd44569d42fd68f08fd172f) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "rt_9.12b", 0x00000, 0x08000, CRC(abfca165) SHA1(428069d3bdc45775854cd0e8abe447f134fe5492) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "rt_18.11c", 0x00000, 0x20000, CRC(26b211ab) SHA1(0ea03fdd9edff41eacfc52aa9e0421c10968356b) )
+ ROM_LOAD( "rt_19.12c", 0x20000, 0x20000, CRC(dbe64ad0) SHA1(09f2ad522fe75d7bcca094b8c6696c3733b539d5) )
+
+ 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( "rt24b.1a", 0x0000, 0x0117, CRC(54b85159) SHA1(c6f4fb5d747a215f4f50e4f2258e35d3f9bdbb2e) )
+ ROM_LOAD( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) /* seen the same pcb with LWIO.11E */
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ROM_END
+
+/* B-Board 89624B-3 */
+ROM_START( 3wondersr1 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "rte_30.11f", 0x00000, 0x20000, CRC(0d541519) SHA1(ce0f9ebaea038c98f8866624d3061c65c84cf20d) )
+ ROM_LOAD16_BYTE( "rte_35.11h", 0x00001, 0x20000, CRC(73dd0e20) SHA1(b4f4086574176befa70863a85a3c0a8fd6e4bd90) )
+ ROM_LOAD16_BYTE( "rte_31.12f", 0x40000, 0x20000, CRC(33e0337d) SHA1(53e5795baf307a789b4337f081a932359e569a98) )
+ ROM_LOAD16_BYTE( "rte_36.12h", 0x40001, 0x20000, CRC(a8865243) SHA1(0a4d7e8e07d88104aa01457a10a8a9abd3ed4ce1) )
+ ROM_LOAD16_BYTE( "rte_28.9f", 0x80000, 0x20000, CRC(054137c8) SHA1(e4c406e0a32198323a5931093fbaa6836510b8ad) ) // == rt_28a.9f
+ ROM_LOAD16_BYTE( "rte_33.9h", 0x80001, 0x20000, CRC(7264cb1b) SHA1(b367acb9f6579569321ecaa98a14e29dd775b9db) ) // == rt_33a.9h
+ ROM_LOAD16_BYTE( "rte_29.10f", 0xc0000, 0x20000, CRC(9a8df1e4) SHA1(5b61d2d729145d524e23036bb27ba3ba75c208fe) )
+ ROM_LOAD16_BYTE( "rte_34.10h", 0xc0001, 0x20000, CRC(6348a79d) SHA1(2e4b58f9c6c1ad6a89c90d8ebb46cee2613f1397) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "rt-5m.7a", 0x000000, 0x80000, CRC(86aef804) SHA1(723927ef3bf992d12395c52db051ece7bf57d5e5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rt-7m.9a", 0x000002, 0x80000, CRC(4f057110) SHA1(b7d35c883a74cf4bfb242d9f15a0e40ed1ec111f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rt-1m.3a", 0x000004, 0x80000, CRC(902489d0) SHA1(748ba416a8b9343059a3e7d8b93f02162feb1d0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rt-3m.5a", 0x000006, 0x80000, CRC(e35ce720) SHA1(6c1a87a1f819bdc20408b5a7823cf35a79d34110) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rt-6m.8a", 0x200000, 0x80000, CRC(13cb0e7c) SHA1(e429d594d9a7ff4cc6306e2796a9d6ad0fa25569) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rt-8m.10a", 0x200002, 0x80000, CRC(1f055014) SHA1(d64f5be9bb2ef761ca9b2e797dbc3554cf996a79) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rt-2m.4a", 0x200004, 0x80000, CRC(e9a034f4) SHA1(deb4cb5886705380b57d4fe9b9bf3c032e1d6227) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rt-4m.6a", 0x200006, 0x80000, CRC(df0eea8b) SHA1(5afa05654cccb0504bd44569d42fd68f08fd172f) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "rt_9.12b", 0x00000, 0x08000, CRC(7d5a77a7) SHA1(4f2a6534d7a9e518061102c1dd7d7aca39600c33) ) /* 1 byte different from 3wonders, pcb verified */
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "rt_18.11c", 0x00000, 0x20000, CRC(f6dc0d3d) SHA1(9959fc3339613042c95b90aad2bc1c3dafdb605e) ) /* 6 bytes different from 3wonders, pcb verified */
+ ROM_LOAD( "rt_19.12c", 0x20000, 0x20000, CRC(dbe64ad0) SHA1(09f2ad522fe75d7bcca094b8c6696c3733b539d5) )
+
+ 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( "rt24b.1a", 0x0000, 0x0117, CRC(54b85159) SHA1(c6f4fb5d747a215f4f50e4f2258e35d3f9bdbb2e) )
+ ROM_LOAD( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ROM_END
+
+/* B-Board 89624B-3 */
+ROM_START( 3wondersu )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "rtu_30a.11f", 0x00000, 0x20000, CRC(0b156fd8) SHA1(1ec811cd7cbd12066f876db7255394e754ceb25e) )
+ ROM_LOAD16_BYTE( "rtu_35a.11h", 0x00001, 0x20000, CRC(57350bf4) SHA1(33e8685cce82eee7bcb7c2787318a130764e97e2) )
+ ROM_LOAD16_BYTE( "rtu_31a.12f", 0x40000, 0x20000, CRC(0e723fcc) SHA1(91eeab6376a5aa852152af9920aef60bc7c689dd) )
+ ROM_LOAD16_BYTE( "rtu_36a.12h", 0x40001, 0x20000, CRC(523a45dc) SHA1(6d6743803016fa5ba713e0d6f61affce8a3255ec) )
+ ROM_LOAD16_BYTE( "rt_28a.9f", 0x80000, 0x20000, CRC(054137c8) SHA1(e4c406e0a32198323a5931093fbaa6836510b8ad) )
+ ROM_LOAD16_BYTE( "rt_33a.9h", 0x80001, 0x20000, CRC(7264cb1b) SHA1(b367acb9f6579569321ecaa98a14e29dd775b9db) )
+ ROM_LOAD16_BYTE( "rtu_29a.10f", 0xc0000, 0x20000, CRC(37ba3e20) SHA1(a128b1a17639b06a4fd8acffe0357f1dbd1d4fe9) )
+ ROM_LOAD16_BYTE( "rtu_34a.10h", 0xc0001, 0x20000, CRC(f99f46c0) SHA1(cda24a6baa3f861e7078fb2fa91328cc1cddc866) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "rt-5m.7a", 0x000000, 0x80000, CRC(86aef804) SHA1(723927ef3bf992d12395c52db051ece7bf57d5e5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rt-7m.9a", 0x000002, 0x80000, CRC(4f057110) SHA1(b7d35c883a74cf4bfb242d9f15a0e40ed1ec111f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rt-1m.3a", 0x000004, 0x80000, CRC(902489d0) SHA1(748ba416a8b9343059a3e7d8b93f02162feb1d0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rt-3m.5a", 0x000006, 0x80000, CRC(e35ce720) SHA1(6c1a87a1f819bdc20408b5a7823cf35a79d34110) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rt-6m.8a", 0x200000, 0x80000, CRC(13cb0e7c) SHA1(e429d594d9a7ff4cc6306e2796a9d6ad0fa25569) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rt-8m.10a", 0x200002, 0x80000, CRC(1f055014) SHA1(d64f5be9bb2ef761ca9b2e797dbc3554cf996a79) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rt-2m.4a", 0x200004, 0x80000, CRC(e9a034f4) SHA1(deb4cb5886705380b57d4fe9b9bf3c032e1d6227) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rt-4m.6a", 0x200006, 0x80000, CRC(df0eea8b) SHA1(5afa05654cccb0504bd44569d42fd68f08fd172f) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "rt_9.12b", 0x00000, 0x08000, CRC(abfca165) SHA1(428069d3bdc45775854cd0e8abe447f134fe5492) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "rt_18.11c", 0x00000, 0x20000, CRC(26b211ab) SHA1(0ea03fdd9edff41eacfc52aa9e0421c10968356b) )
+ ROM_LOAD( "rt_19.12c", 0x20000, 0x20000, CRC(dbe64ad0) SHA1(09f2ad522fe75d7bcca094b8c6696c3733b539d5) )
+
+ 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( "rt24b.1a", 0x0000, 0x0117, CRC(54b85159) SHA1(c6f4fb5d747a215f4f50e4f2258e35d3f9bdbb2e) )
+ ROM_LOAD( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) /* seen the same pcb with LWIO.11E */
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ROM_END
+
+/* B-Board 89625B-1 */
+ROM_START( wonder3 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "rtj_36.12f", 0x00000, 0x20000, CRC(e3741247) SHA1(4deb0f667697631693fbefddaeb8cf98fd0b90ce) )
+ ROM_LOAD16_BYTE( "rtj_42.12h", 0x00001, 0x20000, CRC(b4baa117) SHA1(44486b3d50f9b0a8c32c2c2dc5f1a046aface7b6) )
+ ROM_LOAD16_BYTE( "rtj_37.13f", 0x40000, 0x20000, CRC(a1f677b0) SHA1(e1511ea0fa4a689d1355119ac37c075192880dde) )
+ ROM_LOAD16_BYTE( "rtj_43.13h", 0x40001, 0x20000, CRC(85337a47) SHA1(0a247aa56c5cc17b1e888df7b502f65e88715469) )
+ ROM_LOAD16_BYTE( "rt_34.10f", 0x80000, 0x20000, CRC(054137c8) SHA1(e4c406e0a32198323a5931093fbaa6836510b8ad) ) // == rt_28a.9f
+ ROM_LOAD16_BYTE( "rt_40.10h", 0x80001, 0x20000, CRC(7264cb1b) SHA1(b367acb9f6579569321ecaa98a14e29dd775b9db) ) // == rt_33a.9h
+ ROM_LOAD16_BYTE( "rtj_35.11f", 0xc0000, 0x20000, CRC(e72f9ea3) SHA1(c63df200416bd61af73e8589204f7daef743041e) )
+ ROM_LOAD16_BYTE( "rtj_41.11h", 0xc0001, 0x20000, CRC(a11ee998) SHA1(b892398e2ff4e40e51b858cfdbce866a75c670e6) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "rt_09.4b", 0x000000, 0x20000, CRC(2c40e480) SHA1(823a36aa6dba7a028d4da5faef752366aa18fe57) , ROM_SKIP(7) ) // == rt-5m.7a
+ ROMX_LOAD( "rt_01.4a", 0x000001, 0x20000, CRC(3e11f8cd) SHA1(88d7edd7102b1abec2b6f87029d39414f3ebc094) , ROM_SKIP(7) ) // == rt-5m.7a
+ ROMX_LOAD( "rt_13.9b", 0x000002, 0x20000, CRC(51009117) SHA1(55549a2bd1abb3aea5dc17f17a2bd4a46c6cf12a) , ROM_SKIP(7) ) // == rt-7m.9a
+ ROMX_LOAD( "rt_05.9a", 0x000003, 0x20000, CRC(283fd470) SHA1(2d7ff9c5a747565f2186b9252b703ebac3117beb) , ROM_SKIP(7) ) // == rt-7m.9a
+ ROMX_LOAD( "rt_24.5e", 0x000004, 0x20000, CRC(ee4484ce) SHA1(5bb27c119a4e69cb50425ca73556a2e4e4482728) , ROM_SKIP(7) ) // == rt-1m.3a
+ ROMX_LOAD( "rt_17.5c", 0x000005, 0x20000, CRC(e5dcddeb) SHA1(9a1c740cdd66ee2f58737eda613e79ff6357142a) , ROM_SKIP(7) ) // == rt-1m.3a
+ ROMX_LOAD( "rt_38.8h", 0x000006, 0x20000, CRC(b2940c2d) SHA1(62ea57fb0203dd8f0e123e55eef7637702f8466d) , ROM_SKIP(7) ) // == rt-3m.5a
+ ROMX_LOAD( "rt_32.8f", 0x000007, 0x20000, CRC(08e2b758) SHA1(f56a4f16454fe528c358fd212449a1ecb0f826e0) , ROM_SKIP(7) ) // == rt-3m.5a
+ ROMX_LOAD( "rt_10.5b", 0x100000, 0x20000, CRC(e3f3ff94) SHA1(d5e46da2d25ca5347037b9859227c949209b30a6) , ROM_SKIP(7) ) // == rt-5m.7a
+ ROMX_LOAD( "rt_02.5a", 0x100001, 0x20000, CRC(fcffd73c) SHA1(64830ffc053bd97f22b406f53b1e2e4a78db6a97) , ROM_SKIP(7) ) // == rt-5m.7a
+ ROMX_LOAD( "rt_14.10b", 0x100002, 0x20000, CRC(5c546d9a) SHA1(1e0d0451e83dddb3371bffae6af7e17908816aec) , ROM_SKIP(7) ) // == rt-7m.9a
+ ROMX_LOAD( "rt_06.10a", 0x100003, 0x20000, CRC(d9650bc4) SHA1(d28d85595bee9f6d4a697486a9db3a71ce60de50) , ROM_SKIP(7) ) // == rt-7m.9a
+ ROMX_LOAD( "rt_25.7e", 0x100004, 0x20000, CRC(11b28831) SHA1(bb8f97871ca15184dbed3a90f8968a40b83a4480) , ROM_SKIP(7) ) // == rt-1m.3a
+ ROMX_LOAD( "rt_18.7c", 0x100005, 0x20000, CRC(ce1afb7c) SHA1(50a330bb2d748f1a738fa7895aba81d9f0c14579) , ROM_SKIP(7) ) // == rt-1m.3a
+ ROMX_LOAD( "rt_39.9h", 0x100006, 0x20000, CRC(ea7ac9ee) SHA1(bc21d8e59eb190608a87072c22be9cb1cf1227cc) , ROM_SKIP(7) ) // == rt-3m.5a
+ ROMX_LOAD( "rt_33.9f", 0x100007, 0x20000, CRC(d6a99384) SHA1(552b012eb911b8739ee859af13e176a8396cecf2) , ROM_SKIP(7) ) // == rt-3m.5a
+ ROMX_LOAD( "rt_11.7b", 0x200000, 0x20000, CRC(04f3c298) SHA1(1f3f8713ed8a2ad2bf4afce4c733eb9cb850ca9f) , ROM_SKIP(7) ) // == rt-6m.8a
+ ROMX_LOAD( "rt_03.7a", 0x200001, 0x20000, CRC(98087e08) SHA1(6a13786a62e11d77c4da8469422e402df1299162) , ROM_SKIP(7) ) // == rt-6m.8a
+ ROMX_LOAD( "rt_15.11b", 0x200002, 0x20000, CRC(b6aba565) SHA1(a166c853a5b4bc2602ce14974c11f570ba29df6a) , ROM_SKIP(7) ) // == rt-8m.10a
+ ROMX_LOAD( "rt_07.11a", 0x200003, 0x20000, CRC(c62defa1) SHA1(2533f39251c99d5a184d72a5b96b5603466c0d11) , ROM_SKIP(7) ) // == rt-8m.10a
+ ROMX_LOAD( "rt_26.8e", 0x200004, 0x20000, CRC(532f542e) SHA1(c894b385aa10a5e80b548c01817958739e2afa89) , ROM_SKIP(7) ) // == rt-2m.4a
+ ROMX_LOAD( "rt_19.8c", 0x200005, 0x20000, CRC(1f0f72bd) SHA1(ad1afcde397a3273afc7c7a0b084a9b68e9e736e) , ROM_SKIP(7) ) // == rt-2m.4a
+ ROMX_LOAD( "rt_28.10e", 0x200006, 0x20000, CRC(6064e499) SHA1(3bc30b9d8dde5f5e8dda31afbdadb5b2e4d50932) , ROM_SKIP(7) ) // == rt-4m.6a
+ ROMX_LOAD( "rt_21.10c", 0x200007, 0x20000, CRC(20012ddc) SHA1(4389f2554c429f0a421425a6645dd8e719f4995f) , ROM_SKIP(7) ) // == rt-4m.6a
+ ROMX_LOAD( "rt_12.8b", 0x300000, 0x20000, CRC(e54664cc) SHA1(e3b5ff0e9af20580cb4228f644f23a05aad20478) , ROM_SKIP(7) ) // == rt-6m.8a
+ ROMX_LOAD( "rt_04.8a", 0x300001, 0x20000, CRC(4d7b9a1a) SHA1(1a9dd66bb97e2a02f3264d5766b674b588ad7dfc) , ROM_SKIP(7) ) // == rt-6m.8a
+ ROMX_LOAD( "rt_16.12b", 0x300002, 0x20000, CRC(37c96cfc) SHA1(270f824757c0f536b02fef147d8e0af07e8d7147) , ROM_SKIP(7) ) // == rt-8m.10a
+ ROMX_LOAD( "rt_08.12a", 0x300003, 0x20000, CRC(75f4975b) SHA1(1cd78828db97931ab0bfe0339e7051c58b3eff60) , ROM_SKIP(7) ) // == rt-8m.10a
+ ROMX_LOAD( "rt_27.9e", 0x300004, 0x20000, CRC(ec6edc0f) SHA1(6dc13d692ca7bc989cd9b40bab8a2943425b7d61) , ROM_SKIP(7) ) // == rt-2m.4a
+ ROMX_LOAD( "rt_20.9c", 0x300005, 0x20000, CRC(4fe52659) SHA1(1bf22ae192b57cd62e92f290313cc9d3234b2700) , ROM_SKIP(7) ) // == rt-2m.4a
+ ROMX_LOAD( "rt_29.11e", 0x300006, 0x20000, CRC(8fa77f9f) SHA1(2f6b37d8e5eed38a8847c9ad736a7cdbe9958a70) , ROM_SKIP(7) ) // == rt-4m.6a
+ ROMX_LOAD( "rt_22.11c", 0x300007, 0x20000, CRC(228a0d4a) SHA1(bcaf12d01abe1d3cd5731bd5341cb22c4ca6139e) , ROM_SKIP(7) ) // == rt-4m.6a
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "rt_23.13b", 0x00000, 0x08000, CRC(abfca165) SHA1(428069d3bdc45775854cd0e8abe447f134fe5492) ) // == rt_9.12b
+// ROM_LOAD( "rt_23.13b", 0x00000, 0x08000, CRC(7d5a77a7) SHA1(4f2a6534d7a9e518061102c1dd7d7aca39600c33) ) /* dumped from another board, 1 byte different, pcb verified */
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "rt_30.12c", 0x00000, 0x20000, CRC(26b211ab) SHA1(0ea03fdd9edff41eacfc52aa9e0421c10968356b) ) // == rt_18.11c
+ ROM_LOAD( "rt_31.13c", 0x20000, 0x20000, CRC(dbe64ad0) SHA1(09f2ad522fe75d7bcca094b8c6696c3733b539d5) ) // == rt_19.12c
+
+ 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( "rt22b.1a", 0x0000, 0x0117, CRC(89560d6a) SHA1(0f88920536eb131948339becb14557d77e02b9f8) )
+ ROM_LOAD( "iob1.12e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ROM_END
+
+/* Three Wonders (bootleg) */
+ROM_START( 3wondersb )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "274001.4", 0x00000, 0x80000, CRC(47887cf3) SHA1(cdb2df67c99fd698845484869608bfaafa782bd6) )
+ ROM_LOAD16_BYTE( "274001.3", 0x00001, 0x80000, CRC(e79eacb3) SHA1(cb2712b4e566d7d2ab5639f2e62f6e15244a7f09) )
+
+ // The remainder of the roms in this set have the same content as those from '3wondersh'.
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "274001.12", 0x000000, 0x80000, CRC(47cf8dfb) SHA1(05fed8e61d8f8c0382d820e7bdef36db85ad416b) , ROM_SKIP(7) )
+ ROMX_LOAD( "274001.8", 0x000001, 0x80000, CRC(3bc2ef5e) SHA1(6864838e8f116bc56e7d205674240763a55d7907) , ROM_SKIP(7) )
+ ROMX_LOAD( "274001.10", 0x000002, 0x80000, CRC(a0d27605) SHA1(7f2a7d3cc8802e778a98a29a4992a223932bff2c) , ROM_SKIP(7) )
+ ROMX_LOAD( "274001.6", 0x000003, 0x80000, CRC(312d790c) SHA1(8739ba0784447f4050da1e6de8e31df3537b307d) , ROM_SKIP(7) )
+ ROMX_LOAD( "274001.11", 0x000004, 0x80000, CRC(8112bbb4) SHA1(5a93cee8627afeb255eec1d26ec043cd2c4d2218) , ROM_SKIP(7) )
+ ROMX_LOAD( "274001.7", 0x000005, 0x80000, CRC(58307167) SHA1(e253b64e144ccf3c4a0268e4be68468f11b2b071) , ROM_SKIP(7) )
+ ROMX_LOAD( "274001.9", 0x000006, 0x80000, CRC(cb73759d) SHA1(e6fa263bcd7876f83f499fb95fbbc45ebce950fe) , ROM_SKIP(7) )
+ ROMX_LOAD( "274001.5", 0x000007, 0x80000, CRC(3f765ae8) SHA1(a37cccbf2212eaa38a77b2f712688ce45b17e3b5) , ROM_SKIP(7) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "27512.2", 0x00000, 0x08000, CRC(abfca165) SHA1(428069d3bdc45775854cd0e8abe447f134fe5492) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "27020.1", 0x00000, 0x40000, CRC(3c4348cf) SHA1(cfa9fd2f9692ddfef856106de191d3bdb5289297) )
+ROM_END
+
+/* Three Wonders (hack) */
+ROM_START( 3wondersh )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "22.bin", 0x00000, 0x20000, CRC(e6071884) SHA1(5cf1a859739cf98846cb049b64fd083733acb29c) )
+ ROM_LOAD16_BYTE( "26.bin", 0x00001, 0x20000, CRC(a28447b7) SHA1(e3f11911f1d3d115c03edf1bb6c8a68fccd9e9b3) )
+ ROM_LOAD16_BYTE( "23.bin", 0x40000, 0x20000, CRC(fd3d6509) SHA1(0824ec397d12c2b832c9e694c23b59c2e489ed3b) )
+ ROM_LOAD16_BYTE( "27.bin", 0x40001, 0x20000, CRC(999cba3d) SHA1(99dfb902c0c77f798a868eb13340eb54fb4a84d3) )
+ ROM_LOAD16_BYTE( "rt_28a.9f", 0x80000, 0x20000, CRC(054137c8) SHA1(e4c406e0a32198323a5931093fbaa6836510b8ad) )
+ ROM_LOAD16_BYTE( "rt_33a.9h", 0x80001, 0x20000, CRC(7264cb1b) SHA1(b367acb9f6579569321ecaa98a14e29dd775b9db) )
+ ROM_LOAD16_BYTE( "rte_29a.10f", 0xc0000, 0x20000, CRC(cddaa919) SHA1(0c98e95ad5033d2c5ade7651243e7ccdb4e35463) )
+ ROM_LOAD16_BYTE( "rte_34a.10h", 0xc0001, 0x20000, CRC(ed52e7e5) SHA1(352433ae484967d26376141e3a8a0f968b98fde6) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "16.bin", 0x000000, 0x40000, CRC(c997bca2) SHA1(6b6cd9c2fc56690c42a3368cd5e6c98d6bff5b5b) , ROM_SKIP(7) )
+ ROMX_LOAD( "6.bin", 0x000001, 0x40000, CRC(3eea321a) SHA1(4368aaf8a532c29f4b950adb2daedd3069d84cf1) , ROM_SKIP(7) )
+ ROMX_LOAD( "18.bin", 0x000002, 0x40000, CRC(98acdfd4) SHA1(910dfd6742e166530388c700c0797e692e501f97) , ROM_SKIP(7) )
+ ROMX_LOAD( "8.bin", 0x000003, 0x40000, CRC(dc9ca6f9) SHA1(77549e9a128d1b7ca0c4547cdc56f43450d426e0) , ROM_SKIP(7) )
+ ROMX_LOAD( "12.bin", 0x000004, 0x40000, CRC(0d8a6007) SHA1(48d61cbd91df01ba4b2f0e80e60375a50ddb065e) , ROM_SKIP(7) )
+ ROMX_LOAD( "2.bin", 0x000005, 0x40000, CRC(d75563b9) SHA1(7b7b105b84dc5d7b17838961fdd8be5bac90cbc6) , ROM_SKIP(7) )
+ ROMX_LOAD( "14.bin", 0x000006, 0x40000, CRC(84369a28) SHA1(3877186371fe289522133fd99be034b141a974ca) , ROM_SKIP(7) )
+ ROMX_LOAD( "4.bin", 0x000007, 0x40000, CRC(d4831578) SHA1(9ff5860f22976e9e4c023946f35e24fde84fe8ea) , ROM_SKIP(7) )
+ ROMX_LOAD( "17.bin", 0x200000, 0x40000, CRC(040edff5) SHA1(9747d67b980cc357c6fa732300a84ae55150bc51) , ROM_SKIP(7) )
+ ROMX_LOAD( "7.bin", 0x200001, 0x40000, CRC(c7c0468c) SHA1(e7a14cf579b023e8954b7e06aa2337db4f53bedc) , ROM_SKIP(7) )
+ ROMX_LOAD( "19.bin", 0x200002, 0x40000, CRC(9fef114f) SHA1(394afb083ce7c46d9a39097d0040f9e18aaab508) , ROM_SKIP(7) )
+ ROMX_LOAD( "9.bin", 0x200003, 0x40000, CRC(48cbfba5) SHA1(74047433e50795e29d8299526ae2c424610f0a5e) , ROM_SKIP(7) )
+ ROMX_LOAD( "13.bin", 0x200004, 0x40000, CRC(8fc3d7d1) SHA1(e2784e0fccfe062ea8dc440e4a884fc665f4a846) , ROM_SKIP(7) )
+ ROMX_LOAD( "3.bin", 0x200005, 0x40000, CRC(c65e9a86) SHA1(359ab1e2dd0fcf38ed9815a6a50294cbeca8223c) , ROM_SKIP(7) )
+ ROMX_LOAD( "15.bin", 0x200006, 0x40000, CRC(f239341a) SHA1(b1858f5f7a5d210c5327b84a797ed7e898250596) , ROM_SKIP(7) )
+ ROMX_LOAD( "5.bin", 0x200007, 0x40000, CRC(947ac944) SHA1(d962f49ba532fc60209bb3957ff8a456855ef67f) , ROM_SKIP(7) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "rt_9.12b", 0x00000, 0x08000, CRC(abfca165) SHA1(428069d3bdc45775854cd0e8abe447f134fe5492) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "rt_18.11c", 0x00000, 0x20000, CRC(26b211ab) SHA1(0ea03fdd9edff41eacfc52aa9e0421c10968356b) )
+ ROM_LOAD( "rt_19.12c", 0x20000, 0x20000, CRC(dbe64ad0) SHA1(09f2ad522fe75d7bcca094b8c6696c3733b539d5) )
+
+ 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( "rt24b.1a", 0x0000, 0x0117, CRC(54b85159) SHA1(c6f4fb5d747a215f4f50e4f2258e35d3f9bdbb2e) )
+ ROM_LOAD( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ROM_END
+
+/* B-Board 90629B-3 */
+ROM_START( kod )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "kde_30a.11e", 0x00000, 0x20000, CRC(fcb5efe2) SHA1(6122e4852633876ff2ccd4b72296fce96446b3ee) )
+ ROM_LOAD16_BYTE( "kde_37a.11f", 0x00001, 0x20000, CRC(f22e5266) SHA1(2fbadce701218f4a56bfd6dfd758abacb34a2181) )
+ ROM_LOAD16_BYTE( "kde_31a.12e", 0x40000, 0x20000, CRC(c710d722) SHA1(a2e9b84d3e7d835a910ab9f584bdc64c2559995a) )
+ ROM_LOAD16_BYTE( "kde_38a.12f", 0x40001, 0x20000, CRC(57d6ed3a) SHA1(a47da5068723c8e16ed458fbfa3e3db57b32d87d) )
+ ROM_LOAD16_BYTE( "kd_28.9e", 0x80000, 0x20000, CRC(9367bcd9) SHA1(8243b4b9bb9756f3fa726717e19a166cb2f5b50a) )
+ ROM_LOAD16_BYTE( "kd_35.9f", 0x80001, 0x20000, CRC(4ca6a48a) SHA1(9d440ecd8d2d0e293fecf64ca3915252b94e7aef) )
+ ROM_LOAD16_BYTE( "kd_29.10e", 0xc0000, 0x20000, CRC(0360fa72) SHA1(274769c8717a874397cf37369e3ef80a682d9ef2) )
+ ROM_LOAD16_BYTE( "kd_36a.10f", 0xc0001, 0x20000, CRC(95a3cef8) SHA1(9b75c1ed0eafacc230197ffd9b81e0c8f4f2c464) ) /* seen the same pcb with KDE_36A.10F */
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "kd-5m.4a", 0x000000, 0x80000, CRC(e45b8701) SHA1(604e39e455e81695ee4f899f102d0bcd789cedd0) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket
+ ROMX_LOAD( "kd-7m.6a", 0x000002, 0x80000, CRC(a7750322) SHA1(3c583496a53cd64edf377db35f7f40f02b59b7e7) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket
+ ROMX_LOAD( "kd-1m.3a", 0x000004, 0x80000, CRC(5f74bf78) SHA1(b7c43eea9bf77a0fb571dcd53f8be719e6655fd9) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket
+ ROMX_LOAD( "kd-3m.5a", 0x000006, 0x80000, CRC(5e5303bf) SHA1(d9f90b898ffdf4398b2bbeb48247f06f728e7c00) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket
+ ROMX_LOAD( "kd-6m.4c", 0x200000, 0x80000, CRC(113358f3) SHA1(9d98eafa74a046f65bf3847fe1d88ea1b0c82b0c) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "11" socket
+ ROMX_LOAD( "kd-8m.6c", 0x200002, 0x80000, CRC(38853c44) SHA1(a6e552fb0138a76a7878b90d202904e2b44ae7ec) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "13" socket
+ ROMX_LOAD( "kd-2m.3c", 0x200004, 0x80000, CRC(9ef36604) SHA1(b42ca0a910b65e1e7bb6e7d734e853ce67e821bf) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "10" socket
+ ROMX_LOAD( "kd-4m.5c", 0x200006, 0x80000, CRC(402b9b4f) SHA1(4c11976976eadf1ad293b31b0a4d047d05032b06) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "12" socket
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "kd_9.12a", 0x00000, 0x08000, CRC(bac6ec26) SHA1(6cbb6d55660150ae3f5270e023328275ee1bbf50) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "kd_18.11c", 0x00000, 0x20000, CRC(4c63181d) SHA1(270f27534a95cb0be3ff3f9ca71c502320d8090b) )
+ ROM_LOAD( "kd_19.12c", 0x20000, 0x20000, CRC(92941b80) SHA1(5fa7c2793e6febee54a83042d118ddd4f2b7d127) )
+
+ 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( "kd29b.1a", 0x0000, 0x0117, NO_DUMP )
+ ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 90629B-3 */
+ROM_START( kodr1 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "kde_30.11e", 0x00000, 0x20000, CRC(c7414fd4) SHA1(37d27fbe7c617a26b53bfdfcd532cf573d42f33b) )
+ ROM_LOAD16_BYTE( "kde_37.11f", 0x00001, 0x20000, CRC(a5bf40d2) SHA1(cd34dbeabd0974709411579e669f01d0d799c2a1) )
+ ROM_LOAD16_BYTE( "kde_31.12e", 0x40000, 0x20000, CRC(1fffc7bd) SHA1(822c9ad996ca51a99a2bb1fe08fa19e18413030d) )
+ ROM_LOAD16_BYTE( "kde_38.12f", 0x40001, 0x20000, CRC(89e57a82) SHA1(aad35f86a8b1b7e3a0b5f3e6efd0e844b3d3d82f) )
+ ROM_LOAD16_BYTE( "kde_28.9e", 0x80000, 0x20000, CRC(9367bcd9) SHA1(8243b4b9bb9756f3fa726717e19a166cb2f5b50a) ) // == kd_28.9e
+ ROM_LOAD16_BYTE( "kde_35.9f", 0x80001, 0x20000, CRC(4ca6a48a) SHA1(9d440ecd8d2d0e293fecf64ca3915252b94e7aef) ) // == kd_35.9f
+ ROM_LOAD16_BYTE( "kde_29.10e", 0xc0000, 0x20000, CRC(6a0ba878) SHA1(82e4037d73889a76b0cdc7a4f8e77e585d38e56e) )
+ ROM_LOAD16_BYTE( "kde_36.10f", 0xc0001, 0x20000, CRC(b509b39d) SHA1(6023855e54b170e55abf0f607600031e19e5e722) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "kd-5m.4a", 0x000000, 0x80000, CRC(e45b8701) SHA1(604e39e455e81695ee4f899f102d0bcd789cedd0) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket
+ ROMX_LOAD( "kd-7m.6a", 0x000002, 0x80000, CRC(a7750322) SHA1(3c583496a53cd64edf377db35f7f40f02b59b7e7) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket
+ ROMX_LOAD( "kd-1m.3a", 0x000004, 0x80000, CRC(5f74bf78) SHA1(b7c43eea9bf77a0fb571dcd53f8be719e6655fd9) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket
+ ROMX_LOAD( "kd-3m.5a", 0x000006, 0x80000, CRC(5e5303bf) SHA1(d9f90b898ffdf4398b2bbeb48247f06f728e7c00) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket
+ ROMX_LOAD( "kd-6m.4c", 0x200000, 0x80000, CRC(113358f3) SHA1(9d98eafa74a046f65bf3847fe1d88ea1b0c82b0c) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "11" socket
+ ROMX_LOAD( "kd-8m.6c", 0x200002, 0x80000, CRC(38853c44) SHA1(a6e552fb0138a76a7878b90d202904e2b44ae7ec) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "13" socket
+ ROMX_LOAD( "kd-2m.3c", 0x200004, 0x80000, CRC(9ef36604) SHA1(b42ca0a910b65e1e7bb6e7d734e853ce67e821bf) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "10" socket
+ ROMX_LOAD( "kd-4m.5c", 0x200006, 0x80000, CRC(402b9b4f) SHA1(4c11976976eadf1ad293b31b0a4d047d05032b06) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "12" socket
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "kd_9.12a", 0x00000, 0x08000, CRC(f5514510) SHA1(07e9c836adf9ef2f7e7729e99015f71e3b5f16e0) ) /* different CRC from kod, pcb verified */
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "kd_18.11c", 0x00000, 0x20000, CRC(69ecb2c8) SHA1(fadf266b6b20bd6329a3e638918c5a3106413476) ) /* different CRC from kod, pcb verified */
+ ROM_LOAD( "kd_19.12c", 0x20000, 0x20000, CRC(02d851c1) SHA1(c959a6fc3e7d893557f319debae91f28471f4be2) ) /* different CRC from kod, pcb verified */
+
+ 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( "kd29b.1a", 0x0000, 0x0117, NO_DUMP )
+ ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 90629B-3 */
+ROM_START( kodu )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "kdu_30b.11e", 0x00000, 0x20000, CRC(825817f9) SHA1(250f61effcbe59f8b70baaf26eb8aef419fed66b) )
+ ROM_LOAD16_BYTE( "kdu_37b.11f", 0x00001, 0x20000, CRC(d2422dfb) SHA1(6e369a62012f3c480755b700d4d4f4c112c79483) )
+ ROM_LOAD16_BYTE( "kdu_31b.12e", 0x40000, 0x20000, CRC(9af36039) SHA1(f2645178a042689a387f916b4ecd7d1d859d758a) )
+ ROM_LOAD16_BYTE( "kdu_38b.12f", 0x40001, 0x20000, CRC(be8405a1) SHA1(8d4f9a0489dc4b2971b20170713284151bc10eb7) )
+ ROM_LOAD16_BYTE( "kdu_28.9e", 0x80000, 0x20000, CRC(9367bcd9) SHA1(8243b4b9bb9756f3fa726717e19a166cb2f5b50a) ) // == kd_28.9e
+ ROM_LOAD16_BYTE( "kdu_35.9f", 0x80001, 0x20000, CRC(4ca6a48a) SHA1(9d440ecd8d2d0e293fecf64ca3915252b94e7aef) ) // == kd_35.9f
+ ROM_LOAD16_BYTE( "kdu_29.10e", 0xc0000, 0x20000, CRC(0360fa72) SHA1(274769c8717a874397cf37369e3ef80a682d9ef2) ) // == kd_29.10e
+ ROM_LOAD16_BYTE( "kdu_36a.10f", 0xc0001, 0x20000, CRC(95a3cef8) SHA1(9b75c1ed0eafacc230197ffd9b81e0c8f4f2c464) ) // == kd_36a.10f
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "kd-5m.4a", 0x000000, 0x80000, CRC(e45b8701) SHA1(604e39e455e81695ee4f899f102d0bcd789cedd0) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket
+ ROMX_LOAD( "kd-7m.6a", 0x000002, 0x80000, CRC(a7750322) SHA1(3c583496a53cd64edf377db35f7f40f02b59b7e7) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket
+ ROMX_LOAD( "kd-1m.3a", 0x000004, 0x80000, CRC(5f74bf78) SHA1(b7c43eea9bf77a0fb571dcd53f8be719e6655fd9) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket
+ ROMX_LOAD( "kd-3m.5a", 0x000006, 0x80000, CRC(5e5303bf) SHA1(d9f90b898ffdf4398b2bbeb48247f06f728e7c00) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket
+ ROMX_LOAD( "kd-6m.4c", 0x200000, 0x80000, CRC(113358f3) SHA1(9d98eafa74a046f65bf3847fe1d88ea1b0c82b0c) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "11" socket
+ ROMX_LOAD( "kd-8m.6c", 0x200002, 0x80000, CRC(38853c44) SHA1(a6e552fb0138a76a7878b90d202904e2b44ae7ec) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "13" socket
+ ROMX_LOAD( "kd-2m.3c", 0x200004, 0x80000, CRC(9ef36604) SHA1(b42ca0a910b65e1e7bb6e7d734e853ce67e821bf) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "10" socket
+ ROMX_LOAD( "kd-4m.5c", 0x200006, 0x80000, CRC(402b9b4f) SHA1(4c11976976eadf1ad293b31b0a4d047d05032b06) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "12" socket
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "kd_09.12a", 0x00000, 0x08000, CRC(bac6ec26) SHA1(6cbb6d55660150ae3f5270e023328275ee1bbf50) ) // == kd_9.12a
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "kd_18.11c", 0x00000, 0x20000, CRC(4c63181d) SHA1(270f27534a95cb0be3ff3f9ca71c502320d8090b) )
+ ROM_LOAD( "kd_19.12c", 0x20000, 0x20000, CRC(92941b80) SHA1(5fa7c2793e6febee54a83042d118ddd4f2b7d127) )
+
+ 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( "kd29b.1a", 0x0000, 0x0117, NO_DUMP )
+ ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 90629B-3 */
+ROM_START( kodj )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "kdj_30a.11e", 0x00000, 0x20000, CRC(ebc788ad) SHA1(f4a297e409fcdbb2c15a13b39a16e4a83e7e060b) )
+ ROM_LOAD16_BYTE( "kdj_37a.11f", 0x00001, 0x20000, CRC(e55c3529) SHA1(a5254895499a53b4fbaac6fd50464b9e08175b8d) )
+ ROM_LOAD16_BYTE( "kdj_31a.12e", 0x40000, 0x20000, CRC(c710d722) SHA1(a2e9b84d3e7d835a910ab9f584bdc64c2559995a) ) // == kde_31a.12e
+ ROM_LOAD16_BYTE( "kdj_38a.12f", 0x40001, 0x20000, CRC(57d6ed3a) SHA1(a47da5068723c8e16ed458fbfa3e3db57b32d87d) ) // == kde_38a.12f
+ ROM_LOAD16_WORD_SWAP("kd_33.6f", 0x80000, 0x80000, CRC(9bd7ad4b) SHA1(7bece5d408fd13116bd5518014b632ecc9a2feaa) ) // incorrect label, could be kdj_33a, kdj_33, kd_33a
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "kd_06.8a", 0x000000, 0x80000, CRC(e45b8701) SHA1(604e39e455e81695ee4f899f102d0bcd789cedd0) , ROM_GROUPWORD | ROM_SKIP(6) ) // == kd-5m.4a
+ ROMX_LOAD( "kd_08.10a", 0x000002, 0x80000, CRC(a7750322) SHA1(3c583496a53cd64edf377db35f7f40f02b59b7e7) , ROM_GROUPWORD | ROM_SKIP(6) ) // == kd-7m.6a
+ ROMX_LOAD( "kd_05.7a", 0x000004, 0x80000, CRC(5f74bf78) SHA1(b7c43eea9bf77a0fb571dcd53f8be719e6655fd9) , ROM_GROUPWORD | ROM_SKIP(6) ) // == kd-1m.3a
+ ROMX_LOAD( "kd_07.9a", 0x000006, 0x80000, CRC(5e5303bf) SHA1(d9f90b898ffdf4398b2bbeb48247f06f728e7c00) , ROM_GROUPWORD | ROM_SKIP(6) ) // == kd-3m.5a
+ ROMX_LOAD( "kd_15.8c", 0x200000, 0x80000, CRC(113358f3) SHA1(9d98eafa74a046f65bf3847fe1d88ea1b0c82b0c) , ROM_GROUPWORD | ROM_SKIP(6) ) // == kd-6m.4c
+ ROMX_LOAD( "kd_17.10c", 0x200002, 0x80000, CRC(38853c44) SHA1(a6e552fb0138a76a7878b90d202904e2b44ae7ec) , ROM_GROUPWORD | ROM_SKIP(6) ) // == kd-8m.6c
+ ROMX_LOAD( "kd_14.7c", 0x200004, 0x80000, CRC(9ef36604) SHA1(b42ca0a910b65e1e7bb6e7d734e853ce67e821bf) , ROM_GROUPWORD | ROM_SKIP(6) ) // == kd-2m.3c
+ ROMX_LOAD( "kd_16.9c", 0x200006, 0x80000, CRC(402b9b4f) SHA1(4c11976976eadf1ad293b31b0a4d047d05032b06) , ROM_GROUPWORD | ROM_SKIP(6) ) // == kd-4m.5c
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "kd_09.12a", 0x00000, 0x08000, CRC(bac6ec26) SHA1(6cbb6d55660150ae3f5270e023328275ee1bbf50) ) // == kd_9.12a
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "kd_18.11c", 0x00000, 0x20000, CRC(4c63181d) SHA1(270f27534a95cb0be3ff3f9ca71c502320d8090b) )
+ ROM_LOAD( "kd_19.12c", 0x20000, 0x20000, CRC(92941b80) SHA1(5fa7c2793e6febee54a83042d118ddd4f2b7d127) )
+
+ 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( "kd29b.1a", 0x0000, 0x0117, NO_DUMP )
+ ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 89625B-1 */
+/* Note that this set is equivalent to kodj, but each 4Mbit EPROM is replaced by 4 1Mbit EPROMs. */
+ROM_START( kodja )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "kdj_36a.12f", 0x00000, 0x20000, CRC(ebc788ad) SHA1(f4a297e409fcdbb2c15a13b39a16e4a83e7e060b) ) // == kdj_30a.11e
+ ROM_LOAD16_BYTE( "kdj_42a.12h", 0x00001, 0x20000, CRC(e55c3529) SHA1(a5254895499a53b4fbaac6fd50464b9e08175b8d) ) // == kdj_37a.11f
+ ROM_LOAD16_BYTE( "kdj_37a.13f", 0x40000, 0x20000, CRC(c710d722) SHA1(a2e9b84d3e7d835a910ab9f584bdc64c2559995a) ) // == kdj_31a.12e
+ ROM_LOAD16_BYTE( "kdj_43a.13h", 0x40001, 0x20000, CRC(57d6ed3a) SHA1(a47da5068723c8e16ed458fbfa3e3db57b32d87d) ) // == kdj_38a.12f
+ ROM_LOAD16_BYTE( "kd_34.10f", 0x80000, 0x20000, CRC(9367bcd9) SHA1(8243b4b9bb9756f3fa726717e19a166cb2f5b50a) ) // == kd_33.6f
+ ROM_LOAD16_BYTE( "kd_40.10h", 0x80001, 0x20000, CRC(4ca6a48a) SHA1(9d440ecd8d2d0e293fecf64ca3915252b94e7aef) ) // == kd_33.6f
+ ROM_LOAD16_BYTE( "kd_35.11f", 0xc0000, 0x20000, CRC(0360fa72) SHA1(274769c8717a874397cf37369e3ef80a682d9ef2) ) // == kd_33.6f
+ ROM_LOAD16_BYTE( "kd_41a.11h", 0xc0001, 0x20000, CRC(95a3cef8) SHA1(9b75c1ed0eafacc230197ffd9b81e0c8f4f2c464) ) // == kd_33.6f
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "kd_9.4b", 0x000000, 0x20000, CRC(401a98e3) SHA1(b762d0f0e38ad33b5135646a107c1d4279c02193) , ROM_SKIP(7) ) // == kd_06.8a
+ ROMX_LOAD( "kd_1.4a", 0x000001, 0x20000, CRC(5894399a) SHA1(ee0bff29d313b4d5a318bc7345cc356d6e7318fc) , ROM_SKIP(7) ) // == kd_06.8a
+ ROMX_LOAD( "kd_13.9b", 0x000002, 0x20000, CRC(b6685131) SHA1(c1fa66cb695cfcb61e8495031ce18e4c6736b561) , ROM_SKIP(7) ) // == kd_08.10a
+ ROMX_LOAD( "kd_5.9a", 0x000003, 0x20000, CRC(c29b9ab3) SHA1(3ffa906d22563c9ad29b9ba4cd22b4ce5605b66a) , ROM_SKIP(7) ) // == kd_08.10a
+ ROMX_LOAD( "kd_24.5e", 0x000004, 0x20000, CRC(97008fdb) SHA1(150a7907f48dede2de0c40f1bea46e95d2e31e9c) , ROM_SKIP(7) ) // == kd_05.7a
+ ROMX_LOAD( "kd_17.5c", 0x000005, 0x20000, CRC(dc9a83d3) SHA1(6ceb5e6b11e7a57933c03fb308e1c6a850cf5ac7) , ROM_SKIP(7) ) // == kd_05.7a
+ ROMX_LOAD( "kd_38.8h", 0x000006, 0x20000, CRC(9c3dd2d1) SHA1(3ab77954fbde45797fcb1c5d8a500b5ec2673e5f) , ROM_SKIP(7) ) // == kd_07.9a
+ ROMX_LOAD( "kd_32.8f", 0x000007, 0x20000, CRC(1b2a802a) SHA1(f9b9e6da6a49aaf7c88b7b806c273b464a584a7b) , ROM_SKIP(7) ) // == kd_07.9a
+ ROMX_LOAD( "kd_10.5b", 0x100000, 0x20000, CRC(e788ae96) SHA1(1c257a4c20842b8750e3ba3cf78adad0bc5e6f2c) , ROM_SKIP(7) ) // == kd_06.8a
+ ROMX_LOAD( "kd_2.5a", 0x100001, 0x20000, CRC(b022e3e3) SHA1(a1e3700638e99677d4ee9aea5a250eb2380413c2) , ROM_SKIP(7) ) // == kd_06.8a
+ ROMX_LOAD( "kd_14.10b", 0x100002, 0x20000, CRC(4840c5ef) SHA1(fcd7ee778ab4519887bd37ced5e04f7aa8748e5e) , ROM_SKIP(7) ) // == kd_08.10a
+ ROMX_LOAD( "kd_6.10a", 0x100003, 0x20000, CRC(519faee4) SHA1(038afb9d2df872a0b45a7a6a43f7bb1389e8539a) , ROM_SKIP(7) ) // == kd_08.10a
+ ROMX_LOAD( "kd_25.7e", 0x100004, 0x20000, CRC(5d0fa853) SHA1(81e69bfac5ad6909d47db0927b7387bd392b4ef3) , ROM_SKIP(7) ) // == kd_05.7a
+ ROMX_LOAD( "kd_18.7c", 0x100005, 0x20000, CRC(6ad3b2bb) SHA1(c8d3bd2ce6305772224b5419301b59b9e78e7d44) , ROM_SKIP(7) ) // == kd_05.7a
+ ROMX_LOAD( "kd_39.9h", 0x100006, 0x20000, CRC(d7920213) SHA1(ac7de3f6c8503e06ae27f7db43bf9884f244bf7a) , ROM_SKIP(7) ) // == kd_07.9a
+ ROMX_LOAD( "kd_33.9f", 0x100007, 0x20000, CRC(65c2bed6) SHA1(932be92a418a2d3960f0b071eb5ffe6dae60d933) , ROM_SKIP(7) ) // == kd_07.9a
+ ROMX_LOAD( "kd_11.7b", 0x200000, 0x20000, CRC(147e3310) SHA1(e371db6c6621d09c43325edf9e3e40777afb830c) , ROM_SKIP(7) ) // == kd_15.8c
+ ROMX_LOAD( "kd_3.7a", 0x200001, 0x20000, CRC(5d18bc83) SHA1(49191e1073cdfb32272e6daeddedc4b309cf9fe6) , ROM_SKIP(7) ) // == kd_15.8c
+ ROMX_LOAD( "kd_15.11b", 0x200002, 0x20000, CRC(57359746) SHA1(2f83b77e6ebbceffab10653018a1b54a91d39a3f) , ROM_SKIP(7) ) // == kd_17.10c
+ ROMX_LOAD( "kd_7.11a", 0x200003, 0x20000, CRC(7fe03079) SHA1(be3be96d63a53cd8b6dc67eadc718c4b3b182123) , ROM_SKIP(7) ) // == kd_17.10c
+ ROMX_LOAD( "kd_26.8e", 0x200004, 0x20000, CRC(57e5fab5) SHA1(e665ab581372b48b6a7a494fd65ed6c807b5c00a) , ROM_SKIP(7) ) // == kd_14.7c
+ ROMX_LOAD( "kd_19.8c", 0x200005, 0x20000, CRC(b1f30f7c) SHA1(80308091a0af6ca46011a9174838c4d9dbeb96ee) , ROM_SKIP(7) ) // == kd_14.7c
+ ROMX_LOAD( "kd_28.10e", 0x200006, 0x20000, CRC(3a424135) SHA1(05d77253f454d69553a39a5dca0798f6ccea6da0) , ROM_SKIP(7) ) // == kd_16.9c
+ ROMX_LOAD( "kd_21.10c", 0x200007, 0x20000, CRC(ce10d2c3) SHA1(b694325b370d451cb3bcfe7d753c53ef68b83276) , ROM_SKIP(7) ) // == kd_16.9c
+ ROMX_LOAD( "kd_12.8b", 0x300000, 0x20000, CRC(a6042aa2) SHA1(daa4e52574b53d125414401ad0fca6eea36abe64) , ROM_SKIP(7) ) // == kd_15.8c
+ ROMX_LOAD( "kd_4.8a", 0x300001, 0x20000, CRC(0ce0ba30) SHA1(a19049b5fc58921452bf7b69d2d86d0faa5362bf) , ROM_SKIP(7) ) // == kd_15.8c
+ ROMX_LOAD( "kd_16.12b", 0x300002, 0x20000, CRC(63dcb7e0) SHA1(1524321f31813452aabfef133fb64fd0cef165cf) , ROM_SKIP(7) ) // == kd_17.10c
+ ROMX_LOAD( "kd_8.12a", 0x300003, 0x20000, CRC(c69b77ae) SHA1(31cacace828d4e376347ecd896f3454f79285a8b) , ROM_SKIP(7) ) // == kd_17.10c
+ ROMX_LOAD( "kd_27.9e", 0x300004, 0x20000, CRC(40d7bfed) SHA1(924d3f981d85434d2a22d4ede45131720d7521c0) , ROM_SKIP(7) ) // == kd_14.7c
+ ROMX_LOAD( "kd_20.9c", 0x300005, 0x20000, CRC(01c1f399) SHA1(ea25d4efc9e538ee8ed09acb6e467c5b444bf728) , ROM_SKIP(7) ) // == kd_14.7c
+ ROMX_LOAD( "kd_29.11e", 0x300006, 0x20000, CRC(a1eeac03) SHA1(fdec33ec0becc4badf89c9019f3217c22e54e842) , ROM_SKIP(7) ) // == kd_16.9c
+ ROMX_LOAD( "kd_22.11c", 0x300007, 0x20000, CRC(5ade98eb) SHA1(5d2474864bf0e41e89fe44c69025101b8ef2b482) , ROM_SKIP(7) ) // == kd_16.9c
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "kd_23.13b", 0x00000, 0x08000, CRC(bac6ec26) SHA1(6cbb6d55660150ae3f5270e023328275ee1bbf50) ) // == kd_09.12a
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "kd_30.12c", 0x00000, 0x20000, CRC(4c63181d) SHA1(270f27534a95cb0be3ff3f9ca71c502320d8090b) ) // == kd_18.11c
+ ROM_LOAD( "kd_31.13c", 0x20000, 0x20000, CRC(92941b80) SHA1(5fa7c2793e6febee54a83042d118ddd4f2b7d127) ) // == kd_19.12c
+
+ 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( "kd22b.1a", 0x0000, 0x0117, NO_DUMP )
+ ROM_LOAD( "iob1.12e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 91635B-2 */
+ROM_START( captcomm )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "cce_23f.8f", 0x000000, 0x80000, CRC(42c814c5) SHA1(60e6ae6b8a89cdaa1abf1749c60a5e3b3972e1ab) )
+ ROM_LOAD16_WORD_SWAP( "cc_22f.7f", 0x080000, 0x80000, CRC(0fd34195) SHA1(fb2b9a53af43507f13c4f94eaebbf0b538b2e754) )
+ ROM_LOAD16_BYTE( "cc_24f.9e", 0x100000, 0x20000, CRC(3a794f25) SHA1(7f3722a4ef0c1d7acb73e6bac9dd6ae7b35e6374) )
+ ROM_LOAD16_BYTE( "cc_28f.9f", 0x100001, 0x20000, CRC(fc3c2906) SHA1(621c3b79b6fdea1665bb316eb539e5916e890656) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cc-5m.3a", 0x000000, 0x80000, CRC(7261d8ba) SHA1(4b66292e42d20d0b79a756f0e445492ddb9c6bbc) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket
+ ROMX_LOAD( "cc-7m.5a", 0x000002, 0x80000, CRC(6a60f949) SHA1(87391ff92abaf3e451f70d789a938cffbd1fd222) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket
+ ROMX_LOAD( "cc-1m.4a", 0x000004, 0x80000, CRC(00637302) SHA1(2c554b59cceec2de67a9a4bc6281fe846d3c8cd2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket
+ ROMX_LOAD( "cc-3m.6a", 0x000006, 0x80000, CRC(cc87cf61) SHA1(7fb1f49494cc1a08aded20754bb0cefb1c323198) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket
+ ROMX_LOAD( "cc-6m.7a", 0x200000, 0x80000, CRC(28718bed) SHA1(dfdc4dd14dc609783bad94d608a9e9b137dea944) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "5" socket
+ ROMX_LOAD( "cc-8m.9a", 0x200002, 0x80000, CRC(d4acc53a) SHA1(d03282ebbde362e679cc97f772aa9baf163d7606) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "7" socket
+ ROMX_LOAD( "cc-2m.8a", 0x200004, 0x80000, CRC(0c69f151) SHA1(a170b8e568439e4a26d84376d53560e4248e4e2f) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "6" socket
+ ROMX_LOAD( "cc-4m.10a", 0x200006, 0x80000, CRC(1f9ebb97) SHA1(023d00cb7b6a52d1b29e2052abe08ef34cb0c55c) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "8" socket
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "cc_09.11a", 0x00000, 0x08000, CRC(698e8b58) SHA1(b7a3d905a7ed2c430426ca2e185e3d7e75e752a1) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "cc_18.11c", 0x00000, 0x20000, CRC(6de2c2db) SHA1(9a1eaba8d104f59a5e61f89679bb5de0c0c64364) )
+ ROM_LOAD( "cc_19.12c", 0x20000, 0x20000, CRC(b99091ae) SHA1(b19197c7ad3aeaf5f41c26bf853b0c9b502ecfca) )
+
+ 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( "cc63b.1a", 0x0000, 0x0117, CRC(cae8f0f9) SHA1(eadbd45e184195b2d170cd71a68e5caed64b69f7) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "ccprg1.11d", 0x0000, 0x0117, CRC(e1c225c4) SHA1(97146451ca9aa3cecd443cc6881151ed8df47fbf) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632b.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 91635B-2 */
+ROM_START( captcommr1 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "cce_23d.8f", 0x000000, 0x80000, CRC(19c58ece) SHA1(6e23e87db29b2c5698b7cead99d1106a2e190648) )
+ ROM_LOAD16_WORD_SWAP( "cc_22d.7f", 0x080000, 0x80000, CRC(a91949b7) SHA1(c027af89cd8f6bd3aaed61114582322c42e0c74f) )
+ ROM_LOAD16_BYTE( "cc_24d.9e", 0x100000, 0x20000, CRC(680e543f) SHA1(cfa963ab6329f615807db213bf53841860ed3149) )
+ ROM_LOAD16_BYTE( "cc_28d.9f", 0x100001, 0x20000, CRC(8820039f) SHA1(d68ce0b34ade75b8c5214168b2b1e0cdff45cd52) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cc-5m.3a", 0x000000, 0x80000, CRC(7261d8ba) SHA1(4b66292e42d20d0b79a756f0e445492ddb9c6bbc) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket
+ ROMX_LOAD( "cc-7m.5a", 0x000002, 0x80000, CRC(6a60f949) SHA1(87391ff92abaf3e451f70d789a938cffbd1fd222) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket
+ ROMX_LOAD( "cc-1m.4a", 0x000004, 0x80000, CRC(00637302) SHA1(2c554b59cceec2de67a9a4bc6281fe846d3c8cd2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket
+ ROMX_LOAD( "cc-3m.6a", 0x000006, 0x80000, CRC(cc87cf61) SHA1(7fb1f49494cc1a08aded20754bb0cefb1c323198) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket
+ ROMX_LOAD( "cc-6m.7a", 0x200000, 0x80000, CRC(28718bed) SHA1(dfdc4dd14dc609783bad94d608a9e9b137dea944) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "5" socket
+ ROMX_LOAD( "cc-8m.9a", 0x200002, 0x80000, CRC(d4acc53a) SHA1(d03282ebbde362e679cc97f772aa9baf163d7606) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "7" socket
+ ROMX_LOAD( "cc-2m.8a", 0x200004, 0x80000, CRC(0c69f151) SHA1(a170b8e568439e4a26d84376d53560e4248e4e2f) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "6" socket
+ ROMX_LOAD( "cc-4m.10a", 0x200006, 0x80000, CRC(1f9ebb97) SHA1(023d00cb7b6a52d1b29e2052abe08ef34cb0c55c) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "8" socket
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "cc_09.11a", 0x00000, 0x08000, CRC(698e8b58) SHA1(b7a3d905a7ed2c430426ca2e185e3d7e75e752a1) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "cc_18.11c", 0x00000, 0x20000, CRC(6de2c2db) SHA1(9a1eaba8d104f59a5e61f89679bb5de0c0c64364) )
+ ROM_LOAD( "cc_19.12c", 0x20000, 0x20000, CRC(b99091ae) SHA1(b19197c7ad3aeaf5f41c26bf853b0c9b502ecfca) )
+
+ 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( "cc63b.1a", 0x0000, 0x0117, CRC(cae8f0f9) SHA1(eadbd45e184195b2d170cd71a68e5caed64b69f7) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "ccprg.11d", 0x0000, 0x0117, CRC(e1c225c4) SHA1(97146451ca9aa3cecd443cc6881151ed8df47fbf) ) // == ccprg1.11d
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) // == c632b.ic1
+ROM_END
+
+/* B-Board 91635B-2 */
+ROM_START( captcommu )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "ccu_23b.8f", 0x000000, 0x80000, CRC(03da44fd) SHA1(0bf382933b4b44082bbaf63e96acd83ab8808a34) )
+ ROM_LOAD16_WORD_SWAP( "ccu_22c.7f", 0x080000, 0x80000, CRC(9b82a052) SHA1(8247fe45fea8c47072a66d6707202bcdb8c62923) )
+ ROM_LOAD16_BYTE( "ccu_24b.9e", 0x100000, 0x20000, CRC(84ff99b2) SHA1(5b02c91f3d0f8fb46db9596136b683f5a22dc15f) )
+ ROM_LOAD16_BYTE( "ccu_28b.9f", 0x100001, 0x20000, CRC(fbcec223) SHA1(daf484baece5b3a11f3dcabb758b8bdd736a1fb6) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cc-5m.3a", 0x000000, 0x80000, CRC(7261d8ba) SHA1(4b66292e42d20d0b79a756f0e445492ddb9c6bbc) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket
+ ROMX_LOAD( "cc-7m.5a", 0x000002, 0x80000, CRC(6a60f949) SHA1(87391ff92abaf3e451f70d789a938cffbd1fd222) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket
+ ROMX_LOAD( "cc-1m.4a", 0x000004, 0x80000, CRC(00637302) SHA1(2c554b59cceec2de67a9a4bc6281fe846d3c8cd2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket
+ ROMX_LOAD( "cc-3m.6a", 0x000006, 0x80000, CRC(cc87cf61) SHA1(7fb1f49494cc1a08aded20754bb0cefb1c323198) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket
+ ROMX_LOAD( "cc-6m.7a", 0x200000, 0x80000, CRC(28718bed) SHA1(dfdc4dd14dc609783bad94d608a9e9b137dea944) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "5" socket
+ ROMX_LOAD( "cc-8m.9a", 0x200002, 0x80000, CRC(d4acc53a) SHA1(d03282ebbde362e679cc97f772aa9baf163d7606) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "7" socket
+ ROMX_LOAD( "cc-2m.8a", 0x200004, 0x80000, CRC(0c69f151) SHA1(a170b8e568439e4a26d84376d53560e4248e4e2f) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "6" socket
+ ROMX_LOAD( "cc-4m.10a", 0x200006, 0x80000, CRC(1f9ebb97) SHA1(023d00cb7b6a52d1b29e2052abe08ef34cb0c55c) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "8" socket
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "ccu_09.11a", 0x00000, 0x08000, CRC(698e8b58) SHA1(b7a3d905a7ed2c430426ca2e185e3d7e75e752a1) ) // == cc_09.11a
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "ccu_18.11c", 0x00000, 0x20000, CRC(6de2c2db) SHA1(9a1eaba8d104f59a5e61f89679bb5de0c0c64364) ) // == cc_18.11c
+ ROM_LOAD( "ccu_19.12c", 0x20000, 0x20000, CRC(b99091ae) SHA1(b19197c7ad3aeaf5f41c26bf853b0c9b502ecfca) ) // == cc_19.12c
+
+ 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( "cc63b.1a", 0x0000, 0x0117, CRC(cae8f0f9) SHA1(eadbd45e184195b2d170cd71a68e5caed64b69f7) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "ccprg1.11d", 0x0000, 0x0117, CRC(e1c225c4) SHA1(97146451ca9aa3cecd443cc6881151ed8df47fbf) ) /* seen the same pcb with CCPRG.11D */
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) // == c632b.ic1
+ROM_END
+
+/* B-Board 91634B-2 */
+ROM_START( captcommj )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "ccj_23f.8f", 0x000000, 0x80000, CRC(5b482b62) SHA1(c871aa1eb9ecc117c3079995d1f5212193bd2e12) )
+ ROM_LOAD16_WORD_SWAP( "ccj_22f.7f", 0x080000, 0x80000, CRC(0fd34195) SHA1(fb2b9a53af43507f13c4f94eaebbf0b538b2e754) ) // == cc_22f.7f
+ ROM_LOAD16_BYTE( "ccj_24f.9e", 0x100000, 0x20000, CRC(3a794f25) SHA1(7f3722a4ef0c1d7acb73e6bac9dd6ae7b35e6374) ) // == cc_24f.9e
+ ROM_LOAD16_BYTE( "ccj_28f.9f", 0x100001, 0x20000, CRC(fc3c2906) SHA1(621c3b79b6fdea1665bb316eb539e5916e890656) ) // == cc_28f.9f
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cc_01.3a", 0x000000, 0x80000, CRC(7261d8ba) SHA1(4b66292e42d20d0b79a756f0e445492ddb9c6bbc) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-5m.3a
+ ROMX_LOAD( "cc_02.4a", 0x000002, 0x80000, CRC(6a60f949) SHA1(87391ff92abaf3e451f70d789a938cffbd1fd222) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-7m.5a
+ ROMX_LOAD( "cc_03.5a", 0x000004, 0x80000, CRC(00637302) SHA1(2c554b59cceec2de67a9a4bc6281fe846d3c8cd2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-1m.4a
+ ROMX_LOAD( "cc_04.6a", 0x000006, 0x80000, CRC(cc87cf61) SHA1(7fb1f49494cc1a08aded20754bb0cefb1c323198) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-3m.6a
+ ROMX_LOAD( "cc_05.7a", 0x200000, 0x80000, CRC(28718bed) SHA1(dfdc4dd14dc609783bad94d608a9e9b137dea944) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-6m.7a
+ ROMX_LOAD( "cc_06.8a", 0x200002, 0x80000, CRC(d4acc53a) SHA1(d03282ebbde362e679cc97f772aa9baf163d7606) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-8m.9a
+ ROMX_LOAD( "cc_07.9a", 0x200004, 0x80000, CRC(0c69f151) SHA1(a170b8e568439e4a26d84376d53560e4248e4e2f) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-2m.8a
+ ROMX_LOAD( "cc_08.10a", 0x200006, 0x80000, CRC(1f9ebb97) SHA1(023d00cb7b6a52d1b29e2052abe08ef34cb0c55c) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-4m.10a
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "ccj_09.12a", 0x00000, 0x08000, CRC(698e8b58) SHA1(b7a3d905a7ed2c430426ca2e185e3d7e75e752a1) ) // == cc_09.11a
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "ccj_18.11c", 0x00000, 0x20000, CRC(6de2c2db) SHA1(9a1eaba8d104f59a5e61f89679bb5de0c0c64364) ) // == cc_18.11c
+ ROM_LOAD( "ccj_19.12c", 0x20000, 0x20000, CRC(b99091ae) SHA1(b19197c7ad3aeaf5f41c26bf853b0c9b502ecfca) ) // == cc_19.12c
+
+ 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( "cc63b.1a", 0x0000, 0x0117, CRC(cae8f0f9) SHA1(eadbd45e184195b2d170cd71a68e5caed64b69f7) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "ccprg1.11d", 0x0000, 0x0117, CRC(e1c225c4) SHA1(97146451ca9aa3cecd443cc6881151ed8df47fbf) ) /* seen the same pcb with CCPRG.11D */
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632b.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) /* seen the same pcb with C632.IC1 */
+ROM_END
+
+/* B-Board 91634B-2 */
+ROM_START( captcommjr1 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "ccj_23b.8f", 0x000000, 0x80000, CRC(e2a2d80e) SHA1(ec3c455974b77cd2e4357546aea4cb25690a041f) )
+ ROM_LOAD16_WORD_SWAP( "ccj_22c.7f", 0x080000, 0x80000, CRC(9b82a052) SHA1(8247fe45fea8c47072a66d6707202bcdb8c62923) ) // == ccu_22c.7f
+ ROM_LOAD16_BYTE( "ccj_24b.9e", 0x100000, 0x20000, CRC(84ff99b2) SHA1(5b02c91f3d0f8fb46db9596136b683f5a22dc15f) ) // == ccu_24b.9e
+ ROM_LOAD16_BYTE( "ccj_28b.9f", 0x100001, 0x20000, CRC(fbcec223) SHA1(daf484baece5b3a11f3dcabb758b8bdd736a1fb6) ) // == ccu_28b.9f
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cc_01.3a", 0x000000, 0x80000, CRC(7261d8ba) SHA1(4b66292e42d20d0b79a756f0e445492ddb9c6bbc) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-5m.3a
+ ROMX_LOAD( "cc_02.4a", 0x000002, 0x80000, CRC(6a60f949) SHA1(87391ff92abaf3e451f70d789a938cffbd1fd222) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-7m.5a
+ ROMX_LOAD( "cc_03.5a", 0x000004, 0x80000, CRC(00637302) SHA1(2c554b59cceec2de67a9a4bc6281fe846d3c8cd2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-1m.4a
+ ROMX_LOAD( "cc_04.6a", 0x000006, 0x80000, CRC(cc87cf61) SHA1(7fb1f49494cc1a08aded20754bb0cefb1c323198) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-3m.6a
+ ROMX_LOAD( "cc_05.7a", 0x200000, 0x80000, CRC(28718bed) SHA1(dfdc4dd14dc609783bad94d608a9e9b137dea944) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-6m.7a
+ ROMX_LOAD( "cc_06.8a", 0x200002, 0x80000, CRC(d4acc53a) SHA1(d03282ebbde362e679cc97f772aa9baf163d7606) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-8m.9a
+ ROMX_LOAD( "cc_07.9a", 0x200004, 0x80000, CRC(0c69f151) SHA1(a170b8e568439e4a26d84376d53560e4248e4e2f) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-2m.8a
+ ROMX_LOAD( "cc_08.10a", 0x200006, 0x80000, CRC(1f9ebb97) SHA1(023d00cb7b6a52d1b29e2052abe08ef34cb0c55c) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-4m.10a
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "ccj_09.12a", 0x00000, 0x08000, CRC(698e8b58) SHA1(b7a3d905a7ed2c430426ca2e185e3d7e75e752a1) ) // == cc_09.11a
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "ccj_18.11c", 0x00000, 0x20000, CRC(6de2c2db) SHA1(9a1eaba8d104f59a5e61f89679bb5de0c0c64364) ) // == cc_18.11c
+ ROM_LOAD( "ccj_19.12c", 0x20000, 0x20000, CRC(b99091ae) SHA1(b19197c7ad3aeaf5f41c26bf853b0c9b502ecfca) ) // == cc_19.12c
+
+ 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( "cc63b.1a", 0x0000, 0x0117, CRC(cae8f0f9) SHA1(eadbd45e184195b2d170cd71a68e5caed64b69f7) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "ccprg.11d", 0x0000, 0x0117, CRC(e1c225c4) SHA1(97146451ca9aa3cecd443cc6881151ed8df47fbf) ) // == ccprg1.11d
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) // == c632b.ic1
+ROM_END
+
+/* Captain Commando bootleg
+ - there are 2 dumps of this, one has bad (half size) gfx roms tho, otherwise identical
+
+ROMs from a Captain Commando bootleg PCB
+
+Large single PCB containing.....
+68000 @ 10MHz
+Z80 @ 3.579545MHz
+YM2151 @ 3.579545MHz
+M6295 @ 1MHz (16/16), pin 7 HIGH
+xtals 10MHz, 3.579545MHz, 16MHz
+8-position DSWs x3
+6116 (2kx8) SRAM x6
+62256 (32kx8) SRAM x6
+681000 (128kx8) SRAM x2
+a few PALs
+LOTS of logic
+no special chips
+no custom chips
+no PLD/CPLD/FPGA
+no PROMs
+
+*/
+
+ROM_START( captcommb )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "25.bin", 0x000000, 0x80000, CRC(cb71ed7a) SHA1(84f76b4861a3c7a59e67f38777f2d68749f19337) )
+ ROM_LOAD16_BYTE( "27.bin", 0x000001, 0x80000, CRC(47cb2e87) SHA1(8a990a3a122045b50dd73d2e7b02fe60ab9af0a3) )
+ ROM_LOAD16_BYTE( "24.bin", 0x100000, 0x40000, CRC(79794279) SHA1(5a43a4cef6653454ba9a81f2dd7f3f91c8a3354c) )
+ ROM_LOAD16_BYTE( "26.bin", 0x100001, 0x40000, CRC(b01077ba) SHA1(0698fbfca7beea8e6a676aa19fcbf5ddea3defb1) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "c91e-01.bin", 0x000000, 0x40000, CRC(f863071c) SHA1(c5154c4001f8e447623f9d71bf3e68a16f039e8f), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000004, 0x40000)
+ ROM_CONTINUE( 0x200000, 0x40000)
+ ROM_CONTINUE( 0x200004, 0x40000)
+ ROMX_LOAD( "c91e-02.bin", 0x000001, 0x40000, CRC(4b03c308) SHA1(d28d3ebba2571bea56b057cb3e09315a17d78b42), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000005, 0x40000)
+ ROM_CONTINUE( 0x200001, 0x40000)
+ ROM_CONTINUE( 0x200005, 0x40000)
+ ROMX_LOAD( "c91e-03.bin", 0x000002, 0x40000, CRC(3383ea96) SHA1(2a583d87c6d80919c97640f6f2e756cecc3e38ec), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000006, 0x40000)
+ ROM_CONTINUE( 0x200002, 0x40000)
+ ROM_CONTINUE( 0x200006, 0x40000)
+ ROMX_LOAD( "c91e-04.bin", 0x000003, 0x40000, CRC(b8e1f4cf) SHA1(6686df700c7ce49fe4ac7007aa4d622645e0e348), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000007, 0x40000)
+ ROM_CONTINUE( 0x200003, 0x40000)
+ ROM_CONTINUE( 0x200007, 0x40000)
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "l.bin", 0x00000, 0x08000, CRC(698e8b58) SHA1(b7a3d905a7ed2c430426ca2e185e3d7e75e752a1) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "c91e-05.bin", 0x00000, 0x40000, CRC(096115fb) SHA1(b496550f61b3d4b54ba43522d31efd0b09057493))
+ROM_END
+
+/* B-Board 91635B-2 */
+ROM_START( knights )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "kr_23e.8f", 0x00000, 0x80000, CRC(1b3997eb) SHA1(724b68eff319fcdf0dd3bc1eb6662996c1f6ecd9) )
+ ROM_LOAD16_WORD_SWAP( "kr_22.7f", 0x80000, 0x80000, CRC(d0b671a9) SHA1(9865472c5fc3f617345e23b5de5a9ba177945b5a) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "kr-5m.3a", 0x000000, 0x80000, CRC(9e36c1a4) SHA1(772daae74e119371dfb76fde9775bda78a8ba125) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket
+ ROMX_LOAD( "kr-7m.5a", 0x000002, 0x80000, CRC(c5832cae) SHA1(a188cf401cd3a2909b377d3059f14d22ec3b0643) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket
+ ROMX_LOAD( "kr-1m.4a", 0x000004, 0x80000, CRC(f095be2d) SHA1(0427d1574062f277a9d04440019d5638b05de561) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket
+ ROMX_LOAD( "kr-3m.6a", 0x000006, 0x80000, CRC(179dfd96) SHA1(b1844e69da7ab13474da569978d5b47deb8eb2be) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket
+ ROMX_LOAD( "kr-6m.7a", 0x200000, 0x80000, CRC(1f4298d2) SHA1(4b162a7f649b0bcd676f8ca0c5eee9a1250d6452) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "5" socket
+ ROMX_LOAD( "kr-8m.9a", 0x200002, 0x80000, CRC(37fa8751) SHA1(b88b39d1f08621f15a5620095aef998346fa9891) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "7" socket
+ ROMX_LOAD( "kr-2m.8a", 0x200004, 0x80000, CRC(0200bc3d) SHA1(c900b1be2b4e49b951e5c1e3fd1e19d21b82986e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "6" socket
+ ROMX_LOAD( "kr-4m.10a", 0x200006, 0x80000, CRC(0bb2b4e7) SHA1(983b800925d58e4aeb4e5105f93ed5faf66d009c) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "8" socket
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "kr_09.11a", 0x00000, 0x08000, CRC(5e44d9ee) SHA1(47a7503321be8d52b5c44af838e3bb82ee15a415) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "kr_18.11c", 0x00000, 0x20000, CRC(da69d15f) SHA1(9616207e693bae85705f786cef60b9f6951b5067) )
+ ROM_LOAD( "kr_19.12c", 0x20000, 0x20000, CRC(bfc654e9) SHA1(01b3d92e4dedf55ea3933d387c7ddb9ba2549773) )
+
+ 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( "kr63b.1a", 0x0000, 0x0117, CRC(fd5b6522) SHA1(5e6ebb2d736415402920a30d331d4b6dab557e5e) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 91635B-2 */
+ROM_START( knightsu )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "kr_23u.8f", 0x00000, 0x80000, CRC(252bc2ba) SHA1(4f4901c253bd64bbe68ea01994ae663fe2ccd056) )
+ ROM_LOAD16_WORD_SWAP( "kr_22.7f", 0x80000, 0x80000, CRC(d0b671a9) SHA1(9865472c5fc3f617345e23b5de5a9ba177945b5a) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "kr-5m.3a", 0x000000, 0x80000, CRC(9e36c1a4) SHA1(772daae74e119371dfb76fde9775bda78a8ba125) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket
+ ROMX_LOAD( "kr-7m.5a", 0x000002, 0x80000, CRC(c5832cae) SHA1(a188cf401cd3a2909b377d3059f14d22ec3b0643) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket
+ ROMX_LOAD( "kr-1m.4a", 0x000004, 0x80000, CRC(f095be2d) SHA1(0427d1574062f277a9d04440019d5638b05de561) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket
+ ROMX_LOAD( "kr-3m.6a", 0x000006, 0x80000, CRC(179dfd96) SHA1(b1844e69da7ab13474da569978d5b47deb8eb2be) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket
+ ROMX_LOAD( "kr-6m.7a", 0x200000, 0x80000, CRC(1f4298d2) SHA1(4b162a7f649b0bcd676f8ca0c5eee9a1250d6452) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "5" socket
+ ROMX_LOAD( "kr-8m.9a", 0x200002, 0x80000, CRC(37fa8751) SHA1(b88b39d1f08621f15a5620095aef998346fa9891) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "7" socket
+ ROMX_LOAD( "kr-2m.8a", 0x200004, 0x80000, CRC(0200bc3d) SHA1(c900b1be2b4e49b951e5c1e3fd1e19d21b82986e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "6" socket
+ ROMX_LOAD( "kr-4m.10a", 0x200006, 0x80000, CRC(0bb2b4e7) SHA1(983b800925d58e4aeb4e5105f93ed5faf66d009c) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "8" socket
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "kr_09.11a", 0x00000, 0x08000, CRC(5e44d9ee) SHA1(47a7503321be8d52b5c44af838e3bb82ee15a415) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "kr_18.11c", 0x00000, 0x20000, CRC(da69d15f) SHA1(9616207e693bae85705f786cef60b9f6951b5067) )
+ ROM_LOAD( "kr_19.12c", 0x20000, 0x20000, CRC(bfc654e9) SHA1(01b3d92e4dedf55ea3933d387c7ddb9ba2549773) )
+
+ 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( "kr63b.1a", 0x0000, 0x0117, CRC(fd5b6522) SHA1(5e6ebb2d736415402920a30d331d4b6dab557e5e) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 91634B-2 */
+ROM_START( knightsj )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "kr_23j.8f", 0x00000, 0x80000, CRC(eae7417f) SHA1(2ec808265a9a231922e2397d7e8f3c3841a90859) )
+ ROM_LOAD16_WORD_SWAP( "kr_22.7f", 0x80000, 0x80000, CRC(d0b671a9) SHA1(9865472c5fc3f617345e23b5de5a9ba177945b5a) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "kr_01.3a", 0x000000, 0x80000, CRC(9e36c1a4) SHA1(772daae74e119371dfb76fde9775bda78a8ba125) , ROM_GROUPWORD | ROM_SKIP(6) ) // == kr-5m.3a
+ ROMX_LOAD( "kr_02.4a", 0x000002, 0x80000, CRC(c5832cae) SHA1(a188cf401cd3a2909b377d3059f14d22ec3b0643) , ROM_GROUPWORD | ROM_SKIP(6) ) // == kr-7m.5a
+ ROMX_LOAD( "kr_03.5a", 0x000004, 0x80000, CRC(f095be2d) SHA1(0427d1574062f277a9d04440019d5638b05de561) , ROM_GROUPWORD | ROM_SKIP(6) ) // == kr-1m.4a
+ ROMX_LOAD( "kr_04.6a", 0x000006, 0x80000, CRC(179dfd96) SHA1(b1844e69da7ab13474da569978d5b47deb8eb2be) , ROM_GROUPWORD | ROM_SKIP(6) ) // == kr-3m.6a
+ ROMX_LOAD( "kr_05.7a", 0x200000, 0x80000, CRC(1f4298d2) SHA1(4b162a7f649b0bcd676f8ca0c5eee9a1250d6452) , ROM_GROUPWORD | ROM_SKIP(6) ) // == kr-6m.7a
+ ROMX_LOAD( "kr_06.8a", 0x200002, 0x80000, CRC(37fa8751) SHA1(b88b39d1f08621f15a5620095aef998346fa9891) , ROM_GROUPWORD | ROM_SKIP(6) ) // == kr-8m.9a
+ ROMX_LOAD( "kr_07.9a", 0x200004, 0x80000, CRC(0200bc3d) SHA1(c900b1be2b4e49b951e5c1e3fd1e19d21b82986e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == kr-2m.8a
+ ROMX_LOAD( "kr_08.10a", 0x200006, 0x80000, CRC(0bb2b4e7) SHA1(983b800925d58e4aeb4e5105f93ed5faf66d009c) , ROM_GROUPWORD | ROM_SKIP(6) ) // == kr-4m.10a
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "kr_09.12a", 0x00000, 0x08000, CRC(5e44d9ee) SHA1(47a7503321be8d52b5c44af838e3bb82ee15a415) ) // == kr_09.11a
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "kr_18.11c", 0x00000, 0x20000, CRC(da69d15f) SHA1(9616207e693bae85705f786cef60b9f6951b5067) )
+ ROM_LOAD( "kr_19.12c", 0x20000, 0x20000, CRC(bfc654e9) SHA1(01b3d92e4dedf55ea3933d387c7ddb9ba2549773) )
+
+ 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( "kr63b.1a", 0x0000, 0x0117, CRC(fd5b6522) SHA1(5e6ebb2d736415402920a30d331d4b6dab557e5e) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 89625B-1 */
+/* Note that this set is equivalent to knightsj, but each 4Mbit EPROM is replaced by 4 1Mbit EPROMs. */
+ROM_START( knightsja )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "krj_36.12f", 0x00000, 0x20000, CRC(ad3d1a8e) SHA1(327f9e818f1500836fc549afeffbb2a3c5aafe8c) ) // == kr_23j.8f
+ ROM_LOAD16_BYTE( "krj_42.12h", 0x00001, 0x20000, CRC(e694a491) SHA1(5a4d27c879c10032c49880019501de3e45ab1b35) ) // == kr_23j.8f
+ ROM_LOAD16_BYTE( "krj_37.13f", 0x40000, 0x20000, CRC(85596094) SHA1(74ad294de63aa6b60aa8b885c45c3d41a07ce19a) ) // == kr_23j.8f
+ ROM_LOAD16_BYTE( "krj_43.13h", 0x40001, 0x20000, CRC(9198bf8f) SHA1(aa3610600286ab25ce81705ea1319d42e7cc7f6c) ) // == kr_23j.8f
+ ROM_LOAD16_BYTE( "kr_34.10f", 0x80000, 0x20000, CRC(fe6eb08d) SHA1(a67ca33895ff7f41e8521ff7b39e629048d04d30) ) // == kr_22.7f
+ ROM_LOAD16_BYTE( "kr_40.10h", 0x80001, 0x20000, CRC(1172806d) SHA1(5ad08bf9bada036d89a55f5a542ee1db22df45b2) ) // == kr_22.7f
+ ROM_LOAD16_BYTE( "kr_35.11f", 0xc0000, 0x20000, CRC(f854b020) SHA1(3d8bd0ab5e0fa2da3c868b591edff5c66f1f08ed) ) // == kr_22.7f
+ ROM_LOAD16_BYTE( "kr_41.11h", 0xc0001, 0x20000, CRC(eb52e78d) SHA1(b9462c9d97848a6dc4d55475053824df8c9e7f02) ) // == kr_22.7f
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "kr_09.4b", 0x000000, 0x20000, CRC(08b76e10) SHA1(b18833c4794ef59f8eaf7aef4d62790c3fec9d4d) , ROM_SKIP(7) ) // == kr_01.3a
+ ROMX_LOAD( "kr_01.4a", 0x000001, 0x20000, CRC(40cecf5c) SHA1(a628199e1808664c403d0de183d1c6ae01670c57) , ROM_SKIP(7) ) // == kr_01.3a
+ ROMX_LOAD( "kr_13.9b", 0x000002, 0x20000, CRC(435aaa03) SHA1(60af266dccab12220d7efce68887b64826aba37d) , ROM_SKIP(7) ) // == kr_02.4a
+ ROMX_LOAD( "kr_05.9a", 0x000003, 0x20000, CRC(5b8a615b) SHA1(42aebdb7f338eac9a29380cb0b7553f0d3eaac04) , ROM_SKIP(7) ) // == kr_02.4a
+ ROMX_LOAD( "kr_24.5e", 0x000004, 0x20000, CRC(de65153e) SHA1(f28fcde0d08634d036d07c2a699026007d19718f) , ROM_SKIP(7) ) // == kr_03.5a
+ ROMX_LOAD( "kr_17.5c", 0x000005, 0x20000, CRC(b171c968) SHA1(cdbd7b0dc9fd2f3f027796d8f5cabf0a92a11941) , ROM_SKIP(7) ) // == kr_03.5a
+ ROMX_LOAD( "kr_38.8h", 0x000006, 0x20000, CRC(f4466bf4) SHA1(86e1ffc354b189504ca8f96143a62344a530d267) , ROM_SKIP(7) ) // == kr_04.6a
+ ROMX_LOAD( "kr_32.8f", 0x000007, 0x20000, CRC(87380ddd) SHA1(01e864060adcdafad987c5758db593525faed589) , ROM_SKIP(7) ) // == kr_04.6a
+ ROMX_LOAD( "kr_10.5b", 0x100000, 0x20000, CRC(37006d66) SHA1(0efec364ed5b0e121023bc3424d51241a4b208e0) , ROM_SKIP(7) ) // == kr_01.3a
+ ROMX_LOAD( "kr_02.5a", 0x100001, 0x20000, CRC(b54612e3) SHA1(1d33cf99fdaf3bf5c8d212d1a7c71f085c6c2cd4) , ROM_SKIP(7) ) // == kr_01.3a
+ ROMX_LOAD( "kr_14.10b", 0x100002, 0x20000, CRC(0ae88766) SHA1(5e3954b51b030d6e7cabd8f94cb849e963cc7d52) , ROM_SKIP(7) ) // == kr_02.4a
+ ROMX_LOAD( "kr_06.10a", 0x100003, 0x20000, CRC(ecb1a09a) SHA1(bbd96260774f52e50377ad020fc94d1b120f0a37) , ROM_SKIP(7) ) // == kr_02.4a
+ ROMX_LOAD( "kr_25.7e", 0x100004, 0x20000, CRC(9aace189) SHA1(95332a14dbe9d24a7e294a26530913b8cb5237f2) , ROM_SKIP(7) ) // == kr_03.5a
+ ROMX_LOAD( "kr_18.7c", 0x100005, 0x20000, CRC(09fa14a5) SHA1(36e7412a317d5f8b528d914d7e6c3c1872eb8533) , ROM_SKIP(7) ) // == kr_03.5a
+ ROMX_LOAD( "kr_39.9h", 0x100006, 0x20000, CRC(fd8a9aeb) SHA1(a38ea74de95a78fc72c6ad165157e4c22aaa5aed) , ROM_SKIP(7) ) // == kr_04.6a
+ ROMX_LOAD( "kr_33.9f", 0x100007, 0x20000, CRC(11803e95) SHA1(71603ba4a85967dd434d8499738014a9227d1d26) , ROM_SKIP(7) ) // == kr_04.6a
+ ROMX_LOAD( "kr_11.7b", 0x200000, 0x20000, CRC(a967ceb3) SHA1(43cdc0e0114f7ccedc7db5cd49b9041ed1a2614f) , ROM_SKIP(7) ) // == kr_05.7a
+ ROMX_LOAD( "kr_03.7a", 0x200001, 0x20000, CRC(ea10db07) SHA1(e537f3983ac32abcef06fa45afe51f82c87bfa86) , ROM_SKIP(7) ) // == kr_05.7a
+ ROMX_LOAD( "kr_15.11b", 0x200002, 0x20000, CRC(8140b83b) SHA1(e9cec517d84aa688d60f4201bcee00dbcdd44798) , ROM_SKIP(7) ) // == kr_06.8a
+ ROMX_LOAD( "kr_07.11a", 0x200003, 0x20000, CRC(6af10648) SHA1(b1d6c908496b1197e23571f5230f017502d5018c) , ROM_SKIP(7) ) // == kr_06.8a
+ ROMX_LOAD( "kr_26.8e", 0x200004, 0x20000, CRC(8865d86b) SHA1(a79b528d2f94ee350a39eb59860189809267cfad) , ROM_SKIP(7) ) // == kr_07.9a
+ ROMX_LOAD( "kr_19.8c", 0x200005, 0x20000, CRC(029f4abe) SHA1(e0f02d18e2a51eb02cabe507fbe77031ee3e67e7) , ROM_SKIP(7) ) // == kr_07.9a
+ ROMX_LOAD( "kr_28.10e", 0x200006, 0x20000, CRC(5f84f92f) SHA1(77b254e8159024490497533073fe302a82531835) , ROM_SKIP(7) ) // == kr_08.10a
+ ROMX_LOAD( "kr_21.10c", 0x200007, 0x20000, CRC(01b35065) SHA1(8a98860ec453ac88a3c0fc19c117bd4131d0c97c) , ROM_SKIP(7) ) // == kr_08.10a
+ ROMX_LOAD( "kr_12.8b", 0x300000, 0x20000, CRC(03d945b1) SHA1(88588891422247e6ab42f35a1b91a5801b8fd5b0) , ROM_SKIP(7) ) // == kr_05.7a
+ ROMX_LOAD( "kr_04.8a", 0x300001, 0x20000, CRC(e30c8388) SHA1(aa519f298f4156b339eb81767ca585e62dc9f4b5) , ROM_SKIP(7) ) // == kr_05.7a
+ ROMX_LOAD( "kr_16.12b", 0x300002, 0x20000, CRC(40c39d1b) SHA1(578d081f5e1bbfdc30b286cdd5165474b3ed79f7) , ROM_SKIP(7) ) // == kr_06.8a
+ ROMX_LOAD( "kr_08.12a", 0x300003, 0x20000, CRC(d310c9e8) SHA1(e23a4b318e7d3d6ea3bc6dd4509f49cd656d3d63) , ROM_SKIP(7) ) // == kr_06.8a
+ ROMX_LOAD( "kr_27.9e", 0x300004, 0x20000, CRC(3e041444) SHA1(7f84158bf2466625ff50befed7e3008b8fe09f70) , ROM_SKIP(7) ) // == kr_07.9a
+ ROMX_LOAD( "kr_20.9c", 0x300005, 0x20000, CRC(bd4bffb8) SHA1(b8f1162427a46ca9d2833390edc5723d28817a08) , ROM_SKIP(7) ) // == kr_07.9a
+ ROMX_LOAD( "kr_29.11e", 0x300006, 0x20000, CRC(1387a076) SHA1(5fe32ee8e8557c5bc6c865b2054f3c6c2a1eae7d) , ROM_SKIP(7) ) // == kr_08.10a
+ ROMX_LOAD( "kr_22.11c", 0x300007, 0x20000, CRC(fd351922) SHA1(7e08a9b23bf524d5fd566d81745aee1cd3a0f026) , ROM_SKIP(7) ) // == kr_08.10a
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "kr_23.13b", 0x00000, 0x08000, CRC(5e44d9ee) SHA1(47a7503321be8d52b5c44af838e3bb82ee15a415) ) // == kr_09.12a
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "kr_30.12c", 0x00000, 0x20000, CRC(da69d15f) SHA1(9616207e693bae85705f786cef60b9f6951b5067) ) // == kr_18.11c
+ ROM_LOAD( "kr_31.13c", 0x20000, 0x20000, CRC(bfc654e9) SHA1(01b3d92e4dedf55ea3933d387c7ddb9ba2549773) ) // == kr_19.12c
+
+ 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( "kr22b.1a", 0x0000, 0x0117, NO_DUMP )
+ ROM_LOAD( "lwio.12e", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 91635B-2 */
+ROM_START( sf2ce )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "s92e_23b.8f", 0x000000, 0x80000, CRC(0aaa1a3a) SHA1(774a2b52f7c1876c0e10d8d57a0850ad2d016cf6) )
+ ROM_LOAD16_WORD_SWAP( "s92_22b.7f", 0x080000, 0x80000, CRC(2bbe15ed) SHA1(a8e2edef62fa99c5ef701b28bfb6bc42f3af183d) )
+ ROM_LOAD16_WORD_SWAP( "s92_21a.6f", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ 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( "s9263b.1a", 0x0000, 0x0117, CRC(0a7ecfe0) SHA1(f75e7eed4604fcf68273197fe3dd7f0d7a313ada) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 91635B-2 */
+ROM_START( sf2ceea )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "s92e_23a.8f", 0x000000, 0x80000, CRC(3f846b74) SHA1(c8d7a01b626771870123f1663a01a81f9c8fe582) )
+ ROM_LOAD16_WORD_SWAP( "s92_22a.7f", 0x080000, 0x80000, CRC(99f1cca4) SHA1(64111eba81d743fc3fd51d7a89cd0b2eefcc900d) )
+ ROM_LOAD16_WORD_SWAP( "s92_21a.6f", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ 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( "s9263b.1a", 0x0000, 0x0117, CRC(0a7ecfe0) SHA1(f75e7eed4604fcf68273197fe3dd7f0d7a313ada) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 91635B-2 */
+ROM_START( sf2ceua )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "s92u_23a.8f", 0x000000, 0x80000, CRC(ac44415b) SHA1(218f8b1886eb72b8547127042b5ae47600e18944) )
+ ROM_LOAD16_WORD_SWAP( "s92_22a.7f", 0x080000, 0x80000, CRC(99f1cca4) SHA1(64111eba81d743fc3fd51d7a89cd0b2eefcc900d) )
+ ROM_LOAD16_WORD_SWAP( "s92_21a.6f", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ 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( "s9263b.1a", 0x0000, 0x0117, CRC(0a7ecfe0) SHA1(f75e7eed4604fcf68273197fe3dd7f0d7a313ada) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 91635B-2 */
+ROM_START( sf2ceub )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "s92u_23b.8f", 0x000000, 0x80000, CRC(996a3015) SHA1(fdf45da54b1c14478a60f2b86e37ffe32a98b135) )
+ ROM_LOAD16_WORD_SWAP( "s92_22b.7f", 0x080000, 0x80000, CRC(2bbe15ed) SHA1(a8e2edef62fa99c5ef701b28bfb6bc42f3af183d) )
+ ROM_LOAD16_WORD_SWAP( "s92_21a.6f", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ 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( "s9263b.1a", 0x0000, 0x0117, CRC(0a7ecfe0) SHA1(f75e7eed4604fcf68273197fe3dd7f0d7a313ada) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 91635B-2 */
+ROM_START( sf2ceuc )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "s92u_23c.8f", 0x000000, 0x80000, CRC(0a8b6aa2) SHA1(a19871271172119e1cf1ff47700bb1917b08514b) )
+ ROM_LOAD16_WORD_SWAP( "s92_22c.7f", 0x080000, 0x80000, CRC(5fd8630b) SHA1(f0ef9c5ab91a4b421fb4b1747eef99c964c15de3) )
+ ROM_LOAD16_WORD_SWAP( "s92_21a.6f", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ 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( "s9263b.1a", 0x0000, 0x0117, CRC(0a7ecfe0) SHA1(f75e7eed4604fcf68273197fe3dd7f0d7a313ada) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 91634B-2 */
+ROM_START( sf2ceja )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "s92j_23a.8f", 0x000000, 0x80000, CRC(4f42bb5a) SHA1(59d0587c554e06ea45d4092ea4299ff086509d4b) )
+ ROM_LOAD16_WORD_SWAP( "s92j_22a.7f", 0x080000, 0x80000, CRC(c4f64bcd) SHA1(262c0419bf727da80c2ac52b877a19276d9aac3c) )
+ ROM_LOAD16_WORD_SWAP( "s92_21a.6f", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92_01.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-1m.3a
+ ROMX_LOAD( "s92_02.4a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-3m.5a
+ ROMX_LOAD( "s92_03.5a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-2m.4a
+ ROMX_LOAD( "s92_04.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-4m.6a
+ ROMX_LOAD( "s92_05.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-5m.7a
+ ROMX_LOAD( "s92_06.8a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-7m.9a
+ ROMX_LOAD( "s92_07.9a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-6m.8a
+ ROMX_LOAD( "s92_08.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-8m.10a
+ ROMX_LOAD( "s92_10.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-10m.3c
+ ROMX_LOAD( "s92_11.4c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-12m.5c
+ ROMX_LOAD( "s92_12.5c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-11m.4c
+ ROMX_LOAD( "s92_13.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-13m.6c
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.12a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) ) // == s92_09.11a
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ 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( "s9263b.1a", 0x0000, 0x0117, CRC(0a7ecfe0) SHA1(f75e7eed4604fcf68273197fe3dd7f0d7a313ada) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 91634B-2 */
+ROM_START( sf2cejb )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "s92j_23b.8f", 0x000000, 0x80000, CRC(140876c5) SHA1(304630e6d8bae9f8d29090e05f7e013c7dafe9cc) )
+ ROM_LOAD16_WORD_SWAP( "s92j_22b.7f", 0x080000, 0x80000, CRC(2fbb3bfe) SHA1(e364564a12022730c2c0d0e8fd435e2c30ef9410) )
+ ROM_LOAD16_WORD_SWAP( "s92_21a.6f", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) ) // could be s92j_21a.6f
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92_01.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-1m.3a
+ ROMX_LOAD( "s92_02.4a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-3m.5a
+ ROMX_LOAD( "s92_03.5a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-2m.4a
+ ROMX_LOAD( "s92_04.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-4m.6a
+ ROMX_LOAD( "s92_05.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-5m.7a
+ ROMX_LOAD( "s92_06.8a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-7m.9a
+ ROMX_LOAD( "s92_07.9a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-6m.8a
+ ROMX_LOAD( "s92_08.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-8m.10a
+ ROMX_LOAD( "s92_10.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-10m.3c
+ ROMX_LOAD( "s92_11.4c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-12m.5c
+ ROMX_LOAD( "s92_12.5c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-11m.4c
+ ROMX_LOAD( "s92_13.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-13m.6c
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.12a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) ) // == s92_09.11a
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ 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( "s9263b.1a", 0x0000, 0x0117, CRC(0a7ecfe0) SHA1(f75e7eed4604fcf68273197fe3dd7f0d7a313ada) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 91634B-2 */
+ROM_START( sf2cejc )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "s92j_23c.8f", 0x000000, 0x80000, CRC(f0120635) SHA1(5e4a9a4b0f65c6139e76ee4ffa02b9db245b1858) )
+ ROM_LOAD16_WORD_SWAP( "s92j_22c.7f", 0x080000, 0x80000, CRC(8c0b2ed6) SHA1(408db039b4dad72b41458723575ed5352b71e10b) )
+ ROM_LOAD16_WORD_SWAP( "s92j_21a.6f", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) ) // == s92_21a.6f
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92_01.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-1m.3a
+ ROMX_LOAD( "s92_02.4a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-3m.5a
+ ROMX_LOAD( "s92_03.5a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-2m.4a
+ ROMX_LOAD( "s92_04.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-4m.6a
+ ROMX_LOAD( "s92_05.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-5m.7a
+ ROMX_LOAD( "s92_06.8a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-7m.9a
+ ROMX_LOAD( "s92_07.9a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-6m.8a
+ ROMX_LOAD( "s92_08.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-8m.10a
+ ROMX_LOAD( "s92_10.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-10m.3c
+ ROMX_LOAD( "s92_11.4c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-12m.5c
+ ROMX_LOAD( "s92_12.5c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-11m.4c
+ ROMX_LOAD( "s92_13.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-13m.6c
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.12a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) ) // == s92_09.11a
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ 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( "s9263b.1a", 0x0000, 0x0117, CRC(0a7ecfe0) SHA1(f75e7eed4604fcf68273197fe3dd7f0d7a313ada) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 91635B-2 */
+ROM_START( sf2bhh )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "23", 0x000000, 0x40000, CRC(5cf63a9e) SHA1(af26165cacb4838572ddf1cd7a2ff22a5dddbf3c) ) // sldh
+ ROM_CONTINUE( 0x0c0000, 0x40000 )
+ ROM_LOAD16_WORD_SWAP( "22", 0x080000, 0x40000, CRC(3ed72bca) SHA1(5565aee82e6b4734c4c0d06a73d8141abb1e4119) ) // sldh
+ ROM_CONTINUE( 0x040000, 0x40000 )
+ ROM_LOAD16_WORD_SWAP( "s92_21a.6f", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ 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( "s9263b.1a", 0x0000, 0x0117, CRC(0a7ecfe0) SHA1(f75e7eed4604fcf68273197fe3dd7f0d7a313ada) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+ROM_START( sf2rb )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD( "sf2d__23.rom", 0x000000, 0x80000, CRC(450532b0) SHA1(14d5ff44ce97247ef4c42147157856d16c5fb4b8) )
+ ROM_LOAD16_WORD( "sf2d__22.rom", 0x080000, 0x80000, CRC(fe9d9cf5) SHA1(91afb25d8c0fd1a721f982cebf8fdf563fe11760) )
+ ROM_LOAD16_WORD_SWAP( "s92_21a.bin", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_10.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_11.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_13.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+ROM_END
+
+ROM_START( sf2rb2 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "27.bin", 0x000000, 0x20000, CRC(40296ecd) SHA1(6006b9bc7e2e8ccec47f87b51791d3c0512620df) )
+ ROM_LOAD16_BYTE( "31.bin", 0x000001, 0x20000, CRC(87954a41) SHA1(67225f180e1f954f0bebba49b618f793a973af14) )
+ ROM_LOAD16_BYTE( "26.bin", 0x040000, 0x20000, CRC(a6974195) SHA1(f7e0fd43bd75229d49d5c330820bdc5c3b11ab03) )
+ ROM_LOAD16_BYTE( "30.bin", 0x040001, 0x20000, CRC(8141fe32) SHA1(e6ea1ee331f674c64e63a776ad4e428f6081c79c) )
+ ROM_LOAD16_BYTE( "25.bin", 0x080000, 0x20000, CRC(9ef8f772) SHA1(3ee271413521cc2d6ac9544e401ff38eff8a1347) )
+ ROM_LOAD16_BYTE( "29.bin", 0x080001, 0x20000, CRC(7d9c479c) SHA1(a1195444caac5230a1f74f3444b024ceaf1d0667) )
+ ROM_LOAD16_BYTE( "24.bin", 0x0c0000, 0x20000, CRC(93579684) SHA1(9052b46f635cae7843e9d37a601db0189a89e0f9) )
+ ROM_LOAD16_BYTE( "28.bin", 0x0c0001, 0x20000, CRC(ff728865) SHA1(ad4522294ff2e02b594d960b45940a3e57a5d1ec) )
+ ROM_LOAD16_WORD_SWAP( "s92_21a.bin", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_10.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_11.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_13.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+ROM_END
+
+/* this rainbow set DOES NOT require a custom PLD to work, runs on standard board with roms replaced */
+ROM_START( sf2rb3 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "sf2_ce_rb.23", 0x000000, 0x80000, CRC(202f9e50) SHA1(8f0259ade1bc4df65abf4ad0961db24ca27e3f4b) )
+ ROM_LOAD16_WORD_SWAP( "sf2_ce_rb.22", 0x080000, 0x80000, CRC(145e5219) SHA1(0b1251ad817a395f37f6c9acee393c3fce07777a) )
+ ROM_LOAD16_WORD_SWAP( "s92_21a.bin", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_10.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_11.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_13.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+ROM_END
+
+ROM_START( sf2red )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "sf2red.23", 0x000000, 0x80000, CRC(40276abb) SHA1(a991661f5a1a3116445594bcfed3150e36971dd7) )
+ ROM_LOAD16_WORD_SWAP( "sf2red.22", 0x080000, 0x80000, CRC(18daf387) SHA1(1a9e4c04ca54e8b33f19dd7bedbe05a200249701) )
+ ROM_LOAD16_WORD_SWAP( "sf2red.21", 0x100000, 0x80000, CRC(52c486bb) SHA1(b7df7b10faa4c9a2f86ebf64cd63ac148d62dd09) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_10.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_11.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_13.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+ROM_END
+
+ROM_START( sf2v004 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "sf2v004.23", 0x000000, 0x80000, CRC(52d19f2c) SHA1(6a77b9244dc9b7d9a0ca8a642d4257cc944ac566) )
+ ROM_LOAD16_WORD_SWAP( "sf2v004.22", 0x080000, 0x80000, CRC(4b26fde7) SHA1(48e3aacbf9147f2374a93e10f945291c87f24855) )
+ ROM_LOAD16_WORD_SWAP( "sf2red.21", 0x100000, 0x80000, CRC(52c486bb) SHA1(b7df7b10faa4c9a2f86ebf64cd63ac148d62dd09) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_10.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_11.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_13.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+ROM_END
+
+ROM_START( sf2acc )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "sf2ca_23-c.bin", 0x000000, 0x80000, CRC(e7c8c5a6) SHA1(247fb38c041f4d516899db32545d8b4d8debc4cf) )
+ ROM_LOAD16_WORD_SWAP( "sf2ca_22-c.bin", 0x080000, 0x80000, CRC(99f1cca4) SHA1(64111eba81d743fc3fd51d7a89cd0b2eefcc900d) )
+ ROM_LOAD16_WORD_SWAP( "sf2ca_21-c.bin", 0x100000, 0x40000, CRC(cf7fcc8c) SHA1(47d338634dd72d1ef912fbdb8c1a7ae945ca1a5f) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_10.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_11.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_13.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+ROM_END
+
+
+
+ROM_START( sf2acca )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "23-c.8f", 0x000000, 0x80000, CRC(35f9517b) SHA1(0976870c65d69a6d8ca0232a48e042588a9ec5d8) )
+ ROM_LOAD16_WORD_SWAP( "22-c.7f", 0x080000, 0x80000, CRC(99f1cca4) SHA1(64111eba81d743fc3fd51d7a89cd0b2eefcc900d) )
+ ROM_LOAD16_WORD_SWAP( "21-c.6f", 0x100000, 0x80000, CRC(2ab2034f) SHA1(4dc90ba524e76529700945605e02068d49b56aba) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_10.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_11.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_13.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+ROM_END
+
+ROM_START( sf2accp2 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "sf2ca-23.bin", 0x000000, 0x80000, CRC(36c3ba2f) SHA1(a3ddc479b725ddb3521757c8efa7aed125004997) )
+ ROM_LOAD16_WORD_SWAP( "sf2ca-22.bin", 0x080000, 0x80000, CRC(0550453d) SHA1(f9efed86528dd10f142636278f098584d33ccde6) )
+ ROM_LOAD16_WORD_SWAP( "sf2ca-21.bin", 0x100000, 0x40000, CRC(4c1c43ba) SHA1(16abce268373eddd7c3b93fe8d44b200a8c140fe) )
+ /* ROM space ends at 13ffff, but the code checks 180ca6 and */
+ /* crashes if it isn't 0 - protection? */
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_10.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_11.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_13.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+ROM_END
+
+
+/*
+SF2' CE "bootleg"
+
+CPS1 motherboard (no dash)
+Original 88622-c-2 C board
+
+Bootleg B board with
+ PIC16c55 near PRG roms seem protected
+ 8 dipswith near both sound roms and gfx roms
+ 1,4,5,8 ON
+ 2,3,6,7 OFF
+
+Sound rom match various romset
+*/
+
+ROM_START( sf2ceblp )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+
+ ROM_LOAD16_BYTE( "prg31.bin", 0x00000, 0x20000, CRC(ea78f9b4) SHA1(967f84615f6ef4d046df3593d5ffce0d43a3ac64) )
+ ROM_LOAD16_BYTE( "prg36.bin", 0x00001, 0x20000, CRC(d30c263e) SHA1(6d8b13f82dde3237115306d91f37ac95b8238e0a) )
+ ROM_LOAD16_BYTE( "prg30.bin", 0x40000, 0x20000, CRC(005b54cc) SHA1(3d3d7742c11f31cc62d81931dc970cd1f4a26835) )
+ ROM_LOAD16_BYTE( "prg35.bin", 0x40001, 0x20000, CRC(c184d26d) SHA1(b1011e869d0b84c1ab609fcf193b46c7d9cc3b28) )
+ ROM_LOAD16_BYTE( "prg29.bin", 0x80000, 0x20000, CRC(524f5c55) SHA1(67adfd36bb325c4a6d3e1e5b668c4dc983ac0a62) )
+ ROM_LOAD16_BYTE( "prg34.bin", 0x80001, 0x20000, CRC(f06a12f2) SHA1(ddc431ce01392d4a7562760743abd9ea73b06cf3) )
+ ROM_LOAD16_BYTE( "prg28.bin", 0xc0000, 0x40000, CRC(b7ad5214) SHA1(17b05e0aa9a4eb5f1aaafe35fa029d2a9aea530d) )
+ ROM_LOAD16_BYTE( "prg33.bin", 0xc0001, 0x40000, CRC(6340b914) SHA1(443e37a06058548c8ce7a15ecd10a6635e69d09f) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "24.bin", 0x000000, 0x40000, CRC(a8b5633a) SHA1(6548a89d616910d06db126eb1a9c6b5979baff03) , ROM_SKIP(7) ) // sldh
+ ROMX_LOAD( "14.bin", 0x000001, 0x40000, CRC(5db24ca7) SHA1(0543e89174fecc866a08e0ecc7c31a6efca15da5) , ROM_SKIP(7) )
+ ROMX_LOAD( "26.bin", 0x000002, 0x40000, CRC(82e8e384) SHA1(a8849bdb97c496777ba87e8f1942585c0fc9a29b) , ROM_SKIP(7) ) // sldh
+ ROMX_LOAD( "16.bin", 0x000003, 0x40000, CRC(1fd98ad0) SHA1(c0edf8ad305d5f8ba72498024cacf28b08491a57) , ROM_SKIP(7) )
+ ROMX_LOAD( "20.bin", 0x000004, 0x40000, CRC(8d5d0045) SHA1(74691132c740cc28585ebe9469fa36fea28c1cef) , ROM_SKIP(7) )
+ ROMX_LOAD( "10.bin", 0x000005, 0x40000, CRC(eb48f7f2) SHA1(f1d269949a8e06434e2206842535d86a70bcf58f) , ROM_SKIP(7) )
+ ROMX_LOAD( "22.bin", 0x000006, 0x40000, CRC(4109d637) SHA1(f7b0961ae3053a0751749ab77f27503e03ae1e5b) , ROM_SKIP(7) )
+ ROMX_LOAD( "12.bin", 0x000007, 0x40000, CRC(5d21d8b3) SHA1(1e75a4bf8d750e0858d70a489b59b50839b8c720) , ROM_SKIP(7) )
+
+ ROMX_LOAD( "25.bin", 0x200000, 0x40000, CRC(72e923df) SHA1(f8db61f8a768fbf99a0be54af712aa19161978d1) , ROM_SKIP(7) ) // sldh
+ ROMX_LOAD( "15.bin", 0x200001, 0x40000, CRC(9a96be48) SHA1(c0a46aefba442196ead30d4f5de2b0370b1c03f0) , ROM_SKIP(7) )
+ ROMX_LOAD( "27.bin", 0x200002, 0x40000, CRC(4a3a8d09) SHA1(eaa7307963c7a5381a4d84a4ebcc483b55cc1411) , ROM_SKIP(7) ) // sldh
+ ROMX_LOAD( "17.bin", 0x200003, 0x40000, CRC(a917a922) SHA1(2186095f8473538756ca22dbdb2c68d17cbf24ab) , ROM_SKIP(7) )
+ ROMX_LOAD( "21.bin", 0x200004, 0x40000, CRC(55c2b455) SHA1(677ac8f988ea3c0564b2dd178ee2ab7077aeafc8) , ROM_SKIP(7) )
+ ROMX_LOAD( "11.bin", 0x200005, 0x40000, CRC(ff36859e) SHA1(7f5ab9daacfdb338913d6bca723efe3128dc931f) , ROM_SKIP(7) )
+ ROMX_LOAD( "23.bin", 0x200006, 0x40000, CRC(ef9c2d4d) SHA1(35c3ab5a3cc3ce2219b596c4c3e97d28b9cc2297) , ROM_SKIP(7) )
+ ROMX_LOAD( "13.bin", 0x200007, 0x40000, CRC(bc937c96) SHA1(772ff4e06093043f693729d8e94e7f8e3f8e866f) , ROM_SKIP(7) )
+
+ ROMX_LOAD( "6.bin", 0x400000, 0x40000, CRC(023baa18) SHA1(671600e629aff1cc161567ee4a5ceb2228731a36) , ROM_SKIP(7) )
+ ROMX_LOAD( "5.bin", 0x400001, 0x40000, CRC(a6ad6ef3) SHA1(c670931a98dfc6ca39d54d8cb8848421232d8c8c) , ROM_SKIP(7) )
+ ROMX_LOAD( "8.bin", 0x400002, 0x40000, CRC(26fb340c) SHA1(270455c10a0c7e4ba95a38ab7d815faedfe51fde) , ROM_SKIP(7) )
+ ROMX_LOAD( "7.bin", 0x400003, 0x40000, CRC(f56085ba) SHA1(ce8c33d7be271a501e770da5249778f62ca0e0a1) , ROM_SKIP(7) )
+ ROMX_LOAD( "1.bin", 0x400004, 0x40000, CRC(877b2b18) SHA1(36ebef5b534d2449b163df38b9a98f769c1d85ed) , ROM_SKIP(7) )
+ ROMX_LOAD( "2.bin", 0x400005, 0x40000, CRC(144aa4c9) SHA1(f00bf10f04ae774dda7e3a1c862aba67f70d61c3) , ROM_SKIP(7) )
+ ROMX_LOAD( "4.bin", 0x400006, 0x40000, CRC(f2c400b4) SHA1(090ff7184cd2a1b992cc9f1f8c03f8832bc11416) , ROM_SKIP(7) )
+ ROMX_LOAD( "3.bin", 0x400007, 0x40000, CRC(8053335d) SHA1(c653cb249401162fbf39f293e1999fe5e09c35c4) , ROM_SKIP(7) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ ROM_REGION( 0x2000, "protectin_pic", 0 )
+ ROM_LOAD( "pic16c55", 0x00000, 0x2000, BAD_DUMP CRC(f22e2311) SHA1(320edfba140728599e91c01e863a8b6d071e4bbf) )
+ROM_END
+
+
+
+ROM_START( sf2cebltw )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "27.12e", 0x000000, 0x20000, CRC(035ee5d9) SHA1(9d268333db96dc6d1539ea938d3b213482e276c6) )
+ ROM_LOAD16_BYTE( "31.12f", 0x000001, 0x20000, CRC(353dbde1) SHA1(039785f8863fda945267fc8b9cf640d954ea9803) )
+ ROM_LOAD16_BYTE( "24.9e", 0x040000, 0x20000, CRC(005b54cc) SHA1(3d3d7742c11f31cc62d81931dc970cd1f4a26835) )
+ ROM_LOAD16_BYTE( "28.9f", 0x040001, 0x20000, CRC(c184d26d) SHA1(b1011e869d0b84c1ab609fcf193b46c7d9cc3b28) )
+ ROM_LOAD16_BYTE( "25.10e", 0x080000, 0x20000, CRC(524f5c55) SHA1(67adfd36bb325c4a6d3e1e5b668c4dc983ac0a62) )
+ ROM_LOAD16_BYTE( "29.10f", 0x080001, 0x20000, CRC(f06a12f2) SHA1(ddc431ce01392d4a7562760743abd9ea73b06cf3) )
+ ROM_LOAD16_BYTE( "26.11e", 0x0c0000, 0x20000, CRC(8312d055) SHA1(e36c23c197096d50d71ceefbf93205d5758153e0) )
+ ROM_LOAD16_BYTE( "30.11f", 0x0c0001, 0x20000, CRC(d0580ff2) SHA1(1b2e4c4abbe90a68283c86e7cb5328b242be5683) )
+ ROM_LOAD16_WORD_SWAP( "s92_21a.5f", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) )
+
+ ROM_REGION( 0x40000, "pal", 0 )
+ ROM_LOAD( "bruteforce.palce16v8h-25.11d", 0x00000, 0x40000, CRC(430f722d) SHA1(b0c0570057c782b1114819fae907f45a01c55065) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_10.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_11.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_13.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+ROM_END
+
+
+
+ROM_START( sf2amf )
+ /* the PCB is not working on real hardware */
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "5.amf", 0x000000, 0x80000, CRC(03991fba) SHA1(6c42bf15248640fdb3e98fb01b0a870649deb410) )
+ ROM_LOAD16_BYTE( "4.amf", 0x000001, 0x80000, CRC(39f15a1e) SHA1(901c4fea76bf5bff7330ed07ffde54cdccdaa680) )
+ /* missing last part(s) of program roms, some gfx loading instructions are missing */
+ ROM_LOAD16_BYTE( "prg part 3.amf", 0x100000, 0x40000, NO_DUMP )
+ ROM_LOAD16_BYTE( "prg part 4.amf", 0x100001, 0x40000, NO_DUMP )
+ /* do not move this outside comments, this is only for testing purpose
+ ROM_LOAD16_BYTE( "u221.rom", 0x100000, 0x20000, CRC(64e6e091) SHA1(32ec05db955e538d4ada26d19ee50926f74b684f) )
+ ROM_LOAD16_BYTE( "u195.rom", 0x100001, 0x20000, CRC(c95e4443) SHA1(28417dee9ccdfa65b0f4a92aa29b90279fe8cd85) )
+ */
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "y.c.e.c m.k.r-001", 0x000000, 0x80000, CRC(a258de13) SHA1(2e477948c4c8a2fb7cfdc4a739766bc4a4e01c49), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000004, 0x80000)
+ ROMX_LOAD( "y.c.e.c m.k.r-003", 0x000002, 0x80000, CRC(c781bf87) SHA1(034baa9807c2ce8dc800200963a38cd9262b21fb), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000006, 0x80000)
+ ROMX_LOAD( "y.c.e.c m.k.r-002", 0x200000, 0x80000, CRC(5726cab8) SHA1(0b2243a9a7184d53d42ddab7a8c51b63001c2f56), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x200004, 0x80000)
+ ROMX_LOAD( "y.c.e.c d.w.c-011", 0x200002, 0x80000, CRC(bc90c12f) SHA1(ecdb776239b22bd56b7c3a87c9e561f650a4dfea), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x200006, 0x80000)
+ ROMX_LOAD( "y.c.e.c d.w.c-012", 0x400000, 0x80000, CRC(187667cc) SHA1(fae65bf23f49a32903fda8080659ccf8d42b911f), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x400004, 0x80000)
+ ROMX_LOAD( "y.c.e.c d.w.c-013", 0x400002, 0x80000, CRC(5b585071) SHA1(ad3371b1ba0441c67d9fcbb23b09464710e4e28a), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x400006, 0x80000)
+ /* extra gfx layer roms loaded over the former ones to remove the capcom copyright logo */
+ ROMX_LOAD( "6.amf", 0x400000, 0x10000, CRC(3a85a275) SHA1(01907d69f912abffe3ad9745638ce3f282cfb2e8), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x400004, 0x10000 )
+ ROMX_LOAD( "9.amf", 0x400002, 0x10000, CRC(9156472f) SHA1(5db2acfc54308d4d26e0459f9486620a968c81d8), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x400006, 0x10000 )
+ ROMX_LOAD( "8.amf", 0x400001, 0x10000, CRC(ecdb083b) SHA1(899894c1db004e98f755ffbdf28d32296b9c0a86), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x400005, 0x10000 )
+ ROMX_LOAD( "10.amf", 0x400003, 0x10000, CRC(8fea8384) SHA1(8b31fd8d16cbafb5144f772653336b41db8f64fc), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x400007, 0x10000 )
+ /* end of extra gfx layer roms */
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "3.amf", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x20000, "user1", 0 ) /* unknown (bootleg priority?) */
+ ROM_LOAD( "7.amf", 0x00000, 0x10000, CRC(13ea1c44) SHA1(5b05fe4c3920e33d94fac5f59e09ff14b3e427fe) )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "2.amf", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "1.amf", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+ROM_END
+
+ROM_START( sf2amf2 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "m5m27c401.u222", 0x000000, 0x80000, CRC(03991fba) SHA1(6c42bf15248640fdb3e98fb01b0a870649deb410) ) // == 5.amf sf2amf
+ ROM_LOAD16_BYTE( "m5m27c401.u196", 0x000001, 0x80000, CRC(39f15a1e) SHA1(901c4fea76bf5bff7330ed07ffde54cdccdaa680) ) // == 4.amf sf2amf
+
+ ROM_LOAD16_BYTE( "27020.u221", 0x100000, 0x40000, CRC(aa4d55a6) SHA1(8fd1c21816886a7734aae42e9336d5f66ddab7bc) ) // different
+ ROM_LOAD16_BYTE( "27020.u195", 0x100001, 0x40000, CRC(2bffa6f9) SHA1(eb1222356d89849edb08ea1898399cf90cf127f5) ) // different
+
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "fun-u70.bin", 0x000004, 0x80000, CRC(a94a8b19) SHA1(49ba9e6032a0b33d7db9fe609710575f2f75e695), ROM_GROUPWORD | ROM_SKIP(6) ) // different
+ ROM_CONTINUE( 0x000000, 0x80000)
+ ROMX_LOAD( "fun-u68.bin", 0x000006, 0x80000, CRC(0405f21f) SHA1(dbebd2c2c46d5aae8db905f2eb51abd4a5c4ea97), ROM_GROUPWORD | ROM_SKIP(6) ) // different
+ ROM_CONTINUE( 0x000002, 0x80000)
+ ROMX_LOAD( "fun-u69.bin", 0x200004, 0x80000, CRC(05dc2043) SHA1(d16b89a48d2dd7cdfafc79567ce1e230d4bd41c1), ROM_GROUPWORD | ROM_SKIP(6) ) // different
+ ROM_CONTINUE( 0x200000, 0x80000)
+ ROMX_LOAD( "fun-u67.bin", 0x200006, 0x80000, CRC(055b64f1) SHA1(3dd68f52b81ed1b300b65c900ef6bfe435d41e4b), ROM_GROUPWORD | ROM_SKIP(6) ) // different
+ ROM_CONTINUE( 0x200002, 0x80000)
+ ROMX_LOAD( "fun-u19.bin", 0x400004, 0x80000, CRC(1a518609) SHA1(18ffca70d6cefb399ba6e3008e5c29dc37de52a0), ROM_GROUPWORD | ROM_SKIP(6) ) // different
+ ROM_CONTINUE( 0x400000, 0x80000)
+ ROMX_LOAD( "fun-u18.bin", 0x400006, 0x80000, CRC(84f9354f) SHA1(ecc190950b1f45b268da380c17859a8d0715b58f), ROM_GROUPWORD | ROM_SKIP(6) ) // different
+ ROM_CONTINUE( 0x400002, 0x80000)
+ /* extra gfx layer roms loaded over the former ones to remove the capcom copyright logo */
+ ROMX_LOAD( "grp1.u31", 0x400004, 0x10000, CRC(6de44671) SHA1(dc6abba639e0c27033e391c7438d88dc89a93351), ROM_SKIP(7) ) // different
+ ROM_CONTINUE( 0x400000, 0x10000 )
+ ROMX_LOAD( "grp3.u29", 0x400006, 0x10000, CRC(e8f14362) SHA1(a20eb75e322011e2a8d8bf2acebe713bef3d3941), ROM_SKIP(7) ) // different
+ ROM_CONTINUE( 0x400002, 0x10000 )
+ ROMX_LOAD( "grp2.u30", 0x400005, 0x10000, CRC(bf0cd819) SHA1(f04a098fce07949277268327871c5e5520e3bb3c), ROM_SKIP(7) ) // different
+ ROM_CONTINUE( 0x400001, 0x10000 )
+ ROMX_LOAD( "grp4.u28", 0x400007, 0x10000, CRC(76f9f91f) SHA1(58a34062d2c8378558a7f1629140330279af9a43), ROM_SKIP(7) ) // different
+ ROM_CONTINUE( 0x400003, 0x10000 )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "27512.u191", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x20000, "user1", 0 ) /* unknown (bootleg priority?) */
+ ROM_LOAD( "27512.u133", 0x00000, 0x10000, CRC(13ea1c44) SHA1(5b05fe4c3920e33d94fac5f59e09ff14b3e427fe) )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "fun-u210.bin", 0x00000, 0x40000, CRC(6cfffb11) SHA1(995526183ffd35f92e9096500a3fe6237faaa2dd) )
+ROM_END
+
+ROM_START( sf2dkot2 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ /* The game reads values from 0x201201 and 0x281201 (at PC=E5452) and uses their difference to form a jump offset. */
+ /* This arrangement seems to work */
+ ROM_LOAD16_WORD_SWAP( "turboii.23", 0x000000, 0x80000, CRC(9bbfe420) SHA1(299ab5625f2d4ebc89bcf19a2b2d88edc8054747) )
+ ROM_RELOAD( 0x280000, 0x80000 )
+ ROM_LOAD16_WORD_SWAP( "turboii.22", 0x080000, 0x80000, CRC(3e57ba19) SHA1(ae8170ac890c14ba7746e29c0f21dfb38c4c9837) )
+ ROM_RELOAD( 0x200000, 0x80000 )
+
+ ROM_LOAD16_WORD_SWAP( "turboii.21", 0x100000, 0x80000, CRC(ed4186bd) SHA1(f3dfe91d8f4384275190b0d86488843c1161d86f) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_10.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_11.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_13.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+ROM_END
+
+ROM_START( sf2m2 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "ch222esp", 0x000000, 0x80000, CRC(9e6d058a) SHA1(8c9adca7b65dc929c325c0a62304d24dc0902c08) )
+ ROM_LOAD16_BYTE( "ch196esp", 0x000001, 0x80000, CRC(ed2ff437) SHA1(e76fc2953b6c800d5955c8fb442b80142e40e375) )
+ ROM_LOAD16_WORD_SWAP( "s92_21a.bin", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_10.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_11.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_13.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+ROM_END
+
+ROM_START( sf2m3 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "u222chp", 0x000000, 0x80000, CRC(db567b66) SHA1(315bfbf2786ef67a95afb87de836ab348523dbbe) )
+ ROM_LOAD16_BYTE( "u196chp", 0x000001, 0x80000, CRC(95ea597e) SHA1(5eb82feaa1de5611a96888e4670744bbb7d90393) )
+ ROM_LOAD16_WORD_SWAP( "s92_21a.bin", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_10.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_11.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_13.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+ROM_END
+
+ROM_START( sf2m4 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "u222ne", 0x000000, 0x80000, CRC(7133489e) SHA1(036ef100c64c6e912c911340b32eea0da0b6f6d9) )
+ ROM_LOAD16_BYTE( "u196ne", 0x000001, 0x80000, CRC(b07a4f90) SHA1(7a4a800bddc43cfa60f9097723b44a05c9d290ae) )
+ ROM_LOAD16_WORD_SWAP( "s92_21a.bin", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_10.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_11.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_13.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+ROM_END
+
+ROM_START( sf2m5 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "u222", 0x000000, 0x80000, CRC(03991fba) SHA1(6c42bf15248640fdb3e98fb01b0a870649deb410) )
+ ROM_LOAD16_BYTE( "u196", 0x000001, 0x80000, CRC(39f15a1e) SHA1(901c4fea76bf5bff7330ed07ffde54cdccdaa680) )
+ ROM_LOAD16_WORD_SWAP( "s92_21a.bin", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_10.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_11.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_13.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+ROM_END
+
+ROM_START( sf2m6 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "u222-6b", 0x000000, 0x80000, CRC(0a3692be) SHA1(7b937b7b0130e460b5f12188b19f464c55b507c9) )
+ ROM_LOAD16_BYTE( "u196-6b", 0x000001, 0x80000, CRC(80454da7) SHA1(64f6dba14d342c9933ce632aa7ca126b34b4ee8b) )
+ ROM_LOAD16_WORD_SWAP( "s92_21a.bin", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_10.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_11.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_13.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+ROM_END
+
+ROM_START( sf2m7 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "u222-2i", 0x000000, 0x40000, CRC(1ca7adbd) SHA1(45e9dc05766ad156edcfc9e59a9804f74f90dc68) )
+ ROM_LOAD16_BYTE( "u196-2i", 0x000001, 0x40000, CRC(f758408c) SHA1(aac44a7287bb3b7ba35d68aff279e265dbd3f6d3) )
+ ROM_LOAD16_BYTE( "u222-2s", 0x080000, 0x40000, CRC(720cea3e) SHA1(ec4f22159d44a8abc40643b986b88a4f947d6aea) )
+ ROM_LOAD16_BYTE( "u196-2s", 0x080001, 0x40000, CRC(9932832c) SHA1(0da0f5ebab91b0759c5fc00902cfe4b12a856466) )
+ ROM_LOAD16_WORD_SWAP( "s92_21a.bin", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_10.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_11.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_13.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+ROM_END
+
+ROM_START( sf2m8 )
+/* unconfirmed if working on real hardware */
+ /* this board has unsupported pals */
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "yyc-2.2", 0x000000, 0x80000, CRC(db567b66) SHA1(315bfbf2786ef67a95afb87de836ab348523dbbe) )
+ ROM_LOAD16_BYTE( "yyc-3.4", 0x000001, 0x80000, CRC(95ea597e) SHA1(5eb82feaa1de5611a96888e4670744bbb7d90393) )
+ ROM_LOAD16_BYTE( "yyc-4.1", 0x100000, 0x20000, CRC(1073b7b6) SHA1(81ca1eab65ceac69520584bb23a684ccb9d92f89) )
+ ROM_LOAD16_BYTE( "yyc-5.3", 0x100001, 0x20000, CRC(924c6ce2) SHA1(676a912652bd75da5087f0c7eae047b7681a993c) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "yyc-a", 0x000000, 0x40000, CRC(8242621f) SHA1(9d566176462bd25f9a377104b0c78a962708bc2b), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000004, 0x40000)
+ ROM_CONTINUE( 0x200000, 0x40000)
+ ROM_CONTINUE( 0x200004, 0x40000)
+ ROMX_LOAD( "yyc-c", 0x000001, 0x40000, CRC(0793a960) SHA1(f351163dd1090f8cd8d4c77e2a29764fee627b13), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000005, 0x40000)
+ ROM_CONTINUE( 0x200001, 0x40000)
+ ROM_CONTINUE( 0x200005, 0x40000)
+ ROMX_LOAD( "yyc-b", 0x000002, 0x40000, CRC(b0159973) SHA1(2a236b9d98fa0acddd844aa94bc5118012a6fb2f), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000006, 0x40000)
+ ROM_CONTINUE( 0x200002, 0x40000)
+ ROM_CONTINUE( 0x200006, 0x40000)
+ ROMX_LOAD( "yyc-d", 0x000003, 0x40000, CRC(92a8b572) SHA1(cbad24e519f0152989764c054da914f55e2b118c), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000007, 0x40000)
+ ROM_CONTINUE( 0x200003, 0x40000)
+ ROM_CONTINUE( 0x200007, 0x40000)
+ /* extra gfx layer roms loaded over the former ones to remove the capcom copyright logo */
+ ROMX_LOAD( "yyc-6.1", 0x400000, 0x10000, CRC(94778332) SHA1(c0b9a05c710b89864ee5df1a53b39de30c994e2d), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x400004, 0x10000 )
+ ROMX_LOAD( "yyc-8.9", 0x400002, 0x10000, CRC(f95bc505) SHA1(385beb2f9f8a473d928d729d722372ae49f410e7), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x400006, 0x10000 )
+ ROMX_LOAD( "yyc-7.10", 0x400001, 0x10000, CRC(d1e452d3) SHA1(794f7ebf6c46c2938a5477451cf05f2e0c7b9049), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x400005, 0x10000 )
+ ROMX_LOAD( "yyc-9.8", 0x400003, 0x10000, CRC(155824a9) SHA1(74d7e86be22c11234f5d9d0b25fa709b59ef471b), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x400007, 0x10000 )
+ /* end of extra gfx layer roms */
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "a-15.5", 0x00000, 0x08000, CRC(6f07d2cb) SHA1(8ef1338d04c1a0b43e24303085105cfdced0bd5e) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x10000, "user1", 0 ) /* unknown (bootleg priority?) */
+ ROM_LOAD( "c-27.7", 0x00000, 0x10000, CRC(13ea1c44) SHA1(5b05fe4c3920e33d94fac5f59e09ff14b3e427fe) )
+
+ ROM_REGION( 0x200000, "user2", 0 )
+ ROM_LOAD( "yyc-e", 0x000000, 0x100000, CRC(61138469) SHA1(dec3b3af6e3f4fedf51600ddf0515f61b2122493) )
+ ROM_LOAD( "yyc-f", 0x100000, 0x100000, CRC(b800dcdb) SHA1(2ec3251b78159b15032d55a5ee5138f159e67190) )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "b-16.6", 0x00000, 0x40000, CRC(6cfffb11) SHA1(995526183ffd35f92e9096500a3fe6237faaa2dd) )
+ROM_END
+
+/* SF2M10
+ From HBMAME (SF2H14)
+ Same as sf2ebbl2, except it has program roms unique to sf2h14.
+
+ Using sf2ce gfx roms to get clean gfx (the board was a bodgy
+ half-done conversion attempt).
+
+** PCB DETAILS ***
+Street Fighter II Champion Edition (bootleg)
+
+PCB Layout
+----------
+
+|-----------------------------------------------------|
+|LM324 ROM1 3.579545MHz ROM10 ROM12|
+|LM324 ROM2 16MHz 2018 ROM9 ROM11|
+| M6295 12MHz 2018 SE235 SE005|
+| 2018 |
+|YM2151 2018 2018 ROM8 |
+| ROM3 SE194 SE064|
+|J Z80 SF004 SF001|
+|A 2018 2018 |
+|M 6116 6116 2018 2018 |
+|M |
+|A |--| |
+| |6 | 62256 |
+|DSWA(8)|8 |62256 62256 62256 |
+| |0 |ROM4 ROM6 |
+|DSWB(8)|0 |ROM5 ROM7 |
+| |0 | |
+|DSWC(8)|--| |
+|-----------------------------------------------------|
+Notes:
+ 68000 - Clock 12MHz
+ Z80 - Clock 3.579545MHz
+ M6295 - Clock 1.000MHz [16/16]. Pin 7 HIGH
+ YM2151 - Clock 3.579545MHz
+ 62256 - 32k x8 SRAM
+ 2018 - 2k x8 SRAM
+ 6116 - 2k x8 SRAM
+*/
+
+ROM_START( sf2m10 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "sf2h14.7", 0x000000, 0x80000, CRC(74803532) SHA1(c1f774bbc4c7b18fcac15417711a86eb852b9957) )
+ ROM_LOAD16_BYTE( "sf2h14.5", 0x000001, 0x80000, CRC(66c91972) SHA1(219aecad1feb60bb758190ea82223171075c858e) )
+ ROM_LOAD16_BYTE( "yyc-4.1", 0x100000, 0x20000, CRC(1073b7b6) SHA1(81ca1eab65ceac69520584bb23a684ccb9d92f89) )
+ ROM_LOAD16_BYTE( "yyc-5.3", 0x100001, 0x20000, CRC(924c6ce2) SHA1(676a912652bd75da5087f0c7eae047b7681a993c) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ // using the proper roms for this program
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+ // and overwrite some gfx with supplied extra roms
+ ROMX_LOAD( "27c1024.10", 0x400000, 0x20000, CRC(84427d1b) SHA1(f988a2b53c8cc46eeb8032084f24966a539b3734) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "27c1024.12", 0x400002, 0x20000, CRC(55bc790c) SHA1(a1114b89f6fa4487210477676984c77ad94b5ef8) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "27c1024.9", 0x400004, 0x20000, CRC(f8725add) SHA1(fa3fcf6637ee4dd7667bd89766074b3c6ba4f166) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "27c1024.11", 0x400006, 0x20000, CRC(c2a5373e) SHA1(602b32e5ecc7007efe9ad30751040ee52b81f59a) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "27c512.3", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x20000, "user1", 0 )
+ ROM_LOAD( "27c512.8", 0x00000, 0x10000, CRC(13ea1c44) SHA1(5b05fe4c3920e33d94fac5f59e09ff14b3e427fe) )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "27c010.2", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "27c010.1", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+ROM_END
+
+ROM_START( sf2yyc )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "b12.rom", 0x000000, 0x80000, CRC(8f742fd5) SHA1(a78a00e686856481011d8b5f5e60ed18197a5225) )
+ ROM_LOAD16_BYTE( "b14.rom", 0x000001, 0x80000, CRC(8831ec7f) SHA1(0293ff189cbacf90098e734fb31fcbf3c3165e6b) )
+ ROM_LOAD16_BYTE( "b11.rom", 0x100000, 0x20000, CRC(94a46525) SHA1(2712b979ce2bfd87e74da3369e0fceaae2a0654c) )
+ ROM_RELOAD( 0x140000, 0x20000 )
+ ROM_LOAD16_BYTE( "b13.rom", 0x100001, 0x20000, CRC(8fb3dd47) SHA1(ebf30ad7ae60eeda446e23bd74f6e2d98dde4158) )
+ ROM_RELOAD( 0x140001, 0x20000 )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_10.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_11.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_13.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+ROM_END
+
+ROM_START( sf2koryu )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "u222.rom", 0x000000, 0x80000, CRC(9236a79a) SHA1(39c47b0b0ca2f5f569ff07ebb91040b95d0cb43b) )
+ ROM_LOAD16_BYTE( "u196.rom", 0x000001, 0x80000, CRC(b23a869d) SHA1(24247d412f20d069919cc8a7fff208af3f7aa1d2) )
+ ROM_LOAD16_BYTE( "u221.rom", 0x100000, 0x20000, CRC(64e6e091) SHA1(32ec05db955e538d4ada26d19ee50926f74b684f) )
+ ROM_LOAD16_BYTE( "u195.rom", 0x100001, 0x20000, CRC(c95e4443) SHA1(28417dee9ccdfa65b0f4a92aa29b90279fe8cd85) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_10.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_11.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_13.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+ROM_END
+
+ROM_START( sf2dongb )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "1.8f", 0x000000, 0x80000, CRC(19fffa37) SHA1(db464c64de3aebe929c85ee167961de05d2c16be) )
+ ROM_LOAD16_WORD_SWAP( "1.7f", 0x080000, 0x80000, CRC(99f1cca4) SHA1(64111eba81d743fc3fd51d7a89cd0b2eefcc900d) ) // same as sf2ceea
+ ROM_LOAD16_WORD_SWAP( "1.6f", 0x100000, 0x80000, CRC(65c2c719) SHA1(d407cae5f04fc8d05776d478a6eb4363b3c36805) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+ROM_END
+
+
+/* B-Board 89625B-1 */
+ROM_START( cworld2j )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "q5_36.12f", 0x00000, 0x20000, CRC(38a08099) SHA1(961f733baa2bbf8419e4de70f18660098dba7d52) )
+ ROM_LOAD16_BYTE( "q5_42.12h", 0x00001, 0x20000, CRC(4d29b3a4) SHA1(bf40fc22c0161fe131ca69100b2a4d102e86bde6) )
+ ROM_LOAD16_BYTE( "q5_37.13f", 0x40000, 0x20000, CRC(eb547ebc) SHA1(fce470b05ce095badd180c3740677146f52f6080) )
+ ROM_LOAD16_BYTE( "q5_43.13h", 0x40001, 0x20000, CRC(3ef65ea8) SHA1(2348d84b380c0e8ebe270a37d4ff3ce5204abc8c) )
+ ROM_LOAD16_BYTE( "q5_34.10f", 0x80000, 0x20000, CRC(7fcc1317) SHA1(672ca45d3fad5eec4d65bbbbd1d21cbf6be4ec8b) )
+ ROM_LOAD16_BYTE( "q5_40.10h", 0x80001, 0x20000, CRC(7f14b7b4) SHA1(5564eb9f65dad76ebe40d12d5c39fec5e246adf0) )
+ ROM_LOAD16_BYTE( "q5_35.11f", 0xc0000, 0x20000, CRC(abacee26) SHA1(2f513c02f715ffeec12a6d1c292619e214155cbc) )
+// ROM_LOAD16_BYTE( "q5_35.11f", 0xc0000, 0x20000, CRC(59961612) SHA1(ded5144746dd9612f2db1415e96a826e215ad176) ) /* dumped from another board, 1 byte different, pcb verified */
+ ROM_LOAD16_BYTE( "q5_41.11h", 0xc0001, 0x20000, CRC(d3654067) SHA1(0b597483e136ff19b031171941cb8439bcd7f145) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "q5_09.4b", 0x000000, 0x20000, CRC(48496d80) SHA1(bdfaca6375c8275b06b2bc170a25ff6aa62394dc) , ROM_SKIP(7) )
+ ROMX_LOAD( "q5_01.4a", 0x000001, 0x20000, CRC(c5453f56) SHA1(113fe6cc6c830352df5992be9fa34c4d70bf32ed) , ROM_SKIP(7) )
+ ROMX_LOAD( "q5_13.9b", 0x000002, 0x20000, CRC(c741ac52) SHA1(d8b4aeacfd62586b98a1381da357dcc5ab16c1c6) , ROM_SKIP(7) )
+ ROMX_LOAD( "q5_05.9a", 0x000003, 0x20000, CRC(143e068f) SHA1(24cdc49c09a9f0c93e04b37cf7ebba09a929c9b0) , ROM_SKIP(7) )
+ ROMX_LOAD( "q5_24.5e", 0x000004, 0x20000, CRC(b419d139) SHA1(46cd97da2413eb5fbd38fa2c20914f3c5f1c6ec8) , ROM_SKIP(7) )
+ ROMX_LOAD( "q5_17.5c", 0x000005, 0x20000, CRC(bd3b4d11) SHA1(bb62169bc52562715878a33cc4f8558e05d581d3) , ROM_SKIP(7) )
+ ROMX_LOAD( "q5_38.8h", 0x000006, 0x20000, CRC(9c24670c) SHA1(3b98078b7360e21b3905fd973e01b88b02090759) , ROM_SKIP(7) )
+ ROMX_LOAD( "q5_32.8f", 0x000007, 0x20000, CRC(3ef9c7c2) SHA1(52a18d7b12f0c14c5cf68a3dd63571e955005f4c) , ROM_SKIP(7) )
+ ROMX_LOAD( "q5_10.5b", 0x100000, 0x20000, CRC(119e5e93) SHA1(b5b6c2e3516ebe555a26ecfb5934f3b65371bf36) , ROM_SKIP(7) )
+ ROMX_LOAD( "q5_02.5a", 0x100001, 0x20000, CRC(a2cadcbe) SHA1(3d1079f62cce628cbc5b810c0bd51c67c87f4eca) , ROM_SKIP(7) )
+ ROMX_LOAD( "q5_14.10b", 0x100002, 0x20000, CRC(a8755f82) SHA1(0a2fbc8b96651f9ab72eb451723e56ca0a859868) , ROM_SKIP(7) )
+ ROMX_LOAD( "q5_06.10a", 0x100003, 0x20000, CRC(c92a91fc) SHA1(dfe9682349cf94be414b7e1895b632de41729194) , ROM_SKIP(7) )
+ ROMX_LOAD( "q5_25.7e", 0x100004, 0x20000, CRC(979237cb) SHA1(9534b05523317a220b3b957a18fec51f1d4e37b3) , ROM_SKIP(7) )
+ ROMX_LOAD( "q5_18.7c", 0x100005, 0x20000, CRC(c57da03c) SHA1(ad7bce859f56d201d229032baf4fb9f65b54765b) , ROM_SKIP(7) )
+ ROMX_LOAD( "q5_39.9h", 0x100006, 0x20000, CRC(a5839b25) SHA1(20c4c4f24f21a325a03538306de799df2a89f6cb) , ROM_SKIP(7) )
+ ROMX_LOAD( "q5_33.9f", 0x100007, 0x20000, CRC(04d03930) SHA1(37f2556eeb52f8edfcddd3f3642fa24565d5a7bd) , ROM_SKIP(7) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "q5_23.13b", 0x00000, 0x08000, CRC(e14dc524) SHA1(0020a9002572002458fbfe45e8a959cb90de3f03) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "q5_30.12c", 0x00000, 0x20000, CRC(d10c1b68) SHA1(2423241f3340d8ab1b6bf9514ca8c3bba1273873) )
+ ROM_LOAD( "q5_31.13c", 0x20000, 0x20000, CRC(7d17e496) SHA1(a274b94ec4f042dddc239ecb9ac2e1e2375f5eb2) )
+
+ 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( "q522b.1a", 0x0000, 0x0117, NO_DUMP )
+ ROM_LOAD( "lwio.12e", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) ) /* seen the same pcb with IOB1.12E */
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ROM_END
+
+/* B-Board 90629B-3 - all roms have 90629B on the labels, no battery, possibly unofficial / desuicided with reproduction stickers */
+ROM_START( cworld2ja )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP("q5 - 34_90629b.8f", 0x00000, 0x80000, CRC(de54487f) SHA1(75b228a6c702c82d4d9a2a992933b5c3c420f6c2) )
+ ROM_LOAD16_WORD_SWAP("q5 - 33_90629b.6f", 0x80000, 0x80000, CRC(93248458) SHA1(9dcdc6838f52efc9a0a6333fd0d734946db12dbd) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "q5 - 06_90629b.8a", 0x000000, 0x80000, CRC(09d0e7ce) SHA1(ea502b975986222acce82ce8396348af72e1df72) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "q5 - 08_90629b.10a", 0x000002, 0x80000, CRC(22e4ce9a) SHA1(9e49aec8e1d6d15a68da63e69765b82fd53a9562) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "q5 - 05_90629b.7a", 0x000004, 0x80000, CRC(f7b3aed6) SHA1(bdfb4d5988307b07ad878ac9129954d14da8769b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "q5 - 07_90629b.9a", 0x000006, 0x80000, CRC(520c6c88) SHA1(19ba8ca3d75aae71cdf471e6307e86a5df8a2851) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "q5 - 09_90629b.12a", 0x00000, 0x08000, CRC(e14dc524) SHA1(0020a9002572002458fbfe45e8a959cb90de3f03) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "q5 - 18_90629b.11c", 0x00000, 0x20000, CRC(d10c1b68) SHA1(2423241f3340d8ab1b6bf9514ca8c3bba1273873) )
+ ROM_LOAD( "q5 - 19_90629b.12c", 0x20000, 0x20000, CRC(7d17e496) SHA1(a274b94ec4f042dddc239ecb9ac2e1e2375f5eb2) )
+
+ 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( "q529b.1a", 0x0000, 0x0117, NO_DUMP )
+ ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ROM_END
+
+/* B-Board 91634B-2 - all roms have 91634B on the labels */
+ROM_START( cworld2jb )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "q5 - 23_91634b.8f", 0x00000, 0x80000, CRC(709f577f) SHA1(3e0615d01f22eb1bf75cbd26dc80ca5a6d08120e) )
+ ROM_LOAD16_WORD_SWAP( "q5 - 22_91634b.7f", 0x80000, 0x80000, CRC(93248458) SHA1(9dcdc6838f52efc9a0a6333fd0d734946db12dbd) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "q5 - 01_91634b.3a", 0x000000, 0x80000, CRC(09d0e7ce) SHA1(ea502b975986222acce82ce8396348af72e1df72) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "q5 - 02_91634b.4a", 0x000002, 0x80000, CRC(22e4ce9a) SHA1(9e49aec8e1d6d15a68da63e69765b82fd53a9562) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "q5 - 03_91634b.5a", 0x000004, 0x80000, CRC(f7b3aed6) SHA1(bdfb4d5988307b07ad878ac9129954d14da8769b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "q5 - 04_91634b.6a", 0x000006, 0x80000, CRC(520c6c88) SHA1(19ba8ca3d75aae71cdf471e6307e86a5df8a2851) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "q5 - 09_91634b.12a", 0x00000, 0x08000, CRC(e14dc524) SHA1(0020a9002572002458fbfe45e8a959cb90de3f03) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "q5 - 18_91634b.11c", 0x00000, 0x20000, CRC(d10c1b68) SHA1(2423241f3340d8ab1b6bf9514ca8c3bba1273873) )
+ ROM_LOAD( "q5 - 19_91634b.12c", 0x20000, 0x20000, CRC(7d17e496) SHA1(a274b94ec4f042dddc239ecb9ac2e1e2375f5eb2) )
+
+ 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( "q563b.1a", 0x0000, 0x0117, NO_DUMP )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 ) // checkme
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 89624B-3 */
+ROM_START( varth )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "vae_30b.11f", 0x00000, 0x20000, CRC(adb8d391) SHA1(5e7160509e0315eb32cc390ddd7e4ef7a4a1a70a) )
+ ROM_LOAD16_BYTE( "vae_35b.11h", 0x00001, 0x20000, CRC(44e5548f) SHA1(17b4be1f4159f6b6803d8c2950823ece0bdde8b2) )
+ ROM_LOAD16_BYTE( "vae_31b.12f", 0x40000, 0x20000, CRC(1749a71c) SHA1(bd9bfd5bbe2d426c94df755c977faa92a28f16ab) )
+ ROM_LOAD16_BYTE( "vae_36b.12h", 0x40001, 0x20000, CRC(5f2e2450) SHA1(676e8d96406d81ceadd4a0a69959cdcb6d5d9ac8) )
+ ROM_LOAD16_BYTE( "vae_28b.9f", 0x80000, 0x20000, CRC(e524ca50) SHA1(487d5ddabe852872f331362034c4fa16e0926e3d) )
+ ROM_LOAD16_BYTE( "vae_33b.9h", 0x80001, 0x20000, CRC(c0bbf8c9) SHA1(447540b856776770af8022a291d46612c1bb5909) )
+ ROM_LOAD16_BYTE( "vae_29b.10f", 0xc0000, 0x20000, CRC(6640996a) SHA1(3ed7bd947dc8224435680dedf4955ed6041c6028) )
+ ROM_LOAD16_BYTE( "vae_34b.10h", 0xc0001, 0x20000, CRC(fa59be8a) SHA1(86a3d3a7126c021e2ca8ac20238695396367e098) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "va-5m.7a", 0x000000, 0x80000, CRC(b1fb726e) SHA1(5ac0876b6c49d0a99710dda68653664f4d8c1167) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "va-7m.9a", 0x000002, 0x80000, CRC(4c6588cd) SHA1(d14e8cf051ac934ccc989d8c571c6cc9eed34af5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "va-1m.3a", 0x000004, 0x80000, CRC(0b1ace37) SHA1(6f9493c22f667f683db2789972fd16bb94724679) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "va-3m.5a", 0x000006, 0x80000, CRC(44dfe706) SHA1(a013a434df3161a91aafbb35dc4e20dfb3f177f4) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "va_09.12b", 0x00000, 0x08000, CRC(7a99446e) SHA1(ca027f41e3e58be5abc33ad7380746658cb5380a) ) // missing sticker, could be va_9.12b
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "va_18.11c", 0x00000, 0x20000, CRC(de30510e) SHA1(8e878696192606b76a3a0e53553e638d9621cff7) )
+ ROM_LOAD( "va_19.12c", 0x20000, 0x20000, CRC(0610a4ac) SHA1(3da02ea6a7a56c85de898806d2a1cf6bc526c1b3) )
+
+ 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( "va24b.1a", 0x0000, 0x0117, CRC(cc476650) SHA1(a417f7971b8709023932fc2b68c9e3cd699ab6f2) )
+ ROM_LOAD( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ROM_END
+
+/* B-Board 89624B-? */
+ROM_START( varthr1 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "vae_30a.11f", 0x00000, 0x20000, CRC(7fcd0091) SHA1(7bed452736eda4a26c43c5dd54ec6799afa6e770) )
+ ROM_LOAD16_BYTE( "vae_35a.11h", 0x00001, 0x20000, CRC(35cf9509) SHA1(a189ca7740d77262413ec2891af034d0057892be) )
+ ROM_LOAD16_BYTE( "vae_31a.12f", 0x40000, 0x20000, CRC(15e5ee81) SHA1(6c6248b07f7e956a37d5dcb4b67d026f57fae13b) )
+ ROM_LOAD16_BYTE( "vae_36a.12h", 0x40001, 0x20000, CRC(153a201e) SHA1(5936e447d5cd02ff13802cf78393b521431ad06c) )
+ ROM_LOAD16_BYTE( "vae_28a.9f", 0x80000, 0x20000, CRC(7a0e0d25) SHA1(203692ef1daeef7ba08b154cf029cc07a2e0e23d) )
+ ROM_LOAD16_BYTE( "vae_33a.9h", 0x80001, 0x20000, CRC(f2365922) SHA1(efb2221033e4b46fedaf3d8c850e208f849e6af0) )
+ ROM_LOAD16_BYTE( "vae_29a.10f", 0xc0000, 0x20000, CRC(5e2cd2c3) SHA1(eff955c7dc0d8ae215e7188cc4865726104c7777) )
+ ROM_LOAD16_BYTE( "vae_34a.10h", 0xc0001, 0x20000, CRC(3d9bdf83) SHA1(d655803a6f07b90e44aacaa3e6059ac330ef2ec6) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "va-5m.7a", 0x000000, 0x80000, CRC(b1fb726e) SHA1(5ac0876b6c49d0a99710dda68653664f4d8c1167) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "va-7m.9a", 0x000002, 0x80000, CRC(4c6588cd) SHA1(d14e8cf051ac934ccc989d8c571c6cc9eed34af5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "va-1m.3a", 0x000004, 0x80000, CRC(0b1ace37) SHA1(6f9493c22f667f683db2789972fd16bb94724679) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "va-3m.5a", 0x000006, 0x80000, CRC(44dfe706) SHA1(a013a434df3161a91aafbb35dc4e20dfb3f177f4) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "va_09.12b", 0x00000, 0x08000, CRC(7a99446e) SHA1(ca027f41e3e58be5abc33ad7380746658cb5380a) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "va_18.11c", 0x00000, 0x20000, CRC(de30510e) SHA1(8e878696192606b76a3a0e53553e638d9621cff7) )
+ ROM_LOAD( "va_19.12c", 0x20000, 0x20000, CRC(0610a4ac) SHA1(3da02ea6a7a56c85de898806d2a1cf6bc526c1b3) )
+
+ 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( "va24b.1a", 0x0000, 0x0117, CRC(cc476650) SHA1(a417f7971b8709023932fc2b68c9e3cd699ab6f2) )
+ ROM_LOAD( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ROM_END
+
+/* B-Board 91635B-2 */
+ROM_START( varthu )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "vau_23a.8f", 0x00000, 0x80000, CRC(fbe68726) SHA1(68917d366551d2203400adc3261355dd3b332bcb) )
+ ROM_LOAD16_WORD_SWAP( "vau_22a.7f", 0x80000, 0x80000, CRC(0ed71bbd) SHA1(e7f0f0edf0936a774e122842b09f5c5ce25a96ad) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "va-5m.3a", 0x000000, 0x80000, CRC(b1fb726e) SHA1(5ac0876b6c49d0a99710dda68653664f4d8c1167) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket // == va-5m.7a
+ ROMX_LOAD( "va-7m.5a", 0x000002, 0x80000, CRC(4c6588cd) SHA1(d14e8cf051ac934ccc989d8c571c6cc9eed34af5) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket // == va-7m.9a
+ ROMX_LOAD( "va-1m.4a", 0x000004, 0x80000, CRC(0b1ace37) SHA1(6f9493c22f667f683db2789972fd16bb94724679) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket // == va-1m.3a
+ ROMX_LOAD( "va-3m.6a", 0x000006, 0x80000, CRC(44dfe706) SHA1(a013a434df3161a91aafbb35dc4e20dfb3f177f4) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket // == va-3m.5a
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "va_09.11a", 0x00000, 0x08000, CRC(7a99446e) SHA1(ca027f41e3e58be5abc33ad7380746658cb5380a) ) // == va_09.12b
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "va_18.11c", 0x00000, 0x20000, CRC(de30510e) SHA1(8e878696192606b76a3a0e53553e638d9621cff7) )
+ ROM_LOAD( "va_19.12c", 0x20000, 0x20000, CRC(0610a4ac) SHA1(3da02ea6a7a56c85de898806d2a1cf6bc526c1b3) )
+
+ 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( "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
+
+/* B-Board 88622B-3 */
+ROM_START( varthj )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "vaj_36b.12f", 0x00000, 0x20000, CRC(1d798d6a) SHA1(b12579e9dcb88416bc00653b143832d9347adbaf) )
+ ROM_LOAD16_BYTE( "vaj_42b.12h", 0x00001, 0x20000, CRC(0f720233) SHA1(2d9442ceafd5e2208aa8cd4bcb66861bff6aec47) )
+ ROM_LOAD16_BYTE( "vaj_37b.13f", 0x40000, 0x20000, CRC(24414b17) SHA1(6c0b24cf8045fc033217c737dba2c046d7d0a09a) )
+ ROM_LOAD16_BYTE( "vaj_43b.13h", 0x40001, 0x20000, CRC(34b4b06c) SHA1(3033d1d053ba97d6da17064d7b944a10817b93b1) )
+ ROM_LOAD16_BYTE( "vaj_34b.10f", 0x80000, 0x20000, CRC(87c79aed) SHA1(bb90720d1d04ed6ad276a5230cb078229aa8a40a) )
+ ROM_LOAD16_BYTE( "vaj_40b.10h", 0x80001, 0x20000, CRC(210b4bd0) SHA1(15771c32af9fb4760953ef5475de228200851b42) )
+ ROM_LOAD16_BYTE( "vaj_35b.11f", 0xc0000, 0x20000, CRC(6b0da69f) SHA1(5883bea31a22a44ad7494d6acd523c88b62f8743) )
+ ROM_LOAD16_BYTE( "vaj_41b.11h", 0xc0001, 0x20000, CRC(6542c8a4) SHA1(5f828cf28ef905e4701c92f317e1257a40964a65) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "va_09.4b", 0x000000, 0x20000, CRC(183dfaa8) SHA1(230c65c1b11b3a5d1733455e0130dad2740e2d2d) , ROM_SKIP(7) ) // == va-5m.7a
+ ROMX_LOAD( "va_01.4a", 0x000001, 0x20000, CRC(c41312b5) SHA1(4077cb8200fc403953a08d94652fa8f572dc202d) , ROM_SKIP(7) ) // == va-5m.7a
+ ROMX_LOAD( "va_13.9b", 0x000002, 0x20000, CRC(45537e69) SHA1(18581cbf09b1ec35ea388dce73db7099a1790f60) , ROM_SKIP(7) ) // == va-7m.9a
+ ROMX_LOAD( "va_05.9a", 0x000003, 0x20000, CRC(7065d4e9) SHA1(0e16b4ba2309cca609eaa906c99c61172ca273d0) , ROM_SKIP(7) ) // == va-7m.9a
+ ROMX_LOAD( "va_24.5e", 0x000004, 0x20000, CRC(57191ccf) SHA1(8247b6ca36dd114ea2d030141ce48ea881ea648c) , ROM_SKIP(7) ) // == va-1m.3a
+ ROMX_LOAD( "va_17.5c", 0x000005, 0x20000, CRC(054f5a5b) SHA1(28fc6ff2144daad18b5aed8c08d0b65e6fc2b06f) , ROM_SKIP(7) ) // == va-1m.3a
+ ROMX_LOAD( "va_38.8h", 0x000006, 0x20000, CRC(e117a17e) SHA1(576ec580050e9ce3e3be96b849247288411ff68c) , ROM_SKIP(7) ) // == va-3m.5a
+ ROMX_LOAD( "va_32.8f", 0x000007, 0x20000, CRC(3b4f40b2) SHA1(7033d0f754381fe8d5ed29b58ebbd665a0ba1725) , ROM_SKIP(7) ) // == va-3m.5a
+ ROMX_LOAD( "va_10.5b", 0x100000, 0x20000, CRC(d62750cd) SHA1(0b792f806ed5ab7f6ec0c53bb9bf9965d7ddc47e) , ROM_SKIP(7) ) // == va-5m.7a
+ ROMX_LOAD( "va_02.5a", 0x100001, 0x20000, CRC(11590325) SHA1(9d776f4008db76f8f141db5024a3eed78e364b6a) , ROM_SKIP(7) ) // == va-5m.7a
+ ROMX_LOAD( "va_14.10b", 0x100002, 0x20000, CRC(dc2f4783) SHA1(f9c274d1ab24159980f29db7da5bcc179761237f) , ROM_SKIP(7) ) // == va-7m.9a
+ ROMX_LOAD( "va_06.10a", 0x100003, 0x20000, CRC(06e833ac) SHA1(e8df6e2ef8300b5e412dd74cfe329b5535056e62) , ROM_SKIP(7) ) // == va-7m.9a
+ ROMX_LOAD( "va_25.7e", 0x100004, 0x20000, CRC(51d90690) SHA1(9079d56007aae257f56ce47bbb24873dc18c5bd6) , ROM_SKIP(7) ) // == va-1m.3a
+ ROMX_LOAD( "va_18.7c", 0x100005, 0x20000, CRC(a17817c0) SHA1(23d9ae2ae68e4c8be72da7013109ecdfc30d4b53) , ROM_SKIP(7) ) // == va-1m.3a
+ ROMX_LOAD( "va_39.9h", 0x100006, 0x20000, CRC(b0b12f51) SHA1(68a33736dcb0703e46ba48918a29ecd559575a97) , ROM_SKIP(7) ) // == va-3m.5a
+ ROMX_LOAD( "va_33.9f", 0x100007, 0x20000, CRC(4b003af7) SHA1(0c1d18a3ee7f3a48219f73eb21f88a260a9a001e) , ROM_SKIP(7) ) // == va-3m.5a
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "va_23.13c", 0x00000, 0x08000, CRC(7a99446e) SHA1(ca027f41e3e58be5abc33ad7380746658cb5380a) ) // == va_09.12b
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "va_30.12e", 0x00000, 0x20000, CRC(de30510e) SHA1(8e878696192606b76a3a0e53553e638d9621cff7) ) // == va_18.11c
+ ROM_LOAD( "va_31.13e", 0x20000, 0x20000, CRC(0610a4ac) SHA1(3da02ea6a7a56c85de898806d2a1cf6bc526c1b3) ) // == va_19.12c
+
+ 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( "va22b.1a", 0x0000, 0x0117, CRC(bd7cd574) SHA1(00e49631aceb2871e9313f40264fa55eaaa3538c) )
+ ROM_LOAD( "lwio.12c", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ROM_END
+
+/* B-Board 91634B-2, Japan Resale Ver. */
+ROM_START( varthjr )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "vaj_23b.8f", 0x00000, 0x80000, CRC(ad3d3522) SHA1(db627233f9d8a03c2d4bb31614951a0cdc81600d) )
+ ROM_LOAD16_WORD_SWAP( "vaj_22b.7f", 0x80000, 0x80000, CRC(034e3e55) SHA1(eeb85a827cf18dafbdf0a2828aa39128352857f3) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "va_01.3a", 0x000000, 0x80000, CRC(b1fb726e) SHA1(5ac0876b6c49d0a99710dda68653664f4d8c1167) , ROM_GROUPWORD | ROM_SKIP(6) ) // == va-5m.7a
+ ROMX_LOAD( "va_02.4a", 0x000002, 0x80000, CRC(4c6588cd) SHA1(d14e8cf051ac934ccc989d8c571c6cc9eed34af5) , ROM_GROUPWORD | ROM_SKIP(6) ) // == va-7m.9a
+ ROMX_LOAD( "va_03.5a", 0x000004, 0x80000, CRC(0b1ace37) SHA1(6f9493c22f667f683db2789972fd16bb94724679) , ROM_GROUPWORD | ROM_SKIP(6) ) // == va-1m.3a
+ ROMX_LOAD( "va_04.6a", 0x000006, 0x80000, CRC(44dfe706) SHA1(a013a434df3161a91aafbb35dc4e20dfb3f177f4) , ROM_GROUPWORD | ROM_SKIP(6) ) // == va-3m.5a
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "va_09.12a", 0x00000, 0x08000, CRC(7a99446e) SHA1(ca027f41e3e58be5abc33ad7380746658cb5380a) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "va_18.11c", 0x00000, 0x20000, CRC(de30510e) SHA1(8e878696192606b76a3a0e53553e638d9621cff7) )
+ ROM_LOAD( "va_19.12c", 0x20000, 0x20000, CRC(0610a4ac) SHA1(3da02ea6a7a56c85de898806d2a1cf6bc526c1b3) )
+
+ 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( "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_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ROM_END
+
+/* B-Board 89625B-1 */
+ROM_START( qad )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "qdu_36a.12f", 0x00000, 0x20000, CRC(de9c24a0) SHA1(458962943e8d97d1f4e5a15ac1c8d3bcaa32918b) )
+ ROM_LOAD16_BYTE( "qdu_42a.12h", 0x00001, 0x20000, CRC(cfe36f0c) SHA1(370a47461b2dbb7807f547f5b4b33296572c5d78) )
+ ROM_LOAD16_BYTE( "qdu_37a.13f", 0x40000, 0x20000, CRC(10d22320) SHA1(73b2876d5447f50a850c466789d9297269f732d6) )
+ ROM_LOAD16_BYTE( "qdu_43a.13h", 0x40001, 0x20000, CRC(15e6beb9) SHA1(68d11e9bdd82775060281c5880f249e3515dc235) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "qd_09.4b", 0x000000, 0x20000, CRC(8c3f9f44) SHA1(b5ab20515b7f3e7db023be42d4c7ed1941b37d9b) , ROM_SKIP(7) )
+ ROMX_LOAD( "qd_01.4a", 0x000001, 0x20000, CRC(f688cf8f) SHA1(1b20095e536a24406513715cded249c9be1aa1d2) , ROM_SKIP(7) )
+ ROMX_LOAD( "qd_13.9b", 0x000002, 0x20000, CRC(afbd551b) SHA1(02e2f12196c542a004325689bda8949213ef0333) , ROM_SKIP(7) )
+ ROMX_LOAD( "qd_05.9a", 0x000003, 0x20000, CRC(c3db0910) SHA1(cf3aa3d3b64031dea92a80e5650151315cf871bf) , ROM_SKIP(7) )
+ ROMX_LOAD( "qd_24.5e", 0x000004, 0x20000, CRC(2f1bd0ec) SHA1(017e0dc521bf402c700775ee06cbc124f7ce0e3f) , ROM_SKIP(7) )
+ ROMX_LOAD( "qd_17.5c", 0x000005, 0x20000, CRC(a812f9e2) SHA1(9b7ceb347fbe00c40338b97ee6e8e4d1db9e7cb3) , ROM_SKIP(7) )
+ ROMX_LOAD( "qd_38.8h", 0x000006, 0x20000, CRC(ccdddd1f) SHA1(8304c4cdfaa1ae6b37e2733e9a6ddce9252fd43a) , ROM_SKIP(7) )
+ ROMX_LOAD( "qd_32.8f", 0x000007, 0x20000, CRC(a8d295d3) SHA1(d4d0bdaeb40f652ef33b317cb2b566b4c3550242) , ROM_SKIP(7) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "qd_23.13b", 0x00000, 0x08000, CRC(cfb5264b) SHA1(e662ed5555d02ccf4e62cdbcfa0bbfc019734ee1) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "qdu_30.12c", 0x00000, 0x20000, CRC(f190da84) SHA1(d5cd4c69b5d135a2f2fea8ca9631251c9da79e70) )
+ ROM_LOAD( "qdu_31.13c", 0x20000, 0x20000, CRC(b7583f73) SHA1(3896e0fcf375e9e5d9ba70cc1ed001cd702f9ff7) )
+
+ 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( "qd22b.1a", 0x0000, 0x0117, CRC(783c53ab) SHA1(1bf87e5fe7e7cbcec0d76ed094dcac823e45af14) )
+ ROM_LOAD( "iob1.12e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) /* seen the same pcb with LWIO.12E */
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ROM_END
+
+/* B-Board 91634B-2, Japan Resale Ver. */
+ROM_START( qadjr )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "qad_23a.8f", 0x00000, 0x80000, CRC(4d3553de) SHA1(07eabcb02fbbe11397ce91405a2e6bb53b3d5d4f) )
+ ROM_LOAD16_WORD_SWAP( "qad_22a.7f", 0x80000, 0x80000, CRC(3191ddd0) SHA1(2806021a5dc809ca43692bbe9c4f5ef690c9ac14) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "qad_01.3a", 0x000000, 0x80000, CRC(9d853b57) SHA1(380b41a3eced1f4a5523999b63d80b7593a85eca) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "qad_02.4a", 0x000002, 0x80000, CRC(b35976c4) SHA1(3e128db89186c4e88c46be9da310b755ae5b816c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "qad_03.5a", 0x000004, 0x80000, CRC(cea4ca8c) SHA1(5c50758647419129f2b35ab4dc712796fa801c12) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "qad_04.6a", 0x000006, 0x80000, CRC(41b74d1b) SHA1(78aa2faec512c505f98b4e8053fc161941d41773) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "qad_09.12a", 0x00000, 0x08000, CRC(733161cc) SHA1(dfb8c5a1037bd3b2712fb327122ec39ceb993b8d) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "qad_18.11c", 0x00000, 0x20000, CRC(2bfe6f6a) SHA1(b2a98ac034c65b7ac8167431f05f35d4799032ea) )
+ ROM_LOAD( "qad_19.12c", 0x20000, 0x20000, CRC(13d3236b) SHA1(785d49de484e9ac6971eaceebebfecb8e58563f6) )
+
+ 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( "qad63b.1a", 0x0000, 0x0117, CRC(b3312b13) SHA1(24bd6235fe273a672de2d4749e57280994f11819) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 91635B-2 */
+ROM_START( wof )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "tk2e_23c.8f", 0x000000, 0x80000, CRC(0d708505) SHA1(10b8cb53a4600e3e76f471a3eee8a600e93096fc) )
+ ROM_LOAD16_WORD_SWAP( "tk2e_22c.7f", 0x080000, 0x80000, CRC(608c17e3) SHA1(52c2d05279623d93b27856e6b76830796a089eae) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-5m.7a", 0x200000, 0x80000, CRC(291f0f0b) SHA1(094baf0f960f25fc2525b3b1cc378a49d9a0955d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-7m.9a", 0x200002, 0x80000, CRC(3edeb949) SHA1(c155698dd9ee9eb24bbc97a21118ef2e897ea82f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-6m.8a", 0x200004, 0x80000, CRC(1abd14d6) SHA1(dffff3126f102b4ec028a81405fc5b9bd7bb65b3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-8m.10a", 0x200006, 0x80000, CRC(b27948e3) SHA1(870d5d23f56798831c641e877ea94217058b2ddc) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ 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( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) )
+ ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) )
+
+ ROM_REGION( 0x0200, "bboardplds", 0 )
+ ROM_LOAD( "tk263b.1a", 0x0000, 0x0117, CRC(c4b0349b) SHA1(b4873dd5ad8735048deb3475222dde3c0b67eaaf) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+
+ ROM_REGION( 0x0200, "dboardplds", 0 )
+ ROM_LOAD( "d7l1.7l", 0x0000, 0x0117, CRC(27b7410d) SHA1(06d0cba0226850f100ff1f539bd7d5db0f90c730) )
+ ROM_LOAD( "d8l1.8l", 0x0000, 0x0117, CRC(539fc7da) SHA1(cad5c91629c6247e49ccbbcbfe6b08229eafae07) )
+ ROM_LOAD( "d9k1.9k", 0x0000, 0x0117, NO_DUMP ) // pal verification required
+ ROM_LOAD( "d10f1.10f", 0x0000, 0x0117, CRC(6619c494) SHA1(3aef656c07182a2186f810f30e0d854dd5bd8d18) )
+ROM_END
+
+/* B-Board 91635B-2 */
+/* FIXME Probably this set uses a patched program ROM coming from a desuicided board, or simply the original C-Board
+ is not a 92641C-1. A verification and a new fresh dump are needed to confirm if it's genuine or not. */
+ROM_START( wofr1 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "tk2e_23b.8f", 0x000000, 0x80000, CRC(11fb2ed1) SHA1(19e09ad6f9edc7997b030cddfe1d9c96d88135f2) ) // patched?
+ ROM_LOAD16_WORD_SWAP( "tk2e_22b.7f", 0x080000, 0x80000, CRC(479b3f24) SHA1(9fb8ae06856fe115addfb6794c28978a4f6716ec) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-5m.7a", 0x200000, 0x80000, CRC(291f0f0b) SHA1(094baf0f960f25fc2525b3b1cc378a49d9a0955d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-7m.9a", 0x200002, 0x80000, CRC(3edeb949) SHA1(c155698dd9ee9eb24bbc97a21118ef2e897ea82f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-6m.8a", 0x200004, 0x80000, CRC(1abd14d6) SHA1(dffff3126f102b4ec028a81405fc5b9bd7bb65b3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-8m.10a", 0x200006, 0x80000, CRC(b27948e3) SHA1(870d5d23f56798831c641e877ea94217058b2ddc) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ 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( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) )
+ ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) )
+
+ ROM_REGION( 0x0200, "bboardplds", 0 )
+ ROM_LOAD( "tk263b.1a", 0x0000, 0x0117, CRC(c4b0349b) SHA1(b4873dd5ad8735048deb3475222dde3c0b67eaaf) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+
+ ROM_REGION( 0x0200, "dboardplds", 0 )
+ ROM_LOAD( "d7l1.7l", 0x0000, 0x0117, CRC(27b7410d) SHA1(06d0cba0226850f100ff1f539bd7d5db0f90c730) )
+ ROM_LOAD( "d8l1.8l", 0x0000, 0x0117, CRC(539fc7da) SHA1(cad5c91629c6247e49ccbbcbfe6b08229eafae07) )
+ ROM_LOAD( "d9k1.9k", 0x0000, 0x0117, NO_DUMP ) // pal verification required
+ ROM_LOAD( "d10f1.10f", 0x0000, 0x0117, CRC(6619c494) SHA1(3aef656c07182a2186f810f30e0d854dd5bd8d18) )
+ROM_END
+
+/* B-Board 91635B-2 */
+ROM_START( wofu )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "tk2u_23c.8f", 0x000000, 0x80000, CRC(29b89c12) SHA1(2b474b4f45a4ccb0db2a4d5e7ef30e28b5c6cc3a) )
+ ROM_LOAD16_WORD_SWAP( "tk2u_22c.7f", 0x080000, 0x80000, CRC(f5af4774) SHA1(f6d53cf5b330e6d68f84da3e8c831a475585b93e) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-5m.7a", 0x200000, 0x80000, CRC(291f0f0b) SHA1(094baf0f960f25fc2525b3b1cc378a49d9a0955d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-7m.9a", 0x200002, 0x80000, CRC(3edeb949) SHA1(c155698dd9ee9eb24bbc97a21118ef2e897ea82f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-6m.8a", 0x200004, 0x80000, CRC(1abd14d6) SHA1(dffff3126f102b4ec028a81405fc5b9bd7bb65b3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-8m.10a", 0x200006, 0x80000, CRC(b27948e3) SHA1(870d5d23f56798831c641e877ea94217058b2ddc) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ 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( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) )
+ ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) )
+
+ ROM_REGION( 0x0200, "bboardplds", 0 )
+ ROM_LOAD( "tk263b.1a", 0x0000, 0x0117, CRC(c4b0349b) SHA1(b4873dd5ad8735048deb3475222dde3c0b67eaaf) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+
+ ROM_REGION( 0x0200, "dboardplds", 0 )
+ ROM_LOAD( "d7l1.7l", 0x0000, 0x0117, CRC(27b7410d) SHA1(06d0cba0226850f100ff1f539bd7d5db0f90c730) )
+ ROM_LOAD( "d8l1.8l", 0x0000, 0x0117, CRC(539fc7da) SHA1(cad5c91629c6247e49ccbbcbfe6b08229eafae07) )
+ ROM_LOAD( "d9k1.9k", 0x0000, 0x0117, NO_DUMP )
+ ROM_LOAD( "d10f1.10f", 0x0000, 0x0117, CRC(6619c494) SHA1(3aef656c07182a2186f810f30e0d854dd5bd8d18) )
+ROM_END
+
+/* B-Board 91634B-2 */
+/* Note that this Asia set seems to be the only one where GFX are stored into MASK ROMs instead of the usual EPROMs. */
+/* FIXME Probably this set uses a patched program ROM coming from a desuicided board, or simply the original C-Board
+ is not a 92641C-1. A verification and a new fresh dump are needed to confirm if it's genuine or not. */
+ROM_START( wofa )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "tk2a_23c.8f", 0x000000, 0x80000, CRC(2e024628) SHA1(647f8700fe3b410d798a823bac2e4a89cc9ad8d5) ) // patched?
+ ROM_LOAD16_WORD_SWAP( "tk2a_22c.7f", 0x080000, 0x80000, CRC(900ad4cd) SHA1(988007447f93f3467029b9c29fd9670a7ecadaa3) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-5m.7a", 0x200000, 0x80000, CRC(291f0f0b) SHA1(094baf0f960f25fc2525b3b1cc378a49d9a0955d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-7m.9a", 0x200002, 0x80000, CRC(3edeb949) SHA1(c155698dd9ee9eb24bbc97a21118ef2e897ea82f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-6m.8a", 0x200004, 0x80000, CRC(1abd14d6) SHA1(dffff3126f102b4ec028a81405fc5b9bd7bb65b3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-8m.10a", 0x200006, 0x80000, CRC(b27948e3) SHA1(870d5d23f56798831c641e877ea94217058b2ddc) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ 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( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) )
+ ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) )
+
+ ROM_REGION( 0x0200, "bboardplds", 0 )
+ ROM_LOAD( "tk263b.1a", 0x0000, 0x0117, CRC(c4b0349b) SHA1(b4873dd5ad8735048deb3475222dde3c0b67eaaf) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+
+ ROM_REGION( 0x0200, "dboardplds", 0 )
+ ROM_LOAD( "d7l1.7l", 0x0000, 0x0117, CRC(27b7410d) SHA1(06d0cba0226850f100ff1f539bd7d5db0f90c730) )
+ ROM_LOAD( "d8l1.8l", 0x0000, 0x0117, CRC(539fc7da) SHA1(cad5c91629c6247e49ccbbcbfe6b08229eafae07) )
+ ROM_LOAD( "d9k1.9k", 0x0000, 0x0117, NO_DUMP )
+ ROM_LOAD( "d10f1.10f", 0x0000, 0x0117, CRC(6619c494) SHA1(3aef656c07182a2186f810f30e0d854dd5bd8d18) )
+ROM_END
+
+/* B-Board 91634B-2 */
+ROM_START( wofj )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "tk2j_23c.8f", 0x000000, 0x80000, CRC(9b215a68) SHA1(fc83ed26441fbfb15e21b093c7a6bed44b586e51) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2_01.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-1m.3a
+ ROMX_LOAD( "tk2_02.4a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-3m.5a
+ ROMX_LOAD( "tk2_03.5a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-2m.4a
+ ROMX_LOAD( "tk2_04.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-4m.6a
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ 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( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) )
+ ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) )
+
+ ROM_REGION( 0x0200, "bboardplds", 0 )
+ ROM_LOAD( "tk263b.1a", 0x0000, 0x0117, CRC(c4b0349b) SHA1(b4873dd5ad8735048deb3475222dde3c0b67eaaf) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+
+ ROM_REGION( 0x0200, "dboardplds", 0 )
+ ROM_LOAD( "d7l1.7l", 0x0000, 0x0117, CRC(27b7410d) SHA1(06d0cba0226850f100ff1f539bd7d5db0f90c730) )
+ ROM_LOAD( "d8l1.8l", 0x0000, 0x0117, CRC(539fc7da) SHA1(cad5c91629c6247e49ccbbcbfe6b08229eafae07) )
+ ROM_LOAD( "d9k1.9k", 0x0000, 0x0117, NO_DUMP ) // pal verification required
+ ROM_LOAD( "d10f1.10f", 0x0000, 0x0117, CRC(6619c494) SHA1(3aef656c07182a2186f810f30e0d854dd5bd8d18) )
+ROM_END
+
+/* Chinese bootleg board without QSound */
+ROM_START( wofhfh )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "23", 0x000000, 0x80000, CRC(6ae4b312) SHA1(fa39f69385d180d90bccd8c5dc9262edd04a6457) )
+ ROM_LOAD16_WORD_SWAP( "22", 0x080000, 0x80000, CRC(94e8d01a) SHA1(875763f6b22734c1a5a890e6c8063515c134045b) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "1", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "2", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "3", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "4", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "5", 0x200000, 0x80000, CRC(34949d7b) SHA1(90925a77b08c97cfdbf0dbfbdaa359d1b33b6ae4) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "6", 0x200002, 0x80000, CRC(dfa70971) SHA1(477b99687de38220f0aec9fbba44db03f72cb62a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "7", 0x200004, 0x80000, CRC(073686a6) SHA1(b774a8d4c6cdbedb123ac01455f718305f23b619) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "8", 0x200006, 0x80000, CRC(5300f8db) SHA1(b23a19910f680d60ff8afcbc15c471e74ee3569a) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* 128k for the audio CPU (+banks) */
+ ROM_LOAD( "9", 0x00000, 0x08000, CRC(86fe8a97) SHA1(cab82bcd0f49bcb40201b439cfdd10266f46752a) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* samples */
+ ROM_LOAD( "18", 0x00000, 0x20000, CRC(c04be720) SHA1(2e544e0a0358b6afbdf826d35d9c4c59e4787a93) )
+ ROM_LOAD( "19", 0x20000, 0x20000, CRC(fbb8d8c1) SHA1(8a7689bb7ed56243333133cbacf01a0ae825201e) )
+ROM_END
+
+/* B-Board 91635B-2 */
+ROM_START( sf2hf )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "s2te_23.8f", 0x000000, 0x80000, CRC(2dd72514) SHA1(4411353c389669299c27ac183c7e1caa3d4cec90) )
+ ROM_LOAD16_WORD_SWAP( "s2te_22.7f", 0x080000, 0x80000, CRC(aea6e035) SHA1(ce5fe961b2c1c95d231d1235bfc03b47de489f2a) )
+ ROM_LOAD16_WORD_SWAP( "s2te_21.6f", 0x100000, 0x80000, CRC(fd200288) SHA1(3817b67ab77c7b3d4a573a63f18671bea6905e26) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ 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( "s9263b.1a", 0x0000, 0x0117, CRC(0a7ecfe0) SHA1(f75e7eed4604fcf68273197fe3dd7f0d7a313ada) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 91635B-2 */
+ROM_START( sf2hfu )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "s2tu_23.8f", 0x000000, 0x80000, CRC(89a1fc38) SHA1(aafb40fc311e318250973be8c6aa0d3f7902cb3c) )
+ ROM_LOAD16_WORD_SWAP( "s2tu_22.7f", 0x080000, 0x80000, CRC(aea6e035) SHA1(ce5fe961b2c1c95d231d1235bfc03b47de489f2a) ) // == s2te_22.7f
+ ROM_LOAD16_WORD_SWAP( "s2tu_21.6f", 0x100000, 0x80000, CRC(fd200288) SHA1(3817b67ab77c7b3d4a573a63f18671bea6905e26) ) // == s2te_21.6f
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ 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( "s9263b.1a", 0x0000, 0x0117, CRC(0a7ecfe0) SHA1(f75e7eed4604fcf68273197fe3dd7f0d7a313ada) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 91634B-2 */
+ROM_START( sf2hfj )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "s2tj_23.8f", 0x000000, 0x80000, CRC(ea73b4dc) SHA1(efbc73277d00bac86505755db35225e14ea25a36) )
+ ROM_LOAD16_WORD_SWAP( "s2tj_22.7f", 0x080000, 0x80000, CRC(aea6e035) SHA1(ce5fe961b2c1c95d231d1235bfc03b47de489f2a) ) // == s2te_22.7f
+ ROM_LOAD16_WORD_SWAP( "s2tj_21.6f", 0x100000, 0x80000, CRC(fd200288) SHA1(3817b67ab77c7b3d4a573a63f18671bea6905e26) ) // == s2te_21.6f
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92_01.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-1m.3a
+ ROMX_LOAD( "s92_02.4a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-3m.5a
+ ROMX_LOAD( "s92_03.5a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-2m.4a
+ ROMX_LOAD( "s92_04.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-4m.6a
+ ROMX_LOAD( "s92_05.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-5m.7a
+ ROMX_LOAD( "s92_06.8a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-7m.9a
+ ROMX_LOAD( "s92_07.9a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-6m.8a
+ ROMX_LOAD( "s92_08.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-8m.10a
+ ROMX_LOAD( "s2t_10.3c", 0x400000, 0x80000, CRC(3c042686) SHA1(307e1ca8ad0b11f3265b7e5467ba4c90f90ec97f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s2t_11.4c", 0x400002, 0x80000, CRC(8b7e7183) SHA1(c8eaedfbddbf0b83311d2dbb9e19a1efef0dffa9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s2t_12.5c", 0x400004, 0x80000, CRC(293c888c) SHA1(5992ea9aa90fdd8b9dacca9d2a1fdaf25ac2cb65) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s2t_13.6c", 0x400006, 0x80000, CRC(842b35a4) SHA1(35864a140a0c8d76501e69b2e01bc4ad76f27909) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.12a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) ) // == s92_09.11a
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ 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( "s9263b.1a", 0x0000, 0x0117, CRC(0a7ecfe0) SHA1(f75e7eed4604fcf68273197fe3dd7f0d7a313ada) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 91635B-2 */
+ROM_START( dino )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "cde_23a.8f", 0x000000, 0x80000, CRC(8f4e585e) SHA1(55ecba3652066cdafad140c4524b1fc81228e69b) )
+ ROM_LOAD16_WORD_SWAP( "cde_22a.7f", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) )
+ ROM_LOAD16_WORD_SWAP( "cde_21a.6f", 0x100000, 0x80000, CRC(66d23de2) SHA1(19b8a365f630411d524d055459020f4c8cf930f1) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ 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( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) )
+ ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) )
+
+ ROM_REGION( 0x0200, "bboardplds", 0 )
+ ROM_LOAD( "cd63b.1a", 0x0000, 0x0117, CRC(ef72e902) SHA1(82fea3f63869c245d0dce2809085208fe719b57a) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+
+ ROM_REGION( 0x0200, "dboardplds", 0 )
+ ROM_LOAD( "d7l1.7l", 0x0000, 0x0117, CRC(27b7410d) SHA1(06d0cba0226850f100ff1f539bd7d5db0f90c730) )
+ ROM_LOAD( "d8l1.8l", 0x0000, 0x0117, CRC(539fc7da) SHA1(cad5c91629c6247e49ccbbcbfe6b08229eafae07) )
+ ROM_LOAD( "d9k2.9k", 0x0000, 0x0117, CRC(cd85a156) SHA1(a88f8939c5d93e65d7bcc0eb3ee5b6f4f1114e3a) )
+ ROM_LOAD( "d10f1.10f", 0x0000, 0x0117, CRC(6619c494) SHA1(3aef656c07182a2186f810f30e0d854dd5bd8d18) )
+ROM_END
+
+/* B-Board 91635B-2 */
+ROM_START( dinou )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "cdu_23a.8f", 0x000000, 0x80000, CRC(7c2543cd) SHA1(6b7a90392fe4c31b2d57620b0ddcb3412401efc3) )
+ ROM_LOAD16_WORD_SWAP( "cdu_22a.7f", 0x080000, 0x80000, CRC(d19f981e) SHA1(acb951caba3867c21149286185b94beb37721bd2) )
+ ROM_LOAD16_WORD_SWAP( "cdu_21a.6f", 0x100000, 0x80000, CRC(66d23de2) SHA1(19b8a365f630411d524d055459020f4c8cf930f1) ) // == cde_21a.6f
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ 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( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) )
+ ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) )
+
+ ROM_REGION( 0x0200, "bboardplds", 0 )
+ ROM_LOAD( "cd63b.1a", 0x0000, 0x0117, CRC(ef72e902) SHA1(82fea3f63869c245d0dce2809085208fe719b57a) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+
+ ROM_REGION( 0x0200, "dboardplds", 0 )
+ ROM_LOAD( "d7l1.7l", 0x0000, 0x0117, CRC(27b7410d) SHA1(06d0cba0226850f100ff1f539bd7d5db0f90c730) )
+ ROM_LOAD( "d8l1.8l", 0x0000, 0x0117, CRC(539fc7da) SHA1(cad5c91629c6247e49ccbbcbfe6b08229eafae07) )
+ ROM_LOAD( "d9k2.9k", 0x0000, 0x0117, CRC(cd85a156) SHA1(a88f8939c5d93e65d7bcc0eb3ee5b6f4f1114e3a) )
+ ROM_LOAD( "d10f1.10f", 0x0000, 0x0117, CRC(6619c494) SHA1(3aef656c07182a2186f810f30e0d854dd5bd8d18) )
+ROM_END
+
+/* B-Board 91634B-2 */
+ROM_START( dinoj )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "cdj_23a.8f", 0x000000, 0x80000, CRC(5f3ece96) SHA1(33ffb08ff8c5d3bfb2fa17fa00f254da2fc61f44) )
+ ROM_LOAD16_WORD_SWAP( "cdj_22a.7f", 0x080000, 0x80000, CRC(a0d8de29) SHA1(79d916f181804b6176581efe2a1b7f210ec79c07) )
+ ROM_LOAD16_WORD_SWAP( "cdj_21a.6f", 0x100000, 0x80000, CRC(66d23de2) SHA1(19b8a365f630411d524d055459020f4c8cf930f1) ) // == cde_21a.6f
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd_01.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cd-1m.3a
+ ROMX_LOAD( "cd_02.4a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cd-3m.5a
+ ROMX_LOAD( "cd_03.5a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cd-2m.4a
+ ROMX_LOAD( "cd_04.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cd-4m.6a
+ ROMX_LOAD( "cd_05.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cd-5m.7a
+ ROMX_LOAD( "cd_06.8a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cd-7m.9a
+ ROMX_LOAD( "cd_07.9a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cd-6m.8a
+ ROMX_LOAD( "cd_08.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cd-8m.10a
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ 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( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) )
+ ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) )
+
+ ROM_REGION( 0x0200, "bboardplds", 0 )
+ ROM_LOAD( "cd63b.1a", 0x0000, 0x0117, CRC(ef72e902) SHA1(82fea3f63869c245d0dce2809085208fe719b57a) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+
+ ROM_REGION( 0x0200, "dboardplds", 0 )
+ ROM_LOAD( "d7l1.7l", 0x0000, 0x0117, CRC(27b7410d) SHA1(06d0cba0226850f100ff1f539bd7d5db0f90c730) )
+ ROM_LOAD( "d8l1.8l", 0x0000, 0x0117, CRC(539fc7da) SHA1(cad5c91629c6247e49ccbbcbfe6b08229eafae07) )
+ ROM_LOAD( "d9k2.9k", 0x0000, 0x0117, CRC(cd85a156) SHA1(a88f8939c5d93e65d7bcc0eb3ee5b6f4f1114e3a) )
+ ROM_LOAD( "d10f1.10f", 0x0000, 0x0117, CRC(6619c494) SHA1(3aef656c07182a2186f810f30e0d854dd5bd8d18) )
+ROM_END
+
+/* Chinese bootleg board */
+ROM_START( dinohunt )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "u23", 0x000000, 0x80000, CRC(8d5ddc5d) SHA1(3ed1da71d73425308d0c3ac1a01a7242e60b6677) )
+ ROM_LOAD16_WORD_SWAP( "u22", 0x080000, 0x80000, CRC(f72cd219) SHA1(a3f580bd328b54d2546ae7e94262c1a706d27172) )
+ ROM_LOAD16_WORD_SWAP( "u21", 0x100000, 0x80000, CRC(bc275b76) SHA1(1f7f7533b4ccb511dc479f531d9d6740d3ca6712) )
+ ROM_LOAD16_WORD_SWAP( "u20", 0x180000, 0x80000, CRC(8987c975) SHA1(3fd856805d627f855f72acc7aacc2e8ecf0f12bd) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "u1", 0x000000, 0x80000, CRC(a01a9fb5) SHA1(d1ab4c7ead04932c60923363a0a661d0d1472aaa) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "u2", 0x000002, 0x80000, CRC(bdf02c17) SHA1(046ba4c589a22a7ac65c86baaae18eff0bff6ecb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "u3", 0x000004, 0x80000, CRC(058beefa) SHA1(0d09ab5a200643b5a16e0313228f7ea243752bd0) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "u4", 0x000006, 0x80000, CRC(5028a9f1) SHA1(ff3a988153860e76beb79918ad896e702c3ecd3d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "u5", 0x200000, 0x80000, CRC(d77f89ea) SHA1(1dd8c2a18742fd8483ecade31aed384c686ed244) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "u6", 0x200002, 0x80000, CRC(bfbcb034) SHA1(c1eb4d420b10ffa05197d9a82c7adac4d265c546) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "u7", 0x200004, 0x80000, CRC(a2544d4e) SHA1(def704055e041bc7c3b8cf7977249b69aa7924a8) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "u8", 0x200006, 0x80000, CRC(8869bbb1) SHA1(e53f77baffb913bf3ef5396d84fbfbaec6a90ca2) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "u9", 0x00000, 0x08000, CRC(2eb16a83) SHA1(067ea0bfc2c1e73520d6b836c72fbb9da9998311) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* samples */
+ ROM_LOAD( "u18", 0x00000, 0x20000, CRC(8d2899ba) SHA1(0b3ac6cf2ce0323e3bfc9da3ebfcb0fd14bc405b) )
+ ROM_LOAD( "u19", 0x20000, 0x20000, CRC(b34a4b42) SHA1(3eeb9e33bb911359e03d44949ac58439a3d3d54b) )
+ROM_END
+
+/* B-Board 91635B-2 */
+ROM_START( punisher )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "pse_26.11e", 0x000000, 0x20000, CRC(389a99d2) SHA1(e97f4225554e4603cb0e3edd296a90bb2e467ca7) )
+ ROM_LOAD16_BYTE( "pse_30.11f", 0x000001, 0x20000, CRC(68fb06ac) SHA1(189e25ca7e4aaa80492c03ce06696952cc1b1553) )
+ ROM_LOAD16_BYTE( "pse_27.12e", 0x040000, 0x20000, CRC(3eb181c3) SHA1(a2442449f4bbe3be03d2be7d4e2cbb69f9741dac) )
+ ROM_LOAD16_BYTE( "pse_31.12f", 0x040001, 0x20000, CRC(37108e7b) SHA1(78aaa6e2913e6b1b852b39416557ac4a394d7d8b) )
+ ROM_LOAD16_BYTE( "pse_24.9e", 0x080000, 0x20000, CRC(0f434414) SHA1(aaacf835a93551fc792571d6e824a01f3c5d4469) )
+ ROM_LOAD16_BYTE( "pse_28.9f", 0x080001, 0x20000, CRC(b732345d) SHA1(472d84f846e9f73f129562d78352376194e0211e) )
+ ROM_LOAD16_BYTE( "pse_25.10e", 0x0c0000, 0x20000, CRC(b77102e2) SHA1(2e39b2c2c0eed5ca2320a57e69bcf377f809a20c) )
+ ROM_LOAD16_BYTE( "pse_29.10f", 0x0c0001, 0x20000, CRC(ec037bce) SHA1(f86e7feb63d7662a38048e6d51d7b5a69dafaffb) )
+ ROM_LOAD16_WORD_SWAP( "ps_21.6f", 0x100000, 0x80000, CRC(8affa5a9) SHA1(268760b83b1723ff50a019ec51ef7af2e49935bf) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "ps-1m.3a", 0x000000, 0x80000, CRC(77b7ccab) SHA1(e08e5d55a79e4c0c8ca819d6d7d2a14f753c6ec3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps-3m.5a", 0x000002, 0x80000, CRC(0122720b) SHA1(5f0d3097e097f64106048156fbb0d343fe78fffa) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps-2m.4a", 0x000004, 0x80000, CRC(64fa58d4) SHA1(d4a774285ed15273195b6b26d2965ce370e54e73) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps-4m.6a", 0x000006, 0x80000, CRC(60da42c8) SHA1(95eec4a58d9628a2d9764951dd8dc11e4860a899) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps-5m.7a", 0x200000, 0x80000, CRC(c54ea839) SHA1(0733f37329edd9d0cace1319a7544b40aa7ecb0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps-7m.9a", 0x200002, 0x80000, CRC(04c5acbd) SHA1(fddc94b0f36d4d22d7c357856ae15b7514c342d3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps-6m.8a", 0x200004, 0x80000, CRC(a544f4cc) SHA1(9552df8934ba25f19a22f2e07783712d8c8ef03c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps-8m.10a", 0x200006, 0x80000, CRC(8f02f436) SHA1(a2f0ebb7e9593469c7b843f8962a66f3d77f79e5) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "ps_q.5k", 0x00000, 0x08000, CRC(49ff4446) SHA1(87af12f87a940a6c5428b4574ad44a4b54867bc3) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "ps-q1.1k", 0x000000, 0x80000, CRC(31fd8726) SHA1(1d73a76682e9fb908db0c55b9a18163f7539fea1) )
+ ROM_LOAD( "ps-q2.2k", 0x080000, 0x80000, CRC(980a9eef) SHA1(36571381f349bc726508a7e618ba1c635ec9d271) )
+ ROM_LOAD( "ps-q3.3k", 0x100000, 0x80000, CRC(0dd44491) SHA1(903cea1d7f3120545ea3229d30fbd687d11ad68f) )
+ ROM_LOAD( "ps-q4.4k", 0x180000, 0x80000, CRC(bed42f03) SHA1(21302f7e75f9c795392a3b34e16a959fc5f6e4e9) )
+
+ 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( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) )
+ ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) )
+
+ ROM_REGION( 0x0200, "bboardplds", 0 )
+ ROM_LOAD( "ps63b.1a", 0x0000, 0x0117, NO_DUMP )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+
+ ROM_REGION( 0x0200, "dboardplds", 0 )
+ ROM_LOAD( "d7l1.7l", 0x0000, 0x0117, CRC(27b7410d) SHA1(06d0cba0226850f100ff1f539bd7d5db0f90c730) )
+ ROM_LOAD( "d8l1.8l", 0x0000, 0x0117, CRC(539fc7da) SHA1(cad5c91629c6247e49ccbbcbfe6b08229eafae07) )
+ ROM_LOAD( "d9k2.9k", 0x0000, 0x0117, CRC(cd85a156) SHA1(a88f8939c5d93e65d7bcc0eb3ee5b6f4f1114e3a) )
+ ROM_LOAD( "d10f1.10f", 0x0000, 0x0117, CRC(6619c494) SHA1(3aef656c07182a2186f810f30e0d854dd5bd8d18) )
+ROM_END
+
+/* B-Board 91635B-2 */
+ROM_START( punisheru )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE ( "psu_26.11e", 0x000000, 0x20000, CRC(9236d121) SHA1(52d5d00009f61089157319943cde8f1a1ed48ad4) )
+ ROM_LOAD16_BYTE ( "psu_30.11f", 0x000001, 0x20000, CRC(8320e501) SHA1(bb3b74135df9dd494a277a1bc3bef2917351203f) )
+ ROM_LOAD16_BYTE ( "psu_27.12e", 0x040000, 0x20000, CRC(61c960a1) SHA1(f8fe651283cc1f138d013cab65b833505de6df9f) )
+ ROM_LOAD16_BYTE ( "psu_31.12f", 0x040001, 0x20000, CRC(78d4c298) SHA1(6e7fbaed9ad9230a6e5035c6eda64b2f1f83048c) )
+ ROM_LOAD16_BYTE ( "psu_24.9e", 0x080000, 0x20000, CRC(1cfecad7) SHA1(f4dcf5066dc59507cece0c53ccc208e4323ae26f) )
+ ROM_LOAD16_BYTE ( "psu_28.9f", 0x080001, 0x20000, CRC(bdf921c1) SHA1(89a6709756c7c32e7c888806f983ce5af61cfcef) )
+ ROM_LOAD16_BYTE ( "psu_25.10e", 0x0c0000, 0x20000, CRC(c51acc94) SHA1(34ffd6392914e3e67d7d0804215bd1193846b554) )
+ ROM_LOAD16_BYTE ( "psu_29.10f", 0x0c0001, 0x20000, CRC(52dce1ca) SHA1(45277abe34feacdcaedaec56f513b7437d4260e9) )
+ ROM_LOAD16_WORD_SWAP( "ps_21.6f", 0x100000, 0x80000, CRC(8affa5a9) SHA1(268760b83b1723ff50a019ec51ef7af2e49935bf) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "ps-1m.3a", 0x000000, 0x80000, CRC(77b7ccab) SHA1(e08e5d55a79e4c0c8ca819d6d7d2a14f753c6ec3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps-3m.5a", 0x000002, 0x80000, CRC(0122720b) SHA1(5f0d3097e097f64106048156fbb0d343fe78fffa) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps-2m.4a", 0x000004, 0x80000, CRC(64fa58d4) SHA1(d4a774285ed15273195b6b26d2965ce370e54e73) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps-4m.6a", 0x000006, 0x80000, CRC(60da42c8) SHA1(95eec4a58d9628a2d9764951dd8dc11e4860a899) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps-5m.7a", 0x200000, 0x80000, CRC(c54ea839) SHA1(0733f37329edd9d0cace1319a7544b40aa7ecb0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps-7m.9a", 0x200002, 0x80000, CRC(04c5acbd) SHA1(fddc94b0f36d4d22d7c357856ae15b7514c342d3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps-6m.8a", 0x200004, 0x80000, CRC(a544f4cc) SHA1(9552df8934ba25f19a22f2e07783712d8c8ef03c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps-8m.10a", 0x200006, 0x80000, CRC(8f02f436) SHA1(a2f0ebb7e9593469c7b843f8962a66f3d77f79e5) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "ps_q.5k", 0x00000, 0x08000, CRC(49ff4446) SHA1(87af12f87a940a6c5428b4574ad44a4b54867bc3) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "ps-q1.1k", 0x000000, 0x80000, CRC(31fd8726) SHA1(1d73a76682e9fb908db0c55b9a18163f7539fea1) )
+ ROM_LOAD( "ps-q2.2k", 0x080000, 0x80000, CRC(980a9eef) SHA1(36571381f349bc726508a7e618ba1c635ec9d271) )
+ ROM_LOAD( "ps-q3.3k", 0x100000, 0x80000, CRC(0dd44491) SHA1(903cea1d7f3120545ea3229d30fbd687d11ad68f) )
+ ROM_LOAD( "ps-q4.4k", 0x180000, 0x80000, CRC(bed42f03) SHA1(21302f7e75f9c795392a3b34e16a959fc5f6e4e9) )
+
+ 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( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) )
+ ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) )
+
+ ROM_REGION( 0x0200, "bboardplds", 0 )
+ ROM_LOAD( "ps63b.1a", 0x0000, 0x0117, NO_DUMP )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+
+ ROM_REGION( 0x0200, "dboardplds", 0 )
+ ROM_LOAD( "d7l1.7l", 0x0000, 0x0117, CRC(27b7410d) SHA1(06d0cba0226850f100ff1f539bd7d5db0f90c730) )
+ ROM_LOAD( "d8l1.8l", 0x0000, 0x0117, CRC(539fc7da) SHA1(cad5c91629c6247e49ccbbcbfe6b08229eafae07) )
+ ROM_LOAD( "d9k2.9k", 0x0000, 0x0117, CRC(cd85a156) SHA1(a88f8939c5d93e65d7bcc0eb3ee5b6f4f1114e3a) )
+ ROM_LOAD( "d10f1.10f", 0x0000, 0x0117, CRC(6619c494) SHA1(3aef656c07182a2186f810f30e0d854dd5bd8d18) )
+ROM_END
+
+/* B-Board 91635B-2 */
+ROM_START( punisherh )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "psh_26.11e", 0x000000, 0x20000, CRC(6ad2bb83) SHA1(c1c5e8922af948955f53eb56d1b9902dd8944a71) )
+ ROM_LOAD16_BYTE( "psh_30.11f", 0x000001, 0x20000, CRC(058d3659) SHA1(b3fad151f80e0cc21afff3ec00b7871f21d40437) )
+ ROM_LOAD16_BYTE( "psh_27.12e", 0x040000, 0x20000, CRC(579f4fd3) SHA1(5459da68e844db6e6249186aa31fe71aa72d9ff4) )
+ ROM_LOAD16_BYTE( "psh_31.12f", 0x040001, 0x20000, CRC(2c9f70b5) SHA1(c5d89f37def4b9340a0325e616306f0e9e68ab13) )
+ ROM_LOAD16_BYTE( "psh_24.9e", 0x080000, 0x20000, CRC(faa14841) SHA1(d998f1cdfba3305eb1398909d4b07e7492dbdec0) )
+ ROM_LOAD16_BYTE( "psh_28.9f", 0x080001, 0x20000, CRC(5c5b1f20) SHA1(47ee27dc9849a69c54a5a0e269b20e61f17f34c0) )
+ ROM_LOAD16_BYTE( "psh_25.10e", 0x0c0000, 0x20000, CRC(724fdfda) SHA1(23d75e7864dfa0da8c2231785878fb05a5aac628) )
+ ROM_LOAD16_BYTE( "psh_29.10f", 0x0c0001, 0x20000, CRC(779cf901) SHA1(6761edcf26084e44783f3eecd5822e50f1a099bd) )
+ ROM_LOAD16_WORD_SWAP( "ps_21.6f", 0x100000, 0x80000, CRC(8affa5a9) SHA1(268760b83b1723ff50a019ec51ef7af2e49935bf) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "ps-1m.3a", 0x000000, 0x80000, CRC(77b7ccab) SHA1(e08e5d55a79e4c0c8ca819d6d7d2a14f753c6ec3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps-3m.5a", 0x000002, 0x80000, CRC(0122720b) SHA1(5f0d3097e097f64106048156fbb0d343fe78fffa) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps-2m.4a", 0x000004, 0x80000, CRC(64fa58d4) SHA1(d4a774285ed15273195b6b26d2965ce370e54e73) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps-4m.6a", 0x000006, 0x80000, CRC(60da42c8) SHA1(95eec4a58d9628a2d9764951dd8dc11e4860a899) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps-5m.7a", 0x200000, 0x80000, CRC(c54ea839) SHA1(0733f37329edd9d0cace1319a7544b40aa7ecb0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps-7m.9a", 0x200002, 0x80000, CRC(04c5acbd) SHA1(fddc94b0f36d4d22d7c357856ae15b7514c342d3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps-6m.8a", 0x200004, 0x80000, CRC(a544f4cc) SHA1(9552df8934ba25f19a22f2e07783712d8c8ef03c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps-8m.10a", 0x200006, 0x80000, CRC(8f02f436) SHA1(a2f0ebb7e9593469c7b843f8962a66f3d77f79e5) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "ps_q.5k", 0x00000, 0x08000, CRC(49ff4446) SHA1(87af12f87a940a6c5428b4574ad44a4b54867bc3) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "ps-q1.1k", 0x000000, 0x80000, CRC(31fd8726) SHA1(1d73a76682e9fb908db0c55b9a18163f7539fea1) )
+ ROM_LOAD( "ps-q2.2k", 0x080000, 0x80000, CRC(980a9eef) SHA1(36571381f349bc726508a7e618ba1c635ec9d271) )
+ ROM_LOAD( "ps-q3.3k", 0x100000, 0x80000, CRC(0dd44491) SHA1(903cea1d7f3120545ea3229d30fbd687d11ad68f) )
+ ROM_LOAD( "ps-q4.4k", 0x180000, 0x80000, CRC(bed42f03) SHA1(21302f7e75f9c795392a3b34e16a959fc5f6e4e9) )
+
+ 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( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) )
+ ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) )
+
+ ROM_REGION( 0x0200, "bboardplds", 0 )
+ ROM_LOAD( "ps63b.1a", 0x0000, 0x0117, NO_DUMP )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+
+ ROM_REGION( 0x0200, "dboardplds", 0 )
+ ROM_LOAD( "d7l1.7l", 0x0000, 0x0117, CRC(27b7410d) SHA1(06d0cba0226850f100ff1f539bd7d5db0f90c730) )
+ ROM_LOAD( "d8l1.8l", 0x0000, 0x0117, CRC(539fc7da) SHA1(cad5c91629c6247e49ccbbcbfe6b08229eafae07) )
+ ROM_LOAD( "d9k2.9k", 0x0000, 0x0117, CRC(cd85a156) SHA1(a88f8939c5d93e65d7bcc0eb3ee5b6f4f1114e3a) )
+ ROM_LOAD( "d10f1.10f", 0x0000, 0x0117, CRC(6619c494) SHA1(3aef656c07182a2186f810f30e0d854dd5bd8d18) )
+ROM_END
+
+/* B-Board 91634B-2 */
+ROM_START( punisherj )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "psj_23.8f", 0x000000, 0x80000, CRC(6b2fda52) SHA1(5f95a79b7b802609ae9ddd6641cc52610d428bf4) )
+ ROM_LOAD16_WORD_SWAP( "psj_22.7f", 0x080000, 0x80000, CRC(e01036bc) SHA1(a01886014dabe8f9ab45619865c6bd9f27472eae) )
+ ROM_LOAD16_WORD_SWAP( "psj_21.6f", 0x100000, 0x80000, CRC(8affa5a9) SHA1(268760b83b1723ff50a019ec51ef7af2e49935bf) ) // == ps_21.6f
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "ps_01.3a", 0x000000, 0x80000, CRC(77b7ccab) SHA1(e08e5d55a79e4c0c8ca819d6d7d2a14f753c6ec3) , ROM_GROUPWORD | ROM_SKIP(6) ) // == ps-1m.3a
+ ROMX_LOAD( "ps_02.4a", 0x000002, 0x80000, CRC(0122720b) SHA1(5f0d3097e097f64106048156fbb0d343fe78fffa) , ROM_GROUPWORD | ROM_SKIP(6) ) // == ps-3m.5a
+ ROMX_LOAD( "ps_03.5a", 0x000004, 0x80000, CRC(64fa58d4) SHA1(d4a774285ed15273195b6b26d2965ce370e54e73) , ROM_GROUPWORD | ROM_SKIP(6) ) // == ps-2m.4a
+ ROMX_LOAD( "ps_04.6a", 0x000006, 0x80000, CRC(60da42c8) SHA1(95eec4a58d9628a2d9764951dd8dc11e4860a899) , ROM_GROUPWORD | ROM_SKIP(6) ) // == ps-4m.6a
+ ROMX_LOAD( "ps_05.7a", 0x200000, 0x80000, CRC(c54ea839) SHA1(0733f37329edd9d0cace1319a7544b40aa7ecb0b) , ROM_GROUPWORD | ROM_SKIP(6) ) // == ps-5m.7a
+ ROMX_LOAD( "ps_06.8a", 0x200002, 0x80000, CRC(04c5acbd) SHA1(fddc94b0f36d4d22d7c357856ae15b7514c342d3) , ROM_GROUPWORD | ROM_SKIP(6) ) // == ps-7m.9a
+ ROMX_LOAD( "ps_07.9a", 0x200004, 0x80000, CRC(a544f4cc) SHA1(9552df8934ba25f19a22f2e07783712d8c8ef03c) , ROM_GROUPWORD | ROM_SKIP(6) ) // == ps-6m.8a
+ ROMX_LOAD( "ps_08.10a", 0x200006, 0x80000, CRC(8f02f436) SHA1(a2f0ebb7e9593469c7b843f8962a66f3d77f79e5) , ROM_GROUPWORD | ROM_SKIP(6) ) // == ps-8m.10a
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "ps_q.5k", 0x00000, 0x08000, CRC(49ff4446) SHA1(87af12f87a940a6c5428b4574ad44a4b54867bc3) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "ps-q1.1k", 0x000000, 0x80000, CRC(31fd8726) SHA1(1d73a76682e9fb908db0c55b9a18163f7539fea1) )
+ ROM_LOAD( "ps-q2.2k", 0x080000, 0x80000, CRC(980a9eef) SHA1(36571381f349bc726508a7e618ba1c635ec9d271) )
+ ROM_LOAD( "ps-q3.3k", 0x100000, 0x80000, CRC(0dd44491) SHA1(903cea1d7f3120545ea3229d30fbd687d11ad68f) )
+ ROM_LOAD( "ps-q4.4k", 0x180000, 0x80000, CRC(bed42f03) SHA1(21302f7e75f9c795392a3b34e16a959fc5f6e4e9) )
+
+ 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( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) )
+ ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) )
+
+ ROM_REGION( 0x0200, "bboardplds", 0 )
+ ROM_LOAD( "ps63b.1a", 0x0000, 0x0117, NO_DUMP )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+
+ ROM_REGION( 0x0200, "dboardplds", 0 )
+ ROM_LOAD( "d7l1.7l", 0x0000, 0x0117, CRC(27b7410d) SHA1(06d0cba0226850f100ff1f539bd7d5db0f90c730) )
+ ROM_LOAD( "d8l1.8l", 0x0000, 0x0117, CRC(539fc7da) SHA1(cad5c91629c6247e49ccbbcbfe6b08229eafae07) )
+ ROM_LOAD( "d9k2.9k", 0x0000, 0x0117, CRC(cd85a156) SHA1(a88f8939c5d93e65d7bcc0eb3ee5b6f4f1114e3a) )
+ ROM_LOAD( "d10f1.10f", 0x0000, 0x0117, CRC(6619c494) SHA1(3aef656c07182a2186f810f30e0d854dd5bd8d18) )
+ROM_END
+
+/* Chinese bootleg board */
+ROM_START( punisherbz )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "23.096", 0x000000, 0x80000, CRC(bfa45d23) SHA1(56d04d02c9b9b22603205b1ce9e376874d2eaa05) )
+ ROM_LOAD16_WORD_SWAP( "22.096", 0x080000, 0x80000, CRC(092578a4) SHA1(c3c8f98f8b8fc9c71b33fb906b4c591067b4355b) )
+ ROM_LOAD16_WORD_SWAP( "21.096", 0x100000, 0x80000, CRC(d21ccddb) SHA1(295c886cd14ee54e12acfe3f1e8f13513442c8c0) )
+ ROM_LOAD16_WORD_SWAP( "20.096", 0x180000, 0x80000, CRC(f9f334ce) SHA1(22e58ce5096b95138a30e9726e1169895118e990) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "1.096", 0x000000, 0x80000, CRC(ad468e07) SHA1(1ee8ecfd001b447982bc16972575eb2c5e01bc51) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "2.096", 0x000002, 0x80000, CRC(b9fdb6b5) SHA1(991fe0ded5c859f1e25766e9417e1ad691205e59) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "3.096", 0x000004, 0x80000, CRC(be0b1a78) SHA1(d002bd90d0f239d29f5ea481e455d85a1c088516) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "4.096", 0x000006, 0x80000, CRC(bba67a43) SHA1(9cd51a06a7661b2f78059ac392423f73de5cf56f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_gfx5.rom", 0x200000, 0x80000, CRC(c54ea839) SHA1(0733f37329edd9d0cace1319a7544b40aa7ecb0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_gfx7.rom", 0x200002, 0x80000, CRC(04c5acbd) SHA1(fddc94b0f36d4d22d7c357856ae15b7514c342d3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_gfx6.rom", 0x200004, 0x80000, CRC(a544f4cc) SHA1(9552df8934ba25f19a22f2e07783712d8c8ef03c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_gfx8.rom", 0x200006, 0x80000, CRC(8f02f436) SHA1(a2f0ebb7e9593469c7b843f8962a66f3d77f79e5) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "9.512", 0x00000, 0x08000, CRC(b8367eb5) SHA1(ec3db29fdd6200e9a8f4f8073a7e34aef731354f) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* samples */
+ ROM_LOAD( "18.010", 0x00000, 0x20000, CRC(375c66e7) SHA1(36189e23209ce4ae5d9cbabd1574540d0591e7b3) )
+ ROM_LOAD( "19.010", 0x20000, 0x20000, CRC(eb5ca884) SHA1(3592c69f77c7cd6ee241d6c1079c34a3e58abb5b) )
+ROM_END
+
+/* B-Board 91635B-2 */
+ROM_START( slammast )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "mbe_23e.8f", 0x000000, 0x80000, CRC(5394057a) SHA1(57f8b40c0a15e82c98ce5f0a8c4bdf60a1bc3107) )
+ ROM_LOAD16_BYTE( "mbe_24b.9e", 0x080000, 0x20000, CRC(95d5e729) SHA1(df3be896e55c92eb50887a4317178a3d11048433) )
+ ROM_LOAD16_BYTE( "mbe_28b.9f", 0x080001, 0x20000, CRC(b1c7cbcb) SHA1(cf5ad72be4a055db876e7347b1826325b9bf81d9) )
+ ROM_LOAD16_BYTE( "mbe_25b.10e", 0x0c0000, 0x20000, CRC(a50d3fd4) SHA1(dc3d108c3bc27f45b8b2e11919ba2a86e05b41d1) )
+ ROM_LOAD16_BYTE( "mbe_29b.10f", 0x0c0001, 0x20000, CRC(08e32e56) SHA1(70ad78b079f777ec02089f0df20ce2baad7adce5) )
+ ROM_LOAD16_WORD_SWAP( "mbe_21a.6f", 0x100000, 0x80000, CRC(d5007b05) SHA1(c55e55908aeda40ca2318c76ccbc05d333676875) )
+ ROM_LOAD16_WORD_SWAP( "mbe_20a.5f", 0x180000, 0x80000, CRC(aeb557b0) SHA1(530551942961d776f0a85852e02bb243840ca671) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "mb-1m.3a", 0x000000, 0x80000, CRC(41468e06) SHA1(fb365798f2889a20eebaea2393c9c2c8827003c4) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-3m.5a", 0x000002, 0x80000, CRC(f453aa9e) SHA1(24a103dc6f0dc96f8d0f6164ad732909c9cd2d6a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-2m.4a", 0x000004, 0x80000, CRC(2ffbfea8) SHA1(13e30133664a009686e1114c92b558bdbb91ea32) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-4m.6a", 0x000006, 0x80000, CRC(1eb9841d) SHA1(685da3e011a96b36be9f639a241b2f8f27da4629) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-5m.7a", 0x200000, 0x80000, CRC(506b9dc9) SHA1(933bf2fb9bcc1a408f961f0e7052da80144bddad) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-7m.9a", 0x200002, 0x80000, CRC(aff8c2fb) SHA1(ce37a6d5b1eb58c2d74f23f84ec824c214c93217) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-6m.8a", 0x200004, 0x80000, CRC(b76c70e9) SHA1(c21e255815ec9a985919dbd760ed266c28bd47cd) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-8m.10a", 0x200006, 0x80000, CRC(e60c9556) SHA1(b91c14092aa8dbb0922d96998123ef1970a658f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-10m.3c", 0x400000, 0x80000, CRC(97976ff5) SHA1(ec9d3460816ab971a02fbce42960283091777e47) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-12m.5c", 0x400002, 0x80000, CRC(b350a840) SHA1(2b8b996cd08051e7e8e134bff5448775d78058a0) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-11m.4c", 0x400004, 0x80000, CRC(8fb94743) SHA1(294f6182c8a41b640d1f57cb5e3a2abce3b06482) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-13m.6c", 0x400006, 0x80000, CRC(da810d5f) SHA1(392bbd405244b8c99024c9228cfec6a7ef0accdb) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "mb_qa.5k", 0x00000, 0x08000, CRC(e21a03c4) SHA1(98c03fd2c9b6bf8a4fc25a4edca87fff7c3c3819) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x8000, "user1", 0 )
+ ROM_COPY( "audiocpu", 0x000000, 0x00000, 0x8000 )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "mb-q1.1k", 0x000000, 0x80000, CRC(0630c3ce) SHA1(520fc74c5c3638f611fa2f1b5efb08b91747e29b) )
+ ROM_LOAD( "mb-q2.2k", 0x080000, 0x80000, CRC(354f9c21) SHA1(1dc6b39791fd0f760697f409a6b62361a7bf62e9) )
+ ROM_LOAD( "mb-q3.3k", 0x100000, 0x80000, CRC(7838487c) SHA1(056b7da05cfca46873edacd674ca25c70855c6db) )
+ ROM_LOAD( "mb-q4.4k", 0x180000, 0x80000, CRC(ab66e087) SHA1(066ea69a0157e8647eea3c44d0a1843898860678) )
+ ROM_LOAD( "mb-q5.1m", 0x200000, 0x80000, CRC(c789fef2) SHA1(10d1e3d92288fccd4e064a3716a788a165efc3c9) )
+ ROM_LOAD( "mb-q6.2m", 0x280000, 0x80000, CRC(ecb81b61) SHA1(e339f21ae47de4782f3b338befcdac659c3503f6) )
+ ROM_LOAD( "mb-q7.3m", 0x300000, 0x80000, CRC(041e49ba) SHA1(3220b033a5c0cfbbe75c0c113cf2db39fb093a7e) )
+ ROM_LOAD( "mb-q8.4m", 0x380000, 0x80000, CRC(59fe702a) SHA1(807178dfc6d864e49fd7aabb5c4895835cf0e85b) )
+
+ 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( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) )
+ ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) )
+
+ ROM_REGION( 0x0200, "bboardplds", 0 )
+ ROM_LOAD( "mb63b.1a", 0x0000, 0x0117, CRC(b8392f02) SHA1(8dedf9f43b30991694f8009302ca628cb50a0b1a) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+
+ ROM_REGION( 0x0200, "dboardplds", 0 )
+ ROM_LOAD( "d7l1.7l", 0x0000, 0x0117, CRC(27b7410d) SHA1(06d0cba0226850f100ff1f539bd7d5db0f90c730) )
+ ROM_LOAD( "d8l1.8l", 0x0000, 0x0117, CRC(539fc7da) SHA1(cad5c91629c6247e49ccbbcbfe6b08229eafae07) )
+ ROM_LOAD( "d9k2.9k", 0x0000, 0x0117, CRC(cd85a156) SHA1(a88f8939c5d93e65d7bcc0eb3ee5b6f4f1114e3a) )
+ ROM_LOAD( "d10f1.10f", 0x0000, 0x0117, CRC(6619c494) SHA1(3aef656c07182a2186f810f30e0d854dd5bd8d18) )
+ROM_END
+
+/* B-Board 91635B-2 */
+ROM_START( slammastu )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "mbu_23e.8f", 0x000000, 0x80000, CRC(224f0062) SHA1(d961f2e7db7acac576539c24a69e7dd9bf8fc406) )
+ ROM_LOAD16_BYTE( "mbu_24b.9e", 0x080000, 0x20000, CRC(95d5e729) SHA1(df3be896e55c92eb50887a4317178a3d11048433) ) // == mbe_24b.9e
+ ROM_LOAD16_BYTE( "mbu_28b.9f", 0x080001, 0x20000, CRC(b1c7cbcb) SHA1(cf5ad72be4a055db876e7347b1826325b9bf81d9) ) // == mbe_28b.9f
+ ROM_LOAD16_BYTE( "mbu_25b.10e", 0x0c0000, 0x20000, CRC(a50d3fd4) SHA1(dc3d108c3bc27f45b8b2e11919ba2a86e05b41d1) ) // == mbe_25b.10e
+ ROM_LOAD16_BYTE( "mbu_29b.10f", 0x0c0001, 0x20000, CRC(08e32e56) SHA1(70ad78b079f777ec02089f0df20ce2baad7adce5) ) // == mbe_29b.10f
+ ROM_LOAD16_WORD_SWAP( "mbu_21a.6f", 0x100000, 0x80000, CRC(d5007b05) SHA1(c55e55908aeda40ca2318c76ccbc05d333676875) ) // == mbe_21a.6f
+ ROM_LOAD16_WORD_SWAP( "mbu_20a.5f", 0x180000, 0x80000, CRC(fc848af5) SHA1(cd3f6e50779b89ee57a9d08bfa1d58dea286457c) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "mb-1m.3a", 0x000000, 0x80000, CRC(41468e06) SHA1(fb365798f2889a20eebaea2393c9c2c8827003c4) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-3m.5a", 0x000002, 0x80000, CRC(f453aa9e) SHA1(24a103dc6f0dc96f8d0f6164ad732909c9cd2d6a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-2m.4a", 0x000004, 0x80000, CRC(2ffbfea8) SHA1(13e30133664a009686e1114c92b558bdbb91ea32) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-4m.6a", 0x000006, 0x80000, CRC(1eb9841d) SHA1(685da3e011a96b36be9f639a241b2f8f27da4629) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-5m.7a", 0x200000, 0x80000, CRC(506b9dc9) SHA1(933bf2fb9bcc1a408f961f0e7052da80144bddad) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-7m.9a", 0x200002, 0x80000, CRC(aff8c2fb) SHA1(ce37a6d5b1eb58c2d74f23f84ec824c214c93217) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-6m.8a", 0x200004, 0x80000, CRC(b76c70e9) SHA1(c21e255815ec9a985919dbd760ed266c28bd47cd) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-8m.10a", 0x200006, 0x80000, CRC(e60c9556) SHA1(b91c14092aa8dbb0922d96998123ef1970a658f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-10m.3c", 0x400000, 0x80000, CRC(97976ff5) SHA1(ec9d3460816ab971a02fbce42960283091777e47) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-12m.5c", 0x400002, 0x80000, CRC(b350a840) SHA1(2b8b996cd08051e7e8e134bff5448775d78058a0) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-11m.4c", 0x400004, 0x80000, CRC(8fb94743) SHA1(294f6182c8a41b640d1f57cb5e3a2abce3b06482) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-13m.6c", 0x400006, 0x80000, CRC(da810d5f) SHA1(392bbd405244b8c99024c9228cfec6a7ef0accdb) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "mb_qa.5k", 0x00000, 0x08000, CRC(e21a03c4) SHA1(98c03fd2c9b6bf8a4fc25a4edca87fff7c3c3819) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x8000, "user1", 0 )
+ ROM_COPY( "audiocpu", 0x000000, 0x00000, 0x8000 )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "mb-q1.1k", 0x000000, 0x80000, CRC(0630c3ce) SHA1(520fc74c5c3638f611fa2f1b5efb08b91747e29b) )
+ ROM_LOAD( "mb-q2.2k", 0x080000, 0x80000, CRC(354f9c21) SHA1(1dc6b39791fd0f760697f409a6b62361a7bf62e9) )
+ ROM_LOAD( "mb-q3.3k", 0x100000, 0x80000, CRC(7838487c) SHA1(056b7da05cfca46873edacd674ca25c70855c6db) )
+ ROM_LOAD( "mb-q4.4k", 0x180000, 0x80000, CRC(ab66e087) SHA1(066ea69a0157e8647eea3c44d0a1843898860678) )
+ ROM_LOAD( "mb-q5.1m", 0x200000, 0x80000, CRC(c789fef2) SHA1(10d1e3d92288fccd4e064a3716a788a165efc3c9) )
+ ROM_LOAD( "mb-q6.2m", 0x280000, 0x80000, CRC(ecb81b61) SHA1(e339f21ae47de4782f3b338befcdac659c3503f6) )
+ ROM_LOAD( "mb-q7.3m", 0x300000, 0x80000, CRC(041e49ba) SHA1(3220b033a5c0cfbbe75c0c113cf2db39fb093a7e) )
+ ROM_LOAD( "mb-q8.4m", 0x380000, 0x80000, CRC(59fe702a) SHA1(807178dfc6d864e49fd7aabb5c4895835cf0e85b) )
+
+ 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( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) )
+ ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) )
+
+ ROM_REGION( 0x0200, "bboardplds", 0 )
+ ROM_LOAD( "mb63b.1a", 0x0000, 0x0117, CRC(b8392f02) SHA1(8dedf9f43b30991694f8009302ca628cb50a0b1a) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+
+ ROM_REGION( 0x0200, "dboardplds", 0 )
+ ROM_LOAD( "d7l1.7l", 0x0000, 0x0117, CRC(27b7410d) SHA1(06d0cba0226850f100ff1f539bd7d5db0f90c730) )
+ ROM_LOAD( "d8l1.8l", 0x0000, 0x0117, CRC(539fc7da) SHA1(cad5c91629c6247e49ccbbcbfe6b08229eafae07) )
+ ROM_LOAD( "d9k2.9k", 0x0000, 0x0117, CRC(cd85a156) SHA1(a88f8939c5d93e65d7bcc0eb3ee5b6f4f1114e3a) )
+ ROM_LOAD( "d10f1.10f", 0x0000, 0x0117, CRC(6619c494) SHA1(3aef656c07182a2186f810f30e0d854dd5bd8d18) )
+ROM_END
+
+/* B-Board 91634B-2 */
+ROM_START( mbomberj )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "mbj_23e.8f", 0x000000, 0x80000, CRC(0d06036a) SHA1(e1b102888038b4bb612a41ac94a43333d468a245) )
+ ROM_LOAD16_WORD_SWAP( "mbj_22b.7f", 0x080000, 0x80000, CRC(acd38478) SHA1(0bed74b52838006c6ec3661f92058dc2aa3e8193) )
+ ROM_LOAD16_WORD_SWAP( "mbj_21a.6f", 0x100000, 0x80000, CRC(d5007b05) SHA1(c55e55908aeda40ca2318c76ccbc05d333676875) ) // == mbe_21a.6f
+ ROM_LOAD16_WORD_SWAP( "mbj_20a.5f", 0x180000, 0x80000, CRC(aeb557b0) SHA1(530551942961d776f0a85852e02bb243840ca671) ) // == mbe_20a.5f
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "mb_01.3a", 0x000000, 0x80000, CRC(a53b1c81) SHA1(d1efb88eeaf6e30e51aaf1432078003e52454dd9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb_02.4a", 0x000002, 0x80000, CRC(23fe10f6) SHA1(deefa7cac4394b0642f7fb444f9374dbe0bc8843) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb_03.5a", 0x000004, 0x80000, CRC(cb866c2f) SHA1(b087f52e3b2a514a209612319d1d7c4f1c12b8bd) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb_04.6a", 0x000006, 0x80000, CRC(c9143e75) SHA1(e30090625ef6ac971a4f65d53f5458cebb5f146c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb_05.7a", 0x200000, 0x80000, CRC(506b9dc9) SHA1(933bf2fb9bcc1a408f961f0e7052da80144bddad) , ROM_GROUPWORD | ROM_SKIP(6) ) // == mb-5m.7a
+ ROMX_LOAD( "mb_06.8a", 0x200002, 0x80000, CRC(aff8c2fb) SHA1(ce37a6d5b1eb58c2d74f23f84ec824c214c93217) , ROM_GROUPWORD | ROM_SKIP(6) ) // == mb-7m.9a
+ ROMX_LOAD( "mb_07.9a", 0x200004, 0x80000, CRC(b76c70e9) SHA1(c21e255815ec9a985919dbd760ed266c28bd47cd) , ROM_GROUPWORD | ROM_SKIP(6) ) // == mb-6m.8a
+ ROMX_LOAD( "mb_08.10a", 0x200006, 0x80000, CRC(e60c9556) SHA1(b91c14092aa8dbb0922d96998123ef1970a658f6) , ROM_GROUPWORD | ROM_SKIP(6) ) // == mb-8m.10a
+ ROMX_LOAD( "mb_10.3c", 0x400000, 0x80000, CRC(97976ff5) SHA1(ec9d3460816ab971a02fbce42960283091777e47) , ROM_GROUPWORD | ROM_SKIP(6) ) // == mb-10m.3c
+ ROMX_LOAD( "mb_11.4c", 0x400002, 0x80000, CRC(b350a840) SHA1(2b8b996cd08051e7e8e134bff5448775d78058a0) , ROM_GROUPWORD | ROM_SKIP(6) ) // == mb-12m.5c
+ ROMX_LOAD( "mb_12.5c", 0x400004, 0x80000, CRC(8fb94743) SHA1(294f6182c8a41b640d1f57cb5e3a2abce3b06482) , ROM_GROUPWORD | ROM_SKIP(6) ) // == mb-11m.4c
+ ROMX_LOAD( "mb_13.6c", 0x400006, 0x80000, CRC(da810d5f) SHA1(392bbd405244b8c99024c9228cfec6a7ef0accdb) , ROM_GROUPWORD | ROM_SKIP(6) ) // == mb-13m.6c
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "mb_qa.5k", 0x00000, 0x08000, CRC(e21a03c4) SHA1(98c03fd2c9b6bf8a4fc25a4edca87fff7c3c3819) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x8000, "user1", 0 )
+ ROM_COPY( "audiocpu", 0x000000, 0x00000, 0x8000 )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "mb-q1.1k", 0x000000, 0x80000, CRC(0630c3ce) SHA1(520fc74c5c3638f611fa2f1b5efb08b91747e29b) )
+ ROM_LOAD( "mb-q2.2k", 0x080000, 0x80000, CRC(354f9c21) SHA1(1dc6b39791fd0f760697f409a6b62361a7bf62e9) )
+ ROM_LOAD( "mb-q3.3k", 0x100000, 0x80000, CRC(7838487c) SHA1(056b7da05cfca46873edacd674ca25c70855c6db) )
+ ROM_LOAD( "mb-q4.4k", 0x180000, 0x80000, CRC(ab66e087) SHA1(066ea69a0157e8647eea3c44d0a1843898860678) )
+ ROM_LOAD( "mb-q5.1m", 0x200000, 0x80000, CRC(c789fef2) SHA1(10d1e3d92288fccd4e064a3716a788a165efc3c9) )
+ ROM_LOAD( "mb-q6.2m", 0x280000, 0x80000, CRC(ecb81b61) SHA1(e339f21ae47de4782f3b338befcdac659c3503f6) )
+ ROM_LOAD( "mb-q7.3m", 0x300000, 0x80000, CRC(041e49ba) SHA1(3220b033a5c0cfbbe75c0c113cf2db39fb093a7e) )
+ ROM_LOAD( "mb-q8.4m", 0x380000, 0x80000, CRC(59fe702a) SHA1(807178dfc6d864e49fd7aabb5c4895835cf0e85b) )
+
+ 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( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) )
+ ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) )
+
+ ROM_REGION( 0x0200, "bboardplds", 0 )
+ ROM_LOAD( "mb63b.1a", 0x0000, 0x0117, CRC(b8392f02) SHA1(8dedf9f43b30991694f8009302ca628cb50a0b1a) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+
+ ROM_REGION( 0x0200, "dboardplds", 0 )
+ ROM_LOAD( "d7l1.7l", 0x0000, 0x0117, CRC(27b7410d) SHA1(06d0cba0226850f100ff1f539bd7d5db0f90c730) )
+ ROM_LOAD( "d8l1.8l", 0x0000, 0x0117, CRC(539fc7da) SHA1(cad5c91629c6247e49ccbbcbfe6b08229eafae07) )
+ ROM_LOAD( "d9k2.9k", 0x0000, 0x0117, CRC(cd85a156) SHA1(a88f8939c5d93e65d7bcc0eb3ee5b6f4f1114e3a) )
+ ROM_LOAD( "d10f1.10f", 0x0000, 0x0117, CRC(6619c494) SHA1(3aef656c07182a2186f810f30e0d854dd5bd8d18) )
+ROM_END
+
+/* FIXME B-Board uncertain but should be 91635B from the program ROM names */
+ROM_START( mbombrd )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "mbde_26.11e", 0x000000, 0x20000, CRC(72b7451c) SHA1(380ef57bb00f1c92d2f29e551b0a670eb5a56cb7) )
+ ROM_LOAD16_BYTE( "mbde_30.11f", 0x000001, 0x20000, CRC(a036dc16) SHA1(a68cf74976f482dbc581734e143669511a9a4bee) )
+ ROM_LOAD16_BYTE( "mbde_27.12e", 0x040000, 0x20000, CRC(4086f534) SHA1(a2b949f00035b06cb1cd01185902daca3d89d0e3) )
+ ROM_LOAD16_BYTE( "mbde_31.12f", 0x040001, 0x20000, CRC(085f47f0) SHA1(ac93a196faf17b7dbe7179ce1e850d9cd7293a21) )
+ ROM_LOAD16_BYTE( "mbde_24.9e", 0x080000, 0x20000, CRC(c20895a5) SHA1(35116f7ef8576753ec989647ca2f6a6131d6909f) )
+ ROM_LOAD16_BYTE( "mbde_28.9f", 0x080001, 0x20000, CRC(2618d5e1) SHA1(50797c6dda04df95267ff9ef08933c17c3ce7057) )
+ ROM_LOAD16_BYTE( "mbde_25.10e", 0x0c0000, 0x20000, CRC(9bdb6b11) SHA1(fbfbd6b5a72ca3237713ce43a798660f899b707d) )
+ ROM_LOAD16_BYTE( "mbde_29.10f", 0x0c0001, 0x20000, CRC(3f52d5e5) SHA1(0b1ed8e876a6ec2cfb83676afe43a81e8a033e52) )
+ ROM_LOAD16_WORD_SWAP( "mbde_21.6f", 0x100000, 0x80000, CRC(690c026a) SHA1(80ad780743b50750b6bfe1d4e28efe98e562233e) )
+ ROM_LOAD16_WORD_SWAP( "mbde_20.5f", 0x180000, 0x80000, CRC(b8b2139b) SHA1(88c9169a9979b711ab7afb8272df0a1c80bb357b) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "mb-1m.3a", 0x000000, 0x80000, CRC(41468e06) SHA1(fb365798f2889a20eebaea2393c9c2c8827003c4) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-3m.5a", 0x000002, 0x80000, CRC(f453aa9e) SHA1(24a103dc6f0dc96f8d0f6164ad732909c9cd2d6a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-2m.4a", 0x000004, 0x80000, CRC(2ffbfea8) SHA1(13e30133664a009686e1114c92b558bdbb91ea32) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-4m.6a", 0x000006, 0x80000, CRC(1eb9841d) SHA1(685da3e011a96b36be9f639a241b2f8f27da4629) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-5m.7a", 0x200000, 0x80000, CRC(506b9dc9) SHA1(933bf2fb9bcc1a408f961f0e7052da80144bddad) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-7m.9a", 0x200002, 0x80000, CRC(aff8c2fb) SHA1(ce37a6d5b1eb58c2d74f23f84ec824c214c93217) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-6m.8a", 0x200004, 0x80000, CRC(b76c70e9) SHA1(c21e255815ec9a985919dbd760ed266c28bd47cd) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-8m.10a", 0x200006, 0x80000, CRC(e60c9556) SHA1(b91c14092aa8dbb0922d96998123ef1970a658f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-10m.3c", 0x400000, 0x80000, CRC(97976ff5) SHA1(ec9d3460816ab971a02fbce42960283091777e47) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-12m.5c", 0x400002, 0x80000, CRC(b350a840) SHA1(2b8b996cd08051e7e8e134bff5448775d78058a0) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-11m.4c", 0x400004, 0x80000, CRC(8fb94743) SHA1(294f6182c8a41b640d1f57cb5e3a2abce3b06482) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-13m.6c", 0x400006, 0x80000, CRC(da810d5f) SHA1(392bbd405244b8c99024c9228cfec6a7ef0accdb) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "mb_q.5k", 0x00000, 0x08000, CRC(d6fa76d1) SHA1(3bfcb703e0e458ef1bb843230f8537167f1d4c3c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "mb-q1.1k", 0x000000, 0x80000, CRC(0630c3ce) SHA1(520fc74c5c3638f611fa2f1b5efb08b91747e29b) )
+ ROM_LOAD( "mb-q2.2k", 0x080000, 0x80000, CRC(354f9c21) SHA1(1dc6b39791fd0f760697f409a6b62361a7bf62e9) )
+ ROM_LOAD( "mb-q3.3k", 0x100000, 0x80000, CRC(7838487c) SHA1(056b7da05cfca46873edacd674ca25c70855c6db) )
+ ROM_LOAD( "mb-q4.4k", 0x180000, 0x80000, CRC(ab66e087) SHA1(066ea69a0157e8647eea3c44d0a1843898860678) )
+ ROM_LOAD( "mb-q5.1m", 0x200000, 0x80000, CRC(c789fef2) SHA1(10d1e3d92288fccd4e064a3716a788a165efc3c9) )
+ ROM_LOAD( "mb-q6.2m", 0x280000, 0x80000, CRC(ecb81b61) SHA1(e339f21ae47de4782f3b338befcdac659c3503f6) )
+ ROM_LOAD( "mb-q7.3m", 0x300000, 0x80000, CRC(041e49ba) SHA1(3220b033a5c0cfbbe75c0c113cf2db39fb093a7e) )
+ ROM_LOAD( "mb-q8.4m", 0x380000, 0x80000, CRC(59fe702a) SHA1(807178dfc6d864e49fd7aabb5c4895835cf0e85b) )
+
+ 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( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) )
+ ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) )
+
+ ROM_REGION( 0x0200, "bboardplds", 0 )
+ ROM_LOAD( "mb63b.1a", 0x0000, 0x0117, CRC(b8392f02) SHA1(8dedf9f43b30991694f8009302ca628cb50a0b1a) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+
+ ROM_REGION( 0x0200, "dboardplds", 0 )
+ ROM_LOAD( "d7l1.7l", 0x0000, 0x0117, CRC(27b7410d) SHA1(06d0cba0226850f100ff1f539bd7d5db0f90c730) )
+ ROM_LOAD( "d8l1.8l", 0x0000, 0x0117, CRC(539fc7da) SHA1(cad5c91629c6247e49ccbbcbfe6b08229eafae07) )
+ ROM_LOAD( "d9k2.9k", 0x0000, 0x0117, CRC(cd85a156) SHA1(a88f8939c5d93e65d7bcc0eb3ee5b6f4f1114e3a) ) // pal verification required
+ ROM_LOAD( "d10f1.10f", 0x0000, 0x0117, CRC(6619c494) SHA1(3aef656c07182a2186f810f30e0d854dd5bd8d18) )
+ROM_END
+
+/* B-Board 91634B-2 */
+ROM_START( mbombrdj )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "mbdj_26.11e", 0x000000, 0x20000, CRC(72b7451c) SHA1(380ef57bb00f1c92d2f29e551b0a670eb5a56cb7) ) // == mbde_26.11e
+ ROM_LOAD16_BYTE( "mbdj_30.11f", 0x000001, 0x20000, CRC(beff31cf) SHA1(8a3a1fa848fe8fad239d21aef1871e54bbcb582f) )
+ ROM_LOAD16_BYTE( "mbdj_27.12e", 0x040000, 0x20000, CRC(4086f534) SHA1(a2b949f00035b06cb1cd01185902daca3d89d0e3) ) // == mbde_27.12e
+ ROM_LOAD16_BYTE( "mbdj_31.12f", 0x040001, 0x20000, CRC(085f47f0) SHA1(ac93a196faf17b7dbe7179ce1e850d9cd7293a21) ) // == mbde_31.12f
+ ROM_LOAD16_BYTE( "mbdj_24.9e", 0x080000, 0x20000, CRC(c20895a5) SHA1(35116f7ef8576753ec989647ca2f6a6131d6909f) ) // == mbde_24.9e
+ ROM_LOAD16_BYTE( "mbdj_28.9f", 0x080001, 0x20000, CRC(2618d5e1) SHA1(50797c6dda04df95267ff9ef08933c17c3ce7057) ) // == mbde_28.9f
+ ROM_LOAD16_BYTE( "mbdj_25.10e", 0x0c0000, 0x20000, CRC(9bdb6b11) SHA1(fbfbd6b5a72ca3237713ce43a798660f899b707d) ) // == mbde_25.10e
+ ROM_LOAD16_BYTE( "mbdj_29.10f", 0x0c0001, 0x20000, CRC(3f52d5e5) SHA1(0b1ed8e876a6ec2cfb83676afe43a81e8a033e52) ) // == mbde_29.10f
+ ROM_LOAD16_WORD_SWAP( "mbdj_21.6f", 0x100000, 0x80000, CRC(690c026a) SHA1(80ad780743b50750b6bfe1d4e28efe98e562233e) ) // == mbde_21.6f
+ ROM_LOAD16_WORD_SWAP( "mbdj_20.5f", 0x180000, 0x80000, CRC(b8b2139b) SHA1(88c9169a9979b711ab7afb8272df0a1c80bb357b) ) // == mbde_20.5f
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "mb_01.3a", 0x000000, 0x80000, CRC(a53b1c81) SHA1(d1efb88eeaf6e30e51aaf1432078003e52454dd9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb_02.4a", 0x000002, 0x80000, CRC(23fe10f6) SHA1(deefa7cac4394b0642f7fb444f9374dbe0bc8843) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb_03.5a", 0x000004, 0x80000, CRC(cb866c2f) SHA1(b087f52e3b2a514a209612319d1d7c4f1c12b8bd) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb_04.6a", 0x000006, 0x80000, CRC(c9143e75) SHA1(e30090625ef6ac971a4f65d53f5458cebb5f146c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb_05.7a", 0x200000, 0x80000, CRC(506b9dc9) SHA1(933bf2fb9bcc1a408f961f0e7052da80144bddad) , ROM_GROUPWORD | ROM_SKIP(6) ) // == mb-5m.7a
+ ROMX_LOAD( "mb_06.8a", 0x200002, 0x80000, CRC(aff8c2fb) SHA1(ce37a6d5b1eb58c2d74f23f84ec824c214c93217) , ROM_GROUPWORD | ROM_SKIP(6) ) // == mb-7m.9a
+ ROMX_LOAD( "mb_07.9a", 0x200004, 0x80000, CRC(b76c70e9) SHA1(c21e255815ec9a985919dbd760ed266c28bd47cd) , ROM_GROUPWORD | ROM_SKIP(6) ) // == mb-6m.8a
+ ROMX_LOAD( "mb_08.10a", 0x200006, 0x80000, CRC(e60c9556) SHA1(b91c14092aa8dbb0922d96998123ef1970a658f6) , ROM_GROUPWORD | ROM_SKIP(6) ) // == mb-8m.10a
+ ROMX_LOAD( "mb_10.3c", 0x400000, 0x80000, CRC(97976ff5) SHA1(ec9d3460816ab971a02fbce42960283091777e47) , ROM_GROUPWORD | ROM_SKIP(6) ) // == mb-10m.3c
+ ROMX_LOAD( "mb_11.4c", 0x400002, 0x80000, CRC(b350a840) SHA1(2b8b996cd08051e7e8e134bff5448775d78058a0) , ROM_GROUPWORD | ROM_SKIP(6) ) // == mb-12m.5c
+ ROMX_LOAD( "mb_12.5c", 0x400004, 0x80000, CRC(8fb94743) SHA1(294f6182c8a41b640d1f57cb5e3a2abce3b06482) , ROM_GROUPWORD | ROM_SKIP(6) ) // == mb-11m.4c
+ ROMX_LOAD( "mb_13.6c", 0x400006, 0x80000, CRC(da810d5f) SHA1(392bbd405244b8c99024c9228cfec6a7ef0accdb) , ROM_GROUPWORD | ROM_SKIP(6) ) // == mb-13m.6c
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "mb_qa.5k", 0x00000, 0x08000, CRC(e21a03c4) SHA1(98c03fd2c9b6bf8a4fc25a4edca87fff7c3c3819) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "mb-q1.1k", 0x000000, 0x80000, CRC(0630c3ce) SHA1(520fc74c5c3638f611fa2f1b5efb08b91747e29b) )
+ ROM_LOAD( "mb-q2.2k", 0x080000, 0x80000, CRC(354f9c21) SHA1(1dc6b39791fd0f760697f409a6b62361a7bf62e9) )
+ ROM_LOAD( "mb-q3.3k", 0x100000, 0x80000, CRC(7838487c) SHA1(056b7da05cfca46873edacd674ca25c70855c6db) )
+ ROM_LOAD( "mb-q4.4k", 0x180000, 0x80000, CRC(ab66e087) SHA1(066ea69a0157e8647eea3c44d0a1843898860678) )
+ ROM_LOAD( "mb-q5.1m", 0x200000, 0x80000, CRC(c789fef2) SHA1(10d1e3d92288fccd4e064a3716a788a165efc3c9) )
+ ROM_LOAD( "mb-q6.2m", 0x280000, 0x80000, CRC(ecb81b61) SHA1(e339f21ae47de4782f3b338befcdac659c3503f6) )
+ ROM_LOAD( "mb-q7.3m", 0x300000, 0x80000, CRC(041e49ba) SHA1(3220b033a5c0cfbbe75c0c113cf2db39fb093a7e) )
+ ROM_LOAD( "mb-q8.4m", 0x380000, 0x80000, CRC(59fe702a) SHA1(807178dfc6d864e49fd7aabb5c4895835cf0e85b) )
+
+ 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( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) )
+ ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) )
+
+ ROM_REGION( 0x0200, "bboardplds", 0 )
+ ROM_LOAD( "mb63b.1a", 0x0000, 0x0117, CRC(b8392f02) SHA1(8dedf9f43b30991694f8009302ca628cb50a0b1a) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+
+ ROM_REGION( 0x0200, "dboardplds", 0 )
+ ROM_LOAD( "d7l1.7l", 0x0000, 0x0117, CRC(27b7410d) SHA1(06d0cba0226850f100ff1f539bd7d5db0f90c730) )
+ ROM_LOAD( "d8l1.8l", 0x0000, 0x0117, CRC(539fc7da) SHA1(cad5c91629c6247e49ccbbcbfe6b08229eafae07) )
+ ROM_LOAD( "d9k2.9k", 0x0000, 0x0117, CRC(cd85a156) SHA1(a88f8939c5d93e65d7bcc0eb3ee5b6f4f1114e3a) )
+ ROM_LOAD( "d10f1.10f", 0x0000, 0x0117, CRC(6619c494) SHA1(3aef656c07182a2186f810f30e0d854dd5bd8d18) )
+ROM_END
+
+/* B-Board 89625B-1 */
+ROM_START( pnickj )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "pnij_36.12f", 0x00000, 0x20000, CRC(2d4ffb2b) SHA1(6e49cf89a36834fd1de8b4b860fe66f3d7d67a84) )
+ ROM_LOAD16_BYTE( "pnij_42.12h", 0x00001, 0x20000, CRC(c085dfaf) SHA1(a31ededc3413ec4f3f5e3a1fb615b60c6197f4a5) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "pnij_09.4b", 0x000000, 0x20000, CRC(48177b0a) SHA1(eba5de6cd9bb0c4ad76a13bddc9cdeb2e4380122) , ROM_SKIP(7) )
+ ROMX_LOAD( "pnij_01.4a", 0x000001, 0x20000, CRC(01a0f311) SHA1(9bcd8716f90ccd410543ffcdc5c2916077b8d4c3) , ROM_SKIP(7) )
+ ROMX_LOAD( "pnij_13.9b", 0x000002, 0x20000, CRC(406451b0) SHA1(5a7a7fecba7de8b8cf4a284b2ae7adae901623f6) , ROM_SKIP(7) )
+ ROMX_LOAD( "pnij_05.9a", 0x000003, 0x20000, CRC(8c515dc0) SHA1(aa1e13cf9e7cf0458bb5c4332b1ea73034f9a874) , ROM_SKIP(7) )
+ ROMX_LOAD( "pnij_26.5e", 0x000004, 0x20000, CRC(e2af981e) SHA1(3c2b28b4a4d457aa94a760dfca0181a9f050c319) , ROM_SKIP(7) )
+ ROMX_LOAD( "pnij_18.5c", 0x000005, 0x20000, CRC(f17a0e56) SHA1(7c89aca230f176e12f995892f9d1bce22c57fbdf) , ROM_SKIP(7) )
+ ROMX_LOAD( "pnij_38.8h", 0x000006, 0x20000, CRC(eb75bd8c) SHA1(2129460e06eb64019fc5f7eab6334ff43229b995) , ROM_SKIP(7) )
+ ROMX_LOAD( "pnij_32.8f", 0x000007, 0x20000, CRC(84560bef) SHA1(9e94ae434b50ecf82781080e11d0c4741e992d0d) , ROM_SKIP(7) )
+ ROMX_LOAD( "pnij_10.5b", 0x100000, 0x20000, CRC(c2acc171) SHA1(7c86db3f2acca1252d403c5f12c871d0357fa109) , ROM_SKIP(7) )
+ ROMX_LOAD( "pnij_02.5a", 0x100001, 0x20000, CRC(0e21fc33) SHA1(c4a29d45c4257c8871038d3c9b13140e874db0c1) , ROM_SKIP(7) )
+ ROMX_LOAD( "pnij_14.10b", 0x100002, 0x20000, CRC(7fe59b19) SHA1(a273b8b8fbfd5d31d25479a9ede09ce35e1cc873) , ROM_SKIP(7) )
+ ROMX_LOAD( "pnij_06.10a", 0x100003, 0x20000, CRC(79f4bfe3) SHA1(bc17cc1c8535e3d202588893713926b6c06f92fd) , ROM_SKIP(7) )
+ ROMX_LOAD( "pnij_27.7e", 0x100004, 0x20000, CRC(83d5cb0e) SHA1(44c93fa5eedcafc8dc6d88ee827c6cadc9c671f0) , ROM_SKIP(7) )
+ ROMX_LOAD( "pnij_19.7c", 0x100005, 0x20000, CRC(af08b230) SHA1(a3b5b3013012efa1860699648518f8d8031c5f30) , ROM_SKIP(7) )
+ ROMX_LOAD( "pnij_39.9h", 0x100006, 0x20000, CRC(70fbe579) SHA1(b5b7ed5588ecd884b20dd50bfc5385a9af03c5d8) , ROM_SKIP(7) )
+ ROMX_LOAD( "pnij_33.9f", 0x100007, 0x20000, CRC(3ed2c680) SHA1(0afe84d8d89f8d45afc79f6172337e622e29a8a2) , ROM_SKIP(7) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "pnij_17.13b", 0x00000, 0x08000, CRC(e86f787a) SHA1(de04cbe89c655faf04afe169bfd9913049ccc4a8) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "pnij_24.12c", 0x00000, 0x20000, CRC(5092257d) SHA1(95dc9d10940653b2fb37baf5c1ed27145b02104e) )
+ ROM_LOAD( "pnij_25.13c", 0x20000, 0x20000, CRC(22109aaa) SHA1(cf21e75674d81b2daae2083d02f9f4b6e52722c6) )
+
+ 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( "pkb10b.1a", 0x0000, 0x0117, NO_DUMP )
+ ROM_LOAD( "iob1.12e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 90629B-3 */
+ROM_START( qtono2j )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "tn2j_30.11e", 0x00000, 0x20000, CRC(9226eb5e) SHA1(91649974f9652caed90eb28ec6caf4fe61f5d279) )
+ ROM_LOAD16_BYTE( "tn2j_37.11f", 0x00001, 0x20000, CRC(d1d30da1) SHA1(7ca1695ed804b5860d4c15964cdbb922db3918ee) )
+ ROM_LOAD16_BYTE( "tn2j_31.12e", 0x40000, 0x20000, CRC(015e6a8a) SHA1(0835bec4867438a167bd01e3550090c88e7ae779) )
+ ROM_LOAD16_BYTE( "tn2j_38.12f", 0x40001, 0x20000, CRC(1f139bcc) SHA1(ee907f1bfef1a887e2c768648fe811e0733eddf7) )
+ ROM_LOAD16_BYTE( "tn2j_28.9e", 0x80000, 0x20000, CRC(86d27f71) SHA1(89d6d18e05deaaa1ac7deb70ca03d051d2fde472) )
+ ROM_LOAD16_BYTE( "tn2j_35.9f", 0x80001, 0x20000, CRC(7a1ab87d) SHA1(f1729a8c0c82cf42f60644a7796dc8a39bf7c6fa) )
+ ROM_LOAD16_BYTE( "tn2j_29.10e", 0xc0000, 0x20000, CRC(9c384e99) SHA1(3d3961f625ccc4776531eff50fc1b4bee062370e) )
+ ROM_LOAD16_BYTE( "tn2j_36.10f", 0xc0001, 0x20000, CRC(4c4b2a0a) SHA1(9a25fcfb9358ea42d9bc662df2cafea08febb411) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tn2-02m.4a", 0x000000, 0x80000, CRC(f2016a34) SHA1(3862960fa14742547f6a6deacf0b9f409d08fee8) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tn2-04m.6a", 0x000002, 0x80000, CRC(094e0fb1) SHA1(7c9a9a7d03e226109002dd389c872e3d4be43287) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tn2-01m.3a", 0x000004, 0x80000, CRC(cb950cf9) SHA1(8337a500141c1aec82b6636ad79ecafbdbebd691) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tn2-03m.5a", 0x000006, 0x80000, CRC(18a5bf59) SHA1(afbfcb28c40551747bb5276aac2b9c15a24328e1) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tn2-11m.4c", 0x200000, 0x80000, CRC(d0edd30b) SHA1(a76d7f134f9e52f79a485402d17dcc7a1fe99f29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tn2-13m.6c", 0x200002, 0x80000, CRC(426621c3) SHA1(89156bc9d585f546cd619db419dd1f4d9871d930) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tn2-10m.3c", 0x200004, 0x80000, CRC(a34ece70) SHA1(15864d6b280f624245add8a611f1699da570392b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tn2-12m.5c", 0x200006, 0x80000, CRC(e04ff2f4) SHA1(774c19909a2ae2c691f5d3f15b6e19cc94baf799) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "tn2j_09.12a", 0x00000, 0x08000, CRC(e464b969) SHA1(18a0b9fd3a1eb4d1364b0e8601cd49a9574406c8) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "tn2j_18.11c", 0x00000, 0x20000, CRC(a40bf9a7) SHA1(07cb1076262a281e31a621cbcc10be0cae883175) )
+ ROM_LOAD( "tn2j_19.12c", 0x20000, 0x20000, CRC(5b3b931e) SHA1(cf28891f84814cbfaa3adaade8bb08b1e0546a3d) )
+
+ 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( "tn2292.1a", 0x0000, 0x0117, CRC(3d899539) SHA1(9ffa76229408a2d7438b1b3efa0ec7166bfcc751) )
+ ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 94916-10 */
+ROM_START( pang3 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "pa3e_17a.11l", 0x00000, 0x80000, CRC(a213fa80) SHA1(fee6b0b21e2ef573ebfb35eaa1785533101c9170) )
+ ROM_LOAD16_WORD_SWAP( "pa3e_16a.10l", 0x80000, 0x80000, CRC(7169ea67) SHA1(1076afaff7b05c9009798a0cea13e71fa27f2b7e) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "pa3-01m.2c", 0x000000, 0x100000, CRC(068a152c) SHA1(fa491874068924c39bcc7de93dfda3b27f5d9613) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000004, 0x100000 )
+ ROMX_LOAD( "pa3-07m.2f", 0x000002, 0x100000, CRC(3a4a619d) SHA1(cfe68e24632b53fb6cd6d03b2166d6b5ba28b778) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000006, 0x100000 )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "pa3_11.11f", 0x00000, 0x08000, CRC(cb1423a2) SHA1(3191bf5d340168647881738cb2aed09b1d86146e) )
+ ROM_IGNORE( 0x18000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "pa3_05.10d", 0x00000, 0x20000, CRC(73a10d5d) SHA1(999465e4fbc35a34746d2db61ad49f61403d5af7) )
+ ROM_LOAD( "pa3_06.11d", 0x20000, 0x20000, CRC(affa4f82) SHA1(27b9292bbc121cf585f53297a79fe8f0d0a729ae) )
+
+ 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( "cp1b1f.1f", 0x0000, 0x0117, CRC(3979b8e3) SHA1(07c9819d68b4d93bc37b96bd15d689ce54fe034e) )
+ ROM_LOAD( "cp1b8k.8k", 0x0000, 0x0117, CRC(8a52ea7a) SHA1(47a59abc54a83292cfd6faa2d293c8f948c7ea03) )
+ ROM_LOAD( "cp1b9ka.9k", 0x0000, 0x0117, CRC(238d3ff4) SHA1(597f429d6a0ea485746322592604188c1ec87595) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 94916-10 */
+ROM_START( pang3r1 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "pa3e_17.11l", 0x00000, 0x80000, CRC(d7041d32) SHA1(b021f3defe7fc58030ba907125c713f987724187) )
+ ROM_LOAD16_WORD_SWAP( "pa3e_16.10l", 0x80000, 0x80000, CRC(1be9a483) SHA1(6cff1dd15ca163237bc82fb4a3e1d469d35e7be8) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "pa3-01m.2c", 0x000000, 0x100000, CRC(068a152c) SHA1(fa491874068924c39bcc7de93dfda3b27f5d9613) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000004, 0x100000 )
+ ROMX_LOAD( "pa3-07m.2f", 0x000002, 0x100000, CRC(3a4a619d) SHA1(cfe68e24632b53fb6cd6d03b2166d6b5ba28b778) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000006, 0x100000 )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "pa3_11.11f", 0x00000, 0x08000, CRC(cb1423a2) SHA1(3191bf5d340168647881738cb2aed09b1d86146e) )
+ ROM_IGNORE( 0x18000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "pa3_05.10d", 0x00000, 0x20000, CRC(73a10d5d) SHA1(999465e4fbc35a34746d2db61ad49f61403d5af7) )
+ ROM_LOAD( "pa3_06.11d", 0x20000, 0x20000, CRC(affa4f82) SHA1(27b9292bbc121cf585f53297a79fe8f0d0a729ae) )
+
+ 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( "cp1b1f.1f", 0x0000, 0x0117, CRC(3979b8e3) SHA1(07c9819d68b4d93bc37b96bd15d689ce54fe034e) )
+ ROM_LOAD( "cp1b8k.8k", 0x0000, 0x0117, CRC(8a52ea7a) SHA1(47a59abc54a83292cfd6faa2d293c8f948c7ea03) )
+ ROM_LOAD( "cp1b9k.9k", 0x0000, 0x0117, CRC(a754bdc3) SHA1(9267b24cbddee4858b219468cc92f9df8f5fd0ef) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 94916-10 */
+ROM_START( pang3j )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "pa3j_17.11l", 0x00000, 0x80000, CRC(21f6e51f) SHA1(b447e05261f59b3b2e89bbc0f606d7136b29cb56) )
+ ROM_LOAD16_WORD_SWAP( "pa3j_16.10l", 0x80000, 0x80000, CRC(ca1d7897) SHA1(46aa9232e81a838f3eff1e9b992492a264914fd5) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "pa3-01m.2c", 0x000000, 0x100000, CRC(068a152c) SHA1(fa491874068924c39bcc7de93dfda3b27f5d9613) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000004, 0x100000 )
+ ROMX_LOAD( "pa3-07m.2f", 0x000002, 0x100000, CRC(3a4a619d) SHA1(cfe68e24632b53fb6cd6d03b2166d6b5ba28b778) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000006, 0x100000 )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "pa3_11.11f", 0x00000, 0x08000, CRC(cb1423a2) SHA1(3191bf5d340168647881738cb2aed09b1d86146e) )
+ ROM_IGNORE( 0x18000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "pa3_05.10d", 0x00000, 0x20000, CRC(73a10d5d) SHA1(999465e4fbc35a34746d2db61ad49f61403d5af7) )
+ ROM_LOAD( "pa3_06.11d", 0x20000, 0x20000, CRC(affa4f82) SHA1(27b9292bbc121cf585f53297a79fe8f0d0a729ae) )
+
+ 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( "cp1b1f.1f", 0x0000, 0x0117, CRC(3979b8e3) SHA1(07c9819d68b4d93bc37b96bd15d689ce54fe034e) )
+ ROM_LOAD( "cp1b8k.8k", 0x0000, 0x0117, CRC(8a52ea7a) SHA1(47a59abc54a83292cfd6faa2d293c8f948c7ea03) )
+ ROM_LOAD( "cp1b9k.9k", 0x0000, 0x0117, CRC(a754bdc3) SHA1(9267b24cbddee4858b219468cc92f9df8f5fd0ef) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 94916-10 */
+/* This set comes from a not encrypted bootleg that uses a very well reproduced Mitchell 94916-10 B-Board surmounted by an
+ original Capcom 92631C-6 C-Board. Mitchell mark has been erased, original 32 pin EPROM PA3_11.11F resized and replaced by
+ one with 28 pin while the protection chip MACH215 mounted on the B-Board has been replaced by a 22 pin PAL. */
+ROM_START( pang3b )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "pa3w_17.11l", 0x00000, 0x80000, CRC(12138234) SHA1(956a2c847a3cfb94007d1a636167fd2bb9f826ec) )
+ ROM_LOAD16_WORD_SWAP( "pa3w_16.10l", 0x80000, 0x80000, CRC(d1ba585c) SHA1(c6d04441fe97abf0a72b23c917777a7b58e94a85) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "pa3-01m.2c", 0x000000, 0x100000, CRC(068a152c) SHA1(fa491874068924c39bcc7de93dfda3b27f5d9613) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000004, 0x100000 )
+ ROMX_LOAD( "pa3-07m.2f", 0x000002, 0x100000, CRC(3a4a619d) SHA1(cfe68e24632b53fb6cd6d03b2166d6b5ba28b778) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000006, 0x100000 )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "pa3_11.11f", 0x00000, 0x08000, CRC(90a08c46) SHA1(7544adab2d7e052e0d21c920bff7841d9d718345) ) // == pa3_11.11f but different size, resized by bootlegger
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "pa3_05.10d", 0x00000, 0x20000, CRC(73a10d5d) SHA1(999465e4fbc35a34746d2db61ad49f61403d5af7) )
+ ROM_LOAD( "pa3_06.11d", 0x20000, 0x20000, CRC(affa4f82) SHA1(27b9292bbc121cf585f53297a79fe8f0d0a729ae) )
+
+ 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( "cp1b1f.1f", 0x0000, 0x0117, CRC(3979b8e3) SHA1(07c9819d68b4d93bc37b96bd15d689ce54fe034e) )
+ ROM_LOAD( "cp1b8k.8k", 0x0000, 0x0117, CRC(8a52ea7a) SHA1(47a59abc54a83292cfd6faa2d293c8f948c7ea03) )
+ ROM_LOAD( "cp1b9k.9k", 0x0000, 0x0117, CRC(a754bdc3) SHA1(9267b24cbddee4858b219468cc92f9df8f5fd0ef) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 91635B-2 */
+/* Note that this USA set seems to be the only one where GFX are stored into EPROMs instead of the usual MASK ROMs. */
+ROM_START( megaman )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "rcmu_23b.8f", 0x000000, 0x80000, CRC(1cd33c7a) SHA1(687fb3b6d660d7350447193f1911c47972e7a020) )
+ ROM_LOAD16_WORD_SWAP( "rcmu_22b.7f", 0x080000, 0x80000, CRC(708268c4) SHA1(554e011cad285b95dd1b6aa19be61b2413662a3a) )
+ ROM_LOAD16_WORD_SWAP( "rcmu_21a.6f", 0x100000, 0x80000, CRC(4376ea95) SHA1(7370ceffca513aa9f68a74f6869d561476589200) )
+
+ ROM_REGION( 0x800000, "gfx", 0 )
+ ROMX_LOAD( "rcm_01.3a", 0x000000, 0x80000, CRC(6ecdf13f) SHA1(2a8fe06bf5011e3f990f90d9224f91d8631ec0cc) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_02.4a", 0x000002, 0x80000, CRC(944d4f0f) SHA1(665dc9a537e9c9b565f6136f939ff5c2861f875f) , ROM_GROUPWORD | ROM_SKIP(6) ) // Dumped as rcm_03.5a
+ ROMX_LOAD( "rcm_03.5a", 0x000004, 0x80000, CRC(36f3073c) SHA1(457d68e63599d06a136e152a9ad60adac1c91edd) , ROM_GROUPWORD | ROM_SKIP(6) ) // Dumped as rcm_02.4a
+ ROMX_LOAD( "rcm_04.6a", 0x000006, 0x80000, CRC(54e622ff) SHA1(36f6297e3d410f041be5e582919478b0d52520ca) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_05.7a", 0x200000, 0x80000, CRC(5dd131fd) SHA1(1a7fc8cf38901245d40901996e946e7ad9c0e0c5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_06.8a", 0x200002, 0x80000, CRC(f0faf813) SHA1(adff01c2ecc4c8ce6f8a50cbd07d8f8bb9f48168) , ROM_GROUPWORD | ROM_SKIP(6) ) // Dumped as rcm_07.9a
+ ROMX_LOAD( "rcm_07.9a", 0x200004, 0x80000, CRC(826de013) SHA1(47f36b1d92a487c43c8dadc8293b8e6f40649286) , ROM_GROUPWORD | ROM_SKIP(6) ) // Dumped as rcm_06.8a
+ ROMX_LOAD( "rcm_08.10a", 0x200006, 0x80000, CRC(fbff64cf) SHA1(f0cb531ef195dc1dcd224a208906a62fb5d199a1) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_10.3c", 0x400000, 0x80000, CRC(4dc8ada9) SHA1(776c2b3ef24c2b8f390c05a9c6728b14ceec696e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_11.4c", 0x400002, 0x80000, CRC(f2b9ee06) SHA1(db315b00d1caed1a8c0f6e0ae726e8fa05b011fa) , ROM_GROUPWORD | ROM_SKIP(6) ) // Dumped as rcm_12.5c
+ ROMX_LOAD( "rcm_12.5c", 0x400004, 0x80000, CRC(fed5f203) SHA1(23db14490519b5e2d0bb92ffe6e14540d1999e4b) , ROM_GROUPWORD | ROM_SKIP(6) ) // Dumped as rcm_11.4c
+ ROMX_LOAD( "rcm_13.6c", 0x400006, 0x80000, CRC(5069d4a9) SHA1(b832b98be94371af52bd4bb911e18ec57430a7db) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_14.7c", 0x600000, 0x80000, CRC(303be3bd) SHA1(1e5c3fd71966ea9f457840c40582795b501c323e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_15.8c", 0x600002, 0x80000, CRC(4f2d372f) SHA1(db6a94d1f92c1b96e404b38ebcb1eedbec3ae6cc) , ROM_GROUPWORD | ROM_SKIP(6) ) // Dumped as rcm_16.9c
+ ROMX_LOAD( "rcm_16.9c", 0x600004, 0x80000, CRC(93d97fde) SHA1(e4be5216f98ad08a9118d629d398be2bd54e2e2a) , ROM_GROUPWORD | ROM_SKIP(6) ) // Dumped as rcm_15.8c
+ ROMX_LOAD( "rcm_17.10c", 0x600006, 0x80000, CRC(92371042) SHA1(c55833cbaddcc986edd23c009a3e3c7ff09c2708) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "rcm_09.11a", 0x00000, 0x08000, CRC(22ac8f5f) SHA1(d1441d880f98034645cb4fcecd7bb746bde638af) ) /* different size from megamana, rockmanj but same label, pcb verified */
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "rcm_18.11c", 0x00000, 0x20000, CRC(80f1f8aa) SHA1(4a5b7b2a6941ad68da7472c63362c7bcd353fa54) )
+ ROM_LOAD( "rcm_19.12c", 0x20000, 0x20000, CRC(f257dbe1) SHA1(967def6b6f93039dbc46373caabeb3301577be75) )
+
+ 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( "rcm63b.1a", 0x0000, 0x0117, CRC(84acd494) SHA1(20c861714c8c68bc8cf3bde9d051969807e9b3a3) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 91634B-2 */
+ROM_START( megamana )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "rcma_23b.8f", 0x000000, 0x80000, CRC(61e4a397) SHA1(a90b1cbef4206a4554398bc458a4b3e2c46d4c4f) )
+ ROM_LOAD16_WORD_SWAP( "rcma_22b.7f", 0x080000, 0x80000, CRC(708268c4) SHA1(554e011cad285b95dd1b6aa19be61b2413662a3a) ) // == rcmu_22b.7f
+ ROM_LOAD16_WORD_SWAP( "rcma_21a.6f", 0x100000, 0x80000, CRC(4376ea95) SHA1(7370ceffca513aa9f68a74f6869d561476589200) ) // == rcmu_21a.6f
+
+ ROM_REGION( 0x800000, "gfx", 0 )
+ ROMX_LOAD( "rcm_01.3a", 0x000000, 0x80000, CRC(6ecdf13f) SHA1(2a8fe06bf5011e3f990f90d9224f91d8631ec0cc) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_02.4a", 0x000002, 0x80000, CRC(944d4f0f) SHA1(665dc9a537e9c9b565f6136f939ff5c2861f875f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_03.5a", 0x000004, 0x80000, CRC(36f3073c) SHA1(457d68e63599d06a136e152a9ad60adac1c91edd) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_04.6a", 0x000006, 0x80000, CRC(54e622ff) SHA1(36f6297e3d410f041be5e582919478b0d52520ca) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_05.7a", 0x200000, 0x80000, CRC(5dd131fd) SHA1(1a7fc8cf38901245d40901996e946e7ad9c0e0c5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_06.8a", 0x200002, 0x80000, CRC(f0faf813) SHA1(adff01c2ecc4c8ce6f8a50cbd07d8f8bb9f48168) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_07.9a", 0x200004, 0x80000, CRC(826de013) SHA1(47f36b1d92a487c43c8dadc8293b8e6f40649286) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_08.10a", 0x200006, 0x80000, CRC(fbff64cf) SHA1(f0cb531ef195dc1dcd224a208906a62fb5d199a1) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_10.3c", 0x400000, 0x80000, CRC(4dc8ada9) SHA1(776c2b3ef24c2b8f390c05a9c6728b14ceec696e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_11.4c", 0x400002, 0x80000, CRC(f2b9ee06) SHA1(db315b00d1caed1a8c0f6e0ae726e8fa05b011fa) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_12.5c", 0x400004, 0x80000, CRC(fed5f203) SHA1(23db14490519b5e2d0bb92ffe6e14540d1999e4b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_13.6c", 0x400006, 0x80000, CRC(5069d4a9) SHA1(b832b98be94371af52bd4bb911e18ec57430a7db) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_14.7c", 0x600000, 0x80000, CRC(303be3bd) SHA1(1e5c3fd71966ea9f457840c40582795b501c323e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_15.8c", 0x600002, 0x80000, CRC(4f2d372f) SHA1(db6a94d1f92c1b96e404b38ebcb1eedbec3ae6cc) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_16.9c", 0x600004, 0x80000, CRC(93d97fde) SHA1(e4be5216f98ad08a9118d629d398be2bd54e2e2a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_17.10c", 0x600006, 0x80000, CRC(92371042) SHA1(c55833cbaddcc986edd23c009a3e3c7ff09c2708) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "rcm_09.12a", 0x00000, 0x08000, CRC(9632d6ef) SHA1(2bcb6f17005ffbc9ef8fa4478a814f24b2e6e0b6) )
+ ROM_CONTINUE( 0x10000, 0x18000 ) // second half of ROM is empty, not mapped in memory
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "rcm_18.11c", 0x00000, 0x20000, CRC(80f1f8aa) SHA1(4a5b7b2a6941ad68da7472c63362c7bcd353fa54) )
+ ROM_LOAD( "rcm_19.12c", 0x20000, 0x20000, CRC(f257dbe1) SHA1(967def6b6f93039dbc46373caabeb3301577be75) )
+
+ 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( "rcm63b.1a", 0x0000, 0x0117, CRC(84acd494) SHA1(20c861714c8c68bc8cf3bde9d051969807e9b3a3) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 91634B-2 */
+ROM_START( rockmanj )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "rcm_23a.8f", 0x000000, 0x80000, CRC(efd96cb2) SHA1(cbe81554f60d0c897f3f2ebc5bc966bb03cc23fe) )
+ ROM_LOAD16_WORD_SWAP( "rcm_22a.7f", 0x080000, 0x80000, CRC(8729a689) SHA1(14ddb34d8201c544ea9d3d8c2cc52d380bc72930) )
+ ROM_LOAD16_WORD_SWAP( "rcm_21a.6f", 0x100000, 0x80000, CRC(517ccde2) SHA1(492256c192f0c4814efa1ee1dd390453dd2e5865) )
+
+ ROM_REGION( 0x800000, "gfx", 0 )
+ ROMX_LOAD( "rcm_01.3a", 0x000000, 0x80000, CRC(6ecdf13f) SHA1(2a8fe06bf5011e3f990f90d9224f91d8631ec0cc) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_02.4a", 0x000002, 0x80000, CRC(944d4f0f) SHA1(665dc9a537e9c9b565f6136f939ff5c2861f875f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_03.5a", 0x000004, 0x80000, CRC(36f3073c) SHA1(457d68e63599d06a136e152a9ad60adac1c91edd) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_04.6a", 0x000006, 0x80000, CRC(54e622ff) SHA1(36f6297e3d410f041be5e582919478b0d52520ca) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_05.7a", 0x200000, 0x80000, CRC(5dd131fd) SHA1(1a7fc8cf38901245d40901996e946e7ad9c0e0c5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_06.8a", 0x200002, 0x80000, CRC(f0faf813) SHA1(adff01c2ecc4c8ce6f8a50cbd07d8f8bb9f48168) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_07.9a", 0x200004, 0x80000, CRC(826de013) SHA1(47f36b1d92a487c43c8dadc8293b8e6f40649286) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_08.10a", 0x200006, 0x80000, CRC(fbff64cf) SHA1(f0cb531ef195dc1dcd224a208906a62fb5d199a1) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_10.3c", 0x400000, 0x80000, CRC(4dc8ada9) SHA1(776c2b3ef24c2b8f390c05a9c6728b14ceec696e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_11.4c", 0x400002, 0x80000, CRC(f2b9ee06) SHA1(db315b00d1caed1a8c0f6e0ae726e8fa05b011fa) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_12.5c", 0x400004, 0x80000, CRC(fed5f203) SHA1(23db14490519b5e2d0bb92ffe6e14540d1999e4b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_13.6c", 0x400006, 0x80000, CRC(5069d4a9) SHA1(b832b98be94371af52bd4bb911e18ec57430a7db) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_14.7c", 0x600000, 0x80000, CRC(303be3bd) SHA1(1e5c3fd71966ea9f457840c40582795b501c323e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_15.8c", 0x600002, 0x80000, CRC(4f2d372f) SHA1(db6a94d1f92c1b96e404b38ebcb1eedbec3ae6cc) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_16.9c", 0x600004, 0x80000, CRC(93d97fde) SHA1(e4be5216f98ad08a9118d629d398be2bd54e2e2a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_17.10c", 0x600006, 0x80000, CRC(92371042) SHA1(c55833cbaddcc986edd23c009a3e3c7ff09c2708) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "rcm_09.12a", 0x00000, 0x08000, CRC(9632d6ef) SHA1(2bcb6f17005ffbc9ef8fa4478a814f24b2e6e0b6) )
+ ROM_CONTINUE( 0x10000, 0x18000 ) // second half of ROM is empty, not mapped in memory
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "rcm_18.11c", 0x00000, 0x20000, CRC(80f1f8aa) SHA1(4a5b7b2a6941ad68da7472c63362c7bcd353fa54) )
+ ROM_LOAD( "rcm_19.12c", 0x20000, 0x20000, CRC(f257dbe1) SHA1(967def6b6f93039dbc46373caabeb3301577be75) )
+
+ 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( "rcm63b.1a", 0x0000, 0x0117, CRC(84acd494) SHA1(20c861714c8c68bc8cf3bde9d051969807e9b3a3) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 91634B-2 */
+ROM_START( ganbare )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "mrnj_23d.8f", 0x00000, 0x80000, CRC(f929be72) SHA1(d175bdcace469277479ef85bf4e1b9d5a63cffde) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "mrnj_01.3a", 0x000000, 0x80000, CRC(3f878020) SHA1(b18faa50d88c76d19db1af73cf4b3095e928f51f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mrnj_02.4a", 0x000002, 0x80000, CRC(3e5624d8) SHA1(502e4897916af1c9e121b096de1369d06f1ffe87) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mrnj_03.5a", 0x000004, 0x80000, CRC(d1e61f96) SHA1(5f6dee8adbf83c697416e440fbdd3a84a6e698da) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mrnj_04.6a", 0x000006, 0x80000, CRC(d241971b) SHA1(b641740b40a043affbb79ea91ba12f821a259bad) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mrnj_05.7a", 0x200000, 0x80000, CRC(c0a14562) SHA1(2fb6cf98fed83ac92c33df9526102a101454e276) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mrnj_06.8a", 0x200002, 0x80000, CRC(e6a71dfc) SHA1(67178b020f87fb28ef35292d008ce9b80e02a2db) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mrnj_07.9a", 0x200004, 0x80000, CRC(99afb6c7) SHA1(5caead2b71cd54f6b53765f09829cc9e92e1e2d6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mrnj_08.10a", 0x200006, 0x80000, CRC(52882c20) SHA1(5e3fca6da3470aeb78534f01e1575d8c0e067c0e) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "mrnj_09.12a", 0x00000, 0x08000, CRC(62470d72) SHA1(1de357a20f794defb49ed01af5b95ad00e2aa1d9) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "mrnj_18.11c", 0x00000, 0x20000, CRC(08e13940) SHA1(5c7dd7ff6a66f100b59cf9244e78f2c8702faca1) )
+ ROM_LOAD( "mrnj_19.12c", 0x20000, 0x20000, CRC(5fa59927) SHA1(f05246cf566c214b008a91816c71e7c03b7cc218) )
+
+ ROM_REGION( 0x8000, "timekeeper", 0) /* Timekeeper internal RAM was dumped (but game overwrites it - should I keep this here or remove it?) */
+ ROM_LOAD( "m48t35y-70pc1.9n", 0x00000, 0x8000, CRC(96107b4a) SHA1(be9149736030e06c96083dcac73b5be3dbc318ac) )
+
+ 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( "gbpr2.1a", 0x0000, 0x0117, CRC(486e8ca0) SHA1(4554befd49ec322af7dadd198188255ae7c7c059) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+
+ROM_START( pokonyan )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "xmqq-12f.bin", 0x00000, 0x20000, CRC(196297bf) SHA1(4724c4ccb755d3d457f5224d4c4ea860664d3b10) )
+ ROM_LOAD16_BYTE( "xmqq-12h.bin", 0x00001, 0x20000, CRC(2d7ee2e9) SHA1(af9f8c346e36b4bd6284913129782187e242aa3f) )
+ ROM_LOAD16_BYTE( "xmqq-13f.bin", 0x40000, 0x20000, CRC(8f6abf26) SHA1(e9918abc5ca02c8b3f3b5b2410aedc350dc12ec2) )
+ ROM_LOAD16_BYTE( "xmqq-13h.bin", 0x40001, 0x20000, CRC(3fefe432) SHA1(42763c047fd976c9a8fec3a38f2b132b6e2e15a9) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "xmqq-4b.bin", 0x000000, 0x20000, CRC(933ab76d) SHA1(a51536b0ad89e08356cbb500c60099bd2a192a76) , ROM_SKIP(7) )
+ ROMX_LOAD( "xmqq-4a.bin", 0x000001, 0x20000, CRC(b098e7a9) SHA1(c848ddc0e6559dac6ca23d29c12bc65ea19b7dc4) , ROM_SKIP(7) )
+ ROMX_LOAD( "xmqq-9b.bin", 0x000002, 0x20000, CRC(b66d62d4) SHA1(1be1b89aa24382b4a3d4585b22b83f35b2a27333) , ROM_SKIP(7) )
+ ROMX_LOAD( "xmqq-9a.bin", 0x000003, 0x20000, CRC(9c23e40b) SHA1(9b5de73c4c6679a53871a45743a60c7cdefc8aaa) , ROM_SKIP(7) )
+ ROMX_LOAD( "xmqq-5e.bin", 0x000004, 0x20000, CRC(63d06d6f) SHA1(364d81aafa4d97e8d709e13b481585f655924254) , ROM_SKIP(7) )
+ ROMX_LOAD( "xmqq-5c.bin", 0x000005, 0x20000, CRC(e2169bb5) SHA1(2ca3d6eeee27606af0b21c69491c3bfbe1f82ed6) , ROM_SKIP(7) )
+ ROMX_LOAD( "xmqq-8h.bin", 0x000006, 0x20000, CRC(113121f5) SHA1(d5b3c97e70c3f53d4d68ed56d98e84df59f42073) , ROM_SKIP(7) )
+ ROMX_LOAD( "xmqq-8f.bin", 0x000007, 0x20000, CRC(beb00e07) SHA1(ab0264cb98fe9d77c5acff86800273ed4bdf2e1f) , ROM_SKIP(7) )
+ ROMX_LOAD( "xmqq-5b.bin", 0x100000, 0x20000, CRC(05354905) SHA1(6a53c47c9d87f76bf73b8cab540910cdcfcb9133) , ROM_SKIP(7) )
+ ROMX_LOAD( "xmqq-5a.bin", 0x100001, 0x20000, CRC(bd40215e) SHA1(7350e56ecef8e87cf5a4d4f50231fada6fc5356b) , ROM_SKIP(7) )
+ ROMX_LOAD( "xmqq-10b.bin", 0x100002, 0x20000, CRC(9fa773ef) SHA1(4f0cf813cfe7fbdf20403cfab81b1c01907eb62f) , ROM_SKIP(7) )
+ ROMX_LOAD( "xmqq-10a.bin", 0x100003, 0x20000, CRC(638d4bc7) SHA1(fca924ad53ad1d00dc2e70436fd22de81c08115f) , ROM_SKIP(7) )
+ ROMX_LOAD( "xmqq-7e.bin", 0x100004, 0x20000, CRC(72c45858) SHA1(e1ea89568077739b891c95f57c867c02f6c109ff) , ROM_SKIP(7) )
+ ROMX_LOAD( "xmqq-7c.bin", 0x100005, 0x20000, CRC(d91cda18) SHA1(ef40cb78484355be74d2a08fdd870b49263ab57d) , ROM_SKIP(7) )
+ ROMX_LOAD( "xmqq-9h.bin", 0x100006, 0x20000, CRC(3cd8594b) SHA1(a099428d0f0231f91881beee0bd6a80ba2c3d693) , ROM_SKIP(7) )
+ ROMX_LOAD( "xmqq-9f.bin", 0x100007, 0x20000, CRC(1ec10bed) SHA1(139563c41450591b5674d885e3260cb99b206e25) , ROM_SKIP(7) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "xmqq-13b.bin", 0x00000, 0x08000, CRC(4e8b81a8) SHA1(4a837345223c51d668ec7f4d7460871c00f71482) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "xmqq-12c.bin", 0x00000, 0x20000, CRC(71ac69ad) SHA1(401fe0294c6b7bc79426ab1922e02a97415cd2ef) )
+ ROM_LOAD( "xmqq-13c.bin", 0x20000, 0x20000, CRC(71e29699) SHA1(8f19a925bbd47ef965c41af233359a1552c7f8b0) )
+
+ /*
+ 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) )
+ */
+
+ /* not sure
+ ROM_REGION( 0x0200, "bboardplds", 0 )
+ ROM_LOAD( "unknown.1a", 0x0000, 0x0117, NO_DUMP )
+ ROM_LOAD( "lwio.12e", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) )
+ */
+ROM_END
+
+/* Home 'CPS Changer' Unit - For MESS */
+
+/* B-Board 91635B-2 */
+ROM_START( wofch )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "tk2(ch)_23.8f", 0x000000, 0x80000, CRC(4e0b8dee) SHA1(d2fb716d62b7a259f46bbc74c1976a18d56696ea) )
+ ROM_LOAD16_WORD_SWAP( "tk2(ch)_22.7f", 0x080000, 0x80000, CRC(d0937a8d) SHA1(01d7be446e2e3ef8ca767f59c178240dfd52dd93) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2(ch)_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2_05.7a
+ ROMX_LOAD( "tk2(ch)_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2_06.8a
+ ROMX_LOAD( "tk2(ch)_07.9a", 0x200004, 0x80000, CRC(cc9006c9) SHA1(cfcbec3a67052268a7739538aa28a6391fe5400e) , ROM_GROUPWORD | ROM_SKIP(6) ) /* 1 byte different from wofj, pcb verified */
+ ROMX_LOAD( "tk2(ch)_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2_08.10a
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ 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( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) )
+ 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( "tk263b.1a", 0x0000, 0x0117, CRC(c4b0349b) SHA1(b4873dd5ad8735048deb3475222dde3c0b67eaaf) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+
+ ROM_REGION( 0x0200, "dboardplds", 0 )
+ ROM_LOAD( "d7l1.7l", 0x0000, 0x0117, CRC(27b7410d) SHA1(06d0cba0226850f100ff1f539bd7d5db0f90c730) )
+ ROM_LOAD( "d8l1.8l", 0x0000, 0x0117, CRC(539fc7da) SHA1(cad5c91629c6247e49ccbbcbfe6b08229eafae07) )
+ ROM_LOAD( "d9k1.9k", 0x0000, 0x0117, NO_DUMP )
+ ROM_LOAD( "d10f1.10f", 0x0000, 0x0117, CRC(6619c494) SHA1(3aef656c07182a2186f810f30e0d854dd5bd8d18) )
+ROM_END
+
+ROM_START( sfach )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "sfach23", 0x000000, 0x80000, CRC(02a1a853) SHA1(d92b9e774844fdcc9d9946b3e892b021e672d876) )
+ ROM_LOAD16_WORD_SWAP( "sfza22", 0x080000, 0x80000, CRC(8d9b2480) SHA1(405305c1572908d00eab735f28676fbbadb4fac6) )
+ ROM_LOAD16_WORD_SWAP( "sfzch21", 0x100000, 0x80000, CRC(5435225d) SHA1(6b1156fd82d0710e244ede39faaae0847c598376) )
+ ROM_LOAD16_WORD_SWAP( "sfza20", 0x180000, 0x80000, CRC(806e8f38) SHA1(b6d6912aa8f2f590335d7ff9a8214648e7131ebb) )
+
+ ROM_REGION( 0x800000, "gfx", 0 )
+ ROMX_LOAD( "sfz01", 0x000000, 0x80000, CRC(0dd53e62) SHA1(5f3bcf5ca0fd564d115fe5075a4163d3ee3226df) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz02", 0x000002, 0x80000, CRC(94c31e3f) SHA1(2187b3d4977514f2ae486eb33ed76c86121d5745) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz03", 0x000004, 0x80000, CRC(9584ac85) SHA1(bbd62d66b0f6909630e801ce5d6331d43f44d741) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz04", 0x000006, 0x80000, CRC(b983624c) SHA1(841106bb9453e3dfb7869c4b0e9149cc610d515a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz05", 0x200000, 0x80000, CRC(2b47b645) SHA1(bc6426eff5df9417f32666586744626fa544f7b5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz06", 0x200002, 0x80000, CRC(74fd9fb1) SHA1(7945472591f3c06970e96611a0363ed8f3d52c36) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz07", 0x200004, 0x80000, CRC(bb2c734d) SHA1(97a06935f86f31755d2ffdc5b56bef53944bdecd) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz08", 0x200006, 0x80000, CRC(454f7868) SHA1(eecccba7542d893bc41676246a20aa4914b79bbc) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz10", 0x400000, 0x80000, CRC(2a7d675e) SHA1(0144ba34a29fb08b41c780ce65bb06d25724e88f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz11", 0x400002, 0x80000, CRC(e35546c8) SHA1(7b08aa3413494d12c5c550263a5f00b64b98e6ab) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz12", 0x400004, 0x80000, CRC(f122693a) SHA1(71ce901d8d30207e506b6a8d6a4e0fcf3a1b0eac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz13", 0x400006, 0x80000, CRC(7cf942c8) SHA1(a7109facb97a8a11ddf1b4e07de6ff3164d713a1) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz14", 0x600000, 0x80000, CRC(09038c81) SHA1(3461d70902fbfb92ce40f804be6388276a01d153) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz15", 0x600002, 0x80000, CRC(1aa17391) SHA1(b4d0f760a430b7fc4443b6c94da2659315c5b926) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz16", 0x600004, 0x80000, CRC(19a5abd6) SHA1(73ba1de15c883fdc69fd7dccdb58d00ca512d4ea) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz17", 0x600006, 0x80000, CRC(248b3b73) SHA1(95810a17b1caf6372b33ed3e4ee8a7e51482c70d) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x8000, "stars", 0 )
+ ROM_COPY( "gfx", 0x000000, 0x000000, 0x8000 ) /* stars */
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sfz09", 0x00000, 0x08000, CRC(c772628b) SHA1(ebc5b7c173caf1e151f733f23c1b20abec24e16d) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "sfz18", 0x00000, 0x20000, CRC(61022b2d) SHA1(6369d0c1d08a30ee19b94e52ab1463a7784b9de5) )
+ ROM_LOAD( "sfz19", 0x20000, 0x20000, CRC(3b5886d5) SHA1(7e1b7d40ef77b5df628dd663d45a9a13c742cf58) )
+ROM_END
+
+/* FIXME B-Board uncertain but should be 91634B from the program ROM names */
+ROM_START( sfzch )
+ ROM_REGION( CODE_SIZE, "maincpu",0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "sfzch23", 0x000000, 0x80000, CRC(1140743f) SHA1(10bcedb5cca266f2aa3ed99ede6f9a64fc877539))
+ ROM_LOAD16_WORD_SWAP( "sfza22", 0x080000, 0x80000, CRC(8d9b2480) SHA1(405305c1572908d00eab735f28676fbbadb4fac6))
+ ROM_LOAD16_WORD_SWAP( "sfzch21", 0x100000, 0x80000, CRC(5435225d) SHA1(6b1156fd82d0710e244ede39faaae0847c598376))
+ ROM_LOAD16_WORD_SWAP( "sfza20", 0x180000, 0x80000, CRC(806e8f38) SHA1(b6d6912aa8f2f590335d7ff9a8214648e7131ebb))
+
+ ROM_REGION( 0x800000, "gfx", 0 )
+ ROMX_LOAD( "sfz_01.3a", 0x000000, 0x80000, CRC(0dd53e62) SHA1(5f3bcf5ca0fd564d115fe5075a4163d3ee3226df), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz_02.4a", 0x000002, 0x80000, CRC(94c31e3f) SHA1(2187b3d4977514f2ae486eb33ed76c86121d5745), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz_03.5a", 0x000004, 0x80000, CRC(9584ac85) SHA1(bbd62d66b0f6909630e801ce5d6331d43f44d741), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz_04.6a", 0x000006, 0x80000, CRC(b983624c) SHA1(841106bb9453e3dfb7869c4b0e9149cc610d515a), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz_05.7a", 0x200000, 0x80000, CRC(2b47b645) SHA1(bc6426eff5df9417f32666586744626fa544f7b5), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz_06.8a", 0x200002, 0x80000, CRC(74fd9fb1) SHA1(7945472591f3c06970e96611a0363ed8f3d52c36), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz_07.9a", 0x200004, 0x80000, CRC(bb2c734d) SHA1(97a06935f86f31755d2ffdc5b56bef53944bdecd), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz_08.10a", 0x200006, 0x80000, CRC(454f7868) SHA1(eecccba7542d893bc41676246a20aa4914b79bbc), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz_10.3c", 0x400000, 0x80000, CRC(2a7d675e) SHA1(0144ba34a29fb08b41c780ce65bb06d25724e88f), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz_11.4c", 0x400002, 0x80000, CRC(e35546c8) SHA1(7b08aa3413494d12c5c550263a5f00b64b98e6ab), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz_12.5c", 0x400004, 0x80000, CRC(f122693a) SHA1(71ce901d8d30207e506b6a8d6a4e0fcf3a1b0eac), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz_13.6c", 0x400006, 0x80000, CRC(7cf942c8) SHA1(a7109facb97a8a11ddf1b4e07de6ff3164d713a1), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz_14.7c", 0x600000, 0x80000, CRC(09038c81) SHA1(3461d70902fbfb92ce40f804be6388276a01d153), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz_15.8c", 0x600002, 0x80000, CRC(1aa17391) SHA1(b4d0f760a430b7fc4443b6c94da2659315c5b926), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz_16.9c", 0x600004, 0x80000, CRC(19a5abd6) SHA1(73ba1de15c883fdc69fd7dccdb58d00ca512d4ea), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz_17.10c", 0x600006, 0x80000, CRC(248b3b73) SHA1(95810a17b1caf6372b33ed3e4ee8a7e51482c70d), ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x8000, "stars", 0 )
+ ROM_COPY( "gfx", 0x000000, 0x000000, 0x8000 )
+
+ ROM_REGION( 0x18000, "audiocpu",0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sfz_09.12a", 0x00000, 0x08000, CRC(c772628b) SHA1(ebc5b7c173caf1e151f733f23c1b20abec24e16d))
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki",0 ) /* Samples */
+ ROM_LOAD( "sfz_18.11c", 0x00000, 0x20000, CRC(61022b2d) SHA1(6369d0c1d08a30ee19b94e52ab1463a7784b9de5))
+ ROM_LOAD( "sfz_19.12c", 0x20000, 0x20000, CRC(3b5886d5) SHA1(7e1b7d40ef77b5df628dd663d45a9a13c742cf58))
+ROM_END
+
+/* FIXME B-Board uncertain but should be 91634B from the program ROM names */
+ROM_START( sfzbch )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "sfzbch23", 0x000000, 0x80000, CRC(53699f68) SHA1(d7f132faf8c31b5e79c32e6b0cce45377ec8d474) )
+ ROM_LOAD16_WORD_SWAP( "sfza22", 0x080000, 0x80000, CRC(8d9b2480) SHA1(405305c1572908d00eab735f28676fbbadb4fac6) )
+ ROM_LOAD16_WORD_SWAP( "sfzch21", 0x100000, 0x80000, CRC(5435225d) SHA1(6b1156fd82d0710e244ede39faaae0847c598376) )
+ ROM_LOAD16_WORD_SWAP( "sfza20", 0x180000, 0x80000, CRC(806e8f38) SHA1(b6d6912aa8f2f590335d7ff9a8214648e7131ebb) )
+
+ ROM_REGION( 0x800000, "gfx", 0 )
+ ROMX_LOAD( "sfz_01.3a", 0x000000, 0x80000, CRC(0dd53e62) SHA1(5f3bcf5ca0fd564d115fe5075a4163d3ee3226df), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz_02.4a", 0x000002, 0x80000, CRC(94c31e3f) SHA1(2187b3d4977514f2ae486eb33ed76c86121d5745), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz_03.5a", 0x000004, 0x80000, CRC(9584ac85) SHA1(bbd62d66b0f6909630e801ce5d6331d43f44d741), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz_04.6a", 0x000006, 0x80000, CRC(b983624c) SHA1(841106bb9453e3dfb7869c4b0e9149cc610d515a), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz_05.7a", 0x200000, 0x80000, CRC(2b47b645) SHA1(bc6426eff5df9417f32666586744626fa544f7b5), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz_06.8a", 0x200002, 0x80000, CRC(74fd9fb1) SHA1(7945472591f3c06970e96611a0363ed8f3d52c36), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz_07.9a", 0x200004, 0x80000, CRC(bb2c734d) SHA1(97a06935f86f31755d2ffdc5b56bef53944bdecd), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz_08.10a", 0x200006, 0x80000, CRC(454f7868) SHA1(eecccba7542d893bc41676246a20aa4914b79bbc), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz_10.3c", 0x400000, 0x80000, CRC(2a7d675e) SHA1(0144ba34a29fb08b41c780ce65bb06d25724e88f), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz_11.4c", 0x400002, 0x80000, CRC(e35546c8) SHA1(7b08aa3413494d12c5c550263a5f00b64b98e6ab), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz_12.5c", 0x400004, 0x80000, CRC(f122693a) SHA1(71ce901d8d30207e506b6a8d6a4e0fcf3a1b0eac), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz_13.6c", 0x400006, 0x80000, CRC(7cf942c8) SHA1(a7109facb97a8a11ddf1b4e07de6ff3164d713a1), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz_14.7c", 0x600000, 0x80000, CRC(09038c81) SHA1(3461d70902fbfb92ce40f804be6388276a01d153), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz_15.8c", 0x600002, 0x80000, CRC(1aa17391) SHA1(b4d0f760a430b7fc4443b6c94da2659315c5b926), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz_16.9c", 0x600004, 0x80000, CRC(19a5abd6) SHA1(73ba1de15c883fdc69fd7dccdb58d00ca512d4ea), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz_17.10c", 0x600006, 0x80000, CRC(248b3b73) SHA1(95810a17b1caf6372b33ed3e4ee8a7e51482c70d), ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x8000, "stars", 0 )
+ ROM_COPY( "gfx", 0x000000, 0x000000, 0x8000 ) /* stars */
+
+ ROM_REGION( 0x18000, "audiocpu",0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sfz_09.12a", 0x00000, 0x08000, CRC(c772628b) SHA1(ebc5b7c173caf1e151f733f23c1b20abec24e16d))
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki",0 ) /* Samples */
+ ROM_LOAD( "sfz_18.11c", 0x00000, 0x20000, CRC(61022b2d) SHA1(6369d0c1d08a30ee19b94e52ab1463a7784b9de5))
+ ROM_LOAD( "sfz_19.12c", 0x20000, 0x20000, CRC(3b5886d5) SHA1(7e1b7d40ef77b5df628dd663d45a9a13c742cf58))
+ROM_END
+
+
+DRIVER_INIT_MEMBER(cps_state,forgottn)
+{
+ /* Forgotten Worlds has a NEC uPD4701AC on the B-board handling dial inputs from the CN-MOWS connector. */
+ /* The memory mapping is handled by PAL LWIO */
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x800040, 0x800041, write16_delegate(FUNC(cps_state::forgottn_dial_0_reset_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x800048, 0x800049, write16_delegate(FUNC(cps_state::forgottn_dial_1_reset_w),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x800052, 0x800055, read16_delegate(FUNC(cps_state::forgottn_dial_0_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x80005a, 0x80005d, read16_delegate(FUNC(cps_state::forgottn_dial_1_r),this));
+
+ save_item(NAME(m_dial));
+
+ m_dial[0] = 0;
+ m_dial[1] = 0;
+
+ DRIVER_INIT_CALL(cps1);
+}
+
+READ16_MEMBER(cps_state::sf2rb_prot_r)
+{
+ switch (offset)
+ {
+ case 0x01201/2:
+ return 0x0002;
+
+ case 0x81201/2:
+ return 0x0040;
+ }
+
+ return 0;
+}
+
+DRIVER_INIT_MEMBER(cps_state,sf2rb)
+{
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x200000, 0x2fffff, read16_delegate(FUNC(cps_state::sf2rb_prot_r),this));
+
+ DRIVER_INIT_CALL(cps1);
+}
+
+READ16_MEMBER(cps_state::sf2rb2_prot_r)
+{
+ switch (offset)
+ {
+ case 0x01201/2:
+ return 0x0000;
+
+ case 0x81201/2:
+ return 0x0040;
+ }
+
+ return 0;
+}
+
+DRIVER_INIT_MEMBER(cps_state,sf2rb2)
+{
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x200000, 0x2fffff, read16_delegate(FUNC(cps_state::sf2rb2_prot_r),this));
+
+ DRIVER_INIT_CALL(cps1);
+}
+
+DRIVER_INIT_MEMBER(cps_state,sf2ee)
+{
+ /* This specific revision of SF2 has the CPS-B custom mapped at a different address. */
+ /* The mapping is handled by the PAL IOB2 on the B-board */
+ m_maincpu->space(AS_PROGRAM).unmap_readwrite(0x800140, 0x80017f);
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x8001c0, 0x8001ff, read16_delegate(FUNC(cps_state::cps1_cps_b_r),this), write16_delegate(FUNC(cps_state::cps1_cps_b_w),this));
+
+ DRIVER_INIT_CALL(cps1);
+}
+
+DRIVER_INIT_MEMBER(cps_state,sf2thndr)
+{
+ /* This particular hack uses a modified B-board PAL which mirrors the CPS-B registers at an alternate address */
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x8001c0, 0x8001ff, read16_delegate(FUNC(cps_state::cps1_cps_b_r),this), write16_delegate(FUNC(cps_state::cps1_cps_b_w),this));
+
+ DRIVER_INIT_CALL(cps1);
+}
+
+DRIVER_INIT_MEMBER(cps_state,sf2hack)
+{
+ /* some SF2 hacks have some inputs wired to the LSB instead of MSB */
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x800018, 0x80001f, read16_delegate(FUNC(cps_state::cps1_hack_dsw_r),this));
+
+ DRIVER_INIT_CALL(cps1);
+}
+
+
+READ16_MEMBER(cps_state::sf2dongb_prot_r)
+{
+ switch (offset)
+ {
+ case 0x00000/2: // (ret & 0x0f00) == 0x0200
+ case 0x77040/2: // (ret & 0x0ff0) == 0x0210
+ return 0x0210;
+ }
+
+ return 0;
+}
+
+DRIVER_INIT_MEMBER(cps_state,sf2dongb)
+{
+ // There is a hacked up Altera EP910PC-30 DIP in the 5f socket instead of a 4th eprom
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x180000, 0x1fffff, read16_delegate(FUNC(cps_state::sf2dongb_prot_r),this));
+
+ DRIVER_INIT_CALL(cps1);
+}
+
+READ16_MEMBER(cps_state::sf2ceblp_prot_r)
+{
+ if (sf2ceblp_prot == 0x0)
+ return 0x1992;
+ if (sf2ceblp_prot == 0x04)
+ return 0x0408;
+ return 0xffff;
+}
+
+WRITE16_MEMBER(cps_state::sf2ceblp_prot_w)
+{
+ sf2ceblp_prot = data;
+}
+
+
+DRIVER_INIT_MEMBER( cps_state, sf2ceblp )
+{
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x5762b0, 0x5762b1, write16_delegate(FUNC(cps_state::sf2ceblp_prot_w),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x57A2b0, 0x57A2b1, read16_delegate(FUNC(cps_state::sf2ceblp_prot_r),this));
+
+ DRIVER_INIT_CALL(cps1);
+}
+
+DRIVER_INIT_MEMBER( cps_state, sf2m8 )
+{
+ // unscramble gfx
+ uint8_t *grom = memregion("gfx")->base();
+ uint8_t *urom = memregion("user2")->base();
+ int i = 0x480000, j = 0;
+
+ for (j = 0x20000; j < 0x80000; j+=2)
+ {
+ grom[i++] = urom[j];
+ grom[i++] = urom[j|0x100000];
+ grom[i++] = urom[j|0x000001];
+ grom[i++] = urom[j|0x100001];
+ grom[i++] = urom[j|0x080000];
+ grom[i++] = urom[j|0x180000];
+ grom[i++] = urom[j|0x080001];
+ grom[i++] = urom[j|0x180001];
+ }
+
+ DRIVER_INIT_CALL(cps1);
+}
+
+void cps_state::kabuki_setup(void (*decode)(uint8_t *src, uint8_t *dst))
+{
+ m_decrypt_kabuki = std::make_unique<uint8_t[]>(0x8000);
+ uint8_t *rom = memregion("audiocpu")->base();
+ decode(rom, m_decrypt_kabuki.get());
+ membank("decrypted")->set_base(m_decrypt_kabuki.get());
+}
+
+DRIVER_INIT_MEMBER(cps_state,wof)
+{
+ kabuki_setup(wof_decode);
+ DRIVER_INIT_CALL(cps1);
+}
+
+DRIVER_INIT_MEMBER(cps_state,dino)
+{
+ kabuki_setup(dino_decode);
+ DRIVER_INIT_CALL(cps1);
+}
+
+DRIVER_INIT_MEMBER(cps_state,punisher)
+{
+ kabuki_setup(punisher_decode);
+ DRIVER_INIT_CALL(cps1);
+}
+
+DRIVER_INIT_MEMBER(cps_state,slammast)
+{
+ kabuki_setup(slammast_decode);
+ DRIVER_INIT_CALL(cps1);
+}
+
+DRIVER_INIT_MEMBER(cps_state,pang3b)
+{
+ /* Pang 3 is the only non-QSound game to have an EEPROM. */
+ /* It is mapped in the CPS-B address range so probably is on the C-board. */
+ m_maincpu->space(AS_PROGRAM).install_readwrite_port(0x80017a, 0x80017b, "EEPROMIN", "EEPROMOUT");
+
+ DRIVER_INIT_CALL(cps1);
+}
+
+DRIVER_INIT_MEMBER(cps_state,pang3)
+{
+ uint16_t *rom = (uint16_t *)memregion("maincpu")->base();
+ int A, src, dst;
+
+ for (A = 0x80000; A < 0x100000; A += 2)
+ {
+ /* only the low 8 bits of each word are encrypted */
+ src = rom[A / 2];
+ dst = src & 0xff00;
+ if ( src & 0x01) dst ^= 0x04;
+ if ( src & 0x02) dst ^= 0x21;
+ if ( src & 0x04) dst ^= 0x01;
+ if (~src & 0x08) dst ^= 0x50;
+ if ( src & 0x10) dst ^= 0x40;
+ if ( src & 0x20) dst ^= 0x06;
+ if ( src & 0x40) dst ^= 0x08;
+ if (~src & 0x80) dst ^= 0x88;
+ rom[A/2] = dst;
+ }
+
+ DRIVER_INIT_CALL(pang3b);
+}
+
+READ16_MEMBER(cps_state::ganbare_ram_r)
+{
+ uint16_t result = 0xffff;
+
+ if (ACCESSING_BITS_0_7)
+ result = (result & ~0x00ff) | m_m48t35->read(space, offset, 0xff);
+ if (ACCESSING_BITS_8_15)
+ result = (result & ~0xff00) | (m_mainram[offset] & 0xff00);
+
+ return result;
+}
+
+WRITE16_MEMBER(cps_state::ganbare_ram_w)
+{
+ COMBINE_DATA(&m_mainram[offset]);
+
+ if (ACCESSING_BITS_0_7)
+ m_m48t35->write(space, offset, data & 0xff, 0xff);
+}
+
+DRIVER_INIT_MEMBER(cps_state, ganbare)
+{
+ DRIVER_INIT_CALL(cps1);
+
+ /* ram is shared between the CPS work ram and the timekeeper ram */
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xff0000, 0xffffff, read16_delegate(FUNC(cps_state::ganbare_ram_r),this), write16_delegate(FUNC(cps_state::ganbare_ram_w),this));
+}
+
+READ16_MEMBER(cps_state::dinohunt_sound_r)
+{
+ /*TODO: understand what's really going on here. According to MT05805;
+ "I think that the values written are only qsound leftovers (after a lot of 0xFF values,
+ there is the same qsound starting sequence, eg: 0x88, 0xFF, 0x0B, 0x00, 0x00, 0x00, ...)."*/
+ return 0xff;
+}
+
+DRIVER_INIT_MEMBER(cps_state,dinohunt)
+{
+ // is this shared with the new sound hw?
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xf18000, 0xf19fff, read16_delegate(FUNC(cps_state::dinohunt_sound_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_port(0xfc0000, 0xfc0001, "IN2"); ;
+ // the ym2151 doesn't seem to be used. Is it actually on the PCB?
+
+ DRIVER_INIT_CALL(cps1);
+}
+
+WRITE16_MEMBER( cps_state::sf2m3_layer_w )
+{
+ cps1_cps_b_w(space,0x0a,data);
+}
+
+
+
+/*************************************************** Game Macros *****************************************************/
+
+GAME( 1988, forgottn, 0, cps1_10MHz, forgottn, cps_state, forgottn, ROT0, "Capcom", "Forgotten Worlds (World, newer)", MACHINE_SUPPORTS_SAVE ) // (c) Capcom U.S.A. but World "warning"
+GAME( 1988, forgottna, forgottn, 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, strideruc, strider, cps1_10MHz, stridrua, cps_state, cps1, ROT0, "bootleg (Capcom)", "Strider (USA, B-Board 90629B-3, buggy Street Fighter II conversion)", MACHINE_SUPPORTS_SAVE ) // various bugs even on PCB, see rom load
+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, sf2cebltw, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "bootleg", "Street Fighter II': Champion Edition ('Taiwan' bootleg with PAL)", MACHINE_SUPPORTS_SAVE ) // 'Taiwan'
+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, sf2m10, sf2ce, sf2m10, sf2hack, cps_state, cps1, ROT0, "bootleg", "Street Fighter II': Champion Edition (M10, bootleg)", MACHINE_SUPPORTS_SAVE )
+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 )
+GAME( 1994, pokonyan, 0, cps1_10MHz, pokonyan, cps_state, cps1, ROT0, "Capcom", "Pokonyan! Balloon (Japan 940322)", MACHINE_SUPPORTS_SAVE ) // 2002-10-24 was on the ROM labels, 940322 on the startup screen... take your pick
+
+/* Games released on CPS-1 hardware by Mitchell */
+
+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 */
+
+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)", 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
+// HBMAME
+#include "cps1mis.cpp"
diff --git a/docs/release/src/hbmame/drivers/cps1mis.cpp b/docs/release/src/hbmame/drivers/cps1mis.cpp
new file mode 100644
index 00000000000..177d94683da
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/cps1mis.cpp
@@ -0,0 +1,6753 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+/*******************************************************************************************************************
+
+ CPS-1 driver for hacks and bootlegs
+
+Issues:
+
+- knightsh
+ the title screen is garbage.
+
+- kodh
+ title, problem with placement of the letters.
+
+- sk2h1, sk2h2, sk2h3, sk2h22, sk2h31, sk2h32, sk2h33, sk2h34
+ setup screen is blank.
+ map doesn't show first time around prior to demo 1, and never before demo 3.
+ priority issue, easily noticed on 3rd demo where actors are in the wagon instead of behind it.
+
+- sk2h22, sk2h31, sk2h32, sk2h33, sk2h34, sk2h35
+ coin 3, start 3, 3rd player not working.
+
+- wofjcn
+ chinese language rom isn't working. Whatever is tried breaks stuff.
+
+
+*******************************************************************************************************************/
+
+WRITE16_MEMBER( cps_state::dinoh_sound_command_w )
+{
+ /* Pass the Sound Code to the Q-Sound Shared Ram */
+ m_qsound_sharedram1[1] = data;
+}
+
+WRITE16_MEMBER( cps_state::daimakb_palctrl_w )
+{
+ m_cps_b_regs[0x30 / 2] = data;
+}
+
+WRITE16_MEMBER(cps_state::daimakb_layer_w)
+{
+ if (offset == 0x00)
+ m_cps_a_regs[0x0e / 2] = data; /* scroll 1y */
+ else
+ if (offset == 0x01)
+ m_cps_a_regs[0x0c / 2] = data - 0x40; /* scroll 1x */
+ else
+ if (offset == 0x02)
+ {
+ m_cps_a_regs[0x12 / 2] = data; /* scroll 2y */
+ m_cps_a_regs[0x20 / 2] = data; /* row scroll start */
+ }
+ else
+ if (offset == 0x03)
+ m_cps_a_regs[0x10 / 2] = data - 0x40; /* scroll 2x */
+ else
+ if (offset == 0x04)
+ m_cps_a_regs[0x16 / 2] = data; /* scroll 3y */
+ else
+ if (offset == 0x05)
+ m_cps_a_regs[0x14 / 2] = data - 0x40; /* scroll 3x */
+ else
+ if (offset == 0x06)
+ {
+ switch (data)
+ {
+ case 0x0000:
+ data = (1 << 12) | (2 << 8) | (3 << 6);
+ break;
+ case 0x0001:
+ data = (1 << 12) | (3 << 6);
+ break;
+ case 0x0002:
+ data = (3 << 12) | (1 << 6);
+ break;
+ case 0x0006:
+ data = 0;
+ break;
+ default:
+ data = 0;
+ printf ("Unknown control word = %X\n",data);
+ }
+ m_cps_b_regs[0x26 / 2] = data;
+ }
+}
+
+
+
+/**************************************************************************
+
+ Address Maps
+
+***************************************************************************/
+
+static ADDRESS_MAP_START( daimakb_map, AS_PROGRAM, 16, cps_state )
+ AM_RANGE(0x000000, 0x3fffff) AM_ROM
+ AM_RANGE(0x800000, 0x800001) AM_READ_PORT("IN1") /* Player input ports */
+ AM_RANGE(0x800006, 0x800007) AM_WRITE(cps1_soundlatch_w) /* Sound command */
+ AM_RANGE(0x800018, 0x80001f) AM_READ(cps1_hack_dsw_r) /* System input ports / Dip Switches */
+ AM_RANGE(0x800030, 0x800037) AM_WRITE(cps1_coinctrl_w)
+ AM_RANGE(0x800100, 0x80013f) AM_WRITE(cps1_cps_a_w) AM_SHARE("cps_a_regs") /* CPS-A custom */
+ AM_RANGE(0x800166, 0x800171) AM_WRITENOP // not used
+ AM_RANGE(0xe00000, 0xe0003f) AM_READWRITE(cps1_cps_b_r, cps1_cps_b_w) AM_SHARE("cps_b_regs") // dummy region
+ AM_RANGE(0x880000, 0x880001) AM_WRITE(daimakb_palctrl_w)
+ AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram")
+ AM_RANGE(0x980000, 0x98000d) AM_WRITE(daimakb_layer_w)
+ AM_RANGE(0x990000, 0x993fff) AM_WRITENOP // bootleg sprites, not needed
+ AM_RANGE(0xff0000, 0xffffff) AM_RAM
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( sk2h35_map, AS_PROGRAM, 16, cps_state )
+/* unknown addresses (all write): 930008-930807. No 3rd player controls. NVRAM doesn't work */
+ AM_RANGE(0x000000, 0x3fffff) AM_ROM
+ AM_RANGE(0x800000, 0x800001) AM_READ_PORT("IN1") /* Player input ports */
+ AM_RANGE(0x800018, 0x80001f) AM_READ(cps1_dsw_r) /* System input ports / Dip Switches */
+ AM_RANGE(0x80001c, 0x80001d) AM_READ_PORT("EEPROMIN") AM_WRITE_PORT("EEPROMOUT")
+ AM_RANGE(0x800030, 0x800037) AM_WRITE(cps1_coinctrl_w)
+ AM_RANGE(0x800100, 0x80013f) AM_WRITE(cps1_cps_a_w) AM_SHARE("cps_a_regs") /* CPS-A custom */
+ AM_RANGE(0x800140, 0x80017f) AM_READWRITE(cps1_cps_b_r, cps1_cps_b_w) AM_SHARE("cps_b_regs") /* CPS-B custom */
+ AM_RANGE(0x800180, 0x800187) AM_WRITE(cps1_soundlatch_w) /* Sound command */
+ AM_RANGE(0x800188, 0x80018f) AM_WRITE(cps1_soundlatch2_w) /* Sound timer fade */
+ AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram")
+ AM_RANGE(0x930008, 0x930807) AM_WRITENOP
+ AM_RANGE(0xf18000, 0xf19fff) AM_READWRITE(qsound_sharedram1_r, qsound_sharedram1_w) /* Q RAM */
+ AM_RANGE(0xf1ce74, 0xf1ce75) AM_WRITENOP
+ AM_RANGE(0xf1e000, 0xf1ffff) AM_READWRITE(qsound_sharedram2_r, qsound_sharedram2_w) /* Q RAM */
+ AM_RANGE(0xff0000, 0xffffff) AM_RAM
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( cps1frog_map, AS_PROGRAM, 16, cps_state )
+ AM_RANGE(0x000000, 0x3fffff) AM_ROM
+ AM_RANGE(0x800000, 0x800001) AM_READ_PORT("IN1") /* Player input ports */
+ AM_RANGE(0x800030, 0x800031) AM_WRITE(cps1_coinctrl_w)
+ AM_RANGE(0x800100, 0x80013f) AM_WRITE(cps1_cps_a_w) AM_SHARE("cps_a_regs") /* Output ports */
+ AM_RANGE(0x800140, 0x80017f) AM_READWRITE(cps1_cps_b_r, cps1_cps_b_w) AM_SHARE("cps_b_regs")
+ AM_RANGE(0x800180, 0x800187) AM_WRITE(cps1_soundlatch_w) /* Sound command */
+ AM_RANGE(0x800188, 0x80018f) AM_WRITE(cps1_soundlatch2_w) /* Sound timer fade */
+ AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram")
+ AM_RANGE(0xff0000, 0xffffff) AM_RAM
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( sk2h1q_map, AS_PROGRAM, 16, cps_state )
+ AM_RANGE(0x000000, 0x3fffff) AM_ROM
+ AM_RANGE(0x800030, 0x800031) AM_WRITE(cps1_coinctrl_w)
+ AM_RANGE(0x800100, 0x80013f) AM_RAM AM_SHARE("cps_a_regs") /* CPS-A custom */
+ AM_RANGE(0x800140, 0x80017f) AM_READWRITE(cps1_cps_b_r, cps1_cps_b_w) AM_SHARE("cps_b_regs")
+ AM_RANGE(0x880000, 0x880001) AM_READ_PORT("IN1") /* Player input ports */
+ AM_RANGE(0x880006, 0x88000d) AM_READ(cps1_dsw_r) /* System input ports / Dip Switches */
+ AM_RANGE(0x88000e, 0x88000f) AM_WRITENOP
+ AM_RANGE(0x880e78, 0x880e79) AM_READ(cps1_in2_r) /* Player 3 controls (later games) */
+ AM_RANGE(0x890000, 0x890001) AM_WRITENOP
+ AM_RANGE(0x8bfff6, 0x8bfff9) AM_READNOP /* unknown */
+ AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram")
+ AM_RANGE(0xf18000, 0xf19fff) AM_READWRITE(qsound_sharedram1_r, qsound_sharedram1_w) /* Q RAM */
+ AM_RANGE(0xf1c004, 0xf1c005) AM_WRITE(cpsq_coinctrl2_w) /* Coin control2 (later games) */
+ AM_RANGE(0xf1c006, 0xf1c007) AM_READ_PORT("EEPROMIN") AM_WRITE_PORT("EEPROMOUT")
+ AM_RANGE(0xf1e000, 0xf1ffff) AM_READWRITE(qsound_sharedram2_r, qsound_sharedram2_w) /* Q RAM */
+ AM_RANGE(0xff0000, 0xffffff) AM_RAM
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( sk2h3_map, AS_PROGRAM, 16, cps_state )
+ AM_RANGE(0x000000, 0x3fffff) AM_ROM
+ AM_RANGE(0x800030, 0x800031) AM_WRITE(cps1_coinctrl_w)
+ AM_RANGE(0x800100, 0x80013f) AM_RAM AM_SHARE("cps_a_regs") /* CPS-A custom */
+ AM_RANGE(0x800140, 0x80017f) AM_READWRITE(cps1_cps_b_r, cps1_cps_b_w) AM_SHARE("cps_b_regs")
+ AM_RANGE(0x880000, 0x880001) AM_READ_PORT("IN1") /* Player input ports */
+ AM_RANGE(0x880006, 0x88000d) AM_READ(cps1_dsw_r) /* System input ports / Dip Switches */
+ AM_RANGE(0x88000e, 0x88000f) AM_WRITE(cps1_soundlatch_w)
+ AM_RANGE(0x880e78, 0x880e79) AM_READ(cps1_in2_r) /* Player 3 controls (later games) */
+ AM_RANGE(0x890000, 0x890001) AM_WRITENOP
+ AM_RANGE(0x8bfff6, 0x8bfff9) AM_READNOP /* unknown */
+ AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram")
+ AM_RANGE(0xf1c004, 0xf1c005) AM_WRITE(cpsq_coinctrl2_w) /* Coin control2 (later games) */
+ AM_RANGE(0xf1c006, 0xf1c007) AM_READ_PORT("EEPROMIN") AM_WRITE_PORT("EEPROMOUT")
+ AM_RANGE(0xff0000, 0xffffff) AM_RAM
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( sk2h31q_map, AS_PROGRAM, 16, cps_state )
+ AM_RANGE(0x000000, 0x3fffff) AM_ROM
+ AM_RANGE(0x800030, 0x800031) AM_WRITE(cps1_coinctrl_w)
+ AM_RANGE(0x800100, 0x80013f) AM_WRITE(cps1_cps_a_w) AM_SHARE("cps_a_regs") /* Output ports */
+ AM_RANGE(0x800140, 0x80017f) AM_READWRITE(cps1_cps_b_r, cps1_cps_b_w) AM_SHARE("cps_b_regs")
+ AM_RANGE(0x880000, 0x880001) AM_READ_PORT("IN1") /* Player input ports */
+ AM_RANGE(0x880006, 0x880007) AM_WRITENOP // soundlatch on non-qsound hw
+ AM_RANGE(0x880008, 0x88000f) AM_READ(cps1_dsw_r) /* System input ports / Dip Switches */
+ AM_RANGE(0x880e7e, 0x880e7f) AM_READ(cps1_in2_r) /* Player 3 controls (later games) */
+ AM_RANGE(0x890000, 0x890001) AM_WRITENOP
+ AM_RANGE(0x8bfff6, 0x8bfff9) AM_READNOP /* unknown */
+ AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram")
+ AM_RANGE(0xf18000, 0xf19fff) AM_READWRITE(qsound_sharedram1_r, qsound_sharedram1_w) /* Q RAM */
+ AM_RANGE(0xf1c004, 0xf1c005) AM_WRITE(cpsq_coinctrl2_w) /* Coin control2 (later games) */
+ AM_RANGE(0xf1c006, 0xf1c007) AM_READ_PORT("EEPROMIN") AM_WRITE_PORT("EEPROMOUT")
+ AM_RANGE(0xf1e000, 0xf1ffff) AM_READWRITE(qsound_sharedram2_r, qsound_sharedram2_w) /* Q RAM */
+ AM_RANGE(0xff0000, 0xffffff) AM_RAM
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( sk2h31_map, AS_PROGRAM, 16, cps_state )
+ AM_RANGE(0x000000, 0x3fffff) AM_ROM
+ AM_RANGE(0x800030, 0x800031) AM_WRITE(cps1_coinctrl_w)
+ AM_RANGE(0x800100, 0x80013f) AM_WRITE(cps1_cps_a_w) AM_SHARE("cps_a_regs") /* Output ports */
+ AM_RANGE(0x800140, 0x80017f) AM_READWRITE(cps1_cps_b_r, cps1_cps_b_w) AM_SHARE("cps_b_regs")
+ AM_RANGE(0x880000, 0x880001) AM_READ_PORT("IN1") /* Player input ports */
+ AM_RANGE(0x880006, 0x880007) AM_WRITE(cps1_soundlatch_w)
+ AM_RANGE(0x880008, 0x88000f) AM_READ(cps1_dsw_r) /* System input ports / Dip Switches */
+ AM_RANGE(0x880e7e, 0x880e7f) AM_READ(cps1_in2_r) /* Player 3 controls (later games) */
+ AM_RANGE(0x890000, 0x890001) AM_WRITENOP
+ AM_RANGE(0x8bfff6, 0x8bfff9) AM_READNOP /* unknown */
+ AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram")
+ AM_RANGE(0xf1c004, 0xf1c005) AM_WRITE(cpsq_coinctrl2_w) /* Coin control2 (later games) */
+ AM_RANGE(0xf1c006, 0xf1c007) AM_READ_PORT("EEPROMIN") AM_WRITE_PORT("EEPROMOUT")
+ AM_RANGE(0xff0000, 0xffffff) AM_RAM
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( wofsf2_map, AS_PROGRAM, 16, cps_state )
+ AM_RANGE(0x000000, 0x3fffff) AM_ROM
+ AM_RANGE(0x800000, 0x800007) AM_READ_PORT("IN1")
+ AM_RANGE(0x800018, 0x80001f) AM_READ(cps1_hack_dsw_r)
+ AM_RANGE(0x800030, 0x800037) AM_WRITE(cps1_coinctrl_w)
+ AM_RANGE(0x800100, 0x80013f) AM_WRITE(cps1_cps_a_w) AM_SHARE("cps_a_regs") /* CPS-A custom */
+ AM_RANGE(0x800140, 0x80017f) AM_READWRITE(cps1_cps_b_r, cps1_cps_b_w) AM_SHARE("cps_b_regs")
+ AM_RANGE(0x800180, 0x800187) AM_WRITE(cps1_soundlatch_w) /* Sound command */
+ AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram")
+ AM_RANGE(0xf18000, 0xf19fff) AM_RAM
+ AM_RANGE(0xf1c000, 0xf1c001) AM_READ(cps1_in2_r) /* Player 3 controls */
+ AM_RANGE(0xf1c004, 0xf1c005) AM_WRITE(cpsq_coinctrl2_w) /* Coin control2 (later games) */
+ AM_RANGE(0xf1c006, 0xf1c007) AM_READ_PORT("EEPROMIN") AM_WRITE_PORT("EEPROMOUT")
+ AM_RANGE(0xff0000, 0xffffff) AM_RAM AM_SHARE("mainram")
+ADDRESS_MAP_END
+
+/********************************************************************
+
+ Inputs and dips
+
+*********************************************************************/
+
+static INPUT_PORTS_START( dinohz )
+ PORT_INCLUDE( dino )
+
+ PORT_MODIFY("IN1")
+ PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) 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_MODIFY("IN2") /* Player 3 */
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3)
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3)
+// PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3)
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN3 )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 )
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( knightsh )
+ PORT_INCLUDE( knights )
+
+ PORT_MODIFY("IN1")
+ PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) 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_MODIFY("IN2") /* Player 3 */
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3)
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3)
+// PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3)
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN3 )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 )
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( kodh )
+ PORT_INCLUDE( kod )
+
+ PORT_MODIFY("IN1")
+ PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) 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 )
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( pnicku )
+ PORT_INCLUDE( pnickj )
+ PORT_MODIFY("DSWA")
+ PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW(A):1,2,3")
+ PORT_DIPSETTING( 0x00, DEF_STR( 5C_1C ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( 4C_1C ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( 3C_1C ) )
+ PORT_DIPSETTING( 0x03, DEF_STR( 2C_1C ) )
+ PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) )
+ PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) )
+ PORT_DIPSETTING( 0x05, DEF_STR( 1C_3C ) )
+ PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ) )
+
+ PORT_DIPNAME( 0x10, 0x10, "Chuters" ) PORT_DIPLOCATION("SW(A):5")
+ PORT_DIPSETTING( 0x00, "2" )
+ PORT_DIPSETTING( 0x10, "1" )
+
+ PORT_MODIFY("DSWC")
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW(C):3")
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( sk2h3 )
+ PORT_START ("IN0")
+ 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_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
+ PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START ("DSWA")
+ PORT_DIPNAME( 0x03, 0x00, "Play Mode" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Normal ) )
+ PORT_DIPSETTING( 0x03, "Tournament" )
+ PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START ("DSWB")
+ PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coinage ) )
+ PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( 1C_3C ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( 1C_4C ) )
+ PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START ("DSWC")
+ PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNKNOWN )
+
+ PORT_START ("IN1")
+ PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) 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 ("IN2") /* Player 3 */
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3)
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3)
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN3 )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 )
+
+ PORT_START( "EEPROMIN" )
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, do_read)
+
+ PORT_START( "EEPROMOUT" )
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, di_write)
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, clk_write)
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, cs_write)
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( sk2h21 )
+ PORT_INCLUDE( wof )
+
+ PORT_MODIFY("IN1")
+ PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) 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_MODIFY("IN2") /* Player 3 */
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3)
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3)
+// PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3)
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN3 )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 )
+INPUT_PORTS_END
+
+
+/***********************************************************
+ INPUT PORTS, DIPs
+***********************************************************/
+
+static INPUT_PORTS_START( cps1frog )
+ PORT_START ("IN0")
+ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START ("DSWA")
+ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START ("DSWB")
+ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START ("DSWC")
+ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START ("IN1")
+ PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
+ 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 INPUT_PORTS_START( sk2h1 )
+ PORT_START ("IN0")
+ 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_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
+ PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START ("DSWA")
+ PORT_DIPNAME( 0x03, 0x00, "Play Mode" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Normal ) )
+ PORT_DIPSETTING( 0x03, "Tournament" )
+ PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START ("DSWB")
+ PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coinage ) )
+ PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( 1C_3C ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( 1C_4C ) )
+ PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START ("DSWC")
+ PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNKNOWN )
+
+ PORT_START ("IN1")
+ PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) 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 ("IN2") /* Player 3 */
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3)
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3)
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN3 )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 )
+
+ PORT_START( "EEPROMIN" )
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, do_read)
+
+ PORT_START( "EEPROMOUT" )
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, di_write)
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, clk_write)
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, cs_write)
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( sk2h31 )
+ PORT_START ("IN0")
+ 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_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
+ PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START ("DSWA") /* there are lots of other combinations, but this covers the useful ones */
+ PORT_DIPNAME( 0xff, 0xff, DEF_STR( Coinage ) )
+ PORT_DIPSETTING( 0xde, DEF_STR( 2C_1C ) )
+ PORT_DIPSETTING( 0xff, DEF_STR( 1C_1C ) )
+ PORT_DIPSETTING( 0xfe, DEF_STR( 1C_2C ) )
+ PORT_DIPSETTING( 0xfd, DEF_STR( 1C_3C ) )
+ PORT_DIPSETTING( 0xfc, DEF_STR( 1C_4C ) )
+ PORT_DIPSETTING( 0x7f, DEF_STR( 1C_7C ) )
+ PORT_DIPSETTING( 0xdf, DEF_STR( 1C_8C ) )
+
+ PORT_START ("DSWB") /* (not used, EEPROM) */
+ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START ("DSWC") /* (not used, EEPROM) */
+ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START ("IN1")
+ PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) 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_UNKNOWN )
+ PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START ("IN2") /* Player 3 */
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3)
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3)
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN3 )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 )
+
+ PORT_START( "EEPROMIN" )
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, do_read)
+
+ PORT_START( "EEPROMOUT" )
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, di_write)
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, clk_write)
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, cs_write)
+INPUT_PORTS_END
+
+/********************************************************************
+*
+* Machine Driver macro
+* ====================
+*
+*
+********************************************************************/
+
+
+static MACHINE_CONFIG_DERIVED( wofsf2, wofhfh )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(wofsf2_map)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( daimakb, cps1_10MHz)
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(daimakb_map)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( sk2h3, wofhfh)
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(sk2h3_map)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( sk2h31, wofhfh)
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(sk2h31_map)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( sk2h35, qsound)
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(sk2h35_map)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_START( cps1frog, cps_state )
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", M68000, XTAL_10MHz ) /* verified on pcb */
+ MCFG_CPU_PROGRAM_MAP(cps1frog_map)
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", cps_state, cps1_interrupt)
+
+ /* audio CPU */
+ MCFG_CPU_ADD("audiocpu", Z80, XTAL_3_579545MHz) /* verified on pcb */
+ MCFG_CPU_PROGRAM_MAP(sub_map)
+
+ MCFG_MACHINE_START_OVERRIDE(cps_state, cps1)
+
+ /* video hardware */
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_RAW_PARAMS(XTAL_16MHz/2, 518, 64, 448, 259, 16, 240) /* guess: assume that CPS-1 uses the same exact timings as CPS-2 */
+ MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_cps1)
+ MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(cps_state, screen_vblank_cps1))
+ MCFG_SCREEN_PALETTE("palette")
+ MCFG_GFXDECODE_ADD("gfxdecode", "palette", cps1)
+ MCFG_PALETTE_ADD("palette", 0xc00)
+ MCFG_VIDEO_START_OVERRIDE(cps_state, cps1)
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+ MCFG_GENERIC_LATCH_8_ADD("soundlatch")
+ MCFG_GENERIC_LATCH_8_ADD("soundlatch2")
+ MCFG_YM2151_ADD("2151", XTAL_3_579545MHz) /* verified on pcb */
+ MCFG_YM2151_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
+ MCFG_SOUND_ROUTE(0, "mono", 0.35)
+ MCFG_SOUND_ROUTE(1, "mono", 0.35)
+ MCFG_OKIM6295_ADD("oki", XTAL_16MHz/4/4, OKIM6295_PIN7_HIGH) // pin 7 can be changed by the game code, see f006 on z80
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( sk2h1q, cps1frog )
+
+ /* basic machine hardware */
+ MCFG_CPU_REPLACE("maincpu", M68000, XTAL_12MHz ) /* verified on pcb */
+ MCFG_CPU_PROGRAM_MAP(sk2h1q_map)
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", cps_state, cps1_interrupt)
+
+ MCFG_CPU_REPLACE("audiocpu", Z80, XTAL_8MHz) /* verified on pcb */
+ MCFG_CPU_PROGRAM_MAP(qsound_sub_map)
+ MCFG_CPU_DECRYPTED_OPCODES_MAP(qsound_decrypted_opcodes_map)
+ MCFG_CPU_PERIODIC_INT_DRIVER(cps_state, irq0_line_hold, 250) /* ?? */
+
+ MCFG_MACHINE_START_OVERRIDE(cps_state, qsound)
+
+ MCFG_EEPROM_SERIAL_93C46_ADD("eeprom")
+
+ /* sound hardware */
+ MCFG_DEVICE_REMOVE("mono")
+ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
+
+ MCFG_DEVICE_REMOVE("2151")
+ MCFG_DEVICE_REMOVE("oki")
+
+ MCFG_QSOUND_ADD("qsound", QSOUND_CLOCK)
+ MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
+ MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( sk2h31q, sk2h1q )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(sk2h31q_map)
+MACHINE_CONFIG_END
+
+
+/**********************************************************************
+
+ Roms
+
+***********************************************************************/
+
+ROM_START( 3wondrud )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "3wondrud.30", 0x00000, 0x20000, CRC(b0953ff4) SHA1(79d0b68948a9b5be8eacd33810ddcf4fa08dbe71) )
+ ROM_LOAD16_BYTE( "3wondrud.35", 0x00001, 0x20000, CRC(7695e8c6) SHA1(f78e7cb1098d77ce84d58a0d4509a77f5c483a77) )
+ ROM_LOAD16_BYTE( "3wondrud.31", 0x40000, 0x20000, CRC(8cf00a3c) SHA1(dceb5bccf7c96802e7c228ea52f82fbb49388e0d) )
+ ROM_LOAD16_BYTE( "3wondrud.36", 0x40001, 0x20000, CRC(b649ad19) SHA1(f91dad60a583a46f80e71bb23bfd051b3ed3fbe5) )
+ ROM_LOAD16_BYTE( "rt_28a.9f", 0x80000, 0x20000, CRC(054137c8) SHA1(e4c406e0a32198323a5931093fbaa6836510b8ad) )
+ ROM_LOAD16_BYTE( "rt_33a.9h", 0x80001, 0x20000, CRC(7264cb1b) SHA1(b367acb9f6579569321ecaa98a14e29dd775b9db) )
+ ROM_LOAD16_BYTE( "rtu_29a.10f", 0xc0000, 0x20000, CRC(37ba3e20) SHA1(a128b1a17639b06a4fd8acffe0357f1dbd1d4fe9) )
+ ROM_LOAD16_BYTE( "rtu_34a.10h", 0xc0001, 0x20000, CRC(f99f46c0) SHA1(cda24a6baa3f861e7078fb2fa91328cc1cddc866) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "rt-5m.7a", 0x000000, 0x80000, CRC(86aef804) SHA1(723927ef3bf992d12395c52db051ece7bf57d5e5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rt-7m.9a", 0x000002, 0x80000, CRC(4f057110) SHA1(b7d35c883a74cf4bfb242d9f15a0e40ed1ec111f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rt-1m.3a", 0x000004, 0x80000, CRC(902489d0) SHA1(748ba416a8b9343059a3e7d8b93f02162feb1d0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rt-3m.5a", 0x000006, 0x80000, CRC(e35ce720) SHA1(6c1a87a1f819bdc20408b5a7823cf35a79d34110) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rt-6m.8a", 0x200000, 0x80000, CRC(13cb0e7c) SHA1(e429d594d9a7ff4cc6306e2796a9d6ad0fa25569) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rt-8m.10a", 0x200002, 0x80000, CRC(1f055014) SHA1(d64f5be9bb2ef761ca9b2e797dbc3554cf996a79) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rt-2m.4a", 0x200004, 0x80000, CRC(e9a034f4) SHA1(deb4cb5886705380b57d4fe9b9bf3c032e1d6227) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rt-4m.6a", 0x200006, 0x80000, CRC(df0eea8b) SHA1(5afa05654cccb0504bd44569d42fd68f08fd172f) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "rt_9.12b", 0x00000, 0x08000, CRC(abfca165) SHA1(428069d3bdc45775854cd0e8abe447f134fe5492) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "rt_18.11c", 0x00000, 0x20000, CRC(26b211ab) SHA1(0ea03fdd9edff41eacfc52aa9e0421c10968356b) )
+ ROM_LOAD( "rt_19.12c", 0x20000, 0x20000, CRC(dbe64ad0) SHA1(09f2ad522fe75d7bcca094b8c6696c3733b539d5) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "3wondrud.key", 0x000000, 0x000080, CRC(5066be6f) SHA1(a514ffb7561b1d563382c4c69e24c81574902081) )
+ROM_END
+
+
+ROM_START( captcocc )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP("captcocc.23", 0x000000, 0x80000, CRC(1e5c9f79) SHA1(09f7356b5badae26f24a2afac2cbe0d8e0c9481a) )
+ ROM_LOAD16_WORD_SWAP("captcocc.22", 0x080000, 0x80000, CRC(6ea50796) SHA1(62d0cd0203c2bb75bd0b69e3b25a492c37658da4) )
+ ROM_LOAD16_BYTE( "cc_24f.9e", 0x100000, 0x20000, CRC(3a794f25) SHA1(7f3722a4ef0c1d7acb73e6bac9dd6ae7b35e6374) )
+ ROM_LOAD16_BYTE( "cc_28f.9f", 0x100001, 0x20000, CRC(fc3c2906) SHA1(621c3b79b6fdea1665bb316eb539e5916e890656) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cc-5m.3a", 0x000000, 0x80000, CRC(7261d8ba) SHA1(4b66292e42d20d0b79a756f0e445492ddb9c6bbc) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-7m.5a", 0x000002, 0x80000, CRC(6a60f949) SHA1(87391ff92abaf3e451f70d789a938cffbd1fd222) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-1m.4a", 0x000004, 0x80000, CRC(00637302) SHA1(2c554b59cceec2de67a9a4bc6281fe846d3c8cd2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-3m.6a", 0x000006, 0x80000, CRC(cc87cf61) SHA1(7fb1f49494cc1a08aded20754bb0cefb1c323198) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-6m.7a", 0x200000, 0x80000, CRC(28718bed) SHA1(dfdc4dd14dc609783bad94d608a9e9b137dea944) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-8m.9a", 0x200002, 0x80000, CRC(d4acc53a) SHA1(d03282ebbde362e679cc97f772aa9baf163d7606) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-2m.8a", 0x200004, 0x80000, CRC(0c69f151) SHA1(a170b8e568439e4a26d84376d53560e4248e4e2f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-4m.10a", 0x200006, 0x80000, CRC(1f9ebb97) SHA1(023d00cb7b6a52d1b29e2052abe08ef34cb0c55c) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "cc_09.11a", 0x00000, 0x08000, CRC(698e8b58) SHA1(b7a3d905a7ed2c430426ca2e185e3d7e75e752a1) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "cc_18.11c", 0x00000, 0x20000, CRC(6de2c2db) SHA1(9a1eaba8d104f59a5e61f89679bb5de0c0c64364) )
+ ROM_LOAD( "cc_19.12c", 0x20000, 0x20000, CRC(b99091ae) SHA1(b19197c7ad3aeaf5f41c26bf853b0c9b502ecfca) )
+ROM_END
+
+ROM_START( captcomc )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "cc23", 0x000000, 0x80000, CRC(a5e73e49) SHA1(7bb75fa0e1122a85a421c50607c0ad57a387783e) )
+ ROM_LOAD16_WORD_SWAP( "cc22", 0x080000, 0x80000, CRC(919777c5) SHA1(2bd9b1527e8486ae89ddcdb0694c63c5859080b6) )
+ ROM_LOAD16_BYTE( "cc24", 0x100000, 0x20000, CRC(f3d6f147) SHA1(937822148c0f6f295d468024ce7887ee0353e669) )
+ ROM_LOAD16_BYTE( "cc28", 0x100001, 0x20000, CRC(f1c9bf8a) SHA1(545f494106ccce6ccbbe6fa042cf0ee6df03e8dc) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cc-5m.3a", 0x000000, 0x80000, CRC(7261d8ba) SHA1(4b66292e42d20d0b79a756f0e445492ddb9c6bbc) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-7m.5a", 0x000002, 0x80000, CRC(6a60f949) SHA1(87391ff92abaf3e451f70d789a938cffbd1fd222) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-1m.4a", 0x000004, 0x80000, CRC(00637302) SHA1(2c554b59cceec2de67a9a4bc6281fe846d3c8cd2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-3m.6a", 0x000006, 0x80000, CRC(cc87cf61) SHA1(7fb1f49494cc1a08aded20754bb0cefb1c323198) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "gfx_05.rom", 0x200000, 0x80000, CRC(e4282bc0) SHA1(fe6012a8afcaec5747194bedfa73284bb28300a4) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "gfx_07.rom", 0x200002, 0x80000, CRC(8b0ef34c) SHA1(13a696856432b2f345cd2b2059e95179c78bd70a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "gfx_06.rom", 0x200004, 0x80000, CRC(2d7bee50) SHA1(a25bcfa99c4dda52469f7dc8fec24287c97deb84) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "gfx_08.rom", 0x200006, 0x80000, CRC(0106bf6a) SHA1(8e23418c58c4ffb8dd4dac93b92b23c406d60a62) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "cc_09.11a", 0x00000, 0x08000, CRC(698e8b58) SHA1(b7a3d905a7ed2c430426ca2e185e3d7e75e752a1) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "cc_18.11c", 0x00000, 0x20000, CRC(6de2c2db) SHA1(9a1eaba8d104f59a5e61f89679bb5de0c0c64364) )
+ ROM_LOAD( "cc_19.12c", 0x20000, 0x20000, CRC(b99091ae) SHA1(b19197c7ad3aeaf5f41c26bf853b0c9b502ecfca) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "captcomm.key", 0x000000, 0x000080, CRC(3bd9c940) SHA1(8964479f402ce7e000f1da8b3f6386e6915269e1) )
+ROM_END
+
+ROM_START( captcomh )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "cce_23dh.rom", 0x000000, 0x80000, CRC(d97f921c) SHA1(451ab11ddd845ecddeaf60b3c46903d784c3389c) )
+ ROM_LOAD16_WORD_SWAP( "cc_22d.rom", 0x080000, 0x80000, CRC(a91949b7) SHA1(c027af89cd8f6bd3aaed61114582322c42e0c74f) )
+ ROM_LOAD16_BYTE( "cc_24d.rom", 0x100000, 0x20000, CRC(680e543f) SHA1(cfa963ab6329f615807db213bf53841860ed3149) )
+ ROM_LOAD16_BYTE( "cc_28d.rom", 0x100001, 0x20000, CRC(8820039f) SHA1(d68ce0b34ade75b8c5214168b2b1e0cdff45cd52) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cc-5m.3a", 0x000000, 0x80000, CRC(7261d8ba) SHA1(4b66292e42d20d0b79a756f0e445492ddb9c6bbc) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-7m.5a", 0x000002, 0x80000, CRC(6a60f949) SHA1(87391ff92abaf3e451f70d789a938cffbd1fd222) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-1m.4a", 0x000004, 0x80000, CRC(00637302) SHA1(2c554b59cceec2de67a9a4bc6281fe846d3c8cd2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-3m.6a", 0x000006, 0x80000, CRC(cc87cf61) SHA1(7fb1f49494cc1a08aded20754bb0cefb1c323198) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-6m.7a", 0x200000, 0x80000, CRC(28718bed) SHA1(dfdc4dd14dc609783bad94d608a9e9b137dea944) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-8m.9a", 0x200002, 0x80000, CRC(d4acc53a) SHA1(d03282ebbde362e679cc97f772aa9baf163d7606) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-2m.8a", 0x200004, 0x80000, CRC(0c69f151) SHA1(a170b8e568439e4a26d84376d53560e4248e4e2f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-4m.10a", 0x200006, 0x80000, CRC(1f9ebb97) SHA1(023d00cb7b6a52d1b29e2052abe08ef34cb0c55c) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "cc_09.11a", 0x00000, 0x08000, CRC(698e8b58) SHA1(b7a3d905a7ed2c430426ca2e185e3d7e75e752a1) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "cc_18.11c", 0x00000, 0x20000, CRC(6de2c2db) SHA1(9a1eaba8d104f59a5e61f89679bb5de0c0c64364) )
+ ROM_LOAD( "cc_19.12c", 0x20000, 0x20000, CRC(b99091ae) SHA1(b19197c7ad3aeaf5f41c26bf853b0c9b502ecfca) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "captcomm.key", 0x000000, 0x000080, CRC(3bd9c940) SHA1(8964479f402ce7e000f1da8b3f6386e6915269e1) )
+ROM_END
+
+ROM_START( captcoud )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP("captcoud.23", 0x000000, 0x80000, CRC(1d338c25) SHA1(4aba7e5a78bf20d887b3493e0d2a83098f877f9f) )
+ ROM_LOAD16_WORD_SWAP("captcoud.22", 0x080000, 0x80000, CRC(c5310f13) SHA1(97a3751630f10cf67515200ce435c34fda1d9a52) )
+ ROM_LOAD16_BYTE( "ccu_24b.9e", 0x100000, 0x20000, CRC(84ff99b2) SHA1(5b02c91f3d0f8fb46db9596136b683f5a22dc15f) )
+ ROM_LOAD16_BYTE( "ccu_28b.9f", 0x100001, 0x20000, CRC(fbcec223) SHA1(daf484baece5b3a11f3dcabb758b8bdd736a1fb6) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cc-5m.3a", 0x000000, 0x80000, CRC(7261d8ba) SHA1(4b66292e42d20d0b79a756f0e445492ddb9c6bbc) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-7m.5a", 0x000002, 0x80000, CRC(6a60f949) SHA1(87391ff92abaf3e451f70d789a938cffbd1fd222) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-1m.4a", 0x000004, 0x80000, CRC(00637302) SHA1(2c554b59cceec2de67a9a4bc6281fe846d3c8cd2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-3m.6a", 0x000006, 0x80000, CRC(cc87cf61) SHA1(7fb1f49494cc1a08aded20754bb0cefb1c323198) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-6m.7a", 0x200000, 0x80000, CRC(28718bed) SHA1(dfdc4dd14dc609783bad94d608a9e9b137dea944) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-8m.9a", 0x200002, 0x80000, CRC(d4acc53a) SHA1(d03282ebbde362e679cc97f772aa9baf163d7606) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-2m.8a", 0x200004, 0x80000, CRC(0c69f151) SHA1(a170b8e568439e4a26d84376d53560e4248e4e2f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-4m.10a", 0x200006, 0x80000, CRC(1f9ebb97) SHA1(023d00cb7b6a52d1b29e2052abe08ef34cb0c55c) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "cc_09.11a", 0x00000, 0x08000, CRC(698e8b58) SHA1(b7a3d905a7ed2c430426ca2e185e3d7e75e752a1) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "cc_18.11c", 0x00000, 0x20000, CRC(6de2c2db) SHA1(9a1eaba8d104f59a5e61f89679bb5de0c0c64364) )
+ ROM_LOAD( "cc_19.12c", 0x20000, 0x20000, CRC(b99091ae) SHA1(b19197c7ad3aeaf5f41c26bf853b0c9b502ecfca) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "captcoud.key", 0x000000, 0x000080, CRC(6a4c8ad9) SHA1(56912fc3387cf977e602d3e8dad31b64dadc6b4a) )
+ROM_END
+
+ROM_START( captcovs )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP("captcovs.23", 0x000000, 0x80000, CRC(c1ad4e2a) SHA1(0b7843fec92261b2e727147aa6df60f4b5fc8fc7) )
+ ROM_LOAD16_WORD_SWAP("captcovs.22", 0x080000, 0x80000, CRC(8e19a05a) SHA1(b60dd9b1693630e9e3fe73c1b3f8a026945fb23d) )
+ ROM_LOAD16_BYTE( "cc_24f.9e", 0x100000, 0x20000, CRC(3a794f25) SHA1(7f3722a4ef0c1d7acb73e6bac9dd6ae7b35e6374) )
+ ROM_LOAD16_BYTE( "cc_28f.9f", 0x100001, 0x20000, CRC(fc3c2906) SHA1(621c3b79b6fdea1665bb316eb539e5916e890656) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cc-5m.3a", 0x000000, 0x80000, CRC(7261d8ba) SHA1(4b66292e42d20d0b79a756f0e445492ddb9c6bbc) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-7m.5a", 0x000002, 0x80000, CRC(6a60f949) SHA1(87391ff92abaf3e451f70d789a938cffbd1fd222) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-1m.4a", 0x000004, 0x80000, CRC(00637302) SHA1(2c554b59cceec2de67a9a4bc6281fe846d3c8cd2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-3m.6a", 0x000006, 0x80000, CRC(cc87cf61) SHA1(7fb1f49494cc1a08aded20754bb0cefb1c323198) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-6m.7a", 0x200000, 0x80000, CRC(28718bed) SHA1(dfdc4dd14dc609783bad94d608a9e9b137dea944) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-8m.9a", 0x200002, 0x80000, CRC(d4acc53a) SHA1(d03282ebbde362e679cc97f772aa9baf163d7606) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-2m.8a", 0x200004, 0x80000, CRC(0c69f151) SHA1(a170b8e568439e4a26d84376d53560e4248e4e2f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-4m.10a", 0x200006, 0x80000, CRC(1f9ebb97) SHA1(023d00cb7b6a52d1b29e2052abe08ef34cb0c55c) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "cc_09.11a", 0x00000, 0x08000, CRC(698e8b58) SHA1(b7a3d905a7ed2c430426ca2e185e3d7e75e752a1) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "cc_18.11c", 0x00000, 0x20000, CRC(6de2c2db) SHA1(9a1eaba8d104f59a5e61f89679bb5de0c0c64364) )
+ ROM_LOAD( "cc_19.12c", 0x20000, 0x20000, CRC(b99091ae) SHA1(b19197c7ad3aeaf5f41c26bf853b0c9b502ecfca) )
+ROM_END
+
+
+ROM_START( cps1demo )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "cd30-36.bin", 0x00000, 0x20000, CRC(5eb617d6) SHA1(9d4656d2b29244eb2a01058f5b80752d94065a6e) )
+ ROM_LOAD16_BYTE( "cd35-42.bin", 0x00001, 0x20000, CRC(1f1c0a62) SHA1(12d1950921fff6d52ae969a4c7357f4e7bc28d1e) )
+ ROM_LOAD16_WORD_SWAP( "ff32-32m.bin", 0x80000, 0x80000, CRC(c747696e) SHA1(d3362dadded31ccb7eaf71ef282d698d18edd722) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "cd05-05m.bin", 0x000000, 0x80000, CRC(35dc6153) SHA1(7b7747d4e6a78c0933b6ea96fa6027c2c2c50682) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd07-07m.bin", 0x000002, 0x80000, CRC(baf08a38) SHA1(82559384399c5dfb8979a2e91d585549357ebb52) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd01-01m.bin", 0x000004, 0x80000, CRC(3ad8e790) SHA1(a371edc81a48903d13ed8938dca450dab986b413) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd03-03m.bin", 0x000006, 0x80000, CRC(fb5186f3) SHA1(b20031c01b6be2a4987553c0ab19105714bf9299) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "ff09-09.bin", 0x00000, 0x08000, CRC(b8367eb5) SHA1(ec3db29fdd6200e9a8f4f8073a7e34aef731354f) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "ff18-18.bin", 0x00000, 0x20000, CRC(375c66e7) SHA1(36189e23209ce4ae5d9cbabd1574540d0591e7b3) )
+ ROM_LOAD( "ff19-19.bin", 0x20000, 0x20000, CRC(1ef137f9) SHA1(974b5e72aa28b87ebfa7438efbdfeda769dedf5e) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "cps1demo.key", 0x000000, 0x000080, CRC(b0e5ee2d) SHA1(8189f48892fff7dc4fff4e765448e0ea2cfba4bc) )
+ROM_END
+
+ROM_START( cps1frog )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "frog30-36.bin", 0x00000, 0x20000, CRC(8eb8ddbe) SHA1(298c72b3eb6f2721f204cf80ec4a7c52dc8b23fd) )
+ ROM_LOAD16_BYTE( "frog35-42.bin", 0x00001, 0x20000, CRC(acb5a988) SHA1(7264bb94f7bacef9bf03713d0a6d32e81ca1f8e2) )
+ ROM_LOAD16_WORD_SWAP( "frog32-32m.bin", 0x80000, 0x80000, CRC(75660aac) SHA1(6a521e1d2a632c26e53b83d2cc4b0edecfc1e68c) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "frog05-05m.bin", 0x000000, 0x80000, CRC(7bbc4b54) SHA1(5a40bd85ce71dc733071732a8306d648b3e6dd39) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "frog07-07m.bin", 0x000002, 0x80000, CRC(0beadd80) SHA1(f43d6ad936b8ffa242c17d8da26bf2e2a12d85a8) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "frog01-01m.bin", 0x000004, 0x80000, CRC(f84d02bb) SHA1(b89322ab65a3b3e8202c27af62de2b182a4ed2e9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "frog03-03m.bin", 0x000006, 0x80000, CRC(d784a5b0) SHA1(8891bb8fc39f51db200c51e2a65961c351d655c2) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "frog09-09.bin", 0x00000, 0x08000, CRC(3ac7fb5c) SHA1(01057078b67dc82d80403533a3dca3deb95f166c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "frog18-18.bin", 0x00000, 0x20000, CRC(65d1ef07) SHA1(0bc2dbf5053430f659d64d1b287799bb5cc4db65) )
+ ROM_LOAD( "frog19-19.bin", 0x20000, 0x20000, CRC(7ee8cdcd) SHA1(67dfd19f3eb3649d6f3f6631e44d0bd36b8d8d19) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "cps1frog.key", 0x000000, 0x000080, CRC(3adeff30) SHA1(5d242a4e5edcf47905fb50d767d41c2977bfd78b) )
+ROM_END
+
+ROM_START( cps1tests )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "cps1tests.bin", 0x000000, 0x80000, CRC(938c72fe) SHA1(0a48661d5638ed6b841f646ebb9f948a01b8e2d3) )
+ ROM_LOAD16_WORD_SWAP( "s92_22b.7f", 0x080000, 0x80000, CRC(2bbe15ed) SHA1(a8e2edef62fa99c5ef701b28bfb6bc42f3af183d) )
+ ROM_LOAD16_WORD_SWAP( "s92_21a.6f", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sf2ce.key", 0x000000, 0x000080, CRC(35b37429) SHA1(b372cce106c0900554735c207fb333ac93554ec2) )
+ROM_END
+
+ROM_START( cps1testsa )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "cps1testsa.bin", 0x000000, 0x80000, CRC(8c24eb40) SHA1(0d9ebc078dd22e3b45eaf872d90eb973eb07aeeb) )
+ ROM_LOAD16_WORD_SWAP( "s92_22b.7f", 0x080000, 0x80000, CRC(2bbe15ed) SHA1(a8e2edef62fa99c5ef701b28bfb6bc42f3af183d) )
+ ROM_LOAD16_WORD_SWAP( "s92_21a.6f", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sf2ce.key", 0x000000, 0x000080, CRC(35b37429) SHA1(b372cce106c0900554735c207fb333ac93554ec2) )
+ROM_END
+
+ROM_START( cps1testm )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "cps1testm.bin", 0x000000, 0x80000, CRC(35a39adb) SHA1(dcb93102108a02f1f169833cfd355bd492cd9065) )
+ ROM_LOAD16_WORD_SWAP( "rcmu_22b.7f", 0x080000, 0x80000, CRC(708268c4) SHA1(554e011cad285b95dd1b6aa19be61b2413662a3a) )
+ ROM_LOAD16_WORD_SWAP( "rcmu_21a.6f", 0x100000, 0x80000, CRC(4376ea95) SHA1(7370ceffca513aa9f68a74f6869d561476589200) )
+
+ ROM_REGION( 0x800000, "gfx", 0 )
+ ROMX_LOAD( "rcm_01.3a", 0x000000, 0x80000, CRC(6ecdf13f) SHA1(2a8fe06bf5011e3f990f90d9224f91d8631ec0cc) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_02.4a", 0x000002, 0x80000, CRC(944d4f0f) SHA1(665dc9a537e9c9b565f6136f939ff5c2861f875f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_03.5a", 0x000004, 0x80000, CRC(36f3073c) SHA1(457d68e63599d06a136e152a9ad60adac1c91edd) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_04.6a", 0x000006, 0x80000, CRC(54e622ff) SHA1(36f6297e3d410f041be5e582919478b0d52520ca) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_05.7a", 0x200000, 0x80000, CRC(5dd131fd) SHA1(1a7fc8cf38901245d40901996e946e7ad9c0e0c5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_06.8a", 0x200002, 0x80000, CRC(f0faf813) SHA1(adff01c2ecc4c8ce6f8a50cbd07d8f8bb9f48168) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_07.9a", 0x200004, 0x80000, CRC(826de013) SHA1(47f36b1d92a487c43c8dadc8293b8e6f40649286) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_08.10a", 0x200006, 0x80000, CRC(fbff64cf) SHA1(f0cb531ef195dc1dcd224a208906a62fb5d199a1) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_10.3c", 0x400000, 0x80000, CRC(4dc8ada9) SHA1(776c2b3ef24c2b8f390c05a9c6728b14ceec696e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_11.4c", 0x400002, 0x80000, CRC(f2b9ee06) SHA1(db315b00d1caed1a8c0f6e0ae726e8fa05b011fa) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_12.5c", 0x400004, 0x80000, CRC(fed5f203) SHA1(23db14490519b5e2d0bb92ffe6e14540d1999e4b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_13.6c", 0x400006, 0x80000, CRC(5069d4a9) SHA1(b832b98be94371af52bd4bb911e18ec57430a7db) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_14.7c", 0x600000, 0x80000, CRC(303be3bd) SHA1(1e5c3fd71966ea9f457840c40582795b501c323e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_15.8c", 0x600002, 0x80000, CRC(4f2d372f) SHA1(db6a94d1f92c1b96e404b38ebcb1eedbec3ae6cc) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_16.9c", 0x600004, 0x80000, CRC(93d97fde) SHA1(e4be5216f98ad08a9118d629d398be2bd54e2e2a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_17.10c", 0x600006, 0x80000, CRC(92371042) SHA1(c55833cbaddcc986edd23c009a3e3c7ff09c2708) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "rcm_09.11a", 0x00000, 0x08000, CRC(22ac8f5f) SHA1(d1441d880f98034645cb4fcecd7bb746bde638af) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "rcm_18.11c", 0x00000, 0x20000, CRC(80f1f8aa) SHA1(4a5b7b2a6941ad68da7472c63362c7bcd353fa54) )
+ ROM_LOAD( "rcm_19.12c", 0x20000, 0x20000, CRC(f257dbe1) SHA1(967def6b6f93039dbc46373caabeb3301577be75) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "megaman.key", 0x000000, 0x000080, CRC(9c89eb62) SHA1(e67a3ed58f82875cff4861c14bd701b54dcc111f) )
+ROM_END
+
+ROM_START( cps1testma )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "cps1testma.bin", 0x000000, 0x80000, CRC(ca31eddc) SHA1(ee9841fc398de4d8dc083bfaf0d6e2b488fc8779) )
+ ROM_LOAD16_WORD_SWAP( "rcmu_22b.7f", 0x080000, 0x80000, CRC(708268c4) SHA1(554e011cad285b95dd1b6aa19be61b2413662a3a) )
+ ROM_LOAD16_WORD_SWAP( "rcmu_21a.6f", 0x100000, 0x80000, CRC(4376ea95) SHA1(7370ceffca513aa9f68a74f6869d561476589200) )
+
+ ROM_REGION( 0x800000, "gfx", 0 )
+ ROMX_LOAD( "rcm_01.3a", 0x000000, 0x80000, CRC(6ecdf13f) SHA1(2a8fe06bf5011e3f990f90d9224f91d8631ec0cc) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_02.4a", 0x000002, 0x80000, CRC(944d4f0f) SHA1(665dc9a537e9c9b565f6136f939ff5c2861f875f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_03.5a", 0x000004, 0x80000, CRC(36f3073c) SHA1(457d68e63599d06a136e152a9ad60adac1c91edd) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_04.6a", 0x000006, 0x80000, CRC(54e622ff) SHA1(36f6297e3d410f041be5e582919478b0d52520ca) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_05.7a", 0x200000, 0x80000, CRC(5dd131fd) SHA1(1a7fc8cf38901245d40901996e946e7ad9c0e0c5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_06.8a", 0x200002, 0x80000, CRC(f0faf813) SHA1(adff01c2ecc4c8ce6f8a50cbd07d8f8bb9f48168) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_07.9a", 0x200004, 0x80000, CRC(826de013) SHA1(47f36b1d92a487c43c8dadc8293b8e6f40649286) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_08.10a", 0x200006, 0x80000, CRC(fbff64cf) SHA1(f0cb531ef195dc1dcd224a208906a62fb5d199a1) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_10.3c", 0x400000, 0x80000, CRC(4dc8ada9) SHA1(776c2b3ef24c2b8f390c05a9c6728b14ceec696e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_11.4c", 0x400002, 0x80000, CRC(f2b9ee06) SHA1(db315b00d1caed1a8c0f6e0ae726e8fa05b011fa) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_12.5c", 0x400004, 0x80000, CRC(fed5f203) SHA1(23db14490519b5e2d0bb92ffe6e14540d1999e4b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_13.6c", 0x400006, 0x80000, CRC(5069d4a9) SHA1(b832b98be94371af52bd4bb911e18ec57430a7db) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_14.7c", 0x600000, 0x80000, CRC(303be3bd) SHA1(1e5c3fd71966ea9f457840c40582795b501c323e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_15.8c", 0x600002, 0x80000, CRC(4f2d372f) SHA1(db6a94d1f92c1b96e404b38ebcb1eedbec3ae6cc) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_16.9c", 0x600004, 0x80000, CRC(93d97fde) SHA1(e4be5216f98ad08a9118d629d398be2bd54e2e2a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_17.10c", 0x600006, 0x80000, CRC(92371042) SHA1(c55833cbaddcc986edd23c009a3e3c7ff09c2708) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "rcm_09.11a", 0x00000, 0x08000, CRC(22ac8f5f) SHA1(d1441d880f98034645cb4fcecd7bb746bde638af) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "rcm_18.11c", 0x00000, 0x20000, CRC(80f1f8aa) SHA1(4a5b7b2a6941ad68da7472c63362c7bcd353fa54) )
+ ROM_LOAD( "rcm_19.12c", 0x20000, 0x20000, CRC(f257dbe1) SHA1(967def6b6f93039dbc46373caabeb3301577be75) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "megaman.key", 0x000000, 0x000080, CRC(9c89eb62) SHA1(e67a3ed58f82875cff4861c14bd701b54dcc111f) )
+ROM_END
+
+
+ROM_START( daimakb )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "dmjb2.bin", 0x00000, 0x80000, CRC(7d5f9f84) SHA1(b334b3af610892ef4efe4764017659b8541a10c6) )
+ ROM_LOAD16_BYTE( "dmjb1.bin", 0x00001, 0x80000, CRC(9b945cc4) SHA1(dfdfabfd8ef06cee6be27350f79c5db4c6ace611) )
+
+ ROM_REGION( 0x300000, "gfx", 0 )
+ ROMX_LOAD( "dm_02.4b", 0x000000, 0x20000, CRC(8b98dc48) SHA1(e827881e2ba5cccd907d1692a1945c1b75d46f12) , ROM_SKIP(7) )
+ ROMX_LOAD( "dm_01.4a", 0x000001, 0x20000, CRC(80896c33) SHA1(20ffc427c596828005e34cdd8e4efa0d332262e9) , ROM_SKIP(7) )
+ ROMX_LOAD( "dm_10.9b", 0x000002, 0x20000, CRC(c2e7d9ef) SHA1(52aae6cf373f8c7150833047be28b74dd5eb5af6) , ROM_SKIP(7) )
+ ROMX_LOAD( "dm_09.9a", 0x000003, 0x20000, CRC(c9c4afa5) SHA1(34571e3e49c86b87fa34eefbc5f9fe258aba5f1a) , ROM_SKIP(7) )
+ ROMX_LOAD( "dm_18.5e", 0x000004, 0x20000, CRC(1aa0db99) SHA1(69ac302b2f6f0b96f78cb57b0b4cdae464086262) , ROM_SKIP(7) )
+ ROMX_LOAD( "dm_17.5c", 0x000005, 0x20000, CRC(dc6ed8ad) SHA1(1ffc4a48a7ff9b542ab6f63a60bea3c1a7a6e63b) , ROM_SKIP(7) )
+ ROMX_LOAD( "dm_30.8h", 0x000006, 0x20000, CRC(d9d3f8bd) SHA1(6c6853a384f8d60ca46a0607fd47c76a83700fba) , ROM_SKIP(7) )
+ ROMX_LOAD( "dm_29.8f", 0x000007, 0x20000, CRC(49a48796) SHA1(76c18c684dba4aa91ee6caae0f38fe3e1cc50832) , ROM_SKIP(7) )
+ ROMX_LOAD( "dm_04.5b", 0x100000, 0x20000, CRC(a4f4f8f0) SHA1(edca0f61b40a18afe279f7007c233064130cfb4f) , ROM_SKIP(7) )
+ ROMX_LOAD( "dm_03.5a", 0x100001, 0x20000, CRC(b1033e62) SHA1(547fc281dd9e7a74ac86c3692508c7bde9b6167b) , ROM_SKIP(7) )
+ ROMX_LOAD( "dm_12.10b", 0x100002, 0x20000, CRC(10fdd76a) SHA1(aee774d6323292799dff7a30ef9559c92fe5507a) , ROM_SKIP(7) )
+ ROMX_LOAD( "dm_11.10a", 0x100003, 0x20000, CRC(9040cb04) SHA1(b32e9056fc20a5162868eade10f3ef5efc167a28) , ROM_SKIP(7) )
+ ROMX_LOAD( "dm_20.7e", 0x100004, 0x20000, CRC(281d0b3e) SHA1(70e1813de184ad0ec164145b7b843b5e387494e3) , ROM_SKIP(7) )
+ ROMX_LOAD( "dm_19.7c", 0x100005, 0x20000, CRC(2623b52f) SHA1(fc4200924452bfbff687934782398ed345dc0aa0) , ROM_SKIP(7) )
+ ROMX_LOAD( "dm_32.9h", 0x100006, 0x20000, CRC(99692344) SHA1(67dc70618568b7c0adcb00a612aaf5501f6c8c0f) , ROM_SKIP(7) )
+ ROMX_LOAD( "dm_31.9f", 0x100007, 0x20000, CRC(54acb729) SHA1(d1fca43db36253fd19db4337c49272a6cadff597) , ROM_SKIP(7) )
+ ROMX_LOAD( "dm_06.7b", 0x200000, 0x10000, CRC(ae24bb19) SHA1(aa91c6ffe657b878e10e4e930457b530f7bb529b) , ROM_SKIP(7) )
+ ROMX_LOAD( "dm_05.7a", 0x200001, 0x10000, CRC(d34e271a) SHA1(55211fc2861dce32951f41624c9c99c09bf3b184) , ROM_SKIP(7) )
+ ROMX_LOAD( "dm_14.11b", 0x200002, 0x10000, CRC(3f70dd37) SHA1(9ecb4dec9d131e9fca15ded7d71986a9fcb62c19) , ROM_SKIP(7) )
+ ROMX_LOAD( "dm_13.11a", 0x200003, 0x10000, CRC(7e69e2e6) SHA1(4e0b4d2474beaa5c869c8f1a91893c79ac6e7f39) , ROM_SKIP(7) )
+ ROMX_LOAD( "dm_22.8e", 0x200004, 0x10000, CRC(37c9b6c6) SHA1(b2bb82537e335339846dbf9588cfacfdbdd75ee6) , ROM_SKIP(7) )
+ ROMX_LOAD( "dm_21.8c", 0x200005, 0x10000, CRC(2f1345b4) SHA1(14c450abcf9defa29c6f48e5ffd0b9d1e4a66a1d) , ROM_SKIP(7) )
+ ROMX_LOAD( "dm_26.10e", 0x200006, 0x10000, CRC(3c2a212a) SHA1(f8fa0e0e2d09ea37c54d1c2493752b4e97e3f534) , ROM_SKIP(7) )
+ ROMX_LOAD( "dm_25.10c", 0x200007, 0x10000, CRC(889aac05) SHA1(9301dcecee699e7f7672bb498122e1f4831ce536) , ROM_SKIP(7) )
+ ROMX_LOAD( "dm_08.8b", 0x280000, 0x10000, CRC(bcc0f28c) SHA1(02f587aa4ae71631f27b0e3aaf1829cdded1bdc2) , ROM_SKIP(7) )
+ ROMX_LOAD( "dm_07.8a", 0x280001, 0x10000, CRC(2a40166a) SHA1(dc4e75d7ed87ae5386d721a09113bba364740465) , ROM_SKIP(7) )
+ ROMX_LOAD( "dm_16.12b", 0x280002, 0x10000, CRC(20f85c03) SHA1(86385139a9b42270aade758bfe338525936f5671) , ROM_SKIP(7) )
+ ROMX_LOAD( "dm_15.12a", 0x280003, 0x10000, CRC(8426144b) SHA1(2dbf9625413b302fcdad5bef8733a9dfbfaead52) , ROM_SKIP(7) )
+ ROMX_LOAD( "dm_24.9e", 0x280004, 0x10000, CRC(da088d61) SHA1(67229eff2827a42af97a60ceb252e132e7f307bc) , ROM_SKIP(7) )
+ ROMX_LOAD( "dm_23.9c", 0x280005, 0x10000, CRC(17e11df0) SHA1(42fb15e9300b07fc5f4bc21744484869859b130c) , ROM_SKIP(7) )
+ ROMX_LOAD( "dm_28.11e", 0x280006, 0x10000, CRC(f187ba1c) SHA1(6d9441d04ecef2a9d9c7a2cc7781acd7904c2061) , ROM_SKIP(7) )
+ ROMX_LOAD( "dm_27.11c", 0x280007, 0x10000, CRC(29f79c78) SHA1(26000a58454a06c3016f99ebc3a79c52911a7070) , ROM_SKIP(7) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "dm_37.13c", 0x00000, 0x08000, CRC(3692f6e5) SHA1(61b8438d60a39b4cf5062dff0a53228e8a4e4b5f) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", ROMREGION_ERASEFF ) // to keep validation quiet
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "daimakb.key", 0x000000, 0x000080, CRC(c72cad61) SHA1(9036e06c84ff9189a83acd50a703fb6560ce5e98) )
+ROM_END
+
+
+ROM_START( dino08h2 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "dino08h2.23", 0x000000, 0x80000, CRC(39ebeee2) SHA1(b48c3174e4ca26517958b3e58a3a693ce4e9ee88) )
+ ROM_LOAD16_WORD_SWAP( "dino08h2.22", 0x080000, 0x80000, CRC(09307e79) SHA1(cff0af94c6118a852351a7b624db65963c91f577) )
+ ROM_LOAD16_WORD_SWAP( "dino08h2.21", 0x100000, 0x80000, CRC(c2a0f051) SHA1(57e4a569824fb2a9d726ba610d13e451ab0b36cb) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dino08h3 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "dino08h3.23", 0x000000, 0x80000, CRC(642a2380) SHA1(79d9f427740d7f86b81f560e71636097d10cccf1) )
+ ROM_LOAD16_WORD_SWAP( "dino08h3.22", 0x080000, 0x80000, CRC(7a3c6b73) SHA1(e7f75c286ced541d4d6e399a54fa39fc1a85773f) )
+ ROM_LOAD16_WORD_SWAP( "dino08h3.21", 0x100000, 0x80000, CRC(3383646e) SHA1(f3d220e79cb8f86ba799580541e790d9a1d2cdf5) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dino08hp )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "dino08hp.23", 0x000000, 0x80000, CRC(394826e3) SHA1(7b295e263ab7f38a57a118de0f4308debfe14591) )
+ ROM_LOAD16_WORD_SWAP( "dino08hp.22", 0x080000, 0x80000, CRC(a4894b10) SHA1(6c6d4319af544383007190cfe8835189089e4ac3) )
+ ROM_LOAD16_WORD_SWAP( "dino08h2.21", 0x100000, 0x80000, CRC(c2a0f051) SHA1(57e4a569824fb2a9d726ba610d13e451ab0b36cb) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinob ) // program same as dinopic in mame, but this one has working sound
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "3.bin", 0x000001, 0x80000, CRC(13dfeb08) SHA1(cd2f9dd64f4fabe93901247e36dff3763169716d) )
+ ROM_LOAD16_BYTE( "5.bin", 0x000000, 0x80000, CRC(96dfcbf1) SHA1(a8bda6edae2c1b79db7ae8a8976fd2457f874373) )
+ ROM_LOAD16_BYTE( "2.bin", 0x100001, 0x80000, CRC(0e4058ba) SHA1(346f9e34ea53dd1bf5cdafa1e38bf2edb09b9a7f) )
+ ROM_LOAD16_BYTE( "7.bin", 0x100000, 0x80000, CRC(6133f349) SHA1(d13af99910623f62c090d25372a2253dbc2f8cbe) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "4.bin", 0x000000, 0x40000, CRC(f3c2c98d) SHA1(98ae51a67fa4159456a4a205eebdd8d1775888d1), ROM_GROUPBYTE | ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000004, 0x40000 )
+ ROMX_LOAD( "8.bin", 0x000001, 0x40000, CRC(d574befc) SHA1(56482e7a9aa8439f30e3cf72311495ce677a083d), ROM_GROUPBYTE | ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000005, 0x40000 )
+ ROMX_LOAD( "9.bin", 0x000002, 0x40000, CRC(55ef0adc) SHA1(3b5551ae76ae80882d37fc70a1031a57885d6840), ROM_GROUPBYTE | ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000006, 0x40000 )
+ ROMX_LOAD( "6.bin", 0x000003, 0x40000, CRC(cc0805fc) SHA1(c512734c28b878a30a0de249929f69784d5d77a1), ROM_GROUPBYTE | ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000007, 0x40000 )
+ ROMX_LOAD( "13.bin", 0x200000, 0x40000, CRC(1371f714) SHA1(d2c98096fab08e3d4fd2482e6ebfc970ead656ee), ROM_GROUPBYTE | ROM_SKIP(7) )
+ ROM_CONTINUE( 0x200004, 0x40000 )
+ ROMX_LOAD( "12.bin", 0x200001, 0x40000, CRC(b284c4a7) SHA1(166f571e0afa115f8e38ba427b40e30abcfd70ee), ROM_GROUPBYTE | ROM_SKIP(7) )
+ ROM_CONTINUE( 0x200005, 0x40000 )
+ ROMX_LOAD( "11.bin", 0x200002, 0x40000, CRC(b7ad3394) SHA1(58dec34d9d991ff2817c8a7847749716abae6c77), ROM_GROUPBYTE | ROM_SKIP(7) )
+ ROM_CONTINUE( 0x200006, 0x40000 )
+ ROMX_LOAD( "10.bin", 0x200003, 0x40000, CRC(88847705) SHA1(05dc90067921960e417b7436056a5e1f86abaa1a), ROM_GROUPBYTE | ROM_SKIP(7) )
+ ROM_CONTINUE( 0x200007, 0x40000 )
+
+ ROM_REGION( 0x80000, "audiocpu", 0 ) /* QSound Z80 code + space for decrypted opcodes */
+ ROM_LOAD( "1.bin", 0x00000, 0x80000, CRC(7d921309) SHA1(d51e60e904d302c2516b734189e141aa171b2b82) )
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "dinob.key", 0x000000, 0x000080, CRC(171140c4) SHA1(d1db4e37e22fa6ae03c2bca4fdb698399d98c15f) )
+ROM_END
+
+ROM_START( dinobt )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "dinobt.23", 0x000000, 0x80000, CRC(3b1ed744) SHA1(7f9e062f97ef497c8993f574a3a51ae9e4e3e4f6) )
+ ROM_LOAD16_WORD_SWAP( "cde_22a.7f", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) )
+ ROM_LOAD16_WORD_SWAP( "cde_21a.6f", 0x100000, 0x80000, CRC(66d23de2) SHA1(19b8a365f630411d524d055459020f4c8cf930f1) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinobtpp )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "dinobtpp.23", 0x000000, 0x80000, CRC(41f954c9) SHA1(494ca6b9a5df7c9f491e54e45da41b2dcb4936a9) )
+ ROM_LOAD16_WORD_SWAP( "cde_22a.7f", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) )
+ ROM_LOAD16_WORD_SWAP( "cde_21a.6f", 0x100000, 0x80000, CRC(66d23de2) SHA1(19b8a365f630411d524d055459020f4c8cf930f1) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinocgba )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "dinocgba.23", 0x000000, 0x80000, CRC(7545d8b0) SHA1(b2400f558753e2c5d26a20ed94aff63d96424d1b) )
+ ROM_LOAD16_WORD_SWAP( "cde_22a.7f", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) )
+ ROM_LOAD16_WORD_SWAP( "dinoeh.21", 0x100000, 0x80000, CRC(b89a0548) SHA1(13b79e18c3cced34b28a34a591e2bd3bd18739be) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinocgbb )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "dinocgbb.23", 0x000000, 0x80000, CRC(2afc047c) SHA1(2d8831ae1faed2c8393db95835e157326a00f3f1) )
+ ROM_LOAD16_WORD_SWAP( "cde_22a.7f", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) )
+ ROM_LOAD16_WORD_SWAP( "dinoeh.21", 0x100000, 0x80000, CRC(b89a0548) SHA1(13b79e18c3cced34b28a34a591e2bd3bd18739be) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinocgbc )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "dinocgbc.23", 0x000000, 0x80000, CRC(d7be3ebd) SHA1(0af400aa73b93908efe7e81f187ad0809b36593b) )
+ ROM_LOAD16_WORD_SWAP( "cde_22a.7f", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) )
+ ROM_LOAD16_WORD_SWAP( "dinoeh.21", 0x100000, 0x80000, CRC(b89a0548) SHA1(13b79e18c3cced34b28a34a591e2bd3bd18739be) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinoeh )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "dinoeh.23", 0x000000, 0x80000, CRC(a6b88364) SHA1(71d2d66df77ba3cc856c2ecd317f4be122ed1feb) )
+ ROM_LOAD16_WORD_SWAP( "cde_22a.7f", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) )
+ ROM_LOAD16_WORD_SWAP( "dinoeh.21", 0x100000, 0x80000, CRC(b89a0548) SHA1(13b79e18c3cced34b28a34a591e2bd3bd18739be) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinoex )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "dinoex.23", 0x000000, 0x80000, CRC(c871b733) SHA1(0c2030a9ca0be8b14edbc4f2ae44184ab81b5e03) )
+ ROM_LOAD16_WORD_SWAP( "dinoex.22", 0x080000, 0x80000, CRC(b503e1ad) SHA1(73e53061b01940a9deb13c0ff5d874b4a8380f15) )
+ ROM_LOAD16_WORD_SWAP( "cde_21a.6f", 0x100000, 0x80000, CRC(66d23de2) SHA1(19b8a365f630411d524d055459020f4c8cf930f1) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "dinoex.key", 0x000000, 0x000080, CRC(6c097c88) SHA1(a8170ace800e96ec29fbef22f5fdc45c7f5b516b) )
+ROM_END
+
+ROM_START( dinoh )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "cda_23h.rom", 0x000000, 0x80000, CRC(8e2a9cf0) SHA1(01111582e579bd3b43b52d0e0c445c32fe5e053b) )
+ ROM_LOAD16_WORD_SWAP( "cda_22h.rom", 0x080000, 0x80000, CRC(f72cd219) SHA1(a3f580bd328b54d2546ae7e94262c1a706d27172) )
+ ROM_LOAD16_WORD_SWAP( "cda_21h.rom", 0x100000, 0x80000, CRC(bc275b76) SHA1(1f7f7533b4ccb511dc479f531d9d6740d3ca6712) )
+ ROM_LOAD16_WORD_SWAP( "cda_20h.rom", 0x180000, 0x80000, CRC(8987c975) SHA1(3fd856805d627f855f72acc7aacc2e8ecf0f12bd) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "dinoh.key", 0x000000, 0x000080, CRC(67862673) SHA1(9ae7446231da7fd6355e1f22ac3fb974c3775600) )
+ROM_END
+
+ROM_START( dinoha )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "kl2-r1.800", 0x080000, 0x080000, CRC(4c70dca7) SHA1(2e7a10c90924e0f87903eddb04313f61233a998f) )
+ ROM_CONTINUE( 0x000000, 0x080000 )
+ ROM_LOAD16_WORD_SWAP( "kl2-l2.800", 0x180000, 0x080000, CRC(c6ae7338) SHA1(4b8543cf1ac89ae95fe63e6d81c87d2bda52da69) )
+ ROM_CONTINUE( 0x100000, 0x080000 )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-a.160", 0x000000, 0x80000, CRC(7e4f9fb3) SHA1(b985d925e0fb799cdf0a671e4800961d9872cd8f), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000004, 0x80000 )
+ ROM_CONTINUE( 0x200000, 0x80000 )
+ ROM_CONTINUE( 0x200004, 0x80000 )
+ ROMX_LOAD( "cd-b.160", 0x000002, 0x80000, CRC(89532d85) SHA1(6743c4d9b4407421416c13878b8a1fae097dd7a7), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000006, 0x80000 )
+ ROM_CONTINUE( 0x200002, 0x80000 )
+ ROM_CONTINUE( 0x200006, 0x80000 )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "dinoh.key", 0x000000, 0x000080, CRC(67862673) SHA1(9ae7446231da7fd6355e1f22ac3fb974c3775600) )
+ROM_END
+
+ROM_START( dinohb )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "cd-d.800", 0x000000, 0x100000, CRC(2a7b2915) SHA1(817d24c5206a60c4d93affffc9bd5a72abccbb01) )
+ ROM_LOAD16_WORD_SWAP( "cd-e.800", 0x100000, 0x100000, CRC(e8370226) SHA1(9c6915ad9e48ccd2020fcad58ec56e6f7cd0c25c) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-a.160", 0x000000, 0x80000, CRC(7e4f9fb3) SHA1(b985d925e0fb799cdf0a671e4800961d9872cd8f), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000004, 0x80000 )
+ ROM_CONTINUE( 0x200000, 0x80000 )
+ ROM_CONTINUE( 0x200004, 0x80000 )
+ ROMX_LOAD( "cd-b.160", 0x000002, 0x80000, CRC(89532d85) SHA1(6743c4d9b4407421416c13878b8a1fae097dd7a7), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000006, 0x80000 )
+ ROM_CONTINUE( 0x200002, 0x80000 )
+ ROM_CONTINUE( 0x200006, 0x80000 )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "dinob.key", 0x000000, 0x000080, CRC(171140c4) SHA1(d1db4e37e22fa6ae03c2bca4fdb698399d98c15f) )
+ROM_END
+
+ROM_START( dinohp )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "dinohp.23", 0x000000, 0x80000, CRC(c96a1d20) SHA1(76d2ce4727ad6f546148cc3c7338a6243cecce2d) )
+ ROM_LOAD16_WORD_SWAP( "cde_22a.7f", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) )
+ ROM_LOAD16_WORD_SWAP( "cde_21a.6f", 0x100000, 0x80000, CRC(66d23de2) SHA1(19b8a365f630411d524d055459020f4c8cf930f1) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinohx )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "dinohx.23", 0x000000, 0x80000, CRC(a013a81f) SHA1(81c84ad76adfe1345d5e41bcddb47f2428de5006) )
+ ROM_LOAD16_WORD_SWAP( "cda_22h.rom", 0x080000, 0x80000, CRC(f72cd219) SHA1(a3f580bd328b54d2546ae7e94262c1a706d27172) )
+ ROM_LOAD16_WORD_SWAP( "cda_21h.rom", 0x100000, 0x80000, CRC(bc275b76) SHA1(1f7f7533b4ccb511dc479f531d9d6740d3ca6712) )
+ ROM_LOAD16_WORD_SWAP( "cda_20h.rom", 0x180000, 0x80000, CRC(8987c975) SHA1(3fd856805d627f855f72acc7aacc2e8ecf0f12bd) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "dino.key", 0x0000, 0x0080, CRC(61e30e5f) SHA1(994c97e38d1968530c572d9473ac033925dad99e) )
+ROM_END
+
+ROM_START( dinojp )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "cdjp-23a.8f", 0x000000, 0x80000, CRC(9cd746de) SHA1(d8b9c824e4b8adb66a273debce63128a16bb147a) )
+ ROM_LOAD16_WORD_SWAP( "cdjp-22a.7f", 0x080000, 0x80000, CRC(082f645d) SHA1(6865d6cf6464846b9aa423dc4e807932ae98a86d) )
+ ROM_LOAD16_WORD_SWAP( "cdep_21a.rom", 0x100000, 0x80000, CRC(95bd8020) SHA1(249746eb20483ec87b6ad5a74e8b790afdb389de) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinorp )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "dinorp.23", 0x000000, 0x80000, CRC(373282a0) SHA1(b02bf02c9ef21cfa2606f3c6e38542fcb0be45ab) )
+ ROM_LOAD16_WORD_SWAP( "cde_22a.7f", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) )
+ ROM_LOAD16_WORD_SWAP( "dinorp.21", 0x100000, 0x80000, CRC(d0d89d2c) SHA1(36f510ca6a2713518c3dba8fb49a314fd0de4d75) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinosf2 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "dinosf2.u23", 0x000000, 0x80000, CRC(ccdc80f3) SHA1(0cb34ac873a9c4cf7189c8d189bb9f96ec4f0721) )
+ ROM_LOAD16_WORD_SWAP( "dinosf2.u22", 0x080000, 0x80000, CRC(e8eb6500) SHA1(d062e31863c8a3d297aa9c32693b67921d9a9650) )
+ ROM_LOAD16_WORD_SWAP( "dinosf2.u21", 0x100000, 0x80000, CRC(8822a8ef) SHA1(3e345fad0331ce7a3ba742ed3a74abf8bb7e7a02) )
+ ROM_LOAD16_WORD_SWAP( "u20", 0x180000, 0x80000, CRC(8987c975) SHA1(3fd856805d627f855f72acc7aacc2e8ecf0f12bd) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "u9", 0x00000, 0x08000, CRC(2eb16a83) SHA1(067ea0bfc2c1e73520d6b836c72fbb9da9998311) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* samples */
+ ROM_LOAD( "u18", 0x00000, 0x20000, CRC(8d2899ba) SHA1(0b3ac6cf2ce0323e3bfc9da3ebfcb0fd14bc405b) )
+ ROM_LOAD( "u19", 0x20000, 0x20000, CRC(b34a4b42) SHA1(3eeb9e33bb911359e03d44949ac58439a3d3d54b) )
+ROM_END
+
+ROM_START( dinoslice )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "cdeslice.rom", 0x000000, 0x200000, CRC(9da95eab) SHA1(370bf3bbd76de5ae638c6fdab67c7cea98744e7b) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinouphp )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "dinouphp.23", 0x000000, 0x80000, CRC(1bf35c82) SHA1(82496d6c8fa853b0c28932f0f36e37219c0adfc8) )
+ ROM_LOAD16_WORD_SWAP( "cde_22a.7f", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) )
+ ROM_LOAD16_WORD_SWAP( "cde_21a.6f", 0x100000, 0x80000, CRC(66d23de2) SHA1(19b8a365f630411d524d055459020f4c8cf930f1) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinoz )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "dinoz_23a.8f", 0x000000, 0x80000, CRC(0129f422) SHA1(968e6d25a1aa2116f9e9a6b4b76c83bd63f4f477) )
+ ROM_LOAD16_WORD_SWAP( "dinoz_22a.7f", 0x080000, 0x80000, CRC(3861d9d8) SHA1(11dac49f09dfc325b9f529271dc5921d7aacb630) )
+ ROM_LOAD16_WORD_SWAP( "cde_21a.6f", 0x100000, 0x80000, CRC(66d23de2) SHA1(19b8a365f630411d524d055459020f4c8cf930f1) )
+ ROM_LOAD16_WORD_SWAP( "dinoz_20a.5f", 0x180000, 0x80000, CRC(8fc0ab46) SHA1(63abdc8edb06963366bb86a9f3388d1f94c6a7e8) )
+ ROM_LOAD16_WORD_SWAP( "dinoz_19a.4f", 0x200000, 0x80000, CRC(93eb9535) SHA1(c8296f7fd124beb786e6f36472948fdee6d1d21c) )
+ ROM_LOAD16_WORD_SWAP( "dinoz_18a.3f", 0x280000, 0x80000, CRC(51ba57fd) SHA1(6bb09f8ba10e6543540441d68c49a54188d8d8a0) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+
+ROM_START( ffightb )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "ffu_36b.11f", 0x00000, 0x20000, CRC(a9fa0174) SHA1(a6f669370f1f822b2988c297a8e26bcb6300692d) )
+ ROM_LOAD16_BYTE( "ffu_42b.11h", 0x00001, 0x20000, CRC(d47cb6b7) SHA1(26c94b0d91a4343b58a7cc542417d8d36e9f2e34) )
+ ROM_LOAD16_BYTE( "ffu_37b.12f", 0x40000, 0x20000, CRC(3fc9f9e3) SHA1(0982c40d5967e5068ec592db022eb16172f95005) )
+ ROM_LOAD16_BYTE( "ffu_43b.12h", 0x40001, 0x20000, CRC(5ef051fa) SHA1(f72d45f9d03f78de8d081658098decbadc9e7828) )
+ ROM_LOAD16_WORD_SWAP( "ff_22.7f", 0x80000, 0x80000, CRC(b2d5a3aa) SHA1(b60f7480d3d3ceebad4c21025394bacc154d7042) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "ff_1.3a", 0x000000, 0x80000, CRC(969d18e2) SHA1(7a30b7434e34ec98838a9ab8d953b2ef467d562e), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ff_2.4a", 0x000002, 0x80000, CRC(02b59f99) SHA1(c1cb2bbf95c2006baad58b0a5a7278f1a8999901), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ff_3.5a", 0x000004, 0x80000, CRC(01d507ae) SHA1(d7813daa5bd74bebdbbea578acb20ad3c8816997), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ff_4.6a", 0x000006, 0x80000, CRC(f7c4ceb0) SHA1(3e9cf6379f06c5a736b4a0aadb7fbda914b91190), ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "ff_09.12b", 0x00000, 0x08000, CRC(b8367eb5) SHA1(ec3db29fdd6200e9a8f4f8073a7e34aef731354f) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "ff_18.11c", 0x00000, 0x20000, CRC(375c66e7) SHA1(36189e23209ce4ae5d9cbabd1574540d0591e7b3) )
+ ROM_LOAD( "ff_19.12c", 0x20000, 0x20000, CRC(1ef137f9) SHA1(974b5e72aa28b87ebfa7438efbdfeda769dedf5e) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "ffightb.key", 0x000000, 0x000080, CRC(328f442c) SHA1(f58a07458f00ee7fdd0471fa03f7859ae9e2629b) )
+ROM_END
+
+
+ROM_START( knight21 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "kr_2321.8f",0x00000, 0x80000, CRC(aacaebcd) SHA1(3c243d59b86b2a51c219c296c12090058851c77d) )
+ ROM_LOAD16_WORD_SWAP( "kr_22.7f", 0x80000, 0x80000, CRC(d0b671a9) SHA1(9865472c5fc3f617345e23b5de5a9ba177945b5a) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "kr-5m.3a", 0x000000, 0x80000, CRC(9e36c1a4) SHA1(772daae74e119371dfb76fde9775bda78a8ba125) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-7m.5a", 0x000002, 0x80000, CRC(c5832cae) SHA1(a188cf401cd3a2909b377d3059f14d22ec3b0643) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-1m.4a", 0x000004, 0x80000, CRC(f095be2d) SHA1(0427d1574062f277a9d04440019d5638b05de561) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-3m.6a", 0x000006, 0x80000, CRC(179dfd96) SHA1(b1844e69da7ab13474da569978d5b47deb8eb2be) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-6m.7a", 0x200000, 0x80000, CRC(1f4298d2) SHA1(4b162a7f649b0bcd676f8ca0c5eee9a1250d6452) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-8m.9a", 0x200002, 0x80000, CRC(37fa8751) SHA1(b88b39d1f08621f15a5620095aef998346fa9891) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-2m.8a", 0x200004, 0x80000, CRC(0200bc3d) SHA1(c900b1be2b4e49b951e5c1e3fd1e19d21b82986e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-4m.10a", 0x200006, 0x80000, CRC(0bb2b4e7) SHA1(983b800925d58e4aeb4e5105f93ed5faf66d009c) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "kr_09.11a", 0x00000, 0x08000, CRC(5e44d9ee) SHA1(47a7503321be8d52b5c44af838e3bb82ee15a415) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "kr_18.11c", 0x00000, 0x20000, CRC(da69d15f) SHA1(9616207e693bae85705f786cef60b9f6951b5067) )
+ ROM_LOAD( "kr_19.12c", 0x20000, 0x20000, CRC(bfc654e9) SHA1(01b3d92e4dedf55ea3933d387c7ddb9ba2549773) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "knights.key", 0x000000, 0x000080, CRC(a4851689) SHA1(0a96f22a655c3ff9d09d7b84abd7ab5ac5f137e2) )
+ROM_END
+
+ROM_START( knightsa )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "kr_23h.rom", 0x00000, 0x80000, CRC(bc3b60f5) SHA1(f8c5e49535bb191d46f4c32e336b2ca92517109a) )
+ ROM_LOAD16_WORD_SWAP( "kr_22.7f", 0x80000, 0x80000, CRC(d0b671a9) SHA1(9865472c5fc3f617345e23b5de5a9ba177945b5a) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "kr-5m.3a", 0x000000, 0x80000, CRC(9e36c1a4) SHA1(772daae74e119371dfb76fde9775bda78a8ba125) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-7m.5a", 0x000002, 0x80000, CRC(c5832cae) SHA1(a188cf401cd3a2909b377d3059f14d22ec3b0643) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-1m.4a", 0x000004, 0x80000, CRC(f095be2d) SHA1(0427d1574062f277a9d04440019d5638b05de561) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-3m.6a", 0x000006, 0x80000, CRC(179dfd96) SHA1(b1844e69da7ab13474da569978d5b47deb8eb2be) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-6m.7a", 0x200000, 0x80000, CRC(1f4298d2) SHA1(4b162a7f649b0bcd676f8ca0c5eee9a1250d6452) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-8m.9a", 0x200002, 0x80000, CRC(37fa8751) SHA1(b88b39d1f08621f15a5620095aef998346fa9891) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-2m.8a", 0x200004, 0x80000, CRC(0200bc3d) SHA1(c900b1be2b4e49b951e5c1e3fd1e19d21b82986e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-4m.10a", 0x200006, 0x80000, CRC(0bb2b4e7) SHA1(983b800925d58e4aeb4e5105f93ed5faf66d009c) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "kr_09.11a", 0x00000, 0x08000, CRC(5e44d9ee) SHA1(47a7503321be8d52b5c44af838e3bb82ee15a415) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "kr_18.11c", 0x00000, 0x20000, CRC(da69d15f) SHA1(9616207e693bae85705f786cef60b9f6951b5067) )
+ ROM_LOAD( "kr_19.12c", 0x20000, 0x20000, CRC(bfc654e9) SHA1(01b3d92e4dedf55ea3933d387c7ddb9ba2549773) )
+ROM_END
+
+ROM_START( knightsb2 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "040-z.02", 0x00000, 0x80000, CRC(95d00a7e) SHA1(2da1c47aa15d44aa842a8d79e030e7e7b69bec19) )
+ ROM_LOAD16_BYTE( "040-r.02", 0x00001, 0x80000, CRC(5a9d0b64) SHA1(6ff312879c3d675ceee6fd3e262f797fabb9871e) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "kr-5m.3a", 0x000000, 0x80000, CRC(9e36c1a4) SHA1(772daae74e119371dfb76fde9775bda78a8ba125) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-7m.5a", 0x000002, 0x80000, CRC(c5832cae) SHA1(a188cf401cd3a2909b377d3059f14d22ec3b0643) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-1m.4a", 0x000004, 0x80000, CRC(f095be2d) SHA1(0427d1574062f277a9d04440019d5638b05de561) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-3m.6a", 0x000006, 0x80000, CRC(179dfd96) SHA1(b1844e69da7ab13474da569978d5b47deb8eb2be) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-6m.7a", 0x200000, 0x80000, CRC(1f4298d2) SHA1(4b162a7f649b0bcd676f8ca0c5eee9a1250d6452) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-8m.9a", 0x200002, 0x80000, CRC(37fa8751) SHA1(b88b39d1f08621f15a5620095aef998346fa9891) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-2m.8a", 0x200004, 0x80000, CRC(0200bc3d) SHA1(c900b1be2b4e49b951e5c1e3fd1e19d21b82986e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-4m.10a", 0x200006, 0x80000, CRC(0bb2b4e7) SHA1(983b800925d58e4aeb4e5105f93ed5faf66d009c) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "kr_09.11a", 0x00000, 0x08000, CRC(5e44d9ee) SHA1(47a7503321be8d52b5c44af838e3bb82ee15a415) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "kr_18.11c", 0x00000, 0x20000, CRC(da69d15f) SHA1(9616207e693bae85705f786cef60b9f6951b5067) )
+ ROM_LOAD( "kr_19.12c", 0x20000, 0x20000, CRC(bfc654e9) SHA1(01b3d92e4dedf55ea3933d387c7ddb9ba2549773) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "knightsb2.key", 0x000000, 0x000080, CRC(67017a7f) SHA1(d9db5b41b214539f71cc2f0d92a27285c27e38c4) )
+ROM_END
+
+ROM_START( knightsh )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "krh_23.rom", 0x00000, 0x80000, CRC(fa2ff63d) SHA1(f3800102aadeccd13ed49c88039732453266283a) )
+ ROM_LOAD16_WORD_SWAP( "krh_22.rom", 0x80000, 0x80000, CRC(1438d070) SHA1(4f6fad844c3e8eb960bb6cb85ac570979c0ae973) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "kr-5m.3a", 0x000000, 0x80000, CRC(9e36c1a4) SHA1(772daae74e119371dfb76fde9775bda78a8ba125) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-7m.5a", 0x000002, 0x80000, CRC(c5832cae) SHA1(a188cf401cd3a2909b377d3059f14d22ec3b0643) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-1m.4a", 0x000004, 0x80000, CRC(f095be2d) SHA1(0427d1574062f277a9d04440019d5638b05de561) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-3m.6a", 0x000006, 0x80000, CRC(179dfd96) SHA1(b1844e69da7ab13474da569978d5b47deb8eb2be) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-6m.7a", 0x200000, 0x80000, CRC(1f4298d2) SHA1(4b162a7f649b0bcd676f8ca0c5eee9a1250d6452) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-8m.9a", 0x200002, 0x80000, CRC(37fa8751) SHA1(b88b39d1f08621f15a5620095aef998346fa9891) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-2m.8a", 0x200004, 0x80000, CRC(0200bc3d) SHA1(c900b1be2b4e49b951e5c1e3fd1e19d21b82986e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-4m.10a", 0x200006, 0x80000, CRC(0bb2b4e7) SHA1(983b800925d58e4aeb4e5105f93ed5faf66d009c) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "kr_09.11a", 0x00000, 0x08000, CRC(5e44d9ee) SHA1(47a7503321be8d52b5c44af838e3bb82ee15a415) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "kr_18.11c", 0x00000, 0x20000, CRC(da69d15f) SHA1(9616207e693bae85705f786cef60b9f6951b5067) )
+ ROM_LOAD( "kr_19.12c", 0x20000, 0x20000, CRC(bfc654e9) SHA1(01b3d92e4dedf55ea3933d387c7ddb9ba2549773) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "knightsh.key", 0x000000, 0x000080, CRC(68d9786b) SHA1(8721cda836d88c48ab07b96d66015832b5e561f7) )
+ROM_END
+
+ROM_START( knightsha )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "krha_23.rom", 0x00000, 0x80000, CRC(a7fd309a) SHA1(b4f163d9588e9d8dd6f2ba6d6ae520efb620c1ac) )
+ ROM_LOAD16_WORD_SWAP( "krh_22.rom", 0x80000, 0x80000, CRC(1438d070) SHA1(4f6fad844c3e8eb960bb6cb85ac570979c0ae973) )
+ ROM_FILL(0xb7d,1,0x66)
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "kr-5m.3a", 0x000000, 0x80000, CRC(9e36c1a4) SHA1(772daae74e119371dfb76fde9775bda78a8ba125) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-7m.5a", 0x000002, 0x80000, CRC(c5832cae) SHA1(a188cf401cd3a2909b377d3059f14d22ec3b0643) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-1m.4a", 0x000004, 0x80000, CRC(f095be2d) SHA1(0427d1574062f277a9d04440019d5638b05de561) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-3m.6a", 0x000006, 0x80000, CRC(179dfd96) SHA1(b1844e69da7ab13474da569978d5b47deb8eb2be) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-6m.7a", 0x200000, 0x80000, CRC(1f4298d2) SHA1(4b162a7f649b0bcd676f8ca0c5eee9a1250d6452) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-8m.9a", 0x200002, 0x80000, CRC(37fa8751) SHA1(b88b39d1f08621f15a5620095aef998346fa9891) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-2m.8a", 0x200004, 0x80000, CRC(0200bc3d) SHA1(c900b1be2b4e49b951e5c1e3fd1e19d21b82986e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-4m.10a", 0x200006, 0x80000, CRC(0bb2b4e7) SHA1(983b800925d58e4aeb4e5105f93ed5faf66d009c) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "kr_09.11a", 0x00000, 0x08000, CRC(5e44d9ee) SHA1(47a7503321be8d52b5c44af838e3bb82ee15a415) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "kr_18.11c", 0x00000, 0x20000, CRC(da69d15f) SHA1(9616207e693bae85705f786cef60b9f6951b5067) )
+ ROM_LOAD( "kr_19.12c", 0x20000, 0x20000, CRC(bfc654e9) SHA1(01b3d92e4dedf55ea3933d387c7ddb9ba2549773) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "knightsha.key", 0x000000, 0x000080, CRC(ab2dff46) SHA1(9bc8ec843ec9e8522858df8fb72e8c0e3fa1f023) )
+ROM_END
+
+ROM_START( knightsjb )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "23.096", 0x00000, 0x80000, CRC(7733b8a6) SHA1(ecf1a0d2b4631b9d4ba46e4987d226d938ee6628) )
+ ROM_LOAD16_WORD_SWAP( "kr_22.7f", 0x80000, 0x80000, CRC(d0b671a9) SHA1(9865472c5fc3f617345e23b5de5a9ba177945b5a) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "1.096", 0x000000, 0x80000, CRC(91541596) SHA1(4aac23d826f64c6065271488e3b582b3c9e11703) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "2.096", 0x000002, 0x80000, CRC(5d332114) SHA1(d340be3aa93b2117bccc9b4a7088c65ca29925b1) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "3.096", 0x000004, 0x80000, CRC(60488eba) SHA1(2117db67ed5c5d3225c3ab3d90932b9786e8060d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "4.096", 0x000006, 0x80000, CRC(394bdd11) SHA1(9b15abccc8372c04469b5472bd36d368965d1161) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "5.096", 0x200000, 0x80000, CRC(b52af98b) SHA1(3fb9b8fab8dc925d3d17f1428467df513d475d3d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "6.096", 0x200002, 0x80000, CRC(e44e5eac) SHA1(329649d381f1e48fcc37f5d64eb869833a5e0e18) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-2m.8a", 0x200004, 0x80000, CRC(0200bc3d) SHA1(c900b1be2b4e49b951e5c1e3fd1e19d21b82986e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-4m.10a", 0x200006, 0x80000, CRC(0bb2b4e7) SHA1(983b800925d58e4aeb4e5105f93ed5faf66d009c) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "kr_09.11a", 0x00000, 0x08000, CRC(5e44d9ee) SHA1(47a7503321be8d52b5c44af838e3bb82ee15a415) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "18.010", 0x00000, 0x20000, CRC(9b9be3ab) SHA1(9a5283d71551e71660a4741a647f5aea7e5ba89b) )
+ ROM_LOAD( "kr_19.12c", 0x20000, 0x20000, CRC(bfc654e9) SHA1(01b3d92e4dedf55ea3933d387c7ddb9ba2549773) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "knightsh.key", 0x000000, 0x000080, CRC(68d9786b) SHA1(8721cda836d88c48ab07b96d66015832b5e561f7) )
+ROM_END
+
+ROM_START( knightsro )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "knightsro.8f", 0x00000, 0x80000, CRC(a1984e47) SHA1(2c9782c51931b9c365b001daa7c49671dd36147c) )
+ ROM_LOAD16_WORD_SWAP( "kr_22.7f", 0x80000, 0x80000, CRC(d0b671a9) SHA1(9865472c5fc3f617345e23b5de5a9ba177945b5a) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "kr-5m.3a", 0x000000, 0x80000, CRC(9e36c1a4) SHA1(772daae74e119371dfb76fde9775bda78a8ba125) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-7m.5a", 0x000002, 0x80000, CRC(c5832cae) SHA1(a188cf401cd3a2909b377d3059f14d22ec3b0643) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-1m.4a", 0x000004, 0x80000, CRC(f095be2d) SHA1(0427d1574062f277a9d04440019d5638b05de561) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-3m.6a", 0x000006, 0x80000, CRC(179dfd96) SHA1(b1844e69da7ab13474da569978d5b47deb8eb2be) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-6m.7a", 0x200000, 0x80000, CRC(1f4298d2) SHA1(4b162a7f649b0bcd676f8ca0c5eee9a1250d6452) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-8m.9a", 0x200002, 0x80000, CRC(37fa8751) SHA1(b88b39d1f08621f15a5620095aef998346fa9891) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-2m.8a", 0x200004, 0x80000, CRC(0200bc3d) SHA1(c900b1be2b4e49b951e5c1e3fd1e19d21b82986e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-4m.10a", 0x200006, 0x80000, CRC(0bb2b4e7) SHA1(983b800925d58e4aeb4e5105f93ed5faf66d009c) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "kr_09.11a", 0x00000, 0x08000, CRC(5e44d9ee) SHA1(47a7503321be8d52b5c44af838e3bb82ee15a415) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "kr_18.11c", 0x00000, 0x20000, CRC(da69d15f) SHA1(9616207e693bae85705f786cef60b9f6951b5067) )
+ ROM_LOAD( "kr_19.12c", 0x20000, 0x20000, CRC(bfc654e9) SHA1(01b3d92e4dedf55ea3933d387c7ddb9ba2549773) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "knights.key", 0x000000, 0x000080, CRC(a4851689) SHA1(0a96f22a655c3ff9d09d7b84abd7ab5ac5f137e2) )
+ROM_END
+
+ROM_START( knightud )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "knightud.23", 0x00000, 0x80000, CRC(5fe98e7f) SHA1(3e01b9e06663ade831750de3ecd0d3925889a5da) )
+ ROM_LOAD16_WORD_SWAP( "kr_22.7f", 0x80000, 0x80000, CRC(d0b671a9) SHA1(9865472c5fc3f617345e23b5de5a9ba177945b5a) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "kr-5m.3a", 0x000000, 0x80000, CRC(9e36c1a4) SHA1(772daae74e119371dfb76fde9775bda78a8ba125) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-7m.5a", 0x000002, 0x80000, CRC(c5832cae) SHA1(a188cf401cd3a2909b377d3059f14d22ec3b0643) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-1m.4a", 0x000004, 0x80000, CRC(f095be2d) SHA1(0427d1574062f277a9d04440019d5638b05de561) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-3m.6a", 0x000006, 0x80000, CRC(179dfd96) SHA1(b1844e69da7ab13474da569978d5b47deb8eb2be) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-6m.7a", 0x200000, 0x80000, CRC(1f4298d2) SHA1(4b162a7f649b0bcd676f8ca0c5eee9a1250d6452) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-8m.9a", 0x200002, 0x80000, CRC(37fa8751) SHA1(b88b39d1f08621f15a5620095aef998346fa9891) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-2m.8a", 0x200004, 0x80000, CRC(0200bc3d) SHA1(c900b1be2b4e49b951e5c1e3fd1e19d21b82986e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-4m.10a", 0x200006, 0x80000, CRC(0bb2b4e7) SHA1(983b800925d58e4aeb4e5105f93ed5faf66d009c) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "kr_09.11a", 0x00000, 0x08000, CRC(5e44d9ee) SHA1(47a7503321be8d52b5c44af838e3bb82ee15a415) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "kr_18.11c", 0x00000, 0x20000, CRC(da69d15f) SHA1(9616207e693bae85705f786cef60b9f6951b5067) )
+ ROM_LOAD( "kr_19.12c", 0x20000, 0x20000, CRC(bfc654e9) SHA1(01b3d92e4dedf55ea3933d387c7ddb9ba2549773) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "knightsh.key", 0x000000, 0x000080, CRC(68d9786b) SHA1(8721cda836d88c48ab07b96d66015832b5e561f7) )
+ROM_END
+
+
+ROM_START( kodd )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "kodd.30", 0x00000, 0x20000, CRC(8eb281a4) SHA1(6e6e316321c500796bba6b888db8e0445b63bea3) )
+ ROM_LOAD16_BYTE( "kodd.37", 0x00001, 0x20000, CRC(9c16c2b9) SHA1(1c04419f1223b7a9a0ae2de8f11010b478d58c63) )
+ ROM_LOAD16_BYTE( "kodd.31", 0x40000, 0x20000, CRC(b4aeee54) SHA1(ed0b965b2f16a6aeb117e7b12ab10d7d0b87dcdf) )
+ ROM_LOAD16_BYTE( "kodd.38", 0x40001, 0x20000, CRC(534554bc) SHA1(c0b73e8a44b4a5b6679f39a146f01fd0f2c270c8) )
+ ROM_LOAD16_BYTE( "kd_28.9e", 0x80000, 0x20000, CRC(9367bcd9) SHA1(8243b4b9bb9756f3fa726717e19a166cb2f5b50a) )
+ ROM_LOAD16_BYTE( "kd_35.9f", 0x80001, 0x20000, CRC(4ca6a48a) SHA1(9d440ecd8d2d0e293fecf64ca3915252b94e7aef) )
+ ROM_LOAD16_BYTE( "kde_29.10e", 0xc0000, 0x20000, CRC(6a0ba878) SHA1(82e4037d73889a76b0cdc7a4f8e77e585d38e56e) )
+ ROM_LOAD16_BYTE( "kde_36.10f", 0xc0001, 0x20000, CRC(b509b39d) SHA1(6023855e54b170e55abf0f607600031e19e5e722) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "kd-5m.4a", 0x000000, 0x80000, CRC(e45b8701) SHA1(604e39e455e81695ee4f899f102d0bcd789cedd0) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kd-7m.6a", 0x000002, 0x80000, CRC(a7750322) SHA1(3c583496a53cd64edf377db35f7f40f02b59b7e7) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kd-1m.3a", 0x000004, 0x80000, CRC(5f74bf78) SHA1(b7c43eea9bf77a0fb571dcd53f8be719e6655fd9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kd-3m.5a", 0x000006, 0x80000, CRC(5e5303bf) SHA1(d9f90b898ffdf4398b2bbeb48247f06f728e7c00) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kd-6m.4c", 0x200000, 0x80000, CRC(113358f3) SHA1(9d98eafa74a046f65bf3847fe1d88ea1b0c82b0c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kd-8m.6c", 0x200002, 0x80000, CRC(38853c44) SHA1(a6e552fb0138a76a7878b90d202904e2b44ae7ec) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kd-2m.3c", 0x200004, 0x80000, CRC(9ef36604) SHA1(b42ca0a910b65e1e7bb6e7d734e853ce67e821bf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kd-4m.5c", 0x200006, 0x80000, CRC(402b9b4f) SHA1(4c11976976eadf1ad293b31b0a4d047d05032b06) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "kd_9.12a", 0x00000, 0x08000, CRC(f5514510) SHA1(07e9c836adf9ef2f7e7729e99015f71e3b5f16e0) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "kd_18.11c", 0x00000, 0x20000, CRC(69ecb2c8) SHA1(fadf266b6b20bd6329a3e638918c5a3106413476) )
+ ROM_LOAD( "kd_19.12c", 0x20000, 0x20000, CRC(02d851c1) SHA1(c959a6fc3e7d893557f319debae91f28471f4be2) )
+ROM_END
+
+// - Actor preview flickers instead of wriggling
+// - No music in attract mode
+ROM_START( kodh )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "23.096", 0x00000, 0x80000, CRC(daf89cfb) SHA1(de0944884d0e64c6b0410294d25308201508afbe) )
+ ROM_LOAD16_WORD_SWAP( "22.096", 0x80000, 0x80000, CRC(c83e19d8) SHA1(8c342818a1c5337ad4b259700e184972f821aca4) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "1.096", 0x000000, 0x80000, CRC(09261881) SHA1(e65abce3d39224c2c94673900291a210c1d949cb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "2.096", 0x000002, 0x80000, CRC(bc121ff2) SHA1(1f75f93652bb6c521bc538e7c2d10920a7897aa2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "3.096", 0x000004, 0x80000, CRC(f463ae22) SHA1(f8bc17814d38f3693a2a8dc64cc44e1f4fe3102c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "4.096", 0x000006, 0x80000, CRC(01308733) SHA1(8de29e7063d03493f197cee7a4e4edff3eee8e36) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kd-6m.4c", 0x200000, 0x80000, CRC(113358f3) SHA1(9d98eafa74a046f65bf3847fe1d88ea1b0c82b0c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kd-8m.6c", 0x200002, 0x80000, CRC(38853c44) SHA1(a6e552fb0138a76a7878b90d202904e2b44ae7ec) , ROM_GROUPWORD | ROM_SKIP(6) )
+ // Bad dump? Only 1 byte is different
+ ROMX_LOAD( "kr-2m.8a", 0x200004, 0x80000, CRC(c7ab4704) SHA1(180852c4d59359c2094feb8ad1f05d70eafe6c55) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kd-4m.5c", 0x200006, 0x80000, CRC(402b9b4f) SHA1(4c11976976eadf1ad293b31b0a4d047d05032b06) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "kd_9.12a", 0x00000, 0x08000, CRC(bac6ec26) SHA1(6cbb6d55660150ae3f5270e023328275ee1bbf50) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "kd_18.11c", 0x00000, 0x20000, CRC(4c63181d) SHA1(270f27534a95cb0be3ff3f9ca71c502320d8090b) )
+ ROM_LOAD( "kd_19.12c", 0x20000, 0x20000, CRC(92941b80) SHA1(5fa7c2793e6febee54a83042d118ddd4f2b7d127) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "kodh.key", 0x000000, 0x000080, CRC(9d65fe9c) SHA1(9671ee388d59a2d12cf38712620f5f598e93abfc) )
+ROM_END
+
+// - Actor preview flickers instead of wriggling
+// - No music in attract mode
+ROM_START( kodsp )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "kde_30.11e", 0x00000, 0x20000, CRC(c7414fd4) SHA1(37d27fbe7c617a26b53bfdfcd532cf573d42f33b) )
+ ROM_LOAD16_BYTE( "kde_37.11f", 0x00001, 0x20000, CRC(a5bf40d2) SHA1(cd34dbeabd0974709411579e669f01d0d799c2a1) )
+ ROM_LOAD16_BYTE( "kde_31.12e", 0x40000, 0x20000, CRC(1fffc7bd) SHA1(822c9ad996ca51a99a2bb1fe08fa19e18413030d) )
+ ROM_LOAD16_BYTE( "kde_38.12f", 0x40001, 0x20000, CRC(89e57a82) SHA1(aad35f86a8b1b7e3a0b5f3e6efd0e844b3d3d82f) )
+ ROM_LOAD16_BYTE( "kd_28.9e", 0x80000, 0x20000, CRC(9367bcd9) SHA1(8243b4b9bb9756f3fa726717e19a166cb2f5b50a) )
+ ROM_LOAD16_BYTE( "kd_35.9f", 0x80001, 0x20000, CRC(4ca6a48a) SHA1(9d440ecd8d2d0e293fecf64ca3915252b94e7aef) )
+ ROM_LOAD16_BYTE( "kde_29.10e", 0xc0000, 0x20000, CRC(6a0ba878) SHA1(82e4037d73889a76b0cdc7a4f8e77e585d38e56e) )
+ ROM_LOAD16_BYTE( "kde_36.10f", 0xc0001, 0x20000, CRC(b509b39d) SHA1(6023855e54b170e55abf0f607600031e19e5e722) )
+
+ ROM_REGION( 0x400000, "gfx", 0 ) // this set has new gfx roms
+ ROMX_LOAD( "kodsp.5", 0x000000, 0x80000, CRC(0aaa04b7) SHA1(14ab5944461cb7989659c31ea3be333c513284b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kodsp.7", 0x000002, 0x80000, CRC(28d6b2ff) SHA1(a0934eb3a15b5d21b816ffcdb4208322f0a480b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kodsp.1", 0x000004, 0x80000, CRC(8707e5ac) SHA1(36fd449595b8cd22a3e9a61b4941b0fde821b67a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kodsp.3", 0x000006, 0x80000, CRC(c115f6c6) SHA1(36b0d93b38a3f9c517ebf35bc3c7437794afe6f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kodsp.6", 0x200000, 0x80000, CRC(e8009e30) SHA1(2a1038f627edc5f7b89a5ac2000ba50ac015e29d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kodsp.8", 0x200002, 0x80000, CRC(c76b4156) SHA1(95606000fdd79c2c80082e368a5710087332c8c8) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kodsp.2", 0x200004, 0x80000, CRC(34b917e8) SHA1(7e1fb92539199f51f21b24c685fabb04c6a247a7) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kodsp.4", 0x200006, 0x80000, CRC(8faba58f) SHA1(9a77f7e69ccc796e09b0fe266b2af0c31fcd85ba) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "kodsp.12a", 0x00000, 0x08000, CRC(f5514510) SHA1(07e9c836adf9ef2f7e7729e99015f71e3b5f16e0) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "kodsp.11c", 0x00000, 0x20000, CRC(69ecb2c8) SHA1(fadf266b6b20bd6329a3e638918c5a3106413476) )
+ ROM_LOAD( "kodsp.12c", 0x20000, 0x20000, CRC(02d851c1) SHA1(c959a6fc3e7d893557f319debae91f28471f4be2) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "kod.key", 0x000000, 0x000080, CRC(b79ea9b9) SHA1(cefded329a6ccc34d3b68e614c8f3a2c174e3fdd) )
+ROM_END
+
+ROM_START( kodud )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "kodud.30", 0x00000, 0x20000, CRC(c5ada5eb) SHA1(c989c747abfc6f80871d0ee763d5573b321fb48e) )
+ ROM_LOAD16_BYTE( "kodud.37", 0x00001, 0x20000, CRC(b8169b17) SHA1(55176bb92fc422d4ce03a011190a7cc6caa082ff) )
+ ROM_LOAD16_BYTE( "kodud.31", 0x40000, 0x20000, CRC(72dd68a5) SHA1(db077c2c4716da59880e49af1d066b3c596143e1) )
+ ROM_LOAD16_BYTE( "kodud.38", 0x40001, 0x20000, CRC(0021a110) SHA1(0e15786d6e36a62f338dce8508cdd17a69511ed2) )
+ ROM_LOAD16_BYTE( "kd_28.9e", 0x80000, 0x20000, CRC(9367bcd9) SHA1(8243b4b9bb9756f3fa726717e19a166cb2f5b50a) )
+ ROM_LOAD16_BYTE( "kd_35.9f", 0x80001, 0x20000, CRC(4ca6a48a) SHA1(9d440ecd8d2d0e293fecf64ca3915252b94e7aef) )
+ ROM_LOAD16_BYTE( "kd_29.10e", 0xc0000, 0x20000, CRC(0360fa72) SHA1(274769c8717a874397cf37369e3ef80a682d9ef2) )
+ ROM_LOAD16_BYTE( "kd_36a.10f", 0xc0001, 0x20000, CRC(95a3cef8) SHA1(9b75c1ed0eafacc230197ffd9b81e0c8f4f2c464) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "kd-5m.4a", 0x000000, 0x80000, CRC(e45b8701) SHA1(604e39e455e81695ee4f899f102d0bcd789cedd0) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kd-7m.6a", 0x000002, 0x80000, CRC(a7750322) SHA1(3c583496a53cd64edf377db35f7f40f02b59b7e7) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kd-1m.3a", 0x000004, 0x80000, CRC(5f74bf78) SHA1(b7c43eea9bf77a0fb571dcd53f8be719e6655fd9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kd-3m.5a", 0x000006, 0x80000, CRC(5e5303bf) SHA1(d9f90b898ffdf4398b2bbeb48247f06f728e7c00) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kd-6m.4c", 0x200000, 0x80000, CRC(113358f3) SHA1(9d98eafa74a046f65bf3847fe1d88ea1b0c82b0c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kd-8m.6c", 0x200002, 0x80000, CRC(38853c44) SHA1(a6e552fb0138a76a7878b90d202904e2b44ae7ec) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kd-2m.3c", 0x200004, 0x80000, CRC(9ef36604) SHA1(b42ca0a910b65e1e7bb6e7d734e853ce67e821bf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kd-4m.5c", 0x200006, 0x80000, CRC(402b9b4f) SHA1(4c11976976eadf1ad293b31b0a4d047d05032b06) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "kd_9.12a", 0x00000, 0x08000, CRC(bac6ec26) SHA1(6cbb6d55660150ae3f5270e023328275ee1bbf50) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "kd_18.11c", 0x00000, 0x20000, CRC(4c63181d) SHA1(270f27534a95cb0be3ff3f9ca71c502320d8090b) )
+ ROM_LOAD( "kd_19.12c", 0x20000, 0x20000, CRC(92941b80) SHA1(5fa7c2793e6febee54a83042d118ddd4f2b7d127) )
+ROM_END
+
+
+ROM_START( pnicku )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "pnij36.bin", 0x00000, 0x20000, CRC(2d4ffb2b) SHA1(6e49cf89a36834fd1de8b4b860fe66f3d7d67a84) )
+ ROM_LOAD16_BYTE( "pniu42.bin", 0x00001, 0x20000, CRC(22d20227) SHA1(a103c9b1f6134c529405bd258da9f601c1459c47) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "pnij09.bin", 0x000000, 0x20000, CRC(48177b0a) SHA1(eba5de6cd9bb0c4ad76a13bddc9cdeb2e4380122) , ROM_SKIP(7) )
+ ROMX_LOAD( "pnij01.bin", 0x000001, 0x20000, CRC(01a0f311) SHA1(9bcd8716f90ccd410543ffcdc5c2916077b8d4c3) , ROM_SKIP(7) )
+ ROMX_LOAD( "pnij13.bin", 0x000002, 0x20000, CRC(406451b0) SHA1(5a7a7fecba7de8b8cf4a284b2ae7adae901623f6) , ROM_SKIP(7) )
+ ROMX_LOAD( "pnij05.bin", 0x000003, 0x20000, CRC(8c515dc0) SHA1(aa1e13cf9e7cf0458bb5c4332b1ea73034f9a874) , ROM_SKIP(7) )
+ ROMX_LOAD( "pnij26.bin", 0x000004, 0x20000, CRC(e2af981e) SHA1(3c2b28b4a4d457aa94a760dfca0181a9f050c319) , ROM_SKIP(7) )
+ ROMX_LOAD( "pnij18.bin", 0x000005, 0x20000, CRC(f17a0e56) SHA1(7c89aca230f176e12f995892f9d1bce22c57fbdf) , ROM_SKIP(7) )
+ ROMX_LOAD( "pnij38.bin", 0x000006, 0x20000, CRC(eb75bd8c) SHA1(2129460e06eb64019fc5f7eab6334ff43229b995) , ROM_SKIP(7) )
+ ROMX_LOAD( "pnij32.bin", 0x000007, 0x20000, CRC(84560bef) SHA1(9e94ae434b50ecf82781080e11d0c4741e992d0d) , ROM_SKIP(7) )
+ ROMX_LOAD( "pnij10.bin", 0x100000, 0x20000, CRC(c2acc171) SHA1(7c86db3f2acca1252d403c5f12c871d0357fa109) , ROM_SKIP(7) )
+ ROMX_LOAD( "pnij02.bin", 0x100001, 0x20000, CRC(0e21fc33) SHA1(c4a29d45c4257c8871038d3c9b13140e874db0c1) , ROM_SKIP(7) )
+ ROMX_LOAD( "pnij14.bin", 0x100002, 0x20000, CRC(7fe59b19) SHA1(a273b8b8fbfd5d31d25479a9ede09ce35e1cc873) , ROM_SKIP(7) )
+ ROMX_LOAD( "pnij06.bin", 0x100003, 0x20000, CRC(79f4bfe3) SHA1(bc17cc1c8535e3d202588893713926b6c06f92fd) , ROM_SKIP(7) )
+ ROMX_LOAD( "pnij27.bin", 0x100004, 0x20000, CRC(83d5cb0e) SHA1(44c93fa5eedcafc8dc6d88ee827c6cadc9c671f0) , ROM_SKIP(7) )
+ ROMX_LOAD( "pnij19.bin", 0x100005, 0x20000, CRC(af08b230) SHA1(a3b5b3013012efa1860699648518f8d8031c5f30) , ROM_SKIP(7) )
+ ROMX_LOAD( "pnij39.bin", 0x100006, 0x20000, CRC(70fbe579) SHA1(b5b7ed5588ecd884b20dd50bfc5385a9af03c5d8) , ROM_SKIP(7) )
+ ROMX_LOAD( "pnij33.bin", 0x100007, 0x20000, CRC(3ed2c680) SHA1(0afe84d8d89f8d45afc79f6172337e622e29a8a2) , ROM_SKIP(7) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "pnij17.bin", 0x00000, 0x08000, CRC(e86f787a) SHA1(de04cbe89c655faf04afe169bfd9913049ccc4a8) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "pnij24.bin", 0x00000, 0x20000, CRC(5092257d) SHA1(95dc9d10940653b2fb37baf5c1ed27145b02104e) )
+ ROM_LOAD( "pnij25.bin", 0x20000, 0x20000, CRC(22109aaa) SHA1(cf21e75674d81b2daae2083d02f9f4b6e52722c6) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "pnickj.key", 0x000000, 0x000080, CRC(38afadc4) SHA1(05b49635f99e7cb97a99b9666239d68154cb3641) )
+ROM_END
+
+
+ROM_START( punisherb ) // punipic in mame
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "3.bin", 0x000001, 0x80000, CRC(8c2593ac) SHA1(4261bc72b96c3a5690df35c5d8b71524765693d9) )
+ ROM_LOAD16_BYTE( "5.bin", 0x000000, 0x80000, CRC(c3151563) SHA1(61d3a20c25fea8a94ae6e473a87c21968867cba0) )
+ ROM_LOAD16_BYTE( "2.bin", 0x100001, 0x80000, CRC(d7b13f39) SHA1(eb7cd92b44fdef3b72672b0be6786c526421b627) )
+ ROM_LOAD16_BYTE( "4.bin", 0x100000, 0x80000, CRC(665a5485) SHA1(c07920d110ca9c35f6cbff94a6a889c17300f994) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "9.bin", 0x000000, 0x40000, CRC(9b9a887a) SHA1(8805b36fc18837bd7c64c751b435d72b763b2235), ROM_GROUPBYTE | ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000004, 0x40000 )
+ ROMX_LOAD( "8.bin", 0x000001, 0x40000, CRC(2b94287a) SHA1(815d88e66f537e17550fc0483616f02f7126bfb1), ROM_GROUPBYTE | ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000005, 0x40000 )
+ ROMX_LOAD( "7.bin", 0x000002, 0x40000, CRC(e9bd74f5) SHA1(8ed7098c69d1c70093c99956bf82e532bd6fc7ac), ROM_GROUPBYTE | ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000006, 0x40000 )
+ ROMX_LOAD( "6.bin", 0x000003, 0x40000, CRC(a5e1c8a4) SHA1(3596265a45cf6bbf16c623f0fce7cdc65f9338ad), ROM_GROUPBYTE | ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000007, 0x40000 )
+ ROMX_LOAD( "13.bin", 0x200000, 0x40000, CRC(6d75a193) SHA1(6c5a89517926d7ba4a925a3df800d4bdb8a6938d), ROM_GROUPBYTE | ROM_SKIP(7) )
+ ROM_CONTINUE( 0x200004, 0x40000 )
+ ROMX_LOAD( "12.bin", 0x200001, 0x40000, CRC(a3c205c1) SHA1(6317cc49434dbbb9a249ddd4b50bd791803b3ebe), ROM_GROUPBYTE | ROM_SKIP(7) )
+ ROM_CONTINUE( 0x200005, 0x40000 )
+ ROMX_LOAD( "11.bin", 0x200002, 0x40000, CRC(22f2ec92) SHA1(9186bfc5db71dc5b099c9a985e8fdd5710772d1c), ROM_GROUPBYTE | ROM_SKIP(7) )
+ ROM_CONTINUE( 0x200006, 0x40000 )
+ ROMX_LOAD( "10.bin", 0x200003, 0x40000, CRC(763974c9) SHA1(f9b93c7cf0cb8c212fc21c57c85459b7d2e4e2fd), ROM_GROUPBYTE | ROM_SKIP(7) )
+ ROM_CONTINUE( 0x200007, 0x40000 )
+
+ ROM_REGION( 0x80000, "user1", 0 ) // spare rom
+ ROM_LOAD_OPTIONAL( "1.bin", 0x00000, 0x80000, CRC(aeec9dc6) SHA1(56fd62e8db8aa96cdd242d8c705849a413567780) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "ps_q.rom", 0x00000, 0x08000, CRC(49ff4446) SHA1(87af12f87a940a6c5428b4574ad44a4b54867bc3) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "ps_q1.rom", 0x000000, 0x80000, CRC(31fd8726) SHA1(1d73a76682e9fb908db0c55b9a18163f7539fea1) )
+ ROM_LOAD( "ps_q2.rom", 0x080000, 0x80000, CRC(980a9eef) SHA1(36571381f349bc726508a7e618ba1c635ec9d271) )
+ ROM_LOAD( "ps_q3.rom", 0x100000, 0x80000, CRC(0dd44491) SHA1(903cea1d7f3120545ea3229d30fbd687d11ad68f) )
+ ROM_LOAD( "ps_q4.rom", 0x180000, 0x80000, CRC(bed42f03) SHA1(21302f7e75f9c795392a3b34e16a959fc5f6e4e9) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "punisherb.key", 0x000000, 0x000080, CRC(e1219963) SHA1(ba508a09095e9a37018a5a8c3a624713d7684582) )
+ROM_END
+
+ROM_START( punisherf )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "punisherf.23", 0x000000, 0x80000, CRC(ebab7576) SHA1(2a1664ebaf813a21986c97c16142ffd7c93c7a3b) )
+ ROM_LOAD16_WORD_SWAP( "psj22h.bin", 0x080000, 0x80000, CRC(84c5783e) SHA1(19571cdc4bf4cc1e59694fc8064cc88a49656449) )
+ ROM_LOAD16_WORD_SWAP( "punisherf.21", 0x100000, 0x80000, CRC(2bccb0ed) SHA1(44f45431d7ecca6eb8942be3d44b99cf856d12ab) )
+ ROM_FILL(0x9042A, 5, 0x4E) // remove jsr into the weeds (caused illegal instruction on stage 1)
+ ROM_FILL(0x9042B, 1, 0x71)
+ ROM_FILL(0x9042D, 1, 0x71)
+ ROM_FILL(0x9042F, 1, 0x71)
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "ps_gfx1.rom", 0x000000, 0x80000, CRC(77b7ccab) SHA1(e08e5d55a79e4c0c8ca819d6d7d2a14f753c6ec3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_gfx3.rom", 0x000002, 0x80000, CRC(0122720b) SHA1(5f0d3097e097f64106048156fbb0d343fe78fffa) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_gfx2.rom", 0x000004, 0x80000, CRC(64fa58d4) SHA1(d4a774285ed15273195b6b26d2965ce370e54e73) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_gfx4.rom", 0x000006, 0x80000, CRC(60da42c8) SHA1(95eec4a58d9628a2d9764951dd8dc11e4860a899) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_gfx5.rom", 0x200000, 0x80000, CRC(c54ea839) SHA1(0733f37329edd9d0cace1319a7544b40aa7ecb0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_gfx7.rom", 0x200002, 0x80000, CRC(04c5acbd) SHA1(fddc94b0f36d4d22d7c357856ae15b7514c342d3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_gfx6.rom", 0x200004, 0x80000, CRC(a544f4cc) SHA1(9552df8934ba25f19a22f2e07783712d8c8ef03c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_gfx8.rom", 0x200006, 0x80000, CRC(8f02f436) SHA1(a2f0ebb7e9593469c7b843f8962a66f3d77f79e5) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "ps_q.rom", 0x00000, 0x08000, CRC(49ff4446) SHA1(87af12f87a940a6c5428b4574ad44a4b54867bc3) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "ps_q1.rom", 0x000000, 0x80000, CRC(31fd8726) SHA1(1d73a76682e9fb908db0c55b9a18163f7539fea1) )
+ ROM_LOAD( "ps_q2.rom", 0x080000, 0x80000, CRC(980a9eef) SHA1(36571381f349bc726508a7e618ba1c635ec9d271) )
+ ROM_LOAD( "ps_q3.rom", 0x100000, 0x80000, CRC(0dd44491) SHA1(903cea1d7f3120545ea3229d30fbd687d11ad68f) )
+ ROM_LOAD( "ps_q4.rom", 0x180000, 0x80000, CRC(bed42f03) SHA1(21302f7e75f9c795392a3b34e16a959fc5f6e4e9) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "punisher.key", 0x000000, 0x000080, CRC(8e992ffa) SHA1(4f09427600cef4feb49a8a488caadaaa7b327484) )
+ROM_END
+
+ROM_START( punisherje1 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "psj23ex.bin", 0x000000, 0x80000, CRC(fa084bab) SHA1(af323e6399ab5d3091a57188d3cedc1d0600dd3d) )
+ ROM_LOAD16_WORD_SWAP( "psj22ex.bin", 0x080000, 0x80000, CRC(69433b02) SHA1(cc7127170fad47562aaded71a3c1e216084667f8) )
+ ROM_LOAD16_WORD_SWAP( "psje1.21", 0x100000, 0x80000, CRC(86aa8774) SHA1(501db3229c49ecd60eab72391f575f7df47e8782) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "ps_01.3a", 0x000000, 0x80000, CRC(77b7ccab) SHA1(e08e5d55a79e4c0c8ca819d6d7d2a14f753c6ec3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_02.4a", 0x000002, 0x80000, CRC(0122720b) SHA1(5f0d3097e097f64106048156fbb0d343fe78fffa) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_03.5a", 0x000004, 0x80000, CRC(64fa58d4) SHA1(d4a774285ed15273195b6b26d2965ce370e54e73) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_04.6a", 0x000006, 0x80000, CRC(60da42c8) SHA1(95eec4a58d9628a2d9764951dd8dc11e4860a899) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_05.7a", 0x200000, 0x80000, CRC(c54ea839) SHA1(0733f37329edd9d0cace1319a7544b40aa7ecb0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_06.8a", 0x200002, 0x80000, CRC(04c5acbd) SHA1(fddc94b0f36d4d22d7c357856ae15b7514c342d3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_07.9a", 0x200004, 0x80000, CRC(a544f4cc) SHA1(9552df8934ba25f19a22f2e07783712d8c8ef03c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_08.10a", 0x200006, 0x80000, CRC(8f02f436) SHA1(a2f0ebb7e9593469c7b843f8962a66f3d77f79e5) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "ps_q.5k", 0x00000, 0x08000, CRC(49ff4446) SHA1(87af12f87a940a6c5428b4574ad44a4b54867bc3) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "ps-q1.1k", 0x000000, 0x80000, CRC(31fd8726) SHA1(1d73a76682e9fb908db0c55b9a18163f7539fea1) )
+ ROM_LOAD( "ps-q2.2k", 0x080000, 0x80000, CRC(980a9eef) SHA1(36571381f349bc726508a7e618ba1c635ec9d271) )
+ ROM_LOAD( "ps-q3.3k", 0x100000, 0x80000, CRC(0dd44491) SHA1(903cea1d7f3120545ea3229d30fbd687d11ad68f) )
+ ROM_LOAD( "ps-q4.4k", 0x180000, 0x80000, CRC(bed42f03) SHA1(21302f7e75f9c795392a3b34e16a959fc5f6e4e9) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "punisher.key", 0x000000, 0x000080, CRC(8e992ffa) SHA1(4f09427600cef4feb49a8a488caadaaa7b327484) )
+ROM_END
+
+ROM_START( punisherjh )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "psj23h.bin", 0x000000, 0x80000, CRC(41cb77e9) SHA1(7e2a21bd217c976b448a51ba8bdbab820a30851a) )
+ ROM_LOAD16_WORD_SWAP( "psj22h.bin", 0x080000, 0x80000, CRC(84c5783e) SHA1(19571cdc4bf4cc1e59694fc8064cc88a49656449) )
+ ROM_LOAD16_WORD_SWAP( "ps_21.rom", 0x100000, 0x80000, CRC(8affa5a9) SHA1(268760b83b1723ff50a019ec51ef7af2e49935bf) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "ps_gfx1.rom", 0x000000, 0x80000, CRC(77b7ccab) SHA1(e08e5d55a79e4c0c8ca819d6d7d2a14f753c6ec3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_gfx3.rom", 0x000002, 0x80000, CRC(0122720b) SHA1(5f0d3097e097f64106048156fbb0d343fe78fffa) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_gfx2.rom", 0x000004, 0x80000, CRC(64fa58d4) SHA1(d4a774285ed15273195b6b26d2965ce370e54e73) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_gfx4.rom", 0x000006, 0x80000, CRC(60da42c8) SHA1(95eec4a58d9628a2d9764951dd8dc11e4860a899) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_gfx5.rom", 0x200000, 0x80000, CRC(c54ea839) SHA1(0733f37329edd9d0cace1319a7544b40aa7ecb0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_gfx7.rom", 0x200002, 0x80000, CRC(04c5acbd) SHA1(fddc94b0f36d4d22d7c357856ae15b7514c342d3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_gfx6.rom", 0x200004, 0x80000, CRC(a544f4cc) SHA1(9552df8934ba25f19a22f2e07783712d8c8ef03c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_gfx8.rom", 0x200006, 0x80000, CRC(8f02f436) SHA1(a2f0ebb7e9593469c7b843f8962a66f3d77f79e5) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "ps_q.rom", 0x00000, 0x08000, CRC(49ff4446) SHA1(87af12f87a940a6c5428b4574ad44a4b54867bc3) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "ps_q1.rom", 0x000000, 0x80000, CRC(31fd8726) SHA1(1d73a76682e9fb908db0c55b9a18163f7539fea1) )
+ ROM_LOAD( "ps_q2.rom", 0x080000, 0x80000, CRC(980a9eef) SHA1(36571381f349bc726508a7e618ba1c635ec9d271) )
+ ROM_LOAD( "ps_q3.rom", 0x100000, 0x80000, CRC(0dd44491) SHA1(903cea1d7f3120545ea3229d30fbd687d11ad68f) )
+ ROM_LOAD( "ps_q4.rom", 0x180000, 0x80000, CRC(bed42f03) SHA1(21302f7e75f9c795392a3b34e16a959fc5f6e4e9) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "punisher.key", 0x000000, 0x000080, CRC(8e992ffa) SHA1(4f09427600cef4feb49a8a488caadaaa7b327484) )
+ROM_END
+
+ROM_START( punisherjh1 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "psjh1.23", 0x000000, 0x80000, CRC(75ed76a4) SHA1(8ba66fd6a1912aae4c382ac8900f522474884771) )
+ ROM_LOAD16_WORD_SWAP( "psjh1.22", 0x080000, 0x80000, CRC(b17f61f0) SHA1(a5550bb359941bea96cefb818ccbb175a0b20687) )
+ ROM_LOAD16_WORD_SWAP( "ps_21.6f", 0x100000, 0x80000, CRC(8affa5a9) SHA1(268760b83b1723ff50a019ec51ef7af2e49935bf) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "ps_01.3a", 0x000000, 0x80000, CRC(77b7ccab) SHA1(e08e5d55a79e4c0c8ca819d6d7d2a14f753c6ec3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_02.4a", 0x000002, 0x80000, CRC(0122720b) SHA1(5f0d3097e097f64106048156fbb0d343fe78fffa) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_03.5a", 0x000004, 0x80000, CRC(64fa58d4) SHA1(d4a774285ed15273195b6b26d2965ce370e54e73) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_04.6a", 0x000006, 0x80000, CRC(60da42c8) SHA1(95eec4a58d9628a2d9764951dd8dc11e4860a899) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_05.7a", 0x200000, 0x80000, CRC(c54ea839) SHA1(0733f37329edd9d0cace1319a7544b40aa7ecb0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_06.8a", 0x200002, 0x80000, CRC(04c5acbd) SHA1(fddc94b0f36d4d22d7c357856ae15b7514c342d3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_07.9a", 0x200004, 0x80000, CRC(a544f4cc) SHA1(9552df8934ba25f19a22f2e07783712d8c8ef03c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_08.10a", 0x200006, 0x80000, CRC(8f02f436) SHA1(a2f0ebb7e9593469c7b843f8962a66f3d77f79e5) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "ps_q.5k", 0x00000, 0x08000, CRC(49ff4446) SHA1(87af12f87a940a6c5428b4574ad44a4b54867bc3) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "ps-q1.1k", 0x000000, 0x80000, CRC(31fd8726) SHA1(1d73a76682e9fb908db0c55b9a18163f7539fea1) )
+ ROM_LOAD( "ps-q2.2k", 0x080000, 0x80000, CRC(980a9eef) SHA1(36571381f349bc726508a7e618ba1c635ec9d271) )
+ ROM_LOAD( "ps-q3.3k", 0x100000, 0x80000, CRC(0dd44491) SHA1(903cea1d7f3120545ea3229d30fbd687d11ad68f) )
+ ROM_LOAD( "ps-q4.4k", 0x180000, 0x80000, CRC(bed42f03) SHA1(21302f7e75f9c795392a3b34e16a959fc5f6e4e9) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "punisher.key", 0x000000, 0x000080, CRC(8e992ffa) SHA1(4f09427600cef4feb49a8a488caadaaa7b327484) )
+ROM_END
+
+ROM_START( punisherjha ) // multijet:punishje2: The Punisher (SM Experience Edition hack by Zhyxxxx set 2 13/06/09)
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "psj23ex.bin", 0x000000, 0x80000, CRC(fa084bab) SHA1(af323e6399ab5d3091a57188d3cedc1d0600dd3d) )
+ ROM_LOAD16_WORD_SWAP( "psj22ex.bin", 0x080000, 0x80000, CRC(69433b02) SHA1(cc7127170fad47562aaded71a3c1e216084667f8) )
+ ROM_LOAD16_WORD_SWAP( "ps_21ex.rom", 0x100000, 0x80000, CRC(e4e15e4a) SHA1(405d57983ed33276e6fde155d4c78c2973466483) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "ps_01.3a", 0x000000, 0x80000, CRC(77b7ccab) SHA1(e08e5d55a79e4c0c8ca819d6d7d2a14f753c6ec3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_02.4a", 0x000002, 0x80000, CRC(0122720b) SHA1(5f0d3097e097f64106048156fbb0d343fe78fffa) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_03.5a", 0x000004, 0x80000, CRC(64fa58d4) SHA1(d4a774285ed15273195b6b26d2965ce370e54e73) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_04.6a", 0x000006, 0x80000, CRC(60da42c8) SHA1(95eec4a58d9628a2d9764951dd8dc11e4860a899) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_05.7a", 0x200000, 0x80000, CRC(c54ea839) SHA1(0733f37329edd9d0cace1319a7544b40aa7ecb0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_06.8a", 0x200002, 0x80000, CRC(04c5acbd) SHA1(fddc94b0f36d4d22d7c357856ae15b7514c342d3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_07.9a", 0x200004, 0x80000, CRC(a544f4cc) SHA1(9552df8934ba25f19a22f2e07783712d8c8ef03c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_08.10a", 0x200006, 0x80000, CRC(8f02f436) SHA1(a2f0ebb7e9593469c7b843f8962a66f3d77f79e5) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "ps_q.5k", 0x00000, 0x08000, CRC(49ff4446) SHA1(87af12f87a940a6c5428b4574ad44a4b54867bc3) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "ps-q1.1k", 0x000000, 0x80000, CRC(31fd8726) SHA1(1d73a76682e9fb908db0c55b9a18163f7539fea1) )
+ ROM_LOAD( "ps-q2.2k", 0x080000, 0x80000, CRC(980a9eef) SHA1(36571381f349bc726508a7e618ba1c635ec9d271) )
+ ROM_LOAD( "ps-q3.3k", 0x100000, 0x80000, CRC(0dd44491) SHA1(903cea1d7f3120545ea3229d30fbd687d11ad68f) )
+ ROM_LOAD( "ps-q4.4k", 0x180000, 0x80000, CRC(bed42f03) SHA1(21302f7e75f9c795392a3b34e16a959fc5f6e4e9) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "punisher.key", 0x000000, 0x000080, CRC(8e992ffa) SHA1(4f09427600cef4feb49a8a488caadaaa7b327484) )
+ROM_END
+
+ROM_START( punisherud1 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE ( "psud1_26.11e", 0x000000, 0x20000, CRC(f820e620) SHA1(7c2e55b4dc7aaf27badceafd7bde483f33676351) )
+ ROM_LOAD16_BYTE ( "psud1_30.11f", 0x000001, 0x20000, CRC(90afc70a) SHA1(73d5325a482becf46ef75456134242db7f1a31f8) )
+ ROM_LOAD16_BYTE ( "psu_27.12e", 0x040000, 0x20000, CRC(61c960a1) SHA1(f8fe651283cc1f138d013cab65b833505de6df9f) )
+ ROM_LOAD16_BYTE ( "psud1_31.12f", 0x040001, 0x20000, CRC(e1239351) SHA1(7437a5e93ed72b8a52292aeb71c678e1462c8578) )
+ ROM_LOAD16_BYTE ( "psud1_24.9e", 0x080000, 0x20000, CRC(22ef4de9) SHA1(358acdce233182280e5eb77da178ec0f08beca7f) )
+ ROM_LOAD16_BYTE ( "psud1_28.9f", 0x080001, 0x20000, CRC(e45f5b6d) SHA1(daf25f24f8955387086acd337b19dfea5507adb8) )
+ ROM_LOAD16_BYTE ( "psu_25.10e", 0x0c0000, 0x20000, CRC(c51acc94) SHA1(34ffd6392914e3e67d7d0804215bd1193846b554) )
+ ROM_LOAD16_BYTE ( "psu_29.10f", 0x0c0001, 0x20000, CRC(52dce1ca) SHA1(45277abe34feacdcaedaec56f513b7437d4260e9) )
+ ROM_LOAD16_WORD_SWAP( "ps_21.6f", 0x100000, 0x80000, CRC(8affa5a9) SHA1(268760b83b1723ff50a019ec51ef7af2e49935bf) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "ps-1m.3a", 0x000000, 0x80000, CRC(77b7ccab) SHA1(e08e5d55a79e4c0c8ca819d6d7d2a14f753c6ec3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps-3m.5a", 0x000002, 0x80000, CRC(0122720b) SHA1(5f0d3097e097f64106048156fbb0d343fe78fffa) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps-2m.4a", 0x000004, 0x80000, CRC(64fa58d4) SHA1(d4a774285ed15273195b6b26d2965ce370e54e73) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps-4m.6a", 0x000006, 0x80000, CRC(60da42c8) SHA1(95eec4a58d9628a2d9764951dd8dc11e4860a899) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps-5m.7a", 0x200000, 0x80000, CRC(c54ea839) SHA1(0733f37329edd9d0cace1319a7544b40aa7ecb0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps-7m.9a", 0x200002, 0x80000, CRC(04c5acbd) SHA1(fddc94b0f36d4d22d7c357856ae15b7514c342d3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps-6m.8a", 0x200004, 0x80000, CRC(a544f4cc) SHA1(9552df8934ba25f19a22f2e07783712d8c8ef03c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps-8m.10a", 0x200006, 0x80000, CRC(8f02f436) SHA1(a2f0ebb7e9593469c7b843f8962a66f3d77f79e5) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "ps_q.5k", 0x00000, 0x08000, CRC(49ff4446) SHA1(87af12f87a940a6c5428b4574ad44a4b54867bc3) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "ps-q1.1k", 0x000000, 0x80000, CRC(31fd8726) SHA1(1d73a76682e9fb908db0c55b9a18163f7539fea1) )
+ ROM_LOAD( "ps-q2.2k", 0x080000, 0x80000, CRC(980a9eef) SHA1(36571381f349bc726508a7e618ba1c635ec9d271) )
+ ROM_LOAD( "ps-q3.3k", 0x100000, 0x80000, CRC(0dd44491) SHA1(903cea1d7f3120545ea3229d30fbd687d11ad68f) )
+ ROM_LOAD( "ps-q4.4k", 0x180000, 0x80000, CRC(bed42f03) SHA1(21302f7e75f9c795392a3b34e16a959fc5f6e4e9) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "punisherud1.key", 0x000000, 0x000080, CRC(c22c07f9) SHA1(b726dfed90c288ee71ab6d6035b0efcba1f18f6a) )
+ROM_END
+
+ROM_START( punisherud2 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "psud2.23", 0x000000, 0x80000, CRC(019efb28) SHA1(1790db51ce7cd1281932359de6e4e1e046db0369) )
+ ROM_LOAD16_WORD_SWAP( "psud2.22", 0x080000, 0x80000, CRC(c0110a4e) SHA1(43f6086634c332a58d95b0b51995ba1ab8ed1367) )
+ ROM_LOAD16_WORD_SWAP( "ps_21.6f", 0x100000, 0x80000, CRC(8affa5a9) SHA1(268760b83b1723ff50a019ec51ef7af2e49935bf) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "ps-1m.3a", 0x000000, 0x80000, CRC(77b7ccab) SHA1(e08e5d55a79e4c0c8ca819d6d7d2a14f753c6ec3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps-3m.5a", 0x000002, 0x80000, CRC(0122720b) SHA1(5f0d3097e097f64106048156fbb0d343fe78fffa) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps-2m.4a", 0x000004, 0x80000, CRC(64fa58d4) SHA1(d4a774285ed15273195b6b26d2965ce370e54e73) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps-4m.6a", 0x000006, 0x80000, CRC(60da42c8) SHA1(95eec4a58d9628a2d9764951dd8dc11e4860a899) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps-5m.7a", 0x200000, 0x80000, CRC(c54ea839) SHA1(0733f37329edd9d0cace1319a7544b40aa7ecb0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps-7m.9a", 0x200002, 0x80000, CRC(04c5acbd) SHA1(fddc94b0f36d4d22d7c357856ae15b7514c342d3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps-6m.8a", 0x200004, 0x80000, CRC(a544f4cc) SHA1(9552df8934ba25f19a22f2e07783712d8c8ef03c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps-8m.10a", 0x200006, 0x80000, CRC(8f02f436) SHA1(a2f0ebb7e9593469c7b843f8962a66f3d77f79e5) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "ps_q.5k", 0x00000, 0x08000, CRC(49ff4446) SHA1(87af12f87a940a6c5428b4574ad44a4b54867bc3) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "ps-q1.1k", 0x000000, 0x80000, CRC(31fd8726) SHA1(1d73a76682e9fb908db0c55b9a18163f7539fea1) )
+ ROM_LOAD( "ps-q2.2k", 0x080000, 0x80000, CRC(980a9eef) SHA1(36571381f349bc726508a7e618ba1c635ec9d271) )
+ ROM_LOAD( "ps-q3.3k", 0x100000, 0x80000, CRC(0dd44491) SHA1(903cea1d7f3120545ea3229d30fbd687d11ad68f) )
+ ROM_LOAD( "ps-q4.4k", 0x180000, 0x80000, CRC(bed42f03) SHA1(21302f7e75f9c795392a3b34e16a959fc5f6e4e9) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "punisherud1.key", 0x000000, 0x000080, CRC(c22c07f9) SHA1(b726dfed90c288ee71ab6d6035b0efcba1f18f6a) )
+ROM_END
+
+
+// sf2uc with first 2 roms changed
+ROM_START( sf2bhj )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "sf2bhj.30", 0x00000, 0x20000, CRC(1699140f) SHA1(967f2a958ffe3886ce60568e2a63ee119757fa57) )
+ ROM_LOAD16_BYTE( "sf2bhj.37", 0x00001, 0x20000, CRC(4d563eb4) SHA1(a238129d867dc3f0b8b4e458d597b0d11bbeda05) )
+ ROM_LOAD16_BYTE( "sf2u_31c.12e", 0x40000, 0x20000, CRC(c4fff4a9) SHA1(4b593ace201fe7f5a00b5cd7f4e8fc3f8dd4ceed) )
+ ROM_LOAD16_BYTE( "sf2u_38c.12f", 0x40001, 0x20000, CRC(8210fc0e) SHA1(7d6cfb99afa89d0e6e991d9f7c1808b740def125) )
+ ROM_LOAD16_BYTE( "sf2u_28c.9e", 0x80000, 0x20000, CRC(6eddd5e8) SHA1(62bd1c2fc0321809421c9a592f691b5b1a1d8807) )
+ ROM_LOAD16_BYTE( "sf2u_35c.9f", 0x80001, 0x20000, CRC(6bcb404c) SHA1(b5f24556c633c521aadd94e016d78db6922e3dfa) )
+ ROM_LOAD16_BYTE( "sf2_29b.10e", 0xc0000, 0x20000, CRC(bb4af315) SHA1(75f0827f4f7e9f292add46467f8d4fe19b2514c9) )
+ ROM_LOAD16_BYTE( "sf2_36b.10f", 0xc0001, 0x20000, CRC(c02a13eb) SHA1(b807cc495bff3f95d03b061fc629c95f965cb6d8) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "sf2-5m.4a", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sf2-7m.6a", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sf2-1m.3a", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sf2-3m.5a", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sf2-6m.4c", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sf2-8m.6c", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sf2-2m.3c", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sf2-4m.5c", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sf2-13m.4d", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sf2-15m.6d", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sf2-9m.3d", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sf2-11m.5d", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sf2_9.12a", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "sf2_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "sf2_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sf2bhj.key", 0x000000, 0x000080, CRC(c62851af) SHA1(2ccc177c433e48e72e7f5dfeeffb65f54239bf12) )
+ROM_END
+
+ROM_START( sf2c )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "sf2j_30", 0x00000, 0x20000, CRC(70813e5e) SHA1(39219a98d368dcb67cbd0a756f3e1fab7b9352f4) )
+ ROM_LOAD16_BYTE( "sf2j_37", 0x00001, 0x20000, CRC(d0659611) SHA1(1368228cc2c41a361f0e8eb516610522a38394b2) )
+ ROM_LOAD16_BYTE( "sf2j31.bin", 0x40000, 0x20000, CRC(fe15cb39) SHA1(383478524881ea70d9e04c9b6143b8735b637eee) )
+ ROM_LOAD16_BYTE( "sf2j38.bin", 0x40001, 0x20000, CRC(38614d70) SHA1(39c58096f3a8e01fb439639b742b83102bbaa7f6) )
+ ROM_LOAD16_BYTE( "sf2j_28", 0x80000, 0x20000, CRC(2d4a1b8a) SHA1(9dce74c32fa9c63f38d33a03327b22e74d2118c1) )
+ ROM_LOAD16_BYTE( "sf2j_35", 0x80001, 0x20000, CRC(5f622bdb) SHA1(4fe5797acc2645a1bd27d247457b6f24bfd60f96) )
+ ROM_LOAD16_BYTE( "sf2_29b.10e", 0xc0000, 0x20000, CRC(bb4af315) SHA1(75f0827f4f7e9f292add46467f8d4fe19b2514c9) )
+ ROM_LOAD16_BYTE( "sf2_36b.10f", 0xc0001, 0x20000, CRC(c02a13eb) SHA1(b807cc495bff3f95d03b061fc629c95f965cb6d8) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "sf2_06", 0x000000, 0x80000, CRC(d3aab35d) SHA1(bc90464bc38b326b46f0da97008116ee639e2598) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sf2_08", 0x000002, 0x80000, CRC(f6a68d56) SHA1(4ef2668a245fb207c599f0e72e979f8c0191df25) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sf2_05", 0x000004, 0x80000, CRC(1ddcda55) SHA1(494338ac59e4253177b731bd6ad116a63f7ded8c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sf2_07", 0x000006, 0x80000, CRC(d3274004) SHA1(a278e0740806cf8098058d1c33eb0964cc130ded) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sf2_15", 0x200000, 0x80000, CRC(f8710c69) SHA1(a298117a7869b0891220c229d0dceba7ac6bf594) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sf2_17", 0x200002, 0x80000, CRC(dd376567) SHA1(a817c999098b0274ed2c052b96c562bed407b7b1) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sf2_14", 0x200004, 0x80000, CRC(c754e2c4) SHA1(7936eaa669c84742c1511768bb9039c26b2fb3c3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sf2_16", 0x200006, 0x80000, CRC(0d4799bd) SHA1(5e63e889cabc4436c2a49997c9d0a47529d264ad) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sf2_25", 0x400000, 0x80000, CRC(a6671144) SHA1(f4017ad15784078c00ef76220f4e5bdba61a6495) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sf2_27", 0x400002, 0x80000, CRC(008b2bdd) SHA1(a048a70fe3c752b79e14eadf2369f068fc831439) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sf2_24", 0x400004, 0x80000, CRC(0f8a9ec4) SHA1(cde0013df78333ebfbaacb9a9e212fbc0b2e04d3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sf2_26", 0x400006, 0x80000, CRC(0fb4241e) SHA1(f749daa6ecf018542ecf0f3711491eb85fac91b3) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "sf2_9.12a", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "sf2_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "sf2_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sf2c.key", 0x000000, 0x000080, CRC(fdc05d86) SHA1(f828e6171a271bc12a5c9ab5be237562e263ccdb) )
+ROM_END
+
+ROM_START( sf2cebr )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sf2cebr.23", 0x000000, 0x80000, CRC(74e848ee) SHA1(6DCE8D0C7D439E6D1D08C8169A3ECDF178E82C16) )
+ ROM_LOAD16_WORD_SWAP( "sf2cebr.22", 0x080000, 0x80000, CRC(c3c49626) SHA1(D0FAE1D2758360B56E6E583FEB4BDF7D4E2E1EBA) )
+ ROM_LOAD16_WORD_SWAP( "s92_21a.6f", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92br_10.bin", 0x400000, 0x80000, CRC(b3e1dd5f) SHA1(714BF1519CED85567D3D35FDF4AA9E4268CC9F0F) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92br_11.bin", 0x400002, 0x80000, CRC(f13af812) SHA1(E3711CBAA3169D0F48DF420953F1AFD0AB76EE08) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92br_12.bin", 0x400004, 0x80000, CRC(10ce42af) SHA1(530B2A6E2D13B2694BD611B31B056B7458FD1571) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92br_13.bin", 0x400006, 0x80000, CRC(32cf5af3) SHA1(43972C07F5CCF01B0CE0727541590C3C6B97C300) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sf2ce.key", 0x000000, 0x000080, CRC(35b37429) SHA1(b372cce106c0900554735c207fb333ac93554ec2) )
+ROM_END
+
+ROM_START( sf2ced ) // Drakon 7.1
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sf2ced_23b.8f", 0x000000, 0x80000, CRC(8628f0e2) SHA1(da1f89ccbfb175d39f7e5c69c1c7088205109187) )
+ ROM_LOAD16_WORD_SWAP( "sf2ced_22b.7f", 0x080000, 0x80000, CRC(b7b87a54) SHA1(ab441c30ba6b0e2e8b9785d77b96535357818e0b) )
+ ROM_LOAD16_WORD_SWAP( "sf2ced_21a.6f", 0x100000, 0x80000, CRC(b4f13bef) SHA1(5e6501c157890899848bccb34db06b3570e84c17) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sf2ce.key", 0x000000, 0x000080, CRC(35b37429) SHA1(b372cce106c0900554735c207fb333ac93554ec2) )
+ROM_END
+
+ROM_START( sf2ceda ) // Drakon unknown version
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sf2ceda_23b.8f", 0x000000, 0x80000, CRC(a8a81db7) SHA1(dd0d12ea049292bad48f1009419581695ea41618) )
+ ROM_LOAD16_WORD_SWAP( "sf2ceda_22b.7f", 0x080000, 0x80000, CRC(3c9ee969) SHA1(714fb726c336c5807a1b1d2112e89d3aa5c4af91) )
+ ROM_LOAD16_WORD_SWAP( "s92_21a.6f", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sf2ce.key", 0x000000, 0x000080, CRC(35b37429) SHA1(b372cce106c0900554735c207fb333ac93554ec2) )
+ROM_END
+
+ROM_START( sf2ceh )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sf2ceh.23", 0x000000, 0x80000, CRC(25dc14c8) SHA1(fc7b5de3a50d7d9ee977091bab5f82f824e386f2) )
+ ROM_LOAD16_WORD_SWAP( "sf2ceh.22", 0x080000, 0x80000, CRC(1c9dd91c) SHA1(66fbd10958d3b9f027bc3ba85c99b649cf866ab7) )
+ ROM_LOAD16_WORD_SWAP( "s92_21a.6f", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sf2ce.key", 0x000000, 0x000080, CRC(35b37429) SHA1(b372cce106c0900554735c207fb333ac93554ec2) )
+ROM_END
+
+// sf2ceea with one rom changed
+ROM_START( sf2cehk )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sf2cehk.23", 0x000000, 0x80000, CRC(a233c4c8) SHA1(0446ac1bcd9ded6951c6857600e5c30f56d8c430) )
+ ROM_LOAD16_WORD_SWAP( "s92_22a.7f", 0x080000, 0x80000, CRC(99f1cca4) SHA1(64111eba81d743fc3fd51d7a89cd0b2eefcc900d) )
+ ROM_LOAD16_WORD_SWAP( "s92_21a.6f", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sf2ce.key", 0x000000, 0x000080, CRC(35b37429) SHA1(b372cce106c0900554735c207fb333ac93554ec2) )
+ROM_END
+
+// sf2ceea with 2 roms changed
+ROM_START( sf2cehp )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sf2cehp.23", 0x000000, 0x80000, CRC(7796519f) SHA1(a420cdca5d5d7898a99afbc62cb33d17010f2def) )
+ ROM_LOAD16_WORD_SWAP( "sf2cehp.22", 0x080000, 0x80000, CRC(a99e9f23) SHA1(9c8a10d1382b289eb2fb0be73198c30e44e0c8af) )
+ ROM_LOAD16_WORD_SWAP( "s92_21a.6f", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sf2ce.key", 0x000000, 0x000080, CRC(35b37429) SHA1(b372cce106c0900554735c207fb333ac93554ec2) )
+ROM_END
+
+// sf2ceea with 2 roms changed
+ROM_START( sf2cejem )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sf2cejem.23", 0x000000, 0x80000, CRC(13310615) SHA1(6749c62d19fe554c521ca28e80175ec84450a45d) )
+ ROM_LOAD16_WORD_SWAP( "sf2cejem.22", 0x080000, 0x80000, CRC(d73ee1f8) SHA1(8d6083bf7487867146f091a1cb4bae8d539de46e) )
+ ROM_LOAD16_WORD_SWAP( "s92_21a.6f", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sf2ce.key", 0x000000, 0x000080, CRC(35b37429) SHA1(b372cce106c0900554735c207fb333ac93554ec2) )
+ROM_END
+
+ROM_START( sf2h9 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "sf3a-1.040", 0x000000, 0x80000, CRC(9e6d058a) SHA1(8c9adca7b65dc929c325c0a62304d24dc0902c08) )
+ ROM_LOAD16_BYTE( "sf3a-3.040", 0x000001, 0x80000, CRC(518d8404) SHA1(635d8ac07126caf3c623d1f28aad38c5bc4c4bae) )
+ ROM_LOAD16_BYTE( "sf3a-2", 0x100000, 0x20000, CRC(fca4fc1e) SHA1(2b05d67443af099f95ef50f5e25d7a74b957e7a5) )
+ ROM_LOAD16_BYTE( "sf3a-4", 0x100001, 0x20000, CRC(cfdd6f54) SHA1(2aa3f5a7b36930185382c64712cc0cfceb6f1ab3) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sf2th.key", 0x000000, 0x000080, CRC(67e80fca) SHA1(e937bc4cf0e05ba93c32bc47d65c5b027bc2b48e) )
+ROM_END
+
+ROM_START( sf2h10 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "sfu9-1.040", 0x000000, 0x80000, CRC(95306baf) SHA1(471d1578607ae1090aa46cb111a8c2745d1fd47b) )
+ ROM_LOAD16_BYTE( "sfu9-3.040", 0x000001, 0x80000, CRC(21024d5f) SHA1(986b3910ce749f4ad42e1f86537a8fc3f0f3f867) )
+ ROM_LOAD16_BYTE( "sfu9-2.020", 0x100000, 0x40000, CRC(0b3fe5dd) SHA1(9b66cb867da61595f53d1c9e6b48c6bb7e06e1e0) )
+ ROM_LOAD16_BYTE( "sfu9-4.020", 0x100001, 0x40000, CRC(dbee7b18) SHA1(e56af12fc9d30e92d37e688ff621ea09abb94b53) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sf2th.key", 0x000000, 0x000080, CRC(67e80fca) SHA1(e937bc4cf0e05ba93c32bc47d65c5b027bc2b48e) )
+ROM_END
+
+ROM_START( sf2h11 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "sfu7-1.040", 0x000000, 0x80000, CRC(866a9b31) SHA1(92f89084293b69a9d5cd8d282ffaaca0739f1b03) )
+ ROM_LOAD16_BYTE( "sfu7-3.040", 0x000001, 0x80000, CRC(f3a45593) SHA1(0ba0d05f904ac17cd34c0a7c9dd0a20759ff4e78) )
+ ROM_LOAD16_BYTE( "sfu7-2.010", 0x100000, 0x20000, CRC(d1707134) SHA1(5bfdf7bc57bdb85183647ebb175346070dd102ee) )
+ ROM_LOAD16_BYTE( "sfu7-4.010", 0x100001, 0x20000, CRC(cd1d5666) SHA1(8befd2c324eb29bdad6fc8fb2554cdfaf9808f9b) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sf2h11.key", 0x000000, 0x000080, CRC(822729a2) SHA1(acaadef38fd97dba215c13688061cee87d877c19) )
+ROM_END
+
+ROM_START( sf2h12 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "sfu8-1.040", 0x000000, 0x80000, CRC(10ec67fe) SHA1(9eb30a0f64bf29028f89f9af74cb9d840ed197e2) )
+ ROM_LOAD16_BYTE( "sfu8-3.040", 0x000001, 0x80000, CRC(92eb3a1c) SHA1(0ee294c8b82b100f98da697562f9644b71cabcdd) )
+ ROM_LOAD16_BYTE( "sfu8-2.010", 0x100000, 0x20000, CRC(1073b7b6) SHA1(81ca1eab65ceac69520584bb23a684ccb9d92f89) )
+ ROM_LOAD16_BYTE( "sfu8-4.010", 0x100001, 0x20000, CRC(924c6ce2) SHA1(676a912652bd75da5087f0c7eae047b7681a993c) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sf2h11.key", 0x000000, 0x000080, CRC(822729a2) SHA1(acaadef38fd97dba215c13688061cee87d877c19) )
+ROM_END
+
+ROM_START( sf2h13 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "222-040.13", 0x000000, 0x80000, CRC(ec6f5cb3) SHA1(24b3fc88a08a721985b053120997090bc394bc8e) )
+ ROM_LOAD16_BYTE( "196-040.13", 0x000001, 0x80000, CRC(0e9ac52b) SHA1(2c5faf7d8b598f2110f389aefa1a02e2281382ee) )
+ ROM_LOAD16_BYTE( "221-010.13", 0x100000, 0x20000, CRC(8226c11c) SHA1(9588bd64e338901394805aca8a234f880674dc60) )
+ ROM_LOAD16_BYTE( "sfu8-4.010", 0x100001, 0x20000, CRC(924c6ce2) SHA1(676a912652bd75da5087f0c7eae047b7681a993c) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s2t_10.bin", 0x400000, 0x80000, CRC(3c042686) SHA1(307e1ca8ad0b11f3265b7e5467ba4c90f90ec97f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s2t_11.bin", 0x400002, 0x80000, CRC(8b7e7183) SHA1(c8eaedfbddbf0b83311d2dbb9e19a1efef0dffa9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s2t_12.bin", 0x400004, 0x80000, CRC(293c888c) SHA1(5992ea9aa90fdd8b9dacca9d2a1fdaf25ac2cb65) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s2t_13.bin", 0x400006, 0x80000, CRC(842b35a4) SHA1(35864a140a0c8d76501e69b2e01bc4ad76f27909) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sf2th.key", 0x000000, 0x000080, CRC(67e80fca) SHA1(e937bc4cf0e05ba93c32bc47d65c5b027bc2b48e) )
+ROM_END
+
+ROM_START( sf2jbh )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "sf2jbh_30h.11e", 0x00000, 0x20000, CRC(021594e9) SHA1(59cddadc2c37665813b1868536fa297d3668ec8a) )
+ ROM_LOAD16_BYTE( "sf2jbh_37h.11f", 0x00001, 0x20000, CRC(92a5f669) SHA1(7fb4c7b6dd29148a9c2b5c49f29b763d45fa0973) )
+ ROM_LOAD16_BYTE( "sf2jbh_31h.12e", 0x40000, 0x20000, CRC(7e4af671) SHA1(86391415edc6d6669eec586be91d78e9c6ce6d34) )
+ ROM_LOAD16_BYTE( "sf2jbh_38h.12f", 0x40001, 0x20000, CRC(4723f268) SHA1(1e8d41a72f99de8eeca36c8894fa2b3ba450b83f) )
+ ROM_LOAD16_BYTE( "sf2jbh_28h.9e", 0x80000, 0x20000, CRC(3c33abd7) SHA1(4f6b6ac28a76f1e1a8de00dc0e8f789b648909a8) )
+ ROM_LOAD16_BYTE( "sf2jbh_35h.9f", 0x80001, 0x20000, CRC(6a6c2e9a) SHA1(ee41bc762fd487920ae18f82d7b259f0472fc73c) )
+ ROM_LOAD16_BYTE( "sf2jbh_29a.10e", 0xc0000, 0x20000, CRC(0bb77024) SHA1(71f501fd50a6658b1b2cb5f3c8d9961dce9beeb5) )
+ ROM_LOAD16_BYTE( "sf2jbh_36a.10f", 0xc0001, 0x20000, CRC(48256574) SHA1(bc9b151000fd75233129a3dd1140e224734cab49) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "sf2_06.8a", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sf2_08.10a", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sf2_05.7a", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sf2_07.9a", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sf2_15.8c", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sf2_17.10c", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sf2_14.7c", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sf2_16.9c", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sf2bh_25.8d", 0x400000, 0x80000, CRC(4267b696) SHA1(af65e3b2cc3b7a7f39d5e7e598da7f4c9d351eea) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sf2bh_27.10d", 0x400002, 0x80000, CRC(df9b9146) SHA1(2029aa59c1646af0fd7fa06f353edcbf7f7792de) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sf2bh_24.7d", 0x400004, 0x80000, CRC(a08a9786) SHA1(80a79e45c003fbc95cc5cd0d037b55f2f7fec64c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sf2bh_26.9d", 0x400006, 0x80000, CRC(80feac31) SHA1(f16ce88634d2328eae93f8128423bb311cac88e6) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "sf2_09.12a", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "sf2_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "sf2_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD( "sf2c.key", 0x000000, 0x000080, CRC(fdc05d86) SHA1(f828e6171a271bc12a5c9ab5be237562e263ccdb) )
+ROM_END
+
+ROM_START( sf2koryuh )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "u222.rom", 0x000000, 0x80000, CRC(9236a79a) SHA1(39c47b0b0ca2f5f569ff07ebb91040b95d0cb43b) )
+ ROM_LOAD16_BYTE( "u196.rom", 0x000001, 0x80000, CRC(2722741f) SHA1(d2a2ea29894fbf731f6c8573b85e046dd52e2c97) )
+ ROM_LOAD16_BYTE( "u221.rom", 0x100000, 0x20000, CRC(64e6e091) SHA1(32ec05db955e538d4ada26d19ee50926f74b684f) )
+ ROM_LOAD16_BYTE( "u195.rom", 0x100001, 0x20000, CRC(c95e4443) SHA1(28417dee9ccdfa65b0f4a92aa29b90279fe8cd85) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sf2th.key", 0x000000, 0x000080, CRC(67e80fca) SHA1(e937bc4cf0e05ba93c32bc47d65c5b027bc2b48e) )
+ROM_END
+
+ROM_START( sf2pun )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sf2pun.23", 0x000000, 0x80000, CRC(8c3bb8f8) SHA1(756ae3980c15d037ff6e70d0c309d9caed6bac4f) )
+ ROM_LOAD16_WORD_SWAP( "sf2pun.22", 0x080000, 0x80000, CRC(0786f114) SHA1(4a6b52c98c839fcde2b7f425739569abc74c91f4) )
+ ROM_LOAD16_WORD_SWAP( "sf2red.21", 0x100000, 0x80000, CRC(52c486bb) SHA1(b7df7b10faa4c9a2f86ebf64cd63ac148d62dd09) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sf2ce.key", 0x000000, 0x000080, CRC(35b37429) SHA1(b372cce106c0900554735c207fb333ac93554ec2) )
+ROM_END
+
+ROM_START( sf2sl73a )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sf2sl73a.23", 0x000000, 0x80000, CRC(190f5419) SHA1(7fc7f3b6788d25b190bda3b3b6cf76a396d7d586) )
+ ROM_LOAD16_WORD_SWAP( "sf2sl73a.22", 0x080000, 0x80000, CRC(2b329193) SHA1(b1576b610e384fbeaef7be711888fb3fa3f10b1a) )
+ ROM_LOAD16_WORD_SWAP( "sf2sl73a.21", 0x100000, 0x80000, CRC(b4f13bef) SHA1(5e6501c157890899848bccb34db06b3570e84c17) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sf2ce.key", 0x000000, 0x000080, CRC(35b37429) SHA1(b372cce106c0900554735c207fb333ac93554ec2) )
+ROM_END
+
+ROM_START( sf2th )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "u222", 0x000000, 0x80000, CRC(03991fba) SHA1(6c42bf15248640fdb3e98fb01b0a870649deb410) )
+ ROM_LOAD16_BYTE( "4.amf", 0x000001, 0x80000, CRC(39f15a1e) SHA1(901c4fea76bf5bff7330ed07ffde54cdccdaa680) )
+ ROM_LOAD16_BYTE( "u221.rom", 0x100000, 0x20000, CRC(64e6e091) SHA1(32ec05db955e538d4ada26d19ee50926f74b684f) )
+ ROM_LOAD16_BYTE( "stf2th-4.bin", 0x100001, 0x20000, CRC(c95e4443) SHA1(28417dee9ccdfa65b0f4a92aa29b90279fe8cd85) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+ // These map over the MASK roms on this bootleg
+ ROMX_LOAD( "stf2th-10.bin",0x400000, 0x20000, CRC(84427d1b) SHA1(f988a2b53c8cc46eeb8032084f24966a539b3734) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "stf2th-12.bin",0x400002, 0x20000, CRC(55bc790c) SHA1(a1114b89f6fa4487210477676984c77ad94b5ef8) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "stf2th-9.bin", 0x400004, 0x20000, CRC(f8725add) SHA1(fa3fcf6637ee4dd7667bd89766074b3c6ba4f166) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "stf2th-11.bin",0x400006, 0x20000, CRC(c2a5373e) SHA1(602b32e5ecc7007efe9ad30751040ee52b81f59a) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sf2th.key", 0x000000, 0x000080, CRC(67e80fca) SHA1(e937bc4cf0e05ba93c32bc47d65c5b027bc2b48e) )
+ROM_END
+
+ROM_START( sf2tha )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "t-2.u52", 0x000000, 0x80000, CRC(0d305e8b) SHA1(7094160abbf24c119a575d93e3fe1ab84b537de0) )
+ ROM_LOAD16_BYTE( "t-1.u36", 0x000001, 0x80000, CRC(137d8665) SHA1(cf4805a11ab614ce5b7e1302ac14ba50fb01e5f4) )
+ ROM_LOAD16_BYTE( "t-4.u54", 0x100000, 0x40000, CRC(0b3fe5dd) SHA1(9b66cb867da61595f53d1c9e6b48c6bb7e06e1e0) )
+ ROM_LOAD16_BYTE( "t-3.u38", 0x100001, 0x40000, CRC(dbee7b18) SHA1(e56af12fc9d30e92d37e688ff621ea09abb94b53) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+ // These map over the MASK roms on this bootleg
+ ROMX_LOAD( "r04.bin", 0x400000, 0x20000, CRC(84427d1b) SHA1(f988a2b53c8cc46eeb8032084f24966a539b3734) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "r06.bin", 0x400002, 0x20000, CRC(55bc790c) SHA1(a1114b89f6fa4487210477676984c77ad94b5ef8) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "r03.bin", 0x400004, 0x20000, CRC(f8725add) SHA1(fa3fcf6637ee4dd7667bd89766074b3c6ba4f166) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "r05.bin", 0x400006, 0x20000, CRC(c2a5373e) SHA1(602b32e5ecc7007efe9ad30751040ee52b81f59a) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sf2th.key", 0x000000, 0x000080, CRC(67e80fca) SHA1(e937bc4cf0e05ba93c32bc47d65c5b027bc2b48e) )
+ROM_END
+
+ROM_START( sf2tlona )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "tl4mt.1", 0x000000, 0x80000, CRC(158635ca) SHA1(878b56064861993ac92fbd88eb1117d3680fe7d7) )
+ ROM_LOAD16_BYTE( "tl4m.2", 0x000001, 0x80000, CRC(882cd1c4) SHA1(0cb971756352b1022ecd309b1bc3688c1f1acbd8) )
+ ROM_LOAD16_BYTE( "u221t.1m", 0x100000, 0x20000, CRC(1073b7b6) SHA1(81ca1eab65ceac69520584bb23a684ccb9d92f89) )
+ ROM_LOAD16_BYTE( "u195t.1m", 0x100001, 0x20000, CRC(db7e1f72) SHA1(1ca99a3b425ac137f3c104cf4deb50d9431dacdd) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sf2th.key", 0x000000, 0x000080, CRC(67e80fca) SHA1(e937bc4cf0e05ba93c32bc47d65c5b027bc2b48e) )
+ROM_END
+
+ROM_START( sf2tlonb )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "tl4m.1", 0x000000, 0x80000, CRC(afc7bd18) SHA1(ef7af7fb3563073b96563274ec48783feb2be757) )
+ ROM_LOAD16_BYTE( "tl4m.2", 0x000001, 0x80000, CRC(882cd1c4) SHA1(0cb971756352b1022ecd309b1bc3688c1f1acbd8) )
+ ROM_LOAD16_BYTE( "u221.1m", 0x100000, 0x20000, CRC(d1707134) SHA1(5bfdf7bc57bdb85183647ebb175346070dd102ee) )
+ ROM_LOAD16_BYTE( "u195.1m", 0x100001, 0x20000, CRC(cd1d5666) SHA1(8befd2c324eb29bdad6fc8fb2554cdfaf9808f9b) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sf2th.key", 0x000000, 0x000080, CRC(67e80fca) SHA1(e937bc4cf0e05ba93c32bc47d65c5b027bc2b48e) )
+ROM_END
+
+ROM_START( sf2tlonc )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "sf11-1.040", 0x000000, 0x80000, CRC(afc7bd18) SHA1(ef7af7fb3563073b96563274ec48783feb2be757) )
+ ROM_LOAD16_BYTE( "sf11-3.040", 0x000001, 0x80000, CRC(882cd1c4) SHA1(0cb971756352b1022ecd309b1bc3688c1f1acbd8) )
+ ROM_LOAD16_BYTE( "sf11-2.010", 0x100000, 0x20000, CRC(f8a5cd53) SHA1(f474e6d24f25ca9a126bd68b02089a0161e2cc0d) )
+ ROM_LOAD16_BYTE( "sf11-4.010", 0x100001, 0x20000, CRC(db7e1f72) SHA1(1ca99a3b425ac137f3c104cf4deb50d9431dacdd) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sf2th.key", 0x000000, 0x000080, CRC(67e80fca) SHA1(e937bc4cf0e05ba93c32bc47d65c5b027bc2b48e) )
+ROM_END
+
+ROM_START( sf2turyu )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "u222-f83.040", 0x000000, 0x100000, CRC(47468198) SHA1(D68D6342DA9B53163F36F44517F6DADF35E2A279) )
+ ROM_LOAD16_BYTE( "u196-99d.040", 0x000001, 0x100000, CRC(47d34191) SHA1(6718FDC8A0DAFEBCA7C35553CC270D16CE3F5D3E) )
+ ROM_LOAD16_BYTE( "u221-59e.010", 0x100000, 0x40000, CRC(5507bac9) SHA1(7797CA13CB02DB469DCBA00A07B1517C3586423E) )
+ ROM_LOAD16_BYTE( "u195-472.010", 0x100001, 0x40000, CRC(7755a20a) SHA1(60ED4009C9C767A375A754C06C124EF81BA45F5A) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sf2th.key", 0x000000, 0x000080, CRC(67e80fca) SHA1(e937bc4cf0e05ba93c32bc47d65c5b027bc2b48e) )
+ROM_END
+
+ROM_START( sf2yyc3d5 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "sf3d5-1040", 0x000000, 0x80000, CRC(bcdd2c3a) SHA1(eff98e425f283afc69064e8bc73f769e0aab93ed) )
+ ROM_LOAD16_BYTE( "sf3d5-3040", 0x000001, 0x80000, CRC(01965987) SHA1(42abce3aa983ac4143490c0ab2e772a154905860) )
+ ROM_LOAD16_BYTE( "sf3d5-2010", 0x100000, 0x20000, CRC(dd2e1d31) SHA1(22b341a7365ba4a52c9ee2244d68409c5e86bcf0) )
+ ROM_RELOAD( 0x140000, 0x20000 )
+ ROM_LOAD16_BYTE( "u195.rom", 0x100001, 0x20000, CRC(c95e4443) SHA1(28417dee9ccdfa65b0f4a92aa29b90279fe8cd85) )
+ ROM_RELOAD( 0x140001, 0x20000 )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sf2th.key", 0x000000, 0x000080, CRC(67e80fca) SHA1(e937bc4cf0e05ba93c32bc47d65c5b027bc2b48e) )
+ROM_END
+
+ROM_START( sf2yyc3g )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "sf3g-1040", 0x000000, 0x80000, CRC(c90559a5) SHA1(f45563c79cf5ce610f92ca84c96d337cf6c9a979) )
+ ROM_LOAD16_BYTE( "sf3g-3040", 0x000001, 0x80000, CRC(81f36682) SHA1(53776084c973c0b7aafb203e8efcfd5f5c659c93) )
+ ROM_LOAD16_BYTE( "sf3g-2010", 0x100000, 0x20000, CRC(9eee20a1) SHA1(a6769744094dc0e65f9f34ef36929e7e8ae6155b) )
+ ROM_RELOAD( 0x140000, 0x20000 )
+ ROM_LOAD16_BYTE( "sf3g-4010", 0x100001, 0x20000, CRC(6ac3d875) SHA1(ab4384d7a9194b2628836013d3d9f275d55c77bb) )
+ ROM_RELOAD( 0x140001, 0x20000 )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sf2th.key", 0x000000, 0x000080, CRC(67e80fca) SHA1(e937bc4cf0e05ba93c32bc47d65c5b027bc2b48e) )
+ROM_END
+
+ROM_START( sf2yyc6 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "sf6-1040", 0x000000, 0x80000, CRC(ccd74822) SHA1(5f64585335ccc0fb1a97339532a6694076e2b6f2) )
+ ROM_LOAD16_BYTE( "sf6-3040", 0x000001, 0x80000, CRC(2a48b557) SHA1(2e74925a925f86619d4f8e633af718a5eaa8c585) )
+ ROM_LOAD16_BYTE( "u221.rom", 0x100000, 0x20000, CRC(64e6e091) SHA1(32ec05db955e538d4ada26d19ee50926f74b684f) )
+ ROM_RELOAD( 0x140000, 0x20000 )
+ ROM_LOAD16_BYTE( "u195.rom", 0x100001, 0x20000, CRC(c95e4443) SHA1(28417dee9ccdfa65b0f4a92aa29b90279fe8cd85) )
+ ROM_RELOAD( 0x140001, 0x20000 )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sf2th.key", 0x000000, 0x000080, CRC(67e80fca) SHA1(e937bc4cf0e05ba93c32bc47d65c5b027bc2b48e) )
+ROM_END
+
+
+ROM_START( sk2h1 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sgyx.800", 0x000000, 0x100000, CRC(3703a650) SHA1(6cb8d6f99df5e2e5cf04aee8737bb585f9328ffd) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD("sgyxz_gfx1.bin", 0x000000, 0x80000, CRC(a60be9f6) SHA1(2298a4b6a2c83b76dc106a1efa19606b298d378a), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000004, 0x80000 )
+ ROM_CONTINUE( 0x200000, 0x80000 )
+ ROM_CONTINUE( 0x200004, 0x80000 )
+ ROMX_LOAD("sgyxz_gfx2.bin", 0x000002, 0x80000, CRC(6ad9d048) SHA1(d47212d28d0a1ce349e4c59e5d0d99c541b3458e), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000006, 0x80000 )
+ ROM_CONTINUE( 0x200002, 0x80000 )
+ ROM_CONTINUE( 0x200006, 0x80000 )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "sgyxz_snd2.bin", 0x00000, 0x10000, CRC(210c376f) SHA1(0d937c86078d0a106f5636b7daf5fc0266c2c2ec) )
+ ROM_RELOAD( 0x8000, 0x10000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "sgyxz_snd1.bin", 0x00000, 0x40000, CRC(c15ac0f2) SHA1(8d9e5519d9820e4ac4f70555088c80e64d052c9d) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sk2h1.key", 0x000000, 0x000080, CRC(dccefd4d) SHA1(01050b7d1805503a5c7098dfb98d8afa79cf0fe0) )
+ROM_END
+
+ROM_START( sk2h1q )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sgyx.800", 0x000000, 0x100000, CRC(3703a650) SHA1(6cb8d6f99df5e2e5cf04aee8737bb585f9328ffd) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "sgyx-1.160", 0x000000, 0x80000, CRC(a60be9f6) SHA1(2298a4b6a2c83b76dc106a1efa19606b298d378a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000004, 0x80000 )
+ ROM_CONTINUE( 0x200000, 0x80000 )
+ ROM_CONTINUE( 0x200004, 0x80000 )
+ ROMX_LOAD( "sgyx-2.160", 0x000002, 0x80000, CRC(6ad9d048) SHA1(d47212d28d0a1ce349e4c59e5d0d99c541b3458e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000006, 0x80000 )
+ ROM_CONTINUE( 0x200002, 0x80000 )
+ ROM_CONTINUE( 0x200006, 0x80000 )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code + space for decrypted opcodes */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sk2h1.key", 0x000000, 0x000080, CRC(dccefd4d) SHA1(01050b7d1805503a5c7098dfb98d8afa79cf0fe0) )
+ROM_END
+
+ROM_START( sk2h2 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "fg-c.040", 0x000000, 0x80000, CRC(d046fc86) SHA1(0ae0b9310e3a122cb69df4bb23672149794242f0) )
+ ROM_LOAD16_BYTE( "fg-a.040", 0x000001, 0x80000, CRC(f176ee8f) SHA1(fba357c31774aeecef88f70df4294514585df3a0) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD("sgyxz_gfx1.bin", 0x000000, 0x80000, CRC(a60be9f6) SHA1(2298a4b6a2c83b76dc106a1efa19606b298d378a), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000004, 0x80000 )
+ ROM_CONTINUE( 0x200000, 0x80000 )
+ ROM_CONTINUE( 0x200004, 0x80000 )
+ ROMX_LOAD("sgyxz_gfx2.bin", 0x000002, 0x80000, CRC(6ad9d048) SHA1(d47212d28d0a1ce349e4c59e5d0d99c541b3458e), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000006, 0x80000 )
+ ROM_CONTINUE( 0x200002, 0x80000 )
+ ROM_CONTINUE( 0x200006, 0x80000 )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "sgyxz_snd2.bin", 0x00000, 0x10000, CRC(210c376f) SHA1(0d937c86078d0a106f5636b7daf5fc0266c2c2ec) )
+ ROM_RELOAD( 0x8000, 0x10000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "sgyxz_snd1.bin", 0x00000, 0x40000, CRC(c15ac0f2) SHA1(8d9e5519d9820e4ac4f70555088c80e64d052c9d) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sk2h1.key", 0x000000, 0x000080, CRC(dccefd4d) SHA1(01050b7d1805503a5c7098dfb98d8afa79cf0fe0) )
+ROM_END
+
+ROM_START( sk2h2q )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "fg-c.040", 0x000000, 0x80000, CRC(d046fc86) SHA1(0ae0b9310e3a122cb69df4bb23672149794242f0) )
+ ROM_LOAD16_BYTE( "fg-a.040", 0x000001, 0x80000, CRC(f176ee8f) SHA1(fba357c31774aeecef88f70df4294514585df3a0) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "sgyx-1.160", 0x000000, 0x80000, CRC(a60be9f6) SHA1(2298a4b6a2c83b76dc106a1efa19606b298d378a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000004, 0x80000 )
+ ROM_CONTINUE( 0x200000, 0x80000 )
+ ROM_CONTINUE( 0x200004, 0x80000 )
+ ROMX_LOAD( "sgyx-2.160", 0x000002, 0x80000, CRC(6ad9d048) SHA1(d47212d28d0a1ce349e4c59e5d0d99c541b3458e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000006, 0x80000 )
+ ROM_CONTINUE( 0x200002, 0x80000 )
+ ROM_CONTINUE( 0x200006, 0x80000 )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code + space for decrypted opcodes */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sk2h1.key", 0x000000, 0x000080, CRC(dccefd4d) SHA1(01050b7d1805503a5c7098dfb98d8afa79cf0fe0) )
+ROM_END
+
+ROM_START( sk2h3 ) // same as MAME sgyxz - here until it gets fixed
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "sgyxz_prg2.bin", 0x000000, 0x20000, CRC(95429c83) SHA1(e981624d018132e5625a66113b6ac4fc44e55cf7) )
+ ROM_CONTINUE( 0x80000, 0x20000 )
+ ROM_CONTINUE( 0x40000, 0x20000 )
+ ROM_CONTINUE( 0xc0000, 0x20000 )
+ ROM_LOAD16_BYTE( "sgyxz_prg1.bin", 0x000001, 0x20000, CRC(d8511929) SHA1(4de9263778f327693f4d1e21b48e43806f673487) )
+ ROM_CONTINUE( 0x80001, 0x20000 )
+ ROM_CONTINUE( 0x40001, 0x20000 )
+ ROM_CONTINUE( 0xc0001, 0x20000 )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD("sgyxz_gfx1.bin", 0x000000, 0x80000, CRC(a60be9f6) SHA1(2298a4b6a2c83b76dc106a1efa19606b298d378a), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000004, 0x80000 )
+ ROM_CONTINUE( 0x200000, 0x80000 )
+ ROM_CONTINUE( 0x200004, 0x80000 )
+ ROMX_LOAD("sgyxz_gfx2.bin", 0x000002, 0x80000, CRC(6ad9d048) SHA1(d47212d28d0a1ce349e4c59e5d0d99c541b3458e), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000006, 0x80000 )
+ ROM_CONTINUE( 0x200002, 0x80000 )
+ ROM_CONTINUE( 0x200006, 0x80000 )
+
+ ROM_REGION( 0x20000, "audiocpu", 0 )
+ ROM_LOAD( "sgyxz_snd2.bin", 0x00000, 0x10000, CRC(210c376f) SHA1(0d937c86078d0a106f5636b7daf5fc0266c2c2ec) )
+ ROM_RELOAD( 0x8000, 0x10000 )
+
+ ROM_REGION( 0x040000, "oki", 0 )
+ ROM_LOAD( "sgyxz_snd1.bin", 0x00000, 0x40000, CRC(c15ac0f2) SHA1(8d9e5519d9820e4ac4f70555088c80e64d052c9d) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sk2h1.key", 0x000000, 0x000080, CRC(dccefd4d) SHA1(01050b7d1805503a5c7098dfb98d8afa79cf0fe0) )
+ROM_END
+
+ROM_START( sk2h4q ) // wofjheo in mame++
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sk2h4q.23", 0x000000, 0x100000, CRC(03eeb1cf) SHA1(4adffc4eadc5174e2185e923021fa17b113c8a7e) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "sgyx-1.160", 0x000000, 0x80000, CRC(a60be9f6) SHA1(2298a4b6a2c83b76dc106a1efa19606b298d378a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000004, 0x80000 )
+ ROM_CONTINUE( 0x200000, 0x80000 )
+ ROM_CONTINUE( 0x200004, 0x80000 )
+ ROMX_LOAD( "sgyx-2.160", 0x000002, 0x80000, CRC(6ad9d048) SHA1(d47212d28d0a1ce349e4c59e5d0d99c541b3458e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000006, 0x80000 )
+ ROM_CONTINUE( 0x200002, 0x80000 )
+ ROM_CONTINUE( 0x200006, 0x80000 )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code + space for decrypted opcodes */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sk2h1.key", 0x000000, 0x000080, CRC(dccefd4d) SHA1(01050b7d1805503a5c7098dfb98d8afa79cf0fe0) )
+ROM_END
+
+ROM_START( sk2h5q ) // wofhrvwx in mame++
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sk2h5q.23", 0x000000, 0x100000, CRC(750dfc1d) SHA1(05967381446b54cea501c09ec033b16708f895e1) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "sgyx-1.160", 0x000000, 0x80000, CRC(a60be9f6) SHA1(2298a4b6a2c83b76dc106a1efa19606b298d378a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000004, 0x80000 )
+ ROM_CONTINUE( 0x200000, 0x80000 )
+ ROM_CONTINUE( 0x200004, 0x80000 )
+ ROMX_LOAD( "sgyx-2.160", 0x000002, 0x80000, CRC(6ad9d048) SHA1(d47212d28d0a1ce349e4c59e5d0d99c541b3458e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000006, 0x80000 )
+ ROM_CONTINUE( 0x200002, 0x80000 )
+ ROM_CONTINUE( 0x200006, 0x80000 )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code + space for decrypted opcodes */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sk2h1.key", 0x000000, 0x000080, CRC(dccefd4d) SHA1(01050b7d1805503a5c7098dfb98d8afa79cf0fe0) )
+ROM_END
+
+ROM_START( sk2h6q ) // wofhbw in mame++
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sk2h6q.23", 0x000000, 0x100000, CRC(8080acc7) SHA1(b9e9d126c4e63748bd77947e9c50888c701ea165) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "sgyx-1.160", 0x000000, 0x80000, CRC(a60be9f6) SHA1(2298a4b6a2c83b76dc106a1efa19606b298d378a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000004, 0x80000 )
+ ROM_CONTINUE( 0x200000, 0x80000 )
+ ROM_CONTINUE( 0x200004, 0x80000 )
+ ROMX_LOAD( "sgyx-2.160", 0x000002, 0x80000, CRC(6ad9d048) SHA1(d47212d28d0a1ce349e4c59e5d0d99c541b3458e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000006, 0x80000 )
+ ROM_CONTINUE( 0x200002, 0x80000 )
+ ROM_CONTINUE( 0x200006, 0x80000 )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code + space for decrypted opcodes */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sk2h1.key", 0x000000, 0x000080, CRC(dccefd4d) SHA1(01050b7d1805503a5c7098dfb98d8afa79cf0fe0) )
+ROM_END
+
+ROM_START( sk2h11 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "htk2a_23b.rom", 0x000000, 0x80000, CRC(1b17fc85) SHA1(d8c2bd31474dce2330adb05b859ce3fd13040d23) )
+ ROM_LOAD16_WORD_SWAP( "tk2a_22c.7f", 0x080000, 0x80000, CRC(900ad4cd) SHA1(988007447f93f3467029b9c29fd9670a7ecadaa3) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-5m.7a", 0x200000, 0x80000, CRC(291f0f0b) SHA1(094baf0f960f25fc2525b3b1cc378a49d9a0955d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-7m.9a", 0x200002, 0x80000, CRC(3edeb949) SHA1(c155698dd9ee9eb24bbc97a21118ef2e897ea82f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-6m.8a", 0x200004, 0x80000, CRC(1abd14d6) SHA1(dffff3126f102b4ec028a81405fc5b9bd7bb65b3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-8m.10a", 0x200006, 0x80000, CRC(b27948e3) SHA1(870d5d23f56798831c641e877ea94217058b2ddc) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wofch.key", 0x000000, 0x000080, CRC(23f2d0bb) SHA1(48ba9300bc2136e9583754a51d5ab2532eca85c6) )
+ROM_END
+
+ROM_START( sk2h12 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "htk2ah_23b.rom", 0x000000, 0x80000, CRC(6e3ff382) SHA1(14ef2c708da134f925efa0c3886a104c3ef9e5d7) )
+ ROM_LOAD16_WORD_SWAP( "tk2a_22c.7f", 0x080000, 0x80000, CRC(900ad4cd) SHA1(988007447f93f3467029b9c29fd9670a7ecadaa3) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-5m.7a", 0x200000, 0x80000, CRC(291f0f0b) SHA1(094baf0f960f25fc2525b3b1cc378a49d9a0955d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-7m.9a", 0x200002, 0x80000, CRC(3edeb949) SHA1(c155698dd9ee9eb24bbc97a21118ef2e897ea82f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-6m.8a", 0x200004, 0x80000, CRC(1abd14d6) SHA1(dffff3126f102b4ec028a81405fc5b9bd7bb65b3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-8m.10a", 0x200006, 0x80000, CRC(b27948e3) SHA1(870d5d23f56798831c641e877ea94217058b2ddc) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wofch.key", 0x000000, 0x000080, CRC(23f2d0bb) SHA1(48ba9300bc2136e9583754a51d5ab2532eca85c6) )
+ROM_END
+
+ROM_START( sk2h13 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2ah_23b.rom", 0x000000, 0x80000, CRC(48fd83c6) SHA1(8f33124979d7ca4c2af10f2a98b524e5463458cc) )
+ ROM_LOAD16_WORD_SWAP( "tk2a_22c.7f", 0x080000, 0x80000, CRC(900ad4cd) SHA1(988007447f93f3467029b9c29fd9670a7ecadaa3) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-5m.7a", 0x200000, 0x80000, CRC(291f0f0b) SHA1(094baf0f960f25fc2525b3b1cc378a49d9a0955d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-7m.9a", 0x200002, 0x80000, CRC(3edeb949) SHA1(c155698dd9ee9eb24bbc97a21118ef2e897ea82f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-6m.8a", 0x200004, 0x80000, CRC(1abd14d6) SHA1(dffff3126f102b4ec028a81405fc5b9bd7bb65b3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-8m.10a", 0x200006, 0x80000, CRC(b27948e3) SHA1(870d5d23f56798831c641e877ea94217058b2ddc) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wofch.key", 0x000000, 0x000080, CRC(23f2d0bb) SHA1(48ba9300bc2136e9583754a51d5ab2532eca85c6) )
+ROM_END
+
+ROM_START( sk2h14 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "wofchs.23", 0x000000, 0x80000, CRC(2d70231a) SHA1(57c05c5685e8b3b6de81ab4eed05bd2ad08dbe57) )
+ ROM_LOAD16_WORD_SWAP( "wofchs.22", 0x080000, 0x80000, CRC(5eac2794) SHA1(76c50ef1fea35f86122ede62acfcd56abb866608) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "wofchs.5", 0x200000, 0x80000, CRC(38a90eb1) SHA1(6a2d1fe437341e9339a21dc2a1746f35d8fe9a38) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "wofchs.7", 0x200002, 0x80000, CRC(fa1e10ca) SHA1(da0a81f470a48069ff4b595706d3d7ad2a6e3c37) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "wofchs.6", 0x200004, 0x80000, CRC(0b0b156c) SHA1(9301ab5480290057b151cc70a45cfa2a75b31f23) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "wofchs.8", 0x200006, 0x80000, CRC(76b9e160) SHA1(a8dfbd15488c18ca3730b9c493140f50ab89a64e) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wofch.key", 0x000000, 0x000080, CRC(23f2d0bb) SHA1(48ba9300bc2136e9583754a51d5ab2532eca85c6) )
+ROM_END
+
+ROM_START( sk2h15 ) // wofaehp
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sk2h15.8f", 0x000000, 0x80000, CRC(261766b2) SHA1(25cf51d0fb90e4a4e39492162f67de0defbc4285) )
+ ROM_LOAD16_WORD_SWAP( "tk2a_22c.7f", 0x080000, 0x80000, CRC(900ad4cd) SHA1(988007447f93f3467029b9c29fd9670a7ecadaa3) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-5m.7a", 0x200000, 0x80000, CRC(291f0f0b) SHA1(094baf0f960f25fc2525b3b1cc378a49d9a0955d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-7m.9a", 0x200002, 0x80000, CRC(3edeb949) SHA1(c155698dd9ee9eb24bbc97a21118ef2e897ea82f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-6m.8a", 0x200004, 0x80000, CRC(1abd14d6) SHA1(dffff3126f102b4ec028a81405fc5b9bd7bb65b3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-8m.10a", 0x200006, 0x80000, CRC(b27948e3) SHA1(870d5d23f56798831c641e877ea94217058b2ddc) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wofch.key", 0x000000, 0x000080, CRC(23f2d0bb) SHA1(48ba9300bc2136e9583754a51d5ab2532eca85c6) )
+ROM_END
+
+ROM_START( sk2h16 ) // wofahp2
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sk2h16.8f", 0x000000, 0x80000, CRC(7aed1751) SHA1(e5e10cae12a90c10831ad62669f8c2293a2ab263) )
+ ROM_LOAD16_WORD_SWAP( "sk2h16.7f", 0x080000, 0x80000, CRC(89483936) SHA1(8f5d19e9c9660908d2bc256418e63b2c89f64fc4) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-5m.7a", 0x200000, 0x80000, CRC(291f0f0b) SHA1(094baf0f960f25fc2525b3b1cc378a49d9a0955d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-7m.9a", 0x200002, 0x80000, CRC(3edeb949) SHA1(c155698dd9ee9eb24bbc97a21118ef2e897ea82f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-6m.8a", 0x200004, 0x80000, CRC(1abd14d6) SHA1(dffff3126f102b4ec028a81405fc5b9bd7bb65b3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-8m.10a", 0x200006, 0x80000, CRC(b27948e3) SHA1(870d5d23f56798831c641e877ea94217058b2ddc) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wofch.key", 0x000000, 0x000080, CRC(23f2d0bb) SHA1(48ba9300bc2136e9583754a51d5ab2532eca85c6) )
+ROM_END
+
+ROM_START( sk2h21 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "3js_23.rom", 0x000000, 0x80000, CRC(1ebb76da) SHA1(a3d9643a03e964477abd5164202566fe4a11b902) )
+ ROM_LOAD16_WORD_SWAP( "3js_22.rom", 0x080000, 0x80000, CRC(f41d6153) SHA1(a2cafea8402ab58e8022020242397e7cdce57aff) )
+ ROM_LOAD16_BYTE( "3js_24.rom", 0x0c0000, 0x20000, CRC(06ead409) SHA1(7289afd15fecd185350d2705476d74baa6909782) )
+ ROM_LOAD16_BYTE( "3js_28.rom", 0x0c0001, 0x20000, CRC(8ba934e6) SHA1(b9fb1d000a90cf2dbe2113130939c146f16a776e) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "3js_gfx5.rom", 0x200000, 0x80000, CRC(94b58f82) SHA1(937e7bb74e47f7ed670f63cdf7e502cf6ffe09c8), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "3js_gfx7.rom", 0x200002, 0x80000, CRC(df4fb386) SHA1(4eece42595084dbab1fa2c603f231fc67efb292d), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "3js_gfx6.rom", 0x200004, 0x80000, CRC(c22c5bd8) SHA1(4dd3598ca9cbbceabfb28b1b0d8a4879fcdb9a13), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "3js_gfx8.rom", 0x200006, 0x80000, CRC(f9cfd08b) SHA1(cd55ef014705d8b07c3eb9dafdbf2a831ea25b7c), ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "3js_09.rom", 0x00000, 0x08000, CRC(21ce044c) SHA1(425fd8d33d54f35ef90d68a7530db7a0eafb600d) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "3js_18.rom", 0x000000, 0x20000, CRC(ac6e307d) SHA1(b490ce625bb7ce0904b0fd121fbfbd5252790f7a) )
+ ROM_LOAD( "3js_19.rom", 0x020000, 0x20000, CRC(068741db) SHA1(ab48aff639a7ac218b7d5304145e10e92d61fd9f) )
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sk2h21.key", 0x000000, 0x000080, CRC(287d8a40) SHA1(46aa717f599f88d32afb5ecc0bf43c2cbe6892d0) )
+ROM_END
+
+ROM_START( sk2h22 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "cx2.040", 0x00000, 0x20000, CRC(c01a6d2f) SHA1(c1e69e075bb01141c026bf0722a64659e1802184) )
+ ROM_CONTINUE( 0x80000, 0x20000 )
+ ROM_CONTINUE( 0x40000, 0x20000 )
+ ROM_CONTINUE( 0xc0000, 0x20000 )
+ ROM_LOAD16_BYTE( "cx1.040", 0x00001, 0x20000, CRC(fd95e677) SHA1(42a10e73bd30498dc39cd66abf73680799ebe8b0) )
+ ROM_CONTINUE( 0x80001, 0x20000 )
+ ROM_CONTINUE( 0x40001, 0x20000 )
+ ROM_CONTINUE( 0xc0001, 0x20000 )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tx-a.160", 0x000000, 0x80000, CRC(ae348da2) SHA1(e86ab38e75c46ff2a4fa974fbbd3c2d2f67cef36), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000004, 0x80000 )
+ ROM_CONTINUE( 0x200000, 0x80000 )
+ ROM_CONTINUE( 0x200004, 0x80000 )
+ ROMX_LOAD( "tx-b.160", 0x000002, 0x80000, CRC(384a6db0) SHA1(57273edce545a7fb4026cb4c705d97d71f24ea6f), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000006, 0x80000 )
+ ROM_CONTINUE( 0x200002, 0x80000 )
+ ROM_CONTINUE( 0x200006, 0x80000 )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 )
+ ROM_LOAD( "9", 0x00000, 0x08000, CRC(86fe8a97) SHA1(cab82bcd0f49bcb40201b439cfdd10266f46752a) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "18", 0x00000, 0x20000, CRC(c04be720) SHA1(2e544e0a0358b6afbdf826d35d9c4c59e4787a93) )
+ ROM_LOAD( "19", 0x20000, 0x20000, CRC(fbb8d8c1) SHA1(8a7689bb7ed56243333133cbacf01a0ae825201e) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sk2h31.key", 0x000000, 0x000080, CRC(d741a7b6) SHA1(c7b64e8634945cc8e8f7f508b1bb7ad5ccf95c83) )
+ROM_END
+
+ROM_START( sk2h31 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "k6b.040", 0x000000, 0x80000, CRC(7b365108) SHA1(e4ef6e7267ecf36d8b15c7df0351b38777cd559d) )
+ ROM_LOAD16_BYTE( "k6a.040", 0x000001, 0x80000, CRC(10488a51) SHA1(061d5139f4289cbca9e0a743954d9c65a9384c06) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "k6a.160", 0x000000, 0x80000, CRC(a121180d) SHA1(9501399479a5892db0c818637459f77540794b85), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000004, 0x80000 )
+ ROM_CONTINUE( 0x200000, 0x80000 )
+ ROM_CONTINUE( 0x200004, 0x80000 )
+ ROMX_LOAD( "k6b.160", 0x000002, 0x80000, CRC(a4db96c4) SHA1(6798c0cbd9a1f8f4704c5cb9e19e8873149d3c33), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000006, 0x80000 )
+ ROM_CONTINUE( 0x200002, 0x80000 )
+ ROM_CONTINUE( 0x200006, 0x80000 )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 )
+ ROM_LOAD( "9", 0x00000, 0x08000, CRC(86fe8a97) SHA1(cab82bcd0f49bcb40201b439cfdd10266f46752a) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "18", 0x00000, 0x20000, CRC(c04be720) SHA1(2e544e0a0358b6afbdf826d35d9c4c59e4787a93) )
+ ROM_LOAD( "19", 0x20000, 0x20000, CRC(fbb8d8c1) SHA1(8a7689bb7ed56243333133cbacf01a0ae825201e) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sk2h31.key", 0x000000, 0x000080, CRC(d741a7b6) SHA1(c7b64e8634945cc8e8f7f508b1bb7ad5ccf95c83) )
+ROM_END
+
+ROM_START( sk2h31q )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "k6b.040", 0x000000, 0x80000, CRC(7b365108) SHA1(e4ef6e7267ecf36d8b15c7df0351b38777cd559d) )
+ ROM_LOAD16_BYTE( "k6a.040", 0x000001, 0x80000, CRC(10488a51) SHA1(061d5139f4289cbca9e0a743954d9c65a9384c06) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "k6a.160", 0x000000, 0x80000, CRC(a121180d) SHA1(9501399479a5892db0c818637459f77540794b85) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000004, 0x80000 )
+ ROM_CONTINUE( 0x200000, 0x80000 )
+ ROM_CONTINUE( 0x200004, 0x80000 )
+ ROMX_LOAD( "k6b.160", 0x000002, 0x80000, CRC(a4db96c4) SHA1(6798c0cbd9a1f8f4704c5cb9e19e8873149d3c33) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000006, 0x80000 )
+ ROM_CONTINUE( 0x200002, 0x80000 )
+ ROM_CONTINUE( 0x200006, 0x80000 )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sk2h31.key", 0x000000, 0x000080, CRC(d741a7b6) SHA1(c7b64e8634945cc8e8f7f508b1bb7ad5ccf95c83) )
+ROM_END
+
+ROM_START( sk2h32 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "3js.800", 0x000000, 0x100000, CRC(812f9200) SHA1(ddf4261c21762e8168d83393a59aa1450762a89a) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "k6a.160", 0x000000, 0x80000, CRC(a121180d) SHA1(9501399479a5892db0c818637459f77540794b85), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000004, 0x80000 )
+ ROM_CONTINUE( 0x200000, 0x80000 )
+ ROM_CONTINUE( 0x200004, 0x80000 )
+ ROMX_LOAD( "k6b.160", 0x000002, 0x80000, CRC(a4db96c4) SHA1(6798c0cbd9a1f8f4704c5cb9e19e8873149d3c33), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000006, 0x80000 )
+ ROM_CONTINUE( 0x200002, 0x80000 )
+ ROM_CONTINUE( 0x200006, 0x80000 )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 )
+ ROM_LOAD( "9", 0x00000, 0x08000, CRC(86fe8a97) SHA1(cab82bcd0f49bcb40201b439cfdd10266f46752a) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "18", 0x00000, 0x20000, CRC(c04be720) SHA1(2e544e0a0358b6afbdf826d35d9c4c59e4787a93) )
+ ROM_LOAD( "19", 0x20000, 0x20000, CRC(fbb8d8c1) SHA1(8a7689bb7ed56243333133cbacf01a0ae825201e) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sk2h31.key", 0x000000, 0x000080, CRC(d741a7b6) SHA1(c7b64e8634945cc8e8f7f508b1bb7ad5ccf95c83) )
+ROM_END
+
+ROM_START( sk2h32q )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "3js.800", 0x000000, 0x100000, CRC(812f9200) SHA1(ddf4261c21762e8168d83393a59aa1450762a89a) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "k6a.160", 0x000000, 0x80000, CRC(a121180d) SHA1(9501399479a5892db0c818637459f77540794b85) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000004, 0x80000 )
+ ROM_CONTINUE( 0x200000, 0x80000 )
+ ROM_CONTINUE( 0x200004, 0x80000 )
+ ROMX_LOAD( "k6b.160", 0x000002, 0x80000, CRC(a4db96c4) SHA1(6798c0cbd9a1f8f4704c5cb9e19e8873149d3c33) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000006, 0x80000 )
+ ROM_CONTINUE( 0x200002, 0x80000 )
+ ROM_CONTINUE( 0x200006, 0x80000 )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sk2h31.key", 0x000000, 0x000080, CRC(d741a7b6) SHA1(c7b64e8634945cc8e8f7f508b1bb7ad5ccf95c83) )
+ROM_END
+
+ROM_START( sk2h33 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "c-c47b.040", 0x000000, 0x80000, CRC(b1809761) SHA1(99a17ed193654f61622eb721e20b69894c96d3d8) )
+ ROM_LOAD16_BYTE( "a-2402.040", 0x000001, 0x80000, CRC(4fab4232) SHA1(d8ffd06cce73e1c4bc6abb69a2e81277ce901563) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-5m.7a", 0x200000, 0x80000, CRC(291f0f0b) SHA1(094baf0f960f25fc2525b3b1cc378a49d9a0955d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-7m.9a", 0x200002, 0x80000, CRC(3edeb949) SHA1(c155698dd9ee9eb24bbc97a21118ef2e897ea82f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-6m.8a", 0x200004, 0x80000, CRC(1abd14d6) SHA1(dffff3126f102b4ec028a81405fc5b9bd7bb65b3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-8m.10a", 0x200006, 0x80000, CRC(b27948e3) SHA1(870d5d23f56798831c641e877ea94217058b2ddc) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 )
+ ROM_LOAD( "9", 0x00000, 0x08000, CRC(86fe8a97) SHA1(cab82bcd0f49bcb40201b439cfdd10266f46752a) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "18", 0x00000, 0x20000, CRC(c04be720) SHA1(2e544e0a0358b6afbdf826d35d9c4c59e4787a93) )
+ ROM_LOAD( "19", 0x20000, 0x20000, CRC(fbb8d8c1) SHA1(8a7689bb7ed56243333133cbacf01a0ae825201e) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sk2h31.key", 0x000000, 0x000080, CRC(d741a7b6) SHA1(c7b64e8634945cc8e8f7f508b1bb7ad5ccf95c83) )
+ROM_END
+
+ROM_START( sk2h33q )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "c-c47b.040", 0x000000, 0x80000, CRC(b1809761) SHA1(99a17ed193654f61622eb721e20b69894c96d3d8) )
+ ROM_LOAD16_BYTE( "a-2402.040", 0x000001, 0x80000, CRC(4fab4232) SHA1(d8ffd06cce73e1c4bc6abb69a2e81277ce901563) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-5m.7a", 0x200000, 0x80000, CRC(291f0f0b) SHA1(094baf0f960f25fc2525b3b1cc378a49d9a0955d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-7m.9a", 0x200002, 0x80000, CRC(3edeb949) SHA1(c155698dd9ee9eb24bbc97a21118ef2e897ea82f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-6m.8a", 0x200004, 0x80000, CRC(1abd14d6) SHA1(dffff3126f102b4ec028a81405fc5b9bd7bb65b3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-8m.10a", 0x200006, 0x80000, CRC(b27948e3) SHA1(870d5d23f56798831c641e877ea94217058b2ddc) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sk2h31.key", 0x000000, 0x000080, CRC(d741a7b6) SHA1(c7b64e8634945cc8e8f7f508b1bb7ad5ccf95c83) )
+ROM_END
+
+ROM_START( sk2h34 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "one.800", 0x000000, 0x100000, CRC(0507584d) SHA1(5a9df64b7c2c54c5aa0d4c9486c7404157c6119e) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-5m.7a", 0x200000, 0x80000, CRC(291f0f0b) SHA1(094baf0f960f25fc2525b3b1cc378a49d9a0955d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-7m.9a", 0x200002, 0x80000, CRC(3edeb949) SHA1(c155698dd9ee9eb24bbc97a21118ef2e897ea82f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-6m.8a", 0x200004, 0x80000, CRC(1abd14d6) SHA1(dffff3126f102b4ec028a81405fc5b9bd7bb65b3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-8m.10a", 0x200006, 0x80000, CRC(b27948e3) SHA1(870d5d23f56798831c641e877ea94217058b2ddc) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 )
+ ROM_LOAD( "9", 0x00000, 0x08000, CRC(86fe8a97) SHA1(cab82bcd0f49bcb40201b439cfdd10266f46752a) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "18", 0x00000, 0x20000, CRC(c04be720) SHA1(2e544e0a0358b6afbdf826d35d9c4c59e4787a93) )
+ ROM_LOAD( "19", 0x20000, 0x20000, CRC(fbb8d8c1) SHA1(8a7689bb7ed56243333133cbacf01a0ae825201e) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sk2h31.key", 0x000000, 0x000080, CRC(d741a7b6) SHA1(c7b64e8634945cc8e8f7f508b1bb7ad5ccf95c83) )
+ROM_END
+
+ROM_START( sk2h34q )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "one.800", 0x000000, 0x100000, CRC(0507584d) SHA1(5a9df64b7c2c54c5aa0d4c9486c7404157c6119e) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-5m.7a", 0x200000, 0x80000, CRC(291f0f0b) SHA1(094baf0f960f25fc2525b3b1cc378a49d9a0955d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-7m.9a", 0x200002, 0x80000, CRC(3edeb949) SHA1(c155698dd9ee9eb24bbc97a21118ef2e897ea82f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-6m.8a", 0x200004, 0x80000, CRC(1abd14d6) SHA1(dffff3126f102b4ec028a81405fc5b9bd7bb65b3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-8m.10a", 0x200006, 0x80000, CRC(b27948e3) SHA1(870d5d23f56798831c641e877ea94217058b2ddc) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sk2h31.key", 0x000000, 0x000080, CRC(d741a7b6) SHA1(c7b64e8634945cc8e8f7f508b1bb7ad5ccf95c83) )
+ROM_END
+
+ROM_START( sk2h35 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "c-d140.040", 0x000000, 0x80000, CRC(e6d933a6) SHA1(c1f08bbbfc855bbc96b844eed7b1e4f9a0a07fbf) )
+ ROM_LOAD16_BYTE( "a-0050.040", 0x000001, 0x80000, CRC(403eaead) SHA1(ce6d061e5ee91de779c8d0c19bed273dc4769900) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-5m.7a", 0x200000, 0x80000, CRC(291f0f0b) SHA1(094baf0f960f25fc2525b3b1cc378a49d9a0955d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-7m.9a", 0x200002, 0x80000, CRC(3edeb949) SHA1(c155698dd9ee9eb24bbc97a21118ef2e897ea82f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-6m.8a", 0x200004, 0x80000, CRC(1abd14d6) SHA1(dffff3126f102b4ec028a81405fc5b9bd7bb65b3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-8m.10a", 0x200006, 0x80000, CRC(b27948e3) SHA1(870d5d23f56798831c641e877ea94217058b2ddc) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sk2h21.key", 0x000000, 0x000080, CRC(287d8a40) SHA1(46aa717f599f88d32afb5ecc0bf43c2cbe6892d0) )
+ROM_END
+
+
+ROM_START( sk3p1 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sk3p1.23", 0x000000, 0x80000, CRC(b5f70324) SHA1(9cd8ca9dab1b2642810f50534186b575b1378ab8) )
+ ROM_LOAD16_WORD_SWAP( "sk3p1.22", 0x080000, 0x80000, CRC(5c453e70) SHA1(0ffad50e2f93881c6e9848f707eec7d0ee18f688) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2(ch)_07.9a", 0x200004, 0x80000, CRC(cc9006c9) SHA1(cfcbec3a67052268a7739538aa28a6391fe5400e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sk3p1.key", 0x000000, 0x000080, CRC(8ac48367) SHA1(aeeab2c3436009d05dd9caa1b1929af4d7e607ae) )
+ROM_END
+
+ROM_START( sk3p2 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sk3p1.23", 0x000000, 0x80000, CRC(b5f70324) SHA1(9cd8ca9dab1b2642810f50534186b575b1378ab8) )
+ ROM_LOAD16_WORD_SWAP( "sk3p2.22", 0x080000, 0x80000, CRC(55ed1b42) SHA1(0ea12b9298721aac20f351a894b4e7587bb38f88) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2(ch)_07.9a", 0x200004, 0x80000, CRC(cc9006c9) SHA1(cfcbec3a67052268a7739538aa28a6391fe5400e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wofch.key", 0x000000, 0x000080, CRC(23f2d0bb) SHA1(48ba9300bc2136e9583754a51d5ab2532eca85c6) )
+ROM_END
+
+ROM_START( sk3p3 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sk3p3.23", 0x000000, 0x80000, CRC(29389b7d) SHA1(ccc4a7c4cb43abe9e8f9fd0d1a813f722473784f) )
+ ROM_LOAD16_WORD_SWAP( "sk3p3.22", 0x080000, 0x80000, CRC(a959df0c) SHA1(ec6d9f1f9363dee08ea267fab28d313e0b46d3da) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2(ch)_07.9a", 0x200004, 0x80000, CRC(cc9006c9) SHA1(cfcbec3a67052268a7739538aa28a6391fe5400e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wofch.key", 0x000000, 0x000080, CRC(23f2d0bb) SHA1(48ba9300bc2136e9583754a51d5ab2532eca85c6) )
+ROM_END
+
+
+ROM_START( slammastud )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "mbu_23ed.8f", 0x000000, 0x80000, CRC(7697273f) SHA1(d42ce6414b42db14305f0497fb760e8a3e868b9d) )
+ ROM_LOAD16_BYTE( "mbu_24b.9e", 0x080000, 0x20000, CRC(95d5e729) SHA1(df3be896e55c92eb50887a4317178a3d11048433) )
+ ROM_LOAD16_BYTE( "mbu_28b.9f", 0x080001, 0x20000, CRC(b1c7cbcb) SHA1(cf5ad72be4a055db876e7347b1826325b9bf81d9) )
+ ROM_LOAD16_BYTE( "mbu_25b.10e", 0x0c0000, 0x20000, CRC(a50d3fd4) SHA1(dc3d108c3bc27f45b8b2e11919ba2a86e05b41d1) )
+ ROM_LOAD16_BYTE( "mbu_29b.10f", 0x0c0001, 0x20000, CRC(08e32e56) SHA1(70ad78b079f777ec02089f0df20ce2baad7adce5) )
+ ROM_LOAD16_WORD_SWAP( "mbu_21a.6f", 0x100000, 0x80000, CRC(d5007b05) SHA1(c55e55908aeda40ca2318c76ccbc05d333676875) )
+ ROM_LOAD16_WORD_SWAP( "mbu_20a.5f", 0x180000, 0x80000, CRC(fc848af5) SHA1(cd3f6e50779b89ee57a9d08bfa1d58dea286457c) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "mb-1m.3a", 0x000000, 0x80000, CRC(41468e06) SHA1(fb365798f2889a20eebaea2393c9c2c8827003c4) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-3m.5a", 0x000002, 0x80000, CRC(f453aa9e) SHA1(24a103dc6f0dc96f8d0f6164ad732909c9cd2d6a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-2m.4a", 0x000004, 0x80000, CRC(2ffbfea8) SHA1(13e30133664a009686e1114c92b558bdbb91ea32) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-4m.6a", 0x000006, 0x80000, CRC(1eb9841d) SHA1(685da3e011a96b36be9f639a241b2f8f27da4629) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-5m.7a", 0x200000, 0x80000, CRC(506b9dc9) SHA1(933bf2fb9bcc1a408f961f0e7052da80144bddad) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-7m.9a", 0x200002, 0x80000, CRC(aff8c2fb) SHA1(ce37a6d5b1eb58c2d74f23f84ec824c214c93217) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-6m.8a", 0x200004, 0x80000, CRC(b76c70e9) SHA1(c21e255815ec9a985919dbd760ed266c28bd47cd) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-8m.10a", 0x200006, 0x80000, CRC(e60c9556) SHA1(b91c14092aa8dbb0922d96998123ef1970a658f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-10m.3c", 0x400000, 0x80000, CRC(97976ff5) SHA1(ec9d3460816ab971a02fbce42960283091777e47) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-12m.5c", 0x400002, 0x80000, CRC(b350a840) SHA1(2b8b996cd08051e7e8e134bff5448775d78058a0) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-11m.4c", 0x400004, 0x80000, CRC(8fb94743) SHA1(294f6182c8a41b640d1f57cb5e3a2abce3b06482) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-13m.6c", 0x400006, 0x80000, CRC(da810d5f) SHA1(392bbd405244b8c99024c9228cfec6a7ef0accdb) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "mb_qa.5k", 0x00000, 0x08000, CRC(e21a03c4) SHA1(98c03fd2c9b6bf8a4fc25a4edca87fff7c3c3819) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x8000, "user1", 0 )
+ ROM_COPY( "audiocpu", 0x00000, 0x00000, 0x8000 )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "mb-q1.1k", 0x000000, 0x80000, CRC(0630c3ce) SHA1(520fc74c5c3638f611fa2f1b5efb08b91747e29b) )
+ ROM_LOAD( "mb-q2.2k", 0x080000, 0x80000, CRC(354f9c21) SHA1(1dc6b39791fd0f760697f409a6b62361a7bf62e9) )
+ ROM_LOAD( "mb-q3.3k", 0x100000, 0x80000, CRC(7838487c) SHA1(056b7da05cfca46873edacd674ca25c70855c6db) )
+ ROM_LOAD( "mb-q4.4k", 0x180000, 0x80000, CRC(ab66e087) SHA1(066ea69a0157e8647eea3c44d0a1843898860678) )
+ ROM_LOAD( "mb-q5.1m", 0x200000, 0x80000, CRC(c789fef2) SHA1(10d1e3d92288fccd4e064a3716a788a165efc3c9) )
+ ROM_LOAD( "mb-q6.2m", 0x280000, 0x80000, CRC(ecb81b61) SHA1(e339f21ae47de4782f3b338befcdac659c3503f6) )
+ ROM_LOAD( "mb-q7.3m", 0x300000, 0x80000, CRC(041e49ba) SHA1(3220b033a5c0cfbbe75c0c113cf2db39fb093a7e) )
+ ROM_LOAD( "mb-q8.4m", 0x380000, 0x80000, CRC(59fe702a) SHA1(807178dfc6d864e49fd7aabb5c4895835cf0e85b) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "slammastud.key", 0x000000, 0x000080, CRC(ade2c2a3) SHA1(8d7a4249cf221ac24c4c66f7151a9edd7f263de5) )
+ROM_END
+
+
+ROM_START( stridergf )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "30.11f", 0x00000, 0x20000, CRC(da997474) SHA1(3e4ac98f9a6967d61899281b31c7de779723397b) )
+ ROM_LOAD16_BYTE( "35.11h", 0x00001, 0x20000, CRC(5463aaa3) SHA1(e2d07ec2d818e9a2e2d7a77ff0309ae4011c0083) )
+ ROM_LOAD16_BYTE( "31.12f", 0x40000, 0x20000, CRC(d20786db) SHA1(c9c75488e6bb37cfd0d56073faf87ff5713bc9a0) )
+ ROM_LOAD16_BYTE( "36.12h", 0x40001, 0x20000, CRC(21aa2863) SHA1(446dc9280630318deb423531210a4eedfb4adfa6) )
+ ROM_LOAD16_WORD_SWAP( "st-14.8h", 0x80000, 0x80000, CRC(9b3cfc08) SHA1(a7d7f270a097437affa845d80bed82a1fa874878) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "stridefgf.8a", 0x000000, 0x80000, CRC(f92cc010) SHA1(7cec7f7cdc7efce28fd49ae0220a41d2fa811fd0) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "stridergf.10a", 0x000002, 0x80000, CRC(9abd7b1e) SHA1(cb00c37ad5b53daee8a1d7bb949adc3559561d13) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "stridergf.4a", 0x000004, 0x80000, CRC(0dcc68b1) SHA1(9c3179082944a6ca105046a02cea38170e91696f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "stridergf.6a", 0x000006, 0x80000, CRC(77f5debd) SHA1(796a1b6cda78cb5612c494dff52c3ac12c1d6531) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "st-1.7a", 0x200000, 0x80000, CRC(005f000b) SHA1(e6f65af7cc3295be9efaaded352e7ae6320b4133) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "st-10.9a", 0x200002, 0x80000, CRC(b9441519) SHA1(bb0926dc484dae4f64c5e5a6bce20afdc7aeba55) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "st-4.3a", 0x200004, 0x80000, CRC(b7d04e8b) SHA1(5c5a079baa694927c33d0e0c23e5ff09d6c9d985) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "st-8.5a", 0x200006, 0x80000, CRC(6b4713b4) SHA1(759b8b1fc7a5c4b00d74a27c2dd11667db44b09e) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x8000, "stars", 0 )
+ ROM_COPY( "gfx", 0x000000, 0x000000, 0x8000 )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "09.12b", 0x00000, 0x08000, CRC(2ed403bc) SHA1(4ce863ea40d789db5a7cfce91d2c7c720deb9be5) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "18.11c", 0x00000, 0x20000, CRC(4386bc80) SHA1(fb2b261995aeacfa13e7ee40b1a973dfb178f015) )
+ ROM_LOAD( "19.12c", 0x20000, 0x20000, CRC(444536d7) SHA1(a14f5de2f6b5b29ae5161dca1f8c08c566301a91) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "strider.key", 0x000000, 0x000080, CRC(39065af5) SHA1(ffff84fd87e851718c564062564970677da923c9) )
+ROM_END
+
+ROM_START( stridergh )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "30.11f", 0x00000, 0x20000, CRC(da997474) SHA1(3e4ac98f9a6967d61899281b31c7de779723397b) )
+ ROM_LOAD16_BYTE( "35.11h", 0x00001, 0x20000, CRC(5463aaa3) SHA1(e2d07ec2d818e9a2e2d7a77ff0309ae4011c0083) )
+ ROM_LOAD16_BYTE( "31.12f", 0x40000, 0x20000, CRC(d20786db) SHA1(c9c75488e6bb37cfd0d56073faf87ff5713bc9a0) )
+ ROM_LOAD16_BYTE( "36.12h", 0x40001, 0x20000, CRC(21aa2863) SHA1(446dc9280630318deb423531210a4eedfb4adfa6) )
+ ROM_LOAD16_WORD_SWAP( "st-14.8h", 0x80000, 0x80000, CRC(9b3cfc08) SHA1(a7d7f270a097437affa845d80bed82a1fa874878) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "stridergh.8a", 0x000000, 0x80000, CRC(ea572e97) SHA1(60fed8d1375334a815e18365a626eece9d07b1cd) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "stridergh.10a", 0x000002, 0x80000, CRC(d0bb852f) SHA1(0079418eafd751cd7a47053ef30a2042626fea8f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "stridergh.4a", 0x000004, 0x80000, CRC(8c408787) SHA1(291c9bd8d73e3ed9913164a034098ba94da4c03a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "stridergh.6a", 0x000006, 0x80000, CRC(07ba4914) SHA1(007d978a0d100c6dc9d1942e5b641b3a4e8ad678) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "st-1.7a", 0x200000, 0x80000, CRC(005f000b) SHA1(e6f65af7cc3295be9efaaded352e7ae6320b4133) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "st-10.9a", 0x200002, 0x80000, CRC(b9441519) SHA1(bb0926dc484dae4f64c5e5a6bce20afdc7aeba55) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "st-4.3a", 0x200004, 0x80000, CRC(b7d04e8b) SHA1(5c5a079baa694927c33d0e0c23e5ff09d6c9d985) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "st-8.5a", 0x200006, 0x80000, CRC(6b4713b4) SHA1(759b8b1fc7a5c4b00d74a27c2dd11667db44b09e) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x8000, "stars", 0 )
+ ROM_COPY( "gfx", 0x000000, 0x000000, 0x8000 )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "09.12b", 0x00000, 0x08000, CRC(2ed403bc) SHA1(4ce863ea40d789db5a7cfce91d2c7c720deb9be5) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "18.11c", 0x00000, 0x20000, CRC(4386bc80) SHA1(fb2b261995aeacfa13e7ee40b1a973dfb178f015) )
+ ROM_LOAD( "19.12c", 0x20000, 0x20000, CRC(444536d7) SHA1(a14f5de2f6b5b29ae5161dca1f8c08c566301a91) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "strider.key", 0x000000, 0x000080, CRC(39065af5) SHA1(ffff84fd87e851718c564062564970677da923c9) )
+ROM_END
+
+
+ROM_START( tk2c1 ) // same as tk2h1 except for first rom
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2c1.23", 0x000000, 0x80000, CRC(9725b5f4) SHA1(28c72348769eac95753dd469859edb8ca1f0b120) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( tk2c2 ) // same as tk2h1 except for first rom
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2c2.23", 0x000000, 0x80000, CRC(eac7f675) SHA1(e5df8cfeb1ed32e7a8c5bb8e40035b6f8e5b6ec5) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( tk2c3 ) // same as tk2h1 except for first rom
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2c3.23", 0x000000, 0x80000, CRC(d3d14501) SHA1(700c41b9e03c8568291266e5b991dd34e1c6f9c2) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( tk2c4 ) // same as tk2h1 except for first rom
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2c4.23", 0x000000, 0x80000, CRC(f48bb903) SHA1(4aff9e8beb6a6bd32c9fdb83e28effa42234ab5c) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( tk2c5 ) // same as tk2h1 except for program roms
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2c5.23", 0x000000, 0x80000, CRC(e91705df) SHA1(8c6969aae190b9e99d0879a7159718d8c2e9523c) )
+ ROM_LOAD16_WORD_SWAP( "tk2c19.22", 0x080000, 0x80000, CRC(4b2591c4) SHA1(8ba8efa94057fd7d183b9266009051ac81fe0581) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( tk2c6 ) // same as tk2h1 except for program roms - colours are a bit weird
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2j_23c.8f", 0x000000, 0x80000, CRC(9b215a68) SHA1(fc83ed26441fbfb15e21b093c7a6bed44b586e51) ) // from wofj
+ ROM_LOAD16_WORD_SWAP( "tk2c6.22", 0x080000, 0x80000, CRC(9fe4adf4) SHA1(ff1713880ad8b81d23f40dc3842aabcf6f444d65) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( tk2c7 ) // same as tk2h1 except for first rom
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2c7.23", 0x000000, 0x80000, CRC(44d321f3) SHA1(abea7e417e05413ed41ab222d5ccbdf6dcbecc53) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( tk2c8 ) // same as tk2h1 except for first rom
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2c8.23", 0x000000, 0x80000, CRC(bba39347) SHA1(296f8d124bde76dc5114a6210ed618dfa4d07d57) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( tk2c9 ) // same as tk2h1 except for first rom
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2c9.23", 0x000000, 0x80000, CRC(4f480a16) SHA1(b000f1ec2742e9403943b95bdd890069378dc9ed) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( tk2c10 ) // same as tk2h1 except for first rom
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2c10.23", 0x000000, 0x80000, CRC(643f9ef9) SHA1(2fe32edd38c2380a0dd7f9fc9bc44c4049d84646) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( tk2c11 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2c11.23", 0x000000, 0x80000, CRC(58ea0ddc) SHA1(3510b09abd261a896fda855130fd867c92aa030b) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( tk2c12 ) // same as tk2h1 except for first rom
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2c12.23", 0x000000, 0x80000, CRC(98878d8d) SHA1(8a23813e0df0d9ef8fa2761ac355ef5da0f44021) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( tk2c13 ) // same as tk2h1 except for program roms
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2c13.23", 0x000000, 0x80000, CRC(c1c0192c) SHA1(501225c58e25aaea4c0a4bb348f6a0150a742762) )
+ ROM_LOAD16_WORD_SWAP( "tk2c19.22", 0x080000, 0x80000, CRC(4b2591c4) SHA1(8ba8efa94057fd7d183b9266009051ac81fe0581) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( tk2c14 ) // same as tk2h1 except for first rom
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2c14.23", 0x000000, 0x80000, CRC(5bd65308) SHA1(15065656433bbf582c1910180a04298c13ff0b60) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( tk2c15 ) // same as tk2h1 except for first rom
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2c15.23", 0x000000, 0x80000, CRC(86b71709) SHA1(7a5c12966520b48d23f6a7f5661746cb9d714939) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( tk2c16 ) // same as tk2h1 except for first rom
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2c16.23", 0x000000, 0x80000, CRC(49b3eaf1) SHA1(fc6c5b0efbb4776bdfb47097ac58a9f6b452b136) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( tk2c17 ) // same as tk2h1 except for first rom
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2c20.23", 0x000000, 0x80000, CRC(341aa13d) SHA1(eed3be83078a86675068c52ca835fc27136a746b) ) // from tk2c20
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( tk2c18 ) // same as tk2h1 except for program roms
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2c18.23", 0x000000, 0x80000, CRC(c6497c7d) SHA1(c6235edc15ccff4e8813690b1c4ea25de2b9858b) )
+ ROM_LOAD16_WORD_SWAP( "tk2c19.22", 0x080000, 0x80000, CRC(4b2591c4) SHA1(8ba8efa94057fd7d183b9266009051ac81fe0581) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( tk2c19 ) // same as tk2h1 except for program roms
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2j_23c.8f", 0x000000, 0x80000, CRC(9b215a68) SHA1(fc83ed26441fbfb15e21b093c7a6bed44b586e51) ) // from wofj
+ ROM_LOAD16_WORD_SWAP( "tk2c19.22", 0x080000, 0x80000, CRC(4b2591c4) SHA1(8ba8efa94057fd7d183b9266009051ac81fe0581) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( tk2c20 ) // same as tk2h1 except for program roms
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2c20.23", 0x000000, 0x80000, CRC(341aa13d) SHA1(eed3be83078a86675068c52ca835fc27136a746b) )
+ ROM_LOAD16_WORD_SWAP( "tk2c19.22", 0x080000, 0x80000, CRC(4b2591c4) SHA1(8ba8efa94057fd7d183b9266009051ac81fe0581) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( tk2c21 ) // same as tk2h1 except for first rom
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2c21.23", 0x000000, 0x80000, CRC(288ab565) SHA1(834e2d5cef1d0ae486e201bedf6281540c5ded13) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( tk2c22 ) // same as tk2h1 except for first rom
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2c22.23", 0x000000, 0x80000, CRC(420b3a40) SHA1(6d06b980f4afdcde5ff4cc2509e3ee398b79a19c) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( tk2c23 ) // same as tk2h1 except for first rom
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2c23.23", 0x000000, 0x80000, CRC(f46755f1) SHA1(f6efa2d886f89d6ab95f919356b574a9b87ba69b) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( tk2h1 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "xtk2j23h.bin", 0x000000, 0x80000, CRC(84d38575) SHA1(537f12180adfcea7bceb24b0fa9af9165dbbe2e4) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( tk2h2 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2j.23c", 0x00000, 0x80000, CRC(432a74ff) SHA1(5675970143134c0cc3ae4964a8817fafee7876fa) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( tk2h3 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2j2.23c", 0x00000, 0x80000, CRC(671b0c62) SHA1(7bba05e5e513edd878a30ef998b3beb4fd053cc6) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( tk2h4 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2h4.23", 0x000000, 0x80000, CRC(8fa725f0) SHA1(81c89f5bf1d180356a66d1cd216ea73c6e69f6df) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( tk2h5 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2h5_23c.8f", 0x000000, 0x80000, CRC(e1dd01d8) SHA1(2d243fa39c784ce5164c7a58ffd4884a60eac81c) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x480000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+ /// The load procedure for the chinese language is unknown
+ // These 2 roms have 0x10000 blank, then 0x9c00 data (chinese), then the remainder is blank
+ ROM_LOAD64_WORD( "tk2h5.gfx5", 0x400000, 0x10000, CRC(ec6e8689) SHA1(8e722292bfb5a4e8658bbd411a0ccce0956f9ad4))//, ROM_SKIP(1))// , ROM_GROUPWORD | ROM_SKIP(2) )
+ ROM_CONTINUE( 0x400000, 0x8000 )
+ ROM_CONTINUE( 0x400002, 0x8000 )
+ ROM_IGNORE(0x60000)
+ ROM_LOAD64_WORD( "tk2h5.gfx6", 0x400004, 0x10000, CRC(722787df) SHA1(31720e94195055a494bc923c75e20882b8b05f4a))//, ROM_SKIP(1))// , ROM_GROUPWORD | ROM_SKIP(2) )
+ ROM_CONTINUE( 0x400004, 0x8000 )
+ ROM_CONTINUE( 0x400006, 0x8000 )
+ ROM_IGNORE(0x60000)
+ //ROM_COPY( "gfx", 0x400000, 0x040000, 0x20000 ) // text on 3 intro screens
+ //ROM_COPY( "gfx", 0x400000, 0x380000, 0x20000 ) // text on actor descriptions
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( tk2h6 ) // same as tk2h1 except for first rom
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2h6.23", 0x000000, 0x80000, CRC(08631657) SHA1(2d2e0f302dbd64bb8a37577171e6e2194524abdf) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wofch.key", 0x000000, 0x000080, CRC(23f2d0bb) SHA1(48ba9300bc2136e9583754a51d5ab2532eca85c6) )
+ROM_END
+
+// same as tk2h1 except first rom
+ROM_START( tk2h7 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2h7.23", 0x000000, 0x80000, CRC(93347af2) SHA1(2b2f02e3529ebaa06ea55b5648aa988d0542f1c6) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+// same as tk2h1 except first rom
+ROM_START( tk2h8 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2h8.23", 0x000000, 0x80000, CRC(e5534d5a) SHA1(497abf790ad0450545f02a1614ef197492b71159) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+// same as tk2h1 except for the program roms
+ROM_START( tk2h9 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2h9.23", 0x000000, 0x80000, CRC(cfce0b11) SHA1(16f2376c8666cd48ea4b30711b0a3b1508a97482) )
+ ROM_LOAD16_WORD_SWAP( "tk2h9.22", 0x080000, 0x80000, CRC(ae09e457) SHA1(1feb645d2371b58613db8d2eb871448b4b20041d) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+// same as tk2h1 except first rom
+ROM_START( tk2h10 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2h10.23", 0x000000, 0x80000, CRC(6dba1d2f) SHA1(310e9472d4da8ed4bdccdcd52004030b8799693c) )
+ ROM_LOAD16_WORD_SWAP( "tk2h10.22", 0x080000, 0x80000, CRC(7630fd8a) SHA1(02c2164f191c2efb647b517ee2e8f46d870f9c93) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2(ch)_07.9a", 0x200004, 0x80000, CRC(cc9006c9) SHA1(cfcbec3a67052268a7739538aa28a6391fe5400e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+// same as tk2h1 except for the program roms
+ROM_START( tk2h11 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2h11.23", 0x000000, 0x80000, CRC(a6f22395) SHA1(d2d8a6156c44383c48e4caf97799e231158b7cf2) )
+ ROM_LOAD16_WORD_SWAP( "tk2h11.22", 0x080000, 0x80000, CRC(11bcbbb9) SHA1(bebef41b4ce27fef3f037d8188903334a41b35f4) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+// same as tk2h1 except for the program roms
+ROM_START( tk2h12 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2h12.23", 0x000000, 0x80000, CRC(6e392dd2) SHA1(b25f299dc7b8d87de1e42de97db04d3443eff167) )
+ ROM_LOAD16_WORD_SWAP( "tk2h12.22", 0x080000, 0x80000, CRC(838dff10) SHA1(56a9d5e2d9df843005f6bd0886f612a3c90b8e60) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+// same as tk2h1 except first rom
+ROM_START( tk2h13 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2h13.23", 0x000000, 0x80000, CRC(51979a5a) SHA1(9beaba7d06be4c2b893e6fd3a0dbc157537d9913) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+// same as tk2h1 except first rom
+ROM_START( tk2h14 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2h14.23", 0x000000, 0x80000, CRC(19f49030) SHA1(3e500db79361b747a75d7712f3367754ee8771c7) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( tk2h15 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2h15.23", 0x000000, 0x80000, CRC(6c1683ee) SHA1(f22df63cae994fca6955f72313dd204a4734aa94) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x0000, 0x0080, CRC(522c909c) SHA1(e0d40a36bec025402590caaffcbc4e718748348a) )
+ROM_END
+
+ROM_START( tk2h16 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2h16.23", 0x000000, 0x80000, CRC(86c23608) SHA1(0629d82779f6973514582e4a218f63429dccd080) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x0000, 0x0080, CRC(522c909c) SHA1(e0d40a36bec025402590caaffcbc4e718748348a) )
+ROM_END
+
+// same as tk2h1 except first rom
+ROM_START( tk2h17 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2h17.23", 0x000000, 0x80000, CRC(7df522ad) SHA1(dece17bd0c3a0a10bb3433fe878da4e66e84cc9f) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( tk2h18 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2h18.8f", 0x000000, 0x80000, CRC(7896998d) SHA1(7f59015ec00232f2b40836127f143415678f7058) )
+ ROM_LOAD16_WORD_SWAP( "tk2h18.7f", 0x080000, 0x80000, CRC(43e57b1a) SHA1(f7469eb77a74601f94488c23466a6648a91fcbfc) )
+ ROM_LOAD16_WORD_SWAP( "tk2h18.6f", 0x100000, 0x80000, CRC(7a5f60c0) SHA1(b4d864e39811d1407ce2ba9580bd1e230edf37ff) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2h18.7a", 0x200000, 0x80000, CRC(10d0e577) SHA1(fbf4f13a2fe64031dda5a27fdf6accfef12c1ce2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2h18.8a", 0x200002, 0x80000, CRC(e23dd70e) SHA1(58faf44c00667331c9f7980e803788e4deb1bc25) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2h18.9a", 0x200004, 0x80000, CRC(e1d7664e) SHA1(d8d6acf51f8beda71d1b8f5318cd02485bebf8b5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2h18.10a", 0x200006, 0x80000, CRC(c121ed0c) SHA1(4ad1f8f9684d5041f60a3eb9f5e9580b3daa403a) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( tk2p2 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2p2.23", 0x000000, 0x80000, CRC(898a4e67) SHA1(3f45cc2e15bd398bdc84303f6cde6322394f6456) )
+ ROM_LOAD16_WORD_SWAP( "tk2p2.22", 0x080000, 0x80000, CRC(e734ee51) SHA1(1dff1a6cccc1551a4489542ee1f5b38b2233349e) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2(ch)_07.9a", 0x200004, 0x80000, CRC(cc9006c9) SHA1(cfcbec3a67052268a7739538aa28a6391fe5400e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sk3p1.key", 0x000000, 0x000080, CRC(8ac48367) SHA1(aeeab2c3436009d05dd9caa1b1929af4d7e607ae) )
+ROM_END
+
+ROM_START( tk2p3 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2p3.8f", 0x000000, 0x80000, CRC(61cf24c1) SHA1(e075432449923e69310040a268f81b74c31f5bcc) )
+ ROM_LOAD16_WORD_SWAP( "tk2p3.7f", 0x080000, 0x80000, CRC(a3cd1c51) SHA1(459c90bea4045a8ad79a36529d169951ac802fc3) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2(ch)_07.9a", 0x200004, 0x80000, CRC(cc9006c9) SHA1(cfcbec3a67052268a7739538aa28a6391fe5400e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wofch.key", 0x000000, 0x000080, CRC(23f2d0bb) SHA1(48ba9300bc2136e9583754a51d5ab2532eca85c6) )
+ROM_END
+
+
+ROM_START( wofb )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "3-f2ab.040", 0x000000, 0x80000, CRC(61fd0a01) SHA1(a7b5bdddd7b31645e33314c1d3649e1506cecfea) )
+ ROM_LOAD16_BYTE( "1-9207.040", 0x000001, 0x80000, CRC(7f59e24c) SHA1(34c294328d00c65086622bd15e17210f07f37237) )
+ ROM_LOAD16_BYTE( "4-d4d2.010", 0x100000, 0x20000, CRC(fe5eee87) SHA1(be1230f64c1e59ae3ff3e58593070613966ac79d) )
+ ROM_LOAD16_BYTE( "2-6c41.010", 0x100001, 0x20000, CRC(739379be) SHA1(897f61527213902fda04bc28339f1f4278bf5ae9) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "5-caf3.040", 0x000000, 0x40000, CRC(c8dcaa95) SHA1(bcaeaefd40ffa1b32e80457cffcc1ceab461af1d), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000004, 0x40000 )
+ ROMX_LOAD( "6-034f.040", 0x000001, 0x40000, CRC(1ab0000c) SHA1(0d0004cc1725c38d140ecb8dc9666361b2d3e607), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000005, 0x40000 )
+ ROMX_LOAD( "7-b0fa.040", 0x000002, 0x40000, CRC(8425ff6b) SHA1(9a051089c2a492b8c63484582f95c578704b6820), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000006, 0x40000 )
+ ROMX_LOAD( "8-a6b7.040", 0x000003, 0x40000, CRC(24ce197b) SHA1(0ccdbd6f6a30e6d1479f8702c3e8561b16303550), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000007, 0x40000 )
+ ROMX_LOAD( "9-8a2c.040", 0x200000, 0x40000, CRC(9d20ef9b) SHA1(cbf3cb6bd7a73312e5061082554f2e17aae08621), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x200004, 0x40000 )
+ ROMX_LOAD( "10-7d24.040", 0x200001, 0x40000, CRC(90c93dd2) SHA1(d3d2b0bcbcbb21a41f986eb752ab114697eb9402), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x200005, 0x40000 )
+ ROMX_LOAD( "11-4171.040", 0x200002, 0x40000, CRC(219fd7e2) SHA1(af765eb7b275ed541c08e243b22b5c9f54c1a8ec), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x200006, 0x40000 )
+ ROMX_LOAD( "12-f56b.040", 0x200003, 0x40000, CRC(efc17c9a) SHA1(26429a9039bb249e17945508c16645c82f7f412a), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x200007, 0x40000 )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wofch.key", 0x000000, 0x000080, CRC(23f2d0bb) SHA1(48ba9300bc2136e9583754a51d5ab2532eca85c6) )
+ROM_END
+
+ROM_START( wofes )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "wofes.23", 0x000000, 0x80000, CRC(4935e2ce) SHA1(e6b6e6499738579b3c4f5dff44c8930257fe619b) )
+ ROM_LOAD16_WORD_SWAP( "tk2e_22b.rom", 0x080000, 0x80000, CRC(479b3f24) SHA1(9fb8ae06856fe115addfb6794c28978a4f6716ec) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-5m.7a", 0x200000, 0x80000, CRC(291f0f0b) SHA1(094baf0f960f25fc2525b3b1cc378a49d9a0955d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-7m.9a", 0x200002, 0x80000, CRC(3edeb949) SHA1(c155698dd9ee9eb24bbc97a21118ef2e897ea82f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-6m.8a", 0x200004, 0x80000, CRC(1abd14d6) SHA1(dffff3126f102b4ec028a81405fc5b9bd7bb65b3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-8m.10a", 0x200006, 0x80000, CRC(b27948e3) SHA1(870d5d23f56798831c641e877ea94217058b2ddc) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wofch.key", 0x000000, 0x000080, CRC(23f2d0bb) SHA1(48ba9300bc2136e9583754a51d5ab2532eca85c6) )
+ROM_END
+
+ROM_START( woffr )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2e_23bfr.rom", 0x000000, 0x80000, CRC(e006e81e) SHA1(dad6cd3a1175b6f366e8bf02d1af35af5f1b50cc) )
+ ROM_LOAD16_WORD_SWAP( "tk2e_22b.rom", 0x080000, 0x80000, CRC(479b3f24) SHA1(9fb8ae06856fe115addfb6794c28978a4f6716ec) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_gfx5fr.rom", 0x200000, 0x80000, CRC(1b6bc2b2) SHA1(3a5305d07271cffb9875fcbd2af52856a224548a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_gfx7fr.rom", 0x200002, 0x80000, CRC(3f1e5334) SHA1(a5c4795d65a916fc2d1a55153c4ca0ac5fbaf418) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_gfx6fr.rom", 0x200004, 0x80000, CRC(28c9d96f) SHA1(aa64a4572b10842b7f5f546e63493d501a16fd85) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_gfx8fr.rom", 0x200006, 0x80000, CRC(b3b9a29e) SHA1(fe425356545544a9cf50409972d2893999896191) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sk3p1.key", 0x000000, 0x000080, CRC(8ac48367) SHA1(aeeab2c3436009d05dd9caa1b1929af4d7e607ae) )
+ROM_END
+
+ROM_START( wofr1h )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2e_23b.8f", 0x000000, 0x80000, CRC(0fc9e89c) SHA1(7e098ad77172a16dc234b144c98eb6be433df215) )
+ ROM_LOAD16_WORD_SWAP( "tk2e_22b.7f", 0x080000, 0x80000, CRC(e3f7cbf1) SHA1(f22d799d13eef6ef24db4689b7ddb1ce4eca505b) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-5m.7a", 0x200000, 0x80000, CRC(291f0f0b) SHA1(094baf0f960f25fc2525b3b1cc378a49d9a0955d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-7m.9a", 0x200002, 0x80000, CRC(3edeb949) SHA1(c155698dd9ee9eb24bbc97a21118ef2e897ea82f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-6m.8a", 0x200004, 0x80000, CRC(1abd14d6) SHA1(dffff3126f102b4ec028a81405fc5b9bd7bb65b3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-8m.10a", 0x200006, 0x80000, CRC(b27948e3) SHA1(870d5d23f56798831c641e877ea94217058b2ddc) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wofch.key", 0x000000, 0x000080, CRC(23f2d0bb) SHA1(48ba9300bc2136e9583754a51d5ab2532eca85c6) )
+ROM_END
+
+// This is a rom kit to convert SF2 to WOF. Demo sound doesn't work. You only get one life. To get in-game sound
+// you need to select MONO in the setup screen.
+ROM_START( wofsf2 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "wof_30.rom", 0x000000, 0x020000, CRC(15886428) SHA1(d528766346e52deb97b9f49f836064ab2891c6cd) )
+ ROM_LOAD16_BYTE( "wof_35.rom", 0x000001, 0x020000, CRC(2b9bd156) SHA1(ec12b4a5e0f257d852830a81d8a9ebe1aec12676) )
+ ROM_LOAD16_BYTE( "wof_31.rom", 0x040000, 0x020000, CRC(6dc0158b) SHA1(c148bea4b40b9a0c9bced022e42343973969cc20) )
+ ROM_LOAD16_BYTE( "wof_36.rom", 0x040001, 0x020000, CRC(8059bfaa) SHA1(64b81bd73ac908fe3d190593d3a274561c076708) )
+ ROM_LOAD16_BYTE( "wof_28.rom", 0x080000, 0x020000, CRC(ced09a8c) SHA1(9f4680aa702bbb435438dd09682008d1d8691763) )
+ ROM_LOAD16_BYTE( "wof_33.rom", 0x080001, 0x020000, CRC(2197546a) SHA1(0b47c97f6400bbf0ce44f44c611ce41030956bb1) )
+ ROM_LOAD16_BYTE( "wof_29.rom", 0x0c0000, 0x020000, CRC(8b9756cb) SHA1(28d86196640218d5a382421d109346ddf66f0cbf) )
+ ROM_LOAD16_BYTE( "wof_34.rom", 0x0c0001, 0x020000, CRC(80b129b4) SHA1(a7ef0160f2877e7ffb4b2ad74a80b2039fd7aa3d) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "wof_24.rom", 0x000000, 0x40000, CRC(4f5ac09b) SHA1(366c129f548cd2e7538e417e8e4cb95114c2b5d5) , ROM_SKIP(7) )
+ ROMX_LOAD( "wof_14.rom", 0x000001, 0x40000, CRC(b57ec247) SHA1(1b5716a00226aeb40f5a0259ed23b2d03e3c0cc0) , ROM_SKIP(7) )
+ ROMX_LOAD( "wof_26.rom", 0x000002, 0x40000, CRC(0b386f34) SHA1(828072969a2323aa57c51dac70a546029c48a96d) , ROM_SKIP(7) )
+ ROMX_LOAD( "wof_16.rom", 0x000003, 0x40000, CRC(e82ae539) SHA1(84d250a45b84a47ccc2e37438fb798fe034d4cd7) , ROM_SKIP(7) )
+ ROMX_LOAD( "wof_20.rom", 0x000004, 0x40000, CRC(81b9fb7a) SHA1(f248295c96b3debe27d418f47795359197df7238) , ROM_SKIP(7) )
+ ROMX_LOAD( "wof_10.rom", 0x000005, 0x40000, CRC(3ffbcb13) SHA1(cefb95ceaa9690a41186f6a5b88b89ed515f5f87) , ROM_SKIP(7) )
+ ROMX_LOAD( "wof_22.rom", 0x000006, 0x40000, CRC(cf2716d2) SHA1(74d74feee26c6bea0b09c4b7f91787bc2a38ef0d) , ROM_SKIP(7) )
+ ROMX_LOAD( "wof_12.rom", 0x000007, 0x40000, CRC(526d7a5b) SHA1(5a88173bba196ad79bf543b53772e1b4e49dedbc) , ROM_SKIP(7) )
+ ROMX_LOAD( "wof_25.rom", 0x200000, 0x40000, CRC(05bedaa0) SHA1(018c9ce5c36fd9a6f0c6331945449a95d72323f6) , ROM_SKIP(7) )
+ ROMX_LOAD( "wof_15.rom", 0x200001, 0x40000, CRC(2b19f8b8) SHA1(781faab68c330bfa17d04864c0611e6a3b1e571f) , ROM_SKIP(7) )
+ ROMX_LOAD( "wof_27.rom", 0x200002, 0x40000, CRC(cfef8c53) SHA1(ab6843ae95243c1fb81259f17681bfd30dff8d57) , ROM_SKIP(7) )
+ ROMX_LOAD( "wof_17.rom", 0x200003, 0x40000, CRC(1fb396cf) SHA1(1c09959d6a9f12037d0a8f87d5820c5e53412188) , ROM_SKIP(7) )
+ ROMX_LOAD( "wof_21.rom", 0x200004, 0x40000, CRC(8b484bc0) SHA1(393ea4b99ae1b0ed5c63e4ca7d2d6b504cf7da7e) , ROM_SKIP(7) )
+ ROMX_LOAD( "wof_11.rom", 0x200005, 0x40000, CRC(2bed2edc) SHA1(ac04e8713816dfd865ca0d54f9bf3c1891f4add3) , ROM_SKIP(7) )
+ ROMX_LOAD( "wof_23.rom", 0x200006, 0x40000, CRC(8afed1f9) SHA1(3a973e58a47558ec48e1fafb096c43dfaa247b58) , ROM_SKIP(7) )
+ ROMX_LOAD( "wof_13.rom", 0x200007, 0x40000, CRC(84030abe) SHA1(d67ed207a06c5a0b1db7f0b6da3088b3e45f23a4) , ROM_SKIP(7) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "3js_09.rom", 0x00000, 0x08000, CRC(21ce044c) SHA1(425fd8d33d54f35ef90d68a7530db7a0eafb600d) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "3js_18.rom", 0x000000, 0x20000, CRC(ac6e307d) SHA1(b490ce625bb7ce0904b0fd121fbfbd5252790f7a) )
+ ROM_LOAD( "3js_19.rom", 0x020000, 0x20000, CRC(068741db) SHA1(ab48aff639a7ac218b7d5304145e10e92d61fd9f) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wofsf2.key", 0x000000, 0x000080, CRC(e4071226) SHA1(a7930d4b069f9d0e6e8510ef394066af5ade6974) )
+ROM_END
+
+// same as wofu except first rom
+ROM_START( wofud )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "wofud.23", 0x000000, 0x80000, CRC(9bab998f) SHA1(6afe212d7816bde23aecb92f57d075c3e411d4c6) )
+ ROM_LOAD16_WORD_SWAP( "tk2u_22c.7f", 0x080000, 0x80000, CRC(f5af4774) SHA1(f6d53cf5b330e6d68f84da3e8c831a475585b93e) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-5m.7a", 0x200000, 0x80000, CRC(291f0f0b) SHA1(094baf0f960f25fc2525b3b1cc378a49d9a0955d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-7m.9a", 0x200002, 0x80000, CRC(3edeb949) SHA1(c155698dd9ee9eb24bbc97a21118ef2e897ea82f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-6m.8a", 0x200004, 0x80000, CRC(1abd14d6) SHA1(dffff3126f102b4ec028a81405fc5b9bd7bb65b3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-8m.10a", 0x200006, 0x80000, CRC(b27948e3) SHA1(870d5d23f56798831c641e877ea94217058b2ddc) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wofch.key", 0x000000, 0x000080, CRC(23f2d0bb) SHA1(48ba9300bc2136e9583754a51d5ab2532eca85c6) )
+ROM_END
+
+
+
+/***************************************************************************
+
+ Driver Macros for HBMAME
+
+***************************************************************************/
+
+GAME( 1991, 3wondrud, 3wonders, cps1_10MHz, 3wonders, cps_state, cps1, ROT0, "hack", "Three Wonders (US 910520 Phoenix Edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, captcocc, captcomm, cps1_10MHz, captcomm, cps_state, cps1, ROT0, "Pipi899", "Captain Commando (OTHER COUNTRY 911014)(Characters Change hack by Pipi899 2009-01-20)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1991, captcomc, captcomm, cps1_10MHz, captcomm, cps_state, cps1, ROT0, "hack", "Captain Commando (Chinese 911202)", MACHINE_SUPPORTS_SAVE ) // "OTHER COUNTRY"
+GAME( 1991, captcomh, captcomm, cps1_10MHz, captcomm, cps_state, cps1, ROT0, "Capcom", "Captain Commando (Shinwa Hack, World 911014)" , MACHINE_SUPPORTS_SAVE )
+GAME( 1991, captcoud, captcomm, cps1_10MHz, captcomm, cps_state, cps1, ROT0, "hack", "Captain Commando (US 910928 Phoenix Edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, captcovs, captcomm, cps1_10MHz, captcomm, cps_state, cps1, ROT0, "Pipi899", "Captain Commando (1vs4 hack by Pipi899, cheat by sssskkkk 2009-04-25)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 2000, cps1demo, 0, cps1frog, cps1frog, cps_state, cps1, ROT0, "Charles Doty", "Demo - CPS1", MACHINE_SUPPORTS_SAVE ) // no sound
+GAME( 2006, cps1frog, 0, cps1frog, cps1frog, cps_state, cps1, ROT0, "Rastersoft", "Frog Feast (CPS1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2012, cps1tests, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "Cal2", "CPS1 Diagnostic (for sf2ce 2012-10-30)", MACHINE_SUPPORTS_SAVE )
+GAME( 2012, cps1testsa, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "Cal2", "CPS1 Diagnostic (for sf2ce 2012-10-29)", MACHINE_SUPPORTS_SAVE )
+GAME( 2012, cps1testm, megaman, cps1_12MHz, megaman, cps_state, cps1, ROT0, "Cal2", "CPS1 Diagnostic (for megaman 2012-10-30)", MACHINE_SUPPORTS_SAVE )
+GAME( 2012, cps1testma, megaman, cps1_12MHz, megaman, cps_state, cps1, ROT0, "Cal2", "CPS1 Diagnostic (for megaman 2012-10-29)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, daimakb, ghouls, daimakb, daimakai, cps_state, cps1, ROT0, "hack", "Dai Makai-Mura (Japan, bootleg)" , MACHINE_SUPPORTS_SAVE )
+GAME( 2008, dino08h2, dino, qsound, dino, cps_state, dino, ROT0, "Pipi899", "Cadillacs and Dinosaurs (Enhanced Revision 2008 set 3 v2.0f by Pipi899 2008-10-17)", MACHINE_SUPPORTS_SAVE )
+GAME( 2008, dino08h3, dino, qsound, dino, cps_state, dino, ROT0, "Pipi899", "Cadillacs and Dinosaurs (Enhanced Revision 2008 set 1 v1.1 by Pipi899 2008-10-11)", MACHINE_SUPPORTS_SAVE )
+GAME( 2008, dino08hp, dino, qsound, dino, cps_state, dino, ROT0, "Pipi899", "Cadillacs and Dinosaurs (Enhanced Revision 2008 set 2 v1.1f by Pipi899 2008-10-17)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, dinob, dino, qsound, dino, cps_state, dinohb, ROT0, "hack", "Cadillacs and Dinosaurs (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, dinobt, dino, qsound, dino, cps_state, dino, ROT0, "hack", "Cadillacs and Dinosaurs (BT hack version)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, dinobtpp, dino, qsound, dino, cps_state, dino, ROT0, "Pipi899", "Cadillacs and Dinosaurs (BT Power hack by Pipi899 2009-01-15)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, dinocgba, dino, qsound, dino, cps_state, dino, ROT0, "Pipi899", "Cadillacs and Dinosaurs (Cngba hack Version set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, dinocgbb, dino, qsound, dino, cps_state, dino, ROT0, "Pipi899", "Cadillacs and Dinosaurs (Cngba hack Version set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, dinocgbc, dino, qsound, dino, cps_state, dino, ROT0, "Pipi899", "Cadillacs and Dinosaurs (Cngba hack Version set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, dinoeh, dino, qsound, dinohz, cps_state, dinoeh, ROT0, "hack", "Cadillacs and Dinosaurs (unknown hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, dinoex, dino, qsound, dinohz, cps_state, dinoeh, ROT0, "hack", "Cadillacs and Dinosaurs (unknown hack2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, dinoh, dino, qsound, dinohz, cps_state, dinoh, ROT0, "hack", "Cadillacs and Dinosaurs (hack set 1)" , MACHINE_SUPPORTS_SAVE )
+GAME( 1997, dinoha, dino, qsound, dinohz, cps_state, dinoh, ROT0, "hack", "Cadillacs and Dinosaurs (hack set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, dinohb, dino, qsound, dinohz, cps_state, dinohb, ROT0, "hack", "Cadillacs and Dinosaurs (hack set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, dinohp, dino, qsound, dino, cps_state, dino, ROT0, "Pipi899", "Cadillacs and Dinosaurs (Hack by Pipi899 set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, dinohx, dino, qsound, dinohz, cps_state, dinoh, ROT0, "Winuxx", "Cadillacs and Dinosaurs (Revised hack by Winuxx)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 2010, dinojp, dino, qsound, dino, cps_state, dino, ROT0, "Pipi899", "Cadillacs Kyouryuu-Shinseiki Plus (2010-02-10)", MACHINE_SUPPORTS_SAVE )
+GAME( 2008, dinorp, dino, qsound, dino, cps_state, dino, ROT0, "Pipi899", "Cadillacs and Dinosaurs (Hack by Pipi899 set 2 2008-08-05)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, dinosf2, dino, wofsf2, dino, cps_state, dinohunt, ROT0, "Arcadefixer", "Cadillacs and Dinosaurs (sf2 conversion)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1993, dinoslice, dino, qsound, dino, cps_state, dino, ROT0, "hack", "Cadillacs and Dinosaurs (hack set 4)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, dinouphp, dino, qsound, dino, cps_state, dino, ROT0, "Pipi899", "Cadillacs and Dinosaurs (Up Version hack by Pipi899 2009-01-15)", MACHINE_SUPPORTS_SAVE )
+GAME( 2012, dinoz, dino, qsound, dinohz, cps_state, dinoz, ROT0, "hack", "Cadillacs and Dinosaurs Z (Boss Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, ffightb, ffight, cps1_10MHz, ffight, cps_state, cps1, ROT0, "hack", "Final Fight (Boss Hack dumped by Bonky0013, modified by MPT)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, knight21, knights, cps1_10MHz, knights, cps_state, cps1, ROT0, "hack", "Knights of the Round (Japan, debug bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, knightsa, knights, cps1_10MHz, knights, cps_state, cps1, ROT0, "LB70", "Knights of the Round (AngryUpdate By EEZEZY(LB70))", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1991, knightsb2, knights, cps1_10MHz, knights, cps_state, cps1, ROT0, "hack", "Knights of the Round (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, knightsh, knights, cps1_10MHz, knightsh, cps_state, cps1, ROT0, "hack", "Knights of the Round (hack)" , MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1991, knightsha, knights, cps1_10MHz, knightsh, cps_state, cps1, ROT0, "hack", "Knights of the Round (Hack set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, knightsjb, knights, cps1_10MHz, knights, cps_state, cps1, ROT0, "hack", "Knights of the Round (Japan, bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 2015, knightsro, knights, cps1_10MHz, knights, cps_state, cps1, ROT0, "Sebastian Mihai", "Knights of the Round (Romanian)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, knightud, knights, cps1_10MHz, knights, cps_state, cps1, ROT0, "hack", "Knights of the Round (US 911127 Phoenix Edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kodd, kod, cps1_10MHz, kod, cps_state, cps1, ROT0, "hack", "The King of Dragons (World 910711 Phoenix Edition)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kodh, kod, cps1_10MHz, kodh, cps_state, cps1, ROT0, "Wangy2", "The King of Dragons (ETC 910711 hack)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kodsp, kod, cps1_10MHz, kod, cps_state, cps1, ROT0, "Bonusjz", "The King of Dragons (Remix Special hack by Bonusjz)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kodud, kod, cps1_10MHz, kod, cps_state, cps1, ROT0, "hack", "The King of Dragons (US 910910 Phoenix Edition (16b/40p))", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1994, pnicku, pnickj, cps1_10MHz, pnicku, cps_state, cps1, ROT0, "Capcom", "Pnickies (USA 940608)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, punisherb, punisher, qsound, punisher, cps_state, punisherb,ROT0, "hack", "The Punisher (Bootleg)", MACHINE_SUPPORTS_SAVE)
+GAME( 2007, punisherf, punisher, qsound, punisher, cps_state, punisherb,ROT0, "Zhyxxxx", "The Punisher (Flash version) 2007-09-24", MACHINE_SUPPORTS_SAVE)
+GAME( 2009, punisherje1, punisher, qsound, punisher, cps_state, punisher, ROT0, "Zhyxxxx", "The Punisher (SM Experience Edition hack by Zhyxxxx set 1 2009-06-12)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, punisherjh, punisher, qsound, punisher, cps_state, punisher, ROT0, "hack", "The Punisher (Shinwa Hack, Japan 930422)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, punisherjh1, punisher, qsound, punisher, cps_state, punisher, ROT0, "Zhyxxxx", "The Punisher (SQ Unlimited Version hack by Zhyxxxx 2009-06-08)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, punisherjha, punisher, qsound, punisher, cps_state, punisher, ROT0, "Zhyxxxx", "The Punisher (930422 Japan, SM Experience Edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, punisherud1, punisher, qsound, punisher, cps_state, punisher, ROT0, "hack", "The Punisher (US 930422 Phoenix Edition (8b/32p))", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, punisherud2, punisher, qsound, punisher, cps_state, punisher, ROT0, "hack", "The Punisher (US 930422 Phoenix Edition (16b/40p))", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, sf2bhj, sf2, cps1_10MHz, sf2j, cps_state, cps1, ROT0, "hack", "Street Fighter II: The World Warrior (Boss hack by Yumeji)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, sf2c, sf2, cps1_10MHz, sf2j, cps_state, cps1, ROT0, "hack", "Street Fighter II: The World Warrior (Chinese 911210)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, sf2cebr, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "Neogeo BR team", "Street Fighter II': Champion Edition (Brasil 920313)", MACHINE_SUPPORTS_SAVE )
+GAME( 2012, sf2ced, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "Drakon", "Street Fighter II': Champion Edition (Sheng Long Hack v7.1)", MACHINE_SUPPORTS_SAVE ) // "ETC"
+GAME( 2012, sf2ceda, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "Drakon", "Street Fighter II': Champion Edition (Hack)", MACHINE_SUPPORTS_SAVE ) // "ETC"
+GAME( 1999, sf2ceh, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "hack", "Street Fighter II': Champion Edition (Hispanic 990804)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, sf2cehk, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "Kawada7278", "Street Fighter II': Champion Edition (Hack Unknown by Kawada7278)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, sf2cehp, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "Pipi899", "Street Fighter II': Champion Edition (Moves hack by Pipi899 2009-01-10)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, sf2cejem, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "Blackheart", "Street Fighter II': Champion Edition (Easy Moves hack by Blackheart 2009-07-30)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, sf2jbh, sf2, cps1_10MHz, sf2j, cps_state, cps1, ROT0, "Yumeji", "Street Fighter II: The World Warrior (Japan 910522 Boss Hack 2014 Edition by Yumeji)", MACHINE_SUPPORTS_SAVE )
+GAME( 2013, sf2koryuh, sf2ce, cps1_12MHz, sf2hack, cps_state, cps1, ROT0, "TT", "Street Fighter II': Champion Edition (Hack by TT)", MACHINE_SUPPORTS_SAVE ) // 811102 !!! - based on World version
+GAME( 1992, sf2h9, sf2ce, cps1_12MHz, sf2, cps_state, sf2h9, ROT0, "Mega Co", "Street Fighter II: Champion Edition (H9, bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, sf2h10, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "hack", "Street Fighter II': Champion Edition (H10, bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, sf2h11, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "hack", "Street Fighter II': Champion Edition (H11, bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, sf2h12, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "hack", "Street Fighter II': Champion Edition (H12, bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, sf2h13, sf2ce, cps1_12MHz, sf2j, cps_state, sf2h13, ROT0, "hack", "Street Fighter II' Turbo: Hyper Fighting (H13, bootleg)", MACHINE_SUPPORTS_SAVE ) // bad tile for Blanka on player select screen
+GAME( 2012, sf2pun, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "Drakon", "Street Fighter II': Champion Edition (Punishment Edition v1 Final)", MACHINE_SUPPORTS_SAVE )
+GAME( 2013, sf2sl73a, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "Drakon", "Street Fighter II': Champion Edition (Sheng Long v7.3a)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, sf2th, sf2ce, cps1_12MHz, sf2hack, cps_state, sf2hack, ROT0, "hack", "Street Fighter II': Champion Edition (Turbo set 1, bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, sf2tha, sf2ce, cps1_12MHz, sf2hack, cps_state, sf2hack, ROT0, "hack", "Street Fighter II': Champion Edition (Turbo set 2, bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, sf2tlona, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "Tu Long", "Street Fighter II': Champion Edition (Slay the Dragon set 1)", MACHINE_SUPPORTS_SAVE ) // These 2 are Chinese bootlegs
+GAME( 1992, sf2tlonb, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "Tu Long", "Street Fighter II': Champion Edition (Slay the Dragon set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, sf2tlonc, sf2ce, cps1_12MHz, sf2hack, cps_state, sf2hack, ROT0, "Tu Long", "Street Fighter II': Champion Edition (Slay the Dragon set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, sf2turyu, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "hack", "Street Fighter II: Champion Edition (Tu Long prototype)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, sf2yyc3d5, sf2ce, cps1_12MHz, sf2hack, cps_state, sf2hack, ROT0, "hack", "Street Fighter II': Champion Edition (YYC, 3D5, bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, sf2yyc3g, sf2ce, cps1_12MHz, sf2hack, cps_state, sf2hack, ROT0, "hack", "Street Fighter II': Champion Edition (YYC, 3G, bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, sf2yyc6, sf2ce, cps1_12MHz, sf2hack, cps_state, sf2hack, ROT0, "hack", "Street Fighter II': Champion Edition (YYC, 6, bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, sk2h1, wof, sk2h3, sk2h1, cps_state, sk2h1, ROT0, "All-In Co Ltd", "Sangokushi II (Asia 921005) (set H1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, sk2h1q, wof, sk2h1q, sk2h1, cps_state, sk2h1q, ROT0, "All-In Co Ltd", "Sangokushi II (Asia 921005) (set H1Q)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, sk2h2, wof, sk2h3, sk2h1, cps_state, sk2h1, ROT0, "All-In Co Ltd", "Sangokushi II (Asia 921005) (set H2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, sk2h2q, wof, sk2h1q, sk2h1, cps_state, sk2h1q, ROT0, "All-In Co Ltd", "Sangokushi II (Asia 921005) (set H2Q)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, sk2h3, wof, sk2h3, sk2h3, cps_state, sk2h3, ROT0, "All-In Co Ltd", "Sangokushi II (Asia 921005) (set H3)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, sk2h4q, wof, sk2h1q, sk2h1, cps_state, sk2h1q, ROT0, "All-In Co Ltd", "Sangokushi II (Asia 921005) (set H4Q)(Chinese hack v2.0)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 2009, sk2h5q, wof, sk2h1q, sk2h1, cps_state, sk2h1q, ROT0, "Winuxx", "Sangokushi II (Asia 921005) (set H5Q)(Revised Version hack by Winuxx 2009-09-09)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, sk2h6q, wof, sk2h1q, sk2h1, cps_state, sk2h1q, ROT0, "Winuxx", "Sangokushi II (Asia 921005) (set H6Q)(Boss hack by Winuxx)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1992, sk2h11, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Sangokushi II (Asia 921005) (set H11)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, sk2h12, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Sangokushi II (Asia 921005) (set H12)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, sk2h13, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Sangokushi II (Asia 921005) (set H13)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, sk2h14, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Sangokushi II (Asia 921005) (set H14)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, sk2h15, wof, qsound, wof, cps_state, wof, ROT0, "Pipi899", "Sangokushi II (Hack by Pipi899 2009-01-02)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, sk2h16, wof, qsound, wof, cps_state, wof, ROT0, "Pipi899", "Sangokushi II (Easy Moves hack by Pipi899 2009-01-12)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, sk2h21, wof, qsound, sk2h21, cps_state, sk2h21, ROT0, "hack", "Sangokushi II (Asia 921005) (set H21)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, sk2h22, wof, sk2h3, sk2h21, cps_state, sk2h22, ROT0, "hack", "San Jian Sheng (Chinese bootleg of Sangokushi II, set H22)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1997, sk2h31, wof, sk2h31, sk2h31, cps_state, sk2h22, ROT0, "Gen Gan San Go", "Sangokushi II (Asia 921005) (set H31)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1997, sk2h31q, wof, sk2h31q, sk2h31, cps_state, sk2h31, ROT0, "Gen Gan San Go", "Sangokushi II (Asia 921005) (set H31Q)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1997, sk2h32, wof, sk2h31, sk2h31, cps_state, sk2h22, ROT0, "Gen Gan San Go", "Sangokushi II (Asia 921005) (set H32)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1997, sk2h32q, wof, sk2h31q, sk2h31, cps_state, sk2h31, ROT0, "Gen Gan San Go", "Sangokushi II (Asia 921005) (set H32Q)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1995, sk2h33, wof, sk2h31, sk2h31, cps_state, sk2h22, ROT0, "Gen Gan San Go", "Sangokushi II (Asia 921005) (set H33)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1995, sk2h33q, wof, sk2h31q, sk2h31, cps_state, sk2h31, ROT0, "Gen Gan San Go", "Sangokushi II (Asia 921005) (set H33Q)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1995, sk2h34, wof, sk2h31, sk2h31, cps_state, sk2h22, ROT0, "Gen Gan San Go", "Sangokushi II (Asia 921005) (set H34)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1995, sk2h34q, wof, sk2h31q, sk2h31, cps_state, sk2h31, ROT0, "Gen Gan San Go", "Sangokushi II (Asia 921005) (set H34Q)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1995, sk2h35, wof, sk2h35, wof, cps_state, sk2h35, ROT0, "Gen Gan San Go", "Sangokushi II (Asia 921005) (set H35)", MACHINE_SUPPORTS_SAVE )
+GAME( 2010, sk3p1, wofch, qsound, wofch, cps_state, wof, ROT0, "hack", "Sangokushi 3 Gaiden Kakou-on's Revenge DX (red)", MACHINE_SUPPORTS_SAVE )
+GAME( 2010, sk3p2, wofch, qsound, wofch, cps_state, wof, ROT0, "hack", "Sangokushi 3 Gaiden Kakou-on's Revenge DX (green set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2010, sk3p3, wofch, qsound, wofch, cps_state, wof, ROT0, "hack", "Sangokushi 3 Gaiden Kakou-on's Revenge DX (green set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, slammastud, slammast, qsound, slammast, cps_state, slammast, ROT0, "hack", "Saturday Night Slam Masters (USA 930713 Phoenix Edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, stridergf, strider, cps1_10MHz, stridrua, cps_state, cps1, ROT0, "Willkaotix", "Strider (Gfx fix)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, stridergh, strider, cps1_10MHz, stridrua, cps_state, cps1, ROT0, "Willkaotix", "Strider (gfx fix, uncensored)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, tk2c1, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II (Chinese hack: Boss Enhanced)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, tk2c2, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II (Chinese hack: Zhang Fei Enhanced)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, tk2c3, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II (Chinese hack: Cao Zhi Jian Enhanced)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, tk2c4, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II (Chinese hack: Di Yu Enhanced)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, tk2c5, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II (Chinese hack: Di Yi Guan Enhanced)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, tk2c6, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II (Chinese hack: Fen Hong Enhanced)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, tk2c7, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II (Chinese hack: Guan Yu Chi Tu Ma Enhanced)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, tk2c8, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II (Chinese hack: Guan Yu Enhanced Enhanced)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, tk2c9, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II (Chinese hack: Han Guang Zhan Enhanced)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, tk2c10, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II (Chinese hack: Huang Zhong Enhanced)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, tk2c11, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II (Chinese hack: Xue Xing Enhanced)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, tk2c12, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II (Chinese hack: Jian Qi Zong Heng Enhanced)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, tk2c13, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II (Chinese hack: Mei ren Guan Enhanced)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, tk2c14, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II (Chinese hack: Shen Bing Li Qi Enhanced)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, tk2c15, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II (Chinese hack: Shen Jian + Jian Qi Enhanced)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, tk2c16, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II (Chinese hack: Shao Zhu Enhanced)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, tk2c17, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II (Chinese hack: Yu Jian Shu Enhanced)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, tk2c18, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II (Chinese hack: Ying Xiong Guan Enhanced)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, tk2c19, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II (Chinese hack: Zhao Huan Shou Enhanced)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, tk2c20, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II (Chinese hack: Zhao Huan Shou + Yu Jian Shu Enhanced)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, tk2c21, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II (Chinese hack: Zhao Yun Lian Ti Enhanced)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, tk2c22, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II (Chinese hack: Zhao Yun Sheng Long Enhanced)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, tk2c23, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II (Chinese hack: Zhao Yun Bao Li Enhanced)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, tk2h1, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II (Japan 921031) (Hack set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, tk2h2, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II (Japan 921031) (Hack set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, tk2h3, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II (Japan 921031) (Hack set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, tk2h4, wof, qsound, wof, cps_state, wof, ROT0, "Shinwa", "Tenchi wo Kurau II (Hack by Shinwa)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, tk2h5, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II (Japan 921031) (Chinese)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1992, tk2h6, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II (Japan 921031 Phoenix Edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, tk2h7, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II (Hack by Pipi899 2009-01-02)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, tk2h8, wof, qsound, wof, cps_state, wof, ROT0, "Winuxx, Blackheart", "Tenchi wo Kurau II (Heaven and Earth Double Attack Test Version hack by Winuxx, Blackheart 2009-12-14)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, tk2h9, wof, qsound, wof, cps_state, wof, ROT0, "Pipi899", "Tenchi wo Kurau II (Easy Moves hack by Pipi899 2009-01-12)", MACHINE_SUPPORTS_SAVE )
+GAME( 2013, tk2h10, wof, qsound, wof, cps_state, wof, ROT0, "AXDX", "Tenchi wo Kurau 2 (Japan 921031)", MACHINE_SUPPORTS_SAVE )
+GAME( 2010, tk2h11, wof, qsound, wof, cps_state, wof, ROT0, "Pipi899", "Tenchi wo Kurau II (Modified SubVersion hack by Pipi899 2010-01-26)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, tk2h12, wof, qsound, wof, cps_state, wof, ROT0, "Rockywall", "Tenchi wo Kurau II (Playstation Version hack by Rockywall 2009-12-09)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, tk2h13, wof, qsound, wof, cps_state, wof, ROT0, "Blacheart", "Tenchi wo Kurau II (Revised Alternate hack by Blackheart 2009-12-17)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, tk2h14, wof, qsound, wof, cps_state, wof, ROT0, "LB70", "Tenchi wo Kurau II (Revised Version hack by Lb70 2009-03-21)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, tk2h15, wof, qsound, wof, cps_state, wof, ROT0, "Shinwa", "Tenchi wo Kurau II (Revised beta hack by Shinwa)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1992, tk2h16, wof, qsound, wof, cps_state, wof, ROT0, "Shinwa", "Tenchi wo Kurau II (Revised v1.0 hack by Shinwa)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 2009, tk2h17, wof, qsound, wof, cps_state, wof, ROT0, "Blackheart", "Tenchi wo Kurau II (Zhao Chain Revised v1.0 hack by Blackheart 2009-12-16)", MACHINE_SUPPORTS_SAVE )
+GAME( 2012, tk2h18, wof, qsound, wof, cps_state, wof, ROT0, "Zero", "Tenchi wo Kurau II (Power edition)(Japan 921031)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, tk2p2, wofch, qsound, wofch, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II: Sekiheki no Tatakai (CPS Changer, Japan 921031) (Set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2010, tk2p3, wofch, qsound, wofch, cps_state, wof, ROT0, "Pipi899", "Tenchi Wo Kurau II (CPS Changer, Super Jian Huang hack by Pipi899 2010-01-29)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, wofb, wof, qsound, wof, cps_state, wofb, ROT0, "hack", "Warriors of Fate (ETC 921002) (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, wofes, wof, qsound, wof, cps_state, wof, ROT0, "Chaihe", "Warriors of Fate (Enhanced Super Version hack by Chaihe)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, woffr, wof, qsound, wof, cps_state, wof, ROT0, "Arkatrad", "Warriors of Fate (France 030728)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, wofr1h, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Warriors of Fate (ETC 921002) hack", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, wofsf2, wof, wofsf2, wof, cps_state, cps1, ROT0, "hack", "Warriors of Fate (conversion for SF2 HW) (ETC 921031)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, wofud, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Warriors of Fate (USA 921031 Phoenix Edition)", MACHINE_SUPPORTS_SAVE )
+
+/*************************************************************************************************************************/
+
+
+/***************************************************************************
+
+ Driver initialisation
+
+***************************************************************************/
+
+
+DRIVER_INIT_MEMBER( cps_state, dinoeh )
+{
+ machine().device("maincpu")->memory().space(AS_PROGRAM).install_write_handler(0x800180, 0x800181, write16_delegate(FUNC(cps_state::dinoh_sound_command_w),this));
+ kabuki_setup(dino_decode);
+ DRIVER_INIT_CALL(cps1);
+}
+
+DRIVER_INIT_MEMBER( cps_state, dinoh )
+{
+ /* Patch out Q-Sound test */
+ uint16_t *rom = (uint16_t *)memregion("maincpu")->base();
+ rom[0xaacf4/2] = 0x4e71;
+ DRIVER_INIT_CALL(dinoeh);
+}
+
+DRIVER_INIT_MEMBER( cps_state, dinoz )
+{
+ uint16_t *rom = (uint16_t *)memregion("maincpu")->base();
+ rom[0xaaa82/2] = 0x4e71; // Patch out Q-Sound test
+ rom[0x1cfb4/2] = 0x4e71; // patch out invalid instruction
+ DRIVER_INIT_CALL(dinoeh);
+}
+
+DRIVER_INIT_MEMBER( cps_state, dinohb )
+{
+ uint8_t *mem8 = memregion("maincpu")->base();
+ // Fix draw scroll
+// mem8[0x006c2] = 0xC0;
+// mem8[0x006c3] = 0xFF;
+ // Fix gfx
+ mem8[0x472] = 0xFC;
+ mem8[0x473] = 0x33;
+ mem8[0x474] = 0x0;
+ mem8[0x475] = 0x90;
+ mem8[0x476] = 0x80;
+ mem8[0x478] = 0x0;
+ mem8[0x479] = 0x1;
+ mem8[0x47A] = 0xFC;
+ mem8[0x47B] = 0x33;
+ mem8[0x47C] = 0x80;
+ mem8[0x47D] = 0x90;
+ mem8[0x47E] = 0x80;
+ mem8[0x480] = 0x2;
+ mem8[0x481] = 0x1;
+ mem8[0x482] = 0xFC;
+ mem8[0x483] = 0x33;
+ mem8[0x484] = 0xC0;
+ mem8[0x485] = 0x90;
+ mem8[0x486] = 0x80;
+ mem8[0x487] = 0x0;
+ mem8[0x488] = 0x4;
+ mem8[0x489] = 0x1;
+ mem8[0x48A] = 0xFC;
+ mem8[0x48B] = 0x33;
+ mem8[0x48C] = 0x0;
+ mem8[0x48D] = 0x91;
+ mem8[0x48E] = 0x80;
+ mem8[0x48F] = 0x0;
+ mem8[0x490] = 0x6;
+ mem8[0x491] = 0x1;
+ mem8[0x006cc] = 0x80;
+ mem8[0x006cd] = 0x00;
+ mem8[0x006ce] = 0x0C;
+ mem8[0x006cf] = 0x01;
+ mem8[0x006de] = 0x80;
+ mem8[0x006df] = 0x00;
+ mem8[0x006e0] = 0x10;
+ mem8[0x006e1] = 0x01;
+ mem8[0x006f0] = 0x80;
+ mem8[0x006f1] = 0x00;
+ mem8[0x006f2] = 0x14;
+ mem8[0x006f3] = 0x01;
+ mem8[0x00704] = 0x80;
+ mem8[0x00705] = 0x00;
+ mem8[0x00706] = 0x0E;
+ mem8[0x00707] = 0x01;
+ mem8[0x00718] = 0x80;
+ mem8[0x00719] = 0x00;
+ mem8[0x0071a] = 0x12;
+ mem8[0x0071b] = 0x01;
+ mem8[0x0072c] = 0x80;
+ mem8[0x0072d] = 0x00;
+ mem8[0x0072e] = 0x16;
+ mem8[0x0072f] = 0x01;
+ // Fix screen transitions
+ mem8[0x00b28] = 0x00;
+ mem8[0x00b29] = 0x70;
+ mem8[0x00b2a] = 0x00;
+ mem8[0x00b2b] = 0x72;
+ mem8[0x00b2c] = 0x3C;
+ mem8[0x00b2d] = 0x34;
+ mem8[0x00b32] = 0xC1;
+ mem8[0x00b33] = 0x20;
+ // Fix sound
+ mem8[0x00666] = 0xF1;
+ mem8[0x00667] = 0x00;
+ mem8[0x00668] = 0x02;
+ mem8[0x00669] = 0x80;
+ mem8[0xaaa6c] = 0xD8;
+ mem8[0xaaa6d] = 0x00;
+
+ kabuki_setup(dino_decode);
+ DRIVER_INIT_CALL(cps1);
+}
+
+DRIVER_INIT_MEMBER( cps_state, punisherb )
+{
+ // note: bytes are swapped around compared to rom_fill.
+ uint8_t *mem8 = memregion("maincpu")->base();
+ // Use standard ports
+ mem8[0xAB3] = 0x33;
+ mem8[0xAB4] = 0x30;
+ mem8[0xAB6] = 0x80;
+ mem8[0xAB7] = 0x0;
+ mem8[0xAB8] = 0x56;
+ mem8[0xAB9] = 0x1;
+ mem8[0xABA] = 0xED;
+ mem8[0xABB] = 0x33;
+ mem8[0xABC] = 0x32;
+ mem8[0xABD] = 0xDB;
+ mem8[0xABE] = 0x80;
+ mem8[0xABF] = 0x0;
+ mem8[0xAC0] = 0x48;
+ mem8[0xAC1] = 0x1;
+ mem8[0xAC2] = 0xED;
+ mem8[0xAC3] = 0x33;
+ mem8[0xAC4] = 0x34;
+ mem8[0xAC5] = 0xDB;
+ mem8[0xAC6] = 0x80;
+ mem8[0xAC7] = 0x0;
+ mem8[0xAC8] = 0x4A;
+ mem8[0xAC9] = 0x1;
+ mem8[0xACA] = 0xED;
+ mem8[0xACB] = 0x33;
+ mem8[0xACC] = 0x2E;
+ mem8[0xACD] = 0xDB;
+ mem8[0xACE] = 0x80;
+ mem8[0xAD0] = 0x52;
+ mem8[0xAD1] = 0x1;
+ mem8[0xAD2] = 0xED;
+ mem8[0xAD3] = 0x33;
+ mem8[0xAD4] = 0x88;
+ mem8[0xAD5] = 0xDB;
+ mem8[0xAD6] = 0x80;
+ mem8[0xAD7] = 0x0;
+ mem8[0xAD8] = 0x0;
+ mem8[0xAD9] = 0x1;
+ mem8[0xADA] = 0xED;
+ mem8[0xADB] = 0x33;
+ mem8[0xADC] = 0x8A;
+ mem8[0xADD] = 0xDB;
+ mem8[0xADE] = 0x80;
+ mem8[0xADF] = 0x0;
+ mem8[0xAE0] = 0x2;
+ mem8[0xAE1] = 0x1;
+ mem8[0xAE2] = 0xED;
+ mem8[0xAE3] = 0x33;
+ mem8[0xAE4] = 0x8C;
+ mem8[0xAE5] = 0xDB;
+ mem8[0xAE6] = 0x80;
+ mem8[0xAE7] = 0x0;
+ mem8[0xAE8] = 0x4;
+ mem8[0xAE9] = 0x1;
+ mem8[0xAEA] = 0xED;
+ mem8[0xAEB] = 0x33;
+ mem8[0xAEC] = 0x8E;
+ mem8[0xAED] = 0xDB;
+ mem8[0xAEE] = 0x80;
+ mem8[0xAEF] = 0x0;
+ mem8[0xAF0] = 0x6;
+ mem8[0xAF1] = 0x1;
+ mem8[0xAF2] = 0xED;
+ mem8[0xAF3] = 0x33;
+ mem8[0xAF4] = 0x90;
+ mem8[0xAF5] = 0xDB;
+ mem8[0xAF6] = 0x80;
+ mem8[0xAF7] = 0x0;
+ mem8[0xAF8] = 0x8;
+ mem8[0xAF9] = 0x1;
+ mem8[0xAFA] = 0xED;
+ mem8[0xAFB] = 0x50;
+ mem8[0xAFC] = 0x49;
+ mem8[0xAFD] = 0xDB;
+ mem8[0xAFE] = 0xFC;
+ mem8[0xAFF] = 0x33;
+ mem8[0xB00] = 0x3F;
+ mem8[0xB02] = 0x80;
+ mem8[0xB03] = 0x0;
+ mem8[0xB04] = 0x4C;
+ mem8[0xB05] = 0x1;
+ mem8[0xB06] = 0xFC;
+ mem8[0xB07] = 0x33;
+ mem8[0xB08] = 0x40;
+ mem8[0xB09] = 0x91;
+ mem8[0xB0A] = 0x80;
+ mem8[0xB0C] = 0xA;
+ mem8[0xB0D] = 0x1;
+ mem8[0xBA8] = 0x80;
+ mem8[0xBAA] = 0xC;
+ mem8[0xBAB] = 0x1;
+ mem8[0xBBA] = 0x80;
+ mem8[0xBBC] = 0x10;
+ mem8[0xBBD] = 0x1;
+ mem8[0xBCC] = 0x80;
+ mem8[0xBCE] = 0x14;
+ mem8[0xBCF] = 0x1;
+ mem8[0xBDA] = 0x80;
+ mem8[0xBDC] = 0xE;
+ mem8[0xBDD] = 0x1;
+ mem8[0xBEE] = 0x80;
+ mem8[0xBF0] = 0x12;
+ mem8[0xBF1] = 0x1;
+ mem8[0xC02] = 0x80;
+ mem8[0xC04] = 0x16;
+ mem8[0xC05] = 0x1;
+ // Transitions
+ mem8[0x42b5] = 0;
+ // Q sound
+ mem8[0x4DBC] = 0x0;
+ mem8[0x4DBE] = 0x58;
+ mem8[0x4DBF] = 0x0;
+ mem8[0x4DC0] = 0xF9;
+ mem8[0x4DC1] = 0x41;
+ mem8[0x4DC2] = 0xF1;
+ mem8[0x4DC3] = 0x0;
+ mem8[0x4DC4] = 0x0;
+ mem8[0x4DC5] = 0x80;
+ mem8[0x4DC6] = 0x28;
+ mem8[0x4DC7] = 0x4A;
+ mem8[0x4DC8] = 0x1F;
+ mem8[0x4DC9] = 0x0;
+ mem8[0x4DCA] = 0x0;
+ mem8[0x4DCB] = 0x6A;
+ mem8[0x4DCC] = 0x4A;
+ mem8[0x4DCD] = 0x0;
+ mem8[0x4DCE] = 0xED;
+ mem8[0x4DCF] = 0x49;
+ mem8[0x4DD0] = 0x96;
+ mem8[0x4DD1] = 0xE2;
+ mem8[0x4DD2] = 0xF4;
+ mem8[0x4DD3] = 0x49;
+ mem8[0x4DD4] = 0x0;
+ mem8[0x4DD5] = 0x0;
+ mem8[0x4DD6] = 0x40;
+ mem8[0x4DD7] = 0x6;
+ mem8[0x4DD8] = 0x10;
+ mem8[0x4DDA] = 0x40;
+ mem8[0x4DDB] = 0x2;
+ mem8[0x4DDC] = 0xFF;
+ mem8[0x4DDD] = 0xF;
+ mem8[0x4DDE] = 0x40;
+ mem8[0x4DDF] = 0x3B;
+ mem8[0x4DE0] = 0xE8;
+ mem8[0x4DE1] = 0xDA;
+ mem8[0x4DE2] = 0x5C;
+ mem8[0x4DE3] = 0x11;
+ mem8[0x4DE4] = 0x1;
+ mem8[0x4DE6] = 0x5C;
+ mem8[0x4DE7] = 0x11;
+ mem8[0x4DE8] = 0x3;
+ mem8[0x4DE9] = 0x0;
+ mem8[0x4DEA] = 0x5C;
+ mem8[0x4DEB] = 0x11;
+ mem8[0x4DEC] = 0x7;
+ mem8[0x4DED] = 0x0;
+ mem8[0x4DEE] = 0x5C;
+ mem8[0x4DEF] = 0x11;
+ mem8[0x4DF0] = 0x9;
+ mem8[0x4DF1] = 0x0;
+ mem8[0x4DF2] = 0x1C;
+ mem8[0x4DF3] = 0x30;
+ mem8[0x4DF4] = 0x40;
+ mem8[0x4DF5] = 0x11;
+ mem8[0x4DF6] = 0xD;
+ mem8[0x4DF7] = 0x0;
+ mem8[0x4DF8] = 0x5C;
+ mem8[0x4DF9] = 0x11;
+ mem8[0x4DFA] = 0xF;
+ mem8[0x4DFB] = 0x0;
+ mem8[0x4DFC] = 0x5C;
+ mem8[0x4DFD] = 0x11;
+ mem8[0x4DFE] = 0x11;
+ mem8[0x4E00] = 0x5C;
+ mem8[0x4E01] = 0x11;
+ mem8[0x4E02] = 0x17;
+ mem8[0x4E04] = 0x5C;
+ mem8[0x4E05] = 0x11;
+ mem8[0x4E06] = 0x19;
+ mem8[0x4E07] = 0x0;
+ mem8[0x4E08] = 0x5C;
+ mem8[0x4E09] = 0x11;
+ mem8[0x4E0A] = 0x13;
+ mem8[0x4E0B] = 0x0;
+ mem8[0x4E0C] = 0x5C;
+ mem8[0x4E0D] = 0x11;
+ mem8[0x4E0E] = 0x15;
+ mem8[0x4E0F] = 0x0;
+ mem8[0x4E10] = 0x7C;
+ mem8[0x4E11] = 0x11;
+ mem8[0x4E12] = 0x0;
+ mem8[0x4E14] = 0x1F;
+ mem8[0x4E16] = 0x75;
+ mem8[0x4E17] = 0x4E;
+ // Sprites
+ mem8[0x14CA0] = 0x90;
+ mem8[0x14CA3] = 0x0;
+ mem8[0x14CB0] = 0x90;
+ mem8[0x14CB3] = 0x40;
+ mem8[0x14F68] = 0xFC;
+ mem8[0x14F69] = 0x28;
+ mem8[0x14F6A] = 0x0;
+ mem8[0x14F6D] = 0x1;
+
+ kabuki_setup(punisher_decode);
+ DRIVER_INIT_CALL(cps1);
+}
+
+DRIVER_INIT_MEMBER( cps_state, sf2h9 )
+{
+ /* Patch out protection check */
+ uint16_t *rom = (uint16_t *)memregion("maincpu")->base();
+ rom[0xc0670/2] = 0x4e71;
+ DRIVER_INIT_CALL(cps1);
+}
+
+DRIVER_INIT_MEMBER( cps_state, sf2h13 )
+{
+ uint16_t *rom = (uint16_t *)memregion("maincpu")->base();
+
+ // Fix scroll
+ rom[0x1d22a/2] = 0x0120;
+ // Fix bg layer
+ rom[0x1d270/2] = 0x0166;
+ // Fix gfx
+ rom[0x1d470/2] = 0x0170;
+
+ // Fix title gfx
+ rom[0x21bec/2] = 0x0083;
+ rom[0x21cf8/2] = 0x828e;
+ rom[0x21cfa/2] = 0x829e;
+ rom[0x21cfc/2] = 0x82ae;
+ rom[0x21d06/2] = 0x827f;
+ rom[0x21d08/2] = 0x828f;
+ rom[0x21d0a/2] = 0x829f;
+ rom[0x21d0c/2] = 0x82af;
+ rom[0x21d16/2] = 0x827e;
+ rom[0x21d18/2] = 0x82a0;
+ rom[0x21d1a/2] = 0x822c;
+ rom[0x21d1c/2] = 0x823c;
+ rom[0x21d2a/2] = 0x822d;
+
+ DRIVER_INIT_CALL(cps1);
+}
+
+DRIVER_INIT_MEMBER( cps_state, wofb )
+{
+ uint8_t *mem8 = memregion("maincpu")->base();
+ // Fix gfx
+ mem8[0x506] = 0xE7;
+ mem8[0x507] = 0x48;
+ mem8[0x508] = 0xFE;
+ mem8[0x509] = 0xFF;
+ mem8[0x50A] = 0xF8;
+ mem8[0x50B] = 0x4B;
+ mem8[0x6ABC] = 0x6;
+ mem8[0x6ABD] = 0x1;
+ // Fix sound
+ mem8[0x764E] = 0x71;
+ mem8[0x7650] = 0x71;
+ mem8[0x7651] = 0x4E;
+ // Fix screen transitions
+ mem8[0x5D236] = 0xFC;
+ mem8[0x5D237] = 0x28;
+ mem8[0x5D238] = 0x0;
+ mem8[0x5D23B] = 0x1;
+
+ kabuki_setup(wof_decode);
+ DRIVER_INIT_CALL(cps1);
+}
+
+DRIVER_INIT_MEMBER( cps_state, sk2h35 )
+{
+ uint8_t *mem8 = memregion("maincpu")->base();
+ // Patch Q sound protection? check
+ mem8[0x5A1A] = 0x00;
+ mem8[0x5A1B] = 0x67;
+ mem8[0x5A1C] = 0x56;
+ mem8[0x5A1D] = 0x00;
+ mem8[0x5A1E] = 0x7C;
+ mem8[0x5A1F] = 0x20;
+ mem8[0x5A20] = 0xF1;
+ mem8[0x5A21] = 0x00;
+ mem8[0x5A22] = 0x00;
+ mem8[0x5A23] = 0x80;
+ mem8[0x5A24] = 0x28;
+ mem8[0x5A25] = 0x4A;
+ mem8[0x5A26] = 0x1F;
+ mem8[0x5A27] = 0x00;
+ mem8[0x5A28] = 0x00;
+ mem8[0x5A29] = 0x6A;
+ mem8[0x5A40] = 0x5C;
+ mem8[0x5A41] = 0x11;
+ mem8[0x5A42] = 0x01;
+ mem8[0x5A43] = 0x00;
+ mem8[0x5A44] = 0x5C;
+ mem8[0x5A45] = 0x11;
+ mem8[0x5A46] = 0x03;
+ mem8[0x5A47] = 0x00;
+ mem8[0x5A4A] = 0x07;
+ mem8[0x5A4B] = 0x00;
+ mem8[0x5A4C] = 0x5C;
+ mem8[0x5A4D] = 0x11;
+ mem8[0x5A4E] = 0x09;
+ mem8[0x5A4F] = 0x00;
+ mem8[0x5A50] = 0x5C;
+ mem8[0x5A51] = 0x31;
+ mem8[0x5A52] = 0x0C;
+ mem8[0x5A53] = 0x00;
+ mem8[0x5A54] = 0x5C;
+ mem8[0x5A55] = 0x11;
+ mem8[0x5A56] = 0x0F;
+ mem8[0x5A57] = 0x00;
+ mem8[0x5A58] = 0x5C;
+ mem8[0x5A59] = 0x11;
+ mem8[0x72A6] = 0x71;
+ mem8[0x72A7] = 0x4E;
+ mem8[0x72A8] = 0x71;
+ mem8[0x72A9] = 0x4E;
+ mem8[0x72AA] = 0x71;
+ mem8[0x72AB] = 0x4E;
+ mem8[0x72AC] = 0x71;
+ mem8[0x72AD] = 0x4E;
+ mem8[0x72AE] = 0x71;
+ mem8[0x72AF] = 0x4E;
+ mem8[0x72B0] = 0x71;
+ mem8[0x72B1] = 0x4E;
+ mem8[0x72B2] = 0x39;
+ mem8[0x72B3] = 0x30;
+ mem8[0x72B4] = 0xF1;
+ mem8[0x72B5] = 0x00;
+ mem8[0x72B6] = 0xFE;
+ mem8[0x72B7] = 0x9F;
+ mem8[0x72B8] = 0x00;
+ mem8[0x72B9] = 0x0C;
+ /* enable coin slots 1 and 2 */
+ mem8[0x71bc] = 0x0c;
+ kabuki_setup(wof_decode);
+ DRIVER_INIT_CALL(cps1);
+}
+
+DRIVER_INIT_MEMBER( cps_state, sk2h1q )
+{
+ uint8_t *mem8 = memregion("maincpu")->base();
+ // Stage Order
+ mem8[0x72a6] = 0x00;
+ // Disable Sprite Recoding
+ mem8[0x5d858] = 0x00;
+ mem8[0x5d859] = 0x61;
+ mem8[0x5d85a] = 0xe6;
+ mem8[0x5d85b] = 0x01;
+ mem8[0x5d890] = 0x6d;
+ mem8[0x5d891] = 0x0c;
+ mem8[0x5d892] = 0x00;
+ mem8[0x5d893] = 0x90;
+ mem8[0x5d894] = 0xd2;
+ mem8[0x5d895] = 0xe3;
+ mem8[0x5d8e8] = 0x90;
+ mem8[0x5d8e9] = 0x00;
+ mem8[0x5d8ea] = 0x00;
+ mem8[0x5d8eb] = 0x00;
+ mem8[0x5d8f8] = 0x90;
+ mem8[0x5d8f9] = 0x00;
+ mem8[0x5d8fa] = 0x00;
+ mem8[0x5d8fb] = 0x40;
+ // Patch protection? check
+ mem8[0xf11ec] = 0x71;
+ mem8[0xf11ed] = 0x4e;
+ mem8[0xf11ee] = 0x71;
+ mem8[0xf11ef] = 0x4e;
+ // Patch Q sound protection? check
+ mem8[0x5A0E] = 0x39;
+ mem8[0x5A0F] = 0x30;
+ mem8[0x5A10] = 0xF1;
+ mem8[0x5A12] = 0xFE;
+ mem8[0x5A13] = 0x9F;
+ mem8[0x5A14] = 0x00;
+ mem8[0x5A15] = 0x0C;
+ mem8[0x5A16] = 0x77;
+ mem8[0x5A17] = 0x00;
+ mem8[0x5A18] = 0xF4;
+ mem8[0x5A19] = 0x66;
+ mem8[0x5A1A] = 0xF9;
+ mem8[0x5A1B] = 0x4E;
+ mem8[0x5A1C] = 0x00;
+ mem8[0x5A1E] = 0xB2;
+ mem8[0x5A1F] = 0x72;
+ mem8[0x5A20] = 0x7C;
+ mem8[0x5A21] = 0x20;
+ mem8[0x5A22] = 0xF1;
+ mem8[0x5A23] = 0x00;
+ mem8[0x5A24] = 0x00;
+ mem8[0x5A25] = 0x80;
+ mem8[0x5A26] = 0x7C;
+ mem8[0x5A27] = 0x11;
+ mem8[0x5A29] = 0x00;
+ mem8[0x5A2A] = 0x01;
+ mem8[0x5A2C] = 0x7C;
+ mem8[0x5A2D] = 0x11;
+ mem8[0x5A2E] = 0x10;
+ mem8[0x5A2F] = 0x00;
+ mem8[0x5A30] = 0x0F;
+ mem8[0x5A31] = 0x00;
+ mem8[0x5A32] = 0x7C;
+ mem8[0x5A33] = 0x11;
+ mem8[0x5A34] = 0x00;
+ mem8[0x5A35] = 0x00;
+ mem8[0x5A36] = 0x07;
+ mem8[0x5A38] = 0x7C;
+ mem8[0x5A39] = 0x11;
+ mem8[0x5A3A] = 0x00;
+ mem8[0x5A3B] = 0x00;
+ mem8[0x5A3C] = 0x09;
+ mem8[0x5A3D] = 0x00;
+ mem8[0x5A3E] = 0x7C;
+ mem8[0x5A3F] = 0x11;
+ mem8[0x5A40] = 0x00;
+ mem8[0x5A41] = 0x00;
+ mem8[0x5A42] = 0x0C;
+ mem8[0x5A44] = 0x41;
+ mem8[0x5A48] = 0x7C;
+ mem8[0x5A4A] = 0x00;
+ mem8[0x5A4C] = 0x11;
+ mem8[0x5A4D] = 0x00;
+ mem8[0x5A4E] = 0x7C;
+ mem8[0x5A4F] = 0x11;
+ mem8[0x5A50] = 0x00;
+ mem8[0x5A51] = 0x00;
+ mem8[0x5A52] = 0x17;
+ mem8[0x5A54] = 0x7C;
+ mem8[0x5A56] = 0x00;
+ mem8[0x5A58] = 0x19;
+ mem8[0x5A59] = 0x00;
+ mem8[0x5A5A] = 0x7C;
+ mem8[0x5A5B] = 0x11;
+ mem8[0x5A5C] = 0x00;
+ mem8[0x5A5D] = 0x00;
+ mem8[0x5A5E] = 0x13;
+ mem8[0x5A60] = 0x7C;
+ mem8[0x5A62] = 0x00;
+ mem8[0x5A64] = 0x15;
+ mem8[0x5A65] = 0x00;
+ mem8[0x5A66] = 0x7C;
+ mem8[0x5A67] = 0x11;
+ mem8[0x5A68] = 0x00;
+ mem8[0x5A69] = 0x00;
+ mem8[0x5A6A] = 0x1F;
+ mem8[0x5A6C] = 0xF9;
+ mem8[0x5A6D] = 0x4E;
+ mem8[0x5A6E] = 0x05;
+ mem8[0x5A70] = 0x2C;
+ mem8[0x5A71] = 0xE8;
+ mem8[0x729A] = 0xF9;
+ mem8[0x729C] = 0x00;
+ mem8[0x729D] = 0x00;
+ mem8[0x729E] = 0x0E;
+ mem8[0x729F] = 0x5A;
+ mem8[0x5E826] = 0xF9;
+ mem8[0x5E827] = 0x4E;
+ mem8[0x5E828] = 0x00;
+ mem8[0x5E82A] = 0x20;
+ mem8[0x5E82B] = 0x5A;
+ kabuki_setup(wof_decode);
+ DRIVER_INIT_CALL(cps1);
+}
+
+DRIVER_INIT_MEMBER( cps_state, sk2h1 )
+{
+ uint8_t *mem8 = memregion("maincpu")->base();
+ // Stage Order
+ mem8[0x72a6] = 0x00;
+ // Disable Sprite Recoding
+ mem8[0x5d858] = 0x00;
+ mem8[0x5d859] = 0x61;
+ mem8[0x5d85a] = 0xe6;
+ mem8[0x5d85b] = 0x01;
+ mem8[0x5d890] = 0x6d;
+ mem8[0x5d891] = 0x0c;
+ mem8[0x5d892] = 0x00;
+ mem8[0x5d893] = 0x90;
+ mem8[0x5d894] = 0xd2;
+ mem8[0x5d895] = 0xe3;
+ mem8[0x5d8e8] = 0x90;
+ mem8[0x5d8e9] = 0x00;
+ mem8[0x5d8ea] = 0x00;
+ mem8[0x5d8eb] = 0x00;
+ mem8[0x5d8f8] = 0x90;
+ mem8[0x5d8f9] = 0x00;
+ mem8[0x5d8fa] = 0x00;
+ mem8[0x5d8fb] = 0x40;
+ // Patch protection? check
+ mem8[0xf11ec] = 0x71;
+ mem8[0xf11ed] = 0x4e;
+ mem8[0xf11ee] = 0x71;
+ mem8[0xf11ef] = 0x4e;
+ DRIVER_INIT_CALL(cps1);
+}
+
+DRIVER_INIT_MEMBER( cps_state, sk2h3 )
+{
+ uint8_t *mem8 = memregion("maincpu")->base();
+ // Disable Sprite Recoding
+ mem8[0x5d8e8] = 0x90;
+ mem8[0x5d8eb] = 0x00;
+ mem8[0x5d8f8] = 0x90;
+
+ mem8[0x5d858] = 0x00;
+ mem8[0x5d859] = 0x61;
+ mem8[0x5d85a] = 0xe6;
+ mem8[0x5d85b] = 0x01;
+
+ mem8[0x5d890] = 0x6d;
+ mem8[0x5d891] = 0x0c;
+ mem8[0x5d892] = 0x00;
+ mem8[0x5d893] = 0x90;
+ mem8[0x5d894] = 0xd2;
+ mem8[0x5d895] = 0xe3;
+
+ //Transitions
+ //mem8[0x02449] = 0x07; // fixed by above code
+
+ //Protections
+ mem8[0x708da] = 0xff;
+ mem8[0x708db] = 0xff;
+ mem8[0x708dc] = 0xff;
+ mem8[0x708dd] = 0xff;
+ mem8[0xf11eb] = 0x60;
+
+ DRIVER_INIT_CALL(cps1);
+}
+
+DRIVER_INIT_MEMBER( cps_state, sk2h21 )
+{
+ uint8_t *mem8 = memregion("maincpu")->base();
+ // Patch Q sound protection? check
+ mem8[0x0554] = 0xb4;
+ mem8[0x0555] = 0x54;
+ mem8[0x5A50] = 0x5c;
+ mem8[0x5A51] = 0x31;
+ mem8[0x5A52] = 0x0c;
+ mem8[0x5A53] = 0x00;
+ mem8[0x5A54] = 0x5c;
+ mem8[0x5A55] = 0x11;
+ mem8[0x5A56] = 0x0f;
+ mem8[0x5A58] = 0x5c;
+ mem8[0x5A59] = 0x11;
+ mem8[0x5A5A] = 0x11;
+ mem8[0x5A5B] = 0x00;
+ kabuki_setup(wof_decode);
+ DRIVER_INIT_CALL(cps1);
+}
+
+DRIVER_INIT_MEMBER( cps_state, sk2h22 )
+{
+ uint8_t *mem8 = memregion("maincpu")->base();
+ // Protection
+ mem8[0xE7AD0] = 0x71;
+ mem8[0xE7AD1] = 0x4E;
+
+ // Disable Sprite Recoding
+ mem8[0x5df26] = 0x90;
+ mem8[0x5df29] = 0x00;
+ mem8[0x5df36] = 0x90;
+
+ mem8[0x5de96] = 0x00;
+ mem8[0x5de97] = 0x61;
+ mem8[0x5de98] = 0xe6;
+ mem8[0x5de99] = 0x01;
+
+ mem8[0x5dece] = 0x6d;
+ mem8[0x5decf] = 0x0c;
+ mem8[0x5ded0] = 0x00;
+ mem8[0x5ded1] = 0x90;
+ mem8[0x5ded2] = 0xd2;
+ mem8[0x5ded3] = 0xe3;
+
+ DRIVER_INIT_CALL(cps1);
+}
+
+DRIVER_INIT_MEMBER( cps_state, sk2h31 )
+{
+ uint8_t *mem8 = memregion("maincpu")->base();
+ // Disable Sprite Recoding
+ mem8[0x5df26] = 0x90;
+ mem8[0x5df29] = 0x00;
+ mem8[0x5df36] = 0x90;
+
+ mem8[0x5de96] = 0x00;
+ mem8[0x5de97] = 0x61;
+ mem8[0x5de98] = 0xe6;
+ mem8[0x5de99] = 0x01;
+
+ mem8[0x5dece] = 0x6d;
+ mem8[0x5decf] = 0x0c;
+ mem8[0x5ded0] = 0x00;
+ mem8[0x5ded1] = 0x90;
+ mem8[0x5ded2] = 0xd2;
+ mem8[0x5ded3] = 0xe3;
+
+ // Patch Q sound protection? check
+ mem8[0x5A0E] = 0x39;
+ mem8[0x5A0F] = 0x30;
+ mem8[0x5A10] = 0xF1;
+ mem8[0x5A12] = 0xFE;
+ mem8[0x5A13] = 0x9F;
+ mem8[0x5A14] = 0x00;
+ mem8[0x5A15] = 0x0C;
+ mem8[0x5A16] = 0x77;
+ mem8[0x5A17] = 0x00;
+ mem8[0x5A18] = 0xF4;
+ mem8[0x5A19] = 0x66;
+ mem8[0x5A1A] = 0xF9;
+ mem8[0x5A1B] = 0x4E;
+ mem8[0x5A1C] = 0x00;
+ mem8[0x5A1E] = 0xBE;
+ mem8[0x5A1F] = 0x72;
+ mem8[0x5A20] = 0x7C;
+ mem8[0x5A21] = 0x20;
+ mem8[0x5A22] = 0xF1;
+ mem8[0x5A23] = 0x00;
+ mem8[0x5A24] = 0x00;
+ mem8[0x5A25] = 0x80;
+ mem8[0x5A26] = 0x7C;
+ mem8[0x5A27] = 0x11;
+ mem8[0x5A29] = 0x00;
+ mem8[0x5A2A] = 0x01;
+ mem8[0x5A2C] = 0x7C;
+ mem8[0x5A2D] = 0x11;
+ mem8[0x5A2E] = 0x10;
+ mem8[0x5A2F] = 0x00;
+ mem8[0x5A30] = 0x0F;
+ mem8[0x5A31] = 0x00;
+ mem8[0x5A32] = 0x7C;
+ mem8[0x5A33] = 0x11;
+ mem8[0x5A34] = 0x00;
+ mem8[0x5A35] = 0x00;
+ mem8[0x5A36] = 0x07;
+ mem8[0x5A38] = 0x7C;
+ mem8[0x5A39] = 0x11;
+ mem8[0x5A3A] = 0x00;
+ mem8[0x5A3B] = 0x00;
+ mem8[0x5A3C] = 0x09;
+ mem8[0x5A3D] = 0x00;
+ mem8[0x5A3E] = 0x7C;
+ mem8[0x5A3F] = 0x11;
+ mem8[0x5A40] = 0x00;
+ mem8[0x5A41] = 0x00;
+ mem8[0x5A42] = 0x0C;
+ mem8[0x5A44] = 0x41;
+ mem8[0x5A48] = 0x7C;
+ mem8[0x5A4A] = 0x00;
+ mem8[0x5A4C] = 0x11;
+ mem8[0x5A4D] = 0x00;
+ mem8[0x5A4E] = 0x7C;
+ mem8[0x5A4F] = 0x11;
+ mem8[0x5A50] = 0x00;
+ mem8[0x5A51] = 0x00;
+ mem8[0x5A52] = 0x17;
+ mem8[0x5A54] = 0x7C;
+ mem8[0x5A56] = 0x00;
+ mem8[0x5A58] = 0x19;
+ mem8[0x5A59] = 0x00;
+ mem8[0x5A5A] = 0x7C;
+ mem8[0x5A5B] = 0x11;
+ mem8[0x5A5C] = 0x00;
+ mem8[0x5A5D] = 0x00;
+ mem8[0x5A5E] = 0x13;
+ mem8[0x5A60] = 0x7C;
+ mem8[0x5A62] = 0x00;
+ mem8[0x5A64] = 0x15;
+ mem8[0x5A65] = 0x00;
+ mem8[0x5A66] = 0x7C;
+ mem8[0x5A67] = 0x11;
+ mem8[0x5A68] = 0x00;
+ mem8[0x5A69] = 0x00;
+ mem8[0x5A6A] = 0x1F;
+ mem8[0x5A6C] = 0xF9;
+ mem8[0x5A6D] = 0x4E;
+ mem8[0x5A6E] = 0x05;
+ mem8[0x5A70] = 0x6A;
+ mem8[0x5A71] = 0xEE;
+ mem8[0x72A6] = 0xF9;
+ mem8[0x72A8] = 0x00;
+ mem8[0x72A9] = 0x00;
+ mem8[0x72AA] = 0x0E;
+ mem8[0x72AB] = 0x5A;
+ mem8[0x5EE64] = 0xF9;
+ mem8[0x5EE65] = 0x4E;
+ mem8[0x5EE66] = 0x00;
+ mem8[0x5EE68] = 0x20;
+ mem8[0x5EE69] = 0x5A;
+ kabuki_setup(wof_decode);
+ DRIVER_INIT_CALL(cps1);
+}
+
diff --git a/docs/release/src/hbmame/drivers/cps2.cpp b/docs/release/src/hbmame/drivers/cps2.cpp
new file mode 100644
index 00000000000..67cfd6cbff4
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/cps2.cpp
@@ -0,0 +1,1975 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/cps2.cpp"
+
+ROM_START( 1944da )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "nffu_da.03", 0x000000, 0x80000, CRC(78188e42) SHA1(add31daba3e6916a1facfaf32feeaba228e9a6ab) )
+ ROM_LOAD16_WORD_SWAP( "nff.04", 0x080000, 0x80000, CRC(dba1c66e) SHA1(4764e77d4da5d19d9acded27df1e1bcba06b0fcf) )
+ ROM_LOAD16_WORD_SWAP( "nffu.05", 0x100000, 0x80000, CRC(ea813eb7) SHA1(34e0175a5f22d08c3538369b4bfd077a7427a128) )
+
+ ROM_REGION( 0x2000000, "gfx", 0 )
+ ROMX_LOAD( "nff.13m", 0x0000000, 0x400000, CRC(c9fca741) SHA1(1781d4fc18b6d6f79b7b39d9bcace750fb61a5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "nff.15m", 0x0000002, 0x400000, CRC(f809d898) SHA1(a0b6af49e1780678d808c317b875161cedddb314) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "nff.17m", 0x0000004, 0x400000, CRC(15ba4507) SHA1(bed6a82bf1dc1aa501d4c2d098115a15e18d446a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "nff.19m", 0x0000006, 0x400000, CRC(3dd41b8c) SHA1(676078baad789e25f6e5a79de29672587be7ff00) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "nff.14m", 0x1000000, 0x100000, CRC(3fe3a54b) SHA1(0a8e5cae141d24fd8b3cb11796c44728b0acd69e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "nff.16m", 0x1000002, 0x100000, CRC(565cd231) SHA1(0aecd433fb4ca2de1aca9fbb1e314fb1f6979321) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "nff.18m", 0x1000004, 0x100000, CRC(63ca5988) SHA1(30137fa77573c84bcc24570bccb7dba61ddb413c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "nff.20m", 0x1000006, 0x100000, CRC(21eb8f3b) SHA1(efa69f19a958047dd91a294c88857ed3133fcbef) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "nff.01", 0x00000, 0x08000, CRC(d2e44318) SHA1(33e45f6fe9fed098a4c072b8c39406aef1a949b2) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "nff.11m", 0x000000, 0x400000, CRC(243e4e05) SHA1(83281f7290ac105a3f9a7507cbc11317d45ba706) )
+ ROM_LOAD16_WORD_SWAP( "nff.12m", 0x400000, 0x400000, CRC(4fcf1600) SHA1(36f18c5d92b79433bdf7088b29a244708929d48e) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "phoenix.key", 0x000000, 0x000014, CRC(2cf772b0) SHA1(eff33c65a4f3862c231f9e4d6fefa7b34398dbf2) )
+ROM_END
+
+ROM_START( 1944fp )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "nffu.03fp", 0x000000, 0x80000, CRC(3239f3a2) SHA1(22f6e5772c3f2f98db79c9ec6809cb0343b7c877) )
+ ROM_LOAD16_WORD_SWAP( "nff.04fp", 0x080000, 0x80000, CRC(91297ec9) SHA1(3ef111613e758540a3187d972018b100bcb1652a) )
+ ROM_LOAD16_WORD_SWAP( "nffu.05", 0x100000, 0x80000, CRC(ea813eb7) SHA1(34e0175a5f22d08c3538369b4bfd077a7427a128) )
+
+ ROM_REGION( 0x2000000, "gfx", 0 )
+ ROMX_LOAD( "nff.13m", 0x0000000, 0x400000, CRC(c9fca741) SHA1(1781d4fc18b6d6f79b7b39d9bcace750fb61a5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "nff.15m", 0x0000002, 0x400000, CRC(f809d898) SHA1(a0b6af49e1780678d808c317b875161cedddb314) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "nff.17m", 0x0000004, 0x400000, CRC(15ba4507) SHA1(bed6a82bf1dc1aa501d4c2d098115a15e18d446a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "nff.19m", 0x0000006, 0x400000, CRC(3dd41b8c) SHA1(676078baad789e25f6e5a79de29672587be7ff00) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "nff.14m", 0x1000000, 0x100000, CRC(3fe3a54b) SHA1(0a8e5cae141d24fd8b3cb11796c44728b0acd69e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "nff.16m", 0x1000002, 0x100000, CRC(565cd231) SHA1(0aecd433fb4ca2de1aca9fbb1e314fb1f6979321) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "nff.18m", 0x1000004, 0x100000, CRC(63ca5988) SHA1(30137fa77573c84bcc24570bccb7dba61ddb413c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "nff.20m", 0x1000006, 0x100000, CRC(21eb8f3b) SHA1(efa69f19a958047dd91a294c88857ed3133fcbef) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "nff.01", 0x00000, 0x08000, CRC(d2e44318) SHA1(33e45f6fe9fed098a4c072b8c39406aef1a949b2) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "nff.11m", 0x000000, 0x400000, CRC(243e4e05) SHA1(83281f7290ac105a3f9a7507cbc11317d45ba706) )
+ ROM_LOAD16_WORD_SWAP( "nff.12m", 0x400000, 0x400000, CRC(4fcf1600) SHA1(36f18c5d92b79433bdf7088b29a244708929d48e) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "1944fp.key", 0x000000, 0x000014, CRC(81b5e47e) SHA1(3dde33f070508859b04c4e4a393ea9548c48287c) )
+ROM_END
+
+
+ROM_START( ddsomavs )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "ddsomavs.03g", 0x000000, 0x80000, CRC(e28c61f2) SHA1(a15ba7e4d1c6e2e2c047e12edefc6b1564464496) )
+ ROM_LOAD16_WORD_SWAP( "ddsomavs.04g", 0x080000, 0x80000, CRC(145efa6f) SHA1(2da422bf43c4b4abd20ddcf7b0dd4a37f23d756a) )
+ ROM_LOAD16_WORD_SWAP( "dd2.05g", 0x100000, 0x80000, CRC(5eb1991c) SHA1(429a60b5396ff4192904867fbe0524268f0edbcb) )
+ ROM_LOAD16_WORD_SWAP( "dd2.06g", 0x180000, 0x80000, CRC(c26b5e55) SHA1(9590206f30459941880ff4b56c7f276cc78e3a22) )
+ ROM_LOAD16_WORD_SWAP( "dd2.07", 0x200000, 0x80000, CRC(909a0b8b) SHA1(58bda17c36063a79df8b5031755c7909a9bda221) )
+ ROM_LOAD16_WORD_SWAP( "dd2.08", 0x280000, 0x80000, CRC(e53c4d01) SHA1(bad872e4e793a39f68bc0e580772e982714b5876) )
+ ROM_LOAD16_WORD_SWAP( "dd2.09", 0x300000, 0x80000, CRC(5f86279f) SHA1(c2a454e5f821b1cdd49f2cf0602e9bfb7ba63340) )
+ ROM_LOAD16_WORD_SWAP( "dd2.10", 0x380000, 0x80000, CRC(ad954c26) SHA1(468c01735dbdb1114b37060546a660678290a97f) )
+
+ ROM_REGION( 0x1800000, "gfx", 0 )
+ ROMX_LOAD( "dd2.13m", 0x0000000, 0x400000, CRC(a46b4e6e) SHA1(fb90f42868c581c481b4ceff9f692753fb186b30) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "dd2.15m", 0x0000002, 0x400000, CRC(d5fc50fc) SHA1(bc692f17b18bb47a724cd5152377cd5ccd6e184a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "dd2.17m", 0x0000004, 0x400000, CRC(837c0867) SHA1(3d6db290a8f76299a23543f0ccf6a7905e1088ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "dd2.19m", 0x0000006, 0x400000, CRC(bb0ec21c) SHA1(e43ccc1cf63ccd2b504cc9fd701af849a7321914) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "dd2.14m", 0x1000000, 0x200000, CRC(6d824ce2) SHA1(0ccfe6c8a944937718e28a1a373b5822c7b7001b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "dd2.16m", 0x1000002, 0x200000, CRC(79682ae5) SHA1(ee84f4791c29ce9e2bae06ba3ec47ff4d2cd7054) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "dd2.18m", 0x1000004, 0x200000, CRC(acddd149) SHA1(7f50de9b2d1cc733594c642be1804190519caffa) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "dd2.20m", 0x1000006, 0x200000, CRC(117fb0c0) SHA1(15c01fa1a71b6469b0e1bde0ce5835c5ff9d938c) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "dd2.01", 0x00000, 0x08000, CRC(99d657e5) SHA1(1528dd6b07a0e79951a35c0457c8a9c9770e9c78) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "dd2.02", 0x28000, 0x20000, CRC(117a3824) SHA1(14f3a12170b601c5466c93af9d2f24e0b386b4e4) )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "dd2.11m", 0x000000, 0x200000, CRC(98d0c325) SHA1(7406e8d943d77c468eb418c4113261f4ab973bbf) )
+ ROM_LOAD16_WORD_SWAP( "dd2.12m", 0x200000, 0x200000, CRC(5ea2e7fa) SHA1(0e6a9fd007f637adcb2226c902394f07de45e803) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "ddsoma.key", 0x000000, 0x000014, CRC(8c3cc560) SHA1(ad19e78b938a67c9f5ed0dcd5c68b383e6ce0575) )
+ROM_END
+
+ROM_START( ddsomchs )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "dd2j.03g", 0x000000, 0x80000, CRC(e6c8c985) SHA1(0736a84d7d9d37d51826eac6826a7728260bc625) )
+ ROM_LOAD16_WORD_SWAP( "dd2j.04g", 0x080000, 0x80000, CRC(8386c0bd) SHA1(59bfc71914ec2bb7d1b9f327b25d2399181d4bb2) )
+ ROM_LOAD16_WORD_SWAP( "dd2.05g", 0x100000, 0x80000, CRC(5eb1991c) SHA1(429a60b5396ff4192904867fbe0524268f0edbcb) )
+ ROM_LOAD16_WORD_SWAP( "dd2.06g", 0x180000, 0x80000, CRC(c26b5e55) SHA1(9590206f30459941880ff4b56c7f276cc78e3a22) )
+ ROM_LOAD16_WORD_SWAP( "dd2.07", 0x200000, 0x80000, CRC(909a0b8b) SHA1(58bda17c36063a79df8b5031755c7909a9bda221) )
+ ROM_LOAD16_WORD_SWAP( "dd2.08", 0x280000, 0x80000, CRC(e53c4d01) SHA1(bad872e4e793a39f68bc0e580772e982714b5876) )
+ ROM_LOAD16_WORD_SWAP( "dd2.09", 0x300000, 0x80000, CRC(5f86279f) SHA1(c2a454e5f821b1cdd49f2cf0602e9bfb7ba63340) )
+ ROM_LOAD16_WORD_SWAP( "dd2.10", 0x380000, 0x80000, CRC(ad954c26) SHA1(468c01735dbdb1114b37060546a660678290a97f) )
+
+ ROM_REGION( 0x1800000, "gfx", 0 )
+ ROM_LOAD( "ddsomchs.13m", 0x0000000, 0x1000000, CRC(9b6a8bd7) SHA1(d6bf2c2c35904e0fe4c299a351c766b2e25e709c) )
+ ROM_LOAD( "ddsomchs.14m", 0x1000000, 0x800000, CRC(39b30ad6) SHA1(b2f0a1b97986484d449da9a4e85a13165002d6cc) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "dd2.01", 0x00000, 0x08000, CRC(99d657e5) SHA1(1528dd6b07a0e79951a35c0457c8a9c9770e9c78) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "dd2.02", 0x28000, 0x20000, CRC(117a3824) SHA1(14f3a12170b601c5466c93af9d2f24e0b386b4e4) )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "dd2.11m", 0x000000, 0x200000, CRC(98d0c325) SHA1(7406e8d943d77c468eb418c4113261f4ab973bbf) )
+ ROM_LOAD16_WORD_SWAP( "dd2.12m", 0x200000, 0x200000, CRC(5ea2e7fa) SHA1(0e6a9fd007f637adcb2226c902394f07de45e803) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "ddsomj.key", 0x000000, 0x000014, CRC(d8dadb22) SHA1(e07b50ae464c35439333dd983e2acac48a1ce529) )
+ROM_END
+
+ROM_START( ddsomhp )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "ddsomhp.03e", 0x000000, 0x80000, CRC(5a9574e5) SHA1(c810b9bf495d4cd44305e27992848aab207da922) )
+ ROM_LOAD16_WORD_SWAP( "dd2e.04e", 0x080000, 0x80000, CRC(5b7052b6) SHA1(8a5f069f450da939d0f02518751cd9815d621d81) )
+ ROM_LOAD16_WORD_SWAP( "ddsomhp.05e", 0x100000, 0x80000, CRC(554e9b24) SHA1(6b78662c0e377f5595cef9d2b49d6af0ece19fd1) )
+ ROM_LOAD16_WORD_SWAP( "dd2e.06e", 0x180000, 0x80000, CRC(e0807e1e) SHA1(4b978f5f647fff84d456eb14c9fd202d9a276997) )
+ ROM_LOAD16_WORD_SWAP( "dd2e.07", 0x200000, 0x80000, CRC(bb777a02) SHA1(4b2c65a9129fc2262b35be1c10d06f60f5108981) )
+ ROM_LOAD16_WORD_SWAP( "dd2e.08", 0x280000, 0x80000, CRC(30970890) SHA1(fd366a9323230f6997006ab4cc216f9a97865ebe) )
+ ROM_LOAD16_WORD_SWAP( "dd2e.09", 0x300000, 0x80000, CRC(99e2194d) SHA1(cbcecdf5beeac3eac6c2c3fa395710e1b8347531) )
+ ROM_LOAD16_WORD_SWAP( "dd2e.10", 0x380000, 0x80000, CRC(e198805e) SHA1(37ae9d88d98c59337b657cfa6feb56e4f9cae95f) )
+
+ ROM_REGION( 0x1800000, "gfx", 0 )
+ ROMX_LOAD( "dd2.13m", 0x0000000, 0x400000, CRC(a46b4e6e) SHA1(fb90f42868c581c481b4ceff9f692753fb186b30) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "dd2.15m", 0x0000002, 0x400000, CRC(d5fc50fc) SHA1(bc692f17b18bb47a724cd5152377cd5ccd6e184a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "dd2.17m", 0x0000004, 0x400000, CRC(837c0867) SHA1(3d6db290a8f76299a23543f0ccf6a7905e1088ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "dd2.19m", 0x0000006, 0x400000, CRC(bb0ec21c) SHA1(e43ccc1cf63ccd2b504cc9fd701af849a7321914) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "dd2.14m", 0x1000000, 0x200000, CRC(6d824ce2) SHA1(0ccfe6c8a944937718e28a1a373b5822c7b7001b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "dd2.16m", 0x1000002, 0x200000, CRC(79682ae5) SHA1(ee84f4791c29ce9e2bae06ba3ec47ff4d2cd7054) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "dd2.18m", 0x1000004, 0x200000, CRC(acddd149) SHA1(7f50de9b2d1cc733594c642be1804190519caffa) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "dd2.20m", 0x1000006, 0x200000, CRC(117fb0c0) SHA1(15c01fa1a71b6469b0e1bde0ce5835c5ff9d938c) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "dd2.01", 0x00000, 0x08000, CRC(99d657e5) SHA1(1528dd6b07a0e79951a35c0457c8a9c9770e9c78) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "dd2.02", 0x28000, 0x20000, CRC(117a3824) SHA1(14f3a12170b601c5466c93af9d2f24e0b386b4e4) )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "dd2.11m", 0x000000, 0x200000, CRC(98d0c325) SHA1(7406e8d943d77c468eb418c4113261f4ab973bbf) )
+ ROM_LOAD16_WORD_SWAP( "dd2.12m", 0x200000, 0x200000, CRC(5ea2e7fa) SHA1(0e6a9fd007f637adcb2226c902394f07de45e803) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "ddsom.key", 0x000000, 0x000014, CRC(541e425d) SHA1(9239f9ad7c2ed0d7d062da2db92b07104b5bb9a7) )
+ROM_END
+
+ROM_START( ddsomjfs )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "ddsomjfs.03g", 0x000000, 0x80000, CRC(cc650f5b) SHA1(b39dd217b8a4cf82f994e1657909ff001fc4721b) )
+ ROM_LOAD16_WORD_SWAP( "dd2j.04g", 0x080000, 0x80000, CRC(8386c0bd) SHA1(59bfc71914ec2bb7d1b9f327b25d2399181d4bb2) )
+ ROM_LOAD16_WORD_SWAP( "dd2.05g", 0x100000, 0x80000, CRC(5eb1991c) SHA1(429a60b5396ff4192904867fbe0524268f0edbcb) )
+ ROM_LOAD16_WORD_SWAP( "dd2.06g", 0x180000, 0x80000, CRC(c26b5e55) SHA1(9590206f30459941880ff4b56c7f276cc78e3a22) )
+ ROM_LOAD16_WORD_SWAP( "ddsomjfs.07", 0x200000, 0x80000, CRC(9c520a00) SHA1(7f801f86ebc725bbbeae9eb832b843b282428ec1) )
+ ROM_LOAD16_WORD_SWAP( "dd2.08", 0x280000, 0x80000, CRC(e53c4d01) SHA1(bad872e4e793a39f68bc0e580772e982714b5876) )
+ ROM_LOAD16_WORD_SWAP( "dd2.09", 0x300000, 0x80000, CRC(5f86279f) SHA1(c2a454e5f821b1cdd49f2cf0602e9bfb7ba63340) )
+ ROM_LOAD16_WORD_SWAP( "dd2.10", 0x380000, 0x80000, CRC(ad954c26) SHA1(468c01735dbdb1114b37060546a660678290a97f) )
+
+ ROM_REGION( 0x1800000, "gfx", 0 )
+ ROMX_LOAD( "dd2.13m", 0x0000000, 0x400000, CRC(a46b4e6e) SHA1(fb90f42868c581c481b4ceff9f692753fb186b30) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "dd2.15m", 0x0000002, 0x400000, CRC(d5fc50fc) SHA1(bc692f17b18bb47a724cd5152377cd5ccd6e184a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "dd2.17m", 0x0000004, 0x400000, CRC(837c0867) SHA1(3d6db290a8f76299a23543f0ccf6a7905e1088ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "dd2.19m", 0x0000006, 0x400000, CRC(bb0ec21c) SHA1(e43ccc1cf63ccd2b504cc9fd701af849a7321914) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "dd2.14m", 0x1000000, 0x200000, CRC(6d824ce2) SHA1(0ccfe6c8a944937718e28a1a373b5822c7b7001b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "dd2.16m", 0x1000002, 0x200000, CRC(79682ae5) SHA1(ee84f4791c29ce9e2bae06ba3ec47ff4d2cd7054) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "dd2.18m", 0x1000004, 0x200000, CRC(acddd149) SHA1(7f50de9b2d1cc733594c642be1804190519caffa) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "dd2.20m", 0x1000006, 0x200000, CRC(117fb0c0) SHA1(15c01fa1a71b6469b0e1bde0ce5835c5ff9d938c) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "dd2.01", 0x00000, 0x08000, CRC(99d657e5) SHA1(1528dd6b07a0e79951a35c0457c8a9c9770e9c78) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "dd2.02", 0x28000, 0x20000, CRC(117a3824) SHA1(14f3a12170b601c5466c93af9d2f24e0b386b4e4) )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "dd2.11m", 0x000000, 0x200000, CRC(98d0c325) SHA1(7406e8d943d77c468eb418c4113261f4ab973bbf) )
+ ROM_LOAD16_WORD_SWAP( "dd2.12m", 0x200000, 0x200000, CRC(5ea2e7fa) SHA1(0e6a9fd007f637adcb2226c902394f07de45e803) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "ddsomj.key", 0x000000, 0x000014, CRC(d8dadb22) SHA1(e07b50ae464c35439333dd983e2acac48a1ce529) )
+ROM_END
+
+
+ROM_START( halfway )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "halfway.03", 0x000000, 0x080000, CRC(55ce8d4a) SHA1(3b7342afbfa1244cb5cbf5be7391d3e1f8231822) )
+ ROM_LOAD16_WORD_SWAP( "tohell.04", 0x080000, 0x080000, CRC(71060b9e) SHA1(007a174ceca6ae080f19f088bf0fc6cd0fe2510c) )
+
+ ROM_REGION( 0x1000000, "gfx", 0 )
+ ROMX_LOAD( "pga.13m", 0x0000000, 0x400000, CRC(5194c198) SHA1(f9ae16cad8b30547b8dd3a1ea1d6e845d76ccefe) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "pga.15m", 0x0000002, 0x400000, CRC(b794e83f) SHA1(0332fa798b2955464ab336929866c9185bd4b520) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "pga.17m", 0x0000004, 0x400000, CRC(87f22918) SHA1(7f048d66593f385526bd2c669cf6b8ad58d12bbf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "pga.19m", 0x0000006, 0x400000, CRC(65ffb45b) SHA1(9c21187519c1ec95c5a960b2c815ee41ace4fa7e) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "pga.01", 0x00000, 0x08000, CRC(bdbfa992) SHA1(7c5496c1daaea6a7ab95c0b25625d325ec3427cc) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "redlabel.11m", 0x000000, 0x400000, CRC(33ebf625) SHA1(39e5f9afd37a258005b0143fa38b9c53b63f700d) )
+ ROM_LOAD16_WORD_SWAP( "redlabel.12m", 0x000000, 0x400000, CRC(47f25cf4) SHA1(714b5baf146d720cc86f77aeee5b1160f553d958) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "phoenix.key", 0x000000, 0x000014, CRC(2cf772b0) SHA1(eff33c65a4f3862c231f9e4d6fefa7b34398dbf2) )
+ROM_END
+
+
+ROM_START( mpangjd )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "mpnj_d.03a", 0x000000, 0x80000, CRC(dac63128) SHA1(e5ee8f6d698a28dbf54520473520e40efadf30e3) )
+ ROM_LOAD16_WORD_SWAP( "mpnj_d.04a", 0x080000, 0x80000, CRC(d0b2592b) SHA1(f18c026776326f9bab70d1a8f66dd5fffb115b1b) )
+
+ ROM_REGION( 0x1000000, "gfx", 0 )
+ ROMX_LOAD( "mpn-simm.01c", 0x0000000, 0x200000, CRC(388db66b) SHA1(7416cce3d0dbea71c92ea9f72f5536146f757b45) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm
+ ROMX_LOAD( "mpn-simm.01d", 0x0000001, 0x200000, CRC(aff1b494) SHA1(d376c02ce01e71a7707d3d3fe5b0ae59ce781686) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm
+ ROMX_LOAD( "mpn-simm.01a", 0x0000002, 0x200000, CRC(a9c4857b) SHA1(66f538105c710d1480141e48a15b1a760f5ce985) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm
+ ROMX_LOAD( "mpn-simm.01b", 0x0000003, 0x200000, CRC(f759df22) SHA1(1678e3e819dd808f3a6fdd52b7c933eac4777b5b) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm
+ ROMX_LOAD( "mpn-simm.03c", 0x0000004, 0x200000, CRC(dec6b720) SHA1(331776e1cba3fb82071e7c2195dc4ae27b3613a2) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm
+ ROMX_LOAD( "mpn-simm.03d", 0x0000005, 0x200000, CRC(f8774c18) SHA1(58e0ea4dd62e39bcfaa3a2be4ef08eb2f0bd3c00) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm
+ ROMX_LOAD( "mpn-simm.03a", 0x0000006, 0x200000, CRC(c2aea4ec) SHA1(f5e2a815fa802598611efa48e5de97e929155e77) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm
+ ROMX_LOAD( "mpn-simm.03b", 0x0000007, 0x200000, CRC(84d6dc33) SHA1(f5ababb479facc08c425381570644230c09334e7) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "mpn.01", 0x00000, 0x08000, CRC(90c7adb6) SHA1(a2653e977e5e0457b249e098e5ca0abc93dac336) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "mpn-simm.05a", 0x000000, 0x200000, CRC(318a2e21) SHA1(c573cd88f8279a062c73ef1d79cd8421dbdcd93e) ) // ROM on a simm
+ ROM_LOAD16_WORD_SWAP( "mpn-simm.05b", 0x200000, 0x200000, CRC(5462f4e8) SHA1(299fbdab700e735e6395c5d9e3f079bb2e3dbd73) ) // ROM on a simm
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "phoenix.key", 0x000000, 0x000014, CRC(2cf772b0) SHA1(eff33c65a4f3862c231f9e4d6fefa7b34398dbf2) )
+ROM_END
+
+
+ROM_START( mshjphp )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "mshjphp.03", 0x000000, 0x80000, CRC(31ae1efc) SHA1(02d3447edceb07ae4e40b068d8a5637547cbc17e) )
+ ROM_LOAD16_WORD_SWAP( "mshj.04g", 0x080000, 0x80000, CRC(61d791c6) SHA1(9f883bcc48058a99c4ba653d0855c58c5d081243) )
+ ROM_LOAD16_WORD_SWAP( "msh.05a", 0x100000, 0x80000, CRC(f37539e6) SHA1(770febc25ca5615b6c2023727edab3c68b15b2c4) )
+ ROM_LOAD16_WORD_SWAP( "msh.06b", 0x180000, 0x80000, CRC(803e3fa4) SHA1(0acdeda65002521bf24130cbf06f9faa1dcef9e5) )
+ ROM_LOAD16_WORD_SWAP( "msh.07a", 0x200000, 0x80000, CRC(c45f8e27) SHA1(4d28e0782c31ce56e728ac6ef5edd10437f00637) )
+ ROM_LOAD16_WORD_SWAP( "msh.08a", 0x280000, 0x80000, CRC(9ca6f12c) SHA1(26ad682667b983b805e1f577426e5fca8ee3c82b) )
+ ROM_LOAD16_WORD_SWAP( "msh.09a", 0x300000, 0x80000, CRC(82ec27af) SHA1(caf76268063ba91d28e8af684d60c2d71f29b9b9) )
+ ROM_LOAD16_WORD_SWAP( "msh.10b", 0x380000, 0x80000, CRC(8d931196) SHA1(983e62efcdb4c8db6bce6acf4f86acb9447b565d) )
+
+ ROM_REGION( 0x2000000, "gfx", 0 )
+ ROMX_LOAD( "msh.13m", 0x0000000, 0x400000, CRC(09d14566) SHA1(c96463654043f22da5e844c6da17aa9273dc3439) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "msh.15m", 0x0000002, 0x400000, CRC(ee962057) SHA1(24e359accb5f71a5863d7bad4088719fa547f88c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "msh.17m", 0x0000004, 0x400000, CRC(604ece14) SHA1(880fb62b33ba4cceb38635e4ec056fac11a3c70f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "msh.19m", 0x0000006, 0x400000, CRC(94a731e8) SHA1(1e784a3412e7361e3001494e1daf840ef8c20449) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "msh.14m", 0x1000000, 0x400000, CRC(4197973e) SHA1(93aeea1a480b5f452c8a40ae3fff956796b859fa) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "msh.16m", 0x1000002, 0x400000, CRC(438da4a0) SHA1(ca93b14c3a570f9dd582efbb3f0536a92e535042) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "msh.18m", 0x1000004, 0x400000, CRC(4db92d94) SHA1(f1b25ccc0627139ad5b287a8f2ab3b4a2fb8b8e4) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "msh.20m", 0x1000006, 0x400000, CRC(a2b0c6c0) SHA1(71016c01c1a706b73cf5b9ac7e384a030c6cf08d) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "msh.01", 0x00000, 0x08000, CRC(c976e6f9) SHA1(281025e5aaf97c0aeddc8bd0f737d092daadad9e) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "msh.02", 0x28000, 0x20000, CRC(ce67d0d9) SHA1(324226597cc5a11603f04085fef7715a314ecc05) )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "msh.11m", 0x000000, 0x200000, CRC(37ac6d30) SHA1(ec67421fbf4a08a686e76792cb35e9cbf04d022d) )
+ ROM_LOAD16_WORD_SWAP( "msh.12m", 0x200000, 0x200000, CRC(de092570) SHA1(a03d0df901f6ea79685eaed67db65bee14ec29c6) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "mshj.key", 0x000000, 0x000014, CRC(888761ac) SHA1(a1c72deedab2bafe5d594bba905a6274575b6e56) )
+ROM_END
+
+// mshvsfj with a rom changed
+ROM_START( mshvsemb )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "mshvsemb.03", 0x000000, 0x80000, CRC(86672cbb) SHA1(7dc683ed8cf5bc205851375deab0438a1105d581) )
+ ROM_LOAD16_WORD_SWAP( "mvsj.04i", 0x080000, 0x80000, CRC(32741ace) SHA1(36db3a3aeaf29369977593c051bf5665cffefb2d) )
+ ROM_LOAD16_WORD_SWAP( "mvs.05h", 0x100000, 0x80000, CRC(77870dc3) SHA1(924a7c82456bb44d7b0be65af11dbe1a2420a3f0) )
+ ROM_LOAD16_WORD_SWAP( "mvs.06a", 0x180000, 0x80000, CRC(959f3030) SHA1(fbbaa915324815246738f3426232e623f039ce26) )
+ ROM_LOAD16_WORD_SWAP( "mvs.07b", 0x200000, 0x80000, CRC(7f915bdb) SHA1(683da09c5ba55e31b59aa95a8e13c45dc574ab3c) )
+ ROM_LOAD16_WORD_SWAP( "mvs.08a", 0x280000, 0x80000, CRC(c2813884) SHA1(49e5d4bc48f90c8146cb6aafb9240aff0119f1a7) )
+ ROM_LOAD16_WORD_SWAP( "mvs.09b", 0x300000, 0x80000, CRC(3ba08818) SHA1(9ab132a3cac55fcccebe6c99b6fb0ba1305f8f6e) )
+ ROM_LOAD16_WORD_SWAP( "mvs.10b", 0x380000, 0x80000, CRC(cf0dba98) SHA1(f4c1f8a6e7a79ecc6241d5268b3039f8a09ea516) )
+
+ ROM_REGION( 0x2000000, "gfx", 0 )
+ ROMX_LOAD( "mvs.13m", 0x0000000, 0x400000, CRC(29b05fd9) SHA1(e8fdb1ee5515a560eb4256ae4fd99bb1192e1a87) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvs.15m", 0x0000002, 0x400000, CRC(faddccf1) SHA1(4ed03ea91883a0413325f57edcc1614120b5922c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvs.17m", 0x0000004, 0x400000, CRC(97aaf4c7) SHA1(6a054921cc14fe080cb3f62c391f8ae3cc7e8ba9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvs.19m", 0x0000006, 0x400000, CRC(cb70e915) SHA1(da4d2480d348ac6dfd01256a88f4f3db8357ae46) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvs.14m", 0x1000000, 0x400000, CRC(b3b1972d) SHA1(0f2c3fb7de014181ee481ec35d0578b2c116c2dc) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvs.16m", 0x1000002, 0x400000, CRC(08aadb5d) SHA1(3a2c222eca3e7df80ce69951b3db6442312751a4) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvs.18m", 0x1000004, 0x400000, CRC(c1228b35) SHA1(7afdfb552888c79d0fbb30242b3d917b87fad57a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvs.20m", 0x1000006, 0x400000, CRC(366cc6c2) SHA1(6f2a789087c8e404c5227b927fa8328c03593243) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "mvs.01", 0x00000, 0x08000, CRC(68252324) SHA1(138ef320ef27956b2ab5591d49a1315b7b0a194c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "mvs.02", 0x28000, 0x20000, CRC(b34e773d) SHA1(3bcf44bf06c35814cff29d244142db7abe05bd39) )
+
+ ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "mvs.11m", 0x000000, 0x400000, CRC(86219770) SHA1(4e5b68d382a5aa37f8b0b6434c53a2b95f5f9a4d) )
+ ROM_LOAD16_WORD_SWAP( "mvs.12m", 0x400000, 0x400000, CRC(f2fd7f68) SHA1(28a30d55d3eaf963006c7cbe7c288099cd3ba536) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "mshvsfj.key", 0x000000, 0x000014, CRC(565eeebb) SHA1(762844b59b2fcf529a26ad3dde8282415db926b3) )
+ROM_END
+
+// mshvsfj with 2 roms changed
+ROM_START( mshvsfjh )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "mshvsfjh.03", 0x000000, 0x80000, CRC(54ecd389) SHA1(be6d34587de852d93d575f7d1e5001e43f4be9e9) )
+ ROM_LOAD16_WORD_SWAP( "mshvsfjh.04", 0x080000, 0x80000, CRC(6031012f) SHA1(8905d52110f5c9da35ce4ec497c48ec73eb35e13) )
+ ROM_LOAD16_WORD_SWAP( "mvs.05h", 0x100000, 0x80000, CRC(77870dc3) SHA1(924a7c82456bb44d7b0be65af11dbe1a2420a3f0) )
+ ROM_LOAD16_WORD_SWAP( "mvs.06a", 0x180000, 0x80000, CRC(959f3030) SHA1(fbbaa915324815246738f3426232e623f039ce26) )
+ ROM_LOAD16_WORD_SWAP( "mvs.07b", 0x200000, 0x80000, CRC(7f915bdb) SHA1(683da09c5ba55e31b59aa95a8e13c45dc574ab3c) )
+ ROM_LOAD16_WORD_SWAP( "mvs.08a", 0x280000, 0x80000, CRC(c2813884) SHA1(49e5d4bc48f90c8146cb6aafb9240aff0119f1a7) )
+ ROM_LOAD16_WORD_SWAP( "mvs.09b", 0x300000, 0x80000, CRC(3ba08818) SHA1(9ab132a3cac55fcccebe6c99b6fb0ba1305f8f6e) )
+ ROM_LOAD16_WORD_SWAP( "mvs.10b", 0x380000, 0x80000, CRC(cf0dba98) SHA1(f4c1f8a6e7a79ecc6241d5268b3039f8a09ea516) )
+
+ ROM_REGION( 0x2000000, "gfx", 0 )
+ ROMX_LOAD( "mvs.13m", 0x0000000, 0x400000, CRC(29b05fd9) SHA1(e8fdb1ee5515a560eb4256ae4fd99bb1192e1a87) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvs.15m", 0x0000002, 0x400000, CRC(faddccf1) SHA1(4ed03ea91883a0413325f57edcc1614120b5922c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvs.17m", 0x0000004, 0x400000, CRC(97aaf4c7) SHA1(6a054921cc14fe080cb3f62c391f8ae3cc7e8ba9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvs.19m", 0x0000006, 0x400000, CRC(cb70e915) SHA1(da4d2480d348ac6dfd01256a88f4f3db8357ae46) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvs.14m", 0x1000000, 0x400000, CRC(b3b1972d) SHA1(0f2c3fb7de014181ee481ec35d0578b2c116c2dc) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvs.16m", 0x1000002, 0x400000, CRC(08aadb5d) SHA1(3a2c222eca3e7df80ce69951b3db6442312751a4) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvs.18m", 0x1000004, 0x400000, CRC(c1228b35) SHA1(7afdfb552888c79d0fbb30242b3d917b87fad57a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvs.20m", 0x1000006, 0x400000, CRC(366cc6c2) SHA1(6f2a789087c8e404c5227b927fa8328c03593243) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "mvs.01", 0x00000, 0x08000, CRC(68252324) SHA1(138ef320ef27956b2ab5591d49a1315b7b0a194c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "mvs.02", 0x28000, 0x20000, CRC(b34e773d) SHA1(3bcf44bf06c35814cff29d244142db7abe05bd39) )
+
+ ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "mvs.11m", 0x000000, 0x400000, CRC(86219770) SHA1(4e5b68d382a5aa37f8b0b6434c53a2b95f5f9a4d) )
+ ROM_LOAD16_WORD_SWAP( "mvs.12m", 0x400000, 0x400000, CRC(f2fd7f68) SHA1(28a30d55d3eaf963006c7cbe7c288099cd3ba536) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "mshvsfj.key", 0x000000, 0x000014, CRC(565eeebb) SHA1(762844b59b2fcf529a26ad3dde8282415db926b3) )
+ROM_END
+
+// mshvsfj with a rom changed
+ROM_START( mshvsfjphp )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "mshvsfjphp.03", 0x000000, 0x80000, CRC(4c50cabc) SHA1(6139e3974d83fb4220aca84fa0ac6adcf23f45a5) )
+ ROM_LOAD16_WORD_SWAP( "mvsj.04i", 0x080000, 0x80000, CRC(32741ace) SHA1(36db3a3aeaf29369977593c051bf5665cffefb2d) )
+ ROM_LOAD16_WORD_SWAP( "mvs.05h", 0x100000, 0x80000, CRC(77870dc3) SHA1(924a7c82456bb44d7b0be65af11dbe1a2420a3f0) )
+ ROM_LOAD16_WORD_SWAP( "mvs.06a", 0x180000, 0x80000, CRC(959f3030) SHA1(fbbaa915324815246738f3426232e623f039ce26) )
+ ROM_LOAD16_WORD_SWAP( "mvs.07b", 0x200000, 0x80000, CRC(7f915bdb) SHA1(683da09c5ba55e31b59aa95a8e13c45dc574ab3c) )
+ ROM_LOAD16_WORD_SWAP( "mvs.08a", 0x280000, 0x80000, CRC(c2813884) SHA1(49e5d4bc48f90c8146cb6aafb9240aff0119f1a7) )
+ ROM_LOAD16_WORD_SWAP( "mvs.09b", 0x300000, 0x80000, CRC(3ba08818) SHA1(9ab132a3cac55fcccebe6c99b6fb0ba1305f8f6e) )
+ ROM_LOAD16_WORD_SWAP( "mvs.10b", 0x380000, 0x80000, CRC(cf0dba98) SHA1(f4c1f8a6e7a79ecc6241d5268b3039f8a09ea516) )
+
+ ROM_REGION( 0x2000000, "gfx", 0 )
+ ROMX_LOAD( "mvs.13m", 0x0000000, 0x400000, CRC(29b05fd9) SHA1(e8fdb1ee5515a560eb4256ae4fd99bb1192e1a87) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvs.15m", 0x0000002, 0x400000, CRC(faddccf1) SHA1(4ed03ea91883a0413325f57edcc1614120b5922c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvs.17m", 0x0000004, 0x400000, CRC(97aaf4c7) SHA1(6a054921cc14fe080cb3f62c391f8ae3cc7e8ba9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvs.19m", 0x0000006, 0x400000, CRC(cb70e915) SHA1(da4d2480d348ac6dfd01256a88f4f3db8357ae46) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvs.14m", 0x1000000, 0x400000, CRC(b3b1972d) SHA1(0f2c3fb7de014181ee481ec35d0578b2c116c2dc) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvs.16m", 0x1000002, 0x400000, CRC(08aadb5d) SHA1(3a2c222eca3e7df80ce69951b3db6442312751a4) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvs.18m", 0x1000004, 0x400000, CRC(c1228b35) SHA1(7afdfb552888c79d0fbb30242b3d917b87fad57a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvs.20m", 0x1000006, 0x400000, CRC(366cc6c2) SHA1(6f2a789087c8e404c5227b927fa8328c03593243) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "mvs.01", 0x00000, 0x08000, CRC(68252324) SHA1(138ef320ef27956b2ab5591d49a1315b7b0a194c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "mvs.02", 0x28000, 0x20000, CRC(b34e773d) SHA1(3bcf44bf06c35814cff29d244142db7abe05bd39) )
+
+ ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "mvs.11m", 0x000000, 0x400000, CRC(86219770) SHA1(4e5b68d382a5aa37f8b0b6434c53a2b95f5f9a4d) )
+ ROM_LOAD16_WORD_SWAP( "mvs.12m", 0x400000, 0x400000, CRC(f2fd7f68) SHA1(28a30d55d3eaf963006c7cbe7c288099cd3ba536) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "mshvsfj.key", 0x000000, 0x000014, CRC(565eeebb) SHA1(762844b59b2fcf529a26ad3dde8282415db926b3) )
+ROM_END
+
+ROM_START( mshyh )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "mshe.03e", 0x000000, 0x80000, CRC(bd951414) SHA1(5585bdd1484dc18c7630d689f60d91c068aafc97) )
+ ROM_LOAD16_WORD_SWAP( "mshyh.04", 0x080000, 0x80000, CRC(adbd5707) SHA1(79d56d5a28328ababec10e080e46d1bfa6d8cab7) )
+ ROM_LOAD16_WORD_SWAP( "msh.05", 0x100000, 0x80000, CRC(6a091b9e) SHA1(7fa54e69e1a1ca348cb08d892d55023e9a3ff4cb) )
+ ROM_LOAD16_WORD_SWAP( "msh.06b", 0x180000, 0x80000, CRC(803e3fa4) SHA1(0acdeda65002521bf24130cbf06f9faa1dcef9e5) )
+ ROM_LOAD16_WORD_SWAP( "msh.07a", 0x200000, 0x80000, CRC(c45f8e27) SHA1(4d28e0782c31ce56e728ac6ef5edd10437f00637) )
+ ROM_LOAD16_WORD_SWAP( "msh.08a", 0x280000, 0x80000, CRC(9ca6f12c) SHA1(26ad682667b983b805e1f577426e5fca8ee3c82b) )
+ ROM_LOAD16_WORD_SWAP( "msh.09a", 0x300000, 0x80000, CRC(82ec27af) SHA1(caf76268063ba91d28e8af684d60c2d71f29b9b9) )
+ ROM_LOAD16_WORD_SWAP( "msh.10b", 0x380000, 0x80000, CRC(8d931196) SHA1(983e62efcdb4c8db6bce6acf4f86acb9447b565d) )
+
+ ROM_REGION( 0x2000000, "gfx", 0 )
+ ROMX_LOAD( "msh.13m", 0x0000000, 0x400000, CRC(09d14566) SHA1(c96463654043f22da5e844c6da17aa9273dc3439) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "msh.15m", 0x0000002, 0x400000, CRC(ee962057) SHA1(24e359accb5f71a5863d7bad4088719fa547f88c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "msh.17m", 0x0000004, 0x400000, CRC(604ece14) SHA1(880fb62b33ba4cceb38635e4ec056fac11a3c70f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "msh.19m", 0x0000006, 0x400000, CRC(94a731e8) SHA1(1e784a3412e7361e3001494e1daf840ef8c20449) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "msh.14m", 0x1000000, 0x400000, CRC(4197973e) SHA1(93aeea1a480b5f452c8a40ae3fff956796b859fa) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "msh.16m", 0x1000002, 0x400000, CRC(438da4a0) SHA1(ca93b14c3a570f9dd582efbb3f0536a92e535042) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "msh.18m", 0x1000004, 0x400000, CRC(4db92d94) SHA1(f1b25ccc0627139ad5b287a8f2ab3b4a2fb8b8e4) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "msh.20m", 0x1000006, 0x400000, CRC(a2b0c6c0) SHA1(71016c01c1a706b73cf5b9ac7e384a030c6cf08d) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "msh.01", 0x00000, 0x08000, CRC(c976e6f9) SHA1(281025e5aaf97c0aeddc8bd0f737d092daadad9e) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "msh.02", 0x28000, 0x20000, CRC(ce67d0d9) SHA1(324226597cc5a11603f04085fef7715a314ecc05) )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "msh.11m", 0x000000, 0x200000, CRC(37ac6d30) SHA1(ec67421fbf4a08a686e76792cb35e9cbf04d022d) )
+ ROM_LOAD16_WORD_SWAP( "msh.12m", 0x200000, 0x200000, CRC(de092570) SHA1(a03d0df901f6ea79685eaed67db65bee14ec29c6) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "msh.key", 0x000000, 0x000014, CRC(b494368e) SHA1(8efc561cec2bcc17902d27ed4e27b7d2b9eccdbc) )
+ROM_END
+
+
+ROM_START( mvscjemb )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "mvscjemb.03", 0x000000, 0x80000, CRC(8a50f418) SHA1(17db6f6afbe7866a4803bf2a20fb9b01b2b80250) )
+ ROM_LOAD16_WORD_SWAP( "mvcj.04a", 0x080000, 0x80000, CRC(07d212e8) SHA1(c5420e9bd580910c1f1d0264240aeef20aac30a7) )
+ ROM_LOAD16_WORD_SWAP( "mvc.05a", 0x100000, 0x80000, CRC(2d8c8e86) SHA1(b07d640a734c5d336054ed05195786224c9a6cd4) )
+ ROM_LOAD16_WORD_SWAP( "mvc.06a", 0x180000, 0x80000, CRC(8528e1f5) SHA1(cd065c05268ab581b05676da544baf6af642acac) )
+ ROM_LOAD16_WORD_SWAP( "mvc.07", 0x200000, 0x80000, CRC(c3baa32b) SHA1(d35589847e0753e869ffcd7c3abed925bfdb0fa2) )
+ ROM_LOAD16_WORD_SWAP( "mvc.08", 0x280000, 0x80000, CRC(bc002fcd) SHA1(0b6735a071a9274f7ab25c743271fc30411fe819) )
+ ROM_LOAD16_WORD_SWAP( "mvc.09", 0x300000, 0x80000, CRC(c67b26df) SHA1(6e9969246c57269d7ba0992a5cc319c8910bf8a9) )
+ ROM_LOAD16_WORD_SWAP( "mvc.10", 0x380000, 0x80000, CRC(0fdd1e26) SHA1(5fa684d823b4f4eec61ed9e9b8938af5272ae1ed) )
+
+ ROM_REGION( 0x2000000, "gfx", 0 )
+ ROMX_LOAD( "mvc.13m", 0x0000000, 0x400000, CRC(fa5f74bc) SHA1(79a619248938a85ce4f7794a704647b9cf564fbc) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvc.15m", 0x0000002, 0x400000, CRC(71938a8f) SHA1(6982f7203458c1c46a1c1c13c0d0f2a5e109d271) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvc.17m", 0x0000004, 0x400000, CRC(92741d07) SHA1(ddfd70eab7c983ab452194b1860059f8ad694459) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvc.19m", 0x0000006, 0x400000, CRC(bcb72fc6) SHA1(46ab98dcdf6f5d611646a22a7355939ef5b2bbe5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvc.14m", 0x1000000, 0x400000, CRC(7f1df4e4) SHA1(ede92b31c1fe87f91b4fe74ac211f2fb5f863bc2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvc.16m", 0x1000002, 0x400000, CRC(90bd3203) SHA1(ed83208c486ea0f407b7e5d16a8cf242a6f73774) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvc.18m", 0x1000004, 0x400000, CRC(67aaf727) SHA1(e0e69104e31d2c41e18c0d24e9ab962406a7ca9a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvc.20m", 0x1000006, 0x400000, CRC(8b0bade8) SHA1(c5732361bb4bf284c4d12a82ac2c5750b1f9d441) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "mvc.01", 0x00000, 0x08000, CRC(41629e95) SHA1(36925c05b5fdcbe43283a882d021e5360c947061) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "mvc.02", 0x28000, 0x20000, CRC(963abf6b) SHA1(6b784870e338701cefabbbe4669984b5c4e8a9a5) )
+
+ ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "mvc.11m", 0x000000, 0x400000, CRC(850fe663) SHA1(81e519d05a08855f242ea2e17ee0859b449db895) )
+ ROM_LOAD16_WORD_SWAP( "mvc.12m", 0x400000, 0x400000, CRC(7ccb1896) SHA1(74caadf3282fcc6acffb1bbe3734106f81124121) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "mvscj.key", 0x000000, 0x000014, CRC(9dedbcaf) SHA1(6468dd20ba89e4f6dc03340d218694690151ebe0) )
+ROM_END
+
+ROM_START( mvscjphp )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "mvscjphp.03", 0x000000, 0x80000, CRC(8f886e52) SHA1(5fcd465361452b3b163cbd62b6cd73835e2f9f54) )
+ ROM_LOAD16_WORD_SWAP( "mvcj.04a", 0x080000, 0x80000, CRC(07d212e8) SHA1(c5420e9bd580910c1f1d0264240aeef20aac30a7) )
+ ROM_LOAD16_WORD_SWAP( "mvc.05a", 0x100000, 0x80000, CRC(2d8c8e86) SHA1(b07d640a734c5d336054ed05195786224c9a6cd4) )
+ ROM_LOAD16_WORD_SWAP( "mvc.06a", 0x180000, 0x80000, CRC(8528e1f5) SHA1(cd065c05268ab581b05676da544baf6af642acac) )
+ ROM_LOAD16_WORD_SWAP( "mvc.07", 0x200000, 0x80000, CRC(c3baa32b) SHA1(d35589847e0753e869ffcd7c3abed925bfdb0fa2) )
+ ROM_LOAD16_WORD_SWAP( "mvc.08", 0x280000, 0x80000, CRC(bc002fcd) SHA1(0b6735a071a9274f7ab25c743271fc30411fe819) )
+ ROM_LOAD16_WORD_SWAP( "mvc.09", 0x300000, 0x80000, CRC(c67b26df) SHA1(6e9969246c57269d7ba0992a5cc319c8910bf8a9) )
+ ROM_LOAD16_WORD_SWAP( "mvc.10", 0x380000, 0x80000, CRC(0fdd1e26) SHA1(5fa684d823b4f4eec61ed9e9b8938af5272ae1ed) )
+
+ ROM_REGION( 0x2000000, "gfx", 0 )
+ ROMX_LOAD( "mvc.13m", 0x0000000, 0x400000, CRC(fa5f74bc) SHA1(79a619248938a85ce4f7794a704647b9cf564fbc) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvc.15m", 0x0000002, 0x400000, CRC(71938a8f) SHA1(6982f7203458c1c46a1c1c13c0d0f2a5e109d271) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvc.17m", 0x0000004, 0x400000, CRC(92741d07) SHA1(ddfd70eab7c983ab452194b1860059f8ad694459) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvc.19m", 0x0000006, 0x400000, CRC(bcb72fc6) SHA1(46ab98dcdf6f5d611646a22a7355939ef5b2bbe5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvc.14m", 0x1000000, 0x400000, CRC(7f1df4e4) SHA1(ede92b31c1fe87f91b4fe74ac211f2fb5f863bc2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvc.16m", 0x1000002, 0x400000, CRC(90bd3203) SHA1(ed83208c486ea0f407b7e5d16a8cf242a6f73774) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvc.18m", 0x1000004, 0x400000, CRC(67aaf727) SHA1(e0e69104e31d2c41e18c0d24e9ab962406a7ca9a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvc.20m", 0x1000006, 0x400000, CRC(8b0bade8) SHA1(c5732361bb4bf284c4d12a82ac2c5750b1f9d441) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "mvc.01", 0x00000, 0x08000, CRC(41629e95) SHA1(36925c05b5fdcbe43283a882d021e5360c947061) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "mvc.02", 0x28000, 0x20000, CRC(963abf6b) SHA1(6b784870e338701cefabbbe4669984b5c4e8a9a5) )
+
+ ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "mvc.11m", 0x000000, 0x400000, CRC(850fe663) SHA1(81e519d05a08855f242ea2e17ee0859b449db895) )
+ ROM_LOAD16_WORD_SWAP( "mvc.12m", 0x400000, 0x400000, CRC(7ccb1896) SHA1(74caadf3282fcc6acffb1bbe3734106f81124121) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "mvscj.key", 0x000000, 0x000014, CRC(9dedbcaf) SHA1(6468dd20ba89e4f6dc03340d218694690151ebe0) )
+ROM_END
+
+ROM_START( mvscrcp ) // doesn't work
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "mvce.03a", 0x000000, 0x80000, CRC(824e4a90) SHA1(5c79c166d988d8a75d9941f4ee6fa4d6476e55e1) )
+ ROM_LOAD16_WORD_SWAP( "mvce.04a", 0x080000, 0x80000, CRC(436c5a4e) SHA1(82f4586e888f2550c53bfdc93a53791a595e05bd) )
+ ROM_LOAD16_WORD_SWAP( "mvc.05a", 0x100000, 0x80000, CRC(2d8c8e86) SHA1(b07d640a734c5d336054ed05195786224c9a6cd4) )
+ ROM_LOAD16_WORD_SWAP( "mvscrcp.06", 0x180000, 0x80000, CRC(57e2f6fd) SHA1(1c1b9992b411f45755cd2d70207511431603b4a8) )
+ ROM_LOAD16_WORD_SWAP( "mvc.07", 0x200000, 0x80000, CRC(c3baa32b) SHA1(d35589847e0753e869ffcd7c3abed925bfdb0fa2) )
+ ROM_LOAD16_WORD_SWAP( "mvc.08", 0x280000, 0x80000, CRC(bc002fcd) SHA1(0b6735a071a9274f7ab25c743271fc30411fe819) )
+ ROM_LOAD16_WORD_SWAP( "mvc.09", 0x300000, 0x80000, CRC(c67b26df) SHA1(6e9969246c57269d7ba0992a5cc319c8910bf8a9) )
+ ROM_LOAD16_WORD_SWAP( "mvc.10", 0x380000, 0x80000, CRC(0fdd1e26) SHA1(5fa684d823b4f4eec61ed9e9b8938af5272ae1ed) )
+
+ ROM_REGION( 0x2000000, "gfx", 0 )
+ ROMX_LOAD( "mvc.13m", 0x0000000, 0x400000, CRC(fa5f74bc) SHA1(79a619248938a85ce4f7794a704647b9cf564fbc) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvc.15m", 0x0000002, 0x400000, CRC(71938a8f) SHA1(6982f7203458c1c46a1c1c13c0d0f2a5e109d271) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvc.17m", 0x0000004, 0x400000, CRC(92741d07) SHA1(ddfd70eab7c983ab452194b1860059f8ad694459) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvc.19m", 0x0000006, 0x400000, CRC(bcb72fc6) SHA1(46ab98dcdf6f5d611646a22a7355939ef5b2bbe5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvc.14m", 0x1000000, 0x400000, CRC(7f1df4e4) SHA1(ede92b31c1fe87f91b4fe74ac211f2fb5f863bc2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvc.16m", 0x1000002, 0x400000, CRC(90bd3203) SHA1(ed83208c486ea0f407b7e5d16a8cf242a6f73774) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvc.18m", 0x1000004, 0x400000, CRC(67aaf727) SHA1(e0e69104e31d2c41e18c0d24e9ab962406a7ca9a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvc.20m", 0x1000006, 0x400000, CRC(8b0bade8) SHA1(c5732361bb4bf284c4d12a82ac2c5750b1f9d441) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "mvc.01", 0x00000, 0x08000, CRC(41629e95) SHA1(36925c05b5fdcbe43283a882d021e5360c947061) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "mvc.02", 0x28000, 0x20000, CRC(963abf6b) SHA1(6b784870e338701cefabbbe4669984b5c4e8a9a5) )
+
+ ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "mvc.11m", 0x000000, 0x400000, CRC(850fe663) SHA1(81e519d05a08855f242ea2e17ee0859b449db895) )
+ ROM_LOAD16_WORD_SWAP( "mvc.12m", 0x400000, 0x400000, CRC(7ccb1896) SHA1(74caadf3282fcc6acffb1bbe3734106f81124121) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "mvsc.key", 0x000000, 0x000014, CRC(7e101e09) SHA1(9d725a7c6bbc20e46f749eaec4bab15b0195077a) )
+ROM_END
+
+ROM_START( mvscuh ) // doesn't work
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "mvscuh.03", 0x000000, 0x80000, CRC(95eb2af9) SHA1(b5ba9ced0bb67783a00a07423b8b68bd3b89aaf9) )
+ ROM_LOAD16_WORD_SWAP( "mvscuh.04", 0x080000, 0x80000, CRC(05e4ba51) SHA1(21e7107d53c2416b215c9ff442a85e98489ac8ba) )
+ ROM_LOAD16_WORD_SWAP( "mvc.05a", 0x100000, 0x80000, CRC(2d8c8e86) SHA1(b07d640a734c5d336054ed05195786224c9a6cd4) )
+ ROM_LOAD16_WORD_SWAP( "mvc.06a", 0x180000, 0x80000, CRC(8528e1f5) SHA1(cd065c05268ab581b05676da544baf6af642acac) )
+ ROM_LOAD16_WORD_SWAP( "mvc.07", 0x200000, 0x80000, CRC(c3baa32b) SHA1(d35589847e0753e869ffcd7c3abed925bfdb0fa2) )
+ ROM_LOAD16_WORD_SWAP( "mvc.08", 0x280000, 0x80000, CRC(bc002fcd) SHA1(0b6735a071a9274f7ab25c743271fc30411fe819) )
+ ROM_LOAD16_WORD_SWAP( "mvc.09", 0x300000, 0x80000, CRC(c67b26df) SHA1(6e9969246c57269d7ba0992a5cc319c8910bf8a9) )
+ ROM_LOAD16_WORD_SWAP( "mvc.10", 0x380000, 0x80000, CRC(0fdd1e26) SHA1(5fa684d823b4f4eec61ed9e9b8938af5272ae1ed) )
+
+ ROM_REGION( 0x2000000, "gfx", 0 )
+ ROMX_LOAD( "mvc.13m", 0x0000000, 0x400000, CRC(fa5f74bc) SHA1(79a619248938a85ce4f7794a704647b9cf564fbc) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvc.15m", 0x0000002, 0x400000, CRC(71938a8f) SHA1(6982f7203458c1c46a1c1c13c0d0f2a5e109d271) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvc.17m", 0x0000004, 0x400000, CRC(92741d07) SHA1(ddfd70eab7c983ab452194b1860059f8ad694459) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvc.19m", 0x0000006, 0x400000, CRC(bcb72fc6) SHA1(46ab98dcdf6f5d611646a22a7355939ef5b2bbe5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvc.14m", 0x1000000, 0x400000, CRC(7f1df4e4) SHA1(ede92b31c1fe87f91b4fe74ac211f2fb5f863bc2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvc.16m", 0x1000002, 0x400000, CRC(90bd3203) SHA1(ed83208c486ea0f407b7e5d16a8cf242a6f73774) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvc.18m", 0x1000004, 0x400000, CRC(67aaf727) SHA1(e0e69104e31d2c41e18c0d24e9ab962406a7ca9a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvc.20m", 0x1000006, 0x400000, CRC(8b0bade8) SHA1(c5732361bb4bf284c4d12a82ac2c5750b1f9d441) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "mvc.01", 0x00000, 0x08000, CRC(41629e95) SHA1(36925c05b5fdcbe43283a882d021e5360c947061) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "mvc.02", 0x28000, 0x20000, CRC(963abf6b) SHA1(6b784870e338701cefabbbe4669984b5c4e8a9a5) )
+
+ ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "mvc.11m", 0x000000, 0x400000, CRC(850fe663) SHA1(81e519d05a08855f242ea2e17ee0859b449db895) )
+ ROM_LOAD16_WORD_SWAP( "mvc.12m", 0x400000, 0x400000, CRC(7ccb1896) SHA1(74caadf3282fcc6acffb1bbe3734106f81124121) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "mvscu.key", 0x000000, 0x000014, CRC(a83db333) SHA1(7f7288ceadf233d913728f7c4a8841adcb5994e8) )
+ROM_END
+
+ROM_START( pfghtjrm )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "pfghtjrm.03", 0x000000, 0x80000, CRC(5b91a900) SHA1(503fc8b5e687c11bfa5a3b55a7df8b22b8a02103) )
+ ROM_LOAD16_WORD_SWAP( "pcf.04", 0x080000, 0x80000, CRC(f4314c96) SHA1(c40ed74039bf0096eb3648b7243a8e697638e0a6) )
+ ROM_LOAD16_WORD_SWAP( "pcf.05", 0x100000, 0x80000, CRC(215655f6) SHA1(242c0f4401520f2a3b0deafc3a807b18b987e496) )
+ ROM_LOAD16_WORD_SWAP( "pcf.06", 0x180000, 0x80000, CRC(ea6f13ea) SHA1(1bc924a8a9da1d2ad7667685cdb92fe317a39aba) )
+ ROM_LOAD16_WORD_SWAP( "pcf.07", 0x200000, 0x80000, CRC(5ac6d5ea) SHA1(9ce8e4668b565658597a868830545fb75a5eeaa6) )
+
+ ROM_REGION( 0x1400000, "gfx", 0 )
+ ROMX_LOAD( "pcf.13m", 0x0000000, 0x400000, CRC(22d72ab9) SHA1(653efd95c34b4b9d2ab0d219f41a99ca84e12214) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "pcf.15m", 0x0000002, 0x400000, CRC(16a4813c) SHA1(bf5fce6008214f353414d1b64bea4ed0c7673670) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "pcf.17m", 0x0000004, 0x400000, CRC(1097e035) SHA1(4bd51e4e9447af27d2cac1f6d2201e37c949912b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "pcf.19m", 0x0000006, 0x400000, CRC(d362d874) SHA1(30c42af18440496cc05e4418e4efa41172ae4ced) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "pcf.14m", 0x1000000, 0x100000, CRC(0383897c) SHA1(aba14afa1d0c971afcee4317f480e88117d77b5e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "pcf.16m", 0x1000002, 0x100000, CRC(76f91084) SHA1(3d1e32467f2aa5dd6fb96bd5c866ecc9691660fc) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "pcf.18m", 0x1000004, 0x100000, CRC(756c3754) SHA1(be2f709b90222a567f198f851cf07ffb0ad433d7) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "pcf.20m", 0x1000006, 0x100000, CRC(9ec9277d) SHA1(b7ceeaca30dfcdf498b61a6961f0aa1a068b8ec4) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "pcf.01", 0x00000, 0x08000, CRC(254e5f33) SHA1(c413ec0630b9bdd15e64f42893eba8958a09b573) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "pcf.02", 0x28000, 0x20000, CRC(6902f4f9) SHA1(9bfe4ddade3c666076d26a2b545120f6d059fd7c) )
+
+ ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "pcf.11m", 0x000000, 0x400000, CRC(a5dea005) SHA1(3ae79baf6ff5bd527f82b26f164c7e3c65423ae2) )
+ ROM_LOAD16_WORD_SWAP( "pcf.12m", 0x400000, 0x400000, CRC(4ce235fe) SHA1(795b94557e954cc0e45fd3778b609064d57a34a2) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "pfghtj.key", 0x000000, 0x000014, CRC(62297638) SHA1(efe090ffa8992823cfd787ade736df5487d69ca7) )
+ROM_END
+
+
+ROM_START( sfa2h )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sz2eh.03", 0x000000, 0x80000, CRC(f24e7b3a) SHA1(0cf5169fcf46dcea5a100bf75a5dcd791c51b671) )
+ ROM_LOAD16_WORD_SWAP( "sz2e.04", 0x080000, 0x80000, CRC(22d17b26) SHA1(2d7a9cedae1bb2b7cfb80d2bfcf24cb7738df0bf) )
+ ROM_LOAD16_WORD_SWAP( "sz2.05", 0x100000, 0x80000, CRC(4b442a7c) SHA1(a0d7d229cff8efb2a253ff06270258b0b4d2761e) )
+ ROM_LOAD16_WORD_SWAP( "sz2.06", 0x180000, 0x80000, CRC(5b1d49c0) SHA1(f0a0c894c9cbe2b18e7f59058665949ee0025732) )
+ ROM_LOAD16_WORD_SWAP( "sz2.07", 0x200000, 0x80000, CRC(8e184246) SHA1(c51f6480cfa1dcec6c4713fd38c7a27338c3fa65) )
+ ROM_LOAD16_WORD_SWAP( "sz2.08", 0x280000, 0x80000, CRC(0fe8585d) SHA1(0cd5369a5aa90c98d8dc1ff3342cd4d990631cff) )
+
+ ROM_REGION( 0x1400000, "gfx", 0 )
+ ROMX_LOAD( "sz2.13m", 0x0000000, 0x400000, CRC(4d1f1f22) SHA1(659fb4305bcf0cbbbbec97ede6e68a8323b13308) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sz2.15m", 0x0000002, 0x400000, CRC(19cea680) SHA1(4cb88963a0fbcef191c8419b6379387c01b4c81e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sz2.17m", 0x0000004, 0x400000, CRC(e01b4588) SHA1(c2936608fd75ff6cd5fa94c6d6d6f0c77c44a450) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sz2.19m", 0x0000006, 0x400000, CRC(0feeda64) SHA1(f5b350601437bd94b70d97feb23d791df19da6b3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sz2.14m", 0x1000000, 0x100000, CRC(0560c6aa) SHA1(f2bed3a8efef18052b51a7f0f6a888a18db813a1) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sz2.16m", 0x1000002, 0x100000, CRC(ae940f87) SHA1(39ee26333abbe302ba76dced0196a2e6b3b1d02a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sz2.18m", 0x1000004, 0x100000, CRC(4bc3c8bc) SHA1(6256963c515bf56f39b6e559afefd653ead56c54) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sz2.20m", 0x1000006, 0x100000, CRC(39e674c0) SHA1(8e771a2d8c2accad0463bccd21d7b23af0c895a1) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sz2.01a", 0x00000, 0x08000, CRC(1bc323cf) SHA1(83fbd6e9b327700dc9f1c59700b7385bc3705749) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "sz2.02a", 0x28000, 0x20000, CRC(ba6a5013) SHA1(7814f3e56b69529b9860dd61c3b1e8d700244b03) )
+
+ 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) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "sfa2.key", 0x000000, 0x000014, CRC(1578dcb0) SHA1(a8bc83b341f9ea2bcc18861419bd574d159c6fcc) )
+ROM_END
+
+ROM_START( sfa3br )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sfa3br.03", 0x000000, 0x80000, CRC(b2a99137) SHA1(cba8777cd241e270c19fe375489efc421cc01549) )
+ ROM_LOAD16_WORD_SWAP( "sfa3br.04", 0x080000, 0x80000, CRC(3e5cefe6) SHA1(f889bc9f7212e27d5df50ebda909b60e85dbfe29) )
+ ROM_LOAD16_WORD_SWAP( "sz3.05c", 0x100000, 0x80000, CRC(57fd0a40) SHA1(bc2d5f4d57117bbf58b1adb088e00424ef489e92) )
+ ROM_LOAD16_WORD_SWAP( "sz3.06c", 0x180000, 0x80000, CRC(f6305f8b) SHA1(3fd1ebdbad96103aca604e950b488e52460a71ec) )
+ ROM_LOAD16_WORD_SWAP( "sz3.07c", 0x200000, 0x80000, CRC(6eab0f6f) SHA1(f8d093dda65cf4e8a3000dc1b96355bb03dcb495) )
+ ROM_LOAD16_WORD_SWAP( "sz3.08c", 0x280000, 0x80000, CRC(910c4a3b) SHA1(dbd41280f9b16ad6a5b8f12092549970349395f1) )
+ ROM_LOAD16_WORD_SWAP( "sz3.09c", 0x300000, 0x80000, CRC(b29e5199) SHA1(c6c215eb5aa37f678a9cafcbd8620969fb5ca12f) )
+ ROM_LOAD16_WORD_SWAP( "sz3.10b", 0x380000, 0x80000, CRC(deb2ff52) SHA1(0aa4722aad68a04164946c78bf05752f947b4322) )
+
+ ROM_REGION( 0x2000000, "gfx", 0 )
+ ROMX_LOAD( "sfa3br.13", 0x0000000, 0x400000, CRC(f18ffe2d) SHA1(3b7251f3027461a847749c8238ff9b0a9ab1c405) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfa3br.15", 0x0000002, 0x400000, CRC(3283878c) SHA1(e879ad81be09f73949c188e45506f63a114999c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfa3br.17", 0x0000004, 0x400000, CRC(869e0ae2) SHA1(30e018f3b38dbdac6cd1d228865627811886624f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfa3br.19", 0x0000006, 0x400000, CRC(81e0ebfa) SHA1(449b7afc0c88edbab51b27abef4be5ff3698470c) , 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.01", 0x00000, 0x08000, CRC(de810084) SHA1(fd0b969b732921ed8b40c16fbfa30ee09c7a7cbd) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "sz3.02", 0x28000, 0x20000, CRC(72445dc4) SHA1(14fca7596ac45ba655016eef5b6120f9f9671c23) )
+
+ 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) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "sfa3u.key", 0x000000, 0x000014, CRC(4a8f98c1) SHA1(11953de12ed8fbb6f60ad03b1ba5e22a429b7cfa) )
+ROM_END
+
+ROM_START( sfa3dp )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sfa3dp.03", 0x000000, 0x80000, CRC(9411ced4) SHA1(45c963125242eb78992d7d13c3f773f00115ba97) )
+ ROM_LOAD16_WORD_SWAP( "sfa3dp.04", 0x080000, 0x80000, CRC(01a7b266) SHA1(32bec1fa10641c6c155e71827aaa9853e946f8c6) )
+ ROM_LOAD16_WORD_SWAP( "sz3.05c", 0x100000, 0x80000, CRC(57fd0a40) SHA1(bc2d5f4d57117bbf58b1adb088e00424ef489e92) )
+ ROM_LOAD16_WORD_SWAP( "sz3.06c", 0x180000, 0x80000, CRC(f6305f8b) SHA1(3fd1ebdbad96103aca604e950b488e52460a71ec) )
+ ROM_LOAD16_WORD_SWAP( "sz3.07c", 0x200000, 0x80000, CRC(6eab0f6f) SHA1(f8d093dda65cf4e8a3000dc1b96355bb03dcb495) )
+ ROM_LOAD16_WORD_SWAP( "sz3.08c", 0x280000, 0x80000, CRC(910c4a3b) SHA1(dbd41280f9b16ad6a5b8f12092549970349395f1) )
+ ROM_LOAD16_WORD_SWAP( "sz3.09c", 0x300000, 0x80000, CRC(b29e5199) SHA1(c6c215eb5aa37f678a9cafcbd8620969fb5ca12f) )
+ ROM_LOAD16_WORD_SWAP( "sz3.10b", 0x380000, 0x80000, CRC(deb2ff52) SHA1(0aa4722aad68a04164946c78bf05752f947b4322) )
+
+ 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.01", 0x00000, 0x08000, CRC(de810084) SHA1(fd0b969b732921ed8b40c16fbfa30ee09c7a7cbd) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "sz3.02", 0x28000, 0x20000, CRC(72445dc4) SHA1(14fca7596ac45ba655016eef5b6120f9f9671c23) )
+
+ 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) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "sfa3.key", 0x000000, 0x000014, CRC(54fa39c6) SHA1(a0d2f8e697a7a4201762cb02842581840b2a7f78) )
+ROM_END
+
+ROM_START( sfa3nc )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sfa3nc.03", 0x000000, 0x80000, CRC(4773ce1b) SHA1(91c5be4c1053a07104f9c18e876d73406951e274) )
+ ROM_LOAD16_WORD_SWAP( "sfa3dp.04", 0x080000, 0x80000, CRC(01a7b266) SHA1(32bec1fa10641c6c155e71827aaa9853e946f8c6) )
+ ROM_LOAD16_WORD_SWAP( "sz3.05c", 0x100000, 0x80000, CRC(57fd0a40) SHA1(bc2d5f4d57117bbf58b1adb088e00424ef489e92) )
+ ROM_LOAD16_WORD_SWAP( "sz3.06c", 0x180000, 0x80000, CRC(f6305f8b) SHA1(3fd1ebdbad96103aca604e950b488e52460a71ec) )
+ ROM_LOAD16_WORD_SWAP( "sz3.07c", 0x200000, 0x80000, CRC(6eab0f6f) SHA1(f8d093dda65cf4e8a3000dc1b96355bb03dcb495) )
+ ROM_LOAD16_WORD_SWAP( "sz3.08c", 0x280000, 0x80000, CRC(910c4a3b) SHA1(dbd41280f9b16ad6a5b8f12092549970349395f1) )
+ ROM_LOAD16_WORD_SWAP( "sfa3.09c", 0x300000, 0x80000, CRC(8cf82012) SHA1(2e270ec70e55534e7c2ec2a011e4aeeecb94db03) )
+ ROM_LOAD16_WORD_SWAP( "sz3.10b", 0x380000, 0x80000, CRC(deb2ff52) SHA1(0aa4722aad68a04164946c78bf05752f947b4322) )
+
+ 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.01", 0x00000, 0x08000, CRC(de810084) SHA1(fd0b969b732921ed8b40c16fbfa30ee09c7a7cbd) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "sz3.02", 0x28000, 0x20000, CRC(72445dc4) SHA1(14fca7596ac45ba655016eef5b6120f9f9671c23) )
+
+ 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) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "sfa3.key", 0x000000, 0x000014, CRC(54fa39c6) SHA1(a0d2f8e697a7a4201762cb02842581840b2a7f78) )
+ROM_END
+
+ROM_START( sfa3nch )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sfa3nc.03", 0x000000, 0x80000, CRC(4773ce1b) SHA1(91c5be4c1053a07104f9c18e876d73406951e274) )
+ ROM_LOAD16_WORD_SWAP( "sfa3dp.04", 0x080000, 0x80000, CRC(01a7b266) SHA1(32bec1fa10641c6c155e71827aaa9853e946f8c6) )
+ ROM_LOAD16_WORD_SWAP( "sz3.05c", 0x100000, 0x80000, CRC(57fd0a40) SHA1(bc2d5f4d57117bbf58b1adb088e00424ef489e92) )
+ ROM_LOAD16_WORD_SWAP( "sz3.06c", 0x180000, 0x80000, CRC(f6305f8b) SHA1(3fd1ebdbad96103aca604e950b488e52460a71ec) )
+ ROM_LOAD16_WORD_SWAP( "sz3.07c", 0x200000, 0x80000, CRC(6eab0f6f) SHA1(f8d093dda65cf4e8a3000dc1b96355bb03dcb495) )
+ ROM_LOAD16_WORD_SWAP( "sz3.08c", 0x280000, 0x80000, CRC(910c4a3b) SHA1(dbd41280f9b16ad6a5b8f12092549970349395f1) )
+ ROM_LOAD16_WORD_SWAP( "sfa3nch.09c", 0x300000, 0x80000, CRC(6cf78cc3) SHA1(9a69c9c7f4a308c5c9aef1141f45298e288fc1c0) )
+ ROM_LOAD16_WORD_SWAP( "sz3.10b", 0x380000, 0x80000, CRC(deb2ff52) SHA1(0aa4722aad68a04164946c78bf05752f947b4322) )
+
+ 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.01", 0x00000, 0x08000, CRC(de810084) SHA1(fd0b969b732921ed8b40c16fbfa30ee09c7a7cbd) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "sz3.02", 0x28000, 0x20000, CRC(72445dc4) SHA1(14fca7596ac45ba655016eef5b6120f9f9671c23) )
+
+ 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) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "sfa3.key", 0x000000, 0x000014, CRC(54fa39c6) SHA1(a0d2f8e697a7a4201762cb02842581840b2a7f78) )
+ROM_END
+
+ROM_START( sfa3sp2 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sfa3sp2.03", 0x000000, 0x80000, CRC(41b961b4) SHA1(e2865fa71b647b4a8a86cc260b13d6f9616859fa) )
+ ROM_LOAD16_WORD_SWAP( "sz3e.04c", 0x080000, 0x80000, CRC(5ad3f721) SHA1(fec11cc5f63593f0181eb28ae85ad916686793eb) )
+ ROM_LOAD16_WORD_SWAP( "sz3.05c", 0x100000, 0x80000, CRC(57fd0a40) SHA1(bc2d5f4d57117bbf58b1adb088e00424ef489e92) )
+ ROM_LOAD16_WORD_SWAP( "sz3.06c", 0x180000, 0x80000, CRC(f6305f8b) SHA1(3fd1ebdbad96103aca604e950b488e52460a71ec) )
+ ROM_LOAD16_WORD_SWAP( "sz3.07c", 0x200000, 0x80000, CRC(6eab0f6f) SHA1(f8d093dda65cf4e8a3000dc1b96355bb03dcb495) )
+ ROM_LOAD16_WORD_SWAP( "sz3.08c", 0x280000, 0x80000, CRC(910c4a3b) SHA1(dbd41280f9b16ad6a5b8f12092549970349395f1) )
+ ROM_LOAD16_WORD_SWAP( "sz3.09c", 0x300000, 0x80000, CRC(b29e5199) SHA1(c6c215eb5aa37f678a9cafcbd8620969fb5ca12f) )
+ ROM_LOAD16_WORD_SWAP( "sz3.10b", 0x380000, 0x80000, CRC(deb2ff52) SHA1(0aa4722aad68a04164946c78bf05752f947b4322) )
+
+ 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.01", 0x00000, 0x08000, CRC(de810084) SHA1(fd0b969b732921ed8b40c16fbfa30ee09c7a7cbd) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "sz3.02", 0x28000, 0x20000, CRC(72445dc4) SHA1(14fca7596ac45ba655016eef5b6120f9f9671c23) )
+
+ 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) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "sfa3.key", 0x000000, 0x000014, CRC(54fa39c6) SHA1(a0d2f8e697a7a4201762cb02842581840b2a7f78) )
+ROM_END
+
+ROM_START( sfa3spp )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sfa3spp.03", 0x000000, 0x80000, CRC(8267ee23) SHA1(ff86b54bcc7bdfb95bd537a3be2c03093c6865e1) )
+ ROM_LOAD16_WORD_SWAP( "sz3e.04c", 0x080000, 0x80000, CRC(5ad3f721) SHA1(fec11cc5f63593f0181eb28ae85ad916686793eb) )
+ ROM_LOAD16_WORD_SWAP( "sz3.05c", 0x100000, 0x80000, CRC(57fd0a40) SHA1(bc2d5f4d57117bbf58b1adb088e00424ef489e92) )
+ ROM_LOAD16_WORD_SWAP( "sz3.06c", 0x180000, 0x80000, CRC(f6305f8b) SHA1(3fd1ebdbad96103aca604e950b488e52460a71ec) )
+ ROM_LOAD16_WORD_SWAP( "sz3.07c", 0x200000, 0x80000, CRC(6eab0f6f) SHA1(f8d093dda65cf4e8a3000dc1b96355bb03dcb495) )
+ ROM_LOAD16_WORD_SWAP( "sz3.08c", 0x280000, 0x80000, CRC(910c4a3b) SHA1(dbd41280f9b16ad6a5b8f12092549970349395f1) )
+ ROM_LOAD16_WORD_SWAP( "sz3.09c", 0x300000, 0x80000, CRC(b29e5199) SHA1(c6c215eb5aa37f678a9cafcbd8620969fb5ca12f) )
+ ROM_LOAD16_WORD_SWAP( "sz3.10b", 0x380000, 0x80000, CRC(deb2ff52) SHA1(0aa4722aad68a04164946c78bf05752f947b4322) )
+
+ 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.01", 0x00000, 0x08000, CRC(de810084) SHA1(fd0b969b732921ed8b40c16fbfa30ee09c7a7cbd) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "sz3.02", 0x28000, 0x20000, CRC(72445dc4) SHA1(14fca7596ac45ba655016eef5b6120f9f9671c23) )
+
+ 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) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "sfa3.key", 0x000000, 0x000014, CRC(54fa39c6) SHA1(a0d2f8e697a7a4201762cb02842581840b2a7f78) )
+ROM_END
+
+ROM_START( sfa3uhd )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sfa3uhd.03", 0x000000, 0x80000, CRC(eb1a8aeb) SHA1(fc6ae740eeeeb1c2a0e65b154f81904e59925a50) )
+ ROM_LOAD16_WORD_SWAP( "sz3u.04c", 0x080000, 0x80000, CRC(5f78f0e7) SHA1(f4df30fd3515fe9f1125f470b96028052c61f57b) )
+ ROM_LOAD16_WORD_SWAP( "sz3.05c", 0x100000, 0x80000, CRC(57fd0a40) SHA1(bc2d5f4d57117bbf58b1adb088e00424ef489e92) )
+ ROM_LOAD16_WORD_SWAP( "sz3.06c", 0x180000, 0x80000, CRC(f6305f8b) SHA1(3fd1ebdbad96103aca604e950b488e52460a71ec) )
+ ROM_LOAD16_WORD_SWAP( "sz3.07c", 0x200000, 0x80000, CRC(6eab0f6f) SHA1(f8d093dda65cf4e8a3000dc1b96355bb03dcb495) )
+ ROM_LOAD16_WORD_SWAP( "sz3.08c", 0x280000, 0x80000, CRC(910c4a3b) SHA1(dbd41280f9b16ad6a5b8f12092549970349395f1) )
+ ROM_LOAD16_WORD_SWAP( "sz3.09c", 0x300000, 0x80000, CRC(b29e5199) SHA1(c6c215eb5aa37f678a9cafcbd8620969fb5ca12f) )
+ ROM_LOAD16_WORD_SWAP( "sz3.10b", 0x380000, 0x80000, CRC(deb2ff52) SHA1(0aa4722aad68a04164946c78bf05752f947b4322) )
+
+ 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.01", 0x00000, 0x08000, CRC(de810084) SHA1(fd0b969b732921ed8b40c16fbfa30ee09c7a7cbd) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "sz3.02", 0x28000, 0x20000, CRC(72445dc4) SHA1(14fca7596ac45ba655016eef5b6120f9f9671c23) )
+
+ 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) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "sfa3u.key", 0x000000, 0x000014, CRC(4a8f98c1) SHA1(11953de12ed8fbb6f60ad03b1ba5e22a429b7cfa) )
+ROM_END
+
+ROM_START( sfaud )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sfzu_d.03d", 0x000000, 0x80000, CRC(9f2ff577) SHA1(e78d7e8e0a5703dea09aed2ac4055d45844cead5) )
+ ROM_LOAD16_WORD_SWAP( "sfz.04b", 0x080000, 0x80000, CRC(8b73b0e5) SHA1(5318761f615c21395366b5333e75eaaa73ef2073) )
+ ROM_LOAD16_WORD_SWAP( "sfz.05a", 0x100000, 0x80000, CRC(0810544d) SHA1(5f39bda3e7b16508eb58e5a2e0cc58c09cf428ce) )
+ ROM_LOAD16_WORD_SWAP( "sfz.06", 0x180000, 0x80000, CRC(806e8f38) SHA1(b6d6912aa8f2f590335d7ff9a8214648e7131ebb) )
+
+ ROM_REGION( 0x1000000, "gfx", 0 )
+ ROM_FILL( 0x000000, 0x800000, 0 )
+ ROMX_LOAD( "sfz.14m", 0x800000, 0x200000, CRC(90fefdb3) SHA1(5eb28c8de57acfeaefebdd01509c7d9ba5244705) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz.16m", 0x800002, 0x200000, CRC(5354c948) SHA1(07588f1ba6addc04fef3274c971174aaf3e632ab) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz.18m", 0x800004, 0x200000, CRC(41a1e790) SHA1(ce25dad542308691dbe9606b26279bbd59ea4b81) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz.20m", 0x800006, 0x200000, CRC(a549df98) SHA1(f054e95df650a891ef56da8bfb31cb2c945a9aed) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sfz.01", 0x00000, 0x08000, CRC(ffffec7d) SHA1(75b4aef001b72a0f571b51b2b97803facc1832dd) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "sfz.02", 0x28000, 0x20000, CRC(45f46a08) SHA1(e32dbd27b52ab708278045b5a829376e55a4ca81) )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "sfz.11m", 0x000000, 0x200000, CRC(c4b093cd) SHA1(256526bb693a0b72443f047e060304c9b739acd1) )
+ ROM_LOAD16_WORD_SWAP( "sfz.12m", 0x200000, 0x200000, CRC(8bdbc4b4) SHA1(0e21c9a75a17a7e7dfd8bb51098c2b9dc4c933ec) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "phoenix.key", 0x000000, 0x000014, CRC(2cf772b0) SHA1(eff33c65a4f3862c231f9e4d6fefa7b34398dbf2) )
+ROM_END
+
+
+ROM_START( sfz2abr )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "szabr.03", 0x000000, 0x80000, CRC(0e8e719b) SHA1(ef013adf386925c68f3d38159adfe447c8f259de) )
+ ROM_LOAD16_WORD_SWAP( "szabr.04", 0x080000, 0x80000, CRC(bc7271a0) SHA1(601a0e21926a1d9aebebf41e6dc08523b6773338) )
+ ROM_LOAD16_WORD_SWAP( "szabr.05", 0x100000, 0x80000, CRC(e19eee58) SHA1(f0a2f8606136450c375d9b43f182e4cee2ec1208) )
+ ROM_LOAD16_WORD_SWAP( "szaa.06", 0x180000, 0x80000, CRC(cfc0e7a8) SHA1(31ed58451c7a6ac88a8fccab369167694698f044) )
+ ROM_LOAD16_WORD_SWAP( "szaa.07", 0x200000, 0x80000, CRC(5feb8b20) SHA1(13c79c9b72c3abf0a0b75d507d91ece71e460c06) )
+ ROM_LOAD16_WORD_SWAP( "szaa.08", 0x280000, 0x80000, CRC(6eb6d412) SHA1(c858fec9c1dfea70dfcca629c1c24306f8ae6d81) )
+
+ ROM_REGION( 0x1400000, "gfx", 0 )
+ ROMX_LOAD( "sz2br.13m", 0x0000000, 0x400000, CRC(a3b979fe) SHA1(236378162562aea3e522a182bbf395b020452893) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sz2br.15m", 0x0000002, 0x400000, CRC(ab0e6693) SHA1(6f00bdf5064fb1cb2e152c2731d26a11cd8bf376) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sz2br.17m", 0x0000004, 0x400000, CRC(ce0913ba) SHA1(684c402c7ca1e50018ef439331b5bd002f573db8) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sz2br.19m", 0x0000006, 0x400000, CRC(3c8cffe6) SHA1(26d4ed4a20a4e84b8c87c7120b181371e428ad58) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sz2.14m", 0x1000000, 0x100000, CRC(0560c6aa) SHA1(f2bed3a8efef18052b51a7f0f6a888a18db813a1) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sz2.16m", 0x1000002, 0x100000, CRC(ae940f87) SHA1(39ee26333abbe302ba76dced0196a2e6b3b1d02a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sz2.18m", 0x1000004, 0x100000, CRC(4bc3c8bc) SHA1(6256963c515bf56f39b6e559afefd653ead56c54) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sz2.20m", 0x1000006, 0x100000, CRC(39e674c0) SHA1(8e771a2d8c2accad0463bccd21d7b23af0c895a1) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sz2.01a", 0x00000, 0x08000, CRC(1bc323cf) SHA1(83fbd6e9b327700dc9f1c59700b7385bc3705749) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "sz2.02a", 0x28000, 0x20000, CRC(ba6a5013) SHA1(7814f3e56b69529b9860dd61c3b1e8d700244b03) )
+
+ 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) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "sfz2al.key", 0x000000, 0x000014, CRC(2904963e) SHA1(f4fa44646746ab4c6f2e76eaba57a7aee32e2933) )
+ROM_END
+
+ROM_START( sfz2ajhp )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sfzajhp.03", 0x000000, 0x80000, CRC(b2d81a68) SHA1(f59d1417fed645d1b4edec47195cf2e85d1c4fc4) )
+ ROM_LOAD16_WORD_SWAP( "szaj.04a", 0x080000, 0x80000, CRC(e7ca87c7) SHA1(e44c930b27431dd2b983d93471a440d292e7a8bb) )
+ ROM_LOAD16_WORD_SWAP( "szaj.05a", 0x100000, 0x80000, CRC(c88ebf88) SHA1(e37cf232fc70b9a3254dea99754e288232f04e25) )
+ ROM_LOAD16_WORD_SWAP( "szaj.06a", 0x180000, 0x80000, CRC(35ed5b7a) SHA1(b03cb92f594eb35fa374445f74930e9040a2baff) )
+ ROM_LOAD16_WORD_SWAP( "szaj.07a", 0x200000, 0x80000, CRC(975dcb3e) SHA1(a2ca8e5a768e49cce9e2137ec0dcba9337ed2ad5) )
+ ROM_LOAD16_WORD_SWAP( "szaj.08a", 0x280000, 0x80000, CRC(dc73f2d7) SHA1(09fa10e7d1ff5f0dac87a6cf3d66730e3ab9ad25) )
+
+ ROM_REGION( 0x1400000, "gfx", 0 )
+ ROMX_LOAD( "sza.13m", 0x0000000, 0x400000, CRC(4d1f1f22) SHA1(659fb4305bcf0cbbbbec97ede6e68a8323b13308) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sza.15m", 0x0000002, 0x400000, CRC(19cea680) SHA1(4cb88963a0fbcef191c8419b6379387c01b4c81e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sza.17m", 0x0000004, 0x400000, CRC(e01b4588) SHA1(c2936608fd75ff6cd5fa94c6d6d6f0c77c44a450) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sza.19m", 0x0000006, 0x400000, CRC(0feeda64) SHA1(f5b350601437bd94b70d97feb23d791df19da6b3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sza.14m", 0x1000000, 0x100000, CRC(0560c6aa) SHA1(f2bed3a8efef18052b51a7f0f6a888a18db813a1) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sza.16m", 0x1000002, 0x100000, CRC(ae940f87) SHA1(39ee26333abbe302ba76dced0196a2e6b3b1d02a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sza.18m", 0x1000004, 0x100000, CRC(4bc3c8bc) SHA1(6256963c515bf56f39b6e559afefd653ead56c54) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sza.20m", 0x1000006, 0x100000, CRC(39e674c0) SHA1(8e771a2d8c2accad0463bccd21d7b23af0c895a1) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sza.01", 0x00000, 0x08000, CRC(1bc323cf) SHA1(83fbd6e9b327700dc9f1c59700b7385bc3705749) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "sza.02", 0x28000, 0x20000, CRC(ba6a5013) SHA1(7814f3e56b69529b9860dd61c3b1e8d700244b03) )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "sza.11m", 0x000000, 0x200000, CRC(aa47a601) SHA1(a4d1ee89c84a3b9db06469bb66e85293b5aa9ac9) )
+ ROM_LOAD16_WORD_SWAP( "sza.12m", 0x200000, 0x200000, CRC(2237bc53) SHA1(96d5693047e4cf1ed10a8ee1905cea267a278e92) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "sfz2alj.key", 0x000000, 0x000014, CRC(4c42320f) SHA1(0fabdab677416c5a8060526d997e6f80b26f9bb3) )
+ROM_END
+
+ROM_START( sfz2aldp )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sfzaldp.03", 0x000000, 0x80000, CRC(d6493cc5) SHA1(b7123783b9f77a0ec2e995b599a96f291b178c95) )
+ ROM_LOAD16_WORD_SWAP( "sfzaldp.04", 0x080000, 0x80000, CRC(a3f56672) SHA1(7351929b857b710a658a0be7c9fb82edca89ddfe) )
+ ROM_LOAD16_WORD_SWAP( "szaj.05a", 0x100000, 0x80000, CRC(c88ebf88) SHA1(e37cf232fc70b9a3254dea99754e288232f04e25) )
+ ROM_LOAD16_WORD_SWAP( "szaj.06a", 0x180000, 0x80000, CRC(35ed5b7a) SHA1(b03cb92f594eb35fa374445f74930e9040a2baff) )
+ ROM_LOAD16_WORD_SWAP( "szaj.07a", 0x200000, 0x80000, CRC(975dcb3e) SHA1(a2ca8e5a768e49cce9e2137ec0dcba9337ed2ad5) )
+ ROM_LOAD16_WORD_SWAP( "szaj.08a", 0x280000, 0x80000, CRC(dc73f2d7) SHA1(09fa10e7d1ff5f0dac87a6cf3d66730e3ab9ad25) )
+
+ ROM_REGION( 0x1400000, "gfx", 0 )
+ ROMX_LOAD( "sza.13m", 0x0000000, 0x400000, CRC(4d1f1f22) SHA1(659fb4305bcf0cbbbbec97ede6e68a8323b13308) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sza.15m", 0x0000002, 0x400000, CRC(19cea680) SHA1(4cb88963a0fbcef191c8419b6379387c01b4c81e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sza.17m", 0x0000004, 0x400000, CRC(e01b4588) SHA1(c2936608fd75ff6cd5fa94c6d6d6f0c77c44a450) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sza.19m", 0x0000006, 0x400000, CRC(0feeda64) SHA1(f5b350601437bd94b70d97feb23d791df19da6b3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sza.14m", 0x1000000, 0x100000, CRC(0560c6aa) SHA1(f2bed3a8efef18052b51a7f0f6a888a18db813a1) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sza.16m", 0x1000002, 0x100000, CRC(ae940f87) SHA1(39ee26333abbe302ba76dced0196a2e6b3b1d02a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sza.18m", 0x1000004, 0x100000, CRC(4bc3c8bc) SHA1(6256963c515bf56f39b6e559afefd653ead56c54) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sza.20m", 0x1000006, 0x100000, CRC(39e674c0) SHA1(8e771a2d8c2accad0463bccd21d7b23af0c895a1) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sza.01", 0x00000, 0x08000, CRC(1bc323cf) SHA1(83fbd6e9b327700dc9f1c59700b7385bc3705749) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "sza.02", 0x28000, 0x20000, CRC(ba6a5013) SHA1(7814f3e56b69529b9860dd61c3b1e8d700244b03) )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "sza.11m", 0x000000, 0x200000, CRC(aa47a601) SHA1(a4d1ee89c84a3b9db06469bb66e85293b5aa9ac9) )
+ ROM_LOAD16_WORD_SWAP( "sza.12m", 0x200000, 0x200000, CRC(2237bc53) SHA1(96d5693047e4cf1ed10a8ee1905cea267a278e92) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "sfz2alj.key", 0x000000, 0x000014, CRC(4c42320f) SHA1(0fabdab677416c5a8060526d997e6f80b26f9bb3) )
+ROM_END
+
+ROM_START( sfz2aldp2 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sfzaldp2.03", 0x000000, 0x80000, CRC(67bc6f45) SHA1(d810865d890fc7830078e5dc13002f4447a0b3ea) )
+ ROM_LOAD16_WORD_SWAP( "sfzaldp2.04", 0x080000, 0x80000, CRC(b124800a) SHA1(560e708e1296ac3e7e6b74bee99a152a0d1f6894) )
+ ROM_LOAD16_WORD_SWAP( "szaj.05a", 0x100000, 0x80000, CRC(c88ebf88) SHA1(e37cf232fc70b9a3254dea99754e288232f04e25) )
+ ROM_LOAD16_WORD_SWAP( "szaj.06a", 0x180000, 0x80000, CRC(35ed5b7a) SHA1(b03cb92f594eb35fa374445f74930e9040a2baff) )
+ ROM_LOAD16_WORD_SWAP( "szaj.07a", 0x200000, 0x80000, CRC(975dcb3e) SHA1(a2ca8e5a768e49cce9e2137ec0dcba9337ed2ad5) )
+ ROM_LOAD16_WORD_SWAP( "szaj.08a", 0x280000, 0x80000, CRC(dc73f2d7) SHA1(09fa10e7d1ff5f0dac87a6cf3d66730e3ab9ad25) )
+
+ ROM_REGION( 0x1400000, "gfx", 0 )
+ ROMX_LOAD( "sza.13m", 0x0000000, 0x400000, CRC(4d1f1f22) SHA1(659fb4305bcf0cbbbbec97ede6e68a8323b13308) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sza.15m", 0x0000002, 0x400000, CRC(19cea680) SHA1(4cb88963a0fbcef191c8419b6379387c01b4c81e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sza.17m", 0x0000004, 0x400000, CRC(e01b4588) SHA1(c2936608fd75ff6cd5fa94c6d6d6f0c77c44a450) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sza.19m", 0x0000006, 0x400000, CRC(0feeda64) SHA1(f5b350601437bd94b70d97feb23d791df19da6b3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sza.14m", 0x1000000, 0x100000, CRC(0560c6aa) SHA1(f2bed3a8efef18052b51a7f0f6a888a18db813a1) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sza.16m", 0x1000002, 0x100000, CRC(ae940f87) SHA1(39ee26333abbe302ba76dced0196a2e6b3b1d02a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sza.18m", 0x1000004, 0x100000, CRC(4bc3c8bc) SHA1(6256963c515bf56f39b6e559afefd653ead56c54) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sza.20m", 0x1000006, 0x100000, CRC(39e674c0) SHA1(8e771a2d8c2accad0463bccd21d7b23af0c895a1) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sza.01", 0x00000, 0x08000, CRC(1bc323cf) SHA1(83fbd6e9b327700dc9f1c59700b7385bc3705749) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "sza.02", 0x28000, 0x20000, CRC(ba6a5013) SHA1(7814f3e56b69529b9860dd61c3b1e8d700244b03) )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "sza.11m", 0x000000, 0x200000, CRC(aa47a601) SHA1(a4d1ee89c84a3b9db06469bb66e85293b5aa9ac9) )
+ ROM_LOAD16_WORD_SWAP( "sza.12m", 0x200000, 0x200000, CRC(2237bc53) SHA1(96d5693047e4cf1ed10a8ee1905cea267a278e92) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "sfz2alj.key", 0x000000, 0x000014, CRC(4c42320f) SHA1(0fabdab677416c5a8060526d997e6f80b26f9bb3) )
+ROM_END
+
+ROM_START( sfz2jyh )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sfz2jyh.03", 0x000000, 0x80000, CRC(4afbba27) SHA1(9bba80417763d3dd9614efc810908ef3d011c49d) )
+ ROM_LOAD16_WORD_SWAP( "sz2j.04a", 0x080000, 0x80000, CRC(ae4851a9) SHA1(4771bc22fe1b376b753a68506c012c52bd4b886d) )
+ ROM_LOAD16_WORD_SWAP( "sz2.05a", 0x100000, 0x80000, CRC(98e8e992) SHA1(41745b63e6b3888081d189b8315ed3b7526b3d20) )
+ ROM_LOAD16_WORD_SWAP( "sz2.06", 0x180000, 0x80000, CRC(5b1d49c0) SHA1(f0a0c894c9cbe2b18e7f59058665949ee0025732) )
+ ROM_LOAD16_WORD_SWAP( "sz2j.07a", 0x200000, 0x80000, CRC(d910b2a2) SHA1(aa201660caa9cef993c147a1077c9e7767b34a78) )
+ ROM_LOAD16_WORD_SWAP( "sz2.08", 0x280000, 0x80000, CRC(0fe8585d) SHA1(0cd5369a5aa90c98d8dc1ff3342cd4d990631cff) )
+
+ ROM_REGION( 0x1400000, "gfx", 0 )
+ ROMX_LOAD( "sz2.13m", 0x0000000, 0x400000, CRC(4d1f1f22) SHA1(659fb4305bcf0cbbbbec97ede6e68a8323b13308) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sz2.15m", 0x0000002, 0x400000, CRC(19cea680) SHA1(4cb88963a0fbcef191c8419b6379387c01b4c81e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sz2.17m", 0x0000004, 0x400000, CRC(e01b4588) SHA1(c2936608fd75ff6cd5fa94c6d6d6f0c77c44a450) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sz2.19m", 0x0000006, 0x400000, CRC(0feeda64) SHA1(f5b350601437bd94b70d97feb23d791df19da6b3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sz2.14m", 0x1000000, 0x100000, CRC(0560c6aa) SHA1(f2bed3a8efef18052b51a7f0f6a888a18db813a1) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sz2.16m", 0x1000002, 0x100000, CRC(ae940f87) SHA1(39ee26333abbe302ba76dced0196a2e6b3b1d02a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sz2.18m", 0x1000004, 0x100000, CRC(4bc3c8bc) SHA1(6256963c515bf56f39b6e559afefd653ead56c54) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sz2.20m", 0x1000006, 0x100000, CRC(39e674c0) SHA1(8e771a2d8c2accad0463bccd21d7b23af0c895a1) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sz2.01a", 0x00000, 0x08000, CRC(1bc323cf) SHA1(83fbd6e9b327700dc9f1c59700b7385bc3705749) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "sz2.02a", 0x28000, 0x20000, CRC(ba6a5013) SHA1(7814f3e56b69529b9860dd61c3b1e8d700244b03) )
+
+ 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) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "sfz2j.key", 0x000000, 0x000014, CRC(455bd098) SHA1(6a928a2d44f416ccdb0c09a8dd7466ac12f38110) )
+ROM_END
+
+
+ROM_START( sfz3jb )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sfz3jb.03", 0x000000, 0x80000, CRC(d7eca311) SHA1(cb2156bb5b545782bf4c0387ba6995136d14452d) )
+ ROM_LOAD16_WORD_SWAP( "sfz3jb.04", 0x080000, 0x80000, CRC(ee836561) SHA1(9b3f6a7a7b11b76e4849698c7ce5f09c23bcdad0) )
+ ROM_LOAD16_WORD_SWAP( "sz3.05c", 0x100000, 0x80000, CRC(57fd0a40) SHA1(bc2d5f4d57117bbf58b1adb088e00424ef489e92) )
+ ROM_LOAD16_WORD_SWAP( "sz3.06c", 0x180000, 0x80000, CRC(f6305f8b) SHA1(3fd1ebdbad96103aca604e950b488e52460a71ec) )
+ ROM_LOAD16_WORD_SWAP( "sz3.07c", 0x200000, 0x80000, CRC(6eab0f6f) SHA1(f8d093dda65cf4e8a3000dc1b96355bb03dcb495) )
+ ROM_LOAD16_WORD_SWAP( "sz3.08c", 0x280000, 0x80000, CRC(910c4a3b) SHA1(dbd41280f9b16ad6a5b8f12092549970349395f1) )
+ ROM_LOAD16_WORD_SWAP( "sz3.09c", 0x300000, 0x80000, CRC(b29e5199) SHA1(c6c215eb5aa37f678a9cafcbd8620969fb5ca12f) )
+ ROM_LOAD16_WORD_SWAP( "sz3.10b", 0x380000, 0x80000, CRC(deb2ff52) SHA1(0aa4722aad68a04164946c78bf05752f947b4322) )
+
+ 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.01", 0x00000, 0x08000, CRC(de810084) SHA1(fd0b969b732921ed8b40c16fbfa30ee09c7a7cbd) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "sz3.02", 0x28000, 0x20000, CRC(72445dc4) SHA1(14fca7596ac45ba655016eef5b6120f9f9671c23) )
+
+ 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) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "sfz3j.key", 0x000000, 0x000014, CRC(d30cca8d) SHA1(b05869902d4d5968d5f79ed6165eb4b78e1ddcdd) )
+ROM_END
+
+ROM_START( sfz3jemb )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sfz3jemb.03", 0x000000, 0x80000, CRC(1e103c5e) SHA1(2a96b8f62f4dcefadb4485c60e40074a6357a22a) )
+ ROM_LOAD16_WORD_SWAP( "sz3j.04c", 0x080000, 0x80000, CRC(fcb31228) SHA1(093f40083b5a4e4cae433d5856c48014063fe6ad) )
+ ROM_LOAD16_WORD_SWAP( "sz3.05c", 0x100000, 0x80000, CRC(57fd0a40) SHA1(bc2d5f4d57117bbf58b1adb088e00424ef489e92) )
+ ROM_LOAD16_WORD_SWAP( "sz3.06c", 0x180000, 0x80000, CRC(f6305f8b) SHA1(3fd1ebdbad96103aca604e950b488e52460a71ec) )
+ ROM_LOAD16_WORD_SWAP( "sz3.07c", 0x200000, 0x80000, CRC(6eab0f6f) SHA1(f8d093dda65cf4e8a3000dc1b96355bb03dcb495) )
+ ROM_LOAD16_WORD_SWAP( "sz3.08c", 0x280000, 0x80000, CRC(910c4a3b) SHA1(dbd41280f9b16ad6a5b8f12092549970349395f1) )
+ ROM_LOAD16_WORD_SWAP( "sz3.09c", 0x300000, 0x80000, CRC(b29e5199) SHA1(c6c215eb5aa37f678a9cafcbd8620969fb5ca12f) )
+ ROM_LOAD16_WORD_SWAP( "sz3.10b", 0x380000, 0x80000, CRC(deb2ff52) SHA1(0aa4722aad68a04164946c78bf05752f947b4322) )
+
+ 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.01", 0x00000, 0x08000, CRC(de810084) SHA1(fd0b969b732921ed8b40c16fbfa30ee09c7a7cbd) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "sz3.02", 0x28000, 0x20000, CRC(72445dc4) SHA1(14fca7596ac45ba655016eef5b6120f9f9671c23) )
+
+ 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) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "sfz3j.key", 0x000000, 0x000014, CRC(d30cca8d) SHA1(b05869902d4d5968d5f79ed6165eb4b78e1ddcdd) )
+ROM_END
+
+ROM_START( sfz3jhp )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sfz3jhp.03", 0x000000, 0x80000, CRC(5719fd0c) SHA1(edfdbbc36173a00652ef136005e55171b446b6c2) )
+ ROM_LOAD16_WORD_SWAP( "sz3j.04c", 0x080000, 0x80000, CRC(fcb31228) SHA1(093f40083b5a4e4cae433d5856c48014063fe6ad) )
+ ROM_LOAD16_WORD_SWAP( "sz3.05c", 0x100000, 0x80000, CRC(57fd0a40) SHA1(bc2d5f4d57117bbf58b1adb088e00424ef489e92) )
+ ROM_LOAD16_WORD_SWAP( "sz3.06c", 0x180000, 0x80000, CRC(f6305f8b) SHA1(3fd1ebdbad96103aca604e950b488e52460a71ec) )
+ ROM_LOAD16_WORD_SWAP( "sz3.07c", 0x200000, 0x80000, CRC(6eab0f6f) SHA1(f8d093dda65cf4e8a3000dc1b96355bb03dcb495) )
+ ROM_LOAD16_WORD_SWAP( "sz3.08c", 0x280000, 0x80000, CRC(910c4a3b) SHA1(dbd41280f9b16ad6a5b8f12092549970349395f1) )
+ ROM_LOAD16_WORD_SWAP( "sz3.09c", 0x300000, 0x80000, CRC(b29e5199) SHA1(c6c215eb5aa37f678a9cafcbd8620969fb5ca12f) )
+ ROM_LOAD16_WORD_SWAP( "sz3.10b", 0x380000, 0x80000, CRC(deb2ff52) SHA1(0aa4722aad68a04164946c78bf05752f947b4322) )
+
+ 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.01", 0x00000, 0x08000, CRC(de810084) SHA1(fd0b969b732921ed8b40c16fbfa30ee09c7a7cbd) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "sz3.02", 0x28000, 0x20000, CRC(72445dc4) SHA1(14fca7596ac45ba655016eef5b6120f9f9671c23) )
+
+ 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) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "sfz3j.key", 0x000000, 0x000014, CRC(d30cca8d) SHA1(b05869902d4d5968d5f79ed6165eb4b78e1ddcdd) )
+ROM_END
+
+ROM_START( sfz3jsep )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sfz3jsep.03", 0x000000, 0x80000, CRC(248da619) SHA1(54155279822dc8f754d753c696eeec1fd0e90c18) )
+ ROM_LOAD16_WORD_SWAP( "sz3j.04c", 0x080000, 0x80000, CRC(fcb31228) SHA1(093f40083b5a4e4cae433d5856c48014063fe6ad) )
+ ROM_LOAD16_WORD_SWAP( "sz3.05c", 0x100000, 0x80000, CRC(57fd0a40) SHA1(bc2d5f4d57117bbf58b1adb088e00424ef489e92) )
+ ROM_LOAD16_WORD_SWAP( "sz3.06c", 0x180000, 0x80000, CRC(f6305f8b) SHA1(3fd1ebdbad96103aca604e950b488e52460a71ec) )
+ ROM_LOAD16_WORD_SWAP( "sz3.07c", 0x200000, 0x80000, CRC(6eab0f6f) SHA1(f8d093dda65cf4e8a3000dc1b96355bb03dcb495) )
+ ROM_LOAD16_WORD_SWAP( "sz3.08c", 0x280000, 0x80000, CRC(910c4a3b) SHA1(dbd41280f9b16ad6a5b8f12092549970349395f1) )
+ ROM_LOAD16_WORD_SWAP( "sz3.09c", 0x300000, 0x80000, CRC(b29e5199) SHA1(c6c215eb5aa37f678a9cafcbd8620969fb5ca12f) )
+ ROM_LOAD16_WORD_SWAP( "sz3.10b", 0x380000, 0x80000, CRC(deb2ff52) SHA1(0aa4722aad68a04164946c78bf05752f947b4322) )
+
+ 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.01", 0x00000, 0x08000, CRC(de810084) SHA1(fd0b969b732921ed8b40c16fbfa30ee09c7a7cbd) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "sz3.02", 0x28000, 0x20000, CRC(72445dc4) SHA1(14fca7596ac45ba655016eef5b6120f9f9671c23) )
+
+ 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) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "sfz3j.key", 0x000000, 0x000014, CRC(d30cca8d) SHA1(b05869902d4d5968d5f79ed6165eb4b78e1ddcdd) )
+ROM_END
+
+
+ROM_START( sfzjboss )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sfzjboss.03", 0x000000, 0x80000, CRC(0a2e2f39) SHA1(654e05c1598ec932de03fd1ff8b9fa66ec4ceb60) )
+ ROM_LOAD16_WORD_SWAP( "sfz.04b", 0x080000, 0x80000, CRC(8b73b0e5) SHA1(5318761f615c21395366b5333e75eaaa73ef2073) )
+ ROM_LOAD16_WORD_SWAP( "sfz.05a", 0x100000, 0x80000, CRC(0810544d) SHA1(5f39bda3e7b16508eb58e5a2e0cc58c09cf428ce) )
+ ROM_LOAD16_WORD_SWAP( "sfzjboss.06", 0x180000, 0x80000, CRC(b6c4fec7) SHA1(602c9acb8034219334df05ff4d5dc67514823182) )
+
+ ROM_REGION( 0x1000000, "gfx", 0 )
+ ROM_FILL( 0x000000, 0x800000, 0x00 )
+ ROMX_LOAD( "sfz.14m", 0x800000, 0x200000, CRC(90fefdb3) SHA1(5eb28c8de57acfeaefebdd01509c7d9ba5244705) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz.16m", 0x800002, 0x200000, CRC(5354c948) SHA1(07588f1ba6addc04fef3274c971174aaf3e632ab) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz.18m", 0x800004, 0x200000, CRC(41a1e790) SHA1(ce25dad542308691dbe9606b26279bbd59ea4b81) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz.20m", 0x800006, 0x200000, CRC(a549df98) SHA1(f054e95df650a891ef56da8bfb31cb2c945a9aed) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sfz.01", 0x00000, 0x08000, CRC(ffffec7d) SHA1(75b4aef001b72a0f571b51b2b97803facc1832dd) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "sfz.02", 0x28000, 0x20000, CRC(45f46a08) SHA1(e32dbd27b52ab708278045b5a829376e55a4ca81) )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "sfz.11m", 0x000000, 0x200000, CRC(c4b093cd) SHA1(256526bb693a0b72443f047e060304c9b739acd1) )
+ ROM_LOAD16_WORD_SWAP( "sfz.12m", 0x200000, 0x200000, CRC(8bdbc4b4) SHA1(0e21c9a75a17a7e7dfd8bb51098c2b9dc4c933ec) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "sfzj.key", 0x000000, 0x000014, CRC(355d85b8) SHA1(5da2c407852ce7b28153f3f94de8328802ff2f2d) )
+ROM_END
+
+ROM_START( sfzjyh )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sfzjyh.03", 0x000000, 0x80000, CRC(6b0366bf) SHA1(6138f48027beaba73cc744ffc75589fe26ec1339) )
+ ROM_LOAD16_WORD_SWAP( "sfz.04b", 0x080000, 0x80000, CRC(8b73b0e5) SHA1(5318761f615c21395366b5333e75eaaa73ef2073) )
+ ROM_LOAD16_WORD_SWAP( "sfz.05a", 0x100000, 0x80000, CRC(0810544d) SHA1(5f39bda3e7b16508eb58e5a2e0cc58c09cf428ce) )
+ ROM_LOAD16_WORD_SWAP( "sfzjyh.06", 0x180000, 0x80000, CRC(e7bb5d20) SHA1(0f2e4516ba93f02e6869b182d225718e845d1093) )
+
+ ROM_REGION( 0x1000000, "gfx", 0 )
+ ROM_FILL( 0x000000, 0x800000, 0x00 )
+ ROMX_LOAD( "sfz.14m", 0x800000, 0x200000, CRC(90fefdb3) SHA1(5eb28c8de57acfeaefebdd01509c7d9ba5244705) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz.16m", 0x800002, 0x200000, CRC(5354c948) SHA1(07588f1ba6addc04fef3274c971174aaf3e632ab) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz.18m", 0x800004, 0x200000, CRC(41a1e790) SHA1(ce25dad542308691dbe9606b26279bbd59ea4b81) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz.20m", 0x800006, 0x200000, CRC(a549df98) SHA1(f054e95df650a891ef56da8bfb31cb2c945a9aed) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sfz.01", 0x00000, 0x08000, CRC(ffffec7d) SHA1(75b4aef001b72a0f571b51b2b97803facc1832dd) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "sfz.02", 0x28000, 0x20000, CRC(45f46a08) SHA1(e32dbd27b52ab708278045b5a829376e55a4ca81) )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "sfz.11m", 0x000000, 0x200000, CRC(c4b093cd) SHA1(256526bb693a0b72443f047e060304c9b739acd1) )
+ ROM_LOAD16_WORD_SWAP( "sfz.12m", 0x200000, 0x200000, CRC(8bdbc4b4) SHA1(0e21c9a75a17a7e7dfd8bb51098c2b9dc4c933ec) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "sfzj.key", 0x000000, 0x000014, CRC(355d85b8) SHA1(5da2c407852ce7b28153f3f94de8328802ff2f2d) )
+ROM_END
+
+
+ROM_START( sgemfch )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "pcfu.03", 0x000000, 0x80000, CRC(ac2e8566) SHA1(5975aae46bded231c0f478f40c7257434ade36b0) )
+ ROM_LOAD16_WORD_SWAP( "pcf.04", 0x080000, 0x80000, CRC(f4314c96) SHA1(c40ed74039bf0096eb3648b7243a8e697638e0a6) )
+ ROM_LOAD16_WORD_SWAP( "pcf.05", 0x100000, 0x80000, CRC(215655f6) SHA1(242c0f4401520f2a3b0deafc3a807b18b987e496) )
+ ROM_LOAD16_WORD_SWAP( "pcf.06", 0x180000, 0x80000, CRC(ea6f13ea) SHA1(1bc924a8a9da1d2ad7667685cdb92fe317a39aba) )
+ ROM_LOAD16_WORD_SWAP( "sgemfch.07", 0x200000, 0x80000, CRC(dcbe118c) SHA1(c571058180e1ad317eb3819a4701d4e40e7787f1) )
+
+ ROM_REGION( 0x1400000, "gfx", 0 )
+ ROMX_LOAD( "pcf.13m", 0x0000000, 0x400000, CRC(22d72ab9) SHA1(653efd95c34b4b9d2ab0d219f41a99ca84e12214) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "pcf.15m", 0x0000002, 0x400000, CRC(16a4813c) SHA1(bf5fce6008214f353414d1b64bea4ed0c7673670) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "pcf.17m", 0x0000004, 0x400000, CRC(1097e035) SHA1(4bd51e4e9447af27d2cac1f6d2201e37c949912b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "pcf.19m", 0x0000006, 0x400000, CRC(d362d874) SHA1(30c42af18440496cc05e4418e4efa41172ae4ced) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "pcf.14m", 0x1000000, 0x100000, CRC(0383897c) SHA1(aba14afa1d0c971afcee4317f480e88117d77b5e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "pcf.16m", 0x1000002, 0x100000, CRC(76f91084) SHA1(3d1e32467f2aa5dd6fb96bd5c866ecc9691660fc) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "pcf.18m", 0x1000004, 0x100000, CRC(756c3754) SHA1(be2f709b90222a567f198f851cf07ffb0ad433d7) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "pcf.20m", 0x1000006, 0x100000, CRC(9ec9277d) SHA1(b7ceeaca30dfcdf498b61a6961f0aa1a068b8ec4) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "pcf.01", 0x00000, 0x08000, CRC(254e5f33) SHA1(c413ec0630b9bdd15e64f42893eba8958a09b573) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "pcf.02", 0x28000, 0x20000, CRC(6902f4f9) SHA1(9bfe4ddade3c666076d26a2b545120f6d059fd7c) )
+
+ ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "pcf.11m", 0x000000, 0x400000, CRC(a5dea005) SHA1(3ae79baf6ff5bd527f82b26f164c7e3c65423ae2) )
+ ROM_LOAD16_WORD_SWAP( "pcf.12m", 0x400000, 0x400000, CRC(4ce235fe) SHA1(795b94557e954cc0e45fd3778b609064d57a34a2) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "sgemf.key", 0x000000, 0x000014, CRC(3d604021) SHA1(f6189a7dcdd110f4d624cddfe2e51e49c40a0fdb) )
+ROM_END
+
+
+ROM_START( spf2tb )
+ ROM_REGION(CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "pzfu_boss.03a", 0x000000, 0x80000, CRC(ca1f3e42) SHA1(784214517f3ac3f5f727a18f50992d4fa3417726) )
+ ROM_LOAD16_WORD_SWAP( "pzf.04", 0x080000, 0x80000, CRC(b80649e2) SHA1(5bfccd656aea7ff82e9a20bb5856f4ab99b5a007) )
+
+ ROM_REGION( 0xC00000, "gfx", 0 )
+ ROM_FILL( 0x000000, 0x800000, 0 )
+ ROMX_LOAD( "pzf.14m", 0x800000, 0x100000, CRC(2d4881cb) SHA1(fd3baa183c25bed153b19c251980e2fb761600e2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "pzf.16m", 0x800002, 0x100000, CRC(4b0fd1be) SHA1(377aafdcdb7a866b1c8487670e3598d8197976e4) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "pzf.18m", 0x800004, 0x100000, CRC(e43aac33) SHA1(d041e0688c3807d3363861a7f216de43b34d846c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "pzf.20m", 0x800006, 0x100000, CRC(7f536ff1) SHA1(905b9d62ef7bef47297c7f4a4dd697aed6df38a5) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION(QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "pzf.01", 0x00000, 0x08000, CRC(600fb2a3) SHA1(1fab1c2a23bf6ad8309d29ddbbc29435a8aeea13) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "pzf.02", 0x28000, 0x20000, CRC(496076e0) SHA1(1ee4e135140afd0e8e03231e570cd77d140f6367) )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "pzf.11m", 0x000000, 0x200000, CRC(78442743) SHA1(b61190bb586871de6d54af580e3e1d9cc0de0acb) )
+ ROM_LOAD16_WORD_SWAP( "pzf.12m", 0x200000, 0x200000, CRC(399d2c7b) SHA1(e849dea97b8d16540415c0d9bbc4f9f4eb755ec4) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "spf2tb.key", 0x000000, 0x000014, CRC(5d7b15e8) SHA1(c14c6b148761856bf83b31b52df83be461ac8d62) )
+ROM_END
+
+
+ROM_START( ssf2r1d )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "ssfud.03a", 0x000000, 0x80000, CRC(fad5daf8) SHA1(5bed5d5af8dffc54d3b3371274a3905f46384f79) )
+ ROM_LOAD16_WORD_SWAP( "ssfud.04a", 0x080000, 0x80000, CRC(0d31af65) SHA1(7e903e18cb899627fedd8ad92594b75b5d8ee8fd) )
+ ROM_LOAD16_WORD_SWAP( "ssfud.05", 0x100000, 0x80000, CRC(75c651ef) SHA1(8c6f60d3cf10d802190438c403a719bc30ccbeaa) )
+ ROM_LOAD16_WORD_SWAP( "ssfud.06", 0x180000, 0x80000, CRC(85c3ec00) SHA1(29ab3eccc5f9c0dd6bd19eaa83c72e1a1d44b320) )
+ ROM_LOAD16_WORD_SWAP( "ssf2r1d.07", 0x200000, 0x80000, CRC(9320e350) SHA1(bec5dcd85faf10c72cc79e5d5af311ffb5445c47) )
+
+ ROM_REGION( 0xc00000, "gfx", 0 )
+ ROMX_LOAD( "ssf.13m", 0x000000, 0x200000, CRC(cf94d275) SHA1(bf2a6d98a656d1cb5734da7836686242d3211137) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ssf.15m", 0x000002, 0x200000, CRC(5eb703af) SHA1(4b302dbb66e8a5c2ad92798699391e981bada427) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ssf.17m", 0x000004, 0x200000, CRC(ffa60e0f) SHA1(b21b1c749a8241440879bf8e7cb33968ccef97e5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ssf.19m", 0x000006, 0x200000, CRC(34e825c5) SHA1(4d320fc96d1ef0b9928a8ce801734245a4c097a5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ssf.14m", 0x800000, 0x100000, CRC(b7cc32e7) SHA1(0f4d26af338dab5dce5b7b34d32ad0c573434ace) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ssf.16m", 0x800002, 0x100000, CRC(8376ad18) SHA1(f4456833fb396e6501f4174c0fe5fd63ea40a188) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ssf.18m", 0x800004, 0x100000, CRC(f5b1b336) SHA1(4b060501e56b9d61294748da5387cdae5280ec4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ssf.20m", 0x800006, 0x100000, CRC(459d5c6b) SHA1(32b11ba7a12004aff810d719bff7508204c7b7c0) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "ssf.01", 0x00000, 0x08000, CRC(eb247e8c) SHA1(24296c18d9b1136d69712bf1c9d9d15463041e83) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "ssf.q01", 0x000000, 0x080000, CRC(a6f9da5c) SHA1(6d19f83a01bd25b838d5c2871f7964529d926c98) )
+ ROM_LOAD( "ssf.q02", 0x080000, 0x080000, CRC(8c66ae26) SHA1(32a82aee6ed4480e5a990f9af161734c7c0a1403) )
+ ROM_LOAD( "ssf.q03", 0x100000, 0x080000, CRC(695cc2ca) SHA1(c2675f0233608b76de528d2a6ef19846d1348060) )
+ ROM_LOAD( "ssf.q04", 0x180000, 0x080000, CRC(9d9ebe32) SHA1(9b26329370041374f1a90b479a172d2bc2801c4d) )
+ ROM_LOAD( "ssf.q05", 0x200000, 0x080000, CRC(4770e7b7) SHA1(0e764f0befb9227b0b36508d8ca8ec9be31bcb05) )
+ ROM_LOAD( "ssf.q06", 0x280000, 0x080000, CRC(4e79c951) SHA1(1144781d7dc57ef8a6458d982f5c91548ff59e27) )
+ ROM_LOAD( "ssf.q07", 0x300000, 0x080000, CRC(cdd14313) SHA1(ebe767a9d4b51dba4282fa0a36a546a88620dd59) )
+ ROM_LOAD( "ssf.q08", 0x380000, 0x080000, CRC(6f5a088c) SHA1(6c0b4690479647a99d76335f174be8455b4ff118) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "phoenix.key", 0x000000, 0x000014, CRC(2cf772b0) SHA1(eff33c65a4f3862c231f9e4d6fefa7b34398dbf2) )
+ROM_END
+
+ROM_START( ssf2td )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sfxe_d.03c", 0x000000, 0x80000, CRC(ed99d850) SHA1(d2dcb8395d630fcd1776fd32a9c685646e1f18be) )
+ ROM_LOAD16_WORD_SWAP( "sfxe_d.04a", 0x080000, 0x80000, CRC(38d9b364) SHA1(814e67441a9d92ed89edf20dacb17a0f100020e3) )
+ ROM_LOAD16_WORD_SWAP( "sfxe_d.05", 0x100000, 0x80000, CRC(c63358d0) SHA1(dde4d9e9adce4dee02322c0fd71615eed0af62e6) )
+ ROM_LOAD16_WORD_SWAP( "sfxe_d.06a", 0x180000, 0x80000, CRC(ccb29808) SHA1(10e7b135a936409fe7c4d7959ea375634a8c68e4) )
+ ROM_LOAD16_WORD_SWAP( "sfxe_d.07", 0x200000, 0x80000, CRC(61f94982) SHA1(d2f22f50c21393deda7d5838dbd2b265722acd38) )
+ ROM_LOAD16_WORD_SWAP( "sfxe_d.08", 0x280000, 0x80000, CRC(d399c36c) SHA1(b4c4217843e5c3ef00ab04d58ca9368d2d734065) )
+ ROM_LOAD16_WORD_SWAP( "sfxe_d.09", 0x300000, 0x80000, CRC(317b5dbc) SHA1(1e1037b071251c28ed9cd5ccd6d52b72cc86396a) )
+
+ ROM_REGION( 0x1000000, "gfx", 0 )
+ ROMX_LOAD( "sfx.13m", 0x000000, 0x200000, CRC(cf94d275) SHA1(bf2a6d98a656d1cb5734da7836686242d3211137) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.15m", 0x000002, 0x200000, CRC(5eb703af) SHA1(4b302dbb66e8a5c2ad92798699391e981bada427) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.17m", 0x000004, 0x200000, CRC(ffa60e0f) SHA1(b21b1c749a8241440879bf8e7cb33968ccef97e5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.19m", 0x000006, 0x200000, CRC(34e825c5) SHA1(4d320fc96d1ef0b9928a8ce801734245a4c097a5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.14m", 0x800000, 0x100000, CRC(b7cc32e7) SHA1(0f4d26af338dab5dce5b7b34d32ad0c573434ace) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.16m", 0x800002, 0x100000, CRC(8376ad18) SHA1(f4456833fb396e6501f4174c0fe5fd63ea40a188) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.18m", 0x800004, 0x100000, CRC(f5b1b336) SHA1(4b060501e56b9d61294748da5387cdae5280ec4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.20m", 0x800006, 0x100000, CRC(459d5c6b) SHA1(32b11ba7a12004aff810d719bff7508204c7b7c0) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.21m", 0xc00000, 0x100000, CRC(e32854af) SHA1(1a5e11e9caa2b96108d89ae660ef1f6bcb469a74) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.23m", 0xc00002, 0x100000, CRC(760f2927) SHA1(491e28e14ee06821fc9e709efa7b91313bc0c2db) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.25m", 0xc00004, 0x100000, CRC(1ee90208) SHA1(83df1d9953560edddc2951ea426d29fb014e6a8a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.27m", 0xc00006, 0x100000, CRC(f814400f) SHA1(ad6921af36d0bd5dfb89b1fb53c3ca3fd92d7204) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sfx.01", 0x00000, 0x08000, CRC(b47b8835) SHA1(c8b2d50fe3a329bd0592ea160d505155d873dab1) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "sfx.02", 0x28000, 0x20000, CRC(0022633f) SHA1(cab3afc79da53e3887eb1ccd1f4d19790728e6cd) )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "sfx.11m", 0x000000, 0x200000, CRC(9bdbd476) SHA1(a8520f77f30b97aae36408e0c4ca1ebbde1808a5) )
+ ROM_LOAD16_WORD_SWAP( "sfx.12m", 0x200000, 0x200000, CRC(a05e3aab) SHA1(d4eb9cae66c74e956569fea8b815156fbd420f83) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "phoenix.key", 0x000000, 0x000014, CRC(2cf772b0) SHA1(eff33c65a4f3862c231f9e4d6fefa7b34398dbf2) )
+ROM_END
+
+ROM_START( ssf2tfp )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "ssf2tfp.03", 0x000000, 0x80000, CRC(8f7d4954) SHA1(ace9981370b8f6df3186c9d9a1d3a614cc519af1) )
+ ROM_LOAD16_WORD_SWAP( "sfxe.04a", 0x080000, 0x80000, CRC(d0bc29c6) SHA1(d9f89bcd79cba26db2100a00dd7bd8ee6ecb75f3) )
+ ROM_LOAD16_WORD_SWAP( "sfxe.05", 0x100000, 0x80000, CRC(65222964) SHA1(025bb708dc5b6365cc7fe60fc3f242511ad8f384) )
+ ROM_LOAD16_WORD_SWAP( "sfxe.06a", 0x180000, 0x80000, CRC(8fe9f531) SHA1(b5d9ed498f730fdb968992bdec33605db1a007f4) )
+ ROM_LOAD16_WORD_SWAP( "sfxe.07", 0x200000, 0x80000, CRC(8a7d0cb6) SHA1(27ea0cea73a93c27257bf2a170d1deaf938cc311) )
+ ROM_LOAD16_WORD_SWAP( "sfxe.08", 0x280000, 0x80000, CRC(74c24062) SHA1(f3eca09e0544c6aa46b0c4bead2246ab1e9a97d9) )
+ ROM_LOAD16_WORD_SWAP( "sfx.09", 0x300000, 0x80000, CRC(642fae3f) SHA1(746df99b826b9837bba267104132161153c1daff) )
+
+ ROM_REGION( 0x1000000, "gfx", 0 )
+ ROMX_LOAD( "sfx.13m", 0x000000, 0x200000, CRC(cf94d275) SHA1(bf2a6d98a656d1cb5734da7836686242d3211137) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.15m", 0x000002, 0x200000, CRC(5eb703af) SHA1(4b302dbb66e8a5c2ad92798699391e981bada427) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.17m", 0x000004, 0x200000, CRC(ffa60e0f) SHA1(b21b1c749a8241440879bf8e7cb33968ccef97e5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.19m", 0x000006, 0x200000, CRC(34e825c5) SHA1(4d320fc96d1ef0b9928a8ce801734245a4c097a5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.14m", 0x800000, 0x100000, CRC(b7cc32e7) SHA1(0f4d26af338dab5dce5b7b34d32ad0c573434ace) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.16m", 0x800002, 0x100000, CRC(8376ad18) SHA1(f4456833fb396e6501f4174c0fe5fd63ea40a188) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.18m", 0x800004, 0x100000, CRC(f5b1b336) SHA1(4b060501e56b9d61294748da5387cdae5280ec4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.20m", 0x800006, 0x100000, CRC(459d5c6b) SHA1(32b11ba7a12004aff810d719bff7508204c7b7c0) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.21m", 0xc00000, 0x100000, CRC(e32854af) SHA1(1a5e11e9caa2b96108d89ae660ef1f6bcb469a74) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.23m", 0xc00002, 0x100000, CRC(760f2927) SHA1(491e28e14ee06821fc9e709efa7b91313bc0c2db) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.25m", 0xc00004, 0x100000, CRC(1ee90208) SHA1(83df1d9953560edddc2951ea426d29fb014e6a8a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.27m", 0xc00006, 0x100000, CRC(f814400f) SHA1(ad6921af36d0bd5dfb89b1fb53c3ca3fd92d7204) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sfx.01", 0x00000, 0x08000, CRC(b47b8835) SHA1(c8b2d50fe3a329bd0592ea160d505155d873dab1) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "sfx.02", 0x28000, 0x20000, CRC(0022633f) SHA1(cab3afc79da53e3887eb1ccd1f4d19790728e6cd) )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "sfx.11m", 0x000000, 0x200000, CRC(9bdbd476) SHA1(a8520f77f30b97aae36408e0c4ca1ebbde1808a5) )
+ ROM_LOAD16_WORD_SWAP( "sfx.12m", 0x200000, 0x200000, CRC(a05e3aab) SHA1(d4eb9cae66c74e956569fea8b815156fbd420f83) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "ssf2t.key", 0x000000, 0x000014, CRC(524d608e) SHA1(fcd2b9a1a640a0dee4a674dc9cfb3975466f7757) )
+ROM_END
+
+ROM_START( ssf2tfr )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "ssf2tfr.03", 0x000000, 0x80000, CRC(c8c491d1) SHA1(5e12ccd36c8cd086d3d628e7f121aefcbc17340e) )
+ ROM_LOAD16_WORD_SWAP( "ssf2tfr.04", 0x080000, 0x80000, CRC(b018ceea) SHA1(75fa14f93c82ade94713556cffcfd17dfcef3e35) )
+ ROM_LOAD16_WORD_SWAP( "sfxe.05", 0x100000, 0x80000, CRC(65222964) SHA1(025bb708dc5b6365cc7fe60fc3f242511ad8f384) )
+ ROM_LOAD16_WORD_SWAP( "sfxe.06a", 0x180000, 0x80000, CRC(8fe9f531) SHA1(b5d9ed498f730fdb968992bdec33605db1a007f4) )
+ ROM_LOAD16_WORD_SWAP( "sfxe.07", 0x200000, 0x80000, CRC(8a7d0cb6) SHA1(27ea0cea73a93c27257bf2a170d1deaf938cc311) )
+ ROM_LOAD16_WORD_SWAP( "sfxe.08", 0x280000, 0x80000, CRC(74c24062) SHA1(f3eca09e0544c6aa46b0c4bead2246ab1e9a97d9) )
+ ROM_LOAD16_WORD_SWAP( "sfx.09", 0x300000, 0x80000, CRC(642fae3f) SHA1(746df99b826b9837bba267104132161153c1daff) )
+
+ ROM_REGION( 0x1000000, "gfx", 0 )
+ ROMX_LOAD( "sfx.13m", 0x000000, 0x200000, CRC(cf94d275) SHA1(bf2a6d98a656d1cb5734da7836686242d3211137) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.15m", 0x000002, 0x200000, CRC(5eb703af) SHA1(4b302dbb66e8a5c2ad92798699391e981bada427) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.17m", 0x000004, 0x200000, CRC(ffa60e0f) SHA1(b21b1c749a8241440879bf8e7cb33968ccef97e5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.19m", 0x000006, 0x200000, CRC(34e825c5) SHA1(4d320fc96d1ef0b9928a8ce801734245a4c097a5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.14m", 0x800000, 0x100000, CRC(b7cc32e7) SHA1(0f4d26af338dab5dce5b7b34d32ad0c573434ace) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.16m", 0x800002, 0x100000, CRC(8376ad18) SHA1(f4456833fb396e6501f4174c0fe5fd63ea40a188) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.18m", 0x800004, 0x100000, CRC(f5b1b336) SHA1(4b060501e56b9d61294748da5387cdae5280ec4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.20m", 0x800006, 0x100000, CRC(459d5c6b) SHA1(32b11ba7a12004aff810d719bff7508204c7b7c0) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.21m", 0xc00000, 0x100000, CRC(e32854af) SHA1(1a5e11e9caa2b96108d89ae660ef1f6bcb469a74) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.23m", 0xc00002, 0x100000, CRC(760f2927) SHA1(491e28e14ee06821fc9e709efa7b91313bc0c2db) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.25m", 0xc00004, 0x100000, CRC(1ee90208) SHA1(83df1d9953560edddc2951ea426d29fb014e6a8a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.27m", 0xc00006, 0x100000, CRC(f814400f) SHA1(ad6921af36d0bd5dfb89b1fb53c3ca3fd92d7204) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sfx.01", 0x00000, 0x08000, CRC(b47b8835) SHA1(c8b2d50fe3a329bd0592ea160d505155d873dab1) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "sfx.02", 0x28000, 0x20000, CRC(0022633f) SHA1(cab3afc79da53e3887eb1ccd1f4d19790728e6cd) )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "sfx.11m", 0x000000, 0x200000, CRC(9bdbd476) SHA1(a8520f77f30b97aae36408e0c4ca1ebbde1808a5) )
+ ROM_LOAD16_WORD_SWAP( "sfx.12m", 0x200000, 0x200000, CRC(a05e3aab) SHA1(d4eb9cae66c74e956569fea8b815156fbd420f83) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "ssf2t.key", 0x000000, 0x000014, CRC(524d608e) SHA1(fcd2b9a1a640a0dee4a674dc9cfb3975466f7757) )
+ROM_END
+
+ROM_START( ssf2tpls )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "ssf2tpls.03", 0x000000, 0x80000, CRC(abd7a3e0) SHA1(088166ab28e7a3abf90720c1c6108ff8946b6f7b) )
+ ROM_LOAD16_WORD_SWAP( "ssf2tpls.04", 0x080000, 0x80000, CRC(94a4434b) SHA1(1729bed0121995ddffc21b3d3841f6eaddab8064) )
+ ROM_LOAD16_WORD_SWAP( "sfxe.05", 0x100000, 0x80000, CRC(65222964) SHA1(025bb708dc5b6365cc7fe60fc3f242511ad8f384) )
+ ROM_LOAD16_WORD_SWAP( "sfxe.06a", 0x180000, 0x80000, CRC(8fe9f531) SHA1(b5d9ed498f730fdb968992bdec33605db1a007f4) )
+ ROM_LOAD16_WORD_SWAP( "sfxe.07", 0x200000, 0x80000, CRC(8a7d0cb6) SHA1(27ea0cea73a93c27257bf2a170d1deaf938cc311) )
+ ROM_LOAD16_WORD_SWAP( "sfxe.08", 0x280000, 0x80000, CRC(74c24062) SHA1(f3eca09e0544c6aa46b0c4bead2246ab1e9a97d9) )
+ ROM_LOAD16_WORD_SWAP( "sfx.09", 0x300000, 0x80000, CRC(642fae3f) SHA1(746df99b826b9837bba267104132161153c1daff) )
+
+ ROM_REGION( 0x1000000, "gfx", 0 )
+ ROMX_LOAD( "sfx.13m", 0x000000, 0x200000, CRC(cf94d275) SHA1(bf2a6d98a656d1cb5734da7836686242d3211137) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.15m", 0x000002, 0x200000, CRC(5eb703af) SHA1(4b302dbb66e8a5c2ad92798699391e981bada427) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.17m", 0x000004, 0x200000, CRC(ffa60e0f) SHA1(b21b1c749a8241440879bf8e7cb33968ccef97e5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.19m", 0x000006, 0x200000, CRC(34e825c5) SHA1(4d320fc96d1ef0b9928a8ce801734245a4c097a5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.14m", 0x800000, 0x100000, CRC(b7cc32e7) SHA1(0f4d26af338dab5dce5b7b34d32ad0c573434ace) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.16m", 0x800002, 0x100000, CRC(8376ad18) SHA1(f4456833fb396e6501f4174c0fe5fd63ea40a188) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.18m", 0x800004, 0x100000, CRC(f5b1b336) SHA1(4b060501e56b9d61294748da5387cdae5280ec4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.20m", 0x800006, 0x100000, CRC(459d5c6b) SHA1(32b11ba7a12004aff810d719bff7508204c7b7c0) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.21m", 0xc00000, 0x100000, CRC(e32854af) SHA1(1a5e11e9caa2b96108d89ae660ef1f6bcb469a74) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.23m", 0xc00002, 0x100000, CRC(760f2927) SHA1(491e28e14ee06821fc9e709efa7b91313bc0c2db) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.25m", 0xc00004, 0x100000, CRC(1ee90208) SHA1(83df1d9953560edddc2951ea426d29fb014e6a8a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.27m", 0xc00006, 0x100000, CRC(f814400f) SHA1(ad6921af36d0bd5dfb89b1fb53c3ca3fd92d7204) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sfx.01", 0x00000, 0x08000, CRC(b47b8835) SHA1(c8b2d50fe3a329bd0592ea160d505155d873dab1) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "sfx.02", 0x28000, 0x20000, CRC(0022633f) SHA1(cab3afc79da53e3887eb1ccd1f4d19790728e6cd) )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "sfx.11m", 0x000000, 0x200000, CRC(9bdbd476) SHA1(a8520f77f30b97aae36408e0c4ca1ebbde1808a5) )
+ ROM_LOAD16_WORD_SWAP( "sfx.12m", 0x200000, 0x200000, CRC(a05e3aab) SHA1(d4eb9cae66c74e956569fea8b815156fbd420f83) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "ssf2t.key", 0x000000, 0x000014, CRC(524d608e) SHA1(fcd2b9a1a640a0dee4a674dc9cfb3975466f7757) )
+ROM_END
+
+ROM_START( ssf2xjhy )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "ssf2xjhy.03", 0x000000, 0x80000, CRC(62b59bf0) SHA1(b8ef9a39dd594f243dab3b440c871730356403c8) )
+ ROM_LOAD16_WORD_SWAP( "sfxj.04a", 0x080000, 0x80000, CRC(af7767b4) SHA1(61e7364408bf07c01634913c112b6245acce48ab) )
+ ROM_LOAD16_WORD_SWAP( "sfxj.05", 0x100000, 0x80000, CRC(f4ff18f5) SHA1(aa713c9e1a2eba35bf1c9b40bb262ff7e46b9ce4) )
+ ROM_LOAD16_WORD_SWAP( "sfxj.06a", 0x180000, 0x80000, CRC(260d0370) SHA1(5339cf87000caef74d491815391be59cfd701c8b) )
+ ROM_LOAD16_WORD_SWAP( "sfxj.07", 0x200000, 0x80000, CRC(1324d02a) SHA1(c23a6ea09819bd33b6e2f58aa28c317ce53a46a0) )
+ ROM_LOAD16_WORD_SWAP( "sfxj.08", 0x280000, 0x80000, CRC(2de76f10) SHA1(8cbe96dfeaa41306caa2819b82272ce3b0b9f926) )
+ ROM_LOAD16_WORD_SWAP( "sfx.09", 0x300000, 0x80000, CRC(642fae3f) SHA1(746df99b826b9837bba267104132161153c1daff) )
+
+ ROM_REGION( 0x1000000, "gfx", 0 )
+ ROMX_LOAD( "sfx.13m", 0x000000, 0x200000, CRC(cf94d275) SHA1(bf2a6d98a656d1cb5734da7836686242d3211137) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.15m", 0x000002, 0x200000, CRC(5eb703af) SHA1(4b302dbb66e8a5c2ad92798699391e981bada427) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.17m", 0x000004, 0x200000, CRC(ffa60e0f) SHA1(b21b1c749a8241440879bf8e7cb33968ccef97e5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.19m", 0x000006, 0x200000, CRC(34e825c5) SHA1(4d320fc96d1ef0b9928a8ce801734245a4c097a5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.14m", 0x800000, 0x100000, CRC(b7cc32e7) SHA1(0f4d26af338dab5dce5b7b34d32ad0c573434ace) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.16m", 0x800002, 0x100000, CRC(8376ad18) SHA1(f4456833fb396e6501f4174c0fe5fd63ea40a188) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.18m", 0x800004, 0x100000, CRC(f5b1b336) SHA1(4b060501e56b9d61294748da5387cdae5280ec4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.20m", 0x800006, 0x100000, CRC(459d5c6b) SHA1(32b11ba7a12004aff810d719bff7508204c7b7c0) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.21m", 0xc00000, 0x100000, CRC(e32854af) SHA1(1a5e11e9caa2b96108d89ae660ef1f6bcb469a74) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.23m", 0xc00002, 0x100000, CRC(760f2927) SHA1(491e28e14ee06821fc9e709efa7b91313bc0c2db) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.25m", 0xc00004, 0x100000, CRC(1ee90208) SHA1(83df1d9953560edddc2951ea426d29fb014e6a8a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.27m", 0xc00006, 0x100000, CRC(f814400f) SHA1(ad6921af36d0bd5dfb89b1fb53c3ca3fd92d7204) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sfx.01", 0x00000, 0x08000, CRC(b47b8835) SHA1(c8b2d50fe3a329bd0592ea160d505155d873dab1) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "sfx.02", 0x28000, 0x20000, CRC(0022633f) SHA1(cab3afc79da53e3887eb1ccd1f4d19790728e6cd) )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "sfx.11m", 0x000000, 0x200000, CRC(9bdbd476) SHA1(a8520f77f30b97aae36408e0c4ca1ebbde1808a5) )
+ ROM_LOAD16_WORD_SWAP( "sfx.12m", 0x200000, 0x200000, CRC(a05e3aab) SHA1(d4eb9cae66c74e956569fea8b815156fbd420f83) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "ssf2xj.key", 0x000000, 0x000014, CRC(160d1424) SHA1(187baff83b54acfdcedd9b9222a4cc768040c622) )
+ROM_END
+
+ROM_START( ssf2xjjs )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "ssf2xjjs.03", 0x000000, 0x80000, CRC(183e95df) SHA1(009bfc636f67481ae0147a96e9a9b8eaa6137e52) )
+ ROM_LOAD16_WORD_SWAP( "ssf2xjjs.04", 0x080000, 0x80000, CRC(6ce1a901) SHA1(dd8d82b744bb40d1c07ad8feabfc02c62cd868aa) )
+ ROM_LOAD16_WORD_SWAP( "sfxj.05", 0x100000, 0x80000, CRC(f4ff18f5) SHA1(aa713c9e1a2eba35bf1c9b40bb262ff7e46b9ce4) )
+ ROM_LOAD16_WORD_SWAP( "sfxj.06a", 0x180000, 0x80000, CRC(260d0370) SHA1(5339cf87000caef74d491815391be59cfd701c8b) )
+ ROM_LOAD16_WORD_SWAP( "sfxj.07", 0x200000, 0x80000, CRC(1324d02a) SHA1(c23a6ea09819bd33b6e2f58aa28c317ce53a46a0) )
+ ROM_LOAD16_WORD_SWAP( "sfxj.08", 0x280000, 0x80000, CRC(2de76f10) SHA1(8cbe96dfeaa41306caa2819b82272ce3b0b9f926) )
+ ROM_LOAD16_WORD_SWAP( "sfx.09", 0x300000, 0x80000, CRC(642fae3f) SHA1(746df99b826b9837bba267104132161153c1daff) )
+
+ ROM_REGION( 0x1000000, "gfx", 0 )
+ ROMX_LOAD( "sfx.13m", 0x000000, 0x200000, CRC(cf94d275) SHA1(bf2a6d98a656d1cb5734da7836686242d3211137) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.15m", 0x000002, 0x200000, CRC(5eb703af) SHA1(4b302dbb66e8a5c2ad92798699391e981bada427) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.17m", 0x000004, 0x200000, CRC(ffa60e0f) SHA1(b21b1c749a8241440879bf8e7cb33968ccef97e5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.19m", 0x000006, 0x200000, CRC(34e825c5) SHA1(4d320fc96d1ef0b9928a8ce801734245a4c097a5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.14m", 0x800000, 0x100000, CRC(b7cc32e7) SHA1(0f4d26af338dab5dce5b7b34d32ad0c573434ace) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.16m", 0x800002, 0x100000, CRC(8376ad18) SHA1(f4456833fb396e6501f4174c0fe5fd63ea40a188) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.18m", 0x800004, 0x100000, CRC(f5b1b336) SHA1(4b060501e56b9d61294748da5387cdae5280ec4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.20m", 0x800006, 0x100000, CRC(459d5c6b) SHA1(32b11ba7a12004aff810d719bff7508204c7b7c0) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.21m", 0xc00000, 0x100000, CRC(e32854af) SHA1(1a5e11e9caa2b96108d89ae660ef1f6bcb469a74) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.23m", 0xc00002, 0x100000, CRC(760f2927) SHA1(491e28e14ee06821fc9e709efa7b91313bc0c2db) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.25m", 0xc00004, 0x100000, CRC(1ee90208) SHA1(83df1d9953560edddc2951ea426d29fb014e6a8a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.27m", 0xc00006, 0x100000, CRC(f814400f) SHA1(ad6921af36d0bd5dfb89b1fb53c3ca3fd92d7204) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sfx.01", 0x00000, 0x08000, CRC(b47b8835) SHA1(c8b2d50fe3a329bd0592ea160d505155d873dab1) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "sfx.02", 0x28000, 0x20000, CRC(0022633f) SHA1(cab3afc79da53e3887eb1ccd1f4d19790728e6cd) )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "sfx.11m", 0x000000, 0x200000, CRC(9bdbd476) SHA1(a8520f77f30b97aae36408e0c4ca1ebbde1808a5) )
+ ROM_LOAD16_WORD_SWAP( "sfx.12m", 0x200000, 0x200000, CRC(a05e3aab) SHA1(d4eb9cae66c74e956569fea8b815156fbd420f83) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "ssf2xj.key", 0x000000, 0x000014, CRC(160d1424) SHA1(187baff83b54acfdcedd9b9222a4cc768040c622) )
+ROM_END
+
+ROM_START( ssf2xjnc )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "ssf2xjnc.03", 0x000000, 0x80000, CRC(c0b5e5b8) SHA1(8cedb674aac5918dbb38d2efa4036ea602b92f8a) )
+ ROM_LOAD16_WORD_SWAP( "ssf2xjnc.04", 0x080000, 0x80000, CRC(4e17998f) SHA1(24b10b541191dfd522f024259d530451785abc2d) )
+ ROM_LOAD16_WORD_SWAP( "sfxj.05", 0x100000, 0x80000, CRC(f4ff18f5) SHA1(aa713c9e1a2eba35bf1c9b40bb262ff7e46b9ce4) )
+ ROM_LOAD16_WORD_SWAP( "sfxj.06a", 0x180000, 0x80000, CRC(260d0370) SHA1(5339cf87000caef74d491815391be59cfd701c8b) )
+ ROM_LOAD16_WORD_SWAP( "sfxj.07", 0x200000, 0x80000, CRC(1324d02a) SHA1(c23a6ea09819bd33b6e2f58aa28c317ce53a46a0) )
+ ROM_LOAD16_WORD_SWAP( "ssf2xjnc.08", 0x280000, 0x80000, CRC(6745612c) SHA1(d21b010d25d19b1c31b7f02d85978cd4a4444d60) )
+ ROM_LOAD16_WORD_SWAP( "sfx.09", 0x300000, 0x80000, CRC(642fae3f) SHA1(746df99b826b9837bba267104132161153c1daff) )
+
+ ROM_REGION( 0x1000000, "gfx", 0 )
+ ROMX_LOAD( "sfx.13m", 0x000000, 0x200000, CRC(cf94d275) SHA1(bf2a6d98a656d1cb5734da7836686242d3211137) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.15m", 0x000002, 0x200000, CRC(5eb703af) SHA1(4b302dbb66e8a5c2ad92798699391e981bada427) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.17m", 0x000004, 0x200000, CRC(ffa60e0f) SHA1(b21b1c749a8241440879bf8e7cb33968ccef97e5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.19m", 0x000006, 0x200000, CRC(34e825c5) SHA1(4d320fc96d1ef0b9928a8ce801734245a4c097a5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.14m", 0x800000, 0x100000, CRC(b7cc32e7) SHA1(0f4d26af338dab5dce5b7b34d32ad0c573434ace) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.16m", 0x800002, 0x100000, CRC(8376ad18) SHA1(f4456833fb396e6501f4174c0fe5fd63ea40a188) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.18m", 0x800004, 0x100000, CRC(f5b1b336) SHA1(4b060501e56b9d61294748da5387cdae5280ec4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.20m", 0x800006, 0x100000, CRC(459d5c6b) SHA1(32b11ba7a12004aff810d719bff7508204c7b7c0) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.21m", 0xc00000, 0x100000, CRC(e32854af) SHA1(1a5e11e9caa2b96108d89ae660ef1f6bcb469a74) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.23m", 0xc00002, 0x100000, CRC(760f2927) SHA1(491e28e14ee06821fc9e709efa7b91313bc0c2db) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.25m", 0xc00004, 0x100000, CRC(1ee90208) SHA1(83df1d9953560edddc2951ea426d29fb014e6a8a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.27m", 0xc00006, 0x100000, CRC(f814400f) SHA1(ad6921af36d0bd5dfb89b1fb53c3ca3fd92d7204) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sfx.01", 0x00000, 0x08000, CRC(b47b8835) SHA1(c8b2d50fe3a329bd0592ea160d505155d873dab1) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "sfx.02", 0x28000, 0x20000, CRC(0022633f) SHA1(cab3afc79da53e3887eb1ccd1f4d19790728e6cd) )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "sfx.11m", 0x000000, 0x200000, CRC(9bdbd476) SHA1(a8520f77f30b97aae36408e0c4ca1ebbde1808a5) )
+ ROM_LOAD16_WORD_SWAP( "sfx.12m", 0x200000, 0x200000, CRC(a05e3aab) SHA1(d4eb9cae66c74e956569fea8b815156fbd420f83) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "ssf2xj.key", 0x000000, 0x000014, CRC(160d1424) SHA1(187baff83b54acfdcedd9b9222a4cc768040c622) )
+ROM_END
+
+ROM_START( ssf2zhp )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "ssf2zhp.03", 0x000000, 0x80000, CRC(e7dcfc8d) SHA1(7a6e703a5cfd9fbdceab84e5f5e0d443e6c95dcc) )
+ ROM_LOAD16_WORD_SWAP( "ssfe.04", 0x080000, 0x80000, CRC(b082aa67) SHA1(ca26b4bb1947cb30eaf6b61f606b859d18da4c4c) )
+ ROM_LOAD16_WORD_SWAP( "ssfe.05", 0x100000, 0x80000, CRC(02b9c137) SHA1(ba624441e1b4bfb67c71f6a116fe43539eaa4a15) )
+ ROM_LOAD16_WORD_SWAP( "ssfe.06", 0x180000, 0x80000, CRC(70d470c5) SHA1(ba03c8f4c76f72f4483e91547e03d1a0cf6db485) )
+ ROM_LOAD16_WORD_SWAP( "ssfe.07", 0x200000, 0x80000, CRC(2409001d) SHA1(f532ebb2efbb8f8ba311d10ff897490352c87f97) )
+
+ ROM_REGION( 0xc00000, "gfx", 0 )
+ ROMX_LOAD( "ssf.13m", 0x000000, 0x200000, CRC(cf94d275) SHA1(bf2a6d98a656d1cb5734da7836686242d3211137) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ssf.15m", 0x000002, 0x200000, CRC(5eb703af) SHA1(4b302dbb66e8a5c2ad92798699391e981bada427) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ssf.17m", 0x000004, 0x200000, CRC(ffa60e0f) SHA1(b21b1c749a8241440879bf8e7cb33968ccef97e5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ssf.19m", 0x000006, 0x200000, CRC(34e825c5) SHA1(4d320fc96d1ef0b9928a8ce801734245a4c097a5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ssf.14m", 0x800000, 0x100000, CRC(b7cc32e7) SHA1(0f4d26af338dab5dce5b7b34d32ad0c573434ace) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ssf.16m", 0x800002, 0x100000, CRC(8376ad18) SHA1(f4456833fb396e6501f4174c0fe5fd63ea40a188) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ssf.18m", 0x800004, 0x100000, CRC(f5b1b336) SHA1(4b060501e56b9d61294748da5387cdae5280ec4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ssf.20m", 0x800006, 0x100000, CRC(459d5c6b) SHA1(32b11ba7a12004aff810d719bff7508204c7b7c0) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "ssf.01", 0x00000, 0x08000, CRC(eb247e8c) SHA1(24296c18d9b1136d69712bf1c9d9d15463041e83) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "ssf.q01", 0x000000, 0x080000, CRC(a6f9da5c) SHA1(6d19f83a01bd25b838d5c2871f7964529d926c98) )
+ ROM_LOAD( "ssf.q02", 0x080000, 0x080000, CRC(8c66ae26) SHA1(32a82aee6ed4480e5a990f9af161734c7c0a1403) )
+ ROM_LOAD( "ssf.q03", 0x100000, 0x080000, CRC(695cc2ca) SHA1(c2675f0233608b76de528d2a6ef19846d1348060) )
+ ROM_LOAD( "ssf.q04", 0x180000, 0x080000, CRC(9d9ebe32) SHA1(9b26329370041374f1a90b479a172d2bc2801c4d) )
+ ROM_LOAD( "ssf.q05", 0x200000, 0x080000, CRC(4770e7b7) SHA1(0e764f0befb9227b0b36508d8ca8ec9be31bcb05) )
+ ROM_LOAD( "ssf.q06", 0x280000, 0x080000, CRC(4e79c951) SHA1(1144781d7dc57ef8a6458d982f5c91548ff59e27) )
+ ROM_LOAD( "ssf.q07", 0x300000, 0x080000, CRC(cdd14313) SHA1(ebe767a9d4b51dba4282fa0a36a546a88620dd59) )
+ ROM_LOAD( "ssf.q08", 0x380000, 0x080000, CRC(6f5a088c) SHA1(6c0b4690479647a99d76335f174be8455b4ff118) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "ssf2.key", 0x000000, 0x000014, CRC(e469ccbb) SHA1(43d49107e96a4a14f1f25931ad3ae6065958150e) )
+ROM_END
+
+
+ROM_START( suicide )
+ ROM_REGION(CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "suicide.03", 0x000000, 0x80000, CRC(4d5eea90) SHA1(c6f6361650d64401354111bf111bd924126b7035) )
+
+ ROM_REGION( 0xC00000, "gfx", 0 )
+ ROM_FILL( 0x000000, 0x800000, 0 )
+ ROMX_LOAD( "pzf.14m", 0x800000, 0x100000, CRC(2d4881cb) SHA1(fd3baa183c25bed153b19c251980e2fb761600e2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "pzf.16m", 0x800002, 0x100000, CRC(4b0fd1be) SHA1(377aafdcdb7a866b1c8487670e3598d8197976e4) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "pzf.18m", 0x800004, 0x100000, CRC(e43aac33) SHA1(d041e0688c3807d3363861a7f216de43b34d846c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "pzf.20m", 0x800006, 0x100000, CRC(7f536ff1) SHA1(905b9d62ef7bef47297c7f4a4dd697aed6df38a5) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION(QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "pzf.01", 0x00000, 0x08000, CRC(600fb2a3) SHA1(1fab1c2a23bf6ad8309d29ddbbc29435a8aeea13) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "pzf.02", 0x28000, 0x20000, CRC(496076e0) SHA1(1ee4e135140afd0e8e03231e570cd77d140f6367) )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "pzf.11m", 0x000000, 0x200000, CRC(78442743) SHA1(b61190bb586871de6d54af580e3e1d9cc0de0acb) )
+ ROM_LOAD16_WORD_SWAP( "pzf.12m", 0x200000, 0x200000, CRC(399d2c7b) SHA1(e849dea97b8d16540415c0d9bbc4f9f4eb755ec4) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "phoenix.key", 0x000000, 0x000014, CRC(2cf772b0) SHA1(eff33c65a4f3862c231f9e4d6fefa7b34398dbf2) )
+ROM_END
+
+ROM_START( suicide2 )
+ ROM_REGION(CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "suicide2.03", 0x000000, 0x80000, CRC(d61ba7e3) SHA1(bde345a1d4643adc854d4c7e86c04f72fee1a07b) )
+
+ ROM_REGION( 0xC00000, "gfx", 0 )
+ ROM_FILL( 0x000000, 0x800000, 0 )
+ ROMX_LOAD( "pzf.14m", 0x800000, 0x100000, CRC(2d4881cb) SHA1(fd3baa183c25bed153b19c251980e2fb761600e2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "pzf.16m", 0x800002, 0x100000, CRC(4b0fd1be) SHA1(377aafdcdb7a866b1c8487670e3598d8197976e4) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "pzf.18m", 0x800004, 0x100000, CRC(e43aac33) SHA1(d041e0688c3807d3363861a7f216de43b34d846c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "pzf.20m", 0x800006, 0x100000, CRC(7f536ff1) SHA1(905b9d62ef7bef47297c7f4a4dd697aed6df38a5) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION(QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "pzf.01", 0x00000, 0x08000, CRC(600fb2a3) SHA1(1fab1c2a23bf6ad8309d29ddbbc29435a8aeea13) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "pzf.02", 0x28000, 0x20000, CRC(496076e0) SHA1(1ee4e135140afd0e8e03231e570cd77d140f6367) )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "pzf.11m", 0x000000, 0x200000, CRC(78442743) SHA1(b61190bb586871de6d54af580e3e1d9cc0de0acb) )
+ ROM_LOAD16_WORD_SWAP( "pzf.12m", 0x200000, 0x200000, CRC(399d2c7b) SHA1(e849dea97b8d16540415c0d9bbc4f9f4eb755ec4) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "phoenix.key", 0x000000, 0x000014, CRC(2cf772b0) SHA1(eff33c65a4f3862c231f9e4d6fefa7b34398dbf2) )
+ROM_END
+
+
+ROM_START( vampjb )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "vampjb.03a", 0x000000, 0x80000, CRC(55c1be82) SHA1(948e1e322945adc775da8b22165697b5c7999b1b) )
+ ROM_LOAD16_WORD_SWAP( "vampjb.04b", 0x080000, 0x80000, CRC(9c12017e) SHA1(0800802748ce61b01a18c06b61fcb8fd7bb34f62) )
+ ROM_LOAD16_WORD_SWAP( "vamj.05a", 0x100000, 0x80000, CRC(6c497e92) SHA1(7c1ccdfd77fb50afe024c8402376daaeab641a24) )
+ ROM_LOAD16_WORD_SWAP( "vamj.06a", 0x180000, 0x80000, CRC(f1bbecb6) SHA1(6adba89393e05f16f70b57085cabd6b4c20f53e8) )
+ ROM_LOAD16_WORD_SWAP( "vamj.07a", 0x200000, 0x80000, CRC(1067ad84) SHA1(5e4cc75cfdfd512b6230c656e7304262b5143aee) )
+ ROM_LOAD16_WORD_SWAP( "vamj.08a", 0x280000, 0x80000, CRC(4b89f41f) SHA1(bd78f33a6d448655eecf7448921d282b302fa4cb) )
+ ROM_LOAD16_WORD_SWAP( "vamj.09a", 0x300000, 0x80000, CRC(fc0a4aac) SHA1(a2c79eb4dc838c238e182a4da3567ac8db3488d8) )
+ ROM_LOAD16_WORD_SWAP( "vamj.10a", 0x380000, 0x80000, CRC(9270c26b) SHA1(c2a7e199a74c9f27704cf935483ebddc6da256a1) )
+
+ ROM_REGION( 0x1400000, "gfx", 0 )
+ ROMX_LOAD( "vam.13m", 0x0000000, 0x400000, CRC(c51baf99) SHA1(2fb6642908e542e404391eb17392f8270e87bf48) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "vam.15m", 0x0000002, 0x400000, CRC(3ce83c77) SHA1(93369b23c6d7d834297434691bb047ee3dd9539c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "vam.17m", 0x0000004, 0x400000, CRC(4f2408e0) SHA1(cd49c6b3c7e6470c6058f98ccc5210b052bb13e2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "vam.19m", 0x0000006, 0x400000, CRC(9ff60250) SHA1(d69ba4dc6bd37d003245f0cf3211d6e2623005b8) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "vam.14m", 0x1000000, 0x100000, CRC(bd87243c) SHA1(87b33aeb72514e1228ffc27ec6dd534f14882760) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "vam.16m", 0x1000002, 0x100000, CRC(afec855f) SHA1(cd117833b8d475489b90ff44b57e2c5cb1af3af5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "vam.18m", 0x1000004, 0x100000, CRC(3a033625) SHA1(294238f30cba5cf4f8f1de951d54c2077bd95de9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "vam.20m", 0x1000006, 0x100000, CRC(2bff6a89) SHA1(8f4e131e5ce0af48fb89f98026d9f0356c7c301f) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "vam.01", 0x00000, 0x08000, CRC(64b685d5) SHA1(6c180e7420db754eca5cad17a40f5a64f5c3bd15) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "vam.02", 0x28000, 0x20000, CRC(cf7c97c7) SHA1(109a4b56ecd59be9c3f5869de99d40619bdaef21) )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "vam.11m", 0x000000, 0x200000, CRC(4a39deb2) SHA1(7e63e615869958db66a4e52a0272afee5a10e446) )
+ ROM_LOAD16_WORD_SWAP( "vam.12m", 0x200000, 0x200000, CRC(1a3e5c03) SHA1(c5a556e125d6c3d68da745b4d56cd7a851f2a23d) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "vampj.key", 0x000000, 0x000014, CRC(8418cc6f) SHA1(e7128ac94fc7c37a64e4640db08f1769215769e5) )
+ROM_END
+
+
+ROM_START( vsav2emb )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "vsav2emb.03", 0x000000, 0x80000, CRC(31676894) SHA1(0cb25d691213accb43e81f284d29812de893b296) )
+ ROM_LOAD16_WORD_SWAP( "vs2j.04", 0x080000, 0x80000, CRC(107c091b) SHA1(bf5c2e4339e1a66b3c819900cc9b723a537adf6b) )
+ ROM_LOAD16_WORD_SWAP( "vs2j.05", 0x100000, 0x80000, CRC(61979638) SHA1(4d5625a9a06926c1a42c8f6e3a4c943f17750ec2) )
+ ROM_LOAD16_WORD_SWAP( "vs2j.06", 0x180000, 0x80000, CRC(f37c5bc2) SHA1(d8c1040a6ee6b9fc677a6a32b99bf02b6a707812) )
+ ROM_LOAD16_WORD_SWAP( "vs2j.07", 0x200000, 0x80000, CRC(8f885809) SHA1(69dac07e1f483b6478f792d20a137d6a081fbea3) )
+ ROM_LOAD16_WORD_SWAP( "vs2j.08", 0x280000, 0x80000, CRC(2018c120) SHA1(de1184ab771c6f075cdefa744a28b09f78d91643) )
+ ROM_LOAD16_WORD_SWAP( "vs2j.09", 0x300000, 0x80000, CRC(fac3c217) SHA1(0e9dd54e401e6d7c4fe81107ffd27e42ca810fcb) )
+ ROM_LOAD16_WORD_SWAP( "vs2j.10", 0x380000, 0x80000, CRC(eb490213) SHA1(bf0416df66a33c7a4678ab4a047de334dfd3b31e) )
+
+ ROM_REGION( 0x2000000, "gfx", 0 )
+ ROMX_LOAD( "vs2.13m", 0x0000000, 0x400000, CRC(5c852f52) SHA1(528ce7fc9a0451e2e2d221dbf5e4a5796584e053) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "vs2.15m", 0x0000002, 0x400000, CRC(a20f58af) SHA1(e873ad3e0fc8a06a5029113faf991f5c1b765316) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "vs2.17m", 0x0000004, 0x400000, CRC(39db59ad) SHA1(da94f1529da82a6bf2129f51548412e1ab2b001a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "vs2.19m", 0x0000006, 0x400000, CRC(00c763a7) SHA1(0ff528e12e255ebf699101ac71f05b1f6bef7165) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "vs2.14m", 0x1000000, 0x400000, CRC(cd09bd63) SHA1(e582b20a948ae54f52590496051688dbfae2bc9c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "vs2.16m", 0x1000002, 0x400000, CRC(e0182c15) SHA1(a924d53ab39f4d85173bdb92a197dde2db0dc3f7) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "vs2.18m", 0x1000004, 0x400000, CRC(778dc4f6) SHA1(8d0cd1c387b4b6ac7f92bb2e5a25983856328cdc) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "vs2.20m", 0x1000006, 0x400000, CRC(605d9d1d) SHA1(99bc27557741527ca678d7b6307164bc04ebedc6) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "vs2.01", 0x00000, 0x08000, CRC(35190139) SHA1(07f8e53ea398461de5dcda9814dde7c09faf9f65) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "vs2.02", 0x28000, 0x20000, CRC(c32dba09) SHA1(1fe337ff334fab79847f9677ba0e168e93daa1c8) )
+
+ ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "vs2.11m", 0x000000, 0x400000, CRC(d67e47b7) SHA1(15a3f6779eccb10551ed94edf7e6e406a79b3de7) )
+ ROM_LOAD16_WORD_SWAP( "vs2.12m", 0x400000, 0x400000, CRC(6d020a14) SHA1(e98f862fac1e357c90949768bb2646263d9981a0) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "vsav2.key", 0x000000, 0x000014, CRC(289028ce) SHA1(35779f0284dc15591493c8ec75ecda801148f3e0) )
+ROM_END
+
+
+ROM_START( xmcotajb )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "xmcotajb.03", 0x000000, 0x80000, CRC(bd2f0b84) SHA1(2b5c6deb2bb7e10a142a490781231d2ccfceee1c) )
+ ROM_LOAD16_WORD_SWAP( "xmnj.04b", 0x080000, 0x80000, CRC(54b3fba3) SHA1(47eaff5d36a45e4196f87ed3d02e54d5407e7962) ) // used in xmcotaj2
+ ROM_LOAD16_WORD_SWAP( "xmn.05", 0x100000, 0x80000, CRC(c3ed62a2) SHA1(4e3317d7ca981e33318822103a16e59f4ce20deb) )
+ ROM_LOAD16_WORD_SWAP( "xmn.06", 0x180000, 0x80000, CRC(f03c52e1) SHA1(904b2312ee594f5ece0484cad0eed25cc758185e) )
+ ROM_LOAD16_WORD_SWAP( "xmn.07", 0x200000, 0x80000, CRC(325626b1) SHA1(3f3a0aabbe5ffad8136ac91e0de785103b16059b) )
+ ROM_LOAD16_WORD_SWAP( "xmn.08", 0x280000, 0x80000, CRC(7194ea10) SHA1(40a5892d816f24cbfd4c310792eeabf689c6fa7e) )
+ ROM_LOAD16_WORD_SWAP( "xmn.09", 0x300000, 0x80000, CRC(ae946df3) SHA1(733671f76d766bda7110df9d338791cc5202b050) )
+ ROM_LOAD16_WORD_SWAP( "xmn.10", 0x380000, 0x80000, CRC(32a6be1d) SHA1(8f5fcb33b528abed670b4fc3fa62431a6e033c56) )
+
+ ROM_REGION( 0x2000000, "gfx", 0 )
+ ROMX_LOAD( "xmn.13m", 0x0000000, 0x400000, CRC(bf4df073) SHA1(4d2740c3a827f0ec2cf75ad99c65e393c6a11c23) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "xmn.15m", 0x0000002, 0x400000, CRC(4d7e4cef) SHA1(50b8797b8099a8d76ad063ba1201a13dbb88ae3a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "xmn.17m", 0x0000004, 0x400000, CRC(513eea17) SHA1(a497477ad9ac13180911d8745ef6ee1955c0b877) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "xmn.19m", 0x0000006, 0x400000, CRC(d23897fc) SHA1(1e31627999736652252164d32662779a1ac6ca29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "xmn.14m", 0x1000000, 0x400000, CRC(778237b7) SHA1(89a759ec383518ec52f5059d10ec342f2247aa20) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "xmn.16m", 0x1000002, 0x400000, CRC(67b36948) SHA1(692fb6e4096b880aa22996d554b160f664bbd907) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "xmn.18m", 0x1000004, 0x400000, CRC(015a7c4c) SHA1(cccc95dafd076a1a9fa004710006149c42d058ba) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "xmn.20m", 0x1000006, 0x400000, CRC(9dde2758) SHA1(17ba259cad03c7b5d56c0a5eda9ab53521665729) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "xmn.01a", 0x00000, 0x08000, CRC(40f479ea) SHA1(f29e15f537675305264ae2138a0a537fb9e2008b) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "xmn.02a", 0x28000, 0x20000, CRC(39d9b5ad) SHA1(af502debfd36100d4fc971ed25fdf9d7121d6f18) )
+
+ 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) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "xmcotaj.key", 0x000000, 0x000014, CRC(d278b4ac) SHA1(06d94e8a203172792f405c73f9cbb37f4738429f) )
+ROM_END
+
+ROM_START( xmcotajphp )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "xmcotajphp.03", 0x000000, 0x80000, CRC(654c6b83) SHA1(b61d8891edb105ad72a76ee0c1018bc5edc64b6c) )
+ ROM_LOAD16_WORD_SWAP( "xmnj.04d", 0x080000, 0x80000, CRC(38eed613) SHA1(86ecb58bf03adda705a39a9779862fe2c85cadad) )
+ ROM_LOAD16_WORD_SWAP( "xmn.05", 0x100000, 0x80000, CRC(c3ed62a2) SHA1(4e3317d7ca981e33318822103a16e59f4ce20deb) )
+ ROM_LOAD16_WORD_SWAP( "xmn.06", 0x180000, 0x80000, CRC(f03c52e1) SHA1(904b2312ee594f5ece0484cad0eed25cc758185e) )
+ ROM_LOAD16_WORD_SWAP( "xmn.07", 0x200000, 0x80000, CRC(325626b1) SHA1(3f3a0aabbe5ffad8136ac91e0de785103b16059b) )
+ ROM_LOAD16_WORD_SWAP( "xmn.08", 0x280000, 0x80000, CRC(7194ea10) SHA1(40a5892d816f24cbfd4c310792eeabf689c6fa7e) )
+ ROM_LOAD16_WORD_SWAP( "xmn.09", 0x300000, 0x80000, CRC(ae946df3) SHA1(733671f76d766bda7110df9d338791cc5202b050) )
+ ROM_LOAD16_WORD_SWAP( "xmn.10", 0x380000, 0x80000, CRC(32a6be1d) SHA1(8f5fcb33b528abed670b4fc3fa62431a6e033c56) )
+
+ ROM_REGION( 0x2000000, "gfx", 0 )
+ ROMX_LOAD( "xmn.13m", 0x0000000, 0x400000, CRC(bf4df073) SHA1(4d2740c3a827f0ec2cf75ad99c65e393c6a11c23) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "xmn.15m", 0x0000002, 0x400000, CRC(4d7e4cef) SHA1(50b8797b8099a8d76ad063ba1201a13dbb88ae3a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "xmn.17m", 0x0000004, 0x400000, CRC(513eea17) SHA1(a497477ad9ac13180911d8745ef6ee1955c0b877) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "xmn.19m", 0x0000006, 0x400000, CRC(d23897fc) SHA1(1e31627999736652252164d32662779a1ac6ca29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "xmn.14m", 0x1000000, 0x400000, CRC(778237b7) SHA1(89a759ec383518ec52f5059d10ec342f2247aa20) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "xmn.16m", 0x1000002, 0x400000, CRC(67b36948) SHA1(692fb6e4096b880aa22996d554b160f664bbd907) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "xmn.18m", 0x1000004, 0x400000, CRC(015a7c4c) SHA1(cccc95dafd076a1a9fa004710006149c42d058ba) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "xmn.20m", 0x1000006, 0x400000, CRC(9dde2758) SHA1(17ba259cad03c7b5d56c0a5eda9ab53521665729) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "xmn.01a", 0x00000, 0x08000, CRC(40f479ea) SHA1(f29e15f537675305264ae2138a0a537fb9e2008b) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "xmn.02a", 0x28000, 0x20000, CRC(39d9b5ad) SHA1(af502debfd36100d4fc971ed25fdf9d7121d6f18) )
+
+ 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) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "xmcotaj.key", 0x000000, 0x000014, CRC(d278b4ac) SHA1(06d94e8a203172792f405c73f9cbb37f4738429f) )
+ROM_END
+
+
+ROM_START( xmvsfjphp )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "xmvsfjphp.03", 0x000000, 0x80000, CRC(1d46fdba) SHA1(fceec89ca0fa163b0edc8e055a6c7198f3520851) )
+ ROM_LOAD16_WORD_SWAP( "xvsj.04", 0x080000, 0x80000, CRC(70a59b35) SHA1(786d9b243373024735848f785503c6aa883b1c2f) )
+ ROM_LOAD16_WORD_SWAP( "xvs.05a", 0x100000, 0x80000, CRC(7db6025d) SHA1(2d74f48f83f45359bfaca28ab686625766af12ee) )
+ ROM_LOAD16_WORD_SWAP( "xvs.06a", 0x180000, 0x80000, CRC(e8e2c75c) SHA1(929408cb5d98e95cec75ea58e4701b0cbdbcd016) )
+ ROM_LOAD16_WORD_SWAP( "xvs.07", 0x200000, 0x80000, CRC(08f0abed) SHA1(ef16c376232dba63b0b9bc3aa0640f9001ccb68a) )
+ ROM_LOAD16_WORD_SWAP( "xvs.08", 0x280000, 0x80000, CRC(81929675) SHA1(19cf7afbc1daaefec40195e40ba74970f3906a1c) )
+ ROM_LOAD16_WORD_SWAP( "xvs.09", 0x300000, 0x80000, CRC(9641f36b) SHA1(dcba3482d1ba37ccfb30d402793ee063c6621aed) )
+
+ ROM_REGION( 0x2000000, "gfx", 0 )
+ ROMX_LOAD( "xvs.13m", 0x0000000, 0x400000, CRC(f6684efd) SHA1(c0a2f3a9e82ab8b084a500aec71ac633e947328c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "xvs.15m", 0x0000002, 0x400000, CRC(29109221) SHA1(898b8f678fd03c462ce0d8eb7fb3441ef601085b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "xvs.17m", 0x0000004, 0x400000, CRC(92db3474) SHA1(7b6f4c8ebfdac167b25f35029068b6253c141fe6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "xvs.19m", 0x0000006, 0x400000, CRC(3733473c) SHA1(6579da7145c95b3ad00844a5fc8c2e22c23365e2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "xvs.14m", 0x1000000, 0x400000, CRC(bcac2e41) SHA1(838ff24f7e8543a787a55a5d592c9517ce3b8b93) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "xvs.16m", 0x1000002, 0x400000, CRC(ea04a272) SHA1(cd7c79037b5b4a39bef5156433e984dc4dc2c081) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "xvs.18m", 0x1000004, 0x400000, CRC(b0def86a) SHA1(da3a6705ea7050fc5c2c10d33400ed67be9f455d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "xvs.20m", 0x1000006, 0x400000, CRC(4b40ff9f) SHA1(9a981d442132efff09a27408d74646ba357c7357) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "xvs.01", 0x00000, 0x08000, CRC(3999e93a) SHA1(fefcff8a9a5c83df7655a16187cf9ba3e7efbb25) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "xvs.02", 0x28000, 0x20000, CRC(101bdee9) SHA1(75920e88bf46fcd33a7957777a1d799818ffb0d6) )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "xvs.11m", 0x000000, 0x200000, CRC(9cadcdbc) SHA1(64d3bd53b04daec84c9af4aa3ff010867b3d306d) )
+ ROM_LOAD16_WORD_SWAP( "xvs.12m", 0x200000, 0x200000, CRC(7b11e460) SHA1(a581c84acaaf0ce056841c15a6f36889e88be68d) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "xmvsfj.key", 0x000000, 0x000014, CRC(87576cda) SHA1(65905400f4462c175baa93b43e015e8596def31b) )
+ROM_END
+
+ROM_START( xmvsfrm )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "xmvsfrm.03", 0x000000, 0x80000, CRC(be94fd2b) SHA1(f668d8fe1932434dfb9aec865a79ddac6c6496ef) )
+ ROM_LOAD16_WORD_SWAP( "xvse.04d", 0x080000, 0x80000, CRC(5eb9c02e) SHA1(25a392913213b98ce1bbd463bf5e5e10729bde0c) )
+ ROM_LOAD16_WORD_SWAP( "xvs.05a", 0x100000, 0x80000, CRC(7db6025d) SHA1(2d74f48f83f45359bfaca28ab686625766af12ee) )
+ ROM_LOAD16_WORD_SWAP( "xvs.06a", 0x180000, 0x80000, CRC(e8e2c75c) SHA1(929408cb5d98e95cec75ea58e4701b0cbdbcd016) )
+ ROM_LOAD16_WORD_SWAP( "xvs.07", 0x200000, 0x80000, CRC(08f0abed) SHA1(ef16c376232dba63b0b9bc3aa0640f9001ccb68a) )
+ ROM_LOAD16_WORD_SWAP( "xvs.08", 0x280000, 0x80000, CRC(81929675) SHA1(19cf7afbc1daaefec40195e40ba74970f3906a1c) )
+ ROM_LOAD16_WORD_SWAP( "xvs.09", 0x300000, 0x80000, CRC(9641f36b) SHA1(dcba3482d1ba37ccfb30d402793ee063c6621aed) )
+
+ ROM_REGION( 0x2000000, "gfx", 0 )
+ ROMX_LOAD( "xvs.13m", 0x0000000, 0x400000, CRC(f6684efd) SHA1(c0a2f3a9e82ab8b084a500aec71ac633e947328c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "xvs.15m", 0x0000002, 0x400000, CRC(29109221) SHA1(898b8f678fd03c462ce0d8eb7fb3441ef601085b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "xvs.17m", 0x0000004, 0x400000, CRC(92db3474) SHA1(7b6f4c8ebfdac167b25f35029068b6253c141fe6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "xvs.19m", 0x0000006, 0x400000, CRC(3733473c) SHA1(6579da7145c95b3ad00844a5fc8c2e22c23365e2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "xvs.14m", 0x1000000, 0x400000, CRC(bcac2e41) SHA1(838ff24f7e8543a787a55a5d592c9517ce3b8b93) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "xvs.16m", 0x1000002, 0x400000, CRC(ea04a272) SHA1(cd7c79037b5b4a39bef5156433e984dc4dc2c081) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "xvs.18m", 0x1000004, 0x400000, CRC(b0def86a) SHA1(da3a6705ea7050fc5c2c10d33400ed67be9f455d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "xvs.20m", 0x1000006, 0x400000, CRC(4b40ff9f) SHA1(9a981d442132efff09a27408d74646ba357c7357) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "xvs.01", 0x00000, 0x08000, CRC(3999e93a) SHA1(fefcff8a9a5c83df7655a16187cf9ba3e7efbb25) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "xvs.02", 0x28000, 0x20000, CRC(101bdee9) SHA1(75920e88bf46fcd33a7957777a1d799818ffb0d6) )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "xvs.11m", 0x000000, 0x200000, CRC(9cadcdbc) SHA1(64d3bd53b04daec84c9af4aa3ff010867b3d306d) )
+ ROM_LOAD16_WORD_SWAP( "xvs.12m", 0x200000, 0x200000, CRC(7b11e460) SHA1(a581c84acaaf0ce056841c15a6f36889e88be68d) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "xmvsf.key", 0x000000, 0x000014, CRC(d5c07311) SHA1(1b401ffc241436c4869486c174774b67e3bf3df8) )
+ROM_END
+
+ROM_START( xmvsfryh )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "xmvsfryh.03", 0x000000, 0x80000, CRC(ed7c235a) SHA1(c49bfeef0351165ee30c8433feb026acebd7a36a) )
+ ROM_LOAD16_WORD_SWAP( "xmvsfryh.04", 0x080000, 0x80000, CRC(3a527f69) SHA1(72312d4aeaac07c4b4f91a0301948faf2f17d74d) )
+ ROM_LOAD16_WORD_SWAP( "xvs.05a", 0x100000, 0x80000, CRC(7db6025d) SHA1(2d74f48f83f45359bfaca28ab686625766af12ee) )
+ ROM_LOAD16_WORD_SWAP( "xvs.06a", 0x180000, 0x80000, CRC(e8e2c75c) SHA1(929408cb5d98e95cec75ea58e4701b0cbdbcd016) )
+ ROM_LOAD16_WORD_SWAP( "xvs.07", 0x200000, 0x80000, CRC(08f0abed) SHA1(ef16c376232dba63b0b9bc3aa0640f9001ccb68a) )
+ ROM_LOAD16_WORD_SWAP( "xvs.08", 0x280000, 0x80000, CRC(81929675) SHA1(19cf7afbc1daaefec40195e40ba74970f3906a1c) )
+ ROM_LOAD16_WORD_SWAP( "xvs.09", 0x300000, 0x80000, CRC(9641f36b) SHA1(dcba3482d1ba37ccfb30d402793ee063c6621aed) )
+
+ ROM_REGION( 0x2000000, "gfx", 0 )
+ ROMX_LOAD( "xvs.13m", 0x0000000, 0x400000, CRC(f6684efd) SHA1(c0a2f3a9e82ab8b084a500aec71ac633e947328c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "xvs.15m", 0x0000002, 0x400000, CRC(29109221) SHA1(898b8f678fd03c462ce0d8eb7fb3441ef601085b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "xvs.17m", 0x0000004, 0x400000, CRC(92db3474) SHA1(7b6f4c8ebfdac167b25f35029068b6253c141fe6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "xvs.19m", 0x0000006, 0x400000, CRC(3733473c) SHA1(6579da7145c95b3ad00844a5fc8c2e22c23365e2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "xvs.14m", 0x1000000, 0x400000, CRC(bcac2e41) SHA1(838ff24f7e8543a787a55a5d592c9517ce3b8b93) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "xvs.16m", 0x1000002, 0x400000, CRC(ea04a272) SHA1(cd7c79037b5b4a39bef5156433e984dc4dc2c081) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "xvs.18m", 0x1000004, 0x400000, CRC(b0def86a) SHA1(da3a6705ea7050fc5c2c10d33400ed67be9f455d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "xvs.20m", 0x1000006, 0x400000, CRC(4b40ff9f) SHA1(9a981d442132efff09a27408d74646ba357c7357) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "xvs.01", 0x00000, 0x08000, CRC(3999e93a) SHA1(fefcff8a9a5c83df7655a16187cf9ba3e7efbb25) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "xvs.02", 0x28000, 0x20000, CRC(101bdee9) SHA1(75920e88bf46fcd33a7957777a1d799818ffb0d6) )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "xvs.11m", 0x000000, 0x200000, CRC(9cadcdbc) SHA1(64d3bd53b04daec84c9af4aa3ff010867b3d306d) )
+ ROM_LOAD16_WORD_SWAP( "xvs.12m", 0x200000, 0x200000, CRC(7b11e460) SHA1(a581c84acaaf0ce056841c15a6f36889e88be68d) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "xmvsf.key", 0x000000, 0x000014, CRC(d5c07311) SHA1(1b401ffc241436c4869486c174774b67e3bf3df8) )
+ROM_END
+
+
+
+
+GAME( 2000, 1944da, 1944, dead_cps2, cps2_2p3b, cps_state, cps2, ROT0, "Razoola", "1944: The Loop Master (USA 000620 Phoenix Edition) (bootleg alt)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, 1944fp, 1944, cps2, cps2_2p2b, cps_state, cps2, ROT0, "Qxs8", "1944: The Loop Master (USA 000620) Fire Power Ver", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, ddsomavs, ddsom, cps2, cps2_4p4b, cps_state, cps2, ROT0, "Pipi899", "Dungeons & Dragons: Shadow over Mystara (1vs4 hack by Pipi899 2009-06-29)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, ddsomchs, ddsom, cps2, cps2_4p4b, cps_state, cps2, ROT0, "hack", "Dungeons & Dragons: Shadow over Mystara (chinese)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, ddsomhp, ddsom, cps2, cps2_4p4b, cps_state, cps2, ROT0, "Pipi899", "Dungeons & Dragons: Shadow over Mystara (HP Revision hack by Pipi899, cheat by sssskkkk 2009-06-15)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, ddsomjfs, ddsom, cps2, cps2_4p4b, cps_state, cps2, ROT0, "e107", "Dungeons & Dragons: Shadow over Mystara (Final Strike hack by e107 2009-07-17)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, halfway, progear, dead_cps2, cps2_2p3b, cps_state, cps2, ROT0, "Halfway House", "Halfway to Hell - Progear Red Label (2016-01-17)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mpangjd, mpang, dead_cps2, cps2_2p3b, cps_state, cps2, ROT0, "Razoola", "Mighty! Pang (Japan 001011 Phoenix Edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, mshjphp, msh, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Pipi899", "Marvel Super Heroes (Power hack by Pipi899)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, mshyh, msh, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Yumeji", "Marvel Super Heroes (Boss hack by Yumeji)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, mvscjemb, mvsc, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Blackheart", "Marvel Vs. Capcom: Clash of Super Heroes (Easy Moves hack by Blackheart 2009-04-24)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, mvscjphp, mvsc, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Pipi899", "Marvel Vs. Capcom: Clash of Super Heroes (Power hack by Pipi899)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mvscrcp, mvsc, cps2, cps2_2p6b, cps_state, cps2, ROT0, "CPS-2 Evolved", "Marvel Vs. Capcom RCP", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, mvscuh, mvsc, cps2, cps2_2p6b, cps_state, cps2, ROT0, "EGCG", "Marvel Vs. Capcom: Clash of Super Heroes (ExChar hack (EGCG))", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, mshvsemb, mshvsf, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Blackheart", "Marvel Super Heroes Vs. Street Fighter (Easy Moves hack by Blackheart 2009-04-23)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, mshvsfjh, mshvsf, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Yumeji", "Marvel Super Heroes Vs. Street Fighter (Boss hack by Yumeji)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, mshvsfjphp, mshvsf, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Pipi899", "Marvel Super Heroes Vs. Street Fighter (Power hack by Pipi899)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, pfghtjrm, sgemf, cps2, cps2_2p3b, cps_state, cps2, ROT0, "Blackheart", "Pocket Fighter (Easy Moves hack by Blackheart 2009-04-20)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, sfa2h, sfa2, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Pipi899", "Street Fighter Alpha 2 (Euro 960229) Boss Hack", MACHINE_SUPPORTS_SAVE )
+GAME( 2005, sfa3br, sfa3, cps2, cps2_2p6bt,cps_state, cps2, ROT0, "Neogeo BR team", "Street Fighter Alpha 3 (Brasil 050513)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, sfa3dp, sfa3, cps2, cps2_2p6bt,cps_state, cps2, ROT0, "Pipi899", "Street Fighter Alpha 3 (Dragon Edition hack by Pipi899 2009-05-10)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, sfa3nc, sfa3, cps2, cps2_2p6bt,cps_state, cps2, ROT0, "hack", "Street Fighter Alpha 3 (unknown hack NC)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, sfa3nch, sfa3, cps2, cps2_2p6bt,cps_state, cps2, ROT0, "hack", "Street Fighter Alpha 3 (unknown hack NCH)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, sfa3sp2, sfa3, cps2, cps2_2p6bt,cps_state, cps2, ROT0, "Pipi899", "Street Fighter Alpha 3 (Boss Special Fix hack by Pipi899 2009-09-27)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, sfa3spp, sfa3, cps2, cps2_2p6bt,cps_state, cps2, ROT0, "Pipi899", "Street Fighter Alpha 3 (Boss Special hack by Pipi899 2009-07-03)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, sfa3uhd, sfa3, cps2, cps2_2p6bt,cps_state, cps2, ROT0, "Dodowang", "Street Fighter Alpha 3 (Revision hack by Dodowang (ECGC))", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, sfaud, sfa, dead_cps2, cps2_2p6b, cps_state, cps2, ROT0, "Razoola", "Street Fighter Alpha: Warriors' Dreams (USA 950727 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, sfz2abr, sfa2, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Neogeo BR team", "Street Fighter Zero 2 Alpha (Brasil 061225)", MACHINE_SUPPORTS_SAVE ) // portuguese-brazilian hack fix
+GAME( 2008, sfz2ajhp, sfz2al, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Pipi899", "Street Fighter Zero 2 Alpha (Enhanced Dan Version hack by Pipi899 2008-12-11)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, sfz2aldp, sfz2al, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Pipi899", "Street Fighter Zero 2 Alpha (Dragon Edition v1.0 hack by Pipi899 2009-03-17)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, sfz2aldp2, sfz2al, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Pipi899", "Street Fighter Zero 2 Alpha (Dragon Edition v2.0 hack by Pipi899 2009-04-24)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, sfz2jyh, sfa2, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Yumeji", "Street Fighter Zero 2 (Boss hack by Yumeji)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, sfz3jb, sfa3, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Yumeji", "Street Fighter Zero 3 (Boss hack by Yumeji)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, sfz3jemb, sfa3, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Blacheart", "Street Fighter Zero 3 (Easy Moves hack by Blackheart 2009-05-01)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, sfz3jhp, sfa3, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Pipi899", "Street Fighter Zero 3 (Hack by Pipi899)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, sfz3jsep, sfa3, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Pipi899", "Street Fighter Zero 3 (Shin Edition hack by Pipi899 2009-01-01)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, sfzjboss, sfa, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Yumeji", "Street Fighter Zero (Boss hack set 2 by Yumeji)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, sfzjyh, sfa, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Yumeji", "Street Fighter Zero (Boss hack set 1 by Yumeji)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, sgemfch, sgemf, cps2, cps2_2p3b, cps_state, cps2, ROT0, "hack", "Super Gem Fighter Mini Mix (Color remix)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, ssf2r1d, ssf2, dead_cps2, cps2_2p6b, cps_state, cps2, ROT0, "Razoola", "Super Street Fighter II: The New Challengers (ETC 930911 Phoenix Edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, ssf2td, ssf2t, dead_cps2, cps2_2p6b, cps_state, cps2, ROT0, "Razoola", "Super Street Fighter II Turbo (World 940223 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, ssf2tfp, ssf2t, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Cigarette Patch", "Super Street Fighter II Turbo (French Parody by Cigarette Patch)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, ssf2tfr, ssf2t, cps2, cps2_2p6b, cps_state, cps2, ROT0, "NEOARC", "Super Street Fighter II Turbo (French by NEOARC Team)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, ssf2tpls, ssf2t, cps2, cps2_2p6b, cps_state, cps2, ROT0, "KrysoFun", "Super Street Fighter II Turbo (Plus v0.9 beta KrysoFun hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, ssf2xjhy, ssf2t, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Yumeji", "Super Street Fighter II X: Grand Master Challenge (Gouki Edition hack by Yumeji)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, ssf2xjjs, ssf2t, cps2, cps2_2p6b, cps_state, cps2, ROT0, "FGCH", "Super Street Fighter II X: Grand Master Challenge (Original Color FGCH hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, ssf2xjnc, ssf2t, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Shiro", "Super Street Fighter II X: Grand Master Challenge (Nude hack by Shiro)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, ssf2zhp, ssf2, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Pipi899", "Super Street Fighter II (Easy Move Zangief Edition hack by Pipi899 2009-01-05)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, spf2tb, spf2t, cps2, cps2_2p2b, cps_state, cps2, ROT0, "hack", "Super Puzzle Fighter II Turbo Boss Hack (USA 960620)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, suicide, 0, dead_cps2, cps2_2p2b, cps_state, cps2, ROT0, "Razoola", "Suicide Test", MACHINE_SUPPORTS_SAVE )
+GAME( 2015, suicide2, suicide, dead_cps2, cps2_2p2b, cps_state, cps2, ROT0, "Razoola", "Suicide Test v2", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, vampjb, dstlk, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Yumeji", "Vampire: The Night Warriors (Boss hack by Yumeji)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, vsav2emb, vsav2, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Blackheart", "Vampire Savior 2: The Lord of Vampire (Easy Moves hack by Blackheart 2009-04-30", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, xmcotajb, xmcota, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Yumeji", "X-Men: Children of the Atom (Boss hack by Yumeji)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, xmcotajphp, xmcota, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Pipi899", "X-Men: Children of the Atom (Power hack by Pipi899)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, xmvsfjphp, xmvsf, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Pipi899", "X-Men Vs. Street Fighter (Power hack by Pipi899)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, xmvsfrm, xmvsf, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Blackheart", "X-Men Vs. Street Fighter (Easy Moves hack by Blackheart 2009-04-22)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, xmvsfryh, xmvsf, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Ydmis", "X-Men Vs. Street Fighter (ST Char hack by Ydmis)", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/cps3.cpp b/docs/release/src/hbmame/drivers/cps3.cpp
new file mode 100644
index 00000000000..64239321b67
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/cps3.cpp
@@ -0,0 +1,1305 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/cps3.cpp"
+
+class cps3_hbmame : public cps3_state
+{
+public:
+ cps3_hbmame(const machine_config &mconfig, device_type type, const char *tag)
+ : cps3_state(mconfig, type, tag)
+ { }
+
+ DECLARE_DRIVER_INIT(jojon);
+ DECLARE_DRIVER_INIT(jojoban);
+ DECLARE_DRIVER_INIT(redeartno);
+ DECLARE_DRIVER_INIT(sfiiin);
+ DECLARE_DRIVER_INIT(sfiii2n);
+ DECLARE_DRIVER_INIT(sfiii3n);
+ DECLARE_MACHINE_RESET(redeartn);
+ TIMER_CALLBACK_MEMBER(fastboot_timer_callback);
+
+private:
+ void hb_unscramble();
+ emu_timer* m_fastboot_timer;
+};
+
+TIMER_CALLBACK_MEMBER(cps3_hbmame::fastboot_timer_callback)
+{
+ uint32_t *rom = (uint32_t*)m_decrypted_gamerom;
+
+ m_maincpu->set_state_int(SH2_PC, rom[0]);
+ m_maincpu->set_state_int(SH2_R15, rom[1]);
+ m_maincpu->set_state_int(SH2_VBR, 0x6000000);
+}
+
+void cps3_hbmame::hb_unscramble()
+{
+ uint8_t *rom = memregion("old4")->base();
+ uint8_t *simm0 = memregion("simm1.0")->base();
+ uint8_t *simm1 = memregion("simm1.1")->base();
+ uint8_t *simm2 = memregion("simm1.2")->base();
+ uint8_t *simm3 = memregion("simm1.3")->base();
+ uint32_t i, j = 0;
+ for (i = 0; i < 0x200000; i++)
+ {
+ simm3[i] = rom[j++];
+ simm2[i] = rom[j++];
+ simm1[i] = rom[j++];
+ simm0[i] = rom[j++];
+ }
+
+ if (memregion("simm2.0"))
+ {
+ simm0 = memregion("simm2.0")->base();
+ simm1 = memregion("simm2.1")->base();
+ simm2 = memregion("simm2.2")->base();
+ simm3 = memregion("simm2.3")->base();
+ for (i = 0; i < 0x200000; i++)
+ {
+ simm3[i] = rom[j++];
+ simm2[i] = rom[j++];
+ simm1[i] = rom[j++];
+ simm0[i] = rom[j++];
+ }
+ }
+
+ j = 0;
+ rom = memregion("old5")->base();
+ simm0 = memregion("simm3.0")->base();
+ simm1 = memregion("simm3.1")->base();
+ for (i = 0; i < 0x200000; i++)
+ {
+ simm1[i] = rom[j++];
+ simm0[i] = rom[j++];
+ }
+ simm0 = memregion("simm3.2")->base();
+ simm1 = memregion("simm3.3")->base();
+ for (i = 0; i < 0x200000; i++)
+ {
+ simm1[i] = rom[j++];
+ simm0[i] = rom[j++];
+ }
+ simm0 = memregion("simm3.4")->base();
+ simm1 = memregion("simm3.5")->base();
+ for (i = 0; i < 0x200000; i++)
+ {
+ simm1[i] = rom[j++];
+ simm0[i] = rom[j++];
+ }
+ simm0 = memregion("simm3.6")->base();
+ simm1 = memregion("simm3.7")->base();
+ for (i = 0; i < 0x200000; i++)
+ {
+ simm1[i] = rom[j++];
+ simm0[i] = rom[j++];
+ }
+ simm0 = memregion("simm4.0")->base();
+ simm1 = memregion("simm4.1")->base();
+ for (i = 0; i < 0x200000; i++)
+ {
+ simm1[i] = rom[j++];
+ simm0[i] = rom[j++];
+ }
+ simm0 = memregion("simm4.2")->base();
+ simm1 = memregion("simm4.3")->base();
+ for (i = 0; i < 0x200000; i++)
+ {
+ simm1[i] = rom[j++];
+ simm0[i] = rom[j++];
+ }
+ simm0 = memregion("simm4.4")->base();
+ simm1 = memregion("simm4.5")->base();
+ for (i = 0; i < 0x200000; i++)
+ {
+ simm1[i] = rom[j++];
+ simm0[i] = rom[j++];
+ }
+ simm0 = memregion("simm4.6")->base();
+ simm1 = memregion("simm4.7")->base();
+ for (i = 0; i < 0x200000; i++)
+ {
+ simm1[i] = rom[j++];
+ simm0[i] = rom[j++];
+ }
+ simm0 = memregion("simm5.0")->base();
+ simm1 = memregion("simm5.1")->base();
+ for (i = 0; i < 0x200000; i++)
+ {
+ simm1[i] = rom[j++];
+ simm0[i] = rom[j++];
+ }
+
+ if (memregion("simm5.2"))
+ {
+ simm0 = memregion("simm5.2")->base();
+ simm1 = memregion("simm5.3")->base();
+ for (i = 0; i < 0x200000; i++)
+ {
+ simm1[i] = rom[j++];
+ simm0[i] = rom[j++];
+ }
+ }
+
+ if (memregion("simm5.4"))
+ {
+ simm0 = memregion("simm5.4")->base();
+ simm1 = memregion("simm5.5")->base();
+ for (i = 0; i < 0x200000; i++)
+ {
+ simm1[i] = rom[j++];
+ simm0[i] = rom[j++];
+ }
+ simm0 = memregion("simm5.6")->base();
+ simm1 = memregion("simm5.7")->base();
+ for (i = 0; i < 0x200000; i++)
+ {
+ simm1[i] = rom[j++];
+ simm0[i] = rom[j++];
+ }
+ }
+
+ if (memregion("simm6.0"))
+ {
+ simm0 = memregion("simm6.0")->base();
+ simm1 = memregion("simm6.1")->base();
+ for (i = 0; i < 0x200000; i++)
+ {
+ simm1[i] = rom[j++];
+ simm0[i] = rom[j++];
+ }
+ simm0 = memregion("simm6.2")->base();
+ simm1 = memregion("simm6.3")->base();
+ for (i = 0; i < 0x200000; i++)
+ {
+ simm1[i] = rom[j++];
+ simm0[i] = rom[j++];
+ }
+ simm0 = memregion("simm6.4")->base();
+ simm1 = memregion("simm6.5")->base();
+ for (i = 0; i < 0x200000; i++)
+ {
+ simm1[i] = rom[j++];
+ simm0[i] = rom[j++];
+ }
+ simm0 = memregion("simm6.6")->base();
+ simm1 = memregion("simm6.7")->base();
+ for (i = 0; i < 0x200000; i++)
+ {
+ simm1[i] = rom[j++];
+ simm0[i] = rom[j++];
+ }
+ }
+}
+
+DRIVER_INIT_MEMBER( cps3_hbmame, jojon )
+{
+ hb_unscramble();
+ DRIVER_INIT_CALL(jojo);
+}
+
+DRIVER_INIT_MEMBER( cps3_hbmame, jojoban )
+{
+ hb_unscramble();
+ DRIVER_INIT_CALL(jojoba);
+}
+
+DRIVER_INIT_MEMBER( cps3_hbmame, redeartno )
+{
+ hb_unscramble();
+ DRIVER_INIT_CALL(redearth);
+}
+
+DRIVER_INIT_MEMBER( cps3_hbmame, sfiiin )
+{
+ hb_unscramble();
+ DRIVER_INIT_CALL(sfiii);
+}
+
+DRIVER_INIT_MEMBER( cps3_hbmame, sfiii2n )
+{
+ hb_unscramble();
+ DRIVER_INIT_CALL(sfiii2);
+}
+
+DRIVER_INIT_MEMBER( cps3_hbmame, sfiii3n )
+{
+ hb_unscramble();
+ DRIVER_INIT_CALL(sfiii3);
+}
+
+MACHINE_RESET_MEMBER( cps3_hbmame, redeartn )
+{
+ m_current_table_address = -1;
+
+ m_fastboot_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(cps3_hbmame::fastboot_timer_callback),this));
+ m_fastboot_timer->adjust(attotime::zero);
+
+ // copy data from flashroms back into user regions + decrypt into regions we execute/draw from.
+ copy_from_nvram();
+}
+
+static MACHINE_CONFIG_DERIVED_CLASS( redeartn, redearth, cps3_hbmame )
+ MCFG_MACHINE_RESET_OVERRIDE(cps3_hbmame, redeartn)
+MACHINE_CONFIG_END
+
+static INPUT_PORTS_START ( cps3_ren )
+ PORT_INCLUDE ( cps3 )
+ PORT_MODIFY("INPUTS")
+ PORT_BIT( 0x10000000, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("P1 Start / Change Orb")
+ PORT_BIT( 0x20000000, IP_ACTIVE_LOW, IPT_START2 ) PORT_NAME("P2 Start / Change Orb")
+
+ PORT_START("REG")
+ PORT_DIPNAME( 0x0000000f, 0x00000000, DEF_STR( Region ) )
+ PORT_DIPSETTING( 0x00000000, "Default" )
+ // none of these do anything
+ //PORT_DIPSETTING( 0x00000001, DEF_STR( Japan ) )
+ //PORT_DIPSETTING( 0x00000002, DEF_STR( Asia ) )
+ //PORT_DIPSETTING( 0x00000003, DEF_STR( Europe ) )
+ //PORT_DIPSETTING( 0x00000004, DEF_STR( USA ) )
+ //PORT_DIPSETTING( 0x00000005, "Hispanic" )
+ //PORT_DIPSETTING( 0x00000006, "Brazil" )
+ //PORT_DIPSETTING( 0x00000007, "Oceania" )
+ //PORT_DIPSETTING( 0x00000008, "Asia NCD" )
+
+ PORT_START("VER")
+ PORT_DIPNAME( 0x000000f0, 0x00000060, DEF_STR( Version ) )
+ PORT_DIPSETTING( 0x00000060, DEF_STR( Normal ) )
+ // none of these do anything
+ //PORT_DIPSETTING( 0x00000010, "Character Check" )
+ //PORT_DIPSETTING( 0x00000020, "Publicity" )
+ //PORT_DIPSETTING( 0x00000030, "Location Test" )
+ //PORT_DIPSETTING( 0x00000040, "Show" )
+ //PORT_DIPSETTING( 0x00000050, "???" )
+INPUT_PORTS_END
+
+
+
+ROM_START( jojobbh2 )
+ ROM_REGION32_BE( 0x080000, "bios", 0 )
+ ROM_LOAD( "jojoba_euro_nocd.29f400.u2", 0x000000, 0x080000, CRC(1ee2d679) SHA1(9e129b454a376606b3f7e8aec64de425cf9c635c) )
+
+ ROM_REGION( 0x200000, "simm1.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.7", ROMREGION_ERASEFF )
+
+ ROM_REGION32_BE( USER4REGION_LENGTH, "old4", ROMREGION_ERASEFF )
+ ROM_LOAD( "10bh2", 0x000000, 0x800000, CRC(45e18e22) SHA1(e49fe9659852346ad36907b7ddd30b26ae44f309) )
+ ROM_LOAD( "20", 0x800000, 0x800000, CRC(1293892b) SHA1(b1beafac1a9c4b6d0640658af8a3eb359e76eb25) )
+ ROM_REGION16_BE( USER5REGION_LENGTH, "old5", ROMREGION_ERASEFF )
+ ROM_LOAD( "30", 0x0000000, 0x800000, CRC(d25c5005) SHA1(93a19a14783d604bb42feffbe23eb370d11281e8) )
+ ROM_LOAD( "31", 0x0800000, 0x800000, CRC(51bb3dba) SHA1(39e95a05882909820b3efa6a3b457b8574012638) )
+ ROM_LOAD( "40", 0x1000000, 0x800000, CRC(94dc26d4) SHA1(5ae2815142972f322886eea4885baf2b82563ab1) )
+ ROM_LOAD( "41", 0x1800000, 0x800000, CRC(1c53ee62) SHA1(e096bf3cb6fbc3d45955787b8f3213abcd76d120) )
+ ROM_LOAD( "50", 0x2000000, 0x800000, CRC(36e416ed) SHA1(58d0e95cc13f39bc171165468ce72f4f17b8d8d6) )
+ ROM_LOAD( "51", 0x2800000, 0x800000, CRC(eedf19ca) SHA1(a7660bf9ff87911afb4f83b64456245059986830) )
+ROM_END
+
+ROM_START( jojobbss )
+ ROM_REGION32_BE( 0x080000, "bios", 0 )
+ ROM_LOAD( "jojoba_japan_nocd.29f400.u2", 0x000000, 0x080000, CRC(4dab19f5) SHA1(ba07190e7662937fc267f07285c51e99a45c061e) )
+
+ ROM_REGION( 0x200000, "simm1.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.7", ROMREGION_ERASEFF )
+
+ ROM_REGION32_BE( USER4REGION_LENGTH, "old4", ROMREGION_ERASEFF )
+ ROM_LOAD( "10bbss", 0x000000, 0x800000, CRC(84f44fbc) SHA1(4727e24fe00e88a82b67f981643480e15224ae18) )
+ ROM_LOAD( "20", 0x800000, 0x800000, CRC(1293892b) SHA1(b1beafac1a9c4b6d0640658af8a3eb359e76eb25) )
+ ROM_REGION16_BE( USER5REGION_LENGTH, "old5", ROMREGION_ERASEFF )
+ ROM_LOAD( "30", 0x0000000, 0x800000, CRC(d25c5005) SHA1(93a19a14783d604bb42feffbe23eb370d11281e8) )
+ ROM_LOAD( "31", 0x0800000, 0x800000, CRC(51bb3dba) SHA1(39e95a05882909820b3efa6a3b457b8574012638) )
+ ROM_LOAD( "40", 0x1000000, 0x800000, CRC(94dc26d4) SHA1(5ae2815142972f322886eea4885baf2b82563ab1) )
+ ROM_LOAD( "41", 0x1800000, 0x800000, CRC(1c53ee62) SHA1(e096bf3cb6fbc3d45955787b8f3213abcd76d120) )
+ ROM_LOAD( "50", 0x2000000, 0x800000, CRC(36e416ed) SHA1(58d0e95cc13f39bc171165468ce72f4f17b8d8d6) )
+ ROM_LOAD( "51", 0x2800000, 0x800000, CRC(eedf19ca) SHA1(a7660bf9ff87911afb4f83b64456245059986830) )
+ROM_END
+
+ROM_START( jojobpow )
+ ROM_REGION32_BE( 0x080000, "bios", 0 )
+ ROM_LOAD( "jojoba_japan_nocd.29f400.u2", 0x000000, 0x080000, CRC(4dab19f5) SHA1(ba07190e7662937fc267f07285c51e99a45c061e) )
+
+ ROM_REGION( 0x200000, "simm1.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.7", ROMREGION_ERASEFF )
+
+ ROM_REGION32_BE( USER4REGION_LENGTH, "old4", ROMREGION_ERASEFF )
+ ROM_LOAD( "10bpow", 0x000000, 0x800000, CRC(d616f8d4) SHA1(665c353fd32183c0bf18b70a48f84f469c00fddc) )
+ ROM_LOAD( "20", 0x800000, 0x800000, CRC(1293892b) SHA1(b1beafac1a9c4b6d0640658af8a3eb359e76eb25) )
+ ROM_REGION16_BE( USER5REGION_LENGTH, "old5", ROMREGION_ERASEFF )
+ ROM_LOAD( "30", 0x0000000, 0x800000, CRC(d25c5005) SHA1(93a19a14783d604bb42feffbe23eb370d11281e8) )
+ ROM_LOAD( "31", 0x0800000, 0x800000, CRC(51bb3dba) SHA1(39e95a05882909820b3efa6a3b457b8574012638) )
+ ROM_LOAD( "40", 0x1000000, 0x800000, CRC(94dc26d4) SHA1(5ae2815142972f322886eea4885baf2b82563ab1) )
+ ROM_LOAD( "41", 0x1800000, 0x800000, CRC(1c53ee62) SHA1(e096bf3cb6fbc3d45955787b8f3213abcd76d120) )
+ ROM_LOAD( "50", 0x2000000, 0x800000, CRC(36e416ed) SHA1(58d0e95cc13f39bc171165468ce72f4f17b8d8d6) )
+ ROM_LOAD( "51", 0x2800000, 0x800000, CRC(eedf19ca) SHA1(a7660bf9ff87911afb4f83b64456245059986830) )
+ROM_END
+
+
+ROM_START( jojonbss )
+ ROM_REGION32_BE( 0x080000, "bios", 0 )
+ ROM_LOAD( "jojo_asia_nocd.29f400.u2", 0x000000, 0x080000, CRC(05b4f953) SHA1(c746c7bb5359acc9adced817cb4870b1912eaefd) )
+
+ ROM_REGION( 0x200000, "simm1.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.3", ROMREGION_ERASEFF )
+
+ ROM_REGION32_BE( USER4REGION_LENGTH, "old4", ROMREGION_ERASEFF )
+ ROM_LOAD( "10bss", 0x0000000, 0x800000, CRC(fccbce04) SHA1(cd4d429620afdd1924ceb33f1a435c9de91453c3) )
+ ROM_LOAD( "20", 0x0800000, 0x800000, CRC(0e1daddf) SHA1(34bb4e0fb86258095a7b20f60174453195f3735a) )
+ ROM_REGION16_BE( USER5REGION_LENGTH, "old5", ROMREGION_ERASEFF )
+ ROM_LOAD( "30", 0x0000000, 0x800000, CRC(1d99181b) SHA1(25c216de16cefac2d5892039ad23d07848a457e6) )
+ ROM_LOAD( "31", 0x0800000, 0x800000, CRC(6889fbda) SHA1(53a51b993d319d81a604cdf70b224955eacb617e) )
+ ROM_LOAD( "40", 0x1000000, 0x800000, CRC(8069f9de) SHA1(7862ee104a2e9034910dd592687b40ebe75fa9ce) )
+ ROM_LOAD( "41", 0x1800000, 0x800000, CRC(9c426823) SHA1(1839dccc7943a44063e8cb2376cd566b24e8b797) )
+ ROM_LOAD( "50", 0x2000000, 0x400000, CRC(1c749cc7) SHA1(23df741360476d8035c68247e645278fbab53b59) )
+ROM_END
+
+ROM_START( jojonpow )
+ ROM_REGION32_BE( 0x080000, "bios", 0 )
+ ROM_LOAD( "jojo_asia_nocd.29f400.u2", 0x000000, 0x080000, CRC(05b4f953) SHA1(c746c7bb5359acc9adced817cb4870b1912eaefd) )
+
+ ROM_REGION( 0x200000, "simm1.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.3", ROMREGION_ERASEFF )
+
+ ROM_REGION32_BE( USER4REGION_LENGTH, "old4", ROMREGION_ERASEFF )
+ ROM_LOAD( "10pow", 0x0000000, 0x800000, CRC(dd5723e1) SHA1(85adee2f633fd5438c00d2c8c9fde0c4d8a7282f) )
+ ROM_LOAD( "20", 0x0800000, 0x800000, CRC(0e1daddf) SHA1(34bb4e0fb86258095a7b20f60174453195f3735a) )
+ ROM_REGION16_BE( USER5REGION_LENGTH, "old5", ROMREGION_ERASEFF )
+ ROM_LOAD( "30", 0x0000000, 0x800000, CRC(1d99181b) SHA1(25c216de16cefac2d5892039ad23d07848a457e6) )
+ ROM_LOAD( "31", 0x0800000, 0x800000, CRC(6889fbda) SHA1(53a51b993d319d81a604cdf70b224955eacb617e) )
+ ROM_LOAD( "40", 0x1000000, 0x800000, CRC(8069f9de) SHA1(7862ee104a2e9034910dd592687b40ebe75fa9ce) )
+ ROM_LOAD( "41", 0x1800000, 0x800000, CRC(9c426823) SHA1(1839dccc7943a44063e8cb2376cd566b24e8b797) )
+ ROM_LOAD( "50", 0x2000000, 0x400000, CRC(1c749cc7) SHA1(23df741360476d8035c68247e645278fbab53b59) )
+ROM_END
+
+
+ROM_START( redeartn )
+ ROM_REGION32_BE( 0x080000, "bios", 0 )
+ ROM_LOAD( "redearthn_asia_nocd.29f400.u2", 0x000000, 0x080000, CRC(db09f27c) SHA1(f2d299cda7cda175b4218526a15f12560654d97f) )
+
+ ROM_REGION( 0x200000, "simm1.0", 0 )
+ ROM_LOAD( "redeartn-simm1.0", 0x00000, 0x200000, CRC(cad468f8) SHA1(b3aa4f7d3fae84e8821417ccde9528d3eda2b7a6) )
+ ROM_REGION( 0x200000, "simm1.1", 0 )
+ ROM_LOAD( "redeartn-simm1.1", 0x00000, 0x200000, CRC(e9721d89) SHA1(5c63d10bdbce52d50b6dde14d4a0f1369383d656) )
+ ROM_REGION( 0x200000, "simm1.2", 0 )
+ ROM_LOAD( "redeartn-simm1.2", 0x00000, 0x200000, CRC(2889ec98) SHA1(a94310eb4777f908d87e9d90969db8504b4140ff) )
+ ROM_REGION( 0x200000, "simm1.3", 0 )
+ ROM_LOAD( "redeartn-simm1.3", 0x00000, 0x200000, CRC(5a6cd148) SHA1(d65c6e8378a91828474a16a3bbcd13c4b3b15f13) )
+
+ ROM_REGION( 0x200000, "simm3.0", 0 )
+ ROM_LOAD( "redeartn-simm3.0", 0x00000, 0x200000, CRC(83350cc5) SHA1(922b1abf80a4a89f35279b66311a7369d3965bd0) )
+ ROM_REGION( 0x200000, "simm3.1", 0 )
+ ROM_LOAD( "redeartn-simm3.1", 0x00000, 0x200000, CRC(56734de6) SHA1(75699fa6efe5bec335e4b02e15b3c45726b68fa8) )
+ ROM_REGION( 0x200000, "simm3.2", 0 )
+ ROM_LOAD( "redeartn-simm3.2", 0x00000, 0x200000, CRC(800ea0f1) SHA1(33871ab56dc1cd24441389d53e43fb8e43b149d9) )
+ ROM_REGION( 0x200000, "simm3.3", 0 )
+ ROM_LOAD( "redeartn-simm3.3", 0x00000, 0x200000, CRC(97e9146c) SHA1(ab7744709615081440bee72f4080d6fd5b938668) )
+ ROM_REGION( 0x200000, "simm3.4", 0 )
+ ROM_LOAD( "redeartn-simm3.4", 0x00000, 0x200000, CRC(0cb1d648) SHA1(7042a590c2b7ec55323062127e254da3cdc790a1) )
+ ROM_REGION( 0x200000, "simm3.5", 0 )
+ ROM_LOAD( "redeartn-simm3.5", 0x00000, 0x200000, CRC(7a1099f0) SHA1(c6a92ec86eb24485f1db530e0e78f647e8432231) )
+ ROM_REGION( 0x200000, "simm3.6", 0 )
+ ROM_LOAD( "redeartn-simm3.6", 0x00000, 0x200000, CRC(aeff8f54) SHA1(fd760e237c2e5fb2da45e32a1c12fd3defb4c3e4) )
+ ROM_REGION( 0x200000, "simm3.7", 0 )
+ ROM_LOAD( "redeartn-simm3.7", 0x00000, 0x200000, CRC(f770acd0) SHA1(4b3ccb6f91568f95f04ede6c574144918d131201) )
+
+ ROM_REGION( 0x200000, "simm4.0", 0 )
+ ROM_LOAD( "redeartn-simm4.0", 0x00000, 0x200000, CRC(301e56f2) SHA1(4847d971bff70a2aeed4599e1201c7ec9677da60) )
+ ROM_REGION( 0x200000, "simm4.1", 0 )
+ ROM_LOAD( "redeartn-simm4.1", 0x00000, 0x200000, CRC(2048e103) SHA1(b21f95b05cd99749bd3f25cc71b2671c2026847b) )
+ ROM_REGION( 0x200000, "simm4.2", 0 )
+ ROM_LOAD( "redeartn-simm4.2", 0x00000, 0x200000, CRC(c9433455) SHA1(63a269d76bac332c2e991d0f6a20c35e0e88680a) )
+ ROM_REGION( 0x200000, "simm4.3", 0 )
+ ROM_LOAD( "redeartn-simm4.3", 0x00000, 0x200000, CRC(c02171a8) SHA1(2e9228729b27a6113d9f2e42af310a834979f714) )
+ ROM_REGION( 0x200000, "simm4.4", 0 )
+ ROM_LOAD( "redeartn-simm4.4", 0x00000, 0x200000, CRC(2ddbf276) SHA1(b232baaa8edc8db18f8a3bdcc2d38fe984a94a34) )
+ ROM_REGION( 0x200000, "simm4.5", 0 )
+ ROM_LOAD( "redeartn-simm4.5", 0x00000, 0x200000, CRC(fea820a6) SHA1(55ee8ef95751f5a509fb126513e1b2a70a3414e5) )
+ ROM_REGION( 0x200000, "simm4.6", 0 )
+ ROM_LOAD( "redeartn-simm4.6", 0x00000, 0x200000, CRC(c7528df1) SHA1(aa312f80c2d7759d18d1aa8d416cf932b2850824) )
+ ROM_REGION( 0x200000, "simm4.7", 0 )
+ ROM_LOAD( "redeartn-simm4.7", 0x00000, 0x200000, CRC(2449cf3b) SHA1(c60d8042136d74e547f668ad787cae529c42eed9) )
+
+ ROM_REGION( 0x200000, "simm5.0", 0 )
+ ROM_LOAD( "redeartn-simm5.0", 0x00000, 0x200000, CRC(424451b9) SHA1(250fb92254c9e7ff5bc8dbeea5872f8a771dc9bd) )
+ ROM_REGION( 0x200000, "simm5.1", 0 )
+ ROM_LOAD( "redeartn-simm5.1", 0x00000, 0x200000, CRC(9b8cb56b) SHA1(2ff1081dc99bb7c2f1e036f4c112137c96b83d23) )
+ROM_END
+
+ROM_START( redearex )
+ ROM_REGION32_BE( 0x080000, "bios", 0 )
+ ROM_LOAD( "redearth_euro.29f400.u2", 0x000000, 0x080000, CRC(02e0f336) SHA1(acc37e830dfeb9674f5a0fb24f4cc23217ae4ff5) )
+
+ ROM_REGION( 0x200000, "simm1.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.1", ROMREGION_ERASEFF )
+
+ ROM_REGION32_BE( USER4REGION_LENGTH, "old4", 0 )
+ ROM_LOAD( "10ex", 0x000000, 0x800000, CRC(e44131ad) SHA1(1b395edd8c0cb2705a1bdbb8df75e6d218d8e379) )
+ ROM_REGION16_BE( USER5REGION_LENGTH, "old5", 0 )
+ ROM_LOAD( "30", 0x0000000, 0x800000, CRC(074cab4d) SHA1(4cb6cc9cce3b1a932b07058a5d723b3effa23fcf) )
+ ROM_LOAD( "31", 0x0800000, 0x800000, CRC(14e2cad4) SHA1(9958a4e315e4476e4791a6219b93495413c7b751) )
+ ROM_LOAD( "40", 0x1000000, 0x800000, CRC(72d98890) SHA1(f40926c52cb7a71b0ef0027a0ea38bbc7e8b31b0) )
+ ROM_LOAD( "41", 0x1800000, 0x800000, CRC(88ccb33c) SHA1(1e7af35d186d0b4e45b6c27458ddb9cfddd7c9bc) )
+ ROM_LOAD( "50", 0x2000000, 0x400000, CRC(2f5b44bd) SHA1(7ffdbed5b6899b7e31414a0828e04543d07435e4) )
+ROM_END
+
+ROM_START( redeartno )
+ ROM_REGION32_BE( 0x080000, "bios", 0 )
+ ROM_LOAD( "redearth_euro.29f400.u2", 0x000000, 0x080000, CRC(02e0f336) SHA1(acc37e830dfeb9674f5a0fb24f4cc23217ae4ff5) )
+
+ ROM_REGION( 0x200000, "simm1.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.1", ROMREGION_ERASEFF )
+
+ ROM_REGION32_BE( USER4REGION_LENGTH, "old4", 0 )
+ ROM_LOAD( "10", 0x000000, 0x800000, CRC(68188016) SHA1(93aaac08cb5566c33aabc16457085b0a36048019) )
+ ROM_REGION16_BE( USER5REGION_LENGTH, "old5", 0 )
+ ROM_LOAD( "30", 0x0000000, 0x800000, CRC(074cab4d) SHA1(4cb6cc9cce3b1a932b07058a5d723b3effa23fcf) )
+ ROM_LOAD( "31", 0x0800000, 0x800000, CRC(14e2cad4) SHA1(9958a4e315e4476e4791a6219b93495413c7b751) )
+ ROM_LOAD( "40", 0x1000000, 0x800000, CRC(72d98890) SHA1(f40926c52cb7a71b0ef0027a0ea38bbc7e8b31b0) )
+ ROM_LOAD( "41", 0x1800000, 0x800000, CRC(88ccb33c) SHA1(1e7af35d186d0b4e45b6c27458ddb9cfddd7c9bc) )
+ ROM_LOAD( "50", 0x2000000, 0x400000, CRC(2f5b44bd) SHA1(7ffdbed5b6899b7e31414a0828e04543d07435e4) )
+ROM_END
+
+
+ROM_START( sfiiibhp )
+ ROM_REGION32_BE( 0x080000, "bios", 0 )
+ ROM_LOAD( "sfiii_asia_nocd.29f400.u2", 0x000000, 0x080000, CRC(73e32463) SHA1(45d144e533e4b20cc5a744ca4f618e288430c601) )
+
+ ROM_REGION( 0x200000, "simm1.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.1", ROMREGION_ERASEFF )
+
+ ROM_REGION32_BE( USER4REGION_LENGTH, "old4", 0 )
+ ROM_LOAD( "10bhp", 0x0000000, 0x800000, CRC(cebd13a2) SHA1(18017d798448f6271f5c7b07325e0410b5d55f0d) )
+ ROM_REGION16_BE( USER5REGION_LENGTH, "old5", 0 )
+ ROM_LOAD( "30", 0x0000000, 0x800000, CRC(98c2d07c) SHA1(604ce4a16170847c10bc233a47a47a119ce170f7) )
+ ROM_LOAD( "31", 0x0800000, 0x800000, CRC(7115a396) SHA1(b60a74259e3c223138e66e68a3f6457694a0c639) )
+ ROM_LOAD( "40", 0x1000000, 0x800000, CRC(839f0972) SHA1(844e43fcc157b7c774044408bfe918c49e174cdb) )
+ ROM_LOAD( "41", 0x1800000, 0x800000, CRC(8a8b252c) SHA1(9ead4028a212c689d7a25746fbd656dca6f938e8) )
+ ROM_LOAD( "50", 0x2000000, 0x400000, CRC(58933dc2) SHA1(1f1723be676a817237e96b6e20263b935c59daae) )
+ROM_END
+
+ROM_START( sfiiipmp )
+ ROM_REGION32_BE( 0x080000, "bios", 0 )
+ ROM_LOAD( "sfiii_asia_nocd.29f400.u2", 0x000000, 0x080000, CRC(73e32463) SHA1(45d144e533e4b20cc5a744ca4f618e288430c601) )
+
+ ROM_REGION( 0x200000, "simm1.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.1", ROMREGION_ERASEFF )
+
+ ROM_REGION32_BE( USER4REGION_LENGTH, "old4", 0 )
+ ROM_LOAD( "10pmp", 0x0000000, 0x800000, CRC(41ed9e7b) SHA1(91684a1ecada9971eddf5ca6ace95f7110ba165b) )
+ ROM_REGION16_BE( USER5REGION_LENGTH, "old5", 0 )
+ ROM_LOAD( "30", 0x0000000, 0x800000, CRC(98c2d07c) SHA1(604ce4a16170847c10bc233a47a47a119ce170f7) )
+ ROM_LOAD( "31", 0x0800000, 0x800000, CRC(7115a396) SHA1(b60a74259e3c223138e66e68a3f6457694a0c639) )
+ ROM_LOAD( "40", 0x1000000, 0x800000, CRC(839f0972) SHA1(844e43fcc157b7c774044408bfe918c49e174cdb) )
+ ROM_LOAD( "41", 0x1800000, 0x800000, CRC(8a8b252c) SHA1(9ead4028a212c689d7a25746fbd656dca6f938e8) )
+ ROM_LOAD( "50", 0x2000000, 0x400000, CRC(58933dc2) SHA1(1f1723be676a817237e96b6e20263b935c59daae) )
+ROM_END
+
+
+ROM_START( sfiii2bh )
+ ROM_REGION32_BE( 0x080000, "bios", 0 )
+ ROM_LOAD( "sfiii2_asia_nocd.29f400.u2", 0x000000, 0x080000, CRC(fd297c0d) SHA1(4323deda2789f104b53f32a663196ec16de73215) )
+
+ ROM_REGION( 0x200000, "simm1.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.7", ROMREGION_ERASEFF )
+
+ ROM_REGION32_BE( USER4REGION_LENGTH, "old4", 0 )
+ ROM_LOAD( "10bh", 0x0000000, 0x800000, CRC(503d6401) SHA1(bf352cada35fd5c9927d265fcc04a068ed015e57) )
+ ROM_LOAD( "20", 0x0800000, 0x800000, CRC(38090460) SHA1(aaade89b8ccdc9154f97442ca35703ec538fe8be) )
+ ROM_REGION16_BE( USER5REGION_LENGTH, "old5", 0 )
+ ROM_LOAD( "30", 0x0000000, 0x800000, CRC(77c197c0) SHA1(944381161462e65de7ae63a656658f3fbe44727a) )
+ ROM_LOAD( "31", 0x0800000, 0x800000, CRC(7470a6f2) SHA1(850b2e20afe8a5a1f0d212d9abe002cb5cf14d22) )
+ ROM_LOAD( "40", 0x1000000, 0x800000, CRC(01a85ced) SHA1(802df3274d5f767636b2785606e0558f6d3b9f13) )
+ ROM_LOAD( "41", 0x1800000, 0x800000, CRC(fb346d74) SHA1(57570f101a170aa7e83e84e4b7cbdc63a11a486a) )
+ ROM_LOAD( "50", 0x2000000, 0x800000, CRC(32f79449) SHA1(44b1f2a640ab4abc23ff47e0edd87fbd0b345c06) )
+ ROM_LOAD( "51", 0x2800000, 0x800000, CRC(1102b8eb) SHA1(c7dd2ee3a3214c6ec47a03fe3e8c941775d57f76) )
+ROM_END
+
+ROM_START( sfiii2np )
+ ROM_REGION32_BE( 0x080000, "bios", 0 )
+ ROM_LOAD( "sfiii2_asia_nocd.29f400.u2", 0x000000, 0x080000, CRC(fd297c0d) SHA1(4323deda2789f104b53f32a663196ec16de73215) )
+
+ ROM_REGION( 0x200000, "simm1.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.7", ROMREGION_ERASEFF )
+
+ ROM_REGION32_BE( USER4REGION_LENGTH, "old4", 0 )
+ ROM_LOAD( "10p", 0x0000000, 0x800000, CRC(ff5a016f) SHA1(0fef232f3ff9a0ef2225b934b283118b53b2f26e) )
+ ROM_LOAD( "20", 0x0800000, 0x800000, CRC(38090460) SHA1(aaade89b8ccdc9154f97442ca35703ec538fe8be) )
+ ROM_REGION16_BE( USER5REGION_LENGTH, "old5", 0 )
+ ROM_LOAD( "30", 0x0000000, 0x800000, CRC(77c197c0) SHA1(944381161462e65de7ae63a656658f3fbe44727a) )
+ ROM_LOAD( "31", 0x0800000, 0x800000, CRC(7470a6f2) SHA1(850b2e20afe8a5a1f0d212d9abe002cb5cf14d22) )
+ ROM_LOAD( "40", 0x1000000, 0x800000, CRC(01a85ced) SHA1(802df3274d5f767636b2785606e0558f6d3b9f13) )
+ ROM_LOAD( "41", 0x1800000, 0x800000, CRC(fb346d74) SHA1(57570f101a170aa7e83e84e4b7cbdc63a11a486a) )
+ ROM_LOAD( "50", 0x2000000, 0x800000, CRC(32f79449) SHA1(44b1f2a640ab4abc23ff47e0edd87fbd0b345c06) )
+ ROM_LOAD( "51", 0x2800000, 0x800000, CRC(1102b8eb) SHA1(c7dd2ee3a3214c6ec47a03fe3e8c941775d57f76) )
+ROM_END
+
+ROM_START( sfiii2pl )
+ ROM_REGION32_BE( 0x080000, "bios", 0 )
+ ROM_LOAD( "sfiii2_asia_nocd.29f400.u2", 0x000000, 0x080000, CRC(fd297c0d) SHA1(4323deda2789f104b53f32a663196ec16de73215) )
+
+ ROM_REGION( 0x200000, "simm1.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.7", ROMREGION_ERASEFF )
+
+ ROM_REGION32_BE( USER4REGION_LENGTH, "old4", 0 )
+ ROM_LOAD( "10pl", 0x0000000, 0x800000, CRC(beb7b483) SHA1(451e37490dccd7ae11c1bd6f7ba236af7d54b342) )
+ ROM_LOAD( "20", 0x0800000, 0x800000, CRC(38090460) SHA1(aaade89b8ccdc9154f97442ca35703ec538fe8be) )
+ ROM_REGION16_BE( USER5REGION_LENGTH, "old5", 0 )
+ ROM_LOAD( "30", 0x0000000, 0x800000, CRC(77c197c0) SHA1(944381161462e65de7ae63a656658f3fbe44727a) )
+ ROM_LOAD( "31", 0x0800000, 0x800000, CRC(7470a6f2) SHA1(850b2e20afe8a5a1f0d212d9abe002cb5cf14d22) )
+ ROM_LOAD( "40", 0x1000000, 0x800000, CRC(01a85ced) SHA1(802df3274d5f767636b2785606e0558f6d3b9f13) )
+ ROM_LOAD( "41", 0x1800000, 0x800000, CRC(fb346d74) SHA1(57570f101a170aa7e83e84e4b7cbdc63a11a486a) )
+ ROM_LOAD( "50", 0x2000000, 0x800000, CRC(32f79449) SHA1(44b1f2a640ab4abc23ff47e0edd87fbd0b345c06) )
+ ROM_LOAD( "51", 0x2800000, 0x800000, CRC(1102b8eb) SHA1(c7dd2ee3a3214c6ec47a03fe3e8c941775d57f76) )
+ROM_END
+
+
+ROM_START( sfiii3an )
+ ROM_REGION32_BE( 0x080000, "bios", 0 ) /* bios region */
+ ROM_LOAD( "sfiii3_japan_nocd.29f400.u2", 0x000000, 0x080000, CRC(1edc6366) SHA1(60b4b9adeb030a33059d74fdf03873029e465b52) )
+
+ ROM_REGION( 0x200000, "simm1.0", 0 )
+ ROM_LOAD( "sfiii3n-simm1.0", 0x000000, 0x200000, CRC(11dfd3cd) SHA1(dba1f77c46e80317e3279298411154dfb6db2309) )
+ ROM_REGION( 0x200000, "simm1.1", 0 )
+ ROM_LOAD( "sfiii3n-simm1.1", 0x000000, 0x200000, CRC(c50585e6) SHA1(a289237957ea1c7f58b1c65e24c54ceb34cb1712) )
+ ROM_REGION( 0x200000, "simm1.2", 0 )
+ ROM_LOAD( "sfiii3n-simm1.2", 0x000000, 0x200000, CRC(8e011d9b) SHA1(e0861bcd3c4f865474d7ce47aa9eeec7b3d28da6) )
+ ROM_REGION( 0x200000, "simm1.3", 0 )
+ ROM_LOAD( "sfiii3n-simm1.3", 0x000000, 0x200000, CRC(dca8d92f) SHA1(7cd241641c943df446e2c75b88b5cf2d2ebf7b2e) )
+
+ ROM_REGION( 0x200000, "simm2.0", 0 )
+ ROM_LOAD( "sfiii3-simm2.0", 0x00000, 0x200000, CRC(06eb969e) SHA1(d89f6a6585b76692d57d337f0f8186398fb056da) )
+ ROM_REGION( 0x200000, "simm2.1", 0 )
+ ROM_LOAD( "sfiii3-simm2.1", 0x00000, 0x200000, CRC(e7039f82) SHA1(8e81e66b5a4f45ae14b070a491bde47a6a74499f) )
+ ROM_REGION( 0x200000, "simm2.2", 0 )
+ ROM_LOAD( "sfiii3-simm2.2", 0x00000, 0x200000, CRC(645c96f7) SHA1(06d5a54874d4bf100b776131ec9060da209ad037) )
+ ROM_REGION( 0x200000, "simm2.3", 0 )
+ ROM_LOAD( "sfiii3-simm2.3", 0x00000, 0x200000, CRC(610efab1) SHA1(bbc21ed6ff6220ff6017a3f02ebd9a341fbc9040) )
+
+ ROM_REGION( 0x200000, "simm3.0", 0 )
+ ROM_LOAD( "sfiii3-simm3.0", 0x00000, 0x200000, CRC(7baa1f79) SHA1(3f409df28c24dd7221966b5340d59898ea756b6f) )
+ ROM_REGION( 0x200000, "simm3.1", 0 )
+ ROM_LOAD( "sfiii3-simm3.1", 0x00000, 0x200000, CRC(234bf8fe) SHA1(2191781ae4d726cab28de97f27efa4a13f3bdd69) )
+ ROM_REGION( 0x200000, "simm3.2", 0 )
+ ROM_LOAD( "sfiii3-simm3.2", 0x00000, 0x200000, CRC(d9ebc308) SHA1(af6a0dca77e5181c9f20533a06760a782c5fd51d) )
+ ROM_REGION( 0x200000, "simm3.3", 0 )
+ ROM_LOAD( "sfiii3-simm3.3", 0x00000, 0x200000, CRC(293cba77) SHA1(294604cacdc24261aec4d39e489de91c41fa1758) )
+ ROM_REGION( 0x200000, "simm3.4", 0 )
+ ROM_LOAD( "sfiii3-simm3.4", 0x00000, 0x200000, CRC(6055e747) SHA1(3813852c5a4a5355ef739ca8f0913bbd390b984b) )
+ ROM_REGION( 0x200000, "simm3.5", 0 )
+ ROM_LOAD( "sfiii3-simm3.5", 0x00000, 0x200000, CRC(499aa6fc) SHA1(5b9b6eab3e99ff3e1d7c1f50b9d8bc6a81f3f8a9) )
+ ROM_REGION( 0x200000, "simm3.6", 0 )
+ ROM_LOAD( "sfiii3-simm3.6", 0x00000, 0x200000, CRC(6c13879e) SHA1(de189b0b8f42bc7dd89983e62bc2ecb4237b3277) )
+ ROM_REGION( 0x200000, "simm3.7", 0 )
+ ROM_LOAD( "sfiii3-simm3.7", 0x00000, 0x200000, CRC(cf4f8ede) SHA1(e0fb68fcb0e445f824c62fa828d6e1dcd7e3683a) )
+
+ ROM_REGION( 0x200000, "simm4.0", 0 )
+ ROM_LOAD( "sfiii3-simm4.0", 0x00000, 0x200000, CRC(091fd5ba) SHA1(3327ad7c2623c119bf728af717ea2ce3b74673a9) )
+ ROM_REGION( 0x200000, "simm4.1", 0 )
+ ROM_LOAD( "sfiii3-simm4.1", 0x00000, 0x200000, CRC(0bca8917) SHA1(b7b284e2f16f46d46bcfaae779b232c5b980924f) )
+ ROM_REGION( 0x200000, "simm4.2", 0 )
+ ROM_LOAD( "sfiii3-simm4.2", 0x00000, 0x200000, CRC(a0fd578b) SHA1(100c9db9f00ecd88d518076f5a0822e6ac3695b3) )
+ ROM_REGION( 0x200000, "simm4.3", 0 )
+ ROM_LOAD( "sfiii3-simm4.3", 0x00000, 0x200000, CRC(4bf8c699) SHA1(2c0b4288b5ebc5e54d9e782dfc39eb8c78fd4c21) )
+ ROM_REGION( 0x200000, "simm4.4", 0 )
+ ROM_LOAD( "sfiii3-simm4.4", 0x00000, 0x200000, CRC(137b8785) SHA1(56a579520a8ce2abbf36be57777f024e80474eee) )
+ ROM_REGION( 0x200000, "simm4.5", 0 )
+ ROM_LOAD( "sfiii3-simm4.5", 0x00000, 0x200000, CRC(4fb70671) SHA1(9aba83c18cfc099a5ce18793119bff0c2b9c777f) )
+ ROM_REGION( 0x200000, "simm4.6", 0 )
+ ROM_LOAD( "sfiii3-simm4.6", 0x00000, 0x200000, CRC(832374a4) SHA1(c84629e32fbf47cb7b5b4ee7555bfc2ac9b3857f) )
+ ROM_REGION( 0x200000, "simm4.7", 0 )
+ ROM_LOAD( "sfiii3-simm4.7", 0x00000, 0x200000, CRC(1c88576d) SHA1(0f039944d0c2305999ed5dbd351c3eb87812dc3b) )
+
+ ROM_REGION( 0x200000, "simm5.0", 0 )
+ ROM_LOAD( "sfiii3-simm5.0", 0x00000, 0x200000, CRC(c67d9190) SHA1(d265475244099d0ec153059986f3445c7bd910a3) )
+ ROM_REGION( 0x200000, "simm5.1", 0 )
+ ROM_LOAD( "sfiii3-simm5.1", 0x00000, 0x200000, CRC(6cb79868) SHA1(c94237f30e05bfcb2e23945530c812d9e4c73416) )
+ ROM_REGION( 0x200000, "simm5.2", 0 )
+ ROM_LOAD( "sfiii3-simm5.2", 0x00000, 0x200000, CRC(df69930e) SHA1(c76b7c559a1d5558138afbc796249efa2f49f6a8) )
+ ROM_REGION( 0x200000, "simm5.3", 0 )
+ ROM_LOAD( "sfiii3-simm5.3", 0x00000, 0x200000, CRC(333754e0) SHA1(4c18a569c26524a492ecd6f4c8b3c8e803a077d3) )
+ ROM_REGION( 0x200000, "simm5.4", 0 )
+ ROM_LOAD( "sfiii3-simm5.4", 0x00000, 0x200000, CRC(78f6d417) SHA1(a69577cc5399fcf0a24548661168f27f3e7e8e40) )
+ ROM_REGION( 0x200000, "simm5.5", 0 )
+ ROM_LOAD( "sfiii3-simm5.5", 0x00000, 0x200000, CRC(8ccad9b1) SHA1(f8bda399f87be2497b7ac39e9661f9863bf4f873) )
+ ROM_REGION( 0x200000, "simm5.6", 0 )
+ ROM_LOAD( "sfiii3n-simm5.6", 0x000000, 0x200000, CRC(85de59e5) SHA1(748b5c91f15777b85d8c1d35b685cd90d3185ec6) )
+ ROM_REGION( 0x200000, "simm5.7", 0 )
+ ROM_LOAD( "sfiii3n-simm5.7", 0x000000, 0x200000, CRC(ee7e29b3) SHA1(63dc30c6904ca2f58d229249bee5eef51fafa158) )
+
+ ROM_REGION( 0x200000, "simm6.0", 0 )
+ ROM_LOAD( "sfiii3-simm6.0", 0x00000, 0x200000, CRC(8da69042) SHA1(fd3d08295342635b2136e48d543c9350d287bb22) )
+ ROM_REGION( 0x200000, "simm6.1", 0 )
+ ROM_LOAD( "sfiii3-simm6.1", 0x00000, 0x200000, CRC(1c8c7ac4) SHA1(ac9f8353a4c356ef98aa7c226baba00b01f5a80f) )
+ ROM_REGION( 0x200000, "simm6.2", 0 )
+ ROM_LOAD( "sfiii3-simm6.2", 0x00000, 0x200000, CRC(a671341d) SHA1(636f4c04962bc1e1ddb29d2e01244b00389b234f) )
+ ROM_REGION( 0x200000, "simm6.3", 0 )
+ ROM_LOAD( "sfiii3-simm6.3", 0x00000, 0x200000, CRC(1a990249) SHA1(2acc639e2c0c53bf24096b8620eab090bc25d03b) )
+ ROM_REGION( 0x200000, "simm6.4", 0 )
+ ROM_LOAD( "sfiii3-simm6.4", 0x00000, 0x200000, CRC(20cb39ac) SHA1(7d13a0fea1ef719dd2ff77dfb547d53c6023cc9e) )
+ ROM_REGION( 0x200000, "simm6.5", 0 )
+ ROM_LOAD( "sfiii3-simm6.5", 0x00000, 0x200000, CRC(5f844b2f) SHA1(564e4934f89ed3b92a4c4874519f8f00f3b48696) )
+ ROM_REGION( 0x200000, "simm6.6", 0 )
+ ROM_LOAD( "sfiii3-simm6.6", 0x00000, 0x200000, CRC(450e8d28) SHA1(885db658132aa27926df617ec2d2a1f38abdbb60) )
+ ROM_REGION( 0x200000, "simm6.7", 0 )
+ ROM_LOAD( "sfiii3-simm6.7", 0x00000, 0x200000, CRC(cc5f4187) SHA1(248ddace21ed4736a56e92f77cc6ad219d7fef0b) )
+ROM_END
+
+
+ROM_START( sfiii3bh )
+ ROM_REGION32_BE( 0x080000, "bios", 0 )
+ ROM_LOAD( "sfiii3_japan_nocd.29f400.u2", 0x000000, 0x080000, CRC(1edc6366) SHA1(60b4b9adeb030a33059d74fdf03873029e465b52) )
+
+ ROM_REGION( 0x200000, "simm1.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm6.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm6.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm6.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm6.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm6.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm6.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm6.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm6.7", ROMREGION_ERASEFF )
+
+ ROM_REGION32_BE( USER4REGION_LENGTH, "old4", ROMREGION_ERASEFF )
+ ROM_LOAD( "10bh", 0x0000000, 0x800000, CRC(b18be430) SHA1(0ede4ab7c950dc838e01b8df9b9ddd725ff640ee) )
+ ROM_LOAD( "20", 0x0800000, 0x800000, CRC(5ca8faba) SHA1(71c12638ae7fa38b362d68c3ccb4bb3ccd67f0e9) )
+ ROM_REGION16_BE( USER5REGION_LENGTH, "old5", ROMREGION_ERASEFF )
+ ROM_LOAD( "30", 0x0000000, 0x800000, CRC(b37cf960) SHA1(60310f95e4ecedee85846c08ccba71e286cda73b) )
+ ROM_LOAD( "31", 0x0800000, 0x800000, CRC(450ec982) SHA1(1cb3626b8479997c4f1b29c41c81cac038fac31b) )
+ ROM_LOAD( "40", 0x1000000, 0x800000, CRC(632c965f) SHA1(9a46b759f5dee35411fd6446c2457c084a6dfcd8) )
+ ROM_LOAD( "41", 0x1800000, 0x800000, CRC(7a4c5f33) SHA1(f33cdfe247c7caf9d3d394499712f72ca930705e) )
+ ROM_LOAD( "50", 0x2000000, 0x800000, CRC(8562358e) SHA1(8ed78f6b106659a3e4d94f38f8a354efcbdf3aa7) )
+ ROM_LOAD( "51", 0x2800000, 0x800000, CRC(7baf234b) SHA1(38feb45d6315d771de5f9ae965119cb25bae2a1e) )
+ ROM_LOAD( "60", 0x3000000, 0x800000, CRC(bc9487b7) SHA1(bc2cd2d3551cc20aa231bba425ff721570735eba) )
+ ROM_LOAD( "61", 0x3800000, 0x800000, CRC(b813a1b1) SHA1(16de0ee3dfd6bf33d07b0ff2e797ebe2cfe6589e) )
+ROM_END
+
+ROM_START( sfiii3mh )
+ ROM_REGION32_BE( 0x080000, "bios", 0 )
+ ROM_LOAD( "sfiii3_japan_nocd.29f400.u2", 0x000000, 0x080000, CRC(1edc6366) SHA1(60b4b9adeb030a33059d74fdf03873029e465b52) )
+
+ ROM_REGION( 0x200000, "simm1.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm6.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm6.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm6.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm6.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm6.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm6.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm6.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm6.7", ROMREGION_ERASEFF )
+
+ ROM_REGION32_BE( USER4REGION_LENGTH, "old4", ROMREGION_ERASEFF )
+ ROM_LOAD( "10", 0x0000000, 0x800000, CRC(ba7f76b2) SHA1(6b396596dea009b34af17484919ae37eda53ec65) )
+ ROM_LOAD( "20", 0x0800000, 0x800000, CRC(5ca8faba) SHA1(71c12638ae7fa38b362d68c3ccb4bb3ccd67f0e9) )
+ ROM_REGION16_BE( USER5REGION_LENGTH, "old5", ROMREGION_ERASEFF )
+ ROM_LOAD( "30", 0x0000000, 0x800000, CRC(b37cf960) SHA1(60310f95e4ecedee85846c08ccba71e286cda73b) )
+ ROM_LOAD( "31", 0x0800000, 0x800000, CRC(450ec982) SHA1(1cb3626b8479997c4f1b29c41c81cac038fac31b) )
+ ROM_LOAD( "40", 0x1000000, 0x800000, CRC(632c965f) SHA1(9a46b759f5dee35411fd6446c2457c084a6dfcd8) )
+ ROM_LOAD( "41", 0x1800000, 0x800000, CRC(7a4c5f33) SHA1(f33cdfe247c7caf9d3d394499712f72ca930705e) )
+ ROM_LOAD( "50", 0x2000000, 0x800000, CRC(8562358e) SHA1(8ed78f6b106659a3e4d94f38f8a354efcbdf3aa7) )
+ ROM_LOAD( "51mh", 0x2800000, 0x800000, CRC(798b8f73) SHA1(96e81538b72302d799353f5a2c18ac957727d822) )
+ ROM_LOAD( "60", 0x3000000, 0x800000, CRC(bc9487b7) SHA1(bc2cd2d3551cc20aa231bba425ff721570735eba) )
+ ROM_LOAD( "61", 0x3800000, 0x800000, CRC(b813a1b1) SHA1(16de0ee3dfd6bf33d07b0ff2e797ebe2cfe6589e) )
+ROM_END
+
+ROM_START( sfiii3ng )
+ ROM_REGION32_BE( 0x080000, "bios", 0 )
+ ROM_LOAD( "sfiii3_japan_nocd.29f400.u2", 0x000000, 0x080000, CRC(1edc6366) SHA1(60b4b9adeb030a33059d74fdf03873029e465b52) )
+
+ ROM_REGION( 0x200000, "simm1.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm6.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm6.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm6.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm6.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm6.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm6.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm6.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm6.7", ROMREGION_ERASEFF )
+
+ ROM_REGION32_BE( USER4REGION_LENGTH, "old4", ROMREGION_ERASEFF )
+ ROM_LOAD( "10g", 0x0000000, 0x800000, CRC(22cc7988) SHA1(35eedb2cea53d88a6212ecec9f9810c69736481e) )
+ ROM_LOAD( "20", 0x0800000, 0x800000, CRC(5ca8faba) SHA1(71c12638ae7fa38b362d68c3ccb4bb3ccd67f0e9) )
+ ROM_REGION16_BE( USER5REGION_LENGTH, "old5", ROMREGION_ERASEFF )
+ ROM_LOAD( "30", 0x0000000, 0x800000, CRC(b37cf960) SHA1(60310f95e4ecedee85846c08ccba71e286cda73b) )
+ ROM_LOAD( "31", 0x0800000, 0x800000, CRC(450ec982) SHA1(1cb3626b8479997c4f1b29c41c81cac038fac31b) )
+ ROM_LOAD( "40", 0x1000000, 0x800000, CRC(632c965f) SHA1(9a46b759f5dee35411fd6446c2457c084a6dfcd8) )
+ ROM_LOAD( "41", 0x1800000, 0x800000, CRC(7a4c5f33) SHA1(f33cdfe247c7caf9d3d394499712f72ca930705e) )
+ ROM_LOAD( "50", 0x2000000, 0x800000, CRC(8562358e) SHA1(8ed78f6b106659a3e4d94f38f8a354efcbdf3aa7) )
+ ROM_LOAD( "51", 0x2800000, 0x800000, CRC(7baf234b) SHA1(38feb45d6315d771de5f9ae965119cb25bae2a1e) )
+ ROM_LOAD( "60", 0x3000000, 0x800000, CRC(bc9487b7) SHA1(bc2cd2d3551cc20aa231bba425ff721570735eba) )
+ ROM_LOAD( "61", 0x3800000, 0x800000, CRC(b813a1b1) SHA1(16de0ee3dfd6bf33d07b0ff2e797ebe2cfe6589e) )
+ROM_END
+
+ROM_START( sfiii3np )
+ ROM_REGION32_BE( 0x080000, "bios", 0 )
+ ROM_LOAD( "sfiii3_japan_nocd.29f400.u2", 0x000000, 0x080000, CRC(1edc6366) SHA1(60b4b9adeb030a33059d74fdf03873029e465b52) )
+
+ ROM_REGION( 0x200000, "simm1.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm6.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm6.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm6.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm6.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm6.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm6.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm6.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm6.7", ROMREGION_ERASEFF )
+
+ ROM_REGION32_BE( USER4REGION_LENGTH, "old4", ROMREGION_ERASEFF )
+ ROM_LOAD( "10p", 0x0000000, 0x800000, CRC(b13c6fa5) SHA1(5e8e3a3bfb2f5a18cf14a04e75a6abb5ddc807be) )
+ ROM_LOAD( "20", 0x0800000, 0x800000, CRC(5ca8faba) SHA1(71c12638ae7fa38b362d68c3ccb4bb3ccd67f0e9) )
+ ROM_REGION16_BE( USER5REGION_LENGTH, "old5", ROMREGION_ERASEFF )
+ ROM_LOAD( "30", 0x0000000, 0x800000, CRC(b37cf960) SHA1(60310f95e4ecedee85846c08ccba71e286cda73b) )
+ ROM_LOAD( "31", 0x0800000, 0x800000, CRC(450ec982) SHA1(1cb3626b8479997c4f1b29c41c81cac038fac31b) )
+ ROM_LOAD( "40", 0x1000000, 0x800000, CRC(632c965f) SHA1(9a46b759f5dee35411fd6446c2457c084a6dfcd8) )
+ ROM_LOAD( "41", 0x1800000, 0x800000, CRC(7a4c5f33) SHA1(f33cdfe247c7caf9d3d394499712f72ca930705e) )
+ ROM_LOAD( "50", 0x2000000, 0x800000, CRC(8562358e) SHA1(8ed78f6b106659a3e4d94f38f8a354efcbdf3aa7) )
+ ROM_LOAD( "51", 0x2800000, 0x800000, CRC(7baf234b) SHA1(38feb45d6315d771de5f9ae965119cb25bae2a1e) )
+ ROM_LOAD( "60", 0x3000000, 0x800000, CRC(bc9487b7) SHA1(bc2cd2d3551cc20aa231bba425ff721570735eba) )
+ ROM_LOAD( "61", 0x3800000, 0x800000, CRC(b813a1b1) SHA1(16de0ee3dfd6bf33d07b0ff2e797ebe2cfe6589e) )
+ROM_END
+
+
+ROM_START( sfiii4rd )
+ ROM_REGION32_BE( 0x080000, "bios", 0 ) /* bios region */
+ ROM_LOAD( "sfiii3_japan_nocd.29f400.u2", 0x000000, 0x080000, CRC(1edc6366) SHA1(60b4b9adeb030a33059d74fdf03873029e465b52) )
+
+ ROM_REGION( 0x200000, "simm1.0", 0 )
+ ROM_LOAD( "4rd-simm1.0", 0x00000, 0x200000, CRC(6bef26b4) SHA1(fb643d5fc5be4464374773a651ab4b5c51826047) ) // sldh
+ ROM_REGION( 0x200000, "simm1.1", 0 )
+ ROM_LOAD( "4rd-simm1.1", 0x00000, 0x200000, CRC(37ee88ed) SHA1(180e5ee309ad3898ac385b9add38fbec80cc1dce) ) // sldh
+ ROM_REGION( 0x200000, "simm1.2", 0 )
+ ROM_LOAD( "4rd-simm1.2", 0x00000, 0x200000, CRC(120139f0) SHA1(a5365ac00c75ee0e20f6c7b5a0bcee543c8582be) ) // sldh
+ ROM_REGION( 0x200000, "simm1.3", 0 )
+ ROM_LOAD( "4rd-simm1.3", 0x00000, 0x200000, CRC(b32e4fcc) SHA1(32bd359ca1747fa92691bd5471ba767456cc4dbb) ) // sldh
+
+ ROM_REGION( 0x200000, "simm2.0", 0 )
+ ROM_LOAD( "sfiii3-simm2.0", 0x00000, 0x200000, CRC(06eb969e) SHA1(d89f6a6585b76692d57d337f0f8186398fb056da) )
+ ROM_REGION( 0x200000, "simm2.1", 0 )
+ ROM_LOAD( "sfiii3-simm2.1", 0x00000, 0x200000, CRC(e7039f82) SHA1(8e81e66b5a4f45ae14b070a491bde47a6a74499f) )
+ ROM_REGION( 0x200000, "simm2.2", 0 )
+ ROM_LOAD( "sfiii3-simm2.2", 0x00000, 0x200000, CRC(645c96f7) SHA1(06d5a54874d4bf100b776131ec9060da209ad037) )
+ ROM_REGION( 0x200000, "simm2.3", 0 )
+ ROM_LOAD( "sfiii3-simm2.3", 0x00000, 0x200000, CRC(610efab1) SHA1(bbc21ed6ff6220ff6017a3f02ebd9a341fbc9040) )
+
+ ROM_REGION( 0x200000, "simm3.0", 0 )
+ ROM_LOAD( "sfiii3-simm3.0", 0x00000, 0x200000, CRC(7baa1f79) SHA1(3f409df28c24dd7221966b5340d59898ea756b6f) )
+ ROM_REGION( 0x200000, "simm3.1", 0 )
+ ROM_LOAD( "sfiii3-simm3.1", 0x00000, 0x200000, CRC(234bf8fe) SHA1(2191781ae4d726cab28de97f27efa4a13f3bdd69) )
+ ROM_REGION( 0x200000, "simm3.2", 0 )
+ ROM_LOAD( "sfiii3-simm3.2", 0x00000, 0x200000, CRC(d9ebc308) SHA1(af6a0dca77e5181c9f20533a06760a782c5fd51d) )
+ ROM_REGION( 0x200000, "simm3.3", 0 )
+ ROM_LOAD( "sfiii3-simm3.3", 0x00000, 0x200000, CRC(293cba77) SHA1(294604cacdc24261aec4d39e489de91c41fa1758) )
+ ROM_REGION( 0x200000, "simm3.4", 0 )
+ ROM_LOAD( "sfiii3-simm3.4", 0x00000, 0x200000, CRC(6055e747) SHA1(3813852c5a4a5355ef739ca8f0913bbd390b984b) )
+ ROM_REGION( 0x200000, "simm3.5", 0 )
+ ROM_LOAD( "sfiii3-simm3.5", 0x00000, 0x200000, CRC(499aa6fc) SHA1(5b9b6eab3e99ff3e1d7c1f50b9d8bc6a81f3f8a9) )
+ ROM_REGION( 0x200000, "simm3.6", 0 )
+ ROM_LOAD( "sfiii3-simm3.6", 0x00000, 0x200000, CRC(6c13879e) SHA1(de189b0b8f42bc7dd89983e62bc2ecb4237b3277) )
+ ROM_REGION( 0x200000, "simm3.7", 0 )
+ ROM_LOAD( "sfiii3-simm3.7", 0x00000, 0x200000, CRC(cf4f8ede) SHA1(e0fb68fcb0e445f824c62fa828d6e1dcd7e3683a) )
+
+ ROM_REGION( 0x200000, "simm4.0", 0 )
+ ROM_LOAD( "sfiii3-simm4.0", 0x00000, 0x200000, CRC(091fd5ba) SHA1(3327ad7c2623c119bf728af717ea2ce3b74673a9) )
+ ROM_REGION( 0x200000, "simm4.1", 0 )
+ ROM_LOAD( "sfiii3-simm4.1", 0x00000, 0x200000, CRC(0bca8917) SHA1(b7b284e2f16f46d46bcfaae779b232c5b980924f) )
+ ROM_REGION( 0x200000, "simm4.2", 0 )
+ ROM_LOAD( "sfiii3-simm4.2", 0x00000, 0x200000, CRC(a0fd578b) SHA1(100c9db9f00ecd88d518076f5a0822e6ac3695b3) )
+ ROM_REGION( 0x200000, "simm4.3", 0 )
+ ROM_LOAD( "sfiii3-simm4.3", 0x00000, 0x200000, CRC(4bf8c699) SHA1(2c0b4288b5ebc5e54d9e782dfc39eb8c78fd4c21) )
+ ROM_REGION( 0x200000, "simm4.4", 0 )
+ ROM_LOAD( "sfiii3-simm4.4", 0x00000, 0x200000, CRC(137b8785) SHA1(56a579520a8ce2abbf36be57777f024e80474eee) )
+ ROM_REGION( 0x200000, "simm4.5", 0 )
+ ROM_LOAD( "sfiii3-simm4.5", 0x00000, 0x200000, CRC(4fb70671) SHA1(9aba83c18cfc099a5ce18793119bff0c2b9c777f) )
+ ROM_REGION( 0x200000, "simm4.6", 0 )
+ ROM_LOAD( "sfiii3-simm4.6", 0x00000, 0x200000, CRC(832374a4) SHA1(c84629e32fbf47cb7b5b4ee7555bfc2ac9b3857f) )
+ ROM_REGION( 0x200000, "simm4.7", 0 )
+ ROM_LOAD( "sfiii3-simm4.7", 0x00000, 0x200000, CRC(1c88576d) SHA1(0f039944d0c2305999ed5dbd351c3eb87812dc3b) )
+
+ ROM_REGION( 0x200000, "simm5.0", 0 )
+ ROM_LOAD( "sfiii3-simm5.0", 0x00000, 0x200000, CRC(c67d9190) SHA1(d265475244099d0ec153059986f3445c7bd910a3) )
+ ROM_REGION( 0x200000, "simm5.1", 0 )
+ ROM_LOAD( "sfiii3-simm5.1", 0x00000, 0x200000, CRC(6cb79868) SHA1(c94237f30e05bfcb2e23945530c812d9e4c73416) )
+ ROM_REGION( 0x200000, "simm5.2", 0 )
+ ROM_LOAD( "sfiii3-simm5.2", 0x00000, 0x200000, CRC(df69930e) SHA1(c76b7c559a1d5558138afbc796249efa2f49f6a8) )
+ ROM_REGION( 0x200000, "simm5.3", 0 )
+ ROM_LOAD( "sfiii3-simm5.3", 0x00000, 0x200000, CRC(333754e0) SHA1(4c18a569c26524a492ecd6f4c8b3c8e803a077d3) )
+ ROM_REGION( 0x200000, "simm5.4", 0 )
+ ROM_LOAD( "sfiii3-simm5.4", 0x00000, 0x200000, CRC(78f6d417) SHA1(a69577cc5399fcf0a24548661168f27f3e7e8e40) )
+ ROM_REGION( 0x200000, "simm5.5", 0 )
+ ROM_LOAD( "sfiii3-simm5.5", 0x00000, 0x200000, CRC(8ccad9b1) SHA1(f8bda399f87be2497b7ac39e9661f9863bf4f873) )
+ ROM_REGION( 0x200000, "simm5.6", 0 )
+ ROM_LOAD( "4rd-simm5.6", 0x00000, 0x200000, CRC(e9b61a56) SHA1(9277ac5da4715aa5325ae9f8c055f1e826b4ce54) )
+ ROM_REGION( 0x200000, "simm5.7", 0 )
+ ROM_LOAD( "4rd-simm5.7", 0x00000, 0x200000, CRC(8db3a249) SHA1(db38963ce011535a95f11426c17fb3eeda300917) )
+
+ ROM_REGION( 0x200000, "simm6.0", 0 )
+ ROM_LOAD( "sfiii3-simm6.0", 0x00000, 0x200000, CRC(8da69042) SHA1(fd3d08295342635b2136e48d543c9350d287bb22) )
+ ROM_REGION( 0x200000, "simm6.1", 0 )
+ ROM_LOAD( "sfiii3-simm6.1", 0x00000, 0x200000, CRC(1c8c7ac4) SHA1(ac9f8353a4c356ef98aa7c226baba00b01f5a80f) )
+ ROM_REGION( 0x200000, "simm6.2", 0 )
+ ROM_LOAD( "sfiii3-simm6.2", 0x00000, 0x200000, CRC(a671341d) SHA1(636f4c04962bc1e1ddb29d2e01244b00389b234f) )
+ ROM_REGION( 0x200000, "simm6.3", 0 )
+ ROM_LOAD( "sfiii3-simm6.3", 0x00000, 0x200000, CRC(1a990249) SHA1(2acc639e2c0c53bf24096b8620eab090bc25d03b) )
+ ROM_REGION( 0x200000, "simm6.4", 0 )
+ ROM_LOAD( "sfiii3-simm6.4", 0x00000, 0x200000, CRC(20cb39ac) SHA1(7d13a0fea1ef719dd2ff77dfb547d53c6023cc9e) )
+ ROM_REGION( 0x200000, "simm6.5", 0 )
+ ROM_LOAD( "sfiii3-simm6.5", 0x00000, 0x200000, CRC(5f844b2f) SHA1(564e4934f89ed3b92a4c4874519f8f00f3b48696) )
+ ROM_REGION( 0x200000, "simm6.6", 0 )
+ ROM_LOAD( "sfiii3-simm6.6", 0x00000, 0x200000, CRC(450e8d28) SHA1(885db658132aa27926df617ec2d2a1f38abdbb60) )
+ ROM_REGION( 0x200000, "simm6.7", 0 )
+ ROM_LOAD( "sfiii3-simm6.7", 0x00000, 0x200000, CRC(cc5f4187) SHA1(248ddace21ed4736a56e92f77cc6ad219d7fef0b) )
+ROM_END
+
+
+
+GAME( 2009, jojobbh2, jojoba, jojoba, cps3_jojo, cps3_hbmame, jojoban, ROT0, "Pipi899", "JoJo's Bizarre Adventure (Boss v2.0 hack by Pipi899 2009-08-08)", 0 )
+GAME( 2009, jojobbss, jojoba, jojoba, cps3_jojo, cps3_hbmame, jojoban, ROT0, "Pipi899", "JoJo's Bizarre Adventure (Boss hack by Pipi899 2009-07-15)", 0 )
+GAME( 2009, jojobpow, jojoba, jojoba, cps3_jojo, cps3_hbmame, jojoban, ROT0, "Pipi899", "JoJo's Bizarre Adventure (Power hack by Pipi899 2009-07-15)", 0 )
+GAME( 2009, jojonbss, jojo, jojo, cps3_jojo, cps3_hbmame, jojon, ROT0, "Pipi899", "JoJo's Venture (Boss hack by Pipi899 2009-07-09)", 0 )
+GAME( 2009, jojonpow, jojo, jojo, cps3_jojo, cps3_hbmame, jojon, ROT0, "Pipi899", "JoJo's Venture (Power hack by Pipi899 2009-07-11)", 0 )
+GAME( 1996, redeartn, redearth, redeartn, cps3_ren, cps3_state, redearth, ROT0, "Capcom", "Red Earth (Asia 961121, NO CD)", 0 )
+GAME( 1996, redeartno, redearth, redeartn, cps3_ren, cps3_hbmame, redeartno, ROT0, "Capcom", "Red Earth (Euro 961121, NO CD)", 0 )
+GAME( 2009, redearex, redearth, redeartn, cps3_ren, cps3_hbmame, redeartno, ROT0, "Pipi899", "Red Earth (Ex Super Version hack by Pipi899 2009-09-08)", 0 )
+GAME( 2009, sfiiibhp, sfiii, sfiii, cps3, cps3_hbmame, sfiiin, ROT0, "Pipi899", "Street Fighter III: New Generation (Boss hack by Pipi899 2009-08-08)", 0 )
+GAME( 2009, sfiiipmp, sfiii, sfiii, cps3, cps3_hbmame, sfiiin, ROT0, "Pipi899", "Street Fighter III: New Generation (Power hack by Pipi899 2009-07-06)", 0 )
+GAMEL(1997, sfiii2bh, sfiii2, sfiii2, cps3, cps3_hbmame, sfiii2n, ROT0, "Yumeji", "Street Fighter III 2nd Impact: Giant Attack (Boss hack by Yumeji)", 0, layout_sfiii2 )
+GAMEL(2009, sfiii2np, sfiii2, sfiii2, cps3, cps3_hbmame, sfiii2n, ROT0, "Pipi899", "Street Fighter III 2nd Impact: Giant Attack (Power hack by Pipi899 2009-07-14)", 0, layout_sfiii2 )
+GAMEL(1997, sfiii2pl, sfiii2, sfiii2, cps3, cps3_hbmame, sfiii2n, ROT0, "Krysofun", "Street Fighter III 2nd Impact: Giant Attack (Plus v1.0 hack by Krysofun)", 0, layout_sfiii2 )
+GAME( 2013, sfiii3an, sfiii3, sfiii3, cps3, cps3_state, sfiii3, ROT0, "hack", "Street Fighter III 3rd Strike: Ford Strike (Japan 990608, NO CD)", 0 )
+GAME( 1999, sfiii3bh, sfiii3, sfiii3, cps3, cps3_hbmame, sfiii3n, ROT0, "Yumeji", "Street Fighter III 3rd Strike: Fight for the Future (Boss hack by Yumeji)", 0 )
+GAME( 1999, sfiii3mh, sfiii3, sfiii3, cps3, cps3_hbmame, sfiii3n, ROT0, "hack", "Street Fighter III 3rd Strike: Fight for the Future (Makoto Color hack)", 0 )
+GAME( 2009, sfiii3ng, sfiii3, sfiii3, cps3, cps3_hbmame, sfiii3n, ROT0, "Pipi899", "Street Fighter III 3rd Strike: Fight for the Future (Gill Unable Reactivating hack by Pipi899 2009-07-14)", 0 )
+GAME( 2009, sfiii3np, sfiii3, sfiii3, cps3, cps3_hbmame, sfiii3n, ROT0, "Pipi899", "Street Fighter III 3rd Strike: Fight for the Future (Power hack by Pipi899 2009-07-14)", 0 )
+GAME( 2013, sfiii4rd, sfiii3, sfiii3, cps3, cps3_state, sfiii3, ROT0, "hack", "Street Fighter III 3rd Strike: 4rd Arrange Edition (Japan 990608, NO CD)", 0 )
diff --git a/docs/release/src/hbmame/drivers/dec0.cpp b/docs/release/src/hbmame/drivers/dec0.cpp
new file mode 100644
index 00000000000..606558a7e56
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/dec0.cpp
@@ -0,0 +1,106 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/dec0.cpp"
+
+ROM_START( baddudef )
+ ROM_REGION( 0x60000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "baddudef.4", 0x00000, 0x10000, CRC(1a0667ae) SHA1(a530bfe91aa8b489ef7c1368b81983e760d0d993) )
+ ROM_LOAD16_BYTE( "baddudef.1", 0x00001, 0x10000, CRC(14d71614) SHA1(282fe93c04791e48a963ee78e69753e54c51e779) )
+ ROM_LOAD16_BYTE( "ei06.6c", 0x40000, 0x10000, CRC(3ff8da57) SHA1(eea8125a3eac33d76d22e72b69633eaae138efe5) )
+ ROM_LOAD16_BYTE( "ei03.6a", 0x40001, 0x10000, CRC(f8f2bd94) SHA1(622c66fea00cabb2cce16bf621b07d38a660708d) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound CPU */
+ ROM_LOAD( "ei07.8a", 0x8000, 0x8000, CRC(9fb1ef4b) SHA1(f4dd0773be93c2ad8b0faacd12939c531b5aa130) )
+
+ ROM_REGION( 0x10000, "gfx1", 0 ) /* chars */
+ ROM_LOAD( "ei25.15j", 0x00000, 0x08000, CRC(bcf59a69) SHA1(486727e19c12ea55b47e2ef773d0d0471cf50083) )
+ ROM_LOAD( "baddudef.26", 0x08000, 0x08000, CRC(bb8d93d0) SHA1(64a462c86cf270b3aa3e359b0f423a816e9dafb6) )
+
+ ROM_REGION( 0x40000, "gfx2", 0 ) /* tiles */
+ ROM_LOAD( "ei18.14d", 0x00000, 0x10000, CRC(05cfc3e5) SHA1(a0163921c77dc9706463a402c3dd45ec4341cd21) )
+ ROM_LOAD( "ei20.17d", 0x10000, 0x10000, CRC(e11e988f) SHA1(0c59f0d8d1abe414c7e1ebd49d454179fed2cd00) )
+ ROM_LOAD( "ei22.14f", 0x20000, 0x10000, CRC(b893d880) SHA1(99e228174677f2e3e96154f77bfa9bf0f1c0a6a5) )
+ ROM_LOAD( "ei24.17f", 0x30000, 0x10000, CRC(6f226dda) SHA1(65ebb16a292c57d49c135fce7ed7537146226eb5) )
+
+ ROM_REGION( 0x20000, "gfx3", 0 ) /* tiles */
+ ROM_LOAD( "ei30.9j", 0x08000, 0x08000, CRC(982da0d1) SHA1(d819a587905624d793988f2ea726783da527d9f2) )
+ ROM_CONTINUE( 0x00000, 0x08000 ) /* the two halves are swapped */
+ ROM_LOAD( "ei28.9f", 0x18000, 0x08000, CRC(f01ebb3b) SHA1(1686690cb0c87d9e687b2abb4896cf285ab8378f) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x80000, "gfx4", 0 ) /* sprites */
+ ROM_LOAD( "ei15.16c", 0x00000, 0x10000, CRC(a38a7d30) SHA1(5cb1fb97605829fc733c79a7e169fa52adc6863b) )
+ ROM_LOAD( "ei16.17c", 0x10000, 0x08000, CRC(17e42633) SHA1(405f5296a741901677cca978a1b287d894eb1e54) )
+ ROM_LOAD( "ei11.16a", 0x20000, 0x10000, CRC(3a77326c) SHA1(4de81752329cde6210a9c250a9f8ebe3dad9fe92) )
+ ROM_LOAD( "ei12.17a", 0x30000, 0x08000, CRC(fea2a134) SHA1(525dd5f48993db1fe1e3c095442884178f75e8e0) )
+ ROM_LOAD( "ei13.13c", 0x40000, 0x10000, CRC(e5ae2751) SHA1(4e4a3c68b11e9b0c8da70121b23296128063d4e9) )
+ ROM_LOAD( "ei14.14c", 0x50000, 0x08000, CRC(e83c760a) SHA1(d08db381658b8b3288c5eaa9048a906126e0f712) )
+ ROM_LOAD( "ei09.13a", 0x60000, 0x10000, CRC(6901e628) SHA1(1162c8cee20450780774cad54a9af40ebf0f0826) )
+ ROM_LOAD( "ei10.14a", 0x70000, 0x08000, CRC(eeee8a1a) SHA1(2bf8378ff38f6a7c7cbd4cbd489de25cb1f0fe71) )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* ADPCM samples */
+ ROM_LOAD( "ei08.2c", 0x0000, 0x10000, CRC(3c87463e) SHA1(f17c98507b562e91e9b27599614b3249fe68ff7a) )
+
+ ROM_REGION( 0x1000, "mcu", 0 ) /* i8751 microcontroller */
+ ROM_LOAD( "ei31.9a", 0x0000, 0x1000, CRC(2a8745d2) SHA1(f15ab17b1e7836d603135f5c66ca2e3d72f6e4a2) )
+ROM_END
+
+// There are 3 screens. Press 1 very lightly to advance.
+// On first screen, press Left & Right to move 'CHAOS' around.
+ROM_START( decodemo )
+ ROM_REGION( 0x60000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "decodemo.4", 0x00000, 0x10000, CRC(7cb53ab2) SHA1(c06f8173f5b27b647b186e1c3a198ec22dab4950) )
+ ROM_LOAD16_BYTE( "decodemo.1", 0x00001, 0x10000, CRC(920dd0bf) SHA1(e69e60121812716b55f4e9c4b3f4993171c5296a) )
+ ROM_LOAD16_BYTE( "decodemo.6", 0x40000, 0x10000, CRC(d7978eeb) SHA1(1adc95bebe9eea8c112d40cd04ab7a8d75c4f961) )
+ ROM_LOAD16_BYTE( "decodemo.3", 0x40001, 0x10000, CRC(d7978eeb) SHA1(1adc95bebe9eea8c112d40cd04ab7a8d75c4f961) )
+
+ // The instruction [33C0 0030 C003] [move.w D0, $30C003.l] is considered illegal, we need to patch out all 3 occurrences
+ //ROM_FILL( 0x04ba, 1, 0x4e )
+ //ROM_FILL( 0x04bb, 1, 0x71 ) /* write a nop instruction [4e71] */
+ //ROM_COPY( "maincpu", 0x04ba, 0x04bc, 2 ) /* The faulty instruction is 6 bytes long, so we need 3 nops */
+ //ROM_COPY( "maincpu", 0x04ba, 0x04be, 2 )
+ //ROM_COPY( "maincpu", 0x04ba, 0x04e8, 6 ) /* copy the 3 nops to 0x4e8 */
+ //ROM_COPY( "maincpu", 0x04ba, 0x096e, 6 ) /* and 0x96e */
+
+ // Text stopped working when bac06 device was rewritten. We send a 1 to pf_control_0 to fix it.
+ ROM_FILL( 0x04d8, 1, 0x33 )
+ ROM_FILL( 0x04d9, 1, 0xfc )
+ ROM_FILL( 0x04da, 6, 0x00 )
+ ROM_FILL( 0x04db, 1, 0x01 )
+ ROM_FILL( 0x04dd, 1, 0x24 )
+ ROM_FILL( 0x04e0, 1, 0x67 )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound CPU */
+ ROM_LOAD( "ei07.8a", 0x8000, 0x8000, CRC(9fb1ef4b) SHA1(f4dd0773be93c2ad8b0faacd12939c531b5aa130) )
+
+ ROM_REGION( 0x10000, "gfx1", 0 ) /* chars */
+ ROM_LOAD( "decodemo.25", 0x00000, 0x08000, CRC(011ffca6) SHA1(5188431849b4613152fd7bdba6a3ff0a4fd6424b) )
+ ROM_LOAD( "decodemo.26", 0x08000, 0x08000, CRC(14b56f44) SHA1(66c294b27400d3f3cafd7b1f633681df7195a14b) )
+
+ ROM_REGION( 0x40000, "gfx2", 0 ) /* tiles */
+ ROM_LOAD( "decodemo.18", 0x00000, 0x10000, CRC(53ac4058) SHA1(b6bd668085a6f2c21c66f38955e27ab384a5ebf1) )
+ ROM_LOAD( "decodemo.20", 0x10000, 0x10000, CRC(64f1ca83) SHA1(a8922226dc4f67873c0eb32a0da5e920b9e08e49) )
+ ROM_LOAD( "decodemo.22", 0x20000, 0x10000, CRC(e93c5aef) SHA1(bd31b2418a3e3c76c0018d43e9b106895218dae7) )
+ ROM_LOAD( "decodemo.24", 0x30000, 0x10000, CRC(ae2556dc) SHA1(ffcc1f7e8ec25ba35d20cedb6cb4010ea9ff409d) )
+
+ ROM_REGION( 0x20000, "gfx3", 0 ) /* tiles */
+ ROM_LOAD( "decodemo.30", 0x08000, 0x08000, CRC(9b02b8f8) SHA1(665764ac534ad370545f33d210846e69db558f6f) )
+ ROM_CONTINUE( 0x00000, 0x08000 ) /* the two halves are swapped */
+ ROM_LOAD( "decodemo.28", 0x18000, 0x08000, CRC(596b92f2) SHA1(a15f4435a3dcfa7d6a45610fccb8607ae9b8fa19) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x80000, "gfx4", ROMREGION_ERASE00 ) /* sprites */
+ ROM_LOAD( "decodemo.15", 0x00000, 0x10000, CRC(4a051829) SHA1(ed560a3ffb9b1d83c3291145e0e938016dd1fa5a) )
+ ROM_LOAD( "decodemo.11", 0x20000, 0x10000, CRC(d7978eeb) SHA1(1adc95bebe9eea8c112d40cd04ab7a8d75c4f961) )
+ ROM_LOAD( "decodemo.13", 0x40000, 0x10000, CRC(a58d1d9e) SHA1(ebd22872e0230da23d0e63ef7fbe2b5988cd93bd) )
+ ROM_LOAD( "decodemo.9", 0x60000, 0x10000, CRC(4d1de58f) SHA1(1979fb6d9cdc25033c75fd3f0c30fb56e040ddc0) )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* ADPCM samples */
+ ROM_LOAD( "ei08.2c", 0x0000, 0x10000, CRC(3c87463e) SHA1(f17c98507b562e91e9b27599614b3249fe68ff7a) )
+
+ ROM_REGION( 0x1000, "mcu", 0 ) /* i8751 microcontroller */
+ ROM_LOAD( "ei31.9a", 0x0000, 0x1000, CRC(2a8745d2) SHA1(f15ab17b1e7836d603135f5c66ca2e3d72f6e4a2) )
+ROM_END
+
+GAME( 2007, baddudef, baddudes, baddudes, baddudes, dec0_state, hbarrel, ROT0, "Arkatrad", "Bad Dudes vs. Dragonninja (French)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, decodemo, baddudes, baddudes, baddudes, dec0_state, hbarrel, ROT0, "Charles Doty", "Demo - Data East", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/dkong.cpp b/docs/release/src/hbmame/drivers/dkong.cpp
new file mode 100644
index 00000000000..b744b23d8f1
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/dkong.cpp
@@ -0,0 +1,284 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/dkong.cpp"
+
+static INPUT_PORTS_START( dkongex )
+ PORT_INCLUDE( dkong )
+ PORT_MODIFY("DSW0")
+ PORT_DIPNAME( 0x70, 0x00, DEF_STR( Coinage ) )
+ PORT_DIPSETTING( 0x70, "Freeplay" )
+ PORT_DIPSETTING( 0x50, DEF_STR( 4C_1C ) )
+ PORT_DIPSETTING( 0x30, DEF_STR( 3C_1C ) )
+ PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
+ PORT_DIPSETTING( 0x20, DEF_STR( 1C_2C ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( 1C_3C ) )
+ PORT_DIPSETTING( 0x60, DEF_STR( 1C_4C ) )
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( dkrdemo )
+ PORT_INCLUDE( dkong )
+ PORT_MODIFY("DSW0")
+ PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) ) PORT_DIPLOCATION( "SW1:!1,!2" )
+ PORT_DIPSETTING( 0x00, "3" )
+ PORT_DIPSETTING( 0x01, "5" )
+ PORT_DIPSETTING( 0x02, "7" )
+ PORT_DIPSETTING( 0x03, "9" )
+ PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION( "SW1:!3,!4" )
+ PORT_DIPSETTING( 0x00, "10000" )
+ PORT_DIPSETTING( 0x04, "15000" ) // and each additional 150k
+ PORT_DIPSETTING( 0x08, "25000" ) // and each additional 250k
+ PORT_DIPSETTING( 0x0c, "35000" ) // and each additional 350k
+ PORT_DIPNAME( 0x30, 0x00, DEF_STR( Coinage ) ) PORT_DIPLOCATION( "SW1:!5,!6" )
+ PORT_DIPSETTING( 0x30, "Free Play" )
+ PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
+ PORT_DIPSETTING( 0x20, DEF_STR( 1C_2C ) )
+ PORT_DIPNAME( 0x40, 0x00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION( "SW1:!8" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Normal ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( Hard ) )
+ PORT_DIPNAME( 0x80, 0x80, DEF_STR( Cabinet ) ) PORT_DIPLOCATION( "SW1:!8" )
+ PORT_DIPSETTING( 0x80, DEF_STR( Upright ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
+INPUT_PORTS_END
+
+
+
+/* same as mame 'dkongf' except 4th rom is different */
+ROM_START( dkongex )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "dk_f.5et", 0x0000, 0x1000, CRC(00b7efaf) SHA1(97ed5930eb5d0cb98a9008b1d329ba7f3b8b8dbf) )
+ ROM_LOAD( "dk_f.5ct", 0x1000, 0x1000, CRC(88af9b69) SHA1(c5621dd8198c333b3fa32fdece60ee5a3d8b2276) )
+ ROM_LOAD( "dk_f.5bt", 0x2000, 0x1000, CRC(de74ad91) SHA1(c80227361bdbc565e9f5764e6364b52d40ca778a) )
+ ROM_LOAD( "dkongex.5at", 0x3000, 0x1000, CRC(9fa3e5b7) SHA1(5c34170f762a147d5285d17d6689fd64dab99ff2) )
+
+ ROM_REGION( 0x1800, "soundcpu", 0 )
+ ROM_LOAD( "s_3i_b.bin", 0x0000, 0x0800, CRC(45a4ed06) SHA1(144d24464c1f9f01894eb12f846952290e6e32ef) )
+ ROM_RELOAD( 0x0800, 0x0800 )
+ ROM_LOAD( "s_3j_b.bin", 0x1000, 0x0800, CRC(4743fe92) SHA1(6c82b57637c0212a580591397e6a5a1718f19fd2) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "v_5h_b.bin", 0x0000, 0x0800, CRC(12c8c95d) SHA1(a57ff5a231c45252a63b354137c920a1379b70a3) )
+ ROM_LOAD( "v_3pt.bin", 0x0800, 0x0800, CRC(15e9c5e9) SHA1(976eb1e18c74018193a35aa86cff482ebfc5cc4e) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "l_4m_b.bin", 0x0000, 0x0800, CRC(59f8054d) SHA1(793dba9bf5a5fe76328acdfb90815c243d2a65f1) )
+ ROM_LOAD( "l_4n_b.bin", 0x0800, 0x0800, CRC(672e4714) SHA1(92e5d379f4838ac1fa44d448ce7d142dae42102f) )
+ ROM_LOAD( "l_4r_b.bin", 0x1000, 0x0800, CRC(feaa59ee) SHA1(ecf95db5a20098804fc8bd59232c66e2e0ed3db4) )
+ ROM_LOAD( "l_4s_b.bin", 0x1800, 0x0800, CRC(20f2ef7e) SHA1(3bc482a38bf579033f50082748ee95205b0f673d) )
+
+ ROM_REGION( 0x0300, "proms", 0 )
+ ROM_LOAD( "c-2k.bpr", 0x0000, 0x0100, CRC(e273ede5) SHA1(b50ec9e1837c00c20fb2a4369ec7dd0358321127) )
+ ROM_LOAD( "c-2j.bpr", 0x0100, 0x0100, CRC(d6412358) SHA1(f9c872da2fe8e800574ae3bf483fb3ccacc92eb3) )
+ ROM_LOAD( "v-5e.bpr", 0x0200, 0x0100, CRC(b869b8f5) SHA1(c2bdccbf2654b64ea55cd589fd21323a9178a660) )
+ROM_END
+
+
+/* This set has the fixes proposed by Don Hodges at the page:
+ http://donhodges.com/how_high_can_you_get.htm */
+ROM_START( dkongp )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "dkongp_c_5et", 0x0000, 0x1000, CRC(2066139d) SHA1(2eaf4cd6eb18eacb210892a85147e70db58bee48) )
+ ROM_LOAD( "c_5ct_g.bin", 0x1000, 0x1000, CRC(5ec461ec) SHA1(acb11a8fbdbb3ab46068385fe465f681e3c824bd) )
+ ROM_LOAD( "c_5bt_g.bin", 0x2000, 0x1000, CRC(1c97d324) SHA1(c7966261f3a1d3296927e0b6ee1c58039fc53c1f) )
+ ROM_LOAD( "c_5at_g.bin", 0x3000, 0x1000, CRC(b9005ac0) SHA1(3fe3599f6fa7c496f782053ddf7bacb453d197c4) )
+
+ ROM_REGION( 0x1800, "soundcpu", 0 )
+ ROM_LOAD( "s_3i_b.bin", 0x0000, 0x0800, CRC(45a4ed06) SHA1(144d24464c1f9f01894eb12f846952290e6e32ef) )
+ ROM_RELOAD( 0x0800, 0x0800 )
+ ROM_LOAD( "s_3j_b.bin", 0x1000, 0x0800, CRC(4743fe92) SHA1(6c82b57637c0212a580591397e6a5a1718f19fd2) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "v_5h_b.bin", 0x0000, 0x0800, CRC(12c8c95d) SHA1(a57ff5a231c45252a63b354137c920a1379b70a3) )
+ ROM_LOAD( "v_3pt.bin", 0x0800, 0x0800, CRC(15e9c5e9) SHA1(976eb1e18c74018193a35aa86cff482ebfc5cc4e) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "l_4m_b.bin", 0x0000, 0x0800, CRC(59f8054d) SHA1(793dba9bf5a5fe76328acdfb90815c243d2a65f1) )
+ ROM_LOAD( "l_4n_b.bin", 0x0800, 0x0800, CRC(672e4714) SHA1(92e5d379f4838ac1fa44d448ce7d142dae42102f) )
+ ROM_LOAD( "l_4r_b.bin", 0x1000, 0x0800, CRC(feaa59ee) SHA1(ecf95db5a20098804fc8bd59232c66e2e0ed3db4) )
+ ROM_LOAD( "l_4s_b.bin", 0x1800, 0x0800, CRC(20f2ef7e) SHA1(3bc482a38bf579033f50082748ee95205b0f673d) )
+
+ ROM_REGION( 0x0300, "proms", 0 )
+ ROM_LOAD( "c-2k.bpr", 0x0000, 0x0100, CRC(e273ede5) SHA1(b50ec9e1837c00c20fb2a4369ec7dd0358321127) )
+ ROM_LOAD( "c-2j.bpr", 0x0100, 0x0100, CRC(d6412358) SHA1(f9c872da2fe8e800574ae3bf483fb3ccacc92eb3) )
+ ROM_LOAD( "v-5e.bpr", 0x0200, 0x0100, CRC(b869b8f5) SHA1(c2bdccbf2654b64ea55cd589fd21323a9178a660) )
+ROM_END
+
+ROM_START( dkrdemo )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "dkrdemo.5et", 0x0000, 0x1000, CRC(f9fdff29) SHA1(c2eb8f0ede8384369e17d8616f4ce063ae12b6c2) )
+ ROM_LOAD( "dkrdemo.5ct", 0x1000, 0x1000, CRC(f48cb898) SHA1(470b8bee7f55e1d828abc0b1ec4b423392c83a78) )
+ ROM_LOAD( "dkrdemo.5bt", 0x2000, 0x1000, CRC(660d43ec) SHA1(8bba334cec022ea851c4a82f6ecbc91c0708daea) )
+ ROM_LOAD( "dkrdemo.5at", 0x3000, 0x1000, CRC(e59d406c) SHA1(7698e319ae191bb8bf7deeea5c4f18da04d73f73) )
+
+ ROM_REGION( 0x1800, "soundcpu", 0 )
+ ROM_LOAD( "s_3i_b.bin", 0x0000, 0x0800, CRC(45a4ed06) SHA1(144d24464c1f9f01894eb12f846952290e6e32ef) )
+ ROM_RELOAD( 0x0800, 0x0800 )
+ ROM_LOAD( "s_3j_b.bin", 0x1000, 0x0800, CRC(4743fe92) SHA1(6c82b57637c0212a580591397e6a5a1718f19fd2) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "v_5h_b.bin", 0x0000, 0x0800, CRC(12c8c95d) SHA1(a57ff5a231c45252a63b354137c920a1379b70a3) )
+ ROM_LOAD( "v_3pt.bin", 0x0800, 0x0800, CRC(15e9c5e9) SHA1(976eb1e18c74018193a35aa86cff482ebfc5cc4e) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "l_4m_b.bin", 0x0000, 0x0800, CRC(59f8054d) SHA1(793dba9bf5a5fe76328acdfb90815c243d2a65f1) )
+ ROM_LOAD( "l_4n_b.bin", 0x0800, 0x0800, CRC(672e4714) SHA1(92e5d379f4838ac1fa44d448ce7d142dae42102f) )
+ ROM_LOAD( "l_4r_b.bin", 0x1000, 0x0800, CRC(feaa59ee) SHA1(ecf95db5a20098804fc8bd59232c66e2e0ed3db4) )
+ ROM_LOAD( "l_4s_b.bin", 0x1800, 0x0800, CRC(20f2ef7e) SHA1(3bc482a38bf579033f50082748ee95205b0f673d) )
+
+ ROM_REGION( 0x0300, "proms", 0 )
+ ROM_LOAD( "c-2k.bpr", 0x0000, 0x0100, CRC(e273ede5) SHA1(b50ec9e1837c00c20fb2a4369ec7dd0358321127) )
+ ROM_LOAD( "c-2j.bpr", 0x0100, 0x0100, CRC(d6412358) SHA1(f9c872da2fe8e800574ae3bf483fb3ccacc92eb3) )
+ ROM_LOAD( "v-5e.bpr", 0x0200, 0x0100, CRC(b869b8f5) SHA1(c2bdccbf2654b64ea55cd589fd21323a9178a660) )
+ROM_END
+
+ROM_START( kong2600 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "c_5et_g.bin", 0x0000, 0x1000, CRC(ba70b88b) SHA1(d76ebecfea1af098d843ee7e578e480cd658ac1a) )
+ ROM_LOAD( "c_5ct_g.bin", 0x1000, 0x1000, CRC(5ec461ec) SHA1(acb11a8fbdbb3ab46068385fe465f681e3c824bd) )
+ ROM_LOAD( "c_5bt_g.bin", 0x2000, 0x1000, CRC(1c97d324) SHA1(c7966261f3a1d3296927e0b6ee1c58039fc53c1f) )
+ ROM_LOAD( "c_5at_g.bin", 0x3000, 0x1000, CRC(b9005ac0) SHA1(3fe3599f6fa7c496f782053ddf7bacb453d197c4) )
+
+ ROM_REGION( 0x1800, "soundcpu", 0 )
+ ROM_LOAD( "s_3i_b.bin", 0x0000, 0x0800, CRC(45a4ed06) SHA1(144d24464c1f9f01894eb12f846952290e6e32ef) )
+ ROM_RELOAD( 0x0800, 0x0800 )
+ ROM_LOAD( "s_3j_b.bin", 0x1000, 0x0800, CRC(4743fe92) SHA1(6c82b57637c0212a580591397e6a5a1718f19fd2) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "k2600.3n", 0x0000, 0x0800, CRC(0e6a2a6d) SHA1(7ebbcb78b269184cf588b5ad0b90f449d6d4e299) )
+ ROM_LOAD( "k2600.3p", 0x0800, 0x0800, CRC(ca57e0f4) SHA1(12c7821fc9f7fee276f7aa27dd0421f565b0f469) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "k2600.7c", 0x0000, 0x0800, CRC(cf450a43) SHA1(efa772f92b890181c0823b8113e069b7c4400ede) )
+ ROM_LOAD( "k2600.7d", 0x0800, 0x0800, CRC(d5046907) SHA1(1eb08ed67f6de04c4f3cb8f449503bbedc6207bc) )
+ ROM_LOAD( "k2600.7e", 0x1000, 0x0800, CRC(1539fe2a) SHA1(ea599987a2d65ffe2d09ca0951529bde2d31b1be) )
+ ROM_LOAD( "k2600.7f", 0x1800, 0x0800, CRC(77cc00ab) SHA1(7560bf4fd65c03f28f015abf64f83fc4ad7ae512) )
+
+ ROM_REGION( 0x0300, "proms", 0 )
+ ROM_LOAD( "k2600.2k", 0x0000, 0x0100, CRC(1e82d375) SHA1(8f2da5cedd1f62be08555dd0eb929eb41da5079d) )
+ ROM_LOAD( "k2600.2j", 0x0100, 0x0100, CRC(2ab01dc8) SHA1(c25958d0706cabf997efe16fad71f454fc1ced0b) )
+ ROM_LOAD( "k2600.5f", 0x0200, 0x0100, CRC(44988665) SHA1(68c474fc81aff46eae6c9a7ac6ab80288303e291) )
+ROM_END
+
+ROM_START( nadkong )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "c_5et_g.bin", 0x0000, 0x1000, CRC(ba70b88b) SHA1(d76ebecfea1af098d843ee7e578e480cd658ac1a) )
+ ROM_LOAD( "c_5ct_g.bin", 0x1000, 0x1000, CRC(5ec461ec) SHA1(acb11a8fbdbb3ab46068385fe465f681e3c824bd) )
+ ROM_LOAD( "c_5bt_g.bin", 0x2000, 0x1000, CRC(1c97d324) SHA1(c7966261f3a1d3296927e0b6ee1c58039fc53c1f) )
+ ROM_LOAD( "c_5at_g.bin", 0x3000, 0x1000, CRC(b9005ac0) SHA1(3fe3599f6fa7c496f782053ddf7bacb453d197c4) )
+
+ ROM_REGION( 0x1800, "soundcpu", 0 )
+ ROM_LOAD( "s_3i_b.bin", 0x0000, 0x0800, CRC(45a4ed06) SHA1(144d24464c1f9f01894eb12f846952290e6e32ef) )
+ ROM_RELOAD( 0x0800, 0x0800 )
+ ROM_LOAD( "s_3j_b.bin", 0x1000, 0x0800, CRC(4743fe92) SHA1(6c82b57637c0212a580591397e6a5a1718f19fd2) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "nadkong.5h", 0x0000, 0x0800, CRC(88772f5b) SHA1(0fd6cbb593e87b863eb317b063151ef3b81565c2) )
+ ROM_LOAD( "nadkong.3p", 0x0800, 0x0800, CRC(4c8aa728) SHA1(a277988d48f0d2f5d7cf9ef05eef222a36248cd3) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "nadkong.4m", 0x0000, 0x0800, CRC(2afbf9e6) SHA1(51e4f2f67903158b77574d55fcd17f302bc04a52) )
+ ROM_LOAD( "nadkong.4n", 0x0800, 0x0800, CRC(4f077877) SHA1(4f2c2bc693b0e8d36114024b6eaeb37a3b5d853d) )
+ ROM_LOAD( "nadkong.4r", 0x1000, 0x0800, CRC(d868da93) SHA1(c1c5d21f8c6a057fd5f54cab1eb4dbef06120405) )
+ ROM_LOAD( "nadkong.4s", 0x1800, 0x0800, CRC(7ebfe9f3) SHA1(75bd16e9590ada93b061dee3ec7916e1e1f113c3) )
+
+ ROM_REGION( 0x0300, "proms", 0 )
+ ROM_LOAD( "c-2k.bpr", 0x0000, 0x0100, CRC(e273ede5) SHA1(b50ec9e1837c00c20fb2a4369ec7dd0358321127) )
+ ROM_LOAD( "c-2j.bpr", 0x0100, 0x0100, CRC(d6412358) SHA1(f9c872da2fe8e800574ae3bf483fb3ccacc92eb3) )
+ ROM_LOAD( "v-5e.bpr", 0x0200, 0x0100, CRC(b869b8f5) SHA1(c2bdccbf2654b64ea55cd589fd21323a9178a660) )
+ROM_END
+
+ROM_START( dkong2m )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "c_5et_g.bin", 0x0000, 0x1000, CRC(ba70b88b) SHA1(d76ebecfea1af098d843ee7e578e480cd658ac1a) )
+ ROM_LOAD( "c_5ct_g.bin", 0x1000, 0x1000, CRC(5ec461ec) SHA1(acb11a8fbdbb3ab46068385fe465f681e3c824bd) )
+ ROM_LOAD( "c_5bt_g.bin", 0x2000, 0x1000, CRC(1c97d324) SHA1(c7966261f3a1d3296927e0b6ee1c58039fc53c1f) )
+ ROM_LOAD( "c_5at_g.bin", 0x3000, 0x1000, CRC(b9005ac0) SHA1(3fe3599f6fa7c496f782053ddf7bacb453d197c4) )
+
+ ROM_REGION( 0x1800, "soundcpu", 0 )
+ ROM_LOAD( "s_3i_b.bin", 0x0000, 0x0800, CRC(45a4ed06) SHA1(144d24464c1f9f01894eb12f846952290e6e32ef) )
+ ROM_RELOAD( 0x0800, 0x0800 )
+ ROM_LOAD( "s_3j_b.bin", 0x1000, 0x0800, CRC(4743fe92) SHA1(6c82b57637c0212a580591397e6a5a1718f19fd2) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "v_5h_b.bin", 0x0000, 0x0800, CRC(12c8c95d) SHA1(a57ff5a231c45252a63b354137c920a1379b70a3) )
+ ROM_LOAD( "v_3pt.bin", 0x0800, 0x0800, CRC(15e9c5e9) SHA1(976eb1e18c74018193a35aa86cff482ebfc5cc4e) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "l_4m_bm.bin", 0x0000, 0x0800, CRC(4b67ccf9) SHA1(8206436a0e5d1f7d5569f918eb87102f03b6cea3) )
+ ROM_LOAD( "l_4n_bm.bin", 0x0800, 0x0800, CRC(32a708cb) SHA1(2c8b4d5179f10fb2e8e9da2012419bdfb436a545) )
+ ROM_LOAD( "l_4r_bm.bin", 0x1000, 0x0800, CRC(22b5d5c4) SHA1(6bf39a5766786023cc18620283f12dbb9194cbfd) )
+ ROM_LOAD( "l_4s_bm.bin", 0x1800, 0x0800, CRC(b212b185) SHA1(03d3586e80cafd2440d03d60b7a4c8808b0c6caa) )
+
+ ROM_REGION( 0x0300, "proms", 0 )
+ ROM_LOAD( "c-2k.bpr", 0x0000, 0x0100, CRC(e273ede5) SHA1(b50ec9e1837c00c20fb2a4369ec7dd0358321127) )
+ ROM_LOAD( "c-2j.bpr", 0x0100, 0x0100, CRC(d6412358) SHA1(f9c872da2fe8e800574ae3bf483fb3ccacc92eb3) )
+ ROM_LOAD( "v-5e.bpr", 0x0200, 0x0100, CRC(b869b8f5) SHA1(c2bdccbf2654b64ea55cd589fd21323a9178a660) )
+ROM_END
+
+ROM_START( dkongpac )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "c_5et_g.bin", 0x0000, 0x1000, CRC(ba70b88b) SHA1(d76ebecfea1af098d843ee7e578e480cd658ac1a) )
+ ROM_LOAD( "c_5ct_g.bin", 0x1000, 0x1000, CRC(5ec461ec) SHA1(acb11a8fbdbb3ab46068385fe465f681e3c824bd) )
+ ROM_LOAD( "c_5bt_g.bin", 0x2000, 0x1000, CRC(1c97d324) SHA1(c7966261f3a1d3296927e0b6ee1c58039fc53c1f) )
+ ROM_LOAD( "c_5at_g.bin", 0x3000, 0x1000, CRC(b9005ac0) SHA1(3fe3599f6fa7c496f782053ddf7bacb453d197c4) )
+
+ ROM_REGION( 0x1800, "soundcpu", 0 )
+ ROM_LOAD( "s_3i_b.bin", 0x0000, 0x0800, CRC(45a4ed06) SHA1(144d24464c1f9f01894eb12f846952290e6e32ef) )
+ ROM_RELOAD( 0x0800, 0x0800 )
+ ROM_LOAD( "s_3j_b.bin", 0x1000, 0x0800, CRC(4743fe92) SHA1(6c82b57637c0212a580591397e6a5a1718f19fd2) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "dkongpac.3n", 0x0000, 0x0800, CRC(1beba830) SHA1(04dce2464d0627b78d185924706f8ca38892d6d3) )
+ ROM_LOAD( "dkongpac.3p", 0x0800, 0x0800, CRC(94d61766) SHA1(f45f10d523fefe0581dde42450b713cb94ce2072) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "dkongpac.7c", 0x0000, 0x0800, CRC(065e2713) SHA1(a32d506a247a692a10962c9e47024d51bbb52d22) )
+ ROM_LOAD( "dkongpac.7d", 0x0800, 0x0800, CRC(a84b347d) SHA1(5a3e6fa3d520aef3c529e515d1e9fa464cbc6a78) )
+ ROM_LOAD( "dkongpac.7e", 0x1000, 0x0800, CRC(6ae6f476) SHA1(a79927a1c7511bf510107d9ba5fcc8f284541259) )
+ ROM_LOAD( "dkongpac.7f", 0x1800, 0x0800, CRC(9d293922) SHA1(14af1cd7f9854dec820c899d999be4623d0048b0) )
+
+ ROM_REGION( 0x0300, "proms", 0 )
+ ROM_LOAD( "k2600.2k", 0x0000, 0x0100, CRC(1e82d375) SHA1(8f2da5cedd1f62be08555dd0eb929eb41da5079d) )
+ ROM_LOAD( "k2600.2j", 0x0100, 0x0100, CRC(2ab01dc8) SHA1(c25958d0706cabf997efe16fad71f454fc1ced0b) )
+ ROM_LOAD( "k2600.5f", 0x0200, 0x0100, CRC(44988665) SHA1(68c474fc81aff46eae6c9a7ac6ab80288303e291) )
+ROM_END
+
+ROM_START( dkrainbow )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "c_5et_g.bin", 0x0000, 0x1000, CRC(ba70b88b) SHA1(d76ebecfea1af098d843ee7e578e480cd658ac1a) )
+ ROM_LOAD( "c_5ct_g.bin", 0x1000, 0x1000, CRC(5ec461ec) SHA1(acb11a8fbdbb3ab46068385fe465f681e3c824bd) )
+ ROM_LOAD( "c_5bt_g.bin", 0x2000, 0x1000, CRC(1c97d324) SHA1(c7966261f3a1d3296927e0b6ee1c58039fc53c1f) )
+ ROM_LOAD( "c_5at_g.bin", 0x3000, 0x1000, CRC(b9005ac0) SHA1(3fe3599f6fa7c496f782053ddf7bacb453d197c4) )
+
+ ROM_REGION( 0x1800, "soundcpu", 0 ) /* sound */
+ ROM_LOAD( "s_3i_b.bin", 0x0000, 0x0800, CRC(45a4ed06) SHA1(144d24464c1f9f01894eb12f846952290e6e32ef) )
+ ROM_RELOAD( 0x0800, 0x0800 )
+ ROM_LOAD( "s_3j_b.bin", 0x1000, 0x0800, CRC(4743fe92) SHA1(6c82b57637c0212a580591397e6a5a1718f19fd2) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "v_5h_b.bin", 0x0000, 0x0800, CRC(12c8c95d) SHA1(a57ff5a231c45252a63b354137c920a1379b70a3) )
+ ROM_LOAD( "v_3pt.bin", 0x0800, 0x0800, CRC(15e9c5e9) SHA1(976eb1e18c74018193a35aa86cff482ebfc5cc4e) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "l_4m_b.bin", 0x0000, 0x0800, CRC(59f8054d) SHA1(793dba9bf5a5fe76328acdfb90815c243d2a65f1) )
+ ROM_LOAD( "l_4n_b.bin", 0x0800, 0x0800, CRC(672e4714) SHA1(92e5d379f4838ac1fa44d448ce7d142dae42102f) )
+ ROM_LOAD( "l_4r_b.bin", 0x1000, 0x0800, CRC(feaa59ee) SHA1(ecf95db5a20098804fc8bd59232c66e2e0ed3db4) )
+ ROM_LOAD( "l_4s_b.bin", 0x1800, 0x0800, CRC(20f2ef7e) SHA1(3bc482a38bf579033f50082748ee95205b0f673d) )
+
+ ROM_REGION( 0x0300, "proms", 0 )
+ ROM_LOAD( "rainbow_c.2k", 0x0000, 0x0100, CRC(c0dce2f5) SHA1(d2195886f509359ac483fd6c96a0477eef514929) )
+ ROM_LOAD( "rainbow_c.2j", 0x0100, 0x0100, CRC(03c3153f) SHA1(611267c0a205c9fe258451b7b5545c7a3d2fb541) )
+ ROM_LOAD( "rainbow_v.5e", 0x0200, 0x0100, CRC(d9f3005a) SHA1(c4f09f27f5c78d95d31e6af1b8a977b86bbab9a4) )
+ROM_END
+
+
+
+GAME( 2013, dkong2m, dkong, dkong2b, dkong, driver_device, 0, ROT90, "Hack", "Donkey Kong (2 marios)", MACHINE_SUPPORTS_SAVE )
+GAME( 2005, dkongex, dkong, dkong2b, dkongex, driver_device, 0, ROT90, "Jeff Kulczycki", "Donkey Kong Foundry", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, dkongp, dkong, dkong2b, dkong, driver_device, 0, ROT90, "Don Hodges", "Donkey Kong (patched)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, dkongpac, dkong, dkong2b, dkong, driver_device, 0, ROT90, "Tim Appleton", "Donkey Kong (Pacman graphics)", MACHINE_SUPPORTS_SAVE )
+GAME( 2015, dkrainbow, dkong, dkong2b, dkong, driver_device, 0, ROT90, "Sock Master", "Rainbow Donkey Kong", MACHINE_SUPPORTS_SAVE )
+GAME( 2015, dkrdemo, dkong, dkong2b, dkrdemo, driver_device, 0, ROT90, "Sock Master", "Donkey Kong Remix demo 1.8", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kong2600, dkong, dkong2b, dkong, driver_device, 0, ROT90, "Vic Twenty George", "Donkey Kong (2600 graphics)", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, nadkong, dkong, dkong2b, dkong, driver_device, 0, ROT90, "Hack", "Naked Donkey Kong", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/docastle.cpp b/docs/release/src/hbmame/drivers/docastle.cpp
new file mode 100644
index 00000000000..9062186c65e
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/docastle.cpp
@@ -0,0 +1,32 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/docastle.cpp"
+
+ROM_START( sdreturn )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "2764.p1", 0x0000, 0x2000, CRC(95c86f8e) SHA1(9fe44911e0aa8d4c7299472a31c401e064d63d17) )
+ ROM_LOAD( "2764.l1", 0x4000, 0x2000, CRC(e9a65ba7) SHA1(fbee57d68352fd4062aac55cd1070f001714d0a3) )
+ ROM_LOAD( "2764.k1", 0x6000, 0x2000, CRC(b1195d3d) SHA1(095ad2ee1f53be3203830263cb0c9efbe4710c56) )
+ ROM_LOAD( "2764.n1", 0x8000, 0x2000, CRC(6a8160d1) SHA1(12101c351bf800319172c459b5e7c69cb5603806) )
+
+ ROM_REGION( 0x10000, "slave", 0 )
+ ROM_LOAD( "27128.p7", 0x0000, 0x4000, CRC(8b06d461) SHA1(2434478810c6301197997be76505f5fc6beba5d3) )
+
+ ROM_REGION( 0x10000, "cpu3", 0 )
+ ROM_LOAD( "bprom2.bin", 0x0000, 0x0200, CRC(2747ca77) SHA1(abc0ca05925974c4b852827605ee2f1caefb8524) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "27128.a3", 0x0000, 0x4000, CRC(4be96dcf) SHA1(f9b45e6297cbbc4d1ee2df7ac377c5daf5181b0f) )
+
+ ROM_REGION( 0x8000, "gfx2", 0 )
+ ROM_LOAD( "sdreturn.m4", 0x0000, 0x2000, CRC(e8779d04) SHA1(f185efbdc7410e3adba85de482e1b06778b17fe9) )
+ ROM_LOAD( "sdreturn.l4", 0x2000, 0x2000, CRC(bc217d6c) SHA1(abeaea49aad85f62943d7a3c30c8655fb29d3e62) )
+ ROM_LOAD( "sdreturn.j4", 0x4000, 0x2000, CRC(04824549) SHA1(5056db06c06d76580a85fc65d1e473e77eb48ee9) )
+ ROM_LOAD( "sdreturn.h4", 0x6000, 0x2000, CRC(c23c36c2) SHA1(22461c04ea2cfd39c395ca7e42a50636fb1c3625) )
+
+ ROM_REGION( 0x0100, "proms", 0 )
+ ROM_LOAD( "dorunrun.clr", 0x0000, 0x0100, CRC(d5bab5d5) SHA1(7a465fe30b6008793d33f6e07086c89111e1e407) )
+ROM_END
+
+GAME( 2002, sdreturn, dorunrun, dorunrun, dorunrun, driver_device, 0, ROT0, "Hack", "Sticky Do Returns", MACHINE_SUPPORTS_SAVE )
+
diff --git a/docs/release/src/hbmame/drivers/dotrikun.cpp b/docs/release/src/hbmame/drivers/dotrikun.cpp
new file mode 100644
index 00000000000..a57f9c06739
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/dotrikun.cpp
@@ -0,0 +1,208 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/dotrikun.cpp"
+//#include "screen.h"
+#include "speaker.h"
+
+// http://www.chrismcovell.com/dottorikun.html
+
+ROM_START( dotrimjr )
+ ROM_REGION( 0x4000, "maincpu", 0 )
+ ROM_LOAD( "dotrimjr.bin", 0x0000, 0x4000, CRC(4ba6d2f5) SHA1(db805e9121ecbd41fac4593b58d7f071e7dbc720) )
+ROM_END
+
+GAMEL( 2016, dotrimjr, 0, dotrikun, dotrikun, driver_device, 0, ROT0, "Chris Covell", "Dottori-Man Jr", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW, layout_dotrikun )
+
+
+/***************************************************************************
+
+Minesweeper driver, originally for Dotrikun hardware
+
+Driver by Robbbert - April 2007
+
+CPU : Z-80 (4MHz)
+SOUND : (none)
+
+****************************************************************************
+
+Notes from the Readme files
+
+MINE SWEEPER for SEGA's Dottorikun PCB
+
+Distributed by Arcade roms from Japan (j-rom)
+
+This game is the Dottorikun port of the Windows' Mine Sweeper.
+It has "Time Limit", "more Stage", etc...
+
+Usage:
+
+You must burn DT_MINEJ.BIN to 27128 and replace it to the ROM of
+Dottorikun's board. I assume you can find this board easily...
+
+Rules:
+
+* The timer limit is 999
+* If you hit a mine, many counts added to the timer
+* There are no mines at the start point and the corner
+
+Option:
+
+This game supports BACKUP and SOUND. If you want to play
+the sound correctly, you must modify the board. If not,
+some noise appears on the screen.
+
+* THIS MODIFY IS QUITE DIFFICULT, USE AT YOUR OWN RISK! *
+* AND DON'T ASK ABOUT THIS MODIFYING INFORMATION! *
+
+Backup Support:
+
+* You have to install the RESET-IC (PST518, etc.)
+* Check the power on/off
+* Install the Lithium battery or super capacity condensor
+* Connect the inverted RESET signal to RAM's 18pin (use 74HC04, etc.)
+ (You must backup both RAM and HC04)
+
+Sound Support:
+
+You must get the sound board of Wing War (Guns'n Wings).
+You can hear the sonic sound if you use this sound board!
+
+* Cut IC17's 10pin from the board
+* Use shielded cable, Connect CN2's 6pin on the sound board to the above pin
+* And the shield connects GND and CN2's 5pin
+* Connect IC17 10pin's board side to the GND
+* This sound board has 2 set of STEREO, you have to mix them
+
+Secrets:
+
+* Push start when the power on : RAM CLEAR
+* right+up lever and push 1 and 2 button : SOUND TEST
+
+* left+up and push 1, 2, COIN, START when the checking Backup RAM is
+ finished, you can see the Ending scene.
+
+* Push 1 and 2 when the Ending scene is changed, you can see the
+ secret picture (^^)
+
+Robbbert's notes:
+
+In the above, when they say 1 and 2, they mean Ctrl and Alt
+By using the debugger, you can see the sound test by setting the pc to 105F,
+and the ending scene by setting the pc to 0F30.
+
+- Backup nvram added (April 2007)
+- Hooked port 20 to the colour generator (July 2008)
+- Hooked up a sound click to port 20 (May 2010)
+- Merged back into dotrikun driver (August 2016)
+
+Colours:
+ White (normal play / attract mode)
+ Yellow (new record time)
+ Green (new record level - must be at least level 3)
+ Purple (stepped on a bomb)
+ Red (game over)
+
+***************************************************************************/
+#include "machine/nvram.h"
+#include "sound/beep.h"
+
+class mineswp_state : public dotrikun_state
+{
+public:
+ mineswp_state(const machine_config &mconfig, device_type type, const char *tag)
+ : dotrikun_state(mconfig, type, tag)
+ , m_beep(*this, "beeper")
+ { }
+
+ DECLARE_WRITE8_MEMBER(mineswp_color_w);
+private:
+ virtual void machine_start() override;
+ required_device<beep_device> m_beep;
+};
+
+
+/*******************************************************************
+
+ Palette Setting.
+
+*******************************************************************/
+
+
+WRITE8_MEMBER( mineswp_state::mineswp_color_w )
+{
+ // d0-d2: fg palette
+ // d3: sound bit
+ // d4-d7: N/C
+ m_screen->update_now();
+ m_color = data & 7;
+ m_beep->set_state(BIT(data, 3));
+}
+
+
+
+/*******************************************************************
+
+ Address maps
+
+*******************************************************************/
+static ADDRESS_MAP_START( mineswp_map, AS_PROGRAM, 8, mineswp_state )
+ AM_RANGE(0x0000, 0x3fff) AM_ROM
+ AM_RANGE(0x8000, 0x85ff) AM_RAM_WRITE(vram_w) AM_SHARE("vram")
+ AM_RANGE(0x8600, 0x86df) AM_RAM
+ AM_RANGE(0x86e0, 0x86ff) AM_RAM AM_SHARE("nvram")
+ AM_RANGE(0x8700, 0x87ff) AM_RAM
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( mineswp_io, AS_IO, 8, mineswp_state )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
+ AM_RANGE(0x00, 0x00) AM_MIRROR(0xff) AM_READ_PORT("INPUTS") AM_WRITE(mineswp_color_w)
+ADDRESS_MAP_END
+
+
+
+
+/*******************************************************************
+
+ Machine driver
+
+*******************************************************************/
+void mineswp_state::machine_start()
+{
+ m_beep->set_state(0);
+}
+
+static MACHINE_CONFIG_DERIVED_CLASS( mineswp, dotrikun, mineswp_state )
+ /* basic machine hardware */
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(mineswp_map)
+ MCFG_CPU_IO_MAP(mineswp_io)
+
+ MCFG_NVRAM_ADD_1FILL("nvram")
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+ MCFG_SOUND_ADD("beeper", BEEP, 950) // guess
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40)
+MACHINE_CONFIG_END
+
+
+/***************************************************************************
+
+ Game driver(s)
+
+***************************************************************************/
+
+ROM_START( mineswp )
+ ROM_REGION( 0x4000, "maincpu", 0 )
+ ROM_LOAD( "mineswp.bin", 0x0000, 0x4000, CRC(1cece483) SHA1(c425a09b640721c9a5b499cdb79848dc18ee66b9) )
+ // fix programming error
+ ROM_FILL(0x0005, 1, 0x31)
+ ROM_FILL(0x0006, 1, 0x00)
+ ROM_FILL(0x0007, 1, 0x88)
+ ROM_FILL(0x0008, 1, 0xCD)
+ ROM_FILL(0x0009, 1, 0xA1)
+ ROM_FILL(0x000A, 1, 0x03)
+ROM_END
+
+
+GAMEL( 1998, mineswp, 0, mineswp, dotrikun, driver_device, 0, ROT0, "J-Rom", "Mine Sweeper [h]", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW, layout_dotrikun )
diff --git a/docs/release/src/hbmame/drivers/ertictac.cpp b/docs/release/src/hbmame/drivers/ertictac.cpp
new file mode 100644
index 00000000000..308248bcc62
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/ertictac.cpp
@@ -0,0 +1,53 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/ertictac.cpp"
+
+// worked in 0.128, not now
+ROM_START( armdemo )
+ ROM_REGION(0x800000, "maincpu", 0 )
+ ROM_LOAD32_BYTE( "armdemo.01", 0x00000, 0x10000, CRC(62b840be) SHA1(148b30b1e851e1c012482dde27f4159d1ac56a15) )
+ ROM_LOAD32_BYTE( "armdemo.02", 0x00001, 0x10000, CRC(78d41ef7) SHA1(db7b33e91507314371e6b21a5b92bc259dc06559) )
+ ROM_LOAD32_BYTE( "armdemo.03", 0x00002, 0x10000, CRC(efd0057f) SHA1(61baccc350623aca6d8b940816459372368c31ef) )
+ ROM_LOAD32_BYTE( "armdemo.04", 0x00003, 0x10000, CRC(55eb17b2) SHA1(c55614124214a0ad5617bfbab419f340ee48e6ed) )
+ // note all instructions are 4 bytes, and the bytes are in reverse order to what you see in the debugger
+ ROM_FILL(0x423, 1, 0x03) // set up control (no video without this)
+ ROM_FILL(0x422, 1, 0x6E)
+ ROM_FILL(0x421, 1, 0x05)
+ ROM_FILL(0x420, 1, 0xA4)
+ ROM_FILL(0x427, 1, 0xE5)
+ ROM_FILL(0x426, 1, 0x1F)
+ ROM_FILL(0x425, 1, 0x00)
+ ROM_FILL(0x424, 1, 0x0C)
+ ROM_FILL(0x42B, 1, 0xE5)
+ ROM_FILL(0x42A, 1, 0x80)
+ ROM_FILL(0x428, 2, 0x00)
+ ROM_FILL(0x42F, 1, 0xE3) // i/o byte (has no effect)
+ ROM_FILL(0x42E, 1, 0xA0)
+ ROM_FILL(0x42D, 1, 0x06)
+ ROM_FILL(0x42C, 1, 0x33)
+ ROM_FILL(0x433, 1, 0xE2)
+ ROM_FILL(0x432, 1, 0x80)
+ ROM_FILL(0x431, 1, 0x08)
+ ROM_FILL(0x430, 1, 0x05)
+ ROM_FILL(0x437, 1, 0xE2)
+ ROM_FILL(0x436, 1, 0x80)
+ ROM_FILL(0x435, 1, 0x00)
+ ROM_FILL(0x434, 1, 0x18)
+ ROM_FILL(0x43B, 1, 0xE3)
+ ROM_FILL(0x43A, 1, 0xA0)
+ ROM_FILL(0x439, 1, 0x10)
+ ROM_FILL(0x438, 1, 0x00)
+ ROM_FILL(0x43F, 1, 0xE5)
+ ROM_FILL(0x43E, 1, 0xC0)
+ ROM_FILL(0x43D, 1, 0x10)
+ ROM_FILL(0x43C, 1, 0x00)
+ ROM_FILL(0x443, 1, 0xEA) // back to normal programming
+ ROM_FILL(0x442, 1, 0xFF)
+ ROM_FILL(0x441, 1, 0xFE)
+ ROM_FILL(0x440, 1, 0xF7)
+ ROM_FILL(0x001, 1, 0x01) // jump to this lot
+
+ ROM_REGION(0x200000, "vram", ROMREGION_ERASE00)
+ROM_END
+
+GAME( 1990, armdemo, 0, ertictac, ertictac, driver_device, 0, ROT0, "Charles Doty", "Demo - ARM" , MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW )
diff --git a/docs/release/src/hbmame/drivers/exerion.cpp b/docs/release/src/hbmame/drivers/exerion.cpp
new file mode 100644
index 00000000000..27e7adcdd15
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/exerion.cpp
@@ -0,0 +1,66 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/exerion.cpp"
+
+ROM_START( exeriongr )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "exriongr.07", 0x0000, 0x2000, CRC(0ade934a) SHA1(a949aa66f27876ca439b799a9918841f7d8d3115) )
+ ROM_LOAD( "exriongr.08", 0x2000, 0x2000, CRC(a469f93e) SHA1(7e800e4c0dce2b9c9525dc1667ca13f1b2844d9b) )
+ ROM_LOAD( "exriongr.09", 0x4000, 0x2000, CRC(f0a8d5db) SHA1(df0f18ebef27a70ef420903a02ec5ce3c43d1d8b) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "exerion.05", 0x0000, 0x2000, CRC(32f6bff5) SHA1(a4d0289f9d1d9eea7ca9a32a0616af48da74b401) )
+
+ ROM_REGION( 0x02000, "gfx1", 0 )
+ ROM_LOAD( "exriongr.06", 0x00000, 0x2000, CRC(e18dc7c6) SHA1(1ec9bb9aa1552e4d7dbe16435f98209813590211) )
+
+ ROM_REGION( 0x04000, "gfx2", 0 )
+ ROM_LOAD( "exerion.11", 0x00000, 0x2000, CRC(f0633a09) SHA1(8989bcb12abadde34777f7c189cfa6e2dfe92d62) )
+ ROM_LOAD( "exerion.10", 0x02000, 0x2000, CRC(80312de0) SHA1(4fa3bb9d5c62e41a54e8909f8d3b47637137e913) )
+
+ ROM_REGION( 0x08000, "gfx3", 0 )
+ ROM_LOAD( "exerion.03", 0x00000, 0x2000, CRC(790595b8) SHA1(8016ac2394b25db38e962bcff4805380082f6683) )
+ ROM_LOAD( "exerion.04", 0x02000, 0x2000, CRC(d7abd0b9) SHA1(ca6413ecd324cf84e11b703a4eda2c1e6d28ff15) )
+ ROM_LOAD( "exriongr.01", 0x04000, 0x2000, CRC(b18009ea) SHA1(6a7abbe60e493a125b5d0e4d7f114b15758e4c6e) )
+ ROM_LOAD( "exerion.02", 0x06000, 0x2000, CRC(a7ecbb70) SHA1(3c359d5bb21290a45d3eb18fea2b1f9439b931be) )
+
+ ROM_REGION( 0x0420, "proms", 0 )
+ ROM_LOAD( "exerion.e1", 0x0000, 0x0020, CRC(2befcc20) SHA1(a24d3f691413378fde545a6ddcef7e5118e74019) )
+ ROM_LOAD( "exerion.i8", 0x0020, 0x0100, CRC(31db0e08) SHA1(1041a778e86d3fe6f057cf40a0a08b30760f3887) )
+ ROM_LOAD( "exerion.h10", 0x0120, 0x0100, CRC(63b4c555) SHA1(30243041be4fa77ada71e8b29d721cad51640c29) )
+ ROM_LOAD( "exerion.i3", 0x0220, 0x0100, CRC(fe72ab79) SHA1(048a72e6db4768df687df927acaa70ef906b3dc0) )
+ ROM_LOAD( "exerion.k4", 0x0320, 0x0100, CRC(ffc2ba43) SHA1(03be1c41d6ac3fc11439caef04ef5ffa60d6aec4) )
+ROM_END
+
+ROM_START( exerionj )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "exerion.07", 0x0000, 0x2000, CRC(4c78d57d) SHA1(ac702e9ad2bc05493fb1355858667c31c36acfe4) )
+ ROM_LOAD( "exerion.08", 0x2000, 0x2000, CRC(dcadc1df) SHA1(91388f617cfaa4289ca1c84c697fcfdd8834ae15) )
+ ROM_LOAD( "exerion.09", 0x4000, 0x2000, CRC(34cc4d14) SHA1(511c9de038f7bcaf6f7c96f2cbbe50a80673fa72) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "exerion.05", 0x0000, 0x2000, CRC(32f6bff5) SHA1(a4d0289f9d1d9eea7ca9a32a0616af48da74b401) )
+
+ ROM_REGION( 0x02000, "gfx1", 0 )
+ ROM_LOAD( "exerion.06", 0x00000, 0x2000, CRC(435a85a4) SHA1(f6846bfee11df754405d4d796e7d8ac0321b6eb6) )
+
+ ROM_REGION( 0x04000, "gfx2", 0 )
+ ROM_LOAD( "exerion.11", 0x00000, 0x2000, CRC(f0633a09) SHA1(8989bcb12abadde34777f7c189cfa6e2dfe92d62) )
+ ROM_LOAD( "exerion.10", 0x02000, 0x2000, CRC(80312de0) SHA1(4fa3bb9d5c62e41a54e8909f8d3b47637137e913) )
+
+ ROM_REGION( 0x08000, "gfx3", 0 )
+ ROM_LOAD( "exerion.03", 0x00000, 0x2000, CRC(790595b8) SHA1(8016ac2394b25db38e962bcff4805380082f6683) )
+ ROM_LOAD( "exerion.04", 0x02000, 0x2000, CRC(d7abd0b9) SHA1(ca6413ecd324cf84e11b703a4eda2c1e6d28ff15) )
+ ROM_LOAD( "exerion.01", 0x04000, 0x2000, CRC(5bb755cb) SHA1(ec92c518c116a78dbb23381468cefb3f930212cc) )
+ ROM_LOAD( "exerion.02", 0x06000, 0x2000, CRC(a7ecbb70) SHA1(3c359d5bb21290a45d3eb18fea2b1f9439b931be) )
+
+ ROM_REGION( 0x0420, "proms", 0 )
+ ROM_LOAD( "exerionj.e1", 0x0000, 0x0020, CRC(60cec362) SHA1(2422e894e2def2ab31f4b6c14fabbe443bd495e6) )
+ ROM_LOAD( "exerion.i8", 0x0020, 0x0100, CRC(31db0e08) SHA1(1041a778e86d3fe6f057cf40a0a08b30760f3887) )
+ ROM_LOAD( "exerion.h10", 0x0120, 0x0100, CRC(63b4c555) SHA1(30243041be4fa77ada71e8b29d721cad51640c29) )
+ ROM_LOAD( "exerion.i3", 0x0220, 0x0100, CRC(fe72ab79) SHA1(048a72e6db4768df687df927acaa70ef906b3dc0) )
+ ROM_LOAD( "exerion.k4", 0x0320, 0x0100, CRC(ffc2ba43) SHA1(03be1c41d6ac3fc11439caef04ef5ffa60d6aec4) )
+ROM_END
+
+GAME( 2004, exeriongr, exerion, exerion, exerion, exerion_state, exerion, ROT90, "GreekRoms", "Exerion (Greek)", MACHINE_SUPPORTS_SAVE )
+GAME( 1983, exerionj, exerion, exerion, exerion, exerion_state, exerion, ROT90, "Jaleco", "Exerion (Japan)", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/exidy.cpp b/docs/release/src/hbmame/drivers/exidy.cpp
new file mode 100644
index 00000000000..6bc5c5da4f1
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/exidy.cpp
@@ -0,0 +1,71 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/exidy.cpp"
+
+
+
+/*********************
+ *
+ * Targ Test Rom
+ *
+ *********************/
+
+ROM_START( targtest )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "hrl10a-1", 0x1800, 0x0800, CRC(969744e1) SHA1(e123bdb02b3b5f6a59c1e7c9ef557fe6bb19c62c) )
+ ROM_LOAD( "hrl9a-1", 0x2000, 0x0800, CRC(a177a72d) SHA1(0e705e3e32021e55af4414fa0e2ccbc4980ee848) )
+ ROM_LOAD( "hrl8a-1", 0x2800, 0x0800, CRC(6e6928a5) SHA1(10c725b27225ac5aad8639b081df68dd61522cf2) )
+ ROM_LOAD( "targtest.bin", 0x3000, 0x0800, CRC(22ae0198) SHA1(0139e3c36e4e415641cefae900347dcf81f00716) )
+ ROM_LOAD( "hrl6a-1", 0x3800, 0x0800, CRC(a60a1bfc) SHA1(17c0e67e1a0b263b57d70a148cc5d5099fecbb40) )
+
+ ROM_REGION( 0x0400, "gfx1", 0 )
+ ROM_LOAD( "hrl11d-1", 0x0000, 0x0400, CRC(9f03513e) SHA1(aa4763e49df65e5686a96431543580b8d8285893) )
+
+ ROM_REGION( 0x0140, "proms", 0 )
+ ROM_LOAD( "hrl5c-1", 0x0000, 0x0100, CRC(a24290d0) SHA1(5f2888d168de874021b51c5d19a62fb8165e4454) )
+ ROM_LOAD( "stl6d-1", 0x0100, 0x0020, CRC(e26f9053) SHA1(eec35b6aa2c2d305418306bf4a1754a0583f109f) )
+ ROM_LOAD( "hrl14h-1", 0x0120, 0x0020, CRC(f76b4fcf) SHA1(197e0cc508ffeb5cefa4046bdfb158939d598225) )
+
+ ROM_REGION( 0x0020, "targ", 0 )
+ ROM_LOAD( "hra2b-1", 0x0000, 0x0020, CRC(38e8024b) SHA1(adf1c1770695f7614c95eceb803f662c5b096a76) )
+ROM_END
+
+/*************************************
+ *
+ * Teeter Torture free play hack
+ *
+ *************************************/
+ROM_START( teetertfp )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "teetertfp.11", 0xa000, 0x1000, CRC(550375ab) SHA1(ae262f30def469cd56fc2f10336b25f766fc1320) )
+ ROM_LOAD( "10a-cpu", 0xb000, 0x1000, CRC(3ae7e445) SHA1(e511ce4c553ac58e87b6ee623f8c42d7653de972) )
+ ROM_LOAD( "teetertfp.9", 0xc000, 0x1000, CRC(9fab266f) SHA1(b6ad26740f9c87c49b4df122819d1a335fe5545e) )
+ ROM_LOAD( "8a-cpu", 0xd000, 0x1000, CRC(68de66e7) SHA1(70a0cc950f16f2c408fae717e6fdb75eb0fd8039) )
+ ROM_LOAD( "7a-cpu", 0xe000, 0x1000, CRC(84491333) SHA1(db9f8e4c49057a4574a3784d71e627da7f7a4b44) )
+ ROM_LOAD( "6a-cpu", 0xf000, 0x1000, CRC(3600d465) SHA1(84d633e042f73bfd6bf4a4d0ffee1cd2027c65d2) )
+
+ ROM_REGION( 0x8000, "audiocpu", 0 )
+ ROM_LOAD( "3a-ac", 0x5800, 0x0800, CRC(83b8836f) SHA1(ec0e2de62caea61ceff56e924449213997bff8cd) )
+ ROM_LOAD( "4a-ac", 0x6000, 0x0800, CRC(5154c39e) SHA1(e6f011630eb1aa4116a0e5824ad6b65c1be2455f) )
+ ROM_LOAD( "5a-ac", 0x6800, 0x0800, CRC(1e1e3916) SHA1(867e586583e07cd01e0e852f6ea52a040995725d) )
+ ROM_LOAD( "6a-ac", 0x7000, 0x0800, CRC(80f3357a) SHA1(f1ee638251e8676a526e6367c11866b1d52f5910) )
+ ROM_LOAD( "7a-ac", 0x7800, 0x0800, CRC(466addc7) SHA1(0230b5365d6aeee3ca47666a9eadee4141de125b) )
+
+ ROM_REGION( 0x0800, "gfx1", 0 )
+ ROM_LOAD( "11d-cpu", 0x0000, 0x0800, CRC(0fe70b00) SHA1(6068be263d7a8e6b71af6f4dceec40bb8d246376) )
+
+ ROM_REGION( 0x140, "proms", 0 )
+ ROM_LOAD_OPTIONAL( "tt14h.123", 0x0000, 0x0020, CRC(f76b4fcf) SHA1(197e0cc508ffeb5cefa4046bdfb158939d598225) )
+ ROM_LOAD_OPTIONAL( "tt5c.129", 0x0020, 0x0100, CRC(43b35bb7) SHA1(0a0cecea8faff9f3ff4c2ceda0b5b25e8e1cd667) )
+ ROM_LOAD_OPTIONAL( "tt6d.123", 0x0120, 0x0020, CRC(e26f9053) SHA1(eec35b6aa2c2d305418306bf4a1754a0583f109f) )
+ROM_END
+
+
+/*************************************
+ *
+ * Game drivers
+ *
+ *************************************/
+
+GAME( 2008, targtest, targ, targ, targ, exidy_state, targ, ROT0, "Timothy Shiels", "Targ Test Rom V1.0", MACHINE_SUPPORTS_SAVE )
+GAME( 2013, teetertfp, teetert, teetert, teetert, exidy_state, teetert, ROT0, "DogP", "Teeter Torture (free play hack)", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/fcrash.cpp b/docs/release/src/hbmame/drivers/fcrash.cpp
new file mode 100644
index 00000000000..935faf86602
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/fcrash.cpp
@@ -0,0 +1,3156 @@
+// license:BSD-3-Clause
+// copyright-holders:David Haywood
+/* Final Crash & other CPS1 bootlegs */
+
+/*
+
+Final Crash is a bootleg of Final Fight
+
+Final Fight is by Capcom and runs on CPS1 hardware
+The bootleg was manufactured by Playmark of Italy
+
+this driver depends heavily on cps1.c, but has been
+kept apart in an attempt to keep cps1.c clutter free
+
+Sound is very different from CPS1.
+
+---
+
+Final Crash (bootleg of final fight)
+
+1x 68k
+1x z80
+2x ym2203
+2x oki5205
+1x osc 10mhz
+1x osc 24mhz
+
+eproms:
+1.bin sound eprom
+from 2.bin to 9.bin program eproms
+10.bin to 25.bin gfx eproms
+
+---
+
+kodb has various graphical issues, mainly with old info not being cleared away.
+Also, it should be using a vblank irq value of 4. This triggers the following bootleg read/writes;
+ - IN1 is read at 0x992000
+ - IN0 is read of 0x992008
+ - dips continue to be read at 0x80001a
+ - sound command is wrote at 0x992006
+ - scroll 1Y is wrote at 0x980000
+ - scroll 1X is wrote at 0x980002
+ - scroll 2Y is wrote at 0x980004
+ - scroll 2X is wrote at 0x980006
+ - scroll 3Y is wrote at 0x980008
+ - scroll 3X is wrote at 0x98000a
+ - the layer enable and layer mask writes continue at 0x98000c and 0x980020-2
+
+These read/writes are identical to those used by a Knights of the Round bootleg which uses the all sf2mdt sound
+hardware. This set is currently non-working.
+
+This also prevents the game from toggling the sprite address at m_cps_a_regs[0], similar to other bootlegs.
+Currently the game is working somewhat, but only using the code left over from the original. If anyone wants to
+do any development work on the set, (eg, find the sprite clearing issue), then this should be changed as the game
+likely won't write any sprite clearing values otherwise.
+
+None of this is hooked up currently due to issues with row scroll on the scroll2 layer.
+
+
+
+Status of each game:
+--------------------
+cawingb2, cawingbl: ok
+
+dinopic: no sound
+
+dinopic2: no sound, one bad gfx rom. Copying 8.bin from dinopic fixes it.
+
+fcrash, kodb: old sprites show on next screen. Patch used.
+
+kodb: gems are missing.
+
+knightsb: sprites are entangled with the front layer.
+
+punipic, punipic2: no sound. Problems in Central Park. Patches used.
+
+punipic3: same as punipic, and doors are missing.
+
+sf2m1: crowd is missing. Plane's tail comes off a bit. Patch used.
+
+sf2mdt, sf2mdta: ok
+
+sgyxz: garbage left behind. A priority problem can be seen in 3rd demo where
+ the fighters walk through the crowd instead of behind.
+
+slampic: no sound. A priority problem between sprites and crowd.
+
+*/
+
+#include "emu.h"
+#include "cpu/z80/z80.h"
+#include "cpu/m68000/m68000.h"
+#include "includes/cps1.h"
+#include "sound/2203intf.h"
+#include "sound/msm5205.h"
+#include "sound/ym2151.h"
+#include "sound/okim6295.h"
+#include "machine/eepromser.h"
+
+WRITE16_MEMBER( cps_state::fcrash_soundlatch_w )
+{
+ if (ACCESSING_BITS_0_7)
+ {
+ m_soundlatch->write(space, 0, data & 0xff);
+ m_audiocpu->set_input_line(0, HOLD_LINE);
+ }
+}
+
+WRITE16_MEMBER(cps_state::cawingbl_soundlatch_w)
+{
+ if (ACCESSING_BITS_8_15)
+ {
+ m_soundlatch->write(space, 0, data >> 8);
+ m_audiocpu->set_input_line(0, HOLD_LINE);
+ machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(50)); /* boost the interleave or some voices get dropped */
+ }
+}
+
+WRITE8_MEMBER( cps_state::fcrash_snd_bankswitch_w )
+{
+ m_msm_1->set_output_gain(0, (data & 0x08) ? 0.0 : 1.0);
+ m_msm_2->set_output_gain(0, (data & 0x10) ? 0.0 : 1.0);
+
+ membank("bank1")->set_entry(data & 0x07);
+}
+
+WRITE8_MEMBER( cps_state::sf2mdt_snd_bankswitch_w )
+{
+ m_msm_1->set_output_gain(0, (data & 0x20) ? 0.0 : 1.0);
+ m_msm_2->set_output_gain(0, (data & 0x10) ? 0.0 : 1.0);
+
+ membank("bank1")->set_entry(data & 0x07);
+}
+
+WRITE8_MEMBER( cps_state::knightsb_snd_bankswitch_w )
+{
+ m_msm_1->set_output_gain(0, (data & 0x20) ? 0.0 : 1.0);
+ m_msm_2->set_output_gain(0, (data & 0x10) ? 0.0 : 1.0);
+
+ membank("bank1")->set_entry(data & 0x0f);
+}
+
+WRITE_LINE_MEMBER(cps_state::m5205_int1)
+{
+ m_msm_1->data_w(m_sample_buffer1 & 0x0f);
+ m_sample_buffer1 >>= 4;
+ m_sample_select1 ^= 1;
+ if (m_sample_select1 == 0)
+ m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
+}
+
+WRITE_LINE_MEMBER(cps_state::m5205_int2)
+{
+ m_msm_2->data_w(m_sample_buffer2 & 0x0f);
+ m_sample_buffer2 >>= 4;
+ m_sample_select2 ^= 1;
+}
+
+
+
+WRITE8_MEMBER( cps_state::fcrash_msm5205_0_data_w )
+{
+ m_sample_buffer1 = data;
+}
+
+WRITE8_MEMBER( cps_state::fcrash_msm5205_1_data_w )
+{
+ m_sample_buffer2 = data;
+}
+
+/* not verified */
+#define CPS1_ROWSCROLL_OFFS (0x20/2) /* base of row scroll offsets in other RAM */
+
+WRITE16_MEMBER(cps_state::dinopic_layer_w)
+{
+ switch (offset)
+ {
+ case 0x00:
+ m_cps_a_regs[0x0e / 2] = data;
+ break;
+ case 0x01:
+ m_cps_a_regs[0x0c / 2] = data;
+ break;
+ case 0x02:
+ m_cps_a_regs[0x12 / 2] = data;
+ m_cps_a_regs[CPS1_ROWSCROLL_OFFS] = data; /* row scroll start */
+ break;
+ case 0x03:
+ m_cps_a_regs[0x10 / 2] = data;
+ break;
+ case 0x04:
+ m_cps_a_regs[0x16 / 2] = data;
+ break;
+ case 0x05:
+ m_cps_a_regs[0x14 / 2] = data;
+ break;
+ default:
+ logerror("%s: Unknown layer cmd %X %X\n",space.machine().describe_context(),offset<<1,data);
+
+ }
+}
+
+WRITE16_MEMBER( cps_state::dinopic_layer2_w )
+{
+ m_cps_a_regs[0x06 / 2] = data;
+}
+
+WRITE16_MEMBER(cps_state::kodb_layer_w)
+{
+ /* layer enable and mask 1&2 registers are written here - passing them to m_cps_b_regs for now for drawing routines */
+ if (offset == 0x06)
+ m_cps_b_regs[m_layer_enable_reg / 2] = data;
+ else
+ if (offset == 0x10)
+ m_cps_b_regs[m_layer_mask_reg[1] / 2] = data;
+ else
+ if (offset == 0x11)
+ m_cps_b_regs[m_layer_mask_reg[2] / 2] = data;
+}
+
+WRITE16_MEMBER(cps_state::knightsb_layer_w)
+{
+ switch (offset)
+ {
+ case 0x00:
+ m_cps_a_regs[0x0e / 2] = data;
+ break;
+ case 0x01:
+ m_cps_a_regs[0x0c / 2] = data;
+ break;
+ case 0x02:
+ m_cps_a_regs[0x12 / 2] = data;
+ m_cps_a_regs[CPS1_ROWSCROLL_OFFS] = data; /* row scroll start */
+ break;
+ case 0x03:
+ m_cps_a_regs[0x10 / 2] = data;
+ break;
+ case 0x04:
+ m_cps_a_regs[0x16 / 2] = data;
+ break;
+ case 0x05:
+ m_cps_a_regs[0x14 / 2] = data;
+ break;
+ case 0x06:
+ {
+ switch (data)
+ {
+ case 0x0000:
+ case 0x001f:
+ case 0x00ff:
+ data = 0x12f2;
+ break;
+ case 0x2000:
+ data = 0x06f2;
+ break;
+ case 0xa000:
+ data = 0x24d0;
+ break;
+ default:
+ printf ("Unknown control word = %X\n",data);
+ data = 0x12c0;
+ }
+ m_cps_b_regs[m_layer_enable_reg / 2] = data;
+ break;
+ }
+ case 0x10:
+ m_cps_b_regs[m_layer_mask_reg[1] / 2] = data;
+ break;
+ case 0x11:
+ m_cps_b_regs[m_layer_mask_reg[2] / 2] = data;
+ break;
+ case 0x12:
+ m_cps_b_regs[m_layer_mask_reg[3] / 2] = data;
+ }
+}
+
+WRITE16_MEMBER(cps_state::punipic_layer_w)
+{
+ switch (offset)
+ {
+ case 0x00:
+ m_cps_a_regs[0x0e / 2] = data;
+ break;
+ case 0x01:
+ m_cps_a_regs[0x0c / 2] = data;
+ break;
+ case 0x02:
+ m_cps_a_regs[0x12 / 2] = data;
+ m_cps_a_regs[CPS1_ROWSCROLL_OFFS] = data; /* row scroll start */
+ break;
+ case 0x03:
+ m_cps_a_regs[0x10 / 2] = data + 0xffc0;
+ break;
+ case 0x04:
+ m_cps_a_regs[0x16 / 2] = data;
+ break;
+ case 0x05:
+ m_cps_a_regs[0x14 / 2] = data;
+ break;
+ case 0x06:
+ switch (data)
+ {
+ case 0x14:
+ case 0x54:
+ m_cps_a_regs[0x04 / 2] = 0x9100;
+ break;
+ case 0x24:
+ case 0x64:
+ m_cps_a_regs[0x04 / 2] = 0x90c0;
+ break;
+ case 0x3c:
+ case 0x7c:
+ m_cps_a_regs[0x04 / 2] = 0x9180;
+ break;
+ }
+
+ m_cps_a_regs[0x08 / 2] = m_mainram[0xdb90 / 2]; // fixes split objects
+ break;
+ case 0x07:
+ // unknown
+ break;
+ default:
+ logerror("%s: Unknown layer cmd %X %X\n",space.machine().describe_context(),offset<<1,data);
+
+ }
+}
+
+WRITE16_MEMBER(cps_state::sf2m1_layer_w)
+{
+ switch (offset)
+ {
+ case 0x00:
+ m_cps_a_regs[0x0e / 2] = data;
+ break;
+ case 0x01:
+ m_cps_a_regs[0x0c / 2] = data;
+ break;
+ case 0x02:
+ m_cps_a_regs[0x12 / 2] = data;
+ m_cps_a_regs[CPS1_ROWSCROLL_OFFS] = data; /* row scroll start */
+ break;
+ case 0x03:
+ m_cps_a_regs[0x10 / 2] = data;
+ break;
+ case 0x04:
+ m_cps_a_regs[0x16 / 2] = data;
+ break;
+ case 0x05:
+ m_cps_a_regs[0x14 / 2] = data;
+ break;
+ case 0x06:
+ switch (data)
+ {
+ case 0:
+ data = 0x078e;
+ break;
+ case 1:
+ data = 0x12c0;
+ break;
+ case 2:
+ data = 0x06ce;
+ break;
+ case 3:
+ data = 0x09ce;
+ break;
+ case 4:
+ data = 0x12ce;
+ break;
+ case 5:
+ data = 0x0b4e;
+ break;
+ }
+ case 0xb3:
+ m_cps_b_regs[m_layer_enable_reg / 2] = data;
+ break;
+ case 0x0b:
+ case 0x1b:
+ m_cps_a_regs[0x06 / 2] = data;
+ break;
+ default:
+ logerror("%s: Unknown layer cmd %X %X\n",space.machine().describe_context(),offset<<1,data);
+
+ }
+}
+
+WRITE16_MEMBER(cps_state::sf2mdt_layer_w)
+{
+ /* layer enable and scroll registers are written here - passing them to m_cps_b_regs and m_cps_a_regs for now for drawing routines
+ the scroll layers aren't buttery smooth, due to the lack of using the row scroll address tables in the rendering code, this is also
+ supported by the fact that the game doesn't write the table address anywhere */
+
+ switch (offset)
+ {
+ case 0x06:
+ m_cps_a_regs[0x14 / 2] = data + 0xffce; /* scroll 3x */
+ break;
+ case 0x07:
+ m_cps_a_regs[0x16 / 2] = data; /* scroll 3y */
+ break;
+ case 0x08:
+ m_cps_a_regs[0x10 / 2] = data + 0xffce; /* scroll 2x */
+ break;
+ case 0x09:
+ m_cps_a_regs[0x0c / 2] = data + 0xffca; /* scroll 1x */
+ break;
+ case 0x0a:
+ m_cps_a_regs[0x12 / 2] = data; /* scroll 2y */
+ m_cps_a_regs[CPS1_ROWSCROLL_OFFS] = data; /* row scroll start */
+ break;
+ case 0x0b:
+ m_cps_a_regs[0x0e / 2] = data; /* scroll 1y */
+ break;
+ case 0x26:
+ m_cps_b_regs[m_layer_enable_reg / 2] = data;
+ }
+}
+
+WRITE16_MEMBER(cps_state::sf2mdta_layer_w)
+{
+ /* layer enable and scroll registers are written here - passing them to m_cps_b_regs and m_cps_a_regs for now for drawing routines
+ the scroll layers aren't buttery smooth, due to the lack of using the row scroll address tables in the rendering code, this is also
+ supported by the fact that the game doesn't write the table address anywhere */
+
+ switch (offset)
+ {
+ case 0x06:
+ m_cps_a_regs[0x0c / 2] = data + 0xffbe; /* scroll 1x */
+ break;
+ case 0x07:
+ m_cps_a_regs[0x0e / 2] = data; /* scroll 1y */
+ break;
+ case 0x08:
+ m_cps_a_regs[0x14 / 2] = data + 0xffce; /* scroll 3x */
+ break;
+ case 0x09:
+ m_cps_a_regs[0x12 / 2] = data; /* scroll 2y */
+ m_cps_a_regs[CPS1_ROWSCROLL_OFFS] = data; /* row scroll start */
+ break;
+ case 0x0a:
+ m_cps_a_regs[0x10 / 2] = data + 0xffce; /* scroll 2x */
+ break;
+ case 0x0b:
+ m_cps_a_regs[0x16 / 2] = data; /* scroll 3y */
+ break;
+ case 0x26:
+ m_cps_b_regs[m_layer_enable_reg / 2] = data;
+ }
+}
+
+WRITE16_MEMBER(cps_state::slampic_layer_w)
+{
+ switch (offset)
+ {
+ case 0x00:
+ case 0x01:
+ case 0x02:
+ case 0x03:
+ case 0x04:
+ case 0x05:
+ dinopic_layer_w(space, offset, data);
+ break;
+ case 0x06: // scroll 2 base
+ m_cps_a_regs[0x04/2] = data << 4;
+ break;
+ }
+}
+
+
+void cps_state::fcrash_update_transmasks()
+{
+ int i;
+
+ for (i = 0; i < 4; i++)
+ {
+ int mask;
+
+ /* Get transparency registers */
+ if (m_layer_mask_reg[i])
+ mask = m_cps_b_regs[m_layer_mask_reg[i] / 2] ^ 0xffff;
+ else
+ mask = 0xffff; /* completely transparent if priority masks not defined (mercs, qad) */
+
+ m_bg_tilemap[0]->set_transmask(i, mask, 0x8000);
+ m_bg_tilemap[1]->set_transmask(i, mask, 0x8000);
+ m_bg_tilemap[2]->set_transmask(i, mask, 0x8000);
+ }
+}
+
+void cps_state::fcrash_render_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect )
+{
+ int pos;
+ int base = m_sprite_base / 2;
+ int num_sprites = m_gfxdecode->gfx(2)->elements();
+ int last_sprite_offset = 0x1ffc;
+ uint16_t *sprite_ram = m_gfxram;
+ uint16_t tileno,colour,xpos,ypos;
+ bool flipx, flipy;
+
+ /* if we have separate sprite ram, use it */
+ if (m_bootleg_sprite_ram) sprite_ram = m_bootleg_sprite_ram.get();
+
+ /* get end of sprite list marker */
+ for (pos = 0x1ffc - base; pos >= 0x0000; pos -= 4)
+ if (sprite_ram[base + pos - 1] == m_sprite_list_end_marker) last_sprite_offset = pos;
+
+ /* If we are using bootleg sprite ram, the index must be less than 0x2000 */
+ if (((base + last_sprite_offset) < 0x2000) || (!m_bootleg_sprite_ram))
+ {
+ for (pos = last_sprite_offset; pos >= 0x0000; pos -= 4)
+ {
+ tileno = sprite_ram[base + pos];
+ if (tileno >= num_sprites) continue; /* don't render anything outside our tiles */
+ xpos = sprite_ram[base + pos + 2] & 0x1ff;
+ ypos = sprite_ram[base + pos - 1] & 0x1ff;
+ flipx = BIT(sprite_ram[base + pos + 1], 5);
+ flipy = BIT(sprite_ram[base + pos + 1], 6);
+ colour = sprite_ram[base + pos + 1] & 0x1f;
+ ypos = 256 - ypos - 16;
+ xpos = xpos + m_sprite_x_offset + 49;
+
+ if (flip_screen())
+ m_gfxdecode->gfx(2)->prio_transpen(bitmap, cliprect, tileno, colour, !flipx, !flipy, 512-16-xpos, 256-16-ypos, screen.priority(), 2, 15);
+ else
+ m_gfxdecode->gfx(2)->prio_transpen(bitmap, cliprect, tileno, colour, flipx, flipy, xpos, ypos, screen.priority(), 2, 15);
+ }
+ }
+}
+
+void cps_state::fcrash_render_layer( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int primask )
+{
+ switch (layer)
+ {
+ case 0:
+ fcrash_render_sprites(screen, bitmap, cliprect);
+ break;
+ case 1:
+ case 2:
+ case 3:
+ m_bg_tilemap[layer - 1]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1, primask);
+ break;
+ }
+}
+
+void cps_state::fcrash_render_high_layer( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int layer )
+{
+ bitmap_ind16 dummy_bitmap;
+
+ switch (layer)
+ {
+ case 0:
+ /* there are no high priority sprites */
+ break;
+ case 1:
+ case 2:
+ case 3:
+ m_bg_tilemap[layer - 1]->draw(screen, dummy_bitmap, cliprect, TILEMAP_DRAW_LAYER0, 1);
+ break;
+ }
+}
+
+void cps_state::fcrash_build_palette()
+{
+ int offset;
+
+ // all the bootlegs seem to write the palette offset as usual
+ int palettebase = (m_cps_a_regs[0x0a / 2] << 8) & 0x1ffff;
+
+ for (offset = 0; offset < 32 * 6 * 16; offset++)
+ {
+ int palette = m_gfxram[palettebase / 2 + offset];
+ int r, g, b, bright;
+
+ // from my understanding of the schematics, when the 'brightness'
+ // component is set to 0 it should reduce brightness to 1/3
+
+ bright = 0x0f + ((palette >> 12) << 1);
+
+ r = ((palette >> 8) & 0x0f) * 0x11 * bright / 0x2d;
+ g = ((palette >> 4) & 0x0f) * 0x11 * bright / 0x2d;
+ b = ((palette >> 0) & 0x0f) * 0x11 * bright / 0x2d;
+
+ m_palette->set_pen_color (offset, rgb_t(r, g, b));
+ }
+}
+
+uint32_t cps_state::screen_update_fcrash(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+{
+ int layercontrol, l0, l1, l2, l3;
+ int videocontrol = m_cps_a_regs[0x22 / 2];
+
+ flip_screen_set(videocontrol & 0x8000);
+
+ layercontrol = m_cps_b_regs[m_layer_enable_reg / 2];
+
+ /* Get video memory base registers */
+ cps1_get_video_base();
+
+ /* Build palette */
+ fcrash_build_palette();
+
+ fcrash_update_transmasks();
+
+ m_bg_tilemap[0]->set_scrollx(0, m_scroll1x - m_layer_scroll1x_offset);
+ m_bg_tilemap[0]->set_scrolly(0, m_scroll1y);
+
+ if (videocontrol & 0x01) /* linescroll enable */
+ {
+ int scrly = -m_scroll2y;
+ int i;
+ int otheroffs;
+
+ m_bg_tilemap[1]->set_scroll_rows(1024);
+
+ otheroffs = m_cps_a_regs[CPS1_ROWSCROLL_OFFS];
+
+ for (i = 0; i < 256; i++)
+ m_bg_tilemap[1]->set_scrollx((i - scrly) & 0x3ff, m_scroll2x + m_other[(i + otheroffs) & 0x3ff]);
+ }
+ else
+ {
+ m_bg_tilemap[1]->set_scroll_rows(1);
+ m_bg_tilemap[1]->set_scrollx(0, m_scroll2x - m_layer_scroll2x_offset);
+ }
+ m_bg_tilemap[1]->set_scrolly(0, m_scroll2y);
+ m_bg_tilemap[2]->set_scrollx(0, m_scroll3x - m_layer_scroll3x_offset);
+ m_bg_tilemap[2]->set_scrolly(0, m_scroll3y);
+
+
+ /* turn all tilemaps on regardless of settings in get_video_base() */
+ /* write a custom get_video_base for this bootleg hardware? */
+ m_bg_tilemap[0]->enable(1);
+ m_bg_tilemap[1]->enable(1);
+ m_bg_tilemap[2]->enable(1);
+
+ /* Blank screen */
+ bitmap.fill(0xbff, cliprect);
+
+ screen.priority().fill(0, cliprect);
+ l0 = (layercontrol >> 0x06) & 03;
+ l1 = (layercontrol >> 0x08) & 03;
+ l2 = (layercontrol >> 0x0a) & 03;
+ l3 = (layercontrol >> 0x0c) & 03;
+
+ fcrash_render_layer(screen, bitmap, cliprect, l0, 0);
+
+ if (l1 == 0)
+ fcrash_render_high_layer(screen, bitmap, cliprect, l0);
+
+ fcrash_render_layer(screen, bitmap, cliprect, l1, 0);
+
+ if (l2 == 0)
+ fcrash_render_high_layer(screen, bitmap, cliprect, l1);
+
+ fcrash_render_layer(screen, bitmap, cliprect, l2, 0);
+
+ if (l3 == 0)
+ fcrash_render_high_layer(screen, bitmap, cliprect, l2);
+
+ fcrash_render_layer(screen, bitmap, cliprect, l3, 0);
+
+ return 0;
+}
+
+
+static ADDRESS_MAP_START( knightsb_map, AS_PROGRAM, 16, cps_state )
+ AM_RANGE(0x000000, 0x3fffff) AM_ROM
+ AM_RANGE(0x800000, 0x800001) AM_READ_PORT("IN1") /* Player input ports */
+ AM_RANGE(0x800002, 0x800003) AM_READ_PORT("IN2") /* Player 3 controls */
+ AM_RANGE(0x800004, 0x800005) AM_WRITENOP // writes 0000 here
+ AM_RANGE(0x800006, 0x800007) AM_WRITE(fcrash_soundlatch_w) /* Sound command */
+ AM_RANGE(0x800018, 0x80001f) AM_READ(cps1_dsw_r) /* System input ports / Dip Switches */
+ AM_RANGE(0x800030, 0x800037) AM_WRITENOP //AM_WRITE(cps1_coinctrl_w) only writes bit 15
+ AM_RANGE(0x800100, 0x80013f) AM_RAM AM_SHARE("cps_a_regs") /* CPS-A custom */
+ AM_RANGE(0x800140, 0x80017f) AM_RAM AM_SHARE("cps_b_regs") /* CPS-B custom */
+ AM_RANGE(0x800180, 0x800181) AM_WRITENOP //AM_WRITE(cps1_soundlatch2_w) /* Sound timer fade */
+ AM_RANGE(0x880000, 0x880001) AM_WRITENOP // unknown
+ AM_RANGE(0x900000, 0x93ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram")
+ AM_RANGE(0x980000, 0x98002f) AM_WRITE(knightsb_layer_w)
+ AM_RANGE(0x990000, 0x990001) AM_WRITENOP // same as 880000
+ AM_RANGE(0xff0000, 0xffffff) AM_RAM
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( dinopic_map, AS_PROGRAM, 16, cps_state )
+ AM_RANGE(0x000000, 0x3fffff) AM_ROM
+ AM_RANGE(0x800000, 0x800007) AM_READ_PORT("IN1") /* Player input ports */
+ AM_RANGE(0x800006, 0x800007) AM_WRITE(cps1_soundlatch_w) /* Sound command */
+ AM_RANGE(0x800018, 0x80001f) AM_READ(cps1_dsw_r) /* System input ports / Dip Switches */
+ AM_RANGE(0x800030, 0x800037) AM_WRITE(cps1_coinctrl_w)
+ AM_RANGE(0x800100, 0x80013f) AM_WRITE(cps1_cps_a_w) AM_SHARE("cps_a_regs") /* CPS-A custom */
+ AM_RANGE(0x800140, 0x80017f) AM_READWRITE(cps1_cps_b_r, cps1_cps_b_w) AM_SHARE("cps_b_regs")
+ AM_RANGE(0x800222, 0x800223) AM_WRITE(dinopic_layer2_w)
+ AM_RANGE(0x880000, 0x880001) AM_WRITENOP // always 0
+ AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram")
+ AM_RANGE(0x980000, 0x98000b) AM_WRITE(dinopic_layer_w)
+ AM_RANGE(0xf18000, 0xf19fff) AM_RAM
+ AM_RANGE(0xf1c000, 0xf1c001) AM_READ_PORT("IN2") /* Player 3 controls (later games) */
+ AM_RANGE(0xf1c004, 0xf1c005) AM_WRITE(cpsq_coinctrl2_w) /* Coin control2 (later games) */
+ AM_RANGE(0xf1c006, 0xf1c007) AM_READ_PORT("EEPROMIN") AM_WRITE_PORT("EEPROMOUT")
+ AM_RANGE(0xff0000, 0xffffff) AM_RAM
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( fcrash_map, AS_PROGRAM, 16, cps_state )
+ AM_RANGE(0x000000, 0x3fffff) AM_ROM
+ AM_RANGE(0x800030, 0x800031) AM_WRITE(cps1_coinctrl_w)
+ AM_RANGE(0x800100, 0x80013f) AM_RAM AM_SHARE("cps_a_regs") /* CPS-A custom */
+ AM_RANGE(0x800140, 0x80017f) AM_RAM AM_SHARE("cps_b_regs") /* CPS-B custom */
+ AM_RANGE(0x880000, 0x880001) AM_READ_PORT("IN1") /* Player input ports */
+ AM_RANGE(0x880006, 0x880007) AM_WRITE(fcrash_soundlatch_w) /* Sound command */
+ AM_RANGE(0x880008, 0x88000f) AM_READ(cps1_dsw_r) /* System input ports / Dip Switches */
+ AM_RANGE(0x890000, 0x890001) AM_WRITENOP // palette related?
+ AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram")
+ AM_RANGE(0xff0000, 0xffffff) AM_RAM
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( punipic_map, AS_PROGRAM, 16, cps_state )
+ AM_RANGE(0x000000, 0x3fffff) AM_ROM
+ AM_RANGE(0x800000, 0x800007) AM_READ_PORT("IN1") /* Player input ports */
+ AM_RANGE(0x800006, 0x800007) AM_WRITE(cps1_soundlatch_w) /* Sound command */
+ AM_RANGE(0x800018, 0x80001f) AM_READ(cps1_dsw_r) /* System input ports / Dip Switches */
+ AM_RANGE(0x800030, 0x800037) AM_WRITE(cps1_coinctrl_w)
+ AM_RANGE(0x800100, 0x80013f) AM_WRITE(cps1_cps_a_w) AM_SHARE("cps_a_regs") /* CPS-A custom */
+ AM_RANGE(0x800140, 0x80017f) AM_READWRITE(cps1_cps_b_r, cps1_cps_b_w) AM_SHARE("cps_b_regs")
+ AM_RANGE(0x880000, 0x880001) AM_WRITENOP // same as 98000C
+ AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram")
+ AM_RANGE(0x980000, 0x98000f) AM_WRITE(punipic_layer_w)
+ AM_RANGE(0x990000, 0x990001) AM_WRITENOP // unknown
+ AM_RANGE(0x991000, 0x991017) AM_WRITENOP // unknown
+ AM_RANGE(0xf18000, 0xf19fff) AM_RAM
+ AM_RANGE(0xf1c006, 0xf1c007) AM_READ_PORT("EEPROMIN") AM_WRITE_PORT("EEPROMOUT")
+ AM_RANGE(0xff0000, 0xffffff) AM_RAM AM_SHARE("mainram")
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( sf2m1_map, AS_PROGRAM, 16, cps_state )
+ AM_RANGE(0x000000, 0x3fffff) AM_ROM
+ AM_RANGE(0x800000, 0x800007) AM_READ_PORT("IN1") /* Player input ports */
+ AM_RANGE(0x800006, 0x800007) AM_WRITE(cps1_soundlatch_w) /* Sound command */
+ AM_RANGE(0x800012, 0x800013) AM_READ(cps1_in2_r) /* Buttons 4,5,6 for both players */
+ AM_RANGE(0x800018, 0x80001f) AM_READ(cps1_dsw_r) /* System input ports / Dip Switches */
+ AM_RANGE(0x800100, 0x80013f) AM_WRITE(cps1_cps_a_w) AM_SHARE("cps_a_regs") /* CPS-A custom */
+ AM_RANGE(0x800140, 0x80017f) AM_READWRITE(cps1_cps_b_r, cps1_cps_b_w) AM_SHARE("cps_b_regs")
+ AM_RANGE(0x800180, 0x800181) AM_WRITENOP // only once at boot, for 80010c
+ AM_RANGE(0x800188, 0x80018f) AM_WRITE(cps1_soundlatch2_w) /* Sound timer fade */
+ AM_RANGE(0x880000, 0x880001) AM_WRITENOP // unknown
+ AM_RANGE(0x900000, 0x93ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram")
+ AM_RANGE(0x980000, 0x9801ff) AM_WRITE(sf2m1_layer_w)
+ AM_RANGE(0x990000, 0x990001) AM_WRITENOP // same as 880000
+ AM_RANGE(0xff0000, 0xffffff) AM_RAM
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( sf2mdt_map, AS_PROGRAM, 16, cps_state )
+ AM_RANGE(0x000000, 0x3fffff) AM_ROM
+ AM_RANGE(0x708100, 0x7081ff) AM_WRITE(sf2mdta_layer_w)
+ AM_RANGE(0x70c000, 0x70c001) AM_READ_PORT("IN1")
+ AM_RANGE(0x70c008, 0x70c009) AM_READ_PORT("IN2")
+ AM_RANGE(0x70c018, 0x70c01f) AM_READ(cps1_hack_dsw_r)
+ AM_RANGE(0x70c106, 0x70c107) AM_WRITE(cawingbl_soundlatch_w)
+ AM_RANGE(0x70d000, 0x70d001) AM_WRITENOP // writes FFFF
+ //AM_RANGE(0x800030, 0x800031) AM_WRITE(cps1_coinctrl_w)
+ AM_RANGE(0x800100, 0x80013f) AM_RAM AM_SHARE("cps_a_regs") /* CPS-A custom */
+ AM_RANGE(0x800140, 0x80017f) AM_RAM AM_SHARE("cps_b_regs") /* CPS-B custom */
+ AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram")
+ AM_RANGE(0xff0000, 0xffffff) AM_RAM
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( sf2b_map, AS_PROGRAM, 16, cps_state )
+ AM_RANGE(0x000000, 0x3fffff) AM_ROM
+ AM_RANGE(0x708100, 0x7081ff) AM_WRITE(sf2mdta_layer_w)
+ AM_RANGE(0x70c000, 0x70c001) AM_READ_PORT("IN1")
+ AM_RANGE(0x70c008, 0x70c009) AM_READ_PORT("IN2")
+ AM_RANGE(0x70c018, 0x70c01f) AM_READ(cps1_hack_dsw_r)
+ AM_RANGE(0x70c106, 0x70c107) AM_WRITE(cawingbl_soundlatch_w)
+ AM_RANGE(0x70d000, 0x70d001) AM_WRITENOP // writes FFFF
+ //AM_RANGE(0x800030, 0x800031) AM_WRITE(cps1_coinctrl_w)
+ AM_RANGE(0x800100, 0x80013f) AM_RAM AM_SHARE("cps_a_regs") /* CPS-A custom */
+ AM_RANGE(0x800140, 0x80017f) AM_READWRITE(cps1_cps_b_r, cps1_cps_b_w) AM_SHARE("cps_b_regs") /* CPS-B custom */
+ AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram")
+ AM_RANGE(0xff0000, 0xffffff) AM_RAM
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( sgyxz_map, AS_PROGRAM, 16, cps_state )
+ AM_RANGE(0x000000, 0x3fffff) AM_ROM
+ AM_RANGE(0x800030, 0x800031) AM_WRITE(cps1_coinctrl_w)
+ AM_RANGE(0x800100, 0x80013f) AM_RAM AM_SHARE("cps_a_regs") /* CPS-A custom */
+ AM_RANGE(0x800140, 0x80017f) AM_RAM AM_SHARE("cps_b_regs") /* CPS-B custom */
+ AM_RANGE(0x880000, 0x880001) AM_READ_PORT("IN1") /* Player input ports */
+ AM_RANGE(0x880006, 0x88000d) AM_READ(cps1_dsw_r) /* System input ports / Dip Switches */
+ AM_RANGE(0x88000e, 0x88000f) AM_WRITE(cps1_soundlatch_w)
+ AM_RANGE(0x880e78, 0x880e79) AM_READ(cps1_in2_r) /* Player 3 controls (later games) */
+ AM_RANGE(0x890000, 0x890001) AM_WRITE(cps1_soundlatch2_w)
+ AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram")
+ AM_RANGE(0xf1c004, 0xf1c005) AM_WRITE(cpsq_coinctrl2_w) /* Coin control2 (later games) */
+ AM_RANGE(0xf1c006, 0xf1c007) AM_READ_PORT("EEPROMIN") AM_WRITE_PORT("EEPROMOUT")
+ AM_RANGE(0xff0000, 0xffffff) AM_RAM
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( slampic_map, AS_PROGRAM, 16, cps_state )
+ AM_RANGE(0x000000, 0x3fffff) AM_ROM
+ AM_RANGE(0x800006, 0x800007) AM_WRITENOP //AM_WRITE(cps1_soundlatch2_w)
+ AM_RANGE(0x800000, 0x800007) AM_READ_PORT("IN1") /* Player input ports */
+ AM_RANGE(0x800018, 0x80001f) AM_READ(cps1_dsw_r) /* System input ports / Dip Switches */
+ AM_RANGE(0x800030, 0x800037) AM_WRITE(cps1_coinctrl_w)
+ AM_RANGE(0x800100, 0x80013f) AM_WRITE(cps1_cps_a_w) AM_SHARE("cps_a_regs") /* CPS-A custom */
+ AM_RANGE(0x800140, 0x80017f) AM_READWRITE(cps1_cps_b_r, cps1_cps_b_w) AM_SHARE("cps_b_regs")
+ AM_RANGE(0x880000, 0x880001) AM_WRITENOP //AM_WRITE(cps1_soundlatch_w) /* Sound command */
+ AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram")
+ AM_RANGE(0x980000, 0x98000d) AM_WRITE(slampic_layer_w)
+ AM_RANGE(0xf00000, 0xf0ffff) AM_READ(qsound_rom_r) /* Slammasters protection */
+ AM_RANGE(0xf18000, 0xf19fff) AM_RAM
+ AM_RANGE(0xf1c000, 0xf1c001) AM_READ_PORT("IN2") /* Player 3 controls (later games) */
+ AM_RANGE(0xf1c004, 0xf1c005) AM_WRITE(cpsq_coinctrl2_w) /* Coin control2 (later games) */
+ AM_RANGE(0xf1c006, 0xf1c007) AM_READ_PORT("EEPROMIN") AM_WRITE_PORT("EEPROMOUT")
+ AM_RANGE(0xf1f000, 0xf1ffff) AM_NOP // writes 0 to range, then reads F1F6EC
+ AM_RANGE(0xff0000, 0xffffff) AM_RAM
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, cps_state )
+ AM_RANGE(0x0000, 0x7fff) AM_ROM
+ AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
+ AM_RANGE(0xd000, 0xd7ff) AM_RAM
+ AM_RANGE(0xd800, 0xd801) AM_DEVREADWRITE("ym1", ym2203_device, read, write)
+ AM_RANGE(0xdc00, 0xdc01) AM_DEVREADWRITE("ym2", ym2203_device, read, write)
+ AM_RANGE(0xe000, 0xe000) AM_WRITE(fcrash_snd_bankswitch_w)
+ AM_RANGE(0xe400, 0xe400) AM_DEVREAD("soundlatch", generic_latch_8_device, read)
+ AM_RANGE(0xe800, 0xe800) AM_WRITE(fcrash_msm5205_0_data_w)
+ AM_RANGE(0xec00, 0xec00) AM_WRITE(fcrash_msm5205_1_data_w)
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( kodb_sound_map, AS_PROGRAM, 8, cps_state )
+ AM_RANGE(0x0000, 0x7fff) AM_ROM
+ AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
+ AM_RANGE(0xd000, 0xd7ff) AM_RAM
+ AM_RANGE(0xe000, 0xe001) AM_DEVREADWRITE("2151", ym2151_device, read, write)
+ AM_RANGE(0xe400, 0xe400) AM_DEVREADWRITE("oki", okim6295_device, read, write)
+ AM_RANGE(0xe800, 0xe800) AM_DEVREAD("soundlatch", generic_latch_8_device, read)
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( sf2mdt_z80map, AS_PROGRAM, 8, cps_state )
+ AM_RANGE(0x0000, 0x7fff) AM_ROM
+ AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
+ AM_RANGE(0xd000, 0xd7ff) AM_RAM
+ AM_RANGE(0xd800, 0xd801) AM_DEVREADWRITE("2151", ym2151_device, read, write)
+ AM_RANGE(0xdc00, 0xdc00) AM_DEVREAD("soundlatch", generic_latch_8_device, read)
+ AM_RANGE(0xe000, 0xe000) AM_WRITE(sf2mdt_snd_bankswitch_w)
+ AM_RANGE(0xe400, 0xe400) AM_WRITE(fcrash_msm5205_0_data_w)
+ AM_RANGE(0xe800, 0xe800) AM_WRITE(fcrash_msm5205_1_data_w)
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( knightsb_z80map, AS_PROGRAM, 8, cps_state )
+ AM_RANGE(0x0000, 0x7fff) AM_ROM
+ AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
+ AM_RANGE(0xcffe, 0xcfff) AM_WRITENOP // writes lots of data
+ AM_RANGE(0xd000, 0xd7ff) AM_RAM
+ AM_RANGE(0xd800, 0xd801) AM_DEVREADWRITE("2151", ym2151_device, read, write)
+ AM_RANGE(0xdc00, 0xdc00) AM_DEVREAD("soundlatch", generic_latch_8_device, read)
+ AM_RANGE(0xe000, 0xe000) AM_WRITE(knightsb_snd_bankswitch_w)
+ AM_RANGE(0xe400, 0xe400) AM_WRITE(fcrash_msm5205_0_data_w)
+ AM_RANGE(0xe800, 0xe800) AM_WRITE(fcrash_msm5205_1_data_w)
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( sgyxz_sound_map, AS_PROGRAM, 8, cps_state )
+ AM_RANGE(0x0000, 0x7fff) AM_ROM
+ AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
+ AM_RANGE(0xd000, 0xd7ff) AM_RAM
+ AM_RANGE(0xf000, 0xf001) AM_DEVREADWRITE("2151", ym2151_device, read, write)
+ AM_RANGE(0xf002, 0xf002) AM_DEVREADWRITE("oki", okim6295_device, read, write)
+ AM_RANGE(0xf004, 0xf004) AM_WRITE(cps1_snd_bankswitch_w)
+ AM_RANGE(0xf006, 0xf006) AM_WRITE(cps1_oki_pin7_w) /* controls pin 7 of OKI chip */
+ AM_RANGE(0xf008, 0xf008) AM_DEVREAD("soundlatch", generic_latch_8_device, read)
+ AM_RANGE(0xf00a, 0xf00a) AM_DEVREAD("soundlatch2", generic_latch_8_device, read)
+ADDRESS_MAP_END
+
+
+#define CPS1_COINAGE_1 \
+ PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coin_A ) ) \
+ PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) \
+ PORT_DIPSETTING( 0x01, DEF_STR( 3C_1C ) ) \
+ PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) ) \
+ PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) ) \
+ PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) ) \
+ PORT_DIPSETTING( 0x05, DEF_STR( 1C_3C ) ) \
+ PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ) ) \
+ PORT_DIPSETTING( 0x03, DEF_STR( 1C_6C ) ) \
+ PORT_DIPNAME( 0x38, 0x38, DEF_STR( Coin_B ) ) \
+ PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) \
+ PORT_DIPSETTING( 0x08, DEF_STR( 3C_1C ) ) \
+ PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) \
+ PORT_DIPSETTING( 0x38, DEF_STR( 1C_1C ) ) \
+ PORT_DIPSETTING( 0x30, DEF_STR( 1C_2C ) ) \
+ PORT_DIPSETTING( 0x28, DEF_STR( 1C_3C ) ) \
+ PORT_DIPSETTING( 0x20, DEF_STR( 1C_4C ) ) \
+ PORT_DIPSETTING( 0x18, DEF_STR( 1C_6C ) )
+
+
+#define CPS1_COINAGE_2(diploc) \
+ PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coinage ) ) PORT_DIPLOCATION(diploc ":1,2,3") \
+ PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) \
+ PORT_DIPSETTING( 0x01, DEF_STR( 3C_1C ) ) \
+ PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) ) \
+ PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) ) \
+ PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) ) \
+ PORT_DIPSETTING( 0x05, DEF_STR( 1C_3C ) ) \
+ PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ) ) \
+ PORT_DIPSETTING( 0x03, DEF_STR( 1C_6C ) )
+
+#define CPS1_COINAGE_3(diploc) \
+ PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coin_A ) ) PORT_DIPLOCATION(diploc ":1,2,3") \
+ PORT_DIPSETTING( 0x01, DEF_STR( 4C_1C ) ) \
+ PORT_DIPSETTING( 0x02, DEF_STR( 3C_1C ) ) \
+ PORT_DIPSETTING( 0x03, DEF_STR( 2C_1C ) ) \
+ PORT_DIPSETTING( 0x00, "2 Coins/1 Credit (1 to continue)" ) \
+ PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) ) \
+ PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) ) \
+ PORT_DIPSETTING( 0x05, DEF_STR( 1C_3C ) ) \
+ PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ) ) \
+ PORT_DIPNAME( 0x38, 0x38, DEF_STR( Coin_B ) ) PORT_DIPLOCATION(diploc ":4,5,6") \
+ PORT_DIPSETTING( 0x08, DEF_STR( 4C_1C ) ) \
+ PORT_DIPSETTING( 0x10, DEF_STR( 3C_1C ) ) \
+ PORT_DIPSETTING( 0x18, DEF_STR( 2C_1C ) ) \
+ PORT_DIPSETTING( 0x00, "2 Coins/1 Credit (1 to continue)" ) \
+ PORT_DIPSETTING( 0x38, DEF_STR( 1C_1C ) ) \
+ PORT_DIPSETTING( 0x30, DEF_STR( 1C_2C ) ) \
+ PORT_DIPSETTING( 0x28, DEF_STR( 1C_3C ) ) \
+ PORT_DIPSETTING( 0x20, DEF_STR( 1C_4C ) )
+
+#define CPS1_DIFFICULTY_1(diploc) \
+ PORT_DIPNAME( 0x07, 0x04, DEF_STR( Difficulty ) ) PORT_DIPLOCATION(diploc ":1,2,3") \
+ PORT_DIPSETTING( 0x07, "1 (Easiest)" ) \
+ PORT_DIPSETTING( 0x06, "2" ) \
+ PORT_DIPSETTING( 0x05, "3" ) \
+ PORT_DIPSETTING( 0x04, "4 (Normal)" ) \
+ PORT_DIPSETTING( 0x03, "5" ) \
+ PORT_DIPSETTING( 0x02, "6" ) \
+ PORT_DIPSETTING( 0x01, "7" ) \
+ PORT_DIPSETTING( 0x00, "8 (Hardest)" )
+
+#define CPS1_DIFFICULTY_2(diploc) \
+ PORT_DIPNAME( 0x07, 0x07, DEF_STR( Difficulty ) ) PORT_DIPLOCATION(diploc ":1,2,3") \
+ PORT_DIPSETTING( 0x04, "1 (Easiest)" ) \
+ PORT_DIPSETTING( 0x05, "2" ) \
+ PORT_DIPSETTING( 0x06, "3" ) \
+ PORT_DIPSETTING( 0x07, "4 (Normal)" ) \
+ PORT_DIPSETTING( 0x03, "5" ) \
+ PORT_DIPSETTING( 0x02, "6" ) \
+ PORT_DIPSETTING( 0x01, "7" ) \
+ PORT_DIPSETTING( 0x00, "8 (Hardest)" )
+
+
+static INPUT_PORTS_START( fcrash )
+ PORT_START("IN0")
+ 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_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
+ PORT_SERVICE( 0x40, IP_ACTIVE_LOW )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("DSWA")
+ CPS1_COINAGE_1
+ PORT_DIPNAME( 0x40, 0x40, "2 Coins to Start, 1 to Continue" )
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPUNUSED( 0x80, IP_ACTIVE_LOW )
+
+ PORT_START("DSWB")
+ PORT_DIPNAME( 0x07, 0x04, "Difficulty Level 1" )
+ PORT_DIPSETTING( 0x07, DEF_STR( Easiest ) ) // "01"
+ PORT_DIPSETTING( 0x06, DEF_STR( Easier ) ) // "02"
+ PORT_DIPSETTING( 0x05, DEF_STR( Easy ) ) // "03"
+ PORT_DIPSETTING( 0x04, DEF_STR( Normal ) ) // "04"
+ PORT_DIPSETTING( 0x03, DEF_STR( Medium ) ) // "05"
+ PORT_DIPSETTING( 0x02, DEF_STR( Hard ) ) // "06"
+ PORT_DIPSETTING( 0x01, DEF_STR( Harder ) ) // "07"
+ PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) // "08"
+ PORT_DIPNAME( 0x18, 0x10, "Difficulty Level 2" )
+ PORT_DIPSETTING( 0x18, DEF_STR( Easy ) ) // "01"
+ PORT_DIPSETTING( 0x10, DEF_STR( Normal ) ) // "02"
+ PORT_DIPSETTING( 0x08, DEF_STR( Hard ) ) // "03"
+ PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) // "04"
+ PORT_DIPNAME( 0x60, 0x60, DEF_STR( Bonus_Life ) )
+ PORT_DIPSETTING( 0x60, "100k" )
+ PORT_DIPSETTING( 0x40, "200k" )
+ PORT_DIPSETTING( 0x20, "100k and every 200k" )
+ PORT_DIPSETTING( 0x00, DEF_STR( None ) )
+ PORT_DIPUNUSED( 0x80, IP_ACTIVE_LOW )
+
+ PORT_START("DSWC")
+ PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
+ PORT_DIPSETTING( 0x00, "1" )
+ PORT_DIPSETTING( 0x03, "2" )
+ PORT_DIPSETTING( 0x02, "3" )
+ PORT_DIPSETTING( 0x01, "4" )
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) )
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x08, "Freeze" )
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) )
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) )
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
+ PORT_DIPNAME( 0x80, 0x80, "Game Mode")
+ PORT_DIPSETTING( 0x80, "Game" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Test ) )
+
+ PORT_START("IN1")
+ PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) PORT_NAME ("P1 Button 3 (Cheat)")
+ PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) 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_NAME ("P2 Button 3 (Cheat)")
+ PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( cawingbl )
+ PORT_START("IN0")
+ 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_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
+ PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("IN1")
+ PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) 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("DSWA")
+ CPS1_COINAGE_1
+ PORT_DIPNAME( 0x40, 0x40, "2 Coins to Start, 1 to Continue" )
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) // Overrides all other coinage settings
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) ) // according to manual
+ PORT_DIPUNUSED( 0x80, IP_ACTIVE_LOW ) // This switch is not documented
+
+ PORT_START("DSWB")
+ PORT_DIPNAME( 0x07, 0x04, "Difficulty Level (Enemy's Strength)" ) PORT_DIPLOCATION("SW(B):1,2,3")
+ PORT_DIPSETTING( 0x07, "1 (Easiest)" )
+ PORT_DIPSETTING( 0x06, "2" )
+ PORT_DIPSETTING( 0x05, "3" )
+ PORT_DIPSETTING( 0x04, "4 (Normal)" )
+ PORT_DIPSETTING( 0x03, "5" )
+ PORT_DIPSETTING( 0x02, "6" )
+ PORT_DIPSETTING( 0x01, "7" )
+ PORT_DIPSETTING( 0x00, "8 (Hardest)" )
+ PORT_DIPNAME( 0x18, 0x18, "Difficulty Level (Player's Strength)" ) PORT_DIPLOCATION("SW(B):4,5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Easy ) )
+ PORT_DIPSETTING( 0x18, DEF_STR( Normal ) )
+ PORT_DIPSETTING( 0x08, DEF_STR( Hard ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) )
+ PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW(B):6" ) // This switch is not documented
+ PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW(B):7" ) // This switch is not documented
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(B):8" ) // This switch is not documented
+
+ PORT_START("DSWC")
+ PORT_DIPUNUSED_DIPLOC( 0x01, 0x01, "SW(C):1" ) // This switch is not documented
+ PORT_DIPUNUSED_DIPLOC( 0x02, 0x02, "SW(C):2" ) // This switch is not documented
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW(C):3")
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x08, "Freeze" ) PORT_DIPLOCATION("SW(C):4")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
+ PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8")
+ PORT_DIPSETTING( 0x80, "Game" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Test ) )
+INPUT_PORTS_END
+
+
+static INPUT_PORTS_START( kodb )
+ PORT_START("IN0")
+ 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_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
+ PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("DSWA")
+ CPS1_COINAGE_2( "SW(A)" )
+ PORT_DIPNAME( 0x08, 0x08, "Coin Slots" ) PORT_DIPLOCATION("SW(A):4")
+ PORT_DIPSETTING( 0x00, "1" )
+ PORT_DIPSETTING( 0x08, "3" )
+ PORT_DIPNAME( 0x10, 0x10, "Play Mode" ) PORT_DIPLOCATION("SW(A):5")
+ PORT_DIPSETTING( 0x00, "2 Players" )
+ PORT_DIPSETTING( 0x10, "3 Players" )
+ PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW(A):6" )
+ PORT_DIPNAME( 0x40, 0x40, "2 Coins to Start, 1 to Continue" ) PORT_DIPLOCATION("SW(A):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(A):8" )
+
+ PORT_START("DSWB")
+ CPS1_DIFFICULTY_1( "SW(B)" )
+ PORT_DIPNAME( 0x38, 0x38, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW(B):4,5,6")
+ PORT_DIPSETTING( 0x30, "1" )
+ PORT_DIPSETTING( 0x38, "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, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW(B):7,8")
+ PORT_DIPSETTING( 0x80, "80k and every 400k" )
+ PORT_DIPSETTING( 0xc0, "100k and every 450k" )
+ PORT_DIPSETTING( 0x40, "160k and every 450k" )
+ PORT_DIPSETTING( 0x00, DEF_STR( None ) )
+
+ PORT_START("DSWC")
+ PORT_DIPUNUSED_DIPLOC( 0x01, 0x01, "SW(C):1" )
+ PORT_DIPUNUSED_DIPLOC( 0x02, 0x02, "SW(C):2" )
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW(C):3")
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x08, "Freeze" ) PORT_DIPLOCATION("SW(C):4")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
+ PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8")
+ PORT_DIPSETTING( 0x80, "Game" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Test ) )
+
+ PORT_START("IN1")
+ PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) 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_UNKNOWN )
+ PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("IN2")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3)
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3)
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN3 )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 )
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( sf2mdt )
+ PORT_START("IN0")
+ 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_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
+ PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("IN1")
+ PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P1 Jab Punch") PORT_PLAYER(1)
+ PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P1 Strong Punch") PORT_PLAYER(1)
+ PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("P1 Fierce Punch") PORT_PLAYER(1)
+ PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P2 Jab Punch") PORT_PLAYER(2)
+ PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P2 Strong Punch") PORT_PLAYER(2)
+ PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("P2 Fierce Punch") PORT_PLAYER(2)
+ PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("IN2") /* Extra buttons */
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("P1 Short Kick") PORT_PLAYER(1)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("P1 Forward Kick") PORT_PLAYER(1)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("P1 Roundhouse Kick") PORT_PLAYER(1)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("P2 Short Kick") PORT_PLAYER(2)
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("P2 Forward Kick") PORT_PLAYER(2)
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("P2 Roundhouse Kick") PORT_PLAYER(2)
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("DSWA")
+ CPS1_COINAGE_1
+ PORT_DIPNAME( 0x40, 0x40, "2 Coins to Start, 1 to Continue" ) PORT_DIPLOCATION("SW(A):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(A):8" )
+
+ PORT_START("DSWB")
+ CPS1_DIFFICULTY_1( "SW(B)" )
+ PORT_DIPUNUSED_DIPLOC( 0x08, 0x08, "SW(B):4" )
+ PORT_DIPUNUSED_DIPLOC( 0x10, 0x10, "SW(B):5" )
+ PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW(B):6" )
+ PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW(B):7" )
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(B):8" )
+
+ PORT_START("DSWC")
+ PORT_DIPUNUSED_DIPLOC( 0x01, 0x01, "SW(C):1" )
+ PORT_DIPUNUSED_DIPLOC( 0x02, 0x02, "SW(C):2" )
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW(C):3")
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x08, "Freeze" ) PORT_DIPLOCATION("SW(C):4")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
+ PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8")
+ PORT_DIPSETTING( 0x80, "Game" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Test ) )
+INPUT_PORTS_END
+
+
+
+static INPUT_PORTS_START( sf2mdtb )
+ PORT_START("IN0")
+ 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_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
+ PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("IN1")
+ PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P1 Jab Punch") PORT_PLAYER(1)
+ PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P1 Strong Punch") PORT_PLAYER(1)
+ PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("P1 Fierce Punch") PORT_PLAYER(1)
+ PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P2 Jab Punch") PORT_PLAYER(2)
+ PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P2 Strong Punch") PORT_PLAYER(2)
+ PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("P2 Fierce Punch") PORT_PLAYER(2)
+ PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("IN2") /* Extra buttons */
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("P1 Short Kick") PORT_PLAYER(1)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("P1 Forward Kick") PORT_PLAYER(1)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("P1 Roundhouse Kick") PORT_PLAYER(1)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("P2 Short Kick") PORT_PLAYER(2)
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("P2 Forward Kick") PORT_PLAYER(2)
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("P2 Roundhouse Kick") PORT_PLAYER(2)
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("DSWA")
+ CPS1_COINAGE_1
+ PORT_DIPNAME( 0x40, 0x40, "2 Coins to Start, 1 to Continue" ) PORT_DIPLOCATION("SW(A):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(A):8" ) //sort of debug mode...
+ //depnding (???) of other DSW setting get different
+ //"game" mode, autoplay, bonus round, ecc...
+ PORT_START("DSWB")
+ CPS1_DIFFICULTY_1( "SW(B)" )
+ PORT_DIPUNUSED_DIPLOC( 0x08, 0x08, "SW(B):4" )
+ PORT_DIPUNUSED_DIPLOC( 0x10, 0x10, "SW(B):5" )
+ PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW(B):6" )
+ PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW(B):7" )
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(B):8" )
+
+ PORT_START("DSWC")
+ PORT_DIPUNUSED_DIPLOC( 0x01, 0x01, "SW(C):1" )
+ PORT_DIPUNUSED_DIPLOC( 0x02, 0x02, "SW(C):2" )
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW(C):3")
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x08, "Freeze" ) PORT_DIPLOCATION("SW(C):4")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
+ PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8")
+ PORT_DIPSETTING( 0x80, "Game" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Test ) )
+INPUT_PORTS_END
+
+
+static INPUT_PORTS_START( sgyxz )
+ PORT_START ("IN0")
+ 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_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
+ PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START ("DSWA")
+ PORT_DIPNAME( 0x03, 0x00, "Play Mode" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Normal ) )
+ PORT_DIPSETTING( 0x03, "Tournament" )
+ PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START ("DSWB")
+ PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coinage ) )
+ PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( 1C_3C ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( 1C_4C ) )
+ PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START ("DSWC")
+ PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNKNOWN )
+
+ PORT_START ("IN1")
+ PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) 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 ("IN2") /* Player 3 */
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3)
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3)
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN3 )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 )
+
+ PORT_START( "EEPROMIN" )
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, do_read)
+
+ PORT_START( "EEPROMOUT" )
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, di_write)
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, clk_write)
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, cs_write)
+INPUT_PORTS_END
+
+
+MACHINE_START_MEMBER(cps_state,fcrash)
+{
+ uint8_t *ROM = memregion("audiocpu")->base();
+
+ membank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x4000);
+
+ m_layer_enable_reg = 0x20;
+ m_layer_mask_reg[0] = 0x26;
+ m_layer_mask_reg[1] = 0x30;
+ m_layer_mask_reg[2] = 0x28;
+ m_layer_mask_reg[3] = 0x32;
+ m_layer_scroll1x_offset = 62;
+ m_layer_scroll2x_offset = 60;
+ m_layer_scroll3x_offset = 64;
+ m_sprite_base = 0x50c8;
+ m_sprite_list_end_marker = 0x8000;
+ m_sprite_x_offset = 0;
+
+ save_item(NAME(m_sample_buffer1));
+ save_item(NAME(m_sample_buffer2));
+ save_item(NAME(m_sample_select1));
+ save_item(NAME(m_sample_select2));
+}
+
+MACHINE_START_MEMBER(cps_state,sgyxz)
+{
+ MACHINE_START_CALL_MEMBER(kodb);
+ m_layer_scroll1x_offset = 0x40;
+ m_layer_scroll2x_offset = 0x40;
+ m_layer_scroll3x_offset = 0x40;
+ membank("bank1")->configure_entries(0, 2, memregion("audiocpu")->base() + 0x10000, 0x4000);
+}
+
+MACHINE_START_MEMBER(cps_state,kodb)
+{
+ m_layer_enable_reg = 0x20;
+ m_layer_mask_reg[0] = 0x2e;
+ m_layer_mask_reg[1] = 0x2c;
+ m_layer_mask_reg[2] = 0x2a;
+ m_layer_mask_reg[3] = 0x28;
+ m_layer_scroll1x_offset = 0;
+ m_layer_scroll2x_offset = 0;
+ m_layer_scroll3x_offset = 0;
+ m_sprite_base = 0x1000;
+ m_sprite_list_end_marker = 0xffff;
+ m_sprite_x_offset = 0;
+}
+
+MACHINE_START_MEMBER(cps_state, cawingbl)
+{
+ MACHINE_START_CALL_MEMBER(fcrash);
+
+ m_layer_enable_reg = 0x0c;
+ m_layer_mask_reg[0] = 0x0a;
+ m_layer_mask_reg[1] = 0x08;
+ m_layer_mask_reg[2] = 0x06;
+ m_layer_mask_reg[3] = 0x04;
+ m_layer_scroll1x_offset = 63;
+ m_layer_scroll2x_offset = 62;
+ m_layer_scroll3x_offset = 65;
+ m_sprite_base = 0x1000;
+}
+
+MACHINE_START_MEMBER(cps_state, sf2mdt)
+{
+ uint8_t *ROM = memregion("audiocpu")->base();
+
+ membank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x4000);
+
+ m_layer_enable_reg = 0x26;
+ m_layer_mask_reg[0] = 0x28;
+ m_layer_mask_reg[1] = 0x2a;
+ m_layer_mask_reg[2] = 0x2c;
+ m_layer_mask_reg[3] = 0x2e;
+ m_layer_scroll1x_offset = 0;
+ m_layer_scroll2x_offset = 0;
+ m_layer_scroll3x_offset = 0;
+ m_sprite_base = 0x1000;
+ m_sprite_list_end_marker = 0x8000;
+ m_sprite_x_offset = 2;
+
+ save_item(NAME(m_sample_buffer1));
+ save_item(NAME(m_sample_buffer2));
+ save_item(NAME(m_sample_select1));
+ save_item(NAME(m_sample_select2));
+}
+
+MACHINE_START_MEMBER(cps_state, knightsb)
+{
+ uint8_t *ROM = memregion("audiocpu")->base();
+
+ membank("bank1")->configure_entries(0, 16, &ROM[0x10000], 0x4000);
+
+ m_layer_enable_reg = 0x30;
+ m_layer_mask_reg[0] = 0x28;
+ m_layer_mask_reg[1] = 0x2a;
+ m_layer_mask_reg[2] = 0x2c;
+ m_layer_mask_reg[3] = 0x2e;
+ m_layer_scroll1x_offset = 0x3e; //text
+ m_layer_scroll2x_offset = 0x3c; //bricks around scores
+ m_layer_scroll3x_offset = 0x40; //hill with sword going in
+ m_sprite_base = 0x1000;
+ m_sprite_list_end_marker = 0x8000;
+ m_sprite_x_offset = 0;
+}
+
+MACHINE_START_MEMBER(cps_state, sf2m1)
+{
+ uint8_t *ROM = memregion("audiocpu")->base();
+
+ membank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x4000);
+
+ m_layer_enable_reg = 0x26;
+ m_layer_mask_reg[0] = 0x28;
+ m_layer_mask_reg[1] = 0x2a;
+ m_layer_mask_reg[2] = 0x2c;
+ m_layer_mask_reg[3] = 0x2e;
+ m_layer_scroll1x_offset = 0x3e;
+ m_layer_scroll2x_offset = 0x3c;
+ m_layer_scroll3x_offset = 0x40;
+ m_sprite_base = 0x1000;
+ m_sprite_list_end_marker = 0x8000;
+ m_sprite_x_offset = 0;
+}
+
+MACHINE_RESET_MEMBER(cps_state,fcrash)
+{
+ m_sample_buffer1 = 0;
+ m_sample_buffer2 = 0;
+ m_sample_select1 = 0;
+ m_sample_select2 = 0;
+}
+
+static MACHINE_CONFIG_START( fcrash, cps_state )
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", M68000, 10000000)
+ MCFG_CPU_PROGRAM_MAP(fcrash_map)
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", cps_state, cps1_interrupt)
+
+ MCFG_CPU_ADD("audiocpu", Z80, 24000000/6) /* ? */
+ MCFG_CPU_PROGRAM_MAP(sound_map)
+
+ MCFG_MACHINE_START_OVERRIDE(cps_state,fcrash)
+ MCFG_MACHINE_RESET_OVERRIDE(cps_state,fcrash)
+
+ /* 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(8*8, (64-8)*8-1, 2*8, 30*8-1 )
+ MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_fcrash)
+ MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(cps_state, screen_vblank_cps1))
+ MCFG_SCREEN_PALETTE("palette")
+
+ MCFG_GFXDECODE_ADD("gfxdecode", "palette", cps1)
+ MCFG_PALETTE_ADD("palette", 4096)
+
+ MCFG_VIDEO_START_OVERRIDE(cps_state,cps1)
+
+ // sound hardware
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+ MCFG_GENERIC_LATCH_8_ADD("soundlatch")
+
+ MCFG_SOUND_ADD("ym1", YM2203, 24000000/6) /* ? */
+ MCFG_SOUND_ROUTE(0, "mono", 0.10)
+ MCFG_SOUND_ROUTE(1, "mono", 0.10)
+ MCFG_SOUND_ROUTE(2, "mono", 0.10)
+ MCFG_SOUND_ROUTE(3, "mono", 1.0)
+
+ MCFG_SOUND_ADD("ym2", YM2203, 24000000/6) /* ? */
+ MCFG_SOUND_ROUTE(0, "mono", 0.10)
+ MCFG_SOUND_ROUTE(1, "mono", 0.10)
+ MCFG_SOUND_ROUTE(2, "mono", 0.10)
+ MCFG_SOUND_ROUTE(3, "mono", 1.0)
+
+ MCFG_SOUND_ADD("msm1", MSM5205, 24000000/64) /* ? */
+ MCFG_MSM5205_VCLK_CB(WRITELINE(cps_state, m5205_int1)) /* interrupt function */
+ MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S96_4B) /* 4KHz 4-bit */
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
+
+ MCFG_SOUND_ADD("msm2", MSM5205, 24000000/64) /* ? */
+ MCFG_MSM5205_VCLK_CB(WRITELINE(cps_state, m5205_int2)) /* interrupt function */
+ MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S96_4B) /* 4KHz 4-bit */
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
+MACHINE_CONFIG_END
+
+// HBMAME start
+static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 8, cps_state )
+ AM_RANGE(0x0000, 0x7fff) AM_ROM
+ AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
+ AM_RANGE(0xd000, 0xd7ff) AM_RAM
+ AM_RANGE(0xf000, 0xf001) AM_DEVREADWRITE("2151", ym2151_device, read, write)
+ AM_RANGE(0xf002, 0xf002) AM_DEVREADWRITE("oki", okim6295_device, read, write)
+ AM_RANGE(0xf004, 0xf004) AM_WRITE(cps1_snd_bankswitch_w)
+ AM_RANGE(0xf006, 0xf006) AM_WRITE(cps1_oki_pin7_w) /* controls pin 7 of OKI chip */
+ AM_RANGE(0xf008, 0xf008) AM_DEVREAD("soundlatch", generic_latch_8_device, read) /* Sound command */
+ AM_RANGE(0xf00a, 0xf00a) AM_DEVREAD("soundlatch2", generic_latch_8_device, read) /* Sound timer fade */
+ADDRESS_MAP_END
+
+static MACHINE_CONFIG_START( cawingb, cps_state )
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", M68000, XTAL_10MHz ) /* verified on pcb */
+ MCFG_CPU_PROGRAM_MAP(fcrash_map)
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", cps_state, cps1_interrupt)
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", cps_state, irq6_line_hold) /* needed to write to scroll values */
+
+ MCFG_CPU_ADD("audiocpu", Z80, XTAL_3_579545MHz) /* verified on pcb */
+ MCFG_CPU_PROGRAM_MAP(sub_map)
+
+ MCFG_MACHINE_START_OVERRIDE(cps_state, cawingbl)
+
+ /* video hardware */
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_RAW_PARAMS(XTAL_16MHz/2, 518, 64, 448, 259, 16, 240)
+ MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_fcrash)
+ MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(cps_state, screen_vblank_cps1))
+ MCFG_SCREEN_PALETTE("palette")
+ MCFG_GFXDECODE_ADD("gfxdecode", "palette", cps1)
+ MCFG_PALETTE_ADD("palette", 0xc00)
+
+ MCFG_VIDEO_START_OVERRIDE(cps_state,cps1)
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+ MCFG_GENERIC_LATCH_8_ADD("soundlatch")
+ MCFG_GENERIC_LATCH_8_ADD("soundlatch2")
+
+ MCFG_YM2151_ADD("2151", XTAL_3_579545MHz) /* verified on pcb */
+ MCFG_YM2151_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
+ MCFG_SOUND_ROUTE(0, "mono", 0.35)
+ MCFG_SOUND_ROUTE(1, "mono", 0.35)
+
+ MCFG_OKIM6295_ADD("oki", XTAL_16MHz/4/4, OKIM6295_PIN7_HIGH)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
+MACHINE_CONFIG_END
+// HBMAME end
+static MACHINE_CONFIG_DERIVED( cawingbl, fcrash )
+ /* basic machine hardware */
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", cps_state, irq6_line_hold) /* needed to write to scroll values */
+
+ MCFG_MACHINE_START_OVERRIDE(cps_state, cawingbl)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_START( kodb, cps_state )
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", M68000, 10000000)
+ MCFG_CPU_PROGRAM_MAP(fcrash_map)
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", cps_state, cps1_interrupt)
+
+ MCFG_CPU_ADD("audiocpu", Z80, 3579545)
+ MCFG_CPU_PROGRAM_MAP(kodb_sound_map)
+
+ MCFG_MACHINE_START_OVERRIDE(cps_state,kodb)
+
+ /* 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(8*8, (64-8)*8-1, 2*8, 30*8-1 )
+ MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_fcrash)
+ MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(cps_state, screen_vblank_cps1))
+ MCFG_SCREEN_PALETTE("palette")
+
+ MCFG_GFXDECODE_ADD("gfxdecode", "palette", cps1)
+ MCFG_PALETTE_ADD("palette", 0xc00)
+
+ MCFG_VIDEO_START_OVERRIDE(cps_state,cps1)
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+ MCFG_GENERIC_LATCH_8_ADD("soundlatch")
+
+ MCFG_YM2151_ADD("2151", XTAL_3_579545MHz) /* verified on pcb */
+ MCFG_YM2151_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
+ MCFG_SOUND_ROUTE(0, "mono", 0.35)
+ MCFG_SOUND_ROUTE(1, "mono", 0.35)
+
+ /* CPS PPU is fed by a 16mhz clock,pin 117 outputs a 4mhz clock which is divided by 4 using 2 74ls74 */
+ MCFG_OKIM6295_ADD("oki", XTAL_16MHz/4/4, OKIM6295_PIN7_HIGH) // pin 7 can be changed by the game code, see f006 on z80
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_START( sf2mdt, cps_state )
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", M68000, 12000000)
+ MCFG_CPU_PROGRAM_MAP(sf2mdt_map)
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", cps_state, irq4_line_hold) /* triggers the sprite ram and scroll writes */
+
+ MCFG_CPU_ADD("audiocpu", Z80, 3579545)
+ MCFG_CPU_PROGRAM_MAP(sf2mdt_z80map)
+
+ MCFG_MACHINE_START_OVERRIDE(cps_state, sf2mdt)
+ MCFG_MACHINE_RESET_OVERRIDE(cps_state,fcrash)
+
+ /* 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(8*8, (64-8)*8-1, 2*8, 30*8-1 )
+ MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_fcrash)
+ MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(cps_state, screen_vblank_cps1))
+ MCFG_SCREEN_PALETTE("palette")
+
+ MCFG_GFXDECODE_ADD("gfxdecode", "palette", cps1)
+ MCFG_PALETTE_ADD("palette", 4096)
+
+ MCFG_VIDEO_START_OVERRIDE(cps_state,cps1)
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+
+ MCFG_YM2151_ADD("2151", 3579545)
+ MCFG_SOUND_ROUTE(0, "mono", 0.35)
+ MCFG_SOUND_ROUTE(1, "mono", 0.35)
+
+ /* has 2x MSM5205 instead of OKI6295 */
+ MCFG_SOUND_ADD("msm1", MSM5205, 24000000/64) /* ? */
+ MCFG_MSM5205_VCLK_CB(WRITELINE(cps_state, m5205_int1)) /* interrupt function */
+ MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S96_4B) /* 4KHz 4-bit */
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
+
+ MCFG_SOUND_ADD("msm2", MSM5205, 24000000/64) /* ? */
+ MCFG_MSM5205_VCLK_CB(WRITELINE(cps_state, m5205_int2)) /* interrupt function */
+ MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S96_4B) /* 4KHz 4-bit */
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( sf2b, sf2mdt)
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(sf2b_map)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_START( knightsb, cps_state )
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", M68000, 24000000 / 2)
+ MCFG_CPU_PROGRAM_MAP(knightsb_map)
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", cps_state, cps1_interrupt)
+
+ MCFG_CPU_ADD("audiocpu", Z80, 29821000 / 8)
+ MCFG_CPU_PROGRAM_MAP(knightsb_z80map)
+
+ MCFG_MACHINE_START_OVERRIDE(cps_state, knightsb)
+
+ /* 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(8*8, (64-8)*8-1, 2*8, 30*8-1 )
+ MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_fcrash)
+ MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(cps_state, screen_vblank_cps1))
+ MCFG_SCREEN_PALETTE("palette")
+
+ MCFG_GFXDECODE_ADD("gfxdecode", "palette", cps1)
+ MCFG_PALETTE_ADD("palette", 0xc00)
+
+ MCFG_VIDEO_START_OVERRIDE(cps_state,cps1)
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+
+ MCFG_YM2151_ADD("2151", 29821000 / 8)
+ MCFG_YM2151_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
+ MCFG_SOUND_ROUTE(0, "mono", 0.35)
+ MCFG_SOUND_ROUTE(1, "mono", 0.35)
+
+ /* has 2x MSM5205 instead of OKI6295 */
+ MCFG_SOUND_ADD("msm1", MSM5205, 24000000/64) /* ? */
+ MCFG_MSM5205_VCLK_CB(WRITELINE(cps_state, m5205_int1)) /* interrupt function */
+ MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S96_4B) /* 4KHz 4-bit */
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
+
+ MCFG_SOUND_ADD("msm2", MSM5205, 24000000/64) /* ? */
+ MCFG_MSM5205_VCLK_CB(WRITELINE(cps_state, m5205_int2)) /* interrupt function */
+ MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S96_4B) /* 4KHz 4-bit */
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
+MACHINE_CONFIG_END
+
+#define CODE_SIZE 0x400000
+
+// ************************************************************************* FCRASH
+
+ROM_START( fcrash )
+ 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) // fix transitions HBMAME
+
+ 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( "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) )
+ 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
+
+ROM_START( ffightbl )
+ ROM_REGION( 0x400000, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "fg-e.bin", 0x00000, 0x80000, CRC(f8ccf27e) SHA1(08ff445d946da81e7dc0cc021f686b5968fa34ab) )
+ ROM_LOAD16_BYTE( "fg-f.bin", 0x00001, 0x80000, CRC(d96c76b2) SHA1(3f9ca4625491cab07cf4a1bf001f1325dc3652a3) )
+ ROM_FILL(0x2610, 1, 7) // fix transitions HBMAME
+
+ 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( "fg-d.bin", 0x000000, 0x80000, CRC(4303f863) SHA1(72a3246e14f9c4d1fb4712bd67d087db42d722d9) , ROM_SKIP(3) )
+ ROMX_LOAD( "fg-c.bin", 0x000001, 0x80000, CRC(d1dfcd2d) SHA1(8796db70459e1e6232a75f5c3f4bf8b227b16f46) , ROM_SKIP(3) )
+ ROMX_LOAD( "fg-b.bin", 0x000002, 0x80000, CRC(22f2c097) SHA1(bbf2d30d31c5a7802b7f7f164dd51a4584511936) , ROM_SKIP(3) )
+ ROMX_LOAD( "fg-a.bin", 0x000003, 0x80000, CRC(16a89b2c) SHA1(4d0e1ec6ae9a2bd31fa77140532bbce64d3874e9) , ROM_SKIP(3) )
+
+ ROM_REGION( 0x8000, "gfx2", 0 )
+ 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) // fix transitions HBMAME
+
+ 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
+
+
+
+// ************************************************************************* KODB
+
+/*
+CPU
+
+1x TS68000CP12 (main)
+1x TPC1020AFN-084C
+1x Z8400BB1-Z80CPU (sound)
+1x YM2151 (sound)
+1x YM3012A (sound)
+1x OKI-M6295 (sound)
+2x LM324N (sound)
+1x TDA2003 (sound)
+1x oscillator 10.0 MHz
+1x oscillator 22.1184 MHz
+
+ROMs
+
+1x AM27C512 (1)(sound)
+1x AM27C020 (2)(sound)
+2x AM27C040 (3,4)(main)
+1x Am27C040 (bp)(gfx)
+7x maskrom (ai,bi,ci,di,ap,cp,dp)(gfx)
+1x GAL20V8A (not dumped)
+3x GAL16V8A (not dumped)
+1x PALCE20V8H (not dumped)
+1x GAL20V8S (not dumped)
+
+Note
+
+1x JAMMA edge connector
+1x trimmer (volume)
+3x 8 switches dip
+
+*/
+
+ROM_START( kodb )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "3.ic172", 0x00000, 0x080000, CRC(036dd74c) SHA1(489344e56863429e86b4c362b82d89819c1d6afb) )
+ ROM_LOAD16_BYTE( "4.ic171", 0x00001, 0x080000, CRC(3e4b7295) SHA1(3245640bae7d141238051dfe5c7683d05c6d3848) )
+ ROM_FILL( 0x952, 1, 7) // fix transitions HBMAME
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "1.ic28", 0x00000, 0x08000, CRC(01cae60c) SHA1(b2cdd883fd859f0b701230831aca1f1a74ad6087) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cp.ic90", 0x000000, 0x80000, CRC(e3b8589e) SHA1(775f97e43cb995b93da40063a1f1e4d73b34437c), ROM_SKIP(7) )
+ ROMX_LOAD( "dp.ic89", 0x000001, 0x80000, CRC(3eec9580) SHA1(3d8d0cfbeae077544e514a5eb96cc83f716e494f), ROM_SKIP(7) )
+ ROMX_LOAD( "ap.ic88", 0x000002, 0x80000, CRC(fdf5f163) SHA1(271ee96886c958accaca9a82484ab80fe32bd38e), ROM_SKIP(7) )
+ ROMX_LOAD( "bp.ic87", 0x000003, 0x80000, CRC(4e1c52b7) SHA1(74570e7d577c999c62203c97b3d449e3b61a678a), ROM_SKIP(7) )
+ ROMX_LOAD( "ci.ic91", 0x000004, 0x80000, CRC(22228bc5) SHA1(d48a09ee284d9e4b986f5c3c1c865930f76986e2), ROM_SKIP(7) )
+ ROMX_LOAD( "di.ic92", 0x000005, 0x80000, CRC(ab031763) SHA1(5bcd89b1debf029b779aa1bb73b3a572d27154ec), ROM_SKIP(7) )
+ ROMX_LOAD( "ai.ic93", 0x000006, 0x80000, CRC(cffbf4be) SHA1(f805bafc855d4a656c055a76eaeb26e36835541e), ROM_SKIP(7) )
+ ROMX_LOAD( "bi.ic94", 0x000007, 0x80000, CRC(4a1b43fe) SHA1(7957f45b2862825c9509043c63c7da7108bd251b), ROM_SKIP(7) )
+
+ ROM_REGION( 0x8000, "gfx2", 0 )
+ ROM_COPY( "gfx", 0x000000, 0x000000, 0x8000 ) /* stars */
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "2.ic19", 0x00000, 0x40000, CRC(a2db1575) SHA1(1a4a29e4b045af50700adf1665697feab12cc234) )
+ROM_END
+
+DRIVER_INIT_MEMBER(cps_state, kodb)
+{
+ m_maincpu->space(AS_PROGRAM).install_read_port(0x800000, 0x800007, "IN1");
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x800018, 0x80001f, read16_delegate(FUNC(cps_state::cps1_dsw_r),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x800180, 0x800187, write16_delegate(FUNC(cps_state::cps1_soundlatch_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x980000, 0x98002f, write16_delegate(FUNC(cps_state::kodb_layer_w),this));
+
+ /* the original game alternates between 2 sprite ram areas to achieve flashing sprites - the bootleg doesn't do the write to the register to achieve this
+ mapping both sprite ram areas to the same bootleg sprite ram - similar to how sf2mdt works */
+ m_bootleg_sprite_ram = std::make_unique<uint16_t[]>(0x2000);
+ m_maincpu->space(AS_PROGRAM).install_ram(0x900000, 0x903fff, m_bootleg_sprite_ram.get());
+ m_maincpu->space(AS_PROGRAM).install_ram(0x904000, 0x907fff, m_bootleg_sprite_ram.get()); /* both of these need to be mapped */
+
+ DRIVER_INIT_CALL(cps1);
+}
+
+
+
+// ************************************************************************* KNIGHTSB
+
+/*
+
+CPU:
+
+1x MC68000P12 ic65 main
+1x Z0840006PSC ic1 sound
+1x YM2151 ic29 sound
+1x YM3012 ic30 sound
+2x LM324 ic15,ic31 sound
+2x M5205 ic184,ic185 sound
+1x TDA2003 ic14 sound
+1x oscillator 24.000000MHz (close to main)
+1x oscillator 29.821000MHz (close to sound)
+
+ROMs
+
+5x M27C2001 1,2,3,4,5 dumped
+4x maskrom KA,KB,KC,KD not dumped
+
+RAMs:
+
+4x KM62256ALP ic112,ic113,ic168,ic170
+1x SYC6116L ic24
+1x MCM2018AN ic7,ic8,ic51,ic56,ic70,ic71,ic77,ic78
+
+PLDs:
+
+1x TPC1020AFN ic116 read protected
+3x GAL20V8A ic120,ic121,ic169 read protected
+3x GAL16V8A ic7,ic72,ic80 read protected
+
+Note:
+
+1x JAMMA edge connector
+2x 10 legs connector
+1x trimmer (volume)
+3x 8x2 switches DIP
+
+*/
+/* bootleg */
+/* FIXME - GFX ROMs are wrong, copied from the other version */
+/* ROMs missing are KA.IC91 KB.IC92 KC.IC93 KD.IC94 */
+ROM_START( knightsb )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "3.ic173", 0x00001, 0x40000, CRC(c9c6e720) SHA1(e8a1cd73458b548e88fc49d8f659e0dc33a8e756) )
+ ROM_LOAD16_BYTE( "5.ic172", 0x00000, 0x40000, CRC(7fd91118) SHA1(d2832b21309a467938891946d7af35d8095787a4) )
+ ROM_LOAD16_BYTE( "2.ic175", 0x80001, 0x40000, CRC(1eb91343) SHA1(e02cfbbd7689346f14f2e3455ed17e7f0b51bad0) )
+ ROM_LOAD16_BYTE( "4.ic176", 0x80000, 0x40000, CRC(af352703) SHA1(7855ac65752203f45af4ef41af8c291540a1c8a8) )
+
+ ROM_REGION( 0x400000, "gfx", 0 ) /* bootleg had 4x 1meg MASKroms, these need dumping so that the format is known */
+ ROMX_LOAD( "kr_gfx1.rom", 0x000000, 0x80000, BAD_DUMP CRC(9e36c1a4) SHA1(772daae74e119371dfb76fde9775bda78a8ba125) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr_gfx3.rom", 0x000002, 0x80000, BAD_DUMP CRC(c5832cae) SHA1(a188cf401cd3a2909b377d3059f14d22ec3b0643) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr_gfx2.rom", 0x000004, 0x80000, BAD_DUMP CRC(f095be2d) SHA1(0427d1574062f277a9d04440019d5638b05de561) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr_gfx4.rom", 0x000006, 0x80000, BAD_DUMP CRC(179dfd96) SHA1(b1844e69da7ab13474da569978d5b47deb8eb2be) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr_gfx5.rom", 0x200000, 0x80000, BAD_DUMP CRC(1f4298d2) SHA1(4b162a7f649b0bcd676f8ca0c5eee9a1250d6452) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr_gfx7.rom", 0x200002, 0x80000, BAD_DUMP CRC(37fa8751) SHA1(b88b39d1f08621f15a5620095aef998346fa9891) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr_gfx6.rom", 0x200004, 0x80000, BAD_DUMP CRC(0200bc3d) SHA1(c900b1be2b4e49b951e5c1e3fd1e19d21b82986e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr_gfx8.rom", 0x200006, 0x80000, BAD_DUMP CRC(0bb2b4e7) SHA1(983b800925d58e4aeb4e5105f93ed5faf66d009c) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x50000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "1.ic26", 0x00000, 0x40000, CRC(bd6f9cc1) SHA1(9f33cccef224d2204736a9eae761196866bd6e41) )
+ ROM_RELOAD( 0x10000, 0x40000 )
+ROM_END
+
+
+
+// ************************************************************************* CAWINGBL, CAWINGB2
+
+ROM_START( cawingbl )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "caw2.bin", 0x00000, 0x80000, CRC(8125d3f0) SHA1(a0e48c326c6164ca189c9372f5c38a7c103772c1) )
+ ROM_LOAD16_BYTE( "caw1.bin", 0x00001, 0x80000, CRC(b19b10ce) SHA1(3c71f1dc830d1e8b8ba26d8a71e12f477659480c) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "caw7.bin", 0x000000, 0x80000, CRC(a045c689) SHA1(8946c55635121282ea03586a278e50de20d92633) , ROM_SKIP(3) )
+ ROMX_LOAD( "caw6.bin", 0x000001, 0x80000, CRC(61192f7c) SHA1(86643c62653a62a5c7541d50cfdecae9b607440d) , ROM_SKIP(3) )
+ ROMX_LOAD( "caw5.bin", 0x000002, 0x80000, CRC(30dd78db) SHA1(e0295001d6f5fb4a9276c432f971e88f73c5e39a) , ROM_SKIP(3) )
+ ROMX_LOAD( "caw4.bin", 0x000003, 0x80000, CRC(4937fc41) SHA1(dac179715be483a521df8e515afc1fb7a2cd8f13) , ROM_SKIP(3) )
+
+ ROM_REGION( 0x30000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "caw3.bin", 0x00000, 0x20000, CRC(ffe16cdc) SHA1(8069ea69f0b89d61c35995c8040a4989d7be9c1f) )
+ ROM_RELOAD( 0x10000, 0x20000 )
+ROM_END
+
+ROM_START( cawingb2 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "8.8", 0x00000, 0x20000, CRC(f655708c) SHA1(9962a1c96ea08bc71b25d4f58e5d1fb1beebf0dc) )
+ ROM_LOAD16_BYTE( "4.4", 0x00001, 0x20000, CRC(a02fb5aa) SHA1(c9c064a83899c48f681ac803cfc5886503b9d992) )
+ ROM_LOAD16_BYTE( "7.7", 0x40000, 0x20000, CRC(8c6c7430) SHA1(3ed5713caf774b050b41a6adea026e1307b570df) )
+ ROM_LOAD16_BYTE( "3.3", 0x40001, 0x20000, CRC(f585bf2c) SHA1(3a3169791f8deace8d9bee1adb08f19fbcd309c6) )
+ ROM_LOAD16_BYTE( "6.6", 0x80000, 0x20000, CRC(5fda906e) SHA1(7b3ef17d494a2f92e58ab7e34a3beaad8c149fca) )
+ ROM_LOAD16_BYTE( "2.2", 0x80001, 0x20000, CRC(736c1835) SHA1(a91f479fab30603a111304adc0478d430faa80fc) )
+ ROM_LOAD16_BYTE( "5.5", 0xc0000, 0x20000, CRC(76458083) SHA1(cbb4ef5f7615c834b2ee1ad3c86e7262f2f62c01) )
+ ROM_LOAD16_BYTE( "1.1", 0xc0001, 0x20000, CRC(d3523f34) SHA1(005ea378c2b78782f85ecc591946c027ca2ca023) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "17.17", 0x000000, 0x20000, CRC(0b538062) SHA1(ac6e5dc82efdca311adfe6e6cdda160ad4a0d04d) , ROM_SKIP(3) )
+ ROMX_LOAD( "19.19", 0x000001, 0x20000, CRC(3ad62311) SHA1(1c132696b55191d16af30ebd36d2320d979eab36) , ROM_SKIP(3) )
+ ROMX_LOAD( "21.21", 0x000002, 0x20000, CRC(1b872a98) SHA1(7a3f72c6d384dfa8e224f93604997a7b6e5c8926) , ROM_SKIP(3) )
+ ROMX_LOAD( "23.23", 0x000003, 0x20000, CRC(ad49eecd) SHA1(39909996765391ed734a02c74f683e1bd9ce1561) , ROM_SKIP(3) )
+ ROMX_LOAD( "9.9", 0x080000, 0x20000, CRC(8cd4df5b) SHA1(771b6d6a6baa95a669335fe64e2219fe7226e140) , ROM_SKIP(3) )
+ ROMX_LOAD( "11.11", 0x080001, 0x20000, CRC(bf14418a) SHA1(7a0e1c65b8825a252338d6c1db59a88966ec6cfb) , ROM_SKIP(3) )
+ ROMX_LOAD( "13.13", 0x080002, 0x20000, CRC(cef1aab8) SHA1(677a889b939ff00e95737a4a53053744bb6744c0) , ROM_SKIP(3) )
+ ROMX_LOAD( "15.15", 0x080003, 0x20000, CRC(397725dc) SHA1(9450362bbf2f91b4225a088d6e283d7b16407b74) , ROM_SKIP(3) )
+ ROMX_LOAD( "18.18", 0x100000, 0x20000, CRC(9b14f7ed) SHA1(72b6e1174d4faab487261aa6739de842d2423e1a) , ROM_SKIP(3) )
+ ROMX_LOAD( "20.20", 0x100001, 0x20000, CRC(59bcc1bb) SHA1(c725060e068294dea1d962c54a9018050fa70297) , ROM_SKIP(3) )
+ ROMX_LOAD( "22.22", 0x100002, 0x20000, CRC(23dc647a) SHA1(2d8d4c4c7b2d0616430360d1639b07216dd731d6) , ROM_SKIP(3) )
+ ROMX_LOAD( "24.24", 0x100003, 0x20000, CRC(eda9fa6b) SHA1(4a3510ce71b015a1ea568fd0bbe61c5c093a2fbf) , ROM_SKIP(3) )
+ ROMX_LOAD( "10.10", 0x180000, 0x20000, CRC(17174249) SHA1(71c6424ab4629065dd6af8bb47b18f5b5d0fbe49) , ROM_SKIP(3) )
+ ROMX_LOAD( "12.12", 0x180001, 0x20000, CRC(490440b2) SHA1(2597bf16340308f84b32cfa048c426db571b4a35) , ROM_SKIP(3) )
+ ROMX_LOAD( "14.14", 0x180002, 0x20000, CRC(344a8270) SHA1(fdb588a7ba60783225e3b5c72446f79625de4f9c) , ROM_SKIP(3) )
+ ROMX_LOAD( "16.16", 0x180003, 0x20000, CRC(b991ad91) SHA1(5c59131ddf068cb54d23f8836293360fbc967d58) , ROM_SKIP(3) )
+
+ ROM_REGION( 0x30000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "5.a", 0x00000, 0x20000, CRC(ffe16cdc) SHA1(8069ea69f0b89d61c35995c8040a4989d7be9c1f) )
+ ROM_RELOAD( 0x10000, 0x20000 )
+ROM_END
+
+DRIVER_INIT_MEMBER(cps_state, cawingbl)
+{
+ m_maincpu->space(AS_PROGRAM).install_read_port(0x882000, 0x882001, "IN1");
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x882006, 0x882007, write16_delegate(FUNC(cps_state::cawingbl_soundlatch_w),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x882008, 0x88200f, read16_delegate(FUNC(cps_state::cps1_dsw_r),this));
+
+ DRIVER_INIT_CALL(cps1);
+}
+
+// HBMAME start
+ROM_START( cawingb )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "2.16d", 0x00000, 0x80000, CRC(8125d3f0) SHA1(a0e48c326c6164ca189c9372f5c38a7c103772c1) )
+ ROM_LOAD16_BYTE( "1.19d", 0x00001, 0x80000, CRC(b19b10ce) SHA1(3c71f1dc830d1e8b8ba26d8a71e12f477659480c) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "ca-5m.7a", 0x000000, 0x80000, CRC(66d4cc37) SHA1(d355ea64ff29d228dcbfeee72bcf11882bf1cd9d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ca-7m.9a", 0x000002, 0x80000, CRC(b6f896f2) SHA1(bdb6820b81fbce77d7eacb01777af7c380490402) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ca-1m.3a", 0x000004, 0x80000, CRC(4d0620fd) SHA1(5f62cd551b6a230edefd81fa60c10c84186ca804) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ca-3m.5a", 0x000006, 0x80000, CRC(0b0341c3) SHA1(c31f0e78f49d94ea9dea20eb0cbd98a6c613bcbf) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "ca_9.12b", 0x00000, 0x08000, CRC(96fe7485) SHA1(10466889dfc6bc8afd3075385e241a16372efbeb) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "ca_18.11c", 0x00000, 0x20000, CRC(4a613a2c) SHA1(06e10644fc60925b85d2ca0888c9fa057bfe996a) )
+ ROM_LOAD( "ca_19.12c", 0x20000, 0x20000, CRC(74584493) SHA1(5cfb15f1b9729323707972646313aee8ab3ac4eb) )
+ROM_END
+// HBMAME end
+
+
+// ************************************************************************* DINOPIC, DINOPIC2
+
+MACHINE_START_MEMBER(cps_state, dinopic)
+{
+ m_layer_enable_reg = 0x0a;
+ m_layer_mask_reg[0] = 0x0c;
+ m_layer_mask_reg[1] = 0x0e;
+ m_layer_mask_reg[2] = 0x00;
+ m_layer_mask_reg[3] = 0x02;
+ m_layer_scroll1x_offset = 0x40;
+ m_layer_scroll2x_offset = 0x40;
+ m_layer_scroll3x_offset = 0x40;
+ m_sprite_base = 0x1000;
+ m_sprite_list_end_marker = 0x8000;
+ m_sprite_x_offset = 0;
+}
+
+static MACHINE_CONFIG_START( dinopic, cps_state )
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", M68000, 12000000)
+ MCFG_CPU_PROGRAM_MAP(dinopic_map)
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", cps_state, cps1_interrupt)
+
+ //MCFG_CPU_ADD("audiocpu", PIC16C57, 12000000)
+ //MCFG_DEVICE_DISABLE() /* no valid dumps .. */
+
+ MCFG_MACHINE_START_OVERRIDE(cps_state, dinopic)
+
+ MCFG_EEPROM_SERIAL_93C46_8BIT_ADD("eeprom")
+
+ /* 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(8*8, (64-8)*8-1, 2*8, 30*8-1 )
+ MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_fcrash)
+ MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(cps_state, screen_vblank_cps1))
+ MCFG_SCREEN_PALETTE("palette")
+
+ MCFG_GFXDECODE_ADD("gfxdecode", "palette", cps1)
+ MCFG_PALETTE_ADD("palette", 0xc00)
+
+ MCFG_VIDEO_START_OVERRIDE(cps_state,cps1)
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+
+ MCFG_OKIM6295_ADD("oki", 1000000, OKIM6295_PIN7_HIGH)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
+MACHINE_CONFIG_END
+
+/*
+
+Cadillac Bootleg Hardware:
+
+1x 68000p10
+1x PIC16c57
+1x AD-65
+1x OSC 30mhz
+1x OSC 24mhz
+13x 27c4000 ROMS
+
+*/
+ROM_START( dinopic )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "3.bin", 0x000001, 0x80000, CRC(13dfeb08) SHA1(cd2f9dd64f4fabe93901247e36dff3763169716d) )
+ ROM_LOAD16_BYTE( "5.bin", 0x000000, 0x80000, CRC(96dfcbf1) SHA1(a8bda6edae2c1b79db7ae8a8976fd2457f874373) )
+ ROM_LOAD16_BYTE( "2.bin", 0x100001, 0x80000, CRC(0e4058ba) SHA1(346f9e34ea53dd1bf5cdafa1e38bf2edb09b9a7f) )
+ ROM_LOAD16_BYTE( "7.bin", 0x100000, 0x80000, CRC(6133f349) SHA1(d13af99910623f62c090d25372a2253dbc2f8cbe) )
+
+ ROM_REGION( 0x400000, "gfx", 0 ) // same data, different format, except for 8 which is a 99% match (bad rom?)
+ ROMX_LOAD( "4.bin", 0x000000, 0x40000, CRC(f3c2c98d) SHA1(98ae51a67fa4159456a4a205eebdd8d1775888d1), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000004, 0x40000)
+ ROMX_LOAD( "8.bin", 0x000001, 0x40000, CRC(d574befc) SHA1(56482e7a9aa8439f30e3cf72311495ce677a083d), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000005, 0x40000)
+ ROMX_LOAD( "9.bin", 0x000002, 0x40000, CRC(55ef0adc) SHA1(3b5551ae76ae80882d37fc70a1031a57885d6840), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000006, 0x40000)
+ ROMX_LOAD( "6.bin", 0x000003, 0x40000, CRC(cc0805fc) SHA1(c512734c28b878a30a0de249929f69784d5d77a1), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000007, 0x40000)
+ ROMX_LOAD( "13.bin", 0x200000, 0x40000, CRC(1371f714) SHA1(d2c98096fab08e3d4fd2482e6ebfc970ead656ee), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x200004, 0x40000)
+ ROMX_LOAD( "12.bin", 0x200001, 0x40000, CRC(b284c4a7) SHA1(166f571e0afa115f8e38ba427b40e30abcfd70ee), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x200005, 0x40000)
+ ROMX_LOAD( "11.bin", 0x200002, 0x40000, CRC(b7ad3394) SHA1(58dec34d9d991ff2817c8a7847749716abae6c77), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x200006, 0x40000)
+ ROMX_LOAD( "10.bin", 0x200003, 0x40000, CRC(88847705) SHA1(05dc90067921960e417b7436056a5e1f86abaa1a), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x200007, 0x40000)
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* PIC16c57 - protected, dump isn't valid */
+ ROM_LOAD( "pic16c57-rp", 0x00000, 0x2d4c, BAD_DUMP CRC(5a6d393c) SHA1(1391a1590aff5f75bb6fae1c83eddb796b53135d) )
+
+ ROM_REGION( 0x80000, "oki", 0 ) /* OKI6295 samples */
+ ROM_LOAD( "1.bin", 0x000000, 0x80000, CRC(7d921309) SHA1(d51e60e904d302c2516b734189e141aa171b2b82) )
+ROM_END
+
+/* this is basically the same set as above, from a different bootleg pcb, with a few extra pal dumps etc.
+ the first dump will probably be removed eventually
+
+ CPU
+ 1x TS68000CP10 (main)
+ 1x AD-65 (sound)(equivalent to M6295)
+ 1x PIC16C57-XT/P
+ 1x A1020B-PL84C
+ 1x oscillator 24.000MHz (close to main)
+ 1x oscillator 30.000MHz (close to sound)
+
+ ROMs
+ 13x 27C4000
+ 3x GAL20V8A
+ 3x PALCE16V8H (1 broken not dumped)
+ 1x CAT93C46P
+
+ Note
+ 1x JAMMA edge connector
+ 1x 10 legs connector
+ 1x trimmer (volume)
+*/
+
+ROM_START( dinopic2 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "27c4000-m12374r-2.bin", 0x000001, 0x80000, CRC(13dfeb08) SHA1(cd2f9dd64f4fabe93901247e36dff3763169716d) )
+ ROM_LOAD16_BYTE( "27c4000-m12481.bin", 0x000000, 0x80000, CRC(96dfcbf1) SHA1(a8bda6edae2c1b79db7ae8a8976fd2457f874373) )
+ ROM_LOAD16_BYTE( "27c4000-m12374r-1.bin", 0x100001, 0x80000, CRC(0e4058ba) SHA1(346f9e34ea53dd1bf5cdafa1e38bf2edb09b9a7f) )
+ ROM_LOAD16_BYTE( "27c4000-m12374r-3.bin", 0x100000, 0x80000, CRC(6133f349) SHA1(d13af99910623f62c090d25372a2253dbc2f8cbe) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "27c4000-m12481-4.bin", 0x000000, 0x40000, CRC(f3c2c98d) SHA1(98ae51a67fa4159456a4a205eebdd8d1775888d1), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000004, 0x40000)
+ ROMX_LOAD( "27c4000-m12481-3.bin", 0x000001, 0x40000, BAD_DUMP CRC(417a4816) SHA1(5268f6667ff550a949a08f94171966f5d841c6b2), ROM_SKIP(7) ) // this one is a perfect match, unlike dinopic set
+ ROM_CONTINUE( 0x000005, 0x40000)
+ ROMX_LOAD( "27c4000-m12481-2.bin", 0x000002, 0x40000, CRC(55ef0adc) SHA1(3b5551ae76ae80882d37fc70a1031a57885d6840), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000006, 0x40000)
+ ROMX_LOAD( "27c4000-m12481-1.bin", 0x000003, 0x40000, CRC(cc0805fc) SHA1(c512734c28b878a30a0de249929f69784d5d77a1), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000007, 0x40000)
+ ROMX_LOAD( "27c4000-m12481-8.bin", 0x200000, 0x40000, CRC(1371f714) SHA1(d2c98096fab08e3d4fd2482e6ebfc970ead656ee), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x200004, 0x40000)
+ ROMX_LOAD( "27c4000-m12481-7.bin", 0x200001, 0x40000, CRC(b284c4a7) SHA1(166f571e0afa115f8e38ba427b40e30abcfd70ee), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x200005, 0x40000)
+ ROMX_LOAD( "27c4000-m12481-6.bin", 0x200002, 0x40000, CRC(b7ad3394) SHA1(58dec34d9d991ff2817c8a7847749716abae6c77), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x200006, 0x40000)
+ ROMX_LOAD( "27c4000-m12481-5.bin", 0x200003, 0x40000, CRC(88847705) SHA1(05dc90067921960e417b7436056a5e1f86abaa1a), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x200007, 0x40000)
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* PIC16c57 - protected, dump isn't valid */
+ ROM_LOAD( "pic16c57-xt.hex", 0x00000, 0x26cc, BAD_DUMP CRC(a6a5eac4) SHA1(2039789084836769180f0bfd230c2553a37e2aaf) )
+
+ ROM_REGION( 0x80000, "oki", 0 ) /* OKI6295 samples */
+ ROM_LOAD( "27c4000-m12623.bin", 0x000000, 0x80000, CRC(7d921309) SHA1(d51e60e904d302c2516b734189e141aa171b2b82) )
+
+ ROM_REGION( 0xc00, "user1", 0 ) /* extra bits on this set */
+ ROM_LOAD( "cat93c46p.bin", 0x000, 0x080, CRC(d49fa351) SHA1(e6dfaff1c6aa962d34ae8e82b71e6f394d82e19c) )
+ ROM_LOAD( "gal20v8a-1.bin", 0x200, 0x157, CRC(cd99ca47) SHA1(ee1d990fd294aa46f56f31264134251569f6792e) )
+ ROM_LOAD( "gal20v8a-2.bin", 0x400, 0x157, CRC(60d016b9) SHA1(add42c763c819f3fe6d7cf3adc7123a52c2a3be9) )
+ ROM_LOAD( "gal20v8a-3.bin", 0x600, 0x157, CRC(049b7f4f) SHA1(6c6ea03d9a293db69a8bd10e042ee75e3c01313c) )
+ ROM_LOAD( "palce16v8h-1.bin", 0x800, 0x117, CRC(48253c66) SHA1(8c94e655b768c45c3edf6ef39e62e3b7a4e57530) )
+ ROM_LOAD( "palce16v8h-2.bin", 0xa00, 0x117, CRC(9ae375ba) SHA1(6f227c2a5b1170a41e6419f12d1e1f98edc6f8e5) )
+ROM_END
+
+DRIVER_INIT_MEMBER(cps_state, dinopic)
+{
+ m_bootleg_sprite_ram = std::make_unique<uint16_t[]>(0x2000);
+ m_maincpu->space(AS_PROGRAM).install_ram(0x990000, 0x993fff, m_bootleg_sprite_ram.get());
+ DRIVER_INIT_CALL(cps1);
+}
+
+
+
+// ************************************************************************* SGYXZ
+
+// 24mhz crystal (maincpu), 28.322 crystal (video), 3.579545 crystal (sound)
+// sound cpu is (239 V 249521 VC5006 KABUKI DL-030P-110V) - recycled Kabuki Z80 from genuine Capcom HW?
+// 3x8 dsws
+
+static MACHINE_CONFIG_START( sgyxz, cps_state )
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", M68000, 12000000)
+ MCFG_CPU_PROGRAM_MAP(sgyxz_map)
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", cps_state, cps1_interrupt)
+
+ MCFG_CPU_ADD("audiocpu", Z80, 3579545)
+ MCFG_CPU_PROGRAM_MAP(sgyxz_sound_map)
+
+ MCFG_MACHINE_START_OVERRIDE(cps_state,sgyxz)
+
+ /* 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(8*8, (64-8)*8-1, 2*8, 30*8-1 )
+ MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_fcrash)
+ MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(cps_state, screen_vblank_cps1))
+ MCFG_SCREEN_PALETTE("palette")
+ MCFG_GFXDECODE_ADD("gfxdecode", "palette", cps1)
+ MCFG_PALETTE_ADD("palette", 0xc00)
+ MCFG_VIDEO_START_OVERRIDE(cps_state,cps1)
+
+ MCFG_EEPROM_SERIAL_93C46_8BIT_ADD("eeprom")
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+
+ MCFG_YM2151_ADD("2151", XTAL_3_579545MHz) /* verified on pcb */
+ MCFG_YM2151_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
+ MCFG_SOUND_ROUTE(0, "mono", 0.35)
+ MCFG_SOUND_ROUTE(1, "mono", 0.35)
+
+ /* CPS PPU is fed by a 16mhz clock,pin 117 outputs a 4mhz clock which is divided by 4 using 2 74ls74 */
+ MCFG_OKIM6295_ADD("oki", XTAL_16MHz/4/4, OKIM6295_PIN7_HIGH) // pin 7 can be changed by the game code, see f006 on z80
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
+MACHINE_CONFIG_END
+
+ROM_START( sgyxz )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 Code */
+ ROM_LOAD16_BYTE( "sgyxz_prg1.bin", 0x000001, 0x20000, CRC(d8511929) SHA1(4de9263778f327693f4d1e21b48e43806f673487) )
+ ROM_CONTINUE( 0x80001, 0x20000 )
+ ROM_CONTINUE( 0x40001, 0x20000 )
+ ROM_CONTINUE( 0xc0001, 0x20000 )
+ ROM_LOAD16_BYTE( "sgyxz_prg2.bin", 0x000000, 0x20000, CRC(95429c83) SHA1(e981624d018132e5625a66113b6ac4fc44e55cf7) )
+ ROM_CONTINUE( 0x80000, 0x20000 )
+ ROM_CONTINUE( 0x40000, 0x20000 )
+ ROM_CONTINUE( 0xc0000, 0x20000 )
+ ROM_FILL(0x708da, 4, 0xff) // patch out protections
+ ROM_FILL(0xf11ea, 1, 0x60)
+ ROM_FILL(0x00007, 1, 0xa2) // start address
+ ROM_FILL(0x02448, 1, 0x07) // transitions
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD("sgyxz_gfx1.bin", 0x000000, 0x80000, CRC(a60be9f6) SHA1(2298a4b6a2c83b76dc106a1efa19606b298d378a), ROM_GROUPWORD | ROM_SKIP(6) ) // 'picture 1'
+ ROM_CONTINUE( 0x000004, 0x80000 )
+ ROM_CONTINUE( 0x200000, 0x80000 )
+ ROM_CONTINUE( 0x200004, 0x80000 )
+ ROMX_LOAD("sgyxz_gfx2.bin", 0x000002, 0x80000, CRC(6ad9d048) SHA1(d47212d28d0a1ce349e4c59e5d0d99c541b3458e), ROM_GROUPWORD | ROM_SKIP(6) ) // 'picture 2'
+ ROM_CONTINUE( 0x000006, 0x80000 )
+ ROM_CONTINUE( 0x200002, 0x80000 )
+ ROM_CONTINUE( 0x200006, 0x80000 )
+
+ ROM_REGION( 0x20000, "audiocpu", 0 ) /* Z80 code */
+ ROM_LOAD( "sgyxz_snd2.bin", 0x00000, 0x10000, CRC(210c376f) SHA1(0d937c86078d0a106f5636b7daf5fc0266c2c2ec) )
+ ROM_RELOAD( 0x8000, 0x10000 )
+
+ ROM_REGION( 0x040000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "sgyxz_snd1.bin", 0x00000, 0x40000, CRC(c15ac0f2) SHA1(8d9e5519d9820e4ac4f70555088c80e64d052c9d) )
+ROM_END
+
+
+
+// ************************************************************************* PUNIPIC, PUNIPIC2, PUNIPIC3
+
+MACHINE_START_MEMBER(cps_state, punipic)
+{
+ m_layer_enable_reg = 0x12;
+ m_layer_mask_reg[0] = 0x14;
+ m_layer_mask_reg[1] = 0x16;
+ m_layer_mask_reg[2] = 0x08;
+ m_layer_mask_reg[3] = 0x0a;
+ m_layer_scroll1x_offset = 0x46; // text
+ m_layer_scroll3x_offset = 0x46; // green patch in the park
+ m_sprite_base = 0x000;
+ m_sprite_list_end_marker = 0x8000;
+ m_sprite_x_offset = 0;
+}
+
+static MACHINE_CONFIG_START( punipic, cps_state )
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", M68000, 12000000)
+ MCFG_CPU_PROGRAM_MAP(punipic_map)
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", cps_state, cps1_interrupt)
+
+ //MCFG_CPU_ADD("audiocpu", PIC16C57, 12000000)
+ //MCFG_DEVICE_DISABLE() /* no valid dumps .. */
+
+ MCFG_MACHINE_START_OVERRIDE(cps_state, punipic)
+
+ MCFG_EEPROM_SERIAL_93C46_8BIT_ADD("eeprom")
+
+ /* 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(8*8, (64-8)*8-1, 2*8, 30*8-1 )
+ MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_fcrash)
+ MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(cps_state, screen_vblank_cps1))
+ MCFG_SCREEN_PALETTE("palette")
+
+ MCFG_GFXDECODE_ADD("gfxdecode", "palette", cps1)
+ MCFG_PALETTE_ADD("palette", 0xc00)
+
+ MCFG_VIDEO_START_OVERRIDE(cps_state,cps1)
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+
+ MCFG_OKIM6295_ADD("oki", 1000000, OKIM6295_PIN7_HIGH)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
+MACHINE_CONFIG_END
+
+/* bootleg with pic, like dinopic / dinopic2 */
+ROM_START( punipic )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "cpu5.bin", 0x000000, 0x80000, CRC(c3151563) SHA1(61d3a20c25fea8a94ae6e473a87c21968867cba0) )
+ ROM_LOAD16_BYTE( "cpu3.bin", 0x000001, 0x80000, CRC(8c2593ac) SHA1(4261bc72b96c3a5690df35c5d8b71524765693d9) )
+ ROM_LOAD16_BYTE( "cpu4.bin", 0x100000, 0x80000, CRC(665a5485) SHA1(c07920d110ca9c35f6cbff94a6a889c17300f994) )
+ ROM_LOAD16_BYTE( "cpu2.bin", 0x100001, 0x80000, CRC(d7b13f39) SHA1(eb7cd92b44fdef3b72672b0be6786c526421b627) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "gfx9.bin", 0x000000, 0x40000, CRC(9b9a887a) SHA1(8805b36fc18837bd7c64c751b435d72b763b2235), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000004, 0x40000)
+ ROMX_LOAD( "gfx8.bin", 0x000001, 0x40000, CRC(2b94287a) SHA1(815d88e66f537e17550fc0483616f02f7126bfb1), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000005, 0x40000)
+ ROMX_LOAD( "gfx7.bin", 0x000002, 0x40000, CRC(e9bd74f5) SHA1(8ed7098c69d1c70093c99956bf82e532bd6fc7ac), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000006, 0x40000)
+ ROMX_LOAD( "gfx6.bin", 0x000003, 0x40000, CRC(a5e1c8a4) SHA1(3596265a45cf6bbf16c623f0fce7cdc65f9338ad), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000007, 0x40000)
+ ROMX_LOAD( "gfx13.bin", 0x200000, 0x40000, CRC(6d75a193) SHA1(6c5a89517926d7ba4a925a3df800d4bdb8a6938d), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x200004, 0x40000)
+ ROMX_LOAD( "gfx12.bin", 0x200001, 0x40000, CRC(a3c205c1) SHA1(6317cc49434dbbb9a249ddd4b50bd791803b3ebe), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x200005, 0x40000)
+ ROMX_LOAD( "gfx11.bin", 0x200002, 0x40000, CRC(22f2ec92) SHA1(9186bfc5db71dc5b099c9a985e8fdd5710772d1c), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x200006, 0x40000)
+ ROMX_LOAD( "gfx10.bin", 0x200003, 0x40000, CRC(763974c9) SHA1(f9b93c7cf0cb8c212fc21c57c85459b7d2e4e2fd), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x200007, 0x40000)
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* PIC16c57 - protected */
+ ROM_LOAD( "pic16c57", 0x00000, 0x4000, NO_DUMP )
+
+ ROM_REGION( 0x200000, "oki", 0 ) /* OKI6295 */
+ ROM_LOAD( "sound.bin", 0x000000, 0x80000, CRC(aeec9dc6) SHA1(56fd62e8db8aa96cdd242d8c705849a413567780) )
+ROM_END
+
+/* alt bootleg with PIC, same program roms as above, bigger GFX roms
+
+Punisher
+1993, Capcom
+
+This is a bootleg version running on a single PCB.
+
+PCB Layout
+----------
+
+|-----------------------------------------|
+| 93C46 SOUND 30MHz PAL |
+| M6295 PIC16C57 |
+| 6116 PAL 6116 |
+| 6116 6116 ACTEL |
+| 6116 A1020B |
+|J 6116 |
+|A TEST 6116 |
+|M 6116 |
+|M |
+|A |
+| 62256 62256 62256 PU13478 |
+| PRG1 PRG2 |
+| PRG3 PRG4 62256 PU11256 |
+| PAL|
+| 68000 24MHz PAL PAL |
+|-----------------------------------------|
+
+Notes:
+ Measured clocks
+ ---------------
+ 68000 clock: 12.000MHz (24 / 2)
+ M6295 clock: 937.5kHz (30 / 32), sample rate = 30000000 / 32 / 132
+ 16C57 clock: 3.75MHz (30 / 8) NOTE! 4096 bytes internal ROM is protected and can't be read out.
+ VSYNC : 60Hz
+
+ ROMs
+ ----
+ PRG* - 4M MASK ROM (read as 27C040)
+ SOUND - 4M MASK ROM (read as 27C040)
+ PU* - 16M MASK ROM (read as 27C160)
+
+*/
+
+ROM_START( punipic2 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "prg4.bin", 0x000000, 0x80000, CRC(c3151563) SHA1(61d3a20c25fea8a94ae6e473a87c21968867cba0) )
+ ROM_LOAD16_BYTE( "prg3.bin", 0x000001, 0x80000, CRC(8c2593ac) SHA1(4261bc72b96c3a5690df35c5d8b71524765693d9) )
+ ROM_LOAD16_BYTE( "prg2.bin", 0x100000, 0x80000, CRC(665a5485) SHA1(c07920d110ca9c35f6cbff94a6a889c17300f994) )
+ ROM_LOAD16_BYTE( "prg1.bin", 0x100001, 0x80000, CRC(d7b13f39) SHA1(eb7cd92b44fdef3b72672b0be6786c526421b627) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "pu11256.bin", 0x000000, 0x80000, CRC(6581faea) SHA1(2b0e96998002a1df96c7869ec965257d2ecfb531), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x200000, 0x80000 )
+ ROM_CONTINUE( 0x000004, 0x80000 )
+ ROM_CONTINUE( 0x200004, 0x80000 )
+ ROMX_LOAD( "pu13478.bin", 0x000002, 0x80000, CRC(61613de4) SHA1(8f8c46ce907be2b4c4715ad88bfd1456818bdd2c), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x200002, 0x80000 )
+ ROM_CONTINUE( 0x000006, 0x80000 )
+ ROM_CONTINUE( 0x200006, 0x80000 )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* PIC16c57 - protected */
+ ROM_LOAD( "pic16c57", 0x00000, 0x4000, NO_DUMP )
+
+ ROM_REGION( 0x200000, "oki", 0 ) /* OKI6295 */
+ ROM_LOAD( "sound.bin", 0x000000, 0x80000, CRC(aeec9dc6) SHA1(56fd62e8db8aa96cdd242d8c705849a413567780) )
+
+ ROM_REGION( 0x200000, "user1", 0 ) /* other */
+ ROM_LOAD( "93c46.bin", 0x00, 0x80, CRC(36ab4e7d) SHA1(60bea43051d86d9aefcbb7a390cf0c7d8b905a4b) )
+ROM_END
+
+/* the readme doesn't actually state this has a PIC, and there's no sound rom
+ so it might be different */
+
+ROM_START( punipic3 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "psb5b.rom", 0x000000, 0x80000, CRC(58f42c05) SHA1(e243928f0bbecdf2a8d07cf4a6fdea4440e46c01) )
+ ROM_LOAD16_BYTE( "psb3b.rom", 0x000001, 0x80000, CRC(90113db4) SHA1(4decc203ae3ee4abcb2e017f11cd20eae2abf3f3) )
+ ROM_LOAD16_BYTE( "psb4a.rom", 0x100000, 0x80000, CRC(665a5485) SHA1(c07920d110ca9c35f6cbff94a6a889c17300f994) )
+ ROM_LOAD16_BYTE( "psb2a.rom", 0x100001, 0x80000, CRC(d7b13f39) SHA1(eb7cd92b44fdef3b72672b0be6786c526421b627) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "psb-a.rom", 0x000000, 0x80000, CRC(57f0f5e3) SHA1(130b6e92181994bbe874261e0895db65d4f3d5d1), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000004, 0x80000 )
+ ROM_CONTINUE( 0x200000, 0x80000 )
+ ROM_CONTINUE( 0x200004, 0x80000 )
+ ROMX_LOAD( "psb-b.rom", 0x000002, 0x80000, CRC(d9eb867e) SHA1(9b6eaa4a780da5c9cf09658fcab3a1a6f632c2f4), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000006, 0x80000 )
+ ROM_CONTINUE( 0x200002, 0x80000 )
+ ROM_CONTINUE( 0x200006, 0x80000 )
+
+ ROM_REGION( 0x28000, "audiocpu", ROMREGION_ERASE00 ) /* PIC16c57 (maybe, not listed in readme) */
+ //ROM_LOAD( "pic16c57", 0x00000, 0x4000, NO_DUMP )
+
+ ROM_REGION( 0x200000, "oki", ROMREGION_ERASE00 ) /* OKI6295 */
+ //ROM_LOAD( "sound.bin", 0x000000, 0x80000, CRC(aeec9dc6) SHA1(56fd62e8db8aa96cdd242d8c705849a413567780) )
+ROM_END
+
+DRIVER_INIT_MEMBER(cps_state, punipic)
+{
+ uint16_t *mem16 = (uint16_t *)memregion("maincpu")->base();
+ mem16[0x5A8/2] = 0x4E71; // set data pointers
+ mem16[0x4DF0/2] = 0x33ED;
+ mem16[0x4DF2/2] = 0xDB2E;
+ mem16[0x4DF4/2] = 0x0080;
+ mem16[0x4DF6/2] = 0x0152;
+ mem16[0x4DF8/2] = 0x4E75;
+
+ DRIVER_INIT_CALL(dinopic);
+}
+
+DRIVER_INIT_MEMBER(cps_state, punipic3)
+{
+ uint16_t *mem16 = (uint16_t *)memregion("maincpu")->base();
+ mem16[0x5A6/2] = 0x4E71; // set data pointers
+ mem16[0x5A8/2] = 0x4E71;
+
+ DRIVER_INIT_CALL(dinopic);
+}
+
+
+
+// ************************************************************************* SF2M1
+
+static MACHINE_CONFIG_START( sf2m1, cps_state )
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", M68000, XTAL_12MHz )
+ MCFG_CPU_PROGRAM_MAP(sf2m1_map)
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", cps_state, cps1_interrupt)
+
+ MCFG_CPU_ADD("audiocpu", Z80, XTAL_3_579545MHz)
+ MCFG_CPU_PROGRAM_MAP(sgyxz_sound_map)
+
+ MCFG_MACHINE_START_OVERRIDE(cps_state,sf2m1)
+
+ /* video hardware */
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_RAW_PARAMS(CPS_PIXEL_CLOCK, CPS_HTOTAL, CPS_HBEND, CPS_HBSTART, CPS_VTOTAL, CPS_VBEND, CPS_VBSTART)
+ MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_fcrash)
+ MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(cps_state, screen_vblank_cps1))
+ MCFG_SCREEN_PALETTE("palette")
+
+ MCFG_GFXDECODE_ADD("gfxdecode", "palette", cps1)
+ MCFG_PALETTE_ADD("palette", 0xc00)
+ MCFG_VIDEO_START_OVERRIDE(cps_state,cps1)
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+ MCFG_YM2151_ADD("2151", XTAL_3_579545MHz)
+ MCFG_YM2151_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
+ MCFG_SOUND_ROUTE(0, "mono", 0.35)
+ MCFG_SOUND_ROUTE(1, "mono", 0.35)
+ MCFG_OKIM6295_ADD("oki", XTAL_16MHz/4/4, OKIM6295_PIN7_HIGH)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
+MACHINE_CONFIG_END
+
+ROM_START( sf2m1 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "222e", 0x000000, 0x80000, CRC(1e20d0a3) SHA1(5e05b52fd938aff5190bca7e178705d7236aef66) )
+ ROM_LOAD16_BYTE( "196e", 0x000001, 0x80000, CRC(88cc38a3) SHA1(6049962f943bd37748a9531cc3254e8b59326eac) )
+ ROM_LOAD16_WORD_SWAP( "s92_21a.bin", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_10.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_11.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_13.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+ROM_END
+
+DRIVER_INIT_MEMBER(cps_state, sf2m1)
+{
+ uint16_t *mem16 = (uint16_t *)memregion("maincpu")->base();
+ mem16[0x64E/2] = 0x6046; // fix priorities
+
+ DRIVER_INIT_CALL(dinopic);
+
+}
+
+
+
+// ************************************************************************* SF2MDT, SF2MDTA
+
+
+/*
+CPU
+
+1x MC68000P12 (main)
+1x TPC1020AFN-084C (main)
+1x Z0840006PSC-Z80CPU (sound)
+1x YM2151 (sound)
+1x YM3012 (sound)
+2x M5205 (sound)
+2x LM324N (sound)
+1x TDA2003 (sound)
+1x oscillator 24.000000MHz
+1x oscillator 30.000MHz
+ROMs
+
+14x AM27C040 (1,3,6,7,8,9,10,11,12,13,14,15,16,17)
+3x TMS27C010A (2,4,5)
+3x PAL 16S20 (ic7,ic72, ic80) (read protected, not dumped)
+3x GAL20V8A (ic120, ic121, ic169) (read protected, not dumped)
+
+Note
+
+1x JAMMA edge connector
+1x trimmer (volume)
+3x 8x2 switches dip
+*/
+
+ROM_START( sf2mdt )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "3.ic172", 0x000000, 0x80000, CRC(5301b41f) SHA1(6855a57b21e8c5d74e5cb18f9ce6af650d7fb422) )
+ ROM_LOAD16_BYTE( "1.ic171", 0x000001, 0x80000, CRC(c1c803f6) SHA1(9fe18ae2553a63d8e4dcc20bafd5a4634f8b93c4) )
+ ROM_LOAD16_BYTE( "4.ic176", 0x100000, 0x20000, CRC(1073b7b6) SHA1(81ca1eab65ceac69520584bb23a684ccb9d92f89) )
+ ROM_LOAD16_BYTE( "2.ic175", 0x100001, 0x20000, CRC(924c6ce2) SHA1(676a912652bd75da5087f0c7eae047b7681a993c) )
+
+ ROM_REGION( 0x600000, "gfx", 0 ) /* rearranged in init */
+ ROMX_LOAD( "7.ic90", 0x000000, 0x80000, CRC(896eaf48) SHA1(5a13ae8b554e05eed3d5749aaf5845d499bce45b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "10.ic88", 0x000002, 0x80000, CRC(ef3f5be8) SHA1(d4e1de7d7caf6977e48544d6701618ae70c717f9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "13.ic89", 0x000004, 0x80000, CRC(305dd72a) SHA1(c373b517c23f3b019abb06e21f6b9ab6e1e47909) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "16.ic87", 0x000006, 0x80000, CRC(e57f6db9) SHA1(b37f95737804002ec0e237472eaacf0bc1e868e8) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "6.ic91", 0x200000, 0x80000, CRC(054cd5c4) SHA1(07f275e118c141a84ca15a2e9edc81694af37cf2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "9.ic93", 0x200002, 0x80000, CRC(818ca33d) SHA1(dfb707e17c83216f8a62e905f8c7cd6d406b417b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "12.ic92", 0x200004, 0x80000, CRC(87e069e8) SHA1(cddd3be84f8379134590bfbbb080518f28120e49) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "15.ic94", 0x200006, 0x80000, CRC(5dfb44d1) SHA1(08e44b8efc84f9cfc829aabf704155ddc700de76) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "8.ic86", 0x400000, 0x80000, CRC(34bbb3fa) SHA1(7794e89258f12b17d38c3d302dc15c502a8c8eb6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "11.ic84", 0x400002, 0x80000, CRC(cea6d1d6) SHA1(9c953db42f0d877e43c0c239f69a00df39a18295) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "14.ic85", 0x400004, 0x80000, CRC(7d9f1a67) SHA1(6deb7fff867c42b13a32bb11eda798cfdb4cbaa8) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "17.ic83", 0x400006, 0x80000, CRC(91a9a05d) SHA1(5266ceddd2df925e79b4200843dec2f7aa9297b3) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x30000, "audiocpu", 0 ) /* Sound program + samples */
+ ROM_LOAD( "5.ic26", 0x00000, 0x20000, CRC(17d5ba8a) SHA1(6ff3b8860d7e1fdee3561846f645eb4d3a8965ec) )
+ ROM_RELOAD( 0x10000, 0x20000 )
+ROM_END
+
+ROM_START( sf2mdta )
+/* unconfirmed if working on real hardware, pf4 is a bad dump (bad pin) */
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "3.mdta", 0x000000, 0x80000, CRC(9f544ef4) SHA1(f784809e59a5fcabd6d15d3f1c36250a5528c9f8) )
+ ROM_LOAD16_BYTE( "5.mdta", 0x000001, 0x80000, CRC(d76d6621) SHA1(aa9cea9ddace212a7b3c535b8f6e3fbc50da1f94) )
+ ROM_LOAD16_BYTE( "2.mdta", 0x100000, 0x20000, CRC(74844192) SHA1(99cd546c78cce7f632007af454d8a55eddb6b19b) )
+ ROM_LOAD16_BYTE( "4.mdta", 0x100001, 0x20000, CRC(bd98ff15) SHA1(ed902d949b0b5c5beaaea78a4b418ffa6db9e1df) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "pf4 sh058.ic89", 0x000000, 0x100000, CRC(16289710) SHA1(4f3236712b979a1eb2fa97740e32d7913cee0d0d), ROM_GROUPWORD | ROM_SKIP(2) )
+ ROMX_LOAD( "pf7 sh072.ic92", 0x000002, 0x100000, CRC(fb78022e) SHA1(b8974387056dd52db96b01cc4648edc814398c7e), ROM_GROUPWORD | ROM_SKIP(2) )
+ ROMX_LOAD( "pf5 sh036.ic90", 0x200000, 0x100000, CRC(0a6be48b) SHA1(b7e72c94d4e3eb4a6bba6608d9b9a093c8901ad9), ROM_GROUPWORD | ROM_SKIP(2) )
+ ROMX_LOAD( "pf8 sh074.ic93", 0x200002, 0x100000, CRC(6258c7cf) SHA1(4cd7519245c0aa816934a43e6743160f715d7dc2), ROM_GROUPWORD | ROM_SKIP(2) )
+ ROMX_LOAD( "pf6 sh070.ic88", 0x400000, 0x100000, CRC(9b5b09d7) SHA1(698a6aab41e495bd0c37a19aee16a84f04d15797), ROM_GROUPWORD | ROM_SKIP(2) )
+ ROMX_LOAD( "pf9 sh001.ic91", 0x400002, 0x100000, CRC(9f25090e) SHA1(12ff0431ef6550db446985c8914ac7d78eec6b6d), ROM_GROUPWORD | ROM_SKIP(2) )
+
+ ROM_REGION( 0x30000, "audiocpu", 0 ) /* Sound program + samples */
+ ROM_LOAD( "1.ic28", 0x00000, 0x20000, CRC(d5bee9cc) SHA1(e638cb5ce7a22c18b60296a7defe8b03418da56c) )
+ ROM_RELOAD( 0x10000, 0x20000 )
+ROM_END
+
+ROM_START( sf2mdtb )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "3.ic172", 0x000000, 0x80000, CRC(0bdb9da2) SHA1(5224ee81d94be70a84ffaa3a56b8093aa36d6b4f) ) // sldh
+ ROM_LOAD16_BYTE( "1.ic171", 0x000001, 0x80000, CRC(d88abbce) SHA1(57667a92710bb1d37daed09262c3064d09cbf4af) ) // sldh
+ ROM_LOAD16_BYTE( "4.ic176", 0x100000, 0x20000, CRC(74844192) SHA1(99cd546c78cce7f632007af454d8a55eddb6b19b) ) // sldh
+ ROM_LOAD16_BYTE( "2.ic175", 0x100001, 0x20000, CRC(bd98ff15) SHA1(ed902d949b0b5c5beaaea78a4b418ffa6db9e1df) ) // sldh
+
+ ROM_REGION( 0x600000, "gfx", 0 ) /* rearranged in init */
+ ROMX_LOAD( "7.ic90", 0x000000, 0x80000, CRC(896eaf48) SHA1(5a13ae8b554e05eed3d5749aaf5845d499bce45b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "10.ic88", 0x000002, 0x80000, CRC(ef3f5be8) SHA1(d4e1de7d7caf6977e48544d6701618ae70c717f9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "13.ic89", 0x000004, 0x80000, CRC(305dd72a) SHA1(c373b517c23f3b019abb06e21f6b9ab6e1e47909) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "16.ic87", 0x000006, 0x80000, CRC(e57f6db9) SHA1(b37f95737804002ec0e237472eaacf0bc1e868e8) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "6.ic91", 0x200000, 0x80000, CRC(054cd5c4) SHA1(07f275e118c141a84ca15a2e9edc81694af37cf2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "9.ic93", 0x200002, 0x80000, CRC(818ca33d) SHA1(dfb707e17c83216f8a62e905f8c7cd6d406b417b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "12.ic92", 0x200004, 0x80000, CRC(87e069e8) SHA1(cddd3be84f8379134590bfbbb080518f28120e49) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "15.ic94", 0x200006, 0x80000, CRC(5dfb44d1) SHA1(08e44b8efc84f9cfc829aabf704155ddc700de76) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "8.ic86", 0x400000, 0x80000, CRC(34bbb3fa) SHA1(7794e89258f12b17d38c3d302dc15c502a8c8eb6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "11.ic84", 0x400002, 0x80000, CRC(cea6d1d6) SHA1(9c953db42f0d877e43c0c239f69a00df39a18295) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "14.ic85", 0x400004, 0x80000, CRC(7d9f1a67) SHA1(6deb7fff867c42b13a32bb11eda798cfdb4cbaa8) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "17.ic83", 0x400006, 0x80000, CRC(91a9a05d) SHA1(5266ceddd2df925e79b4200843dec2f7aa9297b3) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x30000, "audiocpu", 0 ) /* Sound program + samples */
+ ROM_LOAD( "5.ic28", 0x00000, 0x20000, CRC(d5bee9cc) SHA1(e638cb5ce7a22c18b60296a7defe8b03418da56c) )
+ ROM_RELOAD( 0x10000, 0x20000 )
+ROM_END
+
+ROM_START( sf2b )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "pf1-2-sg076.bin", 0x000000, 0x100000, CRC(1d15bc7a) SHA1(834627545f191f39de6beb008c89623f2b88c13b) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "pf4-sg072.bin", 0x000000, 0x100000, CRC(16289710) SHA1(4f3236712b979a1eb2fa97740e32d7913cee0d0d), ROM_GROUPWORD | ROM_SKIP(2) )
+ ROMX_LOAD( "pf7-sg103.bin", 0x000002, 0x100000, CRC(fb78022e) SHA1(b8974387056dd52db96b01cc4648edc814398c7e), ROM_GROUPWORD | ROM_SKIP(2) )
+ ROMX_LOAD( "pf5-sg095.bin", 0x200000, 0x100000, CRC(0a6be48b) SHA1(b7e72c94d4e3eb4a6bba6608d9b9a093c8901ad9), ROM_GROUPWORD | ROM_SKIP(2) )
+ ROMX_LOAD( "pf8-sg101.bin", 0x200002, 0x100000, CRC(6258c7cf) SHA1(4cd7519245c0aa816934a43e6743160f715d7dc2), ROM_GROUPWORD | ROM_SKIP(2) )
+ ROMX_LOAD( "pf6-sg068.bin", 0x400000, 0x100000, CRC(9b5b09d7) SHA1(698a6aab41e495bd0c37a19aee16a84f04d15797), ROM_GROUPWORD | ROM_SKIP(2) )
+ ROMX_LOAD( "pf9-sh001.bin", 0x400002, 0x100000, CRC(9f25090e) SHA1(12ff0431ef6550db446985c8914ac7d78eec6b6d), ROM_GROUPWORD | ROM_SKIP(2) )
+
+ ROM_REGION( 0x30000, "audiocpu", 0 ) /* Sound program + samples */
+ ROM_LOAD( "3snd.ic28", 0x00000, 0x20000, CRC(d5bee9cc) SHA1(e638cb5ce7a22c18b60296a7defe8b03418da56c) )
+ ROM_RELOAD( 0x10000, 0x20000 )
+ROM_END
+
+
+ROM_START( sf2m9 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "27040.6", 0x000000, 0x80000, CRC(16c6372e) SHA1(5d5a49392f2fb806e66e0ac137df00425ca52e7f) )
+ ROM_LOAD16_BYTE( "27040.5", 0x000001, 0x80000, CRC(137d5f2e) SHA1(835e9b767e6499f161c5c4fd9a31a9f54b3ee68f) )
+ ROM_LOAD16_BYTE( "27010.4", 0x100000, 0x20000, CRC(8226c11c) SHA1(9588bd64e338901394805aca8a234f880674dc60) )
+ ROM_LOAD16_BYTE( "27010.3", 0x100001, 0x20000, CRC(924c6ce2) SHA1(676a912652bd75da5087f0c7eae047b7681a993c) )
+
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "tat-01.bin", 0x000000, 0x40000, CRC(a887f7d4) SHA1(d7e0c46b3ab1c6352f45033cb9e610d9c34d51fb), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000004, 0x40000)
+ ROMX_LOAD( "tat-05.bin", 0x000001, 0x40000, CRC(9390ff23) SHA1(b234169615aa952e3b15c7b0dfb495e499ba49ef), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000005, 0x40000)
+ ROMX_LOAD( "tat-02.bin", 0x000002, 0x40000, CRC(afb3b589) SHA1(9721fa705d62814e416c38a6c3e698efb9385a98), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000006, 0x40000)
+ ROMX_LOAD( "tat-06.bin", 0x000003, 0x40000, CRC(90f2053e) SHA1(a78710421e702b410650c45c3dec21bf16799fb4), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000007, 0x40000)
+
+ ROMX_LOAD( "tat-03.bin", 0x200000, 0x40000, CRC(79fa8bf0) SHA1(9f8f7b8dc54a75226beb017b9ca9fd62a9e42f6b), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x200004, 0x40000)
+ ROMX_LOAD( "tat-07.bin", 0x200001, 0x40000, CRC(6a5f153c) SHA1(f3d82ad01e2e4bdb2039815747fa14399c69753a), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x200005, 0x40000)
+ ROMX_LOAD( "tat-04.bin", 0x200002, 0x40000, CRC(32518120) SHA1(56ffa5fffb714cff8be8be5a3675b8a5fa29b2bc), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x200006, 0x40000)
+ ROMX_LOAD( "tat-08.bin", 0x200003, 0x40000, CRC(c16579ae) SHA1(42c9d6df9f3b015f5d1ad4fa2b34ea90bb37bcae), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x200007, 0x40000)
+
+ ROMX_LOAD( "tat-09.bin", 0x400000, 0x40000, CRC(169d85a6) SHA1(dd98c8807e80465858b2eac10825e598c37e1a93), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x400004, 0x40000)
+ ROMX_LOAD( "tat-11.bin", 0x400001, 0x40000, CRC(32a3a841) SHA1(6f9a13b8828998d194dd3933b032c75efed9cab3), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x400005, 0x40000)
+ ROMX_LOAD( "tat-10.bin", 0x400002, 0x40000, CRC(0c638630) SHA1(709d183d181a0509c7ed839c59214851468d2bb8), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x400006, 0x40000)
+ ROMX_LOAD( "tat-12.bin", 0x400003, 0x40000, CRC(6ee19b94) SHA1(c45119d04879b6ca23a3f7749175c56b381b43f2), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x400007, 0x40000)
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "27512.1", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "27020.2", 0x00000, 0x40000, CRC(6cfffb11) SHA1(995526183ffd35f92e9096500a3fe6237faaa2dd) )
+
+ ROM_REGION( 0x00c8d, "pld", 0 ) /* pal/gal */
+ ROM_LOAD( "gal20v8.68kadd", 0x00000, 0x00c8d, CRC(27cdd376) SHA1(9fb5844b33002bec80fb92d3e5d1bbc779087300) )//68k address decoder
+
+ROM_END
+
+DRIVER_INIT_MEMBER(cps_state, sf2mdt)
+{
+ int i;
+ uint32_t gfx_size = memregion( "gfx" )->bytes();
+ uint8_t *rom = memregion( "gfx" )->base();
+ uint8_t tmp;
+
+ for( i = 0; i < gfx_size; i += 8 )
+ {
+ tmp = rom[i + 1];
+ rom[i + 1] = rom[i + 4];
+ rom[i + 4] = tmp;
+ tmp = rom[i + 3];
+ rom[i + 3] = rom[i + 6];
+ rom[i + 6] = tmp;
+ }
+
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x708100, 0x7081ff, write16_delegate(FUNC(cps_state::sf2mdt_layer_w),this));
+ DRIVER_INIT_CALL(sf2mdta);
+}
+
+
+
+DRIVER_INIT_MEMBER(cps_state, sf2mdtb)
+{
+ int i;
+ uint32_t gfx_size = memregion( "gfx" )->bytes();
+ uint8_t *rom = memregion( "gfx" )->base();
+ uint8_t tmp;
+
+ for( i = 0; i < gfx_size; i += 8 )
+ {
+ tmp = rom[i + 1];
+ rom[i + 1] = rom[i + 4];
+ rom[i + 4] = tmp;
+ tmp = rom[i + 3];
+ rom[i + 3] = rom[i + 6];
+ rom[i + 6] = tmp;
+ }
+
+ /* bootleg sprite ram */
+ m_bootleg_sprite_ram = std::make_unique<uint16_t[]>(0x2000);
+ m_maincpu->space(AS_PROGRAM).install_ram(0x700000, 0x703fff, m_bootleg_sprite_ram.get());
+ m_maincpu->space(AS_PROGRAM).install_ram(0x704000, 0x707fff, m_bootleg_sprite_ram.get()); /* both of these need to be mapped */
+
+ DRIVER_INIT_CALL(cps1);
+}
+
+
+DRIVER_INIT_MEMBER(cps_state, sf2mdta)
+{
+ /* bootleg sprite ram */
+ m_bootleg_sprite_ram = std::make_unique<uint16_t[]>(0x2000);
+ m_maincpu->space(AS_PROGRAM).install_ram(0x700000, 0x703fff, m_bootleg_sprite_ram.get());
+ m_maincpu->space(AS_PROGRAM).install_ram(0x704000, 0x707fff, m_bootleg_sprite_ram.get()); /* both of these need to be mapped - see the "Magic Delta Turbo" text on the title screen */
+
+ m_bootleg_work_ram = std::make_unique<uint16_t[]>(0x8000);
+ m_maincpu->space(AS_PROGRAM).install_ram(0xfc0000, 0xfcffff, m_bootleg_work_ram.get()); /* this has moved */
+
+ DRIVER_INIT_CALL(cps1);
+}
+
+DRIVER_INIT_MEMBER(cps_state, sf2b)
+{
+ /* bootleg sprite ram */
+ m_bootleg_sprite_ram = std::make_unique<uint16_t[]>(0x2000);
+ m_maincpu->space(AS_PROGRAM).install_ram(0x700000, 0x703fff, m_bootleg_sprite_ram.get());
+ m_maincpu->space(AS_PROGRAM).install_ram(0x704000, 0x707fff, m_bootleg_sprite_ram.get());
+
+ DRIVER_INIT_CALL(cps1);
+}
+
+// ************************************************************************* SLAMPIC
+
+MACHINE_START_MEMBER(cps_state, slampic)
+{
+ m_layer_enable_reg = 0x16;
+ m_layer_mask_reg[0] = 0x00;
+ m_layer_mask_reg[1] = 0x02;
+ m_layer_mask_reg[2] = 0x28;
+ m_layer_mask_reg[3] = 0x2a;
+ m_layer_scroll1x_offset = 0x40;
+ m_layer_scroll2x_offset = 0x40;
+ m_layer_scroll3x_offset = 0x40;
+ m_sprite_base = 0x1000;
+ m_sprite_list_end_marker = 0x8000;
+ m_sprite_x_offset = 0;
+}
+
+static MACHINE_CONFIG_START( slampic, cps_state )
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", M68000, 12000000)
+ MCFG_CPU_PROGRAM_MAP(slampic_map)
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", cps_state, cps1_interrupt)
+
+ //MCFG_CPU_ADD("audiocpu", PIC16C57, 12000000)
+ //MCFG_DEVICE_DISABLE() /* no valid dumps .. */
+
+ MCFG_MACHINE_START_OVERRIDE(cps_state, slampic)
+
+ MCFG_EEPROM_SERIAL_93C46_8BIT_ADD("eeprom")
+
+ /* 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(8*8, (64-8)*8-1, 2*8, 30*8-1 )
+ MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_fcrash)
+ MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(cps_state, screen_vblank_cps1))
+ MCFG_SCREEN_PALETTE("palette")
+
+ MCFG_GFXDECODE_ADD("gfxdecode", "palette", cps1)
+ MCFG_PALETTE_ADD("palette", 0xc00)
+
+ MCFG_VIDEO_START_OVERRIDE(cps_state,cps1)
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+
+ MCFG_OKIM6295_ADD("oki", 1000000, OKIM6295_PIN7_HIGH)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
+MACHINE_CONFIG_END
+
+ROM_START( slampic )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "5.bin", 0x000000, 0x80000, CRC(7dba63cd) SHA1(222e781ffc40c5c23f5789c0682f549f00beeb8d) )
+ ROM_LOAD16_BYTE( "3.bin", 0x000001, 0x80000, CRC(d86671f3) SHA1(d95fae27b0f4d3688f1c2229c9d3780724a870a8) )
+ ROM_LOAD16_BYTE( "4.bin", 0x100000, 0x80000, CRC(d14d0e42) SHA1(b60c44193b247dc4856bd36d69cbbe9dcb2d21a7) )
+ ROM_LOAD16_BYTE( "2.bin", 0x100001, 0x80000, CRC(38063cd8) SHA1(e647433414ff4fdc0b2c4c7036b8995a95289efa) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "9.bin", 0x000000, 0x40000, CRC(dc140351) SHA1(0e69e1c8ded85ba26eb8236449d38ead0243ae78), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000004, 0x40000)
+ ROMX_LOAD( "8.bin", 0x000001, 0x40000, CRC(9ae88035) SHA1(3329e9582ca052940e115e759bb3d96f4a9c87fa), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000005, 0x40000)
+ ROMX_LOAD( "7.bin", 0x000002, 0x40000, CRC(5321f759) SHA1(7538a6587cf1077921b938070185e0a0ce5ca922), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000006, 0x40000)
+ ROMX_LOAD( "6.bin", 0x000003, 0x40000, CRC(c8eb5f76) SHA1(a361d2d2dfe71789736666b744ae5f1e4bf7e1b2), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000007, 0x40000)
+ ROMX_LOAD( "17.bin", 0x200000, 0x40000, CRC(21652214) SHA1(039335251f6553c4f36e2d33e8b43fb5726e833e), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x200004, 0x40000)
+ ROMX_LOAD( "16.bin", 0x200001, 0x40000, CRC(d49d2eb0) SHA1(1af01575340730166975be93bae438e2b0492f98), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x200005, 0x40000)
+ ROMX_LOAD( "15.bin", 0x200002, 0x40000, CRC(0d98bfd6) SHA1(c11fbf555880a933a4cbf6faa517f59f8443304f), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x200006, 0x40000)
+ ROMX_LOAD( "14.bin", 0x200003, 0x40000, CRC(807284f1) SHA1(c747c3eaade31c2633fb0a0682dbea900bf2b092), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x200007, 0x40000)
+ ROMX_LOAD( "13.bin", 0x400000, 0x40000, CRC(293579c5) SHA1(9adafe29664b20834365b339f7ae379cdb9ee138), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x400004, 0x40000)
+ ROMX_LOAD( "12.bin", 0x400001, 0x40000, CRC(c3727ce7) SHA1(c4abc2c59152c59a45f85393e9525505bc2c9e6e), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x400005, 0x40000)
+ ROMX_LOAD( "11.bin", 0x400002, 0x40000, CRC(2919883b) SHA1(44ad979daae673c77b3157d2b352797d4ad0ec24), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x400006, 0x40000)
+ ROMX_LOAD( "10.bin", 0x400003, 0x40000, CRC(f538e620) SHA1(354cd0548b067dfc8782bbe13b0a9c2083dbd290), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x400007, 0x40000)
+
+ ROM_REGION( 0x2000, "audiocpu", 0 ) /* PIC16c57 - protected, dump isn't valid */
+ ROM_LOAD( "pic16c57-xt-p.bin", 0x00000, 0x2000, BAD_DUMP CRC(aeae5ccc) SHA1(553afb68f7bf130cdf34e24512f72b4ecef1576f) )
+
+ ROM_REGION( 0x80000, "oki", 0 ) /* OKI6295 samples */
+ ROM_LOAD( "18.bin", 0x00000, 0x80000, CRC(73a0c11c) SHA1(a66e1a964313e21c4436200d36c598dcb277cd34) )
+
+ ROM_REGION( 0x20000, "user1", 0 ) // not in the dump, but needed for protection
+ ROM_LOAD( "mb_qa.5k", 0x00000, 0x20000, CRC(e21a03c4) SHA1(98c03fd2c9b6bf8a4fc25a4edca87fff7c3c3819) )
+ROM_END
+
+
+// ************************************************************************* DRIVER MACROS
+
+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)", 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)", 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)", 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)", 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)", 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)", 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)", 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)", 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)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // 921005 - Sangokushi 2
+
+// HBMAME **********************************************/
+
+
+GAME( 1990, cawingb, cawing, cawingb, cawingbl, cps_state, cawingbl, ROT0, "bootleg", "Carrier Air Wing (bootleg)", MACHINE_SUPPORTS_SAVE )
+
+static ADDRESS_MAP_START( captcommb2_map, AS_PROGRAM, 16, cps_state )
+ AM_RANGE(0x000000, 0x1fffff) AM_ROM
+ AM_RANGE(0x800000, 0x800001) AM_READ_PORT("IN1") /* Player input ports */
+ AM_RANGE(0x800018, 0x80001f) AM_READ(cps1_dsw_r) /* System input ports / Dip Switches */
+ AM_RANGE(0x800030, 0x800037) AM_WRITE(cps1_coinctrl_w)
+ AM_RANGE(0x800100, 0x80013f) AM_WRITE(cps1_cps_a_w) AM_SHARE("cps_a_regs") /* CPS-A custom */
+ AM_RANGE(0x800140, 0x80017f) AM_READWRITE(cps1_cps_b_r, cps1_cps_b_w) AM_SHARE("cps_b_regs")
+ AM_RANGE(0x800180, 0x800181) AM_WRITE(fcrash_soundlatch_w) /* Sound command */
+ AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram")
+ AM_RANGE(0xff0000, 0xffffff) AM_RAM
+ADDRESS_MAP_END
+
+
+MACHINE_START_MEMBER(cps_state, captcommb2)
+{
+ uint8_t *ROM = memregion("audiocpu")->base();
+
+ membank("bank1")->configure_entries(0, 16, &ROM[0x10000], 0x4000);
+
+ save_item(NAME(m_sample_buffer1));
+ save_item(NAME(m_sample_buffer2));
+ save_item(NAME(m_sample_select1));
+ save_item(NAME(m_sample_select2));
+}
+
+static MACHINE_CONFIG_START( captcommb2, cps_state )
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", M68000, 10000000)
+ MCFG_CPU_PROGRAM_MAP(captcommb2_map)
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", cps_state, cps1_interrupt)
+
+ MCFG_CPU_ADD("audiocpu", Z80, 3579545)
+ MCFG_CPU_PROGRAM_MAP(sf2mdt_z80map)
+
+ MCFG_MACHINE_START_OVERRIDE(cps_state,captcommb2)
+ MCFG_MACHINE_RESET_OVERRIDE(cps_state,fcrash)
+
+ /* 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(8*8, (64-8)*8-1, 2*8, 30*8-1 )
+ MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_cps1)
+ MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(cps_state, screen_vblank_cps1))
+ MCFG_SCREEN_PALETTE("palette")
+
+ MCFG_GFXDECODE_ADD("gfxdecode", "palette", cps1)
+ MCFG_PALETTE_ADD("palette", 4096)
+
+ MCFG_VIDEO_START_OVERRIDE(cps_state,cps1)
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+ MCFG_GENERIC_LATCH_8_ADD("soundlatch")
+
+ MCFG_YM2151_ADD("2151", 3579545)
+ MCFG_SOUND_ROUTE(0, "mono", 0.35)
+ MCFG_SOUND_ROUTE(1, "mono", 0.35)
+
+ /* has 2x MSM5205 instead of OKI6295 */
+ MCFG_SOUND_ADD("msm1", MSM5205, 24000000/64) /* ? */
+ MCFG_MSM5205_VCLK_CB(WRITELINE(cps_state, m5205_int1)) /* interrupt function */
+ MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S96_4B) /* 4KHz 4-bit */
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
+
+ MCFG_SOUND_ADD("msm2", MSM5205, 24000000/64) /* ? */
+ MCFG_MSM5205_VCLK_CB(WRITELINE(cps_state, m5205_int2)) /* interrupt function */
+ MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S96_4B) /* 4KHz 4-bit */
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
+MACHINE_CONFIG_END
+
+
+ROM_START( captcommb2 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "5.bin", 0x000000, 0x80000, CRC(c3a6ed28) SHA1(f79fed35f7b0dc383837a2ead846acc686dd3487) )
+ ROM_LOAD16_BYTE( "4.bin", 0x000001, 0x80000, CRC(28729335) SHA1(6dd23c2d41e4e182434fe80c03d5c90785e6c0ce) )
+ ROM_LOAD16_BYTE( "3.bin", 0x100000, 0x40000, CRC(1b526d73) SHA1(3dd8dec61db4f4f5546937602a8fb01c639d72f8) )
+ ROM_LOAD16_BYTE( "2.bin", 0x100001, 0x40000, CRC(73c99709) SHA1(e122e3771b698c44fb998589af0542b1f2a3876a) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cap.bin", 0x000000, 0x80000, CRC(7261d8ba) SHA1(4b66292e42d20d0b79a756f0e445492ddb9c6bbc) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-5m.3a
+ ROMX_LOAD( "cbp.bin", 0x000002, 0x80000, CRC(6a60f949) SHA1(87391ff92abaf3e451f70d789a938cffbd1fd222) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-7m.5a
+ ROMX_LOAD( "ccp.bin", 0x000004, 0x80000, CRC(00637302) SHA1(2c554b59cceec2de67a9a4bc6281fe846d3c8cd2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-1m.4a
+ ROMX_LOAD( "cdp.bin", 0x000006, 0x80000, CRC(cc87cf61) SHA1(7fb1f49494cc1a08aded20754bb0cefb1c323198) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-3m.6a
+ ROMX_LOAD( "cai.bin", 0x200000, 0x80000, CRC(28718bed) SHA1(dfdc4dd14dc609783bad94d608a9e9b137dea944) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-6m.7a
+ ROMX_LOAD( "cbi.bin", 0x200002, 0x80000, CRC(d4acc53a) SHA1(d03282ebbde362e679cc97f772aa9baf163d7606) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-8m.9a
+ ROMX_LOAD( "cci.bin", 0x200004, 0x80000, CRC(0c69f151) SHA1(a170b8e568439e4a26d84376d53560e4248e4e2f) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-2m.8a
+ ROMX_LOAD( "cdi.bin", 0x200006, 0x80000, CRC(1f9ebb97) SHA1(023d00cb7b6a52d1b29e2052abe08ef34cb0c55c) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-4m.10a
+
+ ROM_REGION( 0x50000, "audiocpu", 0 ) /* Sound program + samples */
+ ROM_LOAD( "1.bin", 0x00000, 0x40000, CRC(aed2f4bd) SHA1(3bd567dc350bf6ac3a349548790ad49eb5bd8307) )
+ ROM_RELOAD( 0x10000, 0x40000 )
+ROM_END
+
+
+GAME( 1991, captcommb2,captcomm, captcommb2,captcomm, cps_state, cps1, ROT0, "bootleg", "Captain Commando (bootleg with YM2151 + 2xMSM5205)", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/flower.cpp b/docs/release/src/hbmame/drivers/flower.cpp
new file mode 100644
index 00000000000..89df651bed3
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/flower.cpp
@@ -0,0 +1,964 @@
+/*
+
+Flower (c)1986 Komax (USA license)
+ (c)1986 Sega/Alpha (Sega game number 834-5998)
+*/
+
+#include "emu.h"
+#include "cpu/z80/z80.h"
+#include "screen.h"
+#include "speaker.h"
+
+class flower_state : public driver_device
+{
+public:
+ flower_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag)
+ , m_sn_nmi_enable(*this, "sn_nmi_enable")
+ , m_spriteram(*this, "spriteram")
+ , m_textram(*this, "textram")
+ , m_bg0ram(*this, "bg0ram")
+ , m_bg1ram(*this, "bg1ram")
+ , m_bg0_scroll(*this, "bg0_scroll")
+ , m_bg1_scroll(*this, "bg1_scroll")
+ , m_maincpu(*this, "maincpu")
+ , m_audiocpu(*this, "audiocpu")
+ , m_subcpu(*this, "subcpu")
+ , m_gfxdecode(*this, "gfxdecode")
+ , m_palette(*this, "palette")
+ { }
+
+ DECLARE_READ8_MEMBER(soundlatch_byte_r);
+ DECLARE_WRITE8_MEMBER(flower_maincpu_irq_ack);
+ DECLARE_WRITE8_MEMBER(flower_subcpu_irq_ack);
+ DECLARE_WRITE8_MEMBER(flower_soundcpu_irq_ack);
+ DECLARE_WRITE8_MEMBER(flower_coin_counter_w);
+ DECLARE_WRITE8_MEMBER(flower_coin_lockout_w);
+ DECLARE_WRITE8_MEMBER(sound_command_w);
+ DECLARE_WRITE8_MEMBER(flower_textram_w);
+ DECLARE_WRITE8_MEMBER(flower_bg0ram_w);
+ DECLARE_WRITE8_MEMBER(flower_bg1ram_w);
+ DECLARE_WRITE8_MEMBER(flower_flipscreen_w);
+ DECLARE_INPUT_CHANGED_MEMBER(coin_inserted);
+ TILE_GET_INFO_MEMBER(get_bg0_tile_info);
+ TILE_GET_INFO_MEMBER(get_bg1_tile_info);
+ TILE_GET_INFO_MEMBER(get_text_tile_info);
+ uint32_t screen_update_flower(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+
+private:
+
+ uint8_t m_soundlatch;
+ tilemap_t *m_bg0_tilemap;
+ tilemap_t *m_bg1_tilemap;
+ tilemap_t *m_text_tilemap;
+ tilemap_t *m_text_right_tilemap;
+ virtual void video_start() override;
+ void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect );
+ required_shared_ptr<uint8_t> m_sn_nmi_enable;
+ required_shared_ptr<uint8_t> m_spriteram;
+ required_shared_ptr<uint8_t> m_textram;
+ required_shared_ptr<uint8_t> m_bg0ram;
+ required_shared_ptr<uint8_t> m_bg1ram;
+ required_shared_ptr<uint8_t> m_bg0_scroll;
+ required_shared_ptr<uint8_t> m_bg1_scroll;
+ required_device<cpu_device> m_maincpu;
+ required_device<cpu_device> m_audiocpu;
+ required_device<cpu_device> m_subcpu;
+ required_device<gfxdecode_device> m_gfxdecode;
+ required_device<palette_device> m_palette;
+};
+
+
+// ======================> flower_sound_device
+
+
+/* this structure defines the parameters for a channel */
+struct flower_sound_channel
+{
+ uint32_t start;
+ uint32_t pos;
+ uint16_t freq;
+ uint8_t volume;
+ uint8_t voltab;
+ uint8_t oneshot;
+ uint8_t active;
+ uint8_t effect;
+ uint32_t ecount;
+
+};
+
+class flower_sound_device : public device_t, public device_sound_interface
+{
+public:
+ flower_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ ~flower_sound_device() {}
+
+ enum
+ {
+ TIMER_CLOCK_EFFECT
+ };
+
+ DECLARE_WRITE8_MEMBER( sound1_w );
+ DECLARE_WRITE8_MEMBER( sound2_w );
+
+protected:
+ // device-level overrides
+ virtual void device_config_complete() override;
+ virtual void device_start() override;
+ virtual void device_reset() override;
+
+ virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
+
+ // sound stream update overrides
+ virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override;
+
+private:
+ void make_mixer_table(int voices, int gain);
+
+ // internal state
+ emu_timer *m_effect_timer;
+
+ /* data about the sound system */
+ flower_sound_channel m_channel_list[8];
+ flower_sound_channel *m_last_channel;
+
+ /* global sound parameters */
+ const uint8_t *m_sample_rom;
+ const uint8_t *m_volume_rom;
+ sound_stream * m_stream;
+
+ /* mixer tables and internal buffers */
+ std::unique_ptr<int16_t[]> m_mixer_table;
+ int16_t *m_mixer_lookup;
+ std::unique_ptr<short[]> m_mixer_buffer;
+
+ uint8_t m_soundregs1[0x40];
+ uint8_t m_soundregs2[0x40];
+
+};
+
+extern const device_type FLOWER;
+
+READ8_MEMBER( flower_state::soundlatch_byte_r )
+{
+ return m_soundlatch;
+}
+
+WRITE8_MEMBER(flower_state::flower_maincpu_irq_ack)
+{
+ m_maincpu->set_input_line(0, CLEAR_LINE);
+}
+
+WRITE8_MEMBER(flower_state::flower_subcpu_irq_ack)
+{
+ m_subcpu->set_input_line(0, CLEAR_LINE);
+}
+
+WRITE8_MEMBER(flower_state::flower_soundcpu_irq_ack)
+{
+ m_audiocpu->set_input_line(0, CLEAR_LINE);
+}
+
+WRITE8_MEMBER(flower_state::flower_coin_counter_w)
+{
+ //coin_counter_w(machine(), 0, data & 1);
+}
+
+WRITE8_MEMBER(flower_state::flower_coin_lockout_w)
+{
+ //coin_lockout_global_w(machine(), ~data & 1);
+}
+
+WRITE8_MEMBER(flower_state::sound_command_w)
+{
+ m_soundlatch = data;
+ //soundlatch_byte_w(space, 0, data);
+
+ if (*m_sn_nmi_enable & 1)
+ m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
+}
+
+static ADDRESS_MAP_START( flower_cpu1_2, AS_PROGRAM, 8, flower_state )
+ AM_RANGE(0x0000, 0x7fff) AM_ROM
+ AM_RANGE(0xa000, 0xa000) AM_WRITE(flower_coin_lockout_w)
+ AM_RANGE(0xa001, 0xa001) AM_WRITE(flower_flipscreen_w)
+ AM_RANGE(0xa002, 0xa002) AM_WRITE(flower_maincpu_irq_ack)
+ AM_RANGE(0xa003, 0xa003) AM_WRITE(flower_subcpu_irq_ack)
+ AM_RANGE(0xa004, 0xa004) AM_WRITE(flower_coin_counter_w)
+ AM_RANGE(0xa005, 0xa005) AM_WRITENOP // subcpu nmi (unused)
+ AM_RANGE(0xa100, 0xa100) AM_READ_PORT("IN0CPU1")
+ AM_RANGE(0xa101, 0xa101) AM_READ_PORT("IN1CPU1")
+ AM_RANGE(0xa102, 0xa102) AM_READ_PORT("IN0CPU0")
+ AM_RANGE(0xa103, 0xa103) AM_READ_PORT("IN1CPU0")
+ AM_RANGE(0xa400, 0xa400) AM_WRITE(sound_command_w)
+ AM_RANGE(0xc000, 0xddff) AM_RAM AM_SHARE("mainram1")
+ AM_RANGE(0xde00, 0xdfff) AM_RAM AM_SHARE("spriteram")
+ AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(flower_textram_w) AM_SHARE("textram")
+ AM_RANGE(0xe000, 0xefff) AM_RAM AM_SHARE("mainram2") // only cleared?
+ AM_RANGE(0xf000, 0xf1ff) AM_RAM_WRITE(flower_bg0ram_w) AM_SHARE("bg0ram")
+ AM_RANGE(0xf200, 0xf200) AM_RAM AM_SHARE("bg0_scroll")
+ AM_RANGE(0xf800, 0xf9ff) AM_RAM_WRITE(flower_bg1ram_w) AM_SHARE("bg1ram")
+ AM_RANGE(0xfa00, 0xfa00) AM_RAM AM_SHARE("bg1_scroll")
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( flower_sound_cpu, AS_PROGRAM, 8, flower_state )
+ AM_RANGE(0x0000, 0x3fff) AM_ROM
+ AM_RANGE(0x4000, 0x4000) AM_WRITE(flower_soundcpu_irq_ack)
+ AM_RANGE(0x4001, 0x4001) AM_WRITEONLY AM_SHARE("sn_nmi_enable")
+ AM_RANGE(0x6000, 0x6000) AM_READ(soundlatch_byte_r)
+ AM_RANGE(0x8000, 0x803f) AM_DEVWRITE("flower", flower_sound_device, sound1_w)
+ AM_RANGE(0xa000, 0xa03f) AM_DEVWRITE("flower", flower_sound_device, sound2_w)
+ AM_RANGE(0xc000, 0xc7ff) AM_RAM
+ADDRESS_MAP_END
+
+
+INPUT_CHANGED_MEMBER(flower_state::coin_inserted)
+{
+ m_maincpu->set_input_line(INPUT_LINE_NMI, newval ? CLEAR_LINE : ASSERT_LINE);
+}
+
+static INPUT_PORTS_START( flower )
+ PORT_START("IN0CPU0")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, flower_state,coin_inserted, 0)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START1 )
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START2 )
+ PORT_DIPNAME( 0x08, 0x08, "Energy Decrease" ) PORT_DIPLOCATION("SW2:4")
+ PORT_DIPSETTING( 0x08, "Slow" )
+ PORT_DIPSETTING( 0x00, "Fast" )
+ PORT_DIPNAME( 0x10, 0x10, "Invulnerability (Cheat)") PORT_DIPLOCATION("SW2:5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x20, "Keep Weapons When Destroyed" ) PORT_DIPLOCATION("SW2:6") // check code at 0x74a2
+ PORT_DIPSETTING( 0x20, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
+ PORT_DIPNAME( 0x40, 0x40, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:7") // "Enemy Bullets"
+ PORT_DIPSETTING( 0x40, DEF_STR( Normal ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Hard ) )
+ PORT_DIPNAME( 0x80, 0x80, "Shot Range" ) PORT_DIPLOCATION("SW2:8") // check code at 0x75f9
+ PORT_DIPSETTING( 0x80, "Short" )
+ PORT_DIPSETTING( 0x00, "Long" )
+
+ PORT_START("IN1CPU0")
+ PORT_DIPNAME( 0x07, 0x05, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:1,2,3")
+ PORT_DIPSETTING( 0x07, "1" )
+ PORT_DIPSETTING( 0x06, "2" )
+ PORT_DIPSETTING( 0x05, "3" )
+ PORT_DIPSETTING( 0x04, "4" )
+ PORT_DIPSETTING( 0x03, "5" )
+ PORT_DIPSETTING( 0x02, "6" )
+ PORT_DIPSETTING( 0x01, "7" )
+ PORT_DIPSETTING( 0x00, "Infinite (Cheat)")
+ PORT_DIPNAME( 0x18, 0x18, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:4,5")
+ PORT_DIPSETTING( 0x00, DEF_STR( 3C_1C ) )
+ PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) )
+ PORT_DIPSETTING( 0x18, DEF_STR( 1C_1C ) )
+ PORT_DIPSETTING( 0x10, DEF_STR( 1C_2C ) )
+ PORT_DIPNAME( 0x20, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW1:6") // check code at 0x759f
+ PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
+ PORT_DIPSETTING( 0x20, DEF_STR( Cocktail ) )
+ PORT_DIPNAME( 0x40, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:7")
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x80, 0x80, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW1:8")
+ PORT_DIPSETTING( 0x80, "30k, then every 50k" )
+ PORT_DIPSETTING( 0x00, "50k, then every 80k" )
+
+ PORT_START("IN0CPU1")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP )
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN )
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT )
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT )
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P1 Laser")
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P1 Missile")
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("P1 Cutter")
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("IN1CPU1")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_COCKTAIL
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_COCKTAIL
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_COCKTAIL
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_COCKTAIL
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL PORT_NAME("P2 Laser")
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL PORT_NAME("P2 Missile")
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_COCKTAIL PORT_NAME("P2 Cutter")
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
+INPUT_PORTS_END
+
+static const gfx_layout flower_charlayout =
+{
+ 8,8,
+ RGN_FRAC(1,1),
+ 2,
+ { 0, 4 },
+ { STEP4(0,1), STEP4(8,1) },
+ { STEP8(0,16) },
+ 8*8*2
+};
+
+static const gfx_layout flower_tilelayout =
+{
+ 16,16,
+ RGN_FRAC(1,2),
+ 4,
+ { 0, 4, RGN_FRAC(1,2), RGN_FRAC(1,2)+4 },
+ { STEP4(0,1), STEP4(8,1), STEP4(8*8*2,1), STEP4(8*8*2+8,1) },
+ { STEP8(0,16), STEP8(8*8*4,16) },
+ 16*16*2
+};
+
+static GFXDECODE_START( flower )
+ GFXDECODE_ENTRY( "gfx1", 0, flower_charlayout, 0, 64 )
+ GFXDECODE_ENTRY( "gfx2", 0, flower_tilelayout, 0, 16 )
+ GFXDECODE_ENTRY( "gfx3", 0, flower_tilelayout, 0, 16 )
+GFXDECODE_END
+
+void flower_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect )
+{
+ gfx_element *gfx = m_gfxdecode->gfx(1);
+ uint8_t *source = m_spriteram + 0x200;
+ uint8_t *finish = source - 0x200;
+
+ source -= 8;
+
+ while( source>=finish )
+ {
+ int xblock,yblock;
+ int sy = 256-32-source[0]+1;
+ int sx = (source[4]|(source[5]<<8))-55;
+ int code = source[1] & 0x3f;
+ int color = (source[6]>>4);
+
+ /*
+ Byte 0: Y
+ Byte 1:
+ 0x80 - FlipY
+ 0x40 - FlipX
+ 0x3f - Tile
+ Byte 2:
+ 0x08 - Tile MSB
+ 0x01 - Tile MSB
+ Byte 3:
+ 0x07 - X Zoom
+ 0x08 - X Size
+ 0x70 - Y Zoom
+ 0x80 - Y Size
+ Byte 4: X LSB
+ Byte 5: X MSB
+ Byte 6:
+ 0xf0 - Colour
+ */
+
+ int flipy = source[1] & 0x80;
+ int flipx = source[1] & 0x40;
+
+ int size = source[3];
+
+ int xsize = ((size & 0x08)>>3);
+ int ysize = ((size & 0x80)>>7);
+
+ xsize++;
+ ysize++;
+
+ if (ysize==2) sy -= 16;
+
+ code |= ((source[2] & 0x01) << 6);
+ code |= ((source[2] & 0x08) << 4);
+
+ if(flip_screen())
+ {
+ flipx = !flipx;
+ flipy = !flipy;
+ sx = sx+16;
+ sy = 250-sy;
+
+ if (ysize==2) sy += 16;
+ }
+
+ for (xblock = 0; xblock<xsize; xblock++)
+ {
+ int xoffs=!flipx ? (xblock*8) : ((xsize-xblock-1)*8);
+ int zoomx=((size&7)+1)<<13;
+ int zoomy=((size&0x70)+0x10)<<9;
+ int xblocksizeinpixels=(zoomx*16)>>16;
+ int yblocksizeinpixels=(zoomy*16)>>16;
+
+ for (yblock = 0; yblock<ysize; yblock++)
+ {
+ int yoffs=!flipy ? yblock : (ysize-yblock-1);
+ int sxoffs=(16-xblocksizeinpixels)/2;
+ int syoffs=(16-yblocksizeinpixels)/2;
+ if (xblock) sxoffs+=xblocksizeinpixels;
+ if (yblock) syoffs+=yblocksizeinpixels;
+
+ gfx->zoom_transpen(bitmap,cliprect,
+ code+yoffs+xoffs,
+ color,
+ flipx,flipy,
+ sx+sxoffs,sy+syoffs,
+ zoomx,zoomy,15);
+ }
+ }
+ source -= 8;
+ }
+
+}
+
+TILE_GET_INFO_MEMBER(flower_state::get_bg0_tile_info)
+{
+ int code = m_bg0ram[tile_index];
+ int color = m_bg0ram[tile_index+0x100];
+ /* Todo - may be tile flip bits? */
+
+ SET_TILE_INFO_MEMBER(2, code, color>>4, 0);
+}
+
+TILE_GET_INFO_MEMBER(flower_state::get_bg1_tile_info)
+{
+ int code = m_bg1ram[tile_index];
+ int color = m_bg1ram[tile_index+0x100];
+ /* Todo - may be tile flip bits? */
+
+ SET_TILE_INFO_MEMBER(2, code, color>>4, 0);
+}
+
+TILE_GET_INFO_MEMBER(flower_state::get_text_tile_info)
+{
+ int code = m_textram[tile_index];
+ int color = m_textram[tile_index+0x400];
+ /* Todo - may be tile flip bits? */
+
+ SET_TILE_INFO_MEMBER(0, code, color>>2, 0);
+}
+
+void flower_state::video_start()
+{
+ m_bg0_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(flower_state::get_bg0_tile_info),this), TILEMAP_SCAN_ROWS,16,16,16,16);
+ m_bg1_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(flower_state::get_bg1_tile_info),this), TILEMAP_SCAN_ROWS,16,16,16,16);
+ m_text_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(flower_state::get_text_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8,32,32);
+ m_text_right_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(flower_state::get_text_tile_info),this),TILEMAP_SCAN_COLS, 8, 8, 2,32);
+
+ m_bg1_tilemap->set_transparent_pen(15);
+ m_text_tilemap->set_transparent_pen(3);
+ m_text_right_tilemap->set_transparent_pen(3);
+
+ m_text_tilemap->set_scrolly(0, 16);
+ m_text_right_tilemap->set_scrolly(0, 16);
+}
+
+uint32_t flower_state::screen_update_flower(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+{
+ rectangle myclip = cliprect;
+
+ m_bg0_tilemap->set_scrolly(0, m_bg0_scroll[0]+16);
+ m_bg1_tilemap->set_scrolly(0, m_bg1_scroll[0]+16);
+
+ m_bg0_tilemap->draw(screen, bitmap, cliprect, 0,0);
+ m_bg1_tilemap->draw(screen, bitmap, cliprect, 0,0);
+
+ draw_sprites(bitmap,cliprect);
+
+ if(flip_screen())
+ {
+ myclip.min_x = cliprect.min_x;
+ myclip.max_x = cliprect.min_x + 15;
+ }
+ else
+ {
+ myclip.min_x = cliprect.max_x - 15;
+ myclip.max_x = cliprect.max_x;
+ }
+
+ m_text_tilemap->draw(screen, bitmap, cliprect, 0,0);
+ m_text_right_tilemap->draw(screen, bitmap, myclip, 0,0);
+ return 0;
+}
+
+WRITE8_MEMBER(flower_state::flower_textram_w)
+{
+ m_textram[offset] = data;
+ m_text_tilemap->mark_tile_dirty(offset);
+ m_text_right_tilemap->mark_all_dirty();
+}
+
+WRITE8_MEMBER(flower_state::flower_bg0ram_w)
+{
+ m_bg0ram[offset] = data;
+ m_bg0_tilemap->mark_tile_dirty(offset & 0x1ff);
+}
+
+WRITE8_MEMBER(flower_state::flower_bg1ram_w)
+{
+ m_bg1ram[offset] = data;
+ m_bg1_tilemap->mark_tile_dirty(offset & 0x1ff);
+}
+
+WRITE8_MEMBER(flower_state::flower_flipscreen_w)
+{
+ flip_screen_set(data);
+}
+
+
+static MACHINE_CONFIG_START( flower, flower_state )
+
+ /* basic machine hardware */
+ // clock divider (of all cpus) is unknown. /6 (3.072 MHz) is too slow
+ // cpus are Z80 "A" type, official maximum speed of 4 MHz, but 4.6 MHz has been proven to work in practice
+ MCFG_CPU_ADD("maincpu", Z80,XTAL_18_432MHz/4)
+ MCFG_CPU_PROGRAM_MAP(flower_cpu1_2)
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", flower_state, irq0_line_hold)
+
+ MCFG_CPU_ADD("subcpu", Z80,XTAL_18_432MHz/4)
+ MCFG_CPU_PROGRAM_MAP(flower_cpu1_2)
+ MCFG_CPU_PERIODIC_INT_DRIVER(flower_state, irq0_line_hold, 120) // controls game speed? irqsource and frequency unknown
+
+ MCFG_CPU_ADD("audiocpu", Z80,XTAL_18_432MHz/4)
+ MCFG_CPU_PROGRAM_MAP(flower_sound_cpu)
+ MCFG_CPU_PERIODIC_INT_DRIVER(flower_state, irq0_line_hold, 90) // controls music speed. irqsource and frequency unknown, same as subcpu perhaps?
+
+ // tight sync, slowdowns otherwise
+// MCFG_QUANTUM_PERFECT_CPU("maincpu")
+ MCFG_QUANTUM_TIME(attotime::from_hz(6000))
+
+ /* video hardware */
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_REFRESH_RATE(60) // ?
+ MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
+ MCFG_SCREEN_SIZE(34*8, 33*8)
+ MCFG_SCREEN_VISIBLE_AREA(0*8, 34*8-1, 0*8, 28*8-1)
+ MCFG_SCREEN_UPDATE_DRIVER(flower_state, screen_update_flower)
+ MCFG_SCREEN_PALETTE("palette")
+
+ MCFG_GFXDECODE_ADD("gfxdecode", "palette", flower)
+ MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 256)
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+
+ MCFG_SOUND_ADD("flower", FLOWER, 0)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
+MACHINE_CONFIG_END
+
+
+ROM_START( flower ) /* Komax version */
+ ROM_REGION( 0x10000, "maincpu", 0 ) /* main cpu */
+ ROM_LOAD( "1.5j", 0x0000, 0x8000, CRC(a4c3af78) SHA1(d149b0e0d82318273dd9cc5a143b175cdc818d0d) )
+
+ ROM_REGION( 0x10000, "subcpu", 0 ) /* sub cpu */
+ ROM_LOAD( "2.5f", 0x0000, 0x8000, CRC(7c7ee2d8) SHA1(1e67bfe0f3585be5a6e6719ccf9db764bafbcb01) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */
+ ROM_LOAD( "3.d9", 0x0000, 0x4000, CRC(8866c2b0) SHA1(d00f31994673e8087a1406f98e8832d07cedeb66) ) // 1xxxxxxxxxxxxx = 0xFF
+
+ ROM_REGION( 0x2000, "gfx1", ROMREGION_INVERT ) /* tx layer */
+ ROM_LOAD( "10.13e", 0x0000, 0x2000, CRC(62f9b28c) SHA1(d57d06b99e72a4f68f197a5b6c042c926cc70ca0) ) // FIRST AND SECOND HALF IDENTICAL
+
+ ROM_REGION( 0x8000, "gfx2", ROMREGION_INVERT ) /* sprites */
+ ROM_LOAD( "14.19e", 0x0000, 0x2000, CRC(11b491c5) SHA1(be1c4a0fbe8fd4e124c21e0f700efa0428376691) )
+ ROM_LOAD( "13.17e", 0x2000, 0x2000, CRC(ea743986) SHA1(bbef4fd0f7d21cc89a52061fa50d7c2ea37287bd) )
+ ROM_LOAD( "12.16e", 0x4000, 0x2000, CRC(e3779f7f) SHA1(8e12d06b3cdc2fcb7b77cc35f8eca45544cc4873) )
+ ROM_LOAD( "11.14e", 0x6000, 0x2000, CRC(8801b34f) SHA1(256059fcd16b21e076db1c18fd9669128df1d658) )
+
+ ROM_REGION( 0x8000, "gfx3", ROMREGION_INVERT ) /* bg layers */
+ ROM_LOAD( "8.10e", 0x0000, 0x2000, CRC(f85eb20f) SHA1(699edc970c359143dee6de2a97cc2a552454785b) )
+ ROM_LOAD( "6.7e", 0x2000, 0x2000, CRC(3e97843f) SHA1(4e4e5625dbf78eca97536b1428b2e49ad58c618f) )
+ ROM_LOAD( "9.12e", 0x4000, 0x2000, CRC(f1d9915e) SHA1(158e1cc8c402f9ae3906363d99f2b25c94c64212) )
+ ROM_LOAD( "15.9e", 0x6000, 0x2000, CRC(1cad9f72) SHA1(c38dbea266246ed4d47d12bdd8f9fae22a5f8bb8) )
+
+ ROM_REGION( 0x8000, "sound1", 0 )
+ ROM_LOAD( "4.12a", 0x0000, 0x8000, CRC(851ed9fd) SHA1(5dc048b612e45da529502bf33d968737a7b0a646) ) /* 8-bit samples */
+
+ ROM_REGION( 0x4000, "sound2", 0 )
+ ROM_LOAD( "5.16a", 0x0000, 0x4000, CRC(42fa2853) SHA1(cc1e8b8231d6f27f48b05d59390e93ea1c1c0e4c) ) /* volume tables? */
+
+ ROM_REGION( 0x300, "proms", 0 ) /* RGB proms */
+ ROM_LOAD( "82s129.k1", 0x0200, 0x0100, CRC(d311ed0d) SHA1(1d530c874aecf93133d610ab3ce668548712913a) ) // r
+ ROM_LOAD( "82s129.k2", 0x0100, 0x0100, CRC(ababb072) SHA1(a9d46d12534c8662c6b54df94e96907f3a156968) ) // g
+ ROM_LOAD( "82s129.k3", 0x0000, 0x0100, CRC(5aab7b41) SHA1(8d44639c7c9f1ba34fe9c4e74c8a38b6453f7ac0) ) // b
+
+ ROM_REGION( 0x0520, "user1", 0 ) /* Other proms, (zoom table?) */
+ ROM_LOAD( "82s147.d7", 0x0000, 0x0200, CRC(f0dbb2a7) SHA1(03cd8fd41d6406894c6931e883a9ac6a4a4effc9) )
+ ROM_LOAD( "82s147.j18", 0x0200, 0x0200, CRC(d7de0860) SHA1(5d3d8c5476b1edffdacde09d592c64e78d2b90c0) )
+ ROM_LOAD( "82s123.k7", 0x0400, 0x0020, CRC(ea9c65e4) SHA1(1bdd77a7f3ef5f8ec4dbb9524498c0c4a356f089) )
+ ROM_LOAD( "82s129.a1", 0x0420, 0x0100, CRC(c8dad3fc) SHA1(8e852efac70223d02e45b20ed8a12e38c5010a78) )
+ROM_END
+
+ROM_START( flowerj ) /* Sega/Alpha version. Sega game number 834-5998 */
+ ROM_REGION( 0x10000, "maincpu", 0 ) /* main cpu */
+ ROM_LOAD( "1", 0x0000, 0x8000, CRC(63a2ef04) SHA1(0770f5a18d58b780abcda7e000c2a5e46f96d319) ) // hacked? "AKINA.N" changed to "JUKYUNG"
+
+ ROM_REGION( 0x10000, "subcpu", 0 ) /* sub cpu */
+ ROM_LOAD( "2.5f", 0x0000, 0x8000, CRC(7c7ee2d8) SHA1(1e67bfe0f3585be5a6e6719ccf9db764bafbcb01) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */
+ ROM_LOAD( "3.d9", 0x0000, 0x4000, CRC(8866c2b0) SHA1(d00f31994673e8087a1406f98e8832d07cedeb66) ) // 1xxxxxxxxxxxxx = 0xFF
+
+ ROM_REGION( 0x2000, "gfx1", ROMREGION_INVERT ) /* tx layer */
+ ROM_LOAD( "10.13e", 0x0000, 0x2000, CRC(62f9b28c) SHA1(d57d06b99e72a4f68f197a5b6c042c926cc70ca0) ) // FIRST AND SECOND HALF IDENTICAL
+
+ ROM_REGION( 0x8000, "gfx2", ROMREGION_INVERT ) /* sprites */
+ ROM_LOAD( "14.19e", 0x0000, 0x2000, CRC(11b491c5) SHA1(be1c4a0fbe8fd4e124c21e0f700efa0428376691) )
+ ROM_LOAD( "13.17e", 0x2000, 0x2000, CRC(ea743986) SHA1(bbef4fd0f7d21cc89a52061fa50d7c2ea37287bd) )
+ ROM_LOAD( "12.16e", 0x4000, 0x2000, CRC(e3779f7f) SHA1(8e12d06b3cdc2fcb7b77cc35f8eca45544cc4873) )
+ ROM_LOAD( "11.14e", 0x6000, 0x2000, CRC(8801b34f) SHA1(256059fcd16b21e076db1c18fd9669128df1d658) )
+
+ ROM_REGION( 0x8000, "gfx3", ROMREGION_INVERT ) /* bg layers */
+ ROM_LOAD( "8.10e", 0x0000, 0x2000, CRC(f85eb20f) SHA1(699edc970c359143dee6de2a97cc2a552454785b) )
+ ROM_LOAD( "6.7e", 0x2000, 0x2000, CRC(3e97843f) SHA1(4e4e5625dbf78eca97536b1428b2e49ad58c618f) )
+ ROM_LOAD( "9.12e", 0x4000, 0x2000, CRC(f1d9915e) SHA1(158e1cc8c402f9ae3906363d99f2b25c94c64212) )
+ ROM_LOAD( "7.9e", 0x6000, 0x2000, CRC(e350f36c) SHA1(f97204dc95b4000c268afc053a2333c1629e07d8) )
+
+ ROM_REGION( 0x8000, "sound1", 0 )
+ ROM_LOAD( "4.12a", 0x0000, 0x8000, CRC(851ed9fd) SHA1(5dc048b612e45da529502bf33d968737a7b0a646) ) /* 8-bit samples */
+
+ ROM_REGION( 0x4000, "sound2", 0 )
+ ROM_LOAD( "5.16a", 0x0000, 0x4000, CRC(42fa2853) SHA1(cc1e8b8231d6f27f48b05d59390e93ea1c1c0e4c) ) /* volume tables? */
+
+ ROM_REGION( 0x300, "proms", 0 ) /* RGB proms */
+ ROM_LOAD( "82s129.k1", 0x0200, 0x0100, CRC(d311ed0d) SHA1(1d530c874aecf93133d610ab3ce668548712913a) ) // r
+ ROM_LOAD( "82s129.k2", 0x0100, 0x0100, CRC(ababb072) SHA1(a9d46d12534c8662c6b54df94e96907f3a156968) ) // g
+ ROM_LOAD( "82s129.k3", 0x0000, 0x0100, CRC(5aab7b41) SHA1(8d44639c7c9f1ba34fe9c4e74c8a38b6453f7ac0) ) // b
+
+ ROM_REGION( 0x0520, "user1", 0 ) /* Other proms, (zoom table?) */
+ ROM_LOAD( "82s147.d7", 0x0000, 0x0200, CRC(f0dbb2a7) SHA1(03cd8fd41d6406894c6931e883a9ac6a4a4effc9) )
+ ROM_LOAD( "82s147.j18", 0x0200, 0x0200, CRC(d7de0860) SHA1(5d3d8c5476b1edffdacde09d592c64e78d2b90c0) )
+ ROM_LOAD( "82s123.k7", 0x0400, 0x0020, CRC(ea9c65e4) SHA1(1bdd77a7f3ef5f8ec4dbb9524498c0c4a356f089) )
+ ROM_LOAD( "82s129.a1", 0x0420, 0x0100, CRC(c8dad3fc) SHA1(8e852efac70223d02e45b20ed8a12e38c5010a78) )
+ROM_END
+
+
+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)
+
+
+/* Clarue Flower sound driver.
+Initial version was based on the Wiping sound driver, which was based on the old namco.c sound driver.
+
+TODO:
+- timing (see main driver file), but also of samplerate and effects counter
+- what do the unknown bits in soundregs do?
+- Are channel effects correct? It's currently mostly guesswork, the pitch effects sound pretty convincing though.
+ Considering that the game sound hardware isn't complicated (no dedicated soundchip) these bits are possibly
+ for something way simpler, such as a length counter. PCB sound recordings would be useful!
+
+*/
+
+#define FLOWER_VERBOSE 0 // show register writes
+
+#define MIXER_SAMPLERATE 48000 /* ? (native freq is probably in the MHz range) */
+#define MIXER_DEFGAIN 48
+
+
+const device_type FLOWER = device_creator<flower_sound_device>;
+
+flower_sound_device::flower_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : device_t(mconfig, FLOWER, "Flower Audio Custom", tag, owner, clock, "flower_sound", __FILE__),
+ device_sound_interface(mconfig, *this)
+{
+}
+
+//-------------------------------------------------
+// device_config_complete - perform any
+// operations now that the configuration is
+// complete
+//-------------------------------------------------
+
+void flower_sound_device::device_config_complete()
+{
+}
+
+//-------------------------------------------------
+// device_start - device-specific startup
+//-------------------------------------------------
+
+void flower_sound_device::device_start()
+{
+ flower_sound_channel *voice;
+
+ m_effect_timer = timer_alloc(TIMER_CLOCK_EFFECT);
+ m_stream = machine().sound().stream_alloc(*this, 0, 1, MIXER_SAMPLERATE);
+ m_mixer_buffer = std::make_unique<short[]>(MIXER_SAMPLERATE);
+ make_mixer_table(8, MIXER_DEFGAIN);
+
+ /* extract globals from the interface */
+ m_last_channel = m_channel_list + 8;
+
+ m_sample_rom = machine().root_device().memregion("sound1")->base();
+ m_volume_rom = machine().root_device().memregion("sound2")->base();
+
+ /* register for savestates */
+ for (int i = 0; i < 8; i++)
+ {
+ voice = &m_channel_list[i];
+
+ save_item(NAME(voice->freq), i+1);
+ save_item(NAME(voice->pos), i+1);
+ save_item(NAME(voice->volume), i+1);
+ save_item(NAME(voice->voltab), i+1);
+ save_item(NAME(voice->effect), i+1);
+ save_item(NAME(voice->ecount), i+1);
+ save_item(NAME(voice->oneshot), i+1);
+ save_item(NAME(voice->active), i+1);
+ save_item(NAME(voice->start), i+1);
+ }
+}
+
+//-------------------------------------------------
+// device_reset - device-specific reset
+//-------------------------------------------------
+
+void flower_sound_device::device_reset()
+{
+ flower_sound_channel *voice;
+ attotime period;
+
+ /* reset effect timer, period is unknown/guessed */
+ period = attotime::from_hz(MIXER_SAMPLERATE / 256);
+ m_effect_timer->adjust(period, 0, period);
+
+ /* reset all the voices */
+ for (auto & elem : m_channel_list)
+ {
+ voice = &elem;
+
+ voice->freq = 0;
+ voice->pos = 0;
+ voice->volume = 0;
+ voice->voltab = 0;
+ voice->effect = 0;
+ voice->ecount = 0;
+ voice->oneshot = 1;
+ voice->active = 0;
+ voice->start = 0;
+ }
+
+ memset(m_soundregs1, 0, 0x40);
+ memset(m_soundregs2, 0, 0x40);
+}
+
+/* build a table to divide by the number of voices; gain is specified as gain*16 */
+void flower_sound_device::make_mixer_table(int voices, int gain)
+{
+ int count = voices * 128;
+
+ /* allocate memory */
+ m_mixer_table = std::make_unique<int16_t[]>(256 * voices);
+
+ /* find the middle of the table */
+ m_mixer_lookup = m_mixer_table.get() + (128 * voices);
+
+ /* fill in the table - 16 bit case */
+ for (int i = 0; i < count; i++)
+ {
+ int val = i * gain * 16 / voices;
+ if (val > 32767) val = 32767;
+ m_mixer_lookup[ i] = val;
+ m_mixer_lookup[-i] =-val;
+ }
+}
+
+
+/* clock sound channel effect counters */
+void flower_sound_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
+{
+ switch (id)
+ {
+ case TIMER_CLOCK_EFFECT:
+ flower_sound_channel *voice;
+ m_stream->update();
+
+ for (voice = m_channel_list; voice < m_last_channel; voice++)
+ voice->ecount += (voice->ecount < (1<<22));
+ break;
+
+ default:
+ assert_always(false, "Unknown id in flower_sound_device::device_timer");
+ }
+}
+
+/********************************************************************************/
+
+#if FLOWER_VERBOSE
+static int r_numwrites[2][8] = {{0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0}};
+void flower_sound_device::show_soundregs()
+{
+ int set,reg,chan;
+ char text[0x100];
+ char message[0x1000] = {0};
+ uint8_t *base = m_soundregs1;
+
+ for (set=0;set<2;set++)
+ {
+ for (reg=0;reg<8;reg++)
+ {
+ sprintf(text,"R%d%d:",set+1,reg);
+ strcat(message,text);
+
+ for (chan=0;chan<8;chan++)
+ {
+ sprintf(text," %02X",base[reg + 8*chan]);
+ strcat(message,text);
+ }
+ sprintf(text," - %07d\n",r_numwrites[set][reg]);
+ strcat(message,text);
+ }
+ strcat(message,"\n");
+ base = m_soundregs2;
+ }
+ popmessage("%s",message);
+}
+#endif // FLOWER_VERBOSE
+
+
+/* register functions (preliminary):
+offset: cccrrr c=channel, r=register
+
+set 1:
+R 76543210
+0 xxxxxxxx frequency (which nibble?)
+1 xxxxxxxx *
+2 xxxxxxxx *
+3 xxxxxxxx *
+4 ...x.... one-shot sample
+5 ...x.... ??? same as R4?
+6 ........ unused
+7 xxxx.... volume
+
+set 2:
+R 76543210
+0 ....xxxx start address
+1 ....xxxx *
+2 ....xxxx *
+3 ....xxxx *
+4 xxxx assume it's channel pitch/volume effects
+ xxxx start address
+5 x... ???
+ xxxx start address
+6 ........ unused
+7 ......xx volume table + start trigger
+
+*/
+
+WRITE8_MEMBER( flower_sound_device::sound1_w )
+{
+ flower_sound_channel *voice = &m_channel_list[offset >> 3 & 7];
+ int c = offset & 0xf8;
+ uint8_t *base1 = m_soundregs1;
+// uint8_t *base2 = m_soundregs2;
+
+ m_stream->update();
+ base1[offset] = data;
+#if FLOWER_VERBOSE
+ r_numwrites[0][offset & 7]++;
+ show_soundregs();
+#endif
+
+ // recompute voice parameters
+ voice->freq = (base1[c+2] & 0xf) << 12 | (base1[c+3] & 0xf) << 8 | (base1[c+0] & 0xf) << 4 | (base1[c+1] & 0xf);
+ voice->volume = base1[c+7] >> 4;
+}
+
+WRITE8_MEMBER( flower_sound_device::sound2_w )
+{
+ flower_sound_channel *voice = &m_channel_list[offset >> 3 & 7];
+ int i, c = offset & 0xf8;
+ uint8_t *base1 = m_soundregs1;
+ uint8_t *base2 = m_soundregs2;
+
+ m_stream->update();
+ base2[offset] = data;
+#if FLOWER_VERBOSE
+ r_numwrites[1][offset & 7]++;
+ show_soundregs();
+#endif
+
+ // reg 7 is start trigger!
+ if ((offset & 7) != 7)
+ return;
+
+ voice->voltab = (base2[c+7] & 3) << 4;
+ voice->oneshot = (~base1[c+4] & 0x10) >> 4;
+ voice->effect = base2[c+4] >> 4;
+ voice->ecount = 0;
+ voice->pos = 0;
+ voice->active = 1;
+
+ // full start address is 6 nibbles
+ voice->start = 0;
+ for (i = 5; i >= 0; i--)
+ voice->start = (voice->start << 4) | (base2[c+i] & 0xf);
+}
+
+
+//-------------------------------------------------
+// sound_stream_update - handle a stream update
+//-------------------------------------------------
+
+void flower_sound_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples)
+{
+ stream_sample_t *buffer = outputs[0];
+ flower_sound_channel *voice;
+ short *mix;
+ int i;
+
+ /* zap the contents of the mixer buffer */
+ memset(m_mixer_buffer.get(), 0, samples * sizeof(short));
+
+ /* loop over each voice and add its contribution */
+ for (voice = m_channel_list; voice < m_last_channel; voice++)
+ {
+ int f = voice->freq;
+ int v = voice->volume;
+
+ if (!voice->active)
+ continue;
+
+ // effects
+ // bit 0: volume slide down?
+ if (voice->effect & 1 && !voice->oneshot)
+ {
+ // note: one-shot samples are fixed volume
+ v -= (voice->ecount >> 4);
+ if (v < 0) v = 0;
+ }
+ // bit 1: used often, but hard to figure out what for
+ // bit 2: probably pitch slide
+ if (voice->effect & 4)
+ {
+ f -= (voice->ecount << 7);
+ if (f < 0) f = 0;
+ }
+ // bit 3: not used much, maybe pitch slide the other way?
+
+ v |= voice->voltab;
+ mix = m_mixer_buffer.get();
+
+ for (i = 0; i < samples; i++)
+ {
+ // add sample
+ if (voice->oneshot)
+ {
+ uint8_t sample = m_sample_rom[(voice->start + voice->pos) >> 7 & 0x7fff];
+ if (sample == 0xff)
+ {
+ voice->active = 0;
+ break;
+ }
+ else
+ *mix++ += m_volume_rom[v << 8 | sample] - 0x80;
+ }
+ else
+ {
+ uint8_t sample = m_sample_rom[(voice->start >> 7 & 0x7e00) | (voice->pos >> 7 & 0x1ff)];
+ *mix++ += m_volume_rom[v << 8 | sample] - 0x80;
+ }
+
+ // update counter
+ voice->pos += f;
+ }
+ }
+
+ /* mix it down */
+ mix = m_mixer_buffer.get();
+ for (i = 0; i < samples; i++)
+ *buffer++ = m_mixer_lookup[*mix++];
+}
diff --git a/docs/release/src/hbmame/drivers/galaga.cpp b/docs/release/src/hbmame/drivers/galaga.cpp
new file mode 100644
index 00000000000..5ba58db8eb2
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/galaga.cpp
@@ -0,0 +1,1105 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/galaga.cpp"
+
+// Produce pacman death sound in galagost
+WRITE8_MEMBER( galaga_hbmame::galaga_sample_w )
+{
+ switch ( data )
+ {
+ case 0x20: /* loud bang */
+ m_samples->start(0, 0);
+ case 0x10: /* soft bang */
+ break;
+ default:
+ m_06xx->data_w ( space, offset, data );
+ }
+}
+
+static const char *const galagost_sample_names[] =
+{
+ "*galagost",
+ "bang",
+ 0 /* end of array */
+};
+
+static ADDRESS_MAP_START( galagost_map, AS_PROGRAM, 8, galaga_hbmame )
+ AM_RANGE(0x0000, 0x3fff) AM_ROM AM_WRITENOP /* the only area different for each CPU */
+ AM_RANGE(0x6800, 0x6807) AM_READ(bosco_dsw_r)
+ AM_RANGE(0x6800, 0x681f) AM_DEVWRITE("namco", namco_device, pacman_sound_w)
+ AM_RANGE(0x6820, 0x6827) AM_WRITE(bosco_latch_w) /* misc latches */
+ AM_RANGE(0x6830, 0x6830) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
+ AM_RANGE(0x7000, 0x70ff) AM_DEVREAD("06xx", namco_06xx_device, data_r) AM_WRITE(galaga_sample_w)
+ AM_RANGE(0x7100, 0x7100) AM_DEVREADWRITE("06xx", namco_06xx_device, ctrl_r, ctrl_w)
+ AM_RANGE(0x8000, 0x87ff) AM_RAM_WRITE(galaga_videoram_w) AM_SHARE("videoram")
+ AM_RANGE(0x8800, 0x8bff) AM_RAM AM_SHARE("galaga_ram1")
+ AM_RANGE(0x9000, 0x93ff) AM_RAM AM_SHARE("galaga_ram2")
+ AM_RANGE(0x9800, 0x9bff) AM_RAM AM_SHARE("galaga_ram3")
+ AM_RANGE(0xa000, 0xa005) AM_WRITEONLY AM_SHARE("starcontrol")
+ AM_RANGE(0xa007, 0xa007) AM_WRITE(galaga_flip_screen_w)
+ADDRESS_MAP_END
+
+static MACHINE_CONFIG_DERIVED_CLASS( galagost, galaga, galaga_hbmame )
+ MCFG_CPU_MODIFY( "maincpu" )
+ MCFG_CPU_PROGRAM_MAP(galagost_map)
+
+ /* sound hardware */
+ MCFG_SOUND_ADD("samples", SAMPLES, 0)
+ MCFG_SAMPLES_CHANNELS(1)
+ MCFG_SAMPLES_NAMES(galagost_sample_names)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75)
+MACHINE_CONFIG_END
+
+// galaga hacks
+
+ROM_START( galagabl )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "gg1-1", 0x0000, 0x1000, CRC(a3a0f743) SHA1(6907773db7c002ecde5e41853603d53387c5c7cd) )
+ ROM_LOAD( "galagabl.1_2", 0x1000, 0x1000, CRC(f1d87ec3) SHA1(44034b4f015d9e876253d2827e05f3d41133e097) )
+ ROM_LOAD( "gg1_3.2m", 0x2000, 0x1000, CRC(753ce503) SHA1(481f443aea3ed3504ec2f3a6bfcf3cd47e2f8f81) )
+ ROM_LOAD( "gg1-4", 0x3000, 0x1000, CRC(83874442) SHA1(366cb0dbd31b787e64f88d182108b670d03b393e) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "gg1-5", 0x0000, 0x1000, CRC(3102fccd) SHA1(d29b68d6aab3217fa2106b3507b9273ff3f927bf) )
+
+ ROM_REGION( 0x10000, "sub2", 0 )
+ ROM_LOAD( "gg1-7", 0x0000, 0x1000, CRC(8995088d) SHA1(d6cb439de0718826d1a0363c9d77de8740b18ecf) )
+
+ ROM_REGION( 0x10000, "sub3", 0 )
+ ROM_LOAD( "galagabl.1_6", 0x0000, 0x1000, CRC(001b70bc) SHA1(b465eee91e75257b7b049d49c0064ab5fd66c576) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "gg1_9.4l", 0x0000, 0x1000, CRC(58b2f47c) SHA1(62f1279a784ab2f8218c4137c7accda00e6a3490) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "gg1_11.4d", 0x0000, 0x1000, CRC(ad447c80) SHA1(e697c180178cabd1d32483c5d8889a40633f7857) )
+ ROM_LOAD( "gg1_10.4f", 0x1000, 0x1000, CRC(dd6f1afc) SHA1(c340ed8c25e0979629a9a1730edc762bd72d0cff) )
+
+ ROM_REGION( 0x0220, "proms", 0 )
+ ROM_LOAD( "prom-5.5n", 0x0000, 0x0020, CRC(54603c6b) SHA1(1a6dea13b4af155d9cb5b999a75d4f1eb9c71346) )
+ ROM_LOAD( "prom-4.2n", 0x0020, 0x0100, CRC(59b6edab) SHA1(0281de86c236c88739297ff712e0a4f5c8bf8ab9) )
+ ROM_LOAD( "prom-3.1c", 0x0120, 0x0100, CRC(4a04bb6b) SHA1(cdd4bc1013f5c11984fdc4fd10e2d2e27120c1e5) )
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "prom-1.1d", 0x0000, 0x0100, CRC(7a2815b4) SHA1(085ada18c498fdb18ecedef0ea8fe9217edb7b46) )
+ ROM_LOAD( "prom-2.5c", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) )
+ROM_END
+
+ROM_START( galagab2 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "gg1_1b.3p", 0x0000, 0x1000, CRC(ab036c9f) SHA1(ca7f5da42d4e76fd89bb0b35198a23c01462fbfe) )
+ ROM_LOAD( "gg1_2b.3m", 0x1000, 0x1000, CRC(d9232240) SHA1(ab202aa259c3d332ef13dfb8fc8580ce2a5a253d) )
+ ROM_LOAD( "gg1_3.2m", 0x2000, 0x1000, CRC(753ce503) SHA1(481f443aea3ed3504ec2f3a6bfcf3cd47e2f8f81) )
+ ROM_LOAD( "gg1_4b.2l", 0x3000, 0x1000, CRC(499fcc76) SHA1(ddb8b121903646c320939c7d13f4aa4ebb130378) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "gg1-5", 0x0000, 0x1000, CRC(3102fccd) SHA1(d29b68d6aab3217fa2106b3507b9273ff3f927bf) )
+
+ ROM_REGION( 0x10000, "sub2", 0 )
+ ROM_LOAD( "gg1-7", 0x0000, 0x1000, CRC(8995088d) SHA1(d6cb439de0718826d1a0363c9d77de8740b18ecf) )
+
+ ROM_REGION( 0x10000, "sub3", 0 )
+ ROM_LOAD( "10h_g07.bin", 0x0000, 0x1000, CRC(035e300c) SHA1(cfda2467e71c27381b7150ff8fc7b69d61df123a) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "gallag.8", 0x0000, 0x1000, CRC(169a98a4) SHA1(edbeb11076061e744ea88d9899dbdfe0964c7e78) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "gg1_11.4d", 0x0000, 0x1000, CRC(ad447c80) SHA1(e697c180178cabd1d32483c5d8889a40633f7857) )
+ ROM_LOAD( "gg1_10.4f", 0x1000, 0x1000, CRC(dd6f1afc) SHA1(c340ed8c25e0979629a9a1730edc762bd72d0cff) )
+
+ ROM_REGION( 0x0320, "proms", 0 )
+ ROM_LOAD( "prom-5.5n", 0x0000, 0x0020, CRC(54603c6b) SHA1(1a6dea13b4af155d9cb5b999a75d4f1eb9c71346) )
+ ROM_LOAD( "2n.bin", 0x0020, 0x0100, CRC(a547d33b) SHA1(7323084320bb61ae1530d916f5edd8835d4d2461) )
+ ROM_LOAD( "1c.bin", 0x0120, 0x0100, CRC(b6f585fb) SHA1(dd10147c4f05fede7ae6e7a760681700a660e87e) )
+ ROM_LOAD( "5c.bin", 0x0220, 0x0100, CRC(8bd565f6) SHA1(bedba65816abfc2ebeacac6ee335ca6f136e3e3d) )
+
+ ROM_REGION( 0x0100, "namco", 0 )
+ ROM_LOAD( "1d.bin", 0x0000, 0x0100, CRC(86d92b24) SHA1(6bef9102b97c83025a2cf84e89d95f2d44c3d2ed) )
+ROM_END
+
+ROM_START( galaga84 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "gg1_1b.3p", 0x0000, 0x1000, CRC(ab036c9f) SHA1(ca7f5da42d4e76fd89bb0b35198a23c01462fbfe) )
+ ROM_LOAD( "gal84_u2", 0x1000, 0x1000, CRC(4d832a30) SHA1(88ee11df88cf08005efccd6305f87fb3e2797db6) )
+ ROM_LOAD( "gg1_3.2m", 0x2000, 0x1000, CRC(753ce503) SHA1(481f443aea3ed3504ec2f3a6bfcf3cd47e2f8f81) )
+ ROM_LOAD( "gg1_4b.2l", 0x3000, 0x1000, CRC(499fcc76) SHA1(ddb8b121903646c320939c7d13f4aa4ebb130378) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "gg1_5b.3f", 0x0000, 0x1000, CRC(bb5caae3) SHA1(e957a581463caac27bc37ca2e2a90f27e4f62b6f) )
+
+ ROM_REGION( 0x10000, "sub2", 0 )
+ ROM_LOAD( "gg1-7", 0x0000, 0x1000, CRC(8995088d) SHA1(d6cb439de0718826d1a0363c9d77de8740b18ecf) )
+
+ ROM_REGION( 0x10000, "sub3", 0 )
+ ROM_LOAD( "10h_g07.bin", 0x0000, 0x1000, CRC(035e300c) SHA1(cfda2467e71c27381b7150ff8fc7b69d61df123a) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "gg1_9.4l", 0x0000, 0x1000, CRC(58b2f47c) SHA1(62f1279a784ab2f8218c4137c7accda00e6a3490) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "gal84u4d", 0x0000, 0x1000, CRC(22e339d5) SHA1(9ac2887ede802d28daa4ad0a0a54bcf7b1155a2e) )
+ ROM_LOAD( "gal84u4e", 0x1000, 0x1000, CRC(60dcf940) SHA1(6530aa5b4afef4a8422ece76a93d0c5b1d93355e) )
+
+ ROM_REGION( 0x0320, "proms", 0 )
+ ROM_LOAD( "prom-5.5n", 0x0000, 0x0020, CRC(54603c6b) SHA1(1a6dea13b4af155d9cb5b999a75d4f1eb9c71346) )
+ ROM_LOAD( "2n.bin", 0x0020, 0x0100, CRC(a547d33b) SHA1(7323084320bb61ae1530d916f5edd8835d4d2461) )
+ ROM_LOAD( "1c.bin", 0x0120, 0x0100, CRC(b6f585fb) SHA1(dd10147c4f05fede7ae6e7a760681700a660e87e) )
+ ROM_LOAD( "5c.bin", 0x0220, 0x0100, CRC(8bd565f6) SHA1(bedba65816abfc2ebeacac6ee335ca6f136e3e3d) )
+
+ ROM_REGION( 0x0100, "namco", 0 )
+ ROM_LOAD( "1d.bin", 0x0000, 0x0100, CRC(86d92b24) SHA1(6bef9102b97c83025a2cf84e89d95f2d44c3d2ed) )
+ROM_END
+
+ROM_START( nebulbee )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "nebulbee.01", 0x0000, 0x1000, CRC(f405f2c4) SHA1(9249afeffd8df0f24539ea9b4f88c23a6ad58d8c) )
+ ROM_LOAD( "nebulbee.02", 0x1000, 0x1000, CRC(31022b60) SHA1(90e64afb4128c6dfeeee89635ea9f97a34f70f5f) )
+ ROM_LOAD( "gg1_3.2m", 0x2000, 0x1000, CRC(753ce503) SHA1(481f443aea3ed3504ec2f3a6bfcf3cd47e2f8f81) )
+ ROM_LOAD( "nebulbee.04", 0x3000, 0x1000, CRC(d76788a5) SHA1(adcb83cf64951d86c701a99b410e9230912f8a48) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "gg1-5", 0x0000, 0x1000, CRC(3102fccd) SHA1(d29b68d6aab3217fa2106b3507b9273ff3f927bf) )
+
+ ROM_REGION( 0x10000, "sub2", 0 )
+ ROM_LOAD( "gg1-7", 0x0000, 0x1000, CRC(8995088d) SHA1(d6cb439de0718826d1a0363c9d77de8740b18ecf) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "gg1_9.4l", 0x0000, 0x1000, CRC(58b2f47c) SHA1(62f1279a784ab2f8218c4137c7accda00e6a3490) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "gg1_11.4d", 0x0000, 0x1000, CRC(ad447c80) SHA1(e697c180178cabd1d32483c5d8889a40633f7857) )
+ ROM_LOAD( "gg1_10.4f", 0x1000, 0x1000, CRC(dd6f1afc) SHA1(c340ed8c25e0979629a9a1730edc762bd72d0cff) )
+
+ ROM_REGION( 0x0320, "proms", 0 )
+ ROM_LOAD( "prom-5.5n", 0x0000, 0x0020, CRC(54603c6b) SHA1(1a6dea13b4af155d9cb5b999a75d4f1eb9c71346) )
+ ROM_LOAD( "2n.bin", 0x0020, 0x0100, CRC(a547d33b) SHA1(7323084320bb61ae1530d916f5edd8835d4d2461) )
+ ROM_LOAD( "1c.bin", 0x0120, 0x0100, CRC(b6f585fb) SHA1(dd10147c4f05fede7ae6e7a760681700a660e87e) )
+ ROM_LOAD( "5c.bin", 0x0220, 0x0100, CRC(8bd565f6) SHA1(bedba65816abfc2ebeacac6ee335ca6f136e3e3d) )
+
+ ROM_REGION( 0x0100, "namco", 0 )
+ ROM_LOAD( "1d.bin", 0x0000, 0x0100, CRC(86d92b24) SHA1(6bef9102b97c83025a2cf84e89d95f2d44c3d2ed) )
+ROM_END
+
+ROM_START( galagads )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "3200a.bin", 0x0000, 0x1000, CRC(3ef0b053) SHA1(0c04a362b737998c0952a753fb3fd8c8a17e9b46) )
+ ROM_LOAD( "3300b.bin", 0x1000, 0x1000, CRC(1b280831) SHA1(f7ea12e61929717ebe43a4198a97f109845a2c62) )
+ ROM_LOAD( "3400c.bin", 0x2000, 0x1000, CRC(16233d33) SHA1(a7eb799be5e23058754a92b15e6527bfbb47a354) )
+ ROM_LOAD( "3500d.bin", 0x3000, 0x1000, CRC(0aaf5c23) SHA1(3f4b0bb960bf002261e9c1278c88f594c6aa8ab6) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "3600fast.bin", 0x0000, 0x1000, CRC(23d586e5) SHA1(43346c69385e9091e64cff6c027ac2689cafcbb9) )
+
+ ROM_REGION( 0x10000, "sub2", 0 )
+ ROM_LOAD( "3700g.bin", 0x0000, 0x1000, CRC(b07f0aa4) SHA1(7528644a8480d0be2d0d37069515ed319e94778f) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "gg1_9.4l", 0x0000, 0x1000, CRC(58b2f47c) SHA1(62f1279a784ab2f8218c4137c7accda00e6a3490) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "gg1_11.4d", 0x0000, 0x1000, CRC(ad447c80) SHA1(e697c180178cabd1d32483c5d8889a40633f7857) )
+ ROM_LOAD( "gg1_10.4f", 0x1000, 0x1000, CRC(dd6f1afc) SHA1(c340ed8c25e0979629a9a1730edc762bd72d0cff) )
+
+ ROM_REGION( 0x0320, "proms", 0 )
+ ROM_LOAD( "prom-5.5n", 0x0000, 0x0020, CRC(54603c6b) SHA1(1a6dea13b4af155d9cb5b999a75d4f1eb9c71346) )
+ ROM_LOAD( "2n.bin", 0x0020, 0x0100, CRC(a547d33b) SHA1(7323084320bb61ae1530d916f5edd8835d4d2461) )
+ ROM_LOAD( "1c.bin", 0x0120, 0x0100, CRC(b6f585fb) SHA1(dd10147c4f05fede7ae6e7a760681700a660e87e) )
+ ROM_LOAD( "5c.bin", 0x0220, 0x0100, CRC(8bd565f6) SHA1(bedba65816abfc2ebeacac6ee335ca6f136e3e3d) )
+
+ ROM_REGION( 0x0100, "namco", 0 )
+ ROM_LOAD( "1d.bin", 0x0000, 0x0100, CRC(86d92b24) SHA1(6bef9102b97c83025a2cf84e89d95f2d44c3d2ed) )
+ROM_END
+
+ROM_START( galaga99 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "gg1-1", 0x0000, 0x1000, CRC(a3a0f743) SHA1(6907773db7c002ecde5e41853603d53387c5c7cd) )
+ ROM_LOAD( "g99-04k_g02.bin", 0x1000, 0x1000, CRC(ab0df3ac) SHA1(29c5bce17baa6778fad5faff1a241021e143e29f) )
+ ROM_LOAD( "gg1_3.2m", 0x2000, 0x1000, CRC(753ce503) SHA1(481f443aea3ed3504ec2f3a6bfcf3cd47e2f8f81) )
+ ROM_LOAD( "g99-04h_g04.bin", 0x3000, 0x1000, CRC(b9a315fb) SHA1(3422dbd1fe116f9193dcccb1dba691eb98eab3aa) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "gg1-5", 0x0000, 0x1000, CRC(3102fccd) SHA1(d29b68d6aab3217fa2106b3507b9273ff3f927bf) )
+
+ ROM_REGION( 0x10000, "sub2", 0 )
+ ROM_LOAD( "gg1-7", 0x0000, 0x1000, CRC(8995088d) SHA1(d6cb439de0718826d1a0363c9d77de8740b18ecf) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "g99-07m_g08.bin", 0x0000, 0x1000, CRC(cc091e8b) SHA1(b71b962d5cd71fa78f0709b5cccf549cb7f4e9f0) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "g99-07e_g10.bin", 0x0000, 0x1000, CRC(2b493359) SHA1(e006ee999277120f01d1669ffe28df0b96415af5) )
+ ROM_LOAD( "g99-07h_g09.bin", 0x1000, 0x1000, CRC(cdbb428d) SHA1(6c8dfb5da2bee99f07585e23ecfa21c67218cddb) )
+
+ ROM_REGION( 0x0320, "proms", 0 )
+ ROM_LOAD( "prom-5.5n", 0x0000, 0x0020, CRC(54603c6b) SHA1(1a6dea13b4af155d9cb5b999a75d4f1eb9c71346) )
+ ROM_LOAD( "2n.bin", 0x0020, 0x0100, CRC(a547d33b) SHA1(7323084320bb61ae1530d916f5edd8835d4d2461) )
+ ROM_LOAD( "1c.bin", 0x0120, 0x0100, CRC(b6f585fb) SHA1(dd10147c4f05fede7ae6e7a760681700a660e87e) )
+ ROM_LOAD( "5c.bin", 0x0220, 0x0100, CRC(8bd565f6) SHA1(bedba65816abfc2ebeacac6ee335ca6f136e3e3d) )
+
+ ROM_REGION( 0x0100, "namco", 0 )
+ ROM_LOAD( "1d.bin", 0x0000, 0x0100, CRC(86d92b24) SHA1(6bef9102b97c83025a2cf84e89d95f2d44c3d2ed) )
+ROM_END
+
+ROM_START( galagaf )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "3200a.bin", 0x0000, 0x1000, CRC(3ef0b053) SHA1(0c04a362b737998c0952a753fb3fd8c8a17e9b46) )
+ ROM_LOAD( "3300b.bin", 0x1000, 0x1000, CRC(1b280831) SHA1(f7ea12e61929717ebe43a4198a97f109845a2c62) )
+ ROM_LOAD( "3400c.bin", 0x2000, 0x1000, CRC(16233d33) SHA1(a7eb799be5e23058754a92b15e6527bfbb47a354) )
+ ROM_LOAD( "3500d.bin", 0x3000, 0x1000, CRC(0aaf5c23) SHA1(3f4b0bb960bf002261e9c1278c88f594c6aa8ab6) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "gg_5fast.bin", 0x0000, 0x1000, CRC(ae82145e) SHA1(146bd848e9783f34b1a006d793ee3f36e53baad0) )
+
+ ROM_REGION( 0x10000, "sub2", 0 )
+ ROM_LOAD( "3700g.bin", 0x0000, 0x1000, CRC(b07f0aa4) SHA1(7528644a8480d0be2d0d37069515ed319e94778f) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "gg1_9.4l", 0x0000, 0x1000, CRC(58b2f47c) SHA1(62f1279a784ab2f8218c4137c7accda00e6a3490) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "gg1_11.4d", 0x0000, 0x1000, CRC(ad447c80) SHA1(e697c180178cabd1d32483c5d8889a40633f7857) )
+ ROM_LOAD( "gg1_10.4f", 0x1000, 0x1000, CRC(dd6f1afc) SHA1(c340ed8c25e0979629a9a1730edc762bd72d0cff) )
+
+ ROM_REGION( 0x0220, "proms", 0 )
+ ROM_LOAD( "prom-5.5n", 0x0000, 0x0020, CRC(54603c6b) SHA1(1a6dea13b4af155d9cb5b999a75d4f1eb9c71346) )
+ ROM_LOAD( "prom-4.2n", 0x0020, 0x0100, CRC(59b6edab) SHA1(0281de86c236c88739297ff712e0a4f5c8bf8ab9) )
+ ROM_LOAD( "prom-3.1c", 0x0120, 0x0100, CRC(4a04bb6b) SHA1(cdd4bc1013f5c11984fdc4fd10e2d2e27120c1e5) )
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "prom-1.1d", 0x0000, 0x0100, CRC(7a2815b4) SHA1(085ada18c498fdb18ecedef0ea8fe9217edb7b46) )
+ ROM_LOAD( "prom-2.5c", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) )
+ROM_END
+
+/* This set has the fix proposed by Don Hodges at the page:
+ http://donhodges.com/galaga_stage_256_fix.htm */
+ROM_START( galagap )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "gg1_1b.3p", 0x0000, 0x1000, CRC(ab036c9f) SHA1(ca7f5da42d4e76fd89bb0b35198a23c01462fbfe) )
+ ROM_LOAD( "gg1_2b.3m", 0x1000, 0x1000, CRC(d9232240) SHA1(ab202aa259c3d332ef13dfb8fc8580ce2a5a253d) )
+ ROM_LOAD( "gg1_3.2m", 0x2000, 0x1000, CRC(753ce503) SHA1(481f443aea3ed3504ec2f3a6bfcf3cd47e2f8f81) )
+ ROM_LOAD( "gg1_4b.2l", 0x3000, 0x1000, CRC(499fcc76) SHA1(ddb8b121903646c320939c7d13f4aa4ebb130378) )
+ ROM_FILL(0x25c4,1,0xa7)
+ ROM_FILL(0x25d0,1,0x00)
+ ROM_FILL(0x2fff,1,0xb2)
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "gg1_5b.3f", 0x0000, 0x1000, CRC(bb5caae3) SHA1(e957a581463caac27bc37ca2e2a90f27e4f62b6f) )
+
+ ROM_REGION( 0x10000, "sub2", 0 )
+ ROM_LOAD( "gg1_7b.2c", 0x0000, 0x1000, CRC(d016686b) SHA1(44c1a04fba3c7c826ff484185cb881b4b22e6657) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "gg1_9.4l", 0x0000, 0x1000, CRC(58b2f47c) SHA1(62f1279a784ab2f8218c4137c7accda00e6a3490) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "gg1_11.4d", 0x0000, 0x1000, CRC(ad447c80) SHA1(e697c180178cabd1d32483c5d8889a40633f7857) )
+ ROM_LOAD( "gg1_10.4f", 0x1000, 0x1000, CRC(dd6f1afc) SHA1(c340ed8c25e0979629a9a1730edc762bd72d0cff) )
+
+ ROM_REGION( 0x0220, "proms", 0 )
+ ROM_LOAD( "prom-5.5n", 0x0000, 0x0020, CRC(54603c6b) SHA1(1a6dea13b4af155d9cb5b999a75d4f1eb9c71346) )
+ ROM_LOAD( "prom-4.2n", 0x0020, 0x0100, CRC(59b6edab) SHA1(0281de86c236c88739297ff712e0a4f5c8bf8ab9) )
+ ROM_LOAD( "prom-3.1c", 0x0120, 0x0100, CRC(4a04bb6b) SHA1(cdd4bc1013f5c11984fdc4fd10e2d2e27120c1e5) )
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "prom-1.1d", 0x0000, 0x0100, CRC(7a2815b4) SHA1(085ada18c498fdb18ecedef0ea8fe9217edb7b46) )
+ ROM_LOAD( "prom-2.5c", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) )
+ROM_END
+
+ROM_START( galagix )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "gg1-1", 0x0000, 0x1000, CRC(a3a0f743) SHA1(6907773db7c002ecde5e41853603d53387c5c7cd) )
+ ROM_LOAD( "gg1-2", 0x1000, 0x1000, CRC(43bb0d5c) SHA1(666975aed5ce84f09794c54b550d64d95ab311f0) )
+ ROM_LOAD( "gg1_3.2m", 0x2000, 0x1000, CRC(753ce503) SHA1(481f443aea3ed3504ec2f3a6bfcf3cd47e2f8f81) )
+ ROM_LOAD( "gg1-4", 0x3000, 0x1000, CRC(83874442) SHA1(366cb0dbd31b787e64f88d182108b670d03b393e) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "gg1-5", 0x0000, 0x1000, CRC(3102fccd) SHA1(d29b68d6aab3217fa2106b3507b9273ff3f927bf) )
+
+ ROM_REGION( 0x10000, "sub2", 0 )
+ ROM_LOAD( "gg1-7", 0x0000, 0x1000, CRC(8995088d) SHA1(d6cb439de0718826d1a0363c9d77de8740b18ecf) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "gx_07m_g08.bin", 0x0000, 0x1000, CRC(4b0a6b29) SHA1(1707bdfab7a17579b4171417d86ae76e065299c5) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "gx_07e_g10.bin", 0x0000, 0x1000, CRC(b52a7dff) SHA1(1bf1cf9db72d16d1e6539d4fc05bbee071cc3420) )
+ ROM_LOAD( "gx_07h_g09.bin", 0x1000, 0x1000, CRC(ffd5c70e) SHA1(5eac91087129ec8038feabdb18cb3199e52cae23) )
+
+ ROM_REGION( 0x0320, "proms", 0 )
+ ROM_LOAD( "prom-5.5n", 0x0000, 0x0020, CRC(54603c6b) SHA1(1a6dea13b4af155d9cb5b999a75d4f1eb9c71346) )
+ ROM_LOAD( "2n.bin", 0x0020, 0x0100, CRC(a547d33b) SHA1(7323084320bb61ae1530d916f5edd8835d4d2461) )
+ ROM_LOAD( "1c.bin", 0x0120, 0x0100, CRC(b6f585fb) SHA1(dd10147c4f05fede7ae6e7a760681700a660e87e) )
+ ROM_LOAD( "5c.bin", 0x0220, 0x0100, CRC(8bd565f6) SHA1(bedba65816abfc2ebeacac6ee335ca6f136e3e3d) )
+
+ ROM_REGION( 0x0100, "namco", 0 )
+ ROM_LOAD( "1d.bin", 0x0000, 0x0100, CRC(86d92b24) SHA1(6bef9102b97c83025a2cf84e89d95f2d44c3d2ed) )
+ROM_END
+
+ROM_START( galagost )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "3200a.bin", 0x0000, 0x1000, CRC(3ef0b053) SHA1(0c04a362b737998c0952a753fb3fd8c8a17e9b46) )
+ ROM_LOAD( "3300b.bin", 0x1000, 0x1000, CRC(1b280831) SHA1(f7ea12e61929717ebe43a4198a97f109845a2c62) )
+ ROM_LOAD( "3400c.bin", 0x2000, 0x1000, CRC(16233d33) SHA1(a7eb799be5e23058754a92b15e6527bfbb47a354) )
+ ROM_LOAD( "3500d.bin", 0x3000, 0x1000, CRC(0aaf5c23) SHA1(3f4b0bb960bf002261e9c1278c88f594c6aa8ab6) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "3600fast.bin", 0x0000, 0x1000, CRC(23d586e5) SHA1(43346c69385e9091e64cff6c027ac2689cafcbb9) )
+
+ ROM_REGION( 0x10000, "sub2", 0 )
+ ROM_LOAD( "3700g.bin", 0x0000, 0x1000, CRC(b07f0aa4) SHA1(7528644a8480d0be2d0d37069515ed319e94778f) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "gost_07m_g08.bin", 0x0000, 0x1000, CRC(c7588555) SHA1(269362b7fe63007b317ee4b63ef7d09f24d9c362) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "gost_07e_g10.bin", 0x0000, 0x1000, CRC(0758b90f) SHA1(89cc8db9457fa5f56b49930590f32aba1bc55323) )
+ ROM_LOAD( "gost_07h_g09.bin", 0x1000, 0x1000, CRC(53f1332b) SHA1(04136e52008c4ad4813529d633fd9b8c71e6ccc0) )
+
+ ROM_REGION( 0x0320, "proms", 0 )
+ ROM_LOAD( "prom-5.5n", 0x0000, 0x0020, CRC(54603c6b) SHA1(1a6dea13b4af155d9cb5b999a75d4f1eb9c71346) )
+ ROM_LOAD( "2n.bin", 0x0020, 0x0100, CRC(a547d33b) SHA1(7323084320bb61ae1530d916f5edd8835d4d2461) )
+ ROM_LOAD( "1c.bin", 0x0120, 0x0100, CRC(b6f585fb) SHA1(dd10147c4f05fede7ae6e7a760681700a660e87e) )
+ ROM_LOAD( "5c.bin", 0x0220, 0x0100, CRC(8bd565f6) SHA1(bedba65816abfc2ebeacac6ee335ca6f136e3e3d) )
+
+ ROM_REGION( 0x0100, "namco", 0 )
+ ROM_LOAD( "1d.bin", 0x0000, 0x0100, CRC(86d92b24) SHA1(6bef9102b97c83025a2cf84e89d95f2d44c3d2ed) )
+ROM_END
+
+ROM_START( galagosb )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "3200a.bin", 0x0000, 0x1000, CRC(3ef0b053) SHA1(0c04a362b737998c0952a753fb3fd8c8a17e9b46) )
+ ROM_LOAD( "3300b.bin", 0x1000, 0x1000, CRC(1b280831) SHA1(f7ea12e61929717ebe43a4198a97f109845a2c62) )
+ ROM_LOAD( "3400c.bin", 0x2000, 0x1000, CRC(16233d33) SHA1(a7eb799be5e23058754a92b15e6527bfbb47a354) )
+ ROM_LOAD( "3500d.bin", 0x3000, 0x1000, CRC(0aaf5c23) SHA1(3f4b0bb960bf002261e9c1278c88f594c6aa8ab6) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "3600fast.bin", 0x0000, 0x1000, CRC(23d586e5) SHA1(43346c69385e9091e64cff6c027ac2689cafcbb9) )
+
+ ROM_REGION( 0x10000, "sub2", 0 )
+ ROM_LOAD( "3700g.bin", 0x0000, 0x1000, CRC(b07f0aa4) SHA1(7528644a8480d0be2d0d37069515ed319e94778f) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "gost_07m_g08.bin", 0x0000, 0x1000, CRC(c7588555) SHA1(269362b7fe63007b317ee4b63ef7d09f24d9c362) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "gost_07e_g10.bin", 0x0000, 0x1000, CRC(0758b90f) SHA1(89cc8db9457fa5f56b49930590f32aba1bc55323) )
+ ROM_LOAD( "gosb_07h_g09.bin", 0x1000, 0x1000, CRC(0339291c) SHA1(4958a78b6afb9f2b4f46d3c0f654843c077686a9) )
+
+ ROM_REGION( 0x0320, "proms", 0 )
+ ROM_LOAD( "prom-5.5n", 0x0000, 0x0020, CRC(54603c6b) SHA1(1a6dea13b4af155d9cb5b999a75d4f1eb9c71346) )
+ ROM_LOAD( "2n.bin", 0x0020, 0x0100, CRC(a547d33b) SHA1(7323084320bb61ae1530d916f5edd8835d4d2461) )
+ ROM_LOAD( "1c.bin", 0x0120, 0x0100, CRC(b6f585fb) SHA1(dd10147c4f05fede7ae6e7a760681700a660e87e) )
+ ROM_LOAD( "5c.bin", 0x0220, 0x0100, CRC(8bd565f6) SHA1(bedba65816abfc2ebeacac6ee335ca6f136e3e3d) )
+
+ ROM_REGION( 0x0100, "namco", 0 )
+ ROM_LOAD( "1d.bin", 0x0000, 0x0100, CRC(86d92b24) SHA1(6bef9102b97c83025a2cf84e89d95f2d44c3d2ed) )
+ROM_END
+
+ROM_START( galaped )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "3200a.bin", 0x0000, 0x1000, CRC(3ef0b053) SHA1(0c04a362b737998c0952a753fb3fd8c8a17e9b46) )
+ ROM_LOAD( "3300b.bin", 0x1000, 0x1000, CRC(1b280831) SHA1(f7ea12e61929717ebe43a4198a97f109845a2c62) )
+ ROM_LOAD( "3400c.bin", 0x2000, 0x1000, CRC(16233d33) SHA1(a7eb799be5e23058754a92b15e6527bfbb47a354) )
+ ROM_LOAD( "3500d.bin", 0x3000, 0x1000, CRC(0aaf5c23) SHA1(3f4b0bb960bf002261e9c1278c88f594c6aa8ab6) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "3600fast.bin", 0x0000, 0x1000, CRC(23d586e5) SHA1(43346c69385e9091e64cff6c027ac2689cafcbb9) )
+
+ ROM_REGION( 0x10000, "sub2", 0 )
+ ROM_LOAD( "3700g.bin", 0x0000, 0x1000, CRC(b07f0aa4) SHA1(7528644a8480d0be2d0d37069515ed319e94778f) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "ped_07m_g08.bin", 0x0000, 0x1000, CRC(d4fda6a5) SHA1(c1d39bfa2ad866e726b77f15ca22ef97ac3f51a4) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "ped_07e_g10.bin", 0x0000, 0x1000, CRC(1d0a2438) SHA1(66a4d7120f926a67dac0203b73c60917e5c140cf) )
+ ROM_LOAD( "ped_07h_g09.bin", 0x1000, 0x1000, CRC(11d9b093) SHA1(8f151f4813ca7a80a228f2123cc089de414bc3f9) )
+
+ ROM_REGION( 0x0320, "proms", 0 )
+ ROM_LOAD( "prom-5.5n", 0x0000, 0x0020, CRC(54603c6b) SHA1(1a6dea13b4af155d9cb5b999a75d4f1eb9c71346) )
+ ROM_LOAD( "2n.bin", 0x0020, 0x0100, CRC(a547d33b) SHA1(7323084320bb61ae1530d916f5edd8835d4d2461) )
+ ROM_LOAD( "1c.bin", 0x0120, 0x0100, CRC(b6f585fb) SHA1(dd10147c4f05fede7ae6e7a760681700a660e87e) )
+ ROM_LOAD( "5c.bin", 0x0220, 0x0100, CRC(8bd565f6) SHA1(bedba65816abfc2ebeacac6ee335ca6f136e3e3d) )
+
+ ROM_REGION( 0x0100, "namco", 0 )
+ ROM_LOAD( "1d.bin", 0x0000, 0x0100, CRC(86d92b24) SHA1(6bef9102b97c83025a2cf84e89d95f2d44c3d2ed) )
+ROM_END
+
+ROM_START( galgaxin )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "3200a.bin", 0x0000, 0x1000, CRC(3ef0b053) SHA1(0c04a362b737998c0952a753fb3fd8c8a17e9b46) )
+ ROM_LOAD( "3300b.bin", 0x1000, 0x1000, CRC(1b280831) SHA1(f7ea12e61929717ebe43a4198a97f109845a2c62) )
+ ROM_LOAD( "3400c.bin", 0x2000, 0x1000, CRC(16233d33) SHA1(a7eb799be5e23058754a92b15e6527bfbb47a354) )
+ ROM_LOAD( "3500d.bin", 0x3000, 0x1000, CRC(0aaf5c23) SHA1(3f4b0bb960bf002261e9c1278c88f594c6aa8ab6) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "3600e.bin", 0x0000, 0x1000, CRC(bc556e76) SHA1(0d3d68243c4571d985b4d8f7e0ea9f6fcffa2116) )
+
+ ROM_REGION( 0x10000, "sub2", 0 )
+ ROM_LOAD( "3700g.bin", 0x0000, 0x1000, CRC(b07f0aa4) SHA1(7528644a8480d0be2d0d37069515ed319e94778f) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "2600j_4l.bin", 0x0000, 0x1000, CRC(10fa1481) SHA1(09f56503251cc29cf2131d2a0c5bcca4ee276e70) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "2800l_4d.bin", 0x0000, 0x1000, CRC(bf803b06) SHA1(ab0051b3b08f03ad93d100f38b106e761d4c4607) )
+ ROM_LOAD( "2700k.bin", 0x1000, 0x1000, CRC(020906a3) SHA1(72e63918556ae366ede3ffad64a9d3ad4df1e514) )
+
+ ROM_REGION( 0x0320, "proms", 0 )
+ ROM_LOAD( "prom-5.5n", 0x0000, 0x0020, CRC(54603c6b) SHA1(1a6dea13b4af155d9cb5b999a75d4f1eb9c71346) )
+ ROM_LOAD( "2n.bin", 0x0020, 0x0100, CRC(a547d33b) SHA1(7323084320bb61ae1530d916f5edd8835d4d2461) )
+ ROM_LOAD( "1c.bin", 0x0120, 0x0100, CRC(b6f585fb) SHA1(dd10147c4f05fede7ae6e7a760681700a660e87e) )
+ ROM_LOAD( "5c.bin", 0x0220, 0x0100, CRC(8bd565f6) SHA1(bedba65816abfc2ebeacac6ee335ca6f136e3e3d) )
+
+ ROM_REGION( 0x0100, "namco", 0 )
+ ROM_LOAD( "1d.bin", 0x0000, 0x0100, CRC(86d92b24) SHA1(6bef9102b97c83025a2cf84e89d95f2d44c3d2ed) )
+ROM_END
+
+ROM_START( galagaef )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "3200a.bin", 0x0000, 0x1000, CRC(3ef0b053) SHA1(0c04a362b737998c0952a753fb3fd8c8a17e9b46) )
+ ROM_LOAD( "3300b.bin", 0x1000, 0x1000, CRC(1b280831) SHA1(f7ea12e61929717ebe43a4198a97f109845a2c62) )
+ ROM_LOAD( "3400c.bin", 0x2000, 0x1000, CRC(16233d33) SHA1(a7eb799be5e23058754a92b15e6527bfbb47a354) )
+ ROM_LOAD( "3500d.bin", 0x3000, 0x1000, CRC(0aaf5c23) SHA1(3f4b0bb960bf002261e9c1278c88f594c6aa8ab6) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "3600e.bin", 0x0000, 0x1000, CRC(bc556e76) SHA1(0d3d68243c4571d985b4d8f7e0ea9f6fcffa2116) )
+
+ ROM_REGION( 0x10000, "sub2", 0 )
+ ROM_LOAD( "3700g.bin", 0x0000, 0x1000, CRC(b07f0aa4) SHA1(7528644a8480d0be2d0d37069515ed319e94778f) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "gg1_9.4l", 0x0000, 0x1000, CRC(58b2f47c) SHA1(62f1279a784ab2f8218c4137c7accda00e6a3490) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "terror.bin", 0x0000, 0x1000, CRC(1b629f80) SHA1(6db66601fd357400edf3dc1d689255c64a46a72d) )
+ ROM_LOAD( "gg1_10.4f", 0x1000, 0x1000, CRC(dd6f1afc) SHA1(c340ed8c25e0979629a9a1730edc762bd72d0cff) )
+
+ ROM_REGION( 0x0220, "proms", 0 )
+ ROM_LOAD( "prom-5.5n", 0x0000, 0x0020, CRC(54603c6b) SHA1(1a6dea13b4af155d9cb5b999a75d4f1eb9c71346) )
+ ROM_LOAD( "prom-4.2n", 0x0020, 0x0100, CRC(59b6edab) SHA1(0281de86c236c88739297ff712e0a4f5c8bf8ab9) )
+ ROM_LOAD( "prom-3.1c", 0x0120, 0x0100, CRC(4a04bb6b) SHA1(cdd4bc1013f5c11984fdc4fd10e2d2e27120c1e5) )
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "prom-1.1d", 0x0000, 0x0100, CRC(7a2815b4) SHA1(085ada18c498fdb18ecedef0ea8fe9217edb7b46) )
+ ROM_LOAD( "prom-2.5c", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) )
+ROM_END
+
+ROM_START( terror )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "gg1-1", 0x0000, 0x1000, CRC(a3a0f743) SHA1(6907773db7c002ecde5e41853603d53387c5c7cd) )
+ ROM_LOAD( "gg1-2", 0x1000, 0x1000, CRC(43bb0d5c) SHA1(666975aed5ce84f09794c54b550d64d95ab311f0) )
+ ROM_LOAD( "gg1_3.2m", 0x2000, 0x1000, CRC(753ce503) SHA1(481f443aea3ed3504ec2f3a6bfcf3cd47e2f8f81) )
+ ROM_LOAD( "gg1-4", 0x3000, 0x1000, CRC(83874442) SHA1(366cb0dbd31b787e64f88d182108b670d03b393e) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "gg1-5", 0x0000, 0x1000, CRC(3102fccd) SHA1(d29b68d6aab3217fa2106b3507b9273ff3f927bf) )
+
+ ROM_REGION( 0x10000, "sub2", 0 )
+ ROM_LOAD( "gg1-7", 0x0000, 0x1000, CRC(8995088d) SHA1(d6cb439de0718826d1a0363c9d77de8740b18ecf) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "gg1_9.4l", 0x0000, 0x1000, CRC(58b2f47c) SHA1(62f1279a784ab2f8218c4137c7accda00e6a3490) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "terror.bin", 0x0000, 0x1000, CRC(1b629f80) SHA1(6db66601fd357400edf3dc1d689255c64a46a72d) )
+ ROM_LOAD( "gg1_10.4f", 0x1000, 0x1000, CRC(dd6f1afc) SHA1(c340ed8c25e0979629a9a1730edc762bd72d0cff) )
+
+ ROM_REGION( 0x0320, "proms", 0 )
+ ROM_LOAD( "prom-5.5n", 0x0000, 0x0020, CRC(54603c6b) SHA1(1a6dea13b4af155d9cb5b999a75d4f1eb9c71346) )
+ ROM_LOAD( "2n.bin", 0x0020, 0x0100, CRC(a547d33b) SHA1(7323084320bb61ae1530d916f5edd8835d4d2461) )
+ ROM_LOAD( "1c.bin", 0x0120, 0x0100, CRC(b6f585fb) SHA1(dd10147c4f05fede7ae6e7a760681700a660e87e) )
+ ROM_LOAD( "5c.bin", 0x0220, 0x0100, CRC(8bd565f6) SHA1(bedba65816abfc2ebeacac6ee335ca6f136e3e3d) )
+
+ ROM_REGION( 0x0100, "namco", 0 )
+ ROM_LOAD( "1d.bin", 0x0000, 0x0100, CRC(86d92b24) SHA1(6bef9102b97c83025a2cf84e89d95f2d44c3d2ed) )
+ROM_END
+
+ROM_START( vgalaga )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "3200a.bin", 0x0000, 0x1000, CRC(3ef0b053) SHA1(0c04a362b737998c0952a753fb3fd8c8a17e9b46) )
+ ROM_LOAD( "3300b.bin", 0x1000, 0x1000, CRC(1b280831) SHA1(f7ea12e61929717ebe43a4198a97f109845a2c62) )
+ ROM_LOAD( "3400c.bin", 0x2000, 0x1000, CRC(16233d33) SHA1(a7eb799be5e23058754a92b15e6527bfbb47a354) )
+ ROM_LOAD( "3500d.bin", 0x3000, 0x1000, CRC(0aaf5c23) SHA1(3f4b0bb960bf002261e9c1278c88f594c6aa8ab6) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "3600e.bin", 0x0000, 0x1000, CRC(bc556e76) SHA1(0d3d68243c4571d985b4d8f7e0ea9f6fcffa2116) )
+
+ ROM_REGION( 0x10000, "sub2", 0 )
+ ROM_LOAD( "3700g.bin", 0x0000, 0x1000, CRC(b07f0aa4) SHA1(7528644a8480d0be2d0d37069515ed319e94778f) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "v_07m_g08.bin", 0x0000, 0x1000, CRC(bf59992f) SHA1(78f1e01affca694693254ecfedebdb05cb8d3b82) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "v_07e_g10.bin", 0x0000, 0x1000, CRC(3cf64d44) SHA1(54035738c6b0eed3331f11c53477cf87f07a8422) )
+ ROM_LOAD( "v_07h_g09.bin", 0x1000, 0x1000, CRC(206bf7fc) SHA1(7510ed4a6c084f555cd5a6cd6fbc862f4797656f) )
+
+ ROM_REGION( 0x0320, "proms", 0 )
+ ROM_LOAD( "prom-5.5n", 0x0000, 0x0020, CRC(54603c6b) SHA1(1a6dea13b4af155d9cb5b999a75d4f1eb9c71346) )
+ ROM_LOAD( "2n.bin", 0x0020, 0x0100, CRC(a547d33b) SHA1(7323084320bb61ae1530d916f5edd8835d4d2461) )
+ ROM_LOAD( "1c.bin", 0x0120, 0x0100, CRC(b6f585fb) SHA1(dd10147c4f05fede7ae6e7a760681700a660e87e) )
+ ROM_LOAD( "5c.bin", 0x0220, 0x0100, CRC(8bd565f6) SHA1(bedba65816abfc2ebeacac6ee335ca6f136e3e3d) )
+
+ ROM_REGION( 0x0100, "namco", 0 )
+ ROM_LOAD( "1d.bin", 0x0000, 0x0100, CRC(86d92b24) SHA1(6bef9102b97c83025a2cf84e89d95f2d44c3d2ed) )
+ROM_END
+
+ROM_START( vgalagam )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "3200a.bin", 0x0000, 0x1000, CRC(3ef0b053) SHA1(0c04a362b737998c0952a753fb3fd8c8a17e9b46) )
+ ROM_LOAD( "3300b.bin", 0x1000, 0x1000, CRC(1b280831) SHA1(f7ea12e61929717ebe43a4198a97f109845a2c62) )
+ ROM_LOAD( "3400c.bin", 0x2000, 0x1000, CRC(16233d33) SHA1(a7eb799be5e23058754a92b15e6527bfbb47a354) )
+ ROM_LOAD( "3500d.bin", 0x3000, 0x1000, CRC(0aaf5c23) SHA1(3f4b0bb960bf002261e9c1278c88f594c6aa8ab6) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "3600e.bin", 0x0000, 0x1000, CRC(bc556e76) SHA1(0d3d68243c4571d985b4d8f7e0ea9f6fcffa2116) )
+
+ ROM_REGION( 0x10000, "sub2", 0 )
+ ROM_LOAD( "3700g.bin", 0x0000, 0x1000, CRC(b07f0aa4) SHA1(7528644a8480d0be2d0d37069515ed319e94778f) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "vgalagaf.08", 0x0000, 0x1000, CRC(c1bdeb1c) SHA1(7f07a9da708066401710b0b62b98e324ebbc2bca) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "vgalagaf.10", 0x0000, 0x1000, CRC(99367e04) SHA1(7e140e2b9dd4c6b0da41b21ed2cf1bf33f088a7e) )
+ ROM_LOAD( "vgalagaf.09", 0x1000, 0x1000, CRC(683585c4) SHA1(fdc89b72bf64e44c80f4ae601280fca9b0d1c18c) )
+
+ ROM_REGION( 0x0320, "proms", 0 )
+ ROM_LOAD( "prom-5.5n", 0x0000, 0x0020, CRC(54603c6b) SHA1(1a6dea13b4af155d9cb5b999a75d4f1eb9c71346) )
+ ROM_LOAD( "2n.bin", 0x0020, 0x0100, CRC(a547d33b) SHA1(7323084320bb61ae1530d916f5edd8835d4d2461) )
+ ROM_LOAD( "1c.bin", 0x0120, 0x0100, CRC(b6f585fb) SHA1(dd10147c4f05fede7ae6e7a760681700a660e87e) )
+ ROM_LOAD( "5c.bin", 0x0220, 0x0100, CRC(8bd565f6) SHA1(bedba65816abfc2ebeacac6ee335ca6f136e3e3d) )
+
+ ROM_REGION( 0x0100, "namco", 0 )
+ ROM_LOAD( "1d.bin", 0x0000, 0x0100, CRC(86d92b24) SHA1(6bef9102b97c83025a2cf84e89d95f2d44c3d2ed) )
+ROM_END
+
+ROM_START( vgalagaf )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "3200a.bin", 0x0000, 0x1000, CRC(3ef0b053) SHA1(0c04a362b737998c0952a753fb3fd8c8a17e9b46) )
+ ROM_LOAD( "3300b.bin", 0x1000, 0x1000, CRC(1b280831) SHA1(f7ea12e61929717ebe43a4198a97f109845a2c62) )
+ ROM_LOAD( "3400c.bin", 0x2000, 0x1000, CRC(16233d33) SHA1(a7eb799be5e23058754a92b15e6527bfbb47a354) )
+ ROM_LOAD( "3500d.bin", 0x3000, 0x1000, CRC(0aaf5c23) SHA1(3f4b0bb960bf002261e9c1278c88f594c6aa8ab6) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "3600fast.bin", 0x0000, 0x1000, CRC(23d586e5) SHA1(43346c69385e9091e64cff6c027ac2689cafcbb9) )
+
+ ROM_REGION( 0x10000, "sub2", 0 )
+ ROM_LOAD( "3700g.bin", 0x0000, 0x1000, CRC(b07f0aa4) SHA1(7528644a8480d0be2d0d37069515ed319e94778f) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "vgalagaf.08", 0x0000, 0x1000, CRC(c1bdeb1c) SHA1(7f07a9da708066401710b0b62b98e324ebbc2bca) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "vgalagaf.10", 0x0000, 0x1000, CRC(99367e04) SHA1(7e140e2b9dd4c6b0da41b21ed2cf1bf33f088a7e) )
+ ROM_LOAD( "vgalagaf.09", 0x1000, 0x1000, CRC(683585c4) SHA1(fdc89b72bf64e44c80f4ae601280fca9b0d1c18c) )
+
+ ROM_REGION( 0x0320, "proms", 0 )
+ ROM_LOAD( "prom-5.5n", 0x0000, 0x0020, CRC(54603c6b) SHA1(1a6dea13b4af155d9cb5b999a75d4f1eb9c71346) )
+ ROM_LOAD( "2n.bin", 0x0020, 0x0100, CRC(a547d33b) SHA1(7323084320bb61ae1530d916f5edd8835d4d2461) )
+ ROM_LOAD( "1c.bin", 0x0120, 0x0100, CRC(b6f585fb) SHA1(dd10147c4f05fede7ae6e7a760681700a660e87e) )
+ ROM_LOAD( "5c.bin", 0x0220, 0x0100, CRC(8bd565f6) SHA1(bedba65816abfc2ebeacac6ee335ca6f136e3e3d) )
+
+ ROM_REGION( 0x0100, "namco", 0 )
+ ROM_LOAD( "1d.bin", 0x0000, 0x0100, CRC(86d92b24) SHA1(6bef9102b97c83025a2cf84e89d95f2d44c3d2ed) )
+ROM_END
+
+// xevious hacks
+
+ROM_START( battlesh )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "b_1.bin", 0x0000, 0x2000, CRC(b6e4f4f3) SHA1(ceaaa63b50e75dcb05aeb68574336dfe56a8434a) )
+ ROM_LOAD( "b_2.bin", 0x2000, 0x2000, CRC(47017bc8) SHA1(0da73ae079fb6a64eed56197e2c88609ef34166c) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "b_3.bin", 0x0000, 0x2000, CRC(0ede5706) SHA1(65b235c5abe487612e11d0235410f1ca59b06e95) )
+
+ ROM_REGION( 0x10000, "sub2", 0 )
+ ROM_LOAD( "xvi_7.2c", 0x0000, 0x1000, CRC(dd35cf1c) SHA1(f8d1f8e019d8198308443c2e7e815d0d04b23d14) )
+
+ ROM_REGION( 0x10000, "sub3", 0 )
+ ROM_LOAD( "b_5.bin", 0x0000, 0x1000, CRC(23107dfb) SHA1(74c49a5648faab632ae5ed8dd18a1d8b39837e2d) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "b_9.bin", 0x0000, 0x1000, CRC(5bd6e9ae) SHA1(f16c7eec39fce856c775b2b81ab55fb42376850e) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "b_10.bin", 0x0000, 0x1000, CRC(b43ea55d) SHA1(06f4c4e7fc71b9e173c3bdf91c40f47750051b5e) )
+ ROM_LOAD( "b_11.bin", 0x1000, 0x1000, CRC(73603931) SHA1(1f7824b107a5a3d5c3434f02f17173a1f85fd29c) )
+
+ ROM_REGION( 0xa000, "gfx3", 0 )
+ ROM_LOAD( "xh_xvi_15.4m", 0x0000, 0x2000, CRC(308c5bad) SHA1(583a6c2b9a3c9fac6ed33de6ae5ee11543fe6164) )
+ ROM_LOAD( "xh_xvi_17.4p", 0x2000, 0x2000, CRC(b06b9ccb) SHA1(186442f0aa7bf0365adfb2da874110c01797b140) )
+ ROM_LOAD( "xh_xvi_16.4n", 0x4000, 0x1000, CRC(1cbbddce) SHA1(5fcf20b3ab335cfac01f1c2bcfca76b90c92618b) )
+ ROM_LOAD( "xh_xvi_18.4r", 0x5000, 0x2000, CRC(f56c3697) SHA1(4f5108a1bf6b828dbed4a34836c42fd359fb68c5) )
+ ROM_FILL( 0x9000, 0x1000, 0x00 )
+
+ ROM_REGION( 0x4000, "gfx4", 0 )
+ ROM_LOAD( "xvi_9.2a", 0x0000, 0x1000, CRC(57ed9879) SHA1(3106d1aacff06cf78371bd19967141072b32b7d7) )
+ ROM_LOAD( "xvi_10.2b", 0x1000, 0x2000, CRC(ae3ba9e5) SHA1(49064b25667ffcd81137cd5e800df4b78b182a46) )
+ ROM_LOAD( "xvi_11.2c", 0x3000, 0x1000, CRC(31e244dd) SHA1(3f7eac12863697a98e1122111801606759e44b2a) )
+
+ ROM_REGION( 0x1400, "proms", 0 )
+ ROM_LOAD( "xvi-8.6a", 0x0000, 0x0100, CRC(5cc2727f) SHA1(0dc1e63a47a4cb0ba75f6f1e0c15e408bb0ee2a1) )
+ ROM_LOAD( "xvi-9.6d", 0x0100, 0x0100, CRC(5c8796cc) SHA1(63015e3c0874afc6b1ca032f1ffb8f90562c77c8) )
+ ROM_LOAD( "xvi-10.6e", 0x0200, 0x0100, CRC(3cb60975) SHA1(c94d5a5dd4d8a08d6d39c051a4a722581b903f45) )
+ ROM_LOAD( "b_-bpr.bin", 0x0300, 0x0400, CRC(d2d208b1) SHA1(6c8d29912c03ee93759e24085bc66ab738768bcc) )
+ ROM_LOAD( "b_6bpr.bin", 0x0700, 0x0400, CRC(0260c041) SHA1(1a7516e8b18ffdd9789eec8b834c17b3ba312afe) )
+ ROM_LOAD( "b_4bpr.bin", 0x0b00, 0x0400, CRC(33764974) SHA1(567b048b8a93e30090ccee4f6aadc0353524d8d1) )
+ ROM_LOAD( "b_5bpr.bin", 0x0f00, 0x0400, CRC(43674c7e) SHA1(94c19a9da81839cb1dfde3f11b2fd82ffe45efb9) )
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "xvi-2.7n", 0x0000, 0x0100, CRC(550f06bc) SHA1(816a0fafa0b084ac11ae1af70a5186539376fc2a) )
+ ROM_LOAD( "xvi-1.5n", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) )
+ROM_END
+
+ROM_START( gaous )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "xvi_1.3p", 0x0000, 0x1000, CRC(09964dda) SHA1(4882b25b0938a903f3a367455ba788a30759b5b0) )
+ ROM_LOAD( "xvi_2.3m", 0x1000, 0x1000, CRC(60ecce84) SHA1(8adc60a5fcbca74092518dbc570ffff0f04c5b17) )
+ ROM_LOAD( "xvi_3.2m", 0x2000, 0x1000, CRC(79754b7d) SHA1(c6a154858716e1f073b476824b183de20e06d093) )
+ ROM_LOAD( "xvi_4.2l", 0x3000, 0x1000, CRC(c7d4bbf0) SHA1(4b846de204d08651253d3a141677c8a31626af07) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "xvi_5.3f", 0x0000, 0x1000, CRC(c85b703f) SHA1(15f1c005b9d806a384ab1f2240b9c580bfe83893) )
+ ROM_LOAD( "xvi_6.3j", 0x1000, 0x1000, CRC(e18cdaad) SHA1(6b79efee1a9642edb9f752101737132401248aed) )
+
+ ROM_REGION( 0x10000, "sub2", 0 )
+ ROM_LOAD( "xvi_7.2c", 0x0000, 0x1000, CRC(dd35cf1c) SHA1(f8d1f8e019d8198308443c2e7e815d0d04b23d14) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "gao_12.3b", 0x0000, 0x1000, CRC(e24d7e32) SHA1(c78798944f717d2b20ceb846e4f98966756b0964) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "gao_13.3c", 0x0000, 0x1000, CRC(43ed5c90) SHA1(15f541fb7314c59fe56245f4dbfe05fa35ee2396) )
+ ROM_LOAD( "gao_14.3d", 0x1000, 0x1000, CRC(f361bdd0) SHA1(0ebae760617e8ff29d3f33856094f511f7a06dfa) )
+
+ ROM_REGION( 0xa000, "gfx3", 0 )
+ ROM_LOAD( "gao_15.4m", 0x0000, 0x2000, CRC(ea41df4e) SHA1(8e7215654db77c7f8782dc4b909d1248952c10f0) )
+ ROM_LOAD( "gao_17.4p", 0x2000, 0x2000, CRC(79d65929) SHA1(ca60435cd4a64c82e4d263a57fe899e9e18b3389) )
+ ROM_LOAD( "gao_16.4n", 0x4000, 0x1000, CRC(ceb8a6f8) SHA1(5153cfe4aaeefd4f1faec133a120e8551c460d2f) )
+ ROM_LOAD( "gao_18.4r", 0x5000, 0x2000, CRC(2d95245d) SHA1(7e5409f1f787047d7825d59f1dfeefa26732d1cc) )
+ ROM_FILL( 0x9000, 0x1000, 0x00 )
+
+ ROM_REGION( 0x4000, "gfx4", 0 )
+ ROM_LOAD( "xvi_9.2a", 0x0000, 0x1000, CRC(57ed9879) SHA1(3106d1aacff06cf78371bd19967141072b32b7d7) )
+ ROM_LOAD( "xvi_10.2b", 0x1000, 0x2000, CRC(ae3ba9e5) SHA1(49064b25667ffcd81137cd5e800df4b78b182a46) )
+ ROM_LOAD( "xvi_11.2c", 0x3000, 0x1000, CRC(31e244dd) SHA1(3f7eac12863697a98e1122111801606759e44b2a) )
+
+ ROM_REGION( 0x0b00, "proms", 0 )
+ ROM_LOAD( "xvi-8.6a", 0x0000, 0x0100, CRC(5cc2727f) SHA1(0dc1e63a47a4cb0ba75f6f1e0c15e408bb0ee2a1) )
+ ROM_LOAD( "xvi-9.6d", 0x0100, 0x0100, CRC(5c8796cc) SHA1(63015e3c0874afc6b1ca032f1ffb8f90562c77c8) )
+ ROM_LOAD( "xvi-10.6e", 0x0200, 0x0100, CRC(3cb60975) SHA1(c94d5a5dd4d8a08d6d39c051a4a722581b903f45) )
+ ROM_LOAD( "xvi-7.4h", 0x0300, 0x0200, CRC(22d98032) SHA1(ec6626828c79350417d08b98e9631ad35edd4a41) )
+ ROM_LOAD( "xvi-6.4f", 0x0500, 0x0200, CRC(3a7599f0) SHA1(a4bdf58c190ca16fc7b976c97f41087a61fdb8b8) )
+ ROM_LOAD( "gao_4bpr.3l", 0x0700, 0x0200, CRC(bb0f377f) SHA1(451569602c83172132db76ee7652d174867639c0) )
+ ROM_LOAD( "gao_5bpr.3m", 0x0900, 0x0200, CRC(3fb201f3) SHA1(9e1c79c13bc285b7bff104c84baab9dd04fd42ab) )
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "xvi-2.7n", 0x0000, 0x0100, CRC(550f06bc) SHA1(816a0fafa0b084ac11ae1af70a5186539376fc2a) )
+ ROM_LOAD( "xvi-1.5n", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) )
+ROM_END
+
+ROM_START( sxvioush )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "cpu_3p.rom", 0x0000, 0x1000, CRC(1c8d27d5) SHA1(2c41303d8c74acb5840295a4b460a39a9a8e21bb) )
+ ROM_LOAD( "cpu_3m.rom", 0x1000, 0x1000, CRC(fd04e615) SHA1(7169e7f3bd1e9cfae9671b89f2a45f56b968e1ff) )
+ ROM_LOAD( "cpu_2m.rom", 0x2000, 0x1000, CRC(294d5404) SHA1(ecc39fb2c0065a36f20541747089b4e30dfb99b1) )
+ ROM_LOAD( "cpu_2l.rom", 0x3000, 0x1000, CRC(6a44bf92) SHA1(0ca726f7f9528789f2a718df55e59406a283cdfa) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "cpu_3f.rom", 0x0000, 0x1000, CRC(d4bd3d81) SHA1(5831bb306bd650779207936bfd00f25864733abb) )
+ ROM_LOAD( "cpu_3j.rom", 0x1000, 0x1000, CRC(af06be5f) SHA1(5a020822387ab8c69214db961180760fa9853e6e) )
+
+ ROM_REGION( 0x10000, "sub2", 0 )
+ ROM_LOAD( "xvi_7.2c", 0x0000, 0x1000, CRC(dd35cf1c) SHA1(f8d1f8e019d8198308443c2e7e815d0d04b23d14) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "xh_xvi_12.3b", 0x0000, 0x1000, CRC(9b8f4deb) SHA1(f6e1b557be3cbfc2d7755da8e48dc9a57f2cc2c0) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "xvi_13.3c", 0x0000, 0x1000, CRC(de60ba25) SHA1(32bc09be5ff8b52ee3a26e0ac3ebc2d4107badb7) )
+ ROM_LOAD( "xvi_14.3d", 0x1000, 0x1000, CRC(535cdbbc) SHA1(fb9ffe5fc43e0213231267e98d605d43c15f61e8) )
+
+ ROM_REGION( 0xa000, "gfx3", 0 )
+ ROM_LOAD( "xh_xvi_15.4m", 0x0000, 0x2000, CRC(308c5bad) SHA1(583a6c2b9a3c9fac6ed33de6ae5ee11543fe6164) )
+ ROM_LOAD( "xh_xvi_17.4p", 0x2000, 0x2000, CRC(b06b9ccb) SHA1(186442f0aa7bf0365adfb2da874110c01797b140) )
+ ROM_LOAD( "xh_xvi_16.4n", 0x4000, 0x1000, CRC(1cbbddce) SHA1(5fcf20b3ab335cfac01f1c2bcfca76b90c92618b) )
+ ROM_LOAD( "xh_xvi_18.4r", 0x5000, 0x2000, CRC(f56c3697) SHA1(4f5108a1bf6b828dbed4a34836c42fd359fb68c5) )
+ ROM_FILL( 0x9000, 0x1000, 0x00 )
+
+ ROM_REGION( 0x4000, "gfx4", 0 )
+ ROM_LOAD( "xvi_9.2a", 0x0000, 0x1000, CRC(57ed9879) SHA1(3106d1aacff06cf78371bd19967141072b32b7d7) )
+ ROM_LOAD( "xvi_10.2b", 0x1000, 0x2000, CRC(ae3ba9e5) SHA1(49064b25667ffcd81137cd5e800df4b78b182a46) )
+ ROM_LOAD( "xvi_11.2c", 0x3000, 0x1000, CRC(31e244dd) SHA1(3f7eac12863697a98e1122111801606759e44b2a) )
+
+ ROM_REGION( 0x0b00, "proms", 0 )
+ ROM_LOAD( "xvi-8.6a", 0x0000, 0x0100, CRC(5cc2727f) SHA1(0dc1e63a47a4cb0ba75f6f1e0c15e408bb0ee2a1) )
+ ROM_LOAD( "xvi-9.6d", 0x0100, 0x0100, CRC(5c8796cc) SHA1(63015e3c0874afc6b1ca032f1ffb8f90562c77c8) )
+ ROM_LOAD( "xvi-10.6e", 0x0200, 0x0100, CRC(3cb60975) SHA1(c94d5a5dd4d8a08d6d39c051a4a722581b903f45) )
+ ROM_LOAD( "xvi-7.4h", 0x0300, 0x0200, CRC(22d98032) SHA1(ec6626828c79350417d08b98e9631ad35edd4a41) )
+ ROM_LOAD( "xvi-6.4f", 0x0500, 0x0200, CRC(3a7599f0) SHA1(a4bdf58c190ca16fc7b976c97f41087a61fdb8b8) )
+ ROM_LOAD( "xvi-4.3l", 0x0700, 0x0200, CRC(fd8b9d91) SHA1(87ddf0b9d723aabb422d6d416aa9ec6bc246bf34) )
+ ROM_LOAD( "xvi-5.3m", 0x0900, 0x0200, CRC(bf906d82) SHA1(776168a73d3b9f0ce05610acc8a623deae0a572b) )
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "xvi-2.7n", 0x0000, 0x0100, CRC(550f06bc) SHA1(816a0fafa0b084ac11ae1af70a5186539376fc2a) )
+ ROM_LOAD( "xvi-1.5n", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) )
+ROM_END
+
+ROM_START( xviousah )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "xea-1m-a.bin", 0x0000, 0x2000, CRC(8c2b50ec) SHA1(f770873b711d838556dde67a8aac8a7f572fcc5b) )
+ ROM_LOAD( "xea-1l-a.bin", 0x2000, 0x2000, CRC(0821642b) SHA1(c6c322c61d0985a2ac59f5e92d4e351107afb9eb) )
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "xea-4c-a.bin", 0x0000, 0x2000, CRC(14d8fa03) SHA1(e8114141394adda86184b146f2497cfeef7fc2eb) )
+
+ ROM_REGION( 0x10000, "sub2", 0 )
+ ROM_LOAD( "xvi_7.2c", 0x0000, 0x1000, CRC(dd35cf1c) SHA1(f8d1f8e019d8198308443c2e7e815d0d04b23d14) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "xh_xvi_12.3b", 0x0000, 0x1000, CRC(9b8f4deb) SHA1(f6e1b557be3cbfc2d7755da8e48dc9a57f2cc2c0) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "xvi_13.3c", 0x0000, 0x1000, CRC(de60ba25) SHA1(32bc09be5ff8b52ee3a26e0ac3ebc2d4107badb7) )
+ ROM_LOAD( "xvi_14.3d", 0x1000, 0x1000, CRC(535cdbbc) SHA1(fb9ffe5fc43e0213231267e98d605d43c15f61e8) )
+
+ ROM_REGION( 0xa000, "gfx3", 0 )
+ ROM_LOAD( "xh_xvi_15.4m", 0x0000, 0x2000, CRC(308c5bad) SHA1(583a6c2b9a3c9fac6ed33de6ae5ee11543fe6164) )
+ ROM_LOAD( "xh_xvi_17.4p", 0x2000, 0x2000, CRC(b06b9ccb) SHA1(186442f0aa7bf0365adfb2da874110c01797b140) )
+ ROM_LOAD( "xh_xvi_16.4n", 0x4000, 0x1000, CRC(1cbbddce) SHA1(5fcf20b3ab335cfac01f1c2bcfca76b90c92618b) )
+ ROM_LOAD( "xh_xvi_18.4r", 0x5000, 0x2000, CRC(f56c3697) SHA1(4f5108a1bf6b828dbed4a34836c42fd359fb68c5) )
+ ROM_FILL( 0x9000, 0x1000, 0x00 )
+
+ ROM_REGION( 0x4000, "gfx4", 0 )
+ ROM_LOAD( "xvi_9.2a", 0x0000, 0x1000, CRC(57ed9879) SHA1(3106d1aacff06cf78371bd19967141072b32b7d7) )
+ ROM_LOAD( "xvi_10.2b", 0x1000, 0x2000, CRC(ae3ba9e5) SHA1(49064b25667ffcd81137cd5e800df4b78b182a46) )
+ ROM_LOAD( "xvi_11.2c", 0x3000, 0x1000, CRC(31e244dd) SHA1(3f7eac12863697a98e1122111801606759e44b2a) )
+
+ ROM_REGION( 0x0b00, "proms", 0 )
+ ROM_LOAD( "xvi-8.6a", 0x0000, 0x0100, CRC(5cc2727f) SHA1(0dc1e63a47a4cb0ba75f6f1e0c15e408bb0ee2a1) )
+ ROM_LOAD( "xvi-9.6d", 0x0100, 0x0100, CRC(5c8796cc) SHA1(63015e3c0874afc6b1ca032f1ffb8f90562c77c8) )
+ ROM_LOAD( "xvi-10.6e", 0x0200, 0x0100, CRC(3cb60975) SHA1(c94d5a5dd4d8a08d6d39c051a4a722581b903f45) )
+ ROM_LOAD( "xvi-7.4h", 0x0300, 0x0200, CRC(22d98032) SHA1(ec6626828c79350417d08b98e9631ad35edd4a41) )
+ ROM_LOAD( "xvi-6.4f", 0x0500, 0x0200, CRC(3a7599f0) SHA1(a4bdf58c190ca16fc7b976c97f41087a61fdb8b8) )
+ ROM_LOAD( "xvi-4.3l", 0x0700, 0x0200, CRC(fd8b9d91) SHA1(87ddf0b9d723aabb422d6d416aa9ec6bc246bf34) )
+ ROM_LOAD( "xvi-5.3m", 0x0900, 0x0200, CRC(bf906d82) SHA1(776168a73d3b9f0ce05610acc8a623deae0a572b) )
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "xvi-2.7n", 0x0000, 0x0100, CRC(550f06bc) SHA1(816a0fafa0b084ac11ae1af70a5186539376fc2a) )
+ ROM_LOAD( "xvi-1.5n", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) )
+ROM_END
+
+ROM_START( xevioush )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "xvi_1.3p", 0x0000, 0x1000, CRC(09964dda) SHA1(4882b25b0938a903f3a367455ba788a30759b5b0) )
+ ROM_LOAD( "xvi_2.3m", 0x1000, 0x1000, CRC(60ecce84) SHA1(8adc60a5fcbca74092518dbc570ffff0f04c5b17) )
+ ROM_LOAD( "xvi_3.2m", 0x2000, 0x1000, CRC(79754b7d) SHA1(c6a154858716e1f073b476824b183de20e06d093) )
+ ROM_LOAD( "xvi_4.2l", 0x3000, 0x1000, CRC(c7d4bbf0) SHA1(4b846de204d08651253d3a141677c8a31626af07) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "xvi_5.3f", 0x0000, 0x1000, CRC(c85b703f) SHA1(15f1c005b9d806a384ab1f2240b9c580bfe83893) )
+ ROM_LOAD( "xvi_6.3j", 0x1000, 0x1000, CRC(e18cdaad) SHA1(6b79efee1a9642edb9f752101737132401248aed) )
+
+ ROM_REGION( 0x10000, "sub2", 0 )
+ ROM_LOAD( "xvi_7.2c", 0x0000, 0x1000, CRC(dd35cf1c) SHA1(f8d1f8e019d8198308443c2e7e815d0d04b23d14) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "xh_xvi_12.3b", 0x0000, 0x1000, CRC(9b8f4deb) SHA1(f6e1b557be3cbfc2d7755da8e48dc9a57f2cc2c0) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "xvi_13.3c", 0x0000, 0x1000, CRC(de60ba25) SHA1(32bc09be5ff8b52ee3a26e0ac3ebc2d4107badb7) )
+ ROM_LOAD( "xvi_14.3d", 0x1000, 0x1000, CRC(535cdbbc) SHA1(fb9ffe5fc43e0213231267e98d605d43c15f61e8) )
+
+ ROM_REGION( 0xa000, "gfx3", 0 )
+ ROM_LOAD( "xh_xvi_15.4m", 0x0000, 0x2000, CRC(308c5bad) SHA1(583a6c2b9a3c9fac6ed33de6ae5ee11543fe6164) )
+ ROM_LOAD( "xh_xvi_17.4p", 0x2000, 0x2000, CRC(b06b9ccb) SHA1(186442f0aa7bf0365adfb2da874110c01797b140) )
+ ROM_LOAD( "xh_xvi_16.4n", 0x4000, 0x1000, CRC(1cbbddce) SHA1(5fcf20b3ab335cfac01f1c2bcfca76b90c92618b) )
+ ROM_LOAD( "xh_xvi_18.4r", 0x5000, 0x2000, CRC(f56c3697) SHA1(4f5108a1bf6b828dbed4a34836c42fd359fb68c5) )
+ ROM_FILL( 0x9000, 0x1000, 0x00 )
+
+ ROM_REGION( 0x4000, "gfx4", 0 )
+ ROM_LOAD( "xvi_9.2a", 0x0000, 0x1000, CRC(57ed9879) SHA1(3106d1aacff06cf78371bd19967141072b32b7d7) )
+ ROM_LOAD( "xvi_10.2b", 0x1000, 0x2000, CRC(ae3ba9e5) SHA1(49064b25667ffcd81137cd5e800df4b78b182a46) )
+ ROM_LOAD( "xvi_11.2c", 0x3000, 0x1000, CRC(31e244dd) SHA1(3f7eac12863697a98e1122111801606759e44b2a) )
+
+ ROM_REGION( 0x0b00, "proms", 0 )
+ ROM_LOAD( "xvi-8.6a", 0x0000, 0x0100, CRC(5cc2727f) SHA1(0dc1e63a47a4cb0ba75f6f1e0c15e408bb0ee2a1) )
+ ROM_LOAD( "xvi-9.6d", 0x0100, 0x0100, CRC(5c8796cc) SHA1(63015e3c0874afc6b1ca032f1ffb8f90562c77c8) )
+ ROM_LOAD( "xvi-10.6e", 0x0200, 0x0100, CRC(3cb60975) SHA1(c94d5a5dd4d8a08d6d39c051a4a722581b903f45) )
+ ROM_LOAD( "xvi-7.4h", 0x0300, 0x0200, CRC(22d98032) SHA1(ec6626828c79350417d08b98e9631ad35edd4a41) )
+ ROM_LOAD( "xvi-6.4f", 0x0500, 0x0200, CRC(3a7599f0) SHA1(a4bdf58c190ca16fc7b976c97f41087a61fdb8b8) )
+ ROM_LOAD( "xvi-4.3l", 0x0700, 0x0200, CRC(fd8b9d91) SHA1(87ddf0b9d723aabb422d6d416aa9ec6bc246bf34) )
+ ROM_LOAD( "xvi-5.3m", 0x0900, 0x0200, CRC(bf906d82) SHA1(776168a73d3b9f0ce05610acc8a623deae0a572b) )
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "xvi-2.7n", 0x0000, 0x0100, CRC(550f06bc) SHA1(816a0fafa0b084ac11ae1af70a5186539376fc2a) )
+ ROM_LOAD( "xvi-1.5n", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) )
+ROM_END
+
+ROM_START( xeviousp )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "xvip_1.3p", 0x0000, 0x1000, CRC(09c5fef9) SHA1(1111912763c818afc13e4dfd088877cf78bc30b4) )
+ ROM_LOAD( "xvip_2.3m", 0x1000, 0x1000, CRC(a2cf842d) SHA1(9bb24b3527f2cad8c9b916f9a815ea4f747dc337) )
+ ROM_LOAD( "xvip_3.2m", 0x2000, 0x1000, CRC(7ab657cd) SHA1(a27ad33b2808417dff8e27d0e2b503092f505bb0) )
+ ROM_LOAD( "xvip_4.2l", 0x3000, 0x1000, CRC(884837bd) SHA1(750b0b118a88ab09a0dcbdc10737910b2fc28a1a) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "xvip_5.3f", 0x0000, 0x1000, CRC(68c5268b) SHA1(265c86b2f547230d88276471864a45460198e129) )
+ ROM_LOAD( "xvip_6.3j", 0x1000, 0x1000, CRC(cafc97e6) SHA1(a3d8130b49fb941f6f05204793bf3226ca8eac5c) )
+
+ ROM_REGION( 0x10000, "sub2", 0 )
+ ROM_LOAD( "xvi_7.2c", 0x0000, 0x1000, CRC(dd35cf1c) SHA1(f8d1f8e019d8198308443c2e7e815d0d04b23d14) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "xvip_12.3b", 0x0000, 0x1000, CRC(08f184f1) SHA1(bcbf89b92c311a78db516b557b982ed51907c49d) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "xvi_13.3c", 0x0000, 0x1000, CRC(de60ba25) SHA1(32bc09be5ff8b52ee3a26e0ac3ebc2d4107badb7) )
+ ROM_LOAD( "xvi_14.3d", 0x1000, 0x1000, CRC(535cdbbc) SHA1(fb9ffe5fc43e0213231267e98d605d43c15f61e8) )
+
+ ROM_REGION( 0xa000, "gfx3", 0 )
+ ROM_LOAD( "xvi_15.4m", 0x0000, 0x2000, CRC(dc2c0ecb) SHA1(19ddbd9805f77f38c9a9a1bb30dba6c720b8609f) )
+ ROM_LOAD( "xvi_17.4p", 0x2000, 0x2000, CRC(dfb587ce) SHA1(acff2bf5cde85a16cdc98a52cdea11f77fadf25a) )
+ ROM_LOAD( "xvi_16.4n", 0x4000, 0x1000, CRC(605ca889) SHA1(3bf380ef76c03822a042ecc73b5edd4543c268ce) )
+ ROM_LOAD( "xvip_16.4n", 0x5000, 0x1000, CRC(00babaa1) SHA1(b946510a9c5b6c1dd6e6bab1ba3217a9d449a477) )
+ ROM_FILL( 0x9000, 0x1000, 0x00 )
+
+ ROM_REGION( 0x4000, "gfx4", 0 )
+ ROM_LOAD( "xvip_9.2a", 0x0000, 0x1000, CRC(529aecf0) SHA1(60c18f834933e01ecd22aa652d39a5d1a9a0fe0f) )
+ ROM_LOAD( "xvip_10.2b", 0x1000, 0x2000, CRC(f09eb6f9) SHA1(b189b4c23a2f9f185c75b096f44a083f8dbca3ae) )
+ ROM_LOAD( "xvi_11.2c", 0x3000, 0x1000, CRC(31e244dd) SHA1(3f7eac12863697a98e1122111801606759e44b2a) )
+
+ ROM_REGION( 0x0b00, "proms", 0 )
+ ROM_LOAD( "xvi-8.6a", 0x0000, 0x0100, CRC(5cc2727f) SHA1(0dc1e63a47a4cb0ba75f6f1e0c15e408bb0ee2a1) )
+ ROM_LOAD( "xvi-9.6d", 0x0100, 0x0100, CRC(5c8796cc) SHA1(63015e3c0874afc6b1ca032f1ffb8f90562c77c8) )
+ ROM_LOAD( "xvi-10.6e", 0x0200, 0x0100, CRC(3cb60975) SHA1(c94d5a5dd4d8a08d6d39c051a4a722581b903f45) )
+ ROM_LOAD( "xvi-7.4h", 0x0300, 0x0200, CRC(22d98032) SHA1(ec6626828c79350417d08b98e9631ad35edd4a41) )
+ ROM_LOAD( "xvi-6.4f", 0x0500, 0x0200, CRC(3a7599f0) SHA1(a4bdf58c190ca16fc7b976c97f41087a61fdb8b8) )
+ ROM_LOAD( "xvi-4.3l", 0x0700, 0x0200, CRC(fd8b9d91) SHA1(87ddf0b9d723aabb422d6d416aa9ec6bc246bf34) )
+ ROM_LOAD( "xvi-5.3m", 0x0900, 0x0200, CRC(bf906d82) SHA1(776168a73d3b9f0ce05610acc8a623deae0a572b) )
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "xvi-2.7n", 0x0000, 0x0100, CRC(550f06bc) SHA1(816a0fafa0b084ac11ae1af70a5186539376fc2a) )
+ ROM_LOAD( "xvi-1.5n", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) )
+ROM_END
+
+ROM_START( xevious3 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "xvi_1.3p", 0x0000, 0x1000, CRC(09964dda) SHA1(4882b25b0938a903f3a367455ba788a30759b5b0) )
+ ROM_LOAD( "xvi_2.3m", 0x1000, 0x1000, CRC(60ecce84) SHA1(8adc60a5fcbca74092518dbc570ffff0f04c5b17) )
+ ROM_LOAD( "xvi_3.2m", 0x2000, 0x1000, CRC(79754b7d) SHA1(c6a154858716e1f073b476824b183de20e06d093) )
+ ROM_LOAD( "xvi_4.2l", 0x3000, 0x1000, CRC(c7d4bbf0) SHA1(4b846de204d08651253d3a141677c8a31626af07) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "xvi_5.3f", 0x0000, 0x1000, CRC(c85b703f) SHA1(15f1c005b9d806a384ab1f2240b9c580bfe83893) )
+ ROM_LOAD( "xvi_6.3j", 0x1000, 0x1000, CRC(e18cdaad) SHA1(6b79efee1a9642edb9f752101737132401248aed) )
+
+ ROM_REGION( 0x10000, "sub2", 0 )
+ ROM_LOAD( "xvi_7.2c", 0x0000, 0x1000, CRC(dd35cf1c) SHA1(f8d1f8e019d8198308443c2e7e815d0d04b23d14) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "x3_xvi_12.3b", 0x0000, 0x1000, CRC(34f7940e) SHA1(6e289b36d14fea02f2fdf45caa4720ab05529fe2) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "x3_xvi_13.3c", 0x0000, 0x1000, CRC(6eab56b5) SHA1(00da56424e520c9de5967c1c233a20cb3ae037db) )
+ ROM_LOAD( "x3_xvi_14.3d", 0x1000, 0x1000, CRC(790b2f6c) SHA1(bc8e52d0ca4e97f38256ec3da1b23d266767ea9b) )
+
+ ROM_REGION( 0xa000, "gfx3", 0 )
+ ROM_LOAD( "x3_xvi_15.4m", 0x0000, 0x2000, CRC(4dfaf4e1) SHA1(26456dc6c75e1a02cfc9c07fedfb2b7ece8e1692) )
+ ROM_LOAD( "x3_xvi_17.4p", 0x2000, 0x2000, CRC(9a135fe7) SHA1(278ab8c2805d138a47dfc89db7016c7438142a4f) )
+ ROM_LOAD( "x3_xvi_16.4n", 0x4000, 0x1000, CRC(dd6f34c8) SHA1(9fcc194ea2ee94f8bdf4c46ff8dead113a99bdce) )
+ ROM_LOAD( "x3_xvi_18.4r", 0x5000, 0x2000, CRC(d5378335) SHA1(892a762a050c8f3ae21544392444b289583b8ca0) )
+ ROM_FILL( 0x9000, 0x1000, 0x00 )
+
+ ROM_REGION( 0x4000, "gfx4", 0 )
+ ROM_LOAD( "xvi_9.2a", 0x0000, 0x1000, CRC(57ed9879) SHA1(3106d1aacff06cf78371bd19967141072b32b7d7) )
+ ROM_LOAD( "xvi_10.2b", 0x1000, 0x2000, CRC(ae3ba9e5) SHA1(49064b25667ffcd81137cd5e800df4b78b182a46) )
+ ROM_LOAD( "xvi_11.2c", 0x3000, 0x1000, CRC(31e244dd) SHA1(3f7eac12863697a98e1122111801606759e44b2a) )
+
+ ROM_REGION( 0x0b00, "proms", 0 )
+ ROM_LOAD( "xvi-8.6a", 0x0000, 0x0100, CRC(5cc2727f) SHA1(0dc1e63a47a4cb0ba75f6f1e0c15e408bb0ee2a1) )
+ ROM_LOAD( "xvi-9.6d", 0x0100, 0x0100, CRC(5c8796cc) SHA1(63015e3c0874afc6b1ca032f1ffb8f90562c77c8) )
+ ROM_LOAD( "xvi-10.6e", 0x0200, 0x0100, CRC(3cb60975) SHA1(c94d5a5dd4d8a08d6d39c051a4a722581b903f45) )
+ ROM_LOAD( "xvi-7.4h", 0x0300, 0x0200, CRC(22d98032) SHA1(ec6626828c79350417d08b98e9631ad35edd4a41) )
+ ROM_LOAD( "xvi-6.4f", 0x0500, 0x0200, CRC(3a7599f0) SHA1(a4bdf58c190ca16fc7b976c97f41087a61fdb8b8) )
+ ROM_LOAD( "xvi-4.3l", 0x0700, 0x0200, CRC(fd8b9d91) SHA1(87ddf0b9d723aabb422d6d416aa9ec6bc246bf34) )
+ ROM_LOAD( "xvi-5.3m", 0x0900, 0x0200, CRC(bf906d82) SHA1(776168a73d3b9f0ce05610acc8a623deae0a572b) )
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "xvi-2.7n", 0x0000, 0x0100, CRC(550f06bc) SHA1(816a0fafa0b084ac11ae1af70a5186539376fc2a) )
+ ROM_LOAD( "xvi-1.5n", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) )
+ROM_END
+
+ROM_START( xevious4 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "xvi_1.3p", 0x0000, 0x1000, CRC(09964dda) SHA1(4882b25b0938a903f3a367455ba788a30759b5b0) )
+ ROM_LOAD( "xvi_2.3m", 0x1000, 0x1000, CRC(60ecce84) SHA1(8adc60a5fcbca74092518dbc570ffff0f04c5b17) )
+ ROM_LOAD( "xvi_3.2m", 0x2000, 0x1000, CRC(79754b7d) SHA1(c6a154858716e1f073b476824b183de20e06d093) )
+ ROM_LOAD( "xvi_4.2l", 0x3000, 0x1000, CRC(c7d4bbf0) SHA1(4b846de204d08651253d3a141677c8a31626af07) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "xvi_5.3f", 0x0000, 0x1000, CRC(c85b703f) SHA1(15f1c005b9d806a384ab1f2240b9c580bfe83893) )
+ ROM_LOAD( "xvi_6.3j", 0x1000, 0x1000, CRC(e18cdaad) SHA1(6b79efee1a9642edb9f752101737132401248aed) )
+
+ ROM_REGION( 0x10000, "sub2", 0 )
+ ROM_LOAD( "xvi_7.2c", 0x0000, 0x1000, CRC(dd35cf1c) SHA1(f8d1f8e019d8198308443c2e7e815d0d04b23d14) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "x4_xvi_12.3b", 0x0000, 0x1000, CRC(bdf15ccc) SHA1(0e6fba428cf56668e5c9218af3c6d58c8f261d32) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "x4_xvi_13.3c", 0x0000, 0x1000, CRC(b9832011) SHA1(ac7b266791fd39c17cf239405068e309478e6703) )
+ ROM_LOAD( "x4_xvi_14.3d", 0x1000, 0x1000, CRC(04677061) SHA1(3bf47661ddf1a8e98fcf8f7e46610e353483da9b) )
+
+ ROM_REGION( 0xa000, "gfx3", 0 )
+ ROM_LOAD( "x4_xvi_15.4m", 0x0000, 0x2000, CRC(6cdeae2d) SHA1(5d43b11655e2952cec3c4e5df5855805273b0cb8) )
+ ROM_LOAD( "x4_xvi_17.4p", 0x2000, 0x2000, CRC(28ac2e0a) SHA1(8f85656d60439abc507ec09e9dfda31dad3e4e04) )
+ ROM_LOAD( "x4_xvi_16.4n", 0x4000, 0x1000, CRC(400e2c3e) SHA1(d46fc7a40ad2b8f822db21e8af9ec29e21f7f093) )
+ ROM_LOAD( "x4_xvi_18.4r", 0x5000, 0x2000, CRC(45b2daaf) SHA1(8bda7ee9900a64c74996e5790832f11983caf31b) )
+ ROM_FILL( 0x9000, 0x1000, 0x00 )
+
+ ROM_REGION( 0x4000, "gfx4", 0 )
+ ROM_LOAD( "xvi_9.2a", 0x0000, 0x1000, CRC(57ed9879) SHA1(3106d1aacff06cf78371bd19967141072b32b7d7) )
+ ROM_LOAD( "xvi_10.2b", 0x1000, 0x2000, CRC(ae3ba9e5) SHA1(49064b25667ffcd81137cd5e800df4b78b182a46) )
+ ROM_LOAD( "xvi_11.2c", 0x3000, 0x1000, CRC(31e244dd) SHA1(3f7eac12863697a98e1122111801606759e44b2a) )
+
+ ROM_REGION( 0x0b00, "proms", 0 )
+ ROM_LOAD( "x4_xvi_8bpr.6a", 0x0000, 0x0100, CRC(0e572608) SHA1(580acf168d13e5ba4448c6dbd077fe035dd9df3a) )
+ ROM_LOAD( "x4_xvi_9bpr.6d", 0x0100, 0x0100, CRC(0e12c2bb) SHA1(829d14781e67268ceba5f771466584025894fd96) )
+ ROM_LOAD( "x4_xvi10bpr.6e", 0x0200, 0x0100, CRC(6e235d02) SHA1(08378c12dfe190d33caf7bb0916dcc336dca42cd) )
+ ROM_LOAD( "xvi-7.4h", 0x0300, 0x0200, CRC(22d98032) SHA1(ec6626828c79350417d08b98e9631ad35edd4a41) )
+ ROM_LOAD( "xvi-6.4f", 0x0500, 0x0200, CRC(3a7599f0) SHA1(a4bdf58c190ca16fc7b976c97f41087a61fdb8b8) )
+ ROM_LOAD( "x4_xvi_4bpr.3l", 0x0700, 0x0200, CRC(cce27181) SHA1(312d2f776f282354615f3a33a58a2744aafbc5a9) )
+ ROM_LOAD( "x4_xvi_5bpr.3m", 0x0900, 0x0200, CRC(e15ddec9) SHA1(531551ab5b0f0dc6c450e24ee973451ec0c21471) )
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "xvi-2.7n", 0x0000, 0x0100, CRC(550f06bc) SHA1(816a0fafa0b084ac11ae1af70a5186539376fc2a) )
+ ROM_LOAD( "xvi-1.5n", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) )
+ROM_END
+
+ROM_START( xevious5 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "xvi_1.3p", 0x0000, 0x1000, CRC(09964dda) SHA1(4882b25b0938a903f3a367455ba788a30759b5b0) )
+ ROM_LOAD( "xvi_2.3m", 0x1000, 0x1000, CRC(60ecce84) SHA1(8adc60a5fcbca74092518dbc570ffff0f04c5b17) )
+ ROM_LOAD( "xvi_3.2m", 0x2000, 0x1000, CRC(79754b7d) SHA1(c6a154858716e1f073b476824b183de20e06d093) )
+ ROM_LOAD( "xvi_4.2l", 0x3000, 0x1000, CRC(c7d4bbf0) SHA1(4b846de204d08651253d3a141677c8a31626af07) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "xvi_5.3f", 0x0000, 0x1000, CRC(c85b703f) SHA1(15f1c005b9d806a384ab1f2240b9c580bfe83893) )
+ ROM_LOAD( "xvi_6.3j", 0x1000, 0x1000, CRC(e18cdaad) SHA1(6b79efee1a9642edb9f752101737132401248aed) )
+
+ ROM_REGION( 0x10000, "sub2", 0 )
+ ROM_LOAD( "xvi_7.2c", 0x0000, 0x1000, CRC(dd35cf1c) SHA1(f8d1f8e019d8198308443c2e7e815d0d04b23d14) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "xvi24_12.3b", 0x0000, 0x1000, CRC(935cb02d) SHA1(0800e2a643b2bbeae0f337bfbdc88d2eab16ada4) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "xvi_13.3c", 0x0000, 0x1000, CRC(de60ba25) SHA1(32bc09be5ff8b52ee3a26e0ac3ebc2d4107badb7) )
+ ROM_LOAD( "xvi24_14.3d", 0x1000, 0x1000, CRC(e0fbfb86) SHA1(6e25609f2f70490d8f70a48e93b1abf9673b1d38) )
+
+ ROM_REGION( 0xa000, "gfx3", 0 )
+ ROM_LOAD( "xvi24_15.4m", 0x0000, 0x2000, CRC(51dcbd85) SHA1(a681000eb279d0f71da4ec4164f57e9877cb391f) )
+ ROM_LOAD( "xvi24_17.4p", 0x2000, 0x2000, CRC(b4753406) SHA1(404e911377614eda1e92093c5e3504216f16e143) )
+ ROM_LOAD( "xvi24_16.4n", 0x4000, 0x1000, CRC(eb0d690d) SHA1(1cc3a0e3647e36a925eab8e5aee73febeb41d4cc) )
+ ROM_LOAD( "xvi24_18.4r", 0x5000, 0x2000, CRC(490c1189) SHA1(a478d390a4931c43778cf24e5b01225c71dcac67) )
+ ROM_FILL( 0x9000, 0x1000, 0x00 )
+
+ ROM_REGION( 0x4000, "gfx4", 0 )
+ ROM_LOAD( "xvi_9.2a", 0x0000, 0x1000, CRC(57ed9879) SHA1(3106d1aacff06cf78371bd19967141072b32b7d7) )
+ ROM_LOAD( "xvi_10.2b", 0x1000, 0x2000, CRC(ae3ba9e5) SHA1(49064b25667ffcd81137cd5e800df4b78b182a46) )
+ ROM_LOAD( "xvi_11.2c", 0x3000, 0x1000, CRC(31e244dd) SHA1(3f7eac12863697a98e1122111801606759e44b2a) )
+
+ ROM_REGION( 0x0b00, "proms", 0 )
+ ROM_LOAD( "xvi-8.6a", 0x0000, 0x0100, CRC(5cc2727f) SHA1(0dc1e63a47a4cb0ba75f6f1e0c15e408bb0ee2a1) )
+ ROM_LOAD( "xvi-9.6d", 0x0100, 0x0100, CRC(5c8796cc) SHA1(63015e3c0874afc6b1ca032f1ffb8f90562c77c8) )
+ ROM_LOAD( "xvi-10.6e", 0x0200, 0x0100, CRC(3cb60975) SHA1(c94d5a5dd4d8a08d6d39c051a4a722581b903f45) )
+ ROM_LOAD( "xvi-7.4h", 0x0300, 0x0200, CRC(22d98032) SHA1(ec6626828c79350417d08b98e9631ad35edd4a41) )
+ ROM_LOAD( "xvi-6.4f", 0x0500, 0x0200, CRC(3a7599f0) SHA1(a4bdf58c190ca16fc7b976c97f41087a61fdb8b8) )
+ ROM_LOAD( "xvi-4.3l", 0x0700, 0x0200, CRC(fd8b9d91) SHA1(87ddf0b9d723aabb422d6d416aa9ec6bc246bf34) )
+ ROM_LOAD( "xvi-5.3m", 0x0900, 0x0200, CRC(bf906d82) SHA1(776168a73d3b9f0ce05610acc8a623deae0a572b) )
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "xvi-2.7n", 0x0000, 0x0100, CRC(550f06bc) SHA1(816a0fafa0b084ac11ae1af70a5186539376fc2a) )
+ ROM_LOAD( "xvi-1.5n", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) )
+ROM_END
+
+ROM_START( xeviblk )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "xvi_1.3p", 0x0000, 0x1000, CRC(09964dda) SHA1(4882b25b0938a903f3a367455ba788a30759b5b0) )
+ ROM_LOAD( "xvi_2.3m", 0x1000, 0x1000, CRC(60ecce84) SHA1(8adc60a5fcbca74092518dbc570ffff0f04c5b17) )
+ ROM_LOAD( "xvi_3.2m", 0x2000, 0x1000, CRC(79754b7d) SHA1(c6a154858716e1f073b476824b183de20e06d093) )
+ ROM_LOAD( "xvi_4.2l", 0x3000, 0x1000, CRC(c7d4bbf0) SHA1(4b846de204d08651253d3a141677c8a31626af07) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "xvi_5.3f", 0x0000, 0x1000, CRC(c85b703f) SHA1(15f1c005b9d806a384ab1f2240b9c580bfe83893) )
+ ROM_LOAD( "xvi_6.3j", 0x1000, 0x1000, CRC(e18cdaad) SHA1(6b79efee1a9642edb9f752101737132401248aed) )
+
+ ROM_REGION( 0x10000, "sub2", 0 )
+ ROM_LOAD( "xvi_7.2c", 0x0000, 0x1000, CRC(dd35cf1c) SHA1(f8d1f8e019d8198308443c2e7e815d0d04b23d14) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "xvi_12.3b", 0x0000, 0x1000, CRC(088c8b26) SHA1(9c3b61dfca2f84673a78f7f66e363777a8f47a59) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "xvi_13.3c", 0x0000, 0x1000, CRC(de60ba25) SHA1(32bc09be5ff8b52ee3a26e0ac3ebc2d4107badb7) )
+ ROM_LOAD( "xvi_14.3d", 0x1000, 0x1000, CRC(535cdbbc) SHA1(fb9ffe5fc43e0213231267e98d605d43c15f61e8) )
+
+ ROM_REGION( 0xa000, "gfx3", 0 )
+ ROM_LOAD( "xvi_15.4m", 0x0000, 0x2000, CRC(dc2c0ecb) SHA1(19ddbd9805f77f38c9a9a1bb30dba6c720b8609f) )
+ ROM_LOAD( "xvi_17.4p", 0x2000, 0x2000, CRC(dfb587ce) SHA1(acff2bf5cde85a16cdc98a52cdea11f77fadf25a) )
+ ROM_LOAD( "xvi_16.4n", 0x4000, 0x1000, CRC(605ca889) SHA1(3bf380ef76c03822a042ecc73b5edd4543c268ce) )
+ ROM_LOAD( "xvi_18.4r", 0x5000, 0x2000, CRC(02417d19) SHA1(b5f830dd2cf25cf154308d2e640f0ecdcda5d8cd) )
+ ROM_FILL( 0x9000, 0x1000, 0x00 )
+
+ ROM_REGION( 0x4000, "gfx4", 0 )
+ ROM_LOAD( "xvi_9.2a", 0x0000, 0x1000, CRC(57ed9879) SHA1(3106d1aacff06cf78371bd19967141072b32b7d7) )
+ ROM_LOAD( "xvi_10.2b", 0x1000, 0x2000, CRC(ae3ba9e5) SHA1(49064b25667ffcd81137cd5e800df4b78b182a46) )
+ ROM_LOAD( "xvi_11.2c", 0x3000, 0x1000, CRC(31e244dd) SHA1(3f7eac12863697a98e1122111801606759e44b2a) )
+
+ ROM_REGION( 0x0b00, "proms", 0 )
+ ROM_LOAD( "xvi-8.6a", 0x0000, 0x0100, CRC(5cc2727f) SHA1(0dc1e63a47a4cb0ba75f6f1e0c15e408bb0ee2a1) )
+ ROM_LOAD( "xvi-9.6d", 0x0100, 0x0100, CRC(5c8796cc) SHA1(63015e3c0874afc6b1ca032f1ffb8f90562c77c8) )
+ ROM_LOAD( "xvi-10.6e", 0x0200, 0x0100, CRC(3cb60975) SHA1(c94d5a5dd4d8a08d6d39c051a4a722581b903f45) )
+ ROM_LOAD( "xvi-7.4h", 0x0300, 0x0200, CRC(22d98032) SHA1(ec6626828c79350417d08b98e9631ad35edd4a41) )
+ ROM_LOAD( "xvi-6.4f", 0x0500, 0x0200, CRC(3a7599f0) SHA1(a4bdf58c190ca16fc7b976c97f41087a61fdb8b8) )
+ ROM_LOAD( "xvibl_4bpr.3l", 0x0700, 0x0200, CRC(83277522) SHA1(7c5edce9758fdb5aa2132da9d8aeb0f64d69d52e) )
+ ROM_LOAD( "xvibl_5bpr.3m", 0x0900, 0x0200, CRC(07b4bd0b) SHA1(36b467756c54120a20b82b4183a524b4867bc729) )
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "xvi-2.7n", 0x0000, 0x0100, CRC(550f06bc) SHA1(816a0fafa0b084ac11ae1af70a5186539376fc2a) )
+ ROM_LOAD( "xvi-1.5n", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) )
+ROM_END
+
+
+GAME( 1984, galaga84, galaga, galaga, galaga, galaga_state, galaga, ROT90, "hack", "Galaga '84", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, galaga99, galaga, galaga, galaga, galaga_state, galaga, ROT90, "Jerky and Sil", "Galaga '99", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, galagab2, galaga, galaga, galaga, galaga_state, galaga, ROT90, "bootleg", "Galaga (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1982, galagabl, galaga, galaga, galaga, galaga_state, galaga, ROT90, "bootleg", "Galaga (Namco 1982)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, galagads, galaga, galaga, galagamw, galaga_state, galaga, ROT90, "hack", "Galaga (fast shoot)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, galagaef, galaga, galaga, galagamw, galaga_state, galaga, ROT90, "Hack", "Galaga (Enduring Freedom)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, galagaf, galaga, galaga, galaga, galaga_state, galaga, ROT90, "Namco", "Galaga (Fast Shoot Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, galagap, galaga, galaga, galaga, galaga_state, galaga, ROT90, "Don Hodges", "Galaga (patched)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, galagix, galaga, galaga, galaga, galaga_state, galaga, ROT90, "Grand Master Peter", "Galagix", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, galagost, galaga, galagost, galaga, galaga_state, galaga, ROT90, "Twisty", "Galaga Ghost (Set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, galagosb, galaga, galagost, galaga, galaga_state, galaga, ROT90, "Twisty", "Galaga Ghost (Set 2 - 2002-11-28)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, galaped, galaga, galaga, galaga, galaga_state, galaga, ROT90, "Cary Barnhard", "Galapede (Fast Shoot)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, galgaxin, galaga, galaga, galaga, galaga_state, galaga, ROT90, "T-Bone", "Galagalaxian", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, nebulbee, galaga, galaga, galaga, galaga_state, galaga, ROT90, "hack", "Nebulous Bee", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, terror, galaga, galaga, galaga, galaga_state, galaga, ROT90, "Hack", "Terrorist", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, vgalaga, galaga, galaga, galaga, galaga_state, galaga, ROT90, "Hack", "Vector Galaga", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, vgalagam, galaga, galaga, galaga, galaga_state, galaga, ROT90, "Hack", "Vector Galaga Midway", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, vgalagaf, galaga, galaga, galaga, galaga_state, galaga, ROT90, "Hack", "Vector Galaga Fast Shoot", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, battlesh, xevious, battles, xevious, xevious_state, battles, ROT90, "bootleg", "Battles 2002", MACHINE_SUPPORTS_SAVE )
+GAME( 2005, gaous, xevious, xevious, xevious, xevious_state, xevious, ROT90, "Namco (Hack)", "Gaous", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, sxvioush, xevious, xevious, sxevious, xevious_state, xevious, ROT90, "Namco", "Super Xevious 2002", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, xeviblk, xevious, xevious, xevious, xevious_state, xevious, ROT90, "Namco", "Xevious Black", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, xevious3, xevious, xevious, xevious, xevious_state, xevious, ROT90, "Namco", "Xevious 2003", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, xevious4, xevious, xevious, xevious, xevious_state, xevious, ROT90, "Namco", "Xevious 2004", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, xevious5, xevious, xevious, xevious, xevious_state, xevious, ROT90, "Namco", "Xevious 2005", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, xevioush, xevious, xevious, xevious, xevious_state, xevious, ROT90, "Namco", "Xevious 2002", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, xeviousp, xevious, xevious, sxevious, xevious_state, xevious, ROT90, "bootleg", "Xevious Plus!", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, xviousah, xevious, xevious, xeviousa, xevious_state, xevious, ROT90, "Namco (Atari license)", "Xevious 2002 (Atari set 1)", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/galaxian.cpp b/docs/release/src/hbmame/drivers/galaxian.cpp
new file mode 100644
index 00000000000..856f9a4bacf
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/galaxian.cpp
@@ -0,0 +1,856 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/galaxian.cpp"
+
+
+/*************************************
+ *
+ * Four Play
+ *
+ *************************************/
+
+static ADDRESS_MAP_START( fourplay_map, AS_PROGRAM, 8, galaxian_state )
+ AM_RANGE(0x0000, 0x3fff) AM_ROMBANK("bank1")
+ AM_RANGE(0x4000, 0x47ff) AM_RAM
+ AM_RANGE(0x5000, 0x53ff) AM_MIRROR(0x0400) AM_RAM_WRITE(galaxian_videoram_w) AM_SHARE("videoram")
+ AM_RANGE(0x5800, 0x58ff) AM_MIRROR(0x0700) AM_RAM_WRITE(galaxian_objram_w) AM_SHARE("spriteram")
+ AM_RANGE(0x6000, 0x6000) AM_READ_PORT("IN0")
+ AM_RANGE(0x6800, 0x6800) AM_READ_PORT("IN1")
+ AM_RANGE(0x7000, 0x7000) AM_READ_PORT("IN2")
+ AM_RANGE(0x7800, 0x7fff) AM_DEVREAD("watchdog", watchdog_timer_device, reset_r)
+ AM_RANGE(0x6000, 0x6001) AM_WRITE(start_lamp_w)
+ AM_RANGE(0x6002, 0x6002) AM_WRITENOP // AM_WRITE(coin_lock_w)
+ AM_RANGE(0x6003, 0x6003) AM_WRITE(coin_count_0_w)
+ AM_RANGE(0x6004, 0x6007) AM_DEVWRITE("cust", galaxian_sound_device, lfo_freq_w)
+ AM_RANGE(0x6800, 0x6807) AM_DEVWRITE("cust", galaxian_sound_device, sound_w)
+ AM_RANGE(0x7001, 0x7001) AM_WRITE(irq_enable_w)
+ AM_RANGE(0x7002, 0x7003) AM_WRITE(fourplay_rombank_w)
+ AM_RANGE(0x7004, 0x7004) AM_WRITE(galaxian_stars_enable_w)
+ AM_RANGE(0x7005, 0x7005) AM_WRITENOP /* bit 3 of rombank select - always 0 */
+ AM_RANGE(0x7006, 0x7006) AM_WRITE(galaxian_flip_screen_x_w)
+ AM_RANGE(0x7007, 0x7007) AM_WRITE(galaxian_flip_screen_y_w)
+ AM_RANGE(0x7008, 0x7008) AM_WRITENOP /* bit 4 of rombank select - always 0 */
+ AM_RANGE(0x7800, 0x7800) AM_DEVWRITE("cust", galaxian_sound_device, pitch_w)
+ADDRESS_MAP_END
+
+static MACHINE_CONFIG_DERIVED( fourplay, galaxian )
+ /* info can be found at http://www.ionpool.net/arcade/galaxian_hacks/fourplay.htm */
+ /* basic machine hardware */
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(fourplay_map)
+
+ /* video hardware */
+ MCFG_GFXDECODE_MODIFY("gfxdecode", gmgalax)
+ MCFG_PALETTE_MODIFY("palette")
+ MCFG_PALETTE_ENTRIES(64)
+MACHINE_CONFIG_END
+
+DRIVER_INIT_MEMBER( galaxian_state, fourplay )
+{
+ membank("bank1")->configure_entries(0, 4, memregion("maincpu")->base() + 0x10000, 0x4000);
+ membank("bank1")->set_entry(0);
+
+ /* video extensions */
+ common_init(NULL, NULL, &galaxian_state::pisces_extend_tile_info, &galaxian_state::pisces_extend_sprite_info);
+}
+
+
+
+/*************************************
+ *
+ * Galaxiab
+ *
+ *************************************/
+
+static INPUT_PORTS_START( galaxiab )
+ PORT_INCLUDE(galaxian)
+
+ PORT_MODIFY("IN2")
+ PORT_DIPNAME( 0x03, 0x01, DEF_STR( Bonus_Life ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( None ) )
+ PORT_DIPSETTING( 0x01, "20000" )
+ PORT_DIPSETTING( 0x02, "40000" )
+ PORT_DIPSETTING( 0x03, "80000" )
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Lives ) )
+ PORT_DIPSETTING( 0x00, "2" )
+ PORT_DIPSETTING( 0x04, "3" )
+ PORT_BIT( 0xf8, IP_ACTIVE_HIGH, IPT_UNUSED )
+INPUT_PORTS_END
+
+
+
+/***********************************************************
+ *
+ * Jump Bug (with extra sounds via Galaxian sound board)
+ *
+ ***********************************************************/
+
+static ADDRESS_MAP_START( jumpbugx_map, AS_PROGRAM, 8, galaxian_state )
+ AM_IMPORT_FROM(jumpbug_map)
+/* HBMAME - added next lines */
+ AM_RANGE(0x6800, 0x6807) AM_MIRROR(0x07f8) AM_DEVWRITE("cust", galaxian_sound_device, sound_w)
+ AM_RANGE(0x7800, 0x7800) AM_MIRROR(0x07ff) AM_DEVWRITE("cust", galaxian_sound_device, pitch_w)
+ADDRESS_MAP_END
+
+static MACHINE_CONFIG_DERIVED( jumpbugx, jumpbug )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(jumpbugx_map)
+ MCFG_FRAGMENT_ADD(galaxian_audio)
+MACHINE_CONFIG_END
+
+
+/*************************************
+ *
+ * Mr. Do Nightmare
+ *
+ *************************************/
+
+static INPUT_PORTS_START( mrdonm )
+ PORT_START("IN0")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 )
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 )
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN1")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START1 )
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 )
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Coinage ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
+ PORT_DIPSETTING( 0xc0, DEF_STR( Free_Play ) )
+
+ PORT_START("IN2")
+ PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED )
+INPUT_PORTS_END
+
+/*************************************
+ *
+ * Trukker
+ *
+ *************************************/
+
+DRIVER_INIT_MEMBER( galaxian_state, trukker )
+{
+ uint16_t i;
+
+ /* video extensions */
+ common_init(NULL, &galaxian_state::frogger_draw_background, &galaxian_state::frogger_extend_tile_info, &galaxian_state::frogger_extend_sprite_info);
+ m_frogger_adjust = true;
+
+ /* the first ROM of the second CPU has data lines D0 and D1 swapped. Decode it. */
+ uint8_t *ROM = memregion("audiocpu")->base();
+ for (i = 0;i < 0x800;i++) ROM[i] = BITSWAP8(ROM[i],7,6,5,4,3,2,0,1);
+
+ /* fix gfx error in the alphabetic characters */
+ ROM = memregion("gfx1")->base();
+ for (i = 0;i < 0x160;i++) ROM[i] = BITSWAP8(ROM[i],7,6,5,4,3,2,0,1);
+
+ /* remove extraneous dot from steam rollers */
+ for (i = 0x1a0;i < 0x200;i++) ROM[i] = ROM[i] & 0xfc;
+
+ /* fix gfx error in sinking turtle */
+ for (i = 0x4c0;i < 0x4e0;i++) ROM[i] = BITSWAP8(ROM[i],7,6,5,4,3,2,0,1);
+
+ /* fix gfx error on left side of home bases */
+ ROM[0x234] = BITSWAP8(ROM[0x234],7,6,5,4,3,2,0,1);
+
+ /* fix gfx error in (c) sign and in square symbol */
+ for (i = 0x270;i < 0x27f;i++) ROM[i] = BITSWAP8(ROM[i],7,6,5,4,3,2,0,1);
+
+ /* fix gfx error in 200-point sign */
+ for (i = 0x330;i < 0x337;i++) ROM[i] = BITSWAP8(ROM[i],7,6,5,4,3,2,0,1);
+}
+
+
+
+/***************************************************************
+ *
+ * Frogger Sound Test rom - watchdog has been disabled.
+ * You can lengthen the time, but holding down an arrow key
+ * will still eventually trigger it.
+ *
+ ***************************************************************/
+
+static ADDRESS_MAP_START( tst_frog_map, AS_PROGRAM, 8, galaxian_state )
+ ADDRESS_MAP_UNMAP_HIGH
+ AM_RANGE(0x0000, 0x3fff) AM_ROM
+ AM_RANGE(0x8000, 0x87ff) AM_RAM
+ AM_RANGE(0x8800, 0x8800) AM_READNOP //AM_DEVREAD("watchdog", watchdog_timer_device, reset_r)
+ AM_RANGE(0xa800, 0xabff) AM_MIRROR(0x0400) AM_RAM_WRITE(galaxian_videoram_w) AM_SHARE("videoram")
+ AM_RANGE(0xb000, 0xb0ff) AM_MIRROR(0x0700) AM_RAM_WRITE(galaxian_objram_w) AM_SHARE("spriteram")
+ AM_RANGE(0xb808, 0xb808) AM_MIRROR(0x07e3) AM_WRITE(irq_enable_w)
+ AM_RANGE(0xb80c, 0xb80c) AM_MIRROR(0x07e3) AM_WRITE(galaxian_flip_screen_y_w)
+ AM_RANGE(0xb810, 0xb810) AM_MIRROR(0x07e3) AM_WRITE(galaxian_flip_screen_x_w)
+ AM_RANGE(0xb818, 0xb818) AM_MIRROR(0x07e3) AM_WRITE(coin_count_0_w) /* IOPC7 */
+ AM_RANGE(0xb81c, 0xb81c) AM_MIRROR(0x07e3) AM_WRITE(coin_count_1_w) /* POUT1 */
+ AM_RANGE(0xc000, 0xffff) AM_READWRITE(frogger_ppi8255_r, frogger_ppi8255_w)
+ADDRESS_MAP_END
+
+static MACHINE_CONFIG_DERIVED( tst_frog, frogger )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(tst_frog_map)
+ MCFG_DEVICE_REMOVE("watchdog")
+MACHINE_CONFIG_END
+
+
+
+/*************************************
+ *
+ * Video Eight
+ *
+ *************************************/
+
+static ADDRESS_MAP_START( videight_map, AS_PROGRAM, 8, galaxian_state )
+ AM_RANGE(0x0000, 0x3fff) AM_ROMBANK("bank1")
+ AM_RANGE(0x4000, 0x47ff) AM_RAM
+ AM_RANGE(0x5000, 0x53ff) AM_MIRROR(0x400) AM_RAM_WRITE(galaxian_videoram_w) AM_SHARE("videoram")
+ AM_RANGE(0x5800, 0x58ff) AM_MIRROR(0x700) AM_RAM_WRITE(galaxian_objram_w) AM_SHARE("spriteram")
+ AM_RANGE(0x6000, 0x6000) AM_READ_PORT("IN0")
+ AM_RANGE(0x6800, 0x6800) AM_READ_PORT("IN1")
+ AM_RANGE(0x7000, 0x7000) AM_READ_PORT("IN2")
+ AM_RANGE(0x7800, 0x7fff) AM_DEVREAD("watchdog", watchdog_timer_device, reset_r)
+ AM_RANGE(0x6000, 0x6002) AM_WRITE(videight_gfxbank_w)
+ AM_RANGE(0x6003, 0x6003) AM_WRITE(coin_count_0_w)
+ AM_RANGE(0x6004, 0x6007) AM_DEVWRITE("cust", galaxian_sound_device, lfo_freq_w)
+ AM_RANGE(0x6800, 0x6807) AM_DEVWRITE("cust", galaxian_sound_device, sound_w)
+ AM_RANGE(0x6808, 0x68ff) AM_WRITENOP
+ AM_RANGE(0x7001, 0x7001) AM_WRITE(irq_enable_w)
+ AM_RANGE(0x7002, 0x7005) AM_WRITE(videight_rombank_w)
+ AM_RANGE(0x7006, 0x7006) AM_WRITE(galaxian_flip_screen_x_w)
+ AM_RANGE(0x7007, 0x7007) AM_WRITE(galaxian_flip_screen_y_w)
+ AM_RANGE(0x7008, 0x7008) AM_WRITENOP /* bit 4 of rombank select - always 0 */
+ AM_RANGE(0x7800, 0x7800) AM_DEVWRITE("cust", galaxian_sound_device, pitch_w)
+ADDRESS_MAP_END
+
+static GFXDECODE_START( videight )
+ GFXDECODE_SCALE( "gfx1", 0x0000, galaxian_charlayout, 0, 8*32, GALAXIAN_XSCALE,1)
+ GFXDECODE_SCALE( "gfx1", 0x0000, galaxian_spritelayout, 0, 8*32, GALAXIAN_XSCALE,1)
+GFXDECODE_END
+
+static MACHINE_CONFIG_DERIVED( videight, galaxian )
+
+ /* basic machine hardware */
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(videight_map)
+
+ /* video hardware */
+ MCFG_GFXDECODE_MODIFY("gfxdecode", videight)
+ MCFG_PALETTE_MODIFY("palette")
+ MCFG_PALETTE_ENTRIES(8*32)
+MACHINE_CONFIG_END
+
+DRIVER_INIT_MEMBER( galaxian_state, videight )
+{
+ membank("bank1")->configure_entries(0, 8, memregion("maincpu")->base() + 0x10000, 0x4000);
+ membank("bank1")->set_entry(0);
+
+ /* video extensions */
+ common_init(NULL, NULL, &galaxian_state::videight_extend_tile_info, &galaxian_state::videight_extend_sprite_info);
+}
+
+
+/***************************************************************************
+
+ Game driver(s)
+
+***************************************************************************/
+
+
+
+
+/* this looks exactly like Galaxian, the word "Andromeda" never appears. The dipswitches are different. */
+ROM_START( andromd )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "and01", 0x0000, 0x0400, CRC(a0059ddd) SHA1(06bc3bd5eef9fea9e038ec08e5a228ab19f31a56) )
+ ROM_LOAD( "and02", 0x0400, 0x0400, CRC(da6421b8) SHA1(d3099d94d722e3e12ade712842261aac8b45f9f4) )
+ ROM_LOAD( "and03", 0x0800, 0x0400, CRC(30e28016) SHA1(07a621e5061d85a9559a920d76716ea4db61b674) )
+ ROM_LOAD( "and04", 0x0c00, 0x0400, CRC(de7e7770) SHA1(b06043a1d898eb323ddabffd3d2a3b1f63df0e5e) )
+ ROM_LOAD( "and05", 0x1000, 0x0400, CRC(a916c919) SHA1(b3e264ff92687022a0f2f551d5df36db848b48eb) )
+ ROM_LOAD( "and06", 0x1400, 0x0400, CRC(9175882b) SHA1(d9943efcb9245af7f01aecc533a699bdefc7d283) )
+ ROM_LOAD( "and07", 0x1800, 0x0400, CRC(1237b9da) SHA1(00e11532c599fca452a816683b361a24476b7100) )
+ ROM_LOAD( "and08", 0x1c00, 0x0400, CRC(8b181929) SHA1(c7e789d1a76e8db0251ac4c75aa85f0a4259fc81) )
+ ROM_LOAD( "and09", 0x2000, 0x0400, CRC(17fd5357) SHA1(abda92319f6851232a0dd26229fc55cf6d8361d8) )
+ ROM_LOAD( "and10", 0x2400, 0x0400, CRC(3032821c) SHA1(7ff45a9ddd86e77a550b10148147f44c4c934467) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "1h.bin", 0x0000, 0x0800, CRC(39fb43a4) SHA1(4755609bd974976f04855d51e08ec0d62ab4bc07) )
+ ROM_LOAD( "1k.bin", 0x0800, 0x0800, CRC(7e3f56a2) SHA1(a9795d8b7388f404f3b0e2c6ce15d713a4c5bafa) )
+
+ ROM_REGION( 0x0020, "proms", 0 )
+ ROM_LOAD( "6l.bpr", 0x0000, 0x0020, CRC(c3ac9467) SHA1(f382ad5a34d282056c78a5ec00c30ec43772bae2) )
+ROM_END
+
+
+#if 0
+/* From CloneMAME 0.101 - this is galapx with different gfx roms */
+ROM_START( galaxni )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "galx.u", 0x0000, 0x0800, CRC(79e4007d) SHA1(d55050498a670d1c022ba3caad34f8fcaccf4a30) )
+ ROM_LOAD( "galx.v", 0x0800, 0x0800, CRC(bc16064e) SHA1(4e3220fd63c8184bf9581a89dffb6944d8fae3bb) )
+ ROM_LOAD( "galx.w", 0x1000, 0x0800, CRC(72d2d3ee) SHA1(96e0c5824e46d7398c7e58dd6b75a9f4ead6f3f5) )
+ ROM_LOAD( "galx.y", 0x1800, 0x0800, CRC(afe397f3) SHA1(283c6f3b3f07581d88f7a6e11fc36947a9d90e2e) )
+ ROM_LOAD( "galx.z", 0x2000, 0x0800, CRC(778c0d3c) SHA1(6a81875abfea515d379c6212cb57f8e54573e943) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "galaxni.1h", 0x0000, 0x0800, CRC(1b13ca05) SHA1(6999068771dacc6bf6c17eb858af593a929d09af) )
+ ROM_LOAD( "galaxni.1k", 0x0800, 0x0800, CRC(5cd7df03) SHA1(77873408c89546a17b1da3f64b7e96e314fadb17) )
+
+ ROM_REGION( 0x0020, "proms", 0 )
+ ROM_LOAD( "6l.bpr", 0x0000, 0x0020, CRC(c3ac9467) SHA1(f382ad5a34d282056c78a5ec00c30ec43772bae2) )
+ROM_END
+#endif
+
+/* From CloneMAME 0.111 */
+ROM_START( galaxni )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "galaxni.u", 0x0000, 0x0800, CRC(0701fcff) SHA1(b4fbc864fb9d95af63c32427779aad05934d95d0) )
+ ROM_LOAD( "galaxni.v", 0x0800, 0x0800, CRC(cb1136d8) SHA1(7be8c50bbd1b891ca7ded597e55b481efa6ac9d5) )
+ ROM_LOAD( "galaxni.w", 0x1000, 0x0800, CRC(f45ef2c7) SHA1(6b50383d98360afee8137a94c4c91d4d10db9221) )
+ ROM_LOAD( "galaxni.y", 0x1800, 0x0800, CRC(3f5c8a62) SHA1(7bde7f712c2cb97d40467062390097707b2896ae) )
+ ROM_LOAD( "galaxni.z", 0x2000, 0x0800, CRC(2d897370) SHA1(21c108712e7c00bd0f30d1fdddfaa71eed84158c) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "galaxni.1h", 0x0000, 0x0800, CRC(6c14fa93) SHA1(0ac55adee875fde0488b4376c4ca5e0047d09fbf) )
+ ROM_LOAD( "galaxni.1k", 0x0800, 0x0800, CRC(2bd0ef95) SHA1(a17edda8940bca02820e270a3ec9e38666343b26) )
+
+ ROM_REGION( 0x0020, "proms", 0 )
+ ROM_LOAD( "galaxni.clr", 0x0000, 0x0020, CRC(5aa5c5dd) SHA1(be74103889248f24123d1df553da02586681835e) )
+ROM_END
+
+
+ROM_START( buglaxn )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "galmidw.u", 0x0000, 0x0800, CRC(745e2d61) SHA1(e65f74e35b1bfaccd407e168ea55678ae9b68edf) )
+ ROM_LOAD( "galmidw.v", 0x0800, 0x0800, CRC(9c999a40) SHA1(02fdcd95d8511e64c0d2b007b874112d53e41045) )
+ ROM_LOAD( "galmidw.w", 0x1000, 0x0800, CRC(b5894925) SHA1(0046b9ed697a34d088de1aead8bd7cbe526a2396) )
+ ROM_LOAD( "galmidw.y", 0x1800, 0x0800, CRC(6b3ca10b) SHA1(18d8714e5ef52f63ba8888ecc5a25b17b3bf17d1) )
+ ROM_LOAD( "galmidw.z", 0x2000, 0x0800, CRC(cb24f797) SHA1(e6bb977ded0654c2c7388aad188059e1e0647908) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "buglaxn.1j", 0x0000, 0x0800, CRC(b8d46e4b) SHA1(5fbf130912029fbe2aea5282b2201c6a17eae40b) )
+ ROM_LOAD( "buglaxn.1k", 0x0800, 0x0800, CRC(a00bde50) SHA1(c6519af48d2cf0a641b2f5aa327c3591f3184dbc) )
+
+ ROM_REGION( 0x0020, "proms", 0 )
+ ROM_LOAD( "6l.bpr", 0x0000, 0x0020, CRC(c3ac9467) SHA1(f382ad5a34d282056c78a5ec00c30ec43772bae2) )
+ROM_END
+
+/* This is a combination of 2 EMMA dumps. E48 contained all roms except for "y" - even though the web page said
+ it was there. E423 contained all roms except the prom, because this board had been hacked to work without it.
+
+ The prom is the same except that the last 2 bytes are zeroed. This causes the explosions to be mostly missing,
+ and since the last byte also controls the colour of the floating scores, these are blanked. */
+
+ROM_START( galaxiab )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "galaxiab.u", 0x0000, 0x0800, CRC(63e6d8ab) SHA1(ec2ade4d93903ba99bc9565b68328bd7d0830eac) )
+ ROM_LOAD( "galaxiab.v", 0x0800, 0x0800, CRC(f58283e3) SHA1(edc6e72516c50fd3402281d9936574d276581ce9) )
+ ROM_LOAD( "galaxiab.w", 0x1000, 0x0800, CRC(4c7031c0) SHA1(97f7ab0cedcd8eba1c8f6f516d84d672a2108258) )
+ ROM_LOAD( "galaxiab.y", 0x1800, 0x0800, CRC(faa0bd8c) SHA1(30dd130298609632212b34874a0819340b1c8037) )
+ ROM_LOAD( "galaxiab.z", 0x2000, 0x0800, CRC(5766c95b) SHA1(cf6c226df0cc9d088b04ade43d6db87d278f8b09) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "galaxiab.1h", 0x0000, 0x0800, CRC(977e37cf) SHA1(88ff1e4edadf5cfc83413a1fe999aecf4ba72232) )
+ ROM_LOAD( "galaxiab.1k", 0x0800, 0x0800, CRC(bc7d0985) SHA1(550a44c9ddc8da66a29405591a590f91d2675cdf) )
+
+ ROM_REGION( 0x0020, "proms", 0 )
+ ROM_LOAD( "galaxiab.6l", 0x0000, 0x0020, CRC(feea6525) SHA1(cdb207776f51411ed4e9536babff6050488d2808) )
+ ROM_FILL( 31,1,7 ) /* patch so floating scores can be seen, and explosions look better */
+ROM_END
+
+ROM_START( galaxkyo )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "galxk.u", 0x0000, 0x0800, CRC(acfde501) SHA1(4b72c1ffecaccadc541da2367f3ef70a2a9aed64) )
+ ROM_LOAD( "galxk.v", 0x0800, 0x0800, CRC(65cf3c77) SHA1(1c5249815816b395e1e04bf6a7dbb63e40faa0e3) )
+ ROM_LOAD( "galxk.w", 0x1000, 0x0800, CRC(9eef9ae6) SHA1(b2282e4edb8911e6aabfa936c3526f90381e1320) )
+ ROM_LOAD( "galxk.y", 0x1800, 0x0800, CRC(56a5ddd1) SHA1(1f87f647ebdffba28d5957f195448f6bce17f4d5) )
+ ROM_LOAD( "galxk.z", 0x2000, 0x0800, CRC(f4bc7262) SHA1(c4b70e474d49f45cec96f7c250bd77e01e18601a) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "galxk.1h", 0x0000, 0x0800, CRC(66a4335d) SHA1(0527a9ea99e525b3ba25c172034a61cde9307a9b) )
+ ROM_LOAD( "galxk.1k", 0x0800, 0x0800, CRC(2160265b) SHA1(97385e9c8012bc7fe85e29cfccefda72e4ca3320) )
+
+ ROM_REGION( 0x0020, "proms", 0 )
+ ROM_LOAD( "6l.bpr", 0x0000, 0x0020, CRC(c3ac9467) SHA1(f382ad5a34d282056c78a5ec00c30ec43772bae2) )
+ROM_END
+
+ROM_START( galinvad )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "galnamco.7f", 0x0000, 0x1000, CRC(b10533fd) SHA1(ea8653e80000d607cd37a41f2de27ffe6e190f0f) )
+ ROM_LOAD( "galnamco.7j", 0x1000, 0x1000, CRC(9163454d) SHA1(683ce43c0e24fd5110b860e424e5de30d59e5223) )
+ ROM_LOAD( "galnamco.7l", 0x2000, 0x1000, CRC(952c6135) SHA1(e0989d5dce37ae421c34833d48b09e76d178680d) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "galinv.1h", 0x0000, 0x0800, CRC(d3d42377) SHA1(4eae6b2b20cfb6841d679006f394c7081f8f426f) )
+ ROM_LOAD( "galinv.1k", 0x0800, 0x0800, CRC(7e515c84) SHA1(e15ff199f1db55e9abb30c403fc667a4e7143b4f) )
+
+ ROM_REGION( 0x0020, "proms", 0 )
+ ROM_LOAD( "6l.bpr", 0x0000, 0x0020, CRC(c3ac9467) SHA1(f382ad5a34d282056c78a5ec00c30ec43772bae2) )
+ROM_END
+
+ROM_START( galnamco )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "galnamco.7f", 0x0000, 0x1000, CRC(b10533fd) SHA1(ea8653e80000d607cd37a41f2de27ffe6e190f0f) )
+ ROM_LOAD( "galnamco.7j", 0x1000, 0x1000, CRC(9163454d) SHA1(683ce43c0e24fd5110b860e424e5de30d59e5223) )
+ ROM_LOAD( "galnamco.7l", 0x2000, 0x1000, CRC(952c6135) SHA1(e0989d5dce37ae421c34833d48b09e76d178680d) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "1h.bin", 0x0000, 0x0800, CRC(39fb43a4) SHA1(4755609bd974976f04855d51e08ec0d62ab4bc07) )
+ ROM_LOAD( "1k.bin", 0x0800, 0x0800, CRC(7e3f56a2) SHA1(a9795d8b7388f404f3b0e2c6ce15d713a4c5bafa) )
+
+ ROM_REGION( 0x0020, "proms", 0 )
+ ROM_LOAD( "6l.bpr", 0x0000, 0x0020, CRC(c3ac9467) SHA1(f382ad5a34d282056c78a5ec00c30ec43772bae2) )
+ROM_END
+
+ROM_START( gaylaxn )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "galx.u", 0x0000, 0x0800, CRC(79e4007d) SHA1(d55050498a670d1c022ba3caad34f8fcaccf4a30) )
+ ROM_LOAD( "galx.v", 0x0800, 0x0800, CRC(bc16064e) SHA1(4e3220fd63c8184bf9581a89dffb6944d8fae3bb) )
+ ROM_LOAD( "galx.w", 0x1000, 0x0800, CRC(72d2d3ee) SHA1(96e0c5824e46d7398c7e58dd6b75a9f4ead6f3f5) )
+ ROM_LOAD( "galx.y", 0x1800, 0x0800, CRC(afe397f3) SHA1(283c6f3b3f07581d88f7a6e11fc36947a9d90e2e) )
+ ROM_LOAD( "galx.z", 0x2000, 0x0800, CRC(778c0d3c) SHA1(6a81875abfea515d379c6212cb57f8e54573e943) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "galxn.1h", 0x0000, 0x0800, CRC(ce77d89b) SHA1(17de678c91e96bf3dc414cc2ad8631a8f617da3d) )
+ ROM_LOAD( "galxn.1k", 0x0800, 0x0800, CRC(08008d2c) SHA1(6600dbc42e5076f9ce3abe677134bf1677ae70ea) )
+
+ ROM_REGION( 0x0020, "proms", 0 )
+ ROM_LOAD( "6l.bpr", 0x0000, 0x0020, CRC(c3ac9467) SHA1(f382ad5a34d282056c78a5ec00c30ec43772bae2) )
+ROM_END
+
+ROM_START( gmunch )
+ /* There was gmunch and gmunch2, using same roms, different proms. But colours are completely wrong in either case
+ Both games have now been removed (replaced by ghostmun) */
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pac1.bin", 0x0000, 0x1000, CRC(19338c70) SHA1(cc2665b7d534d324627d12025ee099ff415d4214) )
+ ROM_LOAD( "pac2.bin", 0x1000, 0x1000, CRC(18db074d) SHA1(a70ed18f632e947493e648e6fc057dfb7a2a3322) )
+ ROM_LOAD( "pac3.bin", 0x2000, 0x1000, CRC(abb98b1d) SHA1(bb0109d353359bb192a3e6856a857c2f842838cb) )
+ ROM_LOAD( "pac4.bin", 0x3000, 0x1000, CRC(2403c78e) SHA1(52d8c8a4efcf47871485080ab217098a019e6579) )
+ /* this rom isn't loaded into rom space so what is it for? */
+ ROM_LOAD( "pac7.bin", 0x5000, 0x1000, CRC(6566c07b) SHA1(8047350e5f6a39d34dfc9242fa0747db9819fe99) )
+
+ ROM_REGION( 0x3000, "gfx1" , 0 )
+ ROM_LOAD( "pac5.bin", 0x0000, 0x1000, CRC(a5965fa6) SHA1(c746f90b4c4620ef6190f9ae85d5036bda3b81ae) )
+ ROM_LOAD( "pac8.bin", 0x1000, 0x1000, CRC(0491a967) SHA1(868f7c7efdbe40c8e0977557bc2cedefb9a3ea81) )
+ /* this rom contains gfx from uniwars and mame doesn't process it */
+ ROM_LOAD( "pac6.bin", 0x2000, 0x1000, CRC(2145e7ea) SHA1(a2e3a54fa25b030d72431f42e12783db08e95e2e) )
+
+ ROM_REGION( 0x0020, "proms", 0 )
+ ROM_LOAD( "sk.bpr", 0x0000, 0x0020, CRC(bce79607) SHA1(49d60fde149240bcd025f721b0fbbbdbc549a42f) ) /* gmunch */
+ ROM_LOAD( "6l.bpr", 0x0000, 0x0020, CRC(c3ac9467) SHA1(f382ad5a34d282056c78a5ec00c30ec43772bae2) ) /* gmunch2 */
+ROM_END
+
+ROM_START( mooncmst )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "mc1", 0x0000, 0x0800, CRC(7d954a7a) SHA1(a93ee403cfd7887538ad12d33f6dd6c71bea2a32) )
+ ROM_LOAD( "mc2", 0x0800, 0x0800, CRC(44bb7cfa) SHA1(349c2e23a9fce73f95bb8168d369082fa129fe3d) )
+ ROM_LOAD( "mc3", 0x1000, 0x0800, CRC(9c412104) SHA1(1b40054ebb1ace965a8522119bb23f09797bc5f6) )
+ ROM_LOAD( "mc4", 0x1800, 0x0800, CRC(7e9b1ab5) SHA1(435f603c0c3e788a509dd144a7916a34e791ae44) )
+ ROM_LOAD( "mc5.7r", 0x2000, 0x0800, CRC(16c759af) SHA1(3b48050411f65f9d3fb41ff22901e22d82bf1cf6) )
+ ROM_LOAD( "mc6.8d", 0x2800, 0x0800, CRC(69bcafdb) SHA1(939c8c6ed1cd4660a3d99b8f17ed99cbd7e1352a) )
+ ROM_LOAD( "mc7.8e", 0x3000, 0x0800, CRC(b50dbc46) SHA1(4fa084fd1ba5f78e7703e684c57af15ca7a844e4) )
+ ROM_LOAD( "mc8", 0x3800, 0x0800, CRC(18ca312b) SHA1(39219059003b949e38305553fea2d33071062c64) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "mmcs_b", 0x0000, 0x0800, CRC(94d69a79) SHA1(d984ce68046244589e94cb526dc2fa11a85077d9) )
+ ROM_LOAD( "mmcs_d", 0x0800, 0x0800, CRC(44a6c84a) SHA1(464dc9a11fdf3015ce9d4735c27c1d6eab51cecb) )
+ ROM_LOAD( "mmcs_a", 0x1000, 0x0800, CRC(d8c9713c) SHA1(13f514bed011bb7f420e99bd9caeca0f2a1012ff) )
+ ROM_LOAD( "mmcs_c", 0x1800, 0x0800, CRC(50e37124) SHA1(ae07715733e864eadc3b4586c3e9f1852a4cf127) )
+
+ ROM_REGION( 0x0020, "proms", 0 )
+ ROM_LOAD( "mmi6331.6l", 0x0000, 0x0020, CRC(6a0c7d87) SHA1(140335d85c67c75b65689d4e76d29863c209cf32) )
+ROM_END
+
+
+/* E78 - The dump was missing one rom (position "fake" below), I found that the equivalent code from fantazia
+ works perfectly well. The rom still fails the checksum test, which is why the test is patched. So
+ take note: It is a FAKE rom!!!
+
+ The colour prom supplied produced terrible colours, with most enemies barely visible. Substituting
+ the normal mooncrst prom fixes all the problems. */
+
+ROM_START( mooncrs5 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "mooncrs5.7k", 0x0000, 0x1000, CRC(d62875a5) SHA1(2e162bf559a72acb5d23434497a9377a302b0440) )
+ ROM_LOAD( "mooncrs5.7j", 0x1000, 0x1000, CRC(1683e74c) SHA1(5887ddeed7d3399e93bc3146f54c23e9f8893866) )
+ ROM_LOAD( "mooncrs5.7h", 0x2000, 0x1000, CRC(46921e92) SHA1(7a3cec261a9e0baf969bd356a0766b4b266eaa39) )
+ ROM_LOAD( "mooncrs5.7a", 0x3000, 0x0400, CRC(5318be0c) SHA1(cca73501da8783e47f3f3c7d8a795011d5fd91a3) )
+ ROM_LOAD( "mooncrs5.7b", 0x3400, 0x0400, CRC(aed8acb2) SHA1(a2429daba96e6c064f4bc65cab2df6b15a43bf44) )
+ ROM_LOAD( "mooncrs5.fake", 0x3800, 0x0400, CRC(76db94a5) SHA1(f7d9c81d5e09f7e42258caf265606b1ba32439dd) ) /* fake rom */
+ ROM_LOAD( "mooncrs5.7d", 0x3c00, 0x0400, CRC(db0528cf) SHA1(be06b78d890e07fcbbfd6931d1a59ab0fb8b7a53) )
+ ROM_FILL(0x3FF4,1,0x2c ) /* patch unused byte so checksum test can be passed */
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "mooncrs5.1h", 0x0800, 0x0800, CRC(60d783bc) SHA1(584a0600ef1c47fb8bce86f738af7691fdf91c9c) )
+ ROM_CONTINUE( 0x0000, 0x0800 )
+ ROM_LOAD( "mooncrs5.1k", 0x1800, 0x0800, CRC(bc25be88) SHA1(0e698a1e573f28e8aad07e79c11f38519d93286c) )
+ ROM_CONTINUE( 0x1000, 0x0800 )
+
+ ROM_REGION( 0x0020, "proms", 0 )
+// ROM_LOAD( "6l.bpr", 0x0000, 0x0020, CRC(c3ac9467) SHA1(f382ad5a34d282056c78a5ec00c30ec43772bae2) )
+ ROM_LOAD( "mmi6331.6l", 0x0000, 0x0020, CRC(6a0c7d87) SHA1(140335d85c67c75b65689d4e76d29863c209cf32) )
+ROM_END
+
+// Mr. Do. Nightmare
+ROM_START( mrdonm )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "mrdonm.u", 0x0000, 0x0800, CRC(197493a6) SHA1(f939fd712985db24dced4f7a66f4a804ca34ce60) )
+ ROM_LOAD( "mrdonm.v", 0x0800, 0x0800, CRC(b8ee84cf) SHA1(c5018f21da2f65fa573a2d5e9c8f96db1f0136e9) )
+ ROM_LOAD( "mrdonm.w", 0x1000, 0x0800, CRC(76879d31) SHA1(7aae5ee1eeaa5dacf4a232b3336f9e3df74018ca) )
+ ROM_LOAD( "mrdonm.y", 0x1800, 0x0800, CRC(d6d5e47e) SHA1(e5f41f90ca357f3e7ef1a6b055ca0cccc91ed391) )
+ ROM_LOAD( "mrdonm.z", 0x2000, 0x0800, CRC(34913886) SHA1(c1936ef6dc6080d080715d1c064513d581180fea) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "mrdonm.1h", 0x0000, 0x0800, CRC(f880af4b) SHA1(67d24ac48a6bd68de5b914675dc4cd5982d8ffc4) )
+ ROM_LOAD( "mrdonm.1k", 0x0800, 0x0800, CRC(40fd608a) SHA1(3a58d5ac17e98bea3d58d238d81bd6a5dd24bb81) )
+
+ ROM_REGION( 0x0020, "proms", 0 )
+ ROM_LOAD( "mrdonm.6l", 0x0000, 0x0020, CRC(77f95861) SHA1(2acb3021e31b3c91bbf48763d2504dfad0d87f38) )
+ROM_END
+
+
+/* StarFighter II - This set came with a1,a2,b2,c1,e2 only. The rest I've used from Pisces */
+ROM_START( starfgh2 )
+ ROM_REGION( 0x4000, "maincpu", 0 )
+ ROM_LOAD( "a1.bin", 0x0000, 0x0800, CRC(0d496c93) SHA1(c0f9a20d01a11045f6ad8a6c9c3980a52ba16495) )
+ ROM_LOAD( "a2.bin", 0x0800, 0x0800, CRC(4f0676eb) SHA1(7b4a230c723959261cb240fce52d378a01740942) )
+ ROM_LOAD( "b2.bin", 0x1000, 0x0800, CRC(1496a894) SHA1(d010cd02b1ffe351ef1abdd424cdefca44ea6b29) )
+ ROM_LOAD( "c1.bin", 0x1800, 0x0800, CRC(59820900) SHA1(d42b99573a44f76620d75647c1c253a869e9a403) )
+ ROM_LOAD( "p5.bin", 0x2000, 0x0800, CRC(fade512b) SHA1(ccef2650f1d9dc3fdde2d441774246d47febc2cc) )
+ ROM_LOAD( "e2.bin", 0x2800, 0x0800, CRC(153316b8) SHA1(c7de0c0f65723d3699e68f3b8b76cd1d69dbd0f3) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "g09.bin", 0x0000, 0x0800, CRC(9503a23a) SHA1(23848de56841dd1de9ef74d5a9c981c784098175) )
+ ROM_LOAD( "g11.bin", 0x0800, 0x0800, CRC(0adfc3fe) SHA1(a4da488632d9906066db45ae62747caf5ffbf2d8) )
+ ROM_LOAD( "g10.bin", 0x1000, 0x0800, CRC(3e61f849) SHA1(efa0059bc843af0c3bb94f4bc0a8286ca5069179) )
+ ROM_LOAD( "g12.bin", 0x1800, 0x0800, CRC(7130e9eb) SHA1(e6bb7a9b4f2fc001296e1060d0671b7a88599c8b) )
+
+ ROM_REGION( 0x0020, "proms", 0 )
+ ROM_LOAD( "colour.bin", 0x0000, 0x0020, CRC(57a45057) SHA1(d4ec6a54f72640e5b485aa59e206c090e67ff640) )
+ROM_END
+
+ROM_START( vectrgal )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "galnamco.7f", 0x0000, 0x1000, CRC(b10533fd) SHA1(ea8653e80000d607cd37a41f2de27ffe6e190f0f) )
+ ROM_LOAD( "galnamco.7j", 0x1000, 0x1000, CRC(9163454d) SHA1(683ce43c0e24fd5110b860e424e5de30d59e5223) )
+ ROM_LOAD( "galnamco.7l", 0x2000, 0x1000, CRC(952c6135) SHA1(e0989d5dce37ae421c34833d48b09e76d178680d) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "vecgal.1h", 0x0000, 0x0800, CRC(02815aec) SHA1(94975ee5eff84a3ae483dd3d5766384859402477) )
+ ROM_LOAD( "vecgal.1k", 0x0800, 0x0800, CRC(11c9898c) SHA1(fb6bac221b3984a70a775bccf06f6e2f17d447cf) )
+
+ ROM_REGION( 0x0020, "proms", 0 )
+ ROM_LOAD( "6l.bpr", 0x0000, 0x0020, CRC(c3ac9467) SHA1(f382ad5a34d282056c78a5ec00c30ec43772bae2) )
+ROM_END
+
+ROM_START( fourplay )
+ ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k for code & 64k for banked code */
+ ROM_LOAD( "fourplay.bin", 0x10000, 0x10000, CRC(b42b2c2c) SHA1(f3b6f136b39e7a6adadecb9acf906fcfe649f398) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "graph1.bin", 0x0000, 0x1000, CRC(359c0c1f) SHA1(9e39baae4ab5763db236d0a49a6665d2e69cba11) )
+ ROM_LOAD( "graph2.bin", 0x1000, 0x1000, CRC(b22a51c9) SHA1(cccfbab0c92dba81e3451de72d1f1899226e30e2) )
+
+ ROM_REGION( 0x0020, "proms", 0 )
+ ROM_LOAD( "6l.bpr", 0x0000, 0x0020, CRC(c3ac9467) SHA1(f382ad5a34d282056c78a5ec00c30ec43772bae2) )
+ROM_END
+
+ROM_START( videight )
+ ROM_REGION( 0x30000, "maincpu", 0 )
+ ROM_LOAD( "videight.bin", 0x10000, 0x20000, CRC(0601db09) SHA1(0c9cd1afb0034946261219bf42b2f9b1ed5bdb17) )
+
+ ROM_REGION( 0x10000, "gfx1", 0 )
+ ROM_LOAD( "v8g1.bin", 0x0000, 0x8000, CRC(af771e33) SHA1(cdc960c5f548e19da4eabdaf8b789ca8ffb6a29f) )
+ ROM_LOAD( "v8g2.bin", 0x8000, 0x8000, CRC(776c34e6) SHA1(de70a29f73469a58ab15acb95aaad1efeb4de08d) )
+
+ ROM_REGION( 0x0100, "proms", 0 )
+ ROM_LOAD( "v8c.bin", 0x0000, 0x0100, CRC(b35a6ca8) SHA1(d9195215bf2482a1b02a019bb708a9981eb0bdf8) )
+ROM_END
+
+ROM_START( offender )
+ ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */
+ ROM_LOAD( "off-2d", 0x0000, 0x0800, CRC(bb09d91e) SHA1(f47cd3fd91fc569c7a9bb6e485a3281b92656b7f) )
+ ROM_LOAD( "2e", 0x0800, 0x0800, CRC(e9b4b9eb) SHA1(a8ee9ddfadf5e9accedfaf81da757a88a2e55a0a) )
+ ROM_LOAD( "2f", 0x1000, 0x0800, CRC(a1f14f4c) SHA1(3eae2b3e4596505a8afb5c5cfb108e823c2c4319) )
+ ROM_LOAD( "2h", 0x1800, 0x0800, CRC(591bc0d9) SHA1(170f9e92f0a3bee04407be27210b4fa825367688) )
+ ROM_LOAD( "2j", 0x2000, 0x0800, CRC(22f11b6b) SHA1(e426ef6a7444a39a34d59799973b07d11b89f372) )
+ ROM_LOAD( "2l", 0x2800, 0x0800, CRC(705ffe49) SHA1(174df3f281068c767344f751daace646360e26d6) )
+ ROM_LOAD( "2m", 0x3000, 0x0800, CRC(ea26c35c) SHA1(a2f3380982d93a022f46756f974fd16c4cd617de) )
+ ROM_LOAD( "2p", 0x3800, 0x0800, CRC(94d8f5e3) SHA1(f3a9c4d1d91836476fcad87ea0d243dde7171e0a) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the audio CPU */
+ ROM_LOAD( "ot1.5c", 0x0000, 0x0800, CRC(bcd297f0) SHA1(8ed78487d76fd0a917ab7b258937a46e2cd9800c) )
+ ROM_LOAD( "ot2.5d", 0x0800, 0x0800, CRC(de7912da) SHA1(8558b4eff5d7e63029b325edef9914feda5834c3) )
+ ROM_LOAD( "ot3.5e", 0x1000, 0x0800, CRC(ba2fa933) SHA1(1f976d8595706730e29f93027e7ab4620075c078) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "off-5f", 0x0000, 0x0800, CRC(7015a2e1) SHA1(19bb4cb26c8b91cd79368e4ed48065df6fd6577e) )
+ ROM_LOAD( "off-5h", 0x0800, 0x0800, CRC(a36ac0fa) SHA1(b58412536833ab5ea705e919562b7b495ff3dff4) )
+
+ ROM_REGION( 0x0020, "proms", 0 )
+ ROM_LOAD( "c01s.6e", 0x0000, 0x0020, CRC(4e3caeab) SHA1(a25083c3e36d28afdefe4af6e6d4f3155e303625) )
+ROM_END
+
+ROM_START( superdog )
+ ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */
+ ROM_LOAD( "sdog-2d", 0x0000, 0x0800, CRC(99dc8bb5) SHA1(a7f533471df4482f67be0ed969e559f483fb147a) )
+ ROM_LOAD( "2e", 0x0800, 0x0800, CRC(e9b4b9eb) SHA1(a8ee9ddfadf5e9accedfaf81da757a88a2e55a0a) )
+ ROM_LOAD( "2f", 0x1000, 0x0800, CRC(a1f14f4c) SHA1(3eae2b3e4596505a8afb5c5cfb108e823c2c4319) )
+ ROM_LOAD( "2h", 0x1800, 0x0800, CRC(591bc0d9) SHA1(170f9e92f0a3bee04407be27210b4fa825367688) )
+ ROM_LOAD( "2j", 0x2000, 0x0800, CRC(22f11b6b) SHA1(e426ef6a7444a39a34d59799973b07d11b89f372) )
+ ROM_LOAD( "2l", 0x2800, 0x0800, CRC(705ffe49) SHA1(174df3f281068c767344f751daace646360e26d6) )
+ ROM_LOAD( "2m", 0x3000, 0x0800, CRC(ea26c35c) SHA1(a2f3380982d93a022f46756f974fd16c4cd617de) )
+ ROM_LOAD( "2p", 0x3800, 0x0800, CRC(94d8f5e3) SHA1(f3a9c4d1d91836476fcad87ea0d243dde7171e0a) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the audio CPU */
+ ROM_LOAD( "ot1.5c", 0x0000, 0x0800, CRC(bcd297f0) SHA1(8ed78487d76fd0a917ab7b258937a46e2cd9800c) )
+ ROM_LOAD( "ot2.5d", 0x0800, 0x0800, CRC(de7912da) SHA1(8558b4eff5d7e63029b325edef9914feda5834c3) )
+ ROM_LOAD( "ot3.5e", 0x1000, 0x0800, CRC(ba2fa933) SHA1(1f976d8595706730e29f93027e7ab4620075c078) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "sdog-5f", 0x0000, 0x0800, CRC(7edbc59c) SHA1(53c9a7f46a968b2f804243f661479918870756b5) )
+ ROM_LOAD( "sdog-5h", 0x0800, 0x0800, CRC(5b130bea) SHA1(269df1344414c0d517084a32a348a856c25d499c) )
+
+ ROM_REGION( 0x0020, "proms", 0 )
+ ROM_LOAD( "c01s.6e", 0x0000, 0x0020, CRC(4e3caeab) SHA1(a25083c3e36d28afdefe4af6e6d4f3155e303625) )
+ROM_END
+
+ROM_START( amidarf )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "amidar.2c", 0x0000, 0x1000, CRC(c294bf27) SHA1(399325bf1559e8cdbddf7cfbf0dc739f9ed72ef0) )
+ ROM_LOAD( "amidar.2e", 0x1000, 0x1000, CRC(e6e96826) SHA1(e9c4f8c594640424b456505e676352a98b758c03) )
+ ROM_LOAD( "amidarf.2f", 0x2000, 0x1000, CRC(45b24635) SHA1(0a6b004803e67ed536b3213cc58ae976e4dc24be) )
+ ROM_LOAD( "amidar.2h", 0x3000, 0x1000, CRC(1be170bd) SHA1(c047bc393b297c0d47668a5f6f4870e3fac937ef) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "amidar.5c", 0x0000, 0x1000, CRC(c4b66ae4) SHA1(9d09dbde4019f7be3abe0815b0e06d542c01c255) )
+ ROM_LOAD( "amidar.5d", 0x1000, 0x1000, CRC(806785af) SHA1(c8c85e3a6a204feccd7859b4527bd649e96134b4) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "amidar.5f", 0x0000, 0x0800, CRC(5e51e84d) SHA1(dfe84db7e2b1a45a1d484fcf37291f536bc5324c) )
+ ROM_LOAD( "amidar.5h", 0x0800, 0x0800, CRC(2f7f1c30) SHA1(83c330eca20dfcc6a4099001943b9ed7a7c3db5b) )
+
+ ROM_REGION( 0x0020, "proms", 0 )
+ ROM_LOAD( "amidar.clr", 0x0000, 0x0020, CRC(f940dcc3) SHA1(1015e56f37c244a850a8f4bf0e36668f047fd46d) )
+ROM_END
+
+ROM_START( amidargr )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "amidarg.2c", 0x0000, 0x1000, CRC(e9822709) SHA1(ce7c76607a512b9b092a8bf83bdf6744a92a519a) )
+ ROM_LOAD( "amidar.2e", 0x1000, 0x1000, CRC(e6e96826) SHA1(e9c4f8c594640424b456505e676352a98b758c03) )
+ ROM_LOAD( "amidarg.2f", 0x2000, 0x1000, CRC(fd81b040) SHA1(f710cb192a50514f55b4aec859fd9c298b0b90f8) )
+ ROM_LOAD( "amidar.2h", 0x3000, 0x1000, CRC(1be170bd) SHA1(c047bc393b297c0d47668a5f6f4870e3fac937ef) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "amidar.5c", 0x0000, 0x1000, CRC(c4b66ae4) SHA1(9d09dbde4019f7be3abe0815b0e06d542c01c255) )
+ ROM_LOAD( "amidar.5d", 0x1000, 0x1000, CRC(806785af) SHA1(c8c85e3a6a204feccd7859b4527bd649e96134b4) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "amidar.5f", 0x0000, 0x0800, CRC(5e51e84d) SHA1(dfe84db7e2b1a45a1d484fcf37291f536bc5324c) )
+ ROM_LOAD( "amidarg.5h", 0x0800, 0x0800, CRC(141f8dbe) SHA1(3a627f5dd072909177f50920271f0d8ffb8a09c0) )
+
+ ROM_REGION( 0x0020, "proms", 0 )
+ ROM_LOAD( "amidar.clr", 0x0000, 0x0020, CRC(f940dcc3) SHA1(1015e56f37c244a850a8f4bf0e36668f047fd46d) )
+ROM_END
+
+#define rom_jumpbugx rom_jumpbug
+
+
+ROM_START( kazzy )
+ ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */
+ ROM_LOAD( "frogger.26", 0x0000, 0x1000, CRC(597696d6) SHA1(e7e021776cad00f095a1ebbef407b7c0a8f5d835) )
+ ROM_LOAD( "frogger.27", 0x1000, 0x1000, CRC(b6e6fcc3) SHA1(5e8692f2b0c7f4b3642b3ee6670e1c3b20029cdc) )
+ ROM_LOAD( "frsm3.7", 0x2000, 0x1000, CRC(aca22ae0) SHA1(5a99060ea2506a3ac7d61ca5876ce5cb3e493565) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the audio CPU */
+ ROM_LOAD( "frogger.608", 0x0000, 0x0800, CRC(e8ab0256) SHA1(f090afcfacf5f13cdfa0dfda8e3feb868c6ce8bc) )
+ ROM_LOAD( "frogger.609", 0x0800, 0x0800, CRC(7380a48f) SHA1(75582a94b696062cbdb66a4c5cf0bc0bb94f81ee) )
+ ROM_LOAD( "frogger.610", 0x1000, 0x0800, CRC(31d7eb27) SHA1(2e1d34ae4da385fd7cac94707d25eeddf4604e1a) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "kazzy.607", 0x0000, 0x0800, CRC(86f041e6) SHA1(61dd02bb2dda15d2f47ecc878a9dd6aa3118687d) )
+ ROM_LOAD( "kazzy.606", 0x0800, 0x0800, CRC(9ea43774) SHA1(d96eae151580f6ccef78049a73ec1fc5fa90aa63) )
+
+ ROM_REGION( 0x0020, "proms", 0 )
+ ROM_LOAD( "pr-91.6l", 0x0000, 0x0020, CRC(413703bf) SHA1(66648b2b28d3dcbda5bdb2605d1977428939dd3c) )
+ROM_END
+
+ROM_START( trukker )
+ ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */
+ ROM_LOAD( "frogger.ic5", 0x0000, 0x1000, CRC(efab0c79) SHA1(68c99b6cdcb9396bb473739a62ffc009b4bf57d5) )
+ ROM_LOAD( "frogger.ic6", 0x1000, 0x1000, CRC(aeca9c13) SHA1(cdf560adbd7f2813e86e378da7781cccf7928a44) )
+ ROM_LOAD( "frogger.ic7", 0x2000, 0x1000, CRC(dd251066) SHA1(4612e1fe1ab7182a277140b1a1976cc17e0746a5) )
+ ROM_LOAD( "frogger.ic8", 0x3000, 0x1000, CRC(bf293a02) SHA1(be94e9f5caa74c3de6fd95bd20928f4a9c514227) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the audio CPU */
+ ROM_LOAD( "frogger.608", 0x0000, 0x0800, CRC(e8ab0256) SHA1(f090afcfacf5f13cdfa0dfda8e3feb868c6ce8bc) )
+ ROM_LOAD( "frogger.609", 0x0800, 0x0800, CRC(7380a48f) SHA1(75582a94b696062cbdb66a4c5cf0bc0bb94f81ee) )
+ ROM_LOAD( "frogger.610", 0x1000, 0x0800, CRC(31d7eb27) SHA1(2e1d34ae4da385fd7cac94707d25eeddf4604e1a) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "trukker.606", 0x0000, 0x0800, CRC(f0c49466) SHA1(f88d02ada32a9f1e10004785d17659279fd1d651) )
+ ROM_LOAD( "trukker.607", 0x0800, 0x0800, CRC(6ab5c2eb) SHA1(d13fcd5669bd0f8f76505684ba5e788b395aeef1) )
+
+ ROM_REGION( 0x0020, "proms", 0 )
+ ROM_LOAD( "pr-91.6l", 0x0000, 0x0020, CRC(413703bf) SHA1(66648b2b28d3dcbda5bdb2605d1977428939dd3c) )
+ROM_END
+
+ROM_START( tst_frog )
+ ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */
+ ROM_LOAD( "frogtest.bin", 0x0000, 0x0226, CRC(1f5a7f35) SHA1(608ad6ac8c34aea66b13aac7e45c298a2083d642) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the audio CPU */
+ ROM_LOAD( "frogger.608", 0x0000, 0x0800, CRC(e8ab0256) SHA1(f090afcfacf5f13cdfa0dfda8e3feb868c6ce8bc) )
+ ROM_LOAD( "frogger.609", 0x0800, 0x0800, CRC(7380a48f) SHA1(75582a94b696062cbdb66a4c5cf0bc0bb94f81ee) )
+ ROM_LOAD( "frogger.610", 0x1000, 0x0800, CRC(31d7eb27) SHA1(2e1d34ae4da385fd7cac94707d25eeddf4604e1a) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "frogger.607", 0x0000, 0x0800, CRC(05f7d883) SHA1(78831fd287da18928651a8adb7e578d291493eff) )
+ ROM_LOAD( "frogger.606", 0x0800, 0x0800, CRC(f524ee30) SHA1(dd768967add61467baa08d5929001f157d6cd911) )
+
+ ROM_REGION( 0x0020, "proms", 0 )
+ ROM_LOAD( "pr-91.6l", 0x0000, 0x0020, CRC(413703bf) SHA1(66648b2b28d3dcbda5bdb2605d1977428939dd3c) )
+ROM_END
+
+/* Wriggly Beasties - bootleg of WarOfBug */
+ROM_START( wbeast )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "wbeast.7f", 0x0000, 0x1000, CRC(967e92ee) SHA1(319953fda4bedd447e95f93cd800fc036ce6a8e4) )
+ ROM_LOAD( "wbeast.7j", 0x1000, 0x1000, CRC(72c70fff) SHA1(e0e2cfafdce4d027f89a32542cdc2d724da9f6b0) )
+ ROM_LOAD( "wbeast.7l", 0x2000, 0x1000, CRC(2486d3a6) SHA1(93ac6178303bf65175b8b0b889c1dae11da46d0e) )
+
+ /* These 2 roms are overdumped */
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "wbeast.1h", 0x0000, 0x1000, CRC(623bb742) SHA1(081cc0cc2f3133338495e61a8e904448521c6c9a) )
+ ROM_LOAD( "wbeast.1k", 0x1000, 0x1000, CRC(c1b1143f) SHA1(72436840ff72f7f6341b11c43e25107ecb3ebb73) )
+
+ /* No prom supplied - using the one from warofbug */
+ ROM_REGION( 0x0020, "proms", 0 )
+ ROM_LOAD( "warofbug.clr", 0x0000, 0x0020, CRC(8688e64b) SHA1(ed13414257f580b98b50c9892a14159c55e7838d) )
+ROM_END
+
+/* This is sort of playable - no sound, wrong colours. Reboots after defeating the boss. */
+ROM_START( monstrz )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "b-1e.a1", 0x0000, 0x1000, CRC(97886542) SHA1(01f4f9bd55f9eae28162cbb22a26f7cda22cd3f3) )
+ ROM_LOAD( "b-2e.c1", 0x1000, 0x1000, CRC(184ffcb4) SHA1(829d6ca13773aba7c3a81e122171befbe3666110) )
+ ROM_LOAD( "b-3e.d1", 0x2000, 0x1000, CRC(b7b10ac7) SHA1(51d544d4db456df756a95d7f1853fffed9259647) )
+ ROM_LOAD( "b-4e.e1", 0x3000, 0x1000, CRC(fb02c736) SHA1(24466116dd07b856b1afff62b8312c67ff466b95) )
+ ROM_LOAD( "b-5e.g1", 0xc000, 0x1000, CRC(b2788ab9) SHA1(eb1a6b41f4c7a243481bfccf2b068ce1bc292366) )
+ ROM_LOAD( "b-6e.h1", 0xd000, 0x1000, CRC(77d7aa8d) SHA1(62aaf582ba55f7b21f6cf13b4fb6c2c54bb729f5) )
+ // protection
+ ROM_FILL(0xc5d8,1,0)
+ ROM_FILL(0xc5fc,1,0)
+ ROM_FILL(0xc624,1,0)
+ ROM_FILL(0xc63c,1,0)
+ // fill the protection ram with RET so we don't run into the weeds.
+ ROM_FILL(0x3800,0x800,0xc9)
+ // enable attract mode
+ ROM_FILL(0x3918, 1, 0xC5)
+ ROM_FILL(0x3919, 1, 0xE5)
+ ROM_FILL(0x391A, 1, 0xF5)
+ ROM_FILL(0x391B, 1, 0x21)
+ ROM_FILL(0x391C, 1, 0x10)
+ ROM_FILL(0x391D, 1, 0x41)
+ ROM_FILL(0x391E, 1, 0xAF)
+ ROM_FILL(0x391F, 1, 0x06)
+ ROM_FILL(0x3920, 1, 0x08)
+ ROM_FILL(0x3921, 1, 0xAE)
+ ROM_FILL(0x3922, 1, 0x23)
+ ROM_FILL(0x3923, 1, 0x10)
+ ROM_FILL(0x3924, 1, 0xFC)
+ ROM_FILL(0x3925, 1, 0xFE)
+ ROM_FILL(0x3926, 1, 0x40)
+ ROM_FILL(0x3927, 1, 0x20)
+ ROM_FILL(0x3928, 1, 0x03)
+ ROM_FILL(0x3929, 1, 0x32)
+ ROM_FILL(0x392A, 1, 0x12)
+ ROM_FILL(0x392B, 1, 0x41)
+ ROM_FILL(0x392C, 1, 0xF1)
+ ROM_FILL(0x392D, 1, 0xE1)
+ ROM_FILL(0x392E, 1, 0xC1)
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "a-1e.k1", 0x0000, 0x1000, CRC(b88ba44e) SHA1(85c141fb411d541b1e20412f5fefd18395f635ae) )
+ ROM_LOAD( "a-2.k2", 0x1000, 0x1000, CRC(8913c94e) SHA1(6c4fe065217a234d45761f8ad4d2c4e7078a0abd) )
+ ROM_LOAD( "a-3e.k3", 0x2000, 0x1000, CRC(a8fa5095) SHA1(5cabe5497a79a0c43e78a84ae87c824af60a2a3f) )
+ ROM_LOAD( "a-4.k4", 0x3000, 0x1000, CRC(93f81317) SHA1(167708be94cb9a47290067a20bc5ff6f018b93b6) )
+
+ ROM_REGION( 0x10000, "audio2", 0 )
+ ROM_LOAD( "a-5e.k5", 0x0000, 0x1000, CRC(b5bcdb4e) SHA1(db0965e5636e0f4e9cd4f4a7d808c413ecf733db) )
+ ROM_LOAD( "a-6.k6", 0x1000, 0x1000, CRC(24832b2e) SHA1(2a67888e86ce1a3182303e841513ba2a07977359) )
+ ROM_LOAD( "a-7e.k7", 0x2000, 0x1000, CRC(20ebea81) SHA1(473c688365b256d8593663ff95768f4a5bb1289d) )
+ // 0x3000 empty ?
+ ROM_LOAD( "a-8.k8", 0x4000, 0x1000, CRC(b833a15b) SHA1(0d21aaa0ca5ccba89118b205a6b3b36b15663c47) )
+ ROM_LOAD( "a-9.k9", 0x5000, 0x1000, CRC(cbd76ec2) SHA1(9434350ee93ca71efe78018b69913386353306ff) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "b-7e.a5", 0x0000, 0x1000, CRC(ddd4158d) SHA1(9701e2d8a0226455dfbed650e58bb4be05918fe8) )
+ ROM_LOAD( "b-8e.c5", 0x1000, 0x1000, CRC(b1331b4c) SHA1(fa1af406ecd6919b4846aea68d3edb70106f9273) )
+
+ ROM_REGION( 0x0020, "proms", 0 )
+ ROM_LOAD( "prom.g9", 0x0000, 0x0020, CRC(b7ea00d7) SHA1(f658c6ac8123ae1e6b68ae513cc02c4d9d2b4e47) )
+ROM_END
+
+
+/***************************************************************************
+
+ Game driver(s)
+
+***************************************************************************/
+
+
+// Year romname parent machine inputs init rot
+
+/* Frogger */
+GAME( 1981, kazzy, frogger, frogger, frogger, galaxian_state, frogger, ROT90, "Kazzy", "K-azzy", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, trukker, frogger, frogger, frogger, galaxian_state, trukker, ROT90, "Grimlick","Trukker", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, tst_frog, frogger, tst_frog, frogger, galaxian_state, frogger, ROT90, "msmcdoug", "Test Rom - Frogger Sound Test", MACHINE_SUPPORTS_SAVE )
+
+
+/* Amidar */
+GAME( 2007, amidarf, amidar, turtles, amidar, galaxian_state, turtles, ROT90, "Arkatrad", "Amidar (French)", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, amidargr, amidar, turtles, amidar, galaxian_state, turtles, ROT90, "GreekRoms", "Amidar (Greek)", MACHINE_SUPPORTS_SAVE )
+
+
+/* Scramble */
+GAME( 1998, offender, scramble, scramble, scramble, galaxian_state, scramble, ROT90, "Chris Henry", "Offender", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, superdog, scramble, scramble, scramble, galaxian_state, scramble, ROT90, "Jerky", "Superdog", MACHINE_SUPPORTS_SAVE )
+
+
+/* Galaxian */
+GAME( 1979, andromd, galnamco, galaxian, superg, galaxian_state, galaxian, ROT90, "hack", "Andromeda", MACHINE_SUPPORTS_SAVE)
+GAME( 1998, buglaxn, galnamco, galaxian, galaxian, galaxian_state, galaxian, ROT90, "The Dog", "Galaxian (Bug sprites)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, galaxiab, galnamco, galaxian, galaxiab, galaxian_state, galaxian, ROT90, "bootleg", "Galaxian", MACHINE_SUPPORTS_SAVE )
+GAME( 1979, galaxkyo, galnamco, galaxian, superg, galaxian_state, galaxian, ROT90, "hack", "Galaxian (Kyoko)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, galaxni, galnamco, galaxian, superg, galaxian_state, galaxian, ROT90, "Petaco S.A.", "Galaxian (New Invasion)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, galinvad, galnamco, galaxian, galaxian, galaxian_state, galaxian, ROT90, "T-Bone", "Galaxian (Space Invaders sprites)", MACHINE_SUPPORTS_SAVE )
+GAME( 1979, galnamco, 0, galaxian, galaxian, galaxian_state, galaxian, ROT90, "Namco", "Galaxians", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, gaylaxn, galnamco, galaxian, superg, galaxian_state, galaxian, ROT90, "The Dog", "Gaylaxian", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, mrdonm, 0, galaxian, mrdonm, galaxian_state, galaxian, ROT90, "Krazy Ivan", "Mr. Do Nightmare", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, vectrgal, galnamco, galaxian, galaxian, galaxian_state, galaxian, ROT90, "T-Bone", "Galaxian (Vector Sim)", MACHINE_SUPPORTS_SAVE )
+
+
+/* Moon Cresta */
+GAME( 2000, mooncmst, mooncrst, mooncrst, mooncrst, galaxian_state, mooncrst, ROT90, "Kazzy", "Moon Creamsta", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, mooncrs5, mooncrst, mooncrst, mooncrst, galaxian_state, mooncrsu, ROT90, "bootleg", "Moon Cresta", MACHINE_SUPPORTS_SAVE )
+
+
+/* Multigames */
+GAME( 2002, fourplay, 0, fourplay, galaxian, galaxian_state, fourplay, ROT90, "Macro", "Four Play", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, videight, 0, videight, warofbug, galaxian_state, videight, ROT90, "Macro", "Video Eight", MACHINE_SUPPORTS_SAVE )
+
+
+/* Other */
+GAME( 1981, jumpbugx, 0, jumpbugx, jumpbug, galaxian_state, jumpbug, ROT90, "Rock-ola", "Jump Bug (Extra Sounds)", MACHINE_SUPPORTS_SAVE )
+GAME( 1982, monstrz, 0, sfx, sfx, galaxian_state, sfx, ORIENTATION_FLIP_X, "Nihon Game Co", "Monster Zero", MACHINE_UNEMULATED_PROTECTION | MACHINE_NO_SOUND | MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE )
+GAME( 19??, starfgh2, pisces, galaxian, piscesb, galaxian_state, pisces, ROT90, "bootleg", "Starfighter II", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, wbeast, 0, galaxian, warofbug, galaxian_state, nolock, ROT90, "Compost", "Wriggly Beasties", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/gauntlet.cpp b/docs/release/src/hbmame/drivers/gauntlet.cpp
new file mode 100644
index 00000000000..477f38ef311
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/gauntlet.cpp
@@ -0,0 +1,139 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/gauntlet.cpp"
+
+
+// There's some unknown hacks here. Need info on who the author is, and what the difference is.
+
+
+ROM_START( gaunt2s )
+ ROM_REGION( 0x80000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "136037-1307.9a", 0x000000, 0x008000, CRC(46fe8743) SHA1(d5fa19e028a2f43658330c67c10e0c811d332780) )
+ ROM_LOAD16_BYTE( "136037-1308.9b", 0x000001, 0x008000, CRC(276e15c4) SHA1(7467b2ec21b1b4fcc18ff9387ce891495f4b064c) )
+ ROM_LOAD16_BYTE( "136043-1105.10a", 0x038000, 0x004000, CRC(45dfda47) SHA1(a9a03150f5a0ad6ce62c5cfdffb4a9f54340590c) )
+ ROM_LOAD16_BYTE( "136043-1106.10b", 0x038001, 0x004000, CRC(343c029c) SHA1(d2df4e5b036500dcc537a1e0025abb2a8c730bdd) )
+ ROM_LOAD16_BYTE( "gaunt2s-1109.7a", 0x040000, 0x008000, CRC(32c909b4) SHA1(53c62d7a6660ccff4302ae9b8edcbe2949013e5e) )
+ ROM_LOAD16_BYTE( "gaunt2s-1110.7b", 0x040001, 0x008000, CRC(a1a2ac12) SHA1(bd939cf97f8c4d52bedc475ee1ce00c226aee234) )
+ ROM_LOAD16_BYTE( "136043-1121.6a", 0x050000, 0x008000, CRC(ae301bba) SHA1(3d93236aaffe6ef692e5073b1828633e8abf0ce4) )
+ ROM_LOAD16_BYTE( "136043-1122.6b", 0x050001, 0x008000, CRC(e94aaa8a) SHA1(378c582c360440b808820bcd3be78ec6e8800c34) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "136043-1120.16r", 0x004000, 0x004000, CRC(5c731006) SHA1(045ad571db34ef870b1bf003e77eea403204f55b) )
+ ROM_LOAD( "136043-1119.16s", 0x008000, 0x008000, CRC(dc3591e7) SHA1(6d0d8493609974bd5a63be858b045fe4db35d8df) )
+
+ ROM_REGION( 0x04000, "gfx1", 0 )
+ ROM_LOAD( "136043-1104.6p", 0x000000, 0x002000, CRC(1343cf6f) SHA1(4a9542bc8ede305e7e8f860eb4b47ca2f3017275) )
+
+ ROM_REGION( 0x60000, "gfx2", ROMREGION_INVERT )
+ ROM_LOAD( "136043-1111.1a", 0x000000, 0x008000, CRC(09df6e23) SHA1(726984275c6a338c12ec0c4cc449f92f4a7a138c) )
+ ROM_LOAD( "136037-112.1b", 0x008000, 0x008000, CRC(869330be) SHA1(5dfaaf54ee2b3c0eaf35e8c17558313db9791616) )
+ ROM_LOAD( "136043-1123.1c", 0x010000, 0x004000, CRC(e4c98f01) SHA1(a24bece3196d13c38e4acdbf62783860253ba67d) )
+ ROM_RELOAD( 0x014000, 0x004000 )
+ ROM_LOAD( "136043-1113.1l", 0x018000, 0x008000, CRC(33cb476e) SHA1(e0757ee0120de2d38be44f8dc8702972c35b87b3) )
+ ROM_LOAD( "136037-114.1mn", 0x020000, 0x008000, CRC(29ef9882) SHA1(91e1465af6505b35cd97434c13d2b4d40a085946) )
+ ROM_LOAD( "136043-1124.1p", 0x028000, 0x004000, CRC(c4857879) SHA1(3b4ce96da0d178b4bc2d05b5b51b42c7ec461113) )
+ ROM_RELOAD( 0x02c000, 0x004000 )
+ ROM_LOAD( "136043-1115.2a", 0x030000, 0x008000, CRC(f71e2503) SHA1(244e108668eaef6b64c6ff733b08b9ee6b7a2d2b) )
+ ROM_LOAD( "136037-116.2b", 0x038000, 0x008000, CRC(11e0ac5b) SHA1(729b7561d59d94ef33874a134b97bcd37573dfa6) )
+ ROM_LOAD( "136043-1125.2c", 0x040000, 0x004000, CRC(d9c2c2d1) SHA1(185e38c75c06b6ca131a17ee3a46098279bfe17e) )
+ ROM_RELOAD( 0x044000, 0x004000 )
+ ROM_LOAD( "136043-1117.2l", 0x048000, 0x008000, CRC(9e30b2e9) SHA1(e9b513089eaf3bec269058b437fefe7075a3fd6f) )
+ ROM_LOAD( "136037-118.2mn", 0x050000, 0x008000, CRC(8bf3b263) SHA1(683d900ab7591ee661218be2406fb375a12e435c) )
+ ROM_LOAD( "136043-1126.2p", 0x058000, 0x004000, CRC(a32c732a) SHA1(abe801dff7bb3f2712e2189c2b91f172d941fccd) )
+ ROM_RELOAD( 0x05c000, 0x004000 )
+
+ ROM_REGION( 0x500, "proms", 0 )
+ ROM_LOAD( "74s472-136037-101.7u", 0x000, 0x200, CRC(2964f76f) SHA1(da966c35557ec1b95e1c39cd950c38a19bce2d67) ) /* MO timing */
+ ROM_LOAD( "74s472-136037-102.5l", 0x200, 0x200, CRC(4d4fec6c) SHA1(3541b5c6405ad5742a3121dfd6acb227933de25a) ) /* MO flip control */
+ ROM_LOAD( "74s287-136037-103.4r", 0x400, 0x100, CRC(6c5ccf08) SHA1(ff5dbadd85aa2e07b383a302fa399e875db8f84f) ) /* MO position/size */
+ROM_END
+
+ROM_START( gaunt2ls )
+ ROM_REGION( 0x80000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "136037-1307.9a", 0x000000, 0x008000, CRC(46fe8743) SHA1(d5fa19e028a2f43658330c67c10e0c811d332780) )
+ ROM_LOAD16_BYTE( "136037-1308.9b", 0x000001, 0x008000, CRC(276e15c4) SHA1(7467b2ec21b1b4fcc18ff9387ce891495f4b064c) )
+ ROM_LOAD16_BYTE( "136043-1105ls.10a", 0x038000, 0x004000, CRC(5426ab98) SHA1(7894b0ca989428819a9ed3e9a218eb466c167ecf) )
+ ROM_LOAD16_BYTE( "136043-1106ls.10b", 0x038001, 0x004000, CRC(b53cd674) SHA1(9dfd2b2e384c2e4d2640852a05c07765cc2f246a) )
+ ROM_LOAD16_BYTE( "136043-1109.7a", 0x040000, 0x008000, CRC(58a0a9a3) SHA1(7f51184840e3c96574836b8a00bfb4a7a5f508d0) )
+ ROM_LOAD16_BYTE( "136043-1110.7b", 0x040001, 0x008000, CRC(658f0da8) SHA1(dfce027ea50188659907be698aeb26f9d8bfab23) )
+ ROM_LOAD16_BYTE( "136043-1121.6a", 0x050000, 0x008000, CRC(ae301bba) SHA1(3d93236aaffe6ef692e5073b1828633e8abf0ce4) )
+ ROM_LOAD16_BYTE( "136043-1122.6b", 0x050001, 0x008000, CRC(e94aaa8a) SHA1(378c582c360440b808820bcd3be78ec6e8800c34) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "136043-1120.16r", 0x004000, 0x004000, CRC(5c731006) SHA1(045ad571db34ef870b1bf003e77eea403204f55b) )
+ ROM_LOAD( "136043-1119.16s", 0x008000, 0x008000, CRC(dc3591e7) SHA1(6d0d8493609974bd5a63be858b045fe4db35d8df) )
+
+ ROM_REGION( 0x04000, "gfx1", 0 )
+ ROM_LOAD( "136043-1104.6p", 0x000000, 0x002000, CRC(1343cf6f) SHA1(4a9542bc8ede305e7e8f860eb4b47ca2f3017275) )
+
+ ROM_REGION( 0x60000, "gfx2", ROMREGION_INVERT )
+ ROM_LOAD( "136043-1111.1a", 0x000000, 0x008000, CRC(09df6e23) SHA1(726984275c6a338c12ec0c4cc449f92f4a7a138c) )
+ ROM_LOAD( "136037-112.1b", 0x008000, 0x008000, CRC(869330be) SHA1(5dfaaf54ee2b3c0eaf35e8c17558313db9791616) )
+ ROM_LOAD( "136043-1123.1c", 0x010000, 0x004000, CRC(e4c98f01) SHA1(a24bece3196d13c38e4acdbf62783860253ba67d) )
+ ROM_RELOAD( 0x014000, 0x004000 )
+ ROM_LOAD( "136043-1113.1l", 0x018000, 0x008000, CRC(33cb476e) SHA1(e0757ee0120de2d38be44f8dc8702972c35b87b3) )
+ ROM_LOAD( "136037-114.1mn", 0x020000, 0x008000, CRC(29ef9882) SHA1(91e1465af6505b35cd97434c13d2b4d40a085946) )
+ ROM_LOAD( "136043-1124.1p", 0x028000, 0x004000, CRC(c4857879) SHA1(3b4ce96da0d178b4bc2d05b5b51b42c7ec461113) )
+ ROM_RELOAD( 0x02c000, 0x004000 )
+ ROM_LOAD( "136043-1115.2a", 0x030000, 0x008000, CRC(f71e2503) SHA1(244e108668eaef6b64c6ff733b08b9ee6b7a2d2b) )
+ ROM_LOAD( "136037-116.2b", 0x038000, 0x008000, CRC(11e0ac5b) SHA1(729b7561d59d94ef33874a134b97bcd37573dfa6) )
+ ROM_LOAD( "136043-1125.2c", 0x040000, 0x004000, CRC(d9c2c2d1) SHA1(185e38c75c06b6ca131a17ee3a46098279bfe17e) )
+ ROM_RELOAD( 0x044000, 0x004000 )
+ ROM_LOAD( "136043-1117.2l", 0x048000, 0x008000, CRC(9e30b2e9) SHA1(e9b513089eaf3bec269058b437fefe7075a3fd6f) )
+ ROM_LOAD( "136037-118.2mn", 0x050000, 0x008000, CRC(8bf3b263) SHA1(683d900ab7591ee661218be2406fb375a12e435c) )
+ ROM_LOAD( "136043-1126.2p", 0x058000, 0x004000, CRC(a32c732a) SHA1(abe801dff7bb3f2712e2189c2b91f172d941fccd) )
+ ROM_RELOAD( 0x05c000, 0x004000 )
+
+ ROM_REGION( 0x500, "proms", 0 )
+ ROM_LOAD( "74s472-136037-101.7u", 0x000, 0x200, CRC(2964f76f) SHA1(da966c35557ec1b95e1c39cd950c38a19bce2d67) ) /* MO timing */
+ ROM_LOAD( "74s472-136037-102.5l", 0x200, 0x200, CRC(4d4fec6c) SHA1(3541b5c6405ad5742a3121dfd6acb227933de25a) ) /* MO flip control */
+ ROM_LOAD( "74s287-136037-103.4r", 0x400, 0x100, CRC(6c5ccf08) SHA1(ff5dbadd85aa2e07b383a302fa399e875db8f84f) ) /* MO position/size */
+ROM_END
+
+ROM_START( gaunt2f )
+ ROM_REGION( 0x80000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "136037-1307.9a", 0x000000, 0x008000, CRC(46fe8743) SHA1(d5fa19e028a2f43658330c67c10e0c811d332780) )
+ ROM_LOAD16_BYTE( "136037-1308.9b", 0x000001, 0x008000, CRC(276e15c4) SHA1(7467b2ec21b1b4fcc18ff9387ce891495f4b064c) )
+ ROM_LOAD16_BYTE( "136043-1105.10a", 0x038000, 0x004000, CRC(45dfda47) SHA1(a9a03150f5a0ad6ce62c5cfdffb4a9f54340590c) )
+ ROM_LOAD16_BYTE( "136043-1106.10b", 0x038001, 0x004000, CRC(343c029c) SHA1(d2df4e5b036500dcc537a1e0025abb2a8c730bdd) )
+ ROM_LOAD16_BYTE( "136043-1109.7a", 0x040000, 0x008000, CRC(58a0a9a3) SHA1(7f51184840e3c96574836b8a00bfb4a7a5f508d0) )
+ ROM_LOAD16_BYTE( "136043-1110.7b", 0x040001, 0x008000, CRC(658f0da8) SHA1(dfce027ea50188659907be698aeb26f9d8bfab23) )
+ ROM_LOAD16_BYTE( "136043-1121.6a", 0x050000, 0x008000, CRC(ae301bba) SHA1(3d93236aaffe6ef692e5073b1828633e8abf0ce4) )
+ ROM_LOAD16_BYTE( "136043-1122.6b", 0x050001, 0x008000, CRC(e94aaa8a) SHA1(378c582c360440b808820bcd3be78ec6e8800c34) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "136043-1120.16r", 0x004000, 0x004000, CRC(5c731006) SHA1(045ad571db34ef870b1bf003e77eea403204f55b) )
+ ROM_LOAD( "136043-1119.16s", 0x008000, 0x008000, CRC(dc3591e7) SHA1(6d0d8493609974bd5a63be858b045fe4db35d8df) )
+
+ ROM_REGION( 0x04000, "gfx1", 0 )
+ ROM_LOAD( "gaunt2f.6p", 0x000000, 0x004000, CRC(d101905d) SHA1(6f50a84f4d263a7a459b642fa49a619e877535b6) )
+
+ ROM_REGION( 0x60000, "gfx2", ROMREGION_INVERT )
+ ROM_LOAD( "136043-1111.1a", 0x000000, 0x008000, CRC(09df6e23) SHA1(726984275c6a338c12ec0c4cc449f92f4a7a138c) )
+ ROM_LOAD( "136037-112.1b", 0x008000, 0x008000, CRC(869330be) SHA1(5dfaaf54ee2b3c0eaf35e8c17558313db9791616) )
+ ROM_LOAD( "136043-1123.1c", 0x010000, 0x004000, CRC(e4c98f01) SHA1(a24bece3196d13c38e4acdbf62783860253ba67d) )
+ ROM_RELOAD( 0x014000, 0x004000 )
+ ROM_LOAD( "136043-1113.1l", 0x018000, 0x008000, CRC(33cb476e) SHA1(e0757ee0120de2d38be44f8dc8702972c35b87b3) )
+ ROM_LOAD( "136037-114.1mn", 0x020000, 0x008000, CRC(29ef9882) SHA1(91e1465af6505b35cd97434c13d2b4d40a085946) )
+ ROM_LOAD( "136043-1124.1p", 0x028000, 0x004000, CRC(c4857879) SHA1(3b4ce96da0d178b4bc2d05b5b51b42c7ec461113) )
+ ROM_RELOAD( 0x02c000, 0x004000 )
+ ROM_LOAD( "136043-1115.2a", 0x030000, 0x008000, CRC(f71e2503) SHA1(244e108668eaef6b64c6ff733b08b9ee6b7a2d2b) )
+ ROM_LOAD( "136037-116.2b", 0x038000, 0x008000, CRC(11e0ac5b) SHA1(729b7561d59d94ef33874a134b97bcd37573dfa6) )
+ ROM_LOAD( "136043-1125.2c", 0x040000, 0x004000, CRC(d9c2c2d1) SHA1(185e38c75c06b6ca131a17ee3a46098279bfe17e) )
+ ROM_RELOAD( 0x044000, 0x004000 )
+ ROM_LOAD( "136043-1117.2l", 0x048000, 0x008000, CRC(9e30b2e9) SHA1(e9b513089eaf3bec269058b437fefe7075a3fd6f) )
+ ROM_LOAD( "136037-118.2mn", 0x050000, 0x008000, CRC(8bf3b263) SHA1(683d900ab7591ee661218be2406fb375a12e435c) )
+ ROM_LOAD( "136043-1126.2p", 0x058000, 0x004000, CRC(a32c732a) SHA1(abe801dff7bb3f2712e2189c2b91f172d941fccd) )
+ ROM_RELOAD( 0x05c000, 0x004000 )
+
+ ROM_REGION( 0x500, "proms", 0 )
+ ROM_LOAD( "74s472-136037-101.7u", 0x000, 0x200, CRC(2964f76f) SHA1(da966c35557ec1b95e1c39cd950c38a19bce2d67) ) /* MO timing */
+ ROM_LOAD( "74s472-136037-102.5l", 0x200, 0x200, CRC(4d4fec6c) SHA1(3541b5c6405ad5742a3121dfd6acb227933de25a) ) /* MO flip control */
+ ROM_LOAD( "gaunt2f.4r", 0x400, 0x100, CRC(32ae1fa9) SHA1(09eb56a0798456d73015909973ce2ba9660c1164) ) /* MO position/size */
+ROM_END
+
+
+
+GAME( 1987, gaunt2s, gaunt2, gauntlet2, gauntlet, gauntlet_state, gauntlet, ROT0, "Todd Bordelon", "Gauntlet II Speed Hack", MACHINE_SUPPORTS_SAVE ) // http://www.ionpool.net/arcade/gauntlet/hacks.html
+GAME( 1988, gaunt2ls, gaunt2, gauntlet2, gauntlet, gauntlet_state, gauntlet, ROT0, "Orange Elf", "Gauntlet II New Levels", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, gaunt2f, gaunt2, gauntlet2, gauntlet, gauntlet_state, gauntlet, ROT0, "hack", "Gauntlet II (graphics hack)", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/gottlieb.cpp b/docs/release/src/hbmame/drivers/gottlieb.cpp
new file mode 100644
index 00000000000..bdc19e66bed
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/gottlieb.cpp
@@ -0,0 +1,99 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/gottlieb.cpp"
+
+ROM_START( 711qbert )
+ ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */
+ ROM_LOAD( "mqb-rom2.bin", 0xa000, 0x2000, CRC(6860f957) SHA1(ebd68aeb6d54868295bd20cf64ee0187a52df0e3) )
+ ROM_LOAD( "mqb-rom1.bin", 0xc000, 0x2000, CRC(11f0a4e4) SHA1(a805e51c40042fae209ace277abd9b35a990905b) )
+ ROM_LOAD( "mqb-rom0.bin", 0xe000, 0x2000, CRC(12a90cb2) SHA1(a33203aea79fe43d1233a16e3fdddaceac6e4a20) )
+
+ ROM_REGION( 0x10000, "r1sound:audiocpu", 0 ) /* 64k for sound cpu */
+ ROM_LOAD( "mqb-snd1.bin", 0xf000, 0x0800, CRC(e704b450) SHA1(d509f54658e9f0264b9ab865a6f36e5423a28904) )
+ ROM_RELOAD( 0x7000, 0x0800 ) /* A15 is not decoded */
+ ROM_LOAD( "mqb-snd2.bin", 0xf800, 0x0800, CRC(c6a98bf8) SHA1(cc5b5bb5966f5d79226f1f665a3f9fc934f4ef7f) )
+ ROM_RELOAD( 0x7800, 0x0800 ) /* A15 is not decoded */
+
+ ROM_REGION( 0x2000, "bgtiles", 0 )
+ ROM_LOAD( "qb-bg0.bin", 0x0000, 0x1000, CRC(7a9ba824) SHA1(12aa6df499eb6996ee35f56acac403ff6290f844) ) /* chars */
+ ROM_LOAD( "qb-bg1.bin", 0x1000, 0x1000, CRC(22e5b891) SHA1(5bb67e333255c0ea679ab4312256a8a71a950db8) )
+
+ ROM_REGION( 0x8000, "sprites", 0 )
+ ROM_LOAD( "mqb-fg3.bin", 0x0000, 0x2000, CRC(ee595eda) SHA1(11777d95ba79bd0ec7b964b76c1dc129db857816) ) /* sprites */
+ ROM_LOAD( "mqb-fg2.bin", 0x2000, 0x2000, CRC(59884c78) SHA1(5e77ef46ccd55f79a5fa90521baa7c22e3783fe5) )
+ ROM_LOAD( "mqb-fg1.bin", 0x4000, 0x2000, CRC(2a60e3ad) SHA1(9ed83017f6c8e44337ad76c68b095f2c3300aadb) )
+ ROM_LOAD( "mqb-fg0.bin", 0x6000, 0x2000, CRC(b11ad9d8) SHA1(5264598f33aa76455ae4107d0f265c2a372ed67a) )
+ROM_END
+
+ROM_START( pbert )
+ ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */
+ ROM_LOAD( "qb-rom2.bin", 0xa000, 0x2000, CRC(fe434526) SHA1(4cfc5d52dd6c82163e035af82d6112c0c93a3797) )
+ ROM_LOAD( "qb-rom1.bin", 0xc000, 0x2000, CRC(55635447) SHA1(ca6acdef1c9e06b33efe1f0a2df2dfb03723cfbe) )
+ ROM_LOAD( "qb-rom0.bin", 0xe000, 0x2000, CRC(8e318641) SHA1(7f8f66d1e6a7905e93cce07fc92e8801370b7194) )
+
+ ROM_REGION( 0x10000, "r1sound:audiocpu", 0 ) /* 64k for sound cpu */
+ ROM_LOAD( "qb-snd1.bin", 0xf000, 0x800, CRC(15787c07) SHA1(8b7d03fbf2ebaa71b3a7e2f636a0d1bb9b796e43) )
+ ROM_RELOAD( 0x7000, 0x800 ) /* A15 is not decoded */
+ ROM_LOAD( "qb-snd2.bin", 0xf800, 0x800, CRC(58437508) SHA1(09d8053e7e99679b602dcda230d64db7fe6cb7f5) )
+ ROM_RELOAD( 0x7800, 0x800 ) /* A15 is not decoded */
+
+ ROM_REGION( 0x2000, "bgtiles", 0 )
+ ROM_LOAD( "pb-bg0.bin", 0x0000, 0x1000, CRC(14e193e9) SHA1(5d67b3da848d4a90a4f9bf7f6145ce1aa33188f7) ) /* chars */
+ ROM_LOAD( "pb-bg1.bin", 0x1000, 0x1000, CRC(a91180f9) SHA1(c8a3ceae19afe9a0ad1e05bed99585e6bacbc09b) )
+
+ ROM_REGION( 0x8000, "sprites", 0 )
+ ROM_LOAD( "pb-fg3.bin", 0x0000, 0x2000, CRC(26def34c) SHA1(b36dd87e4c36d201aaec0c283e5f3d1ad4056d5d) ) /* sprites */
+ ROM_LOAD( "pb-fg2.bin", 0x2000, 0x2000, CRC(cf3309ca) SHA1(5be9a28b3681990729f0582f9d2c3dd0314bdd15) )
+ ROM_LOAD( "pb-fg1.bin", 0x4000, 0x2000, CRC(a5f3a203) SHA1(4d7d45e5ba87acd8c44421f2c7fb2129a1866f03) )
+ ROM_LOAD( "pb-fg0.bin", 0x6000, 0x2000, CRC(495d90e9) SHA1(d4d28c30901eb09da8933c03b2178152f0fc7b84) )
+ROM_END
+
+// E444
+ROM_START( qbertb )
+ ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */
+ ROM_LOAD( "qb-rom2.bin", 0xa000, 0x2000, CRC(fe434526) SHA1(4cfc5d52dd6c82163e035af82d6112c0c93a3797) )
+ ROM_LOAD( "qb-rom1.bin", 0xc000, 0x2000, CRC(55635447) SHA1(ca6acdef1c9e06b33efe1f0a2df2dfb03723cfbe) )
+ ROM_LOAD( "qbertb.rom0", 0xe000, 0x2000, CRC(415b4fc7) SHA1(e55fb1912260435be253597fd337e04219b7a034) )
+
+ ROM_REGION( 0x10000, "r1sound:audiocpu", 0 ) /* 64k for sound cpu */
+ ROM_LOAD( "qbertb.snd", 0xf000, 0x1000, CRC(ebcedba9) SHA1(94aee8e32bdc80bbc5dc1423ca97597bdb9d808c) )
+ ROM_RELOAD( 0x7000, 0x1000 ) /* A15 is not decoded */
+
+ ROM_REGION( 0x2000, "bgtiles", 0 )
+ ROM_LOAD( "qb-bg0.bin", 0x0000, 0x1000, CRC(7a9ba824) SHA1(12aa6df499eb6996ee35f56acac403ff6290f844) ) /* chars */
+ ROM_LOAD( "qb-bg1.bin", 0x1000, 0x1000, CRC(22e5b891) SHA1(5bb67e333255c0ea679ab4312256a8a71a950db8) )
+
+ ROM_REGION( 0x8000, "sprites", 0 )
+ ROM_LOAD( "qbertb.fg3", 0x1000, 0x1000, CRC(983e3e05) SHA1(14f21543c3301b15d179b3864676e76ad5dfcaf8) ) /* sprites */
+ ROM_LOAD( "qbertb.fg2", 0x3000, 0x1000, CRC(b3e6c7bc) SHA1(38e34e8712c5f677fa3fada68bc4c318e9bf7ca6) )
+ ROM_LOAD( "qbertb.fg1", 0x5000, 0x1000, CRC(6733d069) SHA1(3b4ac832f2475d51ae7586d3eb80e355afb64222) )
+ ROM_LOAD( "qbertb.fg0", 0x7000, 0x1000, CRC(3081c200) SHA1(137d95a2a58e2ed4da7145a539d1a1942c80674c) )
+ROM_END
+
+ROM_START( vbert )
+ ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */
+ ROM_LOAD( "qb-rom2.bin", 0xa000, 0x2000, CRC(fe434526) SHA1(4cfc5d52dd6c82163e035af82d6112c0c93a3797) )
+ ROM_LOAD( "qb-rom1.bin", 0xc000, 0x2000, CRC(55635447) SHA1(ca6acdef1c9e06b33efe1f0a2df2dfb03723cfbe) )
+ ROM_LOAD( "qb-rom0.bin", 0xe000, 0x2000, CRC(8e318641) SHA1(7f8f66d1e6a7905e93cce07fc92e8801370b7194) )
+
+ ROM_REGION( 0x10000, "r1sound:audiocpu", 0 ) /* 64k for sound cpu */
+ ROM_LOAD( "qb-snd1.bin", 0xf000, 0x800, CRC(15787c07) SHA1(8b7d03fbf2ebaa71b3a7e2f636a0d1bb9b796e43) )
+ ROM_RELOAD( 0x7000, 0x800 ) /* A15 is not decoded */
+ ROM_LOAD( "qb-snd2.bin", 0xf800, 0x800, CRC(58437508) SHA1(09d8053e7e99679b602dcda230d64db7fe6cb7f5) )
+ ROM_RELOAD( 0x7800, 0x800 ) /* A15 is not decoded */
+
+ ROM_REGION( 0x2000, "bgtiles", 0 )
+ ROM_LOAD( "vb-bg0.bin", 0x0000, 0x1000, CRC(8963b939) SHA1(1416f56938163b4cdc212758eb2c3f6b773c7e32) ) /* chars */
+ ROM_LOAD( "vb-bg1.bin", 0x1000, 0x1000, CRC(96033c96) SHA1(0a5780377bfd3baeeb2d899aa230e503539f7c92) )
+
+ ROM_REGION( 0x8000, "sprites", 0 )
+ ROM_LOAD( "vb-fg3.bin", 0x0000, 0x2000, CRC(8cb4bdb4) SHA1(7b9b626b93daa4d2639a1e87ace61b1d254af96c) ) /* sprites */
+ ROM_LOAD( "vb-fg2.bin", 0x2000, 0x2000, CRC(79883cc3) SHA1(01cfca389021747e2d750fc8bb251abb2d5fe7a8) )
+ ROM_LOAD( "vb-fg1.bin", 0x4000, 0x2000, CRC(b0fe9bd5) SHA1(be2990904efff19adbe18eb674727214ffae9ad3) )
+ ROM_LOAD( "vb-fg0.bin", 0x6000, 0x2000, CRC(4c3db270) SHA1(212f1c353511fb4166a7ad0135dd295a2a16af8d) )
+ROM_END
+
+GAME( 1982, 711qbert, qbert, qbert, qbert, gottlieb_state, qbert, ROT270, "Hack", "7-11 Q*bert", 0 )
+GAME( 2003, pbert, qbert, qbert, qbert, gottlieb_state, qbert, ROT270, "Grand Master Peter", "P*bert", 0 )
+GAME( 1982, qbertb, qbert, qbert, qbert, gottlieb_state, qbert, ROT270, "bootleg", "Q*bert", 0 )
+GAME( 2003, vbert, qbert, qbert, qbert, gottlieb_state, qbert, ROT270, "Grand Master Peter", "V*bert", 0 )
diff --git a/docs/release/src/hbmame/drivers/ir.cpp b/docs/release/src/hbmame/drivers/ir.cpp
new file mode 100644
index 00000000000..3401fe76a8d
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/ir.cpp
@@ -0,0 +1,547 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+/****************************************************************************************
+
+ Invader's Revenge
+
+ October, 2008 by Robbbert
+
+ No diagram available, so I threw this together
+
+
+ Invader's Revenge was made by the English company, Zenitone-Microsec Ltd.
+ Distributed in Germany by Dutchford.
+ Also distributed in America by Americade Amusement, Inc., of New Jersey.
+
+ It's basically a hardware hack of the normal Taito Space Invaders machine.
+
+ Changes (start with a Space Invaders with a colour CRT):
+
+ 1. The sound board is replaced with another that makes different sounds.
+
+ 2. A sardine-can-shaped potted black epoxy block containing a 4mhz crystal,
+ two large 40-pin ICs, at least 2 roms, and a number of TTL-shaped chips.
+ My assumption is that one of the big chips is a (slave sound) CPU.
+
+ 3. New main roms
+
+ 4. A small card contains a colour PROM. There's no RAM for this, so the colours
+ must be quite simplistic.
+
+ The main CPU communicates to the slave by sending sound codes via port 3,
+ while port 5 controls various aspects of the screen display.
+
+ The method of enabling cocktail mode is the same as for Space Invaders, that is,
+ changing the positions of SW5,6,7; cutting a track; and adding some jumpers.
+ Obviously this is a once-off change for the table model.
+
+ Known bugs in the original roms:
+
+ 1. If you turn on the machine, start a 1-player game and just let it run to the
+ end, it will congratulate player 2 for getting a high score. Of course, zero
+ points is not a high score, and there wasn't a player 2.
+
+ 2. If you die just after killing the last enemy in the 8th level, the docking
+ stage uses the wrong colour map. I've added a fix for this.
+
+
+ Notes about colour proms:
+
+ 1. The proms from sets 'invrvnga' and 'invrvng3' are the correct ones. The prom
+ from 'invrvng3' is used for the other sets, as their proms haven't shown up yet.
+
+ 2. Real name for 'invrvnga' prom is '3r.bin' ; for 'invrvng3' is 'ir.clr'.
+
+ Todo:
+
+ 1. Identify the slave CPU and make it work.
+ 2. Get schematic diagrams, and design a discrete sound board.
+
+ Changes:
+
+ 1. Added above documentation (MAME doesn't have any)
+ 2. Identified all sound codes. (We only need good samples now)
+
+*******************************************************************************************/
+
+#include "emu.h"
+#include "cpu/i8085/i8085.h"
+#include "machine/mb14241.h"
+#include "sound/samples.h"
+#include "screen.h"
+#include "speaker.h"
+
+#define MW8080BW_MASTER_CLOCK (19968000.0)
+#define MW8080BW_CPU_CLOCK (MW8080BW_MASTER_CLOCK / 10)
+#define MW8080BW_PIXEL_CLOCK (MW8080BW_MASTER_CLOCK / 4)
+#define MW8080BW_HTOTAL (0x140)
+#define MW8080BW_HBEND (0x000)
+#define MW8080BW_HBSTART (0x100)
+#define MW8080BW_VTOTAL (0x106)
+#define MW8080BW_VBEND (0x000)
+#define MW8080BW_VBSTART (0x0e0)
+#define MW8080BW_VCOUNTER_START_NO_VBLANK (0x020)
+#define MW8080BW_VCOUNTER_START_VBLANK (0x0da)
+#define MW8080BW_INT_TRIGGER_COUNT_1 (0x080)
+#define MW8080BW_INT_TRIGGER_VBLANK_1 (0)
+#define MW8080BW_INT_TRIGGER_COUNT_2 MW8080BW_VCOUNTER_START_VBLANK
+#define MW8080BW_INT_TRIGGER_VBLANK_2 (1)
+#define MW8080BW_HPIXCOUNT MW8080BW_HBSTART
+
+class ir_state : public driver_device
+{
+public:
+ ir_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag)
+ , m_maincpu(*this,"maincpu")
+ , m_p_ram(*this, "ram")
+ , m_samples(*this, "samples")
+ , m_screen(*this, "screen")
+ { }
+
+ DECLARE_READ8_MEMBER(mw8080bw_shift_result_rev_r);
+ DECLARE_READ8_MEMBER(mw8080bw_reversable_shift_result_r);
+ DECLARE_WRITE8_MEMBER(mw8080bw_reversable_shift_count_w);
+ DECLARE_READ8_MEMBER(port02_r);
+ DECLARE_WRITE8_MEMBER(port03_w);
+ DECLARE_WRITE8_MEMBER(port05_w);
+ DECLARE_MACHINE_START(ir);
+ DECLARE_MACHINE_RESET(ir);
+ TIMER_CALLBACK_MEMBER(mw8080bw_interrupt_callback);
+ uint32_t screen_update_ir(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+
+private:
+
+ bool m_flip_screen;
+ bool m_screen_red;
+ emu_timer *m_interrupt_timer;
+ uint8_t vpos_to_vysnc_chain_counter( int vpos );
+ int vysnc_chain_counter_to_vpos( uint8_t counter, int vblank );
+ void mw8080bw_create_interrupt_timer( );
+ void mw8080bw_start_interrupt_timer( );
+
+ /* device/memory pointers */
+ required_device<cpu_device> m_maincpu;
+ required_shared_ptr<uint8_t> m_p_ram;
+ required_device<samples_device> m_samples;
+ required_device<screen_device> m_screen;
+};
+
+
+READ8_MEMBER(ir_state::port02_r)
+{
+ uint8_t data = ioport("IN2")->read();
+ if (m_flip_screen) return data;
+ return (data & 0x8f) | (ioport("IN1")->read() & 0x70);
+}
+
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, ir_state )
+ ADDRESS_MAP_GLOBAL_MASK(0x7fff)
+ AM_RANGE(0x0000, 0x1fff) AM_ROM AM_WRITENOP
+ AM_RANGE(0x2000, 0x3fff) AM_MIRROR(0x4000) AM_RAM AM_SHARE("ram")
+ AM_RANGE(0x4000, 0x5fff) AM_ROM AM_WRITENOP
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( invrvnge_io_map, AS_IO, 8, ir_state )
+ AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0")
+ AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
+ AM_RANGE(0x02, 0x02) AM_READ(port02_r) AM_DEVWRITE("mb14241", mb14241_device, shift_count_w)
+ AM_RANGE(0x03, 0x03) AM_DEVREAD("mb14241", mb14241_device, shift_result_r) AM_WRITE(port03_w)
+ AM_RANGE(0x04, 0x04) AM_DEVWRITE("mb14241", mb14241_device, shift_data_w)
+ AM_RANGE(0x05, 0x05) AM_WRITE(port05_w)
+ AM_RANGE(0x06, 0x06) AM_WRITENOP //(watchdog_reset_w)
+ADDRESS_MAP_END
+
+//static ADDRESS_MAP_START( invrvnge_sound_map, AS_PROGRAM, 8, ir_state )
+// ADDRESS_MAP_UNMAP_HIGH
+// AM_RANGE(0x0000, 0xffff) AM_ROM // dummy prg map, TODO: decrypt ROM
+//ADDRESS_MAP_END
+
+
+static INPUT_PORTS_START( ir )
+ PORT_START("IN0")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_DIPNAME( 0x06, 0x00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:5,6")
+ PORT_DIPSETTING( 0x00, DEF_STR( Easy ) ) // [code: 0x3b1-3b5]
+ PORT_DIPSETTING( 0x02, DEF_STR( Hard ) )
+ PORT_DIPSETTING( 0x04, DEF_STR( Harder ) )
+ PORT_DIPSETTING( 0x06, DEF_STR( Hardest ) )
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) // must be low or game won't boot [code: 0x1a9-1af]
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_DIPNAME( 0x80, 0x80, "Fuel Destroyed by Comet" ) PORT_DIPLOCATION("SW1:7")
+ PORT_DIPSETTING( 0x00, "3" )
+ PORT_DIPSETTING( 0x80, "6" )
+ //PORT_DIPNAME( 0x80, 0x00, "Fuel Usage" ) // [code: 0x1cb0-1cb6]
+ //PORT_DIPSETTING( 0x80, "Fast" )
+ //PORT_DIPSETTING( 0x00, "Slow" )
+
+ PORT_START("IN1")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 )
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 )
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 )
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) // [code: 0x750-75B] causes this switch to be ineffective
+
+ PORT_START("IN2")
+ PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:1,2")
+ PORT_DIPSETTING( 0x00, "3" )
+ PORT_DIPSETTING( 0x01, "4" )
+ PORT_DIPSETTING( 0x02, "5" )
+ PORT_DIPSETTING( 0x03, "6" )
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_TILT )
+ PORT_DIPNAME( 0x08, 0x08, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW1:4")
+ PORT_DIPSETTING( 0x00, "1500" ) // [code: 0x3b9-3c9]
+ PORT_DIPSETTING( 0x08, "2000" )
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2)
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(2)
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(2)
+ PORT_DIPNAME( 0x80, 0x00, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:8")
+ PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) // 1 play 10p, 2 play 20p, 6 play 50p
+ PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) // 1 play 20p, 2 play 40p, 3 play 50p
+
+ PORT_START("CAB")
+ PORT_CONFNAME( 0x01, 0x00, DEF_STR( Cabinet ) )
+ PORT_CONFSETTING( 0x00, DEF_STR( Upright ) )
+ PORT_CONFSETTING( 0x01, DEF_STR( Cocktail ) )
+INPUT_PORTS_END
+
+uint8_t ir_state::vpos_to_vysnc_chain_counter( int vpos )
+{
+ /* convert from a vertical position to the actual values on the vertical sync counters */
+ uint8_t counter;
+ int vblank = (vpos >= MW8080BW_VBSTART);
+
+ if (vblank)
+ counter = vpos - MW8080BW_VBSTART + MW8080BW_VCOUNTER_START_VBLANK;
+ else
+ counter = vpos + MW8080BW_VCOUNTER_START_NO_VBLANK;
+
+ return counter;
+}
+
+
+int ir_state::vysnc_chain_counter_to_vpos( uint8_t counter, int vblank )
+{
+ /* convert from the vertical sync counters to an actual vertical position */
+ int vpos;
+
+ if (vblank)
+ vpos = counter - MW8080BW_VCOUNTER_START_VBLANK + MW8080BW_VBSTART;
+ else
+ vpos = counter - MW8080BW_VCOUNTER_START_NO_VBLANK;
+
+ return vpos;
+}
+
+
+TIMER_CALLBACK_MEMBER(ir_state::mw8080bw_interrupt_callback)
+{
+ uint8_t next_counter;
+ int next_vpos;
+ int next_vblank;
+
+ /* compute vector and set the interrupt line */
+ int vpos = m_screen->vpos();
+ uint8_t counter = vpos_to_vysnc_chain_counter(vpos);
+ uint8_t vector = 0xc7 | ((counter & 0x40) >> 2) | ((~counter & 0x40) >> 3);
+ m_maincpu->set_input_line_and_vector(0, HOLD_LINE, vector);
+
+ /* set up for next interrupt */
+ if (counter == MW8080BW_INT_TRIGGER_COUNT_1)
+ {
+ next_counter = MW8080BW_INT_TRIGGER_COUNT_2;
+ next_vblank = MW8080BW_INT_TRIGGER_VBLANK_2;
+ }
+ else
+ {
+ next_counter = MW8080BW_INT_TRIGGER_COUNT_1;
+ next_vblank = MW8080BW_INT_TRIGGER_VBLANK_1;
+ }
+
+ next_vpos = vysnc_chain_counter_to_vpos(next_counter, next_vblank);
+ m_interrupt_timer->adjust(m_screen->time_until_pos(next_vpos));
+}
+
+
+void ir_state::mw8080bw_create_interrupt_timer( )
+{
+ m_interrupt_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(ir_state::mw8080bw_interrupt_callback),this));
+}
+
+
+void ir_state::mw8080bw_start_interrupt_timer( )
+{
+ int vpos = vysnc_chain_counter_to_vpos(MW8080BW_INT_TRIGGER_COUNT_1, MW8080BW_INT_TRIGGER_VBLANK_1);
+ m_interrupt_timer->adjust(m_screen->time_until_pos(vpos));
+}
+
+
+
+/*************************************
+ *
+ * Machine setup
+ *
+ *************************************/
+
+MACHINE_START_MEMBER( ir_state, ir )
+{
+ mw8080bw_create_interrupt_timer();
+}
+
+
+/*************************************
+ *
+ * Machine reset
+ *
+ *************************************/
+
+MACHINE_RESET_MEMBER( ir_state, ir )
+{
+ mw8080bw_start_interrupt_timer();
+}
+
+static const char *const ir_sample_names[] =
+{
+ "*invrvnge",
+ "02", /* insert coin */
+ "06", /* you shoot */
+ "14", /* hit alien */
+ "16", /* hit asteroid */
+ "18", /* low fuel */
+ "1a", /* successful docking */
+ "1e", /* die */
+ "22", /* start game */
+ "24", /* alien diving */
+ "26", /* alien steals fuel */
+ "28", /* background sound 1 */
+ "2a", /* background sound 2 */
+ "2c", /* background sound 3 */
+ "2e", /* background sound 4 */
+ "30", /* build up fuel */
+ "32", /* ufo fires */
+ "34", /* high score */
+ "36", /* docking stage */
+ "38", /* bonus ship */
+ "3a", /* thrust */
+ 0
+};
+
+
+/*************************************************************************************/
+/* Notes: */
+/* Init sequence: 0x01 (20 times), 0x40 (20 times), 0x4c, 0x40, 0x44, 0x40 (9 times).*/
+/* Player 1 start sequence: 0x0c, 0x20, 0x22. */
+/* Unknown codes: 0x0A, 0x0c */
+/*************************************************************************************/
+WRITE8_MEMBER(ir_state::port03_w)
+{
+ switch (data)
+ {
+ case 0x02: /* Coin */
+ machine().sound().system_enable(1); /* enable sound so we can hear coin drop */
+ m_samples->start(0, 0);
+ break;
+
+ case 0x04: /* Attract Mode */
+ machine().sound().system_enable(0); /* disable sound */
+ break;
+
+ case 0x06:
+ m_samples->start(1, 1); /* Shoot */
+ break;
+
+ case 0x14:
+ m_samples->start(2, 2); /* Hit Alien (0x0a happens at the same time) */
+ break;
+
+ case 0x16:
+ m_samples->start(2, 3); /* Hit Asteroid */
+ break;
+
+ case 0x18: /* Fuel Low */
+ m_samples->start(5, 4);
+ break;
+
+ case 0x1a: /* Successful docking */
+ m_samples->start(0, 5);
+ break;
+
+ case 0x1c: /* Finished fuelling */
+ m_samples->stop(0);
+ break;
+
+ case 0x1e:
+ m_samples->start(0, 6); /* Death */
+ break;
+
+ case 0x20:
+ machine().sound().system_enable(1); /* enable sound for game start */
+ case 0x22:
+ m_samples->start(0, 7); /* Start Game */
+ break;
+
+ case 0x24: /* Alien dropping to steal fuel */
+ m_samples->start(3, 8);
+ break;
+
+ case 0x26: /* Alien lifting with fuel */
+ m_samples->start(4, 9);
+ break;
+
+ case 0x28: /* background sound level 1 */
+ case 0x2a: /* background sound level 2 */
+ case 0x2c: /* background sound level 3 */
+ case 0x2e: /* background sound level 4 */
+ m_samples->start(0, data/2-10, 1);
+ break;
+
+ case 0x30: /* Fuel bar filling up */
+ m_samples->start(0, 14);
+ break;
+
+ case 0x32: /* UFO drops a bomb */
+ m_samples->start(6, 15);
+ break;
+
+ case 0x34: /* You got the highest score */
+ m_samples->start(0, 16);
+ break;
+
+ case 0x36: /* Docking stage */
+ m_screen_red = 0; /* fix bug (2) in documentation */
+ m_samples->start(0, 17);
+ break;
+
+ case 0x38: /* Bonus ship */
+ m_samples->start(8, 18);
+ break;
+
+ case 0x3a: /* Thrust */
+ m_samples->start(7, 19);
+ break;
+
+ case 0x4c:
+ m_samples->stop(0); // using this to stop sound if game tilted
+ case 0x01: /* These 3 play at boot time */
+ case 0x40: /* no idea if they are actual sounds */
+ case 0x44:
+
+ case 0x0a: /* with 0x14 */
+ case 0x0c: /* used a lot but for what? */
+ break;
+
+ default:
+ if (data) printf("Undefined sound code: %X\n",data);
+ }
+}
+
+WRITE8_MEMBER(ir_state::port05_w)
+{
+/*
+ 00 - normal play
+ 0A, 0E - alternate during play/attract at about once per second (invrvngegw only) purpose unknown
+ 01 - briefly at boot time
+ 10 - different colour map (or screen red) when you die
+ 20 - flip screen */
+
+ m_screen_red = BIT(data, 4);
+ m_flip_screen = BIT(data, 5) & ioport("CAB")->read();
+}
+
+uint32_t ir_state::screen_update_ir(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
+{
+ pen_t pens[8];
+ offs_t offs, color_address;
+ uint8_t *prom;
+ uint8_t *color_map_base;
+ uint8_t i, x, y, data, fore_color, color;
+
+ for (i = 0; i < 8; i++)
+ pens[i] = rgb_t(pal1bit(i >> 0), pal1bit(i >> 2), pal1bit(i >> 1));
+
+ prom = memregion("proms")->base();
+ color_map_base = &prom[0x0000];
+
+ for (offs = 0; offs < m_p_ram.bytes(); offs++)
+ {
+ y = offs >> 5;
+ x = offs << 3;
+
+ color_address = (offs >> 8 << 5) | (offs & 0x1f);
+
+ data = m_p_ram[offs];
+ fore_color = m_screen_red ? 1 : color_map_base[color_address] & 0x07;
+
+ for (i = 0; i < 8; i++)
+ {
+ color = BIT(data, i) ? fore_color : 0;
+
+ if (y >= MW8080BW_VCOUNTER_START_NO_VBLANK)
+ {
+ if (m_flip_screen)
+ bitmap.pix32(MW8080BW_VBSTART - 1 - (y - MW8080BW_VCOUNTER_START_NO_VBLANK), MW8080BW_HPIXCOUNT - 1 - x) = pens[color];
+ else
+ bitmap.pix32(y - MW8080BW_VCOUNTER_START_NO_VBLANK, x) = pens[color];
+ }
+
+ x++;
+ }
+ }
+
+ return 0;
+}
+
+static MACHINE_CONFIG_START( ir, ir_state )
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu",I8080,MW8080BW_CPU_CLOCK)
+ MCFG_CPU_PROGRAM_MAP(main_map)
+ MCFG_CPU_IO_MAP(invrvnge_io_map)
+ MCFG_MACHINE_START_OVERRIDE(ir_state, ir)
+ MCFG_MACHINE_RESET_OVERRIDE(ir_state, ir)
+
+ /* video hardware */
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_RAW_PARAMS(MW8080BW_PIXEL_CLOCK, MW8080BW_HTOTAL, MW8080BW_HBEND, MW8080BW_HPIXCOUNT, MW8080BW_VTOTAL, MW8080BW_VBEND, MW8080BW_VBSTART)
+ MCFG_SCREEN_UPDATE_DRIVER(ir_state, screen_update_ir)
+
+ //MCFG_CPU_ADD("audiocpu", M6808, XTAL_4MHz/2) // MC6808P
+ //MCFG_CPU_PROGRAM_MAP(invrvnge_sound_map)
+
+ /* add shifter */
+ MCFG_MB14241_ADD("mb14241")
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+
+ //MCFG_SOUND_ADD("ay1", AY8910, XTAL_4MHz/2)
+ //MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5)
+
+ MCFG_SOUND_ADD("samples", SAMPLES, 0)
+ MCFG_SAMPLES_CHANNELS(9)
+ MCFG_SAMPLES_NAMES(ir_sample_names)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
+MACHINE_CONFIG_END
+
+ROM_START( ir )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "h.ic36", 0x0000, 0x0800, CRC(0e229b9f) SHA1(617197bf94e9700cbbb2f32487dc47b318d4f2af) )
+ ROM_LOAD( "g.ic35", 0x0800, 0x0800, CRC(26b38aa4) SHA1(f281c7ec47ce6ab61bfda2e7aa6a5b8a01f2c11e) )
+ ROM_LOAD( "f.ic34", 0x1000, 0x0800, CRC(b3b2749e) SHA1(4f854f981396e2d6a959dd48cff12234074fb69b) )
+ ROM_LOAD( "e.ic33", 0x1800, 0x0800, CRC(d8e75102) SHA1(86d5618944265947e3ce60fdf048d8fff4a55744) )
+
+ // not used
+ //ROM_REGION( 0x10000, "audiocpu", 0 ) // encrypted
+ //ROM_LOAD( "snd.2c", 0xf000, 0x0800, CRC(135f3b16) SHA1(d472a6ca32c4a16cc1faf09f4a4876d75cd4ba24) )
+ //ROM_LOAD( "snd.1c", 0xf800, 0x0800, CRC(152fc85e) SHA1(df207d6e690287a56e4e330deaa5ee40a179f1fc) )
+
+ ROM_REGION( 0x0800, "proms", 0 )
+ ROM_LOAD( "colour.bin", 0x0000, 0x0800, CRC(7de74988) SHA1(0b8c94b2bfdbc3921d60aad765df8af611f3fdd7) )
+ROM_END
+
+GAME( 1980?,ir, invrvnge, ir, ir, driver_device, 0, ROT270, "Zenitone-Microsec Ltd.", "Invader's Revenge (Extra Sounds)", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/itech8.cpp b/docs/release/src/hbmame/drivers/itech8.cpp
new file mode 100644
index 00000000000..ef29ae3ad5b
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/itech8.cpp
@@ -0,0 +1,22 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/itech8.cpp"
+
+ROM_START( itecdemo )
+ ROM_REGION( 0x1c000, "maincpu", 0 )
+ ROM_LOAD( "u5d.bin", 0x04000, 0x4000, CRC(749a1336) SHA1(f3f1220fbb9b61214e7b4e675a6ab5bbe9db50af) )
+ ROM_CONTINUE( 0x10000, 0xc000 )
+ ROM_COPY( "maincpu", 0x14000, 0x8000, 0x8000 )
+
+ ROM_REGION( 0x10000, "soundcpu", 0 )
+ ROM_LOAD( "u27d.bin", 0x08000, 0x8000, CRC(f0cd7332) SHA1(770b5d9b531495df0ff6350942cbd5147a875e9b) )
+
+ ROM_REGION( 0xc0000, "grom", 0 )
+ ROM_LOAD( "grom0d.bin", 0x00000, 0x20000, CRC(e4f9fe36) SHA1(ad8cb4eb1d5d685bb22ca6fee5f1efcd682f8b38) )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD_OPTIONAL( "srom0d.bin", 0x00000, 0x20000, CRC(7ee8cdcd) SHA1(67dfd19f3eb3649d6f3f6631e44d0bd36b8d8d19) )
+ROM_END
+
+
+GAME( 1989, itecdemo, 0, stratab_hi, gtg, driver_device, 0, ROT0, "Charles Doty", "Demo - Itec", 0 )
diff --git a/docs/release/src/hbmame/drivers/jrpacman.cpp b/docs/release/src/hbmame/drivers/jrpacman.cpp
new file mode 100644
index 00000000000..d056e1ff33e
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/jrpacman.cpp
@@ -0,0 +1,1212 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+/***************************************************************************
+
+ Bally/Midway Jr. Pac-Man
+
+ Games supported:
+ * Jr. Pac-Man
+
+ Known issues:
+ * none
+
+****************************************************************************
+
+ Jr. Pac Man memory map (preliminary)
+
+ 0000-3fff ROM
+ 4000-47ff Video RAM (also color RAM)
+ 4800-4fff RAM
+ 8000-dfff ROM
+
+ memory mapped ports:
+
+ read:
+ 5000 P1
+ 5040 P2
+ 5080 DSW
+
+ *
+ * IN0 (all bits are inverted)
+ * bit 7 : CREDIT
+ * bit 6 : COIN 2
+ * bit 5 : COIN 1
+ * bit 4 : RACK TEST
+ * bit 3 : DOWN player 1
+ * bit 2 : RIGHT player 1
+ * bit 1 : LEFT player 1
+ * bit 0 : UP player 1
+ *
+ *
+ * IN1 (all bits are inverted)
+ * bit 7 : TABLE or UPRIGHT cabinet select (1 = UPRIGHT)
+ * bit 6 : START 2
+ * bit 5 : START 1
+ * bit 4 : TEST SWITCH
+ * bit 3 : DOWN player 2 (TABLE only)
+ * bit 2 : RIGHT player 2 (TABLE only)
+ * bit 1 : LEFT player 2 (TABLE only)
+ * bit 0 : UP player 2 (TABLE only)
+ *
+ *
+ * DSW1 (all bits are inverted)
+ * bit 7 : ?
+ * bit 6 : difficulty level
+ * 1 = Normal 0 = Harder
+ * bit 5 :\ bonus pac at xx000 pts
+ * bit 4 :/ 00 = 10000 01 = 15000 10 = 20000 11 = 30000
+ * bit 3 :\ nr of lives
+ * bit 2 :/ 00 = 1 01 = 2 10 = 3 11 = 5
+ * bit 1 :\ play mode
+ * bit 0 :/ 00 = free play 01 = 1 coin 1 credit
+ * 10 = 1 coin 2 credits 11 = 2 coins 1 credit
+ *
+
+ write:
+ 4ff2-4ffd 6 pairs of two bytes:
+ the first byte contains the sprite image number (bits 2-7), Y flip (bit 0),
+ X flip (bit 1); the second byte the color
+ 5000 interrupt enable
+ 5001 sound enable
+ 5002 unused
+ 5003 flip screen
+ 5004 unused
+ 5005 unused
+ 5006 unused
+ 5007 coin counter
+ 5040-5044 sound voice 1 accumulator (nibbles) (used by the sound hardware only)
+ 5045 sound voice 1 waveform (nibble)
+ 5046-5049 sound voice 2 accumulator (nibbles) (used by the sound hardware only)
+ 504a sound voice 2 waveform (nibble)
+ 504b-504e sound voice 3 accumulator (nibbles) (used by the sound hardware only)
+ 504f sound voice 3 waveform (nibble)
+ 5050-5054 sound voice 1 frequency (nibbles)
+ 5055 sound voice 1 volume (nibble)
+ 5056-5059 sound voice 2 frequency (nibbles)
+ 505a sound voice 2 volume (nibble)
+ 505b-505e sound voice 3 frequency (nibbles)
+ 505f sound voice 3 volume (nibble)
+ 5062-506d Sprite coordinates, x/y pairs for 6 sprites
+ 5070 palette bank
+ 5071 colortable bank
+ 5073 background priority over sprites
+ 5074 char gfx bank
+ 5075 sprite gfx bank
+ 5080 scroll
+ 50c0 Watchdog reset
+
+ I/O ports:
+ OUT on port $0 sets the interrupt vector
+
+***************************************************************************/
+
+#include "emu.h"
+#include "cpu/z80/z80.h"
+#include "includes/pacman.h"
+#include "sound/namco.h"
+
+
+class jrpacman_state : public pacman_state
+{
+public:
+ jrpacman_state(const machine_config &mconfig, device_type type, const char *tag)
+ : pacman_state(mconfig, type, tag) { }
+ DECLARE_WRITE8_MEMBER(jrpacman_interrupt_vector_w);
+ DECLARE_WRITE8_MEMBER(irq_mask_w);
+ DECLARE_DRIVER_INIT(jrpacman);
+ INTERRUPT_GEN_MEMBER(vblank_irq);
+};
+
+
+
+WRITE8_MEMBER(jrpacman_state::jrpacman_interrupt_vector_w)
+{
+ machine().device("maincpu")->execute().set_input_line_vector(0, data);
+ machine().device("maincpu")->execute().set_input_line(0, CLEAR_LINE);
+}
+
+WRITE8_MEMBER(jrpacman_state::irq_mask_w)
+{
+ m_irq_mask = data & 1;
+}
+
+/*************************************
+ *
+ * Main CPU memory handlers
+ *
+ *************************************/
+
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, jrpacman_state )
+ AM_RANGE(0x0000, 0x3fff) AM_ROM
+ AM_RANGE(0x4000, 0x47ff) AM_RAM_WRITE(jrpacman_videoram_w) AM_SHARE("videoram")
+ AM_RANGE(0x4800, 0x4fef) AM_RAM
+ AM_RANGE(0x4ff0, 0x4fff) AM_RAM AM_SHARE("spriteram")
+ AM_RANGE(0x5000, 0x503f) AM_READ_PORT("P1")
+ AM_RANGE(0x5000, 0x5000) AM_WRITE(irq_mask_w)
+ AM_RANGE(0x5001, 0x5001) AM_DEVWRITE("namco", namco_device, pacman_sound_enable_w)
+ AM_RANGE(0x5003, 0x5003) AM_WRITE(pacman_flipscreen_w)
+ AM_RANGE(0x5040, 0x507f) AM_READ_PORT("P2")
+ AM_RANGE(0x5040, 0x505f) AM_DEVWRITE("namco", namco_device, pacman_sound_w)
+ AM_RANGE(0x5060, 0x506f) AM_WRITEONLY AM_SHARE("spriteram2")
+ AM_RANGE(0x5070, 0x5070) AM_WRITE(pengo_palettebank_w)
+ AM_RANGE(0x5071, 0x5071) AM_WRITE(pengo_colortablebank_w)
+ AM_RANGE(0x5073, 0x5073) AM_WRITE(jrpacman_bgpriority_w)
+ AM_RANGE(0x5074, 0x5074) AM_WRITE(jrpacman_charbank_w)
+ AM_RANGE(0x5075, 0x5075) AM_WRITE(jrpacman_spritebank_w)
+ AM_RANGE(0x5080, 0x50bf) AM_READ_PORT("DSW")
+ AM_RANGE(0x5080, 0x5080) AM_WRITE(jrpacman_scroll_w)
+ AM_RANGE(0x50c0, 0x50c0) AM_WRITENOP
+ AM_RANGE(0x8000, 0xdfff) AM_ROM
+// HBMAME extras
+ AM_RANGE(0x5002, 0x5002) AM_WRITENOP
+ //AM_RANGE(0x5004, 0x5005) AM_WRITE(pacman_leds_w)
+ AM_RANGE(0x5006, 0x5006) AM_WRITENOP
+ AM_RANGE(0x5007, 0x5007) AM_WRITENOP
+ AM_RANGE(0x5072, 0x5072) AM_WRITENOP
+ AM_RANGE(0x5076, 0x507f) AM_WRITENOP
+ AM_RANGE(0xfffc, 0xffff) AM_RAM /* for jrfast and fastjr */
+ADDRESS_MAP_END
+
+
+static ADDRESS_MAP_START( port_map, AS_IO, 8, jrpacman_state )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
+ AM_RANGE(0, 0) AM_WRITE(jrpacman_interrupt_vector_w)
+ADDRESS_MAP_END
+
+
+
+/*************************************
+ *
+ * Port definitions
+ *
+ *************************************/
+
+static INPUT_PORTS_START( jrpacman )
+ PORT_START("P1")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY
+ /* Press this to instantly finish the level - HBMAME */
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Finish Level (Cheat)") PORT_CODE(KEYCODE_8)
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN3 )
+
+ PORT_START("P2")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL
+ PORT_SERVICE( 0x10, IP_ACTIVE_LOW )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 )
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
+ PORT_DIPNAME( 0x80, 0x80, DEF_STR( Cabinet ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( Upright ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
+
+ PORT_START("DSW")
+ PORT_DIPNAME( 0x03, 0x01, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:1,2")
+ 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:3,4")
+ 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:5,6")
+ PORT_DIPSETTING( 0x00, "10000" )
+ PORT_DIPSETTING( 0x10, "15000" )
+ PORT_DIPSETTING( 0x20, "20000" )
+ PORT_DIPSETTING( 0x30, "30000" )
+ PORT_DIPNAME( 0x40, 0x40, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:7")
+ PORT_DIPSETTING( 0x40, DEF_STR( Normal ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Hard ) )
+ PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:8")
+ PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+
+// HBMAME extras
+ PORT_START ("FAKE")
+ /* This fake input port is used to get the status of the fire button */
+ /* and activate the speedup cheat. */
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME( "Speed (Cheat)" )
+ PORT_DIPNAME( 0x06, 0x02, "Speed Cheat" )
+ PORT_DIPSETTING( 0x00, "Disabled" )
+ PORT_DIPSETTING( 0x02, "Enabled with Button" )
+ PORT_DIPSETTING( 0x04, "Enabled Always" )
+
+ PORT_START ("CONFIG")
+ PORT_CONFNAME( 0x01, 0x01, "Level" )
+ PORT_CONFSETTING( 0x00, DEF_STR( Off ) )
+ PORT_CONFSETTING( 0x01, DEF_STR( On ) )
+INPUT_PORTS_END
+
+
+
+/*************************************
+ *
+ * Graphics layouts
+ *
+ *************************************/
+
+static const gfx_layout tilelayout =
+{
+ 8,8,
+ RGN_FRAC(1,2),
+ 2,
+ { 0, 4 },
+ { STEP4(8*8,1), STEP4(0*8,1) },
+ { STEP8(0*8,8) },
+ 16*8
+};
+
+
+static const gfx_layout spritelayout =
+{
+ 16,16,
+ RGN_FRAC(1,2),
+ 2,
+ { 0, 4 },
+ { STEP4(8*8,1), STEP4(16*8,1), STEP4(24*8,1), STEP4(0*8,1) },
+ { STEP8(0*8,8), STEP8(32*8,8) },
+ 64*8
+};
+
+
+static GFXDECODE_START( jrpacman )
+ GFXDECODE_ENTRY( "gfx1", 0x0000, tilelayout, 0, 128 )
+ GFXDECODE_ENTRY( "gfx1", 0x2000, spritelayout, 0, 128 )
+GFXDECODE_END
+
+
+
+/*************************************
+ *
+ * Machine drivers
+ *
+ *************************************/
+
+INTERRUPT_GEN_MEMBER(jrpacman_state::vblank_irq)
+{
+ if(m_irq_mask)
+ device.execute().set_input_line(0, HOLD_LINE);
+}
+
+static MACHINE_CONFIG_START( jrpacman, jrpacman_state )
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", Z80, 18432000/6) /* 3.072 MHz */
+ MCFG_CPU_PROGRAM_MAP(main_map)
+ MCFG_CPU_IO_MAP(port_map)
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", jrpacman_state, vblank_irq)
+// MCFG_CPU_VBLANK_INT_DRIVER("screen", pacman_state, vblank_irq) // HBMAME
+
+ /* video hardware */
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_REFRESH_RATE(60.606060)
+ MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
+ MCFG_SCREEN_SIZE(36*8, 28*8)
+ MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1)
+ MCFG_SCREEN_UPDATE_DRIVER(jrpacman_state, screen_update_pacman)
+ MCFG_VIDEO_START_OVERRIDE(jrpacman_state,jrpacman)
+ MCFG_SCREEN_PALETTE("palette")
+ MCFG_GFXDECODE_ADD("gfxdecode", "palette", jrpacman)
+ MCFG_PALETTE_ADD("palette", 128*4)
+ MCFG_PALETTE_INDIRECT_ENTRIES(32)
+ MCFG_PALETTE_INIT_OWNER(jrpacman_state,pacman)
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+
+ MCFG_SOUND_ADD("namco", NAMCO, 3072000/32)
+ MCFG_NAMCO_AUDIO_VOICES(3)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
+MACHINE_CONFIG_END
+
+
+
+/*************************************
+ *
+ * ROM definitions
+ *
+ *************************************/
+
+ROM_START( jrpacman )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) )
+ ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) )
+ ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) )
+ ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) )
+ ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jrp2c.2c", 0x0000, 0x2000, CRC(0527ff9b) SHA1(37fe3176b0d125b7d629e108e7ebdc1196e4a132) ) /* tiles (bank 1 & 2) */
+ ROM_LOAD( "jrp2e.2e", 0x2000, 0x2000, CRC(73477193) SHA1(f00a488958ea0438642d345693787bdf771219ad) ) /* sprites (bank 1 & 2) */
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
+ROM_END
+
+ROM_START( jrpacmanf )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "fast_jr.8d", 0x0000, 0x2000, CRC(461e8b57) SHA1(42e25d384e653efb95a97bd64f55a8c3b3f71239) ) // only 1 byte difference
+ ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) )
+ ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) )
+ ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) )
+ ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jrp2c.2c", 0x0000, 0x2000, CRC(0527ff9b) SHA1(37fe3176b0d125b7d629e108e7ebdc1196e4a132) ) /* tiles (bank 1 & 2) */
+ ROM_LOAD( "jrp2e.2e", 0x2000, 0x2000, CRC(73477193) SHA1(f00a488958ea0438642d345693787bdf771219ad) ) /* sprites (bank 1 & 2) */
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
+ROM_END
+
+
+
+/*************************************
+ *
+ * Driver initialization
+ *
+ *************************************/
+
+DRIVER_INIT_MEMBER(jrpacman_state,jrpacman)
+{
+ /* The encryption PALs garble bits 0, 2 and 7 of the ROMs. The encryption */
+ /* scheme is complex (basically it's a state machine) and can only be */
+ /* faithfully emulated at run time. To avoid the performance hit that would */
+ /* cause, here we have a table of the values which must be XORed with */
+ /* each memory region to obtain the decrypted bytes. */
+ /* Decryption table provided by David Caldwell (david@indigita.com) */
+ /* For an accurate reproduction of the encryption, see jrcrypt.c */
+ static const struct {
+ int count;
+ int value;
+ } table[] =
+ {
+ { 0x00C1, 0x00 },{ 0x0002, 0x80 },{ 0x0004, 0x00 },{ 0x0006, 0x80 },
+ { 0x0003, 0x00 },{ 0x0002, 0x80 },{ 0x0009, 0x00 },{ 0x0004, 0x80 },
+ { 0x9968, 0x00 },{ 0x0001, 0x80 },{ 0x0002, 0x00 },{ 0x0001, 0x80 },
+ { 0x0009, 0x00 },{ 0x0002, 0x80 },{ 0x0009, 0x00 },{ 0x0001, 0x80 },
+ { 0x00AF, 0x00 },{ 0x000E, 0x04 },{ 0x0002, 0x00 },{ 0x0004, 0x04 },
+ { 0x001E, 0x00 },{ 0x0001, 0x80 },{ 0x0002, 0x00 },{ 0x0001, 0x80 },
+ { 0x0002, 0x00 },{ 0x0002, 0x80 },{ 0x0009, 0x00 },{ 0x0002, 0x80 },
+ { 0x0009, 0x00 },{ 0x0002, 0x80 },{ 0x0083, 0x00 },{ 0x0001, 0x04 },
+ { 0x0001, 0x01 },{ 0x0001, 0x00 },{ 0x0002, 0x05 },{ 0x0001, 0x00 },
+ { 0x0003, 0x04 },{ 0x0003, 0x01 },{ 0x0002, 0x00 },{ 0x0001, 0x04 },
+ { 0x0003, 0x01 },{ 0x0003, 0x00 },{ 0x0003, 0x04 },{ 0x0001, 0x01 },
+ { 0x002E, 0x00 },{ 0x0078, 0x01 },{ 0x0001, 0x04 },{ 0x0001, 0x05 },
+ { 0x0001, 0x00 },{ 0x0001, 0x01 },{ 0x0001, 0x04 },{ 0x0002, 0x00 },
+ { 0x0001, 0x01 },{ 0x0001, 0x04 },{ 0x0002, 0x00 },{ 0x0001, 0x01 },
+ { 0x0001, 0x04 },{ 0x0002, 0x00 },{ 0x0001, 0x01 },{ 0x0001, 0x04 },
+ { 0x0001, 0x05 },{ 0x0001, 0x00 },{ 0x0001, 0x01 },{ 0x0001, 0x04 },
+ { 0x0002, 0x00 },{ 0x0001, 0x01 },{ 0x0001, 0x04 },{ 0x0002, 0x00 },
+ { 0x0001, 0x01 },{ 0x0001, 0x04 },{ 0x0001, 0x05 },{ 0x0001, 0x00 },
+ { 0x01B0, 0x01 },{ 0x0001, 0x00 },{ 0x0002, 0x01 },{ 0x00AD, 0x00 },
+ { 0x0031, 0x01 },{ 0x005C, 0x00 },{ 0x0005, 0x01 },{ 0x604E, 0x00 },
+ { 0,0 }
+ };
+
+ uint8_t *RAM = machine().root_device().memregion("maincpu")->base();
+ int i, j, A;
+
+ for (i = A = 0; table[i].count; i++)
+ for (j = 0; j < table[i].count; j++)
+ RAM[A++] ^= table[i].value;
+}
+
+
+
+/*************************************
+ *
+ * Game drivers
+ *
+ *************************************/
+
+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 )
+
+
+// HBMAME roms
+
+ROM_START( jr1000 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) )
+ ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) )
+ ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) )
+ ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) )
+ ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jr1000.2c", 0x0000, 0x2000, CRC(8f93c273) SHA1(e672e0fdc8956967783110c0f36cfe0fd77cca90) )
+ ROM_LOAD( "jr1000.2e", 0x2000, 0x2000, CRC(eac97aec) SHA1(af5b88e1ce9d14851ae2db4e90cb6adb8df949c7) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) )
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) )
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) )
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) )
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) )
+ROM_END
+
+ROM_START( jr1000_2 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) )
+ ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) )
+ ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) )
+ ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) )
+ ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jr1000.2c", 0x0000, 0x2000, CRC(8f93c273) SHA1(e672e0fdc8956967783110c0f36cfe0fd77cca90) )
+ ROM_LOAD( "jr1000_2.2e", 0x2000, 0x2000, CRC(4f2010d4) SHA1(0835375487ccdb2ae77dd9e62229d0b6aeb9142a) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
+ROM_END
+
+ROM_START( jr2000 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) )
+ ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) )
+ ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) )
+ ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) )
+ ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jr2000.2c", 0x0000, 0x2000, CRC(2784936b) SHA1(31ceeaa0a6c2ca042d829b0baa7b5455c3942790) )
+ ROM_LOAD( "jr2000.2e", 0x2000, 0x2000, CRC(a26f1a49) SHA1(86d51269db2f7d8f6a7f12bd2bc1e2ab82f8be83) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
+ROM_END
+
+ROM_START( jr2001 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) )
+ ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) )
+ ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) )
+ ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) )
+ ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jr2001.2c", 0x0000, 0x2000, CRC(9171f08f) SHA1(d2af715feb9b5266edc24a0ea9eaecc456eb4fac) )
+ ROM_LOAD( "jr2001.2e", 0x2000, 0x2000, CRC(3164b853) SHA1(a3e23a902a9548a7025248a0e63fcbd4374de554) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
+ROM_END
+
+ROM_START( jr2001p)
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) )
+ ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) )
+ ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) )
+ ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) )
+ ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jr2001p.2c", 0x0000, 0x2000, CRC(d56cb9c5) SHA1(e598a28c0a4f1cdce2312a8dc418cfa441fc5fe8) )
+ ROM_LOAD( "jr2001p.2e", 0x2000, 0x2000, CRC(1b534804) SHA1(b93764b6d6aacdcb4a50fffec58cab7778ada3ab) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
+ROM_END
+
+ROM_START( jr2002 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) )
+ ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) )
+ ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) )
+ ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) )
+ ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jr2002.2c", 0x0000, 0x2000, CRC(e254096c) SHA1(f56127a6dcf8a6a5c916f33a29d761d36d55e543) )
+ ROM_LOAD( "jr2002.2e", 0x2000, 0x2000, CRC(e3240bec) SHA1(255669c33f88e39a5c5f041a800f14ec29d24f38) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
+ROM_END
+
+ROM_START( jr2002p )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) )
+ ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) )
+ ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) )
+ ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) )
+ ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jr2002p.2c", 0x0000, 0x2000, CRC(ad1d0360) SHA1(d401a4575899c64c35977c1c49dfe9ad38a804e7) )
+ ROM_LOAD( "jr2002p.2e", 0x2000, 0x2000, CRC(160321a1) SHA1(8e4ed3f8f5270fec8a00db92a6aebc9951074f33) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
+ROM_END
+
+ROM_START( jr2003 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) )
+ ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) )
+ ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) )
+ ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) )
+ ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jr2003.2c", 0x0000, 0x2000, CRC(0ffe21f5) SHA1(3a5503f46d4813ff77aaa633122346228bba659b) )
+ ROM_LOAD( "jr2003.2e", 0x2000, 0x2000, CRC(1fd35d7a) SHA1(b04e25c1fd0a148c4caae8ccb07fd2e3b4120325) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
+ROM_END
+
+ROM_START( jr2003p )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) )
+ ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) )
+ ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) )
+ ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) )
+ ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jr2003p.2c", 0x0000, 0x2000, CRC(b24e9383) SHA1(ba82f2e58e7ba1b64cf52c5da3bb8bf3fac7cea3) )
+ ROM_LOAD( "jr2003p.2e", 0x2000, 0x2000, CRC(65ba2fb7) SHA1(3a0ee8798c72d13300712a2537b3a44a13f9338f) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
+ROM_END
+
+ROM_START( jr2004 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) )
+ ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) )
+ ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) )
+ ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) )
+ ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jr2004.2c", 0x0000, 0x2000, CRC(3c20cf84) SHA1(8d34d50839b3f62bfbe9ee4ed633422be6459e73) )
+ ROM_LOAD( "jr2004.2e", 0x2000, 0x2000, CRC(f08575ab) SHA1(c5935f88fac7cc9f58e56d857e89c232582c1882) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
+ROM_END
+
+ROM_START( jr2004p )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) )
+ ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) )
+ ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) )
+ ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) )
+ ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jr2004p.2c", 0x0000, 0x2000, CRC(6e1db602) SHA1(27bf6776d044c602cf9da88cfd19e23d4771759d) )
+ ROM_LOAD( "jr2004p.2e", 0x2000, 0x2000, CRC(ab075ebe) SHA1(4cafb1019acf49111fdc5e695d95610219a0573d) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
+ROM_END
+
+ROM_START( jr2005 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) )
+ ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) )
+ ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) )
+ ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) )
+ ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jr2005.2c", 0x0000, 0x2000, CRC(42eb8848) SHA1(79ee37c77ec8374c568699c4161cd46ef8631a17) )
+ ROM_LOAD( "jr2005.2e", 0x2000, 0x2000, CRC(502d286c) SHA1(7fcf21d4037f7ffaf68be4c9089b3b3aa0ad59d3) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
+ROM_END
+
+ROM_START( jr2005p )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) )
+ ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) )
+ ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) )
+ ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) )
+ ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jr2005p.2c", 0x0000, 0x2000, CRC(4d03cd0a) SHA1(eb3c5ed5d0a5d4d67baae2ad629ffbfadbe2bea3) )
+ ROM_LOAD( "jr2005p.2e", 0x2000, 0x2000, CRC(51cbce81) SHA1(37129228e8e92dd2a500ac2653364506129b7a2e) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
+ROM_END
+
+ROM_START( jr3000p )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) )
+ ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) )
+ ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) )
+ ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) )
+ ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jr1000.2c", 0x0000, 0x2000, CRC(8f93c273) SHA1(e672e0fdc8956967783110c0f36cfe0fd77cca90) )
+ ROM_LOAD( "jr3000p.2e", 0x2000, 0x2000, CRC(0a8f7b5c) SHA1(2182b24330021faa447944e51bebc5159b2b4f0b) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
+ROM_END
+
+ROM_START( jr4000p )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) )
+ ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) )
+ ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) )
+ ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) )
+ ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jr4000p.2c", 0x0000, 0x2000, CRC(c5f05f11) SHA1(9fdafd46adebb709b2b897b0b53b05c4392239b2) )
+ ROM_LOAD( "jr4000p.2e", 0x2000, 0x2000, CRC(944add80) SHA1(c391a2bb0d655da87d13581b16d09fe896106efd) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
+ROM_END
+
+ROM_START( jr5000p )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) )
+ ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) )
+ ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) )
+ ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) )
+ ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jr5000p.2c", 0x0000, 0x2000, CRC(086979e1) SHA1(6c7fa4118fbb90417d3397c9f1f5eee14cb938de) )
+ ROM_LOAD( "jr5000p.2e", 0x2000, 0x2000, CRC(a0fce81b) SHA1(8704a18e43c5134fc758df3a443c3f0e6990c417) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
+ROM_END
+
+ROM_START( jr6000 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) )
+ ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) )
+ ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) )
+ ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) )
+ ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jr6000.2c", 0x0000, 0x2000, CRC(44bd3c24) SHA1(d0321f314f604bb268fd62fde2e6a536f2c735f2) )
+ ROM_LOAD( "jr6000.2e", 0x2000, 0x2000, CRC(83c8ff32) SHA1(ceae512347ca4c4aa1e88623894c3279281c0639) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
+ROM_END
+
+ROM_START( jr7000 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) )
+ ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) )
+ ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) )
+ ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) )
+ ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jr7000.2c", 0x0000, 0x2000, CRC(3dca34d5) SHA1(02b8ac91a683fa9688e5897ac206f344fbd71767) )
+ ROM_LOAD( "jr7000.2e", 0x2000, 0x2000, CRC(202f2f37) SHA1(337f7e7d123f914833115610a763fe7dc55c3d24) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
+ROM_END
+
+ROM_START( jr7000p )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) )
+ ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) )
+ ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) )
+ ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) )
+ ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jr7000p.2c", 0x0000, 0x2000, CRC(3b3e60fe) SHA1(26ff62f8aa655fa927694f791ae8a361dc438f3c) )
+ ROM_LOAD( "jr7000p.2e", 0x2000, 0x2000, CRC(89b17c92) SHA1(2fc39e05fc35a69a6d224b6024f978b7c15bfb80) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
+ROM_END
+
+ROM_START( jr8000 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) )
+ ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) )
+ ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) )
+ ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) )
+ ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jr8000.2c", 0x0000, 0x2000, CRC(9653f563) SHA1(0a71d70645a8cd2e407a638e934deda43b41e56c) )
+ ROM_LOAD( "jr8000.2e", 0x2000, 0x2000, CRC(0b1791f8) SHA1(1d6d494d8acfd57301fc01a86a27df2b7e697f1b) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
+ROM_END
+
+ROM_START( jr8000p )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) )
+ ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) )
+ ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) )
+ ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) )
+ ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jr8000p.2c", 0x0000, 0x2000, CRC(913a0bea) SHA1(005e3908956169648464dfdd6ae5e2b67ba2233f) )
+ ROM_LOAD( "jr8000p.2e", 0x2000, 0x2000, CRC(aed01226) SHA1(ae8022e36c7f7c083c1a697e54c7587044fcb491) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
+ROM_END
+
+ROM_START( jr9000p )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) )
+ ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) )
+ ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) )
+ ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) )
+ ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jr9000p.2c", 0x0000, 0x2000, CRC(b2653891) SHA1(e96ab61f58bb9b47751e7e9397f2d44ff35897e6) )
+ ROM_LOAD( "jr9000p.2e", 0x2000, 0x2000, CRC(87f45bd7) SHA1(7a45e0d5479de3d867518354f108e62f7e4d9877) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
+ROM_END
+
+ROM_START( jrcheat )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "cheat-8d.bin", 0x0000, 0x2000, CRC(8b5b8d72) SHA1(65af9245015480751b3714980caed81e421d102c) )
+ ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) )
+ ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) )
+ ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) )
+ ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jrp2c.2c", 0x0000, 0x2000, CRC(0527ff9b) SHA1(37fe3176b0d125b7d629e108e7ebdc1196e4a132) )
+ ROM_LOAD( "jrp2e.2e", 0x2000, 0x2000, CRC(73477193) SHA1(f00a488958ea0438642d345693787bdf771219ad) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
+ROM_END
+
+ROM_START( jrdeluxe )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) )
+ ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) )
+ ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) )
+ ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) )
+ ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jrdeluxe.2c", 0x0000, 0x2000, CRC(90517001) SHA1(cfb4a43bf9ef732a940b027de383e7a6ec0ec671) )
+ ROM_LOAD( "jrdeluxe.2e", 0x2000, 0x2000, CRC(ef042965) SHA1(8497d2c7fdae6b1903df421ae1358a3b41e78599) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
+ROM_END
+
+/* The first rom (jppac1.bin) contains hacked jrpacman in first half, and unhacked in 2nd half.
+ Therefore the 2nd half is not needed. The only byte changed in the hack is the speedup byte at 0x180d */
+
+ROM_START( jrfast )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "jppac1.bin", 0x0000, 0x2000, CRC(f3bcb240) SHA1(b1fbf28666d5f159daf8f6156e3e31c932bb4081) )
+ ROM_IGNORE (0x2000)
+ ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) )
+ ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) )
+ ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) )
+ ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jrp2c.2c", 0x0000, 0x2000, CRC(0527ff9b) SHA1(37fe3176b0d125b7d629e108e7ebdc1196e4a132) )
+ ROM_LOAD( "jrp2e.2e", 0x2000, 0x2000, CRC(73477193) SHA1(f00a488958ea0438642d345693787bdf771219ad) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
+ROM_END
+
+ROM_START( jrhearts )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) )
+ ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) )
+ ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) )
+ ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) )
+ ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jrhearts.2c", 0x0000, 0x2000, CRC(40cafa63) SHA1(c68a7eefabe4d8b008533abe3cf4b1a6512cd25e) )
+ ROM_LOAD( "jrp2e.2e", 0x2000, 0x2000, CRC(73477193) SHA1(f00a488958ea0438642d345693787bdf771219ad) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
+ROM_END
+
+ROM_START( jrpacad )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) )
+ ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) )
+ ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) )
+ ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) )
+ ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jrpacad.2c", 0x0000, 0x2000, CRC(1ecf940c) SHA1(035b1d44da3a010f8c158211d07f5c6e7d16b63d) )
+ ROM_LOAD( "jrvectr.2e", 0x2000, 0x2000, CRC(c0b35564) SHA1(c0c6de032023c301608c584489d564a61256345b) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
+ROM_END
+
+ROM_START( jrpacjr)
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) )
+ ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) )
+ ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) )
+ ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) )
+ ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jrpacjr.2c", 0x0000, 0x2000, CRC(54e6c297) SHA1(fa3c5240ca8a9e0c520864189c8b18105af629a7) )
+ ROM_LOAD( "jrpacjr.2e", 0x2000, 0x2000, CRC(5b34dd98) SHA1(342393af97e13fe32b684e467bf48019f7c0c1c3) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
+ROM_END
+
+ROM_START( jrpacjrp )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) )
+ ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) )
+ ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) )
+ ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) )
+ ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jrpacjr.2c", 0x0000, 0x2000, CRC(54e6c297) SHA1(fa3c5240ca8a9e0c520864189c8b18105af629a7) )
+ ROM_LOAD( "jrpacjrp.2e", 0x2000, 0x2000, CRC(1ee279ef) SHA1(ec26313fdf82ff7e4ff0acef28e2ce21a0539c1f) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
+ROM_END
+
+ROM_START( jrpacp )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) )
+ ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) )
+ ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) )
+ ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) )
+ ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jrpacp.2c", 0x0000, 0x2000, CRC(4fe4238e) SHA1(1175b3f9e3a9120a2149b124259097e8c574a76d) )
+ ROM_LOAD( "jrpacp.2e", 0x2000, 0x2000, CRC(5993c0fa) SHA1(d5eee63b06972b09668c3fd66e737668439e26b7) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
+ROM_END
+
+ROM_START( jrspeed )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "speed-8d.bin", 0x0000, 0x2000, CRC(461e8b57) SHA1(42e25d384e653efb95a97bd64f55a8c3b3f71239) )
+ ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) )
+ ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) )
+ ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) )
+ ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jrp2c.2c", 0x0000, 0x2000, CRC(0527ff9b) SHA1(37fe3176b0d125b7d629e108e7ebdc1196e4a132) )
+ ROM_LOAD( "jrp2e.2e", 0x2000, 0x2000, CRC(73477193) SHA1(f00a488958ea0438642d345693787bdf771219ad) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
+ROM_END
+
+ROM_START( jrvectr )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) )
+ ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) )
+ ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) )
+ ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) )
+ ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jrvectr.2c", 0x0000, 0x2000, CRC(4876ad83) SHA1(6ab405a622fe93bcea627635cb266712a4174ce5) )
+ ROM_LOAD( "jrvectr.2e", 0x2000, 0x2000, CRC(c0b35564) SHA1(c0c6de032023c301608c584489d564a61256345b) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
+ROM_END
+
+ROM_START( jryumyum )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) )
+ ROM_LOAD( "jryumyum.8e", 0x2000, 0x2000, CRC(934f1d34) SHA1(1c502edea62ee7fca11d54cb8ff0ea6263828056) )
+ ROM_LOAD( "jryumyum.8h", 0x8000, 0x2000, CRC(d59cb636) SHA1(f2e9c0d4c62706a9d7ec68633ccb0edadf5e5439) )
+ ROM_LOAD( "jryumyum.8j", 0xa000, 0x2000, CRC(010fb8dd) SHA1(4c1193d3a1abde76f8c28245a451873162ec6848) )
+ ROM_LOAD( "jryumyum.8k", 0xc000, 0x2000, CRC(191a176c) SHA1(ae5e3c4bd788dd56e0da4130388ee841002cab6c) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jryumyum.2c", 0x0000, 0x2000, CRC(f057d596) SHA1(66cbe2720ecc456e9cef5422cf060bd507967fc2) )
+ ROM_LOAD( "jryumyum.2e", 0x2000, 0x2000, CRC(e851bf29) SHA1(d31fd0bb3b0614a9750f07a55e93b94d16643899) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) )
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) )
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) )
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) )
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) )
+ROM_END
+
+
+
+GAME( 2000, jr1000, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man 1000", MACHINE_SUPPORTS_SAVE )
+GAME( 1983, jr1000_2, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Bally Midway", "Jr. Pac-Man 1000 (Alt)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, jr2000, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man 2000", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, jr2001, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man 2001", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, jr2001p, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man 2001 Plus", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, jr2002, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man 2002", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, jr2002p, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man 2002 Plus", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, jr2003, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man 2003", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, jr2003p, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man 2003 Plus", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, jr2004, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man 2004", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, jr2004p, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man 2004 Plus", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, jr2005, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man 2005", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, jr2005p, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man 2005 Plus", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, jr3000p, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man 3000 Plus", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, jr4000p, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man 4000 Plus", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, jr5000p, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man 5000 Plus", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, jr6000, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man 6000", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, jr7000, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man 7000", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, jr7000p, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man 7000 Plus", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, jr8000, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man 8000", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, jr8000p, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man 8000 Plus", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, jr9000p, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man 9000 Plus", MACHINE_SUPPORTS_SAVE )
+GAME( 1983, jrcheat, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Bally Midway", "Jr. Pac-Man Cheat [c]", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, jrdeluxe, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man Deluxe", MACHINE_SUPPORTS_SAVE )
+GAME( 1983, jrfast, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Bally Midway", "Jr. PacMan [f]", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, jrhearts, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Bally Midway", "Jr. Pac-Man Hearts", MACHINE_SUPPORTS_SAVE )
+GAME( 1983, jrpacad, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Bally Midway", "Jr. Pac-Man After Dark", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, jrpacjr, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man Junior", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, jrpacjrp, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man Junior Plus", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, jrpacp, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man Plus", MACHINE_SUPPORTS_SAVE )
+GAME( 1983, jrspeed, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Bally Midway", "Jr. Pac-Man Speed [f]", MACHINE_SUPPORTS_SAVE )
+GAME( 1983, jrvectr, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Bally Midway", "Jr. Pac-Man Vector", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, jryumyum, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Tim Appleton", "Jr. Pac-Man Vs YumYum + Friends", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/kaneko16.cpp b/docs/release/src/hbmame/drivers/kaneko16.cpp
new file mode 100644
index 00000000000..7c7b6850e60
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/kaneko16.cpp
@@ -0,0 +1,66 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/kaneko16.cpp"
+
+ROM_START( fjbusterbh )
+ ROM_REGION( 0x040000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "fbbh030a.u61", 0x000000, 0x020000, CRC(c3a66037) SHA1(4ca1b440ca822d6c6adecb5c0a3d83126bc775a2) )
+ ROM_LOAD16_BYTE( "fbbh031j.u62", 0x000001, 0x020000, CRC(c104ca05) SHA1(6247ab05c6c88352a75d606961b98cd957709590) )
+
+ ROM_REGION( 0x020000, "calc3_rom", 0 )
+ ROM_LOAD( "fb040j.u33", 0x000000, 0x020000, CRC(299d0746) SHA1(67fe3a47ab01fa02ce2bb5836c2041986c19d875) )
+
+ ROM_REGION( 0x1000000, "gfx1", ROMREGION_ERASEFF )
+ ROM_LOAD( "fb-020a.u1", 0x000000, 0x100000, CRC(87e55c6d) SHA1(87886c045d7c30b8dee3c8fb0bf8f2cdbc5fd7fb) )
+ ROM_LOAD( "fb020b.u2", 0x100000, 0x100000, CRC(276b9d7b) SHA1(7a154f65b4737f2b6ac8effa3352711079f571dc) )
+ ROM_LOAD( "fb021a.u3", 0x200000, 0x100000, CRC(7da15d37) SHA1(345cf2242e8210a697294a45197f2b3b974de885) )
+ ROM_LOAD( "fb021b.u4", 0x300000, 0x100000, CRC(6a512d7b) SHA1(7fc3002d23262a9a590a283ea9e111e38d889ef2) )
+ ROM_LOAD( "fb-22a.u5", 0x400000, 0x100000, CRC(9039e5d3) SHA1(222452cd7947f7c99c68e495835cca62e0449b5c) )
+ ROM_LOAD( "fb-22b.u6", 0x500000, 0x100000, CRC(96ac9e54) SHA1(2b066375963dc57fe2ce89d65f6c0a9d183a838d) )
+ ROM_LOAD( "fb023.u7", 0x600000, 0x100000, CRC(132794bd) SHA1(bcc73c3183c59a4b66f79d04774773b8a9239501) )
+
+ ROM_REGION( 0x400000, "gfx2", 0 )
+ ROM_LOAD( "fb010.u65", 0x000000, 0x100000, CRC(296ffd92) SHA1(183a28e4594c428deb4726ed22d5166592b94b60) )
+ ROM_LOAD( "fb011.u66", 0x100000, 0x080000, CRC(500a0367) SHA1(6dc5190f81b21f59ee56a3b2332c8d86d6599782) )
+
+ ROM_REGION( 0x100000, "oki1", 0 )
+ ROM_LOAD( "fb000j.u43", 0x000000, 0x080000, CRC(a7522555) SHA1(ea88d90dda20bc309f98a1924c41551e7708e6af) )
+ ROM_LOAD( "fb001j_u.101", 0x080000, 0x080000, CRC(07d4e8e2) SHA1(0de911f452ddeb54b0b435b9c1cf5d5881175d44) )
+
+ ROM_REGION( 0x200000, "oki2", 0 )
+ ROM_LOAD( "fb-002.u45", 0x000000, 0x100000, CRC(010acc17) SHA1(2dc0897c7778eacf6bce12ff0adbadb307ea6c17) )
+ ROM_LOAD( "fb-003.u44", 0x100000, 0x100000, CRC(0aea4ac5) SHA1(8f3b30e505b0ba51c140a0a2c071680d4fa05db9) )
+ROM_END
+
+ROM_START( shogwarrbh )
+ ROM_REGION( 0x040000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "fbbh030a.u61", 0x000000, 0x020000, CRC(c3a66037) SHA1(4ca1b440ca822d6c6adecb5c0a3d83126bc775a2) )
+ ROM_LOAD16_BYTE( "fbbh031a.u62", 0x000001, 0x020000, CRC(e382acf8) SHA1(50177a525fb6138490c70e50f5b9ae476cb8d6de) )
+
+ ROM_REGION( 0x020000, "calc3_rom", 0 )
+ ROM_LOAD( "fb040a.u33", 0x000000, 0x020000, CRC(4b62c4d9) SHA1(35c943dde70438a411714070e42a84366db5ef83) )
+
+ ROM_REGION( 0x1000000, "gfx1", ROMREGION_ERASEFF )
+ ROM_LOAD( "fb-020a.u1", 0x000000, 0x100000, CRC(87e55c6d) SHA1(87886c045d7c30b8dee3c8fb0bf8f2cdbc5fd7fb) )
+ ROM_LOAD( "fb020b.u2", 0x100000, 0x100000, CRC(276b9d7b) SHA1(7a154f65b4737f2b6ac8effa3352711079f571dc) )
+ ROM_LOAD( "fb021a.u3", 0x200000, 0x100000, CRC(7da15d37) SHA1(345cf2242e8210a697294a45197f2b3b974de885) )
+ ROM_LOAD( "fb021b.u4", 0x300000, 0x100000, CRC(6a512d7b) SHA1(7fc3002d23262a9a590a283ea9e111e38d889ef2) )
+ ROM_LOAD( "fb-22a.u5", 0x400000, 0x100000, CRC(9039e5d3) SHA1(222452cd7947f7c99c68e495835cca62e0449b5c) )
+ ROM_LOAD( "fb-22b.u6", 0x500000, 0x100000, CRC(96ac9e54) SHA1(2b066375963dc57fe2ce89d65f6c0a9d183a838d) )
+ ROM_LOAD( "fb023.u7", 0x600000, 0x100000, CRC(132794bd) SHA1(bcc73c3183c59a4b66f79d04774773b8a9239501) )
+
+ ROM_REGION( 0x400000, "gfx2", 0 )
+ ROM_LOAD( "fb010.u65", 0x000000, 0x100000, CRC(296ffd92) SHA1(183a28e4594c428deb4726ed22d5166592b94b60) )
+ ROM_LOAD( "fb011.u66", 0x100000, 0x080000, CRC(500a0367) SHA1(6dc5190f81b21f59ee56a3b2332c8d86d6599782) )
+
+ ROM_REGION( 0x100000, "oki1", 0 )
+ ROM_LOAD( "fb001e.u43", 0x000000, 0x080000, CRC(f524aaa1) SHA1(006a886f9df2e57c51b61c6cea70a6574fc20304) )
+ ROM_LOAD( "fb000e.u42", 0x080000, 0x080000, CRC(969f1465) SHA1(4f56d1ad341b08f4db41b7ab2498740612ff7c3d) )
+
+ ROM_REGION( 0x200000, "oki2", 0 )
+ ROM_LOAD( "fb-002.u45", 0x000000, 0x100000, CRC(010acc17) SHA1(2dc0897c7778eacf6bce12ff0adbadb307ea6c17) )
+ ROM_LOAD( "fb-003.u44", 0x100000, 0x100000, CRC(0aea4ac5) SHA1(8f3b30e505b0ba51c140a0a2c071680d4fa05db9) )
+ROM_END
+
+GAME( 1992, fjbusterbh, shogwarr, shogwarr, shogwarr, kaneko16_shogwarr_state, shogwarr, ROT0, "e107", "Fujiyama Buster (Japan) Boss Hack by e107", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
+GAME( 1992, shogwarrbh, shogwarr, shogwarr, shogwarr, kaneko16_shogwarr_state, shogwarr, ROT0, "e107", "Shogun Warriors (World) Boss Hack by e107", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/kof2000.cpp b/docs/release/src/hbmame/drivers/kof2000.cpp
new file mode 100644
index 00000000000..a4ceb7f840b
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/kof2000.cpp
@@ -0,0 +1,1204 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, kof2000d )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 2;
+ m_sma_prot->kof2000_decrypt_68k(cpuregion);
+ m_sma_prot->kof2000_install_protection(m_maincpu, m_banked_cart);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, kof2000h )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 2;
+ m_sma_prot->kof2000_install_protection(m_maincpu, m_banked_cart);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, kof2000m )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 2;
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, KOF2000_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, kof2kbsd )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 2;
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, kof2kxxx )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 2;
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, KOF2000_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, kof2knd )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 2;
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+
+ROM_START( kof2000d )
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "neo-sma", 0x0c0000, 0x040000, CRC(71c6e6bb) SHA1(1bd29ded4c6b29780db8e8b772c452189699ca89) )
+ ROM_LOAD16_WORD_SWAP( "257-p1.p1", 0x100000, 0x400000, CRC(60947b4c) SHA1(5faa0a7ac7734d6c8e276589bd12dd574264647d) )
+ ROM_LOAD16_WORD_SWAP( "257-p2.p2", 0x500000, 0x400000, CRC(1b7ec415) SHA1(f19fa44e9ee5b5a6eb4a051349d6bc4acc3bbbdb) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257d.c1", 0x0000000, 0x800000, CRC(abcdd424) SHA1(1d52aae8a7806d48c098c2a7a77dff6e02ac4870) )
+ ROM_LOAD16_BYTE( "257d.c2", 0x0000001, 0x800000, CRC(cda33778) SHA1(a619740364c952c443f27ed9b7c395610f2673c7) )
+ ROM_LOAD16_BYTE( "257d.c3", 0x1000000, 0x800000, CRC(087fb15b) SHA1(f77cb6e670cdf7709d84d770ecf28533cbfbe6de) )
+ ROM_LOAD16_BYTE( "257d.c4", 0x1000001, 0x800000, CRC(fe9dfde4) SHA1(23750ff0c4bc084d55eea66a5cdd0ef2d6c32cdc) )
+ ROM_LOAD16_BYTE( "257d.c5", 0x2000000, 0x800000, CRC(03ee4bf4) SHA1(8f26c5bc525a5786de8e25797e2875a1dfe527be) )
+ ROM_LOAD16_BYTE( "257d.c6", 0x2000001, 0x800000, CRC(8599cc5b) SHA1(9a05fc12273aebfbc4ac22e88b32ae9ecd269462) )
+ ROM_LOAD16_BYTE( "257d.c7", 0x3000000, 0x800000, CRC(71dfc3e2) SHA1(1889a8dc88993e35f9fd93ce2bee1de52995932d) )
+ ROM_LOAD16_BYTE( "257d.c8", 0x3000001, 0x800000, CRC(0fa30e5f) SHA1(0cb7fa6b0219e1af2df9b97786c677651a78f37a) )
+ROM_END
+
+ROM_START( kof2000ev ) // all confirmed (alt m1 = d404db70)
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "neo-sma.ev", 0x0c0000, 0x040000, CRC(329d80c9) SHA1(b1360c265a17a14b885dccfce67d14b3e5bc43a5) )
+ ROM_LOAD16_WORD_SWAP( "257ev.p1", 0x100000, 0x400000, CRC(70b76979) SHA1(d6543c5399f9064423923effe0558dbe2d46c1d7) )
+ ROM_LOAD16_WORD_SWAP( "257ev.p2", 0x500000, 0x400000, CRC(1ec748c2) SHA1(d2d9c78f35a148ed7629d6be02f4264956849beb) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_ENCRYPTED_256K( "257-m1.m1", CRC(4b749113) SHA1(2af2361146edd0ce3966614d90165a5c1afb8de4) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257ev.c1", 0x0000000, 0x800000, CRC(c89d1994) SHA1(2eb8a27f39dea743907b4be9e9d99f1858a30ba4) )
+ ROM_LOAD16_BYTE( "257ev.c2", 0x0000001, 0x800000, CRC(19754968) SHA1(ca9692d5eac8e6eef5e5dd9888c5e8edcc9a0a7a) )
+ ROM_LOAD16_BYTE( "257ev.c3", 0x1000000, 0x800000, CRC(c76b919b) SHA1(3f6245580e55c63d248478818005348f0cb92a6b) )
+ ROM_LOAD16_BYTE( "257ev.c4", 0x1000001, 0x800000, CRC(5e03f2af) SHA1(85b7ec527a70411ad27d32a1169915b62230a3a7) )
+ ROM_LOAD16_BYTE( "257ev.c5", 0x2000000, 0x800000, CRC(6a3b2fbd) SHA1(dbcf018f96767f753a2bab87f8d31fa6f6ef98d2) )
+ ROM_LOAD16_BYTE( "257ev.c6", 0x2000001, 0x800000, CRC(ac4a8edc) SHA1(a305c8c5df3c2191fcdb73d799074a4191f2a252) )
+ ROM_LOAD16_BYTE( "257ev.c7", 0x3000000, 0x800000, CRC(608ffca9) SHA1(0d3b184e44b9833f7338514e5633ccb3b3e39fb1) )
+ ROM_LOAD16_BYTE( "257ev.c8", 0x3000001, 0x800000, CRC(73280ea8) SHA1(76bad66577b6d9618f2a190d54259eb3b1082d69) )
+ROM_END
+
+ROM_START( kof2000r )
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257r.p3", 0x0c0000, 0x040000, CRC(11b98ae2) SHA1(fd901690334ccc26f0680427b05b5c4aad8b7e1a) )
+ ROM_LOAD16_WORD_SWAP( "257r.p1", 0x100000, 0x400000, CRC(a9f1fb34) SHA1(a09f2bac40f91fc6910edef9699b10197f08f589) )
+ ROM_LOAD16_WORD_SWAP( "257r.p2", 0x500000, 0x400000, CRC(9d26d55d) SHA1(ecb3b0bb98a24553d04c04c30f72f250ea86afeb) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_ENCRYPTED_256K( "257-m1.m1", CRC(4b749113) SHA1(2af2361146edd0ce3966614d90165a5c1afb8de4) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) )
+ ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) )
+ ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) )
+ ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) )
+ ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) )
+ ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) )
+ ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) )
+ ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) )
+ROM_END
+
+ROM_START( kof2kbh ) /* The King of Fighters 2000 - Hack by Dodowang - (AES mode: can choose Zero; Practice-can choose Zero - MVS mode: can choose Kula and Zero - Zero has icon) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257bh.p1", 0x000000, 0x100000, CRC(613d1fc2) SHA1(69a6d8add28291a14d69e9a098dd78a84f6c9b31) )
+ ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) )
+
+ NEO_SFIX_MT_512K
+ ROM_LOAD( "257bh.s1", 0x000000, 0x80000, CRC(36ae018e) SHA1(f06c3a6f8607b7cb689f3edacb37db6fe8b8f0b6) )
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257d.c1", 0x0000000, 0x800000, CRC(abcdd424) SHA1(1d52aae8a7806d48c098c2a7a77dff6e02ac4870) )
+ ROM_LOAD16_BYTE( "257d.c2", 0x0000001, 0x800000, CRC(cda33778) SHA1(a619740364c952c443f27ed9b7c395610f2673c7) )
+ ROM_LOAD16_BYTE( "257d.c3", 0x1000000, 0x800000, CRC(087fb15b) SHA1(f77cb6e670cdf7709d84d770ecf28533cbfbe6de) )
+ ROM_LOAD16_BYTE( "257d.c4", 0x1000001, 0x800000, CRC(fe9dfde4) SHA1(23750ff0c4bc084d55eea66a5cdd0ef2d6c32cdc) )
+ ROM_LOAD16_BYTE( "257d.c5", 0x2000000, 0x800000, CRC(03ee4bf4) SHA1(8f26c5bc525a5786de8e25797e2875a1dfe527be) )
+ ROM_LOAD16_BYTE( "257d.c6", 0x2000001, 0x800000, CRC(8599cc5b) SHA1(9a05fc12273aebfbc4ac22e88b32ae9ecd269462) )
+ ROM_LOAD16_BYTE( "257bh.c7", 0x3000000, 0x800000, CRC(f7636227) SHA1(a76b331c96a7bf6fb4123c88a15f565c82b13373) )
+ ROM_LOAD16_BYTE( "257bh.c8", 0x3000001, 0x800000, CRC(b887fe36) SHA1(d6fc2fba39c8f22ddbe911345ba1d21561cc4eb2) )
+ROM_END
+
+ROM_START( kof2kbj ) /* The King of Fighters 2000 - Hack by Jason/K3 - (AES mode: can choose Zero; Practice-can choose Zero - MVS mode: can choose Kula and Zero) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257bj.p1", 0x000000, 0x100000, CRC(fafe059e) SHA1(6167c6a2f8d8b2d08d8a2dfd26e1722bdca9c3f7) )
+ ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) )
+ ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) )
+ ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) )
+ ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) )
+ ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) )
+ ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) )
+ ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) )
+ ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) )
+ROM_END
+
+ROM_START( kof2kbsd )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257bsd.p1", 0x000000, 0x100000, CRC(391948a6) SHA1(a41759bdb587a8765e5f5cc7a4631e9b002d4cf4) )
+ ROM_LOAD16_WORD_SWAP( "257bsd.p2", 0x100000, 0x400000, CRC(7a6d80b8) SHA1(0a3bcf71a43b2b5dde0c33ed107c207a7c59e90c) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_ENCRYPTED_256K( "257-m1.m1", CRC(4b749113) SHA1(2af2361146edd0ce3966614d90165a5c1afb8de4) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257d.c1", 0x0000000, 0x800000, CRC(abcdd424) SHA1(1d52aae8a7806d48c098c2a7a77dff6e02ac4870) )
+ ROM_LOAD16_BYTE( "257d.c2", 0x0000001, 0x800000, CRC(cda33778) SHA1(a619740364c952c443f27ed9b7c395610f2673c7) )
+ ROM_LOAD16_BYTE( "257d.c3", 0x1000000, 0x800000, CRC(087fb15b) SHA1(f77cb6e670cdf7709d84d770ecf28533cbfbe6de) )
+ ROM_LOAD16_BYTE( "257d.c4", 0x1000001, 0x800000, CRC(fe9dfde4) SHA1(23750ff0c4bc084d55eea66a5cdd0ef2d6c32cdc) )
+ ROM_LOAD16_BYTE( "257d.c5", 0x2000000, 0x800000, CRC(03ee4bf4) SHA1(8f26c5bc525a5786de8e25797e2875a1dfe527be) )
+ ROM_LOAD16_BYTE( "257d.c6", 0x2000001, 0x800000, CRC(8599cc5b) SHA1(9a05fc12273aebfbc4ac22e88b32ae9ecd269462) )
+ ROM_LOAD16_BYTE( "257bsd.c7", 0x3000000, 0x800000, CRC(110f72a3) SHA1(7540aa2be692fbbcd887c8377ca6891d1ba1b6ed) )
+ ROM_LOAD16_BYTE( "257bsd.c8", 0x3000001, 0x800000, CRC(4347f6af) SHA1(fc744d68e04905af1fa8d39d8772fba67e14777f) )
+ROM_END
+
+ROM_START( kof2kce ) /* The King of Fighters 2000 - Colour fix by UNKNOWN - (Character colour change) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257-pg1.p1", 0x000000, 0x100000, CRC(5f809dbe) SHA1(2bc233dcff5622de86d01e3b74b840c7caf12982) )
+ ROM_LOAD16_WORD_SWAP( "257ce.p2", 0x100000, 0x400000, CRC(60b00b9b) SHA1(eb2ea3980dbd2fe4d15b9155d4de7593396f8555) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) )
+ ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) )
+ ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) )
+ ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) )
+ ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) )
+ ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) )
+ ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) )
+ ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) )
+ROM_END
+
+ROM_START( kof2kch ) /* The King of Fighters 2000 - Remix by Chase - (Character move change 20030503) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257ch.p1", 0x000000, 0x100000, CRC(6a4ac2cf) SHA1(0120d712439c909b96607b487bfbc93444e3da04) )
+ ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) )
+ ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) )
+ ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) )
+ ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) )
+ ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) )
+ ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) )
+ ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) )
+ ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) )
+ROM_END
+
+ROM_START( kof2kcp ) /* The King of Fighters 2000 - Colour fix by UNKNOWN - (Character colour change) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257-pg1.p1", 0x000000, 0x100000, CRC(5f809dbe) SHA1(2bc233dcff5622de86d01e3b74b840c7caf12982) )
+ ROM_LOAD16_WORD_SWAP( "257cp.p2", 0x100000, 0x400000, CRC(a73339fd) SHA1(cce171fdb4e3be4b8431eea60b0bea36630bd94f) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) )
+ ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) )
+ ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) )
+ ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) )
+ ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) )
+ ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) )
+ ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) )
+ ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) )
+ROM_END
+
+ROM_START( kof2keh ) /* The King of Fighters 2000 - Enhance by Ydmis - (Can choose Kula and Zero - ultra kill start is max) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257eh.p1", 0x000000, 0x100000, CRC(3a301e5b) SHA1(a8fe40cc1577bcf1503726cd38b502e8e5c4f621) )
+ ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) )
+ ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) )
+ ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) )
+ ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) )
+ ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) )
+ ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) )
+ ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) )
+ ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) )
+ROM_END
+
+ROM_START( kof2kehr ) /* The King of Fighters 2000 - Remix by Raymonose - (Character move change - can choose Kula and Zero - ultra power hack) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257ehr.p1", 0x000000, 0x100000, CRC(db0a8678) SHA1(d6f11011dfb9e7ee04cffbd9e1768a8fc9982fba) )
+ ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) )
+ ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) )
+ ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) )
+ ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) )
+ ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) )
+ ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) )
+ ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) )
+ ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) )
+ROM_END
+
+ROM_START( kof2kevo ) /* The King of Fighters 2000 - KOF2000 Evolution by Jason/K3 and Wesker - (KOF 2000 Evolution v1.2 - see readme for details) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257evo.p1", 0x000000, 0x100000, CRC(3107aa48) SHA1(e7240cc8697d63657ed59c8d2ea69e883d690d7d) )
+ ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) )
+ ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) )
+ ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) )
+ ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) )
+ ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) )
+ ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) )
+ ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) )
+ ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) )
+ROM_END
+
+ROM_START( kof2kevo1 ) /* [OLD] The King of Fighters 2000 N - (kof2kevo101) - KOF 2000 Evolution by Jason/K3 and Wesker - (KOF 2000 Evolution v1.01 - see readme for details) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257evo1.p1", 0x000000, 0x100000, CRC(ac684cce) SHA1(1fb72efd4fa0a4c40b0c16b913f5fa5fdd471d74) )
+ ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) )
+ ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) )
+ ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) )
+ ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) )
+ ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) )
+ ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) )
+ ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) )
+ ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) )
+ROM_END
+
+ROM_START( kof2kevo2 ) /* [OLD] The King of Fighters 2000 N - (kof2kevo10) - KOF 2000 Evolution by Jason/K3 and Wesker - (KOF 2000 Evolution v1.0 - see readme for details) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257evo2.p1", 0x000000, 0x100000, CRC(2331f409) SHA1(13344ccf1748be13e8605c8cd0f3e7786a0c250c) )
+ ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) )
+ ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) )
+ ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) )
+ ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) )
+ ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) )
+ ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) )
+ ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) )
+ ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) )
+ROM_END
+
+ROM_START( kof2kevo3 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257evo3.p1", 0x000000, 0x100000, CRC(93cc8aa5) SHA1(46226909fd182d9edefb529bfe4c91f8a5b02a9e) )
+ ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257d.c1", 0x0000000, 0x800000, CRC(abcdd424) SHA1(1d52aae8a7806d48c098c2a7a77dff6e02ac4870) )
+ ROM_LOAD16_BYTE( "257d.c2", 0x0000001, 0x800000, CRC(cda33778) SHA1(a619740364c952c443f27ed9b7c395610f2673c7) )
+ ROM_LOAD16_BYTE( "257d.c3", 0x1000000, 0x800000, CRC(087fb15b) SHA1(f77cb6e670cdf7709d84d770ecf28533cbfbe6de) )
+ ROM_LOAD16_BYTE( "257d.c4", 0x1000001, 0x800000, CRC(fe9dfde4) SHA1(23750ff0c4bc084d55eea66a5cdd0ef2d6c32cdc) )
+ ROM_LOAD16_BYTE( "257d.c5", 0x2000000, 0x800000, CRC(03ee4bf4) SHA1(8f26c5bc525a5786de8e25797e2875a1dfe527be) )
+ ROM_LOAD16_BYTE( "257d.c6", 0x2000001, 0x800000, CRC(8599cc5b) SHA1(9a05fc12273aebfbc4ac22e88b32ae9ecd269462) )
+ ROM_LOAD16_BYTE( "257d.c7", 0x3000000, 0x800000, CRC(71dfc3e2) SHA1(1889a8dc88993e35f9fd93ce2bee1de52995932d) )
+ ROM_LOAD16_BYTE( "257d.c8", 0x3000001, 0x800000, CRC(0fa30e5f) SHA1(0cb7fa6b0219e1af2df9b97786c677651a78f37a) )
+ROM_END
+
+ROM_START( kof2kgbh )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257gbh.p1", 0x000000, 0x100000, CRC(5527a8fb) SHA1(5c861ab496ab713d04fe26ad5e6f73c2bb52bf48) )
+ ROM_LOAD16_WORD_SWAP( "257gbh.p2", 0x100000, 0x400000, CRC(7992520d) SHA1(7718348355adbb05e64767ae5d075046ae9b5400) )
+
+ NEO_SFIX_MT_512K
+ // This came with the set but doesn't work
+ //NEO_SFIX_128K( "257gbh.s1", CRC(cabc287b) SHA1(dbf3adc0fe31d3c6c246ed4c996ca9b8c9bbfa4d) )
+
+ NEO_BIOS_AUDIO_256K( "257gbh.m1", CRC(a082f086) SHA1(809ef4a533cf541b86786f455a7f283a5acecd82) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257d.c1", 0x0000000, 0x800000, CRC(abcdd424) SHA1(1d52aae8a7806d48c098c2a7a77dff6e02ac4870) )
+ ROM_LOAD16_BYTE( "257d.c2", 0x0000001, 0x800000, CRC(cda33778) SHA1(a619740364c952c443f27ed9b7c395610f2673c7) )
+ ROM_LOAD16_BYTE( "257d.c3", 0x1000000, 0x800000, CRC(087fb15b) SHA1(f77cb6e670cdf7709d84d770ecf28533cbfbe6de) )
+ ROM_LOAD16_BYTE( "257d.c4", 0x1000001, 0x800000, CRC(fe9dfde4) SHA1(23750ff0c4bc084d55eea66a5cdd0ef2d6c32cdc) )
+ ROM_LOAD16_BYTE( "257d.c5", 0x2000000, 0x800000, CRC(03ee4bf4) SHA1(8f26c5bc525a5786de8e25797e2875a1dfe527be) )
+ ROM_LOAD16_BYTE( "257d.c6", 0x2000001, 0x800000, CRC(8599cc5b) SHA1(9a05fc12273aebfbc4ac22e88b32ae9ecd269462) )
+ ROM_LOAD16_BYTE( "257bh.c7", 0x3000000, 0x800000, CRC(f7636227) SHA1(a76b331c96a7bf6fb4123c88a15f565c82b13373) )
+ ROM_LOAD16_BYTE( "257bh.c8", 0x3000001, 0x800000, CRC(b887fe36) SHA1(d6fc2fba39c8f22ddbe911345ba1d21561cc4eb2) )
+ROM_END
+
+ROM_START( kof2kgold ) /* The King of Fighters 2000 - Colour fix by Anndy - (Character colour change - attack cremation gold) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257-pg1.p1", 0x000000, 0x100000, CRC(5f809dbe) SHA1(2bc233dcff5622de86d01e3b74b840c7caf12982) )
+ ROM_LOAD16_WORD_SWAP( "257gbh.p2", 0x100000, 0x400000, CRC(7992520d) SHA1(7718348355adbb05e64767ae5d075046ae9b5400) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) )
+ ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) )
+ ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) )
+ ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) )
+ ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) )
+ ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) )
+ ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) )
+ ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) )
+ROM_END
+
+ROM_START( kof2kice ) /* The King of Fighters 2000 - Colour fix by Zhangshee - (Character colour change - attack cremation ice blue) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257-pg1.p1", 0x000000, 0x100000, CRC(5f809dbe) SHA1(2bc233dcff5622de86d01e3b74b840c7caf12982) )
+ ROM_LOAD16_WORD_SWAP( "257ice.p2", 0x100000, 0x400000, CRC(95df1ddd) SHA1(faecf18584d5397a588a69d002968a341a12adcb) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) )
+ ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) )
+ ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) )
+ ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) )
+ ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) )
+ ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) )
+ ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) )
+ ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) )
+ROM_END
+
+ROM_START( kof2kiori )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257iori.p1", 0x000000, 0x100000, CRC(d7cdca85) SHA1(2cdc6f528512a8d8eff800602f00f75797e4a5f1) )
+ ROM_LOAD16_WORD_SWAP( "257iori.p2", 0x100000, 0x400000, CRC(ce947e0f) SHA1(0d86e181a1a6244fb61ac18d013352c3a9722ebd) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257d.c1", 0x0000000, 0x800000, CRC(abcdd424) SHA1(1d52aae8a7806d48c098c2a7a77dff6e02ac4870) )
+ ROM_LOAD16_BYTE( "257d.c2", 0x0000001, 0x800000, CRC(cda33778) SHA1(a619740364c952c443f27ed9b7c395610f2673c7) )
+ ROM_LOAD16_BYTE( "257d.c3", 0x1000000, 0x800000, CRC(087fb15b) SHA1(f77cb6e670cdf7709d84d770ecf28533cbfbe6de) )
+ ROM_LOAD16_BYTE( "257d.c4", 0x1000001, 0x800000, CRC(fe9dfde4) SHA1(23750ff0c4bc084d55eea66a5cdd0ef2d6c32cdc) )
+ ROM_LOAD16_BYTE( "257d.c5", 0x2000000, 0x800000, CRC(03ee4bf4) SHA1(8f26c5bc525a5786de8e25797e2875a1dfe527be) )
+ ROM_LOAD16_BYTE( "257d.c6", 0x2000001, 0x800000, CRC(8599cc5b) SHA1(9a05fc12273aebfbc4ac22e88b32ae9ecd269462) )
+ ROM_LOAD16_BYTE( "257iori.c7", 0x3000000, 0x800000, CRC(4230c654) SHA1(7e5cb48cbec8b27047e5642af58bebd71a9f986b) )
+ ROM_LOAD16_BYTE( "257iori.c8", 0x3000001, 0x800000, CRC(80aa8ac2) SHA1(7a828725e8442e19b1ad34327d9d9025d04f4853) )
+ROM_END
+
+ROM_START( kof2kjlc ) /* The King of Fighters 2000 - Colour fix by Jui Lee - (Character colour change for Athena 2P and Kula 2P) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257-pg1.p1", 0x000000, 0x100000, CRC(5f809dbe) SHA1(2bc233dcff5622de86d01e3b74b840c7caf12982) )
+ ROM_LOAD16_WORD_SWAP( "257jlc.p2", 0x100000, 0x400000, CRC(dc36885b) SHA1(b192edc43f598434877df3e2deddca53473bf537) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) )
+ ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) )
+ ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) )
+ ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) )
+ ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) )
+ ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) )
+ ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) )
+ ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) )
+ROM_END
+
+ROM_START( kof2kkf1 ) /* The King of Fighters 2000 - Hack by Kurouri - (MVS protection removed, can select Kula and Zero) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257kf1.p1", 0x000000, 0x100000, CRC(3a6bb418) SHA1(d794bf7ee14fcf3972360f7d47ed6cd08a3269d2) )
+ ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) )
+ ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) )
+ ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) )
+ ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) )
+ ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) )
+ ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) )
+ ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) )
+ ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) )
+ROM_END
+
+ROM_START( kof2kkvs ) /* The King of Fighters 2000 - Hack by KVS - (MVS protection removed - can select Kula and Zero) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257kvs.p1", 0x000000, 0x100000, CRC(de23e8a0) SHA1(737a3e9c7cac2338f382c3a55d5caa9810fb87ce) )
+ ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) )
+ ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) )
+ ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) )
+ ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) )
+ ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) )
+ ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) )
+ ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) )
+ ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) )
+ROM_END
+
+ROM_START( kof2kkzs ) /* The King of Fighters 2000 - Hack by UNKNOWN - (MVS protection removed - can choose Kula and Zero) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257kzs.p1", 0x000000, 0x100000, CRC(e41f350c) SHA1(d0d4feb6f91714abe11ec57ba9eecc7bb7f5b354) )
+ ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) )
+ ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) )
+ ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) )
+ ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) )
+ ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) )
+ ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) )
+ ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) )
+ ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) )
+ROM_END
+
+ROM_START( kof2knd )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257-pg1.p1", 0x000000, 0x100000, CRC(5f809dbe) SHA1(2bc233dcff5622de86d01e3b74b840c7caf12982) )
+ ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257d.c1", 0x0000000, 0x800000, CRC(abcdd424) SHA1(1d52aae8a7806d48c098c2a7a77dff6e02ac4870) )
+ ROM_LOAD16_BYTE( "257d.c2", 0x0000001, 0x800000, CRC(cda33778) SHA1(a619740364c952c443f27ed9b7c395610f2673c7) )
+ ROM_LOAD16_BYTE( "257d.c3", 0x1000000, 0x800000, CRC(087fb15b) SHA1(f77cb6e670cdf7709d84d770ecf28533cbfbe6de) )
+ ROM_LOAD16_BYTE( "257d.c4", 0x1000001, 0x800000, CRC(fe9dfde4) SHA1(23750ff0c4bc084d55eea66a5cdd0ef2d6c32cdc) )
+ ROM_LOAD16_BYTE( "257d.c5", 0x2000000, 0x800000, CRC(03ee4bf4) SHA1(8f26c5bc525a5786de8e25797e2875a1dfe527be) )
+ ROM_LOAD16_BYTE( "257d.c6", 0x2000001, 0x800000, CRC(8599cc5b) SHA1(9a05fc12273aebfbc4ac22e88b32ae9ecd269462) )
+ ROM_LOAD16_BYTE( "257d.c7", 0x3000000, 0x800000, CRC(71dfc3e2) SHA1(1889a8dc88993e35f9fd93ce2bee1de52995932d) )
+ ROM_LOAD16_BYTE( "257d.c8", 0x3000001, 0x800000, CRC(0fa30e5f) SHA1(0cb7fa6b0219e1af2df9b97786c677651a78f37a) )
+ROM_END
+
+ROM_START( kof2kpjc ) /* The King of Fighters 2000 - Colour fix by TcwLee - (Colour fix 20030720) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257-pg1.p1", 0x000000, 0x100000, CRC(5f809dbe) SHA1(2bc233dcff5622de86d01e3b74b840c7caf12982) )
+ ROM_LOAD16_WORD_SWAP( "257pjc.p2", 0x100000, 0x400000, CRC(3f94a4d3) SHA1(8fd23e05bde49e9ff25f070338b947c53bbf603f) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) )
+ ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) )
+ ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) )
+ ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) )
+ ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) )
+ ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) )
+ ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) )
+ ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) )
+ROM_END
+
+ROM_START( kof2kpjc1 ) /* [OLD] The King of Fighters 2000 N - (kof2kpjco) - Colour fix by TcwLee - (Colour fix - entire role change) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257-pg1.p1", 0x000000, 0x100000, CRC(5f809dbe) SHA1(2bc233dcff5622de86d01e3b74b840c7caf12982) )
+ ROM_LOAD16_WORD_SWAP( "257pjc1.p2", 0x100000, 0x400000, CRC(c954c944) SHA1(3ca35a5393351ee22ef651f8984067b18aa02144) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) )
+ ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) )
+ ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) )
+ ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) )
+ ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) )
+ ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) )
+ ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) )
+ ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) )
+ROM_END
+
+ROM_START( kof2kpjc2 ) /* [OLD] The King of Fighters 2000 N - (kof2kc2) - Colour fix by TcwLee - (Colour fix ver. 2) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257-pg1.p1", 0x000000, 0x100000, CRC(5f809dbe) SHA1(2bc233dcff5622de86d01e3b74b840c7caf12982) )
+ ROM_LOAD16_WORD_SWAP( "257pjc2.p2", 0x100000, 0x400000, CRC(136bd0a4) SHA1(5549ba017a9c633a3652ad3fc0d1c41bc247cdcd) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) )
+ ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) )
+ ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) )
+ ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) )
+ ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) )
+ ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) )
+ ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) )
+ ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) )
+ROM_END
+
+ROM_START( kof2kpjc3 ) /* [OLD] The King of Fighters 2000 N - (kof2kpjco2) - Colour fix by TcwLee - (Colour change - striker not perfect 20030302) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257-pg1.p1", 0x000000, 0x100000, CRC(5f809dbe) SHA1(2bc233dcff5622de86d01e3b74b840c7caf12982) )
+ ROM_LOAD16_WORD_SWAP( "257pjc3.p2", 0x100000, 0x400000, CRC(22bf407a) SHA1(dba889edbe0bd641ce678f0ffc79afed24659bde) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) )
+ ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) )
+ ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) )
+ ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) )
+ ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) )
+ ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) )
+ ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) )
+ ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) )
+ROM_END
+
+ROM_START( kof2kpls )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257pls.p1", 0x000000, 0x100000, CRC(052a5e17) SHA1(1f2c43981e1e762c0d0a81f23311e5d021e94472) )
+ ROM_LOAD16_WORD_SWAP( "257pls.p2", 0x100000, 0x400000, CRC(9d716a8b) SHA1(da32f57719155b8dfa86124312d03ee82fbc7151) )
+
+ NEO_SFIX_MT_512K
+ ROM_LOAD( "257pls.s1", 0x000000, 0x80000, CRC(5a8d9e10) SHA1(2eb244a28b891a6fadbbccf10afe47b78d7948f0) )
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257d.c1", 0x0000000, 0x800000, CRC(abcdd424) SHA1(1d52aae8a7806d48c098c2a7a77dff6e02ac4870) )
+ ROM_LOAD16_BYTE( "257d.c2", 0x0000001, 0x800000, CRC(cda33778) SHA1(a619740364c952c443f27ed9b7c395610f2673c7) )
+ ROM_LOAD16_BYTE( "257d.c3", 0x1000000, 0x800000, CRC(087fb15b) SHA1(f77cb6e670cdf7709d84d770ecf28533cbfbe6de) )
+ ROM_LOAD16_BYTE( "257d.c4", 0x1000001, 0x800000, CRC(fe9dfde4) SHA1(23750ff0c4bc084d55eea66a5cdd0ef2d6c32cdc) )
+ ROM_LOAD16_BYTE( "257d.c5", 0x2000000, 0x800000, CRC(03ee4bf4) SHA1(8f26c5bc525a5786de8e25797e2875a1dfe527be) )
+ ROM_LOAD16_BYTE( "257d.c6", 0x2000001, 0x800000, CRC(8599cc5b) SHA1(9a05fc12273aebfbc4ac22e88b32ae9ecd269462) )
+ ROM_LOAD16_BYTE( "257pls.c7", 0x3000000, 0x800000, CRC(eda5ea7f) SHA1(25e1d5279635eab65ba7b3f565d5cf0dd48ad201) )
+ ROM_LOAD16_BYTE( "257pls.c8", 0x3000001, 0x800000, CRC(6df754d8) SHA1(94469836ae8e08448a01f346a09e660ceed9371f) )
+ROM_END
+
+ROM_START( kof2krm ) /* The King of Fighters 2000 - Remix by Raymonose - (Character move change) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257rm.p1", 0x000000, 0x100000, CRC(597fdfc7) SHA1(10bb9e4ad0c3ff53336cc0e06303f83bcb5c94e4) )
+ ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) )
+ ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) )
+ ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) )
+ ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) )
+ ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) )
+ ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) )
+ ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) )
+ ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) )
+ROM_END
+
+ROM_START( kof2krp ) /* The King of Fighters 2000 - Remix PRO by FCHT - (Character move change v1.0a 20031103 - BETA) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257rp.p1", 0x000000, 0x100000, CRC(7c81d853) SHA1(b101b64a06ba6292d369d10f75a56de09b04823b) )
+ ROM_LOAD16_WORD_SWAP( "257rp.p2", 0x100000, 0x400000, CRC(82a6aeed) SHA1(36f369313999d23f50201c1e240736d00d4921da) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) )
+ ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) )
+ ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) )
+ ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) )
+ ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) )
+ ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) )
+ ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) )
+ ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) )
+ROM_END
+
+ROM_START( kof2kryu )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257ryu.p1", 0x000000, 0x100000, CRC(47806bd7) SHA1(fd61bd7c6758870c24446b07175537ed1c2135af) )
+ ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257d.c1", 0x0000000, 0x800000, CRC(abcdd424) SHA1(1d52aae8a7806d48c098c2a7a77dff6e02ac4870) )
+ ROM_LOAD16_BYTE( "257d.c2", 0x0000001, 0x800000, CRC(cda33778) SHA1(a619740364c952c443f27ed9b7c395610f2673c7) )
+ ROM_LOAD16_BYTE( "257d.c3", 0x1000000, 0x800000, CRC(087fb15b) SHA1(f77cb6e670cdf7709d84d770ecf28533cbfbe6de) )
+ ROM_LOAD16_BYTE( "257d.c4", 0x1000001, 0x800000, CRC(fe9dfde4) SHA1(23750ff0c4bc084d55eea66a5cdd0ef2d6c32cdc) )
+ ROM_LOAD16_BYTE( "257d.c5", 0x2000000, 0x800000, CRC(03ee4bf4) SHA1(8f26c5bc525a5786de8e25797e2875a1dfe527be) )
+ ROM_LOAD16_BYTE( "257d.c6", 0x2000001, 0x800000, CRC(8599cc5b) SHA1(9a05fc12273aebfbc4ac22e88b32ae9ecd269462) )
+ ROM_LOAD16_BYTE( "257d.c7", 0x3000000, 0x800000, CRC(71dfc3e2) SHA1(1889a8dc88993e35f9fd93ce2bee1de52995932d) )
+ ROM_LOAD16_BYTE( "257d.c8", 0x3000001, 0x800000, CRC(0fa30e5f) SHA1(0cb7fa6b0219e1af2df9b97786c677651a78f37a) )
+ROM_END
+
+ROM_START( kof2kseh ) /* The King of Fighters 2000 - Super Enhance Hack by Creamymami and Ydmis - (Can choose Kula and Zero - ultra kill start is max - super power hack) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257seh.p1", 0x000000, 0x100000, CRC(b84547e4) SHA1(1c01a764d5333d8acab392f24f9a2f8d00e257ca) )
+ ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) )
+ ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) )
+ ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) )
+ ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) )
+ ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) )
+ ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) )
+ ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) )
+ ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) )
+ROM_END
+
+ROM_START( kof2kst ) /* The King of Fighters 2000 N - Hack by KOF1995 - (Boss striker movement change - similar to kof2kevo from FGCH - can choose Kula and Zero) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257st.p1", 0x000000, 0x100000, CRC(e21736d5) SHA1(7ea8045775b5d9e111a94a641a372faaf2495a5e) )
+ ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) )
+ ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) )
+ ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) )
+ ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) )
+ ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) )
+ ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) )
+ ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) )
+ ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) )
+ROM_END
+
+ROM_START( kof2kwh ) /* The King of Fighters 2000 - Hack by Wesker - (Character move change for Takuma) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257wh.p1", 0x000000, 0x100000, CRC(5fa8d962) SHA1(8285b925c4edf3460ff5cf63fbcb7379568897ac) )
+ ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) )
+ ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) )
+ ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) )
+ ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) )
+ ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) )
+ ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) )
+ ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) )
+ ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) )
+ROM_END
+
+ROM_START( kof2kwh2 ) /* The King of Fighters 2000 - Hack by Wesker - (Character move change for Jhun) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257wh2.p1", 0x000000, 0x100000, CRC(06e47159) SHA1(45ae1f2c9c4393ff9cc0425a4a85c7bc1ad31c0e) )
+ ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) )
+ ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) )
+ ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) )
+ ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) )
+ ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) )
+ ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) )
+ ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) )
+ ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) )
+ROM_END
+
+ROM_START( kof2kxxx )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257xxx.p1", 0x000000, 0x100000, CRC(b88cd5eb) SHA1(81b5ef268991fe368c6efa836cb822fbcfe54920) )
+ ROM_LOAD16_WORD_SWAP( "257xxx.p2", 0x100000, 0x400000, CRC(1a10f2be) SHA1(67794176d3d834b85495fa653a8acd14901b1658) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_ENCRYPTED_256K( "257-m1.m1", CRC(4b749113) SHA1(2af2361146edd0ce3966614d90165a5c1afb8de4) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257xxx.c1", 0x0000000, 0x800000, CRC(3006a5e4) SHA1(e1fa9c32306a7501cb4789ec85521fd6fd7ad28c) )
+ ROM_LOAD16_BYTE( "257xxx.c2", 0x0000001, 0x800000, CRC(366fd118) SHA1(36abc1e8e48e47afdab9541a4612b346799693de) )
+ ROM_LOAD16_BYTE( "257xxx.c3", 0x1000000, 0x800000, CRC(5b16d7e3) SHA1(3a5cbfc47b7db0ee4f15232066c4f79544dee20f) )
+ ROM_LOAD16_BYTE( "257xxx.c4", 0x1000001, 0x800000, CRC(7e57dfc1) SHA1(7a07d1547306646538d29ba9bd3acdaca7c70907) )
+ ROM_LOAD16_BYTE( "257xxx.c5", 0x2000000, 0x800000, CRC(671904f4) SHA1(7bfd66b7f1866c06b161eb6cf594aa017b7088b2) )
+ ROM_LOAD16_BYTE( "257xxx.c6", 0x2000001, 0x800000, CRC(68adf255) SHA1(a60ad8adbec8c4e6ed85fd3b251a8f187aca85b1) )
+ ROM_LOAD16_BYTE( "257xxx.c7", 0x3000000, 0x800000, CRC(8c6b22b3) SHA1(7f4a204de276a9acae2c6d58b2b5c03f76bcab69) )
+ ROM_LOAD16_BYTE( "257xxx.c8", 0x3000001, 0x800000, CRC(6223bd1d) SHA1(94b512eb202aec084110e477b283591bad54d027) )
+ // Alternate (decrypted) roms
+ //NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+ //ROM_LOAD16_BYTE( "257d.c1", 0x0000000, 0x800000, CRC(abcdd424) SHA1(1d52aae8a7806d48c098c2a7a77dff6e02ac4870) )
+ //ROM_LOAD16_BYTE( "257d.c2", 0x0000001, 0x800000, CRC(cda33778) SHA1(a619740364c952c443f27ed9b7c395610f2673c7) )
+ //ROM_LOAD16_BYTE( "257d.c3", 0x1000000, 0x800000, CRC(087fb15b) SHA1(f77cb6e670cdf7709d84d770ecf28533cbfbe6de) )
+ //ROM_LOAD16_BYTE( "257d.c4", 0x1000001, 0x800000, CRC(fe9dfde4) SHA1(23750ff0c4bc084d55eea66a5cdd0ef2d6c32cdc) )
+ //ROM_LOAD16_BYTE( "257d.c5", 0x2000000, 0x800000, CRC(03ee4bf4) SHA1(8f26c5bc525a5786de8e25797e2875a1dfe527be) )
+ //ROM_LOAD16_BYTE( "257d.c6", 0x2000001, 0x800000, CRC(8599cc5b) SHA1(9a05fc12273aebfbc4ac22e88b32ae9ecd269462) )
+ //ROM_LOAD16_BYTE( "257xxx1.c7", 0x300000, 0x800000, CRC(05125a94) SHA1(cdd77c649945e15088dd07ba282e6dc9ef883a75) )
+ //ROM_LOAD16_BYTE( "257xxx1.c8", 0x300001, 0x800000, CRC(300eba2a) SHA1(42defa20e3a0760f64c4c0346ab48d664960c638) )
+ROM_END
+
+ROM_START( kof2ky ) /* The King of Fighters 2000 - Hack by Ydmis - (Can choose Kula) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257y.p1", 0x000000, 0x100000, CRC(ca715980) SHA1(869268d27fc2628ac1fe817b2d0491096821b8de) )
+ ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) )
+ ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) )
+ ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) )
+ ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) )
+ ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) )
+ ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) )
+ ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) )
+ ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) )
+ROM_END
+
+ROM_START( kof2kyd ) /* The King of Fighters 2000 - Revise by Dodowang and Ydmis - (Style change - can choose Kula and Zero) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257yd.p1", 0x000000, 0x100000, CRC(09c64b87) SHA1(8ad7a2c9cf0e360364ad5ee58ed514fbee015a65) )
+ ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) )
+ ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) )
+ ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) )
+ ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) )
+ ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) )
+ ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) )
+ ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) )
+ ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) )
+ROM_END
+
+ROM_START( kof2kyg ) /* The King of Fighters 2000 - Hack by Ydmis - (Can choose Kula and Zero) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257yg.p1", 0x000000, 0x100000, CRC(684f6f70) SHA1(660a35e8db9d44b246dfc788e5576fe8d138e580) )
+ ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) )
+ ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) )
+ ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) )
+ ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) )
+ ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) )
+ ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) )
+ ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) )
+ ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) )
+ROM_END
+
+ROM_START( kof2kz ) /* The King of Fighters 2000 - Hack by Ydmis - (Can choose Zero) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257z.p1", 0x000000, 0x100000, CRC(029a6b8a) SHA1(1179df1960dffc04860acb0a91c53e9c5cf7e107) )
+ ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) )
+ ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) )
+ ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) )
+ ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) )
+ ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) )
+ ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) )
+ ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) )
+ ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) )
+ROM_END
+
+ROM_START( kof2kzs ) /* The King of Fighters 2000 - Hack by UNKNOWN - (MVS protection removed - can choose Kula and Zero) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257zs.p1", 0x000000, 0x100000, CRC(ca73f3a5) SHA1(d083a47ff19317855da866e29eea3aa66a1ffb03) )
+ ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) )
+ ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) )
+ ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) )
+ ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) )
+ ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) )
+ ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) )
+ ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) )
+ ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) )
+ROM_END
+
+
+GAME( 2000, kof2000d, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000d, ROT0, "SNK", "Kof2000 (decrypted C)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2000ev, kof2000, neogeo_noslot, neogeo, neogeo_noslot_state, kof2000, ROT0, "hack", "Kof2000 (unknown ev)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2000r, kof2000, neogeo_noslot, neogeo, neogeo_noslot_state, kof2000, ROT0, "hack", "Kof2000 (KOF REMIX PRO)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2kbh, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000h, ROT0, "Dodowang","Kof2000 (Add Char - Zero has icon)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2kbj, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "Jason/K3", "Kof2000 (Add Char set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2kbsd, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2kbsd, ROT0, "Eddids / EGHT", "Kof2000 Boss Striker Pro ( Eddids, EGHT )", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2kce, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "hack", "Kof2000 (Char color changed set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2kch, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "Chase", "Kof2000 (Diff Moves 030503)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2kcp, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "hack", "Kof2000 (Char color changed set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2keh, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "Guangzhou Game Team", "Kof2000 (Add Char - Ultra kill start max)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2kehr, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "Raymonose", "Kof2000 (Add Char - Diff Moves - Ultra pow hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2kevo, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "Jason/K3 and Wesker", "Kof2000 EVOLUTION (v1.2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2kevo1, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "Jason/K3 and Wesker", "Kof2000 EVOLUTION (v1.01)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2kevo2, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "Jason/K3 and Wesker", "Kof2000 EVO (Evolution v1.0)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2kevo3, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2knd, ROT0, "FCHT-EGHT", "Kof2000 EVOLUTION (v1.3 by FCHT-EGHT)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2kgold, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "Anndy", "Kof2000 (Char color changed - Gold)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2kgbh, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, cmc50sfix, ROT0, "hack", "Kof2000 (Boss Hack - Gold Color Edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2kice, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "Zhangshee", "Kof2000 (Char color changed - Ice blue)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2kiori, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2knd, ROT0, "ZKW", "Kof2000 (Iori Orochi by ZKW)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2kjlc, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "Jui Lee", "Kof2000 (Char color changed for Athena 2P and Kula 2P)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2kkf1, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "Guangzhou Game Team", "Kof2000 (Add Char - MVS protection rem set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2kkvs, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "KVS", "Kof2000 (Add Char - MVS protection rem set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2kkzs, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "hack", "Kof2000 (Add Char - MVS protection rem set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2knd, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2knd, ROT0, "hack", "Kof2000 (non encrypted P,decrypted C)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2kpjc, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "TcwLee", "Kof2000 (Color Fix 030720)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2kpjc1, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "TcwLee", "Kof2000 (Color Fix - Entire role change)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2kpjc2, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "TcwLee", "Kof2000 (Color Fix v. 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2kpjc3, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "TcwLee", "Kof2000 (Color changed - Striker not Perfect 030302)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2kpls, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2knd, ROT0, "Guangzhou Game Team", "Kof2000 PLUS (by Guangzhou Game Team)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2krm, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "Raymonose", "Kof2000 (Diff Moves)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2krp, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "FCHT", "Kof2000 Remix Pro (Diff Moves v1.0a 031103 - Beta)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2kryu, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2knd, ROT0, "Iori Yagami", "Kof2000 EVX TION (Ryu Hack by Iori Yagami)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2kseh, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "Guangzhou Game Team", "Kof2000 (Add Char - Ultra kill start max - Super pow hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2kst, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "KOF1995", "Kof2000 (Add Char - Boss striker moves changed - Similar to kof2kevo from FGCH)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2kwh, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "Wesker", "Kof2000 (Diff Moves for Takuma)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2kwh2, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "Wesker", "Kof2000 (Diff Moves for Jhun)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2kxxx, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2kxxx, ROT0, "Crispy", "Kof2000 XXX (Crispy SP Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2ky, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "Ydmis", "Kof2000 (Add Kula)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2kyd, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "Dodowang and Ydmis", "Kof2000 (Style change - Select 2 Add Char)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2kyg, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "Guangzhou Game Team", "Kof2000 (Add Char set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2kz, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "Ydmis", "Kof2000 (Add Zero)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2kzs, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "hack", "Kof2000 (Add Char - MVS protection rem set 4)", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/kof2001.cpp b/docs/release/src/hbmame/drivers/kof2001.cpp
new file mode 100644
index 00000000000..c7f2d0d1430
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/kof2001.cpp
@@ -0,0 +1,2260 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+
+
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, kof2001d )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, kof2001m )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, KOF2001_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+// use this if the set has a s1 rom
+DRIVER_INIT_MEMBER( neogeo_hbmame, kf2k1pls )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, KOF2001_GFX_KEY);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, kf2k1pa )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, KOF2001_GFX_KEY);
+
+ int i, sx_size = memregion("fixed")->bytes();
+ uint8_t *rom = memregion("fixed")->base();
+
+ /* S-rom has its own unique encryption */
+ for( i = 0; i < sx_size; i++ )
+ rom[ i ] = BITSWAP8( rom[ i ], 3, 2, 4, 5, 1, 6, 0, 7 );
+}
+
+
+
+ROM_START( kof2001d )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) )
+ ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262d.c1", 0x0000000, 0x800000, CRC(103225b1) SHA1(41486C7BB421B6B54F3CA07621AABD907BF10E15) )
+ ROM_LOAD16_BYTE( "262d.c2", 0x0000001, 0x800000, CRC(f9d05d99) SHA1(C135DD3D5584DC58A46315D64F663E34BB64BEBF) )
+ ROM_LOAD16_BYTE( "262d.c3", 0x1000000, 0x800000, CRC(4c7ec427) SHA1(0156E2F79E7A62B15ACC2314AC6563A67AF0F256) )
+ ROM_LOAD16_BYTE( "262d.c4", 0x1000001, 0x800000, CRC(1d237aa6) SHA1(B007FE9F1F32F0FF947C6575741B47FB70976728) )
+ ROM_LOAD16_BYTE( "262d.c5", 0x2000000, 0x800000, CRC(c2256db5) SHA1(DAE6B7B0673B431F223D82F7C3A685DE70A1C035) )
+ ROM_LOAD16_BYTE( "262d.c6", 0x2000001, 0x800000, CRC(8d6565a9) SHA1(137C950D588D40C812C36967EC17D04D4FC56362) )
+ ROM_LOAD16_BYTE( "262d.c7", 0x3000000, 0x800000, CRC(d1408776) SHA1(E77C786070B2B851A8A36250722B4C902E7213ED) )
+ ROM_LOAD16_BYTE( "262d.c8", 0x3000001, 0x800000, CRC(954d0e16) SHA1(975803C130DF3A6E835B9BF0F8532D6586058C54) )
+ROM_END
+
+ROM_START( kof2001n )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262n.p1", 0x000000, 0x100000, CRC(eaf3acf1) SHA1 (d697b9820d4832b944def118c30c82bbb1495b97) )
+ ROM_LOAD16_WORD_SWAP( "262-pg2.sp2", 0x100000, 0x400000, CRC(91eea062) SHA1 (82bae42bbeedb9f3aa0c7c0b0a7a69be499cf98f) )
+
+ NEO_SFIX_128K( "262n.s1", CRC(de828076) SHA1 (7f79d0245b02e64bd4b50c103722f7e115d1e711) )
+
+ NEO_BIOS_AUDIO_256K( "262n.m1", CRC(4bcc537b) SHA1(9fcf1342bcd53d5eec12c46ee41a51bf543256c2) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262d.c1", 0x0000000, 0x800000, CRC(103225b1) SHA1(41486C7BB421B6B54F3CA07621AABD907BF10E15) )
+ ROM_LOAD16_BYTE( "262d.c2", 0x0000001, 0x800000, CRC(f9d05d99) SHA1(C135DD3D5584DC58A46315D64F663E34BB64BEBF) )
+ ROM_LOAD16_BYTE( "262d.c3", 0x1000000, 0x800000, CRC(4c7ec427) SHA1(0156E2F79E7A62B15ACC2314AC6563A67AF0F256) )
+ ROM_LOAD16_BYTE( "262d.c4", 0x1000001, 0x800000, CRC(1d237aa6) SHA1(B007FE9F1F32F0FF947C6575741B47FB70976728) )
+ ROM_LOAD16_BYTE( "262d.c5", 0x2000000, 0x800000, CRC(c2256db5) SHA1(DAE6B7B0673B431F223D82F7C3A685DE70A1C035) )
+ ROM_LOAD16_BYTE( "262d.c6", 0x2000001, 0x800000, CRC(8d6565a9) SHA1(137C950D588D40C812C36967EC17D04D4FC56362) )
+ ROM_LOAD16_BYTE( "262d.c7", 0x3000000, 0x800000, CRC(d1408776) SHA1(E77C786070B2B851A8A36250722B4C902E7213ED) )
+ ROM_LOAD16_BYTE( "262d.c8", 0x3000001, 0x800000, CRC(954d0e16) SHA1(975803C130DF3A6E835B9BF0F8532D6586058C54) )
+ROM_END
+
+ROM_START( kof2k1ay ) /* The King of Fighters 2001 - Revise by Kurouri and Ydmis - (Based on kof2001h - revise) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262ay.p1", 0x000000, 0x100000, CRC(069a0aa2) SHA1(3fd2218b8d94cff47e1e2369a163c82d1f3e5f41) )
+ ROM_LOAD16_WORD_SWAP( "262-pg2.sp2", 0x100000, 0x400000, CRC(91eea062) SHA1(82bae42bbeedb9f3aa0c7c0b0a7a69be499cf98f) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1b ) /* The King of Fighters 2001 - Hack by UNKNOWN - (Can choose Zero and Igniz) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262b.p1", 0x000000, 0x100000, CRC(376ea3fd) SHA1(9bb9ec73f1ee543ea0c2fd5ee73c487ea93de05e) )
+ ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1b1 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262b1.p1", 0x000000, 0x100000, CRC(832ff765) SHA1 (93bc612249ecbeddb12a80caed5cc6bb15ecac0a) )
+ ROM_LOAD16_WORD_SWAP( "262b1.p2", 0x100000, 0x400000, CRC(6762cf94) SHA1 (7444554b6de83b11a4c1ffc0230e646a6d5a7c75) )
+
+ NEO_SFIX_128K( "262st2.s1", CRC(2e3229a3) SHA1 (feb028bf43ae30e3091a67abc7c23a9816a3412e) )
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262d.c1", 0x0000000, 0x800000, CRC(103225b1) SHA1(41486C7BB421B6B54F3CA07621AABD907BF10E15) )
+ ROM_LOAD16_BYTE( "262d.c2", 0x0000001, 0x800000, CRC(f9d05d99) SHA1(C135DD3D5584DC58A46315D64F663E34BB64BEBF) )
+ ROM_LOAD16_BYTE( "262d.c3", 0x1000000, 0x800000, CRC(4c7ec427) SHA1(0156E2F79E7A62B15ACC2314AC6563A67AF0F256) )
+ ROM_LOAD16_BYTE( "262d.c4", 0x1000001, 0x800000, CRC(1d237aa6) SHA1(B007FE9F1F32F0FF947C6575741B47FB70976728) )
+ ROM_LOAD16_BYTE( "262d.c5", 0x2000000, 0x800000, CRC(c2256db5) SHA1(DAE6B7B0673B431F223D82F7C3A685DE70A1C035) )
+ ROM_LOAD16_BYTE( "262d.c6", 0x2000001, 0x800000, CRC(8d6565a9) SHA1(137C950D588D40C812C36967EC17D04D4FC56362) )
+ ROM_LOAD16_BYTE( "262b1.c7", 0x3000000, 0x800000, CRC(f9814461) SHA1(0d83d4e740f11d6216dc00c1515766e27625f2ea) )
+ ROM_LOAD16_BYTE( "262b1.c8", 0x3000001, 0x800000, CRC(94b8544b) SHA1(4a02c6013a24beffe3b5ccfcc5b321ccbf0186af) )
+ROM_END
+
+ROM_START( kof2k1b3 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262b3.p1", 0x000000, 0x100000, CRC(31b99298) SHA1(66bd449b0daee4d266b0c994fd87111ebbd5ce6c) )
+ ROM_LOAD16_WORD_SWAP( "262b3.p2", 0x100000, 0x400000, CRC(83cdd046) SHA1(0228f8b9b65fcefc27fb6e844e5d4d72cede8e74) )
+
+ NEO_SFIX_128K( "262b3.s1", CRC(6d209796) SHA1(95fdb865e47d37916573ba12e8ba4a4aaece1cba) )
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262d.c1", 0x0000000, 0x800000, CRC(103225b1) SHA1(41486C7BB421B6B54F3CA07621AABD907BF10E15) )
+ ROM_LOAD16_BYTE( "262d.c2", 0x0000001, 0x800000, CRC(f9d05d99) SHA1(C135DD3D5584DC58A46315D64F663E34BB64BEBF) )
+ ROM_LOAD16_BYTE( "262d.c3", 0x1000000, 0x800000, CRC(4c7ec427) SHA1(0156E2F79E7A62B15ACC2314AC6563A67AF0F256) )
+ ROM_LOAD16_BYTE( "262d.c4", 0x1000001, 0x800000, CRC(1d237aa6) SHA1(B007FE9F1F32F0FF947C6575741B47FB70976728) )
+ ROM_LOAD16_BYTE( "262d.c5", 0x2000000, 0x800000, CRC(c2256db5) SHA1(DAE6B7B0673B431F223D82F7C3A685DE70A1C035) )
+ ROM_LOAD16_BYTE( "262d.c6", 0x2000001, 0x800000, CRC(8d6565a9) SHA1(137C950D588D40C812C36967EC17D04D4FC56362) )
+ ROM_LOAD16_BYTE( "262d.c7", 0x3000000, 0x800000, CRC(d1408776) SHA1(E77C786070B2B851A8A36250722B4C902E7213ED) )
+ ROM_LOAD16_BYTE( "262d.c8", 0x3000001, 0x800000, CRC(954d0e16) SHA1(975803C130DF3A6E835B9BF0F8532D6586058C54) )
+ROM_END
+
+ROM_START( kof2k1b4 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262b4.p1", 0x000000, 0x100000, CRC(a63c2c82) SHA1(22ccf21f1c54d21a8dbe26668ef5f52b5273b611) )
+ ROM_LOAD16_WORD_SWAP( "262b4.p2", 0x100000, 0x400000, CRC(676da28e) SHA1(1ff9d9228ab07e981e703b635e1abf2a8e4ea450) )
+
+ NEO_SFIX_128K( "262b4.s1", CRC(8c5c479e) SHA1(89a04bd980c4b1702aacbb76a5505cdbcdd016d5) )
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262d.c1", 0x0000000, 0x800000, CRC(103225b1) SHA1(41486C7BB421B6B54F3CA07621AABD907BF10E15) )
+ ROM_LOAD16_BYTE( "262d.c2", 0x0000001, 0x800000, CRC(f9d05d99) SHA1(C135DD3D5584DC58A46315D64F663E34BB64BEBF) )
+ ROM_LOAD16_BYTE( "262d.c3", 0x1000000, 0x800000, CRC(4c7ec427) SHA1(0156E2F79E7A62B15ACC2314AC6563A67AF0F256) )
+ ROM_LOAD16_BYTE( "262d.c4", 0x1000001, 0x800000, CRC(1d237aa6) SHA1(B007FE9F1F32F0FF947C6575741B47FB70976728) )
+ ROM_LOAD16_BYTE( "262d.c5", 0x2000000, 0x800000, CRC(c2256db5) SHA1(DAE6B7B0673B431F223D82F7C3A685DE70A1C035) )
+ ROM_LOAD16_BYTE( "262d.c6", 0x2000001, 0x800000, CRC(8d6565a9) SHA1(137C950D588D40C812C36967EC17D04D4FC56362) )
+ ROM_LOAD16_BYTE( "262d.c7", 0x3000000, 0x800000, CRC(d1408776) SHA1(E77C786070B2B851A8A36250722B4C902E7213ED) )
+ ROM_LOAD16_BYTE( "262d.c8", 0x3000001, 0x800000, CRC(954d0e16) SHA1(975803C130DF3A6E835B9BF0F8532D6586058C54) )
+ROM_END
+
+ROM_START( kof2k1bd2 ) /* The King of Fighters 2001 - Colour Fix by Ayane - (Character colour change - attack cremation scarlet) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) )
+ ROM_LOAD16_WORD_SWAP( "262bd2.p2", 0x100000, 0x400000, CRC(13c14b1f) SHA1(c063e17f94994889ae6a576b7923eddabf3586a2) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1bh ) /* The King of Fighters 2001 - Hack by Dodowang - (Can choose Zero and Igniz) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262bh.p1", 0x000000, 0x100000, CRC(f91b5329) SHA1(9b5375090072e5ea8b97bf4ebb55787476ff964d) )
+ ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) )
+
+ NEO_SFIX_128K( "262bh.s1", CRC(e600c595) SHA1(7133d879bff4854bead500c0928e0f1d918b7bed) )
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1bh1 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262bh.p1", 0x000000, 0x100000, CRC(f91b5329) SHA1(9b5375090072e5ea8b97bf4ebb55787476ff964d) )
+ ROM_LOAD16_WORD_SWAP( "262-pg2.sp2", 0x100000, 0x400000, CRC(91eea062) SHA1 (82bae42bbeedb9f3aa0c7c0b0a7a69be499cf98f) )
+
+ NEO_SFIX_128K( "262bh.s1", CRC(e600c595) SHA1(7133d879bff4854bead500c0928e0f1d918b7bed) )
+
+ NEO_BIOS_AUDIO_256K( "262n.m1", CRC(4bcc537b) SHA1(9fcf1342bcd53d5eec12c46ee41a51bf543256c2) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262d.c1", 0x0000000, 0x800000, CRC(103225b1) SHA1(41486C7BB421B6B54F3CA07621AABD907BF10E15) )
+ ROM_LOAD16_BYTE( "262d.c2", 0x0000001, 0x800000, CRC(f9d05d99) SHA1(C135DD3D5584DC58A46315D64F663E34BB64BEBF) )
+ ROM_LOAD16_BYTE( "262d.c3", 0x1000000, 0x800000, CRC(4c7ec427) SHA1(0156E2F79E7A62B15ACC2314AC6563A67AF0F256) )
+ ROM_LOAD16_BYTE( "262d.c4", 0x1000001, 0x800000, CRC(1d237aa6) SHA1(B007FE9F1F32F0FF947C6575741B47FB70976728) )
+ ROM_LOAD16_BYTE( "262d.c5", 0x2000000, 0x800000, CRC(c2256db5) SHA1(DAE6B7B0673B431F223D82F7C3A685DE70A1C035) )
+ ROM_LOAD16_BYTE( "262d.c6", 0x2000001, 0x800000, CRC(8d6565a9) SHA1(137C950D588D40C812C36967EC17D04D4FC56362) )
+ ROM_LOAD16_BYTE( "262d.c7", 0x3000000, 0x800000, CRC(d1408776) SHA1(E77C786070B2B851A8A36250722B4C902E7213ED) )
+ ROM_LOAD16_BYTE( "262d.c8", 0x3000001, 0x800000, CRC(954d0e16) SHA1(975803C130DF3A6E835B9BF0F8532D6586058C54) )
+ROM_END
+
+
+ROM_START( kof2k1bs )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262bs.p1", 0x000000, 0x100000, CRC(b5becb3c) SHA1 (b3270392560205f321b58a5a5d0d6d9c7268242a) )
+ ROM_LOAD16_WORD_SWAP( "262bs.p2", 0x100000, 0x400000, CRC(295d0c5c) SHA1 (696aa96aeee38971015ddf4a1ed66ecf605a04c2) )
+
+ NEO_SFIX_128K( "262bs.s1", CRC(19b6587b) SHA1 (0d065d086a57c991ef90f24c5b44306463147294) )
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262d.c1", 0x0000000, 0x800000, CRC(103225b1) SHA1(41486C7BB421B6B54F3CA07621AABD907BF10E15) )
+ ROM_LOAD16_BYTE( "262d.c2", 0x0000001, 0x800000, CRC(f9d05d99) SHA1(C135DD3D5584DC58A46315D64F663E34BB64BEBF) )
+ ROM_LOAD16_BYTE( "262d.c3", 0x1000000, 0x800000, CRC(4c7ec427) SHA1(0156E2F79E7A62B15ACC2314AC6563A67AF0F256) )
+ ROM_LOAD16_BYTE( "262d.c4", 0x1000001, 0x800000, CRC(1d237aa6) SHA1(B007FE9F1F32F0FF947C6575741B47FB70976728) )
+ ROM_LOAD16_BYTE( "262d.c5", 0x2000000, 0x800000, CRC(c2256db5) SHA1(DAE6B7B0673B431F223D82F7C3A685DE70A1C035) )
+ ROM_LOAD16_BYTE( "262d.c6", 0x2000001, 0x800000, CRC(8d6565a9) SHA1(137C950D588D40C812C36967EC17D04D4FC56362) )
+ ROM_LOAD16_BYTE( "262bs.c7", 0x3000000, 0x800000, CRC(8d11aed2) SHA1(258d5c8bf229b9d1d4d4f1f766672c2b2bb6744b) )
+ ROM_LOAD16_BYTE( "262bs.c8", 0x3000001, 0x800000, CRC(9e7168f5) SHA1(5ce65e676d36a247f4d673f5e319e9b085c620be) )
+ROM_END
+
+ROM_START( kof2k1bs2 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262bh.p1", 0x000000, 0x100000, CRC(f91b5329) SHA1(9b5375090072e5ea8b97bf4ebb55787476ff964d) )
+ ROM_LOAD16_WORD_SWAP( "262rp.p2", 0x100000, 0x400000, CRC(91668d86) SHA1(3df31baaa1c87b040f88eeffff1a174960f9f1fc) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_ENCRYPTED_256K( "265-262-m1.m1", CRC(a7f8119f) SHA1(71805b39b8b09c32425cf39f9de59b2f755976c2) ) /* mask rom TC532000 */
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262bs2.c1", 0x0000000, 0x800000, CRC(634c374d) SHA1(d43086ef6e86ef39b2f9afda2aba47d17c55d943) ) /* Plane 0,1 */
+ ROM_LOAD16_BYTE( "262bs2.c2", 0x0000001, 0x800000, CRC(6b9534f9) SHA1(c52ab7a2ec7df788b03e5f5ff1e906e2d6512da7) ) /* Plane 2,3 */
+ ROM_LOAD16_BYTE( "262bs2.c3", 0x1000000, 0x800000, CRC(21d114db) SHA1(53789fae6cb07b7961f126e88fd2c97998885cd4) ) /* Plane 0,1 */
+ ROM_LOAD16_BYTE( "262bs2.c4", 0x1000001, 0x800000, CRC(7f4678f2) SHA1(3f36bbbe63cac787b551992e1e7f10e7ba8abe8d) ) /* Plane 2,3 */
+ ROM_LOAD16_BYTE( "262bs2.c5", 0x2000000, 0x800000, CRC(fe98132f) SHA1(1e21f3473d4786c44dcaa0018ad446ab50a86a3a) ) /* Plane 0,1 */
+ ROM_LOAD16_BYTE( "262bs2.c6", 0x2000001, 0x800000, CRC(91e3ed85) SHA1(14a72d05a8496826beb9e3b0e373c0038bd1d8e5) ) /* Plane 2,3 */
+ ROM_LOAD16_BYTE( "262bs2.c7", 0x3000000, 0x800000, CRC(e451915c) SHA1(9b4b2718e8ecf33c421a5b5363e7ff622bc3f4f2) ) /* Plane 0,1 */
+ ROM_LOAD16_BYTE( "262bs2.c8", 0x3000001, 0x800000, CRC(831943ba) SHA1(ae7c79d28edaaaf3f792a8317cceb4ad9264b2d1) ) /* Plane 2,3 */
+ROM_END
+
+ROM_START( kof2k1ce ) /* The King of Fighters 2001 - Colour fix by UNKNOWN - (Character colour change) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) )
+ ROM_LOAD16_WORD_SWAP( "262ce.p2", 0x100000, 0x400000, CRC(76d0b903) SHA1(a24a85defbbf282d2285e48119f42e3424a96e9d) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1cf1 ) /* [OLD] The King of Fighters 2001 - (kof2k1cfco) - Colour fix by C6F8 - (Character colour change for Iori p1 and p2) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) )
+ ROM_LOAD16_WORD_SWAP( "262cf1.p2", 0x100000, 0x400000, CRC(9060fc03) SHA1(cb831ff2e52087a551494772b1a0b4db83e23180) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1ch ) /* The King of Fighters 2001 - Remix by Chase - (Character move change - can choose Zero and Igniz) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262ch.p1", 0x000000, 0x100000, CRC(18ef4629) SHA1(d34be181230f703eb96d29d8641ca975a581e1eb) )
+ ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1cfc ) /* [OLD] The King of Fighters 2001 - (kof2k1cfco) - Colour fix by C6F8 - (Character colour change for Iori p1 and p2) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) )
+ ROM_LOAD16_WORD_SWAP( "262cfc.p2", 0x100000, 0x400000, CRC(3d91029f) SHA1(9024a521c519a9301cf4d041644cdf9406986184) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1clr ) /* The King of Fighters 2001 - Colour fix by UNKNOWN - (Character colour change) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) )
+ ROM_LOAD16_WORD_SWAP( "262clr.p2", 0x100000, 0x400000, CRC(bb8f76e5) SHA1(3f59ab1b19c12816fcec129ae71f4b5f1e7a1baa) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1cp ) /* The King of Fighters 2001 - Colour fix by UNKNOWN - (kof2k1cp) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) )
+ ROM_LOAD16_WORD_SWAP( "262cp.p2", 0x100000, 0x400000, CRC(827825f6) SHA1(e23c1f4fee1acf032cfa5245991610d48b946ccb) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1cp1 ) /* The King of Fighters 2001 - Colour fix by UNKNOWN - (kof2k1cp1) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) )
+ ROM_LOAD16_WORD_SWAP( "262cp1.p2", 0x100000, 0x400000, CRC(6fb2a367) SHA1(1cbe328e7e9f14445f0fa31b9ab19fc83ebab19a) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1cp2 ) /* The King of Fighters 2001 - Colour fix by UNKNOWN - (kof2k1cp2) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) )
+ ROM_LOAD16_WORD_SWAP( "262cp2.p2", 0x100000, 0x400000, CRC(ab26df49) SHA1(c918ab87bfa0db990bfeb35651ff5b3e4af990d8) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1cp3 ) /* The King of Fighters 2001 - Colour fix by UNKNOWN - (Character colour change) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) )
+ ROM_LOAD16_WORD_SWAP( "262cp3.p2", 0x100000, 0x400000, CRC(53f5cd5b) SHA1(6012b3f33d98c6fc647c362401bb536e721c0dfd) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1cp4 ) /* The King of Fighters 2001 - Colour fix by UNKNOWN - (Character colour change) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) )
+ ROM_LOAD16_WORD_SWAP( "262cp4.p2", 0x100000, 0x400000, CRC(91cb1f4a) SHA1(fbcdd53621cd596d91632e4ac3bb4b8d5b980aa1) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1cp5 ) /* The King of Fighters 2001 - Colour fix by UNKNOWN - (Character colour change) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) )
+ ROM_LOAD16_WORD_SWAP( "262cp5.p2", 0x100000, 0x400000, CRC(ce1a6381) SHA1(87ba0b1d761705a213d34987a49b1c3a5e4ecd66) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1cp6 ) /* The King of Fighters 2001 - Colour fix by UNKNOWN - (Character colour change) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) )
+ ROM_LOAD16_WORD_SWAP( "262cp6.p2", 0x100000, 0x400000, CRC(eb1b7410) SHA1(810f6ec155a549d401f68e98f571b73aefee5e21) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1cp7 ) /* The King of Fighters 2001 - Colour fix by UNKNOWN - (Character colour change - attack cremation ice blue) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) )
+ ROM_LOAD16_WORD_SWAP( "262cp7.p2", 0x100000, 0x400000, CRC(69629013) SHA1(041630bf4f6a8aa3f2a53beb683852b3fd0e3b7a) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1cr ) /* The King of Fighters 2001 - Revise by CrUmp - (Bases on kof2001h - revise) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262cr.p1", 0x000000, 0x100000, CRC(19f18567) SHA1(1dfb262d919107ef6173bfa5339fd2e39c1ca690) )
+ ROM_LOAD16_WORD_SWAP( "262-pg2.sp2", 0x100000, 0x400000, CRC(91eea062) SHA1(82bae42bbeedb9f3aa0c7c0b0a7a69be499cf98f) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1eh ) /* The King of Fighters 2001 - Enhance by Ydmis - (Bases on kof2001h - can choose Zero and Igniz - ultra kill start is max) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262eh.p1", 0x000000, 0x100000, CRC(32c4a98b) SHA1(a4142ae4ac4053af65efc815a29574a839bad0e3) )
+ ROM_LOAD16_WORD_SWAP( "262-pg2.sp2", 0x100000, 0x400000, CRC(91eea062) SHA1(82bae42bbeedb9f3aa0c7c0b0a7a69be499cf98f) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1ehc ) /* The King of Fighters 2001 - Enhance by Ydmis - (Bases on kof2001h - ultra kill start is max - ultra power hack) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262ehc.p1", 0x000000, 0x100000, CRC(1ebb4962) SHA1(8f80953ecf0053b735e80c77a9a3b51315c8538d) )
+ ROM_LOAD16_WORD_SWAP( "262-pg2.sp2", 0x100000, 0x400000, CRC(91eea062) SHA1(82bae42bbeedb9f3aa0c7c0b0a7a69be499cf98f) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1ehr ) /* The King of Fighters 2001 - Remix by Raymonose - (Bases on kof2001h - ultra kill start is max - ultra power hack - character move change) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262ehr.p1", 0x000000, 0x100000, CRC(afabe438) SHA1(3245650382a9f36cde7b66fe247bdd68b1adf30c) )
+ ROM_LOAD16_WORD_SWAP( "262-pg2.sp2", 0x100000, 0x400000, CRC(91eea062) SHA1(82bae42bbeedb9f3aa0c7c0b0a7a69be499cf98f) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1gm ) /* The King of Fighters 2001 - Colour fix by UNKNOWN - (Colour style remix) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) )
+ ROM_LOAD16_WORD_SWAP( "262gm.p2", 0x100000, 0x400000, CRC(888d765a) SHA1(95c31e720f415a5f46f4cdbeb8eb9d19dee85732) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1guan )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262guan.p1", 0x000000, 0x100000, CRC(8db710c2) SHA1(f54b78977fa55073715e438628a83f918d1371fa) )
+ ROM_LOAD16_WORD_SWAP( "262guan.p2", 0x100000, 0x400000, CRC(3e854c2c) SHA1(154871e713a7f142d445d2d8159895f1634528b8) )
+
+ NEO_SFIX_128K( "262guan.s1", CRC(25261ef4) SHA1(18d68f74ca566d2a966b27888ba17c99d35efb1d) )
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262d.c1", 0x0000000, 0x800000, CRC(103225b1) SHA1(41486C7BB421B6B54F3CA07621AABD907BF10E15) )
+ ROM_LOAD16_BYTE( "262d.c2", 0x0000001, 0x800000, CRC(f9d05d99) SHA1(C135DD3D5584DC58A46315D64F663E34BB64BEBF) )
+ ROM_LOAD16_BYTE( "262d.c3", 0x1000000, 0x800000, CRC(4c7ec427) SHA1(0156E2F79E7A62B15ACC2314AC6563A67AF0F256) )
+ ROM_LOAD16_BYTE( "262d.c4", 0x1000001, 0x800000, CRC(1d237aa6) SHA1(B007FE9F1F32F0FF947C6575741B47FB70976728) )
+ ROM_LOAD16_BYTE( "262d.c5", 0x2000000, 0x800000, CRC(c2256db5) SHA1(DAE6B7B0673B431F223D82F7C3A685DE70A1C035) )
+ ROM_LOAD16_BYTE( "262d.c6", 0x2000001, 0x800000, CRC(8d6565a9) SHA1(137C950D588D40C812C36967EC17D04D4FC56362) )
+ ROM_LOAD16_BYTE( "262d.c7", 0x3000000, 0x800000, CRC(d1408776) SHA1(E77C786070B2B851A8A36250722B4C902E7213ED) )
+ ROM_LOAD16_BYTE( "262d.c8", 0x3000001, 0x800000, CRC(954d0e16) SHA1(975803C130DF3A6E835B9BF0F8532D6586058C54) )
+ROM_END
+
+ROM_START( kof2k1ha ) /* The King of Fighters 2001 - (kof2k1ha) - Revise by UNKNOWN - (Alternate home version) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262ha.p1", 0x000000, 0x100000, CRC(b03df3de) SHA1(a56bb40e557e73d74a352884cabfbc5556fdca5b) )
+ ROM_LOAD16_WORD_SWAP( "262ha.p2", 0x100000, 0x400000, CRC(ccff204a) SHA1(251b32e2ce902bc6af001b14e6f04379ef52ab27) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262ha.m1", CRC(7f4d8a65) SHA1(c01b57d97079f86011ffdf9c52f7878ab5a9bed9) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1ha2 ) /* The King of Fighters 2001 - (kof2k1ha2) - Revise by UNKNOWN - (Alternate home version revision 2) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262ha2.p1", 0x000000, 0x100000, CRC(833b91f8) SHA1(cc9fe3efdfc67cb1bea3f36c9e59c0b0252dc58a) )
+ ROM_LOAD16_WORD_SWAP( "262ha2.p2", 0x100000, 0x400000, CRC(616179f9) SHA1(12e7d372a0d0bf3af1b41af19c3242748135370c) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262ha.m1", CRC(7f4d8a65) SHA1(c01b57d97079f86011ffdf9c52f7878ab5a9bed9) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1hao ) /* [OLD] The King of Fighters 2001 - (kof2k1hao) - Hack by UNKNOWN - (Alternate home version) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) )
+ ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) )
+
+ NEO_SFIX_MT_128K
+
+ // This set is all the original one except for this rom
+ NEO_BIOS_AUDIO_128K( "262hao.m1", CRC(c504deaf) SHA1(7b8146d7a4c645ea0eabb748da4878ed5748adae) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1hb ) /* The King of Fighters 2001 - Hack by Kurouri - (Bases on kof2001h - can choose Zero and Igniz) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262hb.p1", 0x000000, 0x100000, CRC(c17dddc5) SHA1(645c29343a56bc2de02ad913f7ebc74e5f496ee5) )
+ ROM_LOAD16_WORD_SWAP( "262-pg2.sp2", 0x100000, 0x400000, CRC(91eea062) SHA1(82bae42bbeedb9f3aa0c7c0b0a7a69be499cf98f) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1hgm ) /* The King of Fighters 2001 - Colour fix by UNKNOWN - (Colour style remix)? */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) )
+ ROM_LOAD16_WORD_SWAP( "262hgm.p2", 0x100000, 0x400000, CRC(26a89686) SHA1(4b8fc3dd0fbab61b9205a79939feba15582aa26e) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1ic2 ) /* The King of Fighters 2001 - Colour fix by Zhangshee - (Character colour change - attack cremation ice blue)? */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) )
+ ROM_LOAD16_WORD_SWAP( "262ic2.p2", 0x100000, 0x400000, CRC(8675134d) SHA1(cabd218f5531e4721eeb954ad8996836d01097c4) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1ice ) /* The King of Fighters 2001 - Colour fix by Zhangshee - (Character colour change - attack cremation ice blue) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) )
+ ROM_LOAD16_WORD_SWAP( "262ice.p2", 0x100000, 0x400000, CRC(99963006) SHA1(4ba2022bd429e4ce1a333712ef275d8d71ed7b44) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1k32 ) /* [OLD] The King of Fighters 2001 - (kof2k1k3r2) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k1k3r2.txt for more 20030714) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262k32.p1", 0x000000, 0x100000, CRC(7be1405a) SHA1(a85f6e6d360c2033abd8f36eb6bcc502a4e2a88e) )
+ ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1k33 ) /* [OLD] The King of Fighters 2001 - (kof2k1k3r3) - Remix by jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k1k3r3.txt for more 20030725) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262k33.p1", 0x000000, 0x100000, CRC(75f6e824) SHA1(f1731dcec65051b14d048df329e7bf637bfe87f3) )
+ ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1k34 ) /* [OLD] The King of Fighters 2001 - (kof2k1k3r4) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k1k3r4.txt for more 20030730) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262k34.p1", 0x000000, 0x100000, CRC(fef04a32) SHA1(efb5f70a722ed5825c8ad05456d0a98060af4430) )
+ ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1k35 ) /* [OLD] The King of Fighters 2001 - (kof2k1k3r5) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k1k3r5.txt for more 20030806) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262k35.p1", 0x000000, 0x100000, CRC(2978b172) SHA1(7d8a3494e76f617fc198e61a5663281c27588f87) )
+ ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1k36 ) /* [OLD] The King of Fighters 2001 - (kof2k1k3r6) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k1k3r5.txt for more 20030815) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262k36.p1", 0x000000, 0x100000, CRC(cfb88cd7) SHA1(5cbc2a0face3439c5c1f212fe6d93f18fb718942) )
+ ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1k37 ) /* [OLD] The King of Fighters 2001 - (kof2k1k3r7) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k1k3r7.txt for more 20030817) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262k37.p1", 0x000000, 0x100000, CRC(1d7b445a) SHA1(99dc9ceb2c68473c268ae142539038dff83458af) )
+ ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1k38 ) /* [OLD] The King of Fighters 2001 - (kof2k1k3r8) - Remix by jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k1k3r8.txt for more 20030823) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262k38.p1", 0x000000, 0x100000, CRC(8b513ac3) SHA1(0bb6e67d6b2924aec10a48dcc781a3e20bca8248) )
+ ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1k39 ) /* [OLD] The King of Fighters 2001 - (kof2k1k3r9) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k1k3r9.txt for more 20030826) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262k39.p1", 0x000000, 0x100000, CRC(28dfef34) SHA1(02a74b48d1c2f88c83e7249b7abce866fd7c9f8e) )
+ ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1k3a ) /* [OLD] The King of Fighters 2001 - (kof2k1k3r10) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k1k3r10.txt for more 20030907) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262k3a.p1", 0x000000, 0x100000, CRC(696ef78e) SHA1(c6c3bd3da1e839a676937027f948174cb2414530) )
+ ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1k3b ) /* [OLD] The King of Fighters 2001 - (kof2k1k3r11) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k1k3r11.txt for more 20031005) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262k3b.p1", 0x000000, 0x100000, CRC(27251457) SHA1(8a33cade6cc59b3e7407294faae692540721d4b6) )
+ ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1k3c ) /* [OLD] The King of Fighters 2001 - (kof2k1k3r12) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k1k3r12.txt for more 20031011) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262k3c.p1", 0x000000, 0x100000, CRC(720f4404) SHA1(59ea034c0b638dbc5da787738ac324c8ece36b08) )
+ ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1k3d ) /* [OLD] The King of Fighters 2001 - (kof2k1k3r13) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k1k3r13.txt for more 20031013) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262k3d.p1", 0x000000, 0x100000, CRC(bf7e6f7f) SHA1(a56927da0ff3bd914dbbc800faef4753c3fed1e6) )
+ ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1k3e ) /* [OLD] The King of Fighters 2001 - (kof2k1k3r14) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k1k3r14.txt for more 20031018) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262k3e.p1", 0x000000, 0x100000, CRC(531e2d77) SHA1(2b616c0ff7ca4612f5e639e27981d12d9b18f562) )
+ ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1k3f ) /* [OLD] The King of Fighters 2001 - (kof2k1k3r15) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k1k3r15.txt for more 20031019) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262k3f.p1", 0x000000, 0x100000, CRC(dcdcf815) SHA1(57f152496a5e847119e9eb399ba071db5b245a2d) )
+ ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1k3g ) /* [OLD] The King of Fighters 2001 - (kof2k1k3r16) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style - ultra revision, see kof2k1k3r16.htm for more 20031120) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262k3g.p1", 0x000000, 0x100000, CRC(fead4731) SHA1(387097c6839e45ccb07139f6b8d41064e780421f) )
+ ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1k3h ) /* [OLD] The King of Fighters 2001 - (kof2k1k3r17) - Remix by Jason/K3 - (Character move change ultra revision - can choose Igniz 20031202) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262k3h.p1", 0x000000, 0x100000, CRC(ac581390) SHA1(d3351eccee63292c01bb9fa338bfb6cb21421426) )
+ ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1k3o ) /* [OLD] The King of Fighters 2001 - (kof2k1k3o) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k1k3o.txt for more 20030629) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262k3o.p1", 0x000000, 0x100000, CRC(3531998e) SHA1(5682044819777b9dc2e26d1d3b5fbc07b7c81f2b) )
+ ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1ki )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262ki.p1", 0x000000, 0x100000, CRC(b6a4103e) SHA1(218e7d970810f30535980cca470811167978da97) )
+ ROM_LOAD16_WORD_SWAP( "262ki.p2", 0x100000, 0x400000, CRC(bb4b036f) SHA1(6f3bc151d24d90d5e22bcefca72874159e3bc525) )
+
+ NEO_SFIX_128K( "262ki.s1", CRC(290e8904) SHA1(0e5449e694a033309bee476b6481d0b5e0b84096) )
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262d.c1", 0x0000000, 0x800000, CRC(103225b1) SHA1(41486C7BB421B6B54F3CA07621AABD907BF10E15) )
+ ROM_LOAD16_BYTE( "262d.c2", 0x0000001, 0x800000, CRC(f9d05d99) SHA1(C135DD3D5584DC58A46315D64F663E34BB64BEBF) )
+ ROM_LOAD16_BYTE( "262d.c3", 0x1000000, 0x800000, CRC(4c7ec427) SHA1(0156E2F79E7A62B15ACC2314AC6563A67AF0F256) )
+ ROM_LOAD16_BYTE( "262d.c4", 0x1000001, 0x800000, CRC(1d237aa6) SHA1(B007FE9F1F32F0FF947C6575741B47FB70976728) )
+ ROM_LOAD16_BYTE( "262d.c5", 0x2000000, 0x800000, CRC(c2256db5) SHA1(DAE6B7B0673B431F223D82F7C3A685DE70A1C035) )
+ ROM_LOAD16_BYTE( "262d.c6", 0x2000001, 0x800000, CRC(8d6565a9) SHA1(137C950D588D40C812C36967EC17D04D4FC56362) )
+ ROM_LOAD16_BYTE( "262st.c7", 0x3000000, 0x800000, CRC(773f20e7) SHA1(fb01ac2c143583c12bb114c70f89b4d87528027d) )
+ ROM_LOAD16_BYTE( "262st.c8", 0x3000001, 0x800000, CRC(898fed6b) SHA1(47619d5aba883cd62d6a95cb8d1f07bb6672104c) )
+ROM_END
+
+ROM_START( kof2k1mk ) /* The King of Fighters 2001 - Revise by MasakiAnton - (Bases on kof2k1h - revise) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262mk.p1", 0x000000, 0x100000, CRC(97492f8e) SHA1(741f26907377aab55d16f34ec3e7906d59a087cc) )
+ ROM_LOAD16_WORD_SWAP( "262-pg2.sp2", 0x100000, 0x400000, CRC(91eea062) SHA1(82bae42bbeedb9f3aa0c7c0b0a7a69be499cf98f) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1mk2 ) /* The King of Fighters 2001 - Revise by MasakiAnton - (Bases on kof2001h - revise version 2.0) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262mk2.p1", 0x000000, 0x100000, CRC(e8e7d3b0) SHA1(11ab4f0fcf82fe72723e3a5e25561b89db1935c9) )
+ ROM_LOAD16_WORD_SWAP( "262-pg2.sp2", 0x100000, 0x400000, CRC(91eea062) SHA1(82bae42bbeedb9f3aa0c7c0b0a7a69be499cf98f) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1mke ) /* The King of Fighters 2001 - Revise by MasakiAnton - (Bases on kof2001h - revise) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262mke.p1", 0x000000, 0x100000, CRC(1d29382e) SHA1(a91929198fb6e16a5ccfac83a869d06afdff0bd8) )
+ ROM_LOAD16_WORD_SWAP( "262-pg2.sp2", 0x100000, 0x400000, CRC(91eea062) SHA1(82bae42bbeedb9f3aa0c7c0b0a7a69be499cf98f) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1lse ) /* The King of Fighters 2001 - Colour fix by CRC - LSE - (Character colour change for whip 2P, k'2P, VANESSA 2P, Angel 2P) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) )
+ ROM_LOAD16_WORD_SWAP( "262lse.p2", 0x100000, 0x400000, CRC(e9ba7d37) SHA1(6d9ec274391c0177abe0f570f826a82caff8eb30) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1pa )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262pa.p1", 0x000000, 0x100000, CRC(f8a71b6f) SHA1(e4cc249b36b8cb72aa162adff4cdb302ce220812) )
+ ROM_LOAD16_WORD_SWAP( "262-pg2.sp2", 0x100000, 0x400000, CRC(91eea062) SHA1(82bae42bbeedb9f3aa0c7c0b0a7a69be499cf98f) )
+
+ NEO_SFIX_128K( "262pa.s1", CRC(50986eeb) SHA1(cdca34ba5afdd7b56cd5430b3df80da53de9b990) )
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1pa2 ) // same as kof2k1pa except for s1
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262pa.p1", 0x000000, 0x100000, CRC(f8a71b6f) SHA1(e4cc249b36b8cb72aa162adff4cdb302ce220812) )
+ ROM_LOAD16_WORD_SWAP( "262-pg2.sp2", 0x100000, 0x400000, CRC(91eea062) SHA1(82bae42bbeedb9f3aa0c7c0b0a7a69be499cf98f) )
+
+ NEO_SFIX_128K( "262pa2.s1", CRC(a4da10fd) SHA1(3b5f73d284f0f912d96e07d7b30122eaa43a04a8) )
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262d.c1", 0x0000000, 0x800000, CRC(103225b1) SHA1(41486C7BB421B6B54F3CA07621AABD907BF10E15) )
+ ROM_LOAD16_BYTE( "262d.c2", 0x0000001, 0x800000, CRC(f9d05d99) SHA1(C135DD3D5584DC58A46315D64F663E34BB64BEBF) )
+ ROM_LOAD16_BYTE( "262d.c3", 0x1000000, 0x800000, CRC(4c7ec427) SHA1(0156E2F79E7A62B15ACC2314AC6563A67AF0F256) )
+ ROM_LOAD16_BYTE( "262d.c4", 0x1000001, 0x800000, CRC(1d237aa6) SHA1(B007FE9F1F32F0FF947C6575741B47FB70976728) )
+ ROM_LOAD16_BYTE( "262d.c5", 0x2000000, 0x800000, CRC(c2256db5) SHA1(DAE6B7B0673B431F223D82F7C3A685DE70A1C035) )
+ ROM_LOAD16_BYTE( "262d.c6", 0x2000001, 0x800000, CRC(8d6565a9) SHA1(137C950D588D40C812C36967EC17D04D4FC56362) )
+ ROM_LOAD16_BYTE( "262d.c7", 0x3000000, 0x800000, CRC(d1408776) SHA1(E77C786070B2B851A8A36250722B4C902E7213ED) )
+ ROM_LOAD16_BYTE( "262d.c8", 0x3000001, 0x800000, CRC(954d0e16) SHA1(975803C130DF3A6E835B9BF0F8532D6586058C54) )
+ROM_END
+
+ROM_START( kof2k1pjc ) /* The King of Fighters 2001 - Colour fix by TcwLee - (Colour fix 20030302) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) )
+ ROM_LOAD16_WORD_SWAP( "262pjc.p2", 0x100000, 0x400000, CRC(42a745a6) SHA1(c98c620ee41ba311b83d4484a2ec8c00f108524a) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1pjo ) /* [OLD] The King of Fighters 2001 - (kof2k1pjco) - Colour Fix by TcwLee - (Colour fix) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) )
+ ROM_LOAD16_WORD_SWAP( "262pjo.p2", 0x100000, 0x400000, CRC(1da00d8e) SHA1(a79535a963567ec2060dc2ca81ef2b9b5afcb21c) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1pj1 ) /* [OLD] The King of Fighters 2001 - (kof2k1c1) - Colour fix by TcwLee - (Character colour change ?? rev.2 ?? 1508) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) )
+ ROM_LOAD16_WORD_SWAP( "262pj1.p2", 0x100000, 0x400000, CRC(a287a90a) SHA1(dbccb523cba273d61b6a722d82e9013340c53d75) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1pj2 ) /* [OLD] The King of Fighters 2001 - (kof2k1c2) - Colour fix by TcwLee - (Character colour change - home use machine repair menue colour change) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) )
+ ROM_LOAD16_WORD_SWAP( "262pj2.p2", 0x100000, 0x400000, CRC(fb2387e0) SHA1(589c8cd61193f4a4319ec2b5551ed35fc51e6037) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1pj3 ) /* The King of Fighters 2001 - Colour fix by TcwLee - (Colour fix 20030720) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) )
+ ROM_LOAD16_WORD_SWAP( "262pj3.p2", 0x100000, 0x400000, CRC(8adb985a) SHA1(2f96d06c2924308e9e072f7f24f57a6c3525f9d4) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1pls )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262pls.p1", 0x000000, 0x100000, CRC(758529a7) SHA1(cefdc7049772dcb77d658ac8571a12eedabda3c9) )
+ ROM_LOAD16_WORD_SWAP( "262-pg2.sp2", 0x100000, 0x400000, CRC(91eea062) SHA1(82bae42bbeedb9f3aa0c7c0b0a7a69be499cf98f) )
+
+ NEO_SFIX_128K( "262pls.s1", CRC(088657e6) SHA1(7ab5eac3ff2a82e04fdc9dc8ee5d193db580e8d4) )
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1rm ) /* The King of Fighters 2001 - Remix by Raymonose - (Bases on kof2001h - character move change) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262rm.p1", 0x000000, 0x100000, CRC(9be74a1b) SHA1(4785e08ab499dabcd37312ca15c1b9e0d61b2f08) )
+ ROM_LOAD16_WORD_SWAP( "262-pg2.sp2", 0x100000, 0x400000, CRC(91eea062) SHA1(82bae42bbeedb9f3aa0c7c0b0a7a69be499cf98f) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1rp ) /* The King of Fighters 2001 - Remix PRO by Fighters Kim, Jason/K3 and Raymonose - (Remix PRO V1.02 final 2004.03.11) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262rp.p1", 0x000000, 0x100000, CRC(e9e42e55) SHA1(2a254d056ab046d2704e16ebbaa2b68c6e867dc7) )
+ ROM_LOAD16_WORD_SWAP( "262rp.p2", 0x100000, 0x400000, CRC(91668d86) SHA1(3df31baaa1c87b040f88eeffff1a174960f9f1fc) )
+
+ NEO_SFIX_128K( "262rp.s1", CRC(492f5efe) SHA1(e18895da5c294245b6e119421affbd4f0e168c7a) )
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1rp0 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262rp.p1", 0x000000, 0x100000, CRC(e9e42e55) SHA1(2a254d056ab046d2704e16ebbaa2b68c6e867dc7) )
+ ROM_LOAD16_WORD_SWAP( "262rp.p2", 0x100000, 0x400000, CRC(91668d86) SHA1(3df31baaa1c87b040f88eeffff1a174960f9f1fc) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_ENCRYPTED_256K( "265-262-m1.m1", CRC(a7f8119f) SHA1(71805b39b8b09c32425cf39f9de59b2f755976c2) ) /* mask rom TC532000 */
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262rp0.c1", 0x0000000, 0x800000, CRC(caeeb878) SHA1(233b5e1b864389e19fee16a1ab952c569dffc267) ) /* Plane 0,1 */
+ ROM_LOAD16_BYTE( "262rp0.c2", 0x0000001, 0x800000, CRC(278a8934) SHA1(c56f2cd6725c06bb4cfc79cdb03419b6392475fe) ) /* Plane 2,3 */
+ ROM_LOAD16_BYTE( "262rp0.c3", 0x1000000, 0x800000, CRC(ecfbe08f) SHA1(9459f62aaeb7b0187dbc33bd2e4bd116ef2ac425) ) /* Plane 0,1 */
+ ROM_LOAD16_BYTE( "262rp0.c4", 0x1000001, 0x800000, CRC(7ae95994) SHA1(d2e1e6606388a84875832e67f0190f94d7b74f55) ) /* Plane 2,3 */
+ ROM_LOAD16_BYTE( "262rp0.c5", 0x2000000, 0x800000, CRC(37f8e297) SHA1(4f40af3c55a9df3c252ac6e5ea466565cc254f8e) ) /* Plane 0,1 */
+ ROM_LOAD16_BYTE( "262rp0.c6", 0x2000001, 0x800000, CRC(34372229) SHA1(5e121ca6d02d96893c29a5ec0672fe7ab18d5d05) ) /* Plane 2,3 */
+ ROM_LOAD16_BYTE( "262rp0.c7", 0x3000000, 0x800000, CRC(713e7150) SHA1(4c16d7ad96237dc98eec684f1a3646a7da2771a2) ) /* Plane 0,1 */
+ ROM_LOAD16_BYTE( "262rp0.c8", 0x3000001, 0x800000, CRC(9aa68c3a) SHA1(6a21de5a1676fec157ad01246352ddd838842512) ) /* Plane 2,3 */
+ROM_END
+
+ROM_START( kof2k1rpo ) /* [OLD] The King of Fighters 2001 - (kof2k1rpo) - Remix PRO by Fighters Kim, Jason/K3 and Raymonose - (Remix Pro V1.0a 200311xx) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262rpo.p1", 0x000000, 0x100000, CRC(a749e1af) SHA1(b3d463c9868ca246bf6f84157815543ab637e1d4) )
+ ROM_LOAD16_WORD_SWAP( "262rpo.p2", 0x100000, 0x400000, CRC(72b2a025) SHA1(c8ff8ce42ec1f51931346367008a555198919658) )
+
+ NEO_SFIX_128K( "262rpo.s1", CRC(9ae95cb7) SHA1(a3402ec2cb9352ce635c138f678a1a0b047e5e0f) )
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1rp1 ) /* [OLD] The King of Fighters 2001 - kof2k1rpo1 - Remix PRO by Fighters Kim, Jason/K3 and Raymonose - (Remix Pro V1.01 final1 2003.12.06) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262rp1.p1", 0x000000, 0x100000, CRC(350f8571) SHA1(7ad5642b67b49025899ea925f96ddf910e9a5699) )
+ ROM_LOAD16_WORD_SWAP( "262rpo.p2", 0x100000, 0x400000, CRC(72b2a025) SHA1(c8ff8ce42ec1f51931346367008a555198919658) )
+
+ NEO_SFIX_128K( "262rpo.s1", CRC(9ae95cb7) SHA1(a3402ec2cb9352ce635c138f678a1a0b047e5e0f) )
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1ru ) /* The King of Fighters 2001 - Remix Ultra by Jason/K3 - (Character move change ultra revision - can choose Igniz 20040507 - v2.3) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262ru.p1", 0x000000, 0x100000, CRC(3377ebee) SHA1(52b70ba1bb0801db02be3862dde1fcaf8ae5075b) )
+ ROM_LOAD16_WORD_SWAP( "262ru.p2", 0x100000, 0x400000, CRC(394bcc59) SHA1(f08adf02bff87d7399e07f70acbecf1a3da3c731) )
+
+ NEO_SFIX_128K( "262ru.s1", CRC(a5d90035) SHA1(8c651aa58d135d4428f24cfc6b733b16812f33d6) )
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1ru0 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262ru.p1", 0x000000, 0x100000, CRC(3377ebee) SHA1(52b70ba1bb0801db02be3862dde1fcaf8ae5075b) )
+ ROM_LOAD16_WORD_SWAP( "262ru.p2", 0x100000, 0x400000, CRC(394bcc59) SHA1(f08adf02bff87d7399e07f70acbecf1a3da3c731) )
+
+ NEO_SFIX_128K( "262ru.s1", CRC(a5d90035) SHA1(8c651aa58d135d4428f24cfc6b733b16812f33d6) )
+
+ NEO_BIOS_AUDIO_256K( "262n.m1", CRC(4bcc537b) SHA1(9fcf1342bcd53d5eec12c46ee41a51bf543256c2) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262d.c1", 0x0000000, 0x800000, CRC(103225b1) SHA1(41486C7BB421B6B54F3CA07621AABD907BF10E15) )
+ ROM_LOAD16_BYTE( "262d.c2", 0x0000001, 0x800000, CRC(f9d05d99) SHA1(C135DD3D5584DC58A46315D64F663E34BB64BEBF) )
+ ROM_LOAD16_BYTE( "262d.c3", 0x1000000, 0x800000, CRC(4c7ec427) SHA1(0156E2F79E7A62B15ACC2314AC6563A67AF0F256) )
+ ROM_LOAD16_BYTE( "262d.c4", 0x1000001, 0x800000, CRC(1d237aa6) SHA1(B007FE9F1F32F0FF947C6575741B47FB70976728) )
+ ROM_LOAD16_BYTE( "262d.c5", 0x2000000, 0x800000, CRC(c2256db5) SHA1(DAE6B7B0673B431F223D82F7C3A685DE70A1C035) )
+ ROM_LOAD16_BYTE( "262d.c6", 0x2000001, 0x800000, CRC(8d6565a9) SHA1(137C950D588D40C812C36967EC17D04D4FC56362) )
+ ROM_LOAD16_BYTE( "262d.c7", 0x3000000, 0x800000, CRC(d1408776) SHA1(E77C786070B2B851A8A36250722B4C902E7213ED) )
+ ROM_LOAD16_BYTE( "262d.c8", 0x3000001, 0x800000, CRC(954d0e16) SHA1(975803C130DF3A6E835B9BF0F8532D6586058C54) )
+ROM_END
+
+ROM_START( kof2k1seh ) /* The King of Fighters 2001 - Super Enhance Hack by Ydmis - (Bases on kof2001h - can choose Zero and Igniz - ultra kill start is max - ultra power hack) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262seh.p1", 0x000000, 0x100000, CRC(bcc84782) SHA1(31164d1f7303f0dbca5c4c2c43d081bf1b5db7df) )
+ ROM_LOAD16_WORD_SWAP( "262-pg2.sp2", 0x100000, 0x400000, CRC(91eea062) SHA1(82bae42bbeedb9f3aa0c7c0b0a7a69be499cf98f) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1sob ) /* The King of Fighters 2001 - Colour fix by Ayane - (Character colour change - 1P character turns to a corpse - style remix) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) )
+ ROM_LOAD16_WORD_SWAP( "262sob.p2", 0x100000, 0x400000, CRC(e8f7eef2) SHA1(400a31d2b863cf0b100149ab254ac3b6d6158c0e) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1st )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262st.p1", 0x000000, 0x100000, CRC(87c5979b) SHA1 (53d7fbe3f4ed582abccd87ca966e430ac9766467) )
+ ROM_LOAD16_WORD_SWAP( "262st.p2", 0x100000, 0x400000, CRC(49d5112d) SHA1 (5ec0deec05f79878edbaa38107afcc0de17102fa) )
+
+ NEO_SFIX_128K( "262pls.s1", CRC(088657e6) SHA1(7ab5eac3ff2a82e04fdc9dc8ee5d193db580e8d4) )
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262d.c1", 0x0000000, 0x800000, CRC(103225b1) SHA1(41486C7BB421B6B54F3CA07621AABD907BF10E15) )
+ ROM_LOAD16_BYTE( "262d.c2", 0x0000001, 0x800000, CRC(f9d05d99) SHA1(C135DD3D5584DC58A46315D64F663E34BB64BEBF) )
+ ROM_LOAD16_BYTE( "262d.c3", 0x1000000, 0x800000, CRC(4c7ec427) SHA1(0156E2F79E7A62B15ACC2314AC6563A67AF0F256) )
+ ROM_LOAD16_BYTE( "262d.c4", 0x1000001, 0x800000, CRC(1d237aa6) SHA1(B007FE9F1F32F0FF947C6575741B47FB70976728) )
+ ROM_LOAD16_BYTE( "262d.c5", 0x2000000, 0x800000, CRC(c2256db5) SHA1(DAE6B7B0673B431F223D82F7C3A685DE70A1C035) )
+ ROM_LOAD16_BYTE( "262d.c6", 0x2000001, 0x800000, CRC(8d6565a9) SHA1(137C950D588D40C812C36967EC17D04D4FC56362) )
+ ROM_LOAD16_BYTE( "262st.c7", 0x3000000, 0x800000, CRC(773f20e7) SHA1(fb01ac2c143583c12bb114c70f89b4d87528027d) )
+ ROM_LOAD16_BYTE( "262st.c8", 0x3000001, 0x800000, CRC(898fed6b) SHA1(47619d5aba883cd62d6a95cb8d1f07bb6672104c) )
+ROM_END
+
+ROM_START( kof2k1st2 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262st2.p1", 0x000000, 0x100000, CRC(ce91a972) SHA1(2e2f42385a82b5f95ae461465c57890bf367f82d) )
+ ROM_LOAD16_WORD_SWAP( "262st2.p2", 0x100000, 0x400000, CRC(1420ef21) SHA1(af3d754a2d4d22d573a85bda5d8dda20f38fc369) )
+
+ NEO_SFIX_128K( "262st2.s1", CRC(2e3229a3) SHA1 (feb028bf43ae30e3091a67abc7c23a9816a3412e) )
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262d.c1", 0x0000000, 0x800000, CRC(103225b1) SHA1(41486C7BB421B6B54F3CA07621AABD907BF10E15) )
+ ROM_LOAD16_BYTE( "262d.c2", 0x0000001, 0x800000, CRC(f9d05d99) SHA1(C135DD3D5584DC58A46315D64F663E34BB64BEBF) )
+ ROM_LOAD16_BYTE( "262d.c3", 0x1000000, 0x800000, CRC(4c7ec427) SHA1(0156E2F79E7A62B15ACC2314AC6563A67AF0F256) )
+ ROM_LOAD16_BYTE( "262d.c4", 0x1000001, 0x800000, CRC(1d237aa6) SHA1(B007FE9F1F32F0FF947C6575741B47FB70976728) )
+ ROM_LOAD16_BYTE( "262d.c5", 0x2000000, 0x800000, CRC(c2256db5) SHA1(DAE6B7B0673B431F223D82F7C3A685DE70A1C035) )
+ ROM_LOAD16_BYTE( "262d.c6", 0x2000001, 0x800000, CRC(8d6565a9) SHA1(137C950D588D40C812C36967EC17D04D4FC56362) )
+ ROM_LOAD16_BYTE( "262st.c7", 0x3000000, 0x800000, CRC(773f20e7) SHA1(fb01ac2c143583c12bb114c70f89b4d87528027d) )
+ ROM_LOAD16_BYTE( "262st.c8", 0x3000001, 0x800000, CRC(898fed6b) SHA1(47619d5aba883cd62d6a95cb8d1f07bb6672104c) )
+ROM_END
+
+ROM_START( kof2k1wh ) /* The King of Fighters 2001 - Remix by Wesker - (Character move change) */
+ // there's a decrypted version of this set, using s1 and cx from kof2k1pa2
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262wh.p1", 0x000000, 0x100000, CRC(67788800) SHA1(be87196cee03a0ca209319d2fa577ddf61afcaf4) )
+ ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1z1 ) /* The King of Fighters 2001 - Hack by Zhangshee - (Can choose Zero and Igniz) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262z1.p1", 0x000000, 0x100000, CRC(d170a91d) SHA1(155e63a5af548f708228123f44c4c2776d470a1b) )
+ ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1z2 ) /* The King of Fighters 2001 - Hack by Zhangshee - (Can choose Zero and Igniz - ??) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262z2.p1", 0x000000, 0x100000, CRC(71b5d0ff) SHA1(78ad8da1c97883e8580137dcdc8538ce090b37c4) )
+ ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+
+
+GAME( 2001, kof2001d, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001d, ROT0, "Eolith / SNK", "Kof2001 (decrypted C)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2001n, kof2001, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof2001 (fully decrypted)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1ay, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Kurouri and Ydmis", "Kof2001 (Revised set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1b, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "hack", "Kof2001 (Add Char set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1b1, kof2001, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Kof1996 / KQZ / Zuojie", "Kof2001 (Boss Fixed Version by KOF1996, KQZ & ZUOJIE)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1b3, kof2001, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "NeHt", "Kof2001 (Bloodlust)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1b4, kof2001, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Katana", "Kof2001 (Bloodlust Reload hack by Katana)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1bd2, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Ayane", "Kof2001 (Char color changed - Attack cremation scarlet)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1bh, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kf2k1pls, ROT0, "Dodowang", "Kof2001 (Add Char set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1bh1, kof2001, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof2001 (Boss Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1bs, kof2001, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Eddids", "Kof2001 PS2 PLUS ( Eddids )", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1bs2, kof2001, neogeo_noslot, neogeo, neogeo_noslot_state, kof2001, ROT0, "EGCG / Dodowang", "Kof2001 Boss Enabler v2.0 by Dodowang [EGCG]", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1ce, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "hack", "Kof2001 (Char color changed set 9)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1cfc, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "C6F8", "Kof2001 (Char color changed set 9 - rel 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1cf1, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "C6F8", "Kof2001 (Iori p1 and p2 Color Changed)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1ch, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Chase", "Kof2001 (Add Char - Diff Moves)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1clr, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "hack", "Kof2001 (Char color changed set 8)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1cp, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "hack", "Kof2001 (Char color changed set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1cp1, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "hack", "Kof2001 (Char color changed set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1cp2, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "hack", "Kof2001 (Char color changed set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1cp3, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "hack", "Kof2001 (Char color changed set 4)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1cp4, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "hack", "Kof2001 (Char color changed set 5)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1cp5, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "hack", "Kof2001 (Char color changed set 6)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1cp6, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "hack", "Kof2001 (Char color changed set 7)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1cp7, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "hack", "Kof2001 (Char color changed - Attack cremation ice blue set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1cr, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "CrUmp", "Kof2001 (Revised set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1eh, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Ydmis", "Kof2001 (Add Char - Ultra kill start max)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1ehc, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Ydmis", "Kof2001 (Ultra kill start max - Ultra pow hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1ehr, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Raymonose", "Kof2001 (Ultra kill start max - Ultra pow hack - Diff Moves)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1gm, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "hack", "Kof2001 (Color style remix set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1guan, kof2001, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "NGRT", "Kof2001 (Guan Version (Remix by NGRT))", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1ha, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "hack", "Kof2001 (Alternate home ver)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1ha2, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "hack", "Kof2001 (Alternate home ver rev.2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1hao, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "hack", "Kof2001 (Alternate home ver old)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1hb, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Kurouri", "Kof2001 (Add Char set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1hgm, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "hack", "Kof2001 (Color style remix set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1ice, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Zhangshee", "Kof2001 (Char color changed - Attack cremation ice blue set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1ic2, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Zhangshee", "Kof2001 (Char color changed - Attack cremation ice blue set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k1k3o, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Jason/K3", "Kof2001 (Moves KOF 98 style - 030629)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k1k32, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Jason/K3", "Kof2001 (Moves KOF 98 style - 030714)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k1k33, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Jason/K3", "Kof2001 (Moves KOF 98 style - 030725)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k1k34, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Jason/K3", "Kof2001 (Moves KOF 98 style - 030730)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k1k35, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Jason/K3", "Kof2001 (Moves KOF 98 style - 030806)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k1k36, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Jason/K3", "Kof2001 (Moves KOF 98 style - 030815)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k1k37, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Jason/K3", "Kof2001 (Moves KOF 98 style - 030817)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k1k38, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Jason/K3", "Kof2001 (Moves KOF 98 style - 030823)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k1k39, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Jason/K3", "Kof2001 (Moves KOF 98 style - 030826)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k1k3a, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Jason/K3", "Kof2001 (Moves KOF 98 style - 030907)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k1k3b, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Jason/K3", "Kof2001 (Moves KOF 98 style - 031005)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k1k3c, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Jason/K3", "Kof2001 (Moves KOF 98 style - 031011)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k1k3d, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Jason/K3", "Kof2001 (Moves KOF 98 style - 031013)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k1k3e, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Jason/K3", "Kof2001 (Moves KOF 98 style - 031018)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k1k3f, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Jason/K3", "Kof2001 (Moves KOF 98 style - 031019)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k1k3g, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Jason/K3", "Kof2001 (Moves KOF 98 style - Ultra rev - 031120)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k1k3h, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Jason/K3", "Kof2001 (Moves KOF 98 style - Add Igniz - 031202)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1ki, kof2001, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Kalce", "Kof2001 PLUS (Special ST V0.5 by Kalce)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1lse, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "CRC-LSE", "Kof2001 (Char color changed for whip 2P, k'2P, VANESSA 2P, Angel 2P)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1mk, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "MasakiAnton", "Kof2001 (Revised set 3 Old)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1mk2, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "MasakiAnton", "Kof2001 (Revised set 3 v2.0)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1mke, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "MasakiAnton", "Kof2001 (Revised set 4)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k1pa, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kf2k1pa, ROT0, "bootleg", "Kof2001 Plus (set 2, bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k1pa2, kof2001, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof2001 PLUS (Other Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k1pjc, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "TcwLee", "Kof2001 (Color Fix 030302)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1pjo, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "TcwLee", "Kof2001 (Color Fix)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1pj1, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "TcwLee", "Kof2001 (Char color changed ?? rev.2 ?? 1508)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1pj2, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "TcwLee", "Kof2001 (Char color changed - Machine repair menu col changed)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k1pj3, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "TcwLee", "Kof2001 (Color Fix 030720)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k1pls, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kf2k1pls, ROT0, "bootleg", "Kof2001 Plus (set 1, bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1rm, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Raymonose", "Kof2001 (Diff Moves set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, kof2k1rp, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kf2k1pls, ROT0, "Fighters Kim, Jason/K3 and Raymonose", "Kof2001 Remix Pro (v1.02 final 040311)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1rp0, kof2001, neogeo_noslot, neogeo, neogeo_noslot_state, kof2001, ROT0, "FGCH / Jason / Kim / Raymonose", "Kof2001 REMIX PRO v1.02 Final by Jason, Kim & Raymonose [FGCH]", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k1rp1, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kf2k1pls, ROT0, "Fighters Kim, Jason/K3 and Raymonose", "Kof2001 Remix Pro (V1.01 final1 031206)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k1rpo, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kf2k1pls, ROT0, "Fighters Kim, Jason/K3 and Raymonose", "Kof2001 Remix Pro (V1.0a 0311xx)", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, kof2k1ru, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kf2k1pls, ROT0, "Jason/K3", "Kof2001 Remix Ultra (Diff Moves ultra rev - Add Igniz - 20040507 - v2.3)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1ru0, kof2001, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Jason", "Kof2001 REMIX ULTRA Ver 2.3 by Jason", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1seh, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Ydmis", "Kof2001 (Add Char - Ultra kill start max - Ultra pow hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1sob, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Ayane", "Kof2001 (Char color changed - 1P char corpse-style remix)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k1st, kof2001, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Kof1996", "Kof2001 Special ST Version (Hack by KOF1996)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1st2, kof2001, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Kof1996", "Kof2001 (Special ST Version hack by Kof1996)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1wh, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Wesker", "Kof2001 (Diff Moves set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1z1, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Zhangshee", "Kof2001 (Add Char set 4)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1z2, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Zhangshee", "Kof2001 (Add Char set 5)", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/kof2002.cpp b/docs/release/src/hbmame/drivers/kof2002.cpp
new file mode 100644
index 00000000000..0c239bbde8e
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/kof2002.cpp
@@ -0,0 +1,3717 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+
+
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, kof2002d )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_kof2002_prot->kof2002_decrypt_68k(cpuregion, cpuregion_size);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 0);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, kof2002m )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_kof2002_prot->kof2002_decrypt_68k(cpuregion, cpuregion_size);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 0);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, KOF2002_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+// S1-rom is scrambled. This code looks right but doesn't work.
+DRIVER_INIT_MEMBER( neogeo_hbmame, kof2k2bd )
+{
+ DRIVER_INIT_CALL(neogeo);
+#if 0
+ std::vector<UINT8> src( fix_region_size );
+ int i,j;
+ UINT8 *dst = fix_region;
+ memcpy (&src[0], &dst[0], fix_region_size);
+
+ for (i = 1; i < fix_region_size/0x80; i++)
+ {
+ j = BITSWAP16(i, 15, 14, 13, 12, 11, 10, 9, 7, 6, 2, 5, 4, 3, 1, 0, 8);
+ memcpy(&dst[i*0x80], &src[j*0x80], 0x80);
+ }
+#endif
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, kof2k2dbh )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_kof2002_prot->kof2002_decrypt_68k(cpuregion, cpuregion_size);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 0);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, KOF2002_GFX_KEY);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, kof2k2h )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 0);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, KOF2002_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, kof2k2lb )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, kof2k2ps2a )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 0);
+}
+
+
+
+ROM_START( kof200215 ) // all confirmed
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265_15.p1", 0x000000, 0x4551cc, CRC(d64def5c) SHA1(8a973b3dff88969fcd890fba321fc56382c08bf6) )
+ ROM_LOAD16_WORD_SWAP( "265_15.p2", 0x100000, 0x454f52, CRC(53317848) SHA1(3b24f3c9ab36c47609abbac66e5508e545646381) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_ENCRYPTED_128K( "265-m1.m1", CRC(85aaa632) SHA1(744fba4ca3bc3a5873838af886efb97a8a316104) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265_15.c1", 0x0000000, 0x800000, CRC(ede8dfa4) SHA1(bc33796215918832faac32adfc6a0a4b2a723760) )
+ ROM_LOAD16_BYTE( "265_15.c2", 0x0000001, 0x800000, CRC(98773563) SHA1(d64f31ccff699ee12554ed9a7c703a514bcfa054) )
+ ROM_LOAD16_BYTE( "265_15.c3", 0x1000000, 0x800000, CRC(5b8deef8) SHA1(55f78ae33bce5ca4886c620f02cef463d86f58f0) )
+ ROM_LOAD16_BYTE( "265_15.c4", 0x1000001, 0x800000, CRC(cb69cd39) SHA1(deaa9a5c5db75bd515fb6a532d5353207f763fbb) )
+ ROM_LOAD16_BYTE( "265_15.c5", 0x2000000, 0x800000, CRC(8e0937d8) SHA1(5ccd8a56bc6a1d646879f3a7d4992da11c44ee4c) )
+ ROM_LOAD16_BYTE( "265_15.c6", 0x2000001, 0x800000, CRC(42acb491) SHA1(d81bbbac95091e0a4ccf626c0d7f9ed870cd6600) )
+ ROM_LOAD16_BYTE( "265_15.c7", 0x3000000, 0x800000, CRC(f4b5e445) SHA1(dff6fe887cdf6d0eb758f891ede85ed31463c513) )
+ ROM_LOAD16_BYTE( "265_15.c8", 0x3000001, 0x800000, CRC(598d8826) SHA1(7432299d265af95835d82a43d0d4e322cd487c55) )
+ROM_END
+
+ROM_START( kof2002d )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265-p1.p1", 0x000000, 0x100000, CRC(9ede7323) SHA1(ad9d45498777fda9fa58e75781f48e09aee705a6) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) )
+ ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) )
+ROM_END
+
+ROM_START( kof2002x )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265x.p1", 0x000000, 0x100000, CRC(ec7402a2) SHA1(a3d94c709d4c23cc7d1502a9e92a34f49cbcc878) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_ENCRYPTED_128K( "265-m1.m1", CRC(85aaa632) SHA1(744fba4ca3bc3a5873838af886efb97a8a316104) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2ath )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265ath.p1", 0x000000, 0x100000, CRC(5bb7eedb) SHA1(5d2566ae008c34e91799e1cd5c771be6e4de02df) )
+ ROM_LOAD16_WORD_SWAP( "265ath.p2", 0x100000, 0x400000, CRC(4ecfc414) SHA1(e8b991f35d850e88f2f360438ba72748129342c9) )
+
+ NEO_SFIX_128K( "265ath.s1", CRC(df4ce33b) SHA1(1287c84c16e17df7d5887af57fc6657da452d0ae) )
+
+ NEO_BIOS_AUDIO_128K( "kf10-m1.bin", CRC(f6fab859) SHA1(0184aa1394b9f9946d610278b53b846020dd88dc) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) )
+ ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) )
+ROM_END
+
+ROM_START( kof2k2b ) /* The King of Fighters 2002 - Hack by Alphax2? - (Can choose Kusanagi and Rugal) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265b.p1", 0x000000, 0x100000, CRC(f03a9769) SHA1(558eaf60244b7b01588dc773a31d5e3f3ffdbb29) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2b1 ) /* The King of Fighters 2002 - Hack by Alphax2? - (Can choose Kusanagi and Rugal) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265b1.p1", 0x000000, 0x100000, CRC(9b5a47e3) SHA1(62609f623982cf6eecf855ebd1ad30e20e0846b8) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2bd )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265-p1.p1", 0x000000, 0x100000, CRC(9EDE7323) SHA1(AD9D45498777FDA9FA58E75781F48E09AEE705A6) )
+ ROM_LOAD16_WORD_SWAP( "265bd.p2", 0x100000, 0x400000, CRC(65DF650D) SHA1(C13E466E3FDB349BA2E0D3FE01DAEDE759130828) )
+
+ NEO_SFIX_128K( "265bld.s1", CRC(4c09cb82) SHA1(24c412d6bd11d16a9d6975f0eada776d1229ea4b) )
+ //NEO_SFIX_128K( "265bd.s1", CRC(2255f5bf) SHA1(8a82b3e9717df30b580b9d0bac0b403f8102a002) )
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265rm13.c4", 0x1000001, 0x800000, CRC(2558972F) SHA1(2E0627FC5D689BF64FE36F02A489408D103C4499) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) )
+ ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) )
+ROM_END
+
+ROM_START( kof2k2bh ) /* The King of Fighters 2002 - Hack by Aplhax2 - (Can choose Kusanagi and Rugal) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265bh.p1", 0x000000, 0x100000, CRC(ca96f87d) SHA1(b0daca398c5c67400540f774dbc2afe393e09fd6) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2bjh ) /* The King of Fighters 2002 - Remix by Ben Jeremy - (Character move change 20031025) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265bjh.p1", 0x000000, 0x100000, CRC(16554c00) SHA1(7915a667a9669fd3bf97d4cf1cf6a91e6965753f) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2bjo ) /* [OLD] The King of Fighters 2002 - (kof2k2bjho) - Remix by Ben Jeremy - (Character move change 20031013) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265bjo.p1", 0x000000, 0x100000, CRC(cc0be314) SHA1(72f0c36bcab70094a875c47f555a4d3ff6e3a491) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2bl3 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265bl3.p1", 0x000000, 0x100000, CRC(94a95838) SHA1(a872a92b828d976eabd332e8d22b451dd709eca6) )
+ ROM_LOAD16_WORD_SWAP( "265bl3.p2", 0x100000, 0x400000, CRC(2bada9e2) SHA1(48cdeb9d828d2be6e212f460ce5b1105802fd8e2) )
+
+ NEO_SFIX_128K( "265bl3.s1", CRC(9acd7f92) SHA1(827534f914b9cf91e907e8532c28abdcd8da71d7) )
+
+ NEO_BIOS_AUDIO_128K( "265ori.m1", CRC(AB9D360E) SHA1(a0c8a5aae387c4f0b72790211695da7df924c351) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265bl4.c1", 0x0000000, 0x800000, CRC(325399a6) SHA1(50a565941ac805759872176ebb1506a736c05917) )
+ ROM_LOAD16_BYTE( "265bl4.c2", 0x0000001, 0x800000, CRC(76374796) SHA1(d4adf26ed356d271838c40aea2a84f604da2f8cb) )
+ ROM_LOAD16_BYTE( "265ori.c3", 0x1000000, 0x800000, CRC(E5074EEA) SHA1(387ef21d58b416126b95843bac1a0b6cc346818f) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265ori.c7", 0x3000000, 0x800000, CRC(0E9F6ADB) SHA1(0e4cdbd3df2ef7b0c78c3275ee22684c67bf2d23) )
+ ROM_LOAD16_BYTE( "265ori.c8", 0x3000001, 0x800000, CRC(9961799E) SHA1(cf5d43bbd90269155ac41fe9a31328654784351f) )
+ROM_END
+
+ROM_START( kof2k2bl4 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265bl4.p1", 0x000000, 0x100000, CRC(938af736) SHA1(27b0301ed208c155b56a2775ad6d1b683ead667e) )
+ ROM_LOAD16_WORD_SWAP( "265bl4.p2", 0x100000, 0x400000, CRC(9ff989fb) SHA1(d17528aa2aacdbd731ec30edb17fcdb1ebe34e62) )
+
+ NEO_SFIX_128K( "265bl4.s1", CRC(2aacaf8e) SHA1(3b09ef3215180de70327313c573c870d33a54714) )
+
+ NEO_BIOS_AUDIO_128K( "265ori.m1", CRC(AB9D360E) SHA1(a0c8a5aae387c4f0b72790211695da7df924c351) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265bl4.c1", 0x0000000, 0x800000, CRC(325399a6) SHA1(50a565941ac805759872176ebb1506a736c05917) )
+ ROM_LOAD16_BYTE( "265bl4.c2", 0x0000001, 0x800000, CRC(76374796) SHA1(d4adf26ed356d271838c40aea2a84f604da2f8cb) )
+ ROM_LOAD16_BYTE( "265ori.c3", 0x1000000, 0x800000, CRC(E5074EEA) SHA1(387ef21d58b416126b95843bac1a0b6cc346818f) )
+ ROM_LOAD16_BYTE( "265ori.c4", 0x1000001, 0x800000, CRC(F6EB1FF2) SHA1(77cb493b9e75d42c204a9a6c052a813c2730e44f) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265ori.c7", 0x3000000, 0x800000, CRC(0E9F6ADB) SHA1(0e4cdbd3df2ef7b0c78c3275ee22684c67bf2d23) )
+ ROM_LOAD16_BYTE( "265ori.c8", 0x3000001, 0x800000, CRC(9961799E) SHA1(cf5d43bbd90269155ac41fe9a31328654784351f) )
+ROM_END
+
+ROM_START( kof2k2bld )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265bld.p1", 0x000000, 0x100000, CRC(0a6b5e22) SHA1(0db2c458e79a0380ccfa3e1772e42223f0edaaa9) )
+ ROM_LOAD16_WORD_SWAP( "265bld.p2", 0x100000, 0x400000, CRC(f951b913) SHA1(d1b2025d363b280f40c823d11c277c81d8087ee4) )
+
+ NEO_SFIX_128K( "265bld.s1", CRC(4c09cb82) SHA1(24c412d6bd11d16a9d6975f0eada776d1229ea4b) )
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265rm13.c4", 0x1000001, 0x800000, CRC(2558972F) SHA1(2E0627FC5D689BF64FE36F02A489408D103C4499) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) )
+ ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) )
+ROM_END
+
+ROM_START( kof2k2blood2 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265blood2.p1", 0x000000, 0x100000, CRC(9573364c) SHA1(1fcb64aa30ef3ee3519ca7b77318f6f87ea24c82) )
+ ROM_LOAD16_WORD_SWAP( "265blood2.p2", 0x100000, 0x400000, CRC(670a8b89) SHA1(090f80381cf5a02fc1eed25a781388e246d2fa10) )
+
+ NEO_SFIX_128K( "265blood2.s1", CRC(59bda320) SHA1(0d8846ad307d1ca778bdcc89c16efe766266f1b7) )
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) )
+ ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) )
+ROM_END
+
+ROM_START( kof2k2br ) /* KOF 2002 Portuguese */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265br.p1", 0x000000, 0x100000, CRC(0f6dbacc) SHA1(c28bff82dc1d802cb1c398f4aaac0d2052418b87) )
+ ROM_LOAD16_WORD_SWAP( "265br.p2", 0x100000, 0x400000, CRC(c7ca77ff) SHA1(1ac9b9a37ddb11979514eba1d67551dfa8e6bc36) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2br1 ) /* KOF 2002 Portuguese */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265br1.p1", 0x000000, 0x100000, CRC(b73033df) SHA1(c8e1ce1d35be1dd537709a533e7dac37e047f428) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2br2 ) /* KOF 2002 Portuguese */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265br2.p1", 0x000000, 0x100000, CRC(95986d7a) SHA1(3f9da8385c0c9bfbbe088860816c247696904c24) )
+ ROM_LOAD16_WORD_SWAP( "265br2.p2", 0x100000, 0x400000, CRC(9b4d2ba4) SHA1(7b07788be06031d7261b4f8d8e5a34c0536846ed) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2bs )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265bs.p1", 0x000000, 0x100000, CRC(d9ccb672) SHA1(9d24c9d27120c379e0ec9d3717a4bb40be2f7027) )
+ ROM_LOAD16_WORD_SWAP( "265bs.p2", 0x100000, 0x400000, CRC(96c45626) SHA1(57f58de4051b73848cb6622e223777030e4ef954) )
+
+ NEO_SFIX_128K( "265evo.s1", CRC(E0EAABA3) SHA1(831b642da9fe7617498cdb1c86475b3b3d3043bc) )
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265rs.c1", 0x0000000, 0x800000, CRC(c1a21b4c) SHA1(235938175d6011c5c8a37fc94f8fb604132d8038) )
+ ROM_LOAD16_BYTE( "265rs.c2", 0x0000001, 0x800000, CRC(9b3d7e8d) SHA1(38c16541862636934a456f23632f64ff0f5ae617) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) )
+ ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) )
+ROM_END
+
+ROM_START( kof2k2c2 ) // hack of kof2k2or
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265or.p1", 0x000000, 0x100000, CRC(eb84d68f) SHA1(8dccf250cf04e129529793abcc655f5fc7fb6629) )
+ ROM_LOAD16_WORD_SWAP( "265c2.p2", 0x100000, 0x400000, CRC(5b307583) SHA1(283dffc62c279e7b237da3a30a15e06cccda7a80) )
+
+ NEO_SFIX_128K( "265kc2.s1", CRC(67e7cbe1) SHA1(3582c2073f04e71a6d5a34145727d148a11ab375) )
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) )
+ ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265rm13.c4", 0x1000001, 0x800000, CRC(2558972F) SHA1(2e0627fc5d689bf64fe36f02a489408d103c4499) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265or.c7", 0x3000000, 0x800000, CRC(201e75e0) SHA1(7805d7a753df4d97bd73e05f22f31fe6440eaf6c) )
+ ROM_LOAD16_BYTE( "265or.c8", 0x3000001, 0x800000, CRC(ff0fd53b) SHA1(68289ab3f808b9c067a948948f48d5a3f1787e6c) )
+ROM_END
+
+ROM_START( kof2k2cf1 ) /* [OLD] The King of Fighters 2002 - (kof2k2cfco) - Colour fix by C6F8 - (Character colour change for Iori p3 and p4) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265-p1.p1", 0x000000, 0x100000, CRC(9ede7323) SHA1(ad9d45498777fda9fa58e75781f48e09aee705a6) )
+ ROM_LOAD16_WORD_SWAP( "265cf1.p2", 0x100000, 0x400000, CRC(7df52bd4) SHA1(37dddfca361012c8e04ad6fa45e8a56d80aa5f31) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2cf2 ) /* [OLD] The King of Fighters 2002 - (kof2k2cfco2) - Colour fix by C6F8 - (Character colour change - release 2 built 20030827) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265-p1.p1", 0x000000, 0x100000, CRC(9ede7323) SHA1(ad9d45498777fda9fa58e75781f48e09aee705a6) )
+ ROM_LOAD16_WORD_SWAP( "265cf2.p2", 0x100000, 0x400000, CRC(f65d9dd1) SHA1(81ca014633385bc1e4e13b962b8aa35b246f63a7) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2cf3 ) /* [OLD] The King of Fighters 2002 - (kof2k2cfco3) - Colour fix by C6F8 - (Character colour change - release 3 built 20030831) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265-p1.p1", 0x000000, 0x100000, CRC(9ede7323) SHA1(ad9d45498777fda9fa58e75781f48e09aee705a6) )
+ ROM_LOAD16_WORD_SWAP( "265cf3.p2", 0x100000, 0x400000, CRC(9b2be0af) SHA1(069ab514aceda7ba43c9557afef9320b84b7eb25) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2cfc ) /* The King of Fighters 2002 - Fix by C6F8 - (Character colour change release 4 built 20031017) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265-p1.p1", 0x000000, 0x100000, CRC(9ede7323) SHA1(ad9d45498777fda9fa58e75781f48e09aee705a6) )
+ ROM_LOAD16_WORD_SWAP( "265cfc.p2", 0x100000, 0x400000, CRC(e22d4ab6) SHA1(7ebab455645c428819d208d66b7b630c58d8f172) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2ch ) /* [OLD] The King of Fighters 2002 - (kof2k2ch) - Revise by Coolhot - (Fighter combat moves revision - bases on CHL´s and Riky´s work 2003/05) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265ch.p1", 0x000000, 0x100000, CRC(9bc19d92) SHA1(6535304911aad8901d13fa254369b0b0c726382f) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2chl ) /* [OLD] The King of Fighters 2002 - (kof2k2chl) - Revise by CHL - (Enhanced game play by chl 20030410) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265chl.p1", 0x000000, 0x100000, CRC(4824e27d) SHA1(038a109dda37fda2b43614cadabb1e1672f054c4) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2cl2 ) /* [OLD] The King of Fighters 2002 - (kof2k2chl2) - Revise by CHL - (Enhanced game play by chl revision 2 20030413) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265chl2.p1", 0x000000, 0x100000, CRC(6b9cdd9c) SHA1(8764ec6c56eea54c86acc3b80d3f8cae5941f1d6) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2cl3 ) /* [OLD] The King of Fighters 2002 - (kof2k2chl3) - Revise by CHL - (Enhanced game play by chl revision 3 20030413) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265chl3.p1", 0x000000, 0x100000, CRC(4ae81447) SHA1(add9e5a6737c4b00da326a947043e227d5dfcbb8) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2cn )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265cn.p1", 0x000000, 0x100000, CRC(07de031f) SHA1(6d2c6caea4d94388da597e89cde61ed6efba96fa) )
+ ROM_LOAD16_WORD_SWAP( "265cn.p2", 0x100000, 0x400000, CRC(9cb1dd35) SHA1(5e04716cf02e3321fac7bd4551fa352d8a54c7a3) )
+
+ NEO_SFIX_128K( "265cn.s1", CRC(a449f9ba) SHA1(f1744fd91d85a6391e3e5ff69d868ea9976f04c7) )
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) )
+ ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265cn.c1", 0x0000000, 0x800000, CRC(35b6ee83) SHA1(1ee4fdd0482ae391544535020c96dba1fd4fb9a4) )
+ ROM_LOAD16_BYTE( "265cn.c2", 0x0000001, 0x800000, CRC(9d4bd32f) SHA1(ed0dce5dd6cffce2c55a62559b368ccc46115497) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265cn.c7", 0x3000000, 0x800000, CRC(204c1b0e) SHA1(4e44371fc4d0abbd455554eb066ede07ab5f68f9) )
+ ROM_LOAD16_BYTE( "265cn.c8", 0x3000001, 0x800000, CRC(b44c1d54) SHA1(22f9fb31b4f36f5c4fce66b5bd64b45737db43d9) )
+ROM_END
+
+ROM_START( kof2k2cori )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265cori.p1", 0x000000, 0x100000, CRC(0a3a1f32) SHA1(1f53828a441e025ca5940ed54caa10eb1dde8b32) )
+ ROM_LOAD16_WORD_SWAP( "265cori.p2", 0x100000, 0x400000, CRC(7bf474a9) SHA1(8d836a408ae7c754dd7994ce329e649c3714ad6f) )
+
+ NEO_SFIX_128K( "265kc2.s1", CRC(67e7cbe1) SHA1(3582c2073f04e71a6d5a34145727d148a11ab375) )
+
+ NEO_BIOS_AUDIO_128K( "265cori.m1", CRC(4cd619bb) SHA1(5dc0d5e923985072e87b485dd8e5ef805f583e15) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265rs.c1", 0x0000000, 0x800000, CRC(c1a21b4c) SHA1(235938175d6011c5c8a37fc94f8fb604132d8038) )
+ ROM_LOAD16_BYTE( "265rs.c2", 0x0000001, 0x800000, CRC(9b3d7e8d) SHA1(38c16541862636934a456f23632f64ff0f5ae617) )
+ ROM_LOAD16_BYTE( "265ori.c3", 0x1000000, 0x800000, CRC(E5074EEA) SHA1(387ef21d58b416126b95843bac1a0b6cc346818f) )
+ ROM_LOAD16_BYTE( "265rm13.c4", 0x1000001, 0x800000, CRC(2558972F) SHA1(2e0627fc5d689bf64fe36f02a489408d103c4499) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265ori.c7", 0x3000000, 0x800000, CRC(0E9F6ADB) SHA1(0e4cdbd3df2ef7b0c78c3275ee22684c67bf2d23) )
+ ROM_LOAD16_BYTE( "265ori.c8", 0x3000001, 0x800000, CRC(9961799E) SHA1(cf5d43bbd90269155ac41fe9a31328654784351f) )
+ROM_END
+
+ROM_START( kof2k2dbh ) /* The King of Fighters 2002 - Hack by Dodowang - (Can choose Kusanagi and Rugal - when using NrX have icons in character select menu -> MVS timer flaw) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265dbh.p1", 0x000000, 0x100000, CRC(e9d96cf7) SHA1(fc9fe5ac13cf328867538a474171a6878a09a731) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_128K( "265dbh.s1", CRC(491510d1) SHA1(506fb00c1b1a0e8077bdeba9acee4245df918a98) )
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2e1 ) /* The King of Fighters 2002 - Hack by Kurouri - (Can choose Kusanagi and Rugal) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265e1.p1", 0x000000, 0x100000, CRC(b1ad673f) SHA1(013928acacb501384a597e9c5fce96e1745043b7) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2e2 ) /* The King of Fighters 2002 - Hack by Creamymami - (Can choose Kusanagi and Rugal) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265e2.p1", 0x000000, 0x100000, CRC(4a07c6be) SHA1(7f8558b1938f03d2f64034aefb774b4553863e45) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2e3 ) /* The King of Fighters 2002 - Enhance by Creamymami - (Can choose Kusanagi and Rugal - ultra kill start is max) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265e3.p1", 0x000000, 0x100000, CRC(7b560cdb) SHA1(6589a7e39d72bb87be62baa89f07a92bdaa6fc0a) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2ehr ) /* [OLD] The King of Fighters 2002 - (kof2k2ehr) - Remix by Raymonose - (Can choose 95-Kyo and Rugal - ultra kill start is max - style revision 33%) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265ehr.p1", 0x000000, 0x100000, CRC(526ab059) SHA1(526e1bbde1fb5425b780a6de2f5f9d7d843ca6be) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2er2 ) /* [OLD] The King of Fighters 2002 - (kof2k2ehr2) - Remix by Raymonose - (Can choose 95-Kyo and Rugal - ultra kill start is max - style revision 66%) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265er2.p1", 0x000000, 0x100000, CRC(d41c1a04) SHA1(60d222ede6d6815d504204711272b11238e402b2) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2er3 ) /* [OLD] The King of Fighters 2002 - (kof2k2ehr3) - Remix by Raymonose - (Can choose 95-Kyo and Rugal - ultra kill start is max - style revision 80% 20030414) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265er3.p1", 0x000000, 0x100000, CRC(f322ad04) SHA1(7bc2fb5e97742201877d2d980cc4801b69b6d3a2) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2er4 ) /* [OLD] The King of Fighters 2002 - (kof2k2ehr4) - Remix by Raymonose) - (Can choose 95-Kyo and Rugal - ultra kill start is max - style revision 89% 20030420) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265er4.p1", 0x000000, 0x100000, CRC(75e595b6) SHA1(2460216721a254dc941b4d00368d67e46ed4e551) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2erx ) /* [OLD] The King of Fighters 2002 - (kof2k2ehrx) - Remix by Raymonose - (Can choose 95-Kyo and Rugal - ultra kill start is max - style revision xx) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265erx.p1", 0x000000, 0x100000, CRC(5a6e94e5) SHA1(bbc7e2c9eaec287fc65a0dfb6d2c7934ec7afc4c) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2evo )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265evo.p1", 0x000000, 0x100000, CRC(60AF82AB) SHA1(dfa4b99f16ca3f7fbe06604788272acf82ba57fa) )
+ ROM_LOAD16_WORD_SWAP( "k2k2m2p2.bin", 0x100000, 0x400000, CRC(432fdf53) SHA1(d7e542cd84d948162c60768e40ee4ed33d8e7913) )
+
+ NEO_SFIX_128K( "265evo.s1", CRC(E0EAABA3) SHA1(831b642da9fe7617498cdb1c86475b3b3d3043bc) )
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) )
+ ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265evo.c7", 0x3000000, 0x800000, CRC(B4C87865) SHA1(8df7ac8bbf5f61d2fbca4cd7424074e95887ad3d) )
+ ROM_LOAD16_BYTE( "265evo.c8", 0x3000001, 0x800000, CRC(74C10CB6) SHA1(2979ab21e3632c478ad3f70148691a1a69abd378) )
+ROM_END
+
+ROM_START( kof2k2evo2 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265evo2.p1", 0x000000, 0x100000, CRC(6e886994) SHA1(e67764738a83b5f34fe0fc4a9e33f2c1d67507db) )
+ ROM_LOAD16_WORD_SWAP( "265evo2.p2", 0x100000, 0x400000, CRC(4c91603b) SHA1(f9db61348220a4a626dee5fbd0498b24aa74f77d) )
+
+ NEO_SFIX_128K( "265evo2.s1", CRC(ca56e755) SHA1(ee8b05164682baef782111996f18927683acf577) )
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) )
+ ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265xxx.c1", 0x0000000, 0x800000, CRC(745B343E) SHA1(ae8293b18cfb4c20e2915149872d9fa561a218bf) )
+ ROM_LOAD16_BYTE( "265xxx.c2", 0x0000001, 0x800000, CRC(2AAB7F98) SHA1(083c6e9162ab3bb49b365f91246cb39019dabe43) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265ibp.c7", 0x3000000, 0x800000, CRC(f501b9b2) SHA1(84e969243170382e3782cfe70ec0ad1b5638cb7b) )
+ ROM_LOAD16_BYTE( "265ibp.c8", 0x3000001, 0x800000, CRC(2ebcf142) SHA1(8129ed1aa7d201d4b9ed3447ffca829d07783571) )
+ ROM_LOAD16_BYTE( "265evo.c7", 0x3000000, 0x800000, CRC(B4C87865) SHA1(8df7ac8bbf5f61d2fbca4cd7424074e95887ad3d) )
+ ROM_LOAD16_BYTE( "265evo.c8", 0x3000001, 0x800000, CRC(74C10CB6) SHA1(2979ab21e3632c478ad3f70148691a1a69abd378) )
+ROM_END
+
+ROM_START( kof2k2fy ) /* The King of Fighters 2002 - Colour fix by UNKNOWN - (Lifebar + K', Vanessa, Iori, Kula and Angel colour change) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265-p1.p1", 0x000000, 0x100000, CRC(9ede7323) SHA1(ad9d45498777fda9fa58e75781f48e09aee705a6) )
+ ROM_LOAD16_WORD_SWAP( "265fy.p2", 0x100000, 0x400000, CRC(40bf4372) SHA1(d6bbf637ae064d5d9cfc1acc71ef69cb19b03062) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2gc ) /* The King of Fighters 2002 - Colour fix by Lewis67 - (Colour change) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265-p1.p1", 0x000000, 0x100000, CRC(9ede7323) SHA1(ad9d45498777fda9fa58e75781f48e09aee705a6) )
+ ROM_LOAD16_WORD_SWAP( "265gc.p2", 0x100000, 0x400000, CRC(c0ce3064) SHA1(14179ed2c851411710f391058c6d93d829f6a821) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2gc2 ) /* The King of Fighters 2002 - Colour fix by Lewis67 - (Colour change) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265-p1.p1", 0x000000, 0x100000, CRC(9ede7323) SHA1(ad9d45498777fda9fa58e75781f48e09aee705a6) )
+ ROM_LOAD16_WORD_SWAP( "265gc2.p2", 0x100000, 0x400000, CRC(ceb56128) SHA1(f29f37efe7d18cd18c2ebaaba57ee1cfc0ccb144) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2gf ) /* The King of Fighters 2002 - Colour fix by Kumagorou - (Colour change) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265-p1.p1", 0x000000, 0x100000, CRC(9ede7323) SHA1(ad9d45498777fda9fa58e75781f48e09aee705a6) )
+ ROM_LOAD16_WORD_SWAP( "265gf.p2", 0x100000, 0x400000, CRC(23850b59) SHA1(e8ef5c834e2ef20b877713ea99e357438eb55a40) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2green )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265-p1.p1", 0x000000, 0x100000, CRC(9ede7323) SHA1(ad9d45498777fda9fa58e75781f48e09aee705a6) )
+ ROM_LOAD16_WORD_SWAP( "265green.p2", 0x100000, 0x400000, CRC(74df4436) SHA1(266ccc13fe144403215527bfabbec14240f2bb33) )
+
+ NEO_SFIX_128K( "265evo.s1", CRC(E0EAABA3) SHA1(831b642da9fe7617498cdb1c86475b3b3d3043bc) )
+
+ NEO_BIOS_AUDIO_128K( "265ori.m1", CRC(AB9D360E) SHA1(a0c8a5aae387c4f0b72790211695da7df924c351) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) )
+ ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) )
+ROM_END
+
+ROM_START( kof2k2ht )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265ht.p1", 0x000000, 0x100000, CRC(3852f80e) SHA1(eca7670b368f9fbf2242f52a87fd18adf6afc24c) )
+ ROM_LOAD16_WORD_SWAP( "265ht.p2", 0x100000, 0x400000, CRC(dec98282) SHA1(8a3c055c6c728a77134bda1f379995ebca623654) )
+
+ NEO_SFIX_128K( "265ht.s1", CRC(8d2eb52e) SHA1(b3807f982e29da326c30147c2d73e1174082a05e) )
+
+ NEO_BIOS_AUDIO_128K( "265ori.m1", CRC(AB9D360E) SHA1(a0c8a5aae387c4f0b72790211695da7df924c351) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) )
+ ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) )
+ROM_END
+
+ROM_START( kof2k2ibp ) // A few bugs with the text caused by someone in KOFON team
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265ibp.p1", 0x000000, 0x100000, CRC(5133b7e4) SHA1(50ce61dd601d94dd3fd975aa0498dd082de74e82) )
+ ROM_LOAD16_WORD_SWAP( "265ibp.p2", 0x100000, 0x400000, CRC(63ec01c0) SHA1(e2557e67c2dca098e03635df84b8c17ec39cbd29) )
+ ROM_FILL(0xb1460,1,0x49)
+ ROM_FILL(0xb1461,1,0x4e) // Fix INSERT COIN // There's another bug if you insert 2 coins
+ ROM_FILL(0xb1462,1,0x53)
+
+ NEO_SFIX_128K( "265ibp.s1", CRC(00e7d96c) SHA1(b7c6141fa8cd55524725f55fa396f502de9e8be3) )
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265xxx.c1", 0x0000000, 0x800000, CRC(745B343E) SHA1(ae8293b18cfb4c20e2915149872d9fa561a218bf) )
+ ROM_LOAD16_BYTE( "265xxx.c2", 0x0000001, 0x800000, CRC(2AAB7F98) SHA1(083c6e9162ab3bb49b365f91246cb39019dabe43) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265ibp.c7", 0x3000000, 0x800000, CRC(f501b9b2) SHA1(84e969243170382e3782cfe70ec0ad1b5638cb7b) )
+ ROM_LOAD16_BYTE( "265ibp.c8", 0x3000001, 0x800000, CRC(2ebcf142) SHA1(8129ed1aa7d201d4b9ed3447ffca829d07783571) )
+ROM_END
+
+ROM_START( kof2k2ice ) /* The King of Fighters 2002 - Colour fix by Fighters Kim - (Colour change - attack cremation ice blue) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265-p1.p1", 0x000000, 0x100000, CRC(9ede7323) SHA1(ad9d45498777fda9fa58e75781f48e09aee705a6) )
+ ROM_LOAD16_WORD_SWAP( "265ice.p2", 0x100000, 0x400000, CRC(6319dd5a) SHA1(0dfb67938aab5e1aa1e27cd80f8448ac5f4b3237) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2ic1 ) /* [OLD] The King of Fighters 2002 - (kof2k2i) - Colour fix by Fighters Kim - (Colour change - attack cremation ice blue - 80%) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265-p1.p1", 0x000000, 0x100000, CRC(9ede7323) SHA1(ad9d45498777fda9fa58e75781f48e09aee705a6) )
+ ROM_LOAD16_WORD_SWAP( "265ic1.p2", 0x100000, 0x400000, CRC(cb07680b) SHA1(e6c9aae1fea99ade21a3bf97cd74b48128d78a43) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2ic2 ) /* [OLD] The King of Fighters 2002 - (kof2k2iceo) - Colour fix by Fighters Kim - (Colour change - attack cremation ice blue) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265-p1.p1", 0x000000, 0x100000, CRC(9ede7323) SHA1(ad9d45498777fda9fa58e75781f48e09aee705a6) )
+ ROM_LOAD16_WORD_SWAP( "265ic2.p2", 0x100000, 0x400000, CRC(dcbf29a9) SHA1(c48744476405c2b5a23e0c3b09c65e67487d81bb) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2jc ) /* The King of Fighters 2002 - Colour fix by Jui Lee - (Character colour change for Athena 3P, Kula 3P and Kula 4P) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265-p1.p1", 0x000000, 0x100000, CRC(9ede7323) SHA1(ad9d45498777fda9fa58e75781f48e09aee705a6) )
+ ROM_LOAD16_WORD_SWAP( "265jc.p2", 0x100000, 0x400000, CRC(3f515638) SHA1(e902c2d47486ad57928c60067ce24033e294f6bf) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2js )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265js.p1", 0x000000, 0x100000, CRC(b486fca8) SHA1(44aab663711c0591d5f93557ac9620853ca65e01) )
+ ROM_LOAD16_WORD_SWAP( "265js.p2", 0x100000, 0x400000, CRC(75185760) SHA1(5501d4d9ac7fcd83102f6fbee7d986006566bf9d) )
+
+ NEO_SFIX_128K( "265rm13.s1", CRC(BD19C308) SHA1(38a9055bbd981a794e1fd9065985b4c033b78e93) )
+
+ NEO_BIOS_AUDIO_128K( "265rm13.m1", CRC(9956CCD8) SHA1(ed0f5e87360dfa89a58e1b333f4a66e91c2faf56) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265js.v1", 0x000000, 0x400000, CRC(3961af5a) SHA1(483662b9ec1da54e6786a34327837a48eed3501f) )
+ ROM_LOAD( "265rm13.v2", 0x400000, 0x400000, CRC(0a1e505a) SHA1(62d128909b21cef4605ed35195e5503d1e056659) )
+ ROM_LOAD( "265rm13.v3", 0x800000, 0x400000, CRC(15bc1d92) SHA1(bc22e274f279a01518de8cd519847eb01ff675ef) )
+ ROM_LOAD( "265rm13.v4", 0xc00000, 0x400000, CRC(b5f43393) SHA1(7bbbff6aeb44e8964bbb46372b856ffe6c530076) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265js.c3", 0x1000000, 0x800000, CRC(ca656090) SHA1(ed7f79eeabb965f5cdfbdd1c2d137ef5db366e03) )
+ ROM_LOAD16_BYTE( "265js.c4", 0x1000001, 0x800000, CRC(eb898849) SHA1(eac79b04382fc20dd9f7b9345d929aff58889e8f) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265rm13.c7", 0x3000000, 0x800000, CRC(2A9D505C) SHA1(dcd3899aebc4602e4249b3e61299a0c8bf2e5e56) )
+ ROM_LOAD16_BYTE( "265rm13.c8", 0x3000001, 0x800000, CRC(93D8501F) SHA1(470f29de0bad8c15d924fffbbfa85926b551a8ae) )
+ROM_END
+
+ROM_START( kof2k2js2 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265js2.p1", 0x000000, 0x100000, CRC(8da72d5c) SHA1(315d104da120fe1df041221209dc609a2f1d41a8) )
+ ROM_LOAD16_WORD_SWAP( "265js.p2", 0x100000, 0x400000, CRC(75185760) SHA1(5501d4d9ac7fcd83102f6fbee7d986006566bf9d) )
+
+ NEO_SFIX_128K( "265rm13.s1", CRC(BD19C308) SHA1(38a9055bbd981a794e1fd9065985b4c033b78e93) )
+
+ NEO_BIOS_AUDIO_128K( "265rm13.m1", CRC(9956CCD8) SHA1(ed0f5e87360dfa89a58e1b333f4a66e91c2faf56) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265js2.v1", 0x000000, 0x800000, CRC(6e7e3508) SHA1(9d995fd9e9665da26153704a9fa539259759c105) )
+ ROM_LOAD( "265js2.v2", 0x800000, 0x800000, CRC(2157b90f) SHA1(407422df7a24530d21119ef9233b831fb0166661) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265js.c3", 0x1000000, 0x800000, CRC(ca656090) SHA1(ed7f79eeabb965f5cdfbdd1c2d137ef5db366e03) )
+ ROM_LOAD16_BYTE( "265js.c4", 0x1000001, 0x800000, CRC(eb898849) SHA1(eac79b04382fc20dd9f7b9345d929aff58889e8f) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265rm13.c7", 0x3000000, 0x800000, CRC(2A9D505C) SHA1(dcd3899aebc4602e4249b3e61299a0c8bf2e5e56) )
+ ROM_LOAD16_BYTE( "265rm13.c8", 0x3000001, 0x800000, CRC(93D8501F) SHA1(470f29de0bad8c15d924fffbbfa85926b551a8ae) )
+ROM_END
+
+ROM_START( kof2k2js4 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265js4.p1", 0x000000, 0x100000, CRC(1003a13b) SHA1(a4a722a5319be46c6b5ac735142f50aab75defff) )
+ ROM_LOAD16_WORD_SWAP( "265js4.p2", 0x100000, 0x400000, CRC(27b26aad) SHA1(12ab5034ab4bf302599ffe1bc1c841f56cc083f5) )
+
+ NEO_SFIX_128K( "265js4.s1", CRC(1ac24409) SHA1(6c294e4651c4fef66a68845d3281accf5afc2d84) )
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) )
+ ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) )
+ ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) )
+ROM_END
+
+ROM_START( kof2k2k2 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265chl3.p1", 0x000000, 0x100000, CRC(4ae81447) SHA1(add9e5a6737c4b00da326a947043e227d5dfcbb8) )
+ ROM_LOAD16_WORD_SWAP( "265k2.p2", 0x100000, 0x400000, CRC(7cc7cad3) SHA1(b09c628b0d4f177cd9ce8c51bcb4c68ca7afd26d) )
+
+ NEO_SFIX_128K( "265k2.s1", CRC(10de5d7c) SHA1(44f4f523a787cf3094923483b824d7795858aff6) )
+
+ NEO_BIOS_AUDIO_128K( "265ori.m1", CRC(AB9D360E) SHA1(a0c8a5aae387c4f0b72790211695da7df924c351) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) )
+ ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) )
+ROM_END
+
+ROM_START( kof2k2k3o ) /* [OLD] The King of Fighters 2002 - (kof2k2k3o) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k2k3o.txt for more 20030629) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265k3o.p1", 0x000000, 0x100000, CRC(3e63f35d) SHA1(1943c1b7619229c59802828543e2138d033e87a8) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2k32 ) /* [OLD] The King of Fighters 2002 - [OLD] The King of Fighters 2002 - (kof2k2k3r2) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k2k3r2.txt for more 20030725) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265k32.p1", 0x000000, 0x100000, CRC(06404013) SHA1(a0ea9b1bfcf3a046f9faa6e8fe4fdaa2eeae1c5a) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2k33 ) /* (kof2k2k3r3) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k2k3r3.txt for more 20030730) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265k33.p1", 0x000000, 0x100000, CRC(f1b0e086) SHA1(5c99e2f3c8297ff99aaadd0e677fda2d2d27a57c) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2k34 ) /* [OLD] The King of Fighters 2002 - (kof2k2k3r4) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k2k3r4.txt for more 20030805) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265k34.p1", 0x000000, 0x100000, CRC(8e696bc6) SHA1(85b7687c7609dddd6e8a4aa876b143804d2fca67) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2k35 ) /* [OLD] The King of Fighters 2002 - (kof2k2k3r5) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k2k3r5.txt for more 20030815) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265k35.p1", 0x000000, 0x100000, CRC(7be62755) SHA1(bc8c9fcfee147477065957f0e6d4c6e69d1979d9) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2k36 ) /* [OLD] The King of Fighters 2002 - (kof2k2k3r6) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k2k3r6.txt for more 20030818) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265k36.p1", 0x000000, 0x100000, CRC(ee866a5f) SHA1(2d4a37f874a6636948013eddde52d82a769c6111) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2k37 ) /* [OLD] The King of Fighters 2002 - (kof2k2k3r7) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k2k3r7.txt for more 20030823) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265k37.p1", 0x000000, 0x100000, CRC(b61f27ee) SHA1(8a74527696a6b019241fb0ad2468123cfbc09b79) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2k38 ) /* [OLD] The King of Fighters 2002 - (kof2k2k3r8) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k2k3r8.txt for more 20030824) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265k38.p1", 0x000000, 0x100000, CRC(7aab9c67) SHA1(4e6eb6acada027e91b943e359a291f1713f37ec8) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2k39 ) /* [OLD] The King of Fighters 2002 - (kof2k2k3r9) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k2k3r9.txt for more 20030829) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265k39.p1", 0x000000, 0x100000, CRC(7d6e0295) SHA1(d8cd5c9650858bc8af35cc31e932ae024af2963a) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2k3a ) /* [OLD] The King of Fighters 2002 - (kof2k2k3r10) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k2k3r10.txt for more 20030907) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265k3a.p1", 0x000000, 0x100000, CRC(aa2539b4) SHA1(b8ed72edc7811afd117ccf4db0ba05bb8f39862f) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2k3b ) /* [OLD] The King of Fighters 2002 - (kof2k2k3r11) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k2k3r11.txt for more 20030908) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265k3b.p1", 0x000000, 0x100000, CRC(88aad54e) SHA1(03aff6b613a6f1e5198803e4ee0c931b81940653) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2k3c ) /* [OLD] The King of Fighters 2002 - (kof2k2k3r12) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k2k3r12.txt for more 20031005) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265k3c.p1", 0x000000, 0x100000, CRC(a54ef179) SHA1(a6bc835b2803c26d915dbb6c5496997134fde085) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2k3d ) /* [OLD] The King of Fighters 2002 - (kof2k2k3r13) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k2k3r13.txt for more 20031009) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265k3d.p1", 0x000000, 0x100000, CRC(07ba5eaf) SHA1(f6e51f1240c38991886fd23185f45d72702aca07) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2k3e ) /* [OLD] The King of Fighters 2002 - (kof2k2k3r14) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k2k3r14.txt for more 20031016) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265k3e.p1", 0x000000, 0x100000, CRC(1fd40e4d) SHA1(b0f355c5b99d2f3a2281c63d3f3d23fa809ceb2e) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2k3f ) /* [OLD] The King of Fighters 2002 - (kof2k2k3r15) - Remix by Jason/K3 - (Character move change ultra revision - can choose Kusanagi and Rugal 20031202) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265k3f.p1", 0x000000, 0x100000, CRC(2d7cd2b8) SHA1(a7a6c23431d01a0a8d6d8d63b4dbae78e9a762cb) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2k3g ) /* [OLD] The King of Fighters 2002 - (kof2k2k3r16) - Remix by Jason/K3 - (Character move change ultra revision - can choose Kusanagi and Rugal 20040418) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265k3g.p1", 0x000000, 0x100000, CRC(035d16f9) SHA1(7472fe8887d4f88e85838913821aac7452391aef) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2kai )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265kai.p1", 0x000000, 0x100000, CRC(243bd906) SHA1(ec7c2034b050dbe93a2b3bc23a1e9dc22f5b1d40) )
+ ROM_LOAD16_WORD_SWAP( "265kai.p2", 0x100000, 0x400000, CRC(c1200d66) SHA1(73b6c449c5de4dae84f5a3bbad67799a39a6a5d5) )
+
+ NEO_SFIX_128K( "265rm13.s1", CRC(BD19C308) SHA1(38a9055bbd981a794e1fd9065985b4c033b78e93) )
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) )
+ ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265xxx.c1", 0x0000000, 0x800000, CRC(745B343E) SHA1(ae8293b18cfb4c20e2915149872d9fa561a218bf) )
+ ROM_LOAD16_BYTE( "265xxx.c2", 0x0000001, 0x800000, CRC(2AAB7F98) SHA1(083c6e9162ab3bb49b365f91246cb39019dabe43) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) )
+ ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) )
+ROM_END
+
+ROM_START( kof2k2kc ) /* The King of Fighters 2002 - Colour fix by Fighters Kim - (Colour change) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265-p1.p1", 0x000000, 0x100000, CRC(9ede7323) SHA1(ad9d45498777fda9fa58e75781f48e09aee705a6) )
+ ROM_LOAD16_WORD_SWAP( "265kc.p2", 0x100000, 0x400000, CRC(86b62f43) SHA1(f9afbce58843258d236144b4de8c3370a9185f1a) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2kc2 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265kc2.p1", 0x000000, 0x100000, CRC(811512bb) SHA1(510f5bb0ba8c72ca5377b18f75d71816e8eb79d1) )
+ ROM_LOAD16_WORD_SWAP( "265kc2.p2", 0x100000, 0x400000, CRC(7808c018) SHA1(2d671596de7a878b324d81ba464b58530088eb33) )
+
+ NEO_SFIX_128K( "265kc2.s1", CRC(67e7cbe1) SHA1(3582c2073f04e71a6d5a34145727d148a11ab375) )
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265rm13.c4", 0x1000001, 0x800000, CRC(2558972F) SHA1(2e0627fc5d689bf64fe36f02a489408d103c4499) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265kc2.c7", 0x3000000, 0x800000, CRC(54fa8789) SHA1(71311275bed0c47af2ddbcd1c5f77664c6a73a56) )
+ ROM_LOAD16_BYTE( "265kc2.c8", 0x3000001, 0x800000, CRC(ce62cb09) SHA1(30f17893ce6441bf41257ab93df5b99683098cfc) )
+ROM_END
+
+ROM_START( kof2k2kk )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265kk.p1", 0x000000, 0x100000, CRC(69301bc9) SHA1(6f5d0ebe12e88c98ec1f416d440ad7d569886966) )
+ ROM_LOAD16_WORD_SWAP( "265kk.p2", 0x100000, 0x400000, CRC(816c5aa2) SHA1(8821f91d4eeab58e3df669f3ab8817a94010f297) )
+
+ NEO_SFIX_128K( "265kk.s1", CRC(dd1dcb5b) SHA1(a24b4d725e1a3640f9a5cc46ed26192ffef79862) )
+
+ NEO_BIOS_AUDIO_128K( "265ori.m1", CRC(AB9D360E) SHA1(a0c8a5aae387c4f0b72790211695da7df924c351) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265smg.c7", 0x3000000, 0x800000, CRC(febfa475) SHA1(ed69f7536d39522b85bfaa512e75b85d08b439e9) )
+ ROM_LOAD16_BYTE( "265smg.c8", 0x3000001, 0x800000, CRC(8f9b7991) SHA1(9c6e6af48c18e81ecba68563f8fb9caa85899672) )
+ROM_END
+
+ROM_START( kof2k2lb )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265lb.p1", 0x000000, 0x100000, CRC(1602f059) SHA1(8a94d7f5efadd2a4e5a0bd360825746592e351b3) )
+ ROM_LOAD16_WORD_SWAP( "265lb.p2", 0x100000, 0x400000, CRC(7f8298fb) SHA1(b902d72793e0de74ed44b30475999ef0e3722394) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) )
+ ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) )
+ ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) )
+ROM_END
+
+ROM_START( kof2k2leon ) // Credit display is incorrect
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265leon.p1", 0x000000, 0x100000, CRC(eba68160) SHA1(1d226e00782df71556666222e20f48268c17968c) )
+ ROM_LOAD16_WORD_SWAP( "265leon.p2", 0x100000, 0x400000, CRC(952fae3d) SHA1(09f868eb02b8df425c80f59ad43adbc3107755ab) )
+
+ NEO_SFIX_128K( "265leon.s1", CRC(adf096e9) SHA1(812e321319d9426dbeeb55f14b2bf61bd9c2998e) )
+
+ NEO_BIOS_AUDIO_128K( "265ori.m1", CRC(AB9D360E) SHA1(a0c8a5aae387c4f0b72790211695da7df924c351) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265leon.c7", 0x3000000, 0x800000, CRC(c02c8a0c) SHA1(f757dc124d8375c47af05b650bfc69997a27c63b) )
+ ROM_LOAD16_BYTE( "265leon.c8", 0x3000001, 0x800000, CRC(45ac1284) SHA1(d59357d629557c09d559518d235c0379fa88dd70) )
+ROM_END
+
+ROM_START( kof2k2mcr )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265mcr.p1", 0x000000, 0x100000, CRC(1aeb806a) SHA1(a79d0021c4076efe4aae00994dfa7f3ddfd41bc5) )
+ ROM_LOAD16_WORD_SWAP( "265mcr.p2", 0x100000, 0x400000, CRC(4134dc22) SHA1(20d887b96957d5255f2b18950ea45b6ecd782b51) )
+
+ NEO_SFIX_128K( "265evo.s1", CRC(E0EAABA3) SHA1(831b642da9fe7617498cdb1c86475b3b3d3043bc) )
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) )
+ ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265spls.c7", 0x3000000, 0x800000, CRC(31e7aaa3) SHA1(733710493cd885701f5f34078a875bc77ed57442) )
+ ROM_LOAD16_BYTE( "265spls.c8", 0x3000001, 0x800000, CRC(f26a445b) SHA1(3fba6d95c1af77a6fe2e65af39eba0ce3e4134b7) )
+ROM_END
+
+ROM_START( kof2k2moi2 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265moi2.p1", 0x000000, 0x100000, CRC(0851940b) SHA1(5f374412c783b2d2392693d64c084dac4a7f3438) )
+ ROM_LOAD16_WORD_SWAP( "265moi2.p2", 0x100000, 0x400000, CRC(95c2783d) SHA1(49eb7ceba441988ff974bc5b9b935036b8701291) )
+
+ NEO_SFIX_128K( "265k2.s1", CRC(10de5d7c) SHA1(44f4f523a787cf3094923483b824d7795858aff6) )
+
+ NEO_BIOS_AUDIO_128K( "265ori.m1", CRC(AB9D360E) SHA1(a0c8a5aae387c4f0b72790211695da7df924c351) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265moi2.c1", 0x0000000, 0x800000, CRC(4d15a195) SHA1(68e4fd57a32e671f259ce1d3a98727af3d91d0ba) )
+ ROM_LOAD16_BYTE( "265moi2.c2", 0x0000001, 0x800000, CRC(4468df56) SHA1(979973716d75f319c265969555a939d15424b74e) )
+ ROM_LOAD16_BYTE( "265ori.c3", 0x1000000, 0x800000, CRC(E5074EEA) SHA1(387ef21d58b416126b95843bac1a0b6cc346818f) )
+ ROM_LOAD16_BYTE( "265ori.c4", 0x1000001, 0x800000, CRC(F6EB1FF2) SHA1(77cb493b9e75d42c204a9a6c052a813c2730e44f) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265ori.c7", 0x3000000, 0x800000, CRC(0E9F6ADB) SHA1(0e4cdbd3df2ef7b0c78c3275ee22684c67bf2d23) )
+ ROM_LOAD16_BYTE( "265ori.c8", 0x3000001, 0x800000, CRC(9961799E) SHA1(cf5d43bbd90269155ac41fe9a31328654784351f) )
+ROM_END
+
+ROM_START( kof2k2moir )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265moir.p1", 0x000000, 0x100000, CRC(adb10912) SHA1(1b352dc12010822b54893ae291b0cc19c20475f8) )
+ ROM_LOAD16_WORD_SWAP( "265moir.p2", 0x100000, 0x400000, CRC(e9204705) SHA1(421f50e90753c97a497172e655094871cd99b43c) )
+
+ NEO_SFIX_128K( "265moir.s1", CRC(627af296) SHA1(f2a24587896d05927456a35ef3e749505ac27dbb) )
+
+ NEO_BIOS_AUDIO_128K( "265ori.m1", CRC(AB9D360E) SHA1(a0c8a5aae387c4f0b72790211695da7df924c351) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) )
+ ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) )
+ROM_END
+
+ROM_START( kof2k2mp1 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265mp1.p1", 0x000000, 0x100000, CRC(aba169fe) SHA1(934dd20f6e3da261cb9f3587cdd8145ecdcdfa84) )
+ ROM_LOAD16_WORD_SWAP( "265ht.p2", 0x100000, 0x400000, CRC(dec98282) SHA1(8a3c055c6c728a77134bda1f379995ebca623654) )
+
+ NEO_SFIX_128K( "265mp1.s1", CRC(29c0693e) SHA1(a852d15a8558b4a1cadf1ed9ef357d765ff88d35) )
+
+ NEO_BIOS_AUDIO_128K( "265nu.m1", CRC(f80eb346) SHA1(7affe04a8e19c33ea99359ffe5f2936f7e724fa1) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) )
+ ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) )
+ROM_END
+
+ROM_START( kof2k2mp3 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265mp3.p1", 0x000000, 0x100000, CRC(0cdbe99c) SHA1(d1c0c953a1c313d10105a7882dadd5927bca3e4f) )
+ ROM_LOAD16_WORD_SWAP( "265ori.p2", 0x100000, 0x400000, CRC(DE6FFD21) SHA1(0f9108aae7541d0d754ce764b195c921c021c373) )
+
+ NEO_SFIX_128K( "265mp3.s1", CRC(4d0c4e77) SHA1(6e65b3e0ec2a04de4553f8ccf9c3197a0126e332) )
+
+ NEO_BIOS_AUDIO_128K( "265ori.m1", CRC(AB9D360E) SHA1(a0c8a5aae387c4f0b72790211695da7df924c351) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265rs.c1", 0x0000000, 0x800000, CRC(c1a21b4c) SHA1(235938175d6011c5c8a37fc94f8fb604132d8038) )
+ ROM_LOAD16_BYTE( "265rs.c2", 0x0000001, 0x800000, CRC(9b3d7e8d) SHA1(38c16541862636934a456f23632f64ff0f5ae617) )
+ ROM_LOAD16_BYTE( "265ori.c3", 0x1000000, 0x800000, CRC(E5074EEA) SHA1(387ef21d58b416126b95843bac1a0b6cc346818f) )
+ ROM_LOAD16_BYTE( "265ori.c4", 0x1000001, 0x800000, CRC(F6EB1FF2) SHA1(77cb493b9e75d42c204a9a6c052a813c2730e44f) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265ori.c7", 0x3000000, 0x800000, CRC(0E9F6ADB) SHA1(0e4cdbd3df2ef7b0c78c3275ee22684c67bf2d23) )
+ ROM_LOAD16_BYTE( "265ori.c8", 0x3000001, 0x800000, CRC(9961799E) SHA1(cf5d43bbd90269155ac41fe9a31328654784351f) )
+ROM_END
+
+ROM_START( kof2k2mpu )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265mpu.p1", 0x000000, 0x100000, CRC(96388f42) SHA1(4129ca8d2a3f6543303bafafef479a48460e58ec) )
+ ROM_LOAD16_WORD_SWAP( "265mpu.p2", 0x100000, 0x400000, CRC(d8a309e1) SHA1(a0625455f8d72bc9bcf1c880bf00e8d1814a830b) )
+
+ NEO_SFIX_128K( "265mpu.s1", CRC(561a7dd9) SHA1(5e57c6e670e2ecaaa0937a6bede9c391af8a38d4) )
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265rm13.c4", 0x1000001, 0x800000, CRC(2558972F) SHA1(2e0627fc5d689bf64fe36f02a489408d103c4499) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265or.c7", 0x3000000, 0x800000, CRC(201e75e0) SHA1(7805d7a753df4d97bd73e05f22f31fe6440eaf6c) )
+ ROM_LOAD16_BYTE( "265or.c8", 0x3000001, 0x800000, CRC(ff0fd53b) SHA1(68289ab3f808b9c067a948948f48d5a3f1787e6c) )
+ROM_END
+
+ROM_START( kof2k2ngp ) // colour change of kof2k2br1
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265br1.p1", 0x000000, 0x100000, CRC(b73033df) SHA1(c8e1ce1d35be1dd537709a533e7dac37e047f428) )
+ ROM_LOAD16_WORD_SWAP( "265ngp.p2", 0x100000, 0x400000, CRC(644fc435) SHA1(35de9b2db631a41d66dc7e141131d79b5fbeff42) )
+
+ NEO_SFIX_128K( "265evo.s1", CRC(E0EAABA3) SHA1(831b642da9fe7617498cdb1c86475b3b3d3043bc) )
+
+ NEO_BIOS_AUDIO_128K( "265ori.m1", CRC(AB9D360E) SHA1(a0c8a5aae387c4f0b72790211695da7df924c351) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) )
+ ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) )
+ROM_END
+
+ROM_START( kof2k2nu )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265nu.p1", 0x000000, 0x100000, CRC(ebedae17) SHA1(5f84562f9ef7a6b007290e59b31a62aca208f579) )
+ ROM_LOAD16_WORD_SWAP( "265nu.p2", 0x100000, 0x400000, CRC(2c4b2098) SHA1(8468149138c06cd98152c71d0064d04d9befc713) )
+
+ NEO_SFIX_128K( "265nu.s1", CRC(c401c4fd) SHA1(ff3289d9320fc461cd57dda847d98c8c22094368) )
+
+ NEO_BIOS_AUDIO_128K( "265nu.m1", CRC(f80eb346) SHA1(7affe04a8e19c33ea99359ffe5f2936f7e724fa1) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265nu.c3", 0x1000000, 0x800000, CRC(263c7a65) SHA1(9b7532c63aad57cd9c274e4b8ec857e9d695b2af) )
+ ROM_LOAD16_BYTE( "265nu.c4", 0x1000001, 0x800000, CRC(bdfd88a2) SHA1(a3ac23eeb883616d25207ad872cca8ae28b93292) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) )
+ ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) )
+ROM_END
+
+ROM_START( kof2k2olp )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265olp.p1", 0x000000, 0x100000, CRC(76bb0cfc) SHA1(243b6daeaf573e48cc99df343232cfb5e66de564) )
+ ROM_LOAD16_WORD_SWAP( "265olp.p2", 0x100000, 0x400000, CRC(9240c85c) SHA1(6ed323d31deaae3db6a4faa908b37a5b14440199) )
+
+ NEO_SFIX_128K( "265evo.s1", CRC(E0EAABA3) SHA1(831b642da9fe7617498cdb1c86475b3b3d3043bc) )
+
+ NEO_BIOS_AUDIO_128K( "265ori.m1", CRC(AB9D360E) SHA1(a0c8a5aae387c4f0b72790211695da7df924c351) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) )
+ ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) )
+ROM_END
+
+ROM_START( kof2k2omg ) // kof02omg
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265omg.p1", 0x000000, 0x100000, CRC(62174834) SHA1(7bdfa0260bba90b0325b90849fb8f9acef34c3f4) )
+ ROM_IGNORE( 0x2bd4c1 )
+ ROM_LOAD16_WORD_SWAP( "265omg.p2", 0x100000, 0x400000, CRC(6fadc5c3) SHA1(8336d339013d3357b11b8e0c1816b560a755f935) )
+
+ NEO_SFIX_128K( "265omg.s1", CRC(6145daf4) SHA1(81bf405e8862854f3ae003ca840c0de05326a54f) )
+
+ NEO_BIOS_AUDIO_128K( "265ori.m1", CRC(AB9D360E) SHA1(a0c8a5aae387c4f0b72790211695da7df924c351) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265xxx.c1", 0x0000000, 0x800000, CRC(745B343E) SHA1(ae8293b18cfb4c20e2915149872d9fa561a218bf) )
+ ROM_LOAD16_BYTE( "265xxx.c2", 0x0000001, 0x800000, CRC(2AAB7F98) SHA1(083c6e9162ab3bb49b365f91246cb39019dabe43) )
+ ROM_LOAD16_BYTE( "265ori.c3", 0x1000000, 0x800000, CRC(E5074EEA) SHA1(387ef21d58b416126b95843bac1a0b6cc346818f) )
+ ROM_LOAD16_BYTE( "265ori.c4", 0x1000001, 0x800000, CRC(F6EB1FF2) SHA1(77cb493b9e75d42c204a9a6c052a813c2730e44f) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265ori.c7", 0x3000000, 0x800000, CRC(0E9F6ADB) SHA1(0e4cdbd3df2ef7b0c78c3275ee22684c67bf2d23) )
+ ROM_LOAD16_BYTE( "265ori.c8", 0x3000001, 0x800000, CRC(9961799E) SHA1(cf5d43bbd90269155ac41fe9a31328654784351f) )
+ROM_END
+
+ROM_START( kof2k2omg8 ) // KOF-ON Team omega 0.8
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265omg8.p1", 0x000000, 0x100000, CRC(53086581) SHA1(a548625cfe62bc6f164276fda8e589a0e734af25) )
+ ROM_LOAD16_WORD_SWAP( "265omg8.p2", 0x100000, 0x400000, CRC(40228fe5) SHA1(6beb7be722c1b0da70f1127b262b1e8a737cb22c) )
+
+ NEO_SFIX_128K( "265omg8.s1", CRC(65351d40) SHA1(84035a80c1d0a35e487da831063cd4a77790a86f) )
+
+ NEO_BIOS_AUDIO_256K( "265omg8.m1", CRC(9a3d5c65) SHA1(382a104c1637622b6e1e44af2db331c5832cd09c) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) )
+ ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265omg8.c1", 0x0000000, 0x800000, CRC(e144302d) SHA1(8156a7f52b4c0f73d0f770314ccd8da07eab7266) )
+ ROM_LOAD16_BYTE( "265omg8.c2", 0x0000001, 0x800000, CRC(b10c6958) SHA1(e2112d1640cbcdeaaa0cb2bbf87d759184d4a6f0) )
+ ROM_LOAD16_BYTE( "265omg8.c3", 0x1000000, 0x800000, CRC(2367927c) SHA1(31a5b58feaeb2ecbde5573b48b50cdd8bcaa6ab4) )
+ ROM_LOAD16_BYTE( "265omg8.c4", 0x1000001, 0x800000, CRC(4ad48c29) SHA1(9908a7c2d579059a97927d58f4ea95b17deb9952) )
+ ROM_LOAD16_BYTE( "365ru.c5", 0x2000000, 0x800000, CRC(11126545) SHA1(4ae58848c8a6701c9cfcd60e6674e8fb7491c0c0) )
+ ROM_LOAD16_BYTE( "365ru.c6", 0x2000001, 0x800000, CRC(d225bb9b) SHA1(ee627dab6aeebfb1af9dbdc315a927245243817c) )
+ ROM_LOAD16_BYTE( "265omg8.c7", 0x3000000, 0x800000, CRC(890c2a4a) SHA1(04e8720ee62782b8fd6621ef4dc4e7469f57b10c) )
+ ROM_LOAD16_BYTE( "265omg8.c8", 0x3000001, 0x800000, CRC(b726009d) SHA1(29e84e7012cd5c109937ea2e6a455ed9829776ac) )
+ROM_END
+
+ROM_START( kof2k2omg9 ) // omega v9
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265-p1.p1", 0x000000, 0x100000, CRC(9ede7323) SHA1(ad9d45498777fda9fa58e75781f48e09aee705a6) )
+ ROM_LOAD16_WORD_SWAP( "265omg9.p2", 0x100000, 0x400000, CRC(cd503fcf) SHA1(8f83fd34f441d706fabac6eee1357e27cb55d60b) )
+
+ NEO_SFIX_128K( "265omg9.s1", CRC(4562fb20) SHA1(623bc397f5fa9e2686ea098d16e8c11215bfd61d) )
+
+ NEO_BIOS_AUDIO_128K( "265ori.m1", CRC(AB9D360E) SHA1(a0c8a5aae387c4f0b72790211695da7df924c351) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265omg9b.c1", 0x0000000, 0x800000, CRC(c8314ae2) SHA1(7d89b556de98e0d89448e5118ffeea4239461635) )
+ ROM_LOAD16_BYTE( "265omg9b.c2", 0x0000001, 0x800000, CRC(e0ddced5) SHA1(d8b5bd419bc825b99c206f54fbce97305839bcc9) )
+ ROM_LOAD16_BYTE( "265omg9b.c3", 0x1000000, 0x800000, CRC(6898f6e2) SHA1(4d8101534f85838eff3823ead72bdbcee57a3a50) )
+ ROM_LOAD16_BYTE( "265omg9b.c4", 0x1000001, 0x800000, CRC(9232e491) SHA1(e56b5657842d5e147e56c485dfa9a5a0a6ffba2d) )
+ ROM_LOAD16_BYTE( "365ru.c5", 0x2000000, 0x800000, CRC(11126545) SHA1(4ae58848c8a6701c9cfcd60e6674e8fb7491c0c0) )
+ ROM_LOAD16_BYTE( "365ru.c6", 0x2000001, 0x800000, CRC(d225bb9b) SHA1(ee627dab6aeebfb1af9dbdc315a927245243817c) )
+ ROM_LOAD16_BYTE( "265omg9b.c7", 0x3000000, 0x800000, CRC(6954ef57) SHA1(807f7bcdac379c5dce7745f10925e5c4a10c2c85) )
+ ROM_LOAD16_BYTE( "265omg9b.c8", 0x3000001, 0x800000, CRC(3e394883) SHA1(03e92267bdef8651bac6278c8068892dadba3ad8) )
+ROM_END
+
+ROM_START( kof2k2omg9b ) // omega v9 beta
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265-p1.p1", 0x000000, 0x100000, CRC(9ede7323) SHA1(ad9d45498777fda9fa58e75781f48e09aee705a6) )
+ ROM_LOAD16_WORD_SWAP( "265omg9b.p2", 0x100000, 0x400000, CRC(a171b684) SHA1(2b8ef67c0e2709e77a07d3c139cf411961470e49) )
+
+ NEO_SFIX_128K( "265omg9b.s1", CRC(7e3f391a) SHA1(2680cdf630f8c726d8efaee4b4108108028c4c38) )
+
+ NEO_BIOS_AUDIO_256K( "265omg8.m1", CRC(9a3d5c65) SHA1(382a104c1637622b6e1e44af2db331c5832cd09c) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265omg9b.c1", 0x0000000, 0x800000, CRC(c8314ae2) SHA1(7d89b556de98e0d89448e5118ffeea4239461635) )
+ ROM_LOAD16_BYTE( "265omg9b.c2", 0x0000001, 0x800000, CRC(e0ddced5) SHA1(d8b5bd419bc825b99c206f54fbce97305839bcc9) )
+ ROM_LOAD16_BYTE( "265omg9b.c3", 0x1000000, 0x800000, CRC(6898f6e2) SHA1(4d8101534f85838eff3823ead72bdbcee57a3a50) )
+ ROM_LOAD16_BYTE( "265omg9b.c4", 0x1000001, 0x800000, CRC(9232e491) SHA1(e56b5657842d5e147e56c485dfa9a5a0a6ffba2d) )
+ ROM_LOAD16_BYTE( "365ru.c5", 0x2000000, 0x800000, CRC(11126545) SHA1(4ae58848c8a6701c9cfcd60e6674e8fb7491c0c0) )
+ ROM_LOAD16_BYTE( "365ru.c6", 0x2000001, 0x800000, CRC(d225bb9b) SHA1(ee627dab6aeebfb1af9dbdc315a927245243817c) )
+ ROM_LOAD16_BYTE( "265omg9b.c7", 0x3000000, 0x800000, CRC(6954ef57) SHA1(807f7bcdac379c5dce7745f10925e5c4a10c2c85) )
+ ROM_LOAD16_BYTE( "265omg9b.c8", 0x3000001, 0x800000, CRC(3e394883) SHA1(03e92267bdef8651bac6278c8068892dadba3ad8) )
+ROM_END
+
+ROM_START( kof2k2on )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265on.p1", 0x000000, 0x100000, CRC(398ebaff) SHA1(6055bca69cd1cc922d269ff0c5a036e5482ca9b8) )
+ ROM_LOAD16_WORD_SWAP( "k2k2m2p2.bin", 0x100000, 0x400000, CRC(432fdf53) SHA1(d7e542cd84d948162c60768e40ee4ed33d8e7913) )
+
+ NEO_SFIX_128K( "265ori2.s1", CRC(99ca0abc) SHA1(cb0e5646590f1ed998e02a70a009c432fbaef2e2) )
+
+ NEO_BIOS_AUDIO_128K( "265ori.m1", CRC(AB9D360E) SHA1(a0c8a5aae387c4f0b72790211695da7df924c351) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265ori.c3", 0x1000000, 0x800000, CRC(E5074EEA) SHA1(387ef21d58b416126b95843bac1a0b6cc346818f) )
+ ROM_LOAD16_BYTE( "265ori.c4", 0x1000001, 0x800000, CRC(F6EB1FF2) SHA1(77cb493b9e75d42c204a9a6c052a813c2730e44f) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) )
+ ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) )
+ROM_END
+
+ROM_START( kof2k2or ) /* The King of Fighters 2002 - Third Strike of Orochi */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265or.p1", 0x000000, 0x100000, CRC(eb84d68f) SHA1(8dccf250cf04e129529793abcc655f5fc7fb6629) )
+ ROM_LOAD16_WORD_SWAP( "265or.p2", 0x100000, 0x400000, CRC(293bbf78) SHA1(647eea522d0a163675205aeab9b0b9ebb3a47eea) )
+
+ NEO_SFIX_128K( "265ps2.s1", CRC(714ade47) SHA1(a46115ed89454d8090fae59cfa4aea61a4a81ebf) )
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) )
+ ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265rm13.c4", 0x1000001, 0x800000, CRC(2558972F) SHA1(2e0627fc5d689bf64fe36f02a489408d103c4499) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265or.c7", 0x3000000, 0x800000, CRC(201e75e0) SHA1(7805d7a753df4d97bd73e05f22f31fe6440eaf6c) )
+ ROM_LOAD16_BYTE( "265or.c8", 0x3000001, 0x800000, CRC(ff0fd53b) SHA1(68289ab3f808b9c067a948948f48d5a3f1787e6c) )
+ROM_END
+
+ROM_START( kof2k2ori )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265ori.p1", 0x000000, 0x100000, CRC(081406DB) SHA1(3fbf24c222ebb5e4d6084f3664ab00caae24e156) )
+ ROM_LOAD16_WORD_SWAP( "265ori.p2", 0x100000, 0x400000, CRC(DE6FFD21) SHA1(0f9108aae7541d0d754ce764b195c921c021c373) )
+
+ NEO_SFIX_128K( "265ori.s1", CRC(98622D30) SHA1(dad20e619a3158b890e6b129179befc5770cf4c0) )
+
+ NEO_BIOS_AUDIO_128K( "265ori.m1", CRC(AB9D360E) SHA1(a0c8a5aae387c4f0b72790211695da7df924c351) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) )
+ ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265rs.c1", 0x0000000, 0x800000, CRC(c1a21b4c) SHA1(235938175d6011c5c8a37fc94f8fb604132d8038) )
+ ROM_LOAD16_BYTE( "265rs.c2", 0x0000001, 0x800000, CRC(9b3d7e8d) SHA1(38c16541862636934a456f23632f64ff0f5ae617) )
+ ROM_LOAD16_BYTE( "265ori.c3", 0x1000000, 0x800000, CRC(E5074EEA) SHA1(387ef21d58b416126b95843bac1a0b6cc346818f) )
+ ROM_LOAD16_BYTE( "265ori.c4", 0x1000001, 0x800000, CRC(F6EB1FF2) SHA1(77cb493b9e75d42c204a9a6c052a813c2730e44f) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265ori.c7", 0x3000000, 0x800000, CRC(0E9F6ADB) SHA1(0e4cdbd3df2ef7b0c78c3275ee22684c67bf2d23) )
+ ROM_LOAD16_BYTE( "265ori.c8", 0x3000001, 0x800000, CRC(9961799E) SHA1(cf5d43bbd90269155ac41fe9a31328654784351f) )
+ROM_END
+
+ROM_START( kof2k2ori2 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265ori2.p1", 0x000000, 0x100000, CRC(42a7a398) SHA1(355edf6c75a52c535118b1ed58c3eb348e0770ca) )
+ ROM_LOAD16_WORD_SWAP( "265ori.p2", 0x100000, 0x400000, CRC(DE6FFD21) SHA1(0f9108aae7541d0d754ce764b195c921c021c373) )
+
+ NEO_SFIX_128K( "265ori2.s1", CRC(99ca0abc) SHA1(cb0e5646590f1ed998e02a70a009c432fbaef2e2) )
+
+ NEO_BIOS_AUDIO_128K( "265ori.m1", CRC(AB9D360E) SHA1(a0c8a5aae387c4f0b72790211695da7df924c351) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) )
+ ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265rs.c1", 0x0000000, 0x800000, CRC(c1a21b4c) SHA1(235938175d6011c5c8a37fc94f8fb604132d8038) )
+ ROM_LOAD16_BYTE( "265rs.c2", 0x0000001, 0x800000, CRC(9b3d7e8d) SHA1(38c16541862636934a456f23632f64ff0f5ae617) )
+ ROM_LOAD16_BYTE( "265ori.c3", 0x1000000, 0x800000, CRC(E5074EEA) SHA1(387ef21d58b416126b95843bac1a0b6cc346818f) )
+ ROM_LOAD16_BYTE( "265ori.c4", 0x1000001, 0x800000, CRC(F6EB1FF2) SHA1(77cb493b9e75d42c204a9a6c052a813c2730e44f) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265ori.c7", 0x3000000, 0x800000, CRC(0E9F6ADB) SHA1(0e4cdbd3df2ef7b0c78c3275ee22684c67bf2d23) )
+ ROM_LOAD16_BYTE( "265ori.c8", 0x3000001, 0x800000, CRC(9961799E) SHA1(cf5d43bbd90269155ac41fe9a31328654784351f) )
+ROM_END
+
+ROM_START( kof2k2pa ) /* same as kof2k2plb except s1 from smg, p1 is new */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265pa.p1", 0x000000, 0x100000, CRC(6a3a02f3) SHA1(c9973b64e9a87fa38dde233ee3e9a73ba085b013) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_128K( "265smg.s1", CRC(1a3ed064) SHA1(9749bb55c750e6b65d651998c2649c5fb68db68e) )
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2pjw ) /* The King of Fighters 2002 - Enhance by Jason/K3 and Wesker - ('Plus' version by Jason/K3 and Wesker) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265pjw.p1", 0x000000, 0x100000, CRC(a87c318e) SHA1(58703a572cf37565e024dec570723b8e8f2c22e2) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2plb ) /* bootleg - same as MAME kf2k2pls except m1 & s1 are different */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "2k2-p1p.bin",0x000000, 0x100000, CRC(3ab03781) SHA1(86946c19f1c4d9ab5cde86688d698bf63118a39d) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_128K( "265plb.s1", CRC(2072d5e9) SHA1(45f9eb101f4b58ce40c307fd9fa8b1e95215a81b) )
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2pr ) /* [OLD] The King of Fighters 2002 - (kof2k2pr) - Remix by Raymonose - (Character move change 20% 20030607) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265pr.p1", 0x000000, 0x100000, CRC(a950f9e2) SHA1(769d4b4d8e8dd1cf8db95398534a1242ab12a0ae) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2pro ) /* [OLD] The King of Fighters 2002 - (kof2k2pre) - Remix by Raymonose - (Character move change 20% 20030607) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265pro.p1", 0x000000, 0x100000, CRC(76efe13e) SHA1(c280e942cfdae74da19dbb37e69f29a99fe5eed3) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2ps2 ) /* The King of Fighters 2002 - PS2 ver */
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265ps2.p1", 0x000000, 0x100000, CRC(5a8c7f2f) SHA1(c661a189b5e83c457135cb535c551f68afe82c0d) )
+ ROM_LOAD16_WORD_SWAP( "265ps2.p2", 0x100000, 0x500000, CRC(cb0032bf) SHA1(4bb3176f3a7f06871698b0493d9c3feb7f8f015c) )
+
+ NEO_SFIX_128K( "265ps2.s1", CRC(714ade47) SHA1(a46115ed89454d8090fae59cfa4aea61a4a81ebf) )
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) )
+ ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) )
+
+ ROM_REGION( 0x5000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265rm13.c4", 0x1000001, 0x800000, CRC(2558972F) SHA1(2e0627fc5d689bf64fe36f02a489408d103c4499) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265ps2.c7", 0x3000000, 0x800000, CRC(1b1d35fb) SHA1(474e956a627c90508fcda5c12de83743339814aa) )
+ ROM_LOAD16_BYTE( "265ps2.c8", 0x3000001, 0x800000, CRC(a5e35d11) SHA1(dccd445754a07e243f39d06b4b31cb9937f3b3bd) )
+ ROM_LOAD16_BYTE( "265ps2.c9", 0x4000000, 0x800000, CRC(aa8bbc97) SHA1(f0dde66eceb34609473d83e2514b7056a0a22851) )
+ ROM_LOAD16_BYTE( "265ps2.c10", 0x4000001, 0x800000, CRC(9832713d) SHA1(899c00ea88ef536441b9358b4620402ca9851cf5) )
+ROM_END
+
+ROM_START( kof2k2ps2a )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265ps2a.p1", 0x000000, 0x100000, CRC(336c4ca8) SHA1(132d6444d63c065205357adabd437adf9cdea585) )
+ ROM_LOAD16_WORD_SWAP( "265ps2.p2", 0x100000, 0x500000, CRC(cb0032bf) SHA1(4bb3176f3a7f06871698b0493d9c3feb7f8f015c) )
+
+ NEO_SFIX_128K( "265ps2.s1", CRC(714ade47) SHA1(a46115ed89454d8090fae59cfa4aea61a4a81ebf) )
+
+ NEO_BIOS_AUDIO_ENCRYPTED_128K( "265-m1.m1", CRC(85aaa632) SHA1(744fba4ca3bc3a5873838af886efb97a8a316104) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x5000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265ps2.c7", 0x3000000, 0x800000, CRC(1b1d35fb) SHA1(474e956a627c90508fcda5c12de83743339814aa) )
+ ROM_LOAD16_BYTE( "265ps2.c8", 0x3000001, 0x800000, CRC(a5e35d11) SHA1(dccd445754a07e243f39d06b4b31cb9937f3b3bd) )
+ ROM_LOAD16_BYTE( "265ps2.c9", 0x4000000, 0x800000, CRC(aa8bbc97) SHA1(f0dde66eceb34609473d83e2514b7056a0a22851) )
+ ROM_LOAD16_BYTE( "265ps2.c10", 0x4000001, 0x800000, CRC(9832713d) SHA1(899c00ea88ef536441b9358b4620402ca9851cf5) )
+ROM_END
+
+ROM_START( kof2k2ps2mp )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265ps2mp.p1", 0x000000, 0x100000, CRC(8c111128) SHA1(6a8017a236e331786a5eaaee50daf9a7d8d5f358) )
+ ROM_LOAD16_WORD_SWAP( "265ps2.p2", 0x100000, 0x500000, CRC(cb0032bf) SHA1(4bb3176f3a7f06871698b0493d9c3feb7f8f015c) )
+
+ NEO_SFIX_128K( "265ps2.s1", CRC(714ade47) SHA1(a46115ed89454d8090fae59cfa4aea61a4a81ebf) )
+
+ NEO_BIOS_AUDIO_128K( "265ori.m1", CRC(AB9D360E) SHA1(a0c8a5aae387c4f0b72790211695da7df924c351) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x5000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265rm13.c4", 0x1000001, 0x800000, CRC(2558972F) SHA1(2e0627fc5d689bf64fe36f02a489408d103c4499) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265ps2.c7", 0x3000000, 0x800000, CRC(1b1d35fb) SHA1(474e956a627c90508fcda5c12de83743339814aa) )
+ ROM_LOAD16_BYTE( "265ps2.c8", 0x3000001, 0x800000, CRC(a5e35d11) SHA1(dccd445754a07e243f39d06b4b31cb9937f3b3bd) )
+ ROM_LOAD16_BYTE( "265ps2.c9", 0x4000000, 0x800000, CRC(aa8bbc97) SHA1(f0dde66eceb34609473d83e2514b7056a0a22851) )
+ ROM_LOAD16_BYTE( "265ps2.c10", 0x4000001, 0x800000, CRC(9832713d) SHA1(899c00ea88ef536441b9358b4620402ca9851cf5) )
+ROM_END
+
+ROM_START( kof2k2pur )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265pur.p1", 0x000000, 0x100000, CRC(e3fbd156) SHA1(a71cdef591a7d15e40d05617fb73929607d1a895) )
+ ROM_LOAD16_WORD_SWAP( "265pur.p2", 0x100000, 0x400000, CRC(fd3c0e06) SHA1(50b10e7838c683852811dcdfb7d6b4297cd8597c) )
+
+ NEO_SFIX_128K( "265evo.s1", CRC(E0EAABA3) SHA1(831b642da9fe7617498cdb1c86475b3b3d3043bc) )
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) )
+ ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265rs.c1", 0x0000000, 0x800000, CRC(c1a21b4c) SHA1(235938175d6011c5c8a37fc94f8fb604132d8038) )
+ ROM_LOAD16_BYTE( "265rs.c2", 0x0000001, 0x800000, CRC(9b3d7e8d) SHA1(38c16541862636934a456f23632f64ff0f5ae617) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) )
+ ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) )
+ROM_END
+
+ROM_START( kof2k2ra ) /* [OLD] The King of Fighters 2002 - (kof2k2ra) - Revise by Ruin Angel - (Fighter combat moves revision - bases on CHL´s work 2003/04) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265ra.p1", 0x000000, 0x100000, CRC(e08d9418) SHA1(b99fd8cea5b0cb16c8b58f748898d6bdaf8035f1) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2rgl )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265rgl.p1", 0x000000, 0x100000, CRC(188d4288) SHA1(f745718329718852b42267cd9a17ea5cd107d0bf) )
+ ROM_LOAD16_WORD_SWAP( "265rgl.p2", 0x100000, 0x400000, CRC(f0a176a9) SHA1(5344fd686f03d4fc9c9aded4556b42ae5d5150c5) )
+
+ NEO_SFIX_128K( "265rgl.s1", CRC(ca827be9) SHA1(0f2acadb0f840809420e6f96f0f89d357815ef4c) )
+
+ NEO_BIOS_AUDIO_128K( "265ori.m1", CRC(AB9D360E) SHA1(a0c8a5aae387c4f0b72790211695da7df924c351) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265xxx.c1", 0x0000000, 0x800000, CRC(745B343E) SHA1(ae8293b18cfb4c20e2915149872d9fa561a218bf) )
+ ROM_LOAD16_BYTE( "265xxx.c2", 0x0000001, 0x800000, CRC(2AAB7F98) SHA1(083c6e9162ab3bb49b365f91246cb39019dabe43) )
+ ROM_LOAD16_BYTE( "265js.c3", 0x1000000, 0x800000, CRC(ca656090) SHA1(ed7f79eeabb965f5cdfbdd1c2d137ef5db366e03) )
+ ROM_LOAD16_BYTE( "265js.c4", 0x1000001, 0x800000, CRC(eb898849) SHA1(eac79b04382fc20dd9f7b9345d929aff58889e8f) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265rgl.c7", 0x3000000, 0x800000, CRC(0e13aace) SHA1(419eb29e3a479cb5dbd5d99f1d79e8846770d0cb) )
+ ROM_LOAD16_BYTE( "265rgl.c8", 0x3000001, 0x800000, CRC(986d4825) SHA1(558f929929c207207442798d72459baed837c1a3) )
+ROM_END
+
+ROM_START( kof2k2rm ) /* [OLD] The King of Fighters 2002 - (kof2k2rm) - Remix by Raymonose - (Remix 33%) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265rm.p1", 0x000000, 0x100000, CRC(8dd5a885) SHA1(80959a2909b499c61c815929b17df05efa59ba46) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2rma )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265rma.p1", 0x000000, 0x100000, CRC(b98ba35a) SHA1(14c3e255da8d1b75b9d47a1d5a8eb0172e35abf0) )
+ ROM_LOAD16_WORD_SWAP( "265rma.p2", 0x100000, 0x400000, CRC(26ea77d2) SHA1(4a63fd6296c9e0e3cb663602d478b3fde60ad9df) )
+
+ NEO_SFIX_128K( "265rma.s1", CRC(8544b8ea) SHA1(bb25fae3aedba6023ca6bfdc0dd3db0c57ad14d0) )
+
+ NEO_BIOS_AUDIO_128K( "265rm13.m1", CRC(9956CCD8) SHA1(ed0f5e87360dfa89a58e1b333f4a66e91c2faf56) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265js.v1", 0x000000, 0x400000, CRC(3961af5a) SHA1(483662b9ec1da54e6786a34327837a48eed3501f) )
+ ROM_LOAD( "265rm13.v2", 0x400000, 0x400000, CRC(0a1e505a) SHA1(62d128909b21cef4605ed35195e5503d1e056659) )
+ ROM_LOAD( "265rm13.v3", 0x800000, 0x400000, CRC(15bc1d92) SHA1(bc22e274f279a01518de8cd519847eb01ff675ef) )
+ ROM_LOAD( "265rm13.v4", 0xc00000, 0x400000, CRC(b5f43393) SHA1(7bbbff6aeb44e8964bbb46372b856ffe6c530076) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265rma.c7", 0x3000000, 0x800000, CRC(5e79a235) SHA1(610a8073c61c5346f23e95a79369ed7950a02d63) )
+ ROM_LOAD16_BYTE( "265rma.c8", 0x3000001, 0x800000, CRC(a2b54e2d) SHA1(3f534ac51f3c2b1efe8a76cabd7e154ea9f1f13e) )
+ROM_END
+
+ROM_START( kof2k2rmb )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265rma.p1", 0x000000, 0x100000, CRC(b98ba35a) SHA1(14c3e255da8d1b75b9d47a1d5a8eb0172e35abf0) )
+ ROM_LOAD16_WORD_SWAP( "265rmb.p2", 0x100000, 0x400000, CRC(8684acf0) SHA1(364cde00d3c35b3aca60fe5d0bf6ffa774898787) )
+
+ NEO_SFIX_128K( "265rm13.s1", CRC(BD19C308) SHA1(38a9055bbd981a794e1fd9065985b4c033b78e93) )
+
+ NEO_BIOS_AUDIO_128K( "265rm13.m1", CRC(9956CCD8) SHA1(ed0f5e87360dfa89a58e1b333f4a66e91c2faf56) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265js.v1", 0x000000, 0x400000, CRC(3961af5a) SHA1(483662b9ec1da54e6786a34327837a48eed3501f) )
+ ROM_LOAD( "265rm13.v2", 0x400000, 0x400000, CRC(0a1e505a) SHA1(62d128909b21cef4605ed35195e5503d1e056659) )
+ ROM_LOAD( "265rm13.v3", 0x800000, 0x400000, CRC(15bc1d92) SHA1(bc22e274f279a01518de8cd519847eb01ff675ef) )
+ ROM_LOAD( "265rm13.v4", 0xc00000, 0x400000, CRC(b5f43393) SHA1(7bbbff6aeb44e8964bbb46372b856ffe6c530076) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265rm13.c7", 0x3000000, 0x800000, CRC(2A9D505C) SHA1(dcd3899aebc4602e4249b3e61299a0c8bf2e5e56) )
+ ROM_LOAD16_BYTE( "265rm13.c8", 0x3000001, 0x800000, CRC(93D8501F) SHA1(470f29de0bad8c15d924fffbbfa85926b551a8ae) )
+ROM_END
+
+ROM_START( kof2k2rm1 ) /* [OLD] The King of Fighters 2002 - (kof2k2rm1) - Remix by Raymonose - (Remix revision 1 - 66%) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265rm1.p1", 0x000000, 0x100000, CRC(0ba302d8) SHA1(ce919c4acd305e8c5e0412fdc4fcb84ec2da9c9d) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2rm2 ) /* [OLD] The King of Fighters 2002 - (kof2k2rm2) - Remix by Raymonose - (Remix revision 2 - 80% 20030414) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265rm2.p1", 0x000000, 0x100000, CRC(2c9db5d8) SHA1(0ba62a1012114e40a30c7d437930397274e30920) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2rm3 ) /* [OLD] The King of Fighters 2002 - (kof2k2rm3) - Remix by Raymonose - (Remix revision 3 - 89% 20030420) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265rm3.p1", 0x000000, 0x100000, CRC(aa5a8d6a) SHA1(1bc7666d255c9c6e076b396030dff3b71dd7ca02) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2rm13 ) // kf2k2rm13 at gametroniks
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265rm13.p1", 0x000000, 0x100000, CRC(D4CA84AC) SHA1(df33693f980b1db4d2baef562364bf9d7172b53a) )
+ ROM_LOAD16_WORD_SWAP( "265rm13.p2", 0x100000, 0x400000, CRC(3CAA9FF2) SHA1(a55099baba9df85c45c1449289ffb89cd2a486d7) )
+
+ NEO_SFIX_128K( "265rm13.s1", CRC(BD19C308) SHA1(38a9055bbd981a794e1fd9065985b4c033b78e93) )
+
+ NEO_BIOS_AUDIO_128K( "265rm13.m1", CRC(9956CCD8) SHA1(ed0f5e87360dfa89a58e1b333f4a66e91c2faf56) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265rm13.v1", 0x000000, 0x400000, CRC(fbb908d7) SHA1(35805022a36a539033fa4ec07cfbebcaac4cb972) )
+ ROM_LOAD( "265rm13.v2", 0x400000, 0x400000, CRC(0a1e505a) SHA1(62d128909b21cef4605ed35195e5503d1e056659) )
+ ROM_LOAD( "265rm13.v3", 0x800000, 0x400000, CRC(15bc1d92) SHA1(bc22e274f279a01518de8cd519847eb01ff675ef) )
+ ROM_LOAD( "265rm13.v4", 0xc00000, 0x400000, CRC(b5f43393) SHA1(7bbbff6aeb44e8964bbb46372b856ffe6c530076) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265rm13.c4", 0x1000001, 0x800000, CRC(2558972F) SHA1(2e0627fc5d689bf64fe36f02a489408d103c4499) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265rm13.c7", 0x3000000, 0x800000, CRC(2A9D505C) SHA1(dcd3899aebc4602e4249b3e61299a0c8bf2e5e56) )
+ ROM_LOAD16_BYTE( "265rm13.c8", 0x3000001, 0x800000, CRC(93D8501F) SHA1(470f29de0bad8c15d924fffbbfa85926b551a8ae) )
+ROM_END
+
+ROM_START( kof2k2rr ) /* [OLD] The King of Fighters 2002 - (kof2k2rr) - Revise by Ricky - (Fighter combat moves revision - bases on CHL´s work 2003/05 - 2003/06) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265rr.p1", 0x000000, 0x100000, CRC(8c66baae) SHA1(bed090cf6b2a0ebfdde891ef2f319b9bb79236e1) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2rr1 ) /* [OLD] The King of Fighters 2002 - (kof2k2rr) - Revise by Ricky - (Fighter combat moves revision - bases on CHL´s work 2003/05 - 2003/06) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265rr1.p1", 0x000000, 0x100000, CRC(a0929b00) SHA1(0539553e9a8778ef0f1d613527b316b6f0e99a7c) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2rr2 ) /* [OLD] The King of Fighters 2002 - (kof2k2rr) - Revise by Ricky - (Fighter combat moves revision - bases on CHL´s work 2003/05 - 2003/06) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265rr2.p1", 0x000000, 0x100000, CRC(13b61d63) SHA1(0649f25bc6a64a8059b82d6b09e62eb1f2537e50) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2rr3 ) /* [OLD] The King of Fighters 2002 - (kof2k2rr) - Revise by Ricky - (Fighter combat moves revision - bases on CHL´s work 2003/05 - 2003/06) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265rr3.p1", 0x000000, 0x100000, CRC(67b64636) SHA1(d9537596bcbc86d9f5a162501829212ee9f941dd) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2rr4 ) /* [OLD] The King of Fighters 2002 - (kof2k2rr) - Revise by Ricky - (Fighter combat moves revision - bases on CHL´s work 2003/05 - 2003/06) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265rr4.p1", 0x000000, 0x100000, CRC(4a12ef24) SHA1(dfe2f34d4181643f3f06d8223fdf1e43dbe3110a) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2rr5 ) /* [OLD] The King of Fighters 2002 - (kof2k2rr) - Revise by Ricky - (Fighter combat moves revision - bases on CHL´s work 2003/05 - 2003/06) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265rr5.p1", 0x000000, 0x100000, CRC(aba2827f) SHA1(6477110e0649db35a0494f5f63b37626a5af6391) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2rr6 ) /* [OLD] The King of Fighters 2002 - (kof2k2rr) - Revise by Ricky - (Fighter combat moves revision - bases on CHL´s work 2003/05 - 2003/06) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265rr6.p1", 0x000000, 0x100000, CRC(c6b9d2c7) SHA1(d49613a2f9793ea684c9aa6af4685a4b25cab596) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2rr7 ) /* [OLD] The King of Fighters 2002 - (kof2k2rr) - Revise by Ricky - (Fighter combat moves revision - bases on CHL´s work 2003/05 - 2003/06) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265rr7.p1", 0x000000, 0x100000, CRC(56c9e089) SHA1(248b9c4c00179fbd6b877ba8df2b8acd45f71adf) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2rr8 ) /* [OLD] The King of Fighters 2002 - (kof2k2rr) - Revise by Ricky - (Fighter combat moves revision - bases on CHL´s work 2003/05 - 2003/06) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265rr8.p1", 0x000000, 0x100000, CRC(f0a14d18) SHA1(6b4e4ceda6d516966e02906b30e861508addc705) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2rs )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265rs.p1", 0x000000, 0x100000, CRC(fcd1b366) SHA1(403103f959ad36026924f62701f9ef465950215e) )
+ ROM_LOAD16_WORD_SWAP( "265rs.p2", 0x100000, 0x400000, CRC(346d0bae) SHA1(9c01a1767b3ba79cabcc7f86634d486a30c1cf62) )
+
+ NEO_SFIX_128K( "265rs.s1", CRC(914bd3f7) SHA1(b2db65fac73367b0f956bf5a0d80a9aaffd432f1) )
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) )
+ ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265rs.c1", 0x0000000, 0x800000, CRC(c1a21b4c) SHA1(235938175d6011c5c8a37fc94f8fb604132d8038) )
+ ROM_LOAD16_BYTE( "265rs.c2", 0x0000001, 0x800000, CRC(9b3d7e8d) SHA1(38c16541862636934a456f23632f64ff0f5ae617) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265rs.c7", 0x3000000, 0x800000, CRC(ea3405d4) SHA1(9d3291a2dd3b50f8f9a82ce1c56dd3695e32a7cc) )
+ ROM_LOAD16_BYTE( "265rs.c8", 0x3000001, 0x800000, CRC(41c547fa) SHA1(b08f86a56a78e7080275031da2c590417a21b2e9) )
+ROM_END
+
+ROM_START( kof2k2rs2 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265rs.p1", 0x000000, 0x100000, CRC(fcd1b366) SHA1(403103f959ad36026924f62701f9ef465950215e) )
+ ROM_LOAD16_WORD_SWAP( "265rs2.p2", 0x100000, 0x400000, CRC(4fc9c70c) SHA1(99c97634af60fc54318685f1a8e90e8c402195fd) )
+
+ NEO_SFIX_128K( "265rs.s1", CRC(914bd3f7) SHA1(b2db65fac73367b0f956bf5a0d80a9aaffd432f1) )
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) )
+ ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265rs.c1", 0x0000000, 0x800000, CRC(c1a21b4c) SHA1(235938175d6011c5c8a37fc94f8fb604132d8038) )
+ ROM_LOAD16_BYTE( "265rs.c2", 0x0000001, 0x800000, CRC(9b3d7e8d) SHA1(38c16541862636934a456f23632f64ff0f5ae617) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265rs.c7", 0x3000000, 0x800000, CRC(ea3405d4) SHA1(9d3291a2dd3b50f8f9a82ce1c56dd3695e32a7cc) )
+ ROM_LOAD16_BYTE( "265rs.c8", 0x3000001, 0x800000, CRC(41c547fa) SHA1(b08f86a56a78e7080275031da2c590417a21b2e9) )
+ROM_END
+
+ROM_START( kof2k2ru ) /* The King of Fighters 2002 - Remix Ultra by Jason/K3 - (Character move change ultra revision - can choose Kusanagi and Rugal 20040820 - v2.5) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265ru.p1", 0x000000, 0x100000, CRC(4455e4b3) SHA1(ac607cb5620f757e4707503e01582e6049212135) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2rw ) /* The King of Fighters 2002 - Remix by Wesker - (Character move change - can choose Kusanagi and Rugal 200310xx) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265rw.p1", 0x000000, 0x100000, CRC(4cb3582e) SHA1(e990d8159d4ab9d20ad563b144a5d789a2a25087) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2sb ) /* [OLD] The King of Fighters 2002 - (kof2k2sb) - Revise by Streetboy - (Fighter combat moves revision - bases on CHL´s work 2003/04) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265sb.p1", 0x000000, 0x100000, CRC(a3c73508) SHA1(b2ab64f8828bf2a1d94f129e2b8a911b2f3f461e) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2seh ) /* The King of Fighters 2002 - Super Enhance Hack by Creamymami - (Can choose Kusanagi and Rugal - ultra kill start is max - ultra power hack) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265seh.p1", 0x000000, 0x100000, CRC(41616bff) SHA1(cc75e2704a6058c4775978b58003d7b46a7f114c) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2se2 ) /* The King of Fighters 2002 - Super Enhance Hack by Creamymami - (Can select Rugal and Kusanagi - ultra kill start is max - ultra power hack - modif. kf2k2seh) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265se2.p1", 0x000000, 0x100000, CRC(c02f73c1) SHA1(e7c1d0c18f1f3ba4044aca4337ed1f9302f42909) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2sm ) // bad gfx on train scene
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265sm.p1", 0x000000, 0x100000, CRC(8599ad97) SHA1(d5d1225bcc57ae7bc980ab43072e66936367c419) )
+ ROM_LOAD16_WORD_SWAP( "265sm.p2", 0x100000, 0x400000, CRC(7633f140) SHA1(a6b1f582290b8212c6f74a4b944186b1bb0e0a01) )
+
+ NEO_SFIX_128K( "265sm.s1", CRC(f060242d) SHA1(4bc27e74f49ef924916de653c34339f77f648f35) )
+
+ NEO_BIOS_AUDIO_128K( "265nu.m1", CRC(f80eb346) SHA1(7affe04a8e19c33ea99359ffe5f2936f7e724fa1) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265sm.v1", 0x000000, 0x400000, CRC(8991f6e9) SHA1(ce5afc0169c142d7f98111afbc60b3a9a2e17256) )
+ ROM_LOAD( "265sm.v2", 0x400000, 0x400000, CRC(511e4d2f) SHA1(28190ec86ac2169ab6fad80635ed13cfcf430c65) )
+ ROM_LOAD( "265sm.v3", 0x800000, 0x400000, CRC(1dd8b53a) SHA1(9aa84f145ba07f5f3c3b3fb682eb8a8ab1500b4c) )
+ ROM_LOAD( "265sm.v4", 0xc00000, 0x400000, CRC(63bb5462) SHA1(afc6a085e25bd006f26e16beda4244bc8bc19bb8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265sm.c1", 0x0000000, 0x800000, CRC(2c6642dd) SHA1(19cf4a674b7f78e5639c9b5517242f20695c6713) )
+ ROM_LOAD16_BYTE( "265sm.c2", 0x0000001, 0x800000, CRC(1410aaa2) SHA1(2698ba6dd348feb0b7fc8e331e2e6a59f7fc6ef3) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265rm13.c4", 0x1000001, 0x800000, CRC(2558972F) SHA1(2e0627fc5d689bf64fe36f02a489408d103c4499) )
+ ROM_LOAD16_BYTE( "265sm.c5", 0x2000000, 0x800000, CRC(59ccfd5a) SHA1(b532a8a5ce96ab73cfc6b1e19144797a04837df6) )
+ ROM_LOAD16_BYTE( "265sm.c6", 0x2000001, 0x800000, CRC(2bfa516d) SHA1(89971bc824093684f3ac3f97e3c1b152f18f7502) )
+ ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) )
+ ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) )
+ROM_END
+
+ROM_START( kof2k2smf ) // kf2k2smf
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265smf.p1", 0x000000, 0x100000, CRC(d8010414) SHA1(4a6e509e25b819188181375238f5b086ee28ff6e) )
+ ROM_LOAD16_WORD_SWAP( "265smf.p2", 0x100000, 0x400000, CRC(1647a83a) SHA1(2415636880cfb5a65255d9248a3034d247eff8d4) )
+
+ NEO_SFIX_128K( "265smf.s1", CRC(c7282dbc) SHA1(7fd82850a35a6ea0c2877aaf39cc46d7dcbd939b) )
+
+ NEO_BIOS_AUDIO_128K( "265ori.m1", CRC(AB9D360E) SHA1(a0c8a5aae387c4f0b72790211695da7df924c351) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265smg.c7", 0x3000000, 0x800000, CRC(febfa475) SHA1(ed69f7536d39522b85bfaa512e75b85d08b439e9) )
+ ROM_LOAD16_BYTE( "265smg.c8", 0x3000001, 0x800000, CRC(8f9b7991) SHA1(9c6e6af48c18e81ecba68563f8fb9caa85899672) )
+ROM_END
+
+ROM_START( kof2k2smg )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265smg.p1", 0x000000, 0x100000, CRC(8c07ce4e) SHA1(754d588fb41cbaf9466c677e9daccac4e2025925) )
+ ROM_LOAD16_WORD_SWAP( "265smg.p2", 0x100000, 0x400000, CRC(dc836917) SHA1(b0d6701d07cadc7e202c7ef3755872f721dca679) )
+
+ NEO_SFIX_128K( "265smg.s1", CRC(1a3ed064) SHA1(9749bb55c750e6b65d651998c2649c5fb68db68e) )
+
+ NEO_BIOS_AUDIO_128K( "265ori.m1", CRC(AB9D360E) SHA1(a0c8a5aae387c4f0b72790211695da7df924c351) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265smg.c7", 0x3000000, 0x800000, CRC(febfa475) SHA1(ed69f7536d39522b85bfaa512e75b85d08b439e9) )
+ ROM_LOAD16_BYTE( "265smg.c8", 0x3000001, 0x800000, CRC(8f9b7991) SHA1(9c6e6af48c18e81ecba68563f8fb9caa85899672) )
+ROM_END
+
+ROM_START( kof2k2smg2 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265smg.p1", 0x000000, 0x100000, CRC(8c07ce4e) SHA1(754d588fb41cbaf9466c677e9daccac4e2025925) )
+ ROM_LOAD16_WORD_SWAP( "265smg2.p2", 0x100000, 0x400000, CRC(ba178ab6) SHA1(94dd06bbac4d38f78d186a02f0b808821b00a621) )
+
+ NEO_SFIX_128K( "265smg.s1", CRC(1a3ed064) SHA1(9749bb55c750e6b65d651998c2649c5fb68db68e) )
+
+ NEO_BIOS_AUDIO_128K( "265ori.m1", CRC(AB9D360E) SHA1(a0c8a5aae387c4f0b72790211695da7df924c351) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) )
+ ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) )
+ROM_END
+
+ROM_START( kof2k2soi )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265soi.p1", 0x000000, 0x100000, CRC(f4390d0f) SHA1(36cbb7bca856220667d42d94061d295cee655bf9) )
+ ROM_LOAD16_WORD_SWAP( "265soi.p2", 0x100000, 0x400000, CRC(5114896e) SHA1(c7e468ea8087b19bebf10ace9e57b28ec3888c43) )
+
+ NEO_SFIX_128K( "265soi.s1", CRC(5ea6a39b) SHA1(095d6bc61ca742db8553c441c97cb526acdd3f30) )
+
+ NEO_BIOS_AUDIO_128K( "kf10-m1.bin", CRC(f6fab859) SHA1(0184aa1394b9f9946d610278b53b846020dd88dc) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265rs.c1", 0x0000000, 0x800000, CRC(c1a21b4c) SHA1(235938175d6011c5c8a37fc94f8fb604132d8038) )
+ ROM_LOAD16_BYTE( "265rs.c2", 0x0000001, 0x800000, CRC(9b3d7e8d) SHA1(38c16541862636934a456f23632f64ff0f5ae617) )
+ ROM_LOAD16_BYTE( "265ori.c3", 0x1000000, 0x800000, CRC(E5074EEA) SHA1(387ef21d58b416126b95843bac1a0b6cc346818f) )
+ ROM_LOAD16_BYTE( "265ori.c4", 0x1000001, 0x800000, CRC(F6EB1FF2) SHA1(77cb493b9e75d42c204a9a6c052a813c2730e44f) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265ori.c7", 0x3000000, 0x800000, CRC(0E9F6ADB) SHA1(0e4cdbd3df2ef7b0c78c3275ee22684c67bf2d23) )
+ ROM_LOAD16_BYTE( "265ori.c8", 0x3000001, 0x800000, CRC(9961799E) SHA1(cf5d43bbd90269155ac41fe9a31328654784351f) )
+ROM_END
+
+ROM_START( kof2k2sp ) /* The King of Fighters 2002 - Remix by Wesker - (Character special move change - can choose Kusanagi and Rugal) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265sp.p1", 0x000000, 0x100000, CRC(22599a10) SHA1(93ffd9569179e176d7b2a532b47e6a6b806e6cb8) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2spl )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265spl.p1", 0x000000, 0x100000, CRC(ed966da6) SHA1(9e6a284da9605a6bb5816c85b9936ef620ef9087) )
+ ROM_LOAD16_WORD_SWAP( "265spl.p2", 0x100000, 0x400000, CRC(a871ab1e) SHA1(99d1e5805b194c179bb544d588eadd5174be897c) )
+
+ NEO_SFIX_128K( "265spl.s1", CRC(aeed9b6f) SHA1(afd41686b70e37149f5ae8ff956c9166ef481559) )
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) )
+ ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265xxx.c1", 0x0000000, 0x800000, CRC(745B343E) SHA1(ae8293b18cfb4c20e2915149872d9fa561a218bf) )
+ ROM_LOAD16_BYTE( "265xxx.c2", 0x0000001, 0x800000, CRC(2AAB7F98) SHA1(083c6e9162ab3bb49b365f91246cb39019dabe43) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265spl.c7", 0x3000000, 0x800000, CRC(d5c5712b) SHA1(ff1f32a44a2e42355d5148614771b52074dea672) )
+ ROM_LOAD16_BYTE( "265spl.c8", 0x3000001, 0x800000, CRC(7dfbea39) SHA1(f698308ef7d8a7019c21005089d7a5f801e3a07a) )
+ROM_END
+
+ROM_START( kof2k2spls )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265spls.p1", 0x000000, 0x100000, CRC(7481af02) SHA1(32561e4d6481123f580322c4e5d4b8f6a28258a5) )
+ ROM_LOAD16_WORD_SWAP( "265spls.p2", 0x100000, 0x400000, CRC(6578f2c6) SHA1(7881dd50fd1e613a9b448799e19257d57ff215ed) )
+
+ NEO_SFIX_128K( "265spls.s1", CRC(196592f6) SHA1(67f64aa251d65220ddaa69a10c526c1cd85540a6) )
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) )
+ ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265spls.c7", 0x3000000, 0x800000, CRC(31e7aaa3) SHA1(733710493cd885701f5f34078a875bc77ed57442) )
+ ROM_LOAD16_BYTE( "265spls.c8", 0x3000001, 0x800000, CRC(f26a445b) SHA1(3fba6d95c1af77a6fe2e65af39eba0ce3e4134b7) )
+ROM_END
+
+ROM_START( kof2k2spo ) /* [OLD] The King of Fighters 2002 - (kof2k2spo) - Remix by Wesker - (Character special move change - can choose Kusanagi and Rugal 20030830) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265spo.p1", 0x000000, 0x100000, CRC(546b71bb) SHA1(0fb3e5600a5ae07be3d7e736012163b66ab9800e) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2tc ) /* The King of Fighters 2002 - Colour fix by T.Com - (Character colour change - attack spark colour change for Iori and Orochi-Chris) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265-p1.p1", 0x000000, 0x100000, CRC(9ede7323) SHA1(ad9d45498777fda9fa58e75781f48e09aee705a6) )
+ ROM_LOAD16_WORD_SWAP( "265tc.p2", 0x100000, 0x400000, CRC(35186b8a) SHA1(d82a4a4d8fbb5a5725166756e11fc4c45b00c0b7) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2ul ) /* The King of Fighters 2002 - Remix Ultra by Raymonose - (Character move change 20030515) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265ul.p1", 0x000000, 0x100000, CRC(a54ef7f2) SHA1(16623a51f54b598b8fcdcfeda662c5482956df91) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2ule ) /* The King of Fighters 2002 - Remix Ultra by Raymonose - (Character move change - can choose Kusanagi and Rugal - ultra kill start is max - ultra power hack 20030515) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265ule.p1", 0x000000, 0x100000, CRC(7af1ef2e) SHA1(2ede44cf00b3ce23d891b03afd492c1ebdbf5f87) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2wuk ) /* The King of Fighters 2002 - Enhance by Wesker - (Ultra kill style revision max2 - perfect) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265wuk.p1", 0x000000, 0x100000, CRC(4d63b5fb) SHA1(f3409543c8a72a944cf26cdc91252096887835c0) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2xxx )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265xxx.p1", 0x000000, 0x100000, CRC(E8E548B5) SHA1(77e13e4a8ec6031bd956378ab95913f91e35ded4) )
+ //ROM_LOAD16_WORD_SWAP( "265xxx.p2", 0x100000, 0x400000, CRC(5E7866B6) SHA1(da0c9d677f73661856d3ad294dc790fcbd8448d3) )
+ // alternate rom
+ ROM_LOAD16_WORD_SWAP( "265xxx.p2", 0x100000, 0x400000, CRC(51c6d9de) SHA1(e0ff1b78b159cc1afa6ed9b868697687ab3054e8) )
+
+ NEO_SFIX_128K( "265xxx.s1", CRC(0F78A636) SHA1(465d438e7edbb38ae5c29a59d4829a8e10c92321) )
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) )
+ ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265xxx.c1", 0x0000000, 0x800000, CRC(745B343E) SHA1(ae8293b18cfb4c20e2915149872d9fa561a218bf) )
+ ROM_LOAD16_BYTE( "265xxx.c2", 0x0000001, 0x800000, CRC(2AAB7F98) SHA1(083c6e9162ab3bb49b365f91246cb39019dabe43) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) )
+ ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) )
+ROM_END
+
+
+
+GAME( 2002, kof200215, kof2002, neogeo_noslot, neogeo, neogeo_noslot_state, kof2002, ROT0, "hack", "Kof2002 (MAGIC PLUS II)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2002d, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002d, ROT0, "Eolith / Playmore", "Kof2002 (decrypted C)", MACHINE_SUPPORTS_SAVE )
+GAME( 2005, kof2002x, kof2002, neogeo_noslot, neogeo, neogeo_noslot_state, kof2002, ROT0, "hack", "Kof2002 (Babel ice field remix)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2ath, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof2002 (Athena hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2b, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Alphax2?", "Kof2002 (Add Char set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2b1, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Alphax2?", "Kof2002 (Add Char set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2bd, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2k2bd, ROT0, "hack", "Kof2002 Challenge to Ultimate Battle (Bootleg, Decrypted)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2bh, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Alphax2", "Kof2002 (Add Char set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2bjh, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Ben Jeremy", "Kof2002 (Diff Moves 031025)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2bjo, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Ben Jeremy", "Kof2002 (Diff Moves 031013)", MACHINE_SUPPORTS_SAVE )
+GAME( 2011, kof2k2bl3, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Neo Nebuwaks/Ismamj", "Kof2002 BLOOD S.PLUS (BL3)", MACHINE_SUPPORTS_SAVE )
+GAME( 2011, kof2k2bl4, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Neo Nebuwaks/Ismamj", "Kof2002 BLOOD S.PLUS (BL4)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2bld, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof2002 BLOOD PLUS", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2blood2,kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof2002 BLOOD PLUS 2", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2br, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2k2h, ROT0, "hack", "Kof2002 (Portuguese set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2br1, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "hack", "Kof2002 (Portuguese set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2br2, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2k2h, ROT0, "hack", "Kof2002 (Portuguese set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2bs, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Dodowang", "Kof2002 (Boss Dodowang Hack (red flame))", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, kof2k2c2, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGCG / EGHT", "Kof2002 (3rd Strike of the Orochi)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2cf1, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2k2h, ROT0, "C6F8", "Kof2002 (Iori p3 and p4 Color Changed)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2cf2, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2k2h, ROT0, "C6F8", "Kof2002 (Char color changed - rel.2 030827)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2cf3, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2k2h, ROT0, "C6F8", "Kof2002 (Char color changed - rel.3 030831)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2cfc, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2k2h, ROT0, "C6F8", "Kof2002 (Char color changed - rel.4 031017)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2ch, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Coolhot", "Kof2002 (Move rev - Based on CHL and Ricky)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2chl, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "CHL", "Kof2002 (Enhanced gameplay - 030410)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2cl2, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "CHL", "Kof2002 (Enhanced gameplay - Rev.2 030413)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2cl3, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "CHL", "Kof2002 (Enhanced gameplay - Rev.3 030413)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2cn, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "FoxUU / ZUOJIE", "Kof2002 (Chinese Translation by FoxUU & ZUOJIE)", MACHINE_SUPPORTS_SAVE )
+GAME( 2010, kof2k2cori, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ismamj / EGCG / EGHT", "Kof2002 (3rd Strike By IsmaMj)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2dbh, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2k2dbh,ROT0, "Dodowang","Kof2002 (Add Char- MVS timer flaw)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2e1, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Kurouri", "Kof2002 (Add Char set 4)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2e2, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Creamymami", "Kof2002 (Add Char set 5)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2e3, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Creamymami", "Kof2002 (Add Char - Ultra kill start max)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2ehr, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Raymonose", "Kof2002 (Add Char - Ultra kill start max - Style rev. 33%)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2er2, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Raymonose", "Kof2002 (Add Char - Ultra kill start max - Style rev. 66%)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2er3, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Raymonose", "Kof2002 (Add Char - Ultra kill start max - Style rev. 80% 030414)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2er4, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Raymonose", "Kof2002 (Add Char - Ultra kill start max - Style rev. 89% 030420)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2erx, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Raymonose", "Kof2002 (Add Char - Ultra kill start max - Style rev. xx%)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2evo, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Jimmyi", "Kof2002 (Evolution)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2evo2, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "FCHT / EGHT", "Kof2002 (Evolution v1.3, by FCHT/EGHT)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2fy, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2k2h, ROT0, "Unk", "Kof2002 (Lifebar + K', Vanessa, Iori, Kula and Angel color changed)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2gc, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2k2h, ROT0, "Lewis67", "Kof2002 (Color changed set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2gc2, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2k2h, ROT0, "Lewis67", "Kof2002 (Color changed set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2gf, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2k2h, ROT0, "Kumagorou", "Kof2002 (Color changed set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2green, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "KOF-ON Team", "Kof2002 (Green colour hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2008, kof2k2ht, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "FMG CO", "Kof2002 (HT)", MACHINE_SUPPORTS_SAVE )
+GAME( 2010, kof2k2ibp, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ismamj", "Kof2002 (Ice Blue Perfect)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2ic1, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2k2h, ROT0, "Fighters Kim", "Kof2002 (Color changed - Attack cremation ice blue - 80%)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2ic2, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2k2h, ROT0, "Fighters Kim", "Kof2002 (Color changed - Attack cremation ice blue - Old)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2ice, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2k2h, ROT0, "Fighters Kim", "Kof2002 (Color changed - Attack cremation ice blue)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2jc, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2k2h, ROT0, "Jui Lee", "Kof2002 (Char color changed for Athena 3P, Kula 3P and Kula 4P)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2js, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Jason / FCHT", "Kof2002 KOF REMIX ULTRA (v3.0)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2js2, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Jason / FCHT", "Kof2002 KOF REMIX ULTRA (v3.5)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2js4, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Jason", "Kof2002 KOF REMIX ULTRA (v2.5 SDM)", MACHINE_SUPPORTS_SAVE )
+GAME( 2005, kof2k2k2, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof2002 10th Style", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2k3o, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Jason/K3", "Kof2002 (Moves KOF 98 style - 030629)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2k32, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Jason/K3", "Kof2002 (Moves KOF 98 style - 030725)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2k33, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Jason/K3", "Kof2002 (Moves KOF 98 style - 030730)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2k34, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Jason/K3", "Kof2002 (Moves KOF 98 style - 030805)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2k35, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Jason/K3", "Kof2002 (Moves KOF 98 style - 030815)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2k36, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Jason/K3", "Kof2002 (Moves KOF 98 style - 030818)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2k37, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Jason/K3", "Kof2002 (Moves KOF 98 style - 030823)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2k38, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Jason/K3","Kof2002 (Moves KOF 98 style - 030824)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2k39, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Jason/K3", "Kof2002 (Moves KOF 98 style - 030829)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2k3a, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Jason/K3","Kof2002 (Moves KOF 98 style - 030907)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2k3b, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Jason/K3", "Kof2002 (Moves KOF 98 style - 030908)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2k3c, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Jason/K3","Kof2002 (Moves KOF 98 style - 031005)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2k3d, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Jason/K3","Kof2002 (Moves KOF 98 style - 031009)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2k3e, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Jason/K3","Kof2002 (Moves KOF 98 style - 031016)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2k3f, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Jason/K3", "Kof2002 (Ultra - Add Char - Diff Moves 031202)", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, kof2k2k3g, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Jason/K3", "Kof2002 (Remix Ultra - Add Char - Diff Moves 040418)", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, kof2k2kai, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof2002 (Boss Hack Kai Version)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2kc, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2k2h, ROT0, "Fighters Kim", "Kof2002 (Color changed set 4)", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, kof2k2kc2, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGCG-EGHT / KOF-ON Team", "Kof2002 (3rd Strike Remixed by Kof ON Team)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2kk, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "KOF-ON Team", "Kof2002 (Hack Johnkof Remixed by KalcenTin)" , MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2lb, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2k2lb, ROT0, "LB70", "Kof2002 RETROPOKTER: VER 1.0", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2leon, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "KOF-ON Team", "Kof2002 (dedicated to Leon9000)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2mcr, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Neht", "Kof2002 MERRY X'MAS MIX", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2moi2, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Kof2002ex2", "Kof2002 2002EX 2(Magic Orochi Iori 2.0)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2moir, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "LB70", "Kof2002 (Retropokter Ver 1.0 - Magic Orochi Iori Remake)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2mp1, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof2002 (Magic Plus)" , MACHINE_SUPPORTS_SAVE )
+GAME( 2010, kof2k2mp3, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ismamj", "Kof2002 (Magic Plus III)" , MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2mpu, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker", "Kof2002 (Plus)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2ngp, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof2002 (Portuguese negative colour)", MACHINE_SUPPORTS_SAVE )
+GAME( 2012, kof2k2nu, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack by BXX", "Kof2002 (Super Black Nude Mix)" , MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2olp, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof2002 (Orochi Leona 97 color style)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2omg, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "KOF-ON Team", "Kof2002 (hack omg)", MACHINE_SUPPORTS_SAVE )
+GAME( 2010, kof2k2omg8, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "KOF-ON Team", "Kof2002 (Omega v0.8)", MACHINE_SUPPORTS_SAVE )
+GAME( 2012, kof2k2omg9, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "KOF-ON Team", "Kof2002 (Omega v0.9)", MACHINE_SUPPORTS_SAVE )
+GAME( 2011, kof2k2omg9b, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "KOF-ON Team", "Kof2002 (Omega v0.9 beta)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2on, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "KOF-ON Team", "Kof2002 ONTEAM", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, kof2k2or, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGCG-EGHT", "Kof2002 (3rd strike of Orochi)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2ori, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof2002 (Orochi's Iori Remixed)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2ori2, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "FCHT", "Kof2002 (Orochi's Iori by (FCHT) - Remixed by NEHT (Set 2))", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2pa, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2k2dbh,ROT0, "hack", "Kof2002 (Plus (hack 2))", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2pjw, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Jason/K3 and Wesker", "Kof2002 Plus (Jason/K3 and Wesker)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2plb, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2k2dbh,ROT0, "bootleg", "Kof2002 Plus (set 3, bootleg)" , MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2pr, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Raymonose", "Kof2002 (Diff Moves 20% - 030607)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2pro, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Raymonose", "Kof2002 (Diff Moves 20% - 030607 Older?)", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, kof2k2ps2, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGCG-EGHT", "Kof2002 (PS2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, kof2k2ps2a, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2k2ps2a, ROT0, "EGHT", "Kof2002 (PlayStation 2 ver 0.4, EGHT hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, kof2k2ps2mp, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGCG-EGHT", "Kof2002 (PlayStation 2 Beta (Magic Plus))", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2pur, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Kawada7278", "Kof2002 (Boss Purple Kawada7278 Hack)" , MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2ra, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Ruin Angel", "Kof2002 (Diff Moves - Based on CHL set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2rgl, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "KOF-ON Team", "Kof2002 Magic Unique Crazy Rugal Plus (Kof on Team)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2rm, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Raymonose", "Kof2002 (Remix 33%)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2rm1, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Raymonose", "Kof2002 (Remix rev.1 - 66%)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2rm2, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Raymonose", "Kof2002 (Remix rev.2 - 80% - 030414)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2rm3, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Raymonose", "Kof2002 (Remix rev.3 - 89% - 030420)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2rm13, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "FCHT", "Kof2002 KOF REMIX ULTRA (1.3)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2rma, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof2002 KOF REMIX ULTRA (2010-07-23)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2rmb, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof2002 KOF REMIX ULTRA", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2rr, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Ricky", "Kof2002 (Diff Moves - Based on CHL set 3 - 030430)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2rr1, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Ricky", "Kof2002 (Diff Moves - Based on CHL set 3 - 030508)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2rr2, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Ricky", "Kof2002 (Diff Moves - Based on CHL set 3 - 030508 Boss)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2rr3, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Ricky", "Kof2002 (Diff Moves - Based on CHL set 3 - 030509)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2rr4, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Ricky", "Kof2002 (Diff Moves - Based on CHL set 3 - 030509 Boss)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2rr5, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Ricky", "Kof2002 (Diff Moves - Based on CHL set 3 - 030517)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2rr6, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Ricky", "Kof2002 (Diff Moves - Based on CHL set 3 - 030610)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2rr7, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Ricky", "Kof2002 (Diff Moves - Based on CHL set 3 - rev.u)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2rr8, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Ricky", "Kof2002 (Diff Moves - Based on CHL set 3 - rev.u1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2rs, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Slovakia", "Kof2002 (Iori Special Remix)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2rs2, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Slovakia", "Kof2002 Super Plus (Ultimate Edition v2.0 by Slovakia)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2ru, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Jason/K3", "Kof2002 Remix Ultra v2.5 (Add Char - Diff Moves ultra rev - 040820)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2rw, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Wesker", "Kof2002 (Add Char - Diff Moves - 0310xx)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2sb, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Streetboy", "Kof2002 (Diff Moves - Based on CHL set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2se2, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Creamymami", "Kof2002 (Add Char - Ultra kill start max - Ultra pow hack set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2seh, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Creamymami", "Kof2002 (Add Char - Ultra kill start max - Ultra pow hack set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2013, kof2k2sm, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Maitry Maker", "Kof2002 (Super Mix)" , MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2smf, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "KOF-ON Team/Abbas", "Kof2002 (SMF)" , MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2smg, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker/Abbas", "Kof2002 (SMG by Abbas)" , MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2smg2, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Arn", "Kof2002 (Recompilation of SMG by Arn)" , MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2soi, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "ACM1PT", "Kof2002 Super Orochi Iori (by ADM1PT)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2sp, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Wesker", "Kof2002 (Add Char - Special move change)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2spl, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "NeHt", "Kof2002 Super Plus (Ultimate Edition by NeHt)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2spls, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "JasonK, Danpaji1, Marcochen", "Kof2002 Super Plus (JasonK, Danpaji1, Marcochen)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2spo, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Wesker", "Kof2002 (Add Char - Special move change Old 030830)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2tc, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2k2h, ROT0, "T.Com", "Kof2002 (Char color changed - Attack spark color changed for Iori and Orochi-Chris)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2ul, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Raymonose", "Kof2002 (Diff Moves 030515)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2ule, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Raymonose", "Kof2002 (Add Char - Diff Move - Ultra kill start max - Ultra pow hack 030515)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2wuk, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Wesker", "Kof2002 (Ultra kill style - rev max2 - perfect)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2xxx, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Peggy / Kim", "Kof2002 (Perfect revised edition)", MACHINE_SUPPORTS_SAVE )
+///GAME( 2002, kof2002d, kof2002, neogeo_noslot, neogeo, neogeo_state, kof2002d, ROT0, "hack", "Kof2002 (NGM-2650)(NGH-2650) (decrypted C)", MACHINE_SUPPORTS_SAVE )
+///GAME( 2002, kf2k2plb, kof2002, neogeo_noslot, neogeo, neogeo_state, kf2k2pls, ROT0, "bootleg", "Kof2002 Plus (set 3, bootleg / hack)", MACHINE_SUPPORTS_SAVE )
+///GAME( 2002, kf2k2plc, kof2002, neogeo_noslot, neogeo, neogeo_state, kf2k2plc, ROT0, "bootleg", "Kof2002 Super (set 4, bootleg / hack)", MACHINE_SUPPORTS_SAVE ) \ No newline at end of file
diff --git a/docs/release/src/hbmame/drivers/kof2003.cpp b/docs/release/src/hbmame/drivers/kof2003.cpp
new file mode 100644
index 00000000000..887f59f239b
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/kof2003.cpp
@@ -0,0 +1,753 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+
+
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, kof2003b ) // hacks of kf2k3bl
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_bootleg_prot->kf2k3bl_install_protection(m_maincpu, m_banked_cart, cpuregion, cpuregion_size);
+
+ // decrypt m1 if needed
+ if (memregion("audiocrypt"))
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size);
+
+ // decrypt v roms if needed
+ u8 *ram = memregion("ymsnd")->base();
+ if (ram[0x91] != 0x33)
+ {
+ //printf("ym=%X\n",ram[0x91]);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 5);
+ }
+
+ // decrypt c roms if needed
+ ram = memregion("sprites")->base();
+ if (ram[0] != 0)
+ {
+ //printf("Sprites=%X\n",ram[0]);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, KOF2003_GFX_KEY);
+ }
+
+ m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size, 1);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, kof2003hb ) // hacks of kof2003
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 2; // for those sets with 512k of s1
+
+ // decrypt p roms if needed
+ u8 *ram = memregion("maincpu")->base();
+ if (ram[0x100] != 0x45)
+ {
+ //printf("Maincpu=%X\n",ram[0x100]);fflush(stdout);
+ m_pvc_prot->kof2003_decrypt_68k(cpuregion, cpuregion_size);
+ m_pvc_prot->install_pvc_protection(m_maincpu, m_banked_cart);
+ }
+
+ // decrypt m1 if needed
+ if (memregion("audiocrypt"))
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size);
+
+ // decrypt v roms if needed
+ ram = memregion("ymsnd")->base();
+ if (ram[0x91] != 0x33)
+ {
+ //printf("ym=%X\n",ram[0x91]);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 5);
+ }
+
+ // decrypt c roms if needed
+ ram = memregion("sprites")->base();
+ if (ram[0] != 0)
+ {
+ //printf("Sprites=%X\n",ram[0]);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, KOF2003_GFX_KEY);
+ }
+
+ // if no s rom, copy info from end of c roms
+ ram = memregion("fixed")->base();
+ if (ram[0x100] == 0)
+ {
+ //printf("Fixed1=%X\n",ram[0x100]);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+ }
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, kof2k3hd )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 2;
+ m_pvc_prot->kof2003h_decrypt_68k(cpuregion, cpuregion_size); // different to kof2k3d
+ m_pvc_prot->install_pvc_protection(m_maincpu, m_banked_cart);
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 5);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, kof2k3pcd ) // decrypted C & decrypted Bios
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 2;
+ m_pvc_prot->kf2k3pcb_decrypt_68k(cpuregion, cpuregion_size);
+ m_pvc_prot->install_pvc_protection(m_maincpu, m_banked_cart);
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size);
+
+ // Extra m1 decryption
+ uint8_t* rom = memregion("audiocpu")->base();
+ for (int i = 0; i < 0x90000; i++)
+ rom[i] = BITSWAP8(rom[i], 5, 6, 1, 4, 3, 0, 7, 2);
+
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 5);
+ m_sma_prot->kf2k3pcb_decrypt_s1data(spr_region, spr_region_size, fix_region, fix_region_size);
+ m_maincpu->space(AS_PROGRAM).install_rom(0xc00000, 0xc7ffff, 0x080000, memregion("mainbios")->base()); // 512k bios
+}
+
+
+
+ROM_START( kof2003d )
+ ROM_REGION( 0x700000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "271d.p0", 0x000000, 0x100000, CRC(7c2aee16) SHA1(b4373569c4a26829a93759ba6917879518f2fb20) )
+ ROM_LOAD16_WORD_SWAP( "271b.p1", 0x100000, 0x400000, CRC(92ed6ee3) SHA1(5e7e21eb40dfcc453ba73808760d5ddedd49c58a) )
+ ROM_LOAD16_WORD_SWAP( "271d.p2", 0x500000, 0x200000, CRC(0d0a5861) SHA1(823dd3d11574a42f98588a6d1f9bb5d721f34be2) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "271-m1c.m1", CRC(f5515629) SHA1(7516bf1b0207a3c8d41dc30c478f8d8b1f71304b) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "271-v1c.v1", 0x000000, 0x800000, CRC(ffa3f8c7) SHA1(7cf4a933973ca23b7f87c81151d8659e6ec4bd20) )
+ ROM_LOAD( "271-v2c.v2", 0x800000, 0x800000, CRC(5382c7d1) SHA1(1bf999705eda80ba1e7b0d6bdd010d9bfb18bd76) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "271b.c1", 0x0000000, 0x800000, CRC(e42fc226) SHA1(1cd9364993e141facdcdd53ec2277df7b275d8a7) )
+ ROM_LOAD16_BYTE( "271b.c2", 0x0000001, 0x800000, CRC(1b5e3b58) SHA1(0eb254477a9479541291e43e415310852a0f0bed) )
+ ROM_LOAD16_BYTE( "271b.c3", 0x1000000, 0x800000, CRC(d334fdd9) SHA1(1efe30b4f56a55e25ab518cf6999de797b5e407c) )
+ ROM_LOAD16_BYTE( "271b.c4", 0x1000001, 0x800000, CRC(0d457699) SHA1(ec73d0c9fc7094d0ac6c0986a6e07cde25893e57) )
+ ROM_LOAD16_BYTE( "271b.c5", 0x2000000, 0x800000, CRC(8a91aae4) SHA1(802f4baacf801646be1ef686e105b2e867a6a5df) )
+ ROM_LOAD16_BYTE( "271b.c6", 0x2000001, 0x800000, CRC(9f8674b8) SHA1(65964f40b2227d020023fb436579927e65807dcd) )
+ ROM_LOAD16_BYTE( "271d.c7", 0x3000000, 0x800000, CRC(8ee6b43c) SHA1(c78b749c7c8e1d8ab8335b96da03764cc8e9eb21) )
+ ROM_LOAD16_BYTE( "271d.c8", 0x3000001, 0x800000, CRC(6d8d2d60) SHA1(841698eead0f7d422937ce2f2329e17c383d90a6) )
+ROM_END
+
+ROM_START( kof2003f )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "271f.p1", 0x000000, 0x400000, CRC(d29a0d06) SHA1(a5ba68ceac0b4bceb0c37d65844d96835eb244e4) )
+ ROM_LOAD16_WORD_SWAP( "271f.p2", 0x400000, 0x400000, CRC(95477dd4) SHA1(3a57befa3e0772b2989ba5b76afd95f3aed1936b) )
+
+ NEO_SFIX_128K( "271f.s1", CRC(7c7829aa) SHA1(22f8d38d1d0891295d0593741d9477fbe6b4f48c) )
+
+ NEO_BIOS_AUDIO_512K( "271br.m1", CRC(0e86af8f) SHA1(769102b67bb1a699cfa5674d66cdb46ae633cb65) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "271f.v1", 0x000000, 0x1000000, CRC(2964f36e) SHA1(bfc52f81354eb57e27acb3b80fe1547b9e070293) )
+
+ ROM_REGION( 0x6000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "271pcd.c1", 0x0000000, 0x1000000, CRC(c29acd28) SHA1(8a10409c5a9ad95fa9b56e94c14f1b96101fb179) )
+ ROM_LOAD16_BYTE( "271pcd.c2", 0x0000001, 0x1000000, CRC(328e80b1) SHA1(c7f8069488be1a88a2ea03718b6a131f5c96bd3f) )
+ ROM_LOAD16_BYTE( "271pcd.c3", 0x2000000, 0x1000000, CRC(020a11f1) SHA1(85cfae76234f72b0039ebc02f931bb2a9c10b1af) )
+ ROM_LOAD16_BYTE( "271pcd.c4", 0x2000001, 0x1000000, CRC(991b5ed2) SHA1(99c4c470bc9cb388773e27de6df4a16803fc7b45) )
+ ROM_LOAD16_BYTE( "271pcd.c5", 0x4000000, 0x1000000, CRC(c2de8b66) SHA1(40c2ea48fc20d470163a9dbb40c0276fc4cfceb9) )
+ ROM_LOAD16_BYTE( "271pcd.c6", 0x4000001, 0x1000000, CRC(3ff750db) SHA1(714f14a2eb2df6f25d10a6b6aff4b3adfbc7a5dc) )
+ROM_END
+
+ROM_START( kof2003rebh ) // no watchdog
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "271rebh.p1", 0x000000, 0x800000, CRC(cd7c9f42) SHA1(d99f25a0d7c640c8594aef25e818ee017845de90) )
+
+ NEO_SFIX_128K( "271rebh.s1", CRC(e146f5cc) SHA1(1ca3e36ec87b40c8eaa7c92d1bf7a066fdb0b26c) )
+
+ NEO_BIOS_AUDIO_128K( "271rebh.m1", CRC(396e17cd) SHA1(b2962aef711883402e67fcfb475265abe68e2cba) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "271b.v1", 0x000000, 0x400000, CRC(d2b8aa5e) SHA1(498f0556c1de56822141f8043f1ce20444f4ed0a) )
+ ROM_LOAD( "271b.v2", 0x400000, 0x400000, CRC(71956ee2) SHA1(a890941e60db358cf45b58909f4719f4826f3bb1) )
+ ROM_LOAD( "271b.v3", 0x800000, 0x400000, CRC(ddbbb199) SHA1(0eea4b064bdb8daa03c354fe0a0aa27c4c665bda) )
+ ROM_LOAD( "271b.v4", 0xc00000, 0x400000, CRC(01b90c4f) SHA1(387164aa1995d8c11ed939b3afbc294d86d2e27f) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "271b.c1", 0x0000000, 0x800000, CRC(e42fc226) SHA1(1cd9364993e141facdcdd53ec2277df7b275d8a7) )
+ ROM_LOAD16_BYTE( "271b.c2", 0x0000001, 0x800000, CRC(1b5e3b58) SHA1(0eb254477a9479541291e43e415310852a0f0bed) )
+ ROM_LOAD16_BYTE( "271b.c3", 0x1000000, 0x800000, CRC(d334fdd9) SHA1(1efe30b4f56a55e25ab518cf6999de797b5e407c) )
+ ROM_LOAD16_BYTE( "271b.c4", 0x1000001, 0x800000, CRC(0d457699) SHA1(ec73d0c9fc7094d0ac6c0986a6e07cde25893e57) )
+ ROM_LOAD16_BYTE( "271b.c5", 0x2000000, 0x800000, CRC(8a91aae4) SHA1(802f4baacf801646be1ef686e105b2e867a6a5df) )
+ ROM_LOAD16_BYTE( "271b.c6", 0x2000001, 0x800000, CRC(9f8674b8) SHA1(65964f40b2227d020023fb436579927e65807dcd) )
+ ROM_LOAD16_BYTE( "271b.c7", 0x3000000, 0x800000, CRC(374ea523) SHA1(613827d72c6181f3e08353750c9af0c4dbad020b) )
+ ROM_LOAD16_BYTE( "271b.c8", 0x3000001, 0x800000, CRC(75211f4d) SHA1(d82f044e816ee539ff131d9c931200c818d34cd0) )
+ROM_END
+
+ROM_START( kof2k3b ) /* The King of Fighters 2003 BOOTLEG - (kof2k3b) - Hack by Gledson01 - (Can choose Kusanagi, Chizuru, Maki, Mukai and Adelheid) */
+ ROM_REGION( 0x700000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "271b.p1", 0x100000, 0x400000, CRC(92ed6ee3) SHA1(5e7e21eb40dfcc453ba73808760d5ddedd49c58a) )
+ ROM_LOAD16_WORD_SWAP( "271b.p2", 0x500000, 0x200000, CRC(fb01a5b3) SHA1(3c8e92362f8169f5e64d6e1d1fea41edd2e7a6a3) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "271b.s1", CRC(482c48a5) SHA1(27e2f5295a9a838e112be28dafc111893a388a16) )
+
+ NEO_BIOS_AUDIO_128K( "271b.m1", CRC(3a4969ff) SHA1(2fc107a023a82053a8df63025829bcf12cee9610) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "271b.v1", 0x000000, 0x400000, CRC(d2b8aa5e) SHA1(498f0556c1de56822141f8043f1ce20444f4ed0a) )
+ ROM_LOAD( "271b.v2", 0x400000, 0x400000, CRC(71956ee2) SHA1(a890941e60db358cf45b58909f4719f4826f3bb1) )
+ ROM_LOAD( "271b.v3", 0x800000, 0x400000, CRC(ddbbb199) SHA1(0eea4b064bdb8daa03c354fe0a0aa27c4c665bda) )
+ ROM_LOAD( "271b.v4", 0xc00000, 0x400000, CRC(01b90c4f) SHA1(387164aa1995d8c11ed939b3afbc294d86d2e27f) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "271b.c1", 0x0000000, 0x800000, CRC(e42fc226) SHA1(1cd9364993e141facdcdd53ec2277df7b275d8a7) )
+ ROM_LOAD16_BYTE( "271b.c2", 0x0000001, 0x800000, CRC(1b5e3b58) SHA1(0eb254477a9479541291e43e415310852a0f0bed) )
+ ROM_LOAD16_BYTE( "271b.c3", 0x1000000, 0x800000, CRC(d334fdd9) SHA1(1efe30b4f56a55e25ab518cf6999de797b5e407c) )
+ ROM_LOAD16_BYTE( "271b.c4", 0x1000001, 0x800000, CRC(0d457699) SHA1(ec73d0c9fc7094d0ac6c0986a6e07cde25893e57) )
+ ROM_LOAD16_BYTE( "271b.c5", 0x2000000, 0x800000, CRC(8a91aae4) SHA1(802f4baacf801646be1ef686e105b2e867a6a5df) )
+ ROM_LOAD16_BYTE( "271b.c6", 0x2000001, 0x800000, CRC(9f8674b8) SHA1(65964f40b2227d020023fb436579927e65807dcd) )
+ ROM_LOAD16_BYTE( "271b.c7", 0x3000000, 0x800000, CRC(374ea523) SHA1(613827d72c6181f3e08353750c9af0c4dbad020b) )
+ ROM_LOAD16_BYTE( "271b.c8", 0x3000001, 0x800000, CRC(75211f4d) SHA1(d82f044e816ee539ff131d9c931200c818d34cd0) )
+ROM_END
+
+ROM_START( kof2k3bl2 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "271bl2.p1", 0x100000, 0x400000, CRC(8383c34b) SHA1(62cdc1d37e9b7385d83dda2e17fea6c0a16fee83) )
+ ROM_LOAD16_WORD_SWAP( "271bl2.p2", 0x500000, 0x200000, CRC(7ba616fe) SHA1(c613a5eb7db5dbfb58e9ccb7f46b948ed095b4a4) )
+ ROM_IGNORE( 0x100000 )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "271bl2.s1", CRC(c125df44) SHA1(9294a4da63fdbcd7dbac7a625d65c44884687eeb) )
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "271-m1c.m1", CRC(f5515629) SHA1(7516bf1b0207a3c8d41dc30c478f8d8b1f71304b) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "271-v1c.v1", 0x000000, 0x800000, CRC(ffa3f8c7) SHA1(7cf4a933973ca23b7f87c81151d8659e6ec4bd20) )
+ ROM_LOAD( "271-v2c.v2", 0x800000, 0x800000, CRC(5382c7d1) SHA1(1bf999705eda80ba1e7b0d6bdd010d9bfb18bd76) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "271-c1c.c1", 0x0000000, 0x800000, CRC(b1dc25d0) SHA1(50adc3c60d5b4b3abd10a49db2267306c6dbd772) )
+ ROM_LOAD16_BYTE( "271-c2c.c2", 0x0000001, 0x800000, CRC(d5362437) SHA1(66db36522dc09106388c707252df9fe1c88b4856) )
+ ROM_LOAD16_BYTE( "271-c3c.c3", 0x1000000, 0x800000, CRC(0a1fbeab) SHA1(9fe30d36ba98d00fda010832ff2f27783dd577c1) )
+ ROM_LOAD16_BYTE( "271-c4c.c4", 0x1000001, 0x800000, CRC(87b19a0c) SHA1(b72a8e7d9124ce859b5149bb4381ba481c161ea5) )
+ ROM_LOAD16_BYTE( "271-c5c.c5", 0x2000000, 0x800000, CRC(704ea371) SHA1(e75b80422f0d72eac826f8ffadf79efeccaab124) )
+ ROM_LOAD16_BYTE( "271-c6c.c6", 0x2000001, 0x800000, CRC(20a1164c) SHA1(c9843b37612a16fc95f6851793b1cfb5d49d811d) )
+ ROM_LOAD16_BYTE( "271-c7c.c7", 0x3000000, 0x800000, CRC(189aba7f) SHA1(7152195a57ad36b28290810fe87ed8c206262ba9) )
+ ROM_LOAD16_BYTE( "271-c8c.c8", 0x3000001, 0x800000, CRC(20ec4fdc) SHA1(deb5f7ec5a090e419b9d1a6a74877bee081198e2) )
+ROM_END
+
+ROM_START( kof2k3br )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "271br.p1", 0x000000, 0x800000, CRC(a131786e) SHA1(3754e6361063221138c95c52a3edb3e88a74048a) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "271br.m1", CRC(0e86af8f) SHA1(769102b67bb1a699cfa5674d66cdb46ae633cb65) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "271b.v1", 0x000000, 0x400000, CRC(d2b8aa5e) SHA1(498f0556c1de56822141f8043f1ce20444f4ed0a) )
+ ROM_LOAD( "271b.v2", 0x400000, 0x400000, CRC(71956ee2) SHA1(a890941e60db358cf45b58909f4719f4826f3bb1) )
+ ROM_LOAD( "271b.v3", 0x800000, 0x400000, CRC(ddbbb199) SHA1(0eea4b064bdb8daa03c354fe0a0aa27c4c665bda) )
+ ROM_LOAD( "271b.v4", 0xc00000, 0x400000, CRC(01b90c4f) SHA1(387164aa1995d8c11ed939b3afbc294d86d2e27f) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "271b.c1", 0x0000000, 0x800000, CRC(e42fc226) SHA1(1cd9364993e141facdcdd53ec2277df7b275d8a7) )
+ ROM_LOAD16_BYTE( "271b.c2", 0x0000001, 0x800000, CRC(1b5e3b58) SHA1(0eb254477a9479541291e43e415310852a0f0bed) )
+ ROM_LOAD16_BYTE( "271b.c3", 0x1000000, 0x800000, CRC(d334fdd9) SHA1(1efe30b4f56a55e25ab518cf6999de797b5e407c) )
+ ROM_LOAD16_BYTE( "271b.c4", 0x1000001, 0x800000, CRC(0d457699) SHA1(ec73d0c9fc7094d0ac6c0986a6e07cde25893e57) )
+ ROM_LOAD16_BYTE( "271b.c5", 0x2000000, 0x800000, CRC(8a91aae4) SHA1(802f4baacf801646be1ef686e105b2e867a6a5df) )
+ ROM_LOAD16_BYTE( "271b.c6", 0x2000001, 0x800000, CRC(9f8674b8) SHA1(65964f40b2227d020023fb436579927e65807dcd) )
+ ROM_LOAD16_BYTE( "271br.c7", 0x3000000, 0x800000, CRC(f3d81b6e) SHA1(62bf0c9d1d9f7a016d125df64c8328e01e003e43) )
+ ROM_LOAD16_BYTE( "271br.c8", 0x3000001, 0x800000, CRC(5310c6dc) SHA1(e9cb89392fa5604d3ac3ba58acdb1b739d1267be) )
+ROM_END
+
+ROM_START( kof2k3bs1 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "271bs1.p1", 0x000000, 0x800000, CRC(54f55bad) SHA1(b5005d6d8b6a6855fd5d244cc68774f8372fe5d4) )
+
+ NEO_SFIX_128K( "271bs1.s1", CRC(8b176a55) SHA1(600a0c9c2e5b17dc2c345756d71a08a9c4a3f26e) )
+
+ NEO_BIOS_AUDIO_512K( "271br.m1", CRC(0e86af8f) SHA1(769102b67bb1a699cfa5674d66cdb46ae633cb65) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "271bs1.v1", 0x000000, 0x800000, CRC(dd6c6a85) SHA1(e32b16d0b716a4f3b95868457347303d020147fb) )
+ ROM_LOAD( "271bs1.v2", 0x800000, 0x800000, CRC(0e84f8c1) SHA1(28c964fe89c800b445d3a65c965de32b4e504726) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "271b.c1", 0x0000000, 0x800000, CRC(e42fc226) SHA1(1cd9364993e141facdcdd53ec2277df7b275d8a7) )
+ ROM_LOAD16_BYTE( "271b.c2", 0x0000001, 0x800000, CRC(1b5e3b58) SHA1(0eb254477a9479541291e43e415310852a0f0bed) )
+ ROM_LOAD16_BYTE( "271b.c3", 0x1000000, 0x800000, CRC(d334fdd9) SHA1(1efe30b4f56a55e25ab518cf6999de797b5e407c) )
+ ROM_LOAD16_BYTE( "271b.c4", 0x1000001, 0x800000, CRC(0d457699) SHA1(ec73d0c9fc7094d0ac6c0986a6e07cde25893e57) )
+ ROM_LOAD16_BYTE( "271b.c5", 0x2000000, 0x800000, CRC(8a91aae4) SHA1(802f4baacf801646be1ef686e105b2e867a6a5df) )
+ ROM_LOAD16_BYTE( "271b.c6", 0x2000001, 0x800000, CRC(9f8674b8) SHA1(65964f40b2227d020023fb436579927e65807dcd) )
+ ROM_LOAD16_BYTE( "271bs1.c7", 0x3000000, 0x800000, CRC(0ff993d7) SHA1(c7d6ce90b84d566dcee85dba5591f8f394fcf032) )
+ ROM_LOAD16_BYTE( "271bs1.c8", 0x3000001, 0x800000, CRC(22e36002) SHA1(bb3a9e1ded0af2db058cfbe773ed5c1a1b4e888a) )
+ROM_END
+
+ROM_START( kof2k3bs2 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "271bs2.p1", 0x000000, 0x800000, CRC(d49993ec) SHA1(71454cd40715799b10fb21864507b7864917c1ad) )
+
+ NEO_SFIX_128K( "271bs1.s1", CRC(8b176a55) SHA1(600a0c9c2e5b17dc2c345756d71a08a9c4a3f26e) )
+
+ NEO_BIOS_AUDIO_512K( "271br.m1", CRC(0e86af8f) SHA1(769102b67bb1a699cfa5674d66cdb46ae633cb65) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "271bs1.v1", 0x000000, 0x800000, CRC(dd6c6a85) SHA1(e32b16d0b716a4f3b95868457347303d020147fb) )
+ ROM_LOAD( "271bs1.v2", 0x800000, 0x800000, CRC(0e84f8c1) SHA1(28c964fe89c800b445d3a65c965de32b4e504726) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "271b.c1", 0x0000000, 0x800000, CRC(e42fc226) SHA1(1cd9364993e141facdcdd53ec2277df7b275d8a7) )
+ ROM_LOAD16_BYTE( "271b.c2", 0x0000001, 0x800000, CRC(1b5e3b58) SHA1(0eb254477a9479541291e43e415310852a0f0bed) )
+ ROM_LOAD16_BYTE( "271b.c3", 0x1000000, 0x800000, CRC(d334fdd9) SHA1(1efe30b4f56a55e25ab518cf6999de797b5e407c) )
+ ROM_LOAD16_BYTE( "271b.c4", 0x1000001, 0x800000, CRC(0d457699) SHA1(ec73d0c9fc7094d0ac6c0986a6e07cde25893e57) )
+ ROM_LOAD16_BYTE( "271b.c5", 0x2000000, 0x800000, CRC(8a91aae4) SHA1(802f4baacf801646be1ef686e105b2e867a6a5df) )
+ ROM_LOAD16_BYTE( "271b.c6", 0x2000001, 0x800000, CRC(9f8674b8) SHA1(65964f40b2227d020023fb436579927e65807dcd) )
+ ROM_LOAD16_BYTE( "271bs1.c7", 0x3000000, 0x800000, CRC(0ff993d7) SHA1(c7d6ce90b84d566dcee85dba5591f8f394fcf032) )
+ ROM_LOAD16_BYTE( "271bs1.c8", 0x3000001, 0x800000, CRC(22e36002) SHA1(bb3a9e1ded0af2db058cfbe773ed5c1a1b4e888a) )
+ROM_END
+
+ROM_START( kof2k3bs3 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "271bs3.p1", 0x000000, 0x800000, CRC(16a09744) SHA1(dbdb7700fc7244ce295044eb0b473914749959d9) )
+
+ NEO_SFIX_128K( "271bs1.s1", CRC(8b176a55) SHA1(600a0c9c2e5b17dc2c345756d71a08a9c4a3f26e) )
+
+ NEO_BIOS_AUDIO_512K( "271br.m1", CRC(0e86af8f) SHA1(769102b67bb1a699cfa5674d66cdb46ae633cb65) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "271bs1.v1", 0x000000, 0x800000, CRC(dd6c6a85) SHA1(e32b16d0b716a4f3b95868457347303d020147fb) )
+ ROM_LOAD( "271bs1.v2", 0x800000, 0x800000, CRC(0e84f8c1) SHA1(28c964fe89c800b445d3a65c965de32b4e504726) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "271b.c1", 0x0000000, 0x800000, CRC(e42fc226) SHA1(1cd9364993e141facdcdd53ec2277df7b275d8a7) )
+ ROM_LOAD16_BYTE( "271b.c2", 0x0000001, 0x800000, CRC(1b5e3b58) SHA1(0eb254477a9479541291e43e415310852a0f0bed) )
+ ROM_LOAD16_BYTE( "271b.c3", 0x1000000, 0x800000, CRC(d334fdd9) SHA1(1efe30b4f56a55e25ab518cf6999de797b5e407c) )
+ ROM_LOAD16_BYTE( "271b.c4", 0x1000001, 0x800000, CRC(0d457699) SHA1(ec73d0c9fc7094d0ac6c0986a6e07cde25893e57) )
+ ROM_LOAD16_BYTE( "271b.c5", 0x2000000, 0x800000, CRC(8a91aae4) SHA1(802f4baacf801646be1ef686e105b2e867a6a5df) )
+ ROM_LOAD16_BYTE( "271b.c6", 0x2000001, 0x800000, CRC(9f8674b8) SHA1(65964f40b2227d020023fb436579927e65807dcd) )
+ ROM_LOAD16_BYTE( "271bs1.c7", 0x3000000, 0x800000, CRC(0ff993d7) SHA1(c7d6ce90b84d566dcee85dba5591f8f394fcf032) )
+ ROM_LOAD16_BYTE( "271bs1.c8", 0x3000001, 0x800000, CRC(22e36002) SHA1(bb3a9e1ded0af2db058cfbe773ed5c1a1b4e888a) )
+ROM_END
+
+ROM_START( kof2k3bs4 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "271bs4.p1", 0x000000, 0x800000, CRC(536d02e7) SHA1(5432c79d3808da3bbf47521a0e2f0ed3f9e7a435) )
+
+ NEO_SFIX_128K( "271bs1.s1", CRC(8b176a55) SHA1(600a0c9c2e5b17dc2c345756d71a08a9c4a3f26e) )
+
+ NEO_BIOS_AUDIO_512K( "271br.m1", CRC(0e86af8f) SHA1(769102b67bb1a699cfa5674d66cdb46ae633cb65) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "271bs1.v1", 0x000000, 0x800000, CRC(dd6c6a85) SHA1(e32b16d0b716a4f3b95868457347303d020147fb) )
+ ROM_LOAD( "271bs1.v2", 0x800000, 0x800000, CRC(0e84f8c1) SHA1(28c964fe89c800b445d3a65c965de32b4e504726) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "271b.c1", 0x0000000, 0x800000, CRC(e42fc226) SHA1(1cd9364993e141facdcdd53ec2277df7b275d8a7) )
+ ROM_LOAD16_BYTE( "271b.c2", 0x0000001, 0x800000, CRC(1b5e3b58) SHA1(0eb254477a9479541291e43e415310852a0f0bed) )
+ ROM_LOAD16_BYTE( "271b.c3", 0x1000000, 0x800000, CRC(d334fdd9) SHA1(1efe30b4f56a55e25ab518cf6999de797b5e407c) )
+ ROM_LOAD16_BYTE( "271b.c4", 0x1000001, 0x800000, CRC(0d457699) SHA1(ec73d0c9fc7094d0ac6c0986a6e07cde25893e57) )
+ ROM_LOAD16_BYTE( "271b.c5", 0x2000000, 0x800000, CRC(8a91aae4) SHA1(802f4baacf801646be1ef686e105b2e867a6a5df) )
+ ROM_LOAD16_BYTE( "271b.c6", 0x2000001, 0x800000, CRC(9f8674b8) SHA1(65964f40b2227d020023fb436579927e65807dcd) )
+ ROM_LOAD16_BYTE( "271bs1.c7", 0x3000000, 0x800000, CRC(0ff993d7) SHA1(c7d6ce90b84d566dcee85dba5591f8f394fcf032) )
+ ROM_LOAD16_BYTE( "271bs1.c8", 0x3000001, 0x800000, CRC(22e36002) SHA1(bb3a9e1ded0af2db058cfbe773ed5c1a1b4e888a) )
+ROM_END
+
+ROM_START( kof2k3d )
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD32_WORD_SWAP( "271-p1c.p1", 0x000000, 0x400000, CRC(530ecc14) SHA1(812cf7e9902af3f5e9e330b7c05c2171b139ad2b) )
+ ROM_LOAD32_WORD_SWAP( "271-p2c.p2", 0x000002, 0x400000, CRC(fd568da9) SHA1(46364906a1e81dc251117e91a1a7b43af1373ada) )
+ ROM_LOAD16_WORD_SWAP( "271-p3c.p3", 0x800000, 0x100000, CRC(aec5b4a9) SHA1(74087f785590eda5898ce146029818f86ced42b6) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "271-m1c.m1", CRC(f5515629) SHA1(7516bf1b0207a3c8d41dc30c478f8d8b1f71304b) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "271-v1c.v1", 0x000000, 0x800000, CRC(ffa3f8c7) SHA1(7cf4a933973ca23b7f87c81151d8659e6ec4bd20) )
+ ROM_LOAD( "271-v2c.v2", 0x800000, 0x800000, CRC(5382c7d1) SHA1(1bf999705eda80ba1e7b0d6bdd010d9bfb18bd76) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "271b.c1", 0x0000000, 0x800000, CRC(e42fc226) SHA1(1cd9364993e141facdcdd53ec2277df7b275d8a7) )
+ ROM_LOAD16_BYTE( "271b.c2", 0x0000001, 0x800000, CRC(1b5e3b58) SHA1(0eb254477a9479541291e43e415310852a0f0bed) )
+ ROM_LOAD16_BYTE( "271b.c3", 0x1000000, 0x800000, CRC(d334fdd9) SHA1(1efe30b4f56a55e25ab518cf6999de797b5e407c) )
+ ROM_LOAD16_BYTE( "271b.c4", 0x1000001, 0x800000, CRC(0d457699) SHA1(ec73d0c9fc7094d0ac6c0986a6e07cde25893e57) )
+ ROM_LOAD16_BYTE( "271b.c5", 0x2000000, 0x800000, CRC(8a91aae4) SHA1(802f4baacf801646be1ef686e105b2e867a6a5df) )
+ ROM_LOAD16_BYTE( "271b.c6", 0x2000001, 0x800000, CRC(9f8674b8) SHA1(65964f40b2227d020023fb436579927e65807dcd) )
+ ROM_LOAD16_BYTE( "271d.c7", 0x3000000, 0x800000, CRC(8ee6b43c) SHA1(c78b749c7c8e1d8ab8335b96da03764cc8e9eb21) )
+ ROM_LOAD16_BYTE( "271d.c8", 0x3000001, 0x800000, CRC(6d8d2d60) SHA1(841698eead0f7d422937ce2f2329e17c383d90a6) )
+ROM_END
+
+ROM_START( kof2k3evo )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "271evo.p1", 0x000000, 0x800000, CRC(ce221039) SHA1(755feabb4a3b2b02f72bd2747b13051fe3d0116c) )
+
+ NEO_SFIX_128K( "271evo.s1", CRC(2849fbfb) SHA1(1c46decf77c9802589bbd445344f6e3b9e82afd2) )
+
+ NEO_BIOS_AUDIO_128K( "271rebh.m1", CRC(396e17cd) SHA1(b2962aef711883402e67fcfb475265abe68e2cba) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "271b.v1", 0x000000, 0x400000, CRC(d2b8aa5e) SHA1(498f0556c1de56822141f8043f1ce20444f4ed0a) )
+ ROM_LOAD( "271b.v2", 0x400000, 0x400000, CRC(71956ee2) SHA1(a890941e60db358cf45b58909f4719f4826f3bb1) )
+ ROM_LOAD( "271b.v3", 0x800000, 0x400000, CRC(ddbbb199) SHA1(0eea4b064bdb8daa03c354fe0a0aa27c4c665bda) )
+ ROM_LOAD( "271b.v4", 0xc00000, 0x400000, CRC(01b90c4f) SHA1(387164aa1995d8c11ed939b3afbc294d86d2e27f) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "271b.c1", 0x0000000, 0x800000, CRC(e42fc226) SHA1(1cd9364993e141facdcdd53ec2277df7b275d8a7) )
+ ROM_LOAD16_BYTE( "271b.c2", 0x0000001, 0x800000, CRC(1b5e3b58) SHA1(0eb254477a9479541291e43e415310852a0f0bed) )
+ ROM_LOAD16_BYTE( "271b.c3", 0x1000000, 0x800000, CRC(d334fdd9) SHA1(1efe30b4f56a55e25ab518cf6999de797b5e407c) )
+ ROM_LOAD16_BYTE( "271b.c4", 0x1000001, 0x800000, CRC(0d457699) SHA1(ec73d0c9fc7094d0ac6c0986a6e07cde25893e57) )
+ ROM_LOAD16_BYTE( "271b.c5", 0x2000000, 0x800000, CRC(8a91aae4) SHA1(802f4baacf801646be1ef686e105b2e867a6a5df) )
+ ROM_LOAD16_BYTE( "271b.c6", 0x2000001, 0x800000, CRC(9f8674b8) SHA1(65964f40b2227d020023fb436579927e65807dcd) )
+ ROM_LOAD16_BYTE( "271b.c7", 0x3000000, 0x800000, CRC(374ea523) SHA1(613827d72c6181f3e08353750c9af0c4dbad020b) )
+ ROM_LOAD16_BYTE( "271b.c8", 0x3000001, 0x800000, CRC(75211f4d) SHA1(d82f044e816ee539ff131d9c931200c818d34cd0) )
+ROM_END
+
+ROM_START( kof2k3gc ) /* The King of Fighters 2003 BOOTLEG - (kof2k3gc) - Colour fix by Gledson01 - (Character colour change for Terry (4P), Athena (3P), Ash (3P), Leona (3P), K' (4P) and King (2P) ) */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "271gc.p1", 0x100000, 0x400000, CRC(ba621186) SHA1(061e072fb5baaf8454f362a9a81bf51a324cc73d) )
+ ROM_LOAD16_WORD_SWAP( "271gc.p2", 0x500000, 0x200000, CRC(5d3d8bb3) SHA1(7f2341f14ca12ff5721eb038b3496228a1f34b60) )
+ ROM_IGNORE( 0x100000 )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "271b.s1", CRC(482c48a5) SHA1(27e2f5295a9a838e112be28dafc111893a388a16) )
+
+ NEO_BIOS_AUDIO_128K( "271b.m1", CRC(3a4969ff) SHA1(2fc107a023a82053a8df63025829bcf12cee9610) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "271b.v1", 0x000000, 0x400000, CRC(d2b8aa5e) SHA1(498f0556c1de56822141f8043f1ce20444f4ed0a) )
+ ROM_LOAD( "271b.v2", 0x400000, 0x400000, CRC(71956ee2) SHA1(a890941e60db358cf45b58909f4719f4826f3bb1) )
+ ROM_LOAD( "271b.v3", 0x800000, 0x400000, CRC(ddbbb199) SHA1(0eea4b064bdb8daa03c354fe0a0aa27c4c665bda) )
+ ROM_LOAD( "271b.v4", 0xc00000, 0x400000, CRC(01b90c4f) SHA1(387164aa1995d8c11ed939b3afbc294d86d2e27f) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "271b.c1", 0x0000000, 0x800000, CRC(e42fc226) SHA1(1cd9364993e141facdcdd53ec2277df7b275d8a7) )
+ ROM_LOAD16_BYTE( "271b.c2", 0x0000001, 0x800000, CRC(1b5e3b58) SHA1(0eb254477a9479541291e43e415310852a0f0bed) )
+ ROM_LOAD16_BYTE( "271b.c3", 0x1000000, 0x800000, CRC(d334fdd9) SHA1(1efe30b4f56a55e25ab518cf6999de797b5e407c) )
+ ROM_LOAD16_BYTE( "271b.c4", 0x1000001, 0x800000, CRC(0d457699) SHA1(ec73d0c9fc7094d0ac6c0986a6e07cde25893e57) )
+ ROM_LOAD16_BYTE( "271b.c5", 0x2000000, 0x800000, CRC(8a91aae4) SHA1(802f4baacf801646be1ef686e105b2e867a6a5df) )
+ ROM_LOAD16_BYTE( "271b.c6", 0x2000001, 0x800000, CRC(9f8674b8) SHA1(65964f40b2227d020023fb436579927e65807dcd) )
+ ROM_LOAD16_BYTE( "271b.c7", 0x3000000, 0x800000, CRC(374ea523) SHA1(613827d72c6181f3e08353750c9af0c4dbad020b) )
+ ROM_LOAD16_BYTE( "271b.c8", 0x3000001, 0x800000, CRC(75211f4d) SHA1(d82f044e816ee539ff131d9c931200c818d34cd0) )
+ROM_END
+
+ROM_START( kof2k3hd ) // decrypted version of kof2003h
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD32_WORD_SWAP( "271-p1k.p1", 0x000000, 0x400000, CRC(d0d0ae3e) SHA1(538d054ac50c91694fbbfefcce548b063713e14e) )
+ ROM_LOAD32_WORD_SWAP( "271-p2k.p2", 0x000002, 0x400000, CRC(fb3f79d9) SHA1(f253d10e732d6e23ae82d74ac9269d21f69ddb4d) )
+ ROM_LOAD16_WORD_SWAP( "271-p3k.p3", 0x800000, 0x100000, CRC(232702ad) SHA1(6045046027dac1cbd4cbd14b5c1ece522bc6197f) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "271-m1k.m1", CRC(48d9affe) SHA1(68f01560b91bbada39001ce01bdeeed5c9bb29f2) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "271-v1c.v1", 0x000000, 0x800000, CRC(ffa3f8c7) SHA1(7cf4a933973ca23b7f87c81151d8659e6ec4bd20) )
+ ROM_LOAD( "271-v2c.v2", 0x800000, 0x800000, CRC(5382c7d1) SHA1(1bf999705eda80ba1e7b0d6bdd010d9bfb18bd76) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "271b.c1", 0x0000000, 0x800000, CRC(e42fc226) SHA1(1cd9364993e141facdcdd53ec2277df7b275d8a7) )
+ ROM_LOAD16_BYTE( "271b.c2", 0x0000001, 0x800000, CRC(1b5e3b58) SHA1(0eb254477a9479541291e43e415310852a0f0bed) )
+ ROM_LOAD16_BYTE( "271b.c3", 0x1000000, 0x800000, CRC(d334fdd9) SHA1(1efe30b4f56a55e25ab518cf6999de797b5e407c) )
+ ROM_LOAD16_BYTE( "271b.c4", 0x1000001, 0x800000, CRC(0d457699) SHA1(ec73d0c9fc7094d0ac6c0986a6e07cde25893e57) )
+ ROM_LOAD16_BYTE( "271b.c5", 0x2000000, 0x800000, CRC(8a91aae4) SHA1(802f4baacf801646be1ef686e105b2e867a6a5df) )
+ ROM_LOAD16_BYTE( "271b.c6", 0x2000001, 0x800000, CRC(9f8674b8) SHA1(65964f40b2227d020023fb436579927e65807dcd) )
+ ROM_LOAD16_BYTE( "271d.c7", 0x3000000, 0x800000, CRC(8ee6b43c) SHA1(c78b749c7c8e1d8ab8335b96da03764cc8e9eb21) )
+ ROM_LOAD16_BYTE( "271d.c8", 0x3000001, 0x800000, CRC(6d8d2d60) SHA1(841698eead0f7d422937ce2f2329e17c383d90a6) )
+ROM_END
+
+ROM_START( kof2k3nd )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "271nd.p1", 0x000000, 0x800000, CRC(11624854) SHA1(a7488a0f5d731656aa82cc51282adcfe6ad9f658) )
+
+ NEO_SFIX_128K( "271nrx.s1", CRC(df422440) SHA1(ed84dfd6cc5a73f3ef35db6616bcc3b45754aa4d) )
+
+ NEO_BIOS_AUDIO_512K( "271br.m1", CRC(0e86af8f) SHA1(769102b67bb1a699cfa5674d66cdb46ae633cb65) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "271f.v1", 0x000000, 0x1000000, CRC(2964f36e) SHA1(bfc52f81354eb57e27acb3b80fe1547b9e070293) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "271b.c1", 0x0000000, 0x800000, CRC(e42fc226) SHA1(1cd9364993e141facdcdd53ec2277df7b275d8a7) )
+ ROM_LOAD16_BYTE( "271b.c2", 0x0000001, 0x800000, CRC(1b5e3b58) SHA1(0eb254477a9479541291e43e415310852a0f0bed) )
+ ROM_LOAD16_BYTE( "271b.c3", 0x1000000, 0x800000, CRC(d334fdd9) SHA1(1efe30b4f56a55e25ab518cf6999de797b5e407c) )
+ ROM_LOAD16_BYTE( "271b.c4", 0x1000001, 0x800000, CRC(0d457699) SHA1(ec73d0c9fc7094d0ac6c0986a6e07cde25893e57) )
+ ROM_LOAD16_BYTE( "271b.c5", 0x2000000, 0x800000, CRC(8a91aae4) SHA1(802f4baacf801646be1ef686e105b2e867a6a5df) )
+ ROM_LOAD16_BYTE( "271b.c6", 0x2000001, 0x800000, CRC(9f8674b8) SHA1(65964f40b2227d020023fb436579927e65807dcd) )
+ ROM_LOAD16_BYTE( "271b.c7", 0x3000000, 0x800000, CRC(374ea523) SHA1(613827d72c6181f3e08353750c9af0c4dbad020b) )
+ ROM_LOAD16_BYTE( "271b.c8", 0x3000001, 0x800000, CRC(75211f4d) SHA1(d82f044e816ee539ff131d9c931200c818d34cd0) )
+ROM_END
+
+ROM_START( kof2k3nrx ) // first ever kof2003 set to run on an emulator (in this case, a special version of NeorageX)
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "271nrx.p1", 0x000000, 0x800000, CRC(57a1981d) SHA1(0bc21c09c127e9abb3b03924166c0065ddec2057) )
+
+ NEO_SFIX_128K( "271nrx.s1", CRC(df422440) SHA1(ed84dfd6cc5a73f3ef35db6616bcc3b45754aa4d) )
+
+ NEO_BIOS_AUDIO_512K( "271br.m1", CRC(0e86af8f) SHA1(769102b67bb1a699cfa5674d66cdb46ae633cb65) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "271nrx.v1", 0x000000, 0x1000000, CRC(2058ec5e) SHA1(567fdf328f87551a949dc601f4e71c55368debf0) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "271pcd.c1", 0x0000000, 0x1000000, CRC(c29acd28) SHA1(8a10409c5a9ad95fa9b56e94c14f1b96101fb179) )
+ ROM_LOAD16_BYTE( "271pcd.c2", 0x0000001, 0x1000000, CRC(328e80b1) SHA1(c7f8069488be1a88a2ea03718b6a131f5c96bd3f) )
+ ROM_LOAD16_BYTE( "271pcd.c3", 0x2000000, 0x1000000, CRC(020a11f1) SHA1(85cfae76234f72b0039ebc02f931bb2a9c10b1af) )
+ ROM_LOAD16_BYTE( "271pcd.c4", 0x2000001, 0x1000000, CRC(991b5ed2) SHA1(99c4c470bc9cb388773e27de6df4a16803fc7b45) )
+ROM_END
+
+ROM_START( kof2k3pcd )
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD32_WORD_SWAP( "271-p1.p1", 0x000000, 0x400000, CRC(b9da070c) SHA1(1a26325af142a4dd221c336061761468598c4634) )
+ ROM_LOAD32_WORD_SWAP( "271-p2.p2", 0x000002, 0x400000, CRC(da3118c4) SHA1(582e4f44f03276adecb7b2848d3b96bf6da57f1e) )
+ ROM_LOAD16_WORD_SWAP( "271-p3.p3", 0x800000, 0x100000, CRC(5cefd0d2) SHA1(cddc3164629fed4b6f715e12b109ad35d1009355) )
+
+ ROM_Y_ZOOM
+ ROM_REGION( 0x100000, "fixed", ROMREGION_ERASE00 )
+ ROM_REGION( 0x20000, "fixedbios", 0 )
+ ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) )
+
+ ROM_REGION16_BE( 0x80000, "mainbios", 0 )
+ ROM_LOAD16_WORD_SWAP( "271pcd.sp1", 0x00000, 0x080000, CRC(e873f1ef) SHA1(e7f7a6084b9d7f4b4f8819ea0fd115b1f2cac2c2) )
+
+ ROM_REGION( 0x80000, "audiocrypt", 0 )
+ ROM_LOAD( "271-m1.m1", 0x00000, 0x80000, CRC(d6bcf2bc) SHA1(df78bc95990eb8e8f3638dde6e1876354df7fe84) )
+ ROM_REGION( 0x90000, "audiocpu", ROMREGION_ERASEFF )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "271-v1.v1", 0x000000, 0x1000000, CRC(1d96154b) SHA1(1d4e262b0d30cee79a4edc83bb9706023c736668) )
+
+ ROM_REGION( 0x6000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "271pcd.c1", 0x0000000, 0x1000000, CRC(c29acd28) SHA1(8a10409c5a9ad95fa9b56e94c14f1b96101fb179) )
+ ROM_LOAD16_BYTE( "271pcd.c2", 0x0000001, 0x1000000, CRC(328e80b1) SHA1(c7f8069488be1a88a2ea03718b6a131f5c96bd3f) )
+ ROM_LOAD16_BYTE( "271pcd.c3", 0x2000000, 0x1000000, CRC(020a11f1) SHA1(85cfae76234f72b0039ebc02f931bb2a9c10b1af) )
+ ROM_LOAD16_BYTE( "271pcd.c4", 0x2000001, 0x1000000, CRC(991b5ed2) SHA1(99c4c470bc9cb388773e27de6df4a16803fc7b45) )
+ ROM_LOAD16_BYTE( "271pcd.c5", 0x4000000, 0x1000000, CRC(c2de8b66) SHA1(40c2ea48fc20d470163a9dbb40c0276fc4cfceb9) )
+ ROM_LOAD16_BYTE( "271pcd.c6", 0x4000001, 0x1000000, CRC(3ff750db) SHA1(714f14a2eb2df6f25d10a6b6aff4b3adfbc7a5dc) )
+ROM_END
+
+ROM_START( kof2k3pch )
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD32_WORD_SWAP( "271pch.p1", 0x000000, 0x400000, CRC(f2be8247) SHA1(50ce38027cca73420cd864681de6149c9ce69041) )
+ ROM_LOAD32_WORD_SWAP( "271pch.p2", 0x000002, 0x400000, CRC(56316905) SHA1(ce9bb7d872e44fcc887d08a5faa7a355a88f0830) )
+ ROM_LOAD16_WORD_SWAP( "271pch.p3", 0x800000, 0x100000, CRC(d9750d7b) SHA1(c5016de367800d3b0b277eff1da788209910cd82) )
+
+ ROM_Y_ZOOM
+ ROM_REGION( 0x100000, "fixed", ROMREGION_ERASE00 )
+ ROM_REGION( 0x20000, "fixedbios", 0 )
+ ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) )
+
+ ROM_REGION16_BE( 0x80000, "mainbios", 0 )
+ ROM_LOAD16_WORD_SWAP( "spj.sp1", 0x00000, 0x080000, CRC(148dd727) SHA1(2cf592a16c7157de02a989675d47965f2b3a44dd) )
+
+ ROM_REGION( 0x80000, "audiocrypt", 0 )
+ ROM_LOAD( "271-m1.m1", 0x00000, 0x80000, CRC(d6bcf2bc) SHA1(df78bc95990eb8e8f3638dde6e1876354df7fe84) )
+ ROM_REGION( 0x90000, "audiocpu", ROMREGION_ERASEFF )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "271-v1.v1", 0x000000, 0x1000000, CRC(1d96154b) SHA1(1d4e262b0d30cee79a4edc83bb9706023c736668) )
+
+ ROM_REGION( 0x6000000, "sprites", 0 )
+ ROM_LOAD32_WORD( "271-c1.c1", 0x0000000, 0x1000000, CRC(f5ebb327) SHA1(e4f799a54b09adcca13b1b0cf95971a1f4291b61) )
+ ROM_LOAD32_WORD( "271-c2.c2", 0x0000002, 0x1000000, CRC(2be21620) SHA1(872c658f53bbc558e90f18d5db9cbaa82e748a6a) )
+ ROM_LOAD32_WORD( "271-c3.c3", 0x2000000, 0x1000000, CRC(ddded4ff) SHA1(ff7b356125bc9e6637b164f5e81b13eabeb8d804) )
+ ROM_LOAD32_WORD( "271-c4.c4", 0x2000002, 0x1000000, CRC(d85521e6) SHA1(62278fa8690972ed32aca07a4f7f97e7203d9f3a) )
+ ROM_LOAD32_WORD( "271pch.c5", 0x4000000, 0x1000000, CRC(eadc4839) SHA1(f831d71c0f60556909a0aa918e0552a3cabb8b13) )
+ ROM_LOAD32_WORD( "271pch.c6", 0x4000002, 0x1000000, CRC(d873e0dd) SHA1(725421b1cb5578e3fa6488f2783369789b6a4f2e) )
+ROM_END
+
+ROM_START( kof2k3ps2 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "271ps2.p1", 0x000000, 0x800000, CRC(8e66056d) SHA1(8ddbbf66bdcefbae15e9c0597aea846bbcfccadd) )
+
+ NEO_SFIX_128K( "271ps2.s1", CRC(c2e48e98) SHA1(8734c3d1c936aff3d7d1f460b5d211e25a816cc5) )
+
+ NEO_BIOS_AUDIO_512K( "271ps2.m1", CRC(4374cb5c) SHA1(d245a09fcebc8fe59f4af2de2fc30a0871e56d68) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "271bs1.v1", 0x000000, 0x800000, CRC(dd6c6a85) SHA1(e32b16d0b716a4f3b95868457347303d020147fb) )
+ ROM_LOAD( "271bs1.v2", 0x800000, 0x800000, CRC(0e84f8c1) SHA1(28c964fe89c800b445d3a65c965de32b4e504726) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "271b.c1", 0x0000000, 0x800000, CRC(e42fc226) SHA1(1cd9364993e141facdcdd53ec2277df7b275d8a7) )
+ ROM_LOAD16_BYTE( "271b.c2", 0x0000001, 0x800000, CRC(1b5e3b58) SHA1(0eb254477a9479541291e43e415310852a0f0bed) )
+ ROM_LOAD16_BYTE( "271b.c3", 0x1000000, 0x800000, CRC(d334fdd9) SHA1(1efe30b4f56a55e25ab518cf6999de797b5e407c) )
+ ROM_LOAD16_BYTE( "271b.c4", 0x1000001, 0x800000, CRC(0d457699) SHA1(ec73d0c9fc7094d0ac6c0986a6e07cde25893e57) )
+ ROM_LOAD16_BYTE( "271b.c5", 0x2000000, 0x800000, CRC(8a91aae4) SHA1(802f4baacf801646be1ef686e105b2e867a6a5df) )
+ ROM_LOAD16_BYTE( "271b.c6", 0x2000001, 0x800000, CRC(9f8674b8) SHA1(65964f40b2227d020023fb436579927e65807dcd) )
+ ROM_LOAD16_BYTE( "271bs1.c7", 0x3000000, 0x800000, CRC(0ff993d7) SHA1(c7d6ce90b84d566dcee85dba5591f8f394fcf032) )
+ ROM_LOAD16_BYTE( "271bs1.c8", 0x3000001, 0x800000, CRC(22e36002) SHA1(bb3a9e1ded0af2db058cfbe773ed5c1a1b4e888a) )
+ROM_END
+
+ROM_START( kof2k3ps3 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "271ps3.p1", 0x000000, 0x800000, CRC(65a5e73d) SHA1(eec26ceedf67ee3ff0b6b192a7cb2978353c3bc3) )
+
+ NEO_SFIX_128K( "271ps2.s1", CRC(c2e48e98) SHA1(8734c3d1c936aff3d7d1f460b5d211e25a816cc5) )
+
+ NEO_BIOS_AUDIO_512K( "271br.m1", CRC(0e86af8f) SHA1(769102b67bb1a699cfa5674d66cdb46ae633cb65) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "271f.v1", 0x000000, 0x1000000, CRC(2964f36e) SHA1(bfc52f81354eb57e27acb3b80fe1547b9e070293) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "271b.c1", 0x0000000, 0x800000, CRC(e42fc226) SHA1(1cd9364993e141facdcdd53ec2277df7b275d8a7) )
+ ROM_LOAD16_BYTE( "271b.c2", 0x0000001, 0x800000, CRC(1b5e3b58) SHA1(0eb254477a9479541291e43e415310852a0f0bed) )
+ ROM_LOAD16_BYTE( "271b.c3", 0x1000000, 0x800000, CRC(d334fdd9) SHA1(1efe30b4f56a55e25ab518cf6999de797b5e407c) )
+ ROM_LOAD16_BYTE( "271b.c4", 0x1000001, 0x800000, CRC(0d457699) SHA1(ec73d0c9fc7094d0ac6c0986a6e07cde25893e57) )
+ ROM_LOAD16_BYTE( "271b.c5", 0x2000000, 0x800000, CRC(8a91aae4) SHA1(802f4baacf801646be1ef686e105b2e867a6a5df) )
+ ROM_LOAD16_BYTE( "271b.c6", 0x2000001, 0x800000, CRC(9f8674b8) SHA1(65964f40b2227d020023fb436579927e65807dcd) )
+ ROM_LOAD16_BYTE( "271ps3.c7", 0x3000000, 0x800000, CRC(18742a1e) SHA1(2a822c2a0698f7301e3d395fb9366593a64fbffe) )
+ ROM_LOAD16_BYTE( "271ps3.c8", 0x3000001, 0x800000, CRC(aa921e8e) SHA1(0c4d7fff4843d4d3498649b9de5bebfb67fe5312) )
+ROM_END
+
+ROM_START( kof2k3ryu )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "271ryu.p1", 0x000000, 0x800000, CRC(0e82da28) SHA1(61fd4cf63f804752095f47450e4aac10672bd53f) )
+
+ NEO_SFIX_128K( "271ryu.s1", CRC(d05be6db) SHA1(a523e6b7b8f07e6636043d13626a2286c79de930) )
+
+ NEO_BIOS_AUDIO_512K( "271br.m1", CRC(0e86af8f) SHA1(769102b67bb1a699cfa5674d66cdb46ae633cb65) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "271f.v1", 0x000000, 0x1000000, CRC(2964f36e) SHA1(bfc52f81354eb57e27acb3b80fe1547b9e070293) )
+
+ ROM_REGION( 0x6000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "271pcd.c1", 0x0000000, 0x1000000, CRC(c29acd28) SHA1(8a10409c5a9ad95fa9b56e94c14f1b96101fb179) )
+ ROM_LOAD16_BYTE( "271pcd.c2", 0x0000001, 0x1000000, CRC(328e80b1) SHA1(c7f8069488be1a88a2ea03718b6a131f5c96bd3f) )
+ ROM_LOAD16_BYTE( "271pcd.c3", 0x2000000, 0x1000000, CRC(020a11f1) SHA1(85cfae76234f72b0039ebc02f931bb2a9c10b1af) )
+ ROM_LOAD16_BYTE( "271pcd.c4", 0x2000001, 0x1000000, CRC(991b5ed2) SHA1(99c4c470bc9cb388773e27de6df4a16803fc7b45) )
+ ROM_LOAD16_BYTE( "271pcd.c5", 0x4000000, 0x1000000, CRC(c2de8b66) SHA1(40c2ea48fc20d470163a9dbb40c0276fc4cfceb9) )
+ ROM_LOAD16_BYTE( "271pcd.c6", 0x4000001, 0x1000000, CRC(3ff750db) SHA1(714f14a2eb2df6f25d10a6b6aff4b3adfbc7a5dc) )
+ROM_END
+
+ROM_START( kof2k3sc ) /* The King of Fighters 2003 BOOTLEG - (kof2k3sc) - Colour fix by SHIPDS - (Colour change) */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "271sc.p1", 0x100000, 0x400000, CRC(ef4ee94e) SHA1(f3b8b9e7279dfc4c04dc5971c323134d8db3b42c) )
+ ROM_LOAD16_WORD_SWAP( "271gc.p2", 0x500000, 0x200000, CRC(5d3d8bb3) SHA1(7f2341f14ca12ff5721eb038b3496228a1f34b60) )
+ ROM_IGNORE( 0x100000 )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "271b.s1", CRC(482c48a5) SHA1(27e2f5295a9a838e112be28dafc111893a388a16) )
+
+ NEO_BIOS_AUDIO_128K( "271b.m1", CRC(3a4969ff) SHA1(2fc107a023a82053a8df63025829bcf12cee9610) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "271b.v1", 0x000000, 0x400000, CRC(d2b8aa5e) SHA1(498f0556c1de56822141f8043f1ce20444f4ed0a) )
+ ROM_LOAD( "271b.v2", 0x400000, 0x400000, CRC(71956ee2) SHA1(a890941e60db358cf45b58909f4719f4826f3bb1) )
+ ROM_LOAD( "271b.v3", 0x800000, 0x400000, CRC(ddbbb199) SHA1(0eea4b064bdb8daa03c354fe0a0aa27c4c665bda) )
+ ROM_LOAD( "271b.v4", 0xc00000, 0x400000, CRC(01b90c4f) SHA1(387164aa1995d8c11ed939b3afbc294d86d2e27f) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "271b.c1", 0x0000000, 0x800000, CRC(e42fc226) SHA1(1cd9364993e141facdcdd53ec2277df7b275d8a7) )
+ ROM_LOAD16_BYTE( "271b.c2", 0x0000001, 0x800000, CRC(1b5e3b58) SHA1(0eb254477a9479541291e43e415310852a0f0bed) )
+ ROM_LOAD16_BYTE( "271b.c3", 0x1000000, 0x800000, CRC(d334fdd9) SHA1(1efe30b4f56a55e25ab518cf6999de797b5e407c) )
+ ROM_LOAD16_BYTE( "271b.c4", 0x1000001, 0x800000, CRC(0d457699) SHA1(ec73d0c9fc7094d0ac6c0986a6e07cde25893e57) )
+ ROM_LOAD16_BYTE( "271b.c5", 0x2000000, 0x800000, CRC(8a91aae4) SHA1(802f4baacf801646be1ef686e105b2e867a6a5df) )
+ ROM_LOAD16_BYTE( "271b.c6", 0x2000001, 0x800000, CRC(9f8674b8) SHA1(65964f40b2227d020023fb436579927e65807dcd) )
+ ROM_LOAD16_BYTE( "271b.c7", 0x3000000, 0x800000, CRC(374ea523) SHA1(613827d72c6181f3e08353750c9af0c4dbad020b) )
+ ROM_LOAD16_BYTE( "271b.c8", 0x3000001, 0x800000, CRC(75211f4d) SHA1(d82f044e816ee539ff131d9c931200c818d34cd0) )
+ROM_END
+
+ROM_START( kof2k3ss )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "271ss.p1", 0x100000, 0x400000, CRC(3b6ce72b) SHA1(9c44a4adb993a8fa63fc44b29ca0bfe8a166e049) )
+ ROM_LOAD16_WORD_SWAP( "271gc.p2", 0x500000, 0x200000, CRC(5d3d8bb3) SHA1(7f2341f14ca12ff5721eb038b3496228a1f34b60) )
+ ROM_IGNORE( 0x100000 )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "271b.s1", CRC(482c48a5) SHA1(27e2f5295a9a838e112be28dafc111893a388a16) )
+
+ NEO_BIOS_AUDIO_128K( "271b.m1", CRC(3a4969ff) SHA1(2fc107a023a82053a8df63025829bcf12cee9610) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "271-v1c.v1", 0x000000, 0x800000, CRC(ffa3f8c7) SHA1(7cf4a933973ca23b7f87c81151d8659e6ec4bd20) )
+ ROM_LOAD( "271-v2c.v2", 0x800000, 0x800000, CRC(5382c7d1) SHA1(1bf999705eda80ba1e7b0d6bdd010d9bfb18bd76) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "271-c1c.c1", 0x0000000, 0x800000, CRC(b1dc25d0) SHA1(50adc3c60d5b4b3abd10a49db2267306c6dbd772) )
+ ROM_LOAD16_BYTE( "271-c2c.c2", 0x0000001, 0x800000, CRC(d5362437) SHA1(66db36522dc09106388c707252df9fe1c88b4856) )
+ ROM_LOAD16_BYTE( "271-c3c.c3", 0x1000000, 0x800000, CRC(0a1fbeab) SHA1(9fe30d36ba98d00fda010832ff2f27783dd577c1) )
+ ROM_LOAD16_BYTE( "271-c4c.c4", 0x1000001, 0x800000, CRC(87b19a0c) SHA1(b72a8e7d9124ce859b5149bb4381ba481c161ea5) )
+ ROM_LOAD16_BYTE( "271-c5c.c5", 0x2000000, 0x800000, CRC(704ea371) SHA1(e75b80422f0d72eac826f8ffadf79efeccaab124) )
+ ROM_LOAD16_BYTE( "271-c6c.c6", 0x2000001, 0x800000, CRC(20a1164c) SHA1(c9843b37612a16fc95f6851793b1cfb5d49d811d) )
+ ROM_LOAD16_BYTE( "271-c7c.c7", 0x3000000, 0x800000, CRC(189aba7f) SHA1(7152195a57ad36b28290810fe87ed8c206262ba9) )
+ ROM_LOAD16_BYTE( "271-c8c.c8", 0x3000001, 0x800000, CRC(20ec4fdc) SHA1(deb5f7ec5a090e419b9d1a6a74877bee081198e2) )
+ROM_END
+
+ROM_START( kof2k3tc ) /* The King of Fighters 2003 BOOTLEG - (kof2k3tc) - Colour fix by T.Com - (Character colour change for Kyo (2P/4P), DUOLON (4P), K' (4P) ) */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "271tc.p1", 0x100000, 0x400000, CRC(0d1a1da9) SHA1(0ba0d11c3bb3c30bc95f9aae181769ea874da096) )
+ ROM_LOAD16_WORD_SWAP( "271gc.p2", 0x500000, 0x200000, CRC(5d3d8bb3) SHA1(7f2341f14ca12ff5721eb038b3496228a1f34b60) )
+ ROM_IGNORE( 0x100000 )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "271b.s1", CRC(482c48a5) SHA1(27e2f5295a9a838e112be28dafc111893a388a16) )
+
+ NEO_BIOS_AUDIO_128K( "271b.m1", CRC(3a4969ff) SHA1(2fc107a023a82053a8df63025829bcf12cee9610) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "271b.v1", 0x000000, 0x400000, CRC(d2b8aa5e) SHA1(498f0556c1de56822141f8043f1ce20444f4ed0a) )
+ ROM_LOAD( "271b.v2", 0x400000, 0x400000, CRC(71956ee2) SHA1(a890941e60db358cf45b58909f4719f4826f3bb1) )
+ ROM_LOAD( "271b.v3", 0x800000, 0x400000, CRC(ddbbb199) SHA1(0eea4b064bdb8daa03c354fe0a0aa27c4c665bda) )
+ ROM_LOAD( "271b.v4", 0xc00000, 0x400000, CRC(01b90c4f) SHA1(387164aa1995d8c11ed939b3afbc294d86d2e27f) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "271b.c1", 0x0000000, 0x800000, CRC(e42fc226) SHA1(1cd9364993e141facdcdd53ec2277df7b275d8a7) )
+ ROM_LOAD16_BYTE( "271b.c2", 0x0000001, 0x800000, CRC(1b5e3b58) SHA1(0eb254477a9479541291e43e415310852a0f0bed) )
+ ROM_LOAD16_BYTE( "271b.c3", 0x1000000, 0x800000, CRC(d334fdd9) SHA1(1efe30b4f56a55e25ab518cf6999de797b5e407c) )
+ ROM_LOAD16_BYTE( "271b.c4", 0x1000001, 0x800000, CRC(0d457699) SHA1(ec73d0c9fc7094d0ac6c0986a6e07cde25893e57) )
+ ROM_LOAD16_BYTE( "271b.c5", 0x2000000, 0x800000, CRC(8a91aae4) SHA1(802f4baacf801646be1ef686e105b2e867a6a5df) )
+ ROM_LOAD16_BYTE( "271b.c6", 0x2000001, 0x800000, CRC(9f8674b8) SHA1(65964f40b2227d020023fb436579927e65807dcd) )
+ ROM_LOAD16_BYTE( "271b.c7", 0x3000000, 0x800000, CRC(374ea523) SHA1(613827d72c6181f3e08353750c9af0c4dbad020b) )
+ ROM_LOAD16_BYTE( "271b.c8", 0x3000001, 0x800000, CRC(75211f4d) SHA1(d82f044e816ee539ff131d9c931200c818d34cd0) )
+ROM_END
+
+ROM_START( kof2k3zgf ) /* The King of Fighters 2003 BOOTLEG - (kof2k3zgf) - Colour fix by Zhaolu94 - (Attack cremation green) */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "271zgf.p1", 0x100000, 0x400000, CRC(9a76d66f) SHA1(4697b521105759d135f859e47940e3696f49506b) )
+ ROM_LOAD16_WORD_SWAP( "271gc.p2", 0x500000, 0x200000, CRC(5d3d8bb3) SHA1(7f2341f14ca12ff5721eb038b3496228a1f34b60) )
+ ROM_IGNORE( 0x100000 )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "271b.s1", CRC(482c48a5) SHA1(27e2f5295a9a838e112be28dafc111893a388a16) )
+
+ NEO_BIOS_AUDIO_128K( "271b.m1", CRC(3a4969ff) SHA1(2fc107a023a82053a8df63025829bcf12cee9610) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "271b.v1", 0x000000, 0x400000, CRC(d2b8aa5e) SHA1(498f0556c1de56822141f8043f1ce20444f4ed0a) )
+ ROM_LOAD( "271b.v2", 0x400000, 0x400000, CRC(71956ee2) SHA1(a890941e60db358cf45b58909f4719f4826f3bb1) )
+ ROM_LOAD( "271b.v3", 0x800000, 0x400000, CRC(ddbbb199) SHA1(0eea4b064bdb8daa03c354fe0a0aa27c4c665bda) )
+ ROM_LOAD( "271b.v4", 0xc00000, 0x400000, CRC(01b90c4f) SHA1(387164aa1995d8c11ed939b3afbc294d86d2e27f) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "271b.c1", 0x0000000, 0x800000, CRC(e42fc226) SHA1(1cd9364993e141facdcdd53ec2277df7b275d8a7) )
+ ROM_LOAD16_BYTE( "271b.c2", 0x0000001, 0x800000, CRC(1b5e3b58) SHA1(0eb254477a9479541291e43e415310852a0f0bed) )
+ ROM_LOAD16_BYTE( "271b.c3", 0x1000000, 0x800000, CRC(d334fdd9) SHA1(1efe30b4f56a55e25ab518cf6999de797b5e407c) )
+ ROM_LOAD16_BYTE( "271b.c4", 0x1000001, 0x800000, CRC(0d457699) SHA1(ec73d0c9fc7094d0ac6c0986a6e07cde25893e57) )
+ ROM_LOAD16_BYTE( "271b.c5", 0x2000000, 0x800000, CRC(8a91aae4) SHA1(802f4baacf801646be1ef686e105b2e867a6a5df) )
+ ROM_LOAD16_BYTE( "271b.c6", 0x2000001, 0x800000, CRC(9f8674b8) SHA1(65964f40b2227d020023fb436579927e65807dcd) )
+ ROM_LOAD16_BYTE( "271b.c7", 0x3000000, 0x800000, CRC(374ea523) SHA1(613827d72c6181f3e08353750c9af0c4dbad020b) )
+ ROM_LOAD16_BYTE( "271b.c8", 0x3000001, 0x800000, CRC(75211f4d) SHA1(d82f044e816ee539ff131d9c931200c818d34cd0) )
+ROM_END
+
+
+
+GAME( 2003, kof2003d, kof2003, neogeo_noslot, neogeo, neogeo_hbmame, kof2003hb, ROT0, "hack", "Kof2003 (Decrypted P&C)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2003f, kof2003, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof2003 Original (Fully Decrypted - Fixed)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2003rebh,kof2003, no_watchdog, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof2003 (hack rebh)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k3b, kof2003, neogeo_noslot, neogeo, neogeo_hbmame, kof2003b, ROT0, "Gledson01", "Kof2003 (Add Char)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k3bl2, kof2003, neogeo_noslot, neogeo, neogeo_hbmame, kof2003b, ROT0, "hack", "Kof2003 (Bootleg Boss hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k3br, kof2003, neogeo_noslot, neogeo, neogeo_hbmame, kof2003hb, ROT0, "Neogeo BR team", "Kof2003 Portuguese Brazilian Hack", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k3bs1, kof2003, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGCG / FCHT", "Kof2003 (Boss PS2 EGCG/FCHT Hack Set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k3bs2, kof2003, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGCG / FCHT", "Kof2003 (Boss PS2 EGCG/FCHT Hack Set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k3bs3, kof2003, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGCG / FCHT", "Kof2003 (Boss PS2 EGCG/FCHT Hack Set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k3bs4, kof2003, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGCG / FCHT", "Kof2003 (Boss PS2 EGCG/FCHT Hack Set 4)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k3d, kof2003, neogeo_noslot, neogeo, neogeo_hbmame, kof2003hb, ROT0, "hack", "Kof2003 (NGM-2710)(decrypted C)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k3evo, kof2003, no_watchdog, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof2003 (Evolution 1.4)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k3gc, kof2003, neogeo_noslot, neogeo, neogeo_hbmame, kof2003b, ROT0, "Gledson01", "Kof2003 (Char color changed for Terry (4P), Athena (3P), Ash (3P), Leona (3P), K' (4P) and King (2P) )", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k3hd, kof2003, neogeo_noslot, neogeo, neogeo_hbmame, kof2k3hd, ROT0, "hack", "Kof2003 (NGH-2710)(decrypted C)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k3nd, kof2003, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof2003 (Fully decrypted)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k3nrx, kof2003, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof2003 (Neoragex)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k3pcd, kf2k3pcb, neogeo_noslot, neogeo, neogeo_hbmame, kof2k3pcd, ROT0, "hack", "Kof2003 (Japan, JAMMA PCB / decrypted C&Bios)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k3pch, kf2k3pcb, neogeo_noslot, neogeo, neogeo_noslot_state, kf2k3pcb, ROT0, "ZKW", "Kof2003 (Boss hack remixed by ZKW japan jamma pcb)", MACHINE_SUPPORTS_SAVE )
+GAME( 2008, kof2k3ps2, kof2003, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGCG / FCHT", "Kof2003 (PS2 2008-03-03 beta 1.0 (EGCG/FCHT))", MACHINE_SUPPORTS_SAVE )
+GAME( 2008, kof2k3ps3, kof2003, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGCG / FCHT", "Kof2003 (PS2 2008-10-31 (EGCG/FCHT))", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k3ryu, kof2003, no_watchdog, neogeo, neogeo_state, neogeo, ROT0, "Iori Yagami", "Kof2003 (Ryu Hack by Iori Yagami)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k3sc, kof2003, neogeo_noslot, neogeo, neogeo_hbmame, kof2003b, ROT0, "SHIPDS", "Kof2003 (Color changed)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k3ss, kof2003, neogeo_noslot, neogeo, neogeo_hbmame, kof2003b, ROT0, "hack", "Kof2003 (Silver Style Edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k3tc, kof2003, neogeo_noslot, neogeo, neogeo_hbmame, kof2003b, ROT0, "T.Com", "Kof2003 (Char color changed for Kyo (2P/4P), DUOLON (4P), K' (4P) )", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k3zgf, kof2003, neogeo_noslot, neogeo, neogeo_hbmame, kof2003b, ROT0, "Zhaolu94", "Kof2003 (Attack cremation green)", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/kof94.cpp b/docs/release/src/hbmame/drivers/kof94.cpp
new file mode 100644
index 00000000000..ed9ca485630
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/kof94.cpp
@@ -0,0 +1,476 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+
+
+
+ROM_START( kof94b ) /* The King of Fighters '94 - Hack by Ydmis - (Can choose Rugal) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "055b.p1", 0x100000, 0x100000, CRC(c4c1b20a) SHA1(963befa89ea08104cae0e195f9ed6b153af67f9c) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "055-s1.s1", CRC(825976c1) SHA1(cb6a70bdd95d449d25196ca269b621c362db6743) )
+
+ NEO_BIOS_AUDIO_128K( "055-m1.m1", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "055-v1.v1", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) )
+ ROM_LOAD( "055-v2.v2", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) )
+ ROM_LOAD( "055-v3.v3", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "055-c1.c1", 0x000000, 0x200000, CRC(b96ef460) SHA1(e52f5303c17b50ce165c008be2837336369c110b) )
+ ROM_LOAD16_BYTE( "055-c2.c2", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) )
+ ROM_LOAD16_BYTE( "055-c3.c3", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) )
+ ROM_LOAD16_BYTE( "055-c4.c4", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) )
+ ROM_LOAD16_BYTE( "055-c5.c5", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) )
+ ROM_LOAD16_BYTE( "055-c6.c6", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) )
+ ROM_LOAD16_BYTE( "055-c7.c7", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) )
+ ROM_LOAD16_BYTE( "055-c8.c8", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) )
+ROM_END
+
+ROM_START( kof94bc )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "055bc.p1", 0x100000, 0x100000, CRC(67ea805b) SHA1(56575a538dc030ce081c4ec98ac3f8fd3e97ad59) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "055-s1.s1", CRC(825976c1) SHA1(cb6a70bdd95d449d25196ca269b621c362db6743) )
+
+ NEO_BIOS_AUDIO_128K( "055-m1.m1", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "055-v1.v1", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) )
+ ROM_LOAD( "055-v2.v2", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) )
+ ROM_LOAD( "055-v3.v3", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "055-c1.c1", 0x000000, 0x200000, CRC(b96ef460) SHA1(e52f5303c17b50ce165c008be2837336369c110b) )
+ ROM_LOAD16_BYTE( "055-c2.c2", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) )
+ ROM_LOAD16_BYTE( "055-c3.c3", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) )
+ ROM_LOAD16_BYTE( "055-c4.c4", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) )
+ ROM_LOAD16_BYTE( "055-c5.c5", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) )
+ ROM_LOAD16_BYTE( "055-c6.c6", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) )
+ ROM_LOAD16_BYTE( "055-c7.c7", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) )
+ ROM_LOAD16_BYTE( "055-c8.c8", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) )
+ROM_END
+
+ROM_START( kof94blk )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "055blk.p1", 0x100000, 0x100000, CRC(b1107150) SHA1(b85edff511eb7d04c3c4a1f83f522e187033a130) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "055-s1.s1", CRC(825976c1) SHA1(cb6a70bdd95d449d25196ca269b621c362db6743) )
+
+ NEO_BIOS_AUDIO_128K( "055-m1.m1", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "055-v1.v1", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) )
+ ROM_LOAD( "055-v2.v2", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) )
+ ROM_LOAD( "055-v3.v3", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "055-c1.c1", 0x000000, 0x200000, CRC(b96ef460) SHA1(e52f5303c17b50ce165c008be2837336369c110b) )
+ ROM_LOAD16_BYTE( "055-c2.c2", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) )
+ ROM_LOAD16_BYTE( "055-c3.c3", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) )
+ ROM_LOAD16_BYTE( "055-c4.c4", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) )
+ ROM_LOAD16_BYTE( "055-c5.c5", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) )
+ ROM_LOAD16_BYTE( "055-c6.c6", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) )
+ ROM_LOAD16_BYTE( "055-c7.c7", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) )
+ ROM_LOAD16_BYTE( "055-c8.c8", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) )
+ROM_END
+
+ROM_START( kof94br )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "055br.p1", 0x100000, 0x100000, CRC(0138a992) SHA1(48c857ed371de236861d172552e3b5bf38def776) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "055-s1.s1", CRC(825976c1) SHA1(cb6a70bdd95d449d25196ca269b621c362db6743) )
+
+ NEO_BIOS_AUDIO_128K( "055-m1.m1", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "055-v1.v1", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) )
+ ROM_LOAD( "055-v2.v2", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) )
+ ROM_LOAD( "055-v3.v3", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "055br.c1", 0x000000, 0x200000, CRC(6fb14154) SHA1(bdc0e1933b9e903a69a2303c2e0e4243d3e1c95e) )
+ ROM_LOAD16_BYTE( "055-c2.c2", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) )
+ ROM_LOAD16_BYTE( "055-c3.c3", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) )
+ ROM_LOAD16_BYTE( "055-c4.c4", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) )
+ ROM_LOAD16_BYTE( "055-c5.c5", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) )
+ ROM_LOAD16_BYTE( "055-c6.c6", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) )
+ ROM_LOAD16_BYTE( "055-c7.c7", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) )
+ ROM_LOAD16_BYTE( "055-c8.c8", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) )
+ROM_END
+
+ROM_START( kof94cg )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "055cg.p1", 0x100000, 0x100000, CRC(d96b311e) SHA1(3879c3794a1cd156b73cb25d8584ee2717d1cbb7) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "055-s1.s1", CRC(825976c1) SHA1(cb6a70bdd95d449d25196ca269b621c362db6743) )
+
+ NEO_BIOS_AUDIO_128K( "055-m1.m1", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "055-v1.v1", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) )
+ ROM_LOAD( "055-v2.v2", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) )
+ ROM_LOAD( "055-v3.v3", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "055-c1.c1", 0x000000, 0x200000, CRC(b96ef460) SHA1(e52f5303c17b50ce165c008be2837336369c110b) )
+ ROM_LOAD16_BYTE( "055-c2.c2", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) )
+ ROM_LOAD16_BYTE( "055-c3.c3", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) )
+ ROM_LOAD16_BYTE( "055-c4.c4", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) )
+ ROM_LOAD16_BYTE( "055-c5.c5", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) )
+ ROM_LOAD16_BYTE( "055-c6.c6", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) )
+ ROM_LOAD16_BYTE( "055-c7.c7", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) )
+ ROM_LOAD16_BYTE( "055-c8.c8", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) )
+ROM_END
+
+ROM_START( kof94cn ) // some chinese text on player select screen
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "055-p1.p1", 0x100000, 0x100000, CRC(f10a2042) SHA1(d08a3f3c28be4b1793de7d362456281329fe1828) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "055cn.s1", CRC(80eeeaf6) SHA1(cfeb8cce91798f80f022c490cc983b67310da454) )
+
+ NEO_BIOS_AUDIO_128K( "055-m1.m1", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "055-v1.v1", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) )
+ ROM_LOAD( "055-v2.v2", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) )
+ ROM_LOAD( "055-v3.v3", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "055-c1.c1", 0x000000, 0x200000, CRC(b96ef460) SHA1(e52f5303c17b50ce165c008be2837336369c110b) )
+ ROM_LOAD16_BYTE( "055-c2.c2", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) )
+ ROM_LOAD16_BYTE( "055-c3.c3", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) )
+ ROM_LOAD16_BYTE( "055-c4.c4", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) )
+ ROM_LOAD16_BYTE( "055-c5.c5", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) )
+ ROM_LOAD16_BYTE( "055-c6.c6", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) )
+ ROM_LOAD16_BYTE( "055-c7.c7", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) )
+ ROM_LOAD16_BYTE( "055-c8.c8", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) )
+ROM_END
+
+ROM_START( kof94cyk )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "055cyk.p1", 0x100000, 0x100000, CRC(c66acf73) SHA1(a0fd5281362b00fe6891a6313c85c21e6c2a5d91) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "055-s1.s1", CRC(825976c1) SHA1(cb6a70bdd95d449d25196ca269b621c362db6743) )
+
+ NEO_BIOS_AUDIO_128K( "055-m1.m1", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "055-v1.v1", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) )
+ ROM_LOAD( "055-v2.v2", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) )
+ ROM_LOAD( "055-v3.v3", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "055-c1.c1", 0x000000, 0x200000, CRC(b96ef460) SHA1(e52f5303c17b50ce165c008be2837336369c110b) )
+ ROM_LOAD16_BYTE( "055-c2.c2", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) )
+ ROM_LOAD16_BYTE( "055-c3.c3", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) )
+ ROM_LOAD16_BYTE( "055-c4.c4", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) )
+ ROM_LOAD16_BYTE( "055-c5.c5", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) )
+ ROM_LOAD16_BYTE( "055-c6.c6", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) )
+ ROM_LOAD16_BYTE( "055-c7.c7", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) )
+ ROM_LOAD16_BYTE( "055-c8.c8", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) )
+ROM_END
+
+ROM_START( kof94eh ) /* The King of Fighters '94 - Enhance by Ydmis - (Can choose Rugal - power hack ABC) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "055eh.p1", 0x100000, 0x100000, CRC(255487ea) SHA1(49e26566b52cd8588b5e34d1c9a5d6803d3e809e) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "055-s1.s1", CRC(825976c1) SHA1(cb6a70bdd95d449d25196ca269b621c362db6743) )
+
+ NEO_BIOS_AUDIO_128K( "055-m1.m1", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "055-v1.v1", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) )
+ ROM_LOAD( "055-v2.v2", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) )
+ ROM_LOAD( "055-v3.v3", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "055-c1.c1", 0x000000, 0x200000, CRC(b96ef460) SHA1(e52f5303c17b50ce165c008be2837336369c110b) )
+ ROM_LOAD16_BYTE( "055-c2.c2", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) )
+ ROM_LOAD16_BYTE( "055-c3.c3", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) )
+ ROM_LOAD16_BYTE( "055-c4.c4", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) )
+ ROM_LOAD16_BYTE( "055-c5.c5", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) )
+ ROM_LOAD16_BYTE( "055-c6.c6", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) )
+ ROM_LOAD16_BYTE( "055-c7.c7", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) )
+ ROM_LOAD16_BYTE( "055-c8.c8", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) )
+ROM_END
+
+ROM_START( kof94h )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ // rom missing
+ ROM_LOAD16_WORD_SWAP( "055h.p1", 0x100000, 0x100000, CRC(2b0bc82d) SHA1(131906f00ed3c5854e251518c3074b3c19cb23d5) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "055-s1.s1", CRC(825976c1) SHA1(cb6a70bdd95d449d25196ca269b621c362db6743) )
+
+ NEO_BIOS_AUDIO_128K( "055-m1.m1", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "055-v1.v1", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) )
+ ROM_LOAD( "055-v2.v2", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) )
+ ROM_LOAD( "055-v3.v3", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "055-c1.c1", 0x000000, 0x200000, CRC(b96ef460) SHA1(e52f5303c17b50ce165c008be2837336369c110b) )
+ ROM_LOAD16_BYTE( "055-c2.c2", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) )
+ ROM_LOAD16_BYTE( "055-c3.c3", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) )
+ ROM_LOAD16_BYTE( "055-c4.c4", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) )
+ ROM_LOAD16_BYTE( "055-c5.c5", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) )
+ ROM_LOAD16_BYTE( "055-c6.c6", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) )
+ ROM_LOAD16_BYTE( "055-c7.c7", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) )
+ ROM_LOAD16_BYTE( "055-c8.c8", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) )
+ROM_END
+
+ROM_START( kof94k )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "055k.p1", 0x100000, 0x100000, CRC(7dff8b81) SHA1(86198059a921cb97646e2e39bf842e7b291c83a2) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "055-s1.s1", CRC(825976c1) SHA1(cb6a70bdd95d449d25196ca269b621c362db6743) )
+
+ NEO_BIOS_AUDIO_128K( "055-m1.m1", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "055-v1.v1", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) )
+ ROM_LOAD( "055-v2.v2", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) )
+ ROM_LOAD( "055-v3.v3", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "055k.c1", 0x000000, 0x200000, CRC(fcf9ac7c) SHA1(3ff7d34264188764f411168ef0aa2ad6174c2289) )
+ ROM_LOAD16_BYTE( "055-c2.c2", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) )
+ ROM_LOAD16_BYTE( "055-c3.c3", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) )
+ ROM_LOAD16_BYTE( "055-c4.c4", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) )
+ ROM_LOAD16_BYTE( "055-c5.c5", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) )
+ ROM_LOAD16_BYTE( "055-c6.c6", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) )
+ ROM_LOAD16_BYTE( "055-c7.c7", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) )
+ ROM_LOAD16_BYTE( "055-c8.c8", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) )
+ROM_END
+
+ROM_START( kof94kh )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "055kh.p1", 0x100000, 0x100000, CRC(dbecb405) SHA1(1829ce3dfce5e7fff115a0a71588613b75fed879) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "055-s1.s1", CRC(825976c1) SHA1(cb6a70bdd95d449d25196ca269b621c362db6743) )
+
+ NEO_BIOS_AUDIO_128K( "055-m1.m1", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "055-v1.v1", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) )
+ ROM_LOAD( "055-v2.v2", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) )
+ ROM_LOAD( "055-v3.v3", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "055kh.c1", 0x000000, 0x200000, CRC(bf987727) SHA1(d77dcc0f83e80d9b55a62269e13cc6e29c59c8f1) )
+ ROM_LOAD16_BYTE( "055-c2.c2", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) )
+ ROM_LOAD16_BYTE( "055-c3.c3", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) )
+ ROM_LOAD16_BYTE( "055-c4.c4", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) )
+ ROM_LOAD16_BYTE( "055-c5.c5", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) )
+ ROM_LOAD16_BYTE( "055-c6.c6", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) )
+ ROM_LOAD16_BYTE( "055-c7.c7", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) )
+ ROM_LOAD16_BYTE( "055-c8.c8", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) )
+ROM_END
+
+ROM_START( kof94qaq )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "055qaq.p1", 0x100000, 0x100000, CRC(c3dbc23e) SHA1(91cfd1e95df87ce2cff213bc4a0c846231c3cebd) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "055-s1.s1", CRC(825976c1) SHA1(cb6a70bdd95d449d25196ca269b621c362db6743) )
+
+ NEO_BIOS_AUDIO_128K( "055-m1.m1", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "055-v1.v1", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) )
+ ROM_LOAD( "055-v2.v2", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) )
+ ROM_LOAD( "055-v3.v3", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "055-c1.c1", 0x000000, 0x200000, CRC(b96ef460) SHA1(e52f5303c17b50ce165c008be2837336369c110b) )
+ ROM_LOAD16_BYTE( "055-c2.c2", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) )
+ ROM_LOAD16_BYTE( "055-c3.c3", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) )
+ ROM_LOAD16_BYTE( "055-c4.c4", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) )
+ ROM_LOAD16_BYTE( "055-c5.c5", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) )
+ ROM_LOAD16_BYTE( "055-c6.c6", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) )
+ ROM_LOAD16_BYTE( "055-c7.c7", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) )
+ ROM_LOAD16_BYTE( "055-c8.c8", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) )
+ROM_END
+
+ROM_START( kof94ru ) /* The King of Fighters '94 - Remix Ultra by Jason/K3 - (Character move change ultra revision v1.0) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "055ru.p1", 0x100000, 0x100000, CRC(DA5FA694) SHA1(9E937556F821477F6538A0785DF377A2DEA2831A) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "055-s1.s1", CRC(825976c1) SHA1(cb6a70bdd95d449d25196ca269b621c362db6743) )
+
+ NEO_BIOS_AUDIO_128K( "055-m1.m1", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "055-v1.v1", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) )
+ ROM_LOAD( "055-v2.v2", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) )
+ ROM_LOAD( "055-v3.v3", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "055-c1.c1", 0x000000, 0x200000, CRC(b96ef460) SHA1(e52f5303c17b50ce165c008be2837336369c110b) )
+ ROM_LOAD16_BYTE( "055-c2.c2", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) )
+ ROM_LOAD16_BYTE( "055-c3.c3", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) )
+ ROM_LOAD16_BYTE( "055-c4.c4", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) )
+ ROM_LOAD16_BYTE( "055-c5.c5", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) )
+ ROM_LOAD16_BYTE( "055-c6.c6", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) )
+ ROM_LOAD16_BYTE( "055-c7.c7", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) )
+ ROM_LOAD16_BYTE( "055-c8.c8", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) )
+ROM_END
+
+ROM_START( kof94ruj ) // Remix Ultra 1.0 by JasonK3
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "055ruj.p1", 0x100000, 0x100000, CRC(29c916b2) SHA1(6057aea20398e7e4849cf5bac942a02e244893d2) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "055-s1.s1", CRC(825976c1) SHA1(cb6a70bdd95d449d25196ca269b621c362db6743) )
+
+ NEO_BIOS_AUDIO_128K( "055-m1.m1", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "055-v1.v1", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) )
+ ROM_LOAD( "055-v2.v2", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) )
+ ROM_LOAD( "055-v3.v3", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "055-c1.c1", 0x000000, 0x200000, CRC(b96ef460) SHA1(e52f5303c17b50ce165c008be2837336369c110b) )
+ ROM_LOAD16_BYTE( "055-c2.c2", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) )
+ ROM_LOAD16_BYTE( "055-c3.c3", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) )
+ ROM_LOAD16_BYTE( "055-c4.c4", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) )
+ ROM_LOAD16_BYTE( "055-c5.c5", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) )
+ ROM_LOAD16_BYTE( "055-c6.c6", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) )
+ ROM_LOAD16_BYTE( "055-c7.c7", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) )
+ ROM_LOAD16_BYTE( "055-c8.c8", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) )
+ROM_END
+
+ROM_START( kof94rz ) // Hack Boss Remixed by ZKW
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "055rz.p1", 0x100000, 0x100000, CRC(38410fdf) SHA1(e4053b41afd8c8934b7b2977df6d64d8b6338370) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "055rz.s1", CRC(286ab67d) SHA1(c414c1543d13097c49090e46c474c5dd3c524c9c) )
+
+ NEO_BIOS_AUDIO_128K( "055-m1.m1", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "055-v1.v1", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) )
+ ROM_LOAD( "055-v2.v2", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) )
+ ROM_LOAD( "055-v3.v3", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "055-c1.c1", 0x000000, 0x200000, CRC(b96ef460) SHA1(e52f5303c17b50ce165c008be2837336369c110b) )
+ ROM_LOAD16_BYTE( "055-c2.c2", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) )
+ ROM_LOAD16_BYTE( "055-c3.c3", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) )
+ ROM_LOAD16_BYTE( "055-c4.c4", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) )
+ ROM_LOAD16_BYTE( "055-c5.c5", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) )
+ ROM_LOAD16_BYTE( "055-c6.c6", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) )
+ ROM_LOAD16_BYTE( "055-c7.c7", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) )
+ ROM_LOAD16_BYTE( "055-c8.c8", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) )
+ROM_END
+
+ROM_START( kof94seh ) /* The King of Fighters '94 - Super Enhance Hack by Creamymami and Ydmis - (Can choose Rugal - ultra power hack ABC) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "055seh.p1", 0x100000, 0x100000, CRC(3b29945c) SHA1(bac514690165a07886fce08680a26d75487f896c) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "055-s1.s1", CRC(825976c1) SHA1(cb6a70bdd95d449d25196ca269b621c362db6743) )
+
+ NEO_BIOS_AUDIO_128K( "055-m1.m1", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "055-v1.v1", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) )
+ ROM_LOAD( "055-v2.v2", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) )
+ ROM_LOAD( "055-v3.v3", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "055-c1.c1", 0x000000, 0x200000, CRC(b96ef460) SHA1(e52f5303c17b50ce165c008be2837336369c110b) )
+ ROM_LOAD16_BYTE( "055-c2.c2", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) )
+ ROM_LOAD16_BYTE( "055-c3.c3", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) )
+ ROM_LOAD16_BYTE( "055-c4.c4", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) )
+ ROM_LOAD16_BYTE( "055-c5.c5", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) )
+ ROM_LOAD16_BYTE( "055-c6.c6", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) )
+ ROM_LOAD16_BYTE( "055-c7.c7", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) )
+ ROM_LOAD16_BYTE( "055-c8.c8", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) )
+ROM_END
+
+ROM_START( kof94sri ) // Super Remixed By IsmaMj
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "055sri.p1", 0x100000, 0x100000, CRC(c689c85b) SHA1(00661821128225e0d5264d4b1e09fbc32bbe7ed9) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "055-s1.s1", CRC(825976c1) SHA1(cb6a70bdd95d449d25196ca269b621c362db6743) )
+
+ NEO_BIOS_AUDIO_128K( "055-m1.m1", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "055-v1.v1", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) )
+ ROM_LOAD( "055-v2.v2", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) )
+ ROM_LOAD( "055-v3.v3", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "055-c1.c1", 0x000000, 0x200000, CRC(b96ef460) SHA1(e52f5303c17b50ce165c008be2837336369c110b) )
+ ROM_LOAD16_BYTE( "055-c2.c2", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) )
+ ROM_LOAD16_BYTE( "055-c3.c3", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) )
+ ROM_LOAD16_BYTE( "055-c4.c4", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) )
+ ROM_LOAD16_BYTE( "055-c5.c5", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) )
+ ROM_LOAD16_BYTE( "055-c6.c6", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) )
+ ROM_LOAD16_BYTE( "055-c7.c7", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) )
+ ROM_LOAD16_BYTE( "055-c8.c8", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) )
+ROM_END
+
+ROM_START( kof94y ) // Hack Boss By Ydmis
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "055y.p1", 0x100000, 0x100000, CRC(3757022c) SHA1(2da01b9304cf470d8718f70e37ee448f1b31c864) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "055-s1.s1", CRC(825976c1) SHA1(cb6a70bdd95d449d25196ca269b621c362db6743) )
+
+ NEO_BIOS_AUDIO_128K( "055-m1.m1", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "055-v1.v1", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) )
+ ROM_LOAD( "055-v2.v2", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) )
+ ROM_LOAD( "055-v3.v3", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "055-c1.c1", 0x000000, 0x200000, CRC(b96ef460) SHA1(e52f5303c17b50ce165c008be2837336369c110b) )
+ ROM_LOAD16_BYTE( "055-c2.c2", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) )
+ ROM_LOAD16_BYTE( "055-c3.c3", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) )
+ ROM_LOAD16_BYTE( "055-c4.c4", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) )
+ ROM_LOAD16_BYTE( "055-c5.c5", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) )
+ ROM_LOAD16_BYTE( "055-c6.c6", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) )
+ ROM_LOAD16_BYTE( "055-c7.c7", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) )
+ ROM_LOAD16_BYTE( "055-c8.c8", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) )
+ROM_END
+
+
+
+GAME( 1994, kof94b, kof94, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Kof'94 (Add Char)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, kof94bc, kof94, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'94 (Boss Colour Remix)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, kof94blk, kof94, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "IsmaMj", "Kof'94 (Boss Fix Black Xtreme 0.8)", MACHINE_SUPPORTS_SAVE )
+GAME( 2006, kof94br, kof94, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Neogeo BR team", "Kof'94 (Portuguese Edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, kof94cg, kof94, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'94 (Colour Patch)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, kof94cn, kof94, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'94 (Chinese Version)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, kof94cyk, kof94, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yumeji & Kawada7278", "Kof'94 (Hack Boss and Color)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, kof94eh, kof94, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Kof'94 (Add Char - Pow hack ABC)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, kof94h, kof94, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Jason", "Kof'94 Remix Ultra", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, kof94k, kof94, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'94 (Korean Edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, kof94kh, kof94, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'94 (Korean Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, kof94qaq, kof94, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Xuyongsheng90", "Kof'94 (Power Enhanced hack by Xuyongsheng90)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, kof94ru, kof94, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Jason/K3", "Kof'94 KOF REMIX ULTRA (v1.0)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, kof94ruj, kof94, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Jason/K3", "Kof'94 KOF REMIX ULTRA (1.0)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, kof94rz, kof94, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "ZKW", "Kof'94 (Hack Boss Remixed)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, kof94seh, kof94, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami and Ydmis", "Kof'94 (Add Char - Ultra pow hack ABC)", MACHINE_SUPPORTS_SAVE ) // Rugal
+GAME( 1994, kof94sri, kof94, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "IsmaMj", "Kof'94 KOF REMIX ULTRA (Super Remixed)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, kof94y, kof94, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Kof'94 (Hack Boss)", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/kof95.cpp b/docs/release/src/hbmame/drivers/kof95.cpp
new file mode 100644
index 00000000000..258a219e74d
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/kof95.cpp
@@ -0,0 +1,369 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+
+
+
+ROM_START( kof95b ) /* The King of Fighters '95 - Hack by UNKNOWN - (Can choose Kusanagi and Rugal) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "084b.p1", 0x100000, 0x100000, CRC(64d9aa39) SHA1(2f1f1adf33e4944bd4d1ae913bb48c73a97d6ea2) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "084-s1.s1", CRC(de716f8a) SHA1(f7386454a943ed5caf625f67ee1d0197b1c6fa13) )
+
+ NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) )
+
+ ROM_REGION( 0x900000, "ymsnd", 0 )
+ ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) )
+ ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) )
+ ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "084-c1.c1", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) )
+ ROM_LOAD16_BYTE( "084-c2.c2", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) )
+ ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) )
+ ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) )
+ ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) )
+ ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) )
+ ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) )
+ ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) )
+ROM_END
+
+ROM_START( kof95bln ) // Boss - Like NeogeoCD Version (Eddids hack)
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "084bln.p1", 0x100000, 0x100000, CRC(66f5db66) SHA1(742c8e1d8f6135004bd025ecccc0c61e14368d54) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "084-s1.s1", CRC(de716f8a) SHA1(f7386454a943ed5caf625f67ee1d0197b1c6fa13) )
+
+ NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) )
+
+ ROM_REGION( 0x900000, "ymsnd", 0 )
+ ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) )
+ ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) )
+ ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "084-c1.c1", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) )
+ ROM_LOAD16_BYTE( "084-c2.c2", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) )
+ ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) )
+ ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) )
+ ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) )
+ ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) )
+ ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) )
+ ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) )
+ROM_END
+
+ROM_START( kof95brz ) // Boss Remixed by ZKW
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "084brz.p1",0x100000, 0x100000, CRC(754261d7) SHA1(195d10c0748b1d4607e6ca2297c59893e978fc58) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "084brz.s1", CRC(4b7e9b31) SHA1(32d29be92881879ef5ce6ad74dc8640e6f70346e) )
+
+ NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) ) /* TC531001 */
+
+ ROM_REGION( 0x900000, "ymsnd", 0 )
+ ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) ) /* TC5332201 */
+ ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) ) /* TC5316200 */
+ ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) ) /* TC538200 */
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "084-c1.c1", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) ) /* Plane 0,1 */ /* TC5332202 */
+ ROM_LOAD16_BYTE( "084-c2.c2", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) ) /* Plane 2,3 */ /* TC5332202 */
+ ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) ) /* Plane 0,1 */ /* TC5332202 */
+ ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) ) /* Plane 2,3 */ /* TC5332202 */
+ ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) ) /* Plane 0,1 */ /* TC5316200 */
+ ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) ) /* Plane 2,3 */ /* TC5316200 */
+ ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) ) /* Plane 0,1 */ /* TC538200 */
+ ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) ) /* Plane 2,3 */ /* TC538200 */
+ROM_END
+
+ROM_START( kof95ce ) // Color Edit
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "084ce.p1",0x100000, 0x100000, CRC(86ffcab0) SHA1(124211a9a85f46cd14eb0b70783147ea9a216a24) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "084brz.s1", CRC(4b7e9b31) SHA1(32d29be92881879ef5ce6ad74dc8640e6f70346e) )
+
+ NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) ) /* TC531001 */
+
+ ROM_REGION( 0x900000, "ymsnd", 0 )
+ ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) ) /* TC5332201 */
+ ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) ) /* TC5316200 */
+ ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) ) /* TC538200 */
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "084-c1.c1", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) ) /* Plane 0,1 */ /* TC5332202 */
+ ROM_LOAD16_BYTE( "084-c2.c2", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) ) /* Plane 2,3 */ /* TC5332202 */
+ ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) ) /* Plane 0,1 */ /* TC5332202 */
+ ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) ) /* Plane 2,3 */ /* TC5332202 */
+ ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) ) /* Plane 0,1 */ /* TC5316200 */
+ ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) ) /* Plane 2,3 */ /* TC5316200 */
+ ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) ) /* Plane 0,1 */ /* TC538200 */
+ ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) ) /* Plane 2,3 */ /* TC538200 */
+ROM_END
+
+ROM_START( kof95d )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "084d.p1", 0x000000, 0x200000, CRC(467a442f) SHA1(d58a5a0b0ac253caf1186ee6a688b16154bf145d) )
+
+ NEO_SFIX_128K( "084-s1.s1", CRC(de716f8a) SHA1(f7386454a943ed5caf625f67ee1d0197b1c6fa13) )
+
+ NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) )
+
+ ROM_REGION( 0x900000, "ymsnd", 0 )
+ ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) )
+ ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) )
+ ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "084-c1.c1", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) )
+ ROM_LOAD16_BYTE( "084-c2.c2", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) )
+ ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) )
+ ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) )
+ ROM_LOAD16_BYTE( "084d.c5", 0x1000000, 0x400000, CRC(fd45472a) SHA1(e2d370bf629390e54c6c124570970ae7e568eee7) )
+ ROM_LOAD16_BYTE( "084d.c6", 0x1000001, 0x400000, CRC(5ab5ea75) SHA1(f68ce2f621e6b6c94080cad00e84e8b42d1d68a9) )
+ ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) )
+ ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) )
+ROM_END
+
+ROM_START( kof95eh ) /* The King of Fighters '95 - Enhance by Ydmis - (Can choose Kusanagi and Rugal - power hack ABC) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "084eh.p1", 0x100000, 0x100000, CRC(fe421168) SHA1(2970b26c851d486493eb5fd127d1ed5e42578816) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "084-s1.s1", CRC(de716f8a) SHA1(f7386454a943ed5caf625f67ee1d0197b1c6fa13) )
+
+ NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) )
+
+ ROM_REGION( 0x900000, "ymsnd", 0 )
+ ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) )
+ ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) )
+ ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "084-c1.c1", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) )
+ ROM_LOAD16_BYTE( "084-c2.c2", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) )
+ ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) )
+ ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) )
+ ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) )
+ ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) )
+ ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) )
+ ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) )
+ROM_END
+
+ROM_START( kof95hp ) /* The King of Fighters '95 - Hack by HackPlus - (Can choose Kusanagi and Rugal) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "084hp.p1", 0x100000, 0x100000, CRC(865642a4) SHA1(726d918b1f4a8e9b7dccd57944979d57448e9f3e) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "084-s1.s1", CRC(de716f8a) SHA1(f7386454a943ed5caf625f67ee1d0197b1c6fa13) )
+
+ NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) )
+
+ ROM_REGION( 0x900000, "ymsnd", 0 )
+ ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) )
+ ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) )
+ ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "084-c1.c1", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) )
+ ROM_LOAD16_BYTE( "084-c2.c2", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) )
+ ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) )
+ ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) )
+ ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) )
+ ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) )
+ ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) )
+ ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) )
+ROM_END
+
+ROM_START( kof95k ) // can't see any difference
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "084k.p1", 0x100000, 0x100000, CRC(a974521b) SHA1(053744af529dcebda83964efdf0bacad536971da) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "084k.s1", CRC(0d07a5ab) SHA1(d5426bb91fe31cbb1633d2ca90479869c8d2210d) )
+
+ NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) )
+
+ ROM_REGION( 0x900000, "ymsnd", 0 )
+ ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) )
+ ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) )
+ ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "084k.c1", 0x0000000, 0x400000, CRC(4bb4eb90) SHA1(b14ed655272a13cc189bc6bc3a5f327c55e2182b) )
+ ROM_LOAD16_BYTE( "084k.c2", 0x0000001, 0x400000, CRC(7e94c968) SHA1(e188e6c714ec7600f1275b01c56c8e836fc00a05) )
+ ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) )
+ ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) )
+ ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) )
+ ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) )
+ ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) )
+ ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) )
+ROM_END
+
+ROM_START( kof95neo )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "084neo.p1", 0x000000, 0x200000, CRC(77ae1281) SHA1(bbd8105a2ea0e1b9f42cbb2c6760a05dc37d4e67) )
+
+ NEO_SFIX_128K( "084-s1.s1", CRC(de716f8a) SHA1(f7386454a943ed5caf625f67ee1d0197b1c6fa13) )
+
+ NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) )
+
+ ROM_REGION( 0x900000, "ymsnd", 0 )
+ ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) )
+ ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) )
+ ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "084-c1.c1", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) )
+ ROM_LOAD16_BYTE( "084-c2.c2", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) )
+ ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) )
+ ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) )
+ ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) )
+ ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) )
+ ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) )
+ ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) )
+ROM_END
+
+ROM_START( kof95pjc ) /* The King of Fighters '95 - Colour fix by TcwLee - (Character colour change - can choose Kusanagi and Rugal) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "084pjc.p1", 0x100000, 0x100000, CRC(da14c25e) SHA1(03309a228783864bbb3cb70295c874812e63e959) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "084-s1.s1", CRC(de716f8a) SHA1(f7386454a943ed5caf625f67ee1d0197b1c6fa13) )
+
+ NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) )
+
+ ROM_REGION( 0x900000, "ymsnd", 0 )
+ ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) )
+ ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) )
+ ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "084-c1.c1", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) )
+ ROM_LOAD16_BYTE( "084-c2.c2", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) )
+ ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) )
+ ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) )
+ ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) )
+ ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) )
+ ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) )
+ ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) )
+ROM_END
+
+ROM_START( kof95ru ) /* The King of Fighters '95 - Remix Ultra by Jason/K3 - (Character move change ultra revision v1.0) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "084ru.p1", 0x100000, 0x100000, CRC(08492B09) SHA1(25AF69066E96958B25CCECE77013945E640F7B83) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "084-s1.s1", CRC(de716f8a) SHA1(f7386454a943ed5caf625f67ee1d0197b1c6fa13) )
+
+ NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) )
+
+ ROM_REGION( 0x900000, "ymsnd", 0 )
+ ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) )
+ ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) )
+ ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "084-c1.c1", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) )
+ ROM_LOAD16_BYTE( "084-c2.c2", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) )
+ ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) )
+ ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) )
+ ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) )
+ ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) )
+ ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) )
+ ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) )
+ROM_END
+
+ROM_START( kof95seh ) /* The King of Fighters '95 - Super Enhance Hack by Creamymami and Ydmis - (Can choose Kusanagi and Rugal - ultra power hack ABC) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "084seh.p1", 0x100000, 0x100000, CRC(7b39effe) SHA1(2d19defbb01f74d46d8d303705d6ff8b48c6391e) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "084-s1.s1", CRC(de716f8a) SHA1(f7386454a943ed5caf625f67ee1d0197b1c6fa13) )
+
+ NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) )
+
+ ROM_REGION( 0x900000, "ymsnd", 0 )
+ ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) )
+ ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) )
+ ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "084-c1.c1", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) )
+ ROM_LOAD16_BYTE( "084-c2.c2", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) )
+ ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) )
+ ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) )
+ ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) )
+ ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) )
+ ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) )
+ ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) )
+ROM_END
+
+ROM_START( kof95xg )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "084xg.p1", 0x100000, 0x100000, CRC(2b54003a) SHA1(9def4100b72c50a8c9138f0ac7985bae85eae198) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "084-s1.s1", CRC(de716f8a) SHA1(f7386454a943ed5caf625f67ee1d0197b1c6fa13) )
+
+ NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) )
+
+ ROM_REGION( 0x900000, "ymsnd", 0 )
+ ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) )
+ ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) )
+ ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "084-c1.c1", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) ) /* Plane 0,1 */
+ ROM_LOAD16_BYTE( "084-c2.c2", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) ) /* Plane 2,3 */
+ ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) ) /* Plane 0,1 */
+ ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) ) /* Plane 2,3 */
+ ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) ) /* Plane 0,1 */
+ ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) ) /* Plane 2,3 */
+ ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) ) /* Plane 0,1 */
+ ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) ) /* Plane 2,3 */
+ROM_END
+
+ROM_START( kof95y ) /* The King of Fighters '95 - Hack by Ydmis - (Can choose Kusanagi and Rugal) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "084y.p1", 0x100000, 0x100000, CRC(c838b32b) SHA1(7fa1a21f4e3b975989eaa86cad4679bad579908d) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "084-s1.s1", CRC(de716f8a) SHA1(f7386454a943ed5caf625f67ee1d0197b1c6fa13) )
+
+ NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) )
+
+ ROM_REGION( 0x900000, "ymsnd", 0 )
+ ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) )
+ ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) )
+ ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "084-c1.c1", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) )
+ ROM_LOAD16_BYTE( "084-c2.c2", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) )
+ ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) )
+ ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) )
+ ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) )
+ ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) )
+ ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) )
+ ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) )
+ROM_END
+
+
+
+GAME( 1995, kof95b, kof95, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'95 (Add Char set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, kof95bln, kof95, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Eddids", "Kof'95 (Boss - Like NeogeoCD Version)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, kof95brz, kof95, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "ZKW", "Kof'95 (Boss Remixed)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, kof95ce, kof95, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'95 (Colour Edit)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, kof95d, kof95, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'95 (unknown d)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, kof95eh, kof95, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Kof'95 (Add Char - Pow hack ABC)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, kof95hp, kof95, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "HackPlus", "Kof'95 (Add Char set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, kof95k, kof95, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'95 (Korean Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, kof95neo, kof95, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'95 (Boss Like NGCD v1.1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, kof95pjc, kof95, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "TcwLee", "Kof'95 (Add Char - Char color changed)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, kof95ru, kof95, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Jason/K3", "Kof'95 KOF REMIX PRO (Diff Moves ultra rev v1.0)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, kof95seh, kof95, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami and Ydmis", "Kof'95 (Add Char - Ultra pow hack ABC)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, kof95xg, kof95, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "PPX Hack Team", "Kof'95 (Boss)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, kof95y, kof95, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Kof'95 (Add Char set 1)", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/kof96.cpp b/docs/release/src/hbmame/drivers/kof96.cpp
new file mode 100644
index 00000000000..443119a68d2
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/kof96.cpp
@@ -0,0 +1,1574 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+
+
+
+// kof96ep has an extra rom with crossed wires which overrides part of the
+// main p1 rom. This init unscrambles the extra rom and inserts the new
+// code into the correct place.
+DRIVER_INIT_MEMBER( neogeo_hbmame, kof96ep )
+{
+ DRIVER_INIT_CALL(neogeo);
+ int i,j;
+ uint8_t *rom = cpuregion;
+ for ( i=0; i < 0x080000; i++ )
+ {
+ j=i+0x300000;
+ if (rom[j] - rom[i] == 8) rom[j]=rom[i];
+ }
+ memcpy(rom, rom+0x300000, 0x080000);
+}
+
+
+
+ROM_START( kof96a )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214a.ep1", 0x000000, 0x080000, CRC(a6101486) SHA1(51357c216cc8e52fc4ecf5b2db4814e87d016132) )
+ ROM_LOAD16_WORD_SWAP( "214a.ep2", 0x080000, 0x080000, CRC(6abc7ae5) SHA1(1bcbed38ef1934a0701d1c95b30ffe63316f92a8) )
+ ROM_LOAD16_WORD_SWAP( "214a.ep3", 0x100000, 0x080000, CRC(a588dff4) SHA1(32d30bdf9b7bc9201b3930f5a0f126c79af97f3d) )
+ ROM_LOAD16_WORD_SWAP( "214a.ep4", 0x180000, 0x080000, CRC(6d6f17eb) SHA1(51f61c9a4215584493cf1dc37c4e307e1216626c) )
+ ROM_LOAD16_WORD_SWAP( "214a.p5", 0x200000, 0x100000, CRC(9f3c6bc9) SHA1(90370a2ad42421a533182569e63ab81822e37878) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96ae ) // 10th Anniversary 2009
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214ae.p1", 0x000000, 0x100000, CRC(c038e932) SHA1(ad9cbe9d82a07378d901323eb721ab171164286b) )
+ ROM_LOAD16_WORD_SWAP( "214ae.p2", 0x100000, 0x400000, CRC(66da868f) SHA1(8bada399828d0c55c82a00bfe605de95b8ca07f6) )
+
+ NEO_SFIX_128K( "214ae.s1", CRC(0f902790) SHA1(9f7d95299f828af7bd62cb18680c8127e0e10ecc) )
+
+ NEO_BIOS_AUDIO_128K( "214lx.m1", CRC(c9dd0348) SHA1(6b1003bb7ec01295c71d025c464f922bd555ba55) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214ae.v3", 0x800000, 0x400000, CRC(3cfd1295) SHA1(cfc6ed642ab736592673e96652232534b0e88080) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214ae.c1", 0x0000000, 0x400000, CRC(b308c1f9) SHA1(0c026b49ef45065c0691255a538921b0b4ad11dd) )
+ ROM_LOAD16_BYTE( "214ae.c2", 0x0000001, 0x400000, CRC(220a92b2) SHA1(4f33fc76a199aef2880b3ba1760f92973315edfa) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214ae.c5", 0x1000000, 0x400000, CRC(41dbd677) SHA1(447d081bd8c390df63b9800ef302d2ada660796a) )
+ ROM_LOAD16_BYTE( "214ae.c6", 0x1000001, 0x400000, CRC(1e6a3961) SHA1(ac09dc3e38209033e7797ec6896dd176f3ce6272) )
+ ROM_LOAD16_BYTE( "214ae.c7", 0x1800000, 0x400000, CRC(08021fd6) SHA1(77c8fed7ac39e6a1a24a294f95c095c098a85c11) )
+ ROM_LOAD16_BYTE( "214ae.c8", 0x1800001, 0x400000, CRC(bbd21b08) SHA1(4e060195b632e99634ca9c67fb2398c5a91c3341) )
+ ROM_LOAD16_BYTE( "214ae.c9", 0x2000000, 0x400000, CRC(2efceab8) SHA1(e38c4d2be4d1101d9463cb7c7295f42676cbedb9) )
+ ROM_LOAD16_BYTE( "214ae.c10", 0x2000001, 0x400000, CRC(9f7e1492) SHA1(11315f6ef47210b56004036162767d2e1f7b39b2) )
+ ROM_LOAD16_BYTE( "214ae.c11", 0x2800000, 0x400000, CRC(183cd8fd) SHA1(bd4d47780bf80e382759fd4bbe25fefd4a180610) )
+ ROM_LOAD16_BYTE( "214ae.c12", 0x2800001, 0x400000, CRC(b3d30499) SHA1(34e8009e05cdc8a2fc41e8551df4a5f681a329c1) )
+ROM_END
+
+ROM_START( kof96ae1 ) // 10th Anniversary 2007
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214lx.p1", 0x000000, 0x100000, CRC(47660e7c) SHA1(d6e4595c1c4cc14896bea187668580c73da6c1e7) )
+ ROM_LOAD16_WORD_SWAP( "214ae1.p2", 0x100000, 0x400000, CRC(824ff3eb) SHA1(c3efdcd7e72ac4164721f80b097e874b98539720) )
+
+ NEO_SFIX_128K( "214ae1.s1", CRC(203b3aaf) SHA1(5a82e9130c9218ca163e195863e3a759130a4594) )
+
+ NEO_BIOS_AUDIO_128K( "214lx.m1", CRC(c9dd0348) SHA1(6b1003bb7ec01295c71d025c464f922bd555ba55) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214lx.v3", 0x800000, 0x400000, CRC(143923a7) SHA1(1ba0fc91fd8bdf51c3cab6191ec275a3da5d75bb) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214ae.c1", 0x0000000, 0x400000, CRC(b308c1f9) SHA1(0c026b49ef45065c0691255a538921b0b4ad11dd) )
+ ROM_LOAD16_BYTE( "214ae.c2", 0x0000001, 0x400000, CRC(220a92b2) SHA1(4f33fc76a199aef2880b3ba1760f92973315edfa) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214ae1.c5", 0x1000000, 0x400000, CRC(6e03cb0c) SHA1(b75bef8025ab84e8b36404e94901092d19b3543a) )
+ ROM_LOAD16_BYTE( "214ae1.c6", 0x1000001, 0x400000, CRC(a90bc55d) SHA1(75e141fc9debe5cb1db3875094c51afc9d852fac) )
+ ROM_LOAD16_BYTE( "214ae.c7", 0x1800000, 0x400000, CRC(08021fd6) SHA1(77c8fed7ac39e6a1a24a294f95c095c098a85c11) )
+ ROM_LOAD16_BYTE( "214ae.c8", 0x1800001, 0x400000, CRC(bbd21b08) SHA1(4e060195b632e99634ca9c67fb2398c5a91c3341) )
+ ROM_LOAD16_BYTE( "214ae1.c9", 0x2000000, 0x400000, CRC(57e5bf80) SHA1(ef9a8f08ba094376257f29beb3fce04324edc4bf) )
+ ROM_LOAD16_BYTE( "214ae1.c10", 0x2000001, 0x400000, CRC(cbe44c81) SHA1(be87a92a1f8f1985b5441608db7329aabb745bbb) )
+ ROM_LOAD16_BYTE( "214ae1.c11", 0x2800000, 0x400000, CRC(5c7ddc8b) SHA1(34e0ae91968a58392db273f209dccfa11890fd26) )
+ ROM_LOAD16_BYTE( "214ae1.c12", 0x2800001, 0x400000, CRC(48d8b574) SHA1(fa9be64f0cde68b9685146d5768dc95ddf9d54b8) )
+ROM_END
+
+ROM_START( kof96ae1a ) // 10th Anniversary 2007, different gfx roms
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214lx.p1", 0x000000, 0x100000, CRC(47660e7c) SHA1(d6e4595c1c4cc14896bea187668580c73da6c1e7) )
+ ROM_LOAD16_WORD_SWAP( "214ae1.p2", 0x100000, 0x400000, CRC(824ff3eb) SHA1(c3efdcd7e72ac4164721f80b097e874b98539720) )
+
+ NEO_SFIX_128K( "214ae1.s1", CRC(203b3aaf) SHA1(5a82e9130c9218ca163e195863e3a759130a4594) )
+
+ NEO_BIOS_AUDIO_128K( "214lx.m1", CRC(c9dd0348) SHA1(6b1003bb7ec01295c71d025c464f922bd555ba55) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214lx.v3", 0x800000, 0x400000, CRC(143923a7) SHA1(1ba0fc91fd8bdf51c3cab6191ec275a3da5d75bb) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214ae1a.c1", 0x0000000, 0x1800000, CRC(c68508df) SHA1(f7e9ad7cfe506658a7aec51c79ebc119db456655) )
+ ROM_LOAD16_BYTE( "214ae1a.c2", 0x0000001, 0x1800000, CRC(078d9390) SHA1(ef78328ee7e663a38318bb4c20f4c9c3316536ea) )
+ROM_END
+
+ROM_START( kof96ae1b ) // 10th Anniversary 2007, different gfx roms
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214lx.p1", 0x000000, 0x100000, CRC(47660e7c) SHA1(d6e4595c1c4cc14896bea187668580c73da6c1e7) )
+ ROM_LOAD16_WORD_SWAP( "214ae1.p2", 0x100000, 0x400000, CRC(824ff3eb) SHA1(c3efdcd7e72ac4164721f80b097e874b98539720) )
+
+ NEO_SFIX_128K( "214ae1.s1", CRC(203b3aaf) SHA1(5a82e9130c9218ca163e195863e3a759130a4594) )
+
+ NEO_BIOS_AUDIO_128K( "214lx.m1", CRC(c9dd0348) SHA1(6b1003bb7ec01295c71d025c464f922bd555ba55) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214lx.v3", 0x800000, 0x400000, CRC(143923a7) SHA1(1ba0fc91fd8bdf51c3cab6191ec275a3da5d75bb) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214ae.c1", 0x0000000, 0x400000, CRC(b308c1f9) SHA1(0c026b49ef45065c0691255a538921b0b4ad11dd) )
+ ROM_LOAD16_BYTE( "214ae.c2", 0x0000001, 0x400000, CRC(220a92b2) SHA1(4f33fc76a199aef2880b3ba1760f92973315edfa) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214ae1.c5", 0x1000000, 0x400000, CRC(6e03cb0c) SHA1(b75bef8025ab84e8b36404e94901092d19b3543a) )
+ ROM_LOAD16_BYTE( "214ae1.c6", 0x1000001, 0x400000, CRC(a90bc55d) SHA1(75e141fc9debe5cb1db3875094c51afc9d852fac) )
+ ROM_LOAD16_BYTE( "214ae.c7", 0x1800000, 0x400000, CRC(08021fd6) SHA1(77c8fed7ac39e6a1a24a294f95c095c098a85c11) )
+ ROM_LOAD16_BYTE( "214ae.c8", 0x1800001, 0x400000, CRC(bbd21b08) SHA1(4e060195b632e99634ca9c67fb2398c5a91c3341) )
+ ROM_LOAD16_BYTE( "214ae1b.c9", 0x2000000, 0x800000, CRC(824f5fdd) SHA1(79664e30b01bb5f4b3aa6e73c8b785bc253101aa) )
+ ROM_LOAD16_BYTE( "214ae1b.c10", 0x2000001, 0x800000, CRC(850a1f6e) SHA1(7918a6ef11681a7d3b0f0a115d2138e89ca87346) )
+ROM_END
+
+ROM_START( kof96b ) /* The King of Fighters '96 - Hack by UNKNOWN - (Can choose Chizuru Kagura and Goenitz) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214b.p1", 0x000000, 0x100000, CRC(0b385fab) SHA1(ea544d95438b373e3f5f530528413ff583d2b329) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96b1 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214b1.p1", 0x000000, 0x100000, CRC(9ec8c837) SHA1(bcf2286fc8ba0128a3f597ae6411949d3dac1db7) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96bb )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214-p1.p1", 0x000000, 0x100000, CRC(52755d74) SHA1(4232d627f1d2e6ea9fc8cf01571d77d4d5b8a1bb) )
+ ROM_LOAD16_WORD_SWAP( "214bb.p2", 0x100000, 0x200000, CRC(6d4ca2ec) SHA1(9bac19d64e3fb058610df451622fcc927642006d) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96c ) /* The King of Fighters '96 - (kof96c) - Hack by Kyofun - (Chinese Ver.1.0) */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214c.p1", 0x000000, 0x800000, CRC(51990a7f) SHA1(eef003e5a7e43d670fe916c983c161d213337627) )
+
+ NEO_SFIX_128K( "214c.s1", CRC(f917527a) SHA1(8c4778f9dc5e0651042f8ff6f1a18e3f40d0bf7c) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214c.c1", 0x0000000, 0x1800000, CRC(a89789ba) SHA1(25632122b747eb97a4ffb94d8e0cd7c20940d118) )
+ ROM_LOAD16_BYTE( "214c.c2", 0x0000001, 0x1800000, CRC(e4a5e70d) SHA1(4f4691d386cfd63015812475bc58b1e8ae4b23ff) )
+ROM_END
+
+ROM_START( kof96cbi ) // Change Blood For Other Hack By IsmaMj (02-03-11)
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214cbi.p1", 0x000000, 0x100000, CRC(4110ab9f) SHA1(f45eb631ceccac6d7d94ad6d0bdb1bc1bc198246) )
+ ROM_LOAD16_WORD_SWAP( "214cbi.p2", 0x100000, 0x200000, CRC(2b5fa72a) SHA1(3b44765a3155cb830fdfb1d1ddc357405a42d1cf) )
+
+ NEO_SFIX_128K( "214cbi.s1", CRC(46a20a2c) SHA1(ef9584afee4cef53f166f247ec9e6b2ff0c29da8) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214cbi.c7", 0x1800000, 0x400000, CRC(e306d179) SHA1(dbacbb4a8417ca9cc3578a91121a8f98ce7c1974) )
+ ROM_LOAD16_BYTE( "214cbi.c8", 0x1800001, 0x400000, CRC(7a8cdac6) SHA1(59a61a5764859ea141d6caa9c10e9e8fed4be877) )
+ROM_END
+
+ROM_START( kof96ckvs ) /* The King of Fighters '96 - (kof96ckvs) - Hack by KVS - (Chinese Version) */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214ckvs.p1", 0x000000, 0x800000, CRC(802a8874) SHA1(c76857acf29366af9e3ac8bf07fad0976ec2607f) )
+
+ NEO_SFIX_128K( "214ckvs.s1", CRC(3e9c7f67) SHA1(8d08e7861fbc3c8305b7160b8856326d8d407237) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214ckvs.v1", 0x000000, 0xa00000, CRC(4f14a72b) SHA1(fb1105aa271ea14016f777017cf6079ff61e176f) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214ckvs.c1", 0x0000000, 0x1800000, CRC(252e41e9) SHA1(2844b65dce7a47c04da4473d5ef519cbbdab0e09) )
+ ROM_LOAD16_BYTE( "214c.c2", 0x0000001, 0x1800000, CRC(e4a5e70d) SHA1(4f4691d386cfd63015812475bc58b1e8ae4b23ff) )
+ROM_END
+
+ROM_START( kof96chj ) /* [OLD] The King of Fighters '96 - (kof96chj) - Remix by CHL and Jason/K3 - (Character move change - ultra kill style change) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214chj.p1", 0x000000, 0x100000, CRC(2a2a63ad) SHA1(92fca18b6bfc77569572262fcfbee732510dc3d6) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96cn )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214cn.p1", 0x000000, 0x100000, CRC(a8c25f0a) SHA1(f6b0f82ec7baa235fa68713bb1b12e3e83db8be5) )
+ ROM_LOAD16_WORD_SWAP( "214cn.p2", 0x100000, 0x200000, CRC(0edface5) SHA1(2fb7a3e84758a6ce3977b6a1f306867cb52fe0f5) )
+ ROM_LOAD16_WORD_SWAP( "214cn.p3", 0x300000, 0x500000, CRC(8724a441) SHA1(409a93e3bd7f40dfd623c2ed1f7173fa55f597b8) )
+
+ NEO_SFIX_128K( "214c.s1", CRC(f917527a) SHA1(8c4778f9dc5e0651042f8ff6f1a18e3f40d0bf7c) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ ROM_LOAD16_BYTE( "214cn.c9", 0x2000000, 0x400000, CRC(a9f811d2) SHA1(abd1bd95d2f44fc4b604294c12c5509b41509ed7) )
+ ROM_LOAD16_BYTE( "214cn.c10", 0x2000001, 0x400000, CRC(1147406a) SHA1(2bccbd2f38f15c13eb7d5a89fd9d85f595e23bc3) )
+ROM_END
+
+ROM_START( kof96cr ) /* The King of Fighters '96 - Remix by CHL - (Character move and behaviour change) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214cr.p1", 0x000000, 0x100000, CRC(7d07f47d) SHA1(bc539a4cd318a3d68e97a71ae572c53827bcfcd6) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96de ) // Dragon Edition set 2
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214de.p1", 0x000000, 0x100000, CRC(d2a9a727) SHA1(ecfcfc0a537827707cf7e4f4789c23b376362198) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96dr1 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214dr1.p1", 0x000000, 0x100000, CRC(23bca98e) SHA1(76182ebbcb4ae2c6e8e9248f0cc9af0f5befc00f) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96eh ) /* The King of Fighters '96 - Enhance by Ydmis - (Can choose Chizuru Kagura and Goenitz - power hack ABC) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214eh.p1", 0x000000, 0x100000, CRC(103ba0e4) SHA1(dd4964f2ad5f0c3540dff495d103890b9ecf0cbb) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96ep )
+ ROM_REGION( 0x380000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214-p1.p1", 0x000000, 0x100000, CRC(52755d74) SHA1(4232d627f1d2e6ea9fc8cf01571d77d4d5b8a1bb) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+ ROM_LOAD16_WORD_SWAP( "214ep.p1", 0x300000, 0x080000, CRC(e5f2fb43) SHA1(5efff9873b30679ea924b7770606c889a1076315) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96ep2 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214ep2.p1", 0x000000, 0x100000, CRC(8233b2cf) SHA1(14fd815d80ff6f719539f746e5bd041d4fe85ecb) )
+ ROM_LOAD16_WORD_SWAP( "214ep2.p2", 0x100000, 0x200000, CRC(9c57ae89) SHA1(65140219665938fe5365c2e4d1efd3424eaadd2f) )
+
+ NEO_SFIX_128K( "214ep2.s1", CRC(773aeb80) SHA1(04db79cba617b5c0634cb0f1cef6c9f1228eb31c) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214rf.c7", 0x1800000, 0x400000, CRC(3459297a) SHA1(cc839fdf327a7e3c107132d871d617d3cdef9f94) )
+ ROM_LOAD16_BYTE( "214rf.c8", 0x1800001, 0x400000, CRC(8266c111) SHA1(3b3046e896b2720f6a34c2091ce1d68e581cc44e) )
+ROM_END
+
+ROM_START( kof96ep3 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214ep3.p1", 0x000000, 0x100000, CRC(687f1ba8) SHA1(9734e1b7ad9e13c8d5a7fbe411aae338373acf4a) )
+ ROM_LOAD16_WORD_SWAP( "214ep2.p2", 0x100000, 0x200000, CRC(9c57ae89) SHA1(65140219665938fe5365c2e4d1efd3424eaadd2f) )
+
+ NEO_SFIX_128K( "214ep2.s1", CRC(773aeb80) SHA1(04db79cba617b5c0634cb0f1cef6c9f1228eb31c) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214rf.c7", 0x1800000, 0x400000, CRC(3459297a) SHA1(cc839fdf327a7e3c107132d871d617d3cdef9f94) )
+ ROM_LOAD16_BYTE( "214rf.c8", 0x1800001, 0x400000, CRC(8266c111) SHA1(3b3046e896b2720f6a34c2091ce1d68e581cc44e) )
+ROM_END
+
+ROM_START( kof96evo ) /* The King of Fighters '96 - KOF96 Evolution by Wesker - (Character move and style revision) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214evo.p1", 0x000000, 0x200000, CRC(6e10e1af) SHA1(f013e827e74a296d462bd00594b823dd02b4dc76) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96evoo ) /* [OLD] The King of Fighters '96 - (kof96evoo) - Remix by Wesker - (Character move change and style revision) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214evoo.p1", 0x000000, 0x200000, CRC(1e970d76) SHA1(2904241785c2544f270263f9203eef5207defef4) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96evsp )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214evsp.p1", 0x000000, 0x100000, CRC(61099e5a) SHA1(41fa30c070e28024b54793c4953959f4508f7f86) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96ey ) /* The King of Fighters '96 - Enhance by Ydmis - (Power hack ABC) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214ey.p1", 0x000000, 0x100000, CRC(2342fd92) SHA1(0901db47ff1f504d1635da0b2fdd417bbdd71839) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96hp ) /* The King of Fighters '96 - Hack by HackPlus - (Can choose Chizuru Kagura and Goenitz) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214hp.p1", 0x000000, 0x100000, CRC(fcf57652) SHA1(c423bf3ea2d02b3d8df338b69559861479360b02) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96hp1 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214hp1.p1", 0x000000, 0x100000, CRC(be961ca2) SHA1(21c431082fe8fdf242651efb12a30cf157c77e49) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96hpr ) /* The King of Fighters '96 - Hack by HackPlus - (Can choose Chizuru Kagura and Goenitz - revised) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214hpr.p1", 0x000000, 0x100000, CRC(92c9df44) SHA1(f9d42176858c7c466c6e34ca3b360cb87cbf131c) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96k ) /* The King of Fighters '96 -Hack by Kurouri - (Can choose Chizuru Kagura and Goenitz - power hack ABC) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214k.p1", 0x000000, 0x100000, CRC(e0256484) SHA1(3b7b281962665c6198329e64b4c5d9c4ef871a04) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96k1 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214-p1.p1", 0x000000, 0x100000, CRC(52755d74) SHA1(4232d627f1d2e6ea9fc8cf01571d77d4d5b8a1bb) )
+ ROM_LOAD16_WORD_SWAP( "214k1.p2", 0x100000, 0x200000, CRC(93ac7dff) SHA1(e8a8679c2b0860ace773eb48f021045d3ad02d1a) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96k3 ) /* The King of Fighters '96 - Remix by Jason/K3 - (Character move change to Kof98 style 20030725) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214k3.p1", 0x000000, 0x100000, CRC(800b8213) SHA1(06622e0bfa615195b888858c5806bd262434761b) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96k3o ) /* [OLD] The King of Fighters '96 - (kof96k3o) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof96k3o.txt for more 20030710) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214k3o.p1", 0x000000, 0x100000, CRC(09173d9f) SHA1(85d60c976d04468b7c9dc3247c00ff99ec6fd4cc) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96kt ) // Korean Translation
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214kt.p1", 0x000000, 0x100000, CRC(a54e1812) SHA1(46b6eee1303a8d0efdd4659080a30a53ae2aeb15) )
+ ROM_LOAD16_WORD_SWAP( "214kt.p2", 0x100000, 0x200000, CRC(2ad66289) SHA1(2d6be57436c84eadb0f1c59f0fa021c2799d1518) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214kt.c1", 0x0000000, 0x400000, CRC(0524e33e) SHA1(f844f2b075f1982ccb75691a422d957500ba8623) )
+ ROM_LOAD16_BYTE( "214kt.c2", 0x0000001, 0x400000, CRC(e1374ccc) SHA1(7bff6465c21b53fbe85ea49fdb1fe8ea4b77394d) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96lx ) /* The King of Fighters '96 - Hack by Luxo */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214lx.p1", 0x000000, 0x100000, CRC(47660e7c) SHA1(d6e4595c1c4cc14896bea187668580c73da6c1e7) )
+ ROM_LOAD16_WORD_SWAP( "214lx.p2", 0x100000, 0x400000, CRC(3cb8c583) SHA1(7863c1518fea1ef02e60d9456e68b4c2591b7716) )
+
+ NEO_SFIX_128K( "214lx.s1", CRC(f8984c6f) SHA1(f8aba219c2be132f21d9dbc4f13b127170a245e8) )
+
+ NEO_BIOS_AUDIO_128K( "214lx.m1", CRC(c9dd0348) SHA1(6b1003bb7ec01295c71d025c464f922bd555ba55) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214lx.v3", 0x800000, 0x400000, CRC(143923a7) SHA1(1ba0fc91fd8bdf51c3cab6191ec275a3da5d75bb) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214lx.c1", 0x000000, 0x1800000, CRC(c8dbad80) SHA1(8b18b5b6f91e7f47cc04f370ed6218c084df6575) )
+ ROM_LOAD16_BYTE( "214lx.c2", 0x000001, 0x1800000, CRC(8139ac33) SHA1(6200460abd7d00d7d85d00ffb8117dcf8a99016a) )
+ROM_END
+
+ROM_START( kof96ncd )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214ncd.p1", 0x000000, 0x100000, CRC(18acfd90) SHA1(3da8848dfb06602684ceb2da097568aaccb2e709) )
+ ROM_LOAD16_WORD_SWAP( "214ncd.p2", 0x100000, 0x200000, CRC(8dee366d) SHA1(bd05fb7a0481d2b6e64cd847239c39aad319fca8) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96oib )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214oib.p1", 0x000000, 0x100000, CRC(ab7e5fe8) SHA1(ce162e826d713ebe1743296889626c454ed81ba8) )
+ ROM_LOAD16_WORD_SWAP( "214oib.p2", 0x100000, 0x200000, CRC(229d74d4) SHA1(b1384c18bc07f30b7c082f5befde20b72a9c0818) )
+
+ NEO_SFIX_128K( "214oib.s1", CRC(794769b4) SHA1(45b74cc5f875ff2c95545a4a21599af4b3a54078) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214oib.c5", 0x1000000, 0x400000, CRC(5ad89fe4) SHA1(4e53740ebd0f87bf33947c4ca6f6b64f98f1846a) )
+ ROM_LOAD16_BYTE( "214oib.c6", 0x1000001, 0x400000, CRC(77dd026e) SHA1(410ddfd9901cdab8dfca1e44c1b583f218e208d9) )
+ ROM_LOAD16_BYTE( "214oib.c7", 0x1800000, 0x400000, CRC(5e690993) SHA1(9de1771f643a9c4f433c256b3a23d9d380ecc07b) )
+ ROM_LOAD16_BYTE( "214oib.c8", 0x1800001, 0x400000, CRC(ec6d3c59) SHA1(8387cc622b8e310c6d187f5e8ab42be31701017b) )
+ROM_END
+
+ROM_START( kof96oib2 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214oib.p1", 0x000000, 0x100000, CRC(ab7e5fe8) SHA1(ce162e826d713ebe1743296889626c454ed81ba8) )
+ ROM_LOAD16_WORD_SWAP( "214oib2.p2", 0x100000, 0x200000, CRC(2e6fe5e2) SHA1(cfd8e35201bff14a76cdfbec42ef01b7abad5a60) )
+
+ NEO_SFIX_128K( "214oib.s1", CRC(794769b4) SHA1(45b74cc5f875ff2c95545a4a21599af4b3a54078) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214oib.c5", 0x1000000, 0x400000, CRC(5ad89fe4) SHA1(4e53740ebd0f87bf33947c4ca6f6b64f98f1846a) )
+ ROM_LOAD16_BYTE( "214oib.c6", 0x1000001, 0x400000, CRC(77dd026e) SHA1(410ddfd9901cdab8dfca1e44c1b583f218e208d9) )
+ ROM_LOAD16_BYTE( "214oib2.c7", 0x1800000, 0x400000, CRC(87348536) SHA1(df871243a15e9fbe0e6c9c6210c83c4853aa11c8) )
+ ROM_LOAD16_BYTE( "214oib2.c8", 0x1800001, 0x400000, CRC(bee6c915) SHA1(884ff9f7b4262d55fdc8750de471a7067a17ea7d) )
+ROM_END
+
+ROM_START( kof96oih ) // Orochi Iori (unknown hack)
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214oih.p1", 0x000000, 0x100000, CRC(db7eb010) SHA1(d19336fffcc7df186416b90d783c984237226113) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96oir ) // Orochi Iori Remix by IsmaMj
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214oir.p1", 0x000000, 0x100000, CRC(da24ce88) SHA1(0e6d7b3b142dee026a41ca3a3996a6692bd10fdf) )
+ ROM_LOAD16_WORD_SWAP( "214rf.p2", 0x100000, 0x200000, CRC(3a7912f0) SHA1(27f2e82e543d5d8c66613babd0012e5bb2f3d0ec) )
+
+ NEO_SFIX_128K( "214oir.s1", CRC(39ef1161) SHA1(1366895edcc541091f2405d16ba99b16b72b6218) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96pch ) // All confirmed
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214pch.p1", 0x000000, 0x100000, CRC(71db3c3e) SHA1(39770e938067b7f4d434d7af93fbe77f0a3d9a3d) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96pjc ) /* The King of Fighters '96 - Colour fix by TcwLee - (Character colour change) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214-p1.p1", 0x000000, 0x100000, CRC(52755d74) SHA1(4232d627f1d2e6ea9fc8cf01571d77d4d5b8a1bb) )
+ ROM_LOAD16_WORD_SWAP( "214pjc.p2", 0x100000, 0x200000, CRC(fde97cb6) SHA1(676ca59ef75844d9b398126b352d82683d890867))
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96pm )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214pm.p1", 0x000000, 0x100000, CRC(f8cdadde) SHA1(efc37896946a445c7b86f0e14615634f960a2097) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96rcw) /* The King of Fighters '96 - Remix by CHL and Wesker - (Character move and ultra kill style change) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214rcw.p1", 0x000000, 0x200000, CRC(7b12a4f1) SHA1(f3bcf418d8ecd63d9373c70b138ea7ea391b0cb9) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96rf )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214rf.p1", 0x000000, 0x100000, CRC(3ef73a54) SHA1(e82dc88aeef611249ff4a39d61de23d961230f37) )
+ ROM_LOAD16_WORD_SWAP( "214rf.p2", 0x100000, 0x200000, CRC(3a7912f0) SHA1(27f2e82e543d5d8c66613babd0012e5bb2f3d0ec) )
+
+ NEO_SFIX_128K( "214rf.s1", CRC(d4899497) SHA1(d40c7f1d9b6e39d668cb635182b29f3ce03b802b) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214rf.c7", 0x1800000, 0x400000, CRC(3459297a) SHA1(cc839fdf327a7e3c107132d871d617d3cdef9f94) )
+ ROM_LOAD16_BYTE( "214rf.c8", 0x1800001, 0x400000, CRC(8266c111) SHA1(3b3046e896b2720f6a34c2091ce1d68e581cc44e) )
+ROM_END
+
+ROM_START( kof96rfs ) // Remix Final Standard
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214rfs.p1", 0x000000, 0x300000, CRC(8f9cf253) SHA1(e212ae9b092ebdf0435cc0f84bcb7bf43a0ffaf4) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214rfs.s1", CRC(08811ec1) SHA1(4a2f20999e8333763897b3b5d852b693a8c81c3e) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96rfsa )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214rfsa.p1", 0x000000, 0x100000, CRC(c36be9c7) SHA1(c8204c2b6044c009db9cb4afdc7aaaf4929f29b7) )
+ ROM_LOAD16_WORD_SWAP( "214rfsa.sp2", 0x100000, 0x200000, CRC(7ec1c31e) SHA1(4db183ef0a7df0aa0ad3c864d2787fc6c0acab4f) )
+
+ NEO_SFIX_128K( "214rfs.s1", CRC(08811ec1) SHA1(4a2f20999e8333763897b3b5d852b693a8c81c3e) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96ri ) /* [OLD] The King of Fighters '96 - (kof96ri) - Revision by Igniz - (Revise 20030601) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214ri.p1", 0x000000, 0x100000, CRC(b327398e) SHA1(698fbfd310994e5cc20001f28f5d327bf4a997f2) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96ri1 ) /* [OLD] The King of Fighters '96 - (kof96ri) - Revision by Igniz - (Revise 20030601) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214ri1.p1", 0x000000, 0x100000, CRC(1eb17023) SHA1(ceed639edfcc1b120c420f08aeb036d8912bbcb5) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96ri2 ) /* [OLD] The King of Fighters '96 - (kof96ri) - Revision by Igniz - (Revise 20030601) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214ri2.p1", 0x000000, 0x100000, CRC(abef3f56) SHA1(563f77eb86068ed70bc0484291499d220a07dd84) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96ri3 ) /* [OLD] The King of Fighters '96 - (kof96ri) - Revision by Igniz - (Revise 20030601) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214ri3.p1", 0x000000, 0x100000, CRC(c58d9eea) SHA1(287d679c0caf00e163ac2d55d17809e8d5e911a6) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96ri4 ) /* [OLD] The King of Fighters '96 - (kof96ri) - Revision by Igniz - (Revise 20030527) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214ri4.p1", 0x000000, 0x100000, CRC(ef2b1662) SHA1(eb23ea0875f6b19dcc400699fd9fb0e846caedf3) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96ri5 ) /* [OLD] The King of Fighters '96 - (kof96ri) - Revision by Igniz - (Revise 20030527) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214ri5.p1", 0x000000, 0x100000, CRC(386420b2) SHA1(7ce3eee22112f53d808cc798c0e15b16cc290a0b) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96rm ) // Remix 2.5 by Marcochen
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214rm.p1", 0x000000, 0x100000, CRC(76913b21) SHA1(265f233baf200e7e591e5e463a7bac45fb1aeb52) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96rp ) // Remix Pro 1
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214rp.p1", 0x000000, 0x100000, CRC(4f75f758) SHA1(81ff5ffb6f41c922fa25cd5eb720abdf44abd572) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96rp1 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214rp1.p1", 0x000000, 0x100000, CRC(e412a600) SHA1(3040b7704fd124725f38a1954914119cc09aa0e5) )
+ ROM_LOAD16_WORD_SWAP( "214rp1.p2", 0x100000, 0x200000, CRC(6bd3d75e) SHA1(c1e517f575d2dc4148360b27dee55fba2251e59e) )
+
+ NEO_SFIX_128K( "214rp1.s1", CRC(36a14c3b) SHA1(2ab1a75bc8ba6b69fd8f99ff31d8082ac3d50c34) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96rss ) // Remix Spring Special
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214rss.p1", 0x000000, 0x300000, CRC(93abe27c) SHA1(478032f51ebd0b6f22d9ce4cbe17a4808218dd70) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214rss.s1", CRC(f304df75) SHA1(f696aed96dba4a086415374c7bbdf8c3b4f5b457) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96ru ) /* The King of Fighters '96 - Remix Ultra by CHL and Jason/K3 - (Character move change - ultra kill style change - can choose Chizuru Kagura and Goenitz 20031203) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214ru.p1", 0x000000, 0x100000, CRC(620da697) SHA1(146d396903fed547f586f095d6b7b4ec519c1479) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96ru2 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214ru2.p1", 0x000000, 0x100000, CRC(f1e97d01) SHA1(ed5681dddd205f79c0011a2db46d1fbbc7263979) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96rw ) /* The King of Fighters '96 - Remix By Wesker - (Character move change) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214rw.p1", 0x000000, 0x100000, CRC(1de99755) SHA1(69740ffc88d287d6f2bc218665a3f1fa358e5fc3) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96ryu ) // Ryu Hack by Iori Yagami
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214ryu.p1", 0x000000, 0x100000, CRC(ff399656) SHA1(27895e26ac82461850a594e1384b994bfa3772e5) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96seh ) /* The King of Fighters '96 - Super Enhance Hack by Ydmis - (Can choose Chizuru Kagura and Goenitz - ultra power hack ABC) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214seh.p1", 0x000000, 0x100000, CRC(76fc560c) SHA1(618b01b00235e1ff3d083e5c077e43482864f774) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+
+
+GAME( 1996, kof96a, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'96 (set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, kof96ae, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGHT", "Kof'96 (10th Anniversary Edition set 4)", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, kof96ae1, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGHT", "Kof'96 (10th Anniversary Edition set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, kof96ae1a, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGHT", "Kof'96 (10th Anniversary Edition set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, kof96ae1b, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGHT", "Kof'96 (10th Anniversary Edition set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96b, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'96 (Add Char)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96b1, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'96 Boss Hack (set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96bb, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'96 Boss Hack (set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof96c, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Guangzhou Game Team", "Kof'96 (Chinese Ver.1.0)", MACHINE_SUPPORTS_SAVE )
+GAME( 2011, kof96cbi, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "IsmaMj", "Kof'96 (Change Blood For Other Hack (2011-03-02))", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96ckvs, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "KVS", "Kof'96 (Chinese ver)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96chj, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "CHL and Jason/K3", "Kof'96 (Diff Moves - Ultra kill style changed set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof96cn, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Guangzhou Game Team", "Kof'96 (CN)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96cr, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "CHL", "Kof'96 (Diff Moves and Style)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96de, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'96 (Dragon Edition set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96dr1, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'96 (Dragon Edition set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96eh, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Kof'96 (Add Char - Pow hack ABC set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96ep, kof96, neogeo_noslot, neogeo, neogeo_hbmame, kof96ep, ROT0, "bootleg", "Kof'96 (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96ep2, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'96 (Bootleg / Hack Set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96ep3, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'96 (Bootleg / Hack Set 3 All Boss)", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, kof96evo, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker, FGCH", "Kof'96 WESKER HACK (Evolution)", MACHINE_SUPPORTS_SAVE ) // Moves and style rev
+GAME( 2004, kof96evoo, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker, FGCH", "Kof'96 WESKER HACK (Evolution Old)", MACHINE_SUPPORTS_SAVE ) // Moves and style rev Old
+GAME( 2004, kof96evsp, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker, FGCH", "Kof'96 WESKER HACK (Evolution Special v1.2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96ey, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Kof'96 (Pow hack ABC)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96hp, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "HackPlus", "Kof'96 (Add Char set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, kof96hp1, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Pipi899", "Kof'96 (Hack by Pipi899 2007-08-31)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96hpr, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "HackPlus", "Kof'96 (Add Char set 2 - revised)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof96k, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Guangzhou Game Team", "Kof'96 (Add Char - Pow hack ABC set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96k1, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'96 (Korean Edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96k3, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Jason/K3", "Kof'96 Remix (Kof98 Moves 030725)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96k3o, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Jason/K3", "Kof'96 Remix (Kof98 Moves 030710)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96kt, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'96 (Korean Translation)", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, kof96lx, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGHT", "Kof'96 (10th Anniversary set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96ncd, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Eddids FCHT", "Kof'96 (Boss, Like NEOGEOCD Version)", MACHINE_SUPPORTS_SAVE )
+GAME( 2011, kof96oib, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "IsmaMj", "Kof'96 (Special Orochi Iori/Boss Hack v3.0)", MACHINE_SUPPORTS_SAVE )
+GAME( 2011, kof96oib2, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "IsmaMj", "Kof'96 (Special Orochi Iori/Boss Hack v3.0 alt)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96oih, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'96 (Orochi Iori (OIH))", MACHINE_SUPPORTS_SAVE )
+GAME( 2010, kof96oir, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "IsmaMj", "Kof'96 (Orochi Iori Remix)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96pjc, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "TcwLee", "Kof'96 (Char color changed)", MACHINE_SUPPORTS_SAVE )
+GAME( 2011, kof96pch, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "C-17", "Kof'96 (C-17 hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96pm, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "KOF1996", "Kof'96 Practice Mode (Hack by KOF1996)", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, kof96rcw, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker/Fight China", "Kof'96 (Diff Moves - Ultra kill style changed set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96rf, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK2003", "Kof'96 Remix Final (2007 Revised Version)", MACHINE_SUPPORTS_SAVE )
+GAME( 2005, kof96rfs, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK2003", "Kof'96 (Remix Final Standard v1.4 set 1 hack by SNK2003)", MACHINE_SUPPORTS_SAVE )
+GAME( 2005, kof96rfsa, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK2003", "Kof'96 (Remix Final Standard v1.4 set 2 hack by SNK2003)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96ri, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Igniz", "Kof'96 (Igniz rev 030601 set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96ri1, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Igniz", "Kof'96 (Igniz rev 030601 set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96ri2, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Igniz", "Kof'96 (Igniz rev 030601 set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96ri3, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Igniz", "Kof'96 (Igniz rev 030601 set 4)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96ri4, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Igniz", "Kof'96 (Igniz rev 030527 set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96ri5, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Igniz","Kof'96 (Igniz rev 030527 set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96rm, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Marcochen", "Kof'96 (Remix 2.5)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96rp, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'96 (Remix Pro 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2008, kof96rp1, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGHT", "Kof'96 Remix Plus 2008 SP", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96rss, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK2003", "Kof'96 (Remix Spring Special 1.5)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96ru, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "CHL, Jason/K3", "Kof'96 Remix Ultra (Diff Moves - Ultra kill style changed - Add Char 031203)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96ru2, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "CHL, Jason/K3", "Kof'96 (Remix Ultra v1.1 hack by CHL/Jason/K3)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96rw, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker", "Kof'96 (Diff Moves)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96ryu, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Iori Yagami", "Kof'96 (Ryu Hack by Iori Yagami)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96seh, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Kof'96 (Add Char - Ultra pow hack ABC)", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/kof97.cpp b/docs/release/src/hbmame/drivers/kof97.cpp
new file mode 100644
index 00000000000..9d681620aca
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/kof97.cpp
@@ -0,0 +1,2249 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+
+
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, kof97pla )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,1);
+ // The following was used in Ash build, purpose unknown:
+ //m_bootleg_prot->patch_kof97pla(cpuregion, cpuregion_size);
+ // This contains:
+ //void ngbootleg_prot_device::patch_kof97pla(UINT8* cpurom, UINT32 cpurom_size)
+ //cpurom[0x1394A] = 0x6C;
+ //cpurom[0x1394B] = 0xD1;
+ //cpurom[0x1394C] = 0x3A;
+ //cpurom[0x1394D] = 0x1;
+ //cpurom[0x1394E] = 0x6C;
+ //cpurom[0x1394F] = 0x91;
+}
+
+
+
+ROM_START( kof97aa )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232aa.p1", 0x000000, 0x100000, CRC(35a1a664) SHA1(5fc3835e5a3747f5e5d6bfe63e1562e33d26526e) )
+ ROM_LOAD16_WORD_SWAP( "232aa.p2", 0x100000, 0x400000, CRC(6a732dff) SHA1(c3199941b69db945a7d754c52261aa97d39bb316) )
+
+ NEO_SFIX_128K( "kf97-s1p.bin", CRC(73254270) SHA1(8d06305f9d8890da1327356272b88bdd0dc089f5) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97ae )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232ae.p1", 0x000000, 0x100000, CRC(02ac80f0) SHA1(3273b537f927ed819f39d13be37c40eea4cc5db0) )
+ ROM_LOAD16_WORD_SWAP( "232ae.p2", 0x100000, 0x400000, CRC(8cffe3f3) SHA1(c2dcac7d41576ddf97b585f515a9418f6b931e29) )
+
+ NEO_SFIX_128K( "232ae.s1", CRC(d4957067) SHA1(b756c97b050296db9b00e0bc6cdd79e4d2e2273e) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232ae.c1", 0x0000000, 0x800000, CRC(ea16b711) SHA1(e54d1a0b559f1ef326ee86bc89e9f1b399f08b32) )
+ ROM_LOAD16_BYTE( "232ae.c2", 0x0000001, 0x800000, CRC(b7bef674) SHA1(378a67dfa7dba03900dd7c70a3473c12f9879af1) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97ae1 )
+ ROM_REGION( 0x700000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232ae1.p1", 0x000000, 0x100000, CRC(49cfaded) SHA1(e42d4ccd8e91747e4f87799bb813a0e6382b79db) )
+ ROM_LOAD16_WORD_SWAP( "232ae1.p2", 0x100000, 0x600000, CRC(030a85fb) SHA1(afe2249bde61ef401c2cfae9dddb3a6b51c258d9) )
+
+ NEO_SFIX_128K( "232ae1.s1", CRC(67d4cd7a) SHA1(b4f7d6a10523aa1d6322a04dc755ed4258003de0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232ae1.c1", 0x0000000, 0x800000, CRC(bc35a6dc) SHA1(81d0b5a2c7fb6f5d0f19e3ab3ef2cc9d98806532) )
+ ROM_LOAD16_BYTE( "232ae1.c2", 0x0000001, 0x800000, CRC(66bf2938) SHA1(a45933a286cf6c1d4e63f687819262751650a9cd) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97aot ) // all confirmed
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232aot.p1", 0x000000, 0x100000, CRC(edd3bd8f) SHA1(7c422db860c9b8c8caf933bfabbc43b891fc0a5e) )
+ ROM_LOAD16_WORD_SWAP( "232zm.p2", 0x100000, 0x400000, CRC(ca11478d) SHA1(484533266ba677fa2930e977226c4b72a59de8e2) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97bh ) /* The King of Fighters '97 - Hack by Dodowang - (Can choose Orochi + add. Iori, Yashiro, Shermie, Chris and Leona - Orochi has icon in menue - extra stage select) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232bh.p1", 0x000000, 0x100000, CRC(b49a3fcf) SHA1(2dcb95e184b86a455ef23b70aca00bbcd28f23c5) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232bh.s1", CRC(71c426e6) SHA1(1fd4a2537daf6a26e1e2707183b0f1762d7a25ff) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97bng )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232bng.p1", 0x000000, 0x100000, CRC(8d699492) SHA1(a70958426a6de040f3af5a6050e6e8f82c016aa0) )
+ ROM_LOAD16_WORD_SWAP( "232bng.p2", 0x100000, 0x400000, CRC(d86d0095) SHA1(53d76659dacc6a7d3113fd51c29904e2ef0cf171) )
+
+ NEO_SFIX_128K( "232bng.s1", CRC(c24e2cb7) SHA1(79f298997b773ed869a49a897aa38b74a43b051c) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232yk.c1", 0x0000000, 0x800000, CRC(d504bf4a) SHA1(a58f6c07080c666ae1bb3e2dbab4790feab5ccc7) )
+ ROM_LOAD16_BYTE( "232yk.c2", 0x0000001, 0x800000, CRC(942ea708) SHA1(20389bdb253611745c5515206b1eb620a1574711) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232bng.c5", 0x2000000, 0x400000, CRC(e749d4d2) SHA1(8f4c54c0355decebfc47b8d11b863dcd84647688) )
+ ROM_LOAD16_BYTE( "232bng.c6", 0x2000001, 0x400000, CRC(dc7c5cd7) SHA1(f33b62a1ded71edf0b2bd8e6f2495da34c7b1984) )
+ROM_END
+
+ROM_START( kof97bs )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232bs.p1", 0x000000, 0x100000, CRC(6802a9d1) SHA1(e5ccd06e96a12133d5176f154209b4c766009cb0) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232bs.c1", 0x0000000, 0x800000, CRC(47932f00) SHA1(3dcedd194a2138cd8b006462a42b52e925f6b5ce) )
+ ROM_LOAD16_BYTE( "232bs.c2", 0x0000001, 0x800000, CRC(f87c3d84) SHA1(0de2dcb6a475ea6475d67c60a254e6b7cbcde951) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97cb2 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232cb2.p1", 0x000000, 0x100000, CRC(4fb095a5) SHA1(1d8ae617967c8d96aa219b674568063e5a0d9b27) )
+ ROM_LOAD16_WORD_SWAP( "232cb2.p2", 0x100000, 0x400000, CRC(203d656a) SHA1(e3ee823a881527483908d4466fefcd0875503193) )
+
+ NEO_SFIX_128K( "232cb2.s1", CRC(8fe6d842) SHA1(e209b7fca380093f711d3b3396f1160beb7b33bd) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97chl ) /* [OLD] The King of Fighters '97 - (kof97chl) - Revise by CHL - (Character move change by chl 20030325) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232chl.p1", 0x000000, 0x100000, CRC(ce99174b) SHA1(3ff2e0c71e24c55741c9718725d214368a144c53) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97chl2 ) /* [OLD] The King of Fighters '97 - (kof97chl2) - Revise by CHL - (Character move change by chl revision 2 20030409) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232chl2.p1", 0x000000, 0x100000, CRC(fd7efa7d) SHA1(383aa8054ec1a1b832983fbacfc93e6740712e18) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97chris )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232-p1.p1", 0x000000, 0x100000, CRC(7db81ad9) SHA1(8bc42be872fd497eb198ca13bf004852b88eb1dc) )
+ ROM_LOAD16_WORD_SWAP( "232chris.p2", 0x100000, 0x400000, CRC(2b43d718) SHA1(e932a7d5f215baaf799cfc64f80bb8a1312ab82a) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232chris.c5", 0x2000000, 0x800000, CRC(7a47b7c7) SHA1(a12a0cf57f5d81bb6d8eab0429f6204427c52c75) )
+ ROM_LOAD16_BYTE( "232chris.c6", 0x2000001, 0x800000, CRC(867c138b) SHA1(fa9c5237ed5d59aed23b8df5bb2504e629433e01) )
+ROM_END
+
+ROM_START( kof97cn )
+ ROM_REGION( 0x700000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232cn.p1", 0x000000, 0x100000, CRC(082933c8) SHA1(e6f8bc7eb0e4ed25b37cc9324ccf170c69331212) )
+ ROM_LOAD16_WORD_SWAP( "232cn.p2", 0x100000, 0x600000, CRC(d22d3ca3) SHA1(f7cb7cbd7dd043c5436030b8280456271a4d782a) )
+
+ NEO_SFIX_128K( "232cn.s1", CRC(de5ad278) SHA1(3d041c5e51b5076dacef235cd2847b09722e86a2) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232cn.c1", 0x0000000, 0x800000, CRC(8c3d2c0c) SHA1(e61e0e3620a35695a80403a91ba9b889e38c2581) )
+ ROM_LOAD16_BYTE( "232cn.c2", 0x0000001, 0x800000, CRC(43ce69ae) SHA1(16b65a55d4631602d751bd91ef9bdc49fedd41fe) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97co )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232co.p1", 0x000000, 0x100000, CRC(117cb452) SHA1(df7fad0484e486fe743899cc07ac2a9eb5e98ebd) )
+ ROM_LOAD16_WORD_SWAP( "232co.p2", 0x100000, 0x400000, CRC(4a97480c) SHA1(a12b05c4f8c4305d809fafe8d525cdb2ee0e0e7e) )
+
+ NEO_SFIX_128K( "232cb2.s1", CRC(8fe6d842) SHA1(e209b7fca380093f711d3b3396f1160beb7b33bd) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97co6 ) // Ivex's KOF97 COMBO 2006
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232co6.p1", 0x000000, 0x100000, CRC(9a8762e2) SHA1(c4b6c330acc9dfd1cb8bb3389dfe3881ed689cb4) )
+ ROM_LOAD16_WORD_SWAP( "232co6.p2", 0x100000, 0x400000, CRC(3586a046) SHA1(3eb354d929bbf36188a7e99798ee37ce18c4a377) )
+
+ NEO_SFIX_128K( "232co6.s1", CRC(e9960efa) SHA1(2af54d22368204e70ac7b6697ba4ad148271c08b) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97cr ) /* The King of Fighters '97 - Remix by CHL Hack by Leather - (Character move and behaviour change - extra stage select) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232cr.p1", 0x000000, 0x100000, CRC(76ec749d) SHA1(7b8c208eb6559f350a0fac031b936d6e04928ae6) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97cy ) // all confirmed
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232cy.p1", 0x000000, 0x4550c4, CRC(070d8bd6) SHA1(2565bd372bb2a1aa88b55b770e48e7bfc82823d8) )
+ ROM_LOAD16_WORD_SWAP( "232cy.p2", 0x100000, 0x400000, CRC(97fd8943) SHA1(2127846451507769d49747f42c97be5b1a82ad93) )
+
+ //NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+ NEO_SFIX_MT_128K
+ ROM_LOAD( "232cy.s1", 0x000000, 0x20000, CRC(aaef5283) SHA1(e2b3fcedebf22cc40e671a651678b5a68868f701) )
+ ROM_IGNORE( 0x434f55 )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232cy.c1", 0x0000000, 0x800000, CRC(503850f7) SHA1(004cc243a424bbe3b81c32ba513999c2fdd2b430) )
+ ROM_LOAD16_BYTE( "232cy.c2", 0x0000001, 0x800000, CRC(ce3b418b) SHA1(8f605f0ea992b954bd540435156ce0cafaa5abed) )
+ ROM_LOAD16_BYTE( "232cy.c3", 0x1000000, 0x800000, CRC(52e5f3a7) SHA1(bae549239b0422dfb26b24c6d4a1e501dbb00cf0) )
+ ROM_LOAD16_BYTE( "232cy.c4", 0x1000001, 0x800000, CRC(b97c21e3) SHA1(8d79460de1ac0cf147292b9018661a729140e3f9) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97dse ) // All confirmed
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232dse.p1", 0x000000, 0x100000, CRC(8f00511f) SHA1(7c04420f8d35034ac3995bc0764d444c843184f1) )
+ ROM_LOAD16_WORD_SWAP( "232dse.p2", 0x100000, 0x400000, CRC(0fa5639a) SHA1(ead4d2c4d6d13160170d121b9244eaf427637aaa) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97eh ) /* The King of Fighters '97 - Super Enhance Hack by Creamymami, Leather and Ydmis - (Can choose Orochi + 5 add. characters - ultra kill start is max in Advanced Mode - ultra power hack ABC - extra stage select) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232eh.p1", 0x000000, 0x100000, CRC(3d4eb515) SHA1(7d1ca643fb3872495fa681bc28a975d92822b7f0) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97eh2 ) /* The King of Fighters '97 - Super Enhance Hack by Leather and Ydmis - (Can choose Orochi + 5 add. characters - ultra kill start is max in Advanced Mode - power hack ABC - extra stage select) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232eh2.p1", 0x000000, 0x100000, CRC(dc81f242) SHA1(24457a3570b8ef802d90576f4e32f1701ebf2018) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97eho ) /* The King of Fighters '97 - Enhance by Ydmis - (Can choose Orochi + 5 add. characters - ultra kill start is max in Advanced Mode - power hack ABC) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232eho.p1", 0x000000, 0x100000, CRC(83caa31c) SHA1(8db7f86464b91a56a168ec3d639f4c1fbaaa0499) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97ei ) // all confirmed (diff colours of kof97co)
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232ei.p1", 0x000000, 0x100000, CRC(5d8e9114) SHA1(5d9262c17758d64524f1af8266d16f336df283f9) )
+ ROM_LOAD16_WORD_SWAP( "232ei.p2", 0x100000, 0x400000, CRC(39259db2) SHA1(741a9ab344f182c06806b1ee4d2e2b8f5521bf6e) )
+
+ NEO_SFIX_128K( "232ae.s1", CRC(d4957067) SHA1(b756c97b050296db9b00e0bc6cdd79e4d2e2273e) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232ae.c1", 0x0000000, 0x800000, CRC(ea16b711) SHA1(e54d1a0b559f1ef326ee86bc89e9f1b399f08b32) )
+ ROM_LOAD16_BYTE( "232ae.c2", 0x0000001, 0x800000, CRC(b7bef674) SHA1(378a67dfa7dba03900dd7c70a3473c12f9879af1) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97evo ) // Evolution
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232evo.p1", 0x000000, 0x100000, CRC(8ee0d743) SHA1(7bfd8428efb0a738decccf0f2120dac1c4bc3a6a) )
+ ROM_LOAD16_WORD_SWAP( "232evo.p2", 0x100000, 0x400000, CRC(5cbb2499) SHA1(58e21c1ff7afbfcca0a733e2b3e9f54b2317ed42) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97evoa ) // Old evolution
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232evoa.p1", 0x000000, 0x100000, CRC(d439c4ed) SHA1(67117ffce3c95615d75eb298c50224685df5f0b7) )
+ ROM_LOAD16_WORD_SWAP( "232evoa.p2", 0x100000, 0x400000, CRC(d7da3056) SHA1(85327e846a60dbe24d997fe2dc1714e884bb46d1) )
+
+ NEO_SFIX_128K( "232evoa.s1", CRC(f3c0e90a) SHA1(257f20127a39e8534fe84fbcf2565b162feef4a5) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97frb ) // all confirmed
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232frb.p1", 0x000000, 0x100000, CRC(3c5e84fc) SHA1(b71391369293a81cb22a849e1682e141e9d8c0b3) )
+ //ROM_LOAD16_WORD_SWAP( "232frb.pg1", 0x000000, 0x100000, CRC(5c2400b7) SHA1(49e23f80c012c62146a1bb8f254a7597823de430) ) // alternate rom in the set
+ ROM_LOAD16_WORD_SWAP( "232frb.p2", 0x100000, 0x400000, CRC(f7e09607) SHA1(f64d394226876e1d189549ba0fd7fb3c4fd9df82) )
+
+ NEO_SFIX_128K( "232frb.s1", CRC(3c9af3f7) SHA1(7320fa38fc6db4f3ab6077d2541bb16fa5fb31ef) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232frb.c1", 0x0000000, 0x800000, CRC(6f837a71) SHA1(dfc6dcb9e3def1c78fb43550a332657fae68650f) )
+ ROM_LOAD16_BYTE( "232frb.c2", 0x0000001, 0x800000, CRC(c1a51c17) SHA1(38b8862267daf7975a235dc72cf787256ca108fb) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97hk ) // Evolution Hakeshu
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232evoa.p1", 0x000000, 0x100000, CRC(d439c4ed) SHA1(67117ffce3c95615d75eb298c50224685df5f0b7) )
+ ROM_LOAD16_WORD_SWAP( "232hk.p2", 0x100000, 0x400000, CRC(e912c4b8) SHA1(78df184e5000f871e0188b1b7785291525ca11e6) )
+
+ NEO_SFIX_128K( "232evoa.s1", CRC(f3c0e90a) SHA1(257f20127a39e8534fe84fbcf2565b162feef4a5) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232xxx.c1", 0x0000000, 0x800000, CRC(91697765) SHA1(19ea6bf74da9dd4fed4213d82cb7d003a871599b) )
+ ROM_LOAD16_BYTE( "232xxx.c2", 0x0000001, 0x800000, CRC(0c069a41) SHA1(094f587325acc55b6663a17fce6ea0920331a3ff) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232hk.c5", 0x2000000, 0x800000, CRC(03aa727d) SHA1(e8e571fb00252dccc68ecfc9e20cf5e64491e6a4) )
+ ROM_LOAD16_BYTE( "232hk.c6", 0x2000001, 0x800000, CRC(d7663c50) SHA1(790c761a5fab033851700de3d63d7ab4257f6caf) )
+ROM_END
+
+ROM_START( kof97hl ) // Fall Ban Edition
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hl.p1", 0x000000, 0x100000, CRC(16767f2b) SHA1(84ee5c13d437611706a429635cb51fe61d477c02) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97hxd ) /* The King of Fighters '97 - Hack by Hxdhome - (Can choose Orochi + 5 add. characters) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hxd.p1", 0x000000, 0x100000, CRC(ec95b2cf) SHA1(0f5ac8bc9eaeb32441ee72a9ce93fbb9d9462359) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97ice ) /* The King of Fighters '97 - Colour fix by Cz-Kyo97 - (Colour change - ice) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232-p1.p1", 0x000000, 0x100000, CRC(7db81ad9) SHA1(8bc42be872fd497eb198ca13bf004852b88eb1dc) )
+ ROM_LOAD16_WORD_SWAP( "232ice.p2", 0x100000, 0x400000, CRC(b26e3767) SHA1(6b3d513b523d3513e9300db54891abd1079a5865) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97irgc ) // All confirmed
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232irgc.p1", 0x000000, 0x100000, CRC(fbc9341f) SHA1(fb9605f94a438aa79ad03fb9fd6f5fca7a6d1edb) )
+ ROM_LOAD16_WORD_SWAP( "232irgc.p2", 0x100000, 0x400000, CRC(6c9092ba) SHA1(d17d4349c799dcba22b383d36f0cfc8e2bac7adf) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232rev.c5", 0x2000000, 0x400000, CRC(9c543bc6) SHA1(cb227c71aca5e632a08fbd7f5af53581b5b28f93) )
+ ROM_LOAD16_BYTE( "232rev.c6", 0x2000001, 0x400000, CRC(e3feb991) SHA1(978b106bccd31c8229c9abcc6e682a7b5fc98154) )
+ROM_END
+
+ROM_START( kof97irgc2 ) // All confirmed (was "kof97yb" when found)
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232irgc2.p1", 0x000000, 0x100000, CRC(14532350) SHA1(093d1da101a39c371512416ee90cd2e15c92723a) )
+ ROM_LOAD16_WORD_SWAP( "232irgc2.p2", 0x100000, 0x400000, CRC(696ae4a5) SHA1(be8341ef598bd95c07a1218d1cfcc3f82bbbd6b7) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232rev.c5", 0x2000000, 0x400000, CRC(9c543bc6) SHA1(cb227c71aca5e632a08fbd7f5af53581b5b28f93) )
+ ROM_LOAD16_BYTE( "232rev.c6", 0x2000001, 0x400000, CRC(e3feb991) SHA1(978b106bccd31c8229c9abcc6e682a7b5fc98154) )
+ROM_END
+
+ROM_START( kof97kai )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232kai.p1", 0x000000, 0x100000, CRC(e96524fe) SHA1(e9a523233228ed57bdbc2b8eb620054cadb381f2) )
+ ROM_LOAD16_WORD_SWAP( "232kai.p2", 0x100000, 0x400000, CRC(839c4b8c) SHA1(23ae586feef65ab091fe02eb9d845cedfc4e00b1) )
+
+ NEO_SFIX_128K( "232kai.s1", CRC(1455f002) SHA1(6e164be5303e75f366eb1172423b8552a9257a9c) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97kp ) /* The King of Fighters '97 - Hack by KofPerfect - (Can choose Orochi) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232kp.p1", 0x000000, 0x100000, CRC(f29de6b6) SHA1(aafb7925df9fed83762ecf363855b971baaf614f) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97kp1 )
+ ROM_REGION( 0x700000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232kp1.p1", 0x000000, 0x100000, CRC(d0c63184) SHA1(71cc96a0388a09695cfa5b5f7c04dbb40ab49615) )
+ ROM_LOAD16_WORD_SWAP( "232kp1.p2", 0x100000, 0x600000, CRC(fddde211) SHA1(6e8280ad7a9dda204f30e40d9575e31d3e436ef2) )
+
+ NEO_SFIX_128K( "232yk1.s1", CRC(c7dbe270) SHA1(0b81b31da6c18dd02e8d0442100685d5ff61bece) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232yk1.c1", 0x0000000, 0x800000, CRC(f748da71) SHA1(5012e8537e7d16d365d9c088a70323b3b71cd6f5) )
+ ROM_LOAD16_BYTE( "232kp1.c2", 0x0000001, 0x800000, CRC(5869e4ad) SHA1(17b3d921ad0118e9fb61fd665639901c4b3bc2f5) )
+ ROM_LOAD16_BYTE( "232yk1.c3", 0x1000000, 0x800000, CRC(ffb025af) SHA1(64913b51b496a13a92317008d2a15543e6c89ba9) )
+ ROM_LOAD16_BYTE( "232yk1.c4", 0x1000001, 0x800000, CRC(7182157c) SHA1(306a968ae325d0b7d647e7fdb36a3a07bacda923) )
+ ROM_LOAD16_BYTE( "232yk1.c5", 0x2000000, 0x800000, CRC(00a77a26) SHA1(a86054fd3870be49ad6055a2fab663cb5ef27de2) )
+ ROM_LOAD16_BYTE( "232yk1.c6", 0x2000001, 0x800000, CRC(0b504e35) SHA1(597cabd5077670827ad3e809d6cd52c9c7f3013a) )
+ROM_END
+
+ROM_START( kof97lb ) // LB70's Quanhuang Shaman 3.0
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232lb.p1", 0x000000, 0x100000, CRC(2e88c8e6) SHA1(87b947e735b52803f87b77033471b156c2e83a4d) )
+ ROM_LOAD16_WORD_SWAP( "232lb.p2", 0x100000, 0x400000, CRC(76111847) SHA1(a7791f28d6f63379b03ea8af292524ffd7784872) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97lc ) /* The King of Fighters '97 - Colour fix by Liuzheng0131 - (Colour change) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232-p1.p1", 0x000000, 0x100000, CRC(7db81ad9) SHA1(8bc42be872fd497eb198ca13bf004852b88eb1dc) )
+ ROM_LOAD16_WORD_SWAP( "232lc.p2", 0x100000, 0x400000, CRC(852cfee6) SHA1(8db51a12a05f2312c2a241027c61711137a0ca94) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97lr )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232lr.p1", 0x000000, 0x100000, CRC(447e81b2) SHA1(26c1056488803782f49d4f8f4ae2df3c840fcf57) )
+ ROM_LOAD16_WORD_SWAP( "232lr.p2", 0x100000, 0x400000, CRC(a9ecc9d7) SHA1(5860da51bd304b2837d30aef698d498c12a13d20) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232lr.c1", 0x0000000, 0x800000, CRC(6c224c0b) SHA1(54ace1387646728ddd2fe3feea4b22c46e75fc7d) )
+ ROM_LOAD16_BYTE( "232lr.c2", 0x0000001, 0x800000, CRC(badf8fa5) SHA1(07381d1d64f5fd4cd11989a2f715298c6d4827cd) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97m )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232m.p1", 0x000000, 0x100000, CRC(eaea9193) SHA1(ca3d9216ae1e092f369f197335ae57fe40d5dcc0) )
+ ROM_LOAD16_WORD_SWAP( "232m.p2", 0x100000, 0x400000, CRC(a50f6113) SHA1(ebe5f66b482e3e3818de0c894cf4b1cb1c262ece) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97mit ) /* The King of Fighters '97 - Enhance by MIT - (Character style enhance, see kof97mit.txt for more 20050324) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232mit.p1", 0x000000, 0x100000, CRC(B96600CE) SHA1(260A42AAF117DE392A32A473E552E73253FC0EA7) )
+ ROM_LOAD16_WORD_SWAP( "232mit.p2", 0x100000, 0x400000, CRC(44FECE8E) SHA1(F1604613267297FF3B375DAD397CE6E1256078E6) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97mj )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232mj.p1", 0x000000, 0x100000, CRC(21f97218) SHA1(8433172fe2df08f608c54479671153803da9d8cf) )
+ ROM_LOAD16_WORD_SWAP( "232mj.p2", 0x100000, 0x400000, CRC(acfec2d1) SHA1(2bb218bcc1bbadb94af0ad2bda49b71cad8e5ef5) )
+
+ NEO_SFIX_128K( "232mj.s1", CRC(436a47bd) SHA1(051185a2ab766e7ab5e6e81628c478c3e89c70b2) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232mj.c1", 0x0000000, 0x800000, CRC(6099f8fa) SHA1(77df1bc28e983d485a92c44b290334052e096d58) )
+ ROM_LOAD16_BYTE( "232mj.c2", 0x0000001, 0x800000, CRC(c7440dfd) SHA1(83040bf02153de6529a163348e6b8aeceeb8799e) )
+ ROM_LOAD16_BYTE( "232yk1.c3", 0x1000000, 0x800000, CRC(ffb025af) SHA1(64913b51b496a13a92317008d2a15543e6c89ba9) )
+ ROM_LOAD16_BYTE( "232yk1.c4", 0x1000001, 0x800000, CRC(7182157c) SHA1(306a968ae325d0b7d647e7fdb36a3a07bacda923) )
+ ROM_LOAD16_BYTE( "232bng.c5", 0x2000000, 0x400000, CRC(e749d4d2) SHA1(8f4c54c0355decebfc47b8d11b863dcd84647688) )
+ ROM_LOAD16_BYTE( "232bng.c6", 0x2000001, 0x400000, CRC(dc7c5cd7) SHA1(f33b62a1ded71edf0b2bd8e6f2495da34c7b1984) )
+ROM_END
+
+ROM_START( kof97nd )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232nd.p1", 0x000000, 0x100000, CRC(fb677720) SHA1(a27205842835564b364f442fd21e95aa70ac0f89) )
+ ROM_LOAD16_WORD_SWAP( "232nd.p2", 0x100000, 0x400000, CRC(edd56448) SHA1(5ce8ac573ffffce0408c2a5f57d44eb9a0d63bd1) )
+
+ NEO_SFIX_128K( "232nd.s1", CRC(85cec2a2) SHA1(476ddddc7aafe0042f0fe07a95398ba1ca96e944) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232xxx.c1", 0x0000000, 0x800000, CRC(91697765) SHA1(19ea6bf74da9dd4fed4213d82cb7d003a871599b) )
+ ROM_LOAD16_BYTE( "232xxx.c2", 0x0000001, 0x800000, CRC(0c069a41) SHA1(094f587325acc55b6663a17fce6ea0920331a3ff) )
+ ROM_LOAD16_BYTE( "232yk.c3", 0x1000000, 0x800000, CRC(b092e64f) SHA1(7d809432d068db8f9056f5210570191416f1a53b) )
+ ROM_LOAD16_BYTE( "232yk.c4", 0x1000001, 0x800000, CRC(d25e8a04) SHA1(52227828e3fdd27399b4cd514551abf856293f47) )
+ ROM_LOAD16_BYTE( "232nd.c5", 0x2000000, 0x400000, CRC(07064635) SHA1(66608e7291c05a10d897c3c342b3a2d98c8cb0a6) )
+ ROM_LOAD16_BYTE( "232nd.c6", 0x2000001, 0x400000, CRC(0f33ade8) SHA1(1228c312d2a77f1678f14606289754a22ad8d03b) )
+ROM_END
+
+ROM_START( kof97ne )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232ne.p1", 0x000000, 0x100000, CRC(E742C038) SHA1(018a0273c959a7885bda850aade75e411c11c633) )
+ ROM_LOAD16_WORD_SWAP( "232ne.p2", 0x100000, 0x400000, CRC(A028904B) SHA1(f099a31d9f61fc9c63f8816f942c13fb67f56d52) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232ne.c5", 0x2000000, 0x400000, CRC(6FE02054) SHA1(47b3a6f0867e15900deb3ffd5f888cbcf6e2bbdd) )
+ ROM_LOAD16_BYTE( "232ne.c6", 0x2000001, 0x400000, CRC(0F96C84A) SHA1(79a8e1ff71051ece0ca6c8f75b0bd1cd567f2e33) )
+ROM_END
+
+ROM_START( kof97neo )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232neo.p1", 0x000000, 0x100000, CRC(676504e1) SHA1(0a802cf782a97a52251582ff35e70f16fb77fc44) )
+ ROM_LOAD16_WORD_SWAP( "232neo.p2", 0x100000, 0x400000, CRC(10f61d2a) SHA1(b687c3813fc262d351a37c6f47cc141a3f4fba00) )
+
+ NEO_SFIX_128K( "232neo.s1", CRC(7995d156) SHA1(d218dd4829b5c4891975a1da9c277a116ab6ecb4) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97nude )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232-p1.p1", 0x000000, 0x100000, CRC(7db81ad9) SHA1(8bc42be872fd497eb198ca13bf004852b88eb1dc) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232xxx.c1", 0x0000000, 0x800000, CRC(91697765) SHA1(19ea6bf74da9dd4fed4213d82cb7d003a871599b) )
+ ROM_LOAD16_BYTE( "232xxx.c2", 0x0000001, 0x800000, CRC(0c069a41) SHA1(094f587325acc55b6663a17fce6ea0920331a3ff) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232xxx.c5", 0x2000000, 0x400000, CRC(f0336a63) SHA1(aefb4ac0341d1b35d1b61395b3baf99af2e9ab98) )
+ ROM_LOAD16_BYTE( "232xxx.c6", 0x2000001, 0x400000, CRC(52968b9f) SHA1(9f3be2219e3c1a19626624ec16f175ac25723bce) )
+ROM_END
+
+ROM_START( kof97phl ) // Plus Hack by Liyang1983
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232phl.p1", 0x000000, 0x100000, CRC(195cb02f) SHA1(6ced6f7c94b0c8a850ee1ae4ffdf2ab5a3c4627f) )
+ ROM_LOAD16_WORD_SWAP( "232phl.p2", 0x100000, 0x400000, CRC(4cb23f07) SHA1(efd888c5cde03a687547e42e494aac2886198b00) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97pj ) /* The King of Fighters '97 - Hack by TcwLee - (A fixed HXD version - can choose Orochi + add. Iori, Yashiro, Shermie, Chris and Leona) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232pj.p1", 0x000000, 0x100000, CRC(91692771) SHA1(ef1c2d7be60798bd778785d6a8d4fd2250b64679) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97pjc ) /* The King of Fighters '97 - (kof97pjc) - Colour fix by TcwLee - (Character colour change) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232-p1.p1", 0x000000, 0x100000, CRC(7db81ad9) SHA1(8bc42be872fd497eb198ca13bf004852b88eb1dc) )
+ ROM_LOAD16_WORD_SWAP( "232pjc.p2", 0x100000, 0x400000, CRC(a42ff099) SHA1(498d14dbf18640e543cb417733c90e7d2f93d715) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97pl2 ) /* Plus hack set 2 */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232pl2.p1", 0x000000, 0x100000, CRC(1a20007a) SHA1 (70d92f1c848b4303d037423549c7b6d596680b23) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232bh.s1", CRC(71c426e6) SHA1(1fd4a2537daf6a26e1e2707183b0f1762d7a25ff) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97pl3 ) /* Plus hack set 3 */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232xxx.p1", 0x000000, 0x100000, CRC(d5d92967) SHA1(04079b92fe73ee8ee2c08f63388a74435e894945) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232pl3.s1", CRC(cf6afb00) SHA1(aca3d9f571af3195a96bf044f353b3f0bc4cfc3a) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97pla )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232pla.p1", 0x000000, 0x100000, CRC(035911c5) SHA1(3321862384ec91174f1822cfdbc2bf1d1407e775) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232pla.s1", CRC(4ee2149a) SHA1(180a1a90021031eac1a643b769d9cdeda56518f5) ) // scrambled
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97plc ) // Plus Black Edition by ZKW
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232plc.p1", 0x000000, 0x100000, CRC(1fc4c254) SHA1(77d6cca4f27c30965f44b39f38bc2cce471d0f92) )
+ ROM_LOAD16_WORD_SWAP( "232plc.p2", 0x100000, 0x400000, CRC(c6901879) SHA1(bcd2998750f89421bef0ae3bae401914cac973df) )
+
+ NEO_SFIX_128K( "232plc.s1", CRC(d8266286) SHA1(ce59a15ec4d8c8a8ae759c10d0ebb5df0bef85d9) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232plc.c5", 0x2000000, 0x400000, CRC(763040eb) SHA1(998df039fce45b13a1dbeecaf44e2f9e290141da) )
+ ROM_LOAD16_BYTE( "232plc.c6", 0x2000001, 0x400000, CRC(60b303b1) SHA1(5da1d5fcdd0dcdf1ff583378ac34a977273e4f2b) )
+ROM_END
+
+ROM_START( kof97plus )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232plus.p1", 0x000000, 0x100000, CRC(0b124634) SHA1(1c272a5601447ee26629eb99482c5de9148615a7) )
+ ROM_LOAD16_WORD_SWAP( "232plus.p2", 0x100000, 0x400000, CRC(1cb2023c) SHA1(6a81f7e7e8aa88e21f50fff1117a051056c90c41) )
+
+ NEO_SFIX_128K( "232kai.s1", CRC(1455f002) SHA1(6e164be5303e75f366eb1172423b8552a9257a9c) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232yk.c3", 0x1000000, 0x800000, CRC(b092e64f) SHA1(7d809432d068db8f9056f5210570191416f1a53b) )
+ ROM_LOAD16_BYTE( "232yk.c4", 0x1000001, 0x800000, CRC(d25e8a04) SHA1(52227828e3fdd27399b4cd514551abf856293f47) )
+ ROM_LOAD16_BYTE( "232z.c5", 0x2000000, 0x400000, CRC(9af776d3) SHA1(a054ca17e6b35c8743286a025488b04186eebdbe) )
+ ROM_LOAD16_BYTE( "232z.c6", 0x2000001, 0x400000, CRC(9428d70c) SHA1(c0122ef6f83645f57edef6956400fe49fd94dfca) )
+ROM_END
+
+ROM_START( kof97pm )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232pm.p1", 0x000000, 0x100000, CRC(34ccabae) SHA1(9d631b5dfac3d7564aa60a17bd15b565081bca02) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97ps ) // Playstation Hack
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232ps.p1", 0x000000, 0x100000, CRC(fc25feec) SHA1(5e2677ce1011789bd74c208cd6b1286f4ca8f4bd) )
+ ROM_LOAD16_WORD_SWAP( "232ps.p2", 0x100000, 0x400000, CRC(90723643) SHA1(62d95957ae51732de30af903dc8f07f5556d15f5) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232ps.c1", 0x0000000, 0x800000, CRC(748ade86) SHA1(3b4d84e978b03f8cd8f2155da524870096e3734f) )
+ ROM_LOAD16_BYTE( "232ps.c2", 0x0000001, 0x800000, CRC(3270fa6e) SHA1(16d6afdf0ed437303a069184bbbbcbc0719f3db6) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232ps.c5", 0x2000000, 0x400000, CRC(47711a8c) SHA1(4105b1326a83d042dd998431c7bea18ee08f124c) )
+ ROM_LOAD16_BYTE( "232ps.c6", 0x2000001, 0x400000, CRC(6703a48a) SHA1(ffdc3f8e65a0197d9fcb9bd0d1d945061bf9736e) )
+ROM_END
+
+ROM_START( kof97rev ) // KOF97 revival
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232rev.p1", 0x000000, 0x100000, CRC(565adea2) SHA1(fa179e2b958096033692bd523571e130f8f52b77) )
+ ROM_LOAD16_WORD_SWAP( "232rev.p2", 0x100000, 0x400000, CRC(96848312) SHA1(198ddbbbc0834b8cdabf1f765d6c82e382de95ff) )
+
+ NEO_SFIX_128K( "232rev.s1", CRC(61a87d84) SHA1(3e5c17c13eacf48c92fbb3863c0af89570e44b31) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232rev.c1", 0x0000000, 0x800000, CRC(ba114558) SHA1(8e66d600b3c65061f83622934585f58ba8809691) )
+ ROM_LOAD16_BYTE( "232rev.c2", 0x0000001, 0x800000, CRC(cb287153) SHA1(d08559131d0fc9900de12433733af176d698dff4) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232rev.c5", 0x2000000, 0x400000, CRC(9c543bc6) SHA1(cb227c71aca5e632a08fbd7f5af53581b5b28f93) )
+ ROM_LOAD16_BYTE( "232rev.c6", 0x2000001, 0x400000, CRC(e3feb991) SHA1(978b106bccd31c8229c9abcc6e682a7b5fc98154) )
+ROM_END
+
+ROM_START( kof97ribe ) // All confirmed
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232ribe.p1", 0x000000, 0x4551c6, CRC(21863b47) SHA1(e3e2b1f6818cd37d5482be9108269b4bbfd7d459) )
+ ROM_LOAD16_WORD_SWAP( "232ribe.p2", 0x100000, 0x400000, CRC(5ad1ecc6) SHA1(83ffffa98013ca8fcec9157846e272b0e1184968) )
+ ROM_IGNORE( 0x054f64 )
+
+ NEO_SFIX_MT_128K
+ ROM_LOAD( "232ribe.v1", 0x000000, 0x20000, CRC(dcefb4c5) SHA1(9d3aebf0af27bc8e148621e3da7b73994e0725a1) )
+ ROM_IGNORE( 0x434f50 )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97rk ) // Hack by Risko
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232rk.p1", 0x000000, 0x100000, CRC(940409b7) SHA1(94d1e0ec3460f5a2087f5fc1e1455df123f18c28) )
+ ROM_LOAD16_WORD_SWAP( "232rk.p2", 0x100000, 0x400000, CRC(b5cc5323) SHA1(30d156629a6cf69a2a9f6efb679c206e4ed9b2bf) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97rst ) // All confirmed
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232rst.p1", 0x000000, 0x100000, CRC(c20d3712) SHA1(f55f781f0affab4d78fa5484ec9ed4254f359c0e) )
+ ROM_LOAD16_WORD_SWAP( "232rst.p2", 0x100000, 0x400000, CRC(ca32e3d2) SHA1(a1c540f9a6e305c3d73b04117a630abe6ba6f0fc) )
+
+ NEO_SFIX_128K( "232rst.s1", CRC(caab5d72) SHA1(1c4f6c6dc30c5d8e2aac3a651913ca9a4742dab3) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232rst.c1", 0x0000000, 0x800000, CRC(ede4fff1) SHA1(7ddc48cd06a71fbc8bac9d9bc36bd0a8395a008e) )
+ ROM_LOAD16_BYTE( "232rst.c2", 0x0000001, 0x800000, CRC(d6957979) SHA1(13d0c0cb480ca4c3f3b96408af54c01c400f989f) )
+ ROM_LOAD16_BYTE( "232yk.c3", 0x1000000, 0x800000, CRC(b092e64f) SHA1(7d809432d068db8f9056f5210570191416f1a53b) )
+ ROM_LOAD16_BYTE( "232yk.c4", 0x1000001, 0x800000, CRC(d25e8a04) SHA1(52227828e3fdd27399b4cd514551abf856293f47) )
+ ROM_LOAD16_BYTE( "232rst.c5", 0x2000000, 0x400000, CRC(6eba5e06) SHA1(939ba1b47e69a3d578f17256dd97d2f4f9238ad4) )
+ ROM_LOAD16_BYTE( "232rst.c6", 0x2000001, 0x400000, CRC(168e4ac5) SHA1(437db7a1388cdd1ff80b703a64655a73443b438f) )
+ROM_END
+
+ROM_START( kof97rst2 ) // All confirmed
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232rst2.p1", 0x000000, 0x100000, CRC(7d6ad86d) SHA1(9b2e9430b11a7c29e547a5a2af5ba9f914925f95) )
+ ROM_LOAD16_WORD_SWAP( "232rst.p2", 0x100000, 0x400000, CRC(ca32e3d2) SHA1(a1c540f9a6e305c3d73b04117a630abe6ba6f0fc) )
+
+ NEO_SFIX_128K( "232rst.s1", CRC(caab5d72) SHA1(1c4f6c6dc30c5d8e2aac3a651913ca9a4742dab3) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232rst.c1", 0x0000000, 0x800000, CRC(ede4fff1) SHA1(7ddc48cd06a71fbc8bac9d9bc36bd0a8395a008e) )
+ ROM_LOAD16_BYTE( "232rst.c2", 0x0000001, 0x800000, CRC(d6957979) SHA1(13d0c0cb480ca4c3f3b96408af54c01c400f989f) )
+ ROM_LOAD16_BYTE( "232yk.c3", 0x1000000, 0x800000, CRC(b092e64f) SHA1(7d809432d068db8f9056f5210570191416f1a53b) )
+ ROM_LOAD16_BYTE( "232yk.c4", 0x1000001, 0x800000, CRC(d25e8a04) SHA1(52227828e3fdd27399b4cd514551abf856293f47) )
+ ROM_LOAD16_BYTE( "232rst.c5", 0x2000000, 0x400000, CRC(6eba5e06) SHA1(939ba1b47e69a3d578f17256dd97d2f4f9238ad4) )
+ ROM_LOAD16_BYTE( "232rst.c6", 0x2000001, 0x400000, CRC(168e4ac5) SHA1(437db7a1388cdd1ff80b703a64655a73443b438f) )
+ROM_END
+
+ROM_START( kof97rst3 ) // All confirmed
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232rst3.p1", 0x000000, 0x100000, CRC(b7e4b5bd) SHA1(1fe4d492492dd4716f1b31319ad68b757c7fab3a) )
+ ROM_LOAD16_WORD_SWAP( "232rst3.p2", 0x100000, 0x400000, CRC(620a63ed) SHA1(20fa7c8d694a7f15715840240192c8d6e34e68b4) )
+
+ NEO_SFIX_128K( "232rst.s1", CRC(caab5d72) SHA1(1c4f6c6dc30c5d8e2aac3a651913ca9a4742dab3) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232rst.c1", 0x0000000, 0x800000, CRC(ede4fff1) SHA1(7ddc48cd06a71fbc8bac9d9bc36bd0a8395a008e) )
+ ROM_LOAD16_BYTE( "232rst.c2", 0x0000001, 0x800000, CRC(d6957979) SHA1(13d0c0cb480ca4c3f3b96408af54c01c400f989f) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97rv )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232rv.p1", 0x000000, 0x100000, CRC(eff2926f) SHA1(d9a64806ace1d2b08d8a5b2092bbfeb93c3230fd) )
+ ROM_LOAD16_WORD_SWAP( "232rv.p2", 0x100000, 0x400000, CRC(478a61bd) SHA1(e826fcf4c3392a833045a285d354a72421a527bc) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232z.c5", 0x2000000, 0x400000, CRC(9af776d3) SHA1(a054ca17e6b35c8743286a025488b04186eebdbe) )
+ ROM_LOAD16_BYTE( "232z.c6", 0x2000001, 0x400000, CRC(9428d70c) SHA1(c0122ef6f83645f57edef6956400fe49fd94dfca) )
+ROM_END
+
+ROM_START( kof97saw ) /* The King of Fighters '97 - (kof97saw) - Hack by Wesker - (Shingo: The content must kill the technique entire flame special effect is the red flame) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232saw.p1", 0x000000, 0x100000, CRC(eb99d0d0) SHA1(43d7495ec873b3c1f9cc33ecdc124f020851e1f7) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97sex )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232-p1.p1", 0x000000, 0x100000, CRC(7db81ad9) SHA1(8bc42be872fd497eb198ca13bf004852b88eb1dc) )
+ ROM_LOAD16_WORD_SWAP( "232sex.p2", 0x100000, 0x400000, CRC(ca63e700) SHA1(1b6a4d3491e467eb3cb0d2d947707482cac3ea34) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232sex.c1", 0x0000000, 0x800000, CRC(085bcdfa) SHA1(042deb49b20763bbe0a3e8236a6d5798b3036536) )
+ ROM_LOAD16_BYTE( "232sex.c2", 0x0000001, 0x800000, CRC(78613707) SHA1(68f244a83e7314fe62a61bad0d0e5253a493da54) )
+ ROM_LOAD16_BYTE( "232sex.c3", 0x1000000, 0x800000, CRC(afde78ed) SHA1(2075d68980a867b498fe812f3265a36bddd57a81) )
+ ROM_LOAD16_BYTE( "232sex.c4", 0x1000001, 0x800000, CRC(9d61d6ca) SHA1(03d81bcda5d1d08fbe2eb2569937bcb0fdf83269) )
+ ROM_LOAD16_BYTE( "232sex.c5", 0x2000000, 0x400000, CRC(10ea56c6) SHA1(8324418820f88264c19be5fd73a0fe98fe5b0c0e) )
+ ROM_LOAD16_BYTE( "232sex.c6", 0x2000001, 0x400000, CRC(d48fe6c9) SHA1(6fec93dcc562b7243b2f550857073323f81d3db7) )
+ROM_END
+
+ROM_START( kof97shi ) // Evolution Shin Edition
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232shi.p1", 0x000000, 0x100000, CRC(dbcec604) SHA1(5bf014bad8ce228f9683151e2e4b0e359108c920) )
+ ROM_LOAD16_WORD_SWAP( "232shi.p2", 0x100000, 0x400000, CRC(5a500cf6) SHA1(3239e819cc68011e460160b534fb6c5c26604c8a) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97sm ) // Smoke Version
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232-p1.p1", 0x000000, 0x100000, CRC(7db81ad9) SHA1(8bc42be872fd497eb198ca13bf004852b88eb1dc) )
+ ROM_LOAD16_WORD_SWAP( "232sm.p2", 0x100000, 0x400000, CRC(d7e62250) SHA1(34d56d01e4e15a05ea7890bda0148994a7763c39) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97svs )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232svs.p1", 0x000000, 0x454fd8, CRC(8edbfb69) SHA1(1c5893f24d0cdb7fe275a7b14f844ef9e2296417) )
+ ROM_LOAD16_WORD_SWAP( "232svs.p2", 0x100000, 0x454f46, CRC(9deca038) SHA1(dbb756ad859e8ec4f7ed1400f5d839401068ee58) )
+
+ NEO_SFIX_128K( "232svs.s1", CRC(867a9aec) SHA1(9483eb67ce8bad9a5933554e25a34f68b1ad6f13) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232svs.c1", 0x0000000, 0x800000, CRC(7173901b) SHA1(a0eb2c269560baaabb083f733b7bea6aab954eae) )
+ ROM_LOAD16_BYTE( "232svs.c2", 0x0000001, 0x800000, CRC(404ef620) SHA1(e3ca4e677c6f76e467e482172d9acbb60cc819b8) )
+ ROM_LOAD16_BYTE( "232svs.c3", 0x1000000, 0x800000, CRC(27a27dd5) SHA1(658000df70768f3ca257d64eaedadad26e34fc95) )
+ ROM_LOAD16_BYTE( "232svs.c4", 0x1000001, 0x800000, CRC(e6a91916) SHA1(b21fda210dac93174585c70fd58735ed42a5b7f0) )
+ ROM_LOAD16_BYTE( "232svs.c5", 0x2000000, 0x800000, CRC(89dc1ee5) SHA1(4eda0211a3e59ca3c70cec294fa671c789ec905e) )
+ ROM_LOAD16_BYTE( "232svs.c6", 0x2000001, 0x800000, CRC(6f047b36) SHA1(9df4cb34f3b28a97c0b903394b3e2cdb79906582) )
+ROM_END
+
+ROM_START( kof97svsb2 ) // all confirmed
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232svsb2.p1", 0x000000, 0x454fd8, CRC(c9a489de) SHA1(b93dd3aa9e91456c7d92b81dc96d60c1c94797d3) )
+ ROM_LOAD16_WORD_SWAP( "232svsb2.p2", 0x100000, 0x400000, CRC(9f2c57dd) SHA1(3cf16a8b0d79f95279ca7ba19678c50499b470e4) )
+ ROM_IGNORE( 0x054f64 )
+
+ NEO_SFIX_128K( "232xt.s1", CRC(d6fe166f) SHA1(55e70395466ab68e7a170be3aa6f5978e704701b) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232yk.c1", 0x0000000, 0x800000, CRC(d504bf4a) SHA1(a58f6c07080c666ae1bb3e2dbab4790feab5ccc7) )
+ ROM_LOAD16_BYTE( "232yk.c2", 0x0000001, 0x800000, CRC(942ea708) SHA1(20389bdb253611745c5515206b1eb620a1574711) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232svsb2.c5", 0x2000000, 0x800000, CRC(2cb9f438) SHA1(a358f81e937504b6bc087bf0e40a17ac07a968b2) )
+ ROM_LOAD16_BYTE( "232svsb2.c6", 0x2000001, 0x800000, CRC(95029580) SHA1(51cc1186269da68c89af2e2f491477e0e2eb244f) )
+ROM_END
+
+ROM_START( kof97sw ) /* The King of Fighters '97 - (kof97sw) - Hack by Wesker - (Shingo: 26a\c the 623a\c special effect is the red flame) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232sw.p1", 0x000000, 0x100000, CRC(b4378ad4) SHA1(18210a5259f1499123277532dabb00b0c7bee50e) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97tse ) // All confirmed
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232tse.p1", 0x000000, 0x454f50, CRC(30408a6a) SHA1(71fee1b90a6e19baa98b6bb3c9a34034fbfe132c) )
+ ROM_LOAD16_WORD_SWAP( "232tse.p2", 0x100000, 0x400000, CRC(b157888a) SHA1(fa791e9abb7f6f8ac1497888f720bf62ad907949) )
+ ROM_IGNORE( 0x54f64 )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97wh ) /* The King of Fighters '97 - (kof97wh) - Hack by Wesker - (Style change for Kyo to 95' Kyo) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232wh.p1", 0x000000, 0x100000, CRC(a2534a20) SHA1(5717e30eeac96de6e23e0e5d4e9b1792362c8ae3) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97wpls ) /* The King of Fighters '97 - (kof97wpls) - Hack by Wesker - ('PLUS' version by Wesker) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232wpls.p1", 0x000000, 0x100000, CRC(036c885d) SHA1(7c5b1c2901a11f627c3552c6846a2aca35397eaf) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97xbt )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232xbt.p1", 0x000000, 0x100000, CRC(518416bd) SHA1(db1f1f739ddb182d4215482a41ecf177909fe2c5) )
+ ROM_LOAD16_WORD_SWAP( "232xbt.p2", 0x100000, 0x400000, CRC(3a1f7c4e) SHA1(a4f2059543e0d31b6e7e27775966955a9a41e049) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232ne.c5", 0x2000000, 0x400000, CRC(6fe02054) SHA1(47b3a6f0867e15900deb3ffd5f888cbcf6e2bbdd) )
+ ROM_LOAD16_BYTE( "232ne.c6", 0x2000001, 0x400000, CRC(0f96c84a) SHA1(79a8e1ff71051ece0ca6c8f75b0bd1cd567f2e33) )
+ROM_END
+
+ROM_START( kof97xi )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232xi.p1", 0x000000, 0x100000, CRC(acc7bfb2) SHA1(64e0b8897a7f80627ac020452daaa1aa2a073ffe) )
+ ROM_LOAD16_WORD_SWAP( "232xi.p2", 0x100000, 0x400000, CRC(098f4871) SHA1(d4e7bfe953f6602b71ccb69bb91fc8e78d911467) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232bs.c1", 0x0000000, 0x800000, CRC(47932f00) SHA1(3dcedd194a2138cd8b006462a42b52e925f6b5ce) )
+ ROM_LOAD16_BYTE( "232bs.c2", 0x0000001, 0x800000, CRC(f87c3d84) SHA1(0de2dcb6a475ea6475d67c60a254e6b7cbcde951) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232xi.c5", 0x2000000, 0x800000, CRC(1e441dd9) SHA1(5ae1973f87abec4b84ab76a64dd30c56d8a535ac) )
+ ROM_LOAD16_BYTE( "232xi.c6", 0x2000001, 0x800000, CRC(69d1435a) SHA1(21a1f739dd77ea6d4112896608cde0158c2adf6b) )
+ROM_END
+
+ROM_START( kof97xp )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232xp.p1", 0x000000, 0x100000, CRC(265396cd) SHA1(aac58b1582bef6de401f70455da26b835e6fd0af) )
+ ROM_LOAD16_WORD_SWAP( "232xp.p2", 0x100000, 0x400000, CRC(da48eb75) SHA1(da516b2fe5de0b740b9126302528805b433335ea) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232lr.c1", 0x0000000, 0x800000, CRC(6c224c0b) SHA1(54ace1387646728ddd2fe3feea4b22c46e75fc7d) )
+ ROM_LOAD16_BYTE( "232lr.c2", 0x0000001, 0x800000, CRC(badf8fa5) SHA1(07381d1d64f5fd4cd11989a2f715298c6d4827cd) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97xt )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232xt.p1", 0x000000, 0x100000, CRC(2e4f4e3b) SHA1(122b749fe68057fa030d4f0af270883e99246a31) )
+ ROM_LOAD16_WORD_SWAP( "232xt.p2", 0x100000, 0x400000, CRC(6d4503ce) SHA1(95217d0b8f51a92cb98eb17d4a9c106a1a0a7920) )
+
+ NEO_SFIX_128K( "232xt.s1", CRC(d6fe166f) SHA1(55e70395466ab68e7a170be3aa6f5978e704701b) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232yk.c1", 0x0000000, 0x800000, CRC(d504bf4a) SHA1(a58f6c07080c666ae1bb3e2dbab4790feab5ccc7) )
+ ROM_LOAD16_BYTE( "232yk.c2", 0x0000001, 0x800000, CRC(942ea708) SHA1(20389bdb253611745c5515206b1eb620a1574711) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232xt.c5", 0x2000000, 0x800000, CRC(c1bd2375) SHA1(1fbd0e714d5e0e61b90a7a04c5eab3fa4652dfe5) )
+ ROM_LOAD16_BYTE( "232xt.c6", 0x2000001, 0x800000, CRC(a7c8506a) SHA1(c545b5ca9a8559caa17593c5dc137f939f4f42e7) )
+ROM_END
+
+ROM_START( kof97xt1 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232xt1.p1", 0x000000, 0x100000, CRC(a6cd80ee) SHA1(948f977b19f05a971bb54a7c416a05c05b31caaa) )
+ ROM_LOAD16_WORD_SWAP( "232xt1.p2", 0x100000, 0x400000, CRC(541fdd36) SHA1(64ce02fd84b326bdf1e5857374441ff1dba0976b) )
+
+ NEO_SFIX_128K( "232xt.s1", CRC(d6fe166f) SHA1(55e70395466ab68e7a170be3aa6f5978e704701b) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232xt1.c1", 0x0000000, 0x800000, CRC(e6ad03e0) SHA1(18caab6d6c4d1f26b5f7cca9fc5f715d82086dac) )
+ ROM_LOAD16_BYTE( "232xt1.c2", 0x0000001, 0x800000, CRC(ca25742c) SHA1(69dd52092baf917d00ab7f16235780cbb9f8bfa1) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232xt1.c5", 0x2000000, 0x800000, CRC(780bdd4b) SHA1(f44c3da9f0938a9bcc3ea78a044511e8a5e3fd9f) )
+ ROM_LOAD16_BYTE( "232xt1.c6", 0x2000001, 0x800000, CRC(9e68846d) SHA1(1d389b48d7be965ac7ee7b97f49aace372f266c8) )
+ROM_END
+
+ROM_START( kof97xxx )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232xxx.p1", 0x000000, 0x100000, CRC(d5d92967) SHA1(04079b92fe73ee8ee2c08f63388a74435e894945) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232xxx.c1", 0x0000000, 0x800000, CRC(91697765) SHA1(19ea6bf74da9dd4fed4213d82cb7d003a871599b) )
+ ROM_LOAD16_BYTE( "232xxx.c2", 0x0000001, 0x800000, CRC(0c069a41) SHA1(094f587325acc55b6663a17fce6ea0920331a3ff) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232xxx.c5", 0x2000000, 0x400000, CRC(f0336a63) SHA1(aefb4ac0341d1b35d1b61395b3baf99af2e9ab98) )
+ ROM_LOAD16_BYTE( "232xxx.c6", 0x2000001, 0x400000, CRC(52968b9f) SHA1(9f3be2219e3c1a19626624ec16f175ac25723bce) )
+ROM_END
+
+ROM_START( kof97y ) /* The King of Fighters '97 - Hack by Ydmis - (Can choose add. Iori, Yashiro, Shermie, Chris and Leona) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232y.p1", 0x000000, 0x100000, CRC(d1893f4e) SHA1(64258216d12cd7445062574c4e6690a6bf5b1541) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97ya ) /* The King of Fighters '97 - Hack by Ydmis - (Can choose Orochi) (set 1) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232ya.p1", 0x000000, 0x100000, CRC(36a82fb7) SHA1(5f45d51b0e28d3b0cc71388934d8cd6830654f53) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97yb ) /* The King of Fighters '97 - Hack by Ydmis - (Can choose Orochi) (set 2) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232yb.p1", 0x000000, 0x100000, CRC(55557bf2) SHA1(46f681a86b6f0e70d2a177e346937e9ef8d33fc9) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97ye ) /* The King of Fighters '97 - Enhance by Ydmis - (Can choose add. Iori, Yashiro, Shermie, Chris and Leona - power hack ABC in Extra Mode) (set 1) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232ye.p1", 0x000000, 0x100000, CRC(35e1bbab) SHA1(beb43970025e9e04eae52386c93621feb4373d7f) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97yg ) /* The King of Fighters '97 - Enhance by Ydmis - (Can choose Orochi + add. Iori, Yashiro, Shermie, Chris and Leona - power hack ABC in Extra Mode) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232yg.p1", 0x000000, 0x100000, CRC(2ef7c10d) SHA1(b223ddad9547f2899885cd7306bb2baa188c64f2) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97yh ) /* The King of Fighters '97 - Enhance by Ydmis - (Can choose add. Iori, Yashiro, Shermie, Chris and Leona - power hack ABC in Extra Mode) (set 2) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232yh.p1", 0x000000, 0x100000, CRC(a1d23d62) SHA1(3ddb3a5f917c2b4ed3505fd13b1e8c4d0bfdaaa6) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97yk )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232yk.p1", 0x000000, 0x100000, CRC(e10200f8) SHA1(9a224395b601c2df6616f888ab6b69e2039fd19f) )
+ ROM_LOAD16_WORD_SWAP( "232yk.p2", 0x100000, 0x400000, CRC(e6bfaee4) SHA1(36ddfabe092aaa0604d34838785624857d7ff5ef) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232yk.c1", 0x0000000, 0x800000, CRC(d504bf4a) SHA1(a58f6c07080c666ae1bb3e2dbab4790feab5ccc7) )
+ ROM_LOAD16_BYTE( "232yk.c2", 0x0000001, 0x800000, CRC(942ea708) SHA1(20389bdb253611745c5515206b1eb620a1574711) )
+ ROM_LOAD16_BYTE( "232yk.c3", 0x1000000, 0x800000, CRC(b092e64f) SHA1(7d809432d068db8f9056f5210570191416f1a53b) )
+ ROM_LOAD16_BYTE( "232yk.c4", 0x1000001, 0x800000, CRC(d25e8a04) SHA1(52227828e3fdd27399b4cd514551abf856293f47) )
+ ROM_LOAD16_BYTE( "232yk.c5", 0x2000000, 0x800000, CRC(94f234e1) SHA1(0eb67d21572fa1e7b0503d88f526caac65e23a78) )
+ ROM_LOAD16_BYTE( "232yk.c6", 0x2000001, 0x800000, CRC(c794f747) SHA1(242fe9b75f86719dc02493ea6f295cf3b3d7fc7e) )
+ROM_END
+
+ROM_START( kof97yk1 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232yk1.p1", 0x000000, 0x100000, CRC(cdbcdf48) SHA1(4ac5649955afcbf06a44c4a265db9e6262f00f82) )
+ ROM_LOAD16_WORD_SWAP( "232yk1.p2", 0x100000, 0x400000, CRC(89716899) SHA1(55c3bd5f12dbaf4e6f11582986d8f8e73fbe3c4b) )
+
+ NEO_SFIX_128K( "232yk1.s1", CRC(c7dbe270) SHA1(0b81b31da6c18dd02e8d0442100685d5ff61bece) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232yk1.c1", 0x0000000, 0x800000, CRC(f748da71) SHA1(5012e8537e7d16d365d9c088a70323b3b71cd6f5) )
+ ROM_LOAD16_BYTE( "232yk1.c2", 0x0000001, 0x800000, CRC(6b77e767) SHA1(7f625fa348754a248d9b58bd2f085c47142faf91) )
+ ROM_LOAD16_BYTE( "232yk1.c3", 0x1000000, 0x800000, CRC(ffb025af) SHA1(64913b51b496a13a92317008d2a15543e6c89ba9) )
+ ROM_LOAD16_BYTE( "232yk1.c4", 0x1000001, 0x800000, CRC(7182157c) SHA1(306a968ae325d0b7d647e7fdb36a3a07bacda923) )
+ ROM_LOAD16_BYTE( "232yk1.c5", 0x2000000, 0x800000, CRC(00a77a26) SHA1(a86054fd3870be49ad6055a2fab663cb5ef27de2) )
+ ROM_LOAD16_BYTE( "232yk1.c6", 0x2000001, 0x800000, CRC(0b504e35) SHA1(597cabd5077670827ad3e809d6cd52c9c7f3013a) )
+ROM_END
+
+ROM_START( kof97yk2 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232yk2.p1", 0x000000, 0x100000, CRC(03086c94) SHA1(52fe6701f215b60d4fc1771b7c06474ff6d2cfbc) )
+ ROM_LOAD16_WORD_SWAP( "232yk2.p2", 0x100000, 0x400000, CRC(387561f1) SHA1(d03da7857a2d379e899f9556d05eb7d79f49b2c9) )
+
+ NEO_SFIX_128K( "232evoa.s1", CRC(f3c0e90a) SHA1(257f20127a39e8534fe84fbcf2565b162feef4a5) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232yk.c1", 0x0000000, 0x800000, CRC(d504bf4a) SHA1(a58f6c07080c666ae1bb3e2dbab4790feab5ccc7) )
+ ROM_LOAD16_BYTE( "232yk.c2", 0x0000001, 0x800000, CRC(942ea708) SHA1(20389bdb253611745c5515206b1eb620a1574711) )
+ ROM_LOAD16_BYTE( "232yk1.c3", 0x1000000, 0x800000, CRC(ffb025af) SHA1(64913b51b496a13a92317008d2a15543e6c89ba9) )
+ ROM_LOAD16_BYTE( "232yk1.c4", 0x1000001, 0x800000, CRC(7182157c) SHA1(306a968ae325d0b7d647e7fdb36a3a07bacda923) )
+ ROM_LOAD16_BYTE( "232yk2.c5", 0x2000000, 0x800000, CRC(d82772b2) SHA1(87626ad6ab30063e9784a1b2748c510219c17fcc) )
+ ROM_LOAD16_BYTE( "232yk2.c6", 0x2000001, 0x800000, CRC(0b06fba8) SHA1(528b66d6d53682316dd1f33d1cf8b689b3642364) )
+ROM_END
+
+ROM_START( kof97yk83 ) // all confirmed
+ ROM_REGION( 0x700000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232kp83.p1", 0x000000, 0x100000, CRC(b983abb8) SHA1(e3d3f222b883b82c686b52b7042401ac8a922992) )
+ ROM_LOAD16_WORD_SWAP( "232kp1.p2", 0x100000, 0x600000, CRC(fddde211) SHA1(6e8280ad7a9dda204f30e40d9575e31d3e436ef2) )
+
+ NEO_SFIX_128K( "232yk1.s1", CRC(c7dbe270) SHA1(0b81b31da6c18dd02e8d0442100685d5ff61bece) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232yk1.c1", 0x0000000, 0x800000, CRC(f748da71) SHA1(5012e8537e7d16d365d9c088a70323b3b71cd6f5) )
+ ROM_LOAD16_BYTE( "232yk1.c2", 0x0000001, 0x800000, CRC(6b77e767) SHA1(7f625fa348754a248d9b58bd2f085c47142faf91) )
+ ROM_LOAD16_BYTE( "232yk1.c3", 0x1000000, 0x800000, CRC(ffb025af) SHA1(64913b51b496a13a92317008d2a15543e6c89ba9) )
+ ROM_LOAD16_BYTE( "232yk1.c4", 0x1000001, 0x800000, CRC(7182157c) SHA1(306a968ae325d0b7d647e7fdb36a3a07bacda923) )
+ ROM_LOAD16_BYTE( "232yk1.c5", 0x2000000, 0x800000, CRC(00a77a26) SHA1(a86054fd3870be49ad6055a2fab663cb5ef27de2) )
+ ROM_LOAD16_BYTE( "232yk1.c6", 0x2000001, 0x800000, CRC(0b504e35) SHA1(597cabd5077670827ad3e809d6cd52c9c7f3013a) )
+ROM_END
+
+ROM_START( kof97yk85 )
+ ROM_REGION( 0x700000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232yk85.p1", 0x000000, 0x100000, CRC(821b0dc4) SHA1(402488249d4e2984fb5c42f0bb4c00b179ea4d12) )
+ ROM_IGNORE( 0x354f67 )
+ ROM_LOAD16_WORD_SWAP( "232yk85.p2", 0x100000, 0x600000, CRC(170e7302) SHA1(3952ca4fbf8aa71e372372881efc4f4aafa9562c) )
+
+ NEO_SFIX_128K( "232yk85.s1", CRC(d8826314) SHA1(5d3ffdf709ee8f84e451464866d0ddcaf98bdb89) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+ //ROM_LOAD( "265-nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) ) in romset but m1 is not changed so i doubt it is used
+
+ ROM_REGION( 0x5000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232yk85.c1", 0x0000000, 0x800000, CRC(e47371bb) SHA1(e0e107f4edfbac0a7638b240405745bf31dbadf9) )
+ ROM_LOAD16_BYTE( "232yk85.c2", 0x0000001, 0x800000, CRC(e09108b0) SHA1(b19e0101ed500dec65156a6c19334125a4012521) )
+ ROM_LOAD16_BYTE( "232yk1.c3", 0x1000000, 0x800000, CRC(ffb025af) SHA1(64913b51b496a13a92317008d2a15543e6c89ba9) )
+ ROM_LOAD16_BYTE( "232yk1.c4", 0x1000001, 0x800000, CRC(7182157c) SHA1(306a968ae325d0b7d647e7fdb36a3a07bacda923) )
+ ROM_LOAD16_BYTE( "232yk85.c5", 0x2000000, 0x800000, CRC(c61653cc) SHA1(05674fb5b0007f200b090e93863335fdf474fa64) )
+ ROM_LOAD16_BYTE( "232yk85.c6", 0x2000001, 0x800000, CRC(a01a762f) SHA1(68df7a1753745b9468c4f464779c2c5033f16458) )
+ ROM_LOAD16_BYTE( "232yk85.c7", 0x3000000, 0x800000, CRC(52ac1bcf) SHA1(51f026db5bac479b82297260b55575f8a60306c7) )
+ ROM_LOAD16_BYTE( "232yk85.c8", 0x3000001, 0x800000, CRC(76de561d) SHA1(8f27e746372daf77ff41c4ee431fa36ae22c7b8d) )
+ ROM_LOAD16_BYTE( "232yk85.c9", 0x4000000, 0x800000, CRC(46eb506a) SHA1(1b64fb31dfdc95b901b2e3d359bdee38f764358f) )
+ ROM_LOAD16_BYTE( "232yk85.c10", 0x4000001, 0x800000, CRC(33595746) SHA1(1532ce71b27beace35f359568d506eaf75ad578d) )
+ROM_END
+
+ROM_START( kof97yl ) /* The King of Fighters '97 - Hack by Leather and Ydmis - (Can choose Orochi + 5 add. characters - extra stage select) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232yl.p1", 0x000000, 0x100000, CRC(b74278b8) SHA1(5fe72fa346c54229b3b80121720af624a7eca95c) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97yl2 ) /* The King of Fighters '97 - Hack by Leather and Ydmis - (Can choose Orochi + 5 add. characters - extra stage select - based on kof97eh/eh2) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232yl2.p1", 0x000000, 0x100000, CRC(ce22762f) SHA1(1be39a25a51db1f50633412aec35db79846938ee) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97yo )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232yo.p1", 0x000000, 0x100000, CRC(3aeeba44) SHA1(71329e0b141bd1507f750a046b9e718abd653840) )
+ ROM_LOAD16_WORD_SWAP( "232yo.p2", 0x100000, 0x400000, CRC(1bb72a6e) SHA1(7edc3f44619c72debeba7d4cd2965ad27b5f0a90) )
+
+ NEO_SFIX_128K( "kf97-s1p.bin", CRC(73254270) SHA1(8d06305f9d8890da1327356272b88bdd0dc089f5) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232yo.c5", 0x2000000, 0x800000, CRC(10475333) SHA1(244f209925525fe9f9aca2a57e3e8d10ea28c7a3) )
+ ROM_LOAD16_BYTE( "232yo.c6", 0x2000001, 0x800000, CRC(1d8a90fe) SHA1(5ee10a7d5fbf3f31e5efc02177a1111aaafa361e) )
+ROM_END
+
+ROM_START( kof97z ) // Hack by Zuojie
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232z.p1", 0x000000, 0x100000, CRC(2d0d243d) SHA1(96234897b91a90cbdee0ead735a00615dffa4ca1) )
+ ROM_LOAD16_WORD_SWAP( "232z.p2", 0x100000, 0x400000, CRC(505e3981) SHA1(a8bcddcffc5e6a3f1879e91fc07ea5c9177b8f37) )
+
+ NEO_SFIX_128K( "232z.s1", CRC(ece9abba) SHA1(608ea08ef8fd5f32e97a99df4edf285eb9f2e108) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232z.c1", 0x0000000, 0x800000, CRC(972bea52) SHA1(236d70abceb993d340a89cfa0cd0bd5f2c5753b1) )
+ ROM_LOAD16_BYTE( "232z.c2", 0x0000001, 0x800000, CRC(301a1328) SHA1(2b30a2576a663e01f34aca3b1136ae870108f8c1) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232z.c5", 0x2000000, 0x400000, CRC(9af776d3) SHA1(a054ca17e6b35c8743286a025488b04186eebdbe) )
+ ROM_LOAD16_BYTE( "232z.c6", 0x2000001, 0x400000, CRC(9428d70c) SHA1(c0122ef6f83645f57edef6956400fe49fd94dfca) )
+ROM_END
+
+ROM_START( kof97zm )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232zm.p1", 0x000000, 0x100000, CRC(a2c45045) SHA1(511c96507c39e4c58543caf56dbe40f40c821b19) )
+ ROM_LOAD16_WORD_SWAP( "232zm.p2", 0x100000, 0x400000, CRC(ca11478d) SHA1(484533266ba677fa2930e977226c4b72a59de8e2) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+
+
+GAME( 1997, kof97aa, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Simaguang", "Kof'97 (Plus Athena)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97ae, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex, EGHT", "Kof'97 10TH ANNIVERSARY (set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97ae1, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex, EGHT", "Kof'97 10TH ANNIVERSARY (set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97aot, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 RISK01983 (AOT)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97bh, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Dodowang", "Kof'97 (Add Char - Orochi icon - Extra stage select)", MACHINE_SUPPORTS_SAVE )
+GAME( 2006, kof97bng, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'97 COMBO 2006 set 1", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97bs, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "0-DAY", "Kof'97 (Boss Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2006, kof97cb2, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'97 COMBO 2006 set 2", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97cr, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "CHL and Leather", "Kof'97 (Moves and Style changed - Extra stage select)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97chl, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "CHL", "Kof'97 (Diff Moves - 030325)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97chl2, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "CHL", "Kof'97 (Diff Moves rev.2 - 030409)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97chris,kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 (Chris Like 2k2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, kof97cn, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGHT", "Kof'97 (10th Anniversary Chinese Edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 2010, kof97co, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'97 COMBO 2010-02-07", MACHINE_SUPPORTS_SAVE )
+GAME( 2006, kof97co6, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'97 COMBO 2006", MACHINE_SUPPORTS_SAVE )
+GAME( 2015, kof97cy, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Emu_Max", "Kof'97 (CY)", MACHINE_SUPPORTS_SAVE )
+GAME( 2012, kof97dse, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Maerd", "Kof'97 MAERD 2012-06-28 (DSE)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97eh, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami, Leather and Ydmis", "Kof'97 (Add Char - Ultra kill start max in Adv Mode - Ultra pow hack ABC - Extra stage select)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97eh2, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Leather and Ydmis", "Kof'97 (Add Char - Ultra kill start max in Adv Mode - Pow hack ABC - Extra stage select)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97eho, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Kof'97 (Add Char - Ultra kill start max in Adv Mode - Pow hack ABC)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97ei, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 COMBO 2010-02-07 (EI)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97evo, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "Kof'97 EVOLUTION", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97evoa, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 EVOLUTION (Old)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97frb, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 (FRB)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97hk, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 EVOLUTION (Hakeshu)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97hl, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 (Fall Ban Edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97hxd, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hxdhome", "Kof'97 (Add Char)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97ice, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Cz-Kyo97", "Kof'97 Ice", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97irgc, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 (IRGC)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97irgc2,kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 (IRGC2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97kai, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Kai", "Kof'97 PLUS", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97kp, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "KofPerfect", "Kof'97 (Add Orochi set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof97kp1, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yukimura", "Kof'97 (KP 2000)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97lb, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "LB70", "Kof'97 (Quanhuang Shaman 3.0)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97lc, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Liuzheng0131", "Kof'97 (Color changed)", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, kof97lr, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 (Lover Red)", MACHINE_SUPPORTS_SAVE )
+GAME( 2012, kof97m, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Maerd", "Kof'97 KOF97 MAERD 2012-06-28", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97mit, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "MIT", "Kof'97 (Char style enhanced 050324)", MACHINE_SUPPORTS_SAVE )
+GAME( 2010, kof97mj, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 SHION EDITION HACK", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97nd, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Baidu", "Kof'97 (Baidu)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97ne, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "NeHt", "Kof'97 (Remixed)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97neo, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Neo Charity Team", "Kof'97 (hack by Neo Charity Team)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97nude, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 Nude", MACHINE_SUPPORTS_SAVE ) // no nudes here??
+GAME( 1997, kof97pj, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "TcwLee", "Kof'97 (hxd fixed ver - Add Char)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97pjc, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "TcwLee", "Kof'97 (Char color changed)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97phl, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Liyang1983", "Kof'97 (Plus Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97pl2, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "Kof'97 PLUS set 2", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof97pl3, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "Kof'97 PLUS set 3", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof97pla, kof97, neogeo_noslot, neogeo, neogeo_hbmame,kof97pla, ROT0, "bootleg", "Kof'97 PLUS set 1", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof97plc, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "ZKW", "Kof'97 PLUS (Black Edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 2006, kof97plus, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 PLUS 2006", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97pm, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "KOF1996", "Kof'97 Practice Mode", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97ps, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 (Playstation Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97rev, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "BisMill Hassan", "Kof'97 (The Revival 2016)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof97ribe, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 PLUS (RIBE)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97rk, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Risko", "Kof'97 (Hack by Risko)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof97rst, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 PLUS (RST)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof97rst2, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 PLUS (RST2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof97rst3, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 PLUS (RISK012003)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97rv, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 (revised edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97saw, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker", "Kof'97 (Kill red flame special effect)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97sex, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Katana", "Kof'97 (Extra/Sexy Edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97shi, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "Kof'97 (Evolution Shin Edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97sm, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 (Smoke Version)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97svs, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 (SVS)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97svsb2,kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 (SVSB2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97sw, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker", "Kof'97 (26a-c and 623a-c red flame special effect)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97tse, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 (TSE)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97wh, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker", "Kof'97 (Style Kyo to 95' Kyo)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97wpls, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker", "Kof'97 Plus", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97xbt, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 BT X Version", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97xi, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Jacky", "Kof'97 XI Flash Version", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, kof97xp, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Xuhui", "Kof'97 (Xuhui plus)", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, kof97xt, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 Final Battle", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97xt1, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Chris Love", "Kof'97 (Unfinished version by Cross Love)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97xxx, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 (Nude mix)", MACHINE_SUPPORTS_SAVE ) // no nudes here??
+GAME( 1997, kof97y, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Kof'97 (Add Char - no Orochi)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97ya, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Kof'97 (Add Orochi set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97yb, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Kof'97 (Add Orochi set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97ye, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Kof'97 (Add Char - no Orochi - Pow hack ABC in Extra Mode set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97yg, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Kof'97 (Add Char - Pow hack ABC in Extra Mode)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97yh, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Kof'97 (Add Char - no Orochi - Pow hack ABC in Extra Mode set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, kof97yk, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yukimura", "Kof'97 (Yukimura Hack YK)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97yk1, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yukimura", "Kof'97 (Yukimura Hack YK1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97yk2, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yukimura", "Kof'97 (Yukimura Hack YK2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97yk83, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yukimura", "Kof'97 (Yukimura Hack YK83)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97yk85, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yukimura", "Kof'97 (Yukimura Hack YK85)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97yl, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Leather and Ydmis", "Kof'97 (Add Char - Extra stage select set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97yl2, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Leather and Ydmis", "Kof'97 (Add Char - Extra stage select set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97yo, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 Seven Yoga Community Imitation 98", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97z, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Zuojie", "Kof'97 (Hack by Zoujie)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97zm, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "LB70", "Kof'97 RISK01983 ZMonanger", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/kof98.cpp b/docs/release/src/hbmame/drivers/kof98.cpp
new file mode 100644
index 00000000000..220cf78cd65
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/kof98.cpp
@@ -0,0 +1,4028 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+
+
+
+ROM_START( kof98aas ) // Asamiya Athena 99 Style by Ivex
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242-pn1.p1", 0x000000, 0x100000, CRC(61ac868a) SHA1(26577264aa72d6af272952a876fcd3775f53e3fa) )
+ ROM_LOAD16_WORD_SWAP( "242aas.p2", 0x100000, 0x400000, CRC(c42a4608) SHA1(8cb95c85e0590400645b771352f6c361055269f6) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242aas.c3", 0x1000000, 0x800000, CRC(39c4210d) SHA1(aca8198441acbe3d8b4680b1446bd5616355c4b2) )
+ ROM_LOAD16_BYTE( "242aas.c4", 0x1000001, 0x800000, CRC(9089241f) SHA1(ec9845914f8f817bbe92ce20a1c72a65ba0701ee) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98ae ) // not used, for experimentation
+ ROM_REGION( 0x700000, "maincpu", 0 )
+ // These are corrupt during attract mode fight (where cars are driving past), do not use
+ //ROM_LOAD16_WORD_SWAP( "242ae.p1", 0x000000, 0x100000, CRC(c9188c66) SHA1(9b248df5438cd555314ec71e52e7da6cfb192219) )
+ //ROM_LOAD16_WORD_SWAP( "242ae.p1", 0x000000, 0x100000, CRC(74e20ae9) SHA1(84d17fb0ee462fe491e3220e935cb588f8121611) )
+ //ROM_LOAD16_WORD_SWAP( "242ae.p1", 0x000000, 0x100000, CRC(23a80b3e) SHA1(b1afaf382ffd5a1d72ae5ca18c11a751a11d7654) )
+ ROM_LOAD16_WORD_SWAP( "242ae.p2", 0x100000, 0x600000, CRC(609fac6b) SHA1(8010f4f5bd70308d027c1c5ae672117ab76f8d89) )
+
+ NEO_SFIX_128K( "242ae.s1", CRC(f1fee5c0) SHA1(e0d7b6c3c4a1c24003f25de6a5238e0a8ad32269) )
+
+ NEO_BIOS_AUDIO_256K( "242ae.m1", CRC(9ade0528) SHA1(67d0c3b146d369416b84c081544fe51fc6c2a140) )
+
+ ROM_REGION( 0x1400000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+ ROM_LOAD( "242ae.v5", 0x1000000, 0x400000, CRC(afdd9660) SHA1(0d67fb61111256c0d74d4f2b473ab5a42d1909b9) )
+
+ ROM_REGION( 0x6000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242ae.c1", 0x0000000, 0x800000, CRC(0319cfc9) SHA1(f275015d6bddf392936b35cd7399f929a6d63d29) )
+ ROM_LOAD16_BYTE( "242ae.c2", 0x0000001, 0x800000, CRC(553f6714) SHA1(9c14963ce9ac0cfd125defe2fe80206deb1bc896) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242ae.c5", 0x2000000, 0x800000, CRC(71641718) SHA1(b88a00aca2fc34230d2d2da0b235195a5eb1ecf0) )
+ ROM_LOAD16_BYTE( "242ae.c6", 0x2000001, 0x800000, CRC(982ba2b3) SHA1(232ce3be7beaad13b35865da770157ef4b29a7a9) )
+ ROM_LOAD16_BYTE( "242ae.c7", 0x3000000, 0x800000, CRC(8d495552) SHA1(20ff76b681b2e544c5a57060bb98ab6bb91bea3c) )
+ ROM_LOAD16_BYTE( "242ae.c8", 0x3000001, 0x800000, CRC(8bfc3417) SHA1(38bb85563d0a7f008a64cf76d71d82b935cd98e5) )
+ ROM_LOAD16_BYTE( "242ae.c9", 0x4000000, 0x800000, CRC(128256d1) SHA1(948af62545756165890e950fcd67bbd6304b3366) )
+ ROM_LOAD16_BYTE( "242ae.c10", 0x4000001, 0x800000, CRC(4bd8412d) SHA1(72e9cc6e3df8000d0a7fc7a89257dd0ce56fc909) )
+ ROM_LOAD16_BYTE( "242ae.c11", 0x5000000, 0x800000, CRC(e893277f) SHA1(a87db547821c63d162aac3ad178c8f794ef6a060) )
+ ROM_LOAD16_BYTE( "242ae.c12", 0x5000001, 0x800000, CRC(f165589e) SHA1(6bdcb1dd9ce507fcae40d0aba42a2c1300987479) )
+ROM_END
+
+ROM_START( kof98ae0 ) // Anniversary Edition
+ ROM_REGION( 0x700000, "maincpu", 0 )
+ // These are corrupt during attract mode fight (where cars are driving past), do not use
+ ROM_LOAD16_WORD_SWAP( "242ae0.p1", 0x000000, 0x100000, CRC(23a80b3e) SHA1(b1afaf382ffd5a1d72ae5ca18c11a751a11d7654) )
+ ROM_LOAD16_WORD_SWAP( "242ae.p2", 0x100000, 0x600000, CRC(609fac6b) SHA1(8010f4f5bd70308d027c1c5ae672117ab76f8d89) )
+
+ NEO_SFIX_128K( "242ae.s1", CRC(f1fee5c0) SHA1(e0d7b6c3c4a1c24003f25de6a5238e0a8ad32269) )
+
+ NEO_BIOS_AUDIO_256K( "242ae.m1", CRC(9ade0528) SHA1(67d0c3b146d369416b84c081544fe51fc6c2a140) )
+
+ ROM_REGION( 0x1400000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+ ROM_LOAD( "242ae.v5", 0x1000000, 0x400000, CRC(afdd9660) SHA1(0d67fb61111256c0d74d4f2b473ab5a42d1909b9) )
+
+ ROM_REGION( 0x6000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242ae.c1", 0x0000000, 0x800000, CRC(0319cfc9) SHA1(f275015d6bddf392936b35cd7399f929a6d63d29) )
+ ROM_LOAD16_BYTE( "242ae.c2", 0x0000001, 0x800000, CRC(553f6714) SHA1(9c14963ce9ac0cfd125defe2fe80206deb1bc896) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242ae.c5", 0x2000000, 0x800000, CRC(71641718) SHA1(b88a00aca2fc34230d2d2da0b235195a5eb1ecf0) )
+ ROM_LOAD16_BYTE( "242ae.c6", 0x2000001, 0x800000, CRC(982ba2b3) SHA1(232ce3be7beaad13b35865da770157ef4b29a7a9) )
+ ROM_LOAD16_BYTE( "242ae.c7", 0x3000000, 0x800000, CRC(8d495552) SHA1(20ff76b681b2e544c5a57060bb98ab6bb91bea3c) )
+ ROM_LOAD16_BYTE( "242ae.c8", 0x3000001, 0x800000, CRC(8bfc3417) SHA1(38bb85563d0a7f008a64cf76d71d82b935cd98e5) )
+ ROM_LOAD16_BYTE( "242ae.c9", 0x4000000, 0x800000, CRC(128256d1) SHA1(948af62545756165890e950fcd67bbd6304b3366) )
+ ROM_LOAD16_BYTE( "242ae.c10", 0x4000001, 0x800000, CRC(4bd8412d) SHA1(72e9cc6e3df8000d0a7fc7a89257dd0ce56fc909) )
+ ROM_LOAD16_BYTE( "242ae.c11", 0x5000000, 0x800000, CRC(e893277f) SHA1(a87db547821c63d162aac3ad178c8f794ef6a060) )
+ ROM_LOAD16_BYTE( "242ae.c12", 0x5000001, 0x800000, CRC(f165589e) SHA1(6bdcb1dd9ce507fcae40d0aba42a2c1300987479) )
+ROM_END
+
+ROM_START( kof98ae1 ) // Anniversary Edition
+ ROM_REGION( 0x700000, "maincpu", 0 )
+ // These are corrupt during attract mode fight (where cars are driving past), do not use
+ ROM_LOAD16_WORD_SWAP( "242ae1.p1", 0x000000, 0x100000, CRC(c9188c66) SHA1(9b248df5438cd555314ec71e52e7da6cfb192219) )
+ ROM_LOAD16_WORD_SWAP( "242ae.p2", 0x100000, 0x600000, CRC(609fac6b) SHA1(8010f4f5bd70308d027c1c5ae672117ab76f8d89) )
+
+ NEO_SFIX_128K( "242ae.s1", CRC(f1fee5c0) SHA1(e0d7b6c3c4a1c24003f25de6a5238e0a8ad32269) )
+
+ NEO_BIOS_AUDIO_256K( "242ae.m1", CRC(9ade0528) SHA1(67d0c3b146d369416b84c081544fe51fc6c2a140) )
+
+ ROM_REGION( 0x1400000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+ ROM_LOAD( "242ae.v5", 0x1000000, 0x400000, CRC(afdd9660) SHA1(0d67fb61111256c0d74d4f2b473ab5a42d1909b9) )
+
+ ROM_REGION( 0x6000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242ae.c1", 0x0000000, 0x800000, CRC(0319cfc9) SHA1(f275015d6bddf392936b35cd7399f929a6d63d29) )
+ ROM_LOAD16_BYTE( "242ae.c2", 0x0000001, 0x800000, CRC(553f6714) SHA1(9c14963ce9ac0cfd125defe2fe80206deb1bc896) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242ae.c5", 0x2000000, 0x800000, CRC(71641718) SHA1(b88a00aca2fc34230d2d2da0b235195a5eb1ecf0) )
+ ROM_LOAD16_BYTE( "242ae.c6", 0x2000001, 0x800000, CRC(982ba2b3) SHA1(232ce3be7beaad13b35865da770157ef4b29a7a9) )
+ ROM_LOAD16_BYTE( "242ae.c7", 0x3000000, 0x800000, CRC(8d495552) SHA1(20ff76b681b2e544c5a57060bb98ab6bb91bea3c) )
+ ROM_LOAD16_BYTE( "242ae.c8", 0x3000001, 0x800000, CRC(8bfc3417) SHA1(38bb85563d0a7f008a64cf76d71d82b935cd98e5) )
+ ROM_LOAD16_BYTE( "242ae.c9", 0x4000000, 0x800000, CRC(128256d1) SHA1(948af62545756165890e950fcd67bbd6304b3366) )
+ ROM_LOAD16_BYTE( "242ae.c10", 0x4000001, 0x800000, CRC(4bd8412d) SHA1(72e9cc6e3df8000d0a7fc7a89257dd0ce56fc909) )
+ ROM_LOAD16_BYTE( "242ae.c11", 0x5000000, 0x800000, CRC(e893277f) SHA1(a87db547821c63d162aac3ad178c8f794ef6a060) )
+ ROM_LOAD16_BYTE( "242ae.c12", 0x5000001, 0x800000, CRC(f165589e) SHA1(6bdcb1dd9ce507fcae40d0aba42a2c1300987479) )
+ROM_END
+
+ROM_START( kof98ae2 ) // Anniversary Edition
+ ROM_REGION( 0x700000, "maincpu", 0 )
+ // These are corrupt during attract mode fight (where cars are driving past), do not use
+ ROM_LOAD16_WORD_SWAP( "242ae2.p1", 0x000000, 0x100000, CRC(74e20ae9) SHA1(84d17fb0ee462fe491e3220e935cb588f8121611) )
+ ROM_LOAD16_WORD_SWAP( "242ae.p2", 0x100000, 0x600000, CRC(609fac6b) SHA1(8010f4f5bd70308d027c1c5ae672117ab76f8d89) )
+
+ NEO_SFIX_128K( "242ae.s1", CRC(f1fee5c0) SHA1(e0d7b6c3c4a1c24003f25de6a5238e0a8ad32269) )
+
+ NEO_BIOS_AUDIO_256K( "242ae.m1", CRC(9ade0528) SHA1(67d0c3b146d369416b84c081544fe51fc6c2a140) )
+
+ ROM_REGION( 0x1400000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+ ROM_LOAD( "242ae.v5", 0x1000000, 0x400000, CRC(afdd9660) SHA1(0d67fb61111256c0d74d4f2b473ab5a42d1909b9) )
+
+ ROM_REGION( 0x6000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242ae.c1", 0x0000000, 0x800000, CRC(0319cfc9) SHA1(f275015d6bddf392936b35cd7399f929a6d63d29) )
+ ROM_LOAD16_BYTE( "242ae.c2", 0x0000001, 0x800000, CRC(553f6714) SHA1(9c14963ce9ac0cfd125defe2fe80206deb1bc896) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242ae.c5", 0x2000000, 0x800000, CRC(71641718) SHA1(b88a00aca2fc34230d2d2da0b235195a5eb1ecf0) )
+ ROM_LOAD16_BYTE( "242ae.c6", 0x2000001, 0x800000, CRC(982ba2b3) SHA1(232ce3be7beaad13b35865da770157ef4b29a7a9) )
+ ROM_LOAD16_BYTE( "242ae.c7", 0x3000000, 0x800000, CRC(8d495552) SHA1(20ff76b681b2e544c5a57060bb98ab6bb91bea3c) )
+ ROM_LOAD16_BYTE( "242ae.c8", 0x3000001, 0x800000, CRC(8bfc3417) SHA1(38bb85563d0a7f008a64cf76d71d82b935cd98e5) )
+ ROM_LOAD16_BYTE( "242ae.c9", 0x4000000, 0x800000, CRC(128256d1) SHA1(948af62545756165890e950fcd67bbd6304b3366) )
+ ROM_LOAD16_BYTE( "242ae.c10", 0x4000001, 0x800000, CRC(4bd8412d) SHA1(72e9cc6e3df8000d0a7fc7a89257dd0ce56fc909) )
+ ROM_LOAD16_BYTE( "242ae.c11", 0x5000000, 0x800000, CRC(e893277f) SHA1(a87db547821c63d162aac3ad178c8f794ef6a060) )
+ ROM_LOAD16_BYTE( "242ae.c12", 0x5000001, 0x800000, CRC(f165589e) SHA1(6bdcb1dd9ce507fcae40d0aba42a2c1300987479) )
+ROM_END
+
+ROM_START( kof98ae3 ) // All confirmed: kof98ae2 with new p roms
+ ROM_REGION( 0x700000, "maincpu", 0 )
+ // These are corrupt during attract mode fight (where cars are driving past), do not use
+ ROM_LOAD16_WORD_SWAP( "242ae3.p1", 0x000000, 0x100000, CRC(ad987ba2) SHA1(aa7803e3193f551171f908650cab921b9daf7ab9) )
+ ROM_LOAD16_WORD_SWAP( "242ae3.p2", 0x100000, 0x600000, CRC(0409fb1e) SHA1(8e73ea6a68503b6bd434f9b044bd454fb7e371df) )
+
+ NEO_SFIX_128K( "242ae.s1", CRC(f1fee5c0) SHA1(e0d7b6c3c4a1c24003f25de6a5238e0a8ad32269) )
+
+ NEO_BIOS_AUDIO_256K( "242ae.m1", CRC(9ade0528) SHA1(67d0c3b146d369416b84c081544fe51fc6c2a140) )
+
+ ROM_REGION( 0x1400000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+ ROM_LOAD( "242ae.v5", 0x1000000, 0x400000, CRC(afdd9660) SHA1(0d67fb61111256c0d74d4f2b473ab5a42d1909b9) )
+
+ ROM_REGION( 0x6000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242ae.c1", 0x0000000, 0x800000, CRC(0319cfc9) SHA1(f275015d6bddf392936b35cd7399f929a6d63d29) )
+ ROM_LOAD16_BYTE( "242ae.c2", 0x0000001, 0x800000, CRC(553f6714) SHA1(9c14963ce9ac0cfd125defe2fe80206deb1bc896) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242ae.c5", 0x2000000, 0x800000, CRC(71641718) SHA1(b88a00aca2fc34230d2d2da0b235195a5eb1ecf0) )
+ ROM_LOAD16_BYTE( "242ae.c6", 0x2000001, 0x800000, CRC(982ba2b3) SHA1(232ce3be7beaad13b35865da770157ef4b29a7a9) )
+ ROM_LOAD16_BYTE( "242ae.c7", 0x3000000, 0x800000, CRC(8d495552) SHA1(20ff76b681b2e544c5a57060bb98ab6bb91bea3c) )
+ ROM_LOAD16_BYTE( "242ae.c8", 0x3000001, 0x800000, CRC(8bfc3417) SHA1(38bb85563d0a7f008a64cf76d71d82b935cd98e5) )
+ ROM_LOAD16_BYTE( "242ae.c9", 0x4000000, 0x800000, CRC(128256d1) SHA1(948af62545756165890e950fcd67bbd6304b3366) )
+ ROM_LOAD16_BYTE( "242ae.c10", 0x4000001, 0x800000, CRC(4bd8412d) SHA1(72e9cc6e3df8000d0a7fc7a89257dd0ce56fc909) )
+ ROM_LOAD16_BYTE( "242ae.c11", 0x5000000, 0x800000, CRC(e893277f) SHA1(a87db547821c63d162aac3ad178c8f794ef6a060) )
+ ROM_LOAD16_BYTE( "242ae.c12", 0x5000001, 0x800000, CRC(f165589e) SHA1(6bdcb1dd9ce507fcae40d0aba42a2c1300987479) )
+ROM_END
+
+ROM_START( kof98ae20160308 ) // Anniversary Edition, all confirmed.
+ ROM_REGION( 0x700000, "maincpu", 0 )
+ // These are corrupt during attract mode fight (where cars are driving past), do not use
+ ROM_LOAD16_WORD_SWAP( "242aea.p1", 0x000000, 0x100000, CRC(c7fddbd8) SHA1(b9ded8cd3414a5f11e41436ee3aa79515e33a8d9) )
+ ROM_LOAD16_WORD_SWAP( "242aea.p2", 0x100000, 0x600000, CRC(d84dbe5b) SHA1(76f08aa5c15b654b5d080c5537cb91be1f16555c) )
+
+ NEO_SFIX( 0x40000, "242aea.s1", CRC(345c20b0) SHA1(ff844e47667297f09f8b49ae19987542e253095e) )
+
+ NEO_BIOS_AUDIO_256K( "242ae.m1", CRC(9ade0528) SHA1(67d0c3b146d369416b84c081544fe51fc6c2a140) )
+
+ ROM_REGION( 0x1400000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+ ROM_LOAD( "242ae.v5", 0x1000000, 0x400000, CRC(afdd9660) SHA1(0d67fb61111256c0d74d4f2b473ab5a42d1909b9) )
+
+ ROM_REGION( 0x6000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242aea.c1", 0x0000000, 0x800000, CRC(086ec060) SHA1(dace47c251e5c9bea771e221bf550e1b4af5212d) )
+ ROM_LOAD16_BYTE( "242aea.c2", 0x0000001, 0x800000, CRC(16b9a9a2) SHA1(c8b757e6a84bae33caab07de27ca6c3d84d1893a) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242ae.c5", 0x2000000, 0x800000, CRC(71641718) SHA1(b88a00aca2fc34230d2d2da0b235195a5eb1ecf0) )
+ ROM_LOAD16_BYTE( "242ae.c6", 0x2000001, 0x800000, CRC(982ba2b3) SHA1(232ce3be7beaad13b35865da770157ef4b29a7a9) )
+ ROM_LOAD16_BYTE( "242ae.c7", 0x3000000, 0x800000, CRC(8d495552) SHA1(20ff76b681b2e544c5a57060bb98ab6bb91bea3c) )
+ ROM_LOAD16_BYTE( "242ae.c8", 0x3000001, 0x800000, CRC(8bfc3417) SHA1(38bb85563d0a7f008a64cf76d71d82b935cd98e5) )
+ ROM_LOAD16_BYTE( "242ae.c9", 0x4000000, 0x800000, CRC(128256d1) SHA1(948af62545756165890e950fcd67bbd6304b3366) )
+ ROM_LOAD16_BYTE( "242ae.c10", 0x4000001, 0x800000, CRC(4bd8412d) SHA1(72e9cc6e3df8000d0a7fc7a89257dd0ce56fc909) )
+ ROM_LOAD16_BYTE( "242aea.c11", 0x5000000, 0x800000, CRC(56d361cb) SHA1(594826cf58b7cd3b0bee05cdab1265d03c057b58) )
+ ROM_LOAD16_BYTE( "242aea.c12", 0x5000001, 0x800000, CRC(f8cb115b) SHA1(ba8a152a59acfcf72c73c6e29cd6e133630e100d) )
+ROM_END
+
+ROM_START( kof98ae20160827 ) // all confirmed. Same as 20160308 except p roms.
+ ROM_REGION( 0x700000, "maincpu", 0 )
+ // These are corrupt during attract mode fight (where cars are driving past), do not use
+ ROM_LOAD16_WORD_SWAP( "242aeb.p1", 0x000000, 0x100000, CRC(d69ecaa9) SHA1(924741bfab19a43d14704aeb305970de616788e4) )
+ ROM_LOAD16_WORD_SWAP( "242aeb.p2", 0x100000, 0x600000, CRC(ac1e9e79) SHA1(95caf44bb771a7ce5663f60127cf5ae798f7dd4c) )
+
+ NEO_SFIX( 0x40000, "242aea.s1", CRC(345c20b0) SHA1(ff844e47667297f09f8b49ae19987542e253095e) )
+
+ NEO_BIOS_AUDIO_256K( "242ae.m1", CRC(9ade0528) SHA1(67d0c3b146d369416b84c081544fe51fc6c2a140) )
+
+ ROM_REGION( 0x1400000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+ ROM_LOAD( "242ae.v5", 0x1000000, 0x400000, CRC(afdd9660) SHA1(0d67fb61111256c0d74d4f2b473ab5a42d1909b9) )
+
+ ROM_REGION( 0x6000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242aea.c1", 0x0000000, 0x800000, CRC(086ec060) SHA1(dace47c251e5c9bea771e221bf550e1b4af5212d) )
+ ROM_LOAD16_BYTE( "242aea.c2", 0x0000001, 0x800000, CRC(16b9a9a2) SHA1(c8b757e6a84bae33caab07de27ca6c3d84d1893a) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242ae.c5", 0x2000000, 0x800000, CRC(71641718) SHA1(b88a00aca2fc34230d2d2da0b235195a5eb1ecf0) )
+ ROM_LOAD16_BYTE( "242ae.c6", 0x2000001, 0x800000, CRC(982ba2b3) SHA1(232ce3be7beaad13b35865da770157ef4b29a7a9) )
+ ROM_LOAD16_BYTE( "242ae.c7", 0x3000000, 0x800000, CRC(8d495552) SHA1(20ff76b681b2e544c5a57060bb98ab6bb91bea3c) )
+ ROM_LOAD16_BYTE( "242ae.c8", 0x3000001, 0x800000, CRC(8bfc3417) SHA1(38bb85563d0a7f008a64cf76d71d82b935cd98e5) )
+ ROM_LOAD16_BYTE( "242ae.c9", 0x4000000, 0x800000, CRC(128256d1) SHA1(948af62545756165890e950fcd67bbd6304b3366) )
+ ROM_LOAD16_BYTE( "242ae.c10", 0x4000001, 0x800000, CRC(4bd8412d) SHA1(72e9cc6e3df8000d0a7fc7a89257dd0ce56fc909) )
+ ROM_LOAD16_BYTE( "242aea.c11", 0x5000000, 0x800000, CRC(56d361cb) SHA1(594826cf58b7cd3b0bee05cdab1265d03c057b58) )
+ ROM_LOAD16_BYTE( "242aea.c12", 0x5000001, 0x800000, CRC(f8cb115b) SHA1(ba8a152a59acfcf72c73c6e29cd6e133630e100d) )
+ROM_END
+
+ROM_START( kof98bge ) // multijet
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242bge.p1", 0x000000, 0x200000, CRC(3d0e3c74) SHA1(4b7bf2deb96592990cb79ed4dc70a1d2dc2d787e) )
+ ROM_LOAD16_WORD_SWAP( "242gold.p2", 0x200000, 0x400000, CRC(c0f6802d) SHA1(f86c141efe454e949cb28585f1e88088b3894b16) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98bh ) // Boss Hack 2006
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242bh.p1", 0x000000, 0x100000, CRC(5b5c822b) SHA1(0c4652630ff2122167f2defe4edff2a4e97f0ce0) )
+ ROM_LOAD16_WORD_SWAP( "242bh.p2", 0x100000, 0x400000, CRC(289b09d7) SHA1(25f14caf6b57c516c484e50ddee6867de4513406) )
+
+ NEO_SFIX_128K( "242cos.s1", CRC(554c4b66) SHA1(0fa53c7433ed4b66515890ad0526f292ae88c7ad) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cd.c1", 0x0000000, 0x800000, CRC(05edf0ff) SHA1(99afddc2d59ba274f2d9d9f5ef86c925518b8278) )
+ ROM_LOAD16_BYTE( "242cd.c2", 0x0000001, 0x800000, CRC(3723515e) SHA1(a2f0ae12cdd10e74a19188d774e833eb8501f20c) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98bvi ) // multijet
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242bvi.p1", 0x000000, 0x200000, CRC(822038a7) SHA1(193382395b60b310851fd33761951843cbcd373e) )
+ ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x200000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c2006 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242c2006.p1", 0x000000, 0x100000, CRC(68dbd3ca) SHA1(839d8ed003351809b1d8b8a4529b29a57af23333) )
+ ROM_LOAD16_WORD_SWAP( "242c2006.p2", 0x100000, 0x400000, CRC(4fc4544c) SHA1(b8912e61b26813237c46ca6511a6c88f5c5e511e) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242c2006.c1", 0x0000000, 0x800000, CRC(efc547b0) SHA1(badb1147729e187cc395ade357b49444e27810e5) )
+ ROM_LOAD16_BYTE( "242c2006.c2", 0x0000001, 0x800000, CRC(395ed6af) SHA1(543286e4f346f38c4866ab9a84080b6839d53412) )
+ ROM_LOAD16_BYTE( "242c2006.c3", 0x1000000, 0x800000, CRC(882e5246) SHA1(6cf81cd540a1511e085f2534511f8fa93f44d51f) )
+ ROM_LOAD16_BYTE( "242c2006.c4", 0x1000001, 0x800000, CRC(4f3f2123) SHA1(5cc61e82b0c7ee3d162c89262379f36f21ee5311) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20060214 ) // multijet kof98co2
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cfb14.p1", 0x000000, 0x100000, CRC(3c803e5d) SHA1(9da1b6a8c7c85d0c4cae780af157c85c587d99a9) )
+ ROM_LOAD16_WORD_SWAP( "242cfb14.p2", 0x100000, 0x400000, CRC(d3a9d5a6) SHA1(af02622494db4ebb7e1916ba0016412dafab1c23) )
+
+ NEO_SFIX_128K( "242cfb14.s1", CRC(e19b7e13) SHA1(4c8e85ffb8e2f9dcc10e946a53ff84494950aed7) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20070720 ) // kof98co
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cgg20.p1", 0x000000, 0x100000, CRC(549b46bf) SHA1(bbed5b2a131ba4ed9161aa5c246cf7d324aacf3d) )
+ ROM_LOAD16_WORD_SWAP( "242cgg20.p2", 0x100000, 0x400000, CRC(d256446d) SHA1(821365a7e7fe65488171633b8218207b70dcd0f6) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242co.c1", 0x0000000, 0x800000, CRC(2a4eea4f) SHA1(dd29f64715392ed44507849c25dbcf7a30547899) )
+ ROM_LOAD16_BYTE( "242co.c2", 0x0000001, 0x800000, CRC(76368d7d) SHA1(aa7d7313985bcc275520aedfa451f99545dd1927) )
+ ROM_LOAD16_BYTE( "242co.c3", 0x1000000, 0x800000, CRC(93f80804) SHA1(b320b6b5222801ffbc55b8b0862fb5386520817f) )
+ ROM_LOAD16_BYTE( "242co.c4", 0x1000001, 0x800000, CRC(d4f9a578) SHA1(86f2d4f2fb60259d84a31af40cb0074930a37476) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20070923 ) // no idea what other roms go with this, using ones from kof98co
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cgi23.p1", 0x000000, 0x100000, CRC(07c7e389) SHA1(e0df96dd1dc3459d3017a6b3b53c25d89431abc0) )
+ ROM_LOAD16_WORD_SWAP( "242cgi23.p2", 0x100000, 0x400000, CRC(45c64fc4) SHA1(922fee0ab1377123acde003cb96b5790c90ca84c) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242co.c1", 0x0000000, 0x800000, CRC(2a4eea4f) SHA1(dd29f64715392ed44507849c25dbcf7a30547899) )
+ ROM_LOAD16_BYTE( "242co.c2", 0x0000001, 0x800000, CRC(76368d7d) SHA1(aa7d7313985bcc275520aedfa451f99545dd1927) )
+ ROM_LOAD16_BYTE( "242co.c3", 0x1000000, 0x800000, CRC(93f80804) SHA1(b320b6b5222801ffbc55b8b0862fb5386520817f) )
+ ROM_LOAD16_BYTE( "242co.c4", 0x1000001, 0x800000, CRC(d4f9a578) SHA1(86f2d4f2fb60259d84a31af40cb0074930a37476) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20080330 ) // multijet kof98co3
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242chc30.p1", 0x000000, 0x100000, CRC(a606b28c) SHA1(a9c93234742107a0274ae48b3b7b63fc985e47b8) )
+ ROM_LOAD16_WORD_SWAP( "242chc30.p2", 0x100000, 0x400000, CRC(baac7267) SHA1(8124d82169830c4493655a0a440e7430d67f47e8) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242co.c1", 0x0000000, 0x800000, CRC(2a4eea4f) SHA1(dd29f64715392ed44507849c25dbcf7a30547899) )
+ ROM_LOAD16_BYTE( "242co.c2", 0x0000001, 0x800000, CRC(76368d7d) SHA1(aa7d7313985bcc275520aedfa451f99545dd1927) )
+ ROM_LOAD16_BYTE( "242co.c3", 0x1000000, 0x800000, CRC(93f80804) SHA1(b320b6b5222801ffbc55b8b0862fb5386520817f) )
+ ROM_LOAD16_BYTE( "242co.c4", 0x1000001, 0x800000, CRC(d4f9a578) SHA1(86f2d4f2fb60259d84a31af40cb0074930a37476) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20080524 ) // no idea what other roms go with this, using ones from kof98co
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242che24.p1", 0x000000, 0x100000, CRC(f2dc0ec8) SHA1(90901c20f56d08ef05da66ec7cba327820909f9a) )
+ ROM_LOAD16_WORD_SWAP( "242che24.p2", 0x100000, 0x400000, CRC(e2149cc5) SHA1(7d66bdf54b4bbf7f0aa163287a526cf48502bc3b) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242co.c1", 0x0000000, 0x800000, CRC(2a4eea4f) SHA1(dd29f64715392ed44507849c25dbcf7a30547899) )
+ ROM_LOAD16_BYTE( "242co.c2", 0x0000001, 0x800000, CRC(76368d7d) SHA1(aa7d7313985bcc275520aedfa451f99545dd1927) )
+ ROM_LOAD16_BYTE( "242co.c3", 0x1000000, 0x800000, CRC(93f80804) SHA1(b320b6b5222801ffbc55b8b0862fb5386520817f) )
+ ROM_LOAD16_BYTE( "242co.c4", 0x1000001, 0x800000, CRC(d4f9a578) SHA1(86f2d4f2fb60259d84a31af40cb0074930a37476) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20080616 ) // no idea what other roms go with this, using ones from kof98co
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242chf16.p1", 0x000000, 0x100000, CRC(de3c91fe) SHA1(706a75fe92780ea68707b37e42b1f70d507bb1c7) )
+ ROM_LOAD16_WORD_SWAP( "242chf16.p2", 0x100000, 0x400000, CRC(52314cc5) SHA1(83416affb1a789647647992ea8492a55c0a62b8d) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242co.c1", 0x0000000, 0x800000, CRC(2a4eea4f) SHA1(dd29f64715392ed44507849c25dbcf7a30547899) )
+ ROM_LOAD16_BYTE( "242co.c2", 0x0000001, 0x800000, CRC(76368d7d) SHA1(aa7d7313985bcc275520aedfa451f99545dd1927) )
+ ROM_LOAD16_BYTE( "242co.c3", 0x1000000, 0x800000, CRC(93f80804) SHA1(b320b6b5222801ffbc55b8b0862fb5386520817f) )
+ ROM_LOAD16_BYTE( "242co.c4", 0x1000001, 0x800000, CRC(d4f9a578) SHA1(86f2d4f2fb60259d84a31af40cb0074930a37476) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20080712 ) // no idea what other roms go with this, using ones from kof98co
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242chg12.p1", 0x000000, 0x100000, CRC(c0b4095a) SHA1(b8c027ccf3bdda62e8bb21766ac1ad716b7cdb9a) )
+ ROM_LOAD16_WORD_SWAP( "242chg12.p2", 0x100000, 0x400000, CRC(7e8d3bd3) SHA1(811c563146c1827a6322a61090570c956cdb4df0) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242co.c1", 0x0000000, 0x800000, CRC(2a4eea4f) SHA1(dd29f64715392ed44507849c25dbcf7a30547899) )
+ ROM_LOAD16_BYTE( "242co.c2", 0x0000001, 0x800000, CRC(76368d7d) SHA1(aa7d7313985bcc275520aedfa451f99545dd1927) )
+ ROM_LOAD16_BYTE( "242co.c3", 0x1000000, 0x800000, CRC(93f80804) SHA1(b320b6b5222801ffbc55b8b0862fb5386520817f) )
+ ROM_LOAD16_BYTE( "242co.c4", 0x1000001, 0x800000, CRC(d4f9a578) SHA1(86f2d4f2fb60259d84a31af40cb0074930a37476) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98cta ) // Combo 10th Anniversary - this is kof98c20080801
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cta.p1", 0x000000, 0x100000, CRC(d5646ed9) SHA1(9c0f7eb5b27f0787d6390dcde9c1566a83232890) )
+ ROM_LOAD16_WORD_SWAP( "242cta.p2", 0x100000, 0x400000, CRC(2b78c216) SHA1(4e47d9ef6dd8b82c652688ca7fb3d51c869a55e1) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242co.c1", 0x0000000, 0x800000, CRC(2a4eea4f) SHA1(dd29f64715392ed44507849c25dbcf7a30547899) )
+ ROM_LOAD16_BYTE( "242co.c2", 0x0000001, 0x800000, CRC(76368d7d) SHA1(aa7d7313985bcc275520aedfa451f99545dd1927) )
+ ROM_LOAD16_BYTE( "242co.c3", 0x1000000, 0x800000, CRC(93f80804) SHA1(b320b6b5222801ffbc55b8b0862fb5386520817f) )
+ ROM_LOAD16_BYTE( "242co.c4", 0x1000001, 0x800000, CRC(d4f9a578) SHA1(86f2d4f2fb60259d84a31af40cb0074930a37476) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20090620 ) // no idea what other roms go with this, using ones from kof98co
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cif20.p1", 0x000000, 0x100000, CRC(fc3a3397) SHA1(538e04ce5bf495374e9bf3af5bd18efb3d7dabe7) )
+ ROM_LOAD16_WORD_SWAP( "242cif20.p2", 0x100000, 0x400000, CRC(c2e6e6c7) SHA1(f2217bda316986a3c5730dd7927b472f20094952) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242co.c1", 0x0000000, 0x800000, CRC(2a4eea4f) SHA1(dd29f64715392ed44507849c25dbcf7a30547899) )
+ ROM_LOAD16_BYTE( "242co.c2", 0x0000001, 0x800000, CRC(76368d7d) SHA1(aa7d7313985bcc275520aedfa451f99545dd1927) )
+ ROM_LOAD16_BYTE( "242co.c3", 0x1000000, 0x800000, CRC(93f80804) SHA1(b320b6b5222801ffbc55b8b0862fb5386520817f) )
+ ROM_LOAD16_BYTE( "242co.c4", 0x1000001, 0x800000, CRC(d4f9a578) SHA1(86f2d4f2fb60259d84a31af40cb0074930a37476) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20090923 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cii23.p1", 0x000000, 0x100000, CRC(35cbbaa7) SHA1(e9d773b24d999ad55c3813e627836e4d91f239f6) )
+ ROM_LOAD16_WORD_SWAP( "242cii23.p2", 0x100000, 0x400000, CRC(658e3940) SHA1(b71f08491db50aeb8e0b20541808f3c31e9c598c) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242co.c1", 0x0000000, 0x800000, CRC(2a4eea4f) SHA1(dd29f64715392ed44507849c25dbcf7a30547899) )
+ ROM_LOAD16_BYTE( "242co.c2", 0x0000001, 0x800000, CRC(76368d7d) SHA1(aa7d7313985bcc275520aedfa451f99545dd1927) )
+ ROM_LOAD16_BYTE( "242co.c3", 0x1000000, 0x800000, CRC(93f80804) SHA1(b320b6b5222801ffbc55b8b0862fb5386520817f) )
+ ROM_LOAD16_BYTE( "242co.c4", 0x1000001, 0x800000, CRC(d4f9a578) SHA1(86f2d4f2fb60259d84a31af40cb0074930a37476) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20100214 ) // no idea what other roms go with this, using ones from kof98co
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cjb14.p1", 0x000000, 0x100000, CRC(eb02e1d2) SHA1(9217827f905580851343b78e26c1494e76584454) )
+ ROM_LOAD16_WORD_SWAP( "242cjb14.p2", 0x100000, 0x400000, CRC(9afe10b6) SHA1(1c5fb7e099c8790b44313a9b412a93bc80421791) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242co.c1", 0x0000000, 0x800000, CRC(2a4eea4f) SHA1(dd29f64715392ed44507849c25dbcf7a30547899) )
+ ROM_LOAD16_BYTE( "242co.c2", 0x0000001, 0x800000, CRC(76368d7d) SHA1(aa7d7313985bcc275520aedfa451f99545dd1927) )
+ ROM_LOAD16_BYTE( "242co.c3", 0x1000000, 0x800000, CRC(93f80804) SHA1(b320b6b5222801ffbc55b8b0862fb5386520817f) )
+ ROM_LOAD16_BYTE( "242co.c4", 0x1000001, 0x800000, CRC(d4f9a578) SHA1(86f2d4f2fb60259d84a31af40cb0074930a37476) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20100304 ) // multijet kof98co
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cjc04.p1", 0x000000, 0x100000, CRC(6ad285ae) SHA1(80caa8d0a169bbd0a4eb2b1441bd2033fae231fd) )
+ ROM_LOAD16_WORD_SWAP( "242cjc04.p2", 0x100000, 0x400000, CRC(2359f183) SHA1(da687d5723a7c39b2c60d01f316a1005196ec46d) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242co.c1", 0x0000000, 0x800000, CRC(2a4eea4f) SHA1(dd29f64715392ed44507849c25dbcf7a30547899) )
+ ROM_LOAD16_BYTE( "242co.c2", 0x0000001, 0x800000, CRC(76368d7d) SHA1(aa7d7313985bcc275520aedfa451f99545dd1927) )
+ ROM_LOAD16_BYTE( "242co.c3", 0x1000000, 0x800000, CRC(93f80804) SHA1(b320b6b5222801ffbc55b8b0862fb5386520817f) )
+ ROM_LOAD16_BYTE( "242co.c4", 0x1000001, 0x800000, CRC(d4f9a578) SHA1(86f2d4f2fb60259d84a31af40cb0074930a37476) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20110114 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cka14.p1", 0x000000, 0x100000, CRC(8b520854) SHA1(2e6d8677b343abb6d85b62a1996fc3cec2d86477) )
+ ROM_LOAD16_WORD_SWAP( "242cka14.p2", 0x100000, 0x400000, CRC(bbfa3154) SHA1(7dbe0d6eb3850c6f8c30a5e49e5bf914d0f23b7f) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) )
+ ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20110314 ) // all confirmed
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242ckc14.p1", 0x000000, 0x100000, CRC(e997a3e9) SHA1(c53d09931a1f2f97623cbfd390b703412dfde535) )
+ ROM_LOAD16_WORD_SWAP( "242ckc14.p2", 0x100000, 0x400000, CRC(3f2266bf) SHA1(f4fbdde4c2b9cd9f12b3f6942926993ca56fed3b) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) )
+ ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20120116 ) // no idea what other roms go with this, using ones from kof98co
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cla16.p1", 0x000000, 0x100000, CRC(99255778) SHA1(d6eb448f06cebabff3aea71cade6c7b742bad337) )
+ ROM_LOAD16_WORD_SWAP( "242cla16.p2", 0x100000, 0x400000, CRC(fc1582fb) SHA1(6be894251c7a91cf1821a48a5f2d9e1bea6251ec) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242co.c1", 0x0000000, 0x800000, CRC(2a4eea4f) SHA1(dd29f64715392ed44507849c25dbcf7a30547899) )
+ ROM_LOAD16_BYTE( "242co.c2", 0x0000001, 0x800000, CRC(76368d7d) SHA1(aa7d7313985bcc275520aedfa451f99545dd1927) )
+ ROM_LOAD16_BYTE( "242co.c3", 0x1000000, 0x800000, CRC(93f80804) SHA1(b320b6b5222801ffbc55b8b0862fb5386520817f) )
+ ROM_LOAD16_BYTE( "242co.c4", 0x1000001, 0x800000, CRC(d4f9a578) SHA1(86f2d4f2fb60259d84a31af40cb0074930a37476) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20120915 ) // no idea what other roms go with this, using ones from kof98co
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cli15.p1", 0x000000, 0x100000, CRC(9e86180d) SHA1(67772aa99452a8b8ace0a770c09d2ae503ac298f) )
+ ROM_LOAD16_WORD_SWAP( "242cli15.p2", 0x100000, 0x400000, CRC(e88dfce2) SHA1(e16e98eec8d27a1f125fd69b58108d7621bff968) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) )
+ ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20130213 ) // no idea what other roms go with this, using ones from kof98c20120915
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cmb13.p1", 0x000000, 0x100000, CRC(1192b05d) SHA1(a5bfb8f303d0c59897d18695344c6d643aca0992) )
+ ROM_LOAD16_WORD_SWAP( "242cmb13.p2", 0x100000, 0x400000, CRC(44d6f231) SHA1(f23aa553d2ce326fdd87c6a0de61c0f8a190a5d6) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) )
+ ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20130311 ) // no idea what other roms go with this, using ones from kof98c20120915
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cmc11.p1", 0x000000, 0x100000, CRC(a840d48e) SHA1(f95246ea20174bfb6ffa1421d5e3691d5a4d57ac) )
+ ROM_LOAD16_WORD_SWAP( "242cmc11.p2", 0x100000, 0x400000, CRC(a125307b) SHA1(fea9a7d945d51bdc137a7a5cc47009f77d1b2f11) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) )
+ ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20130509 ) // no idea what other roms go with this, using ones from kof98c20120915
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cme09.p1", 0x000000, 0x100000, CRC(04f0ee1b) SHA1(6b0c61bf769e3a1f8e16bf80f998a16231b1d37f) )
+ ROM_LOAD16_WORD_SWAP( "242cme09.p2", 0x100000, 0x400000, CRC(7a3d7339) SHA1(68e6d693e1010c75e235cb732c186edfcf5ee121) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) )
+ ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20130528 ) // no idea what other roms go with this, using ones from kof98c20120915
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cme28.p1", 0x000000, 0x100000, CRC(3a2c9ecf) SHA1(f18534a4332d6162d1d7c0797c2aabafe9b3ae8d) )
+ ROM_LOAD16_WORD_SWAP( "242cme28.p2", 0x100000, 0x400000, CRC(d1f608a3) SHA1(20f0ac8a696f47fc122a876b5892b7982f643101) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) )
+ ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20130617 ) // no idea what other roms go with this, using ones from kof98c20120915
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cmf17.p1", 0x000000, 0x100000, CRC(871c1400) SHA1(7c543dfe62151eea0479b0d6685ff99a79d7b99d) )
+ ROM_LOAD16_WORD_SWAP( "242cmf17.p2", 0x100000, 0x400000, CRC(5f6a6827) SHA1(df507f8367bb03bb404a7c978123fccf2cfee2bf) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) )
+ ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20130808 ) // no idea what other roms go with this, using ones from kof98c20120915
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cmh08.p1", 0x000000, 0x100000, CRC(5c45d223) SHA1(04617aaea513e5c7e8cf014e89945aa2eb5948e2) )
+ ROM_LOAD16_WORD_SWAP( "242cmh08.p2", 0x100000, 0x400000, CRC(ae323e72) SHA1(fe204f78faef8be01e8664a57f4cec380457cea6) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) )
+ ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20130820 ) // no idea what other roms go with this, using ones from kof98c20120915
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cmh20.p1", 0x000000, 0x100000, CRC(f17061ad) SHA1(2b99224bc32526e811fa46b934531ecc25bb5f48) )
+ ROM_LOAD16_WORD_SWAP( "242cmh20.p2", 0x100000, 0x400000, CRC(8b7afee8) SHA1(88080f59588b2e8360af126519e547bbf55f80fb) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) )
+ ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20131113 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cmk13.p1", 0x000000, 0x100000, CRC(6c60a3ef) SHA1(d9437ee77ad3ff38a56c2d90b8c0334fb3404342) )
+ ROM_LOAD16_WORD_SWAP( "242cmk13.p2", 0x100000, 0x400000, CRC(fe685f71) SHA1(aaf84b3f6c44662b8a6696cf1a48ead10eae7e30) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) )
+ ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20140101 ) // no idea what other roms go with this, using ones from kof98c20120915
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cna01.p1", 0x000000, 0x100000, CRC(fc6edddc) SHA1(06096bf35bd19aa816541a0db2e517ab9ea6f108) )
+ ROM_LOAD16_WORD_SWAP( "242cna01.p2", 0x100000, 0x400000, CRC(ae9cc41b) SHA1(2b3b433eca1da8836ccdae4648af9f742abb3c3a) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) )
+ ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20140110 ) // no idea what other roms go with this, using ones from kof98c20120915
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cna10.p1", 0x000000, 0x100000, CRC(f5173db2) SHA1(3ed5de29fe05bd42f1e61db99bb62a21dd18ee45) )
+ ROM_LOAD16_WORD_SWAP( "242cna10.p2", 0x100000, 0x400000, CRC(277c46ad) SHA1(3d718bb9b6a616c912d0b61bf04c25acf9edd19b) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) )
+ ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20140118 ) // no idea what other roms go with this, using ones from kof98c20120915
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cna18.p1", 0x000000, 0x100000, CRC(d0e11829) SHA1(a1ad8372e24315e4e5d7a2e2b730065d3e63419d) )
+ ROM_LOAD16_WORD_SWAP( "242cna18.p2", 0x100000, 0x400000, CRC(57710699) SHA1(c1dd6677b61b3bced57441160560ef52636e43a6) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) )
+ ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20140204 ) // no idea what other roms go with this, using ones from kof98c20120915
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cnb04.p1", 0x000000, 0x100000, CRC(281a0134) SHA1(23231f74c82a2c130e5323338f5b85e61e464f52) )
+ ROM_LOAD16_WORD_SWAP( "242cnb04.p2", 0x100000, 0x400000, CRC(5c0b42ed) SHA1(835c075fb30f96b69eec89980279a9fa516bf839) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) )
+ ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20140213 ) // no idea what other roms go with this, using ones from kof98c20120915
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cnb13.p1", 0x000000, 0x100000, CRC(338fe20c) SHA1(149dd81dc7dda509ace4fadf796908a9af0b2111) )
+ ROM_LOAD16_WORD_SWAP( "242cnb13.p2", 0x100000, 0x400000, CRC(138577d5) SHA1(97592df7350f9741b0b2b686a136f62cae650d5c) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) )
+ ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20140217 ) // no idea what other roms go with this, using ones from kof98c20120915
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cnb17.p1", 0x000000, 0x100000, CRC(52ef6564) SHA1(46a9ada52dd44db8697f118a1e7b43e11d9878c5) )
+ ROM_LOAD16_WORD_SWAP( "242cnb17.p2", 0x100000, 0x400000, CRC(a31b7b2a) SHA1(a5324f49f19850cd6bcc8d3e66edf0dda220bd41) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) )
+ ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20140228 ) // no idea what other roms go with this, using ones from kof98c20120915
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cnb28.p1", 0x000000, 0x100000, CRC(97e9c8cc) SHA1(b38ef0f8e55f24e96c09cf5f28954661cd8ea8b8) )
+ ROM_LOAD16_WORD_SWAP( "242cnb28.p2", 0x100000, 0x400000, CRC(7b99f052) SHA1(ea204a7a14b6620e64a5ac0b34d048ccd0c6fc0e) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) )
+ ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20140302 ) // no idea what other roms go with this, using ones from kof98c20120915
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cnc02.p1", 0x000000, 0x100000, CRC(c478dd93) SHA1(759311b986b9606acc9e735f83cc33e6c4cfe151) )
+ ROM_LOAD16_WORD_SWAP( "242cnc02.p2", 0x100000, 0x400000, CRC(5b81a4f0) SHA1(f0dd68bb17fa76671a08ee77a22bda773c93e810) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) )
+ ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20140310 ) // no idea what other roms go with this, using ones from kof98c20120915
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cnc10.p1", 0x000000, 0x100000, CRC(25d26cd5) SHA1(65e301dbc2d57ba657eae49edeb53ef07a21b85e) )
+ ROM_LOAD16_WORD_SWAP( "242cnc10.p2", 0x100000, 0x400000, CRC(f109629f) SHA1(827f3f6a0f66a0741c72ebc85ea5b203acb56ae0) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) )
+ ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20140317 ) // no idea what other roms go with this, using ones from kof98c20120915
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cnc17.p1", 0x000000, 0x100000, CRC(952efa43) SHA1(2cc2a1c9b4e7159f6b42bcd7c7d4215de046dd71) )
+ ROM_LOAD16_WORD_SWAP( "242cnc17.p2", 0x100000, 0x400000, CRC(43dfe9b0) SHA1(128c0d18d1d71a01ba2f8a66b9432dbbe0b58f8a) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) )
+ ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20140403 ) // no idea what other roms go with this, using ones from kof98c20120915
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cnd03.p1", 0x000000, 0x100000, CRC(57fe473e) SHA1(d83eef73825611abaac1df9ecc81a85a910e6a23) )
+ ROM_LOAD16_WORD_SWAP( "242cnd03.p2", 0x100000, 0x400000, CRC(96f73721) SHA1(fc910b437eb527244a063b519776ae54af31db77) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) )
+ ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20140412 ) // no idea what other roms go with this, using ones from kof98c20120915
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cnd12.p1", 0x000000, 0x100000, CRC(4cb73079) SHA1(db5d0663f91936bfa68d389766ad1d2849cee300) )
+ ROM_LOAD16_WORD_SWAP( "242cnd12.p2", 0x100000, 0x400000, CRC(3d30dad4) SHA1(097ead60f133fa00f7d5a903cff6c10915b1ba0b) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) )
+ ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20140416 ) // no idea what other roms go with this, using ones from kof98c20120915
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cnd16.p1", 0x000000, 0x100000, CRC(25783b16) SHA1(e3748583ab2e4fa934f489e6a46a8725ae8dda35) )
+ ROM_LOAD16_WORD_SWAP( "242cnd16.p2", 0x100000, 0x400000, CRC(23f70495) SHA1(73975803d48cc37b92153dc3519d9efb4a86df49) )
+
+ NEO_SFIX_128K( "242cnd16.s1", CRC(06186f52) SHA1(714415c30626fd4cd2eed80b0af32a4a1d8db19f) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) )
+ ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20140419 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cnd19.p1", 0x000000, 0x100000, CRC(95853626) SHA1(7db1ab39ff7c908c81c915c587247b9f101b28dc) )
+ ROM_LOAD16_WORD_SWAP( "242cnd19.p2", 0x100000, 0x400000, CRC(43475633) SHA1(f57f9744e7d041a9428602b82335038ec3d85f6d) )
+
+ NEO_SFIX_128K( "242cnd19.s1", CRC(75e932d8) SHA1(d8ebd9ecab29fb52994d1fdd5fbeceba3213620a) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) )
+ ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20140428 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cnd28.p1", 0x000000, 0x100000, CRC(9ff156f0) SHA1(18879b3a82172613ef3e744303b00560bac27dda) )
+ ROM_LOAD16_WORD_SWAP( "242cnd28.p2", 0x100000, 0x400000, CRC(ee298a6b) SHA1(5c556142abb0ddd57db33f6dac5675ca5a8e8f8c) )
+
+ NEO_SFIX_128K( "242cnd28.s1", CRC(8e37c589) SHA1(44b9f1cd06cd029fcc39bf29724b03e021974c20) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) )
+ ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20140504 ) // no idea what other roms go with this, using ones from kof98c20140428
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cne04.p1", 0x000000, 0x100000, CRC(d965cbf5) SHA1(e87ceb1ffe9b0757d2d9a5af970ea0f5f416767a) )
+ ROM_LOAD16_WORD_SWAP( "242cne04.p2", 0x100000, 0x400000, CRC(6e96ab13) SHA1(19800094015ed659023d49dfd8b63c0578ea2952) )
+
+ NEO_SFIX_128K( "242cnd28.s1", CRC(8e37c589) SHA1(44b9f1cd06cd029fcc39bf29724b03e021974c20) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) )
+ ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20140524 ) // no idea what other roms go with this, using ones from kof98c20140428
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cne24.p1", 0x000000, 0x100000, CRC(f97629ad) SHA1(8fb4329907780f8508c39f6463d7a2447f81ca08) )
+ ROM_LOAD16_WORD_SWAP( "242cne24.p2", 0x100000, 0x400000, CRC(89f1bf6c) SHA1(01e09eaf7a288652eef26054ddfeb3d2148265ee) )
+
+ NEO_SFIX_128K( "242cnd28.s1", CRC(8e37c589) SHA1(44b9f1cd06cd029fcc39bf29724b03e021974c20) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) )
+ ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20140606 ) // no idea what other roms go with this, using ones from kof98c20140428
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cnf06.p1", 0x000000, 0x100000, CRC(b030bd09) SHA1(254aa86a78af1f893efda3db151dee32c9aa6b1a) )
+ ROM_LOAD16_WORD_SWAP( "242cnf06.p2", 0x100000, 0x400000, CRC(0178de06) SHA1(69bab33a6e1e2c5f7d1dd13e863aed3d77e42a2a) )
+
+ NEO_SFIX_128K( "242cnf06.s1", CRC(7333d8b0) SHA1(43d441133d572f65e9e19839ae2557ad86e393a1) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) )
+ ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20140620 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cnf20.p1", 0x000000, 0x100000, CRC(da4e1cc5) SHA1(d139cf4dd437c5c39385e6cd199ccc71a1ea919e) )
+ ROM_LOAD16_WORD_SWAP( "242cnf20.p2", 0x100000, 0x400000, CRC(a21eb0fc) SHA1(adb826e45128bd24d1d65ead2e85483fe3b79257) )
+
+ NEO_SFIX_128K( "242cnf06.s1", CRC(7333d8b0) SHA1(43d441133d572f65e9e19839ae2557ad86e393a1) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) )
+ ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20140717 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cng17.p1", 0x000000, 0x100000, CRC(7048bed4) SHA1(1a8704d6d993c45f623352821ff7c7718a73197c) )
+ ROM_LOAD16_WORD_SWAP( "242cng17.p2", 0x100000, 0x400000, CRC(8435b965) SHA1(f4da383de4d13636b4b26ce1674f8ef7f7245e89) )
+
+ NEO_SFIX_128K( "242cnf06.s1", CRC(7333d8b0) SHA1(43d441133d572f65e9e19839ae2557ad86e393a1) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) )
+ ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20140809 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cnh09.p1", 0x000000, 0x100000, CRC(0d88b29e) SHA1(c3232ab3abf7fbb51bebac652b8eed6fec2c12d9) )
+ ROM_LOAD16_WORD_SWAP( "242cnh09.p2", 0x100000, 0x400000, CRC(b42ebf83) SHA1(c4405f07b8ef96eb5d9b624bc518171b5de1c546) )
+
+ NEO_SFIX_128K( "242cnf06.s1", CRC(7333d8b0) SHA1(43d441133d572f65e9e19839ae2557ad86e393a1) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) )
+ ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20140816 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cnh16.p1", 0x000000, 0x100000, CRC(59ae0525) SHA1(da283d53479973202046929f47b78d3a378eeb74) )
+ ROM_LOAD16_WORD_SWAP( "242cnh16.p2", 0x100000, 0x400000, CRC(cfff4986) SHA1(2434b58db6e6acb87799888cee12cd7eadafb46c) )
+
+ NEO_SFIX_128K( "242cnf06.s1", CRC(7333d8b0) SHA1(43d441133d572f65e9e19839ae2557ad86e393a1) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) )
+ ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20140824 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cnh24.p1", 0x000000, 0x100000, CRC(ac02f016) SHA1(ce8a4c5d4adb77ceaa2c4fb02ecae639a58b1e11) )
+ ROM_LOAD16_WORD_SWAP( "242cnh24.p2", 0x100000, 0x400000, CRC(224ef92b) SHA1(e104f085eb7f090c49c7fb6270d8d0cf20e26858) )
+
+ NEO_SFIX_128K( "242cnf06.s1", CRC(7333d8b0) SHA1(43d441133d572f65e9e19839ae2557ad86e393a1) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) )
+ ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20140906 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cni06.p1", 0x000000, 0x100000, CRC(2b67d1fd) SHA1(b00d1cde6e70f0800722e3f676b419a24dc730a5) )
+ ROM_LOAD16_WORD_SWAP( "242cni06.p2", 0x100000, 0x400000, CRC(1d935839) SHA1(eaf2c03dda42f00d1346108dda593ba669da15de) )
+
+ NEO_SFIX_128K( "242cnf06.s1", CRC(7333d8b0) SHA1(43d441133d572f65e9e19839ae2557ad86e393a1) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) )
+ ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20140924 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cni24.p1", 0x000000, 0x100000, CRC(37fa2233) SHA1(0e84d11835d4a6516dec82e56dc1075a19c50697) )
+ ROM_LOAD16_WORD_SWAP( "242cni24.p2", 0x100000, 0x400000, CRC(eaa3890e) SHA1(b8f783a5ce948b69bd98f6f0514714cf9a592378) )
+
+ NEO_SFIX_128K( "242cnf06.s1", CRC(7333d8b0) SHA1(43d441133d572f65e9e19839ae2557ad86e393a1) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) )
+ ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20141002 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cnj02.p1", 0x000000, 0x100000, CRC(d1085e45) SHA1(c718cc7bf444c240d114e286f7c4d864ffc774dd) )
+ ROM_LOAD16_WORD_SWAP( "242cnj02.p2", 0x100000, 0x400000, CRC(80511be2) SHA1(4e2922f92f3d0ef7c13c50419c57d4fb7878a9e4) )
+
+ NEO_SFIX_128K( "242cnf06.s1", CRC(7333d8b0) SHA1(43d441133d572f65e9e19839ae2557ad86e393a1) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) )
+ ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20141020 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cnj20.p1", 0x000000, 0x100000, CRC(93cae16e) SHA1(1445a267a299b733bd0c67d79b197fa55ac6d95a) )
+ ROM_LOAD16_WORD_SWAP( "242cnj20.p2", 0x100000, 0x400000, CRC(e3c2e36d) SHA1(bf9b7b830f24e4682b0e6abe431e96103372d7e6) )
+
+ NEO_SFIX_128K( "242cnf06.s1", CRC(7333d8b0) SHA1(43d441133d572f65e9e19839ae2557ad86e393a1) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) )
+ ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20150201 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cob01.p1", 0x000000, 0x100000, CRC(b127666b) SHA1(3d852d55dc728622e31b160ac178a5efb9c86d8c) )
+ ROM_LOAD16_WORD_SWAP( "242cob01.p2", 0x100000, 0x400000, CRC(745606f4) SHA1(2d50a6b42365b02248c286f39293e760ae68381a) )
+
+ NEO_SFIX_128K( "242cnf06.s1", CRC(7333d8b0) SHA1(43d441133d572f65e9e19839ae2557ad86e393a1) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) )
+ ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20150228 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cob28.p1", 0x000000, 0x100000, CRC(385de2db) SHA1(f07e764595a4da02a4517e2e244aeb6d4dd68049) )
+ ROM_LOAD16_WORD_SWAP( "242cob28.p2", 0x100000, 0x400000, CRC(e68be25d) SHA1(44170fc9ebed30d2a8cac44210692b4693224ad0) )
+
+ NEO_SFIX_128K( "242cnf06.s1", CRC(7333d8b0) SHA1(43d441133d572f65e9e19839ae2557ad86e393a1) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) )
+ ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20150302 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242coc02.p1", 0x000000, 0x100000, CRC(803afe36) SHA1(78b0787eeffb4f53decf0f6eee2fdce93dafc6d9) )
+ ROM_LOAD16_WORD_SWAP( "242coc02.p2", 0x100000, 0x400000, CRC(7e76f991) SHA1(fab7479337e00c93f75cb9a613b18a5c81513d91) )
+
+ NEO_SFIX_128K( "242cnf06.s1", CRC(7333d8b0) SHA1(43d441133d572f65e9e19839ae2557ad86e393a1) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) )
+ ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20150310 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242coc10.p1", 0x000000, 0x100000, CRC(e7b69efe) SHA1(d641b7419d18ffca5dba199af7d6197fa824a238) )
+ ROM_LOAD16_WORD_SWAP( "242coc10.p2", 0x100000, 0x400000, CRC(b4e8d712) SHA1(62d437d6c4aec43f50959d121ffb99293c68099f) )
+
+ NEO_SFIX_128K( "242cnf06.s1", CRC(7333d8b0) SHA1(43d441133d572f65e9e19839ae2557ad86e393a1) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) )
+ ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20150330 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242coc30.p1", 0x000000, 0x100000, CRC(7693c342) SHA1(a78907075247a4aad74060025f179ed0ac522cdf) )
+ ROM_LOAD16_WORD_SWAP( "242coc30.p2", 0x100000, 0x400000, CRC(0d03f931) SHA1(bc2694d653ad28310de2ecb321b815e8f85dd1de) )
+
+ NEO_SFIX_128K( "242cnf06.s1", CRC(7333d8b0) SHA1(43d441133d572f65e9e19839ae2557ad86e393a1) )
+
+ NEO_BIOS_AUDIO_256K( "242coc30.m1", CRC(db046fc4) SHA1(4b793a125bade067ef0fdcd1775d135c646c6b94) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) )
+ ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20150528 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242coe28.p1", 0x000000, 0x100000, CRC(82a247f9) SHA1(e472633878a993e5ada4a78b654e775dc5647544) )
+ ROM_LOAD16_WORD_SWAP( "242coc30.p2", 0x100000, 0x400000, CRC(0d03f931) SHA1(bc2694d653ad28310de2ecb321b815e8f85dd1de) )
+
+ NEO_SFIX_128K( "242cnf06.s1", CRC(7333d8b0) SHA1(43d441133d572f65e9e19839ae2557ad86e393a1) )
+
+ NEO_BIOS_AUDIO_256K( "242coc30.m1", CRC(db046fc4) SHA1(4b793a125bade067ef0fdcd1775d135c646c6b94) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) )
+ ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20150614 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cof14.p1", 0x000000, 0x100000, CRC(1df50acf) SHA1(4a13e5e92781b42d91da8c6b3c625715213f0bfe) )
+ ROM_LOAD16_WORD_SWAP( "242cof14.p2", 0x100000, 0x400000, CRC(0e4c921c) SHA1(a0879fc90051111dec8e2bcc0f7177b892661b03) )
+
+ NEO_SFIX_128K( "242cnf06.s1", CRC(7333d8b0) SHA1(43d441133d572f65e9e19839ae2557ad86e393a1) )
+
+ NEO_BIOS_AUDIO_256K( "242coc30.m1", CRC(db046fc4) SHA1(4b793a125bade067ef0fdcd1775d135c646c6b94) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) )
+ ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20150705 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cog05.p1", 0x000000, 0x100000, CRC(fe8c3218) SHA1(0426ba382e1207dd517a2f950651b383c786564d) )
+ ROM_LOAD16_WORD_SWAP( "242cog05.p2", 0x100000, 0x400000, CRC(30477896) SHA1(d3834c7353e4b3781874742fc0a0154656806cef) )
+
+ NEO_SFIX_128K( "242cnf06.s1", CRC(7333d8b0) SHA1(43d441133d572f65e9e19839ae2557ad86e393a1) )
+
+ NEO_BIOS_AUDIO_256K( "242coc30.m1", CRC(db046fc4) SHA1(4b793a125bade067ef0fdcd1775d135c646c6b94) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) )
+ ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20150729 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cog29.p1", 0x000000, 0x100000, CRC(9c485873) SHA1(bdbd18de319723f4a6730236f5b22b54489fce09) )
+ ROM_LOAD16_WORD_SWAP( "242cog29.p2", 0x100000, 0x400000, CRC(8ab6db32) SHA1(fa8d317a5e4185343f91c8dd2a84d3e375b1ec4b) )
+
+ NEO_SFIX_128K( "242cnf06.s1", CRC(7333d8b0) SHA1(43d441133d572f65e9e19839ae2557ad86e393a1) )
+
+ NEO_BIOS_AUDIO_256K( "242coc30.m1", CRC(db046fc4) SHA1(4b793a125bade067ef0fdcd1775d135c646c6b94) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) )
+ ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20150827 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242coh27.p1", 0x000000, 0x100000, CRC(4cb8bd3d) SHA1(968f859f48f8893e9376d9777022ffc5cd56ea3b) )
+ ROM_LOAD16_WORD_SWAP( "242coh27.p2", 0x100000, 0x400000, CRC(83590f75) SHA1(808b13f90a437651372872fd47d921854555c4ca) )
+
+ NEO_SFIX_128K( "242cnf06.s1", CRC(7333d8b0) SHA1(43d441133d572f65e9e19839ae2557ad86e393a1) )
+
+ NEO_BIOS_AUDIO_256K( "242coc30.m1", CRC(db046fc4) SHA1(4b793a125bade067ef0fdcd1775d135c646c6b94) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) )
+ ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20151103 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cok03.p1", 0x000000, 0x100000, CRC(e5d553c0) SHA1(bee0d432276a534e1ba511a2c1eb73722079b42f) )
+ ROM_LOAD16_WORD_SWAP( "242cok03.p2", 0x100000, 0x400000, CRC(0bba8a3e) SHA1(9f8278b5c9b61e4ecc7849efedfbdc8692fbc9be) )
+
+ NEO_SFIX_128K( "242cnd28.s1", CRC(8e37c589) SHA1(44b9f1cd06cd029fcc39bf29724b03e021974c20) )
+
+ NEO_BIOS_AUDIO_256K( "242coc30.m1", CRC(db046fc4) SHA1(4b793a125bade067ef0fdcd1775d135c646c6b94) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) )
+ ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20151108 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cok08.p1", 0x000000, 0x100000, CRC(971bae37) SHA1(9b66bd0d893eae0cf6d17d7c4ff3d5f6f7a3d83a) )
+ ROM_LOAD16_WORD_SWAP( "242cok08.p2", 0x100000, 0x400000, CRC(9cdd6455) SHA1(24014e66b5e773456987acef055f8307f731874e) )
+
+ NEO_SFIX_128K( "242cnd28.s1", CRC(8e37c589) SHA1(44b9f1cd06cd029fcc39bf29724b03e021974c20) )
+
+ NEO_BIOS_AUDIO_256K( "242coc30.m1", CRC(db046fc4) SHA1(4b793a125bade067ef0fdcd1775d135c646c6b94) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) )
+ ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20151110 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cok10.p1", 0x000000, 0x100000, CRC(4d1ffdf4) SHA1(9630499b8f88d332bbfea965b55854fd6d40c134) )
+ ROM_LOAD16_WORD_SWAP( "242cok10.p2", 0x100000, 0x400000, CRC(064a18c9) SHA1(cc68ee70f738365674c63cc31954c994a6b2aeba) )
+
+ NEO_SFIX_128K( "242cnd28.s1", CRC(8e37c589) SHA1(44b9f1cd06cd029fcc39bf29724b03e021974c20) )
+
+ NEO_BIOS_AUDIO_256K( "242coc30.m1", CRC(db046fc4) SHA1(4b793a125bade067ef0fdcd1775d135c646c6b94) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) )
+ ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20151223 ) // only p1,p2 are confirmed
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242col23.p1", 0x000000, 0x100000, CRC(7549069f) SHA1(3c083f77f4598c1525fc327f41dbd25a89a66723) )
+ ROM_LOAD16_WORD_SWAP( "242col23.p2", 0x100000, 0x400000, CRC(c53f8c35) SHA1(005b52da53dd57053d0123febfd004c2137cbace) )
+
+ NEO_SFIX_128K( "242cnd28.s1", CRC(8e37c589) SHA1(44b9f1cd06cd029fcc39bf29724b03e021974c20) )
+
+ NEO_BIOS_AUDIO_256K( "242coc30.m1", CRC(db046fc4) SHA1(4b793a125bade067ef0fdcd1775d135c646c6b94) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) )
+ ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20160320 ) // all confirmed
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cpc20.p1", 0x000000, 0x100000, CRC(3a6baeb5) SHA1(100cfaf7f8478ef0f480c1453d268aef6758952a) )
+ ROM_LOAD16_WORD_SWAP( "242cpc20.p2", 0x100000, 0x400000, CRC(d6c78a73) SHA1(6ec63abaf39c1c7ddf4830a9a0e71618b539ea05) )
+
+ NEO_SFIX_128K( "242cnf06.s1", CRC(7333d8b0) SHA1(43d441133d572f65e9e19839ae2557ad86e393a1) )
+
+ NEO_BIOS_AUDIO_256K( "242coc30.m1", CRC(db046fc4) SHA1(4b793a125bade067ef0fdcd1775d135c646c6b94) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) )
+ ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20160907 ) // all confirmed
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cpi07.p1", 0x000000, 0x100000, CRC(eb7e9f57) SHA1(085881730d6f4565e5a67ffc8b4293ba624932bb) )
+ ROM_LOAD16_WORD_SWAP( "242cpi07.p2", 0x100000, 0x400000, CRC(919807ea) SHA1(bdb42da3b13aa68c785d5f50c14fc96c0d8b60e7) )
+
+ NEO_SFIX_128K( "242cnf06.s1", CRC(7333d8b0) SHA1(43d441133d572f65e9e19839ae2557ad86e393a1) )
+
+ NEO_BIOS_AUDIO_256K( "242coc30.m1", CRC(db046fc4) SHA1(4b793a125bade067ef0fdcd1775d135c646c6b94) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) )
+ ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98cd )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cd.p1", 0x000000, 0x100000, CRC(1a748f96) SHA1(bddb07fa6dc59ae547aed32218a6601b8b80816e) )
+ ROM_LOAD16_WORD_SWAP( "242cd.p2", 0x100000, 0x400000, CRC(5e4405b2) SHA1(f503c52c1ddec204c498351aae52528ccfe6ab6c) )
+
+ NEO_SFIX_128K( "242cd.s1", CRC(53f14b31) SHA1(c9aa1627bd4d55196dc2efa72c2b3bea1d90e699) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cd.c1", 0x0000000, 0x800000, CRC(05edf0ff) SHA1(99afddc2d59ba274f2d9d9f5ef86c925518b8278) )
+ ROM_LOAD16_BYTE( "242cd.c2", 0x0000001, 0x800000, CRC(3723515e) SHA1(a2f0ae12cdd10e74a19188d774e833eb8501f20c) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98cd1 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cd1.p1", 0x000000, 0x100000, CRC(0a411dda) SHA1(7c45fb93b9285d1bd63ab79576392205d6f2b2c5) )
+ ROM_LOAD16_WORD_SWAP( "242cd.p2", 0x100000, 0x400000, CRC(5e4405b2) SHA1(f503c52c1ddec204c498351aae52528ccfe6ab6c) )
+
+ NEO_SFIX_128K( "242sp.s1", CRC(9ccbae05) SHA1(f89dcce6a804b86e0f7362df7c16c7a4a978ee62) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242nc.c1", 0x0000000, 0x800000, CRC(6b458741) SHA1(a2157247763fae325ef0fcd93bc72df6dfd4fa33) )
+ ROM_LOAD16_BYTE( "242cd.c2", 0x0000001, 0x800000, CRC(3723515e) SHA1(a2f0ae12cdd10e74a19188d774e833eb8501f20c) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98cd2 ) // multijet
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cd2.p1", 0x000000, 0x100000, CRC(8a7094e2) SHA1(0d2692c136976266145925b7cda5c75b821b7055) )
+ ROM_LOAD16_WORD_SWAP( "242cd.p2", 0x100000, 0x400000, CRC(5e4405b2) SHA1(f503c52c1ddec204c498351aae52528ccfe6ab6c) )
+
+ NEO_SFIX_128K( "242sp.s1", CRC(9ccbae05) SHA1(f89dcce6a804b86e0f7362df7c16c7a4a978ee62) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242nc.c1", 0x0000000, 0x800000, CRC(6b458741) SHA1(a2157247763fae325ef0fcd93bc72df6dfd4fa33) )
+ ROM_LOAD16_BYTE( "242cd.c2", 0x0000001, 0x800000, CRC(3723515e) SHA1(a2f0ae12cdd10e74a19188d774e833eb8501f20c) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98ch ) /* The King of Fighters '98 - Remix by Chase - (Character move change 20030503) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242ch.p1", 0x000000, 0x100000, CRC(c6244126) SHA1(c99b20917c5ad2780f7ecabe95f6aded6a7f0038) )
+ ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98ch1 ) // multijet kof98ch, looks like a hack of kof98cn
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cn.p1", 0x000000, 0x100000, CRC(9f8cb001) SHA1(0d159627815175a25e39b2d84aa0f9c7afb16b68) )
+ ROM_LOAD16_WORD_SWAP( "242ch1.p2", 0x100000, 0x400000, CRC(8a167905) SHA1(b6487e2df6450b8c192a7782d4514c1f740df41a) )
+
+ NEO_SFIX_128K( "242ch1.s1", CRC(c045e32a) SHA1(496f9123a50840064a1bf2d5dc8e768bc10aded1) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cn.c1", 0x0000000, 0x800000, CRC(40aceac9) SHA1(c9b7aee462e47bb70dc3644aa20b0698e7841ac1) )
+ ROM_LOAD16_BYTE( "242cn.c2", 0x0000001, 0x800000, CRC(3aa0b16b) SHA1(fbc063e85a6fa33ae189fe0e74ad53c6b29e3dd9) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98chl ) /* [OLD] The King of Fighters '98 - Revise by CHL - (Character move change 20030320) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242chl.p1", 0x000000, 0x100000, CRC(8dff0265) SHA1(9a1ffaf13ed95dcb035e081f93b8eb461212c713) )
+ ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98chris ) // Chris 2k2 Style
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242-pn1.p1", 0x000000, 0x100000, CRC(61ac868a) SHA1(26577264aa72d6af272952a876fcd3775f53e3fa) )
+ ROM_LOAD16_WORD_SWAP( "242chris.p2", 0x100000, 0x400000, CRC(99adc897) SHA1(4f8b3e58c8509a765536fb1f4895e8594c2237c2) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242chris.c7", 0x3000000, 0x800000, CRC(5ef4d3c3) SHA1(312cc9aa1c4657b7bc745348f3bac7476ef3c894) )
+ ROM_LOAD16_BYTE( "242chris.c8", 0x3000001, 0x800000, CRC(d8b5d903) SHA1(3c5f0cf4b7cec79a81ad3af8cafeca2a14509995) )
+ROM_END
+
+ROM_START( kof98cn )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cn.p1", 0x000000, 0x100000, CRC(9f8cb001) SHA1(0d159627815175a25e39b2d84aa0f9c7afb16b68) )
+ ROM_LOAD16_WORD_SWAP( "242cn.p2", 0x100000, 0x400000, CRC(d7d3ad2c) SHA1(f344a6093dc0ed08b77c786c4272be065039cf67) )
+
+ NEO_SFIX_128K( "242cn.s1", CRC(65080259) SHA1(6c531bb975ab338981db8337fd787b53ac48ece6) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cn.c1", 0x0000000, 0x800000, CRC(40aceac9) SHA1(c9b7aee462e47bb70dc3644aa20b0698e7841ac1) )
+ ROM_LOAD16_BYTE( "242cn.c2", 0x0000001, 0x800000, CRC(3aa0b16b) SHA1(fbc063e85a6fa33ae189fe0e74ad53c6b29e3dd9) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98cn1 ) // hack of kof98y
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242y.p1", 0x000000, 0x100000, CRC(20848b37) SHA1(eb44baa6f273d6ab596204f89427078343c0ace5) )
+ ROM_LOAD16_WORD_SWAP( "242cn.p2", 0x100000, 0x400000, CRC(d7d3ad2c) SHA1(f344a6093dc0ed08b77c786c4272be065039cf67) )
+
+ NEO_SFIX_128K( "242cn1.s1", CRC(3b054e79) SHA1(4a56fa412065efb159f283f2bbab9f76e4160d85) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cn.c1", 0x0000000, 0x800000, CRC(40aceac9) SHA1(c9b7aee462e47bb70dc3644aa20b0698e7841ac1) )
+ ROM_LOAD16_BYTE( "242cn.c2", 0x0000001, 0x800000, CRC(3aa0b16b) SHA1(fbc063e85a6fa33ae189fe0e74ad53c6b29e3dd9) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98cos )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cos.p1", 0x000000, 0x100000, CRC(1db1c200) SHA1(2fcac911720ecfc878c0d47b2a4c8ca17eec5588) )
+ ROM_LOAD16_WORD_SWAP( "242cos.p2", 0x100000, 0x400000, CRC(48c87162) SHA1(e29d90f101a4b585d98cd51a941e876356cc77f0) )
+
+ NEO_SFIX_128K( "242cos.s1", CRC(554c4b66) SHA1(0fa53c7433ed4b66515890ad0526f292ae88c7ad) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cos.c1", 0x0000000, 0x800000, CRC(9f8b0ee6) SHA1(a13b07a2cfdb5e318a11cdd054d0f3ec612cbc15) )
+ ROM_LOAD16_BYTE( "242cos.c2", 0x0000001, 0x800000, CRC(2e21efeb) SHA1(35eeb1657fc62c1298c019f16978e3108c25d068) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98cos1 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cos1.p1", 0x000000, 0x100000, CRC(fb883c88) SHA1(6136a051afc714f3e190f05dcf35b77e06151c66) )
+ ROM_LOAD16_WORD_SWAP( "242cos1.p2", 0x100000, 0x400000, CRC(8b303816) SHA1(63501eb059bd0afe4a77b891cb8eabfefd344648) )
+
+ NEO_SFIX_128K( "242cos.s1", CRC(554c4b66) SHA1(0fa53c7433ed4b66515890ad0526f292ae88c7ad) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cos1.c1", 0x0000000, 0x800000, CRC(8dd08778) SHA1(1e7ab8b8111d7584789781f6b8d9949f85b601bc) )
+ ROM_LOAD16_BYTE( "242cos1.c2", 0x0000001, 0x800000, CRC(c2618f28) SHA1(085b39c5eb730df8a9e4d5fe439098c5bc000ac3) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98cos2 ) // Cosmic 2.0
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cos2.p1", 0x000000, 0x100000, CRC(ab79dd93) SHA1(3b59df27be009dd19508cdd028bf260c6141c2ad) )
+ ROM_LOAD16_WORD_SWAP( "242cos2.p2", 0x100000, 0x400000, CRC(6df5820b) SHA1(608c4f4987d8174dd8b60b274b773e6978fdbc92) )
+
+ NEO_SFIX_128K( "242cos.s1", CRC(554c4b66) SHA1(0fa53c7433ed4b66515890ad0526f292ae88c7ad) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cos2.c1", 0x0000000, 0x800000, CRC(96762b9a) SHA1(5d62188c1a4816b6cd5001b618d695597c9b61a6) )
+ ROM_LOAD16_BYTE( "242cos2.c2", 0x0000001, 0x800000, CRC(e7617290) SHA1(371441d1f204e83783a2a5c0e86d1a3968e0892d) )
+ ROM_LOAD16_BYTE( "242cos2.c3", 0x1000000, 0x800000, CRC(21a545b4) SHA1(90e29b07034fa7c03ec366fd716bc6e60849102f) )
+ ROM_LOAD16_BYTE( "242cos2.c4", 0x1000001, 0x800000, CRC(21adcb7b) SHA1(70c6ccef09349747a751da2e74700cc54ba9741f) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98dc ) /* The King of Fighters '98 - Colour fix by Dodowang - (character colour change - the "negative colour style */
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242-p1.p1", 0x000000, 0x200000, CRC(8893df89) SHA1(0452828785110601c65f667209fc2d2926cd3751) )
+ ROM_LOAD16_WORD_SWAP( "242dc.p2", 0x200000, 0x400000, CRC(4bce4de3) SHA1(5c210782853250772cf27c1492f018d92a5357fc) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98ecm ) // multijet
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242ecm.p1", 0x000000, 0x100000, CRC(c84c975a) SHA1(0abcb78eb1f3970bfcb5f55cbbf1d4d9174311db) )
+ ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98ehr ) /* The King of Fighters '98 - Remix by Raymonose - (Character move change - ultra kill start is max in Advanced Mode - ultra power hack ABC - bases on kof98eh) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242ehr.p1", 0x000000, 0x100000, CRC(451acfca) SHA1(2d0ec5f999c54749b39dd2a03fedf62f4bf79cd4) )
+ ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98evl ) // Ultra Evolution Lite
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242evl.p1", 0x000000, 0x100000, CRC(91fec4c3) SHA1(4a0a4c340f67d8f11fee1d2851b6aec0b1feae08) )
+ ROM_LOAD16_WORD_SWAP( "242evl.p2", 0x100000, 0x400000, CRC(3c76d7cc) SHA1(0385bd3860add3431097ed207d9de80491482fa0) )
+
+ NEO_SFIX_128K( "242evl.s1", CRC(33429d5b) SHA1(68e0c1a6408029b034b7f7936bbb12152aa6d5bc) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242evl.c1", 0x0000000, 0x800000, CRC(e7f6e015) SHA1(c7efac1dee18e1f29a1d80ef5be5574cb12c2d6c) )
+ ROM_LOAD16_BYTE( "242evl.c2", 0x0000001, 0x800000, CRC(8c2dfa52) SHA1(2ba4235abf78e360129b6d5643889ccb3155cb30) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242sp.c7", 0x3000000, 0x800000, CRC(35839069) SHA1(830dcc84f91ef5498019604fecd9a8db1e3e22a9 ) )
+ ROM_LOAD16_BYTE( "242sp.c8", 0x3000001, 0x800000, CRC(9744d47f) SHA1(8a7057a99f6cbc9707f10feb64192716cf6df151 ) )
+ROM_END
+
+ROM_START( kof98evo ) // Evolution
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242new.p1", 0x000000, 0x100000, CRC(f9a22b2f) SHA1(730e9ae8391d8fa70141c5d73479cf9cff91a672) )
+ ROM_LOAD16_WORD_SWAP( "242evo.p2", 0x100000, 0x400000, CRC(65547465) SHA1(6f3d8bc995e2ef195e682885c050715a274913e7) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242sp.c7", 0x3000000, 0x800000, CRC(35839069) SHA1(830dcc84f91ef5498019604fecd9a8db1e3e22a9 ) )
+ ROM_LOAD16_BYTE( "242sp.c8", 0x3000001, 0x800000, CRC(9744d47f) SHA1(8a7057a99f6cbc9707f10feb64192716cf6df151 ) )
+ROM_END
+
+ROM_START( kof98evo2 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242evo2.p1", 0x000000, 0x100000, CRC(39ef1761) SHA1(5e4267ae5d63b44ff18ec26117d779eb9b2b7613) )
+ ROM_LOAD16_WORD_SWAP( "242evo2.p2", 0x100000, 0x400000, CRC(230faff7) SHA1(8df8a15c09adf7fad96204567e848ac0f7afcdc0) )
+
+ NEO_SFIX_128K( "242evo2.s1", CRC(536defd3) SHA1(dda5e94531f8009013185a243227f775a574c6c2) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242sp2.c1", 0x0000000, 0x800000, CRC(3c4458cc) SHA1(0869f72a9d7226b19ffea5108f618d0f62c01291) )
+ ROM_LOAD16_BYTE( "242sp2.c2", 0x0000001, 0x800000, CRC(f060b0f4) SHA1(b4230c5c8dd35c0907b7c7d23f964051e6c24723) )
+ ROM_LOAD16_BYTE( "242new.c3", 0x1000000, 0x800000, CRC(3e554882) SHA1(c2a0dd3621180e9aae0f41adb46ea7fcce0764e8) )
+ ROM_LOAD16_BYTE( "242new.c4", 0x1000001, 0x800000, CRC(e9e0f676) SHA1(4b46dc18b9ce502097e615c9c236ca0ac5b280e0) )
+ ROM_LOAD16_BYTE( "242sp2.c5", 0x2000000, 0x800000, CRC(7e98340a) SHA1(35881c2a3e4025a7a18d85d80ba5ec91e33cddc7) )
+ ROM_LOAD16_BYTE( "242sp2.c6", 0x2000001, 0x800000, CRC(4adce5a2) SHA1(a6d4549db97584c529ac728e1f239f6168b77c6b) )
+ ROM_LOAD16_BYTE( "242sp.c7", 0x3000000, 0x800000, CRC(35839069) SHA1(830dcc84f91ef5498019604fecd9a8db1e3e22a9) )
+ ROM_LOAD16_BYTE( "242sp.c8", 0x3000001, 0x800000, CRC(9744d47f) SHA1(8a7057a99f6cbc9707f10feb64192716cf6df151) )
+ROM_END
+
+ROM_START( kof98evr ) // all confirmed
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242evr.p1", 0x000000, 0x100000, CRC(2cd3d8e9) SHA1(81014dd7e4ac6bd4d2f155dcee3930e1eb5174a1) )
+ ROM_LOAD16_WORD_SWAP( "242evr.p2", 0x100000, 0x400000, CRC(c1e80581) SHA1(466d41a3390bf655e2dba5a42c566ec5bcd626a6) )
+
+ NEO_SFIX_128K( "242evr.s1", CRC(88355acf) SHA1(bbcb0d7c5f6ad73d049a94f03d5ee1af23b99754) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cn.c1", 0x0000000, 0x800000, CRC(40aceac9) SHA1(c9b7aee462e47bb70dc3644aa20b0698e7841ac1) )
+ ROM_LOAD16_BYTE( "242cn.c2", 0x0000001, 0x800000, CRC(3aa0b16b) SHA1(fbc063e85a6fa33ae189fe0e74ad53c6b29e3dd9) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242evr.c7", 0x3000000, 0x800000, CRC(737249a8) SHA1(4ced30143182bd09596697600b2c4801cd66d274) )
+ ROM_LOAD16_BYTE( "242evr.c8", 0x3000001, 0x800000, CRC(3489c788) SHA1(b47ba5d64e7aad2d3f263f9fd659c1ae83b06284) )
+ROM_END
+
+ROM_START( kof98f )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242f.p1", 0x000000, 0x100000, CRC(c17a0ace) SHA1(b5496062954bdc3ab45a9b4e7787ab3426ff7404) )
+ ROM_LOAD16_WORD_SWAP( "242f.p2", 0x100000, 0x400000, CRC(d7477a42) SHA1(f20980ab53ebc36907712b0e0b8db18c42d1198c) )
+ ROM_FILL(0x182,1,0x00)
+ ROM_FILL(0x183,1,0x0A)
+
+ NEO_SFIX_128K( "242f.s1", CRC(bdd8c78e) SHA1(2df58aad109ac3012f7814f873d8c966faef8aa1) )
+
+ NEO_BIOS_AUDIO_256K( "242f.m1", CRC(d73ccd25) SHA1(54dfdf4baf8efb621e234f602939929b17330bfc) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242f.v1", 0x000000, 0x400000, CRC(5c6d6b00) SHA1(ef87aa9573d66e3ee35d7fa0bb680dfea52da144) )
+ ROM_LOAD( "242f.v2", 0x400000, 0x400000, CRC(392953d5) SHA1(53468da327e64cb471fb3f0ea71977ec2bfb31f7) )
+ ROM_LOAD( "242f.v3", 0x800000, 0x400000, CRC(a2e57162) SHA1(6c3f010035d6426a420dbbfbe8d3cecc879e8ee7) )
+ ROM_LOAD( "242f.v4", 0xc00000, 0x400000, CRC(91c353c5) SHA1(58f1fb75191b662f087929f8a401719375274d1f) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242f.c1", 0x0000000, 0x800000, CRC(69a77e68) SHA1(4b0a0d6b52b1136b2c0ce237536532e9333f918a) )
+ ROM_LOAD16_BYTE( "242f.c2", 0x0000001, 0x800000, CRC(315609de) SHA1(44d92b59e93f8340b27bbd91b6a6ed74c1e88cf4) )
+ ROM_LOAD16_BYTE( "242f.c3", 0x1000000, 0x800000, CRC(bd6ba838) SHA1(5142ca697b2b6e203df7737e6a4ada126706bac3) )
+ ROM_LOAD16_BYTE( "242f.c4", 0x1000001, 0x800000, CRC(ad1a89a2) SHA1(ab470673d561955c9d0640c06c5d6b931f2d095c) )
+ ROM_LOAD16_BYTE( "242f.c5", 0x2000000, 0x800000, CRC(6cb4a77c) SHA1(73bcefd2e090db70d9bc693d6086cf6ab2af049b) )
+ ROM_LOAD16_BYTE( "242f.c6", 0x2000001, 0x800000, CRC(7bf63b7d) SHA1(6e5c38dc450272d4410c150d5906b0870e753480) )
+ ROM_LOAD16_BYTE( "242f.c7", 0x3000000, 0x800000, CRC(c4a3ef6b) SHA1(28fc5b7d1e0bf641483190ff27f30e4b9f48d80a) )
+ ROM_LOAD16_BYTE( "242f.c8", 0x3000001, 0x800000, CRC(1c506f21) SHA1(5a96a8649c1027fdcbdd34be6176c3110271f74d) )
+ROM_END
+
+ROM_START( kof98fr ) /* The King of Fighters '98 - Translation Hack by NEO-ARC - (French translation) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242fr.p1", 0x000000, 0x100000, CRC(2f29984c) SHA1(6feb8412d335e8b38a0d7231f51af91251901dd4) )
+ ROM_LOAD16_WORD_SWAP( "242fr.p2", 0x100000, 0x400000, CRC(c2fc3506) SHA1(ddcedbc30474d2e1db70d640a6a258171ecb900c) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242fr.c1", 0x0000000, 0x800000, CRC(07bd2146) SHA1(124c580667887d9f027b3fb2dbb6db39b346359c) )
+ ROM_LOAD16_BYTE( "242fr.c2", 0x0000001, 0x800000, CRC(c935e740) SHA1(375624da3f24ea3b752c0cc3d9b75457e27c31d0) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98fro ) /* [OLD] The King of Fighters '98 - Translation Hack by NEO-ARC - (French translation) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242fro.p1", 0x000000, 0x100000, CRC(6500efce) SHA1(933de9a1b3ee32ac0043179448b4dda776eb86ba) )
+ ROM_LOAD16_WORD_SWAP( "242fro.p2", 0x100000, 0x400000, CRC(c7fa95ee) SHA1(4de91d9151fbc510751f2c5277da7c8f49872c26) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242fro.c1", 0x0000000, 0x800000, CRC(bae65fc5) SHA1(933f587955ee29f3beca9be495a35331530e7206) )
+ ROM_LOAD16_BYTE( "242fr.c2", 0x0000001, 0x800000, CRC(c935e740) SHA1(375624da3f24ea3b752c0cc3d9b75457e27c31d0) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98fro2 ) /* [OLD] The King of Fighters '98 - Translation Hack by NEO-ARC - (French translation) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242fro2.p1", 0x000000, 0x100000, CRC(71d4650f) SHA1(d0719d54070c3dea1d72b95c1fc830bd911ea49c) )
+ ROM_LOAD16_WORD_SWAP( "242fro.p2", 0x100000, 0x400000, CRC(c7fa95ee) SHA1(4de91d9151fbc510751f2c5277da7c8f49872c26) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98frp ) // The Slutfest: French satire by Cigarette Patch
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242frp.p1", 0x000000, 0x100000, CRC(b9d5d3a5) SHA1(f58e1bae237c271e9f3e0c081b89118e5f910f94) )
+ ROM_LOAD16_WORD_SWAP( "242frp.p2", 0x100000, 0x400000, CRC(dccb944f) SHA1(9bd4fe01c44ddfd74583f9f46dd3342aef1bae68) )
+
+ NEO_SFIX_128K( "242frp.s1", CRC(6db59470) SHA1(e4333cd4dac667779958a72249202082df74b00f) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242frp.c1", 0x0000000, 0x800000, CRC(3833c1aa) SHA1(4e4f1c3c932b0da708d48af0ce0473ac51d0908d) )
+ ROM_LOAD16_BYTE( "242frp.c2", 0x0000001, 0x800000, CRC(c3a8234f) SHA1(ba55e5c0cc61e828a71f9dcdba4c4b6ea40beab2) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98fv )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242fv.p1", 0x000000, 0x100000, CRC(81ddbea9) SHA1(5e805944372bbb10801836da50bcd03a2879287e) )
+ ROM_LOAD16_WORD_SWAP( "242fv.p2", 0x100000, 0x400000, CRC(0bb089f2) SHA1(6a96300699d50d15f4579a9d6f64bd4a0f08ff79) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242evr.c7", 0x3000000, 0x800000, CRC(737249a8) SHA1(4ced30143182bd09596697600b2c4801cd66d274) )
+ ROM_LOAD16_BYTE( "242evr.c8", 0x3000001, 0x800000, CRC(3489c788) SHA1(b47ba5d64e7aad2d3f263f9fd659c1ae83b06284) )
+ROM_END
+
+ROM_START( kof98fv2 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242fv2.p1", 0x000000, 0x100000, CRC(027b7cfb) SHA1(f51bc40a82dbbc47d3bc60cdfc80db391003fca8) )
+ ROM_LOAD16_WORD_SWAP( "242fv.p2", 0x100000, 0x400000, CRC(0bb089f2) SHA1(6a96300699d50d15f4579a9d6f64bd4a0f08ff79) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242evr.c7", 0x3000000, 0x800000, CRC(737249a8) SHA1(4ced30143182bd09596697600b2c4801cd66d274) )
+ ROM_LOAD16_BYTE( "242evr.c8", 0x3000001, 0x800000, CRC(3489c788) SHA1(b47ba5d64e7aad2d3f263f9fd659c1ae83b06284) )
+ROM_END
+
+ROM_START( kof98gold ) // Gold Color Hack
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242-pn1.p1", 0x000000, 0x100000, CRC(61ac868a) SHA1(26577264aa72d6af272952a876fcd3775f53e3fa) )
+ ROM_LOAD16_WORD_SWAP( "242gold.p2", 0x100000, 0x400000, CRC(c0f6802d) SHA1(f86c141efe454e949cb28585f1e88088b3894b16) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98hk ) // Hakeshu
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242hk.p1", 0x000000, 0x100000, CRC(701423b1) SHA1(3f062282ef119800ee7e0a7dc8e7fdbc1de69edb) )
+ ROM_LOAD16_WORD_SWAP( "242hk.p2", 0x100000, 0x400000, CRC(8fe4e5ae) SHA1(247c5eded83c1b59ec601a4be98fd88edc1ae4ac) )
+
+ NEO_SFIX_128K( "242cos.s1", CRC(554c4b66) SHA1(0fa53c7433ed4b66515890ad0526f292ae88c7ad) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cos2.c1", 0x0000000, 0x800000, CRC(96762b9a) SHA1(5d62188c1a4816b6cd5001b618d695597c9b61a6) )
+ ROM_LOAD16_BYTE( "242cos2.c2", 0x0000001, 0x800000, CRC(e7617290) SHA1(371441d1f204e83783a2a5c0e86d1a3968e0892d) )
+ ROM_LOAD16_BYTE( "242hk.c3", 0x1000000, 0x800000, CRC(3a731ff6) SHA1(bf1dedd95b4f387f474b38118763722f1e45a135) )
+ ROM_LOAD16_BYTE( "242hk.c4", 0x1000001, 0x800000, CRC(ba6b4f20) SHA1(adfca3d095a0d5f25f223263c9c241d029ba000f) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242chris.c7", 0x3000000, 0x800000, CRC(5ef4d3c3) SHA1(312cc9aa1c4657b7bc745348f3bac7476ef3c894) )
+ ROM_LOAD16_BYTE( "242chris.c8", 0x3000001, 0x800000, CRC(d8b5d903) SHA1(3c5f0cf4b7cec79a81ad3af8cafeca2a14509995) )
+ROM_END
+
+ROM_START( kof98ice ) /* The King of Fighters '98 - Colour fix by Diablo_Hu - (Colour change - ice) */
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242-p1.p1", 0x000000, 0x200000, CRC(8893df89) SHA1(0452828785110601c65f667209fc2d2926cd3751) )
+ ROM_LOAD16_WORD_SWAP( "242ice.p2", 0x200000, 0x400000, CRC(43449225) SHA1(0ac7154ecee354e9c9a3fde27ec195062e6f3cee) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98ico ) /* [OLD] The King of Fighters '98 - Colour fix by Diablo_Hu - (Colour change - ice) */
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242-p1.p1", 0x000000, 0x200000, CRC(8893df89) SHA1(0452828785110601c65f667209fc2d2926cd3751) )
+ ROM_LOAD16_WORD_SWAP( "242ico.p2", 0x200000, 0x400000, CRC(7d018eab) SHA1(cea90992777ffe43d3921a4c0151b371c63bc204) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98iori ) // Iori Special Hack by Qiou2719 (13-02-10)
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242iori.p1", 0x000000, 0x100000, CRC(ba59819e) SHA1(afcc1dadec63563d0c4de20871d972d251fbbaba) )
+ ROM_LOAD16_WORD_SWAP( "242iori.p2", 0x100000, 0x400000, CRC(273e2232) SHA1(123c5541b21fcbaa85f3a687d9c738b083ab7b9e) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242evl.c1", 0x0000000, 0x800000, CRC(e7f6e015) SHA1(c7efac1dee18e1f29a1d80ef5be5574cb12c2d6c) )
+ ROM_LOAD16_BYTE( "242evl.c2", 0x0000001, 0x800000, CRC(8c2dfa52) SHA1(2ba4235abf78e360129b6d5643889ccb3155cb30) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242sp2.c5", 0x2000000, 0x800000, CRC(7e98340a) SHA1(35881c2a3e4025a7a18d85d80ba5ec91e33cddc7) )
+ ROM_LOAD16_BYTE( "242sp2.c6", 0x2000001, 0x800000, CRC(4adce5a2) SHA1(a6d4549db97584c529ac728e1f239f6168b77c6b) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98izh ) // multijet
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242-p1.p1", 0x000000, 0x200000, CRC(8893df89) SHA1(0452828785110601c65f667209fc2d2926cd3751) )
+ ROM_LOAD16_WORD_SWAP( "242izh.p2", 0x200000, 0x400000, CRC(a1dc47bf) SHA1(5cab964df8ac80ee0f78daa0a9f5835fe2fb542c) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98jh ) /* The King of Fighters '98 - Enhance by Jason/K3 and Ydmis - (Secret character enable for Rugal - Athena style change) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242jh.p1", 0x000000, 0x100000, CRC(238ed528) SHA1(9f0155cf298886842cd20d5a797a057889e65e04) )
+ ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98k95 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242k95.p1", 0x000000, 0x100000, CRC(f3e75f06) SHA1(ac5c848030a50da9d96f2e974f50f6fb6e7152ba) )
+ ROM_LOAD16_WORD_SWAP( "242k95.p2", 0x100000, 0x400000, CRC(417e154f) SHA1(6dfad87d49ea14a25844746179e82bd47bca6a8d) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242k95.c7", 0x3000000, 0x800000, CRC(936ee534) SHA1(f447da4b0dc2f36ee72305a9cdd6726b87b819b5) )
+ ROM_LOAD16_BYTE( "242k95.c8", 0x3000001, 0x800000, CRC(b874ead0) SHA1(0f16e017fcb05a6cc4ffd18c50a857bd31e71cc4) )
+ROM_END
+
+ROM_START( kof98klc ) // Hack of Ivex combo 20090923
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cii23.p1", 0x000000, 0x100000, CRC(35cbbaa7) SHA1(e9d773b24d999ad55c3813e627836e4d91f239f6) )
+ ROM_LOAD16_WORD_SWAP( "242klc.p2", 0x100000, 0x400000, CRC(5d10ed32) SHA1(974622115a7d157259b5e4f2a18ede14ebe6c5e4) )
+
+ NEO_SFIX_128K( "242klc.s1", CRC(30441357) SHA1(87e4a0e003092044a13a84b18a7a25026aca4d43) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242co.c1", 0x0000000, 0x800000, CRC(2a4eea4f) SHA1(dd29f64715392ed44507849c25dbcf7a30547899) )
+ ROM_LOAD16_BYTE( "242co.c2", 0x0000001, 0x800000, CRC(76368d7d) SHA1(aa7d7313985bcc275520aedfa451f99545dd1927) )
+ ROM_LOAD16_BYTE( "242co.c3", 0x1000000, 0x800000, CRC(93f80804) SHA1(b320b6b5222801ffbc55b8b0862fb5386520817f) )
+ ROM_LOAD16_BYTE( "242co.c4", 0x1000001, 0x800000, CRC(d4f9a578) SHA1(86f2d4f2fb60259d84a31af40cb0074930a37476) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98lb )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242lb.p1", 0x000000, 0x100000, CRC(da7c4acc) SHA1(a99133c37ceb07c7fe5f0d821488b26d85351bc8) )
+ ROM_LOAD16_WORD_SWAP( "242lb.p2", 0x100000, 0x400000, CRC(ec048f7b) SHA1(9af19079461c8a05817de064b13801e79c7f528b) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242sp.c7", 0x3000000, 0x800000, CRC(35839069) SHA1(830dcc84f91ef5498019604fecd9a8db1e3e22a9) )
+ ROM_LOAD16_BYTE( "242sp.c8", 0x3000001, 0x800000, CRC(9744d47f) SHA1(8a7057a99f6cbc9707f10feb64192716cf6df151) )
+ROM_END
+
+ROM_START( kof98lv )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242lv.p1", 0x000000, 0x100000, CRC(bf81f196) SHA1(e92b86844b0c5f77327b0f51b24c60db664bf70d) )
+ ROM_LOAD16_WORD_SWAP( "242lv.p2", 0x100000, 0x400000, CRC(c9ade63f) SHA1(bf4cc7dd3cff29d8b3bd5b5bf1cdcd42021233e3) )
+
+ NEO_SFIX_128K( "242lv.s1", CRC(c6d05b6b) SHA1(787e4f8db203ce380d4ec5e911ac438f356e8c31) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242lv.c1", 0x0000000, 0x800000, CRC(835fa4e1) SHA1(72fdbc671204b46b90254c6d106d37c4ebaa0281) )
+ ROM_LOAD16_BYTE( "242lv.c2", 0x0000001, 0x800000, CRC(e2ef9582) SHA1(3b53d7137b461019a7ff0b0646130e8c49b752f7) )
+ ROM_LOAD16_BYTE( "242cos2.c3", 0x1000000, 0x800000, CRC(21a545b4) SHA1(90e29b07034fa7c03ec366fd716bc6e60849102f) )
+ ROM_LOAD16_BYTE( "242cos2.c4", 0x1000001, 0x800000, CRC(21adcb7b) SHA1(70c6ccef09349747a751da2e74700cc54ba9741f) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242lv.c7", 0x3000000, 0x800000, CRC(7786c5bf) SHA1(baad4060949a886e89502ea1711cf1739071dc17) )
+ ROM_LOAD16_BYTE( "242lv.c8", 0x3000001, 0x800000, CRC(5f8a130b) SHA1(3e93a22f165dc3bd2cc02abb19951117f45d6022) )
+ROM_END
+
+ROM_START( kof98m )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242m.p1", 0x000000, 0x100000, CRC(4ebfc026) SHA1(70dfe1522d8f6aa64ba0ec1ce5021db40fe67403) )
+ ROM_LOAD16_WORD_SWAP( "242m.p2", 0x100000, 0x400000, CRC(45430595) SHA1(523218c133eabba081ff1aed59860addf9ebc009) )
+
+ NEO_SFIX_128K( "242-s1.bin", CRC(935d55a4) SHA1(5bca2169dd64e4f4d71220ac59f0d5be50e35e0b) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x5000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242m.c7", 0x3000000, 0x800000, CRC(924a1e4b) SHA1(6de2c48b63cab647bca5d554a01d6a39c24924dc) )
+ ROM_LOAD16_BYTE( "242m.c8", 0x3000001, 0x800000, CRC(fa1cfd45) SHA1(1922cf380f8d61770080cc0d7bc7727b78509384) )
+ ROM_LOAD16_BYTE( "242m.c9", 0x4000000, 0x800000, CRC(cad3eae8) SHA1(39557e0f559761b60e03062d99251b1056ecd8db) )
+ ROM_LOAD16_BYTE( "242m.c10", 0x4000001, 0x800000, CRC(930f41f8) SHA1(6e0349f9fe622890bc0111c8a554f67909cd810f) )
+ROM_END
+
+ROM_START( kof98mev ) // all confirmed
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242mev.p1", 0x000000, 0x100000, CRC(d1a6a8be) SHA1(0197f00b5ac2452e8b8b5597c4edf98509ae14be) )
+ ROM_LOAD16_WORD_SWAP( "242mev.p2", 0x100000, 0x400000, CRC(73d3505d) SHA1(74f581aa2fdc968b403fc19c2b719aa12177ba42) )
+
+ NEO_SFIX_128K( "242mev.s1", CRC(9acd571d) SHA1(a3520208766e65ae8e0c7cd0977794098974ff18) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x5000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242mix.c7", 0x3000000, 0x800000, CRC(374eb904) SHA1(060ccdca943b6493890c9e42eacf943cf4acc100) )
+ ROM_LOAD16_BYTE( "242mix.c8", 0x3000001, 0x800000, CRC(eddd2789) SHA1(e1fe8238ed51ee328d8c7eebb58fa6230b9e48c5) )
+ ROM_LOAD16_BYTE( "242mev.c9", 0x4000000, 0x800000, CRC(1823dfa3) SHA1(f9f16465ec7564a812fb093d12adcba5f4660d85) )
+ ROM_LOAD16_BYTE( "242mev.c10", 0x4000001, 0x800000, CRC(6a04ab8c) SHA1(4c000e595cab2749bbee26b45527f5a7b573dfbc) )
+ROM_END
+
+ROM_START( kof98mix ) // 2011-10-01 version
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242mix.p1", 0x000000, 0x100000, CRC(4a0525b1) SHA1(14c0356fd63ba55040b1f744f3b4450bfbf32a93) )
+ ROM_LOAD16_WORD_SWAP( "242mix.p2", 0x100000, 0x400000, CRC(75aeef82) SHA1(5fdd52b88160ef670e1e5b592967db4e1ae8f407) )
+
+ NEO_SFIX_128K( "242mix.s1", CRC(07999beb) SHA1(e72372ca3c43083f39a9e0279af0f64d0994e9ba) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x5000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242mix.c7", 0x3000000, 0x800000, CRC(374eb904) SHA1(060ccdca943b6493890c9e42eacf943cf4acc100) )
+ ROM_LOAD16_BYTE( "242mix.c8", 0x3000001, 0x800000, CRC(eddd2789) SHA1(e1fe8238ed51ee328d8c7eebb58fa6230b9e48c5) )
+ ROM_LOAD16_BYTE( "242mix.c9", 0x4000000, 0x800000, CRC(83ef6611) SHA1(c65415d1933e6d2c19265047a22172d46484d900) )
+ ROM_LOAD16_BYTE( "242mix.c10", 0x4000001, 0x800000, CRC(c22c67f8) SHA1(4f4bc61af37a2a14fa059785a0de0e82078b89e5) )
+ROM_END
+
+ROM_START( kof98nc )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242nc.p1", 0x000000, 0x100000, CRC(a9ebe406) SHA1(7c72271ae2da41547d06fb244c245760c32c0259) )
+ ROM_LOAD16_WORD_SWAP( "242cd.p2", 0x100000, 0x400000, CRC(5e4405b2) SHA1(f503c52c1ddec204c498351aae52528ccfe6ab6c) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242nc.c1", 0x0000000, 0x800000, CRC(6b458741) SHA1(a2157247763fae325ef0fcd93bc72df6dfd4fa33) )
+ ROM_LOAD16_BYTE( "242cd.c2", 0x0000001, 0x800000, CRC(3723515e) SHA1(a2f0ae12cdd10e74a19188d774e833eb8501f20c) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98ncdh )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242ncdh.p1", 0x000000, 0x100000, CRC(6cd3c533) SHA1(5d7b223e394930345f3988e13dd268233ab43b70) )
+ ROM_LOAD16_WORD_SWAP( "242ncdh.p2", 0x100000, 0x400000, CRC(5e05df14) SHA1(1bd1729d15a29f9cfba79d90b690d53467cec790) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242ncdh.c7", 0x3000000, 0x800000, CRC(a5747386) SHA1(2e0dc5f1edef45bd1028c02d1b2882102fb3c454) )
+ ROM_LOAD16_BYTE( "242ncdh.c8", 0x3000001, 0x800000, CRC(80bb019f) SHA1(5beff8332b9ba4b839da0e07e992caab84df5d9e) )
+ROM_END
+
+ROM_START( kof98new )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242new.p1", 0x000000, 0x100000, CRC(f9a22b2f) SHA1(730e9ae8391d8fa70141c5d73479cf9cff91a672) )
+ ROM_LOAD16_WORD_SWAP( "242new.p2", 0x100000, 0x400000, CRC(5c650818) SHA1(7b3a0d5a4448de3d3e010e7ce5b521d3bf008a08) )
+
+ NEO_SFIX_128K( "242cos.s1", CRC(554c4b66) SHA1(0fa53c7433ed4b66515890ad0526f292ae88c7ad) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242new.c3", 0x1000000, 0x800000, CRC(3e554882) SHA1(c2a0dd3621180e9aae0f41adb46ea7fcce0764e8) )
+ ROM_LOAD16_BYTE( "242new.c4", 0x1000001, 0x800000, CRC(e9e0f676) SHA1(4b46dc18b9ce502097e615c9c236ca0ac5b280e0) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242sp.c7", 0x3000000, 0x800000, CRC(35839069) SHA1(830dcc84f91ef5498019604fecd9a8db1e3e22a9) )
+ ROM_LOAD16_BYTE( "242sp.c8", 0x3000001, 0x800000, CRC(9744d47f) SHA1(8a7057a99f6cbc9707f10feb64192716cf6df151) )
+ROM_END
+
+ROM_START( kof98pjc ) /* The King of Fighters '98 - Colour fix by TcwLee - (Character colour change) */
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242-p1.p1", 0x000000, 0x200000, CRC(8893df89) SHA1(0452828785110601c65f667209fc2d2926cd3751) )
+ ROM_LOAD16_WORD_SWAP( "242pjc.p2", 0x200000, 0x400000, CRC(d7e4ca54) SHA1(b325f46494b31ce5a1ad7cdfae6c25ad7d061d23) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98rh ) /* The King of Fighters '98 - Hack by Raymonose - (Style change) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242rh.p1", 0x000000, 0x100000, CRC(f3cf5e74) SHA1(aac4a1f355bb2b0f45030fafd8e0360b7990540a) )
+ ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98rh1 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242rh1.p1", 0x000000, 0x100000, CRC(87e30f4e) SHA1(68d776bfb8b4a017d9853ead31b643930cb0486a) )
+ ROM_LOAD16_WORD_SWAP( "242rh1.p2", 0x100000, 0x400000, CRC(8196b644) SHA1(b0c2fbe2874c58eb8d5955faa0f6c1b26390666b) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98rl )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242rl.p1", 0x000000, 0x100000, CRC(cb209c51) SHA1(62023af00595e1921ff2e076ec6b39226e094a14) )
+ ROM_LOAD16_WORD_SWAP( "242rl.p2", 0x100000, 0x400000, CRC(404ef576) SHA1(ab0d85d033f4102f7b5181661cc08d676173fc14) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242sp.c7", 0x3000000, 0x800000, CRC(35839069) SHA1(830dcc84f91ef5498019604fecd9a8db1e3e22a9 ) )
+ ROM_LOAD16_BYTE( "242sp.c8", 0x3000001, 0x800000, CRC(9744d47f) SHA1(8a7057a99f6cbc9707f10feb64192716cf6df151 ) )
+ROM_END
+
+ROM_START( kof98rm ) /* The King of Fighters '98 - Remix by Raymonose - (Character move change) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242rm.p1", 0x000000, 0x100000, CRC(6232a4e8) SHA1(56f1e69f3e16992d956f33b48478af3e56cb8c96) )
+ ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98rsa ) // multijet
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242rsa.p1", 0x000000, 0x200000, CRC(7ccbd666) SHA1(4d338cd055893234040b550c17ddca465239e849) )
+ ROM_LOAD16_WORD_SWAP( "242rsa.p2", 0x200000, 0x400000, CRC(bb80b351) SHA1(da0f7d9b021269064c82fd6c06e66e8202f47862) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98rup ) // multijet
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242rup.p1", 0x000000, 0x100000, CRC(daeeae3c) SHA1(a24c87b414b1ba34227b939f5eeaee34ea5a6393) )
+ ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98seh ) /* The King of Fighters '98 - Super Enhance Hack by Creamymami and Ydmis - (Ultra kill start is max in Advanced Mode - ultra power hack ABC) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242seh.p1", 0x000000, 0x100000, CRC(4684eda8) SHA1(0987bd16a9246a34046183cc06d543224aaf2e31) )
+ ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98seho ) /* The King of Fighters '98 - Super Enhance Hack by Ydmis - (Ultra kill start is max in Advanced Mode - power hack ABC) (Old) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242seho.p1", 0x000000, 0x100000, CRC(86c9d1e6) SHA1(cfd987ee06e07528ad53f4107f3cf6771f401a5a) )
+ ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98sof )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242sof.p1", 0x000000, 0x115470, CRC(b1619062) SHA1(ddf3d90e6484c33b86cc5eb0c96e989bc9a75dcc) )
+ ROM_LOAD16_WORD_SWAP( "242sof.p2", 0x100000, 0x400000, CRC(d3b724e0) SHA1(8fe6b39abb3300ab17ef00c7e2093e9a7cabd31d) )
+
+ NEO_SFIX_128K( "242sof.s1", CRC(7cfe20af) SHA1(80e23884e0e30a990da73853eaf6570cdf4b611f) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242evl.c1", 0x0000000, 0x800000, CRC(e7f6e015) SHA1(c7efac1dee18e1f29a1d80ef5be5574cb12c2d6c) )
+ ROM_LOAD16_BYTE( "242evl.c2", 0x0000001, 0x800000, CRC(8c2dfa52) SHA1(2ba4235abf78e360129b6d5643889ccb3155cb30) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98sp )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242sp.p1", 0x000000, 0x100000, CRC(058127d8) SHA1(9dd6e5a34d69670ef84fa6186e0001c7adb05a52) )
+ ROM_LOAD16_WORD_SWAP( "242sp.p2", 0x100000, 0x400000, CRC(c3dd89f7) SHA1(6aef3c92688a2af4e63165a92555258954a9da94) )
+
+ NEO_SFIX_128K( "242sp.s1", CRC(9ccbae05) SHA1(f89dcce6a804b86e0f7362df7c16c7a4a978ee62) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242sp.c7", 0x3000000, 0x800000, CRC(35839069) SHA1(830dcc84f91ef5498019604fecd9a8db1e3e22a9 ) )
+ ROM_LOAD16_BYTE( "242sp.c8", 0x3000001, 0x800000, CRC(9744d47f) SHA1(8a7057a99f6cbc9707f10feb64192716cf6df151 ) )
+ROM_END
+
+ROM_START( kof98sp2 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242sp2.p1", 0x000000, 0x100000, CRC(ce56bf36) SHA1(2f8b28b4e35c74f6ce9976186fe004a4daf0def2) )
+ ROM_LOAD16_WORD_SWAP( "242sp2.p2", 0x100000, 0x400000, CRC(bec83808) SHA1(bcdae4c9493ce7595fa3315cc02e2da7e434a14f) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242sp2.c1", 0x0000000, 0x800000, CRC(3c4458cc) SHA1(0869f72a9d7226b19ffea5108f618d0f62c01291) )
+ ROM_LOAD16_BYTE( "242sp2.c2", 0x0000001, 0x800000, CRC(f060b0f4) SHA1(b4230c5c8dd35c0907b7c7d23f964051e6c24723) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242sp2.c5", 0x2000000, 0x800000, CRC(7e98340a) SHA1(35881c2a3e4025a7a18d85d80ba5ec91e33cddc7) )
+ ROM_LOAD16_BYTE( "242sp2.c6", 0x2000001, 0x800000, CRC(4adce5a2) SHA1(a6d4549db97584c529ac728e1f239f6168b77c6b) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98sr )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242sr.p1", 0x000000, 0x100000, CRC(63ee75b8) SHA1(d4443b97bbbae428992b8577369c9b82e008b95c) )
+ ROM_LOAD16_WORD_SWAP( "242sr.p2", 0x100000, 0x400000, CRC(44695e4d) SHA1(4194e9da6a93192c26b32532252e5bd5275b8a10) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242nc.c1", 0x0000000, 0x800000, CRC(6b458741) SHA1(a2157247763fae325ef0fcd93bc72df6dfd4fa33) )
+ ROM_LOAD16_BYTE( "242cd.c2", 0x0000001, 0x800000, CRC(3723515e) SHA1(a2f0ae12cdd10e74a19188d774e833eb8501f20c) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242sr.c7", 0x3000000, 0x800000, CRC(bf1810e5) SHA1(03eed63bad855b00a666332982e2933685eaf740) )
+ ROM_LOAD16_BYTE( "242sr.c8", 0x3000001, 0x800000, CRC(7919b330) SHA1(fd7cc8360307ba8527e3c596c4412df5eed42b3f) )
+ROM_END
+
+ROM_START( kof98sv ) // multijet
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242-p1.p1", 0x000000, 0x200000, CRC(8893df89) SHA1(0452828785110601c65f667209fc2d2926cd3751) )
+ ROM_LOAD16_WORD_SWAP( "242sv.p2", 0x200000, 0x400000, CRC(a7854dbd) SHA1(db414679899e6b45db54c4b24ffa688fa01eac22) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98tim )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242tim.p1", 0x000000, 0x100000, CRC(dbd6ab5a) SHA1(b4f1fe9feebc063c90ebc2b401d1590ddeb6fe3d) )
+ ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98ul )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242ul.p1", 0x000000, 0x100000, CRC(4a4cf2f4) SHA1(7bf35c9cbb86d4335902abd6606c48eed8813f5c) )
+ ROM_LOAD16_WORD_SWAP( "242ul.p2", 0x100000, 0x400000, CRC(b821e275) SHA1(89df56bcd5da6a75f4e2c7fc8d859994933d26db) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98ur )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242ur.p1", 0x000000, 0x100000, CRC(8c41b391) SHA1(fef64fc10d95c5e4eeeac758f3f2d3ccacb3899b) )
+ ROM_LOAD16_WORD_SWAP( "242ur.p2", 0x100000, 0x400000, CRC(6a48c7bc) SHA1(0791092ecf87678758549e49f8d5d53a5e66eeb4) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98urf )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242urf.p1", 0x000000, 0x100000, CRC(e1960b0f) SHA1(ea6516a0e93d35c63f3dabdb8b785531304ad807) )
+ ROM_LOAD16_WORD_SWAP( "242urf.p2", 0x100000, 0x400000, CRC(cde0fa91) SHA1(da56d2e6e2095a0c3d3682acebef9a4790828424) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98wh ) /* The King of Fighters '98 - Hack by Wesker - (Style change for Kyo to 95' Kyo) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242wh.p1", 0x000000, 0x100000, CRC(0c24ce14) SHA1(8bc889b16803c912640c39305a95812aed4e4323) )
+ ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98wh1 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242wh1.p1", 0x000000, 0x100000, CRC(676650af) SHA1(7f7650c83a46625d34654f303b17aaa43032c225) )
+ ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98wh2 ) /* The King of Fighters '98 N - (kof98wh2) - Hack by Wesker - (Style change for Kyo to 95' Kyo, Iori and Rugal) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242wh2.p1", 0x000000, 0x100000, CRC(63267ea9) SHA1(fb82a8519cf5d164a9456f9f11aca36243b76f62) )
+ ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98xi )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242xi.p1", 0x000000, 0x100000, CRC(8cd47f05) SHA1(db19d8457d4ac250b102d8af50d1d1b676997c60) )
+ ROM_LOAD16_WORD_SWAP( "242xi.p2", 0x100000, 0x400000, CRC(8dcf495d) SHA1(9cafdaaad215f8f912b93a0ba7fa1fb8a4d20ece) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242xi.c5", 0x2000000, 0x800000, CRC(d4e28d5f) SHA1(bd93278bb610565f24d468f596121ae1dd7d2686) )
+ ROM_LOAD16_BYTE( "242xi.c6", 0x2000001, 0x800000, CRC(fcfa6e58) SHA1(14da7d42692da09ed4d489459270bd83fe83cf4a) )
+ ROM_LOAD16_BYTE( "242xi.c7", 0x3000000, 0x800000, CRC(960f0df4) SHA1(0bf8381d14be1fe16ffc122df0f49a425cfef9bc) )
+ ROM_LOAD16_BYTE( "242xi.c8", 0x3000001, 0x800000, CRC(f1eab90b) SHA1(224f829bbc75d51f1152e16e60e58951c62d188c) )
+ROM_END
+
+ROM_START( kof98y ) /* The King of Fighters '98 - Hack by Ydmis - (Secret character enable for Rugal) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242y.p1", 0x000000, 0x100000, CRC(20848b37) SHA1(eb44baa6f273d6ab596204f89427078343c0ace5) )
+ ROM_LOAD16_WORD_SWAP( "242y.p2", 0x100000, 0x400000, CRC(3ae6a0b6) SHA1(d3fb3d24da69d590095b183ce5eb5715e0d46e96) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98yh ) /* The King of Fighters '98 - Enhance by Ydmis - (Secret character enable for Rugal - power hack ABC in Extra Mode) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242yh.p1", 0x000000, 0x100000, CRC(4ee6f162) SHA1(66036540d459268198c556397db3ab3c175165a4) )
+ ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98zy ) // multijet
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242-p1.p1", 0x000000, 0x200000, CRC(8893df89) SHA1(0452828785110601c65f667209fc2d2926cd3751) )
+ ROM_LOAD16_WORD_SWAP( "242zy.p2", 0x200000, 0x400000, CRC(b258c011) SHA1(77045b46b079099d84eeb0b2ea518fa7988bde2f) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+
+
+GAME( 1998, kof98aas, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 (Asamiya Athena 99 Style)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, kof98ae, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 Anniversary Edition", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 2009, kof98ae0, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 Anniversary Edition (set 0)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 2009, kof98ae1, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGHT", "Kof'98 Anniversary Edition (set 1)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 2009, kof98ae2, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGHT", "Kof'98 Anniversary Edition (set 2)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 2009, kof98ae3, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGHT", "Kof'98 Anniversary Edition (set 3)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof98ae20160308,kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGHT", "Kof'98 Anniversary Edition (2016-03-08)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof98ae20160827,kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGHT", "Kof'98 Anniversary Edition (2016-08-27)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98bge, kof98, neogeo_noslot, neogeo, neogeo_noslot_state, kof98, ROT0, "hack", "Kof'98 (Boss Gold Edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 2006, kof98bh, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 (Boss Hack 2006)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, kof98bvi, kof98, neogeo_noslot, neogeo, neogeo_noslot_state, kof98, ROT0, "hack", "Kof'98 (Blocking Version hack by Ivex 2009-05-31)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // crashes in first demo
+GAME( 2006, kof98c2006, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo 2006", MACHINE_SUPPORTS_SAVE )
+GAME( 2006, kof98c20060214, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2006-02-14)", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, kof98c20070720, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2007-07-20)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // sometimes reboots itself
+GAME( 2007, kof98c20070923, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2007-09-23)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // sometimes reboots itself
+GAME( 2008, kof98c20080330, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2008-03-30)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // sometimes reboots itself
+GAME( 2008, kof98c20080524, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2008-05-24)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // sometimes reboots itself
+GAME( 2008, kof98c20080616, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2008-06-16)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // sometimes reboots itself
+GAME( 2008, kof98c20080712, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2008-07-12)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // sometimes reboots itself
+GAME( 2009, kof98c20090620, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2009-06-20)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // sometimes reboots itself
+GAME( 2009, kof98c20090923, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2009-09-23)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // sometimes reboots itself
+GAME( 2010, kof98c20100214, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2010-02-14)", MACHINE_SUPPORTS_SAVE )
+GAME( 2010, kof98c20100304, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2010-03-04)", MACHINE_SUPPORTS_SAVE )
+GAME( 2011, kof98c20110114, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2011-01-14)", MACHINE_SUPPORTS_SAVE )
+GAME( 2011, kof98c20110314, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2011-03-14)", MACHINE_SUPPORTS_SAVE )
+GAME( 2012, kof98c20120116, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2012-01-16)", MACHINE_SUPPORTS_SAVE )
+GAME( 2012, kof98c20120915, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2012-09-15)", MACHINE_SUPPORTS_SAVE )
+GAME( 2013, kof98c20130213, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2013-02-13)", MACHINE_SUPPORTS_SAVE )
+GAME( 2013, kof98c20130311, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2013-03-19)", MACHINE_SUPPORTS_SAVE )
+GAME( 2013, kof98c20130509, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2013-05-09)", MACHINE_SUPPORTS_SAVE )
+GAME( 2013, kof98c20130528, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2013-05-30)", MACHINE_SUPPORTS_SAVE )
+GAME( 2013, kof98c20130617, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2013-06-17)", MACHINE_SUPPORTS_SAVE )
+GAME( 2013, kof98c20130808, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2013-08-08)", MACHINE_SUPPORTS_SAVE )
+GAME( 2013, kof98c20130820, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2013-08-20)", MACHINE_SUPPORTS_SAVE )
+GAME( 2013, kof98c20131113, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2013-11-13)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, kof98c20140101, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-01-01)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, kof98c20140110, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-01-10)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, kof98c20140118, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-01-18)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, kof98c20140204, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-02-04)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, kof98c20140213, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-02-13)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, kof98c20140217, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-02-17)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, kof98c20140228, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-02-28)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, kof98c20140302, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-03-02)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, kof98c20140310, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-03-10)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, kof98c20140317, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-03-17)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, kof98c20140403, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-04-03)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, kof98c20140412, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-04-12)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, kof98c20140416, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-04-16)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, kof98c20140419, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-04-19)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, kof98c20140428, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-04-28)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, kof98c20140504, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-05-04)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, kof98c20140524, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-05-24)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, kof98c20140606, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-06-06)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, kof98c20140620, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-06-20)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, kof98c20140717, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-07-17)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, kof98c20140809, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-08-09)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, kof98c20140816, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-08-16)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, kof98c20140824, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-08-24)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, kof98c20140906, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-09-06)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, kof98c20140924, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-09-24)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, kof98c20141002, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-10-02)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, kof98c20141020, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-10-20)", MACHINE_SUPPORTS_SAVE )
+GAME( 2015, kof98c20150201, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2015-02-01)", MACHINE_SUPPORTS_SAVE )
+GAME( 2015, kof98c20150228, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2015-02-28)", MACHINE_SUPPORTS_SAVE )
+GAME( 2015, kof98c20150302, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2015-03-02)", MACHINE_SUPPORTS_SAVE )
+GAME( 2015, kof98c20150310, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2015-03-10)", MACHINE_SUPPORTS_SAVE )
+GAME( 2015, kof98c20150330, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2015-03-30)", MACHINE_SUPPORTS_SAVE )
+GAME( 2015, kof98c20150528, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2015-05-28)", MACHINE_SUPPORTS_SAVE )
+GAME( 2015, kof98c20150614, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2015-06-14)", MACHINE_SUPPORTS_SAVE )
+GAME( 2015, kof98c20150705, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2015-07-05)", MACHINE_SUPPORTS_SAVE )
+GAME( 2015, kof98c20150729, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2015-07-29)", MACHINE_SUPPORTS_SAVE )
+GAME( 2015, kof98c20150827, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2015-08-27)", MACHINE_SUPPORTS_SAVE )
+GAME( 2015, kof98c20151103, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2015-11-03)", MACHINE_SUPPORTS_SAVE )
+GAME( 2015, kof98c20151108, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2015-11-08)", MACHINE_SUPPORTS_SAVE )
+GAME( 2015, kof98c20151110, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2015-11-10)", MACHINE_SUPPORTS_SAVE )
+GAME( 2015, kof98c20151223, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2015-12-23)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof98c20160320, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2016-03-20)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof98c20160907, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2016-09-07)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98cd, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 (CD conversion)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98cd1, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGHT", "Kof'98 (NGCD v1.04f [EGHT])", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98cd2, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGHT", "Kof'98 (NGCD v1.04 (EGHT))", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof98ch, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Chase", "Kof'98 (Diff Moves 2003-05-03)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98ch1, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 (Chinese Translation hack set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof98chl, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "CHL", "Kof'98 (Diff Moves 2003-03-20)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98chris,kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 (Chris 2k2 Style)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98cn, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "FoxUU, Zuojie", "Kof'98 (Chinese Translation)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98cn1, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "FoxUU, Zuojie", "Kof'98 (Chinese Translation, hack of kof98y)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98cos, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Qiou2719", "Kof'98 (Cosmic)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98cos1, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Qiou2719", "Kof'98 (Cosmic 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98cos2, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Qiou2719", "Kof'98 (Cosmic 2.0)", MACHINE_SUPPORTS_SAVE )
+GAME( 2008, kof98cta, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo 10th Anniversary", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // sometimes reboots itself
+GAME( 1998, kof98dc, kof98, neogeo_noslot, neogeo, neogeo_noslot_state, kof98, ROT0, "Dodowang", "Kof'98 (Char color changed - Negative style)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98ecm, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 (Enhanced Chris Moves hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98ehr, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Raymonose", "Kof'98 (Diff Moves - Ultra kill start max in Adv Mode - Ultra pow hack ABC)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98evl, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 (Ultra Evolution Lite)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98evo, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 (Evolution)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98evo2, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 (Evolution Orochi Baozou Hack Set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98evr, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 (EVR)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98f, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 ('fake')", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, kof98fr, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Arkatrad", "Kof'98 (French 2004)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof98fro, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Arkatrad", "Kof'98 (French 2003)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof98fro2, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Arkatrad", "Kof'98 (French 2002)", MACHINE_SUPPORTS_SAVE )
+GAME( 2006, kof98frp, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Cigarette Patch", "Kof'98 Slutfest (French parody)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98fv, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 (Flash Revision)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98fv2, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 (Flash Version UK)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98gold, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 (Gold Color Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98hk, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 (Hakeshu)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98ice, kof98, neogeo_noslot, neogeo, neogeo_noslot_state, kof98, ROT0, "Diablo_Hu", "Kof'98 Ice", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98ico, kof98, neogeo_noslot, neogeo, neogeo_noslot_state, kof98, ROT0, "Diablo_Hu", "Kof'98 Ice (Old)", MACHINE_SUPPORTS_SAVE )
+GAME( 2010, kof98iori, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Qiou2719", "Kof'98 (Iori Special Hack by Qiou2719 (2010-02-13))", MACHINE_SUPPORTS_SAVE )
+GAME( 2008, kof98izh, kof98, neogeo_noslot, neogeo, neogeo_noslot_state, kof98, ROT0, "hack", "Kof'98 (Imitates Kof2002 Attacks Version hack by Zuojie 2008-12-24)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98jh, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Jason/K3 and Ydmis", "Kof'98 (Add Rugal - Athena style changed)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98k95, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 (EX KYO SP)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, kof98klc, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2009-09-23)(Kalce combo mix)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // sometimes reboots itself
+GAME( 1998, kof98lb, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "LB70", "Kof'98 (hack by lb70)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, kof98lv, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 (Love Edition (2009-12-27))", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98m, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 MIX", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98mev, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 (MEV)", MACHINE_SUPPORTS_SAVE )
+GAME( 2011, kof98mix, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 Mix (2011-10-01)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98nc, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "FCHT", "Kof'98 (Neo-Geo CD 1.2 by Eddids from FCHT)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98ncdh, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Kof1996", "Kof'98 (CD to MVS Conversion hack by Kof1996)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98new, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 New Version", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98pjc, kof98, neogeo_noslot, neogeo, neogeo_noslot_state, kof98, ROT0, "TcwLee", "Kof'98 (Char color changed)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98rh, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Raymonose", "Kof'98 (Style changed)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98rh1, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "Kof'98 (Real Rugal Hack - Yashional)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98rl, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Risko", "Kof'98 (Relive by Risko)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98rm, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Raymonose", "Kof'98 (Diff Moves)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98rsa, kof98, neogeo_noslot, neogeo, neogeo_noslot_state, kof98, ROT0, "Wanglins", "Kof'98 (Ralf Special Attack hack by Wanglins)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98rup, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 (Ultimate Edition v1.0)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98seh, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami and Ydmis", "Kof'98 (Ultra kill start max in Adv Mode - Ultra pow hack ABC)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98seho, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Kof'98 (Ultra kill start max in Adv Mode - Pow hack ABC)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98sof, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 (Silver Omega Tributo a Fliperman)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98sp, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "ZWJ", "Kof'98 Super Plus (Hack by ZWJ)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98sp2, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "ZWJ", "Kof'98 Super Plus (Alternate Set, Hack by ZWJ)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98sr, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGHT", "Kof'98 SR ( EGHT )", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98sv, kof98, neogeo_noslot, neogeo, neogeo_noslot_state, kof98, ROT0, "hack", "Kof'98 (Silver Style Edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98tim, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGHT, Creamymami, Raymonose", "Kof'98 (Triple Impact Remix)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98ul, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 (Ultra Leona)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98ur, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "Kof'98 (Ultra Rugal)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98urf, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "Kof'98 (Ultra Rugal Final Version)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98wh, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker", "Kof'98 (Style changes for Kyo to 95' Kyo)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98wh1, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 (Remix BT Version)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98wh2, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker", "Kof'98 (Style changes for Kyo to 95' Kyo, Iori and Rugal)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98xi, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 (XI Flash Version (Jacky hack))", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98y, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Kof'98 (Add Rugal)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98yh, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Kof'98 (Add Rugal - Pow hack ABC in Extra Mode)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98zy, kof98, neogeo_noslot, neogeo, neogeo_noslot_state, kof98, ROT0, "hack", "Kof'98 (Purple Remix)", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/kof99.cpp b/docs/release/src/hbmame/drivers/kof99.cpp
new file mode 100644
index 00000000000..6880ac0309c
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/kof99.cpp
@@ -0,0 +1,3030 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+
+
+
+// Rules: no encryption, has s1 rom -> neogeo_state,neogeo
+// no s1 rom -> neogeo_hbmame,cmc42sfix
+// encrypted gfx -> m_cmc_prot->cmc42_neogeo_gfx_decrypt(spr_region, spr_region_size, KOF99_GFX_KEY);
+// encrypted gfx and no s1 rom -> above plus m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, KOF99_GFX_KEY);
+
+// encrypted gfx and has s1 rom
+DRIVER_INIT_MEMBER( neogeo_hbmame, kof99bh )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_cmc_prot->cmc42_neogeo_gfx_decrypt(spr_region, spr_region_size, KOF99_GFX_KEY);
+}
+
+// encrypted except for cx roms
+DRIVER_INIT_MEMBER( neogeo_hbmame, kof99d )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sma_prot->kof99_decrypt_68k(cpuregion);
+ m_sma_prot->kof99_install_protection(m_maincpu, m_banked_cart);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+
+
+ROM_START( kof99ab ) /* The King of Fighters '99 - Hack by Marcochen/PPX Hack Team - (Rolls moves sideways version) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251ab.p1", 0x000000, 0x100000, CRC(8ABC720E) SHA1(3D8FDC2F3AE1F4F1DC121587EF37240C15548280) )
+ ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+/* The King of Fighters '99 - Anniversary Edition.
+ Unfortunately Yashional does not put revision dates in his games,
+ so we've had to guess which roms to use.
+ For the name, we go by the date on the zipfile (if provided). */
+ROM_START( kof99ae )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251ae.p1", 0x000000, 0x100000, CRC(67f52d45) SHA1(cadf1c5c8c3e234204c8b32677f347e66d0373e5) )
+ ROM_LOAD16_WORD_SWAP( "251ae.p2", 0x100000, 0x400000, CRC(67134a67) SHA1(c853f67ec66b0f01273c3ce1e1003262cbca0a60) )
+
+ NEO_SFIX_128K( "251ae.s1", CRC(6243a70b) SHA1(452371f20e31c4d79022a128fc5335e951a6af1e) )
+
+ NEO_BIOS_AUDIO_128K( "251ae.m1", CRC(f847e188) SHA1(0b98595a457292b04f518afcc82c2d6b8f249a7b) )
+
+ ROM_REGION( 0xe00000, "ymsnd", 0 )
+ ROM_LOAD( "251ae.v1", 0x000000, 0x400000, CRC(4ae46226) SHA1(77dbd53772e1e5000a091b9ff4b3cdc14b62ab0b) )
+ ROM_LOAD( "251ae.v2", 0x400000, 0x400000, CRC(07d70650) SHA1(70d274771c07215268292f91517ec61634e32611) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x6000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251ae.c1", 0x0000000, 0x800000, CRC(d0048356) SHA1(3a5a381f531751c8469d74b59e9e668d21cbc06b) )
+ ROM_LOAD16_BYTE( "251ae.c2", 0x0000001, 0x800000, CRC(1d405bb0) SHA1(76c4b1d6e5ff0d5814b19203fbdd1f02d663de3e) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251ae.c7", 0x3000000, 0x800000, CRC(f22760ad) SHA1(a503898d9b6141c76f63b7c505ac78d3575530b2) )
+ ROM_LOAD16_BYTE( "251ae.c8", 0x3000001, 0x800000, CRC(396c3a70) SHA1(6cd0acd05c138ac85ad63a04dfc015a3e70fa572) )
+ ROM_LOAD16_BYTE( "251ae.c9", 0x4000000, 0x800000, CRC(7d90d06d) SHA1(a72e91d689ef23b4bab43266c4360f663fc7836f) )
+ ROM_LOAD16_BYTE( "251ae.c10", 0x4000001, 0x800000, CRC(3e2bf178) SHA1(e606e69595c0e9601c1dea142f0fcf77c2964347) )
+ ROM_LOAD16_BYTE( "251ae.c11", 0x5000000, 0x800000, CRC(90016920) SHA1(6686e98a25d906131f73ed83c712096a6946c62e) )
+ ROM_LOAD16_BYTE( "251ae.c12", 0x5000001, 0x800000, CRC(49cfed23) SHA1(63fa8682b86802967b36489c7483c59039f35aa5) )
+ROM_END
+
+ROM_START( kof99ae0 ) /* Original Version - Decrypted GFX */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251ae0.p1", 0x000000, 0x100000, CRC(17aec0ae) SHA1(ca88256c9dc118667165ae66fae34ee49bfa1b09) )
+ ROM_LOAD16_WORD_SWAP( "251ae0.p2", 0x100000, 0x400000, CRC(e9630204) SHA1(f5f88eaf4563163c5ddeb39223f1dc5d56658987) )
+
+ NEO_SFIX_128K( "251ae0.s1", CRC(9f515051) SHA1(c5d6553b7c84db3c72b3d2feb9b0a580afa35382) )
+
+ NEO_BIOS_AUDIO_128K( "251ae.m1", CRC(f847e188) SHA1(0b98595a457292b04f518afcc82c2d6b8f249a7b) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251ae.v1", 0x000000, 0x400000, CRC(4ae46226) SHA1(77dbd53772e1e5000a091b9ff4b3cdc14b62ab0b) )
+ ROM_LOAD( "251ae.v2", 0x400000, 0x400000, CRC(07d70650) SHA1(70d274771c07215268292f91517ec61634e32611) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x6000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251ae.c1", 0x0000000, 0x800000, CRC(d0048356) SHA1(3a5a381f531751c8469d74b59e9e668d21cbc06b) )
+ ROM_LOAD16_BYTE( "251ae.c2", 0x0000001, 0x800000, CRC(1d405bb0) SHA1(76c4b1d6e5ff0d5814b19203fbdd1f02d663de3e) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251ae.c7", 0x3000000, 0x800000, CRC(f22760ad) SHA1(a503898d9b6141c76f63b7c505ac78d3575530b2) )
+ ROM_LOAD16_BYTE( "251ae.c8", 0x3000001, 0x800000, CRC(396c3a70) SHA1(6cd0acd05c138ac85ad63a04dfc015a3e70fa572) )
+ ROM_LOAD16_BYTE( "251ae.c9", 0x4000000, 0x800000, CRC(7d90d06d) SHA1(a72e91d689ef23b4bab43266c4360f663fc7836f) )
+ ROM_LOAD16_BYTE( "251ae.c10", 0x4000001, 0x800000, CRC(3e2bf178) SHA1(e606e69595c0e9601c1dea142f0fcf77c2964347) )
+ ROM_LOAD16_BYTE( "251ae.c11", 0x5000000, 0x800000, CRC(90016920) SHA1(6686e98a25d906131f73ed83c712096a6946c62e) )
+ ROM_LOAD16_BYTE( "251ae.c12", 0x5000001, 0x800000, CRC(49cfed23) SHA1(63fa8682b86802967b36489c7483c59039f35aa5) )
+ROM_END
+
+ROM_START( kof99ae20140408 ) // latest date on the roms
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251aend.p1", 0x000000, 0x100000, CRC(8913d6e4) SHA1(2cd0d9db1b521f123c20105dc95d3319e39c60ce) )
+ ROM_LOAD16_WORD_SWAP( "251aend.p2", 0x100000, 0x400000, CRC(9c458ee5) SHA1(c2bd37c6d53e2119724160c9626e38f7138f6c8b) )
+ ROM_LOAD16_WORD_SWAP( "251aend.p3", 0x500000, 0x400000, CRC(64979453) SHA1(730ad832959cc9eab8fb30fd1266f4ed8902ae03) )
+
+ NEO_SFIX_128K( "251ae.s1", CRC(6243a70b) SHA1(452371f20e31c4d79022a128fc5335e951a6af1e) )
+
+ NEO_BIOS_AUDIO_128K( "251ae.m1", CRC(f847e188) SHA1(0b98595a457292b04f518afcc82c2d6b8f249a7b) )
+
+ ROM_REGION( 0xe00000, "ymsnd", 0 )
+ ROM_LOAD( "251ae.v1", 0x000000, 0x400000, CRC(4ae46226) SHA1(77dbd53772e1e5000a091b9ff4b3cdc14b62ab0b) )
+ ROM_LOAD( "251ae.v2", 0x400000, 0x400000, CRC(07d70650) SHA1(70d274771c07215268292f91517ec61634e32611) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x6000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251aex.c1.bin", 0x000000, 0x800000, CRC(497c2e83) SHA1(379887e839dd4e33b41ab634a54789621bdfea98) )
+ ROM_LOAD16_BYTE( "251aex.c2.bin", 0x000001, 0x800000, CRC(0a13eeb7) SHA1(2cb196a955a3472f922d0085cee2ddc0111fdbd3) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251ae.c7", 0x3000000, 0x800000, CRC(f22760ad) SHA1(a503898d9b6141c76f63b7c505ac78d3575530b2) )
+ ROM_LOAD16_BYTE( "251ae.c8", 0x3000001, 0x800000, CRC(396c3a70) SHA1(6cd0acd05c138ac85ad63a04dfc015a3e70fa572) )
+ ROM_LOAD16_BYTE( "251aend.c9", 0x4000000, 0x800000, CRC(0b7a7f25) SHA1(1582f85ce96b74b361565408cccf35815267ac52) )
+ ROM_LOAD16_BYTE( "251aend.c10", 0x4000001, 0x800000, CRC(4b840d63) SHA1(4cb4c5cb34aef6f1e188f08984e870a50b41b9f2) )
+ ROM_LOAD16_BYTE( "251ae.c11", 0x5000000, 0x800000, CRC(90016920) SHA1(6686e98a25d906131f73ed83c712096a6946c62e) )
+ ROM_LOAD16_BYTE( "251ae.c12", 0x5000001, 0x800000, CRC(49cfed23) SHA1(63fa8682b86802967b36489c7483c59039f35aa5) )
+ROM_END
+
+ROM_START( kof99ae20140624 ) /* The King of Fighters '99 - Anniversary Edition */
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251aenf.p1", 0x000000, 0x100000, CRC(924122bc) SHA1(5240c2317e79ee27abcdb484800c569e78a1172f) )
+ ROM_LOAD16_WORD_SWAP( "251aenf.p2", 0x100000, 0x400000, CRC(6ba36969) SHA1(18cb69260f5592a4279f07bfd0d3af2f3e7ff288) )
+ ROM_LOAD16_WORD_SWAP( "251aenf.p3", 0x500000, 0x400000, CRC(99697d6e) SHA1(c505afdfb7ea506c30d2d581d166f49f7fd7c88c) )
+
+ NEO_BIOS_AUDIO_128K( "251ae.m1", CRC(f847e188) SHA1(0b98595a457292b04f518afcc82c2d6b8f249a7b) )
+
+ NEO_SFIX_128K( "251aenf.s1", CRC(18c1562d) SHA1(afeaa541998a3c23a0ecb87da0231370f08213f2) )
+
+ ROM_REGION( 0xe00000, "ymsnd", 0 )
+ ROM_LOAD( "251ae.v1", 0x000000, 0x400000, CRC(4ae46226) SHA1(77dbd53772e1e5000a091b9ff4b3cdc14b62ab0b) )
+ ROM_LOAD( "251ae.v2", 0x400000, 0x400000, CRC(07d70650) SHA1(70d274771c07215268292f91517ec61634e32611) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x6000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251aex.c1.bin", 0x000000, 0x800000, CRC(497c2e83) SHA1(379887e839dd4e33b41ab634a54789621bdfea98) )
+ ROM_LOAD16_BYTE( "251aex.c2.bin", 0x000001, 0x800000, CRC(0a13eeb7) SHA1(2cb196a955a3472f922d0085cee2ddc0111fdbd3) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251ae.c7", 0x3000000, 0x800000, CRC(f22760ad) SHA1(a503898d9b6141c76f63b7c505ac78d3575530b2) )
+ ROM_LOAD16_BYTE( "251ae.c8", 0x3000001, 0x800000, CRC(396c3a70) SHA1(6cd0acd05c138ac85ad63a04dfc015a3e70fa572) )
+ ROM_LOAD16_BYTE( "251aenf.c9", 0x4000000, 0x800000, CRC(53d028c0) SHA1(be59fc381e3b9c3bc42a5ca691b3dfa05e1f2b1c) )
+ ROM_LOAD16_BYTE( "251aenf.c10", 0x4000001, 0x800000, CRC(707ce1a7) SHA1(afc41c9ee37eca8f2a77b2b40a120bb01d8eb4bd) )
+ ROM_LOAD16_BYTE( "251ae.c11", 0x5000000, 0x800000, CRC(90016920) SHA1(6686e98a25d906131f73ed83c712096a6946c62e) )
+ ROM_LOAD16_BYTE( "251ae.c12", 0x5000001, 0x800000, CRC(49cfed23) SHA1(63fa8682b86802967b36489c7483c59039f35aa5) )
+ROM_END
+
+ROM_START( kof99ae20150121 ) /* The King of Fighters '99 - Anniversary Edition */
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251aeoa.p1", 0x000000, 0x100000, CRC(110a01b4) SHA1(df16c7c0e79717d939f594e80469a525eed62b07) )
+ ROM_LOAD16_WORD_SWAP( "251aeoa.p2", 0x100000, 0x400000, CRC(0f8e548a) SHA1(f195d02793f3f139975bc8789ec288438622abdb) )
+ ROM_LOAD16_WORD_SWAP( "251aeoa.p3", 0x500000, 0x400000, CRC(84280fed) SHA1(06f8afac0dcaff5b9ec7d5fd36a88760f329c482) )
+
+ NEO_BIOS_AUDIO_128K( "251ae.m1", CRC(f847e188) SHA1(0b98595a457292b04f518afcc82c2d6b8f249a7b) )
+
+ NEO_SFIX_128K( "251aenf.s1", CRC(18c1562d) SHA1(afeaa541998a3c23a0ecb87da0231370f08213f2) )
+
+ ROM_REGION( 0xe00000, "ymsnd", 0 )
+ ROM_LOAD( "251aex.v1", 0x000000, 0x400000, CRC(ceaa3bae) SHA1(ec598f92e7d3b41f38448fee2dd2ee599a482f8f) )
+ ROM_LOAD( "251ae.v2", 0x400000, 0x400000, CRC(07d70650) SHA1(70d274771c07215268292f91517ec61634e32611) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x6000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251aex.c1.bin", 0x000000, 0x800000, CRC(497c2e83) SHA1(379887e839dd4e33b41ab634a54789621bdfea98) )
+ ROM_LOAD16_BYTE( "251aex.c2.bin", 0x000001, 0x800000, CRC(0a13eeb7) SHA1(2cb196a955a3472f922d0085cee2ddc0111fdbd3) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251ae.c7", 0x3000000, 0x800000, CRC(f22760ad) SHA1(a503898d9b6141c76f63b7c505ac78d3575530b2) )
+ ROM_LOAD16_BYTE( "251ae.c8", 0x3000001, 0x800000, CRC(396c3a70) SHA1(6cd0acd05c138ac85ad63a04dfc015a3e70fa572) )
+ ROM_LOAD16_BYTE( "251aeoa.c9", 0x4000000, 0x800000, CRC(cd0911ba) SHA1(01a2e644532bc483ce8ee2f9ea7cba2fa7492cd1) )
+ ROM_LOAD16_BYTE( "251aeoa.c10", 0x4000001, 0x800000, CRC(a910b5bb) SHA1(976686caec9727fd0e028bd7007806d2962af2cd) )
+ ROM_LOAD16_BYTE( "251aex.c11", 0x5000000, 0x800000, CRC(7fe785c2) SHA1(b49c3ab1ebf89090388c4757f24d1c02c730cc99) )
+ ROM_LOAD16_BYTE( "251aex.c12", 0x5000001, 0x800000, CRC(a7541483) SHA1(3b3f0e67acfae1c3b6c5549ac350d855482f285f) )
+ROM_END
+
+ROM_START( kof99ae20150520 ) /* The King of Fighters '99 - Anniversary Edition */
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251aeoe.p1", 0x000000, 0x100000, CRC(149bd289) SHA1(c1818ce416c7036b8cc51d6ec752b2a612b7d2b1) )
+ ROM_LOAD16_WORD_SWAP( "251aeoe.p2", 0x100000, 0x400000, CRC(86658d87) SHA1(d3d8a2f596b145a1bc98d65fcf3715d86b7a6dd6) )
+ ROM_LOAD16_WORD_SWAP( "251aeoe.p3", 0x500000, 0x400000, CRC(e66a79c0) SHA1(a13bf66ceb15a4d42855c539a658427845c7d148) )
+
+ NEO_BIOS_AUDIO_128K( "251ae.m1", CRC(f847e188) SHA1(0b98595a457292b04f518afcc82c2d6b8f249a7b) )
+
+ NEO_SFIX_128K( "251aex.s1", CRC(3c31ee43) SHA1(f3bf265ad41037c2317702818136eb08e3ade3a2) )
+
+ ROM_REGION( 0xe00000, "ymsnd", 0 )
+ ROM_LOAD( "251aex.v1", 0x000000, 0x400000, CRC(ceaa3bae) SHA1(ec598f92e7d3b41f38448fee2dd2ee599a482f8f) )
+ ROM_LOAD( "251ae.v2", 0x400000, 0x400000, CRC(07d70650) SHA1(70d274771c07215268292f91517ec61634e32611) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x6000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251aex.c1.bin", 0x000000, 0x800000, CRC(497c2e83) SHA1(379887e839dd4e33b41ab634a54789621bdfea98) )
+ ROM_LOAD16_BYTE( "251aex.c2.bin", 0x000001, 0x800000, CRC(0a13eeb7) SHA1(2cb196a955a3472f922d0085cee2ddc0111fdbd3) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251ae.c7", 0x3000000, 0x800000, CRC(f22760ad) SHA1(a503898d9b6141c76f63b7c505ac78d3575530b2) )
+ ROM_LOAD16_BYTE( "251ae.c8", 0x3000001, 0x800000, CRC(396c3a70) SHA1(6cd0acd05c138ac85ad63a04dfc015a3e70fa572) )
+ ROM_LOAD16_BYTE( "251aex.c9", 0x4000000, 0x800000, CRC(f33d51d5) SHA1(b7d95afc0e85fec3c3279a766e22227cce91f3f4) )
+ ROM_LOAD16_BYTE( "251aex.c10", 0x4000001, 0x800000, CRC(852770d7) SHA1(734520728d7e8162021fd1cc93f2fe2f8bd02e75) )
+ ROM_LOAD16_BYTE( "251aex.c11", 0x5000000, 0x800000, CRC(7fe785c2) SHA1(b49c3ab1ebf89090388c4757f24d1c02c730cc99) )
+ ROM_LOAD16_BYTE( "251aex.c12", 0x5000001, 0x800000, CRC(a7541483) SHA1(3b3f0e67acfae1c3b6c5549ac350d855482f285f) )
+ROM_END
+
+ROM_START( kof99ae20150711 ) /* The King of Fighters '99 - Anniversary Edition */
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251aeog.p1", 0x000000, 0x100000, CRC(78057e71) SHA1(f027654620c2490ef834713265deec1ada542e9b) )
+ ROM_LOAD16_WORD_SWAP( "251aeog.p2", 0x100000, 0x800000, CRC(b7e50e35) SHA1(9706fe6bce816d75893ee8882eb4e9cd0590daac) )
+
+ NEO_BIOS_AUDIO_128K( "251ae.m1", CRC(f847e188) SHA1(0b98595a457292b04f518afcc82c2d6b8f249a7b) )
+
+ NEO_SFIX_128K( "251aex.s1", CRC(3c31ee43) SHA1(f3bf265ad41037c2317702818136eb08e3ade3a2) )
+
+ ROM_REGION( 0xe00000, "ymsnd", 0 )
+ ROM_LOAD( "251aex.v1", 0x000000, 0x400000, CRC(ceaa3bae) SHA1(ec598f92e7d3b41f38448fee2dd2ee599a482f8f) )
+ ROM_LOAD( "251ae.v2", 0x400000, 0x400000, CRC(07d70650) SHA1(70d274771c07215268292f91517ec61634e32611) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x6000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251aex.c1.bin", 0x000000, 0x800000, CRC(497c2e83) SHA1(379887e839dd4e33b41ab634a54789621bdfea98) )
+ ROM_LOAD16_BYTE( "251aex.c2.bin", 0x000001, 0x800000, CRC(0a13eeb7) SHA1(2cb196a955a3472f922d0085cee2ddc0111fdbd3) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251ae.c7", 0x3000000, 0x800000, CRC(f22760ad) SHA1(a503898d9b6141c76f63b7c505ac78d3575530b2) )
+ ROM_LOAD16_BYTE( "251ae.c8", 0x3000001, 0x800000, CRC(396c3a70) SHA1(6cd0acd05c138ac85ad63a04dfc015a3e70fa572) )
+ ROM_LOAD16_BYTE( "251aeog.c9", 0x4000000, 0x800000, CRC(86a3550d) SHA1(ec74bcadb315a004297dc9e02c72efe5f2e2c5b0) )
+ ROM_LOAD16_BYTE( "251aeog.c10", 0x4000001, 0x800000, CRC(986bb897) SHA1(14572621122e97c3ae96a3b85069b9cde062ef19) )
+ ROM_LOAD16_BYTE( "251aex.c11", 0x5000000, 0x800000, CRC(7fe785c2) SHA1(b49c3ab1ebf89090388c4757f24d1c02c730cc99) )
+ ROM_LOAD16_BYTE( "251aex.c12", 0x5000001, 0x800000, CRC(a7541483) SHA1(3b3f0e67acfae1c3b6c5549ac350d855482f285f) )
+ROM_END
+
+ROM_START( kof99ae20160411 ) // all confirmed
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251aepc.p1", 0x000000, 0x100000, CRC(5cbb24fd) SHA1(082bdbce405138ef08ccb274d48de2272494b62a) )
+ ROM_LOAD16_WORD_SWAP( "251aepc.p2", 0x100000, 0x800000, CRC(55418995) SHA1(419258fc68ae35cde605cc3f89ff05d426299d27) )
+
+ NEO_BIOS_AUDIO_128K( "251ae.m1", CRC(f847e188) SHA1(0b98595a457292b04f518afcc82c2d6b8f249a7b) )
+
+ NEO_SFIX_128K( "251aex.s1", CRC(3c31ee43) SHA1(f3bf265ad41037c2317702818136eb08e3ade3a2) )
+
+ ROM_REGION( 0xe00000, "ymsnd", 0 )
+ ROM_LOAD( "251aex.v1", 0x000000, 0x400000, CRC(ceaa3bae) SHA1(ec598f92e7d3b41f38448fee2dd2ee599a482f8f) )
+ ROM_LOAD( "251ae.v2", 0x400000, 0x400000, CRC(07d70650) SHA1(70d274771c07215268292f91517ec61634e32611) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x6000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251aex.c1.bin", 0x000000, 0x800000, CRC(497c2e83) SHA1(379887e839dd4e33b41ab634a54789621bdfea98) )
+ ROM_LOAD16_BYTE( "251aex.c2.bin", 0x000001, 0x800000, CRC(0a13eeb7) SHA1(2cb196a955a3472f922d0085cee2ddc0111fdbd3) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251ae.c7", 0x3000000, 0x800000, CRC(f22760ad) SHA1(a503898d9b6141c76f63b7c505ac78d3575530b2) )
+ ROM_LOAD16_BYTE( "251ae.c8", 0x3000001, 0x800000, CRC(396c3a70) SHA1(6cd0acd05c138ac85ad63a04dfc015a3e70fa572) )
+ ROM_LOAD16_BYTE( "251aeog.c9", 0x4000000, 0x800000, CRC(86a3550d) SHA1(ec74bcadb315a004297dc9e02c72efe5f2e2c5b0) )
+ ROM_LOAD16_BYTE( "251aeog.c10", 0x4000001, 0x800000, CRC(986bb897) SHA1(14572621122e97c3ae96a3b85069b9cde062ef19) )
+ ROM_LOAD16_BYTE( "251aex.c11", 0x5000000, 0x800000, CRC(7fe785c2) SHA1(b49c3ab1ebf89090388c4757f24d1c02c730cc99) )
+ ROM_LOAD16_BYTE( "251aex.c12", 0x5000001, 0x800000, CRC(a7541483) SHA1(3b3f0e67acfae1c3b6c5549ac350d855482f285f) )
+ROM_END
+
+ROM_START( kof99ae20160419 ) // all confirmed
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251aepd.p1", 0x000000, 0x100000, CRC(c19447eb) SHA1(45c25eaaf1a03a5756e2df4a54abf2f7ebfab45a) )
+ ROM_LOAD16_WORD_SWAP( "251aepc.p2", 0x100000, 0x800000, CRC(55418995) SHA1(419258fc68ae35cde605cc3f89ff05d426299d27) )
+
+ NEO_BIOS_AUDIO_128K( "251ae.m1", CRC(f847e188) SHA1(0b98595a457292b04f518afcc82c2d6b8f249a7b) )
+
+ NEO_SFIX_128K( "251aex.s1", CRC(3c31ee43) SHA1(f3bf265ad41037c2317702818136eb08e3ade3a2) )
+
+ ROM_REGION( 0xe00000, "ymsnd", 0 )
+ ROM_LOAD( "251aex.v1", 0x000000, 0x400000, CRC(ceaa3bae) SHA1(ec598f92e7d3b41f38448fee2dd2ee599a482f8f) )
+ ROM_LOAD( "251ae.v2", 0x400000, 0x400000, CRC(07d70650) SHA1(70d274771c07215268292f91517ec61634e32611) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x6000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251aex.c1.bin", 0x000000, 0x800000, CRC(497c2e83) SHA1(379887e839dd4e33b41ab634a54789621bdfea98) )
+ ROM_LOAD16_BYTE( "251aex.c2.bin", 0x000001, 0x800000, CRC(0a13eeb7) SHA1(2cb196a955a3472f922d0085cee2ddc0111fdbd3) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251ae.c7", 0x3000000, 0x800000, CRC(f22760ad) SHA1(a503898d9b6141c76f63b7c505ac78d3575530b2) )
+ ROM_LOAD16_BYTE( "251ae.c8", 0x3000001, 0x800000, CRC(396c3a70) SHA1(6cd0acd05c138ac85ad63a04dfc015a3e70fa572) )
+ ROM_LOAD16_BYTE( "251aeog.c9", 0x4000000, 0x800000, CRC(86a3550d) SHA1(ec74bcadb315a004297dc9e02c72efe5f2e2c5b0) )
+ ROM_LOAD16_BYTE( "251aeog.c10", 0x4000001, 0x800000, CRC(986bb897) SHA1(14572621122e97c3ae96a3b85069b9cde062ef19) )
+ ROM_LOAD16_BYTE( "251aex.c11", 0x5000000, 0x800000, CRC(7fe785c2) SHA1(b49c3ab1ebf89090388c4757f24d1c02c730cc99) )
+ ROM_LOAD16_BYTE( "251aex.c12", 0x5000001, 0x800000, CRC(a7541483) SHA1(3b3f0e67acfae1c3b6c5549ac350d855482f285f) )
+ROM_END
+
+ROM_START( kof99aes ) // all confirmed
+ ROM_REGION( 0xd00000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251aes.p1", 0x000000, 0x100000, CRC(5dfe36ed) SHA1(d27a2abf3aa7e8a87faf55ff15e4b87905fa0061) )
+ ROM_LOAD16_WORD_SWAP( "251aepc.p2", 0x100000, 0x800000, CRC(55418995) SHA1(419258fc68ae35cde605cc3f89ff05d426299d27) )
+ ROM_LOAD16_WORD_SWAP( "251aes.p3", 0x900000, 0x400000, CRC(de66edce) SHA1(57d773552cfd22e6d301aa5350dd4d049ef247ac) )
+
+ NEO_BIOS_AUDIO_128K( "251ae.m1", CRC(f847e188) SHA1(0b98595a457292b04f518afcc82c2d6b8f249a7b) )
+
+ NEO_SFIX_128K( "251aex.s1", CRC(3c31ee43) SHA1(f3bf265ad41037c2317702818136eb08e3ade3a2) )
+
+ ROM_REGION( 0xe00000, "ymsnd", 0 )
+ ROM_LOAD( "251aex.v1", 0x000000, 0x400000, CRC(ceaa3bae) SHA1(ec598f92e7d3b41f38448fee2dd2ee599a482f8f) )
+ ROM_LOAD( "251ae.v2", 0x400000, 0x400000, CRC(07d70650) SHA1(70d274771c07215268292f91517ec61634e32611) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x6000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251aex.c1.bin", 0x000000, 0x800000, CRC(497c2e83) SHA1(379887e839dd4e33b41ab634a54789621bdfea98) )
+ ROM_LOAD16_BYTE( "251aex.c2.bin", 0x000001, 0x800000, CRC(0a13eeb7) SHA1(2cb196a955a3472f922d0085cee2ddc0111fdbd3) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251ae.c7", 0x3000000, 0x800000, CRC(f22760ad) SHA1(a503898d9b6141c76f63b7c505ac78d3575530b2) )
+ ROM_LOAD16_BYTE( "251ae.c8", 0x3000001, 0x800000, CRC(396c3a70) SHA1(6cd0acd05c138ac85ad63a04dfc015a3e70fa572) )
+ ROM_LOAD16_BYTE( "251aeog.c9", 0x4000000, 0x800000, CRC(86a3550d) SHA1(ec74bcadb315a004297dc9e02c72efe5f2e2c5b0) )
+ ROM_LOAD16_BYTE( "251aeog.c10", 0x4000001, 0x800000, CRC(986bb897) SHA1(14572621122e97c3ae96a3b85069b9cde062ef19) )
+ ROM_LOAD16_BYTE( "251aex.c11", 0x5000000, 0x800000, CRC(7fe785c2) SHA1(b49c3ab1ebf89090388c4757f24d1c02c730cc99) )
+ ROM_LOAD16_BYTE( "251aex.c12", 0x5000001, 0x800000, CRC(a7541483) SHA1(3b3f0e67acfae1c3b6c5549ac350d855482f285f) )
+ROM_END
+
+ROM_START( kof99bh ) /* The King of Fighters '99 - Hack by Dodowang - (Can choose Krizalid and Krizalid' - have icons in character select menu) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251ndh.p1", 0x000000, 0x100000, CRC(eedcc5bd) SHA1(8280c4329d666b4831c766853f5334355dc40cc9) )
+ ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) )
+
+ NEO_SFIX_128K( "251bh.s1", CRC(b696a8c9) SHA1(3388feab11374a6eca6f1615fdfd93464f86dcee) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99bhp2 ) // multijet
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251bhp2.p1", 0x000000, 0x100000, CRC(a4deff9a) SHA1(a445cd48bc0a8b386cd232bcc5b0d82c9d757c6d) )
+ ROM_LOAD16_WORD_SWAP( "251bhp2.p2", 0x100000, 0x400000, CRC(23339a53) SHA1(e76564ae5464abf06235f813b70b38c492c2f7dc) )
+
+ NEO_SFIX_128K( "251pb.s1", CRC(0b3d79d3) SHA1(2647c617c52d9955ee29520c416b59febfe7c0db) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) )
+ ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251bhp2.c7", 0x3000000, 0x800000, CRC(a0fb0a24) SHA1(89b01efb4b5352efd3e1483e424e319d5a1f1451) )
+ ROM_LOAD16_BYTE( "251bhp2.c8", 0x3000001, 0x800000, CRC(fbc1112c) SHA1(3f3789b8bbc335a4f9b66fc66a350767ec7bc32c) )
+ROM_END
+
+ROM_START( kof99bhs )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251bhs.p1", 0x000000, 0x100000, CRC(c2d1b2fc) SHA1(016f168e5d657abbfb1b81389b1b1613a225d1ad) )
+ ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) )
+
+ NEO_SFIX_128K( "251bh.s1", CRC(b696a8c9) SHA1(3388feab11374a6eca6f1615fdfd93464f86dcee) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) )
+ ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251d.c7", 0x3000000, 0x800000, CRC(2f68fdeb) SHA1(37167c84a39141c179f94800f207dac3aabc5478) )
+ ROM_LOAD16_BYTE( "251d.c8", 0x3000001, 0x800000, CRC(4c2fad1e) SHA1(26779e79296eb1988a8c4d60d2e1baf041f2c0cf) )
+ROM_END
+
+ROM_START( kof99bs )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251bs.p1", 0x000000, 0x100000, CRC(43ce0028) SHA1(7f6ee38c5eb89410f56907f66e6c45f38384da2c) )
+ ROM_LOAD16_WORD_SWAP( "251bs.p2", 0x100000, 0x400000, CRC(e20677c4) SHA1(3ada6a734a5ec274f96b012146ca3416b66b6865) )
+
+ NEO_SFIX_128K( "251bs.s1", CRC(697c1f85) SHA1(117d12908b060db62716a8ac8a155c8303287746) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251bs.c1", 0x0000000, 0x800000, CRC(a472f1db) SHA1(f941f39e95da3a866e5b05e61fffabe7731bdfcf) )
+ ROM_LOAD16_BYTE( "251bs.c2", 0x0000001, 0x800000, CRC(11037779) SHA1(93a9c5031844aa8a13e758283621bf32cf41bb5b) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251bs.c7", 0x3000000, 0x800000, CRC(165607a2) SHA1(7899a0cff743a942fa3af7def57dac6684e76231) )
+ ROM_LOAD16_BYTE( "251bs.c8", 0x3000001, 0x800000, CRC(720c9304) SHA1(ecd5813bd0ab8df55191b21c9f425176945726c3) )
+ROM_END
+
+ROM_START( kof99bs2 ) // multijet
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251bs2.p1", 0x000000, 0x100000, CRC(3adcedbb) SHA1(ce21a4d981354303031fee17e8db9f9961ebe5c9) )
+ ROM_LOAD16_WORD_SWAP( "251bs2.p2", 0x100000, 0x400000, CRC(62b11826) SHA1(13113692b43c3d1b5c8572d2024777e6a1a15e2b) )
+
+ NEO_SFIX_128K( "251bs.s1", CRC(697c1f85) SHA1(117d12908b060db62716a8ac8a155c8303287746) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251bs2.c1", 0x0000000, 0x800000, CRC(598cc558) SHA1(451d3f9fadb1810e383057591c46b736b6f595cb) )
+ ROM_LOAD16_BYTE( "251bs2.c2", 0x0000001, 0x800000, CRC(5b4c297b) SHA1(147342a115b0237d1cb55eceae093a7ee4a3c438) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251bs2.c7", 0x3000000, 0x800000, CRC(3ac342ad) SHA1(325d0c407129a2cbf30c52e5317bbeb8fc056448) )
+ ROM_LOAD16_BYTE( "251bs2.c8", 0x3000001, 0x800000, CRC(500aea52) SHA1(a0c03d1c27c0f5013aff713b53e4e61bc76ff748) )
+ROM_END
+
+ROM_START( kof99ch ) /* The King of Fighters '99 - Remix by Chase - (Character move change) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251ch.p1", 0x000000, 0x100000, CRC(6efd349b) SHA1(f876df9137801125b8f142102d4165295607ba02) )
+ ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99chf ) /* The King of Fighters '99 - Remix by Chase - (Character move change - fixed) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251chf.p1", 0x000000, 0x100000, CRC(34387e01) SHA1(cc56d936d931d793a7d02dddf4a4521ed09e1e52) )
+ ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99co ) // combo
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251co.p1", 0x000000, 0x100000, CRC(99242c0c) SHA1(11d9d52783e4958a53f12469a75a784846d7ba49) )
+ ROM_LOAD16_WORD_SWAP( "251co.p2", 0x100000, 0x400000, CRC(c3ddba7b) SHA1(1890a3cbf33b76d532b4d31eb602698dbff840ea) )
+
+ NEO_SFIX_128K( "251co.s1", CRC(6c36e84f) SHA1(80052ce8e9f09c4e2f7edf5c6423f3b5588eb33b) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) )
+ ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251d.c7", 0x3000000, 0x800000, CRC(2f68fdeb) SHA1(37167c84a39141c179f94800f207dac3aabc5478) )
+ ROM_LOAD16_BYTE( "251d.c8", 0x3000001, 0x800000, CRC(4c2fad1e) SHA1(26779e79296eb1988a8c4d60d2e1baf041f2c0cf) )
+ROM_END
+
+ROM_START( kof99co2 ) // combo
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251co2.p1", 0x000000, 0x100000, CRC(857276bd) SHA1(722ab77fea24a0db8691e64c4c3ed098d1dc5360) )
+ ROM_LOAD16_WORD_SWAP( "251co2.p2", 0x100000, 0x400000, CRC(c79df28d) SHA1(352edc22d5b5ecb84748cb703135de5c2a7a0032) )
+
+ NEO_SFIX_128K( "251co2.s1", CRC(10b87e35) SHA1(f466e9b3ecc7b14cde42a767c3fac73a9eed282b) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) )
+ ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251d.c7", 0x3000000, 0x800000, CRC(2f68fdeb) SHA1(37167c84a39141c179f94800f207dac3aabc5478) )
+ ROM_LOAD16_BYTE( "251d.c8", 0x3000001, 0x800000, CRC(4c2fad1e) SHA1(26779e79296eb1988a8c4d60d2e1baf041f2c0cf) )
+ROM_END
+
+ROM_START( kof99d )
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "kc.neo-sma", 0x0c0000, 0x040000, CRC(6c9d0647) SHA1(2a0ce62ca6c18007e8fbe1b60475c7874ab79389) )
+ ROM_LOAD16_WORD_SWAP( "251-p1.p1", 0x100000, 0x400000, CRC(006e4532) SHA1(47791ab4044ad55988b1d3412d95b65b91a163c8) )
+ ROM_LOAD16_WORD_SWAP( "251-pg2.p2", 0x500000, 0x400000, CRC(d9057f51) SHA1(8d365b4dd40351495df99d6c765df1434b0b0548) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) )
+ ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251d.c7", 0x3000000, 0x800000, CRC(2f68fdeb) SHA1(37167c84a39141c179f94800f207dac3aabc5478) )
+ ROM_LOAD16_BYTE( "251d.c8", 0x3000001, 0x800000, CRC(4c2fad1e) SHA1(26779e79296eb1988a8c4d60d2e1baf041f2c0cf) )
+ROM_END
+
+ROM_START( kof99eh ) /* The King of Fighters '99 - Enhance by Ydmis - (Can choose Krizalid, Krizalid', Kyo and Iori - ultra kill start is max) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251eh.p1", 0x000000, 0x100000, CRC(93f05c57) SHA1(e92e18e0572ae313952b2416c76d06c86202f755) )
+ ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99ehr ) /* The King of Fighters '99 - Remix by Raymonose - (Can choose Krizalid, Krizalid', Kyo and Iori - ultra kill start is max - ultra power hack) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251ehr.p1", 0x000000, 0x100000, CRC(08dfc6cb) SHA1(5f3fed5e1c598c580aa33b66aeb92d5d95d2b2e6) )
+ ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99eur )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251eur.p1", 0x000000, 0x100000, CRC(66fa20fd) SHA1(6fbda6db41558e4d7a073c7d5fc568f7cc57df2d) )
+ ROM_LOAD16_WORD_SWAP( "251eur.p2", 0x100000, 0x400000, CRC(aec93904) SHA1(9270e1a920c6f99dc2b716fc1d3536ce7783cd74) )
+
+ NEO_SFIX_128K( "251eur.s1", CRC(a6747969) SHA1(6577c00aceb0d612819c703b3334ebb6c760e126) )
+
+ NEO_BIOS_AUDIO_128K( "251ae.m1", CRC(f847e188) SHA1(0b98595a457292b04f518afcc82c2d6b8f249a7b) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251ae.v1", 0x000000, 0x400000, CRC(4ae46226) SHA1(77dbd53772e1e5000a091b9ff4b3cdc14b62ab0b) )
+ ROM_LOAD( "251ae.v2", 0x400000, 0x400000, CRC(07d70650) SHA1(70d274771c07215268292f91517ec61634e32611) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251eur.c1", 0x0000000, 0x800000, CRC(c7e8bf32) SHA1(ede68ac10356f6824fa6b30e558038e78b604caf) )
+ ROM_LOAD16_BYTE( "251eur.c2", 0x0000001, 0x800000, CRC(4e8f9f7d) SHA1(3a60df66bb24702041facb71025241483e5a1832) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251eur.c7", 0x3000000, 0x800000, CRC(f0b5ff02) SHA1(b9a25e6dad48547acce8edb5623be9d35bff1b4c) )
+ ROM_LOAD16_BYTE( "251eur.c8", 0x3000001, 0x800000, CRC(7107b8d5) SHA1(6754113de3eb6a34c1913bb5117dd12d705b961c) )
+ROM_END
+
+ROM_START( kof99eur1 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251eur1.p1", 0x000000, 0x100000, CRC(a10ddd49) SHA1(0d524db74f414d2ac5694b9f0fd8a39e1bc41322) )
+ ROM_LOAD16_WORD_SWAP( "251eur1.p2", 0x100000, 0x400000, CRC(cbb73011) SHA1(984a0581a146bde46834ea3672c6003c5eb4539a) )
+
+ NEO_SFIX_128K( "251eur1.s1", CRC(f0c559ea) SHA1(43f7409fa56a851e621d42d76c7be440427c6ad3) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251eur.c1", 0x0000000, 0x800000, CRC(c7e8bf32) SHA1(ede68ac10356f6824fa6b30e558038e78b604caf) )
+ ROM_LOAD16_BYTE( "251eur.c2", 0x0000001, 0x800000, CRC(4e8f9f7d) SHA1(3a60df66bb24702041facb71025241483e5a1832) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251eur1.c7", 0x3000000, 0x800000, CRC(295e8e9c) SHA1(26c6df1ec94b0c524b2477223b645dc797e1e198) )
+ ROM_LOAD16_BYTE( "251eur1.c8", 0x3000001, 0x800000, CRC(638614a6) SHA1(8a9d8fee7272e13eb500faefc5125ed0844acf07) )
+ROM_END
+
+ROM_START( kof99eur2 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251eur2.p1", 0x000000, 0x100000, CRC(df07d4f6) SHA1(b14c6449bffcb3b6719408e5ea48a18b43536f64) )
+ ROM_LOAD16_WORD_SWAP( "251eur2.p2", 0x100000, 0x400000, CRC(4b6fdd2b) SHA1(2321c4e0f8da21fc47b3db782c50598810ebae9a) )
+
+ NEO_SFIX_128K( "251sr.s1", CRC(08055c7a) SHA1(682e0084e62b547482929babe828027fdd64cde0) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251eur.c1", 0x0000000, 0x800000, CRC(c7e8bf32) SHA1(ede68ac10356f6824fa6b30e558038e78b604caf) )
+ ROM_LOAD16_BYTE( "251eur.c2", 0x0000001, 0x800000, CRC(4e8f9f7d) SHA1(3a60df66bb24702041facb71025241483e5a1832) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251eur2.c7", 0x3000000, 0x800000, CRC(52da5196) SHA1(956fc48d62f397c45b576f08003c1360ecd7f9ed) )
+ ROM_LOAD16_BYTE( "251eur2.c8", 0x3000001, 0x800000, CRC(f5276981) SHA1(0a70429be7a8488f73b4f2d071ccfe9c24c9cdb4) )
+ROM_END
+
+ROM_START( kof99eur3 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251eur3.p1", 0x000000, 0x100000, CRC(31ebbcd6) SHA1(236dc2b5b53bbde0e0fb3fe5101341dd1ffee1cd) )
+ ROM_LOAD16_WORD_SWAP( "251eur3.p2", 0x100000, 0x400000, CRC(b777285d) SHA1(ed613324ded46983dd3a40bd3f00c34b37166c31) )
+
+ NEO_SFIX_128K( "251eur.s1", CRC(a6747969) SHA1(6577c00aceb0d612819c703b3334ebb6c760e126) )
+
+ NEO_BIOS_AUDIO_128K( "251ae.m1", CRC(f847e188) SHA1(0b98595a457292b04f518afcc82c2d6b8f249a7b) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251ae.v1", 0x000000, 0x400000, CRC(4ae46226) SHA1(77dbd53772e1e5000a091b9ff4b3cdc14b62ab0b) )
+ ROM_LOAD( "251ae.v2", 0x400000, 0x400000, CRC(07d70650) SHA1(70d274771c07215268292f91517ec61634e32611) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251eur.c1", 0x0000000, 0x800000, CRC(c7e8bf32) SHA1(ede68ac10356f6824fa6b30e558038e78b604caf) )
+ ROM_LOAD16_BYTE( "251eur.c2", 0x0000001, 0x800000, CRC(4e8f9f7d) SHA1(3a60df66bb24702041facb71025241483e5a1832) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251eur.c7", 0x3000000, 0x800000, CRC(f0b5ff02) SHA1(b9a25e6dad48547acce8edb5623be9d35bff1b4c) )
+ ROM_LOAD16_BYTE( "251eur.c8", 0x3000001, 0x800000, CRC(7107b8d5) SHA1(6754113de3eb6a34c1913bb5117dd12d705b961c) )
+ROM_END
+
+ROM_START( kof99eur4 ) // multijet kof99eur
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251eur4.p1", 0x000000, 0x100000, CRC(327b963c) SHA1(c6a61f2d1ab7339d6b56d5f88575c4d8e1b8f261) )
+ ROM_LOAD16_WORD_SWAP( "251eur4.p2", 0x100000, 0x400000, CRC(09d34c25) SHA1(40de394d28b86b63382226cc8943e06740d0eaf5) )
+
+ NEO_SFIX_128K( "251eur1.s1", CRC(f0c559ea) SHA1(43f7409fa56a851e621d42d76c7be440427c6ad3) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251eur.c1", 0x0000000, 0x800000, CRC(c7e8bf32) SHA1(ede68ac10356f6824fa6b30e558038e78b604caf) )
+ ROM_LOAD16_BYTE( "251eur.c2", 0x0000001, 0x800000, CRC(4e8f9f7d) SHA1(3a60df66bb24702041facb71025241483e5a1832) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251eur2.c7", 0x3000000, 0x800000, CRC(52da5196) SHA1(956fc48d62f397c45b576f08003c1360ecd7f9ed) )
+ ROM_LOAD16_BYTE( "251eur2.c8", 0x3000001, 0x800000, CRC(f5276981) SHA1(0a70429be7a8488f73b4f2d071ccfe9c24c9cdb4) )
+ROM_END
+
+ROM_START( kof99ev2 ) // multijet
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251ev2.p1", 0x000000, 0x100000, CRC(e97d9d67) SHA1(bcb77706868757de09c74a0af664747e7e8c412a) )
+ ROM_LOAD16_WORD_SWAP( "251ev2.p2", 0x100000, 0x400000, CRC(947241fa) SHA1(66aac76cfe54e7aa874bb2b2e10de2eee2952400) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99evo )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251evo.p1", 0x000000, 0x100000, CRC(18960f8b) SHA1(41dae74f7d429873946752b28527655466dd38c9) )
+ ROM_LOAD16_WORD_SWAP( "251evo.p2", 0x100000, 0x400000, CRC(c6431b4a) SHA1(cd30903f200428b9ea6901aab1bd7fdd1672713f) )
+
+ NEO_SFIX_128K( "251revo.s1", CRC(1b0133fe) SHA1(7f8e743bc0c8384dec12ca7007d32b23fef8875d) )
+
+ NEO_BIOS_AUDIO_128K( "251wet.m1", CRC(8c96b012) SHA1(8ae72cd0d88c742791b1f1f1d2af2253bf4f762d) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) )
+ ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251d.c7", 0x3000000, 0x800000, CRC(2f68fdeb) SHA1(37167c84a39141c179f94800f207dac3aabc5478) )
+ ROM_LOAD16_BYTE( "251d.c8", 0x3000001, 0x800000, CRC(4c2fad1e) SHA1(26779e79296eb1988a8c4d60d2e1baf041f2c0cf) )
+ROM_END
+
+ROM_START( kof99fc ) /* The King of Fighters '99 - Remix Pro200 Final - FCHT */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251fc.p1", 0x000000, 0x100000, CRC(6d3d14c4) SHA1(f40784505b82f59d289ce45e3de8f7fb8e87069b) )
+ ROM_LOAD16_WORD_SWAP( "251fc.p2", 0x100000, 0x400000, CRC(01e111b3) SHA1(4ae2fbd552246779146684d2191a7bc9a3554c59) )
+
+ NEO_SFIX_128K( "251fc.s1", CRC(ca942904) SHA1(f84b79282bb2de61d24faacca1feda0187e42dcd) )
+
+ NEO_BIOS_AUDIO_128K( "251fc.m1", CRC(0cb24d46) SHA1(7e6f41c093e2cc7353592cfda53e855b5e03c4e3) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251fc.v3", 0x800000, 0x400000, CRC(403628da) SHA1(e9fddfbedfdb70ba345820d95b154c1c73101a1c) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251fc.c1", 0x0000000, 0x800000, CRC(f0409101) SHA1(419ca1ea525f76d92b562e30bb043d39bd9a6c41) )
+ ROM_LOAD16_BYTE( "251fc.c2", 0x0000001, 0x800000, CRC(3a9eff54) SHA1(8eb1918e7d6f823c8965546cd064f44b1b6982f2) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251fc.c5", 0x2000000, 0x800000, CRC(dd023649) SHA1(e65c3e82a66553a4f87277984e630ec7e288626a) )
+ ROM_LOAD16_BYTE( "251fc.c6", 0x2000001, 0x800000, CRC(b8f60a8c) SHA1(f6a31066ffbf87937701df80abed8d9603629a5d) )
+ ROM_LOAD16_BYTE( "251fc.c7", 0x3000000, 0x800000, CRC(1dfd5103) SHA1(edbe56d9434abdff58e7e9ceed7ea3d7975c40d2) )
+ ROM_LOAD16_BYTE( "251fc.c8", 0x3000001, 0x800000, CRC(23fe3c43) SHA1(b601a14cd023b28f8e8eed8afd6a05d2c3df115a) )
+ROM_END
+
+ROM_START( kof99fc1 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251fc1.p1", 0x000000, 0x100000, CRC(48b8641d) SHA1(cb8e9992762d00cdb04f019398975d8d3b0cf1eb) )
+ ROM_LOAD16_WORD_SWAP( "251fc1.p2", 0x100000, 0x400000, CRC(143a7080) SHA1(29007713d2f1298e890d82d8a11c5700a6e680e6) )
+
+ NEO_SFIX_128K( "251fc.s1", CRC(ca942904) SHA1(f84b79282bb2de61d24faacca1feda0187e42dcd) )
+
+ NEO_BIOS_AUDIO_128K( "251fc.m1", CRC(0cb24d46) SHA1(7e6f41c093e2cc7353592cfda53e855b5e03c4e3) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251fc.v3", 0x800000, 0x400000, CRC(403628da) SHA1(e9fddfbedfdb70ba345820d95b154c1c73101a1c) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251fc.c1", 0x0000000, 0x800000, CRC(f0409101) SHA1(419ca1ea525f76d92b562e30bb043d39bd9a6c41) )
+ ROM_LOAD16_BYTE( "251fc.c2", 0x0000001, 0x800000, CRC(3a9eff54) SHA1(8eb1918e7d6f823c8965546cd064f44b1b6982f2) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251fc.c5", 0x2000000, 0x800000, CRC(dd023649) SHA1(e65c3e82a66553a4f87277984e630ec7e288626a) )
+ ROM_LOAD16_BYTE( "251fc.c6", 0x2000001, 0x800000, CRC(b8f60a8c) SHA1(f6a31066ffbf87937701df80abed8d9603629a5d) )
+ ROM_LOAD16_BYTE( "251fc.c7", 0x3000000, 0x800000, CRC(1dfd5103) SHA1(edbe56d9434abdff58e7e9ceed7ea3d7975c40d2) )
+ ROM_LOAD16_BYTE( "251fc.c8", 0x3000001, 0x800000, CRC(23fe3c43) SHA1(b601a14cd023b28f8e8eed8afd6a05d2c3df115a) )
+ROM_END
+
+ROM_START( kof99fc2 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251fc2.p1", 0x000000, 0x100000, CRC(7f14f664) SHA1(0f17b6fbe919b78f63de4e10fc95c6e7e688206d) )
+ ROM_LOAD16_WORD_SWAP( "251fc.p2", 0x100000, 0x400000, CRC(01e111b3) SHA1(4ae2fbd552246779146684d2191a7bc9a3554c59) )
+
+ NEO_SFIX_128K( "251fc.s1", CRC(ca942904) SHA1(f84b79282bb2de61d24faacca1feda0187e42dcd) )
+
+ NEO_BIOS_AUDIO_128K( "251fc.m1", CRC(0cb24d46) SHA1(7e6f41c093e2cc7353592cfda53e855b5e03c4e3) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251fc.v3", 0x800000, 0x400000, CRC(403628da) SHA1(e9fddfbedfdb70ba345820d95b154c1c73101a1c) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251fc.c1", 0x0000000, 0x800000, CRC(f0409101) SHA1(419ca1ea525f76d92b562e30bb043d39bd9a6c41) )
+ ROM_LOAD16_BYTE( "251fc.c2", 0x0000001, 0x800000, CRC(3a9eff54) SHA1(8eb1918e7d6f823c8965546cd064f44b1b6982f2) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251fc.c5", 0x2000000, 0x800000, CRC(dd023649) SHA1(e65c3e82a66553a4f87277984e630ec7e288626a) )
+ ROM_LOAD16_BYTE( "251fc.c6", 0x2000001, 0x800000, CRC(b8f60a8c) SHA1(f6a31066ffbf87937701df80abed8d9603629a5d) )
+ ROM_LOAD16_BYTE( "251fc.c7", 0x3000000, 0x800000, CRC(1dfd5103) SHA1(edbe56d9434abdff58e7e9ceed7ea3d7975c40d2) )
+ ROM_LOAD16_BYTE( "251fc.c8", 0x3000001, 0x800000, CRC(23fe3c43) SHA1(b601a14cd023b28f8e8eed8afd6a05d2c3df115a) )
+ROM_END
+
+ROM_START( kof99fmi )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251fmi.p1", 0x000000, 0x100000, CRC(ac853905) SHA1(e72abc420f3213ca90a60e46674ced48b0ef2f30) )
+ ROM_LOAD16_WORD_SWAP( "251fmi.p2", 0x100000, 0x400000, CRC(abbc9bf3) SHA1(72ac57e9b12f1533712379d1d33b6a80bcd7a4e1) )
+
+ NEO_SFIX_128K( "251bh.s1", CRC(b696a8c9) SHA1(3388feab11374a6eca6f1615fdfd93464f86dcee) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) )
+ ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251xxx.c7", 0x3000000, 0x800000, CRC(a02acaf8) SHA1(4136b4bedf51e02f0e22488bf8ca21847ad63f93) )
+ ROM_LOAD16_BYTE( "251xxx.c8", 0x3000001, 0x800000, CRC(e3cee593) SHA1(1ea4b9f13344b33348ef3fb95b325509399ef756) )
+ROM_END
+
+ROM_START( kof99hbi )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251hbi.p1", 0x000000, 0x100000, CRC(0b17b5fb) SHA1(72e0ad53fa4081df04c5aec193caf83c5baaaa7b) )
+ ROM_LOAD16_WORD_SWAP( "251hbi.p2", 0x100000, 0x400000, CRC(b73cabf7) SHA1(8c2e387c8f66ca6f710be5acf21bf56284f1bbda) )
+
+ NEO_SFIX_128K( "251revo.s1", CRC(1b0133fe) SHA1(7f8e743bc0c8384dec12ca7007d32b23fef8875d) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) )
+ ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251hbi.c7", 0x3000000, 0x800000, CRC(0e12697e) SHA1(65a8d5666d98ba53c3d3e5b29f24f4306c32534c) )
+ ROM_LOAD16_BYTE( "251hbi.c8", 0x3000001, 0x800000, CRC(ca3b76c8) SHA1(d28c818f6561b06c2ac2d95b76f704d566549caa) )
+ROM_END
+
+ROM_START( kof99iori ) /* The King of Fighters '99 - iori */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251iori.p1", 0x000000, 0x100000, CRC(6140956d) SHA1(e4dabd3b134701459c1360fffec4bcb27a48dac0) )
+ ROM_LOAD16_WORD_SWAP( "251iori.p2", 0x100000, 0x400000, CRC(d31111e3) SHA1(c6396c0eefd464320b0c3d68f7bcfaddb31b63ba) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99jh ) /* The King of Fighters '99 - Hack by Jason/K3 - (Simple move revision - Athena style change - can choose Krizalid - can choose Kyo and Iori in MVS mode 20031018) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251jh.p1", 0x000000, 0x100000, CRC(855936ca) SHA1(bf788fa7c49cf3365e1e859df3811a5ca0ff69cc) )
+ ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99jho ) /* [OLD] The King of Fighters '99 N - Hack by Jason/K3 - (Simple move revision - Athena style change - can choose Krizalid - can choose Kyo and Iori in MVS mode 20030924) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251jho.p1", 0x000000, 0x100000, CRC(690ea82d) SHA1(2938738e57514a672c79abe1d3696c51f9fdc04d) )
+ ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99lb ) /* The King of Fighters '99 - Hack by lb70 */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251lb.p1", 0x000000, 0x100000, CRC(38d49ceb) SHA1(474e5bca53cfb78727fbe17577fbd7f710b78c9b) )
+ ROM_LOAD16_WORD_SWAP( "251lb.p2", 0x100000, 0x400000, CRC(095524ce) SHA1(59009b5f74d0c02f85bf2e59f2833d65863ba8c3) )
+
+ NEO_SFIX_128K( "251bh.s1", CRC(b696a8c9) SHA1(3388feab11374a6eca6f1615fdfd93464f86dcee) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) )
+ ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251lb.c7", 0x3000000, 0x800000, CRC(c5a4d2e6) SHA1(ca0e8b45b126bc091242ad62c846c1b2a685b396) )
+ ROM_LOAD16_BYTE( "251lb.c8", 0x3000001, 0x800000, CRC(7160d0dd) SHA1(37a3fb72a32bcfdd2ba3ae7a957c4b3ba593b528) )
+ROM_END
+
+ROM_START( kof99m ) /* The King of Fighters '99 - Hack by MasakiAnton - (Can choose Krizalid and Krizalid') */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251m.p1", 0x000000, 0x100000, CRC(e056b767) SHA1(86cc38fa6158aa6b72fe0cb74a43f98ef4b285c6) )
+ ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99nd )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "152-p1.p1", 0x000000, 0x100000, CRC(f2c7ddfa) SHA1(d592eecc53d442c55c2f26a6a721fdf2924d2a5b) )
+ ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) )
+ ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251d.c7", 0x3000000, 0x800000, CRC(2f68fdeb) SHA1(37167c84a39141c179f94800f207dac3aabc5478) )
+ ROM_LOAD16_BYTE( "251d.c8", 0x3000001, 0x800000, CRC(4c2fad1e) SHA1(26779e79296eb1988a8c4d60d2e1baf041f2c0cf) )
+ROM_END
+
+ROM_START( kof99ndh )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251ndh.p1", 0x000000, 0x100000, CRC(eedcc5bd) SHA1(8280c4329d666b4831c766853f5334355dc40cc9) )
+ ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) )
+
+ NEO_SFIX_128K( "251bh.s1", CRC(b696a8c9) SHA1(3388feab11374a6eca6f1615fdfd93464f86dcee) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) )
+ ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251d.c7", 0x3000000, 0x800000, CRC(2f68fdeb) SHA1(37167c84a39141c179f94800f207dac3aabc5478) )
+ ROM_LOAD16_BYTE( "251d.c8", 0x3000001, 0x800000, CRC(4c2fad1e) SHA1(26779e79296eb1988a8c4d60d2e1baf041f2c0cf) )
+ROM_END
+
+ROM_START( kof99ndis ) // all complete
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251ndis.p1", 0x000000, 0x4550f6, CRC(0ca863be) SHA1(4da27476f81fd1d10ff2ba8fc7d12b662804cc5d) )
+ ROM_LOAD16_WORD_SWAP( "251ndis.p2", 0x100000, 0x400000, CRC(c012ff9f) SHA1(ef53386e34464eaaed1fcba3d4d1dcfb269f995c) )
+
+ NEO_SFIX_128K( "251ndis.s1", CRC(16edaa55) SHA1(d8601a14c703e56c0635e2f7540492b164447d6b) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) )
+ ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251d.c7", 0x3000000, 0x800000, CRC(2f68fdeb) SHA1(37167c84a39141c179f94800f207dac3aabc5478) )
+ ROM_LOAD16_BYTE( "251d.c8", 0x3000001, 0x800000, CRC(4c2fad1e) SHA1(26779e79296eb1988a8c4d60d2e1baf041f2c0cf) )
+ROM_END
+
+ROM_START( kof99nevo ) // multijet
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251nevo.p1", 0x000000, 0x100000, CRC(1afba5f1) SHA1(646c04030f85e1b1e06d830379f6c9b6b3bca505) )
+ ROM_LOAD16_WORD_SWAP( "251nevo.p2", 0x100000, 0x400000, CRC(7f86d784) SHA1(a2ca66b5f04ed9855c6fff8d5b1e9c426df8aa3d) )
+
+ NEO_SFIX_128K( "251revo.s1", CRC(1b0133fe) SHA1(7f8e743bc0c8384dec12ca7007d32b23fef8875d) )
+
+ NEO_BIOS_AUDIO_128K( "251wet.m1", CRC(8c96b012) SHA1(8ae72cd0d88c742791b1f1f1d2af2253bf4f762d) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) )
+ ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251d.c7", 0x3000000, 0x800000, CRC(2f68fdeb) SHA1(37167c84a39141c179f94800f207dac3aabc5478) )
+ ROM_LOAD16_BYTE( "251d.c8", 0x3000001, 0x800000, CRC(4c2fad1e) SHA1(26779e79296eb1988a8c4d60d2e1baf041f2c0cf) )
+ROM_END
+
+ROM_START( kof99ob )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251ob.p1", 0x000000, 0x100000, CRC(b6147b23) SHA1(921dad6a2f1011ad67a82a6f9874b30658f233b0) )
+ ROM_LOAD16_WORD_SWAP( "251ob.p2", 0x100000, 0x400000, CRC(f88a4970) SHA1(6cce092f0d60aff7c0fcad796e9604cdf440219f) )
+
+ NEO_SFIX_128K( "251revo.s1", CRC(1b0133fe) SHA1(7f8e743bc0c8384dec12ca7007d32b23fef8875d) )
+
+ NEO_BIOS_AUDIO_128K( "251ob.s1", CRC(151c7a8d) SHA1(ccf557d1818edb579aa72e05f494305e5449d5ee) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251ob.v1", 0x000000, 0x400000, CRC(33d2e8b4) SHA1(f1ff9facc59eadc257edc06ba6bb3dddf27cfae2) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) )
+ ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251ob.c7", 0x3000000, 0x800000, CRC(f3b25375) SHA1(80d6b06adce5190bb71f2f0233db60008a33c51e) )
+ ROM_LOAD16_BYTE( "251ob.c8", 0x3000001, 0x800000, CRC(d2d0041a) SHA1(02283e2ac22e2f0521c3b2d126aff624ac820b63) )
+ROM_END
+
+ROM_START( kof99ob2 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251ob2.p1", 0x000000, 0x100000, CRC(13f57712) SHA1(d08cc331049950d19e59a6016a2dcd8cdc733a14) )
+ ROM_LOAD16_WORD_SWAP( "251ob2.p2", 0x100000, 0x400000, CRC(7a747b84) SHA1(dd38867d055d51465630254dcff32e9fdc9f523e) )
+
+ NEO_SFIX_128K( "251sr.s1", CRC(08055c7a) SHA1(682e0084e62b547482929babe828027fdd64cde0) )
+
+ NEO_BIOS_AUDIO_128K( "251ob.s1", CRC(151c7a8d) SHA1(ccf557d1818edb579aa72e05f494305e5449d5ee) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251ob.v1", 0x000000, 0x400000, CRC(33d2e8b4) SHA1(f1ff9facc59eadc257edc06ba6bb3dddf27cfae2) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) )
+ ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251ob2.c7", 0x3000000, 0x800000, CRC(b9123865) SHA1(1f99321a2695a8be372c27bd012b5d476fbef318) )
+ ROM_LOAD16_BYTE( "251ob2.c8", 0x3000001, 0x800000, CRC(f34606e5) SHA1(7ba4b28afda82383361e935dd83dc9d158fc2e5e) )
+ROM_END
+
+ROM_START( kof99pb )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251pb.p1", 0x000000, 0x100000, CRC(1cdf4d3e) SHA1(2019ffe300651d9faabc65e53e95d4dc98bba6bf) )
+ ROM_LOAD16_WORD_SWAP( "251pb.p2", 0x100000, 0x400000, CRC(e0a0100a) SHA1(21a723818faa1bfbeff850caa1837f1ad566adda) )
+
+ NEO_SFIX_128K( "251pb.s1", CRC(0b3d79d3) SHA1(2647c617c52d9955ee29520c416b59febfe7c0db) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) )
+ ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251pb.c7", 0x3000000, 0x800000, CRC(65c896fb) SHA1(7d673bca1b38438f7ceb7aab26fe2beb452c74e7) )
+ ROM_LOAD16_BYTE( "251pb.c8", 0x3000001, 0x800000, CRC(6db9afe1) SHA1(beeed20292320e2a742d31c2a3ad05ffeb0d6f61) )
+ROM_END
+
+ROM_START( kof99pjc1 ) /* The King of Fighters '99 - Colour fix by TcwLee - (Character colour change revision 1 200209xx) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "152-p1.p1", 0x000000, 0x100000, CRC(f2c7ddfa) SHA1(d592eecc53d442c55c2f26a6a721fdf2924d2a5b) )
+ ROM_LOAD16_WORD_SWAP( "251pjc1.p2", 0x100000, 0x400000, CRC(79aa31b0) SHA1(04a15e211b4453cb4e249f8cbd175ce09136d92a) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99pjc2 ) /* The King of Fighters '99 - Colour fix by TcwLee - (Character colour change revision 2 20030302) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "152-p1.p1", 0x000000, 0x100000, CRC(f2c7ddfa) SHA1(d592eecc53d442c55c2f26a6a721fdf2924d2a5b) )
+ ROM_LOAD16_WORD_SWAP( "251pjc2.p2", 0x100000, 0x400000, CRC(024c5b3f) SHA1(e52b9035c5853027b37534c97872fdd1dd0a2791) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99pjc3 ) /* The King of Fighters '99 N - (kof99pjcr3) - Colour fix by TcwLee - (Character colour change revision 3 20030720) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "152-p1.p1", 0x000000, 0x100000, CRC(f2c7ddfa) SHA1(d592eecc53d442c55c2f26a6a721fdf2924d2a5b) )
+ ROM_LOAD16_WORD_SWAP( "251pjc3.p2", 0x100000, 0x400000, CRC(8054a5d5) SHA1(b240d427baf1c68cdc4ce2ab9e8d93471afa701a) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99pjco ) /* [OLD] The King of Fighters '99 N - Colour fix by TcwLee - (Character colour change) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "152-p1.p1", 0x000000, 0x100000, CRC(f2c7ddfa) SHA1(d592eecc53d442c55c2f26a6a721fdf2924d2a5b) )
+ ROM_LOAD16_WORD_SWAP( "251pjco.p2", 0x100000, 0x400000, CRC(4b08d6b3) SHA1(481b740bde2141abbdc6c516d27564d9ffa03662) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99pt ) /* The King of Fighters '99 - Hack by Creamymami - (Ultra kill hack) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251pt.p1", 0x000000, 0x100000, CRC(c14497cc) SHA1(ce275b3c146b48b40ded3a7754c71b722d6eab67) )
+ ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99r ) /* The King of Fighters '99 - Hack by Raymonose - (General character move change 200310xx) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251r.p1", 0x000000, 0x100000, CRC(7374f261) SHA1(1277e33d4ae4e40b0dbb49c9ac156cd132b6d890) )
+ ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99rd ) // multijet
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "152-p1.p1", 0x000000, 0x100000, CRC(f2c7ddfa) SHA1(d592eecc53d442c55c2f26a6a721fdf2924d2a5b) )
+ ROM_LOAD16_WORD_SWAP( "251rd.p2", 0x100000, 0x400000, CRC(316672c6) SHA1(a8738e8ee3f4618e313a978f831483bb45329c04) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99rev ) // multijet
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251rev.p1", 0x000000, 0x100000, CRC(b53286e7) SHA1(f0d143f21a679943caa6b94645210fd4c332c1eb) )
+ ROM_LOAD16_WORD_SWAP( "251rev.p2", 0x100000, 0x400000, CRC(7a7dcf34) SHA1(df424b6b44f007721bb1cf3fee00f4bedb5a63e6) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99revo )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251revo.p1", 0x000000, 0x100000, CRC(38FD8609) SHA1(fded1624a670835ae107dc19707c2fa8b06d6cea) )
+ ROM_LOAD16_WORD_SWAP( "251revo.p2", 0x100000, 0x400000, CRC(361F64DB) SHA1(a789df74ff197f2c552a87be4db8d321603d404e) )
+
+ NEO_SFIX_128K( "251revo.s1", CRC(1b0133fe) SHA1(7f8e743bc0c8384dec12ca7007d32b23fef8875d) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) )
+ ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251revo.c7", 0x3000000, 0x800000, CRC(4E8865B2) SHA1(8d7283d3782278b4fd5344a8986b1c9611118c32) )
+ ROM_LOAD16_BYTE( "251revo.c8", 0x3000001, 0x800000, CRC(040FCFCB) SHA1(27cb93f13ffa6f1ef97d2b967ffd4b4d757b1ca0) )
+ROM_END
+
+ROM_START( kof99roll )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251roll.p1", 0x000000, 0x100000, CRC(4afaaadc) SHA1(afb68252a57f4e67aadf7a9eb1b289d1e5d3dc8a) )
+ ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) )
+ ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251d.c7", 0x3000000, 0x800000, CRC(2f68fdeb) SHA1(37167c84a39141c179f94800f207dac3aabc5478) )
+ ROM_LOAD16_BYTE( "251d.c8", 0x3000001, 0x800000, CRC(4c2fad1e) SHA1(26779e79296eb1988a8c4d60d2e1baf041f2c0cf) )
+ROM_END
+
+ROM_START( kof99rp ) /* The King of Fighters '99 - KOF Remix PRO by FCHT - (Character move change v1.07a 20041224) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251rp.p1", 0x000000, 0x100000, CRC(5806CDD2) SHA1(279A8181374ECF77DA4605D1CBE1152324784B97) )
+ ROM_LOAD16_WORD_SWAP( "251rp.p2", 0x100000, 0x400000, CRC(C923EE2B) SHA1(98B4F40812D5479F7D6E683E5EF4002F4C86785C) )
+
+ NEO_SFIX_128K( "251rp.s1", CRC(963D51B3) SHA1(B50A585E1CF7B47052A3D6FD85F47EA739B08BA8) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99rp0 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251rp0.p1", 0x000000, 0x100000, CRC(0570df7e) SHA1(f6a66cf39e8aff68b2962115aa65c79ca222cc74) )
+ ROM_LOAD16_WORD_SWAP( "251rp.p2", 0x100000, 0x400000, CRC(c923ee2b) SHA1(98b4f40812d5479f7d6e683e5ef4002f4c86785c) )
+
+ NEO_SFIX_128K( "251rp.s1", CRC(963d51b3) SHA1(b50a585e1cf7b47052a3d6fd85f47ea739b08ba8) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) )
+ ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251d.c7", 0x3000000, 0x800000, CRC(2f68fdeb) SHA1(37167c84a39141c179f94800f207dac3aabc5478) )
+ ROM_LOAD16_BYTE( "251d.c8", 0x3000001, 0x800000, CRC(4c2fad1e) SHA1(26779e79296eb1988a8c4d60d2e1baf041f2c0cf) )
+ROM_END
+
+ROM_START( kof99rp1 ) /* [OLD] The King of Fighters '99 N - KOF Remix PRO by FCHT - (Character move change v1.02 final1 20031010) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251rp1.p1", 0x000000, 0x100000, CRC(c21d1580) SHA1(a81380d9f2e66036f92e02fe5b3b54741f2e59fc) )
+ ROM_LOAD16_WORD_SWAP( "251rp.p2", 0x100000, 0x400000, CRC(C923EE2B) SHA1(98B4F40812D5479F7D6E683E5EF4002F4C86785C) )
+
+ NEO_SFIX_128K( "251rp.s1", CRC(963D51B3) SHA1(B50A585E1CF7B47052A3D6FD85F47EA739B08BA8) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99rp2 ) /* [OLD][BETA] The King of Fighters '99 N - (kof99rp101c-b) - Remix PRO by FCHT - (Remix pro 1.01c by FCHT Built 0309h 200309xx) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251rp2.p1", 0x000000, 0x100000, CRC(07c52235) SHA1(2ca600d7c0d4bf2780c1313f31e23ec767d1f636) )
+ ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) )
+
+ NEO_SFIX_128K( "251rp.s1", CRC(963D51B3) SHA1(B50A585E1CF7B47052A3D6FD85F47EA739B08BA8) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99rp3 ) /* [OLD][BETA] The King of Fighters '99 N - (kof99rp101b-b) - Remix PRO by FCHT - (Remix pro 1.01b by FCHT Built 0309e 200309xx) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251rp3.p1", 0x000000, 0x100000, CRC(7e2da123) SHA1(4a5275ccce118244fb02416ef1cca72b71a55b1a) )
+ ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) )
+
+ NEO_SFIX_128K( "251rp.s1", CRC(963D51B3) SHA1(B50A585E1CF7B47052A3D6FD85F47EA739B08BA8) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99rp4 ) /* [OLD][BETA] The King of Fighters '99 N - (kof99rp101a2-b) - Remix PRO by FCHT - (Remix pro 1.01a2 by FCHT 200309xx) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251rp4.p1", 0x000000, 0x100000, CRC(0758dfef) SHA1(3a3254a2dcb073da00351921291fb9595a504a3c) )
+ ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) )
+
+ NEO_SFIX_128K( "251rp.s1", CRC(963D51B3) SHA1(B50A585E1CF7B47052A3D6FD85F47EA739B08BA8) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99rp5 ) /* [OLD][BETA] The King of Fighters '99 N - (kof99rp101a-b) - Remix PRO by FCHT - (Remix pro 1.01a by FCHT 200309xx) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251rp5.p1", 0x000000, 0x100000, CRC(b00aa815) SHA1(bf199a9977d542b38d953cf9c9347e22f8c31fbb) )
+ ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) )
+
+ NEO_SFIX_128K( "251rp.s1", CRC(963D51B3) SHA1(B50A585E1CF7B47052A3D6FD85F47EA739B08BA8) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99rp6 ) /* [OLD][BETA] The King of Fighters '99 N - (kof99rp101-b) - Remix PRO by FCHT - (Remix pro 1.01 by FCHT Built 0308b 200309xx) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251rp6.p1", 0x000000, 0x100000, CRC(9c3308e7) SHA1(e443a8bd184f6fc49f9d288b2884d95a5c7bca63) )
+ ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) )
+
+ NEO_SFIX_128K( "251rp.s1", CRC(963D51B3) SHA1(B50A585E1CF7B47052A3D6FD85F47EA739B08BA8) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99rp7 ) /* [OLD][BETA] The King of Fighters '99 N - (kof99rpcex-b) - Remix PRO by FCHT - (Remix pro 1.00c by FCHT Built 0308e EX-Version) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251rp7.p1", 0x000000, 0x100000, CRC(da91f15c) SHA1(64e2b0bc6592b5ca148ccec9f4ccfa0d6ac4aaf7) )
+ ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) )
+
+ NEO_SFIX_128K( "251rp.s1", CRC(963D51B3) SHA1(B50A585E1CF7B47052A3D6FD85F47EA739B08BA8) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99rp8 ) /* [OLD][BETA] The King of Fighters '99 N - (kof99rpc-b) - Remix PRO by FCHT - (Remix pro 1.00c by FCHT Built 0308e) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251rp8.p1", 0x000000, 0x100000, CRC(55d97c9a) SHA1(35b176cc4005c07478df1dc99fe40344210e690b) )
+ ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) )
+
+ NEO_SFIX_128K( "251rp.s1", CRC(963D51B3) SHA1(B50A585E1CF7B47052A3D6FD85F47EA739B08BA8) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99rp9 ) /* [OLD][BETA] The King of Fighters '99 N - (kof99rse-b) - Remix PRO by FCHT - (Remix pro 1.00b by FCHT - Enhance) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251rp9.p1", 0x000000, 0x100000, CRC(9ef748b0) SHA1(8f2cccc36d2ce019f8d0e69dec267240978bef4e) )
+ ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) )
+
+ NEO_SFIX_128K( "251rp.s1", CRC(963D51B3) SHA1(B50A585E1CF7B47052A3D6FD85F47EA739B08BA8) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99rpa ) /* [OLD][BETA] The King of Fighters '99 N - (kof99rps-b) - Remix PRO by FCHT - (Remix pro 1.00b by FCHT) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251rpa.p1", 0x000000, 0x100000, CRC(e390960c) SHA1(992f9ca6bffb34d589287ed1ab3c7a53d5940078) )
+ ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) )
+
+ NEO_SFIX_128K( "251rp.s1", CRC(963D51B3) SHA1(B50A585E1CF7B47052A3D6FD85F47EA739B08BA8) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99rpb ) /* [OLD][BETA] The King of Fighters '99 N - (kof99rpe-b) - Remix PRO by FCHT - (Remix pro 1.00a by FCHT - Enhance) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251rpb.p1", 0x000000, 0x100000, CRC(69f172ce) SHA1(c40f72d58331cd416154eef6f58d5398effe75ef) )
+ ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) )
+
+ NEO_SFIX_128K( "251rp.s1", CRC(963D51B3) SHA1(B50A585E1CF7B47052A3D6FD85F47EA739B08BA8) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99rpc ) /* [OLD][BETA] The King of Fighters '99 N - (kof99rp-b) - Remix PRO by FCHT - (Remix pro 1.00a by FCHT) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251rpc.p1", 0x000000, 0x100000, CRC(1496ac72) SHA1(60b4cb55ad8cfa27342b489fd2b53c5d41feea18) )
+ ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) )
+
+ NEO_SFIX_128K( "251rp.s1", CRC(963D51B3) SHA1(B50A585E1CF7B47052A3D6FD85F47EA739B08BA8) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99rpp ) /* [OLD] The King of Fighters '99 N - KOF Remix PRO PLUS by FCHT - (Character move change v1.02 FINAL PRO PLUS 20040327) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251rpp.p1", 0x000000, 0x100000, CRC(f954fc44) SHA1(654d1252dec3dfcf3fd3b8b19689bc68cd221e39) )
+ ROM_LOAD16_WORD_SWAP( "251rp.p2", 0x100000, 0x400000, CRC(C923EE2B) SHA1(98B4F40812D5479F7D6E683E5EF4002F4C86785C) )
+
+ NEO_SFIX_128K( "251rp.s1", CRC(963D51B3) SHA1(B50A585E1CF7B47052A3D6FD85F47EA739B08BA8) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99rr ) /* The King of Fighters '99 - Remix by Raymonose - (Character move change) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251rr.p1", 0x000000, 0x100000, CRC(fd7399b5) SHA1(bac6892fec986942bb02c00fe96d00fc11a0ddda) )
+ ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99seh ) /* The King of Fighters '99 - Super Enhance Hack by Creamymami and Ydmis - (Can choose Krizalid, Krizalid', Kyo and Iori - ultra power hack - ultra kill start is max) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251seh.p1", 0x000000, 0x100000, CRC(3dd574cf) SHA1(9005041b52e196639f70675abbc8949f3f52e6af) )
+ ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99sp )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251sp.p1", 0x000000, 0x100000, CRC(48017E49) SHA1(67b84e227a1b8389b660008d326cd2b4c2830101) )
+ ROM_LOAD16_WORD_SWAP( "251sp.p2", 0x100000, 0x400000, CRC(0B1396A9) SHA1(dbd0d462a0a7558dc35d8cfd01359e6fbf6e1f68) )
+
+ NEO_SFIX_128K( "251sp.s1", CRC(C72989A5) SHA1(c23bc663610340259a29aeaf536f90c244e218f8) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) )
+ ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) )
+ ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) )
+ ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) )
+ ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) )
+ ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) )
+ ROM_LOAD16_BYTE( "251sp.c7", 0x3000000, 0x800000, CRC(4E8BB555) SHA1(f68c597c1f10fb0f756e8252fa83de41ded27417) )
+ ROM_LOAD16_BYTE( "251sp.c8", 0x3000001, 0x800000, CRC(D79A6E0D) SHA1(f6b1b930a62982ef20d1374b213d246f6352d558) )
+ROM_END
+
+ROM_START( kof99spd ) // multijet
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "kc.neo-sma", 0x0c0000, 0x040000, CRC(6c9d0647) SHA1(2a0ce62ca6c18007e8fbe1b60475c7874ab79389) )
+ ROM_LOAD16_WORD_SWAP( "251spd.p1", 0x100000, 0x400000, CRC(11b8a2b5) SHA1(89f95746b76b4f730080921292970898dc296051) )
+ ROM_LOAD16_WORD_SWAP( "251-pg2.p2", 0x500000, 0x400000, CRC(d9057f51) SHA1(8d365b4dd40351495df99d6c765df1434b0b0548) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99sr )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251sr.p1", 0x000000, 0x100000, CRC(b96da0bf) SHA1(260b8fd7888b54f5f61fa07175dacd1743f1c6bb) )
+ ROM_LOAD16_WORD_SWAP( "251sr.p2", 0x100000, 0x400000, CRC(9f1d1660) SHA1(d23466a5aac70c69d10c6bec59f019419940d914) )
+
+ NEO_SFIX_128K( "251sr.s1", CRC(08055c7a) SHA1(682e0084e62b547482929babe828027fdd64cde0) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) )
+ ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251sr.c7", 0x3000000, 0x800000, CRC(65de862c) SHA1(83c0446f19ca567cd7664956f617f4f7625422b7) )
+ ROM_LOAD16_BYTE( "251sr.c8", 0x3000001, 0x800000, CRC(3ff457fe) SHA1(1838de77ceaf78cb75604f227ffdf59311c0bbe5) )
+ROM_END
+
+ROM_START( kof99srr ) /* The King of Fighters '99 - Remix by Raymonose - (Character move change) Super Remix Red */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251srr.p1", 0x000000, 0x100000, CRC(c7cd6ffe) SHA1(f0130b9bd80b4b9d452f53fac85853d9fa563144) )
+ ROM_LOAD16_WORD_SWAP( "251srr.p2", 0x100000, 0x400000, CRC(a7f4ed1d) SHA1(5f3024c66370c8b4be3a1b7bbe7225574c19fc4c) )
+
+ NEO_SFIX_128K( "251revo.s1", CRC(1b0133fe) SHA1(7f8e743bc0c8384dec12ca7007d32b23fef8875d) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) )
+ ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251d.c7", 0x3000000, 0x800000, CRC(2f68fdeb) SHA1(37167c84a39141c179f94800f207dac3aabc5478) )
+ ROM_LOAD16_BYTE( "251d.c8", 0x3000001, 0x800000, CRC(4c2fad1e) SHA1(26779e79296eb1988a8c4d60d2e1baf041f2c0cf) )
+ROM_END
+
+ROM_START( kof99srr1 ) // multijet kof99srr
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251srr.p1", 0x000000, 0x100000, CRC(c7cd6ffe) SHA1(f0130b9bd80b4b9d452f53fac85853d9fa563144) )
+ ROM_LOAD16_WORD_SWAP( "251rd.p2", 0x100000, 0x400000, CRC(316672c6) SHA1(a8738e8ee3f4618e313a978f831483bb45329c04) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) )
+ ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251d.c7", 0x3000000, 0x800000, CRC(2f68fdeb) SHA1(37167c84a39141c179f94800f207dac3aabc5478) )
+ ROM_LOAD16_BYTE( "251d.c8", 0x3000001, 0x800000, CRC(4c2fad1e) SHA1(26779e79296eb1988a8c4d60d2e1baf041f2c0cf) )
+ROM_END
+
+ROM_START( kof99the4 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251the4.p1", 0x000000, 0x100000, CRC(6055c72c) SHA1(45089a3e17e6476113f2c471632b3029b3344743) )
+ ROM_LOAD16_WORD_SWAP( "251the4.p2", 0x100000, 0x400000, CRC(62757ec3) SHA1(ad1d1f5b341e08ebb17a247c42b3e28dde989f12) )
+
+ NEO_SFIX_128K( "251revo.s1", CRC(1b0133fe) SHA1(7f8e743bc0c8384dec12ca7007d32b23fef8875d) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) )
+ ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251d.c7", 0x3000000, 0x800000, CRC(2f68fdeb) SHA1(37167c84a39141c179f94800f207dac3aabc5478) )
+ ROM_LOAD16_BYTE( "251d.c8", 0x3000001, 0x800000, CRC(4c2fad1e) SHA1(26779e79296eb1988a8c4d60d2e1baf041f2c0cf) )
+ROM_END
+
+ROM_START( kof99the42 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251the42.p1", 0x000000, 0x100000, CRC(d7d0b651) SHA1(de739b9f9ba5816a12ce7936d3f285d3ec8fc1f7) )
+ ROM_LOAD16_WORD_SWAP( "251the4.p2", 0x100000, 0x400000, CRC(62757ec3) SHA1(ad1d1f5b341e08ebb17a247c42b3e28dde989f12) )
+
+ NEO_SFIX_128K( "251revo.s1", CRC(1b0133fe) SHA1(7f8e743bc0c8384dec12ca7007d32b23fef8875d) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) )
+ ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251d.c7", 0x3000000, 0x800000, CRC(2f68fdeb) SHA1(37167c84a39141c179f94800f207dac3aabc5478) )
+ ROM_LOAD16_BYTE( "251d.c8", 0x3000001, 0x800000, CRC(4c2fad1e) SHA1(26779e79296eb1988a8c4d60d2e1baf041f2c0cf) )
+ROM_END
+
+ROM_START( kof99vor ) // all confirmed
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "vor.ka.neo-sma", 0x0c0000, 0x040000, CRC(ca267237) SHA1(9f7c3fbef8e9ae3a9e8990b93589b1d3325468f5) )
+ ROM_LOAD16_WORD_SWAP( "251vor.p1", 0x100000, 0x400000, CRC(a466e66d) SHA1(41653d6ca325d084cda851fecb677976f469978a) )
+ ROM_LOAD16_WORD_SWAP( "251vor.p2", 0x500000, 0x400000, CRC(2bf8ac94) SHA1(d6a9a9740819b91d01990ab999f41eef84361760) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251vor.c1", 0x000000, 0x800000, CRC(4b3b9454) SHA1(ee0178c9f90d43c704450ef3e39861826e9d3dad) )
+ ROM_LOAD16_BYTE( "251vor.c2", 0x000001, 0x800000, CRC(74f028c4) SHA1(2d1e1768a5d842292c5367c861e093f6cae02379) )
+ ROM_LOAD16_BYTE( "251vor.c3", 0x100000, 0x800000, CRC(51ecbae7) SHA1(2cf2e2ae3856a7e5d77af7f97d9dc3532d396b27) )
+ ROM_LOAD16_BYTE( "251vor.c4", 0x100001, 0x800000, CRC(96c0594b) SHA1(503844cc4c937caa6fe4a0a76f13cc6fbb47e94f) )
+ ROM_LOAD16_BYTE( "251vor.c5", 0x200000, 0x800000, CRC(8875aee9) SHA1(29e79c3a2f40ddcdd2d5432e37c5629cbbecd37f) )
+ ROM_LOAD16_BYTE( "251vor.c6", 0x200001, 0x800000, CRC(585786b7) SHA1(acfb462d467e914f165f67b8cc2be56937c0feaa) )
+ ROM_LOAD16_BYTE( "251vor.c7", 0x300000, 0x800000, CRC(a25152d1) SHA1(bb1dc7d5bff9a599e7ed234abd199c26d8103bbd) )
+ ROM_LOAD16_BYTE( "251vor.c8", 0x300001, 0x800000, CRC(2d8a1014) SHA1(dc729bc19b775bb62301d7f98cc9566b9aa8bf7a) )
+ROM_END
+
+ROM_START( kof99wet )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251ndh.p1", 0x000000, 0x100000, CRC(eedcc5bd) SHA1(8280c4329d666b4831c766853f5334355dc40cc9) )
+ ROM_LOAD16_WORD_SWAP( "251wet.p2", 0x100000, 0x400000, CRC(bdb6e48c) SHA1(af0ce253e48df64693c45a123c3ddb03e5679cba) )
+
+ NEO_SFIX_128K( "251revo.s1", CRC(1b0133fe) SHA1(7f8e743bc0c8384dec12ca7007d32b23fef8875d) )
+
+ NEO_BIOS_AUDIO_128K( "251wet.m1", CRC(8c96b012) SHA1(8ae72cd0d88c742791b1f1f1d2af2253bf4f762d) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) )
+ ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251d.c7", 0x3000000, 0x800000, CRC(2f68fdeb) SHA1(37167c84a39141c179f94800f207dac3aabc5478) )
+ ROM_LOAD16_BYTE( "251d.c8", 0x3000001, 0x800000, CRC(4c2fad1e) SHA1(26779e79296eb1988a8c4d60d2e1baf041f2c0cf) )
+ROM_END
+
+ROM_START( kof99xxx )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251xxx.p1", 0x000000, 0x100000, CRC(29ac1595) SHA1(db2452de23dfbbb27c06c4d9abc9da4c9f3adacb) )
+ ROM_LOAD16_WORD_SWAP( "251xxx.p2", 0x100000, 0x400000, CRC(3d930046) SHA1(1f04c000f1b16b334240f88bea386a8435185989) )
+
+ NEO_SFIX_128K( "251xxx.s1", CRC(d55f8b72) SHA1(6843e41836611fcdb5db084047ab35a4606999c3) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) )
+ ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251xxx.c7", 0x3000000, 0x800000, CRC(a02acaf8) SHA1(4136b4bedf51e02f0e22488bf8ca21847ad63f93) )
+ ROM_LOAD16_BYTE( "251xxx.c8", 0x3000001, 0x800000, CRC(e3cee593) SHA1(1ea4b9f13344b33348ef3fb95b325509399ef756) )
+ROM_END
+
+ROM_START( kof99y ) /* The King of Fighters '99 - Hack by Ydmis - (Can choose Krizalid, Krizalid', Kyo and Iori) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251y.p1", 0x000000, 0x100000, CRC(17a293ae) SHA1(b0f84a6c7688995eb93e5a4a13a4ca2a4e3645eb) )
+ ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99yd ) /* The King of Fighters '99 - Hack by Ydmis - (Ultra kill start is max) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251yd.p1", 0x000000, 0x100000, CRC(9caffc4d) SHA1(100bb80ffc9f938b107dbd7994a2b6febd7b3a9c) )
+ ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+/* Hacks of the Prototype */
+
+ROM_START( kof99evos ) // multijet
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251evos.p1", 0x000000, 0x100000, CRC(a40dbe6d) SHA1(a1db02bd804edcbee32bb38edc416e1b81a9073c) )
+ ROM_LOAD16_WORD_SWAP( "251evos.p2", 0x100000, 0x400000, CRC(f5831e0e) SHA1(ce8a34584b075d2568344e5ecb669bfff3d0d0f4) )
+
+ NEO_SFIX_128K( "251revo.s1", CRC(1b0133fe) SHA1(7f8e743bc0c8384dec12ca7007d32b23fef8875d) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) )
+ ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) )
+ ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) )
+ ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) )
+ ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) )
+ ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) )
+ ROM_LOAD16_BYTE( "proto_251-c7.c7", 0x3000000, 0x800000, CRC(a4479a58) SHA1(d50e6cc9ccfe1ddbc6d90d46b8ca2cb0304edd8c) )
+ ROM_LOAD16_BYTE( "proto_251-c8.c8", 0x3000001, 0x800000, CRC(ead513ce) SHA1(e9b07a0b01fdeb3004755a479df059c81b4d0ed6) )
+ROM_END
+
+ROM_START( kof99fc0 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251fc0.p1", 0x000000, 0x100000, CRC(ab81c822) SHA1(6091c9018b9384c34fd87bcad03e3e17d984bc56) )
+ ROM_LOAD16_WORD_SWAP( "251rp.p2", 0x100000, 0x400000, CRC(C923EE2B) SHA1(98B4F40812D5479F7D6E683E5EF4002F4C86785C) )
+
+ NEO_SFIX_128K( "251rp.s1", CRC(963D51B3) SHA1(B50A585E1CF7B47052A3D6FD85F47EA739B08BA8) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) )
+ ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) )
+ ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) )
+ ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) )
+ ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) )
+ ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) )
+ ROM_LOAD16_BYTE( "proto_251-c7.c7", 0x3000000, 0x800000, CRC(a4479a58) SHA1(d50e6cc9ccfe1ddbc6d90d46b8ca2cb0304edd8c) )
+ ROM_LOAD16_BYTE( "proto_251-c8.c8", 0x3000001, 0x800000, CRC(ead513ce) SHA1(e9b07a0b01fdeb3004755a479df059c81b4d0ed6) )
+ROM_END
+
+ROM_START( kof99fix )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251fix.p1", 0x000000, 0x100000, CRC(a71a0541) SHA1(49cac7ceedd6ef986987b2efed32f93a983d2319) )
+ ROM_LOAD16_WORD_SWAP( "251fix.p2", 0x100000, 0x400000, CRC(e45ffa4f) SHA1(1ee1956eaba2283ffadfd7fd70618e9fcbeda7a8) )
+
+ NEO_SFIX_128K( "251fix.s1", CRC(1d264e1b) SHA1(6e694465c31b75a8d75711abf653c2d878927f25) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) )
+ ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) )
+ ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) )
+ ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) )
+ ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) )
+ ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) )
+ ROM_LOAD16_BYTE( "251sp.c7", 0x3000000, 0x800000, CRC(4e8bb555) SHA1(f68c597c1f10fb0f756e8252fa83de41ded27417) )
+ ROM_LOAD16_BYTE( "251sp.c8", 0x3000001, 0x800000, CRC(d79a6e0d) SHA1(f6b1b930a62982ef20d1374b213d246f6352d558) )
+ROM_END
+
+ROM_START( kof99fix1 ) // multijet kof99fix
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251fix1.p1", 0x000000, 0x100000, CRC(62bcb221) SHA1(956e245cdbf8afa11f85017225ed303a40218959) )
+ ROM_LOAD16_WORD_SWAP( "251fix1.p2", 0x100000, 0x400000, CRC(84519898) SHA1(acba79a5d6dfcfc9e68ba3b27b12d5608e76c819) )
+
+ NEO_SFIX_128K( "251bh.s1", CRC(b696a8c9) SHA1(3388feab11374a6eca6f1615fdfd93464f86dcee) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) )
+ ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) )
+ ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) )
+ ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) )
+ ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) )
+ ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) )
+ ROM_LOAD16_BYTE( "proto_251-c7.c7", 0x3000000, 0x800000, CRC(a4479a58) SHA1(d50e6cc9ccfe1ddbc6d90d46b8ca2cb0304edd8c) )
+ ROM_LOAD16_BYTE( "proto_251-c8.c8", 0x3000001, 0x800000, CRC(ead513ce) SHA1(e9b07a0b01fdeb3004755a479df059c81b4d0ed6) )
+ROM_END
+
+ROM_START( kof99fix2 ) // multijet kof99fx2
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251fix2.p1", 0x000000, 0x100000, CRC(e62d039d) SHA1(e358707e6954c07bf6b53b877463d1d8e6e973c2) )
+ ROM_LOAD16_WORD_SWAP( "251fix.p2", 0x100000, 0x400000, CRC(e45ffa4f) SHA1(1ee1956eaba2283ffadfd7fd70618e9fcbeda7a8) )
+
+ NEO_SFIX_128K( "251fix2.s1", CRC(7fbf6061) SHA1(c4af13c28b1aaa198d117debedee1896b13a9e5d) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) )
+ ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) )
+ ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) )
+ ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) )
+ ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) )
+ ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) )
+ ROM_LOAD16_BYTE( "251sp.c7", 0x3000000, 0x800000, CRC(4e8bb555) SHA1(f68c597c1f10fb0f756e8252fa83de41ded27417) )
+ ROM_LOAD16_BYTE( "251sp.c8", 0x3000001, 0x800000, CRC(d79a6e0d) SHA1(f6b1b930a62982ef20d1374b213d246f6352d558) )
+ROM_END
+
+ROM_START( kof99hp ) /* The King of Fighters '99 PROTOTYPE - Hack by HackPlus - (Can choose Krizalid and Krizalid') */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251hp.p1", 0x000000, 0x100000, CRC(15c044a1) SHA1(c78b627e7667952094066fbdb4dbb5ecd0032af3) )
+ ROM_LOAD16_WORD_SWAP( "proto_251-p2.p2", 0x100000, 0x400000, CRC(739742ad) SHA1(31acaf05a9bf186305888d3db7e4e8a83f7bb0a4) )
+
+ NEO_SFIX_128K( "proto_251-s1.s1", CRC(fb1498ed) SHA1(d40060b31b6f217a4abdf3b336439fcd7bd7aaef) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) )
+ ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) )
+ ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) )
+ ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) )
+ ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) )
+ ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) )
+ ROM_LOAD16_BYTE( "proto_251-c7.c7", 0x3000000, 0x800000, CRC(a4479a58) SHA1(d50e6cc9ccfe1ddbc6d90d46b8ca2cb0304edd8c) )
+ ROM_LOAD16_BYTE( "proto_251-c8.c8", 0x3000001, 0x800000, CRC(ead513ce) SHA1(e9b07a0b01fdeb3004755a479df059c81b4d0ed6) )
+ROM_END
+
+ROM_START( kof99kp ) /* The King of Fighters '99 PROTOTYPE - Colour fix by Fighters Kim - (Colour change - 10%) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "proto_251-p1.p1", 0x000000, 0x100000, CRC(f37929c4) SHA1(226e7e3d629568399b88275e5bcd4e5b3839be95) )
+ ROM_LOAD16_WORD_SWAP( "251kp.p2", 0x100000, 0x400000, CRC(b3aff1ed) SHA1(683561e36417152386317c30629732a1d718e188) )
+
+ NEO_SFIX_128K( "proto_251-s1.s1", CRC(fb1498ed) SHA1(d40060b31b6f217a4abdf3b336439fcd7bd7aaef) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) )
+ ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) )
+ ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) )
+ ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) )
+ ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) )
+ ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) )
+ ROM_LOAD16_BYTE( "proto_251-c7.c7", 0x3000000, 0x800000, CRC(a4479a58) SHA1(d50e6cc9ccfe1ddbc6d90d46b8ca2cb0304edd8c) )
+ ROM_LOAD16_BYTE( "proto_251-c8.c8", 0x3000001, 0x800000, CRC(ead513ce) SHA1(e9b07a0b01fdeb3004755a479df059c81b4d0ed6) )
+ROM_END
+
+ROM_START( kof99phl ) // multijet
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251phl.p1", 0x000000, 0x100000, CRC(e3923237) SHA1(356c036c9ffc903ba1663ce687b3fc7ec6afdfe3) )
+ ROM_LOAD16_WORD_SWAP( "251phl.p2", 0x100000, 0x400000, CRC(58e3b94a) SHA1(010024bb779d5d346879c4d03857936c3a0b103b) )
+
+ NEO_SFIX_128K( "251revo.s1", CRC(1b0133fe) SHA1(7f8e743bc0c8384dec12ca7007d32b23fef8875d) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) )
+ ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) )
+ ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) )
+ ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) )
+ ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) )
+ ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) )
+ ROM_LOAD16_BYTE( "proto_251-c7.c7", 0x3000000, 0x800000, CRC(a4479a58) SHA1(d50e6cc9ccfe1ddbc6d90d46b8ca2cb0304edd8c) )
+ ROM_LOAD16_BYTE( "proto_251-c8.c8", 0x3000001, 0x800000, CRC(ead513ce) SHA1(e9b07a0b01fdeb3004755a479df059c81b4d0ed6) )
+ROM_END
+
+ROM_START( kof99pk ) /* The King of Fighters '99 PROTOTYPE - Hack by Kryso Fun - (Can choose Krizalid and Krizalid´ - bases on RS - Version + fix? data) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251pk.p1", 0x000000, 0x100000, CRC(9006f3a3) SHA1(1f09da2e94afd7f44087174a19ba4c74ea2a3d86) )
+ ROM_LOAD16_WORD_SWAP( "proto_251-p2.p2", 0x100000, 0x400000, CRC(739742ad) SHA1(31acaf05a9bf186305888d3db7e4e8a83f7bb0a4) )
+
+ NEO_SFIX_128K( "proto_251-s1.s1", CRC(fb1498ed) SHA1(d40060b31b6f217a4abdf3b336439fcd7bd7aaef) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) )
+ ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) )
+ ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) )
+ ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) )
+ ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) )
+ ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) )
+ ROM_LOAD16_BYTE( "proto_251-c7.c7", 0x3000000, 0x800000, CRC(a4479a58) SHA1(d50e6cc9ccfe1ddbc6d90d46b8ca2cb0304edd8c) )
+ ROM_LOAD16_BYTE( "proto_251-c8.c8", 0x3000001, 0x800000, CRC(ead513ce) SHA1(e9b07a0b01fdeb3004755a479df059c81b4d0ed6) )
+ROM_END
+
+ROM_START( kof99pko ) /* The King of Fighters '99 PROTOTYPE - Hack by Kryso Fun - (Can choose Krizalid and Krizalid´ - bases on RS - Version without fix? data */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251pko.p1", 0x000000, 0x100000, CRC(f7a95104) SHA1(51fd3befe4e439d9a5a17d99efa439d5f2091ed0) )
+ ROM_LOAD16_WORD_SWAP( "proto_251-p2.p2", 0x100000, 0x400000, CRC(739742ad) SHA1(31acaf05a9bf186305888d3db7e4e8a83f7bb0a4) )
+
+ NEO_SFIX_128K( "proto_251-s1.s1", CRC(fb1498ed) SHA1(d40060b31b6f217a4abdf3b336439fcd7bd7aaef) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) )
+ ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) )
+ ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) )
+ ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) )
+ ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) )
+ ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) )
+ ROM_LOAD16_BYTE( "proto_251-c7.c7", 0x3000000, 0x800000, CRC(a4479a58) SHA1(d50e6cc9ccfe1ddbc6d90d46b8ca2cb0304edd8c) )
+ ROM_LOAD16_BYTE( "proto_251-c8.c8", 0x3000001, 0x800000, CRC(ead513ce) SHA1(e9b07a0b01fdeb3004755a479df059c81b4d0ed6) )
+ROM_END
+
+ROM_START( kof99pm ) /* The King of Fighters '99 PROTOTYPE - Fix by UNKNOWN - (Mengele Fix) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251pm.p1", 0x000000, 0x100000, CRC(ed68b5f5) SHA1(5a7ec30350dcba08f7617f6c53a051b5284bc00a) )
+ ROM_LOAD16_WORD_SWAP( "251pm.p2", 0x100000, 0x400000, CRC(dc81f711) SHA1(2a00f9301e0e81ec00bc5eee5d39faeefa0eba8a) )
+
+ NEO_SFIX_128K( "251pm.s1", CRC(841a498c) SHA1(b9bb31dd9638bad0304e16f2de268e8c1cc4adb1) )
+
+ NEO_BIOS_AUDIO_128K( "251pm.m1", CRC(0659d262) SHA1(cea6c861a15025ad2bc1ad6b787534cfdd5bab53) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) )
+ ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) )
+ ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) )
+ ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) )
+ ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) )
+ ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) )
+ ROM_LOAD16_BYTE( "proto_251-c7.c7", 0x3000000, 0x800000, CRC(a4479a58) SHA1(d50e6cc9ccfe1ddbc6d90d46b8ca2cb0304edd8c) )
+ ROM_LOAD16_BYTE( "proto_251-c8.c8", 0x3000001, 0x800000, CRC(ead513ce) SHA1(e9b07a0b01fdeb3004755a479df059c81b4d0ed6) )
+ROM_END
+
+ROM_START( kof99py ) /* The King of Fighters '99 PROTOTYPE - Hack by Ydmis - (Can choose Kyo and Iori - ultra kill start is max) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251py.p1", 0x000000, 0x100000, CRC(4db24015) SHA1(1103eb498eb54e4787ed4da84a99978803041366) )
+ ROM_LOAD16_WORD_SWAP( "proto_251-p2.p2", 0x100000, 0x400000, CRC(739742ad) SHA1(31acaf05a9bf186305888d3db7e4e8a83f7bb0a4) )
+
+ NEO_SFIX_128K( "proto_251-s1.s1", CRC(fb1498ed) SHA1(d40060b31b6f217a4abdf3b336439fcd7bd7aaef) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) )
+ ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) )
+ ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) )
+ ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) )
+ ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) )
+ ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) )
+ ROM_LOAD16_BYTE( "proto_251-c7.c7", 0x3000000, 0x800000, CRC(a4479a58) SHA1(d50e6cc9ccfe1ddbc6d90d46b8ca2cb0304edd8c) )
+ ROM_LOAD16_BYTE( "proto_251-c8.c8", 0x3000001, 0x800000, CRC(ead513ce) SHA1(e9b07a0b01fdeb3004755a479df059c81b4d0ed6) )
+ROM_END
+
+ROM_START( kof99rs ) /* The King of Fighters '99 PROTOTYPE - (Prototype RS-Version) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251rs.p1", 0x000000, 0x100000, CRC(9ae7ab90) SHA1(4783042353b2bc796b4e3f8545308fe406019eb2) )
+ ROM_LOAD16_WORD_SWAP( "251rs.p2", 0x100000, 0x400000, CRC(838e9331) SHA1(f009382b5a99f6818f83f37f76af2d14f006237f) )
+
+ NEO_SFIX_128K( "proto_251-s1.s1", CRC(fb1498ed) SHA1(d40060b31b6f217a4abdf3b336439fcd7bd7aaef) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) )
+ ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) )
+ ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) )
+ ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) )
+ ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) )
+ ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) )
+ ROM_LOAD16_BYTE( "proto_251-c7.c7", 0x3000000, 0x800000, CRC(a4479a58) SHA1(d50e6cc9ccfe1ddbc6d90d46b8ca2cb0304edd8c) )
+ ROM_LOAD16_BYTE( "proto_251-c8.c8", 0x3000001, 0x800000, CRC(ead513ce) SHA1(e9b07a0b01fdeb3004755a479df059c81b4d0ed6) )
+ROM_END
+
+ROM_START( kof99rsm ) /* The King of Fighters '99 PROTOTYPE - Fix by UNKNOWN - (Mengele fix for RS-Version) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251rsm.p1", 0x000000, 0x100000, CRC(788ebe35) SHA1(760d50701b8cd9a824b2b8e3e12b045bd0c0eaf1) )
+ ROM_LOAD16_WORD_SWAP( "251rsm.p2", 0x100000, 0x400000, CRC(2c98268d) SHA1(552388a4ecb5318bdf654c0fac7ccac77795e760) )
+
+ NEO_SFIX_128K( "251pm.s1", CRC(841a498c) SHA1(b9bb31dd9638bad0304e16f2de268e8c1cc4adb1) )
+
+ NEO_BIOS_AUDIO_128K( "251pm.m1", CRC(0659d262) SHA1(cea6c861a15025ad2bc1ad6b787534cfdd5bab53) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) )
+ ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) )
+ ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) )
+ ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) )
+ ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) )
+ ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) )
+ ROM_LOAD16_BYTE( "proto_251-c7.c7", 0x3000000, 0x800000, CRC(a4479a58) SHA1(d50e6cc9ccfe1ddbc6d90d46b8ca2cb0304edd8c) )
+ ROM_LOAD16_BYTE( "proto_251-c8.c8", 0x3000001, 0x800000, CRC(ead513ce) SHA1(e9b07a0b01fdeb3004755a479df059c81b4d0ed6) )
+ROM_END
+
+ROM_START( kof99rsp ) /* The King of Fighters '99 PROTOTYPE- Fix by UNKNOWN - (Bug Fix for Prototype RS-Version) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251rsp.p1", 0x000000, 0x100000, CRC(4827d835) SHA1(aac22e61c2b2e9e4ae8f6a19ed52020c42351271) )
+ ROM_LOAD16_WORD_SWAP( "251rsp.p2", 0x100000, 0x400000, CRC(b09c980d) SHA1(df6d30f01056695de4214c8273a35794faa1652a) )
+
+ NEO_SFIX_128K( "251rsp.s1", CRC(ee8f28a5) SHA1(b6531e6ee6bdd38f7d1f7f682dddff5426250015) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) )
+ ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) )
+ ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) )
+ ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) )
+ ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) )
+ ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) )
+ ROM_LOAD16_BYTE( "proto_251-c7.c7", 0x3000000, 0x800000, CRC(a4479a58) SHA1(d50e6cc9ccfe1ddbc6d90d46b8ca2cb0304edd8c) )
+ ROM_LOAD16_BYTE( "proto_251-c8.c8", 0x3000001, 0x800000, CRC(ead513ce) SHA1(e9b07a0b01fdeb3004755a479df059c81b4d0ed6) )
+ROM_END
+
+ROM_START( kof99wh1 ) /* [OLD][BETA] The King of Fighters '99 PROTOTYPE - (kof99wh-b) - Remix by Wesker - (Character move change) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251wh1.p1", 0x000000, 0x100000, CRC(9e492265) SHA1(2448485e59ae2f921089f03be77a17bb32d0dd9d) )
+ ROM_LOAD16_WORD_SWAP( "proto_251-p2.p2", 0x100000, 0x400000, CRC(739742ad) SHA1(31acaf05a9bf186305888d3db7e4e8a83f7bb0a4) )
+
+ NEO_SFIX_128K( "proto_251-s1.s1", CRC(fb1498ed) SHA1(d40060b31b6f217a4abdf3b336439fcd7bd7aaef) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) )
+ ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) )
+ ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) )
+ ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) )
+ ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) )
+ ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) )
+ ROM_LOAD16_BYTE( "proto_251-c7.c7", 0x3000000, 0x800000, CRC(a4479a58) SHA1(d50e6cc9ccfe1ddbc6d90d46b8ca2cb0304edd8c) )
+ ROM_LOAD16_BYTE( "proto_251-c8.c8", 0x3000001, 0x800000, CRC(ead513ce) SHA1(e9b07a0b01fdeb3004755a479df059c81b4d0ed6) )
+ROM_END
+
+ROM_START( kof99wh2 ) /* [OLD][BETA] The King of Fighters '99 PROTOTYPE - (kof99wh-b) - Remix by Wesker - (Character move change Ver. 0.02) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251wh2.p1", 0x000000, 0x100000, CRC(505a8ded) SHA1(cd939b018c43712e69aa9f3de8975a8df310503e) )
+ ROM_LOAD16_WORD_SWAP( "proto_251-p2.p2", 0x100000, 0x400000, CRC(739742ad) SHA1(31acaf05a9bf186305888d3db7e4e8a83f7bb0a4) )
+
+ NEO_SFIX_128K( "proto_251-s1.s1", CRC(fb1498ed) SHA1(d40060b31b6f217a4abdf3b336439fcd7bd7aaef) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) )
+ ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) )
+ ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) )
+ ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) )
+ ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) )
+ ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) )
+ ROM_LOAD16_BYTE( "proto_251-c7.c7", 0x3000000, 0x800000, CRC(a4479a58) SHA1(d50e6cc9ccfe1ddbc6d90d46b8ca2cb0304edd8c) )
+ ROM_LOAD16_BYTE( "proto_251-c8.c8", 0x3000001, 0x800000, CRC(ead513ce) SHA1(e9b07a0b01fdeb3004755a479df059c81b4d0ed6) )
+ROM_END
+
+ROM_START( kof99wh3 ) /* [OLD][BETA] The King of Fighters '99 PROTOTYPE - (kof99wh-b) - Remix by Wesker - (Character move change Ver. 0.03) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251wh3.p1", 0x000000, 0x100000, CRC(9a312383) SHA1(29eba75aac66c5fec8ab5937312dc41155f243f8) )
+ ROM_LOAD16_WORD_SWAP( "proto_251-p2.p2", 0x100000, 0x400000, CRC(739742ad) SHA1(31acaf05a9bf186305888d3db7e4e8a83f7bb0a4) )
+
+ NEO_SFIX_128K( "proto_251-s1.s1", CRC(fb1498ed) SHA1(d40060b31b6f217a4abdf3b336439fcd7bd7aaef) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) )
+ ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) )
+ ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) )
+ ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) )
+ ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) )
+ ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) )
+ ROM_LOAD16_BYTE( "proto_251-c7.c7", 0x3000000, 0x800000, CRC(a4479a58) SHA1(d50e6cc9ccfe1ddbc6d90d46b8ca2cb0304edd8c) )
+ ROM_LOAD16_BYTE( "proto_251-c8.c8", 0x3000001, 0x800000, CRC(ead513ce) SHA1(e9b07a0b01fdeb3004755a479df059c81b4d0ed6) )
+ROM_END
+
+ROM_START( kof99wh4 ) /* [OLD][BETA] The King of Fighters '99 PROTOTYPE - (kof99wh-b) - Remix by Wesker - (Character move change Ver. 0.04) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251wh4.p1", 0x000000, 0x100000, CRC(5092e49f) SHA1(09bd471e0c0951677bf76e7fc69cda8dc751e06b) )
+ ROM_LOAD16_WORD_SWAP( "proto_251-p2.p2", 0x100000, 0x400000, CRC(739742ad) SHA1(31acaf05a9bf186305888d3db7e4e8a83f7bb0a4) )
+
+ NEO_SFIX_128K( "proto_251-s1.s1", CRC(fb1498ed) SHA1(d40060b31b6f217a4abdf3b336439fcd7bd7aaef) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) )
+ ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) )
+ ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) )
+ ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) )
+ ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) )
+ ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) )
+ ROM_LOAD16_BYTE( "proto_251-c7.c7", 0x3000000, 0x800000, CRC(a4479a58) SHA1(d50e6cc9ccfe1ddbc6d90d46b8ca2cb0304edd8c) )
+ ROM_LOAD16_BYTE( "proto_251-c8.c8", 0x3000001, 0x800000, CRC(ead513ce) SHA1(e9b07a0b01fdeb3004755a479df059c81b4d0ed6) )
+ROM_END
+
+ROM_START( kof99xpsa ) /* The King of Fighters '99 PROTOTYPE - (kof99xpsa) - Fix by XPS - (00409 XPSLibrary alternate Andy striker voice fix) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251xpsa.p1", 0x000000, 0x100000, CRC(5d4be286) SHA1(5052c6852cd02452ca4e103b5ef214120aae0452) )
+ ROM_LOAD16_WORD_SWAP( "251xpsf.p2", 0x100000, 0x400000, CRC(6533070c) SHA1(1eff1d11ab1463bd9578055f43684949ac6602e4) )
+
+ NEO_SFIX_128K( "251xpsf.s1", CRC(56bc7e7a) SHA1(c6b642243148ac89e2cfc1863edd369828a0ffb2) )
+
+ NEO_BIOS_AUDIO_128K( "251pm.m1", CRC(0659d262) SHA1(cea6c861a15025ad2bc1ad6b787534cfdd5bab53) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) )
+ ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) )
+ ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) )
+ ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) )
+ ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) )
+ ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) )
+ ROM_LOAD16_BYTE( "proto_251-c7.c7", 0x3000000, 0x800000, CRC(a4479a58) SHA1(d50e6cc9ccfe1ddbc6d90d46b8ca2cb0304edd8c) )
+ ROM_LOAD16_BYTE( "proto_251-c8.c8", 0x3000001, 0x800000, CRC(ead513ce) SHA1(e9b07a0b01fdeb3004755a479df059c81b4d0ed6) )
+ROM_END
+
+ROM_START( kof99xpsf ) /* The King of Fighters '99 PROTOTYPE - Fix by XPS - (00731 XPSLibrary final fix 20000409 - RS-Version) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251xpsf.p1", 0x000000, 0x100000, CRC(51dd4482) SHA1(71200ca31bb6fc0ac045f303c15a096fc1848901) )
+ ROM_LOAD16_WORD_SWAP( "251xpsf.p2", 0x100000, 0x400000, CRC(6533070c) SHA1(1eff1d11ab1463bd9578055f43684949ac6602e4) )
+
+ NEO_SFIX_128K( "251xpsf.s1", CRC(56bc7e7a) SHA1(c6b642243148ac89e2cfc1863edd369828a0ffb2) )
+
+ NEO_BIOS_AUDIO_128K( "251pm.m1", CRC(0659d262) SHA1(cea6c861a15025ad2bc1ad6b787534cfdd5bab53) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) )
+ ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) )
+ ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) )
+ ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) )
+ ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) )
+ ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) )
+ ROM_LOAD16_BYTE( "proto_251-c7.c7", 0x3000000, 0x800000, CRC(a4479a58) SHA1(d50e6cc9ccfe1ddbc6d90d46b8ca2cb0304edd8c) )
+ ROM_LOAD16_BYTE( "proto_251-c8.c8", 0x3000001, 0x800000, CRC(ead513ce) SHA1(e9b07a0b01fdeb3004755a479df059c81b4d0ed6) )
+ROM_END
+
+ROM_START( kof99xpsp ) /* The King of Fighters '99 PROTOTYPE - Fix by XPS - (00731 XPSLibrary final fix 20000409) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251xpsp.p1", 0x000000, 0x100000, CRC(6fad557f) SHA1(a647d8faf44a0ae6d600c1fb2d0b5f5cd63dc854) )
+ ROM_LOAD16_WORD_SWAP( "251xpsp.p2", 0x100000, 0x400000, CRC(952ad690) SHA1(c0aa19462f3451f355b36793a95009b808914329) )
+
+ NEO_SFIX_128K( "251xpsf.s1", CRC(56bc7e7a) SHA1(c6b642243148ac89e2cfc1863edd369828a0ffb2) )
+
+ NEO_BIOS_AUDIO_128K( "251pm.m1", CRC(0659d262) SHA1(cea6c861a15025ad2bc1ad6b787534cfdd5bab53) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) )
+ ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) )
+ ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) )
+ ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) )
+ ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) )
+ ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) )
+ ROM_LOAD16_BYTE( "proto_251-c7.c7", 0x3000000, 0x800000, CRC(a4479a58) SHA1(d50e6cc9ccfe1ddbc6d90d46b8ca2cb0304edd8c) )
+ ROM_LOAD16_BYTE( "proto_251-c8.c8", 0x3000001, 0x800000, CRC(ead513ce) SHA1(e9b07a0b01fdeb3004755a479df059c81b4d0ed6) )
+ROM_END
+
+ROM_START( kof99yb ) /* The King of Fighters '99 PROTOTYPE - Hack by Ydmis - (Can choose Kyo and Iori) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251yb.p1", 0x000000, 0x100000, CRC(fd2eaf53) SHA1(10dcb41674d236be9560ab442d3e3a8c542ab5f1) )
+ ROM_LOAD16_WORD_SWAP( "proto_251-p2.p2", 0x100000, 0x400000, CRC(739742ad) SHA1(31acaf05a9bf186305888d3db7e4e8a83f7bb0a4) )
+
+ NEO_SFIX_128K( "proto_251-s1.s1", CRC(fb1498ed) SHA1(d40060b31b6f217a4abdf3b336439fcd7bd7aaef) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) )
+ ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) )
+ ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) )
+ ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) )
+ ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) )
+ ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) )
+ ROM_LOAD16_BYTE( "proto_251-c7.c7", 0x3000000, 0x800000, CRC(a4479a58) SHA1(d50e6cc9ccfe1ddbc6d90d46b8ca2cb0304edd8c) )
+ ROM_LOAD16_BYTE( "proto_251-c8.c8", 0x3000001, 0x800000, CRC(ead513ce) SHA1(e9b07a0b01fdeb3004755a479df059c81b4d0ed6) )
+ROM_END
+
+
+
+GAME( 1999, kof99ab, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99k, ROT0, "Marcochen/PPX Hack Team", "Kof'99 (Rolls moves sideways ver)", MACHINE_SUPPORTS_SAVE )
+GAME( 2013, kof99ae, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "Kof'99 Anniversary Edition", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99ae0, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "Kof'99 Anniversary Edition (unknown date)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 2014, kof99ae20140408, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "Kof'99 Anniversary Edition (2014-04-08)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, kof99ae20140624, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "Kof'99 Anniversary Edition (2014-06-24)", MACHINE_SUPPORTS_SAVE )
+GAME( 2015, kof99ae20150121, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "Kof'99 Anniversary Edition (2015-01-21)", MACHINE_SUPPORTS_SAVE )
+GAME( 2015, kof99ae20150520, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "Kof'99 Anniversary Edition (2015-05-20)", MACHINE_SUPPORTS_SAVE )
+GAME( 2015, kof99ae20150711, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "Kof'99 Anniversary Edition (2015-07-11)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof99ae20160411, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "Kof'99 Anniversary Edition (2016-04-11)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof99ae20160419, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "Kof'99 Anniversary Edition (2016-04-19)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof99aes, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "Kof'99 Anniversary Edition Special", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99bh, kof99, neogeo_noslot, neogeo, neogeo_hbmame, kof99bh, ROT0, "Dodowang", "Kof'99 (2 Add Char with Icons)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, kof99bhp2, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Kof1996", "Kof'99 (Perfect Boss Edition hack by Kof1996 2009-10-08)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99bhs, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'99 (Boss Striker Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99bs, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "FCHT", "Kof'99 (Boss Hack - DC version by FightChina KOF Hackteamwork)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99bs2, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "FCHT", "Kof'99 (Boss Like DC v1.2f (KOF hackteamwork))", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99ch, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99k, ROT0, "Chase", "Kof'99 (Diff Moves set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99chf, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99k, ROT0, "Chase", "Kof'99 (Diff Moves set 3 - Fixed)", MACHINE_SUPPORTS_SAVE )
+GAME( 2006, kof99co, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'99 COMBO 2006 (set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2006, kof99co2, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'99 COMBO 2006 (set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99d, kof99, neogeo_noslot, neogeo, neogeo_hbmame, kof99d, ROT0, "SNK", "Kof'99 Millennium Battle (decrypted C)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99eh, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99k, ROT0, "Ydmis", "Kof'99 (4 Add Char - Ultra kill start max set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99ehr, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99k, ROT0, "Raymonose", "Kof'99 (4 Add Char - Ultra kill start max - Ultra pow hack set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99eur, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "Kof'99 Evolution Ultra Remix (Yashional)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99eur1, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "Kof'99 Evolution Ultra Remix (old)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99eur2, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "Kof'99 Evolution Ultra Remix", MACHINE_SUPPORTS_SAVE )
+GAME( 2011, kof99eur3, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "Kof'99 Evolution Ultra Remix (2011-02-25)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, kof99eur4, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "Kof'99 (Evolution Ultra Remix hack by Yashional 2009-07-17)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99ev2, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99k, ROT0, "hack", "Kof'99 (Evolution Special)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99evo, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'99 Evolution", MACHINE_SUPPORTS_SAVE )
+GAME( 2006, kof99fc, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "FCHT", "Kof'99 REMIX PRO (Pro200 Final)", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, kof99fc0, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "FCGH", "Kof'99 REMIX PRO (1.07A)", MACHINE_SUPPORTS_SAVE )
+GAME( 2006, kof99fc1, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "FCHT", "Kof'99 REMIX PRO (2.00B)", MACHINE_SUPPORTS_SAVE )
+GAME( 2006, kof99fc2, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "FCHT", "Kof'99 REMIX PRO (2.00F)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99fmi, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Marcochen", "Kof'99 Orochi Iori (Hack by marcochen)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99hbi, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Okukochi", "Kof'99 (Happy Birthday to Iori)", MACHINE_SUPPORTS_SAVE )
+GAME( 2006, kof99iori, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99k, ROT0, "hack", "Kof'99 (hack 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof99jh, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99k, ROT0, "Jason/K3", "Kof'99 (3 Add Char - Simple moves rev - Athena style changed 2003-10-18)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof99jho, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99k, ROT0, "Jason/K3", "Kof'99 (3 Add Char - Simple moves rev - Athena style changed 2003-09-24)", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, kof99lb, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "lb70", "Kof'99 (Hack by lb70)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99m, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99k, ROT0, "MasakiAnton", "Kof'99 (2 Add Char)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99nd, kof99, neogeo_noslot, neogeo, neogeo_hbmame, cmc42sfix,ROT0, "SNK", "Kof'99 (non encrypted P,decrypted C)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99ndh, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'99 (Boss Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99ndis, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'99 REMIX PRO (ndis)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99nevo, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Chl, Robert", "Kof'99 (Evolution Revision hack by Chl, Robert)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99ob, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'99 Orochi's Blood-Another part of Leona & Iori", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99ob2, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "Kof'99 Orochi's Blood (set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99pb, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'99 Perfect Boss", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof99pjc1, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99k, ROT0, "TcwLee", "Kof'99 (Char color changed rev 1 2002-09-xx)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof99pjc2, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99k, ROT0, "TcwLee", "Kof'99 (Char color changed rev 2 2003-03-02)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof99pjc3, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99k, ROT0, "TcwLee", "Kof'99 (Char color changed rev 3 2003-07-20)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99pjco, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99k, ROT0, "TcwLee", "Kof'99 (Char color changed old)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99pt, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99k, ROT0, "Creamymami", "Kof'99 (Ultra kill hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99r, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99k, ROT0, "Raymonose", "Kof'99 (Moves changed 0310xx)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99rd, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99k, ROT0, "hack", "Kof'99 (Red Evil Edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99rev, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99k, ROT0, "hack", "Kof'99 OKUHOSHI HACK (Revolution Merry Christmas set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99revo, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Okuhoshi", "Kof'99 (Christmas Revolution v1.2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99roll, kof99, neogeo_noslot, neogeo, neogeo_hbmame, cmc42sfix,ROT0, "KofOnTeam", "Kof'99 (Advanced Roll (KOFONTEAM))", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, kof99rp, kof99, neogeo_noslot, neogeo, neogeo_hbmame, kof99bh, ROT0, "FCHT", "Kof'99 Remix PRO (Diff Moves - v1.07a 2004-12-24)", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, kof99rp0, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "FGCH", "Kof'99 REMIX PRO (Edition v1.07a)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof99rp1, kof99, neogeo_noslot, neogeo, neogeo_hbmame, kof99bh, ROT0, "FCHT", "Kof'99 Remix PRO (Diff Moves - v1.02 final1 2003-10-10)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof99rp2, kof99, neogeo_noslot, neogeo, neogeo_hbmame, kof99bh, ROT0, "FCHT", "Kof'99 Remix PRO (Diff Moves - Beta v1.01c 2003-09-xx)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof99rp3, kof99, neogeo_noslot, neogeo, neogeo_hbmame, kof99bh, ROT0, "FCHT", "Kof'99 Remix PRO (Diff Moves - Beta v1.01b 2003-09-xx)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof99rp4, kof99, neogeo_noslot, neogeo, neogeo_hbmame, kof99bh, ROT0, "FCHT", "Kof'99 Remix PRO (Diff Moves - Beta v1.01a2 2003-09-xx)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof99rp5, kof99, neogeo_noslot, neogeo, neogeo_hbmame, kof99bh, ROT0, "FCHT", "Kof'99 Remix PRO (Diff Moves - Beta v1.01a 2003-09-xx)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof99rp6, kof99, neogeo_noslot, neogeo, neogeo_hbmame, kof99bh, ROT0, "FCHT", "Kof'99 Remix PRO (Diff Moves - Beta v1.01 2003-09-xx)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof99rp7, kof99, neogeo_noslot, neogeo, neogeo_hbmame, kof99bh, ROT0, "FCHT", "Kof'99 Remix PRO (Diff Moves - Beta v1.00c built 0308e - EX ver.)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof99rp8, kof99, neogeo_noslot, neogeo, neogeo_hbmame, kof99bh, ROT0, "FCHT", "Kof'99 Remix PRO (Diff Moves - Beta v1.00c built 0308e)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof99rp9, kof99, neogeo_noslot, neogeo, neogeo_hbmame, kof99bh, ROT0, "FCHT", "Kof'99 Remix PRO (Diff Moves - Beta v1.00b enhanced)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof99rpa, kof99, neogeo_noslot, neogeo, neogeo_hbmame, kof99bh, ROT0, "FCHT", "Kof'99 Remix PRO (Diff Moves - Beta v1.00b)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof99rpb, kof99, neogeo_noslot, neogeo, neogeo_hbmame, kof99bh, ROT0, "FCHT", "Kof'99 Remix PRO (Diff Moves - Beta v1.00a enhanced)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof99rpc, kof99, neogeo_noslot, neogeo, neogeo_hbmame, kof99bh, ROT0, "FCHT", "Kof'99 Remix PRO (Diff Moves - Beta v1.00a)", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, kof99rpp, kof99, neogeo_noslot, neogeo, neogeo_hbmame, kof99bh, ROT0, "FCHT", "Kof'99 Remix PRO PLUS (Diff Moves v1.02 final 2004-03-27)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99rr, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99k, ROT0, "Raymonose", "Kof'99 (Diff Moves set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99seh, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99k, ROT0, "Creamymami and Ydmis", "Kof'99 (4 Add Char - Ultra kill start max - Ultra pow hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99sp, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "ZKW", "Kof'99 (Super Plus)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99spd, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99, ROT0, "Star07", "Kof'99 (Special Dialogue hack by Star07)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99sr, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "FCHT", "Kof'99 (Summer Revolution)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99srr, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Raymonose", "Kof'99 (Super Remix Red)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99srr1, kof99, neogeo_noslot, neogeo, neogeo_hbmame, cmc42sfix,ROT0, "hack", "Kof'99 (Super Remix Red Version)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99the4, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "Kof'99 The 4 Flame Manipulators (set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99the42, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "Kof'99 The 4 Flame Manipulators (set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99vor, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99, ROT0, "hack", "Kof'99 (hack vor)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99wet, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'99 (hack colour wet)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99xxx, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'99 (Special Boss)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99y, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99k, ROT0, "Ydmis", "Kof'99 (4 Add Char", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99yd, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99k, ROT0, "Ydmis", "Kof'99 (Ultra kill start max)", MACHINE_SUPPORTS_SAVE )
+
+/* Hacks of the Prototype */
+GAME( 1999, kof99evos, kof99hp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'99 (proto)(Evolution Balanced)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99hp, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "HackPlus", "Kof'99 (proto)(2 Add Char set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, kof99fix, kof99hp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'99 (Happy birthday to Iori special 2009)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99fix1, kof99hp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'99 (proto)(Happy Birthday to Iori Special set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99fix2, kof99hp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'99 (proto)(Happy Birthday to Iori Special set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99kp, kof99hp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Fighters Kim", "Kof'99 (proto)(Color changed - 10%)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99phl, kof99hp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Liyang1983", "Kof'99 (proto)(Plus hack by Liyang1983)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99pk, kof99hp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "KrysoFun", "Kof'99 (proto)(2 Add Char - Based on RS - ver + Fix? data)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99pko, kof99hp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "KrysoFun", "Kof'99 (proto)(2 Add Char - Based on RS - ver without Fix? data)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99pm, kof99hp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Unk", "Kof'99 (proto)(Mengele Fix)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99py, kof99hp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis","Kof'99 (proto)(2 Add Char - Ultra kill start max)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99rs, kof99hp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'99 (proto)(Proto RS-ver)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99rsm, kof99hp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Unk", "Kof'99 (proto)(Mengele Fix for RS-ver)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99rsp, kof99hp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Unk", "Kof'99 (proto)(Bug Fix for RS-ver)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99wh1, kof99hp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker", "Kof'99 (proto)(Diff Moves)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99wh2, kof99hp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker", "Kof'99 (proto)(Diff Moves - v.02)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99wh3, kof99hp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker", "Kof'99 (proto)(Diff Moves - v.03)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99wh4, kof99hp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker", "Kof'99 (proto)(Diff Moves - v.04)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99xpsa, kof99hp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "XPS", "Kof'99 (proto)(00409 XPSLibrary alternate Andy striker voice Fix)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99xpsf, kof99hp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "XPS", "Kof'99 (proto)(00731 XPSLibrary final Fix 000409 - RS-ver)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99xpsp, kof99hp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "XPS", "Kof'99 (proto)(00731 XPSLibrary final Fix 000409)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99yb, kof99hp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Kof'99 (proto)(2 Add Char set 1)", MACHINE_SUPPORTS_SAVE )
+
diff --git a/docs/release/src/hbmame/drivers/kyugo.cpp b/docs/release/src/hbmame/drivers/kyugo.cpp
new file mode 100644
index 00000000000..96f621f8a05
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/kyugo.cpp
@@ -0,0 +1,46 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/kyugo.cpp"
+
+ROM_START( airwolffr )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "bfr.2s", 0x0000, 0x8000, CRC(ccf90d88) SHA1(6f88c0c4f5985d8033efdbc5e5516552007b7bdf) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "a.7s", 0x0000, 0x8000, CRC(a3c7af5c) SHA1(0f70ca94f3d168d38e0e93252e9441973f72441a) )
+
+ ROM_REGION( 0x01000, "gfx1", 0 )
+ ROM_LOAD( "f.4a", 0x00000, 0x1000, CRC(4df44ce9) SHA1(145986009d4ae6f7dd98ce715838d0331dea005d) ) /* chars */
+
+ ROM_REGION( 0x06000, "gfx2", 0 )
+ ROM_LOAD( "09h_14.bin", 0x00000, 0x2000, CRC(25e57e1f) SHA1(bef24bced102cd470e10bd4aa19da3c608211258) )
+ ROM_LOAD( "10h_13.bin", 0x02000, 0x2000, CRC(cf0de5e9) SHA1(32f3eb4c9298d59aca1dc2530b0e92f64311946d) )
+ ROM_LOAD( "11h_12.bin", 0x04000, 0x2000, CRC(4050c048) SHA1(ca21e0750f01342d9791067160339eec436c9458) )
+
+ ROM_REGION( 0x18000, "gfx3", 0 )
+ ROM_LOAD( "e.6a", 0x00000, 0x2000, CRC(e8fbc7d2) SHA1(a9a651b4a714f490a051a89fd0327a665353d64b) )
+ ROM_CONTINUE( 0x04000, 0x2000 )
+ ROM_CONTINUE( 0x02000, 0x2000 )
+ ROM_CONTINUE( 0x06000, 0x2000 )
+ ROM_LOAD( "d.8a", 0x08000, 0x2000, CRC(c5d4156b) SHA1(f66ec33b67e39f3df016231b00e48c9757e322f3) )
+ ROM_CONTINUE( 0x0c000, 0x2000 )
+ ROM_CONTINUE( 0x0a000, 0x2000 )
+ ROM_CONTINUE( 0x0e000, 0x2000 )
+ ROM_LOAD( "c.10a", 0x10000, 0x2000, CRC(de91dfb1) SHA1(9f338542f44905d0b895d99510475113eb860f0d) )
+ ROM_CONTINUE( 0x14000, 0x2000 )
+ ROM_CONTINUE( 0x12000, 0x2000 )
+ ROM_CONTINUE( 0x16000, 0x2000 )
+
+ ROM_REGION( 0x0340, "proms", 0 )
+ ROM_LOAD( "01j.bin", 0x0000, 0x0100, CRC(6a94b2a3) SHA1(b1f9bd97aa26c9fb6377ef32d5dd125583361f48) )
+ ROM_LOAD( "01h.bin", 0x0100, 0x0100, CRC(ec0923d3) SHA1(26f9eda4260a8b767893b8dea42819f192ef0b20) )
+ ROM_LOAD( "01f.bin", 0x0200, 0x0100, CRC(ade97052) SHA1(cc1b4cd57d7bc55ce44de6b89a322ff08eabb1a0) )
+ ROM_LOAD( "m1.2c", 0x0320, 0x0020, CRC(83a39201) SHA1(4fdc722c9e20ee152c890342ef0dce18e35e2ef8) )
+
+ ROM_REGION( 0x0400, "plds", 0 )
+ ROM_LOAD_OPTIONAL( "pal16l8a.2j", 0x0000, 0x0104, NO_DUMP )
+ ROM_LOAD_OPTIONAL( "epl12p6a.9j", 0x0200, 0x0034, CRC(19808f14) SHA1(d5043237be8857d2cecaf7dec079461f6b53efa9) )
+ ROM_LOAD_OPTIONAL( "epl12p6a.9k", 0x0300, 0x0034, CRC(f5acad85) SHA1(ee3caeedf3e91793b12895f109eae5417f5c7631) )
+ROM_END
+
+GAME( 2007, airwolffr, airwolf, srdmissn, airwolf, kyugo_state, srdmissn, ROT0, "Arkatrad", "Airwolf (French)", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/m52.cpp b/docs/release/src/hbmame/drivers/m52.cpp
new file mode 100644
index 00000000000..2c9eeddc170
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/m52.cpp
@@ -0,0 +1,39 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/m52.cpp"
+
+ROM_START( spatrol )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "mpa-1.3m", 0x0000, 0x1000, CRC(5873a860) SHA1(8c03726d6e049c3edbc277440184e31679f78258) )
+ ROM_LOAD( "mpa-2.3l", 0x1000, 0x1000, CRC(f4b85974) SHA1(dfb2efb57378a20af6f20569f4360cde95596f93) )
+ 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, "irem_audio:iremsound", 0 )
+ ROM_LOAD( "mp-s1.1a", 0x7000, 0x1000, CRC(561d3108) SHA1(4998c68a9e9a8002251fa8f07aa1082444a9dc80) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "spatrol.3e", 0x0000, 0x1000, CRC(130709e8) SHA1(fa3d0aca3179073c92a39c50f535d945f9b58725) )
+ ROM_LOAD( "spatrol.3f", 0x1000, 0x1000, CRC(1ac58abc) SHA1(1a945c4efa6ef4a7d68cb6cb7b91a76be956837e) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "spatrol.3m", 0x0000, 0x1000, CRC(09e18f9a) SHA1(9f41aacbc5352b8783422fdffef949426bada588) )
+ ROM_LOAD( "spatrol.3n", 0x1000, 0x1000, CRC(36b1891e) SHA1(e204c259ca9c37d0843b5c877debf2171c40249a) )
+
+ ROM_REGION( 0x1000, "gfx3", 0 )
+ ROM_LOAD( "spatrol.3l", 0x0000, 0x1000, CRC(49877023) SHA1(a76b18afb20ab416318812f66bfdd57733441cb5) )
+
+ ROM_REGION( 0x1000, "gfx4", 0 )
+ ROM_LOAD( "mpe-2.3k", 0x0000, 0x1000, CRC(c7aa1fb0) SHA1(14c6c76e1d0db2c0745e5d6d33ea6945fac8e9ee) )
+
+ ROM_REGION( 0x1000, "gfx5", 0 )
+ ROM_LOAD( "spatrol.3h", 0x0000, 0x1000, CRC(091045ad) SHA1(715b5b964fe06ab015e30ce6e38d6737f0033510) )
+
+ ROM_REGION( 0x0340, "proms", 0 )
+ ROM_LOAD( "mpc-4.2a", 0x0000, 0x0200, CRC(07f99284) SHA1(dfc52958f2520e1ce4446dd4c84c91413bbacf76) )
+ ROM_LOAD( "mpc-3.1m", 0x0200, 0x0020, CRC(6a57eff2) SHA1(2d1c12dab5915da2ccd466e39436c88be434d634) )
+ ROM_LOAD( "mpc-1.1f", 0x0220, 0x0020, CRC(26979b13) SHA1(8c41a8cce4f3384c392a9f7a223a50d7be0e14a5) )
+ ROM_LOAD( "mpc-2.2h", 0x0240, 0x0100, CRC(7ae4cd97) SHA1(bc0662fac82ffe65f02092d912b2c2b0c7a8ac2b) )
+ROM_END
+
+GAME( 2008, spatrol, mpatrol, m52, mpatrol, driver_device, 0, ROT0, "Gatinho", "Sponge Patrol", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/maketrax.cpp b/docs/release/src/hbmame/drivers/maketrax.cpp
new file mode 100644
index 00000000000..2e7bb03f220
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/maketrax.cpp
@@ -0,0 +1,824 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+/*************************************
+ *
+ * Make Trax input handlers
+ *
+ *************************************/
+
+READ8_MEMBER(pacman_state::maketrax_special_port2_r)
+{
+ int data = ioport("DSW1")->read();
+ int pc = space.device().safe_pcbase();
+
+ if ((pc == 0x1973) || (pc == 0x2389)) return data | 0x40;
+
+ switch (offset)
+ {
+ case 0x01:
+ case 0x04:
+ data |= 0x40; break;
+ case 0x05:
+ data |= 0xc0; break;
+ default:
+ data &= 0x3f; break;
+ }
+
+ return data;
+}
+
+READ8_MEMBER(pacman_state::maketrax_special_port3_r)
+{
+ int pc = space.device().safe_pcbase();
+
+ if (pc == 0x040e) return 0x20;
+
+ if ((pc == 0x115e) || (pc == 0x3ae2)) return 0x00;
+
+ switch (offset)
+ {
+ case 0x00:
+ return 0x1f;
+ case 0x09:
+ return 0x30;
+ case 0x0c:
+ return 0x00;
+ default:
+ return 0x20;
+ }
+}
+
+WRITE8_MEMBER(pacman_state::piranha_interrupt_vector_w)
+{
+ if (data == 0xfa) data = 0x78;
+ m_maincpu->set_input_line_vector(0, data );
+}
+
+
+
+/*************************************
+ *
+ * Main CPU memory handlers
+ *
+ *************************************/
+
+/*************************************
+ *
+ * Main CPU port handlers
+ *
+ *************************************/
+
+static ADDRESS_MAP_START( piranha_writeport, AS_IO, 8, pacman_state )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
+ AM_RANGE(0x00, 0x00) AM_WRITE(piranha_interrupt_vector_w)
+ADDRESS_MAP_END
+
+
+/*************************************
+ *
+ * Port definitions
+ *
+ *************************************/
+
+static INPUT_PORTS_START( eyes )
+ PORT_START ("IN0")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY
+ PORT_SERVICE( 0x10, IP_ACTIVE_LOW )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_TILT )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 )
+
+ PORT_START ("IN1")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 )
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
+
+ PORT_START ("DSW1")
+ PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coinage ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( 2C_1C ) )
+ PORT_DIPSETTING( 0x03, 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_DIPSETTING( 0x0c, "2" )
+ PORT_DIPSETTING( 0x08, "3" )
+ PORT_DIPSETTING( 0x04, "4" )
+ PORT_DIPSETTING( 0x00, "5" )
+ PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) )
+ PORT_DIPSETTING( 0x30, "50000" )
+ PORT_DIPSETTING( 0x20, "75000" )
+ PORT_DIPSETTING( 0x10, "100000" )
+ PORT_DIPSETTING( 0x00, "125000" )
+ PORT_DIPNAME( 0x40, 0x40, DEF_STR( Cabinet ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( Upright ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
+ PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) /* Not accessed */
+ PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+
+ PORT_START ("DSW2")
+ PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED )
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( maketrax )
+ PORT_START ("IN0")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY
+ PORT_DIPNAME( 0x10, 0x00, DEF_STR( Cabinet ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
+ PORT_DIPSETTING( 0x10, DEF_STR( Cocktail ) )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE1 )
+
+ PORT_START ("IN1")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED ) /* Protection */
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 )
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED ) /* Protection */
+
+ PORT_START ("DSW1")
+ PORT_DIPNAME( 0x03, 0x01, DEF_STR( Coinage ) )
+ 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, 0x00, DEF_STR( Lives ) )
+ PORT_DIPSETTING( 0x00, "3" )
+ PORT_DIPSETTING( 0x04, "4" )
+ PORT_DIPSETTING( 0x08, "5" )
+ PORT_DIPSETTING( 0x0c, "6" )
+ PORT_DIPNAME( 0x10, 0x10, "First Pattern" )
+ PORT_DIPSETTING( 0x10, DEF_STR( Easy ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Hard ) )
+ PORT_DIPNAME( 0x20, 0x20, "Teleport Holes" )
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_UNUSED ) /* Protection */
+
+ PORT_START ("DSW2")
+ PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED )
+INPUT_PORTS_END
+
+
+
+/*************************************
+ *
+ * Graphics layouts
+ *
+ *************************************/
+
+/*************************************
+ *
+ * Machine drivers
+ *
+ *************************************/
+
+static MACHINE_CONFIG_DERIVED( piranha, pacman )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_IO_MAP(piranha_writeport)
+MACHINE_CONFIG_END
+
+
+/*************************************
+ *
+ * Driver initialization
+ *
+ *************************************/
+
+void pacman_state::maketrax_rom_decode()
+{
+ uint8_t *rom = memregion("maincpu")->base();
+
+ /* patch protection using a copy of the opcodes so ROM checksum */
+ /* tests will not fail */
+
+ memcpy(m_patched_opcodes,rom,0x4000);
+
+ m_patched_opcodes[0x0415] = 0xc9;
+ m_patched_opcodes[0x1978] = 0x18;
+ m_patched_opcodes[0x238e] = 0xc9;
+ m_patched_opcodes[0x3ae5] = 0xe6;
+ m_patched_opcodes[0x3ae7] = 0x00;
+ m_patched_opcodes[0x3ae8] = 0xc9;
+ m_patched_opcodes[0x3aed] = 0x86;
+ m_patched_opcodes[0x3aee] = 0xc0;
+ m_patched_opcodes[0x3aef] = 0xb0;
+}
+
+DRIVER_INIT_MEMBER(pacman_state,maketrax)
+{
+ /* set up protection handlers */
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x5080, 0x50bf, read8_delegate(FUNC(pacman_state::maketrax_special_port2_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x50c0, 0x50ff, read8_delegate(FUNC(pacman_state::maketrax_special_port3_r),this));
+
+ maketrax_rom_decode();
+}
+
+/*************************************
+ *
+ * ROM definitions
+ *
+ *************************************/
+
+ROM_START( aa )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "aa.1", 0x0000, 0x1000, CRC(7b73ff28) SHA1(3b05c9ecaa418291b9b3501fbfd4a1e48be7281e) )
+ ROM_LOAD( "aa.2", 0x1000, 0x1000, CRC(848ca2fa) SHA1(d11e874a0bd0dcf88ed0781d7dc7b7d98b4ac1e8) )
+ ROM_LOAD( "aa.3", 0x2000, 0x1000, CRC(b3d3ff37) SHA1(0df28470eb70f4a84f24c2a86b4b9d338b9b6a76) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "aa.5e", 0x0000, 0x1000, CRC(e69596af) SHA1(b53ef6fce2d9fa1163f722a1a6be56085bde415c) )
+ ROM_LOAD( "aa.5f", 0x1000, 0x1000, CRC(c26ecd63) SHA1(40d618b171c7ea164384c2ded098520c77941cbc) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( abscam )
+ ROM_REGION( 0x10000, "maincpu",0 )
+ ROM_LOAD( "as0.bin", 0x0000, 0x0800, CRC(0b102302) SHA1(97f6399182db4f84efe482bf3a710aa45ca104ec) )
+ ROM_LOAD( "as4.bin", 0x0800, 0x0800, CRC(3116a8ec) SHA1(259169bcc8fbe9fc73ca5100c3835a233351f530) )
+ ROM_LOAD( "as1.bin", 0x1000, 0x0800, CRC(bc0281e0) SHA1(bcc6d63ede728d9b29f903489bfa80d94ec5cc00) )
+ ROM_LOAD( "as5.bin", 0x1800, 0x0800, CRC(428ee2e8) SHA1(1477d1a86b32483ac0fdeea93512f517c9f66ce2) )
+ ROM_LOAD( "as2.bin", 0x2000, 0x0800, CRC(e05d46ad) SHA1(87da57dbbe6ab5e1dd005fd68a982f1df917459c) )
+ ROM_LOAD( "as6.bin", 0x2800, 0x0800, CRC(3ae9a8cb) SHA1(72896ad32cbdde90793788182958a943e35672f9) )
+ ROM_LOAD( "as3.bin", 0x3000, 0x0800, CRC(b39eb940) SHA1(e144a1553c76ddee1c22ad1ed0cca241c2d03998) )
+ ROM_LOAD( "as7.bin", 0x3800, 0x0800, CRC(16cf1c67) SHA1(0015fe64d476de87f1a030e7f2e735380dfcfd41) )
+
+ ROM_REGION( 0x2000, "gfx1" , 0)
+ ROM_LOAD( "as8.bin", 0x0000, 0x0800, CRC(61daabe5) SHA1(00503916d1d1011afe68898e3416718c0e63a298) )
+ ROM_LOAD( "as10.bin", 0x0800, 0x0800, CRC(81d50c98) SHA1(6b61c666f68b5948e4facb8bac1378f986f993a7) )
+ ROM_LOAD( "as9.bin", 0x1000, 0x0800, CRC(a3bd1613) SHA1(c59bb0a4d1fa5cbe596f41ee7b1a4a661ab5614b) )
+ ROM_LOAD( "as11.bin", 0x1800, 0x0800, CRC(9d802b68) SHA1(4e8f37c2faedcfce91221a34c14f6490d578c80a) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD( "82s123.7f", 0x0000, 0x0020, CRC(2fc650bd) SHA1(8d0268dee78e47c712202b0ec4f1f51109b1f2a5) )
+ ROM_LOAD( "as4a.bin", 0x0020, 0x0100, CRC(1605b324) SHA1(336fce22caedbe69bcba9cea2b43e00f6f8e8067) )
+
+ PACMAN_SOUND_PROMS
+ROM_END
+
+/* This game is not complete. Should a better version emerge, it will replace this one */
+/* QuadBlok works, you need to move joystick to select it, then insert coin */
+/* No sound */
+ROM_START( absurd )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "absurd.1", 0x0000, 0x1000, CRC(cbda6dcb) SHA1(e17628ecc06b8877c6c9e55e2c8983272dd38e1e) )
+ ROM_LOAD( "absurd.2", 0x1000, 0x1000, CRC(3b669ec6) SHA1(94db6cb04f74384a2ef1830e48b9fb79e1636739) )
+ ROM_LOAD( "absurd.3", 0x2000, 0x1000, CRC(beb9024b) SHA1(9fb296e6f27373a1364a7ef439e36276e19e09f6) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "absurd.5e", 0x0000, 0x1000, CRC(0a4f5731) SHA1(0023b3175da4f25b5c59550c20b0435ac85cec2f) )
+ ROM_LOAD( "absurd.5f", 0x1000, 0x1000, CRC(ae9805ee) SHA1(fd90b8bb2492a39f27216e0cda09f9594a9dada7) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD( "glob.7f", 0x0000, 0x0020, CRC(1f617527) SHA1(448845cab63800a05fcb106897503d994377f78f) )
+ ROM_LOAD( "absurd.4a", 0x0020, 0x0100, CRC(9379a246) SHA1(88c84668f67afc4a5ff12e794ac37a0636bd7153) )
+
+ PACMAN_SOUND_PROMS
+ROM_END
+
+ROM_START( alpaca7 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "alpaca7.6e", 0x0000, 0x1000, CRC(AF4AFCBF) SHA1(F11E2FE309818B41CB2A28408B06D18419879C09) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "alpaca.5e", 0x0000, 0x1000, CRC(3E879F02) SHA1(0B084DD449E57476231E59F15F85A209A919959C) )
+ ROM_LOAD( "alpaca7.5f", 0x1000, 0x1000, CRC(A6103847) SHA1(4376996FF8C19AFD65F1757CE159B70071A4BD3B) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( alpaca8 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "alpaca8.6e", 0x0000, 0x1000, CRC(86027944) SHA1(C47FC62522A3BAE0D49F4B68C218F73C43ED19B5) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "alpaca.5e", 0x0000, 0x1000, CRC(3E879F02) SHA1(0B084DD449E57476231E59F15F85A209A919959C) )
+ ROM_LOAD( "alpaca8.5f", 0x1000, 0x1000, CRC(856E53AE) SHA1(95460212107B3371600569DBD4DA482EC631ABDB) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD( "82s123.7f", 0x0000, 0x0020, CRC(2FC650BD) SHA1(8D0268DEE78E47C712202B0EC4F1F51109B1F2A5) )
+ ROM_LOAD( "crush.4a", 0x0020, 0x0100, CRC(2BC5D339) SHA1(446E234DF94D9EF34C3191877BB33DD775ACFDF5) )
+
+ PACMAN_SOUND_PROMS
+ROM_END
+
+ROM_START( bace )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "bace.1", 0x0000, 0x1000, CRC(8b60ff7c) SHA1(c787246f0ae080fc9088631acb923a2df37c14b2) )
+ ROM_LOAD( "bace.2", 0x1000, 0x1000, CRC(25d8361a) SHA1(20792c3d4c583dfc0297c6b5db1c14194e053088) )
+ ROM_LOAD( "bace.3", 0x2000, 0x1000, CRC(fc38d994) SHA1(319691caf79292f21282006337df3c637c033602) )
+ ROM_LOAD( "bace.4", 0x3000, 0x1000, CRC(5853f341) SHA1(0794324ee1bab92baaa6f5bf2cd647ce10614200) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "bace.5e", 0x0000, 0x1000, CRC(6da99c7b) SHA1(dcd488e0117662caf77f453b73330740ae34ca55) )
+ ROM_LOAD( "bace.5f", 0x1000, 0x1000, CRC(b81cdc64) SHA1(67f4cde661dbcdcf0192289e31ee80cbd0dc9dc5) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( crashh )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "crashh.1", 0x0000, 0x1000, CRC(04353b41) SHA1(28b774fd5b429569f44651cfe4df6a9929310190) )
+ ROM_LOAD( "crashh.2", 0x1000, 0x1000, CRC(e03205c0) SHA1(8c5ae42a9e2d551f9184e952723a750abc3dfb52) )
+ ROM_LOAD( "crashh.3", 0x2000, 0x1000, CRC(b0fa8e46) SHA1(2caf94d1a14d96ddc401375b54bf2b1edb13c68b) )
+ ROM_LOAD( "crashh.4", 0x3000, 0x1000, CRC(bfa4d2fe) SHA1(76ef449173c01f8943049330dba9c6a54a5e760a) )
+ ROM_LOAD( "crashh.5", 0x8000, 0x1000, CRC(12f2f224) SHA1(95528aaef908173e1374a7c6ed1a9cda4b685a20) )
+ ROM_LOAD( "pacman.6j", 0x9000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "crashh.5e", 0x0000, 0x1000, CRC(0a25969b) SHA1(2cd54477a5cc15f91ae2cba3c4270002ac15967e) )
+ ROM_LOAD( "crashh.5f", 0x1000, 0x1000, CRC(447ea79c) SHA1(886d0113608616b01e4395485c6106586adcb65a) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD( "82s123.7f", 0x0000, 0x0020, CRC(2fc650bd) SHA1(8d0268dee78e47c712202b0ec4f1f51109b1f2a5) )
+ ROM_LOAD( "crush.4a", 0x0020, 0x0100, CRC(2bc5d339) SHA1(446e234df94d9ef34c3191877bb33dd775acfdf5) )
+
+ PACMAN_SOUND_PROMS
+ROM_END
+
+ROM_START( dderby )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "dderby.6e", 0x0000, 0x1000, CRC(6f373bd4) SHA1(e2c4f9def801c5664cf2b9684a36f762e97d12d6) )
+ ROM_LOAD( "dderby.6f", 0x1000, 0x1000, CRC(2fbf16bf) SHA1(9f3714ecc40707cfa4ff1942d5fe87a03888f548) )
+ ROM_LOAD( "dderby.6h", 0x2000, 0x1000, CRC(6e16cd16) SHA1(7f13a2b181e4a62d7d71294cac8fe09fd9ac64a9) )
+ ROM_LOAD( "dderby.6j", 0x3000, 0x1000, CRC(f7e09874) SHA1(7080aaa47e0bc893cd8bd038de7af769ef4eddf6) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "dderby.5e", 0x0000, 0x1000, CRC(7e2c0a53) SHA1(c3c62b32927ac3c5948faeff28d4c2148fe18d0b) )
+ ROM_LOAD( "dderby.5f", 0x1000, 0x1000, CRC(cb2dd072) SHA1(e5813cc4247b9799e9513ff1a624fabc066582e3) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( eyes )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "eyes.7d", 0x0000, 0x1000, CRC(3b09ac89) SHA1(a8f1c918da74495bb73172f39364dada38ae4713) )
+ ROM_LOAD( "eyes.7f", 0x1000, 0x1000, CRC(97096855) SHA1(10d3b164bbbe5eee86e881a1434f0c114ee8adff) )
+ ROM_LOAD( "eyes.7h", 0x2000, 0x1000, CRC(731e294e) SHA1(96c0308c146dbd85e244c4530af9ae8df78c86de) )
+ ROM_LOAD( "eyes.7j", 0x3000, 0x1000, CRC(22f7a719) SHA1(eb000b606ecedd52bebbb232e661fb1ef205f8b0) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "eyes.5d", 0x0000, 0x1000, CRC(d6af0030) SHA1(652b779533e3f00e81cc102b78d367d503b06f33) )
+ ROM_LOAD( "eyes.5e", 0x1000, 0x1000, CRC(a42b5201) SHA1(2e5cede3b6039c7bd5230de27d02aaa3f35a7b64) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD( "82s123.7f", 0x0000, 0x0020, CRC(2fc650bd) SHA1(8d0268dee78e47c712202b0ec4f1f51109b1f2a5) )
+ ROM_LOAD( "82s129.4a", 0x0020, 0x0100, CRC(d8d78829) SHA1(19820d1651423210083a087fb70ebea73ad34951) )
+
+ PACMAN_SOUND_PROMS
+ROM_END
+
+/* E204 - Rockola presents and copyright notice are all removed. Where it should say "EYES" on title screen,
+ it has some corrupt gfx instead. The rest is fine. */
+ROM_START( eyesb ) /* E204 */
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "eyesb.7d", 0x0000, 0x1000, CRC(7e7dd02d) SHA1(a0026fec57c089dd500efa107b0e884ed9edd4d6) )
+ ROM_LOAD( "eyesb.7f", 0x1000, 0x1000, CRC(d6d73eb5) SHA1(b0c51afc09dd62bdda70710d57ae5b90a5e981ac) )
+ ROM_LOAD( "eyesb.7h", 0x2000, 0x1000, CRC(951ad5dd) SHA1(9aed1044256070ae6555d561856d0bea454f97a8) )
+ ROM_LOAD( "eyesb.7j", 0x3000, 0x1000, CRC(acc9cd8b) SHA1(d7fcf1b4b3466ee2187f82080634346a5427385e) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "eyes.5d", 0x0000, 0x1000, CRC(d6af0030) SHA1(652b779533e3f00e81cc102b78d367d503b06f33) )
+ ROM_LOAD( "eyes.5e", 0x1000, 0x1000, CRC(a42b5201) SHA1(2e5cede3b6039c7bd5230de27d02aaa3f35a7b64) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD( "82s123.7f", 0x0000, 0x0020, CRC(2fc650bd) SHA1(8d0268dee78e47c712202b0ec4f1f51109b1f2a5) )
+ ROM_LOAD( "82s129.4a", 0x0020, 0x0100, CRC(d8d78829) SHA1(19820d1651423210083a087fb70ebea73ad34951) )
+
+ PACMAN_SOUND_PROMS
+ROM_END
+
+ROM_START( ghohunt )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "ghohunt.6e", 0x0000, 0x1000, CRC(b9e9965c) SHA1(8026e792fd474c2cc8ad8917da4d57a7930d30b4) )
+ ROM_LOAD( "ghohunt.6f", 0x1000, 0x1000, CRC(9da32395) SHA1(8b4d7309de9dab4f58fcdbb29d98ca6c03a2b6fe) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "ghohunt.5e", 0x0000, 0x1000, CRC(c69b5669) SHA1(c4f641ff218aee92dd784968b3e1a030c85d61f6) )
+ ROM_LOAD( "ghohunt.5f", 0x1000, 0x1000, CRC(3ad83b13) SHA1(d2ce7ab45cb540f35cb23264e7628ac0ee6b8559) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( kangaroh )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "kangaroh.1", 0x0000, 0x1000, CRC(bcdd9dff) SHA1(0243d9aaeaa82afb04d40eee192fdd65197fb87e) )
+ ROM_LOAD( "kangaroh.2", 0x1000, 0x1000, CRC(1a381ee4) SHA1(04c6ceb5baa9f94cfd7235a89adf0bc0dbc8b4d1) )
+ ROM_LOAD( "kangaroh.3", 0x2000, 0x1000, CRC(d4018655) SHA1(fb1720045c7c7ab58af894a5d2b86d289a6cd32d) )
+ ROM_LOAD( "kangaroh.4", 0x3000, 0x1000, CRC(6c3f60eb) SHA1(51fc5df0ea3effdff765ea20d69f9f14575794cf) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "kangaroh.5e", 0x0000, 0x1000, CRC(c2afaa18) SHA1(138321b5efca381fb6be053aa76b37fdc7ad6afb) )
+ ROM_LOAD( "kangaroh.5f", 0x1000, 0x1000, CRC(dd792694) SHA1(ded7dd8e5d184ec09d25aa3429c29e9a4ead6e92) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD( "82s123.7f", 0x0000, 0x0020, CRC(2fc650bd) SHA1(8d0268dee78e47c712202b0ec4f1f51109b1f2a5) )
+ ROM_LOAD( "crush.4a", 0x0020, 0x0100, CRC(2bc5d339) SHA1(446e234df94d9ef34c3191877bb33dd775acfdf5) )
+
+ PACMAN_SOUND_PROMS
+ROM_END
+
+ROM_START( ladybugh )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "lazybug.1", 0x0000, 0x1000, CRC(8cee62ee) SHA1(f33b114f3c133cb62f962ca1b2586314b73c8270) )
+ ROM_LOAD( "lazybug.2", 0x1000, 0x1000, CRC(c17a5571) SHA1(24bae96cf95f009825fd06916eeae8a06e2e35ae) )
+ ROM_LOAD( "lazybug.3", 0x2000, 0x1000, CRC(ac53ee82) SHA1(a69a71ee936ae73d5a27025528ff2c666893866d) )
+ ROM_LOAD( "ladybugh.4", 0x3000, 0x1000, CRC(4ac90450) SHA1(7777777777777777777777777777777777777777) ) /* unavailable */
+ ROM_LOAD( "lazybug.5", 0x8000, 0x1000, CRC(ba11a997) SHA1(8dde84e9071bfa3e60d522a02ae5bf4464e730cf) )
+ ROM_LOAD( "lazybug.6", 0x9000, 0x1000, CRC(c8b79a5b) SHA1(abaa9c585da1ee62d4b79968bedb429a5bbb739b) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "lazybug.5e", 0x0000, 0x1000, CRC(4e72e4f5) SHA1(05188aa854034e5cd9779d4b7034ec0658ccc805) )
+ ROM_LOAD( "lazybug.5f", 0x1000, 0x1000, CRC(35eaf3a5) SHA1(6a0e5a5289003b0d8ccb9dd585a1e12a4486977c) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( lazybug )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "lazybug.1", 0x0000, 0x1000, CRC(8cee62ee) SHA1(f33b114f3c133cb62f962ca1b2586314b73c8270) )
+ ROM_LOAD( "lazybug.2", 0x1000, 0x1000, CRC(c17a5571) SHA1(24bae96cf95f009825fd06916eeae8a06e2e35ae) )
+ ROM_LOAD( "lazybug.3", 0x2000, 0x1000, CRC(ac53ee82) SHA1(a69a71ee936ae73d5a27025528ff2c666893866d) )
+ ROM_LOAD( "lazybug.4", 0x3000, 0x1000, CRC(22a4e136) SHA1(e41e4d3cc0b3ca29ae8cb9591bf36e009c76f2b2) )
+ ROM_LOAD( "lazybug.5", 0x8000, 0x1000, CRC(ba11a997) SHA1(8dde84e9071bfa3e60d522a02ae5bf4464e730cf) )
+ ROM_LOAD( "lazybug.6", 0x9000, 0x1000, CRC(c8b79a5b) SHA1(abaa9c585da1ee62d4b79968bedb429a5bbb739b) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "lazybug.5e", 0x0000, 0x1000, CRC(4e72e4f5) SHA1(05188aa854034e5cd9779d4b7034ec0658ccc805) )
+ ROM_LOAD( "lazybug.5f", 0x1000, 0x1000, CRC(35eaf3a5) SHA1(6a0e5a5289003b0d8ccb9dd585a1e12a4486977c) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( lazybug1 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "lazybug.1", 0x0000, 0x1000, CRC(8cee62ee) SHA1(f33b114f3c133cb62f962ca1b2586314b73c8270) )
+ ROM_LOAD( "lazyalt.2", 0x1000, 0x1000, CRC(3df8767b) SHA1(67ee2c2357a9a6e1f4d6ab95427d0c44dc3ebc1f) )
+ ROM_LOAD( "lazybug.3", 0x2000, 0x1000, CRC(ac53ee82) SHA1(a69a71ee936ae73d5a27025528ff2c666893866d) )
+ ROM_LOAD( "lazybug.4", 0x3000, 0x1000, CRC(22a4e136) SHA1(e41e4d3cc0b3ca29ae8cb9591bf36e009c76f2b2) )
+ ROM_LOAD( "lazybug.5", 0x8000, 0x1000, CRC(ba11a997) SHA1(8dde84e9071bfa3e60d522a02ae5bf4464e730cf) )
+ ROM_LOAD( "lazybug.6", 0x9000, 0x1000, CRC(c8b79a5b) SHA1(abaa9c585da1ee62d4b79968bedb429a5bbb739b) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "lazybug.5e", 0x0000, 0x1000, CRC(4e72e4f5) SHA1(05188aa854034e5cd9779d4b7034ec0658ccc805) )
+ ROM_LOAD( "lazybug.5f", 0x1000, 0x1000, CRC(35eaf3a5) SHA1(6a0e5a5289003b0d8ccb9dd585a1e12a4486977c) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mtturbo )
+ ROM_REGION( 2*0x10000, "maincpu", 0 ) /* 64k for code + 64k for opcode copy to hack protection */
+ ROM_LOAD( "maketrax.6e", 0x0000, 0x1000, CRC(0150fb4a) SHA1(ba41582d5432670654479b4bf6d938d2168858af) )
+ ROM_LOAD( "maketrax.6f", 0x1000, 0x1000, CRC(77531691) SHA1(68a450bcc8d832368d0f1cb2815cb5c03451796e) )
+ ROM_LOAD( "mtturbo.6h", 0x2000, 0x1000, CRC(77e0e153) SHA1(8be5cf8c0337e05eaf4635f19580d6c1477e6bcc) )
+ ROM_LOAD( "maketrax.6j", 0x3000, 0x1000, CRC(0b4b5e0a) SHA1(621aece612df612065f776696956ef3671421fac) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "maketrax.5e", 0x0000, 0x1000, CRC(91bad2da) SHA1(096197d0cb6d55bf72b5be045224f4bd6a9cfa1b) )
+ ROM_LOAD( "maketrax.5f", 0x1000, 0x1000, CRC(aea79f55) SHA1(279021e6771dfa5bd0b7c557aae44434286d91b7) )
+
+ 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) )
+
+ PACMAN_SOUND_PROMS
+ROM_END
+
+ROM_START( pachello )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pachello.6e", 0x0000, 0x1000, CRC(A8227949) SHA1(793B7BA579C7E4771094D281C2589435A1BF2FDA) )
+ ROM_LOAD( "pachello.6f", 0x1000, 0x1000, CRC(D5690D97) SHA1(51A4D63265F1D848359CA8C78BA111D72A3BC2CF) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "at.5e", 0x0000, 0x1000, CRC(EEB359BF) SHA1(36F153B5CE53475FD144AF50E4BD67B0E0B3A01F) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958FEDF9) SHA1(4A937AC02216EA8C96477D4A15522070507FB599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacmatri )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacmatri.6e", 0x0000, 0x1000, CRC(29B0497E) SHA1(E45B225AABDF2F0549718885C02AE8A8EEF3BAEB) )
+ ROM_LOAD( "pacmatri.6f", 0x1000, 0x1000, CRC(EAA7B145) SHA1(4C0ABF30F2C962B6EB2BDDA833236B9D58544A89) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "at.5e", 0x0000, 0x1000, CRC(EEB359BF) SHA1(36F153B5CE53475FD144AF50E4BD67B0E0B3A01F) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958FEDF9) SHA1(4A937AC02216EA8C96477D4A15522070507FB599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( deathstar ) // No text, no scores. From level 3, you need to use a 2nd joystick (RDFG keys).
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "deathstar.1", 0x0000, 0x1000, CRC(decc3963) SHA1(cbc291c767def5c92b82d6e00ebb5e61e45cbc41) )
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "puckman.5e", 0x0000, 0x0800, CRC(2066a0b7) SHA1(6d4ccc27d6be185589e08aa9f18702b679e49a4a) )
+ ROM_LOAD( "puckman.5h", 0x0800, 0x0800, CRC(3591b89d) SHA1(79bb456be6c39c1ccd7d077fbe181523131fb300) )
+ ROM_LOAD( "puckman.5f", 0x1000, 0x0800, CRC(9e39323a) SHA1(be933e691df4dbe7d12123913c3b7b7b585b7a35) )
+ ROM_LOAD( "puckman.5j", 0x1800, 0x0800, CRC(1b1d9096) SHA1(53771c573051db43e7185b1d188533056290a620) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pactest )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pactest.1", 0x0000, 0x1000, CRC(c0423406) SHA1(51630780dd7fa32a827d81a060906130fbe57345) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "ptest.5e", 0x0000, 0x1000, CRC(a650e73e) SHA1(e51df8e976259ea8b431dd13b6bc4728ba213d19) )
+ ROM_LOAD( "ptest.5f", 0x1000, 0x1000, CRC(51aa0303) SHA1(59fdfc5393e883d65bf00f8b3bbfb7173440dec3) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pactetris ) // No text, no scores. When the game ends, it goes crazy.
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pactetris.1", 0x0000, 0x1929, CRC(f67b4604) SHA1(21dfb16e524734cf180b7a3c514575dfc9cb8bbc) )
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "puckman.5e", 0x0000, 0x0800, CRC(2066a0b7) SHA1(6d4ccc27d6be185589e08aa9f18702b679e49a4a) )
+ ROM_LOAD( "puckman.5h", 0x0800, 0x0800, CRC(3591b89d) SHA1(79bb456be6c39c1ccd7d077fbe181523131fb300) )
+ ROM_LOAD( "puckman.5f", 0x1000, 0x0800, CRC(9e39323a) SHA1(be933e691df4dbe7d12123913c3b7b7b585b7a35) )
+ ROM_LOAD( "puckman.5j", 0x1800, 0x0800, CRC(1b1d9096) SHA1(53771c573051db43e7185b1d188533056290a620) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( piranha )
+ ROM_REGION( 0x10000, "maincpu",0 )
+ ROM_LOAD( "pir1.bin", 0x0000, 0x0800, CRC(69a3e6ea) SHA1(c54e5d039a03d3cbee7a5e21bf1e23f4fd913ea6) )
+ ROM_LOAD( "pir5.bin", 0x0800, 0x0800, CRC(245e753f) SHA1(4c1183b8449e4e7995f81079953fe0e251251c60) )
+ ROM_LOAD( "pir2.bin", 0x1000, 0x0800, CRC(62cb6954) SHA1(0e01c8463b130ab5518ce23368ad028c86cd0a32) )
+ ROM_LOAD( "pir6.bin", 0x1800, 0x0800, CRC(cb0700bc) SHA1(1f5e91791ea25eb58d26b9627e98e0b6c1d9becf) )
+ ROM_LOAD( "pir3.bin", 0x2000, 0x0800, CRC(843fbfe5) SHA1(6671a3c55ef70447f2a127438e0c39857f8bf6b1) )
+ ROM_LOAD( "pir7.bin", 0x2800, 0x0800, CRC(73084d5e) SHA1(cb04a4c9dbf1672ddf478d2fe92b0ffd0159bb9e) )
+ ROM_LOAD( "pir4.bin", 0x3000, 0x0800, CRC(4cdf6704) SHA1(97af8bbd08896dffd73e359ec46843dd673c4c9c) )
+ ROM_LOAD( "pir8.bin", 0x3800, 0x0800, CRC(b86fedb3) SHA1(f5eaf7ccc1ecaa2417bcc077561efca8e7cb691a) )
+
+ ROM_REGION( 0x2000, "gfx1" , 0)
+ ROM_LOAD( "pir9.bin", 0x0000, 0x0800, CRC(0f19eb28) SHA1(0335189a06be01b97ca376d3682ed54df9b121e8) )
+ ROM_LOAD( "pir11.bin", 0x0800, 0x0800, CRC(5f8bdabe) SHA1(eb6a0515a381a885b087d165aaefb0277a223715) )
+ ROM_LOAD( "pir10.bin", 0x1000, 0x0800, CRC(d19399fb) SHA1(c0a75a08f77adb9d0010511c4b6ea99324c33c50) )
+ ROM_LOAD( "pir12.bin", 0x1800, 0x0800, CRC(cfb4403d) SHA1(1642a4917be0621ebf5f705c7f68a2b75d1c78d3) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD( "82s123.7f", 0x0000, 0x0020, CRC(2fc650bd) SHA1(8d0268dee78e47c712202b0ec4f1f51109b1f2a5) )
+ ROM_LOAD( "piranha.4a", 0x0020, 0x0100, CRC(08c9447b) SHA1(5e4fbfcc7179fc4b1436af9bb709ffc381479315) )
+
+ PACMAN_SOUND_PROMS
+ROM_END
+
+ROM_START( piranhah )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pr1.cpu", 0x0000, 0x1000, CRC(bc5ad024) SHA1(a3ed781b514a1068b24a7146a28f0a2adfaa2719) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pr3.cpu", 0x2000, 0x1000, CRC(473c379d) SHA1(6e7985367c3e544b4cb98ba8291908df88eafe7f) )
+ ROM_LOAD( "pr4.cpu", 0x3000, 0x1000, CRC(63fbf895) SHA1(d328bf3b8f307fb774614834edec211117148e64) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pr5.cpu", 0x0000, 0x0800, CRC(3fc4030c) SHA1(5e45f0c19cf96daa17afd2fa1c628d7ac7f4a79c) )
+ ROM_LOAD( "pr7.cpu", 0x0800, 0x0800, CRC(30b9a010) SHA1(b0ba8b6cd430feb32d11d092e1959b9f5d240f1b) )
+ ROM_LOAD( "pr6.cpu", 0x1000, 0x0800, CRC(f3e9c9d5) SHA1(709a75b2457f21f0f1a3d9e7f4c8579468ee5cad) )
+ ROM_LOAD( "pr8.cpu", 0x1800, 0x0800, CRC(133d720d) SHA1(8af75ed9e115a996379acedd44d0c09332ec5a03) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( piranhao )
+ ROM_REGION( 0x10000, "maincpu",0 )
+ ROM_LOAD( "p1.bin", 0x0000, 0x0800, CRC(c6ce1bfc) SHA1(da145d67331cee292654a185fb09e773dd9d40cd) )
+ ROM_LOAD( "p5.bin", 0x0800, 0x0800, CRC(a2655a33) SHA1(2253dcf5c8cbe278118aa1569cf456b13d8cf029) )
+ ROM_LOAD( "pir2.bin", 0x1000, 0x0800, CRC(62cb6954) SHA1(0e01c8463b130ab5518ce23368ad028c86cd0a32) )
+ ROM_LOAD( "pir6.bin", 0x1800, 0x0800, CRC(cb0700bc) SHA1(1f5e91791ea25eb58d26b9627e98e0b6c1d9becf) )
+ ROM_LOAD( "pir3.bin", 0x2000, 0x0800, CRC(843fbfe5) SHA1(6671a3c55ef70447f2a127438e0c39857f8bf6b1) )
+ ROM_LOAD( "pir7.bin", 0x2800, 0x0800, CRC(73084d5e) SHA1(cb04a4c9dbf1672ddf478d2fe92b0ffd0159bb9e) )
+ ROM_LOAD( "p4.bin", 0x3000, 0x0800, CRC(9363a4d1) SHA1(4cb4a86d92a1f9bf233cac01aa266485a8bb7a34) )
+ ROM_LOAD( "p8.bin", 0x3800, 0x0800, CRC(2769979c) SHA1(581592da26199b325de51791ddab66b474ab0413) )
+
+ ROM_REGION( 0x2000, "gfx1" , 0 )
+ ROM_LOAD( "p9.bin", 0x0000, 0x0800, CRC(94eb7563) SHA1(c99741ce1aebdfb89628fbfaecf5ae6b2719a0ca) )
+ ROM_LOAD( "p11.bin", 0x0800, 0x0800, CRC(a3606973) SHA1(72297e1a33102c6a48b4c65f2a0b9bfc75a2df36) )
+ ROM_LOAD( "p10.bin", 0x1000, 0x0800, CRC(84165a2c) SHA1(95b24620fbf9bd0ec4dd2aeeb6d9305bd475dce2) )
+ ROM_LOAD( "p12.bin", 0x1800, 0x0800, CRC(2699ba9e) SHA1(b91ff586defe65b200bea5ade7374c2c7579cd80) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD( "82s123.7f", 0x0000, 0x0020, CRC(2fc650bd) SHA1(8d0268dee78e47c712202b0ec4f1f51109b1f2a5) )
+ ROM_LOAD( "piranha.4a", 0x0020, 0x0100, CRC(08c9447b) SHA1(5e4fbfcc7179fc4b1436af9bb709ffc381479315) )
+
+ PACMAN_SOUND_PROMS
+ROM_END
+
+ROM_START( ppong )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "ppong.1", 0x0000, 0x1000, CRC(abf90af3) SHA1(785059f68b69d031e8017fc5c6f44d22208ba1d1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "ppong.5e", 0x0000, 0x1000, CRC(57fe0ace) SHA1(87b9e980c8c30b73ebf7c2750dd40806754bed51) )
+ ROM_LOAD( "ppong.5f", 0x1000, 0x1000, CRC(8bbd8de5) SHA1(feec6c9d413c6767edf2a521da439b21ccdf3d9a) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( ppong2 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "ppong2.1", 0x0000, 0x1000, CRC(b0d6d512) SHA1(1d1ccc0cf0436680fc3b2bbd1a77292506b7514b) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "ppong.5e", 0x0000, 0x1000, CRC(57fe0ace) SHA1(87b9e980c8c30b73ebf7c2750dd40806754bed51) )
+ ROM_LOAD( "ppong.5f", 0x1000, 0x1000, CRC(8bbd8de5) SHA1(feec6c9d413c6767edf2a521da439b21ccdf3d9a) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD( "ppong2.7f", 0x0000, 0x0020, CRC(e3a96194) SHA1(6eb54a64e9d1df6052fecb754852bd44dd9ed69e) )
+ ROM_LOAD( "ppong2.4a", 0x0020, 0x0100, CRC(dbd17cc2) SHA1(072e20975ae0453df57cfc54c344238aa311c373) )
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "ppong2.1m", 0x0000, 0x0100, CRC(0d968558) SHA1(b376885ac8452b6cbf9ced81b1080bfd570d9b91) )
+ ROM_LOAD( "82s126.3m", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) )
+ROM_END
+
+ROM_START( rainboh )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "rainboh.1", 0x0000, 0x1000, CRC(676b742e) SHA1(0ec4bd459533f3f66782d0b978a0972c66b69ed4) )
+ ROM_LOAD( "rainboh.2", 0x1000, 0x1000, CRC(3c9f1ada) SHA1(8951170cf75e5397136193ed69d920d2b9744f29) )
+ ROM_LOAD( "rainboh.3", 0x2000, 0x1000, CRC(fbad5604) SHA1(4cdc2a87712471ed2bba7dc215b584e9e2c37c39) )
+ ROM_LOAD( "rainboh.4", 0x3000, 0x1000, CRC(1af32a9b) SHA1(9830816c11342b40c056d555d6208ef1c6537557) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "rainboh.5e", 0x0000, 0x1000, CRC(c3292da2) SHA1(11d2b8cb36dfa86c08f6072e603f18074d56c2c2) )
+ ROM_LOAD( "rainboh.5f", 0x1000, 0x1000, CRC(2b7455d8) SHA1(9decb7671a97e7fd248cc05798119d82b7830097) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( seq1 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "seq1.6e", 0x0000, 0x1000, CRC(7063B724) SHA1(3A291D26BDFBF5C895D5F6AA70FC164299E8D9F1) )
+ ROM_LOAD( "seq1.6f", 0x1000, 0x1000, CRC(95DB4723) SHA1(A0C47EA05E14CEBC6493705CD2D46D1E3D12B23A) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "at.5e", 0x0000, 0x1000, CRC(EEB359BF) SHA1(36F153B5CE53475FD144AF50E4BD67B0E0B3A01F) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958FEDF9) SHA1(4A937AC02216EA8C96477D4A15522070507FB599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( seq2 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "seq2.6e", 0x0000, 0x1000, CRC(0EC135BE) SHA1(F2BA6F8EE4256420E6149853A34A2B11A3545EEA) )
+ ROM_LOAD( "seq2.6f", 0x1000, 0x1000, CRC(1B95F321) SHA1(F9D76544CCE43CE779A1BF59A01AC00297BAA82C) )
+ ROM_LOAD( "seq2.6h", 0x2000, 0x1000, CRC(5892650A) SHA1(7C63F42EA3F75FAA15C6F5864569CB6A8F8C7C79) )
+ ROM_LOAD( "seq2.6j", 0x3000, 0x1000, CRC(8612016A) SHA1(4E144069F194D240E503B24DF9B10BCDE68B2C6C) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "at.5e", 0x0000, 0x1000, CRC(EEB359BF) SHA1(36F153B5CE53475FD144AF50E4BD67B0E0B3A01F) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958FEDF9) SHA1(4A937AC02216EA8C96477D4A15522070507FB599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( snakes ) // No text, no scores. Need 2 joysticks (2nd stick is RDFG keys). If you run the snake next to an edge, gfx break.
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "snakes.1", 0x0000, 0x1000, CRC(5cba3718) SHA1(c093acd0f38e24d68c5dd618b742360976f1a3fa) )
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "puckman.5e", 0x0000, 0x0800, CRC(2066a0b7) SHA1(6d4ccc27d6be185589e08aa9f18702b679e49a4a) )
+ ROM_LOAD( "puckman.5h", 0x0800, 0x0800, CRC(3591b89d) SHA1(79bb456be6c39c1ccd7d077fbe181523131fb300) )
+ ROM_LOAD( "puckman.5f", 0x1000, 0x0800, CRC(9e39323a) SHA1(be933e691df4dbe7d12123913c3b7b7b585b7a35) )
+ ROM_LOAD( "puckman.5j", 0x1800, 0x0800, CRC(1b1d9096) SHA1(53771c573051db43e7185b1d188533056290a620) )
+
+ PACMAN_PROMS
+ROM_END
+
+/* No sound */
+ROM_START( tinyworld )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "tinyworld.1", 0x0000, 0x1000, CRC(b485503b) SHA1(c868587529f73b4e52a9a20bc04fd8a9a9543a1e) )
+ ROM_LOAD( "tinyworld.2", 0x1000, 0x1000, CRC(37862299) SHA1(bfaec22fcb6c59b0e26980b68936ae2bf2312b40) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "tinyworld.5e", 0x0000, 0x1000, CRC(38db47a4) SHA1(ae85b7d39d36b92d519653d65132ff213f6caecc) )
+ ROM_LOAD( "absurd.5f", 0x1000, 0x1000, CRC(ae9805ee) SHA1(fd90b8bb2492a39f27216e0cda09f9594a9dada7) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD( "glob.7f", 0x0000, 0x0020, CRC(1f617527) SHA1(448845cab63800a05fcb106897503d994377f78f) )
+ ROM_LOAD( "absurd.4a", 0x0020, 0x0100, CRC(9379a246) SHA1(88c84668f67afc4a5ff12e794ac37a0636bd7153) )
+
+ PACMAN_SOUND_PROMS
+ROM_END
+
+/* note: the original rom was only 3154 bytes with a CRC of 0E67D062 - the one here is padded out to normal size */
+ROM_START( tst_pacm )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "test.6e", 0x0000, 0x1000, CRC(fb645998) SHA1(ff57155533e1ec0fdc5c407dce8d270e86d33882) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( wavybug )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "lazybug.1", 0x0000, 0x1000, CRC(8cee62ee) SHA1(f33b114f3c133cb62f962ca1b2586314b73c8270) )
+ ROM_LOAD( "lazybug.2", 0x1000, 0x1000, CRC(c17a5571) SHA1(24bae96cf95f009825fd06916eeae8a06e2e35ae) )
+ ROM_LOAD( "lazybug.3", 0x2000, 0x1000, CRC(ac53ee82) SHA1(a69a71ee936ae73d5a27025528ff2c666893866d) )
+ ROM_LOAD( "wavybug.4", 0x3000, 0x1000, CRC(830c47fc) SHA1(bc802de8c89417c4df91c26c2f365e471ea5efaf) )
+ ROM_LOAD( "lazybug.5", 0x8000, 0x1000, CRC(ba11a997) SHA1(8dde84e9071bfa3e60d522a02ae5bf4464e730cf) )
+ ROM_LOAD( "lazybug.6", 0x9000, 0x1000, CRC(c8b79a5b) SHA1(abaa9c585da1ee62d4b79968bedb429a5bbb739b) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "lazybug.5e", 0x0000, 0x1000, CRC(4e72e4f5) SHA1(05188aa854034e5cd9779d4b7034ec0658ccc805) )
+ ROM_LOAD( "lazybug.5f", 0x1000, 0x1000, CRC(35eaf3a5) SHA1(6a0e5a5289003b0d8ccb9dd585a1e12a4486977c) )
+
+ PACMAN_PROMS
+ROM_END
+
+/* No sound */
+ROM_START( zap )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "zap.1", 0x0000, 0x1000, CRC(74e6e3a0) SHA1(3d953bfd57aa56f8fe61d1abd01db84d027df3bb) )
+ ROM_LOAD( "zap.2", 0x1000, 0x1000, CRC(40e1884b) SHA1(ce303b6a6c9e765c256997c19f64e9ebfd8f435e) )
+ ROM_LOAD( "zap.4", 0x3000, 0x1000, CRC(17c357e6) SHA1(6486f58592b784d53a5c14f59b25c8cd513b2a0d) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "zap.5e", 0x0000, 0x1000, CRC(a0578404) SHA1(329f3e869eecff96191642e54dbfc7b6b268f026) )
+ ROM_LOAD( "zap.5f", 0x1000, 0x1000, CRC(039b5c78) SHA1(36a96c996f20d1b5fb4f674393a03d10cdf4a091) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD( "82s123.7f", 0x0000, 0x0020, CRC(2fc650bd) SHA1(8d0268dee78e47c712202b0ec4f1f51109b1f2a5) )
+ ROM_LOAD( "crush.4a", 0x0020, 0x0100, CRC(2bc5d339) SHA1(446e234df94d9ef34c3191877bb33dd775acfdf5) )
+
+ PACMAN_SOUND_PROMS
+ROM_END
+
+/*************************************
+ *
+ * Game drivers
+ *
+ *************************************/
+
+/* Official MAME */
+
+/* rom parent machine inp init */
+GAME( 1981, abscam, puckman, piranha, mspacman, pacman_state, eyes, ROT90, "GL (US Billiards License)", "Abscam", MACHINE_SUPPORTS_SAVE )
+GAME( 1982, eyes, 0, pacman, eyes, pacman_state, eyes, ROT90, "Digitrex Techstar (Rock-ola license)", "Eyes (Digitrex Techstar)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, piranha, puckman, piranha, mspacman, pacman_state, eyes, ROT90, "GL (US Billiards License)", "Piranha", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, piranhah, puckman, pacman, mspacman, driver_device, 0, ROT90, "hack", "Piranha (hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, piranhao, puckman, piranha, mspacman, pacman_state, eyes, ROT90, "GL (US Billiards License)", "Piranha (older)", MACHINE_SUPPORTS_SAVE )
+
+
+/* Dave Widel's Games - http://www.widel.com */
+
+GAME( 2003, aa, 0, widel, mspacpls, driver_device, 0, ROT90, "David Widel", "Alien Armada", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, bace, 0, widel, mspacpls, driver_device, 0, ROT90, "David Widel", "Balloon Ace", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, dderby, 0, widel, mspacpls, driver_device, 0, ROT90, "David Widel", "Death Derby", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kangaroh, 0, woodpek, mspacpls, driver_device, 0, ROT90, "David Widel", "Kagaroo (Qbertish) (incomplete)", MACHINE_IS_INCOMPLETE | MACHINE_SUPPORTS_SAVE )
+GAME( 2003, ladybugh, lazybug, woodpek, mspacpls, driver_device, 0, ROT90, "David Widel", "Ladybug on Pacman Hardware", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, lazybug, 0, woodpek, mspacpls, driver_device, 0, ROT90, "David Widel", "Lazy Bug", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, lazybug1, lazybug, woodpek, mspacpls, driver_device, 0, ROT90, "David Widel", "Lazy Bug (Slower)", MACHINE_SUPPORTS_SAVE )
+GAME( 19??, pactest, 0, woodpek, mspacpls, driver_device, 0, ROT90, "David Widel", "Test - Pacman board test", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, ppong, 0, woodpek, mspacpls, driver_device, 0, ROT90, "David Widel", "Pong (Pacman Hardware)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, ppong2, ppong, woodpek, mspacpls, driver_device, 0, ROT90, "David Widel", "Pong (Pacman Hardware) v2", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, rainboh, 0, pacman, mspacpls, driver_device, 0, ROT90, "David Widel", "Rainbow (Incomplete)", MACHINE_IS_INCOMPLETE | MACHINE_SUPPORTS_SAVE )
+GAME( 1981, wavybug, lazybug, woodpek, mspacpls, driver_device, 0, ROT90, "David Widel", "Wavy Bug", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, zap, 0, woodpek, mspacpls, driver_device, 0, ROT90, "David Widel", "Space Zap Tribute", MACHINE_SUPPORTS_SAVE )
+
+/* Jerronimo's Progs - www.umlautllama.com */
+
+GAME( 2006, absurd, 0, pacman, mspacman, driver_device, 0, ROT90, "Scott Lawrence", "Absurd!/QuadBlok (non-working alpha ver 3)", MACHINE_IS_INCOMPLETE | MACHINE_SUPPORTS_SAVE )
+GAME( 2003, alpaca7, alpaca8, pacman, pacman0, driver_device, 0, ROT90, "Scott Lawrence", "Alpaca v0.7 (Pacman Hardware)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, alpaca8, 0, pacman, pacman0, driver_device, 0, ROT90, "Scott Lawrence", "Alpaca v0.8 (Pacman Hardware)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, pachello, 0, pachack, pacman0, driver_device, 0, ROT90, "Scott Lawrence", "Hello, World!", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, pacmatri, 0, pachack, pacman0, driver_device, 0, ROT90, "Scott Lawrence", "Matrix Effect", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, seq1, 0, pachack, pacman0, driver_device, 0, ROT90, "Scott Lawrence", "16 Step Simple Sequencer", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, seq2, seq1, pachack, pacman0, driver_device, 0, ROT90, "Scott Lawrence", "Sequencer and Music Player", MACHINE_SUPPORTS_SAVE )
+GAME( 2012, tinyworld, 0, pacman, mspacman, driver_device, 0, ROT90, "Scott Lawrence", "Tiny World 82 (demo)", MACHINE_IS_INCOMPLETE | MACHINE_SUPPORTS_SAVE )
+
+/* Other Misc Hacks */
+
+GAME( 2002, crashh, 0, woodpek, mspacpls, driver_device, 0, ROT90, "hack", "Crash", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, mtturbo, 0, pacmanp, maketrax, pacman_state, maketrax, ROT270, "Tim Arcadecollecting", "Make Trax (Turbo Hack)", MACHINE_SUPPORTS_SAVE ) // http://www.arcadecollecting.com/hacks/maketrax
+GAME( 1999, tst_pacm, 0, pacman, mspacpls, driver_device, 0, ROT90, "David Caldwell", "Test - Pacman Hardware", MACHINE_SUPPORTS_SAVE ) // http://www.porkrind.org/arcade/
+GAME( 1982, eyesb, eyes, pacman, eyes, pacman_state, eyes, ROT90, "bootleg", "Eyes (unknown bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, ghohunt, puckman, pacman, pacman0, driver_device, 0, ROT90, "Hurray Banana", "Ghost Hunt", MACHINE_SUPPORTS_SAVE )
+GAME( 2012, pactetris, puckman, pacman, pacman0, driver_device, 0, ROT90, "Ben Leperchey", "Tetris on Pacman hardware (incomplete)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, deathstar, puckman, pacman, pacman0, driver_device, 0, ROT90, "Stefano Bodrato", "Death Star", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, snakes, puckman, pacman, pacman0, driver_device, 0, ROT90, "Stefano Bodrato", "Snakes", MACHINE_SUPPORTS_SAVE )
+
+
+/*************************************************************************************************************************/
diff --git a/docs/release/src/hbmame/drivers/mappy.cpp b/docs/release/src/hbmame/drivers/mappy.cpp
new file mode 100644
index 00000000000..d80b517f855
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/mappy.cpp
@@ -0,0 +1,202 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/mappy.cpp"
+
+ROM_START( crackhea )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "mpx_3.1d", 0xa000, 0x2000, CRC(52e6c708) SHA1(b9722941438e93325e84691ada4e95620bec73b2) )
+ ROM_LOAD( "mp1_2.1c", 0xc000, 0x2000, CRC(a958a61c) SHA1(e5198703cdf47b2cd7fc9f2a5fde7bf4ab2275db) )
+ ROM_LOAD( "mpx_1.1b", 0xe000, 0x2000, CRC(203766d4) SHA1(1dbc4f42d4c16a08240a221bec27dcc3a8dd7461) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "mp1_4.1k", 0xe000, 0x2000, CRC(8182dd5b) SHA1(f36b57f7f1e79f00b3f07afe1960bca5f5325ee2) )
+
+ ROM_REGION( 0x1000, "gfx1", ROMREGION_INVERT )
+ ROM_LOAD( "crackh3b.32", 0x0000, 0x1000, CRC(912ffa7e) SHA1(e2fc4992ef7214e62acdcda6605a1e27b2739cbf) )
+
+ ROM_REGION( 0x4000, "gfx2", 0 )
+ ROM_LOAD( "crackh3m.64", 0x0000, 0x2000, CRC(a263d078) SHA1(344fae10fab0f9646f5a2b39cac09faa9745ec9b) )
+ ROM_LOAD( "crackh3n.64", 0x2000, 0x2000, CRC(3758ceb2) SHA1(152ba5a14514c0c160886d5c9a1296dea7a298aa) )
+
+ ROM_REGION( 0x0220, "proms", 0 )
+ ROM_LOAD( "mp1-5.5b", 0x0000, 0x0020, CRC(56531268) SHA1(2e356706c07f43eeb67783fb122bdc7fed1b3589) )
+ ROM_LOAD( "mp1-6.4c", 0x0020, 0x0100, CRC(50765082) SHA1(f578e14f15783acb2073644db4a2f0d196cc0957) )
+ ROM_LOAD( "mp1-7.5k", 0x0120, 0x0100, CRC(5396bd78) SHA1(2e387e5d8b8cab005f67f821b4db65d0ae8bd362) )
+
+ ROM_REGION( 0x0100, "namco", 0 )
+ ROM_LOAD( "mp1-3.3m", 0x0000, 0x0100, CRC(16a9166a) SHA1(847cbaf7c88616576c410177e066ae1d792ac0ba) )
+ROM_END
+
+ROM_START( housepty )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "housep1d.64", 0xa000, 0x2000, CRC(6f778a5d) SHA1(afe1a317f8f355ad2e83d13835c2e28137d5a5e5) )
+ ROM_LOAD( "mp1_2.1c", 0xc000, 0x2000, CRC(a958a61c) SHA1(e5198703cdf47b2cd7fc9f2a5fde7bf4ab2275db) )
+ ROM_LOAD( "housep1b.64", 0xe000, 0x2000, CRC(41a0c5b4) SHA1(74f74d679b42d51b8c850daaadc9df8889403712) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "mp1_4.1k", 0xe000, 0x2000, CRC(8182dd5b) SHA1(f36b57f7f1e79f00b3f07afe1960bca5f5325ee2) )
+
+ ROM_REGION( 0x1000, "gfx1", ROMREGION_INVERT )
+ ROM_LOAD( "housep3b.32", 0x0000, 0x1000, CRC(8d565a7e) SHA1(b2730de5ea2d19ba1e2851c27a73c6b03225a479) )
+
+ ROM_REGION( 0x4000, "gfx2", 0 )
+ ROM_LOAD( "housep3m.64", 0x0000, 0x2000, CRC(23a3c108) SHA1(266e7ca7db5f7d481f99fd295b6bdb2da3b34b93) )
+ ROM_LOAD( "housep3n.64", 0x2000, 0x2000, CRC(c6822529) SHA1(1d8658a0e014d67b5b84f33cb19a9bdd8a88f623) )
+
+ ROM_REGION( 0x0220, "proms", 0 )
+ ROM_LOAD( "mp1-5.5b", 0x0000, 0x0020, CRC(56531268) SHA1(2e356706c07f43eeb67783fb122bdc7fed1b3589) )
+ ROM_LOAD( "mp1-6.4c", 0x0020, 0x0100, CRC(50765082) SHA1(f578e14f15783acb2073644db4a2f0d196cc0957) )
+ ROM_LOAD( "mp1-7.5k", 0x0120, 0x0100, CRC(5396bd78) SHA1(2e387e5d8b8cab005f67f821b4db65d0ae8bd362) )
+
+ ROM_REGION( 0x0100, "namco", 0 )
+ ROM_LOAD( "mp1-3.3m", 0x0000, 0x0100, CRC(16a9166a) SHA1(847cbaf7c88616576c410177e066ae1d792ac0ba) )
+ROM_END
+
+ROM_START( marpy )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "mpx_3.1d", 0xa000, 0x2000, CRC(52e6c708) SHA1(b9722941438e93325e84691ada4e95620bec73b2) )
+ ROM_LOAD( "mp1_2.1c", 0xc000, 0x2000, CRC(a958a61c) SHA1(e5198703cdf47b2cd7fc9f2a5fde7bf4ab2275db) )
+ ROM_LOAD( "mpx_1.1b", 0xe000, 0x2000, CRC(203766d4) SHA1(1dbc4f42d4c16a08240a221bec27dcc3a8dd7461) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "mp1_4.1k", 0xe000, 0x2000, CRC(8182dd5b) SHA1(f36b57f7f1e79f00b3f07afe1960bca5f5325ee2) )
+
+ ROM_REGION( 0x1000, "gfx1", ROMREGION_INVERT )
+ ROM_LOAD( "marpy3b.32", 0x0000, 0x1000, CRC(2aa99047) SHA1(1ad2488066e433f2833b179b16d6500dd68ebecd) )
+
+ ROM_REGION( 0x4000, "gfx2", 0 )
+ ROM_LOAD( "marpy3m.64", 0x0000, 0x2000, CRC(ce61b84d) SHA1(33ff0ca22f347aceda084b4b8c3444a18b3d27e6) )
+ ROM_LOAD( "marpy3n.64", 0x2000, 0x2000, CRC(5d0572a7) SHA1(9afecab321dd4558efe27b00dc95a5e22154eb68) )
+
+ ROM_REGION( 0x0220, "proms", 0 )
+ ROM_LOAD( "mp1-5.5b", 0x0000, 0x0020, CRC(56531268) SHA1(2e356706c07f43eeb67783fb122bdc7fed1b3589) )
+ ROM_LOAD( "mp1-6.4c", 0x0020, 0x0100, CRC(50765082) SHA1(f578e14f15783acb2073644db4a2f0d196cc0957) )
+ ROM_LOAD( "mp1-7.5k", 0x0120, 0x0100, CRC(5396bd78) SHA1(2e387e5d8b8cab005f67f821b4db65d0ae8bd362) )
+
+ ROM_REGION( 0x0100, "namco", 0 )
+ ROM_LOAD( "mp1-3.3m", 0x0000, 0x0100, CRC(16a9166a) SHA1(847cbaf7c88616576c410177e066ae1d792ac0ba) )
+ROM_END
+
+ROM_START( superpc1 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "sp1-2.1c", 0xc000, 0x2000, CRC(4bb33d9c) SHA1(dd87f71b4db090a32a6b791079eedd17580cc741) )
+ ROM_LOAD( "superpc1.1b", 0xe000, 0x2000, CRC(cec50857) SHA1(d8470064bf8a334accedcb767f5da05d5dce00a1) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "spc-3.1k", 0xf000, 0x1000, CRC(04445ddb) SHA1(ce7d14963d5ddaefdeaf433a6f82c43cd1611d9b) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "superpc1.3c", 0x0000, 0x1000, CRC(1c72ed9e) SHA1(31833bd244ff0b61419566eae4f53bdd76a5a0e8) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "superpc1.3f", 0x0000, 0x2000, CRC(89f07757) SHA1(642ca413cf27496322e4840998cdb711e3c682e0) )
+
+ ROM_REGION( 0x0220, "proms", 0 )
+ ROM_LOAD( "superpac.4c", 0x0000, 0x0020, CRC(9ce22c46) SHA1(d97f53ef4c5ef26659a22ed0de4ce7ef3758c924) )
+ ROM_LOAD( "superpac.4e", 0x0020, 0x0100, CRC(1253c5c1) SHA1(df46a90170e9761d45c90fbd04ef2aa1e8c9944b) )
+ ROM_LOAD( "superpac.3l", 0x0120, 0x0100, CRC(d4d7026f) SHA1(a486573437c54bfb503424574ad82655491e85e1) )
+
+ ROM_REGION( 0x0100, "namco", 0 )
+ ROM_LOAD( "superpc1.3m", 0x0000, 0x0100, CRC(e35238c7) SHA1(c55bd51a44b4c9899ca65f47ede952ca2714ce8e) )
+ROM_END
+
+ROM_START( superpcn )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "spc-2.1c", 0xc000, 0x2000, CRC(1a38c30e) SHA1(ae0ee9f3df0991a80698fe745a7a853a4bb60710) )
+ ROM_LOAD( "spc-1.1b", 0xe000, 0x2000, CRC(730e95a9) SHA1(ca73c8bcb03c2f5c05968c707a5d3f7f9956b886) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "spc-3.1k", 0xf000, 0x1000, CRC(04445ddb) SHA1(ce7d14963d5ddaefdeaf433a6f82c43cd1611d9b) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "sp1-6.3c", 0x0000, 0x1000, CRC(91c5935c) SHA1(10579edabc26a0910253fab7d41b4c19ecdaaa09) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "spv-2.3f", 0x0000, 0x2000, CRC(670a42f2) SHA1(9171922df07e31fd1dc415766f7d2cc50a9d10dc) )
+
+ ROM_REGION( 0x0220, "proms", 0 )
+ ROM_LOAD( "superpac.4c", 0x0000, 0x0020, CRC(9ce22c46) SHA1(d97f53ef4c5ef26659a22ed0de4ce7ef3758c924) )
+ ROM_LOAD( "superpac.4e", 0x0020, 0x0100, CRC(1253c5c1) SHA1(df46a90170e9761d45c90fbd04ef2aa1e8c9944b) )
+ ROM_LOAD( "superpac.3l", 0x0120, 0x0100, CRC(d4d7026f) SHA1(a486573437c54bfb503424574ad82655491e85e1) )
+
+ ROM_REGION( 0x0100, "namco", 0 )
+ ROM_LOAD( "superpac.3m", 0x0000, 0x0100, CRC(ad43688f) SHA1(072f427453efb1dda8147da61804fff06e1bc4d5) )
+ROM_END
+
+ROM_START( superpcp )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "spc-2.1c", 0xc000, 0x2000, CRC(1a38c30e) SHA1(ae0ee9f3df0991a80698fe745a7a853a4bb60710) )
+ ROM_LOAD( "spc-1.1b", 0xe000, 0x2000, CRC(730e95a9) SHA1(ca73c8bcb03c2f5c05968c707a5d3f7f9956b886) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "spc-3.1k", 0xf000, 0x1000, CRC(04445ddb) SHA1(ce7d14963d5ddaefdeaf433a6f82c43cd1611d9b) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "spv-1.3c", 0x0000, 0x1000, CRC(78337e74) SHA1(11222adb55e6bce508896ccb1f6dbab0c1d44e5b) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "spcp-2.3f", 0x0000, 0x2000, CRC(0d52ef4d) SHA1(9db8d36d80db8622dd129e8db01ef507f0e5e926) )
+
+ ROM_REGION( 0x0220, "proms", 0 )
+ ROM_LOAD( "superpac.4c", 0x0000, 0x0020, CRC(9ce22c46) SHA1(d97f53ef4c5ef26659a22ed0de4ce7ef3758c924) )
+ ROM_LOAD( "superpac.4e", 0x0020, 0x0100, CRC(1253c5c1) SHA1(df46a90170e9761d45c90fbd04ef2aa1e8c9944b) )
+ ROM_LOAD( "superpac.3l", 0x0120, 0x0100, CRC(d4d7026f) SHA1(a486573437c54bfb503424574ad82655491e85e1) )
+
+ ROM_REGION( 0x0100, "namco", 0 )
+ ROM_LOAD( "superpac.3m", 0x0000, 0x0100, CRC(ad43688f) SHA1(072f427453efb1dda8147da61804fff06e1bc4d5) )
+ROM_END
+
+ROM_START( superpcs )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "sp1-2.1c", 0xc000, 0x2000, CRC(4bb33d9c) SHA1(dd87f71b4db090a32a6b791079eedd17580cc741) )
+ ROM_LOAD( "superpcs.1b", 0xe000, 0x2000, CRC(8df321c2) SHA1(f8e0a004042be3003534b226a80ab7104f684e26) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "spc-3.1k", 0xf000, 0x1000, CRC(04445ddb) SHA1(ce7d14963d5ddaefdeaf433a6f82c43cd1611d9b) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "superpcs.3c", 0x0000, 0x1000, CRC(3a4f438d) SHA1(ca333d02c94380d4fc4b56c8cc5f7269157ac371) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "superpcs.3f", 0x0000, 0x2000, CRC(d477484e) SHA1(edf724a3a53c0bfd18aaa55e452b47c8b54b223e) )
+
+ ROM_REGION( 0x0220, "proms", 0 )
+ ROM_LOAD( "superpcs.4c", 0x0000, 0x0020, CRC(5508bfda) SHA1(29aaf77e2a1dda241da31ad83e43186b9ec491f1) )
+ ROM_LOAD( "superpac.4e", 0x0020, 0x0100, CRC(1253c5c1) SHA1(df46a90170e9761d45c90fbd04ef2aa1e8c9944b) )
+ ROM_LOAD( "superpac.3l", 0x0120, 0x0100, CRC(d4d7026f) SHA1(a486573437c54bfb503424574ad82655491e85e1) )
+
+ ROM_REGION( 0x0100, "namco", 0 )
+ ROM_LOAD( "superpcs.3m", 0x0000, 0x0100, CRC(06acd480) SHA1(4963bd69e8718cf3fd08f06a5f03fe153c380af4) )
+ROM_END
+
+ROM_START( vectrsup )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "spc-2.1c", 0xc000, 0x2000, CRC(1a38c30e) SHA1(ae0ee9f3df0991a80698fe745a7a853a4bb60710) )
+ ROM_LOAD( "spc-1.1b", 0xe000, 0x2000, CRC(730e95a9) SHA1(ca73c8bcb03c2f5c05968c707a5d3f7f9956b886) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "spc-3.1k", 0xf000, 0x1000, CRC(04445ddb) SHA1(ce7d14963d5ddaefdeaf433a6f82c43cd1611d9b) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "vecsup-1.3c", 0x0000, 0x1000, CRC(618db633) SHA1(3930a12c0d76d55b3ff40cc9deca20b01c6c9f9b) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "vecsup-2.3f", 0x0000, 0x2000, CRC(62c09c6c) SHA1(f1c65b594c293b6a4eb459eac80fe28929c64eb6) )
+
+ ROM_REGION( 0x0220, "proms", 0 )
+ ROM_LOAD( "superpac.4c", 0x0000, 0x0020, CRC(9ce22c46) SHA1(d97f53ef4c5ef26659a22ed0de4ce7ef3758c924) )
+ ROM_LOAD( "superpac.4e", 0x0020, 0x0100, CRC(1253c5c1) SHA1(df46a90170e9761d45c90fbd04ef2aa1e8c9944b) )
+ ROM_LOAD( "superpac.3l", 0x0120, 0x0100, CRC(d4d7026f) SHA1(a486573437c54bfb503424574ad82655491e85e1) )
+
+ ROM_REGION( 0x0100, "namco", 0 )
+ ROM_LOAD( "superpac.3m", 0x0000, 0x0100, CRC(ad43688f) SHA1(072f427453efb1dda8147da61804fff06e1bc4d5) )
+ROM_END
+
+GAME( 1998, crackhea, mappy, mappy, mappy, mappy_state, mappy, ROT90, "Cary Barnhard", "Crackhead", MACHINE_SUPPORTS_SAVE ) // transparency error
+GAME( 1998, housepty, mappy, mappy, mappy, mappy_state, mappy, ROT90, "Jerky", "House Party", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, marpy, mappy, mappy, mappy, mappy_state, mappy, ROT90, "Marks Hacks", "Marpy", MACHINE_SUPPORTS_SAVE ) // transparency error
+GAME( 2011, superpc1, superpac, superpac, superpac, mappy_state, superpac, ROT90, "Paul Smith", "Super Pac-Man (Super Locksmith sound and gfx hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, superpcn, superpac, superpac, superpac, mappy_state, superpac, ROT90, "Namco", "Super Pac-Man (Namco)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, superpcp, superpac, superpac, superpac, mappy_state, superpac, ROT90, "Blue Justice", "Super Pac-Man Plus", MACHINE_SUPPORTS_SAVE )
+GAME( 2011, superpcs, superpac, superpac, superpac, mappy_state, superpac, ROT90, "Paul Smith", "Super Pac-Man (always small)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, vectrsup, superpac, superpac, superpac, mappy_state, superpac, ROT90, "T-Bone", "Super Pac-Man (Vector sim)", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/marinedt.cpp b/docs/release/src/hbmame/drivers/marinedt.cpp
new file mode 100644
index 00000000000..d37d07cac16
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/marinedt.cpp
@@ -0,0 +1,699 @@
+/*
+---------------------------
+Marine Date by TAITO (1981)
+---------------------------
+a static underwater scene with obstacles in it, like seaweed,
+crabs and other stuff. You have a limited number of "strokes"
+per screen as well as a timer to work against. Your goal is
+to *bounce* yourself around the screen using *Strokes* on the
+trackball to try to reach a *female* octopus before you run out
+of strokes or time. You sort of bounce yourself around the screen
+like a billiard ball would bounce, but once in a while bubbles
+and other stuff will come up from underneath you and carry you
+away from where you are trying to get. When you reach your goal
+you get another more difficult screen, etc.
+
+-------------------------------------------------------------------------
+
+
+todo:
+in cocktail mode p1 is flipped
+after inking the shark on the far right octi was moved to goal?
+for the colours, goal has to be black otherwise it would register
+ as a hit, is goal pen 0 or 6?
+rom writes when finishing a game
+ worth looking at before the collision is correct?
+playing dot hit when eaten by a shark?
+dont use any ints, s/b uint8_t?
+enemy sprite not disabled at end of game
+tilemap
+palette may only be around 4 colours
+ is 14 the palette?
+how do you know if you've got any ink left?
+prom 14 is the top bits? 4 bpp? or so?
+why is level 37 chosen?
+should it be 30fps?
+ check other taito games of the time
+look at other taito 1981 games for ideas on the ports
+ bking
+ jhunt?
+"Marine Deto" or "Marine Date"
+ look in the roms for all the text
+simplify gfx decode
+why does the player sprite need 4 colours?
+ check if more than 1 are used
+check service test ram wipes for confirmation of ram spots
+ anything after trackball test?
+obj1 to obj2 draw order
+2nd trackball
+flip/cocktail issues
+
+done:
+timer?
+ you get 200 for each shot, don't think it's actually a timer
+have I been using x/y consistently, i.e. non rotated or rotated origin?
+ yes, seems to be best using xy raw (i.e. non-rotated)
+p2 ink doesn't always light up in test mode
+ after p1 ink pressed, p2 ink doesn't light up
+ this is correct behavior if DSW set as Upright mode
+
+Background should be blue. In-game, it is black above the water. Scores have a blue background.
+*/
+
+#include "emu.h"
+#include "cpu/z80/z80.h"
+#include "screen.h"
+
+class marinedt_state : public driver_device
+{
+public:
+ marinedt_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag)
+ , m_tx_tileram(*this, "tx_tileram")
+ , m_maincpu(*this, "maincpu")
+ , m_gfxdecode(*this, "gfxdecode")
+ , m_palette(*this, "palette")
+ { }
+
+ DECLARE_WRITE8_MEMBER(tx_tileram_w);
+ DECLARE_READ8_MEMBER(marinedt_port1_r);
+ DECLARE_READ8_MEMBER(marinedt_coll_r);
+ DECLARE_READ8_MEMBER(marinedt_obj1_x_r);
+ DECLARE_READ8_MEMBER(marinedt_obj1_yr_r);
+ DECLARE_READ8_MEMBER(marinedt_obj1_yq_r);
+ DECLARE_WRITE8_MEMBER(marinedt_obj1_a_w);
+ DECLARE_WRITE8_MEMBER(marinedt_obj1_x_w);
+ DECLARE_WRITE8_MEMBER(marinedt_obj1_y_w);
+ DECLARE_WRITE8_MEMBER(marinedt_obj2_a_w);
+ DECLARE_WRITE8_MEMBER(marinedt_obj2_x_w);
+ DECLARE_WRITE8_MEMBER(marinedt_obj2_y_w);
+ DECLARE_WRITE8_MEMBER(marinedt_music_w);
+ DECLARE_WRITE8_MEMBER(marinedt_sound_w);
+ DECLARE_WRITE8_MEMBER(marinedt_pd_w);
+ DECLARE_WRITE8_MEMBER(marinedt_pf_w);
+ TILE_GET_INFO_MEMBER(get_tile_info);
+ DECLARE_PALETTE_INIT(marinedt);
+ uint32_t screen_update_marinedt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+
+private:
+
+ std::unique_ptr<bitmap_ind16> m_tile;
+ std::unique_ptr<bitmap_ind16> m_obj1;
+ std::unique_ptr<bitmap_ind16> m_obj2;
+ tilemap_t *m_tx_tilemap;
+ uint8_t m_obj1_a;
+ uint8_t m_obj1_x;
+ uint8_t m_obj1_y;
+ uint8_t m_obj2_a;
+ uint8_t m_obj2_x;
+ uint8_t m_obj2_y;
+ uint8_t m_pd;
+ uint8_t m_pf;
+ uint8_t m_music;
+ uint8_t m_sound;
+ uint8_t m_coll;
+ uint8_t m_cx;
+ uint8_t m_cyr;
+ uint8_t m_cyq;
+ uint8_t m_collh;
+ uint8_t m_cxh;
+ uint8_t m_cyrh;
+ uint8_t m_cyqh;
+ virtual void machine_start() override;
+ virtual void machine_reset() override;
+ virtual void video_start() override;
+ required_shared_ptr<uint8_t> m_tx_tileram;
+ required_device<cpu_device> m_maincpu;
+ required_device<gfxdecode_device> m_gfxdecode;
+ required_device<palette_device> m_palette;
+};
+
+
+WRITE8_MEMBER(marinedt_state::tx_tileram_w)
+{
+ m_tx_tileram[offset] = data;
+ m_tx_tilemap->mark_tile_dirty(offset);
+}
+
+READ8_MEMBER(marinedt_state::marinedt_port1_r)
+{
+ //might need to be reversed for cocktail stuff
+
+ /* x/y multiplexed */
+ return ioport(((m_pf & 0x08) >> 3) ? "TRACKY" : "TRACKX")->read();
+}
+
+READ8_MEMBER(marinedt_state::marinedt_coll_r)
+{
+ //76543210
+ //x------- obj1 to obj2 collision
+ //-xxx---- unused
+ //----x--- obj1 to playfield collision
+ //-----xxx unused
+
+ return m_coll | m_collh;
+}
+
+//are these returning only during a collision?
+//I'd imagine they are returning the pf char where the collision took place?
+//what about where there is lots of collisions?
+//maybe the first on a scanline basis
+READ8_MEMBER(marinedt_state::marinedt_obj1_x_r)
+{
+ //76543210
+ //xxxx---- unknown
+ //----xxxx x pos in tile ram
+
+ uint8_t *RAM = memregion("maincpu")->base();
+
+ if (RAM[0x430e])
+ --m_cx;
+ else
+ ++m_cx;
+
+ //figure out why inc/dec based on 430e?
+ return m_cx | (m_cxh << 4);
+}
+
+READ8_MEMBER(marinedt_state::marinedt_obj1_yr_r)
+{
+ //76543210
+ //xxxx---- unknown
+ //----xxxx row in current screen quarter
+
+
+ //has to be +1 if cx went over?
+ if (m_cx == 0x10)
+ m_cyr++;
+
+ return m_cyr | (m_cyrh << 4);
+}
+
+READ8_MEMBER(marinedt_state::marinedt_obj1_yq_r)
+{
+ //76543210
+ //xx------ unknown
+ //--xx---- screen quarter when flipped?
+ //----xx-- unknown
+ //------xx screen quarter
+
+ return m_cyq | (m_cyqh << 4);
+}
+
+WRITE8_MEMBER(marinedt_state::marinedt_obj1_a_w){ m_obj1_a = data; }
+WRITE8_MEMBER(marinedt_state::marinedt_obj1_x_w){ m_obj1_x = data; }
+WRITE8_MEMBER(marinedt_state::marinedt_obj1_y_w){ m_obj1_y = data; }
+WRITE8_MEMBER(marinedt_state::marinedt_obj2_a_w){ m_obj2_a = data; }
+WRITE8_MEMBER(marinedt_state::marinedt_obj2_x_w){ m_obj2_x = data; }
+WRITE8_MEMBER(marinedt_state::marinedt_obj2_y_w){ m_obj2_y = data; }
+
+WRITE8_MEMBER(marinedt_state::marinedt_music_w){ m_music = data; }
+
+WRITE8_MEMBER(marinedt_state::marinedt_sound_w)
+{
+ //76543210
+ //xx------ ??
+ //--x----- jet sound
+ //---x---- foam
+ //----x--- ink
+ //-----x-- collision
+ //------x- dots hit
+ //-------x ??
+
+ m_sound = data;
+}
+
+WRITE8_MEMBER(marinedt_state::marinedt_pd_w)
+{
+ //76543210
+ //xxx----- ?? unused
+ //---x---- ?? the rest should be used based on the table
+ //----x--- ??
+ //-----x-- ??
+ //------x- obj2 enable
+ //-------x obj1 enable
+
+ m_pd = data;
+}
+
+/*
+upright
+marinedt_pf_w: 00 // upright
+marinedt_pf_w: 01 // ??
+
+cocktail
+marinedt_pf_w: 02 // cocktail
+marinedt_pf_w: 03 // ??
+
+marinedt_pf_w: 01 // upright
+marinedt_pf_w: 05 // flip sprite?
+
+marinedt_pf_w: 07 // cocktail
+marinedt_pf_w: 03 // non-flip sprite?
+*/
+WRITE8_MEMBER(marinedt_state::marinedt_pf_w)
+{
+ //76543210
+ //xxxx---- ?? unused (will need to understand table of written values)
+ //----x--- xy trackball select
+ //-----x-- ?? flip screen/controls
+ //------x- ?? upright/cocktail
+ //-------x ?? service mode (coin lockout??)
+
+
+ //if ((m_pf & 0x07) != (data & 0x07))
+ // osd_printf_debug("marinedt_pf_w: %02x\n", data & 0x07);
+
+ if ((m_pf & 0x02) != (data & 0x02))
+ {
+ if (data & 0x02)
+ osd_printf_debug("tile flip\n");
+ else
+ osd_printf_debug("tile non-flip\n");
+
+ if (data & 0x02)
+ m_tx_tilemap->set_flip(TILEMAP_FLIPX | TILEMAP_FLIPY);
+ else
+ m_tx_tilemap->set_flip(0);
+ }
+
+ m_pf = data;
+
+ //if (data & 0xf0)
+ // logerror("pf:%02x %d\n", m_pf);
+ //logerror("pd:%02x %d\n", m_pd, m_screen->frame_number());
+
+}
+
+static ADDRESS_MAP_START( marinedt_map, AS_PROGRAM, 8, marinedt_state )
+ AM_RANGE(0x0000, 0x37ff) AM_ROM
+ AM_RANGE(0x4000, 0x43ff) AM_RAM
+ AM_RANGE(0x4400, 0x47ff) AM_RAM //unused, vram mirror?
+ AM_RANGE(0x4800, 0x4bff) AM_RAM_WRITE(tx_tileram_w) AM_SHARE("tx_tileram")
+ AM_RANGE(0x4c00, 0x4c00) AM_WRITENOP //?? maybe off by one error
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( marinedt_io_map, AS_IO, 8, marinedt_state )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
+ AM_RANGE(0x00, 0x00) AM_READ_PORT("DSW0") //dips coinage
+ AM_RANGE(0x01, 0x01) AM_READ(marinedt_port1_r) //trackball xy muxed
+ AM_RANGE(0x02, 0x02) AM_READWRITE(marinedt_obj1_x_r, marinedt_obj1_a_w)
+ AM_RANGE(0x03, 0x03) AM_READ_PORT("IN0") AM_WRITE(marinedt_obj1_x_w)
+ AM_RANGE(0x04, 0x04) AM_READ_PORT("DSW1") AM_WRITE(marinedt_obj1_y_w)
+ AM_RANGE(0x05, 0x05) AM_WRITE(marinedt_music_w)
+ AM_RANGE(0x06, 0x06) AM_READWRITE(marinedt_obj1_yr_r, marinedt_sound_w)
+ AM_RANGE(0x08, 0x08) AM_WRITE(marinedt_obj2_a_w)
+ AM_RANGE(0x09, 0x09) AM_WRITE(marinedt_obj2_x_w)
+ AM_RANGE(0x0a, 0x0a) AM_READWRITE(marinedt_obj1_yq_r, marinedt_obj2_y_w)
+ AM_RANGE(0x0d, 0x0d) AM_WRITE(marinedt_pd_w)
+ //AM_RANGE(0x0e, 0x0e) AM_READWRITE(marinedt_coll_r, watchdog_reset_w)
+ AM_RANGE(0x0e, 0x0e) AM_READ(marinedt_coll_r) AM_WRITENOP
+ AM_RANGE(0x0f, 0x0f) AM_WRITE(marinedt_pf_w)
+ADDRESS_MAP_END
+
+
+static INPUT_PORTS_START( marinedt )
+ PORT_START("DSW0")
+ PORT_DIPNAME( 0x0f, 0x00, DEF_STR( Coin_A ) )
+ PORT_DIPSETTING( 0x0f, DEF_STR( 9C_1C ) )
+ PORT_DIPSETTING( 0x0e, DEF_STR( 8C_1C ) )
+ PORT_DIPSETTING( 0x0d, DEF_STR( 7C_1C ) )
+ PORT_DIPSETTING( 0x0c, DEF_STR( 6C_1C ) )
+ PORT_DIPSETTING( 0x0b, DEF_STR( 5C_1C ) )
+ PORT_DIPSETTING( 0x0a, DEF_STR( 4C_1C ) )
+ PORT_DIPSETTING( 0x09, DEF_STR( 3C_1C ) )
+ PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) )
+ 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( 1C_4C ) )
+ PORT_DIPSETTING( 0x04, DEF_STR( 1C_5C ) )
+ PORT_DIPSETTING( 0x05, DEF_STR( 1C_6C ) )
+ PORT_DIPSETTING( 0x06, DEF_STR( 1C_7C ) )
+ PORT_DIPSETTING( 0x07, DEF_STR( 1C_8C ) )
+ PORT_DIPNAME( 0xf0, 0x00, DEF_STR( Coin_B ) )
+ PORT_DIPSETTING( 0xf0, DEF_STR( 9C_1C ) )
+ PORT_DIPSETTING( 0xe0, DEF_STR( 8C_1C ) )
+ PORT_DIPSETTING( 0xd0, DEF_STR( 7C_1C ) )
+ PORT_DIPSETTING( 0xc0, DEF_STR( 6C_1C ) )
+ PORT_DIPSETTING( 0xb0, DEF_STR( 5C_1C ) )
+ PORT_DIPSETTING( 0xa0, DEF_STR( 4C_1C ) )
+ PORT_DIPSETTING( 0x90, DEF_STR( 3C_1C ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
+ PORT_DIPSETTING( 0x10, DEF_STR( 1C_2C ) )
+ PORT_DIPSETTING( 0x20, DEF_STR( 1C_3C ) )
+ PORT_DIPSETTING( 0x30, DEF_STR( 1C_4C ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( 1C_5C ) )
+ PORT_DIPSETTING( 0x50, DEF_STR( 1C_6C ) )
+ PORT_DIPSETTING( 0x60, DEF_STR( 1C_7C ) )
+ PORT_DIPSETTING( 0x70, DEF_STR( 1C_8C ) )
+
+ PORT_START("IN0")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 )
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 )
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SERVICE1 )
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_TILT )
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 )
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2)
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_START2 )
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_START1 )
+
+ PORT_START("DSW1")
+ PORT_DIPNAME( 0x01, 0x00, DEF_STR( Bonus_Life ) )
+ PORT_DIPSETTING( 0x01, "5000" )
+ PORT_DIPSETTING( 0x00, "10000" )
+//cheat?
+ PORT_DIPNAME( 0x02, 0x00, "ignore internal bounce?" ) //maybe die / bounce off rocks & coral?
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( On ) )
+//freezes the game before the reset
+//doesn't seem to be done as a dip, but what about mixing with dips like this?
+ PORT_SERVICE( 0x04, IP_ACTIVE_HIGH )
+ PORT_DIPNAME( 0x08, 0x08, DEF_STR( Cabinet ) )
+ PORT_DIPSETTING( 0x08, DEF_STR( Upright ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
+ PORT_DIPNAME( 0x10, 0x00, "Coin Chutes" )
+ PORT_DIPSETTING( 0x00, "Common" )
+ PORT_DIPSETTING( 0x10, "Individual" )
+ PORT_DIPNAME( 0x20, 0x00, "Year Display" )
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Lives ) )
+ PORT_DIPSETTING( 0x00, "3" )
+ PORT_DIPSETTING( 0x40, "4" )
+ PORT_DIPSETTING( 0x80, "5" )
+ PORT_DIPSETTING( 0xc0, "6" )
+
+ PORT_START("TRACKX") /* FAKE MUXED */
+//check all bits are used
+ PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) PORT_REVERSE
+
+ PORT_START("TRACKY") /* FAKE MUXED */
+ PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10)
+INPUT_PORTS_END
+
+static const gfx_layout marinedt_charlayout =
+{
+ 8,8,
+ RGN_FRAC(1,3),
+ 3,
+ { RGN_FRAC(2,3), RGN_FRAC(1,3), RGN_FRAC(0,3) }, //maybe 120
+ { STEP8(0,1) },
+ { STEP8(0,8) },
+ 8*8
+};
+
+static const gfx_layout marinedt_objlayout =
+{
+ 32,32,
+ RGN_FRAC(1,1),
+ 2,
+ { 0, 4 },
+ { STEP4(32*8*7,1), STEP4(32*8*6,1), STEP4(32*8*5,1), STEP4(32*8*4,1), STEP4(32*8*3,1), STEP4(32*8*2,1), STEP4(32*8*1,1), STEP4(32*8*0,1) },
+ { STEP16(0,8), STEP16(16*8,8) },
+ 32*32*2
+};
+
+static GFXDECODE_START( marinedt )
+ GFXDECODE_ENTRY( "gfx1", 0, marinedt_charlayout, 0, 4 ) //really only 1 colour set?
+ GFXDECODE_ENTRY( "gfx2", 0, marinedt_objlayout, 48, 4 )
+ GFXDECODE_ENTRY( "gfx3", 0, marinedt_objlayout, 32, 4 )
+GFXDECODE_END
+
+PALETTE_INIT_MEMBER(marinedt_state, marinedt)
+{
+ const uint8_t *color_prom = memregion("proms")->base();
+ int i,r,b,g;
+
+ for (i = 0; i < palette.entries(); i++)
+ {
+ int bit0, bit1, bit2;
+
+ /* red component */
+ bit0 = (~color_prom[i] >> 0) & 0x01;
+ bit1 = (~color_prom[i] >> 1) & 0x01;
+ bit2 = (~color_prom[i] >> 2) & 0x01;
+// *(palette++) = 0x92 * bit0 + 0x46 * bit1 + 0x27 * bit2;
+ r = 0x27 * bit0 + 0x46 * bit1 + 0x92 * bit2;
+ /* green component */
+ bit0 = (~color_prom[i] >> 3) & 0x01;
+ bit1 = (~color_prom[i] >> 4) & 0x01;
+ bit2 = (~color_prom[i] >> 5) & 0x01;
+// *(palette++) = 0x92 * bit0 + 0x46 * bit1 + 0x27 * bit2;
+ g = 0x27 * bit0 + 0x46 * bit1 + 0x92 * bit2;
+ /* blue component */
+ bit0 = (~color_prom[i] >> 5) & 0x01;
+ bit1 = (~color_prom[i] >> 6) & 0x01;
+ bit2 = (~color_prom[i] >> 7) & 0x01;
+bit0 = 0;
+// *(palette++) = 0x92 * bit0 + 0x46 * bit1 + 0x27 * bit2;
+ b = 0x27 * bit0 + 0x46 * bit1 + 0x92 * bit2;
+
+ palette.set_pen_color(i, rgb_t(r, g, b));
+ }
+}
+
+
+TILE_GET_INFO_MEMBER(marinedt_state::get_tile_info)
+{
+ int code = m_tx_tileram[tile_index];
+ int color = 0;
+ int flags = TILE_FLIPX;
+
+ SET_TILE_INFO_MEMBER(0, code, color, flags);
+}
+
+void marinedt_state::video_start()
+{
+ m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(marinedt_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+
+ m_tx_tilemap->set_transparent_pen(0);
+ m_tx_tilemap->set_scrolldx(0, 4*8);
+ m_tx_tilemap->set_scrolldy(0, -4*8);
+
+ m_tile = std::make_unique<bitmap_ind16>(32 * 8, 32 * 8);
+ m_obj1 = std::make_unique<bitmap_ind16>(32, 32);
+ m_obj2 = std::make_unique<bitmap_ind16>(32, 32);
+}
+
+
+// x------- flipy
+// -x------ unused ??
+// --xxx--- sprite code
+// -----x-- bank
+// ------xx colour
+
+#define OBJ_CODE(a) ((((a) & 0x04) << 1) + (((a) & 0x38) >> 3))
+#define OBJ_COLOR(a) ((a) & 0x03)
+#define OBJ_X(x) (256 - 32 - (x))
+#define OBJ_Y(y) (256 - 1 - (y))
+#define OBJ_FLIPX(a) ((m_pf & 0x02) == 0)
+#define OBJ_FLIPY(a) ((a) & 0x80)
+
+uint32_t marinedt_state::screen_update_marinedt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+{
+ int sx, sy;
+
+ m_tile->fill(0);
+ m_tx_tilemap->draw(screen, *m_tile, cliprect, 0, 0);
+
+ m_obj1->fill(0);
+ m_gfxdecode->gfx(1)->transpen(*m_obj1,m_obj1->cliprect(),
+ OBJ_CODE(m_obj1_a),
+ OBJ_COLOR(m_obj1_a),
+ OBJ_FLIPX(m_obj1_a), OBJ_FLIPY(m_obj1_a),
+ 0, 0, 0);
+
+ m_obj2->fill(0);
+ m_gfxdecode->gfx(2)->transpen(*m_obj2,m_obj2->cliprect(),
+ OBJ_CODE(m_obj2_a),
+ OBJ_COLOR(m_obj2_a),
+ OBJ_FLIPX(m_obj2_a), OBJ_FLIPY(m_obj2_a),
+ 0, 0, 0);
+
+ bitmap.fill(0);
+
+ if (m_pd & 0x02)
+ copybitmap_trans(bitmap, *m_obj2, 0, 0, OBJ_X(m_obj2_x), OBJ_Y(m_obj2_y), cliprect, 0);
+
+ if (m_pd & 0x01)
+ copybitmap_trans(bitmap, *m_obj1, 0, 0, OBJ_X(m_obj1_x), OBJ_Y(m_obj1_y), cliprect, 0);
+
+ copybitmap_trans(bitmap, *m_tile, 0, 0, 0, 0, cliprect, 0);
+
+ m_coll = m_cx = m_cyr = m_cyq = 0;
+ if (m_pd & 0x01)
+ {
+ for (sx = 0; sx < 32; sx++)
+ for (sy = 0; sy < 32; sy++)
+ {
+ int x = OBJ_X(m_obj1_x) + sx;
+ int y = OBJ_Y(m_obj1_y) + sy;
+
+ if (!cliprect.contains(x, y))
+ continue;
+
+ if (m_obj1->pix16(sy, sx) == 0)
+ continue;
+
+ if (m_tile->pix16(y, x) != 0)
+ {
+ m_coll = 0x08;
+
+ m_cx = (x % 128) / 8;
+ m_cx &= 0x0f;
+
+ m_cyr = ((y % 64) / 8) * 2 + (x > 127 ? 1 : 0);
+ m_cyr &= 0x0f;
+
+ m_cyq = y / 64;
+ m_cyq &= 0x0f;
+
+ break;
+ }
+ }
+ }
+
+ m_collh = m_cxh = m_cyrh = m_cyqh = 0;
+ if ((m_pd & 0x03) == 0x03)
+ {
+ for (sx = 0; sx < 32; sx++)
+ for (sy = 0; sy < 32; sy++)
+ {
+ int x = OBJ_X(m_obj1_x + sx);
+ int y = OBJ_Y(m_obj1_y + sy);
+
+ int xx = OBJ_X(m_obj2_x) - x;
+ int yy = OBJ_Y(m_obj2_y) - y;
+
+ if (xx < 0 || xx >= 32 || yy < 0 || yy >= 32)
+ continue;
+
+ if (m_obj1->pix16(sy, sx) == 0)
+ continue;
+
+ if (m_obj2->pix16(yy, xx) != 0)
+ {
+ m_collh = 0x80;
+
+ m_cxh = (x % 128) / 8;
+ m_cxh &= 0x0f;
+
+ m_cyrh = ((y % 64) / 8) * 2 + (x > 127 ? 1 : 0);
+ m_cyrh &= 0x0f;
+
+ m_cyqh= y / 64;
+ m_cyqh &= 0x0f;
+
+ break;
+ }
+ }
+ }
+ return 0;
+}
+
+void marinedt_state::machine_start()
+{
+ save_item(NAME(m_obj1_a));
+ save_item(NAME(m_obj1_x));
+ save_item(NAME(m_obj1_y));
+ save_item(NAME(m_obj2_a));
+ save_item(NAME(m_obj2_x));
+ save_item(NAME(m_obj2_y));
+ save_item(NAME(m_pd));
+ save_item(NAME(m_pf));
+ save_item(NAME(m_music));
+ save_item(NAME(m_sound));
+ save_item(NAME(m_coll));
+ save_item(NAME(m_cx));
+ save_item(NAME(m_cyr));
+ save_item(NAME(m_cyq));
+ save_item(NAME(m_collh));
+ save_item(NAME(m_cxh));
+ save_item(NAME(m_cyrh));
+ save_item(NAME(m_cyqh));
+}
+
+void marinedt_state::machine_reset()
+{
+ m_obj1_a = 0;
+ m_obj1_x = 0;
+ m_obj1_y = 0;
+ m_obj2_a = 0;
+ m_obj2_x = 0;
+ m_obj2_y = 0;
+ m_pd = 0;
+ m_pf = 0;
+ m_music = 0;
+ m_sound = 0;
+ m_coll = 0;
+ m_cx = 0;
+ m_cyr = 0;
+ m_cyq = 0;
+ m_collh = 0;
+ m_cxh = 0;
+ m_cyrh = 0;
+ m_cyqh = 0;
+}
+
+static MACHINE_CONFIG_START( marinedt, marinedt_state )
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", Z80,10000000/4)
+ MCFG_CPU_PROGRAM_MAP(marinedt_map)
+ MCFG_CPU_IO_MAP(marinedt_io_map)
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", marinedt_state, irq0_line_hold)
+
+ /* video hardware */
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_REFRESH_RATE(60)
+ MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
+ MCFG_SCREEN_SIZE(4*8+32*8, 32*8)
+ MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 4*8, 32*8-1)
+ MCFG_SCREEN_UPDATE_DRIVER(marinedt_state, screen_update_marinedt)
+ MCFG_SCREEN_PALETTE("palette")
+
+ MCFG_GFXDECODE_ADD("gfxdecode", "palette", marinedt)
+ MCFG_PALETTE_ADD("palette", 64)
+ MCFG_PALETTE_INIT_OWNER(marinedt_state, marinedt)
+
+ /* sound hardware */
+ //discrete sound
+MACHINE_CONFIG_END
+
+
+/***************************************************************************
+
+ Game driver(s)
+
+***************************************************************************/
+
+ROM_START( marinedt )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "mg01.3d", 0x0000, 0x0800, CRC(ad09f04d) SHA1(932fc973b4a2fbbebd7e6437ed30c8444e3d4afb))
+ ROM_LOAD( "mg02.4d", 0x0800, 0x0800, CRC(555a2b0f) SHA1(143a8953ce5070c31dc4c1f623833b2a5a2cf657))
+ ROM_LOAD( "mg03.5d", 0x1000, 0x0800, CRC(2abc79b3) SHA1(1afb331a2c0e320b6d026bc5cb47a53ac3356c2a))
+ ROM_LOAD( "mg04.6d", 0x1800, 0x0800, CRC(be928364) SHA1(8d9ae71e2751c009187e41d84fbad9519ab551e1) )
+ ROM_LOAD( "mg05.7d", 0x2000, 0x0800, CRC(44cd114a) SHA1(833165c5c00c6e505acf29fef4a3ae3f9647b443) )
+ ROM_LOAD( "mg06.9d", 0x2800, 0x0800, CRC(a7e2c69b) SHA1(614fc479d13c1726382fe7b4b0379c1dd4915af0) )
+ ROM_LOAD( "mg07.10d", 0x3000, 0x0800, CRC(b85d1f9a) SHA1(4fd3e76b1816912df84477dba4655d395f5e7072) )
+
+ ROM_REGION( 0x1800, "gfx1", 0 )
+ ROM_LOAD( "mg09.4f", 0x0000, 0x0800, CRC(f4c349ca) SHA1(077f65eeac616a778d6c42bb95677fa2892ab697) )
+ ROM_LOAD( "mg10.3f", 0x0800, 0x0800, CRC(b41251e3) SHA1(e125a971b401c78efeb4b03d0fab43e392d3fc14) )
+ ROM_LOAD( "mg11.1f", 0x1000, 0x0800, CRC(50d66dd7) SHA1(858d1d2a75e091b0e382d964c5e4ddcd8e6f07dd))
+
+ ROM_REGION( 0x1000, "gfx2", 0 )
+ ROM_LOAD( "mg12.6c", 0x0000, 0x1000, CRC(7c6486d5) SHA1(a7f17a803937937f05fc90621883a0fd44b297a0) )
+
+ ROM_REGION( 0x1000, "gfx3", 0 )
+ ROM_LOAD( "mg13.6h", 0x0000, 0x1000, CRC(17817044) SHA1(8c9b96620e3c414952e6d85c6e81b0df85c88e7a) )
+
+ ROM_REGION( 0x0080, "proms", 0 )
+ ROM_LOAD( "mg14.2a", 0x0000, 0x0020, CRC(f75f4e3a) SHA1(36e665987f475c57435fa8c224a2a3ce0c5e672b) ) //char clr
+ ROM_LOAD( "mg15.1a", 0x0020, 0x0020, CRC(cd3ab489) SHA1(a77478fb94d0cf8f4317f89cc9579def7c294b4f) ) //obj clr
+ ROM_LOAD( "mg16.4e", 0x0040, 0x0020, CRC(92c868bc) SHA1(483ae6f47845ddacb701528e82bd388d7d66a0fb) ) //?? collisions
+ 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", MACHINE_NO_SOUND | MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/mario.cpp b/docs/release/src/hbmame/drivers/mario.cpp
new file mode 100644
index 00000000000..7ae8ca7df15
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/mario.cpp
@@ -0,0 +1,32 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/mario.cpp"
+
+ROM_START( cenmario )
+ ROM_REGION( 0x10000, "maincpu", 0 ) // cpu roms from marioj
+ ROM_LOAD( "tma1c-a1.7f", 0x0000, 0x2000, CRC(b64b6330) SHA1(f7084251ac325bbfa3fb804da16a50622e1fd213) )
+ ROM_LOAD( "tma1c-a2.7e", 0x2000, 0x2000, CRC(290c4977) SHA1(5af266be0ddc883c6548c90e4a9084024a1e91a0) )
+ ROM_LOAD( "tma1c-a1.7d", 0x4000, 0x2000, CRC(f8575f31) SHA1(710d0e72fcfce700ed2a22fb9c7c392cc76b250b) )
+ ROM_LOAD( "tma1c-a2.7c", 0xf000, 0x1000, CRC(a3c11e9e) SHA1(d0612b0f8c2ea4e798f551922a04a324f4ed5f3d) )
+
+ ROM_REGION( 0x1800, "audiocpu", ROMREGION_ERASE00 )
+ ROM_LOAD( "tma1-c-6k_e.6k", 0x1000, 0x0800, CRC(06b9ff85) SHA1(111a29bcb9cda0d935675fa26eca6b099a88427f) )
+ ROM_CONTINUE( 0x0800, 0x0800)
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "cenmario.3f", 0x0000, 0x1000, CRC(27bcd321) SHA1(d8f1fc65dc17af2f80d67f3e2f3edabc79eba1b3) )
+ ROM_LOAD( "cenmario.3j", 0x1000, 0x1000, CRC(de1c6962) SHA1(2779715d62981baf2ea3a3f501128deb0f5559ab) )
+
+ ROM_REGION( 0x6000, "gfx2", 0 )
+ ROM_LOAD( "cenmario.7m", 0x0000, 0x1000, CRC(41c78d70) SHA1(f5ad2b84439a9c2e7aed0a38a507bb714ad6eb3a) )
+ ROM_LOAD( "cenmario.7n", 0x1000, 0x1000, CRC(659341a4) SHA1(77207279ebe9c5e33f8bfa4cdbbc7a04d0198c84) )
+ ROM_LOAD( "cenmario.7p", 0x2000, 0x1000, CRC(b9e32b12) SHA1(c8c8491c3724dc10f91100299347753bdc16a091) )
+ ROM_LOAD( "cenmario.7s", 0x3000, 0x1000, CRC(a5cc7370) SHA1(ac81cd6193207670ffbfdc4b2e9c15805c0eecee) )
+ ROM_LOAD( "cenmario.7t", 0x4000, 0x1000, CRC(e416cbea) SHA1(ffce92c8ce25d5086379ec1245ae11c64b7719f4) )
+ ROM_LOAD( "cenmario.7u", 0x5000, 0x1000, CRC(19eef39f) SHA1(41ee5184eeee10d7b502f5a06a3b006242756e57) )
+
+ ROM_REGION( 0x0200, "proms", 0 )
+ ROM_LOAD( "tma1-c-4p.4p", 0x0000, 0x0200, CRC(afc9bd41) SHA1(90b739c4c7f24a88b6ac5ca29b06c032906a2801) )
+ROM_END
+
+GAME( 2002, cenmario, mario, mario, marioj, driver_device, 0, ROT0, "Marks Hacks", "Censored Mario Bros.", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/mcr.cpp b/docs/release/src/hbmame/drivers/mcr.cpp
new file mode 100644
index 00000000000..7c952f62cb9
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/mcr.cpp
@@ -0,0 +1,114 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/mcr.cpp"
+
+ROM_START( handiman ) // all roms from tron2 except gfx2
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "scpu_pga.d2", 0x0000, 0x2000, CRC(5151770b) SHA1(26f4d830de7be228528e462dd628f439629a2641) )
+ ROM_LOAD( "scpu_pgb.d3", 0x2000, 0x2000, CRC(8ddf8717) SHA1(e0c294afa8ba0b0ba89e3e0fb3ff6d8fc4398e32) )
+ ROM_LOAD( "scpu_pgc.d4", 0x4000, 0x2000, CRC(4241e3a0) SHA1(24c1bd2f31e194542571c391c5dccf21354115c2) )
+ ROM_LOAD( "scpu_pgd.d5", 0x6000, 0x2000, CRC(035d2fe7) SHA1(1b827ca30a439d2f4cc94fcc0e90ee0cf87e018c) )
+ ROM_LOAD( "scpu_pge.d6", 0x8000, 0x2000, CRC(24c185d8) SHA1(45ac7c53f6f4eba5c7bf3fc6559cddd3821eddad) )
+ ROM_LOAD( "scpu_pgf.d7", 0xa000, 0x2000, CRC(38c4bbaf) SHA1(a7cd496ce75199b8279ea963520cf70d5f562bb2) )
+
+ ROM_REGION( 0x10000, "ssio:cpu", 0 )
+ ROM_LOAD( "ssi_0a.a7", 0x0000, 0x1000, CRC(765e6eba) SHA1(42efeefc8571dfc237c0be3368248f1e56add92e) )
+ ROM_LOAD( "ssi_0b.a8", 0x1000, 0x1000, CRC(1b90ccdd) SHA1(0876e5eeaa63bb8cc97f3634a6ddd8a29a9b012f) )
+ ROM_LOAD( "ssi_0c.a9", 0x2000, 0x1000, CRC(3a4bc629) SHA1(ce8452a99a313ae7429de471bbea39de08c9fd4b) )
+
+ ROM_REGION( 0x04000, "gfx1", 0 )
+ ROM_LOAD( "scpu_bgg.g3", 0x0000, 0x2000, CRC(1a9ed2f5) SHA1(b0d85b47873ac8ad475da18b9540d37232cb2b7c) )
+ ROM_LOAD( "scpu_bgh.g4", 0x2000, 0x2000, CRC(3220f974) SHA1(a38ea5f1db27f05d9689db838ce7a8de98f34837) )
+
+ ROM_REGION( 0x10000, "gfx2", 0 )
+ ROM_LOAD( "handiman.e1", 0x00000, 0x2000, CRC(8fb79ed7) SHA1(70e5f2aecda3d055eaedf2039128e549a94bd2cd) )
+ ROM_LOAD( "handiman.d1", 0x04000, 0x2000, CRC(c0b2b28e) SHA1(3d9d2c1b7a136f02e5c5595d52add03892cb0db1) )
+ ROM_LOAD( "handiman.c1", 0x08000, 0x2000, CRC(ee776741) SHA1(02ea99dd02cd469d1425a958202efe28dc202291) )
+ ROM_LOAD( "handiman.a1", 0x0c000, 0x2000, CRC(e17ec630) SHA1(7929bfeea0e5e47d412619f08ca09a31618b96da) )
+ROM_END
+
+ROM_START( shtron )
+ ROM_REGION( 0x10000, "maincpu", 0 ) // same as shollow2 except for 2 cpu roms
+ ROM_LOAD( "shtron.00", 0x0000, 0x2000, CRC(9AEC754C) SHA1(D17A221CEB8AF59D9087AE63A73026C0BD1D58CB) )
+ ROM_LOAD( "sh-pro.01", 0x2000, 0x2000, CRC(b99f6ff8) SHA1(575cdba5bf9965c7765ce913a3376c7ba36b8291) )
+ ROM_LOAD( "shtron.02", 0x4000, 0x2000, CRC(621AD715) SHA1(8CD34D33C86D10142E0503994A0666AC77C08D4B) )
+ ROM_LOAD( "sh-pro.03", 0x6000, 0x2000, CRC(0a64afb9) SHA1(3ac6660d2b0166c58ec4fecfe37ce36e545064df) )
+ ROM_LOAD( "sh-pro.04", 0x8000, 0x2000, CRC(22fa9175) SHA1(fd8ea76b3a7ffaf48fc11dd3b7c58e548e3e57c5) )
+ ROM_LOAD( "sh-pro.05", 0xa000, 0x2000, CRC(1716e2bb) SHA1(771e4c20d63e4e1d99723e6355db67064a278ae5) )
+
+ ROM_REGION( 0x10000, "ssio:cpu", 0 )
+ ROM_LOAD( "snd-0.a7", 0x0000, 0x1000, CRC(9d815bb3) SHA1(51af797e08dbe3921e11ce70c3d0da50979336a4) )
+ ROM_LOAD( "snd-1.a8", 0x1000, 0x1000, CRC(9f253412) SHA1(a526e864073a2f9e67e2cbe53ab17fe726336241) )
+ ROM_LOAD( "snd-2.a9", 0x2000, 0x1000, CRC(7783d6c6) SHA1(1fb2117532e7da28afdb9837bcb6848165cf8173) )
+
+ ROM_REGION( 0x04000, "gfx1", 0 )
+ ROM_LOAD( "sh-bg.00", 0x0000, 0x2000, CRC(3e2b333c) SHA1(b4347d0b3d6149e94da4a38684c0fab931e76cc5) )
+ ROM_LOAD( "sh-bg.01", 0x2000, 0x2000, CRC(d1d70cc4) SHA1(550e2e8c0bcbf7913b218fe48cd3324622c8d0f4) )
+
+ ROM_REGION( 0x08000, "gfx2", 0 )
+ ROM_LOAD( "sh-fg.00", 0x0000, 0x2000, CRC(33f4554e) SHA1(88dd803158d3c65429b79d2aaf8334130315aa93) )
+ ROM_LOAD( "sh-fg.01", 0x2000, 0x2000, CRC(ba1a38b4) SHA1(cee5f0a66e40c779f1bfbb4bfafe5301385e7dae) )
+ ROM_LOAD( "sh-fg.02", 0x4000, 0x2000, CRC(6b57f6da) SHA1(71165df59dd5ca037116dc0f46fd4f6aac6dbfd1) )
+ ROM_LOAD( "sh-fg.03", 0x6000, 0x2000, CRC(37ea9d07) SHA1(82e006b01ee12390308be530d4b68fc2404b6b91) )
+ROM_END
+
+ROM_START( stapper ) // cpu roms from tapper
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "tappg0.bin", 0x00000, 0x4000, CRC(127171d1) SHA1(373e9a9d73b71e100c02862662d025f5ead2f94d) )
+ ROM_LOAD( "tappg1.bin", 0x04000, 0x4000, CRC(9d6a47f7) SHA1(e493e46fc70a765e54bfdd7ba7ca570e6a5c79d6) )
+ ROM_LOAD( "tappg2.bin", 0x08000, 0x4000, CRC(3a1f8778) SHA1(cb46a2248289ced7282b1463f433dcb970c42c1a) )
+ ROM_LOAD( "tappg3.bin", 0x0c000, 0x2000, CRC(e8dcdaa4) SHA1(45bf1571a2418c7dc00ccc7061a3e04e65cb6bff) )
+
+ ROM_REGION( 0x10000, "ssio:cpu", 0 )
+ ROM_LOAD( "tapsnda7.bin", 0x0000, 0x1000, CRC(0e8bb9d5) SHA1(9e281c340b7702523c86d56317efad9e3688e585) )
+ ROM_LOAD( "tapsnda8.bin", 0x1000, 0x1000, CRC(0cf0e29b) SHA1(14334b9d2bfece3fe5bda0cbd53158ead8d27e53) )
+ ROM_LOAD( "tapsnda9.bin", 0x2000, 0x1000, CRC(31eb6dc6) SHA1(b38bba5f12516d899e023f99147868e3402fbd7b) )
+ ROM_LOAD( "tapsda10.bin", 0x3000, 0x1000, CRC(01a9be6a) SHA1(0011407c1e886071282808c0a561789b1245a789) )
+
+ ROM_REGION( 0x08000, "gfx1", 0 )
+ ROM_LOAD( "stapper.bg1", 0x00000, 0x4000, CRC(1326da21) SHA1(6886cbb83372ee4c53e19325a1552d312ce5de69) )
+ ROM_LOAD( "stapper.bg0", 0x04000, 0x4000, CRC(539b93c3) SHA1(6196516940893fd72d0c0f18efa7584a2df44833) )
+
+ ROM_REGION( 0x20000, "gfx2", 0 )
+ ROM_LOAD( "stapper.fg1", 0x00000, 0x4000, CRC(29dd8e85) SHA1(f7f7e8a3aebf075fb9a2508ce438ed3bbfdcddba) )
+ ROM_LOAD( "stapper.fg0", 0x04000, 0x4000, CRC(a8ba850f) SHA1(e143dab595e129936a4744266788542422e3c503) )
+ ROM_LOAD( "stapper.fg3", 0x08000, 0x4000, CRC(3d9133e4) SHA1(3ca946aee704d59a150a9cd8ea02edf5204022e3) )
+ ROM_LOAD( "stapper.fg2", 0x0c000, 0x4000, CRC(9254d87c) SHA1(084f71436c984cb0c42cd0d07ce47ab0959b64e1) )
+ ROM_LOAD( "stapper.fg5", 0x10000, 0x4000, CRC(5ec2544f) SHA1(1a919b0a80417c0f0e22bac2ab6932411bd4ad55) )
+ ROM_LOAD( "stapper.fg4", 0x14000, 0x4000, CRC(9b970c4b) SHA1(f690708107c4923db5ffe344015388199c7e879a) )
+ ROM_LOAD( "stapper.fg7", 0x18000, 0x4000, CRC(a2ef5c06) SHA1(cce74ff117921eb0438524e7f598fd2117044b1c) )
+ ROM_LOAD( "stapper.fg6", 0x1c000, 0x4000, CRC(1baca746) SHA1(3c7015e63ab1a3f98485415e212a4b80f648dcae) )
+ROM_END
+
+ROM_START( stapper1 )
+ ROM_REGION( 0x10000, "maincpu", 0 ) // same as stapper except 2 of the cpu roms
+ ROM_LOAD( "stapper1.pg0", 0x00000, 0x4000, CRC(c915f608) SHA1(aad2f1944334a7cdb0483613fdad40caab720259) )
+ ROM_LOAD( "tappg1.bin", 0x04000, 0x4000, CRC(9d6a47f7) SHA1(e493e46fc70a765e54bfdd7ba7ca570e6a5c79d6) )
+ ROM_LOAD( "tappg2.bin", 0x08000, 0x4000, CRC(3a1f8778) SHA1(cb46a2248289ced7282b1463f433dcb970c42c1a) )
+ ROM_LOAD( "stapper1.pg3", 0x0c000, 0x2000, CRC(dd4c785f) SHA1(6e19e77a0af6073c3955c61cf741b13921ce6bf0) )
+
+ ROM_REGION( 0x10000, "ssio:cpu", 0 )
+ ROM_LOAD( "tapsnda7.bin", 0x0000, 0x1000, CRC(0e8bb9d5) SHA1(9e281c340b7702523c86d56317efad9e3688e585) )
+ ROM_LOAD( "tapsnda8.bin", 0x1000, 0x1000, CRC(0cf0e29b) SHA1(14334b9d2bfece3fe5bda0cbd53158ead8d27e53) )
+ ROM_LOAD( "tapsnda9.bin", 0x2000, 0x1000, CRC(31eb6dc6) SHA1(b38bba5f12516d899e023f99147868e3402fbd7b) )
+ ROM_LOAD( "tapsda10.bin", 0x3000, 0x1000, CRC(01a9be6a) SHA1(0011407c1e886071282808c0a561789b1245a789) )
+
+ ROM_REGION( 0x08000, "gfx1", 0 )
+ ROM_LOAD( "stapper.bg1", 0x00000, 0x4000, CRC(1326da21) SHA1(6886cbb83372ee4c53e19325a1552d312ce5de69) )
+ ROM_LOAD( "stapper.bg0", 0x04000, 0x4000, CRC(539b93c3) SHA1(6196516940893fd72d0c0f18efa7584a2df44833) )
+
+ ROM_REGION( 0x20000, "gfx2", 0 )
+ ROM_LOAD( "stapper.fg1", 0x00000, 0x4000, CRC(29dd8e85) SHA1(f7f7e8a3aebf075fb9a2508ce438ed3bbfdcddba) )
+ ROM_LOAD( "stapper.fg0", 0x04000, 0x4000, CRC(a8ba850f) SHA1(e143dab595e129936a4744266788542422e3c503) )
+ ROM_LOAD( "stapper.fg3", 0x08000, 0x4000, CRC(3d9133e4) SHA1(3ca946aee704d59a150a9cd8ea02edf5204022e3) )
+ ROM_LOAD( "stapper.fg2", 0x0c000, 0x4000, CRC(9254d87c) SHA1(084f71436c984cb0c42cd0d07ce47ab0959b64e1) )
+ ROM_LOAD( "stapper.fg5", 0x10000, 0x4000, CRC(5ec2544f) SHA1(1a919b0a80417c0f0e22bac2ab6932411bd4ad55) )
+ ROM_LOAD( "stapper.fg4", 0x14000, 0x4000, CRC(9b970c4b) SHA1(f690708107c4923db5ffe344015388199c7e879a) )
+ ROM_LOAD( "stapper.fg7", 0x18000, 0x4000, CRC(a2ef5c06) SHA1(cce74ff117921eb0438524e7f598fd2117044b1c) )
+ ROM_LOAD( "stapper.fg6", 0x1c000, 0x4000, CRC(1baca746) SHA1(3c7015e63ab1a3f98485415e212a4b80f648dcae) )
+ROM_END
+
+GAME( 1998, handiman, tron, mcr_90010, tron, mcr_state, mcr_90010, ROT90, "Bobby Tribble", "Handi-Man in Cyberworld", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, shtron, shollow, mcr_90010, tron, mcr_state, mcr_90010, ROT90, "Scott Lawrence", "Satan's Hollow (Tron Hardware)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, stapper, tapper, mcr_91490, tapper, mcr_state, mcr_91490, ROT0, "DC", "Tapper (Simpsons Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, stapper1, tapper, mcr_91490, tapper, mcr_state, mcr_91490, ROT0, "DC", "Tapper (Simpsons Hack ver.81)", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/mcr3.cpp b/docs/release/src/hbmame/drivers/mcr3.cpp
new file mode 100644
index 00000000000..1f3b2072b15
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/mcr3.cpp
@@ -0,0 +1,26 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/mcr3.cpp"
+
+ROM_START( sargex )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "cpu_3b.bin", 0x00000, 0x8000, CRC(da31a58f) SHA1(29b97caf61f8f59042519a6b501cd1d15099dd59) )
+ ROM_LOAD( "cpu_5b.bin", 0x08000, 0x8000, CRC(6800e746) SHA1(018c2b622b3654530ebc2c299b3f745777163d4b) )
+ ROM_FILL( 0x0e000, 0x2000, 0xff )
+
+ ROM_REGION( 0x10000, "tcs:cpu", 0 )
+ ROM_LOAD( "tcs_u5.bin", 0x0c000, 0x2000, CRC(a894ef8a) SHA1(7f53927fc185fff8ba1b1747f0d565e089d879e6) )
+ ROM_LOAD( "tcs_u4.bin", 0x0e000, 0x2000, CRC(6ca6faf3) SHA1(4647e633dd11f55a65c3acf81adeb3af93624991) )
+
+ ROM_REGION( 0x04000, "gfx1", ROMREGION_INVERT )
+ ROM_LOAD( "til_15a.bin", 0x00000, 0x2000, CRC(685001b8) SHA1(300abd808efe5b44b022082eebc591c7c255697c) )
+ ROM_LOAD( "til_14b.bin", 0x02000, 0x2000, CRC(8449eb45) SHA1(6cc43639998d55fe7ffac7e9b091d35ea169e048) )
+
+ ROM_REGION( 0x20000, "gfx2", 0 )
+ ROM_LOAD( "sargex.8", 0x00000, 0x8000, CRC(9c0a3000) SHA1(e6f7cc05163a6eba9faa5811ed1fcd261ed400d6) )
+ ROM_LOAD( "sargex.6", 0x08000, 0x8000, CRC(da7e3dbf) SHA1(20179d03746098d6a7d3d50fbf4d470bef07467f) )
+ ROM_LOAD( "sargex.5", 0x10000, 0x8000, CRC(2effe749) SHA1(5c3f2da367b32c1272c51555f7d94d2dee3bcf93) )
+ ROM_LOAD( "sargex.4", 0x18000, 0x8000, CRC(66149219) SHA1(2dcd43de7fa674add94b2584e6795460f486a943) )
+ROM_END
+
+GAME( 2009, sargex, sarge, mono_tcs, sarge, mcr3_state, sarge, ROT0, "Gatinho", "Sarge Exposed", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/mgd2.cpp b/docs/release/src/hbmame/drivers/mgd2.cpp
new file mode 100644
index 00000000000..b0a84225e67
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/mgd2.cpp
@@ -0,0 +1,1189 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+/* These sets were dumped with the Mega Game Doctor 2
+ They are reputed to be bad dumps although I have not observed any problems.
+
+ Due to the dumping process, the P roms have the 2 halves swapped around,
+ and the C roms are split 32-byte-wise.
+
+ Each rom is named thus: nxxx001z.vvv, where:
+ xxx = the neogeo game number
+ z = a/b/c/d, indicates the loading order
+ vvv = 038 (P rom), 378 or 3f8 (S rom), 478 or 4f8 (M rom), 178, 1f8 (V rom, region 1),
+ 278, 2f8 (V rom, region 2), 538, 638, 53c, 63c (C rom)
+
+ if more than 2 V roms (or 4 C roms) are used, then z increases by a letter.
+
+ These games run the same as the usual MAME ones, except for alpham2 which has extra sound
+ roms. This produces extra sounds, such as the ticking sound as soon as the game starts. */
+
+
+ROM_START( 2020bbd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE ( "n030001a.038", 0x000001, 0x040000, CRC(efb016a2) SHA1(6bac3f89124e9af5c04e7e5b110e467a4ed85771) )
+ ROM_CONTINUE ( 0x000000, 0x040000 )
+
+ NEO_SFIX_128K( "030-s1.s1", CRC(7015b8fc) SHA1(8c09bc3e6c62e0f7c9557c1e10c901be325bae7f) ) // n030001a.378
+
+ NEO_BIOS_AUDIO_128K( "n030001a.4f8", CRC(bf755068) SHA1(7f624a691f7e51481949462141778da3e1eb0b91) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "n030001a.1f8", 0x000000, 0x080000, CRC(33e7886e) SHA1(78bd48fea1e2b1595661c8b957fe489c11e50b92) )
+ ROM_LOAD( "n030001a.1fc", 0x080000, 0x080000, CRC(e7ca3882) SHA1(40fb282ad0560d5933badd03da927d395d2a70b5) )
+ ROM_LOAD( "n030001b.1f8", 0x100000, 0x080000, CRC(3cf9a433) SHA1(3065079247f1f4a44452a9bb84c9a969fbd3773b) )
+ ROM_LOAD( "n030001b.1fc", 0x180000, 0x080000, CRC(88b10192) SHA1(ef486cc57a9cba6c4382b9fd8839e3beb57e916d) )
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "n030001a.538", 0x000000, 0x40000, CRC(746bf48a) SHA1(93006169cb4e26bf72372c5354e60f814f39df3a) )
+ ROM_CONTINUE( 0x000002, 0x40000 )
+ ROM_LOAD32_BYTE( "n030001a.638", 0x000001, 0x40000, CRC(5c123d9c) SHA1(98ce390641ad11823db5de779e01bf06c2eabb8a) )
+ ROM_CONTINUE( 0x000003, 0x40000 )
+ ROM_LOAD32_BYTE( "n030001a.53c", 0x100000, 0x40000, CRC(57bdcec0) SHA1(6a0cfc50386dff079be93a9ee96722ea1b3df9fc) )
+ ROM_CONTINUE( 0x100002, 0x40000 )
+ ROM_LOAD32_BYTE( "n030001a.63c", 0x100001, 0x40000, CRC(2f4bb615) SHA1(5cfda589291579edbabfc84894e1b9a8875588f2) )
+ ROM_CONTINUE( 0x100003, 0x40000 )
+ ROM_LOAD32_BYTE( "n030001b.538", 0x200000, 0x40000, CRC(0b054a38) SHA1(4a917b0dcbe4b270eadc4b99532d6912b3d3117f) )
+ ROM_CONTINUE( 0x200002, 0x40000 )
+ ROM_LOAD32_BYTE( "n030001b.638", 0x200001, 0x40000, CRC(b2a86447) SHA1(d7048c283853cbe52ef6733aed1f9a3bf22d70ec) )
+ ROM_CONTINUE( 0x200003, 0x40000 )
+ROM_END
+
+ROM_START( 3countbd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE ( "n043001a.038", 0x000001, 0x040000, CRC(10dbe66a) SHA1(b3a50100f0d41f2cc9ad92687aaba52340b6d67d) )
+ ROM_CONTINUE ( 0x000000, 0x040000 )
+ ROM_LOAD16_BYTE ( "n043001a.03c", 0x080001, 0x040000, CRC(6d5bfb61) SHA1(8ba73917d8c29a5400fcc3b58e0cbbd100dd3182) )
+ ROM_CONTINUE ( 0x080000, 0x040000 )
+
+ NEO_SFIX_128K( "043-s1.s1", CRC(c362d484) SHA1(a3c029292572842feabe9aa8c3372628fb63978d) ) // n043001a.378
+
+ NEO_BIOS_AUDIO_128K( "n043001a.4f8", CRC(3377cda3) SHA1(5712cd0717585914120ebf307391e1e3171f5396) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "n043001a.1f8", 0x000000, 0x080000, CRC(2abe6ab0) SHA1(9d717d52889c9af76fc6790a0e97c54eabd3b931) )
+ ROM_LOAD( "n043001a.1fc", 0x080000, 0x080000, CRC(d3fa2743) SHA1(9f065d708cad0b98e7b7b4c4e96a2a4f8da76e7e) )
+ ROM_LOAD( "n043001b.1f8", 0x100000, 0x080000, CRC(f591b0a1) SHA1(68bcac77543eca84232f1628a32828cc9c4081bb) )
+ ROM_LOAD( "n043001b.1fc", 0x180000, 0x080000, CRC(01f3999e) SHA1(4f9ec67e52aabe6a0d2e2210824349e25dd9269d) )
+ ROM_LOAD( "n043001c.1f8", 0x200000, 0x080000, CRC(f76aa00e) SHA1(6dbde96b083c34ee77ce512edaa2284061172df5) )
+ ROM_LOAD( "n043001c.1fc", 0x280000, 0x080000, CRC(851ce851) SHA1(58d2c904224c50cd9c2b5c5710bb8539b94af604) )
+ ROM_LOAD( "n043001d.1f8", 0x300000, 0x080000, CRC(9e2c8366) SHA1(89ababf09a578750fed508475bcfb562bc9116a6) )
+ ROM_LOAD( "n043001d.1fc", 0x380000, 0x080000, CRC(b1a0ccb0) SHA1(ccadb887818477906071edf85408bfe5d74e919a) )
+
+ ROM_REGION( 0x800000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "n043001a.538", 0x000000, 0x40000, CRC(be0d2fe0) SHA1(6c59673b5b7c362596374f45b0fc739e5608d4d2) )
+ ROM_CONTINUE( 0x000002, 0x40000 )
+ ROM_LOAD32_BYTE( "n043001a.638", 0x000001, 0x40000, CRC(f56dafa5) SHA1(2b9b1a1ed0a00b1bf3c7e490ac0995836c263dba) )
+ ROM_CONTINUE( 0x000003, 0x40000 )
+ ROM_LOAD32_BYTE( "n043001a.53c", 0x100000, 0x40000, CRC(fdb4df65) SHA1(ac59c3aaa5f794a21942015a41c3daa6a94d564c) )
+ ROM_CONTINUE( 0x100002, 0x40000 )
+ ROM_LOAD32_BYTE( "n043001a.63c", 0x100001, 0x40000, CRC(f2f68b2a) SHA1(3cd321ee4699be888a4c380a3202a2c4932cc240) )
+ ROM_CONTINUE( 0x100003, 0x40000 )
+ ROM_LOAD32_BYTE( "n043001b.538", 0x200000, 0x40000, CRC(714c2c01) SHA1(2a5e612807a6000824cc0ae848774c5e5bdcb572) )
+ ROM_CONTINUE( 0x200002, 0x40000 )
+ ROM_LOAD32_BYTE( "n043001b.638", 0x200001, 0x40000, CRC(b15a7f25) SHA1(c5488becc87fe5be5a402f5358cd4c6c7e7e0474) )
+ ROM_CONTINUE( 0x200003, 0x40000 )
+ ROM_LOAD32_BYTE( "n043001b.53c", 0x300000, 0x40000, CRC(c57ce8b0) SHA1(241d98fdf2cfb33321387c396b98011744b472c4) )
+ ROM_CONTINUE( 0x300002, 0x40000 )
+ ROM_LOAD32_BYTE( "n043001b.63c", 0x300001, 0x40000, CRC(25f00cd3) SHA1(55f51d80efab87ea1ea2bdcb92b97eeab3097b93) )
+ ROM_CONTINUE( 0x300003, 0x40000 )
+ ROM_LOAD32_BYTE( "n043001c.538", 0x400000, 0x40000, CRC(2e7e59df) SHA1(a0a5afd8259eff487d80a43405b6368bfb8a7862) )
+ ROM_CONTINUE( 0x400002, 0x40000 )
+ ROM_LOAD32_BYTE( "n043001c.638", 0x400001, 0x40000, CRC(341438e4) SHA1(233703b8ecd61ba173bf6636677f4f8e8972e8f4) )
+ ROM_CONTINUE( 0x400003, 0x40000 )
+ ROM_LOAD32_BYTE( "n043001c.53c", 0x500000, 0x40000, CRC(a93185ce) SHA1(8b979391f3dba5ee4869bbe8417cbe04f781a3bd) )
+ ROM_CONTINUE( 0x500002, 0x40000 )
+ ROM_LOAD32_BYTE( "n043001c.63c", 0x500001, 0x40000, CRC(fb8adce8) SHA1(e7a269db6b1f03cab4535b41caaae27e7d98dd4b) )
+ ROM_CONTINUE( 0x500003, 0x40000 )
+ ROM_LOAD32_BYTE( "n043001d.538", 0x600000, 0x40000, CRC(410938c5) SHA1(230e4c466a38fee7432be7352b99b9331c227532) )
+ ROM_CONTINUE( 0x600002, 0x40000 )
+ ROM_LOAD32_BYTE( "n043001d.638", 0x600001, 0x40000, CRC(74d995c5) SHA1(fd269844104c598cda96cc8823c0acdbddeaa9ba) )
+ ROM_CONTINUE( 0x600003, 0x40000 )
+ ROM_LOAD32_BYTE( "n043001d.53c", 0x700000, 0x40000, CRC(50d66909) SHA1(4458e59e7fdddd8c2383d4f0edd025a08eaa1222) )
+ ROM_CONTINUE( 0x700002, 0x40000 )
+ ROM_LOAD32_BYTE( "n043001d.63c", 0x700001, 0x40000, CRC(521b6df1) SHA1(aa8a072f1abe4a0bb62a917dd2662dfdbaef0faa) )
+ ROM_CONTINUE( 0x700003, 0x40000 )
+ROM_END
+
+ROM_START( alpham2d )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE ( "n007001a.038", 0x000001, 0x040000, CRC(4400b34c) SHA1(99cd25c0383e8ffba2d83f2d9c5c6452fe69c362) )
+ ROM_CONTINUE ( 0x000000, 0x040000 )
+ ROM_LOAD16_BYTE ( "n007001a.03c", 0x080001, 0x040000, CRC(b0366875) SHA1(591a02a5cef01e190eaed922894920571f4f6bdb) )
+ ROM_CONTINUE ( 0x080000, 0x040000 )
+
+ NEO_SFIX_128K( "007-s1.s1", CRC(85ec9acf) SHA1(39a11974438ad36a2cc84307151b31474c3c5518) ) // n007001a.378
+
+ NEO_BIOS_AUDIO_64K( "n007001a.478", CRC(0449acf5) SHA1(1275ba5dad1c5123f727dd4193b8ee2cb910760d) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "n007001a.178", 0x000000, 0x080000, CRC(7ec0e76d) SHA1(5f84f0a236b5cb7dd02b588806bc7f6e35eb515d) )
+ ROM_LOAD( "n007001a.17c", 0x080000, 0x080000, CRC(7a796ead) SHA1(0a5b2683acc680edef3d3aa44681e0d648dce53f) )
+ ROM_LOAD( "n007001b.178", 0x100000, 0x080000, CRC(70bc86a5) SHA1(00ef9faf9b094bca2fd654b26eb03e6e40bd6f80) )
+ ROM_LOAD( "n007001b.17c", 0x180000, 0x080000, CRC(29963a92) SHA1(fb2ff29e48cfee33c0f8c12f849b35bd5be27ec9) )
+
+ ROM_REGION( 0x400000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "n007001a.278", 0x000000, 0x080000, CRC(45f5e914) SHA1(d89d9917a0aaf1c662d5633a52a29bd670577830) )
+ ROM_LOAD( "n007001a.27c", 0x080000, 0x080000, CRC(07524063) SHA1(559c3f1b33cfb112dd8d70726be07cac1cafd72f) )
+ ROM_LOAD( "n007001b.278", 0x100000, 0x080000, CRC(c3178623) SHA1(687e63943a22cfff9778cb41ef6c9b9ac6f43334) )
+ ROM_LOAD( "n007001b.27c", 0x180000, 0x080000, CRC(65bca6b7) SHA1(8c96d98e86799f1a47b5a66d439e01d7935c213c) )
+ ROM_LOAD( "n007001c.278", 0x200000, 0x080000, CRC(27cd2250) SHA1(ab5af5762f48f670b2d0a31fdd38539956681035) )
+ ROM_LOAD( "n007001c.27c", 0x280000, 0x080000, CRC(43025293) SHA1(c8b612f4bead98d6e06dcf6cb8254fc8487e2c06) )
+ ROM_LOAD( "n007001d.278", 0x300000, 0x080000, CRC(ae0a679a) SHA1(7fd81af67238eae3dba64502eeff41933de795e8) )
+ ROM_LOAD( "n007001d.27c", 0x380000, 0x080000, CRC(6a2e400d) SHA1(656b026767596a6395f3e30f97140884cb0da5a0) )
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "n007001a.538", 0x000000, 0x40000, CRC(c516b09e) SHA1(910b6197fef78138da2c5b18507d12d841a518e5) )
+ ROM_CONTINUE( 0x000002, 0x40000 )
+ ROM_LOAD32_BYTE( "n007001a.638", 0x000001, 0x40000, CRC(6b674581) SHA1(3cbf29302c2677abe79ae10ef95097c6d62ca88c) )
+ ROM_CONTINUE( 0x000003, 0x40000 )
+ ROM_LOAD32_BYTE( "n007001a.53c", 0x100000, 0x40000, CRC(d9a0ff6c) SHA1(f2577736d516471a6757a8134916fbf7316a9809) )
+ ROM_CONTINUE( 0x100002, 0x40000 )
+ ROM_LOAD32_BYTE( "n007001a.63c", 0x100001, 0x40000, CRC(4ff21008) SHA1(496a27d902342dbb3685ad8354981e76dc839f47) )
+ ROM_CONTINUE( 0x100003, 0x40000 )
+ ROM_LOAD32_BYTE( "n007001b.538", 0x200000, 0x40000, CRC(3a7fe4fd) SHA1(ad4d93ed7d472579b6ba5fd4809a96762f0c0c2e) )
+ ROM_CONTINUE( 0x200002, 0x40000 )
+ ROM_LOAD32_BYTE( "n007001b.638", 0x200001, 0x40000, CRC(d0e8eef3) SHA1(560594bf1ec6ca32b38d0fe73b4cb5b5ecb56d56) )
+ ROM_CONTINUE( 0x200003, 0x40000 )
+ROM_END
+
+ROM_START( androdund )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE ( "n049001a.038", 0x000001, 0x040000, CRC(4639b419) SHA1(617765aea2cb26ae52b25b2f7a541caf14effac9) )
+ ROM_CONTINUE ( 0x000000, 0x040000 )
+ ROM_LOAD16_BYTE ( "n049001a.03c", 0x080001, 0x040000, CRC(11beb098) SHA1(8c8fafba019e94fcf56643fbeeae161840e4263d) )
+ ROM_CONTINUE ( 0x080000, 0x040000 )
+
+ NEO_SFIX_128K( "049-s1.s1", CRC(6349de5d) SHA1(bcc44b9576d7bedd9a39294530bb66f707690c72) ) // n049001a.378
+
+ NEO_BIOS_AUDIO_128K( "n049001a.4f8", CRC(1a009f8c) SHA1(7782dfe48e143417f34fba5353e6deb63efeaa8a) )
+
+ ROM_REGION( 0x100000, "ymsnd", 0 )
+ ROM_LOAD( "n049001a.1f8", 0x000000, 0x080000, CRC(577c85b3) SHA1(2c3072401fe73497dca0e9009ae2ba4053fe936d) )
+ ROM_LOAD( "n049001a.1fc", 0x080000, 0x080000, CRC(e14551c4) SHA1(763a9912b9df55defb190af3f29ae034f6dd78d6) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "n049001a.538", 0x000000, 0x40000, CRC(ca08e432) SHA1(4202685ea0eaa29772d3d451ed9240202e4626a4) )
+ ROM_CONTINUE( 0x000002, 0x40000 )
+ ROM_LOAD32_BYTE( "n049001a.638", 0x000001, 0x40000, CRC(7a0deb9e) SHA1(50953e69b8462d4b981c91c74c307bcb539b0ceb) )
+ ROM_CONTINUE( 0x000003, 0x40000 )
+ ROM_LOAD32_BYTE( "n049001a.53c", 0x100000, 0x40000, CRC(fcbcb305) SHA1(42fe48127593e7714f7675506de8d0ae08a70164) )
+ ROM_CONTINUE( 0x100002, 0x40000 )
+ ROM_LOAD32_BYTE( "n049001a.63c", 0x100001, 0x40000, CRC(b1c640f5) SHA1(6e667f4c197243f6389c952229efa90bd3a66b50) )
+ ROM_CONTINUE( 0x100003, 0x40000 )
+ ROM_LOAD32_BYTE( "n049001b.538", 0x200000, 0x40000, CRC(806ab937) SHA1(78867c587420b938be1a76f0b87dea4d21fbe1b0) )
+ ROM_CONTINUE( 0x200002, 0x40000 )
+ ROM_LOAD32_BYTE( "n049001b.638", 0x200001, 0x40000, CRC(33bee10f) SHA1(3e01859e6455c9e941f9afcf31d62a4de4806eca) )
+ ROM_CONTINUE( 0x200003, 0x40000 )
+ ROM_LOAD32_BYTE( "n049001b.53c", 0x300000, 0x40000, CRC(e7e1a2be) SHA1(91a68ed46975811f1abaf4d1d912f514328c7189) )
+ ROM_CONTINUE( 0x300002, 0x40000 )
+ ROM_LOAD32_BYTE( "n049001b.63c", 0x300001, 0x40000, CRC(70f0d263) SHA1(fccb548d4b1754c475ceb46f3e49e4e9607e6651) )
+ ROM_CONTINUE( 0x300003, 0x40000 )
+ROM_END
+
+ROM_START( aofd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE ( "n044001a.038", 0x000001, 0x040000, CRC(95102254) SHA1(b4b9a0b35c2fab78fa9fd590f0f22da4e4153ac2) )
+ ROM_CONTINUE ( 0x000000, 0x040000 )
+
+ NEO_SFIX_128K( "044-s1.s1", CRC(89903f39) SHA1(a04a0c244a5d5c7a595fcf649107969635a6a8b6) ) // n044001a.378
+
+ NEO_BIOS_AUDIO_128K( "044001a.4f8", CRC(981345f8) SHA1(5eb6a5a3f633d74a48555808e2562a0ba16d8675) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "n044001a.1f8", 0x000000, 0x080000, CRC(a4d8747f) SHA1(d9963375edd22d194c17e50fa398b12bbe2a777f) )
+ ROM_LOAD( "n044001a.1fc", 0x080000, 0x080000, CRC(55219d13) SHA1(97fa9b1461e9dbf6c1580e1f814df68c79b61016) )
+ ROM_LOAD( "n044001b.1f8", 0x100000, 0x080000, CRC(6eae81fa) SHA1(37d5ea320913b77a3fcdd2e1db1447a9cd77d094) )
+ ROM_LOAD( "n044001b.1fc", 0x180000, 0x080000, CRC(f91676e9) SHA1(5c3e8f4230a2b18af8cea4ee32c23408de575c0c) )
+ ROM_LOAD( "n044001c.1f8", 0x200000, 0x080000, CRC(d0c8bcd2) SHA1(126d56214a51027a340153b0dc29268ef7d36256) )
+ ROM_LOAD( "n044001c.1fc", 0x280000, 0x080000, CRC(167db9b2) SHA1(960c32b4163d7cadba26d4f64627bce08d4da65b) )
+ ROM_LOAD( "n044001d.1f8", 0x300000, 0x080000, CRC(f03969fe) SHA1(5e30c9162bdb8236ccd7ec1e99107da656764fe8) )
+ ROM_LOAD( "n044001d.1fc", 0x380000, 0x080000, CRC(a823a19a) SHA1(5662874b80b9df94c60f7100eefa229e95bd91d5) )
+
+ ROM_REGION( 0x800000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "n044001a.538", 0x000000, 0x40000, CRC(a2e4a168) SHA1(7a0090f85235ae2a50498ab3538fef2f8afa7242) )
+ ROM_CONTINUE( 0x000002, 0x40000 )
+ ROM_LOAD32_BYTE( "n044001a.638", 0x000001, 0x40000, CRC(ca12c80f) SHA1(c7e4b241719f04860abf5fbb6e1712a802e43dee) )
+ ROM_CONTINUE( 0x000003, 0x40000 )
+ ROM_LOAD32_BYTE( "n044001a.53c", 0x100000, 0x40000, CRC(da389ef7) SHA1(b3c6ec60c5bdb63943a23eed028d9c952b11fc24) )
+ ROM_CONTINUE( 0x100002, 0x40000 )
+ ROM_LOAD32_BYTE( "n044001a.63c", 0x100001, 0x40000, CRC(d59746b0) SHA1(4d66e8384be5ce2917cf7db099000c229fb2d767) )
+ ROM_CONTINUE( 0x100003, 0x40000 )
+ ROM_LOAD32_BYTE( "n044001b.538", 0x200000, 0x40000, CRC(2a0c385b) SHA1(7d8e20a81e15f6806af43edb7d35e65052c32cbd) )
+ ROM_CONTINUE( 0x200002, 0x40000 )
+ ROM_LOAD32_BYTE( "n044001b.638", 0x200001, 0x40000, CRC(8b73b3da) SHA1(046e4a02f2c305ded91b22e09bf421d4f3d84f0c) )
+ ROM_CONTINUE( 0x200003, 0x40000 )
+ ROM_LOAD32_BYTE( "n044001b.53c", 0x300000, 0x40000, CRC(4a4317bf) SHA1(805405d440e4dba2cdc8b89629b0ab9616b5d357) )
+ ROM_CONTINUE( 0x300002, 0x40000 )
+ ROM_LOAD32_BYTE( "n044001b.63c", 0x300001, 0x40000, CRC(9fc3f8ea) SHA1(5a0520980b69724cdd011841844545dafc259ff9) )
+ ROM_CONTINUE( 0x300003, 0x40000 )
+ ROM_LOAD32_BYTE( "n044001c.538", 0x400000, 0x40000, CRC(471d9e57) SHA1(54200bd380f8f6b19f64768033b97a96aa8a8640) )
+ ROM_CONTINUE( 0x400002, 0x40000 )
+ ROM_LOAD32_BYTE( "n044001c.638", 0x400001, 0x40000, CRC(cbf8a72e) SHA1(182b7f98f414533f1ea294f3ea8b25e98857e0cd) )
+ ROM_CONTINUE( 0x400003, 0x40000 )
+ ROM_LOAD32_BYTE( "n044001c.53c", 0x500000, 0x40000, CRC(23fe5675) SHA1(a03b0739c3b98150a610aada2c945165a58a56d7) )
+ ROM_CONTINUE( 0x500002, 0x40000 )
+ ROM_LOAD32_BYTE( "n044001c.63c", 0x500001, 0x40000, CRC(5ec93c96) SHA1(6a5869fe778774ef1a641068e65e33a1ea2bd15b) )
+ ROM_CONTINUE( 0x500003, 0x40000 )
+ ROM_LOAD32_BYTE( "n044001d.538", 0x600000, 0x40000, CRC(204e7b29) SHA1(944865fb04e554f217dbaa2259834e1c413afe50) )
+ ROM_CONTINUE( 0x600002, 0x40000 )
+ ROM_LOAD32_BYTE( "n044001d.638", 0x600001, 0x40000, CRC(47763b6d) SHA1(b7e6cb423e3c49bca60ff190ff105001e3579701) )
+ ROM_CONTINUE( 0x600003, 0x40000 )
+ ROM_LOAD32_BYTE( "n044001d.53c", 0x700000, 0x40000, CRC(7f6d5144) SHA1(8f39666259d8fe187ae6da532372b6c606737246) )
+ ROM_CONTINUE( 0x700002, 0x40000 )
+ ROM_LOAD32_BYTE( "n044001d.63c", 0x700001, 0x40000, CRC(4408f4eb) SHA1(dc045494f6865def21448caab13b2ad6ee520f37) )
+ ROM_CONTINUE( 0x700003, 0x40000 )
+ROM_END
+
+ROM_START( bakatonod )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE ( "n036001a.038", 0x000001, 0x040000, CRC(083ca651) SHA1(8d947e5de3db3a8cf4195de3b149d4a7994704c1) )
+ ROM_CONTINUE ( 0x000000, 0x040000 )
+ ROM_LOAD16_BYTE ( "n036001a.03c", 0x080001, 0x040000, CRC(b3bc26ae) SHA1(c0a741198627a78f7a100ee406d994b50e63012f) )
+ ROM_CONTINUE ( 0x080000, 0x040000 )
+
+ NEO_SFIX_128K( "036-s1.s1", CRC(f3ef4485) SHA1(c30bfceed7e669e4c97b0b3ec2e9f4271e5b6662) ) // n036001a.378
+
+ NEO_BIOS_AUDIO_64K( "n036001a.4f8", CRC(a5e05789) SHA1(63985ed5b3491d0f7b0e2f59785f590bfe122330) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "n036001a.1f8", 0x000000, 0x080000, CRC(d3edbde6) SHA1(c8628a47e275137e340f2005775272a58a594d81) )
+ ROM_LOAD( "n036001a.1fc", 0x080000, 0x080000, CRC(cc487705) SHA1(3bc30dc485917a01756ed33b3507133549e3c1f8) )
+ ROM_LOAD( "n036001b.1f8", 0x100000, 0x080000, CRC(e28cf9b3) SHA1(6c0bc9f5f496edb89dd8dc7acbec3c361bcef0f3) )
+ ROM_LOAD( "n036001b.1fc", 0x180000, 0x080000, CRC(96c3ece9) SHA1(357ed280157897e26eeecce080da9757f1c03b35) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "n036001a.538", 0x000000, 0x40000, CRC(acb82025) SHA1(6bc9b61fdbcb04a1acc0c692a066791bf412d814) )
+ ROM_CONTINUE( 0x000002, 0x40000 )
+ ROM_LOAD32_BYTE( "n036001a.638", 0x000001, 0x40000, CRC(647ba28f) SHA1(761884eabcf3be81614ee1d2cf6a86515b3fb628) )
+ ROM_CONTINUE( 0x000003, 0x40000 )
+ ROM_LOAD32_BYTE( "n036001a.53c", 0x100000, 0x40000, CRC(c6954f8e) SHA1(b7f09c1d5800ea82abee8f0b00d0c9395882fe00) )
+ ROM_CONTINUE( 0x100002, 0x40000 )
+ ROM_LOAD32_BYTE( "n036001a.63c", 0x100001, 0x40000, CRC(dffefa4f) SHA1(bdc9bd4d09808a51d8fb27c337f0382d5ddd58df) )
+ ROM_CONTINUE( 0x100003, 0x40000 )
+ ROM_LOAD32_BYTE( "n036001b.538", 0x200000, 0x40000, CRC(eb751be8) SHA1(50db6c2055160396f7a6e4ada9fa52a458046ad2) )
+ ROM_CONTINUE( 0x200002, 0x40000 )
+ ROM_LOAD32_BYTE( "n036001b.638", 0x200001, 0x40000, CRC(6135247a) SHA1(0c23a0894484689124873cfc37a4e0a05e226f2d) )
+ ROM_CONTINUE( 0x200003, 0x40000 )
+ ROM_LOAD32_BYTE( "n036001b.53c", 0x300000, 0x40000, CRC(1d39bad6) SHA1(8f275cc73844760725b476264db0543a1327fb21) )
+ ROM_CONTINUE( 0x300002, 0x40000 )
+ ROM_LOAD32_BYTE( "n036001b.63c", 0x300001, 0x40000, CRC(0d40c953) SHA1(f77d84cb6b9bfe580f69a319d4f4fd98389e6d49) )
+ ROM_CONTINUE( 0x300003, 0x40000 )
+ROM_END
+
+ROM_START( bstarsd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE ( "n002001a.038", 0x000001, 0x040000, CRC(68ce5b06) SHA1(cab050a4efcf346463609910b367f7f6c1c0158b) )
+ ROM_CONTINUE ( 0x000000, 0x040000 )
+
+ NEO_SFIX_128K( "002-s1.s1", CRC(1a7fd0c6) SHA1(3fc701b7afddab369ddf9dedfbc5e1aaf80b8af3) ) // n002001a.378
+
+ NEO_BIOS_AUDIO_64K( "n002001a.478", CRC(79a8f4c2) SHA1(08ca2b72fd9b0ed068dc918ecda51d13203a3481) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "002-v11.v11", 0x000000, 0x080000, CRC(b7b925bd) SHA1(644c92fa90e74998e73714f74b1e0680ee372a07) ) // n002001a.178
+ ROM_LOAD( "002-v12.v12", 0x080000, 0x080000, CRC(329f26fc) SHA1(2c8009edc88c6b26f7be5beb2b8d260aac394ee1) ) // n002001a.17c
+ ROM_LOAD( "002-v13.v13", 0x100000, 0x080000, CRC(0c39f3c8) SHA1(db8f8670639601215707d918d4fb93221460446a) ) // n002001b.178
+ ROM_LOAD( "002-v14.v14", 0x180000, 0x080000, CRC(c7e11c38) SHA1(5abf2a7877e0162c758a4dcf09f183930fa7ef24) ) // n002001b.17c
+
+ ROM_REGION( 0x080000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "002-v21.v21", 0x000000, 0x080000, CRC(04a733d1) SHA1(84159368c0f6de2c3b8121227201cd3422455cf6) ) // n002001a.278
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "n002001a.538", 0x000000, 0x40000, CRC(c55a7229) SHA1(23a28f8ba6c1339dde4f674bbca6e6cffafabcc7) )
+ ROM_CONTINUE( 0x000002, 0x40000 )
+ ROM_LOAD32_BYTE( "n002001a.638", 0x000001, 0x40000, CRC(cd3eeb2d) SHA1(3997788c063cea48a901ff6033574d2c8a9e0516) )
+ ROM_CONTINUE( 0x000003, 0x40000 )
+ ROM_LOAD32_BYTE( "n002001a.53c", 0x100000, 0x40000, CRC(a0074bd9) SHA1(f1b1ba3630befd595d141bfc580b1bbe01bee324) )
+ ROM_CONTINUE( 0x100002, 0x40000 )
+ ROM_LOAD32_BYTE( "n002001a.63c", 0x100001, 0x40000, CRC(d651fecf) SHA1(3e7bbda2ecd487e568f8e8eb9b141941d6a761b9) )
+ ROM_CONTINUE( 0x100003, 0x40000 )
+ ROM_LOAD32_BYTE( "n002001b.538", 0x200000, 0x40000, CRC(d57767e6) SHA1(cf18dd9cf6f9da09af7be5e0c9f7f12eaa61c129) )
+ ROM_CONTINUE( 0x200002, 0x40000 )
+ ROM_LOAD32_BYTE( "n002001b.638", 0x200001, 0x40000, CRC(5d0a8692) SHA1(1a0f767d11f73fd41aa2f1840fc300fb23b8d262) )
+ ROM_CONTINUE( 0x200003, 0x40000 )
+ROM_END
+
+ROM_START( burningfd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE ( "n018001a.038", 0x000001, 0x040000, CRC(188c5e11) SHA1(0f82b0e6fd93f43579f7cb2871e6840c738696af) )
+ ROM_CONTINUE ( 0x000000, 0x040000 )
+
+ NEO_SFIX_128K( "018-s1.s1", CRC(6799ea0d) SHA1(ec75ef9dfdcb0b123574fc6d81ebaaadfba32fb5) ) // n018001a.378
+
+ NEO_BIOS_AUDIO_128K( "n018001a.4f8", CRC(58d10c2b) SHA1(5f1f01af284f6520d09ae1c5f6f176153a013f90) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "n018001a.1f8", 0x000000, 0x080000, CRC(b55b9670) SHA1(b0ff38b2dca1361ad155e90be3674dbea1c0a53c) )
+ ROM_LOAD( "n018001a.1fc", 0x080000, 0x080000, CRC(a0bcf260) SHA1(5d1f2613cf4a292557f37e6f44a90b20d11ed8cd) )
+ ROM_LOAD( "n018001b.1f8", 0x100000, 0x080000, CRC(270f4707) SHA1(29e763acc9fd4b94d8b5d0ad917e20d8a66bbe49) )
+ ROM_LOAD( "n018001b.1fc", 0x180000, 0x080000, CRC(924e3d69) SHA1(927091f9a098f00eb303f5567f4ee926bcb170e3) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "n018001a.538", 0x000000, 0x40000, CRC(4ddc137b) SHA1(02add8810ed4df43feda93dd61c308bf1752e1dc) )
+ ROM_CONTINUE( 0x000002, 0x40000 )
+ ROM_LOAD32_BYTE( "n018001a.638", 0x000001, 0x40000, CRC(7d7d87dc) SHA1(efd24a8b6112c38e7d4bca46dfae227a80883be7) )
+ ROM_CONTINUE( 0x000003, 0x40000 )
+ ROM_LOAD32_BYTE( "n018001a.53c", 0x100000, 0x40000, CRC(896d8545) SHA1(415e5982275d43666d5b33c1a599e5fe073e0ab1) )
+ ROM_CONTINUE( 0x100002, 0x40000 )
+ ROM_LOAD32_BYTE( "n018001a.63c", 0x100001, 0x40000, CRC(39fe5307) SHA1(6be6306324ff63715e5ddb33c9565a538472e014) )
+ ROM_CONTINUE( 0x100003, 0x40000 )
+ ROM_LOAD32_BYTE( "n018001b.538", 0x200000, 0x40000, CRC(2b2cb196) SHA1(2826b07d72adb0c83cd84dbfc3d9a6eae93bd3b7) )
+ ROM_CONTINUE( 0x200002, 0x40000 )
+ ROM_LOAD32_BYTE( "n018001b.638", 0x200001, 0x40000, CRC(03aa8a36) SHA1(e68f12e869b0c947a0b2a0dd591edbe995e95775) )
+ ROM_CONTINUE( 0x200003, 0x40000 )
+ ROM_LOAD32_BYTE( "n018001b.53c", 0x300000, 0x40000, CRC(0f49caa9) SHA1(5a86c3b2a29b1bee10a2649c0106e0a4948f5ecf) )
+ ROM_CONTINUE( 0x300002, 0x40000 )
+ ROM_LOAD32_BYTE( "n018001b.63c", 0x300001, 0x40000, CRC(f759626e) SHA1(29e123c8d40334a53fceae33308d92a0dd3ac80d) )
+ ROM_CONTINUE( 0x300003, 0x40000 )
+ROM_END
+
+ROM_START( crswordd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE ( "n037001a.038", 0x000001, 0x040000, CRC(42c78fe1) SHA1(4e680092f87baa8ce1ec375bedfd393b553bad11) )
+ ROM_CONTINUE ( 0x000000, 0x040000 )
+
+ NEO_SFIX_128K( "037-s1.s1", CRC(74651f27) SHA1(bff7ff2429d2be82c1647abac2ee45b339b3b310) ) // n037001a.378
+
+ NEO_BIOS_AUDIO_64K( "n037001a.4f8", CRC(66633e5e) SHA1(24611f084643c36069c2e48dac86413a18f9663b) )
+
+ ROM_REGION( 0x100000, "ymsnd", 0 )
+ ROM_LOAD( "n037001a.1f8", 0x000000, 0x080000, CRC(525df5c8) SHA1(de8802aa515de5b552df87ba4eb3aa27c12105c9) )
+ ROM_LOAD( "n037001a.1fc", 0x080000, 0x080000, CRC(a11ecaf4) SHA1(214ef018628a6acf2464fdd98afadb02e4f609eb) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "n037001a.538", 0x000000, 0x40000, CRC(4b373de7) SHA1(4a3cd07cb2b029c28bdea9918d839fa308324921) )
+ ROM_CONTINUE( 0x000002, 0x40000 )
+ ROM_LOAD32_BYTE( "n037001a.638", 0x000001, 0x40000, CRC(e05f5f33) SHA1(af11079524edf2db79efd8ab25b33689a0d1080b) )
+ ROM_CONTINUE( 0x000003, 0x40000 )
+ ROM_LOAD32_BYTE( "n037001a.53c", 0x100000, 0x40000, CRC(cddf6d69) SHA1(04f002d6648af24ca5c887bcd8b73d3a59becd2c) )
+ ROM_CONTINUE( 0x100002, 0x40000 )
+ ROM_LOAD32_BYTE( "n037001a.63c", 0x100001, 0x40000, CRC(91ab11a4) SHA1(b063bf2ab89382014159fbe5372a0893782fa510) )
+ ROM_CONTINUE( 0x100003, 0x40000 )
+ ROM_LOAD32_BYTE( "n037001b.538", 0x200000, 0x40000, CRC(61d25cb3) SHA1(fde39e2a3cc920772981afb6843f69c6b7b55f2d) )
+ ROM_CONTINUE( 0x200002, 0x40000 )
+ ROM_LOAD32_BYTE( "n037001b.638", 0x200001, 0x40000, CRC(01357559) SHA1(898db3366147e4c8920de9efb52b9d852dded010) )
+ ROM_CONTINUE( 0x200003, 0x40000 )
+ ROM_LOAD32_BYTE( "n037001b.53c", 0x300000, 0x40000, CRC(00bc3d84) SHA1(9eab28250902748563bc6a0dc4bd0ea66126a767) )
+ ROM_CONTINUE( 0x300002, 0x40000 )
+ ROM_LOAD32_BYTE( "n037001b.63c", 0x300001, 0x40000, CRC(28c6d19a) SHA1(96aa762ec26a6b954ec7414b74febf6b88e272aa) )
+ ROM_CONTINUE( 0x300003, 0x40000 )
+ROM_END
+
+ROM_START( cyberlipd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE ( "n010001a.038", 0x000001, 0x040000, CRC(4012e465) SHA1(81caac2b559183f5a87980b6f1ca7e42d5338962) )
+ ROM_CONTINUE ( 0x000000, 0x040000 )
+ ROM_LOAD16_BYTE ( "n010001a.03c", 0x080001, 0x040000, CRC(ee899b19) SHA1(3d0369ad2496e8622fb5a11f751056a2c5fad7bf) )
+ ROM_CONTINUE ( 0x080000, 0x040000 )
+
+ NEO_SFIX_128K( "010-s1.s1", CRC(79a35264) SHA1(c2819a82adbe1f5e489496e0e03477863a5b7665) ) // n010001a.378
+
+ NEO_BIOS_AUDIO_128K( "010-m1.m1", CRC(8be3a078) SHA1(054ec6a061fcc88df1ecbb0a01611a31f37a7709) ) // n010001a.478
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "010-v11.v11", 0x000000, 0x080000, CRC(90224d22) SHA1(5443ee6f90d80d43194cb4b4f0e08851a59e7784) ) // n010001a.178
+ ROM_LOAD( "010-v12.v12", 0x080000, 0x080000, CRC(a0cf1834) SHA1(8df57a7941bdae7e446a6056039adb012cdde246) ) // n010001a.17c
+ ROM_LOAD( "010-v13.v13", 0x100000, 0x080000, CRC(ae38bc84) SHA1(c0937b4f89b8b26c8a0e747b234f44ad6a3bf2ba) ) // n010001b.178
+ ROM_LOAD( "010-v14.v14", 0x180000, 0x080000, CRC(70899bd2) SHA1(8cf01144f0bcf59f09777175ae6b71846b09f3a1) ) // n010001b.17c
+
+ ROM_REGION( 0x080000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "010-v21.v21", 0x000000, 0x080000, CRC(586f4cb2) SHA1(588460031d84c308e3353ecf714db9986425c21c) ) // n010001a.278
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "n010001a.538", 0x000000, 0x40000, CRC(0239fc08) SHA1(27c2a68103ca6898780d72ded57f4447cf5f7f80) )
+ ROM_CONTINUE( 0x000002, 0x40000 )
+ ROM_LOAD32_BYTE( "n010001a.638", 0x000001, 0x40000, CRC(e102a1bd) SHA1(89ffd05845b452423b4cd69c4420eafa0c168507) )
+ ROM_CONTINUE( 0x000003, 0x40000 )
+ ROM_LOAD32_BYTE( "n010001a.53c", 0x100000, 0x40000, CRC(23f03b97) SHA1(f5a2b3c0cf039a84cf78223f089f9fa3a7d9f01a) )
+ ROM_CONTINUE( 0x100002, 0x40000 )
+ ROM_LOAD32_BYTE( "n010001a.63c", 0x100001, 0x40000, CRC(520571d2) SHA1(4be129b679d3962a95ce32f462c58aa08c43b1cd) )
+ ROM_CONTINUE( 0x100003, 0x40000 )
+ ROM_LOAD32_BYTE( "n010001b.538", 0x200000, 0x40000, CRC(065061ed) SHA1(5c1e48e31cc6b5bbc50085abc8102ab436885b23) )
+ ROM_CONTINUE( 0x200002, 0x40000 )
+ ROM_LOAD32_BYTE( "n010001b.638", 0x200001, 0x40000, CRC(2e31e2d2) SHA1(29c88296d10b6b716ab753d2692267e0619d6193) )
+ ROM_CONTINUE( 0x200003, 0x40000 )
+ ROM_LOAD32_BYTE( "n010001b.53c", 0x300000, 0x40000, CRC(e485e72d) SHA1(1fb160f403b6ec1ff28408d141dfe31245dbfb58) )
+ ROM_CONTINUE( 0x300002, 0x40000 )
+ ROM_LOAD32_BYTE( "n010001b.63c", 0x300001, 0x40000, CRC(9e2af4db) SHA1(0089d1a66fa40a25ea78c6da24b4872b4fd12782) )
+ ROM_CONTINUE( 0x300003, 0x40000 )
+ROM_END
+
+ROM_START( eightmand )
+ ROM_REGION(0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE ( "n025001a.038", 0x000001, 0x040000, CRC(e23e2631) SHA1(ddc9efe6e386aa89aca052f004492caf39a84d68) )
+ ROM_CONTINUE ( 0x000000, 0x040000 )
+
+ NEO_SFIX_128K( "025-s1.s1", CRC(a402202b) SHA1(75c44e1af459af155f5b892fd18706268dd5e602) ) // n025001a.378
+
+ NEO_BIOS_AUDIO_128K( "n025001a.4f8", CRC(68b6e0ef) SHA1(8a6c221460454d15c3d72dd66a2318be0a3d5072) )
+
+ ROM_REGION(0x200000, "ymsnd", 0)
+ ROM_LOAD( "n025001a.1f8", 0x000000, 0x080000, CRC(0a2299b4) SHA1(96087ec57bca13a7394566c87310cd5a05eae62a) )
+ ROM_LOAD( "n025001a.1fc", 0x080000, 0x080000, CRC(b695e254) SHA1(ca752c4834dcdd8c2829e336abf135e584ade603) )
+ ROM_LOAD( "n025001b.1f8", 0x100000, 0x080000, CRC(6c3c3fec) SHA1(69f7cb9a4c39b651898383ec9ee6891565e93baf) )
+ ROM_LOAD( "n025001b.1fc", 0x180000, 0x080000, CRC(375764df) SHA1(7288befc006bd10030911efecfbf78146ed5f781) )
+
+ ROM_REGION(0x300000, "sprites", 0)
+ ROM_LOAD32_BYTE( "n025001a.538", 0x000000, 0x40000, CRC(c916c9bf) SHA1(ac56aa28b163d21af80f355011112c1921a6797b) )
+ ROM_CONTINUE( 0x000002, 0x40000 )
+ ROM_LOAD32_BYTE( "n025001a.638", 0x000001, 0x40000, CRC(7114bce3) SHA1(a74abb92ec513250abea7487fd49ec2282a6531f) )
+ ROM_CONTINUE( 0x000003, 0x40000 )
+ ROM_LOAD32_BYTE( "n025001a.53c", 0x100000, 0x40000, CRC(4b057b13) SHA1(1d06edc938d8c618847853ae58de9a6e8dd6521f) )
+ ROM_CONTINUE( 0x100002, 0x40000 )
+ ROM_LOAD32_BYTE( "n025001a.63c", 0x100001, 0x40000, CRC(51da9a34) SHA1(850275621db0372839db334161c167c0df0915ac) )
+ ROM_CONTINUE( 0x100003, 0x40000 )
+ ROM_LOAD32_BYTE( "n025001b.538", 0x200000, 0x40000, CRC(12d53af0) SHA1(69bc5c1f6aa4386e851d2d0db04b5a9246257a90) )
+ ROM_CONTINUE( 0x200002, 0x40000 )
+ ROM_LOAD32_BYTE( "n025001b.638", 0x200001, 0x40000, CRC(43cf58f9) SHA1(72b4f27b66d45155aa98d65457c4fdd3b09d08e9) )
+ ROM_CONTINUE( 0x200003, 0x40000 )
+ROM_END
+
+ROM_START( fatfury1d )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE ( "n033001a.038", 0x000001, 0x040000, CRC(47e51379) SHA1(bb1558765f55e0b8e3e0c1c5c79db8cec8b51085) )
+ ROM_CONTINUE ( 0x000000, 0x040000 )
+ ROM_LOAD16_BYTE ( "n033001a.03c", 0x080001, 0x040000, CRC(19d36805) SHA1(6b2d5326a08b06a9152d80a8de054ad9f159a453) )
+ ROM_CONTINUE ( 0x080000, 0x040000 )
+
+ NEO_SFIX_128K( "033-s1.s1", CRC(3c3bdf8c) SHA1(2f3e5feed6c27850b2a0f6fae0b97041690e944c) ) // n033001a.378
+
+ NEO_BIOS_AUDIO_128K( "n033001a.4f8", CRC(a8603979) SHA1(512f2280a43892d4ca003ac63945ce86c5211b97) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "n033001a.1f8", 0x000000, 0x080000, CRC(86fabf00) SHA1(df087f58c689128f7696b91e2fcb600ccac017af) )
+ ROM_LOAD( "n033001a.1fc", 0x080000, 0x080000, CRC(ead1467b) SHA1(6f4381d7a0625f5d02739a9813ff593c2dc99dde) )
+ ROM_LOAD( "n033001b.1f8", 0x100000, 0x080000, CRC(fc3bd6f7) SHA1(8d3094ecd8d5cfe3f58be9ac6d76a2bb65eb1d00) )
+ ROM_LOAD( "n033001b.1fc", 0x180000, 0x080000, CRC(d312f6c0) SHA1(3fae32af628ed8d0176a7f6668ff4f2d898c9f7a) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "n033001a.538", 0x000000, 0x40000, CRC(9aaa6d73) SHA1(345ed4b75a6459cd0b8fc8f71d58f4951296177f) )
+ ROM_CONTINUE( 0x000002, 0x40000 )
+ ROM_LOAD32_BYTE( "n033001a.638", 0x000001, 0x40000, CRC(9cae3703) SHA1(1144ccf448ea7c00ca425fe54f2ce84b8fdb3c78) )
+ ROM_CONTINUE( 0x000003, 0x40000 )
+ ROM_LOAD32_BYTE( "n033001a.53c", 0x100000, 0x40000, CRC(a986f4a9) SHA1(a45cc6b5902333d6614b7a2018ebd5ada7c5f075) )
+ ROM_CONTINUE( 0x100002, 0x40000 )
+ ROM_LOAD32_BYTE( "n033001a.63c", 0x100001, 0x40000, CRC(308b619f) SHA1(384efb66633a888d7c48d2ab0e918d823178b382) )
+ ROM_CONTINUE( 0x100003, 0x40000 )
+ ROM_LOAD32_BYTE( "n033001b.538", 0x200000, 0x40000, CRC(7aefe57d) SHA1(ab97881ff620ab7130d9ce1527c23bcfc0b21a5e) )
+ ROM_CONTINUE( 0x200002, 0x40000 )
+ ROM_LOAD32_BYTE( "n033001b.638", 0x200001, 0x40000, CRC(b39a0cde) SHA1(e5829525bc2ffe489ebb0ec4ab0094417f141027) )
+ ROM_CONTINUE( 0x200003, 0x40000 )
+ ROM_LOAD32_BYTE( "n033001b.53c", 0x300000, 0x40000, CRC(e3057c96) SHA1(b6a2e55633db0aad7f1ca4e8b42c2a327f772add) )
+ ROM_CONTINUE( 0x300002, 0x40000 )
+ ROM_LOAD32_BYTE( "n033001b.63c", 0x300001, 0x40000, CRC(737bc030) SHA1(03ceeabb84dac6f27c6f6ba2b7097b756f411270) )
+ ROM_CONTINUE( 0x300003, 0x40000 )
+ROM_END
+
+ROM_START( fbfrenzyd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE ( "n034001a.038", 0x000001, 0x040000, CRC(c9fc879c) SHA1(24b8be60a434c3f4944f060607756a830f9365fd) )
+ ROM_CONTINUE ( 0x000000, 0x040000 )
+
+ NEO_SFIX_128K( "034-s1.s1", CRC(8472ed44) CRC(8472ed44) SHA1(42e1a9671dddd090d2a634cff986f6c73ba08b70) ) // n034001a.378
+
+ NEO_BIOS_AUDIO_128K( "n034001a.4f8", CRC(079a203c) SHA1(b0e818400c46331ec42f9bb8fa3feacb6c69006a) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "n034001a.1f8", 0x000000, 0x080000, CRC(d295da77) SHA1(3015a07236714af87928a9bff1a9505a9ee9b419) )
+ ROM_LOAD( "n034001a.1fc", 0x080000, 0x080000, CRC(249b7f52) SHA1(4aa1e7f73c37ecdd09098a3943c8ff3e919788be) )
+ ROM_LOAD( "n034001b.1f8", 0x100000, 0x080000, CRC(e438fb9d) SHA1(0403345549e618a3161c74a37ecae894b6e8d1e0) )
+ ROM_LOAD( "n034001b.1fc", 0x180000, 0x080000, CRC(4f9bc109) SHA1(05f47d9b7de8a4f51fce43c14a2f5e7d616058a3) )
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "n034001a.538", 0x000000, 0x40000, CRC(cd377680) SHA1(0ba533dc644b4111361e6f0ef31b2a92bc974efb) )
+ ROM_CONTINUE( 0x000002, 0x40000 )
+ ROM_LOAD32_BYTE( "n034001a.638", 0x000001, 0x40000, CRC(8b76358f) SHA1(ba908221daa9bfe7eaf03e370329fdb4a015da5f) )
+ ROM_CONTINUE( 0x000003, 0x40000 )
+ ROM_LOAD32_BYTE( "n034001a.53c", 0x100000, 0x40000, CRC(2f6d09c2) SHA1(5afffa37d5782c21e0d673ebfaf03f92fb5b91e4) )
+ ROM_CONTINUE( 0x100002, 0x40000 )
+ ROM_LOAD32_BYTE( "n034001a.63c", 0x100001, 0x40000, CRC(77e45dd2) SHA1(a4412ddfde175405c85eba2e56eec3d9878575d3) )
+ ROM_CONTINUE( 0x100003, 0x40000 )
+ ROM_LOAD32_BYTE( "n034001b.538", 0x200000, 0x40000, CRC(9abe41c8) SHA1(ab350c65258e5d229ab317d45580ae4cbbcd1478) )
+ ROM_CONTINUE( 0x200002, 0x40000 )
+ ROM_LOAD32_BYTE( "n034001b.638", 0x200001, 0x40000, CRC(336540a8) SHA1(7be473063680987560a188e59f477c8ff9b96b01) )
+ ROM_CONTINUE( 0x200003, 0x40000 )
+ROM_END
+
+ROM_START( gpilotsd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE ( "n020001a.038", 0x000001, 0x040000, CRC(fc5837c0) SHA1(1eb46c21b17130238a1453c219e006ea150370ee) )
+ ROM_CONTINUE ( 0x000000, 0x040000 )
+ ROM_LOAD16_BYTE ( "n020001a.03c", 0x080001, 0x040000, CRC(47a641da) SHA1(d369ee64fd70d705355df71766b72c402a236e24) )
+ ROM_CONTINUE ( 0x080000, 0x040000 )
+
+ NEO_SFIX_128K( "020-s1.s1", CRC(a6d83d53) SHA1(9a8c092f89521cc0b27a385aa72e29cbaca926c5) ) // n020001a.378
+
+ NEO_BIOS_AUDIO_64K( "n020001a.478", CRC(fc05fb8b) SHA1(bab6e6af4a60ffebff25951eca4177ece68875a4) )
+
+ ROM_REGION( 0x180000, "ymsnd", 0 )
+ ROM_LOAD( "n020001a.178", 0x000000, 0x080000, CRC(8cc44140) SHA1(0a88d8962e057bf0cabd4819d4ba67e093c49b82) )
+ ROM_LOAD( "n020001a.17c", 0x080000, 0x080000, CRC(415c61cd) SHA1(638e5fd9b02b4553df42f00188a7ac52a5a7bf84) )
+ ROM_LOAD( "020-v12.v12", 0x100000, 0x080000, CRC(4a9e6f03) SHA1(d3ac11f333b03d8a318921bdaefb14598e289a14) ) // n020001b.178
+
+ ROM_REGION( 0x080000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "020-v21.v21", 0x000000, 0x080000, CRC(7abf113d) SHA1(5b2a0e70f2eaf4638b44702dacd4cb17838fb1d5) ) // n020001a.278
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "n020001a.538", 0x000000, 0x40000, CRC(92b8ee5f) SHA1(ff45ca2eed87863f3725d5dadd5f55ac39af033e) )
+ ROM_CONTINUE( 0x000002, 0x40000 )
+ ROM_LOAD32_BYTE( "n020001a.638", 0x000001, 0x40000, CRC(05733639) SHA1(a5f2639853ea53ec3ff91fe37fdb9e628a497883) )
+ ROM_CONTINUE( 0x000003, 0x40000 )
+ ROM_LOAD32_BYTE( "n020001a.53c", 0x100000, 0x40000, CRC(8c8e42e9) SHA1(9aa2abd11358933d72dc52ae8d0214e3b350c83b) )
+ ROM_CONTINUE( 0x100002, 0x40000 )
+ ROM_LOAD32_BYTE( "n020001a.63c", 0x100001, 0x40000, CRC(347fef2b) SHA1(8b4c7ab7d9cfda8e588d8e0f4796ce163b468407) )
+ ROM_CONTINUE( 0x100003, 0x40000 )
+ ROM_LOAD32_BYTE( "n020001b.538", 0x200000, 0x40000, CRC(4f12268b) SHA1(fa531734c9dbba62e35cb29eb40d80a219d87c54) )
+ ROM_CONTINUE( 0x200002, 0x40000 )
+ ROM_LOAD32_BYTE( "n020001b.638", 0x200001, 0x40000, CRC(2c586176) SHA1(0e28a27d59ae2ec6a9d1ff822244bfa4f960f338) )
+ ROM_CONTINUE( 0x200003, 0x40000 )
+ ROM_LOAD32_BYTE( "n020001b.53c", 0x300000, 0x40000, CRC(7c3c9c7e) SHA1(43a15669788384024ac173e1f89e53a2bdd630d2) )
+ ROM_CONTINUE( 0x300002, 0x40000 )
+ ROM_LOAD32_BYTE( "n020001b.63c", 0x300001, 0x40000, CRC(9b2eee8b) SHA1(420156256d5b628a62ea612edd526d293d2c7abc) )
+ ROM_CONTINUE( 0x300003, 0x40000 )
+ROM_END
+
+ROM_START( joyjoyd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE ( "n021001a.038", 0x000001, 0x040000, CRC(ea512c9f) SHA1(094d8c06a1038dd38b74ced3d213a52b340062a6) )
+ ROM_CONTINUE ( 0x000000, 0x040000 )
+
+ NEO_SFIX_128K( "021-s1.s1", CRC(6956d778) SHA1(e3757776d60dc07d8e07c9ca61b223b14732f860) ) // n021001a.378
+
+ NEO_BIOS_AUDIO_64K( "n021001a.478", CRC(058683ec) SHA1(2aff3dc18d078911ed3a09d48664faf5958b4ab5) )
+
+ ROM_REGION( 0x080000, "ymsnd", 0 )
+ ROM_LOAD( "021-v11.v11", 0x000000, 0x080000, CRC(66c1e5c4) SHA1(7e85420021d4c39c36ed75a1cec567c5610ffce0) ) // n021001a.178
+
+ ROM_REGION( 0x080000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "021-v21.v21", 0x000000, 0x080000, CRC(8ed20a86) SHA1(d15cba5eac19ea56fdd4877541f1bb3eb755ebba) ) // n021001a.278
+
+ ROM_REGION( 0x100000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "n021001a.538", 0x000000, 0x40000, CRC(cb27be65) SHA1(bdadc0da89026af3ed0dc6a18f2449c0cb24ee0c) )
+ ROM_CONTINUE( 0x000002, 0x40000 )
+ ROM_LOAD32_BYTE( "n021001a.638", 0x000001, 0x40000, CRC(7e134979) SHA1(e33b30e39283963e8e806ccd12d9559de27c8bbe) )
+ ROM_CONTINUE( 0x000003, 0x40000 )
+ROM_END
+
+ROM_START( kotmd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE ( "n016001a.038", 0x000001, 0x040000, CRC(d239c184) SHA1(feb139ce089385b6b1bc95970c4d7ae4fd8a7c7f) )
+ ROM_CONTINUE ( 0x000000, 0x040000 )
+ ROM_LOAD16_BYTE ( "n016001a.03c", 0x080001, 0x040000, CRC(7291a388) SHA1(16e22a8eef5391fa43d92d702f14a746dedf292b) )
+ ROM_CONTINUE ( 0x080000, 0x040000 )
+
+ NEO_SFIX_128K( "016-s1.s1", CRC(1a2eeeb3) SHA1(8d2b96d395020197bc59294b6b0c8d62b1d8d4dd) ) // n016001a.378
+
+ NEO_BIOS_AUDIO_128K( "n016001a.4f8", CRC(40797389) SHA1(12ca00ba1d2d66d79bc64969661a52205cc98d66) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "n016001a.1f8", 0x000000, 0x080000, CRC(c3df83ba) SHA1(2f015ccf99de241861e05e81ad47faf02aec3290) )
+ ROM_LOAD( "n016001a.1fc", 0x080000, 0x080000, CRC(22aa6096) SHA1(c98fdc9fa589907cae1f7a2814fa32913d6c8648) )
+ ROM_LOAD( "n016001b.1f8", 0x100000, 0x080000, CRC(df9a4854) SHA1(f9612d82ce476f8c973ce60a982ae8007bd051a1) )
+ ROM_LOAD( "n016001b.1fc", 0x180000, 0x080000, CRC(71f53a38) SHA1(0fa03a2c719cc413ab163d166f93fcdc89646066) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "n016001a.538", 0x000000, 0x40000, CRC(493db90e) SHA1(fb22e4f5437d9402c531779215cf675daa35401f) )
+ ROM_CONTINUE( 0x000002, 0x40000 )
+ ROM_LOAD32_BYTE( "n016001a.638", 0x000001, 0x40000, CRC(8bc1c3a0) SHA1(789f990b2b12bff7335a40a0ca6e64824dd6d4e2) )
+ ROM_CONTINUE( 0x000003, 0x40000 )
+ ROM_LOAD32_BYTE( "n016001a.53c", 0x100000, 0x40000, CRC(0d211945) SHA1(4edef3bdd73e402ab606ac27013a2b8c1467667c) )
+ ROM_CONTINUE( 0x100002, 0x40000 )
+ ROM_LOAD32_BYTE( "n016001a.63c", 0x100001, 0x40000, CRC(cc793bbf) SHA1(b88075e388d68601bb0e56f621a22abaf90ef39c) )
+ ROM_CONTINUE( 0x100003, 0x40000 )
+ ROM_LOAD32_BYTE( "n016001b.538", 0x200000, 0x40000, CRC(cabb7b58) SHA1(e7be9c459c17dddc3a812981e14fc2e0a3fb5ec3) )
+ ROM_CONTINUE( 0x200002, 0x40000 )
+ ROM_LOAD32_BYTE( "n016001b.638", 0x200001, 0x40000, CRC(fde45b59) SHA1(72ddca41b6cd595246eb8c8bb0c2e614c53e828c) )
+ ROM_CONTINUE( 0x200003, 0x40000 )
+ ROM_LOAD32_BYTE( "n016001b.53c", 0x300000, 0x40000, CRC(c7c20718) SHA1(52a2d7f4f8baede451959a351d2badf080b1e20e) )
+ ROM_CONTINUE( 0x300002, 0x40000 )
+ ROM_LOAD32_BYTE( "n016001b.63c", 0x300001, 0x40000, CRC(b89b4201) SHA1(74322700b9e8cf30b7d025be3909e93e1bfdaaf9) )
+ ROM_CONTINUE( 0x300003, 0x40000 )
+ROM_END
+
+ROM_START( lbowlingd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE ( "n019001a.038", 0x000001, 0x040000, CRC(380e358d) SHA1(2f9683ca65abb2d046277a7642877f66a29d08f6) )
+ ROM_CONTINUE ( 0x000000, 0x040000 )
+
+ NEO_SFIX_128K( "019-s1.s1", CRC(5fcdc0ed) SHA1(86415077e7adc3ba6153eeb4fb0c62cf36e903fa) ) // n019001a.378
+
+ NEO_BIOS_AUDIO_64K( "n019001a.478", CRC(535ec016) SHA1(301733768d2b962f58fc372e54f9d7bfd6615c21) )
+
+ ROM_REGION( 0x100000, "ymsnd", 0 )
+ ROM_LOAD( "019-v11.v11", 0x000000, 0x080000, CRC(0fb74872) SHA1(38c555926c77576d63472bc075210c42e9ce13a3) ) // n019001a.178
+ ROM_LOAD( "019-v12.v12", 0x080000, 0x080000, CRC(029faa57) SHA1(7bbaa87e38929ab1e32df5f6a2ec0fd5001e7cdb) ) // n019001a.17c
+
+ ROM_REGION( 0x080000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "019-v21.v21", 0x000000, 0x080000, CRC(2efd5ada) SHA1(8ba70f5f665d566824333075227d9bce1253b8d8) ) // n019001a.278
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "n019001a.538", 0x000000, 0x40000, CRC(17df7955) SHA1(992558200cbe7c0f9fc96cb6b1adb63ded28b833) )
+ ROM_CONTINUE( 0x000002, 0x40000 )
+ ROM_LOAD32_BYTE( "n019001a.638", 0x000001, 0x40000, CRC(84fd2c90) SHA1(b0ce2ba62d682f847f238eb5196340f466e6bcda) )
+ ROM_CONTINUE( 0x000003, 0x40000 )
+ ROM_LOAD32_BYTE( "n019001a.53c", 0x100000, 0x40000, CRC(67bf2d89) SHA1(282a29425eed00a85f88c332112bd9e0a95770cf) )
+ ROM_CONTINUE( 0x100002, 0x40000 )
+ ROM_LOAD32_BYTE( "n019001a.63c", 0x100001, 0x40000, CRC(cb4fbeb0) SHA1(a9a985ef66fe39111ccd37a4c1a26707d3bf3045) )
+ ROM_CONTINUE( 0x100003, 0x40000 )
+ ROM_LOAD32_BYTE( "n019001b.538", 0x200000, 0x40000, CRC(00d36f90) SHA1(8d47ea266dd2bf3ccbb9fb21ba860d9e9ec22db0) )
+ ROM_CONTINUE( 0x200002, 0x40000 )
+ ROM_LOAD32_BYTE( "n019001b.638", 0x200001, 0x40000, CRC(c2ddf431) SHA1(2ffbea4164f3099bdf8162c6ecc782d8badfab25) )
+ ROM_CONTINUE( 0x200003, 0x40000 )
+ ROM_LOAD32_BYTE( "n019001b.53c", 0x300000, 0x40000, CRC(4e971be9) SHA1(f137ad0eb9da8c4fffb5893ed694d97647f7e77b) )
+ ROM_CONTINUE( 0x300002, 0x40000 )
+ ROM_LOAD32_BYTE( "n019001b.63c", 0x300001, 0x40000, CRC(e67f8c81) SHA1(e0e8b24171a61dfe14649e7cff6f95d0a510cb55) )
+ ROM_CONTINUE( 0x300003, 0x40000 )
+ROM_END
+
+ROM_START( lresortd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE ( "n024001a.038", 0x000001, 0x040000, CRC(5f0a5a4b) SHA1(69e33ed94f533528038fb157529b44dc940ab231) )
+ ROM_CONTINUE ( 0x000000, 0x040000 )
+
+ NEO_SFIX_128K( "024-s1.s1", CRC(5cef5cc6) SHA1(9ec305007bdb356e9f8f279beae5e2bcb3f2cf7b) ) // n024001a.378
+
+ NEO_BIOS_AUDIO_128K( "n024001a.4f8", CRC(3d40a1c6) SHA1(d98b2b2893274db0cadc9c9718349086afadadc7) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "n024001a.1f8", 0x000000, 0x080000, CRC(0722da38) SHA1(66a9b463d5277908b3a01c03de82b3de9118f2cb) )
+ ROM_LOAD( "n024001a.1fc", 0x080000, 0x080000, CRC(670ce3ec) SHA1(9004aa85d4a9b0ecf9cf9357b073ed55a98fdb02) )
+ ROM_LOAD( "n024001b.1f8", 0x100000, 0x080000, CRC(2e39462b) SHA1(b0a9b1a3377bf0369f3020192505c46ca52927d6) )
+ ROM_LOAD( "n024001b.1fc", 0x180000, 0x080000, CRC(7944754f) SHA1(d42a46c5127c6c62041ebffb0007af8a24abd360) )
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "n024001a.538", 0x000000, 0x40000, CRC(9f7995a9) SHA1(e3efdef66f5a6136ebe8fa9e3ff917323ab3fc5e) )
+ ROM_CONTINUE( 0x000002, 0x40000 )
+ ROM_LOAD32_BYTE( "n024001a.638", 0x000001, 0x40000, CRC(68c70bac) SHA1(7a6ddb1beb8cb6f6991d675affeb78226c18180e) )
+ ROM_CONTINUE( 0x000003, 0x40000 )
+ ROM_LOAD32_BYTE( "n024001a.53c", 0x100000, 0x40000, CRC(e122b155) SHA1(c9e759302fcf5aaf989463bf94157e45d76e68ea) )
+ ROM_CONTINUE( 0x100002, 0x40000 )
+ ROM_LOAD32_BYTE( "n024001a.63c", 0x100001, 0x40000, CRC(f18a9b02) SHA1(5cb9cf37de1b97ef680411beeff9ca262e77b067) )
+ ROM_CONTINUE( 0x100003, 0x40000 )
+ ROM_LOAD32_BYTE( "n024001b.538", 0x200000, 0x40000, CRC(e7138cb9) SHA1(d65c9e4f305cec30264355dd46a8ab413221dd82) )
+ ROM_CONTINUE( 0x200002, 0x40000 )
+ ROM_LOAD32_BYTE( "n024001b.638", 0x200001, 0x40000, CRC(08178e27) SHA1(e03137bf8e5bcd3c000113ec49da36f7100727e9) )
+ ROM_CONTINUE( 0x200003, 0x40000 )
+ROM_END
+
+ROM_START( maglordd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE ( "n005001a.038", 0x000001, 0x040000, CRC(e51c3815) SHA1(19f36c8393191caf95a254ca52ce9e0012e6947a) )
+ ROM_CONTINUE ( 0x000000, 0x040000 )
+
+ NEO_SFIX_128K( "005-s1.s1", CRC(1c5369a2) SHA1(db0dba0a7dced6c9ca929c5abda491b05d84199c) ) // n005001a.378
+
+ NEO_BIOS_AUDIO_64K( "n005001a.478", CRC(91ee1f73) SHA1(f060728543333a99216cc2879f7666a1f4235068) )
+
+ ROM_REGION( 0x080000, "ymsnd", 0 )
+ ROM_LOAD( "005-v11.v11", 0x000000, 0x080000, CRC(cc0455fd) SHA1(a8ff4270e7705e263d25ff0b301f503bccea7e59) ) // n005001a.178
+
+ ROM_REGION( 0x100000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "005-v21.v21", 0x000000, 0x080000, CRC(f94ab5b7) SHA1(2c16985102e3585e08622d8c54ac5c60425b9ff8) ) // n005001a.278
+ ROM_LOAD( "005-v22.v22", 0x080000, 0x080000, CRC(232cfd04) SHA1(61b66a9decbbd1f500a8c186615e7fd077c6861e) ) // n005001a.27c
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "n005001a.538", 0x000000, 0x40000, CRC(86aacd0d) SHA1(ee36e015908a7c087ace6cea0650822681066c94) )
+ ROM_CONTINUE( 0x000002, 0x40000 )
+ ROM_LOAD32_BYTE( "n005001a.638", 0x000001, 0x40000, CRC(b62658b5) SHA1(21a1d1f9ebe8c7a442c0b0a96f12af8047b8dbf3) )
+ ROM_CONTINUE( 0x000003, 0x40000 )
+ ROM_LOAD32_BYTE( "n005001a.53c", 0x100000, 0x40000, CRC(3997403e) SHA1(95e8375c897953055c952fd1fd3ff282fdc68928) )
+ ROM_CONTINUE( 0x100002, 0x40000 )
+ ROM_LOAD32_BYTE( "n005001a.63c", 0x100001, 0x40000, CRC(bd534fe2) SHA1(eebafc4a1daf650a6e7c3a64b2628e160e130b59) )
+ ROM_CONTINUE( 0x100003, 0x40000 )
+ ROM_LOAD32_BYTE( "n005001b.538", 0x200000, 0x40000, CRC(fbd1e9f1) SHA1(4faa14c164000e5581bb47788d2e8e1ee74ca0c6) )
+ ROM_CONTINUE( 0x200002, 0x40000 )
+ ROM_LOAD32_BYTE( "n005001b.638", 0x200001, 0x40000, CRC(a6461283) SHA1(a3eb28e584b0b91a0b5b372c932815cf4047d5bd) )
+ ROM_CONTINUE( 0x200003, 0x40000 )
+ROM_END
+
+ROM_START( minasand )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE ( "n027001a.038", 0x000001, 0x040000, CRC(86805d5a) SHA1(9f9e300f4d4aef1bddb239580e8e5e3087957a50) )
+ ROM_CONTINUE ( 0x000000, 0x040000 )
+
+ NEO_SFIX_128K( "027-s1.s1", CRC(e5824baa) SHA1(8230ff7fe3cabeacecc762d90a084e893db84906) ) // n027001a.378
+
+ NEO_BIOS_AUDIO_64K( "n027001a.478", CRC(19ef88ea) SHA1(8eca1a342d506e97dd116ce8ffe2242895b04c7a) )
+
+ ROM_REGION( 0x100000, "ymsnd", 0 )
+ ROM_LOAD( "n027001a.178", 0x000000, 0x080000, CRC(79d65e8e) SHA1(8e5d8608e43564e5ce1d458a9e09b2c8100e3f4f) )
+ ROM_LOAD( "n027001a.17c", 0x080000, 0x080000, CRC(0b3854d5) SHA1(27e951b47c0ab96f3c64704f913400020156895a) )
+
+ ROM_REGION( 0x100000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "n027001a.278", 0x000000, 0x080000, CRC(0100e548) SHA1(627d16aba58602d28c865e93894f8d00d4815779) )
+ ROM_LOAD( "n027001a.27c", 0x080000, 0x080000, CRC(0c31c5b0) SHA1(372168e5e6845eb5e2450a6f6daec26429b446c0) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "n027001a.538", 0x000000, 0x40000, CRC(43f48265) SHA1(05500d56c808123b803be0efa71dd233a55793d1) )
+ ROM_CONTINUE( 0x000002, 0x40000 )
+ ROM_LOAD32_BYTE( "n027001a.638", 0x000001, 0x40000, CRC(f774d850) SHA1(5b63b4893b5b86b5c2ecf3e0be6d83d9b92e754c) )
+ ROM_CONTINUE( 0x000003, 0x40000 )
+ ROM_LOAD32_BYTE( "n027001a.53c", 0x100000, 0x40000, CRC(cbf9eef8) SHA1(6baf6c5f4fc52fc48d0e43014b11fdfe26e6db70) )
+ ROM_CONTINUE( 0x100002, 0x40000 )
+ ROM_LOAD32_BYTE( "n027001a.63c", 0x100001, 0x40000, CRC(14a81e58) SHA1(53216ad674e553829db3cc23d1e827c18d70c04e) )
+ ROM_CONTINUE( 0x100003, 0x40000 )
+ ROM_LOAD32_BYTE( "n027001b.538", 0x200000, 0x40000, CRC(3dae0a05) SHA1(0bf63e5676e3caab6f9d4895c9cbeb600bb6a8a1) )
+ ROM_CONTINUE( 0x200002, 0x40000 )
+ ROM_LOAD32_BYTE( "n027001b.638", 0x200001, 0x40000, CRC(0fb30b5b) SHA1(89f1176a55040d7ca0246231a9a0b027d2e0c304) )
+ ROM_CONTINUE( 0x200003, 0x40000 )
+ ROM_LOAD32_BYTE( "n027001b.53c", 0x300000, 0x40000, CRC(6979368e) SHA1(d1faae6fafbb7de21e7ee56356c30f18b7c4a130) )
+ ROM_CONTINUE( 0x300002, 0x40000 )
+ ROM_LOAD32_BYTE( "n027001b.63c", 0x300001, 0x40000, CRC(cfa90d59) SHA1(3185e00a030ace45f543b3a4ab6c101107727d01) )
+ ROM_CONTINUE( 0x300003, 0x40000 )
+ROM_END
+
+ROM_START( mutnatd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE ( "n014001a.038", 0x000001, 0x040000, CRC(30cbd46b) SHA1(48357c8b704526da7101c06a120b096ec160a7bb) )
+ ROM_CONTINUE ( 0x000000, 0x040000 )
+
+ NEO_SFIX_128K( "014-s1.s1", CRC(99419733) SHA1(b2524af8704941acc72282aa1d62fd4c93e3e822) ) // n014001a.378
+
+ NEO_BIOS_AUDIO_128K( "n014001a.4f8", CRC(2db6862d) SHA1(35cfe136edb09f0b13d312527dd71b4250c04383) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "n014001a.1f8", 0x000000, 0x080000, CRC(8db2effe) SHA1(4bdfc36ed3c986ef153e03efbc581536876a3ebb) )
+ ROM_LOAD( "n014001a.1fc", 0x080000, 0x080000, CRC(a49fe238) SHA1(378842d7fa93496ee103be3a0996c6943d285274) )
+ ROM_LOAD( "n014001b.1f8", 0x100000, 0x080000, CRC(2ba17cb7) SHA1(99fa247c003b74b5da56631d11a63045dd5ef0d5) )
+ ROM_LOAD( "n014001b.1fc", 0x180000, 0x080000, CRC(42419a29) SHA1(5185c978edb89a1764ee0b874be980b61280c822) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "n014001a.538", 0x000000, 0x40000, CRC(83d59ccf) SHA1(90daecf9594715ac33c4a6294f481914351c702f) )
+ ROM_CONTINUE( 0x000002, 0x40000 )
+ ROM_LOAD32_BYTE( "n014001a.638", 0x000001, 0x40000, CRC(9e115a04) SHA1(16f04c7b3c5f6888591e9c2e385efb984e393571) )
+ ROM_CONTINUE( 0x000003, 0x40000 )
+ ROM_LOAD32_BYTE( "n014001a.53c", 0x100000, 0x40000, CRC(b2f1409d) SHA1(ab3af0fb4f4ca4afba098a6f8e9926b530a279df) )
+ ROM_CONTINUE( 0x100002, 0x40000 )
+ ROM_LOAD32_BYTE( "n014001a.63c", 0x100001, 0x40000, CRC(1bb648c1) SHA1(21afaf1e5ea541d5ac9bb273887baf662c52dfab) )
+ ROM_CONTINUE( 0x100003, 0x40000 )
+ ROM_LOAD32_BYTE( "n014001b.538", 0x200000, 0x40000, CRC(eaa2801a) SHA1(fec321bc839e5eeb4bfc88785276ee7af345f6c0) )
+ ROM_CONTINUE( 0x200002, 0x40000 )
+ ROM_LOAD32_BYTE( "n014001b.638", 0x200001, 0x40000, CRC(32bf4a2d) SHA1(f68419c9414dfbcc67c3a4b8cbef42b0b5fda0bc) )
+ ROM_CONTINUE( 0x200003, 0x40000 )
+ ROM_LOAD32_BYTE( "n014001b.53c", 0x300000, 0x40000, CRC(c718b731) SHA1(37eb725d43ecda891f67b607b5d5f039fc81a8cb) )
+ ROM_CONTINUE( 0x300002, 0x40000 )
+ ROM_LOAD32_BYTE( "n014001b.63c", 0x300001, 0x40000, CRC(7d120067) SHA1(d0e4f0f8c1455a51b5d769fa4bcd5f29bd894c13) )
+ ROM_CONTINUE( 0x300003, 0x40000 )
+ROM_END
+
+ROM_START( ncombatd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE ( "n009001a.038", 0x000001, 0x040000, CRC(89660a31) SHA1(ac37a1060ee82733d8efef8c50f79672fe312097) )
+ ROM_CONTINUE ( 0x000000, 0x040000 )
+
+ NEO_SFIX_128K( "009-s1.s1", CRC(d49afee8) SHA1(77615f12edf08ae8f1353f7a056a8f3a50d3ebdc) ) // n009001a.378
+
+ NEO_BIOS_AUDIO_64K( "n009001a.478", CRC(83821d6e) SHA1(687ad38aa20a113c4f59e7ebc1c911bb8e635ad7) )
+
+ ROM_REGION( 0x180000, "ymsnd", 0 )
+ ROM_LOAD( "009-v11.v11", 0x000000, 0x080000, CRC(cf32a59c) SHA1(af5b7fcd8a4aff1307c0a1d937e5f0460c32de79) ) // n009001a.178
+ ROM_LOAD( "009-v12.v12", 0x080000, 0x080000, CRC(7b3588b7) SHA1(a4e6d9d4113ff4ce48b371f65e9187d551821d3b) ) // n009001a.17c
+ ROM_LOAD( "009-v13.v13", 0x100000, 0x080000, CRC(505a01b5) SHA1(9426a4f5b31e16f74e72e61951c189a878f211c5) ) // n009001b.178
+
+ ROM_REGION( 0x080000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "009-v21.v21", 0x000000, 0x080000, CRC(365f9011) SHA1(aebd292214ab280b05ee9e759b7e9a681a099c4a) ) // n009001a.278
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "n009001a.538", 0x000000, 0x40000, CRC(0147a4b5) SHA1(0a2f60bb7166bd5a2ad669820b0f26d630e94958) )
+ ROM_CONTINUE( 0x000002, 0x40000 )
+ ROM_LOAD32_BYTE( "n009001a.638", 0x000001, 0x40000, CRC(e3d367f8) SHA1(8129c6845b8969f26c7cfe8761bb2bb07e5dc549) )
+ ROM_CONTINUE( 0x000003, 0x40000 )
+ ROM_LOAD32_BYTE( "n009001a.53c", 0x100000, 0x40000, CRC(4df6123a) SHA1(53970d86a848f498ebd5676c0a9d6fe8e026def8) )
+ ROM_CONTINUE( 0x100002, 0x40000 )
+ ROM_LOAD32_BYTE( "n009001a.63c", 0x100001, 0x40000, CRC(1c1f6101) SHA1(9594d199bafa9317bcf8b7447442171ea9b1056d) )
+ ROM_CONTINUE( 0x100003, 0x40000 )
+ ROM_LOAD32_BYTE( "n009001b.538", 0x200000, 0x40000, CRC(19441c78) SHA1(6355039f445456ffe32a512b635e365c5519d0c7) )
+ ROM_CONTINUE( 0x200002, 0x40000 )
+ ROM_LOAD32_BYTE( "n009001b.638", 0x200001, 0x40000, CRC(f417f9ac) SHA1(438e76b54bb82517a57cb3405a99dda0b3d66dc0) )
+ ROM_CONTINUE( 0x200003, 0x40000 )
+ROM_END
+
+ROM_START( ncommandd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE ( "n050001a.038", 0x000001, 0x040000, CRC(fdaaca42) SHA1(aa32936bbe8ee53e717a3582847af89d1e160ff4) )
+ ROM_CONTINUE ( 0x000000, 0x040000 )
+ ROM_LOAD16_BYTE ( "n050001a.03c", 0x080001, 0x040000, CRC(b34e91fe) SHA1(3fbf40b9473bc6b0633c62fffdebc43d86785c7d) )
+ ROM_CONTINUE ( 0x080000, 0x040000 )
+
+ NEO_SFIX_128K( "050-s1.s1", CRC(db8f9c8e) SHA1(11cb82cf3c4d0fc2da5df0c26410a64808093610) ) // n050001a.378
+
+ NEO_BIOS_AUDIO_64K( "n050001a.4f8", CRC(26e93026) SHA1(ea38754748ee2a9250864cd1836db463a1b29b1e) )
+
+ ROM_REGION( 0x180000, "ymsnd", 0 )
+ ROM_LOAD( "n050001a.1f8", 0x000000, 0x080000, CRC(222e71c8) SHA1(5a598414b859ae6fbe4fb1b4bf622b1198232864) )
+ ROM_LOAD( "n050001a.1fc", 0x080000, 0x080000, CRC(12acd064) SHA1(c2d7f55df6e49c54c0cab6d5db4cb82f97c6bab9) )
+ ROM_LOAD( "050-v2.v2", 0x100000, 0x080000, CRC(80b8a984) SHA1(950cf0e78ceffa4037663f1086fbbc88588f49f2) ) // n050001b.1f8
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "n050001a.538", 0x000000, 0x40000, CRC(73acaa79) SHA1(1394c93132337469e283053f34c83658a9df771e) )
+ ROM_CONTINUE( 0x000002, 0x40000 )
+ ROM_LOAD32_BYTE( "n050001a.638", 0x000001, 0x40000, CRC(7b24359f) SHA1(99c5f59d479afbbc6ab8ef9dc4f90b9b5d42a199) )
+ ROM_CONTINUE( 0x000003, 0x40000 )
+ ROM_LOAD32_BYTE( "n050001a.53c", 0x100000, 0x40000, CRC(ad56623d) SHA1(afeaeed8917f259905a5cb46deb42bf6b0e7fd35) )
+ ROM_CONTINUE( 0x100002, 0x40000 )
+ ROM_LOAD32_BYTE( "n050001a.63c", 0x100001, 0x40000, CRC(0913a784) SHA1(5cee03ff0b41c58ad0b663c4bf100ae4a2152ee1) )
+ ROM_CONTINUE( 0x100003, 0x40000 )
+ ROM_LOAD32_BYTE( "n050001b.538", 0x200000, 0x40000, CRC(c8d763cd) SHA1(1d489c22bedd324d19cb02bed874e986f2627152) )
+ ROM_CONTINUE( 0x200002, 0x40000 )
+ ROM_LOAD32_BYTE( "n050001b.638", 0x200001, 0x40000, CRC(574612ec) SHA1(6c5863f2fc7b63808e8762aa839614919034aaa8) )
+ ROM_CONTINUE( 0x200003, 0x40000 )
+ ROM_LOAD32_BYTE( "n050001b.53c", 0x300000, 0x40000, CRC(63829529) SHA1(132f835fc2a6ca073700b1935ce3ebd32ba37f3e) )
+ ROM_CONTINUE( 0x300002, 0x40000 )
+ ROM_LOAD32_BYTE( "n050001b.63c", 0x300001, 0x40000, CRC(990d302a) SHA1(e0d07eb287b2ad143c72eeef39a3455d9d802a4a) )
+ ROM_CONTINUE( 0x300003, 0x40000 )
+ROM_END
+
+ROM_START( ridherod )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE ( "n006001a.038", 0x000001, 0x040000, CRC(dabfac95) SHA1(234750f08954a94b2846f7ab79b67d6db2b67f6e) )
+ ROM_CONTINUE ( 0x000000, 0x040000 )
+
+ NEO_SFIX_64K( "n006001a.378", CRC(197d1a28) SHA1(3f6ec453ebdead50c9fabd71071817b699a8a82c) )
+
+ NEO_BIOS_AUDIO_64K( "n006001a.478", CRC(f7196558) SHA1(88c9183db5cb24849a8a548cd48d0732ee1e6219) )
+
+ ROM_REGION( 0x100000, "ymsnd", 0 )
+ ROM_LOAD( "006-v11.v11", 0x000000, 0x080000, CRC(cdf74a42) SHA1(a17106cc3f9e5c5d52b4def861c0545a98151da2) ) // n006001a.178
+ ROM_LOAD( "006-v12.v12", 0x080000, 0x080000, CRC(e2fd2371) SHA1(cc95297bee7ffbdcb24ac4daeb5307cb39a52067) ) // n006001a.17c
+
+ ROM_REGION( 0x200000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "006-v21.v21", 0x000000, 0x080000, CRC(94092bce) SHA1(1a2906271fe6bc396898a756153629a5862930eb) ) // n006001a.278
+ ROM_LOAD( "006-v22.v22", 0x080000, 0x080000, CRC(4e2cd7c3) SHA1(72fb215a4f208a22a764e801186d1643d3d840ca) ) // n006001a.27c
+ ROM_LOAD( "006-v23.v23", 0x100000, 0x080000, CRC(069c71ed) SHA1(f450e9f60cd6ef846dbc77993159ec6157fb64e7) ) // n006001b.278
+ ROM_LOAD( "006-v24.v24", 0x180000, 0x080000, CRC(89fbb825) SHA1(656a97c6a8832dab3a5e1577d9cd257b561cc356) ) // n006001b.27c
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "n006001a.538", 0x000000, 0x40000, CRC(24096241) SHA1(60a3dd2400be7208c7a471a813621a778f083240) )
+ ROM_CONTINUE( 0x000002, 0x40000 )
+ ROM_LOAD32_BYTE( "n006001a.638", 0x000001, 0x40000, CRC(df6a5b00) SHA1(ffd55c36847b0caa7b94b102ef3409d89e0d66c7) )
+ ROM_CONTINUE( 0x000003, 0x40000 )
+ ROM_LOAD32_BYTE( "n006001a.53c", 0x100000, 0x40000, CRC(7026a3a2) SHA1(55f70d2604832125c06742d75ce8ccf5c047d580) )
+ ROM_CONTINUE( 0x100002, 0x40000 )
+ ROM_LOAD32_BYTE( "n006001a.63c", 0x100001, 0x40000, CRC(15220d51) SHA1(72ad9e0381f84a33219255d42223bca01a23927c) )
+ ROM_CONTINUE( 0x100003, 0x40000 )
+ROM_END
+
+ROM_START( roboarmyd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE ( "n032001a.038", 0x000001, 0x040000, CRC(99c7b4fc) SHA1(06a5bd4dd8f6db81eb36d0a8f0612caa1c917325) )
+ ROM_CONTINUE ( 0x000000, 0x040000 )
+
+ NEO_SFIX_128K( "032-s1.s1", CRC(ac0daa1b) SHA1(93bae4697dc403fce19422752a514326ccf66a91) ) // n032001a.378
+
+ NEO_BIOS_AUDIO_128K( "n032001a.4f8", CRC(98edc671) SHA1(04ed65ccaa1197fa55fcefe2caed2772e7040bdb) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "n032001a.1f8", 0x000000, 0x080000, CRC(daff9896) SHA1(2f8a39b98ff2f4a0c8901b1befcc69e0cc5f5aed) )
+ ROM_LOAD( "n032001a.1fc", 0x080000, 0x080000, CRC(8781b1bc) SHA1(4e3cc22ac0acd4033cd4a327269c68b5f56bbe34) )
+ ROM_LOAD( "n032001b.1f8", 0x100000, 0x080000, CRC(b69c1da5) SHA1(7d5ea49338aeef711fc64755abed51fcdd939d48) )
+ ROM_LOAD( "n032001b.1fc", 0x180000, 0x080000, CRC(2c929c17) SHA1(7e053035573de9f601de80d200d09ed4844506fe) )
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "n032001a.538", 0x000000, 0x40000, CRC(e3afaf17) SHA1(b11a45e77f10764f8c845a258d4add74146f1ffe) )
+ ROM_CONTINUE( 0x000002, 0x40000 )
+ ROM_LOAD32_BYTE( "n032001a.638", 0x000001, 0x40000, CRC(3a098b3b) SHA1(93520f664a76de7fac0baeb81daae8943aef0749) )
+ ROM_CONTINUE( 0x000003, 0x40000 )
+ ROM_LOAD32_BYTE( "n032001a.53c", 0x100000, 0x40000, CRC(17098f54) SHA1(69c775685f29e6b6af4f2bed1570bdd7a9c20cec) )
+ ROM_CONTINUE( 0x100002, 0x40000 )
+ ROM_LOAD32_BYTE( "n032001a.63c", 0x100001, 0x40000, CRC(8e3b2b88) SHA1(3ae3c3a5b64a523b294f1166f5506c850edc7f15) )
+ ROM_CONTINUE( 0x100003, 0x40000 )
+ ROM_LOAD32_BYTE( "n032001b.538", 0x200000, 0x40000, CRC(13cbb7c5) SHA1(2f3a92dccd440a5dd9542f423ac74ee3f4255066) )
+ ROM_CONTINUE( 0x200002, 0x40000 )
+ ROM_LOAD32_BYTE( "n032001b.638", 0x200001, 0x40000, CRC(b6f5fc62) SHA1(5d520d2cdd2d99e7d1c9f3c20448464318c8a03c) )
+ ROM_CONTINUE( 0x200003, 0x40000 )
+ROM_END
+
+ROM_START( sengokud )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE ( "n017001a.038", 0x000001, 0x040000, CRC(4483bae1) SHA1(ca5f41be42cd9ce1a2c5007f068514500849a7f4) )
+ ROM_CONTINUE ( 0x000000, 0x040000 )
+ ROM_LOAD16_BYTE ( "n017001a.03c", 0x080001, 0x040000, CRC(d0d55b2a) SHA1(3800154495fbc2f62a539604bf6e5f156316dccd) )
+ ROM_CONTINUE ( 0x080000, 0x040000 )
+
+ NEO_SFIX_128K( "017-s1.s1", CRC(b246204d) SHA1(73dce64c61fb5bb7e836a8e60f081bb77d80d281) ) // n017001a.378
+
+ NEO_BIOS_AUDIO_128K( "n017001a.4f8", CRC(e7bc4a94) SHA1(236d8dddafe5215558f3b0fbb2de3d6c39dd622b) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "n017001a.1f8", 0x000000, 0x080000, CRC(205258a7) SHA1(4cd463a78575d7e74c871660588dc0fe17cce07d) )
+ ROM_LOAD( "n017001a.1fc", 0x080000, 0x080000, CRC(6fbe52c8) SHA1(487f07968854ba3238ba2c612c8b20196f94cab2) )
+ ROM_LOAD( "n017001b.1f8", 0x100000, 0x080000, CRC(6421bdf3) SHA1(823ffcbb9fc8b1219857b8cb6e089e2e21144ab3) )
+ ROM_LOAD( "n017001b.1fc", 0x180000, 0x080000, CRC(1f9578fb) SHA1(7ccdb0e960d6e425e773a99208180dcf5ee7856f) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "n017001a.538", 0x000000, 0x40000, CRC(e834b925) SHA1(08cfdcf232f3319f62b00cfec5c02b55d7c3405e) )
+ ROM_CONTINUE( 0x000002, 0x40000 )
+ ROM_LOAD32_BYTE( "n017001a.638", 0x000001, 0x40000, CRC(96de5eb9) SHA1(a70dfbffb109ddec5b4a2c6f60756d6717fce03b) )
+ ROM_CONTINUE( 0x000003, 0x40000 )
+ ROM_LOAD32_BYTE( "n017001a.53c", 0x100000, 0x40000, CRC(66be6d46) SHA1(3cd5bf09f994159caff23ba01700e7531ebc5b57) )
+ ROM_CONTINUE( 0x100002, 0x40000 )
+ ROM_LOAD32_BYTE( "n017001a.63c", 0x100001, 0x40000, CRC(25f5fd7b) SHA1(f1b2d58c6b73f3001751bf4c81f3d8664c96091c) )
+ ROM_CONTINUE( 0x100003, 0x40000 )
+ ROM_LOAD32_BYTE( "n017001b.538", 0x200000, 0x40000, CRC(443c552c) SHA1(75203f58935eb6a554542bb6ece457f8a2b51adb) )
+ ROM_CONTINUE( 0x200002, 0x40000 )
+ ROM_LOAD32_BYTE( "n017001b.638", 0x200001, 0x40000, CRC(afbd5b0b) SHA1(639fecb5afd5fb31ba169149d61830330169d7df) )
+ ROM_CONTINUE( 0x200003, 0x40000 )
+ ROM_LOAD32_BYTE( "n017001b.53c", 0x300000, 0x40000, CRC(ecb41adc) SHA1(741ddfdb8cbfacd95c37243dbf098a09ad6d6f0b) )
+ ROM_CONTINUE( 0x300002, 0x40000 )
+ ROM_LOAD32_BYTE( "n017001b.63c", 0x300001, 0x40000, CRC(78b25278) SHA1(c1ed3be0e0bc5c6bebaee1bb851cfb9c0b8b243f) )
+ ROM_CONTINUE( 0x300003, 0x40000 )
+ROM_END
+
+ROM_START( sengoku2d )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE ( "n040001a.038", 0x000001, 0x040000, CRC(d1bf3fa5) SHA1(4a6c82d9294980eca6f9311d62f4d683baca173e) )
+ ROM_CONTINUE ( 0x000000, 0x040000 )
+ ROM_LOAD16_BYTE ( "n040001a.03c", 0x080001, 0x040000, CRC(ee9d0bb4) SHA1(27748b3a1b2e59cda29a85a6a467e1a46be3fe60) )
+ ROM_CONTINUE ( 0x080000, 0x040000 )
+
+ NEO_SFIX_128K( "040-s1.s1", CRC(cd9802a3) SHA1(f685d4638f4f68e7e3f101c0c39128454536721b) ) // n040001a.378
+
+ NEO_BIOS_AUDIO_128K( "n040001a.4f8", CRC(9902dfa2) SHA1(af6284c5298328156726b76b968995ad25fdf4de) )
+
+ ROM_REGION( 0x300000, "ymsnd", 0 )
+ ROM_LOAD( "n040001a.1f8", 0x000000, 0x080000, CRC(e6e9d82f) SHA1(a4691ef7719c55fa665dbe8f4420008cf6f23ae2) )
+ ROM_LOAD( "n040001a.1fc", 0x080000, 0x080000, CRC(0504e71e) SHA1(856a200e2e4c39c0985d10b1dcd75e89e69b6f5d) )
+ ROM_LOAD( "n040001b.1f8", 0x100000, 0x080000, CRC(e6c57d21) SHA1(e1f1403c3340be1ab66f027b2678bee3267b9f3c) )
+ ROM_LOAD( "n040001b.1fc", 0x180000, 0x080000, CRC(000d319d) SHA1(88424ceca50e03ed41bad0493461bccfee519ec5) )
+ ROM_LOAD( "n040001c.1f8", 0x200000, 0x080000, CRC(6650bc9a) SHA1(43e9da8176b9c282eaaaf8963fd7c7bd83d61953) )
+ ROM_LOAD( "n040001c.1fc", 0x280000, 0x080000, CRC(c6358d62) SHA1(ca1d72a8a3ea9a2b5a800aeb091098d723eef963) )
+
+ ROM_REGION( 0x600000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "n040001a.538", 0x000000, 0x40000, CRC(da18aaed) SHA1(926500715ba30a5fad128ba877ca5f59bd98399b) )
+ ROM_CONTINUE( 0x000002, 0x40000 )
+ ROM_LOAD32_BYTE( "n040001a.638", 0x000001, 0x40000, CRC(5b27c829) SHA1(166ff9359b819a068763e868da69cf67976ec8c8) )
+ ROM_CONTINUE( 0x000003, 0x40000 )
+ ROM_LOAD32_BYTE( "n040001a.53c", 0x100000, 0x40000, CRC(19796c4f) SHA1(cf15a65c6bc5243978df6c91b3dce120e4b6db4a) )
+ ROM_CONTINUE( 0x100002, 0x40000 )
+ ROM_LOAD32_BYTE( "n040001a.63c", 0x100001, 0x40000, CRC(e8b46e26) SHA1(5b47903fd7b9783e6e18bbff33e0d7747305bda9) )
+ ROM_CONTINUE( 0x100003, 0x40000 )
+ ROM_LOAD32_BYTE( "n040001b.538", 0x200000, 0x40000, CRC(891b6386) SHA1(9d5e3b2fb6c2247712637f0f7b647042e0485eb6) )
+ ROM_CONTINUE( 0x200002, 0x40000 )
+ ROM_LOAD32_BYTE( "n040001b.638", 0x200001, 0x40000, CRC(93d25955) SHA1(039567a2426794bac9a502d7a46ed13bcc804764) )
+ ROM_CONTINUE( 0x200003, 0x40000 )
+ // These probably not used. 3xxxxx same roms as 2xxxxx
+ ROM_LOAD32_BYTE( "n040001c.538", 0x400000, 0x40000, CRC(c5eaabe8) SHA1(724f0b47e7e166b65b5e5fee790850aed15d2885) )
+ ROM_CONTINUE( 0x400002, 0x40000 )
+ ROM_LOAD32_BYTE( "n040001c.638", 0x400001, 0x40000, CRC(432bd7d0) SHA1(662179ed7c82f9f825b89650761db093ef9f7467) )
+ ROM_CONTINUE( 0x400003, 0x40000 )
+ ROM_LOAD32_BYTE( "n040001c.53c", 0x500000, 0x40000, CRC(22633905) SHA1(3afcf2bf752afa1593f144a8a9749736a09f6738) )
+ ROM_CONTINUE( 0x500002, 0x40000 )
+ ROM_LOAD32_BYTE( "n040001c.63c", 0x500001, 0x40000, CRC(ba3f54b2) SHA1(796ac0d021552b2ed1b95f11cad1e5e1530abcc7) )
+ ROM_CONTINUE( 0x500003, 0x40000 )
+ROM_END
+
+ROM_START( socbrawld )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE ( "n031001a.038", 0x000001, 0x040000, CRC(9fa17911) SHA1(b5a86cc8c8b6e44e392deb6e975ee59076c4392a) )
+ ROM_CONTINUE ( 0x000000, 0x040000 )
+
+ NEO_SFIX_128K( "031-s1.s1", CRC(4c117174) SHA1(26e52c4f628338a9aa1c159517cdf873f738fb98) ) // n031001a.378
+
+ NEO_BIOS_AUDIO_128K( "n031001a.4f8", CRC(bc45269b) SHA1(19b82e7174a6fe5caaec35c0603944a090a43b65) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "n031001a.1f8", 0x000000, 0x080000, CRC(670dc165) SHA1(f75d174cfc0d4c16375c58069b923380ae8c6923) )
+ ROM_LOAD( "n031001a.1fc", 0x080000, 0x080000, CRC(abb9537b) SHA1(0f272ef6bfdb1b5b0580fe9d01070e4f60b383ff) )
+ ROM_LOAD( "n031001b.1f8", 0x100000, 0x080000, CRC(600be43e) SHA1(5639e239910f0fb07f26e4f9816efd77b04f6152) )
+ ROM_LOAD( "n031001b.1fc", 0x180000, 0x080000, CRC(88d30359) SHA1(884cabd8a6ccbdd470aab3b7325fdeade01679f0) )
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "n031001a.538", 0x000000, 0x40000, CRC(945bf77c) SHA1(0f971d5c21c051d2298866b69c96715f583fe521) )
+ ROM_CONTINUE( 0x000002, 0x40000 )
+ ROM_LOAD32_BYTE( "n031001a.638", 0x000001, 0x40000, CRC(6708fc58) SHA1(230253fbe761cb1164efb9a3c91ac1f24f57295b) )
+ ROM_CONTINUE( 0x000003, 0x40000 )
+ ROM_LOAD32_BYTE( "n031001a.53c", 0x100000, 0x40000, CRC(9a210d0d) SHA1(be9b9587c138679e2fb299455d98e2ac6ffad63b) )
+ ROM_CONTINUE( 0x100002, 0x40000 )
+ ROM_LOAD32_BYTE( "n031001a.63c", 0x100001, 0x40000, CRC(9a97c680) SHA1(746a5cb5bf713c806cef24d21347f5b96c86ccab) )
+ ROM_CONTINUE( 0x100003, 0x40000 )
+ ROM_LOAD32_BYTE( "n031001b.538", 0x200000, 0x40000, CRC(057dbb51) SHA1(cab14d98cbbfc0e5714082fd2db8c73e9c6cd684) )
+ ROM_CONTINUE( 0x200002, 0x40000 )
+ ROM_LOAD32_BYTE( "n031001b.638", 0x200001, 0x40000, CRC(434c17c8) SHA1(629dc40ab09ac0a2f55234bc34c4ba63c0b8912f) )
+ ROM_CONTINUE( 0x200003, 0x40000 )
+ROM_END
+
+ROM_START( superspyd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE ( "n011001a.038", 0x000001, 0x040000, CRC(2e949e32) SHA1(c5a5bb996c5c0224b27813a76223c56860ddb399) )
+ ROM_CONTINUE ( 0x000000, 0x040000 )
+ ROM_LOAD16_BYTE ( "n011001a.03c", 0x080001, 0x040000, CRC(54443d72) SHA1(5cb78d50996c1f9a182e9350d94ba2953463ed4b) )
+ ROM_CONTINUE ( 0x080000, 0x040000 )
+
+ NEO_SFIX_128K( "011-s1.s1", CRC(ec5fdb96) SHA1(8003028025ac7bf531e568add6ba66c02d0b7e84) ) // n011001a.378
+
+ NEO_BIOS_AUDIO_64K( "n011001a.478", CRC(64455806) SHA1(454e95503be8ec5dd2332da1ce08c832a2ab81b8) )
+
+ ROM_REGION( 0x180000, "ymsnd", 0 )
+ ROM_LOAD( "n011001a.178", 0x000000, 0x080000, CRC(b993bc83) SHA1(b7689a57120b9eb3d23b6675f8791c117360a267) )
+ ROM_LOAD( "n011001a.17c", 0x080000, 0x080000, CRC(d7a059b1) SHA1(b13c1c674f66cb6852f0a206554e4616f5fde236) )
+ ROM_LOAD( "011-v12.v12", 0x100000, 0x080000, CRC(9f513d5a) SHA1(37b04962f0b8e2a74abd35c407337a6151dc4e95) ) // n011001b.178
+
+ ROM_REGION( 0x080000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "011-v21.v21", 0x000000, 0x080000, CRC(426cd040) SHA1(b2b45189837c8287223c2b8bd4df9525b72a3f16) ) // n011001a.278
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "n011001a.538", 0x000000, 0x40000, CRC(239f22c4) SHA1(91f985fb9acb36ab5f8877f62c0476a291f3b591) )
+ ROM_CONTINUE( 0x000002, 0x40000 )
+ ROM_LOAD32_BYTE( "n011001a.638", 0x000001, 0x40000, CRC(5f2e5184) SHA1(b2704eff6815da611f0f2ad15f2a85d482a111d3) )
+ ROM_CONTINUE( 0x000003, 0x40000 )
+ ROM_LOAD32_BYTE( "n011001a.53c", 0x100000, 0x40000, CRC(ce80c326) SHA1(3f1f72d923dde87e87bc74080cc1858f42413ab2) )
+ ROM_CONTINUE( 0x100002, 0x40000 )
+ ROM_LOAD32_BYTE( "n011001a.63c", 0x100001, 0x40000, CRC(79b3e0b1) SHA1(1f627f7b8d86292d4f4cdc0f15782d060a91b551) )
+ ROM_CONTINUE( 0x100003, 0x40000 )
+ ROM_LOAD32_BYTE( "n011001b.538", 0x200000, 0x40000, CRC(1edcf268) SHA1(a691f76980e7a0da63948a5d75f32afa6c92c9c3) )
+ ROM_CONTINUE( 0x200002, 0x40000 )
+ ROM_LOAD32_BYTE( "n011001b.638", 0x200001, 0x40000, CRC(b2afe822) SHA1(56d623e4a468ac88c6bbc54ff6f640a7aa5f93f5) )
+ ROM_CONTINUE( 0x200003, 0x40000 )
+ ROM_LOAD32_BYTE( "n011001b.53c", 0x300000, 0x40000, CRC(a41602a0) SHA1(95ee2162de50be72982edcecb437995a43d39a07) )
+ ROM_CONTINUE( 0x300002, 0x40000 )
+ ROM_LOAD32_BYTE( "n011001b.63c", 0x300001, 0x40000, CRC(d425f967) SHA1(4085782d440ad265ae45f43c83b1d1fa96d15524) )
+ ROM_CONTINUE( 0x300003, 0x40000 )
+ROM_END
+
+ROM_START( tpgolfd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE ( "n003001a.038", 0x000001, 0x040000, CRC(542e93d9) SHA1(530d8e344481ae98edd4ca8b86146c44f587228f) )
+ ROM_CONTINUE ( 0x000000, 0x040000 )
+ ROM_LOAD16_BYTE ( "n003001a.03c", 0x080001, 0x040000, CRC(03f1bead) SHA1(b2e40d936636e5d2108fcdf4f440095b3e6da9b5) )
+ ROM_CONTINUE ( 0x080000, 0x040000 )
+
+ NEO_SFIX_128K( "003-s1.s1", CRC(7b3eb9b1) SHA1(39cd8bad9f8bfdeb8ac681b5b79ae5aa81c8dd5f) ) // n003001a.378
+
+ NEO_BIOS_AUDIO_64K( "003cd.m1", CRC(7851d0d9) SHA1(d021cef958cc37ab170b78d7a4b3ae94947e4d13) ) // n003001a.478
+
+ ROM_REGION( 0x080000, "ymsnd", 0 )
+ ROM_LOAD( "003-v11.v11", 0x000000, 0x080000, CRC(ff97f1cb) SHA1(defa249d46ae220f7bfa70746f5202bbbcc3e5fe) ) // n003001a.178
+
+ ROM_REGION( 0x100000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "003-v21.v21", 0x000000, 0x080000, CRC(d34960c6) SHA1(36d5877d5e42aab943f4d693159f4f3ad8b0addc) ) // n003001a.278
+ ROM_LOAD( "003-v22.v22", 0x080000, 0x080000, CRC(9a5f58d4) SHA1(2b580595e1820430a36f06fd3e0e0b8f7d686889) ) // n003001a.27c
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "n003001a.538", 0x000000, 0x40000, CRC(67633f80) SHA1(951e11f5f74434a3ce9b11bf75b822b2ffbf2c8f) )
+ ROM_CONTINUE( 0x000002, 0x40000 )
+ ROM_LOAD32_BYTE( "n003001a.638", 0x000001, 0x40000, CRC(ba49936b) SHA1(c5eb478da0dc409bc5853438387a93d9a2ecdd04) )
+ ROM_CONTINUE( 0x000003, 0x40000 )
+ ROM_LOAD32_BYTE( "n003001a.53c", 0x100000, 0x40000, CRC(bed644d0) SHA1(687ebf0928983e6e795619124a90696c3de3d55d) )
+ ROM_CONTINUE( 0x100002, 0x40000 )
+ ROM_LOAD32_BYTE( "n003001a.63c", 0x100001, 0x40000, CRC(7fc96498) SHA1(f97da62165388d321ef6e31b3121b14e17fa9a5f) )
+ ROM_CONTINUE( 0x100003, 0x40000 )
+ ROM_LOAD32_BYTE( "n003001b.538", 0x200000, 0x40000, CRC(977a0ea9) SHA1(a2704d9a4a576058feacd237bb7ba28508df0207) )
+ ROM_CONTINUE( 0x200002, 0x40000 )
+ ROM_LOAD32_BYTE( "n003001b.638", 0x200001, 0x40000, CRC(a56853ec) SHA1(242e65c73b63adc0cd527bcdb03ac82fde5be5ef) )
+ ROM_CONTINUE( 0x200003, 0x40000 )
+ ROM_LOAD32_BYTE( "n003001b.53c", 0x300000, 0x40000, CRC(bc0ebc0e) SHA1(ed6c4b8b126ea66e75666358c02cbfe2e90985fe) )
+ ROM_CONTINUE( 0x300002, 0x40000 )
+ ROM_LOAD32_BYTE( "n003001b.63c", 0x300001, 0x40000, CRC(81347ea7) SHA1(8f7b78c91f449ba8e8d449ad436dd5421b6f12a6) )
+ ROM_CONTINUE( 0x300003, 0x40000 )
+ROM_END
+
+ROM_START( trallyd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE ( "n038001a.038", 0x000001, 0x040000, CRC(400bed38) SHA1(9ccc6a505e98e964db9253b50ae549a8d13beffb) )
+ ROM_CONTINUE ( 0x000000, 0x040000 )
+ ROM_LOAD16_BYTE ( "n038001a.03c", 0x080001, 0x040000, CRC(77196e9a) SHA1(31490ce2b97f67e9571ace32d97217232113fb72) )
+ ROM_CONTINUE ( 0x080000, 0x040000 )
+
+ NEO_SFIX_128K( "038-s1.s1", CRC(fff62ae3) SHA1(6510a762ea41557a8938cbfc0557cd5921306061) ) // n038001a.378
+
+ NEO_BIOS_AUDIO_64K( "n038001a.4f8", CRC(308c4a8d) SHA1(6b1e5790442bcf4e3a9fb896bbd293eb33fb4990) )
+
+ ROM_REGION( 0x180000, "ymsnd", 0 )
+ ROM_LOAD( "n038001a.1f8", 0x000000, 0x080000, CRC(1c93fb89) SHA1(a5056e33552e3e6fc3570d41e893a73d78086077) )
+ ROM_LOAD( "n038001a.1fc", 0x080000, 0x080000, CRC(39f18253) SHA1(97622e15ebc180dc24d5b9049d6603cbe039dc81) )
+ ROM_LOAD( "038-v2.v2", 0x100000, 0x080000, CRC(ddd8d1e6) SHA1(65c819fa2392f264f5a1a0a4967c96775732500b) ) // n038001b.1f8
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "n038001a.538", 0x000000, 0x40000, CRC(4d002ecb) SHA1(07330d6cbcd126bd67c702cc351ac4f668108e55) )
+ ROM_CONTINUE( 0x000002, 0x40000 )
+ ROM_LOAD32_BYTE( "n038001a.638", 0x000001, 0x40000, CRC(6b2f79de) SHA1(7725b9b66738a6f9fe9456cc6aadd4fa98d50bff) )
+ ROM_CONTINUE( 0x000003, 0x40000 )
+ ROM_LOAD32_BYTE( "n038001a.53c", 0x100000, 0x40000, CRC(b0be56db) SHA1(f511e1ef9074eec9bff37f22607cd5b491860ee7) )
+ ROM_CONTINUE( 0x100002, 0x40000 )
+ ROM_LOAD32_BYTE( "n038001a.63c", 0x100001, 0x40000, CRC(091f38b4) SHA1(0e579029524f004370d1c93d7b14ad47243bee66) )
+ ROM_CONTINUE( 0x100003, 0x40000 )
+ ROM_LOAD32_BYTE( "n038001b.538", 0x200000, 0x40000, CRC(2f213750) SHA1(fe5a8cd26b52928afeece5504ecca7ec452b7027) )
+ ROM_CONTINUE( 0x200002, 0x40000 )
+ ROM_LOAD32_BYTE( "n038001b.638", 0x200001, 0x40000, CRC(268be38b) SHA1(98f9dfee915ddf8d858297075c7b7d6731527aa3) )
+ ROM_CONTINUE( 0x200003, 0x40000 )
+ROM_END
+
+ROM_START( wh1d )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE ( "n053001a.038", 0x000001, 0x040000, CRC(ab39923d) SHA1(be9fc3c89a452e64d02231d531bb298d201ef002) )
+ ROM_CONTINUE ( 0x000000, 0x040000 )
+ ROM_LOAD16_BYTE ( "n053001a.03c", 0x080001, 0x040000, CRC(5adc98ef) SHA1(0c87725b343f7705f974de71c4bc46afdc75c80b) )
+ ROM_CONTINUE ( 0x080000, 0x040000 )
+
+ NEO_SFIX_128K( "053-s1.s1", CRC(8c2c2d6b) SHA1(87fa79611c6f8886dcc8766814829c669c65b40f) ) // n053001a.378
+
+ NEO_BIOS_AUDIO_128K( "053-m1.m1", CRC(1bd9d04b) SHA1(65cd7b002123ed1a3111e3d942608d0082799ff3) ) // n053001a.4f8
+
+ ROM_REGION( 0x300000, "ymsnd", 0 )
+ ROM_LOAD( "n053001a.1f8", 0x000000, 0x080000, CRC(77994663) SHA1(7adaddf13177b1d18604611dfae7fc43b35a0766) )
+ ROM_LOAD( "n053001a.1fc", 0x080000, 0x080000, CRC(d74ad0da) SHA1(fe71db5808d46f7b56ea7603e500534cd8ab8beb) )
+ ROM_LOAD( "n053001b.1f8", 0x100000, 0x080000, CRC(9d5fe808) SHA1(825eb3727d67e1cf8d8e254576de52952a35c25c) )
+ ROM_LOAD( "n053001b.1fc", 0x180000, 0x080000, CRC(883fb383) SHA1(ceef987b5e8ce9c0201eb0c66628456b99b41fd2) )
+ ROM_LOAD( "n053001c.1f8", 0x200000, 0x080000, CRC(b4ff60d7) SHA1(a1615ec7b309839fd0e690e57d19ab5a857eef1d) )
+ ROM_LOAD( "n053001c.1fc", 0x280000, 0x080000, CRC(b358e4f5) SHA1(6b74306beb801f9e35e1a948b2508a38facb2080) )
+
+ ROM_REGION( 0x600000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "n053001a.538", 0x000000, 0x40000, CRC(ad8fcc5d) SHA1(67683d40fa438032a3e9f5997c7ca5b798f50325) )
+ ROM_CONTINUE( 0x000002, 0x40000 )
+ ROM_LOAD32_BYTE( "n053001a.638", 0x000001, 0x40000, CRC(3182b4db) SHA1(371f898f5ef28b1efe8129fa6837ee31452e0881) )
+ ROM_CONTINUE( 0x000003, 0x40000 )
+ ROM_LOAD32_BYTE( "n053001a.53c", 0x100000, 0x40000, CRC(0dca726e) SHA1(9c9ea623102818b0c551a998be8b909c16967896) )
+ ROM_CONTINUE( 0x100002, 0x40000 )
+ ROM_LOAD32_BYTE( "n053001a.63c", 0x100001, 0x40000, CRC(1cb0a840) SHA1(c52b1dd8b4860d1bcff207f0f7c2278dfa195219) )
+ ROM_CONTINUE( 0x100003, 0x40000 )
+ ROM_LOAD32_BYTE( "n053001b.538", 0x200000, 0x40000, CRC(bb807a43) SHA1(f0583c2bd3ad69f12d3635edece4480414497395) )
+ ROM_CONTINUE( 0x200002, 0x40000 )
+ ROM_LOAD32_BYTE( "n053001b.638", 0x200001, 0x40000, CRC(c9f439f8) SHA1(be7ba30e5cfe22341f61ea2571cec551a5793bf3) )
+ ROM_CONTINUE( 0x200003, 0x40000 )
+ ROM_LOAD32_BYTE( "n053001b.53c", 0x300000, 0x40000, CRC(e913f93c) SHA1(af17419e46aa4f4809fc2f620a6e2d109fe17197) )
+ ROM_CONTINUE( 0x300002, 0x40000 )
+ ROM_LOAD32_BYTE( "n053001b.63c", 0x300001, 0x40000, CRC(80441c48) SHA1(fdfab6abd4e2212635c47270df27108c1904a15b) )
+ ROM_CONTINUE( 0x300003, 0x40000 )
+ ROM_LOAD32_BYTE( "n053001c.538", 0x400000, 0x40000, CRC(3c359a14) SHA1(3415bc48511d57bb54f926df1e282ee02787776d) )
+ ROM_CONTINUE( 0x400002, 0x40000 )
+ ROM_LOAD32_BYTE( "n053001c.638", 0x400001, 0x40000, CRC(7c4b85b4) SHA1(ae7b199f6e59b1b697c36e21ddfc525d6ad77c83) )
+ ROM_CONTINUE( 0x400003, 0x40000 )
+ ROM_LOAD32_BYTE( "n053001c.53c", 0x500000, 0x40000, CRC(b1327d84) SHA1(02f58cb1a18448f1f3c3752bb802b6f737151b9d) )
+ ROM_CONTINUE( 0x500002, 0x40000 )
+ ROM_LOAD32_BYTE( "n053001c.63c", 0x500001, 0x40000, CRC(959f29db) SHA1(f1126098840fb602c8b3349111e5954b73a66934) )
+ ROM_CONTINUE( 0x500003, 0x40000 )
+ROM_END
+
+
+GAME( 1993, 3countbd, 3countb, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "3 Count Bout (MGD2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, 2020bbd, 2020bb, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK / Pallas", "2020 Super Baseball (MGD2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, alpham2d, alpham2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Alpha Mission II (MGD2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, androdund, androdun, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Visco", "Andro Dunos (MGD2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, aofd, aof, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Art of Fighting (MGD2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, bakatonod, bakatono, neogeo_mj, neogeo, neogeo_state, neogeo, ROT0, "Monolith Corp.", "Bakatonosama Mahjong Manyuki (MGD2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, bstarsd, bstars, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Baseball Stars Professional (MGD2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, burningfd, burningf, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Burning Fight (MGD2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, crswordd, crsword, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "Crossed Swords (MGD2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, cyberlipd, cyberlip, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Cyber-Lip (MGD2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, eightmand, eightman, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK / Pallas", "Eight Man (MGD2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, fatfury1d, fatfury1, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Fatal Fury - King of Fighters (MGD2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, fbfrenzyd, fbfrenzy, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Football Frenzy (MGD2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, gpilotsd, gpilots, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Ghost Pilots (MGD2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, joyjoyd, joyjoy, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Puzzled (MGD2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, kotmd, kotm, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "King of the Monsters (MGD2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, lbowlingd, lbowling, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "League Bowling (MGD2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, lresortd, lresort, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Last Resort (MGD2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, maglordd, maglord, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "Magician Lord (MGD2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, minasand, minasan, neogeo_mj, neogeo, neogeo_state, neogeo, ROT0, "Monolith Corp.", "Minnasanno Okagesamadesu (MGD2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, mutnatd, mutnat, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Mutation Nation (MGD2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, ncombatd, ncombat, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "Ninja Combat (MGD2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, ncommandd, ncommand, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co", "Ninja Commando (MGD2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, ridherod, ridhero, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Riding Hero (MGD2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, roboarmyd, roboarmy, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Robo Army (MGD2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, sengokud, sengoku, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Sengoku (MGD2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, sengoku2d, sengoku2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Sengoku 2 (MGD2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, socbrawld, socbrawl, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Soccer Brawl (MGD2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, superspyd, superspy, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The Super Spy (MGD2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, tpgolfd, tpgolf, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Top Player's Golf (MGD2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, trallyd, trally, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "Thrash Rally (MGD2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, wh1d, wh1, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "World Heroes (MGD2)", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/midtunit.cpp b/docs/release/src/hbmame/drivers/midtunit.cpp
new file mode 100644
index 00000000000..bea69007a02
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/midtunit.cpp
@@ -0,0 +1,323 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/midtunit.cpp"
+
+ROM_START( mkturbod )
+ ROM_REGION( 0x50000, "adpcm:cpu", 0 )
+ ROM_LOAD( "mks-u3.rom", 0x10000, 0x40000, CRC(c615844c) SHA1(5732f9053a5f73b0cc3b0166d7dc4430829d5bc7) )
+
+ ROM_REGION( 0x200000, "adpcm:oki", 0 ) /* ADPCM */
+ ROM_LOAD( "mks-u12.rom", 0x00000, 0x40000, CRC(258bd7f9) SHA1(463890b23f17350fb9b8a85897b0777c45bc2d54) )
+ ROM_RELOAD( 0x40000, 0x40000 )
+ ROM_LOAD( "mks-u13.rom", 0x80000, 0x40000, CRC(7b7ec3b6) SHA1(6eec1b90d4a4855f34a7ebfbf93f3358d5627db4) )
+ ROM_RELOAD( 0xc0000, 0x40000 )
+
+ ROM_REGION16_LE( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "kombo-rom-uj-12.bin", 0x00000, 0x80000, CRC(7a441f2d) SHA1(3b731bcbd73721ea0cc20157ec5181d25922523c) )
+ ROM_LOAD16_BYTE( "kombo-hacked-ug-12.bin", 0x00001, 0x80000, CRC(bfab4bb6) SHA1(fc48b4b1fd4f32d9a597e292a1121916c98968d1) )
+
+ ROM_REGION( 0xc00000, "gfxrom", 0 )
+ ROM_LOAD32_BYTE( "mkt-ug14.bin", 0x000000, 0x80000, CRC(9e00834e) SHA1(2b97b63f52ba1dba6af6ae56c223519a52b2ab9d) )
+ ROM_LOAD32_BYTE( "mkt-uj14.bin", 0x000001, 0x80000, CRC(f4b0aaa7) SHA1(4cc6ee34c89e3cde325ad24b29511f70ae6a5a72) )
+ ROM_LOAD32_BYTE( "mkt-ug19.bin", 0x000002, 0x80000, CRC(2d8c7ba1) SHA1(f891d6eb618dbf3e77f02e0f93da216e20571905) )
+ ROM_LOAD32_BYTE( "mkt-uj19.bin", 0x000003, 0x80000, CRC(33b9b7a4) SHA1(e8ceca4c049e1f55d480a03ff793b595bd04d344) )
+
+ ROM_LOAD32_BYTE( "mkt-ug16.bin", 0x200000, 0x80000, CRC(52c9d1e5) SHA1(7b1880fca0a11544782b70365c7dd96381ac48e7) )
+ ROM_LOAD32_BYTE( "mkt-uj16.bin", 0x200001, 0x80000, CRC(c94c58cf) SHA1(974d75667eee779497325d5be8df937f15417edf) )
+ ROM_LOAD32_BYTE( "mkt-ug20.bin", 0x200002, 0x80000, CRC(2f7e55d3) SHA1(bda6892ee6fcb46959e4d0892bbe7d9fc6072dd3) )
+ ROM_LOAD32_BYTE( "mkt-uj20.bin", 0x200003, 0x80000, CRC(eae96df0) SHA1(b40532312ba61e4065abfd733dd0c93eecad48e9) )
+
+ ROM_LOAD32_BYTE( "mkt-ug17.bin", 0x400000, 0x80000, CRC(e34fe253) SHA1(6b010bee795c1770297c9557ded1fe83425857f2) )
+ ROM_LOAD32_BYTE( "mkt-uj17.bin", 0x400001, 0x80000, CRC(a56e12f5) SHA1(5db637c4710990cd06bb0069714b19621532e431) )
+ ROM_LOAD32_BYTE( "mkt-ug22.bin", 0x400002, 0x80000, CRC(b537bb4e) SHA1(05a447deee2e89b49bdb3ca2161a021d7ec5f11e) )
+ ROM_LOAD32_BYTE( "mkt-uj22.bin", 0x400003, 0x80000, CRC(5e12523b) SHA1(468f93ef9bb6addb45c1c939d24b6511f255426a) )
+ROM_END
+
+ROM_START( mktturboen )
+ ROM_REGION( 0x50000, "adpcm:cpu", 0 )
+ ROM_LOAD( "mks-u3.rom", 0x10000, 0x40000, CRC(c615844c) SHA1(5732f9053a5f73b0cc3b0166d7dc4430829d5bc7) )
+
+ ROM_REGION( 0x100000, "adpcm:oki", 0 )
+ ROM_LOAD( "mks-u12.rom", 0x00000, 0x40000, CRC(258bd7f9) SHA1(463890b23f17350fb9b8a85897b0777c45bc2d54) )
+ ROM_RELOAD( 0x40000, 0x40000 )
+ ROM_LOAD( "mks-u13.rom", 0x80000, 0x40000, CRC(7b7ec3b6) SHA1(6eec1b90d4a4855f34a7ebfbf93f3358d5627db4) )
+ ROM_RELOAD( 0xc0000, 0x40000 )
+
+ ROM_REGION16_LE( 0x100000, "maincpu", 0 ) /* 34010 code */
+ ROM_LOAD16_BYTE( "kombo-romen-uj-12.bin", 0x00000, 0x80000, CRC(53069455) SHA1(f86da6036844b3e996fa9b3769e4f9979a920b28) )
+ ROM_LOAD16_BYTE( "kombo-rom-ug-12.bin", 0x00001, 0x80000, CRC(45bed5a1) SHA1(dba2c21878925afdcaf61520c18ebefd5e9617db) )
+ ROM_FILL(0xF7914, 1, 0x60)
+ ROM_FILL(0xF7915, 1, 0x09)
+
+ ROM_REGION( 0xc00000, "gfxrom", 0 )
+ ROM_LOAD32_BYTE( "mkt-ug14.bin", 0x000000, 0x80000, CRC(9e00834e) SHA1(2b97b63f52ba1dba6af6ae56c223519a52b2ab9d) )
+ ROM_LOAD32_BYTE( "mkt-uj14.bin", 0x000001, 0x80000, CRC(f4b0aaa7) SHA1(4cc6ee34c89e3cde325ad24b29511f70ae6a5a72) )
+ ROM_LOAD32_BYTE( "mkt-ug19.bin", 0x000002, 0x80000, CRC(2d8c7ba1) SHA1(f891d6eb618dbf3e77f02e0f93da216e20571905) )
+ ROM_LOAD32_BYTE( "mkt-uj19.bin", 0x000003, 0x80000, CRC(33b9b7a4) SHA1(e8ceca4c049e1f55d480a03ff793b595bd04d344) )
+
+ ROM_LOAD32_BYTE( "mkt-ug16.bin", 0x200000, 0x80000, CRC(52c9d1e5) SHA1(7b1880fca0a11544782b70365c7dd96381ac48e7) )
+ ROM_LOAD32_BYTE( "mkt-uj16.bin", 0x200001, 0x80000, CRC(c94c58cf) SHA1(974d75667eee779497325d5be8df937f15417edf) )
+ ROM_LOAD32_BYTE( "mkt-ug20.bin", 0x200002, 0x80000, CRC(2f7e55d3) SHA1(bda6892ee6fcb46959e4d0892bbe7d9fc6072dd3) )
+ ROM_LOAD32_BYTE( "mkt-uj20.bin", 0x200003, 0x80000, CRC(eae96df0) SHA1(b40532312ba61e4065abfd733dd0c93eecad48e9) )
+
+ ROM_LOAD32_BYTE( "mkt-ug17.bin", 0x400000, 0x80000, CRC(e34fe253) SHA1(6b010bee795c1770297c9557ded1fe83425857f2) )
+ ROM_LOAD32_BYTE( "mkt-uj17.bin", 0x400001, 0x80000, CRC(a56e12f5) SHA1(5db637c4710990cd06bb0069714b19621532e431) )
+ ROM_LOAD32_BYTE( "mkt-ug22.bin", 0x400002, 0x80000, CRC(b537bb4e) SHA1(05a447deee2e89b49bdb3ca2161a021d7ec5f11e) )
+ ROM_LOAD32_BYTE( "mkt-uj22.bin", 0x400003, 0x80000, CRC(5e12523b) SHA1(468f93ef9bb6addb45c1c939d24b6511f255426a) )
+ROM_END
+
+ROM_START( mktturbopi )
+ ROM_REGION( 0x50000, "adpcm:cpu", 0 )
+ ROM_LOAD( "mks-u3.rom", 0x10000, 0x40000, CRC(c615844c) SHA1(5732f9053a5f73b0cc3b0166d7dc4430829d5bc7) )
+
+ ROM_REGION( 0x100000, "adpcm:oki", 0 )
+ ROM_LOAD( "mks-u12.rom", 0x00000, 0x40000, CRC(258bd7f9) SHA1(463890b23f17350fb9b8a85897b0777c45bc2d54) )
+ ROM_RELOAD( 0x40000, 0x40000 )
+ ROM_LOAD( "mks-u13.rom", 0x80000, 0x40000, CRC(7b7ec3b6) SHA1(6eec1b90d4a4855f34a7ebfbf93f3358d5627db4) )
+ ROM_RELOAD( 0xc0000, 0x40000 )
+
+ ROM_REGION16_LE( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "kombo-rompi-uj-12.bin", 0x00000, 0x80000, CRC(f4a9a289) SHA1(a94b0a5796457c6f2789e9fd5a1cb80fd6dcf22b) )
+ ROM_LOAD16_BYTE( "kombo-rom-ug-12.bin", 0x00001, 0x80000, CRC(45bed5a1) SHA1(dba2c21878925afdcaf61520c18ebefd5e9617db) )
+ ROM_FILL(0xF7914, 1, 0x60)
+ ROM_FILL(0xF7915, 1, 0x09)
+
+ ROM_REGION( 0xc00000, "gfxrom", 0 )
+ ROM_LOAD32_BYTE( "mkt-ug14.bin", 0x000000, 0x80000, CRC(9e00834e) SHA1(2b97b63f52ba1dba6af6ae56c223519a52b2ab9d) )
+ ROM_LOAD32_BYTE( "mkt-uj14.bin", 0x000001, 0x80000, CRC(f4b0aaa7) SHA1(4cc6ee34c89e3cde325ad24b29511f70ae6a5a72) )
+ ROM_LOAD32_BYTE( "mkt-ug19.bin", 0x000002, 0x80000, CRC(2d8c7ba1) SHA1(f891d6eb618dbf3e77f02e0f93da216e20571905) )
+ ROM_LOAD32_BYTE( "mkt-uj19.bin", 0x000003, 0x80000, CRC(33b9b7a4) SHA1(e8ceca4c049e1f55d480a03ff793b595bd04d344) )
+
+ ROM_LOAD32_BYTE( "mkt-ug16.bin", 0x200000, 0x80000, CRC(52c9d1e5) SHA1(7b1880fca0a11544782b70365c7dd96381ac48e7) )
+ ROM_LOAD32_BYTE( "mkt-uj16.bin", 0x200001, 0x80000, CRC(c94c58cf) SHA1(974d75667eee779497325d5be8df937f15417edf) )
+ ROM_LOAD32_BYTE( "mkt-ug20.bin", 0x200002, 0x80000, CRC(2f7e55d3) SHA1(bda6892ee6fcb46959e4d0892bbe7d9fc6072dd3) )
+ ROM_LOAD32_BYTE( "mkt-uj20.bin", 0x200003, 0x80000, CRC(eae96df0) SHA1(b40532312ba61e4065abfd733dd0c93eecad48e9) )
+
+ ROM_LOAD32_BYTE( "mkt-ug17.bin", 0x400000, 0x80000, CRC(e34fe253) SHA1(6b010bee795c1770297c9557ded1fe83425857f2) )
+ ROM_LOAD32_BYTE( "mkt-uj17.bin", 0x400001, 0x80000, CRC(a56e12f5) SHA1(5db637c4710990cd06bb0069714b19621532e431) )
+ ROM_LOAD32_BYTE( "mkt-ug22.bin", 0x400002, 0x80000, CRC(b537bb4e) SHA1(05a447deee2e89b49bdb3ca2161a021d7ec5f11e) )
+ ROM_LOAD32_BYTE( "mkt-uj22.bin", 0x400003, 0x80000, CRC(5e12523b) SHA1(468f93ef9bb6addb45c1c939d24b6511f255426a) )
+ROM_END
+
+ROM_START( mk2r33 )
+ ROM_REGION16_LE( 0xc00000, "dcs", ROMREGION_ERASEFF )
+ ROM_LOAD16_BYTE( "su2.l1", 0x000000, 0x80000, CRC(5f23d71d) SHA1(54c2afef243759e0f3dbe2907edbc4302f5c8bad) )
+ ROM_RELOAD( 0x100000, 0x80000 )
+ ROM_LOAD16_BYTE( "su3.l1", 0x200000, 0x80000, CRC(d6d92bf9) SHA1(397351c6b707f2595e36360471015f9fa494e894) )
+ ROM_RELOAD( 0x300000, 0x80000 )
+ ROM_LOAD16_BYTE( "su4.l1", 0x400000, 0x80000, CRC(eebc8e0f) SHA1(705ab63ff7672a4857d546afda6dca4973cce1ad) )
+ ROM_RELOAD( 0x500000, 0x80000 )
+ ROM_LOAD16_BYTE( "su5.l1", 0x600000, 0x80000, CRC(2b0b7961) SHA1(1cdc64aab74d14afbd8c3531e3d0bd49271a281f) )
+ ROM_RELOAD( 0x700000, 0x80000 )
+ ROM_LOAD16_BYTE( "su6.l1", 0x800000, 0x80000, CRC(f694b27f) SHA1(d43e38a124665f49ebb4ffc5a55e8f19a1a64686) )
+ ROM_RELOAD( 0x900000, 0x80000 )
+ ROM_LOAD16_BYTE( "su7.l1", 0xa00000, 0x80000, CRC(20387e0a) SHA1(505d05173b2a1f1ee3ebc2898ccd3a95c98dd04a) )
+ ROM_RELOAD( 0xb00000, 0x80000 )
+
+ ROM_REGION16_LE( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "uj12.l33", 0x00000, 0x80000, CRC(84cb0bf4) SHA1(098e0b5be75c60733f3a63893431506cb99f0981) )
+ ROM_LOAD16_BYTE( "ug12.l33", 0x00001, 0x80000, CRC(2021ec4f) SHA1(7f357abd7ae66eda8eae2b318426da668cfe1deb) )
+
+ ROM_REGION( 0xc00000, "gfxrom", 0 )
+ ROM_LOAD32_BYTE( "ug14-vid", 0x000000, 0x100000, CRC(01e73af6) SHA1(6598cfd704cc92a7f358a0e1f1c973ab79dcc493) )
+ ROM_LOAD32_BYTE( "uj14-vid", 0x000001, 0x100000, CRC(d4985cbb) SHA1(367865da7efae38d83de3c0868d02a705177ae63) )
+ ROM_LOAD32_BYTE( "ug19-vid", 0x000002, 0x100000, CRC(fec137be) SHA1(f11ecb8a7993f5c4f4449564b4911f69bd6e9bf8) )
+ ROM_LOAD32_BYTE( "uj19-vid", 0x000003, 0x100000, CRC(2d763156) SHA1(06536006da49ab5fb6b75b25f801b83fad000ff5) )
+
+ ROM_LOAD32_BYTE( "ug16-vid", 0x400000, 0x100000, CRC(8ba6ae18) SHA1(465fe907de4a1e502180c4e41642998dd3abc8e6) )
+ ROM_LOAD32_BYTE( "uj16-vid", 0x400001, 0x100000, CRC(39d885b4) SHA1(2251826d247c3c6df421124718401fb35a672f83) )
+ ROM_LOAD32_BYTE( "ug20-vid", 0x400002, 0x100000, CRC(809118c1) SHA1(86153e648834c749e34573151cd4fee403a81962) )
+ ROM_LOAD32_BYTE( "uj20-vid", 0x400003, 0x100000, CRC(b96824f0) SHA1(d42b122f9a57da330192abc7e5f97abc4065d718) )
+
+ ROM_LOAD32_BYTE( "ug17-vid", 0x800000, 0x100000, CRC(937d8620) SHA1(8b9f80a460b124a747a6d1495b53f01f580e28f1) )
+ ROM_LOAD32_BYTE( "uj17-vid", 0x800001, 0x100000, CRC(218de160) SHA1(87aea173720d2a33d8183903f4fe8ba1d47e3348) )
+ ROM_LOAD32_BYTE( "ug22-vid", 0x800002, 0x100000, CRC(154d53b1) SHA1(58ff0aa59101f40a9a3b5fbae1c904d0b0b31612) )
+ ROM_LOAD32_BYTE( "uj22-vid", 0x800003, 0x100000, CRC(8891d785) SHA1(fd460df1ef8f4306ea42f7dc41488a80fd2c8f53) )
+ROM_END
+
+ROM_START( umk2te50 )
+ ROM_REGION16_LE( 0xc00000, "dcs", ROMREGION_ERASEFF )
+ ROM_LOAD16_BYTE( "su2.l1", 0x000000, 0x80000, CRC(5f23d71d) SHA1(54c2afef243759e0f3dbe2907edbc4302f5c8bad) )
+ ROM_RELOAD( 0x100000, 0x80000 )
+ ROM_LOAD16_BYTE( "su3.l1", 0x200000, 0x80000, CRC(d6d92bf9) SHA1(397351c6b707f2595e36360471015f9fa494e894) )
+ ROM_RELOAD( 0x300000, 0x80000 )
+ ROM_LOAD16_BYTE( "su4.l1", 0x400000, 0x80000, CRC(eebc8e0f) SHA1(705ab63ff7672a4857d546afda6dca4973cce1ad) )
+ ROM_RELOAD( 0x500000, 0x80000 )
+ ROM_LOAD16_BYTE( "su5.l1", 0x600000, 0x80000, CRC(2b0b7961) SHA1(1cdc64aab74d14afbd8c3531e3d0bd49271a281f) )
+ ROM_RELOAD( 0x700000, 0x80000 )
+ ROM_LOAD16_BYTE( "su6.l1", 0x800000, 0x80000, CRC(f694b27f) SHA1(d43e38a124665f49ebb4ffc5a55e8f19a1a64686) )
+ ROM_RELOAD( 0x900000, 0x80000 )
+ ROM_LOAD16_BYTE( "su7.l1", 0xa00000, 0x80000, CRC(20387e0a) SHA1(505d05173b2a1f1ee3ebc2898ccd3a95c98dd04a) )
+ ROM_RELOAD( 0xb00000, 0x80000 )
+
+ ROM_REGION16_LE( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "uj12.l50", 0x00000, 0x80000, CRC(62ef20f8) SHA1(0e0392bb4b59fb4e01369f533fdcfa6ee5fb6939) )
+ ROM_LOAD16_BYTE( "ug12.l50", 0x00001, 0x80000, CRC(8c66e999) SHA1(ddb9f39149a7ded105f2e993a4c39c473067adf6) )
+
+ ROM_REGION( 0xc00000, "gfxrom", 0 )
+ ROM_LOAD32_BYTE( "ug14-vid", 0x000000, 0x100000, CRC(01e73af6) SHA1(6598cfd704cc92a7f358a0e1f1c973ab79dcc493) )
+ ROM_LOAD32_BYTE( "uj14-vid", 0x000001, 0x100000, CRC(d4985cbb) SHA1(367865da7efae38d83de3c0868d02a705177ae63) )
+ ROM_LOAD32_BYTE( "ug19-vid", 0x000002, 0x100000, CRC(fec137be) SHA1(f11ecb8a7993f5c4f4449564b4911f69bd6e9bf8) )
+ ROM_LOAD32_BYTE( "uj19-vid", 0x000003, 0x100000, CRC(2d763156) SHA1(06536006da49ab5fb6b75b25f801b83fad000ff5) )
+
+ ROM_LOAD32_BYTE( "ug16-vid", 0x400000, 0x100000, CRC(8ba6ae18) SHA1(465fe907de4a1e502180c4e41642998dd3abc8e6) )
+ ROM_LOAD32_BYTE( "uj16-vid", 0x400001, 0x100000, CRC(39d885b4) SHA1(2251826d247c3c6df421124718401fb35a672f83) )
+ ROM_LOAD32_BYTE( "ug20-vid", 0x400002, 0x100000, CRC(809118c1) SHA1(86153e648834c749e34573151cd4fee403a81962) )
+ ROM_LOAD32_BYTE( "uj20-vid", 0x400003, 0x100000, CRC(b96824f0) SHA1(d42b122f9a57da330192abc7e5f97abc4065d718) )
+
+ ROM_LOAD32_BYTE( "ug17-vid", 0x800000, 0x100000, CRC(937d8620) SHA1(8b9f80a460b124a747a6d1495b53f01f580e28f1) )
+ ROM_LOAD32_BYTE( "uj17-vid", 0x800001, 0x100000, CRC(218de160) SHA1(87aea173720d2a33d8183903f4fe8ba1d47e3348) )
+ ROM_LOAD32_BYTE( "ug22-vid", 0x800002, 0x100000, CRC(154d53b1) SHA1(58ff0aa59101f40a9a3b5fbae1c904d0b0b31612) )
+ ROM_LOAD32_BYTE( "uj22-vid", 0x800003, 0x100000, CRC(8891d785) SHA1(fd460df1ef8f4306ea42f7dc41488a80fd2c8f53) )
+ROM_END
+
+ROM_START( umk2te51 )
+ ROM_REGION16_LE( 0xc00000, "dcs", ROMREGION_ERASEFF )
+ ROM_LOAD16_BYTE( "su2.l1", 0x000000, 0x80000, CRC(5f23d71d) SHA1(54c2afef243759e0f3dbe2907edbc4302f5c8bad) )
+ ROM_RELOAD( 0x100000, 0x80000 )
+ ROM_LOAD16_BYTE( "su3.l1", 0x200000, 0x80000, CRC(d6d92bf9) SHA1(397351c6b707f2595e36360471015f9fa494e894) )
+ ROM_RELOAD( 0x300000, 0x80000 )
+ ROM_LOAD16_BYTE( "su4.l1", 0x400000, 0x80000, CRC(eebc8e0f) SHA1(705ab63ff7672a4857d546afda6dca4973cce1ad) )
+ ROM_RELOAD( 0x500000, 0x80000 )
+ ROM_LOAD16_BYTE( "su5.l1", 0x600000, 0x80000, CRC(2b0b7961) SHA1(1cdc64aab74d14afbd8c3531e3d0bd49271a281f) )
+ ROM_RELOAD( 0x700000, 0x80000 )
+ ROM_LOAD16_BYTE( "su6.l1", 0x800000, 0x80000, CRC(f694b27f) SHA1(d43e38a124665f49ebb4ffc5a55e8f19a1a64686) )
+ ROM_RELOAD( 0x900000, 0x80000 )
+ ROM_LOAD16_BYTE( "su7.l1", 0xa00000, 0x80000, CRC(20387e0a) SHA1(505d05173b2a1f1ee3ebc2898ccd3a95c98dd04a) )
+ ROM_RELOAD( 0xb00000, 0x80000 )
+
+ ROM_REGION16_LE( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "uj12.l51", 0x00000, 0x80000, CRC(fbf97b24) SHA1(902614ce3a4527d1a78e148a876cd321ea221e8f) )
+ ROM_LOAD16_BYTE( "ug12.l51", 0x00001, 0x80000, CRC(8d67c168) SHA1(699bf8e6924429221ace092fb66ae4c85eede8d2) )
+
+ ROM_REGION( 0xc00000, "gfxrom", 0 )
+ ROM_LOAD32_BYTE( "ug14-vid", 0x000000, 0x100000, CRC(01e73af6) SHA1(6598cfd704cc92a7f358a0e1f1c973ab79dcc493) )
+ ROM_LOAD32_BYTE( "uj14-vid", 0x000001, 0x100000, CRC(d4985cbb) SHA1(367865da7efae38d83de3c0868d02a705177ae63) )
+ ROM_LOAD32_BYTE( "ug19-vid", 0x000002, 0x100000, CRC(fec137be) SHA1(f11ecb8a7993f5c4f4449564b4911f69bd6e9bf8) )
+ ROM_LOAD32_BYTE( "uj19-vid", 0x000003, 0x100000, CRC(2d763156) SHA1(06536006da49ab5fb6b75b25f801b83fad000ff5) )
+
+ ROM_LOAD32_BYTE( "ug16-vid", 0x400000, 0x100000, CRC(8ba6ae18) SHA1(465fe907de4a1e502180c4e41642998dd3abc8e6) )
+ ROM_LOAD32_BYTE( "uj16-vid", 0x400001, 0x100000, CRC(39d885b4) SHA1(2251826d247c3c6df421124718401fb35a672f83) )
+ ROM_LOAD32_BYTE( "ug20-vid", 0x400002, 0x100000, CRC(809118c1) SHA1(86153e648834c749e34573151cd4fee403a81962) )
+ ROM_LOAD32_BYTE( "uj20-vid", 0x400003, 0x100000, CRC(b96824f0) SHA1(d42b122f9a57da330192abc7e5f97abc4065d718) )
+
+ ROM_LOAD32_BYTE( "ug17-vid", 0x800000, 0x100000, CRC(937d8620) SHA1(8b9f80a460b124a747a6d1495b53f01f580e28f1) )
+ ROM_LOAD32_BYTE( "uj17-vid", 0x800001, 0x100000, CRC(218de160) SHA1(87aea173720d2a33d8183903f4fe8ba1d47e3348) )
+ ROM_LOAD32_BYTE( "ug22-vid", 0x800002, 0x100000, CRC(154d53b1) SHA1(58ff0aa59101f40a9a3b5fbae1c904d0b0b31612) )
+ ROM_LOAD32_BYTE( "uj22-vid", 0x800003, 0x100000, CRC(8891d785) SHA1(fd460df1ef8f4306ea42f7dc41488a80fd2c8f53) )
+ROM_END
+
+ROM_START( umk2te52 )
+ ROM_REGION16_LE( 0xc00000, "dcs", ROMREGION_ERASEFF )
+ ROM_LOAD16_BYTE( "su2.l1", 0x000000, 0x80000, CRC(5f23d71d) SHA1(54c2afef243759e0f3dbe2907edbc4302f5c8bad) )
+ ROM_RELOAD( 0x100000, 0x80000 )
+ ROM_LOAD16_BYTE( "su3.l1", 0x200000, 0x80000, CRC(d6d92bf9) SHA1(397351c6b707f2595e36360471015f9fa494e894) )
+ ROM_RELOAD( 0x300000, 0x80000 )
+ ROM_LOAD16_BYTE( "su4.l1", 0x400000, 0x80000, CRC(eebc8e0f) SHA1(705ab63ff7672a4857d546afda6dca4973cce1ad) )
+ ROM_RELOAD( 0x500000, 0x80000 )
+ ROM_LOAD16_BYTE( "su5.l1", 0x600000, 0x80000, CRC(2b0b7961) SHA1(1cdc64aab74d14afbd8c3531e3d0bd49271a281f) )
+ ROM_RELOAD( 0x700000, 0x80000 )
+ ROM_LOAD16_BYTE( "su6.l1", 0x800000, 0x80000, CRC(f694b27f) SHA1(d43e38a124665f49ebb4ffc5a55e8f19a1a64686) )
+ ROM_RELOAD( 0x900000, 0x80000 )
+ ROM_LOAD16_BYTE( "su7.l1", 0xa00000, 0x80000, CRC(20387e0a) SHA1(505d05173b2a1f1ee3ebc2898ccd3a95c98dd04a) )
+ ROM_RELOAD( 0xb00000, 0x80000 )
+ /* su8 and su9 are unpopulated */
+
+ ROM_REGION16_LE( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "uj12.l52", 0x00000, 0x80000, CRC(a027088c) SHA1(10aced067d8e3a5fe905c07e2ee27904e3dd8855) )
+ ROM_LOAD16_BYTE( "ug12.l52", 0x00001, 0x80000, CRC(474cf238) SHA1(fee96dc9390ade206be3768812040f3bb4ea1e2c) )
+
+ ROM_REGION( 0xc00000, "gfxrom", 0 )
+ ROM_LOAD32_BYTE( "ug14-vid", 0x000000, 0x100000, CRC(01e73af6) SHA1(6598cfd704cc92a7f358a0e1f1c973ab79dcc493) )
+ ROM_LOAD32_BYTE( "uj14-vid", 0x000001, 0x100000, CRC(d4985cbb) SHA1(367865da7efae38d83de3c0868d02a705177ae63) )
+ ROM_LOAD32_BYTE( "ug19-vid", 0x000002, 0x100000, CRC(fec137be) SHA1(f11ecb8a7993f5c4f4449564b4911f69bd6e9bf8) )
+ ROM_LOAD32_BYTE( "uj19-vid", 0x000003, 0x100000, CRC(2d763156) SHA1(06536006da49ab5fb6b75b25f801b83fad000ff5) )
+
+ ROM_LOAD32_BYTE( "ug16-vid", 0x400000, 0x100000, CRC(8ba6ae18) SHA1(465fe907de4a1e502180c4e41642998dd3abc8e6) )
+ ROM_LOAD32_BYTE( "uj16-vid", 0x400001, 0x100000, CRC(39d885b4) SHA1(2251826d247c3c6df421124718401fb35a672f83) )
+ ROM_LOAD32_BYTE( "ug20-vid", 0x400002, 0x100000, CRC(809118c1) SHA1(86153e648834c749e34573151cd4fee403a81962) )
+ ROM_LOAD32_BYTE( "uj20-vid", 0x400003, 0x100000, CRC(b96824f0) SHA1(d42b122f9a57da330192abc7e5f97abc4065d718) )
+
+ ROM_LOAD32_BYTE( "ug17-vid", 0x800000, 0x100000, CRC(937d8620) SHA1(8b9f80a460b124a747a6d1495b53f01f580e28f1) )
+ ROM_LOAD32_BYTE( "uj17-vid", 0x800001, 0x100000, CRC(218de160) SHA1(87aea173720d2a33d8183903f4fe8ba1d47e3348) )
+ ROM_LOAD32_BYTE( "ug22-vid", 0x800002, 0x100000, CRC(154d53b1) SHA1(58ff0aa59101f40a9a3b5fbae1c904d0b0b31612) )
+ ROM_LOAD32_BYTE( "uj22-vid", 0x800003, 0x100000, CRC(8891d785) SHA1(fd460df1ef8f4306ea42f7dc41488a80fd2c8f53) )
+ROM_END
+
+ROM_START( mkfr )
+ ROM_REGION( 0x50000, "adpcm:cpu", 0 )
+ ROM_LOAD( "mks-u3.rom", 0x10000, 0x40000, CRC(c615844c) SHA1(5732f9053a5f73b0cc3b0166d7dc4430829d5bc7) )
+
+ ROM_REGION( 0x100000, "adpcm:oki", 0 )
+ ROM_LOAD( "mks-u12.rom", 0x00000, 0x40000, CRC(258bd7f9) SHA1(463890b23f17350fb9b8a85897b0777c45bc2d54) )
+ ROM_RELOAD( 0x40000, 0x40000 )
+ ROM_LOAD( "mks-u13.rom", 0x80000, 0x40000, CRC(7b7ec3b6) SHA1(6eec1b90d4a4855f34a7ebfbf93f3358d5627db4) )
+ ROM_RELOAD( 0xc0000, 0x40000 )
+
+ ROM_REGION16_LE( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "mkt-uj12f.bin", 0x00000, 0x80000, CRC(4192e38f) SHA1(abe2e6f643a36df48a23aaa2f9027c78c6078d2d) )
+ ROM_LOAD16_BYTE( "mkt-ug12f.bin", 0x00001, 0x80000, CRC(8799979d) SHA1(4f094540e68c03fbd03cd8731797c55e455f61e6) )
+
+ ROM_REGION( 0xc00000, "gfxrom", 0 )
+ ROM_LOAD32_BYTE( "mkt-ug14.bin", 0x000000, 0x80000, CRC(9e00834e) SHA1(2b97b63f52ba1dba6af6ae56c223519a52b2ab9d) )
+ ROM_LOAD32_BYTE( "mkt-uj14.bin", 0x000001, 0x80000, CRC(f4b0aaa7) SHA1(4cc6ee34c89e3cde325ad24b29511f70ae6a5a72) )
+ ROM_LOAD32_BYTE( "mkt-ug19.bin", 0x000002, 0x80000, CRC(2d8c7ba1) SHA1(f891d6eb618dbf3e77f02e0f93da216e20571905) )
+ ROM_LOAD32_BYTE( "mkt-uj19.bin", 0x000003, 0x80000, CRC(33b9b7a4) SHA1(e8ceca4c049e1f55d480a03ff793b595bd04d344) )
+
+ ROM_LOAD32_BYTE( "mkt-ug16.bin", 0x200000, 0x80000, CRC(52c9d1e5) SHA1(7b1880fca0a11544782b70365c7dd96381ac48e7) )
+ ROM_LOAD32_BYTE( "mkt-uj16.bin", 0x200001, 0x80000, CRC(c94c58cf) SHA1(974d75667eee779497325d5be8df937f15417edf) )
+ ROM_LOAD32_BYTE( "mkt-ug20.bin", 0x200002, 0x80000, CRC(2f7e55d3) SHA1(bda6892ee6fcb46959e4d0892bbe7d9fc6072dd3) )
+ ROM_LOAD32_BYTE( "mkt-uj20.bin", 0x200003, 0x80000, CRC(eae96df0) SHA1(b40532312ba61e4065abfd733dd0c93eecad48e9) )
+
+ ROM_LOAD32_BYTE( "mkt-ug17.bin", 0x400000, 0x80000, CRC(e34fe253) SHA1(6b010bee795c1770297c9557ded1fe83425857f2) )
+ ROM_LOAD32_BYTE( "mkt-uj17.bin", 0x400001, 0x80000, CRC(a56e12f5) SHA1(5db637c4710990cd06bb0069714b19621532e431) )
+ ROM_LOAD32_BYTE( "mkt-ug22.bin", 0x400002, 0x80000, CRC(b537bb4e) SHA1(05a447deee2e89b49bdb3ca2161a021d7ec5f11e) )
+ ROM_LOAD32_BYTE( "mkt-uj22.bin", 0x400003, 0x80000, CRC(5e12523b) SHA1(468f93ef9bb6addb45c1c939d24b6511f255426a) )
+ROM_END
+
+ROM_START( mk2fr )
+ ROM_REGION16_LE( 0xc00000, "dcs", ROMREGION_ERASEFF )
+ ROM_LOAD16_BYTE( "su2.l1", 0x000000, 0x80000, CRC(5f23d71d) SHA1(54c2afef243759e0f3dbe2907edbc4302f5c8bad) )
+ ROM_RELOAD( 0x100000, 0x80000 )
+ ROM_LOAD16_BYTE( "su3.l1", 0x200000, 0x80000, CRC(d6d92bf9) SHA1(397351c6b707f2595e36360471015f9fa494e894) )
+ ROM_RELOAD( 0x300000, 0x80000 )
+ ROM_LOAD16_BYTE( "su4.l1", 0x400000, 0x80000, CRC(eebc8e0f) SHA1(705ab63ff7672a4857d546afda6dca4973cce1ad) )
+ ROM_RELOAD( 0x500000, 0x80000 )
+ ROM_LOAD16_BYTE( "su5.l1", 0x600000, 0x80000, CRC(2b0b7961) SHA1(1cdc64aab74d14afbd8c3531e3d0bd49271a281f) )
+ ROM_RELOAD( 0x700000, 0x80000 )
+ ROM_LOAD16_BYTE( "su6.l1", 0x800000, 0x80000, CRC(f694b27f) SHA1(d43e38a124665f49ebb4ffc5a55e8f19a1a64686) )
+ ROM_RELOAD( 0x900000, 0x80000 )
+ ROM_LOAD16_BYTE( "su7.l1", 0xa00000, 0x80000, CRC(20387e0a) SHA1(505d05173b2a1f1ee3ebc2898ccd3a95c98dd04a) )
+ ROM_RELOAD( 0xb00000, 0x80000 )
+
+ ROM_REGION16_LE( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "uj12fr.l31", 0x00000, 0x80000, CRC(0f801e9b) SHA1(b0dc620e1be6b89ff0a1dcd64eec678e81a2ea69) )
+ ROM_LOAD16_BYTE( "ug12fr.l31", 0x00001, 0x80000, CRC(d896c9b6) SHA1(61e26c6acaf810e0788aef31000056e524b87b06) )
+
+ ROM_REGION( 0xc00000, "gfxrom", 0 )
+ ROM_LOAD32_BYTE( "ug14-vid", 0x000000, 0x100000, CRC(01e73af6) SHA1(6598cfd704cc92a7f358a0e1f1c973ab79dcc493) )
+ ROM_LOAD32_BYTE( "uj14-vid", 0x000001, 0x100000, CRC(d4985cbb) SHA1(367865da7efae38d83de3c0868d02a705177ae63) )
+ ROM_LOAD32_BYTE( "ug19-vid", 0x000002, 0x100000, CRC(fec137be) SHA1(f11ecb8a7993f5c4f4449564b4911f69bd6e9bf8) )
+ ROM_LOAD32_BYTE( "uj19-vid", 0x000003, 0x100000, CRC(2d763156) SHA1(06536006da49ab5fb6b75b25f801b83fad000ff5) )
+
+ ROM_LOAD32_BYTE( "ug16-vid", 0x400000, 0x100000, CRC(8ba6ae18) SHA1(465fe907de4a1e502180c4e41642998dd3abc8e6) )
+ ROM_LOAD32_BYTE( "uj16-vid", 0x400001, 0x100000, CRC(39d885b4) SHA1(2251826d247c3c6df421124718401fb35a672f83) )
+ ROM_LOAD32_BYTE( "ug20-vid", 0x400002, 0x100000, CRC(809118c1) SHA1(86153e648834c749e34573151cd4fee403a81962) )
+ ROM_LOAD32_BYTE( "uj20-vid", 0x400003, 0x100000, CRC(b96824f0) SHA1(d42b122f9a57da330192abc7e5f97abc4065d718) )
+
+ ROM_LOAD32_BYTE( "ug17-vid", 0x800000, 0x100000, CRC(937d8620) SHA1(8b9f80a460b124a747a6d1495b53f01f580e28f1) )
+ ROM_LOAD32_BYTE( "uj17-vid", 0x800001, 0x100000, CRC(218de160) SHA1(87aea173720d2a33d8183903f4fe8ba1d47e3348) )
+ ROM_LOAD32_BYTE( "ug22-vid", 0x800002, 0x100000, CRC(154d53b1) SHA1(58ff0aa59101f40a9a3b5fbae1c904d0b0b31612) )
+ ROM_LOAD32_BYTE( "uj22-vid", 0x800003, 0x100000, CRC(8891d785) SHA1(fd460df1ef8f4306ea42f7dc41488a80fd2c8f53) )
+ROM_END
+
+
+GAME( 1992, mkturbod, mk, tunit_adpcm, mk, midtunit_state, mktunit, ROT0, "hack", "Mortal Kombat (Turbo Ninja T-Unit 03/19/93, hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2012, mktturboen, mk, tunit_adpcm, mk, midtunit_state, mktunit, ROT0, "Zenomorp", "Mortal Kombat (Turbo Endurance)", MACHINE_SUPPORTS_SAVE )
+GAME( 2012, mktturbopi, mk, tunit_adpcm, mk, midtunit_state, mktunit, ROT0, "Zenomorp", "Mortal Kombat (Projectile Insanity)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, mk2r33, mk2, tunit_dcs, mk2, midtunit_state, mk2, ROT0, "Midway", "Mortal Kombat II (rev L3.3 (prototype))", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, umk2te50, mk2, tunit_dcs, mk2, midtunit_state, mk2, ROT0, "SK", "Ultimate Mortal Kombat II Tournament Edition r5.0.050)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, umk2te51, mk2, tunit_dcs, mk2, midtunit_state, mk2, ROT0, "SK", "Ultimate Mortal Kombat II Tournament Edition r5.0.051)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, umk2te52, mk2, tunit_dcs, mk2, midtunit_state, mk2, ROT0, "SK", "Ultimate Mortal Kombat II Tournament Edition r5.0.052)", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, mkfr, mk, tunit_adpcm, mk, midtunit_state, mktunit, ROT0, "Arkatrad", "Mortal Kombat (French)", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, mk2fr, mk2, tunit_dcs, mk2, midtunit_state, mk2, ROT0, "Arkatrad", "Mortal Kombat II (French)", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/midwunit.cpp b/docs/release/src/hbmame/drivers/midwunit.cpp
new file mode 100644
index 00000000000..b93d735534b
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/midwunit.cpp
@@ -0,0 +1,173 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/midwunit.cpp"
+
+ROM_START( umk3j )
+ ROM_REGION16_LE( 0x800000, "dcs", ROMREGION_ERASEFF )
+ ROM_LOAD16_BYTE( "l2.0_mortal_kombat_3_u2_ultimate.u2", 0x000000, 0x100000, CRC(3838cfe5) SHA1(e3d2901f3bae1362742fc6ee0aa31c9f63b4dfa3) )
+ ROM_LOAD16_BYTE( "l1_mortal_kombat_3_u3_music_spch.u3", 0x200000, 0x100000, CRC(856fe411) SHA1(6165ebecfce7500e948d84492ffa19eed7f47091) )
+ ROM_LOAD16_BYTE( "l1_mortal_kombat_3_u4_music_spch.u4", 0x400000, 0x100000, CRC(428a406f) SHA1(e70ec83cd054de0da1e178720ed0035b8887f797) )
+ ROM_LOAD16_BYTE( "l1_mortal_kombat_3_u5_music_spch.u5", 0x600000, 0x100000, CRC(3b98a09f) SHA1(edf1d02a56dcf3349e6b4bb4097acfe7592305f4) )
+
+ ROM_REGION16_LE( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "umk3j-u54.bin", 0x00000, 0x80000, CRC(7bd7de7b) SHA1(b1787f732c15ff217bdc9ed5f83dbf2589e32cfb) )
+ ROM_LOAD16_BYTE( "umk3j-u63.bin", 0x00001, 0x80000, CRC(03ba8907) SHA1(8cf79dc054fe40bc28dbd74a6198468c9ae8c948) )
+
+ ROM_REGION( 0x1009, "serial_security:pic", 0 ) /* security PIC (provides game ID code and serial number) */
+ ROM_LOAD( "463_MK3_Ultimate.u64", 0x0000, 0x1009, CRC(4f425218) SHA1(7f26045ed2c9ca94fadcb673ce10f28208aa720e) )
+
+ ROM_REGION( 0x2000000, "gfxrom", 0 )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u133_game_rom.u133", 0x0000000, 0x100000, CRC(79b94667) SHA1(31bba640c351fdccc6685cadb74dd79a3f910ce8) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u132_game_rom.u132", 0x0000001, 0x100000, CRC(13e95228) SHA1(405b05f5a5a55667c2be17d4b399129bdacefd90) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u131_game_rom.u131", 0x0000002, 0x100000, CRC(41001e30) SHA1(2cec91116771951c0380cec5debf4cbb40c14c61) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u130_game_rom.u130", 0x0000003, 0x100000, CRC(49379dd7) SHA1(e6dfab4e23d9cc38ae56c1bbf10ccd160e8fad5e) )
+
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u129_game_rom.u129", 0x0400000, 0x100000, CRC(a8b41803) SHA1(9697e35e8bb51d6d36b1d7ae47377b446e57682f) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u128_game_rom.u128", 0x0400001, 0x100000, CRC(b410d72f) SHA1(ac5c1c6f744186540f4ab100d9bd4ce6007e600b) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u127_game_rom.u127", 0x0400002, 0x100000, CRC(bd985be7) SHA1(f5183abea2e5eb2c2c8cefa72c9ed321679f5128) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u126_game_rom.u126", 0x0400003, 0x100000, CRC(e7c32cf4) SHA1(94ea7b2eed7dae66f5dd676c20d6b360140e3e0e) )
+
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u125_game_rom.u125", 0x0800000, 0x100000, CRC(9a52227e) SHA1(0474a14fa8dbfea0b0889c1d1756b86391683558) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u124_game_rom.u124", 0x0800001, 0x100000, CRC(5c750ebc) SHA1(45d68af1a56994376e086d840502453c8d6be700) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u123_game_rom.u123", 0x0800002, 0x100000, CRC(f0ab88a8) SHA1(cdc9dc12e162255845c6627b1e35182b7e8502d0) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u122_game_rom.u122", 0x0800003, 0x100000, CRC(9b87cdac) SHA1(a5f8db559293978f23e6f105543d8b2e170a2e0d) )
+
+ ROM_LOAD32_BYTE( "umk3j-u121.bin", 0x0c00000, 0x100000, CRC(d17b30f3) SHA1(d9f65a475bea10aca7aae29dd32fc4b3fdd43aca) )
+ ROM_LOAD32_BYTE( "umk3j-u120.bin", 0x0c00001, 0x100000, CRC(c80dbff9) SHA1(e8f903f276487b8aec899d5726b04bef38baf521) )
+ ROM_LOAD32_BYTE( "umk3j-u119.bin", 0x0c00002, 0x100000, CRC(518f8083) SHA1(7e2f8e8a40224db00a658dc121df686492bd5d81) )
+ ROM_LOAD32_BYTE( "umk3j-u118.bin", 0x0c00003, 0x100000, CRC(bbc57990) SHA1(fcf1a90a607d2a054aa633578671c688a8df580c) )
+
+ ROM_LOAD32_BYTE( "umk-u113.bin", 0x1400000, 0x100000, CRC(99d74a1e) SHA1(ed3068afa98287ea290d1f537f5009d3b6d683da) )
+ ROM_LOAD32_BYTE( "umk-u112.bin", 0x1400001, 0x100000, CRC(b5a46488) SHA1(dbf22e55d200eb9ff550f48b223cf0c6114a9357) )
+ ROM_LOAD32_BYTE( "umk-u111.bin", 0x1400002, 0x100000, CRC(a87523c8) SHA1(e70b7599fef82001f762fc2c48f7b85474431ccc) )
+ ROM_LOAD32_BYTE( "umk-u110.bin", 0x1400003, 0x100000, CRC(0038f205) SHA1(059c1c71a2d92ee6db36c09831d213a48a7e81d0) )
+ROM_END
+
+ROM_START( umk3z )
+ ROM_REGION16_LE( 0x800000, "dcs", ROMREGION_ERASEFF )
+ ROM_LOAD16_BYTE( "l2.0_mortal_kombat_3_u2_ultimate.u2", 0x000000, 0x100000, CRC(3838cfe5) SHA1(e3d2901f3bae1362742fc6ee0aa31c9f63b4dfa3) )
+ ROM_LOAD16_BYTE( "l1_mortal_kombat_3_u3_music_spch.u3", 0x200000, 0x100000, CRC(856fe411) SHA1(6165ebecfce7500e948d84492ffa19eed7f47091) )
+ ROM_LOAD16_BYTE( "l1_mortal_kombat_3_u4_music_spch.u4", 0x400000, 0x100000, CRC(428a406f) SHA1(e70ec83cd054de0da1e178720ed0035b8887f797) )
+ ROM_LOAD16_BYTE( "l1_mortal_kombat_3_u5_music_spch.u5", 0x600000, 0x100000, CRC(3b98a09f) SHA1(edf1d02a56dcf3349e6b4bb4097acfe7592305f4) )
+
+ ROM_REGION16_LE( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "umk3z-u54.bin", 0x00000, 0x80000, CRC(7ea6c327) SHA1(266f67302c8a98e96d077ba42bba47dbe5127882) )
+ ROM_LOAD16_BYTE( "umk3z-u63.bin", 0x00001, 0x80000, CRC(51f66368) SHA1(a1e0142e39e123df0e4de525f62328d3c9049244) )
+
+ ROM_REGION( 0x1009, "serial_security:pic", 0 ) /* security PIC (provides game ID code and serial number) */
+ ROM_LOAD( "463_MK3_Ultimate.u64", 0x0000, 0x1009, CRC(4f425218) SHA1(7f26045ed2c9ca94fadcb673ce10f28208aa720e) )
+
+ ROM_REGION( 0x2000000, "gfxrom", 0 )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u133_game_rom.u133", 0x0000000, 0x100000, CRC(79b94667) SHA1(31bba640c351fdccc6685cadb74dd79a3f910ce8) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u132_game_rom.u132", 0x0000001, 0x100000, CRC(13e95228) SHA1(405b05f5a5a55667c2be17d4b399129bdacefd90) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u131_game_rom.u131", 0x0000002, 0x100000, CRC(41001e30) SHA1(2cec91116771951c0380cec5debf4cbb40c14c61) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u130_game_rom.u130", 0x0000003, 0x100000, CRC(49379dd7) SHA1(e6dfab4e23d9cc38ae56c1bbf10ccd160e8fad5e) )
+
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u129_game_rom.u129", 0x0400000, 0x100000, CRC(a8b41803) SHA1(9697e35e8bb51d6d36b1d7ae47377b446e57682f) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u128_game_rom.u128", 0x0400001, 0x100000, CRC(b410d72f) SHA1(ac5c1c6f744186540f4ab100d9bd4ce6007e600b) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u127_game_rom.u127", 0x0400002, 0x100000, CRC(bd985be7) SHA1(f5183abea2e5eb2c2c8cefa72c9ed321679f5128) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u126_game_rom.u126", 0x0400003, 0x100000, CRC(e7c32cf4) SHA1(94ea7b2eed7dae66f5dd676c20d6b360140e3e0e) )
+
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u125_game_rom.u125", 0x0800000, 0x100000, CRC(9a52227e) SHA1(0474a14fa8dbfea0b0889c1d1756b86391683558) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u124_game_rom.u124", 0x0800001, 0x100000, CRC(5c750ebc) SHA1(45d68af1a56994376e086d840502453c8d6be700) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u123_game_rom.u123", 0x0800002, 0x100000, CRC(f0ab88a8) SHA1(cdc9dc12e162255845c6627b1e35182b7e8502d0) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u122_game_rom.u122", 0x0800003, 0x100000, CRC(9b87cdac) SHA1(a5f8db559293978f23e6f105543d8b2e170a2e0d) )
+
+ ROM_LOAD32_BYTE( "umk-u121.bin", 0x0c00000, 0x100000, CRC(cc4b95db) SHA1(3d53180eec649e9616c4b87db55573f12d9bfee3) )
+ ROM_LOAD32_BYTE( "umk-u120.bin", 0x0c00001, 0x100000, CRC(1c8144cd) SHA1(77cdc1eaf630ccb7233f5532f8b08191d00f0816) )
+ ROM_LOAD32_BYTE( "umk-u119.bin", 0x0c00002, 0x100000, CRC(5f10c543) SHA1(24dc83b7aa531ebd399258ffa7b2e028f1c4a28e) )
+ ROM_LOAD32_BYTE( "umk-u118.bin", 0x0c00003, 0x100000, CRC(de0c4488) SHA1(227cab34798c440b2a45223567113df5f17d913f) )
+
+ ROM_LOAD32_BYTE( "umk-u113.bin", 0x1400000, 0x100000, CRC(99d74a1e) SHA1(ed3068afa98287ea290d1f537f5009d3b6d683da) )
+ ROM_LOAD32_BYTE( "umk-u112.bin", 0x1400001, 0x100000, CRC(b5a46488) SHA1(dbf22e55d200eb9ff550f48b223cf0c6114a9357) )
+ ROM_LOAD32_BYTE( "umk-u111.bin", 0x1400002, 0x100000, CRC(a87523c8) SHA1(e70b7599fef82001f762fc2c48f7b85474431ccc) )
+ ROM_LOAD32_BYTE( "umk-u110.bin", 0x1400003, 0x100000, CRC(0038f205) SHA1(059c1c71a2d92ee6db36c09831d213a48a7e81d0) )
+ROM_END
+
+ROM_START( umk3te )
+ ROM_REGION16_LE( 0x800000, "dcs", ROMREGION_ERASEFF )
+ ROM_LOAD16_BYTE( "l2.0_mortal_kombat_3_u2_ultimate.u2", 0x000000, 0x100000, CRC(3838cfe5) SHA1(e3d2901f3bae1362742fc6ee0aa31c9f63b4dfa3) )
+ ROM_LOAD16_BYTE( "l1_mortal_kombat_3_u3_music_spch.u3", 0x200000, 0x100000, CRC(856fe411) SHA1(6165ebecfce7500e948d84492ffa19eed7f47091) )
+ ROM_LOAD16_BYTE( "l1_mortal_kombat_3_u4_music_spch.u4", 0x400000, 0x100000, CRC(428a406f) SHA1(e70ec83cd054de0da1e178720ed0035b8887f797) )
+ ROM_LOAD16_BYTE( "l1_mortal_kombat_3_u5_music_spch.u5", 0x600000, 0x100000, CRC(3b98a09f) SHA1(edf1d02a56dcf3349e6b4bb4097acfe7592305f4) )
+
+ ROM_REGION16_LE( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "um312te.u54", 0x00000, 0x80000, CRC(6ff000b4) SHA1(4953bf5275e3bbabbd20c3114e8a0be5d10a0176) )
+ ROM_LOAD16_BYTE( "um312te.u63", 0x00001, 0x80000, CRC(524b4033) SHA1(c3c16dbc83dfa49a80aa440ec6a4f121371bccd6) )
+
+ ROM_REGION( 0x1009, "serial_security:pic", 0 ) /* security PIC (provides game ID code and serial number) */
+ ROM_LOAD( "463_MK3_Ultimate.u64", 0x0000, 0x1009, CRC(4f425218) SHA1(7f26045ed2c9ca94fadcb673ce10f28208aa720e) )
+
+ ROM_REGION( 0x2000000, "gfxrom", 0 )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u133_game_rom.u133", 0x0000000, 0x100000, CRC(79b94667) SHA1(31bba640c351fdccc6685cadb74dd79a3f910ce8) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u132_game_rom.u132", 0x0000001, 0x100000, CRC(13e95228) SHA1(405b05f5a5a55667c2be17d4b399129bdacefd90) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u131_game_rom.u131", 0x0000002, 0x100000, CRC(41001e30) SHA1(2cec91116771951c0380cec5debf4cbb40c14c61) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u130_game_rom.u130", 0x0000003, 0x100000, CRC(49379dd7) SHA1(e6dfab4e23d9cc38ae56c1bbf10ccd160e8fad5e) )
+
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u129_game_rom.u129", 0x0400000, 0x100000, CRC(a8b41803) SHA1(9697e35e8bb51d6d36b1d7ae47377b446e57682f) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u128_game_rom.u128", 0x0400001, 0x100000, CRC(b410d72f) SHA1(ac5c1c6f744186540f4ab100d9bd4ce6007e600b) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u127_game_rom.u127", 0x0400002, 0x100000, CRC(bd985be7) SHA1(f5183abea2e5eb2c2c8cefa72c9ed321679f5128) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u126_game_rom.u126", 0x0400003, 0x100000, CRC(e7c32cf4) SHA1(94ea7b2eed7dae66f5dd676c20d6b360140e3e0e) )
+
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u125_game_rom.u125", 0x0800000, 0x100000, CRC(9a52227e) SHA1(0474a14fa8dbfea0b0889c1d1756b86391683558) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u124_game_rom.u124", 0x0800001, 0x100000, CRC(5c750ebc) SHA1(45d68af1a56994376e086d840502453c8d6be700) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u123_game_rom.u123", 0x0800002, 0x100000, CRC(f0ab88a8) SHA1(cdc9dc12e162255845c6627b1e35182b7e8502d0) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u122_game_rom.u122", 0x0800003, 0x100000, CRC(9b87cdac) SHA1(a5f8db559293978f23e6f105543d8b2e170a2e0d) )
+
+ ROM_LOAD32_BYTE( "umk-u121.bin", 0x0c00000, 0x100000, CRC(cc4b95db) SHA1(3d53180eec649e9616c4b87db55573f12d9bfee3) )
+ ROM_LOAD32_BYTE( "umk-u120.bin", 0x0c00001, 0x100000, CRC(1c8144cd) SHA1(77cdc1eaf630ccb7233f5532f8b08191d00f0816) )
+ ROM_LOAD32_BYTE( "umk-u119.bin", 0x0c00002, 0x100000, CRC(5f10c543) SHA1(24dc83b7aa531ebd399258ffa7b2e028f1c4a28e) )
+ ROM_LOAD32_BYTE( "umk-u118.bin", 0x0c00003, 0x100000, CRC(de0c4488) SHA1(227cab34798c440b2a45223567113df5f17d913f) )
+
+ ROM_LOAD32_BYTE( "umk-u113.bin", 0x1400000, 0x100000, CRC(99d74a1e) SHA1(ed3068afa98287ea290d1f537f5009d3b6d683da) )
+ ROM_LOAD32_BYTE( "umk-u112.bin", 0x1400001, 0x100000, CRC(b5a46488) SHA1(dbf22e55d200eb9ff550f48b223cf0c6114a9357) )
+ ROM_LOAD32_BYTE( "umk-u111.bin", 0x1400002, 0x100000, CRC(a87523c8) SHA1(e70b7599fef82001f762fc2c48f7b85474431ccc) )
+ ROM_LOAD32_BYTE( "umk-u110.bin", 0x1400003, 0x100000, CRC(0038f205) SHA1(059c1c71a2d92ee6db36c09831d213a48a7e81d0) )
+ROM_END
+
+ROM_START( umk3te2 )
+ ROM_REGION16_LE( 0x800000, "dcs", ROMREGION_ERASEFF )
+ ROM_LOAD16_BYTE( "l2.0_mortal_kombat_3_u2_ultimate.u2", 0x000000, 0x100000, CRC(3838cfe5) SHA1(e3d2901f3bae1362742fc6ee0aa31c9f63b4dfa3) )
+ ROM_LOAD16_BYTE( "l1_mortal_kombat_3_u3_music_spch.u3", 0x200000, 0x100000, CRC(856fe411) SHA1(6165ebecfce7500e948d84492ffa19eed7f47091) )
+ ROM_LOAD16_BYTE( "l1_mortal_kombat_3_u4_music_spch.u4", 0x400000, 0x100000, CRC(428a406f) SHA1(e70ec83cd054de0da1e178720ed0035b8887f797) )
+ ROM_LOAD16_BYTE( "l1_mortal_kombat_3_u5_music_spch.u5", 0x600000, 0x100000, CRC(3b98a09f) SHA1(edf1d02a56dcf3349e6b4bb4097acfe7592305f4) )
+
+ ROM_REGION16_LE( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "um312te2.u54", 0x00000, 0x80000, CRC(5b6264e5) SHA1(b2c06a729d4cf70e8f5a2721b66e3e2da4a4ca7c) )
+ ROM_LOAD16_BYTE( "um312te2.u63", 0x00001, 0x80000, CRC(1ba096e0) SHA1(75aa60c75856e98f99d90c1978429fab1509eae8) )
+
+ ROM_REGION( 0x1009, "serial_security:pic", 0 ) /* security PIC (provides game ID code and serial number) */
+ ROM_LOAD( "463_MK3_Ultimate.u64", 0x0000, 0x1009, CRC(4f425218) SHA1(7f26045ed2c9ca94fadcb673ce10f28208aa720e) )
+
+ ROM_REGION( 0x2000000, "gfxrom", 0 )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u133_game_rom.u133", 0x0000000, 0x100000, CRC(79b94667) SHA1(31bba640c351fdccc6685cadb74dd79a3f910ce8) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u132_game_rom.u132", 0x0000001, 0x100000, CRC(13e95228) SHA1(405b05f5a5a55667c2be17d4b399129bdacefd90) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u131_game_rom.u131", 0x0000002, 0x100000, CRC(41001e30) SHA1(2cec91116771951c0380cec5debf4cbb40c14c61) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u130_game_rom.u130", 0x0000003, 0x100000, CRC(49379dd7) SHA1(e6dfab4e23d9cc38ae56c1bbf10ccd160e8fad5e) )
+
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u129_game_rom.u129", 0x0400000, 0x100000, CRC(a8b41803) SHA1(9697e35e8bb51d6d36b1d7ae47377b446e57682f) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u128_game_rom.u128", 0x0400001, 0x100000, CRC(b410d72f) SHA1(ac5c1c6f744186540f4ab100d9bd4ce6007e600b) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u127_game_rom.u127", 0x0400002, 0x100000, CRC(bd985be7) SHA1(f5183abea2e5eb2c2c8cefa72c9ed321679f5128) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u126_game_rom.u126", 0x0400003, 0x100000, CRC(e7c32cf4) SHA1(94ea7b2eed7dae66f5dd676c20d6b360140e3e0e) )
+
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u125_game_rom.u125", 0x0800000, 0x100000, CRC(9a52227e) SHA1(0474a14fa8dbfea0b0889c1d1756b86391683558) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u124_game_rom.u124", 0x0800001, 0x100000, CRC(5c750ebc) SHA1(45d68af1a56994376e086d840502453c8d6be700) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u123_game_rom.u123", 0x0800002, 0x100000, CRC(f0ab88a8) SHA1(cdc9dc12e162255845c6627b1e35182b7e8502d0) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u122_game_rom.u122", 0x0800003, 0x100000, CRC(9b87cdac) SHA1(a5f8db559293978f23e6f105543d8b2e170a2e0d) )
+
+ ROM_LOAD32_BYTE( "umk-u121.bin", 0x0c00000, 0x100000, CRC(cc4b95db) SHA1(3d53180eec649e9616c4b87db55573f12d9bfee3) )
+ ROM_LOAD32_BYTE( "umk-u120.bin", 0x0c00001, 0x100000, CRC(1c8144cd) SHA1(77cdc1eaf630ccb7233f5532f8b08191d00f0816) )
+ ROM_LOAD32_BYTE( "umk-u119.bin", 0x0c00002, 0x100000, CRC(5f10c543) SHA1(24dc83b7aa531ebd399258ffa7b2e028f1c4a28e) )
+ ROM_LOAD32_BYTE( "umk-u118.bin", 0x0c00003, 0x100000, CRC(de0c4488) SHA1(227cab34798c440b2a45223567113df5f17d913f) )
+
+ ROM_LOAD32_BYTE( "umk-u113.bin", 0x1400000, 0x100000, CRC(99d74a1e) SHA1(ed3068afa98287ea290d1f537f5009d3b6d683da) )
+ ROM_LOAD32_BYTE( "umk-u112.bin", 0x1400001, 0x100000, CRC(b5a46488) SHA1(dbf22e55d200eb9ff550f48b223cf0c6114a9357) )
+ ROM_LOAD32_BYTE( "umk-u111.bin", 0x1400002, 0x100000, CRC(a87523c8) SHA1(e70b7599fef82001f762fc2c48f7b85474431ccc) )
+ ROM_LOAD32_BYTE( "umk-u110.bin", 0x1400003, 0x100000, CRC(0038f205) SHA1(059c1c71a2d92ee6db36c09831d213a48a7e81d0) )
+ROM_END
+
+
+GAME( 2010, umk3j, umk3, wunit_picemu, mk3, midwunit_state, umk3, ROT0, "Midway", "Ultimate Mortal Kombat 3 (rev 1.2) Juggernauts Hack v1.0", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, umk3z, umk3, wunit_picemu, mk3, midwunit_state, umk3, ROT0, "Midway", "Ultimate Mortal Kombat 3 (rev 1.2) Zeus hack", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, umk3te, umk3, wunit_picemu, mk3, midwunit_state, umk3, ROT0, "Midway", "Ultimate Mortal Kombat 3 Tournament Edition (2.0.032b8)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, umk3te2, umk3, wunit_picemu, mk3, midwunit_state, umk3, ROT0, "Midway", "Ultimate Mortal Kombat 3 Tournament Edition (2.0.035)", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/midyunit.cpp b/docs/release/src/hbmame/drivers/midyunit.cpp
new file mode 100644
index 00000000000..24e9735d9a7
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/midyunit.cpp
@@ -0,0 +1,36 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/midyunit.cpp"
+
+ROM_START( mkla4d )
+ ROM_REGION( 0x50000, "adpcm:cpu", 0 )
+ ROM_LOAD ( "mks-u3.rom", 0x10000, 0x40000, CRC(c615844c) SHA1(5732f9053a5f73b0cc3b0166d7dc4430829d5bc7) )
+
+ ROM_REGION( 0x200000, "adpcm:oki", 0 )
+ ROM_LOAD ( "mks-u12.rom", 0x00000, 0x40000, CRC(258bd7f9) SHA1(463890b23f17350fb9b8a85897b0777c45bc2d54) )
+ ROM_RELOAD( 0x40000, 0x40000 )
+ ROM_LOAD ( "mks-u13.rom", 0x80000, 0x40000, CRC(7b7ec3b6) SHA1(6eec1b90d4a4855f34a7ebfbf93f3358d5627db4) )
+ ROM_RELOAD( 0xc0000, 0x40000 )
+
+ ROM_REGION16_LE( 0x100000, "user1", 0 )
+ ROM_LOAD16_BYTE( "mkg-hacked-u105.la4", 0x00000, 0x80000, CRC(80d5618c) SHA1(9bdfddbc70b61c94c1871abac1de153b8b728761) )
+ ROM_LOAD16_BYTE( "mkg-hacked-u89.la4", 0x00001, 0x80000, CRC(0478ae60) SHA1(186243cacc4d83070ef53b47f19668ca4c08474a) )
+
+ ROM_REGION( 0x800000, "gfx1", 0 )
+ ROM_LOAD ( "mkg-u111.rom", 0x000000, 0x80000, CRC(d17096c4) SHA1(01ef390a372c9d94adf138f9543ebb88b89f4c38) )
+ ROM_LOAD ( "mkg-u112.rom", 0x080000, 0x80000, CRC(993bc2e4) SHA1(7791edbec2b4b8971a3e790346dd7564ecf16d5c) )
+ ROM_LOAD ( "mkg-u113.rom", 0x100000, 0x80000, CRC(6fb91ede) SHA1(a3735b49f93b08c44fbc97e2b5aad394628fbe90) )
+ ROM_LOAD ( "mkg-u114.rom", 0x180000, 0x80000, CRC(ed1ff88a) SHA1(6b090b658ee6148af953bd0c9216f37162b6460f) )
+
+ ROM_LOAD ( "mkg-u95.rom", 0x200000, 0x80000, CRC(a002a155) SHA1(3cf7909e92bcd428063596fc5b9953e0000d6eca) )
+ ROM_LOAD ( "mkg-u96.rom", 0x280000, 0x80000, CRC(dcee8492) SHA1(a912b74d3b26ebd1b1613cc631080f83ececeaf8) )
+ ROM_LOAD ( "mkg-u97.rom", 0x300000, 0x80000, CRC(de88caef) SHA1(a7927b504dc56ca5c9048373977fe5743b0a3f0b) )
+ ROM_LOAD ( "mkg-u98.rom", 0x380000, 0x80000, CRC(37eb01b4) SHA1(06092460bd137e08d0f8df8560942ed877d40e09) )
+
+ ROM_LOAD ( "mkg-u106.rom", 0x400000, 0x80000, CRC(45acaf21) SHA1(5edd36c55f4e5d3c74fb85171728ec0a58284b12) )
+ ROM_LOAD ( "mkg-u107.rom", 0x480000, 0x80000, CRC(2a6c10a0) SHA1(cc90923c44f2961b945a0fd0f85ecc2ba04af2cb) )
+ ROM_LOAD ( "mkg-u108.rom", 0x500000, 0x80000, CRC(23308979) SHA1(0b36788624a1cf0d3f4c895be5ba967b8dfcf85e) )
+ ROM_LOAD ( "mkg-u109.rom", 0x580000, 0x80000, CRC(cafc47bb) SHA1(8610af6e52f7089ff4acd850c53ab8b4119e4445) )
+ROM_END
+
+GAME( 1992, mkla4d, mk, yunit_adpcm_6bit_fast, mkla4, midyunit_state, mkyunit, ROT0, "Midway", "Mortal Kombat (rev 4.0 09/28/92)", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/mitchell.cpp b/docs/release/src/hbmame/drivers/mitchell.cpp
new file mode 100644
index 00000000000..bd488127a70
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/mitchell.cpp
@@ -0,0 +1,24 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/mitchell.cpp"
+
+ROM_START( mitcdemo )
+ ROM_REGION( 0xa0000, "maincpu", 0 )
+ ROM_LOAD( "md_04.bin", 0x50000, 0x08000, CRC(f0ed5c22) SHA1(b8e26a09fca279d627bd700c31a82ffc18483192) )
+ ROM_CONTINUE( 0x00000, 0x08000 )
+ ROM_LOAD_OPTIONAL( "pang_02.bin", 0x60000, 0x20000, CRC(3f15bb61) SHA1(4f74ee25f32a201482840158b4d4c7aca1cda684) )
+ ROM_LOAD_OPTIONAL( "pang_03.bin", 0x10000, 0x20000, CRC(0c8477ae) SHA1(a31a8c00407dfc3017d56e29fac6114b73248030) )
+
+ ROM_REGION( 0x100000, "gfx1", 0 )
+ ROM_LOAD( "md_09.bin", 0x00000, 0x20000, CRC(f76acc9a) SHA1(31004f441fc56efb692e2e52c4ecc44748185d0a) )
+ ROM_LOAD( "md_11.bin", 0x80000, 0x20000, CRC(48f92e6f) SHA1(6c51cccf5bcf7b3bfe6579a95516a850e99c9b76) )
+
+ ROM_REGION( 0x040000, "gfx2", 0 )
+ ROM_LOAD( "md10.bin", 0x00000, 0x20000, CRC(709a27b6) SHA1(b7e8d124ee207e75c420762d336a97f4cf4054f6) )
+ ROM_LOAD( "md9.bin", 0x20000, 0x20000, CRC(47de1ec7) SHA1(45bff13a6cdf58bc425fdc3cd2ae22d40d69a2c2) )
+
+ ROM_REGION( 0x80000, "oki", 0 )
+ ROM_LOAD_OPTIONAL( "bb1.bin", 0x00000, 0x20000, CRC(c52e5b8e) SHA1(933b954bfdd2d67e28b032ffabde192531249c1f) )
+ROM_END
+
+GAME( 1989, mitcdemo, 0, pang, pang, mitchell_state, pangb, ROT0, "Charles Doty", "Demo - Mitchell", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/mmagic.cpp b/docs/release/src/hbmame/drivers/mmagic.cpp
new file mode 100644
index 00000000000..d19e0fe957b
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/mmagic.cpp
@@ -0,0 +1,346 @@
+// 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"
+#include "sound/samples.h"
+#include "screen.h"
+#include "speaker.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_samples(*this, "samples")
+ , m_vram(*this, "vram")
+ , m_tiles(*this, "tiles")
+ , m_colors(*this, "colors")
+ , m_ball_x(0x00)
+ , m_ball_y(0x00)
+ , m_color(0x00)
+ , m_audio_sw(0x80)
+ {}
+
+ 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_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+
+private:
+ virtual void machine_start();
+ required_device<cpu_device> m_maincpu;
+ required_device<screen_device> m_screen;
+ required_device<palette_device> m_palette;
+ required_device<samples_device> m_samples;
+ required_shared_ptr<uint8_t> m_vram;
+ required_region_ptr<uint8_t> m_tiles;
+ required_region_ptr<uint8_t> m_colors;
+ uint8_t m_ball_x;
+ uint8_t m_ball_y;
+ uint8_t m_color;
+ uint8_t m_audio_sw;
+};
+
+
+//**************************************************************************
+// 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_t 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_t 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_t code = m_vram[(y * 32) + x] & 0x7f;
+
+ // normal palette 00..7f, alternate palette 80..ff
+ uint8_t color = m_colors[code | (BIT(m_color, 6) << 7)];
+
+ // draw one tile
+ for (int tx = 0; tx < 12; tx++)
+ {
+ uint8_t 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
+//**************************************************************************
+
+static const char *const mmagic_sample_names[] =
+{
+ "*mmagic",
+ "4",
+ "3",
+ "5",
+ "2",
+ "2-2",
+ "6",
+ "6-2",
+ "1",
+ 0
+};
+
+WRITE8_MEMBER( mmagic_state::audio_w )
+{
+ data ^= 0xff;
+ if (data != m_audio_sw)
+ {
+ if (BIT(data, 7))
+ m_samples->start(0, m_audio_sw & 7);
+
+ m_audio_sw = 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
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+ MCFG_SOUND_ADD("samples", SAMPLES, 0)
+ MCFG_SAMPLES_CHANNELS(1)
+ MCFG_SAMPLES_NAMES(mmagic_sample_names)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
+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 )
diff --git a/docs/release/src/hbmame/drivers/model2.cpp b/docs/release/src/hbmame/drivers/model2.cpp
new file mode 100644
index 00000000000..3e7488fcf06
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/model2.cpp
@@ -0,0 +1,53 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/model2.cpp"
+
+ROM_START( srallyp )
+ ROM_REGION( 0x200000, "maincpu", 0 ) // i960 program
+ ROM_LOAD32_WORD( "srallyp.ic12", 0x000000, 0x080000, CRC(926632ab) SHA1(7a37813f3d59b8e6e68220aa3120460b1ce5b33d) )
+ ROM_LOAD32_WORD( "srallyp.ic13", 0x000002, 0x080000, CRC(c93b33f1) SHA1(8477a05e44c1c9ee5e99eaa9d31cd9905ebf8c26) )
+
+ ROM_REGION32_LE( 0x2400000, "user1", 0 ) // Data
+ ROM_LOAD32_WORD( "mpr-17746.10", 0x000000, 0x200000, CRC(8fe311f4) SHA1(f4ada8e5c906fc384bed1b96f09cdf313f89e825) )
+ ROM_LOAD32_WORD( "mpr-17747.11", 0x000002, 0x200000, CRC(543593fd) SHA1(5ba63a77e9fc70569af21d50b3171bc8ff4522b8) )
+ ROM_LOAD32_WORD( "mpr-17744.8", 0x400000, 0x200000, CRC(71fed098) SHA1(1d187cad375121a45348d640edd3cc7dce658d28) )
+ ROM_LOAD32_WORD( "mpr-17745.9", 0x400002, 0x200000, CRC(8ecca705) SHA1(ed2b3298aad6f4e52dc672a0168183e457564b43) )
+ ROM_LOAD32_WORD( "mpr-17884.6", 0x800000, 0x200000, CRC(4cfc95e1) SHA1(81d927b8c4f9d0c4c5e29d676b30f30f83751fdc) )
+ ROM_LOAD32_WORD( "mpr-17885.7", 0x800002, 0x200000, CRC(a08d2467) SHA1(9449ac8f8f9ce8d8e536b05a91e46841fed7f2d0) )
+
+ ROM_REGION( 0x800000, "tgp", 0 ) // TGP program? (COPRO socket)
+ ROM_LOAD32_WORD( "mpr-17754.28", 0x000000, 0x200000, CRC(81a84f67) SHA1(c0a9b690523a529e4015e9af10dc3fb2a1726f08) )
+ ROM_LOAD32_WORD( "mpr-17755.29", 0x000002, 0x200000, CRC(2a6e7da4) SHA1(e60803ae951489fe47d66731d15c32249ca547b4) )
+
+ ROM_REGION( 0x010000, "drivecpu", 0 ) // Drive I/O program
+ ROM_LOAD( "epr-17891.ic12", 0x000000, 0x010000, CRC(9a33b437) SHA1(3e8f210aa5159e78f640126cb5ce7f05f22560f2) )
+
+ ROM_REGION( 0x2000000, "user2", 0 ) // Models
+ ROM_LOAD32_WORD( "mpr-17748.16", 0x000000, 0x200000, CRC(3148a2b2) SHA1(283cc49bfb6c6381a7ead9273fd097dca5b981b6) )
+ ROM_LOAD32_WORD( "mpr-17750.20", 0x000002, 0x200000, CRC(232aec29) SHA1(4d470e71df61298282c356814e2d151fda323fb6) )
+ ROM_LOAD32_WORD( "mpr-17749.17", 0x400000, 0x200000, CRC(0838d184) SHA1(704175c8b29e4c989afcb7be42e7e0e096740eaf) )
+ ROM_LOAD32_WORD( "mpr-17751.21", 0x400002, 0x200000, CRC(ed87ac62) SHA1(601542149d33ca52a47536b4b0af47bf1fd87eb2) )
+
+ ROM_REGION( 0x1000000, "user3", 0 ) // Textures
+ ROM_LOAD32_WORD( "mpr-17753.25", 0x000000, 0x200000, CRC(6db0eb36) SHA1(dd5fd3c9592360d3e95623ac2491e6faabe9dbcb) )
+ ROM_LOAD32_WORD( "mpr-17752.24", 0x000002, 0x200000, CRC(d6aa86ce) SHA1(1d342f87d1af1e5438d1ae818b1b14268e765897) )
+
+ ROM_REGION( 0x20000, "cpu4", 0) // Communication program
+ ROM_LOAD( "epr-16726.bin", 0x000000, 0x020000, CRC(c179b8c7) SHA1(86d3e65c77fb53b1d380b629348f4ab5b3d39228) )
+
+ ROM_REGION( 0x100000, "audiocpu", 0 ) // Sound program
+ ROM_LOAD16_WORD_SWAP( "epr-17890a.30", 0x080000, 0x040000, CRC(5bac3fa1) SHA1(3635333d36463b6fab25560ed918e05138f964dc) )
+
+ ROM_REGION( 0x800000, "scsp", 0 ) // Samples
+ ROM_LOAD( "mpr-17756.31", 0x000000, 0x200000, CRC(7725f111) SHA1(1f1ee3f19a6bcf57bc5a1c7dd64ee83f8b81f084) )
+ ROM_LOAD( "mpr-17757.32", 0x200000, 0x200000, CRC(1616e649) SHA1(1d3a0e441d150ada0535a9d50e2f69dd4b99c584) )
+ ROM_LOAD( "mpr-17886.36", 0x400000, 0x200000, CRC(54a72923) SHA1(103c4838b27378c834c08d29d6fb6ba95e7f9d03) )
+ ROM_LOAD( "mpr-17887.37", 0x600000, 0x200000, CRC(38c31fdd) SHA1(a85f05160b060d9d4a431aaa73cfc03f24214fb9) )
+
+ MODEL2_CPU_BOARD
+ MODEL2A_VID_BOARD
+ROM_END
+
+
+
+GAME( 2000?, srallyp, srallyc, srallyc, srallyc, model2_state, srallyc, ROT0, "Kyle Hodgetts", "Sega Rally Pro Drivin'", 0 )
diff --git a/docs/release/src/hbmame/drivers/monaco.cpp b/docs/release/src/hbmame/drivers/monaco.cpp
new file mode 100644
index 00000000000..8331083e2a4
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/monaco.cpp
@@ -0,0 +1,2250 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+/*
+Monaco GP Simulator v0.1
+http://www.jps.net/camilty/monman.htm
+Phil Stroffolino
+
+To Do:
+- abstract and externalize in-game parameters (speeds,accel,timing)
+- fix distribution of computer car
+- computer cars should avoid rescue car lane when present
+- computer cars should move to center in bridge zone
+- player lives not hooked up
+- high score tracking
+- extended play colors
+
+General:
+ Score Increases as a function of the player's speed.
+ Speed of Terrain scrolling is independent.
+
+Computer Cars:
+ The bridge section is different from the others (besides all the cars going
+ faster after so many points(6K and 8K).
+
+Display Panel:
+ The cockpit model displays TIME (2 digit), top 5 scores (4 digits each),
+ your Score (4 digits), Players to Date (3 digits)(daily), and
+ Ranking (3 digits) (this is final score ranking, not position during the game).
+
+ The top 999 high scores are internally recorded in a RAM.
+ The player's ranking is updated only after gamplay is finished (during the
+ fanfare).
+
+Timed Play:
+ X000-X295 A-Smooth Zone
+ X295-X450 B-Slip Zone
+ X450-X795 A-Smooth Zone
+ X795-X000 C-Tunnel
+
+Extended Play:
+ X000-X095 A-Smooth Zone
+ X095-X150 D-Gravel Zone
+ X150-X295 A-Smooth Zone
+ X295-X475 B-Slip Zone
+ X475-X595 A-Smooth Zone
+ X595-X635 E-Bridge Zone
+ X635-X795 A-Smooth Zone
+ X795-X000 C-Tunnel Zone
+
+Oil Slicks (pool):
+ X185 (during zone A)
+ X685 (during zone A)
+ After 8000 points, two pools come out in succession
+ (the second about 20-30 points from the first).
+
+Rescue Car (firetruck)
+ The rescue car only appears during Extended play. Tolerance -50 (not+)
+ X000
+ X075
+ X125
+ X250
+ X500
+
+ The rescue car appears in a mid-right lane. It does not move side to side,
+ it just moves slowly up the screen until it goes off the screen.
+
+ In extended play, the rescue car was observed to come out AT LEAST ONCE
+ during each 1000 points cycle. I have observed the rescue car coming
+ out as much a 3 TIMES in one 1000 point cycle.
+ I could not find a pattern in the time or count interval between the
+ rescue cars. However, 72% were between 750 and 1250 point intervals
+ (most around 875) while the remaining 28% were 500 point intervals or
+ lower. Therfore, we can narrow down WHERE the rescue cars appear, but
+ IF it is going to appear seems to have some randomness to it.
+
+
+notes:
+ when the player first appears (game start, after a spinout, after
+ a crash), the player's car shows up on the extreme right of the
+ screen and is totally invulnerable (even if over water on the
+ bridge scene!). The road doesn't scroll at all until you give the
+ car some gas. Note that once you start moving, you can never
+ completely come to a stop.
+
+ Once you move to left onto the center part of the
+ road, normal collision behavior takes over. You earn no points
+ while in the invulnerable state. The player can remain in this
+ state forever during timed play (until time runs out). In extended
+ play, the player's car will explode after several seconds of driving.
+
+---------------------------------------------------------------------------
+
+Board 96598-P is an oscillator board that generates the game sounds.
+It is activated by outputs from Board Assy A (96577X).
+
+Board Assy's A (96577X) and B (96578X) are the main guts of the gameplay
+and contain the sprite roms.
+
+Board Assy A
+- accepts all of the game inputs
+- sends the signals for the sounds to the Oscillator board
+- outputs to the L.E.D. score display board
+- directly interacts with Board Assy B
+ Components:
+ Start Timer Control
+ Player Control (pedal, steering, shifter)
+ My Car light control, explosion, and pool (oil slick) skid
+ Other Car Control
+
+Board Assy B
+- outputs the video
+- outputs to the L.E.D. score display board
+- directly interacts with Board Assy A.
+ Components:
+ Display of Letter
+ Road Movement Horizontal
+ Road Movement Vertical (Right and Left)
+ Background (sprite) coloring
+ Road Object (tunnel, bridge, water) control
+ Signal Sync
+ Rescue Car, Player Car, Bridge--Video and Control
+
+ (On the second set, boards A and B have different part numbers
+ (97091X and 97092X) and two less roms. These boards were made
+ later then the first set. I have interchanged these boards with
+ each other, and they seem to be interchangable, the only
+ difference seems to be the rom size, which only 2 of the roms
+ utilize the full 1024 bytes (second set).)
+
+Oscillator Board 96598
+ROM ID IC#
+PRm-40 IC21 PRm-40 <both type 6331-1, 16 pin>
+ engine (constant; pitch varies with speed)
+ passing (two variations)
+ bonus (chimes)
+ fanfare
+ explosion
+ slip zone
+ siren (rescue car)
+*/
+
+/* The following changes were done by Robbbert on 2007-Dec-08:
+
+1. Add siren sound for ambulance
+2. Add slip sound for puddle
+3. Save and display high scores, score, number of games played, and ranking
+4. Play fanfare sound if high score exceeded
+5. Fix the gears so that each has its own max speed and acceleration rates
+6. Keep track of extra lives (er, cars).
+7. In extended play, you lose a life. When they are all gone, the game ends
+8. When game ends, all sounds are turned off, except Crash sound is allowed to finish, and fanfare can play.
+9. When you crash, you nearly stop, instead of continuing at full speed.
+10. Once you start moving, you cannot completely stop (as documented above)
+11. Sound volume adjustment confined to the machine driver.
+12. Volume adjusted so the sound is no longer grossly overdriven.
+13. Add the overlay file (it was always compiled but never used), and activated the LEDs.
+14. Add support for Mr.Do artwork.
+15. Add speedometer
+
+There is a bunch more things to be done
+
+1. Don't get points while not on the track
+2. Fall in the water if you don't line up for the bridge
+3. Show the bridge warning before you reach the bridge
+4. Different engine sounds depending on the speed
+5. Add sounds when passing other cars
+6. Plus some of what's listed above by the original author
+*/
+
+#include "emu.h"
+#include "cpu/z80/z80.h"
+#include "sound/samples.h"
+#include "screen.h"
+#include "speaker.h"
+#include "monaco.lh"
+
+
+#define kRESCUE_CAR_SPEED (1.75)
+#define SCREEN_WIDTH 384 /* 12 car lengths */
+#define SCREEN_HEIGHT 240 /* 15 car widths */
+#define BRIDGE_YPOS ((SCREEN_HEIGHT-16)/2-8)
+#define PAGE_SIZE (14*32)
+#define NUM_COMPUTER_CARS 4
+
+/* red */
+#define TEXT_GAMEOVER 2
+#define TEXT_EXTENDEDPLAY 0
+
+/* blue */
+#define TEXT_DEPOSITCOIN 3
+#define TEXT_START 1
+
+enum
+{
+ GFX_UNKNOWN,GFX_EXPLOSION,GFX_PLAYER,GFX_SHAKE,GFX_SPINOUT1,GFX_SPINOUT2,
+ GFX_SPRAY,GFX_COMPUTER,GFX_TEXT,
+ GFX_TREE,GFX_GRASS,GFX_SHRUB,GFX_HOUSE,
+ GFX_TUNNEL,GFX_POOL,GFX_BELT,
+ GFX_RESCUE_CAR,GFX_SIGNAL,GFX_DUMMY,
+ GFX_BRIDGE1,GFX_BRIDGE2
+};
+
+enum
+{
+ CYAN_PEN = 0x91,
+ BLACK_PEN = 0x94,
+ YELLOW_PEN = 0x95,
+ GREY_PEN = 0x96
+};
+
+enum
+{
+ RESCUE_CLUT = 0x50,
+ HOUSE_CLUT = 0x60,
+ WATER_CLUT = 0x70,
+ PLAYER_CLUT = 0x80,
+ TREE_CLUT = 0x84,
+ SHRUB_CLUT = 0x88,
+ GRASS_CLUT = 0x8c,
+ CYAN_CLUT = 0x90,
+ RED_CLUT = 0x92,
+ YELLOW_CLUT = 0x94
+};
+
+enum
+{
+ GREEN_CAR, YELLOW_CAR, /* slow */
+ CYAN_CAR, PURPLE_CAR, /* medium */
+ BLUE_CAR, /* fast */
+ NUM_COMPUTER_CAR_TYPES
+};
+
+enum
+{
+ PAGE_SMOOTH,
+ PAGE_SLIP,
+ PAGE_TUNNEL,
+ PAGE_GRAVEL,
+ PAGE_BRIDGE
+};
+
+enum
+{
+ COLLISION_CRASH,
+ COLLISION_POOL
+};
+
+enum monaco_mode
+{
+ MODE_ATTRACT,
+ /* cars zoom up the screen (max 2 on the screen at a time)
+ * player's car is not visible
+ * "GAME OVER" is centered near the middle-top
+ * "DEPOSIT COIN" is centered near the bottom
+ */
+ MODE_START,
+ MODE_INVULNERABLE,
+ MODE_NORMAL, /* driving */
+ MODE_GRAVEL,
+ MODE_SLIP1, /* skidding */
+ MODE_SLIP2,
+ MODE_SPINOUT1,
+ MODE_SPINOUT2,
+ MODE_SPINOUT3,
+ MODE_SPINOUT4,
+ MODE_CRASH1,
+ MODE_CRASH2,
+ MODE_CRASH3,
+ MODE_CRASH4
+};
+
+class monaco_state : public driver_device
+{
+public:
+ monaco_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag)
+ , m_samples(*this, "samples")
+ , m_p_ram(*this, "ram")
+ , m_gfxdecode(*this, "gfxdecode")
+ , m_palette(*this, "palette")
+ { }
+
+ DECLARE_READ8_MEMBER(monaco_ram_r);
+ DECLARE_WRITE8_MEMBER(monaco_ram_w);
+ DECLARE_DRIVER_INIT(monaco);
+ INTERRUPT_GEN_MEMBER(monaco_interrupt);
+ DECLARE_MACHINE_RESET(monaco);
+ DECLARE_VIDEO_START(monaco);
+ uint32_t screen_update_monaco(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+private:
+ struct monaco_gfx *m_monaco_gfx;
+ enum monaco_mode m_monaco_mode;
+ uint32_t monaco_word_r (uint16_t offset);
+ void monaco_word_w (uint16_t offset, uint32_t data);
+ int get_player_xpos( void );
+ void handle_collision( int sx, int sy, int width, int height, int type );
+ int read_coin();
+ void update_player_speed();
+ double get_player_delta( void );
+ void HandlePlayer();
+ void update_computer_cars( void );
+ void HandleRescue( void );
+ void HandlePool( void );
+ void GameOver();
+ void HandleEvents();
+ void draw_computer( bitmap_ind16 &bitmap, const rectangle clip);
+ void draw_pool( bitmap_ind16 &bitmap, const rectangle clip);
+ void draw_player( bitmap_ind16 &bitmap, const rectangle clip);
+ void draw_strip( bitmap_ind16 &bitmap, int sy, int x0, int x1, int xpos, int pen);
+ void DrawSmoothZone( bitmap_ind16 &bitmap, const rectangle clip, int xpos);
+ void DrawSlipZone( bitmap_ind16 &bitmap, const rectangle clip, int xpos);
+ void DrawGravelZone( bitmap_ind16 &bitmap, const rectangle clip, int xpos);
+ void DrawBridgeZone( bitmap_ind16 &bitmap, const rectangle clip, int xpos);
+ void DrawTunnelZone( bitmap_ind16 &bitmap, int xpos);
+ void DrawTunnelWall( bitmap_ind16 &bitmap, const rectangle clip, int xpos);
+ void draw_light_helper( bitmap_ind16 &bitmap, int xpos);
+ void draw_wall( bitmap_ind16 &bitmap, const rectangle clip);
+ void draw_light( bitmap_ind16 &bitmap);
+ void draw_page( bitmap_ind16 &bitmap, const rectangle clip, int which, int xpos);
+ void draw_background( bitmap_ind16 &bitmap, const rectangle clip);
+ void draw_text( bitmap_ind16 &bitmap, const rectangle clip);
+ void draw_leds( bitmap_ind16 &bitmap);
+ void draw_signal( bitmap_ind16 &bitmap);
+ int m_anim_timer;
+
+ /* LED display */
+ uint16_t m_plays;
+ uint16_t m_rank;
+ uint16_t m_rank_display; // shows 0 until game ends
+ uint32_t m_score;
+ uint32_t m_bonus_score;
+ uint8_t m_in_ext_play;
+ uint8_t m_gear;
+ uint16_t m_time;
+ uint8_t m_lives;
+ int m_bShaking;
+ double m_speed;
+ double m_player_ypos;
+ double m_computer_speed;
+ double m_xpos[NUM_COMPUTER_CARS];
+ double m_ypos[NUM_COMPUTER_CARS];
+ double m_dy[NUM_COMPUTER_CARS];
+ double m_rescue_xpos;
+ double m_pool_xpos;
+ double m_scroll;
+ double m_distance;
+ int m_ticks;
+ int m_page_current;
+ int m_page_next;
+ int m_page_next2;
+
+ double m_track_bottom_inset;
+ double m_track_top_inset;
+ double m_track_bottom_delta;
+ double m_track_top_delta;
+ int m_bSignalVisible;
+ int m_left_text;
+ int m_right_text;
+ int m_bExtendedPlay;
+ int m_left_page, m_right_page;
+ int m_top_inset, m_bottom_inset;
+ int m_player_x, m_player_y, m_player_tile, m_player_splash;
+ int m_pool_x, m_pool_y;
+ int m_rescue_x, m_rescue_y, m_rescue_tile;
+ int m_x[NUM_COMPUTER_CARS];
+ int m_y[NUM_COMPUTER_CARS];
+ int m_tile[NUM_COMPUTER_CARS];
+ int m_color[NUM_COMPUTER_CARS];
+ uint32_t m_led_high1;
+ uint32_t m_led_high2;
+ uint32_t m_led_high3;
+ uint32_t m_led_high4;
+ uint32_t m_led_high5;
+ uint32_t m_led_score;
+ uint16_t m_led_time;
+ uint16_t m_led_rank;
+ uint16_t m_led_plays;
+ uint16_t m_led_lives;
+ uint16_t m_led_gear;
+ uint16_t m_led_speed;
+ required_device<samples_device> m_samples;
+ required_shared_ptr<uint8_t> m_p_ram;
+ required_device<gfxdecode_device> m_gfxdecode;
+ required_device<palette_device> m_palette;
+};
+
+
+enum
+{
+ eSAMPLE_PASS1,
+ eSAMPLE_PASS2,
+ eSAMPLE_CRASH,
+ eSAMPLE_ENGINE,
+ eSAMPLE_EXTEND,
+ eSAMPLE_FANFARE,
+ eSAMPLE_SIREN,
+ eSAMPLE_SLIP,
+// eSAMPLE_GRAVEL
+};
+
+#define DOWN 0x01
+#define UP 0x02
+#define RIGHT 0x04
+#define LEFT 0x08
+#define COIN 0x10
+#define ACCEL1 0x20
+#define ACCEL2 0x40
+#define ACCEL3 0x80
+
+#define IS_PRESSED(key) (ioport("IN0")->read() & key)
+
+#define EXT_SCORE (2000<<8) // number of points needed to get extended play, 2000
+#define FIRST_TIME (90<<8) // number of seconds when coin inserted, 90
+
+
+READ8_MEMBER( monaco_state::monaco_ram_r )
+{
+ return m_p_ram[offset];
+}
+
+WRITE8_MEMBER( monaco_state::monaco_ram_w )
+{
+ m_p_ram[offset] = data;
+}
+
+uint32_t monaco_state::monaco_word_r (uint16_t offset)
+{
+ address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM);
+ uint8_t byte0 = monaco_ram_r (space, (offset << 2));
+ uint8_t byte1 = monaco_ram_r (space, (offset << 2) + 1);
+ uint8_t byte2 = monaco_ram_r (space, (offset << 2) + 2);
+ uint8_t byte3 = monaco_ram_r (space, (offset << 2) + 3);
+ return (byte3<<24) | (byte2<<16) | (byte1<<8) | byte0;
+}
+
+void monaco_state::monaco_word_w (uint16_t offset, uint32_t data)
+{
+ address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM);
+ uint8_t byte0 = data & 0xff;
+ uint8_t byte1 = (data & 0xff00) >> 8;
+ uint8_t byte2 = (data & 0xff0000) >> 16;
+ uint8_t byte3 = (data & 0xff000000) >> 24;
+ monaco_ram_w (space, (offset << 2), byte0);
+ monaco_ram_w (space, (offset << 2) + 1, byte1);
+ monaco_ram_w (space, (offset << 2) + 2, byte2);
+ monaco_ram_w (space, (offset << 2) + 3, byte3);
+}
+
+int monaco_state::get_player_xpos( void )
+{
+ return SCREEN_WIDTH-32-m_speed;
+}
+
+void monaco_state::handle_collision( int sx, int sy, int width, int height, int type )
+{
+ int px, py;
+
+ if( m_monaco_mode == MODE_NORMAL )
+ {
+ px = get_player_xpos();
+ py = m_player_ypos + 8;
+
+ if( px < sx + width &&
+ sx < px + 32 &&
+ py < sy + height &&
+ sy < py + 16 )
+ {
+ m_samples->start( 3, eSAMPLE_CRASH );
+ m_anim_timer = 0;
+ m_speed = 15; /* you almost stop when you crash */
+ if( type == COLLISION_CRASH )
+ {
+ if( !m_in_ext_play )
+ {
+ m_monaco_mode = MODE_SPINOUT1;
+ }
+ else
+ {
+ m_monaco_mode = MODE_CRASH1;
+ m_lives--;
+ }
+ }
+ else if( type == COLLISION_POOL )
+ {
+ m_pool_xpos = 512;
+ m_monaco_mode = MODE_SLIP1;
+ }
+ }
+ }
+}
+
+/*****************************************************************/
+
+int monaco_state::read_coin()
+{
+ static int old_trigger;
+ if( IS_PRESSED(COIN) )
+ {
+ old_trigger = 1;
+ }
+ else {
+ if( old_trigger ){
+ old_trigger = 0;
+ return 1;
+ }
+ old_trigger = 0;
+ }
+ return 0;
+}
+
+void monaco_state::update_player_speed()
+{
+ double desired_speed, min_speed, max_speed = 44;
+ int accel = 0;
+
+ if( IS_PRESSED(ACCEL1) ) accel = 1;
+ if( IS_PRESSED(ACCEL2) ) accel = 2;
+ if( IS_PRESSED(ACCEL3) ) accel = 3;
+
+ /* gearstick is a mechanical device which can be moved anytime */
+ if( IS_PRESSED(UP) )
+ m_gear = 1;
+ else
+ if( IS_PRESSED(DOWN) )
+ m_gear = 0;
+
+ if (m_monaco_mode == MODE_ATTRACT)
+ {
+ m_speed = 0;
+ m_in_ext_play = 0;
+ return;
+ }
+ else
+ if( m_monaco_mode == MODE_START )
+ {
+ if( accel ) m_monaco_mode = MODE_INVULNERABLE;
+ else return;
+ }
+
+ if (m_speed)
+ min_speed = m_gear?0.5:0.25;
+ else
+ min_speed = 0;
+
+ if (m_gear)
+ {
+ max_speed = 125;
+ if (m_score > 6000<<8) max_speed = 152;
+ if (m_score > 8000<<8) max_speed = 180;
+ }
+
+ /* min: 0; max: 6 */
+ /* 30 is derived by absolute maximum speed (above) divided by 6 */
+ desired_speed = 30*(accel?(m_gear*3+accel):min_speed);
+
+ /* 1st gear */
+ if (!m_gear)
+ {
+ if (desired_speed > m_speed) m_speed += 1;
+
+ if (desired_speed < m_speed) m_speed -= 4;
+ }
+ else
+ {
+ if (desired_speed > m_speed) m_speed += 0.4;
+
+ if (desired_speed < m_speed) m_speed -= 2;
+ }
+
+ if (m_speed < min_speed) m_speed = min_speed;
+
+ if (m_speed > max_speed) m_speed = max_speed;
+}
+
+double monaco_state::get_player_delta( void )
+{
+ if( m_monaco_mode == MODE_ATTRACT || m_monaco_mode == MODE_START ) return 0;
+ return m_speed/16.0;
+}
+
+void monaco_state::HandlePlayer()
+{
+ double dy = 0;
+ int sy = m_player_ypos;
+ update_player_speed();
+ if( IS_PRESSED(RIGHT) && sy>0 ) dy-=1.0;
+ if( IS_PRESSED(LEFT) && sy<SCREEN_HEIGHT-32 ) dy+=1.0;
+ if( m_page_current == PAGE_SLIP ) dy = dy*0.5;
+ m_player_ypos += dy;
+}
+
+/*****************************************************************/
+
+void monaco_state::update_computer_cars( void )
+{
+ int i;
+ int delta = get_player_delta();
+ for( i=0; i<NUM_COMPUTER_CARS; i++ )
+ {
+ int top_inset = m_track_top_inset;
+ int bottom_inset = m_track_bottom_inset;
+ int sx,sy;
+ m_xpos[i] += delta-m_computer_speed;
+ if( m_xpos[i] < -256 )
+ m_xpos[i] += SCREEN_WIDTH*2;
+ else
+ if( m_xpos[i] > SCREEN_WIDTH + 256 )
+ m_xpos[i] -= SCREEN_WIDTH*2;
+
+ m_ypos[i] += m_dy[i];
+
+ sx = m_xpos[i];
+ sy = m_ypos[i];
+
+ if( ( m_dy[i]<0 && sy<top_inset ) ||
+ ( m_dy[i]>0 && sy+16>SCREEN_HEIGHT-bottom_inset ) )
+ {
+ m_dy[i] *= -1;
+ }
+
+ handle_collision( sx-32, sy, 32, 16, COLLISION_CRASH );
+ }
+}
+
+#define DELTA_TIME (256.0/60)
+
+void monaco_state::HandleRescue( void )
+{
+ if( m_rescue_xpos > -64 )
+ {
+ m_rescue_xpos -= kRESCUE_CAR_SPEED;
+ handle_collision(
+ m_rescue_xpos,
+ (SCREEN_HEIGHT-32)/2,
+ 64,
+ 32,
+ COLLISION_CRASH );
+ }
+}
+
+void monaco_state::HandlePool( void )
+{
+ if( m_pool_xpos < SCREEN_WIDTH )
+ {
+ m_pool_xpos += get_player_delta();
+ handle_collision(
+ m_pool_xpos,
+ (SCREEN_HEIGHT-32)/2,
+ 32,
+ 32,
+ COLLISION_POOL );
+ }
+}
+
+void monaco_state::GameOver()
+{
+ m_monaco_mode = MODE_ATTRACT; /* this causes speed to be zero */
+ m_rank_display = m_rank; /* show rank on led display */
+ monaco_word_w (m_rank, m_score); /* save players score in RAM */
+ m_led_high1 = monaco_word_r(1);
+ m_led_high2 = monaco_word_r(2);
+ m_led_high3 = monaco_word_r(3); /* show the 5 highest scores on led display */
+ m_led_high4 = monaco_word_r(4);
+ m_led_high5 = monaco_word_r(5);
+ m_samples->stop(0); /* turn off engine sounds */
+ m_samples->stop(1);
+ m_samples->stop(2);
+}
+
+void monaco_state::HandleEvents()
+{
+ int score = m_score>>8;
+ int event = (score)%1000;
+
+ if (m_monaco_mode == MODE_ATTRACT) return;
+
+ if( m_page_current == PAGE_SMOOTH &&
+ (score == 8000 || score == 8030 || event == 185 || event == 685) )
+ {
+ m_pool_xpos = -32<<8;
+ }
+
+ if( m_in_ext_play )
+ {
+ /* Extended Play */
+ if( m_rescue_xpos<= -64 &&
+ (machine().rand()&3) == 0 &&
+ (event == 0 || event == 75 || event == 125 || event == 250 || event == 500) )
+ {
+ m_rescue_xpos = SCREEN_WIDTH;
+ m_samples->start( 1, eSAMPLE_SIREN );
+ }
+
+ if( event == 0 ) m_page_next2 = PAGE_SMOOTH;
+ else if( event == 95 ) m_page_next2 = PAGE_GRAVEL;
+ else if( event == 150 ) m_page_next2 = PAGE_SMOOTH;
+ else if( event == 295 ) m_page_next2 = PAGE_SLIP;
+ else if( event == 475 ) m_page_next2 = PAGE_SMOOTH;
+ else if( event == 595 ) m_page_next2 = PAGE_BRIDGE;
+ else if( event == 635 ) m_page_next2 = PAGE_SMOOTH;
+ else if( event == 795 ) m_page_next2 = PAGE_TUNNEL;
+ }
+ else
+ {
+ /* Timed Play */
+ if( event == 0 ) m_page_next2 = PAGE_SMOOTH;
+ else if( event == 295 ) m_page_next2 = PAGE_SLIP;
+ else if( event == 450 ) m_page_next2 = PAGE_SMOOTH;
+ else if( event == 795 ) m_page_next2 = PAGE_TUNNEL;
+ }
+
+ if ((!m_time) && (!m_in_ext_play))
+ {
+ if (m_score > EXT_SCORE)
+ {
+ /* Turn On Extended Play */
+ m_in_ext_play = 1;
+// m_samples->start( 2, eSAMPLE_EXTEND );
+ }
+ else
+ m_lives = 0;
+ }
+
+ if ((!m_lives) && (m_monaco_mode != MODE_ATTRACT))
+ {
+ /* Game Over */
+ if (m_rank == 1) m_samples->start (4, eSAMPLE_FANFARE);
+
+ GameOver();
+ }
+}
+
+INTERRUPT_GEN_MEMBER( monaco_state::monaco_interrupt )
+{
+ int i;
+ double delta = get_player_delta();
+
+ HandleRescue();
+ HandlePool();
+ HandlePlayer();
+ /* increase score */
+ m_score += m_speed;
+ /* cap the score at 9999 */
+ if ( m_score > (9999<<8 | 255)) m_score = (9999<<8 | 255);
+
+ /* Bonus car at 2000, 4000, 6000, 8000 points */
+
+ if ( m_score < 9000<<8) m_bonus_score += m_speed;
+
+ if ( m_bonus_score > 2000<<8 )
+ {
+ m_lives++;
+ m_bonus_score -= 2000<<8;
+ m_samples->start( 2, eSAMPLE_EXTEND );
+ }
+ /* decrease time remaining */
+ if( m_time>0 )
+ {
+ if( m_monaco_mode != MODE_ATTRACT && m_monaco_mode != MODE_START )
+ {
+ if( m_time<DELTA_TIME ) m_time = 0;
+ else m_time -= DELTA_TIME;
+ }
+ }
+ /* adjust ranking if a score is passed */
+ if (m_rank > 1)
+ {
+ if (m_score > monaco_word_r (m_rank - 1))
+ {
+ monaco_word_w ( m_rank , monaco_word_r (m_rank - 1));
+ m_rank--;
+ }
+ }
+
+ HandleEvents();
+
+ switch( m_monaco_mode )
+ {
+ case MODE_ATTRACT:
+ m_pool_xpos = SCREEN_WIDTH;
+ m_rescue_xpos = -64;
+
+ if( read_coin() )
+ {
+ m_samples->start( 0, eSAMPLE_ENGINE, 1/*loop*/ );
+ m_score = 0;
+ m_bonus_score = 0;
+ m_rank_display = 0xffff; /* rank is blank till game ends */
+ m_lives = 1;
+ if (m_plays < 999) m_plays++;
+ m_rank = m_plays;
+ m_time = FIRST_TIME;
+ m_monaco_mode = MODE_START;
+ m_anim_timer = 0;
+ m_player_ypos = 0;//32;
+ }
+ default:
+ break;
+ }
+
+ m_scroll += delta;
+ if( m_scroll>=14*32 )
+ {
+ m_scroll -= 14*32;
+ m_page_current = m_page_next;
+ m_page_next = m_page_next2;
+ }
+
+ m_ticks++; /* for animation */
+
+ if( m_page_next != PAGE_TUNNEL && m_page_current != PAGE_TUNNEL &&
+ m_page_next != PAGE_BRIDGE && m_page_current != PAGE_BRIDGE )
+ {
+ /* delta: player speed */
+ m_track_bottom_inset += m_track_bottom_delta*delta/8;
+ m_track_top_inset += m_track_top_delta*delta/8;
+
+ if( m_track_bottom_inset <= 32 )
+ {
+ m_track_bottom_delta = 1;
+ }
+ else if( m_track_bottom_inset >= 96 )
+ {
+ m_track_bottom_delta = -1;
+ }
+
+ if( m_track_top_inset <= 32 )
+ {
+ m_track_top_delta = 1;
+ }
+ else if( m_track_top_inset >= 64 )
+ {
+ m_track_top_delta = -1;
+ }
+ }
+
+ switch( m_monaco_mode )
+ {
+ case MODE_ATTRACT:
+ break;
+ case MODE_START:
+ if( m_speed )
+ {
+ m_monaco_mode = MODE_INVULNERABLE;
+ m_anim_timer = 0;
+ }
+ break;
+
+ case MODE_INVULNERABLE:
+ m_anim_timer++;
+ if( m_anim_timer > 60*2 )
+ {
+ m_monaco_mode = MODE_NORMAL;
+ m_anim_timer = 0;
+ }
+ break;
+
+ case MODE_NORMAL:
+ break;
+
+ case MODE_GRAVEL:
+// m_samples->start (1, eSAMPLE_GRAVEL); There is no code to make this mode occur
+ break;
+
+ case MODE_SLIP1:
+ case MODE_SLIP2:
+ m_anim_timer++;
+ if( m_anim_timer>16 )
+ {
+ m_anim_timer = 0;
+ if( m_monaco_mode!=MODE_SLIP2 )
+ {
+ m_monaco_mode = MODE_SLIP2;
+ }
+ else
+ {
+ m_monaco_mode = MODE_NORMAL;
+ }
+ }
+ m_samples->start( 1, eSAMPLE_SLIP );
+ break;
+
+ case MODE_SPINOUT1:
+ case MODE_SPINOUT2:
+ case MODE_SPINOUT3:
+ case MODE_SPINOUT4:
+ if( m_player_ypos > 0 )
+ {
+ uint8_t temp = (m_anim_timer/2)&3;
+ if (temp == 0) m_monaco_mode = MODE_SPINOUT1;
+ else if (temp == 1) m_monaco_mode = MODE_SPINOUT2;
+ else if (temp == 2) m_monaco_mode = MODE_SPINOUT3;
+ else if (temp == 3) m_monaco_mode = MODE_SPINOUT4;
+ m_anim_timer++;
+ m_player_ypos-=2.0;
+ }
+ else
+ {
+ m_player_ypos = 0;
+ m_monaco_mode = MODE_INVULNERABLE;
+ m_anim_timer = 0;
+ }
+ if( m_speed > 40 )
+ {
+ m_speed-= 1.0;
+ }
+ break;
+
+ case MODE_CRASH1:
+ case MODE_CRASH2:
+ case MODE_CRASH3:
+ case MODE_CRASH4:
+ m_anim_timer++;
+ if( m_anim_timer>8 )
+ {
+ m_anim_timer = 0;
+ if( m_monaco_mode == MODE_CRASH1 ) m_monaco_mode = MODE_CRASH2;
+ else
+ if( m_monaco_mode == MODE_CRASH2 ) m_monaco_mode = MODE_CRASH3;
+ else
+ if( m_monaco_mode == MODE_CRASH3 ) m_monaco_mode = MODE_CRASH4;
+ else
+ {
+ m_monaco_mode = MODE_INVULNERABLE;
+ m_player_ypos = 0;
+ }
+ }
+ break;
+ default:
+ break;
+ }
+
+ if( m_monaco_mode == MODE_NORMAL )
+ {
+ if( m_player_ypos+16 > m_track_top_inset+8 &&
+ m_player_ypos+16 < SCREEN_HEIGHT - (m_track_bottom_inset+8) )
+ {
+ m_bShaking = 0;
+ }
+ else if( m_player_ypos+16 > m_track_top_inset+8 - 16 &&
+ m_player_ypos+16 < SCREEN_HEIGHT - (m_track_bottom_inset+8 - 16) )
+ {
+ /* brush roadside */
+ m_bShaking = 1;
+ }
+ else
+ {
+ /* crash wall */
+ m_monaco_mode = MODE_SPINOUT1;
+ m_anim_timer = 0;
+ m_bShaking = 1;
+ }
+ }
+ else
+ {
+ m_bShaking = 0;
+ }
+
+ update_computer_cars();
+
+ for( i=0; i<NUM_COMPUTER_CARS; i++ )
+ {
+ m_x[i] = m_xpos[i] - 32;
+ m_y[i] = m_ypos[i];
+ m_tile[i] = (m_ticks&2)>>1;
+ m_color[i] = i; /* hack */
+ }
+ m_rescue_x = m_rescue_xpos;
+ m_rescue_y = BRIDGE_YPOS;
+ m_rescue_tile = (m_ticks&2)>>1;
+ m_pool_x = m_pool_xpos;
+ m_pool_y = (SCREEN_HEIGHT-32)/2;
+ m_top_inset = m_track_top_inset;
+ m_bottom_inset = m_track_bottom_inset;
+ m_bSignalVisible = (m_page_next == PAGE_BRIDGE || m_page_next == PAGE_BRIDGE );
+ m_led_score = m_score;
+ m_led_gear = m_gear;
+ m_led_lives = m_lives;
+ m_led_time = m_time;
+ m_led_rank = m_rank_display;
+ // m_led_rank = m_rank; /* test to display real-time ranking */
+ m_led_plays = m_plays;
+ m_led_speed = m_speed;
+ m_right_page = m_page_current;
+ m_left_page = m_page_next;
+ m_left_text = -1;
+ m_right_text = -1;
+
+ /* we stretch the text so that it is proportioned correctly
+ ** compared to the rest of the in-game graphics
+ */
+
+ switch( m_monaco_mode )
+ {
+ case MODE_ATTRACT:
+ m_left_text = TEXT_GAMEOVER;
+ m_right_text = TEXT_DEPOSITCOIN;
+ break;
+
+ case MODE_START:
+ m_right_text = TEXT_START;
+ break;
+
+ default:
+ break;
+ }
+
+ if (m_in_ext_play) m_left_text = TEXT_EXTENDEDPLAY;
+
+ m_player_x = get_player_xpos();
+ m_player_y = m_player_ypos;
+ m_player_tile = -1;
+ m_player_splash = -1;
+ switch( m_monaco_mode )
+ {
+ case MODE_ATTRACT:
+ break;
+
+ case MODE_SLIP1:
+ m_player_splash = 0;
+ m_player_tile = (m_ticks&2)>>1;
+ break;
+
+ case MODE_SLIP2:
+ m_player_splash = 1;
+ m_player_tile = (m_ticks&2)>>1;
+ break;
+
+ case MODE_SPINOUT1:
+ m_player_tile = 2;
+ break;
+
+ case MODE_SPINOUT2:
+ m_player_tile = 3;
+ break;
+
+ case MODE_SPINOUT3:
+ m_player_tile = 4;
+ break;
+ case MODE_SPINOUT4:
+ m_player_tile = 5;
+ break;
+
+ case MODE_CRASH1:
+ case MODE_CRASH2:
+ case MODE_CRASH3:
+ case MODE_CRASH4:
+ m_player_tile = m_monaco_mode-MODE_CRASH1 + 6;
+ break;
+
+ default:
+ if( m_bShaking )
+ {
+ m_player_tile = 10+((m_ticks&4)>>2);
+ }
+ else
+ {
+ m_player_tile = (m_ticks&2)>>1;
+ }
+ break;
+ }
+
+ return;
+}
+
+/*********************************************/
+
+static ADDRESS_MAP_START( monaco_map, AS_PROGRAM, 8, monaco_state )/* fake */
+ AM_RANGE(0x0000, 0xefff) AM_ROM
+ AM_RANGE(0xf000, 0xffff) AM_READWRITE(monaco_ram_r,monaco_ram_w) AM_SHARE("ram") /* scores need 4000 bytes */
+ADDRESS_MAP_END
+
+static INPUT_PORTS_START( monaco )
+ PORT_START("IN0") /* fake */
+ PORT_BIT( DOWN, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY
+ PORT_BIT( UP, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY
+ PORT_BIT( RIGHT, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY
+ PORT_BIT( LEFT, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY
+ PORT_BIT( COIN, IP_ACTIVE_HIGH, IPT_COIN1 )
+ PORT_BIT( ACCEL1, IP_ACTIVE_HIGH, IPT_BUTTON1 )
+ PORT_BIT( ACCEL2, IP_ACTIVE_HIGH, IPT_BUTTON2 )
+ PORT_BIT( ACCEL3, IP_ACTIVE_HIGH, IPT_BUTTON3 )
+INPUT_PORTS_END
+
+/***************************************************************************/
+
+static gfx_layout tree_layout =
+{
+ 32,32,
+ 1, /* number of characters */
+ 2, /* number of bitplanes */
+ { 0,4 },
+ {
+ 0x003,0x002,0x001,0x000,0x103,0x102,0x101,0x100,
+ 0x203,0x202,0x201,0x200,0x303,0x302,0x301,0x300,
+ 0x403,0x402,0x401,0x400,0x503,0x502,0x501,0x500,
+ 0x603,0x602,0x601,0x600,0x703,0x702,0x701,0x700
+ },
+ {
+ 0x00,0x08,0x10,0x18,0x20,0x28,0x30,0x38,
+ 0x40,0x48,0x50,0x58,0x60,0x68,0x70,0x78,
+ 0x80,0x88,0x90,0x98,0xa0,0xa8,0xb0,0xb8,
+ 0xc0,0xc8,0xd0,0xd8,0xe0,0xe8,0xf0,0xf8
+ },
+ 0
+};
+
+static gfx_layout pool_layout =
+{
+ 32,32,
+ 1, /* number of characters */
+ 1, /* number of bitplanes */
+ { 0 },
+ {
+ 0x003,0x002,0x001,0x000,0x103,0x102,0x101,0x100,
+ 0x203,0x202,0x201,0x200,0x303,0x302,0x301,0x300,
+ 0x403,0x402,0x401,0x400,0x503,0x502,0x501,0x500,
+ 0x603,0x602,0x601,0x600,0x703,0x702,0x701,0x700
+ },
+ {
+ 0x00,0x08,0x10,0x18,0x20,0x28,0x30,0x38,
+ 0x40,0x48,0x50,0x58,0x60,0x68,0x70,0x78,
+ 0x80,0x88,0x90,0x98,0xa0,0xa8,0xb0,0xb8,
+ 0xc0,0xc8,0xd0,0xd8,0xe0,0xe8,0xf0,0xf8
+ },
+ 4
+};
+
+static gfx_layout player_layout =
+{
+ 32,32,
+ 2, /* number of characters */
+ 2, /* number of bitplanes */
+ { 0,4 },
+ {
+ 0x003,0x002,0x001,0x000,0x103,0x102,0x101,0x100,
+ 0x203,0x202,0x201,0x200,0x303,0x302,0x301,0x300,
+ 0x403,0x402,0x401,0x400,0x503,0x502,0x501,0x500,
+ 0x603,0x602,0x601,0x600,0x703,0x702,0x701,0x700
+ },
+ {
+ 0x80,0x88,0x90,0x98,0xa0,0xa8,0xb0,0xb8,
+ 0xc0,0xc8,0xd0,0xd8,0xe0,0xe8,0xf0,0xf8,
+ 0x00,0x08,0x10,0x18,0x20,0x28,0x30,0x38,
+ 0x40,0x48,0x50,0x58,0x60,0x68,0x70,0x78
+ },
+ 0x800
+};
+
+static gfx_layout text_layout =
+{
+ 16,64,
+ 4, /* number of characters */
+ 1, /* number of bitplanes */
+ { 0 },
+ {
+ 0x007,0x006,0x005,0x004,0x003,0x002,0x001,0x000,
+ 0x207,0x206,0x205,0x204,0x203,0x202,0x201,0x200,
+ },
+ {
+ 0x100,0x108,0x110,0x118,0x120,0x128,0x130,0x138,
+ 0x140,0x148,0x150,0x158,0x160,0x168,0x170,0x178,
+ 0x180,0x188,0x190,0x198,0x1a0,0x1a8,0x1b0,0x1b8,
+ 0x1c0,0x1c8,0x1d0,0x1d8,0x1e0,0x1e8,0x1f0,0x1f8,
+ 0x000,0x008,0x010,0x018,0x020,0x028,0x030,0x038,
+ 0x040,0x048,0x050,0x058,0x060,0x068,0x070,0x078,
+ 0x080,0x088,0x090,0x098,0x0a0,0x0a8,0x0b0,0x0b8,
+ 0x0c0,0x0c8,0x0d0,0x0d8,0x0e0,0x0e8,0x0f0,0x0f8,
+ },
+ 0x400
+};
+
+static gfx_layout house_layout =
+{
+ 32,32,
+ 1, /* number of characters */
+ 4, /* number of bitplanes */
+ { 0,2,4,6 },
+ {
+ 0x001,0x000,0x101,0x100,0x201,0x200,0x301,0x300,
+ 0x401,0x400,0x501,0x500,0x601,0x600,0x701,0x700,
+ 0x801,0x800,0x901,0x900,0xa01,0xa00,0xb01,0xb00,
+ 0xc01,0xc00,0xd01,0xd00,0xe01,0xe00,0xf01,0xf00
+ },
+ {
+ 0x00,0x08,0x10,0x18,0x20,0x28,0x30,0x38,
+ 0x40,0x48,0x50,0x58,0x60,0x68,0x70,0x78,
+ 0x80,0x88,0x90,0x98,0xa0,0xa8,0xb0,0xb8,
+ 0xc0,0xc8,0xd0,0xd8,0xe0,0xe8,0xf0,0xf8
+ },
+ 4
+};
+
+static gfx_layout signal_layout =
+{
+ 32,32,
+ 1, /* number of characters */
+ 1, /* number of bitplanes */
+ { 0 },
+ {
+ 0x001,0x000,0x101,0x100,0x201,0x200,0x301,0x300,
+ 0x401,0x400,0x501,0x500,0x601,0x600,0x701,0x700,
+ 0x801,0x800,0x901,0x900,0xa01,0xa00,0xb01,0xb00,
+ 0xc01,0xc00,0xd01,0xd00,0xe01,0xe00,0xf01,0xf00
+ },
+ {
+ 0x00,0x08,0x10,0x18,0x20,0x28,0x30,0x38,
+ 0x40,0x48,0x50,0x58,0x60,0x68,0x70,0x78,
+ 0x80,0x88,0x90,0x98,0xa0,0xa8,0xb0,0xb8,
+ 0xc0,0xc8,0xd0,0xd8,0xe0,0xe8,0xf0,0xf8,
+ },
+ 0
+};
+
+static gfx_layout dummy_layout =
+{
+ 32,16,
+ 2, /* number of characters */
+ 2, /* number of bitplanes */
+ { 4,6 },
+ {
+ 0x001,0x000,0x101,0x100,0x201,0x200,0x301,0x300,
+ 0x401,0x400,0x501,0x500,0x601,0x600,0x701,0x700,
+ 0x801,0x800,0x901,0x900,0xa01,0xa00,0xb01,0xb00,
+ 0xc01,0xc00,0xd01,0xd00,0xe01,0xe00,0xf01,0xf00
+ },
+ {
+ 0x00,0x08,0x10,0x18,0x20,0x28,0x30,0x38,
+ 0x40,0x48,0x50,0x58,0x60,0x68,0x70,0x78
+ },
+ 0x80
+};
+
+static gfx_layout computer_layout =
+{
+ 32,16,
+ 2, /* number of characters */
+ 4, /* number of bitplanes */
+ { 0,2,4,6 },
+ {
+ 0x001,0x000,0x081,0x080,0x101,0x100,0x181,0x180,
+ 0x201,0x200,0x281,0x280,0x301,0x300,0x381,0x380,
+ 0x401,0x400,0x481,0x480,0x501,0x500,0x581,0x580,
+ 0x601,0x600,0x681,0x680,0x701,0x700,0x781,0x780
+ },
+ {
+ 0x00,0x08,0x10,0x18,0x20,0x28,0x30,0x38,
+ 0x40,0x48,0x50,0x58,0x60,0x68,0x70,0x78
+ },
+ 0x800
+};
+
+static gfx_layout rescue_layout =
+{
+ 64,16,
+ 2, /* number of characters */
+ 4, /* number of bitplanes */
+ { 0,2,4,6 },
+ {
+ 0x001,0x001,0x000,0x000,0x081,0x081,0x080,0x080,
+ 0x101,0x101,0x100,0x100,0x181,0x181,0x180,0x180,
+ 0x201,0x201,0x200,0x200,0x281,0x281,0x280,0x280,
+ 0x301,0x301,0x300,0x300,0x381,0x381,0x380,0x380,
+ 0x401,0x401,0x400,0x400,0x481,0x481,0x480,0x480,
+ 0x501,0x501,0x500,0x500,0x581,0x581,0x580,0x580,
+ 0x601,0x601,0x600,0x600,0x681,0x681,0x680,0x680,
+ 0x701,0x701,0x700,0x700,0x781,0x781,0x780,0x780
+ },
+ {
+ 0x00,0x08,0x10,0x18,0x20,0x28,0x30,0x38,
+ 0x40,0x48,0x50,0x58,0x60,0x68,0x70,0x78
+ },
+ 0x800
+};
+
+static gfx_layout explode_layout =
+{
+ 32,32,
+ 4, /* number of characters */
+ 1, /* number of bitplanes */
+ { 0 },
+ {
+ 0x007,0x006,0x005,0x004,0x003,0x002,0x001,0x000,
+ 0x107,0x106,0x105,0x104,0x103,0x102,0x101,0x100,
+ 0x207,0x206,0x205,0x204,0x203,0x202,0x201,0x200,
+ 0x307,0x306,0x305,0x304,0x303,0x302,0x301,0x300,
+ },
+ {
+ 0x80,0x88,0x90,0x98,0xa0,0xa8,0xb0,0xb8,
+ 0xc0,0xc8,0xd0,0xd8,0xe0,0xe8,0xf0,0xf8,
+ 0x00,0x08,0x10,0x18,0x20,0x28,0x30,0x38,
+ 0x40,0x48,0x50,0x58,0x60,0x68,0x70,0x78
+ },
+ 0x400
+};
+
+static gfx_layout bridge_layout =
+{
+ 32,16,
+ 2, /* number of characters */
+ 4, /* number of bitplanes */
+ { 0,1,2,3 },
+ {
+ 0x004,0x000,0x104,0x100,0x204,0x200,0x304,0x300,
+ 0x404,0x400,0x504,0x500,0x604,0x600,0x704,0x700,
+ 0x804,0x800,0x904,0x900,0xa04,0xa00,0xb04,0xb00,
+ 0xc04,0xc00,0xd04,0xd00,0xe04,0xe00,0xf04,0xf00
+ },
+ {
+ 0x00,0x08,0x10,0x18,0x20,0x28,0x30,0x38,
+ 0x40,0x48,0x50,0x58,0x60,0x68,0x70,0x78
+ },
+ 0x80
+};
+
+static gfx_layout unknown_layout =
+{ /* police car? */
+ 32,32,
+ 2, /* number of characters */
+ 1, /* number of bitplanes */
+ { 0 },
+ {
+ 0x307,0x306,0x305,0x304,0x303,0x302,0x301,0x300,
+ 0x207,0x206,0x205,0x204,0x203,0x202,0x201,0x200,
+ 0x107,0x106,0x105,0x104,0x103,0x102,0x101,0x100,
+ 0x007,0x006,0x005,0x004,0x003,0x002,0x001,0x000,
+ },
+ {
+ 0x80,0x88,0x90,0x98,0xa0,0xa8,0xb0,0xb8,
+ 0xc0,0xc8,0xd0,0xd8,0xe0,0xe8,0xf0,0xf8,
+ 0x00,0x08,0x10,0x18,0x20,0x28,0x30,0x38,
+ 0x40,0x48,0x50,0x58,0x60,0x68,0x70,0x78
+ },
+ 0x400
+};
+
+
+static gfx_layout tunnel_layout =
+{
+ 32,32,
+ 2, /* number of characters */
+ 1, /* number of bitplanes */
+ { 0 },
+ {
+ 0x003,0x002,0x001,0x000,0x103,0x102,0x101,0x100,
+ 0x203,0x202,0x201,0x200,0x303,0x302,0x301,0x300,
+ 0x403,0x402,0x401,0x400,0x503,0x502,0x501,0x500,
+ 0x603,0x602,0x601,0x600,0x703,0x702,0x701,0x700
+ },
+ {
+ 0x00,0x08,0x10,0x18,0x20,0x28,0x30,0x38,
+ 0x40,0x48,0x50,0x58,0x60,0x68,0x70,0x78,
+ 0x80,0x88,0x90,0x98,0xa0,0xa8,0xb0,0xb8,
+ 0xc0,0xc8,0xd0,0xd8,0xe0,0xe8,0xf0,0xf8
+ },
+ 4
+};
+
+static gfx_layout belt_layout = {
+ 32,16,
+ 2, /* number of characters */
+ 1, /* number of bitplanes */
+ { 4 },
+ {
+ 0x003,0x002,0x001,0x000,0x103,0x102,0x101,0x100,
+ 0x203,0x202,0x201,0x200,0x303,0x302,0x301,0x300,
+ 0x403,0x402,0x401,0x400,0x503,0x502,0x501,0x500,
+ 0x603,0x602,0x601,0x600,0x703,0x702,0x701,0x700
+ },
+ {
+ 0x00,0x08,0x10,0x18,0x20,0x28,0x30,0x38,
+ 0x40,0x48,0x50,0x58,0x60,0x68,0x70,0x78,
+ 0x80,0x88,0x90,0x98,0xa0,0xa8,0xb0,0xb8,
+ 0xc0,0xc8,0xd0,0xd8,0xe0,0xe8,0xf0,0xf8
+ },
+ 0x80
+};
+
+static GFXDECODE_START( monaco )
+ GFXDECODE_ENTRY( "gfx1", 0x0100, unknown_layout, 0x00, 1) /* PR125: unused; police car? */
+ GFXDECODE_ENTRY( "gfx1", 0x0200, explode_layout, RED_CLUT, 2) /* PR126: explosion */
+ GFXDECODE_ENTRY( "gfx1", 0x0400, player_layout, PLAYER_CLUT, 1) /* PR127: player's car */
+ GFXDECODE_ENTRY( "gfx1", 0x0600, player_layout, PLAYER_CLUT, 1) /* PR128: swerving (rough road) */
+ GFXDECODE_ENTRY( "gfx1", 0x0800, player_layout, PLAYER_CLUT, 1) /* PR129: spinout1 */
+ GFXDECODE_ENTRY( "gfx1", 0x0a00, player_layout, PLAYER_CLUT, 1) /* PR130: spinout2 */
+ GFXDECODE_ENTRY( "gfx1", 0x0c00, explode_layout, CYAN_CLUT, 1) /* PR131: spray */
+ GFXDECODE_ENTRY( "gfx1", 0x0e00, computer_layout, 0x00, 5) /* PR132: computer car A,B */
+ GFXDECODE_ENTRY( "gfx1", 0x1000, text_layout, CYAN_CLUT, 2) /* PR133: text */
+ GFXDECODE_ENTRY( "gfx1", 0x1200, tree_layout, TREE_CLUT, 1) /* PR134: tree */
+ GFXDECODE_ENTRY( "gfx1", 0x1300, tree_layout, TREE_CLUT, 1) /* PR134: grass */
+ GFXDECODE_ENTRY( "gfx1", 0x1400, tree_layout, SHRUB_CLUT, 1) /* PR135: shrub */
+ GFXDECODE_ENTRY( "gfx1", 0x1600, house_layout, HOUSE_CLUT, 1) /* PR136: house */
+ GFXDECODE_ENTRY( "gfx1", 0x1800, tunnel_layout, RED_CLUT, 1) /* PR137: tunnel */
+ GFXDECODE_ENTRY( "gfx1", 0x1900, pool_layout, CYAN_CLUT, 1) /* PR137: pool (oil slick) */
+ GFXDECODE_ENTRY( "gfx1", 0x1900, belt_layout, GRASS_CLUT, 2) /* PR137: red/green belt */
+ GFXDECODE_ENTRY( "gfx1", 0x1a00, rescue_layout, RESCUE_CLUT, 1) /* PR138: rescue car */
+ GFXDECODE_ENTRY( "gfx1", 0x1c00, signal_layout, YELLOW_CLUT, 1) /* PR139: bridge signal (yellow on black)*/
+ GFXDECODE_ENTRY( "gfx1", 0x1c00, dummy_layout, PLAYER_CLUT, 1) /* PR139: dummy car */
+ GFXDECODE_ENTRY( "gfx1", 0x1e00, bridge_layout, WATER_CLUT, 1) /* PR140: bridge-water */
+ GFXDECODE_ENTRY( "gfx1", 0x2000, bridge_layout, WATER_CLUT, 1) /* PR141: bridge-pillar */
+GFXDECODE_END
+
+static const char *const monaco_sample_names[] =
+{
+ "*monaco",
+ "6car1",
+ "6car2",
+ "6crash",
+ "6engine",
+ "6extend",
+ "6fanfare",
+ "6siren",
+ "6slip",
+// "gravel",
+ 0
+};
+
+/* ch 0 = engine; ch 1 = ambulance, puddle; ch 2 = extra car; ch 3 = crash; ch 4 = fanfare */
+
+MACHINE_RESET_MEMBER( monaco_state, monaco )
+{
+ uint16_t i;
+ m_time = 0; /* time remaining = 0 */
+ m_score = 0; /* player score = 0 */
+ m_gear = 0; /* low gear */
+ m_plays = 0; /* no games played */
+ for (i = 0;i < 1000;i++)
+ monaco_word_w (i, 0); /* delete all scores from RAM */
+ GameOver();
+}
+
+static MACHINE_CONFIG_START( monaco, monaco_state )
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD ("maincpu", Z80, 200) /* fake */
+ MCFG_CPU_PROGRAM_MAP(monaco_map)
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", monaco_state, monaco_interrupt)
+ MCFG_MACHINE_RESET_OVERRIDE(monaco_state, monaco)
+
+ /* video hardware */
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_REFRESH_RATE(60)
+ MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(4368))
+ MCFG_SCREEN_SIZE(SCREEN_WIDTH, SCREEN_HEIGHT)
+ MCFG_SCREEN_VISIBLE_AREA(0, SCREEN_WIDTH-1, 0, SCREEN_HEIGHT-1)
+ MCFG_VIDEO_START_OVERRIDE(monaco_state, monaco)
+ MCFG_SCREEN_UPDATE_DRIVER(monaco_state, screen_update_monaco)
+ MCFG_SCREEN_PALETTE("palette")
+ MCFG_GFXDECODE_ADD("gfxdecode", "palette", monaco)
+ MCFG_PALETTE_ADD("palette", 160)
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+ MCFG_SOUND_ADD("samples", SAMPLES, 0)
+ MCFG_SAMPLES_CHANNELS(5)
+ MCFG_SAMPLES_NAMES(monaco_sample_names)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90)
+MACHINE_CONFIG_END
+
+/*****************************************************************/
+
+ROM_START( monaco )
+ ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00 ) /* fake */
+
+ ROM_REGION( 0x3000, "gfx1", 0 )
+ ROM_LOAD( "pr125", 512*0, 512, CRC(7a66ed4c) SHA1(514e129c334a551b931c90b063b073a9b4bdffc3) ) /* light data */
+ ROM_LOAD( "pr126", 512*1, 512, CRC(5d7a8f12) SHA1(b4f0d21b91a7cf7002f99c08788669c7c38be51d) ) /* explosion */
+ ROM_LOAD( "pr127", 512*2, 512, CRC(8ffdc2f0) SHA1(05cc3330c067965b8b90b5d27119fe9f26580a13) ) /* car(2)main */
+ ROM_LOAD( "pr128", 512*3, 512, CRC(dde29dea) SHA1(34c413edff991297471bd0bc193c4bd8ede4e468) ) /* car(2)rotated */
+ ROM_LOAD( "pr129", 512*4, 512, CRC(7b18af26) SHA1(3d1ff2610813544c3b9b65182f081272a9537640) ) /* car(2)rotated */
+ ROM_LOAD( "pr130", 512*5, 512, CRC(9ef1913b) SHA1(58830121781b8a13532eaf8ea13ec07f10522320) ) /* car(2) spinout */
+ ROM_LOAD( "pr131", 512*6, 512, CRC(ff31eb01) SHA1(fd6bcd92c4bd919bb1a96ca97688d46cb310b39d) ) /* splash */
+ ROM_LOAD( "pr132", 512*7, 512, CRC(6b8ad9bc) SHA1(be36e3b6b647d3a9565bc45903027c791dc889e5) ) /* car(2)(other) */
+ ROM_LOAD( "pr133", 512*8, 512, CRC(d50641d9) SHA1(bf399e9830c88e4d8f8fb386305f54ef766946d9) ) /* text(4) */
+ ROM_LOAD( "pr134", 512*9, 512, CRC(8ebd50bb) SHA1(98d51f503753d4d7191a09b509d26c1e049e981a) ) /* tree, grass */
+ ROM_LOAD( "pr135", 512*10, 512, CRC(986eda32) SHA1(73fa539d4c83748952d9339985208520fec955f3) ) /* shrub */
+ ROM_LOAD( "pr136", 512*11, 512, CRC(ecc5d1a2) SHA1(33bff7381785557a85e4c8bdd74679b59e0ed9d5) ) /* house */
+ ROM_LOAD( "pr137", 512*12, 512, CRC(ddd9004e) SHA1(5229c34578e66d9c51a05439a516513946ba69ed) ) /* tunnel, oil slip */
+ ROM_LOAD( "pr138", 512*13, 512, CRC(058e53cf) SHA1(7c3aaaca5a9e9ce3a3badd0dcc8360342673a397) ) /* firetruck */
+ ROM_LOAD( "pr139", 512*14, 512, CRC(e8ba0794) SHA1(eadd7425134f26b1c126bbcd3d3dabf4b2e1fe70) ) /* car, bridge symbol */
+ ROM_LOAD( "pr140", 512*15, 512, CRC(48e9971b) SHA1(c0c265cdc08727e3caaf49cdfe728a91c4c46ba2) ) /* bridge-water */
+ ROM_LOAD( "pr141", 512*16, 512, CRC(99934236) SHA1(ec271f3e690d5c57ead9132b22b9b1b966e4d170) ) /* bridge-pillar */
+
+ ROM_REGION( 32*3, "proms", 0 )
+ ROM_LOAD( "prm38", 0*32, 32, CRC(82dd0a0f) SHA1(3e7e475c3270853d70c1fe90a773172532b60cfb) ) /* acceleration related */
+ ROM_LOAD( "prm39", 1*32, 32, CRC(6acfa0da) SHA1(1e56da4cdf71a095eac29878969b831babac222b) ) /* regulates opponent car speed */
+
+// ROM_LOAD( "prm-40", 2*32, 32, CRC(8030dac8) )
+/* PR40 is in the Fanfare sound circuit and seems to access the particular
+ * notes for the fanfare sound (so PR40 may contain timing and pointer info
+ * on the melody).  The switch (SW1) I mentioned before that helped in tuning
+ * the fanfare sound with the 6 pots seems to help in making the tuning of each
+ * pot for output of one of three audio frequencies (262, 330, 392 Hz),
+ * instead of having to tune to 6 different frequencies (a production/test
+ * equipment issue).
+ * In any case, if we get a good sample of this fanfare sound, we will not
+ * need to bother with this circuit or PR40.  As far a I have seen, the
+ * fanfare sound only comes up at the end of the game if you have a top five
+ * score and possibly when you plug in the game.
+ */
+ROM_END
+
+DRIVER_INIT_MEMBER( monaco_state, monaco )
+{
+ int i;
+ const double dy_table[5] =
+ {
+ 0.75,
+ 1.25,
+ 1.75,
+ 2.00,
+ 2.50
+ };
+
+ m_computer_speed = 52*16/256.0;
+ m_track_bottom_inset = 32;
+ m_track_top_inset = 32;
+ m_track_bottom_delta = 1;
+ m_track_top_delta = 1;
+
+ /* computer car */
+ for( i=0; i<NUM_COMPUTER_CARS; i++ )
+ {
+ m_xpos[i] = i*32*3 + ((i>1)?192:0);
+ m_ypos[i] = (SCREEN_HEIGHT-16)/2;
+ m_dy[i] = dy_table[i];
+ }
+}
+
+/* rom parent machine inp init */
+GAMEL( 1979, monaco, 0, monaco, monaco, monaco_state, monaco, ROT90, "Sega", "Monaco GP", 0, layout_monaco )
+
+
+
+
+/* Monaco GP video hardware simulation */
+
+
+#define plot_pixel(bitmap,x,y,col) do { bitmap.pix16(y, x) = col; } while (0)
+
+void monaco_state::draw_computer( bitmap_ind16 &bitmap, const rectangle clip )
+{
+ int i;
+
+ for( i=0; i<NUM_COMPUTER_CARS; i++ )
+ {
+ m_gfxdecode->gfx(GFX_COMPUTER)->transpen(
+ bitmap, clip,
+ m_tile[i],
+ m_color[i],
+ 0,0,
+ m_x[i],
+ m_y[i],
+ 0 );
+ }
+
+ m_gfxdecode->gfx(GFX_RESCUE_CAR)->transpen(
+ bitmap, clip,
+ m_rescue_tile,
+ 0, /* color */
+ 0,0,
+ m_rescue_x,
+ m_rescue_y,
+ 0 );
+}
+
+void monaco_state::draw_pool( bitmap_ind16 &bitmap, const rectangle clip )
+{
+ m_gfxdecode->gfx(GFX_POOL)->transpen(
+ bitmap, clip,
+ 0,0, /* tile,color */
+ 0,0, /* flip */
+ m_pool_x,
+ m_pool_y,
+ 0 );
+}
+
+void monaco_state::draw_player( bitmap_ind16 &bitmap, const rectangle clip )
+{
+ int gfx;
+ int tile;
+
+ switch( m_player_splash )
+ {
+ case 0:
+ m_gfxdecode->gfx(GFX_SPRAY)->transpen( bitmap, clip,
+ 2,0,0,0,
+ m_player_x,
+ m_player_y+32-8,
+ 0);
+ m_gfxdecode->gfx(GFX_SPRAY)->transpen( bitmap, clip,
+ 0,0,0,0,
+ m_player_x,
+ m_player_y-32+8,
+ 0);
+ break;
+ case 1:
+ m_gfxdecode->gfx(GFX_SPRAY)->transpen( bitmap, clip,
+ 3,0,0,0,
+ m_player_x,
+ m_player_y+32-8,
+ 0);
+ m_gfxdecode->gfx(GFX_SPRAY)->transpen( bitmap, clip,
+ 1,0,0,0,
+ m_player_x,
+ m_player_y-32+8,
+ 0);
+ break;
+ }
+
+ tile = m_player_tile;
+ gfx = 0;
+ if( tile>=0 )
+ {
+ switch( tile )
+ {
+ case 0:
+ case 1: gfx = GFX_PLAYER; break;
+
+ case 2:
+ case 3: gfx = GFX_SPINOUT1; tile -= 2; break;
+
+ case 4:
+ case 5: gfx = GFX_SPINOUT2; tile -= 4; break;
+
+ case 6:
+ case 7:
+ case 8:
+ case 9: gfx = GFX_EXPLOSION; tile -= 6; break;
+
+ case 10:
+ case 11: gfx = GFX_SHAKE; tile -= 10; break;
+ }
+
+ m_gfxdecode->gfx(gfx)->transpen( bitmap, clip,
+ tile,0,
+ 0,0,
+ m_player_x,
+ m_player_y,
+ 0);
+ }
+}
+
+/*****************************************************************/
+
+void monaco_state::draw_strip( bitmap_ind16 &bitmap, int sy, int x0, int x1, int xpos, int pen )
+{
+ int sx;
+ if( x0<xpos ) x0 = xpos;
+ if( x1>xpos+PAGE_SIZE ) x1 = xpos+PAGE_SIZE;
+ if( x0<0 ) x0 = 0;
+ if( x1>SCREEN_WIDTH ) x1 = SCREEN_WIDTH;
+ for( sx=x0; sx<x1; sx++ ) plot_pixel( bitmap,sx,sy,pen );
+}
+
+void monaco_state::DrawSmoothZone( bitmap_ind16 &bitmap, const rectangle clip, int xpos )
+{
+ const uint8_t data[14] =
+ {
+ GFX_GRASS,GFX_GRASS,GFX_GRASS,
+ GFX_TREE,GFX_GRASS,GFX_TREE,
+ GFX_GRASS,GFX_HOUSE,GFX_GRASS,
+ GFX_SHRUB,GFX_SHRUB,
+ GFX_GRASS,GFX_GRASS,GFX_GRASS
+ };
+ int top_inset = m_top_inset;
+ int bottom_inset = m_bottom_inset;
+ int i;
+
+ draw_strip( bitmap, top_inset, xpos, xpos+PAGE_SIZE, xpos, YELLOW_PEN );
+ draw_strip( bitmap, SCREEN_HEIGHT-1 - bottom_inset, xpos, xpos+PAGE_SIZE, xpos, YELLOW_PEN );
+
+ for( i=0; i<14; i++ )
+ {
+ int code = data[i];
+ gfx_element *gfx = m_gfxdecode->gfx(code);
+ gfx_element *belt = m_gfxdecode->gfx((code==GFX_HOUSE)?GFX_DUMMY:GFX_BELT);
+ int j;
+
+ for( j=0; j<3; j++ )
+ {
+ gfx->opaque( bitmap, clip,
+ 0,0, /* number, color */
+ 0,0, /* no flip */
+ xpos, m_top_inset-32-16-j*32 );
+
+ gfx->opaque( bitmap, clip,
+ 0,0, /* number, color */
+ 0,0, /* no flip */
+ xpos,SCREEN_HEIGHT-m_bottom_inset+j*32+16-8 );
+ }
+ belt->opaque( bitmap, clip,
+ 0,0, /* number, color */
+ 0,0, /* no flip */
+ xpos, m_top_inset-16 );
+
+ belt->opaque( bitmap, clip,
+ 0,0, /* number, color */
+ 0,0, /* no flip */
+ xpos,SCREEN_HEIGHT-m_bottom_inset );
+
+ xpos += 32;
+ }
+}
+
+void monaco_state::DrawSlipZone( bitmap_ind16 &bitmap, const rectangle clip, int xpos )
+{
+ const uint8_t data[14] =
+ {
+ GFX_SHRUB,GFX_SHRUB,GFX_SHRUB,
+ GFX_SHRUB,GFX_SHRUB,GFX_SHRUB,
+ GFX_SHRUB,GFX_HOUSE,
+ GFX_SHRUB,GFX_SHRUB,GFX_SHRUB,
+ GFX_SHRUB,/* start */GFX_SHRUB,GFX_SHRUB
+ };
+
+ int top_inset = m_top_inset;
+ int bottom_inset = m_bottom_inset;
+ int i;
+
+ draw_strip( bitmap, top_inset, xpos, xpos+PAGE_SIZE, xpos, YELLOW_PEN );
+ draw_strip( bitmap, SCREEN_HEIGHT-1 - bottom_inset, xpos, xpos+PAGE_SIZE, xpos, YELLOW_PEN );
+
+ for( i=0; i<14; i++ ){
+ int code = data[i];
+ gfx_element *gfx = m_gfxdecode->gfx(code);
+ gfx_element *belt = m_gfxdecode->gfx((code==GFX_HOUSE)?GFX_DUMMY:GFX_BELT);
+ int j;
+
+ for( j=0; j<3; j++ ){
+ gfx->opaque( bitmap, clip,
+ 0,0, /* number, color */
+ 0,0, /* no flip */
+ xpos, top_inset-32-j*32-16 );
+
+ gfx->opaque( bitmap, clip,
+ 0,0, /* number, color */
+ 0,0, /* no flip */
+ xpos,SCREEN_HEIGHT-bottom_inset+j*32+16-8 );
+ }
+
+ belt->opaque( bitmap, clip,
+ 0,0, /* number, color */
+ 0,0, /* no flip */
+ xpos, top_inset-16 );
+
+ belt->opaque( bitmap, clip,
+ 0,0, /* number, color */
+ 0,0, /* no flip */
+ xpos,SCREEN_HEIGHT-bottom_inset );
+
+ xpos += 32;
+ }
+}
+
+void monaco_state::DrawGravelZone( bitmap_ind16 &bitmap, const rectangle clip, int xpos )
+{
+ const uint8_t data[14] = {
+ GFX_SHRUB,GFX_SHRUB,GFX_SHRUB,
+ GFX_SHRUB,GFX_SHRUB,GFX_SHRUB,
+ GFX_SHRUB,GFX_HOUSE,
+ GFX_SHRUB,GFX_SHRUB,GFX_SHRUB,
+ GFX_SHRUB,GFX_SHRUB,GFX_SHRUB
+ };
+ int top_inset = m_top_inset;
+ int bottom_inset = m_bottom_inset;
+ int i;
+ int xpos0 = xpos;
+
+ for( i=0; i<14; i++ )
+ {
+ int code = data[i];
+ gfx_element *gfx = m_gfxdecode->gfx(code);
+ gfx_element *belt = m_gfxdecode->gfx((code==GFX_HOUSE)?GFX_DUMMY:GFX_BELT);
+ int j;
+ int ypos;
+
+ /* draw gravel */
+ if( data[i]!=GFX_HOUSE )
+ {
+ ypos = SCREEN_HEIGHT-bottom_inset-32;
+ m_gfxdecode->gfx(GFX_BELT)->opaque( bitmap, clip,
+ 1,1, /* number, color */
+ 0,0, /* no flip */
+ xpos, ypos+32-8 );
+ ypos-=24;
+ while( ypos>0 ){
+ m_gfxdecode->gfx(GFX_BELT)->opaque( bitmap, clip,
+ 1,1, /* number, color */
+ 0,0, /* no flip */
+ xpos, ypos );
+ ypos -= 16;
+ }
+ }
+
+ for( j=0; j<3; j++ )
+ {
+ ypos = SCREEN_HEIGHT-bottom_inset+16+j*32-8;
+ gfx->opaque( bitmap, clip,
+ 0,0, /* number, color */
+ 0,0, /* no flip */
+ xpos, ypos );
+ }
+
+ for( j=0; j<3; j++ )
+ {
+ ypos = top_inset-32-16-j*32;
+ gfx->opaque( bitmap, clip,
+ 0,0, /* number, color */
+ 0,0, /* no flip */
+ xpos, ypos );
+ }
+
+ belt->opaque( bitmap, clip,
+ 0,0, /* number, color */
+ 0,0, /* no flip */
+ xpos, top_inset-16 );
+
+ belt->opaque( bitmap, clip,
+ 0,0, /* number, color */
+ 0,0, /* no flip */
+ xpos,SCREEN_HEIGHT-bottom_inset );
+
+
+ xpos += 32;
+ }
+ draw_strip( bitmap, top_inset, xpos0, xpos0+PAGE_SIZE, xpos0, YELLOW_PEN );
+ draw_strip( bitmap, SCREEN_HEIGHT-1 - bottom_inset, xpos0, xpos0+PAGE_SIZE, xpos0, YELLOW_PEN );
+}
+
+void monaco_state::DrawBridgeZone( bitmap_ind16 &bitmap, const rectangle clip, int xpos )
+{
+ gfx_element *gfx1 = m_gfxdecode->gfx(GFX_BRIDGE1);
+ gfx_element *gfx2 = m_gfxdecode->gfx(GFX_BRIDGE2);
+
+ int i;
+ for( i=0; i<14; i++ )
+ {
+ int j;
+ gfx_element *gfx = (i==0)?gfx2:gfx1;
+ for( j=0; j<7; j++ )
+ {
+ int flip;
+ for( flip=0; flip<=1; flip++ )
+ {
+ int ypos = flip?(SCREEN_HEIGHT-16-j*16)+8:j*16-8;
+ if( j<5 )
+ { /* water */
+ gfx1->opaque( bitmap, clip,
+ 0,0, /* number, color */
+ 0,flip,
+ xpos, ypos );
+ }
+ else
+ { /* edge of bridge */
+ gfx->opaque( bitmap, clip,
+ j-5,0, /* number, color */
+ 0,flip,
+ xpos, ypos );
+ }
+ }
+ }
+ xpos += 32;
+ }
+}
+
+void monaco_state::DrawTunnelZone( bitmap_ind16 &bitmap, int xpos )
+{
+ int pen = YELLOW_PEN;
+ int top_inset = m_top_inset;
+ int bottom_inset = m_bottom_inset;
+ draw_strip( bitmap, top_inset, xpos, xpos+PAGE_SIZE, xpos, pen );
+ draw_strip( bitmap, SCREEN_HEIGHT-1 - bottom_inset, xpos, xpos+PAGE_SIZE, xpos, pen );
+}
+
+void monaco_state::DrawTunnelWall( bitmap_ind16 &bitmap, const rectangle clip, int xpos )
+{
+ rectangle clip2;
+ gfx_element *gfx = m_gfxdecode->gfx(GFX_TUNNEL);
+ int top_inset = m_top_inset - 16;
+ int bottom_inset = m_bottom_inset - 16;
+ int i;
+
+ clip2.min_x = clip.min_x;
+ clip2.max_x = clip.max_x;
+ clip2.max_y = clip.max_y;
+ clip2.min_y = SCREEN_HEIGHT-bottom_inset;
+
+ for( i=0; i<14; i++ )
+ {
+ int j;
+ for( j=0; j<2; j++ )
+ {
+ gfx->transpen( bitmap, clip,
+ 1,0, /* number, color */
+ 0,0, /* no flip */
+ xpos, top_inset-32-j*32, 0 );
+
+ gfx->transpen( bitmap, clip,
+ 1,0, /* number, color */
+ 0,0, /* no flip */
+ xpos, SCREEN_HEIGHT-bottom_inset+j*32 - 8, 0 );
+ }
+ xpos += 32;
+ }
+}
+
+void monaco_state::draw_light_helper( bitmap_ind16 &bitmap, int xpos )
+{
+ int pen = BLACK_PEN;
+ const unsigned char *source = memregion( "gfx1" )->base();
+ int x0 = m_player_x-128;
+ int y0 = m_player_y-48;
+ int sy;
+ for( sy=0; sy<SCREEN_HEIGHT; sy++ )
+ {
+ int i = sy-y0;
+ if( i<0 || i>=128 )
+ {
+ draw_strip( bitmap, sy, xpos, xpos+PAGE_SIZE, xpos, pen );
+ }
+ else
+ {
+ int left = x0+source[i];
+ int right = x0+source[i+128];
+ draw_strip( bitmap, sy, xpos, left, xpos, pen );
+ draw_strip( bitmap, sy, right, xpos+PAGE_SIZE, xpos, pen );
+ }
+ }
+}
+
+void monaco_state::draw_wall( bitmap_ind16 &bitmap, const rectangle clip )
+{
+ if( m_right_page == PAGE_TUNNEL )
+ DrawTunnelWall( bitmap, clip, SCREEN_WIDTH-14*32+m_scroll );
+
+ if( m_left_page == PAGE_TUNNEL )
+ DrawTunnelWall( bitmap, clip, SCREEN_WIDTH-14*32*2+m_scroll );
+}
+
+void monaco_state::draw_light( bitmap_ind16 &bitmap )
+{
+ if( m_right_page == PAGE_TUNNEL )
+ draw_light_helper( bitmap, SCREEN_WIDTH-14*32+m_scroll );
+
+ if( m_left_page == PAGE_TUNNEL )
+ draw_light_helper( bitmap, SCREEN_WIDTH-14*32*2+m_scroll );
+}
+
+void monaco_state::draw_page( bitmap_ind16 &bitmap, const rectangle clip, int which, int xpos )
+{
+ rectangle r;
+ r.min_x = xpos;
+ r.max_x = xpos+PAGE_SIZE-1;
+ r.min_y = 0;
+ r.max_y = SCREEN_HEIGHT-1;
+ bitmap.fill( (which!=PAGE_SLIP)?GREY_PEN:CYAN_PEN,r );
+ switch( which )
+ {
+ case PAGE_SMOOTH:
+ DrawSmoothZone( bitmap, clip, xpos );
+ break;
+
+ case PAGE_SLIP:
+ DrawSlipZone( bitmap, clip, xpos );
+ break;
+
+ case PAGE_TUNNEL:
+ DrawTunnelZone( bitmap, xpos );
+ break;
+
+ case PAGE_GRAVEL:
+ DrawGravelZone( bitmap, clip, xpos );
+ break;
+
+ case PAGE_BRIDGE:
+ DrawBridgeZone( bitmap, clip, xpos );
+ break;
+ }
+}
+
+void monaco_state::draw_background( bitmap_ind16 &bitmap, const rectangle clip )
+{
+ draw_page(bitmap, clip,
+ m_right_page,
+ SCREEN_WIDTH-14*32+m_scroll );
+
+ draw_page(bitmap, clip,
+ m_left_page,
+ SCREEN_WIDTH-14*32*2+m_scroll );
+}
+
+void monaco_state::draw_text( bitmap_ind16 &bitmap, const rectangle clip )
+{
+ int sx = (SCREEN_WIDTH-8)/2;
+ int sy = (SCREEN_HEIGHT-128)/2;
+
+ if( m_left_text != -1 )
+ {
+ m_gfxdecode->gfx(GFX_TEXT)->zoom_transpen( bitmap, clip,
+ m_left_text,0,
+ 0,0, /* flip */
+ sx-96,sy,
+ 1<<16, 2<<16, 0
+ );
+ }
+
+ if( m_right_text != -1 )
+ {
+ m_gfxdecode->gfx(GFX_TEXT)->zoom_transpen( bitmap, clip,
+ m_right_text,1,
+ 0,0, /* flip */
+ SCREEN_WIDTH-32,sy,
+ 1<<16, 2<<16, 0
+ );
+ }
+}
+
+/* last two values are L and H used to display in gear field (not supported officially)*/
+static const uint8_t led_map[12] = { 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x38,0x76 };
+
+/* following outputs LED's for bezel. also displays time,score&speed text versions (text version disabled here) */
+
+void monaco_state::draw_leds( bitmap_ind16 &bitmap )
+{
+ int i;
+ uint32_t data;
+
+// data = m_speed;
+// for( i=2; i>=0; i-- )
+// {
+// drawgfx_transpen( bitmap, led_font,
+// data%10,0, /* number, color */
+// 0,1, /* no flip */
+// 9,SCREEN_HEIGHT-6-i*6,
+// NULL, TRANSPARENCY_NONE,0 );
+//
+// data = data/10;
+// }
+
+ data = m_led_high1>>8;
+ for( i=3; i>=0; i-- )
+ {
+ output().set_digit_value(i+10, led_map[data%10]);
+ data = data/10;
+ }
+
+ data = m_led_high2>>8;
+ for( i=3; i>=0; i-- )
+ {
+ output().set_digit_value(i+20, led_map[data%10]);
+ data = data/10;
+ }
+
+ data = m_led_high3>>8;
+ for( i=3; i>=0; i-- )
+ {
+ output().set_digit_value(i+30, led_map[data%10]);
+ data = data/10;
+ }
+
+ data = m_led_high4>>8;
+ for( i=3; i>=0; i-- )
+ {
+ output().set_digit_value(i+40, led_map[data%10]);
+ data = data/10;
+ }
+
+ data = m_led_high5>>8;
+ for( i=3; i>=0; i-- )
+ {
+ output().set_digit_value(i+50, led_map[data%10]);
+ data = data/10;
+ }
+
+ data = m_led_score>>8;
+ for( i=3; i>=0; i-- )
+ {
+// drawgfx_transpen( bitmap, led_font,
+// data%10,0, /* number, color */
+// 0,1, /* no flip */
+// 0,SCREEN_HEIGHT-6-i*6,
+// NULL, TRANSPARENCY_NONE,0 );
+
+ output().set_digit_value(i, led_map[data%10]);
+
+ data = data/10;
+ }
+
+ data = m_led_plays;
+ for( i=2; i>=0; i-- )
+ {
+ output().set_digit_value(i+60, led_map[data%10]);
+ data = data/10;
+ }
+
+ data = m_led_rank;
+ for( i=2; i>=0; i-- )
+ {
+ if (data == 0xffff)
+ {
+ output().set_digit_value(i+70, 0); /* make it blank */
+ }
+ else
+ {
+ output().set_digit_value(i+70, led_map[data%10]);
+ data = data/10;
+ }
+ }
+
+ data = m_led_speed;
+ for( i=2; i>=0; i-- )
+ {
+// drawgfx_transpen( bitmap, led_font,
+// data%10,0, /* number, color */
+// 0,1, /* no flip */
+// 9,SCREEN_HEIGHT-6-i*6,
+// NULL, TRANSPARENCY_NONE,0 );
+//
+ output().set_digit_value(i+80, led_map[data%10]);
+ data = data/10;
+ }
+
+ data = m_led_gear;
+ for( i=0; i>=0; i-- )
+ {
+ output().set_digit_value(i+90, led_map[10+data%10]);
+ data = data/10;
+ }
+
+ data = m_led_lives;
+ for( i=0; i>=0; i-- )
+ {
+ output().set_digit_value(i+100, led_map[data%10]);
+ data = data/10;
+ }
+
+ data = m_led_time>>8;
+ for( i=1; i>=0; i-- )
+ {
+// drawgfx_opaque( bitmap, NULL, led_font,
+// data%10,0, /* number, color */
+// 0,1, /* no flip */
+// 18,SCREEN_HEIGHT-6-i*6 );
+
+ output().set_digit_value(i+4, led_map[data%10]);
+
+ data = data/10;
+ }
+}
+
+void monaco_state::draw_signal( bitmap_ind16 &bitmap )
+{
+ if( m_bSignalVisible )
+ {
+// drawgfx_opaque(
+// bitmap, NULL, machine().gfx[GFX_SIGNAL],
+// 0,0, /* number, color */
+// 0,0, /* no flip */
+// 32,(SCREEN_HEIGHT - 32)/2 );
+ }
+}
+
+uint32_t monaco_state::screen_update_monaco(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+{
+ const rectangle &visarea = screen.visible_area();
+ draw_background( bitmap, visarea );
+ draw_pool( bitmap, visarea );
+ draw_computer( bitmap, visarea );
+ draw_light( bitmap );
+ draw_wall( bitmap, visarea );
+ draw_text( bitmap, visarea );
+ draw_player( bitmap, visarea );
+ draw_signal( bitmap );
+ draw_leds( bitmap );
+ return 0;
+}
+
+VIDEO_START_MEMBER( monaco_state, monaco )
+{
+ int i;
+
+ m_palette->set_pen_color( 0, 0x00,0x00,0x00 ); /* black (tire) */
+ m_palette->set_pen_color( 1, 0xff,0xff,0xff ); /* white (trim) */
+ /* computer car */
+ for( i=0; i<NUM_COMPUTER_CAR_TYPES; i++ )
+ {
+ const unsigned char clut[3*NUM_COMPUTER_CAR_TYPES] =
+ {
+ 0x00,0xff,0x00, /* green car */
+ 0xff,0xff,0x00, /* yellow car */
+ 0x00,0xff,0xff, /* cyan car */
+ 0xff,0x00,0xff, /* purple car */
+ 0x00,0x00,0xff /* blue car */
+ };
+
+ m_palette->set_pen_color( 16*i+0x8, 0x00,0x00,0x00 ); /* black (tire) */
+ m_palette->set_pen_color( 16*i+0xa, 0xff,0xff,0xff ); /* white (trim) */
+ m_palette->set_pen_color( 16*i+0xc, clut[i*3+0],clut[i*3+1],clut[i*3+2] );
+ }
+ /* rescue car */
+ m_palette->set_pen_color( 0x50+0x8, 0x00,0x00,0x00 ); // black
+ m_palette->set_pen_color( 0x50+0x9, 0xff,0xff,0x00 ); // yellow
+ m_palette->set_pen_color( 0x50+0xa, 0xff,0xff,0xff ); // white
+ m_palette->set_pen_color( 0x50+0xc, 0xff,0x00,0x00 ); // red (light)
+ /* house */
+ m_palette->set_pen_color( 0x60+0x0, 0x00,0x00,0x00 ); // ground
+ m_palette->set_pen_color( 0x60+0x9, 0xff,0x00,0x00 ); // right roof
+ m_palette->set_pen_color( 0x60+0xa, 0xff,0x00,231 ); // left roof
+ m_palette->set_pen_color( 0x60+0xb, 0x00,198,255 ); // front
+ m_palette->set_pen_color( 0x60+0xc, 0xff,0xff,0xff ); // trim
+ /* water */
+ m_palette->set_pen_color( 0x70, 0x00,0x00,0xff );//l.blue
+ m_palette->set_pen_color( 0x71, 0xff,0x00,0x00 );//red
+ m_palette->set_pen_color( 0x72, 0xff,0xff,0x00 );//yellow
+ m_palette->set_pen_color( 0x73, 0x00,0x00,0x00 );//black
+ m_palette->set_pen_color( 0x74, 0x00,0x00,0x00 );//N/A
+ m_palette->set_pen_color( 0x75, 0xff,0xff,0xff );//white
+ m_palette->set_pen_color( 0x76, 0x9f,0x9f,0x9f );//grey (road)
+ m_palette->set_pen_color( 0x77, 0x00,0x00,0x9f );//d.blue
+ /* player car */
+ m_palette->set_pen_color( 0x80, 0x00,0x00,0x00 );
+ m_palette->set_pen_color( 0x81, 0xff,0x00,0x00 ); // red (car body)
+ m_palette->set_pen_color( 0x82, 0xff,0xff,0xff ); // white (trim)
+ m_palette->set_pen_color( 0x83, 0x00,0x00,0x00 ); // black (tire)
+ /* tree */
+ m_palette->set_pen_color( 0x84, 0xff,0xff,0x00 ); // yellow
+ m_palette->set_pen_color( 0x85, 0x00,0x00,0x00 ); // dark green
+ m_palette->set_pen_color( 0x86, 0x00,165,0x00 ); // light green
+ m_palette->set_pen_color( 0x87, 0x00,0x00,0x00 ); // black?
+ /* shrub */
+ m_palette->set_pen_color( 0x88, 0x00,0x00,0x00 );
+ m_palette->set_pen_color( 0x89, 0x00,0xff,0x00 );
+ m_palette->set_pen_color( 0x8a, 0x00,0x00,0xff );
+ m_palette->set_pen_color( 0x8b, 0xff,0xff,0xff );
+ /* grass */
+ m_palette->set_pen_color( 0x8c, 0x00,0x00,0x00 );
+ m_palette->set_pen_color( 0x8d, 0x00,0x9f,0x00 ); // dark green
+ m_palette->set_pen_color( 0x8e, 0x00,0x00,0x00 );
+ m_palette->set_pen_color( 0x8f, 0x00,0x00,0x9f ); // dark blue
+ m_palette->set_pen_color( 0x90, 0x00,0x00,0x00 ); // black
+ m_palette->set_pen_color( 0x91, 0x00,0xff,0xff ); // cyan
+ m_palette->set_pen_color( 0x92, 0x00,0x00,0x00 ); // grey
+ m_palette->set_pen_color( 0x93, 0xff,0x00,0x00 ); // red
+ m_palette->set_pen_color( 0x94, 0x00,0x00,0x00 ); // black
+ m_palette->set_pen_color( 0x95, 255,215,0 ); // yellow trim
+ m_palette->set_pen_color( 0x96, 132,132,132 ); // grey (road)
+// 0,198,255: wet road
+// 255,215,0: yellow trim
+}
diff --git a/docs/release/src/hbmame/drivers/mrdo.cpp b/docs/release/src/hbmame/drivers/mrdo.cpp
new file mode 100644
index 00000000000..a88cf139cc4
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/mrdo.cpp
@@ -0,0 +1,166 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/mrdo.cpp"
+
+ROM_START( mrdigdo )
+ ROM_REGION( 0x10000, "maincpu", 0 ) // from mrdot
+ ROM_LOAD( "d1", 0x0000, 0x2000, CRC(3dcd9359) SHA1(bfe00450ee8822f437d87514f051ad1be6de9463) )
+ ROM_LOAD( "d2", 0x2000, 0x2000, CRC(710058d8) SHA1(168cc179f2266bbf9437445bef9ff7d3358a8e6b) )
+ ROM_LOAD( "d3", 0x4000, 0x2000, CRC(467d12d8) SHA1(7bb85e6a780de1c0c224229ee571cab39098f78d) )
+ ROM_LOAD( "d4", 0x6000, 0x2000, CRC(fce9afeb) SHA1(26236a42c1c620975d4480c4315d0c6f112429b6) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "mrdigdo.d9", 0x0000, 0x1000, CRC(b83b8a84) SHA1(138a4fd1b7470def1b4e8aa4cfcf4c4b6bebf35b) )
+ ROM_LOAD( "mrdigdo.d10", 0x1000, 0x1000, CRC(061cabb9) SHA1(cdc8876f1c402565835db01a78906200430bcf72) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 ) // from mrdot
+ ROM_LOAD( "r8-08.bin", 0x0000, 0x1000, CRC(dbdc9ffa) SHA1(93f29fc106283eecbba3fd69cf3c4658aa38ab9f) )
+ ROM_LOAD( "n8-07.bin", 0x1000, 0x1000, CRC(4b9973db) SHA1(8766c51a345a5e63446e65614c6f665ab5fbe0d7) )
+
+ ROM_REGION( 0x2000, "gfx3", 0 )
+ ROM_LOAD( "mrdigdo.d5", 0x0000, 0x1000, CRC(401f9fa5) SHA1(7483150ae429c9841d04ec4d79eda59bf1db8330) )
+ ROM_LOAD( "mrdigdo.d6", 0x1000, 0x1000, CRC(ff401f59) SHA1(5f34363ffb5e470470c3a0d9ff704f4d9b814ecd) )
+
+ ROM_REGION( 0x0080, "proms", 0 ) // from mrdot
+ ROM_LOAD( "u02--2.bin", 0x0000, 0x0020, CRC(238a65d7) SHA1(a5b20184a1989db23544296331462ec4d7be7516) )
+ ROM_LOAD( "t02--3.bin", 0x0020, 0x0020, CRC(ae263dc0) SHA1(7072c100b9d692f5bb12b0c9e304425f534481e2) )
+ ROM_LOAD( "f10--1.bin", 0x0040, 0x0020, CRC(16ee4ca2) SHA1(fcba4d103708b9711452009cd29c4f88d2f64cd3) )
+ ROM_LOAD( "j10--4.bin", 0x0060, 0x0020, CRC(ff7fe284) SHA1(3ac8e30011c1fcba0ee8f4dc932f82296c3ba143) )
+ROM_END
+
+ROM_START( mrdofast )
+ ROM_REGION( 0x10000, "maincpu", 0 ) // same as mrdo except 1 rom
+ ROM_LOAD( "a4-01.bin", 0x0000, 0x2000, CRC(03dcfba2) SHA1(c15e3d0c4225e0ca120bcd28aca39632575f8e11) )
+ ROM_LOAD( "mrdofast.02", 0x2000, 0x2000, CRC(894d12e4) SHA1(ff89eca0506727f1973b14a13d848799e7ada7ec) )
+ ROM_LOAD( "e4-03.bin", 0x4000, 0x2000, CRC(358f5dc2) SHA1(9fed1f5d1d04935d1b77687c8b2f3bfce970dc08) )
+ ROM_LOAD( "f4-04.bin", 0x6000, 0x2000, CRC(f4190cfc) SHA1(24f5125d900f944294d4eda068b710c8f1c6d39f) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "s8-09.bin", 0x0000, 0x1000, CRC(aa80c5b6) SHA1(76f9f90deb74598470e7ed565237da38dd07e4e9) )
+ ROM_LOAD( "u8-10.bin", 0x1000, 0x1000, CRC(d20ec85b) SHA1(9762bbe34d3fa209ea719807c723f57cb6bf4e01) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "r8-08.bin", 0x0000, 0x1000, CRC(dbdc9ffa) SHA1(93f29fc106283eecbba3fd69cf3c4658aa38ab9f) )
+ ROM_LOAD( "n8-07.bin", 0x1000, 0x1000, CRC(4b9973db) SHA1(8766c51a345a5e63446e65614c6f665ab5fbe0d7) )
+
+ ROM_REGION( 0x2000, "gfx3", 0 )
+ ROM_LOAD( "h5-05.bin", 0x0000, 0x1000, CRC(e1218cc5) SHA1(d946613a1cf1c97f7533a4f8c2d0078d1b7daaa8) )
+ ROM_LOAD( "k5-06.bin", 0x1000, 0x1000, CRC(b1f68b04) SHA1(25709cd81c03df51f27cd730fecf86a1daa9e27e) )
+
+ ROM_REGION( 0x0080, "proms", 0 )
+ ROM_LOAD( "u02--2.bin", 0x0000, 0x0020, CRC(238a65d7) SHA1(a5b20184a1989db23544296331462ec4d7be7516) )
+ ROM_LOAD( "t02--3.bin", 0x0020, 0x0020, CRC(ae263dc0) SHA1(7072c100b9d692f5bb12b0c9e304425f534481e2) )
+ ROM_LOAD( "f10--1.bin", 0x0040, 0x0020, CRC(16ee4ca2) SHA1(fcba4d103708b9711452009cd29c4f88d2f64cd3) )
+ ROM_LOAD( "j10--4.bin", 0x0060, 0x0020, CRC(ff7fe284) SHA1(3ac8e30011c1fcba0ee8f4dc932f82296c3ba143) )
+ROM_END
+
+ROM_START( mrpac )
+ ROM_REGION( 0x10000, "maincpu", 0 ) // from mrdo
+ ROM_LOAD( "a4-01.bin", 0x0000, 0x2000, CRC(03dcfba2) SHA1(c15e3d0c4225e0ca120bcd28aca39632575f8e11) )
+ ROM_LOAD( "c4-02.bin", 0x2000, 0x2000, CRC(0ecdd39c) SHA1(c64b3363593911a676c647bf3dba8fe063fcb0de) )
+ ROM_LOAD( "e4-03.bin", 0x4000, 0x2000, CRC(358f5dc2) SHA1(9fed1f5d1d04935d1b77687c8b2f3bfce970dc08) )
+ ROM_LOAD( "f4-04.bin", 0x6000, 0x2000, CRC(f4190cfc) SHA1(24f5125d900f944294d4eda068b710c8f1c6d39f) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "mrpac-s8-09", 0x0000, 0x1000, CRC(930908e5) SHA1(13666166bb6a38c0b7a8d4133a0fb6fdd7aee372) )
+ ROM_LOAD( "mrpac-u8-10", 0x1000, 0x1000, CRC(ead6d3d6) SHA1(2dc959ca1e9e2cbdc0098ce92b9a11dc24643a38) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 ) // from mrdo
+ ROM_LOAD( "r8-08.bin", 0x0000, 0x1000, CRC(dbdc9ffa) SHA1(93f29fc106283eecbba3fd69cf3c4658aa38ab9f) )
+ ROM_LOAD( "n8-07.bin", 0x1000, 0x1000, CRC(4b9973db) SHA1(8766c51a345a5e63446e65614c6f665ab5fbe0d7) )
+
+ ROM_REGION( 0x2000, "gfx3", 0 )
+ ROM_LOAD( "mrpac-h5-05", 0x0000, 0x1000, CRC(de213e01) SHA1(61f3d3081dded0cc753640632127e52e4ddf0a75) )
+ ROM_LOAD( "mrpac-k5-06", 0x1000, 0x1000, CRC(c2e376a4) SHA1(d7e5fbdcd2b66ec56524e37eee18f91af96443dd) )
+
+ ROM_REGION( 0x0080, "proms", 0 ) // from mrdo
+ ROM_LOAD( "u02--2.bin", 0x0000, 0x0020, CRC(238a65d7) SHA1(a5b20184a1989db23544296331462ec4d7be7516) )
+ ROM_LOAD( "t02--3.bin", 0x0020, 0x0020, CRC(ae263dc0) SHA1(7072c100b9d692f5bb12b0c9e304425f534481e2) )
+ ROM_LOAD( "f10--1.bin", 0x0040, 0x0020, CRC(16ee4ca2) SHA1(fcba4d103708b9711452009cd29c4f88d2f64cd3) )
+ ROM_LOAD( "j10--4.bin", 0x0060, 0x0020, CRC(ff7fe284) SHA1(3ac8e30011c1fcba0ee8f4dc932f82296c3ba143) )
+ROM_END
+
+ROM_START( mrpacb ) // same as mrpac except for gfx1 roms
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "a4-01.bin", 0x0000, 0x2000, CRC(03dcfba2) SHA1(c15e3d0c4225e0ca120bcd28aca39632575f8e11) )
+ ROM_LOAD( "c4-02.bin", 0x2000, 0x2000, CRC(0ecdd39c) SHA1(c64b3363593911a676c647bf3dba8fe063fcb0de) )
+ ROM_LOAD( "e4-03.bin", 0x4000, 0x2000, CRC(358f5dc2) SHA1(9fed1f5d1d04935d1b77687c8b2f3bfce970dc08) )
+ ROM_LOAD( "f4-04.bin", 0x6000, 0x2000, CRC(f4190cfc) SHA1(24f5125d900f944294d4eda068b710c8f1c6d39f) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "mrpacb-s8-09", 0x0000, 0x1000, CRC(ff01d8a0) SHA1(d3d674d8e5bfc6a133fc047bbfb21d179a322c07) )
+ ROM_LOAD( "mrpacb-u8-10", 0x1000, 0x1000, CRC(c1e9b7e8) SHA1(ea455a616597c58bfa88b5ba1069b3fb33d84a7f) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "r8-08.bin", 0x0000, 0x1000, CRC(dbdc9ffa) SHA1(93f29fc106283eecbba3fd69cf3c4658aa38ab9f) )
+ ROM_LOAD( "n8-07.bin", 0x1000, 0x1000, CRC(4b9973db) SHA1(8766c51a345a5e63446e65614c6f665ab5fbe0d7) )
+
+ ROM_REGION( 0x2000, "gfx3", 0 )
+ ROM_LOAD( "mrpac-h5-05", 0x0000, 0x1000, CRC(de213e01) SHA1(61f3d3081dded0cc753640632127e52e4ddf0a75) )
+ ROM_LOAD( "mrpac-k5-06", 0x1000, 0x1000, CRC(c2e376a4) SHA1(d7e5fbdcd2b66ec56524e37eee18f91af96443dd) )
+
+ ROM_REGION( 0x0080, "proms", 0 )
+ ROM_LOAD( "u02--2.bin", 0x0000, 0x0020, CRC(238a65d7) SHA1(a5b20184a1989db23544296331462ec4d7be7516) )
+ ROM_LOAD( "t02--3.bin", 0x0020, 0x0020, CRC(ae263dc0) SHA1(7072c100b9d692f5bb12b0c9e304425f534481e2) )
+ ROM_LOAD( "f10--1.bin", 0x0040, 0x0020, CRC(16ee4ca2) SHA1(fcba4d103708b9711452009cd29c4f88d2f64cd3) )
+ ROM_LOAD( "j10--4.bin", 0x0060, 0x0020, CRC(ff7fe284) SHA1(3ac8e30011c1fcba0ee8f4dc932f82296c3ba143) )
+ROM_END
+
+ROM_START( newdigdo )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "a4-01.bin", 0x0000, 0x2000, CRC(03dcfba2) SHA1(c15e3d0c4225e0ca120bcd28aca39632575f8e11) )
+ ROM_LOAD( "c4-02.bin", 0x2000, 0x2000, CRC(0ecdd39c) SHA1(c64b3363593911a676c647bf3dba8fe063fcb0de) )
+ ROM_LOAD( "e4-03.bin", 0x4000, 0x2000, CRC(358f5dc2) SHA1(9fed1f5d1d04935d1b77687c8b2f3bfce970dc08) )
+ ROM_LOAD( "f4-04.bin", 0x6000, 0x2000, CRC(f4190cfc) SHA1(24f5125d900f944294d4eda068b710c8f1c6d39f) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "nd-s8-09", 0x0000, 0x1000, CRC(48f2bd6d) SHA1(d741f58d5b7e74c498eee11cb8b959f7eec73671) )
+ ROM_LOAD( "nd-u8-10", 0x1000, 0x1000, CRC(7be2fc3e) SHA1(763f95812e35671b3815385cec5ccdaeca4b2b2a) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "nd-r8-08", 0x0000, 0x1000, CRC(069a3e35) SHA1(09a361baed6417fdb4ecc1d8dd09ae9b2ccdef99) )
+ ROM_LOAD( "nd-n8-07", 0x1000, 0x1000, CRC(7ef6f5e4) SHA1(8839f6670010c0249b19f306c200c29775dc0351) )
+
+ ROM_REGION( 0x2000, "gfx3", 0 )
+ ROM_LOAD( "nd-h5-05", 0x0000, 0x1000, CRC(4c8f6cf8) SHA1(92a0a5b8178fec5f7c4214c03d7d691872fed59a) )
+ ROM_LOAD( "nd-k5-06", 0x1000, 0x1000, CRC(1a5f18fc) SHA1(58cbad50c1001dfcb302c28db183e511907e6f86) )
+
+ ROM_REGION( 0x0080, "proms", 0 )
+ ROM_LOAD( "u02--2.bin", 0x0000, 0x0020, CRC(238a65d7) SHA1(a5b20184a1989db23544296331462ec4d7be7516) )
+ ROM_LOAD( "t02--3.bin", 0x0020, 0x0020, CRC(ae263dc0) SHA1(7072c100b9d692f5bb12b0c9e304425f534481e2) )
+ ROM_LOAD( "f10--1.bin", 0x0040, 0x0020, CRC(16ee4ca2) SHA1(fcba4d103708b9711452009cd29c4f88d2f64cd3) )
+ ROM_LOAD( "j10--4.bin", 0x0060, 0x0020, CRC(ff7fe284) SHA1(3ac8e30011c1fcba0ee8f4dc932f82296c3ba143) )
+ROM_END
+
+ROM_START( stickydo )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "a4-01.bin", 0x0000, 0x2000, CRC(03dcfba2) SHA1(c15e3d0c4225e0ca120bcd28aca39632575f8e11) )
+ ROM_LOAD( "c4-02.bin", 0x2000, 0x2000, CRC(0ecdd39c) SHA1(c64b3363593911a676c647bf3dba8fe063fcb0de) )
+ ROM_LOAD( "e4-03.bin", 0x4000, 0x2000, CRC(358f5dc2) SHA1(9fed1f5d1d04935d1b77687c8b2f3bfce970dc08) )
+ ROM_LOAD( "f4-04.bin", 0x6000, 0x2000, CRC(f4190cfc) SHA1(24f5125d900f944294d4eda068b710c8f1c6d39f) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "st-s8-09", 0x0000, 0x1000, CRC(0becc7bc) SHA1(d5ef21aa6f8daaf98f4c6c809504edea4fde35a1) )
+ ROM_LOAD( "st-u8-10", 0x1000, 0x1000, CRC(fc08364e) SHA1(69edf2405836511035f46cddb339e57b4eb5b2fe) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "nd-r8-08", 0x0000, 0x1000, CRC(069a3e35) SHA1(09a361baed6417fdb4ecc1d8dd09ae9b2ccdef99) )
+ ROM_LOAD( "nd-n8-07", 0x1000, 0x1000, CRC(7ef6f5e4) SHA1(8839f6670010c0249b19f306c200c29775dc0351) )
+
+ ROM_REGION( 0x2000, "gfx3", 0 )
+ ROM_LOAD( "st-h5-05", 0x0000, 0x1000, CRC(64d2f54f) SHA1(f301c0190f780bc60d03e5b752bde5e81ce5e93c) )
+ ROM_LOAD( "st-k5-06", 0x1000, 0x1000, CRC(af9b0d35) SHA1(da2d469514a3b95362dace2f48d320234a695e28) )
+
+ ROM_REGION( 0x0080, "proms", 0 )
+ ROM_LOAD( "u02--2.bin", 0x0000, 0x0020, CRC(238a65d7) SHA1(a5b20184a1989db23544296331462ec4d7be7516) )
+ ROM_LOAD( "t02--3.bin", 0x0020, 0x0020, CRC(ae263dc0) SHA1(7072c100b9d692f5bb12b0c9e304425f534481e2) )
+ ROM_LOAD( "f10--1.bin", 0x0040, 0x0020, CRC(16ee4ca2) SHA1(fcba4d103708b9711452009cd29c4f88d2f64cd3) )
+ ROM_LOAD( "j10--4.bin", 0x0060, 0x0020, CRC(ff7fe284) SHA1(3ac8e30011c1fcba0ee8f4dc932f82296c3ba143) )
+ROM_END
+
+GAME( 1998, mrdigdo, mrdo, mrdo, mrdo, driver_device, 0, ROT270, "Justin Clark", "Mr. Do! (Dig Dug sprites)", MACHINE_SUPPORTS_SAVE )
+GAME( 1982, mrdofast, mrdo, mrdo, mrdo, driver_device, 0, ROT270, "Evil Exidy Dump", "Mr. Do! (Speedup Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, mrpac, mrdo, mrdo, mrdo, driver_device, 0, ROT270, "Twisty", "Mr. Pac! (Set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, mrpacb, mrdo, mrdo, mrdo, driver_device, 0, ROT270, "Twisty", "Mr. Pac! (Set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, newdigdo, mrdo, mrdo, mrdo, driver_device, 0, ROT270, "Vic Twenty George, Jerky, Justin Clark", "Mr. Do! (Dig Dug sprites, new version)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, stickydo, mrdo, mrdo, mrdo, driver_device, 0, ROT270, "Marks Hacks", "Mr. Sticky Do!", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/mslug.cpp b/docs/release/src/hbmame/drivers/mslug.cpp
new file mode 100644
index 00000000000..ceb6e224587
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/mslug.cpp
@@ -0,0 +1,2747 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#if 0
+DRIVER_INIT_MEMBER( neogeo_hbmame, mslugx )
+{
+ mslugx_install_protection();
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, mslug3 )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sma_prot->mslug3_decrypt_68k(cpuregion);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->cmc42_neogeo_gfx_decrypt(spr_region, spr_region_size, MSLUG3_GFX_KEY);
+ m_sma_prot->mslug3_install_protection(m_maincpu, m_banked_cart);
+
+#endif
+DRIVER_INIT_MEMBER( neogeo_hbmame, mslug3n ) // decrypt gfx and extract sx
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->cmc42_neogeo_gfx_decrypt(spr_region, spr_region_size, MSLUG3_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, mslug3d )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sma_prot->mslug3_decrypt_68k(cpuregion);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_sma_prot->mslug3_install_protection(m_maincpu, m_banked_cart);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, mslug3fr )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_sma_prot->mslug3_install_protection(m_maincpu, m_banked_cart);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, mslug4d )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+ m_pcm2_prot->neo_pcm2_snk_1999(ym_region, ym_region_size, 8);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, mslug4dh )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, mslug4it )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, MSLUG4_GFX_KEY);
+ m_pcm2_prot->neo_pcm2_snk_1999(ym_region, ym_region_size, 8);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, mslug4m )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, MSLUG4_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+ m_pcm2_prot->neo_pcm2_snk_1999(ym_region, ym_region_size, 8);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, mslug5b )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, MSLUG5_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 2);
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size);
+ m_pvc_prot->install_pvc_protection(m_maincpu, m_banked_cart);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, mslug5d )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_pvc_prot->mslug5_decrypt_68k(cpuregion, cpuregion_size);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 2);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+ m_pvc_prot->install_pvc_protection(m_maincpu, m_banked_cart);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, mslug5hd )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 2;
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 2);
+ m_pvc_prot->mslug5_decrypt_68k(cpuregion, cpuregion_size);
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size);
+ m_pvc_prot->install_pvc_protection(m_maincpu, m_banked_cart);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, mslug5d1 )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 2);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, mslug5fr1 )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 2);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, ms5boot )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 2;
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, mslug5nd )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, ms5pcbd )
+{
+ DRIVER_INIT_CALL(neogeo);
+
+ m_pvc_prot->mslug5_decrypt_68k(cpuregion, cpuregion_size);
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+ m_sprgen->m_fixed_layer_bank_type = 2;
+ m_sma_prot->svcpcb_s1data_decrypt(fix_region, fix_region_size);
+ m_pvc_prot->install_pvc_protection(m_maincpu, m_banked_cart);
+ install_banked_bios();
+}
+
+
+
+#if 0
+ROM_START( mslug )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "201-p1.p1", 0x100000, 0x100000, CRC(08d8daa5) SHA1(b888993dbb7e9f0a28a01d7d2e1da00ef9cf6f38) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "201-s1.s1", CRC(2f55958d) SHA1(550b53628daec9f1e1e11a398854092d90f9505a) )
+
+ NEO_BIOS_AUDIO_128K( "201-m1.m1", CRC(c28b3253) SHA1(fd75bd15aed30266a8b3775f276f997af57d1c06) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "201-v1.v1", 0x000000, 0x400000, CRC(23d22ed1) SHA1(cd076928468ad6bcc5f19f88cb843ecb5e660681) )
+ ROM_LOAD( "201-v2.v2", 0x400000, 0x400000, CRC(472cf9db) SHA1(5f79ea9286d22ed208128f9c31ca75552ce08b57) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "201-c1.c1", 0x000000, 0x400000, CRC(72813676) SHA1(7b045d1a48980cb1a140699011cb1a3d4acdc4d1) )
+ ROM_LOAD16_BYTE( "201-c2.c2", 0x000001, 0x400000, CRC(96f62574) SHA1(cb7254b885989223bba597b8ff0972dfa5957816) )
+ ROM_LOAD16_BYTE( "201-c3.c3", 0x800000, 0x400000, CRC(5121456a) SHA1(0a7a27d603d1bb2520b5570ebf5b34a106e255a6) )
+ ROM_LOAD16_BYTE( "201-c4.c4", 0x800001, 0x400000, CRC(f4ad59a3) SHA1(4e94fda8ee63abf0f92afe08060a488546e5c280) )
+ROM_END
+#endif
+ROM_START( msboot )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "201-p1.p1", 0x100000, 0x100000, CRC(08d8daa5) SHA1(b888993dbb7e9f0a28a01d7d2e1da00ef9cf6f38) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "201-s1.s1", CRC(2f55958d) SHA1(550b53628daec9f1e1e11a398854092d90f9505a) )
+
+ NEO_BIOS_AUDIO_128K( "201-m1.m1", CRC(c28b3253) SHA1(fd75bd15aed30266a8b3775f276f997af57d1c06) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "201boot.v1", 0x000000, 0x200000, CRC(2C05FD7C) SHA1(4f28bc799da0e27b2f3cde364d8c9822468abb8f) )
+ ROM_LOAD( "201boot.v2", 0x200000, 0x200000, CRC(752DE272) SHA1(1e9ffb296a1089e15b23455841ad91e8a565ba62) )
+ ROM_LOAD( "201boot.v3", 0x400000, 0x200000, CRC(AA48FAA6) SHA1(4695b9dafdc13997410cbd7954c2a7f1b5e4649d) )
+ ROM_LOAD( "201boot.v4", 0x600000, 0x200000, CRC(4264444B) SHA1(7c248e8e559c67d6e8474ec6ce5cf2e3e41235e4) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "201-c1.c1", 0x000000, 0x400000, CRC(72813676) SHA1(7b045d1a48980cb1a140699011cb1a3d4acdc4d1) )
+ ROM_LOAD16_BYTE( "201-c2.c2", 0x000001, 0x400000, CRC(96f62574) SHA1(cb7254b885989223bba597b8ff0972dfa5957816) )
+ ROM_LOAD16_BYTE( "201-c3.c3", 0x800000, 0x400000, CRC(5121456a) SHA1(0a7a27d603d1bb2520b5570ebf5b34a106e255a6) )
+ ROM_LOAD16_BYTE( "201-c4.c4", 0x800001, 0x400000, CRC(f4ad59a3) SHA1(4e94fda8ee63abf0f92afe08060a488546e5c280) )
+ROM_END
+
+ROM_START( mslugeh ) /* Metal Slug - Enhance by Ydmis - (New standard weapon shotgun - 20 bombs instead of 10) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "201eh.p1", 0x100000, 0x100000, CRC(20bb97f7) SHA1(1444cad0262883b9e6c581387634d4e82a33c6bb) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "201-s1.s1", CRC(2f55958d) SHA1(550b53628daec9f1e1e11a398854092d90f9505a) )
+
+ NEO_BIOS_AUDIO_128K( "201-m1.m1", CRC(c28b3253) SHA1(fd75bd15aed30266a8b3775f276f997af57d1c06) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "201-v1.v1", 0x000000, 0x400000, CRC(23d22ed1) SHA1(cd076928468ad6bcc5f19f88cb843ecb5e660681) )
+ ROM_LOAD( "201-v2.v2", 0x400000, 0x400000, CRC(472cf9db) SHA1(5f79ea9286d22ed208128f9c31ca75552ce08b57) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "201-c1.c1", 0x000000, 0x400000, CRC(72813676) SHA1(7b045d1a48980cb1a140699011cb1a3d4acdc4d1) )
+ ROM_LOAD16_BYTE( "201-c2.c2", 0x000001, 0x400000, CRC(96f62574) SHA1(cb7254b885989223bba597b8ff0972dfa5957816) )
+ ROM_LOAD16_BYTE( "201-c3.c3", 0x800000, 0x400000, CRC(5121456a) SHA1(0a7a27d603d1bb2520b5570ebf5b34a106e255a6) )
+ ROM_LOAD16_BYTE( "201-c4.c4", 0x800001, 0x400000, CRC(f4ad59a3) SHA1(4e94fda8ee63abf0f92afe08060a488546e5c280) )
+ROM_END
+
+
+
+#if 0
+ROM_START( mslug2 ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "241-p1.p1", 0x000000, 0x100000, CRC(2a53c5da) SHA1(5a6aba482cac588a6c2c51179c95b487c6e11899) )
+ ROM_LOAD16_WORD_SWAP( "241-p2.sp2", 0x100000, 0x200000, CRC(38883f44) SHA1(fcf34b8c6e37774741542393b963635412484a27) )
+
+ NEO_SFIX_128K( "241-s1.s1", CRC(f3d32f0f) SHA1(2dc38b7dfd3ff14f64d5c0733c510b6bb8c692d0) )
+
+ NEO_BIOS_AUDIO_128K( "241-m1.m1", CRC(94520ebd) SHA1(f8a1551cebcb91e416f30f50581feed7f72899e9) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "241-v1.v1", 0x000000, 0x400000, CRC(99ec20e8) SHA1(80597707f1fe115eed1941bb0701fc00790ad504) )
+ ROM_LOAD( "241-v2.v2", 0x400000, 0x400000, CRC(ecb16799) SHA1(b4b4ddc680836ed55942c66d7dfe756314e02211) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "241-c1.c1", 0x0000000, 0x800000, CRC(394b5e0d) SHA1(4549926f5054ee6aa7689cf920be0327e3908a50) )
+ ROM_LOAD16_BYTE( "241-c2.c2", 0x0000001, 0x800000, CRC(e5806221) SHA1(1e5475cfab129c77acc610f09369ca42ba5aafa5) )
+ ROM_LOAD16_BYTE( "241-c3.c3", 0x1000000, 0x800000, CRC(9f6bfa6f) SHA1(a4319b48004e723f81a980887678e3e296049a53) )
+ ROM_LOAD16_BYTE( "241-c4.c4", 0x1000001, 0x800000, CRC(7d3e306f) SHA1(1499316fb381775218d897b81a6a0c3465d1a37c) )
+ROM_END
+#endif
+ROM_START( mslug2eh ) /* Metal Slug 2 - Enhance by Ydmis - (Style remix) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "241eh.p1", 0x000000, 0x100000, CRC(82cdf18b) SHA1(4a51e4973f7ff5d7149763502e07cf2fc8ec9f43) )
+ ROM_LOAD16_WORD_SWAP( "241-p2.sp2", 0x100000, 0x200000, CRC(38883f44) SHA1(fcf34b8c6e37774741542393b963635412484a27) )
+
+ NEO_SFIX_128K( "241-s1.s1", CRC(f3d32f0f) SHA1(2dc38b7dfd3ff14f64d5c0733c510b6bb8c692d0) )
+
+ NEO_BIOS_AUDIO_128K( "241-m1.m1", CRC(94520ebd) SHA1(f8a1551cebcb91e416f30f50581feed7f72899e9) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "241-v1.v1", 0x000000, 0x400000, CRC(99ec20e8) SHA1(80597707f1fe115eed1941bb0701fc00790ad504) )
+ ROM_LOAD( "241-v2.v2", 0x400000, 0x400000, CRC(ecb16799) SHA1(b4b4ddc680836ed55942c66d7dfe756314e02211) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "241-c1.c1", 0x0000000, 0x800000, CRC(394b5e0d) SHA1(4549926f5054ee6aa7689cf920be0327e3908a50) )
+ ROM_LOAD16_BYTE( "241-c2.c2", 0x0000001, 0x800000, CRC(e5806221) SHA1(1e5475cfab129c77acc610f09369ca42ba5aafa5) )
+ ROM_LOAD16_BYTE( "241-c3.c3", 0x1000000, 0x800000, CRC(9f6bfa6f) SHA1(a4319b48004e723f81a980887678e3e296049a53) )
+ ROM_LOAD16_BYTE( "241-c4.c4", 0x1000001, 0x800000, CRC(7d3e306f) SHA1(1499316fb381775218d897b81a6a0c3465d1a37c) )
+ROM_END
+
+ROM_START( mslug2eh0 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "241eh0.p1", 0x000000, 0x100000, CRC(d2dbae34) SHA1(6bd86bd6b3f4a08d0586efccdef457499bb53d8f) )
+ ROM_LOAD16_WORD_SWAP( "241-p2.sp2", 0x100000, 0x200000, CRC(38883f44) SHA1(fcf34b8c6e37774741542393b963635412484a27) )
+
+ NEO_SFIX_128K( "241-s1.s1", CRC(f3d32f0f) SHA1(2dc38b7dfd3ff14f64d5c0733c510b6bb8c692d0) )
+
+ NEO_BIOS_AUDIO_128K( "241-m1.m1", CRC(94520ebd) SHA1(f8a1551cebcb91e416f30f50581feed7f72899e9) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "241-v1.v1", 0x000000, 0x400000, CRC(99ec20e8) SHA1(80597707f1fe115eed1941bb0701fc00790ad504) )
+ ROM_LOAD( "241-v2.v2", 0x400000, 0x400000, CRC(ecb16799) SHA1(b4b4ddc680836ed55942c66d7dfe756314e02211) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "241-c1.c1", 0x0000000, 0x800000, CRC(394b5e0d) SHA1(4549926f5054ee6aa7689cf920be0327e3908a50) )
+ ROM_LOAD16_BYTE( "241-c2.c2", 0x0000001, 0x800000, CRC(e5806221) SHA1(1e5475cfab129c77acc610f09369ca42ba5aafa5) )
+ ROM_LOAD16_BYTE( "241-c3.c3", 0x1000000, 0x800000, CRC(9f6bfa6f) SHA1(a4319b48004e723f81a980887678e3e296049a53) )
+ ROM_LOAD16_BYTE( "241-c4.c4", 0x1000001, 0x800000, CRC(7d3e306f) SHA1(1499316fb381775218d897b81a6a0c3465d1a37c) )
+ROM_END
+
+ROM_START( mslug2eh1 ) /* Metal Slug 2 - Enhance by Ydmis - (Style remix) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "241eh1.p1", 0x000000, 0x100000, CRC(e8646c37) SHA1(f3d02a16ec6106e6c20d8c519893d532764420a6) )
+ ROM_LOAD16_WORD_SWAP( "241-p2.sp2", 0x100000, 0x200000, CRC(38883f44) SHA1(fcf34b8c6e37774741542393b963635412484a27) )
+
+ NEO_SFIX_128K( "241-s1.s1", CRC(f3d32f0f) SHA1(2dc38b7dfd3ff14f64d5c0733c510b6bb8c692d0) )
+
+ NEO_BIOS_AUDIO_128K( "241-m1.m1", CRC(94520ebd) SHA1(f8a1551cebcb91e416f30f50581feed7f72899e9) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "241-v1.v1", 0x000000, 0x400000, CRC(99ec20e8) SHA1(80597707f1fe115eed1941bb0701fc00790ad504) )
+ ROM_LOAD( "241-v2.v2", 0x400000, 0x400000, CRC(ecb16799) SHA1(b4b4ddc680836ed55942c66d7dfe756314e02211) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "241-c1.c1", 0x0000000, 0x800000, CRC(394b5e0d) SHA1(4549926f5054ee6aa7689cf920be0327e3908a50) )
+ ROM_LOAD16_BYTE( "241-c2.c2", 0x0000001, 0x800000, CRC(e5806221) SHA1(1e5475cfab129c77acc610f09369ca42ba5aafa5) )
+ ROM_LOAD16_BYTE( "241-c3.c3", 0x1000000, 0x800000, CRC(9f6bfa6f) SHA1(a4319b48004e723f81a980887678e3e296049a53) )
+ ROM_LOAD16_BYTE( "241-c4.c4", 0x1000001, 0x800000, CRC(7d3e306f) SHA1(1499316fb381775218d897b81a6a0c3465d1a37c) )
+ROM_END
+
+ROM_START( mslug2eh2 ) /* Metal Slug 2 - Enhance by Ydmis - (Style remix) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "241eh2.p1", 0x000000, 0x100000, CRC(579ecaf3) SHA1(e437ae08b265202635c963f10e497ed1788b75fa) )
+ ROM_LOAD16_WORD_SWAP( "241-p2.sp2", 0x100000, 0x200000, CRC(38883f44) SHA1(fcf34b8c6e37774741542393b963635412484a27) )
+
+ NEO_SFIX_128K( "241-s1.s1", CRC(f3d32f0f) SHA1(2dc38b7dfd3ff14f64d5c0733c510b6bb8c692d0) )
+
+ NEO_BIOS_AUDIO_128K( "241-m1.m1", CRC(94520ebd) SHA1(f8a1551cebcb91e416f30f50581feed7f72899e9) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "241-v1.v1", 0x000000, 0x400000, CRC(99ec20e8) SHA1(80597707f1fe115eed1941bb0701fc00790ad504) )
+ ROM_LOAD( "241-v2.v2", 0x400000, 0x400000, CRC(ecb16799) SHA1(b4b4ddc680836ed55942c66d7dfe756314e02211) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "241-c1.c1", 0x0000000, 0x800000, CRC(394b5e0d) SHA1(4549926f5054ee6aa7689cf920be0327e3908a50) )
+ ROM_LOAD16_BYTE( "241-c2.c2", 0x0000001, 0x800000, CRC(e5806221) SHA1(1e5475cfab129c77acc610f09369ca42ba5aafa5) )
+ ROM_LOAD16_BYTE( "241-c3.c3", 0x1000000, 0x800000, CRC(9f6bfa6f) SHA1(a4319b48004e723f81a980887678e3e296049a53) )
+ ROM_LOAD16_BYTE( "241-c4.c4", 0x1000001, 0x800000, CRC(7d3e306f) SHA1(1499316fb381775218d897b81a6a0c3465d1a37c) )
+ROM_END
+
+ROM_START( mslug2eh3 ) /* Metal Slug 2 - Enhance by Ydmis - (Style remix) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "241eh3.p1", 0x000000, 0x100000, CRC(3d37574f) SHA1(431e80d8689cdba27726265a7dab2ac7a5db71e2) )
+ ROM_LOAD16_WORD_SWAP( "241-p2.sp2", 0x100000, 0x200000, CRC(38883f44) SHA1(fcf34b8c6e37774741542393b963635412484a27) )
+
+ NEO_SFIX_128K( "241-s1.s1", CRC(f3d32f0f) SHA1(2dc38b7dfd3ff14f64d5c0733c510b6bb8c692d0) )
+
+ NEO_BIOS_AUDIO_128K( "241-m1.m1", CRC(94520ebd) SHA1(f8a1551cebcb91e416f30f50581feed7f72899e9) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "241-v1.v1", 0x000000, 0x400000, CRC(99ec20e8) SHA1(80597707f1fe115eed1941bb0701fc00790ad504) )
+ ROM_LOAD( "241-v2.v2", 0x400000, 0x400000, CRC(ecb16799) SHA1(b4b4ddc680836ed55942c66d7dfe756314e02211) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "241-c1.c1", 0x0000000, 0x800000, CRC(394b5e0d) SHA1(4549926f5054ee6aa7689cf920be0327e3908a50) )
+ ROM_LOAD16_BYTE( "241-c2.c2", 0x0000001, 0x800000, CRC(e5806221) SHA1(1e5475cfab129c77acc610f09369ca42ba5aafa5) )
+ ROM_LOAD16_BYTE( "241-c3.c3", 0x1000000, 0x800000, CRC(9f6bfa6f) SHA1(a4319b48004e723f81a980887678e3e296049a53) )
+ ROM_LOAD16_BYTE( "241-c4.c4", 0x1000001, 0x800000, CRC(7d3e306f) SHA1(1499316fb381775218d897b81a6a0c3465d1a37c) )
+ROM_END
+
+ROM_START( mslug2eh4 ) /* Metal Slug 2 - Enhance by Ydmis - (Style remix) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "241eh4.p1", 0x000000, 0x100000, CRC(f31a813a) SHA1(a0024fc378b7e7daa4f48049042ecb8b2551e71a) )
+ ROM_LOAD16_WORD_SWAP( "241-p2.sp2", 0x100000, 0x200000, CRC(38883f44) SHA1(fcf34b8c6e37774741542393b963635412484a27) )
+
+ NEO_SFIX_128K( "241-s1.s1", CRC(f3d32f0f) SHA1(2dc38b7dfd3ff14f64d5c0733c510b6bb8c692d0) )
+
+ NEO_BIOS_AUDIO_128K( "241-m1.m1", CRC(94520ebd) SHA1(f8a1551cebcb91e416f30f50581feed7f72899e9) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "241-v1.v1", 0x000000, 0x400000, CRC(99ec20e8) SHA1(80597707f1fe115eed1941bb0701fc00790ad504) )
+ ROM_LOAD( "241-v2.v2", 0x400000, 0x400000, CRC(ecb16799) SHA1(b4b4ddc680836ed55942c66d7dfe756314e02211) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "241-c1.c1", 0x0000000, 0x800000, CRC(394b5e0d) SHA1(4549926f5054ee6aa7689cf920be0327e3908a50) )
+ ROM_LOAD16_BYTE( "241-c2.c2", 0x0000001, 0x800000, CRC(e5806221) SHA1(1e5475cfab129c77acc610f09369ca42ba5aafa5) )
+ ROM_LOAD16_BYTE( "241-c3.c3", 0x1000000, 0x800000, CRC(9f6bfa6f) SHA1(a4319b48004e723f81a980887678e3e296049a53) )
+ ROM_LOAD16_BYTE( "241-c4.c4", 0x1000001, 0x800000, CRC(7d3e306f) SHA1(1499316fb381775218d897b81a6a0c3465d1a37c) )
+ROM_END
+
+ROM_START( mslug2fr ) /* Metal Slug 2 - Translation Hack by NEO-ARC - (French translation) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "241fr.p1", 0x000000, 0x100000, CRC(ad0de810) SHA1(69c56326b555fb2c18228794e1a2bfd11652ec16) )
+ ROM_LOAD16_WORD_SWAP( "241-p2.sp2", 0x100000, 0x200000, CRC(38883f44) SHA1(fcf34b8c6e37774741542393b963635412484a27) )
+
+ NEO_SFIX_128K( "241-s1.s1", CRC(f3d32f0f) SHA1(2dc38b7dfd3ff14f64d5c0733c510b6bb8c692d0) )
+
+ NEO_BIOS_AUDIO_128K( "241-m1.m1", CRC(94520ebd) SHA1(f8a1551cebcb91e416f30f50581feed7f72899e9) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "241-v1.v1", 0x000000, 0x400000, CRC(99ec20e8) SHA1(80597707f1fe115eed1941bb0701fc00790ad504) )
+ ROM_LOAD( "241-v2.v2", 0x400000, 0x400000, CRC(ecb16799) SHA1(b4b4ddc680836ed55942c66d7dfe756314e02211) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "241fr.c1", 0x0000000, 0x800000, CRC(7df74035) SHA1(08322a2f4e87cd125ebc5b7a98754c7a5b8e91d2) )
+ ROM_LOAD16_BYTE( "241fr.c2", 0x0000001, 0x800000, CRC(97d9525d) SHA1(451a5bdafe1f2de63b76efb7d4afab454abdfff0) )
+ ROM_LOAD16_BYTE( "241-c3.c3", 0x1000000, 0x800000, CRC(9f6bfa6f) SHA1(a4319b48004e723f81a980887678e3e296049a53) )
+ ROM_LOAD16_BYTE( "241-c4.c4", 0x1000001, 0x800000, CRC(7d3e306f) SHA1(1499316fb381775218d897b81a6a0c3465d1a37c) )
+ROM_END
+
+ROM_START( mslug2fro ) /* [OLD] Metal Slug 2 - (mslug2fro) - Translation Hack by NEO-ARC - (French translation) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "241fro.p1", 0x000000, 0x100000, CRC(b0fe22b3) SHA1(9b2d19694165d1f5e20da70b645e55294a10ef51) )
+ ROM_LOAD16_WORD_SWAP( "241-p2.sp2", 0x100000, 0x200000, CRC(38883f44) SHA1(fcf34b8c6e37774741542393b963635412484a27) )
+
+ NEO_SFIX_128K( "241-s1.s1", CRC(f3d32f0f) SHA1(2dc38b7dfd3ff14f64d5c0733c510b6bb8c692d0) )
+
+ NEO_BIOS_AUDIO_128K( "241-m1.m1", CRC(94520ebd) SHA1(f8a1551cebcb91e416f30f50581feed7f72899e9) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "241-v1.v1", 0x000000, 0x400000, CRC(99ec20e8) SHA1(80597707f1fe115eed1941bb0701fc00790ad504) )
+ ROM_LOAD( "241-v2.v2", 0x400000, 0x400000, CRC(ecb16799) SHA1(b4b4ddc680836ed55942c66d7dfe756314e02211) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "241fro.c1", 0x0000000, 0x800000, CRC(44da3c4a) SHA1(72ea1c469b332d8c60816e4c965d4f46a5090baa) )
+ ROM_LOAD16_BYTE( "241fro.c2", 0x0000001, 0x800000, CRC(07c20fad) SHA1(8664950aa7569cd6594b8964f053b19a18c2d5a9) )
+ ROM_LOAD16_BYTE( "241-c3.c3", 0x1000000, 0x800000, CRC(9f6bfa6f) SHA1(a4319b48004e723f81a980887678e3e296049a53) )
+ ROM_LOAD16_BYTE( "241-c4.c4", 0x1000001, 0x800000, CRC(7d3e306f) SHA1(1499316fb381775218d897b81a6a0c3465d1a37c) )
+ROM_END
+
+ROM_START( mslug2sh )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "241sh.p1", 0x000000, 0x100000, CRC(4e4c8d1d) SHA1(bdb30f68fa1345511cbe1afcdf04c5f59d8965a1) )
+ ROM_LOAD16_WORD_SWAP( "241-p2.sp2", 0x100000, 0x200000, CRC(38883f44) SHA1(fcf34b8c6e37774741542393b963635412484a27) )
+
+ NEO_SFIX_128K( "241-s1.s1", CRC(f3d32f0f) SHA1(2dc38b7dfd3ff14f64d5c0733c510b6bb8c692d0) )
+
+ NEO_BIOS_AUDIO_128K( "241-m1.m1", CRC(94520ebd) SHA1(f8a1551cebcb91e416f30f50581feed7f72899e9) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "241-v1.v1", 0x000000, 0x400000, CRC(99ec20e8) SHA1(80597707f1fe115eed1941bb0701fc00790ad504) )
+ ROM_LOAD( "241-v2.v2", 0x400000, 0x400000, CRC(ecb16799) SHA1(b4b4ddc680836ed55942c66d7dfe756314e02211) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "241-c1.c1", 0x0000000, 0x800000, CRC(394b5e0d) SHA1(4549926f5054ee6aa7689cf920be0327e3908a50) )
+ ROM_LOAD16_BYTE( "241-c2.c2", 0x0000001, 0x800000, CRC(e5806221) SHA1(1e5475cfab129c77acc610f09369ca42ba5aafa5) )
+ ROM_LOAD16_BYTE( "241-c3.c3", 0x1000000, 0x800000, CRC(9f6bfa6f) SHA1(a4319b48004e723f81a980887678e3e296049a53) )
+ ROM_LOAD16_BYTE( "241-c4.c4", 0x1000001, 0x800000, CRC(7d3e306f) SHA1(1499316fb381775218d897b81a6a0c3465d1a37c) )
+ROM_END
+
+ROM_START( mslug2t ) /* System11 - Metal Slug 2 Turbo - hack to remove slowdowns in gameplay */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "241t.p1", 0x000000, 0x100000, CRC(df5d6fbc) SHA1(b9cc3e29afc12dc98daac9afb4f94e2cdd8b455c) )
+ ROM_LOAD16_WORD_SWAP( "241-p2.sp2", 0x100000, 0x200000, CRC(38883f44) SHA1(fcf34b8c6e37774741542393b963635412484a27) )
+
+ NEO_SFIX_128K( "241-s1.s1", CRC(f3d32f0f) SHA1(2dc38b7dfd3ff14f64d5c0733c510b6bb8c692d0) )
+
+ NEO_BIOS_AUDIO_128K( "241-m1.m1", CRC(94520ebd) SHA1(f8a1551cebcb91e416f30f50581feed7f72899e9) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "241-v1.v1", 0x000000, 0x400000, CRC(99ec20e8) SHA1(80597707f1fe115eed1941bb0701fc00790ad504) )
+ ROM_LOAD( "241-v2.v2", 0x400000, 0x400000, CRC(ecb16799) SHA1(b4b4ddc680836ed55942c66d7dfe756314e02211) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "241-c1.c1", 0x0000000, 0x800000, CRC(394b5e0d) SHA1(4549926f5054ee6aa7689cf920be0327e3908a50) )
+ ROM_LOAD16_BYTE( "241-c2.c2", 0x0000001, 0x800000, CRC(e5806221) SHA1(1e5475cfab129c77acc610f09369ca42ba5aafa5) )
+ ROM_LOAD16_BYTE( "241-c3.c3", 0x1000000, 0x800000, CRC(9f6bfa6f) SHA1(a4319b48004e723f81a980887678e3e296049a53) )
+ ROM_LOAD16_BYTE( "241-c4.c4", 0x1000001, 0x800000, CRC(7d3e306f) SHA1(1499316fb381775218d897b81a6a0c3465d1a37c) )
+ROM_END
+
+
+
+#if 0
+ROM_START( mslugx ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250-p1.p1", 0x000000, 0x100000, CRC(81f1f60b) SHA1(4c19f2e9824e606178ac1c9d4b0516fbaa625035) )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+#endif
+ROM_START( mslugxce )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250ce.p1", 0x000000, 0x100000, CRC(e75a6d64) SHA1(529130f7ebb43231e6bf1b1703266b6c09356f9c) )
+ ROM_LOAD16_WORD_SWAP( "250ce.p2", 0x100000, 0x400000, CRC(5d1c52cd) SHA1(b2b131fa845b0098cbf0750fee20b402e276483b) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxeb )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250eb.p1", 0x000000, 0x100000, CRC(c41c7ddb) SHA1(1662a1fd1c35511b3091e979b55e940a9f887143) )
+ ROM_CONTINUE (0x000000, 0x100000)
+ ROM_LOAD16_WORD_SWAP( "250eb.p2", 0x100000, 0x400000, CRC(a51363d1) SHA1(7b6b3490a975ac1e549df60b9d70ccd6d2f2ba6e) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxeh ) /* Metal Slug X - Enhance by KrysoFun/KVS - (Style remix) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250eh.p1", 0x000000, 0x100000, CRC(2e110dd7) SHA1(4ce18a726103bc7c1972125806b2c89332338050) )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxeh1 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250eh1.p1", 0x000000, 0x100000, CRC(2b016e87) SHA1(ab99da64a084f5fef75d9647182a42d7e72bd4c4) )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxex )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250ex.p1", 0x000000, 0x100000, CRC(7b751398) SHA1(6149b81b5fb4e9b501a7b119b030df432985b409) )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxfe )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fe.p1", 0x000000, 0x100000, CRC(5a8b3db8) SHA1(7324aad0cc33f6b11b0350ca9d80246a412994d4) )
+ ROM_IGNORE( 0x354f47 )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxfr ) /* Metal Slug X - Translation Hack by NEO-ARC - (French translation) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr.p1", 0x000000, 0x100000, CRC(58a64443) SHA1(ab07993de04eb65f89bab5d4b6e473d7ecbc8ff1) )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxfro ) /* [OLD] Metal Slug X - (mslugxfro) - Translation Hack by NEO-ARC - (French translation) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fro.p1", 0x000000, 0x100000, CRC(4dadf4f3) SHA1(e37e53370cd6b03bb0e2b8266f635ce7980de45b) )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxhp )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250-p1.p1", 0x000000, 0x100000, CRC(81f1f60b) SHA1(4c19f2e9824e606178ac1c9d4b0516fbaa625035) )
+ ROM_LOAD16_WORD_SWAP( "250hp.p2", 0x100000, 0x400000, CRC(eac6830a) SHA1(27927f5341c128f93d74113514f2d099d01acbdf) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxit )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250it.p1", 0x000000, 0x100000, CRC(f3e154ea) SHA1(bb8260deefa7b048772625085e6f41cab717a147) )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjdkj )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jdkj.p1", 0x000000, 0x100000, CRC(4c1b90b1) SHA1(6127e60a6ef0daf82506c46e8344e1a4064b5186) )
+ ROM_IGNORE( 0x354f47 )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxmfb )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250mfb.p1", 0x000000, 0x100000, CRC(bd3611dc) SHA1(9c27f8a10f0a0da051b15cf42e6aed8f60abd309) )
+ ROM_LOAD16_WORD_SWAP( "250mfb.p2", 0x100000, 0x400000, CRC(7b47677c) SHA1(af42d01b6fb3c288b1750b9960c11020bc12b7b4) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxp )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250p.p1", 0x000000, 0x100000, CRC(e65937fc) SHA1(128af1815a23962de02384d61ff52869ae14cea1) )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxr )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250r.p1", 0x000000, 0x100000, CRC(e74f36c2) SHA1(b17d66f36e6ac31433179566ea07a0ed8790b161) )
+ ROM_LOAD16_WORD_SWAP( "250r.p2", 0x100000, 0x400000, CRC(e954b8aa) SHA1(b339b1fd05d50ac3a9d3992bb0fc8e3fd1a95557) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxres )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250res.p1", 0x000000, 0x100000, CRC(d69fb994) SHA1(2cbffae29b92ef4b8f90e01488f89654a42a8596) )
+ ROM_LOAD16_WORD_SWAP( "250ce.p2", 0x100000, 0x400000, CRC(5d1c52cd) SHA1(b2b131fa845b0098cbf0750fee20b402e276483b) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxsef )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250sef.p1", 0x000000, 0x100000, CRC(aae5130c) SHA1(08b5fde0b809d0e68e89e6ef07fc83d7aedc8593) )
+ ROM_LOAD16_WORD_SWAP( "250mfb.p2", 0x100000, 0x400000, CRC(7b47677c) SHA1(af42d01b6fb3c288b1750b9960c11020bc12b7b4) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxst )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250st.p1", 0x000000, 0x100000, CRC(db88d115) SHA1(627d01c4d4bd6c4cfeac5f14859fe9a7026370b0) )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxsvb )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250svb.p1", 0x000000, 0x100000, CRC(4619b7de) SHA1(b1b1875f15528a12408ad477a9b1759ba74ec0d2) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+
+
+#if 0
+ROM_START( mslug3 ) /* Original Version - Encrypted Code & GFX */ /* revision 2000.4.1 */ /* MVS VERSION */
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "neo-sma", 0x0c0000, 0x040000, CRC(9cd55736) SHA1(d6efb2b313127c2911d47d9324626b3f1e7c6ccb) )
+ ROM_LOAD16_WORD_SWAP( "256-pg1.p1", 0x100000, 0x400000, CRC(b07edfd5) SHA1(dcbd9e500bfae98d754e55cdbbbbf9401013f8ee) )
+ ROM_LOAD16_WORD_SWAP( "256-pg2.p2", 0x500000, 0x400000, CRC(6097c26b) SHA1(248ec29d21216f29dc6f5f3f0e1ad1601b3501b6) )
+
+ ROM_Y_ZOOM
+
+ /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */
+ ROM_REGION( 0x80000, "fixed", 0 ) /* larger char set */
+ ROM_FILL( 0x000000, 0x20000, 0 )
+ ROM_REGION( 0x20000, "fixedbios", 0 )
+ ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) )
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+#endif
+ROM_START( mslug3d )
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "neo-sma", 0x0c0000, 0x040000, CRC(9cd55736) SHA1(d6efb2b313127c2911d47d9324626b3f1e7c6ccb) )
+ ROM_LOAD16_WORD_SWAP( "256-pg1.p1", 0x100000, 0x400000, CRC(b07edfd5) SHA1(dcbd9e500bfae98d754e55cdbbbbf9401013f8ee) )
+ ROM_LOAD16_WORD_SWAP( "256-pg2.p2", 0x500000, 0x400000, CRC(6097c26b) SHA1(248ec29d21216f29dc6f5f3f0e1ad1601b3501b6) )
+
+ //NEO_SFIX_128K( "256d.s1", CRC(6d9d4d0a) SHA1(4237247494aa0d734ffc728c7fc2808aca42539e) )
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256d.c1", 0x0000000, 0x800000, CRC(3540398c) SHA1(0a96f2360eb26c66bf02bbc6f52230b55cc95e4e) )
+ ROM_LOAD16_BYTE( "256d.c2", 0x0000001, 0x800000, CRC(bdd220f0) SHA1(f52851023f3bc120b05f622af0e0ab1bedc41604) )
+ ROM_LOAD16_BYTE( "256d.c3", 0x1000000, 0x800000, CRC(bfaade82) SHA1(66b07e592c9a9b35567fe463496f8f75c32a7db9) )
+ ROM_LOAD16_BYTE( "256d.c4", 0x1000001, 0x800000, CRC(1463add6) SHA1(4db91b46d6430da272d27d00a6dc0eb25949bea1) )
+ ROM_LOAD16_BYTE( "256d.c5", 0x2000000, 0x800000, CRC(48ca7f28) SHA1(e903876be5fb4fa582c988d74c6bef1c3b9c7083) )
+ ROM_LOAD16_BYTE( "256d.c6", 0x2000001, 0x800000, CRC(806eb36f) SHA1(a412a9cab80c326733dde7652d1db2a46afb3ebb) )
+ ROM_LOAD16_BYTE( "256d.c7", 0x3000000, 0x800000, CRC(9395b809) SHA1(ca9ac9832017094eee3623f0b6c4c4b7b4f1374d) )
+ ROM_LOAD16_BYTE( "256d.c8", 0x3000001, 0x800000, CRC(a369f9d4) SHA1(f8146ea80a1a23da7e7e04c88f778ee9abdfeb5c) )
+ROM_END
+
+ROM_START( mslug3e02 ) /* Metal Slug 3 - Super Enhance by Ydmis - (Style remix) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256e02.p1", 0x000000, 0x100000, CRC(c9cf4ef8) SHA1(e1e10dcea6ce0c8b6939250adaa167e950069760) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3e03 ) /* Metal Slug 3 - Super Enhance by Ydmis - (Style remix) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256e03.p1", 0x000000, 0x100000, CRC(77f64aa6) SHA1(8aa93f67e55461019dc677cb6f96ead3771232d1) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3e04 ) /* Metal Slug 3 - Super Enhance by Ydmis - (Style remix) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256e04.p1", 0x000000, 0x100000, CRC(09e9fe91) SHA1(573bd25c77e79de85396812bb7632be8d93bdaa6) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3e05 ) /* Metal Slug 3 - Super Enhance by Ydmis - (Style remix) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256e05.p1", 0x000000, 0x100000, CRC(c1a91748) SHA1(07227283b7fe0e040962a84bc345b231fe6417e3) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3e06 ) /* Metal Slug 3 - Super Enhance by Ydmis - (Style remix) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256e06.p1", 0x000000, 0x100000, CRC(812cdce7) SHA1(5249bc026471c1abb2d37b2ac03267b3349a6345) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3e07 ) /* Metal Slug 3 - Super Enhance by Ydmis - (Style remix) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256e07.p1", 0x000000, 0x100000, CRC(bb123461) SHA1(26a8fbb7792ebbd1052a09a78a38a72901644902) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3e08 ) /* Metal Slug 3 - Super Enhance by Ydmis - (Style remix) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256e08.p1", 0x000000, 0x100000, CRC(7666aad5) SHA1(3d55be31a158501d74994a5abf31d6928626d7e3) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3e09 ) /* Metal Slug 3 - Super Enhance by Ydmis - (Style remix) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256e09.p1", 0x000000, 0x100000, CRC(be26430c) SHA1(ee4d070885032bc5c2699d8c0b5abe7d1d7bc6cc) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3e10 ) /* Metal Slug 3 - Super Enhance by Ydmis - (Style remix) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256e10.p1", 0x000000, 0x100000, CRC(e510ae7e) SHA1(35183a58c11e78c9da08643853c2b06eed74b87c) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3e11 ) /* Metal Slug 3 - Super Enhance by Ydmis - (Style remix) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256e11.p1", 0x000000, 0x100000, CRC(2d5047a7) SHA1(89e720e8ccddbbc81c923ad8f7e5a371f9f0ecfc) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3e12 ) /* Metal Slug 3 - Super Enhance by Ydmis - (Style remix) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256e12.p1", 0x000000, 0x100000, CRC(410a6c8e) SHA1(d89aaa1a6fa46c20a84b8fafd83c66fe43a93e86) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3e13 ) /* Metal Slug 3 - Super Enhance by Ydmis - (Style remix) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256e13.p1", 0x000000, 0x100000, CRC(642335cb) SHA1(a17e7a48759a7589a3baf5ff4f69c937954de44c) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3e14 ) /* Metal Slug 3 - Super Enhance by Ydmis - (Style remix) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256e14.p1", 0x000000, 0x100000, CRC(3e8538ca) SHA1(148732165a081bec2f7bdefc79ce7a2db6a2998d) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3e15 ) /* Metal Slug 3 - Super Enhance by Ydmis - (Style remix) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256e15.p1", 0x000000, 0x100000, CRC(f6c5d113) SHA1(555ce0ea6c7d3003c9239de8b7a580295096e9ff) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3e16 ) /* Metal Slug 3 - Super Enhance by Ydmis - (Style remix) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256e16.p1", 0x000000, 0x100000, CRC(52df13e3) SHA1(9e24404b687284540d21b3be512108da1f1e2bbf) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3e17 ) /* Metal Slug 3 - Super Enhance by Ydmis - (Style remix) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256e17.p1", 0x000000, 0x100000, CRC(9a9ffa3a) SHA1(3ce3ba9048aa94543a03798c710c4bea4075a072) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3e18 ) /* Metal Slug 3 - Super Enhance by Ydmis - (Style remix) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256e18.p1", 0x000000, 0x100000, CRC(1a3c81fc) SHA1(b6f2ed4cb2b7f3f3dd3ef1bc97780ef136b2a82c) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3e19 ) /* Metal Slug 3 - Super Enhance by Ydmis - (Style remix) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256e19.p1", 0x000000, 0x100000, CRC(d27c6825) SHA1(d58d0db2378f0541c18dd60fc933614537572dc7) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3e20 ) /* Metal Slug 3 - Super Enhance by Ydmis - (Style remix) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256e20.p1", 0x000000, 0x100000, CRC(e4804e0d) SHA1(9d47e69e8ff737a977c9470a59024da7af35db9c) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3e21 ) /* Metal Slug 3 - Super Enhance by Ydmis - (Style remix) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256e21.p1", 0x000000, 0x100000, CRC(2cc0a7d4) SHA1(7f640067d653c8c0b66ba3c33d0e948497786acf) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3e22 ) /* Metal Slug 3 - Super Enhance by Ydmis - (Style remix) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256e22.p1", 0x000000, 0x100000, CRC(7d648368) SHA1(d637a17d777f59596ad1b67b7898f182f8f4d577) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3eb )
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "mslug3eb.sma", 0x0c0000, 0x040000, CRC(2a9935c2) SHA1(f39d47b0b6fbe0e741777d47fbaf37008c4e0599) )
+ ROM_LOAD16_WORD_SWAP( "256eb.p1", 0x100000, 0x400000, CRC(6ec2e58d) SHA1(d83dd522a5c8a8b4bd32722967e3d934d2e73e08) )
+ ROM_LOAD16_WORD_SWAP( "256eb.p2", 0x500000, 0x400000, CRC(ca4eb0d3) SHA1(eafd000ae27c0b904aea50f681f98ab67068da20) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3eha ) /* Metal Slug 3 - Super Enhance by HappyAsr - (Style remix 20030826) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256eha.p1", 0x000000, 0x100000, CRC(e04c6624) SHA1(de684f346ab9a2e5730a6753de6d53801a702cc8) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3ehs ) /* Metal Slug 3 - Super Enhance by Ydmis - (Style remix) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256ehs.p1", 0x000000, 0x100000, CRC(bfb6a37f) SHA1(2ed7fc7936d732ff55f629612434f1d72c09976e) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3fr ) /* [OLD] Metal Slug 3 N - (mslug3fro) - Translation Hack by NEO-ARC - (French translation) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256fr.p1", 0x000000, 0x100000, CRC(1f5fcb35) SHA1(387e0e0121a26254991b446d6bbdf755cf2e3ad2) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256fr.c1", 0x0000000, 0x800000, CRC(6ac28a9f) SHA1(9dae9703d20af3644456eda228ea7fb52fe67bd7) )
+ ROM_LOAD16_BYTE( "256fr.c2", 0x0000001, 0x800000, CRC(C9725CD0) SHA1(59A0A2778AE35DDCAC17FBA05A81F3DA5EACA1F1) )
+ ROM_LOAD16_BYTE( "256d.c3", 0x1000000, 0x800000, CRC(bfaade82) SHA1(66b07e592c9a9b35567fe463496f8f75c32a7db9) )
+ ROM_LOAD16_BYTE( "256d.c4", 0x1000001, 0x800000, CRC(1463add6) SHA1(4db91b46d6430da272d27d00a6dc0eb25949bea1) )
+ ROM_LOAD16_BYTE( "256d.c5", 0x2000000, 0x800000, CRC(48ca7f28) SHA1(e903876be5fb4fa582c988d74c6bef1c3b9c7083) )
+ ROM_LOAD16_BYTE( "256d.c6", 0x2000001, 0x800000, CRC(806eb36f) SHA1(a412a9cab80c326733dde7652d1db2a46afb3ebb) )
+ ROM_LOAD16_BYTE( "256d.c7", 0x3000000, 0x800000, CRC(9395b809) SHA1(ca9ac9832017094eee3623f0b6c4c4b7b4f1374d) )
+ ROM_LOAD16_BYTE( "256d.c8", 0x3000001, 0x800000, CRC(a369f9d4) SHA1(f8146ea80a1a23da7e7e04c88f778ee9abdfeb5c) )
+ROM_END
+
+ROM_START( mslug3fro ) /* Metal Slug 3 - Translation Hack by NEO-ARC - (French translation) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256fro.p1", 0x000000, 0x100000, CRC(ce3f408b) SHA1(c2752af1dd4373c37e90b2e718ab7ae038535ea1) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256fro.c1", 0x0000000, 0x800000, CRC(d799f41c) SHA1(d87cda305d054c56197112ba515299883d419bb4) )
+ ROM_LOAD16_BYTE( "256fr.c2", 0x0000001, 0x800000, CRC(C9725CD0) SHA1(59A0A2778AE35DDCAC17FBA05A81F3DA5EACA1F1) )
+ ROM_LOAD16_BYTE( "256d.c3", 0x1000000, 0x800000, CRC(bfaade82) SHA1(66b07e592c9a9b35567fe463496f8f75c32a7db9) )
+ ROM_LOAD16_BYTE( "256d.c4", 0x1000001, 0x800000, CRC(1463add6) SHA1(4db91b46d6430da272d27d00a6dc0eb25949bea1) )
+ ROM_LOAD16_BYTE( "256d.c5", 0x2000000, 0x800000, CRC(48ca7f28) SHA1(e903876be5fb4fa582c988d74c6bef1c3b9c7083) )
+ ROM_LOAD16_BYTE( "256d.c6", 0x2000001, 0x800000, CRC(806eb36f) SHA1(a412a9cab80c326733dde7652d1db2a46afb3ebb) )
+ ROM_LOAD16_BYTE( "256d.c7", 0x3000000, 0x800000, CRC(9395b809) SHA1(ca9ac9832017094eee3623f0b6c4c4b7b4f1374d) )
+ ROM_LOAD16_BYTE( "256d.c8", 0x3000001, 0x800000, CRC(a369f9d4) SHA1(f8146ea80a1a23da7e7e04c88f778ee9abdfeb5c) )
+ROM_END
+
+ROM_START( mslug3hev ) // all confirmed: mslug3ehs with new p1
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256hev.p1", 0x000000, 0x100000, CRC(c824bccc) SHA1(cfe0caff7eedd33e98cdb66d3104b11597f62089) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3kh ) /* Metal Slug 3 - Enhance by Fighters Kim and Ydmis - (Style remix 20030801) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256kh.p1", 0x000000, 0x100000, CRC(696aa1b4) SHA1(2e72191f12f4cbbddda1350fbe859e8bc70be62f) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3kho ) /* [OLD] Metal Slug 3 - Enhance by Fighters Kim and Ydmis - (See mslug3kho.txt for info 20030728) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256kho.p1", 0x000000, 0x100000, CRC(820567e4) SHA1(c23d58e3c5c185715bb65839f4a6a04767992f3d) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3nd ) // all confirmed
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256nd.p1", 0x000000, 0x100000, CRC(9c42ca85) SHA1(7a8f77a89867b889295ae9b9dfd4ba28f02d234d) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+ //NEO_SFIX_MSLUG( "256nd.s1", CRC(6d9d4d0a) SHA1(4237247494aa0d734ffc728c7fc2808aca42539e) ) // this is missing the high score text
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256d.c1", 0x0000000, 0x800000, CRC(3540398c) SHA1(0a96f2360eb26c66bf02bbc6f52230b55cc95e4e) )
+ ROM_LOAD16_BYTE( "256d.c2", 0x0000001, 0x800000, CRC(bdd220f0) SHA1(f52851023f3bc120b05f622af0e0ab1bedc41604) )
+ ROM_LOAD16_BYTE( "256d.c3", 0x1000000, 0x800000, CRC(bfaade82) SHA1(66b07e592c9a9b35567fe463496f8f75c32a7db9) )
+ ROM_LOAD16_BYTE( "256d.c4", 0x1000001, 0x800000, CRC(1463add6) SHA1(4db91b46d6430da272d27d00a6dc0eb25949bea1) )
+ ROM_LOAD16_BYTE( "256d.c5", 0x2000000, 0x800000, CRC(48ca7f28) SHA1(e903876be5fb4fa582c988d74c6bef1c3b9c7083) )
+ ROM_LOAD16_BYTE( "256d.c6", 0x2000001, 0x800000, CRC(806eb36f) SHA1(a412a9cab80c326733dde7652d1db2a46afb3ebb) )
+ ROM_LOAD16_BYTE( "256d.c7", 0x3000000, 0x800000, CRC(9395b809) SHA1(ca9ac9832017094eee3623f0b6c4c4b7b4f1374d) )
+ ROM_LOAD16_BYTE( "256d.c8", 0x3000001, 0x800000, CRC(a369f9d4) SHA1(f8146ea80a1a23da7e7e04c88f778ee9abdfeb5c) )
+ROM_END
+
+ROM_START( mslug3v ) // extreme violence
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256v.p1", 0x000000, 0x100000, CRC(47f9aeea) SHA1(db1c65681ac12b146e2fa21a8f28000f41a11fe2) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MSLUG( "256v.s1", CRC(6f8b9635) SHA1(86b0c8c0ccac913c6192ed6a96c35d4e1a5e8061) )
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+
+
+#if 0
+ROM_START( mslug4 ) /* Original Version - Encrypted GFX */ /* MVS VERSION */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263-p1.p1", 0x000000, 0x100000, CRC(27e4def3) SHA1(a08785e8145981bb6b5332a3b2df7eb321253cca) )
+ ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+
+ ROM_Y_ZOOM
+
+ /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */
+ ROM_REGION( 0x80000, "fixed", 0 ) /* larger char set */
+ ROM_FILL( 0x000000, 0x20000, 0 )
+ ROM_REGION( 0x20000, "fixedbios", 0 )
+ ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) )
+
+ NEO_BIOS_AUDIO_ENCRYPTED_128K( "263-m1.m1", CRC(46ac8228) SHA1(5aeea221050c98e4bb0f16489ce772bf1c80f787) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) )
+ ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) )
+ ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) )
+ ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) )
+ ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) )
+ ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) )
+ ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) )
+ROM_END
+#endif
+ROM_START( mslug4d )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263-p1.p1", 0x000000, 0x100000, CRC(27e4def3) SHA1(a08785e8145981bb6b5332a3b2df7eb321253cca) )
+ ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) )
+ ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "263d.c1", 0x0000000, 0x800000, CRC(a75ffcde) SHA1(97f405a95a56615ae49f79e1a69f98cc2f2434ef) )
+ ROM_LOAD16_BYTE( "263d.c2", 0x0000001, 0x800000, CRC(5ab0d12b) SHA1(8a3d95dd2e9cc1b6dcf6a957fed43ee390248307) )
+ ROM_LOAD16_BYTE( "263d.c3", 0x1000000, 0x800000, CRC(61af560c) SHA1(aa7bc45e03a6bbd18eb56d118d4932102ccb196a) )
+ ROM_LOAD16_BYTE( "263d.c4", 0x1000001, 0x800000, CRC(f2c544fd) SHA1(179b064f81b49f5808d7a7a5bce28e95b09e5abe) )
+ ROM_LOAD16_BYTE( "263d.c5", 0x2000000, 0x800000, CRC(84c66c44) SHA1(9273f44bf11891aa04ddd2cbb6442d084c2a2e04) )
+ ROM_LOAD16_BYTE( "263d.c6", 0x2000001, 0x800000, CRC(5ed018ab) SHA1(e78501fa8a80960093a4d54ce952681a98300148) )
+ROM_END
+
+ROM_START( mslug4dh ) // Super D Version
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263dh.p1", 0x000000, 0x100000, CRC(af69d959) SHA1(2bc9796003c8742d681e11ad842978d918fbae40) )
+ ROM_LOAD16_WORD_SWAP( "263dh.p2", 0x100000, 0x400000, CRC(2b863b30) SHA1(b5edc43d87faf6540e3154fcbab42efb148cbd04) )
+
+ NEO_SFIX_MSLUG( "263dh.s1", CRC(c4f4ed0e) SHA1(bbf31c879d72cc843229b03db01399af98e02f01) )
+
+ NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "263dh.v1", 0x000000, 0x800000, CRC(fd6b982e) SHA1(100313166c9ec57f1c540de05625c506b30ad13c) )
+ ROM_LOAD( "263dh.v2", 0x800000, 0x800000, CRC(20125227) SHA1(2e350c0c580e87445bf103c01fc62b14f0c19216) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "263d.c1", 0x0000000, 0x800000, CRC(a75ffcde) SHA1(97f405a95a56615ae49f79e1a69f98cc2f2434ef) )
+ ROM_LOAD16_BYTE( "263d.c2", 0x0000001, 0x800000, CRC(5ab0d12b) SHA1(8a3d95dd2e9cc1b6dcf6a957fed43ee390248307) )
+ ROM_LOAD16_BYTE( "263d.c3", 0x1000000, 0x800000, CRC(61af560c) SHA1(aa7bc45e03a6bbd18eb56d118d4932102ccb196a) )
+ ROM_LOAD16_BYTE( "263d.c4", 0x1000001, 0x800000, CRC(f2c544fd) SHA1(179b064f81b49f5808d7a7a5bce28e95b09e5abe) )
+ ROM_LOAD16_BYTE( "263d.c5", 0x2000000, 0x800000, CRC(84c66c44) SHA1(9273f44bf11891aa04ddd2cbb6442d084c2a2e04) )
+ ROM_LOAD16_BYTE( "263d.c6", 0x2000001, 0x800000, CRC(5ed018ab) SHA1(e78501fa8a80960093a4d54ce952681a98300148) )
+ROM_END
+
+ROM_START( mslug4dh1 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263dh.p1", 0x000000, 0x100000, CRC(af69d959) SHA1(2bc9796003c8742d681e11ad842978d918fbae40) )
+ ROM_LOAD16_WORD_SWAP( "263dh.p2", 0x100000, 0x400000, CRC(2b863b30) SHA1(b5edc43d87faf6540e3154fcbab42efb148cbd04) )
+
+ NEO_SFIX_128K( "263-s1.s1", CRC(a9446774) SHA1(c5a309fd8ee6d6750a15c82e710218a3755e38b2) )
+
+ NEO_BIOS_AUDIO_128K( "263nd.m1", CRC(ef5db532) SHA1(4aeba9e206b8f309610eb7e1891644f39aa61830) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "263nd.v1", 0x000000, 0x400000, CRC(c1b2af81) SHA1(532dca0a2b2e03d50c6ac3adc9ebceb413f61690) )
+ ROM_LOAD( "263nd.v2", 0x400000, 0x400000, CRC(cbbdc6fa) SHA1(06abb738cf198804248ecfc92adea38f7f86f612) )
+ ROM_LOAD( "263nd.v3", 0x800000, 0x400000, CRC(c4f1a3cc) SHA1(109e8db93875e1b1f3db293d1756b2bbebe63a28) )
+ ROM_LOAD( "263nd.v4", 0xC00000, 0x400000, CRC(40126a0a) SHA1(4234e0f4d9a9dc486d7af1eec91a17840a57976d) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "263nd.c1", 0x0000000, 0x800000, CRC(361ddda6) SHA1(95f329019660f1ec7f15f6ea1e0c2bfc84b02ca8) )
+ ROM_LOAD16_BYTE( "263nd.c2", 0x0000001, 0x800000, CRC(15d192c4) SHA1(0b9afb62a1d4d764d616408b09e17a05fc4a87e7) )
+ ROM_LOAD16_BYTE( "263nd.c3", 0x1000000, 0x800000, CRC(63fb79ff) SHA1(a7da0a554034792721abda4369a71b0c8045f334) )
+ ROM_LOAD16_BYTE( "263nd.c4", 0x1000001, 0x800000, CRC(e8623126) SHA1(66c2b874cd55c628e7e6768d6f31180c29a734e7) )
+ ROM_LOAD16_BYTE( "263nd.c5", 0x2000000, 0x400000, CRC(3348DC5D) SHA1(a119e80aa2b36a7d8c7e8debd0eb13441a19adff) )
+ ROM_LOAD16_BYTE( "263nd.c6", 0x2000001, 0x400000, CRC(D90FC1A0) SHA1(0eaf5f658212c19a4cdbcdbff3b04389a2be76bb) )
+ROM_END
+
+ROM_START( mslug4eh ) /* Metal Slug 4 - Enhance by Creamymami - (Style remix 20030414) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263eh.p1", 0x000000, 0x100000, CRC(42866fc5) SHA1(0ef57352b28fae2b884dfc021a2fd0bdf36456cb) )
+ ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) )
+ ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) )
+ ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) )
+ ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) )
+ ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) )
+ ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) )
+ ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) )
+ROM_END
+
+ROM_START( mslug4eh2 ) /* Metal Slug 4 - Enhance by Creamymami - (Style remix 20030414) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263eh2.p1", 0x000000, 0x100000, CRC(2cb01721) SHA1(9a7e3a28f9f26848f36fa19d66ae9b7588e8dd7e) )
+ ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) )
+ ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) )
+ ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) )
+ ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) )
+ ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) )
+ ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) )
+ ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) )
+ROM_END
+
+ROM_START( mslug4eh3 ) /* Metal Slug 4 - Enhance by Creamymami - (Style remix 20030414) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263eh3.p1", 0x000000, 0x100000, CRC(628f101f) SHA1(fc787b550c788dd8d8207927d679dd8ad7b50eb1) )
+ ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) )
+ ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) )
+ ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) )
+ ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) )
+ ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) )
+ ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) )
+ ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) )
+ROM_END
+
+ROM_START( mslug4eh4 ) /* Metal Slug 4 - Enhance by Creamymami - (Style remix 20030414) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263eh4.p1", 0x000000, 0x100000, CRC(3d08cdbd) SHA1(b311a52c794e3ffc623dff6ead91ccd79c2f2af9) )
+ ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) )
+ ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) )
+ ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) )
+ ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) )
+ ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) )
+ ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) )
+ ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) )
+ROM_END
+
+ROM_START( mslug4eh5 ) /* Metal Slug 4 - Enhance by Creamymami - (Style remix 20030414) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263eh5.p1", 0x000000, 0x100000, CRC(35d4a0f3) SHA1(94c55dfe8d00c1920b14fc1770a626fd4bdec325) )
+ ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) )
+ ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) )
+ ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) )
+ ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) )
+ ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) )
+ ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) )
+ ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) )
+ROM_END
+
+ROM_START( mslug4eh6 ) /* Metal Slug 4 - Enhance by Creamymami - (Style remix 20030414) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263eh6.p1", 0x000000, 0x100000, CRC(246c7a6f) SHA1(46607bbd256b3af5092526f8dd57e0b211e55d88) )
+ ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) )
+ ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) )
+ ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) )
+ ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) )
+ ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) )
+ ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) )
+ ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) )
+ROM_END
+
+ROM_START( mslug4eho ) /* [OLD] Metal Slug 4 - Enhance by Creamymami - (Style remix 20030414) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263eho.p1", 0x000000, 0x100000, CRC(41fea527) SHA1(17a8cf630b2ad6e58c51a2f1d01ceff2d1ef970e) )
+ ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) )
+ ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) )
+ ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) )
+ ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) )
+ ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) )
+ ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) )
+ ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) )
+ROM_END
+
+ROM_START( mslug4fr ) /* Metal Slug 4 - Translation Hack by NEO-ARC - (French translation) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263fr.p1", 0x000000, 0x100000, CRC(a1343a37) SHA1(23ead1154427c67881b4670fd8ecf5089e32ac0b) )
+ ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) )
+ ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) )
+ ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) )
+ ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) )
+ ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) )
+ ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) )
+ ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) )
+ROM_END
+
+ROM_START( mslug4i ) /* NeoArc Italian translation */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263i.p1", 0x000000, 0x100000, CRC(ffb20602) SHA1(4d3103d613a2452c95ae15b70670664354dce67b) )
+ ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+
+ NEO_SFIX_MSLUG( "263i.s1", CRC(1f67801e) SHA1(87c33e74599ca063da459f3c8562447bccc104e3) )
+
+ NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) )
+ ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) )
+ ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) )
+ ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) )
+ ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) )
+ ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) )
+ ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) )
+ROM_END
+
+ROM_START( mslug4i1 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263i.p1", 0x000000, 0x100000, CRC(ffb20602) SHA1(4d3103d613a2452c95ae15b70670664354dce67b) )
+ ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+
+ NEO_SFIX_128K( "263i.s1", CRC(1f67801e) SHA1(87c33e74599ca063da459f3c8562447bccc104e3) )
+
+ NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "263nd.v1", 0x000000, 0x400000, CRC(c1b2af81) SHA1(532dca0a2b2e03d50c6ac3adc9ebceb413f61690) )
+ ROM_LOAD( "263nd.v2", 0x400000, 0x400000, CRC(cbbdc6fa) SHA1(06abb738cf198804248ecfc92adea38f7f86f612) )
+ ROM_LOAD( "263nd.v3", 0x800000, 0x400000, CRC(c4f1a3cc) SHA1(109e8db93875e1b1f3db293d1756b2bbebe63a28) )
+ ROM_LOAD( "263nd.v4", 0xC00000, 0x400000, CRC(40126a0a) SHA1(4234e0f4d9a9dc486d7af1eec91a17840a57976d) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "263nd.c1", 0x0000000, 0x800000, CRC(361ddda6) SHA1(95f329019660f1ec7f15f6ea1e0c2bfc84b02ca8) )
+ ROM_LOAD16_BYTE( "263nd.c2", 0x0000001, 0x800000, CRC(15d192c4) SHA1(0b9afb62a1d4d764d616408b09e17a05fc4a87e7) )
+ ROM_LOAD16_BYTE( "263nd.c3", 0x1000000, 0x800000, CRC(63fb79ff) SHA1(a7da0a554034792721abda4369a71b0c8045f334) )
+ ROM_LOAD16_BYTE( "263nd.c4", 0x1000001, 0x800000, CRC(e8623126) SHA1(66c2b874cd55c628e7e6768d6f31180c29a734e7) )
+ ROM_LOAD16_BYTE( "263nd.c5", 0x2000000, 0x400000, CRC(3348DC5D) SHA1(a119e80aa2b36a7d8c7e8debd0eb13441a19adff) )
+ ROM_LOAD16_BYTE( "263nd.c6", 0x2000001, 0x400000, CRC(D90FC1A0) SHA1(0eaf5f658212c19a4cdbcdbff3b04389a2be76bb) )
+ROM_END
+
+ROM_START( mslug4kh ) /* Metal Slug 4 - Enhance by Creamymami and Fighters Kim - (Style remix 20030731) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263kh.p1", 0x000000, 0x100000, CRC(883680c2) SHA1(9ba71d9cf4eb8615cf6fe94b74c6436876dcb0b2) )
+ ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) )
+ ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) )
+ ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) )
+ ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) )
+ ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) )
+ ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) )
+ ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) )
+ROM_END
+
+ROM_START( mslug4lw )
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263lw.p1", 0x000000, 0x100000, CRC(783438fa) SHA1(7c15f902a319fb7c769c21bb1a860216a9691354) )
+ ROM_LOAD16_WORD_SWAP( "263lw.p2", 0x100000, 0x800000, CRC(5c897ae8) SHA1(d92739fc76b156447ffb3c18a93481d7f036d228) )
+
+ NEO_SFIX_128K( "263-s1.s1", CRC(a9446774) SHA1(c5a309fd8ee6d6750a15c82e710218a3755e38b2) )
+
+ NEO_BIOS_AUDIO_128K( "263nd.m1", CRC(ef5db532) SHA1(4aeba9e206b8f309610eb7e1891644f39aa61830) )
+
+ ROM_REGION( 0x1400000, "ymsnd", 0 )
+ ROM_LOAD( "263lw.v1", 0x000000, 0x400000, CRC(8cb5a9ef) SHA1(272ad312f8694acf9190ebf48d1c8a5fec73c130) )
+ ROM_LOAD( "263lw.v2", 0x400000, 0x400000, CRC(94217b1e) SHA1(c468a192e2ec0952a20cfd9e391cf6c12346efb3) )
+ ROM_LOAD( "263lw.v3", 0x800000, 0x400000, CRC(7616fcec) SHA1(83006094379d0373b967603dcaa1cec69c2f746f) )
+ ROM_LOAD( "263lw.v4", 0xC00000, 0x800000, CRC(6ac7ed2f) SHA1(4beb76d149e9e3d8b2c760a468d47fca260b2842) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "263nd.c1", 0x0000000, 0x800000, CRC(361ddda6) SHA1(95f329019660f1ec7f15f6ea1e0c2bfc84b02ca8) )
+ ROM_LOAD16_BYTE( "263nd.c2", 0x0000001, 0x800000, CRC(15d192c4) SHA1(0b9afb62a1d4d764d616408b09e17a05fc4a87e7) )
+ ROM_LOAD16_BYTE( "263lw.c3", 0x1000000, 0x800000, CRC(e296612c) SHA1(57eb1861b738247aaf0643641268f676b71ed025) )
+ ROM_LOAD16_BYTE( "263lw.c4", 0x1000001, 0x800000, CRC(c22e3ad0) SHA1(11ce301d4e5b4b1b76e2b82d18c4a9b8b56eeb20) )
+ ROM_LOAD16_BYTE( "263lw.c5", 0x2000000, 0x400000, CRC(288cd91f) SHA1(a195be13d4ef19705cd3f08be1ec8cdacb29f159) )
+ ROM_LOAD16_BYTE( "263lw.c6", 0x2000001, 0x400000, CRC(b015aeee) SHA1(24e12e72b82eea9e52a4cefc774efb3bd7db822f) )
+ROM_END
+
+ROM_START( mslug4nd )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263nd.p1", 0x000000, 0x100000, CRC(4D7E6624) SHA1(125d5203e89cce23a851fa74cc8cbe003ef978f3) )
+ ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+
+ NEO_SFIX_128K( "263-s1.s1", CRC(a9446774) SHA1(c5a309fd8ee6d6750a15c82e710218a3755e38b2) )
+
+ NEO_BIOS_AUDIO_128K( "263nd.m1", CRC(ef5db532) SHA1(4aeba9e206b8f309610eb7e1891644f39aa61830) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "263nd.v1", 0x000000, 0x400000, CRC(c1b2af81) SHA1(532dca0a2b2e03d50c6ac3adc9ebceb413f61690) )
+ ROM_LOAD( "263nd.v2", 0x400000, 0x400000, CRC(cbbdc6fa) SHA1(06abb738cf198804248ecfc92adea38f7f86f612) )
+ ROM_LOAD( "263nd.v3", 0x800000, 0x400000, CRC(c4f1a3cc) SHA1(109e8db93875e1b1f3db293d1756b2bbebe63a28) )
+ ROM_LOAD( "263nd.v4", 0xC00000, 0x400000, CRC(40126a0a) SHA1(4234e0f4d9a9dc486d7af1eec91a17840a57976d) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "263nd.c1", 0x0000000, 0x800000, CRC(361ddda6) SHA1(95f329019660f1ec7f15f6ea1e0c2bfc84b02ca8) )
+ ROM_LOAD16_BYTE( "263nd.c2", 0x0000001, 0x800000, CRC(15d192c4) SHA1(0b9afb62a1d4d764d616408b09e17a05fc4a87e7) )
+ ROM_LOAD16_BYTE( "263nd.c3", 0x1000000, 0x800000, CRC(63fb79ff) SHA1(a7da0a554034792721abda4369a71b0c8045f334) )
+ ROM_LOAD16_BYTE( "263nd.c4", 0x1000001, 0x800000, CRC(e8623126) SHA1(66c2b874cd55c628e7e6768d6f31180c29a734e7) )
+ ROM_LOAD16_BYTE( "263nd.c5", 0x2000000, 0x400000, CRC(3348DC5D) SHA1(a119e80aa2b36a7d8c7e8debd0eb13441a19adff) )
+ ROM_LOAD16_BYTE( "263nd.c6", 0x2000001, 0x400000, CRC(D90FC1A0) SHA1(0eaf5f658212c19a4cdbcdbff3b04389a2be76bb) )
+ROM_END
+
+ROM_START( mslug4sp ) // all confirmed: same as mslug4 except p roms
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263sp.p1", 0x000000, 0x100000, CRC(44b6f3d7) SHA1(d6c9b84e1758f731be21c7506ffb5c8837fbc19c) )
+ ROM_LOAD16_WORD_SWAP( "263dh.p2", 0x100000, 0x400000, CRC(2b863b30) SHA1(b5edc43d87faf6540e3154fcbab42efb148cbd04) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_ENCRYPTED_128K( "263-m1.m1", CRC(46ac8228) SHA1(5aeea221050c98e4bb0f16489ce772bf1c80f787) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) )
+ ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) )
+ ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) )
+ ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) )
+ ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) )
+ ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) )
+ ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) )
+ROM_END
+
+
+
+#if 0
+ROM_START( mslug5 ) /* Encrypted Set */ /* MVS VERSION */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD32_WORD_SWAP( "268-p1cr.p1", 0x000000, 0x400000, CRC(d0466792) SHA1(880819933d997fab398f91061e9dbccb959ae8a1) )
+ ROM_LOAD32_WORD_SWAP( "268-p2cr.p2", 0x000002, 0x400000, CRC(fbf6b61e) SHA1(9ec743d5988b5e3183f37f8edf45c72a8c0c893e) )
+
+ ROM_Y_ZOOM
+
+ /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */
+ ROM_REGION( 0x20000, "fixed", 0 )
+ ROM_FILL( 0x000000, 0x20000, 0 )
+ ROM_REGION( 0x20000, "fixedbios", 0 )
+ ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) )
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "268-m1.m1", CRC(4a5a6e0e) SHA1(df0f660f2465e1db7be5adfcaf5e88ad61a74a42) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) )
+ ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "268-c1c.c1", 0x0000000, 0x800000, CRC(ab7c389a) SHA1(025a188de589500bf7637fa8e7a37ab24bf4312e) )
+ ROM_LOAD16_BYTE( "268-c2c.c2", 0x0000001, 0x800000, CRC(3560881b) SHA1(493d218c92290b4770024d6ee2917c4022753b07) )
+ ROM_LOAD16_BYTE( "268-c3c.c3", 0x1000000, 0x800000, CRC(3af955ea) SHA1(cf36b6ae9b0d12744b17cb7a928399214de894be) )
+ ROM_LOAD16_BYTE( "268-c4c.c4", 0x1000001, 0x800000, CRC(c329c373) SHA1(5073d4079958a0ef5426885af2c9e3178f37d5e0) )
+ ROM_LOAD16_BYTE( "268-c5c.c5", 0x2000000, 0x800000, CRC(959c8177) SHA1(889bda7c65d71172e7d89194d1269561888fe789) )
+ ROM_LOAD16_BYTE( "268-c6c.c6", 0x2000001, 0x800000, CRC(010a831b) SHA1(aec140661e3ae35d264df416478ba15188544d91) )
+ ROM_LOAD16_BYTE( "268-c7c.c7", 0x3000000, 0x800000, CRC(6d72a969) SHA1(968dd9a4d1209b770b9b85ea6532fa24d262a262) )
+ ROM_LOAD16_BYTE( "268-c8c.c8", 0x3000001, 0x800000, CRC(551d720e) SHA1(ebf69e334fcaba0fda6fd432fd0970283a365d12) )
+ROM_END
+#endif
+ROM_START( ms5boot ) /* Bootleg / Hack of Metal Slug 5 */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ // not sure if it's actually bad, or some weird protection
+ ROM_LOAD16_WORD_SWAP( "268boot.p1", 0x000000, 0x100000, BAD_DUMP CRC(e6d297af) SHA1(5bb3f72ce26e3f46c523b955f425056eb246e855) )
+ // this one fixes all the issues
+ ROM_LOAD16_WORD_SWAP( "268nd.p1", 0x000000, 0x100000, CRC(ca50afdf) SHA1(e3780b77f20d139a0dcaa2ded2c6ee323b8b4279) )
+ ROM_LOAD16_WORD_SWAP( "268boot.p2", 0x100000, 0x100000, CRC(3fc46cfa) SHA1(f20d3d359f6cdbf6aabb6920020621b02bafee91) )
+ ROM_CONTINUE(0x300000, 0x100000 )
+ ROM_LOAD16_WORD_SWAP( "268boot.p3", 0x200000, 0x100000, CRC(742c955a) SHA1(96c0f08b1f2f6877f5169a96c13b67f3be6082c6) )
+ ROM_CONTINUE(0x400000, 0x100000 )
+
+ NEO_SFIX_MT_512K
+ //NEO_SFIX_MSLUG( "268boot.s1", CRC(52a8c09b) SHA1(3a90d8e44aa7cbc79945f8ece0e2fb9ce3e5a4c7) ) // corrupt?
+
+ NEO_BIOS_AUDIO_256K( "268boot.m1", CRC(792e07c1) SHA1(117516e8ec9026c7682ab27857aab6639bef5835) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "268boot.v1", 0x000000, 0x400000, CRC(c3540e0d) SHA1(bf7ca3abe291b28a4cfaef791f0c556cc98ad8d8) )
+ ROM_LOAD( "268boot.v2", 0x400000, 0x400000, CRC(077bd2f4) SHA1(1699959d17f8c7113cebdb9da2e1cd18ce48486c) )
+ ROM_LOAD( "268boot.v3", 0x800000, 0x400000, CRC(39b14567) SHA1(1658612a93ba30130f9260bc41d3f18f6b90c1e7) )
+ ROM_LOAD( "268boot.v4", 0xc00000, 0x400000, CRC(969ff3b2) SHA1(50feceb741a1c08b000b077a33151ab1352eb798) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "268d.c1", 0x0000000, 0x800000, CRC(969c0d62) SHA1(DE3C5CFA980CCA2FAB0416AC0D292948B5D4C9C3) )
+ ROM_LOAD16_BYTE( "268d.c2", 0x0000001, 0x800000, CRC(c69ae867) SHA1(3198EE5C7C2C7563B49EBD9F7BA95D9B0B303F6C) )
+ ROM_LOAD16_BYTE( "268d.c3", 0x1000000, 0x800000, CRC(d7beaeaf) SHA1(99443EA4C1BAB45F1977A390EB7E1A0163915110) )
+ ROM_LOAD16_BYTE( "268nd.c4", 0x1000001, 0x800000, CRC(E1B1131B) SHA1(68A36D336582069E79AD481638D92F57C4CD6523) )
+ ROM_LOAD16_BYTE( "268d.c5", 0x2000000, 0x800000, CRC(2fa1a5ad) SHA1(4AE15D29BA979601598EDDF8905072FE1D9E0A98) )
+ ROM_LOAD16_BYTE( "268d.c6", 0x2000001, 0x800000, CRC(6de89589) SHA1(86A6C036BF51AF516FEA83A30874026EC1586A83) )
+ ROM_LOAD16_BYTE( "268d.c7", 0x3000000, 0x800000, CRC(97bd0c0a) SHA1(30F3280FE527098ECF46541CC645A59B366105EA) )
+ ROM_LOAD16_BYTE( "268d.c8", 0x3000001, 0x800000, CRC(c0d5bc20) SHA1(B5D0D81D5CC624538B0651C568295E578A1330D1) )
+ROM_END
+
+ROM_START( ms5pcbd )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD32_WORD_SWAP( "268-p1r.p1", 0x000000, 0x400000, CRC(d0466792) SHA1(880819933d997fab398f91061e9dbccb959ae8a1) )
+ ROM_LOAD32_WORD_SWAP( "268-p2r.p2", 0x000002, 0x400000, CRC(fbf6b61e) SHA1(9ec743d5988b5e3183f37f8edf45c72a8c0c893e) )
+
+ NEO_SFIX_MT_512K
+
+ ROM_REGION16_BE( 0x80000, "mainbios", 0 )
+ /* this contains both an ASIA and JAPAN bios, HARDDIP3 on the PCB selects which to use */
+ ROM_LOAD16_WORD_SWAP( "sp-4x.sp1", 0x00000, 0x80000, CRC(b4590283) SHA1(47047ed5b6062babc0a0bebcc30e4b3f021e115a) )
+
+ /* Encrypted, we load it here for reference and replace with decrypted ROM */
+ // ROM_LOAD( "268-m1.bin", 0x00000, 0x10000, CRC(58b107d0) SHA1(cc7fe66ff4f9c026cde4df06f86c848eb21f7af8) )
+ //NEO_BIOS_AUDIO_64K( "268d.m1", CRC(3c0655a7) SHA1(ae839d4c2b87a7aa3dd8e5caddc43eb75ee9b732) )
+ ROM_REGION( 0x80000, "audiocrypt", 0 )
+ ROM_LOAD( "268-m1.m1", 0x00000, 0x80000, CRC(4a5a6e0e) SHA1(df0f660f2465e1db7be5adfcaf5e88ad61a74a42) ) /* mask rom TC534000 */
+ ROM_REGION( 0x90000, "audiocpu", ROMREGION_ERASEFF )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "268pcbd.v1", 0x000000, 0x1000000, CRC(4182838b) SHA1(03e58b6709db467e92397b26b84658f5adb0ff92) )
+// ROM_LOAD( "268-v1.v1", 0x000000, 0x1000000, CRC(8458afe5) SHA1(62b4c6e7db763e9ff2697bbcdb43dc5a56b48c68) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "268pcbd.c1", 0x0000000, 0x1000000, CRC(996debed) SHA1(ec6965a24862541f337a1b7e259038b9b40ad1d2) )
+ ROM_LOAD16_BYTE( "268pcbd.c2", 0x0000001, 0x1000000, CRC(960a9764) SHA1(687cf957d91ef9da219b573f444e668209dcea41) )
+ ROM_LOAD16_BYTE( "268pcbd.c3", 0x2000000, 0x1000000, CRC(f699994f) SHA1(ff079d3c126e9611760956d51c5df66d8013dd78) )
+ ROM_LOAD16_BYTE( "268pcbd.c4", 0x2000001, 0x1000000, CRC(49e902e8) SHA1(289a560ffe3d50abd773c61fa2df3c1f18d7e803) )
+ROM_END
+
+ROM_START( ms5sp ) // all confirmed: ms5plus with p1 changed
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "268sp.p1", 0x000000, 0x100000, CRC(540cd43f) SHA1(29378262a40e09f21dc6f033b8a97463caf5f1a9) )
+ ROM_LOAD16_WORD_SWAP( "ms5-p2p.bin", 0x100000, 0x200000, CRC(d6a458e8) SHA1(c0a8bdae06d62859fb6734766ccc190eb2a809a4) )
+ ROM_LOAD16_WORD_SWAP( "ms5-p3p.bin", 0x300000, 0x200000, CRC(439ec031) SHA1(f0ad8f9be7d26bc504593c1321bd23c286a221f0) )
+
+ NEO_SFIX_128K( "ms5-s1p.bin", CRC(21e04432) SHA1(10057a2aa487087f7143d1d69fdad978a6bef0f7) )
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "268-m1.m1", CRC(4a5a6e0e) SHA1(df0f660f2465e1db7be5adfcaf5e88ad61a74a42) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) )
+ ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "268-c1c.c1", 0x0000000, 0x800000, CRC(ab7c389a) SHA1(025a188de589500bf7637fa8e7a37ab24bf4312e) )
+ ROM_LOAD16_BYTE( "268-c2c.c2", 0x0000001, 0x800000, CRC(3560881b) SHA1(493d218c92290b4770024d6ee2917c4022753b07) )
+ ROM_LOAD16_BYTE( "268-c3c.c3", 0x1000000, 0x800000, CRC(3af955ea) SHA1(cf36b6ae9b0d12744b17cb7a928399214de894be) )
+ ROM_LOAD16_BYTE( "268-c4c.c4", 0x1000001, 0x800000, CRC(c329c373) SHA1(5073d4079958a0ef5426885af2c9e3178f37d5e0) )
+ ROM_LOAD16_BYTE( "268-c5c.c5", 0x2000000, 0x800000, CRC(959c8177) SHA1(889bda7c65d71172e7d89194d1269561888fe789) )
+ ROM_LOAD16_BYTE( "268-c6c.c6", 0x2000001, 0x800000, CRC(010a831b) SHA1(aec140661e3ae35d264df416478ba15188544d91) )
+ ROM_LOAD16_BYTE( "268-c7c.c7", 0x3000000, 0x800000, CRC(6d72a969) SHA1(968dd9a4d1209b770b9b85ea6532fa24d262a262) )
+ ROM_LOAD16_BYTE( "268-c8c.c8", 0x3000001, 0x800000, CRC(551d720e) SHA1(ebf69e334fcaba0fda6fd432fd0970283a365d12) )
+ROM_END
+
+ROM_START( mslug5b )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "268b.p1", 0x000000, 0x100000, CRC(d05853ea) SHA1(8bb284d8f937b1b50d28d207f5fd262e4ed1d96c) )
+ ROM_CONTINUE( 0x200000, 0x100000 )
+ ROM_CONTINUE( 0x400000, 0x100000 )
+ ROM_CONTINUE( 0x300000, 0x100000 )
+ ROM_CONTINUE( 0x500000, 0x100000 )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "268-m1.m1", CRC(4a5a6e0e) SHA1(df0f660f2465e1db7be5adfcaf5e88ad61a74a42) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) )
+ ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "268-c1c.c1", 0x0000000, 0x800000, CRC(ab7c389a) SHA1(025a188de589500bf7637fa8e7a37ab24bf4312e) )
+ ROM_LOAD16_BYTE( "268-c2c.c2", 0x0000001, 0x800000, CRC(3560881b) SHA1(493d218c92290b4770024d6ee2917c4022753b07) )
+ ROM_LOAD16_BYTE( "268-c3c.c3", 0x1000000, 0x800000, CRC(3af955ea) SHA1(cf36b6ae9b0d12744b17cb7a928399214de894be) )
+ ROM_LOAD16_BYTE( "268-c4c.c4", 0x1000001, 0x800000, CRC(c329c373) SHA1(5073d4079958a0ef5426885af2c9e3178f37d5e0) )
+ ROM_LOAD16_BYTE( "268-c5c.c5", 0x2000000, 0x800000, CRC(959c8177) SHA1(889bda7c65d71172e7d89194d1269561888fe789) )
+ ROM_LOAD16_BYTE( "268-c6c.c6", 0x2000001, 0x800000, CRC(010a831b) SHA1(aec140661e3ae35d264df416478ba15188544d91) )
+ ROM_LOAD16_BYTE( "268-c7c.c7", 0x3000000, 0x800000, CRC(6d72a969) SHA1(968dd9a4d1209b770b9b85ea6532fa24d262a262) )
+ ROM_LOAD16_BYTE( "268-c8c.c8", 0x3000001, 0x800000, CRC(551d720e) SHA1(ebf69e334fcaba0fda6fd432fd0970283a365d12) )
+ROM_END
+
+ROM_START( mslug5d )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD32_WORD_SWAP( "268-p1cr.p1", 0x000000, 0x400000, CRC(d0466792) SHA1(880819933d997fab398f91061e9dbccb959ae8a1) )
+ ROM_LOAD32_WORD_SWAP( "268-p2cr.p2", 0x000002, 0x400000, CRC(fbf6b61e) SHA1(9ec743d5988b5e3183f37f8edf45c72a8c0c893e) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "268d.m1", CRC(3c0655a7) SHA1(ae839d4c2b87a7aa3dd8e5caddc43eb75ee9b732) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) )
+ ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "268d.c1", 0x0000000, 0x800000, CRC(969c0d62) SHA1(DE3C5CFA980CCA2FAB0416AC0D292948B5D4C9C3) )
+ ROM_LOAD16_BYTE( "268d.c2", 0x0000001, 0x800000, CRC(c69ae867) SHA1(3198EE5C7C2C7563B49EBD9F7BA95D9B0B303F6C) )
+ ROM_LOAD16_BYTE( "268d.c3", 0x1000000, 0x800000, CRC(d7beaeaf) SHA1(99443EA4C1BAB45F1977A390EB7E1A0163915110) )
+ ROM_LOAD16_BYTE( "268d.c4", 0x1000001, 0x800000, CRC(899fb2af) SHA1(A06A424C813C1B4F922C5404405779F605C90A06) )
+ ROM_LOAD16_BYTE( "268d.c5", 0x2000000, 0x800000, CRC(2fa1a5ad) SHA1(4AE15D29BA979601598EDDF8905072FE1D9E0A98) )
+ ROM_LOAD16_BYTE( "268d.c6", 0x2000001, 0x800000, CRC(6de89589) SHA1(86A6C036BF51AF516FEA83A30874026EC1586A83) )
+ ROM_LOAD16_BYTE( "268d.c7", 0x3000000, 0x800000, CRC(97bd0c0a) SHA1(30F3280FE527098ECF46541CC645A59B366105EA) )
+ ROM_LOAD16_BYTE( "268d.c8", 0x3000001, 0x800000, CRC(c0d5bc20) SHA1(B5D0D81D5CC624538B0651C568295E578A1330D1) )
+ROM_END
+
+ROM_START( mslug5d1 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "268nd.p1", 0x000000, 0x100000, CRC(ca50afdf) SHA1(e3780b77f20d139a0dcaa2ded2c6ee323b8b4279) )
+ ROM_LOAD16_WORD_SWAP( "268nd.p2", 0x100000, 0x400000, CRC(768ee64a) SHA1(76a65a69aee749758a2101aabdd44f3404838b54) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "268-m1.m1", CRC(4a5a6e0e) SHA1(df0f660f2465e1db7be5adfcaf5e88ad61a74a42) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) )
+ ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "268hd.c1", 0x0000000, 0x800000, CRC(e8239365) SHA1(E0A75902A783110049730B66AD3CBCCDD804BF62) )
+ ROM_LOAD16_BYTE( "268hd.c2", 0x0000001, 0x800000, CRC(89b21d4c) SHA1(862AC31CE9570529B33E6F58ADA0AC867A442679) )
+ ROM_LOAD16_BYTE( "268hd.c3", 0x1000000, 0x800000, CRC(3cda13a0) SHA1(5D029C92688384EAFD65AD711A2954D0B86A3163) )
+ ROM_LOAD16_BYTE( "268hd.c4", 0x1000001, 0x800000, CRC(9c00160d) SHA1(C612102F9CD288BBA4C245B5855D795E4362B217) )
+ ROM_LOAD16_BYTE( "268hd.c5", 0x2000000, 0x800000, CRC(38754256) SHA1(744D91D041998CA27EE2781188746797C65377BD) )
+ ROM_LOAD16_BYTE( "268hd.c6", 0x2000001, 0x800000, CRC(59d33e9c) SHA1(ED7F5C7DB4C35EC5A7DB0AD5436110B3FE80B89A) )
+ ROM_LOAD16_BYTE( "268hd.c7", 0x3000000, 0x800000, CRC(c9f8c357) SHA1(7064224AFA887F57245F5479B0B46228539A131B) )
+ ROM_LOAD16_BYTE( "268hd.c8", 0x3000001, 0x800000, CRC(fafc3eb9) SHA1(F4F73194CC7FD151BE3CA2561F993B5BE7628369) )
+ROM_END
+
+ROM_START( mslug5f ) // all confirmed: mslug5lvf with different p1 rom
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "268f.p1", 0x000000, 0x100000, CRC(6be7043d) SHA1(caaf24cc653abbd435de7732f6489c613f3911ac) )
+ ROM_LOAD16_WORD_SWAP( "268lvf.p2", 0x100000, 0x400000, CRC(f06c589a) SHA1(0882ee5221ab873f87a719e34bd5250b79b82730) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_512K( "268l9a.m1", CRC(464c72ad) SHA1(9e8a01c2bad897e2bbf32563a30f0474f8fcd2b5) )
+
+ ROM_REGION( 0x1037510, "ymsnd", 0 )
+ ROM_LOAD( "268l9b.v1", 0x000000, 0x400000, CRC(fcc8ba01) SHA1(c187c318c65f6aefae05e6cef9f17492edf2e4db) )
+ ROM_LOAD( "268l9b.v2", 0x400000, 0x400000, CRC(386f32bd) SHA1(d49fc812c442563b9e82da43bf5c6b9deea0f687) )
+ ROM_LOAD( "268l9b.v3", 0x800000, 0x400000, CRC(dc737e12) SHA1(f940ea767404f6a15dea526eda56ad66517ba79e) )
+ ROM_LOAD( "268l9b.v4", 0xc00000, 0x437510, CRC(2b310542) SHA1(5f0050d36cd1f722d78d9ae98db537eacc4d8548) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "268l9b.c1", 0x0000000, 0x800000, CRC(aad8ff17) SHA1(f8c5f7bd9aa4b930ceb38b25934650ac810563df) )
+ ROM_LOAD16_BYTE( "268l9b.c2", 0x0000001, 0x800000, CRC(b0404dd4) SHA1(0ab1f81072dac777c3269811dfb69cb40bd7a245) )
+ ROM_LOAD16_BYTE( "268l9b.c3", 0x1000000, 0x800000, CRC(95dda158) SHA1(7ec4625a17f815e8d7e690cb01f3c9dbce75e39b) )
+ ROM_LOAD16_BYTE( "268l9b.c4", 0x1000001, 0x800000, CRC(c052cf1f) SHA1(198041e813914570b943fc1927e986e5553c6bd4) )
+ ROM_LOAD16_BYTE( "268l9b.c5", 0x2000000, 0x800000, CRC(8b9f7e21) SHA1(0dcefc5efc67d520a880b3da6122c342ebdc5e2f) )
+ ROM_LOAD16_BYTE( "268l9b.c6", 0x2000001, 0x800000, CRC(4a0693cf) SHA1(c4bdf72754f85250dfccdd4444941931a6596569) )
+ ROM_LOAD16_BYTE( "268l9b.c7", 0x3000000, 0x800000, CRC(3ad5eaf4) SHA1(b4c4cf0425d42bd47bc85acfab93006c003af341) )
+ ROM_LOAD16_BYTE( "268l9b.c8", 0x3000001, 0x800000, CRC(3e7c670d) SHA1(166eda40c01d01b1d8ec82f2482e8cb4e5ca0e79) )
+ROM_END
+
+ROM_START( mslug5fr ) /* Metal Slug 5 - French translation - NeoArc */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "268fr.p1", 0x000000, 0x100000, CRC(63cc3c2d) SHA1(b4543c65427d15f784641617dcab53663031a9f3) )
+ ROM_LOAD16_WORD_SWAP( "268nd.p2", 0x100000, 0x400000, CRC(768ee64a) SHA1(76a65a69aee749758a2101aabdd44f3404838b54) )
+
+ NEO_SFIX_128K( "268fr.s1", CRC(77b18feb) SHA1(2d7cb5838730bfcb45eceeef11557cbcab8aa9da) )
+
+ NEO_BIOS_AUDIO_64K( "268d.m1", CRC(3c0655a7) SHA1(ae839d4c2b87a7aa3dd8e5caddc43eb75ee9b732) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "268fr.v1", 0x000000, 0x800000, CRC(7ff6ca47) SHA1(e36c4e6a349dd9fd38d1a36b6760bbd943c2a42f) )
+ ROM_LOAD( "268fr.v2", 0x800000, 0x800000, CRC(696cce3b) SHA1(538d4a25befa4ffd25a48df97380469c13980f7a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "268fr.c1", 0x0000000, 0x800000, CRC(c115bcbd) SHA1(241b71cb442844df0f1c7005955c5ae85b95a0b9) )
+ ROM_LOAD16_BYTE( "268fr.c2", 0x0000001, 0x800000, CRC(a95f284f) SHA1(db6b18b15f871ac17e88d2eec72b95c8a63be959) )
+ ROM_LOAD16_BYTE( "268hd.c3", 0x1000000, 0x800000, CRC(3cda13a0) SHA1(5d029c92688384eafd65ad711a2954d0b86a3163) )
+ ROM_LOAD16_BYTE( "268hd.c4", 0x1000001, 0x800000, CRC(9c00160d) SHA1(c612102f9cd288bba4c245b5855d795e4362b217) )
+ ROM_LOAD16_BYTE( "268fr.c5", 0x2000000, 0x800000, CRC(dae4bdba) SHA1(c7da602cc59296fd264fd2f97b29bc242340760f) )
+ ROM_LOAD16_BYTE( "268fr.c6", 0x2000001, 0x800000, CRC(731a14ce) SHA1(2363d3f0f2e2a621051de0db6e465f7b1a387ef9) )
+ ROM_LOAD16_BYTE( "268fr.c7", 0x3000000, 0x800000, CRC(bc8296af) SHA1(4309d093c09219fb90104d30211c204a2abcf82e) )
+ ROM_LOAD16_BYTE( "268fr.c8", 0x3000001, 0x800000, CRC(6fabe6d5) SHA1(12c23b85de985b4daba7def1d9d9d9b4c050ab63) )
+ROM_END
+
+ROM_START( mslug5fr1 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "268fr1.p1", 0x000000, 0x100000, CRC(0ee0d5c7) SHA1(10209cd9757b212708c569656d5c935c7bd4a5b3) )
+ ROM_LOAD16_WORD_SWAP( "268nd.p2", 0x100000, 0x400000, CRC(768ee64a) SHA1(76a65a69aee749758a2101aabdd44f3404838b54) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "268d.m1", CRC(3c0655a7) SHA1(ae839d4c2b87a7aa3dd8e5caddc43eb75ee9b732) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) )
+ ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "268hd.c1", 0x0000000, 0x800000, CRC(e8239365) SHA1(E0A75902A783110049730B66AD3CBCCDD804BF62) )
+ ROM_LOAD16_BYTE( "268hd.c2", 0x0000001, 0x800000, CRC(89b21d4c) SHA1(862AC31CE9570529B33E6F58ADA0AC867A442679) )
+ ROM_LOAD16_BYTE( "268hd.c3", 0x1000000, 0x800000, CRC(3cda13a0) SHA1(5D029C92688384EAFD65AD711A2954D0B86A3163) )
+ ROM_LOAD16_BYTE( "268hd.c4", 0x1000001, 0x800000, CRC(9c00160d) SHA1(C612102F9CD288BBA4C245B5855D795E4362B217) )
+ ROM_LOAD16_BYTE( "268hd.c5", 0x2000000, 0x800000, CRC(38754256) SHA1(744D91D041998CA27EE2781188746797C65377BD) )
+ ROM_LOAD16_BYTE( "268hd.c6", 0x2000001, 0x800000, CRC(59d33e9c) SHA1(ED7F5C7DB4C35EC5A7DB0AD5436110B3FE80B89A) )
+ ROM_LOAD16_BYTE( "268hd.c7", 0x3000000, 0x800000, CRC(c9f8c357) SHA1(7064224AFA887F57245F5479B0B46228539A131B) )
+ ROM_LOAD16_BYTE( "268hd.c8", 0x3000001, 0x800000, CRC(fafc3eb9) SHA1(F4F73194CC7FD151BE3CA2561F993B5BE7628369) )
+ROM_END
+
+ROM_START( mslug5fu ) // all confirmed
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "268fu.p1", 0x000000, 0x100000, CRC(d1b04ae1) SHA1(b1ab15336bf6bec9dc8cfdbf2a07c6017e3e7ae4) )
+ ROM_LOAD16_WORD_SWAP( "268fu.p2", 0x100000, 0x400000, CRC(6357efbf) SHA1(d1b19bb18e2836d352e8a8d6700d4a0b83227fdb) )
+
+ NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
+
+ NEO_BIOS_AUDIO_512K( "268l9a.m1", CRC(464c72ad) SHA1(9e8a01c2bad897e2bbf32563a30f0474f8fcd2b5) )
+
+ ROM_REGION( 0x1037510, "ymsnd", 0 )
+ ROM_LOAD( "268l9b.v1", 0x000000, 0x400000, CRC(fcc8ba01) SHA1(c187c318c65f6aefae05e6cef9f17492edf2e4db) )
+ ROM_LOAD( "268l9b.v2", 0x400000, 0x400000, CRC(386f32bd) SHA1(d49fc812c442563b9e82da43bf5c6b9deea0f687) )
+ ROM_LOAD( "268l9b.v3", 0x800000, 0x400000, CRC(dc737e12) SHA1(f940ea767404f6a15dea526eda56ad66517ba79e) )
+ ROM_LOAD( "268l9b.v4", 0xc00000, 0x437510, CRC(2b310542) SHA1(5f0050d36cd1f722d78d9ae98db537eacc4d8548) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "268hd.c1", 0x0000000, 0x800000, CRC(e8239365) SHA1(E0A75902A783110049730B66AD3CBCCDD804BF62) )
+ ROM_LOAD16_BYTE( "268hd.c2", 0x0000001, 0x800000, CRC(89b21d4c) SHA1(862AC31CE9570529B33E6F58ADA0AC867A442679) )
+ ROM_LOAD16_BYTE( "268hd.c3", 0x1000000, 0x800000, CRC(3cda13a0) SHA1(5D029C92688384EAFD65AD711A2954D0B86A3163) )
+ ROM_LOAD16_BYTE( "268hd.c4", 0x1000001, 0x800000, CRC(9c00160d) SHA1(C612102F9CD288BBA4C245B5855D795E4362B217) )
+ ROM_LOAD16_BYTE( "268fu.c5", 0x2000000, 0x800000, CRC(3bc09dbf) SHA1(a47954a3295dc21e7db7dedc03ab789f8005eed5) )
+ ROM_LOAD16_BYTE( "268fu.c6", 0x2000001, 0x800000, CRC(0db5ce14) SHA1(aa2c4bb143e3bba18523df645c5be249eb9fc147) )
+ ROM_LOAD16_BYTE( "268fu.c7", 0x3000000, 0x800000, CRC(aa4f3214) SHA1(dc3a8fac2cc81e60abafc209eb4bcccdaafde380) )
+ ROM_LOAD16_BYTE( "268fu.c8", 0x3000001, 0x800000, CRC(c86d0d81) SHA1(1a00aa65481410c0b64fe971e547638c05c5a0ce) )
+ROM_END
+
+ROM_START( mslug5hd )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD32_WORD_SWAP( "268-p1c.p1", 0x000000, 0x400000, CRC(3636690a) SHA1(e0da714b4bdc6efffe1250ded02ebddb3ab6d7b3) )
+ ROM_LOAD32_WORD_SWAP( "268-p2c.p2", 0x000002, 0x400000, CRC(8dfc47a2) SHA1(27d618cfbd0107a4d2a836797e967b39d2eb4851) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "268-m1.m1", CRC(4a5a6e0e) SHA1(df0f660f2465e1db7be5adfcaf5e88ad61a74a42) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) )
+ ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "268hd.c1", 0x0000000, 0x800000, CRC(e8239365) SHA1(E0A75902A783110049730B66AD3CBCCDD804BF62) )
+ ROM_LOAD16_BYTE( "268hd.c2", 0x0000001, 0x800000, CRC(89b21d4c) SHA1(862AC31CE9570529B33E6F58ADA0AC867A442679) )
+ ROM_LOAD16_BYTE( "268hd.c3", 0x1000000, 0x800000, CRC(3cda13a0) SHA1(5D029C92688384EAFD65AD711A2954D0B86A3163) )
+ ROM_LOAD16_BYTE( "268hd.c4", 0x1000001, 0x800000, CRC(9c00160d) SHA1(C612102F9CD288BBA4C245B5855D795E4362B217) )
+ ROM_LOAD16_BYTE( "268hd.c5", 0x2000000, 0x800000, CRC(38754256) SHA1(744D91D041998CA27EE2781188746797C65377BD) )
+ ROM_LOAD16_BYTE( "268hd.c6", 0x2000001, 0x800000, CRC(59d33e9c) SHA1(ED7F5C7DB4C35EC5A7DB0AD5436110B3FE80B89A) )
+ ROM_LOAD16_BYTE( "268hd.c7", 0x3000000, 0x800000, CRC(c9f8c357) SHA1(7064224AFA887F57245F5479B0B46228539A131B) )
+ ROM_LOAD16_BYTE( "268hd.c8", 0x3000001, 0x800000, CRC(fafc3eb9) SHA1(F4F73194CC7FD151BE3CA2561F993B5BE7628369) )
+ROM_END
+
+ROM_START( mslug5l9a )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "268l9a.p1", 0x000000, 0x100000, CRC(96aa148d) SHA1(b2487a29d6a96435cfe220cb78f74bc2a9ccc6b3) )
+ ROM_LOAD16_WORD_SWAP( "268l9a.p2", 0x100000, 0x400000, CRC(f5bf2c6b) SHA1(99fdc44aba8b2f30d14a1975052811567ea8f05a) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_512K( "268l9a.m1", CRC(464c72ad) SHA1(9e8a01c2bad897e2bbf32563a30f0474f8fcd2b5) )
+
+ ROM_REGION( 0x10002f0, "ymsnd", 0 )
+ ROM_LOAD( "268l9a.v1", 0x000000, 0x400000, CRC(a8e12a92) SHA1(b23d80d131649c1d243bb30cf5b2141354a7ac55) )
+ ROM_LOAD( "268l9a.v2", 0x400000, 0x400000, CRC(c40fa69b) SHA1(3c1ff87a2174a92d9f457a6932b53534ed410dc2) )
+ ROM_LOAD( "268l9a.v3", 0x800000, 0x400000, CRC(aeff1982) SHA1(ac777a12639e21f0f227be84a59c7bb543c6ddd9) )
+ ROM_LOAD( "268l9a.v4", 0xc00000, 0x4002f0, CRC(179cbca3) SHA1(fdcb0df0c2f73d11cd32a8625ad6fa24cedb9dc9) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "268l9a.c1", 0x0000000, 0x800000, CRC(5e2e9087) SHA1(2366df8b0ee03e8938dcae571dccf32cfcfd685b) )
+ ROM_LOAD16_BYTE( "268l9a.c2", 0x0000001, 0x800000, CRC(d15770e3) SHA1(162c166c3fdc2a29af88dfea8a10138284029e36) )
+ ROM_LOAD16_BYTE( "268l9a.c3", 0x1000000, 0x800000, CRC(3e104b8f) SHA1(ee8467e07f27fbcad35a239b45e1e7e5aed79a25) )
+ ROM_LOAD16_BYTE( "268l9a.c4", 0x1000001, 0x800000, CRC(03f32dda) SHA1(64bc08dce4a8188878d683a6290e370e4d3488a1) )
+ ROM_LOAD16_BYTE( "268l9a.c5", 0x2000000, 0x800000, CRC(fd3e0f24) SHA1(5143c521c79a011465c93717171bb24b550bdc1f) )
+ ROM_LOAD16_BYTE( "268l9a.c6", 0x2000001, 0x800000, CRC(3c873aba) SHA1(b1c882f7c228046929f82a24d9f635c1b6443a94) )
+ ROM_LOAD16_BYTE( "268l9a.c7", 0x3000000, 0x800000, CRC(0d070c3b) SHA1(2d785bd095726b4e48aa65578b9694372f4c46c3) )
+ ROM_LOAD16_BYTE( "268l9a.c8", 0x3000001, 0x800000, CRC(09751dd8) SHA1(5a1378faa3bd3ebb6573d7c171639df153b5202b) )
+ROM_END
+
+ROM_START( mslug5l9b )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "268l9a.p1", 0x000000, 0x100000, CRC(96aa148d) SHA1(b2487a29d6a96435cfe220cb78f74bc2a9ccc6b3) )
+ ROM_LOAD16_WORD_SWAP( "268l9b.p2", 0x100000, 0x400000, CRC(35982b98) SHA1(069f5f7fe6d2278b6bdeb1f5bd87818b868ed41b) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_512K( "268l9a.m1", CRC(464c72ad) SHA1(9e8a01c2bad897e2bbf32563a30f0474f8fcd2b5) )
+
+ ROM_REGION( 0x1037510, "ymsnd", 0 )
+ ROM_LOAD( "268l9b.v1", 0x000000, 0x400000, CRC(fcc8ba01) SHA1(c187c318c65f6aefae05e6cef9f17492edf2e4db) )
+ ROM_LOAD( "268l9b.v2", 0x400000, 0x400000, CRC(386f32bd) SHA1(d49fc812c442563b9e82da43bf5c6b9deea0f687) )
+ ROM_LOAD( "268l9b.v3", 0x800000, 0x400000, CRC(dc737e12) SHA1(f940ea767404f6a15dea526eda56ad66517ba79e) )
+ ROM_LOAD( "268l9b.v4", 0xc00000, 0x437510, CRC(2b310542) SHA1(5f0050d36cd1f722d78d9ae98db537eacc4d8548) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "268l9b.c1", 0x0000000, 0x800000, CRC(aad8ff17) SHA1(f8c5f7bd9aa4b930ceb38b25934650ac810563df) )
+ ROM_LOAD16_BYTE( "268l9b.c2", 0x0000001, 0x800000, CRC(b0404dd4) SHA1(0ab1f81072dac777c3269811dfb69cb40bd7a245) )
+ ROM_LOAD16_BYTE( "268l9b.c3", 0x1000000, 0x800000, CRC(95dda158) SHA1(7ec4625a17f815e8d7e690cb01f3c9dbce75e39b) )
+ ROM_LOAD16_BYTE( "268l9b.c4", 0x1000001, 0x800000, CRC(c052cf1f) SHA1(198041e813914570b943fc1927e986e5553c6bd4) )
+ ROM_LOAD16_BYTE( "268l9b.c5", 0x2000000, 0x800000, CRC(8b9f7e21) SHA1(0dcefc5efc67d520a880b3da6122c342ebdc5e2f) )
+ ROM_LOAD16_BYTE( "268l9b.c6", 0x2000001, 0x800000, CRC(4a0693cf) SHA1(c4bdf72754f85250dfccdd4444941931a6596569) )
+ ROM_LOAD16_BYTE( "268l9b.c7", 0x3000000, 0x800000, CRC(3ad5eaf4) SHA1(b4c4cf0425d42bd47bc85acfab93006c003af341) )
+ ROM_LOAD16_BYTE( "268l9b.c8", 0x3000001, 0x800000, CRC(3e7c670d) SHA1(166eda40c01d01b1d8ec82f2482e8cb4e5ca0e79) )
+ROM_END
+
+ROM_START( mslug5lvf ) // all confirmed: mslug5l9b with different p roms
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "268lvf.p1", 0x000000, 0x100000, CRC(18763285) SHA1(53947549729d6522f7b0858c968a1df19ab82f76) )
+ ROM_LOAD16_WORD_SWAP( "268lvf.p2", 0x100000, 0x400000, CRC(f06c589a) SHA1(0882ee5221ab873f87a719e34bd5250b79b82730) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_512K( "268l9a.m1", CRC(464c72ad) SHA1(9e8a01c2bad897e2bbf32563a30f0474f8fcd2b5) )
+
+ ROM_REGION( 0x1037510, "ymsnd", 0 )
+ ROM_LOAD( "268l9b.v1", 0x000000, 0x400000, CRC(fcc8ba01) SHA1(c187c318c65f6aefae05e6cef9f17492edf2e4db) )
+ ROM_LOAD( "268l9b.v2", 0x400000, 0x400000, CRC(386f32bd) SHA1(d49fc812c442563b9e82da43bf5c6b9deea0f687) )
+ ROM_LOAD( "268l9b.v3", 0x800000, 0x400000, CRC(dc737e12) SHA1(f940ea767404f6a15dea526eda56ad66517ba79e) )
+ ROM_LOAD( "268l9b.v4", 0xc00000, 0x437510, CRC(2b310542) SHA1(5f0050d36cd1f722d78d9ae98db537eacc4d8548) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "268l9b.c1", 0x0000000, 0x800000, CRC(aad8ff17) SHA1(f8c5f7bd9aa4b930ceb38b25934650ac810563df) )
+ ROM_LOAD16_BYTE( "268l9b.c2", 0x0000001, 0x800000, CRC(b0404dd4) SHA1(0ab1f81072dac777c3269811dfb69cb40bd7a245) )
+ ROM_LOAD16_BYTE( "268l9b.c3", 0x1000000, 0x800000, CRC(95dda158) SHA1(7ec4625a17f815e8d7e690cb01f3c9dbce75e39b) )
+ ROM_LOAD16_BYTE( "268l9b.c4", 0x1000001, 0x800000, CRC(c052cf1f) SHA1(198041e813914570b943fc1927e986e5553c6bd4) )
+ ROM_LOAD16_BYTE( "268l9b.c5", 0x2000000, 0x800000, CRC(8b9f7e21) SHA1(0dcefc5efc67d520a880b3da6122c342ebdc5e2f) )
+ ROM_LOAD16_BYTE( "268l9b.c6", 0x2000001, 0x800000, CRC(4a0693cf) SHA1(c4bdf72754f85250dfccdd4444941931a6596569) )
+ ROM_LOAD16_BYTE( "268l9b.c7", 0x3000000, 0x800000, CRC(3ad5eaf4) SHA1(b4c4cf0425d42bd47bc85acfab93006c003af341) )
+ ROM_LOAD16_BYTE( "268l9b.c8", 0x3000001, 0x800000, CRC(3e7c670d) SHA1(166eda40c01d01b1d8ec82f2482e8cb4e5ca0e79) )
+ROM_END
+
+ROM_START( mslug5lvnc )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "268lvf.p1", 0x000000, 0x100000, CRC(18763285) SHA1(53947549729d6522f7b0858c968a1df19ab82f76) )
+ ROM_LOAD16_WORD_SWAP( "268lvf.p2", 0x100000, 0x400000, CRC(f06c589a) SHA1(0882ee5221ab873f87a719e34bd5250b79b82730) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_512K( "268l9a.m1", CRC(464c72ad) SHA1(9e8a01c2bad897e2bbf32563a30f0474f8fcd2b5) )
+
+ ROM_REGION( 0x10002f0, "ymsnd", 0 )
+ ROM_LOAD( "268l9a.v1", 0x000000, 0x400000, CRC(a8e12a92) SHA1(b23d80d131649c1d243bb30cf5b2141354a7ac55) )
+ ROM_LOAD( "268lvnc.v2", 0x400000, 0x400000, CRC(0608cba3) SHA1(ad7c985a25abd68c58e502c008b45e0b14422829) )
+ ROM_LOAD( "268l9a.v3", 0x800000, 0x400000, CRC(aeff1982) SHA1(ac777a12639e21f0f227be84a59c7bb543c6ddd9) )
+ ROM_LOAD( "268l9a.v4", 0xc00000, 0x4002f0, CRC(179cbca3) SHA1(fdcb0df0c2f73d11cd32a8625ad6fa24cedb9dc9) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "268l9a.c1", 0x0000000, 0x800000, CRC(5e2e9087) SHA1(2366df8b0ee03e8938dcae571dccf32cfcfd685b) )
+ ROM_LOAD16_BYTE( "268l9a.c2", 0x0000001, 0x800000, CRC(d15770e3) SHA1(162c166c3fdc2a29af88dfea8a10138284029e36) )
+ ROM_LOAD16_BYTE( "268l9a.c3", 0x1000000, 0x800000, CRC(3e104b8f) SHA1(ee8467e07f27fbcad35a239b45e1e7e5aed79a25) )
+ ROM_LOAD16_BYTE( "268l9a.c4", 0x1000001, 0x800000, CRC(03f32dda) SHA1(64bc08dce4a8188878d683a6290e370e4d3488a1) )
+ ROM_LOAD16_BYTE( "268l9a.c5", 0x2000000, 0x800000, CRC(fd3e0f24) SHA1(5143c521c79a011465c93717171bb24b550bdc1f) )
+ ROM_LOAD16_BYTE( "268l9a.c6", 0x2000001, 0x800000, CRC(3c873aba) SHA1(b1c882f7c228046929f82a24d9f635c1b6443a94) )
+ ROM_LOAD16_BYTE( "268l9a.c7", 0x3000000, 0x800000, CRC(0d070c3b) SHA1(2d785bd095726b4e48aa65578b9694372f4c46c3) )
+ ROM_LOAD16_BYTE( "268l9a.c8", 0x3000001, 0x800000, CRC(09751dd8) SHA1(5a1378faa3bd3ebb6573d7c171639df153b5202b) )
+ROM_END
+
+ROM_START( mslug5w )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "268w.p1", 0x000000, 0x100000, CRC(b0c126da) SHA1(9081ec2c3cfc27baf759417b24f2ebc07ceffab0) )
+ ROM_LOAD16_WORD_SWAP( "268lvf.p2", 0x100000, 0x400000, CRC(f06c589a) SHA1(0882ee5221ab873f87a719e34bd5250b79b82730) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_512K( "268l9a.m1", CRC(464c72ad) SHA1(9e8a01c2bad897e2bbf32563a30f0474f8fcd2b5) )
+
+ ROM_REGION( 0x10002f0, "ymsnd", 0 )
+ ROM_LOAD( "268l9a.v1", 0x000000, 0x400000, CRC(a8e12a92) SHA1(b23d80d131649c1d243bb30cf5b2141354a7ac55) )
+ ROM_LOAD( "268lvnc.v2", 0x400000, 0x400000, CRC(0608cba3) SHA1(ad7c985a25abd68c58e502c008b45e0b14422829) )
+ ROM_LOAD( "268nd.v3", 0x800000, 0x400000, CRC(02fd519e) SHA1(6fbda5bf8dbf52bc110aba7b9d20b24bdc2fe0d7) )
+ ROM_LOAD( "268l9a.v4", 0xc00000, 0x4002f0, CRC(179cbca3) SHA1(fdcb0df0c2f73d11cd32a8625ad6fa24cedb9dc9) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "268l9a.c1", 0x0000000, 0x800000, CRC(5e2e9087) SHA1(2366df8b0ee03e8938dcae571dccf32cfcfd685b) )
+ ROM_LOAD16_BYTE( "268l9a.c2", 0x0000001, 0x800000, CRC(d15770e3) SHA1(162c166c3fdc2a29af88dfea8a10138284029e36) )
+ ROM_LOAD16_BYTE( "268l9a.c3", 0x1000000, 0x800000, CRC(3e104b8f) SHA1(ee8467e07f27fbcad35a239b45e1e7e5aed79a25) )
+ ROM_LOAD16_BYTE( "268l9a.c4", 0x1000001, 0x800000, CRC(03f32dda) SHA1(64bc08dce4a8188878d683a6290e370e4d3488a1) )
+ ROM_LOAD16_BYTE( "268l9a.c5", 0x2000000, 0x800000, CRC(fd3e0f24) SHA1(5143c521c79a011465c93717171bb24b550bdc1f) )
+ ROM_LOAD16_BYTE( "268l9a.c6", 0x2000001, 0x800000, CRC(3c873aba) SHA1(b1c882f7c228046929f82a24d9f635c1b6443a94) )
+ ROM_LOAD16_BYTE( "268l9a.c7", 0x3000000, 0x800000, CRC(0d070c3b) SHA1(2d785bd095726b4e48aa65578b9694372f4c46c3) )
+ ROM_LOAD16_BYTE( "268l9a.c8", 0x3000001, 0x800000, CRC(09751dd8) SHA1(5a1378faa3bd3ebb6573d7c171639df153b5202b) )
+ROM_END
+
+ROM_START( mslug5nd )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "268nd.p1", 0x000000, 0x100000, CRC(ca50afdf) SHA1(e3780b77f20d139a0dcaa2ded2c6ee323b8b4279) ) // this rom is watermarked by HappyASR (24/12/03)
+ ROM_LOAD16_WORD_SWAP( "268nd.p2", 0x100000, 0x400000, CRC(768ee64a) SHA1(76a65a69aee749758a2101aabdd44f3404838b54) )
+// ROM_LOAD16_WORD_SWAP( "268boot.p1", 0x000000, 0x100000, CRC(e6d297af) SHA1(5bb3f72ce26e3f46c523b955f425056eb246e855) )
+// ROM_LOAD16_WORD_SWAP( "268-p2n.bin", 0x100000, 0x400000, CRC(84def63e) SHA1(fddd68e8879d6f5c1aac42997ff2245ea54d5869) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "268nd.m1", CRC(6FA01C9A) SHA1(3DAB7593BFCCE318D22EC3DF672EE3B4AB73DCF5) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+// ROM_LOAD( "268-v1c.bin", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) )
+// ROM_LOAD( "268-v2c.bin", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) )
+ ROM_LOAD( "268nd.v1", 0x000000, 0x400000, CRC(dc7f03f0) SHA1(e1e31dcaff1f8d2c4b2d657aa856a60771d82c26) )
+ ROM_LOAD( "268nd.v2", 0x400000, 0x400000, CRC(eeb7c926) SHA1(4d71f59948bdc5ed2e6daf101f16fd979e1ab193) )
+ ROM_LOAD( "268nd.v3", 0x800000, 0x400000, CRC(02fd519e) SHA1(6fbda5bf8dbf52bc110aba7b9d20b24bdc2fe0d7) )
+ ROM_LOAD( "268nd.v4", 0xc00000, 0x400000, CRC(d7c67794) SHA1(345dcbf76b25b2fbd10bcaf08ee395da0a52c5ce) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "268d.c1", 0x0000000, 0x800000, CRC(969c0d62) SHA1(DE3C5CFA980CCA2FAB0416AC0D292948B5D4C9C3) )
+ ROM_LOAD16_BYTE( "268d.c2", 0x0000001, 0x800000, CRC(c69ae867) SHA1(3198EE5C7C2C7563B49EBD9F7BA95D9B0B303F6C) )
+ ROM_LOAD16_BYTE( "268d.c3", 0x1000000, 0x800000, CRC(d7beaeaf) SHA1(99443EA4C1BAB45F1977A390EB7E1A0163915110) )
+ ROM_LOAD16_BYTE( "268nd.c4", 0x1000001, 0x800000, CRC(E1B1131B) SHA1(68A36D336582069E79AD481638D92F57C4CD6523) )
+ ROM_LOAD16_BYTE( "268d.c5", 0x2000000, 0x800000, CRC(2fa1a5ad) SHA1(4AE15D29BA979601598EDDF8905072FE1D9E0A98) )
+ ROM_LOAD16_BYTE( "268d.c6", 0x2000001, 0x800000, CRC(6de89589) SHA1(86A6C036BF51AF516FEA83A30874026EC1586A83) )
+ ROM_LOAD16_BYTE( "268d.c7", 0x3000000, 0x800000, CRC(97bd0c0a) SHA1(30F3280FE527098ECF46541CC645A59B366105EA) )
+ ROM_LOAD16_BYTE( "268d.c8", 0x3000001, 0x800000, CRC(c0d5bc20) SHA1(B5D0D81D5CC624538B0651C568295E578A1330D1) )
+ROM_END
+
+// Metal Slug
+GAME( 2005, msboot, mslug, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Nazca", "Metal Slug (Bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, mslugeh, mslug, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Metal Slug Enhanced", MACHINE_SUPPORTS_SAVE ) // New standard weapon shotgun - 20 bombs instead of 10
+// Metal Slug 2
+GAME( 1998, mslug2eh, mslug2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Metal Slug 2 (Style remix set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, mslug2eh0, mslug2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Metal Slug 2 (Enhanced Revised Version, hack by Ydmis)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, mslug2eh1, mslug2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Metal Slug 2 (Style remix set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, mslug2eh2, mslug2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Metal Slug 2 (Style remix set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, mslug2eh3, mslug2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Metal Slug 2 (Style remix set 4)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, mslug2eh4, mslug2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Metal Slug 2 (Style remix set 5)", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, mslug2fr, mslug2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Arkatrad", "Metal Slug 2 (French)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, mslug2fro, mslug2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Arkatrad", "Metal Slug 2 (French) (Old)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, mslug2sh, mslug2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Metal Slug 2 (hybrid Bullets version, Shinwa hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2015, mslug2t, mslug2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "System11", "Metal Slug 2 Turbo", MACHINE_SUPPORTS_SAVE )
+// Metal Slug X
+GAME( 1999, mslugxce, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "hack", "Metal Slug X (CE)", MACHINE_SUPPORTS_SAVE )
+GAME( 2013, mslugxeb, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "PlayerX China", "Metal Slug X (EB)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, mslugxeh, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "KrysoFun/KVS", "Metal Slug X (Style remix)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, mslugxeh1, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "hack", "Metal Slug X (Super Revised Version by KrysoFun)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, mslugxex, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "hack", "Metal Slug X (Excel version by PlayerX)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, mslugxfe, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "hack", "Metal Slug X (FE)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, mslugxfr, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Arkatrad", "Metal Slug X (French)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, mslugxfro, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Arkatrad", "Metal Slug X (French) (Old)", MACHINE_SUPPORTS_SAVE )
+GAME( 2013, mslugxhp, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "hack", "Metal Slug X (Enemy Heavy Plate 2013-06-18)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, mslugxit, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Clomax & Ombra", "Metal Slug X (Italian - Beta)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, mslugxjdkj,mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "hack", "Metal Slug X (JDKJ)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, mslugxmfb, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "hack", "Metal Slug X (MFB)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, mslugxp, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Player-X", "Metal Slug X Plus (Hack by Player-X)", MACHINE_SUPPORTS_SAVE )
+GAME( 2013, mslugxr, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "hack", "Metal Slug X (Reset Version 2013-05-28)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, mslugxres, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "hack", "Metal Slug X (RES)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, mslugxsef, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "hack", "Metal Slug X (SEF)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, mslugxst, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "EGCG / Stark", "Metal Slug X (Enhanced Version by STARK) [EGCG]", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, mslugxsvb, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "hack", "Metal Slug X (SVB)", MACHINE_SUPPORTS_SAVE )
+// Metal Slug 3
+GAME( 2000, mslug3d, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3d, ROT0, "SNK", "Metal Slug 3 (decrypted C)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mslug3e02, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Ydmis", "Metal Slug 3 (Style remix set 02)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mslug3e03, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Ydmis", "Metal Slug 3 (Style remix set 03)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mslug3e04, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Ydmis", "Metal Slug 3 (Style remix set 04)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mslug3e05, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Ydmis", "Metal Slug 3 (Style remix set 05)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mslug3e06, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Ydmis", "Metal Slug 3 (Style remix set 06)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mslug3e07, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Ydmis", "Metal Slug 3 (Style remix set 07)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mslug3e08, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Ydmis", "Metal Slug 3 (Style remix set 08)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mslug3e09, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Ydmis", "Metal Slug 3 (Style remix set 09)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mslug3e10, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Ydmis", "Metal Slug 3 (Style remix set 10)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mslug3e11, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Ydmis", "Metal Slug 3 (Style remix set 11)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mslug3e12, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Ydmis", "Metal Slug 3 (Style remix set 12)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mslug3e13, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Ydmis", "Metal Slug 3 (Style remix set 13)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mslug3e14, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Ydmis", "Metal Slug 3 (Style remix set 14)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mslug3e15, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Ydmis", "Metal Slug 3 (Style remix set 15)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mslug3e16, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Ydmis", "Metal Slug 3 (Style remix set 16)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mslug3e17, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Ydmis", "Metal Slug 3 (Style remix set 17)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mslug3e18, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Ydmis", "Metal Slug 3 (Style remix set 18)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mslug3e19, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Ydmis", "Metal Slug 3 (Style remix set 19)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mslug3e20, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Ydmis", "Metal Slug 3 (Style remix set 20)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mslug3e21, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Ydmis", "Metal Slug 3 (Style remix set 21)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mslug3e22, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Ydmis", "Metal Slug 3 (Style remix set 22)", MACHINE_SUPPORTS_SAVE )
+GAME( 2013, mslug3eb, mslug3, neogeo_noslot, neogeo, neogeo_noslot_state, mslug3, ROT0, "PlayerX China", "Metal Slug 3 (EB)" , MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mslug3eha, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "HappyAsr", "Metal Slug 3 (Style remix 030826)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mslug3ehs, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Ydmis", "Metal Slug 3 (Style remix set 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, mslug3fr, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3fr, ROT0, "Arkatrad", "Metal Slug 3 (French)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, mslug3fro, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3fr, ROT0, "Arkatrad", "Metal Slug 3 (French) (Old)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mslug3hev, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "hack", "Metal Slug 3 (unknown hev)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mslug3kh, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Fighters Kim and Ydmis", "Metal Slug 3 (Style remix 030801)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mslug3kho, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Fighters Kim and Ydmis", "Metal Slug 3 (Style remix 030728)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mslug3nd, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, cmc42sfix,ROT0, "SNK", "Metal Slug 3 (NGH-2560)(Fully Decrypted C)", MACHINE_SUPPORTS_SAVE )
+GAME( 2012, mslug3v, mslug3, neogeo_noslot, neogeo, neogeo_noslot_state, mslug3b6, ROT0, "Eezezy", "Metal Slug 3 (Violence Edition)", MACHINE_SUPPORTS_SAVE )
+// Metal Slug 4
+GAME( 2002, mslug4d, mslug4, neogeo_noslot, neogeo, neogeo_hbmame, mslug4d, ROT0, "Mega", "Metal Slug 4 (decrypted C)", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, mslug4dh, mslug4, neogeo_noslot, neogeo, neogeo_hbmame, mslug4dh, ROT0, "HappyASR [EGCG]", "Metal Slug 4 Super D Version", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, mslug4dh1, mslug4, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Metal Slug 4 Super D Version (Hack by HappyASR [EGCG])", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, mslug4eh, mslug4, neogeo_noslot, neogeo, neogeo_hbmame, mslug4m, ROT0, "Creamymami", "Metal Slug 4 (Style remix 030414 set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, mslug4eh2, mslug4, neogeo_noslot, neogeo, neogeo_hbmame, mslug4m, ROT0, "Creamymami", "Metal Slug 4 (Style remix 030414 set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, mslug4eh3, mslug4, neogeo_noslot, neogeo, neogeo_hbmame, mslug4m, ROT0, "Creamymami", "Metal Slug 4 (Style remix 030414 set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, mslug4eh4, mslug4, neogeo_noslot, neogeo, neogeo_hbmame, mslug4m, ROT0, "Creamymami", "Metal Slug 4 (Style remix 030414 set 4)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, mslug4eh5, mslug4, neogeo_noslot, neogeo, neogeo_hbmame, mslug4m, ROT0, "Creamymami", "Metal Slug 4 (Style remix 030414 set 5)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, mslug4eh6, mslug4, neogeo_noslot, neogeo, neogeo_hbmame, mslug4m, ROT0, "Creamymami", "Metal Slug 4 (Style remix 030414 set 6)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, mslug4eho, mslug4, neogeo_noslot, neogeo, neogeo_hbmame, mslug4m, ROT0, "Creamymami", "Metal Slug 4 (Style remix Old)", MACHINE_SUPPORTS_SAVE )
+GAME( 2005, mslug4fr, mslug4, neogeo_noslot, neogeo, neogeo_hbmame, mslug4m, ROT0, "Arkatrad", "Metal Slug 4 (French)", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, mslug4i, mslug4, neogeo_noslot, neogeo, neogeo_hbmame, mslug4it, ROT0, "Evoboy", "Metal Slug 4 (Italian)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, mslug4i1, mslug4, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Metal Slug 4 (Italian)2", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, mslug4kh, mslug4, neogeo_noslot, neogeo, neogeo_hbmame, mslug4m, ROT0, "Creamymami and Fighters Kim", "Metal Slug 4 (Style remix 030731)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, mslug4lw, mslug4, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Metal Slug 4 (LW)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 2002, mslug4nd, mslug4, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Mega Enterprise / Playmore Corporation", "Metal Slug 4 (fully decrypted)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, mslug4sp, mslug4, neogeo_noslot, neogeo, neogeo_noslot_state, mslug4, ROT0, "hack", "Metal Slug 4 (SP)", MACHINE_SUPPORTS_SAVE )
+// Metal Slug 5
+GAME( 2003, mslug5b, mslug5, neogeo_noslot, neogeo, neogeo_hbmame, mslug5b, ROT0, "bootleg", "Metal Slug 5 (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, mslug5d, mslug5, neogeo_noslot, neogeo, neogeo_hbmame, mslug5d, ROT0, "hack", "Metal Slug 5 (decrypted C)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, mslug5d1, mslug5, neogeo_noslot, neogeo, neogeo_hbmame, mslug5d1, ROT0, "hack", "Metal Slug 5 (NGM-2680) (fully decrypted)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, mslug5f, mslug5, neogeo_noslot, neogeo, neogeo_noslot_state, s1945p, ROT0, "C.B", "Metal Slug 5 (F)", MACHINE_SUPPORTS_SAVE )
+GAME( 2006, mslug5fr, mslug5, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Arkatrad", "Metal Slug 5 (French)", MACHINE_SUPPORTS_SAVE )
+GAME( 2006, mslug5fr1, mslug5, neogeo_noslot, neogeo, neogeo_hbmame, mslug5fr1,ROT0, "NEO-ARC", "Metal Slug 5 (French Edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, mslug5fu, mslug5, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Metal Slug 5 (FU)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 2003, mslug5hd, mslug5, neogeo_noslot, neogeo, neogeo_hbmame, mslug5hd, ROT0, "hack", "Metal Slug 5 (NGH-2680) (Decrypted C)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, mslug5l9a, mslug5, neogeo_noslot, neogeo, neogeo_noslot_state, s1945p, ROT0, "C.B", "Metal Slug 5 Level 9 Hack (Ver A)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, mslug5l9b, mslug5, neogeo_noslot, neogeo, neogeo_noslot_state, s1945p, ROT0, "C.B", "Metal Slug 5 Level 9 Hack (Ver B)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, mslug5lvf, mslug5, neogeo_noslot, neogeo, neogeo_noslot_state, s1945p, ROT0, "C.B", "Metal Slug 5 (LVF)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, mslug5lvnc,mslug5, neogeo_noslot, neogeo, neogeo_noslot_state, s1945p, ROT0, "C.B", "Metal Slug 5 (LVNC)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, mslug5nd, mslug5, neogeo_noslot, neogeo, neogeo_hbmame, mslug5nd, ROT0, "hack", "Metal Slug 5 (decrypted)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, mslug5w, mslug5, neogeo_noslot, neogeo, neogeo_noslot_state, s1945p, ROT0, "C.B", "Metal Slug 5 (W)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, ms5boot, mslug5, neogeo_noslot, neogeo, neogeo_hbmame, ms5boot, ROT0, "bootleg", "Metal Slug 5 (Bootleg Set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, ms5pcbd, ms5pcb, neogeo_noslot, dualbios, neogeo_hbmame, ms5pcbd, ROT0, "hack", "Metal Slug 5 (JAMMA PCB) decrypted", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, ms5sp, mslug5, neogeo_noslot, neogeo, neogeo_noslot_state, ms5plus, ROT0, "hack", "Metal Slug 5 PLUS (SP)", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/mspacman.cpp b/docs/release/src/hbmame/drivers/mspacman.cpp
new file mode 100644
index 00000000000..42adac98950
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/mspacman.cpp
@@ -0,0 +1,2560 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+/* ===== MS PAC MAN ======
+
+*/
+
+#define mspacman_enable_decode_latch(m) m.root_device().membank("bank1")->set_entry(1)
+#define mspacman_disable_decode_latch(m) m.root_device().membank("bank1")->set_entry(0)
+
+// any access to these ROM addresses disables the decoder, and all you see is the original Pac-Man code
+READ8_MEMBER(pacman_state::mspacman_disable_decode_r_0x0038){ mspacman_disable_decode_latch(machine()); return memregion("maincpu")->base()[offset+0x0038]; }
+READ8_MEMBER(pacman_state::mspacman_disable_decode_r_0x03b0){ mspacman_disable_decode_latch(machine()); return memregion("maincpu")->base()[offset+0x03b0]; }
+READ8_MEMBER(pacman_state::mspacman_disable_decode_r_0x1600){ mspacman_disable_decode_latch(machine()); return memregion("maincpu")->base()[offset+0x1600]; }
+READ8_MEMBER(pacman_state::mspacman_disable_decode_r_0x2120){ mspacman_disable_decode_latch(machine()); return memregion("maincpu")->base()[offset+0x2120]; }
+READ8_MEMBER(pacman_state::mspacman_disable_decode_r_0x3ff0){ mspacman_disable_decode_latch(machine()); return memregion("maincpu")->base()[offset+0x3ff0]; }
+READ8_MEMBER(pacman_state::mspacman_disable_decode_r_0x8000){ mspacman_disable_decode_latch(machine()); return memregion("maincpu")->base()[offset+0x8000]; }
+READ8_MEMBER(pacman_state::mspacman_disable_decode_r_0x97f0){ mspacman_disable_decode_latch(machine()); return memregion("maincpu")->base()[offset+0x97f0]; }
+WRITE8_MEMBER(pacman_state::mspacman_disable_decode_w){ mspacman_disable_decode_latch(machine()); }
+
+// any access to these ROM addresses enables the decoder, and you'll see the Ms. Pac-Man code
+READ8_MEMBER(pacman_state::mspacman_enable_decode_r_0x3ff8){ mspacman_enable_decode_latch(machine()); return memregion("maincpu")->base()[offset+0x3ff8+0x10000]; }
+WRITE8_MEMBER(pacman_state::mspacman_enable_decode_w){ mspacman_enable_decode_latch(machine()); }
+
+#define BITSWAP12(val,B11,B10,B9,B8,B7,B6,B5,B4,B3,B2,B1,B0) \
+ BITSWAP16(val,15,14,13,12,B11,B10,B9,B8,B7,B6,B5,B4,B3,B2,B1,B0)
+
+#define BITSWAP11(val,B10,B9,B8,B7,B6,B5,B4,B3,B2,B1,B0) \
+ BITSWAP16(val,15,14,13,12,11,B10,B9,B8,B7,B6,B5,B4,B3,B2,B1,B0)
+
+void pacman_state::mspacman_install_patches(uint8_t *ROM)
+{
+ int i;
+
+ /* copy forty 8-byte patches into Pac-Man code */
+ for (i = 0; i < 8; i++)
+ {
+ ROM[0x0410+i] = ROM[0x8008+i];
+ ROM[0x08E0+i] = ROM[0x81D8+i];
+ ROM[0x0A30+i] = ROM[0x8118+i];
+ ROM[0x0BD0+i] = ROM[0x80D8+i];
+ ROM[0x0C20+i] = ROM[0x8120+i];
+ ROM[0x0E58+i] = ROM[0x8168+i];
+ ROM[0x0EA8+i] = ROM[0x8198+i];
+
+ ROM[0x1000+i] = ROM[0x8020+i];
+ ROM[0x1008+i] = ROM[0x8010+i];
+ ROM[0x1288+i] = ROM[0x8098+i];
+ ROM[0x1348+i] = ROM[0x8048+i];
+ ROM[0x1688+i] = ROM[0x8088+i];
+ ROM[0x16B0+i] = ROM[0x8188+i];
+ ROM[0x16D8+i] = ROM[0x80C8+i];
+ ROM[0x16F8+i] = ROM[0x81C8+i];
+ ROM[0x19A8+i] = ROM[0x80A8+i];
+ ROM[0x19B8+i] = ROM[0x81A8+i];
+
+ ROM[0x2060+i] = ROM[0x8148+i];
+ ROM[0x2108+i] = ROM[0x8018+i];
+ ROM[0x21A0+i] = ROM[0x81A0+i];
+ ROM[0x2298+i] = ROM[0x80A0+i];
+ ROM[0x23E0+i] = ROM[0x80E8+i];
+ ROM[0x2418+i] = ROM[0x8000+i];
+ ROM[0x2448+i] = ROM[0x8058+i];
+ ROM[0x2470+i] = ROM[0x8140+i];
+ ROM[0x2488+i] = ROM[0x8080+i];
+ ROM[0x24B0+i] = ROM[0x8180+i];
+ ROM[0x24D8+i] = ROM[0x80C0+i];
+ ROM[0x24F8+i] = ROM[0x81C0+i];
+ ROM[0x2748+i] = ROM[0x8050+i];
+ ROM[0x2780+i] = ROM[0x8090+i];
+ ROM[0x27B8+i] = ROM[0x8190+i];
+ ROM[0x2800+i] = ROM[0x8028+i];
+ ROM[0x2B20+i] = ROM[0x8100+i];
+ ROM[0x2B30+i] = ROM[0x8110+i];
+ ROM[0x2BF0+i] = ROM[0x81D0+i];
+ ROM[0x2CC0+i] = ROM[0x80D0+i];
+ ROM[0x2CD8+i] = ROM[0x80E0+i];
+ ROM[0x2CF0+i] = ROM[0x81E0+i];
+ ROM[0x2D60+i] = ROM[0x8160+i];
+ }
+}
+
+DRIVER_INIT_MEMBER(pacman_state,mspacman)
+{
+ int i;
+ uint8_t *ROM, *DROM;
+
+ /* CPU ROMs */
+
+ /* Pac-Man code is in low bank */
+ ROM = machine().root_device().memregion("maincpu")->base();
+
+ /* decrypted Ms. Pac-Man code is in high bank */
+ DROM = &machine().root_device().memregion("maincpu")->base()[0x10000];
+
+ /* copy ROMs into decrypted bank */
+ for (i = 0; i < 0x1000; i++)
+ {
+ DROM[0x0000+i] = ROM[0x0000+i]; /* pacman.6e */
+ DROM[0x1000+i] = ROM[0x1000+i]; /* pacman.6f */
+ DROM[0x2000+i] = ROM[0x2000+i]; /* pacman.6h */
+ DROM[0x3000+i] = BITSWAP8(ROM[0xb000+BITSWAP12(i,11,3,7,9,10,8,6,5,4,2,1,0)],0,4,5,7,6,3,2,1); /* decrypt u7 */
+ }
+ for (i = 0; i < 0x800; i++)
+ {
+ DROM[0x8000+i] = BITSWAP8(ROM[0x8000+BITSWAP11(i, 8,7,5,9,10,6,3,4,2,1,0)],0,4,5,7,6,3,2,1); /* decrypt u5 */
+ DROM[0x8800+i] = BITSWAP8(ROM[0x9800+BITSWAP12(i,11,3,7,9,10,8,6,5,4,2,1,0)],0,4,5,7,6,3,2,1); /* decrypt half of u6 */
+ DROM[0x9000+i] = BITSWAP8(ROM[0x9000+BITSWAP12(i,11,3,7,9,10,8,6,5,4,2,1,0)],0,4,5,7,6,3,2,1); /* decrypt half of u6 */
+ DROM[0x9800+i] = ROM[0x1800+i]; /* mirror of pacman.6f high */
+ }
+ for (i = 0; i < 0x1000; i++)
+ {
+ DROM[0xa000+i] = ROM[0x2000+i]; /* mirror of pacman.6h */
+ DROM[0xb000+i] = ROM[0x3000+i]; /* mirror of pacman.6j */
+ }
+ /* install patches into decrypted bank */
+ mspacman_install_patches(DROM);
+
+ /* mirror Pac-Man ROMs into upper addresses of normal bank */
+ for (i = 0; i < 0x1000; i++)
+ {
+ ROM[0x8000+i] = ROM[0x0000+i];
+ ROM[0x9000+i] = ROM[0x1000+i];
+ ROM[0xa000+i] = ROM[0x2000+i];
+ ROM[0xb000+i] = ROM[0x3000+i];
+ }
+
+ /* initialize the banks */
+ machine().root_device().membank("bank1")->configure_entries(0, 2, &ROM[0x00000], 0x10000);
+ machine().root_device().membank("bank1")->set_entry(1);
+}
+
+
+
+/* used by extra routine at $3FE, bit 4 of 504d needs to be low, and of 504e to be high */
+READ8_MEMBER( pacman_state::mspacii_prot_r )
+{
+ return offset<<4;
+}
+
+/* For Zola's timer */
+
+READ8_MEMBER( pacman_state::zolatimer_r )
+{
+ uint8_t timernow = m_timerthing;
+ m_timerthing++;
+ return timernow;
+}
+
+WRITE8_MEMBER( pacman_state::zolatimer_w ) /* to stop it hanging when game reset */
+{
+ m_timerthing = data;
+}
+
+
+/********************************
+ Memory Maps
+ ********************************/
+
+
+/* Same as woodhack, plus it has nvram, and some extra ram at fffc */
+static ADDRESS_MAP_START( mspachi_map, AS_PROGRAM, 8, pacman_state )
+ AM_RANGE(0x0000, 0x3fff) AM_ROM
+ AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_videoram_w) AM_SHARE("videoram")
+ AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_colorram_w) AM_SHARE("colorram")
+ AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0xa000) AM_RAM AM_SHARE("nvram")
+ AM_RANGE(0x4c00, 0x4fef) AM_MIRROR(0xa000) AM_RAM
+ AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0xa000) AM_RAM AM_SHARE("spriteram")
+ AM_RANGE(0x5000, 0x5000) AM_WRITE(irq_mask_w)
+ AM_RANGE(0x5001, 0x5001) AM_DEVWRITE("namco", namco_device, pacman_sound_enable_w)
+ AM_RANGE(0x5002, 0x5002) AM_WRITENOP
+ AM_RANGE(0x5003, 0x5003) AM_WRITE(pacman_flipscreen_w)
+ AM_RANGE(0x5004, 0x5005) AM_WRITE(pacman_leds_w)
+ AM_RANGE(0x5006, 0x5006) AM_WRITE(pacman_coin_lockout_global_w)
+ AM_RANGE(0x5007, 0x5007) AM_WRITE(pacman_coin_counter_w)
+ AM_RANGE(0x5040, 0x505f) AM_DEVWRITE("namco", namco_device, pacman_sound_w)
+ AM_RANGE(0x5060, 0x506f) AM_WRITEONLY AM_SHARE("spriteram2")
+ AM_RANGE(0x5070, 0x5080) AM_WRITENOP
+ AM_RANGE(0x50c0, 0x50c0) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
+ AM_RANGE(0x5000, 0x5000) AM_READ_PORT("IN0")
+ AM_RANGE(0x5040, 0x5040) AM_READ_PORT("IN1")
+ AM_RANGE(0x5080, 0x5080) AM_READ_PORT("DSW1")
+ AM_RANGE(0x50c0, 0x50c0) AM_READ_PORT("DSW2")
+ AM_RANGE(0x7000, 0x70ff) AM_RAM
+ AM_RANGE(0x8000, 0xbfff) AM_ROM
+ AM_RANGE(0xfffc, 0xffff) AM_RAM
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( mspacii_map, AS_PROGRAM, 8, pacman_state )
+ /* do not use UNMAP_HIGH (protection issues) */
+ AM_RANGE(0x0000, 0x3fff) AM_ROM
+ AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_videoram_w) AM_SHARE("videoram")
+ AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_colorram_w) AM_SHARE("colorram")
+ AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0xa000) AM_READ(pacman_read_nop)
+ AM_RANGE(0x4c00, 0x4fef) AM_MIRROR(0xa000) AM_RAM
+ AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0xa000) AM_RAM AM_SHARE("spriteram")
+ AM_RANGE(0x5000, 0x5000) AM_MIRROR(0x8000) AM_WRITE(irq_mask_w)
+ AM_RANGE(0x5001, 0x5001) AM_MIRROR(0x8000) AM_DEVWRITE("namco", namco_device, pacman_sound_enable_w)
+ AM_RANGE(0x5002, 0x5002) AM_MIRROR(0x8000) AM_WRITENOP
+ AM_RANGE(0x5003, 0x5003) AM_MIRROR(0x8000) AM_WRITE(pacman_flipscreen_w)
+ AM_RANGE(0x5004, 0x5005) AM_MIRROR(0x8000) AM_WRITE(pacman_leds_w)
+ AM_RANGE(0x5006, 0x5006) AM_MIRROR(0x8000) AM_WRITENOP // AM_WRITE(pacman_coin_lockout_global_w)
+ AM_RANGE(0x5007, 0x5007) AM_MIRROR(0x8000) AM_WRITE(pacman_coin_counter_w)
+ AM_RANGE(0x5040, 0x505f) AM_MIRROR(0x8000) AM_DEVWRITE("namco", namco_device, pacman_sound_w)
+ AM_RANGE(0x5060, 0x506f) AM_MIRROR(0x8000) AM_WRITEONLY AM_SHARE("spriteram2")
+ AM_RANGE(0x5070, 0x5080) AM_MIRROR(0x8000) AM_WRITENOP
+ AM_RANGE(0x50c0, 0x50c0) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
+ AM_RANGE(0x5000, 0x5000) AM_MIRROR(0x8000) AM_READ_PORT("IN0")
+ AM_RANGE(0x5040, 0x5040) AM_MIRROR(0x8000) AM_READ_PORT("IN1")
+ AM_RANGE(0x504d, 0x506f) AM_READ(mspacii_prot_r)
+ AM_RANGE(0x5080, 0x5080) AM_MIRROR(0x8000) AM_READ_PORT("DSW1")
+ AM_RANGE(0x50c0, 0x50c0) AM_MIRROR(0x8000) AM_READ_PORT("DSW2")
+ AM_RANGE(0x8000, 0x9fff) AM_ROM
+ AM_RANGE(0xfffc, 0xffff) AM_WRITENOP
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( mspacman_map, AS_PROGRAM, 8, pacman_state )
+ AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_videoram_w) AM_SHARE("videoram")
+ AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_colorram_w) AM_SHARE("colorram")
+ AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0xa000) AM_READ(pacman_read_nop) AM_WRITENOP
+ AM_RANGE(0x4c00, 0x4fef) AM_MIRROR(0xa000) AM_RAM
+ AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0xa000) AM_RAM AM_SHARE("spriteram")
+ AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf38) AM_WRITE(irq_mask_w)
+ AM_RANGE(0x5001, 0x5001) AM_MIRROR(0xaf38) AM_DEVWRITE("namco", namco_device, pacman_sound_enable_w)
+ AM_RANGE(0x5002, 0x5002) AM_MIRROR(0xaf38) AM_WRITENOP
+ AM_RANGE(0x5003, 0x5003) AM_MIRROR(0xaf38) AM_WRITE(pacman_flipscreen_w)
+ AM_RANGE(0x5004, 0x5005) AM_MIRROR(0xaf38) AM_WRITENOP // AM_WRITE(pacman_leds_w)
+ AM_RANGE(0x5006, 0x5006) AM_MIRROR(0xaf38) AM_WRITE(pacman_coin_lockout_global_w)
+ AM_RANGE(0x5007, 0x5007) AM_MIRROR(0xaf38) AM_WRITE(pacman_coin_counter_w)
+ AM_RANGE(0x5040, 0x505f) AM_MIRROR(0xaf00) AM_DEVWRITE("namco", namco_device, pacman_sound_w)
+ AM_RANGE(0x5060, 0x506f) AM_MIRROR(0xaf00) AM_WRITEONLY AM_SHARE("spriteram2")
+ AM_RANGE(0x5070, 0x507f) AM_MIRROR(0xaf00) AM_WRITENOP
+ AM_RANGE(0x5080, 0x5080) AM_MIRROR(0xaf3f) AM_WRITENOP
+ AM_RANGE(0x50c0, 0x50c0) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
+ AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf3f) AM_READ_PORT("IN0")
+ AM_RANGE(0x5040, 0x5040) AM_MIRROR(0xaf3f) AM_READ_PORT("IN1")
+ AM_RANGE(0x5080, 0x5080) AM_MIRROR(0xaf3f) AM_READ_PORT("DSW1")
+ AM_RANGE(0x50c0, 0x50c0) AM_MIRROR(0xaf3f) AM_READ_PORT("DSW2")
+
+ /* overlay decode enable/disable on top */
+ AM_RANGE(0x0038, 0x003f) AM_READWRITE(mspacman_disable_decode_r_0x0038,mspacman_disable_decode_w)
+ AM_RANGE(0x03b0, 0x03b7) AM_READWRITE(mspacman_disable_decode_r_0x03b0,mspacman_disable_decode_w)
+ AM_RANGE(0x1600, 0x1607) AM_READWRITE(mspacman_disable_decode_r_0x1600,mspacman_disable_decode_w)
+ AM_RANGE(0x2120, 0x2127) AM_READWRITE(mspacman_disable_decode_r_0x2120,mspacman_disable_decode_w)
+ AM_RANGE(0x3ff0, 0x3ff7) AM_READWRITE(mspacman_disable_decode_r_0x3ff0,mspacman_disable_decode_w)
+ AM_RANGE(0x3ff8, 0x3fff) AM_READWRITE(mspacman_enable_decode_r_0x3ff8,mspacman_enable_decode_w)
+ AM_RANGE(0x8000, 0x8007) AM_READWRITE(mspacman_disable_decode_r_0x8000,mspacman_disable_decode_w)
+ AM_RANGE(0x97f0, 0x97f7) AM_READWRITE(mspacman_disable_decode_r_0x97f0,mspacman_disable_decode_w)
+
+ /* start with 0000-3fff and 8000-bfff mapped to the ROMs */
+ AM_RANGE(0x4000, 0x7fff) AM_MIRROR(0x8000) AM_UNMAP
+ AM_RANGE(0x0000, 0xffff) AM_ROMBANK("bank1")
+ADDRESS_MAP_END
+
+
+/* For Dave Widel's hacks */
+static ADDRESS_MAP_START( widel_map, AS_PROGRAM, 8, pacman_state )
+ /* bace and dderby set 5000-5FFF to zero for no apparent reason */
+ AM_RANGE(0x0000, 0x3fff) AM_ROM
+ AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0x8000) AM_RAM_WRITE(pacman_videoram_w) AM_SHARE("videoram")
+ AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0x8000) AM_RAM_WRITE(pacman_colorram_w) AM_SHARE("colorram")
+ AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0x8000) AM_READ(pacman_read_nop)
+ AM_RANGE(0x4c00, 0x4fef) AM_RAM
+ AM_RANGE(0x4ff0, 0x4fff) AM_RAM AM_SHARE("spriteram")
+ AM_RANGE(0x5000, 0x5000) AM_WRITE(irq_mask_w)
+ AM_RANGE(0x5001, 0x5001) AM_DEVWRITE("namco", namco_device, pacman_sound_enable_w)
+ AM_RANGE(0x5002, 0x5002) AM_WRITENOP // mrmrspac
+ AM_RANGE(0x5003, 0x5003) AM_WRITE(pacman_flipscreen_w)
+ AM_RANGE(0x5004, 0x5005) AM_WRITE(pacman_leds_w)
+ AM_RANGE(0x5006, 0x5006) AM_WRITENOP // AM_WRITE(pacman_coin_lockout_global_w)
+ AM_RANGE(0x5007, 0x5007) AM_WRITE(pacman_coin_counter_w)
+ AM_RANGE(0x5040, 0x505f) AM_DEVWRITE("namco", namco_device, pacman_sound_w)
+ AM_RANGE(0x5060, 0x506f) AM_WRITEONLY AM_SHARE("spriteram2")
+ AM_RANGE(0x5070, 0x5080) AM_WRITENOP
+ AM_RANGE(0x50c0, 0x50c0) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
+ AM_RANGE(0x5000, 0x5000) AM_READ_PORT("IN0")
+ AM_RANGE(0x5040, 0x5040) AM_READ_PORT("IN1")
+ AM_RANGE(0x5080, 0x5080) AM_READ_PORT("DSW1")
+ AM_RANGE(0x50c0, 0x50c0) AM_READ_PORT("DSW2") /* DSW2 - not used */
+ AM_RANGE(0x5103, 0x5103) AM_WRITENOP /* aa */
+ AM_RANGE(0x5c0e, 0x5c0e) AM_RAM /* mrmrspac */
+ AM_RANGE(0x5fff, 0x5fff) AM_READNOP /* aa */
+ AM_RANGE(0x8000, 0x9fff) AM_ROM /* only really needed by mrmrspac */
+ AM_RANGE(0xd000, 0xd000) AM_RAM /* mrmrspac */
+ AM_RANGE(0xf000, 0xffff) AM_RAM
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( zolapac_io, AS_IO, 8, pacman_state )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
+ AM_RANGE(0x00, 0x00) AM_READ(zolatimer_r)
+ AM_RANGE(0x10, 0x10) AM_WRITENOP /* writes 0 at reset */
+ AM_RANGE(0x11, 0x11) AM_WRITE(zolatimer_w)
+ADDRESS_MAP_END
+
+
+/*************************************
+ *
+ * Machine drivers
+ *
+ *************************************/
+
+/* only for encrypted sets with 20000 in cpu1 */
+static MACHINE_CONFIG_DERIVED( mspacman, pacman )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(mspacman_map)
+MACHINE_CONFIG_END
+
+/* Hires mspacman */
+static MACHINE_CONFIG_DERIVED( mspacmnx, pacmanx )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(mspacman_map)
+MACHINE_CONFIG_END
+
+/* Hires hacks */
+static MACHINE_CONFIG_DERIVED( woodpekx, pacmanx )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(woodpek_map)
+MACHINE_CONFIG_END
+
+/* MSPacman with modified memory maps */
+
+static MACHINE_CONFIG_DERIVED( mspacii, pacman )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(mspacii_map)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( zolapac, pacman )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(woodpek_map)
+ MCFG_CPU_IO_MAP(zolapac_io)
+MACHINE_CONFIG_END
+
+/* These drivers need the watchdog to be removed in order to work */
+
+static MACHINE_CONFIG_DERIVED( pachack, pacman )
+ MCFG_WATCHDOG_MODIFY("watchdog")
+ MCFG_WATCHDOG_VBLANK_INIT("screen", 0)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( mspachi, pachack )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(mspachi_map)
+ MCFG_NVRAM_ADD_0FILL("nvram")
+
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( widel, pachack )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(widel_map)
+MACHINE_CONFIG_END
+
+
+/*************************************
+ *
+ * Driver initialization
+ *
+ *************************************/
+
+
+/* The encryption is provided by a 74298 sitting on top of the rom at 6f.
+The select line is tied to a2; a0 and a1 of the eprom are are left out of
+socket and run through the 74298. Clock is tied to system clock. */
+DRIVER_INIT_MEMBER( pacman_state, mspacmbe )
+{
+ uint8_t temp;
+ uint8_t *RAM = machine().root_device().memregion("maincpu")->base();
+ int i;
+
+ /* Address lines A1 and A0 swapped if A2=0 */
+ for(i = 0x1000; i < 0x2000; i+=4)
+ {
+ if (!(i & 8))
+ {
+ temp = RAM[i+1];
+ RAM[i+1] = RAM[i+2];
+ RAM[i+2] = temp;
+ }
+ }
+}
+
+
+/*************************************
+ *
+ * ROM definitions
+ *
+ *************************************/
+
+
+ROM_START( chtmsatk )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "mspacatk.2", 0x1000, 0x1000, CRC(0af09d31) SHA1(6ff73e4da4910bcd2ca3aa299d8ffad23f8abf79) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "mspacatk.5", 0x8000, 0x1000, CRC(e6e06954) SHA1(ee5b266b1cc178df31fc1da5f66ef4911c653dda) )
+ ROM_LOAD( "mspacatk.6", 0x9000, 0x1000, CRC(3b5db308) SHA1(c1ba630cb8fb665c4881a6cce9d3b0d4300bd0eb) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) )
+ ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( chtmspa )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "mspacatk.2", 0x1000, 0x1000, CRC(0af09d31) SHA1(6ff73e4da4910bcd2ca3aa299d8ffad23f8abf79) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) )
+ ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( cookiem )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "cookiem.1", 0x0000, 0x1000, CRC(3c95b06b) SHA1(c123de2f3246af4074e6a2f3a5a29aec0c6cd0f9) )
+ ROM_LOAD( "cookiem.2", 0x1000, 0x1000, CRC(527859fb) SHA1(993baa017732e247e4c318a5f105a13c281fbd8d) ) // faulty
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "cookiem.4", 0x3000, 0x1000, CRC(66e397fd) SHA1(4e3d03abfaaa94a7a159fd51348ca6a7e4427272) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "cookiem.6", 0x9000, 0x1000, CRC(a96761a6) SHA1(73072f753f5659712e3644194a0982ef14648f46) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "cookiem.5e", 0x0000, 0x1000, CRC(ffb4de27) SHA1(ff12a37158e08f4d9ddad4184dfbd44f83120506) )
+ ROM_LOAD( "cookiem.5f", 0x1000, 0x1000, CRC(1b5875ac) SHA1(9b0f4b96de9d7a2c7abcb06efaf083ff8ab28abe) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( cottoh )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "cottoh.4", 0x3000, 0x1000, CRC(f0892bb8) SHA1(680d2335ca99128ad29295e161bd0bd52f9de0b8) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "cottoh.5e", 0x0000, 0x1000, CRC(8e78665a) SHA1(3d9c357bdcc7862d329d4f38c6d43bc792eee572) )
+ ROM_LOAD( "cottoh.5f", 0x1000, 0x1000, CRC(4f83ae26) SHA1(9c308c1b684812747d573058ef157db14f03d2d9) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( cottoh2 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "cottoh2.4", 0x3000, 0x1000, CRC(e285564b) SHA1(7b00549d680146fa2a88ce8a6ea45ece6e185d67) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "cottoh2.5e", 0x0000, 0x1000, CRC(3bbea74d) SHA1(613dc0989670347fa2827806b8408fc407d5386d) )
+ ROM_LOAD( "cottoh2.5f", 0x1000, 0x1000, CRC(9c3d7558) SHA1(803aef874d988f112dea54f442e12973c799ea2e) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( fasthear )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "fastplus.2", 0x1000, 0x1000, CRC(a8d6c227) SHA1(b5891f911bb054ca2547e663a3c27c93897f2075) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "heartbn2.5e", 0x0000, 0x1000, CRC(28eb876c) SHA1(6bd3b9efdab76b3bf7c7f08ba9f44f830290df43) )
+ ROM_LOAD( "heartbn2.5f", 0x1000, 0x1000, CRC(50fc9966) SHA1(21f79739b9884307430a35b2901098f45bbf5b7d) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( fastmspa )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "fastplus.2", 0x1000, 0x1000, CRC(a8d6c227) SHA1(b5891f911bb054ca2547e663a3c27c93897f2075) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) )
+ ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( faststrm )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "fastplus.2", 0x1000, 0x1000, CRC(a8d6c227) SHA1(b5891f911bb054ca2547e663a3c27c93897f2075) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "msdstorm.5e", 0x0000, 0x1000, CRC(b2940b89) SHA1(bfe7066fa11468d8373b43f966e76d92b17c0f48) )
+ ROM_LOAD( "msdstorm.5f", 0x1000, 0x1000, CRC(5c65865f) SHA1(988b6deccd985a32d4561164bfabd80ebb43f0a6) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( fstmsatk )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "fastplus.2", 0x1000, 0x1000, CRC(a8d6c227) SHA1(b5891f911bb054ca2547e663a3c27c93897f2075) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "mspacatk.5", 0x8000, 0x1000, CRC(e6e06954) SHA1(ee5b266b1cc178df31fc1da5f66ef4911c653dda) )
+ ROM_LOAD( "mspacatk.6", 0x9000, 0x1000, CRC(3b5db308) SHA1(c1ba630cb8fb665c4881a6cce9d3b0d4300bd0eb) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) )
+ ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( heartbn2 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "heartbn2.5e", 0x0000, 0x1000, CRC(28eb876c) SHA1(6bd3b9efdab76b3bf7c7f08ba9f44f830290df43) )
+ ROM_LOAD( "heartbn2.5f", 0x1000, 0x1000, CRC(50fc9966) SHA1(21f79739b9884307430a35b2901098f45bbf5b7d) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( heartbrn )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "heartbrn.5e", 0x0000, 0x1000, CRC(5431d4c4) SHA1(34d45da44b4208e2774f5e2af08657a9086252e6) )
+ ROM_LOAD( "heartbrn.5f", 0x1000, 0x1000, CRC(ceb50654) SHA1(70dbe3cc715d3d52ee3d4f8dadbf5c59f87166a3) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( horizpab )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "horizpac.1", 0x0000, 0x1000, CRC(7CC1979D) SHA1(557346859DCFCE806E83DCF0DA1FE60DA20FED81) )
+ ROM_LOAD( "horizpac.2", 0x1000, 0x1000, CRC(14202B73) SHA1(136B860D6AC8EFB9C83B67F77FBB47C3014D4ADC) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821EE0B) SHA1(5EA4D907DBB2690698DB72C4E0B5BE4D3E9A7786) )
+ ROM_LOAD( "horizpab.4", 0x3000, 0x1000, CRC(c9df7abe) SHA1(da21a182b81181260e2a1615115d22797bd1434a) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8C3E6DE6) SHA1(FED6E9A2B210B07E7189A18574F6B8C4EC5BB49B) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368CB165) SHA1(387010A0C76319A1EAB61B54C9BCB5C66C4B67A1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "horizpac.5e", 0x0000, 0x1000, CRC(0572335D) SHA1(F2D8BB3124970B298026E841E057FBCC7CDFC4B1) )
+ ROM_LOAD( "horizpac.5f", 0x1000, 0x1000, CRC(4198511D) SHA1(B3808062835AA0CC05FA19A678A5C8AB8FB646D7) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( horizpac )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "horizpac.1", 0x0000, 0x1000, CRC(7CC1979D) SHA1(557346859DCFCE806E83DCF0DA1FE60DA20FED81) )
+ ROM_LOAD( "horizpac.2", 0x1000, 0x1000, CRC(14202B73) SHA1(136B860D6AC8EFB9C83B67F77FBB47C3014D4ADC) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821EE0B) SHA1(5EA4D907DBB2690698DB72C4E0B5BE4D3E9A7786) )
+ ROM_LOAD( "horizpac.4", 0x3000, 0x1000, CRC(9A17E8DA) SHA1(2696643705878207952C4559C176D486BD0027C2) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8C3E6DE6) SHA1(FED6E9A2B210B07E7189A18574F6B8C4EC5BB49B) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368CB165) SHA1(387010A0C76319A1EAB61B54C9BCB5C66C4B67A1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "horizpac.5e", 0x0000, 0x1000, CRC(0572335D) SHA1(F2D8BB3124970B298026E841E057FBCC7CDFC4B1) )
+ ROM_LOAD( "horizpac.5f", 0x1000, 0x1000, CRC(4198511D) SHA1(B3808062835AA0CC05FA19A678A5C8AB8FB646D7) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mrmrspac )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "mrmrspac.1", 0x0000, 0x1000, CRC(02a86998) SHA1(649cfe5140eb63e42069ae9ad6c426837179fcbf) )
+ ROM_LOAD( "mrmrspac.2", 0x1000, 0x1000, CRC(8917172f) SHA1(7b09ab3b6f2a1b5d889a05295b42f70bafb5aa98) )
+ ROM_LOAD( "mrmrspac.3", 0x2000, 0x1000, CRC(6fd1444a) SHA1(64a98336eec75bb6ed90e77da18db8b71af562c1) )
+ ROM_LOAD( "mrmrspac.4", 0x3000, 0x1000, CRC(22f68a1f) SHA1(bd8d684f957ee33dace9eddcc923006036181787) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "mrmrspac.6", 0x9000, 0x1000, CRC(23580455) SHA1(836b815c7b1dd4deb1a1297556d0a5c126250c34) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) )
+ ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mrpacman )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "mrpacman.4", 0x3000, 0x1000, CRC(65c0526c) SHA1(b90f05a335a5ec641318dea15a97c9abb96ded2e) )
+ ROM_LOAD( "mrpacman.5", 0x8000, 0x1000, CRC(4078d9b2) SHA1(c294735341504787fa7f4bc44543e132d975c0a2) )
+ ROM_LOAD( "mrpacman.6", 0x9000, 0x1000, CRC(c1637f1c) SHA1(15577900bbba060e6c1b8dd03fcde19e7f4193c5) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "mrpacman.5e", 0x0000, 0x1000, CRC(83e6a3a9) SHA1(9e76e0ff114778183324c905c7600ef848bf4a76) )
+ ROM_LOAD( "mrpacman.5f", 0x1000, 0x1000, CRC(045dadf0) SHA1(1a28cb97ad547bddd3cc8e6d0102f7e1d43c71ea) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( ms1000 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "ms1000.4", 0x3000, 0x1000, CRC(22a10392) SHA1(7c17601428988dd996bbe64afee486fcf2333beb) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "ms1000.5e", 0x0000, 0x1000, CRC(adde7864) SHA1(6e21d412b11bbabf05c65ad3c0dccba73fe15eb5) )
+ ROM_LOAD( "ms1000.5f", 0x1000, 0x1000, CRC(5cb008a9) SHA1(bb9049b2a48773dac775acd70cb0cb54dcd6a5b0) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( ms2000 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "ms2000.4", 0x3000, 0x1000, CRC(a72e49df) SHA1(396bf713cddeb5521c614ff8483b0baef23af7d0) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "ms2000.5e", 0x0000, 0x1000, CRC(2bcce741) SHA1(fd9729e54b049723c0fb6c47effe39724577ba0d) )
+ ROM_LOAD( "ms2000.5f", 0x1000, 0x1000, CRC(4b40032a) SHA1(8002af3dfcfea82d56f5f04505d432c02dc56185) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( ms2600 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "ms2600.4", 0x3000, 0x1000, CRC(c2a293df) SHA1(98e864d1993c97293acea0febc9cac8eb0fb582c) )
+ ROM_LOAD( "ms2600.5", 0x8000, 0x1000, CRC(4852db05) SHA1(8471e1640164dc311e0180a7a8323208a40cf889) )
+ ROM_LOAD( "ms2600.6", 0x9000, 0x1000, CRC(f32b076f) SHA1(f361233a06e0376fe83a6fd0a071593c7c260cb1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "ms2600.5e", 0x0000, 0x1000, CRC(6b07b97a) SHA1(981ce12d92c57ed6c908d4b5b9b0c0b079d325db) )
+ ROM_LOAD( "ms2600.5f", 0x1000, 0x1000, CRC(f844608b) SHA1(80b4a51536ac4c83974726cbfb36232e06334329) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( ms3000 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "ms3000.4", 0x3000, 0x1000, CRC(46790576) SHA1(097366bb8008122bb8814e5db6228d1e5756cb41) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "ms3000.5e", 0x0000, 0x1000, CRC(1708299b) SHA1(c47d6d37f7c064f5bb22fa74c20fb259e9c694bf) )
+ ROM_LOAD( "ms3000.5f", 0x1000, 0x1000, CRC(cf4798e3) SHA1(046958565ba31a63b36b89ee2ddc599196af1ec3) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( ms4000p )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "ms4000p.4", 0x3000, 0x1000, CRC(ff418db8) SHA1(eec95b43e451af2ab3dbbee83c577548097a90ef) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "ms4000p.5e", 0x0000, 0x1000, CRC(05ed8a9f) SHA1(8654596af1de7ddcd1795d9a38e75deb7e6f96c6) )
+ ROM_LOAD( "ms4000p.5f", 0x1000, 0x1000, CRC(c0b58e02) SHA1(6ad23edff1b4a9324ea67ab28f3ab5e8362a55d8) )
+
+ PACPLUS_PROMS
+ROM_END
+
+ROM_START( ms5000 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "ms2000.4", 0x3000, 0x1000, CRC(a72e49df) SHA1(396bf713cddeb5521c614ff8483b0baef23af7d0) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+ ROM_FILL(0x3810, 1, 0x35) // put 5000 in because we don't have the actual ms5000 rom
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "ms5000.5e", 0x0000, 0x1000, CRC(fd1bd093) SHA1(b1b20614d2a06fa032373fb01e79b4004215e2b7) )
+ ROM_LOAD( "ms5000.5f", 0x1000, 0x1000, CRC(07d39d56) SHA1(2482477c8a2130dd5eb279b99e541bc5229c0778) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( ms5000p )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "ms5000p.4", 0x3000, 0x1000, CRC(d7ff3b21) SHA1(478557c734062fc30a8b0252ebe04e15ec81a29a) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "ms5000p.5e", 0x0000, 0x1000, CRC(4fd847aa) SHA1(39e1f184df81a61325a4d3cf2ef04eb3703f3944) )
+ ROM_LOAD( "ms5000p.5f", 0x1000, 0x1000, CRC(50d5fa64) SHA1(777e041901da0cae324524d64fa67b04b2f33bcc) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( msatk2ad )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "mspacatk.2", 0x1000, 0x1000, CRC(0af09d31) SHA1(6ff73e4da4910bcd2ca3aa299d8ffad23f8abf79) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "mspacat2.5", 0x8000, 0x1000, CRC(5a72a7a6) SHA1(aa54bf865e024fe00a8aefce6bc5086e90d71a54) )
+ ROM_LOAD( "mspacat2.6", 0x9000, 0x1000, CRC(bd0c3e94) SHA1(1b01ed6eab2c31bb874d1e51e773d0c130de7b75) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "msatkad.5e", 0x0000, 0x1000, CRC(dc70ed2e) SHA1(b9fbb1d21085bc78eb82c429506b20e332b18e0e) )
+ ROM_LOAD( "msatkad.5f", 0x1000, 0x1000, CRC(643d5523) SHA1(565f92294a4b6a11dc5e9a165f35284c2a526e6c) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( msatkad )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "mspacatk.2", 0x1000, 0x1000, CRC(0af09d31) SHA1(6ff73e4da4910bcd2ca3aa299d8ffad23f8abf79) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "mspacatk.5", 0x8000, 0x1000, CRC(e6e06954) SHA1(ee5b266b1cc178df31fc1da5f66ef4911c653dda) )
+ ROM_LOAD( "mspacatk.6", 0x9000, 0x1000, CRC(3b5db308) SHA1(c1ba630cb8fb665c4881a6cce9d3b0d4300bd0eb) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "msatkad.5e", 0x0000, 0x1000, CRC(dc70ed2e) SHA1(b9fbb1d21085bc78eb82c429506b20e332b18e0e) )
+ ROM_LOAD( "msatkad.5f", 0x1000, 0x1000, CRC(643d5523) SHA1(565f92294a4b6a11dc5e9a165f35284c2a526e6c) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( msbaby )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "msbaby.4", 0x3000, 0x1000, CRC(17aea21d) SHA1(2baa4b3812611ae8a1ff6b1b21b0a3ffd0d30be2) )
+ ROM_LOAD( "msbaby.5", 0x8000, 0x1000, CRC(0c08aa7f) SHA1(0d4079d68c86cd64e4d309fdc43d2022a50f172d) )
+ ROM_LOAD( "msbaby.6", 0x9000, 0x1000, CRC(e28aaa1f) SHA1(e0c4c1e0ceb3dfd6e63d954d3d6ea7924efac08b) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "msbaby.5e", 0x0000, 0x1000, CRC(e764738d) SHA1(79a7b871ee292d8cc2c4c97962fd876b4b95c4df) )
+ ROM_LOAD( "msbaby.5f", 0x1000, 0x1000, CRC(3d316ad0) SHA1(fd7d1a02930cc1c8a2f4aa8518d805601a8e0a80) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( msberzk )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "msberzk.4", 0x3000, 0x1000, CRC(795b1d20) SHA1(eb14ac6d2142fcfcbccf52eb7e8c51c208554eef) )
+ ROM_LOAD( "msberzk.5", 0x8000, 0x1000, CRC(9fc2a679) SHA1(2684ecc09e2cf055daee181371691fc09cbd585a) )
+ ROM_LOAD( "msberzk.6", 0x9000, 0x1000, CRC(6749a32d) SHA1(41b5b952c4f7f14b6a3884291c87e9ee6e760231) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "msberzk.5e", 0x0000, 0x1000, CRC(92692429) SHA1(af5e72c445c7ea35655730364072c269befbc66f) )
+ ROM_LOAD( "msberzk.5f", 0x1000, 0x1000, CRC(7c32ed2e) SHA1(124ff35143b1fcaa25d810a3479ae363cf74d2c9) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mscrzyma )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "mscrzyma.3", 0x2000, 0x1000, CRC(513f4d5c) SHA1(ae011b89422bd8cbb80389814500bc1427f6ecb2) )
+ ROM_LOAD( "mscrzyma.4", 0x3000, 0x1000, CRC(f2b17834) SHA1(4d687e681d21a9a702ed5e8022c9098b8347811a) )
+ ROM_LOAD( "mspacnes.5", 0x8000, 0x1000, CRC(43936999) SHA1(4261f0bbb9ece2370c6283763a396ad851f42c51) )
+ ROM_LOAD( "mspacnes.6", 0x9000, 0x1000, CRC(a15b524e) SHA1(91f211e479261b344fc64517394abf7a8f9d6f4b) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "ms2000.5e", 0x0000, 0x1000, CRC(2bcce741) SHA1(fd9729e54b049723c0fb6c47effe39724577ba0d) )
+ ROM_LOAD( "mscrzyma.5f", 0x1000, 0x1000, CRC(2a9d6f77) SHA1(bcfec717967e64891d9638037ba5331b22654229) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mscrzymp )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "mscrzyma.3", 0x2000, 0x1000, CRC(513f4d5c) SHA1(ae011b89422bd8cbb80389814500bc1427f6ecb2) )
+ ROM_LOAD( "mscrzymp.4", 0x3000, 0x1000, CRC(db440183) SHA1(ec4e7a7324f77818e7357e6c7c9e8af257fcbc7d) )
+ ROM_LOAD( "mspacnes.5", 0x8000, 0x1000, CRC(43936999) SHA1(4261f0bbb9ece2370c6283763a396ad851f42c51) )
+ ROM_LOAD( "mspacnes.6", 0x9000, 0x1000, CRC(a15b524e) SHA1(91f211e479261b344fc64517394abf7a8f9d6f4b) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "mscrzymp.5e", 0x0000, 0x1000, CRC(d43a7194) SHA1(2508b14778f8ff2d76b7ec00ba9fc30a0f606dcf) )
+ ROM_LOAD( "mscrzymp.5f", 0x1000, 0x1000, CRC(7af54907) SHA1(d930b90f0500c3be451996ced9578ce870a1d6d5) )
+
+ PACPLUS_PROMS
+ROM_END
+
+ROM_START( msdroid )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "msdroid.4", 0x3000, 0x1000, CRC(984b3e88) SHA1(fb7c29adf0c7434c639fd82abf7aa9c709b37054) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "msdroid.5e", 0x0000, 0x1000, CRC(97f5dd55) SHA1(14a1a8dda66223392fbae51af654607c56ac266e) )
+ ROM_LOAD( "msdroid.5f", 0x1000, 0x1000, CRC(c0e47314) SHA1(d8a51d280bba4ad93db8019111ac4393aea9f9a2) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( msdstorm )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "msdstorm.5e", 0x0000, 0x1000, CRC(b2940b89) SHA1(bfe7066fa11468d8373b43f966e76d92b17c0f48) )
+ ROM_LOAD( "msdstorm.5f", 0x1000, 0x1000, CRC(5c65865f) SHA1(988b6deccd985a32d4561164bfabd80ebb43f0a6) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mselton )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) )
+ ROM_LOAD( "mselton.5f", 0x1000, 0x1000, CRC(30d0b19f) SHA1(9964a5a103ce1975d8606d5cfd2306c05a74aca3) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( msextra )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "msextra.4", 0x3000, 0x1000, CRC(b13d0521) SHA1(67e51e5447e5376a76ba1de6c600cf8aba6103f9) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "msextra.5e", 0x0000, 0x1000, CRC(b656c0c5) SHA1(efa8aed573b4258a6f6da96b04968a9197ad2d33) )
+ ROM_LOAD( "msextra.5f", 0x1000, 0x1000, CRC(c5d7017b) SHA1(29fa44d925526ab7f6385a2d4c750492063131ab) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( msextrap )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "msextrap.4", 0x3000, 0x1000, CRC(728f7465) SHA1(c3e089d2c7bace010e29f4cb861baa888007e8bf) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "msextrap.5e", 0x0000, 0x1000, CRC(1a2fa3e2) SHA1(dafccc8123093a9f5306c0c19367c3accd755ca1) )
+ ROM_LOAD( "msextrap.5f", 0x1000, 0x1000, CRC(5a400cbc) SHA1(7351b9c7f196fc49fdab04a135a1519ca6d489ed) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( msf1pac )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "msf1pac.4", 0x3000, 0x1000, CRC(e255428b) SHA1(fd128743eac8521f1a65bdbb2cfd59398eddfac5) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "msindy.5e", 0x0000, 0x1000, CRC(c7183fd2) SHA1(af7e3bb7c4751f5df12bd321d6f583045c5acb10) )
+ ROM_LOAD( "msindy.5f", 0x1000, 0x1000, CRC(a355e061) SHA1(b9223e01a77027d2f6afe4502b4a2dce3b3bdc0e) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( msgrkatk )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "mspacatk.2", 0x1000, 0x1000, CRC(0af09d31) SHA1(6ff73e4da4910bcd2ca3aa299d8ffad23f8abf79) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "msgrkb.4", 0x3000, 0x1000, CRC(7143729f) SHA1(87152df222364908852b1d242dff15889da5e95d) )
+ ROM_LOAD( "mspacatk.5", 0x8000, 0x1000, CRC(e6e06954) SHA1(ee5b266b1cc178df31fc1da5f66ef4911c653dda) )
+ ROM_LOAD( "mspacatk.6", 0x9000, 0x1000, CRC(3b5db308) SHA1(c1ba630cb8fb665c4881a6cce9d3b0d4300bd0eb) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "msgrkb.5e", 0x0000, 0x1000, CRC(b6526896) SHA1(904dc168680cec660bee5a1a28a6a4b0dee9364e) )
+ ROM_LOAD( "msgrkb.5f", 0x1000, 0x1000, CRC(043b1c9b) SHA1(6aa7971390272c3df4ceaf7718ad08086bb33b5c) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( msgrkb )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "msgrkb.4", 0x3000, 0x1000, CRC(7143729f) SHA1(87152df222364908852b1d242dff15889da5e95d) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "msgrkb.5e", 0x0000, 0x1000, CRC(b6526896) SHA1(904dc168680cec660bee5a1a28a6a4b0dee9364e) )
+ ROM_LOAD( "msgrkb.5f", 0x1000, 0x1000, CRC(043b1c9b) SHA1(6aa7971390272c3df4ceaf7718ad08086bb33b5c) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mshangly )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "mshangly.5", 0x8000, 0x1000, CRC(00c4d538) SHA1(cbfc9c10809631aae3fe9c454661ffa84a34138c) )
+ ROM_LOAD( "mshangly.6", 0x9000, 0x1000, CRC(7a600536) SHA1(7172b4658c1b0ea4cdcc55b7f21225d82e116e5e) )
+ /* The dot counts are wrong, they are at 8b2c, 8e17, 9109, 93f9 for each map 1-4 */
+ ROM_FILL ( 0x8b2c, 1, 0xdc ) /* Change dot count for map 1 from E0 to DC */
+ ROM_FILL ( 0x8e17, 1, 0xf2 ) /* Change dot count for map 2 from F4 to F2 */
+ ROM_FILL ( 0x93f9, 1, 0xec ) /* Map 3 (=F2) is ok, change dot count for map 4 from EE to EC */
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) )
+ ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( msheartb )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "msheart.5e", 0x0000, 0x1000, CRC(56f505f1) SHA1(5628874f332d348a61c1abcf116278ece534a7ba) )
+ ROM_LOAD( "msheart.5f", 0x1000, 0x1000, CRC(662423ca) SHA1(e22a20e2ed51b4efe39665222669d86353d6c4c5) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mshearts )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "mshearts.5e", 0x0000, 0x1000, CRC(0b5cf081) SHA1(9333369dd282f725c01831314f2aafd1667c64f9) )
+ ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( msindy )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "msindy.4", 0x3000, 0x1000, CRC(8e234b3a) SHA1(f54f94aa80486a96178765378123a16a2637a47b) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "msindy.5e", 0x0000, 0x1000, CRC(c7183fd2) SHA1(af7e3bb7c4751f5df12bd321d6f583045c5acb10) )
+ ROM_LOAD( "msindy.5f", 0x1000, 0x1000, CRC(a355e061) SHA1(b9223e01a77027d2f6afe4502b4a2dce3b3bdc0e) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( msmini )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "msmini.5e", 0x0000, 0x1000, CRC(7787a3f6) SHA1(8d89be6fcc1dfeb4470a721c9c89225ea8c7cfad) )
+ ROM_LOAD( "msmini.5f", 0x1000, 0x1000, CRC(98ab3c44) SHA1(07dcfb7d6f2ca50e6e50ee1c14c229d26bb4b909) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( msminia )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "mspacatk.2", 0x1000, 0x1000, CRC(0af09d31) SHA1(6ff73e4da4910bcd2ca3aa299d8ffad23f8abf79) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "mspacatk.5", 0x8000, 0x1000, CRC(e6e06954) SHA1(ee5b266b1cc178df31fc1da5f66ef4911c653dda) )
+ ROM_LOAD( "mspacatk.6", 0x9000, 0x1000, CRC(3b5db308) SHA1(c1ba630cb8fb665c4881a6cce9d3b0d4300bd0eb) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "msmini.5e", 0x0000, 0x1000, CRC(7787a3f6) SHA1(8d89be6fcc1dfeb4470a721c9c89225ea8c7cfad) )
+ ROM_LOAD( "msmini.5f", 0x1000, 0x1000, CRC(98ab3c44) SHA1(07dcfb7d6f2ca50e6e50ee1c14c229d26bb4b909) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( msmspac )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "msmspac.4", 0x3000, 0x1000, CRC(1c11c60f) SHA1(d445a333f79ad8a6886e3b08fc39dee01733cf07) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) )
+ ROM_LOAD( "msmspac.5f", 0x1000, 0x1000, CRC(a0ffcd08) SHA1(0cd5028e97fafdd8b9b221a7a07bdc81826f4765) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( msnes4a )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "mscrzyma.3", 0x2000, 0x1000, CRC(513f4d5c) SHA1(ae011b89422bd8cbb80389814500bc1427f6ecb2) )
+ ROM_LOAD( "mspac6m.4", 0x3000, 0x1000, CRC(e21c81ff) SHA1(5a6ce8ee3059a31afbb9b8c1d0a1e37606d14a0a) )
+ ROM_LOAD( "msnes4a.5", 0x8000, 0x1000, CRC(d16b9605) SHA1(b54691591794fd8d9c9097da49add34f49021b50) )
+ ROM_LOAD( "msnes4a.6", 0x9000, 0x1000, CRC(e6b58707) SHA1(cf0c5a3fbb9ae9a99a9c5c74ba45ac86323a0396) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "msnes4a.5e", 0x0000, 0x1000, CRC(22e5b64e) SHA1(56e81329bee499a798a01867dbf2ceae6af2e11a) )
+ ROM_LOAD( "mspacnes.5f", 0x1000, 0x1000, CRC(6a4db98d) SHA1(e0eeb83c1265f5c9881e1c752842d20dabf35783) )
+
+ PACPLUS_PROMS
+ROM_END
+
+ROM_START( msnes62 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "mscrzyma.3", 0x2000, 0x1000, CRC(513f4d5c) SHA1(ae011b89422bd8cbb80389814500bc1427f6ecb2) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "msnes62.5", 0x8000, 0x1000, CRC(52120bc9) SHA1(dc3608672e614a486306660bd367b325cdb51bda) )
+ ROM_LOAD( "msnes62.6", 0x9000, 0x1000, CRC(8fd36e02) SHA1(6d0b04b7efd8a4a6773d60e5e748243cf1c56a1a) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "mspacnes.5e", 0x0000, 0x1000, CRC(d3a28769) SHA1(3fa7d9a235e0bf8aae03b15c5377401f029d6946) )
+ ROM_LOAD( "mspacnes.5f", 0x1000, 0x1000, CRC(6a4db98d) SHA1(e0eeb83c1265f5c9881e1c752842d20dabf35783) )
+
+ PACPLUS_PROMS
+ROM_END
+
+ROM_START( msnes63 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "mscrzyma.3", 0x2000, 0x1000, CRC(513f4d5c) SHA1(ae011b89422bd8cbb80389814500bc1427f6ecb2) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "msnes63.5", 0x8000, 0x1000, CRC(f4ea7d2c) SHA1(c490720d3b76615f46cae1f9bfbfc74da6f2854a) )
+ ROM_LOAD( "msnes63.6", 0x9000, 0x1000, CRC(1ea43bba) SHA1(0c52d0d2ca866b750a03587c8c51c14f67327d43) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "mspacnes.5e", 0x0000, 0x1000, CRC(d3a28769) SHA1(3fa7d9a235e0bf8aae03b15c5377401f029d6946) )
+ ROM_LOAD( "mspacnes.5f", 0x1000, 0x1000, CRC(6a4db98d) SHA1(e0eeb83c1265f5c9881e1c752842d20dabf35783) )
+
+ PACPLUS_PROMS
+ROM_END
+
+ROM_START( msnes6m )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "mscrzyma.3", 0x2000, 0x1000, CRC(513f4d5c) SHA1(ae011b89422bd8cbb80389814500bc1427f6ecb2) )
+ ROM_LOAD( "mspac6m.4", 0x3000, 0x1000, CRC(e21c81ff) SHA1(5a6ce8ee3059a31afbb9b8c1d0a1e37606d14a0a) )
+ ROM_LOAD( "msnes6m.5", 0x8000, 0x1000, CRC(bc091971) SHA1(d5046f5dcffd027805a53be937e7389a135e980f) )
+ ROM_LOAD( "msnes6m.6", 0x9000, 0x1000, CRC(23ebe9a1) SHA1(a51b6bd74edbea8e34ef35602c4aa8723d7f745a) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "msnes6m.5e", 0x0000, 0x1000, CRC(3abb116b) SHA1(75abb47c9acfc4048d18265ff2a42db2d3591a48) )
+ ROM_LOAD( "mspacnes.5f", 0x1000, 0x1000, CRC(6a4db98d) SHA1(e0eeb83c1265f5c9881e1c752842d20dabf35783) )
+
+ PACPLUS_PROMS
+ROM_END
+
+ROM_START( msnes6m2 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "mscrzyma.3", 0x2000, 0x1000, CRC(513f4d5c) SHA1(ae011b89422bd8cbb80389814500bc1427f6ecb2) )
+ ROM_LOAD( "mspac6m.4", 0x3000, 0x1000, CRC(e21c81ff) SHA1(5a6ce8ee3059a31afbb9b8c1d0a1e37606d14a0a) )
+ ROM_LOAD( "msstrmaz.5", 0x8000, 0x1000, CRC(b8f8edda) SHA1(5af8c7908df0d45d456cfe68470ba2098c956cac) )
+ ROM_LOAD( "msstrmaz.6", 0x9000, 0x1000, CRC(5d7888bc) SHA1(1f3ecd3bc787dd64ed41b1d664cf6794fa799ee8) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "msnes6m.5e", 0x0000, 0x1000, CRC(3abb116b) SHA1(75abb47c9acfc4048d18265ff2a42db2d3591a48) )
+ ROM_LOAD( "mspacnes.5f", 0x1000, 0x1000, CRC(6a4db98d) SHA1(e0eeb83c1265f5c9881e1c752842d20dabf35783) )
+
+ PACPLUS_PROMS
+ROM_END
+
+ROM_START( msnes6m3 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "mscrzyma.3", 0x2000, 0x1000, CRC(513f4d5c) SHA1(ae011b89422bd8cbb80389814500bc1427f6ecb2) )
+ ROM_LOAD( "mspac6m.4", 0x3000, 0x1000, CRC(e21c81ff) SHA1(5a6ce8ee3059a31afbb9b8c1d0a1e37606d14a0a) )
+ ROM_LOAD( "msnes6m3.5", 0x8000, 0x1000, CRC(20833779) SHA1(07826e21a14c15590cba7b9a08d2b91bf247cfe7) )
+ ROM_LOAD( "msnes6m3.6", 0x9000, 0x1000, CRC(a047e68f) SHA1(8b99f471f39c6c383f84754996b644fe067527f7) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "msnes6m.5e", 0x0000, 0x1000, CRC(3abb116b) SHA1(75abb47c9acfc4048d18265ff2a42db2d3591a48) )
+ ROM_LOAD( "mspacnes.5f", 0x1000, 0x1000, CRC(6a4db98d) SHA1(e0eeb83c1265f5c9881e1c752842d20dabf35783) )
+
+ PACPLUS_PROMS
+ROM_END
+
+ROM_START( msnes6m4 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "mscrzyma.3", 0x2000, 0x1000, CRC(513f4d5c) SHA1(ae011b89422bd8cbb80389814500bc1427f6ecb2) )
+ ROM_LOAD( "mspac6m.4", 0x3000, 0x1000, CRC(e21c81ff) SHA1(5a6ce8ee3059a31afbb9b8c1d0a1e37606d14a0a) )
+ ROM_LOAD( "msnes6m4.5", 0x8000, 0x1000, CRC(23c0db46) SHA1(dea5a3eeb1fb480f275cc2729b7ad604aa0824d3) )
+ ROM_LOAD( "msnes6m4.6", 0x9000, 0x1000, CRC(daafdb39) SHA1(4120bdd859f37b065279cf048937cd1a5ce526da) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "msnes4a.5e", 0x0000, 0x1000, CRC(22e5b64e) SHA1(56e81329bee499a798a01867dbf2ceae6af2e11a) )
+ ROM_LOAD( "mspacnes.5f", 0x1000, 0x1000, CRC(6a4db98d) SHA1(e0eeb83c1265f5c9881e1c752842d20dabf35783) )
+
+ PACPLUS_PROMS
+ROM_END
+
+ROM_START( mspac1 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "mspac1.cpu", 0x0000, 0x4000, CRC(ba5953c8) SHA1(ee5a0b9594f88c60be93e13f70adf45c5939f4da) )
+ ROM_CONTINUE( 0x8000, 0x2000 )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) )
+ ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mspac6m )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "mscrzyma.3", 0x2000, 0x1000, CRC(513f4d5c) SHA1(ae011b89422bd8cbb80389814500bc1427f6ecb2) )
+ ROM_LOAD( "mspac6m.4", 0x3000, 0x1000, CRC(e21c81ff) SHA1(5a6ce8ee3059a31afbb9b8c1d0a1e37606d14a0a) )
+ ROM_LOAD( "mspac6m.5", 0x8000, 0x1000, CRC(d0bd89d9) SHA1(c47e96d68d7e88e906b416c24ce926b76689f22d) )
+ ROM_LOAD( "mspac6m.6", 0x9000, 0x1000, CRC(c5662407) SHA1(98827bda653b6d1d6984082c706247392ab706d2) )
+
+ ROM_REGION( 0x2000, "gfx1" , 0 )
+ ROM_LOAD( "mspac6m.5e", 0x0000, 0x0800, CRC(2850148a) SHA1(4257a5dd4ad27d4a6bfae71bbe2564026bdaebb2) )
+ ROM_LOAD( "mspac6m.5h", 0x0800, 0x0800, CRC(6c3c6ebb) SHA1(3f19e9a20e202fda139324ef03991af99516aeef) )
+ ROM_LOAD( "mspac6m.5f", 0x1000, 0x0800, CRC(5596b345) SHA1(0320eb1f7e39dbd438be2f488f43f5b11e13f438) )
+ ROM_LOAD( "mspacit.5j", 0x1800, 0x0800, CRC(50c7477d) SHA1(c04ec282a8cb528df5e38ad750d12ee71612695d) )
+
+ PACPLUS_PROMS
+ROM_END
+
+ROM_START( mspac6m2 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "mscrzyma.3", 0x2000, 0x1000, CRC(513f4d5c) SHA1(ae011b89422bd8cbb80389814500bc1427f6ecb2) )
+ ROM_LOAD( "mspac6m.4", 0x3000, 0x1000, CRC(e21c81ff) SHA1(5a6ce8ee3059a31afbb9b8c1d0a1e37606d14a0a) )
+ ROM_LOAD( "mspac6m2.5", 0x8000, 0x1000, CRC(48453707) SHA1(3faf536de2e56770a99379849409eeea01b2d031) )
+ ROM_LOAD( "mspac6m2.6", 0x9000, 0x1000, CRC(2e961bc4) SHA1(e29814151edde8a22e638a4a8edb9935e48d985b) )
+
+ ROM_REGION( 0x2000, "gfx1" , 0 )
+ ROM_LOAD( "mspac6m.5e", 0x0000, 0x0800, CRC(2850148a) SHA1(4257a5dd4ad27d4a6bfae71bbe2564026bdaebb2) )
+ ROM_LOAD( "mspac6m.5h", 0x0800, 0x0800, CRC(6c3c6ebb) SHA1(3f19e9a20e202fda139324ef03991af99516aeef) )
+ ROM_LOAD( "mspac6m.5f", 0x1000, 0x0800, CRC(5596b345) SHA1(0320eb1f7e39dbd438be2f488f43f5b11e13f438) )
+ ROM_LOAD( "mspacit.5j", 0x1800, 0x0800, CRC(50c7477d) SHA1(c04ec282a8cb528df5e38ad750d12ee71612695d) )
+
+ PACPLUS_PROMS
+ROM_END
+
+ROM_START( mspacad )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "mspacad.5e", 0x0000, 0x1000, CRC(c3dca510) SHA1(6e9c3e47f2f928ef3857dce8bc26352a80d4a52d) )
+ ROM_LOAD( "msvectr.5f", 0x1000, 0x1000, CRC(57cb31e3) SHA1(dc9278cee7f7ce341087760654bf0a1bcdeb2f7c) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mspacat2 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "mspacatk.2", 0x1000, 0x1000, CRC(0af09d31) SHA1(6ff73e4da4910bcd2ca3aa299d8ffad23f8abf79) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "mspacat2.5", 0x8000, 0x1000, CRC(5a72a7a6) SHA1(aa54bf865e024fe00a8aefce6bc5086e90d71a54) )
+ ROM_LOAD( "mspacat2.6", 0x9000, 0x1000, CRC(bd0c3e94) SHA1(1b01ed6eab2c31bb874d1e51e773d0c130de7b75) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) )
+ ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mspacatb )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "mspacatk.2", 0x1000, 0x1000, CRC(0af09d31) SHA1(6ff73e4da4910bcd2ca3aa299d8ffad23f8abf79) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "mspacat2.5", 0x8000, 0x1000, CRC(5a72a7a6) SHA1(aa54bf865e024fe00a8aefce6bc5086e90d71a54) )
+ ROM_LOAD( "mspacatb.6b", 0x9000, 0x1000, CRC(7a8c4dfe) SHA1(b450a3272255527838b806dc0318256e47593018) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) )
+ ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mspacatx )
+ ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k for code+64k for decrypted code */
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) )
+ ROM_LOAD( "u5", 0x8000, 0x0800, CRC(f45fbbcd) SHA1(b26cc1c8ee18e9b1daa97956d2159b954703a0ec) )
+ ROM_LOAD( "u6pacatk", 0x9000, 0x1000, CRC(f6d83f4d) SHA1(6135b187d6b968554d08f2ac00d3a3313efb8638) )
+ ROM_LOAD( "u7", 0xb000, 0x1000, CRC(c82cd714) SHA1(1d8ac7ad03db2dc4c8c18ade466e12032673f874) )
+
+ ROM_REGION( 0x8000, "gfx1", 0 )
+ ROM_LOAD( "mspacmnx.5e", 0x0000, 0x4000, CRC(d9a2897d) SHA1(38cc83d1a854ae289da7904faff32114a9731bda) )
+ ROM_LOAD( "mspacmnx.5f", 0x4000, 0x4000, CRC(6f625a9e) SHA1(d9d739ba412c9374b26006d99a345212ef97f868) )
+
+ PACMAN_PROMS
+ROM_END
+
+/* This dump had a bad rom at position 5a, i have re-created it from one half of boot5. This seems reasonable
+ since the rom at position 5b is identical to the other half of boot5.
+ More: checking against E180 shows this is correct, and also supplies the missing 6b rom. */
+ROM_START( mspacde )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "mspacde.5a", 0x8000, 0x0800, CRC(cb8a001c) SHA1(398992352c51f82049a4ac981fd152c4c2863f2d) )
+ ROM_LOAD( "mspacde.5b", 0x8800, 0x0800, CRC(3e866689) SHA1(fbcb8eaddf15fd988de2cb35f93003380ee6e2de) )
+ ROM_LOAD( "mspacde.6a", 0x9000, 0x0800, CRC(286041cf) SHA1(5a5fc97ea66a59895b3403b2982940b755076667) )
+ ROM_LOAD( "mspacde.6b", 0x9800, 0x0800, CRC(321784cf) SHA1(9b67741e035fe1528e971db9072eea8982235a63) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "mspacit.5e", 0x0000, 0x0800, CRC(93933d1d) SHA1(fa38d2cb87e872bb9a3158a4df98f38360dc85ec) )
+ ROM_LOAD( "mspacit.5h", 0x0800, 0x0800, CRC(7409fbec) SHA1(f440f08ba026ae6172666e1bdc0894ce33bba420) )
+ ROM_LOAD( "mspacit.5f", 0x1000, 0x0800, CRC(22b0188a) SHA1(a9ed9ca8b36a60081fd364abc9bc23963932cc0b) )
+ ROM_LOAD( "mspacit.5j", 0x1800, 0x0800, CRC(50c7477d) SHA1(c04ec282a8cb528df5e38ad750d12ee71612695d) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mspacdel )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "mspacdel.4", 0x3000, 0x1000, CRC(af8c63ad) SHA1(e119eac748179fef53b8fd62f33885df53bf94fa) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "mspacdel.5e", 0x0000, 0x1000, CRC(605becd7) SHA1(d16bd3e151273ab6652b4f105dd58ef95c18b387) )
+ ROM_LOAD( "mspacdel.5f", 0x1000, 0x1000, CRC(435de4cb) SHA1(f3aa39e969f79b0e01378c870e874f8076def746) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mspacfnt )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "mspacfnt.5e", 0x0000, 0x1000, CRC(6d6d7af4) SHA1(768dc3fa909f6fef77eb3d72c287c91f3da2ae70) )
+ ROM_LOAD( "mspacfnt.5f", 0x1000, 0x1000, CRC(7537ee90) SHA1(9e861fca1706ecabaad15ba3fc817bdc3146ea1d) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mspachi )
+ ROM_REGION( 0x11000, "maincpu", 0 )
+ ROM_LOAD( "mspachi.1", 0x0000, 0x1000, CRC(dca2ffc4) SHA1(746ebc8afd3172323f1c19e97e55e0f906d68ea4) )
+ ROM_LOAD( "mspachi.2", 0x1000, 0x1000, CRC(fea2627b) SHA1(bc7249f0939dc003de509721e7d4f669defefcfe) )
+ ROM_LOAD( "mspachi.3", 0x2000, 0x1000, CRC(a9a32749) SHA1(2d1036a0903a12f4f8b9e56c1599d1dccea8991a) )
+ ROM_LOAD( "mspachi.4", 0x3000, 0x1000, CRC(9123cd53) SHA1(e6a3461c818b2bc779f02c23d59e54530ef76584) )
+ ROM_LOAD( "mspachi.5", 0x8000, 0x1000, CRC(397f196d) SHA1(aab641b8053adc0a43ee5d2eba43aa6c12326dec) )
+ ROM_LOAD( "mspachi.6", 0x9000, 0x2000, CRC(50de42d3) SHA1(66b2dd376ab69cab2593357489251f06bc621120) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) )
+ ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mspacii )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "mspacii.1", 0x0000, 0x1000, CRC(df673b57) SHA1(93ee4e8f9751db5f7d3c35988fcb8ae8037464ed) )
+ ROM_LOAD( "mspacii.2", 0x1000, 0x1000, CRC(7591f606) SHA1(0aead0ac5af602269df8732c5763147cdb543b8d) )
+ ROM_LOAD( "mspacii.3", 0x2000, 0x1000, CRC(c8ef1a7f) SHA1(0c9a28bbe63d7d44511a13316937a21b8846543e) )
+ ROM_LOAD( "mspacii.4", 0x3000, 0x1000, CRC(d498f435) SHA1(c041841b1349d8d5c2d560aed54c4aeb8adfddb8) )
+ ROM_LOAD( "mspacii.5", 0x8000, 0x1000, CRC(fbbc3d2e) SHA1(dc4337d7f0961e048a433021f670da6d314bd663) )
+ ROM_LOAD( "mspacii.6", 0x9000, 0x1000, CRC(aa3887c5) SHA1(0e20cb686383156a9883749568c8e57c15c3ae44) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "mspacii.5e", 0x0000, 0x1000, CRC(04333722) SHA1(bb179d5302b26b815b5d7eff14865e7b4f8a6880) )
+ ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mspacit )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "mspacit.4", 0x3000, 0x1000, CRC(50dcba32) SHA1(cc454829cd71ca874029a20118027873df824c66) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "mspacit.6", 0x9000, 0x1000, CRC(3a1d5323) SHA1(16e7dddf40505706ece2d053d51e28bff8be8e77) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "mspacit.5e", 0x0000, 0x0800, CRC(93933d1d) SHA1(fa38d2cb87e872bb9a3158a4df98f38360dc85ec) )
+ ROM_LOAD( "mspacit.5h", 0x0800, 0x0800, CRC(7409fbec) SHA1(f440f08ba026ae6172666e1bdc0894ce33bba420) )
+ ROM_LOAD( "mspacit.5f", 0x1000, 0x0800, CRC(22b0188a) SHA1(a9ed9ca8b36a60081fd364abc9bc23963932cc0b) )
+ ROM_LOAD( "mspacit.5j", 0x1800, 0x0800, CRC(50c7477d) SHA1(c04ec282a8cb528df5e38ad750d12ee71612695d) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD( "mspacit.7f", 0x0000, 0x0020, CRC(2c3cc909) SHA1(32d68d4cfdf9f3e7351353428d268c763e809c63) )
+ ROM_LOAD( "82s126.4a", 0x0020, 0x0100, CRC(3eb3a8e4) SHA1(19097b5f60d1030f8b82d9f1d3a241f93e5c75d6) )
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ /* The sound is extremely distorted, perhaps a bad dump? The patches below fix the changed bytes */
+ ROM_LOAD( "mspacit.1m", 0x0000, 0x0100, CRC(3cb61034) SHA1(2f24b88839aee107a0ac1064f8bc4853933f5205) )
+ ROM_FILL( 0x0a, 1, 13 )
+ ROM_FILL( 0x2a, 1, 10 )
+ ROM_FILL( 0x4a, 1, 2 )
+ ROM_FILL( 0x8a, 1, 13 )
+ ROM_FILL( 0xaa, 1, 2 )
+ ROM_FILL( 0xca, 1, 10 )
+ ROM_LOAD( "82s126.3m", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) )
+ROM_END
+
+/* This was listed as a pac-gal clone however it is just another MS Pacman (mspacit with slightly altered gfx) */
+ROM_START( mspacit2 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "mspacit.4", 0x3000, 0x1000, CRC(50dcba32) SHA1(cc454829cd71ca874029a20118027873df824c66) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "mspacit.6", 0x9000, 0x1000, CRC(3a1d5323) SHA1(16e7dddf40505706ece2d053d51e28bff8be8e77) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "mspacit.5e", 0x0000, 0x0800, CRC(93933d1d) SHA1(fa38d2cb87e872bb9a3158a4df98f38360dc85ec) )
+ ROM_LOAD( "mspacit.5h", 0x0800, 0x0800, CRC(7409fbec) SHA1(f440f08ba026ae6172666e1bdc0894ce33bba420) )
+ ROM_LOAD( "mspacit2.5f", 0x1000, 0x0800, CRC(20135b9b) SHA1(ea85134cdeb4142d72cf81ead96990d211046f2e) )
+ ROM_LOAD( "mspacit.5j", 0x1800, 0x0800, CRC(50c7477d) SHA1(c04ec282a8cb528df5e38ad750d12ee71612695d) )
+
+ PACMAN_PROMS
+ROM_END
+
+/* The cpu rom is 2 copies of mspacmbg.cpu joined */
+ROM_START( mspacj )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "mspacj.cpu", 0x0000, 0x4000, CRC(807f978a) SHA1(19fa46e41ff671b88fb7d5e0a6c8c989a96e3477) )
+ ROM_CONTINUE( 0x8000, 0x4000)
+ ROM_IGNORE( 0x8000 )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "mspacj.gfx", 0x0000, 0x0800, CRC(8ee4a3b0) SHA1(01e3453c99f7a5d78ab083c49c650e898c0dd2ee) )
+ ROM_CONTINUE( 0x1000, 0x0800 )
+ ROM_CONTINUE( 0x0800, 0x0800 )
+ ROM_CONTINUE( 0x1800, 0x0800 )
+ ROM_IGNORE( 0x2000 )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD( "mspacj.7f", 0x0000, 0x0020, CRC(3545e7e9) SHA1(b866b02579438afb11296e5c53a32c6425bd044d) )
+ ROM_LOAD( "82s126.4a", 0x0020, 0x0100, CRC(3eb3a8e4) SHA1(19097b5f60d1030f8b82d9f1d3a241f93e5c75d6) )
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "mspacj.1m", 0x0000, 0x0100, CRC(640e455c) SHA1(c3f7d132cf8f1ec3334366b6891fca74450a577e) )
+ ROM_LOAD( "82s126.3m", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) )
+ROM_END
+
+ROM_START( mspacmab )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) )
+ ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mspacman )
+ ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k for code+64k for decrypted code */
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) )
+ ROM_LOAD( "u5", 0x8000, 0x0800, CRC(f45fbbcd) SHA1(b26cc1c8ee18e9b1daa97956d2159b954703a0ec) )
+ ROM_LOAD( "u6", 0x9000, 0x1000, CRC(a90e7000) SHA1(e4df96f1db753533f7d770aa62ae1973349ea4cf) )
+ ROM_LOAD( "u7", 0xb000, 0x1000, CRC(c82cd714) SHA1(1d8ac7ad03db2dc4c8c18ade466e12032673f874) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) )
+ ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) )
+
+ PACMAN_PROMS
+ROM_END
+
+/* This set has the fixes proposed by Don Hodges at the pages:
+ http://donhodges.com/how_high_can_you_get3.htm
+ http://donhodges.com/ms_pacman_bugs.htm */
+ROM_START( mspacmap )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+ ROM_FILL(0x0677,1,0xc3)
+ ROM_FILL(0x0678,1,0x41)
+ ROM_FILL(0x0679,1,0x98)
+ ROM_FILL(0x0c1d,1,0x00)
+ ROM_FILL(0x2bf3,1,0xc3)
+ ROM_FILL(0x2bf4,1,0x93)
+ ROM_FILL(0x2bf5,1,0x87)
+ ROM_FILL(0x2bf8,1,0x3c)
+ ROM_FILL(0x8794,1,0x07)
+ ROM_FILL(0x8796,1,0xf8)
+ ROM_FILL(0x2ffc,1,0xfa)
+ ROM_FILL(0x2ffd,1,0x5b)
+ ROM_FILL(0x3f7c,1,0x85)
+ ROM_FILL(0x94c3,1,0xd2)
+ ROM_FILL(0x94d8,1,0xd2)
+ ROM_FILL(0x9595,1,0xd2)
+ ROM_FILL(0x95a7,1,0xd2)
+ ROM_FILL(0x95c8,1,0xd2)
+ ROM_FILL(0x9841,1,0xaf)
+ ROM_FILL(0x9842,1,0x32)
+ ROM_FILL(0x9843,1,0x02)
+ ROM_FILL(0x9844,1,0x4e)
+ ROM_FILL(0x9845,1,0xef)
+ ROM_FILL(0x9846,1,0x01)
+ ROM_FILL(0x9847,1,0x01)
+ ROM_FILL(0x9848,1,0xc3)
+ ROM_FILL(0x9849,1,0x7a)
+ ROM_FILL(0x984a,1,0x06)
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) )
+ ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mspacmat )
+ ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k for code+64k for decrypted code */
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) )
+ ROM_LOAD( "u5", 0x8000, 0x0800, CRC(f45fbbcd) SHA1(b26cc1c8ee18e9b1daa97956d2159b954703a0ec) )
+ ROM_LOAD( "u6pacatk", 0x9000, 0x1000, CRC(f6d83f4d) SHA1(6135b187d6b968554d08f2ac00d3a3313efb8638) )
+ ROM_LOAD( "u7", 0xb000, 0x1000, CRC(c82cd714) SHA1(1d8ac7ad03db2dc4c8c18ade466e12032673f874) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) )
+ ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mspacmbe )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "2.bin", 0x1000, 0x1000, CRC(04e6c486) SHA1(63aa3e6c49d345cccfe87dd3fdcddc75ab4a570d) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "6.bin", 0x9000, 0x1000, CRC(206a9623) SHA1(20006f945c1b7b0e3c0415eecc0b148e5a6a1dfa) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) )
+ ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mspacmbg )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "mspacmbg.cpu", 0x0000, 0x4000, CRC(97c64918) SHA1(a46ca4822e6cd7b9a5603d5d06a78fd489dc0b96) )
+ ROM_CONTINUE( 0x8000, 0x4000 )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "mspacmbg.gfx", 0x0000, 0x0800, CRC(f2c5da43) SHA1(6a6de2ecc313a11ad12d8d1712c05f923984f668) )
+ ROM_CONTINUE( 0x1000, 0x0800 )
+ ROM_CONTINUE( 0x0800, 0x0800 )
+ ROM_CONTINUE( 0x1800, 0x0800 )
+ ROM_IGNORE( 0x6000 )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mspacmbx )
+ ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x8000, "gfx1", 0 )
+ ROM_LOAD( "mspacmnx.5e", 0x0000, 0x4000, CRC(d9a2897d) SHA1(38cc83d1a854ae289da7904faff32114a9731bda) )
+ ROM_LOAD( "mspacmnx.5f", 0x4000, 0x4000, CRC(6f625a9e) SHA1(d9d739ba412c9374b26006d99a345212ef97f868) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mspacmfx )
+ ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k for code+64k for decrypted code */
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacmanf.6f", 0x1000, 0x1000, CRC(720dc3ee) SHA1(7224d7acfa0144b681c71d7734a7337189835361) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) )
+ ROM_LOAD( "u5", 0x8000, 0x0800, CRC(f45fbbcd) SHA1(b26cc1c8ee18e9b1daa97956d2159b954703a0ec) )
+ ROM_LOAD( "u6", 0x9000, 0x1000, CRC(a90e7000) SHA1(e4df96f1db753533f7d770aa62ae1973349ea4cf) )
+ ROM_LOAD( "u7", 0xb000, 0x1000, CRC(c82cd714) SHA1(1d8ac7ad03db2dc4c8c18ade466e12032673f874) )
+
+ ROM_REGION( 0x8000, "gfx1", 0 )
+ ROM_LOAD( "mspacmnx.5e", 0x0000, 0x4000, CRC(d9a2897d) SHA1(38cc83d1a854ae289da7904faff32114a9731bda) )
+ ROM_LOAD( "mspacmnx.5f", 0x4000, 0x4000, CRC(6f625a9e) SHA1(d9d739ba412c9374b26006d99a345212ef97f868) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mspacmnf )
+ ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k for code+64k for decrypted code */
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacfast.6f", 0x1000, 0x1000, CRC(720dc3ee) SHA1(7224d7acfa0144b681c71d7734a7337189835361) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) )
+ ROM_LOAD( "u5", 0x8000, 0x0800, CRC(f45fbbcd) SHA1(b26cc1c8ee18e9b1daa97956d2159b954703a0ec) )
+ ROM_LOAD( "u6", 0x9000, 0x1000, CRC(a90e7000) SHA1(e4df96f1db753533f7d770aa62ae1973349ea4cf) )
+ ROM_LOAD( "u7", 0xb000, 0x1000, CRC(c82cd714) SHA1(1d8ac7ad03db2dc4c8c18ade466e12032673f874) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) )
+ ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mspacmnn )
+ ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k for code+64k for decrypted code */
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) )
+ ROM_LOAD( "u5", 0x8000, 0x0800, CRC(f45fbbcd) SHA1(b26cc1c8ee18e9b1daa97956d2159b954703a0ec) )
+ ROM_LOAD( "u6", 0x9000, 0x1000, CRC(a90e7000) SHA1(e4df96f1db753533f7d770aa62ae1973349ea4cf) )
+ ROM_LOAD( "u7", 0xb000, 0x1000, CRC(c82cd714) SHA1(1d8ac7ad03db2dc4c8c18ade466e12032673f874) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "mspacmnn.5e", 0x0000, 0x1000, CRC(f4cf1273) SHA1(9120de96984e96a0425b210d9fb8175b91b26284) )
+ ROM_LOAD( "mspacmnn.5f", 0x1000, 0x1000, CRC(c4e7ec0b) SHA1(06940f81b228fd7b6389afe93a7355dc2afee821) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mspacmnx )
+ ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k for code+64k for decrypted code */
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) )
+ ROM_LOAD( "u5", 0x8000, 0x0800, CRC(f45fbbcd) SHA1(b26cc1c8ee18e9b1daa97956d2159b954703a0ec) )
+ ROM_LOAD( "u6", 0x9000, 0x1000, CRC(a90e7000) SHA1(e4df96f1db753533f7d770aa62ae1973349ea4cf) )
+ ROM_LOAD( "u7", 0xb000, 0x1000, CRC(c82cd714) SHA1(1d8ac7ad03db2dc4c8c18ade466e12032673f874) )
+
+ ROM_REGION( 0x8000, "gfx1", 0 )
+ ROM_LOAD( "mspacmnx.5e", 0x0000, 0x4000, CRC(d9a2897d) SHA1(38cc83d1a854ae289da7904faff32114a9731bda) )
+ ROM_LOAD( "mspacmnx.5f", 0x4000, 0x4000, CRC(6f625a9e) SHA1(d9d739ba412c9374b26006d99a345212ef97f868) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mspacnes )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "mscrzyma.3", 0x2000, 0x1000, CRC(513f4d5c) SHA1(ae011b89422bd8cbb80389814500bc1427f6ecb2) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "mspacnes.5", 0x8000, 0x1000, CRC(43936999) SHA1(4261f0bbb9ece2370c6283763a396ad851f42c51) )
+ ROM_LOAD( "mspacnes.6", 0x9000, 0x1000, CRC(a15b524e) SHA1(91f211e479261b344fc64517394abf7a8f9d6f4b) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "mspacnes.5e", 0x0000, 0x1000, CRC(d3a28769) SHA1(3fa7d9a235e0bf8aae03b15c5377401f029d6946) )
+ ROM_LOAD( "mspacnes.5f", 0x1000, 0x1000, CRC(6a4db98d) SHA1(e0eeb83c1265f5c9881e1c752842d20dabf35783) )
+
+ PACPLUS_PROMS
+ROM_END
+
+ROM_START( mspacp )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "mspacp.4", 0x3000, 0x1000, CRC(203dcba5) SHA1(c1e94a17bab5f25bfdc5836e0ba968a56b6f9e58) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "mspacp.5e", 0x0000, 0x1000, CRC(cd4afa90) SHA1(e917c5cd4b0af33279dbde5a50fc3aedb7602425) )
+ ROM_LOAD( "mspacp.5f", 0x1000, 0x1000, CRC(58ea207f) SHA1(65d07838bd2cb8bfcb6fcb0e99f88036af5753be) )
+
+ PACPLUS_PROMS
+ROM_END
+
+ROM_START( mspacpbl )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "mspacpbl.1", 0x0000, 0x1000, CRC(34f60afa) SHA1(86813f3f0c3832451ee215d542cce7ad2aaa9785) )
+ ROM_LOAD( "mspacpbl.2", 0x1000, 0x1000, CRC(5426636c) SHA1(35cdd13e917c2d1e11086745de6dc3b85bf1fdbb) )
+ ROM_LOAD( "mspacpbl.3", 0x2000, 0x1000, CRC(60c890a1) SHA1(c1fbaedb212449803f5b506ac6f8e258644e4536) )
+ ROM_LOAD( "mspacpbl.4", 0x3000, 0x1000, CRC(586f1bfd) SHA1(1cf77bb44ba153ca03e7e8b26174b33f192da071) )
+ ROM_LOAD( "mspacpbl.5", 0x8000, 0x1000, CRC(85a44e94) SHA1(59b2249f6834ee4634e9fb8daa53739e80654c85) )
+ ROM_LOAD( "mspacpbl.6", 0x9000, 0x1000, CRC(3babaeab) SHA1(abc7f705a16dfd53540dfe7e0b6723a5843682c2) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "mspacpbl.5e", 0x0000, 0x1000, CRC(5ba9c39a) SHA1(50e49234b051d74ce21ec4b819cccbbb98c57c3c) )
+ ROM_LOAD( "mspacpbl.5f", 0x1000, 0x1000, CRC(4aeefccb) SHA1(68810190397415be042c4787618feade7dcfe23a) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mspacpls )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "mspacatk.2", 0x1000, 0x1000, CRC(0af09d31) SHA1(6ff73e4da4910bcd2ca3aa299d8ffad23f8abf79) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "mspacatk.5", 0x8000, 0x1000, CRC(e6e06954) SHA1(ee5b266b1cc178df31fc1da5f66ef4911c653dda) )
+ ROM_LOAD( "mspacatk.6", 0x9000, 0x1000, CRC(3b5db308) SHA1(c1ba630cb8fb665c4881a6cce9d3b0d4300bd0eb) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) )
+ ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mspacplx )
+ ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "mspacatk.2", 0x1000, 0x1000, CRC(0af09d31) SHA1(6ff73e4da4910bcd2ca3aa299d8ffad23f8abf79) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "mspacatk.5", 0x8000, 0x1000, CRC(e6e06954) SHA1(ee5b266b1cc178df31fc1da5f66ef4911c653dda) )
+ ROM_LOAD( "mspacatk.6", 0x9000, 0x1000, CRC(3b5db308) SHA1(c1ba630cb8fb665c4881a6cce9d3b0d4300bd0eb) )
+
+ ROM_REGION( 0x8000, "gfx1", 0 )
+ ROM_LOAD( "mspacmnx.5e", 0x0000, 0x4000, CRC(d9a2897d) SHA1(38cc83d1a854ae289da7904faff32114a9731bda) )
+ ROM_LOAD( "mspacmnx.5f", 0x4000, 0x4000, CRC(6f625a9e) SHA1(d9d739ba412c9374b26006d99a345212ef97f868) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mspacren )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "mspacren.4", 0x3000, 0x1000, CRC(efe80423) SHA1(bc78085a53123da0e0c9ab2c212c60c9dd2e6983) )
+ ROM_LOAD( "mspacren.5", 0x8000, 0x1000, CRC(f513ae17) SHA1(87e1a3d31d04ed527cb89369c53a5a66403f73a5) )
+ ROM_LOAD( "mspacren.6", 0x9000, 0x1000, CRC(ce3b842b) SHA1(e4bf3578ccfaa757534f83fb3842d1515fd95d71) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "mspacren.5e", 0x0000, 0x1000, CRC(31b134a0) SHA1(f457df057963aa60492a98f12a6d258fe7fded03) )
+ ROM_LOAD( "mspacren.5f", 0x1000, 0x1000, CRC(022f61d1) SHA1(16ed25a881b058efa963b938341ce4f04d914262) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD( "puckren.7f", 0x0000, 0x0020, CRC(7b6aa3c9) SHA1(849911abdc26ccf2ad44e2c432e6219447b8bef3) )
+ ROM_LOAD( "puckren.4a", 0x0020, 0x0100, CRC(64fe1dbf) SHA1(7f7541eb12148add79ad186a1da375c865d251e0) )
+
+ PACMAN_SOUND_PROMS
+ROM_END
+
+ROM_START( mspacrip )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "mspacrip.4", 0x3000, 0x1000, CRC(5fb1ee61) SHA1(1123ec7d3de24fd8ae2eb75c87b3d22f53421e21) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "mspacrip.5e", 0x0000, 0x1000, CRC(5aa9eb83) SHA1(da2500ed81873c2d96501d136c7d9478155e0d33) )
+ ROM_LOAD( "mspacrip.5f", 0x1000, 0x1000, CRC(ceb3785d) SHA1(c3cc1475ca0b1725497cd03ab116c18d57dba127) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mspacsup )
+ ROM_REGION( 0x10000, "maincpu",0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "mspacsup.6f", 0x1000, 0x0800, CRC(ab07b7c6) SHA1(855ce1a948660014796de15a8ef155a2b7068056) )
+ ROM_LOAD( "mspacsup.6m", 0x1800, 0x0800, CRC(2a724972) SHA1(f67f4280f928f182330b32853591eec32a22d5f6) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "mspacsup.6j", 0x3000, 0x0800, CRC(6023a7a8) SHA1(3424b057dc70c4a76f55dc1b618f5a0ad5d5b6fe) )
+ ROM_LOAD( "mspacsup.6p", 0x3800, 0x0800, CRC(9bdbccb0) SHA1(58dedf146178f08dc0e8c09aa0def75267e2efe4) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) )
+ ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mspacwf ) // Ms.Pacman Weird Fruit
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "mspacwf.4", 0x3000, 0x1000, CRC(a078477e) SHA1(e4016bfcd581cbf0b180d7e3cf6b63713de45add) )
+ ROM_LOAD( "mspacwf.5", 0x8000, 0x1000, CRC(5064e97a) SHA1(3cc0f7ce7874c28bf4d379922e9509fca6227c13) )
+ ROM_LOAD( "mspacwf.6", 0x9000, 0x1000, CRC(b9f6fc01) SHA1(43648fc301e0b2639ac98452154fd74ccec1f6d7) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "mspacwf.5e", 0x0000, 0x1000, CRC(4f00a074) SHA1(c9f0319537d327a46612d9255cfeea58c4f96918) )
+ ROM_LOAD( "mspacwf.5f", 0x1000, 0x1000, CRC(a13df02c) SHA1(072f5a3fe25cc29d57082eb0cfc7b78f5e330363) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mspamsba )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "mspamsba.4", 0x3000, 0x1000, CRC(8b3f8e44) SHA1(d56e640e3454950c4f2c4d00c8f6e9e1cfb33494) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "mspamsba.5e", 0x0000, 0x1000, CRC(aa7115b8) SHA1(895f85d157239be4a6f40beeb739157954697386) )
+ ROM_LOAD( "mspamsba.5f", 0x1000, 0x1000, CRC(f94b0961) SHA1(8b1376dd50388cbc29426cc2e339798d687fb845) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mspc6mad )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "mscrzyma.3", 0x2000, 0x1000, CRC(513f4d5c) SHA1(ae011b89422bd8cbb80389814500bc1427f6ecb2) )
+ ROM_LOAD( "mspac6m.4", 0x3000, 0x1000, CRC(e21c81ff) SHA1(5a6ce8ee3059a31afbb9b8c1d0a1e37606d14a0a) )
+ ROM_LOAD( "mspc6mad.5", 0x8000, 0x1000, CRC(b556fe78) SHA1(2e84f6e69b3852b791de22ac31bee2b2f76ded07) )
+ ROM_LOAD( "mspc6mad.6", 0x9000, 0x1000, CRC(4dbe1939) SHA1(5203274ed1ceb06308f2778b7b5e8d41e8f2bd63) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "mspc6mad.5e", 0x0000, 0x1000, CRC(92ea9860) SHA1(1d03cd9dd411ed9284fe4ccae3cbe2ac53560139) )
+ ROM_LOAD( "mspc6mad.5f", 0x1000, 0x1000, CRC(713cc17e) SHA1(dca7722b38c4eae701f48110276376c83505fc9b) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( msplus )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "msplus.4", 0x3000, 0x1000, CRC(9d6fed06) SHA1(9927933f8df589e995f542d48a6ac196029a343f) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "mspacp.5e", 0x0000, 0x1000, CRC(cd4afa90) SHA1(e917c5cd4b0af33279dbde5a50fc3aedb7602425) )
+ ROM_LOAD( "msplus.5f", 0x1000, 0x1000, CRC(e68b2a85) SHA1(8c1b294505ae5202bce760cafea2437a5f71d0cf) )
+
+ PACPLUS_PROMS
+ROM_END
+
+ROM_START( msrumble )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "msrumble.4", 0x3000, 0x1000, CRC(15b02313) SHA1(b1400928ff7a5c3067f3d7be02b172f3054c0ce0) )
+ ROM_LOAD( "msrumble.5", 0x8000, 0x1000, CRC(e2473a86) SHA1(b51cb0a98178f4c52345d6ecdf89e5f23080eb72) )
+ ROM_LOAD( "msrumble.6", 0x9000, 0x1000, CRC(17abb097) SHA1(7eae139e71c7ea07e05f9b1c04194b1ae6c2f975) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) )
+ ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mssilad )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "mssilad.3", 0x2000, 0x1000, CRC(79d241dd) SHA1(98f95619d4212da9f23b83ad5c9c793576d51177) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "mssilad.5", 0x8000, 0x1000, CRC(2e2fcde0) SHA1(718dcbf395eb92b956adf185b5b2cf46aa5b9694) )
+ ROM_LOAD( "mssilad.6", 0x9000, 0x1000, CRC(22c6d19a) SHA1(92cb3f962b7dab5e92b780d60f448b9f57c03687) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "msatkad.5e", 0x0000, 0x1000, CRC(dc70ed2e) SHA1(b9fbb1d21085bc78eb82c429506b20e332b18e0e) )
+ ROM_LOAD( "msatkad.5f", 0x1000, 0x1000, CRC(643d5523) SHA1(565f92294a4b6a11dc5e9a165f35284c2a526e6c) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( msstrmaz )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "mscrzyma.3", 0x2000, 0x1000, CRC(513f4d5c) SHA1(ae011b89422bd8cbb80389814500bc1427f6ecb2) )
+ ROM_LOAD( "msstrmaz.4", 0x3000, 0x1000, CRC(ef9cce5a) SHA1(2a9bcdd672023129761a573d77f69b76ccfdc5c4) )
+ ROM_LOAD( "msstrmaz.5", 0x8000, 0x1000, CRC(b8f8edda) SHA1(5af8c7908df0d45d456cfe68470ba2098c956cac) )
+ ROM_LOAD( "msstrmaz.6", 0x9000, 0x1000, CRC(5d7888bc) SHA1(1f3ecd3bc787dd64ed41b1d664cf6794fa799ee8) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "msstrmaz.5e", 0x0000, 0x1000, CRC(14fd0ad7) SHA1(4fac020002905b28c7f054340aa0eacc7b2c701b) )
+ ROM_LOAD( "msstrmaz.5f", 0x1000, 0x1000, CRC(67fb6254) SHA1(ce2134f6c8c6fc5770a835aa1eeebd27611806da) )
+
+ PACPLUS_PROMS
+ROM_END
+
+ROM_START( msultra )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "msultra.4", 0x3000, 0x1000, CRC(36b5e9fd) SHA1(70373fbcae8d2f6dd9274cb825a561de15c4c2b9) )
+ ROM_LOAD( "msultra.5", 0x8000, 0x1000, CRC(cf609615) SHA1(f410eec29433085bf9138582e6725c9326d9001f) )
+ ROM_LOAD( "msultra.6", 0x9000, 0x1000, CRC(007cd365) SHA1(c5ce3f81063052b36a6f5516d391e6c5a63f2819) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "msultra.5e", 0x0000, 0x1000, CRC(508af5b0) SHA1(5a92354f45af65d3343e32111f675998a5347557) )
+ ROM_LOAD( "msultra.5f", 0x1000, 0x1000, CRC(db5a4630) SHA1(2cb6e8650ae861a2008dd2f185aa2c02827ab370) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( msvctr6m )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "mscrzyma.3", 0x2000, 0x1000, CRC(513f4d5c) SHA1(ae011b89422bd8cbb80389814500bc1427f6ecb2) )
+ ROM_LOAD( "mspac6m.4", 0x3000, 0x1000, CRC(e21c81ff) SHA1(5a6ce8ee3059a31afbb9b8c1d0a1e37606d14a0a) )
+ ROM_LOAD( "mspac6m.5", 0x8000, 0x1000, CRC(d0bd89d9) SHA1(c47e96d68d7e88e906b416c24ce926b76689f22d) )
+ ROM_LOAD( "mspac6m.6", 0x9000, 0x1000, CRC(c5662407) SHA1(98827bda653b6d1d6984082c706247392ab706d2) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "msvctr6m.5e", 0x0000, 0x1000, CRC(64b35a5a) SHA1(5c8dec1ae192c8e717346618bc4f28d3abd0ca84) )
+ ROM_LOAD( "msvectr.5f", 0x1000, 0x1000, CRC(57cb31e3) SHA1(dc9278cee7f7ce341087760654bf0a1bcdeb2f7c) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( msvectr )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "msvectr.5e", 0x0000, 0x1000, CRC(56560aef) SHA1(1eac2b242328ec4d6ba9faac2fd972c8cb6c3e55) )
+ ROM_LOAD( "msvectr.5f", 0x1000, 0x1000, CRC(57cb31e3) SHA1(dc9278cee7f7ce341087760654bf0a1bcdeb2f7c) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( msyakman )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "msyakman.5e", 0x0000, 0x1000, CRC(827892bb) SHA1(5b111c4d6293e13d5fae9e77823acd8be5c08b34) )
+ ROM_LOAD( "msyakman.5f", 0x1000, 0x1000, CRC(1108ba96) SHA1(b1ee699722b8a22e24ec18d1930e055387a45d96) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( ottop1 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "ottop1.1", 0x0000, 0x1000, CRC(00340fb8) SHA1(60337395c35085c32fc4450a649cf629e4ae32da) )
+ ROM_LOAD( "ottop1.2", 0x1000, 0x1000, CRC(f6c05582) SHA1(3803f1a9546ff6293e3fad1984300eb1c2835ff6) )
+ ROM_LOAD( "ottop1.3", 0x2000, 0x1000, CRC(08381b15) SHA1(8727ddb990668acd0288ee9ec9de4922a505c7d1) )
+ ROM_LOAD( "ottop1.4", 0x3000, 0x1000, CRC(0d20edf6) SHA1(11ec227cb5ee030bfed9aaa0b624fd2c0e47b6f5) )
+ ROM_LOAD( "ottop1.5", 0x8000, 0x1000, CRC(3bb6cea7) SHA1(cf629f478f14fb392bc71b6453364b58c3544b0a) )
+ ROM_LOAD( "ottop1.6", 0x9000, 0x1000, CRC(1e1357bf) SHA1(4fd6074cc971bfe8d233714ae88ec295840c7d9b) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "ottop1.5e", 0x0000, 0x1000, CRC(2ba71471) SHA1(69f111cee7c1228636ee38b065b2d5486a18749d) )
+ ROM_LOAD( "ottop1.5f", 0x1000, 0x1000, CRC(ad353000) SHA1(8ec0c31dc4e9da5bd8cc8087abb3a9936759b39d) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( ottop2 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "ottop2.1", 0x0000, 0x1000, CRC(a9c0c5fc) SHA1(4631b6260b88c5dc23503ea420a62f946f5bb978) )
+ ROM_LOAD( "ottop1.2", 0x1000, 0x1000, CRC(f6c05582) SHA1(3803f1a9546ff6293e3fad1984300eb1c2835ff6) )
+ ROM_LOAD( "ottop1.3", 0x2000, 0x1000, CRC(08381b15) SHA1(8727ddb990668acd0288ee9ec9de4922a505c7d1) )
+ ROM_LOAD( "ottop2.4", 0x3000, 0x1000, CRC(c8517a08) SHA1(ab6ed1004e6a66dfce426ad5db0bfc0cd4e6eabc) )
+ ROM_LOAD( "ottop2.5", 0x8000, 0x1000, CRC(d8d8ceec) SHA1(b3ea6f35118b04281c568806127fe1a97c22ed42) )
+ ROM_LOAD( "ottop2.6", 0x9000, 0x1000, CRC(184f877a) SHA1(473b47566fce1b53d6b885b54562c4ae82ed9ae1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "ottop2.5e", 0x0000, 0x1000, CRC(54a743f7) SHA1(9406b856edf3f6a7979926295663cabdf53bb0d4) )
+ ROM_LOAD( "ottop1.5f", 0x1000, 0x1000, CRC(ad353000) SHA1(8ec0c31dc4e9da5bd8cc8087abb3a9936759b39d) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( ottop3 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "ottop3.1", 0x0000, 0x1000, CRC(2df1dc0d) SHA1(93846a2affedda0ab1047b2927198fc2c24c7f72) )
+ ROM_LOAD( "ottop1.2", 0x1000, 0x1000, CRC(f6c05582) SHA1(3803f1a9546ff6293e3fad1984300eb1c2835ff6) )
+ ROM_LOAD( "ottop1.3", 0x2000, 0x1000, CRC(08381b15) SHA1(8727ddb990668acd0288ee9ec9de4922a505c7d1) )
+ ROM_LOAD( "ottop3.4", 0x3000, 0x1000, CRC(0eb1ad52) SHA1(d533d06d3aab14ab7726d449269782d663da1180) )
+ ROM_LOAD( "ottop3.5", 0x8000, 0x1000, CRC(3e2e62bb) SHA1(8dcbc2170214e538fcf092c54a9d6994b5157278) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "ottop2.5e", 0x0000, 0x1000, CRC(54a743f7) SHA1(9406b856edf3f6a7979926295663cabdf53bb0d4) )
+ ROM_LOAD( "ottop1.5f", 0x1000, 0x1000, CRC(ad353000) SHA1(8ec0c31dc4e9da5bd8cc8087abb3a9936759b39d) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( ottopz )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "ottopz.1", 0x0000, 0x1000, CRC(35b94585) SHA1(6a8350efbd6fab30b22365c6a2ed7e23f47af0e6) )
+ ROM_LOAD( "ottopz.2", 0x1000, 0x1000, CRC(298dbd3d) SHA1(302c82562c66c267dedcc7e7d5e3ab8234b5e20c) )
+ ROM_LOAD( "ottopz.3", 0x2000, 0x1000, CRC(6f0c25bd) SHA1(f4cabdb7462310c14ecde5db9f586360ac1829f4) )
+ ROM_LOAD( "ottopz.4", 0x3000, 0x1000, CRC(3af7ef8c) SHA1(bf340f3fa275950c0eda4fbf3eb3115edd039bd6) )
+ ROM_LOAD( "ottopz.5", 0x8000, 0x1000, CRC(098c2a09) SHA1(cf0e69c891dbc8b448c359abf3e869d0aaba02df) )
+ ROM_LOAD( "ottopz.6", 0x9000, 0x1000, CRC(367e5c05) SHA1(15bed84c6480fab5e7bcbbd1dbb2b8919ac1dca5) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "ottopz.5e", 0x0000, 0x1000, CRC(046d76fb) SHA1(44f607dbed727a0ae5152da67b6953ba9619566f) )
+ ROM_LOAD( "ottopz.5f", 0x1000, 0x1000, CRC(402e194d) SHA1(01867241edd28f25aa7be1d4004bb2c73979d8d0) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacatk )
+ ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k for code+64k for decrypted code */
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) )
+ ROM_LOAD( "u5", 0x8000, 0x0800, CRC(f45fbbcd) SHA1(b26cc1c8ee18e9b1daa97956d2159b954703a0ec) )
+ ROM_LOAD( "pacatk.u6", 0x9000, 0x1000, CRC(a35b3788) SHA1(51a1806a0ae4adb5baa9e875c6d9f715198ce8ae) )
+ ROM_LOAD( "u7", 0xb000, 0x1000, CRC(c82cd714) SHA1(1d8ac7ad03db2dc4c8c18ade466e12032673f874) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) )
+ ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) )
+// ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+// ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacgal )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "mscrzyma.3", 0x2000, 0x1000, CRC(513f4d5c) SHA1(ae011b89422bd8cbb80389814500bc1427f6ecb2) )
+ ROM_LOAD( "pacman.7hj", 0x3000, 0x1000, CRC(70694c8e) SHA1(d0d02f0997b44e1ba5ea27fc3f7af1b956e2a687) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) )
+ ROM_LOAD( "pacman.5ef", 0x1000, 0x0800, CRC(65a3ee71) SHA1(cbbf700eefba2a5bf158983f2ca9688b7c6f5d2b) )
+ ROM_LOAD( "mspacit.5j", 0x1800, 0x0800, CRC(50c7477d) SHA1(c04ec282a8cb528df5e38ad750d12ee71612695d) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD( "82s123.7f", 0x0000, 0x0020, CRC(2fc650bd) SHA1(8d0268dee78e47c712202b0ec4f1f51109b1f2a5) )
+ ROM_LOAD( "pacgal.4a", 0x0020, 0x0100, CRC(63efb927) SHA1(5c144a613fc4960a1dfd7ead89e7fee258a63171) )
+
+ PACMAN_SOUND_PROMS
+ROM_END
+
+ROM_START( pacgalu )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacgalu.bin", 0x0000, 0x4000, CRC(23a0bd03) SHA1(6ebf7985374a0b0d7402f54c3c9b488fdebeb65e) )
+ ROM_CONTINUE( 0x8000, 0x4000 )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacgalu.gfx", 0x0000, 0x2000, CRC(d6e3a240) SHA1(e176bfc6c0d2ecee825dce18758639c6e1dbe70d) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacgalx )
+ ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "mscrzyma.3", 0x2000, 0x1000, CRC(513f4d5c) SHA1(ae011b89422bd8cbb80389814500bc1427f6ecb2) )
+ ROM_LOAD( "pacman.7hj", 0x3000, 0x1000, CRC(70694c8e) SHA1(d0d02f0997b44e1ba5ea27fc3f7af1b956e2a687) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x8000, "gfx1", 0 )
+ ROM_LOAD( "mspacmnx.5e", 0x0000, 0x4000, CRC(d9a2897d) SHA1(38cc83d1a854ae289da7904faff32114a9731bda) )
+ ROM_LOAD( "pacgalx.5f", 0x4000, 0x4000, CRC(dfb2a9e9) SHA1(a7c297910fce9723054ce9a7abc0175e75e72d1c) )
+
+ 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) )
+
+ PACMAN_SOUND_PROMS
+ROM_END
+
+ROM_START( pacgent )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacgent.1", 0x0000, 0x1000, CRC(de6f3b2b) SHA1(cf499e8ce3bb88e69ce5bb3bbf412d81bf6a0c0f) )
+ ROM_LOAD( "fastplus.2", 0x1000, 0x1000, CRC(a8d6c227) SHA1(b5891f911bb054ca2547e663a3c27c93897f2075) )
+ ROM_LOAD( "pacgent.3", 0x2000, 0x1000, CRC(e96d522e) SHA1(41b08f3e10e81fc373bedd5ba928461f05a8ccb4) )
+ ROM_LOAD( "pacgent.4", 0x3000, 0x1000, CRC(154482fb) SHA1(98097e37f97310e93a42f7ae03072627c064f372) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "pacgent.6", 0x9000, 0x1000, CRC(dcc58e81) SHA1(5e005b46c5fef89c144f906e695eabad4a50919e) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacgent.5e", 0x0000, 0x1000, CRC(e9992415) SHA1(3e8241e1b17d7f5243d348ad9d07f55266ed524e) )
+ ROM_LOAD( "pacgent.5f", 0x1000, 0x1000, CRC(50171b3a) SHA1(e1fef48206ba5af1e729bfa09f938cbc47917dc2) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( petshop )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "petshop.4", 0x3000, 0x1000, CRC(75230eef) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "petshop.5e", 0x0000, 0x1000, CRC(ac1c180b) SHA1(dc012d2ba8e1ab19d915e0b1218154f5441aee99) )
+ ROM_LOAD( "petshop.5f", 0x1000, 0x1000, CRC(ce314b46) SHA1(bc091cef128f82c7d53ad1b4af841f41906cf601) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( piranha2 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "piranha2.4", 0x3000, 0x1000, CRC(fe8b786d) SHA1(e9fcd78076e4e7e6aa73781238722e077e40f945) )
+ ROM_LOAD( "piranha2.5", 0x8000, 0x1000, CRC(bef08ea4) SHA1(04211f34d7eb9009b1d2cb1a3fbff0e4bdeb0127) )
+ ROM_LOAD( "piranha2.6", 0x9000, 0x1000, CRC(fd3df829) SHA1(69e6c66aab3eb43f0a64350279e67351f1aceddd) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "piranha2.5e", 0x0000, 0x1000, CRC(8f0fa58f) SHA1(bf1ae6523cc9161c0db55b8ecaafe1783f3600f2) )
+ ROM_LOAD( "piranha2.5f", 0x1000, 0x1000, CRC(42153903) SHA1(9b231f783b5c847b09819d554a3bb136028938e0) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( ramsnoop )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "ramsnoop.1", 0x0000, 0x1000, CRC(A08529FA) SHA1(E448E3A2BED42FA9A2C6435849426E6A2CCF5290) )
+ ROM_LOAD( "ramsnoop.2", 0x1000, 0x1000, CRC(27B70DD6) SHA1(E52C724C7909C2B3B8EA44C2D3540BE9D23C5E03) )
+ ROM_LOAD( "ramsnoop.3", 0x2000, 0x1000, CRC(812691A0) SHA1(8FF6D1C2697732C0466BCB37A7F36392980B4A99) )
+ ROM_LOAD( "ramsnoop.4", 0x3000, 0x1000, CRC(9E7849E3) SHA1(8C574E42BFFC6B88D5B5DF3C6655F792B2FF5C5C) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8C3E6DE6) SHA1(FED6E9A2B210B07E7189A18574F6B8C4EC5BB49B) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368CB165) SHA1(387010A0C76319A1EAB61B54C9BCB5C66C4B67A1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5C281D01) SHA1(5E8B472B615F12EFCA3FE792410C23619F067845) )
+ ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615AF909) SHA1(FD6A1DDE780B39AEA76BF1C4BEFA5882573C2EF4) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( sueworlb )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "sueworlb.4", 0x3000, 0x1000, CRC(edc5ad28) SHA1(b1b95ed715a935fe3bf68c71cb4ac66402c17e79) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "sueworld.5e", 0x0000, 0x1000, CRC(6c975345) SHA1(8c294a14c3a2b390c85d75d61453e73ee8721058) )
+ ROM_LOAD( "sueworld.5f", 0x1000, 0x1000, CRC(2c809842) SHA1(4325af0b41b67ce3783b667506b60d0221c6ac45) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( sueworld )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "sueworld.4", 0x3000, 0x1000, CRC(677adea7) SHA1(b258e748e47cb8ae77594728f1ccc97a429a411e) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "sueworld.5e", 0x0000, 0x1000, CRC(6c975345) SHA1(8c294a14c3a2b390c85d75d61453e73ee8721058) )
+ ROM_LOAD( "sueworld.5f", 0x1000, 0x1000, CRC(2c809842) SHA1(4325af0b41b67ce3783b667506b60d0221c6ac45) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( superp4g )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "superp4g.1", 0x0000, 0x1000, CRC(f88c992f) SHA1(b6e2ec74dcc87aa097b6360f9fd19cfb11227efb) )
+ ROM_LOAD( "superp4g.2", 0x1000, 0x1000, CRC(e6886710) SHA1(63207a2487a334e8de51ccede03b6d50e84e071a) )
+ ROM_LOAD( "superp4g.3", 0x2000, 0x1000, CRC(c76dd2e6) SHA1(3172733cab013945de5f1c79e0a829cacad224ab) )
+ ROM_LOAD( "superp4g.4", 0x3000, 0x1000, CRC(ba5b054e) SHA1(b7bb14167167c59ab9035539d5cf6338a10f00e0) )
+ ROM_LOAD( "superp4g.5", 0x8000, 0x1000, CRC(c701506b) SHA1(31c96d13f290248c63143e22b052adb698a45687) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "superp4g.5e", 0x0000, 0x1000, CRC(593576fe) SHA1(238006f0d4fe6d478521a8d116f8d0679b502f6d) )
+ ROM_LOAD( "superp4g.5f", 0x1000, 0x1000, CRC(e64e0f6d) SHA1(b87405ef0f90fc0a3afda1a4265ba6b0a074a21d) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( superp4m )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "superp4m.1", 0x0000, 0x1000, CRC(9caaac56) SHA1(8858e4e9d7e3b9a1cd55f6bff1b9766b13fd9b8b) )
+ ROM_LOAD( "superp4g.2", 0x1000, 0x1000, CRC(e6886710) SHA1(63207a2487a334e8de51ccede03b6d50e84e071a) )
+ ROM_LOAD( "superp4g.3", 0x2000, 0x1000, CRC(c76dd2e6) SHA1(3172733cab013945de5f1c79e0a829cacad224ab) )
+ ROM_LOAD( "superp4g.4", 0x3000, 0x1000, CRC(ba5b054e) SHA1(b7bb14167167c59ab9035539d5cf6338a10f00e0) )
+ ROM_LOAD( "superp4m.5", 0x8000, 0x1000, CRC(c4b3240c) SHA1(7839463d69c24d15ac4c4de199f2ba6ce1cfaad7) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "superp4g.5e", 0x0000, 0x1000, CRC(593576fe) SHA1(238006f0d4fe6d478521a8d116f8d0679b502f6d) )
+ ROM_LOAD( "superp4m.5f", 0x1000, 0x1000, CRC(9142e698) SHA1(229cc0f45ef4dcc60f1e449d24881a0a13720972) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( supmspac )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "supmspac.2", 0x1000, 0x1000, CRC(f2110c60) SHA1(bfe4ba9bad0b3da44c36fa6735fdb38ba15a29ed) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "supmspac.4", 0x3000, 0x1000, CRC(0fe16984) SHA1(da77c5f04691d2679a53eb012542890c78f76683) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "mspacde.6a", 0x9000, 0x0800, CRC(286041cf) SHA1(5a5fc97ea66a59895b3403b2982940b755076667) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "mspacit.5e", 0x0000, 0x0800, CRC(93933d1d) SHA1(fa38d2cb87e872bb9a3158a4df98f38360dc85ec) )
+ ROM_LOAD( "mspacit.5h", 0x0800, 0x0800, CRC(7409fbec) SHA1(f440f08ba026ae6172666e1bdc0894ce33bba420) )
+ ROM_LOAD( "mspacit.5f", 0x1000, 0x0800, CRC(22b0188a) SHA1(a9ed9ca8b36a60081fd364abc9bc23963932cc0b) )
+ ROM_LOAD( "mspacit.5j", 0x1800, 0x0800, CRC(50c7477d) SHA1(c04ec282a8cb528df5e38ad750d12ee71612695d) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( vectratk )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "mspacatk.2", 0x1000, 0x1000, CRC(0af09d31) SHA1(6ff73e4da4910bcd2ca3aa299d8ffad23f8abf79) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "mspacatk.5", 0x8000, 0x1000, CRC(e6e06954) SHA1(ee5b266b1cc178df31fc1da5f66ef4911c653dda) )
+ ROM_LOAD( "mspacatk.6", 0x9000, 0x1000, CRC(3b5db308) SHA1(c1ba630cb8fb665c4881a6cce9d3b0d4300bd0eb) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "msvectr.5e", 0x0000, 0x1000, CRC(56560aef) SHA1(1eac2b242328ec4d6ba9faac2fd972c8cb6c3e55) )
+ ROM_LOAD( "msvectr.5f", 0x1000, 0x1000, CRC(57cb31e3) SHA1(dc9278cee7f7ce341087760654bf0a1bcdeb2f7c) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( womanp5 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "womanp5.1", 0x0000, 0x1000, CRC(0afeef14) SHA1(39d7d8ce9ba3c166c0bef7f46e71520d50e00c32) )
+ ROM_LOAD( "superp4g.2", 0x1000, 0x1000, CRC(e6886710) SHA1(63207a2487a334e8de51ccede03b6d50e84e071a) )
+ ROM_LOAD( "womanp5.3", 0x2000, 0x1000, CRC(835ebcc2) SHA1(951ec2e88f4d47b0dcdcac28f964860ea21a5726) )
+ ROM_LOAD( "womanp5.4", 0x3000, 0x1000, CRC(b85c5572) SHA1(9eb397b24a783292d9a5ce9b866b19e9fdf2d1f8) )
+ ROM_LOAD( "womanp5.5", 0x8000, 0x1000, CRC(ce7459ac) SHA1(16df266e465d6673448f85e8834c4f0031ede671) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "womanp5.5e", 0x0000, 0x1000, CRC(83613632) SHA1(1a47ef4d336baa3ba63cf0aceededec4bea35aaa) )
+ ROM_LOAD( "womanp5.5f", 0x1000, 0x1000, CRC(f2c4195e) SHA1(54446e6d1b74623410b67d303c3ab8eaee69f392) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( zolaad )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "zolapac1.bin", 0x0000, 0x4000, CRC(1aa2f312) SHA1(7b9685355e398c97de6972ec947fb11ca627a4d3) )
+ ROM_LOAD( "zolapac2.bin", 0x8000, 0x2000, CRC(420ff603) SHA1(a314c28ec5c526da91535fd47f51c95539a2e8e8) )
+
+ ROM_REGION( 0x2000, "gfx1" , 0 )
+ ROM_LOAD( "msatkad.5e", 0x0000, 0x1000, CRC(dc70ed2e) SHA1(b9fbb1d21085bc78eb82c429506b20e332b18e0e) )
+ ROM_LOAD( "msatkad.5f", 0x1000, 0x1000, CRC(643d5523) SHA1(565f92294a4b6a11dc5e9a165f35284c2a526e6c) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( zolaatk )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "zolaatk.1", 0x0000, 0x1000, CRC(2b9e9433) SHA1(5ab15ad04b8fe1711c0ace0471ac3594382a9fb3) )
+ ROM_LOAD( "zolaatk.2", 0x1000, 0x1000, CRC(0c8631d1) SHA1(09739200c90979550ae4ef14d27583aac50fd724) )
+ ROM_LOAD( "zolaatk.3", 0x2000, 0x1000, CRC(694450a3) SHA1(fcaa1e3ee993c2f563721336c59cac8af30bcc15) )
+ ROM_LOAD( "zolaatk.4", 0x3000, 0x1000, CRC(b5b30242) SHA1(b0b2044bcc26a1f9aee41c81367995b67ccd5edb) )
+ ROM_LOAD( "zolaatk.5", 0x8000, 0x1000, CRC(24cb5d9b) SHA1(1439ba665b00e840838e5f12df7d44a022541ef4) )
+ ROM_LOAD( "zolaatk.6", 0x9000, 0x1000, CRC(e0c03b4e) SHA1(3ef3decf7725a3ddb996c8268d4a83cbf5edd6b4) )
+
+ ROM_REGION( 0x2000, "gfx1" , 0 )
+ ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) )
+ ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( zolamaze )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "zolamaze.5", 0x8000, 0x1000, CRC(f8ed55bb) SHA1(14c5b4adbf301dcaea2c59488f39eec08177f63f) )
+ ROM_LOAD( "zolamaze.6", 0x9000, 0x1000, CRC(17e35c00) SHA1(f9f0ea4f462de298b704c2ddd53fef1219dae145) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) )
+ ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( zolapac )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "zolapac1.bin", 0x0000, 0x4000, CRC(1aa2f312) SHA1(7b9685355e398c97de6972ec947fb11ca627a4d3) )
+ ROM_LOAD( "zolapac2.bin", 0x8000, 0x2000, CRC(420ff603) SHA1(a314c28ec5c526da91535fd47f51c95539a2e8e8) )
+
+ ROM_REGION( 0x2000, "gfx1" , 0 )
+ ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) )
+ ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( zolaslow )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "zolaatk.1", 0x0000, 0x1000, CRC(2b9e9433) SHA1(5ab15ad04b8fe1711c0ace0471ac3594382a9fb3) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "zolaatk.3", 0x2000, 0x1000, CRC(694450a3) SHA1(fcaa1e3ee993c2f563721336c59cac8af30bcc15) )
+ ROM_LOAD( "zolaatk.4", 0x3000, 0x1000, CRC(b5b30242) SHA1(b0b2044bcc26a1f9aee41c81367995b67ccd5edb) )
+ ROM_LOAD( "zolaslow.5", 0x8000, 0x1000, CRC(092292f1) SHA1(156ca674c09abe348691585fb14d16d32488d50d) )
+ ROM_LOAD( "zolaslow.6", 0x9000, 0x1000, CRC(52209eee) SHA1(91967cac6b327af24891e953df1c6900764ea09a) )
+
+ ROM_REGION( 0x2000, "gfx1" , 0 )
+ ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) )
+ ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( zolatunl )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "zolaatk.1", 0x0000, 0x1000, CRC(2b9e9433) SHA1(5ab15ad04b8fe1711c0ace0471ac3594382a9fb3) )
+ ROM_LOAD( "zolaatk.2", 0x1000, 0x1000, CRC(0c8631d1) SHA1(09739200c90979550ae4ef14d27583aac50fd724) )
+ ROM_LOAD( "zolaatk.3", 0x2000, 0x1000, CRC(694450a3) SHA1(fcaa1e3ee993c2f563721336c59cac8af30bcc15) )
+ ROM_LOAD( "zolaatk.4", 0x3000, 0x1000, CRC(b5b30242) SHA1(b0b2044bcc26a1f9aee41c81367995b67ccd5edb) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "zolaslow.6", 0x9000, 0x1000, CRC(52209eee) SHA1(91967cac6b327af24891e953df1c6900764ea09a) )
+
+ ROM_REGION( 0x2000, "gfx1" , 0 )
+ ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) )
+ ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( zolavect )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "zolapac1.bin", 0x0000, 0x4000, CRC(1aa2f312) SHA1(7b9685355e398c97de6972ec947fb11ca627a4d3) )
+ ROM_LOAD( "zolapac2.bin", 0x8000, 0x2000, CRC(420ff603) SHA1(a314c28ec5c526da91535fd47f51c95539a2e8e8) )
+
+ ROM_REGION( 0x2000, "gfx1" , 0 )
+ ROM_LOAD( "msvectr.5e", 0x0000, 0x1000, CRC(56560aef) SHA1(1eac2b242328ec4d6ba9faac2fd972c8cb6c3e55) )
+ ROM_LOAD( "msvectr.5f", 0x1000, 0x1000, CRC(57cb31e3) SHA1(dc9278cee7f7ce341087760654bf0a1bcdeb2f7c) )
+
+ PACMAN_PROMS
+ROM_END
+
+/*************************************
+ *
+ * Game drivers
+ *
+ *************************************/
+
+/* MAME */
+
+/* rom parent machine inp init */
+GAME( 1981, mspacman, 0, mspacman, mspacpls, pacman_state, mspacman, ROT90, "Midway", "Ms. Pacman", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, mspacmat, mspacman, mspacman, mspacman, pacman_state, mspacman, ROT90, "hack", "Ms. Pac Attack", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, mspacmab, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "bootleg", "Ms. Pacman (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, mspacmbe, mspacman, woodpek, mspacman, pacman_state, mspacmbe, ROT90, "bootleg", "Ms. Pacman (bootleg, (encrypted))", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, mspacmnf, mspacman, mspacman, mspacman, pacman_state, mspacman, ROT90, "Midway", "Ms. Pacman (with speedup hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, mspacpls, mspacman, woodpek, mspacpls, driver_device, 0, ROT90, "hack", "Ms. Pacman Plus", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, pacgal, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "hack", "Pac-Gal", MACHINE_SUPPORTS_SAVE )
+
+/* Dave Widel's Games - http://www.widel.com */
+
+GAME( 2003, mrmrspac, mspacman, widel, mspacpls, driver_device, 0, ROT90, "David Widel", "Mr and Mrs Pacman (MR MRS PAC-MAN)[c]", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, mspachi, mspacman, mspachi, mspacpls, driver_device, 0, ROT90, "David Widel", "Ms. Pacman[h]", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pacatk, mspacman, mspacman, mspacpls, pacman_state, mspacman, ROT90, "David Widel", "Ms. Pacman Plus (Fruit)", MACHINE_SUPPORTS_SAVE )
+
+/* Blue Justice's Hacks */
+
+GAME( 2001, ms1000, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Blue Justice", "Ms. Pacman 1000 (MS PAC-MAN 1000)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, ms2000, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Blue Justice", "Ms. Pacman 2000 (MS PAC-MAN 2000)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, ms3000, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Blue Justice", "Ms. Pacman 3000 (MS PAC-MAN 3000)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, ms4000p, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Blue Justice", "Ms. Pacman 4000 Plus (MSPAC-MAN 4000PLUS)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, ms5000, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Blue Justice", "Ms. Pacman 5000 (MS PAC-MAN 5000)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, ms5000p, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Blue Justice", "Ms. Pacman 5000 Plus (MSPAC-MAN 5000PLUS)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, mscrzyma, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Blue Justice", "Ms. Pacman Crazy Mazes (MS PAC CRAZY MAZES)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, mscrzymp, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Blue Justice", "Ms. Pacman Crazy Mazes Plus (MS PAC-MAN CRAZYPLUS)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, msextra, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Blue Justice", "Ms. Pacman Extra (MS PAC-MAN EXTRA)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, msextrap, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Blue Justice", "Ms. Pacman Extra Plus (MS PAC-MAN EXTRAPLUS)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, msmspac, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Blue Justice", "Ms. Pacman Ms. Pac (MS PAC-MAN MS PAC)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, mspacdel, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Blue Justice", "Ms. Pacman Deluxe (MS PAC-MAN DELUXE)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, mspamsba, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Blue Justice", "Ms. Pacman Ms. Babies (MS PAC-MAN MS BABIES)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, mspacp, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Blue Justice", "Ms. Pacman Plus (MS PAC-MAN PLUS)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, msplus, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Blue Justice", "Ms. Pacman Ms Plus (MS PAC-MAN MS PLUS)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, msstrmaz, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Blue Justice", "Ms. Pacman Strange Mazes (MS PAC STRANGE MAZES)", MACHINE_SUPPORTS_SAVE )
+
+/* T-Bone Hacks */
+
+GAME( 2000, ms2600, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "T-Bone", "Ms. Pacman 2600", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, msbaby, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "T-Bone", "Ms. Baby Pacman", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, msmini, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "T-Bone", "Ms. Pac-Mini", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, msminia, mspacman, woodpek, mspacpls, driver_device, 0, ROT90, "T-Bone", "Ms. Pac-Attack Mini [c]", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, msnes4a, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "T-Bone", "Ms. Pacman SNES (Tall Alternate)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, msnes62, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "T-Bone", "Ms. Pacman NES (Set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, msnes63, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "T-Bone", "Ms. Pacman NES (Set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, msnes6m, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "T-Bone", "Ms. Pacman NES (6 maps)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, msnes6m2, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "T-Bone", "Ms. Pacman SNES (New Mazes)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, msnes6m3, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "T-Bone", "Ms. Pacman SNES (Regular / Tall)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, msnes6m4, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "T-Bone", "Ms. Pacman SNES (Regular)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, mspacnes, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "T-Bone", "Ms. Pacman NES", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mspacren, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "T-Bone", "Ms. Pacman Renaissance", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mspc6mad, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "T-Bone", "Ms. Pacman After Dark (6 Mazes)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, msvctr6m, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "T-Bone", "Vector Ms. Pacman (6 Mazes)", MACHINE_SUPPORTS_SAVE )
+
+/* Jerronimo's Progs - www.umlautllama.com */
+
+GAME( 2004, horizpab, mspacman, woodpek, mspacman, driver_device, 0, ROT0, "Scott Lawrence", "Horiz Pac (v1.0)", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, horizpac, mspacman, woodpek, mspacman, driver_device, 0, ROT0, "Scott Lawrence", "Horiz Pac", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, pacgent, mspacman, woodpek, mspacpls, driver_device, 0, ROT90, "Scott Lawrence", "Pac Gentleman [f]", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, ramsnoop, mspacman, woodpek, mspacpls, driver_device, 0, ROT90, "Scott Lawrence", "Miss Snoop v1.3 [f]", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, ottop1, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Scott Lawrence", "Otto Project P1", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, ottop2, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Scott Lawrence", "Otto Project P2", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, ottop3, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Scott Lawrence", "Otto Project P3", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, ottopz, mspacman, woodpek, mspacpls, driver_device, 0, ROT90, "Scott Lawrence", "Otto Project PZ", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, superp4g, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Scott Lawrence", "Otto Project P4G", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, superp4m, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Scott Lawrence", "Otto Project P4M", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, womanp5, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Scott Lawrence", "Otto Project P5", MACHINE_SUPPORTS_SAVE )
+
+/* Grendal74's Hacks */
+
+GAME( 2001, msdroid, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Grendal74", "Ms. Pacman Android", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, msgrkatk, mspacman, woodpek, mspacpls, driver_device, 0, ROT90, "Grendal74", "Ms. Pac Attack Greek [c]", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, msgrkb, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Grendal74", "Ms. Pacman Greek", MACHINE_SUPPORTS_SAVE )
+
+/* Medragon's Hacks */
+
+GAME( 2000, mrpacman, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Tim Appleton", "Mr. Pacman - Another Kind of Role Reversal", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mspacfnt, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Tim Appleton", "Ms. Pacman with Pacman font", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mspacwf, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Tim Appleton", "Ms Weird Fruit Pac", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, msrumble, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Tim Appleton", "Ms. Pac Rumble", MACHINE_SUPPORTS_SAVE )
+
+/* Sil's Hacks */
+
+GAME( 2000, mselton, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Marcel Silvius", "Ms. Elton", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, msf1pac, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Marcel Silvius", "Ms. F1 Pacman", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, msindy, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Marcel Silvius", "Ms. Indy", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, mspac6m, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Marcel Silvius", "Ms. Pacman 6M (Six Maze)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, mspac6m2, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Marcel Silvius", "Ms. Pacman 6M (Six Maze) (Set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mspacad, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Marcel Silvius", "Ms. Pacman After Dark", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mspacat2, mspacman, woodpek, mspacpls, driver_device, 0, ROT90, "Marcel Silvius", "Ms. Pacman Plus / Attack [c]", MACHINE_SUPPORTS_SAVE )
+
+/* Bobby Tribble's Hacks */
+
+GAME( 2000, msberzk, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Bobby Tribble", "Ms. Pacman Berzerk", MACHINE_SUPPORTS_SAVE )
+
+/* Hires hacks */
+
+GAME( 1981, mspacatx, mspacmnx, mspacmnx, mspacpls, pacman_state, mspacman, ROT90, "hack", "Ms. Pac Attack (hires hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, mspacmbx, mspacmnx, woodpekx, mspacman, driver_device, 0, ROT90, "bootleg", "Ms. Pac-Man (bootleg) (hires hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, mspacmfx, mspacmnx, mspacmnx, mspacpls, pacman_state, mspacman, ROT90, "Midway", "Ms. Pac-Man (hires hack) [f]", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, mspacmnx, 0, mspacmnx, mspacpls, pacman_state, mspacman, ROT90, "Midway", "Ms. Pac-Man (hires hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, mspacplx, mspacmnx, woodpekx, mspacpls, driver_device, 0, ROT90, "hack", "Ms. Pac-Man Plus (hires hack) [c]", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, pacgalx, mspacmnx, woodpekx, mspacman, driver_device, 0, ROT90, "hack", "Pac-Gal (hires hack)", MACHINE_SUPPORTS_SAVE )
+
+/* Misc MsPacman Hacks */
+
+GAME( 2000, chtmsatk, mspacman, woodpek, mspacpls, driver_device, 0, ROT90, "[Midway]", "Ms. Pacman Plus [c]", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, chtmspa, mspacman, woodpek, mspacpls, driver_device, 0, ROT90, "[Midway]", "Ms. Pacman [c]", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, cookiem, mspacman, woodpek, mspacpls, driver_device, 0, ROT90, "Nic", "Cookie-Mon! [c]", MACHINE_SUPPORTS_SAVE )
+GAME( 2008, cottoh, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Gatinho", "Crazy Otto simulation", MACHINE_SUPPORTS_SAVE )
+GAME( 2010, cottoh2, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Gatinho", "Crazy Otto simulation Ver 2", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, fasthear, mspacman, woodpek, mspacpls, driver_device, 0, ROT90, "PacHack", "Ms. Heart Burn [f]", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, fastmspa, mspacman, woodpek, mspacpls, driver_device, 0, ROT90, "[Midway]", "Ms. Pacman [f]", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, faststrm, mspacman, woodpek, mspacpls, driver_device, 0, ROT90, "[Midway]", "Ms. Desert Storm [f]", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, fstmsatk, mspacman, woodpek, mspacpls, driver_device, 0, ROT90, "[Midway]", "Ms. Pacman Attack [f]", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, heartbn2, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "PacHack", "Ms. Heart Burn", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, heartbrn, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "TwoBit Score", "Ms. Heart Burn (set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, msatk2ad, mspacman, woodpek, mspacpls, driver_device, 0, ROT90, "[Midway]", "Ms. Pacman Plus / Attack After Dark [c]", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, msatkad, mspacman, woodpek, mspacpls, driver_device, 0, ROT90, "[Midway]", "Ms. Pacman Plus After Dark [c]", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, msdstorm, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Mike Naylor", "Ms. Desert Storm", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mshangly, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "[Midway]", "Ms. Hangly Man", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, msheartb, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "[Midway]", "Ms. Pacman Hearts (set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mshearts, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "[Midway]", "Ms. Pacman Hearts", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, mspac1, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "[Midway]", "Ms. Pacman (single rom set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mspacatb, mspacman, woodpek, mspacpls, driver_device, 0, ROT90, "[Midway]", "Ms. Pacman Plus (Set B) [c]", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, mspacde, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "[Midway]", "Ms. Pacman -1", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, mspacii, mspacman, mspacii, mspacman, driver_device, 0, ROT90, "Orca", "Ms. Pacman II", MACHINE_SUPPORTS_SAVE )
+GAME( 1983, mspacit, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "[Midway]", "Ms. Pacman -2", MACHINE_SUPPORTS_SAVE )
+GAME( 1983, mspacit2, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "[Midway]", "Ms. Pacman -3", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, mspacj, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "[Midway]", "Ms. Pacman (Jamma? Bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, mspacmap, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Don Hodges", "Ms. Pacman (patched)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mspacmbg, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "[Midway]", "Ms. Pacman (single rom)", MACHINE_SUPPORTS_SAVE )
+GAME( 2006, mspacpbl, mspacman, woodpek, mspacpls, driver_device, 0, ROT90, "Dav/PMP", "Ms. Pac Plus (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mspacrip, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "R3mer", "Ms. Pac-Mortem", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mspacsup, mspacman, woodpek, mspacpls, driver_device, 0, ROT90, "[Midway]", "Super Ms. Pac-Man", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mssilad, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "[Midway]", "Ms. Pacman After Dark (Sil)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, msultra, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "PacFan", "Ms. Ultra Pacman", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, msvectr, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "[Midway]", "Vector Ms. Pacman", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, msyakman, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Jeff Minter", "Ms. Yak Man", MACHINE_SUPPORTS_SAVE )
+GAME( 1982, pacgalu, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Uchida", "Pac-Gal (Hearts)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, petshop, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "Weirdness Inc", "Pet Shop Freak-Out!", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, piranha2, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "US Billiards", "Piranha 2 Revenge!", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, sueworld, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "PacFay", "Sue's World", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, sueworlb, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "PacFay", "Sue's World (Old)", MACHINE_SUPPORTS_SAVE )
+GAME( 19??, supmspac, mspacman, woodpek, mspacpls, driver_device, 0, ROT90, "Spedic Vending", "Super Ms Pac-man [f]", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, vectratk, mspacman, woodpek, mspacpls, driver_device, 0, ROT90, "[Midway]", "Vector Attack [c]", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, zolaad, mspacman, zolapac, mspacman, driver_device, 0, ROT90, "Tqwn Amusement", "Super Zola Pac Gal After Dark", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, zolaatk, mspacman, zolapac, mspacman, driver_device, 0, ROT90, "Tqwn Amusement", "Super Zola Pac Gal Attack", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, zolamaze, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "[Midway]", "Ms. Pacman No Exit", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, zolapac, mspacman, zolapac, mspacman, driver_device, 0, ROT90, "Tqwn Amusement", "Super Zola Pac Gal", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, zolaslow, mspacman, zolapac, mspacman, driver_device, 0, ROT90, "Tqwn Amusement", "Super Zola Pac Gal (Slow)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, zolatunl, mspacman, zolapac, mspacman, driver_device, 0, ROT90, "Tqwn Amusement", "Super Zola Pac Gal (Tunnels)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, zolavect, mspacman, zolapac, mspacman, driver_device, 0, ROT90, "Tqwn Amusement", "Vector Super Zola Pac Gal", MACHINE_SUPPORTS_SAVE )
+
diff --git a/docs/release/src/hbmame/drivers/multipac.cpp b/docs/release/src/hbmame/drivers/multipac.cpp
new file mode 100644
index 00000000000..c19359b3989
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/multipac.cpp
@@ -0,0 +1,1940 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+/**********************************************
+ Multi-game systems on pacman hardware
+ by Robbbert 2007-2013
+
+ Game choice is done via a menu
+**********************************************/
+
+WRITE8_MEMBER( pacman_state::m96in1_rombank_w )
+{
+ data &= 0x0f;
+ membank("bank1")->set_entry(data);
+ membank("bank2")->set_entry(data);
+ multipac_gfxbank_w( space, 0, data );
+}
+
+WRITE8_MEMBER( pacman_state::m96in1b_rombank_w )
+{
+ data &= 0x1f; /* config screen outputs some large values such as 197, 200 */
+ membank("bank1")->set_entry(data);
+ membank("bank2")->set_entry(data);
+ m96in1b_gfxbank_w( data );
+}
+
+WRITE8_MEMBER( pacman_state::hackypac_rombank_w )
+{
+ uint8_t banks[] = { 0, 0, 0, 0, 0, 0, 4, 0, 7, 0, 0, 0, 8, 6, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 5, 3 };
+ data &= 0x1f; /* strip extra bits when option selected */
+ membank("bank1")->set_entry(data);
+ membank("bank2")->set_entry(data);
+ multipac_palbank_w( space, 1, banks[data] ); /* convert to a palette bank and switch to it */
+}
+
+WRITE8_MEMBER( pacman_state::madpac_rombank_w )
+{
+ data &= 0x1f; /* config screen outputs some large values such as 197, 200 */
+ membank("bank1")->set_entry(data);
+ membank("bank2")->set_entry(data);
+ madpac_gfxbank_w( data );
+}
+
+WRITE8_MEMBER( pacman_state::multipac_rombank_w )
+{
+ uint8_t temp = ((data & 0x0f) << 1) + ((data & 0x10) >> 4); /* rearrange bits */
+ membank("bank1")->set_entry(temp); /* select rom bank */
+ if (!m_maincpu->space(AS_PROGRAM).read_byte(0xa007))
+ membank("bank2")->set_entry(temp << 1); /* Ms Pacman needs more roms */
+ m_maincpu->set_pc(0); /* Set PC <- 0000 needed for Lizard Wizard */
+}
+
+WRITE8_MEMBER( pacman_state::pm4n1_rombank_w )
+{
+ static uint8_t pm4n1_temp = 0;
+ uint8_t banks[] = { 0, 4, 2, 0, 1, 0, 3, 0 };
+ pm4n1_temp &= (7 - (1<<offset));
+ pm4n1_temp |= (data&1)<<offset;
+ membank("bank1")->set_entry(banks[pm4n1_temp]);
+ membank("bank2")->set_entry(banks[pm4n1_temp]);
+ multipac_gfxbank_w( space, 0, banks[pm4n1_temp] );
+}
+
+WRITE8_MEMBER( pacman_state::pm4n1d_rombank_w )
+{
+ if (offset==1)
+ {
+ membank("bank1")->set_entry(data);
+ membank("bank2")->set_entry(data);
+ multipac_gfxbank_w( space, 0, data<<1 );
+ }
+}
+
+WRITE8_MEMBER( pacman_state::superabc_rombank_w )
+{
+ data = data >> 4;
+ membank("bank1")->set_entry(data);
+ membank("bank2")->set_entry(data);
+ membank("bank3")->set_entry(data);
+ multipac_gfxbank_w( space, 0, data );
+}
+
+
+/*************************************
+ *
+ * Machine init
+ *
+ *************************************/
+
+MACHINE_RESET_MEMBER( pacman_state, 96in1 )
+{
+ address_space &space = m_maincpu->space(AS_PROGRAM);
+ m96in1_rombank_w( space, 0,0 );
+ m_namco_sound->pacman_sound_enable_w(space, 0, 0);
+}
+
+MACHINE_RESET_MEMBER( pacman_state, hackypac )
+{
+ address_space &space = m_maincpu->space(AS_PROGRAM);
+ multipac_gfxbank_w( space, 0,0 );
+ hackypac_rombank_w( space, 0,0 );
+ m_namco_sound->pacman_sound_enable_w(space, 0, 0);
+}
+
+MACHINE_RESET_MEMBER( pacman_state, madpac )
+{
+ address_space &space = m_maincpu->space(AS_PROGRAM);
+ madpac_rombank_w( space, 0,0 );
+ m_namco_sound->pacman_sound_enable_w(space, 0, 0);
+}
+
+MACHINE_RESET_MEMBER( pacman_state, mschamp )
+{
+ uint8_t *rom = memregion("maincpu")->base() + 0x10000;
+ uint8_t data = ioport("GAME")->read() & 1;
+
+ membank("bank1")->configure_entries(0, 2, &rom[0x0000], 0x8000);
+ membank("bank2")->configure_entries(0, 2, &rom[0x4000], 0x8000);
+
+ membank("bank1")->set_entry(data);
+ membank("bank2")->set_entry(data);
+}
+
+MACHINE_RESET_MEMBER( pacman_state, multipac )
+{
+ address_space &space = m_maincpu->space(AS_PROGRAM);
+ multipac_rombank_w( space, 0, 0);
+ multipac_gfxbank_w( space, 0, 0);
+ multipac_palbank_w( space, 0, 0);
+ m_namco_sound->pacman_sound_enable_w(space, 0, 0);
+}
+
+static uint8_t curr_bank = 0;
+
+/* select next game when F3 pressed */
+MACHINE_RESET_MEMBER( pacman_state, mspaceur )
+{
+ membank("bank2")->set_entry(curr_bank);
+ curr_bank ^= 1; /* toggle between 0 and 1 */
+}
+
+MACHINE_RESET_MEMBER( pacman_state, pm4n1 )
+{
+ address_space &space = m_maincpu->space(AS_PROGRAM);
+ pm4n1_rombank_w(space, 0, 0);
+ pm4n1_rombank_w(space, 1, 0);
+ pm4n1_rombank_w(space, 2, 0);
+ m_namco_sound->pacman_sound_enable_w(space, 0, 0);
+}
+
+
+
+static ADDRESS_MAP_START( 96in1_writeport, AS_IO, 8, pacman_state )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
+ AM_RANGE(0x00, 0x00) AM_WRITE(pacman_interrupt_vector_w)
+ AM_RANGE(0x01, 0x01) AM_WRITE(m96in1_rombank_w)
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( 96in1b_writeport, AS_IO, 8, pacman_state )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
+ AM_RANGE(0x00, 0x00) AM_WRITE(pacman_interrupt_vector_w)
+ AM_RANGE(0x01, 0x01) AM_WRITE(m96in1b_rombank_w)
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( hackypac_map, AS_PROGRAM, 8, pacman_state )
+ AM_RANGE(0x0000, 0x3fff) AM_ROMBANK("bank1")
+ AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0x8000) AM_RAM_WRITE(pacman_videoram_w) AM_SHARE("videoram")
+ AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0x8000) AM_RAM_WRITE(pacman_colorram_w) AM_SHARE("colorram")
+ AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0x8000) AM_READ(pacman_read_nop) AM_WRITENOP
+ AM_RANGE(0x4c00, 0x4fef) AM_MIRROR(0x8000) AM_RAM
+ AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0x8000) AM_RAM AM_SHARE("spriteram")
+ AM_RANGE(0x5000, 0x5000) AM_WRITE(irq_mask_w)
+ AM_RANGE(0x5001, 0x5001) AM_DEVWRITE("namco", namco_device, pacman_sound_enable_w)
+ AM_RANGE(0x5002, 0x5002) AM_WRITENOP
+ AM_RANGE(0x5003, 0x5003) AM_WRITE(pacman_flipscreen_w)
+ AM_RANGE(0x5004, 0x5005) AM_WRITE(pacman_leds_w)
+ AM_RANGE(0x5006, 0x5006) AM_WRITENOP
+ AM_RANGE(0x5007, 0x5007) AM_WRITE(pacman_coin_counter_w)
+ AM_RANGE(0x5008, 0x503f) AM_WRITENOP
+ AM_RANGE(0x5040, 0x505f) AM_DEVWRITE("namco", namco_device, pacman_sound_w)
+ AM_RANGE(0x5060, 0x507f) AM_WRITEONLY AM_SHARE("spriteram2")
+ AM_RANGE(0x5080, 0x50bf) AM_WRITENOP
+ AM_RANGE(0x50c0, 0x50c0) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
+ AM_RANGE(0x5000, 0x5000) AM_READ_PORT("IN0")
+ AM_RANGE(0x5040, 0x5040) AM_READ_PORT("IN1")
+ AM_RANGE(0x5080, 0x5080) AM_READ_PORT("DSW1")
+ AM_RANGE(0x50c0, 0x50c0) AM_READ_PORT("DSW2")
+ AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank2")
+ AM_RANGE(0xfffc, 0xffff) AM_RAM
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( hackypac_writeport, AS_IO, 8, pacman_state )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
+ AM_RANGE(0x00, 0x00) AM_WRITE(pacman_interrupt_vector_w)
+ AM_RANGE(0x01, 0x01) AM_WRITE(hackypac_rombank_w)
+ AM_RANGE(0x02, 0x02) AM_WRITE(multipac_gfxbank_w)
+ AM_RANGE(0x04, 0x04) AM_WRITENOP /* colorbank select, not used due to a bug */
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( madpac_map, AS_PROGRAM, 8, pacman_state )
+ /* Mirrors in the 50xx range are needed by Zigzag */
+ AM_RANGE(0x0000, 0x3fff) AM_ROMBANK("bank1")
+ AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0x8000) AM_RAM_WRITE(pacman_videoram_w) AM_SHARE("videoram")
+ AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0x8000) AM_RAM_WRITE(pacman_colorram_w) AM_SHARE("colorram")
+ AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0x8000) AM_READ(pacman_read_nop)
+ AM_RANGE(0x4c00, 0x4fef) AM_MIRROR(0x8000) AM_RAM
+ AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0x8000) AM_RAM AM_SHARE("spriteram")
+ AM_RANGE(0x5000, 0x5000) AM_MIRROR(0x8000) AM_WRITE(irq_mask_w)
+ AM_RANGE(0x5001, 0x5001) AM_MIRROR(0x8000) AM_DEVWRITE("namco", namco_device, pacman_sound_enable_w)
+ AM_RANGE(0x5002, 0x5002) AM_WRITENOP
+ AM_RANGE(0x5003, 0x5003) AM_WRITE(pacman_flipscreen_w)
+ AM_RANGE(0x5004, 0x5005) AM_WRITE(pacman_leds_w)
+ AM_RANGE(0x5006, 0x5006) AM_WRITENOP // AM_WRITE(pacman_coin_lockout_global_w)
+ AM_RANGE(0x5007, 0x5007) AM_WRITE(pacman_coin_counter_w)
+ AM_RANGE(0x5008, 0x500f) AM_WRITENOP /* most pacman-type games write here */
+ AM_RANGE(0x5040, 0x505f) AM_DEVWRITE("namco", namco_device, pacman_sound_w)
+ AM_RANGE(0x5060, 0x507f) AM_WRITEONLY AM_SHARE("spriteram2")
+ AM_RANGE(0x50c0, 0x50c0) AM_MIRROR(0x8000) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
+ AM_RANGE(0x5000, 0x5000) AM_MIRROR(0x8000) AM_READ_PORT("IN0")
+ AM_RANGE(0x5040, 0x5040) AM_MIRROR(0x8000) AM_READ_PORT("IN1")
+ AM_RANGE(0x5080, 0x5080) AM_MIRROR(0x8000) AM_READ_PORT("DSW1")
+ AM_RANGE(0x50c0, 0x50c0) AM_MIRROR(0x8000) AM_READ_PORT("DSW2")
+ AM_RANGE(0x8000, 0xb7ff) AM_ROMBANK("bank2")
+ AM_RANGE(0xb800, 0xbfff) AM_RAM AM_SHARE("nvram")
+ AM_RANGE(0xf800, 0xffff) AM_RAM /* various games use this */
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( madpac_writeport, AS_IO, 8, pacman_state )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
+ AM_RANGE(0x00, 0x00) AM_WRITE(pacman_interrupt_vector_w)
+ AM_RANGE(0x01, 0x01) AM_WRITE(madpac_rombank_w)
+ADDRESS_MAP_END
+
+
+static ADDRESS_MAP_START( mspaceur_map, AS_PROGRAM, 8, pacman_state )
+ AM_RANGE(0x0000, 0x3fff) AM_ROM
+ AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0x8000) AM_RAM_WRITE(pacman_videoram_w) AM_SHARE("videoram")
+ AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0x8000) AM_RAM_WRITE(pacman_colorram_w) AM_SHARE("colorram")
+ AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0x8000) AM_READ(pacman_read_nop)
+ AM_RANGE(0x4c00, 0x4fef) AM_MIRROR(0x8000) AM_RAM
+ AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0x8000) AM_RAM AM_SHARE("spriteram")
+ AM_RANGE(0x5000, 0x5000) AM_WRITE(irq_mask_w)
+ AM_RANGE(0x5001, 0x5001) AM_DEVWRITE("namco", namco_device, pacman_sound_enable_w)
+ AM_RANGE(0x5002, 0x5002) AM_WRITENOP
+ AM_RANGE(0x5003, 0x5003) AM_WRITE(pacman_flipscreen_w)
+ AM_RANGE(0x5004, 0x5005) AM_WRITE(pacman_leds_w)
+ AM_RANGE(0x5006, 0x5006) AM_WRITENOP // AM_WRITE(pacman_coin_lockout_global_w)
+ AM_RANGE(0x5007, 0x5007) AM_WRITE(pacman_coin_counter_w)
+ AM_RANGE(0x5040, 0x505f) AM_DEVWRITE("namco", namco_device, pacman_sound_w)
+ AM_RANGE(0x5060, 0x506f) AM_WRITEONLY AM_SHARE("spriteram2")
+ AM_RANGE(0x5070, 0x507f) AM_WRITENOP
+ AM_RANGE(0x50c0, 0x50c0) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
+ AM_RANGE(0x5000, 0x5000) AM_READ_PORT("IN0")
+ AM_RANGE(0x5040, 0x5040) AM_READ_PORT("IN1")
+ AM_RANGE(0x5080, 0x5080) AM_READ_PORT("DSW1")
+ AM_RANGE(0x50c0, 0x50c0) AM_READ_PORT("DSW2")
+ AM_RANGE(0x8000, 0x9fff) AM_ROMBANK("bank2")
+ AM_RANGE(0xfffc, 0xffff) AM_RAM
+ADDRESS_MAP_END
+
+
+static ADDRESS_MAP_START( mschamp_map, AS_PROGRAM, 8, pacman_state )
+ AM_RANGE(0x0000, 0x3fff) AM_ROMBANK("bank1")
+ AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0x8000) AM_RAM_WRITE(pacman_videoram_w) AM_SHARE("videoram")
+ AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0x8000) AM_RAM_WRITE(pacman_colorram_w) AM_SHARE("colorram")
+ AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0x8000) AM_READ(pacman_read_nop)
+ AM_RANGE(0x4c00, 0x4fef) AM_MIRROR(0x8000) AM_RAM
+ AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0x8000) AM_RAM AM_SHARE("spriteram")
+ AM_RANGE(0x5000, 0x5000) AM_WRITE(irq_mask_w)
+ AM_RANGE(0x5001, 0x5001) AM_DEVWRITE("namco", namco_device, pacman_sound_enable_w)
+ AM_RANGE(0x5002, 0x5002) AM_WRITENOP
+ AM_RANGE(0x5003, 0x5003) AM_WRITE(pacman_flipscreen_w)
+ AM_RANGE(0x5004, 0x5005) AM_WRITE(pacman_leds_w)
+ AM_RANGE(0x5006, 0x5006) AM_WRITENOP // AM_WRITE(pacman_coin_lockout_global_w)
+ AM_RANGE(0x5007, 0x5007) AM_WRITE(pacman_coin_counter_w)
+ AM_RANGE(0x5040, 0x505f) AM_DEVWRITE("namco", namco_device, pacman_sound_w)
+ AM_RANGE(0x5060, 0x506f) AM_WRITEONLY AM_SHARE("spriteram2")
+ AM_RANGE(0x5070, 0x507f) AM_WRITENOP
+ AM_RANGE(0x50c0, 0x50c0) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
+ AM_RANGE(0x5000, 0x5000) AM_READ_PORT("IN0")
+ AM_RANGE(0x5040, 0x5040) AM_READ_PORT("IN1")
+ AM_RANGE(0x5080, 0x5080) AM_READ_PORT("DSW1")
+ AM_RANGE(0x50c0, 0x50c0) AM_READ_PORT("DSW2")
+ AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank2")
+ AM_RANGE(0xf270, 0xf270) AM_RAM
+ AM_RANGE(0xfffc, 0xffff) AM_RAM
+ADDRESS_MAP_END
+
+
+static ADDRESS_MAP_START( multipac_map, AS_PROGRAM, 8, pacman_state )
+ AM_RANGE(0x0000, 0x3fff) AM_ROMBANK("bank1")
+ AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0x8000) AM_RAM_WRITE(pacman_videoram_w) AM_SHARE("videoram")
+ AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0x8000) AM_RAM_WRITE(pacman_colorram_w) AM_SHARE("colorram")
+ AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0x8000) AM_READ(pacman_read_nop) AM_WRITENOP
+ AM_RANGE(0x4c00, 0x4fef) AM_MIRROR(0x8000) AM_RAM
+ AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0x8000) AM_RAM AM_SHARE("spriteram")
+ AM_RANGE(0x5000, 0x5000) AM_WRITE(irq_mask_w)
+ AM_RANGE(0x5001, 0x5001) AM_DEVWRITE("namco", namco_device, pacman_sound_enable_w)
+ AM_RANGE(0x5002, 0x5002) AM_WRITENOP
+ AM_RANGE(0x5003, 0x5003) AM_WRITE(pacman_flipscreen_w)
+ AM_RANGE(0x5004, 0x5005) AM_WRITE(pacman_leds_w)
+ AM_RANGE(0x5006, 0x5006) AM_WRITENOP /* AM_WRITE(pacman_coin_lockout_global_w) breaks eyes,lizwiz,crush */
+ AM_RANGE(0x5007, 0x5007) AM_WRITE(pacman_coin_counter_w)
+ AM_RANGE(0x5040, 0x505f) AM_DEVWRITE("namco", namco_device, pacman_sound_w)
+ AM_RANGE(0x5060, 0x506f) AM_WRITEONLY AM_SHARE("spriteram2")
+ AM_RANGE(0x5070, 0x507f) AM_WRITENOP
+ AM_RANGE(0x50c0, 0x50c0) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
+ AM_RANGE(0x5000, 0x5000) AM_READ_PORT("IN0")
+ AM_RANGE(0x5040, 0x5040) AM_READ_PORT("IN1")
+ AM_RANGE(0x5080, 0x5080) AM_READ_PORT("DSW1")
+ AM_RANGE(0x50c0, 0x50c0) AM_READ_PORT("DSW2")
+ AM_RANGE(0x8000, 0x9fff) AM_ROMBANK("bank2") /* Ms. Pacman */
+ AM_RANGE(0xa000, 0xa000) AM_WRITE(multipac_rombank_w)
+ AM_RANGE(0xa001, 0xa001) AM_WRITE(multipac_gfxbank_w)
+ AM_RANGE(0xa002, 0xa003) AM_WRITE(multipac_palbank_w)
+ AM_RANGE(0xa007, 0xa007) AM_RAM /* 0 = get ready to activate rombank(2) */
+ AM_RANGE(0xf000, 0xffff) AM_RAM
+ADDRESS_MAP_END
+
+
+static ADDRESS_MAP_START( pm4n1_map, AS_PROGRAM, 8, pacman_state )
+ AM_RANGE(0x0000, 0x3fff) AM_ROMBANK("bank1")
+ AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0x8000) AM_RAM_WRITE(pacman_videoram_w) AM_SHARE("videoram")
+ AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0x8000) AM_RAM_WRITE(pacman_colorram_w) AM_SHARE("colorram")
+ AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0x8000) AM_READ(pacman_read_nop) AM_WRITENOP
+ AM_RANGE(0x4c00, 0x4fef) AM_MIRROR(0x8000) AM_RAM
+ AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0x8000) AM_RAM AM_SHARE("spriteram")
+ AM_RANGE(0x5000, 0x5000) AM_WRITE(irq_mask_w)
+ AM_RANGE(0x5001, 0x5001) AM_DEVWRITE("namco", namco_device, pacman_sound_enable_w)
+ AM_RANGE(0x5002, 0x5002) AM_WRITENOP
+ AM_RANGE(0x5003, 0x5003) AM_WRITE(pacman_flipscreen_w)
+ AM_RANGE(0x5004, 0x5006) AM_WRITE(pm4n1_rombank_w)
+ AM_RANGE(0x5007, 0x5007) AM_WRITE(pacman_coin_counter_w)
+ AM_RANGE(0x5040, 0x505f) AM_DEVWRITE("namco", namco_device, pacman_sound_w)
+ AM_RANGE(0x5060, 0x506f) AM_WRITEONLY AM_SHARE("spriteram2")
+ AM_RANGE(0x5070, 0x507f) AM_WRITENOP
+ AM_RANGE(0x50c0, 0x50c1) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
+ AM_RANGE(0x5000, 0x5001) AM_READ_PORT("IN0")
+ AM_RANGE(0x5040, 0x5041) AM_READ_PORT("IN1")
+ AM_RANGE(0x5080, 0x5081) AM_READ_PORT("DSW1")
+ AM_RANGE(0x8000, 0x9fff) AM_ROMBANK("bank2") /* Ms. Pacman */
+ADDRESS_MAP_END
+
+
+static ADDRESS_MAP_START( pm4n1c_map, AS_PROGRAM, 8, pacman_state )
+ AM_RANGE(0x0000, 0x3fff) AM_ROMBANK("bank1")
+ AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0x8000) AM_RAM_WRITE(pacman_videoram_w) AM_SHARE("videoram")
+ AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0x8000) AM_RAM_WRITE(pacman_colorram_w) AM_SHARE("colorram")
+ AM_RANGE(0x4800, 0x4bff) AM_RAM AM_SHARE("nvram")
+ AM_RANGE(0x4c00, 0x4fef) AM_RAM
+ AM_RANGE(0x4ff0, 0x4fff) AM_RAM AM_SHARE("spriteram")
+ AM_RANGE(0x5000, 0x5000) AM_WRITE(irq_mask_w)
+ AM_RANGE(0x5001, 0x5001) AM_DEVWRITE("namco", namco_device, pacman_sound_enable_w)
+ AM_RANGE(0x5002, 0x5002) AM_WRITENOP
+ AM_RANGE(0x5003, 0x5003) AM_WRITE(pacman_flipscreen_w)
+ AM_RANGE(0x5004, 0x5006) AM_WRITE(pm4n1_rombank_w)
+ AM_RANGE(0x5007, 0x5007) AM_WRITE(pacman_coin_counter_w)
+ AM_RANGE(0x5040, 0x505f) AM_DEVWRITE("namco", namco_device, pacman_sound_w)
+ AM_RANGE(0x5060, 0x506f) AM_WRITEONLY AM_SHARE("spriteram2")
+ AM_RANGE(0x5070, 0x507f) AM_WRITENOP
+ AM_RANGE(0x50c0, 0x50c1) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
+ AM_RANGE(0x5000, 0x5001) AM_READ_PORT("IN0")
+ AM_RANGE(0x5040, 0x5041) AM_READ_PORT("IN1")
+ AM_RANGE(0x5080, 0x5081) AM_READ_PORT("DSW1")
+ AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank2")
+ AM_RANGE(0xe004, 0xe006) AM_WRITENOP // mirror of 5004-5006
+ADDRESS_MAP_END
+
+
+static ADDRESS_MAP_START( pm4n1d_map, AS_PROGRAM, 8, pacman_state )
+ AM_RANGE(0x0000, 0x3fff) AM_ROMBANK("bank1")
+ AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0x8000) AM_RAM_WRITE(pacman_videoram_w) AM_SHARE("videoram")
+ AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0x8000) AM_RAM_WRITE(pacman_colorram_w) AM_SHARE("colorram")
+ AM_RANGE(0x4800, 0x4bff) AM_RAM AM_SHARE("nvram")
+ AM_RANGE(0x4c00, 0x4fef) AM_RAM
+ AM_RANGE(0x4ff0, 0x4fff) AM_RAM AM_SHARE("spriteram")
+ AM_RANGE(0x5000, 0x5000) AM_WRITE(irq_mask_w)
+ AM_RANGE(0x5001, 0x5001) AM_DEVWRITE("namco", namco_device, pacman_sound_enable_w)
+ AM_RANGE(0x5002, 0x5002) AM_WRITENOP
+ AM_RANGE(0x5003, 0x5003) AM_WRITE(pacman_flipscreen_w)
+ AM_RANGE(0x5004, 0x5006) AM_WRITE(pm4n1d_rombank_w)
+ AM_RANGE(0x5007, 0x5007) AM_WRITE(pacman_coin_counter_w)
+ AM_RANGE(0x5040, 0x505f) AM_DEVWRITE("namco", namco_device, pacman_sound_w)
+ AM_RANGE(0x5060, 0x506f) AM_WRITEONLY AM_SHARE("spriteram2")
+ AM_RANGE(0x5070, 0x507f) AM_WRITENOP
+ AM_RANGE(0x50c0, 0x50c1) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
+ AM_RANGE(0x5000, 0x5001) AM_READ_PORT("IN0")
+ AM_RANGE(0x5040, 0x5041) AM_READ_PORT("IN1")
+ AM_RANGE(0x5080, 0x5081) AM_READ_PORT("DSW1")
+ AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank2")
+ AM_RANGE(0xe004, 0xe006) AM_WRITENOP // mirror of 5004-5006
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( superabc_map, AS_PROGRAM, 8, pacman_state )
+ AM_RANGE(0x0000, 0x3fff) AM_ROMBANK("bank1")
+ AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_videoram_w) AM_SHARE("videoram")
+ AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_colorram_w) AM_SHARE("colorram")
+ AM_RANGE(0x4800, 0x49ff) AM_RAM AM_SHARE("nvram") /* high scores and work area */
+ AM_RANGE(0x4c00, 0x4fef) AM_RAM /* system ram */
+ AM_RANGE(0x4ff0, 0x4fff) AM_RAM AM_SHARE("spriteram")
+ AM_RANGE(0x5000, 0x5000) AM_WRITE(irq_mask_w)
+ AM_RANGE(0x5001, 0x5001) AM_DEVWRITE("namco", namco_device, pacman_sound_enable_w)
+ AM_RANGE(0x5002, 0x5002) AM_WRITENOP
+ AM_RANGE(0x5003, 0x5003) AM_WRITE(pacman_flipscreen_w)
+ AM_RANGE(0x5004, 0x5005) AM_WRITE(pacman_leds_w)
+ AM_RANGE(0x5006, 0x5006) AM_WRITE(superabc_rombank_w) /* bit 0 = coin lockout, bits 4,5,6 = bank select */
+ AM_RANGE(0x5007, 0x5007) AM_WRITE(pacman_coin_counter_w)
+ AM_RANGE(0x5040, 0x505f) AM_DEVWRITE("namco", namco_device, pacman_sound_w)
+ AM_RANGE(0x5060, 0x506f) AM_WRITEONLY AM_SHARE("spriteram2")
+ AM_RANGE(0x5070, 0x507f) AM_WRITENOP
+ AM_RANGE(0x50c0, 0x50c1) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
+ AM_RANGE(0x5000, 0x5000) AM_READ_PORT("IN0")
+ AM_RANGE(0x5040, 0x5040) AM_READ_PORT("IN1") /* IN1 - comment this out to get an easter egg */
+ AM_RANGE(0x5080, 0x5080) AM_READ_PORT("DSW1")
+ AM_RANGE(0x50c0, 0x50c0) AM_READ_PORT("DSW2") /* DSW2 - not used */
+ AM_RANGE(0x8000, 0x9fff) AM_ROMBANK("bank2")
+ AM_RANGE(0xa000, 0xbfff) AM_ROMBANK("bank3")
+ADDRESS_MAP_END
+
+
+/*************************************
+ *
+ * Port definitions
+ *
+ *************************************/
+
+INPUT_PORTS_START( 96in1 )
+ PORT_START ("IN0") /* IN0 */
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY
+ /* Press this while playing pacman to instantly finish the level */
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Finish Level (Cheat)") PORT_CODE(KEYCODE_8)
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN3 ) /* Alien Armada only */
+
+ PORT_START ("IN1") /* IN1 */
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL
+ /* Hold this down while starting pacman to get service settings */
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Service") PORT_CODE(KEYCODE_9)
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 ) /* Also used as the fire button */
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
+ PORT_DIPNAME(0x80, 0x80, DEF_STR( Cabinet ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( Upright ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
+
+ PORT_START ("DSW1") /* DSW 1 */
+ PORT_DIPNAME( 0x01, 0x01, "DIP 1: Simple Menu" )
+ PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x02, 0x02, "DIP 2: Initials only" )
+ PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x04, 0x04, "DIP 3: Fast OK for TM" )
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x08, "DIP 4: Tournament Mode" )
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, "DIP 5: Guest Mode" )
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x20, "DIP 6: Dip Menu" )
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x40, DEF_STR( Difficulty ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( Normal ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Hard ) )
+ PORT_DIPNAME( 0x80, 0x80, "Ghost Names" )
+ PORT_DIPSETTING( 0x80, DEF_STR( Normal ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Alternate ) )
+
+ PORT_START ("DSW2") /* DSW 2 */
+ PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START ("FAKE")
+ /* This fake input port is used to get the status of the fire button */
+ /* and activate the speedup cheat if it is. */
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME( "Speed (Cheat)" )
+ PORT_DIPNAME( 0x06, 0x02, "Speed Cheat" )
+ PORT_DIPSETTING( 0x00, "Disabled" )
+ PORT_DIPSETTING( 0x02, "Enabled with Button" )
+ PORT_DIPSETTING( 0x04, "Enabled Always" )
+INPUT_PORTS_END
+
+INPUT_PORTS_START( mschamp )
+ PORT_INCLUDE( mspacpls )
+
+ PORT_START ("GAME")
+ PORT_DIPNAME( 0x01, 0x01, "Game" )
+ PORT_DIPSETTING( 0x01, "Champion Edition" )
+ PORT_DIPSETTING( 0x00, "Super Pac Gal" )
+ 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 ) )
+INPUT_PORTS_END
+
+INPUT_PORTS_START( multipac )
+ PORT_START ("IN0") /* IN0 */
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY
+ PORT_SERVICE( 0x10, IP_ACTIVE_LOW ) /* service for eyes and lizwiz */
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE1 )
+
+ PORT_START ("IN1") /* IN1 */
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE2 )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 ) /* also used as the fire button (eyes, lizwiz) */
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
+ PORT_DIPNAME(0x80, 0x80, DEF_STR( Cabinet ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( Upright ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
+
+ PORT_START ("DSW1") /* DSW 1 */
+ PORT_DIPNAME( 0x03, 0x01, DEF_STR( Coinage ) )
+ 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_DIPSETTING( 0x00, "1" )
+ PORT_DIPSETTING( 0x04, "2" )
+ PORT_DIPSETTING( 0x08, "3" )
+ PORT_DIPSETTING( 0x0c, "5" )
+ PORT_DIPNAME( 0x30, 0x00, DEF_STR( Bonus_Life ) )
+ 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_DIPSETTING( 0x40, DEF_STR( Normal ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Hard ) )
+ PORT_DIPNAME( 0x80, 0x80, "Ghost Names" )
+ PORT_DIPSETTING( 0x80, DEF_STR( Normal ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Alternate ) )
+
+ PORT_START ("DSW2") /* DSW 2 */
+ PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+// PORT_START ("FAKE")
+ /* This fake input port is used to get the status of the fire button */
+ /* and activate the speedup cheat if it is. */
+// PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME( "Speed (Cheat)" )
+// PORT_DIPNAME( 0x06, 0x02, "Speed Cheat" )
+// PORT_DIPSETTING( 0x00, "Disabled" )
+// PORT_DIPSETTING( 0x02, "Enabled with Button" )
+// PORT_DIPSETTING( 0x04, "Enabled Always" )
+INPUT_PORTS_END
+
+/* Start Official documentation for SuperABC - http://www.twobits.com/sabcinst99.htm
+
+How do I clear the high score table and check the bookkeeping?
+Enter test mode via the cabinet switch located near the coin door hinge. Then hold the
+ONE PLAYER DOWN and ONE PLAYER START switches simultaneously for approximately 7 seconds
+and follow the on-screen directions.
+
+DIP Switch Settings
+Note concerning DIP SWITCH #6:
+During the game ULTRA PACMAN there is a rare 'butterfly' which appears. Eating the butterfly
+awards the player either an extra man or an extra credit depending on the setting of DIP
+switch #6. DIP SWITCH #6 ALSO turns the BUY-IN feature ON and OFF.
+
+
+Option (* = recommended) | SW1 | SW2 | SW3 | SW4 | SW5 | SW6 | SW7 | SW8 |
+-------------------------------------|-----|-----|-----|-----|-----|-----|-----|-----|
+Free Play | ON | ON | | | | | | |
+1 Coin 1 Credit *| OFF | ON | | | | | | |
+1 Coin 2 Credits | ON | OFF | | | | | | |
+2 Coins 1 Credit | OFF | OFF | | | | | | |
+-------------------------------------|-----|-----|-----|-----|-----|-----|-----|-----|
+1 Pacman Per Game | | | ON | ON | | | | |
+2 Pacman Per Game | | | OFF | ON | | | | |
+3 Pacman Per Game *| | | ON | OFF | | | | |
+5 Pacman Per Game | | | OFF | OFF | | | | |
+-------------------------------------|-----|-----|-----|-----|-----|-----|-----|-----|
+Bonus Player @ 10000 Pts *| | | | | ON | ON | | |
+Bonus Player @ 15000 Pts | | | | | OFF | ON | | |
+Bonus Player @ 20000 Pts | | | | | ON | OFF | | |
+No Bonus Players | | | | | OFF | OFF | | |
+-------------------------------------|-----|-----|-----|-----|-----|-----|-----|-----|
+Free Game in ULTRA PAC / Buy-in ON *| | | | | | ON | | |
+Free Life in ULTRA PAC / Buy-in OFF | | | | | | OFF | | |
+-------------------------------------|-----|-----|-----|-----|-----|-----|-----|-----|
+Auto. Rack Advance (Skip) | | | | | | | ON | |
+Normal- Must be off for game play *| | | | | | | OFF | |
+-------------------------------------|-----|-----|-----|-----|-----|-----|-----|-----|
+Freeze Video (Pause) | | | | | | | | ON |
+Normal- Must be off for game play *| | | | | | | | OFF |
+--------------------------------------------------------------------------------------
+
+** End Official documentation.
+
+Note: SW7 and SW8 are not part of DSW1 in the input settings below */
+
+INPUT_PORTS_START( superabc )
+ PORT_START ("IN0") /* IN0 */
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY
+ /* Press this while playing pacman to instantly finish the level */
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Finish Level (Cheat)") PORT_CODE(KEYCODE_8)
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE1 )
+
+ PORT_START ("IN1") /* IN1 */
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL
+ PORT_SERVICE( 0x10, IP_ACTIVE_LOW )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 )
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
+ PORT_DIPNAME(0x80, 0x80, DEF_STR( Cabinet ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( Upright ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
+
+ PORT_START ("DSW1") /* DSW 1 */
+ PORT_DIPNAME( 0x03, 0x01, DEF_STR( Coinage ) )
+ 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_DIPSETTING( 0x00, "1" )
+ PORT_DIPSETTING( 0x04, "2" )
+ PORT_DIPSETTING( 0x08, "3" )
+ PORT_DIPSETTING( 0x0c, "5" )
+ /* bit 5 also switches between ULTRA ON 1 GAME (low), and ULTRA OFF 1 LIFE (high) */
+ PORT_DIPNAME( 0x30, 0x00, DEF_STR( Bonus_Life ) )
+ 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_DIPSETTING( 0x40, DEF_STR( Normal ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Hard ) )
+ PORT_DIPNAME( 0x80, 0x80, "Ghost Names" )
+ PORT_DIPSETTING( 0x80, DEF_STR( Normal ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Alternate ) )
+
+ PORT_START ("DSW2") /* DSW 2 */
+ PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED )
+INPUT_PORTS_END
+
+
+/*************************************
+ *
+ * Driver initialization
+ *
+ *************************************/
+
+DRIVER_INIT_MEMBER( pacman_state, 96in1 )
+{
+ uint8_t *RAM = memregion("maincpu")->base();
+ membank("bank1")->configure_entries(0, 16, &RAM[0x10000], 0x8000);
+ membank("bank2")->configure_entries(0, 16, &RAM[0x14000], 0x8000);
+}
+
+DRIVER_INIT_MEMBER( pacman_state, madpac )
+{
+ uint8_t *RAM = memregion("maincpu")->base();
+ membank("bank1")->configure_entries(0, 32, &RAM[0x10000], 0x8000);
+ membank("bank2")->configure_entries(0, 32, &RAM[0x14000], 0x8000);
+}
+
+DRIVER_INIT_MEMBER( pacman_state, mspaceur )
+{
+ uint8_t *RAM = memregion("maincpu")->base();
+ membank("bank2")->configure_entries(0, 2, &RAM[0x10000], 0x2000);
+}
+
+DRIVER_INIT_MEMBER( pacman_state, multipac )
+{
+ uint8_t *RAM = memregion("maincpu")->base();
+ RAM[0x10000] = 0xED; /* It seems that IM0 is not working properly in MAME */
+ RAM[0x10001] = 0x56; /* and, the interrupt mode is not being reset when a */
+ RAM[0x10002] = 0xC3; /* machine reset is done. So, inserting some code so */
+ RAM[0x10003] = 0x00; /* that the game can fix the problem */
+ RAM[0x10004] = 0x01;
+ membank("bank1")->configure_entries(0, 32, &RAM[0x10000], 0x4000);
+ membank("bank2")->configure_entries(0, 64, &RAM[0x14000], 0x2000);
+ membank("bank1")->set_entry(0);
+}
+
+DRIVER_INIT_MEMBER( pacman_state, pm4n1 )
+{
+ uint8_t *RAM = memregion("maincpu")->base();
+ membank("bank1")->configure_entries(0, 5, &RAM[0x10000], 0x8000);
+ membank("bank2")->configure_entries(0, 5, &RAM[0x14000], 0x8000);
+}
+
+DRIVER_INIT_MEMBER( pacman_state, superabc )
+{
+ uint8_t *RAM = memregion("maincpu")->base();
+ membank("bank1")->configure_entries(0, 8, &RAM[0x10000], 0x10000);
+ membank("bank2")->configure_entries(0, 8, &RAM[0x14000], 0x10000);
+ membank("bank3")->configure_entries(0, 8, &RAM[0x1a000], 0x10000);
+ membank("bank1")->set_entry(0);
+ membank("bank2")->set_entry(0);
+ membank("bank3")->set_entry(0);
+}
+
+
+/********************************
+ Graphics layouts
+ ********************************/
+
+static GFXDECODE_START( 96in1 )
+ GFXDECODE_ENTRY( "gfx1", 0x00000, tilelayout, 0, 32 )
+ GFXDECODE_ENTRY( "gfx1", 0x10000, spritelayout, 0, 32 )
+GFXDECODE_END
+
+static GFXDECODE_START( 96in1b )
+ GFXDECODE_ENTRY( "gfx1", 0x00000, tilelayout, 0, 8*32 )
+ GFXDECODE_ENTRY( "gfx1", 0x20000, spritelayout, 0, 8*32 )
+GFXDECODE_END
+
+static GFXDECODE_START( hackypac )
+ GFXDECODE_ENTRY( "gfx1", 0x00000, tilelayout, 0, 9*32 )
+ GFXDECODE_ENTRY( "gfx1", 0x40000, spritelayout, 0, 9*32 )
+GFXDECODE_END
+
+static GFXDECODE_START( madpac )
+ GFXDECODE_ENTRY( "gfx1", 0x00000, tilelayout, 0, 16*32 )
+ GFXDECODE_ENTRY( "gfx1", 0x20000, spritelayout, 0, 16*32 )
+GFXDECODE_END
+
+static GFXDECODE_START( multipac )
+ GFXDECODE_ENTRY( "gfx1", 0x00000, tilelayout, 0, 4*32 )
+ GFXDECODE_ENTRY( "gfx1", 0x10000, spritelayout, 0, 4*32 )
+GFXDECODE_END
+
+static GFXDECODE_START( pm4n1 )
+ GFXDECODE_ENTRY( "gfx1", 0x00000, tilelayout, 0, 32 )
+ GFXDECODE_ENTRY( "gfx1", 0x05000, spritelayout, 0, 32 )
+GFXDECODE_END
+
+static GFXDECODE_START( superabc )
+ GFXDECODE_ENTRY( "gfx1", 0x00000, tilelayout, 0, 32 )
+ GFXDECODE_ENTRY( "gfx1", 0x08000, spritelayout, 0, 32 )
+GFXDECODE_END
+
+
+/*************************************
+ *
+ * Machine drivers
+ *
+ *************************************/
+
+/* These drivers are for multiple games in one package */
+
+static MACHINE_CONFIG_DERIVED( 96in1, pacman )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(madpac_map)
+ MCFG_CPU_IO_MAP(96in1_writeport)
+ MCFG_MACHINE_RESET_OVERRIDE(pacman_state, 96in1)
+ MCFG_GFXDECODE_MODIFY("gfxdecode", 96in1)
+ MCFG_NVRAM_ADD_0FILL("nvram")
+ MCFG_VIDEO_START_OVERRIDE(pacman_state, multipac)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( 96in1b, pacman )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(madpac_map)
+ MCFG_CPU_IO_MAP(96in1b_writeport)
+ MCFG_MACHINE_RESET_OVERRIDE(pacman_state, madpac)
+ MCFG_GFXDECODE_MODIFY("gfxdecode", 96in1b)
+ MCFG_PALETTE_MODIFY("palette")
+ MCFG_PALETTE_ENTRIES(128*8)
+ MCFG_PALETTE_INDIRECT_ENTRIES(32*8)
+ MCFG_PALETTE_INIT_OWNER(pacman_state,multipac)
+ MCFG_VIDEO_START_OVERRIDE(pacman_state, multipac)
+ MCFG_NVRAM_ADD_0FILL("nvram")
+ MCFG_SCREEN_MODIFY("screen")
+ MCFG_SCREEN_UPDATE_DRIVER(pacman_state, screen_update_multipac)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( hackypac, pacman )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(hackypac_map)
+ MCFG_CPU_IO_MAP(hackypac_writeport)
+ MCFG_MACHINE_RESET_OVERRIDE(pacman_state, hackypac)
+ MCFG_GFXDECODE_MODIFY("gfxdecode", hackypac)
+ MCFG_PALETTE_MODIFY("palette")
+ MCFG_PALETTE_ENTRIES(128*9)
+ MCFG_PALETTE_INDIRECT_ENTRIES(32*9) // colour banks * 128 colour lookup codes (4a rom)
+ MCFG_PALETTE_INIT_OWNER(pacman_state,multipac)
+ MCFG_VIDEO_START_OVERRIDE(pacman_state, multipac)
+ MCFG_SCREEN_MODIFY("screen")
+ MCFG_SCREEN_UPDATE_DRIVER(pacman_state, screen_update_multipac)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( madpac, pacman )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(madpac_map)
+ MCFG_CPU_IO_MAP(madpac_writeport)
+ MCFG_MACHINE_RESET_OVERRIDE(pacman_state, madpac)
+ MCFG_SCREEN_MODIFY("screen")
+ MCFG_SCREEN_UPDATE_DRIVER(pacman_state, screen_update_multipac)
+ MCFG_VIDEO_START_OVERRIDE(pacman_state, multipac)
+ MCFG_PALETTE_MODIFY("palette")
+ MCFG_PALETTE_ENTRIES(128*16)
+ MCFG_PALETTE_INDIRECT_ENTRIES(32*16)
+ MCFG_PALETTE_INIT_OWNER(pacman_state, multipac)
+ MCFG_GFXDECODE_MODIFY("gfxdecode", madpac)
+ MCFG_NVRAM_ADD_0FILL("nvram")
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( mspaceur, pacman )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(mspaceur_map)
+ MCFG_MACHINE_RESET_OVERRIDE(pacman_state, mspaceur)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( mschamp, pacman )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(mschamp_map)
+ MCFG_CPU_IO_MAP(zolapac_io)
+ MCFG_MACHINE_RESET_OVERRIDE(pacman_state, mschamp)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( mschampx, pacmanx )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(mschamp_map)
+ MCFG_CPU_IO_MAP(zolapac_io)
+ MCFG_MACHINE_RESET_OVERRIDE(pacman_state, mschamp)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( multipac, pacman )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(multipac_map)
+ MCFG_MACHINE_RESET_OVERRIDE(pacman_state, multipac)
+ MCFG_SCREEN_MODIFY("screen")
+ MCFG_SCREEN_UPDATE_DRIVER(pacman_state, screen_update_multipac)
+ MCFG_VIDEO_START_OVERRIDE(pacman_state, multipac)
+ MCFG_PALETTE_MODIFY("palette")
+ MCFG_PALETTE_ENTRIES(128*4)
+ MCFG_PALETTE_INDIRECT_ENTRIES(32*4)
+ MCFG_PALETTE_INIT_OWNER(pacman_state,multipac)
+ MCFG_GFXDECODE_MODIFY("gfxdecode", multipac)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( pm4n1, pacman )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(pm4n1_map)
+ MCFG_MACHINE_RESET_OVERRIDE(pacman_state, pm4n1)
+ MCFG_GFXDECODE_MODIFY("gfxdecode", pm4n1)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( pm4n1c, pacman )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(pm4n1c_map)
+ MCFG_MACHINE_RESET_OVERRIDE(pacman_state, pm4n1)
+ MCFG_NVRAM_ADD_0FILL("nvram")
+ MCFG_GFXDECODE_MODIFY("gfxdecode", pm4n1)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( pm4n1d, pm4n1c )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(pm4n1d_map)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( superabc, pacman )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(superabc_map)
+ MCFG_NVRAM_ADD_0FILL("nvram")
+ MCFG_GFXDECODE_MODIFY("gfxdecode", superabc)
+ MCFG_VIDEO_START_OVERRIDE(pacman_state, multipac)
+MACHINE_CONFIG_END
+
+
+/*************************************
+ *
+ * ROM definitions
+ *
+ *************************************/
+
+ROM_START( 96in1 )
+ ROM_REGION( 0x90000, "maincpu", 0 )
+ ROM_LOAD( "96in1.cpu", 0x10000, 0x80000, CRC(4a25b763) SHA1(7e650fb7b60b08f3ab8307035a393d6b2941b24b) )
+
+ ROM_REGION( 0x20000, "gfx1", 0 )
+ ROM_LOAD( "96in1.gfx", 0x00000, 0x1000, CRC(fb43e056) SHA1(aceacef836e4dd1bfe4229ea090ff713c66d8931) )
+ ROM_CONTINUE( 0x10000, 0x1000 )
+ ROM_CONTINUE( 0x01000, 0x1000 )
+ ROM_CONTINUE( 0x11000, 0x1000 )
+ ROM_CONTINUE( 0x02000, 0x1000 )
+ ROM_CONTINUE( 0x12000, 0x1000 )
+ ROM_CONTINUE( 0x03000, 0x1000 )
+ ROM_CONTINUE( 0x13000, 0x1000 )
+ ROM_CONTINUE( 0x04000, 0x1000 )
+ ROM_CONTINUE( 0x14000, 0x1000 )
+ ROM_CONTINUE( 0x05000, 0x1000 )
+ ROM_CONTINUE( 0x15000, 0x1000 )
+ ROM_CONTINUE( 0x06000, 0x1000 )
+ ROM_CONTINUE( 0x16000, 0x1000 )
+ ROM_CONTINUE( 0x07000, 0x1000 )
+ ROM_CONTINUE( 0x17000, 0x1000 )
+ ROM_CONTINUE( 0x08000, 0x1000 )
+ ROM_CONTINUE( 0x18000, 0x1000 )
+ ROM_CONTINUE( 0x09000, 0x1000 )
+ ROM_CONTINUE( 0x19000, 0x1000 )
+ ROM_CONTINUE( 0x0a000, 0x1000 )
+ ROM_CONTINUE( 0x1a000, 0x1000 )
+ ROM_CONTINUE( 0x0b000, 0x1000 )
+ ROM_CONTINUE( 0x1b000, 0x1000 )
+ ROM_CONTINUE( 0x0c000, 0x1000 )
+ ROM_CONTINUE( 0x1c000, 0x1000 )
+ ROM_CONTINUE( 0x0d000, 0x1000 )
+ ROM_CONTINUE( 0x1d000, 0x1000 )
+ ROM_CONTINUE( 0x0e000, 0x1000 )
+ ROM_CONTINUE( 0x1e000, 0x1000 )
+ ROM_CONTINUE( 0x0f000, 0x1000 )
+ ROM_CONTINUE( 0x1f000, 0x1000 )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( 96in1a )
+ ROM_REGION( 0x90000, "maincpu", 0 )
+ ROM_LOAD( "96in1a.cpu", 0x10000, 0x80000, CRC(bd89f3de) SHA1(3bd2f51ce97509c7f3dc165ebfbf856039be375e) )
+
+ ROM_REGION( 0x20000, "gfx1", 0 )
+ ROM_LOAD( "96in1a.gfx", 0x00000, 0x1000, CRC(f4ce2dca) SHA1(b0515ee98766225d4d4a1368949942324703e865) )
+ ROM_CONTINUE( 0x10000, 0x1000 )
+ ROM_CONTINUE( 0x01000, 0x1000 )
+ ROM_CONTINUE( 0x11000, 0x1000 )
+ ROM_CONTINUE( 0x02000, 0x1000 )
+ ROM_CONTINUE( 0x12000, 0x1000 )
+ ROM_CONTINUE( 0x03000, 0x1000 )
+ ROM_CONTINUE( 0x13000, 0x1000 )
+ ROM_CONTINUE( 0x04000, 0x1000 )
+ ROM_CONTINUE( 0x14000, 0x1000 )
+ ROM_CONTINUE( 0x05000, 0x1000 )
+ ROM_CONTINUE( 0x15000, 0x1000 )
+ ROM_CONTINUE( 0x06000, 0x1000 )
+ ROM_CONTINUE( 0x16000, 0x1000 )
+ ROM_CONTINUE( 0x07000, 0x1000 )
+ ROM_CONTINUE( 0x17000, 0x1000 )
+ ROM_CONTINUE( 0x08000, 0x1000 )
+ ROM_CONTINUE( 0x18000, 0x1000 )
+ ROM_CONTINUE( 0x09000, 0x1000 )
+ ROM_CONTINUE( 0x19000, 0x1000 )
+ ROM_CONTINUE( 0x0a000, 0x1000 )
+ ROM_CONTINUE( 0x1a000, 0x1000 )
+ ROM_CONTINUE( 0x0b000, 0x1000 )
+ ROM_CONTINUE( 0x1b000, 0x1000 )
+ ROM_CONTINUE( 0x0c000, 0x1000 )
+ ROM_CONTINUE( 0x1c000, 0x1000 )
+ ROM_CONTINUE( 0x0d000, 0x1000 )
+ ROM_CONTINUE( 0x1d000, 0x1000 )
+ ROM_CONTINUE( 0x0e000, 0x1000 )
+ ROM_CONTINUE( 0x1e000, 0x1000 )
+ ROM_CONTINUE( 0x0f000, 0x1000 )
+ ROM_CONTINUE( 0x1f000, 0x1000 )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( 96in1b )
+ ROM_REGION( 0x110000, "maincpu", 0 )
+ ROM_LOAD( "96in1b.cpu", 0x10000, 0x80000, CRC(1c880d0b) SHA1(374bcefb047e48598706b2df27fd6715b11afd45) )
+ ROM_LOAD( "96in1b.cp2", 0x90000, 0x80000, CRC(54ee41bd) SHA1(84fc81e2cd584c0fc94782c008990d66c599e435) )
+
+ ROM_REGION( 0x40000, "gfx1", 0 )
+ ROM_LOAD( "96in1b.gfx", 0x00000, 0x1000, CRC(ac6e00ac) SHA1(3c011cc76aebba6cfa17c042d0835055c2b42735) )
+ ROM_CONTINUE( 0x20000, 0x1000 )
+ ROM_CONTINUE( 0x01000, 0x1000 )
+ ROM_CONTINUE( 0x21000, 0x1000 )
+ ROM_CONTINUE( 0x02000, 0x1000 )
+ ROM_CONTINUE( 0x22000, 0x1000 )
+ ROM_CONTINUE( 0x03000, 0x1000 )
+ ROM_CONTINUE( 0x23000, 0x1000 )
+ ROM_CONTINUE( 0x04000, 0x1000 )
+ ROM_CONTINUE( 0x24000, 0x1000 )
+ ROM_CONTINUE( 0x05000, 0x1000 )
+ ROM_CONTINUE( 0x25000, 0x1000 )
+ ROM_CONTINUE( 0x06000, 0x1000 )
+ ROM_CONTINUE( 0x26000, 0x1000 )
+ ROM_CONTINUE( 0x07000, 0x1000 )
+ ROM_CONTINUE( 0x27000, 0x1000 )
+ ROM_CONTINUE( 0x08000, 0x1000 )
+ ROM_CONTINUE( 0x28000, 0x1000 )
+ ROM_CONTINUE( 0x09000, 0x1000 )
+ ROM_CONTINUE( 0x29000, 0x1000 )
+ ROM_CONTINUE( 0x0a000, 0x1000 )
+ ROM_CONTINUE( 0x2a000, 0x1000 )
+ ROM_CONTINUE( 0x0b000, 0x1000 )
+ ROM_CONTINUE( 0x2b000, 0x1000 )
+ ROM_CONTINUE( 0x0c000, 0x1000 )
+ ROM_CONTINUE( 0x2c000, 0x1000 )
+ ROM_CONTINUE( 0x0d000, 0x1000 )
+ ROM_CONTINUE( 0x2d000, 0x1000 )
+ ROM_CONTINUE( 0x0e000, 0x1000 )
+ ROM_CONTINUE( 0x2e000, 0x1000 )
+ ROM_CONTINUE( 0x0f000, 0x1000 )
+ ROM_CONTINUE( 0x2f000, 0x1000 )
+ ROM_CONTINUE( 0x10000, 0x1000 )
+ ROM_CONTINUE( 0x30000, 0x1000 )
+ ROM_CONTINUE( 0x11000, 0x1000 )
+ ROM_CONTINUE( 0x31000, 0x1000 )
+ ROM_CONTINUE( 0x12000, 0x1000 )
+ ROM_CONTINUE( 0x32000, 0x1000 )
+ ROM_CONTINUE( 0x13000, 0x1000 )
+ ROM_CONTINUE( 0x33000, 0x1000 )
+ ROM_CONTINUE( 0x14000, 0x1000 )
+ ROM_CONTINUE( 0x34000, 0x1000 )
+ ROM_CONTINUE( 0x15000, 0x1000 )
+ ROM_CONTINUE( 0x35000, 0x1000 )
+ ROM_CONTINUE( 0x16000, 0x1000 )
+ ROM_CONTINUE( 0x36000, 0x1000 )
+ ROM_CONTINUE( 0x17000, 0x1000 )
+ ROM_CONTINUE( 0x37000, 0x1000 )
+ ROM_CONTINUE( 0x18000, 0x1000 )
+ ROM_CONTINUE( 0x38000, 0x1000 )
+ ROM_CONTINUE( 0x19000, 0x1000 )
+ ROM_CONTINUE( 0x39000, 0x1000 )
+ ROM_CONTINUE( 0x1a000, 0x1000 )
+ ROM_CONTINUE( 0x3a000, 0x1000 )
+ ROM_CONTINUE( 0x1b000, 0x1000 )
+ ROM_CONTINUE( 0x3b000, 0x1000 )
+ ROM_CONTINUE( 0x1c000, 0x1000 )
+ ROM_CONTINUE( 0x3c000, 0x1000 )
+ ROM_CONTINUE( 0x1d000, 0x1000 )
+ ROM_CONTINUE( 0x3d000, 0x1000 )
+ ROM_CONTINUE( 0x1e000, 0x1000 )
+ ROM_CONTINUE( 0x3e000, 0x1000 )
+ ROM_CONTINUE( 0x1f000, 0x1000 )
+ ROM_CONTINUE( 0x3f000, 0x1000 )
+ ROM_IGNORE ( 0x40000 )
+
+ ROM_REGION( 0x1b00, "proms", 0 )
+ ROM_LOAD( "96in1b.7f", 0x1000, 0x0160, CRC(58deb197) SHA1(2b10b9f21b4d498b9284e1308793dc773e9db874) )
+ ROM_IGNORE( 0x3fea0 )
+ ROM_COPY( "proms", 0x1000, 0x0000, 0x10 ) /* pacman and mspacman */
+ ROM_COPY( "proms", 0x1000, 0x0020, 0x10 ) /* 08. pacplus */
+ ROM_COPY( "proms", 0x1100, 0x00e0, 0x10 ) /* 10. naughty mouse */
+ ROM_COPY( "proms", 0x1110, 0x0080, 0x10 ) /* 11. beastie feastie */
+ ROM_COPY( "proms", 0x1120, 0x0040, 0x10 ) /* 12. make trax */
+ ROM_COPY( "proms", 0x1130, 0x0060, 0x10 ) /* 13. lizard wizard */
+ ROM_COPY( "proms", 0x1140, 0x00a0, 0x10 ) /* 14. atlantic city action */
+ ROM_COPY( "proms", 0x1150, 0x00c0, 0x10 ) /* 15. jump shot */
+
+ ROM_LOAD( "96in1b.4a", 0x1000, 0x0b00, CRC(fb1acbea) SHA1(bf344c46adea405125d67b3bf8a14d51316d3e12) )
+ ROM_IGNORE( 0x3f500 )
+ ROM_FILL( 0x1068, 0x0001, 0x00 ) /* pacman - remove red bit outside monster lair */
+ ROM_FILL( 0x106c, 0x0001, 0x00 ) /* pacman - remove pink bits at top and bottom */
+ ROM_COPY( "proms", 0x1000, 0x0100, 0x80 ) /* pacman and mspacman */
+ ROM_COPY( "proms", 0x1000, 0x0180, 0x80 ) /* pacplus */
+ ROM_COPY( "proms", 0x1800, 0x0480, 0x80 ) /* naughty mouse */
+ ROM_COPY( "proms", 0x1880, 0x0300, 0x80 ) /* beastie feastie */
+ ROM_COPY( "proms", 0x1900, 0x0200, 0x80 ) /* make trax */
+ ROM_COPY( "proms", 0x1980, 0x0280, 0x80 ) /* lizard wizard */
+ ROM_COPY( "proms", 0x1a00, 0x0380, 0x80 ) /* atlantic city action */
+ ROM_COPY( "proms", 0x1a80, 0x0400, 0x80 ) /* jump shot */
+ ROM_FILL( 0x01c3, 0x0001, 0x0d ) /* pacplus - walls - make green */
+ ROM_FILL( 0x01eb, 0x0001, 0x0d ) /* pacplus - walls outside monster house - make green */
+ ROM_FILL( 0x01ef, 0x0001, 0x0d ) /* pacplus - corner bits at bottom - make green */
+
+ PACMAN_SOUND_PROMS
+ROM_END
+
+ROM_START( 96in1c )
+ ROM_REGION( 0x90000, "maincpu", 0 )
+ ROM_LOAD( "96in1c.cpu", 0x10000, 0x80000, CRC(72d5bf9a) SHA1(7d576ab2642fde8569ea58f6eea4390c309c6885) )
+
+ ROM_REGION( 0x20000, "gfx1", 0 )
+ ROM_LOAD( "96in1c.gfx", 0x00000, 0x1000, CRC(ebbbad14) SHA1(cb7b538f52c7254ed2507db30c199e4b91a309d5) )
+ ROM_CONTINUE( 0x10000, 0x1000 )
+ ROM_CONTINUE( 0x01000, 0x1000 )
+ ROM_CONTINUE( 0x11000, 0x1000 )
+ ROM_CONTINUE( 0x02000, 0x1000 )
+ ROM_CONTINUE( 0x12000, 0x1000 )
+ ROM_CONTINUE( 0x03000, 0x1000 )
+ ROM_CONTINUE( 0x13000, 0x1000 )
+ ROM_CONTINUE( 0x04000, 0x1000 )
+ ROM_CONTINUE( 0x14000, 0x1000 )
+ ROM_CONTINUE( 0x05000, 0x1000 )
+ ROM_CONTINUE( 0x15000, 0x1000 )
+ ROM_CONTINUE( 0x06000, 0x1000 )
+ ROM_CONTINUE( 0x16000, 0x1000 )
+ ROM_CONTINUE( 0x07000, 0x1000 )
+ ROM_CONTINUE( 0x17000, 0x1000 )
+ ROM_CONTINUE( 0x08000, 0x1000 )
+ ROM_CONTINUE( 0x18000, 0x1000 )
+ ROM_CONTINUE( 0x09000, 0x1000 )
+ ROM_CONTINUE( 0x19000, 0x1000 )
+ ROM_CONTINUE( 0x0a000, 0x1000 )
+ ROM_CONTINUE( 0x1a000, 0x1000 )
+ ROM_CONTINUE( 0x0b000, 0x1000 )
+ ROM_CONTINUE( 0x1b000, 0x1000 )
+ ROM_CONTINUE( 0x0c000, 0x1000 )
+ ROM_CONTINUE( 0x1c000, 0x1000 )
+ ROM_CONTINUE( 0x0d000, 0x1000 )
+ ROM_CONTINUE( 0x1d000, 0x1000 )
+ ROM_CONTINUE( 0x0e000, 0x1000 )
+ ROM_CONTINUE( 0x1e000, 0x1000 )
+ ROM_CONTINUE( 0x0f000, 0x1000 )
+ ROM_CONTINUE( 0x1f000, 0x1000 )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( hackypac )
+ ROM_REGION( 0x110000, "maincpu", 0 )
+ ROM_LOAD( "hackypac.cpu", 0x10000, 0x100000, CRC(9cc452a1) SHA1(7b0483e359f87c5e3035db7380436f176f2356b5) )
+
+ ROM_REGION( 0x80000, "gfx1", 0 )
+ ROM_LOAD( "hackypac.gfx", 0x00000, 0x1000, CRC(42a61854) SHA1(0968721abccf7d04d205d13d150d014e4e658d16) )
+ ROM_CONTINUE( 0x40000, 0x1000 )
+ ROM_CONTINUE( 0x01000, 0x1000 ) /* rearrange so that all gfx then all sprites */
+ ROM_CONTINUE( 0x41000, 0x1000 )
+ ROM_CONTINUE( 0x02000, 0x1000 )
+ ROM_CONTINUE( 0x42000, 0x1000 )
+ ROM_CONTINUE( 0x03000, 0x1000 )
+ ROM_CONTINUE( 0x43000, 0x1000 )
+ ROM_CONTINUE( 0x04000, 0x1000 )
+ ROM_CONTINUE( 0x44000, 0x1000 )
+ ROM_CONTINUE( 0x05000, 0x1000 )
+ ROM_CONTINUE( 0x45000, 0x1000 )
+ ROM_CONTINUE( 0x06000, 0x1000 )
+ ROM_CONTINUE( 0x46000, 0x1000 )
+ ROM_CONTINUE( 0x07000, 0x1000 )
+ ROM_CONTINUE( 0x47000, 0x1000 )
+ ROM_CONTINUE( 0x08000, 0x1000 )
+ ROM_CONTINUE( 0x48000, 0x1000 )
+ ROM_CONTINUE( 0x09000, 0x1000 )
+ ROM_CONTINUE( 0x49000, 0x1000 )
+ ROM_CONTINUE( 0x0a000, 0x1000 )
+ ROM_CONTINUE( 0x4a000, 0x1000 )
+ ROM_CONTINUE( 0x0b000, 0x1000 )
+ ROM_CONTINUE( 0x4b000, 0x1000 )
+ ROM_CONTINUE( 0x0c000, 0x1000 )
+ ROM_CONTINUE( 0x4c000, 0x1000 )
+ ROM_CONTINUE( 0x0d000, 0x1000 )
+ ROM_CONTINUE( 0x4d000, 0x1000 )
+ ROM_CONTINUE( 0x0e000, 0x1000 )
+ ROM_CONTINUE( 0x4e000, 0x1000 )
+ ROM_CONTINUE( 0x0f000, 0x1000 )
+ ROM_CONTINUE( 0x4f000, 0x1000 )
+ ROM_CONTINUE( 0x10000, 0x1000 )
+ ROM_CONTINUE( 0x50000, 0x1000 )
+ ROM_CONTINUE( 0x11000, 0x1000 )
+ ROM_CONTINUE( 0x51000, 0x1000 )
+ ROM_CONTINUE( 0x12000, 0x1000 )
+ ROM_CONTINUE( 0x52000, 0x1000 )
+ ROM_CONTINUE( 0x13000, 0x1000 )
+ ROM_CONTINUE( 0x53000, 0x1000 )
+ ROM_CONTINUE( 0x14000, 0x1000 )
+ ROM_CONTINUE( 0x54000, 0x1000 )
+ ROM_CONTINUE( 0x15000, 0x1000 )
+ ROM_CONTINUE( 0x55000, 0x1000 )
+ ROM_CONTINUE( 0x16000, 0x1000 )
+ ROM_CONTINUE( 0x56000, 0x1000 )
+ ROM_CONTINUE( 0x17000, 0x1000 )
+ ROM_CONTINUE( 0x57000, 0x1000 )
+ ROM_CONTINUE( 0x18000, 0x1000 )
+ ROM_CONTINUE( 0x58000, 0x1000 )
+ ROM_CONTINUE( 0x19000, 0x1000 )
+ ROM_CONTINUE( 0x59000, 0x1000 )
+ ROM_CONTINUE( 0x1a000, 0x1000 )
+ ROM_CONTINUE( 0x5a000, 0x1000 )
+ ROM_CONTINUE( 0x1b000, 0x1000 )
+ ROM_CONTINUE( 0x5b000, 0x1000 )
+ ROM_CONTINUE( 0x1c000, 0x1000 )
+ ROM_CONTINUE( 0x5c000, 0x1000 )
+ ROM_CONTINUE( 0x1d000, 0x1000 )
+ ROM_CONTINUE( 0x5d000, 0x1000 )
+ ROM_CONTINUE( 0x1e000, 0x1000 )
+ ROM_CONTINUE( 0x5e000, 0x1000 )
+ ROM_CONTINUE( 0x1f000, 0x1000 )
+ ROM_CONTINUE( 0x5f000, 0x1000 )
+ ROM_CONTINUE( 0x20000, 0x1000 )
+ ROM_CONTINUE( 0x60000, 0x1000 )
+ ROM_CONTINUE( 0x21000, 0x1000 )
+ ROM_CONTINUE( 0x61000, 0x1000 )
+ ROM_CONTINUE( 0x22000, 0x1000 )
+ ROM_CONTINUE( 0x62000, 0x1000 )
+ ROM_CONTINUE( 0x23000, 0x1000 )
+ ROM_CONTINUE( 0x63000, 0x1000 )
+ ROM_CONTINUE( 0x24000, 0x1000 )
+ ROM_CONTINUE( 0x64000, 0x1000 )
+ ROM_CONTINUE( 0x25000, 0x1000 )
+ ROM_CONTINUE( 0x65000, 0x1000 )
+ ROM_CONTINUE( 0x26000, 0x1000 )
+ ROM_CONTINUE( 0x66000, 0x1000 )
+ ROM_CONTINUE( 0x27000, 0x1000 )
+ ROM_CONTINUE( 0x67000, 0x1000 )
+ ROM_CONTINUE( 0x28000, 0x1000 )
+ ROM_CONTINUE( 0x68000, 0x1000 )
+ ROM_CONTINUE( 0x29000, 0x1000 )
+ ROM_CONTINUE( 0x69000, 0x1000 )
+ ROM_CONTINUE( 0x2a000, 0x1000 )
+ ROM_CONTINUE( 0x6a000, 0x1000 )
+ ROM_CONTINUE( 0x2b000, 0x1000 )
+ ROM_CONTINUE( 0x6b000, 0x1000 )
+ ROM_CONTINUE( 0x2c000, 0x1000 )
+ ROM_CONTINUE( 0x6c000, 0x1000 )
+ ROM_CONTINUE( 0x2d000, 0x1000 )
+ ROM_CONTINUE( 0x6d000, 0x1000 )
+ ROM_CONTINUE( 0x2e000, 0x1000 )
+ ROM_CONTINUE( 0x6e000, 0x1000 )
+ ROM_CONTINUE( 0x2f000, 0x1000 )
+ ROM_CONTINUE( 0x6f000, 0x1000 )
+ ROM_CONTINUE( 0x30000, 0x1000 )
+ ROM_CONTINUE( 0x70000, 0x1000 )
+ ROM_CONTINUE( 0x31000, 0x1000 )
+ ROM_CONTINUE( 0x71000, 0x1000 )
+ ROM_CONTINUE( 0x32000, 0x1000 )
+ ROM_CONTINUE( 0x72000, 0x1000 )
+ ROM_CONTINUE( 0x33000, 0x1000 )
+ ROM_CONTINUE( 0x73000, 0x1000 )
+ ROM_CONTINUE( 0x34000, 0x1000 )
+ ROM_CONTINUE( 0x74000, 0x1000 )
+ ROM_CONTINUE( 0x35000, 0x1000 )
+ ROM_CONTINUE( 0x75000, 0x1000 )
+ ROM_CONTINUE( 0x36000, 0x1000 )
+ ROM_CONTINUE( 0x76000, 0x1000 )
+ ROM_CONTINUE( 0x37000, 0x1000 )
+ ROM_CONTINUE( 0x77000, 0x1000 )
+ ROM_CONTINUE( 0x38000, 0x1000 )
+ ROM_CONTINUE( 0x78000, 0x1000 )
+ ROM_CONTINUE( 0x39000, 0x1000 )
+ ROM_CONTINUE( 0x79000, 0x1000 )
+ ROM_CONTINUE( 0x3a000, 0x1000 )
+ ROM_CONTINUE( 0x7a000, 0x1000 )
+ ROM_CONTINUE( 0x3b000, 0x1000 )
+ ROM_CONTINUE( 0x7b000, 0x1000 )
+ ROM_CONTINUE( 0x3c000, 0x1000 )
+ ROM_CONTINUE( 0x7c000, 0x1000 )
+ ROM_CONTINUE( 0x3d000, 0x1000 )
+ ROM_CONTINUE( 0x7d000, 0x1000 )
+ ROM_CONTINUE( 0x3e000, 0x1000 )
+ ROM_CONTINUE( 0x7e000, 0x1000 )
+ ROM_CONTINUE( 0x3f000, 0x1000 )
+ ROM_CONTINUE( 0x7f000, 0x1000 )
+
+ /* no proms supplied - using ones from original games */
+ ROM_REGION( 0x05a0, "proms", 0 )
+ ROM_LOAD( "82s123.7f", 0x0000, 0x0020, CRC(2fc650bd) SHA1(8d0268dee78e47c712202b0ec4f1f51109b1f2a5) )
+ ROM_RELOAD( 0x0020, 0x0020 )
+ ROM_RELOAD( 0x0040, 0x0020 )
+ ROM_LOAD( "prom.7f", 0x0060, 0x0020, CRC(872b42f3) SHA1(bbcd392ba3d2a5715e92fa0f7a7cf1e7e6e655a2) )
+ ROM_LOAD( "puckren.7f", 0x0080, 0x0020, CRC(7b6aa3c9) SHA1(849911abdc26ccf2ad44e2c432e6219447b8bef3) )
+ ROM_LOAD( "glob.7f", 0x00a0, 0x0020, CRC(1f617527) SHA1(448845cab63800a05fcb106897503d994377f78f) )
+ ROM_LOAD( "7f.cpu", 0x00c0, 0x0020, CRC(7549a947) SHA1(4f2c3e7d6c38f0b9a90317f91feb3f86c9a0d0a5) )
+ ROM_LOAD( "pacplus.7f", 0x00e0, 0x0020, CRC(063dd53a) SHA1(2e43b46ec3b101d1babab87cdaddfa944116ec06) )
+ ROM_LOAD( "7f.rom", 0x0100, 0x0020, CRC(ec578b98) SHA1(196da49cc260f967ec5f01bc3c75b11077c85998) )
+ ROM_LOAD( "82s126.4a", 0x0120, 0x0100, CRC(3eb3a8e4) SHA1(19097b5f60d1030f8b82d9f1d3a241f93e5c75d6) ) /* pacman */
+ ROM_LOAD( "82s129.4a", 0x01a0, 0x0100, CRC(d8d78829) SHA1(19820d1651423210083a087fb70ebea73ad34951) ) /* eyes */
+ ROM_LOAD( "2s140.4a", 0x0220, 0x0100, CRC(63efb927) SHA1(5c144a613fc4960a1dfd7ead89e7fee258a63171) ) /* maketrax, chicken */
+ ROM_LOAD( "prom.4a", 0x02a0, 0x0100, CRC(0399f39f) SHA1(e98f08da4666cab44e01acb760a1bd2fc858bc0d) ) /* jumpshot */
+ ROM_LOAD( "puckren.4a", 0x0320, 0x0100, CRC(64fe1dbf) SHA1(7f7541eb12148add79ad186a1da375c865d251e0) ) /* puckren */
+ ROM_LOAD( "glob.4a", 0x03a0, 0x0100, CRC(28faa769) SHA1(7588889f3102d4e0ca7918f536556209b2490ea1) ) /* beastie */
+ ROM_LOAD( "4a.cpu", 0x0420, 0x0100, CRC(5fdca536) SHA1(3a09b29374031aaa3722932aff974a467b3bb201) ) /* lizwiz */
+ ROM_LOAD( "pacplus.4a", 0x04a0, 0x0100, CRC(e271a166) SHA1(cf006536215a7a1d488eebc1d8a2e2a8134ce1a6) ) /* pacplus */
+ ROM_LOAD( "4a.rom", 0x0520, 0x0080, CRC(81a6b30f) SHA1(60c767fd536c325151a2b759fdbce4ba41e0c78f) ) /* shoot bull */
+ ROM_IGNORE( 0x0080 )
+ /* There are a number of minor colour errors in Lizard Wizard, 2 of which are fixed below */
+ ROM_FILL( 0x43d, 1, 4 ) /* dragon wing = red */
+ ROM_FILL( 0x43e, 1, 6 ) /* dragon body = green */
+
+ PACMAN_SOUND_PROMS
+ROM_END
+
+ROM_START( madpac )
+ ROM_REGION( 0x110000, "maincpu", 0 )
+ ROM_LOAD( "madpac.cpu", 0x10000, 0x80000, CRC(1a769aea) SHA1(ea5b3b077f34485246643cfb8c74d073287f4359) )
+ ROM_LOAD( "madpac.cp2", 0x90000, 0x80000, CRC(84889f93) SHA1(83aee22bc543af230f5c7f652756b189d6cf5399) )
+
+ /* reorganise gfx so that all chars come first, followed by all sprites */
+ ROM_REGION( 0x40000, "gfx1", 0 )
+ ROM_LOAD( "madpac.gfx", 0x00000, 0x1000, CRC(6a1b231a) SHA1(67046022a179043f9c017b12ecadd9d5772705a9) )
+ ROM_CONTINUE( 0x20000, 0x1000 )
+ ROM_CONTINUE( 0x01000, 0x1000 )
+ ROM_CONTINUE( 0x21000, 0x1000 )
+ ROM_CONTINUE( 0x02000, 0x1000 )
+ ROM_CONTINUE( 0x22000, 0x1000 )
+ ROM_CONTINUE( 0x03000, 0x1000 )
+ ROM_CONTINUE( 0x23000, 0x1000 )
+ ROM_CONTINUE( 0x04000, 0x1000 )
+ ROM_CONTINUE( 0x24000, 0x1000 )
+ ROM_CONTINUE( 0x05000, 0x1000 )
+ ROM_CONTINUE( 0x25000, 0x1000 )
+ ROM_CONTINUE( 0x06000, 0x1000 )
+ ROM_CONTINUE( 0x26000, 0x1000 )
+ ROM_CONTINUE( 0x07000, 0x1000 )
+ ROM_CONTINUE( 0x27000, 0x1000 )
+ ROM_CONTINUE( 0x08000, 0x1000 )
+ ROM_CONTINUE( 0x28000, 0x1000 )
+ ROM_CONTINUE( 0x09000, 0x1000 )
+ ROM_CONTINUE( 0x29000, 0x1000 )
+ ROM_CONTINUE( 0x0a000, 0x1000 )
+ ROM_CONTINUE( 0x2a000, 0x1000 )
+ ROM_CONTINUE( 0x0b000, 0x1000 )
+ ROM_CONTINUE( 0x2b000, 0x1000 )
+ ROM_CONTINUE( 0x0c000, 0x1000 )
+ ROM_CONTINUE( 0x2c000, 0x1000 )
+ ROM_CONTINUE( 0x0d000, 0x1000 )
+ ROM_CONTINUE( 0x2d000, 0x1000 )
+ ROM_CONTINUE( 0x0e000, 0x1000 )
+ ROM_CONTINUE( 0x2e000, 0x1000 )
+ ROM_CONTINUE( 0x0f000, 0x1000 )
+ ROM_CONTINUE( 0x2f000, 0x1000 )
+ ROM_CONTINUE( 0x10000, 0x1000 )
+ ROM_CONTINUE( 0x30000, 0x1000 )
+ ROM_CONTINUE( 0x11000, 0x1000 )
+ ROM_CONTINUE( 0x31000, 0x1000 )
+ ROM_CONTINUE( 0x12000, 0x1000 )
+ ROM_CONTINUE( 0x32000, 0x1000 )
+ ROM_CONTINUE( 0x13000, 0x1000 )
+ ROM_CONTINUE( 0x33000, 0x1000 )
+ ROM_CONTINUE( 0x14000, 0x1000 )
+ ROM_CONTINUE( 0x34000, 0x1000 )
+ ROM_CONTINUE( 0x15000, 0x1000 )
+ ROM_CONTINUE( 0x35000, 0x1000 )
+ ROM_CONTINUE( 0x16000, 0x1000 )
+ ROM_CONTINUE( 0x36000, 0x1000 )
+ ROM_CONTINUE( 0x17000, 0x1000 )
+ ROM_CONTINUE( 0x37000, 0x1000 )
+ ROM_CONTINUE( 0x18000, 0x1000 )
+ ROM_CONTINUE( 0x38000, 0x1000 )
+ ROM_CONTINUE( 0x19000, 0x1000 )
+ ROM_CONTINUE( 0x39000, 0x1000 )
+ ROM_CONTINUE( 0x1a000, 0x1000 )
+ ROM_CONTINUE( 0x3a000, 0x1000 )
+ ROM_CONTINUE( 0x1b000, 0x1000 )
+ ROM_CONTINUE( 0x3b000, 0x1000 )
+ ROM_CONTINUE( 0x1c000, 0x1000 )
+ ROM_CONTINUE( 0x3c000, 0x1000 )
+ ROM_CONTINUE( 0x1d000, 0x1000 )
+ ROM_CONTINUE( 0x3d000, 0x1000 )
+ ROM_CONTINUE( 0x1e000, 0x1000 )
+ ROM_CONTINUE( 0x3e000, 0x1000 )
+ ROM_CONTINUE( 0x1f000, 0x1000 )
+ ROM_CONTINUE( 0x3f000, 0x1000 )
+ /* Death Derby gfx are corrupt - using this rom to fix the problem */
+ ROM_LOAD( "dderby.5e", 0x8000, 0x1000, CRC(7e2c0a53) SHA1(c3c62b32927ac3c5948faeff28d4c2148fe18d0b) )
+
+ ROM_REGION( 0x41000, "proms", 0 )
+ /* palette comes as banks of 16 - we change it to banks of 32, and remove banks 1 to 0xf (they are same as bank 0) */
+ ROM_LOAD( "madpac.7f", 0x1000, 0x40000, CRC(63e60ac6) SHA1(03b7035eb0a7e62f21793661c09b449113562ebb) )
+ ROM_COPY( "proms", 0x1000, 0x0000, 0x10 ) /* pacman and mspacman */
+ ROM_COPY( "proms", 0x1100, 0x0020, 0x10 ) /* 10. balloon ace */
+ ROM_COPY( "proms", 0x1110, 0x0040, 0x10 ) /* 11. beastie feastie */
+ ROM_COPY( "proms", 0x1120, 0x0060, 0x10 ) /* 12. make trax */
+ ROM_COPY( "proms", 0x1130, 0x0080, 0x10 ) /* 13. lizard wizard */
+ ROM_COPY( "proms", 0x1140, 0x00a0, 0x10 ) /* 14. atlantic city action */
+ ROM_COPY( "proms", 0x1150, 0x00c0, 0x10 ) /* 15. jump shot */
+ ROM_COPY( "proms", 0x1160, 0x00e0, 0x10 ) /* 16. ladybug */
+ ROM_COPY( "proms", 0x1170, 0x0100, 0x10 ) /* 17. zig zag */
+ ROM_COPY( "proms", 0x1180, 0x0120, 0x10 ) /* 18. chicken */
+ ROM_COPY( "proms", 0x1190, 0x0140, 0x10 ) /* 19. pacplus */
+ ROM_COPY( "proms", 0x11a0, 0x0160, 0x10 ) /* 1A. naughty mouse */
+ ROM_COPY( "proms", 0x11b0, 0x0180, 0x10 ) /* 1B. cycle battle */
+ ROM_COPY( "proms", 0x11c0, 0x01a0, 0x10 ) /* 1C. eggor */
+ ROM_COPY( "proms", 0x11d0, 0x01c0, 0x10 ) /* 1D. gorkans */
+ ROM_COPY( "proms", 0x11e0, 0x01e0, 0x10 ) /* 1E. homercide */
+ /* lookup table is already at banks of 128 */
+ ROM_LOAD( "madpac.4a", 0x0280, 0x0800, CRC(16057dac) SHA1(8dfa69f3847140dd5fa8514e9bf49962f5f9f0c0) )
+ ROM_COPY( "proms", 0x0280, 0x0200, 0x80 ) /* pacman and mspacman */
+
+ PACMAN_SOUND_PROMS
+ROM_END
+
+/* E253 - no proms were supplied - using standard pacman ones.
+ While the roms of the 2 games are different, I cannot discern any difference in gameplay */
+ROM_START( mspaceur )
+ ROM_REGION( 0x18000, "maincpu", 0 )
+ ROM_LOAD( "mspaceur.cpu", 0x00000, 0x4000, CRC(03905a76) SHA1(1780ef598c6150ffa44bf467479670f7ca50d512) )
+ ROM_CONTINUE( 0x10000, 0x4000 )
+ /* fix some corrupt bytes that stop the game from working. This makes it identical to mspacmbg. */
+ ROM_FILL( 0x01a61, 1, 0x21 )
+ ROM_FILL( 0x018b5, 1, 0x4e )
+ ROM_FILL( 0x0197d, 1, 0xda )
+ ROM_FILL( 0x12c0d, 1, 0xeb )
+
+ /* reorganise gfx so that all chars come first, followed by all sprites */
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "mspacj.gfx", 0x0000, 0x0800, CRC(8ee4a3b0) SHA1(01e3453c99f7a5d78ab083c49c650e898c0dd2ee) )
+ ROM_CONTINUE( 0x1000, 0x0800 )
+ ROM_CONTINUE( 0x0800, 0x0800 )
+ ROM_CONTINUE( 0x1800, 0x0800 )
+ ROM_IGNORE( 0x2000 )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mschamp )
+ ROM_REGION( 0x20000, "maincpu", 0 )
+ ROM_LOAD( "pm4.bin", 0x10000, 0x10000, CRC(7d6b6303) SHA1(65ad72a9188422653c02a48c07ed2661e1e36961) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pm5.bin", 0x0000, 0x0800, CRC(7fe6b9e2) SHA1(bfd0d84c7ef909ae078d8f60340682b3ff230aa6) )
+ ROM_CONTINUE( 0x1000, 0x0800 )
+ ROM_CONTINUE( 0x0800, 0x0800 )
+ ROM_CONTINUE( 0x1800, 0x0800 )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mschampx )
+ ROM_REGION( 0x20000, "maincpu", 0 )
+ ROM_LOAD( "pm4.bin", 0x10000, 0x10000, CRC(7d6b6303) SHA1(65ad72a9188422653c02a48c07ed2661e1e36961) )
+
+ ROM_REGION( 0x8000, "gfx1", 0 )
+ ROM_LOAD( "mschampx.5e", 0x0000, 0x4000, CRC(b3b248f8) SHA1(5e8271b28c6a98e36b4685224bbc99154ae6ba5b) )
+ ROM_LOAD( "mspacmnx.5f", 0x4000, 0x4000, CRC(6f625a9e) SHA1(d9d739ba412c9374b26006d99a345212ef97f868) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( multi10 )
+ ROM_REGION( 0x90000, "maincpu", 0 )
+ ROM_LOAD( "multi10.bin", 0x10000, 0x80000, CRC(9abb7d01) SHA1(44eb136f2ffe6475585b7558c4eddcf4ffaafe9e) )
+
+ ROM_REGION( 0x20000, "gfx1", 0 )
+ ROM_LOAD( "multi10.gfx", 0x00000, 0x1000, CRC(072b216f) SHA1(cc3cef4f9804c1120611ed750c50593eac9b10d4) )
+ ROM_CONTINUE( 0x10000, 0x1000 )
+ ROM_CONTINUE( 0x01000, 0x1000 )
+ ROM_CONTINUE( 0x11000, 0x1000 )
+ ROM_CONTINUE( 0x02000, 0x1000 )
+ ROM_CONTINUE( 0x12000, 0x1000 )
+ ROM_CONTINUE( 0x03000, 0x1000 )
+ ROM_CONTINUE( 0x13000, 0x1000 )
+ ROM_CONTINUE( 0x04000, 0x1000 )
+ ROM_CONTINUE( 0x14000, 0x1000 )
+ ROM_CONTINUE( 0x05000, 0x1000 )
+ ROM_CONTINUE( 0x15000, 0x1000 )
+ ROM_CONTINUE( 0x06000, 0x1000 )
+ ROM_CONTINUE( 0x16000, 0x1000 )
+ ROM_CONTINUE( 0x07000, 0x1000 )
+ ROM_CONTINUE( 0x17000, 0x1000 )
+ ROM_CONTINUE( 0x08000, 0x1000 )
+ ROM_CONTINUE( 0x18000, 0x1000 )
+ ROM_CONTINUE( 0x09000, 0x1000 )
+ ROM_CONTINUE( 0x19000, 0x1000 )
+ ROM_CONTINUE( 0x0a000, 0x1000 )
+ ROM_CONTINUE( 0x1a000, 0x1000 )
+ ROM_CONTINUE( 0x0b000, 0x1000 )
+ ROM_CONTINUE( 0x1b000, 0x1000 )
+ ROM_CONTINUE( 0x0c000, 0x1000 )
+ ROM_CONTINUE( 0x1c000, 0x1000 )
+ ROM_CONTINUE( 0x0d000, 0x1000 )
+ ROM_CONTINUE( 0x1d000, 0x1000 )
+ ROM_CONTINUE( 0x0e000, 0x1000 )
+ ROM_CONTINUE( 0x1e000, 0x1000 )
+ ROM_CONTINUE( 0x0f000, 0x1000 )
+ ROM_CONTINUE( 0x1f000, 0x1000 )
+
+ ROM_REGION( 0x0480, "proms", 0)
+ ROM_LOAD( "multipac.7f", 0x0000, 0x0100, CRC(40a5c3d9) SHA1(c159fe5ab64b9eb51a28ccd051fae219d2125577) )
+ ROM_COPY( "proms", 0x0000, 0x0040, 0x0020 )
+ ROM_LOAD( "multipac.4a", 0x0080, 0x0400, CRC(562a66de) SHA1(1281a7585f833b9f93269b14369e1c8df09f2292) )
+ ROM_COPY( "proms", 0x0180, 0x0100, 0x0080 )
+ ROM_COPY( "proms", 0x0280, 0x0180, 0x0080 )
+ ROM_COPY( "proms", 0x0380, 0x0200, 0x0080 )
+
+ PACMAN_SOUND_PROMS
+ROM_END
+
+ROM_START( multi11 )
+ ROM_REGION( 0x90000, "maincpu", 0 ) /* 8 banks of 64k for code */
+ ROM_LOAD( "multi11.bin", 0x10000, 0x80000, CRC(0fa787fe) SHA1(400592360b2930c1fbbbe1adc0198be007b2dd63) )
+
+ ROM_REGION( 0x20000, "gfx1", 0 )
+ ROM_LOAD( "multipac.gfx", 0x00000, 0x1000, CRC(012fb9ec) SHA1(e4b5647f27f5ddad0bb5580736d6acd3a86cdcf7) )
+ ROM_CONTINUE( 0x10000, 0x1000 )
+ ROM_CONTINUE( 0x01000, 0x1000 )
+ ROM_CONTINUE( 0x11000, 0x1000 )
+ ROM_CONTINUE( 0x02000, 0x1000 )
+ ROM_CONTINUE( 0x12000, 0x1000 )
+ ROM_CONTINUE( 0x03000, 0x1000 )
+ ROM_CONTINUE( 0x13000, 0x1000 )
+ ROM_CONTINUE( 0x04000, 0x1000 )
+ ROM_CONTINUE( 0x14000, 0x1000 )
+ ROM_CONTINUE( 0x05000, 0x1000 )
+ ROM_CONTINUE( 0x15000, 0x1000 )
+ ROM_CONTINUE( 0x06000, 0x1000 )
+ ROM_CONTINUE( 0x16000, 0x1000 )
+ ROM_CONTINUE( 0x07000, 0x1000 )
+ ROM_CONTINUE( 0x17000, 0x1000 )
+ ROM_CONTINUE( 0x08000, 0x1000 )
+ ROM_CONTINUE( 0x18000, 0x1000 )
+ ROM_CONTINUE( 0x09000, 0x1000 )
+ ROM_CONTINUE( 0x19000, 0x1000 )
+ ROM_CONTINUE( 0x0a000, 0x1000 )
+ ROM_CONTINUE( 0x1a000, 0x1000 )
+ ROM_CONTINUE( 0x0b000, 0x1000 )
+ ROM_CONTINUE( 0x1b000, 0x1000 )
+ ROM_CONTINUE( 0x0c000, 0x1000 )
+ ROM_CONTINUE( 0x1c000, 0x1000 )
+ ROM_CONTINUE( 0x0d000, 0x1000 )
+ ROM_CONTINUE( 0x1d000, 0x1000 )
+ ROM_CONTINUE( 0x0e000, 0x1000 )
+ ROM_CONTINUE( 0x1e000, 0x1000 )
+ ROM_CONTINUE( 0x0f000, 0x1000 )
+ ROM_CONTINUE( 0x1f000, 0x1000 )
+
+ ROM_REGION( 0x0480, "proms", 0)
+ ROM_LOAD( "multipac.7f", 0x0000, 0x0100, CRC(40a5c3d9) SHA1(c159fe5ab64b9eb51a28ccd051fae219d2125577) )
+ ROM_COPY( "proms", 0x0000, 0x0040, 0x0020 )
+ ROM_LOAD( "multipac.4a", 0x0080, 0x0400, CRC(562a66de) SHA1(1281a7585f833b9f93269b14369e1c8df09f2292) )
+ ROM_COPY( "proms", 0x0180, 0x0100, 0x0080 )
+ ROM_COPY( "proms", 0x0280, 0x0180, 0x0080 )
+ ROM_COPY( "proms", 0x0380, 0x0200, 0x0080 )
+
+ PACMAN_SOUND_PROMS
+ROM_END
+
+ROM_START( multi13 )
+ ROM_REGION( 0x90000, "maincpu", 0 ) /* 8 banks of 64k for code */
+ ROM_LOAD( "multi13.bin", 0x10000, 0x80000, CRC(0aca3ce9) SHA1(81dd22fd2e8137645fc6cdeb534b4e5c113704fe) )
+
+ ROM_REGION( 0x20000, "gfx1", 0 )
+ ROM_LOAD( "multipac.gfx", 0x00000, 0x1000, CRC(012fb9ec) SHA1(e4b5647f27f5ddad0bb5580736d6acd3a86cdcf7) )
+ ROM_CONTINUE( 0x10000, 0x1000 )
+ ROM_CONTINUE( 0x01000, 0x1000 )
+ ROM_CONTINUE( 0x11000, 0x1000 )
+ ROM_CONTINUE( 0x02000, 0x1000 )
+ ROM_CONTINUE( 0x12000, 0x1000 )
+ ROM_CONTINUE( 0x03000, 0x1000 )
+ ROM_CONTINUE( 0x13000, 0x1000 )
+ ROM_CONTINUE( 0x04000, 0x1000 )
+ ROM_CONTINUE( 0x14000, 0x1000 )
+ ROM_CONTINUE( 0x05000, 0x1000 )
+ ROM_CONTINUE( 0x15000, 0x1000 )
+ ROM_CONTINUE( 0x06000, 0x1000 )
+ ROM_CONTINUE( 0x16000, 0x1000 )
+ ROM_CONTINUE( 0x07000, 0x1000 )
+ ROM_CONTINUE( 0x17000, 0x1000 )
+ ROM_CONTINUE( 0x08000, 0x1000 )
+ ROM_CONTINUE( 0x18000, 0x1000 )
+ ROM_CONTINUE( 0x09000, 0x1000 )
+ ROM_CONTINUE( 0x19000, 0x1000 )
+ ROM_CONTINUE( 0x0a000, 0x1000 )
+ ROM_CONTINUE( 0x1a000, 0x1000 )
+ ROM_CONTINUE( 0x0b000, 0x1000 )
+ ROM_CONTINUE( 0x1b000, 0x1000 )
+ ROM_CONTINUE( 0x0c000, 0x1000 )
+ ROM_CONTINUE( 0x1c000, 0x1000 )
+ ROM_CONTINUE( 0x0d000, 0x1000 )
+ ROM_CONTINUE( 0x1d000, 0x1000 )
+ ROM_CONTINUE( 0x0e000, 0x1000 )
+ ROM_CONTINUE( 0x1e000, 0x1000 )
+ ROM_CONTINUE( 0x0f000, 0x1000 )
+ ROM_CONTINUE( 0x1f000, 0x1000 )
+
+ ROM_REGION( 0x0480, "proms", 0)
+ ROM_LOAD( "multipac.7f", 0x0000, 0x0100, CRC(40a5c3d9) SHA1(c159fe5ab64b9eb51a28ccd051fae219d2125577) )
+ ROM_COPY( "proms", 0x0000, 0x0040, 0x0020 )
+ ROM_LOAD( "multipac.4a", 0x0080, 0x0400, CRC(562a66de) SHA1(1281a7585f833b9f93269b14369e1c8df09f2292) )
+ ROM_COPY( "proms", 0x0180, 0x0100, 0x0080 )
+ ROM_COPY( "proms", 0x0280, 0x0180, 0x0080 )
+ ROM_COPY( "proms", 0x0380, 0x0200, 0x0080 )
+
+ PACMAN_SOUND_PROMS
+ROM_END
+
+ROM_START( multi14 )
+ ROM_REGION( 0x90000, "maincpu", 0 ) /* 8 banks of 64k for code */
+ ROM_LOAD( "multi14.bin", 0x10000, 0x80000, CRC(23de184d) SHA1(e466a1c46091a33a3f50747455abb8618a23f824) )
+
+ ROM_REGION( 0x20000, "gfx1", 0 )
+ ROM_LOAD( "multipac.gfx", 0x00000, 0x1000, CRC(012fb9ec) SHA1(e4b5647f27f5ddad0bb5580736d6acd3a86cdcf7) )
+ ROM_CONTINUE( 0x10000, 0x1000 )
+ ROM_CONTINUE( 0x01000, 0x1000 )
+ ROM_CONTINUE( 0x11000, 0x1000 )
+ ROM_CONTINUE( 0x02000, 0x1000 )
+ ROM_CONTINUE( 0x12000, 0x1000 )
+ ROM_CONTINUE( 0x03000, 0x1000 )
+ ROM_CONTINUE( 0x13000, 0x1000 )
+ ROM_CONTINUE( 0x04000, 0x1000 )
+ ROM_CONTINUE( 0x14000, 0x1000 )
+ ROM_CONTINUE( 0x05000, 0x1000 )
+ ROM_CONTINUE( 0x15000, 0x1000 )
+ ROM_CONTINUE( 0x06000, 0x1000 )
+ ROM_CONTINUE( 0x16000, 0x1000 )
+ ROM_CONTINUE( 0x07000, 0x1000 )
+ ROM_CONTINUE( 0x17000, 0x1000 )
+ ROM_CONTINUE( 0x08000, 0x1000 )
+ ROM_CONTINUE( 0x18000, 0x1000 )
+ ROM_CONTINUE( 0x09000, 0x1000 )
+ ROM_CONTINUE( 0x19000, 0x1000 )
+ ROM_CONTINUE( 0x0a000, 0x1000 )
+ ROM_CONTINUE( 0x1a000, 0x1000 )
+ ROM_CONTINUE( 0x0b000, 0x1000 )
+ ROM_CONTINUE( 0x1b000, 0x1000 )
+ ROM_CONTINUE( 0x0c000, 0x1000 )
+ ROM_CONTINUE( 0x1c000, 0x1000 )
+ ROM_CONTINUE( 0x0d000, 0x1000 )
+ ROM_CONTINUE( 0x1d000, 0x1000 )
+ ROM_CONTINUE( 0x0e000, 0x1000 )
+ ROM_CONTINUE( 0x1e000, 0x1000 )
+ ROM_CONTINUE( 0x0f000, 0x1000 )
+ ROM_CONTINUE( 0x1f000, 0x1000 )
+
+ ROM_REGION( 0x0480, "proms", 0)
+ ROM_LOAD( "multipac.7f", 0x0000, 0x0100, CRC(40a5c3d9) SHA1(c159fe5ab64b9eb51a28ccd051fae219d2125577) )
+ ROM_COPY( "proms", 0x0000, 0x0040, 0x0020 )
+ ROM_LOAD( "multipac.4a", 0x0080, 0x0400, CRC(562a66de) SHA1(1281a7585f833b9f93269b14369e1c8df09f2292) )
+ ROM_COPY( "proms", 0x0180, 0x0100, 0x0080 )
+ ROM_COPY( "proms", 0x0280, 0x0180, 0x0080 )
+ ROM_COPY( "proms", 0x0380, 0x0200, 0x0080 )
+
+ PACMAN_SOUND_PROMS
+ROM_END
+
+ROM_START( multi15 )
+ ROM_REGION( 0x90000, "maincpu", 0 ) /* 8 banks of 64k for code */
+ ROM_LOAD( "multi15.bin", 0x10000, 0x80000, CRC(eb181a29) SHA1(14a44730d36c25c76ae68cbfd51febda9d8d1dfa) )
+
+ /* reorganise gfx so that all chars come first, followed by all sprites */
+ ROM_REGION( 0x20000, "gfx1", 0 )
+ ROM_LOAD( "multipac.gfx", 0x00000, 0x1000, CRC(012fb9ec) SHA1(e4b5647f27f5ddad0bb5580736d6acd3a86cdcf7) )
+ ROM_CONTINUE( 0x10000, 0x1000 )
+ ROM_CONTINUE( 0x01000, 0x1000 )
+ ROM_CONTINUE( 0x11000, 0x1000 )
+ ROM_CONTINUE( 0x02000, 0x1000 )
+ ROM_CONTINUE( 0x12000, 0x1000 )
+ ROM_CONTINUE( 0x03000, 0x1000 )
+ ROM_CONTINUE( 0x13000, 0x1000 )
+ ROM_CONTINUE( 0x04000, 0x1000 )
+ ROM_CONTINUE( 0x14000, 0x1000 )
+ ROM_CONTINUE( 0x05000, 0x1000 )
+ ROM_CONTINUE( 0x15000, 0x1000 )
+ ROM_CONTINUE( 0x06000, 0x1000 )
+ ROM_CONTINUE( 0x16000, 0x1000 )
+ ROM_CONTINUE( 0x07000, 0x1000 )
+ ROM_CONTINUE( 0x17000, 0x1000 )
+ ROM_CONTINUE( 0x08000, 0x1000 )
+ ROM_CONTINUE( 0x18000, 0x1000 )
+ ROM_CONTINUE( 0x09000, 0x1000 )
+ ROM_CONTINUE( 0x19000, 0x1000 )
+ ROM_CONTINUE( 0x0a000, 0x1000 )
+ ROM_CONTINUE( 0x1a000, 0x1000 )
+ ROM_CONTINUE( 0x0b000, 0x1000 )
+ ROM_CONTINUE( 0x1b000, 0x1000 )
+ ROM_CONTINUE( 0x0c000, 0x1000 )
+ ROM_CONTINUE( 0x1c000, 0x1000 )
+ ROM_CONTINUE( 0x0d000, 0x1000 )
+ ROM_CONTINUE( 0x1d000, 0x1000 )
+ ROM_CONTINUE( 0x0e000, 0x1000 )
+ ROM_CONTINUE( 0x1e000, 0x1000 )
+ ROM_CONTINUE( 0x0f000, 0x1000 )
+ ROM_CONTINUE( 0x1f000, 0x1000 )
+
+ ROM_REGION( 0x0480, "proms", 0)
+ /* this rom has 4 banks of (the 16 colours in the palette + 16 blanks) */
+ ROM_LOAD( "multipac.7f", 0x0000, 0x0100, CRC(40a5c3d9) SHA1(c159fe5ab64b9eb51a28ccd051fae219d2125577) )
+ ROM_COPY( "proms", 0x0000, 0x0040, 0x0020 ) /* crush roller */
+ /* this rom has 4 banks of (the 128 lookup colour codes + 128 blanks) */
+ ROM_LOAD( "multipac.4a", 0x0080, 0x0400, CRC(562a66de) SHA1(1281a7585f833b9f93269b14369e1c8df09f2292) )
+ /* we move the tables down, to remove the blanks */
+ ROM_COPY( "proms", 0x0180, 0x0100, 0x0080 )
+ ROM_COPY( "proms", 0x0280, 0x0180, 0x0080 )
+ ROM_COPY( "proms", 0x0380, 0x0200, 0x0080 )
+
+ PACMAN_SOUND_PROMS
+ROM_END
+
+ROM_START( pm4n1 )
+ ROM_REGION( 0x34000, "maincpu", 0 )
+ ROM_LOAD( "pm4n1.cpu", 0x10000, 0x24000, CRC(248f3153) SHA1(c36fb95c38619ec4947017a686f7d5feb643d269) )
+ ROM_FILL(0x303fe, 1, 0xcd)
+ ROM_FILL(0x303ff, 1, 0xa1) /* These bytes allow Pacman to start up */
+ ROM_FILL(0x30400, 1, 0x2b)
+
+ ROM_REGION( 0x0a000, "gfx1", 0 )
+ ROM_LOAD( "96in1a.gfx", 0x00000, 0x1000, CRC(f4ce2dca) SHA1(b0515ee98766225d4d4a1368949942324703e865) )
+ ROM_CONTINUE( 0x05000, 0x1000 ) /* piranha, don't want */
+ ROM_CONTINUE( 0x00000, 0x1000 )
+ ROM_CONTINUE( 0x05000, 0x1000 ) /* menu */
+ ROM_CONTINUE( 0x01000, 0x1000 )
+ ROM_CONTINUE( 0x06000, 0x1000 ) /* fast pacman */
+ ROM_CONTINUE( 0x04000, 0x1000 )
+ ROM_CONTINUE( 0x09000, 0x1000 ) /* pacman */
+ /* 4 dummy reads because rom_ignore doesn't work properly */
+ ROM_CONTINUE( 0x02000, 0x1000 )
+ ROM_CONTINUE( 0x07000, 0x1000 )
+ ROM_CONTINUE( 0x03000, 0x1000 )
+ ROM_CONTINUE( 0x08000, 0x1000 )
+ ROM_CONTINUE( 0x02000, 0x1000 )
+ ROM_CONTINUE( 0x07000, 0x1000 ) /* mspacman */
+ ROM_CONTINUE( 0x03000, 0x1000 )
+ ROM_CONTINUE( 0x08000, 0x1000 ) /* fast mspacman */
+ ROM_IGNORE( 0x10000)
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pm4n1a )
+ ROM_REGION( 0x34000, "maincpu", 0 )
+ ROM_LOAD( "pm4n1a.cpu", 0x10000, 0x24000, CRC(cdc319bb) SHA1(0f7b9956a67e46d5f3cb0bd84c350662668fd02d) )
+
+ ROM_REGION( 0x0a000, "gfx1", 0 )
+ ROM_LOAD( "96in1a.gfx", 0x00000, 0x1000, CRC(f4ce2dca) SHA1(b0515ee98766225d4d4a1368949942324703e865) )
+ ROM_CONTINUE( 0x05000, 0x1000 ) /* piranha, don't want */
+ ROM_CONTINUE( 0x00000, 0x1000 )
+ ROM_CONTINUE( 0x05000, 0x1000 ) /* menu */
+ ROM_CONTINUE( 0x01000, 0x1000 )
+ ROM_CONTINUE( 0x06000, 0x1000 ) /* fast pacman */
+ ROM_CONTINUE( 0x04000, 0x1000 )
+ ROM_CONTINUE( 0x09000, 0x1000 ) /* pacman */
+ /* 4 dummy reads because rom_ignore doesn't work properly */
+ ROM_CONTINUE( 0x02000, 0x1000 )
+ ROM_CONTINUE( 0x07000, 0x1000 )
+ ROM_CONTINUE( 0x03000, 0x1000 )
+ ROM_CONTINUE( 0x08000, 0x1000 )
+ ROM_CONTINUE( 0x02000, 0x1000 )
+ ROM_CONTINUE( 0x07000, 0x1000 ) /* mspacman */
+ ROM_CONTINUE( 0x03000, 0x1000 )
+ ROM_CONTINUE( 0x08000, 0x1000 ) /* fast mspacman */
+ ROM_IGNORE( 0x10000)
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pm4n1b )
+ ROM_REGION( 0x40000, "maincpu", 0 )
+ ROM_LOAD( "pm4n1b.cpu", 0x10000, 0x30000, CRC(31ea8134) SHA1(61bd5589ed1d304cfef90ccf9af95f2a6743782e) )
+ /* Alternative working rom */
+ //ROM_LOAD( "pm4n1ba.cpu", 0x10000, 0x24000, CRC(2709642c) SHA1(5e2984a9ff5db416ee065651765bf05c070ca052) )
+
+ ROM_REGION( 0xa000, "gfx1", 0 )
+ ROM_LOAD( "pm4n1b.gfx", 0x0000, 0x1000, CRC(949a50a2) SHA1(2b661e584b35740ce8b530f51485865a620354e6) )
+ ROM_CONTINUE( 0x5000, 0x1000 ) /* menu */
+ ROM_CONTINUE( 0x2000, 0x1000 )
+ ROM_CONTINUE( 0x7000, 0x1000 ) /* mspacman */
+ ROM_COPY( "gfx1", 0x0000, 0x1000, 0x1000 )
+ ROM_COPY( "gfx1", 0x5000, 0x6000, 0x1000 ) /* copy menu to fast pacman */
+ ROM_COPY( "gfx1", 0x0000, 0x4000, 0x1000 )
+ ROM_COPY( "gfx1", 0x5000, 0x9000, 0x1000 ) /* copy menu to pacman */
+ ROM_COPY( "gfx1", 0x2000, 0x3000, 0x1000 )
+ ROM_COPY( "gfx1", 0x7000, 0x8000, 0x1000 ) /* copy mspacman to fast mspacman */
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pm4n1c )
+ ROM_REGION( 0x38000, "maincpu", 0 )
+ ROM_LOAD( "pm4n1c.cpu", 0x10000, 0x28000, CRC(48cafb4e) SHA1(8ff42c3524020f5f599f8f3c76f279b1af9983a9) )
+
+ ROM_REGION( 0xa000, "gfx1", 0 )
+ ROM_LOAD( "pm4n1b.gfx", 0x0000, 0x1000, CRC(949a50a2) SHA1(2b661e584b35740ce8b530f51485865a620354e6) )
+ ROM_CONTINUE( 0x5000, 0x1000 ) /* menu */
+ ROM_CONTINUE( 0x2000, 0x1000 )
+ ROM_CONTINUE( 0x7000, 0x1000 ) /* mspacman */
+ ROM_COPY( "gfx1", 0x0000, 0x1000, 0x1000 )
+ ROM_COPY( "gfx1", 0x5000, 0x6000, 0x1000 ) /* copy menu to fast pacman */
+ ROM_COPY( "gfx1", 0x0000, 0x4000, 0x1000 )
+ ROM_COPY( "gfx1", 0x5000, 0x9000, 0x1000 ) /* copy menu to pacman */
+ ROM_COPY( "gfx1", 0x2000, 0x3000, 0x1000 )
+ ROM_COPY( "gfx1", 0x7000, 0x8000, 0x1000 ) /* copy mspacman to fast mspacman */
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pm4n1d )
+ ROM_REGION( 0x30000, "maincpu", 0 )
+// ROM_LOAD( "pm4n1d.cpu", 0x10000, 0x20000, CRC(28f95683) SHA1(297ff0fb2d12293830cef9a4cc77629d658a96f9) )
+ ROM_LOAD( "pm4n1d.cpu", 0x10000, 0x10000, CRC(9bab691e) SHA1(d90ee5e5b345c9feabe5f629132bd5f2b83c9c4f) )
+
+ ROM_REGION( 0xa000, "gfx1", 0 )
+ ROM_LOAD( "pm4n1b.gfx", 0x0000, 0x1000, CRC(949a50a2) SHA1(2b661e584b35740ce8b530f51485865a620354e6) )
+ ROM_CONTINUE( 0x5000, 0x1000 ) /* menu */
+ ROM_CONTINUE( 0x2000, 0x1000 )
+ ROM_CONTINUE( 0x7000, 0x1000 ) /* mspacman */
+ ROM_COPY( "gfx1", 0x0000, 0x1000, 0x1000 )
+ ROM_COPY( "gfx1", 0x5000, 0x6000, 0x1000 ) /* copy menu to fast pacman */
+ ROM_COPY( "gfx1", 0x0000, 0x4000, 0x1000 )
+ ROM_COPY( "gfx1", 0x5000, 0x9000, 0x1000 ) /* copy menu to pacman */
+ ROM_COPY( "gfx1", 0x2000, 0x3000, 0x1000 )
+ ROM_COPY( "gfx1", 0x7000, 0x8000, 0x1000 ) /* copy mspacman to fast mspacman */
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pm4n1e )
+ ROM_REGION( 0x30000, "maincpu", 0 )
+// ROM_LOAD( "pm4n1e.cpu", 0x10000, 0x20000, CRC(82035513) SHA1(9d05e5a07b47a2668e497a66cd6ceb29bbcab659) )
+ ROM_LOAD( "pm4n1e.cpu", 0x10000, 0x10000, CRC(5bbf374a) SHA1(426451a9cd4e8680ab19c2ce635435c0b43cba95) )
+
+ ROM_REGION( 0xa000, "gfx1", 0 )
+ ROM_LOAD( "pm4n1b.gfx", 0x0000, 0x1000, CRC(949a50a2) SHA1(2b661e584b35740ce8b530f51485865a620354e6) )
+ ROM_CONTINUE( 0x5000, 0x1000 ) /* menu */
+ ROM_CONTINUE( 0x2000, 0x1000 )
+ ROM_CONTINUE( 0x7000, 0x1000 ) /* mspacman */
+ ROM_COPY( "gfx1", 0x0000, 0x1000, 0x1000 )
+ ROM_COPY( "gfx1", 0x5000, 0x6000, 0x1000 ) /* copy menu to fast pacman */
+ ROM_COPY( "gfx1", 0x0000, 0x4000, 0x1000 )
+ ROM_COPY( "gfx1", 0x5000, 0x9000, 0x1000 ) /* copy menu to pacman */
+ ROM_COPY( "gfx1", 0x2000, 0x3000, 0x1000 )
+ ROM_COPY( "gfx1", 0x7000, 0x8000, 0x1000 ) /* copy mspacman to fast mspacman */
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( superabc )
+ ROM_REGION( 0x90000, "maincpu", 0 ) /* 8 banks of 64k for code */
+ ROM_LOAD( "superabc.u14", 0x10000, 0x80000, CRC(a560efe6) SHA1(c7d43cc3bb3b1b10d06403462276231bfc8542dd) )
+
+ ROM_REGION( 0x10000, "gfx1", 0 )
+ ROM_LOAD( "superabc.u1", 0x00000, 0x1000, CRC(45caace0) SHA1(f850bd09ec68b0263ac8b30ae38c3878c7978ace) )
+ ROM_CONTINUE( 0x08000, 0x1000 )
+ ROM_CONTINUE( 0x04000, 0x1000 ) // these duplicate entries should be ROM_IGNORE but it has a bug
+ ROM_CONTINUE( 0x0c000, 0x1000 )
+ ROM_CONTINUE( 0x04000, 0x1000 )
+ ROM_CONTINUE( 0x0c000, 0x1000 )
+ ROM_CONTINUE( 0x02000, 0x1000 )
+ ROM_CONTINUE( 0x0a000, 0x1000 )
+ ROM_CONTINUE( 0x02000, 0x1000 )
+ ROM_CONTINUE( 0x0a000, 0x1000 )
+ ROM_CONTINUE( 0x06000, 0x1000 )
+ ROM_CONTINUE( 0x0e000, 0x1000 )
+ ROM_CONTINUE( 0x06000, 0x1000 )
+ ROM_CONTINUE( 0x0e000, 0x1000 )
+ ROM_CONTINUE( 0x01000, 0x1000 )
+ ROM_CONTINUE( 0x09000, 0x1000 )
+ ROM_CONTINUE( 0x01000, 0x1000 )
+ ROM_CONTINUE( 0x09000, 0x1000 )
+ ROM_CONTINUE( 0x05000, 0x1000 )
+ ROM_CONTINUE( 0x0d000, 0x1000 )
+ ROM_CONTINUE( 0x05000, 0x1000 )
+ ROM_CONTINUE( 0x0d000, 0x1000 )
+ ROM_CONTINUE( 0x03000, 0x1000 )
+ ROM_CONTINUE( 0x0b000, 0x1000 )
+ ROM_CONTINUE( 0x03000, 0x1000 )
+ ROM_CONTINUE( 0x0b000, 0x1000 )
+ ROM_CONTINUE( 0x07000, 0x1000 )
+ ROM_CONTINUE( 0x0f000, 0x1000 )
+ ROM_CONTINUE( 0x07000, 0x1000 )
+ ROM_CONTINUE( 0x0f000, 0x1000 )
+ ROM_IGNORE( 0x2000 )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD( "superabc.7f", 0x0000, 0x0020, CRC(3a188666) SHA1(067386e477ce48bbde3cf71f744a78a42238d236) )
+ ROM_LOAD( "superabc.4a", 0x0020, 0x0100, CRC(4382c049) SHA1(5e535b1a6852260f38ae1e5cd57290a85cb6927f) )
+
+ PACMAN_SOUND_PROMS
+ROM_END
+
+ROM_START( superabco )
+ ROM_REGION( 0x90000, "maincpu", 0 ) /* 8 banks of 64k for code */
+ ROM_LOAD( "superabco.u14", 0x10000, 0x80000, CRC(62565ad8) SHA1(cb434c608ee463788b73152d84ce6173bdfa350d) )
+
+ ROM_REGION( 0x10000, "gfx1", 0 )
+ ROM_LOAD( "superabc.u1", 0x00000, 0x1000, CRC(45caace0) SHA1(f850bd09ec68b0263ac8b30ae38c3878c7978ace) )
+ ROM_CONTINUE( 0x08000, 0x1000 )
+ ROM_CONTINUE( 0x04000, 0x1000 ) // these duplicate entries should be ROM_IGNORE but it has a bug
+ ROM_CONTINUE( 0x0c000, 0x1000 )
+ ROM_CONTINUE( 0x04000, 0x1000 )
+ ROM_CONTINUE( 0x0c000, 0x1000 )
+ ROM_CONTINUE( 0x02000, 0x1000 )
+ ROM_CONTINUE( 0x0a000, 0x1000 )
+ ROM_CONTINUE( 0x02000, 0x1000 )
+ ROM_CONTINUE( 0x0a000, 0x1000 )
+ ROM_CONTINUE( 0x06000, 0x1000 )
+ ROM_CONTINUE( 0x0e000, 0x1000 )
+ ROM_CONTINUE( 0x06000, 0x1000 )
+ ROM_CONTINUE( 0x0e000, 0x1000 )
+ ROM_CONTINUE( 0x01000, 0x1000 )
+ ROM_CONTINUE( 0x09000, 0x1000 )
+ ROM_CONTINUE( 0x01000, 0x1000 )
+ ROM_CONTINUE( 0x09000, 0x1000 )
+ ROM_CONTINUE( 0x05000, 0x1000 )
+ ROM_CONTINUE( 0x0d000, 0x1000 )
+ ROM_CONTINUE( 0x05000, 0x1000 )
+ ROM_CONTINUE( 0x0d000, 0x1000 )
+ ROM_CONTINUE( 0x03000, 0x1000 )
+ ROM_CONTINUE( 0x0b000, 0x1000 )
+ ROM_CONTINUE( 0x03000, 0x1000 )
+ ROM_CONTINUE( 0x0b000, 0x1000 )
+ ROM_CONTINUE( 0x07000, 0x1000 )
+ ROM_CONTINUE( 0x0f000, 0x1000 )
+ ROM_CONTINUE( 0x07000, 0x1000 )
+ ROM_CONTINUE( 0x0f000, 0x1000 )
+ ROM_IGNORE( 0x2000 )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD( "superabc.7f", 0x0000, 0x0020, CRC(3a188666) SHA1(067386e477ce48bbde3cf71f744a78a42238d236) )
+ ROM_LOAD( "superabc.4a", 0x0020, 0x0100, CRC(4382c049) SHA1(5e535b1a6852260f38ae1e5cd57290a85cb6927f) )
+
+ PACMAN_SOUND_PROMS
+ROM_END
+
+
+/*************************************
+ *
+ * Game drivers
+ *
+ *************************************/
+
+GAME( 1995, mschamp, mspacman, mschamp, mschamp, driver_device, 0, ROT90, "hack", "Ms. Pacman Champion Edition / Super Zola Pac Gal", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, mschampx, mspacmnx, mschampx, mschamp, driver_device, 0, ROT90, "hack", "Ms. Pacman Champion Edition / Super Zola Pac Gal (hires hack)", MACHINE_SUPPORTS_SAVE )
+
+/* Dave Widel's Games - http://www.widel.com */
+
+GAME( 2005, 96in1, madpac, 96in1, 96in1, pacman_state, 96in1, ROT90, "David Widel", "96 in 1 v3 [h]", MACHINE_SUPPORTS_SAVE )
+GAME( 2005, 96in1c, madpac, 96in1, 96in1, pacman_state, 96in1, ROT90, "David Widel", "96 in 1 v1 [h]", MACHINE_SUPPORTS_SAVE )
+GAME( 2005, 96in1a, madpac, 96in1, 96in1, pacman_state, 96in1, ROT90, "David Widel", "96 in 1 v2 [h]", MACHINE_SUPPORTS_SAVE )
+GAME( 2005, 96in1b, madpac, 96in1b, 96in1, pacman_state, madpac, ROT90, "David Widel", "96 in 1 v4 [h]", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, hackypac, madpac, hackypac, pacman0, pacman_state, madpac, ROT90, "David Widel", "Hacky Pac", MACHINE_SUPPORTS_SAVE )
+GAME( 2005, madpac, 0, madpac, 96in1, pacman_state, madpac, ROT90, "David Widel", "Mad Pac [h]", MACHINE_SUPPORTS_SAVE )
+
+/* Other Misc Hacks */
+
+GAME( 1993, mspaceur, mspacman, mspaceur, mspacman, pacman_state, mspaceur, ROT90, "ImpEuropeX Corp", "Ms. Pac-man", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, multi10, multi15, multipac, multipac, pacman_state, multipac, ROT90, "Clay Cowgill", "Multipac 1.0", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, multi11, multi15, multipac, multipac, pacman_state, multipac, ROT90, "Clay Cowgill", "Multipac 1.1", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, multi13, multi15, multipac, multipac, pacman_state, multipac, ROT90, "Clay Cowgill", "Multipac 1.3", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, multi14, multi15, multipac, multipac, pacman_state, multipac, ROT90, "Clay Cowgill", "Multipac 1.4", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, multi15, 0, multipac, multipac, pacman_state, multipac, ROT90, "Clay Cowgill", "Multipac 1.5", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, pm4n1, puckman, pm4n1, pacman0, pacman_state, pm4n1, ROT90, "Jason Souza", "Pacman 4in1 v1.0 [c]", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, pm4n1a, puckman, pm4n1, pacman0, pacman_state, pm4n1, ROT90, "Jason Souza", "Pacman 4in1 v1.1 [c]", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, pm4n1b, puckman, pm4n1, pacman0, pacman_state, pm4n1, ROT90, "Jason Souza", "Pacman 4in1 v1.2 [c]", MACHINE_SUPPORTS_SAVE ) // www.souzaonline.com/Games/Hacks/4n1hack.htm
+GAME( 2008, pm4n1c, puckman, pm4n1c, pacman0, pacman_state, pm4n1, ROT90, "Jason Souza", "Pacman 4in1 v2.3 [c][h]", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, pm4n1d, puckman, pm4n1d, pacman0, pacman_state, pm4n1, ROT90, "Jason Souza", "Pacman 4in1 v3.0 [c][h]", MACHINE_SUPPORTS_SAVE )
+GAME( 2010, pm4n1e, puckman, pm4n1d, pacman0, pacman_state, pm4n1, ROT90, "Jason Souza", "Pacman 4in1 v3.3 [c][h]", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, superabc, 0, superabc, superabc, pacman_state, superabc, ROT90, "TwoBit Score", "Pacman SuperABC (1999-09-03)[h]", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, superabco,superabc, superabc, superabc, pacman_state, superabc, ROT90, "TwoBit Score", "Pacman SuperABC (1999-03-08)[h]", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/nemesis.cpp b/docs/release/src/hbmame/drivers/nemesis.cpp
new file mode 100644
index 00000000000..3dd66c42829
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/nemesis.cpp
@@ -0,0 +1,134 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/nemesis.cpp"
+
+#if 0
+static INPUT_PORTS_START( spclone )
+ PORT_START("IN0")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 )
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 )
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SERVICE1 )
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START1 )
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START2 )
+ PORT_DIPNAME( 0x20, 0x20, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SWT:1")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) ) PORT_DIPLOCATION("SWT:2")
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_SERVICE_DIPLOC( 0x80, IP_ACTIVE_LOW, "SWT:3" )
+
+ PORT_START("IN1")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1) // power-up
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(1) // shoot
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(1) // missile
+ PORT_DIPNAME( 0x80, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SWT:3")
+ PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( Cocktail ) )
+
+ PORT_START("IN2")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2)
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2)
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(2)
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
+
+ PORT_START("DSW0")
+ PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW0: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, DEF_STR( Free_Play ) )
+ PORT_DIPNAME( 0x10, 0x10, "Font" )
+ PORT_DIPSETTING( 0x10, "Koi no Hotrock" )
+ PORT_DIPSETTING( 0x00, "Gradius III" )
+ PORT_DIPNAME( 0x20, 0x20, "k007232" )
+ PORT_DIPSETTING( 0x20, "old" )
+ PORT_DIPSETTING( 0x00, "new" )
+ PORT_DIPNAME( 0x40, 0x40, "Pulse" )
+ PORT_DIPSETTING( 0x40, "PULSE" )
+ PORT_DIPSETTING( 0x00, "RIPPLE" )
+ PORT_DIPNAME( 0x80, 0x80, "2P alone play input" )
+ PORT_DIPSETTING( 0x80, "1P" )
+ PORT_DIPSETTING( 0x00, "2P" )
+
+ PORT_START("DSW1")
+ PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
+ PORT_DIPSETTING( 0x03, "3" )
+ PORT_DIPSETTING( 0x02, "4" )
+ PORT_DIPSETTING( 0x01, "5" )
+ PORT_DIPSETTING( 0x00, "6" )
+ PORT_DIPNAME( 0x04, 0x04, "Stage4 expert limit" )
+ PORT_DIPSETTING( 0x04, "on" )
+ PORT_DIPSETTING( 0x00, "off" )
+ PORT_DIPNAME( 0x18, 0x18, DEF_STR( Bonus_Life ) )
+ PORT_DIPSETTING( 0x10, "70k and every 200k" )
+ PORT_DIPSETTING( 0x18, "100k and every 300k" )
+ PORT_DIPSETTING( 0x08, "10k only" )
+ PORT_DIPSETTING( 0x00, "NONE" )
+ PORT_DIPNAME( 0x60, 0x40, DEF_STR( Difficulty ) )
+ PORT_DIPSETTING( 0x60, DEF_STR( Easy ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( Medium ) )
+ PORT_DIPSETTING( 0x20, DEF_STR( Hard ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) )
+ PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+INPUT_PORTS_END
+#endif
+
+ROM_START( spclone )
+ ROM_REGION( 0x80000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "spclone.18b", 0x00000, 0x10000, CRC(14c19a46) SHA1(1a65a98c390693949247f4e568fe71cff82d59b4) )
+ ROM_LOAD16_BYTE( "spclone.18c", 0x00001, 0x10000, CRC(fdafc246) SHA1(1641411023f85afe82af749b15d067efc5859f4e) )
+ ROM_LOAD16_BYTE( "587-c03.17b", 0x40000, 0x20000, CRC(e5caf6e6) SHA1(f5df4fbc43cfa6e2866558c99dd95ba8dc89dc7a) )
+ ROM_LOAD16_BYTE( "587-c06.17c", 0x40001, 0x20000, CRC(c2f567ea) SHA1(0c38fea53f3d4a9ae0deada5669deca4be8c9fd3) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "spclone.11j", 0x00000, 0x08000, CRC(bf83b182) SHA1(e702eddffea3bad8944bfab03d53c6e277bca866) )
+
+ ROM_REGION( 0x04000, "vlm", 0 )
+ ROM_LOAD( "587-d08.8g", 0x00000, 0x04000, CRC(f9ac6b82) SHA1(3370fc3a7f82e922e19d54afb3bca7b07fa4aa9a) )
+
+ ROM_REGION( 0x20000, "k007232", 0 )
+ ROM_LOAD( "587-c01.10a", 0x00000, 0x20000, CRC(09fe0632) SHA1(4c3b29c623d70bbe8a938a0beb4638912c46fb6a) )
+ROM_END
+
+ROM_START( spcloneo )
+ ROM_REGION( 0x80000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "spcloneo.18b", 0x00000, 0x10000, CRC(6d49878b) SHA1(95ec8c326cb83d8391f7821868187d68ef734120) )
+ ROM_LOAD16_BYTE( "spcloneo.18c", 0x00001, 0x10000, CRC(08b8fd27) SHA1(fbbb5f9c795de5a776309cdd7a5678fc0061d52a) )
+ ROM_LOAD16_BYTE( "587-c03.17b", 0x40000, 0x20000, CRC(e5caf6e6) SHA1(f5df4fbc43cfa6e2866558c99dd95ba8dc89dc7a) )
+ ROM_LOAD16_BYTE( "587-c06.17c", 0x40001, 0x20000, CRC(c2f567ea) SHA1(0c38fea53f3d4a9ae0deada5669deca4be8c9fd3) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "spcloneo.11j", 0x00000, 0x08000, CRC(9b72fdc7) SHA1(6634e2c8203cc7a9f5b2135a0b717dc18b0fdf23) )
+
+ ROM_REGION( 0x04000, "vlm", 0 )
+ ROM_LOAD( "587-d08.8g", 0x00000, 0x04000, CRC(f9ac6b82) SHA1(3370fc3a7f82e922e19d54afb3bca7b07fa4aa9a) )
+
+ ROM_REGION( 0x20000, "k007232", 0 )
+ ROM_LOAD( "587-c01.10a", 0x00000, 0x20000, CRC(09fe0632) SHA1(4c3b29c623d70bbe8a938a0beb4638912c46fb6a) )
+ROM_END
+
+GAME( 2007, spclone, salamand, salamand, lifefrcj, driver_device, 0, ROT0, "Konami", "Salamander (version YY 0.7.3) ", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
+GAME( 2007, spcloneo, salamand, salamand, lifefrcj, driver_device, 0, ROT0, "Konami", "Salamander (version YY 0.7.2.2)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/neogeo.cpp b/docs/release/src/hbmame/drivers/neogeo.cpp
new file mode 100644
index 00000000000..60dc82af770
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/neogeo.cpp
@@ -0,0 +1,1391 @@
+// license:BSD-3-Clause
+// copyright-holders:Bryan McPhail,Ernesto Corvi,Andrew Prime,Zsolt Vasvari
+// thanks-to:Fuzz
+/***************************************************************************
+
+ Neo-Geo hardware
+
+ Credits:
+ * This driver was made possible by the research done by
+ Charles MacDonald. For a detailed description of the Neo-Geo
+ hardware, please visit his page at:
+ http://cgfm2.emuviews.com/txt/mvstech.txt
+ * Presented to you by the Shin Emu Keikaku team.
+ * The following people have all spent probably far
+ too much time on this:
+ AVDB
+ Bryan McPhail
+ Fuzz
+ Ernesto Corvi
+ Andrew Prime
+ Zsolt Vasvari
+
+
+ Known driver issues/to-do's:
+ ============================
+
+ * Fatal Fury 3 crashes during the ending - this doesn't occur if
+ the language is set to Japanese, maybe the English endings
+ are incomplete / buggy?
+ * Graphical Glitches caused by incorrect timing?
+ - Some raster effects are imperfect (off by a couple of lines)
+ * Multi-cart support not implemented - the MVS can take up to
+ 6 cartridges depending on the board being used
+ * 68000 waitstates on ROM region access, determined by jumpers on cart
+ (garou train stage 3 background bug is probably related to this)
+
+
+ Confirmed non-bugs:
+
+ * Bad zooming in the Kof2003 bootlegs - this is what happens
+ if you try and use the normal bios with a pcb set, it
+ looks like the bootleggers didn't care.
+ * Glitches at the edges of the screen - the real hardware
+ can display 320x224 but most of the games seem designed
+ to work with a width of 304, some less.
+ * Distorted jumping sound in Nightmare in the Dark
+ * Ninja Combat sometimes glitches
+
+
+*****************************************************************************
+
+ The Neo-Geo Multi Video System (MVS), is an arcade system board, being
+ the first product in the Neo-Geo family, designed by Alpha Denshi(ADK)
+ and released in 1990 by SNK. It was known to the coin-op industry, and
+ offered arcade operators the ability to put up to 6 different arcade
+ titles into a single cabinet, a key economic consideration for operators
+ with limited floorspace (games for the Neo-Geo are cartridge based and are
+ easily exchangeable). It comes in many different cabinets but basically
+ consists of an add on board that can be linked to a standard Jamma system.
+ The system was discontinued in 2004.
+ Source (modified): http://en.wikipedia.org/wiki/Neo_Geo
+
+
+ MVS motherboards were produced in 1 / 2 / 4 and 6 Slot versions.
+
+ Known motherboards:
+ ===================
+
+ 1 Slot:
+ NEO-MVH MV1
+ NEO-MVH MV1-1
+ NEO-MVH MV1A
+ . NEO-MVH MV1A CHX ??
+ NEO-MVH MV1B (1996.1.19)
+ . NEO-MVH MV1B CHX (1996.1.19) ??
+ NEO-MVH MV1B1 (1998.6.17)
+ NEO-MVH MV1C (1999.4.30)
+ NEO-MVH MV1F
+ NEO-MVH MV1FS
+ NEO-MVH MV1FT
+ NEO-MVH MV1FZ
+ NEO-MVH MV1FZS
+
+ 2 Slot:
+ NEO-MVH MV2
+ NEO-MVH MV2F
+ NEO-MVH MV2F-01
+
+ 4 Slot:
+ NEO-MVH MV4
+ NEO-MVH MV4F
+ NEO-MVH MV4FS
+ NEO-MVH MV4FT
+ NEO-MVH MV4FT2
+
+ 6 Slot:
+ NEO-MVH MV6
+ NEO-MVH MV6F
+
+
+ Neo-Geo Motherboard (info - courtesy of Guru):
+
+ NEO-MVH MV1
+ |---------------------------------------------------------------------|
+ | 4558 |
+ | HC04 HC32 |
+ | SP-S2.SP1 NEO-E0 000-L0.L0 LS244 AS04 |
+ | YM2610 |
+ | 4558 |
+ | 4558 5814 HC259 SFIX.SFIX |
+ | NEO-I0 |
+ | HA13001 YM3016 5814 |
+ --| |
+ | 4558 |
+ --| SM1.SM1 LS32 |
+ | |
+ | LSPC-A0 PRO-C0 LS244 |
+ | |
+ |J 68000 |
+ |A |
+ |M |
+ |M NEO-ZMC2 |
+ |A |
+ | LS273 NEO-G0 58256 58256 Z80A |
+ | 58256 58256 58256 58256 6116 |
+ | LS273 5864 |
+ --| LS05 5864 PRO-B0 |
+ | |
+ --| LS06 HC32 D4990A NEO-F0 24.000MHz |
+ | DSW1 BATT3.6V 32.768kHz NEO-D0 |
+ | 2003 2003 |
+ |---------------------------------------------------------------------|
+
+
+*****************************************************************************
+
+ Neo-Geo game PCB infos:
+ =======================
+
+ The Neo-Geo games for AES (home) and MVS (arcade) systems are cartridge based.
+
+ Each cartridge consists of two PCBs: CHA and PROG.
+ .CHA PCB contains gfx data ('C' - rom), text layer data ('S' - rom) and sound driver ('M' - rom).
+ .PROG PCB contains sample data ('V' - rom) and program code ('P' - rom).
+
+ On most PCBs various custom/protection chips can also be found:
+ (Custom chip detail information (modified) from: http://wiki.neogeodev.org)
+
+ CHA:
+ . NEO-273 (C and S-ROM address latch)
+ . NEO-CMC 90G06CF7042 (NEO-273 logic / NEO-ZMC logic / C-ROM decryption / C and S-ROM multiplexer / S-ROM bankswitching)
+ . NEO-CMC 90G06CF7050 (NEO-273 logic / NEO-ZMC logic / C-ROM decryption / M-ROM decryption / C and S-ROM multiplexer / S-ROM bankswitching)
+ . NEO-ZMC (Z80 memory controller)
+ . NEO-ZMC2 (Z80 memory controller / Tile serializer)
+ . PRO-CT0 (C-ROM serializer and multiplexer?; used on early AES-CHA boards)
+ . SNK-9201 (C-ROM serializer and multiplexer?; used on early AES-CHA boards)
+
+ PROG:
+ . 0103 (QFP144) (Only found on Metal Slug X NEO-MVS PROGEOP board; function unknown)
+ . ALTERA (EPM7128SQC100-15) (P-ROM protection chip used for KOF98 NEO-MVS PROGSF1 board and Metal Slug X NEO-MVS PROGEOP board)
+ . NEO-COMA (Microcontroller; used for MULTI PLAY MODE, boards and sets see below)
+ . NEO-PCM2 (SNK 1999) (PCM functionality / V-ROM decryption / P-ROM decoding and bankswitching)
+ . NEO-PCM2 (PLAYMORE 2002) (PCM functionality / V-ROM decryption / P-ROM decoding and bankswitching)
+ . NEO-PVC (P-ROM decryption and bankswitching) / RAM
+ . NEO-SMA (P-ROM decryption and bankswitching / RNG / Storage of 256kb game data)
+ . PCM (ADPCM bus latches / V-ROM multiplexer)
+ . PRO-CT0 (On PROG board used for P-ROM protection -> Fatal Fury 2)
+ . SNK-9201 (On PROG board used for P-ROM protection -> Fatal Fury 2)
+
+
+
+ Known PCBs:
+ ============
+
+ MVS CHA:
+ -- SNK --
+ . NEO-MVS CHA-32
+ . NEO-MVS CHA-8M
+ . NEO-MVS CHA42G
+ . NEO-MVS CHA42G-1
+ . NEO-MVS CHA 42G-2
+ . NEO-MVS CHA 42G-3
+ . NEO-MVS CHA42G-3B
+ . NEO-MVS CHA256
+ . NEO-MVS CHA256B
+ . NEO-MVS CHA512Y
+ . NEO-MVS CHAFIO (1999.6.14) - used with NEO-CMC 90G06C7042 or NEO-CMC 90G06C7050
+ . MVS CHAFIO REV1.0 (KOF-2001)
+ . NEO-MVS CHAFIO (SNK 2002) - MADE IN KOREA
+ -- SNKPLAYMORE --
+ . NEO-MVS CHAFIO (2003.7.24) - used only with NEO-CMC 90G06C7050
+
+ -- SNK development boards --
+ . NEO-MVS CHAMC2
+
+ MVS PROG:
+ -- SNK --
+ . NEO-MVS PROG-NAM
+ . NEO-MVS PROG-HERO
+ . NEO-MVS PROG-EP
+ . NEO-MVS PROG-8MB
+ . NEO-MVS PROGEP8M
+ . NEO-MVS PROG8M42
+ . NEO-MVS PROG16
+ . NEO-MVS PROG42G
+ . NEO-MVS PROG42G-COM
+ . NEO-MVS PROG42G-1
+ . NEO-MVS PROG-G2
+ . NEO-MVS PROG 4096
+ . NEO-MVS PROG 4096 B
+ . NEO-MVS PROGGSC
+ . NEO-MVS PROGSM
+ . NEO-MVS PROGSS3
+ . NEO-MVS PROGTOP
+ . NEO-MVS PROGSF1 (1998.6.17)
+ . NEO-MVS PROGSF1E (1998.6.18)
+ . NEO-MVS PROGEOP (1999.2.2)
+ . NEO-MVS PROGLBA (1999.4.12) - LBA-SUB (2000.2.24)
+ . NEO-MVS PROGBK1 (1994)
+ . NEO-MVS PROGBK1 (2001)
+ . NEO-MVS PROGBK2 (2000.3.21) - used with NEO-PCM2 (1999 SNK) or NEO-PCM2 (2002 PLAYMORE)
+ . MVS PROGBK2 REV1.0 (KOF-2001)
+ . NEO-MVS PROGBK2 (SNK 2002) - MADE IN KOREA
+ -- SNKPLAYMORE --
+ . NEO-MVS PROGBK2R (2003.8.26) - NEO-HYCS (2003.9.29)
+ . NEO-MVS PROGBK3R (2003.9.2) - NEO-HYCS (2003.9.29)
+ . NEO-MVS PROGBK3S (2003.10.1)
+ . NEO-MVS PROGBK2S (2003.10.18)
+
+ -- SNK development boards --
+ . NEO-MVS PROGMC2
+
+
+ AES CHA:
+ -- SNK --
+ . NEO-AEG CHA-32
+ . NEO-AEG CHA-8M
+ . NEO-AEG CHA42G
+ . NEO-AEG CHA42G-1
+ . NEO-AEG CHA42G-2B
+ . NEO-AEG CHA42G-3
+ . NEO-AEG CHA42G-4
+ . NEO-AEG CHA256
+ . NEO-AEG CHA256 B
+ . NEO-AEG CHA256[B]
+ . NEO-AEG CHA256BY
+ . NEO-AEG CHA256RY
+ . NEO-AEG CHA512Y
+ . NEO-AEG CHAFIO (1999.8.10) - used with NEO-CMC 90G06C7042 or NEO-CMC 90G06C7050
+ -- SNKPLAYMORE --
+ . NEO-AEG CHAFIO (2003.7.24) - used only with NEO-CMC 90G06C7050
+
+ AES PROG:
+ -- SNK --
+ . NEO-AEG PROG-NAM
+ . NEO-AEG PROG-HERO
+ . NEO-AEG PROG-4A
+ . NEO-AEG PROG-4B
+ . NEO-AEG PROG 8M42
+ . NEO-AEG PROG B
+ . NEO-AEG PROG16
+ . NEO-AEG PROG42G
+ . NEO-AEG PROG42G-COM
+ . NEO-AEG PROG42G-1
+ . NEO-AEG PROG-G2
+ . NEO-AEG PROG4096 B
+ . NEO-AEG PROGGS
+ . NEO-AEG PROGTOP2
+ . NEO-AEG PROGTOP2Y
+ . NEO-AEG PROGEOP (1999.4.2)
+ . NEO-AEG PROGLBA (1999.7.6)
+ . NEO-AEG PROGRK
+ . NEO-AEG PROGRKB
+ . NEO-AEG PROGBK1Y
+ . NEO-AEG PROGBK1F
+ -- PLAYMORE --
+ . NEO-AEG PROGBK2 (2002.4.1) - used with NEO-PCM2 (1999 SNK) or NEO-PCM2 (2002 PLAYMORE)
+ -- SNKPLAYMORE --
+ . NEO-AEG PROGBK3R (2003.8.29) - NEO-HYCS (2003.9.29)
+ . NEO-AEG PROGBK3S (2003.10.6)
+ . NEO-AEG PROGBK2S (2003.10.16)
+
+
+
+ Cartridge colours:
+ ==================
+
+ MVS cartridges were produced in different colours.
+
+ Known cartridge colours:
+ . Black
+ . Blue
+ . Green
+ . Grey
+ . Red
+ . Transparent
+ . Transparent Blue
+ . Transparent Green
+ . White
+ . Yellow
+
+ The above listed only covers SNK / PLAYMORE / SNKPLAYMORE PCBs. There also exists a
+ wide range of 'bootleg' PCBs.
+
+
+ Unofficial pcb's from NG:DEV.TEAM:
+
+ MVS CHA:
+ GIGA CHAR Board 1.0 Rev. A
+ GIGA CHAR Board 1.5 Rev. 0
+ GIGA CHAR Board 1.5 Rev. C
+
+ MVS PROG:
+ GIGA PROG Board 1.0 Rev. B
+ GIGA PROG Board 1.5 Rev. A
+ GIGA PROG Board 1.5 Rev. C
+
+
+ Unofficial pcb's from NEOBITZ:
+
+ MVS CHA:
+ CHARBITZ1 2013.12.01
+
+ MVS PROG:
+ PROGBITZ1 2013.12.01
+
+
+ Neo-Geo game PCB infos by Johnboy
+
+
+
+ MVS cart pinout:
+ ================
+
+ Kindly submitted by Apollo69 (apollo69@columbus.rr.com)
+ =================================================================
+ CTRG1 CTRG2
+ =================================================================
+ GND = 01A | 01B = GND GND = 01A | 01B = GND
+ GND = 02A | 02B = GND GND = 02A | 02B = GND
+ P0 = 03A | 03B = P1 GND = 03A | 03B = GND
+ P2 = 04A | 04B = P3 GND = 04A | 04B = GND
+ P4 = 05A | 05B = P5 D0 = 05A | 05B = A1
+ P6 = 06A | 06B = P7 D1 = 06A | 06B = A2
+ P8 = 07A | 07B = P9 D2 = 07A | 07B = A3
+ P10 = 08A | 08B = P11 D3 = 08A | 08B = A4
+ P12 = 09A | 09B = P13 D4 = 09A | 09B = A5
+ P14 = 10A | 10B = P15 D5 = 10A | 10B = A6
+ P16 = 11A | 11B = P17 D6 = 11A | 11B = A7
+ P18 = 12A | 12B = P19 D7 = 12A | 12B = A8
+ P20 = 13A | 13B = P21 D8 = 13A | 13B = A9
+ P22 = 14A | 14B = P23 D9 = 14A | 14B = A10
+ PCK1B = 15A | 15B = 24M D10 = 15A | 15B = A11
+ PCK2B = 16A | 16B = 12M D11 = 16A | 16B = A12
+ 2H1 = 17A | 17B = 8M D12 = 17A | 17B = A13
+ CA4 = 18A | 18B = RESET D13 = 18A | 18B = A14
+ CR0 = 19A | 19B = CR1 D14 = 19A | 19B = A15
+ CR2 = 20A | 20B = CR3 D15 = 20A | 20B = A16
+ CR4 = 21A | 21B = CR5 R/W = 21A | 21B = A17
+ CR6 = 22A | 22B = CR7 AS = 22A | 22B = A18
+ CR8 = 23A | 23B = CR9 ROMOEU = 23A | 23B = A19
+ CR10 = 24A | 24B = CR11 ROMOEL = 24A | 24B = 68KCLKB
+ CR12 = 25A | 25B = CR13 PORTOEU = 25A | 25B = ROMWAIT
+ CR14 = 26A | 26B = CR15 PORTOEL = 26A | 26B = PWAIT0
+ CR16 = 27A | 27B = CR17 PORTWEU = 27A | 27B = PWAIT1
+ CR18 = 28A | 28B = CR19 PORTWEL = 28A | 28B = PDTACT
+ VCC = 29A | 29B = VCC VCC = 29A | 29B = VCC
+ VCC = 30A | 30B = VCC VCC = 30A | 30B = VCC
+ VCC = 31A | 31B = VCC VCC = 31A | 31B = VCC
+ VCC = 32A | 32B = VCC VCC = 32A | 32B = VCC
+ CR20 = 33A | 33B = CR21 PORTADRS = 33A | 33B = 4MB
+ CR22 = 34A | 34B = CR23 NC = 34A | 34B = ROMOE
+ CR24 = 35A | 35B = CR25 NC = 35A | 35B = RESET
+ CR26 = 36A | 36B = CR27 NC = 36A | 36B = NC
+ CR28 = 37A | 37B = CR29 NC = 37A | 37B = NC
+ CR30 = 38A | 38B = CR31 NC = 38A | 38B = NC
+ NC = 39A | 39B = FIX00 NC = 39A | 39B = NC
+ NC = 40A | 40B = FIX01 NC = 40A | 40B = NC
+ NC = 41A | 41B = FIX02 NC = 41A | 41B = SDPAD0
+ SYSTEMB = 42A | 42B = FIX03 SYSTEMB = 42A | 42B = SDPAD1
+ SDA0 = 43A | 43B = FIX04 SDPA8 = 43A | 43B = SDPAD2
+ SDA1 = 44A | 44B = FIX05 SDPA9 = 44A | 44B = SDPAD3
+ SDA2 = 45A | 45B = FIX06 SDPA10 = 45A | 45B = SDPAD4
+ SDA3 = 46A | 46B = FIX07 SDPA11 = 46A | 46B = SDPAD5
+ SDA4 = 47A | 47B = SDRD0 SDPMPX = 47A | 47B = SDPAD6
+ SDA5 = 48A | 48B = SDRD1 SDPOE = 48A | 48B = SDPAD7
+ SDA6 = 49A | 49B = SDROM SDRA8 = 49A | 49B = SDRA00
+ SDA7 = 50A | 50B = SDMRD SDRA9 = 50A | 50B = SDRA01
+ SDA8 = 51A | 51B = SDDO SDRA20 = 51A | 51B = SDRA02
+ SDA9 = 52A | 52B = SDD1 SDRA21 = 52A | 52B = SDRA03
+ SDA10 = 53A | 53B = SDD2 SDRA22 = 53A | 53B = SDRA04
+ SDA11 = 54A | 54B = SDD3 SDRA23 = 54A | 54B = SDRA05
+ SDA12 = 55A | 55B = SDD4 SDRMPX = 55A | 55B = SDRA06
+ SDA13 = 56A | 56B = SDD5 SDROE = 56A | 56B = SDRA07
+ SDA14 = 57A | 57B = SDD6 GND = 57A | 57B = GND
+ SDA15 = 58A | 58B = SDD7 GND = 58A | 58B = GND
+ GND = 59A | 59B = GND GND = 59A | 59B = GND
+ GND = 60A | 60B = GND GND = 60A | 60B = GND
+
+ CTRG1 (CHA) = Contains gfx data ('C' - rom), text layer data ('S' - rom) and sound driver ('M' - rom)
+ CTRG2 (PROG) = Contains sample data ('V' - rom) and program code ('P' - rom)
+
+ NOTE: On CTRG2-B, The "A" lines start at "A1". If you trace this on an
+ actual cart, you will see that this is actually "A0" (A0 - A18).
+
+ These are from a very hard to read copy of the schematics, so
+ I hope that I got the pin names correct.
+
+ Apollo69 10/19/99
+
+
+*****************************************************************************
+
+ Watchdog:
+ =========
+
+ The watchdog timer will reset the system after ~0.13 seconds.
+ By cgfm's research, exactly 3,244,030 cycles (based on 24MHz clock).
+
+ Newer games force a reset using the following code (this from kof99):
+ 009CDA 203C 0003 0D40 MOVE.L #0x30D40,D0
+ 009CE0 5380 SUBQ.L #1,D0
+ 009CE2 64FC BCC.S *-0x2 [0x9CE0]
+ Note however that there is a valid code path after this loop.
+
+ The watchdog is used as a form of protection on a number of games,
+ previously this was implemented as a specific hack which locked a single
+ address of SRAM.
+
+ What actually happens is if the game doesn't find valid data in the
+ backup ram it will initialize it, then sit in a loop. The watchdog
+ should then reset the system while it is in this loop. If the watchdog
+ fails to reset the system the code will continue and set a value in
+ backup ram to indiate that the protection check has failed.
+
+
+ Mahjong Panel notes (2009-03 FP):
+ =================================
+
+ * In Service Mode menu with mahjong panel active, controls are as
+ follows:
+
+ A = select / up (for options)
+ B = down (for options)
+ C = go to previous menu
+ E = up (for menu entries)
+ F = down (for menu entries)
+ G = left (for options)
+ H = right (for options)
+
+ * These only work with Japanese BIOS, but I think it's not a bug: I
+ doubt other BIOS were programmed to be compatible with mahjong panels
+
+****************************************************************************/
+
+#include "emu.h"
+#include "cpu/m68000/m68000.h"
+#include "includes/neogeo.h"
+#include "machine/nvram.h"
+#include "machine/watchdog.h"
+#include "cpu/z80/z80.h"
+#include "sound/2610intf.h"
+#include "softlist.h"
+#include "neogeo.lh"
+
+
+#define LOG_VIDEO_SYSTEM (0)
+#define LOG_MAIN_CPU_BANKING (0)
+#define LOG_AUDIO_CPU_BANKING (0)
+
+
+/*************************************
+ *
+ * Main CPU interrupt generation
+ *
+ *************************************/
+
+
+
+// The display counter is automatically reloaded with the load register contents on scanline 224,
+// 1146 mclks from the rising edge of /HSYNC.
+#define NEOGEO_VBLANK_RELOAD_HTIM (attotime::from_ticks(1146, NEOGEO_MASTER_CLOCK))
+
+#define IRQ2CTRL_ENABLE (0x10)
+#define IRQ2CTRL_LOAD_RELATIVE (0x20)
+#define IRQ2CTRL_AUTOLOAD_VBLANK (0x40)
+#define IRQ2CTRL_AUTOLOAD_REPEAT (0x80)
+
+
+void neogeo_state::adjust_display_position_interrupt_timer()
+{
+ attotime period = attotime::from_ticks((uint64_t)m_display_counter + 1, NEOGEO_PIXEL_CLOCK);
+ if (LOG_VIDEO_SYSTEM) logerror("adjust_display_position_interrupt_timer current y: %02x current x: %02x target y: %x target x: %x\n", m_screen->vpos(), m_screen->hpos(), (m_display_counter + 1) / NEOGEO_HTOTAL, (m_display_counter + 1) % NEOGEO_HTOTAL);
+
+ m_display_position_interrupt_timer->adjust(period);
+}
+
+
+void neogeo_state::neogeo_set_display_position_interrupt_control( uint16_t data )
+{
+ m_display_position_interrupt_control = data;
+}
+
+
+void neogeo_state::neogeo_set_display_counter_msb( uint16_t data )
+{
+ m_display_counter = (m_display_counter & 0x0000ffff) | ((uint32_t)data << 16);
+
+ if (LOG_VIDEO_SYSTEM) logerror("PC %06x: set_display_counter %08x\n", m_maincpu->pc(), m_display_counter);
+}
+
+
+void neogeo_state::neogeo_set_display_counter_lsb( uint16_t data )
+{
+ m_display_counter = (m_display_counter & 0xffff0000) | data;
+
+ if (LOG_VIDEO_SYSTEM) logerror("PC %06x: set_display_counter %08x\n", m_maincpu->pc(), m_display_counter);
+
+ if (m_display_position_interrupt_control & IRQ2CTRL_LOAD_RELATIVE)
+ {
+ if (LOG_VIDEO_SYSTEM) logerror("AUTOLOAD_RELATIVE ");
+ adjust_display_position_interrupt_timer();
+ }
+}
+
+
+void neogeo_state::update_interrupts()
+{
+ m_maincpu->set_input_line(3, m_irq3_pending ? ASSERT_LINE : CLEAR_LINE);
+ m_maincpu->set_input_line(m_raster_level, m_display_position_interrupt_pending ? ASSERT_LINE : CLEAR_LINE);
+ m_maincpu->set_input_line(m_vblank_level, m_vblank_interrupt_pending ? ASSERT_LINE : CLEAR_LINE);
+}
+
+
+void neogeo_state::neogeo_acknowledge_interrupt( uint16_t data )
+{
+ if (data & 0x01)
+ m_irq3_pending = 0;
+ if (data & 0x02)
+ m_display_position_interrupt_pending = 0;
+ if (data & 0x04)
+ m_vblank_interrupt_pending = 0;
+
+ update_interrupts();
+}
+
+
+TIMER_CALLBACK_MEMBER(neogeo_state::display_position_interrupt_callback)
+{
+ if (LOG_VIDEO_SYSTEM) logerror("--- Scanline @ %d,%d\n", m_screen->vpos(), m_screen->hpos());
+
+ if (m_display_position_interrupt_control & IRQ2CTRL_ENABLE)
+ {
+ if (LOG_VIDEO_SYSTEM) logerror("*** Scanline interrupt (IRQ2) *** y: %02x x: %02x\n", m_screen->vpos(), m_screen->hpos());
+ m_display_position_interrupt_pending = 1;
+
+ update_interrupts();
+ }
+
+ if (m_display_position_interrupt_control & IRQ2CTRL_AUTOLOAD_REPEAT)
+ {
+ if (LOG_VIDEO_SYSTEM) logerror("AUTOLOAD_REPEAT ");
+ adjust_display_position_interrupt_timer();
+ }
+}
+
+
+TIMER_CALLBACK_MEMBER(neogeo_state::display_position_vblank_callback)
+{
+ if (m_display_position_interrupt_control & IRQ2CTRL_AUTOLOAD_VBLANK)
+ {
+ if (LOG_VIDEO_SYSTEM) logerror("AUTOLOAD_VBLANK ");
+ adjust_display_position_interrupt_timer();
+ }
+
+ /* set timer for next screen */
+ m_display_position_vblank_timer->adjust(m_screen->time_until_pos(NEOGEO_VBSTART) + NEOGEO_VBLANK_RELOAD_HTIM);
+}
+
+
+TIMER_CALLBACK_MEMBER(neogeo_state::vblank_interrupt_callback)
+{
+ if (LOG_VIDEO_SYSTEM) logerror("+++ VBLANK @ %d,%d\n", m_screen->vpos(), m_screen->hpos());
+
+ m_vblank_interrupt_pending = 1;
+ update_interrupts();
+
+ /* set timer for next screen */
+ m_vblank_interrupt_timer->adjust(m_screen->time_until_pos(NEOGEO_VBSTART) + NEOGEO_VBLANK_IRQ_HTIM);
+}
+
+
+void neogeo_state::create_interrupt_timers()
+{
+ m_display_position_interrupt_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(neogeo_state::display_position_interrupt_callback),this));
+ m_display_position_vblank_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(neogeo_state::display_position_vblank_callback),this));
+ m_vblank_interrupt_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(neogeo_state::vblank_interrupt_callback),this));
+}
+
+
+void neogeo_state::start_interrupt_timers()
+{
+ m_vblank_interrupt_timer->adjust(m_screen->time_until_pos(NEOGEO_VBSTART) + NEOGEO_VBLANK_IRQ_HTIM);
+ m_display_position_vblank_timer->adjust(m_screen->time_until_pos(NEOGEO_VBSTART) + NEOGEO_VBLANK_RELOAD_HTIM);
+}
+
+
+
+/*************************************
+ *
+ * Audio CPU interrupt generation
+ *
+ *************************************/
+
+void neogeo_state::audio_cpu_check_nmi()
+{
+ m_audiocpu->set_input_line(INPUT_LINE_NMI, (m_audio_cpu_nmi_enabled && m_audio_cpu_nmi_pending) ? ASSERT_LINE : CLEAR_LINE);
+}
+
+WRITE8_MEMBER(neogeo_state::audio_cpu_enable_nmi_w)
+{
+ // out ($08) enables the nmi, out ($18) disables it
+ m_audio_cpu_nmi_enabled = !(offset & 0x10);
+ audio_cpu_check_nmi();
+}
+
+
+
+/*************************************
+ *
+ * Input ports / Controllers
+ *
+ *************************************/
+
+READ16_MEMBER(neogeo_state::in0_r)
+{
+ return ((m_edge->in0_r(space, offset) & m_ctrl1->ctrl_r(space, offset)) << 8) | m_dsw->read();
+}
+
+READ16_MEMBER(neogeo_state::in1_r)
+{
+ return ((m_edge->in1_r(space, offset) & m_ctrl2->ctrl_r(space, offset)) << 8) | 0xff;
+}
+
+CUSTOM_INPUT_MEMBER(neogeo_state::kizuna4p_start_r)
+{
+ return (m_edge->read_start_sel() & 0x05) | ~0x05;
+}
+
+WRITE8_MEMBER(neogeo_state::io_control_w)
+{
+ switch (offset)
+ {
+ case 0x00:
+ if (m_ctrl1) m_ctrl1->write_ctrlsel(data);
+ if (m_ctrl2) m_ctrl2->write_ctrlsel(data);
+ if (m_edge) m_edge->write_ctrlsel(data);
+ break;
+
+ case 0x10:
+ break;
+
+ case 0x18:
+ if (m_type == NEOGEO_MVS)
+ set_output_latch(data);
+ break;
+
+ case 0x20:
+ if (m_type == NEOGEO_MVS)
+ set_output_data(data);
+ break;
+
+ case 0x28:
+ if (m_type == NEOGEO_MVS)
+ {
+ m_upd4990a->data_in_w(data >> 0 & 1);
+ m_upd4990a->clk_w(data >> 1 & 1);
+ m_upd4990a->stb_w(data >> 2 & 1);
+ }
+ break;
+
+// case 0x30: break; // coin counters
+// case 0x31: break; // coin counters
+// case 0x32: break; // coin lockout
+// case 0x33: break; // coin lockout
+
+ default:
+ logerror("PC: %x Unmapped I/O control write. Offset: %x Data: %x\n", space.device().safe_pc(), offset, data);
+ break;
+ }
+}
+
+
+/*************************************
+ *
+ * Unmapped memory access
+ *
+ *************************************/
+
+READ16_MEMBER(neogeo_state::neogeo_unmapped_r)
+{
+ uint16_t ret;
+
+ /* unmapped memory returns the last word on the data bus, which is almost always the opcode
+ of the next instruction due to prefetch */
+
+ /* prevent recursion */
+ if (m_recurse)
+ ret = 0xffff;
+ else
+ {
+ m_recurse = true;
+ ret = space.read_word(space.device().safe_pc());
+ m_recurse = false;
+ }
+ return ret;
+}
+
+
+
+/*************************************
+ *
+ * NVRAM (Save RAM)
+ *
+ *************************************/
+
+void neogeo_state::set_save_ram_unlock( uint8_t data )
+{
+ m_save_ram_unlocked = data;
+}
+
+
+WRITE16_MEMBER(neogeo_state::save_ram_w)
+{
+ if (m_save_ram_unlocked)
+ COMBINE_DATA(&m_save_ram[offset]);
+}
+
+
+
+/*************************************
+ *
+ * Memory card
+ *
+ *************************************/
+
+CUSTOM_INPUT_MEMBER(neogeo_state::get_memcard_status)
+{
+ // D0 and D1 are memcard 1 and 2 presence indicators, D2 indicates memcard
+ // write protect status (we are always write enabled)
+ return (m_memcard->present() == -1) ? 0x07 : 0x00;
+}
+
+
+READ16_MEMBER(neogeo_state::memcard_r)
+{
+ m_maincpu->eat_cycles(2); // insert waitstate
+
+ uint16_t ret;
+
+ if (m_memcard->present() != -1)
+ ret = m_memcard->read(space, offset) | 0xff00;
+ else
+ ret = 0xffff;
+
+ return ret;
+}
+
+
+WRITE16_MEMBER(neogeo_state::memcard_w)
+{
+ m_maincpu->eat_cycles(2); // insert waitstate
+
+ if (ACCESSING_BITS_0_7)
+ {
+ if (m_memcard->present() != -1)
+ m_memcard->write(space, offset, data);
+ }
+}
+
+/*************************************
+ *
+ * Inter-CPU communications
+ *
+ *************************************/
+
+WRITE8_MEMBER(neogeo_state::audio_command_w)
+{
+ m_soundlatch->write(space, 0, data);
+
+ m_audio_cpu_nmi_pending = true;
+ audio_cpu_check_nmi();
+
+ /* boost the interleave to let the audio CPU read the command */
+ machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(50));
+}
+
+
+READ8_MEMBER(neogeo_state::audio_command_r)
+{
+ uint8_t ret = m_soundlatch->read(space, 0);
+
+ m_audio_cpu_nmi_pending = false;
+ audio_cpu_check_nmi();
+
+ return ret;
+}
+
+
+CUSTOM_INPUT_MEMBER(neogeo_state::get_audio_result)
+{
+ uint8_t ret = m_soundlatch2->read(m_audiocpu->space(AS_PROGRAM), 0);
+
+ return ret;
+}
+
+
+
+
+void neogeo_state::neogeo_main_cpu_banking_init()
+{
+ m_use_cart_vectors = 0;
+
+ if (m_type != NEOGEO_CD)
+ {
+ m_banked_cart->init_banks();
+ }
+}
+
+
+/*************************************
+ *
+ * Audio CPU banking
+ *
+ *************************************/
+
+READ8_MEMBER(neogeo_state::audio_cpu_bank_select_r)
+{
+ m_bank_audio_cart[offset & 3]->set_entry(offset >> 8);
+
+ return 0;
+}
+
+
+void neogeo_state::neogeo_audio_cpu_banking_init(int set_entry)
+{
+ if (m_type == NEOGEO_CD) return;
+
+ int region;
+ int bank;
+ uint8_t *rgn;
+ uint32_t address_mask;
+
+ rgn = memregion("audiocpu")->base();
+
+ /* audio bios/cartridge selection */
+ m_bank_audio_main->configure_entry(1, memregion("audiocpu")->base());
+ if (memregion("audiobios"))
+ m_bank_audio_main->configure_entry(0, memregion("audiobios")->base());
+ else /* on hardware with no SM1 ROM, the cart ROM is always enabled */
+ m_bank_audio_main->configure_entry(0, memregion("audiocpu")->base());
+
+ m_bank_audio_main->set_entry(m_use_cart_audio);
+
+ /* audio banking */
+ m_bank_audio_cart[0] = membank("audio_f000");
+ m_bank_audio_cart[1] = membank("audio_e000");
+ m_bank_audio_cart[2] = membank("audio_c000");
+ m_bank_audio_cart[3] = membank("audio_8000");
+
+ address_mask = (memregion("audiocpu")->bytes() - 0x10000 - 1) & 0x3ffff;
+
+
+ for (region = 0; region < 4; region++)
+ {
+ for (bank = 0xff; bank >= 0; bank--)
+ {
+ uint32_t bank_address = 0x10000 + ((bank << (11 + region)) & address_mask);
+ m_bank_audio_cart[region]->configure_entry(bank, &rgn[bank_address]);
+ }
+ }
+
+ // set initial audio banks - THIS IS A HACK
+ // Z80 banking is handled by the NEO-ZMC chip in the cartridge
+ // (in later cartridges, by multifunction banking/protection chips that implement the same bank scheme)
+ // On the real chip, initial banks are all 0.
+ // However, early cartridges with less than 64KB of Z80 code and data don't have ROM banking at all.
+ // These initial bank settings are required so non-banked games will work until we identify them
+ // and use a different Z80 address map for them.
+ m_bank_audio_cart[0]->set_entry(0x1e);
+ m_bank_audio_cart[1]->set_entry(0x0e);
+ m_bank_audio_cart[2]->set_entry(0x06);
+ m_bank_audio_cart[3]->set_entry(0x02);
+}
+
+
+
+/*************************************
+ *
+ * System control register
+ *
+ *************************************/
+
+WRITE8_MEMBER(neogeo_state::system_control_w)
+{
+ uint8_t bit = (offset >> 3) & 0x01;
+
+ switch (offset & 0x07)
+ {
+ default:
+ case 0x00:
+ neogeo_set_screen_shadow(bit);
+ break;
+
+ case 0x01:
+ if (m_type == NEOGEO_CD)
+ printf("NeoCD: write to regular vector change address? %d\n", bit); // what IS going on with "neocdz doubledr" and why do games write here if it's hooked up to nothing?
+ else
+ m_use_cart_vectors = bit;
+ break;
+
+ case 0x05:
+ if (m_type == NEOGEO_MVS)
+ {
+ m_use_cart_audio = bit;
+ m_sprgen->neogeo_set_fixed_layer_source(bit);
+ m_bank_audio_main->set_entry(m_use_cart_audio);
+ }
+ break;
+
+ case 0x06:
+ if (m_type == NEOGEO_MVS)
+ set_save_ram_unlock(bit);
+ break;
+
+ case 0x07:
+ neogeo_set_palette_bank(bit);
+ break;
+
+ case 0x02: // memory card 1: write enable/disable
+ case 0x03: // memory card 2: write disable/enable
+ case 0x04: // memory card: register select enable/set to normal (what does it mean?)
+ logerror("PC: %x Unmapped system control write. Offset: %x Data: %x\n", space.device().safe_pc(), offset & 0x07, bit);
+ break;
+ }
+
+ if (LOG_VIDEO_SYSTEM && ((offset & 0x07) != 0x06)) logerror("PC: %x System control write. Offset: %x Data: %x\n", space.device().safe_pc(), offset & 0x07, bit);
+}
+
+
+
+/*************************************
+ *
+ * LEDs
+ *
+ *************************************/
+
+void neogeo_state::set_outputs( )
+{
+ static const uint8_t led_map[0x10] =
+ { 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x58,0x4c,0x62,0x69,0x78,0x00 };
+
+ /* EL */
+ output().set_digit_value(0, led_map[m_el_value]);
+
+ /* LED1 */
+ output().set_digit_value(1, led_map[m_led1_value >> 4]);
+ output().set_digit_value(2, led_map[m_led1_value & 0x0f]);
+
+ /* LED2 */
+ output().set_digit_value(3, led_map[m_led2_value >> 4]);
+ output().set_digit_value(4, led_map[m_led2_value & 0x0f]);
+}
+
+
+void neogeo_state::set_output_latch( uint8_t data )
+{
+ /* looks like the LEDs are set on the
+ falling edge */
+ uint8_t falling_bits = m_output_latch & ~data;
+
+ if (falling_bits & 0x08)
+ m_el_value = 16 - (m_output_data & 0x0f);
+
+ if (falling_bits & 0x10)
+ m_led1_value = ~m_output_data;
+
+ if (falling_bits & 0x20)
+ m_led2_value = ~m_output_data;
+
+ if (falling_bits & 0xc7)
+ logerror("%s Unmaped LED write. Data: %x\n", machine().describe_context(), falling_bits);
+
+ m_output_latch = data;
+
+ set_outputs();
+}
+
+
+void neogeo_state::set_output_data( uint8_t data )
+{
+ m_output_data = data;
+}
+
+
+
+/*************************************
+ *
+ * Machine initialization
+ *
+ *************************************/
+
+DRIVER_INIT_MEMBER(neogeo_state,neogeo)
+{
+ m_banked_cart->install_banks(machine(), m_maincpu, m_region_maincpu->base(), m_region_maincpu->bytes());
+
+ m_sprgen->m_fixed_layer_bank_type = 0;
+
+ // install controllers
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x300000, 0x300001, 0, 0x01ff7e, 0, read16_delegate(FUNC(neogeo_state::in0_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x340000, 0x340001, 0, 0x01fffe, 0, read16_delegate(FUNC(neogeo_state::in1_r), this));
+}
+
+
+void neogeo_state::neogeo_postload()
+{
+ m_bank_audio_main->set_entry(m_use_cart_audio);
+
+ if (m_type == NEOGEO_MVS) set_outputs();
+}
+
+
+void neogeo_state::machine_start()
+{
+ m_type = NEOGEO_MVS;
+
+
+ /* set the initial main CPU bank */
+ neogeo_main_cpu_banking_init();
+
+ /* set the initial audio CPU ROM banks */
+ neogeo_audio_cpu_banking_init(1);
+
+ create_interrupt_timers();
+
+ /* irq levels for MVS / AES */
+ m_vblank_level = 1;
+ m_raster_level = 2;
+
+ /* start with an IRQ3 - but NOT on a reset */
+ m_irq3_pending = 1;
+
+ // enable rtc and serial mode
+ m_upd4990a->cs_w(1);
+ m_upd4990a->oe_w(1);
+ m_upd4990a->c0_w(1);
+ m_upd4990a->c1_w(1);
+ m_upd4990a->c2_w(1);
+
+ /* register state save */
+ save_item(NAME(m_display_position_interrupt_control));
+ save_item(NAME(m_display_counter));
+ save_item(NAME(m_vblank_interrupt_pending));
+ save_item(NAME(m_display_position_interrupt_pending));
+ save_item(NAME(m_irq3_pending));
+ save_item(NAME(m_audio_cpu_nmi_enabled));
+ save_item(NAME(m_audio_cpu_nmi_pending));
+ save_item(NAME(m_save_ram_unlocked));
+ save_item(NAME(m_output_data));
+ save_item(NAME(m_output_latch));
+ save_item(NAME(m_el_value));
+ save_item(NAME(m_led1_value));
+ save_item(NAME(m_led2_value));
+
+ save_item(NAME(m_use_cart_vectors));
+ save_item(NAME(m_use_cart_audio));
+
+ machine().save().register_postload(save_prepost_delegate(FUNC(neogeo_state::neogeo_postload), this));
+
+ m_sprgen->set_screen(m_screen);
+ m_sprgen->set_sprite_region(m_region_sprites->base(), m_region_sprites->bytes());
+ m_sprgen->set_fixed_regions(m_region_fixed->base(), m_region_fixed->bytes(), m_region_fixedbios);
+
+}
+
+
+
+/*************************************
+ *
+ * Machine reset
+ *
+ *************************************/
+
+void neogeo_state::machine_reset()
+{
+ offs_t offs;
+ address_space &space = m_maincpu->space(AS_PROGRAM);
+
+ /* reset system control registers */
+ for (offs = 0; offs < 8; offs++)
+ system_control_w(space, offs, 0);
+
+ // disable audiocpu nmi
+ m_audio_cpu_nmi_enabled = false;
+ m_audio_cpu_nmi_pending = false;
+ audio_cpu_check_nmi();
+
+ m_maincpu->reset();
+
+ start_interrupt_timers();
+
+ /* trigger the IRQ3 that was set by MACHINE_START */
+ update_interrupts();
+
+ m_recurse = false;
+}
+
+READ16_MEMBER(neogeo_state::banked_vectors_r)
+{
+ if (!m_use_cart_vectors)
+ {
+ uint16_t* bios = (uint16_t*)memregion("mainbios")->base();
+ return bios[offset];
+ }
+ else
+ {
+ uint16_t* game = (uint16_t*)m_region_maincpu->base();
+ return game[offset];
+ }
+
+}
+
+READ16_MEMBER(neogeo_state::neogeo_slot_rom_low_r)
+{
+ return 0;
+}
+
+READ16_MEMBER(neogeo_state::neogeo_slot_rom_low_bectors_r)
+{
+ if (!m_use_cart_vectors)
+ {
+ uint16_t* bios = (uint16_t*)memregion("mainbios")->base();
+ return bios[offset];
+ }
+ else
+ {
+ return 0;
+ }
+
+}
+
+
+/*************************************
+ *
+ * Main CPU memory handlers
+ *
+ *************************************/
+
+ADDRESS_MAP_START( neogeo_main_map, AS_PROGRAM, 16, neogeo_state )
+
+ AM_RANGE(0x100000, 0x10ffff) AM_MIRROR(0x0f0000) AM_RAM
+ /* some games have protection devices in the 0x200000 region, it appears to map to cart space, not surprising, the ROM is read here too */
+ AM_RANGE(0x300080, 0x300081) AM_MIRROR(0x01ff7e) AM_READ_PORT("TEST")
+ AM_RANGE(0x300000, 0x300001) AM_MIRROR(0x01fffe) AM_DEVWRITE8("watchdog", watchdog_timer_device, reset_w, 0x00ff)
+ AM_RANGE(0x320000, 0x320001) AM_MIRROR(0x01fffe) AM_READ_PORT("AUDIO/COIN") AM_WRITE8(audio_command_w, 0xff00)
+ AM_RANGE(0x360000, 0x37ffff) AM_READ(neogeo_unmapped_r)
+ AM_RANGE(0x380000, 0x380001) AM_MIRROR(0x01fffe) AM_READ_PORT("SYSTEM")
+ AM_RANGE(0x380000, 0x38007f) AM_MIRROR(0x01ff80) AM_WRITE8(io_control_w, 0x00ff)
+ AM_RANGE(0x3a0000, 0x3a001f) AM_MIRROR(0x01ffe0) AM_READ(neogeo_unmapped_r) AM_WRITE8(system_control_w, 0x00ff)
+ AM_RANGE(0x3c0000, 0x3c0007) AM_MIRROR(0x01fff8) AM_READ(neogeo_video_register_r)
+ AM_RANGE(0x3c0000, 0x3c000f) AM_MIRROR(0x01fff0) AM_WRITE(neogeo_video_register_w)
+ AM_RANGE(0x3e0000, 0x3fffff) AM_READ(neogeo_unmapped_r)
+ AM_RANGE(0x400000, 0x401fff) AM_MIRROR(0x3fe000) AM_READWRITE(neogeo_paletteram_r, neogeo_paletteram_w)
+ AM_RANGE(0x800000, 0x800fff) AM_READWRITE(memcard_r, memcard_w)
+ AM_RANGE(0xc00000, 0xc1ffff) AM_MIRROR(0x0e0000) AM_ROM AM_REGION("mainbios", 0)
+ AM_RANGE(0xd00000, 0xd0ffff) AM_MIRROR(0x0f0000) AM_RAM_WRITE(save_ram_w) AM_SHARE("saveram")
+ AM_RANGE(0xe00000, 0xffffff) AM_READ(neogeo_unmapped_r)
+ADDRESS_MAP_END
+
+
+static ADDRESS_MAP_START( main_map_slot, AS_PROGRAM, 16, neogeo_state )
+ AM_RANGE(0x000000, 0x00007f) AM_READ(neogeo_slot_rom_low_bectors_r)
+ AM_RANGE(0x000080, 0x0fffff) AM_READ(neogeo_slot_rom_low_r)
+ AM_RANGE(0x200000, 0x2fffff) AM_ROMBANK("cartridge")
+// AM_RANGE(0x2ffff0, 0x2fffff) AM_WRITE(main_cpu_bank_select_w)
+ AM_IMPORT_FROM( neogeo_main_map )
+ADDRESS_MAP_END
+
+/*************************************
+ *
+ * Audio CPU memory handlers
+ *
+ *************************************/
+
+static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8, neogeo_state )
+ AM_RANGE(0x0000, 0x7fff) AM_ROMBANK("audio_main")
+ AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("audio_8000")
+ AM_RANGE(0xc000, 0xdfff) AM_ROMBANK("audio_c000")
+ AM_RANGE(0xe000, 0xefff) AM_ROMBANK("audio_e000")
+ AM_RANGE(0xf000, 0xf7ff) AM_ROMBANK("audio_f000")
+ AM_RANGE(0xf800, 0xffff) AM_RAM
+ADDRESS_MAP_END
+
+
+
+/*************************************
+ *
+ * Audio CPU port handlers
+ *
+ *************************************/
+
+static ADDRESS_MAP_START( audio_io_map, AS_IO, 8, neogeo_state )
+ AM_RANGE(0x00, 0x00) AM_MIRROR(0xff00) AM_READ(audio_command_r) AM_DEVWRITE("soundlatch", generic_latch_8_device, clear_w)
+ AM_RANGE(0x04, 0x07) AM_MIRROR(0xff00) AM_DEVREADWRITE("ymsnd", ym2610_device, read, write)
+ AM_RANGE(0x08, 0x08) AM_MIRROR(0xff00) AM_SELECT(0x0010) AM_WRITE(audio_cpu_enable_nmi_w)
+ AM_RANGE(0x08, 0x0b) AM_MIRROR(0x00f0) AM_SELECT(0xff00) AM_READ(audio_cpu_bank_select_r)
+ AM_RANGE(0x0c, 0x0c) AM_MIRROR(0xff00) AM_DEVWRITE("soundlatch2", generic_latch_8_device, write)
+ADDRESS_MAP_END
+
+
+
+/*************************************
+ *
+ * Standard Neo-Geo DIPs and
+ * input port definition
+ *
+ *************************************/
+
+INPUT_PORTS_START( neogeo )
+ PORT_START("DSW")
+ PORT_DIPNAME( 0x01, 0x01, "Setting Mode" ) PORT_DIPLOCATION("SW:1")
+ PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x02, 0x02, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW:2")
+ PORT_DIPSETTING( 0x02, DEF_STR( Normal ) )
+ PORT_DIPSETTING( 0x00, "VS Mode" )
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Controller ) ) PORT_DIPLOCATION("SW:3")
+ PORT_DIPSETTING( 0x04, DEF_STR( Joystick ) )
+ PORT_DIPSETTING( 0x00, "Mahjong Panel" )
+ PORT_DIPNAME( 0x18, 0x18, "COMM Setting (Cabinet No.)" ) PORT_DIPLOCATION("SW:4,5")
+ PORT_DIPSETTING( 0x18, "1" )
+ PORT_DIPSETTING( 0x10, "2" )
+ PORT_DIPSETTING( 0x08, "3" )
+ PORT_DIPSETTING( 0x00, "4" )
+ PORT_DIPNAME( 0x20, 0x20, "COMM Setting (Link Enable)" ) PORT_DIPLOCATION("SW:6")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x40, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW:7")
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x80, 0x80, "Freeze" ) PORT_DIPLOCATION("SW:8")
+ PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+
+ PORT_START("SYSTEM")
+ PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_START1 )
+ PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Next Game") PORT_CODE(KEYCODE_3)
+ PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_START2 )
+ PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Previous Game") PORT_CODE(KEYCODE_4)
+ PORT_BIT( 0x7000, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(DEVICE_SELF, neogeo_state, get_memcard_status, nullptr)
+ PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_SPECIAL ) /* Hardware type (AES=0, MVS=1). Some games check this and show a piracy warning screen if the hardware and BIOS don't match */
+
+ PORT_START("AUDIO/COIN")
+ PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 )
+ PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 )
+ PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
+ PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_COIN3 ) /* What is this? "us-e" BIOS uses it as a coin input; Universe BIOS uses it to detect MVS or AES hardware */
+ PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_COIN4 ) /* What is this? "us-e" BIOS uses it as a coin input; Universe BIOS uses it to detect MVS or AES hardware */
+ PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_SPECIAL ) /* what is this? When ACTIVE_HIGH + IN4 bit 6 ACTIVE_LOW MVS-4 slot is detected */
+ PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("upd4990a", upd1990a_device, tp_r)
+ PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("upd4990a", upd1990a_device, data_out_r)
+ PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(DEVICE_SELF, neogeo_state,get_audio_result, nullptr)
+
+ PORT_START("TEST")
+ PORT_BIT( 0x003f, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* what is this? If ACTIVE_LOW, MVS-6 slot detected, when ACTIVE_HIGH MVS-1 slot (AES) detected */
+ PORT_SERVICE_NO_TOGGLE( 0x0080, IP_ACTIVE_LOW )
+ PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED )
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( neogeo_6slot )
+ PORT_INCLUDE( neogeo )
+
+ PORT_MODIFY("TEST")
+ PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_SPECIAL )
+INPUT_PORTS_END
+
+
+
+
+DRIVER_INIT_MEMBER(neogeo_state,mvs)
+{
+ DRIVER_INIT_CALL(neogeo);
+}
+
+
+
+
+/*************************************
+ *
+ * Machine driver
+ *
+ *************************************/
+
+MACHINE_CONFIG_START( neogeo_base, neogeo_state )
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", M68000, NEOGEO_MAIN_CPU_CLOCK)
+ MCFG_CPU_PROGRAM_MAP(neogeo_main_map)
+
+ MCFG_CPU_ADD("audiocpu", Z80, NEOGEO_AUDIO_CPU_CLOCK)
+ MCFG_CPU_PROGRAM_MAP(audio_map)
+ MCFG_CPU_IO_MAP(audio_io_map)
+
+ /* video hardware */
+ MCFG_DEFAULT_LAYOUT(layout_neogeo)
+
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_RAW_PARAMS(NEOGEO_PIXEL_CLOCK, NEOGEO_HTOTAL, NEOGEO_HBEND, NEOGEO_HBSTART, NEOGEO_VTOTAL, NEOGEO_VBEND, NEOGEO_VBSTART)
+ MCFG_SCREEN_UPDATE_DRIVER(neogeo_state, screen_update_neogeo)
+
+ /* 4096 colors * two banks * normal and shadow */
+ MCFG_PALETTE_ADD_INIT_BLACK("palette", 4096*2*2)
+
+ MCFG_DEVICE_ADD("spritegen", NEOGEO_SPRITE, 0)
+
+ /* audio hardware */
+ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
+
+ MCFG_GENERIC_LATCH_8_ADD("soundlatch")
+ MCFG_GENERIC_LATCH_8_ADD("soundlatch2")
+
+ MCFG_SOUND_ADD("ymsnd", YM2610, NEOGEO_YM2610_CLOCK)
+ MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 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
+
+
+MACHINE_CONFIG_DERIVED( neogeo_arcade, neogeo_base )
+ MCFG_WATCHDOG_ADD("watchdog")
+ MCFG_WATCHDOG_TIME_INIT(attotime::from_ticks(3244030, NEOGEO_MASTER_CLOCK))
+ MCFG_UPD4990A_ADD("upd4990a", XTAL_32_768kHz, NOOP, NOOP)
+ MCFG_NVRAM_ADD_0FILL("saveram")
+ MCFG_NEOGEO_MEMCARD_ADD("memcard")
+MACHINE_CONFIG_END
+
+
+static MACHINE_CONFIG_DERIVED( mvs, neogeo_arcade )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(main_map_slot)
+
+ MCFG_NEOGEO_CONTROL_EDGE_CONNECTOR_ADD("edge", neogeo_arc_edge, "joy", false)
+
+ MCFG_NEOGEO_CONTROL_PORT_ADD("ctrl1", neogeo_arc_pin15, "", false)
+ MCFG_NEOGEO_CONTROL_PORT_ADD("ctrl2", neogeo_arc_pin15, "", false)
+MACHINE_CONFIG_END
+
+
+
+/* dummy entry for the dummy bios driver */
+ROM_START( neogeo )
+ NEOGEO_BIOS
+
+ ROM_REGION( 0x100000, "maincpu", ROMREGION_ERASEFF )
+
+ ROM_REGION( 0x20000, "audiobios", 0 )
+ ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) )
+
+ ROM_REGION( 0x50000, "audiocpu", 0 )
+ ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) )
+
+ ROM_Y_ZOOM
+
+ ROM_REGION( 0x20000, "fixed", ROMREGION_ERASEFF )
+
+ ROM_REGION( 0x20000, "fixedbios", 0 )
+ ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) )
+
+ ROM_REGION( 0x10000, "ymsnd", ROMREGION_ERASEFF )
+
+ ROM_REGION( 0x100000, "sprites", ROMREGION_ERASEFF )
+ROM_END
+
+
+/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT */
+CONS( 1990, neogeo, 0, 0, mvs, neogeo_6slot, neogeo_state, mvs, "SNK", "Neo-Geo", MACHINE_IS_BIOS_ROOT | MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/neogeo0.cpp b/docs/release/src/hbmame/drivers/neogeo0.cpp
new file mode 100644
index 00000000000..430332aef6f
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/neogeo0.cpp
@@ -0,0 +1,144 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+
+
+/******************************************************************************/
+
+#include "machine/watchdog.h"
+
+// set up a hbmame-specific derived class, instead of hacking into src/mame/includes/neogeo.h
+class neogeo_hbmame : public neogeo_noslot_state
+{
+public:
+ neogeo_hbmame(const machine_config &mconfig, device_type type, const char *tag)
+ : neogeo_noslot_state(mconfig, type, tag)
+ , m_kog_prot(*this, "kog_prot")
+ {}
+
+
+ DECLARE_DRIVER_INIT(cmc42sfix);
+ DECLARE_DRIVER_INIT(cmc50sfix);
+ DECLARE_DRIVER_INIT(cthd2k3a);
+ DECLARE_DRIVER_INIT(fr2ch);
+ DECLARE_DRIVER_INIT(garoud);
+ DECLARE_DRIVER_INIT(jckeygpd);
+ DECLARE_DRIVER_INIT(kof96ep);
+ DECLARE_DRIVER_INIT(kof97pla);
+ DECLARE_DRIVER_INIT(kof99bh);
+ DECLARE_DRIVER_INIT(kof99d);
+ DECLARE_DRIVER_INIT(kof2000d);
+ DECLARE_DRIVER_INIT(kof2000h);
+ DECLARE_DRIVER_INIT(kof2000m);
+ DECLARE_DRIVER_INIT(kof2kbsd);
+ DECLARE_DRIVER_INIT(kof2knd);
+ DECLARE_DRIVER_INIT(kof2kxxx);
+ DECLARE_DRIVER_INIT(kof2001d);
+ DECLARE_DRIVER_INIT(kof2001m);
+ DECLARE_DRIVER_INIT(kf2k1pls);
+ DECLARE_DRIVER_INIT(kf2k1pa);
+ DECLARE_DRIVER_INIT(kof2002d);
+ DECLARE_DRIVER_INIT(kof2002m);
+ DECLARE_DRIVER_INIT(kof2k2bd);
+ DECLARE_DRIVER_INIT(kof2k2dbh);
+ DECLARE_DRIVER_INIT(kof2k2h);
+ DECLARE_DRIVER_INIT(kof2k2lb);
+ DECLARE_DRIVER_INIT(kof2k2ps2a);
+ DECLARE_DRIVER_INIT(kof2003b);
+ DECLARE_DRIVER_INIT(kof2003hb);
+ DECLARE_DRIVER_INIT(kof2k3hd);
+ DECLARE_DRIVER_INIT(kof2k3pcd);
+ DECLARE_DRIVER_INIT(kof10thu);
+ DECLARE_DRIVER_INIT(kogd);
+ DECLARE_DRIVER_INIT(matrima);
+ DECLARE_DRIVER_INIT(matrimd);
+ DECLARE_DRIVER_INIT(matrmehc);
+ DECLARE_DRIVER_INIT(mslug3d);
+ DECLARE_DRIVER_INIT(mslug3fr);
+ DECLARE_DRIVER_INIT(mslug3n);
+ DECLARE_DRIVER_INIT(mslug4d);
+ DECLARE_DRIVER_INIT(mslug4dh);
+ DECLARE_DRIVER_INIT(mslug4it);
+ DECLARE_DRIVER_INIT(mslug4m);
+ DECLARE_DRIVER_INIT(mslug5b);
+ DECLARE_DRIVER_INIT(mslug5d);
+ DECLARE_DRIVER_INIT(mslug5hd);
+ DECLARE_DRIVER_INIT(mslug5nd);
+ DECLARE_DRIVER_INIT(ms5pcbd);
+ DECLARE_DRIVER_INIT(mslug5d1);
+ DECLARE_DRIVER_INIT(mslug5fr1);
+ DECLARE_DRIVER_INIT(ms5boot);
+ DECLARE_DRIVER_INIT(pnyaad);
+ DECLARE_DRIVER_INIT(rotdb);
+ DECLARE_DRIVER_INIT(rotdd);
+ DECLARE_DRIVER_INIT(rotdnd);
+ DECLARE_DRIVER_INIT(sam5hb);
+ DECLARE_DRIVER_INIT(sam5sphb);
+ DECLARE_DRIVER_INIT(sengo3d);
+ DECLARE_DRIVER_INIT(shockt2w);
+ DECLARE_DRIVER_INIT(svchb);
+ DECLARE_DRIVER_INIT(svcpcd);
+private:
+ optional_device<kog_prot_device> m_kog_prot;
+};
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, cmc42sfix )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, cmc50sfix )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 2;
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+
+
+static MACHINE_CONFIG_DERIVED( no_watchdog, neogeo_noslot )
+ MCFG_WATCHDOG_MODIFY("watchdog")
+ MCFG_WATCHDOG_TIME_INIT(attotime::from_seconds(0.0))
+MACHINE_CONFIG_END
+
+
+// used by samsho2sp, doubledrsp
+ADDRESS_MAP_START( samsho2sp_map, AS_PROGRAM, 16, neogeo_state )
+ AM_RANGE(0x900000, 0x91ffff) AM_ROM AM_REGION("maincpu", 0x200000) // extra rom
+ AM_IMPORT_FROM( main_map_noslot )
+ADDRESS_MAP_END
+
+static MACHINE_CONFIG_DERIVED( samsho2sp, neogeo_noslot )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(samsho2sp_map)
+MACHINE_CONFIG_END
+
+/******************************************************************************/
+
+
+#include "neogeohb.cpp"
+#include "neogeo1.cpp"
+#include "kof94.cpp"
+#include "kof95.cpp"
+#include "kof96.cpp"
+#include "kof97.cpp"
+#include "kof98.cpp"
+#include "kof99.cpp"
+#include "kof2000.cpp"
+#include "kof2001.cpp"
+#include "kof2002.cpp"
+#include "kof2003.cpp"
+#include "mgd2.cpp"
+#include "mslug.cpp"
+#include "ngdoubledr.cpp"
+#include "nggaroup.cpp"
+#include "ngkofmisc.cpp"
+#include "nglastblade.cpp"
+#include "ngrbff.cpp"
+#include "ngrotd.cpp"
+#include "ngsamsho.cpp"
+#include "ngsengoku.cpp"
+#include "ngsvc.cpp"
+#include "ngwh.cpp"
+
diff --git a/docs/release/src/hbmame/drivers/neogeo1.cpp b/docs/release/src/hbmame/drivers/neogeo1.cpp
new file mode 100644
index 00000000000..495cbe87173
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/neogeo1.cpp
@@ -0,0 +1,2986 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+// Neogeo hacks that don't warrant their own file
+
+
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, jckeygpd)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+
+ /* install some extra RAM */
+ m_maincpu->space(AS_PROGRAM).install_ram(0x200000, 0x201fff);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, matrima )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 2;
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, MATRIM_GFX_KEY);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, matrimd )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 2;
+ m_kof2002_prot->matrim_decrypt_68k(cpuregion, cpuregion_size);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 1);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, matrmehc )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 2;
+ m_kof2002_prot->matrim_decrypt_68k(cpuregion, cpuregion_size);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, MATRIM_GFX_KEY);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 1);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, pnyaad )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_pcm2_prot->neo_pcm2_snk_1999(ym_region, ym_region_size, 4);
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, shockt2w )
+{
+ DRIVER_INIT_CALL(neogeo);
+ uint16_t *mem16= (uint16_t *)memregion("mainbios");
+ mem16[0x0200] = 1; /* Force home mode */
+ /* Above causes checksum failure, so patch it out */
+ mem16[0x11c62/2] = 0x4e71;
+ mem16[0x11c64/2] = 0x4e71;
+}
+
+
+
+ROM_START( 2020bbcd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "030cd.p1", 0x000000, 0x080000, CRC(e13d8a8a) SHA1(3975bdf141abc4994c9fc1919fb4207883687961) )
+
+ NEO_SFIX_128K( "030-s1.s1", CRC(7015b8fc) SHA1(8c09bc3e6c62e0f7c9557c1e10c901be325bae7f) )
+
+ NEO_BIOS_AUDIO_64K( "030cd.m1", CRC(124d7b4f) SHA1(fd7bceacd0ec17cab7abb28ee8eab92217f9c197) )
+ // use this to get full sound
+ //NEO_BIOS_AUDIO_128K( "030-m1.m1", CRC(4cf466ec) SHA1(6a003b53c7a4af9d7529e2c10f27ffc4e58dcda5) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "030cd.v1", 0x000000, 0x100000, CRC(d725a649) SHA1(cd1206b7190e543f31eb878f645f3be841c5a4ed) )
+ ROM_LOAD( "030-v2.v2", 0x100000, 0x100000, CRC(54994455) SHA1(76eb62b86e8ed51a77f44313d5cc8091b3f58d57) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "030-c1.c1", 0x000000, 0x100000, CRC(4f5e19bd) SHA1(ef7975c4b33a7aea4a25a385f604799f054d3200) )
+ ROM_LOAD16_BYTE( "030-c2.c2", 0x000001, 0x100000, CRC(d6314bf0) SHA1(0920cc580d7997fcb0170dd619af2f305d635577) )
+ ROM_LOAD16_BYTE( "030-c3.c3", 0x200000, 0x100000, CRC(47fddfee) SHA1(297c505a63448c999a2510c27bf4549102134db8) )
+ ROM_LOAD16_BYTE( "030-c4.c4", 0x200001, 0x100000, CRC(780d1c4e) SHA1(2e2cf9de828e3b48642dd2203637103438c62142) )
+ROM_END
+
+
+ROM_START( androdunpx )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "049px.p1", 0x000000, 0x080000, CRC(5f63193e) SHA1(7ba7bb8f9382ddd7b35601b8171a0e532c9dfe55) )
+ ROM_LOAD16_WORD_SWAP( "049-p2.p2", 0x080000, 0x080000, CRC(2f062209) SHA1(991cf3e3677929b2cc0b2787b0c7b6ad3700f618) )
+
+ NEO_SFIX_128K( "049-s1.s1", CRC(6349de5d) SHA1(bcc44b9576d7bedd9a39294530bb66f707690c72) )
+
+ NEO_BIOS_AUDIO_128K( "049-m1.m1", CRC(edd2acf4) SHA1(c4ee6ba834d54b9fc5a854dbc41a05877e090371) )
+
+ ROM_REGION( 0x100000, "ymsnd", 0 )
+ ROM_LOAD( "049-v1.v1", 0x000000, 0x100000, CRC(ce43cb89) SHA1(47f82e077abb6efc6b1b0490412ae147d5d2acef) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "049-c1.c1", 0x000000, 0x100000, CRC(7ace6db3) SHA1(c41cc9de8c0788dcc49ca494fd3bb3124062d9dd) )
+ ROM_LOAD16_BYTE( "049-c2.c2", 0x000001, 0x100000, CRC(b17024f7) SHA1(fcf7efae48fcdccaf5255c145de414fb246128f0) )
+ROM_END
+
+
+ROM_START( aofbh )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "044bh.p1", 0x000000, 0x080000, CRC(202a60d8) SHA1(f0caa8b6a18dff1b9568aaae552cf6d10a9db722) )
+
+ NEO_SFIX_128K( "044-s1.s1", CRC(89903f39) SHA1(a04a0c244a5d5c7a595fcf649107969635a6a8b6) )
+
+ NEO_BIOS_AUDIO_128K( "044-m1.m1", CRC(0987e4bb) SHA1(8fae4b7fac09d46d4727928e609ed9d3711dbded) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "044-v2.v2", 0x000000, 0x200000, CRC(3ec632ea) SHA1(e3f413f580b57f70d2dae16dbdacb797884d3fce) )
+ ROM_LOAD( "044-v4.v4", 0x200000, 0x200000, CRC(4b0f8e23) SHA1(105da0cc5ba19869c7147fba8b177500758c232b) )
+
+ ROM_REGION( 0x800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "044-c1.c1", 0x000000, 0x100000, CRC(ddab98a7) SHA1(f20eb81ec431268798c142c482146c1545af1c24) )
+ ROM_CONTINUE( 0x400000, 0x100000 )
+ ROM_LOAD16_BYTE( "044-c2.c2", 0x000001, 0x100000, CRC(d8ccd575) SHA1(f697263fe92164e274bf34c55327b3d4a158b332) )
+ ROM_CONTINUE( 0x400001, 0x100000 )
+ ROM_LOAD16_BYTE( "044-c3.c3", 0x200000, 0x100000, CRC(403e898a) SHA1(dd5888f8b24a33b2c1f483316fe80c17849ccfc4) )
+ ROM_CONTINUE( 0x600000, 0x100000 )
+ ROM_LOAD16_BYTE( "044-c4.c4", 0x200001, 0x100000, CRC(6235fbaa) SHA1(9090e337d7beed25ba81ae0708d0aeb57e6cf405) )
+ ROM_CONTINUE( 0x600001, 0x100000 )
+ROM_END
+
+
+ROM_START( aof2b ) /* Art of Fighting 2 - Hack by TcwLee - (Can select Geese instead of Mr. Big) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "056b.p1", 0x000000, 0x100000, CRC(c3dc11f8) SHA1(7f92f4931ffdf2561b1a2741e18a4ae301df8497) )
+
+ NEO_SFIX_128K( "056-s1.s1", CRC(8b02638e) SHA1(aa4d28804ca602da776948b5f223ea89e427906b) )
+
+ NEO_BIOS_AUDIO_128K( "056-m1.m1", CRC(f27e9d52) SHA1(dddae733d87ce7c88ad2580a8f64cb6ff9572e67) )
+
+ ROM_REGION( 0x500000, "ymsnd", 0 )
+ ROM_LOAD( "056-v1.v1", 0x000000, 0x200000, CRC(4628fde0) SHA1(ece2a50f5270d844d58401b1447d1d856d78ea45) )
+ ROM_LOAD( "056-v2.v2", 0x200000, 0x200000, CRC(b710e2f2) SHA1(df4da585203eea7554d3ce718eb107e9cb6a0254) )
+ ROM_LOAD( "056-v3.v3", 0x400000, 0x100000, CRC(d168c301) SHA1(969273d1d11943e81560959359a2c4e69522af0e) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "056-c1.c1", 0x000000, 0x200000, CRC(17b9cbd2) SHA1(1eee81e02763d384bd1c10a6012473ca931e4093) )
+ ROM_LOAD16_BYTE( "056-c2.c2", 0x000001, 0x200000, CRC(5fd76b67) SHA1(11925a41a53b53c6df4a5ebd28f98300950f743b) )
+ ROM_LOAD16_BYTE( "056-c3.c3", 0x400000, 0x200000, CRC(d2c88768) SHA1(22e2d84aa0c095944190e249ce87ef50d3f7b8ce) )
+ ROM_LOAD16_BYTE( "056-c4.c4", 0x400001, 0x200000, CRC(db39b883) SHA1(59de86c513dc4e230ae25d9e3b7e84621b657b54) )
+ ROM_LOAD16_BYTE( "056-c5.c5", 0x800000, 0x200000, CRC(c3074137) SHA1(9a75e3d63cb98d54f900dcfb3a03e21f3148d32f) )
+ ROM_LOAD16_BYTE( "056-c6.c6", 0x800001, 0x200000, CRC(31de68d3) SHA1(13ba7046cdd6863125f8284e60f102d4720af5a4) )
+ ROM_LOAD16_BYTE( "056-c7.c7", 0xc00000, 0x200000, CRC(3f36df57) SHA1(79ee97e9ae811a51141b535633f90e1491209d54) )
+ ROM_LOAD16_BYTE( "056-c8.c8", 0xc00001, 0x200000, CRC(e546d7a8) SHA1(74a2fca994a5a93a5784a46c0f68193122456a09) )
+ROM_END
+
+ROM_START( aof2b1 ) // also known as aof2bhfx
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "056b1.p1", 0x000000, 0x100000, CRC(5d21dc39) SHA1(72df83c4249990386ced39749dd6994aa5a0b2a9) )
+
+ NEO_SFIX_128K( "056-s1.s1", CRC(8b02638e) SHA1(aa4d28804ca602da776948b5f223ea89e427906b) )
+
+ NEO_BIOS_AUDIO_128K( "056-m1.m1", CRC(f27e9d52) SHA1(dddae733d87ce7c88ad2580a8f64cb6ff9572e67) )
+
+ ROM_REGION( 0x500000, "ymsnd", 0 )
+ ROM_LOAD( "056-v1.v1", 0x000000, 0x200000, CRC(4628fde0) SHA1(ece2a50f5270d844d58401b1447d1d856d78ea45) )
+ ROM_LOAD( "056-v2.v2", 0x200000, 0x200000, CRC(b710e2f2) SHA1(df4da585203eea7554d3ce718eb107e9cb6a0254) )
+ ROM_LOAD( "056-v3.v3", 0x400000, 0x100000, CRC(d168c301) SHA1(969273d1d11943e81560959359a2c4e69522af0e) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "056-c1.c1", 0x000000, 0x200000, CRC(17b9cbd2) SHA1(1eee81e02763d384bd1c10a6012473ca931e4093) )
+ ROM_LOAD16_BYTE( "056-c2.c2", 0x000001, 0x200000, CRC(5fd76b67) SHA1(11925a41a53b53c6df4a5ebd28f98300950f743b) )
+ ROM_LOAD16_BYTE( "056-c3.c3", 0x400000, 0x200000, CRC(d2c88768) SHA1(22e2d84aa0c095944190e249ce87ef50d3f7b8ce) )
+ ROM_LOAD16_BYTE( "056-c4.c4", 0x400001, 0x200000, CRC(db39b883) SHA1(59de86c513dc4e230ae25d9e3b7e84621b657b54) )
+ ROM_LOAD16_BYTE( "056-c5.c5", 0x800000, 0x200000, CRC(c3074137) SHA1(9a75e3d63cb98d54f900dcfb3a03e21f3148d32f) )
+ ROM_LOAD16_BYTE( "056-c6.c6", 0x800001, 0x200000, CRC(31de68d3) SHA1(13ba7046cdd6863125f8284e60f102d4720af5a4) )
+ ROM_LOAD16_BYTE( "056-c7.c7", 0xc00000, 0x200000, CRC(3f36df57) SHA1(79ee97e9ae811a51141b535633f90e1491209d54) )
+ ROM_LOAD16_BYTE( "056-c8.c8", 0xc00001, 0x200000, CRC(e546d7a8) SHA1(74a2fca994a5a93a5784a46c0f68193122456a09) )
+ROM_END
+
+ROM_START( aof2bh )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "056bh.p1", 0x000000, 0x100000, CRC(3af1e484) SHA1(57b33dbb93d066092acddf163dbd67d15b5159e2) )
+
+ NEO_SFIX_128K( "056-s1.s1", CRC(8b02638e) SHA1(aa4d28804ca602da776948b5f223ea89e427906b) )
+
+ NEO_BIOS_AUDIO_128K( "056-m1.m1", CRC(f27e9d52) SHA1(dddae733d87ce7c88ad2580a8f64cb6ff9572e67) )
+
+ ROM_REGION( 0x500000, "ymsnd", 0 )
+ ROM_LOAD( "056-v1.v1", 0x000000, 0x200000, CRC(4628fde0) SHA1(ece2a50f5270d844d58401b1447d1d856d78ea45) )
+ ROM_LOAD( "056-v2.v2", 0x200000, 0x200000, CRC(b710e2f2) SHA1(df4da585203eea7554d3ce718eb107e9cb6a0254) )
+ ROM_LOAD( "056-v3.v3", 0x400000, 0x100000, CRC(d168c301) SHA1(969273d1d11943e81560959359a2c4e69522af0e) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "056-c1.c1", 0x000000, 0x200000, CRC(17b9cbd2) SHA1(1eee81e02763d384bd1c10a6012473ca931e4093) )
+ ROM_LOAD16_BYTE( "056-c2.c2", 0x000001, 0x200000, CRC(5fd76b67) SHA1(11925a41a53b53c6df4a5ebd28f98300950f743b) )
+ ROM_LOAD16_BYTE( "056-c3.c3", 0x400000, 0x200000, CRC(d2c88768) SHA1(22e2d84aa0c095944190e249ce87ef50d3f7b8ce) )
+ ROM_LOAD16_BYTE( "056-c4.c4", 0x400001, 0x200000, CRC(db39b883) SHA1(59de86c513dc4e230ae25d9e3b7e84621b657b54) )
+ ROM_LOAD16_BYTE( "056-c5.c5", 0x800000, 0x200000, CRC(c3074137) SHA1(9a75e3d63cb98d54f900dcfb3a03e21f3148d32f) )
+ ROM_LOAD16_BYTE( "056-c6.c6", 0x800001, 0x200000, CRC(31de68d3) SHA1(13ba7046cdd6863125f8284e60f102d4720af5a4) )
+ ROM_LOAD16_BYTE( "056-c7.c7", 0xc00000, 0x200000, CRC(3f36df57) SHA1(79ee97e9ae811a51141b535633f90e1491209d54) )
+ ROM_LOAD16_BYTE( "056-c8.c8", 0xc00001, 0x200000, CRC(e546d7a8) SHA1(74a2fca994a5a93a5784a46c0f68193122456a09) )
+ROM_END
+
+ROM_START( aof2br2 ) /* Art of Fighting 2 - Hack by TcwLee - (Can select Geese instead of Ryo) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "056br2.p1", 0x000000, 0x100000, CRC(02d068b7) SHA1(5aadebfd9a59e48be972c63dbf6c4cac32bba89a) )
+
+ NEO_SFIX_128K( "056-s1.s1", CRC(8b02638e) SHA1(aa4d28804ca602da776948b5f223ea89e427906b) )
+
+ NEO_BIOS_AUDIO_128K( "056-m1.m1", CRC(f27e9d52) SHA1(dddae733d87ce7c88ad2580a8f64cb6ff9572e67) )
+
+ ROM_REGION( 0x500000, "ymsnd", 0 )
+ ROM_LOAD( "056-v1.v1", 0x000000, 0x200000, CRC(4628fde0) SHA1(ece2a50f5270d844d58401b1447d1d856d78ea45) )
+ ROM_LOAD( "056-v2.v2", 0x200000, 0x200000, CRC(b710e2f2) SHA1(df4da585203eea7554d3ce718eb107e9cb6a0254) )
+ ROM_LOAD( "056-v3.v3", 0x400000, 0x100000, CRC(d168c301) SHA1(969273d1d11943e81560959359a2c4e69522af0e) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "056-c1.c1", 0x000000, 0x200000, CRC(17b9cbd2) SHA1(1eee81e02763d384bd1c10a6012473ca931e4093) )
+ ROM_LOAD16_BYTE( "056-c2.c2", 0x000001, 0x200000, CRC(5fd76b67) SHA1(11925a41a53b53c6df4a5ebd28f98300950f743b) )
+ ROM_LOAD16_BYTE( "056-c3.c3", 0x400000, 0x200000, CRC(d2c88768) SHA1(22e2d84aa0c095944190e249ce87ef50d3f7b8ce) )
+ ROM_LOAD16_BYTE( "056-c4.c4", 0x400001, 0x200000, CRC(db39b883) SHA1(59de86c513dc4e230ae25d9e3b7e84621b657b54) )
+ ROM_LOAD16_BYTE( "056-c5.c5", 0x800000, 0x200000, CRC(c3074137) SHA1(9a75e3d63cb98d54f900dcfb3a03e21f3148d32f) )
+ ROM_LOAD16_BYTE( "056-c6.c6", 0x800001, 0x200000, CRC(31de68d3) SHA1(13ba7046cdd6863125f8284e60f102d4720af5a4) )
+ ROM_LOAD16_BYTE( "056-c7.c7", 0xc00000, 0x200000, CRC(3f36df57) SHA1(79ee97e9ae811a51141b535633f90e1491209d54) )
+ ROM_LOAD16_BYTE( "056-c8.c8", 0xc00001, 0x200000, CRC(e546d7a8) SHA1(74a2fca994a5a93a5784a46c0f68193122456a09) )
+ROM_END
+
+
+ROM_START( aof3b ) /* Art of Fighting 3 - Hack by Dodowang - (Can select Wyler and Sinclair AES/MVS - enabled add. info) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "096b.p1", 0x000000, 0x100000, CRC(255aec23) SHA1(9E97772CC2DB51139A04BAC725E6529DD6E0F19A) )
+ ROM_LOAD16_WORD_SWAP( "096-p2.sp2", 0x100000, 0x200000, CRC(4d5a2602) SHA1(4c26d6135d2877d9c38169662033e9d0cc24d943) )
+
+ NEO_SFIX_128K( "096-s1.s1", CRC(cc7fd344) SHA1(2c6846cf8ea61fb192ba181dbccb63594d572c0e) )
+
+ NEO_BIOS_AUDIO_128K( "096-m1.m1", CRC(cb07b659) SHA1(940b379957c2987d7ab0443cb80c3ff58f6ba559) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "096-v1.v1", 0x000000, 0x200000, CRC(e2c32074) SHA1(69426e7e63fc31a73d1cd056cc9ae6a2c4499407) )
+ ROM_LOAD( "096-v2.v2", 0x200000, 0x200000, CRC(a290eee7) SHA1(e66a98cd9740188bf999992b417f8feef941cede) )
+ ROM_LOAD( "096-v3.v3", 0x400000, 0x200000, CRC(199d12ea) SHA1(a883bf34e685487705a8dafdd0b8db15eb360e80) )
+
+ ROM_REGION( 0x1c00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "096-c1.c1", 0x0000000, 0x400000, CRC(f17b8d89) SHA1(7180df23f7c7a964b0835fda76970b12f0aa9ea8) )
+ ROM_LOAD16_BYTE( "096-c2.c2", 0x0000001, 0x400000, CRC(3840c508) SHA1(55adc7cd26fec3e4dbd779df6701bc6eaba41b84) )
+ ROM_LOAD16_BYTE( "096-c3.c3", 0x0800000, 0x400000, CRC(55f9ee1e) SHA1(fbe1b7891beae66c5fcbc7e36168dc1b460ede91) )
+ ROM_LOAD16_BYTE( "096-c4.c4", 0x0800001, 0x400000, CRC(585b7e47) SHA1(d50ea91397fc53d86470ff5b493a44d57c010306) )
+ ROM_LOAD16_BYTE( "096-c5.c5", 0x1000000, 0x400000, CRC(c75a753c) SHA1(fc977f8710816a369a5d0d49ee84059380e93fb7) )
+ ROM_LOAD16_BYTE( "096-c6.c6", 0x1000001, 0x400000, CRC(9a9d2f7a) SHA1(a89a713bfcd93974c9acb21ce699d365b08e7e39) )
+ ROM_LOAD16_BYTE( "096-c7.c7", 0x1800000, 0x200000, CRC(51bd8ab2) SHA1(c8def9c64de64571492b5b7e14b794e3c18f1393) )
+ ROM_LOAD16_BYTE( "096-c8.c8", 0x1800001, 0x200000, CRC(9a34f99c) SHA1(fca72d95ec42790a7f1e771a1e25dbc5bec5fc19) )
+ROM_END
+
+ROM_START( aof3bh )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "096bh.p1", 0x000000, 0x100000, CRC(70969ff1) SHA1(a17d17c451655e01db8d42c6edd31fd2917bd486) )
+ ROM_LOAD16_WORD_SWAP( "096-p2.sp2", 0x100000, 0x200000, CRC(4d5a2602) SHA1(4c26d6135d2877d9c38169662033e9d0cc24d943) )
+
+ NEO_SFIX_128K( "096-s1.s1", CRC(cc7fd344) SHA1(2c6846cf8ea61fb192ba181dbccb63594d572c0e) )
+
+ NEO_BIOS_AUDIO_128K( "096-m1.m1", CRC(cb07b659) SHA1(940b379957c2987d7ab0443cb80c3ff58f6ba559) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "096-v1.v1", 0x000000, 0x200000, CRC(e2c32074) SHA1(69426e7e63fc31a73d1cd056cc9ae6a2c4499407) )
+ ROM_LOAD( "096-v2.v2", 0x200000, 0x200000, CRC(a290eee7) SHA1(e66a98cd9740188bf999992b417f8feef941cede) )
+ ROM_LOAD( "096-v3.v3", 0x400000, 0x200000, CRC(199d12ea) SHA1(a883bf34e685487705a8dafdd0b8db15eb360e80) )
+
+ ROM_REGION( 0x1c00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "096-c1.c1", 0x0000000, 0x400000, CRC(f17b8d89) SHA1(7180df23f7c7a964b0835fda76970b12f0aa9ea8) )
+ ROM_LOAD16_BYTE( "096-c2.c2", 0x0000001, 0x400000, CRC(3840c508) SHA1(55adc7cd26fec3e4dbd779df6701bc6eaba41b84) )
+ ROM_LOAD16_BYTE( "096-c3.c3", 0x0800000, 0x400000, CRC(55f9ee1e) SHA1(fbe1b7891beae66c5fcbc7e36168dc1b460ede91) )
+ ROM_LOAD16_BYTE( "096-c4.c4", 0x0800001, 0x400000, CRC(585b7e47) SHA1(d50ea91397fc53d86470ff5b493a44d57c010306) )
+ ROM_LOAD16_BYTE( "096-c5.c5", 0x1000000, 0x400000, CRC(c75a753c) SHA1(fc977f8710816a369a5d0d49ee84059380e93fb7) )
+ ROM_LOAD16_BYTE( "096-c6.c6", 0x1000001, 0x400000, CRC(9a9d2f7a) SHA1(a89a713bfcd93974c9acb21ce699d365b08e7e39) )
+ ROM_LOAD16_BYTE( "096-c7.c7", 0x1800000, 0x200000, CRC(51bd8ab2) SHA1(c8def9c64de64571492b5b7e14b794e3c18f1393) )
+ ROM_LOAD16_BYTE( "096-c8.c8", 0x1800001, 0x200000, CRC(9a34f99c) SHA1(fca72d95ec42790a7f1e771a1e25dbc5bec5fc19) )
+ROM_END
+
+
+ROM_START( bangbeadp )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "259-p1.p1", 0x100000, 0x100000, CRC(88a37f8b) SHA1(566db84850fad5e8fe822e8bba910a33e083b550) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "259p.s1", CRC(bb50fb2d) SHA1(7372939f328fb5e7d09c16985e09ae8c34702b0c) )
+
+ NEO_BIOS_AUDIO_128K( "259-m1.m1", CRC(85668ee9) SHA1(7d3f51710cf90c097cd3faaeeef10ceb85cbb3e8) )
+
+ ROM_REGION( 0x500000, "ymsnd", 0 )
+ ROM_LOAD( "259p.v1", 0x000000, 0x200000, CRC(e97b9385) SHA1(d213cae6cf5732b8ab1f8a8cf04afee5dfd9a260) )
+ ROM_LOAD( "259p.v2", 0x200000, 0x200000, CRC(b0cbd70a) SHA1(fc7c8183f8ff9800e8aae7c8d44d962300058cfb) )
+ ROM_LOAD( "259-v2.v2", 0x400000, 0x100000, CRC(97528fe9) SHA1(8f5eddbb3a9a225492479d1a44801f3916c8e791) )
+
+ ROM_REGION( 0x600000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "259p.c1", 0x000000, 0x200000, CRC(e3919e44) SHA1(54c722414b5a7ad311dc8ddf6fdda88535e829d1) )
+ ROM_LOAD16_BYTE( "259p.c2", 0x000001, 0x200000, CRC(baf5a320) SHA1(ead3d81d9b4aeb45af4f9cb5c38157f2236b506c) )
+ ROM_LOAD16_BYTE( "259p.c3", 0x400000, 0x100000, CRC(c8e52157) SHA1(f10f58e905c4cbaf182b20e63abe5364462133c5) )
+ ROM_LOAD16_BYTE( "259p.c4", 0x400001, 0x100000, CRC(69fa8e60) SHA1(29c1fbdb79dedf1470683202e2cb3435732d9275) )
+ROM_END
+
+
+ROM_START( bjourneypx )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "022px.p1", 0x000000, 0x100000, CRC(1e8b5847) SHA1(59bfff5d8459b24bd3d403a73440ced5c440fd2b) )
+
+ NEO_SFIX_128K( "022-s1.s1", CRC(843c3624) SHA1(dbdf86c193b7c1d795f8c21f2c103c1d3e18abbe) )
+
+ NEO_BIOS_AUDIO_128K( "022-m1.m1", CRC(8e1d4ab6) SHA1(deabc11ab81e7e68a3e041c03a127ae28d0d7264) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "022-v11.v11", 0x000000, 0x100000, CRC(2cb4ad91) SHA1(169ec7303c4275155a66a88cc08270c24132bb36) )
+ ROM_LOAD( "022-v22.v22", 0x100000, 0x100000, CRC(65a54d13) SHA1(a591fbcedca8f679dacbebcd554e3aa3fd163e92) )
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "022-c1.c1", 0x000000, 0x100000, CRC(4d47a48c) SHA1(6e282285be72583d828e7765b1c1695ecdc44777) )
+ ROM_LOAD16_BYTE( "022-c2.c2", 0x000001, 0x100000, CRC(e8c1491a) SHA1(c468d2556b3de095aaa05edd1bc16d71303e9478) )
+ ROM_LOAD16_BYTE( "022-c3.c3", 0x200000, 0x080000, CRC(66e69753) SHA1(974b823fc62236fbc23e727f25b61a805a707a9e) )
+ ROM_LOAD16_BYTE( "022-c4.c4", 0x200001, 0x080000, CRC(71bfd48a) SHA1(47288be69e6992d09ebef108b4de9ffab6293dc8) )
+ROM_END
+
+
+ROM_START( breakersbh )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "230bh.p1", 0x100000, 0x100000, CRC(1d708f96) SHA1(92604d61ed4f6101bdbf6e4352ab28a292e9d0cf) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "230-s1.s1", CRC(076fb64c) SHA1(c166038128d7004f69932141f83b320a35c2b4ca) )
+
+ NEO_BIOS_AUDIO_128K( "230-m1.m1", CRC(3951a1c1) SHA1(1e6442a7ea82ada9503d71045dd93e12bd05254f) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "230-v1.v1", 0x000000, 0x400000, CRC(7f9ed279) SHA1(acd0558960ec29bfc3e3ee99d00e503bebff8513) )
+ ROM_LOAD( "230-v2.v2", 0x400000, 0x400000, CRC(1d43e420) SHA1(26d09b8b18b4b802dbda4d6f06626c24d0b7c512) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "230-c1.c1", 0x000000, 0x400000, CRC(68d4ae76) SHA1(2e820067f6963669f104bebf19e865fe4127b4dd) )
+ ROM_LOAD16_BYTE( "230-c2.c2", 0x000001, 0x400000, CRC(fdee05cd) SHA1(efc4ffd790953ac7c25d5f045c64a9b49d24b096) )
+ ROM_LOAD16_BYTE( "230-c3.c3", 0x800000, 0x400000, CRC(645077f3) SHA1(0ae74f3b4b3b88f128c6d8c0f35ffa53f5d67ef2) )
+ ROM_LOAD16_BYTE( "230-c4.c4", 0x800001, 0x400000, CRC(63aeb74c) SHA1(9ff6930c0c3d79b46b86356e8565ce4fcd69ac38) )
+ROM_END
+
+ROM_START( breakersp ) /* Breakers - Hack by UNKNOWN - (Move change 26c?) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "230p.p1", 0x100000, 0x100000, CRC(244ad91b) SHA1(22EFEA04BFB86E8C75A80C6584AB0CAA85FC0E92) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "230-s1.s1", CRC(076fb64c) SHA1(c166038128d7004f69932141f83b320a35c2b4ca) )
+
+ NEO_BIOS_AUDIO_128K( "230-m1.m1", CRC(3951a1c1) SHA1(1e6442a7ea82ada9503d71045dd93e12bd05254f) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "230-v1.v1", 0x000000, 0x400000, CRC(7f9ed279) SHA1(acd0558960ec29bfc3e3ee99d00e503bebff8513) )
+ ROM_LOAD( "230-v2.v2", 0x400000, 0x400000, CRC(1d43e420) SHA1(26d09b8b18b4b802dbda4d6f06626c24d0b7c512) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "230-c1.c1", 0x000000, 0x400000, CRC(68d4ae76) SHA1(2e820067f6963669f104bebf19e865fe4127b4dd) )
+ ROM_LOAD16_BYTE( "230-c2.c2", 0x000001, 0x400000, CRC(fdee05cd) SHA1(efc4ffd790953ac7c25d5f045c64a9b49d24b096) )
+ ROM_LOAD16_BYTE( "230-c3.c3", 0x800000, 0x400000, CRC(645077f3) SHA1(0ae74f3b4b3b88f128c6d8c0f35ffa53f5d67ef2) )
+ ROM_LOAD16_BYTE( "230-c4.c4", 0x800001, 0x400000, CRC(63aeb74c) SHA1(9ff6930c0c3d79b46b86356e8565ce4fcd69ac38) )
+ROM_END
+
+ROM_START( breakersy )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "230y.p1", 0x100000, 0x100000, CRC(e65b2b70) SHA1(a879fa3299240fa82560c140e32c0d046de9aadd) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "230-s1.s1", CRC(076fb64c) SHA1(c166038128d7004f69932141f83b320a35c2b4ca) )
+
+ NEO_BIOS_AUDIO_128K( "230-m1.m1", CRC(3951a1c1) SHA1(1e6442a7ea82ada9503d71045dd93e12bd05254f) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "230-v1.v1", 0x000000, 0x400000, CRC(7f9ed279) SHA1(acd0558960ec29bfc3e3ee99d00e503bebff8513) )
+ ROM_LOAD( "230-v2.v2", 0x400000, 0x400000, CRC(1d43e420) SHA1(26d09b8b18b4b802dbda4d6f06626c24d0b7c512) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "230-c1.c1", 0x000000, 0x400000, CRC(68d4ae76) SHA1(2e820067f6963669f104bebf19e865fe4127b4dd) )
+ ROM_LOAD16_BYTE( "230-c2.c2", 0x000001, 0x400000, CRC(fdee05cd) SHA1(efc4ffd790953ac7c25d5f045c64a9b49d24b096) )
+ ROM_LOAD16_BYTE( "230-c3.c3", 0x800000, 0x400000, CRC(645077f3) SHA1(0ae74f3b4b3b88f128c6d8c0f35ffa53f5d67ef2) )
+ ROM_LOAD16_BYTE( "230-c4.c4", 0x800001, 0x400000, CRC(63aeb74c) SHA1(9ff6930c0c3d79b46b86356e8565ce4fcd69ac38) )
+ROM_END
+
+
+ROM_START( breakrevb )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "245b.p1", 0x100000, 0x100000, CRC(52c978b5) SHA1(892712457ba8c789b136b35ba423f5260c20b478) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "245-s1.s1", CRC(e7660a5d) SHA1(1cd54964ba60b245ea57d9daf0e27b572b815d21) )
+
+ NEO_BIOS_AUDIO_128K( "245-m1.m1", CRC(00f31c66) SHA1(8488598415c9b74bce00e05b31d96e3d1625c20d) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "245-v1.v1", 0x000000, 0x400000, CRC(e255446c) SHA1(b3933340d49d4ba581f3bf1af7ad69d786205790) )
+ ROM_LOAD( "245-v2.v2", 0x400000, 0x400000, CRC(9068198a) SHA1(71819b0475a5e173a2f9a6e4ff19a94655141c3c) )
+
+ ROM_REGION( 0x1800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "245-c1.c1", 0x0000000, 0x400000, CRC(68d4ae76) SHA1(2e820067f6963669f104bebf19e865fe4127b4dd) )
+ ROM_LOAD16_BYTE( "245-c2.c2", 0x0000001, 0x400000, CRC(fdee05cd) SHA1(efc4ffd790953ac7c25d5f045c64a9b49d24b096) )
+ ROM_LOAD16_BYTE( "245-c3.c3", 0x0800000, 0x400000, CRC(645077f3) SHA1(0ae74f3b4b3b88f128c6d8c0f35ffa53f5d67ef2) )
+ ROM_LOAD16_BYTE( "245-c4.c4", 0x0800001, 0x400000, CRC(63aeb74c) SHA1(9ff6930c0c3d79b46b86356e8565ce4fcd69ac38) )
+ ROM_LOAD16_BYTE( "245-c5.c5", 0x1000000, 0x400000, CRC(b5f40e7f) SHA1(b332bac64dbb9a9dd66c5315f47ea08634d36f45) )
+ ROM_LOAD16_BYTE( "245-c6.c6", 0x1000001, 0x400000, CRC(d0337328) SHA1(dff86b75dc283bd4512557a5c64f16e6be6c16e4) )
+ROM_END
+
+ROM_START( breakrevpp )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "245pp.p1", 0x100000, 0x100000, CRC(a95c1ef2) SHA1(3d46ab9107eb353668711868b78b284e19ae04f6) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "245-s1.s1", CRC(e7660a5d) SHA1(1cd54964ba60b245ea57d9daf0e27b572b815d21) )
+
+ NEO_BIOS_AUDIO_128K( "245-m1.m1", CRC(00f31c66) SHA1(8488598415c9b74bce00e05b31d96e3d1625c20d) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "245-v1.v1", 0x000000, 0x400000, CRC(e255446c) SHA1(b3933340d49d4ba581f3bf1af7ad69d786205790) )
+ ROM_LOAD( "245-v2.v2", 0x400000, 0x400000, CRC(9068198a) SHA1(71819b0475a5e173a2f9a6e4ff19a94655141c3c) )
+
+ ROM_REGION( 0x1800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "245-c1.c1", 0x0000000, 0x400000, CRC(68d4ae76) SHA1(2e820067f6963669f104bebf19e865fe4127b4dd) )
+ ROM_LOAD16_BYTE( "245-c2.c2", 0x0000001, 0x400000, CRC(fdee05cd) SHA1(efc4ffd790953ac7c25d5f045c64a9b49d24b096) )
+ ROM_LOAD16_BYTE( "245-c3.c3", 0x0800000, 0x400000, CRC(645077f3) SHA1(0ae74f3b4b3b88f128c6d8c0f35ffa53f5d67ef2) )
+ ROM_LOAD16_BYTE( "245-c4.c4", 0x0800001, 0x400000, CRC(63aeb74c) SHA1(9ff6930c0c3d79b46b86356e8565ce4fcd69ac38) )
+ ROM_LOAD16_BYTE( "245-c5.c5", 0x1000000, 0x400000, CRC(b5f40e7f) SHA1(b332bac64dbb9a9dd66c5315f47ea08634d36f45) )
+ ROM_LOAD16_BYTE( "245-c6.c6", 0x1000001, 0x400000, CRC(d0337328) SHA1(dff86b75dc283bd4512557a5c64f16e6be6c16e4) )
+ROM_END
+
+ROM_START( breakrevy )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "245y.p1", 0x100000, 0x100000, CRC(bae71481) SHA1(df20a616754fe43706fdf55c7371c832dd23245d) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "245-s1.s1", CRC(e7660a5d) SHA1(1cd54964ba60b245ea57d9daf0e27b572b815d21) )
+
+ NEO_BIOS_AUDIO_128K( "245-m1.m1", CRC(00f31c66) SHA1(8488598415c9b74bce00e05b31d96e3d1625c20d) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "245-v1.v1", 0x000000, 0x400000, CRC(e255446c) SHA1(b3933340d49d4ba581f3bf1af7ad69d786205790) )
+ ROM_LOAD( "245-v2.v2", 0x400000, 0x400000, CRC(9068198a) SHA1(71819b0475a5e173a2f9a6e4ff19a94655141c3c) )
+
+ ROM_REGION( 0x1800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "245-c1.c1", 0x0000000, 0x400000, CRC(68d4ae76) SHA1(2e820067f6963669f104bebf19e865fe4127b4dd) )
+ ROM_LOAD16_BYTE( "245-c2.c2", 0x0000001, 0x400000, CRC(fdee05cd) SHA1(efc4ffd790953ac7c25d5f045c64a9b49d24b096) )
+ ROM_LOAD16_BYTE( "245-c3.c3", 0x0800000, 0x400000, CRC(645077f3) SHA1(0ae74f3b4b3b88f128c6d8c0f35ffa53f5d67ef2) )
+ ROM_LOAD16_BYTE( "245-c4.c4", 0x0800001, 0x400000, CRC(63aeb74c) SHA1(9ff6930c0c3d79b46b86356e8565ce4fcd69ac38) )
+ ROM_LOAD16_BYTE( "245-c5.c5", 0x1000000, 0x400000, CRC(b5f40e7f) SHA1(b332bac64dbb9a9dd66c5315f47ea08634d36f45) )
+ ROM_LOAD16_BYTE( "245-c6.c6", 0x1000001, 0x400000, CRC(d0337328) SHA1(dff86b75dc283bd4512557a5c64f16e6be6c16e4) )
+ROM_END
+
+
+ROM_START( burningfhp )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "018hp.p1", 0x000000, 0x080000, CRC(da26031b) SHA1(44997a8c313356db48716bb007ab842473805d88) )
+
+ NEO_SFIX_128K( "018-s1.s1", CRC(6799ea0d) SHA1(ec75ef9dfdcb0b123574fc6d81ebaaadfba32fb5) )
+
+ NEO_BIOS_AUDIO_128K( "018-m1.m1", CRC(0c939ee2) SHA1(57d580d3279e66b9fe66bbcc68529d3384a926ff) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "018-v1.v1", 0x000000, 0x100000, CRC(508c9ffc) SHA1(cd3a97a233a4585f8507116aba85884623cccdc4) )
+ ROM_LOAD( "018-v2.v2", 0x100000, 0x100000, CRC(854ef277) SHA1(4b3083b9c80620064cb44e812a787a700e32a6f3) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "018-c1.c1", 0x000000, 0x100000, CRC(25a25e9b) SHA1(3cf02d0662e190678d0530d7b7d3f425209adf83) )
+ ROM_LOAD16_BYTE( "018-c2.c2", 0x000001, 0x100000, CRC(d4378876) SHA1(45659aa1755d96b992c977042186e47fff68bba9) )
+ ROM_LOAD16_BYTE( "018-c3.c3", 0x200000, 0x100000, CRC(862b60da) SHA1(e2303eb1609f1050f0b4f46693a15e37deb176fb) )
+ ROM_LOAD16_BYTE( "018-c4.c4", 0x200001, 0x100000, CRC(e2e0aff7) SHA1(1c691c092a6e2787de4f433b0eb9252bfdaa7e16) )
+ROM_END
+
+
+ROM_START( ctomadaypx )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "249px.p1", 0x100000, 0x100000, CRC(734b3c0b) SHA1(5f08a3f509ea1fa56bf8b66d996f259380fecdaa) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "249-s1.s1", CRC(dc9eb372) SHA1(b8aa142243ba303799554479bfc88eb49260f3b1) )
+
+ NEO_BIOS_AUDIO_128K( "249-m1.m1", CRC(80328a47) SHA1(34b6b1a81eab1cf38834b2eea55454ce1b6100e2) )
+
+ ROM_REGION( 0x500000, "ymsnd", 0 )
+ ROM_LOAD( "249-v1.v1", 0x000000, 0x400000, CRC(de7c8f27) SHA1(3681a68a702ab5da8f509b8301d6cada75959332) )
+ ROM_LOAD( "249-v2.v2", 0x400000, 0x100000, CRC(c8e40119) SHA1(738f525c381ed68c0b8a89318a3e4d0089473c45) )
+
+ ROM_REGION( 0x800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "249-c1.c1", 0x000000, 0x400000, CRC(041fb8ee) SHA1(dacc84d713d76818d89a26358374afaa22fa82a2) )
+ ROM_LOAD16_BYTE( "249-c2.c2", 0x000001, 0x400000, CRC(74f3cdf4) SHA1(55ddabaf77f4d575f4deb24fe63e4bdc2c6f31e1) )
+ROM_END
+
+
+ROM_START( dragons1 )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "336.p1", 0x000000, 0x080000, CRC(f25c71ad) SHA1(803fb6cd6a7ada59678ad901ff9788b1e54ddd0c) )
+ ROM_LOAD16_BYTE( "336.p2", 0x000001, 0x080000, CRC(f353448c) SHA1(f0f966ca15d503e01b40e901765ff0888463b65d) )
+
+ //NEO_SFIX_128K( "094-s1.s1", CRC(2f8748a2) SHA1(5cc723c4284120473d63d8b0c1a3b3be74bdc324) )
+ NEO_SFIX_128K( "336.s1", CRC(706477a7) SHA1(8cbee7f6832e7edd2dc792ca330420a6a984b879) )
+
+ NEO_BIOS_AUDIO_128K( "094-m1.m1", CRC(78c851cb) SHA1(a9923c002e4e2171a564af45cff0958c5d57b275) )
+
+ ROM_REGION( 0x500000, "ymsnd", 0 )
+ ROM_LOAD( "094-v1.v1", 0x000000, 0x200000, CRC(6c31223c) SHA1(ede3a2806d7d872a0f737626a23ecce200b534e6) )
+ ROM_LOAD( "094-v2.v2", 0x200000, 0x200000, CRC(8edb776c) SHA1(a9eac5e24f83ccdcf303d63261747b1bad876a24) )
+ ROM_LOAD( "094-v3.v3", 0x400000, 0x100000, CRC(c63b9285) SHA1(6bbbacfe899e204e74657d6c3f3d05ce75e432f1) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "336.c1", 0x000000, 0x1000000, CRC(81821826) SHA1(b7c1a53e32633383675206a16c68f6f2ff984865) )
+ ROM_LOAD16_BYTE( "336.c2", 0x000001, 0x1000000, CRC(3601d568) SHA1(800323e52f5d33b402f84d31850b42c688082d67) )
+ROM_END
+
+
+ROM_START( eightmaneb )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "025eb.p1", 0x000000, 0x080000, CRC(6356e4b9) SHA1(c02fe3fe7c59592c464cba05183fe98b1ac13f54) )
+
+ NEO_SFIX_128K( "025-s1.s1", CRC(a402202b) SHA1(75c44e1af459af155f5b892fd18706268dd5e602) )
+
+ NEO_BIOS_AUDIO_128K( "025-m1.m1", CRC(9927034c) SHA1(205665361c5b2ab4f01ec480dd3c9b69db858d09) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "025-v1.v1", 0x000000, 0x100000, CRC(4558558a) SHA1(a4b277703ed67225c652be0d618daeca65a27b88) )
+ ROM_LOAD( "025-v2.v2", 0x100000, 0x100000, CRC(c5e052e9) SHA1(fa1119c90ce4c706a6aa0c17d7bc06aa3068d9b2) )
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "025-c1.c1", 0x000000, 0x100000, CRC(555e16a4) SHA1(1c96f3d2fd0991680fbf627a6cdd26ad2cd60319) )
+ ROM_LOAD16_BYTE( "025-c2.c2", 0x000001, 0x100000, CRC(e1ee51c3) SHA1(da8d074bb4e923ed7b8a154fd31b42f2d65b8e96) )
+ ROM_LOAD16_BYTE( "025-c3.c3", 0x200000, 0x080000, CRC(0923d5b0) SHA1(ab72ba1e3ebf56dd356f9ad181f986b1360a1089) )
+ ROM_LOAD16_BYTE( "025-c4.c4", 0x200001, 0x080000, CRC(e3eca67b) SHA1(88154cbc1a261c2f425430119ebc08a30adc9675) )
+ROM_END
+
+
+ROM_START( fightfevbs )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "060bs.p1", 0x000000, 0x080000, CRC(10bc5d92) SHA1(b0bc22f7ece6548512f7582678efe260487c6ed4) )
+ ROM_LOAD16_WORD_SWAP( "060k.p2", 0x080000, 0x080000, CRC(b0801d5f) SHA1(085746d8f5d271d5f84ccbb7f577193c391f88d4) )
+
+ NEO_SFIX_128K( "060bs.s1", CRC(7f012104) SHA1(f366dcc3923655dff16ec08a40d5fce22a84257d) )
+
+ NEO_BIOS_AUDIO_128K( "060-m1.m1", CRC(0b7c4e65) SHA1(999a1e784de18db3f1332b30bc425836ea6970be) )
+
+ ROM_REGION( 0x300000, "ymsnd", 0 )
+ ROM_LOAD( "060-v1.v1", 0x000000, 0x200000, CRC(f417c215) SHA1(0f53b8dd056f43b5d880628e8b74c2b27881ffac) )
+ ROM_LOAD( "060-v2.v2", 0x200000, 0x100000, CRC(efcff7cf) SHA1(e8372303724284a750b706dc6bf7641e4c52bb95) )
+
+ ROM_REGION( 0x0800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "060-c1.c1", 0x0000000, 0x200000, CRC(8908fff9) SHA1(f8c16ab0248b60f3a62e0d4d65c456e2f8e4da49) )
+ ROM_LOAD16_BYTE( "060-c2.c2", 0x0000001, 0x200000, CRC(c6649492) SHA1(5d39b077387ed6897ac075ede4a2aa94bb64545e) )
+ ROM_LOAD16_BYTE( "060-c3.c3", 0x0400000, 0x200000, CRC(0956b437) SHA1(c70be8b5cebf321afe4c3f5e9a12413c3077694a) )
+ ROM_LOAD16_BYTE( "060-c4.c4", 0x0400001, 0x200000, CRC(026f3b62) SHA1(d608483b70d60e7aa0e41f25a8b3fed508129eb7) )
+ROM_END
+
+ROM_START( fightfevk ) /* Fight Fever - Hack by UNKNOWN - (Kanji Patch) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "060-epr.sp2", 0x000000, 0x080000, CRC(3032041b) SHA1(4b8ed2e6f74579ea35a53e06ccac42d6905b0f51) )
+ ROM_LOAD16_WORD_SWAP( "060k.p2", 0x080000, 0x080000, CRC(b0801d5f) SHA1(085746d8f5d271d5f84ccbb7f577193c391f88d4) )
+
+ NEO_SFIX_128K( "060k.s1", CRC(51eaac30) SHA1(BF587471680B2795F02D0C4175A07A3AF3543999) )
+
+ NEO_BIOS_AUDIO_128K( "060-m1.m1", CRC(0b7c4e65) SHA1(999a1e784de18db3f1332b30bc425836ea6970be) )
+
+ ROM_REGION( 0x300000, "ymsnd", 0 )
+ ROM_LOAD( "060-v1.v1", 0x000000, 0x200000, CRC(f417c215) SHA1(0f53b8dd056f43b5d880628e8b74c2b27881ffac) )
+ ROM_LOAD( "060k.v2", 0x200000, 0x100000, CRC(64470036) SHA1(eb2b34b3c01eb5c1a0a40cff6f4c0f2eee7bf7f2) )
+
+ ROM_REGION( 0x800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "060-c1.c1", 0x0000000, 0x200000, CRC(8908fff9) SHA1(f8c16ab0248b60f3a62e0d4d65c456e2f8e4da49) )
+ ROM_LOAD16_BYTE( "060-c2.c2", 0x0000001, 0x200000, CRC(c6649492) SHA1(5d39b077387ed6897ac075ede4a2aa94bb64545e) )
+ ROM_LOAD16_BYTE( "060-c3.c3", 0x0400000, 0x200000, CRC(0956b437) SHA1(c70be8b5cebf321afe4c3f5e9a12413c3077694a) )
+ ROM_LOAD16_BYTE( "060-c4.c4", 0x0400001, 0x200000, CRC(026f3b62) SHA1(d608483b70d60e7aa0e41f25a8b3fed508129eb7) )
+ROM_END
+
+
+ROM_START( flipshotk )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "247k.p1", 0x000000, 0x080000, CRC(d2e7a7e3) SHA1(1ff4f070fcc658bbc7dc69e16c87f82d7392d100) )
+
+ NEO_SFIX_128K( "247-s1.s1", CRC(6300185c) SHA1(cb2f1de085fde214f96a962b1c2fa285eb387d44) )
+
+ NEO_BIOS_AUDIO_128K( "247-m1.m1", CRC(a9fe0144) SHA1(4cc076ecce9216a373f3dcd7ba28a03d6050e522) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "247-v1.v1", 0x000000, 0x200000, CRC(42ec743d) SHA1(f45b5167ebcbd59300f4e5b05448cd421654102a) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "247k.c1", 0x000000, 0x200000, CRC(1ccfeff9) SHA1(3575b84acca6ec0f26f4a0ad30a16c140e1c0b2e) )
+ ROM_LOAD16_BYTE( "247k.c2", 0x000001, 0x200000, CRC(648cdd5d) SHA1(8a0aaf13e2539e48f9b0b18f8154aa50bf4bed2a) )
+ROM_END
+
+
+ROM_START( galaxyfgb )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "078b.p1", 0x100000, 0x100000, CRC(6288cb4a) SHA1(8fb3c124664512f5aa5a8c75064605955b2e24fb) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "078-s1.s1", CRC(72f8923e) SHA1(da908bffc2b5d8baa2002dbb5bfb3aa17d2472b7) )
+
+ NEO_BIOS_AUDIO_128K( "078-m1.m1", CRC(8e9e3b10) SHA1(7c44d1dbd4f8d337c99e90361d1dab837df85e31) )
+
+ ROM_REGION( 0x500000, "ymsnd", 0 )
+ ROM_LOAD( "078-v1.v1", 0x000000, 0x200000, CRC(e3b735ac) SHA1(e16dfac09aef8115a20bae0bef8c86d4e7d0dc4a) )
+ ROM_LOAD( "078-v2.v2", 0x200000, 0x200000, CRC(6a8e78c2) SHA1(f60b1f8a3a945f279a582745e82f37278ce5d83b) )
+ ROM_LOAD( "078-v3.v3", 0x400000, 0x100000, CRC(70bca656) SHA1(218b7079c90898e7faa382b386e77f81f415e7ac) )
+
+ ROM_REGION( 0xe00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "078-c1.c1", 0x000000, 0x200000, CRC(c890c7c0) SHA1(b96c18a41c34070a4f24ca77cb7516fae8b0fd0c) )
+ ROM_LOAD16_BYTE( "078-c2.c2", 0x000001, 0x200000, CRC(b6d25419) SHA1(e089df9c9a9645f706e501108d634f4d222622a2) )
+ ROM_LOAD16_BYTE( "078-c3.c3", 0x400000, 0x200000, CRC(9d87e761) SHA1(ea1b6d7c9d5ef3a9b48968bde5a52d5699d591cc) )
+ ROM_LOAD16_BYTE( "078-c4.c4", 0x400001, 0x200000, CRC(765d7cb8) SHA1(7b9c86714d688602064d928c9d2b49d70bb7541e) )
+ ROM_LOAD16_BYTE( "078-c5.c5", 0x800000, 0x200000, CRC(e6b77e6a) SHA1(db3b8fc62a6f21c6653621c0665450d5d9a9913d) )
+ ROM_LOAD16_BYTE( "078-c6.c6", 0x800001, 0x200000, CRC(d779a181) SHA1(2761026abd9698a7b56114b76631563abd41fd12) )
+ ROM_LOAD16_BYTE( "078-c7.c7", 0xc00000, 0x100000, CRC(4f27d580) SHA1(c0f12496b45b2fe6e94aa8ac52b0157063127e0a) )
+ ROM_LOAD16_BYTE( "078-c8.c8", 0xc00001, 0x100000, CRC(0a7cc0d8) SHA1(68aaee6341c87e56ce11acc1c4ec8047839fe70d) )
+ROM_END
+
+ROM_START( galaxyfgbh ) // galaxyfgbh2014
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "078bh.p1", 0x100000, 0x100000, CRC(bbfffa22) SHA1(6bde48477f67241dce30107f84c38a8d0c34a81f) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "078-s1.s1", CRC(72f8923e) SHA1(da908bffc2b5d8baa2002dbb5bfb3aa17d2472b7) )
+
+ NEO_BIOS_AUDIO_128K( "078-m1.m1", CRC(8e9e3b10) SHA1(7c44d1dbd4f8d337c99e90361d1dab837df85e31) )
+
+ ROM_REGION( 0x500000, "ymsnd", 0 )
+ ROM_LOAD( "078-v1.v1", 0x000000, 0x200000, CRC(e3b735ac) SHA1(e16dfac09aef8115a20bae0bef8c86d4e7d0dc4a) )
+ ROM_LOAD( "078-v2.v2", 0x200000, 0x200000, CRC(6a8e78c2) SHA1(f60b1f8a3a945f279a582745e82f37278ce5d83b) )
+ ROM_LOAD( "078-v3.v3", 0x400000, 0x100000, CRC(70bca656) SHA1(218b7079c90898e7faa382b386e77f81f415e7ac) )
+
+ ROM_REGION( 0xe00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "078-c1.c1", 0x000000, 0x200000, CRC(c890c7c0) SHA1(b96c18a41c34070a4f24ca77cb7516fae8b0fd0c) )
+ ROM_LOAD16_BYTE( "078-c2.c2", 0x000001, 0x200000, CRC(b6d25419) SHA1(e089df9c9a9645f706e501108d634f4d222622a2) )
+ ROM_LOAD16_BYTE( "078-c3.c3", 0x400000, 0x200000, CRC(9d87e761) SHA1(ea1b6d7c9d5ef3a9b48968bde5a52d5699d591cc) )
+ ROM_LOAD16_BYTE( "078-c4.c4", 0x400001, 0x200000, CRC(765d7cb8) SHA1(7b9c86714d688602064d928c9d2b49d70bb7541e) )
+ ROM_LOAD16_BYTE( "078-c5.c5", 0x800000, 0x200000, CRC(e6b77e6a) SHA1(db3b8fc62a6f21c6653621c0665450d5d9a9913d) )
+ ROM_LOAD16_BYTE( "078-c6.c6", 0x800001, 0x200000, CRC(d779a181) SHA1(2761026abd9698a7b56114b76631563abd41fd12) )
+ ROM_LOAD16_BYTE( "078-c7.c7", 0xc00000, 0x100000, CRC(4f27d580) SHA1(c0f12496b45b2fe6e94aa8ac52b0157063127e0a) )
+ ROM_LOAD16_BYTE( "078-c8.c8", 0xc00001, 0x100000, CRC(0a7cc0d8) SHA1(68aaee6341c87e56ce11acc1c4ec8047839fe70d) )
+ROM_END
+
+
+ROM_START( ganryud )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "252-p1.p1", 0x100000, 0x100000, CRC(4b8ac4fb) SHA1(93d90271bff281862b03beba3809cf95a47a1e44) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "252-m1.m1", CRC(30cc4099) SHA1(46453b7aac41855a92724a785372f8daf931d8d4) )
+
+ ROM_REGION( 0x0400000, "ymsnd", 0 )
+ ROM_LOAD( "252-v1.v1", 0x000000, 0x400000, CRC(e5946733) SHA1(d5904a50465af03d6ff33399a98f3259721ca0b2) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "252d.c1", 0x0000000, 0x800000, CRC(6bf7605b) SHA1(6710cbc27d6ec35648f98f0ca541aaaeeffd0980) )
+ ROM_LOAD16_BYTE( "252d.c2", 0x0000001, 0x800000, CRC(596792ce) SHA1(ad9c8f8b0e95396fade2b485d11a1b3d4cb65f37) )
+ROM_END
+
+
+ROM_START( gowcaizrb )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "094b.p1", 0x100000, 0x100000, CRC(7d699c03) SHA1(f92f562e9bbb4b4eb1ac03e140bde4fd20fe41b2) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "094-s1.s1", CRC(2f8748a2) SHA1(5cc723c4284120473d63d8b0c1a3b3be74bdc324) )
+
+ NEO_BIOS_AUDIO_128K( "094-m1.m1", CRC(78c851cb) SHA1(a9923c002e4e2171a564af45cff0958c5d57b275) )
+
+ ROM_REGION( 0x500000, "ymsnd", 0 )
+ ROM_LOAD( "094-v1.v1", 0x000000, 0x200000, CRC(6c31223c) SHA1(ede3a2806d7d872a0f737626a23ecce200b534e6) )
+ ROM_LOAD( "094-v2.v2", 0x200000, 0x200000, CRC(8edb776c) SHA1(a9eac5e24f83ccdcf303d63261747b1bad876a24) )
+ ROM_LOAD( "094-v3.v3", 0x400000, 0x100000, CRC(c63b9285) SHA1(6bbbacfe899e204e74657d6c3f3d05ce75e432f1) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "094-c1.c1", 0x000000, 0x200000, CRC(042f6af5) SHA1(1c50df6a1a53ffb3079ea0a19c746f5c9536a3ed) )
+ ROM_LOAD16_BYTE( "094-c2.c2", 0x000001, 0x200000, CRC(0fbcd046) SHA1(9a6dc920a877f27424477c3478907b23afbaa5ea) )
+ ROM_LOAD16_BYTE( "094-c3.c3", 0x400000, 0x200000, CRC(58bfbaa1) SHA1(4c6f9cf138c5e6dfe89a45e2a690a986c75f5bfc) )
+ ROM_LOAD16_BYTE( "094-c4.c4", 0x400001, 0x200000, CRC(9451ee73) SHA1(7befee4a886b1d7493c06cefb7abf4ec01c14a8b) )
+ ROM_LOAD16_BYTE( "094-c5.c5", 0x800000, 0x200000, CRC(ff9cf48c) SHA1(5f46fb5d0812275b0006919d8540f22be7c16492) )
+ ROM_LOAD16_BYTE( "094-c6.c6", 0x800001, 0x200000, CRC(31bbd918) SHA1(7ff8c5e3f17d40e7a8a189ad8f8026de55368810) )
+ ROM_LOAD16_BYTE( "094-c7.c7", 0xc00000, 0x200000, CRC(2091ec04) SHA1(a81d4bdbef1ac6ea49845dc30e31bf9745694100) )
+ ROM_LOAD16_BYTE( "094-c8.c8", 0xc00001, 0x200000, CRC(d80dd241) SHA1(1356a64e4d4e271f62cd0d83f79ee9c906440810) )
+ROM_END
+
+ROM_START( gowcaizrbs )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "094bs.p1", 0x100000, 0x100000, CRC(d4f37cc4) SHA1(deec8a0516ae2057551713098e81be53c751eff7) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "094-s1.s1", CRC(2f8748a2) SHA1(5cc723c4284120473d63d8b0c1a3b3be74bdc324) )
+
+ NEO_BIOS_AUDIO_128K( "094-m1.m1", CRC(78c851cb) SHA1(a9923c002e4e2171a564af45cff0958c5d57b275) )
+
+ ROM_REGION( 0x500000, "ymsnd", 0 )
+ ROM_LOAD( "094-v1.v1", 0x000000, 0x200000, CRC(6c31223c) SHA1(ede3a2806d7d872a0f737626a23ecce200b534e6) )
+ ROM_LOAD( "094-v2.v2", 0x200000, 0x200000, CRC(8edb776c) SHA1(a9eac5e24f83ccdcf303d63261747b1bad876a24) )
+ ROM_LOAD( "094-v3.v3", 0x400000, 0x100000, CRC(c63b9285) SHA1(6bbbacfe899e204e74657d6c3f3d05ce75e432f1) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "094-c1.c1", 0x000000, 0x200000, CRC(042f6af5) SHA1(1c50df6a1a53ffb3079ea0a19c746f5c9536a3ed) )
+ ROM_LOAD16_BYTE( "094-c2.c2", 0x000001, 0x200000, CRC(0fbcd046) SHA1(9a6dc920a877f27424477c3478907b23afbaa5ea) )
+ ROM_LOAD16_BYTE( "094-c3.c3", 0x400000, 0x200000, CRC(58bfbaa1) SHA1(4c6f9cf138c5e6dfe89a45e2a690a986c75f5bfc) )
+ ROM_LOAD16_BYTE( "094-c4.c4", 0x400001, 0x200000, CRC(9451ee73) SHA1(7befee4a886b1d7493c06cefb7abf4ec01c14a8b) )
+ ROM_LOAD16_BYTE( "094-c5.c5", 0x800000, 0x200000, CRC(ff9cf48c) SHA1(5f46fb5d0812275b0006919d8540f22be7c16492) )
+ ROM_LOAD16_BYTE( "094-c6.c6", 0x800001, 0x200000, CRC(31bbd918) SHA1(7ff8c5e3f17d40e7a8a189ad8f8026de55368810) )
+ ROM_LOAD16_BYTE( "094-c7.c7", 0xc00000, 0x200000, CRC(2091ec04) SHA1(a81d4bdbef1ac6ea49845dc30e31bf9745694100) )
+ ROM_LOAD16_BYTE( "094-c8.c8", 0xc00001, 0x200000, CRC(d80dd241) SHA1(1356a64e4d4e271f62cd0d83f79ee9c906440810) )
+ROM_END
+
+ROM_START( gowcaizrrv )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "094rv.p1", 0x100000, 0x100000, CRC(0316a857) SHA1(8dbe033e3d3d6925c6187335acdd10369b274b46) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "094-s1.s1", CRC(2f8748a2) SHA1(5cc723c4284120473d63d8b0c1a3b3be74bdc324) )
+
+ NEO_BIOS_AUDIO_128K( "094-m1.m1", CRC(78c851cb) SHA1(a9923c002e4e2171a564af45cff0958c5d57b275) )
+
+ ROM_REGION( 0x500000, "ymsnd", 0 )
+ ROM_LOAD( "094-v1.v1", 0x000000, 0x200000, CRC(6c31223c) SHA1(ede3a2806d7d872a0f737626a23ecce200b534e6) )
+ ROM_LOAD( "094-v2.v2", 0x200000, 0x200000, CRC(8edb776c) SHA1(a9eac5e24f83ccdcf303d63261747b1bad876a24) )
+ ROM_LOAD( "094-v3.v3", 0x400000, 0x100000, CRC(c63b9285) SHA1(6bbbacfe899e204e74657d6c3f3d05ce75e432f1) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "094-c1.c1", 0x000000, 0x200000, CRC(042f6af5) SHA1(1c50df6a1a53ffb3079ea0a19c746f5c9536a3ed) )
+ ROM_LOAD16_BYTE( "094-c2.c2", 0x000001, 0x200000, CRC(0fbcd046) SHA1(9a6dc920a877f27424477c3478907b23afbaa5ea) )
+ ROM_LOAD16_BYTE( "094-c3.c3", 0x400000, 0x200000, CRC(58bfbaa1) SHA1(4c6f9cf138c5e6dfe89a45e2a690a986c75f5bfc) )
+ ROM_LOAD16_BYTE( "094-c4.c4", 0x400001, 0x200000, CRC(9451ee73) SHA1(7befee4a886b1d7493c06cefb7abf4ec01c14a8b) )
+ ROM_LOAD16_BYTE( "094-c5.c5", 0x800000, 0x200000, CRC(ff9cf48c) SHA1(5f46fb5d0812275b0006919d8540f22be7c16492) )
+ ROM_LOAD16_BYTE( "094-c6.c6", 0x800001, 0x200000, CRC(31bbd918) SHA1(7ff8c5e3f17d40e7a8a189ad8f8026de55368810) )
+ ROM_LOAD16_BYTE( "094-c7.c7", 0xc00000, 0x200000, CRC(2091ec04) SHA1(a81d4bdbef1ac6ea49845dc30e31bf9745694100) )
+ ROM_LOAD16_BYTE( "094-c8.c8", 0xc00001, 0x200000, CRC(d80dd241) SHA1(1356a64e4d4e271f62cd0d83f79ee9c906440810) )
+ROM_END
+
+ROM_START( gowcaizry )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "094y.p1", 0x100000, 0x100000, CRC(c8f1f4ae) SHA1(95f9fec0e90380a93423f5291eafb2b5b837e397) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "094-s1.s1", CRC(2f8748a2) SHA1(5cc723c4284120473d63d8b0c1a3b3be74bdc324) )
+
+ NEO_BIOS_AUDIO_128K( "094-m1.m1", CRC(78c851cb) SHA1(a9923c002e4e2171a564af45cff0958c5d57b275) )
+
+ ROM_REGION( 0x500000, "ymsnd", 0 )
+ ROM_LOAD( "094-v1.v1", 0x000000, 0x200000, CRC(6c31223c) SHA1(ede3a2806d7d872a0f737626a23ecce200b534e6) )
+ ROM_LOAD( "094-v2.v2", 0x200000, 0x200000, CRC(8edb776c) SHA1(a9eac5e24f83ccdcf303d63261747b1bad876a24) )
+ ROM_LOAD( "094-v3.v3", 0x400000, 0x100000, CRC(c63b9285) SHA1(6bbbacfe899e204e74657d6c3f3d05ce75e432f1) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "094-c1.c1", 0x000000, 0x200000, CRC(042f6af5) SHA1(1c50df6a1a53ffb3079ea0a19c746f5c9536a3ed) )
+ ROM_LOAD16_BYTE( "094-c2.c2", 0x000001, 0x200000, CRC(0fbcd046) SHA1(9a6dc920a877f27424477c3478907b23afbaa5ea) )
+ ROM_LOAD16_BYTE( "094-c3.c3", 0x400000, 0x200000, CRC(58bfbaa1) SHA1(4c6f9cf138c5e6dfe89a45e2a690a986c75f5bfc) )
+ ROM_LOAD16_BYTE( "094-c4.c4", 0x400001, 0x200000, CRC(9451ee73) SHA1(7befee4a886b1d7493c06cefb7abf4ec01c14a8b) )
+ ROM_LOAD16_BYTE( "094-c5.c5", 0x800000, 0x200000, CRC(ff9cf48c) SHA1(5f46fb5d0812275b0006919d8540f22be7c16492) )
+ ROM_LOAD16_BYTE( "094-c6.c6", 0x800001, 0x200000, CRC(31bbd918) SHA1(7ff8c5e3f17d40e7a8a189ad8f8026de55368810) )
+ ROM_LOAD16_BYTE( "094-c7.c7", 0xc00000, 0x200000, CRC(2091ec04) SHA1(a81d4bdbef1ac6ea49845dc30e31bf9745694100) )
+ ROM_LOAD16_BYTE( "094y.c8", 0xc00001, 0x200000, CRC(0d31dee6) SHA1(4979aa3daa7e490fbe39e7b3c70cbb2ef7551c5f) )
+ROM_END
+
+
+ROM_START( gpilotscd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "020cd.p1", 0x000000, 0x100000, CRC(f139df88) SHA1(8a2ce01f83c3c529b3c823555e19f815e0a558b3) )
+
+ NEO_SFIX_128K( "020-s1.s1", CRC(a6d83d53) SHA1(9a8c092f89521cc0b27a385aa72e29cbaca926c5) )
+
+ NEO_BIOS_AUDIO_64K( "020cd.m1", CRC(08697f52) SHA1(670998421355ccfdc5e778123b9df54df4dcde76) )
+ // use this to get full sound
+ //NEO_BIOS_AUDIO_128K( "020-m1.m1", CRC(48409377) SHA1(0e212d2c76856a90b2c2fdff675239525972ac43) )
+
+ ROM_REGION( 0x180000, "ymsnd", 0 )
+ ROM_LOAD( "020cd.v11", 0x000000, 0x100000, CRC(1285132c) SHA1(dad570624888550937ea15180c9ceb5fcdb418b8) )
+ ROM_LOAD( "020-v12.v12", 0x100000, 0x080000, CRC(4a9e6f03) SHA1(d3ac11f333b03d8a318921bdaefb14598e289a14) )
+
+ ROM_REGION( 0x080000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "020-v21.v21", 0x000000, 0x080000, CRC(7abf113d) SHA1(5b2a0e70f2eaf4638b44702dacd4cb17838fb1d5) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "020-c1.c1", 0x000000, 0x100000, CRC(bd6fe78e) SHA1(50b704862cd79d64fa488e621b079f6e413c33bc) )
+ ROM_LOAD16_BYTE( "020-c2.c2", 0x000001, 0x100000, CRC(5f4a925c) SHA1(71c5ef8141234daaa7025427a6c65e79766973a5) )
+ ROM_LOAD16_BYTE( "020-c3.c3", 0x200000, 0x100000, CRC(d1e42fd0) SHA1(f0d476aebbdc2ce008f5f0783be86d295b24aa44) )
+ ROM_LOAD16_BYTE( "020-c4.c4", 0x200001, 0x100000, CRC(edde439b) SHA1(79be7b10ecdab54c2f77062b8f5fda0e299fa982) )
+ROM_END
+
+ROM_START( gpilotse )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "020eh.p1", 0x000000, 0x080000, CRC(80d6950e) SHA1(c83e119c316b9c5d86e06fff598b1be7e2cc53a5) )
+ ROM_LOAD16_WORD_SWAP( "020-p2.p2", 0x080000, 0x020000, CRC(edcb22ac) SHA1(505d2db38ae999b7d436e8f2ff56b81796d62b54) )
+
+ NEO_SFIX_128K( "020-s1.s1", CRC(a6d83d53) SHA1(9a8c092f89521cc0b27a385aa72e29cbaca926c5) )
+
+ NEO_BIOS_AUDIO_128K( "020-m1.m1", CRC(48409377) SHA1(0e212d2c76856a90b2c2fdff675239525972ac43) )
+
+ ROM_REGION( 0x180000, "ymsnd", 0 )
+ ROM_LOAD( "020-v11.v11", 0x000000, 0x100000, CRC(1b526c8b) SHA1(2801868d2badcf8aaf5d490e010e4049d81d7bc1) )
+ ROM_LOAD( "020-v12.v12", 0x100000, 0x080000, CRC(4a9e6f03) SHA1(d3ac11f333b03d8a318921bdaefb14598e289a14) )
+
+ ROM_REGION( 0x080000, "ym.deltat", 0 )
+ ROM_LOAD( "020-v21.v21", 0x000000, 0x080000, CRC(7abf113d) SHA1(5b2a0e70f2eaf4638b44702dacd4cb17838fb1d5) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "020-c1.c1", 0x000000, 0x100000, CRC(bd6fe78e) SHA1(50b704862cd79d64fa488e621b079f6e413c33bc) )
+ ROM_LOAD16_BYTE( "020-c2.c2", 0x000001, 0x100000, CRC(5f4a925c) SHA1(71c5ef8141234daaa7025427a6c65e79766973a5) )
+ ROM_LOAD16_BYTE( "020-c3.c3", 0x200000, 0x100000, CRC(d1e42fd0) SHA1(f0d476aebbdc2ce008f5f0783be86d295b24aa44) )
+ ROM_LOAD16_BYTE( "020-c4.c4", 0x200001, 0x100000, CRC(edde439b) SHA1(79be7b10ecdab54c2f77062b8f5fda0e299fa982) )
+ROM_END
+
+ROM_START( gpilotspx )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "020px.p1", 0x000000, 0x080000, CRC(69c5532d) SHA1(8ee19e1f06f9168b0fa4dfece569e79a50fec259) )
+ ROM_LOAD16_WORD_SWAP( "020-p2.p2", 0x080000, 0x020000, CRC(edcb22ac) SHA1(505d2db38ae999b7d436e8f2ff56b81796d62b54) )
+
+ NEO_SFIX_128K( "020-s1.s1", CRC(a6d83d53) SHA1(9a8c092f89521cc0b27a385aa72e29cbaca926c5) )
+
+ NEO_BIOS_AUDIO_128K( "020-m1.m1", CRC(48409377) SHA1(0e212d2c76856a90b2c2fdff675239525972ac43) )
+
+ ROM_REGION( 0x180000, "ymsnd", 0 )
+ ROM_LOAD( "020-v11.v11", 0x000000, 0x100000, CRC(1b526c8b) SHA1(2801868d2badcf8aaf5d490e010e4049d81d7bc1) )
+ ROM_LOAD( "020-v12.v12", 0x100000, 0x080000, CRC(4a9e6f03) SHA1(d3ac11f333b03d8a318921bdaefb14598e289a14) )
+
+ ROM_REGION( 0x080000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "020-v21.v21", 0x000000, 0x080000, CRC(7abf113d) SHA1(5b2a0e70f2eaf4638b44702dacd4cb17838fb1d5) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "020-c1.c1", 0x000000, 0x100000, CRC(bd6fe78e) SHA1(50b704862cd79d64fa488e621b079f6e413c33bc) )
+ ROM_LOAD16_BYTE( "020-c2.c2", 0x000001, 0x100000, CRC(5f4a925c) SHA1(71c5ef8141234daaa7025427a6c65e79766973a5) )
+ ROM_LOAD16_BYTE( "020-c3.c3", 0x200000, 0x100000, CRC(d1e42fd0) SHA1(f0d476aebbdc2ce008f5f0783be86d295b24aa44) )
+ ROM_LOAD16_BYTE( "020-c4.c4", 0x200001, 0x100000, CRC(edde439b) SHA1(79be7b10ecdab54c2f77062b8f5fda0e299fa982) )
+ROM_END
+
+
+ROM_START( ironcladb )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "220b.p1", 0x000000, 0x200000, CRC(65849961) SHA1(2846081bb1451a209412159991bfac95d394fe3a) )
+
+ NEO_SFIX_128K( "proto_220-s1.s1", CRC(372fe217) SHA1(493433e682f519bf647e1481c8bdd3a980830ffb) )
+
+ NEO_BIOS_AUDIO_128K( "proto_220-m1.m1", CRC(3a08bb63) SHA1(d8fbbf42a006ccafc3cd99808d28c82dbaac4590) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "proto_220-v1.v1", 0x000000, 0x400000, CRC(8f30a215) SHA1(0ee866a468c4c3608d55df2b5cb9243c8016d77c) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "220b.c1", 0x000000, 0x800000, CRC(621f4a09) SHA1(117a8e8bea5f880d8315b48bc5884eb805c5e678) )
+ ROM_LOAD16_BYTE( "220b.c2", 0x000001, 0x800000, CRC(7fec83e8) SHA1(769c2cb4ed4a9d7c29e3aad3f4601f1d24c96640) )
+ROM_END
+
+ROM_START( ironcladcd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "220cd.p1", 0x00000, 0xd4000, CRC(cf9257b0) SHA1(2a2742865862d313b5d856e5b500b56b36336ecd) )
+
+ NEO_SFIX_128K( "proto_220-s1.s1", CRC(372fe217) SHA1(493433e682f519bf647e1481c8bdd3a980830ffb) )
+
+ NEO_BIOS_AUDIO_64K( "220cd.m1", CRC(b4d7cab0) SHA1(23342f72595f9d460f2e94fbda437ba1364bb5ed) )
+
+ ROM_REGION( 0x100000, "ymsnd", 0 )
+ ROM_LOAD( "220cd.v1", 0x000000, 0x100000, CRC(f7fd9baa) SHA1(a9362d405705f03a1759c2034df0c48daa15b71d) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_220-c1.c1", 0x000000, 0x400000, CRC(9aa2b7dc) SHA1(6b3dff292c86f949890b1f8201bc5278f38c2668) )
+ ROM_LOAD16_BYTE( "proto_220-c2.c2", 0x000001, 0x400000, CRC(8a2ad708) SHA1(9568ac4cc0552e7fd3e50d3cd8d9f0f4fe7df1d4) )
+ ROM_LOAD16_BYTE( "proto_220-c3.c3", 0x800000, 0x400000, CRC(d67fb15a) SHA1(842971aeaf3c92e70f7c653bbf29058bc60f5b71) )
+ ROM_LOAD16_BYTE( "proto_220-c4.c4", 0x800001, 0x400000, CRC(e73ea38b) SHA1(27138d588e61e86c292f12d16e36c3681075c607) )
+ROM_END
+
+
+ROM_START( jockeygpd )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "008-epr.p1", 0x000000, 0x100000, CRC(2fb7f388) SHA1(e3c9b03944b4c10cf5081caaf9c8be1f08c06493) )
+ ROM_FILL( 0x100000, 0x100000, 0xff )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "008-mg1.m1", CRC(d163c690) SHA1(1dfd04d20c5985037f07cd01000d0b04f3a8f4f4) )
+
+ ROM_REGION( 0x0200000, "ymsnd", 0 )
+ ROM_LOAD( "008-v1.v1", 0x000000, 0x200000, CRC(443eadba) SHA1(3def3c22f0e276bc4c2fc7ff70ce473c08b0d2df) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "008d.c1", 0x0000000, 0x800000, CRC(ea259019) SHA1(c14dc59a43e255ef12d8d832b2860f1a84c48170) )
+ ROM_LOAD16_BYTE( "008d.c2", 0x0000001, 0x800000, CRC(97f270be) SHA1(06e03b26bacb8568c69ccf22e58175426a69e01b) )
+ROM_END
+
+
+ROM_START( joyjoycd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "021cd.p1", 0x000000, 0x080000, CRC(a483fde0) SHA1(c42a04f5fec60678cbe20bc77675e0128aadf31c) )
+
+ NEO_SFIX_128K( "021-s1.s1", CRC(6956d778) SHA1(e3757776d60dc07d8e07c9ca61b223b14732f860) )
+
+ NEO_BIOS_AUDIO_64K( "021cd.m1", CRC(e93556ad) SHA1(616fac84ec2fa80ef8f43fcf993a3186d43a96eb) )
+
+ ROM_REGION( 0x080000, "ymsnd", 0 )
+ ROM_LOAD( "021cd.v1", 0x000000, 0x080000, CRC(241235cd) SHA1(bc4992dde75134c934f6374f370d1831c8160633) )
+
+ ROM_REGION( 0x080000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "021-v21.v21", 0x000000, 0x080000, CRC(8ed20a86) SHA1(d15cba5eac19ea56fdd4877541f1bb3eb755ebba) )
+
+ ROM_REGION( 0x100000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "021-c1.c1", 0x000000, 0x080000, CRC(509250ec) SHA1(d6ddb16d8222088f153a85a905bcb99541a5f2cf) )
+ ROM_LOAD16_BYTE( "021-c2.c2", 0x000001, 0x080000, CRC(09ed5258) SHA1(6bf50cd10236e29146b49e714a0e0ebcfe30a682) )
+ROM_END
+
+ROM_START( joyjoycd1 )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "021cd.p1", 0x000000, 0x080000, CRC(a483fde0) SHA1(c42a04f5fec60678cbe20bc77675e0128aadf31c) )
+
+ NEO_SFIX_128K( "021-s1.s1", CRC(6956d778) SHA1(e3757776d60dc07d8e07c9ca61b223b14732f860) )
+
+ NEO_BIOS_AUDIO_64K( "021cd1.m1", CRC(72072960) SHA1(83c70714fc458e78f39836b3a86a9b07a553bcdd) )
+
+ ROM_REGION( 0x080000, "ymsnd", 0 )
+ ROM_LOAD( "021cd1.v11", 0x000000, 0x080000, CRC(4fb2fbcc) SHA1(b1defbfd68eb824468c352c91e98d2fc4fba539d) )
+
+ ROM_REGION( 0x080000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "021-v21.v21", 0x000000, 0x080000, CRC(8ed20a86) SHA1(d15cba5eac19ea56fdd4877541f1bb3eb755ebba) )
+
+ ROM_REGION( 0x100000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "021-c1.c1", 0x000000, 0x080000, CRC(509250ec) SHA1(d6ddb16d8222088f153a85a905bcb99541a5f2cf) )
+ ROM_LOAD16_BYTE( "021-c2.c2", 0x000001, 0x080000, CRC(09ed5258) SHA1(6bf50cd10236e29146b49e714a0e0ebcfe30a682) )
+ROM_END
+
+
+ROM_START( kabukiklb )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "092b.p1", 0x100000, 0x100000, CRC(9e814a43) SHA1(75f764d19274fefb990e63ae5b6e207370ee4f75) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "092-s1.s1", CRC(a3d68ee2) SHA1(386f6110a16967a72fbf788f9d968fddcdcd2889) )
+
+ NEO_BIOS_AUDIO_128K( "092-m1.m1", CRC(91957ef6) SHA1(7b6907532a0e02ceb643623cbd689cf228776ed1) )
+
+ ROM_REGION( 0x700000, "ymsnd", 0 )
+ ROM_LOAD( "092-v1.v1", 0x000000, 0x200000, CRC(69e90596) SHA1(1a2007d7784b3ce90d115980c3353862f1664d45) )
+ ROM_LOAD( "092-v2.v2", 0x200000, 0x200000, CRC(7abdb75d) SHA1(0bff764889fe02f37877514c7fc450250839f632) )
+ ROM_LOAD( "092-v3.v3", 0x400000, 0x200000, CRC(eccc98d3) SHA1(b0dfbdb1ea045cb961323ac6906ab342256c3dc7) )
+ ROM_LOAD( "092-v4.v4", 0x600000, 0x100000, CRC(a7c9c949) SHA1(574bc55b45e81ce357b14f5992426115de25cd35) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "092-c1.c1", 0x000000, 0x400000, CRC(2a9fab01) SHA1(aa9f037df33ae0575b328734c76c0918ae1917e9) )
+ ROM_LOAD16_BYTE( "092-c2.c2", 0x000001, 0x400000, CRC(6d2bac02) SHA1(dfe96b62883333872be432e8af1ae617c9e62698) )
+ ROM_LOAD16_BYTE( "092-c3.c3", 0x800000, 0x400000, CRC(5da735d6) SHA1(f1c05a73794ece15576a0a30c81f4a44faac475a) )
+ ROM_LOAD16_BYTE( "092-c4.c4", 0x800001, 0x400000, CRC(de07f997) SHA1(c27a4d4bef868eed38dc152ff37d4135b16cc991) )
+ROM_END
+
+ROM_START( kabukikleh ) /* Kabuki Klash - Far East of Eden - Enhance by Ydmis - (Can choose Manto, Karakuri, Jyashinsai and Lucifeller) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "092eh.p1", 0x100000, 0x100000, CRC(bcf0f989) SHA1(91D493486A2BE79817D31E75A192079497A45360) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "092-s1.s1", CRC(a3d68ee2) SHA1(386f6110a16967a72fbf788f9d968fddcdcd2889) )
+
+ NEO_BIOS_AUDIO_128K( "092-m1.m1", CRC(91957ef6) SHA1(7b6907532a0e02ceb643623cbd689cf228776ed1) )
+
+ ROM_REGION( 0x700000, "ymsnd", 0 )
+ ROM_LOAD( "092-v1.v1", 0x000000, 0x200000, CRC(69e90596) SHA1(1a2007d7784b3ce90d115980c3353862f1664d45) )
+ ROM_LOAD( "092-v2.v2", 0x200000, 0x200000, CRC(7abdb75d) SHA1(0bff764889fe02f37877514c7fc450250839f632) )
+ ROM_LOAD( "092-v3.v3", 0x400000, 0x200000, CRC(eccc98d3) SHA1(b0dfbdb1ea045cb961323ac6906ab342256c3dc7) )
+ ROM_LOAD( "092-v4.v4", 0x600000, 0x100000, CRC(a7c9c949) SHA1(574bc55b45e81ce357b14f5992426115de25cd35) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "092-c1.c1", 0x000000, 0x400000, CRC(2a9fab01) SHA1(aa9f037df33ae0575b328734c76c0918ae1917e9) )
+ ROM_LOAD16_BYTE( "092-c2.c2", 0x000001, 0x400000, CRC(6d2bac02) SHA1(dfe96b62883333872be432e8af1ae617c9e62698) )
+ ROM_LOAD16_BYTE( "092-c3.c3", 0x800000, 0x400000, CRC(5da735d6) SHA1(f1c05a73794ece15576a0a30c81f4a44faac475a) )
+ ROM_LOAD16_BYTE( "092-c4.c4", 0x800001, 0x400000, CRC(de07f997) SHA1(c27a4d4bef868eed38dc152ff37d4135b16cc991) )
+ROM_END
+
+ROM_START( kabukiklgm ) /* Kabuki Klash - Far East of Eden - Colour fix by Flycboy - (Title screen colour change - character color change) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "092gm.p1", 0x100000, 0x100000, CRC(af1f9201) SHA1(22C3B71608DAD065C09C01FFAE24382F8DDAE7D6) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "092-s1.s1", CRC(a3d68ee2) SHA1(386f6110a16967a72fbf788f9d968fddcdcd2889) )
+
+ NEO_BIOS_AUDIO_128K( "092-m1.m1", CRC(91957ef6) SHA1(7b6907532a0e02ceb643623cbd689cf228776ed1) )
+
+ ROM_REGION( 0x700000, "ymsnd", 0 )
+ ROM_LOAD( "092-v1.v1", 0x000000, 0x200000, CRC(69e90596) SHA1(1a2007d7784b3ce90d115980c3353862f1664d45) )
+ ROM_LOAD( "092-v2.v2", 0x200000, 0x200000, CRC(7abdb75d) SHA1(0bff764889fe02f37877514c7fc450250839f632) )
+ ROM_LOAD( "092-v3.v3", 0x400000, 0x200000, CRC(eccc98d3) SHA1(b0dfbdb1ea045cb961323ac6906ab342256c3dc7) )
+ ROM_LOAD( "092-v4.v4", 0x600000, 0x100000, CRC(a7c9c949) SHA1(574bc55b45e81ce357b14f5992426115de25cd35) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "092-c1.c1", 0x000000, 0x400000, CRC(2a9fab01) SHA1(aa9f037df33ae0575b328734c76c0918ae1917e9) )
+ ROM_LOAD16_BYTE( "092-c2.c2", 0x000001, 0x400000, CRC(6d2bac02) SHA1(dfe96b62883333872be432e8af1ae617c9e62698) )
+ ROM_LOAD16_BYTE( "092-c3.c3", 0x800000, 0x400000, CRC(5da735d6) SHA1(f1c05a73794ece15576a0a30c81f4a44faac475a) )
+ ROM_LOAD16_BYTE( "092-c4.c4", 0x800001, 0x400000, CRC(de07f997) SHA1(c27a4d4bef868eed38dc152ff37d4135b16cc991) )
+ROM_END
+
+ROM_START( kabukiklgmc ) /* Kabuki Klash - Far East of Eden - Colour fix by Flycboy - (Title screen colour change - character colour change) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "092gmc.p1", 0x100000, 0x100000, CRC(928aa6ce) SHA1(98D6EA9A3C1976B2311F395F2CC9ACEDBB5226EB) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "092-s1.s1", CRC(a3d68ee2) SHA1(386f6110a16967a72fbf788f9d968fddcdcd2889) )
+
+ NEO_BIOS_AUDIO_128K( "092-m1.m1", CRC(91957ef6) SHA1(7b6907532a0e02ceb643623cbd689cf228776ed1) )
+
+ ROM_REGION( 0x700000, "ymsnd", 0 )
+ ROM_LOAD( "092-v1.v1", 0x000000, 0x200000, CRC(69e90596) SHA1(1a2007d7784b3ce90d115980c3353862f1664d45) )
+ ROM_LOAD( "092-v2.v2", 0x200000, 0x200000, CRC(7abdb75d) SHA1(0bff764889fe02f37877514c7fc450250839f632) )
+ ROM_LOAD( "092-v3.v3", 0x400000, 0x200000, CRC(eccc98d3) SHA1(b0dfbdb1ea045cb961323ac6906ab342256c3dc7) )
+ ROM_LOAD( "092-v4.v4", 0x600000, 0x100000, CRC(a7c9c949) SHA1(574bc55b45e81ce357b14f5992426115de25cd35) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "092-c1.c1", 0x000000, 0x400000, CRC(2a9fab01) SHA1(aa9f037df33ae0575b328734c76c0918ae1917e9) )
+ ROM_LOAD16_BYTE( "092-c2.c2", 0x000001, 0x400000, CRC(6d2bac02) SHA1(dfe96b62883333872be432e8af1ae617c9e62698) )
+ ROM_LOAD16_BYTE( "092-c3.c3", 0x800000, 0x400000, CRC(5da735d6) SHA1(f1c05a73794ece15576a0a30c81f4a44faac475a) )
+ ROM_LOAD16_BYTE( "092-c4.c4", 0x800001, 0x400000, CRC(de07f997) SHA1(c27a4d4bef868eed38dc152ff37d4135b16cc991) )
+ROM_END
+
+ROM_START( kabukiklmc ) /* Kabuki Klash - Far East of Eden - Enhance by Creamymami - (Magic always max) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "092mc.p1", 0x100000, 0x100000, CRC(4807f850) SHA1(DE0094B2DAF59F46ACA1ACB5E84BF142D6A559AD) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "092-s1.s1", CRC(a3d68ee2) SHA1(386f6110a16967a72fbf788f9d968fddcdcd2889) )
+
+ NEO_BIOS_AUDIO_128K( "092-m1.m1", CRC(91957ef6) SHA1(7b6907532a0e02ceb643623cbd689cf228776ed1) )
+
+ ROM_REGION( 0x700000, "ymsnd", 0 )
+ ROM_LOAD( "092-v1.v1", 0x000000, 0x200000, CRC(69e90596) SHA1(1a2007d7784b3ce90d115980c3353862f1664d45) )
+ ROM_LOAD( "092-v2.v2", 0x200000, 0x200000, CRC(7abdb75d) SHA1(0bff764889fe02f37877514c7fc450250839f632) )
+ ROM_LOAD( "092-v3.v3", 0x400000, 0x200000, CRC(eccc98d3) SHA1(b0dfbdb1ea045cb961323ac6906ab342256c3dc7) )
+ ROM_LOAD( "092-v4.v4", 0x600000, 0x100000, CRC(a7c9c949) SHA1(574bc55b45e81ce357b14f5992426115de25cd35) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "092-c1.c1", 0x000000, 0x400000, CRC(2a9fab01) SHA1(aa9f037df33ae0575b328734c76c0918ae1917e9) )
+ ROM_LOAD16_BYTE( "092-c2.c2", 0x000001, 0x400000, CRC(6d2bac02) SHA1(dfe96b62883333872be432e8af1ae617c9e62698) )
+ ROM_LOAD16_BYTE( "092-c3.c3", 0x800000, 0x400000, CRC(5da735d6) SHA1(f1c05a73794ece15576a0a30c81f4a44faac475a) )
+ ROM_LOAD16_BYTE( "092-c4.c4", 0x800001, 0x400000, CRC(de07f997) SHA1(c27a4d4bef868eed38dc152ff37d4135b16cc991) )
+ROM_END
+
+ROM_START( kabukiklyc ) /* Kabuki Klash - Far East of Eden - Enhance by Creamymami and Ydmis - (Can choose Manto, Karakuri, Jyashinsai and Lucifeller - magic is always max - based on kabukleh) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "092yc.p1", 0x100000, 0x100000, CRC(dc1b9aae) SHA1(8B10ADF0B6192CEA555AB373E9716FAF64DCD897) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "092-s1.s1", CRC(a3d68ee2) SHA1(386f6110a16967a72fbf788f9d968fddcdcd2889) )
+
+ NEO_BIOS_AUDIO_128K( "092-m1.m1", CRC(91957ef6) SHA1(7b6907532a0e02ceb643623cbd689cf228776ed1) )
+
+ ROM_REGION( 0x700000, "ymsnd", 0 )
+ ROM_LOAD( "092-v1.v1", 0x000000, 0x200000, CRC(69e90596) SHA1(1a2007d7784b3ce90d115980c3353862f1664d45) )
+ ROM_LOAD( "092-v2.v2", 0x200000, 0x200000, CRC(7abdb75d) SHA1(0bff764889fe02f37877514c7fc450250839f632) )
+ ROM_LOAD( "092-v3.v3", 0x400000, 0x200000, CRC(eccc98d3) SHA1(b0dfbdb1ea045cb961323ac6906ab342256c3dc7) )
+ ROM_LOAD( "092-v4.v4", 0x600000, 0x100000, CRC(a7c9c949) SHA1(574bc55b45e81ce357b14f5992426115de25cd35) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "092-c1.c1", 0x000000, 0x400000, CRC(2a9fab01) SHA1(aa9f037df33ae0575b328734c76c0918ae1917e9) )
+ ROM_LOAD16_BYTE( "092-c2.c2", 0x000001, 0x400000, CRC(6d2bac02) SHA1(dfe96b62883333872be432e8af1ae617c9e62698) )
+ ROM_LOAD16_BYTE( "092-c3.c3", 0x800000, 0x400000, CRC(5da735d6) SHA1(f1c05a73794ece15576a0a30c81f4a44faac475a) )
+ ROM_LOAD16_BYTE( "092-c4.c4", 0x800001, 0x400000, CRC(de07f997) SHA1(c27a4d4bef868eed38dc152ff37d4135b16cc991) )
+ROM_END
+
+
+ROM_START( karnovreh ) /* Karnov's Revenge - Enhance by Ydmis - (Can choose Big Tornado) */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "066eh.p1", 0x000000, 0x100000, CRC(76dfb5be) SHA1(E7B72C50C5ABC1CF8088FB18A40560B787F5284E) )
+
+ NEO_SFIX_128K( "066-s1.s1", CRC(bae5d5e5) SHA1(aa69d9b235b781ec51f72a528fada9cb12e72cbc) )
+
+ NEO_BIOS_AUDIO_128K( "066-m1.m1", CRC(030beae4) SHA1(ceb6ee6c09514504efacdbca7b280901e4c97084) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "066-v1.v1", 0x000000, 0x200000, CRC(0b7ea37a) SHA1(34e7d4f6db053674a7e8c8b2e3e398777d5b02e6) )
+
+ ROM_REGION( 0xc00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "066-c1.c1", 0x000000, 0x200000, CRC(09dfe061) SHA1(ca4c0f0ce80967b4be2f18b72435c468bbfbac4c) )
+ ROM_LOAD16_BYTE( "066-c2.c2", 0x000001, 0x200000, CRC(e0f6682a) SHA1(addb4fbc30da2b8ffc86819d92a874eb232f67dd) )
+ ROM_LOAD16_BYTE( "066-c3.c3", 0x400000, 0x200000, CRC(a673b4f7) SHA1(d138f5b38fd65c61549ce36f5c4983f7c8a3e7f6) )
+ ROM_LOAD16_BYTE( "066-c4.c4", 0x400001, 0x200000, CRC(cb3dc5f4) SHA1(865d9ccfc3df517c341d6aac16120f6b6aa759fe) )
+ ROM_LOAD16_BYTE( "066-c5.c5", 0x800000, 0x200000, CRC(9a28785d) SHA1(19723e1f7ff429e8a038d89488b279f830dfaf6e) )
+ ROM_LOAD16_BYTE( "066-c6.c6", 0x800001, 0x200000, CRC(c15c01ed) SHA1(7cf5583e6610bcdc3b332896cefc71df84fb3f19) )
+ROM_END
+
+
+ROM_START( kizunab ) /* Enhance by Ydmis - (Can choose 2 hidden characters) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "216b.p1", 0x100000, 0x100000, CRC(a4ccd402) SHA1(038539BF889AF6186BB81DB330E6DBDF06F64FA8) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "216-s1.s1", CRC(efdc72d7) SHA1(be37cbf1852e2e4c907cc799b754b538544b6703) )
+
+ NEO_BIOS_AUDIO_128K( "216-m1.m1", CRC(1b096820) SHA1(72852e78c620038f8dafde5e54e02e418c31be9c) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "059-v1.v1", 0x000000, 0x200000, CRC(530c50fd) SHA1(29401cee7f7d2c199c7cb58092e86b28205e81ad) )
+ ROM_LOAD( "216-v2.v2", 0x200000, 0x200000, CRC(03667a8d) SHA1(3b0475e553a49f8788f32b0c84f82645cc6b4273) )
+ ROM_LOAD( "059-v3.v3", 0x400000, 0x200000, CRC(7038c2f9) SHA1(c1d6f86b24feba03fe009b58199d2eeabe572f4e) )
+ ROM_LOAD( "216-v4.v4", 0x600000, 0x200000, CRC(31b99bd6) SHA1(5871751f8e9e6b98337472c22b5e1c7ede0a9311) )
+
+ ROM_REGION( 0x1c00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "059-c1.c1", 0x0000000, 0x200000, CRC(763ba611) SHA1(d3262e0332c894ee149c5963f882cc5e5562ee57) )
+ ROM_LOAD16_BYTE( "059-c2.c2", 0x0000001, 0x200000, CRC(e05e8ca6) SHA1(986a9b16ff92bc101ab567d2d01348e093abea9a) )
+ ROM_LOAD16_BYTE( "216-c3.c3", 0x0800000, 0x400000, CRC(665c9f16) SHA1(7ec781a49a462f395b450460b29493f55134eac2) )
+ ROM_LOAD16_BYTE( "216-c4.c4", 0x0800001, 0x400000, CRC(7f5d03db) SHA1(365ed266c121f4df0bb76898955a8ae0e668a216) )
+ ROM_LOAD16_BYTE( "059-c5.c5", 0x1000000, 0x200000, CRC(59013f9e) SHA1(5bf48fcc450da72a8c4685f6e3887e67eae49988) )
+ ROM_LOAD16_BYTE( "059-c6.c6", 0x1000001, 0x200000, CRC(1c8d5def) SHA1(475d89a5c4922a9f6bd756d23c2624d57b6e9d62) )
+ ROM_LOAD16_BYTE( "059-c7.c7", 0x1800000, 0x200000, CRC(c88f7035) SHA1(c29a428b741f4fe7b71a3bc23c87925b6bc1ca8f) )
+ ROM_LOAD16_BYTE( "059-c8.c8", 0x1800001, 0x200000, CRC(484ce3ba) SHA1(4f21ed20ce6e2b67e2b079404599310c94f591ff) )
+ROM_END
+
+ROM_START( kizunaeh )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "216eh.p1", 0x100000, 0x100000, CRC(a87b7976) SHA1(fc78ee9cabff2692ad99ce5cf4bd28e32e893873) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "216-s1.s1", CRC(efdc72d7) SHA1(be37cbf1852e2e4c907cc799b754b538544b6703) )
+
+ NEO_BIOS_AUDIO_128K( "216-m1.m1", CRC(1b096820) SHA1(72852e78c620038f8dafde5e54e02e418c31be9c) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "059-v1.v1", 0x000000, 0x200000, CRC(530c50fd) SHA1(29401cee7f7d2c199c7cb58092e86b28205e81ad) )
+ ROM_LOAD( "216-v2.v2", 0x200000, 0x200000, CRC(03667a8d) SHA1(3b0475e553a49f8788f32b0c84f82645cc6b4273) )
+ ROM_LOAD( "059-v3.v3", 0x400000, 0x200000, CRC(7038c2f9) SHA1(c1d6f86b24feba03fe009b58199d2eeabe572f4e) )
+ ROM_LOAD( "216-v4.v4", 0x600000, 0x200000, CRC(31b99bd6) SHA1(5871751f8e9e6b98337472c22b5e1c7ede0a9311) )
+
+ ROM_REGION( 0x1c00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "059-c1.c1", 0x0000000, 0x200000, CRC(763ba611) SHA1(d3262e0332c894ee149c5963f882cc5e5562ee57) )
+ ROM_LOAD16_BYTE( "059-c2.c2", 0x0000001, 0x200000, CRC(e05e8ca6) SHA1(986a9b16ff92bc101ab567d2d01348e093abea9a) )
+ ROM_LOAD16_BYTE( "216-c3.c3", 0x0800000, 0x400000, CRC(665c9f16) SHA1(7ec781a49a462f395b450460b29493f55134eac2) )
+ ROM_LOAD16_BYTE( "216-c4.c4", 0x0800001, 0x400000, CRC(7f5d03db) SHA1(365ed266c121f4df0bb76898955a8ae0e668a216) )
+ ROM_LOAD16_BYTE( "059-c5.c5", 0x1000000, 0x200000, CRC(59013f9e) SHA1(5bf48fcc450da72a8c4685f6e3887e67eae49988) )
+ ROM_LOAD16_BYTE( "059-c6.c6", 0x1000001, 0x200000, CRC(1c8d5def) SHA1(475d89a5c4922a9f6bd756d23c2624d57b6e9d62) )
+ ROM_LOAD16_BYTE( "059-c7.c7", 0x1800000, 0x200000, CRC(c88f7035) SHA1(c29a428b741f4fe7b71a3bc23c87925b6bc1ca8f) )
+ ROM_LOAD16_BYTE( "059-c8.c8", 0x1800001, 0x200000, CRC(484ce3ba) SHA1(4f21ed20ce6e2b67e2b079404599310c94f591ff) )
+ROM_END
+
+
+ROM_START( lans2k4d ) /* Bootleg / Hack of Shock Troopers - 2nd Squad */
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "246lnsq.p1", 0x000000, 0x100000, CRC(724576EA) SHA1(075f5d8ccb7303c8b6bebf630c4fa9c204554044) )
+ ROM_LOAD16_WORD_SWAP( "246-p2.sp2", 0x100000, 0x400000, CRC(72ea04c3) SHA1(4fb1d22c30f5f3db4637dd92a4d2705c88de399d) )
+
+ NEO_SFIX_128K( "246lnsq.s1", CRC(8699c63a) SHA1(d1a0345bcb4e3f6044c93abd52ff6fe6280dc5ee) )
+
+ NEO_BIOS_AUDIO_128K( "246-m1.m1", CRC(d0604ad1) SHA1(fae3cd52a177eadd5f5775ace957cc0f8301e65d) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "246-v1.v1", 0x000000, 0x400000, CRC(16986fc6) SHA1(cff3103dadf2f4390460456a5bd3fb5f28e21f6a) )
+ ROM_LOAD( "246-v2.v2", 0x400000, 0x400000, CRC(ada41e83) SHA1(78e37ffaaa5679c8775a3a71f6df7a0d15082bdc) )
+ ROM_LOAD( "246-v3.v3", 0x800000, 0x200000, CRC(a05ba5db) SHA1(09d739cad323d918f4196f91b654627fcafd8f4d) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "246-c1.c1", 0x0000000, 0x800000, CRC(47ac9ec5) SHA1(2d9eea11ba87baa23b18a1a3f607dc137846e807) )
+ ROM_LOAD16_BYTE( "246-c2.c2", 0x0000001, 0x800000, CRC(7bcab64f) SHA1(08d0edddd14b53d606e9a7a46aa4fb4e7398e0d0) )
+ ROM_LOAD16_BYTE( "246lnsq.c3", 0x1000000, 0x800000, CRC(b28d702a) SHA1(21d70c94ecf9ca519b4e50e2d31620f6dfab9ad0) )
+ ROM_LOAD16_BYTE( "246lnsq.c4", 0x1000001, 0x800000, CRC(da10dd64) SHA1(55bf0922a117325ef6479f654caf13b287a16f67) )
+ ROM_LOAD16_BYTE( "246lnsq.c5", 0x2000000, 0x800000, CRC(bab3b417) SHA1(232f718fecf597434b7a93602387fabab2bda9c0) )
+ ROM_LOAD16_BYTE( "246lnsq.c6", 0x2000001, 0x800000, CRC(4c089a28) SHA1(f854ce46b4723aa971de280007268d474d2a6361) )
+ROM_END
+
+
+ROM_START( lbowlingcd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "019cd.p1", 0x000000, 0x040000, CRC(c17fd30f) SHA1(908b045542bb575ac05f208a6595ab49c5ca5c0f) )
+
+ NEO_SFIX_128K( "019-s1.s1", CRC(5fcdc0ed) SHA1(86415077e7adc3ba6153eeb4fb0c62cf36e903fa) )
+
+ //NEO_BIOS_AUDIO_64K( "019cd.m1", CRC(f65cb876) SHA1(6c26f400b2fce5fc8f3d533d275622a274982edc) ) // this has bugs and so there's no sound
+ NEO_BIOS_AUDIO_128K( "019-m1.m1", CRC(d568c17d) SHA1(a2e318ed6ad1809c79f3f0853d75e0dd1a2f275c) )
+
+ ROM_REGION( 0x100000, "ymsnd", 0 )
+ //ROM_LOAD( "019cd.v1", 0x000000, 0xf5400, CRC(37ff1111) SHA1(ff964981cff279e32da3c583a95912d5ffb5ab22) ) // doesn't match to 019-m1.m1
+ ROM_LOAD( "019-v11.v11", 0x000000, 0x080000, CRC(0fb74872) SHA1(38c555926c77576d63472bc075210c42e9ce13a3) )
+ ROM_LOAD( "019-v12.v12", 0x080000, 0x080000, CRC(029faa57) SHA1(7bbaa87e38929ab1e32df5f6a2ec0fd5001e7cdb) )
+
+ ROM_REGION( 0x080000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "019-v21.v21", 0x000000, 0x080000, CRC(2efd5ada) SHA1(8ba70f5f665d566824333075227d9bce1253b8d8) )
+
+ ROM_REGION( 0x100000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "019-c1.c1", 0x000000, 0x080000, CRC(4ccdef18) SHA1(5011e30ec235d0b0a5a513a11d4275777e61acdb) )
+ ROM_LOAD16_BYTE( "019-c2.c2", 0x000001, 0x080000, CRC(d4dd0802) SHA1(82069752028c118d42384a95befde45844f0f247) )
+ROM_END
+
+
+ROM_START( lresortpx )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "024px.p1", 0x000000, 0x080000, CRC(78c4e582) SHA1(5b802797ad0916a1ccac316a661120dc4dce0b74) )
+
+ NEO_SFIX_128K( "024-s1.s1", CRC(5cef5cc6) SHA1(9ec305007bdb356e9f8f279beae5e2bcb3f2cf7b) )
+
+ NEO_BIOS_AUDIO_128K( "024-m1.m1", CRC(cec19742) SHA1(ab6c6ba7737e68d2420a0617719c6d4c89039c45) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "024-v1.v1", 0x000000, 0x100000, CRC(efdfa063) SHA1(e4609ecbcc1c820758f229da5145f51285b50555) )
+ ROM_LOAD( "024-v2.v2", 0x100000, 0x100000, CRC(3c7997c0) SHA1(8cb7e8e69892b19d318978370dbc510d51b06a69) )
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "024-c1.c1", 0x000000, 0x100000, CRC(3617c2dc) SHA1(8de2643a618272f8aa1c705363edb007f4a5f5b7) )
+ ROM_LOAD16_BYTE( "024-c2.c2", 0x000001, 0x100000, CRC(3f0a7fd8) SHA1(d0c9c7a9dde9ce175fb243d33ec11fa719d0158c) )
+ ROM_LOAD16_BYTE( "024-c3.c3", 0x200000, 0x080000, CRC(e9f745f8) SHA1(bbe6141da28b0db7bf5cf321d69b7e613e2414d7) )
+ ROM_LOAD16_BYTE( "024-c4.c4", 0x200001, 0x080000, CRC(7382fefb) SHA1(e916dec5bb5462eb9ae9711f08c7388937abb980) )
+ROM_END
+
+
+ROM_START( maglordpx )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "005px.p1", 0x000000, 0x080000, CRC(8d3e68d1) SHA1(9f1b5d78138feb9d372a7b7788cb2b52f3fb8c5a) )
+
+ NEO_SFIX_128K( "005-s1.s1", CRC(1c5369a2) SHA1(db0dba0a7dced6c9ca929c5abda491b05d84199c) )
+
+ NEO_BIOS_AUDIO_256K( "005-m1.m1", CRC(26259f0f) SHA1(4f3e500093d61585048767dbd9fa09b3911a05d6) )
+
+ ROM_REGION( 0x080000, "ymsnd", 0 )
+ ROM_LOAD( "005-v11.v11", 0x000000, 0x080000, CRC(cc0455fd) SHA1(a8ff4270e7705e263d25ff0b301f503bccea7e59) )
+
+ ROM_REGION( 0x100000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "005-v21.v21", 0x000000, 0x080000, CRC(f94ab5b7) SHA1(2c16985102e3585e08622d8c54ac5c60425b9ff8) )
+ ROM_LOAD( "005-v22.v22", 0x080000, 0x080000, CRC(232cfd04) SHA1(61b66a9decbbd1f500a8c186615e7fd077c6861e) )
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "005-c1.c1", 0x000000, 0x80000, CRC(806aee34) SHA1(3c32a0edbbddb694495b510c13979c44b83de8bc) )
+ ROM_LOAD16_BYTE( "005-c2.c2", 0x000001, 0x80000, CRC(34aa9a86) SHA1(cec97e1ff7f91158040c629ba75742db82c4ae5e) )
+ ROM_LOAD16_BYTE( "005-c3.c3", 0x100000, 0x80000, CRC(c4c2b926) SHA1(478bfafca21f5a1338808251a06ab405e6a9e65f) )
+ ROM_LOAD16_BYTE( "005-c4.c4", 0x100001, 0x80000, CRC(9c46dcf4) SHA1(4c05f3dc25777a87578ce09a6cefb3a4cebf3266) )
+ ROM_LOAD16_BYTE( "005-c5.c5", 0x200000, 0x80000, CRC(69086dec) SHA1(7fa47f4a765948813ebf366168275dcc3c42e951) )
+ ROM_LOAD16_BYTE( "005-c6.c6", 0x200001, 0x80000, CRC(ab7ac142) SHA1(e6ad2843947d35d8e913d2666f87946c1ba7944f) )
+ROM_END
+
+
+ROM_START( matrima )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "266a.p1", 0x000000, 0x100000, CRC(1e59c746) SHA1(9a6cdb6c56d5a80e373bb5ec476f1e7c3b3fbba9) )
+ ROM_LOAD16_WORD_SWAP( "266a.p2", 0x100000, 0x400000, CRC(b0132cef) SHA1(3780db1b8947a8371a46b67ca1a14a12bf97986b) )
+
+ NEO_SFIX_128K( "266a.s1", CRC(aff2a3be) SHA1(57aba048573eacf8fbdd228f04a7f30da64cebe5) )
+
+ NEO_BIOS_AUDIO_128K( "266d.m1", CRC(d2f3742d) SHA1(dd42f8a301f07e079fbc2bfd23e788baa03ca72d) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "266a.v1", 0x000000, 0x400000, CRC(352b0a07) SHA1(19f7cc12f3f6d0fda9c7449816c4c32367447897) )
+ ROM_LOAD( "266a.v2", 0x400000, 0x400000, CRC(945f8831) SHA1(6ac9bd41e0bb33601c82ebeb2aa5b1b8b91fada1) )
+ ROM_LOAD( "266a.v3", 0x800000, 0x400000, CRC(e8362fcc) SHA1(42d558fd80cabe22a1c09a1fa75741afbcf46b7c) )
+ ROM_LOAD( "266a.v4", 0xc00000, 0x400000, CRC(393c9a62) SHA1(0eaee0007557e59e64edcdbca229e6f776de9aef) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "266a.c1", 0x0000000, 0x800000, CRC(f2240352) SHA1(3bb6763ebbc33db172d413276213eb3f2c7093c0) )
+ ROM_LOAD16_BYTE( "266a.c2", 0x0000001, 0x800000, CRC(338a9142) SHA1(eb589b4141c394ca78c2f5eb1b510cde982f3225) )
+ ROM_LOAD16_BYTE( "266a.c3", 0x1000000, 0x800000, CRC(6233412d) SHA1(b473cddc0a4343dffc4e35df68cd1bf9b163bd64) )
+ ROM_LOAD16_BYTE( "266a.c4", 0x1000001, 0x800000, CRC(304a2d9f) SHA1(29d2e50a64476640f4bff68227d6b1fdb45530c1) )
+ ROM_LOAD16_BYTE( "266a.c5", 0x2000000, 0x800000, CRC(18382650) SHA1(df10fb0b43f0dabdc57b55e923536b6c215678ff) )
+ ROM_LOAD16_BYTE( "266a.c6", 0x2000001, 0x800000, CRC(c5e7a840) SHA1(a1336c5c1284221d0b420bb44dd7c462d3e83ca7) )
+ ROM_LOAD16_BYTE( "266a.c7", 0x3000000, 0x800000, CRC(bfaa985c) SHA1(3ff7d56d8caaa1a34d0dcbc16bfc97df4afeab48) )
+ ROM_LOAD16_BYTE( "266a.c8", 0x3000001, 0x800000, CRC(efaf3f3c) SHA1(9374eb39fe30ba679878729992f136fdce1d92fc) )
+ROM_END
+
+ROM_START( matrimbh )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "266bh.p1", 0x000000, 0x100000, CRC(5f7b6942) SHA1(35fe5d59407b79725698fa62a870518ecc930b34) )
+ ROM_LOAD16_WORD_SWAP( "266-p2.sp2", 0x100000, 0x400000, CRC(a14b1906) SHA1(1daa14d73512f760ef569b06f9facb279437d1db) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_ENCRYPTED_128K( "266-m1.m1", CRC(456c3e6c) SHA1(5a07d0186198a18d2dda1331093cf29b0b9b2984) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "266-v1.v1", 0x000000, 0x800000, CRC(a4f83690) SHA1(200d683d8c30ebc6d0ed331aa5bbba39b4e07160) )
+ ROM_LOAD( "266-v2.v2", 0x800000, 0x800000, CRC(d0f69eda) SHA1(9d7e98976ad433ed8a35d7afffa38130444ba7db) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "266-c1.c1", 0x0000000, 0x800000, CRC(505f4e30) SHA1(f22b6f76fc0cad963555dc89d072967c8dc8b79a) )
+ ROM_LOAD16_BYTE( "266-c2.c2", 0x0000001, 0x800000, CRC(3cb57482) SHA1(dab15bc24391f9a5173de76af48b612fb9636ccf) )
+ ROM_LOAD16_BYTE( "266-c3.c3", 0x1000000, 0x800000, CRC(f1cc6ad0) SHA1(66c1cccc0332ffd2d3064f06330c41f95ca09ced) )
+ ROM_LOAD16_BYTE( "266-c4.c4", 0x1000001, 0x800000, CRC(45b806b7) SHA1(c2bb866fded53d62fad0fc88d89d5e7d4cb1894f) )
+ ROM_LOAD16_BYTE( "266-c5.c5", 0x2000000, 0x800000, CRC(9a15dd6b) SHA1(194a6973a7a9e3847efe1bdbaeaeb16e74aff2dd) )
+ ROM_LOAD16_BYTE( "266-c6.c6", 0x2000001, 0x800000, CRC(281cb939) SHA1(bdb7766cfde581ccfaee2be7fe48445f360a2301) )
+ ROM_LOAD16_BYTE( "266-c7.c7", 0x3000000, 0x800000, CRC(4b71f780) SHA1(d5611a6f6b730db58613b48f2b0174661ccfb7bb) )
+ ROM_LOAD16_BYTE( "266-c8.c8", 0x3000001, 0x800000, CRC(29873d33) SHA1(dc77f129ed49b8d40d0d4241feef3f6c2f19a987) )
+ROM_END
+
+ROM_START( matrimd )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "266-p1.p1", 0x000000, 0x100000, CRC(5d4c2dc7) SHA1(8d723b0d28ec344eef26009b361a2b97d300dd51) )
+ ROM_LOAD16_WORD_SWAP( "266-p2.sp2", 0x100000, 0x400000, CRC(a14b1906) SHA1(1daa14d73512f760ef569b06f9facb279437d1db) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_128K( "266d.m1", CRC(d2f3742d) SHA1(dd42f8a301f07e079fbc2bfd23e788baa03ca72d) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "266-v1.v1", 0x000000, 0x800000, CRC(a4f83690) SHA1(200d683d8c30ebc6d0ed331aa5bbba39b4e07160) )
+ ROM_LOAD( "266-v2.v2", 0x800000, 0x800000, CRC(d0f69eda) SHA1(9d7e98976ad433ed8a35d7afffa38130444ba7db) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "266d.c1", 0x0000000, 0x800000, CRC(0ab54c54) SHA1(31bca460462b8545b3e5264804987ab951e9b202) )
+ ROM_LOAD16_BYTE( "266d.c2", 0x0000001, 0x800000, CRC(b834dd89) SHA1(579470839a8d23b2d22cf727d2b43c6c3c113e1f) )
+ ROM_LOAD16_BYTE( "266d.c3", 0x1000000, 0x800000, CRC(f31d68d4) SHA1(a6b8aaf11d25f871b52e9626fe0e4ae0683c3c52) )
+ ROM_LOAD16_BYTE( "266d.c4", 0x1000001, 0x800000, CRC(58cfb6e9) SHA1(106875db996ec29b0254b34f9d935c761cde20c4) )
+ ROM_LOAD16_BYTE( "266d.c5", 0x2000000, 0x800000, CRC(f3c0e3fd) SHA1(3a2f14517617fb98a202ceec88d52891e1438c8e) )
+ ROM_LOAD16_BYTE( "266d.c6", 0x2000001, 0x800000, CRC(b53c8dcf) SHA1(9f4b0bac92262e8c1c1055a70f13c7c326367f73) )
+ ROM_LOAD16_BYTE( "266d.c7", 0x3000000, 0x800000, CRC(3c1fb02a) SHA1(43e170e6d48c01d8c323f9309f97e6038bab20d7) )
+ ROM_LOAD16_BYTE( "266d.c8", 0x3000001, 0x800000, CRC(5ee31f80) SHA1(3cdd8037f5004df92f4c19ba0746c8bccb4e2473) )
+ROM_END
+
+ROM_START( matrimdh ) /* Matrimelee - Hack by Dodowang - (Can choose Sissy, Jimmy, Jones, Lynn and Elias) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "266dh.p1", 0x000000, 0x100000, CRC(70815d65) SHA1(d75a47e8dd02d19730a7a347849f92b6723f4ca7) )
+ ROM_LOAD16_WORD_SWAP( "266-p2.sp2", 0x100000, 0x400000, CRC(a14b1906) SHA1(1daa14d73512f760ef569b06f9facb279437d1db) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_128K( "266d.m1", CRC(d2f3742d) SHA1(dd42f8a301f07e079fbc2bfd23e788baa03ca72d) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "266-v1.v1", 0x000000, 0x800000, CRC(a4f83690) SHA1(200d683d8c30ebc6d0ed331aa5bbba39b4e07160) )
+ ROM_LOAD( "266-v2.v2", 0x800000, 0x800000, CRC(d0f69eda) SHA1(9d7e98976ad433ed8a35d7afffa38130444ba7db) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "266-c1.c1", 0x0000000, 0x800000, CRC(505f4e30) SHA1(f22b6f76fc0cad963555dc89d072967c8dc8b79a) )
+ ROM_LOAD16_BYTE( "266-c2.c2", 0x0000001, 0x800000, CRC(3cb57482) SHA1(dab15bc24391f9a5173de76af48b612fb9636ccf) )
+ ROM_LOAD16_BYTE( "266-c3.c3", 0x1000000, 0x800000, CRC(f1cc6ad0) SHA1(66c1cccc0332ffd2d3064f06330c41f95ca09ced) )
+ ROM_LOAD16_BYTE( "266-c4.c4", 0x1000001, 0x800000, CRC(45b806b7) SHA1(c2bb866fded53d62fad0fc88d89d5e7d4cb1894f) )
+ ROM_LOAD16_BYTE( "266-c5.c5", 0x2000000, 0x800000, CRC(9a15dd6b) SHA1(194a6973a7a9e3847efe1bdbaeaeb16e74aff2dd) )
+ ROM_LOAD16_BYTE( "266-c6.c6", 0x2000001, 0x800000, CRC(281cb939) SHA1(bdb7766cfde581ccfaee2be7fe48445f360a2301) )
+ ROM_LOAD16_BYTE( "266-c7.c7", 0x3000000, 0x800000, CRC(4b71f780) SHA1(d5611a6f6b730db58613b48f2b0174661ccfb7bb) )
+ ROM_LOAD16_BYTE( "266-c8.c8", 0x3000001, 0x800000, CRC(29873d33) SHA1(dc77f129ed49b8d40d0d4241feef3f6c2f19a987) )
+ROM_END
+
+ROM_START( matrimeh )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "266eh.p1", 0x000000, 0x100000, CRC(e3b05e78) SHA1(8cbf3fe47c8afedb4ea7dcf5809acf7e5e858aba) )
+ ROM_LOAD16_WORD_SWAP( "266a.p2", 0x100000, 0x400000, CRC(b0132cef) SHA1(3780db1b8947a8371a46b67ca1a14a12bf97986b) )
+
+ NEO_SFIX( 0x40000, "266eh.s1", CRC(31c02ff8) SHA1(f4096d0b39a2fd682c0b3be435098ed8de990f8b) )
+
+ NEO_BIOS_AUDIO_128K( "266eh.m1", CRC(f692d84b) SHA1(a3737c574e779e0330916a2eea6ad5b3839f9538) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "266eh-v1d.bin", 0x000000, 0x800000, CRC(328b2194) SHA1(6734da4f1e882a8524c04ff375567ed96a2dae5e) )
+ ROM_LOAD( "266eh-v2d.bin", 0x800000, 0x800000, CRC(2a13562d) SHA1(dc13f1af6afaf43f2ac20b7cf1c751a047450312) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "266d.c1", 0x0000000, 0x800000, CRC(0ab54c54) SHA1(31bca460462b8545b3e5264804987ab951e9b202) )
+ ROM_LOAD16_BYTE( "266d.c2", 0x0000001, 0x800000, CRC(b834dd89) SHA1(579470839a8d23b2d22cf727d2b43c6c3c113e1f) )
+ ROM_LOAD16_BYTE( "266d.c3", 0x1000000, 0x800000, CRC(f31d68d4) SHA1(a6b8aaf11d25f871b52e9626fe0e4ae0683c3c52) )
+ ROM_LOAD16_BYTE( "266d.c4", 0x1000001, 0x800000, CRC(58cfb6e9) SHA1(106875db996ec29b0254b34f9d935c761cde20c4) )
+ ROM_LOAD16_BYTE( "266d.c5", 0x2000000, 0x800000, CRC(f3c0e3fd) SHA1(3a2f14517617fb98a202ceec88d52891e1438c8e) )
+ ROM_LOAD16_BYTE( "266d.c6", 0x2000001, 0x800000, CRC(b53c8dcf) SHA1(9f4b0bac92262e8c1c1055a70f13c7c326367f73) )
+ ROM_LOAD16_BYTE( "266d.c7", 0x3000000, 0x800000, CRC(3c1fb02a) SHA1(43e170e6d48c01d8c323f9309f97e6038bab20d7) )
+ ROM_LOAD16_BYTE( "266d.c8", 0x3000001, 0x800000, CRC(5ee31f80) SHA1(3cdd8037f5004df92f4c19ba0746c8bccb4e2473) )
+ROM_END
+
+ROM_START( matrimehc ) /* Matrimelee - Enhance by Creamymami - (Power always max - MVS protection removed) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "266ehc.p1", 0x000000, 0x100000, CRC(090fbe25) SHA1(83088d3982501320937a3df66ba883582e84224e) )
+ ROM_LOAD16_WORD_SWAP( "266-p2.sp2", 0x100000, 0x400000, CRC(a14b1906) SHA1(1daa14d73512f760ef569b06f9facb279437d1db) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_128K( "266d.m1", CRC(d2f3742d) SHA1(dd42f8a301f07e079fbc2bfd23e788baa03ca72d) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "266-v1.v1", 0x000000, 0x800000, CRC(a4f83690) SHA1(200d683d8c30ebc6d0ed331aa5bbba39b4e07160) )
+ ROM_LOAD( "266-v2.v2", 0x800000, 0x800000, CRC(d0f69eda) SHA1(9d7e98976ad433ed8a35d7afffa38130444ba7db) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "266-c1.c1", 0x0000000, 0x800000, CRC(505f4e30) SHA1(f22b6f76fc0cad963555dc89d072967c8dc8b79a) )
+ ROM_LOAD16_BYTE( "266-c2.c2", 0x0000001, 0x800000, CRC(3cb57482) SHA1(dab15bc24391f9a5173de76af48b612fb9636ccf) )
+ ROM_LOAD16_BYTE( "266-c3.c3", 0x1000000, 0x800000, CRC(f1cc6ad0) SHA1(66c1cccc0332ffd2d3064f06330c41f95ca09ced) )
+ ROM_LOAD16_BYTE( "266-c4.c4", 0x1000001, 0x800000, CRC(45b806b7) SHA1(c2bb866fded53d62fad0fc88d89d5e7d4cb1894f) )
+ ROM_LOAD16_BYTE( "266-c5.c5", 0x2000000, 0x800000, CRC(9a15dd6b) SHA1(194a6973a7a9e3847efe1bdbaeaeb16e74aff2dd) )
+ ROM_LOAD16_BYTE( "266-c6.c6", 0x2000001, 0x800000, CRC(281cb939) SHA1(bdb7766cfde581ccfaee2be7fe48445f360a2301) )
+ ROM_LOAD16_BYTE( "266-c7.c7", 0x3000000, 0x800000, CRC(4b71f780) SHA1(d5611a6f6b730db58613b48f2b0174661ccfb7bb) )
+ ROM_LOAD16_BYTE( "266-c8.c8", 0x3000001, 0x800000, CRC(29873d33) SHA1(dc77f129ed49b8d40d0d4241feef3f6c2f19a987) )
+ROM_END
+
+ROM_START( matrimnd )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "266nd.p1", 0x000000, 0x100000, CRC(d07b4032) SHA1(d9878ac13c8c374d496317359038b4a53c6f1872) )
+ ROM_LOAD16_WORD_SWAP( "266a.p2", 0x100000, 0x400000, CRC(b0132cef) SHA1(3780db1b8947a8371a46b67ca1a14a12bf97986b) )
+
+ NEO_SFIX_128K( "266a.s1", CRC(aff2a3be) SHA1(57aba048573eacf8fbdd228f04a7f30da64cebe5) )
+
+ NEO_BIOS_AUDIO_128K( "266eh.m1", CRC(f692d84b) SHA1(a3737c574e779e0330916a2eea6ad5b3839f9538) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "266eh-v1d.bin", 0x000000, 0x800000, CRC(328b2194) SHA1(6734da4f1e882a8524c04ff375567ed96a2dae5e) )
+ ROM_LOAD( "266eh-v2d.bin", 0x800000, 0x800000, CRC(2a13562d) SHA1(dc13f1af6afaf43f2ac20b7cf1c751a047450312) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "266d.c1", 0x0000000, 0x800000, CRC(0ab54c54) SHA1(31bca460462b8545b3e5264804987ab951e9b202) )
+ ROM_LOAD16_BYTE( "266d.c2", 0x0000001, 0x800000, CRC(b834dd89) SHA1(579470839a8d23b2d22cf727d2b43c6c3c113e1f) )
+ ROM_LOAD16_BYTE( "266d.c3", 0x1000000, 0x800000, CRC(f31d68d4) SHA1(a6b8aaf11d25f871b52e9626fe0e4ae0683c3c52) )
+ ROM_LOAD16_BYTE( "266d.c4", 0x1000001, 0x800000, CRC(58cfb6e9) SHA1(106875db996ec29b0254b34f9d935c761cde20c4) )
+ ROM_LOAD16_BYTE( "266d.c5", 0x2000000, 0x800000, CRC(f3c0e3fd) SHA1(3a2f14517617fb98a202ceec88d52891e1438c8e) )
+ ROM_LOAD16_BYTE( "266d.c6", 0x2000001, 0x800000, CRC(b53c8dcf) SHA1(9f4b0bac92262e8c1c1055a70f13c7c326367f73) )
+ ROM_LOAD16_BYTE( "266d.c7", 0x3000000, 0x800000, CRC(3c1fb02a) SHA1(43e170e6d48c01d8c323f9309f97e6038bab20d7) )
+ ROM_LOAD16_BYTE( "266d.c8", 0x3000001, 0x800000, CRC(5ee31f80) SHA1(3cdd8037f5004df92f4c19ba0746c8bccb4e2473) )
+ROM_END
+
+
+ROM_START( magdrop3fr )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "233fr.p1", 0x000000, 0x100000, CRC(ed90bb10) SHA1(eb22b362475ef294307357abf6c31a1ff2229f4a) )
+
+ NEO_SFIX_128K( "233-s1.s1", CRC(7399e68a) SHA1(b535ee56a0f0995f04674e676f6aa636ffad26aa) )
+
+ NEO_BIOS_AUDIO_128K( "233-m1.m1", CRC(5beaf34e) SHA1(2905d26945932cddc2dd3a1dc5abba8aa3baee14) )
+
+ ROM_REGION( 0x480000, "ymsnd", 0 )
+ ROM_LOAD( "233-v1.v1", 0x000000, 0x400000, CRC(58839298) SHA1(18cae7bba997c52780761cbf119c4e4b34397a61) )
+ ROM_LOAD( "233-v2.v2", 0x400000, 0x080000, CRC(d5e30df4) SHA1(bbbc0ff5b975471bd682f85976ac4a93f6d44f2e) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "233fr.c1", 0x000000, 0x400000, CRC(b10223f2) SHA1(d99565751bdde47cae4c5bb5fac32a0b80bae2b9) )
+ ROM_LOAD16_BYTE( "233fr.c2", 0x000001, 0x400000, CRC(39c0f4b8) SHA1(a09c20c12d418e938ce84ea87d3d8bbb3007563c) )
+ ROM_LOAD16_BYTE( "233-c3.c3", 0x800000, 0x400000, CRC(0ba2c502) SHA1(8e0f1e553aef04758aaaa14d5115f0ecace4391e) )
+ ROM_LOAD16_BYTE( "233-c4.c4", 0x800001, 0x400000, CRC(70dbbd6d) SHA1(32dd6a04c6329e89f4878e7a56f0d172a6388eea) )
+ROM_END
+
+
+ROM_START( miexchngfr )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "231fr.p1", 0x000000, 0x80000, CRC(a107101b) SHA1(f1a165779a4a26d7c9067b649fdcb7da40f3aea6) )
+
+ NEO_SFIX_128K( "231-s1.s1", CRC(fe0c0c53) SHA1(54d56d4463db193e504658f4f6f4997a62ae3d95) )
+
+ NEO_BIOS_AUDIO_128K( "231-m1.m1", CRC(de41301b) SHA1(59ce3836ac8f064d56a446c9374f05bcb40fcfd8) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "231-v1.v1", 0x000000, 0x400000, CRC(113fb898) SHA1(9168ba90c4aa969f69eb11ba3f4d76592d81e05a) )
+
+ ROM_REGION( 0x500000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "231fr.c1", 0x000000, 0x200000, CRC(0764d51c) SHA1(06a63359e5859d30ae5a8e2beed5a7615563298a) )
+ ROM_LOAD16_BYTE( "231fr.c2", 0x000001, 0x200000, CRC(6a2acd38) SHA1(bc35e7f9898ed6d7fd9ce43d4a4be91a81d0bd04) )
+ ROM_LOAD16_BYTE( "231fr.c3", 0x400000, 0x080000, CRC(14524eb5) SHA1(e090b99a1ee2cca4a7f7d5262e764d1cab6bada2) )
+ ROM_LOAD16_BYTE( "231fr.c4", 0x400001, 0x080000, CRC(1694f171) SHA1(a6af5d3f1e0b3f73da275e04d4434c6c9c7b9208) )
+ROM_END
+
+
+ROM_START( mutnatex )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "014ex.p1", 0x000000, 0x080000, CRC(2fe45544) SHA1(e55445f5a31c11bc11d74d040f8c4e605a7d4d36) )
+
+ NEO_SFIX_128K( "014-s1.s1", CRC(99419733) SHA1(b2524af8704941acc72282aa1d62fd4c93e3e822) )
+
+ NEO_BIOS_AUDIO_128K( "014-m1.m1", CRC(b6683092) SHA1(623ec7ec2915fb077bf65b4a16c815e071c25259) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "014-v1.v1", 0x000000, 0x100000, CRC(25419296) SHA1(c9fc04987c4e0875d276e1a0fb671740b6f548ad) )
+ ROM_LOAD( "014-v2.v2", 0x100000, 0x100000, CRC(0de53d5e) SHA1(467f6040da3dfb1974785e95e14c3f608a93720a) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "014-c1.c1", 0x000000, 0x100000, CRC(5e4381bf) SHA1(d429a5e09dafd2fb99495658b3652eecbf58f91b) )
+ ROM_LOAD16_BYTE( "014-c2.c2", 0x000001, 0x100000, CRC(69ba4e18) SHA1(b3369190c47771a790c7adffa958ff55d90e758b) )
+ ROM_LOAD16_BYTE( "014-c3.c3", 0x200000, 0x100000, CRC(890327d5) SHA1(47f97bf120a8480758e1f3bb8982be4c5325c036) )
+ ROM_LOAD16_BYTE( "014-c4.c4", 0x200001, 0x100000, CRC(e4002651) SHA1(17e53a5f4708866a120415bf24f3b89621ad0bcc) )
+ROM_END
+
+
+ROM_START( nam1975g ) // sound effects only, no music no voices
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "001g.p1", 0x000000, 0x100000, CRC(b8bf8b43) SHA1(b5de430d9e13ce82b761d566916329752e84424a) )
+
+ NEO_SFIX_128K( "001-s1.s1", CRC(7988ba51) SHA1(bc2f661f381b06b34ac2fa215dd5689d3bf84832) )
+
+ NEO_BIOS_AUDIO_64K( "001g.m1", CRC(afd04078) SHA1(a75833cd26442297ee35de302c186aa193fdb0ed) )
+
+ ROM_REGION( 0x100000, "ymsnd", 0 ) // weapons fire
+ ROM_LOAD( "001g.v1", 0x000000, 0x100000, CRC(dd5b3adc) SHA1(09b75fa1b2dc7704952cd371e440ea8771068633) )
+
+ ROM_REGION( 0x180000, "ymsnd.deltat", 0 ) // voices
+ ROM_LOAD( "001-v21.v21", 0x000000, 0x080000, CRC(55e670b3) SHA1(a047049646a90b6db2d1882264df9256aa5a85e5) )
+ ROM_LOAD( "001-v22.v22", 0x080000, 0x080000, CRC(ab0d8368) SHA1(404114db9f3295929080b87a5d0106b40da6223a) )
+ ROM_LOAD( "001-v23.v23", 0x100000, 0x080000, CRC(df468e28) SHA1(4e5d4a709a4737a87bba4083aeb788f657862f1a) )
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "001-c1.c1", 0x000000, 0x80000, CRC(32ea98e1) SHA1(c2fb3fb7dd14523a4b4b7fbdb81f44cb4cc48239) )
+ ROM_LOAD16_BYTE( "001-c2.c2", 0x000001, 0x80000, CRC(cbc4064c) SHA1(224c970fd060d841fd430c946ef609bb57b6d78c) )
+ ROM_LOAD16_BYTE( "001-c3.c3", 0x100000, 0x80000, CRC(0151054c) SHA1(f24fb501a7845f64833f4e5a461bcf9dc3262557) )
+ ROM_LOAD16_BYTE( "001-c4.c4", 0x100001, 0x80000, CRC(0a32570d) SHA1(f108446ec7844fde25f7a4ab454f76d384bf5e52) )
+ ROM_LOAD16_BYTE( "001-c5.c5", 0x200000, 0x80000, CRC(90b74cc2) SHA1(89898da36db259180e5261ed45eafc99ca13e504) )
+ ROM_LOAD16_BYTE( "001-c6.c6", 0x200001, 0x80000, CRC(e62bed58) SHA1(d05b2903b212a51ee131e52c761b714cb787683e) )
+ROM_END
+
+ROM_START( nam1975h ) // infinite lives
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "001h.p1", 0x000000, 0x080000, CRC(908a4fd0) SHA1(37ffc705ee772a1a25e77ff8696750a78dacc7f7) )
+
+ NEO_SFIX_64K( "001h.s1", CRC(8ded55a5) SHA1(27c8ffac16fbcc19c843d1b5b47ae8d8ef83d44a) )
+
+ NEO_BIOS_AUDIO_64K( "001h.m1", CRC(cd088502) SHA1(939f745cd576905f326e6246a2eed78e9fa88178) )
+
+ ROM_REGION( 0x080000, "ymsnd", 0 )
+ ROM_LOAD( "001-v11.v11", 0x000000, 0x080000, CRC(a7c3d5e5) SHA1(e3efc86940f91c53b7724c4566cfc21ea1a7a465) )
+
+ ROM_REGION( 0x180000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "001-v21.v21", 0x000000, 0x080000, CRC(55e670b3) SHA1(a047049646a90b6db2d1882264df9256aa5a85e5) )
+ ROM_LOAD( "001-v22.v22", 0x080000, 0x080000, CRC(ab0d8368) SHA1(404114db9f3295929080b87a5d0106b40da6223a) )
+ ROM_LOAD( "001-v23.v23", 0x100000, 0x080000, CRC(df468e28) SHA1(4e5d4a709a4737a87bba4083aeb788f657862f1a) )
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "001-c1.c1", 0x000000, 0x80000, CRC(32ea98e1) SHA1(c2fb3fb7dd14523a4b4b7fbdb81f44cb4cc48239) )
+ ROM_LOAD16_BYTE( "001-c2.c2", 0x000001, 0x80000, CRC(cbc4064c) SHA1(224c970fd060d841fd430c946ef609bb57b6d78c) )
+ ROM_LOAD16_BYTE( "001-c3.c3", 0x100000, 0x80000, CRC(0151054c) SHA1(f24fb501a7845f64833f4e5a461bcf9dc3262557) )
+ ROM_LOAD16_BYTE( "001-c4.c4", 0x100001, 0x80000, CRC(0a32570d) SHA1(f108446ec7844fde25f7a4ab454f76d384bf5e52) )
+ ROM_LOAD16_BYTE( "001-c5.c5", 0x200000, 0x80000, CRC(90b74cc2) SHA1(89898da36db259180e5261ed45eafc99ca13e504) )
+ ROM_LOAD16_BYTE( "001-c6.c6", 0x200001, 0x80000, CRC(e62bed58) SHA1(d05b2903b212a51ee131e52c761b714cb787683e) )
+ROM_END
+
+
+ROM_START( ncombatpk )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "009px.p1", 0x000000, 0x080000, CRC(4e040e04) SHA1(8a9281c745810e6977ff4d304e6fb3f8441fe4a4) )
+
+ NEO_SFIX_128K( "009-s1.s1", CRC(d49afee8) SHA1(77615f12edf08ae8f1353f7a056a8f3a50d3ebdc) )
+
+ NEO_BIOS_AUDIO_128K( "009-m1.m1", CRC(b5819863) SHA1(6f2309d51531052dbf7d712993c9e35649db0d84) )
+
+ ROM_REGION( 0x180000, "ymsnd", 0 )
+ ROM_LOAD( "009-v11.v11", 0x000000, 0x080000, CRC(cf32a59c) SHA1(af5b7fcd8a4aff1307c0a1d937e5f0460c32de79) )
+ ROM_LOAD( "009-v12.v12", 0x080000, 0x080000, CRC(7b3588b7) SHA1(a4e6d9d4113ff4ce48b371f65e9187d551821d3b) )
+ ROM_LOAD( "009-v13.v13", 0x100000, 0x080000, CRC(505a01b5) SHA1(9426a4f5b31e16f74e72e61951c189a878f211c5) )
+
+ ROM_REGION( 0x080000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "009-v21.v21", 0x000000, 0x080000, CRC(365f9011) SHA1(aebd292214ab280b05ee9e759b7e9a681a099c4a) )
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "009-c1.c1", 0x000000, 0x80000, CRC(33cc838e) SHA1(c445c891c0ba4190aa0b472786150620e76df5b4) )
+ ROM_LOAD16_BYTE( "009-c2.c2", 0x000001, 0x80000, CRC(26877feb) SHA1(8f48097fb8e4757f50b6d86219122fbf4b6f87ef) )
+ ROM_LOAD16_BYTE( "009-c3.c3", 0x100000, 0x80000, CRC(3b60a05d) SHA1(0a165a17af4834876fcd634599cd2208adc9248f) )
+ ROM_LOAD16_BYTE( "009-c4.c4", 0x100001, 0x80000, CRC(39c2d039) SHA1(8ca6c3f977c43c7abba2a00a0e70f02e2a49f5f2) )
+ ROM_LOAD16_BYTE( "009-c5.c5", 0x200000, 0x80000, CRC(67a4344e) SHA1(b325f152c7b2388fc92c5826e1dc99094b9ea749) )
+ ROM_LOAD16_BYTE( "009-c6.c6", 0x200001, 0x80000, CRC(2eca8b19) SHA1(16764ef10e404325ba0a1a2ad3a4c0af287be21f) )
+ROM_END
+
+
+ROM_START( ncommandsp )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "050sp.p1", 0x000000, 0x100000, CRC(76d37e41) SHA1(b5f6a8861a197be6f20ddbde28cc00f1e9176a2c) )
+
+ NEO_SFIX_128K( "050-s1.s1", CRC(db8f9c8e) SHA1(11cb82cf3c4d0fc2da5df0c26410a64808093610) )
+
+ NEO_BIOS_AUDIO_128K( "050-m1.m1", CRC(6fcf07d3) SHA1(e9ecff4bfec1f5964bf06645f75d80d611b6231c) )
+
+ ROM_REGION( 0x180000, "ymsnd", 0 )
+ ROM_LOAD( "050-v1.v1", 0x000000, 0x100000, CRC(23c3ab42) SHA1(b6c59bb180f1aa34c95f3ec923f3aafb689d57b0) )
+ ROM_LOAD( "050-v2.v2", 0x100000, 0x080000, CRC(80b8a984) SHA1(950cf0e78ceffa4037663f1086fbbc88588f49f2) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "050-c1.c1", 0x000000, 0x100000, CRC(87421a0a) SHA1(1d8faaf03778f7c5b062554d7333bbd3f0ca12ad) )
+ ROM_LOAD16_BYTE( "050-c2.c2", 0x000001, 0x100000, CRC(c4cf5548) SHA1(ef9eca5aeff9dda2209a050c2af00ed8979ae2bc) )
+ ROM_LOAD16_BYTE( "050-c3.c3", 0x200000, 0x100000, CRC(03422c1e) SHA1(920e5015aebe2ffc5ce43a52365c7f0a705f3b9e) )
+ ROM_LOAD16_BYTE( "050-c4.c4", 0x200001, 0x100000, CRC(0845eadb) SHA1(3c71a02bf0e07a5381846bb6d75bbe7dd546adea) )
+ROM_END
+
+
+ROM_START( neocup98k )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "244-p1.p1", 0x100000, 0x100000, CRC(f8fdb7a5) SHA1(f34ee5d1c24e70427d05ef488f46906dbd9f9950) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "244k.s1", CRC(becb9e7a) SHA1(b40e0ee79ab234ab2162d735d66aafa63f9d7477) )
+
+ NEO_BIOS_AUDIO_128K( "244-m1.m1", CRC(a701b276) SHA1(055550ebc650835bcf8ea4457b2c91bd73e21281) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "244-v1.v1", 0x000000, 0x400000, CRC(79def46d) SHA1(63414235de2e177654508f1c840040424f8993e6) )
+ ROM_LOAD( "244-v2.v2", 0x400000, 0x200000, CRC(b231902f) SHA1(9209772e947a2c7ac31b49dd613bf2eab0cb3358) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "244k.c1", 0x000000, 0x800000, CRC(9067dfda) SHA1(034c0e21ece55df30357d7abfb7cb05994e9b131) )
+ ROM_LOAD16_BYTE( "244k.c2", 0x000001, 0x800000, CRC(54e86379) SHA1(e76f27b5cf2ab7ed00a8abfe2e2397394c51dac5) )
+ROM_END
+
+
+ROM_START( ninjamasasp )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "217asp.p1", 0x000000, 0x100000, CRC(c92bd6a4) SHA1(2176c2a0a5a0982d0077f68203d67e26136e3a7b) )
+ ROM_LOAD16_WORD_SWAP( "217-p2.sp2", 0x100000, 0x200000, CRC(191fca88) SHA1(e318e5931704779bbe461719a5eeeba89bd83a5d) )
+
+ NEO_SFIX_128K( "217-s1.s1", CRC(8ff782f0) SHA1(90099c154357042ba658d4ef6abe4d9335bb7172) )
+
+ NEO_BIOS_AUDIO_128K( "217-m1.m1", CRC(d00fb2af) SHA1(6bcaa52e1641cc24288e1f22f4dc98e8d8921b90) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "217-v1.v1", 0x000000, 0x400000, CRC(1c34e013) SHA1(5368e413d2188c4fd063b6bb7d5f498ff83ea812) )
+ ROM_LOAD( "217-v2.v2", 0x400000, 0x200000, CRC(22f1c681) SHA1(09da03b2e63d180e55173ff25e8735c4162f027b) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "217-c1.c1", 0x0000000, 0x400000, CRC(5fe97bc4) SHA1(d76c955d83baa2b9fd24222a9b2852947b7b92f0) )
+ ROM_LOAD16_BYTE( "217-c2.c2", 0x0000001, 0x400000, CRC(886e0d66) SHA1(d407e1525e4ebe996e14f6e5c0396a10f736a50d) )
+ ROM_LOAD16_BYTE( "217-c3.c3", 0x0800000, 0x400000, CRC(59e8525f) SHA1(19f602c71545d6c021dc72e112d3a8b8efe7a9b7) )
+ ROM_LOAD16_BYTE( "217-c4.c4", 0x0800001, 0x400000, CRC(8521add2) SHA1(0d1a6f2979302c4c282e31ff334d2d887aec74f7) )
+ ROM_LOAD16_BYTE( "217-c5.c5", 0x1000000, 0x400000, CRC(fb1896e5) SHA1(777a8caa9ebdbddf89e3d5ab650c94a55228ce54) )
+ ROM_LOAD16_BYTE( "217-c6.c6", 0x1000001, 0x400000, CRC(1c98c54b) SHA1(cb1cad161d9b9f2f5a7cf8ae4d6d35b51acf90f5) )
+ ROM_LOAD16_BYTE( "217-c7.c7", 0x1800000, 0x400000, CRC(8b0ede2e) SHA1(ea632ac98291ddac95441b7fe2349974b2da8a42) )
+ ROM_LOAD16_BYTE( "217-c8.c8", 0x1800001, 0x400000, CRC(a085bb61) SHA1(6a3e9e6ba96072b8849b407f2b24103dc0852259) )
+ROM_END
+
+ROM_START( ninjamaschl )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "217chl.p1", 0x000000, 0x100000, CRC(3ca17556) SHA1(505878e23d8ff44bfce35fdce261e73eaaa99e37) )
+ ROM_LOAD16_WORD_SWAP( "217-p2.sp2", 0x100000, 0x200000, CRC(191fca88) SHA1(e318e5931704779bbe461719a5eeeba89bd83a5d) )
+
+ NEO_SFIX_128K( "217-s1.s1", CRC(8ff782f0) SHA1(90099c154357042ba658d4ef6abe4d9335bb7172) )
+
+ NEO_BIOS_AUDIO_128K( "217-m1.m1", CRC(d00fb2af) SHA1(6bcaa52e1641cc24288e1f22f4dc98e8d8921b90) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "217-v1.v1", 0x000000, 0x400000, CRC(1c34e013) SHA1(5368e413d2188c4fd063b6bb7d5f498ff83ea812) )
+ ROM_LOAD( "217-v2.v2", 0x400000, 0x200000, CRC(22f1c681) SHA1(09da03b2e63d180e55173ff25e8735c4162f027b) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "217-c1.c1", 0x0000000, 0x400000, CRC(5fe97bc4) SHA1(d76c955d83baa2b9fd24222a9b2852947b7b92f0) )
+ ROM_LOAD16_BYTE( "217-c2.c2", 0x0000001, 0x400000, CRC(886e0d66) SHA1(d407e1525e4ebe996e14f6e5c0396a10f736a50d) )
+ ROM_LOAD16_BYTE( "217-c3.c3", 0x0800000, 0x400000, CRC(59e8525f) SHA1(19f602c71545d6c021dc72e112d3a8b8efe7a9b7) )
+ ROM_LOAD16_BYTE( "217-c4.c4", 0x0800001, 0x400000, CRC(8521add2) SHA1(0d1a6f2979302c4c282e31ff334d2d887aec74f7) )
+ ROM_LOAD16_BYTE( "217-c5.c5", 0x1000000, 0x400000, CRC(fb1896e5) SHA1(777a8caa9ebdbddf89e3d5ab650c94a55228ce54) )
+ ROM_LOAD16_BYTE( "217-c6.c6", 0x1000001, 0x400000, CRC(1c98c54b) SHA1(cb1cad161d9b9f2f5a7cf8ae4d6d35b51acf90f5) )
+ ROM_LOAD16_BYTE( "217-c7.c7", 0x1800000, 0x400000, CRC(8b0ede2e) SHA1(ea632ac98291ddac95441b7fe2349974b2da8a42) )
+ ROM_LOAD16_BYTE( "217-c8.c8", 0x1800001, 0x400000, CRC(a085bb61) SHA1(6a3e9e6ba96072b8849b407f2b24103dc0852259) )
+ROM_END
+
+ROM_START( ninjamaseh ) /* Ninja Master's - Enhance by Ydmis - (Can choose Ranmaru and Nobunaga) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "217eh.p1", 0x000000, 0x100000, CRC(2cb6c199) SHA1(a7ad5bd0e827e8cece9d3447045a63fddee94385) )
+ ROM_LOAD16_WORD_SWAP( "217-p2.sp2", 0x100000, 0x200000, CRC(191fca88) SHA1(e318e5931704779bbe461719a5eeeba89bd83a5d) )
+
+ NEO_SFIX_128K( "217-s1.s1", CRC(8ff782f0) SHA1(90099c154357042ba658d4ef6abe4d9335bb7172) )
+
+ NEO_BIOS_AUDIO_128K( "217-m1.m1", CRC(d00fb2af) SHA1(6bcaa52e1641cc24288e1f22f4dc98e8d8921b90) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "217-v1.v1", 0x000000, 0x400000, CRC(1c34e013) SHA1(5368e413d2188c4fd063b6bb7d5f498ff83ea812) )
+ ROM_LOAD( "217-v2.v2", 0x400000, 0x200000, CRC(22f1c681) SHA1(09da03b2e63d180e55173ff25e8735c4162f027b) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "217-c1.c1", 0x0000000, 0x400000, CRC(5fe97bc4) SHA1(d76c955d83baa2b9fd24222a9b2852947b7b92f0) )
+ ROM_LOAD16_BYTE( "217-c2.c2", 0x0000001, 0x400000, CRC(886e0d66) SHA1(d407e1525e4ebe996e14f6e5c0396a10f736a50d) )
+ ROM_LOAD16_BYTE( "217-c3.c3", 0x0800000, 0x400000, CRC(59e8525f) SHA1(19f602c71545d6c021dc72e112d3a8b8efe7a9b7) )
+ ROM_LOAD16_BYTE( "217-c4.c4", 0x0800001, 0x400000, CRC(8521add2) SHA1(0d1a6f2979302c4c282e31ff334d2d887aec74f7) )
+ ROM_LOAD16_BYTE( "217-c5.c5", 0x1000000, 0x400000, CRC(fb1896e5) SHA1(777a8caa9ebdbddf89e3d5ab650c94a55228ce54) )
+ ROM_LOAD16_BYTE( "217-c6.c6", 0x1000001, 0x400000, CRC(1c98c54b) SHA1(cb1cad161d9b9f2f5a7cf8ae4d6d35b51acf90f5) )
+ ROM_LOAD16_BYTE( "217-c7.c7", 0x1800000, 0x400000, CRC(8b0ede2e) SHA1(ea632ac98291ddac95441b7fe2349974b2da8a42) )
+ ROM_LOAD16_BYTE( "217-c8.c8", 0x1800001, 0x400000, CRC(a085bb61) SHA1(6a3e9e6ba96072b8849b407f2b24103dc0852259) )
+ROM_END
+
+ROM_START( ninjamasehc ) /* Ninja Master's - Enhance by Creamymami - (Power hack) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "217ehc.p1", 0x000000, 0x100000, CRC(8b88e675) SHA1(d16dad0d05282b577fabf3bd187ac3b8d4ddfa57) )
+ ROM_LOAD16_WORD_SWAP( "217-p2.sp2", 0x100000, 0x200000, CRC(191fca88) SHA1(e318e5931704779bbe461719a5eeeba89bd83a5d) )
+
+ NEO_SFIX_128K( "217-s1.s1", CRC(8ff782f0) SHA1(90099c154357042ba658d4ef6abe4d9335bb7172) )
+
+ NEO_BIOS_AUDIO_128K( "217-m1.m1", CRC(d00fb2af) SHA1(6bcaa52e1641cc24288e1f22f4dc98e8d8921b90) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "217-v1.v1", 0x000000, 0x400000, CRC(1c34e013) SHA1(5368e413d2188c4fd063b6bb7d5f498ff83ea812) )
+ ROM_LOAD( "217-v2.v2", 0x400000, 0x200000, CRC(22f1c681) SHA1(09da03b2e63d180e55173ff25e8735c4162f027b) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "217-c1.c1", 0x0000000, 0x400000, CRC(5fe97bc4) SHA1(d76c955d83baa2b9fd24222a9b2852947b7b92f0) )
+ ROM_LOAD16_BYTE( "217-c2.c2", 0x0000001, 0x400000, CRC(886e0d66) SHA1(d407e1525e4ebe996e14f6e5c0396a10f736a50d) )
+ ROM_LOAD16_BYTE( "217-c3.c3", 0x0800000, 0x400000, CRC(59e8525f) SHA1(19f602c71545d6c021dc72e112d3a8b8efe7a9b7) )
+ ROM_LOAD16_BYTE( "217-c4.c4", 0x0800001, 0x400000, CRC(8521add2) SHA1(0d1a6f2979302c4c282e31ff334d2d887aec74f7) )
+ ROM_LOAD16_BYTE( "217-c5.c5", 0x1000000, 0x400000, CRC(fb1896e5) SHA1(777a8caa9ebdbddf89e3d5ab650c94a55228ce54) )
+ ROM_LOAD16_BYTE( "217-c6.c6", 0x1000001, 0x400000, CRC(1c98c54b) SHA1(cb1cad161d9b9f2f5a7cf8ae4d6d35b51acf90f5) )
+ ROM_LOAD16_BYTE( "217-c7.c7", 0x1800000, 0x400000, CRC(8b0ede2e) SHA1(ea632ac98291ddac95441b7fe2349974b2da8a42) )
+ ROM_LOAD16_BYTE( "217-c8.c8", 0x1800001, 0x400000, CRC(a085bb61) SHA1(6a3e9e6ba96072b8849b407f2b24103dc0852259) )
+ROM_END
+
+ROM_START( ninjamasehyc ) /* Ninja Master's - Enhance by Creamymami and Ydmis - (Can choose Ranmaru and Nobunaga - power hack) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "217ehyc.p1", 0x000000, 0x100000, CRC(99a9ca85) SHA1(25d3995f9669072b17718169693dc5c4fed0c9f2) )
+ ROM_LOAD16_WORD_SWAP( "217-p2.sp2", 0x100000, 0x200000, CRC(191fca88) SHA1(e318e5931704779bbe461719a5eeeba89bd83a5d) )
+
+ NEO_SFIX_128K( "217-s1.s1", CRC(8ff782f0) SHA1(90099c154357042ba658d4ef6abe4d9335bb7172) )
+
+ NEO_BIOS_AUDIO_128K( "217-m1.m1", CRC(d00fb2af) SHA1(6bcaa52e1641cc24288e1f22f4dc98e8d8921b90) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "217-v1.v1", 0x000000, 0x400000, CRC(1c34e013) SHA1(5368e413d2188c4fd063b6bb7d5f498ff83ea812) )
+ ROM_LOAD( "217-v2.v2", 0x400000, 0x200000, CRC(22f1c681) SHA1(09da03b2e63d180e55173ff25e8735c4162f027b) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "217-c1.c1", 0x0000000, 0x400000, CRC(5fe97bc4) SHA1(d76c955d83baa2b9fd24222a9b2852947b7b92f0) )
+ ROM_LOAD16_BYTE( "217-c2.c2", 0x0000001, 0x400000, CRC(886e0d66) SHA1(d407e1525e4ebe996e14f6e5c0396a10f736a50d) )
+ ROM_LOAD16_BYTE( "217-c3.c3", 0x0800000, 0x400000, CRC(59e8525f) SHA1(19f602c71545d6c021dc72e112d3a8b8efe7a9b7) )
+ ROM_LOAD16_BYTE( "217-c4.c4", 0x0800001, 0x400000, CRC(8521add2) SHA1(0d1a6f2979302c4c282e31ff334d2d887aec74f7) )
+ ROM_LOAD16_BYTE( "217-c5.c5", 0x1000000, 0x400000, CRC(fb1896e5) SHA1(777a8caa9ebdbddf89e3d5ab650c94a55228ce54) )
+ ROM_LOAD16_BYTE( "217-c6.c6", 0x1000001, 0x400000, CRC(1c98c54b) SHA1(cb1cad161d9b9f2f5a7cf8ae4d6d35b51acf90f5) )
+ ROM_LOAD16_BYTE( "217-c7.c7", 0x1800000, 0x400000, CRC(8b0ede2e) SHA1(ea632ac98291ddac95441b7fe2349974b2da8a42) )
+ ROM_LOAD16_BYTE( "217-c8.c8", 0x1800001, 0x400000, CRC(a085bb61) SHA1(6a3e9e6ba96072b8849b407f2b24103dc0852259) )
+ROM_END
+
+ROM_START( ninjamasha )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "217ha.p1", 0x000000, 0x100000, CRC(45332f39) SHA1(6689c3de46d199aa32814f773d04ab558b30e98d) )
+ ROM_LOAD16_WORD_SWAP( "217-p2.sp2", 0x100000, 0x200000, CRC(191fca88) SHA1(e318e5931704779bbe461719a5eeeba89bd83a5d) )
+
+ NEO_SFIX_128K( "217-s1.s1", CRC(8ff782f0) SHA1(90099c154357042ba658d4ef6abe4d9335bb7172) )
+
+ NEO_BIOS_AUDIO_128K( "217-m1.m1", CRC(d00fb2af) SHA1(6bcaa52e1641cc24288e1f22f4dc98e8d8921b90) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "217-v1.v1", 0x000000, 0x400000, CRC(1c34e013) SHA1(5368e413d2188c4fd063b6bb7d5f498ff83ea812) )
+ ROM_LOAD( "217-v2.v2", 0x400000, 0x200000, CRC(22f1c681) SHA1(09da03b2e63d180e55173ff25e8735c4162f027b) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "217-c1.c1", 0x0000000, 0x400000, CRC(5fe97bc4) SHA1(d76c955d83baa2b9fd24222a9b2852947b7b92f0) )
+ ROM_LOAD16_BYTE( "217-c2.c2", 0x0000001, 0x400000, CRC(886e0d66) SHA1(d407e1525e4ebe996e14f6e5c0396a10f736a50d) )
+ ROM_LOAD16_BYTE( "217-c3.c3", 0x0800000, 0x400000, CRC(59e8525f) SHA1(19f602c71545d6c021dc72e112d3a8b8efe7a9b7) )
+ ROM_LOAD16_BYTE( "217-c4.c4", 0x0800001, 0x400000, CRC(8521add2) SHA1(0d1a6f2979302c4c282e31ff334d2d887aec74f7) )
+ ROM_LOAD16_BYTE( "217-c5.c5", 0x1000000, 0x400000, CRC(fb1896e5) SHA1(777a8caa9ebdbddf89e3d5ab650c94a55228ce54) )
+ ROM_LOAD16_BYTE( "217-c6.c6", 0x1000001, 0x400000, CRC(1c98c54b) SHA1(cb1cad161d9b9f2f5a7cf8ae4d6d35b51acf90f5) )
+ ROM_LOAD16_BYTE( "217-c7.c7", 0x1800000, 0x400000, CRC(8b0ede2e) SHA1(ea632ac98291ddac95441b7fe2349974b2da8a42) )
+ ROM_LOAD16_BYTE( "217-c8.c8", 0x1800001, 0x400000, CRC(a085bb61) SHA1(6a3e9e6ba96072b8849b407f2b24103dc0852259) )
+ROM_END
+
+ROM_START( ninjamashb )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "217hb.p1", 0x000000, 0x100000, CRC(a95d896b) SHA1(f4757bd9d198c77e31f21c955f69ea175e9d779f) )
+ ROM_LOAD16_WORD_SWAP( "217-p2.sp2", 0x100000, 0x200000, CRC(191fca88) SHA1(e318e5931704779bbe461719a5eeeba89bd83a5d) )
+
+ NEO_SFIX_128K( "217-s1.s1", CRC(8ff782f0) SHA1(90099c154357042ba658d4ef6abe4d9335bb7172) )
+
+ NEO_BIOS_AUDIO_128K( "217-m1.m1", CRC(d00fb2af) SHA1(6bcaa52e1641cc24288e1f22f4dc98e8d8921b90) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "217-v1.v1", 0x000000, 0x400000, CRC(1c34e013) SHA1(5368e413d2188c4fd063b6bb7d5f498ff83ea812) )
+ ROM_LOAD( "217-v2.v2", 0x400000, 0x200000, CRC(22f1c681) SHA1(09da03b2e63d180e55173ff25e8735c4162f027b) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "217-c1.c1", 0x0000000, 0x400000, CRC(5fe97bc4) SHA1(d76c955d83baa2b9fd24222a9b2852947b7b92f0) )
+ ROM_LOAD16_BYTE( "217-c2.c2", 0x0000001, 0x400000, CRC(886e0d66) SHA1(d407e1525e4ebe996e14f6e5c0396a10f736a50d) )
+ ROM_LOAD16_BYTE( "217-c3.c3", 0x0800000, 0x400000, CRC(59e8525f) SHA1(19f602c71545d6c021dc72e112d3a8b8efe7a9b7) )
+ ROM_LOAD16_BYTE( "217-c4.c4", 0x0800001, 0x400000, CRC(8521add2) SHA1(0d1a6f2979302c4c282e31ff334d2d887aec74f7) )
+ ROM_LOAD16_BYTE( "217-c5.c5", 0x1000000, 0x400000, CRC(fb1896e5) SHA1(777a8caa9ebdbddf89e3d5ab650c94a55228ce54) )
+ ROM_LOAD16_BYTE( "217-c6.c6", 0x1000001, 0x400000, CRC(1c98c54b) SHA1(cb1cad161d9b9f2f5a7cf8ae4d6d35b51acf90f5) )
+ ROM_LOAD16_BYTE( "217-c7.c7", 0x1800000, 0x400000, CRC(8b0ede2e) SHA1(ea632ac98291ddac95441b7fe2349974b2da8a42) )
+ ROM_LOAD16_BYTE( "217-c8.c8", 0x1800001, 0x400000, CRC(a085bb61) SHA1(6a3e9e6ba96072b8849b407f2b24103dc0852259) )
+ROM_END
+
+
+ROM_START( nitdd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "260-p1.p1", 0x000000, 0x080000, CRC(61361082) SHA1(441f3f41c1aa752c0e0a9a0b1d92711d9e636b85) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_512K( "260-m1.m1", CRC(6407c5e5) SHA1(d273e154cc905b63205a17a1a6d419cac3485a92) )
+
+ ROM_REGION( 0x0400000, "ymsnd", 0 )
+ ROM_LOAD( "260-v1.v1", 0x000000, 0x400000, CRC(24b0480c) SHA1(d769e621be52a5cd2e2568891b5f95a48268e1e0) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "260d.c1", 0x0000000, 0x800000, CRC(f3ff4953) SHA1(0e54548387f3056088e89086a30da05935d08b24) )
+ ROM_LOAD16_BYTE( "260d.c2", 0x0000001, 0x800000, CRC(f1e49faa) SHA1(2a771e318423addd9daae3a9af200de2c70f4021) )
+ROM_END
+
+ROM_START( nitdfr ) /* Nightmare in the Dark - Translation Hack by NEO-ARC - (French translation) */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "260fr.p1", 0x000000, 0x080000, CRC(aa52c3cf) SHA1(f098aa068ee365fa7af9c638bc09eb82396e1749) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_512K( "260-m1.m1", CRC(6407c5e5) SHA1(d273e154cc905b63205a17a1a6d419cac3485a92) )
+
+ ROM_REGION( 0x0400000, "ymsnd", 0 )
+ ROM_LOAD( "260-v1.v1", 0x000000, 0x400000, CRC(24b0480c) SHA1(d769e621be52a5cd2e2568891b5f95a48268e1e0) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "260fr.c1", 0x0000000, 0x800000, CRC(7c469419) SHA1(06a45016c9493b85fbb8d9ebd33409a0d933ed22) )
+ ROM_LOAD16_BYTE( "260fr.c2", 0x0000001, 0x800000, CRC(74ada44f) SHA1(77d051a3522d2c658ef4790ddeac0271e9490fd2) )
+ROM_END
+
+ROM_START( nitdfro ) /* Nightmare in the Dark - Translation Hack Older? */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "260fro.p1", 0x000000, 0x080000, CRC(b294c6ce) SHA1(77f641c05a645e8d57014540ef1b7f52c4a8849b) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_512K( "260-m1.m1", CRC(6407c5e5) SHA1(d273e154cc905b63205a17a1a6d419cac3485a92) )
+
+ ROM_REGION( 0x0400000, "ymsnd", 0 )
+ ROM_LOAD( "260-v1.v1", 0x000000, 0x400000, CRC(24b0480c) SHA1(d769e621be52a5cd2e2568891b5f95a48268e1e0) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "260fro.c1", 0x0000000, 0x800000, CRC(14c5a25f) SHA1(8b29f7e6920eb1b4a7dc42a063e4c8e6ec9a5700) )
+ ROM_LOAD16_BYTE( "260fro.c2", 0x0000001, 0x800000, CRC(6630c255) SHA1(c8a77a3d6e17e1ed64eb6b1e85172567e7e3e71c) )
+ROM_END
+
+ROM_START( nitdfro1 )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "260fro.p1", 0x000000, 0x080000, CRC(b294c6ce) SHA1(77f641c05a645e8d57014540ef1b7f52c4a8849b) )
+
+ NEO_SFIX_128K( "260fro1.s1", CRC(dd3bf47c) SHA1(881271caee6508b8be51bf1b59c8f1e58e08e551) )
+
+ NEO_BIOS_AUDIO_512K( "260-m1.m1", CRC(6407c5e5) SHA1(d273e154cc905b63205a17a1a6d419cac3485a92) )
+
+ ROM_REGION( 0x0400000, "ymsnd", 0 )
+ ROM_LOAD( "260-v1.v1", 0x000000, 0x400000, CRC(24b0480c) SHA1(d769e621be52a5cd2e2568891b5f95a48268e1e0) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "260fro.c1", 0x0000000, 0x800000, CRC(14c5a25f) SHA1(8b29f7e6920eb1b4a7dc42a063e4c8e6ec9a5700) )
+ ROM_LOAD16_BYTE( "260fro.c2", 0x0000001, 0x800000, CRC(6630c255) SHA1(c8a77a3d6e17e1ed64eb6b1e85172567e7e3e71c) )
+ROM_END
+
+ROM_START( nitdpx )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "260px.p1", 0x000000, 0x080000, CRC(4198ce09) SHA1(13c8c54b8533955e5b07ca0775346e14d4a10b35) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_512K( "260-m1.m1", CRC(6407c5e5) SHA1(d273e154cc905b63205a17a1a6d419cac3485a92) )
+
+ ROM_REGION( 0x0400000, "ymsnd", 0 )
+ ROM_LOAD( "260-v1.v1", 0x000000, 0x400000, CRC(24b0480c) SHA1(d769e621be52a5cd2e2568891b5f95a48268e1e0) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "260-c1.c1", 0x0000000, 0x800000, CRC(147b0c7f) SHA1(a647c3a2f6d146ff47521c1d39f58830601f5781) )
+ ROM_LOAD16_BYTE( "260-c2.c2", 0x0000001, 0x800000, CRC(d2b04b0d) SHA1(ce4322e6cfacb627fe997efe81018861e21d3c27) )
+ROM_END
+
+ROM_START( nitdsp ) /* Nightmare in the Dark - Translation Hack by UNKNOWN - (Spanish language hack) */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "260sp.p1", 0x000000, 0x080000, CRC(0ab6d623) SHA1(c508e92d0ed3f600dffe41d2f815d16bb377dace) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_512K( "260-m1.m1", CRC(6407c5e5) SHA1(d273e154cc905b63205a17a1a6d419cac3485a92) )
+
+ ROM_REGION( 0x0400000, "ymsnd", 0 )
+ ROM_LOAD( "260-v1.v1", 0x000000, 0x400000, CRC(24b0480c) SHA1(d769e621be52a5cd2e2568891b5f95a48268e1e0) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "260-c1.c1", 0x0000000, 0x800000, CRC(147b0c7f) SHA1(a647c3a2f6d146ff47521c1d39f58830601f5781) )
+ ROM_LOAD16_BYTE( "260-c2.c2", 0x0000001, 0x800000, CRC(d2b04b0d) SHA1(ce4322e6cfacb627fe997efe81018861e21d3c27) )
+ROM_END
+
+ROM_START( nitdsp1 ) /* Nightmare in the Dark - Translation Hack by UNKNOWN - (Spanish language hack) */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "260sp1.p1", 0x000000, 0x080000, CRC(42b69e41) SHA1(cb814190d96ef67096ee9f4f305611d870a76e93) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_512K( "260-m1.m1", CRC(6407c5e5) SHA1(d273e154cc905b63205a17a1a6d419cac3485a92) )
+
+ ROM_REGION( 0x0400000, "ymsnd", 0 )
+ ROM_LOAD( "260-v1.v1", 0x000000, 0x400000, CRC(24b0480c) SHA1(d769e621be52a5cd2e2568891b5f95a48268e1e0) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "260sp1.c1", 0x0000000, 0x800000, CRC(3f7fbd0c) SHA1(2e6cedcb099ae8f5bbdb9d989ca3918d7fb0504f) )
+ ROM_LOAD16_BYTE( "260sp1.c2", 0x0000001, 0x800000, CRC(b5ddbb97) SHA1(b44dee65bbb5b2c6d7c6d4990762b26deaf3c696) )
+ROM_END
+
+ROM_START( nitdsp2 )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "260sp1.p1", 0x000000, 0x080000, CRC(42b69e41) SHA1(cb814190d96ef67096ee9f4f305611d870a76e93) )
+
+ NEO_SFIX_128K( "260fro1.s1", CRC(dd3bf47c) SHA1(881271caee6508b8be51bf1b59c8f1e58e08e551) )
+
+ NEO_BIOS_AUDIO_512K( "260-m1.m1", CRC(6407c5e5) SHA1(d273e154cc905b63205a17a1a6d419cac3485a92) )
+
+ ROM_REGION( 0x0400000, "ymsnd", 0 )
+ ROM_LOAD( "260-v1.v1", 0x000000, 0x400000, CRC(24b0480c) SHA1(d769e621be52a5cd2e2568891b5f95a48268e1e0) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "260sp1.c1", 0x0000000, 0x800000, CRC(3f7fbd0c) SHA1(2e6cedcb099ae8f5bbdb9d989ca3918d7fb0504f) )
+ ROM_LOAD16_BYTE( "260sp1.c2", 0x0000001, 0x800000, CRC(b5ddbb97) SHA1(b44dee65bbb5b2c6d7c6d4990762b26deaf3c696) )
+ROM_END
+
+
+ROM_START( pbobblenba )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "083b.p1", 0x000000, 0x080000, CRC(ac1e9ef3) SHA1(a2b125ee70869667431ab125bc29e768500802ad) )
+
+ NEO_SFIX_128K( "d96-04.s1", CRC(9caae538) SHA1(cf2d90a7c1a42107c0bb8b9a61397634286dbe0a) )
+
+ NEO_BIOS_AUDIO_128K( "d96-06.m1", CRC(f424368a) SHA1(5e5bbcaeb82bed2ee17df08f005ca20ad1030723) )
+
+ ROM_REGION( 0x380000, "ymsnd", 0 )
+ ROM_LOAD( "083b.v1", 0x200000, 0x080000, CRC(f8872aed) SHA1(73685980253093b4f148cb38b6a47476fb2a61aa) )
+ ROM_LOAD( "083b.v2", 0x280000, 0x080000, CRC(5c8cf5fe) SHA1(97d74466ac48708d7f4004524288dd2f32f17793) )
+ ROM_LOAD( "d96-05.v4", 0x300000, 0x080000, CRC(0a548948) SHA1(e1e4afd17811cb60401c14fbcf0465035165f4fb) )
+
+ ROM_REGION( 0x100000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "d96-02.c5", 0x000000, 0x80000, CRC(e89ad494) SHA1(69c9ea415773af94ac44c48af05d55ada222b138) )
+ ROM_LOAD16_BYTE( "d96-03.c6", 0x000001, 0x80000, CRC(4b42d7eb) SHA1(042ae50a528cea21cf07771d3915c57aa16fd5af) )
+ROM_END
+
+ROM_START( pbobblencd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "083cd.p1", 0x000000, 0x040000, CRC(b1095646) SHA1(20fa2bc724df4b5234ff0ccf3074e545f28d1bbd) )
+
+ NEO_SFIX_128K( "d96-04.s1", CRC(9caae538) SHA1(cf2d90a7c1a42107c0bb8b9a61397634286dbe0a) )
+
+ NEO_BIOS_AUDIO_64K( "083cd.m1", CRC(c505fcdb) SHA1(2b3e10e1475c7c1425b382be30c765e455c5bbc6) )
+
+ ROM_REGION( 0x180000, "ymsnd", 0 )
+ ROM_LOAD( "083ch.v3", 0x000000, 0x100000, CRC(30ce579e) SHA1(635f7ab2178981ba38cc0080f4f97e954e552440) )
+ ROM_LOAD( "d96-05.v4", 0x100000, 0x080000, CRC(0a548948) SHA1(e1e4afd17811cb60401c14fbcf0465035165f4fb) )
+
+ ROM_REGION( 0x100000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "d96-02.c5", 0x000000, 0x80000, CRC(e89ad494) SHA1(69c9ea415773af94ac44c48af05d55ada222b138) )
+ ROM_LOAD16_BYTE( "d96-03.c6", 0x000001, 0x80000, CRC(4b42d7eb) SHA1(042ae50a528cea21cf07771d3915c57aa16fd5af) )
+ROM_END
+
+ROM_START( pbcrazyb1 )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "462b1.p1", 0x000000, 0x038db2, CRC(008dd79a) SHA1(1c05d442fb19c3e60257592874737585c9b58b31) )
+
+ NEO_SFIX_128K( "d96-04.s1", CRC(9caae538) SHA1(cf2d90a7c1a42107c0bb8b9a61397634286dbe0a) )
+
+ NEO_BIOS_AUDIO_64K( "462.m1", CRC(5e378316) SHA1(fa9a904583e00614762ad91bab83e86d52237777) )
+
+ ROM_REGION( 0x180000, "ymsnd", 0 )
+ ROM_LOAD( "083ch.v3", 0x000000, 0x100000, CRC(30ce579e) SHA1(635f7ab2178981ba38cc0080f4f97e954e552440) )
+ ROM_LOAD( "d96-05.v4", 0x100000, 0x080000, CRC(0a548948) SHA1(e1e4afd17811cb60401c14fbcf0465035165f4fb) )
+
+ ROM_REGION( 0x100000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "462b1.c1", 0x000000, 0x68000, CRC(58ac4d8e) SHA1(4a6a8b914a2f2918675ee2ad358d5ccaa867915a) )
+ ROM_LOAD16_BYTE( "462b1.c2", 0x000001, 0x68000, CRC(bc37b7fb) SHA1(d24012bca3dd77150998ae1a69d544d29e607eee) )
+ROM_END
+
+ROM_START( pbcrazyb2 )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "462b2.p1", 0x000000, 0x038db2, CRC(6a3227ff) SHA1(45e9006edcb44c208ee1e8221f47158d6a749667) )
+
+ NEO_SFIX_128K( "d96-04.s1", CRC(9caae538) SHA1(cf2d90a7c1a42107c0bb8b9a61397634286dbe0a) )
+
+ NEO_BIOS_AUDIO_64K( "462.m1", CRC(5e378316) SHA1(fa9a904583e00614762ad91bab83e86d52237777) )
+
+ ROM_REGION( 0x180000, "ymsnd", 0 )
+ ROM_LOAD( "083ch.v3", 0x000000, 0x100000, CRC(30ce579e) SHA1(635f7ab2178981ba38cc0080f4f97e954e552440) )
+ ROM_LOAD( "d96-05.v4", 0x100000, 0x080000, CRC(0a548948) SHA1(e1e4afd17811cb60401c14fbcf0465035165f4fb) )
+
+ ROM_REGION( 0x100000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "462b2.c1", 0x000000, 0x68000, CRC(b50a9e06) SHA1(d9f7aaddc6e48518a4ad332e718847001b5e3330) )
+ ROM_LOAD16_BYTE( "462b2.c2", 0x000001, 0x68000, CRC(427422db) SHA1(e7fed9ae3ce9c61dd85a0adafc51af727acba37d) )
+ROM_END
+
+ROM_START( pbobblendx )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "083dx.p1", 0x000000, 0x040000, CRC(5ed56e87) SHA1(b927c9fd907f90e1b5556c96f22b5245b23f07a6) )
+
+ NEO_SFIX_128K( "d96-04.s1", CRC(9caae538) SHA1(cf2d90a7c1a42107c0bb8b9a61397634286dbe0a) )
+
+ NEO_BIOS_AUDIO_64K( "083dx.m1", CRC(129e6054) SHA1(4edd18c44759e7a140705f1544413c649131c551) )
+
+ ROM_REGION( 0x380000, "ymsnd", 0 )
+ ROM_LOAD( "d96-01.v3", 0x200000, 0x100000, CRC(0840cbc4) SHA1(1adbd7aef44fa80832f63dfb8efdf69fd7256a57) )
+ ROM_LOAD( "d96-05.v4", 0x300000, 0x080000, CRC(0a548948) SHA1(e1e4afd17811cb60401c14fbcf0465035165f4fb) )
+
+ ROM_REGION( 0x100000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "d96-02.c5", 0x000000, 0x80000, CRC(e89ad494) SHA1(69c9ea415773af94ac44c48af05d55ada222b138) )
+ ROM_LOAD16_BYTE( "d96-03.c6", 0x000001, 0x80000, CRC(4b42d7eb) SHA1(042ae50a528cea21cf07771d3915c57aa16fd5af) )
+ROM_END
+
+
+ROM_START( pnyaad ) /* Decrypted C ROMs Version - Encrypted Sound */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "267-p1.p1", 0x000000, 0x100000, CRC(112fe2c0) SHA1(01420e051f0bdbd4f68ce306a3738161b96f8ba8) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "267-m1.m1", CRC(c7853ccd) SHA1(1b7a4c5093cf0fe3861ce44fd1d3b30c71ad0abe) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "267-v1.v1", 0x000000, 0x400000, CRC(e2e8e917) SHA1(7f412d55aebff3d38a225a88c632916295ab0584) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "267d.c1", 0x0000000, 0x800000, CRC(75fa4f27) SHA1(05f39dc5bedfecff67a9e5bd0bb8d09d93168f58) )
+ ROM_LOAD16_BYTE( "267d.c2", 0x0000001, 0x800000, CRC(02345689) SHA1(d40c425e73fd8dc0b0f66bf72a79f66b3bf390e1) )
+ROM_END
+
+
+ROM_START( preisle2d )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "255-p1.p1", 0x000000, 0x100000, CRC(dfa3c0f3) SHA1(793c6a46f3a794536dc0327a3f3fad20e25ab661) )
+ ROM_LOAD16_WORD_SWAP( "255-p2.sp2", 0x100000, 0x400000, CRC(42050b80) SHA1(0981a8295d43b264c2b95e5d7568bdda4e64c976) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "255-m1.m1", CRC(8efd4014) SHA1(5b73809b6e4e49264d281ef3e5004ac8a9de296d) )
+
+ ROM_REGION( 0x0600000, "ymsnd", 0 )
+ ROM_LOAD( "255-v1.v1", 0x000000, 0x400000, CRC(5a14543d) SHA1(7146ac748f846c7e2d5b0bdcf953892e39b648fe) )
+ ROM_LOAD( "255-v2.v2", 0x400000, 0x200000, CRC(6610d91a) SHA1(b2c6786920dc1712e88c3cc26d2c6c3ac2615bf4) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "255d.c1", 0x0000000, 0x800000, CRC(50fd785e) SHA1(97e03925f3060df4cfa576b6d2c2000952990530) )
+ ROM_LOAD16_BYTE( "255d.c2", 0x0000001, 0x800000, CRC(ab913f1e) SHA1(e3413d40dc4a2240ff0302eb9eff4cc64895b6ef) )
+ ROM_LOAD16_BYTE( "255d.c3", 0x1000000, 0x800000, CRC(bc0ee75c) SHA1(50c01b97d5457c2c1b8df8c0c7eda69384dea78b) )
+ ROM_LOAD16_BYTE( "255d.c4", 0x1000001, 0x800000, CRC(29908823) SHA1(2a40263f3866c06eecc209faeea7ced6641ed918) )
+ ROM_LOAD16_BYTE( "255d.c5", 0x2000000, 0x800000, CRC(83c56bca) SHA1(54bec4cce628bef3b87bbd6c0339494232a9516b) )
+ ROM_LOAD16_BYTE( "255d.c6", 0x2000001, 0x800000, CRC(59e0e805) SHA1(0d9c9b52bb0672fe70ffbb2780a9449f6a7f0984) )
+ROM_END
+
+ROM_START( preisle2px )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "255px.p1", 0x000000, 0x100000, CRC(69a69841) SHA1(01b3dbc2ae51993c4db84f62bbe2f3cf9fc90d57) )
+ ROM_LOAD16_WORD_SWAP( "255-p2.sp2", 0x100000, 0x400000, CRC(42050b80) SHA1(0981a8295d43b264c2b95e5d7568bdda4e64c976) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "255-m1.m1", CRC(8efd4014) SHA1(5b73809b6e4e49264d281ef3e5004ac8a9de296d) )
+
+ ROM_REGION( 0x0600000, "ymsnd", 0 )
+ ROM_LOAD( "255-v1.v1", 0x000000, 0x400000, CRC(5a14543d) SHA1(7146ac748f846c7e2d5b0bdcf953892e39b648fe) )
+ ROM_LOAD( "255-v2.v2", 0x400000, 0x200000, CRC(6610d91a) SHA1(b2c6786920dc1712e88c3cc26d2c6c3ac2615bf4) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "255d.c1", 0x0000000, 0x800000, CRC(50fd785e) SHA1(97e03925f3060df4cfa576b6d2c2000952990530) )
+ ROM_LOAD16_BYTE( "255d.c2", 0x0000001, 0x800000, CRC(ab913f1e) SHA1(e3413d40dc4a2240ff0302eb9eff4cc64895b6ef) )
+ ROM_LOAD16_BYTE( "255d.c3", 0x1000000, 0x800000, CRC(bc0ee75c) SHA1(50c01b97d5457c2c1b8df8c0c7eda69384dea78b) )
+ ROM_LOAD16_BYTE( "255d.c4", 0x1000001, 0x800000, CRC(29908823) SHA1(2a40263f3866c06eecc209faeea7ced6641ed918) )
+ ROM_LOAD16_BYTE( "255d.c5", 0x2000000, 0x800000, CRC(83c56bca) SHA1(54bec4cce628bef3b87bbd6c0339494232a9516b) )
+ ROM_LOAD16_BYTE( "255d.c6", 0x2000001, 0x800000, CRC(59e0e805) SHA1(0d9c9b52bb0672fe70ffbb2780a9449f6a7f0984) )
+ROM_END
+
+
+ROM_START( pspikes2cd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "068cd.p1", 0x000000, 0x100000, CRC(3920534c) SHA1(24e12b41b79145e4f3defaba7f77d1a57ffb8927) )
+
+ //NEO_SFIX_128K( "068-sg1.s1", CRC(18082299) SHA1(efe93fabe6a76a5dc8cf12f255e571480afb40a0) )
+ NEO_SFIX_128K( "068cd.s1", CRC(764ac7aa) SHA1(cc40ad276e63084ebf3c3ee224083762a47c3cf8) ) // used in many builds for fr2cd/fr2ch
+
+ NEO_BIOS_AUDIO_64K( "068cd.m1", CRC(cddc55db) SHA1(6a80c26490bbdeaddf608522c69f4cd16ba74533) )
+
+ ROM_REGION( 0x100000, "ymsnd", 0 )
+ ROM_LOAD( "068cd.v1", 0x000000, 0x100000, CRC(850ee5a0) SHA1(600a75da9b0f657df75e2d9300cfa08116a8be85) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "068cd.c1", 0x000000, 0x100000, CRC(d380883b) SHA1(0625cddb4e2fcbd3c764732a197d963299bd7d99) )
+ ROM_LOAD16_BYTE( "068cd.c2", 0x000001, 0x100000, CRC(9a5ad954) SHA1(4266760d2b6f2b7ef6e593c679b1639ec377e56b) )
+ ROM_LOAD16_BYTE( "068cd.c3", 0x200000, 0x100000, CRC(13d8a7f0) SHA1(5e7c35afe1984c67ed03f33ce22e7546861d63e6) )
+ ROM_LOAD16_BYTE( "068cd.c4", 0x200001, 0x100000, CRC(ca5af0be) SHA1(be47412b97413d3d36d4cb1acfc9fa252eb7dd70) )
+ROM_END
+
+
+ROM_START( ragnagrdbe )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "218be.p1", 0x100000, 0x100000, CRC(370a3b64) SHA1(85ddeb5ec0801c66268824236ed9ce2df51e927b) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "218-s1.s1", CRC(7d402f9a) SHA1(59ec29d03e62e7a8bef689a124a9164f43b2ace1) )
+
+ NEO_BIOS_AUDIO_128K( "218-m1.m1", CRC(17028bcf) SHA1(7a4e8f33ce9b41beac2152b8f6003f247699e2e1) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "218-v1.v1", 0x000000, 0x400000, CRC(61eee7f4) SHA1(5b11b1a0b1b74dfbc2998cbda9f8f7a5e9059957) )
+ ROM_LOAD( "218-v2.v2", 0x400000, 0x400000, CRC(6104e20b) SHA1(18e8aae3e51e141977d523a10e737ff68fe81910) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "218-c1.c1", 0x0000000, 0x400000, CRC(c31500a4) SHA1(cc82100038988872721028044ed2e9764bcc2fb0) )
+ ROM_LOAD16_BYTE( "218-c2.c2", 0x0000001, 0x400000, CRC(98aba1f9) SHA1(121276c569967e501d8e1b83747f1bdebff612ea) )
+ ROM_LOAD16_BYTE( "218-c3.c3", 0x0800000, 0x400000, CRC(833c163a) SHA1(b7e5356bbd9efab67fedb5bc671ba8bbd661fe0f) )
+ ROM_LOAD16_BYTE( "218-c4.c4", 0x0800001, 0x400000, CRC(c1a30f69) SHA1(f87ddda4695abcd14f5c2d4b7d41f72ad5b064cc) )
+ ROM_LOAD16_BYTE( "218-c5.c5", 0x1000000, 0x400000, CRC(6b6de0ff) SHA1(1abb24cb407258235f4a572cf101d0774823040b) )
+ ROM_LOAD16_BYTE( "218-c6.c6", 0x1000001, 0x400000, CRC(94beefcf) SHA1(d2ff0bac325c9c823dba68bd4f281b3b9f8f68e7) )
+ ROM_LOAD16_BYTE( "218-c7.c7", 0x1800000, 0x400000, CRC(de6f9b28) SHA1(455adb6bb986af8a00d7f32b7f4f3715fc3007f6) )
+ ROM_LOAD16_BYTE( "218-c8.c8", 0x1800001, 0x400000, CRC(d9b311f6) SHA1(ba61a7ab3f08bb7348ad6cd01e5d29ca5ee75074) )
+ROM_END
+
+ROM_START( ragnagrdbs )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "218bs.p1", 0x100000, 0x100000, CRC(befbb496) SHA1(7970d7fd151098be4625a96d8b21f66fd3d0aecf) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "218-s1.s1", CRC(7d402f9a) SHA1(59ec29d03e62e7a8bef689a124a9164f43b2ace1) )
+
+ NEO_BIOS_AUDIO_128K( "218-m1.m1", CRC(17028bcf) SHA1(7a4e8f33ce9b41beac2152b8f6003f247699e2e1) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "218-v1.v1", 0x000000, 0x400000, CRC(61eee7f4) SHA1(5b11b1a0b1b74dfbc2998cbda9f8f7a5e9059957) )
+ ROM_LOAD( "218-v2.v2", 0x400000, 0x400000, CRC(6104e20b) SHA1(18e8aae3e51e141977d523a10e737ff68fe81910) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "218-c1.c1", 0x0000000, 0x400000, CRC(c31500a4) SHA1(cc82100038988872721028044ed2e9764bcc2fb0) )
+ ROM_LOAD16_BYTE( "218-c2.c2", 0x0000001, 0x400000, CRC(98aba1f9) SHA1(121276c569967e501d8e1b83747f1bdebff612ea) )
+ ROM_LOAD16_BYTE( "218-c3.c3", 0x0800000, 0x400000, CRC(833c163a) SHA1(b7e5356bbd9efab67fedb5bc671ba8bbd661fe0f) )
+ ROM_LOAD16_BYTE( "218-c4.c4", 0x0800001, 0x400000, CRC(c1a30f69) SHA1(f87ddda4695abcd14f5c2d4b7d41f72ad5b064cc) )
+ ROM_LOAD16_BYTE( "218-c5.c5", 0x1000000, 0x400000, CRC(6b6de0ff) SHA1(1abb24cb407258235f4a572cf101d0774823040b) )
+ ROM_LOAD16_BYTE( "218-c6.c6", 0x1000001, 0x400000, CRC(94beefcf) SHA1(d2ff0bac325c9c823dba68bd4f281b3b9f8f68e7) )
+ ROM_LOAD16_BYTE( "218-c7.c7", 0x1800000, 0x400000, CRC(de6f9b28) SHA1(455adb6bb986af8a00d7f32b7f4f3715fc3007f6) )
+ ROM_LOAD16_BYTE( "218-c8.c8", 0x1800001, 0x400000, CRC(d9b311f6) SHA1(ba61a7ab3f08bb7348ad6cd01e5d29ca5ee75074) )
+ROM_END
+
+ROM_START( ragnagrdeh ) /* Operation Ragnagard - Enhance by Ydmis - (Can choose Lucifer, Eelis and Behemoth) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "218eh.p1", 0x100000, 0x100000, CRC(fb1e20df) SHA1(f8436078fe3dd495b6f513d9d42f6a42ed264d41) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "218-s1.s1", CRC(7d402f9a) SHA1(59ec29d03e62e7a8bef689a124a9164f43b2ace1) )
+
+ NEO_BIOS_AUDIO_128K( "218-m1.m1", CRC(17028bcf) SHA1(7a4e8f33ce9b41beac2152b8f6003f247699e2e1) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "218-v1.v1", 0x000000, 0x400000, CRC(61eee7f4) SHA1(5b11b1a0b1b74dfbc2998cbda9f8f7a5e9059957) )
+ ROM_LOAD( "218-v2.v2", 0x400000, 0x400000, CRC(6104e20b) SHA1(18e8aae3e51e141977d523a10e737ff68fe81910) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "218-c1.c1", 0x0000000, 0x400000, CRC(c31500a4) SHA1(cc82100038988872721028044ed2e9764bcc2fb0) )
+ ROM_LOAD16_BYTE( "218-c2.c2", 0x0000001, 0x400000, CRC(98aba1f9) SHA1(121276c569967e501d8e1b83747f1bdebff612ea) )
+ ROM_LOAD16_BYTE( "218-c3.c3", 0x0800000, 0x400000, CRC(833c163a) SHA1(b7e5356bbd9efab67fedb5bc671ba8bbd661fe0f) )
+ ROM_LOAD16_BYTE( "218-c4.c4", 0x0800001, 0x400000, CRC(c1a30f69) SHA1(f87ddda4695abcd14f5c2d4b7d41f72ad5b064cc) )
+ ROM_LOAD16_BYTE( "218-c5.c5", 0x1000000, 0x400000, CRC(6b6de0ff) SHA1(1abb24cb407258235f4a572cf101d0774823040b) )
+ ROM_LOAD16_BYTE( "218-c6.c6", 0x1000001, 0x400000, CRC(94beefcf) SHA1(d2ff0bac325c9c823dba68bd4f281b3b9f8f68e7) )
+ ROM_LOAD16_BYTE( "218-c7.c7", 0x1800000, 0x400000, CRC(de6f9b28) SHA1(455adb6bb986af8a00d7f32b7f4f3715fc3007f6) )
+ ROM_LOAD16_BYTE( "218-c8.c8", 0x1800001, 0x400000, CRC(d9b311f6) SHA1(ba61a7ab3f08bb7348ad6cd01e5d29ca5ee75074) )
+ROM_END
+
+ROM_START( ragnagrdsb )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "218sb.p1", 0x100000, 0x100000, CRC(8fd300f6) SHA1(3f456151cae94c11d1292d2deb8f68c44d9d3749) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "218-s1.s1", CRC(7d402f9a) SHA1(59ec29d03e62e7a8bef689a124a9164f43b2ace1) )
+
+ NEO_BIOS_AUDIO_128K( "218-m1.m1", CRC(17028bcf) SHA1(7a4e8f33ce9b41beac2152b8f6003f247699e2e1) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "218-v1.v1", 0x000000, 0x400000, CRC(61eee7f4) SHA1(5b11b1a0b1b74dfbc2998cbda9f8f7a5e9059957) )
+ ROM_LOAD( "218-v2.v2", 0x400000, 0x400000, CRC(6104e20b) SHA1(18e8aae3e51e141977d523a10e737ff68fe81910) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "218-c1.c1", 0x0000000, 0x400000, CRC(c31500a4) SHA1(cc82100038988872721028044ed2e9764bcc2fb0) )
+ ROM_LOAD16_BYTE( "218-c2.c2", 0x0000001, 0x400000, CRC(98aba1f9) SHA1(121276c569967e501d8e1b83747f1bdebff612ea) )
+ ROM_LOAD16_BYTE( "218-c3.c3", 0x0800000, 0x400000, CRC(833c163a) SHA1(b7e5356bbd9efab67fedb5bc671ba8bbd661fe0f) )
+ ROM_LOAD16_BYTE( "218-c4.c4", 0x0800001, 0x400000, CRC(c1a30f69) SHA1(f87ddda4695abcd14f5c2d4b7d41f72ad5b064cc) )
+ ROM_LOAD16_BYTE( "218-c5.c5", 0x1000000, 0x400000, CRC(6b6de0ff) SHA1(1abb24cb407258235f4a572cf101d0774823040b) )
+ ROM_LOAD16_BYTE( "218-c6.c6", 0x1000001, 0x400000, CRC(94beefcf) SHA1(d2ff0bac325c9c823dba68bd4f281b3b9f8f68e7) )
+ ROM_LOAD16_BYTE( "218-c7.c7", 0x1800000, 0x400000, CRC(de6f9b28) SHA1(455adb6bb986af8a00d7f32b7f4f3715fc3007f6) )
+ ROM_LOAD16_BYTE( "218-c8.c8", 0x1800001, 0x400000, CRC(d9b311f6) SHA1(ba61a7ab3f08bb7348ad6cd01e5d29ca5ee75074) )
+ROM_END
+
+
+ROM_START( s1945pd )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "254-p1.p1", 0x000000, 0x100000, CRC(ff8efcff) SHA1(dcaeaca573385c172ecc43ee6bee355359091893) )
+ ROM_LOAD16_WORD_SWAP( "254-p2.sp2", 0x100000, 0x400000, CRC(efdfd4dd) SHA1(254f3e1b546eed788f7ae919be9d1bf9702148ce) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "254-m1.m1", CRC(994b4487) SHA1(a4e645a3ababa48a8325980ff022e04a8b51b017) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "254-v1.v1", 0x000000, 0x400000, CRC(844f58fb) SHA1(e59544457be9f21481eac8b5a39b9cbb502f252d) )
+ ROM_LOAD( "254-v2.v2", 0x400000, 0x400000, CRC(d9a248f0) SHA1(dd3e0974b753e6f94d0943a002de45668a1b072b) )
+ ROM_LOAD( "254-v3.v3", 0x800000, 0x400000, CRC(0b0d2d33) SHA1(f8e76af42a997f36a40f66b39de00f68afe6a89c) )
+ ROM_LOAD( "254-v4.v4", 0xc00000, 0x400000, CRC(6d13dc91) SHA1(8433513c0b5aea61939068a25ab90efbe3e44116) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "254d.c1", 0x0000000, 0x800000, CRC(7b6902f9) SHA1(c974a3cd84fa15d5ae7c9053adbb004a9aa902cd) )
+ ROM_LOAD16_BYTE( "254d.c2", 0x0000001, 0x800000, CRC(51bd4252) SHA1(5a99563de1d83b7cd1d7ca7a50c71d5f30439276) )
+ ROM_LOAD16_BYTE( "254d.c3", 0x1000000, 0x800000, CRC(a38993e4) SHA1(0bd3bcecf17abfda7da997e348fe3b0e7a66a828) )
+ ROM_LOAD16_BYTE( "254d.c4", 0x1000001, 0x800000, CRC(d5696530) SHA1(15cbdaa729b8dd4d2489157d778379cfb0f79e51) )
+ ROM_LOAD16_BYTE( "254d.c5", 0x2000000, 0x800000, CRC(28764bd6) SHA1(21158ea89dd88abd7f73b4513b699089f7944ba5) )
+ ROM_LOAD16_BYTE( "254d.c6", 0x2000001, 0x800000, CRC(9931bdf1) SHA1(fa95fd8621403684e09f01a89f8df9ae2fa7de76) )
+ ROM_LOAD16_BYTE( "254d.c7", 0x3000000, 0x800000, CRC(6e12afcd) SHA1(ef45d9b923ec937f9c207cd50d917f0ded5b8faf) )
+ ROM_LOAD16_BYTE( "254d.c8", 0x3000001, 0x800000, CRC(178d4684) SHA1(3cbf379209c189ee48260a044dc2754035f57e14) )
+ROM_END
+
+ROM_START( s1945peh )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "254eh.p1", 0x000000, 0x100000, CRC(f776bf2a) SHA1(844602f9e2fb68c4002092592669f689728dad2d) )
+ ROM_LOAD16_WORD_SWAP( "254-p2.sp2", 0x100000, 0x400000, CRC(efdfd4dd) SHA1(254f3e1b546eed788f7ae919be9d1bf9702148ce) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "254-m1.m1", CRC(994b4487) SHA1(a4e645a3ababa48a8325980ff022e04a8b51b017) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "254-v1.v1", 0x000000, 0x400000, CRC(844f58fb) SHA1(e59544457be9f21481eac8b5a39b9cbb502f252d) )
+ ROM_LOAD( "254-v2.v2", 0x400000, 0x400000, CRC(d9a248f0) SHA1(dd3e0974b753e6f94d0943a002de45668a1b072b) )
+ ROM_LOAD( "254-v3.v3", 0x800000, 0x400000, CRC(0b0d2d33) SHA1(f8e76af42a997f36a40f66b39de00f68afe6a89c) )
+ ROM_LOAD( "254-v4.v4", 0xc00000, 0x400000, CRC(6d13dc91) SHA1(8433513c0b5aea61939068a25ab90efbe3e44116) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "254-c1.c1", 0x0000000, 0x800000, CRC(ae6fc8ef) SHA1(544ccdaee8a4a45cdce9483e30852811d2d5f3cc) )
+ ROM_LOAD16_BYTE( "254-c2.c2", 0x0000001, 0x800000, CRC(436fa176) SHA1(d70141a91a360a1b1070753086f976608fec38af) )
+ ROM_LOAD16_BYTE( "254-c3.c3", 0x1000000, 0x800000, CRC(e53ff2dc) SHA1(31f6aaffe28146d574aa72f14f90a9d968f36bc6) )
+ ROM_LOAD16_BYTE( "254-c4.c4", 0x1000001, 0x800000, CRC(818672f0) SHA1(460c6738d0ee5ae440a23fc1434fab53bbb242b5) )
+ ROM_LOAD16_BYTE( "254-c5.c5", 0x2000000, 0x800000, CRC(4580eacd) SHA1(feb96eb5e80c9125ddd7836e0939212cd3011c34) )
+ ROM_LOAD16_BYTE( "254-c6.c6", 0x2000001, 0x800000, CRC(e34970fc) SHA1(6e43e15e27bc914357f977116ab1e2d98711bb21) )
+ ROM_LOAD16_BYTE( "254-c7.c7", 0x3000000, 0x800000, CRC(f2323239) SHA1(5b3e8dd77474203be010ec7363858d806344a320) )
+ ROM_LOAD16_BYTE( "254-c8.c8", 0x3000001, 0x800000, CRC(66848c7d) SHA1(24d4ed627940a4cf8129761c1da15556e52e199c) )
+ROM_END
+
+ROM_START( s1945ph )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "254h.p1", 0x000000, 0x100000, CRC(2e106855) SHA1(53f2dd9dea00f36eaac6b56dabbb860aff4f3712) )
+ ROM_LOAD16_WORD_SWAP( "254-p2.sp2", 0x100000, 0x400000, CRC(efdfd4dd) SHA1(254f3e1b546eed788f7ae919be9d1bf9702148ce) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "254-m1.m1", CRC(994b4487) SHA1(a4e645a3ababa48a8325980ff022e04a8b51b017) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "254-v1.v1", 0x000000, 0x400000, CRC(844f58fb) SHA1(e59544457be9f21481eac8b5a39b9cbb502f252d) )
+ ROM_LOAD( "254-v2.v2", 0x400000, 0x400000, CRC(d9a248f0) SHA1(dd3e0974b753e6f94d0943a002de45668a1b072b) )
+ ROM_LOAD( "254-v3.v3", 0x800000, 0x400000, CRC(0b0d2d33) SHA1(f8e76af42a997f36a40f66b39de00f68afe6a89c) )
+ ROM_LOAD( "254-v4.v4", 0xc00000, 0x400000, CRC(6d13dc91) SHA1(8433513c0b5aea61939068a25ab90efbe3e44116) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "254-c1.c1", 0x0000000, 0x800000, CRC(ae6fc8ef) SHA1(544ccdaee8a4a45cdce9483e30852811d2d5f3cc) )
+ ROM_LOAD16_BYTE( "254-c2.c2", 0x0000001, 0x800000, CRC(436fa176) SHA1(d70141a91a360a1b1070753086f976608fec38af) )
+ ROM_LOAD16_BYTE( "254-c3.c3", 0x1000000, 0x800000, CRC(e53ff2dc) SHA1(31f6aaffe28146d574aa72f14f90a9d968f36bc6) )
+ ROM_LOAD16_BYTE( "254-c4.c4", 0x1000001, 0x800000, CRC(818672f0) SHA1(460c6738d0ee5ae440a23fc1434fab53bbb242b5) )
+ ROM_LOAD16_BYTE( "254-c5.c5", 0x2000000, 0x800000, CRC(4580eacd) SHA1(feb96eb5e80c9125ddd7836e0939212cd3011c34) )
+ ROM_LOAD16_BYTE( "254-c6.c6", 0x2000001, 0x800000, CRC(e34970fc) SHA1(6e43e15e27bc914357f977116ab1e2d98711bb21) )
+ ROM_LOAD16_BYTE( "254-c7.c7", 0x3000000, 0x800000, CRC(f2323239) SHA1(5b3e8dd77474203be010ec7363858d806344a320) )
+ ROM_LOAD16_BYTE( "254-c8.c8", 0x3000001, 0x800000, CRC(66848c7d) SHA1(24d4ed627940a4cf8129761c1da15556e52e199c) )
+ROM_END
+
+ROM_START( s1945pwe ) /* Strikers 1945 Plus - Enhance by Wesker */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "254we.p1", 0x000000, 0x100000, CRC(524eaf9c) SHA1(03e6e4495eca181c5d702df312565abd6684d6a4) )
+ ROM_LOAD16_WORD_SWAP( "254-p2.sp2", 0x100000, 0x400000, CRC(efdfd4dd) SHA1(254f3e1b546eed788f7ae919be9d1bf9702148ce) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "254-m1.m1", CRC(994b4487) SHA1(a4e645a3ababa48a8325980ff022e04a8b51b017) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "254-v1.v1", 0x000000, 0x400000, CRC(844f58fb) SHA1(e59544457be9f21481eac8b5a39b9cbb502f252d) )
+ ROM_LOAD( "254-v2.v2", 0x400000, 0x400000, CRC(d9a248f0) SHA1(dd3e0974b753e6f94d0943a002de45668a1b072b) )
+ ROM_LOAD( "254-v3.v3", 0x800000, 0x400000, CRC(0b0d2d33) SHA1(f8e76af42a997f36a40f66b39de00f68afe6a89c) )
+ ROM_LOAD( "254-v4.v4", 0xc00000, 0x400000, CRC(6d13dc91) SHA1(8433513c0b5aea61939068a25ab90efbe3e44116) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "254-c1.c1", 0x0000000, 0x800000, CRC(ae6fc8ef) SHA1(544ccdaee8a4a45cdce9483e30852811d2d5f3cc) )
+ ROM_LOAD16_BYTE( "254-c2.c2", 0x0000001, 0x800000, CRC(436fa176) SHA1(d70141a91a360a1b1070753086f976608fec38af) )
+ ROM_LOAD16_BYTE( "254-c3.c3", 0x1000000, 0x800000, CRC(e53ff2dc) SHA1(31f6aaffe28146d574aa72f14f90a9d968f36bc6) )
+ ROM_LOAD16_BYTE( "254-c4.c4", 0x1000001, 0x800000, CRC(818672f0) SHA1(460c6738d0ee5ae440a23fc1434fab53bbb242b5) )
+ ROM_LOAD16_BYTE( "254-c5.c5", 0x2000000, 0x800000, CRC(4580eacd) SHA1(feb96eb5e80c9125ddd7836e0939212cd3011c34) )
+ ROM_LOAD16_BYTE( "254-c6.c6", 0x2000001, 0x800000, CRC(e34970fc) SHA1(6e43e15e27bc914357f977116ab1e2d98711bb21) )
+ ROM_LOAD16_BYTE( "254-c7.c7", 0x3000000, 0x800000, CRC(f2323239) SHA1(5b3e8dd77474203be010ec7363858d806344a320) )
+ ROM_LOAD16_BYTE( "254-c8.c8", 0x3000001, 0x800000, CRC(66848c7d) SHA1(24d4ed627940a4cf8129761c1da15556e52e199c) )
+ROM_END
+
+
+ROM_START( savagereb )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "059b.p1", 0x100000, 0x100000, CRC(3a7fbff0) SHA1(810b318428d2c50fc2e3c31a9ee8aeed223ee4d3) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "059-s1.s1", CRC(e08978ca) SHA1(55152cb9bd0403ae8656b93a6b1522dba5db6d1a) )
+
+ NEO_BIOS_AUDIO_128K( "059-m1.m1", CRC(29992eba) SHA1(187be624abe8670503edb235ff21ae8fdc3866e0) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "059-v1.v1", 0x000000, 0x200000, CRC(530c50fd) SHA1(29401cee7f7d2c199c7cb58092e86b28205e81ad) )
+ ROM_LOAD( "059-v2.v2", 0x200000, 0x200000, CRC(eb6f1cdb) SHA1(7a311388315ea543babf872f62219fdc4d39d013) )
+ ROM_LOAD( "059-v3.v3", 0x400000, 0x200000, CRC(7038c2f9) SHA1(c1d6f86b24feba03fe009b58199d2eeabe572f4e) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "059-c1.c1", 0x000000, 0x200000, CRC(763ba611) SHA1(d3262e0332c894ee149c5963f882cc5e5562ee57) )
+ ROM_LOAD16_BYTE( "059-c2.c2", 0x000001, 0x200000, CRC(e05e8ca6) SHA1(986a9b16ff92bc101ab567d2d01348e093abea9a) )
+ ROM_LOAD16_BYTE( "059-c3.c3", 0x400000, 0x200000, CRC(3e4eba4b) SHA1(770adec719e63a30ebe9522cc7576caaca44f3b2) )
+ ROM_LOAD16_BYTE( "059-c4.c4", 0x400001, 0x200000, CRC(3c2a3808) SHA1(698adcec0715c9e78b6286be38debf0ce28fd644) )
+ ROM_LOAD16_BYTE( "059-c5.c5", 0x800000, 0x200000, CRC(59013f9e) SHA1(5bf48fcc450da72a8c4685f6e3887e67eae49988) )
+ ROM_LOAD16_BYTE( "059-c6.c6", 0x800001, 0x200000, CRC(1c8d5def) SHA1(475d89a5c4922a9f6bd756d23c2624d57b6e9d62) )
+ ROM_LOAD16_BYTE( "059-c7.c7", 0xc00000, 0x200000, CRC(c88f7035) SHA1(c29a428b741f4fe7b71a3bc23c87925b6bc1ca8f) )
+ ROM_LOAD16_BYTE( "059-c8.c8", 0xc00001, 0x200000, CRC(484ce3ba) SHA1(4f21ed20ce6e2b67e2b079404599310c94f591ff) )
+ROM_END
+
+ROM_START( savageredb ) /* Savage Reign - Hack by Dodowang - (Debug menue unlocked - press select to change stage, p1 and p2) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "059db.p1", 0x100000, 0x100000, CRC(83be1cfc) SHA1(ec85c5d8416c7895ec7b47a9be50f62dc2c88703) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "059-s1.s1", CRC(e08978ca) SHA1(55152cb9bd0403ae8656b93a6b1522dba5db6d1a) )
+
+ NEO_BIOS_AUDIO_128K( "059-m1.m1", CRC(29992eba) SHA1(187be624abe8670503edb235ff21ae8fdc3866e0) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "059-v1.v1", 0x000000, 0x200000, CRC(530c50fd) SHA1(29401cee7f7d2c199c7cb58092e86b28205e81ad) )
+ ROM_LOAD( "059-v2.v2", 0x200000, 0x200000, CRC(eb6f1cdb) SHA1(7a311388315ea543babf872f62219fdc4d39d013) )
+ ROM_LOAD( "059-v3.v3", 0x400000, 0x200000, CRC(7038c2f9) SHA1(c1d6f86b24feba03fe009b58199d2eeabe572f4e) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "059-c1.c1", 0x000000, 0x200000, CRC(763ba611) SHA1(d3262e0332c894ee149c5963f882cc5e5562ee57) )
+ ROM_LOAD16_BYTE( "059-c2.c2", 0x000001, 0x200000, CRC(e05e8ca6) SHA1(986a9b16ff92bc101ab567d2d01348e093abea9a) )
+ ROM_LOAD16_BYTE( "059-c3.c3", 0x400000, 0x200000, CRC(3e4eba4b) SHA1(770adec719e63a30ebe9522cc7576caaca44f3b2) )
+ ROM_LOAD16_BYTE( "059-c4.c4", 0x400001, 0x200000, CRC(3c2a3808) SHA1(698adcec0715c9e78b6286be38debf0ce28fd644) )
+ ROM_LOAD16_BYTE( "059-c5.c5", 0x800000, 0x200000, CRC(59013f9e) SHA1(5bf48fcc450da72a8c4685f6e3887e67eae49988) )
+ ROM_LOAD16_BYTE( "059-c6.c6", 0x800001, 0x200000, CRC(1c8d5def) SHA1(475d89a5c4922a9f6bd756d23c2624d57b6e9d62) )
+ ROM_LOAD16_BYTE( "059-c7.c7", 0xc00000, 0x200000, CRC(c88f7035) SHA1(c29a428b741f4fe7b71a3bc23c87925b6bc1ca8f) )
+ ROM_LOAD16_BYTE( "059-c8.c8", 0xc00001, 0x200000, CRC(484ce3ba) SHA1(4f21ed20ce6e2b67e2b079404599310c94f591ff) )
+ROM_END
+
+
+ROM_START( sdodgebp )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "208p.p1", 0x100000, 0x100000, CRC(e705b86d) SHA1(a098fec800f48670514ee2b15551514009cde297) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "208-s1.s1", CRC(64abd6b3) SHA1(0315d724e4d83a44ce84c531ff9b8c398363c039) )
+
+ NEO_BIOS_AUDIO_128K( "208-m1.m1", CRC(0a5f3325) SHA1(04e0236df478a5452654c823dcb42fea65b6a718) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "208-v1.v1", 0x000000, 0x400000, CRC(e7899a24) SHA1(3e75b449898fee73fbacf58d70e3a460b9e0c573) )
+
+ ROM_REGION( 0x0c00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "208-c1.c1", 0x0000000, 0x400000, CRC(93d8619b) SHA1(6588cb67e38722d5843fb29943d92e3905101aff) )
+ ROM_LOAD16_BYTE( "208-c2.c2", 0x0000001, 0x400000, CRC(1c737bb6) SHA1(8e341989981a713e61dfed8bde9a6459583ef46d) )
+ ROM_LOAD16_BYTE( "208-c3.c3", 0x0800000, 0x200000, CRC(14cb1703) SHA1(a46acec03c1b2351fe36810628f02b7c848d13db) )
+ ROM_LOAD16_BYTE( "208-c4.c4", 0x0800001, 0x200000, CRC(c7165f19) SHA1(221f03de893dca0e5305fa17aa94f96c67713818) )
+ROM_END
+
+
+ROM_START( shocktr2px )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "246px.p1", 0x000000, 0x100000, CRC(6e55a59c) SHA1(092c39ee9c28e4b45940ae2d43dc92922e6a9eba) )
+ ROM_LOAD16_WORD_SWAP( "246-p2.sp2", 0x100000, 0x400000, CRC(72ea04c3) SHA1(4fb1d22c30f5f3db4637dd92a4d2705c88de399d) )
+
+ NEO_SFIX_128K( "246-s1.s1", CRC(2a360637) SHA1(431b43da5377dd189e51bd93d88d8a24d1b5090a) )
+
+ NEO_BIOS_AUDIO_128K( "246-m1.m1", CRC(d0604ad1) SHA1(fae3cd52a177eadd5f5775ace957cc0f8301e65d) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "246-v1.v1", 0x000000, 0x400000, CRC(16986fc6) SHA1(cff3103dadf2f4390460456a5bd3fb5f28e21f6a) )
+ ROM_LOAD( "246-v2.v2", 0x400000, 0x400000, CRC(ada41e83) SHA1(78e37ffaaa5679c8775a3a71f6df7a0d15082bdc) )
+ ROM_LOAD( "246-v3.v3", 0x800000, 0x200000, CRC(a05ba5db) SHA1(09d739cad323d918f4196f91b654627fcafd8f4d) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "246-c1.c1", 0x0000000, 0x800000, CRC(47ac9ec5) SHA1(2d9eea11ba87baa23b18a1a3f607dc137846e807) )
+ ROM_LOAD16_BYTE( "246-c2.c2", 0x0000001, 0x800000, CRC(7bcab64f) SHA1(08d0edddd14b53d606e9a7a46aa4fb4e7398e0d0) )
+ ROM_LOAD16_BYTE( "246-c3.c3", 0x1000000, 0x800000, CRC(db2f73e8) SHA1(8d0c3473a8b2a4e28fed1b74beb2e025b7e61867) )
+ ROM_LOAD16_BYTE( "246-c4.c4", 0x1000001, 0x800000, CRC(5503854e) SHA1(a0f2e7c609cbb2aa43493a39d7dcaeca3d511d26) )
+ ROM_LOAD16_BYTE( "246-c5.c5", 0x2000000, 0x800000, CRC(055b3701) SHA1(97f5e92538d1f2e437dcb3f80e56e1230287e8d1) )
+ ROM_LOAD16_BYTE( "246-c6.c6", 0x2000001, 0x800000, CRC(7e2caae1) SHA1(d9de14e3e323664a8c5b7f1df1ba9ec7dd0e6a46) )
+ROM_END
+
+ROM_START( shocktr2w ) /* you must use unibios to select AES */ /* Shock Troopers - 2nd Squad - Hack by Wesker */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "246w.p1", 0x000000, 0x100000, CRC(0af69336) SHA1(680f348f15177d14b7885d9976cf1bac4ae9eaf3) )
+ ROM_LOAD16_WORD_SWAP( "246-p2.sp2", 0x100000, 0x400000, CRC(72ea04c3) SHA1(4fb1d22c30f5f3db4637dd92a4d2705c88de399d) )
+
+ NEO_SFIX_128K( "246-s1.s1", CRC(2a360637) SHA1(431b43da5377dd189e51bd93d88d8a24d1b5090a) )
+
+ ROM_REGION16_BE( 0x20000, "mainbios", 0 )
+ ROM_LOAD16_WORD_SWAP( "uni-bios_2_3o.rom", 0x00000, 0x20000, CRC(601720ae) SHA1(1b8a72c720cdb5ee3f1d735bbcf447b09204b8d9) )
+
+ ROM_REGION( 0x20000, "audiobios", 0 )
+ ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) )
+ ROM_REGION( 0x30000, "audiocpu", 0 )
+ ROM_LOAD( "246-m1.m1", 0x00000, 0x20000, CRC(d0604ad1) SHA1(fae3cd52a177eadd5f5775ace957cc0f8301e65d) )
+ ROM_RELOAD( 0x10000, 0x20000 )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "246-v1.v1", 0x000000, 0x400000, CRC(16986fc6) SHA1(cff3103dadf2f4390460456a5bd3fb5f28e21f6a) )
+ ROM_LOAD( "246-v2.v2", 0x400000, 0x400000, CRC(ada41e83) SHA1(78e37ffaaa5679c8775a3a71f6df7a0d15082bdc) )
+ ROM_LOAD( "246-v3.v3", 0x800000, 0x200000, CRC(a05ba5db) SHA1(09d739cad323d918f4196f91b654627fcafd8f4d) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "246-c1.c1", 0x0000000, 0x800000, CRC(47ac9ec5) SHA1(2d9eea11ba87baa23b18a1a3f607dc137846e807) )
+ ROM_LOAD16_BYTE( "246-c2.c2", 0x0000001, 0x800000, CRC(7bcab64f) SHA1(08d0edddd14b53d606e9a7a46aa4fb4e7398e0d0) )
+ ROM_LOAD16_BYTE( "246-c3.c3", 0x1000000, 0x800000, CRC(db2f73e8) SHA1(8d0c3473a8b2a4e28fed1b74beb2e025b7e61867) )
+ ROM_LOAD16_BYTE( "246-c4.c4", 0x1000001, 0x800000, CRC(5503854e) SHA1(a0f2e7c609cbb2aa43493a39d7dcaeca3d511d26) )
+ ROM_LOAD16_BYTE( "246-c5.c5", 0x2000000, 0x800000, CRC(055b3701) SHA1(97f5e92538d1f2e437dcb3f80e56e1230287e8d1) )
+ ROM_LOAD16_BYTE( "246-c6.c6", 0x2000001, 0x800000, CRC(7e2caae1) SHA1(d9de14e3e323664a8c5b7f1df1ba9ec7dd0e6a46) )
+ROM_END
+
+
+ROM_START( shocktrosp )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "238sp.p1", 0x000000, 0x100000, CRC(6ee78d00) SHA1(8847879749e55f7b24e149a7e24ec301f7b56929) )
+ ROM_LOAD16_WORD_SWAP( "238-p2.sp2", 0x100000, 0x400000, CRC(5b4a09c5) SHA1(de04036cba2da4bb2da73d902d1822b82b4f67a9) )
+
+ NEO_SFIX_128K( "238-s1.s1", CRC(1f95cedb) SHA1(adfa74868147fd260481e4c387d254d3b6de83f4) )
+
+ NEO_BIOS_AUDIO_128K( "238-m1.m1", CRC(075b9518) SHA1(ac21b88a860b9572bf24432b4cadcc96d108055d) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "238-v1.v1", 0x000000, 0x400000, CRC(260c0bef) SHA1(9c4f80ce4bb205afed11bb8b8926d20748eb5512) )
+ ROM_LOAD( "238-v2.v2", 0x400000, 0x200000, CRC(4ad7d59e) SHA1(bfdf2684f7f38af4e75ad0068ff9463dc2601598) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "238-c1.c1", 0x0000000, 0x400000, CRC(90c6a181) SHA1(a381bc8449718814ff12b3a4f7fc4d1bb7ea1631) )
+ ROM_LOAD16_BYTE( "238-c2.c2", 0x0000001, 0x400000, CRC(888720f0) SHA1(cd4d65df8d3ef0dbcca2b7f3f803f45c457f5beb) )
+ ROM_LOAD16_BYTE( "238-c3.c3", 0x0800000, 0x400000, CRC(2c393aa3) SHA1(1cd7cebe5861a2d65f1d6615dd7752162e573a02) )
+ ROM_LOAD16_BYTE( "238-c4.c4", 0x0800001, 0x400000, CRC(b9e909eb) SHA1(33cc9b2d13e4ed2ab6040ff582a53dc9bca402e0) )
+ ROM_LOAD16_BYTE( "238-c5.c5", 0x1000000, 0x400000, CRC(c22c68eb) SHA1(a4b04118b1b1909d3b76be8d9ee5d97db6120600) )
+ ROM_LOAD16_BYTE( "238-c6.c6", 0x1000001, 0x400000, CRC(119323cd) SHA1(05a9d4b1fb4cc963b25452ff6f81e296e0c0b2a1) )
+ ROM_LOAD16_BYTE( "238-c7.c7", 0x1800000, 0x400000, CRC(a72ce7ed) SHA1(05b151554bd7af09ccf554a17bc3c75a0512faaf) )
+ ROM_LOAD16_BYTE( "238-c8.c8", 0x1800001, 0x400000, CRC(1c7c2efb) SHA1(b055ee43cbdaf9a3cb19e4e1f9dd2c40bde69d70) )
+ROM_END
+
+
+ROM_START( sonicwi2eh )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "075eh.p1", 0x100000, 0x100000, CRC(150cbac6) SHA1(66009a8be55d70345569c1ba23d06a8b1c3e4641) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "075-s1.s1", CRC(c9eec367) SHA1(574e1afe7e0d54610c145131106e59ba2894eeb7) )
+
+ NEO_BIOS_AUDIO_128K( "075-m1.m1", CRC(bb828df1) SHA1(eab8e2868173bdaac7c7ed97305a9aa1033fd303) )
+
+ ROM_REGION( 0x300000, "ymsnd", 0 )
+ ROM_LOAD( "075-v1.v1", 0x000000, 0x200000, CRC(7577e949) SHA1(3ba9f11094dd0cf519f33a16016cfae0d2c6629c) )
+ ROM_LOAD( "075-v2.v2", 0x200000, 0x100000, CRC(021760cd) SHA1(8a24e38f1d4982c4dcd82718995571ac94cbb390) )
+
+ ROM_REGION( 0x800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "075-c1.c1", 0x000000, 0x200000, CRC(3278e73e) SHA1(d9e6c8a3a5213690a1b8747d27806d8ac5aac405) )
+ ROM_LOAD16_BYTE( "075-c2.c2", 0x000001, 0x200000, CRC(fe6355d6) SHA1(ca72fff7a908b6d9325761079ff2a0e28f34cf89) )
+ ROM_LOAD16_BYTE( "075-c3.c3", 0x400000, 0x200000, CRC(c1b438f1) SHA1(b3751c5b426bca0fcc3a58bdb86712c22ef908ab) )
+ ROM_LOAD16_BYTE( "075-c4.c4", 0x400001, 0x200000, CRC(1f777206) SHA1(e29c5ae65ebdcc1167a894306d2446ce909639da) )
+ROM_END
+
+ROM_START( sonicwi2px )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "075px.p1", 0x100000, 0x100000, CRC(22e4dd5f) SHA1(4f9511c7c2b98db306fece35ada47beb7f3ae4c5) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "075-s1.s1", CRC(c9eec367) SHA1(574e1afe7e0d54610c145131106e59ba2894eeb7) )
+
+ NEO_BIOS_AUDIO_128K( "075-m1.m1", CRC(bb828df1) SHA1(eab8e2868173bdaac7c7ed97305a9aa1033fd303) )
+
+ ROM_REGION( 0x300000, "ymsnd", 0 )
+ ROM_LOAD( "075-v1.v1", 0x000000, 0x200000, CRC(7577e949) SHA1(3ba9f11094dd0cf519f33a16016cfae0d2c6629c) )
+ ROM_LOAD( "075-v2.v2", 0x200000, 0x100000, CRC(021760cd) SHA1(8a24e38f1d4982c4dcd82718995571ac94cbb390) )
+
+ ROM_REGION( 0x800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "075-c1.c1", 0x000000, 0x200000, CRC(3278e73e) SHA1(d9e6c8a3a5213690a1b8747d27806d8ac5aac405) )
+ ROM_LOAD16_BYTE( "075-c2.c2", 0x000001, 0x200000, CRC(fe6355d6) SHA1(ca72fff7a908b6d9325761079ff2a0e28f34cf89) )
+ ROM_LOAD16_BYTE( "075-c3.c3", 0x400000, 0x200000, CRC(c1b438f1) SHA1(b3751c5b426bca0fcc3a58bdb86712c22ef908ab) )
+ ROM_LOAD16_BYTE( "075-c4.c4", 0x400001, 0x200000, CRC(1f777206) SHA1(e29c5ae65ebdcc1167a894306d2446ce909639da) )
+ROM_END
+
+
+ROM_START( sonicwi3eh )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "097eh.p1", 0x100000, 0x100000, CRC(ebd9674e) SHA1(9dac667dae3e31f0d06f815f8dd1ede11966c43e) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "097-s1.s1", CRC(8dd66743) SHA1(39214bb25a1d5b44a8524010be05bf5a0211981f) )
+
+ NEO_BIOS_AUDIO_128K( "097-m1.m1", CRC(b20e4291) SHA1(0e891ab53f9fded510295dfc7818bc59b4a9dd97) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "097-v1.v1", 0x000000, 0x400000, CRC(6f885152) SHA1(8175804d5c1420c5d37b733d4a8fa2aa81e59f1b) )
+ ROM_LOAD( "097-v2.v2", 0x400000, 0x200000, CRC(3359e868) SHA1(b7efd9f1a6dab33271fe8356bcc863aeae1d3ed8) )
+
+ ROM_REGION( 0xc00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "097-c1.c1", 0x000000, 0x400000, CRC(33d0d589) SHA1(fe4aa95555e478ceb2d28fd27d83ee06cd09520c) )
+ ROM_LOAD16_BYTE( "097-c2.c2", 0x000001, 0x400000, CRC(186f8b43) SHA1(f5cced93e21dc841b00ebeaa30786cb0e047bd9a) )
+ ROM_LOAD16_BYTE( "097-c3.c3", 0x800000, 0x200000, CRC(c339fff5) SHA1(58dfd1e30dc0ad3f816a5dbd1cc7e7ccbb792c53) )
+ ROM_LOAD16_BYTE( "097-c4.c4", 0x800001, 0x200000, CRC(84a40c6e) SHA1(061a13fba5fed883e5ee9566cedc208df2511bcf) )
+ROM_END
+
+ROM_START( sonicwi3h )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "097h.p1", 0x100000, 0x100000, CRC(a09735bd) SHA1(ab7b8f14d4e07933bed52219b0c161cfd85601a0) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "097-s1.s1", CRC(8dd66743) SHA1(39214bb25a1d5b44a8524010be05bf5a0211981f) )
+
+ NEO_BIOS_AUDIO_128K( "097-m1.m1", CRC(b20e4291) SHA1(0e891ab53f9fded510295dfc7818bc59b4a9dd97) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "097-v1.v1", 0x000000, 0x400000, CRC(6f885152) SHA1(8175804d5c1420c5d37b733d4a8fa2aa81e59f1b) )
+ ROM_LOAD( "097-v2.v2", 0x400000, 0x200000, CRC(3359e868) SHA1(b7efd9f1a6dab33271fe8356bcc863aeae1d3ed8) )
+
+ ROM_REGION( 0xc00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "097-c1.c1", 0x000000, 0x400000, CRC(33d0d589) SHA1(fe4aa95555e478ceb2d28fd27d83ee06cd09520c) )
+ ROM_LOAD16_BYTE( "097-c2.c2", 0x000001, 0x400000, CRC(186f8b43) SHA1(f5cced93e21dc841b00ebeaa30786cb0e047bd9a) )
+ ROM_LOAD16_BYTE( "097-c3.c3", 0x800000, 0x200000, CRC(c339fff5) SHA1(58dfd1e30dc0ad3f816a5dbd1cc7e7ccbb792c53) )
+ ROM_LOAD16_BYTE( "097-c4.c4", 0x800001, 0x200000, CRC(84a40c6e) SHA1(061a13fba5fed883e5ee9566cedc208df2511bcf) )
+ROM_END
+
+ROM_START( sonicwi3px )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "097px.p1", 0x100000, 0x100000, CRC(da80771c) SHA1(654d7d04d03cf2a30fb9cc612cf099bbea852403) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "097-s1.s1", CRC(8dd66743) SHA1(39214bb25a1d5b44a8524010be05bf5a0211981f) )
+
+ NEO_BIOS_AUDIO_128K( "097-m1.m1", CRC(b20e4291) SHA1(0e891ab53f9fded510295dfc7818bc59b4a9dd97) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "097-v1.v1", 0x000000, 0x400000, CRC(6f885152) SHA1(8175804d5c1420c5d37b733d4a8fa2aa81e59f1b) )
+ ROM_LOAD( "097-v2.v2", 0x400000, 0x200000, CRC(3359e868) SHA1(b7efd9f1a6dab33271fe8356bcc863aeae1d3ed8) )
+
+ ROM_REGION( 0xc00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "097-c1.c1", 0x000000, 0x400000, CRC(33d0d589) SHA1(fe4aa95555e478ceb2d28fd27d83ee06cd09520c) )
+ ROM_LOAD16_BYTE( "097-c2.c2", 0x000001, 0x400000, CRC(186f8b43) SHA1(f5cced93e21dc841b00ebeaa30786cb0e047bd9a) )
+ ROM_LOAD16_BYTE( "097-c3.c3", 0x800000, 0x200000, CRC(c339fff5) SHA1(58dfd1e30dc0ad3f816a5dbd1cc7e7ccbb792c53) )
+ ROM_LOAD16_BYTE( "097-c4.c4", 0x800001, 0x200000, CRC(84a40c6e) SHA1(061a13fba5fed883e5ee9566cedc208df2511bcf) )
+ROM_END
+
+
+ROM_START( spinmasth )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "062h.p1", 0x000000, 0x100000, CRC(51d531ee) SHA1(bc8b16ddc76d14de9d239efddd3a1cdfbf207521) )
+ ROM_LOAD16_WORD_SWAP( "062-p2.sp2", 0x100000, 0x100000, CRC(f025ab77) SHA1(4944be04648296d0b93cfe4c5ca7b9cede072cff) )
+
+ NEO_SFIX_128K( "062-s1.s1", CRC(289e2bbe) SHA1(f52c7f2bffc89df3130b3cabd200408509a28cdc) )
+
+ NEO_BIOS_AUDIO_128K( "062-m1.m1", CRC(76108b2f) SHA1(08c89a8b746dbb10ff885b41cde344173c2e3699) )
+
+ ROM_REGION( 0x100000, "ymsnd", 0 )
+ ROM_LOAD( "062-v1.v1", 0x000000, 0x100000, CRC(cc281aef) SHA1(68be154b3e25f837afb4a477600dbe0ee69bec44) )
+
+ ROM_REGION( 0x800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "062-c1.c1", 0x000000, 0x100000, CRC(a9375aa2) SHA1(69218d8f1361e9ea709da11e3f15fe46b1db7181) )
+ ROM_LOAD16_BYTE( "062-c2.c2", 0x000001, 0x100000, CRC(0e73b758) SHA1(a247f736fbca0b609818dca4844ebb8442753bc1) )
+ ROM_LOAD16_BYTE( "062-c3.c3", 0x200000, 0x100000, CRC(df51e465) SHA1(171953c7a870f3ab96e0f875117ee7343931fd38) )
+ ROM_LOAD16_BYTE( "062-c4.c4", 0x200001, 0x100000, CRC(38517e90) SHA1(f7c64b94ac20f5146f9bb48b53cb2b30fe5b8f8c) )
+ ROM_LOAD16_BYTE( "062-c5.c5", 0x400000, 0x100000, CRC(7babd692) SHA1(0d4cd5006baa8d951cd2b6194ace566fa2845b8a) )
+ ROM_LOAD16_BYTE( "062-c6.c6", 0x400001, 0x100000, CRC(cde5ade5) SHA1(5899ef5dfcdbb8cf8c6aba748dbb52f3c5fed5fe) )
+ ROM_LOAD16_BYTE( "062-c7.c7", 0x600000, 0x100000, CRC(bb2fd7c0) SHA1(cce11c4cf39ac60143235ff89261806df339dae5) )
+ ROM_LOAD16_BYTE( "062-c8.c8", 0x600001, 0x100000, CRC(8d7be933) SHA1(e7097cfa26a959f90721e2e8368ceb47ea9db661) )
+ROM_END
+
+ROM_START( spinmastpx )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "062px.p1", 0x000000, 0x100000, CRC(beea0162) SHA1(7e61e690bb5664d49149179309a58b71c5e75b75) )
+ ROM_LOAD16_WORD_SWAP( "062-p2.sp2", 0x100000, 0x100000, CRC(f025ab77) SHA1(4944be04648296d0b93cfe4c5ca7b9cede072cff) )
+
+ NEO_SFIX_128K( "062-s1.s1", CRC(289e2bbe) SHA1(f52c7f2bffc89df3130b3cabd200408509a28cdc) )
+
+ NEO_BIOS_AUDIO_128K( "062-m1.m1", CRC(76108b2f) SHA1(08c89a8b746dbb10ff885b41cde344173c2e3699) )
+
+ ROM_REGION( 0x100000, "ymsnd", 0 )
+ ROM_LOAD( "062-v1.v1", 0x000000, 0x100000, CRC(cc281aef) SHA1(68be154b3e25f837afb4a477600dbe0ee69bec44) )
+
+ ROM_REGION( 0x800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "062-c1.c1", 0x000000, 0x100000, CRC(a9375aa2) SHA1(69218d8f1361e9ea709da11e3f15fe46b1db7181) )
+ ROM_LOAD16_BYTE( "062-c2.c2", 0x000001, 0x100000, CRC(0e73b758) SHA1(a247f736fbca0b609818dca4844ebb8442753bc1) )
+ ROM_LOAD16_BYTE( "062-c3.c3", 0x200000, 0x100000, CRC(df51e465) SHA1(171953c7a870f3ab96e0f875117ee7343931fd38) )
+ ROM_LOAD16_BYTE( "062-c4.c4", 0x200001, 0x100000, CRC(38517e90) SHA1(f7c64b94ac20f5146f9bb48b53cb2b30fe5b8f8c) )
+ ROM_LOAD16_BYTE( "062-c5.c5", 0x400000, 0x100000, CRC(7babd692) SHA1(0d4cd5006baa8d951cd2b6194ace566fa2845b8a) )
+ ROM_LOAD16_BYTE( "062-c6.c6", 0x400001, 0x100000, CRC(cde5ade5) SHA1(5899ef5dfcdbb8cf8c6aba748dbb52f3c5fed5fe) )
+ ROM_LOAD16_BYTE( "062-c7.c7", 0x600000, 0x100000, CRC(bb2fd7c0) SHA1(cce11c4cf39ac60143235ff89261806df339dae5) )
+ ROM_LOAD16_BYTE( "062-c8.c8", 0x600001, 0x100000, CRC(8d7be933) SHA1(e7097cfa26a959f90721e2e8368ceb47ea9db661) )
+ROM_END
+
+
+ROM_START( ssidekicd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "052cd.p1", 0x000000, 0x080000, CRC(5cdf0a46) SHA1(60b200eb8d7a217d1f4ce9a51d3c9730d5259fac) )
+
+ NEO_SFIX_128K( "052-s1.s1", CRC(97689804) SHA1(fa8dab3b3353d7115a0368f3fc749950c0186fbc) )
+
+ NEO_BIOS_AUDIO_64K( "052cd.m1", CRC(f47f31a4) SHA1(50eaf535aec5f8f983e13c24f547d6d2d1004f39) )
+
+ ROM_REGION( 0x100000, "ymsnd", 0 )
+ ROM_LOAD( "052cd.v1", 0x000000, 0x100000, CRC(a6944870) SHA1(3c46d028998a57fa8bd46327f3497af1233698b0) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "052cd.c1", 0x000000, 0x100000, CRC(bf1b962b) SHA1(9bdec8df91a6713d6ce4dbc1ba5028eec74d4cb0) )
+ ROM_LOAD16_BYTE( "052cd.c2", 0x000001, 0x100000, CRC(c3ce856b) SHA1(326c4a17c62ea97acc9a38e3b144dc9bc69158d4) )
+ ROM_LOAD16_BYTE( "052cd.c3", 0x200000, 0x100000, CRC(7642df56) SHA1(f65cee51d4d8734982d305a1c5c4ddd4e064ebf7) )
+ ROM_LOAD16_BYTE( "052cd.c4", 0x200001, 0x100000, CRC(265222dc) SHA1(d52a757779d74c2e32fd28bbc953ff8053f33a6c) )
+ROM_END
+
+
+ROM_START( strhoopcd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "079cd.p1", 0x000000, 0x100000, CRC(16795f7f) SHA1(977a6c31ca6553e1cfa3402a5e541bab4c2244be) )
+
+ NEO_SFIX_128K( "079cd.s1", CRC(c65a5fe8) SHA1(ec8e8c49994ce9286ea5160c2450912da0746fb0) )
+
+ NEO_BIOS_AUDIO_64K( "079cd.m1", CRC(1a5f08db) SHA1(3121ed568fba4c30794b00d326ddb0c750b7f4ee) )
+
+ ROM_REGION( 0x280000, "ymsnd", 0 )
+ ROM_LOAD( "079-v1.v1", 0x000000, 0x200000, CRC(718a2400) SHA1(cefc5d0b302bd4a87ab1fa244ade4482c23c6806) )
+ ROM_LOAD( "079cd.v2", 0x200000, 0x080000, CRC(b19884f8) SHA1(5fe910f2029da19ddab4dc95c2292d7fbb086741) )
+
+ ROM_REGION( 0x800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "079cd.c1", 0x000000, 0x200000, CRC(c3ebd902) SHA1(daae0ae972ecc0c19b2e6a439e5f2547286f190a) )
+ ROM_LOAD16_BYTE( "079cd.c2", 0x000001, 0x200000, CRC(1a471f80) SHA1(725864d734ec9ab2933a46a6dc4d18dbc31fe2c7) )
+ ROM_LOAD16_BYTE( "079cd.c3", 0x680000, 0x080000, CRC(4d490ecc) SHA1(8ced8f547799b613edd95acabd6f8cb28c41eab5) )
+ ROM_LOAD16_BYTE( "079cd.c4", 0x680001, 0x080000, CRC(e223d27c) SHA1(2e195fea0d5808e90f154412b5e80b430e6341e2) )
+ROM_END
+
+
+ROM_START( superspycd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "011cd.p1", 0x000000, 0x0a0000, CRC(6ef37a8c) SHA1(b65328a4d9af099dabdca931a7487b07122e9433) )
+
+ NEO_SFIX_128K( "011-s1.s1", CRC(ec5fdb96) SHA1(8003028025ac7bf531e568add6ba66c02d0b7e84) )
+
+ NEO_BIOS_AUDIO_64K( "011cd.m1", CRC(543a711a) SHA1(2d4a5b0a9c7d10c3b182c3a887b9ff7f50a2937a) )
+
+ ROM_REGION( 0x100000, "ymsnd", 0 )
+ ROM_LOAD( "011cd.v1", 0x000000, 0x100000, CRC(9d697082) SHA1(92497e97e1755b930bd960d861f4c5289af7d78d) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "011-c1.c1", 0x000000, 0x100000, CRC(cae7be57) SHA1(43b35b349594535689c358d9f324adda55e5281a) )
+ ROM_LOAD16_BYTE( "011-c2.c2", 0x000001, 0x100000, CRC(9e29d986) SHA1(b417763bad1acf76116cd56f4203c2d2677e22e5) )
+ ROM_LOAD16_BYTE( "011-c3.c3", 0x200000, 0x100000, CRC(14832ff2) SHA1(1179792d773d97d5e45e7d8f009051d362d72e24) )
+ ROM_LOAD16_BYTE( "011-c4.c4", 0x200001, 0x100000, CRC(b7f63162) SHA1(077a81b2bb0a8f17c9df6945078608f74432877a) )
+ROM_END
+
+
+ROM_START( tophuntrpx )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "046px.p1", 0x000000, 0x100000, CRC(949dbb78) SHA1(fb005e60ff693c6656e33cd0641c7300826a6b54) )
+ ROM_LOAD16_WORD_SWAP( "046-p2.sp2", 0x100000, 0x100000, CRC(f182cb3e) SHA1(6b4e0af5d4e623f0682f37ff5c69e5b705e20028) )
+
+ NEO_SFIX_128K( "046-s1.s1", CRC(14b01d7b) SHA1(618ce75c25d6cc86a3b46bd64a0aa34ab82f75ae) )
+
+ NEO_BIOS_AUDIO_128K( "046-m1.m1", CRC(3f84bb9f) SHA1(07446040871d11da3c2217ee9d1faf8c3cae7420) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "046-v1.v1", 0x000000, 0x100000, CRC(c1f9c2db) SHA1(bed95a76afefa46503a12e0f0a9787c4c967ac50) )
+ ROM_LOAD( "046-v2.v2", 0x100000, 0x100000, CRC(56254a64) SHA1(1cf049cb4c414419859d2c8ee714317a35a85251) )
+ ROM_LOAD( "046-v3.v3", 0x200000, 0x100000, CRC(58113fb1) SHA1(40972982a63c7adecef840f9882f4165da723ab6) )
+ ROM_LOAD( "046-v4.v4", 0x300000, 0x100000, CRC(4f54c187) SHA1(63a76949301b83bdd44aa1a4462f642ab9ca3c0b) )
+
+ ROM_REGION( 0x800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "046-c1.c1", 0x000000, 0x100000, CRC(fa720a4a) SHA1(364913b9fa40d46e4e39ae3cdae914cfd0de137d) )
+ ROM_LOAD16_BYTE( "046-c2.c2", 0x000001, 0x100000, CRC(c900c205) SHA1(50274e79aa26f334eb806288688b30720bade883) )
+ ROM_LOAD16_BYTE( "046-c3.c3", 0x200000, 0x100000, CRC(880e3c25) SHA1(b6974af0c833b766866919b6f15b6f8cef82530d) )
+ ROM_LOAD16_BYTE( "046-c4.c4", 0x200001, 0x100000, CRC(7a2248aa) SHA1(8af0b26025a54e3b91604dd24a3c1c518fbd8536) )
+ ROM_LOAD16_BYTE( "046-c5.c5", 0x400000, 0x100000, CRC(4b735e45) SHA1(2f8b46388c4696aee6a97e1e21cdadf6b142b01a) )
+ ROM_LOAD16_BYTE( "046-c6.c6", 0x400001, 0x100000, CRC(273171df) SHA1(9c35832221e016c12ef1ed71da167f565daaf86c) )
+ ROM_LOAD16_BYTE( "046-c7.c7", 0x600000, 0x100000, CRC(12829c4c) SHA1(ac5f3d848d7116fc35c97f53a72c85e049dd3a2f) )
+ ROM_LOAD16_BYTE( "046-c8.c8", 0x600001, 0x100000, CRC(c944e03d) SHA1(be23999b8ce09ee15ba500ce4d5e2a82a4f58d9b) )
+ROM_END
+
+
+ROM_START( tpgolfcd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "003cd.p1", 0x000000, 0x100000, CRC(87f2a8ce) SHA1(ad903d7711ac4af47f1dee64ba7c6bb247029407) )
+
+ NEO_SFIX_128K( "003-s1.s1", CRC(7b3eb9b1) SHA1(39cd8bad9f8bfdeb8ac681b5b79ae5aa81c8dd5f) )
+
+ NEO_BIOS_AUDIO_64K( "003cd.m1", CRC(7851d0d9) SHA1(d021cef958cc37ab170b78d7a4b3ae94947e4d13) )
+
+ ROM_REGION( 0x080000, "ymsnd", 0 )
+ ROM_LOAD( "003-v11.v11", 0x000000, 0x080000, CRC(ff97f1cb) SHA1(defa249d46ae220f7bfa70746f5202bbbcc3e5fe) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "003-c1.c1", 0x000000, 0x80000, CRC(0315fbaf) SHA1(583c9253219c1026d81ee5e0cf5568683adc2633) )
+ ROM_LOAD16_BYTE( "003-c2.c2", 0x000001, 0x80000, CRC(b4c15d59) SHA1(b0d8ec967f9b8e5216301c10b2d36912abce6515) )
+ ROM_LOAD16_BYTE( "003cd.c3", 0x100000, 0x80000, CRC(b09f1612) SHA1(03fbb5db4e377ce9cb4e65ddbc0b114c02e7bae1) )
+ ROM_LOAD16_BYTE( "003cd.c4", 0x100001, 0x80000, CRC(150ea7a1) SHA1(13edc30144b56285ef37eb8aa6fb934704de18d8) )
+ ROM_LOAD16_BYTE( "003-c5.c5", 0x200000, 0x80000, CRC(9a7146da) SHA1(2fc83d13e3e9565919aab01bf2a1b028f433b547) )
+ ROM_LOAD16_BYTE( "003-c6.c6", 0x200001, 0x80000, CRC(1e63411a) SHA1(ee397e2f679042e87b37d95837af62bb95a72af9) )
+ ROM_LOAD16_BYTE( "003-c7.c7", 0x300000, 0x80000, CRC(2886710c) SHA1(1533dd935f0a8f92a0a3c47d1d2bc6d035454244) )
+ ROM_LOAD16_BYTE( "003-c8.c8", 0x300001, 0x80000, CRC(422af22d) SHA1(f67c844c34545de6ea187f5bfdf440dec8518532) )
+ROM_END
+
+
+ROM_START( trallycd ) // title screen is corrupt
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "038-p1.p1", 0x000000, 0x080000, CRC(1e52a576) SHA1(a1cb56354c3378e955b0cd482c3c41ae15add952) )
+ ROM_LOAD16_WORD_SWAP( "038cd.p2", 0x080000, 0x080000, CRC(9facb7fb) SHA1(96b4edbdddbd9ba642d0d046b33349c95559badd) )
+
+ NEO_SFIX_128K( "038cd.s1", CRC(81022312) SHA1(bdb8ae4cd43f196f1b185a48e25980565226bb71) )
+
+ NEO_BIOS_AUDIO_64K( "038cd.m1", CRC(2e1a89d6) SHA1(d0761c57f58e5a63b7c6a03538b3b5b7fe89271b) )
+
+ ROM_REGION( 0x0e0000, "ymsnd", 0 )
+ ROM_LOAD( "038cd.v1", 0x000000, 0x0e0000, CRC(f7ce806e) SHA1(83967145a6bd616ffe8c19dbf5b0bf63296f2c24) )
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "038cd.c1", 0x000000, 0x100000, CRC(840e6161) SHA1(553431723d0f348f4776b1e41beb2a4b39c2aeec) )
+ ROM_LOAD16_BYTE( "038cd.c2", 0x000001, 0x100000, CRC(51979c7a) SHA1(833600da39daeae40ac700931e77898e9c60a45d) )
+ ROM_LOAD16_BYTE( "038-c3.c3", 0x200000, 0x080000, CRC(3bb7b9d6) SHA1(bc1eae6181ad5abf79736afc8db4ca34113d43f8) )
+ ROM_LOAD16_BYTE( "038-c4.c4", 0x200001, 0x080000, CRC(a4513ecf) SHA1(934aa103c226eac55157b44d7b4dfa35515322c3) )
+ROM_END
+
+
+ROM_START( twinsprih )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "224h.p1", 0x100000, 0x100000, CRC(df71c8cd) SHA1(1e49205b46c59c7f4ca6ee1dc06f555320d3b9af) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "224-s1.s1", CRC(eeed5758) SHA1(24e48f396716e145b692468762cf595fb7267873) )
+
+ NEO_BIOS_AUDIO_128K( "224-m1.m1", CRC(364d6f96) SHA1(779b95a6476089b71f48c8368d9043ee1dba9032) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "224-v1.v1", 0x000000, 0x400000, CRC(ff57f088) SHA1(1641989b8aac899dbd68aa2332bcdf9b90b33564) )
+ ROM_LOAD( "224-v2.v2", 0x400000, 0x200000, CRC(7ad26599) SHA1(822030037b7664795bf3d64e1452d0aecc22497e) )
+
+ ROM_REGION( 0xa00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "224-c1.c1", 0x000000, 0x400000, CRC(f7da64ab) SHA1(587a10ed9235c9046a3523fe80feba07764fac9b) )
+ ROM_LOAD16_BYTE( "224-c2.c2", 0x000001, 0x400000, CRC(4c09bbfb) SHA1(e781aafba3bdefb7ed152826f4c3eb441735331c) )
+ ROM_LOAD16_BYTE( "224-c3.c3", 0x800000, 0x100000, CRC(c59e4129) SHA1(93f02d1b4fbb152a9d336494fbff0d7642921de5) )
+ ROM_LOAD16_BYTE( "224-c4.c4", 0x800001, 0x100000, CRC(b5532e53) SHA1(7d896c25ba97f6e5d43c13d4df4ba72964a976ed) )
+ROM_END
+
+
+ROM_START( viewpoinf )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "051f.p1", 0x000000, 0x100000, CRC(d28c99ef) SHA1(c603ae8ad4a80fa3921016cd294a61a60cc37923) )
+
+ NEO_SFIX_64K( "051tr.s1", CRC(6d0f146a) SHA1(537fc5ef099f46fef64d147c0d1264b319758b4f) )
+
+ NEO_BIOS_AUDIO_64K( "051tr.m1", CRC(d57bd7af) SHA1(9ed766dbc3c07dbba7869ff335eeb7e297c8e2d9) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "051-v2.v1", 0x000000, 0x200000, CRC(019978b6) SHA1(7896a551115fc6ed38b5944e0c8dcb2b2c1c077d) )
+ ROM_LOAD( "051-v4.v2", 0x200000, 0x200000, CRC(5758f38c) SHA1(da10f4b7d22d9139bbf068bd940be82168a74ca1) )
+
+ ROM_REGION( 0x600000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "051-c1.c1", 0x000000, 0x100000, CRC(d624c132) SHA1(49c7e9f020cba45d7083b45252bcc03397f8c286) )
+ ROM_CONTINUE( 0x400000, 0x100000 )
+ ROM_LOAD16_BYTE( "051-c2.c2", 0x000001, 0x100000, CRC(40d69f1e) SHA1(ec4a13582772594957f927622d50f54b0dfcd8d8) )
+ ROM_CONTINUE( 0x400001, 0x100000 )
+ROM_END
+
+ROM_START( viewpointr ) /* Viewpoint - Hack by KiWi Starlight - (Unlimited lives and mega-bombs for p1 and p2) */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "051tr.p1", 0x000000, 0x100000, CRC(063b9fa2) SHA1(e2d43646a976d82c809c6fad7dd40cc3dda07b15) )
+
+ NEO_SFIX_64K( "051tr.s1", CRC(6d0f146a) SHA1(537fc5ef099f46fef64d147c0d1264b319758b4f) )
+
+ NEO_BIOS_AUDIO_64K( "051tr.m1", CRC(d57bd7af) SHA1(9ed766dbc3c07dbba7869ff335eeb7e297c8e2d9) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "051-v2.v1", 0x000000, 0x200000, CRC(019978b6) SHA1(7896a551115fc6ed38b5944e0c8dcb2b2c1c077d) )
+ ROM_LOAD( "051-v4.v2", 0x200000, 0x200000, CRC(5758f38c) SHA1(da10f4b7d22d9139bbf068bd940be82168a74ca1) )
+
+ ROM_REGION( 0x600000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "051-c1.c1", 0x000000, 0x100000, CRC(d624c132) SHA1(49c7e9f020cba45d7083b45252bcc03397f8c286) )
+ ROM_CONTINUE( 0x400000, 0x100000 )
+ ROM_LOAD16_BYTE( "051-c2.c2", 0x000001, 0x100000, CRC(40d69f1e) SHA1(ec4a13582772594957f927622d50f54b0dfcd8d8) )
+ ROM_CONTINUE( 0x400001, 0x100000 )
+ROM_END
+
+
+ROM_START( wakuwak7bh ) /* Waku Waku 7 - Hack by Dodowang - (Can choose Fernandez and Bonus Kun - only playable when 2 Player play AES/MVS) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "225bh.p1", 0x000000, 0x100000, CRC(7a8fda8e) SHA1(d55c427173278aa513cb86ee2a90ecd8402d55b0) )
+ ROM_LOAD16_WORD_SWAP( "225-p2.sp2", 0x100000, 0x200000, CRC(fe190665) SHA1(739d9a8fc2da34381654d9e291141eacc210ae5c) )
+
+ NEO_SFIX_128K( "225-s1.s1", CRC(71c4b4b5) SHA1(9410f13807f01082dc86f2d84051be4bed8e9f7c) )
+
+ NEO_BIOS_AUDIO_128K( "225-m1.m1", CRC(0634bba6) SHA1(153aaf016440500df7a4454f3f2f2911219cb7d8) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "225-v1.v1", 0x000000, 0x400000, CRC(6195c6b4) SHA1(66c06b5904aedb256e3997bbec60f8ab50c6ff0c) )
+ ROM_LOAD( "225-v2.v2", 0x400000, 0x400000, CRC(6159c5fe) SHA1(9015e93416497f1ef877c717afed40f7ecfa42e4) )
+
+ ROM_REGION( 0x1800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "225-c1.c1", 0x0000000, 0x400000, CRC(ee4fea54) SHA1(314b513a52b2cc88cbf2409d1934c357269a8bb2) )
+ ROM_LOAD16_BYTE( "225-c2.c2", 0x0000001, 0x400000, CRC(0c549e2d) SHA1(d8c4626231c92e43d9bf183202553ee2b5c532e6) )
+ ROM_LOAD16_BYTE( "225-c3.c3", 0x0800000, 0x400000, CRC(af0897c0) SHA1(2b8ec19b9dd0bd1f1171fb01b915e9d25ec8c421) )
+ ROM_LOAD16_BYTE( "225-c4.c4", 0x0800001, 0x400000, CRC(4c66527a) SHA1(6c8c9342fad70b456e282b0d52e7ad890e4673d3) )
+ ROM_LOAD16_BYTE( "225-c5.c5", 0x1000000, 0x400000, CRC(8ecea2b5) SHA1(cad51e6e76d8258a78becb6f4096dd061f537494) )
+ ROM_LOAD16_BYTE( "225-c6.c6", 0x1000001, 0x400000, CRC(0eb11a6d) SHA1(c6d4f978ff3ca190a3060ac52bd7347189194f76) )
+ROM_END
+
+ROM_START( wakuwak7h )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "225h.p1", 0x000000, 0x100000, CRC(0b7a3776) SHA1(3d8d9e7bdd481dbec3765901999b5148c0f3d776) )
+ ROM_LOAD16_WORD_SWAP( "225-p2.sp2", 0x100000, 0x200000, CRC(fe190665) SHA1(739d9a8fc2da34381654d9e291141eacc210ae5c) )
+
+ NEO_SFIX_128K( "225-s1.s1", CRC(71c4b4b5) SHA1(9410f13807f01082dc86f2d84051be4bed8e9f7c) )
+
+ NEO_BIOS_AUDIO_128K( "225-m1.m1", CRC(0634bba6) SHA1(153aaf016440500df7a4454f3f2f2911219cb7d8) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "225-v1.v1", 0x000000, 0x400000, CRC(6195c6b4) SHA1(66c06b5904aedb256e3997bbec60f8ab50c6ff0c) )
+ ROM_LOAD( "225-v2.v2", 0x400000, 0x400000, CRC(6159c5fe) SHA1(9015e93416497f1ef877c717afed40f7ecfa42e4) )
+
+ ROM_REGION( 0x1800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "225-c1.c1", 0x0000000, 0x400000, CRC(ee4fea54) SHA1(314b513a52b2cc88cbf2409d1934c357269a8bb2) )
+ ROM_LOAD16_BYTE( "225-c2.c2", 0x0000001, 0x400000, CRC(0c549e2d) SHA1(d8c4626231c92e43d9bf183202553ee2b5c532e6) )
+ ROM_LOAD16_BYTE( "225-c3.c3", 0x0800000, 0x400000, CRC(af0897c0) SHA1(2b8ec19b9dd0bd1f1171fb01b915e9d25ec8c421) )
+ ROM_LOAD16_BYTE( "225-c4.c4", 0x0800001, 0x400000, CRC(4c66527a) SHA1(6c8c9342fad70b456e282b0d52e7ad890e4673d3) )
+ ROM_LOAD16_BYTE( "225-c5.c5", 0x1000000, 0x400000, CRC(8ecea2b5) SHA1(cad51e6e76d8258a78becb6f4096dd061f537494) )
+ ROM_LOAD16_BYTE( "225-c6.c6", 0x1000001, 0x400000, CRC(0eb11a6d) SHA1(c6d4f978ff3ca190a3060ac52bd7347189194f76) )
+ROM_END
+
+
+ROM_START( wjammersf )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "065f.p1", 0x000000, 0x100000, CRC(a458cc18) SHA1(0d476edef593c4fa6f50ec4457f69629b2be37e7) )
+
+ NEO_SFIX_128K( "065-s1.s1", CRC(074b5723) SHA1(86d3b3bb5414f43e4d3b7a2af0db23cc71ce8412) )
+
+ NEO_BIOS_AUDIO_128K( "065-m1.m1", CRC(52c23cfc) SHA1(809a7e072ad9acbffc25e9bd27cdb97638d09d07) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "065-v1.v1", 0x000000, 0x100000, CRC(ce8b3698) SHA1(7d75e2a5cf8c90be422f8b425447e81597fe145a) )
+ ROM_LOAD( "065-v2.v2", 0x100000, 0x100000, CRC(659f9b96) SHA1(62f40365212153bc3b92a1187fa44f6cdc7f7b83) )
+ ROM_LOAD( "065-v3.v3", 0x200000, 0x100000, CRC(39f73061) SHA1(ec57cd58e7f8569cff925d11e2320d588ce4fe49) )
+ ROM_LOAD( "065-v4.v4", 0x300000, 0x100000, CRC(5dee7963) SHA1(f8e6de73d65dd80b29c711f00835a574a770cb4e) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "065-c1.c1", 0x000000, 0x100000, CRC(c7650204) SHA1(42918d700d59864f8ab15caf968a062a563c9b09) )
+ ROM_LOAD16_BYTE( "065-c2.c2", 0x000001, 0x100000, CRC(d9f3e71d) SHA1(fad1f64061eac1bf85bf6d75d2eae974a8c94069) )
+ ROM_LOAD16_BYTE( "065-c3.c3", 0x200000, 0x100000, CRC(40986386) SHA1(65795a50197049681265946713d416c9cdb68f08) )
+ ROM_LOAD16_BYTE( "065-c4.c4", 0x200001, 0x100000, CRC(715e15ff) SHA1(ac8b8b01f5c7384b883afbe0cf977430378e3fef) )
+ROM_END
+
+ROM_START( wjammersk )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "065-p1.p1", 0x000000, 0x100000, CRC(6692c140) SHA1(5da574e906974fac92bb2f49bdeea257c014a897) )
+
+ NEO_SFIX_128K( "065-s1.s1", CRC(074b5723) SHA1(86d3b3bb5414f43e4d3b7a2af0db23cc71ce8412) )
+
+ NEO_BIOS_AUDIO_128K( "065-m1.m1", CRC(52c23cfc) SHA1(809a7e072ad9acbffc25e9bd27cdb97638d09d07) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "065-v1.v1", 0x000000, 0x100000, CRC(ce8b3698) SHA1(7d75e2a5cf8c90be422f8b425447e81597fe145a) )
+ ROM_LOAD( "065-v2.v2", 0x100000, 0x100000, CRC(659f9b96) SHA1(62f40365212153bc3b92a1187fa44f6cdc7f7b83) )
+ ROM_LOAD( "065-v3.v3", 0x200000, 0x100000, CRC(39f73061) SHA1(ec57cd58e7f8569cff925d11e2320d588ce4fe49) )
+ ROM_LOAD( "065-v4.v4", 0x300000, 0x100000, CRC(5dee7963) SHA1(f8e6de73d65dd80b29c711f00835a574a770cb4e) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "065k.c1", 0x000000, 0x100000, CRC(ebded27e) SHA1(574a0086bf13a5ac5d27de90c4d4611a19668cf8) )
+ ROM_LOAD16_BYTE( "065k.c2", 0x000001, 0x100000, CRC(f5483767) SHA1(756dd8e161bf428659c642b5056aa0bcf5e0d9a8) )
+ ROM_LOAD16_BYTE( "065-c3.c3", 0x200000, 0x100000, CRC(40986386) SHA1(65795a50197049681265946713d416c9cdb68f08) )
+ ROM_LOAD16_BYTE( "065-c4.c4", 0x200001, 0x100000, CRC(715e15ff) SHA1(ac8b8b01f5c7384b883afbe0cf977430378e3fef) )
+ROM_END
+
+
+ROM_START( zupapad )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "070-p1.p1", 0x000000, 0x100000, CRC(5a96203e) SHA1(49cddec9ca6cc51e5ecf8a34e447a23e1f8a15a1) )
+
+ NEO_SFIX_128K( "070d.s1", CRC(307967ba) SHA1(b91430d0fb08ca6e0d63ded42016fd2a5cd9728b) )
+
+ NEO_BIOS_AUDIO_128K( "070-epr.m1", CRC(5a3b3191) SHA1(fa9a9930e18c64e598841fb344c4471d3d2c1964) )
+
+ ROM_REGION( 0x0200000, "ymsnd", 0 )
+ ROM_LOAD( "070-v1.v1", 0x000000, 0x200000, CRC(d3a7e1ff) SHA1(4a4a227e10f4af58168f6c26011ea1d414253f92) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "070d.c1", 0x0000000, 0x200000, CRC(2bf91ba1) SHA1(5eecbc5ec2c493d2ffd0e57012e0808d4349871f) )
+ ROM_LOAD16_BYTE( "070d.c2", 0x0000001, 0x200000, CRC(8700a5b8) SHA1(bc1ff7e55309120c0ca2d8800b7b003dc3c5ed65) )
+ROM_END
+
+
+
+GAME( 1991, 2020bbcd, 2020bb, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "CD_conv", "2020 Super Baseball (CD conversion)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1992, androdunpx, androdun, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Xyahzhs", "Andro Dunos (Plus Max hack by Xyahzhs)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1992, aofbh, aof, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yumeji", "Art of Fighting (Boss hack by Yumeji)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, aof2b, aof2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "TcwLee", "Art of Fighting 2 (Geese instead of Mr. Big)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, aof2b1, aof2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yumeji", "Art of Fighting 2 (Boss hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, aof2bh, aof2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yumeji", "Art of Fighting 2 (Boss hack by Yumeji)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, aof2br2, aof2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "TcwLee", "Art of Fighting 2 (Geese instead of Ryo)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, aof3b, aof3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Dodowang", "Art of Fighting 3 (Boss hack by Dodowang)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, aof3bh, aof3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yumeji", "Art of Fighting 3 (Boss hack by Yumeji)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 2000, bangbeadp, bangbead, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Visco", "Bang Bead (prototype)", MACHINE_SUPPORTS_SAVE ) // commented out in official MAME source
+GAME( 1990, bjourneypx, bjourney, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Xyahzhs", "Blue's Journey / Raguy (Plus Max hack by Xyahzhs)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, breakersbh, breakers, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yumeji", "Breakers (Boss hack by Yumeji)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, breakersp, breakers, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Breakers (Move change 26c?)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, breakersy, breakers, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "ZKW", "Breakers (Boss Robert PPX Team hack remixed by ZKW)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, breakrevb, breakrev, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yumeji", "Breakers Revenge (Boss hack by Yumeji)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, breakrevpp, breakrev, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Pipi899", "Breakers Revenge (Enhanced Power hack by Pipi899 11/06/09)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, breakrevy, breakrev, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "ZKW", "Breakers Revenge (Boss Robert PPX Team hack remixed by ZKW)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, burningfhp, burningf, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Lb70", "Burning Fight (High Power by EEZEZY(LB70))", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1999, ctomadaypx, ctomaday, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Xyahzhs", "Captain Tomaday (Plus Max hack by Xyahzhs)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1997, dragons1, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Face", "Dragon's Heaven", MACHINE_SUPPORTS_SAVE )
+
+GAME( 2009, eightmaneb, eightman, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Blackheart", "Eight Man (Enhanced Version hack by Blackheart 2009-08-22)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1994, fightfevbs, fightfev, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yumeji", "Fight Fever (Boss hack by Yumeji)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, fightfevk, fightfev, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Unk", "Fight Fever (Kanji Patch)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1998, flipshotk, flipshot, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Battle Flip Shot (Korean)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1995, galaxyfgb, galaxyfg, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yumeji", "Galaxy Fight (Boss hack by Yumeji)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, galaxyfgbh, galaxyfg, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yumeji", "Galaxy Fight (Boss Hack 2014 Edition by Yumeji)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, ganryud, ganryu, neogeo_noslot, neogeo, neogeo_hbmame, cmc42sfix, ROT0, "Visco", "Ganryu / Musashi Ganryuki (decrypted C)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1995, gowcaizrb, gowcaizr, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker", "Voltage Fighter (Boss hack by Wesker (FGCH))", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, gowcaizrbs, gowcaizr, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yumeji", "Voltage Fighter (Boss hack by Yumeji)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, gowcaizrrv, gowcaizr, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Voltage Fighter (Boss Revised Version 2009-10-05)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, gowcaizry, gowcaizr, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Voltage Fighter - Gowcaizer (Boss Hack - Easy Moves)", MACHINE_SUPPORTS_SAVE)
+
+GAME( 1991, gpilotscd, gpilots, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "CD_conv", "Ghost Pilots (CD conversion)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, gpilotse, gpilots, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Robert", "Ghost Pilots (Enhanced Version, Hack by Robert)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, gpilotspx, gpilots, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Xyahzhs", "Ghost Pilots (Plus Max hack by Xyahzhs)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1996, ironcladb, ironclad, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Saurus", "Ironclad (conversion from Wii)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, ironcladcd, ironclad, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "CD_conv", "Ironclad (CD conversion)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+
+GAME( 2001, jockeygpd, jockeygp, neogeo_noslot, jockeygp, neogeo_hbmame, jckeygpd, ROT0, "Sun Amusement / BrezzaSoft", "Jockey Grand Prix (decrypted C)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 2007, joyjoycd, joyjoy, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Puzzled (CD conversion)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, joyjoycd1, joyjoy, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "CD_conv", "Puzzled / Joy Joy Kid (CD conversion)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1995, kabukiklb, kabukikl, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Far East of Eden - Kabuki Klash / Tengai Makyou - Shin Den (Boss Hack by Ydmis and Creamymami)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, kabukikleh, kabukikl, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Far East of Eden - Kabuki Klash (Add Char)", MACHINE_SUPPORTS_SAVE ) // Manto, Karakuri, Jyashinsai and Lucifeller
+GAME( 1995, kabukiklgm, kabukikl, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Flycboy", "Far East of Eden - Kabuki Klash (Color Fix set 2 - Title screen and char color changed)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, kabukiklgmc, kabukikl, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Flycboy", "Far East of Eden - Kabuki Klash (Color Fix set 1 - Title screen and char color changed)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, kabukiklmc, kabukikl, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami", "Far East of Eden - Kabuki Klash (Magic always max)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, kabukiklyc, kabukikl, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami and Ydmis", "Far East of Eden - Kabuki Klash (Add Char - Magic always max)", MACHINE_SUPPORTS_SAVE ) // Manto, Karakuri, Jyashinsai and Lucifeller - Based on kabukleh
+
+GAME( 1994, karnovreh, karnovr, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Karnov's Revenge (Add Char)", MACHINE_SUPPORTS_SAVE ) // Big Tornado
+
+GAME( 1996, kizunab, kizuna, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Kizuna Encounter (Add Char)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, kizunaeh, kizuna, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "007325", "Kizuna Encounter (Easy Moves hack by 007325 2009-02-23)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 2004, lans2k4d, shocktr2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "Lansquenet 2004 (Shock Troopers - 2nd Squad Bootleg / fully decrypted)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, lbowlingcd, lbowling, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "CD_conv", "League Bowling (CD conversion)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, lresortpx, lresort, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Xyahzhs", "Last Resort (Plus Max hack by Xyahzhs)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 2003, magdrop3fr, magdrop3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Arkatrad", "Magical Drop III (French)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, maglordpx, maglord, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Xyahzhs", "Magician Lord (Plus Max hack by Xyahzhs)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 2003, matrima, matrim, neogeo_noslot, neogeo, neogeo_hbmame, matrima, ROT0, "Noise Factory / Atlus Corporation", "Power Instinct - Matrimelee / Shin Gouketsuji Ichizoku Toukon (Alternate)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, matrimbh, matrim, neogeo_noslot, neogeo, neogeo_noslot_state, matrim, ROT0, "Creamymami", "Matrimelee (Boss hack by Creamymami (EGCG))", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, matrimd, matrim, neogeo_noslot, neogeo, neogeo_hbmame, matrimd, ROT0, "Noise Factory / Atlus", "Matrimelee / Shin Gouketsuji Ichizoku Toukon (NGM-2660)(NGH-2660) (decrypted C)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, matrimdh, matrim, neogeo_noslot, neogeo, neogeo_hbmame, matrmehc, ROT0, "Dodowang", "Matrimelee / Shin Gouketsuji Ichizoku Toukon (decrypted C) hack", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, matrimeh, matrim, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Matrimelee (Bootleg, Hero Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, matrimehc, matrim, neogeo_noslot, neogeo, neogeo_hbmame, matrmehc, ROT0, "Creamymami", "Matrimelee (Pow always max - MVS protection rem)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, matrimnd, matrim, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Matrimelee (hack nd)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 2005, miexchngfr, miexchng, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Arkatrad", "Money Puzzle Exchanger (French)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1992, mutnatex, mutnat, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Pipi899", "Mutation Nation (Ex version, Pipi899)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 2008, nam1975g, nam1975, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "NAM-1975 (hack?)", MACHINE_SUPPORTS_SAVE )
+GAME( 2008, nam1975h, nam1975, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Blast of the Wolf", "NAM-1975 (Max Blast edition)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1990, ncombatpk, ncombat, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Krizal chen", "Ninja Combat (Plus hack by Krizal chen (Dsght))", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, ncommandsp, ncommand, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "e107", "Ninja Commando (Super Plus hack by e107 2009-08-16)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, neocup98k, neocup98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Neo-Geo Cup '98 - The Road to the Victory (Korean)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1996, ninjamasasp, ninjamas, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "ZKW", "Ninja Master's (Plus Remixed by ZKW)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, ninjamaschl, ninjamas, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "CHL", "Ninja Master's (Hack by CHL)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, ninjamaseh, ninjamas, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Ninja Master's (Add Char)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, ninjamasehc, ninjamas, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami", "Ninja Master's (Pow hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, ninjamasehyc, ninjamas, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami and Ydmis", "Ninja Master's (Add Char - Pow hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, ninjamasha, ninjamas, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "007325", "Ninja Master's - haoh-ninpo-cho PLUS (Hack by 007325)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, ninjamashb, ninjamas, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "007325", "Ninja Master's (Happy Batter Edition hack by 007325 2009-09-09)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 2000, nitdd, nitd, neogeo_noslot, neogeo, neogeo_hbmame, cmc42sfix, ROT0, "Eleven / Gavaking", "Nightmare in the Dark (decrypted C)", MACHINE_SUPPORTS_SAVE )
+GAME( 2006, nitdfr, nitd, neogeo_noslot, neogeo, neogeo_hbmame, cmc42sfix, ROT0, "Arkatrad", "Nightmare in the Dark (French)", MACHINE_SUPPORTS_SAVE ) // based on decrypted C
+GAME( 2005, nitdfro, nitd, neogeo_noslot, neogeo, neogeo_hbmame, cmc42sfix, ROT0, "Arkatrad", "Nightmare in the Dark (French) (Old)", MACHINE_SUPPORTS_SAVE ) // based on decrypted C
+GAME( 2000, nitdfro1, nitd, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Eleven / Gavaking", "Nightmare in the Dark French (NEO ARC Traduction)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, nitdpx, nitd, neogeo_noslot, neogeo, neogeo_noslot_state, nitd, ROT0, "Xyahzhs", "Nightmare in the Dark (Plus Max hack by Xyahzhs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, nitdsp, nitd, neogeo_noslot, neogeo, neogeo_noslot_state, nitd, ROT0, "hack", "Nightmare in the Dark (Spanish)", MACHINE_SUPPORTS_SAVE )
+GAME( 2015, nitdsp1, nitd, neogeo_noslot, neogeo, neogeo_hbmame, cmc42sfix, ROT0, "hack", "Nightmare in the Dark (Spanish.Rev2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, nitdsp2, nitd, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Meganiuz", "Nightmare in the Dark Spanish (Version 1.1 by MEGANIUZ)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 2009, pbcrazyb1, pbobblen, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Elrayzeur", "Puzzle Bobble Crazy (beta1 2009-07-05)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, pbcrazyb2, pbobblen, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Elrayzeur", "Puzzle Bobble Crazy (beta2 2009-07-23)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, pbobblenba, pbobblen, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Taito", "Puzzle Bobble / Bust-A-Move (Neo-Geo) (set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, pbobblencd, pbobblen, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "Puzzle Bobble / Bust-A-Move (Neo-Geo)(CD conversion)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pbobblendx, pbobblen, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Puzzle Bobble Deluxe / Bust-A-Move Deluxe", MACHINE_SUPPORTS_SAVE )
+
+GAME( 2003, pnyaad, pnyaa, neogeo_noslot, neogeo, neogeo_hbmame, pnyaad, ROT0, "Aiky", "Pochi & Nyaa (decrypted C)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1999, preisle2d, preisle2, neogeo_noslot, neogeo, neogeo_hbmame, cmc42sfix, ROT0, "Yumekobo", "Prehistoric Isle 2 (decrypted C)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, preisle2px, preisle2, neogeo_noslot, neogeo, neogeo_hbmame, cmc42sfix, ROT0, "Xyahzhs", "Prehistoric Isle 2 (Plus Max hack by Xyahzhs)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, pspikes2cd, pspikes2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "CD_conv", "Power Spikes II (CD conversion)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+
+GAME( 1996, ragnagrdbe, ragnagrd, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Operation Ragnagard (Easy Moves hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, ragnagrdbs, ragnagrd, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yumeji", "Operation Ragnagard (Boss hack by Yumeji)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, ragnagrdeh, ragnagrd, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Operation Ragnagard (Add Char)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, ragnagrdsb, ragnagrd, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Lichenzhao", "Operation Ragnagard (Super Boss Easy Moves hack by Lichenzhao 2009-11-16)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1999, s1945pd, s1945p, neogeo_noslot, neogeo, neogeo_hbmame, cmc42sfix, ROT0, "Psikyo", "Strikers 1945 Plus (decrypted C)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, s1945peh, s1945p, neogeo_noslot, neogeo, neogeo_noslot_state, s1945p, ROT0, "KrysoFun", "Strikers 1945 Plus (Super Shot hack by KrysoFun)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, s1945ph, s1945p, neogeo_noslot, neogeo, neogeo_noslot_state, s1945p, ROT0, "Yumeji", "Strikers 1945 Plus (Ascender P55 hack by Yumeji)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, s1945pwe, s1945p, neogeo_noslot, neogeo, neogeo_noslot_state, s1945p, ROT0, "Wesker", "Strikers 1945 Plus (Hack)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1995, savagereb, savagere, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yumeji, Dodowang", "Savage Reign (Boss hack by Yumeji/Dodowang)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, savageredb, savagere, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Dodowang", "Savage Reign (Debug menu unlocked - P1 and P2 Press select to change stage)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, sdodgebp, sdodgeb, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Blackheart", "Super Dodge Ball (Power hack by Blackheart 2009-09-02)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, shocktr2px, shocktr2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Xyahzhs", "Shock Troopers - 2nd Squad (Plus Max hack by Xyahzhs)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, shocktr2w, shocktr2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker", "Shock Troopers - 2nd Squad (Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, shocktrosp, shocktro, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "e107", "Shock Troopers (Super Plus hack by e107 2009-08-18)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, sonicwi2eh, sonicwi2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Robert", "Aero Fighters 2 / Sonic Wings 2 (Hack alternate set by Robert)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, sonicwi2px, sonicwi2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Xyahzhs", "Aero Fighters 2 / Sonic Wings 2 (Plus Max hack by Xyahzhs)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, sonicwi3eh, sonicwi3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Robert", "Aero Fighters 3 / Sonic Wings 3 (Hack alternate set by Robert)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, sonicwi3h, sonicwi3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker", "Aero Fighters 3 / Sonic Wings 3 (ExChar hack by Wesker)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, sonicwi3px, sonicwi3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Xyahzhs", "Aero Fighters 3 / Sonic Wings 3 (Plus Max hack by Xyahzhs)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, spinmasth, spinmast, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Robert", "Spin Master / Miracle Adventure (Enhanced Version, Hack by Robert)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, spinmastpx, spinmast, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Xyahzhs", "Spin Master / Miracle Adventure (Plus Max hack by Xyahzhs)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, ssidekicd, ssideki, neogeo_noslot, neogeo, neogeo_noslot_state, fatfury2, ROT0, "CD_conv", "Super Sidekicks / Tokuten Ou (CD conversion)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, strhoopcd, strhoop, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "CD_conv", "Street Hoop (CD conversion)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, superspycd, superspy, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "CD_conv", "The Super Spy (CD conversion)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1994, tophuntrpx, tophuntr, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Xyahzhs", "Top Hunter - Roddy & Cathy (Plus Max hack by Xyahzhs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, tpgolfcd, tpgolf, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "CD_conv", "Top Player's Golf (CD conversion)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, trallycd, trally, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "CD_conv", "Thrash Rally (CD conversion)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1996, twinsprih, twinspri, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yumeji", "Twinkle Star Sprites (ExChar hack by Yumeji)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1992, viewpoinf, viewpoin, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SHYMA.X", "Viewpoint (French by NEOARC Team)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, viewpointr, viewpoin, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "KiWi Starlight", "Viewpoint Enhanced", MACHINE_SUPPORTS_SAVE ) // Unlimited lives and mega-bombs for p1 and p2
+
+GAME( 1996, wakuwak7bh, wakuwak7, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Dodowang", "Waku Waku 7 (Add Char - 2 players only)", MACHINE_SUPPORTS_SAVE ) // Fernandez and Bonus Kun
+GAME( 1996, wakuwak7h, wakuwak7, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Waku Waku 7 (Boss Hack)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1994, wjammersf, wjammers, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Elrayzeur", "Windjammers (French v0.1 beta by Elrayzeur)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, wjammersk, wjammers, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Aneue Bannzai", "Windjammers (Korean hack by Aneue Bannzai)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 2001, zupapad, zupapa, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Zupapa! (custom decrypted C)", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/neogeo_noslot.cpp b/docs/release/src/hbmame/drivers/neogeo_noslot.cpp
new file mode 100644
index 00000000000..7f61b71aa90
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/neogeo_noslot.cpp
@@ -0,0 +1,9212 @@
+// license:BSD-3-Clause
+// copyright-holders:Bryan McPhail,Ernesto Corvi,Andrew Prime,Zsolt Vasvari, Robbbert
+// thanks-to:Fuzz
+
+#include "emu.h"
+#include "includes/neogeo.h"
+
+
+
+static ADDRESS_MAP_START( main_map_noslot, AS_PROGRAM, 16, neogeo_state )
+ AM_RANGE(0x000000, 0x00007f) AM_READ(banked_vectors_r)
+ AM_RANGE(0x000080, 0x0fffff) AM_ROM
+ AM_IMPORT_FROM( neogeo_main_map )
+ADDRESS_MAP_END
+
+
+static MACHINE_CONFIG_DERIVED_CLASS( neogeo_noslot, neogeo_arcade, neogeo_noslot_state ) // no slot config (legacy mame)
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(main_map_noslot)
+
+ //joystick controller
+ MCFG_NEOGEO_CONTROL_EDGE_CONNECTOR_ADD("edge", neogeo_arc_edge_fixed, "joy", true)
+
+ //no mahjong controller
+ MCFG_NEOGEO_CONTROL_PORT_ADD("ctrl1", neogeo_arc_pin15, "", true)
+ MCFG_NEOGEO_CONTROL_PORT_ADD("ctrl2", neogeo_arc_pin15, "", true)
+
+ MCFG_MSLUGX_PROT_ADD("mslugx_prot")
+ MCFG_SMA_PROT_ADD("sma_prot")
+ MCFG_CMC_PROT_ADD("cmc_prot")
+ MCFG_PCM2_PROT_ADD("pcm2_prot")
+ MCFG_PVC_PROT_ADD("pvc_prot")
+ MCFG_NGBOOTLEG_PROT_ADD("bootleg_prot")
+ MCFG_KOF2002_PROT_ADD("kof2002_prot")
+ MCFG_FATFURY2_PROT_ADD("fatfury2_prot")
+ MCFG_KOF98_PROT_ADD("kof98_prot")
+ MCFG_SBP_PROT_ADD("sbp_prot")
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED_CLASS( neogeo_kog, neogeo_arcade, neogeo_noslot_kog_state )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(main_map_noslot)
+
+ //joystick controller
+ MCFG_NEOGEO_CONTROL_EDGE_CONNECTOR_ADD("edge", neogeo_arc_edge_fixed, "joy", true)
+
+ //no mahjong controller
+ MCFG_NEOGEO_CONTROL_PORT_ADD("ctrl1", neogeo_arc_pin15, "", true)
+ MCFG_NEOGEO_CONTROL_PORT_ADD("ctrl2", neogeo_arc_pin15, "", true)
+
+ MCFG_NGBOOTLEG_PROT_ADD("bootleg_prot")
+ MCFG_KOG_PROT_ADD("kog_prot")
+MACHINE_CONFIG_END
+
+// these basically correspond to the cabinets which were available in arcades:
+// with mahjong panel, with dial for Pop'n Bounce and with 4 controls for Kizuna...
+static MACHINE_CONFIG_DERIVED( neogeo_mj, neogeo_noslot )
+
+ //no joystick panel
+ MCFG_DEVICE_REMOVE("edge")
+ MCFG_NEOGEO_CONTROL_EDGE_CONNECTOR_ADD("edge", neogeo_arc_edge_fixed, "", true)
+
+ //P1 mahjong controller
+ MCFG_DEVICE_REMOVE("ctrl1")
+ MCFG_DEVICE_REMOVE("ctrl2")
+ MCFG_NEOGEO_CONTROL_PORT_ADD("ctrl1", neogeo_arc_pin15, "mahjong", true)
+ MCFG_NEOGEO_CONTROL_PORT_ADD("ctrl2", neogeo_arc_pin15, "", true)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( neogeo_dial, neogeo_noslot )
+ MCFG_DEVICE_REMOVE("edge")
+ MCFG_NEOGEO_CONTROL_EDGE_CONNECTOR_ADD("edge", neogeo_arc_edge_fixed, "dial", true)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( neogeo_imaze, neogeo_noslot )
+ MCFG_DEVICE_REMOVE("edge")
+ MCFG_NEOGEO_CONTROL_EDGE_CONNECTOR_ADD("edge", neogeo_arc_edge_fixed, "irrmaze", true)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( neogeo_kiz4p, neogeo_noslot )
+ MCFG_DEVICE_REMOVE("edge")
+ MCFG_NEOGEO_CONTROL_EDGE_CONNECTOR_ADD("edge", neogeo_arc_edge_fixed, "kiz4p", true)
+MACHINE_CONFIG_END
+
+// this is used by V-Liner, which handles differently inputs...
+static MACHINE_CONFIG_DERIVED( neogeo_noctrl, neogeo_noslot )
+ MCFG_DEVICE_REMOVE("ctrl1")
+ MCFG_DEVICE_REMOVE("ctrl2")
+MACHINE_CONFIG_END
+
+
+/*************************************
+ *
+ * Official sets
+ *
+ *************************************
+
+ About supported sets:
+ =====================
+
+ MVS carts (arcade) were released before the AES carts (home)
+ The actual codepath taken depends entirely on the BIOS rom, not the roms in the cartridge, which (with
+ a few exceptions) support both codepaths.
+
+ The initial AES releases are therefore later revisions of the game, often with bug fixes over the
+ initial MVS releases. It isn't uncommon for later production runs and bootlegs to use these newer sets,
+ so all of them are supported in MAME.
+
+ Likewise, because the MVS carts were released first (and were produced in higher numbers and generally
+ have a lower cost) it's not uncommon for AES units to operate with converted MVS carts, so, with the
+ exception of the sets that specifically lock out the AES mode* these sets are all equally suitable
+ for MESS.
+ * nitd, kof2001 (initial release has no AES code), and a number of the hacked bootlegs.
+
+ The 'MVS ONLY RELEASE' tagged sets were not officially released for the AES (home) system.
+ Information about this can be found at 'The NeoGeo Master List' (unofficial) - http://www.neo-geo.com
+ and the official NeoGeo museum - http://neogeomuseum.snkplaymore.co.jp/english/index.php
+ Several unofficial 'conversions' of these sets can be found across the internet.
+ For completeness sake: Some of these have sets have been released for the CD system.
+
+
+ M1 (sound driver) rom information:
+ ==================================
+ . Many 'M1' roms contain mirrored data (64k mirrored or 128k mirrored).
+ . Found on several early sets (ID 0001 ~ 0045) and on the last sets (ID 0267 ~ 0272).
+ . This caused some confusion and incorrect rom sizes.
+ . Minimum 'M1' size is 1mbit, maximum size 4mbit.
+ . The remaining 64k 'M1' are marked BAD_DUMP.
+
+
+ S1 (text layer) rom information:
+ ================================
+ . All 'S1' roms found on prom are 1mbit.
+ . The remainig 64k 'S1' are marked BAD_DUMP.
+
+
+ MULTI PLAY MODE:
+ ================
+ The NeoGeo has three games which support MULTI PLAY MODE (Riding Hero / League Bowling / Trash Rally).
+ This allows you to 'link' 4 games (MVS) / 2 games (AES) using in game 'Multi-Play' option. To establish
+ a link between the carts you have to connect the carts to each other by a communicator cable. The communicatior
+ cable is a regular headphone cable with stereo pin jack. It has been reported that you can also 'link' MVS <-> AES.
+
+ All three games use a special PROG board for MULTI PLAY MODE support:
+ . Riding Hero (AES - NEO-AEG PROG-HERO / MVS NEO-MVS PROG-HERO)
+ . League Bowling (AES - NEO-AEG PROG-HERO / MVS NEO-MVS PROG-HERO)
+ . Trash Rally (AES - NEO-AEG PROG42G-COM / NEO-MVS PROG42G-COM)
+
+ A HD6301V1P MCU on the above boards is used for establishing the 'link'. The MCU has a 4kb internal ROM which
+ is not dumped.
+ To use the MULTI PLAY MODE on your MVS you have to set the following hardware dips:
+ HARD DIP SETTING 4 5 6
+ CABINET 1: OFF OFF ON
+ CABINET 2: OFF ON ON
+ CABINET 3: ON OFF ON
+ CABINET 4: ON ON ON
+
+
+ SPHERO SYMPHONY:
+ ================
+ Several early games have a 'feature' called "sphero symphony". None of the games featuring "sphero symphony"
+ uses special hardware. It is something sound based, but what exactly it is (specially arragend samples,
+ FM synthesis etc.) is unknown. The AES and MVS releases share the same sound data and driver.
+
+ The AES game-inserts and manuals have an eye-shaped logo with the following text (not to be found on MVS sets):
+ sphero
+ symphony
+ STEREOPHONIC SOUND
+
+ Experience this "LIVE" 3 dimensional sound coming from all around you.
+
+ Games featuring "sphero symphony":
+ ID-0006 - Riding Hero
+ ID-0007 - Alpha Mission II / ASO II - Last Guardian
+ ID-0009 - Ninja Combat
+ ID-0010 - Cyber-Lip
+ ID-0011 - The Super Spy
+ ID-0014 - Mutation Nation
+ ID-0017 - Sengoku / Sengoku Denshou
+ ID-0018 - Burning Fight
+ ID-0020 - Ghost Pilots
+ ID-0024 - Last Resort
+ ID-0031 - Soccer Brawl
+ ID-0033 - Fatal Fury - King of Fighters / Garou Densetsu - shukumei no tatakai
+ ID-0034 - Football Frenzy
+ ID-0037 - Crossed Swords
+ ID-0038 - Thrash Rally
+ ID-0039 - King of the Monsters 2 - The Next Thing
+ ID-0041 - Baseball Stars 2
+ ID-0044 - Art of Fighting / Ryuuko no Ken
+ ID-0047 - Fatal Fury 2 / Garou Densetsu 2 - arata-naru tatakai
+ ID-0049 - Andro Dunos
+
+*/
+
+
+// Game specific input definitions
+
+static INPUT_PORTS_START( dualbios )
+ PORT_INCLUDE( neogeo )
+
+ /* the rom banking seems to be tied directly to the dipswitch */
+ PORT_MODIFY("DSW")
+ PORT_DIPNAME( 0x04, 0x00, DEF_STR( Region ) ) PORT_DIPLOCATION("SW:3") PORT_CHANGED_MEMBER(DEVICE_SELF, neogeo_state, select_bios, 0)
+ PORT_DIPSETTING( 0x00, DEF_STR( Asia ) )
+ PORT_DIPSETTING( 0x04, DEF_STR( Japan ) )
+INPUT_PORTS_END
+
+
+static INPUT_PORTS_START( mjneogeo )
+ PORT_INCLUDE( neogeo )
+
+ PORT_MODIFY("DSW")
+ PORT_DIPNAME( 0x04, 0x00, DEF_STR( Controller ) ) PORT_DIPLOCATION("SW:3")
+ PORT_DIPSETTING( 0x04, DEF_STR( Joystick ) )
+ PORT_DIPSETTING( 0x00, "Mahjong Panel" )
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( kizuna4p )
+ PORT_INCLUDE( neogeo )
+
+ PORT_MODIFY("DSW")
+ PORT_DIPNAME( 0x02, 0x00, DEF_STR( Players ) ) PORT_DIPLOCATION("SW:2")
+ PORT_DIPSETTING( 0x02, "2" )
+ PORT_DIPSETTING( 0x00, "4" )
+
+ PORT_MODIFY("SYSTEM")
+ PORT_BIT( 0x0f00, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(DEVICE_SELF, neogeo_state, kizuna4p_start_r, nullptr)
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( irrmaze )
+ PORT_INCLUDE( neogeo )
+
+ PORT_MODIFY("SYSTEM")
+ PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNUSED )
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( vliner )
+ PORT_INCLUDE( neogeo )
+
+ PORT_MODIFY("DSW")
+ PORT_BIT( 0x0f00, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("View Payout Table/Big")
+ PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Bet/Small")
+ PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Stop/Double Up")
+ PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("Start/Collect")
+
+ PORT_MODIFY("SYSTEM")
+ PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* this bit is used.. */
+ PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* this bit is used.. */
+
+ PORT_MODIFY("AUDIO/COIN")
+ PORT_BIT( 0x003f, IP_ACTIVE_LOW, IPT_UNUSED )
+
+ PORT_START("IN5")
+ PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 )
+ PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 )
+ PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Operator Menu") PORT_CODE(KEYCODE_F1)
+ PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("Clear Credit")
+ PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("Hopper Out")
+ PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ /* not sure what any of these bits are */
+ PORT_START("IN6")
+ PORT_BIT( 0x0003, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0xffc0, IP_ACTIVE_HIGH, IPT_UNKNOWN )
+INPUT_PORTS_END
+
+
+static INPUT_PORTS_START( jockeygp )
+ PORT_INCLUDE( neogeo )
+
+ PORT_MODIFY("SYSTEM")
+ PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* game freezes with this bit enabled */
+ PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* game freezes with this bit enabled */
+INPUT_PORTS_END
+
+
+
+/****************************************
+ ID-0001
+ . NGM-001
+ NEO-MVS PROG-NAM / NEO-MVS CHA-32
+ . NGH-001
+ NEO-AEG PROG-NAM / NEO-AEG CHA-32
+****************************************/
+
+ROM_START( nam1975 ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "001-p1.p1", 0x000000, 0x080000, CRC(cc9fc951) SHA1(92f4e6ddeeb825077d92dbb70b50afea985f15c0) )
+
+ NEO_SFIX_128K( "001-s1.s1", CRC(7988ba51) SHA1(bc2f661f381b06b34ac2fa215dd5689d3bf84832) )
+
+ NEO_BIOS_AUDIO_256K( "001-m1.m1", CRC(ba874463) SHA1(a83514f4b20301f84a98699900e2593f1c1b8846) )
+
+ ROM_REGION( 0x080000, "ymsnd", 0 )
+ ROM_LOAD( "001-v11.v11", 0x000000, 0x080000, CRC(a7c3d5e5) SHA1(e3efc86940f91c53b7724c4566cfc21ea1a7a465) )
+ // AES has different label, data is the same: 001-v1.v1
+
+ ROM_REGION( 0x180000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "001-v21.v21", 0x000000, 0x080000, CRC(55e670b3) SHA1(a047049646a90b6db2d1882264df9256aa5a85e5) )
+ // AES has different label, data is the same: 001-v2.v21
+ ROM_LOAD( "001-v22.v22", 0x080000, 0x080000, CRC(ab0d8368) SHA1(404114db9f3295929080b87a5d0106b40da6223a) )
+ ROM_LOAD( "001-v23.v23", 0x100000, 0x080000, CRC(df468e28) SHA1(4e5d4a709a4737a87bba4083aeb788f657862f1a) )
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "001-c1.c1", 0x000000, 0x80000, CRC(32ea98e1) SHA1(c2fb3fb7dd14523a4b4b7fbdb81f44cb4cc48239) )
+ ROM_LOAD16_BYTE( "001-c2.c2", 0x000001, 0x80000, CRC(cbc4064c) SHA1(224c970fd060d841fd430c946ef609bb57b6d78c) )
+ ROM_LOAD16_BYTE( "001-c3.c3", 0x100000, 0x80000, CRC(0151054c) SHA1(f24fb501a7845f64833f4e5a461bcf9dc3262557) )
+ ROM_LOAD16_BYTE( "001-c4.c4", 0x100001, 0x80000, CRC(0a32570d) SHA1(f108446ec7844fde25f7a4ab454f76d384bf5e52) )
+ ROM_LOAD16_BYTE( "001-c5.c5", 0x200000, 0x80000, CRC(90b74cc2) SHA1(89898da36db259180e5261ed45eafc99ca13e504) )
+ ROM_LOAD16_BYTE( "001-c6.c6", 0x200001, 0x80000, CRC(e62bed58) SHA1(d05b2903b212a51ee131e52c761b714cb787683e) )
+ROM_END
+
+/****************************************
+ ID-0002
+ . NGM-002
+ NEO-MVS PROG-EP / NEO-MVS CHA-32
+ . NGH-002
+ NEO-AEG PROG-4A / NEO-AEG CHA-32
+****************************************/
+
+ROM_START( bstars ) /* MVS VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "002-pg.p1", 0x000000, 0x080000, CRC(c100b5f5) SHA1(4cea9f29ad67288c3eccfa4cf961ee9782e49165) )
+
+ NEO_SFIX_128K( "002-s1.s1", CRC(1a7fd0c6) SHA1(3fc701b7afddab369ddf9dedfbc5e1aaf80b8af3) )
+
+ NEO_BIOS_AUDIO_256K( "002-m1.m1", CRC(4ecaa4ee) SHA1(50abfb8eed6cb4887393089f9ccc76f306ef69b5) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "002-v11.v11", 0x000000, 0x080000, CRC(b7b925bd) SHA1(644c92fa90e74998e73714f74b1e0680ee372a07) )
+ ROM_LOAD( "002-v12.v12", 0x080000, 0x080000, CRC(329f26fc) SHA1(2c8009edc88c6b26f7be5beb2b8d260aac394ee1) )
+ ROM_LOAD( "002-v13.v13", 0x100000, 0x080000, CRC(0c39f3c8) SHA1(db8f8670639601215707d918d4fb93221460446a) )
+ ROM_LOAD( "002-v14.v14", 0x180000, 0x080000, CRC(c7e11c38) SHA1(5abf2a7877e0162c758a4dcf09f183930fa7ef24) )
+
+ ROM_REGION( 0x080000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "002-v21.v21", 0x000000, 0x080000, CRC(04a733d1) SHA1(84159368c0f6de2c3b8121227201cd3422455cf6) )
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "002-c1.c1", 0x000000, 0x080000, CRC(aaff2a45) SHA1(c91ee72d1d74514df8ec44fca703409d92158ae3) )
+ ROM_LOAD16_BYTE( "002-c2.c2", 0x000001, 0x080000, CRC(3ba0f7e4) SHA1(f023b134b9c7994f477867307d2732026033501d) )
+ ROM_LOAD16_BYTE( "002-c3.c3", 0x100000, 0x080000, CRC(96f0fdfa) SHA1(9f779a1ae46aeda54d69382b074392ade687f62f) )
+ ROM_LOAD16_BYTE( "002-c4.c4", 0x100001, 0x080000, CRC(5fd87f2f) SHA1(a5dd6f26f9485f216c2428ae1792c182beb10dbc) )
+ ROM_LOAD16_BYTE( "002-c5.c5", 0x200000, 0x080000, CRC(807ed83b) SHA1(3268e7d4602c3f55f1e0da2c80653d5ae461ef67) )
+ ROM_LOAD16_BYTE( "002-c6.c6", 0x200001, 0x080000, CRC(5a3cad41) SHA1(c620d18f4ff32ed5489c941dfc641030a54f1c14) )
+ROM_END
+
+ROM_START( bstarsh ) /* AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "002-p1.p1", 0x000000, 0x080000, CRC(3bc7790e) SHA1(50b2fffb1278151bb4849fbe1f8cb23916019815) )
+
+ NEO_SFIX_128K( "002-s1.s1", CRC(1a7fd0c6) SHA1(3fc701b7afddab369ddf9dedfbc5e1aaf80b8af3) )
+
+ NEO_BIOS_AUDIO_256K( "002-m1.m1", CRC(4ecaa4ee) SHA1(50abfb8eed6cb4887393089f9ccc76f306ef69b5) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "002-v11.v11", 0x000000, 0x080000, CRC(b7b925bd) SHA1(644c92fa90e74998e73714f74b1e0680ee372a07) )
+ ROM_LOAD( "002-v12.v12", 0x080000, 0x080000, CRC(329f26fc) SHA1(2c8009edc88c6b26f7be5beb2b8d260aac394ee1) )
+ ROM_LOAD( "002-v13.v13", 0x100000, 0x080000, CRC(0c39f3c8) SHA1(db8f8670639601215707d918d4fb93221460446a) )
+ ROM_LOAD( "002-v14.v14", 0x180000, 0x080000, CRC(c7e11c38) SHA1(5abf2a7877e0162c758a4dcf09f183930fa7ef24) )
+
+ ROM_REGION( 0x080000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "002-v21.v21", 0x000000, 0x080000, CRC(04a733d1) SHA1(84159368c0f6de2c3b8121227201cd3422455cf6) )
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "002-c1.c1", 0x000000, 0x080000, CRC(aaff2a45) SHA1(c91ee72d1d74514df8ec44fca703409d92158ae3) )
+ ROM_LOAD16_BYTE( "002-c2.c2", 0x000001, 0x080000, CRC(3ba0f7e4) SHA1(f023b134b9c7994f477867307d2732026033501d) )
+ ROM_LOAD16_BYTE( "002-c3.c3", 0x100000, 0x080000, CRC(96f0fdfa) SHA1(9f779a1ae46aeda54d69382b074392ade687f62f) )
+ ROM_LOAD16_BYTE( "002-c4.c4", 0x100001, 0x080000, CRC(5fd87f2f) SHA1(a5dd6f26f9485f216c2428ae1792c182beb10dbc) )
+ ROM_LOAD16_BYTE( "002-c5.c5", 0x200000, 0x080000, CRC(807ed83b) SHA1(3268e7d4602c3f55f1e0da2c80653d5ae461ef67) )
+ ROM_LOAD16_BYTE( "002-c6.c6", 0x200001, 0x080000, CRC(5a3cad41) SHA1(c620d18f4ff32ed5489c941dfc641030a54f1c14) )
+ROM_END
+
+/****************************************
+ ID-0003
+ . NGM-003
+ NEO-MVS PROG-EP / NEO-MVS CHA-32
+ . NGH-003
+ NEO-AEG PROG-4B / NEO-AEG CHA-32
+****************************************/
+
+ROM_START( tpgolf ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "003-p1.p1", 0x000000, 0x080000, CRC(f75549ba) SHA1(3f7bdf5e2964e921fe1dd87c51a79a1a501fc73f) )
+ ROM_LOAD16_WORD_SWAP( "003-p2.p2", 0x080000, 0x080000, CRC(b7809a8f) SHA1(1604c889592c9610668bff296de48a0d6906156d) )
+
+ NEO_SFIX_128K( "003-s1.s1", CRC(7b3eb9b1) SHA1(39cd8bad9f8bfdeb8ac681b5b79ae5aa81c8dd5f) )
+
+ NEO_BIOS_AUDIO_128K( "003-m1.m1", CRC(4cc545e6) SHA1(8e014b8cab3e5b3995756a4ea52ce49c36866377) )
+
+ ROM_REGION( 0x080000, "ymsnd", 0 )
+ ROM_LOAD( "003-v11.v11", 0x000000, 0x080000, CRC(ff97f1cb) SHA1(defa249d46ae220f7bfa70746f5202bbbcc3e5fe) )
+ // AES has different label, data is the same (also found on MVS): 003-v1.v11
+
+ ROM_REGION( 0x200000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "003-v21.v21", 0x000000, 0x080000, CRC(d34960c6) SHA1(36d5877d5e42aab943f4d693159f4f3ad8b0addc) )
+ // AES has different label, data is the same (also found on MVS): 003-v2.v21
+ ROM_LOAD( "003-v22.v22", 0x080000, 0x080000, CRC(9a5f58d4) SHA1(2b580595e1820430a36f06fd3e0e0b8f7d686889) )
+ ROM_LOAD( "003-v23.v23", 0x100000, 0x080000, CRC(30f53e54) SHA1(22461f88a56d272b78dbc23204c0c6816200532b) )
+ ROM_LOAD( "003-v24.v24", 0x180000, 0x080000, CRC(5ba0f501) SHA1(ca02937a611a2c50c9e4b54f8fd4eaea09259894) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "003-c1.c1", 0x000000, 0x80000, CRC(0315fbaf) SHA1(583c9253219c1026d81ee5e0cf5568683adc2633) )
+ ROM_LOAD16_BYTE( "003-c2.c2", 0x000001, 0x80000, CRC(b4c15d59) SHA1(b0d8ec967f9b8e5216301c10b2d36912abce6515) )
+ ROM_LOAD16_BYTE( "003-c3.c3", 0x100000, 0x80000, CRC(8ce3e8da) SHA1(bc6c49b27d498f75a0d1a8c4d0cca75e140b9efc) )
+ ROM_LOAD16_BYTE( "003-c4.c4", 0x100001, 0x80000, CRC(29725969) SHA1(f1407da84919c2b3fe0e8f1fca65934b147c86c7) )
+ ROM_LOAD16_BYTE( "003-c5.c5", 0x200000, 0x80000, CRC(9a7146da) SHA1(2fc83d13e3e9565919aab01bf2a1b028f433b547) )
+ ROM_LOAD16_BYTE( "003-c6.c6", 0x200001, 0x80000, CRC(1e63411a) SHA1(ee397e2f679042e87b37d95837af62bb95a72af9) )
+ ROM_LOAD16_BYTE( "003-c7.c7", 0x300000, 0x80000, CRC(2886710c) SHA1(1533dd935f0a8f92a0a3c47d1d2bc6d035454244) )
+ ROM_LOAD16_BYTE( "003-c8.c8", 0x300001, 0x80000, CRC(422af22d) SHA1(f67c844c34545de6ea187f5bfdf440dec8518532) )
+ROM_END
+
+/****************************************
+ ID-0004
+ . NGM-004
+ NEO-MVS PROG-EP / NEO-MVS CHA-32
+ . NGH-004
+ NEO-AEG PROG B / NEO-AEG CHA-32
+****************************************/
+
+ROM_START( mahretsu ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "004-p1.p1", 0x000000, 0x080000, CRC(fc6f53db) SHA1(64a62ca4c8fb68954e06121399c9402278bd0467) )
+
+ NEO_SFIX_128K( "004-s1.s1", CRC(2bd05a06) SHA1(876deadd4645373d82a503154eeddf18f440d743) )
+
+ NEO_BIOS_AUDIO_128K( "004-m1.m1", CRC(c71fbb3b) SHA1(59c58665b53da61352359d191a0569de5dd1f4b3) )
+
+ ROM_REGION( 0x100000, "ymsnd", 0 )
+ ROM_LOAD( "004-v11.v11", 0x000000, 0x080000, CRC(b2fb2153) SHA1(36e0cc8927b11105de40188af46f6cf532794c10) )
+ ROM_LOAD( "004-v12.v12", 0x080000, 0x080000, CRC(8503317b) SHA1(ab22f1aba1e977ab234a4f1d73dc6ed789dbeb85) )
+
+ ROM_REGION( 0x180000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "004-v21.v21", 0x000000, 0x080000, CRC(4999fb27) SHA1(2d4926a220ea21bdd5e816bb16f985fff089500a) )
+ ROM_LOAD( "004-v22.v22", 0x080000, 0x080000, CRC(776fa2a2) SHA1(e7d5a362ab7806b7b009700a435c815a20e8ec68) )
+ ROM_LOAD( "004-v23.v23", 0x100000, 0x080000, CRC(b3e7eeea) SHA1(4d1e97f380702a3a06e7f954b4caddd9c4119d8f) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "004-c1.c1", 0x000000, 0x80000, CRC(f1ae16bc) SHA1(df68feed4dcba1e1566032b01ebb7b478a1792bf) )
+ ROM_LOAD16_BYTE( "004-c2.c2", 0x000001, 0x80000, CRC(bdc13520) SHA1(2bc4c996d019a4c539f6c3188ef18089e54b7efa) )
+ ROM_LOAD16_BYTE( "004-c3.c3", 0x100000, 0x80000, CRC(9c571a37) SHA1(21388aeb92bb8e15a55a063701ca9df79e292127) )
+ ROM_LOAD16_BYTE( "004-c4.c4", 0x100001, 0x80000, CRC(7e81cb29) SHA1(5036f04df30cf6903bd1a8cc06ff6f015c24a74b) )
+ROM_END
+
+/****************************************
+ ID-0005
+ . NGM-005
+ NEO-MVS PROG-EP / NEO-MVS CHA-32
+ . NGH-005
+ NEO-AEG PROG-4B / NEO-AEG CHA-32
+****************************************/
+
+ROM_START( maglord ) /* MVS VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "005-pg1.p1", 0x000000, 0x080000, CRC(bd0a492d) SHA1(d043d3710cf2b0d2b3798008e65e4c7c3ead1af3) )
+
+ NEO_SFIX_128K( "005-s1.s1", CRC(1c5369a2) SHA1(db0dba0a7dced6c9ca929c5abda491b05d84199c) )
+
+ NEO_BIOS_AUDIO_256K( "005-m1.m1", CRC(26259f0f) SHA1(4f3e500093d61585048767dbd9fa09b3911a05d6) )
+
+ ROM_REGION( 0x080000, "ymsnd", 0 )
+ ROM_LOAD( "005-v11.v11", 0x000000, 0x080000, CRC(cc0455fd) SHA1(a8ff4270e7705e263d25ff0b301f503bccea7e59) )
+
+ ROM_REGION( 0x100000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "005-v21.v21", 0x000000, 0x080000, CRC(f94ab5b7) SHA1(2c16985102e3585e08622d8c54ac5c60425b9ff8) )
+ ROM_LOAD( "005-v22.v22", 0x080000, 0x080000, CRC(232cfd04) SHA1(61b66a9decbbd1f500a8c186615e7fd077c6861e) )
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "005-c1.c1", 0x000000, 0x80000, CRC(806aee34) SHA1(3c32a0edbbddb694495b510c13979c44b83de8bc) )
+ ROM_LOAD16_BYTE( "005-c2.c2", 0x000001, 0x80000, CRC(34aa9a86) SHA1(cec97e1ff7f91158040c629ba75742db82c4ae5e) )
+ ROM_LOAD16_BYTE( "005-c3.c3", 0x100000, 0x80000, CRC(c4c2b926) SHA1(478bfafca21f5a1338808251a06ab405e6a9e65f) )
+ ROM_LOAD16_BYTE( "005-c4.c4", 0x100001, 0x80000, CRC(9c46dcf4) SHA1(4c05f3dc25777a87578ce09a6cefb3a4cebf3266) )
+ ROM_LOAD16_BYTE( "005-c5.c5", 0x200000, 0x80000, CRC(69086dec) SHA1(7fa47f4a765948813ebf366168275dcc3c42e951) )
+ ROM_LOAD16_BYTE( "005-c6.c6", 0x200001, 0x80000, CRC(ab7ac142) SHA1(e6ad2843947d35d8e913d2666f87946c1ba7944f) )
+ROM_END
+
+ROM_START( maglordh ) /* AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "005-p1.p1", 0x000000, 0x080000, CRC(599043c5) SHA1(43f234b0f89b72b4c6050c40d9daa5c4e96b94ce) )
+
+ NEO_SFIX_128K( "005-s1.s1", CRC(1c5369a2) SHA1(db0dba0a7dced6c9ca929c5abda491b05d84199c) )
+
+ NEO_BIOS_AUDIO_256K( "005-m1.m1", CRC(26259f0f) SHA1(4f3e500093d61585048767dbd9fa09b3911a05d6) )
+
+ ROM_REGION( 0x080000, "ymsnd", 0 )
+ ROM_LOAD( "005-v11.v11", 0x000000, 0x080000, CRC(cc0455fd) SHA1(a8ff4270e7705e263d25ff0b301f503bccea7e59) )
+
+ ROM_REGION( 0x100000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "005-v21.v21", 0x000000, 0x080000, CRC(f94ab5b7) SHA1(2c16985102e3585e08622d8c54ac5c60425b9ff8) )
+ ROM_LOAD( "005-v22.v22", 0x080000, 0x080000, CRC(232cfd04) SHA1(61b66a9decbbd1f500a8c186615e7fd077c6861e) )
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "005-c1.c1", 0x000000, 0x80000, CRC(806aee34) SHA1(3c32a0edbbddb694495b510c13979c44b83de8bc) )
+ ROM_LOAD16_BYTE( "005-c2.c2", 0x000001, 0x80000, CRC(34aa9a86) SHA1(cec97e1ff7f91158040c629ba75742db82c4ae5e) )
+ ROM_LOAD16_BYTE( "005-c3.c3", 0x100000, 0x80000, CRC(c4c2b926) SHA1(478bfafca21f5a1338808251a06ab405e6a9e65f) )
+ ROM_LOAD16_BYTE( "005-c4.c4", 0x100001, 0x80000, CRC(9c46dcf4) SHA1(4c05f3dc25777a87578ce09a6cefb3a4cebf3266) )
+ ROM_LOAD16_BYTE( "005-c5.c5", 0x200000, 0x80000, CRC(69086dec) SHA1(7fa47f4a765948813ebf366168275dcc3c42e951) )
+ ROM_LOAD16_BYTE( "005-c6.c6", 0x200001, 0x80000, CRC(ab7ac142) SHA1(e6ad2843947d35d8e913d2666f87946c1ba7944f) )
+ROM_END
+
+/****************************************
+ ID-0006
+ . NGM-006
+ NEO-MVS PROG-HERO / NEO-MVS CHA-32
+ . NGH-006
+ NEO-AEG PROG-HERO / NEO-AEG CHA-32
+****************************************/
+
+ROM_START( ridhero ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "006-p1.p1", 0x000000, 0x080000, CRC(d4aaf597) SHA1(34d35b71adb5bd06f4f1b50ffd9c58ab9c440a84) )
+
+ ROM_REGION( 0x2000, "mcu", 0 ) /* Hitachi HD6301V1 MCU */
+ ROM_LOAD( "rhcom.bin", 0x0000, 0x2000, CRC(e5cd6306) SHA1(f6bbb8ae562804d67e137290c765c3589fa334c0) ) // dumped from a prototype with external ROM, not 100% confirmed as being the same on a final, or other games (lbowling, trally)
+
+ NEO_SFIX_128K( "006-s1.s1", CRC(eb5189f0) SHA1(0239c342ea62e73140a2306052f226226461a478) )
+
+ NEO_BIOS_AUDIO_256K( "006-m1.m1", CRC(92e7b4fe) SHA1(d240056cd632f92bdfaa5e0492c09aa9bd7b0471) )
+
+ ROM_REGION( 0x100000, "ymsnd", 0 )
+ ROM_LOAD( "006-v11.v11", 0x000000, 0x080000, CRC(cdf74a42) SHA1(a17106cc3f9e5c5d52b4def861c0545a98151da2) )
+ ROM_LOAD( "006-v12.v12", 0x080000, 0x080000, CRC(e2fd2371) SHA1(cc95297bee7ffbdcb24ac4daeb5307cb39a52067) )
+
+ ROM_REGION( 0x200000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "006-v21.v21", 0x000000, 0x080000, CRC(94092bce) SHA1(1a2906271fe6bc396898a756153629a5862930eb) )
+ ROM_LOAD( "006-v22.v22", 0x080000, 0x080000, CRC(4e2cd7c3) SHA1(72fb215a4f208a22a764e801186d1643d3d840ca) )
+ ROM_LOAD( "006-v23.v23", 0x100000, 0x080000, CRC(069c71ed) SHA1(f450e9f60cd6ef846dbc77993159ec6157fb64e7) )
+ ROM_LOAD( "006-v24.v24", 0x180000, 0x080000, CRC(89fbb825) SHA1(656a97c6a8832dab3a5e1577d9cd257b561cc356) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "006-c1.c1", 0x000000, 0x080000, CRC(4a5c7f78) SHA1(f8f1e6b7841c74368210d52a84307bb28f722a2d) )
+ ROM_LOAD16_BYTE( "006-c2.c2", 0x000001, 0x080000, CRC(e0b70ece) SHA1(e2b750e43cdddcea29d1c9c943a3628117a16a1b) )
+ ROM_LOAD16_BYTE( "006-c3.c3", 0x100000, 0x080000, CRC(8acff765) SHA1(11fe89b9d112d0658c9ddf40d928584de6ea9202) )
+ ROM_LOAD16_BYTE( "006-c4.c4", 0x100001, 0x080000, CRC(205e3208) SHA1(aa2acf2c6f48ffffdcc0c94ddc031acc9e4a2e68) )
+ROM_END
+
+ROM_START( ridheroh )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "006-pg1.p1", 0x000000, 0x080000, BAD_DUMP CRC(52445646) SHA1(647bb31f2f68453c1366cb6e2e867e37d1df7a54) )
+ /* Chip label p1h does not exist, renamed temporarly to pg1, marked BAD_DUMP. This needs to be verified. */
+
+ ROM_REGION( 0x2000, "mcu", 0 ) /* Hitachi HD6301V1 MCU */
+ ROM_LOAD( "rhcom.bin", 0x0000, 0x2000, CRC(e5cd6306) SHA1(f6bbb8ae562804d67e137290c765c3589fa334c0) ) // dumped from a prototype with external ROM, not 100% confirmed as being the same on a final, or other games (lbowling, trally)
+
+ NEO_SFIX_128K( "006-s1.s1", CRC(eb5189f0) SHA1(0239c342ea62e73140a2306052f226226461a478) )
+
+ NEO_BIOS_AUDIO_256K( "006-m1.m1", CRC(92e7b4fe) SHA1(d240056cd632f92bdfaa5e0492c09aa9bd7b0471) )
+
+ ROM_REGION( 0x100000, "ymsnd", 0 )
+ ROM_LOAD( "006-v11.v11", 0x000000, 0x080000, CRC(cdf74a42) SHA1(a17106cc3f9e5c5d52b4def861c0545a98151da2) )
+ ROM_LOAD( "006-v12.v12", 0x080000, 0x080000, CRC(e2fd2371) SHA1(cc95297bee7ffbdcb24ac4daeb5307cb39a52067) )
+
+ ROM_REGION( 0x200000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "006-v21.v21", 0x000000, 0x080000, CRC(94092bce) SHA1(1a2906271fe6bc396898a756153629a5862930eb) )
+ ROM_LOAD( "006-v22.v22", 0x080000, 0x080000, CRC(4e2cd7c3) SHA1(72fb215a4f208a22a764e801186d1643d3d840ca) )
+ ROM_LOAD( "006-v23.v23", 0x100000, 0x080000, CRC(069c71ed) SHA1(f450e9f60cd6ef846dbc77993159ec6157fb64e7) )
+ ROM_LOAD( "006-v24.v24", 0x180000, 0x080000, CRC(89fbb825) SHA1(656a97c6a8832dab3a5e1577d9cd257b561cc356) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "006-c1.c1", 0x000000, 0x080000, CRC(4a5c7f78) SHA1(f8f1e6b7841c74368210d52a84307bb28f722a2d) )
+ ROM_LOAD16_BYTE( "006-c2.c2", 0x000001, 0x080000, CRC(e0b70ece) SHA1(e2b750e43cdddcea29d1c9c943a3628117a16a1b) )
+ ROM_LOAD16_BYTE( "006-c3.c3", 0x100000, 0x080000, CRC(8acff765) SHA1(11fe89b9d112d0658c9ddf40d928584de6ea9202) )
+ ROM_LOAD16_BYTE( "006-c4.c4", 0x100001, 0x080000, CRC(205e3208) SHA1(aa2acf2c6f48ffffdcc0c94ddc031acc9e4a2e68) )
+ROM_END
+
+/****************************************
+ ID-0007
+ . NGM-007
+ NEO-MVS PROG42G / NEO-MVS CHA42G
+ . NGH-007
+ NEO-AEG PROG42G / NEO-AEG CHA42G
+ NEO-AEG PROG42G / NEO-AEG CHA-8M
+ . prototype
+ NEO-AEG PROG-EP / NEO-AEG CHA-EP
+****************************************/
+
+ROM_START( alpham2 ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "007-p1.p1", 0x000000, 0x080000, CRC(5b266f47) SHA1(8afbf995989f47ad93fea1f31a884afc7228b53a) )
+ ROM_LOAD16_WORD_SWAP( "007-p2.p2", 0x080000, 0x020000, CRC(eb9c1044) SHA1(65d3416dcd96663bc4e7cefe90ecb7c1eafb2dda) )
+
+ NEO_SFIX_128K( "007-s1.s1", CRC(85ec9acf) SHA1(39a11974438ad36a2cc84307151b31474c3c5518) )
+
+ NEO_BIOS_AUDIO_128K( "007-m1.m1", CRC(28dfe2cd) SHA1(1a1a99fb917c6c8db591e3be695ce03f843ee1df) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "007-v1.v1", 0x000000, 0x100000, CRC(cd5db931) SHA1(b59f9f2df29f49470312a6cd20f5669b6aaf51ff) )
+ ROM_LOAD( "007-v2.v2", 0x100000, 0x100000, CRC(63e9b574) SHA1(1ade4cd0b15c84dd4a0fb7f7abf0885eef3a3f71) )
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "007-c1.c1", 0x000000, 0x100000, CRC(8fba8ff3) SHA1(1a682292e99eb91b0edb9771c44bc5e762867e98) )
+ ROM_LOAD16_BYTE( "007-c2.c2", 0x000001, 0x100000, CRC(4dad2945) SHA1(ac85a146276537fed124bda892bb93ff549f1d93) )
+ ROM_LOAD16_BYTE( "007-c3.c3", 0x200000, 0x080000, CRC(68c2994e) SHA1(4f8dfc6e5188942e03b853a2c9f0ea6138dec791) )
+ ROM_LOAD16_BYTE( "007-c4.c4", 0x200001, 0x080000, CRC(7d588349) SHA1(a5ed789d7bbc25be5c5b2d99883b64d379c103a2) )
+ROM_END
+
+ROM_START( alpham2p ) /* early prototype - all roms were hand labeled with CRCs, dumps verified against them */ /* AES VERSION*/
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "007_p1_faac.p1", 0x000001, 0x080000, CRC(c763e52a) SHA1(b24acbac255c5ee1a2e92e77cdde6620a24081cf) )
+ ROM_LOAD16_BYTE( "007_p2_1813.p2", 0x000000, 0x080000, CRC(7a0b435c) SHA1(40e6f42a92001d9f4e51898dd7489da143b6b74b) )
+
+ NEO_SFIX_128K( "007_s1_36f1.s1", CRC(efc9ae2e) SHA1(a594826b0082fe5a13191673e8d9aa42517230f5) )
+
+ NEO_BIOS_AUDIO_128K( "007_m1_9384.m1", CRC(5976b464) SHA1(ec824567ecc3579f6d86c9d9385710cbaeef16a3) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "007_v11_1bb4.v11", 0x000000, 0x080000, CRC(18eaa9e1) SHA1(85c94d8660f8a32e4ca8e015f0bd704208482d68) )
+ ROM_LOAD( "007_v12_c8e8.v12", 0x080000, 0x080000, CRC(2487d495) SHA1(49af3c4dc6a38c5158d3641fd8f9a40041b42aa6) )
+ ROM_LOAD( "007_v13_09fa.v13", 0x100000, 0x080000, CRC(25e60f25) SHA1(d06b0df872372de38fcf90187195070ac5f8c651) )
+ ROM_LOAD( "007_v21_28c2.v21", 0x180000, 0x080000, CRC(ac44b75a) SHA1(7399a05cd4e2c7ecde4a7323d3e189255afe5fc2) )
+
+ ROM_REGION( 0x080000, "ymsnd.deltat", 0 )
+ ROM_COPY( "ymsnd", 0x180000, 0x00000, 0x80000 )
+
+ ROM_REGION( 0x400000, "sprites", 0 ) // note, ROM_LOAD32_BYTE
+ ROM_LOAD32_BYTE( "007_c1_210e.c11", 0x000000, 0x80000, CRC(24841639) SHA1(fcc2a349121dad86ffefc44b9f0e8ba616ce0d30) )
+ ROM_LOAD32_BYTE( "007_c2_29ae.c12", 0x000002, 0x80000, CRC(912763ab) SHA1(cedf26d7d85ad140399ee62813c71f35e65498d6) )
+ ROM_LOAD32_BYTE( "007_c3_c873.c13", 0x000001, 0x80000, CRC(0743bde2) SHA1(0d13ad6333909ad3cf10f9ac360f9abf191318de) )
+ ROM_LOAD32_BYTE( "007_c4_2462.c14", 0x000003, 0x80000, CRC(61240212) SHA1(dee36f6604adaeb96e0d761a7256241c066b1cd2) )
+ ROM_LOAD32_BYTE( "007_c5_5f16.c15", 0x200000, 0x80000, CRC(cf9f4c53) SHA1(f979c85f83d9f76e554c2617f85f6d4efca6799c) )
+ ROM_LOAD32_BYTE( "007_c6_8abc.c16", 0x200002, 0x80000, CRC(3d903b19) SHA1(001a8c762336b855fe1df69fe2e605d30a3f00a1) )
+ ROM_LOAD32_BYTE( "007_c7_c983.c17", 0x200001, 0x80000, CRC(e41e3875) SHA1(730aceb8a66cb33d0194b096568f053ad7dc000a) )
+ ROM_LOAD32_BYTE( "007_c8_b599.c18", 0x200003, 0x80000, CRC(4483e2cf) SHA1(47c3364f5c36ae9dc3a49fe37ca60bcee0e73314) )
+ROM_END
+
+/****************************************
+ ID-0008
+ Sun Shine (prototype) 1990 SNK / Alpha
+****************************************/
+
+/****************************************
+ ID-0009
+ . NGM-009
+ NEO-MVS PROG-EP / NEO-MVS CHA-32
+ . NGH-009
+ NEO-AEG PROG-4A / NEO-AEG CHA-32
+****************************************/
+
+ROM_START( ncombat ) /* MVS VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "009-p1.p1", 0x000000, 0x080000, CRC(b45fcfbf) SHA1(3872147dda2d1ba905d35f4571065d87b1958b4a) )
+
+ NEO_SFIX_128K( "009-s1.s1", CRC(d49afee8) SHA1(77615f12edf08ae8f1353f7a056a8f3a50d3ebdc) )
+
+ NEO_BIOS_AUDIO_128K( "009-m1.m1", CRC(b5819863) SHA1(6f2309d51531052dbf7d712993c9e35649db0d84) )
+
+ ROM_REGION( 0x180000, "ymsnd", 0 )
+ ROM_LOAD( "009-v11.v11", 0x000000, 0x080000, CRC(cf32a59c) SHA1(af5b7fcd8a4aff1307c0a1d937e5f0460c32de79) )
+ ROM_LOAD( "009-v12.v12", 0x080000, 0x080000, CRC(7b3588b7) SHA1(a4e6d9d4113ff4ce48b371f65e9187d551821d3b) )
+ ROM_LOAD( "009-v13.v13", 0x100000, 0x080000, CRC(505a01b5) SHA1(9426a4f5b31e16f74e72e61951c189a878f211c5) )
+
+ ROM_REGION( 0x080000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "009-v21.v21", 0x000000, 0x080000, CRC(365f9011) SHA1(aebd292214ab280b05ee9e759b7e9a681a099c4a) )
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "009-c1.c1", 0x000000, 0x80000, CRC(33cc838e) SHA1(c445c891c0ba4190aa0b472786150620e76df5b4) )
+ ROM_LOAD16_BYTE( "009-c2.c2", 0x000001, 0x80000, CRC(26877feb) SHA1(8f48097fb8e4757f50b6d86219122fbf4b6f87ef) )
+ ROM_LOAD16_BYTE( "009-c3.c3", 0x100000, 0x80000, CRC(3b60a05d) SHA1(0a165a17af4834876fcd634599cd2208adc9248f) )
+ ROM_LOAD16_BYTE( "009-c4.c4", 0x100001, 0x80000, CRC(39c2d039) SHA1(8ca6c3f977c43c7abba2a00a0e70f02e2a49f5f2) )
+ ROM_LOAD16_BYTE( "009-c5.c5", 0x200000, 0x80000, CRC(67a4344e) SHA1(b325f152c7b2388fc92c5826e1dc99094b9ea749) )
+ ROM_LOAD16_BYTE( "009-c6.c6", 0x200001, 0x80000, CRC(2eca8b19) SHA1(16764ef10e404325ba0a1a2ad3a4c0af287be21f) )
+ROM_END
+
+ROM_START( ncombath ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "009-pg1.p1", 0x000000, 0x080000, CRC(8e9f0add) SHA1(d0b908a86a58f2537eea73a431038f1cd74a5a2f) )
+
+ NEO_SFIX_128K( "009-s1.s1", CRC(d49afee8) SHA1(77615f12edf08ae8f1353f7a056a8f3a50d3ebdc) )
+
+ NEO_BIOS_AUDIO_128K( "009-m1.m1", CRC(b5819863) SHA1(6f2309d51531052dbf7d712993c9e35649db0d84) )
+
+ ROM_REGION( 0x180000, "ymsnd", 0 )
+ ROM_LOAD( "009-v11.v11", 0x000000, 0x080000, CRC(cf32a59c) SHA1(af5b7fcd8a4aff1307c0a1d937e5f0460c32de79) )
+ ROM_LOAD( "009-v12.v12", 0x080000, 0x080000, CRC(7b3588b7) SHA1(a4e6d9d4113ff4ce48b371f65e9187d551821d3b) )
+ ROM_LOAD( "009-v13.v13", 0x100000, 0x080000, CRC(505a01b5) SHA1(9426a4f5b31e16f74e72e61951c189a878f211c5) )
+
+ ROM_REGION( 0x080000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "009-v21.v21", 0x000000, 0x080000, CRC(365f9011) SHA1(aebd292214ab280b05ee9e759b7e9a681a099c4a) )
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "009-c1.c1", 0x000000, 0x80000, CRC(33cc838e) SHA1(c445c891c0ba4190aa0b472786150620e76df5b4) )
+ ROM_LOAD16_BYTE( "009-c2.c2", 0x000001, 0x80000, CRC(26877feb) SHA1(8f48097fb8e4757f50b6d86219122fbf4b6f87ef) )
+ ROM_LOAD16_BYTE( "009-c3.c3", 0x100000, 0x80000, CRC(3b60a05d) SHA1(0a165a17af4834876fcd634599cd2208adc9248f) )
+ ROM_LOAD16_BYTE( "009-c4.c4", 0x100001, 0x80000, CRC(39c2d039) SHA1(8ca6c3f977c43c7abba2a00a0e70f02e2a49f5f2) )
+ ROM_LOAD16_BYTE( "009-c5.c5", 0x200000, 0x80000, CRC(67a4344e) SHA1(b325f152c7b2388fc92c5826e1dc99094b9ea749) )
+ ROM_LOAD16_BYTE( "009-c6.c6", 0x200001, 0x80000, CRC(2eca8b19) SHA1(16764ef10e404325ba0a1a2ad3a4c0af287be21f) )
+ROM_END
+
+/****************************************
+ ID-0010
+ . NGM-010
+ NEO-MVS PROG-EP / NEO-MVS CHA-32
+ . NGH-010
+ NEO-AEG PROG-B / NEO-AEG CHA-32
+****************************************/
+
+ROM_START( cyberlip )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "010-p1.p1", 0x000000, 0x080000, CRC(69a6b42d) SHA1(6e7cb089de83f1d22cc4a87db5b1a94bf76fb1e8) )
+
+ NEO_SFIX_128K( "010-s1.s1", CRC(79a35264) SHA1(c2819a82adbe1f5e489496e0e03477863a5b7665) )
+
+ NEO_BIOS_AUDIO_128K( "010-m1.m1", CRC(8be3a078) SHA1(054ec6a061fcc88df1ecbb0a01611a31f37a7709) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "010-v11.v11", 0x000000, 0x080000, CRC(90224d22) SHA1(5443ee6f90d80d43194cb4b4f0e08851a59e7784) )
+ ROM_LOAD( "010-v12.v12", 0x080000, 0x080000, CRC(a0cf1834) SHA1(8df57a7941bdae7e446a6056039adb012cdde246) )
+ ROM_LOAD( "010-v13.v13", 0x100000, 0x080000, CRC(ae38bc84) SHA1(c0937b4f89b8b26c8a0e747b234f44ad6a3bf2ba) )
+ ROM_LOAD( "010-v14.v14", 0x180000, 0x080000, CRC(70899bd2) SHA1(8cf01144f0bcf59f09777175ae6b71846b09f3a1) )
+
+ ROM_REGION( 0x080000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "010-v21.v21", 0x000000, 0x080000, CRC(586f4cb2) SHA1(588460031d84c308e3353ecf714db9986425c21c) )
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "010-c1.c1", 0x000000, 0x80000, CRC(8bba5113) SHA1(70f0926409ab265da4b8632500d1d32d63cf77cf) )
+ ROM_LOAD16_BYTE( "010-c2.c2", 0x000001, 0x80000, CRC(cbf66432) SHA1(cc529640c475d08330e116ea9c5e5a28b7cd13db) )
+ ROM_LOAD16_BYTE( "010-c3.c3", 0x100000, 0x80000, CRC(e4f86efc) SHA1(fa60863d8a7ed4f21d30f91eb1936d0b8329db7a) )
+ ROM_LOAD16_BYTE( "010-c4.c4", 0x100001, 0x80000, CRC(f7be4674) SHA1(b4ad0432d4bb6d5a98e27015910343c964b73ed4) )
+ ROM_LOAD16_BYTE( "010-c5.c5", 0x200000, 0x80000, CRC(e8076da0) SHA1(3ec5cc19809dea688041a42b32c13d257576f3da) )
+ ROM_LOAD16_BYTE( "010-c6.c6", 0x200001, 0x80000, CRC(c495c567) SHA1(2f58475fbb5f1adafce027d396fb05dd71e8fb55) )
+ROM_END
+
+/****************************************
+ ID-0011
+ . NGM-011
+ NEO-MVS PROG-8MB / NEO-MVS CHA-8M
+ . NGH-011
+ NEO-AEG PROG-8MB / NEO-AEG CHA-8M
+****************************************/
+
+ROM_START( superspy ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "011-p1.p1", 0x000000, 0x080000, CRC(c7f944b5) SHA1(da7560e09187c68f1d9f7656218497b4464c56c9) )
+ ROM_LOAD16_WORD_SWAP( "sp2.p2", 0x080000, 0x020000, CRC(811a4faf) SHA1(8169dfaf79f52d80ecec402ce1b1ab9cafb7ebdd) )
+
+ NEO_SFIX_128K( "011-s1.s1", CRC(ec5fdb96) SHA1(8003028025ac7bf531e568add6ba66c02d0b7e84) )
+
+ NEO_BIOS_AUDIO_256K( "011-m1.m1", CRC(ca661f1b) SHA1(4e3cb57db716ec48487c1b070c3a55a5faf40856) )
+
+ ROM_REGION( 0x180000, "ymsnd", 0 )
+ ROM_LOAD( "011-v11.v11", 0x000000, 0x100000, CRC(5c674d5c) SHA1(d7b9beddeb247b584cea9ca6c43ec6869809b673) )
+ ROM_LOAD( "011-v12.v12", 0x100000, 0x080000, CRC(9f513d5a) SHA1(37b04962f0b8e2a74abd35c407337a6151dc4e95) )
+
+ ROM_REGION( 0x080000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "011-v21.v21", 0x000000, 0x080000, CRC(426cd040) SHA1(b2b45189837c8287223c2b8bd4df9525b72a3f16) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "011-c1.c1", 0x000000, 0x100000, CRC(cae7be57) SHA1(43b35b349594535689c358d9f324adda55e5281a) )
+ ROM_LOAD16_BYTE( "011-c2.c2", 0x000001, 0x100000, CRC(9e29d986) SHA1(b417763bad1acf76116cd56f4203c2d2677e22e5) )
+ ROM_LOAD16_BYTE( "011-c3.c3", 0x200000, 0x100000, CRC(14832ff2) SHA1(1179792d773d97d5e45e7d8f009051d362d72e24) )
+ ROM_LOAD16_BYTE( "011-c4.c4", 0x200001, 0x100000, CRC(b7f63162) SHA1(077a81b2bb0a8f17c9df6945078608f74432877a) )
+ROM_END
+
+/****************************************
+ ID-0012
+ unknown
+****************************************/
+
+/****************************************
+ ID-0013
+ unknown
+****************************************/
+
+/****************************************
+ ID-0014
+ . NGM-014
+ NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1
+ . NGH-014
+ NEO-AEG PROG42G-1 / NEO-AEG CHA42G-1
+****************************************/
+
+ROM_START( mutnat ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "014-p1.p1", 0x000000, 0x080000, CRC(6f1699c8) SHA1(87206f67a619dede7959230f9ff3701b8b78957a) )
+
+ NEO_SFIX_128K( "014-s1.s1", CRC(99419733) SHA1(b2524af8704941acc72282aa1d62fd4c93e3e822) )
+
+ NEO_BIOS_AUDIO_128K( "014-m1.m1", CRC(b6683092) SHA1(623ec7ec2915fb077bf65b4a16c815e071c25259) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "014-v1.v1", 0x000000, 0x100000, CRC(25419296) SHA1(c9fc04987c4e0875d276e1a0fb671740b6f548ad) )
+ ROM_LOAD( "014-v2.v2", 0x100000, 0x100000, CRC(0de53d5e) SHA1(467f6040da3dfb1974785e95e14c3f608a93720a) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "014-c1.c1", 0x000000, 0x100000, CRC(5e4381bf) SHA1(d429a5e09dafd2fb99495658b3652eecbf58f91b) )
+ ROM_LOAD16_BYTE( "014-c2.c2", 0x000001, 0x100000, CRC(69ba4e18) SHA1(b3369190c47771a790c7adffa958ff55d90e758b) )
+ ROM_LOAD16_BYTE( "014-c3.c3", 0x200000, 0x100000, CRC(890327d5) SHA1(47f97bf120a8480758e1f3bb8982be4c5325c036) )
+ ROM_LOAD16_BYTE( "014-c4.c4", 0x200001, 0x100000, CRC(e4002651) SHA1(17e53a5f4708866a120415bf24f3b89621ad0bcc) )
+ROM_END
+
+/****************************************
+ ID-0015
+ unknown
+****************************************/
+
+/****************************************
+ ID-0016
+ . NGM-016
+ NEO-MVS PROG42G / NEO-MVS CHA42G
+ NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1
+ . NGH-016
+ NEO-AEG PROG42G / NEO-AEG CHA42G
+ NEO-AEG PROG42G-1 / NEO-AEG CHA42G-1
+****************************************/
+
+ROM_START( kotm ) /* MVS VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "016-p1.p1", 0x000000, 0x080000, CRC(1b818731) SHA1(b98b1b33c0301fd79aac908f6b635dd00d1cb08d) )
+ ROM_LOAD16_WORD_SWAP( "016-p2.p2", 0x080000, 0x020000, CRC(12afdc2b) SHA1(3a95f5910cbb9f17e63ddece995c6e120fa2f622) )
+
+ NEO_SFIX_128K( "016-s1.s1", CRC(1a2eeeb3) SHA1(8d2b96d395020197bc59294b6b0c8d62b1d8d4dd) )
+
+ NEO_BIOS_AUDIO_128K( "016-m1.m1", CRC(9da9ca10) SHA1(88b915827d529f39c365d3e41197d5461e07a085) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "016-v1.v1", 0x000000, 0x100000, CRC(86c0a502) SHA1(7fe2db0c64aefdd14d6c36f7fcd6442591e9a014) )
+ ROM_LOAD( "016-v2.v2", 0x100000, 0x100000, CRC(5bc23ec5) SHA1(f4ff5d20587469daa026d5c812739335ce53cfdf) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "016-c1.c1", 0x000000, 0x100000, CRC(71471c25) SHA1(bc8e3fee56b33ef2bac5b4b852339d2fbcd09b7c) )
+ ROM_LOAD16_BYTE( "016-c2.c2", 0x000001, 0x100000, CRC(320db048) SHA1(d6b43834de6f5442e23ca8fb26b3a36e96790d8d) )
+ ROM_LOAD16_BYTE( "016-c3.c3", 0x200000, 0x100000, CRC(98de7995) SHA1(e33edf4d36c82196d2b474e37be180a05976f558) )
+ ROM_LOAD16_BYTE( "016-c4.c4", 0x200001, 0x100000, CRC(070506e2) SHA1(3a2ec365e1d87a9c5ce1ee9bea88402a8eef4ed7) )
+ROM_END
+
+ROM_START( kotmh ) /* AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "016-hp1.p1",0x000000, 0x080000, CRC(b774621e) SHA1(7684b2e07163aec68cd083ef1d8900f855f6cb42) )
+ ROM_LOAD16_WORD_SWAP( "016-p2.p2", 0x080000, 0x020000, CRC(12afdc2b) SHA1(3a95f5910cbb9f17e63ddece995c6e120fa2f622) )
+
+ NEO_SFIX_128K( "016-s1.s1", CRC(1a2eeeb3) SHA1(8d2b96d395020197bc59294b6b0c8d62b1d8d4dd) )
+
+ NEO_BIOS_AUDIO_128K( "016-m1.m1", CRC(9da9ca10) SHA1(88b915827d529f39c365d3e41197d5461e07a085) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "016-v1.v1", 0x000000, 0x100000, CRC(86c0a502) SHA1(7fe2db0c64aefdd14d6c36f7fcd6442591e9a014) )
+ ROM_LOAD( "016-v2.v2", 0x100000, 0x100000, CRC(5bc23ec5) SHA1(f4ff5d20587469daa026d5c812739335ce53cfdf) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "016-c1.c1", 0x000000, 0x100000, CRC(71471c25) SHA1(bc8e3fee56b33ef2bac5b4b852339d2fbcd09b7c) )
+ ROM_LOAD16_BYTE( "016-c2.c2", 0x000001, 0x100000, CRC(320db048) SHA1(d6b43834de6f5442e23ca8fb26b3a36e96790d8d) )
+ ROM_LOAD16_BYTE( "016-c3.c3", 0x200000, 0x100000, CRC(98de7995) SHA1(e33edf4d36c82196d2b474e37be180a05976f558) )
+ ROM_LOAD16_BYTE( "016-c4.c4", 0x200001, 0x100000, CRC(070506e2) SHA1(3a2ec365e1d87a9c5ce1ee9bea88402a8eef4ed7) )
+ROM_END
+
+/****************************************
+ ID-0017
+ . NGM-017
+ NEO-MVS PROG42G / NEO-MVS CHA42G
+ . NGH-017
+ NEO-AEG PROG42G / NEO-AEG CHA42G
+ NEO-AEG PRO42G-1 / NEO-AEG CHA42G-1
+****************************************/
+
+ROM_START( sengoku ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "017-p1.p1", 0x000000, 0x080000, CRC(f8a63983) SHA1(7a10ecb2f0fd8315641374c065d2602107b09e72) )
+ ROM_LOAD16_WORD_SWAP( "017-p2.p2", 0x080000, 0x020000, CRC(3024bbb3) SHA1(88892e1292dd60f35a76f9a22e623d4f0f9693cc) )
+
+ NEO_SFIX_128K( "017-s1.s1", CRC(b246204d) SHA1(73dce64c61fb5bb7e836a8e60f081bb77d80d281) )
+
+ NEO_BIOS_AUDIO_128K( "017-m1.m1", CRC(9b4f34c6) SHA1(7f3a51f47fcbaa598f5c76bc66e2c53c8dfd852d) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "017-v1.v1", 0x000000, 0x100000, CRC(23663295) SHA1(9374a5d9f3de8e6a97c11f07d8b4485ac9d55edb) )
+ ROM_LOAD( "017-v2.v2", 0x100000, 0x100000, CRC(f61e6765) SHA1(1c9b287996947319eb3d288c3d82932cf01039db) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "017-c1.c1", 0x000000, 0x100000, CRC(b4eb82a1) SHA1(79879e2ea78c07d04c88dc9a1ad59604b7a078be) )
+ ROM_LOAD16_BYTE( "017-c2.c2", 0x000001, 0x100000, CRC(d55c550d) SHA1(6110f693aa23710939c04153cf5af26493e4a03f) )
+ ROM_LOAD16_BYTE( "017-c3.c3", 0x200000, 0x100000, CRC(ed51ef65) SHA1(e8a8d86e24454948e51a75c883bc6e4091cbf820) )
+ ROM_LOAD16_BYTE( "017-c4.c4", 0x200001, 0x100000, CRC(f4f3c9cb) SHA1(8faafa89dbd0345218f71f891419d2e4e7578200) )
+ROM_END
+
+ROM_START( sengokuh ) /* AES VERSION (US) */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "017-hp1.p1", 0x000000, 0x080000, CRC(33eccae0) SHA1(000ccf9a9c73df75eeba3f2c367c3a1a9e0a3a6b) )
+ ROM_LOAD16_WORD_SWAP( "017-p2.p2", 0x080000, 0x020000, CRC(3024bbb3) SHA1(88892e1292dd60f35a76f9a22e623d4f0f9693cc) )
+
+ NEO_SFIX_128K( "017-s1.s1", CRC(b246204d) SHA1(73dce64c61fb5bb7e836a8e60f081bb77d80d281) )
+
+ NEO_BIOS_AUDIO_128K( "017-m1.m1", CRC(9b4f34c6) SHA1(7f3a51f47fcbaa598f5c76bc66e2c53c8dfd852d) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "017-v1.v1", 0x000000, 0x100000, CRC(23663295) SHA1(9374a5d9f3de8e6a97c11f07d8b4485ac9d55edb) )
+ ROM_LOAD( "017-v2.v2", 0x100000, 0x100000, CRC(f61e6765) SHA1(1c9b287996947319eb3d288c3d82932cf01039db) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "017-c1.c1", 0x000000, 0x100000, CRC(b4eb82a1) SHA1(79879e2ea78c07d04c88dc9a1ad59604b7a078be) )
+ ROM_LOAD16_BYTE( "017-c2.c2", 0x000001, 0x100000, CRC(d55c550d) SHA1(6110f693aa23710939c04153cf5af26493e4a03f) )
+ ROM_LOAD16_BYTE( "017-c3.c3", 0x200000, 0x100000, CRC(ed51ef65) SHA1(e8a8d86e24454948e51a75c883bc6e4091cbf820) )
+ ROM_LOAD16_BYTE( "017-c4.c4", 0x200001, 0x100000, CRC(f4f3c9cb) SHA1(8faafa89dbd0345218f71f891419d2e4e7578200) )
+ROM_END
+
+/****************************************
+ ID-0018
+ . NGM-018
+ NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1
+ also found on (seen several times; CHA and PROG board are 'manually patched up' with wires and resistors)
+ NEO-MVS PROG42G / NEO-MVS CHA42G
+ . NGH-018
+ NEO-AEG PROG42G / NEO-AEG CHA42G
+ . prototype
+ NEO-AEG PROG-EP / NEO-AEG CHA-EP
+****************************************/
+
+ROM_START( burningf ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "018-p1.p1", 0x000000, 0x080000, CRC(4092c8db) SHA1(df194a4ad2c35e0e18bc053ff9284183444a4666) )
+
+ NEO_SFIX_128K( "018-s1.s1", CRC(6799ea0d) SHA1(ec75ef9dfdcb0b123574fc6d81ebaaadfba32fb5) )
+
+ NEO_BIOS_AUDIO_128K( "018-m1.m1", CRC(0c939ee2) SHA1(57d580d3279e66b9fe66bbcc68529d3384a926ff) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "018-v1.v1", 0x000000, 0x100000, CRC(508c9ffc) SHA1(cd3a97a233a4585f8507116aba85884623cccdc4) )
+ ROM_LOAD( "018-v2.v2", 0x100000, 0x100000, CRC(854ef277) SHA1(4b3083b9c80620064cb44e812a787a700e32a6f3) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "018-c1.c1", 0x000000, 0x100000, CRC(25a25e9b) SHA1(3cf02d0662e190678d0530d7b7d3f425209adf83) )
+ ROM_LOAD16_BYTE( "018-c2.c2", 0x000001, 0x100000, CRC(d4378876) SHA1(45659aa1755d96b992c977042186e47fff68bba9) )
+ ROM_LOAD16_BYTE( "018-c3.c3", 0x200000, 0x100000, CRC(862b60da) SHA1(e2303eb1609f1050f0b4f46693a15e37deb176fb) )
+ ROM_LOAD16_BYTE( "018-c4.c4", 0x200001, 0x100000, CRC(e2e0aff7) SHA1(1c691c092a6e2787de4f433b0eb9252bfdaa7e16) )
+ROM_END
+
+ROM_START( burningfh ) /* AES VERSION (US) */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "018-hp1.p1", 0x000000, 0x080000, CRC(ddffcbf4) SHA1(c646c4bbdb4e9b32df76c90f582ccd69fcc9f8e7) )
+
+ NEO_SFIX_128K( "018-s1.s1", CRC(6799ea0d) SHA1(ec75ef9dfdcb0b123574fc6d81ebaaadfba32fb5) )
+
+ NEO_BIOS_AUDIO_128K( "018-m1.m1", CRC(0c939ee2) SHA1(57d580d3279e66b9fe66bbcc68529d3384a926ff) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "018-v1.v1", 0x000000, 0x100000, CRC(508c9ffc) SHA1(cd3a97a233a4585f8507116aba85884623cccdc4) )
+ ROM_LOAD( "018-v2.v2", 0x100000, 0x100000, CRC(854ef277) SHA1(4b3083b9c80620064cb44e812a787a700e32a6f3) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "018-c1.c1", 0x000000, 0x100000, CRC(25a25e9b) SHA1(3cf02d0662e190678d0530d7b7d3f425209adf83) )
+ ROM_LOAD16_BYTE( "018-c2.c2", 0x000001, 0x100000, CRC(d4378876) SHA1(45659aa1755d96b992c977042186e47fff68bba9) )
+ ROM_LOAD16_BYTE( "018-c3.c3", 0x200000, 0x100000, CRC(862b60da) SHA1(e2303eb1609f1050f0b4f46693a15e37deb176fb) )
+ ROM_LOAD16_BYTE( "018-c4.c4", 0x200001, 0x100000, CRC(e2e0aff7) SHA1(1c691c092a6e2787de4f433b0eb9252bfdaa7e16) )
+ROM_END
+
+ROM_START( burningfp ) /* early prototype - all roms were hand labeled with CRCs, dumps verified against them */ /* AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "018_p1_9397.p1", 0x000001, 0x080000, CRC(5b4032e7) SHA1(55df91dad6f484d3d49c28ab5972700bf71a8662) )
+ ROM_LOAD16_BYTE( "018_p2_e335.p2", 0x000000, 0x080000, CRC(78762f68) SHA1(12170fc6efe75cb5d32624033d3d341032c97548) )
+
+ NEO_SFIX_128K( "018_s1_9899.s1", CRC(f3d130e8) SHA1(2fdeb93f4bb2a60d391cac2822be41661b1e1795) )
+
+ NEO_BIOS_AUDIO_128K( "018_m1_4586.m1", CRC(470dd5d4) SHA1(4291811b4aefe45261a1ae3631b6999fcd74fb3f) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "018_v11_56ac.v11", 0x000000, 0x080000, CRC(dc07ea3c) SHA1(c3e71aaec44ead7ddc581565d16b90030e6db5fd) )
+ ROM_LOAD( "018_v12_db95.v12", 0x080000, 0x080000, CRC(f1ae637c) SHA1(02a4c7d4a544350a314ab7b26d8c9d3baa8f5778) )
+ ROM_LOAD( "018_v21_98dd.v21", 0x100000, 0x080000, CRC(9f3b4eda) SHA1(7f516923d04daa483b4b99c9babba66505931a34) )
+
+ ROM_REGION( 0x080000, "ymsnd.deltat", 0 )
+ ROM_COPY( "ymsnd", 0x100000, 0x00000, 0x80000 )
+
+ ROM_REGION( 0x400000, "sprites", 0 ) // note, ROM_LOAD32_BYTE
+ ROM_LOAD32_BYTE( "018_c1_ba06.c11", 0x000000, 0x80000, CRC(6569018b) SHA1(25040e0a9c2b72900100a22a2a41de5f6c339d8a) )
+ ROM_LOAD32_BYTE( "018_c2_d534.c12", 0x000002, 0x80000, CRC(6949b501) SHA1(d8ee48837faff6cc849046ee8757b2b94d440303) )
+ ROM_LOAD32_BYTE( "018_c3_9d70.c13", 0x000001, 0x80000, CRC(410f653b) SHA1(ce94667721baa7b2c318fc268e3bb9209671c9f5) )
+ ROM_LOAD32_BYTE( "018_c4_bf9d.c14", 0x000003, 0x80000, CRC(d43bf2a5) SHA1(c27985d8973611d02570f469a0d8cb4f5b63b614) )
+ ROM_LOAD32_BYTE( "018_c5_ac9d.c15", 0x200000, 0x80000, CRC(837d09d3) SHA1(d3b06931fca6123604549599544b04529ef34c53) )
+ ROM_LOAD32_BYTE( "018_c6_d2a5.c16", 0x200002, 0x80000, CRC(5fee51e7) SHA1(835c632fa12a1d5b4104cd80b8f686ac80b314a1) )
+ ROM_LOAD32_BYTE( "018_c7_d568.c17", 0x200001, 0x80000, CRC(0f3f0823) SHA1(ec1d681c1795de43d20f30f85956e2473ec39c95) )
+ ROM_LOAD32_BYTE( "018_c8_d256.c18", 0x200003, 0x80000, CRC(67cc9e34) SHA1(dc72a464c1456a4d2f7b992b416a984fb7885e99) )
+ROM_END
+
+/****************************************
+ ID-0019
+ . NGM-019
+ NEO-MVS PROG-HERO / NEO-MVS CHA-32
+ . NGH-019
+ NEO-AEG PROG-HERO / NEO-AEG CHA-32
+****************************************/
+
+ROM_START( lbowling ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "019-p1.p1", 0x000000, 0x080000, CRC(a2de8445) SHA1(893d7ae72b4644123469de143fa35fac1cbcd61e) )
+
+ ROM_REGION( 0x1000, "mcu", 0 ) /* Hitachi HD6301V1 MCU */
+ ROM_LOAD( "hd6301v1p.com", 0x0000, 0x1000, NO_DUMP )
+
+ NEO_SFIX_128K( "019-s1.s1", CRC(5fcdc0ed) SHA1(86415077e7adc3ba6153eeb4fb0c62cf36e903fa) )
+
+ NEO_BIOS_AUDIO_128K( "019-m1.m1", CRC(d568c17d) SHA1(a2e318ed6ad1809c79f3f0853d75e0dd1a2f275c) )
+
+ ROM_REGION( 0x100000, "ymsnd", 0 )
+ ROM_LOAD( "019-v11.v11", 0x000000, 0x080000, CRC(0fb74872) SHA1(38c555926c77576d63472bc075210c42e9ce13a3) )
+ ROM_LOAD( "019-v12.v12", 0x080000, 0x080000, CRC(029faa57) SHA1(7bbaa87e38929ab1e32df5f6a2ec0fd5001e7cdb) )
+
+ ROM_REGION( 0x080000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "019-v21.v21", 0x000000, 0x080000, CRC(2efd5ada) SHA1(8ba70f5f665d566824333075227d9bce1253b8d8) )
+
+ ROM_REGION( 0x100000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "019-c1.c1", 0x000000, 0x080000, CRC(4ccdef18) SHA1(5011e30ec235d0b0a5a513a11d4275777e61acdb) )
+ ROM_LOAD16_BYTE( "019-c2.c2", 0x000001, 0x080000, CRC(d4dd0802) SHA1(82069752028c118d42384a95befde45844f0f247) )
+ROM_END
+
+/****************************************
+ ID-0020
+ . NGM-020
+ NEO-MVS PROG8M42 / NEO-MVS CHA-8M
+ . NGH-020
+ NEO-AEG PROG8M42 / NEO-AEG CHA-8M
+****************************************/
+
+ROM_START( gpilots ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "020-p1.p1", 0x000000, 0x080000, CRC(e6f2fe64) SHA1(50ab82517e077727d97668a4df2b9b96d2e78ab6) )
+ ROM_LOAD16_WORD_SWAP( "020-p2.p2", 0x080000, 0x020000, CRC(edcb22ac) SHA1(505d2db38ae999b7d436e8f2ff56b81796d62b54) )
+
+ NEO_SFIX_128K( "020-s1.s1", CRC(a6d83d53) SHA1(9a8c092f89521cc0b27a385aa72e29cbaca926c5) )
+
+ NEO_BIOS_AUDIO_128K( "020-m1.m1", CRC(48409377) SHA1(0e212d2c76856a90b2c2fdff675239525972ac43) )
+
+ ROM_REGION( 0x180000, "ymsnd", 0 )
+ ROM_LOAD( "020-v11.v11", 0x000000, 0x100000, CRC(1b526c8b) SHA1(2801868d2badcf8aaf5d490e010e4049d81d7bc1) )
+ ROM_LOAD( "020-v12.v12", 0x100000, 0x080000, CRC(4a9e6f03) SHA1(d3ac11f333b03d8a318921bdaefb14598e289a14) )
+
+ ROM_REGION( 0x080000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "020-v21.v21", 0x000000, 0x080000, CRC(7abf113d) SHA1(5b2a0e70f2eaf4638b44702dacd4cb17838fb1d5) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "020-c1.c1", 0x000000, 0x100000, CRC(bd6fe78e) SHA1(50b704862cd79d64fa488e621b079f6e413c33bc) )
+ ROM_LOAD16_BYTE( "020-c2.c2", 0x000001, 0x100000, CRC(5f4a925c) SHA1(71c5ef8141234daaa7025427a6c65e79766973a5) )
+ ROM_LOAD16_BYTE( "020-c3.c3", 0x200000, 0x100000, CRC(d1e42fd0) SHA1(f0d476aebbdc2ce008f5f0783be86d295b24aa44) )
+ ROM_LOAD16_BYTE( "020-c4.c4", 0x200001, 0x100000, CRC(edde439b) SHA1(79be7b10ecdab54c2f77062b8f5fda0e299fa982) )
+ROM_END
+
+ROM_START( gpilotsh ) /* AES VERSION (US) */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "020-hp1.p1", 0x000000, 0x080000, CRC(7cdb01ce) SHA1(32cae2ddf5e26fb7e8a09132e600220db82df3b8) )
+ ROM_LOAD16_WORD_SWAP( "020-p2.p2", 0x080000, 0x020000, CRC(edcb22ac) SHA1(505d2db38ae999b7d436e8f2ff56b81796d62b54) )
+
+ NEO_SFIX_128K( "020-s1.s1", CRC(a6d83d53) SHA1(9a8c092f89521cc0b27a385aa72e29cbaca926c5) )
+
+ NEO_BIOS_AUDIO_128K( "020-m1.m1", CRC(48409377) SHA1(0e212d2c76856a90b2c2fdff675239525972ac43) )
+
+ ROM_REGION( 0x180000, "ymsnd", 0 )
+ ROM_LOAD( "020-v11.v11", 0x000000, 0x100000, CRC(1b526c8b) SHA1(2801868d2badcf8aaf5d490e010e4049d81d7bc1) )
+ ROM_LOAD( "020-v12.v12", 0x100000, 0x080000, CRC(4a9e6f03) SHA1(d3ac11f333b03d8a318921bdaefb14598e289a14) )
+
+ ROM_REGION( 0x080000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "020-v21.v21", 0x000000, 0x080000, CRC(7abf113d) SHA1(5b2a0e70f2eaf4638b44702dacd4cb17838fb1d5) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "020-c1.c1", 0x000000, 0x100000, CRC(bd6fe78e) SHA1(50b704862cd79d64fa488e621b079f6e413c33bc) )
+ ROM_LOAD16_BYTE( "020-c2.c2", 0x000001, 0x100000, CRC(5f4a925c) SHA1(71c5ef8141234daaa7025427a6c65e79766973a5) )
+ ROM_LOAD16_BYTE( "020-c3.c3", 0x200000, 0x100000, CRC(d1e42fd0) SHA1(f0d476aebbdc2ce008f5f0783be86d295b24aa44) )
+ ROM_LOAD16_BYTE( "020-c4.c4", 0x200001, 0x100000, CRC(edde439b) SHA1(79be7b10ecdab54c2f77062b8f5fda0e299fa982) )
+ROM_END
+
+/****************************************
+ ID-0021
+ . NGM-021
+ NEO-MVS PROG-EP / NEO-MVS CHA-32
+ . NGH-021
+ NEO-AEG PROG B / NEO-AEG CHA-32
+****************************************/
+
+ROM_START( joyjoy ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "021-p1.p1", 0x000000, 0x080000, CRC(39c3478f) SHA1(06ebe54c9c4e14c5c31e770013d58b7162359ecc) )
+
+ NEO_SFIX_128K( "021-s1.s1", CRC(6956d778) SHA1(e3757776d60dc07d8e07c9ca61b223b14732f860) )
+
+ NEO_BIOS_AUDIO_256K( "021-m1.m1", CRC(5a4be5e8) SHA1(552f025ce0d51c25f42e1a81cf0d08376ca5475d) )
+
+ ROM_REGION( 0x080000, "ymsnd", 0 )
+ ROM_LOAD( "021-v11.v11", 0x000000, 0x080000, CRC(66c1e5c4) SHA1(7e85420021d4c39c36ed75a1cec567c5610ffce0) )
+
+ ROM_REGION( 0x080000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "021-v21.v21", 0x000000, 0x080000, CRC(8ed20a86) SHA1(d15cba5eac19ea56fdd4877541f1bb3eb755ebba) )
+
+ ROM_REGION( 0x100000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "021-c1.c1", 0x000000, 0x080000, CRC(509250ec) SHA1(d6ddb16d8222088f153a85a905bcb99541a5f2cf) )
+ ROM_LOAD16_BYTE( "021-c2.c2", 0x000001, 0x080000, CRC(09ed5258) SHA1(6bf50cd10236e29146b49e714a0e0ebcfe30a682) )
+ROM_END
+
+/****************************************
+ ID-0022
+ . ALM-001
+ NEO-MVS PROG8M42 / NEO-MVS CHA-8M
+ . ALH-001
+ NEO-AEG PROG 8M42 / NEO-AEG CHA-8M
+****************************************/
+
+ROM_START( bjourney ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "022-p1.p1", 0x000000, 0x100000, CRC(6a2f6d4a) SHA1(b8ca548e56f1c7abcdce415ba7329e0cf698ee13) )
+
+ NEO_SFIX_128K( "022-s1.s1", CRC(843c3624) SHA1(dbdf86c193b7c1d795f8c21f2c103c1d3e18abbe) )
+
+ NEO_BIOS_AUDIO_128K( "022-m1.m1", CRC(8e1d4ab6) SHA1(deabc11ab81e7e68a3e041c03a127ae28d0d7264) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "022-v11.v11", 0x000000, 0x100000, CRC(2cb4ad91) SHA1(169ec7303c4275155a66a88cc08270c24132bb36) )
+ ROM_LOAD( "022-v22.v22", 0x100000, 0x100000, CRC(65a54d13) SHA1(a591fbcedca8f679dacbebcd554e3aa3fd163e92) )
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "022-c1.c1", 0x000000, 0x100000, CRC(4d47a48c) SHA1(6e282285be72583d828e7765b1c1695ecdc44777) )
+ ROM_LOAD16_BYTE( "022-c2.c2", 0x000001, 0x100000, CRC(e8c1491a) SHA1(c468d2556b3de095aaa05edd1bc16d71303e9478) )
+ ROM_LOAD16_BYTE( "022-c3.c3", 0x200000, 0x080000, CRC(66e69753) SHA1(974b823fc62236fbc23e727f25b61a805a707a9e) )
+ ROM_LOAD16_BYTE( "022-c4.c4", 0x200001, 0x080000, CRC(71bfd48a) SHA1(47288be69e6992d09ebef108b4de9ffab6293dc8) )
+ROM_END
+
+/****************************************
+ ID-0023
+ . NGM-023
+ NEO-MVS PROG42G / NEO-MVS CHA42G
+ NEO-MVS PROGTOP / NEO-MVS CHA-256
+ Boards used for the Korean release
+ . NGH-023
+ NEO-AEG PROG42G-1 / NEO-AEG CHA42G-1
+****************************************/
+
+ROM_START( quizdais ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "023-p1.p1", 0x000000, 0x100000, CRC(c488fda3) SHA1(4cdf2f1837fffd720efef42f81f933bdf2ef1402) )
+
+ NEO_SFIX_128K( "023-s1.s1", CRC(ac31818a) SHA1(93c8d67a93606a2e02f12ca4cab849dc3f3de286) )
+
+ NEO_BIOS_AUDIO_128K( "023-m1.m1", CRC(2a2105e0) SHA1(26fc13556fda2dbeb7b5b035abd994e302dc7662) )
+
+ ROM_REGION( 0x100000, "ymsnd", 0 )
+ ROM_LOAD( "023-v1.v1", 0x000000, 0x100000, CRC(a53e5bd3) SHA1(cf115c6478ce155d889e6a5acb962339e08e024b) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "023-c1.c1", 0x000000, 0x100000, CRC(2999535a) SHA1(0deabf771039987b559edc2444eea741bd7ba861) )
+ ROM_LOAD16_BYTE( "023-c2.c2", 0x000001, 0x100000, CRC(876a99e6) SHA1(8d1dcfc0927d7523f8be8203573192406ec654b4) )
+ROM_END
+
+ROM_START( quizdaisk ) /* KOREAN VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "123-p1.p1", 0x000000, 0x100000, CRC(a6f35eae) SHA1(edd3fd5ba8eae2231e2b0a6605fa00e5c6de094a) )
+
+ NEO_SFIX_128K( "123-s1.s1", CRC(53de938a) SHA1(5024fee3b245f8a069d7ecfa6f033b70ed1a5fce) )
+
+ NEO_BIOS_AUDIO_128K( "123-m1.m1", CRC(d67f53f9) SHA1(73a1bd175ae29dd957a907a046884f8715bd0a34) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "123-v1.v1", 0x000000, 0x200000, CRC(986f4af9) SHA1(9e15d2142ec5e5d076582dc1cecfd724b0924f54) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "123-c1.c1", 0x000000, 0x100000, CRC(e579a606) SHA1(b9430ec157902f0707e5d52e69bd5d93792e7118) )
+ ROM_LOAD16_BYTE( "123-c2.c2", 0x000001, 0x100000, CRC(e182c837) SHA1(a8f7648bf21ebd3efe3a49606b53220815a60d0f) )
+ROM_END
+
+/****************************************
+ ID-0024
+ . NGM-024
+ NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1
+ . NGH-024
+
+ . prototype
+ NEO-MVS PROG-EP / NEO-MVS CHA-EPG
+****************************************/
+
+ROM_START( lresort )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "024-p1.p1", 0x000000, 0x080000, CRC(89c4ab97) SHA1(3a1817c427185ea1b44fe52f009c00b0a9007c85) )
+
+ NEO_SFIX_128K( "024-s1.s1", CRC(5cef5cc6) SHA1(9ec305007bdb356e9f8f279beae5e2bcb3f2cf7b) )
+
+ NEO_BIOS_AUDIO_128K( "024-m1.m1", CRC(cec19742) SHA1(ab6c6ba7737e68d2420a0617719c6d4c89039c45) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "024-v1.v1", 0x000000, 0x100000, CRC(efdfa063) SHA1(e4609ecbcc1c820758f229da5145f51285b50555) )
+ ROM_LOAD( "024-v2.v2", 0x100000, 0x100000, CRC(3c7997c0) SHA1(8cb7e8e69892b19d318978370dbc510d51b06a69) )
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "024-c1.c1", 0x000000, 0x100000, CRC(3617c2dc) SHA1(8de2643a618272f8aa1c705363edb007f4a5f5b7) )
+ ROM_LOAD16_BYTE( "024-c2.c2", 0x000001, 0x100000, CRC(3f0a7fd8) SHA1(d0c9c7a9dde9ce175fb243d33ec11fa719d0158c) )
+ ROM_LOAD16_BYTE( "024-c3.c3", 0x200000, 0x080000, CRC(e9f745f8) SHA1(bbe6141da28b0db7bf5cf321d69b7e613e2414d7) )
+ ROM_LOAD16_BYTE( "024-c4.c4", 0x200001, 0x080000, CRC(7382fefb) SHA1(e916dec5bb5462eb9ae9711f08c7388937abb980) )
+ROM_END
+
+ROM_START( lresortp ) /* prototype - all roms were hand labeled with CRCs */ /* MVS VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "024_p1_5937.podd", 0x000001, 0x080000, CRC(8e6008ee) SHA1(6779663118782207156dc9fa9e24e81e30c6391c) )
+ ROM_LOAD16_BYTE( "024_p2_8d37.peven", 0x000000, 0x080000, CRC(6d9ee90f) SHA1(ecd42182988092417bc96db8301ea408e47735f2) )
+
+ NEO_SFIX_128K( "024_s1_22fe.s1", CRC(5cef5cc6) SHA1(9ec305007bdb356e9f8f279beae5e2bcb3f2cf7b) )
+
+ NEO_BIOS_AUDIO_128K( "024_m1_fc7a.m1", CRC(22122875) SHA1(540c21559163381467679f836cb068adaf526659) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "024_v11_b085.v11", 0x000000, 0x080000, CRC(0722da38) SHA1(66a9b463d5277908b3a01c03de82b3de9118f2cb) ) // 024_v11_b085.bin 024-v1.v1 [1/2] IDENTICAL
+ ROM_LOAD( "024_v12_d3b7.v12", 0x080000, 0x080000, CRC(670ce3ec) SHA1(9004aa85d4a9b0ecf9cf9357b073ed55a98fdb02) ) // 024_v12_d3b7.bin 024-v1.v1 [2/2] IDENTICAL
+ ROM_LOAD( "024_v13_a31e.v13", 0x100000, 0x080000, CRC(2e39462b) SHA1(b0a9b1a3377bf0369f3020192505c46ca52927d6) ) // 024_v13_a31e.bin 024-v2.v2 [1/2] IDENTICAL
+ ROM_LOAD( "024_v24_2f0f.v24", 0x180000, 0x080000, CRC(7944754f) SHA1(d42a46c5127c6c62041ebffb0007af8a24abd360) ) // 024_v24_2f0f.bin 024-v2.v2 [2/2] IDENTICAL
+
+ ROM_REGION( 0x400000, "sprites", 0 ) // note, ROM_LOAD32_BYTE
+ ROM_LOAD32_BYTE( "024_c1_b764.c1", 0x000000, 0x80000, CRC(677749ec) SHA1(6f94675e037956a380652ab1056e6f1dec605bec) )
+ ROM_LOAD32_BYTE( "024_c2_1951.c2", 0x000002, 0x80000, CRC(104d7b59) SHA1(404e8776ee8df4ca282eb7b747759af8628ddca1) )
+ ROM_LOAD32_BYTE( "024_c3_0f63.c3", 0x000001, 0x80000, CRC(b0965a74) SHA1(e8026dd4f722ccab9c913261d09ab8843ef56a0e) )
+ ROM_LOAD32_BYTE( "024_c4_c5b5.c4", 0x000003, 0x80000, CRC(dcfc3860) SHA1(8443b455ae8de656adab57f3b7e68919f22d3b9d) )
+ ROM_LOAD32_BYTE( "024_c5_dd03.c5", 0x200000, 0x80000, CRC(50322397) SHA1(3308fbe48ad165b9894a52fc3a8d9898bbbc0c0e) )
+ ROM_LOAD32_BYTE( "024_c6_c81a.c6", 0x200002, 0x80000, CRC(c3c93894) SHA1(f23b9d7e2b54d44c96370dde282bdf45cebd9cba) )
+ ROM_LOAD32_BYTE( "024_c7_5edc.c7", 0x200001, 0x80000, CRC(21faf72b) SHA1(00bf257b06180ae6ede57744cea6257b3488d9f0) )
+ ROM_LOAD32_BYTE( "024_c8_0850.c8", 0x200003, 0x80000, CRC(fb57217b) SHA1(607a98da754e8b1dd94a6432b21a36cc38e06a0f) )
+ROM_END
+
+
+/****************************************
+ ID-0025
+ . NGM-025
+ NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1
+ . NGH-025
+ NEO-AEG PROG42G / NEO-AEG CHA42G
+****************************************/
+
+ROM_START( eightman ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "025-p1.p1", 0x000000, 0x080000, CRC(43344cb0) SHA1(29dfd699f35b0a74e20fedd6c9174c289f0ef6e0) )
+
+ NEO_SFIX_128K( "025-s1.s1", CRC(a402202b) SHA1(75c44e1af459af155f5b892fd18706268dd5e602) )
+
+ NEO_BIOS_AUDIO_128K( "025-m1.m1", CRC(9927034c) SHA1(205665361c5b2ab4f01ec480dd3c9b69db858d09) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "025-v1.v1", 0x000000, 0x100000, CRC(4558558a) SHA1(a4b277703ed67225c652be0d618daeca65a27b88) )
+ ROM_LOAD( "025-v2.v2", 0x100000, 0x100000, CRC(c5e052e9) SHA1(fa1119c90ce4c706a6aa0c17d7bc06aa3068d9b2) )
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "025-c1.c1", 0x000000, 0x100000, CRC(555e16a4) SHA1(1c96f3d2fd0991680fbf627a6cdd26ad2cd60319) )
+ ROM_LOAD16_BYTE( "025-c2.c2", 0x000001, 0x100000, CRC(e1ee51c3) SHA1(da8d074bb4e923ed7b8a154fd31b42f2d65b8e96) )
+ ROM_LOAD16_BYTE( "025-c3.c3", 0x200000, 0x080000, CRC(0923d5b0) SHA1(ab72ba1e3ebf56dd356f9ad181f986b1360a1089) )
+ ROM_LOAD16_BYTE( "025-c4.c4", 0x200001, 0x080000, CRC(e3eca67b) SHA1(88154cbc1a261c2f425430119ebc08a30adc9675) )
+ROM_END
+
+/****************************************
+ ID-0026
+ Fun Fun Brothers (prototype) 1991 Alpha
+****************************************/
+
+/****************************************
+ ID-0027
+ . MOM-001
+ NEO-MVS PROG-8MB / NEO-MVS CHA-8M
+ . MOH-001
+ NEO-AEG PROG-8MB / NEO-AEG CHA-8M
+****************************************/
+
+ROM_START( minasan ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "027-p1.p1", 0x000000, 0x080000, CRC(c8381327) SHA1(c8f8be0ba276c6d12ef13d05af3cf83a2b924894) )
+
+ NEO_SFIX_128K( "027-s1.s1", CRC(e5824baa) SHA1(8230ff7fe3cabeacecc762d90a084e893db84906) )
+
+ NEO_BIOS_AUDIO_128K( "027-m1.m1", CRC(add5a226) SHA1(99995bef2584abbba16777bac52f55523f7aa97d) )
+
+ ROM_DEFAULT_BIOS( "japan" ) /* so the mahjong panel will work in the service menu */
+
+ ROM_REGION( 0x100000, "ymsnd", 0 )
+ ROM_LOAD( "027-v11.v11", 0x000000, 0x100000, CRC(59ad4459) SHA1(bbb8ba8a8e337dd2946eefda4757e80d0547d54a) )
+
+ ROM_REGION( 0x100000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "027-v21.v21", 0x000000, 0x100000, CRC(df5b4eeb) SHA1(134f3bcc3bb82e2a5711496af1019f343f9c0f7e) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "027-c1.c1", 0x000000, 0x100000, CRC(d0086f94) SHA1(7d6579530ccb5188f653be69b1df17e47e40e7a6) )
+ ROM_LOAD16_BYTE( "027-c2.c2", 0x000001, 0x100000, CRC(da61f5a6) SHA1(82c5b4e5c5c5e30a3fd1c2e11c6157f39d033c42) )
+ ROM_LOAD16_BYTE( "027-c3.c3", 0x200000, 0x100000, CRC(08df1228) SHA1(288b7ad328c2249f28d17df4dad3584995dca7bf) )
+ ROM_LOAD16_BYTE( "027-c4.c4", 0x200001, 0x100000, CRC(54e87696) SHA1(90816dc86be3983dc57f56ededf7738475c0c61e) )
+ROM_END
+
+/****************************************
+ ID-0028
+ Dunk Star (prototype) 1991 Sammy
+****************************************/
+
+/****************************************
+ ID-0029
+ . ??M-029
+ NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1
+ . ??H-029
+****************************************/
+
+ROM_START( legendos )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "029-p1.p1", 0x000000, 0x080000, CRC(9d563f19) SHA1(9bff7bf9fdcf81a0a6c4ce3e196097d4f05e67b6) )
+
+ NEO_SFIX_128K( "029-s1.s1", CRC(bcd502f0) SHA1(a3400f52c037aa6a42e59e602cc24fa45fcbc951) )
+
+ NEO_BIOS_AUDIO_128K( "029-m1.m1", CRC(6f2843f0) SHA1(975fb1598b87a2798fff05e951fca2e2e0329e79) )
+
+ ROM_REGION( 0x100000, "ymsnd", 0 )
+ ROM_LOAD( "029-v1.v1", 0x000000, 0x100000, CRC(85065452) SHA1(7154b7c59b16c32753ac6b5790fb50b51ce30a20) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "029-c1.c1", 0x000000, 0x100000, CRC(2f5ab875) SHA1(3e060973bba41a6c22ff7054104bdc5eee1fa13a) )
+ ROM_LOAD16_BYTE( "029-c2.c2", 0x000001, 0x100000, CRC(318b2711) SHA1(7014110cee98280317e1189f306ca40652b61f6f) )
+ ROM_LOAD16_BYTE( "029-c3.c3", 0x200000, 0x100000, CRC(6bc52cb2) SHA1(14323a4664b7dcbcde82e594168e535d7a921e44) )
+ ROM_LOAD16_BYTE( "029-c4.c4", 0x200001, 0x100000, CRC(37ef298c) SHA1(7a0c4c896dc3e730e06dcadbf00cf354f08a4466) )
+ROM_END
+
+/****************************************
+ ID-0030
+ . NGM-030
+ NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1
+ . NGH-030
+ NEO-AEG PROG42G-1 / NEO-AEG CHA42G-1
+ NEO-AEG PROG42G / NEO-AEG CHA42G
+****************************************/
+
+ROM_START( 2020bb )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "030-p1.p1", 0x000000, 0x080000, CRC(d396c9cb) SHA1(47ba421d14d05b965a8d44e7475b227a208e5a07) )
+ /* also found AES set with p1 label 030-P1 on TC534200 on NEO-AEG PROG42G and m1 label 030-M1 on TC531001 on NEO-AEG CHA42G; other chip labels are the same */
+
+ NEO_SFIX_128K( "030-s1.s1", CRC(7015b8fc) SHA1(8c09bc3e6c62e0f7c9557c1e10c901be325bae7f) )
+
+ NEO_BIOS_AUDIO_128K( "030-m1.m1", CRC(4cf466ec) SHA1(6a003b53c7a4af9d7529e2c10f27ffc4e58dcda5) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "030-v1.v1", 0x000000, 0x100000, CRC(d4ca364e) SHA1(b0573744b0ea2ef1e2167a225f0d254883f5af04) )
+ ROM_LOAD( "030-v2.v2", 0x100000, 0x100000, CRC(54994455) SHA1(76eb62b86e8ed51a77f44313d5cc8091b3f58d57) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "030-c1.c1", 0x000000, 0x100000, CRC(4f5e19bd) SHA1(ef7975c4b33a7aea4a25a385f604799f054d3200) )
+ ROM_LOAD16_BYTE( "030-c2.c2", 0x000001, 0x100000, CRC(d6314bf0) SHA1(0920cc580d7997fcb0170dd619af2f305d635577) )
+ ROM_LOAD16_BYTE( "030-c3.c3", 0x200000, 0x100000, CRC(47fddfee) SHA1(297c505a63448c999a2510c27bf4549102134db8) )
+ ROM_LOAD16_BYTE( "030-c4.c4", 0x200001, 0x100000, CRC(780d1c4e) SHA1(2e2cf9de828e3b48642dd2203637103438c62142) )
+ROM_END
+
+ROM_START( 2020bba ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "030-epr.p1", 0x000000, 0x080000, CRC(c59be3dd) SHA1(4fbd462c1c18e85a252c58b04b54fd3b82b46cb0) )
+ /* P1 on eprom, correct chip label unknown */
+
+ NEO_SFIX_128K( "030-s1.s1", CRC(7015b8fc) SHA1(8c09bc3e6c62e0f7c9557c1e10c901be325bae7f) )
+
+ NEO_BIOS_AUDIO_128K( "030-m1.m1", CRC(4cf466ec) SHA1(6a003b53c7a4af9d7529e2c10f27ffc4e58dcda5) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "030-v1.v1", 0x000000, 0x100000, CRC(d4ca364e) SHA1(b0573744b0ea2ef1e2167a225f0d254883f5af04) )
+ ROM_LOAD( "030-v2.v2", 0x100000, 0x100000, CRC(54994455) SHA1(76eb62b86e8ed51a77f44313d5cc8091b3f58d57) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "030-c1.c1", 0x000000, 0x100000, CRC(4f5e19bd) SHA1(ef7975c4b33a7aea4a25a385f604799f054d3200) )
+ ROM_LOAD16_BYTE( "030-c2.c2", 0x000001, 0x100000, CRC(d6314bf0) SHA1(0920cc580d7997fcb0170dd619af2f305d635577) )
+ ROM_LOAD16_BYTE( "030-c3.c3", 0x200000, 0x100000, CRC(47fddfee) SHA1(297c505a63448c999a2510c27bf4549102134db8) )
+ ROM_LOAD16_BYTE( "030-c4.c4", 0x200001, 0x100000, CRC(780d1c4e) SHA1(2e2cf9de828e3b48642dd2203637103438c62142) )
+ROM_END
+
+ROM_START( 2020bbh )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "030-pg1.p1", 0x000000, 0x080000, BAD_DUMP CRC(12d048d7) SHA1(ee0d03a565b11ca3bee2d24f62ff46a85ef18d90) )
+ /* Chip label p1h does not exist, renamed temporarly to pg1, marked BAD_DUMP. This needs to be verified. */
+
+ NEO_SFIX_128K( "030-s1.s1", CRC(7015b8fc) SHA1(8c09bc3e6c62e0f7c9557c1e10c901be325bae7f) )
+
+ NEO_BIOS_AUDIO_128K( "030-m1.m1", CRC(4cf466ec) SHA1(6a003b53c7a4af9d7529e2c10f27ffc4e58dcda5) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "030-v1.v1", 0x000000, 0x100000, CRC(d4ca364e) SHA1(b0573744b0ea2ef1e2167a225f0d254883f5af04) )
+ ROM_LOAD( "030-v2.v2", 0x100000, 0x100000, CRC(54994455) SHA1(76eb62b86e8ed51a77f44313d5cc8091b3f58d57) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "030-c1.c1", 0x000000, 0x100000, CRC(4f5e19bd) SHA1(ef7975c4b33a7aea4a25a385f604799f054d3200) )
+ ROM_LOAD16_BYTE( "030-c2.c2", 0x000001, 0x100000, CRC(d6314bf0) SHA1(0920cc580d7997fcb0170dd619af2f305d635577) )
+ ROM_LOAD16_BYTE( "030-c3.c3", 0x200000, 0x100000, CRC(47fddfee) SHA1(297c505a63448c999a2510c27bf4549102134db8) )
+ ROM_LOAD16_BYTE( "030-c4.c4", 0x200001, 0x100000, CRC(780d1c4e) SHA1(2e2cf9de828e3b48642dd2203637103438c62142) )
+ROM_END
+
+/****************************************
+ ID-0031
+ . NGM-031
+ NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1
+ . NGH-031
+ NEO-AEG PROG42G-1 / NEO-AEG CHA42G-1
+****************************************/
+
+ROM_START( socbrawl ) /* MVS VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "031-pg1.p1", 0x000000, 0x080000, CRC(17f034a7) SHA1(2e66c7bd93a08efe63c4894494db50bbf58f60e4) )
+
+ NEO_SFIX_128K( "031-s1.s1", CRC(4c117174) SHA1(26e52c4f628338a9aa1c159517cdf873f738fb98) )
+
+ NEO_BIOS_AUDIO_128K( "031-m1.m1", CRC(cb37427c) SHA1(99efe9600ebeda48331f396e3203c7588bdb7d24) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "031-v1.v1", 0x000000, 0x100000, CRC(cc78497e) SHA1(895bd647150fae9b2259ef043ed681f4c4de66ea) )
+ ROM_LOAD( "031-v2.v2", 0x100000, 0x100000, CRC(dda043c6) SHA1(08165a59700ab6b1e523079dd2a3549e520cc594) )
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "031-c1.c1", 0x000000, 0x100000, CRC(bd0a4eb8) SHA1(b67988cb3e550d083e81c9bd436da55b242785ed) )
+ ROM_LOAD16_BYTE( "031-c2.c2", 0x000001, 0x100000, CRC(efde5382) SHA1(e42789c8d87ee3d4549d0a903e990c03338cbbd8) )
+ ROM_LOAD16_BYTE( "031-c3.c3", 0x200000, 0x080000, CRC(580f7f33) SHA1(f4f95a7c8de00e1366a723fc4cd0e8c1905af636) )
+ ROM_LOAD16_BYTE( "031-c4.c4", 0x200001, 0x080000, CRC(ed297de8) SHA1(616f8fa4c86231f3e79faf9f69f8bb909cbc35f0) )
+ROM_END
+
+ROM_START( socbrawlh ) /* AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "031-p1.p1", 0x000000, 0x080000, CRC(a2801c24) SHA1(627d76ff0740ca29586f37b268f47fb469822529) )
+
+ NEO_SFIX_128K( "031-s1.s1", CRC(4c117174) SHA1(26e52c4f628338a9aa1c159517cdf873f738fb98) )
+
+ NEO_BIOS_AUDIO_128K( "031-m1.m1", CRC(cb37427c) SHA1(99efe9600ebeda48331f396e3203c7588bdb7d24) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "031-v1.v1", 0x000000, 0x100000, CRC(cc78497e) SHA1(895bd647150fae9b2259ef043ed681f4c4de66ea) )
+ ROM_LOAD( "031-v2.v2", 0x100000, 0x100000, CRC(dda043c6) SHA1(08165a59700ab6b1e523079dd2a3549e520cc594) )
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "031-c1.c1", 0x000000, 0x100000, CRC(bd0a4eb8) SHA1(b67988cb3e550d083e81c9bd436da55b242785ed) )
+ ROM_LOAD16_BYTE( "031-c2.c2", 0x000001, 0x100000, CRC(efde5382) SHA1(e42789c8d87ee3d4549d0a903e990c03338cbbd8) )
+ ROM_LOAD16_BYTE( "031-c3.c3", 0x200000, 0x080000, CRC(580f7f33) SHA1(f4f95a7c8de00e1366a723fc4cd0e8c1905af636) )
+ ROM_LOAD16_BYTE( "031-c4.c4", 0x200001, 0x080000, CRC(ed297de8) SHA1(616f8fa4c86231f3e79faf9f69f8bb909cbc35f0) )
+ROM_END
+
+/****************************************
+ ID-0032
+ . NGM-032
+ NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1
+ . NGH-032
+ NEO-AEG PROG42G-1 / NEO-AEG CHA42G-1
+****************************************/
+
+ROM_START( roboarmy )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "032-p1.p1", 0x000000, 0x080000, CRC(cd11cbd4) SHA1(23163e3da2f07e830a7f4a02aea1cb01a54ccbf3) )
+ /* also found AES and MVS set with p1 on eprom on NEO-AEG PROG42G-1 and NEO-MVS PROG42G-COM; correct chip label unknown */
+
+ NEO_SFIX_128K( "032-s1.s1", CRC(ac0daa1b) SHA1(93bae4697dc403fce19422752a514326ccf66a91) )
+
+ NEO_BIOS_AUDIO_128K( "032-m1.m1", CRC(35ec952d) SHA1(8aed30e26d7e2c70dbce5de752df416091066f7b) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "032-v1.v1", 0x000000, 0x100000, CRC(63791533) SHA1(4479e9308cdc906b9e03b985303f4ebedd00512f) )
+ ROM_LOAD( "032-v2.v2", 0x100000, 0x100000, CRC(eb95de70) SHA1(b34885201116d2b3bbdee15ec7b5961cf5c069e1) )
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "032-c1.c1", 0x000000, 0x100000, CRC(97984c6c) SHA1(deea59c0892f05dc7db98cb57b3eb83688dc57f0) )
+ ROM_LOAD16_BYTE( "032-c2.c2", 0x000001, 0x100000, CRC(65773122) SHA1(2c0162a8e971e5e57933e4ae16040bf824ffdefe) )
+ ROM_LOAD16_BYTE( "032-c3.c3", 0x200000, 0x080000, CRC(40adfccd) SHA1(b11f866dd70ba0ed9123424508355cb948b19bdc) )
+ ROM_LOAD16_BYTE( "032-c4.c4", 0x200001, 0x080000, CRC(462571de) SHA1(5c3d610d492f91564423873b3b434dcda700373f) )
+ROM_END
+
+/****************************************
+ ID-0033
+ . NGM-033
+ NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1
+ . NGH-033
+ NEO-AEG PROG42G-1 / NEO-AEG CHA42G-1
+****************************************/
+
+ROM_START( fatfury1 ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "033-p1.p1", 0x000000, 0x080000, CRC(47ebdc2f) SHA1(d46786502920fb510f1999db00c5e09fb641c0bd) )
+ ROM_LOAD16_WORD_SWAP( "033-p2.p2", 0x080000, 0x020000, CRC(c473af1c) SHA1(4919eeca20abe807493872ca7c79a5d1f496fe68) )
+
+ NEO_SFIX_128K( "033-s1.s1", CRC(3c3bdf8c) SHA1(2f3e5feed6c27850b2a0f6fae0b97041690e944c) )
+
+ NEO_BIOS_AUDIO_128K( "033-m1.m1", CRC(5be10ffd) SHA1(90a5e6cbbc58a7883cd2a3a597180d631a466882) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "033-v1.v1", 0x000000, 0x100000, CRC(212fd20d) SHA1(120c040db8c01a6f140eea03725448bfa9ca98c2) )
+ ROM_LOAD( "033-v2.v2", 0x100000, 0x100000, CRC(fa2ae47f) SHA1(80d0ba4cd30aab59b6f0db8fa341387bd7388afc) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "033-c1.c1", 0x000000, 0x100000, CRC(74317e54) SHA1(67b9c2814a12603b959612456f59de55f9bf6f57) )
+ ROM_LOAD16_BYTE( "033-c2.c2", 0x000001, 0x100000, CRC(5bb952f3) SHA1(ea964bbcc0408b6ae07cbb5043d003281b1aca15) )
+ ROM_LOAD16_BYTE( "033-c3.c3", 0x200000, 0x100000, CRC(9b714a7c) SHA1(b62bdcede3207d062a89e0a4a9adf706101bb681) )
+ ROM_LOAD16_BYTE( "033-c4.c4", 0x200001, 0x100000, CRC(9397476a) SHA1(a12dbb74020aeb6ebf24ec2abbfba5129cabcb7d) )
+ROM_END
+
+/****************************************
+ ID-0034
+ . NGM-034
+ NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1
+ . NGH-034
+ NEO-AEG PROG42G-1 / NEO-AEG CHA42G-1
+****************************************/
+
+ROM_START( fbfrenzy ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "034-p1.p1", 0x000000, 0x080000, CRC(cdef6b19) SHA1(97482db0dffc6d625fb41fa38449c0a74d741a72) )
+
+ NEO_SFIX_128K( "034-s1.s1", CRC(8472ed44) SHA1(42e1a9671dddd090d2a634cff986f6c73ba08b70) )
+
+ NEO_BIOS_AUDIO_128K( "034-m1.m1", CRC(f41b16b8) SHA1(f3e1cfc4cd2c5baece176f169906aa796367d303) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "034-v1.v1", 0x000000, 0x100000, CRC(50c9d0dd) SHA1(2b3f2875b00e5f307d274128bd73c1521a7d901b) )
+ ROM_LOAD( "034-v2.v2", 0x100000, 0x100000, CRC(5aa15686) SHA1(efe47954827a98d539ba719347c5f8aa60e6338b) )
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "034-c1.c1", 0x000000, 0x100000, CRC(91c56e78) SHA1(2944d49ebfc71239d345209ca7f25993c2cc5a77) )
+ ROM_LOAD16_BYTE( "034-c2.c2", 0x000001, 0x100000, CRC(9743ea2f) SHA1(cf4fccdf10d521d555e92bc24123142393c2b3bb) )
+ ROM_LOAD16_BYTE( "034-c3.c3", 0x200000, 0x080000, CRC(e5aa65f5) SHA1(714356a2cee976ec0f515b1034ce971018e5c02e) )
+ ROM_LOAD16_BYTE( "034-c4.c4", 0x200001, 0x080000, CRC(0eb138cc) SHA1(21d31e1f136c674caa6dd44073281cd07b72ea9b) )
+ROM_END
+
+/****************************************
+ ID-0035
+ Mystic Wand (prototype) 1991 Alpha
+****************************************/
+
+/****************************************
+ ID-0036
+ . MOM-002
+ NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1
+ NEO-MVS PROG42G-COM / NEO-MVS CHA42G-1
+ . MOH-002
+ NEO-AEG PROG42G / NEO-AEG CHA42G
+****************************************/
+
+ROM_START( bakatono ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "036-p1.p1", 0x000000, 0x080000, CRC(1c66b6fa) SHA1(6c50cc452971c46c763ae0b2def95792671a1798) )
+
+ NEO_SFIX_128K( "036-s1.s1", CRC(f3ef4485) SHA1(c30bfceed7e669e4c97b0b3ec2e9f4271e5b6662) )
+
+ NEO_BIOS_AUDIO_128K( "036-m1.m1", CRC(f1385b96) SHA1(e7e3d1484188a115e262511116aaf466b8b1f428) )
+
+ ROM_DEFAULT_BIOS( "japan" ) /* so the mahjong panel will work in the service menu */
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "036-v1.v1", 0x000000, 0x100000, CRC(1c335dce) SHA1(493c273fa71bf81861a20af4c4eaae159e169f39) )
+ ROM_LOAD( "036-v2.v2", 0x100000, 0x100000, CRC(bbf79342) SHA1(45a4f40e415cdf35c3073851506648c8f7d53958) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "036-c1.c1", 0x000000, 0x100000, CRC(fe7f1010) SHA1(5b6f5053821f4da8dc3768371e2cd51bb29da963) )
+ ROM_LOAD16_BYTE( "036-c2.c2", 0x000001, 0x100000, CRC(bbf003f5) SHA1(054b2a3327e038836eece652055bb84c115cf8ed) )
+ ROM_LOAD16_BYTE( "036-c3.c3", 0x200000, 0x100000, CRC(9ac0708e) SHA1(8decfe06d73a3dd3c3cf280719978fcf6d559d29) )
+ ROM_LOAD16_BYTE( "036-c4.c4", 0x200001, 0x100000, CRC(f2577d22) SHA1(a37db8055ca4680e244c556dc6df8bdba16c2083) )
+ROM_END
+
+/****************************************
+ ID-0037
+ . ALM-002
+ NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1
+ . ALH-002
+ NEO-AEG PROG42G / NEO-AEG CHA42G
+****************************************/
+
+ROM_START( crsword ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "037-p1.p1", 0x000000, 0x080000, CRC(e7f2553c) SHA1(8469ecb900477feed05ae3311fe9515019bbec2a) )
+
+ NEO_SFIX_128K( "037-s1.s1", CRC(74651f27) SHA1(bff7ff2429d2be82c1647abac2ee45b339b3b310) )
+
+ NEO_BIOS_AUDIO_128K( "037-m1.m1", CRC(9504b2c6) SHA1(9ce8e681b9df6eacd0d23a36bad836bd5074233d) )
+
+ ROM_REGION( 0x100000, "ymsnd", 0 )
+ ROM_LOAD( "037-v1.v1", 0x000000, 0x100000, CRC(61fedf65) SHA1(98f31d1e23bf7c1f7844e67f14707a704134042e) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "037-c1.c1", 0x000000, 0x100000, CRC(09df6892) SHA1(df2579dcf9c9dc88d461212cb74de106be2983c1) )
+ ROM_LOAD16_BYTE( "037-c2.c2", 0x000001, 0x100000, CRC(ac122a78) SHA1(7bfa4d29b7d7d9443f64d81caeafa74fe05c606e) )
+ ROM_LOAD16_BYTE( "037-c3.c3", 0x200000, 0x100000, CRC(9d7ed1ca) SHA1(2bbd25dc3a3f825d0af79a418f06a23a1bf03cc0) )
+ ROM_LOAD16_BYTE( "037-c4.c4", 0x200001, 0x100000, CRC(4a24395d) SHA1(943f911f40985db901eaef4c28dfcda299fca73e) )
+ROM_END
+
+/****************************************
+ ID-0038
+ . ALM-003
+ NEO-MVS PROG42G-COM / NEO-MVS CHA42G-1
+ . ALH-003
+ NEO-AEG PROG42G-COM / NEO-AEG CHA42G-1
+****************************************/
+
+ROM_START( trally ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "038-p1.p1", 0x000000, 0x080000, CRC(1e52a576) SHA1(a1cb56354c3378e955b0cd482c3c41ae15add952) )
+ ROM_LOAD16_WORD_SWAP( "038-p2.p2", 0x080000, 0x080000, CRC(a5193e2f) SHA1(96803480439e90da23cdca70d59ff519ee85beeb) )
+
+ ROM_REGION( 0x1000, "mcu", 0 ) /* Hitachi HD6301V1 MCU */
+ ROM_LOAD( "hd6301v1p.hd6301v1", 0x0000, 0x1000, NO_DUMP )
+
+ NEO_SFIX_128K( "038-s1.s1", CRC(fff62ae3) SHA1(6510a762ea41557a8938cbfc0557cd5921306061) )
+
+ NEO_BIOS_AUDIO_128K( "038-m1.m1", CRC(0908707e) SHA1(df7489ea6abf84d7f137ba7a8f52a4fd1b088fd7) )
+
+ ROM_REGION( 0x180000, "ymsnd", 0 )
+ ROM_LOAD( "038-v1.v1", 0x000000, 0x100000, CRC(5ccd9fd5) SHA1(c3c8c758a320c39e4ceb0b6d9f188ed6d122eec4) )
+ ROM_LOAD( "038-v2.v2", 0x100000, 0x080000, CRC(ddd8d1e6) SHA1(65c819fa2392f264f5a1a0a4967c96775732500b) )
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "038-c1.c1", 0x000000, 0x100000, CRC(c58323d4) SHA1(a6bd277471a4b612d165f8b804f3cb662f499b70) )
+ ROM_LOAD16_BYTE( "038-c2.c2", 0x000001, 0x100000, CRC(bba9c29e) SHA1(b70bbfdfa8c4f9ea76406530e86b16e42498d284) )
+ ROM_LOAD16_BYTE( "038-c3.c3", 0x200000, 0x080000, CRC(3bb7b9d6) SHA1(bc1eae6181ad5abf79736afc8db4ca34113d43f8) )
+ ROM_LOAD16_BYTE( "038-c4.c4", 0x200001, 0x080000, CRC(a4513ecf) SHA1(934aa103c226eac55157b44d7b4dfa35515322c3) )
+ROM_END
+
+/****************************************
+ ID-0039
+ . NGM-039
+ NEO-MVS PROG16 / NEO-MVS CHA42G-1
+ . NGH-039
+ NEO-AEG PROG16 / NEO-AEG CHA42G-1
+****************************************/
+
+ROM_START( kotm2 ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "039-p1.p1", 0x000000, 0x080000, CRC(b372d54c) SHA1(b70fc6f72e16a66b6e144cc01370548e3398b8b8) )
+ ROM_LOAD16_WORD_SWAP( "039-p2.p2", 0x080000, 0x080000, CRC(28661afe) SHA1(6c85ff6ab334b1ca744f726f42dac211537e7315) )
+
+ NEO_SFIX_128K( "039-s1.s1", CRC(63ee053a) SHA1(7d4b92bd022708975b1470e8f24d1f5a712e1b94) )
+
+ NEO_BIOS_AUDIO_128K( "039-m1.m1", CRC(0c5b2ad5) SHA1(15eb5ea10fecdbdbcfd06225ae6d88bb239592e7) )
+
+ ROM_REGION( 0x300000, "ymsnd", 0 )
+ ROM_LOAD( "039-v2.v2", 0x000000, 0x200000, CRC(86d34b25) SHA1(89bdb614b0c63d678962da52e2f596750d20828c) )
+ ROM_LOAD( "039-v4.v4", 0x200000, 0x100000, CRC(8fa62a0b) SHA1(58ac2fdd73c542eb8178cfc4adfa0e5940183283) )
+
+ ROM_REGION( 0x600000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "039-c1.c1", 0x000000, 0x100000, CRC(6d1c4aa9) SHA1(4fbc9d7cb37522ec298eefbe38c75a2d050fbb4a) )
+ ROM_CONTINUE( 0x400000, 0x100000 )
+ ROM_LOAD16_BYTE( "039-c2.c2", 0x000001, 0x100000, CRC(f7b75337) SHA1(4d85f85948c3e6ed38b0b0ccda79de3ce026e2d9) )
+ ROM_CONTINUE( 0x400001, 0x100000 )
+ ROM_LOAD16_BYTE( "039-c3.c3", 0x200000, 0x080000, CRC(bfc4f0b2) SHA1(f4abe2b52882b966412f3b503b8f2c8f49b57968) )
+ ROM_LOAD16_BYTE( "039-c4.c4", 0x200001, 0x080000, CRC(81c9c250) SHA1(e3a34ff69081a8681b5ca895915892dcdccfa7aa) )
+ROM_END
+
+ROM_START( kotm2p ) /* fairly late prototype release, only the code differs from the main set */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "proto_039-p1.p1", 0x000001, 0x080000, CRC(3c1d17e7) SHA1(aeaff465fafa46ded903ed4e8cb8cd05de8dc096) )
+ ROM_LOAD16_BYTE( "proto_039-p2.p2", 0x000000, 0x080000, CRC(bc9691f0) SHA1(3854659b952d4f8c2edd5d59858a61ce6d518604) )
+
+ NEO_SFIX_128K( "039-s1.s1", CRC(63ee053a) SHA1(7d4b92bd022708975b1470e8f24d1f5a712e1b94) )
+
+ NEO_BIOS_AUDIO_128K( "039-m1.m1", CRC(0c5b2ad5) SHA1(15eb5ea10fecdbdbcfd06225ae6d88bb239592e7) )
+
+ // same data as main set, but prototype board layout
+ ROM_REGION( 0x300000, "ymsnd", 0 )
+ ROM_LOAD( "proto_039-v1.v1", 0x000000, 0x080000, CRC(dd3566f1) SHA1(f7c2a3747aaab2bc57cdfa33d8bb9fab057b5214) )
+ ROM_LOAD( "proto_039-v2.v2", 0x080000, 0x080000, CRC(57f60274) SHA1(7e17740aa05cf7ad4f9084e147600a8eb82c7284) )
+ ROM_LOAD( "proto_039-v3.v3", 0x100000, 0x080000, CRC(0f008a07) SHA1(ed243a0449232bbea409308c3fec7e057fcd8501) )
+ ROM_LOAD( "proto_039-v4.v4", 0x180000, 0x080000, CRC(1943d0fe) SHA1(47fb716c76ea6b5fe64204ff6d72b7feea10bda9) )
+ ROM_LOAD( "proto_039-v5.v5", 0x200000, 0x080000, CRC(13be045b) SHA1(0e3713ae6b164ebae434c0f18c466365b26b9a77) )
+ ROM_LOAD( "proto_039-v6.v6", 0x280000, 0x080000, CRC(d1dd3fd6) SHA1(052b92168a76cf3a97c8cacebcc3ebab228726df) )
+
+ // same data as main set, but prototype board layout
+ ROM_REGION( 0x600000, "sprites", 0 ) // note, ROM_LOAD32_BYTE
+ ROM_LOAD32_BYTE( "proto_039-c1.c1", 0x000000, 0x100000, CRC(7192a787) SHA1(7bef6ce79c618103485480aee3c6f856968eb51f) )
+ ROM_LOAD32_BYTE( "proto_039-c2.c2", 0x000002, 0x100000, CRC(7157eca1) SHA1(65f36c6a3834775b04076d2c38a6047bffe9a8cf) )
+ ROM_LOAD32_BYTE( "proto_039-c3.c3", 0x000001, 0x100000, CRC(11d75727) SHA1(5a4c7b5ca3f1195e7853b45c5e71c13fe74d16e9) )
+ ROM_LOAD32_BYTE( "proto_039-c4.c4", 0x000003, 0x100000, CRC(7ad48b28) SHA1(27e65d948f08c231107cb1a810e2b06731091fc3) )
+ ROM_LOAD32_BYTE( "proto_039-c5.c5", 0x400000, 0x080000, CRC(5bdaf9ca) SHA1(60620d42ac6cd0e5da019fede2814a2f4171ff3f) )
+ ROM_LOAD32_BYTE( "proto_039-c6.c6", 0x400002, 0x080000, CRC(21d4be8c) SHA1(f1b19d37d52d21584f304b7d37d5c096b58219d6) )
+ ROM_LOAD32_BYTE( "proto_039-c7.c7", 0x400001, 0x080000, CRC(da55fd00) SHA1(52804f955597591fdd1d7478dc340b36d3c08c4a) )
+ ROM_LOAD32_BYTE( "proto_039-c8.c8", 0x400003, 0x080000, CRC(592e9267) SHA1(0d27de59970ccbcaa1d47909ea3d741ffb0d9e07) )
+ROM_END
+
+/****************************************
+ ID-0040
+ . NGM-040
+ NEO-MVS PROG 4096 / NEO-MVS CHA 42G-2
+ . NGH-040
+ NEO-AEG PROG16 / NEO-AEG CHA42G-1
+****************************************/
+
+ROM_START( sengoku2 )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "040-p1.p1", 0x000000, 0x100000, CRC(6dde02c2) SHA1(e432e63feb88c71629ec96aa84650dcfe356a551) )
+
+ NEO_SFIX_128K( "040-s1.s1", CRC(cd9802a3) SHA1(f685d4638f4f68e7e3f101c0c39128454536721b) )
+
+ NEO_BIOS_AUDIO_128K( "040-m1.m1", CRC(d4de4bca) SHA1(ecf604d06f01d40b04e285facef66a6ae2d35661) )
+
+ ROM_REGION( 0x300000, "ymsnd", 0 )
+ ROM_LOAD( "040-v1.v1", 0x000000, 0x200000, CRC(71cb4b5d) SHA1(56d9aca1d476c19c7d0f707176a8fed53e0189b7) )
+ // AES has different label, data is the same: 040-v1.v2
+ ROM_LOAD( "040-v2.v2", 0x200000, 0x100000, CRC(c5cece01) SHA1(923a3377dac1919e8c3d9ab316902250caa4785f) )
+ // AES has different label, data is the same: 040-v2.v4
+
+ ROM_REGION( 0x600000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "040-c1.c1", 0x000000, 0x100000, CRC(faa8ea99) SHA1(714575e57ea1990612f960ec42b38d2e157ad400) )
+ ROM_CONTINUE( 0x400000, 0x100000 )
+ ROM_LOAD16_BYTE( "040-c2.c2", 0x000001, 0x100000, CRC(87d0ec65) SHA1(23645e0cf859fb4cec3745b3846ca0ef64c689fb) )
+ ROM_CONTINUE( 0x400001, 0x100000 )
+ ROM_LOAD16_BYTE( "040-c3.c3", 0x200000, 0x080000, CRC(24b5ba80) SHA1(29d58a6b56bd24ee2046a8d45e023b4d7ab7685b) )
+ ROM_LOAD16_BYTE( "040-c4.c4", 0x200001, 0x080000, CRC(1c9e9930) SHA1(d017474873750a7602b7708c663d29b25ef7bb63) )
+ROM_END
+
+/****************************************
+ ID-0041
+ . NGM-041
+ NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1
+ . NGH-041
+ NEO-AEG PROG42G-1 / NEO-AEG CHA42G-1
+****************************************/
+
+ROM_START( bstars2 )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "041-p1.p1", 0x000000, 0x080000, CRC(523567fd) SHA1(f1e81eb4678f586b214ea102cde6effea1b0f768) )
+
+ NEO_SFIX_128K( "041-s1.s1", CRC(015c5c94) SHA1(f1c60cd3dc54986b39f630ef3bf48f68c68695dc) )
+
+ NEO_BIOS_AUDIO_128K( "041-m1.m1", CRC(15c177a6) SHA1(3f4abed635102f9bc8b44809750828c82e79b44f) )
+
+ ROM_REGION( 0x280000, "ymsnd", 0 )
+ ROM_LOAD( "041-v1.v1", 0x000000, 0x100000, CRC(cb1da093) SHA1(4f4d1d5fefa9dda372083c045bf0d268a57ce8f1) )
+ ROM_LOAD( "041-v2.v2", 0x100000, 0x100000, CRC(1c954a9d) SHA1(159bc6efdd531615461f6e16f83f6d4c4e67c237) )
+ ROM_LOAD( "041-v3.v3", 0x200000, 0x080000, CRC(afaa0180) SHA1(c4a047e21f093830498a163598ed7bd48a8cf9d1) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "041-c1.c1", 0x000000, 0x100000, CRC(b39a12e1) SHA1(bafe383bd7c5a6aac4cb92dabbc56e3672fe174d) )
+ ROM_LOAD16_BYTE( "041-c2.c2", 0x000001, 0x100000, CRC(766cfc2f) SHA1(79e1063925d54a57df943019a88bea56c9152df3) )
+ ROM_LOAD16_BYTE( "041-c3.c3", 0x200000, 0x100000, CRC(fb31339d) SHA1(f4e821299680970b2e979acc4a170029b968c807) )
+ ROM_LOAD16_BYTE( "041-c4.c4", 0x200001, 0x100000, CRC(70457a0c) SHA1(a1e307f11ddab85d2e9c09d0428fac2e6da774b1) )
+ROM_END
+
+/****************************************
+ ID-0042
+ . NGM-042
+ NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1
+ . NGH-042
+ NEO-AEG PROG42G-1 / NEO-AEG CHA42G-1
+****************************************/
+
+ROM_START( quizdai2 ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "042-p1.p1", 0x000000, 0x100000, CRC(ed719dcf) SHA1(12baf2601e86c0e4358517b9fa1c55f2f5835f1d) )
+
+ NEO_SFIX_128K( "042-s1.s1", CRC(164fd6e6) SHA1(dad35bedc33d502a5ae745a45a972af8d901b160) )
+
+ NEO_BIOS_AUDIO_128K( "042-m1.m1", CRC(bb19995d) SHA1(ed458fad5a23c6bd0d099927d98c31e1e6562d1b) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "042-v1.v1", 0x000000, 0x100000, CRC(af7f8247) SHA1(99a47014017c20e4e22010c60612b6b7f6efc9e5) )
+ ROM_LOAD( "042-v2.v2", 0x100000, 0x100000, CRC(c6474b59) SHA1(a6c5054032b698116247b2f09a8b94a1b588c4f1) )
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "042-c1.c1", 0x000000, 0x100000, CRC(cb5809a1) SHA1(b53d06685246dd51b82b5c1d54d639d10e2ec26d) )
+ ROM_LOAD16_BYTE( "042-c2.c2", 0x000001, 0x100000, CRC(1436dfeb) SHA1(27d136fb1be793bd345a741f5e55a977275fff86) )
+ ROM_LOAD16_BYTE( "042-c3.c3", 0x200000, 0x080000, CRC(bcd4a518) SHA1(f355298fe0f2cf50ddcc0d613db56a5c04d7230f) )
+ ROM_LOAD16_BYTE( "042-c4.c4", 0x200001, 0x080000, CRC(d602219b) SHA1(34cf0f16db1e224396464ac838f4cd2e6d1c640e) )
+ROM_END
+
+/****************************************
+ ID-0043
+ . NGM-043
+ NEO-MVS PROG 4096 / NEO-MVS CHA 42G-2
+ NEO-MVS PROG-G2 / NEO-MVS CHA 42G-2
+ . NGH-043
+ NEO-AEG PROG16 / NEO-AEG CHA42G-1
+****************************************/
+
+ROM_START( 3countb ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "043-p1.p1", 0x000000, 0x100000, CRC(ffbdd928) SHA1(05b24655ca32723661adc5509b450824deb0c176) )
+ /* The original p1 is 8mbit; also found sets with p1 / p2 4mbit on eprom. */
+
+ NEO_SFIX_128K( "043-s1.s1", CRC(c362d484) SHA1(a3c029292572842feabe9aa8c3372628fb63978d) )
+
+ NEO_BIOS_AUDIO_128K( "043-m1.m1", CRC(7eab59cb) SHA1(5ae4107457e091f73960bfba39b589ae36d51ca3) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "043-v1.v1", 0x000000, 0x200000, CRC(63688ce8) SHA1(5c6ac29a0cc0655a87cfe3ada8706838b86b86e4) )
+ ROM_LOAD( "043-v2.v2", 0x200000, 0x200000, CRC(c69a827b) SHA1(f5197ea87bb6573fa6aef3a1713c3679c58c1e74) )
+
+ ROM_REGION( 0x0800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "043-c1.c1", 0x000000, 0x100000, CRC(bad2d67f) SHA1(04928e50ca75b7fbc52b64e816ec5701901f5893) )
+ ROM_CONTINUE( 0x400000, 0x100000 )
+ ROM_LOAD16_BYTE( "043-c2.c2", 0x000001, 0x100000, CRC(a7fbda95) SHA1(9da3c5faf22592a7eaf8df9fa6454f48c2a927ae) )
+ ROM_CONTINUE( 0x400001, 0x100000 )
+ ROM_LOAD16_BYTE( "043-c3.c3", 0x200000, 0x100000, CRC(f00be011) SHA1(2721cdba37a511a966a2a53b9bd6240f181d920c) )
+ ROM_CONTINUE( 0x600000, 0x100000 )
+ ROM_LOAD16_BYTE( "043-c4.c4", 0x200001, 0x100000, CRC(1887e5c0) SHA1(9b915359add7c10c78d8b281b4084eceea8f0499) )
+ ROM_CONTINUE( 0x600001, 0x100000 )
+ROM_END
+
+/****************************************
+ ID-0044
+ . NGM-044
+ NEO-MVS PROG16 / NEO-MVS CHA42G-1
+ NEO-MVS PROG4096 / NEO-MVS CHA42G-1
+ . NGH-044
+ NEO-AEG PROG16 / NEO-AEG CHA42G-1
+****************************************/
+
+ROM_START( aof ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "044-p1.p1", 0x000000, 0x080000, CRC(ca9f7a6d) SHA1(4d28ef86696f7e832510a66d3e8eb6c93b5b91a1) )
+ /* also found sets with ep1 or p1 on eprom. */
+
+ NEO_SFIX_128K( "044-s1.s1", CRC(89903f39) SHA1(a04a0c244a5d5c7a595fcf649107969635a6a8b6) )
+
+ NEO_BIOS_AUDIO_128K( "044-m1.m1", CRC(0987e4bb) SHA1(8fae4b7fac09d46d4727928e609ed9d3711dbded) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "044-v2.v2", 0x000000, 0x200000, CRC(3ec632ea) SHA1(e3f413f580b57f70d2dae16dbdacb797884d3fce) )
+ ROM_LOAD( "044-v4.v4", 0x200000, 0x200000, CRC(4b0f8e23) SHA1(105da0cc5ba19869c7147fba8b177500758c232b) )
+
+ ROM_REGION( 0x800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "044-c1.c1", 0x000000, 0x100000, CRC(ddab98a7) SHA1(f20eb81ec431268798c142c482146c1545af1c24) )
+ ROM_CONTINUE( 0x400000, 0x100000 )
+ ROM_LOAD16_BYTE( "044-c2.c2", 0x000001, 0x100000, CRC(d8ccd575) SHA1(f697263fe92164e274bf34c55327b3d4a158b332) )
+ ROM_CONTINUE( 0x400001, 0x100000 )
+ ROM_LOAD16_BYTE( "044-c3.c3", 0x200000, 0x100000, CRC(403e898a) SHA1(dd5888f8b24a33b2c1f483316fe80c17849ccfc4) )
+ ROM_CONTINUE( 0x600000, 0x100000 )
+ ROM_LOAD16_BYTE( "044-c4.c4", 0x200001, 0x100000, CRC(6235fbaa) SHA1(9090e337d7beed25ba81ae0708d0aeb57e6cf405) )
+ ROM_CONTINUE( 0x600001, 0x100000 )
+ROM_END
+
+/****************************************
+ ID-0045
+ . NGM-045
+ NEO-MVS PROGGSC / NEO-MVS CHA 42G-3
+ . NGH-045
+ NEO-AEG PROGGS / NEO-AEG CHA42G-4
+****************************************/
+
+ROM_START( samsho ) /* MVS VERSION */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "045-p1.p1", 0x000000, 0x100000, CRC(dfe51bf0) SHA1(2243af3770a516ae698b69bcd9daf53632d9128d) )
+ ROM_LOAD16_WORD_SWAP( "045-pg2.sp2", 0x100000, 0x100000, CRC(46745b94) SHA1(d9e959fd1f88c9402915c1d0dcdb4a9e3d49cdcb) )
+ /* also found set with ep1 / ep2 on eprom and sp2 on maskrom; same rom data as samshoh is used. */
+
+ NEO_SFIX_128K( "045-s1.s1", CRC(9142a4d3) SHA1(54088e99fcfd75fd0f94852890a56350066a05a3) )
+
+ NEO_BIOS_AUDIO_128K( "045-m1.m1", CRC(95170640) SHA1(125c502db0693e8d11cef619b090081c14a9a300) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "045-v1.v1", 0x000000, 0x200000, CRC(37f78a9b) SHA1(6279b497d12fa90b49ab5ac3aae20fb302ec8b81) )
+ ROM_LOAD( "045-v2.v2", 0x200000, 0x200000, CRC(568b20cf) SHA1(61af858685472a1fad608e230cccc2b108509ddb) )
+
+ ROM_REGION( 0xa00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "045-c1.c1", 0x000000, 0x200000, CRC(2e5873a4) SHA1(65c74c1e2d34390666bbb630df7d1f4c9570c3db) )
+ ROM_LOAD16_BYTE( "045-c2.c2", 0x000001, 0x200000, CRC(04febb10) SHA1(16a8cbf0fd9468e81bf9eab6dbe7a8e3623a843e) )
+ ROM_LOAD16_BYTE( "045-c3.c3", 0x400000, 0x200000, CRC(f3dabd1e) SHA1(c80e52df42be9f8b2e89b467b11ab140a480cee8) )
+ ROM_LOAD16_BYTE( "045-c4.c4", 0x400001, 0x200000, CRC(935c62f0) SHA1(0053d40085fac14096b683f4341f65e543b71dc1) )
+ ROM_LOAD16_BYTE( "045-c51.c5", 0x800000, 0x100000, CRC(81932894) SHA1(550f15dc5892c4602422c51869f0d59f70f01e9e) )
+ ROM_LOAD16_BYTE( "045-c61.c6", 0x800001, 0x100000, CRC(be30612e) SHA1(5e8b785f917c176d6796eba0caed37b13ddb3e63) )
+ROM_END
+
+ROM_START( samshoh ) /* AES VERSION */
+ ROM_REGION( 0x180000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "045-p1.p1", 0x000000, 0x100000, CRC(dfe51bf0) SHA1(2243af3770a516ae698b69bcd9daf53632d9128d) )
+ ROM_LOAD16_WORD_SWAP( "045-p2.sp2", 0x100000, 0x080000, CRC(38ee9ba9) SHA1(48190699a6be83cb6257365ae81f93fdd23abe09) )
+
+ NEO_SFIX_128K( "045-s1.s1", CRC(9142a4d3) SHA1(54088e99fcfd75fd0f94852890a56350066a05a3) )
+
+ NEO_BIOS_AUDIO_128K( "045-m1.m1", CRC(95170640) SHA1(125c502db0693e8d11cef619b090081c14a9a300) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "045-v1.v1", 0x000000, 0x200000, CRC(37f78a9b) SHA1(6279b497d12fa90b49ab5ac3aae20fb302ec8b81) )
+ ROM_LOAD( "045-v2.v2", 0x200000, 0x200000, CRC(568b20cf) SHA1(61af858685472a1fad608e230cccc2b108509ddb) )
+
+ ROM_REGION( 0x900000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "045-c1.c1", 0x000000, 0x200000, CRC(2e5873a4) SHA1(65c74c1e2d34390666bbb630df7d1f4c9570c3db) )
+ ROM_LOAD16_BYTE( "045-c2.c2", 0x000001, 0x200000, CRC(04febb10) SHA1(16a8cbf0fd9468e81bf9eab6dbe7a8e3623a843e) )
+ ROM_LOAD16_BYTE( "045-c3.c3", 0x400000, 0x200000, CRC(f3dabd1e) SHA1(c80e52df42be9f8b2e89b467b11ab140a480cee8) )
+ ROM_LOAD16_BYTE( "045-c4.c4", 0x400001, 0x200000, CRC(935c62f0) SHA1(0053d40085fac14096b683f4341f65e543b71dc1) )
+ ROM_LOAD16_BYTE( "045-c5.c5", 0x800000, 0x080000, CRC(a2bb8284) SHA1(aa118e3b8c062daa219b36758b9a3814c08c69dc) )
+ ROM_LOAD16_BYTE( "045-c6.c6", 0x800001, 0x080000, CRC(4fa71252) SHA1(afe374a9d1f2d955a59efe7b6196b89e021b164c) )
+ /* also found AES set with C6 on TC538200; label is 045-C61.C6 */
+ROM_END
+
+/****************************************
+ ID-0046
+ . NGM-046
+ NEO-MVS PROGTOP / NEO-MVS CHA256B
+ . NGH-046
+ NEO-AEG PROGTOP / NEO-AEG CHA256[B]
+****************************************/
+
+ROM_START( tophuntr ) /* MVS VERSION */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "046-p1.p1", 0x000000, 0x100000, CRC(69fa9e29) SHA1(9a40a16163193bb506a32bd34f6323b25ec69622) )
+ ROM_LOAD16_WORD_SWAP( "046-p2.sp2", 0x100000, 0x100000, CRC(f182cb3e) SHA1(6b4e0af5d4e623f0682f37ff5c69e5b705e20028) )
+
+ NEO_SFIX_128K( "046-s1.s1", CRC(14b01d7b) SHA1(618ce75c25d6cc86a3b46bd64a0aa34ab82f75ae) )
+
+ NEO_BIOS_AUDIO_128K( "046-m1.m1", CRC(3f84bb9f) SHA1(07446040871d11da3c2217ee9d1faf8c3cae7420) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "046-v1.v1", 0x000000, 0x100000, CRC(c1f9c2db) SHA1(bed95a76afefa46503a12e0f0a9787c4c967ac50) )
+ ROM_LOAD( "046-v2.v2", 0x100000, 0x100000, CRC(56254a64) SHA1(1cf049cb4c414419859d2c8ee714317a35a85251) )
+ ROM_LOAD( "046-v3.v3", 0x200000, 0x100000, CRC(58113fb1) SHA1(40972982a63c7adecef840f9882f4165da723ab6) )
+ ROM_LOAD( "046-v4.v4", 0x300000, 0x100000, CRC(4f54c187) SHA1(63a76949301b83bdd44aa1a4462f642ab9ca3c0b) )
+
+ ROM_REGION( 0x800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "046-c1.c1", 0x000000, 0x100000, CRC(fa720a4a) SHA1(364913b9fa40d46e4e39ae3cdae914cfd0de137d) )
+ ROM_LOAD16_BYTE( "046-c2.c2", 0x000001, 0x100000, CRC(c900c205) SHA1(50274e79aa26f334eb806288688b30720bade883) )
+ ROM_LOAD16_BYTE( "046-c3.c3", 0x200000, 0x100000, CRC(880e3c25) SHA1(b6974af0c833b766866919b6f15b6f8cef82530d) )
+ ROM_LOAD16_BYTE( "046-c4.c4", 0x200001, 0x100000, CRC(7a2248aa) SHA1(8af0b26025a54e3b91604dd24a3c1c518fbd8536) )
+ ROM_LOAD16_BYTE( "046-c5.c5", 0x400000, 0x100000, CRC(4b735e45) SHA1(2f8b46388c4696aee6a97e1e21cdadf6b142b01a) )
+ ROM_LOAD16_BYTE( "046-c6.c6", 0x400001, 0x100000, CRC(273171df) SHA1(9c35832221e016c12ef1ed71da167f565daaf86c) )
+ ROM_LOAD16_BYTE( "046-c7.c7", 0x600000, 0x100000, CRC(12829c4c) SHA1(ac5f3d848d7116fc35c97f53a72c85e049dd3a2f) )
+ ROM_LOAD16_BYTE( "046-c8.c8", 0x600001, 0x100000, CRC(c944e03d) SHA1(be23999b8ce09ee15ba500ce4d5e2a82a4f58d9b) )
+ROM_END
+
+ROM_START( tophuntrh ) /* AES VERSION */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "046-pg1.p1",0x000000, 0x100000, CRC(771e39bc) SHA1(c0e05fd1ca81926438bb75e2fa6894e40ab6521e) )
+ ROM_LOAD16_WORD_SWAP( "046-p2.sp2",0x100000, 0x100000, CRC(f182cb3e) SHA1(6b4e0af5d4e623f0682f37ff5c69e5b705e20028) )
+
+ NEO_SFIX_128K( "046-sg1.s1", CRC(92e9ac8c) SHA1(cab5c77c091e8d12d9c3a2cc8d741b74e4386efb) )
+
+ NEO_BIOS_AUDIO_128K( "046-m1.m1", CRC(3f84bb9f) SHA1(07446040871d11da3c2217ee9d1faf8c3cae7420) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "046-v1.v1", 0x000000, 0x100000, CRC(c1f9c2db) SHA1(bed95a76afefa46503a12e0f0a9787c4c967ac50) )
+ ROM_LOAD( "046-v2.v2", 0x100000, 0x100000, CRC(56254a64) SHA1(1cf049cb4c414419859d2c8ee714317a35a85251) )
+ ROM_LOAD( "046-v3.v3", 0x200000, 0x100000, CRC(58113fb1) SHA1(40972982a63c7adecef840f9882f4165da723ab6) )
+ ROM_LOAD( "046-v4.v4", 0x300000, 0x100000, CRC(4f54c187) SHA1(63a76949301b83bdd44aa1a4462f642ab9ca3c0b) )
+
+ ROM_REGION( 0x800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "046-c1.c1", 0x000000, 0x100000, CRC(fa720a4a) SHA1(364913b9fa40d46e4e39ae3cdae914cfd0de137d) )
+ ROM_LOAD16_BYTE( "046-c2.c2", 0x000001, 0x100000, CRC(c900c205) SHA1(50274e79aa26f334eb806288688b30720bade883) )
+ ROM_LOAD16_BYTE( "046-c3.c3", 0x200000, 0x100000, CRC(880e3c25) SHA1(b6974af0c833b766866919b6f15b6f8cef82530d) )
+ ROM_LOAD16_BYTE( "046-c4.c4", 0x200001, 0x100000, CRC(7a2248aa) SHA1(8af0b26025a54e3b91604dd24a3c1c518fbd8536) )
+ ROM_LOAD16_BYTE( "046-c5.c5", 0x400000, 0x100000, CRC(4b735e45) SHA1(2f8b46388c4696aee6a97e1e21cdadf6b142b01a) )
+ ROM_LOAD16_BYTE( "046-c6.c6", 0x400001, 0x100000, CRC(273171df) SHA1(9c35832221e016c12ef1ed71da167f565daaf86c) )
+ ROM_LOAD16_BYTE( "046-c7.c7", 0x600000, 0x100000, CRC(12829c4c) SHA1(ac5f3d848d7116fc35c97f53a72c85e049dd3a2f) )
+ ROM_LOAD16_BYTE( "046-c8.c8", 0x600001, 0x100000, CRC(c944e03d) SHA1(be23999b8ce09ee15ba500ce4d5e2a82a4f58d9b) )
+ROM_END
+
+/****************************************
+ ID-0047
+ . NGM-047
+ NEO-MVS PROG-G2 (SNK-9201) / NEO-MVS CHA42G-1
+ . NGH-047
+ NEO-AEG PROG-G2 (PRO-CT0) / NEO-AEG CHA42G-2B
+ NEO-AEG PROG-G2 (PRO-CT0) / NEO-AEG CHA42G-2
+****************************************/
+
+ROM_START( fatfury2 ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "047-p1.p1", 0x000000, 0x100000, CRC(ecfdbb69) SHA1(59e2f137c6eaf043df4ddae865a9159a10265c60) )
+ /* The original p1 is 8mbit; also found sets with p1 / p2 4mbit on eprom. */
+
+ NEO_SFIX_128K( "047-s1.s1", CRC(d7dbbf39) SHA1(29253e596f475ebd41a6e3bb53952e3a0ccd2eed) )
+
+ NEO_BIOS_AUDIO_128K( "047-m1.m1", CRC(820b0ba7) SHA1(5708248d89446e49184eaadb52f7c61b2b6c13c5) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "047-v1.v1", 0x000000, 0x200000, CRC(d9d00784) SHA1(f6a91eada8c23aa4518c4b82eeebca69f79d845c) )
+ ROM_LOAD( "047-v2.v2", 0x200000, 0x200000, CRC(2c9a4b33) SHA1(d4a1c0951c02c8919b3ec32ed96933634ff9e54c) )
+
+ ROM_REGION( 0x800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "047-c1.c1", 0x000000, 0x100000, CRC(f72a939e) SHA1(67fc398ec28061adca0d3be82bbe7297015800da) )
+ ROM_CONTINUE( 0x400000, 0x100000 )
+ ROM_LOAD16_BYTE( "047-c2.c2", 0x000001, 0x100000, CRC(05119a0d) SHA1(c2f100b73eb04f65b6ba6089d49aceb51b470ec6) )
+ ROM_CONTINUE( 0x400001, 0x100000 )
+ ROM_LOAD16_BYTE( "047-c3.c3", 0x200000, 0x100000, CRC(01e00738) SHA1(79654f24d777dd5eb68bafc3b8cb9db71d5822e2) )
+ ROM_CONTINUE( 0x600000, 0x100000 )
+ ROM_LOAD16_BYTE( "047-c4.c4", 0x200001, 0x100000, CRC(9fe27432) SHA1(89d22d77ba8bc6d1f6c974195c34ad61b9010de7) )
+ ROM_CONTINUE( 0x600001, 0x100000 )
+ROM_END
+
+/****************************************
+ ID-0048
+ . ??M-048
+ NEO-MVS PROGGSC / NEO-MVS CHA256
+****************************************/
+
+ROM_START( janshin ) /* MVS ONLY RELEASE */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "048-p1.p1", 0x000000, 0x100000, CRC(fa818cbb) SHA1(afee2c897b766c84f13891fb52c574fb18df0951) )
+
+ NEO_SFIX_128K( "048-s1.s1", CRC(8285b25a) SHA1(d983640cda3e346e38469b4d3ec8048b116a7bb7) )
+
+ NEO_BIOS_AUDIO_128K( "048-m1.m1", CRC(310467c7) SHA1(c529961195c9bdf5d1ce70a38ad129002d1f3b5f) )
+
+ ROM_DEFAULT_BIOS( "japan" ) /* so the mahjong panel will work in the service menu */
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "048-v1.v1", 0x000000, 0x200000, CRC(f1947d2b) SHA1(955ff91ab24eb2a7ec51ff46c9f9f2ec060456b2) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "048-c1.c1", 0x000000, 0x200000, CRC(3fa890e9) SHA1(e73d2802bacfbc2b2b16fbbedddde17488e4bbde) )
+ ROM_LOAD16_BYTE( "048-c2.c1", 0x000001, 0x200000, CRC(59c48ad8) SHA1(2630817e735a6d197377558f4324c1442803fe15) )
+ROM_END
+
+/****************************************
+ ID-0049
+ . NGM-049
+ NEO-MVS PROG16 / NEO-MVS CHA42G-1
+ . NGH-049
+ NEO-AEG PROG16 / NEO-AEG CHA42G-1
+****************************************/
+
+ROM_START( androdun ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "049-p1.p1", 0x000000, 0x080000, CRC(3b857da2) SHA1(4dd86c739944696c16c3cdd85935d6dfa9fdc276) )
+ ROM_LOAD16_WORD_SWAP( "049-p2.p2", 0x080000, 0x080000, CRC(2f062209) SHA1(991cf3e3677929b2cc0b2787b0c7b6ad3700f618) )
+
+ NEO_SFIX_128K( "049-s1.s1", CRC(6349de5d) SHA1(bcc44b9576d7bedd9a39294530bb66f707690c72) )
+
+ NEO_BIOS_AUDIO_128K( "049-m1.m1", CRC(edd2acf4) SHA1(c4ee6ba834d54b9fc5a854dbc41a05877e090371) )
+
+ ROM_REGION( 0x100000, "ymsnd", 0 )
+ ROM_LOAD( "049-v1.v1", 0x000000, 0x100000, CRC(ce43cb89) SHA1(47f82e077abb6efc6b1b0490412ae147d5d2acef) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "049-c1.c1", 0x000000, 0x100000, CRC(7ace6db3) SHA1(c41cc9de8c0788dcc49ca494fd3bb3124062d9dd) )
+ ROM_LOAD16_BYTE( "049-c2.c2", 0x000001, 0x100000, CRC(b17024f7) SHA1(fcf7efae48fcdccaf5255c145de414fb246128f0) )
+ROM_END
+
+/****************************************
+ ID-0050
+ . ALM-004
+ NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1
+ . ALH-004
+ NEO-AEG PROG42G-1 / NEO-AEG CHA42G-1
+****************************************/
+
+ROM_START( ncommand )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "050-p1.p1", 0x000000, 0x100000, CRC(4e097c40) SHA1(43311a7ca14a14dcd4a99d8576a12e897b078643) )
+
+ NEO_SFIX_128K( "050-s1.s1", CRC(db8f9c8e) SHA1(11cb82cf3c4d0fc2da5df0c26410a64808093610) )
+
+ NEO_BIOS_AUDIO_128K( "050-m1.m1", CRC(6fcf07d3) SHA1(e9ecff4bfec1f5964bf06645f75d80d611b6231c) )
+
+ ROM_REGION( 0x180000, "ymsnd", 0 )
+ ROM_LOAD( "050-v1.v1", 0x000000, 0x100000, CRC(23c3ab42) SHA1(b6c59bb180f1aa34c95f3ec923f3aafb689d57b0) )
+ ROM_LOAD( "050-v2.v2", 0x100000, 0x080000, CRC(80b8a984) SHA1(950cf0e78ceffa4037663f1086fbbc88588f49f2) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "050-c1.c1", 0x000000, 0x100000, CRC(87421a0a) SHA1(1d8faaf03778f7c5b062554d7333bbd3f0ca12ad) )
+ ROM_LOAD16_BYTE( "050-c2.c2", 0x000001, 0x100000, CRC(c4cf5548) SHA1(ef9eca5aeff9dda2209a050c2af00ed8979ae2bc) )
+ ROM_LOAD16_BYTE( "050-c3.c3", 0x200000, 0x100000, CRC(03422c1e) SHA1(920e5015aebe2ffc5ce43a52365c7f0a705f3b9e) )
+ ROM_LOAD16_BYTE( "050-c4.c4", 0x200001, 0x100000, CRC(0845eadb) SHA1(3c71a02bf0e07a5381846bb6d75bbe7dd546adea) )
+ROM_END
+
+/****************************************
+ ID-0051
+ . AIM-051
+ NEO-MVS PROG-G2 / NEO-MVS CHA42G-1
+ NEO-MVS PROG 4096 / NEO-MVS CHA 42G-2
+ . AIH-051
+****************************************/
+
+ROM_START( viewpoin )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "051-p1.p1", 0x000000, 0x100000, CRC(17aa899d) SHA1(674cd8ace7acdf4f407de741e3d0071bcb49c902) )
+
+ NEO_SFIX_128K( "051-s1.s1", CRC(9fea5758) SHA1(5c6f01da89f2639cf741ee7c39e27023b8083052) )
+
+ NEO_BIOS_AUDIO_128K( "051-m1.m1", CRC(8e69f29a) SHA1(7a25f4997996434ea1b7d0d1ca9e7aaf966cbd03) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ /* What board was originally used (labels 051-V2 and 051-V4)? MVS is twice confirmed on NEO-MVS PROG-G2 */
+ ROM_LOAD( "051-v2.v1", 0x000000, 0x200000, CRC(019978b6) SHA1(7896a551115fc6ed38b5944e0c8dcb2b2c1c077d) )
+ ROM_LOAD( "051-v4.v2", 0x200000, 0x200000, CRC(5758f38c) SHA1(da10f4b7d22d9139bbf068bd940be82168a74ca1) )
+
+ ROM_REGION( 0x600000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "051-c1.c1", 0x000000, 0x100000, CRC(d624c132) SHA1(49c7e9f020cba45d7083b45252bcc03397f8c286) )
+ ROM_CONTINUE( 0x400000, 0x100000 )
+ ROM_LOAD16_BYTE( "051-c2.c2", 0x000001, 0x100000, CRC(40d69f1e) SHA1(ec4a13582772594957f927622d50f54b0dfcd8d8) )
+ ROM_CONTINUE( 0x400001, 0x100000 )
+ROM_END
+
+/****************************************
+ ID-0052
+ . NGM-052
+ NEO-MVS PROG-G2 (SNK-9201) / NEO-MVS CHA 42G-2
+ . NGH-052
+ NEO-AEG PROG-G2 (SNK-9201) / NEO-AEG CHA42G-2
+****************************************/
+
+ROM_START( ssideki )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "052-p1.p1", 0x000000, 0x080000, CRC(9cd97256) SHA1(1c780b711137fd79cc81b01941e84f3d59e0071f) )
+
+ NEO_SFIX_128K( "052-s1.s1", CRC(97689804) SHA1(fa8dab3b3353d7115a0368f3fc749950c0186fbc) )
+
+ NEO_BIOS_AUDIO_128K( "052-m1.m1", CRC(49f17d2d) SHA1(70971fcf71ae3a6b2e26e7ade8063941fb178ae5) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "052-v1.v1", 0x000000, 0x200000, CRC(22c097a5) SHA1(328c4e6db0a026f54a633cff1443a3f964a8daea) )
+
+ ROM_REGION( 0x600000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "052-c1.c1", 0x000000, 0x100000, CRC(53e1c002) SHA1(2125b1be379ea7933893ffb1cd65d6c4bf8b03bd) )
+ ROM_CONTINUE( 0x400000, 0x100000 )
+ ROM_LOAD16_BYTE( "052-c2.c2", 0x000001, 0x100000, CRC(776a2d1f) SHA1(bca0bac87443e9e78c623d284f6cc96cc9c9098f) )
+ ROM_CONTINUE( 0x400001, 0x100000 )
+ROM_END
+
+/****************************************
+ ID-0053
+ . ALM-005
+ NEO-MVS PROG16 / NEO-MVS CHA42G-1
+ . ALH-005
+ NEO-AEG PROG16 / NEO-AEG CHA42G-1
+ NEO-AEG PROG-G2 / NEO-AEG CHA42G-2C
+****************************************/
+
+ROM_START( wh1 ) /* MVS VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "053-epr.p1", 0x000000, 0x080000, CRC(d42e1e9a) SHA1(9d1911fe4bf6202466ec45557dd008cbf01ca9c6) )
+ ROM_LOAD16_WORD_SWAP( "053-epr.p2", 0x080000, 0x080000, CRC(0e33e8a3) SHA1(4b7086edb504f3c30529d51ba8f453d48eba5164) )
+ /* P's on eprom, correct chip label unknown */
+
+ NEO_SFIX_128K( "053-s1.s1", CRC(8c2c2d6b) SHA1(87fa79611c6f8886dcc8766814829c669c65b40f) )
+
+ NEO_BIOS_AUDIO_128K( "053-m1.m1", CRC(1bd9d04b) SHA1(65cd7b002123ed1a3111e3d942608d0082799ff3) )
+
+ ROM_REGION( 0x300000, "ymsnd", 0 )
+ ROM_LOAD( "053-v2.v2", 0x000000, 0x200000, CRC(a68df485) SHA1(007fa715423fba72c899cd3db3f4bec13281cf7a) )
+ ROM_LOAD( "053-v4.v4", 0x200000, 0x100000, CRC(7bea8f66) SHA1(428e8721bd87f7faa756adb1e12672219be46c1d) )
+
+ ROM_REGION( 0x600000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "053-c1.c1", 0x000000, 0x100000, CRC(85eb5bce) SHA1(3d03d29296ca6e6b5106aac4aaeec9d4b4ed1313) )
+ ROM_CONTINUE( 0x400000, 0x100000 )
+ ROM_LOAD16_BYTE( "053-c2.c2", 0x000001, 0x100000, CRC(ec93b048) SHA1(d4159210df94e259f874a4671d271ec27be13451) )
+ ROM_CONTINUE( 0x400001, 0x100000 )
+ ROM_LOAD16_BYTE( "053-c3.c3", 0x200000, 0x100000, CRC(0dd64965) SHA1(e97b3b8a461da5e8861b3dfdacb25e007ced37a1) )
+ ROM_LOAD16_BYTE( "053-c4.c4", 0x200001, 0x100000, CRC(9270d954) SHA1(a2ef909868f6b06cdcc22a63ddf6c96be12b999c) )
+ROM_END
+
+ROM_START( wh1h ) /* AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "053-p1.p1", 0x000000, 0x080000, CRC(95b574cb) SHA1(b7b7af6a04c3d902e7f8852897741ecaf0b1062c) )
+ ROM_LOAD16_WORD_SWAP( "053-p2.p2", 0x080000, 0x080000, CRC(f198ed45) SHA1(24ccc091e97f63796562bb5b30df51f39bd504ef) )
+
+ NEO_SFIX_128K( "053-s1.s1", CRC(8c2c2d6b) SHA1(87fa79611c6f8886dcc8766814829c669c65b40f) )
+
+ NEO_BIOS_AUDIO_128K( "053-m1.m1", CRC(1bd9d04b) SHA1(65cd7b002123ed1a3111e3d942608d0082799ff3) )
+
+ ROM_REGION( 0x300000, "ymsnd", 0 )
+ ROM_LOAD( "053-v2.v2", 0x000000, 0x200000, CRC(a68df485) SHA1(007fa715423fba72c899cd3db3f4bec13281cf7a) )
+ ROM_LOAD( "053-v4.v4", 0x200000, 0x100000, CRC(7bea8f66) SHA1(428e8721bd87f7faa756adb1e12672219be46c1d) )
+
+ ROM_REGION( 0x600000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "053-c1.c1", 0x000000, 0x100000, CRC(85eb5bce) SHA1(3d03d29296ca6e6b5106aac4aaeec9d4b4ed1313) )
+ ROM_CONTINUE( 0x400000, 0x100000 )
+ ROM_LOAD16_BYTE( "053-c2.c2", 0x000001, 0x100000, CRC(ec93b048) SHA1(d4159210df94e259f874a4671d271ec27be13451) )
+ ROM_CONTINUE( 0x400001, 0x100000 )
+ ROM_LOAD16_BYTE( "053-c3.c3", 0x200000, 0x100000, CRC(0dd64965) SHA1(e97b3b8a461da5e8861b3dfdacb25e007ced37a1) )
+ ROM_LOAD16_BYTE( "053-c4.c4", 0x200001, 0x100000, CRC(9270d954) SHA1(a2ef909868f6b06cdcc22a63ddf6c96be12b999c) )
+ROM_END
+
+ROM_START( wh1ha )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "053-p1_a.p1", 0x000000, 0x080000, CRC(ed29fde2) SHA1(52b8ca5b804f786f95e1dfb348d8c7b82f1d4ddf) )
+ ROM_LOAD16_WORD_SWAP( "053-p2_a.p2", 0x080000, 0x080000, CRC(98f2b158) SHA1(a64e1425970eb53cc910891db39973dee3d54ccc) )
+ /* Correct chip labels for p1 and p2 unknown */
+
+ NEO_SFIX_128K( "053-s1.s1", CRC(8c2c2d6b) SHA1(87fa79611c6f8886dcc8766814829c669c65b40f) )
+
+ NEO_BIOS_AUDIO_128K( "053-m1.m1", CRC(1bd9d04b) SHA1(65cd7b002123ed1a3111e3d942608d0082799ff3) )
+
+ ROM_REGION( 0x300000, "ymsnd", 0 )
+ ROM_LOAD( "053-v2.v2", 0x000000, 0x200000, CRC(a68df485) SHA1(007fa715423fba72c899cd3db3f4bec13281cf7a) )
+ ROM_LOAD( "053-v4.v4", 0x200000, 0x100000, CRC(7bea8f66) SHA1(428e8721bd87f7faa756adb1e12672219be46c1d) )
+
+ ROM_REGION( 0x600000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "053-c1.c1", 0x000000, 0x100000, CRC(85eb5bce) SHA1(3d03d29296ca6e6b5106aac4aaeec9d4b4ed1313) )
+ ROM_CONTINUE( 0x400000, 0x100000 )
+ ROM_LOAD16_BYTE( "053-c2.c2", 0x000001, 0x100000, CRC(ec93b048) SHA1(d4159210df94e259f874a4671d271ec27be13451) )
+ ROM_CONTINUE( 0x400001, 0x100000 )
+ ROM_LOAD16_BYTE( "053-c3.c3", 0x200000, 0x100000, CRC(0dd64965) SHA1(e97b3b8a461da5e8861b3dfdacb25e007ced37a1) )
+ ROM_LOAD16_BYTE( "053-c4.c4", 0x200001, 0x100000, CRC(9270d954) SHA1(a2ef909868f6b06cdcc22a63ddf6c96be12b999c) )
+ROM_END
+
+/****************************************
+ ID-0054
+ Crossed Swords 2 (CD only? not confirmed, MVS might exist)
+****************************************/
+
+/****************************************
+ ID-0055
+ . NGM-055
+ NEO-MVS PROGTOP / NEO-MVS CHA256
+ NEO-MVS PROGTOP / NEO-MVS CHA256B
+ . NGH-055
+ NEO-AEG PROGRK / NEO-AEG CHA256
+****************************************/
+
+ROM_START( kof94 ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "055-p1.p1", 0x100000, 0x100000, CRC(f10a2042) SHA1(d08a3f3c28be4b1793de7d362456281329fe1828) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "055-s1.s1", CRC(825976c1) SHA1(cb6a70bdd95d449d25196ca269b621c362db6743) )
+
+ NEO_BIOS_AUDIO_128K( "055-m1.m1", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "055-v1.v1", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) )
+ ROM_LOAD( "055-v2.v2", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) )
+ ROM_LOAD( "055-v3.v3", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "055-c1.c1", 0x000000, 0x200000, CRC(b96ef460) SHA1(e52f5303c17b50ce165c008be2837336369c110b) )
+ ROM_LOAD16_BYTE( "055-c2.c2", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) )
+ ROM_LOAD16_BYTE( "055-c3.c3", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) )
+ ROM_LOAD16_BYTE( "055-c4.c4", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) )
+ ROM_LOAD16_BYTE( "055-c5.c5", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) )
+ ROM_LOAD16_BYTE( "055-c6.c6", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) )
+ ROM_LOAD16_BYTE( "055-c7.c7", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) )
+ ROM_LOAD16_BYTE( "055-c8.c8", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) )
+ROM_END
+
+/****************************************
+ ID-0056
+ . NGM-056
+ NEO-MVS PROGGSC / NEO-MVS CHA256
+ . NGH-056
+ NEO-AEG PROGRKB / NEO-AEG CHA256[B]
+****************************************/
+
+ROM_START( aof2 ) /* MVS VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "056-p1.p1", 0x000000, 0x100000, CRC(a3b1d021) SHA1(ee42f3ca4516226b0088d0303ed28e3ecdabcd71) )
+
+ NEO_SFIX_128K( "056-s1.s1", CRC(8b02638e) SHA1(aa4d28804ca602da776948b5f223ea89e427906b) )
+
+ NEO_BIOS_AUDIO_128K( "056-m1.m1", CRC(f27e9d52) SHA1(dddae733d87ce7c88ad2580a8f64cb6ff9572e67) )
+
+ ROM_REGION( 0x500000, "ymsnd", 0 )
+ ROM_LOAD( "056-v1.v1", 0x000000, 0x200000, CRC(4628fde0) SHA1(ece2a50f5270d844d58401b1447d1d856d78ea45) )
+ ROM_LOAD( "056-v2.v2", 0x200000, 0x200000, CRC(b710e2f2) SHA1(df4da585203eea7554d3ce718eb107e9cb6a0254) )
+ ROM_LOAD( "056-v3.v3", 0x400000, 0x100000, CRC(d168c301) SHA1(969273d1d11943e81560959359a2c4e69522af0e) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ /* Different layout with 4xC (32mbit) also exists; chip labels are 056-C13, 056-C24, 056-C57 and 056-C68 */
+ ROM_LOAD16_BYTE( "056-c1.c1", 0x000000, 0x200000, CRC(17b9cbd2) SHA1(1eee81e02763d384bd1c10a6012473ca931e4093) )
+ ROM_LOAD16_BYTE( "056-c2.c2", 0x000001, 0x200000, CRC(5fd76b67) SHA1(11925a41a53b53c6df4a5ebd28f98300950f743b) )
+ ROM_LOAD16_BYTE( "056-c3.c3", 0x400000, 0x200000, CRC(d2c88768) SHA1(22e2d84aa0c095944190e249ce87ef50d3f7b8ce) )
+ ROM_LOAD16_BYTE( "056-c4.c4", 0x400001, 0x200000, CRC(db39b883) SHA1(59de86c513dc4e230ae25d9e3b7e84621b657b54) )
+ ROM_LOAD16_BYTE( "056-c5.c5", 0x800000, 0x200000, CRC(c3074137) SHA1(9a75e3d63cb98d54f900dcfb3a03e21f3148d32f) )
+ ROM_LOAD16_BYTE( "056-c6.c6", 0x800001, 0x200000, CRC(31de68d3) SHA1(13ba7046cdd6863125f8284e60f102d4720af5a4) )
+ ROM_LOAD16_BYTE( "056-c7.c7", 0xc00000, 0x200000, CRC(3f36df57) SHA1(79ee97e9ae811a51141b535633f90e1491209d54) )
+ ROM_LOAD16_BYTE( "056-c8.c8", 0xc00001, 0x200000, CRC(e546d7a8) SHA1(74a2fca994a5a93a5784a46c0f68193122456a09) )
+ROM_END
+
+ROM_START( aof2a ) /* AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "056-p1.p1", 0x000000, 0x100000, CRC(a3b1d021) SHA1(ee42f3ca4516226b0088d0303ed28e3ecdabcd71) )
+ /* the rom below acts as a patch to the program rom in the cart, replacing the first 512kb */
+ ROM_LOAD16_WORD_SWAP( "056-epr.ep1", 0x000000, 0x80000, CRC(75d6301c) SHA1(e72d15fba55f96be7b4fa29e705a7b78f56edf7d) )
+ /* P is on eprom, correct chip label unknown */
+
+ NEO_SFIX_128K( "056-s1.s1", CRC(8b02638e) SHA1(aa4d28804ca602da776948b5f223ea89e427906b) )
+
+ NEO_BIOS_AUDIO_128K( "056-m1.m1", CRC(f27e9d52) SHA1(dddae733d87ce7c88ad2580a8f64cb6ff9572e67) )
+
+ ROM_REGION( 0x500000, "ymsnd", 0 )
+ ROM_LOAD( "056-v1.v1", 0x000000, 0x200000, CRC(4628fde0) SHA1(ece2a50f5270d844d58401b1447d1d856d78ea45) )
+ ROM_LOAD( "056-v2.v2", 0x200000, 0x200000, CRC(b710e2f2) SHA1(df4da585203eea7554d3ce718eb107e9cb6a0254) )
+ ROM_LOAD( "056-v3.v3", 0x400000, 0x100000, CRC(d168c301) SHA1(969273d1d11943e81560959359a2c4e69522af0e) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "056-c1.c1", 0x000000, 0x200000, CRC(17b9cbd2) SHA1(1eee81e02763d384bd1c10a6012473ca931e4093) )
+ ROM_LOAD16_BYTE( "056-c2.c2", 0x000001, 0x200000, CRC(5fd76b67) SHA1(11925a41a53b53c6df4a5ebd28f98300950f743b) )
+ ROM_LOAD16_BYTE( "056-c3.c3", 0x400000, 0x200000, CRC(d2c88768) SHA1(22e2d84aa0c095944190e249ce87ef50d3f7b8ce) )
+ ROM_LOAD16_BYTE( "056-c4.c4", 0x400001, 0x200000, CRC(db39b883) SHA1(59de86c513dc4e230ae25d9e3b7e84621b657b54) )
+ ROM_LOAD16_BYTE( "056-c5.c5", 0x800000, 0x200000, CRC(c3074137) SHA1(9a75e3d63cb98d54f900dcfb3a03e21f3148d32f) )
+ ROM_LOAD16_BYTE( "056-c6.c6", 0x800001, 0x200000, CRC(31de68d3) SHA1(13ba7046cdd6863125f8284e60f102d4720af5a4) )
+ ROM_LOAD16_BYTE( "056-c7.c7", 0xc00000, 0x200000, CRC(3f36df57) SHA1(79ee97e9ae811a51141b535633f90e1491209d54) )
+ ROM_LOAD16_BYTE( "056-c8.c8", 0xc00001, 0x200000, CRC(e546d7a8) SHA1(74a2fca994a5a93a5784a46c0f68193122456a09) )
+ROM_END
+
+/****************************************
+ ID-0057
+ . ALM-006
+ NEO-MVS PROG 4096 B / NEO-MVS CHA 42G-3
+ . ALH-006
+ NEO-AEG PROG4096 B / NEO-AEG CHA42G-3
+****************************************/
+
+ROM_START( wh2 ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "057-p1.p1", 0x100000, 0x100000, CRC(65a891d9) SHA1(ff8d5ccb0dd22c523902bb3db3c645583a335056) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "057-s1.s1", CRC(fcaeb3a4) SHA1(1f3f85e38b8552333261c04ae5af0d6e3b310622) )
+
+ NEO_BIOS_AUDIO_128K( "057-m1.m1", CRC(8fa3bc77) SHA1(982f92978671e4ee66630948e6bb7565b37b5dc0) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "057-v1.v1", 0x000000, 0x200000, CRC(8877e301) SHA1(1bab988d74ea8fd12db201c257ec844622cf5f4e) )
+ ROM_LOAD( "057-v2.v2", 0x200000, 0x200000, CRC(c1317ff4) SHA1(4c28b2b5998abaeaa5143f2f3a9ba52c6041f4f3) )
+
+ ROM_REGION( 0xc00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "057-c1.c1", 0x000000, 0x200000, CRC(21c6bb91) SHA1(a2c17d0c91dd59528d8fa7fe110af8b20b25ff99) )
+ ROM_LOAD16_BYTE( "057-c2.c2", 0x000001, 0x200000, CRC(a3999925) SHA1(0ee861a77850d378d03c1bf00b9692abd860c759) )
+ ROM_LOAD16_BYTE( "057-c3.c3", 0x400000, 0x200000, CRC(b725a219) SHA1(4857687d156a9150a69b97d2729245a51c144a0c) )
+ ROM_LOAD16_BYTE( "057-c4.c4", 0x400001, 0x200000, CRC(8d96425e) SHA1(0f79c868a6a33ad25e38d842f30ec4440d809033) )
+ ROM_LOAD16_BYTE( "057-c5.c5", 0x800000, 0x200000, CRC(b20354af) SHA1(da7609fd467f2f4d71d92970f438a04d11ab1cc1) )
+ ROM_LOAD16_BYTE( "057-c6.c6", 0x800001, 0x200000, CRC(b13d1de3) SHA1(7d749c23a33d90fe50279e884540d71cf1aaaa6b) )
+ROM_END
+
+/****************************************
+ ID-0058
+ . NGM-058
+ NEO-MVS PROGGSC / NEO-MVS CHA42G-3B
+ NEO-MVS PROGGSC / NEO-MVS CHA 42G-3
+ . NGH-058
+ NEO-AEG PROGGS / NEO-AEG CHA42G-4
+****************************************/
+
+ROM_START( fatfursp ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x180000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "058-p1.p1", 0x000000, 0x100000, CRC(2f585ba2) SHA1(429b4bf43fb9b1082c15d645ca328f9d175b976b) )
+ ROM_LOAD16_WORD_SWAP( "058-p2.sp2", 0x100000, 0x080000, CRC(d7c71a6b) SHA1(b3428063031a2e5857da40a5d2ffa87fb550c1bb) )
+
+ NEO_SFIX_128K( "058-s1.s1", CRC(2df03197) SHA1(24083cfc97e720ac9e131c9fe37df57e27c49294) )
+
+ NEO_BIOS_AUDIO_128K( "058-m1.m1", CRC(ccc5186e) SHA1(cf9091c523c182aebfb928c91640b2d72fd70123) )
+
+ ROM_REGION( 0x500000, "ymsnd", 0 )
+ ROM_LOAD( "058-v1.v1", 0x000000, 0x200000, CRC(55d7ce84) SHA1(05ac6a395d9bf9166925acca176a8d6129f533c8) )
+ ROM_LOAD( "058-v2.v2", 0x200000, 0x200000, CRC(ee080b10) SHA1(29814fc21bbe30d37745c8918fab00c83a309be4) )
+ ROM_LOAD( "058-v3.v3", 0x400000, 0x100000, CRC(f9eb3d4a) SHA1(d1747f9460b965f6daf4f881ed4ecd04c5253434) )
+
+ ROM_REGION( 0xc00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "058-c1.c1", 0x000000, 0x200000, CRC(044ab13c) SHA1(569d283638a132bc163faac2a9055497017ee0d2) )
+ ROM_LOAD16_BYTE( "058-c2.c2", 0x000001, 0x200000, CRC(11e6bf96) SHA1(c093a4f93f13e07b276e28b30c2a14dda9135d8f) )
+ ROM_LOAD16_BYTE( "058-c3.c3", 0x400000, 0x200000, CRC(6f7938d5) SHA1(be057b0a3faeb76d5fff161d3e6fea8a26e11d2c) )
+ ROM_LOAD16_BYTE( "058-c4.c4", 0x400001, 0x200000, CRC(4ad066ff) SHA1(4e304646d954d5f7bbabc5d068e85de31d38830f) )
+ ROM_LOAD16_BYTE( "058-c5.c5", 0x800000, 0x200000, CRC(49c5e0bf) SHA1(f3784178f90751990ea47a082a6aa869ee3566c9) )
+ ROM_LOAD16_BYTE( "058-c6.c6", 0x800001, 0x200000, CRC(8ff1f43d) SHA1(6180ceb5412a3e2e34e9513a3283b9f63087f747) )
+ROM_END
+
+ROM_START( fatfurspa ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x180000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "058-p1.p1", 0x000000, 0x100000, CRC(2f585ba2) SHA1(429b4bf43fb9b1082c15d645ca328f9d175b976b) )
+ ROM_LOAD16_WORD_SWAP( "058-p2.sp2", 0x100000, 0x080000, CRC(d7c71a6b) SHA1(b3428063031a2e5857da40a5d2ffa87fb550c1bb) )
+ /* the rom below acts as a patch to the program rom in the cart, replacing the first 512kb */
+ ROM_LOAD16_WORD_SWAP( "058-epr.ep1", 0x000000, 0x080000, CRC(9f0c1e1a) SHA1(02861b0f230541becccc3df6a2c85dbe8733e7ce) )
+ /* P is on eprom, correct chip label unknown */
+
+ NEO_SFIX_128K( "058-s1.s1", CRC(2df03197) SHA1(24083cfc97e720ac9e131c9fe37df57e27c49294) )
+
+ NEO_BIOS_AUDIO_128K( "058-m1.m1", CRC(ccc5186e) SHA1(cf9091c523c182aebfb928c91640b2d72fd70123) )
+
+ ROM_REGION( 0x500000, "ymsnd", 0 )
+ ROM_LOAD( "058-v1.v1", 0x000000, 0x200000, CRC(55d7ce84) SHA1(05ac6a395d9bf9166925acca176a8d6129f533c8) )
+ ROM_LOAD( "058-v2.v2", 0x200000, 0x200000, CRC(ee080b10) SHA1(29814fc21bbe30d37745c8918fab00c83a309be4) )
+ ROM_LOAD( "058-v3.v3", 0x400000, 0x100000, CRC(f9eb3d4a) SHA1(d1747f9460b965f6daf4f881ed4ecd04c5253434) )
+
+ ROM_REGION( 0xc00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "058-c1.c1", 0x000000, 0x200000, CRC(044ab13c) SHA1(569d283638a132bc163faac2a9055497017ee0d2) )
+ ROM_LOAD16_BYTE( "058-c2.c2", 0x000001, 0x200000, CRC(11e6bf96) SHA1(c093a4f93f13e07b276e28b30c2a14dda9135d8f) )
+ ROM_LOAD16_BYTE( "058-c3.c3", 0x400000, 0x200000, CRC(6f7938d5) SHA1(be057b0a3faeb76d5fff161d3e6fea8a26e11d2c) )
+ ROM_LOAD16_BYTE( "058-c4.c4", 0x400001, 0x200000, CRC(4ad066ff) SHA1(4e304646d954d5f7bbabc5d068e85de31d38830f) )
+ ROM_LOAD16_BYTE( "058-c5.c5", 0x800000, 0x200000, CRC(49c5e0bf) SHA1(f3784178f90751990ea47a082a6aa869ee3566c9) )
+ ROM_LOAD16_BYTE( "058-c6.c6", 0x800001, 0x200000, CRC(8ff1f43d) SHA1(6180ceb5412a3e2e34e9513a3283b9f63087f747) )
+ROM_END
+
+/****************************************
+ ID-0059
+ . NGM-059
+ NEO-MVS PROGTOP / NEO-MVS CHA256
+ NEO-MVS PROG 4096 B / NEO-MVS CHA 42G-3
+ . NGH-059
+****************************************/
+
+ROM_START( savagere )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "059-p1.p1", 0x100000, 0x100000, CRC(01d4e9c0) SHA1(3179d2be59bf2de6918d506117cff50acf7e09f3) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "059-s1.s1", CRC(e08978ca) SHA1(55152cb9bd0403ae8656b93a6b1522dba5db6d1a) )
+
+ NEO_BIOS_AUDIO_128K( "059-m1.m1", CRC(29992eba) SHA1(187be624abe8670503edb235ff21ae8fdc3866e0) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "059-v1.v1", 0x000000, 0x200000, CRC(530c50fd) SHA1(29401cee7f7d2c199c7cb58092e86b28205e81ad) )
+ ROM_LOAD( "059-v2.v2", 0x200000, 0x200000, CRC(eb6f1cdb) SHA1(7a311388315ea543babf872f62219fdc4d39d013) )
+ ROM_LOAD( "059-v3.v3", 0x400000, 0x200000, CRC(7038c2f9) SHA1(c1d6f86b24feba03fe009b58199d2eeabe572f4e) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "059-c1.c1", 0x000000, 0x200000, CRC(763ba611) SHA1(d3262e0332c894ee149c5963f882cc5e5562ee57) )
+ ROM_LOAD16_BYTE( "059-c2.c2", 0x000001, 0x200000, CRC(e05e8ca6) SHA1(986a9b16ff92bc101ab567d2d01348e093abea9a) )
+ ROM_LOAD16_BYTE( "059-c3.c3", 0x400000, 0x200000, CRC(3e4eba4b) SHA1(770adec719e63a30ebe9522cc7576caaca44f3b2) )
+ ROM_LOAD16_BYTE( "059-c4.c4", 0x400001, 0x200000, CRC(3c2a3808) SHA1(698adcec0715c9e78b6286be38debf0ce28fd644) )
+ ROM_LOAD16_BYTE( "059-c5.c5", 0x800000, 0x200000, CRC(59013f9e) SHA1(5bf48fcc450da72a8c4685f6e3887e67eae49988) )
+ ROM_LOAD16_BYTE( "059-c6.c6", 0x800001, 0x200000, CRC(1c8d5def) SHA1(475d89a5c4922a9f6bd756d23c2624d57b6e9d62) )
+ ROM_LOAD16_BYTE( "059-c7.c7", 0xc00000, 0x200000, CRC(c88f7035) SHA1(c29a428b741f4fe7b71a3bc23c87925b6bc1ca8f) )
+ ROM_LOAD16_BYTE( "059-c8.c8", 0xc00001, 0x200000, CRC(484ce3ba) SHA1(4f21ed20ce6e2b67e2b079404599310c94f591ff) )
+ROM_END
+
+/****************************************
+ ID-0060
+ . ??M-060
+ NEO-MVS PROGGSC / NEO-MVS CHA256B
+****************************************/
+
+ROM_START( fightfev ) /* MVS ONLY RELEASE */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "060-p1.p1", 0x0000000, 0x100000, CRC(2a104b50) SHA1(3eb663d3df7074e1cdf4c0e450a35c9cf55d8979) )
+
+ NEO_SFIX_128K( "060-s1.s1", CRC(d62a72e9) SHA1(a23e4c4fd4ec11a7467ce41227c418b4dd1ef649) )
+
+ NEO_BIOS_AUDIO_128K( "060-m1.m1", CRC(0b7c4e65) SHA1(999a1e784de18db3f1332b30bc425836ea6970be) )
+
+ ROM_REGION( 0x300000, "ymsnd", 0 )
+ ROM_LOAD( "060-v1.v1", 0x000000, 0x200000, CRC(f417c215) SHA1(0f53b8dd056f43b5d880628e8b74c2b27881ffac) )
+ ROM_LOAD( "060-v2.v2", 0x200000, 0x100000, CRC(efcff7cf) SHA1(e8372303724284a750b706dc6bf7641e4c52bb95) )
+
+ ROM_REGION( 0x0800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "060-c1.c1", 0x0000000, 0x200000, CRC(8908fff9) SHA1(f8c16ab0248b60f3a62e0d4d65c456e2f8e4da49) )
+ ROM_LOAD16_BYTE( "060-c2.c2", 0x0000001, 0x200000, CRC(c6649492) SHA1(5d39b077387ed6897ac075ede4a2aa94bb64545e) )
+ ROM_LOAD16_BYTE( "060-c3.c3", 0x0400000, 0x200000, CRC(0956b437) SHA1(c70be8b5cebf321afe4c3f5e9a12413c3077694a) )
+ ROM_LOAD16_BYTE( "060-c4.c4", 0x0400001, 0x200000, CRC(026f3b62) SHA1(d608483b70d60e7aa0e41f25a8b3fed508129eb7) )
+ROM_END
+
+ROM_START( fightfeva ) /* MVS ONLY RELEASE */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "060-p1.p1", 0x0000000, 0x100000, CRC(2a104b50) SHA1(3eb663d3df7074e1cdf4c0e450a35c9cf55d8979) )
+ /* the rom below acts as a patch to the program rom in the cart, replacing the first 512kb */
+ ROM_LOAD16_WORD_SWAP( "1.sp2", 0x000000, 0x080000, CRC(3032041b) SHA1(4b8ed2e6f74579ea35a53e06ccac42d6905b0f51) )
+ /* P is on eprom, has a Viccom logo at the top of the label with a circled '1' in the center */
+
+ NEO_SFIX_128K( "060-s1.s1", CRC(d62a72e9) SHA1(a23e4c4fd4ec11a7467ce41227c418b4dd1ef649) )
+
+ NEO_BIOS_AUDIO_128K( "060-m1.m1", CRC(0b7c4e65) SHA1(999a1e784de18db3f1332b30bc425836ea6970be) )
+
+ ROM_REGION( 0x300000, "ymsnd", 0 )
+ ROM_LOAD( "060-v1.v1", 0x000000, 0x200000, CRC(f417c215) SHA1(0f53b8dd056f43b5d880628e8b74c2b27881ffac) )
+ ROM_LOAD( "060-v2.v2", 0x200000, 0x100000, CRC(efcff7cf) SHA1(e8372303724284a750b706dc6bf7641e4c52bb95) )
+
+ ROM_REGION( 0x0800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "060-c1.c1", 0x0000000, 0x200000, CRC(8908fff9) SHA1(f8c16ab0248b60f3a62e0d4d65c456e2f8e4da49) )
+ ROM_LOAD16_BYTE( "060-c2.c2", 0x0000001, 0x200000, CRC(c6649492) SHA1(5d39b077387ed6897ac075ede4a2aa94bb64545e) )
+ ROM_LOAD16_BYTE( "060-c3.c3", 0x0400000, 0x200000, CRC(0956b437) SHA1(c70be8b5cebf321afe4c3f5e9a12413c3077694a) )
+ ROM_LOAD16_BYTE( "060-c4.c4", 0x0400001, 0x200000, CRC(026f3b62) SHA1(d608483b70d60e7aa0e41f25a8b3fed508129eb7) )
+ROM_END
+
+/****************************************
+ ID-0061
+ . NGM-061
+ NEO-MVS PROGGSC / NEO-MVS CHA256
+ NEO-MVS PROGTOP / NEO-MVS CHA256
+ NEO-MVS PROG 4096 B / NEO-MVS CHA256
+ . NGH-061
+ NEO-AEG PROGRKB / NEO-AEG CHA256[B]
+****************************************/
+
+ROM_START( ssideki2 ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "061-p1.p1", 0x000000, 0x100000, CRC(5969e0dc) SHA1(78abea880c125ec5a85bef6404478512a34b5513) )
+ /* also found MVS sets with ep1 / ep2 on eprom; correct chip label unknown. */
+
+ NEO_SFIX_128K( "061-s1.s1", CRC(226d1b68) SHA1(de010f6fda3ddadb181fe37daa6105f22e78b970) )
+
+ NEO_BIOS_AUDIO_128K( "061-m1.m1", CRC(156f6951) SHA1(49686f615f109a02b4f23931f1c84fee13872ffd) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "061-v1.v1", 0x000000, 0x200000, CRC(f081c8d3) SHA1(fc9da0ddc1ddd1f9ae1443a726815c25e9dc38ae) )
+ ROM_LOAD( "061-v2.v2", 0x200000, 0x200000, CRC(7cd63302) SHA1(c39984c0ae0a8e76f1fc036344bbb83635c18937) )
+
+ ROM_REGION( 0x800000, "sprites", 0 )
+ /* Different layout with 8xC (8 mbit) also exists; naming sheme 061-Cx */
+ ROM_LOAD16_BYTE( "061-c1-16.c1", 0x000000, 0x200000, CRC(a626474f) SHA1(d695f0dcb9480088b3a7c1488bd541b4c159528a) )
+ ROM_LOAD16_BYTE( "061-c2-16.c2", 0x000001, 0x200000, CRC(c3be42ae) SHA1(7fa65538bd0a0a162e4d3e9f49913da59d915e02) )
+ ROM_LOAD16_BYTE( "061-c3-16.c3", 0x400000, 0x200000, CRC(2a7b98b9) SHA1(75e1019dca8a8583afcc53651ac856cba3a96315) )
+ ROM_LOAD16_BYTE( "061-c4-16.c4", 0x400001, 0x200000, CRC(c0be9a1f) SHA1(228f41eaefdf3e147761f8ef849e3b5f321877d4) )
+ROM_END
+
+/****************************************
+ ID-0062
+ . DEM-001
+ NEO-MVS PROGGSC / NEO-MVS CHA256
+ . DEH-001
+****************************************/
+
+ROM_START( spinmast )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "062-p1.p1", 0x000000, 0x100000, CRC(37aba1aa) SHA1(1a2ab9593371cc2f665121d554eec3f6bb4d09ff) )
+ ROM_LOAD16_WORD_SWAP( "062-p2.sp2", 0x100000, 0x100000, CRC(f025ab77) SHA1(4944be04648296d0b93cfe4c5ca7b9cede072cff) )
+
+ NEO_SFIX_128K( "062-s1.s1", CRC(289e2bbe) SHA1(f52c7f2bffc89df3130b3cabd200408509a28cdc) )
+
+ NEO_BIOS_AUDIO_128K( "062-m1.m1", CRC(76108b2f) SHA1(08c89a8b746dbb10ff885b41cde344173c2e3699) )
+
+ ROM_REGION( 0x100000, "ymsnd", 0 )
+ ROM_LOAD( "062-v1.v1", 0x000000, 0x100000, CRC(cc281aef) SHA1(68be154b3e25f837afb4a477600dbe0ee69bec44) )
+
+ ROM_REGION( 0x800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "062-c1.c1", 0x000000, 0x100000, CRC(a9375aa2) SHA1(69218d8f1361e9ea709da11e3f15fe46b1db7181) )
+ ROM_LOAD16_BYTE( "062-c2.c2", 0x000001, 0x100000, CRC(0e73b758) SHA1(a247f736fbca0b609818dca4844ebb8442753bc1) )
+ ROM_LOAD16_BYTE( "062-c3.c3", 0x200000, 0x100000, CRC(df51e465) SHA1(171953c7a870f3ab96e0f875117ee7343931fd38) )
+ ROM_LOAD16_BYTE( "062-c4.c4", 0x200001, 0x100000, CRC(38517e90) SHA1(f7c64b94ac20f5146f9bb48b53cb2b30fe5b8f8c) )
+ ROM_LOAD16_BYTE( "062-c5.c5", 0x400000, 0x100000, CRC(7babd692) SHA1(0d4cd5006baa8d951cd2b6194ace566fa2845b8a) )
+ ROM_LOAD16_BYTE( "062-c6.c6", 0x400001, 0x100000, CRC(cde5ade5) SHA1(5899ef5dfcdbb8cf8c6aba748dbb52f3c5fed5fe) )
+ ROM_LOAD16_BYTE( "062-c7.c7", 0x600000, 0x100000, CRC(bb2fd7c0) SHA1(cce11c4cf39ac60143235ff89261806df339dae5) )
+ ROM_LOAD16_BYTE( "062-c8.c8", 0x600001, 0x100000, CRC(8d7be933) SHA1(e7097cfa26a959f90721e2e8368ceb47ea9db661) )
+ROM_END
+
+/****************************************
+ ID-0063
+ . NGM-063
+ NEO-MVS PROGTOP / NEO-MVS CHA256
+ . NGH-063
+ NEO-AEG PROGTOP2 / NEO-AEG CHA256 B
+****************************************/
+
+ROM_START( samsho2 ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "063-p1.p1", 0x100000, 0x100000, CRC(22368892) SHA1(0997f8284aa0f57a333be8a0fdea777d0d01afd6) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+ /* also found MVS sets with ep1 / ep2 on eprom and p1 / sp2 on maskrom; correct chip label unknown */
+
+ NEO_SFIX_128K( "063-s1.s1", CRC(64a5cd66) SHA1(12cdfb27bf9ccd5a8df6ddd4628ef7cf2c6d4964) )
+
+ NEO_BIOS_AUDIO_128K( "063-m1.m1", CRC(56675098) SHA1(90429fc40d056d480d0e2bbefbc691d9fa260fc4) )
+
+ ROM_REGION( 0x700000, "ymsnd", 0 )
+ ROM_LOAD( "063-v1.v1", 0x000000, 0x200000, CRC(37703f91) SHA1(a373ebef4c33ba1d8340e826981a58769aada238) )
+ ROM_LOAD( "063-v2.v2", 0x200000, 0x200000, CRC(0142bde8) SHA1(0be6c53acac44802bf70b6925452f70289a139d9) )
+ ROM_LOAD( "063-v3.v3", 0x400000, 0x200000, CRC(d07fa5ca) SHA1(1da7f081f8b8fc86a91feacf900f573218d82676) )
+ ROM_LOAD( "063-v4.v4", 0x600000, 0x100000, CRC(24aab4bb) SHA1(10ee4c5b3579865b93dcc1e4079963276aa700a6) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "063-c1.c1", 0x000000, 0x200000, CRC(86cd307c) SHA1(0d04336f7c436d74638d8c1cd8651faf436a6bec) )
+ ROM_LOAD16_BYTE( "063-c2.c2", 0x000001, 0x200000, CRC(cdfcc4ca) SHA1(179dc81432424d68cefedd20cc1c4b2a95deb891) )
+ ROM_LOAD16_BYTE( "063-c3.c3", 0x400000, 0x200000, CRC(7a63ccc7) SHA1(49d97c543bc2860d493a353ab0d059088c6fbd21) )
+ ROM_LOAD16_BYTE( "063-c4.c4", 0x400001, 0x200000, CRC(751025ce) SHA1(e1bbaa7cd67fd04e4aab7f7ea77f63ae1cbc90d0) )
+ ROM_LOAD16_BYTE( "063-c5.c5", 0x800000, 0x200000, CRC(20d3a475) SHA1(28da44a136bd14c73c62c147c3f6e6bcfa1066de) )
+ ROM_LOAD16_BYTE( "063-c6.c6", 0x800001, 0x200000, CRC(ae4c0a88) SHA1(cc8a7d11daa3821f83a6fd0942534706f939e576) )
+ ROM_LOAD16_BYTE( "063-c7.c7", 0xc00000, 0x200000, CRC(2df3cbcf) SHA1(e54f9022359963711451c2025825b862d36c6975) )
+ ROM_LOAD16_BYTE( "063-c8.c8", 0xc00001, 0x200000, CRC(1ffc6dfa) SHA1(acea18aca76c072e0bac2a364fc96d49cfc86e77) )
+ROM_END
+
+ROM_START( samsho2k ) /* KOREAN VERSION */
+ // This has corrupt text if used with the Japan bios due to the replacement of the s1 rom to contain the new logo
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "063-p1-kan.p1", 0x100000, 0x100000, CRC(147cc6d7) SHA1(8e22305f41a0688786ff55437c25948e6c8fda58) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+ // the roms below apply as patch over the main program (I haven't checked what they change, the game boots as the Korean version even with just the above program)
+ ROM_LOAD16_WORD_SWAP( "063-ep1-kan.ep1", 0x000000, 0x080000, CRC(fa32e2d8) SHA1(94f56759ec04ab3a1e557bc2dc51b92176b3c147) )
+ ROM_LOAD16_WORD_SWAP( "063-ep2-kan.ep2", 0x080000, 0x080000, CRC(70b1a4d9) SHA1(387737e87a68d0ea4fd13693f1f30d3227a17c82) ) // this is exactly the same data anyway!
+
+ NEO_SFIX_128K( "063-s1-kan.s1", CRC(ff08f80b) SHA1(240c6a1c52edebb49cc99ea08484c6a2d61ebf84) )
+
+ NEO_BIOS_AUDIO_128K( "063-m1.m1", CRC(56675098) SHA1(90429fc40d056d480d0e2bbefbc691d9fa260fc4) )
+
+ ROM_REGION( 0x700000, "ymsnd", 0 )
+ ROM_LOAD( "063-v1.v1", 0x000000, 0x200000, CRC(37703f91) SHA1(a373ebef4c33ba1d8340e826981a58769aada238) )
+ ROM_LOAD( "063-v2.v2", 0x200000, 0x200000, CRC(0142bde8) SHA1(0be6c53acac44802bf70b6925452f70289a139d9) )
+ ROM_LOAD( "063-v3.v3", 0x400000, 0x200000, CRC(d07fa5ca) SHA1(1da7f081f8b8fc86a91feacf900f573218d82676) )
+ ROM_LOAD( "063-v4.v4", 0x600000, 0x100000, CRC(24aab4bb) SHA1(10ee4c5b3579865b93dcc1e4079963276aa700a6) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "063-c1.c1", 0x000000, 0x200000, CRC(86cd307c) SHA1(0d04336f7c436d74638d8c1cd8651faf436a6bec) )
+ ROM_LOAD16_BYTE( "063-c2.c2", 0x000001, 0x200000, CRC(cdfcc4ca) SHA1(179dc81432424d68cefedd20cc1c4b2a95deb891) )
+ ROM_LOAD16_BYTE( "063-c3.c3", 0x400000, 0x200000, CRC(7a63ccc7) SHA1(49d97c543bc2860d493a353ab0d059088c6fbd21) )
+ ROM_LOAD16_BYTE( "063-c4.c4", 0x400001, 0x200000, CRC(751025ce) SHA1(e1bbaa7cd67fd04e4aab7f7ea77f63ae1cbc90d0) )
+ ROM_LOAD16_BYTE( "063-c5.c5", 0x800000, 0x200000, CRC(20d3a475) SHA1(28da44a136bd14c73c62c147c3f6e6bcfa1066de) )
+ ROM_LOAD16_BYTE( "063-c6.c6", 0x800001, 0x200000, CRC(ae4c0a88) SHA1(cc8a7d11daa3821f83a6fd0942534706f939e576) )
+ ROM_LOAD16_BYTE( "063-c7.c7", 0xc00000, 0x200000, CRC(2df3cbcf) SHA1(e54f9022359963711451c2025825b862d36c6975) )
+ ROM_LOAD16_BYTE( "063-c8.c8", 0xc00001, 0x200000, CRC(1ffc6dfa) SHA1(acea18aca76c072e0bac2a364fc96d49cfc86e77) )
+ROM_END
+
+/****************************************
+ ID-0064
+ . ADM-007
+ NEO-MVS PROGGSC / NEO-MVS CHA256
+ . ADH-007
+ NEO-AEG PROGRK / NEO-AEG CHA256
+ NEO-AEG PROGRKB / NEO-AEG CHA256[B]
+****************************************/
+
+ROM_START( wh2j ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "064-p1.p1", 0x100000, 0x100000, CRC(385a2e86) SHA1(cfde4a1aeae038a3d6ca9946065624f097682d3d) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "064-s1.s1", CRC(2a03998a) SHA1(5e33f469982f12d4622a06d323a345f192bf88e6) )
+
+ NEO_BIOS_AUDIO_128K( "064-m1.m1", CRC(d2eec9d3) SHA1(09478787045f1448d19d064dd3d540d1741fd619) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "064-v1.v1", 0x000000, 0x200000, CRC(aa277109) SHA1(35c22b15bb0a4d0ab118cb22a2d450d03995a17c) )
+ ROM_LOAD( "064-v2.v2", 0x200000, 0x200000, CRC(b6527edd) SHA1(2bcf5bfa6e117cf4a3728a5e5f5771313c93f22a) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ /* Different layout with 4xC (32 mbit) also exists; chip labels are 064-C13, 064-C24, 064-C57 and 064-c68. */
+ ROM_LOAD16_BYTE( "064-c1.c1", 0x000000, 0x200000, CRC(2ec87cea) SHA1(e713ec7839a7665edee6ee3f82a6e530b3b4bd7c) )
+ ROM_LOAD16_BYTE( "064-c2.c2", 0x000001, 0x200000, CRC(526b81ab) SHA1(b5f0a2f04489539ed6b9d0810b12787356c64b23) )
+ ROM_LOAD16_BYTE( "064-c3.c3", 0x400000, 0x200000, CRC(436d1b31) SHA1(059776d77b91377ed0bcfc278802d659c917fc0f) )
+ ROM_LOAD16_BYTE( "064-c4.c4", 0x400001, 0x200000, CRC(f9c8dd26) SHA1(25a9eea1d49b21b4a988beb32c25bf2f7796f227) )
+ ROM_LOAD16_BYTE( "064-c5.c5", 0x800000, 0x200000, CRC(8e34a9f4) SHA1(67b839b426ef3fad0a85d951fdd44c0a45c55226) )
+ ROM_LOAD16_BYTE( "064-c6.c6", 0x800001, 0x200000, CRC(a43e4766) SHA1(54f282f2b1ff2934cca7acbb4386a2b99a29df3a) )
+ ROM_LOAD16_BYTE( "064-c7.c7", 0xc00000, 0x200000, CRC(59d97215) SHA1(85a960dc7f364df13ee0c2f99a4c53aefb081486) )
+ ROM_LOAD16_BYTE( "064-c8.c8", 0xc00001, 0x200000, CRC(fc092367) SHA1(69ff4ae909dd857de3ca8645d63f8b4bde117448) )
+ROM_END
+
+/****************************************
+ ID-0065
+ . DEM-002
+ NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1
+ . DEH-002
+ NEO-AEG PROG42G-1 / NEO-AEG CHA42G-1
+****************************************/
+
+ROM_START( wjammers )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "065-p1.p1", 0x000000, 0x100000, CRC(6692c140) SHA1(5da574e906974fac92bb2f49bdeea257c014a897) )
+
+ NEO_SFIX_128K( "065-s1.s1", CRC(074b5723) SHA1(86d3b3bb5414f43e4d3b7a2af0db23cc71ce8412) )
+
+ NEO_BIOS_AUDIO_128K( "065-m1.m1", CRC(52c23cfc) SHA1(809a7e072ad9acbffc25e9bd27cdb97638d09d07) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "065-v1.v1", 0x000000, 0x100000, CRC(ce8b3698) SHA1(7d75e2a5cf8c90be422f8b425447e81597fe145a) )
+ ROM_LOAD( "065-v2.v2", 0x100000, 0x100000, CRC(659f9b96) SHA1(62f40365212153bc3b92a1187fa44f6cdc7f7b83) )
+ ROM_LOAD( "065-v3.v3", 0x200000, 0x100000, CRC(39f73061) SHA1(ec57cd58e7f8569cff925d11e2320d588ce4fe49) )
+ ROM_LOAD( "065-v4.v4", 0x300000, 0x100000, CRC(5dee7963) SHA1(f8e6de73d65dd80b29c711f00835a574a770cb4e) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "065-c1.c1", 0x000000, 0x100000, CRC(c7650204) SHA1(42918d700d59864f8ab15caf968a062a563c9b09) )
+ ROM_LOAD16_BYTE( "065-c2.c2", 0x000001, 0x100000, CRC(d9f3e71d) SHA1(fad1f64061eac1bf85bf6d75d2eae974a8c94069) )
+ ROM_LOAD16_BYTE( "065-c3.c3", 0x200000, 0x100000, CRC(40986386) SHA1(65795a50197049681265946713d416c9cdb68f08) )
+ ROM_LOAD16_BYTE( "065-c4.c4", 0x200001, 0x100000, CRC(715e15ff) SHA1(ac8b8b01f5c7384b883afbe0cf977430378e3fef) )
+ROM_END
+
+/****************************************
+ ID-0066
+ . DEM-003
+ NEO-MVS PROGGSC / NEO-MVS CHA256
+ . DEH-003
+****************************************/
+
+ROM_START( karnovr )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "066-p1.p1", 0x000000, 0x100000, CRC(8c86fd22) SHA1(8cf97c6fb9c5717167ccc54bf5856248ccaf32c6) )
+
+ NEO_SFIX_128K( "066-s1.s1", CRC(bae5d5e5) SHA1(aa69d9b235b781ec51f72a528fada9cb12e72cbc) )
+
+ NEO_BIOS_AUDIO_128K( "066-m1.m1", CRC(030beae4) SHA1(ceb6ee6c09514504efacdbca7b280901e4c97084) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "066-v1.v1", 0x000000, 0x200000, CRC(0b7ea37a) SHA1(34e7d4f6db053674a7e8c8b2e3e398777d5b02e6) )
+
+ ROM_REGION( 0xc00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "066-c1.c1", 0x000000, 0x200000, CRC(09dfe061) SHA1(ca4c0f0ce80967b4be2f18b72435c468bbfbac4c) )
+ ROM_LOAD16_BYTE( "066-c2.c2", 0x000001, 0x200000, CRC(e0f6682a) SHA1(addb4fbc30da2b8ffc86819d92a874eb232f67dd) )
+ ROM_LOAD16_BYTE( "066-c3.c3", 0x400000, 0x200000, CRC(a673b4f7) SHA1(d138f5b38fd65c61549ce36f5c4983f7c8a3e7f6) )
+ ROM_LOAD16_BYTE( "066-c4.c4", 0x400001, 0x200000, CRC(cb3dc5f4) SHA1(865d9ccfc3df517c341d6aac16120f6b6aa759fe) )
+ ROM_LOAD16_BYTE( "066-c5.c5", 0x800000, 0x200000, CRC(9a28785d) SHA1(19723e1f7ff429e8a038d89488b279f830dfaf6e) )
+ ROM_LOAD16_BYTE( "066-c6.c6", 0x800001, 0x200000, CRC(c15c01ed) SHA1(7cf5583e6610bcdc3b332896cefc71df84fb3f19) )
+ROM_END
+
+/****************************************
+ ID-0067
+ . ??M-067
+ NEO-MVS PROG16 / NEO-MVS CHA256B
+ NEO-MVS PROG16 / NEO-MVS CHA256
+****************************************/
+
+ROM_START( gururin ) /* MVS ONLY RELEASE */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "067-p1.p1", 0x000000, 0x80000, CRC(4cea8a49) SHA1(cea4a35db8de898e30eb40dd339b3cbe77ac0856) )
+
+ NEO_SFIX_128K( "067-s1.s1", CRC(b119e1eb) SHA1(f63a68a71aea220d3d4475847652e2a1f68b2b6f) )
+
+ NEO_BIOS_AUDIO_128K( "067-m1.m1", CRC(9e3c6328) SHA1(17e8479c258f28a01d2283be9e692ff7685898cc) )
+
+ ROM_REGION( 0x80000, "ymsnd", 0 )
+ ROM_LOAD( "067-v1.v1", 0x000000, 0x80000, CRC(cf23afd0) SHA1(10f87014ee10613f92b04f482f449721a6379db7) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "067-c1.c1", 0x000000, 0x200000, CRC(35866126) SHA1(e4b24670ccc7901af5f66b11b15fae4e67f843ab) )
+ ROM_LOAD16_BYTE( "067-c2.c2", 0x000001, 0x200000, CRC(9db64084) SHA1(68a43c12f63f5e98d68ad0902a6551c5d30f8543) )
+ROM_END
+
+/****************************************
+ ID-0068
+ . NGM-068
+ NEO-MVS PROGTOP / NEO-MVS CHA256
+****************************************/
+
+ROM_START( pspikes2 ) /* MVS ONLY RELEASE */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "068-pg1.p1", 0x000000, 0x100000, CRC(105a408f) SHA1(2ee51defa1c24c66c63a6498ee542ac26de3cfbb) )
+
+ NEO_SFIX_128K( "068-sg1.s1", CRC(18082299) SHA1(efe93fabe6a76a5dc8cf12f255e571480afb40a0) )
+
+ NEO_BIOS_AUDIO_128K( "068-mg1.m1", CRC(b1c7911e) SHA1(27b298e7d50981331e17aa642e2e363ffac4333a) )
+
+ ROM_REGION( 0x300000, "ymsnd", 0 )
+ ROM_LOAD( "068-v1.v1", 0x000000, 0x100000, CRC(2ced86df) SHA1(d6b73d1f31efbd74fb745200d4dade5f80b71541) )
+ ROM_LOAD( "068-v2.v2", 0x100000, 0x100000, CRC(970851ab) SHA1(6c9b04e9cc6b92133f1154e5bdd9d38d8ef050a7) )
+ ROM_LOAD( "068-v3.v3", 0x200000, 0x100000, CRC(81ff05aa) SHA1(d74302f38c59055bfc83b39dff798a585314fecd) )
+
+ ROM_REGION( 0x600000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "068-c1.c1", 0x000000, 0x100000, CRC(7f250f76) SHA1(5109a41adcb7859e24dc43d88842d4cc18cd3305) )
+ ROM_LOAD16_BYTE( "068-c2.c2", 0x000001, 0x100000, CRC(20912873) SHA1(2df8766b531e47ffc30457e41c63b83557b4f468) )
+ ROM_LOAD16_BYTE( "068-c3.c3", 0x200000, 0x100000, CRC(4b641ba1) SHA1(7a9c42a30163eda455f7bde2302402b1a5de7178) )
+ ROM_LOAD16_BYTE( "068-c4.c4", 0x200001, 0x100000, CRC(35072596) SHA1(4150a21041f06514c97592bd8af686504b06e187) )
+ ROM_LOAD16_BYTE( "068-c5.c5", 0x400000, 0x100000, CRC(151dd624) SHA1(f2690a3fe9c64f70f283df785a5217d5b92a289f) )
+ ROM_LOAD16_BYTE( "068-c6.c6", 0x400001, 0x100000, CRC(a6722604) SHA1(b40c57fb4be93ac0b918829f88393ced3d4f8bde) )
+ROM_END
+
+/****************************************
+ ID-0069
+ . NGM-069
+ NEO-MVS PROGBK1 / NEO-MVS CHA256
+. NGH-069
+ NEO-AEG PROGBK1Y / NEO-AEG CHA256RY
+****************************************/
+
+ROM_START( fatfury3 ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "069-p1.p1", 0x000000, 0x100000, CRC(a8bcfbbc) SHA1(519c4861151797e5f4d4f33432b83dfabed8e7c4) )
+ ROM_LOAD16_WORD_SWAP( "069-sp2.sp2", 0x100000, 0x200000, CRC(dbe963ed) SHA1(8ece7f663cfe8e563576a397e41161d392cee67e) )
+
+ NEO_SFIX_128K( "069-s1.s1", CRC(0b33a800) SHA1(b7d2cc97da4f30ddebc7b801f5e1d17d2306b2db) )
+
+ NEO_BIOS_AUDIO_128K( "069-m1.m1", CRC(fce72926) SHA1(a40c74f793900b8542f0b8383ce4bf46fca112d4) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "069-v1.v1", 0x000000, 0x400000, CRC(2bdbd4db) SHA1(5f4fecf69c2329d699cbd45829c19303b1e2a80e) )
+ ROM_LOAD( "069-v2.v2", 0x400000, 0x400000, CRC(a698a487) SHA1(11b8bc53bc26a51f4a408e900e3769958625c4ed) )
+ ROM_LOAD( "069-v3.v3", 0x800000, 0x200000, CRC(581c5304) SHA1(e9550ec547b4f605afed996b22d711f49b48fa92) )
+
+ ROM_REGION( 0x1400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "069-c1.c1", 0x0000000, 0x400000, CRC(e302f93c) SHA1(d8610b14900b2b8fe691b67ca9b1abb335dbff74) )
+ ROM_LOAD16_BYTE( "069-c2.c2", 0x0000001, 0x400000, CRC(1053a455) SHA1(69501bfac68739e63d798045b812badd251d57b8) )
+ ROM_LOAD16_BYTE( "069-c3.c3", 0x0800000, 0x400000, CRC(1c0fde2f) SHA1(cf6c2ef56c03a861de3b0b6dc0d7c9204d947f9d) )
+ ROM_LOAD16_BYTE( "069-c4.c4", 0x0800001, 0x400000, CRC(a25fc3d0) SHA1(83cb349e2f1032652060b233e741fb893be5af16) )
+ ROM_LOAD16_BYTE( "069-c5.c5", 0x1000000, 0x200000, CRC(b3ec6fa6) SHA1(7e4c8ee9dd8d9a25ff183d9d8b05f38769348bc7) )
+ ROM_LOAD16_BYTE( "069-c6.c6", 0x1000001, 0x200000, CRC(69210441) SHA1(6d496c549dba65caabeaffe5b762e86f9d648a26) )
+ROM_END
+
+/****************************************
+ ID-0070
+ . ??M-070
+ NEO-MVS PROGBK1 / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7042)
+****************************************/
+
+ROM_START( zupapa ) /* Original Version - Encrypted GFX */ /* MVS ONLY RELEASE */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "070-p1.p1", 0x000000, 0x100000, CRC(5a96203e) SHA1(49cddec9ca6cc51e5ecf8a34e447a23e1f8a15a1) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "070-epr.m1", CRC(5a3b3191) SHA1(fa9a9930e18c64e598841fb344c4471d3d2c1964) )
+ /* M1 on eprom, correct chip label unknown */
+
+ ROM_REGION( 0x0200000, "ymsnd", 0 )
+ ROM_LOAD( "070-v1.v1", 0x000000, 0x200000, CRC(d3a7e1ff) SHA1(4a4a227e10f4af58168f6c26011ea1d414253f92) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "070-c1.c1", 0x0000000, 0x800000, CRC(f8ad02d8) SHA1(9be54532332a8e963ec35ff1e518947bb11ebade) )
+ ROM_LOAD16_BYTE( "070-c2.c2", 0x0000001, 0x800000, CRC(70156dde) SHA1(06286bf043d50199b47df9a76ca91f39cb28cb90) )
+ROM_END
+
+/****************************************
+ ID-0071
+ Bang Bang Busters (prototype) 1994 Visco
+ Prepared for release in 2000/2001, but apparently Zupapa was favored
+ The 2000 version was released in 2010 for MVS and AES (Releaser claims that it is officially licensed by VISCO)
+
+ Reported UNIVERSE BIOS CRC32:
+ ROM EC861CAF
+ BANK 0 NOT USED
+ BANK 1 NOT USED
+ BANK 2 NOT USED
+ BANK 3 NOT USED
+ ****************************************/
+ROM_START( b2b )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "071.p1", 0x000000, 0x080000, CRC(7687197d) SHA1(4bb9cb7819807f7a7e1f85f1c4faac4a2f8761e8) )
+
+ NEO_SFIX_128K( "071.s1", CRC(44e5f154) SHA1(b3f80051789e60e5d8c5df0408f1aba51616e92d) )
+
+ NEO_BIOS_AUDIO_128K( "071.m1", CRC(6da739ad) SHA1(cbf5f55c54b4ee00943e2a411eeee4e465ce9c34) )
+
+ ROM_REGION( 0x100000, "ymsnd", 0 )
+ ROM_LOAD( "071.v1", 0x000000, 0x100000, CRC(50feffb0) SHA1(00127dae0130889995bfa7560bc4b0662f74fba5) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "071.c1", 0x000000, 0x200000, CRC(23d84a7a) SHA1(9034658ad40e2c45558abc3db312aa2764102fc4) )
+ ROM_LOAD16_BYTE( "071.c2", 0x000001, 0x200000, CRC(ce7b6248) SHA1(ad1cd5adae5c151e183ff88b68afe10f7009f48e) )
+ROM_END
+
+
+/****************************************
+ ID-0072
+ Last Odyssey Pinball Fantasia (prototype) 1995 Monolith
+ A video of this was on youtube in 2010/2011.
+ ****************************************/
+
+/****************************************
+ ID-0073
+ . ??M-073
+ NEO-MVS PROGTOP / NEO-MVS CHA256
+****************************************/
+
+ROM_START( panicbom ) /* MVS ONLY RELEASE */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "073-p1.p1", 0x000000, 0x080000, CRC(adc356ad) SHA1(801e0a54b65d7a3500e6cef2d6bba40c6356dc1f) )
+
+ NEO_SFIX_128K( "073-s1.s1", CRC(b876de7e) SHA1(910347d7657470da914fb0a6b0ea02891e13c081) )
+
+ NEO_BIOS_AUDIO_128K( "073-m1.m1", CRC(3cdf5d88) SHA1(6d8365a946fbd0b7c7b896536322638d80f6a764) )
+
+ ROM_REGION( 0x300000, "ymsnd", 0 )
+ ROM_LOAD( "073-v1.v1", 0x000000, 0x200000, CRC(7fc86d2f) SHA1(aa4234d22157060e0ba97a09c4e85c5276b74099) )
+ ROM_LOAD( "073-v2.v2", 0x200000, 0x100000, CRC(082adfc7) SHA1(19c168e9a6cadcbed79033c320bcf3a45f846daf) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "073-c1.c1", 0x000000, 0x100000, CRC(8582e1b5) SHA1(e17d8f57b8ebee14b8e705374b34abe928937258) )
+ ROM_LOAD16_BYTE( "073-c2.c2", 0x000001, 0x100000, CRC(e15a093b) SHA1(548a418c81af79cd7ab6ad165b8d6daee30abb49) )
+ROM_END
+
+/****************************************
+ ID-0074
+ . ADM-008
+ NEO-MVS PROGTOP / NEO-MVS CHA256B
+ . ADH-008
+ NEO-AEG PROGRK / NEO-AEG CHA256
+****************************************/
+
+ROM_START( aodk ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "074-p1.p1", 0x100000, 0x100000, CRC(62369553) SHA1(ca4d561ee08d16fe6804249d1ba49188eb3bd606) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "074-s1.s1", CRC(96148d2b) SHA1(47725a8059346ebe5639bbdbf62a2ac8028756a9) )
+
+ NEO_BIOS_AUDIO_128K( "074-m1.m1", CRC(5a52a9d1) SHA1(ef913a9a55d29d5dd3beab1ce6039d64ce9b1a5b) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "074-v1.v1", 0x000000, 0x200000, CRC(7675b8fa) SHA1(29f4facf89d551237b31bf779693cbbbc94e1ede) )
+ ROM_LOAD( "074-v2.v2", 0x200000, 0x200000, CRC(a9da86e9) SHA1(ff65af61e42b79a75060a352b24077d1fa28c83f) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "074-c1.c1", 0x000000, 0x200000, CRC(a0b39344) SHA1(adfff7b8836347abf030611563e6068a91164d0a) )
+ ROM_LOAD16_BYTE( "074-c2.c2", 0x000001, 0x200000, CRC(203f6074) SHA1(737f2d707d504df1da1ca5c5cf61cf489a33eb56) )
+ ROM_LOAD16_BYTE( "074-c3.c3", 0x400000, 0x200000, CRC(7fff4d41) SHA1(bebd18a75adeb34c3bbd49cfc8fd3d8c2bf9e475) )
+ ROM_LOAD16_BYTE( "074-c4.c4", 0x400001, 0x200000, CRC(48db3e0a) SHA1(a88505e001e01bb45fb26beda5af24943d02552a) )
+ ROM_LOAD16_BYTE( "074-c5.c5", 0x800000, 0x200000, CRC(c74c5e51) SHA1(0399c53e2a3d721901dddc073fda6ec22e02dfd4) )
+ ROM_LOAD16_BYTE( "074-c6.c6", 0x800001, 0x200000, CRC(73e8e7e0) SHA1(dd6580227743e6a3db4950456ebe870008e022b2) )
+ ROM_LOAD16_BYTE( "074-c7.c7", 0xc00000, 0x200000, CRC(ac7daa01) SHA1(78407a464f67d949933ce2ccaa23fbed80dff1ea) )
+ ROM_LOAD16_BYTE( "074-c8.c8", 0xc00001, 0x200000, CRC(14e7ad71) SHA1(d4583fbce361fd1a11ac6c1a27b0b669e8a5c718) )
+ROM_END
+
+/****************************************
+ ID-0075
+ . NGM-075
+ NEO-MVS PROGGSC / NEO-MVS CHA256
+ . NGH-075
+ NEO-AEG PROGRK / NEO-AEG CHA256
+****************************************/
+
+ROM_START( sonicwi2 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "075-p1.p1", 0x100000, 0x100000, CRC(92871738) SHA1(fed040a7c1ff9e495109813a702d09fb1d2ecf3a) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "075-s1.s1", CRC(c9eec367) SHA1(574e1afe7e0d54610c145131106e59ba2894eeb7) )
+
+ NEO_BIOS_AUDIO_128K( "075-m1.m1", CRC(bb828df1) SHA1(eab8e2868173bdaac7c7ed97305a9aa1033fd303) )
+
+ ROM_REGION( 0x300000, "ymsnd", 0 )
+ ROM_LOAD( "075-v1.v1", 0x000000, 0x200000, CRC(7577e949) SHA1(3ba9f11094dd0cf519f33a16016cfae0d2c6629c) )
+ ROM_LOAD( "075-v2.v2", 0x200000, 0x100000, CRC(021760cd) SHA1(8a24e38f1d4982c4dcd82718995571ac94cbb390) )
+
+ ROM_REGION( 0x800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "075-c1.c1", 0x000000, 0x200000, CRC(3278e73e) SHA1(d9e6c8a3a5213690a1b8747d27806d8ac5aac405) )
+ ROM_LOAD16_BYTE( "075-c2.c2", 0x000001, 0x200000, CRC(fe6355d6) SHA1(ca72fff7a908b6d9325761079ff2a0e28f34cf89) )
+ ROM_LOAD16_BYTE( "075-c3.c3", 0x400000, 0x200000, CRC(c1b438f1) SHA1(b3751c5b426bca0fcc3a58bdb86712c22ef908ab) )
+ ROM_LOAD16_BYTE( "075-c4.c4", 0x400001, 0x200000, CRC(1f777206) SHA1(e29c5ae65ebdcc1167a894306d2446ce909639da) )
+ROM_END
+
+/****************************************
+ ID-0076
+ . ??M-076
+ NEO-MVS PROGGSC / NEO-MVS CHA256
+****************************************/
+
+ROM_START( zedblade ) /* MVS ONLY RELEASE */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "076-p1.p1", 0x000000, 0x080000, CRC(d7c1effd) SHA1(485c2308a40baecd122be9ab4996044622bdcc7e) )
+
+ NEO_SFIX_128K( "076-s1.s1", CRC(f4c25dd5) SHA1(8ec9026219f393930634f9170edbaaee479f875e) )
+
+ NEO_BIOS_AUDIO_128K( "076-m1.m1", CRC(7b5f3d0a) SHA1(4a301781a57ff236f49492b576ff4858b0ffbdf8) )
+
+ ROM_REGION( 0x500000, "ymsnd", 0 )
+ ROM_LOAD( "076-v1.v1", 0x000000, 0x200000, CRC(1a21d90c) SHA1(4793ab06421228ad122e359653ed0f1339b90c7a) )
+ ROM_LOAD( "076-v2.v2", 0x200000, 0x200000, CRC(b61686c3) SHA1(5a3405e833ce36abb7421190438b5cccc8537919) )
+ ROM_LOAD( "076-v3.v3", 0x400000, 0x100000, CRC(b90658fa) SHA1(b9a4b34565ce3688495c47e35c9b888ef686ae9f) )
+
+ ROM_REGION( 0x800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "076-c1.c1", 0x000000, 0x200000, CRC(4d9cb038) SHA1(c0b52b32e1fa719b99ae242d61d5dbea1437331c) )
+ ROM_LOAD16_BYTE( "076-c2.c2", 0x000001, 0x200000, CRC(09233884) SHA1(1895cd0d126a022bce1cc4c7a569032d89f35e3f) )
+ ROM_LOAD16_BYTE( "076-c3.c3", 0x400000, 0x200000, CRC(d06431e3) SHA1(643bd1ad74af272795b02143ba80a76e375036ab) )
+ ROM_LOAD16_BYTE( "076-c4.c4", 0x400001, 0x200000, CRC(4b1c089b) SHA1(cd63961d88c5be84673cce83c683a86b222a064d) )
+ROM_END
+
+/****************************************
+ ID-0077
+ The Warlocks of the Fates / Shinryu Senki (prototype) 1995 SNK/Astec21
+ a video of intro and full gameplay was on youtube in 2014.
+****************************************/
+
+/****************************************
+ ID-0078
+ . NGM-078
+ NEO-MVS PROGTOP / NEO-MVS CHA256
+ . NGH-078
+****************************************/
+
+ROM_START( galaxyfg )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "078-p1.p1", 0x100000, 0x100000, CRC(45906309) SHA1(cdcd96a564acf42e959193e139e149b29c103e25) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "078-s1.s1", CRC(72f8923e) SHA1(da908bffc2b5d8baa2002dbb5bfb3aa17d2472b7) )
+
+ NEO_BIOS_AUDIO_128K( "078-m1.m1", CRC(8e9e3b10) SHA1(7c44d1dbd4f8d337c99e90361d1dab837df85e31) )
+
+ ROM_REGION( 0x500000, "ymsnd", 0 )
+ ROM_LOAD( "078-v1.v1", 0x000000, 0x200000, CRC(e3b735ac) SHA1(e16dfac09aef8115a20bae0bef8c86d4e7d0dc4a) )
+ ROM_LOAD( "078-v2.v2", 0x200000, 0x200000, CRC(6a8e78c2) SHA1(f60b1f8a3a945f279a582745e82f37278ce5d83b) )
+ ROM_LOAD( "078-v3.v3", 0x400000, 0x100000, CRC(70bca656) SHA1(218b7079c90898e7faa382b386e77f81f415e7ac) )
+
+ ROM_REGION( 0xe00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "078-c1.c1", 0x000000, 0x200000, CRC(c890c7c0) SHA1(b96c18a41c34070a4f24ca77cb7516fae8b0fd0c) )
+ ROM_LOAD16_BYTE( "078-c2.c2", 0x000001, 0x200000, CRC(b6d25419) SHA1(e089df9c9a9645f706e501108d634f4d222622a2) )
+ ROM_LOAD16_BYTE( "078-c3.c3", 0x400000, 0x200000, CRC(9d87e761) SHA1(ea1b6d7c9d5ef3a9b48968bde5a52d5699d591cc) )
+ ROM_LOAD16_BYTE( "078-c4.c4", 0x400001, 0x200000, CRC(765d7cb8) SHA1(7b9c86714d688602064d928c9d2b49d70bb7541e) )
+ ROM_LOAD16_BYTE( "078-c5.c5", 0x800000, 0x200000, CRC(e6b77e6a) SHA1(db3b8fc62a6f21c6653621c0665450d5d9a9913d) )
+ ROM_LOAD16_BYTE( "078-c6.c6", 0x800001, 0x200000, CRC(d779a181) SHA1(2761026abd9698a7b56114b76631563abd41fd12) )
+ ROM_LOAD16_BYTE( "078-c7.c7", 0xc00000, 0x100000, CRC(4f27d580) SHA1(c0f12496b45b2fe6e94aa8ac52b0157063127e0a) )
+ ROM_LOAD16_BYTE( "078-c8.c8", 0xc00001, 0x100000, CRC(0a7cc0d8) SHA1(68aaee6341c87e56ce11acc1c4ec8047839fe70d) )
+ROM_END
+
+/****************************************
+ ID-0079
+ . DEM-004
+ NEO-MVS PROGGSC / NEO-MVS CHA256
+ . DEH-004
+ NEO-AEG PROGRK / NEO-AEG CHA256
+****************************************/
+
+ROM_START( strhoop ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "079-p1.p1", 0x000000, 0x100000, CRC(5e78328e) SHA1(7a00b096ed6dd77afc3008c5a4c83686e475f323) )
+
+ NEO_SFIX_128K( "079-s1.s1", CRC(3ac06665) SHA1(ba9ab51eb95c3568304377ef6d7b5f32e8fbcde1) )
+
+ NEO_BIOS_AUDIO_128K( "079-m1.m1", CRC(bee3455a) SHA1(fd5345d9847982085a9b364fff542580889bf02f) )
+
+ ROM_REGION( 0x300000, "ymsnd", 0 )
+ ROM_LOAD( "079-v1.v1", 0x000000, 0x200000, CRC(718a2400) SHA1(cefc5d0b302bd4a87ab1fa244ade4482c23c6806) )
+ ROM_LOAD( "079-v2.v2", 0x200000, 0x100000, CRC(720774eb) SHA1(e4926f01322d0a15e700fb150b368152f2091146) )
+ /* AES 079-v2 is only 4 mbit (TC534200), data is the same */
+
+ ROM_REGION( 0x800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "079-c1.c1", 0x000000, 0x200000, CRC(0581c72a) SHA1(453f7a8474195a1120da5fa24337d79674563d9e) )
+ ROM_LOAD16_BYTE( "079-c2.c2", 0x000001, 0x200000, CRC(5b9b8fb6) SHA1(362aa0de0d2cf9aa03758363ffb1e15e046a3930) )
+ ROM_LOAD16_BYTE( "079-c3.c3", 0x400000, 0x200000, CRC(cd65bb62) SHA1(6f47d77d61d4289bcee82df7c4efa5346a6e4c80) )
+ ROM_LOAD16_BYTE( "079-c4.c4", 0x400001, 0x200000, CRC(a4c90213) SHA1(1b9f7b5f31acd6df2bdab81b849f32c13aa1b884) )
+ROM_END
+
+/****************************************
+ ID-0080
+ . SAM-080
+ NEO-MVS PROGGSC / NEO-MVS CHA256
+ NEO-MVS PROGTOP / NEO-MVS CHA256
+ Boards used for the Korean release
+ . SAH-080
+ NEO-AEG PROGTOP2 / NEO-AEG CHA256 B
+****************************************/
+
+ROM_START( quizkof ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "080-p1.p1", 0x000000, 0x100000, CRC(4440315e) SHA1(f4adba8e341d64a1f6280dfd98ebf6918c00608d) )
+
+ NEO_SFIX_128K( "080-s1.s1", CRC(d7b86102) SHA1(09e1ca6451f3035ce476e3b045541646f860aad5) )
+
+ NEO_BIOS_AUDIO_128K( "080-m1.m1", CRC(f5f44172) SHA1(eaaba1781622901b91bce9257be4e05f84df053b) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "080-v1.v1", 0x000000, 0x200000, CRC(0be18f60) SHA1(05c8b7d9f5a8583015f31902ad16d9c621f47d4e) )
+ ROM_LOAD( "080-v2.v2", 0x200000, 0x200000, CRC(4abde3ff) SHA1(0188bfcafa9a1aac302705736a2bcb26b9d684c2) )
+ ROM_LOAD( "080-v3.v3", 0x400000, 0x200000, CRC(f02844e2) SHA1(8c65ebe146f4ddb6c904f8125cb32767f74c24d5) )
+
+ ROM_REGION( 0x800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "080-c1.c1", 0x000000, 0x200000, CRC(ea1d764a) SHA1(78cc1735624c37f90607baa92e110a3c5cc54c6f) )
+ ROM_LOAD16_BYTE( "080-c2.c2", 0x000001, 0x200000, CRC(d331d4a4) SHA1(94228d13fb1e30973eb54058e697f17456ee16ea) )
+ ROM_LOAD16_BYTE( "080-c3.c3", 0x400000, 0x200000, CRC(b4851bfe) SHA1(b8286c601de5755c1681ea46e177fc89006fc066) )
+ ROM_LOAD16_BYTE( "080-c4.c4", 0x400001, 0x200000, CRC(ca6f5460) SHA1(ed36e244c9335f4c0a97c57b7b7f1b849dd3a90d) )
+ROM_END
+
+ROM_START( quizkofk ) /* KOREAN VERSION */
+ /* Made by Viccom Corp.; proms have manufacturer stamp VICxxxxxx-xxx, chip labels same as quizkof; Cart ID 0080 */
+ /* Due to parent set naming limitations, roms have been named vic-xxx */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "vic-080-p1.p1", 0x000000, 0x100000, CRC(2589488e) SHA1(609f3095c1cf8b11335b56f23c5d955eebd66dd2) )
+
+ NEO_SFIX_128K( "vic-080-s1.s1", CRC(af72c30f) SHA1(f6a2c583f38295b7da2cbcf4b2c7ed3d3e01db4f) )
+
+ NEO_BIOS_AUDIO_128K( "vic-080-m1.m1", CRC(4f157e9a) SHA1(8397bfdd5738914670ada7cd8c611c20ed1f74da) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "080-v1.v1", 0x000000, 0x200000, CRC(0be18f60) SHA1(05c8b7d9f5a8583015f31902ad16d9c621f47d4e) )
+ ROM_LOAD( "vic-080-v2.v2", 0x200000, 0x200000, CRC(719fee5b) SHA1(c94f8ca066c9693cd7c9fd311db1ad9b2665fc69) )
+ ROM_LOAD( "vic-080-v3.v3", 0x400000, 0x200000, CRC(64b7efde) SHA1(11727f9a3c4da17fa7b00559c7081b66e7211c49) )
+
+ ROM_REGION( 0x800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "vic-080-c1.c1", 0x000000, 0x200000, CRC(94d90170) SHA1(4ab63dadc6ee0d32b8784c327681376f5fef0df9) )
+ ROM_LOAD16_BYTE( "vic-080-c2.c2", 0x000001, 0x200000, CRC(297f25a1) SHA1(0dd845726c640d70804b5fd5854921771e8dbf19) )
+ ROM_LOAD16_BYTE( "vic-080-c3.c3", 0x400000, 0x200000, CRC(cf484c4f) SHA1(f588908a693dbbb8362ffbfe5035dd5f867d9697) )
+ ROM_LOAD16_BYTE( "vic-080-c4.c4", 0x400001, 0x200000, CRC(36e5d997) SHA1(99955ff947e2e586e60c1146c978c70705787917) )
+ROM_END
+
+/****************************************
+ ID-0081
+ . NGM-081
+ NEO-MVS PROGTOP / NEO-MVS CHA42G-3B
+ NEO-MVS PROGTOP / NEO-MVS CHA256
+ NEO-MVS PROG 4096 B / NEO-MVS CHA 42G-3
+ NEO-MVS PROGBK1 / NEO-MVS CHA256B
+ . NGH-081
+ NEO-AEG PROGTOP2 / NEO-AEG CHA256 B
+****************************************/
+
+ROM_START( ssideki3 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "081-p1.p1", 0x100000, 0x100000, CRC(6bc27a3d) SHA1(94692abe7343f9204a557acae4ab74d0af511ca3) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "081-s1.s1", CRC(7626da34) SHA1(30bad65633d0035fd578323c22cbddb8c9d549a6) )
+
+ NEO_BIOS_AUDIO_128K( "081-m1.m1", CRC(82fcd863) SHA1(b219a5685450f9c24cc195f1c914bc3b292d72c0) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "081-v1.v1", 0x000000, 0x200000, CRC(201fa1e1) SHA1(9c27cc1b1d075223ed4a90dd02571d09a2f0d076) )
+ ROM_LOAD( "081-v2.v2", 0x200000, 0x200000, CRC(acf29d96) SHA1(5426985c33aea2efc8ff774b59d34d8b03bd9a85) )
+ ROM_LOAD( "081-v3.v3", 0x400000, 0x200000, CRC(e524e415) SHA1(8733e1b63471381b16c2b7c64b909745d99c8925) )
+
+ ROM_REGION( 0xc00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "081-c1.c1", 0x000000, 0x200000, CRC(1fb68ebe) SHA1(abd9dbe7b7cbe0b6cd1d87e53c6bdc6edeccf83c) )
+ ROM_LOAD16_BYTE( "081-c2.c2", 0x000001, 0x200000, CRC(b28d928f) SHA1(9f05148e3e1e94339752658c066f47f133db8fbf) )
+ ROM_LOAD16_BYTE( "081-c3.c3", 0x400000, 0x200000, CRC(3b2572e8) SHA1(41aba1554bf59d4e5d5814249eaa0d531449e1de) )
+ ROM_LOAD16_BYTE( "081-c4.c4", 0x400001, 0x200000, CRC(47d26a7c) SHA1(591ef24a3d381163c5da80fa64e6883b8ea9abfb) )
+ ROM_LOAD16_BYTE( "081-c5.c5", 0x800000, 0x200000, CRC(17d42f0d) SHA1(7de7765bf43d390c50b2f59c2288502a7121d086) )
+ ROM_LOAD16_BYTE( "081-c6.c6", 0x800001, 0x200000, CRC(6b53fb75) SHA1(fadf7a12661d83ae35d9258aa4947969d51c08b8) )
+ROM_END
+
+/****************************************
+ ID-0082
+ . NGM-082
+ NEO-MVS PROGTOP / NEO-MVS CHA256
+ NEO-MVS PROGTOP / NEO-MVS CHA 42G-3
+ NEO-MVS PROGBK1 / NEO-MVS CHA256
+ NEO-MVS PROGTOP / NEO-MVS CHA256B
+ NEO-MVS PROG 4096 B / NEO-MVS CHA 42G-3
+ . NGH-082
+****************************************/
+
+ROM_START( doubledr )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "082-p1.p1", 0x100000, 0x100000, CRC(34ab832a) SHA1(fbb1bd195f5653f7b9c89648649f838eaf83cbe4) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "082-s1.s1", CRC(bef995c5) SHA1(9c89adbdaa5c1f827632c701688563dac2e482a4) )
+
+ NEO_BIOS_AUDIO_128K( "082-m1.m1", CRC(10b144de) SHA1(cf1ed0a447da68240c62bcfd76b1569803f6bf76) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "082-v1.v1", 0x000000, 0x200000, CRC(cc1128e4) SHA1(bfcfff24bc7fbde0b02b1bc0dffebd5270a0eb04) )
+ ROM_LOAD( "082-v2.v2", 0x200000, 0x200000, CRC(c3ff5554) SHA1(c685887ad64998e5572607a916b023f8b9efac49) )
+
+ ROM_REGION( 0xe00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "082-c1.c1", 0x000000, 0x200000, CRC(b478c725) SHA1(3a777c5906220f246a6dc06cb084e6ad650d67bb) )
+ ROM_LOAD16_BYTE( "082-c2.c2", 0x000001, 0x200000, CRC(2857da32) SHA1(9f13245965d23db86d46d7e73dfb6cc63e6f25a1) )
+ ROM_LOAD16_BYTE( "082-c3.c3", 0x400000, 0x200000, CRC(8b0d378e) SHA1(3a347215e414b738164f1fe4144102f07d4ffb80) )
+ ROM_LOAD16_BYTE( "082-c4.c4", 0x400001, 0x200000, CRC(c7d2f596) SHA1(e2d09d4d1b1fef9c0c53ecf3629e974b75e559f5) )
+ ROM_LOAD16_BYTE( "082-c5.c5", 0x800000, 0x200000, CRC(ec87bff6) SHA1(3fa86da93881158c2c23443855922a7b32e55135) )
+ ROM_LOAD16_BYTE( "082-c6.c6", 0x800001, 0x200000, CRC(844a8a11) SHA1(b2acbd4cacce66fb32c052b2fba9984904679bda) )
+ ROM_LOAD16_BYTE( "082-c7.c7", 0xc00000, 0x100000, CRC(727c4d02) SHA1(8204c7f037d46e0c58f269f9c7a535bc2589f526) )
+ ROM_LOAD16_BYTE( "082-c8.c8", 0xc00001, 0x100000, CRC(69a5fa37) SHA1(020e70e0e8b3c5d00a40fe97e418115a3187e50a) )
+ROM_END
+
+/****************************************
+ ID-0083
+ . NGM-083
+ NEO-MVS PROGTOP / NEO-MVS CHA256
+****************************************/
+
+ROM_START( pbobblen ) /* MVS ONLY RELEASE */
+ /* This set uses CHA and PROG board from Power Spikes II. Six Power Spikes II prom's are replaced with
+ Puzzle Bobble prom's. Confirmed on several original carts. Do other layouts also exist? */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "d96-07.ep1", 0x000000, 0x080000, CRC(6102ca14) SHA1(328429d11de5b327a0654ae0548da4d0025a2ae6) )
+
+ NEO_SFIX_128K( "d96-04.s1", CRC(9caae538) SHA1(cf2d90a7c1a42107c0bb8b9a61397634286dbe0a) )
+
+ NEO_BIOS_AUDIO_128K( "d96-06.m1", CRC(f424368a) SHA1(5e5bbcaeb82bed2ee17df08f005ca20ad1030723) )
+ /* M1 on eprom with sticker; label is D96-06 */
+
+ ROM_REGION( 0x380000, "ymsnd", 0 )
+ ROM_LOAD( "068-v1.v1", 0x000000, 0x100000, CRC(2ced86df) SHA1(d6b73d1f31efbd74fb745200d4dade5f80b71541) ) /* unused */
+ ROM_LOAD( "068-v2.v2", 0x100000, 0x100000, CRC(970851ab) SHA1(6c9b04e9cc6b92133f1154e5bdd9d38d8ef050a7) ) /* unused */
+ ROM_LOAD( "d96-01.v3", 0x200000, 0x100000, CRC(0840cbc4) SHA1(1adbd7aef44fa80832f63dfb8efdf69fd7256a57) )
+ ROM_LOAD( "d96-05.v4", 0x300000, 0x080000, CRC(0a548948) SHA1(e1e4afd17811cb60401c14fbcf0465035165f4fb) )
+
+ ROM_REGION( 0x500000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "068-c1.c1", 0x000000, 0x100000, CRC(7f250f76) SHA1(5109a41adcb7859e24dc43d88842d4cc18cd3305) ) /* unused */
+ ROM_LOAD16_BYTE( "068-c2.c2", 0x000001, 0x100000, CRC(20912873) SHA1(2df8766b531e47ffc30457e41c63b83557b4f468) ) /* unused */
+ ROM_LOAD16_BYTE( "068-c3.c3", 0x200000, 0x100000, CRC(4b641ba1) SHA1(7a9c42a30163eda455f7bde2302402b1a5de7178) ) /* unused */
+ ROM_LOAD16_BYTE( "068-c4.c4", 0x200001, 0x100000, CRC(35072596) SHA1(4150a21041f06514c97592bd8af686504b06e187) ) /* unused */
+ ROM_LOAD16_BYTE( "d96-02.c5", 0x400000, 0x080000, CRC(e89ad494) SHA1(69c9ea415773af94ac44c48af05d55ada222b138) )
+ ROM_LOAD16_BYTE( "d96-03.c6", 0x400001, 0x080000, CRC(4b42d7eb) SHA1(042ae50a528cea21cf07771d3915c57aa16fd5af) )
+ROM_END
+
+/****************************************
+ ID-0084
+ . NGM-084
+ NEO-MVS PROGBK1 / NEO-MVS CHA256
+ NEO-MVS PROGSM / NEO-MVS CHA256
+ . NGH-084
+ NEO-AEG PROGBK1Y / NEO-AEG CHA256RY
+****************************************/
+
+ROM_START( kof95 ) /* MVS VERSION */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "084-p1.p1",0x100000, 0x100000, CRC(2cba2716) SHA1(f6c2d0537c9c3e0938065c65b1797c47198fcff8) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "084-s1.s1", CRC(de716f8a) SHA1(f7386454a943ed5caf625f67ee1d0197b1c6fa13) )
+
+ NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) )
+
+ ROM_REGION( 0x900000, "ymsnd", 0 )
+ ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) )
+ ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) )
+ /* 600000-7fffff empty */
+ ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "084-c1.c1", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) )
+ ROM_LOAD16_BYTE( "084-c2.c2", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) )
+ ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) )
+ ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) )
+ ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) )
+ ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) )
+ /* 1400000-17fffff empty */
+ ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) )
+ ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) )
+ROM_END
+
+ROM_START( kof95a ) /* MVS VERSION */
+ /* This set uses NEO-MVS PROGSM board; same rom data as in kof95h is used */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "084-epr.ep1", 0x000000, 0x080000, CRC(577ca1bb) SHA1(0d9d8b6db8a5a4ea47fd6602bc77df68b74b1691) )
+ ROM_LOAD16_WORD_SWAP( "084-epr.ep2", 0x080000, 0x080000, CRC(30802a5d) SHA1(04109e7c4f8d171fcebbe1198f85a271b008f8f1) )
+ ROM_LOAD16_WORD_SWAP( "084-epr.ep3", 0x100000, 0x080000, CRC(21ae248a) SHA1(87318a1bc667f31a9824beefee94617b4724dc2d) )
+ ROM_LOAD16_WORD_SWAP( "084-epr.ep4", 0x180000, 0x080000, CRC(19d3fbee) SHA1(39225ec8a7ed5d2f5e83f5d575b9fa38800b0704) )
+ /* P's on eprom, correct chip label unknown */
+
+ NEO_SFIX_128K( "084-s1.s1", CRC(de716f8a) SHA1(f7386454a943ed5caf625f67ee1d0197b1c6fa13) )
+
+ NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) )
+
+ ROM_REGION( 0x900000, "ymsnd", 0 )
+ ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) )
+ ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) )
+ /* 600000-7fffff empty */
+ ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "084-c1.c1", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) )
+ ROM_LOAD16_BYTE( "084-c2.c2", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) )
+ ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) )
+ ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) )
+ ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) )
+ ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) )
+ /* 1400000-17fffff empty */
+ ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) )
+ ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) )
+ROM_END
+
+ROM_START( kof95h ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "084-pg1.p1", 0x100000, 0x100000, CRC(5e54cf95) SHA1(41abe2042fdbb1526e92a0789976a9b1ac5e60f0) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "084-s1.s1", CRC(de716f8a) SHA1(f7386454a943ed5caf625f67ee1d0197b1c6fa13) )
+
+ NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) )
+
+ ROM_REGION( 0x900000, "ymsnd", 0 )
+ ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) )
+ ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) )
+ /* 600000-7fffff empty */
+ ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "084-c1.c1", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) )
+ ROM_LOAD16_BYTE( "084-c2.c2", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) )
+ ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) )
+ ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) )
+ ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) )
+ ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) )
+ /* 1400000-17fffff empty */
+ ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) )
+ ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) )
+ROM_END
+
+/****************************************
+ ID-0085
+ Shinsetsu Samurai Spirits Bushidoretsuden / Samurai Shodown RPG (CD only)
+****************************************/
+
+/****************************************
+ ID-0086
+ . ??M-086
+ NEO-MVS PROGBK1 / NEO-MVS CHA256B
+****************************************/
+
+ROM_START( tws96 ) /* MVS ONLY RELEASE */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "086-p1.p1", 0x000000, 0x100000, CRC(03e20ab6) SHA1(3a0a5a54649178ce7a6158980cb4445084b40fb5) )
+
+ NEO_SFIX_128K( "086-s1.s1", CRC(6f5e2b3a) SHA1(273341489f6625d35a4a920042a60e2b86373847) )
+
+ NEO_BIOS_AUDIO_128K( "086-m1.m1", CRC(cb82bc5d) SHA1(8e3ecabec25d89adb6e0eed0ef5f94d34a4d5fc0) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "086-v1.v1", 0x000000, 0x200000, CRC(97bf1986) SHA1(b80d3a37e18d0a52f1e0092dc300989c9647efd1) )
+ ROM_LOAD( "086-v2.v2", 0x200000, 0x200000, CRC(b7eb05df) SHA1(ff2b55c7021c248cfdcfc9cd3658f2896bcbca38) )
+
+ ROM_REGION( 0xa00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "086-c1.c1", 0x000000, 0x400000, CRC(2611bc2a) SHA1(bb5a96acd4a90fcb41c49cc8e9f760c4a06d6b84) )
+ ROM_LOAD16_BYTE( "086-c2.c2", 0x000001, 0x400000, CRC(6b0d6827) SHA1(3cb2bbab381a26ec69f97c3d6116ce47254286b4) )
+ ROM_LOAD16_BYTE( "086-c3.c3", 0x800000, 0x100000, CRC(750ddc0c) SHA1(9304a83d81afd544d88be0cd3ee47ae401d2da0e) )
+ ROM_LOAD16_BYTE( "086-c4.c4", 0x800001, 0x100000, CRC(7a6e7d82) SHA1(b1bb82cec3d68367d5e01e63c44c11b67e577411) )
+ROM_END
+
+/****************************************
+ ID-0087
+ . NGM-087
+ NEO-MVS PROGSS3 / NEO-MVS CHA256
+ NEO-MVS PROGBK1 / NEO-MVS CHA256
+ . NGH-087
+ NEO-AEG PROGBK1Y / NEO-AEG CHA256RY
+****************************************/
+
+ROM_START( samsho3 ) /* MVS VERSION */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "087-epr.ep1", 0x000000, 0x080000, CRC(23e09bb8) SHA1(79da99fa50a639fce9d1266699b5e53c9ac55642) )
+ ROM_LOAD16_WORD_SWAP( "087-epr.ep2", 0x080000, 0x080000, CRC(256f5302) SHA1(e2d21b413a6059194a994b7902b2a7df98a15151) )
+ ROM_LOAD16_WORD_SWAP( "087-epr.ep3", 0x100000, 0x080000, CRC(bf2db5dd) SHA1(b4fa1dc1eccc9eb1ce74f0a06992ef89b1cbc732) )
+ ROM_LOAD16_WORD_SWAP( "087-epr.ep4", 0x180000, 0x080000, CRC(53e60c58) SHA1(f975e81cab6322d3260348402721c673023259fa) )
+ /* P's on eprom, correct chip label unknown */
+ ROM_LOAD16_WORD_SWAP( "087-p5.p5", 0x200000, 0x100000, CRC(e86ca4af) SHA1(5246acbab77ac2f232b88b8522187764ff0872f0) )
+ /* also found MVS set with p1 / sp2 on maskrom on PROG board NEO-MVS PROGBK1; chip label are 087-PG1 and 087-P2 */
+
+ NEO_SFIX_128K( "087-s1.s1", CRC(74ec7d9f) SHA1(d79c479838a7ca51735a44f91f1968ec5b3c6b91) )
+
+ NEO_BIOS_AUDIO_128K( "087-m1.m1", CRC(8e6440eb) SHA1(e3f72150af4e326543b29df71cda27d73ec087c1) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "087-v1.v1", 0x000000, 0x400000, CRC(84bdd9a0) SHA1(adceceb00569eca13fcc2e0f0d9f0d9b06a06851) )
+ ROM_LOAD( "087-v2.v2", 0x400000, 0x200000, CRC(ac0f261a) SHA1(5411bdff24cba7fdbc3397d45a70fb468d7a44b3) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "087-c1.c1", 0x0000000, 0x400000, CRC(07a233bc) SHA1(654cb56cfd6eeebe6745c0b8b730317fb8ccd3d9) )
+ ROM_LOAD16_BYTE( "087-c2.c2", 0x0000001, 0x400000, CRC(7a413592) SHA1(b8c7a2d0d7a8b14d6cab94d7a5f347e73c6ab7a4) )
+ ROM_LOAD16_BYTE( "087-c3.c3", 0x0800000, 0x400000, CRC(8b793796) SHA1(053acc129ea56691607a5d255845703e61fd3ada) )
+ ROM_LOAD16_BYTE( "087-c4.c4", 0x0800001, 0x400000, CRC(728fbf11) SHA1(daa319d455f759bfc08a37b43218bdb48dc1c9e5) )
+ ROM_LOAD16_BYTE( "087-c5.c5", 0x1000000, 0x400000, CRC(172ab180) SHA1(a6122f683bdb78d0079e1e360c1b96ba28def7b7) )
+ ROM_LOAD16_BYTE( "087-c6.c6", 0x1000001, 0x400000, CRC(002ff8f3) SHA1(3a378708697d727796c4f702dd5bbf1c9eb4daec) )
+ ROM_LOAD16_BYTE( "087-c7.c7", 0x1800000, 0x100000, CRC(ae450e3d) SHA1(ec482632cc347ec3f9e68df0ebcaa16ebe41b9f9) )
+ ROM_LOAD16_BYTE( "087-c8.c8", 0x1800001, 0x100000, CRC(a9e82717) SHA1(e39ee15d5140dbe7f06eea945cce9984a5e8b06a) )
+ROM_END
+
+ROM_START( samsho3h ) /* AES VERSION */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "087-pg1.p1", 0x000000, 0x100000, CRC(282a336e) SHA1(e062f1939d36a45f185b5dbd726cdd833dc7c28c) )
+ ROM_LOAD16_WORD_SWAP( "087-p2.sp2", 0x100000, 0x200000, CRC(9bbe27e0) SHA1(b18117102159903c8e8f4e4226e1cc91a400e816) )
+
+ NEO_SFIX_128K( "087-s1.s1", CRC(74ec7d9f) SHA1(d79c479838a7ca51735a44f91f1968ec5b3c6b91) )
+
+ NEO_BIOS_AUDIO_128K( "087-m1.m1", CRC(8e6440eb) SHA1(e3f72150af4e326543b29df71cda27d73ec087c1) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "087-v1.v1", 0x000000, 0x400000, CRC(84bdd9a0) SHA1(adceceb00569eca13fcc2e0f0d9f0d9b06a06851) )
+ ROM_LOAD( "087-v2.v2", 0x400000, 0x200000, CRC(ac0f261a) SHA1(5411bdff24cba7fdbc3397d45a70fb468d7a44b3) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "087-c1.c1", 0x0000000, 0x400000, CRC(07a233bc) SHA1(654cb56cfd6eeebe6745c0b8b730317fb8ccd3d9) )
+ ROM_LOAD16_BYTE( "087-c2.c2", 0x0000001, 0x400000, CRC(7a413592) SHA1(b8c7a2d0d7a8b14d6cab94d7a5f347e73c6ab7a4) )
+ ROM_LOAD16_BYTE( "087-c3.c3", 0x0800000, 0x400000, CRC(8b793796) SHA1(053acc129ea56691607a5d255845703e61fd3ada) )
+ ROM_LOAD16_BYTE( "087-c4.c4", 0x0800001, 0x400000, CRC(728fbf11) SHA1(daa319d455f759bfc08a37b43218bdb48dc1c9e5) )
+ ROM_LOAD16_BYTE( "087-c5.c5", 0x1000000, 0x400000, CRC(172ab180) SHA1(a6122f683bdb78d0079e1e360c1b96ba28def7b7) )
+ ROM_LOAD16_BYTE( "087-c6.c6", 0x1000001, 0x400000, CRC(002ff8f3) SHA1(3a378708697d727796c4f702dd5bbf1c9eb4daec) )
+ ROM_LOAD16_BYTE( "087-c7.c7", 0x1800000, 0x100000, CRC(ae450e3d) SHA1(ec482632cc347ec3f9e68df0ebcaa16ebe41b9f9) )
+ ROM_LOAD16_BYTE( "087-c8.c8", 0x1800001, 0x100000, CRC(a9e82717) SHA1(e39ee15d5140dbe7f06eea945cce9984a5e8b06a) )
+ROM_END
+
+ROM_START( fswords ) /* KOREAN VERSION */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "187-p1k.p1", 0x000000, 0x100000, CRC(c8e7c075) SHA1(7b74f2917114460d79d8f46ee24829a4c08cbf2a) )
+ ROM_LOAD16_WORD_SWAP( "087-p2.sp2", 0x100000, 0x200000, CRC(9bbe27e0) SHA1(b18117102159903c8e8f4e4226e1cc91a400e816) )
+
+ NEO_SFIX_128K( "087-s1.s1", CRC(74ec7d9f) SHA1(d79c479838a7ca51735a44f91f1968ec5b3c6b91) )
+
+ NEO_BIOS_AUDIO_128K( "087-m1.m1", CRC(8e6440eb) SHA1(e3f72150af4e326543b29df71cda27d73ec087c1) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "087-v1.v1", 0x000000, 0x400000, CRC(84bdd9a0) SHA1(adceceb00569eca13fcc2e0f0d9f0d9b06a06851) )
+ ROM_LOAD( "087-v2.v2", 0x400000, 0x200000, CRC(ac0f261a) SHA1(5411bdff24cba7fdbc3397d45a70fb468d7a44b3) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "087-c1.c1", 0x0000000, 0x400000, CRC(07a233bc) SHA1(654cb56cfd6eeebe6745c0b8b730317fb8ccd3d9) )
+ ROM_LOAD16_BYTE( "087-c2.c2", 0x0000001, 0x400000, CRC(7a413592) SHA1(b8c7a2d0d7a8b14d6cab94d7a5f347e73c6ab7a4) )
+ ROM_LOAD16_BYTE( "087-c3.c3", 0x0800000, 0x400000, CRC(8b793796) SHA1(053acc129ea56691607a5d255845703e61fd3ada) )
+ ROM_LOAD16_BYTE( "087-c4.c4", 0x0800001, 0x400000, CRC(728fbf11) SHA1(daa319d455f759bfc08a37b43218bdb48dc1c9e5) )
+ ROM_LOAD16_BYTE( "087-c5.c5", 0x1000000, 0x400000, CRC(172ab180) SHA1(a6122f683bdb78d0079e1e360c1b96ba28def7b7) )
+ ROM_LOAD16_BYTE( "087-c6.c6", 0x1000001, 0x400000, CRC(002ff8f3) SHA1(3a378708697d727796c4f702dd5bbf1c9eb4daec) )
+ ROM_LOAD16_BYTE( "087-c7.c7", 0x1800000, 0x100000, CRC(ae450e3d) SHA1(ec482632cc347ec3f9e68df0ebcaa16ebe41b9f9) )
+ ROM_LOAD16_BYTE( "087-c8.c8", 0x1800001, 0x100000, CRC(a9e82717) SHA1(e39ee15d5140dbe7f06eea945cce9984a5e8b06a) )
+ROM_END
+
+/****************************************
+ ID-0088
+ . NGM-088
+ NEO-MVS PROGBK1 / NEO-MVS CHA42-3B
+ . NGH-088
+ NEO-AEG PROGRKB / NEO-AEG CHA256[B]
+****************************************/
+
+ROM_START( stakwin )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "088-p1.p1", 0x100000, 0x100000, CRC(bd5814f6) SHA1(95179a4dee61ae88bb5d9fd74af0c56c8c29f5ea) )
+ ROM_CONTINUE( 0x000000, 0x100000)
+
+ NEO_SFIX_128K( "088-s1.s1", CRC(073cb208) SHA1(c5b4697d767575884dd49ae416c1fe4a4a92d3f6) )
+
+ NEO_BIOS_AUDIO_128K( "088-m1.m1", CRC(2fe1f499) SHA1(5b747eeef65be04423d2db05e086df9132758a47) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "088-v1.v1", 0x000000, 0x200000, CRC(b7785023) SHA1(d11df1e623434669cd3f97f0feda747b24dac05d) )
+
+ ROM_REGION( 0x800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "088-c1.c1", 0x000000, 0x200000, CRC(6e733421) SHA1(b67c5d2654a62cc4e44bd54d28e62c7da5eea424) )
+ ROM_LOAD16_BYTE( "088-c2.c2", 0x000001, 0x200000, CRC(4d865347) SHA1(ad448cf96f3dce44c83412ed6878c495eb4a8a1e) )
+ ROM_LOAD16_BYTE( "088-c3.c3", 0x400000, 0x200000, CRC(8fa5a9eb) SHA1(7bee19d8a2bccedd8e2cf0c0e9138902b9dafc23) )
+ ROM_LOAD16_BYTE( "088-c4.c4", 0x400001, 0x200000, CRC(4604f0dc) SHA1(ddf5dbb5e07313998a8f695ad19354ea54585dd6) )
+ROM_END
+
+/****************************************
+ ID-0089
+ . NGM-089
+ NEO-MVS PROGBK1 / NEO-MVS CHA256
+ . NGH-089
+ NEO-AEG PROGBK1Y / NEO-AEG CHA256RY
+****************************************/
+
+ROM_START( pulstar )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "089-p1.p1", 0x000000, 0x100000, CRC(5e5847a2) SHA1(b864d0ec4184b785569ddbf67c2115b5ab86ee3e) )
+ ROM_LOAD16_WORD_SWAP( "089-p2.sp2", 0x100000, 0x200000, CRC(028b774c) SHA1(fc5da2821a5072f2b78245fc59b6e3eeef116d16) )
+
+ NEO_SFIX_128K( "089-s1.s1", CRC(c79fc2c8) SHA1(914c224fb3c461a68d7425cae724cf22bd5f985d) )
+
+ NEO_BIOS_AUDIO_128K( "089-m1.m1", CRC(ff3df7c7) SHA1(59d2ef64f734f6026073b365300221909057a512) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "089-v1.v1", 0x000000, 0x400000, CRC(6f726ecb) SHA1(e8e2a46af690ce6c7ee64a58ab5010d22df9548c) )
+ ROM_LOAD( "089-v2.v2", 0x400000, 0x400000, CRC(9d2db551) SHA1(83f7e5db7fb1502ceadcd334df90b11b1bba78e5) )
+
+ ROM_REGION( 0x1c00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "089-c1.c1", 0x0000000, 0x400000, CRC(f4e97332) SHA1(54693827a99836e7d61c45d495dd78bf3fcf1544) )
+ ROM_LOAD16_BYTE( "089-c2.c2", 0x0000001, 0x400000, CRC(836d14da) SHA1(99cc4f9b764503eff7849ff2977d90bb47c5564a) )
+ ROM_LOAD16_BYTE( "089-c3.c3", 0x0800000, 0x400000, CRC(913611c4) SHA1(9664eb1fe1e6f8c3ddeeff872d38ea920ed38a82) )
+ ROM_LOAD16_BYTE( "089-c4.c4", 0x0800001, 0x400000, CRC(44cef0e3) SHA1(34f6f348ba86a2a06cb9c43a16b97cf6ee6158ac) )
+ ROM_LOAD16_BYTE( "089-c5.c5", 0x1000000, 0x400000, CRC(89baa1d7) SHA1(976c745c44967de61e2a23227835be580b1d283a) )
+ ROM_LOAD16_BYTE( "089-c6.c6", 0x1000001, 0x400000, CRC(b2594d56) SHA1(685c0bf8ff76c76e41c2ceaebb96349634cfdb2e) )
+ ROM_LOAD16_BYTE( "089-c7.c7", 0x1800000, 0x200000, CRC(6a5618ca) SHA1(9a1d5f998b0dfabacf9dad45c94bef2bb43e5e0c) )
+ ROM_LOAD16_BYTE( "089-c8.c8", 0x1800001, 0x200000, CRC(a223572d) SHA1(2791b1212f57937b2b2a95bc9e420c06d0c37669) )
+ROM_END
+
+/****************************************
+ ID-0090
+ . ADM-009
+ NEO-MVS PROGTOP / NEO-MVS CHA256
+ NEO-MVS PROGGSC / NEO-MVS CHA256
+ NEO-MVS PROGGSC / NEO-MVS CHA256B
+ NEO-MVS PROGBK1 / NEO-MVS CHA256B
+ . ADH-009
+****************************************/
+
+ROM_START( whp )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "090-p1.p1", 0x100000, 0x100000, CRC(afaa4702) SHA1(83d122fddf17d4774353abf4a0655f3939f7b752) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "090-s1.s1", CRC(174a880f) SHA1(c35d315d728d119a6e9aa42e0593937c90897449) )
+
+ NEO_BIOS_AUDIO_128K( "090-m1.m1", CRC(28065668) SHA1(0c60d4afa1dccad0135e733104f056be73b54e4e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "090-v1.v1", 0x000000, 0x200000, CRC(30cf2709) SHA1(d1845033f16de2470afd3858ee0efb45176d9ed7) )
+ ROM_LOAD( "064-v2.v2", 0x200000, 0x200000, CRC(b6527edd) SHA1(2bcf5bfa6e117cf4a3728a5e5f5771313c93f22a) )
+ ROM_LOAD( "090-v3.v3", 0x400000, 0x200000, CRC(1908a7ce) SHA1(78f31bcfea33eb94752bbf5226c481baec1af5ac) )
+
+ ROM_REGION( 0x1c00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "090-c1.c1", 0x0000000, 0x400000, CRC(cd30ed9b) SHA1(839c20f7ff31251acc875ae402b5d267e55510c7) )
+ ROM_LOAD16_BYTE( "090-c2.c2", 0x0000001, 0x400000, CRC(10eed5ee) SHA1(12131b1c8c017ea77a98c044b392a5db6aad0143) )
+ ROM_LOAD16_BYTE( "064-c3.c3", 0x0800000, 0x200000, CRC(436d1b31) SHA1(059776d77b91377ed0bcfc278802d659c917fc0f) )
+ ROM_LOAD16_BYTE( "064-c4.c4", 0x0800001, 0x200000, CRC(f9c8dd26) SHA1(25a9eea1d49b21b4a988beb32c25bf2f7796f227) )
+ /* 0c00000-0ffffff empty */
+ ROM_LOAD16_BYTE( "064-c5.c5", 0x1000000, 0x200000, CRC(8e34a9f4) SHA1(67b839b426ef3fad0a85d951fdd44c0a45c55226) )
+ ROM_LOAD16_BYTE( "064-c6.c6", 0x1000001, 0x200000, CRC(a43e4766) SHA1(54f282f2b1ff2934cca7acbb4386a2b99a29df3a) )
+ /* 1400000-17fffff empty */
+ ROM_LOAD16_BYTE( "064-c7.c7", 0x1800000, 0x200000, CRC(59d97215) SHA1(85a960dc7f364df13ee0c2f99a4c53aefb081486) )
+ ROM_LOAD16_BYTE( "064-c8.c8", 0x1800001, 0x200000, CRC(fc092367) SHA1(69ff4ae909dd857de3ca8645d63f8b4bde117448) )
+ROM_END
+
+/****************************************
+ ID-0091
+ ADK World / ADK Special 1995 ADK (CD only)
+****************************************/
+
+/****************************************
+ ID-0092
+ . NGM-092
+ NEO-MVS PROGBK1 / NEO-MVS CHA256
+ NEO-MVS PROGTOP / NEO-MVS CHA256
+ . NGH-092
+****************************************/
+
+ROM_START( kabukikl )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "092-p1.p1", 0x100000, 0x100000, CRC(28ec9b77) SHA1(7cdc789a99f8127f437d68cbc41278c926be9efd) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "092-s1.s1", CRC(a3d68ee2) SHA1(386f6110a16967a72fbf788f9d968fddcdcd2889) )
+
+ NEO_BIOS_AUDIO_128K( "092-m1.m1", CRC(91957ef6) SHA1(7b6907532a0e02ceb643623cbd689cf228776ed1) )
+
+ ROM_REGION( 0x700000, "ymsnd", 0 )
+ ROM_LOAD( "092-v1.v1", 0x000000, 0x200000, CRC(69e90596) SHA1(1a2007d7784b3ce90d115980c3353862f1664d45) )
+ ROM_LOAD( "092-v2.v2", 0x200000, 0x200000, CRC(7abdb75d) SHA1(0bff764889fe02f37877514c7fc450250839f632) )
+ ROM_LOAD( "092-v3.v3", 0x400000, 0x200000, CRC(eccc98d3) SHA1(b0dfbdb1ea045cb961323ac6906ab342256c3dc7) )
+ ROM_LOAD( "092-v4.v4", 0x600000, 0x100000, CRC(a7c9c949) SHA1(574bc55b45e81ce357b14f5992426115de25cd35) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "092-c1.c1", 0x000000, 0x400000, CRC(2a9fab01) SHA1(aa9f037df33ae0575b328734c76c0918ae1917e9) )
+ ROM_LOAD16_BYTE( "092-c2.c2", 0x000001, 0x400000, CRC(6d2bac02) SHA1(dfe96b62883333872be432e8af1ae617c9e62698) )
+ ROM_LOAD16_BYTE( "092-c3.c3", 0x800000, 0x400000, CRC(5da735d6) SHA1(f1c05a73794ece15576a0a30c81f4a44faac475a) )
+ ROM_LOAD16_BYTE( "092-c4.c4", 0x800001, 0x400000, CRC(de07f997) SHA1(c27a4d4bef868eed38dc152ff37d4135b16cc991) )
+ROM_END
+
+/****************************************
+ ID-0093
+ . ??M-093
+ NEO-MVS PROGBK1 / NEO-MVS CHA256
+****************************************/
+
+ROM_START( neobombe ) /* MVS ONLY RELEASE */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "093-p1.p1", 0x000000, 0x100000, CRC(a1a71d0d) SHA1(059284c84f61a825923d86d2f29c91baa2c439cd) )
+
+ NEO_SFIX_128K( "093-s1.s1", CRC(4b3fa119) SHA1(41cb0909bfb017eb6f2c530cb92a423319ed7ab1) )
+
+ NEO_BIOS_AUDIO_128K( "093-m1.m1", CRC(e81e780b) SHA1(c56c53984e0f92e180e850c60a75f550ee84917c) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "093-v1.v1", 0x000000, 0x400000, CRC(02abd4b0) SHA1(6bf33ebc9b01cd4a029f6a555694a9835e30ca1b) )
+ ROM_LOAD( "093-v2.v2", 0x400000, 0x200000, CRC(a92b8b3d) SHA1(b672c97b85d2f52eba3cb26025008ebc7a18312a) )
+
+ ROM_REGION( 0x900000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "093-c1.c1", 0x000000, 0x400000, CRC(d1f328f8) SHA1(ddf71280c2ce85225f15fe9e973f330609281878) )
+ ROM_LOAD16_BYTE( "093-c2.c2", 0x000001, 0x400000, CRC(82c49540) SHA1(5f37c1bc0d63c98a13967b44da3d2c85e6dbbe50) )
+ ROM_LOAD16_BYTE( "093-c3.c3", 0x800000, 0x080000, CRC(e37578c5) SHA1(20024caa0f09ee887a6418dd02d02a0df93786fd) )
+ ROM_LOAD16_BYTE( "093-c4.c4", 0x800001, 0x080000, CRC(59826783) SHA1(0110a2b6186cca95f75225d4d0269d61c2ad25b1) )
+ROM_END
+
+/****************************************
+ ID-0094
+ . NGM-094
+ NEO-MVS PROGBK1 / NEO-MVS CHA42G-3B
+ . NGH-094
+****************************************/
+
+ROM_START( gowcaizr )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "094-p1.p1", 0x100000, 0x100000, CRC(33019545) SHA1(213db6c0b7d24b74b809854f9c606dbea1d9ba00) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "094-s1.s1", CRC(2f8748a2) SHA1(5cc723c4284120473d63d8b0c1a3b3be74bdc324) )
+
+ NEO_BIOS_AUDIO_128K( "094-m1.m1", CRC(78c851cb) SHA1(a9923c002e4e2171a564af45cff0958c5d57b275) )
+
+ ROM_REGION( 0x500000, "ymsnd", 0 )
+ ROM_LOAD( "094-v1.v1", 0x000000, 0x200000, CRC(6c31223c) SHA1(ede3a2806d7d872a0f737626a23ecce200b534e6) )
+ ROM_LOAD( "094-v2.v2", 0x200000, 0x200000, CRC(8edb776c) SHA1(a9eac5e24f83ccdcf303d63261747b1bad876a24) )
+ ROM_LOAD( "094-v3.v3", 0x400000, 0x100000, CRC(c63b9285) SHA1(6bbbacfe899e204e74657d6c3f3d05ce75e432f1) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "094-c1.c1", 0x000000, 0x200000, CRC(042f6af5) SHA1(1c50df6a1a53ffb3079ea0a19c746f5c9536a3ed) )
+ ROM_LOAD16_BYTE( "094-c2.c2", 0x000001, 0x200000, CRC(0fbcd046) SHA1(9a6dc920a877f27424477c3478907b23afbaa5ea) )
+ ROM_LOAD16_BYTE( "094-c3.c3", 0x400000, 0x200000, CRC(58bfbaa1) SHA1(4c6f9cf138c5e6dfe89a45e2a690a986c75f5bfc) )
+ ROM_LOAD16_BYTE( "094-c4.c4", 0x400001, 0x200000, CRC(9451ee73) SHA1(7befee4a886b1d7493c06cefb7abf4ec01c14a8b) )
+ ROM_LOAD16_BYTE( "094-c5.c5", 0x800000, 0x200000, CRC(ff9cf48c) SHA1(5f46fb5d0812275b0006919d8540f22be7c16492) )
+ ROM_LOAD16_BYTE( "094-c6.c6", 0x800001, 0x200000, CRC(31bbd918) SHA1(7ff8c5e3f17d40e7a8a189ad8f8026de55368810) )
+ ROM_LOAD16_BYTE( "094-c7.c7", 0xc00000, 0x200000, CRC(2091ec04) SHA1(a81d4bdbef1ac6ea49845dc30e31bf9745694100) )
+ ROM_LOAD16_BYTE( "094-c8.c8", 0xc00001, 0x200000, CRC(d80dd241) SHA1(1356a64e4d4e271f62cd0d83f79ee9c906440810) )
+ROM_END
+
+/****************************************
+ dev board, same ID as gowcaizr
+****************************************/
+
+ROM_START( dragonsh )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "EP2.bin", 0x000000, 0x080000, CRC(f25c71ad) SHA1(803fb6cd6a7ada59678ad901ff9788b1e54ddd0c) )
+ ROM_LOAD16_BYTE( "EP1.bin", 0x000001, 0x080000, CRC(f353448c) SHA1(f0f966ca15d503e01b40e901765ff0888463b65d) )
+
+ NEO_SFIX_128K( "s1.s1", BAD_DUMP CRC(706477a7) SHA1(8cbee7f6832e7edd2dc792ca330420a6a984b879) ) // was a dead AXS512PC 512KB sram card, this data is handcrafted to make the set usable (hence BAD_DUMP)
+
+ NEOGEO_BIOS
+ ROM_REGION( 0x20000, "audiobios", 0 )
+ ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) )
+ ROM_REGION( 0x30000, "audiocpu", ROMREGION_ERASEFF )
+ /* not present */
+
+ ROM_REGION( 0x200000, "ymsnd", ROMREGION_ERASE00 )
+ ROM_LOAD( "sram.v1", 0x000000, 0x200000, NO_DUMP ) // was a dead AXS2000PC 2MB sram card, battery dead, data lost.
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "no3.bin", 0x000000, 0x1000000, CRC(81821826) SHA1(b7c1a53e32633383675206a16c68f6f2ff984865) )
+ ROM_LOAD16_BYTE( "no4.bin", 0x000001, 0x1000000, CRC(3601d568) SHA1(800323e52f5d33b402f84d31850b42c688082d67) )
+ROM_END
+
+/****************************************
+ ID-0095
+ . NGM-095
+ NEO-MVS PROGBK1 / NEO-MVS CHA256
+ . NGH-095
+ NEO-AEG PROGBK1Y / NEO-AEG CHA256RY
+****************************************/
+
+ROM_START( rbff1 ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "095-p1.p1", 0x000000, 0x100000, CRC(63b4d8ae) SHA1(03aa9f6bab6aee685d1b57a52823797704eea845) )
+ ROM_LOAD16_WORD_SWAP( "095-p2.sp2", 0x100000, 0x200000, CRC(cc15826e) SHA1(44d6ac6c0ca697a6f367dcfd809b1e1771cb0635) )
+
+ NEO_SFIX_128K( "095-s1.s1", CRC(b6bf5e08) SHA1(b527355c35ea097f3448676f2ffa65b8e56ae30c) )
+
+ NEO_BIOS_AUDIO_128K( "095-m1.m1", CRC(653492a7) SHA1(39e511fb9ed5d2135dc8428a31d0baafb2ab36e0) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "069-v1.v1", 0x000000, 0x400000, CRC(2bdbd4db) SHA1(5f4fecf69c2329d699cbd45829c19303b1e2a80e) )
+ ROM_LOAD( "069-v2.v2", 0x400000, 0x400000, CRC(a698a487) SHA1(11b8bc53bc26a51f4a408e900e3769958625c4ed) )
+ ROM_LOAD( "095-v3.v3", 0x800000, 0x400000, CRC(189d1c6c) SHA1(f0b8cd1ee40ea3feeb2800f0723b451ec8240203) )
+
+ ROM_REGION( 0x1c00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "069-c1.c1", 0x0000000, 0x400000, CRC(e302f93c) SHA1(d8610b14900b2b8fe691b67ca9b1abb335dbff74) )
+ ROM_LOAD16_BYTE( "069-c2.c2", 0x0000001, 0x400000, CRC(1053a455) SHA1(69501bfac68739e63d798045b812badd251d57b8) )
+ ROM_LOAD16_BYTE( "069-c3.c3", 0x0800000, 0x400000, CRC(1c0fde2f) SHA1(cf6c2ef56c03a861de3b0b6dc0d7c9204d947f9d) )
+ ROM_LOAD16_BYTE( "069-c4.c4", 0x0800001, 0x400000, CRC(a25fc3d0) SHA1(83cb349e2f1032652060b233e741fb893be5af16) )
+ ROM_LOAD16_BYTE( "095-c5.c5", 0x1000000, 0x400000, CRC(8b9b65df) SHA1(e2a7e20855501f240bcd22f5cc92fcb4a9806abe) )
+ ROM_LOAD16_BYTE( "095-c6.c6", 0x1000001, 0x400000, CRC(3e164718) SHA1(53217f938c8964c1ca68a6fd5249c4169a5ac8e6) )
+ ROM_LOAD16_BYTE( "095-c7.c7", 0x1800000, 0x200000, CRC(ca605e12) SHA1(5150b835247fd705bc1dece97d423d9c20a51416) )
+ ROM_LOAD16_BYTE( "095-c8.c8", 0x1800001, 0x200000, CRC(4e6beb6c) SHA1(c0ac7cfc832ace6ad52c58f5da3a8101baead749) )
+ROM_END
+
+ROM_START( rbff1a ) /* MVS VERSION */
+ /* This is a bug fixed revision applied over the original cart. The original P1 and P2 stayed in the cart and this */
+ /* 512k ROM was added to replace the first 512k of P1. */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "095-p1.p1", 0x000000, 0x100000, CRC(63b4d8ae) SHA1(03aa9f6bab6aee685d1b57a52823797704eea845) )
+ ROM_LOAD16_WORD_SWAP( "095-p2.sp2", 0x100000, 0x200000, CRC(cc15826e) SHA1(44d6ac6c0ca697a6f367dcfd809b1e1771cb0635) )
+ /* the rom below acts as a patch to the program rom in the cart, replacing the first 512kb */
+ ROM_LOAD16_WORD_SWAP( "095-epr.ep1", 0x000000, 0x080000, CRC(be0060a3) SHA1(fa741d34898ad5004a23e280139d1446f1a082c7) )
+ /* P is on eprom, correct chip label unknown */
+
+ NEO_SFIX_128K( "095-s1.s1", CRC(b6bf5e08) SHA1(b527355c35ea097f3448676f2ffa65b8e56ae30c) )
+
+ NEO_BIOS_AUDIO_128K( "095-m1.m1", CRC(653492a7) SHA1(39e511fb9ed5d2135dc8428a31d0baafb2ab36e0) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "069-v1.v1", 0x000000, 0x400000, CRC(2bdbd4db) SHA1(5f4fecf69c2329d699cbd45829c19303b1e2a80e) )
+ ROM_LOAD( "069-v2.v2", 0x400000, 0x400000, CRC(a698a487) SHA1(11b8bc53bc26a51f4a408e900e3769958625c4ed) )
+ ROM_LOAD( "095-v3.v3", 0x800000, 0x400000, CRC(189d1c6c) SHA1(f0b8cd1ee40ea3feeb2800f0723b451ec8240203) )
+
+ ROM_REGION( 0x1c00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "069-c1.c1", 0x0000000, 0x400000, CRC(e302f93c) SHA1(d8610b14900b2b8fe691b67ca9b1abb335dbff74) )
+ ROM_LOAD16_BYTE( "069-c2.c2", 0x0000001, 0x400000, CRC(1053a455) SHA1(69501bfac68739e63d798045b812badd251d57b8) )
+ ROM_LOAD16_BYTE( "069-c3.c3", 0x0800000, 0x400000, CRC(1c0fde2f) SHA1(cf6c2ef56c03a861de3b0b6dc0d7c9204d947f9d) )
+ ROM_LOAD16_BYTE( "069-c4.c4", 0x0800001, 0x400000, CRC(a25fc3d0) SHA1(83cb349e2f1032652060b233e741fb893be5af16) )
+ ROM_LOAD16_BYTE( "095-c5.c5", 0x1000000, 0x400000, CRC(8b9b65df) SHA1(e2a7e20855501f240bcd22f5cc92fcb4a9806abe) )
+ ROM_LOAD16_BYTE( "095-c6.c6", 0x1000001, 0x400000, CRC(3e164718) SHA1(53217f938c8964c1ca68a6fd5249c4169a5ac8e6) )
+ ROM_LOAD16_BYTE( "095-c7.c7", 0x1800000, 0x200000, CRC(ca605e12) SHA1(5150b835247fd705bc1dece97d423d9c20a51416) )
+ ROM_LOAD16_BYTE( "095-c8.c8", 0x1800001, 0x200000, CRC(4e6beb6c) SHA1(c0ac7cfc832ace6ad52c58f5da3a8101baead749) )
+ROM_END
+
+/****************************************
+ ID-0096
+ . NGM-096
+ NEO-MVS PROGBK1 / NEO-MVS CHA256
+ . NGH-096
+****************************************/
+
+ROM_START( aof3 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "096-p1.p1", 0x000000, 0x100000, CRC(9edb420d) SHA1(150d80707325ece351c72c21c6186cfb5996adba) )
+ ROM_LOAD16_WORD_SWAP( "096-p2.sp2", 0x100000, 0x200000, CRC(4d5a2602) SHA1(4c26d6135d2877d9c38169662033e9d0cc24d943) )
+
+ NEO_SFIX_128K( "096-s1.s1", CRC(cc7fd344) SHA1(2c6846cf8ea61fb192ba181dbccb63594d572c0e) )
+
+ NEO_BIOS_AUDIO_128K( "096-m1.m1", CRC(cb07b659) SHA1(940b379957c2987d7ab0443cb80c3ff58f6ba559) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "096-v1.v1", 0x000000, 0x200000, CRC(e2c32074) SHA1(69426e7e63fc31a73d1cd056cc9ae6a2c4499407) )
+ ROM_LOAD( "096-v2.v2", 0x200000, 0x200000, CRC(a290eee7) SHA1(e66a98cd9740188bf999992b417f8feef941cede) )
+ ROM_LOAD( "096-v3.v3", 0x400000, 0x200000, CRC(199d12ea) SHA1(a883bf34e685487705a8dafdd0b8db15eb360e80) )
+
+ ROM_REGION( 0x1c00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "096-c1.c1", 0x0000000, 0x400000, CRC(f17b8d89) SHA1(7180df23f7c7a964b0835fda76970b12f0aa9ea8) )
+ ROM_LOAD16_BYTE( "096-c2.c2", 0x0000001, 0x400000, CRC(3840c508) SHA1(55adc7cd26fec3e4dbd779df6701bc6eaba41b84) )
+ ROM_LOAD16_BYTE( "096-c3.c3", 0x0800000, 0x400000, CRC(55f9ee1e) SHA1(fbe1b7891beae66c5fcbc7e36168dc1b460ede91) )
+ ROM_LOAD16_BYTE( "096-c4.c4", 0x0800001, 0x400000, CRC(585b7e47) SHA1(d50ea91397fc53d86470ff5b493a44d57c010306) )
+ ROM_LOAD16_BYTE( "096-c5.c5", 0x1000000, 0x400000, CRC(c75a753c) SHA1(fc977f8710816a369a5d0d49ee84059380e93fb7) )
+ ROM_LOAD16_BYTE( "096-c6.c6", 0x1000001, 0x400000, CRC(9a9d2f7a) SHA1(a89a713bfcd93974c9acb21ce699d365b08e7e39) )
+ ROM_LOAD16_BYTE( "096-c7.c7", 0x1800000, 0x200000, CRC(51bd8ab2) SHA1(c8def9c64de64571492b5b7e14b794e3c18f1393) )
+ ROM_LOAD16_BYTE( "096-c8.c8", 0x1800001, 0x200000, CRC(9a34f99c) SHA1(fca72d95ec42790a7f1e771a1e25dbc5bec5fc19) )
+ROM_END
+
+ROM_START( aof3k ) /* KOREAN VERSION */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "196-p1k.p1", 0x000000, 0x100000, CRC(a0780789) SHA1(83657922a9a3502653ef8cda45b15d9f935aa96a) )
+ ROM_LOAD16_WORD_SWAP( "096-p2.sp2", 0x100000, 0x200000, CRC(4d5a2602) SHA1(4c26d6135d2877d9c38169662033e9d0cc24d943) )
+
+ NEO_SFIX_128K( "096-s1.s1", CRC(cc7fd344) SHA1(2c6846cf8ea61fb192ba181dbccb63594d572c0e) )
+
+ NEO_BIOS_AUDIO_128K( "096-m1.m1", CRC(cb07b659) SHA1(940b379957c2987d7ab0443cb80c3ff58f6ba559) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "096-v1.v1", 0x000000, 0x200000, CRC(e2c32074) SHA1(69426e7e63fc31a73d1cd056cc9ae6a2c4499407) )
+ ROM_LOAD( "096-v2.v2", 0x200000, 0x200000, CRC(a290eee7) SHA1(e66a98cd9740188bf999992b417f8feef941cede) )
+ ROM_LOAD( "096-v3.v3", 0x400000, 0x200000, CRC(199d12ea) SHA1(a883bf34e685487705a8dafdd0b8db15eb360e80) )
+
+ ROM_REGION( 0x1c00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "096-c1.c1", 0x0000000, 0x400000, CRC(f17b8d89) SHA1(7180df23f7c7a964b0835fda76970b12f0aa9ea8) )
+ ROM_LOAD16_BYTE( "096-c2.c2", 0x0000001, 0x400000, CRC(3840c508) SHA1(55adc7cd26fec3e4dbd779df6701bc6eaba41b84) )
+ ROM_LOAD16_BYTE( "096-c3.c3", 0x0800000, 0x400000, CRC(55f9ee1e) SHA1(fbe1b7891beae66c5fcbc7e36168dc1b460ede91) )
+ ROM_LOAD16_BYTE( "096-c4.c4", 0x0800001, 0x400000, CRC(585b7e47) SHA1(d50ea91397fc53d86470ff5b493a44d57c010306) )
+ ROM_LOAD16_BYTE( "096-c5.c5", 0x1000000, 0x400000, CRC(c75a753c) SHA1(fc977f8710816a369a5d0d49ee84059380e93fb7) )
+ ROM_LOAD16_BYTE( "096-c6.c6", 0x1000001, 0x400000, CRC(9a9d2f7a) SHA1(a89a713bfcd93974c9acb21ce699d365b08e7e39) )
+ ROM_LOAD16_BYTE( "096-c7.c7", 0x1800000, 0x200000, CRC(51bd8ab2) SHA1(c8def9c64de64571492b5b7e14b794e3c18f1393) )
+ ROM_LOAD16_BYTE( "096-c8.c8", 0x1800001, 0x200000, CRC(9a34f99c) SHA1(fca72d95ec42790a7f1e771a1e25dbc5bec5fc19) )
+ROM_END
+
+/****************************************
+ ID-0097
+ . NGM-097
+ NEO-MVS PROGBK1 / NEO-MVS CHA256
+ . NGH-097
+ NEO-AEG PROGBK1Y / NEO-AEG CHA256RY
+****************************************/
+
+ROM_START( sonicwi3 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "097-p1.p1", 0x100000, 0x100000, CRC(0547121d) SHA1(e0bb6c614f572b74ba9a9f0d3d5b69fbc91ebc52) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "097-s1.s1", CRC(8dd66743) SHA1(39214bb25a1d5b44a8524010be05bf5a0211981f) )
+
+ NEO_BIOS_AUDIO_128K( "097-m1.m1", CRC(b20e4291) SHA1(0e891ab53f9fded510295dfc7818bc59b4a9dd97) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "097-v1.v1", 0x000000, 0x400000, CRC(6f885152) SHA1(8175804d5c1420c5d37b733d4a8fa2aa81e59f1b) )
+ ROM_LOAD( "097-v2.v2", 0x400000, 0x200000, CRC(3359e868) SHA1(b7efd9f1a6dab33271fe8356bcc863aeae1d3ed8) )
+
+ ROM_REGION( 0xc00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "097-c1.c1", 0x000000, 0x400000, CRC(33d0d589) SHA1(fe4aa95555e478ceb2d28fd27d83ee06cd09520c) )
+ ROM_LOAD16_BYTE( "097-c2.c2", 0x000001, 0x400000, CRC(186f8b43) SHA1(f5cced93e21dc841b00ebeaa30786cb0e047bd9a) )
+ ROM_LOAD16_BYTE( "097-c3.c3", 0x800000, 0x200000, CRC(c339fff5) SHA1(58dfd1e30dc0ad3f816a5dbd1cc7e7ccbb792c53) )
+ ROM_LOAD16_BYTE( "097-c4.c4", 0x800001, 0x200000, CRC(84a40c6e) SHA1(061a13fba5fed883e5ee9566cedc208df2511bcf) )
+ROM_END
+
+/****************************************
+ ID-0098
+ Idol Mahjong - final romance 2 (CD only? not confirmed, MVS might exist)
+****************************************/
+
+/****************************************
+ ID-0099
+ Neo Pool Masters
+****************************************/
+
+
+/* ID range from 100 - 199 is used for Korean (some) and Neo Print carts */
+
+/*
+ The following ID's are used by Korean releases:
+
+ ID-0122 - Pae Wang Jeon Seol / Legend of a Warrior (Korean censored Samurai Shodown IV)
+ ID-0123 - Quiz Daisousa Sen - The Last Count Down (Korean release)
+ ID-0124 - Real Bout Fatal Fury Special / Real Bout Garou Densetsu Special (Korean release)
+ ID-0134 - The Last Soldier (Korean release of The Last Blade)
+ ID-0140 - Real Bout Fatal Fury 2 - The Newcomers (Korean release)
+ ID-0152 - The King of Fighters '99 - Millennium Battle (Korean release)
+ ID-0163 - Saulabi Spirits / Jin Saulabi Tu Hon (Korean release of Samurai Shodown II)
+ ID-0187 - Fighters Swords (Korean release of Samurai Shodown III)
+ ID-0196 - Art of Fighting 3 - The Path of the Warrior (Korean release)
+*/
+
+
+/****************************************
+ ID-0200
+ . NGM-200
+ NEO-MVS PROGBK1 / NEO-MVS CHA256B
+ NEO-MVS PROGBK1 / NEO-MVS CHA256
+ . NGH-200
+****************************************/
+
+ROM_START( turfmast )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "200-p1.p1", 0x100000, 0x100000, CRC(28c83048) SHA1(e7ef87e1de21d2bb17ef17bb08657e92363f0e9a) )
+ ROM_CONTINUE( 0x000000, 0x100000)
+
+ NEO_SFIX_128K( "200-s1.s1", CRC(9a5402b2) SHA1(ae1a0b5450869d61b2bb23671c744d3dda8769c4) )
+
+ NEO_BIOS_AUDIO_128K( "200-m1.m1", CRC(9994ac00) SHA1(7bded797f3b80fd00bcbe451ac0abe6646b19a14) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "200-v1.v1", 0x000000, 0x200000, CRC(00fd48d2) SHA1(ddfee09328632e598fd51537b3ae8593219b2111) )
+ ROM_LOAD( "200-v2.v2", 0x200000, 0x200000, CRC(082acb31) SHA1(2f1c053040e9d50a6d45fd7bea1b96742bae694f) )
+ ROM_LOAD( "200-v3.v3", 0x400000, 0x200000, CRC(7abca053) SHA1(e229bc0ea82a371d6ee8fd9fe442b0fd141d0a71) )
+ ROM_LOAD( "200-v4.v4", 0x600000, 0x200000, CRC(6c7b4902) SHA1(d55e0f542d928a9a851133ff26763c8236cbbd4d) )
+
+ ROM_REGION( 0x800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "200-c1.c1", 0x000000, 0x400000, CRC(8e7bf41a) SHA1(148eb747f2f4d8e921eb0411c88a636022ceab80) )
+ ROM_LOAD16_BYTE( "200-c2.c2", 0x000001, 0x400000, CRC(5a65a8ce) SHA1(d6c7afe035411f3eacdf6868d36f91572dd593e0) )
+ROM_END
+
+/****************************************
+ ID-0201
+ . NGM-201
+ NEO-MVS PROGBK1 / NEO-MVS CHA256
+ NEO-MVS PROGBK1 / NEO-MVS CHA256B
+ . NGH-201
+ NEO-AEG PROGBK1Y / NEO-AEG CHA256RY
+****************************************/
+
+ROM_START( mslug )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "201-p1.p1", 0x100000, 0x100000, CRC(08d8daa5) SHA1(b888993dbb7e9f0a28a01d7d2e1da00ef9cf6f38) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "201-s1.s1", CRC(2f55958d) SHA1(550b53628daec9f1e1e11a398854092d90f9505a) )
+
+ NEO_BIOS_AUDIO_128K( "201-m1.m1", CRC(c28b3253) SHA1(fd75bd15aed30266a8b3775f276f997af57d1c06) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "201-v1.v1", 0x000000, 0x400000, CRC(23d22ed1) SHA1(cd076928468ad6bcc5f19f88cb843ecb5e660681) )
+ ROM_LOAD( "201-v2.v2", 0x400000, 0x400000, CRC(472cf9db) SHA1(5f79ea9286d22ed208128f9c31ca75552ce08b57) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "201-c1.c1", 0x000000, 0x400000, CRC(72813676) SHA1(7b045d1a48980cb1a140699011cb1a3d4acdc4d1) )
+ ROM_LOAD16_BYTE( "201-c2.c2", 0x000001, 0x400000, CRC(96f62574) SHA1(cb7254b885989223bba597b8ff0972dfa5957816) )
+ ROM_LOAD16_BYTE( "201-c3.c3", 0x800000, 0x400000, CRC(5121456a) SHA1(0a7a27d603d1bb2520b5570ebf5b34a106e255a6) )
+ ROM_LOAD16_BYTE( "201-c4.c4", 0x800001, 0x400000, CRC(f4ad59a3) SHA1(4e94fda8ee63abf0f92afe08060a488546e5c280) )
+ROM_END
+
+/****************************************
+ ID-0202
+ . ??M-202
+ NEO-MVS PROG 4096 / NEO-MVS CHA 42G-2
+****************************************/
+
+ROM_START( puzzledp ) /* MVS ONLY RELEASE */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "202-p1.p1", 0x000000, 0x080000, CRC(2b61415b) SHA1(0e3e4faf2fd6e63407425e1ac788003e75aeeb4f) )
+ /* also found set with p1 on eprom with sticker; label is 202-P1 */
+
+ NEO_SFIX_128K( "202-s1.s1", CRC(cd19264f) SHA1(531be2305cd56d332fb7a53ab924214ade34a9e8) )
+
+ NEO_BIOS_AUDIO_128K( "202-m1.m1", CRC(9c0291ea) SHA1(3fa67c62acba79be6b3a98cc1601e45569fa11ae) )
+
+ ROM_REGION( 0x080000, "ymsnd", 0 )
+ ROM_LOAD( "202-v1.v1", 0x000000, 0x080000, CRC(debeb8fb) SHA1(49a3d3578c087f1a0050168571ef8d1b08c5dc05) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "202-c1.c1", 0x000000, 0x100000, CRC(cc0095ef) SHA1(3d86f455e6db10a2449b775dc386f1826ba3b62e) )
+ ROM_LOAD16_BYTE( "202-c2.c2", 0x000001, 0x100000, CRC(42371307) SHA1(df794f989e2883634bf7ffeea48d6bc3854529af) )
+ROM_END
+
+/****************************************
+ ID-0203
+ . ADM-010
+ NEO-MVS PROGTOP / NEO-MVS CHA42G-3B
+ . ADH-010
+****************************************/
+
+ROM_START( mosyougi )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "203-p1.p1", 0x000000, 0x100000, CRC(7ba70e2d) SHA1(945f472cc3e7706f613c52df18de35c986d166e7) )
+
+ NEO_SFIX_128K( "203-s1.s1", CRC(bfdc8309) SHA1(781337eab932a130b396a6c1080611d6f9c24c6e) )
+
+ NEO_BIOS_AUDIO_128K( "203-m1.m1", CRC(a602c2c2) SHA1(19fd5d0379244c528b58343f6cbf78b4766fb23d) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "203-v1.v1", 0x000000, 0x200000, CRC(baa2b9a5) SHA1(914782b6c81d9a76ce02251575592b0648434ba3) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "203-c1.c1", 0x000000, 0x200000, CRC(bba9e8c0) SHA1(db89b7275a59ae6104a8308025c7e142a67b947b) )
+ ROM_LOAD16_BYTE( "203-c2.c2", 0x000001, 0x200000, CRC(2574be03) SHA1(198cfd697c623022919ae4118928a7fe30cd6c46) )
+ROM_END
+
+/****************************************
+ ID-0204
+ QP (prototype) 1997 Success
+****************************************/
+
+/****************************************
+ ID-0205
+ Neo-Geo CD Special (CD only)
+****************************************/
+
+/****************************************
+ ID-0206
+ . ??M-206
+ NEO-MVS PROGBK1 / NEO-MVS CHA256
+ . ??H-206
+****************************************/
+
+ROM_START( marukodq )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "206-p1.p1", 0x000000, 0x100000, CRC(c33ed21e) SHA1(bffff0d17e587e67672227e60c0ebd3f3a7193e6) )
+
+ NEO_SFIX_128K( "206-s1.s1", CRC(f0b68780) SHA1(3f60950b14d121a5af3e6a8155ae9832ddc6ec46) )
+
+ NEO_BIOS_AUDIO_128K( "206-m1.m1", CRC(0e22902e) SHA1(fb8466c342d4abd8bb4cad01c6ceab03f96cdad8) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "206-v1.v1", 0x000000, 0x200000, CRC(5385eca8) SHA1(1ca171ce74a5885ae8841d0924de21dc0af2214e) )
+ ROM_LOAD( "206-v2.v2", 0x200000, 0x200000, CRC(f8c55404) SHA1(cecc41e9e08a7ff05b6f62e713fc86a816bf55a2) )
+
+ ROM_REGION( 0xa00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "206-c1.c1", 0x000000, 0x400000, CRC(846e4e8e) SHA1(ba9b96340aca7fadaff0e6d484391ddb5c5e7bd4) )
+ ROM_LOAD16_BYTE( "206-c2.c2", 0x000001, 0x400000, CRC(1cba876d) SHA1(3254ceb5a2f76c172930d9889d5d81e093e87628) )
+ ROM_LOAD16_BYTE( "206-c3.c3", 0x800000, 0x100000, CRC(79aa2b48) SHA1(31f94217cd35f48845c74a55256314c16fd26ed7) )
+ ROM_LOAD16_BYTE( "206-c4.c4", 0x800001, 0x100000, CRC(55e1314d) SHA1(fffbc9eb9000ff5b1063af1817de7ea4a267fedd) )
+ROM_END
+
+/****************************************
+ ID-0207
+ . ??M-207
+ NEO-MVS PROGBK1 / NEO-MVS CHA42G-3B
+ NEO-MVS PROG 4096 / NEO-MVS CHA42G-3B
+****************************************/
+
+ROM_START( neomrdo ) /* MVS ONLY RELEASE */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "207-p1.p1", 0x000000, 0x100000, CRC(334ea51e) SHA1(0a642f8565ec6e9587ed767bcf177f4677547162) )
+
+ NEO_SFIX_128K( "207-s1.s1", CRC(6aebafce) SHA1(5db03715fbed62f2ff3cef7f93606f30261c0362) )
+
+ NEO_BIOS_AUDIO_128K( "207-m1.m1", CRC(b5b74a95) SHA1(7b01f3b87c247cc7472591f8cdcf0ae8065e31c6) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "207-v1.v1", 0x000000, 0x200000, CRC(4143c052) SHA1(561b19bc8811b80f2f42ffc0b5df27132696470a) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "207-c1.c1", 0x000000, 0x200000, CRC(c7541b9d) SHA1(25ca1a2b14cc2648d8dbe432cbd1396017af822c) )
+ ROM_LOAD16_BYTE( "207-c2.c2", 0x000001, 0x200000, CRC(f57166d2) SHA1(bf3aa47d17156485c2177fb63cba093f050abb98) )
+ROM_END
+
+/****************************************
+ ID-0208
+ . ??M-208
+ NEO-MVS PROGBK1 / NEO-MVS CHA256B
+****************************************/
+
+ROM_START( sdodgeb ) /* MVS ONLY RELEASE */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "208-p1.p1", 0x100000, 0x100000, CRC(127f3d32) SHA1(18e77b79b1197a89371533ef9b1e4d682c44d875) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "208-s1.s1", CRC(64abd6b3) SHA1(0315d724e4d83a44ce84c531ff9b8c398363c039) )
+
+ NEO_BIOS_AUDIO_128K( "208-m1.m1", CRC(0a5f3325) SHA1(04e0236df478a5452654c823dcb42fea65b6a718) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "208-v1.v1", 0x000000, 0x400000, CRC(e7899a24) SHA1(3e75b449898fee73fbacf58d70e3a460b9e0c573) )
+
+ ROM_REGION( 0x0c00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "208-c1.c1", 0x0000000, 0x400000, CRC(93d8619b) SHA1(6588cb67e38722d5843fb29943d92e3905101aff) )
+ ROM_LOAD16_BYTE( "208-c2.c2", 0x0000001, 0x400000, CRC(1c737bb6) SHA1(8e341989981a713e61dfed8bde9a6459583ef46d) )
+ ROM_LOAD16_BYTE( "208-c3.c3", 0x0800000, 0x200000, CRC(14cb1703) SHA1(a46acec03c1b2351fe36810628f02b7c848d13db) )
+ ROM_LOAD16_BYTE( "208-c4.c4", 0x0800001, 0x200000, CRC(c7165f19) SHA1(221f03de893dca0e5305fa17aa94f96c67713818) )
+ROM_END
+
+/****************************************
+ ID-0209
+ . ??M-209
+ NEO-MVS PROGBK1 / NEO-MVS CHA256
+****************************************/
+
+ROM_START( goalx3 ) /* MVS ONLY RELEASE */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "209-p1.p1", 0x100000, 0x100000, CRC(2a019a79) SHA1(422a639e74284fef2e53e1b49cf8803b0a7e80c6) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "209-s1.s1", CRC(c0eaad86) SHA1(99412093c9707d51817893971e73fb8469cdc9d0) )
+
+ NEO_BIOS_AUDIO_128K( "209-m1.m1", CRC(cd758325) SHA1(b51eac634fc646c07210dff993018ad9ebabd3f9) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "209-v1.v1", 0x000000, 0x200000, CRC(ef214212) SHA1(3e05ccaa2d06decb18b379b96f900c0e6b39ce70) )
+
+ ROM_REGION( 0xa00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "209-c1.c1", 0x000000, 0x400000, CRC(b49d980e) SHA1(722d10074f16fa7f14c71270f43fdab427b85e2b) )
+ ROM_LOAD16_BYTE( "209-c2.c2", 0x000001, 0x400000, CRC(5649b015) SHA1(9c9674f3841e6becd3b8e63bae9b9df45ac9f11e) )
+ ROM_LOAD16_BYTE( "209-c3.c3", 0x800000, 0x100000, CRC(5f91bace) SHA1(3864be27dce6d8f8828d3bf09bfc8116116a2b56) )
+ ROM_LOAD16_BYTE( "209-c4.c4", 0x800001, 0x100000, CRC(1e9f76f2) SHA1(b57fdc226bfe328b8848127fb4292295f1287bf6) )
+ROM_END
+
+/****************************************
+ ID-0210
+ Karate Ninja Sho (prototype) 1995 Yumekobo
+****************************************/
+
+/****************************************
+ ID-0211
+ Oshidashi Zintrick (CD only? not confirmed, MVS might exist) 1996 SNK/ADK
+****************************************/
+
+/****************************************
+ ID-0212
+ . ADM-011
+ NEO-MVS PROGBK1 / NEO-MVS CHA256
+ . ADH-011
+****************************************/
+
+ROM_START( overtop )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "212-p1.p1", 0x100000, 0x100000, CRC(16c063a9) SHA1(5432869f830eed816ee5ed71c7fd39f749d15619) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "212-s1.s1", CRC(481d3ddc) SHA1(7b0df3fc5b19f282abfd0eb5a4c6ed836a536ece) )
+
+ NEO_BIOS_AUDIO_128K( "212-m1.m1", CRC(fcab6191) SHA1(488b8310b0957f0012fe50f73641b606f6ac4a57) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "212-v1.v1", 0x000000, 0x400000, CRC(013d4ef9) SHA1(438a697c44525bdf78b54432c4f7217ab5667047) )
+
+ ROM_REGION( 0x1400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "212-c1.c1", 0x0000000, 0x400000, CRC(50f43087) SHA1(e5a8c914ef8e77c7a29bffdeb18f1877b5c2fc7d) )
+ ROM_LOAD16_BYTE( "212-c2.c2", 0x0000001, 0x400000, CRC(a5b39807) SHA1(e98e82cf99576cb48cc5e8dc655b7e9a428c2843) )
+ ROM_LOAD16_BYTE( "212-c3.c3", 0x0800000, 0x400000, CRC(9252ea02) SHA1(269066e0f893d3e8e7c308528026a486c2b023a2) )
+ ROM_LOAD16_BYTE( "212-c4.c4", 0x0800001, 0x400000, CRC(5f41a699) SHA1(abbb162658e06a37db8475b659ece7e1270ebb49) )
+ ROM_LOAD16_BYTE( "212-c5.c5", 0x1000000, 0x200000, CRC(fc858bef) SHA1(0031def13e7cf4a465a1eca7aa0d13d1b21427e2) )
+ ROM_LOAD16_BYTE( "212-c6.c6", 0x1000001, 0x200000, CRC(0589c15e) SHA1(b1167caf7cb61f3e05a5d342290bfe00e02e9d38) )
+ROM_END
+
+/****************************************
+ ID-0213
+ . ??M-213
+ NEO-MVS PROGBK1 / NEO-MVS CHA256B
+****************************************/
+
+ROM_START( neodrift ) /* MVS ONLY RELEASE */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "213-p1.p1", 0x100000, 0x100000, CRC(e397d798) SHA1(10f459111db4bab7aaa63ca47e83304a84300812) )
+ ROM_CONTINUE( 0x000000, 0x100000)
+
+ NEO_SFIX_128K( "213-s1.s1", CRC(b76b61bc) SHA1(5fdb407d16ab9e33c4f26ee09ff70891ae1d2bd0) )
+
+ NEO_BIOS_AUDIO_128K( "213-m1.m1", CRC(200045f1) SHA1(7a6cd1c8d4447ea260d7ff4520c676b8d685f2e4) ) /* mask rom TC531001*/
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "213-v1.v1", 0x000000, 0x200000, CRC(a421c076) SHA1(129f05c1a28a6493442f47a79c2d3577a1a43ef5) )
+ ROM_LOAD( "213-v2.v2", 0x200000, 0x200000, CRC(233c7dd9) SHA1(be7f980aa83831b6605aaaf4ec904180bb96c935) )
+
+ ROM_REGION( 0x800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "213-c1.c1", 0x000000, 0x400000, CRC(3edc8bd3) SHA1(71dcba9afd3b08ebfa13294644dcb365c2740780) )
+ ROM_LOAD16_BYTE( "213-c2.c2", 0x000001, 0x400000, CRC(46ae5f16) SHA1(a01310632734e776e889af6a531063cb1661c33a) )
+ROM_END
+
+/****************************************
+ ID-0214
+ . NGM-214
+ NEO-MVS PROGBK1 / NEO-MVS CHA256
+ NEO-MVS PROGSS3 / NEO-MVS CHA256
+ . NGH-214
+ NEO-AEG PROGBK1Y / NEO-GEO AEG CHA256RY
+****************************************/
+
+ROM_START( kof96 ) /* MVS VERSION */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214-p1.p1", 0x000000, 0x100000, CRC(52755d74) SHA1(4232d627f1d2e6ea9fc8cf01571d77d4d5b8a1bb) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+ /* also found sets with ep1 / ep2 / ep3 / ep4 on eprom and 214-P5 on TC5316200; correct chip labels for eproms is unknown */
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96h ) /* AES VERSION */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214-pg1.p1", 0x000000, 0x100000, CRC(bd3757c9) SHA1(35392a044117e46c088ff0fdd07d69a3faa4f96e) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+/****************************************
+ ID-0215
+ . NGM-215
+ NEO-MVS PROGBK1 / NEO-MVS CHA256
+ . NGH-215
+ NEO-AEG PROGBK1Y / NEO-AEG CHA256RY
+****************************************/
+
+ROM_START( ssideki4 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "215-p1.p1", 0x100000, 0x100000, CRC(519b4ba3) SHA1(5aa59514b23aa663f2c4014ee94a31e9f59151de) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "215-s1.s1", CRC(f0fe5c36) SHA1(b7badd6d2ac3788ce5cace1fcf5cdad14734e4e6) )
+
+ NEO_BIOS_AUDIO_128K( "215-m1.m1", CRC(a932081d) SHA1(376a45e19edb780ac8798c41ae2260c8a8a4bba8) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "215-v1.v1", 0x000000, 0x400000, CRC(877d1409) SHA1(77c58ebffe677ea6369c964ec7975b11df512fa1) )
+ ROM_LOAD( "215-v2.v2", 0x400000, 0x200000, CRC(1bfa218b) SHA1(344836a578bde3c0ab59b58c8734f868e7403c26) )
+
+ ROM_REGION( 0x1400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "215-c1.c1", 0x0000000, 0x400000, CRC(8ff444f5) SHA1(e2dc52d09512cb378df96ddf45435f9bcbbe9947) )
+ ROM_LOAD16_BYTE( "215-c2.c2", 0x0000001, 0x400000, CRC(5b155037) SHA1(68900c0fdcd35c9f38e0effdf27e1dbd3c53daf8) )
+ ROM_LOAD16_BYTE( "215-c3.c3", 0x0800000, 0x400000, CRC(456a073a) SHA1(3488013f371012eab4e788e1525c81260e0b7080) )
+ ROM_LOAD16_BYTE( "215-c4.c4", 0x0800001, 0x400000, CRC(43c182e1) SHA1(343f034c65ca498b437e22e06a866a5daf3b9602) )
+ ROM_LOAD16_BYTE( "215-c5.c5", 0x1000000, 0x200000, CRC(0c6f97ec) SHA1(b8d297f0ba2b04404eb0f7c6673ecc206fadae0c) )
+ ROM_LOAD16_BYTE( "215-c6.c6", 0x1000001, 0x200000, CRC(329c5e1b) SHA1(015c36b8d3efab9b4647f110ecb5c118a9c80f43) )
+ROM_END
+
+/****************************************
+ ID-0216
+ . ??M-216
+ NEO-MVS PROGTOP / NEO-MVS CHA256
+ . ??H-216
+ NEO-AEG PROGTOP2Y / NEO-AEG CHA256BY
+ NEO-AEG PROGTOP2Y / NEO-AEG CHA256[B]
+****************************************/
+
+ROM_START( kizuna )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "216-p1.p1", 0x100000, 0x100000, CRC(75d2b3de) SHA1(ee778656c26828935ee2a2bfd0ce5a22aa681c10) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "216-s1.s1", CRC(efdc72d7) SHA1(be37cbf1852e2e4c907cc799b754b538544b6703) )
+
+ NEO_BIOS_AUDIO_128K( "216-m1.m1", CRC(1b096820) SHA1(72852e78c620038f8dafde5e54e02e418c31be9c) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "059-v1.v1", 0x000000, 0x200000, CRC(530c50fd) SHA1(29401cee7f7d2c199c7cb58092e86b28205e81ad) )
+ ROM_LOAD( "216-v2.v2", 0x200000, 0x200000, CRC(03667a8d) SHA1(3b0475e553a49f8788f32b0c84f82645cc6b4273) )
+ ROM_LOAD( "059-v3.v3", 0x400000, 0x200000, CRC(7038c2f9) SHA1(c1d6f86b24feba03fe009b58199d2eeabe572f4e) )
+ ROM_LOAD( "216-v4.v4", 0x600000, 0x200000, CRC(31b99bd6) SHA1(5871751f8e9e6b98337472c22b5e1c7ede0a9311) )
+
+ ROM_REGION( 0x1c00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "059-c1.c1", 0x0000000, 0x200000, CRC(763ba611) SHA1(d3262e0332c894ee149c5963f882cc5e5562ee57) )
+ ROM_LOAD16_BYTE( "059-c2.c2", 0x0000001, 0x200000, CRC(e05e8ca6) SHA1(986a9b16ff92bc101ab567d2d01348e093abea9a) )
+ /* 400000-7fffff empty */
+ ROM_LOAD16_BYTE( "216-c3.c3", 0x0800000, 0x400000, CRC(665c9f16) SHA1(7ec781a49a462f395b450460b29493f55134eac2) )
+ ROM_LOAD16_BYTE( "216-c4.c4", 0x0800001, 0x400000, CRC(7f5d03db) SHA1(365ed266c121f4df0bb76898955a8ae0e668a216) )
+ ROM_LOAD16_BYTE( "059-c5.c5", 0x1000000, 0x200000, CRC(59013f9e) SHA1(5bf48fcc450da72a8c4685f6e3887e67eae49988) )
+ ROM_LOAD16_BYTE( "059-c6.c6", 0x1000001, 0x200000, CRC(1c8d5def) SHA1(475d89a5c4922a9f6bd756d23c2624d57b6e9d62) )
+ /* 1400000-17fffff empty */
+ ROM_LOAD16_BYTE( "059-c7.c7", 0x1800000, 0x200000, CRC(c88f7035) SHA1(c29a428b741f4fe7b71a3bc23c87925b6bc1ca8f) )
+ ROM_LOAD16_BYTE( "059-c8.c8", 0x1800001, 0x200000, CRC(484ce3ba) SHA1(4f21ed20ce6e2b67e2b079404599310c94f591ff) )
+ROM_END
+
+
+ROM_START( kizuna4p ) /* same cartridge as kizuna - 4-player mode is enabled by an extension board that plugs into a compatible MVS */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "216-p1.p1", 0x100000, 0x100000, CRC(75d2b3de) SHA1(ee778656c26828935ee2a2bfd0ce5a22aa681c10) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "216-s1.s1", CRC(efdc72d7) SHA1(be37cbf1852e2e4c907cc799b754b538544b6703) )
+
+ ROM_REGION16_BE( 0x80000, "mainbios", 0 )
+ /* these two BIOSes are the only ones we have that are compatible with the 4-player extension board */
+ ROM_SYSTEM_BIOS( 0, "asia", "NEO-MVH MV1C" )
+ ROM_LOAD16_WORD_SWAP_BIOS( 0, "sp-45.sp1",0x00000, 0x080000, CRC(03cc9f6a) SHA1(cdf1f49e3ff2bac528c21ed28449cf35b7957dc1) )
+ ROM_SYSTEM_BIOS( 1, "japan", "Japan MVS (J3)" )
+ ROM_LOAD16_WORD_SWAP_BIOS( 1, "japan-j3.bin",0x00000, 0x020000, CRC(dff6d41f) SHA1(e92910e20092577a4523a6b39d578a71d4de7085) )
+
+ ROM_REGION( 0x30000, "audiocpu", 0 )
+ ROM_LOAD( "216-m1.m1", 0x00000, 0x20000, CRC(1b096820) SHA1(72852e78c620038f8dafde5e54e02e418c31be9c) )
+ ROM_RELOAD( 0x10000, 0x20000 )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "059-v1.v1", 0x000000, 0x200000, CRC(530c50fd) SHA1(29401cee7f7d2c199c7cb58092e86b28205e81ad) )
+ ROM_LOAD( "216-v2.v2", 0x200000, 0x200000, CRC(03667a8d) SHA1(3b0475e553a49f8788f32b0c84f82645cc6b4273) )
+ ROM_LOAD( "059-v3.v3", 0x400000, 0x200000, CRC(7038c2f9) SHA1(c1d6f86b24feba03fe009b58199d2eeabe572f4e) )
+ ROM_LOAD( "216-v4.v4", 0x600000, 0x200000, CRC(31b99bd6) SHA1(5871751f8e9e6b98337472c22b5e1c7ede0a9311) )
+
+ ROM_REGION( 0x1c00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "059-c1.c1", 0x0000000, 0x200000, CRC(763ba611) SHA1(d3262e0332c894ee149c5963f882cc5e5562ee57) )
+ ROM_LOAD16_BYTE( "059-c2.c2", 0x0000001, 0x200000, CRC(e05e8ca6) SHA1(986a9b16ff92bc101ab567d2d01348e093abea9a) )
+ /* 400000-7fffff empty */
+ ROM_LOAD16_BYTE( "216-c3.c3", 0x0800000, 0x400000, CRC(665c9f16) SHA1(7ec781a49a462f395b450460b29493f55134eac2) )
+ ROM_LOAD16_BYTE( "216-c4.c4", 0x0800001, 0x400000, CRC(7f5d03db) SHA1(365ed266c121f4df0bb76898955a8ae0e668a216) )
+ ROM_LOAD16_BYTE( "059-c5.c5", 0x1000000, 0x200000, CRC(59013f9e) SHA1(5bf48fcc450da72a8c4685f6e3887e67eae49988) )
+ ROM_LOAD16_BYTE( "059-c6.c6", 0x1000001, 0x200000, CRC(1c8d5def) SHA1(475d89a5c4922a9f6bd756d23c2624d57b6e9d62) )
+ /* 1400000-17fffff empty */
+ ROM_LOAD16_BYTE( "059-c7.c7", 0x1800000, 0x200000, CRC(c88f7035) SHA1(c29a428b741f4fe7b71a3bc23c87925b6bc1ca8f) )
+ ROM_LOAD16_BYTE( "059-c8.c8", 0x1800001, 0x200000, CRC(484ce3ba) SHA1(4f21ed20ce6e2b67e2b079404599310c94f591ff) )
+ROM_END
+
+
+/****************************************
+ ID-0217
+ . ADM-012
+ NEO-MVS PROGBK1 / NEO-MVS CHA256
+ . ADH-012
+ NEO-AEG PROGBK1Y / NEO-AEG CHA256RY
+****************************************/
+
+ROM_START( ninjamas )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "217-p1.p1", 0x000000, 0x100000, CRC(3e97ed69) SHA1(336bcae375a5109945d11356503bf0d9f4a9a50a) )
+ ROM_LOAD16_WORD_SWAP( "217-p2.sp2", 0x100000, 0x200000, CRC(191fca88) SHA1(e318e5931704779bbe461719a5eeeba89bd83a5d) )
+
+ NEO_SFIX_128K( "217-s1.s1", CRC(8ff782f0) SHA1(90099c154357042ba658d4ef6abe4d9335bb7172) )
+
+ NEO_BIOS_AUDIO_128K( "217-m1.m1", CRC(d00fb2af) SHA1(6bcaa52e1641cc24288e1f22f4dc98e8d8921b90) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "217-v1.v1", 0x000000, 0x400000, CRC(1c34e013) SHA1(5368e413d2188c4fd063b6bb7d5f498ff83ea812) )
+ ROM_LOAD( "217-v2.v2", 0x400000, 0x200000, CRC(22f1c681) SHA1(09da03b2e63d180e55173ff25e8735c4162f027b) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "217-c1.c1", 0x0000000, 0x400000, CRC(5fe97bc4) SHA1(d76c955d83baa2b9fd24222a9b2852947b7b92f0) )
+ ROM_LOAD16_BYTE( "217-c2.c2", 0x0000001, 0x400000, CRC(886e0d66) SHA1(d407e1525e4ebe996e14f6e5c0396a10f736a50d) )
+ ROM_LOAD16_BYTE( "217-c3.c3", 0x0800000, 0x400000, CRC(59e8525f) SHA1(19f602c71545d6c021dc72e112d3a8b8efe7a9b7) )
+ ROM_LOAD16_BYTE( "217-c4.c4", 0x0800001, 0x400000, CRC(8521add2) SHA1(0d1a6f2979302c4c282e31ff334d2d887aec74f7) )
+ ROM_LOAD16_BYTE( "217-c5.c5", 0x1000000, 0x400000, CRC(fb1896e5) SHA1(777a8caa9ebdbddf89e3d5ab650c94a55228ce54) )
+ ROM_LOAD16_BYTE( "217-c6.c6", 0x1000001, 0x400000, CRC(1c98c54b) SHA1(cb1cad161d9b9f2f5a7cf8ae4d6d35b51acf90f5) )
+ ROM_LOAD16_BYTE( "217-c7.c7", 0x1800000, 0x400000, CRC(8b0ede2e) SHA1(ea632ac98291ddac95441b7fe2349974b2da8a42) )
+ ROM_LOAD16_BYTE( "217-c8.c8", 0x1800001, 0x400000, CRC(a085bb61) SHA1(6a3e9e6ba96072b8849b407f2b24103dc0852259) )
+ROM_END
+
+/****************************************
+ ID-0218
+ . NGM-218
+ NEO-MVS PROGBK1 / NEO-MVS CHA256
+ . NGH-218
+****************************************/
+
+ROM_START( ragnagrd )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "218-p1.p1", 0x100000, 0x100000, CRC(ca372303) SHA1(67991e4fef9b36bc7d909810eebb857ac2f906f1) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "218-s1.s1", CRC(7d402f9a) SHA1(59ec29d03e62e7a8bef689a124a9164f43b2ace1) )
+
+ NEO_BIOS_AUDIO_128K( "218-m1.m1", CRC(17028bcf) SHA1(7a4e8f33ce9b41beac2152b8f6003f247699e2e1) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "218-v1.v1", 0x000000, 0x400000, CRC(61eee7f4) SHA1(5b11b1a0b1b74dfbc2998cbda9f8f7a5e9059957) )
+ ROM_LOAD( "218-v2.v2", 0x400000, 0x400000, CRC(6104e20b) SHA1(18e8aae3e51e141977d523a10e737ff68fe81910) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "218-c1.c1", 0x0000000, 0x400000, CRC(c31500a4) SHA1(cc82100038988872721028044ed2e9764bcc2fb0) )
+ ROM_LOAD16_BYTE( "218-c2.c2", 0x0000001, 0x400000, CRC(98aba1f9) SHA1(121276c569967e501d8e1b83747f1bdebff612ea) )
+ ROM_LOAD16_BYTE( "218-c3.c3", 0x0800000, 0x400000, CRC(833c163a) SHA1(b7e5356bbd9efab67fedb5bc671ba8bbd661fe0f) )
+ ROM_LOAD16_BYTE( "218-c4.c4", 0x0800001, 0x400000, CRC(c1a30f69) SHA1(f87ddda4695abcd14f5c2d4b7d41f72ad5b064cc) )
+ ROM_LOAD16_BYTE( "218-c5.c5", 0x1000000, 0x400000, CRC(6b6de0ff) SHA1(1abb24cb407258235f4a572cf101d0774823040b) )
+ ROM_LOAD16_BYTE( "218-c6.c6", 0x1000001, 0x400000, CRC(94beefcf) SHA1(d2ff0bac325c9c823dba68bd4f281b3b9f8f68e7) )
+ ROM_LOAD16_BYTE( "218-c7.c7", 0x1800000, 0x400000, CRC(de6f9b28) SHA1(455adb6bb986af8a00d7f32b7f4f3715fc3007f6) )
+ ROM_LOAD16_BYTE( "218-c8.c8", 0x1800001, 0x400000, CRC(d9b311f6) SHA1(ba61a7ab3f08bb7348ad6cd01e5d29ca5ee75074) )
+ROM_END
+
+/****************************************
+ ID-0219
+ . NGM-219
+ NEO-MVS PROGBK1 / NEO-MVS CHA256
+****************************************/
+
+ROM_START( pgoal ) /* MVS ONLY RELEASE */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "219-p1.p1", 0x100000, 0x100000, CRC(6af0e574) SHA1(c3f0fed0d942e48c99c80b1713f271c033ce0f4f) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "219-s1.s1", CRC(002f3c88) SHA1(a8a5bbc5397c8ae9858e38997ebdc713b7b4f50a) )
+
+ NEO_BIOS_AUDIO_128K( "219-m1.m1", CRC(958efdc8) SHA1(aacc6056b1ff48cde8f241a11a27473cfb4b4aa3) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "219-v1.v1", 0x000000, 0x400000, CRC(d0ae33d9) SHA1(cb21a91184d9d84ff25ca86c00dcadfc210272a8) )
+
+ ROM_REGION( 0xc00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "219-c1.c1", 0x0000000, 0x400000, CRC(67fec4dc) SHA1(b99767972a2a4fce2b704df8d08e6b092665a696) )
+ ROM_LOAD16_BYTE( "219-c2.c2", 0x0000001, 0x400000, CRC(86ed01f2) SHA1(9d7d1493946e8fbbd572503d2362b0156c023b76) )
+ ROM_LOAD16_BYTE( "219-c3.c3", 0x0800000, 0x200000, CRC(5fdad0a5) SHA1(56f6d2a7224aa4e82a1858079f918e85cadbd6c2) )
+ ROM_LOAD16_BYTE( "219-c4.c4", 0x0800001, 0x200000, CRC(f57b4a1c) SHA1(875ca69afbc5304ec23f4bc9186abe92f477f6c8) )
+ROM_END
+
+/****************************************
+ ID-0220
+ Choutetsu Brikin'ger - Iron clad (prototype) 1996 Saurus
+****************************************/
+
+ROM_START( ironclad ) /* Prototype - crcs should match the ones of the unreleased dump. */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "proto_220-p1.p1", 0x100000, 0x100000, CRC(62a942c6) SHA1(12aaa7d9bd84328d1bf4610e056b5c57d0252537) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "proto_220-s1.s1", CRC(372fe217) SHA1(493433e682f519bf647e1481c8bdd3a980830ffb) )
+
+ NEO_BIOS_AUDIO_128K( "proto_220-m1.m1", CRC(3a08bb63) SHA1(d8fbbf42a006ccafc3cd99808d28c82dbaac4590) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "proto_220-v1.v1", 0x000000, 0x400000, CRC(8f30a215) SHA1(0ee866a468c4c3608d55df2b5cb9243c8016d77c) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_220-c1.c1", 0x000000, 0x400000, CRC(9aa2b7dc) SHA1(6b3dff292c86f949890b1f8201bc5278f38c2668) )
+ ROM_LOAD16_BYTE( "proto_220-c2.c2", 0x000001, 0x400000, CRC(8a2ad708) SHA1(9568ac4cc0552e7fd3e50d3cd8d9f0f4fe7df1d4) )
+ ROM_LOAD16_BYTE( "proto_220-c3.c3", 0x800000, 0x400000, CRC(d67fb15a) SHA1(842971aeaf3c92e70f7c653bbf29058bc60f5b71) )
+ ROM_LOAD16_BYTE( "proto_220-c4.c4", 0x800001, 0x400000, CRC(e73ea38b) SHA1(27138d588e61e86c292f12d16e36c3681075c607) )
+ROM_END
+
+ROM_START( ironclado ) /* Prototype - bootleg/hack based on later release. */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "proto_220-p1o.p1", 0x100000, 0x100000, CRC(ce37e3a0) SHA1(488f95fa15f56eea6666dda13d96ec29dba18e19) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "proto_220-s1.s1", CRC(372fe217) SHA1(493433e682f519bf647e1481c8bdd3a980830ffb) )
+
+ NEO_BIOS_AUDIO_128K( "proto_220-m1.m1", CRC(3a08bb63) SHA1(d8fbbf42a006ccafc3cd99808d28c82dbaac4590) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "proto_220-v1.v1", 0x000000, 0x400000, CRC(8f30a215) SHA1(0ee866a468c4c3608d55df2b5cb9243c8016d77c) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_220-c1.c1", 0x000000, 0x400000, CRC(9aa2b7dc) SHA1(6b3dff292c86f949890b1f8201bc5278f38c2668) )
+ ROM_LOAD16_BYTE( "proto_220-c2.c2", 0x000001, 0x400000, CRC(8a2ad708) SHA1(9568ac4cc0552e7fd3e50d3cd8d9f0f4fe7df1d4) )
+ ROM_LOAD16_BYTE( "proto_220-c3.c3", 0x800000, 0x400000, CRC(d67fb15a) SHA1(842971aeaf3c92e70f7c653bbf29058bc60f5b71) )
+ ROM_LOAD16_BYTE( "proto_220-c4.c4", 0x800001, 0x400000, CRC(e73ea38b) SHA1(27138d588e61e86c292f12d16e36c3681075c607) )
+ROM_END
+
+/****************************************
+ ID-0221
+ . NGM-221
+ NEO-MVS PROGBK1 / NEO-MVS CHA256B
+ NEO-MVS PROGBK1 / NEO-MVS CHA256
+ . NGH-221
+ NEO-AEG PROGBK1Y / NEO-AEG CHA256RY
+****************************************/
+
+ROM_START( magdrop2 )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "221-p1.p1", 0x000000, 0x80000, CRC(7be82353) SHA1(08ab39f52b893591c13a7d7aa26b20ce86e9ddf5) )
+
+ NEO_SFIX_128K( "221-s1.s1", CRC(2a4063a3) SHA1(0e09a7d88d85b1a2100888f4211960ea56ef978b) )
+
+ NEO_BIOS_AUDIO_128K( "221-m1.m1", CRC(bddae628) SHA1(02c77e6aaaed43e39778bf83a3184e7c21db63d4) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "221-v1.v1", 0x000000, 0x200000, CRC(7e5e53e4) SHA1(72b063b2d4acaaf72a20d14ad5bfc90cb64d3fed) )
+
+ ROM_REGION( 0x800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "221-c1.c1", 0x000000, 0x400000, CRC(1f862a14) SHA1(1253e8b65d863d552d00dbdbfc5c168f5fc7edd1) )
+ ROM_LOAD16_BYTE( "221-c2.c2", 0x000001, 0x400000, CRC(14b90536) SHA1(e0d41f6b84d8261729f154b44ddd95c9b9c0714a) )
+ROM_END
+
+/****************************************
+ ID-0222
+ . NGM-222
+ NEO-MVS PROGBK1 / NEO-MVS CHA256B
+ NEO-MVS PROGBK1 / NEO-MVS CHA256
+ . NGH-222
+ NEO-AEG PROGBK1Y / NEO-AEG CHA256RY
+****************************************/
+
+ROM_START( samsho4 ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "222-p1.p1", 0x000000, 0x100000, CRC(1a5cb56d) SHA1(9a0a5a1c7c5d428829f22d3d17f7033d43a51b5b) )
+ ROM_LOAD16_WORD_SWAP( "222-p2.sp2", 0x100000, 0x400000, CRC(b023cd8b) SHA1(35b4cec9858225f90acdfa16ed8a3017d0d08327) )
+
+ NEO_SFIX_128K( "222-s1.s1", CRC(8d3d3bf9) SHA1(9975ed9b458bdd14e23451d2534153f68a5e4e6c) )
+
+ NEO_BIOS_AUDIO_128K( "222-m1.m1", CRC(7615bc1b) SHA1(b936f7b341f6fe0921b4c41049734684583e3596) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "222-v1.v1", 0x000000, 0x400000, CRC(7d6ba95f) SHA1(03cb4e0d770e0b332b07b64cacef624460b84c78) )
+ ROM_LOAD( "222-v2.v2", 0x400000, 0x400000, CRC(6c33bb5d) SHA1(fd5d4e08a962dd0d22c52c91bad5ec7f23cfb901) )
+ ROM_LOAD( "222-v3.v3", 0x800000, 0x200000, CRC(831ea8c0) SHA1(f2987b7d09bdc4311e972ce8a9ab7ca9802db4db) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "222-c1.c1", 0x0000000, 0x400000, CRC(68f2ed95) SHA1(c0a02df012cd25bcfe341770ea861a80294148cb) )
+ ROM_LOAD16_BYTE( "222-c2.c2", 0x0000001, 0x400000, CRC(a6e9aff0) SHA1(15addca49951ed53fa3c000c8d7cd327d012a620) )
+ ROM_LOAD16_BYTE( "222-c3.c3", 0x0800000, 0x400000, CRC(c91b40f4) SHA1(dcda45e0336204e3e024de08edfd0a3217bc1fdd) )
+ ROM_LOAD16_BYTE( "222-c4.c4", 0x0800001, 0x400000, CRC(359510a4) SHA1(b6642677ebdff7788263266402080272b8a66b15) )
+ ROM_LOAD16_BYTE( "222-c5.c5", 0x1000000, 0x400000, CRC(9cfbb22d) SHA1(789c32f917d0c6e38601cd390a7bf9d803131a4a) )
+ ROM_LOAD16_BYTE( "222-c6.c6", 0x1000001, 0x400000, CRC(685efc32) SHA1(db21ba1c7e3631ce0f1cb6f503ae7e0e043ff71b) )
+ ROM_LOAD16_BYTE( "222-c7.c7", 0x1800000, 0x400000, CRC(d0f86f0d) SHA1(32502d71c2ab1469c492b6b382bf2bb3f85981d9) )
+ ROM_LOAD16_BYTE( "222-c8.c8", 0x1800001, 0x400000, CRC(adfc50e3) SHA1(7d7ee874355b5aa75ad9c9a5c9c3df98d098d85e) )
+ROM_END
+
+ROM_START( samsho4k ) /* KOREAN VERSION */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "222-p1k.p1", 0x000000, 0x100000, CRC(06e0a25d) SHA1(81e6727e0acb67ae41383518c0fc07f28d232979) )
+ ROM_LOAD16_WORD_SWAP( "222-p2.sp2", 0x100000, 0x400000, CRC(b023cd8b) SHA1(35b4cec9858225f90acdfa16ed8a3017d0d08327) )
+
+ NEO_SFIX_128K( "222-s1k.s1", CRC(d313687d) SHA1(9ba468a9d582ef76c863f57ad9a0f811f3f08bd9) )
+
+ NEO_BIOS_AUDIO_128K( "222-m1.m1", CRC(7615bc1b) SHA1(b936f7b341f6fe0921b4c41049734684583e3596) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "222-v1.v1", 0x000000, 0x400000, CRC(7d6ba95f) SHA1(03cb4e0d770e0b332b07b64cacef624460b84c78) )
+ ROM_LOAD( "222-v2.v2", 0x400000, 0x400000, CRC(6c33bb5d) SHA1(fd5d4e08a962dd0d22c52c91bad5ec7f23cfb901) )
+ ROM_LOAD( "222-v3.v3", 0x800000, 0x200000, CRC(831ea8c0) SHA1(f2987b7d09bdc4311e972ce8a9ab7ca9802db4db) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "222-c1.c1", 0x0000000, 0x400000, CRC(68f2ed95) SHA1(c0a02df012cd25bcfe341770ea861a80294148cb) )
+ ROM_LOAD16_BYTE( "222-c2.c2", 0x0000001, 0x400000, CRC(a6e9aff0) SHA1(15addca49951ed53fa3c000c8d7cd327d012a620) )
+ ROM_LOAD16_BYTE( "222-c3.c3", 0x0800000, 0x400000, CRC(c91b40f4) SHA1(dcda45e0336204e3e024de08edfd0a3217bc1fdd) )
+ ROM_LOAD16_BYTE( "222-c4.c4", 0x0800001, 0x400000, CRC(359510a4) SHA1(b6642677ebdff7788263266402080272b8a66b15) )
+ ROM_LOAD16_BYTE( "222-c5.c5", 0x1000000, 0x400000, CRC(9cfbb22d) SHA1(789c32f917d0c6e38601cd390a7bf9d803131a4a) )
+ ROM_LOAD16_BYTE( "222-c6.c6", 0x1000001, 0x400000, CRC(685efc32) SHA1(db21ba1c7e3631ce0f1cb6f503ae7e0e043ff71b) )
+ ROM_LOAD16_BYTE( "222-c7.c7", 0x1800000, 0x400000, CRC(d0f86f0d) SHA1(32502d71c2ab1469c492b6b382bf2bb3f85981d9) )
+ ROM_LOAD16_BYTE( "222-c8.c8", 0x1800001, 0x400000, CRC(adfc50e3) SHA1(7d7ee874355b5aa75ad9c9a5c9c3df98d098d85e) )
+ROM_END
+
+/****************************************
+ ID-0223
+ . NGM-223
+ NEO-MVS PROGBK1 / NEO-MVS CHA256B
+ . NGH-223
+ NEO-AEG PROGBK1Y / NEO-AEG CHA256RY
+****************************************/
+
+ROM_START( rbffspec )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "223-p1.p1", 0x000000, 0x100000, CRC(f84a2d1d) SHA1(fc19225d9dbdb6bd0808023ee32c7829f6ffdef6) )
+ ROM_LOAD16_WORD_SWAP( "223-p2.sp2", 0x100000, 0x400000, CRC(addd8f08) SHA1(abaf5b86c8ec915c07ef2d83fce9ad03acaa4817) )
+
+ NEO_SFIX_128K( "223-s1.s1", CRC(7ecd6e8c) SHA1(465455afc4d83cbb118142be4671b2539ffafd79) )
+
+ NEO_BIOS_AUDIO_128K( "223-m1.m1", CRC(3fee46bf) SHA1(e750f85233953853618fcdff980a4721af1710a3) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "223-v1.v1", 0x000000, 0x400000, CRC(76673869) SHA1(78a26afa29f73de552ffabdbf3fc4bf26be8ae9e) )
+ ROM_LOAD( "223-v2.v2", 0x400000, 0x400000, CRC(7a275acd) SHA1(8afe87ce822614262b72a90b371fc79155ac0d0c) )
+ ROM_LOAD( "223-v3.v3", 0x800000, 0x400000, CRC(5a797fd2) SHA1(94958e334f86d4d71059af8138f255b8d97a3b01) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "223-c1.c1", 0x0000000, 0x400000, CRC(ebab05e2) SHA1(0d60a8b631e3a3dcfbfdd7779dee081c9548ec39) )
+ ROM_LOAD16_BYTE( "223-c2.c2", 0x0000001, 0x400000, CRC(641868c3) SHA1(aa1aeb661842276b3326bfa4f1456f75bfecd52e) )
+ ROM_LOAD16_BYTE( "223-c3.c3", 0x0800000, 0x400000, CRC(ca00191f) SHA1(96977febfcc513e1848d7029ff169cdf51104038) )
+ ROM_LOAD16_BYTE( "223-c4.c4", 0x0800001, 0x400000, CRC(1f23d860) SHA1(e18df52f898a51074e07a0b8c6e75873e7cde35e) )
+ ROM_LOAD16_BYTE( "223-c5.c5", 0x1000000, 0x400000, CRC(321e362c) SHA1(39bd189334278f266124c97c6f70995f6f171cea) )
+ ROM_LOAD16_BYTE( "223-c6.c6", 0x1000001, 0x400000, CRC(d8fcef90) SHA1(bbccacb27f1e587bc144fe7ce68bd7b327ceaaee) )
+ ROM_LOAD16_BYTE( "223-c7.c7", 0x1800000, 0x400000, CRC(bc80dd2d) SHA1(086f372015eede88c6c578595fe915e28a589d2f) )
+ ROM_LOAD16_BYTE( "223-c8.c8", 0x1800001, 0x400000, CRC(5ad62102) SHA1(e28cc9840caed2a1a8bd65a03bef05231071040c) )
+ROM_END
+
+ROM_START( rbffspeck ) /* KOREAN VERSION */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "223-p1k.p1", 0x000000, 0x100000, CRC(b78c8391) SHA1(936b356ac135331b10a37bc10882ec2e4f6b400b) )
+ /* Chip label is correct. They used Cart ID 0124 as 0123 was already used by quizdaisk */
+ ROM_LOAD16_WORD_SWAP( "223-p2.sp2", 0x100000, 0x400000, CRC(addd8f08) SHA1(abaf5b86c8ec915c07ef2d83fce9ad03acaa4817) )
+
+ NEO_SFIX_128K( "223-s1.s1", CRC(7ecd6e8c) SHA1(465455afc4d83cbb118142be4671b2539ffafd79) )
+
+ NEO_BIOS_AUDIO_128K( "223-m1.m1", CRC(3fee46bf) SHA1(e750f85233953853618fcdff980a4721af1710a3) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "223-v1.v1", 0x000000, 0x400000, CRC(76673869) SHA1(78a26afa29f73de552ffabdbf3fc4bf26be8ae9e) )
+ ROM_LOAD( "223-v2.v2", 0x400000, 0x400000, CRC(7a275acd) SHA1(8afe87ce822614262b72a90b371fc79155ac0d0c) )
+ ROM_LOAD( "223-v3.v3", 0x800000, 0x400000, CRC(5a797fd2) SHA1(94958e334f86d4d71059af8138f255b8d97a3b01) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "223-c1.c1", 0x0000000, 0x400000, CRC(ebab05e2) SHA1(0d60a8b631e3a3dcfbfdd7779dee081c9548ec39) )
+ ROM_LOAD16_BYTE( "223-c2.c2", 0x0000001, 0x400000, CRC(641868c3) SHA1(aa1aeb661842276b3326bfa4f1456f75bfecd52e) )
+ ROM_LOAD16_BYTE( "223-c3.c3", 0x0800000, 0x400000, CRC(ca00191f) SHA1(96977febfcc513e1848d7029ff169cdf51104038) )
+ ROM_LOAD16_BYTE( "223-c4.c4", 0x0800001, 0x400000, CRC(1f23d860) SHA1(e18df52f898a51074e07a0b8c6e75873e7cde35e) )
+ ROM_LOAD16_BYTE( "223-c5.c5", 0x1000000, 0x400000, CRC(321e362c) SHA1(39bd189334278f266124c97c6f70995f6f171cea) )
+ ROM_LOAD16_BYTE( "223-c6.c6", 0x1000001, 0x400000, CRC(d8fcef90) SHA1(bbccacb27f1e587bc144fe7ce68bd7b327ceaaee) )
+ ROM_LOAD16_BYTE( "223-c7.c7", 0x1800000, 0x400000, CRC(bc80dd2d) SHA1(086f372015eede88c6c578595fe915e28a589d2f) )
+ ROM_LOAD16_BYTE( "223-c8.c8", 0x1800001, 0x400000, CRC(5ad62102) SHA1(e28cc9840caed2a1a8bd65a03bef05231071040c) )
+ROM_END
+
+/****************************************
+ ID-0224
+ . ADM-013
+ NEO-MVS PROGBK1 / NEO-MVS CHA256B
+ . ADH-013
+ NEO-AEG PROGBK1Y / NEO-AEG CHA256RY
+****************************************/
+
+ROM_START( twinspri )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "224-p1.p1", 0x100000, 0x100000, CRC(7697e445) SHA1(5b55ca120f77a931d40719b14e0bfc8cac1d628c) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "224-s1.s1", CRC(eeed5758) SHA1(24e48f396716e145b692468762cf595fb7267873) )
+
+ NEO_BIOS_AUDIO_128K( "224-m1.m1", CRC(364d6f96) SHA1(779b95a6476089b71f48c8368d9043ee1dba9032) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "224-v1.v1", 0x000000, 0x400000, CRC(ff57f088) SHA1(1641989b8aac899dbd68aa2332bcdf9b90b33564) )
+ ROM_LOAD( "224-v2.v2", 0x400000, 0x200000, CRC(7ad26599) SHA1(822030037b7664795bf3d64e1452d0aecc22497e) )
+
+ ROM_REGION( 0xa00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "224-c1.c1", 0x000000, 0x400000, CRC(f7da64ab) SHA1(587a10ed9235c9046a3523fe80feba07764fac9b) )
+ ROM_LOAD16_BYTE( "224-c2.c2", 0x000001, 0x400000, CRC(4c09bbfb) SHA1(e781aafba3bdefb7ed152826f4c3eb441735331c) )
+ ROM_LOAD16_BYTE( "224-c3.c3", 0x800000, 0x100000, CRC(c59e4129) SHA1(93f02d1b4fbb152a9d336494fbff0d7642921de5) )
+ ROM_LOAD16_BYTE( "224-c4.c4", 0x800001, 0x100000, CRC(b5532e53) SHA1(7d896c25ba97f6e5d43c13d4df4ba72964a976ed) )
+ROM_END
+
+/****************************************
+ ID-0225
+ . SUM-225
+ NEO-MVS PROGBK1 / NEO-MVS CHA256B
+ . SUH-225
+****************************************/
+
+ROM_START( wakuwak7 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "225-p1.p1", 0x000000, 0x100000, CRC(b14da766) SHA1(bdffd72ff705fc6b085a4026217bac1c4bc93163) )
+ ROM_LOAD16_WORD_SWAP( "225-p2.sp2", 0x100000, 0x200000, CRC(fe190665) SHA1(739d9a8fc2da34381654d9e291141eacc210ae5c) )
+ /* also found Korean MVS set with ep1 /ep2 on eprom and sp2 on TC5316200 on NEO-MVS PROGBK1; correct chip label for eproms unknown */
+
+ NEO_SFIX_128K( "225-s1.s1", CRC(71c4b4b5) SHA1(9410f13807f01082dc86f2d84051be4bed8e9f7c) )
+
+ NEO_BIOS_AUDIO_128K( "225-m1.m1", CRC(0634bba6) SHA1(153aaf016440500df7a4454f3f2f2911219cb7d8) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "225-v1.v1", 0x000000, 0x400000, CRC(6195c6b4) SHA1(66c06b5904aedb256e3997bbec60f8ab50c6ff0c) )
+ ROM_LOAD( "225-v2.v2", 0x400000, 0x400000, CRC(6159c5fe) SHA1(9015e93416497f1ef877c717afed40f7ecfa42e4) )
+
+ ROM_REGION( 0x1800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "225-c1.c1", 0x0000000, 0x400000, CRC(ee4fea54) SHA1(314b513a52b2cc88cbf2409d1934c357269a8bb2) )
+ ROM_LOAD16_BYTE( "225-c2.c2", 0x0000001, 0x400000, CRC(0c549e2d) SHA1(d8c4626231c92e43d9bf183202553ee2b5c532e6) )
+ ROM_LOAD16_BYTE( "225-c3.c3", 0x0800000, 0x400000, CRC(af0897c0) SHA1(2b8ec19b9dd0bd1f1171fb01b915e9d25ec8c421) )
+ ROM_LOAD16_BYTE( "225-c4.c4", 0x0800001, 0x400000, CRC(4c66527a) SHA1(6c8c9342fad70b456e282b0d52e7ad890e4673d3) )
+ ROM_LOAD16_BYTE( "225-c5.c5", 0x1000000, 0x400000, CRC(8ecea2b5) SHA1(cad51e6e76d8258a78becb6f4096dd061f537494) )
+ ROM_LOAD16_BYTE( "225-c6.c6", 0x1000001, 0x400000, CRC(0eb11a6d) SHA1(c6d4f978ff3ca190a3060ac52bd7347189194f76) )
+ROM_END
+
+/****************************************
+ ID-0226
+ Pair Pair Wars (prototype) 1996 Sunsoft?
+****************************************/
+
+/****************************************
+ ID-0227
+ . NGM-227
+ NEO-MVS PROGBK1 / NEO-MVS CHA256
+ . NGH-227
+ NEO-AEG PROGBK1Y / NEO-AEG CHA256RY
+****************************************/
+
+ROM_START( stakwin2 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "227-p1.p1", 0x100000, 0x100000, CRC(daf101d2) SHA1(96b90f884bae2969ebd8c04aba509928464e2433) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "227-s1.s1", CRC(2a8c4462) SHA1(9155fbb5fee6d46a68d17ea780a7a92565f9aa47) )
+
+ NEO_BIOS_AUDIO_128K( "227-m1.m1", CRC(c8e5e0f9) SHA1(09bb05ae6f09b59b9e4871fae1fc7c3bafd07394) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "227-v1.v1", 0x000000, 0x400000, CRC(b8f24181) SHA1(0a3af88d20ff65b82c58325d32c20b99fc07f7f3) )
+ ROM_LOAD( "227-v2.v2", 0x400000, 0x400000, CRC(ee39e260) SHA1(4ed6802564ce262ebe92c7276424056b70998758) )
+
+ ROM_REGION( 0xc00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "227-c1.c1", 0x0000000, 0x400000, CRC(7d6c2af4) SHA1(e54f0ab15c95d7a6f965b5d8ab28b5445100650b) )
+ ROM_LOAD16_BYTE( "227-c2.c2", 0x0000001, 0x400000, CRC(7e402d39) SHA1(9d3a44f98ddd0b606c8b3efa0c6b9d5a46c0bfeb) )
+ ROM_LOAD16_BYTE( "227-c3.c3", 0x0800000, 0x200000, CRC(93dfd660) SHA1(5b473c556ef919cd7a872351dbb20a636aae32b6) )
+ ROM_LOAD16_BYTE( "227-c4.c4", 0x0800001, 0x200000, CRC(7efea43a) SHA1(3f2b1718fe7be06b6d75ec34badc2de2a3554d3e) )
+ROM_END
+
+/****************************************
+ ID-0228
+ Ghostlop (prototype) 1996 Data East Corp.
+****************************************/
+
+ROM_START( ghostlop ) /* Prototype */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "proto_228-p1.p1", 0x000000, 0x100000, CRC(6033172e) SHA1(f57fb706aa8dd9e5f9e992a5d35c1799578b59f8) )
+
+ NEO_SFIX_128K( "proto_228-s1.s1", CRC(83c24e81) SHA1(585ef209d8bfc23bdccc1f37d8b764eeedfedc1c) )
+
+ NEO_BIOS_AUDIO_128K( "proto_228-m1.m1", CRC(fd833b33) SHA1(ab6c218c42cba821654cbdae154efecb69f844f6) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "proto_228-v1.v1", 0x000000, 0x200000, CRC(c603fce6) SHA1(5a866471d35895b2ae13cbd5d1cb41bf2e72e1b8) )
+
+ ROM_REGION( 0x800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_228-c1.c1", 0x000000, 0x400000, CRC(bfc99efe) SHA1(5cd2545310142080b8286e787cf5b859f627b3db) )
+ ROM_LOAD16_BYTE( "proto_228-c2.c2", 0x000001, 0x400000, CRC(69788082) SHA1(c3ecb42ddcbd9e16d0018a0c3adb56a911d813ca) )
+ROM_END
+
+/****************************************
+ ID-0229
+ King of Fighters '96 CD Collection (CD only)
+****************************************/
+
+
+/* With ID-0230 the product ID code changed from xxM-xxx / xxH-xxx to xxM-xxx0 / xxH-xxx0 */
+
+
+/****************************************
+ ID-0230
+ . NGM-2300
+ NEO-MVS PROGBK1 / NEO-MVS CHA256B
+ . NGH-2300
+ NEO-AEG PROGBK1Y / NEO-AEG CHA256RY
+****************************************/
+
+ROM_START( breakers )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "230-p1.p1", 0x100000, 0x100000, CRC(ed24a6e6) SHA1(3fb77ae696d92d2f9a5d589e08b708545c7cda0a) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "230-s1.s1", CRC(076fb64c) SHA1(c166038128d7004f69932141f83b320a35c2b4ca) )
+
+ NEO_BIOS_AUDIO_128K( "230-m1.m1", CRC(3951a1c1) SHA1(1e6442a7ea82ada9503d71045dd93e12bd05254f) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "230-v1.v1", 0x000000, 0x400000, CRC(7f9ed279) SHA1(acd0558960ec29bfc3e3ee99d00e503bebff8513) )
+ ROM_LOAD( "230-v2.v2", 0x400000, 0x400000, CRC(1d43e420) SHA1(26d09b8b18b4b802dbda4d6f06626c24d0b7c512) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "230-c1.c1", 0x000000, 0x400000, CRC(68d4ae76) SHA1(2e820067f6963669f104bebf19e865fe4127b4dd) )
+ ROM_LOAD16_BYTE( "230-c2.c2", 0x000001, 0x400000, CRC(fdee05cd) SHA1(efc4ffd790953ac7c25d5f045c64a9b49d24b096) )
+ ROM_LOAD16_BYTE( "230-c3.c3", 0x800000, 0x400000, CRC(645077f3) SHA1(0ae74f3b4b3b88f128c6d8c0f35ffa53f5d67ef2) )
+ ROM_LOAD16_BYTE( "230-c4.c4", 0x800001, 0x400000, CRC(63aeb74c) SHA1(9ff6930c0c3d79b46b86356e8565ce4fcd69ac38) )
+ROM_END
+
+/****************************************
+ ID-0231
+ . ??M-2310
+ NEO-MVS PROGBK1 / NEO-MVS CHA42G-3B
+****************************************/
+
+ROM_START( miexchng ) /* MVS ONLY RELEASE */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "231-p1.p1", 0x000000, 0x80000, CRC(61be1810) SHA1(1ab0e11352ca05329c6e3f5657b60e4a227fcbfb) )
+
+ NEO_SFIX_128K( "231-s1.s1", CRC(fe0c0c53) SHA1(54d56d4463db193e504658f4f6f4997a62ae3d95) )
+
+ NEO_BIOS_AUDIO_128K( "231-m1.m1", CRC(de41301b) SHA1(59ce3836ac8f064d56a446c9374f05bcb40fcfd8) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "231-v1.v1", 0x000000, 0x400000, CRC(113fb898) SHA1(9168ba90c4aa969f69eb11ba3f4d76592d81e05a) )
+
+ ROM_REGION( 0x600000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "231-c1.c1", 0x000000, 0x200000, CRC(6c403ba3) SHA1(3830446fbd07d5a6564f9ac68a4bec5ff5b7d5c9) )
+ ROM_LOAD16_BYTE( "231-c2.c2", 0x000001, 0x200000, CRC(554bcd9b) SHA1(e658161618bd41a66f1040be409efdea28020cf6) )
+ ROM_LOAD16_BYTE( "231-c3.c3", 0x400000, 0x100000, CRC(4f6f7a63) SHA1(10935dbc1f52b95979a097b13a114cff18d4d446) )
+ ROM_LOAD16_BYTE( "231-c4.c4", 0x400001, 0x100000, CRC(2e35e71b) SHA1(6f248191c2c60ca1b1b4f2ebf08756e036682144) )
+ROM_END
+
+/****************************************
+ ID-0232
+ . NGM-2320
+ NEO-MVS PROGBK1 / NEO-MVS CHA512Y
+ . NGH-2320
+ NEO-AEG PROGBK1Y / NEO-AEG CHA512Y
+****************************************/
+
+ROM_START( kof97 ) /* MVS VERSION */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232-p1.p1", 0x000000, 0x100000, CRC(7db81ad9) SHA1(8bc42be872fd497eb198ca13bf004852b88eb1dc) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97h ) /* AES VERSION */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232-pg1.p1", 0x000000, 0x100000, CRC(5c2400b7) SHA1(49e23f80c012c62146a1bb8f254a7597823de430) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97k ) /* KOREAN VERSION */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232-p1.p1", 0x000000, 0x100000, CRC(7db81ad9) SHA1(8bc42be872fd497eb198ca13bf004852b88eb1dc) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1k.m1", CRC(bbea9070) SHA1(c26c2e29fe90966dd574838be63f0037ea799aca) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+/****************************************
+ ID-0233
+ . NGM-2330
+ NEO-MVS PROGBK1 / NEO-MVS CHA256
+ . NGH-2330
+ NEO-AEG PROGBK1Y / NEO-AEG CHA256RY
+****************************************/
+
+ROM_START( magdrop3 )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "233-p1.p1", 0x000000, 0x100000, CRC(931e17fa) SHA1(4a95c4b79d0878485ce272e9f4c4f647bec0e070) )
+
+ NEO_SFIX_128K( "233-s1.s1", CRC(7399e68a) SHA1(b535ee56a0f0995f04674e676f6aa636ffad26aa) )
+
+ NEO_BIOS_AUDIO_128K( "233-m1.m1", CRC(5beaf34e) SHA1(2905d26945932cddc2dd3a1dc5abba8aa3baee14) )
+
+ ROM_REGION( 0x480000, "ymsnd", 0 )
+ ROM_LOAD( "233-v1.v1", 0x000000, 0x400000, CRC(58839298) SHA1(18cae7bba997c52780761cbf119c4e4b34397a61) )
+ ROM_LOAD( "233-v2.v2", 0x400000, 0x080000, CRC(d5e30df4) SHA1(bbbc0ff5b975471bd682f85976ac4a93f6d44f2e) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "233-c1.c1", 0x000000, 0x400000, CRC(65e3f4c4) SHA1(a6deb75d802225327f8f1c2733a7f2b47e722e59) )
+ ROM_LOAD16_BYTE( "233-c2.c2", 0x000001, 0x400000, CRC(35dea6c9) SHA1(ea133bf947f950236f49d0ae0d1a9af3bc1a9a50) )
+ ROM_LOAD16_BYTE( "233-c3.c3", 0x800000, 0x400000, CRC(0ba2c502) SHA1(8e0f1e553aef04758aaaa14d5115f0ecace4391e) )
+ ROM_LOAD16_BYTE( "233-c4.c4", 0x800001, 0x400000, CRC(70dbbd6d) SHA1(32dd6a04c6329e89f4878e7a56f0d172a6388eea) )
+ROM_END
+
+/****************************************
+ ID-0234
+ . NGM-2340
+ NEO-MVS PROGBK1 / NEO-MVS CHA512Y
+ . NGH-2340
+ NEO-AEG PROGBK1Y / NEO-AEG CHA512Y
+****************************************/
+
+ROM_START( lastblad ) /* MVS VERSION */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "234-p1.p1", 0x000000, 0x100000, CRC(e123a5a3) SHA1(a3ddabc00feeb54272b145246612ad4632b0e413) )
+ ROM_LOAD16_WORD_SWAP( "234-p2.sp2", 0x100000, 0x400000, CRC(0fdc289e) SHA1(1ff31c0b0f4f9ddbedaf4bcf927faaae81892ec7) )
+ /* also found sets with p1 / sp2 / ep1 / ep2 / m1 on eprom with sticker */
+ /* chip labels for eproms are 0234-P1, 0234-SP2, 0234-EP1, 0234-EP2 and 0234-M1 */
+
+ NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) )
+
+ NEO_BIOS_AUDIO_128K( "234-m1.m1", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "234-v1.v1", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) )
+ ROM_LOAD( "234-v2.v2", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) )
+ ROM_LOAD( "234-v3.v3", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) )
+ ROM_LOAD( "234-v4.v4", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20a1f4833e5e29ba0073c1712d7a17ab7a2a035c) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "234-c1.c1", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) )
+ ROM_LOAD16_BYTE( "234-c2.c2", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) )
+ ROM_LOAD16_BYTE( "234-c3.c3", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) )
+ ROM_LOAD16_BYTE( "234-c4.c4", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) )
+ ROM_LOAD16_BYTE( "234-c5.c5", 0x2000000, 0x400000, CRC(1ba80cee) SHA1(0c59057183b5279b747e73213b4cd3c6d7ad9eb1) )
+ ROM_LOAD16_BYTE( "234-c6.c6", 0x2000001, 0x400000, CRC(beafd091) SHA1(55df9cc128eb0f00856de3996c946e3efe8f09a5) )
+ROM_END
+
+ROM_START( lastbladh ) /* AES VERSION */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "234-pg1.p1", 0x000000, 0x100000, CRC(cd01c06d) SHA1(d66142571afe07c6191b52f319f1bc8bc8541c14) )
+ ROM_LOAD16_WORD_SWAP( "234-p2.sp2", 0x100000, 0x400000, CRC(0fdc289e) SHA1(1ff31c0b0f4f9ddbedaf4bcf927faaae81892ec7) )
+
+ NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) )
+
+ NEO_BIOS_AUDIO_128K( "234-m1.m1", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "234-v1.v1", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) )
+ ROM_LOAD( "234-v2.v2", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) )
+ ROM_LOAD( "234-v3.v3", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) )
+ ROM_LOAD( "234-v4.v4", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20a1f4833e5e29ba0073c1712d7a17ab7a2a035c) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "234-c1.c1", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) )
+ ROM_LOAD16_BYTE( "234-c2.c2", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) )
+ ROM_LOAD16_BYTE( "234-c3.c3", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) )
+ ROM_LOAD16_BYTE( "234-c4.c4", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) )
+ ROM_LOAD16_BYTE( "234-c5.c5", 0x2000000, 0x400000, CRC(1ba80cee) SHA1(0c59057183b5279b747e73213b4cd3c6d7ad9eb1) )
+ ROM_LOAD16_BYTE( "234-c6.c6", 0x2000001, 0x400000, CRC(beafd091) SHA1(55df9cc128eb0f00856de3996c946e3efe8f09a5) )
+ROM_END
+
+ROM_START( lastsold ) /* KOREAN VERSION */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "134-p1k.p1", 0x000000, 0x100000, CRC(906f3065) SHA1(25167665f1b8e82e13f7fcf4d0e3c54a925c2a58) )
+ ROM_LOAD16_WORD_SWAP( "234-p2.sp2", 0x100000, 0x400000, CRC(0fdc289e) SHA1(1ff31c0b0f4f9ddbedaf4bcf927faaae81892ec7) )
+
+ NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) )
+
+ NEO_BIOS_AUDIO_128K( "234-m1.m1", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "234-v1.v1", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) )
+ ROM_LOAD( "234-v2.v2", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) )
+ ROM_LOAD( "234-v3.v3", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) )
+ ROM_LOAD( "234-v4.v4", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20a1f4833e5e29ba0073c1712d7a17ab7a2a035c) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "234-c1.c1", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) )
+ ROM_LOAD16_BYTE( "234-c2.c2", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) )
+ ROM_LOAD16_BYTE( "234-c3.c3", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) )
+ ROM_LOAD16_BYTE( "234-c4.c4", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) )
+ ROM_LOAD16_BYTE( "234-c5.c5", 0x2000000, 0x400000, CRC(1ba80cee) SHA1(0c59057183b5279b747e73213b4cd3c6d7ad9eb1) )
+ ROM_LOAD16_BYTE( "234-c6.c6", 0x2000001, 0x400000, CRC(beafd091) SHA1(55df9cc128eb0f00856de3996c946e3efe8f09a5) )
+ROM_END
+
+/****************************************
+ ID-0235
+ . ??M-2350
+ NEO-MVS PROG 4096 / NEO-MVS CHA 42G-2
+****************************************/
+
+ROM_START( puzzldpr ) /* MVS ONLY RELEASE */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "235-p1.p1", 0x000000, 0x080000, CRC(afed5de2) SHA1(a5d82c6dbe687505e8c8d7339908da45cd379a0b) )
+
+ NEO_SFIX_128K( "235-s1.s1", CRC(3b13a22f) SHA1(4506fc340d9658a50fa415676564f10bbfba2703) )
+
+ NEO_BIOS_AUDIO_128K( "202-m1.m1", CRC(9c0291ea) SHA1(3fa67c62acba79be6b3a98cc1601e45569fa11ae) )
+
+ ROM_REGION( 0x080000, "ymsnd", 0 )
+ ROM_LOAD( "202-v1.v1", 0x000000, 0x080000, CRC(debeb8fb) SHA1(49a3d3578c087f1a0050168571ef8d1b08c5dc05) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "202-c1.c1", 0x000000, 0x100000, CRC(cc0095ef) SHA1(3d86f455e6db10a2449b775dc386f1826ba3b62e) )
+ ROM_LOAD16_BYTE( "202-c2.c2", 0x000001, 0x100000, CRC(42371307) SHA1(df794f989e2883634bf7ffeea48d6bc3854529af) )
+ROM_END
+
+/****************************************
+ ID-0236
+ . ??M-2360
+ NEO-MVS PROGBK1 / NEO-MVS CHA512Y
+****************************************/
+
+ROM_START( irrmaze ) /* MVS ONLY RELEASE */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "236-p1.p1", 0x100000, 0x100000, CRC(4c2ff660) SHA1(4a0cbd09044648ff9ec67723729f16d422c34bda) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "236-s1.s1", CRC(5d1ca640) SHA1(40a9668a1742a44597a07ce72273d17119815637) )
+
+ ROM_REGION16_BE( 0x20000, "mainbios", 0 )
+ /* special BIOS with trackball support, we only have one Irritating Maze bios and thats asia */
+ ROM_LOAD16_WORD_SWAP("236-bios.sp1", 0x00000, 0x020000, CRC(853e6b96) SHA1(de369cb4a7df147b55168fa7aaf0b98c753b735e) )
+
+ ROM_REGION( 0x30000, "audiocpu", 0 )
+ ROM_LOAD( "236-m1.m1", 0x00000, 0x20000, CRC(880a1abd) SHA1(905afa157aba700e798243b842792e50729b19a0) )
+ ROM_RELOAD( 0x10000, 0x20000 )
+
+ ROM_REGION( 0x300000, "ymsnd", 0 )
+ ROM_LOAD( "236-v1.v1", 0x000000, 0x200000, CRC(5f89c3b4) SHA1(dc8fd561cf8dfdd41696dcf14ea8d2d0ac4eec4b) )
+ ROM_LOAD( "236-v2.v2", 0x200000, 0x100000, CRC(72e3add7) SHA1(dc49f05274693255416d2e41ecc088027b798eb9) )
+
+ ROM_REGION( 0x0800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "236-c1.c1", 0x000000, 0x400000, CRC(c1d47902) SHA1(727001c34f979226fc8f581113ce2aaac4fc0d42) )
+ ROM_LOAD16_BYTE( "236-c2.c2", 0x000001, 0x400000, CRC(e15f972e) SHA1(6a329559c57a67be73a6733513b59e9e6c8d61cc) )
+ROM_END
+
+/****************************************
+ ID-0237
+ . ??M-2370
+ NEO-MVS PROG 4096 / NEO-MVS CHA42G-3B
+****************************************/
+
+ROM_START( popbounc ) /* MVS ONLY RELEASE */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "237-p1.p1", 0x000000, 0x100000, CRC(be96e44f) SHA1(43679da8664fbb491103a1108040ddf94d59fc2b) )
+
+ NEO_SFIX_128K( "237-s1.s1", CRC(b61cf595) SHA1(b14f8b78af7c634d41cf34d36b11b116e61f7342) )
+
+ NEO_BIOS_AUDIO_128K( "237-m1.m1", CRC(d4c946dd) SHA1(6ca09040b5db8d89511d627954c783154d58ab01) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "237-v1.v1", 0x000000, 0x200000, CRC(edcb1beb) SHA1(62f086b9968b366b59276ee4ae3c32c4d76fc6ce) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "237-c1.c1", 0x000000, 0x200000, CRC(eda42d66) SHA1(2735538fcb9dc0c16e043a8728c8b642650189f4) )
+ ROM_LOAD16_BYTE( "237-c2.c2", 0x000001, 0x200000, CRC(5e633c65) SHA1(9a82107caf027317c173c1c1ef676f0fdeea79b2) )
+ROM_END
+
+/****************************************
+ ID-0238
+ . ??M-2380
+ NEO-MVS PROGBK1 / NEO-MVS CHA256
+****************************************/
+
+ROM_START( shocktro ) /* MVS ONLY RELEASE */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "238-p1.p1", 0x000000, 0x100000, CRC(5677456f) SHA1(f76169fa5c90871d65e2a16fd1bb036c90533ac8) )
+ ROM_LOAD16_WORD_SWAP( "238-p2.sp2", 0x100000, 0x400000, CRC(5b4a09c5) SHA1(de04036cba2da4bb2da73d902d1822b82b4f67a9) )
+
+ NEO_SFIX_128K( "238-s1.s1", CRC(1f95cedb) SHA1(adfa74868147fd260481e4c387d254d3b6de83f4) )
+
+ NEO_BIOS_AUDIO_128K( "238-m1.m1", CRC(075b9518) SHA1(ac21b88a860b9572bf24432b4cadcc96d108055d) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "238-v1.v1", 0x000000, 0x400000, CRC(260c0bef) SHA1(9c4f80ce4bb205afed11bb8b8926d20748eb5512) )
+ ROM_LOAD( "238-v2.v2", 0x400000, 0x200000, CRC(4ad7d59e) SHA1(bfdf2684f7f38af4e75ad0068ff9463dc2601598) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "238-c1.c1", 0x0000000, 0x400000, CRC(90c6a181) SHA1(a381bc8449718814ff12b3a4f7fc4d1bb7ea1631) )
+ ROM_LOAD16_BYTE( "238-c2.c2", 0x0000001, 0x400000, CRC(888720f0) SHA1(cd4d65df8d3ef0dbcca2b7f3f803f45c457f5beb) )
+ ROM_LOAD16_BYTE( "238-c3.c3", 0x0800000, 0x400000, CRC(2c393aa3) SHA1(1cd7cebe5861a2d65f1d6615dd7752162e573a02) )
+ ROM_LOAD16_BYTE( "238-c4.c4", 0x0800001, 0x400000, CRC(b9e909eb) SHA1(33cc9b2d13e4ed2ab6040ff582a53dc9bca402e0) )
+ ROM_LOAD16_BYTE( "238-c5.c5", 0x1000000, 0x400000, CRC(c22c68eb) SHA1(a4b04118b1b1909d3b76be8d9ee5d97db6120600) )
+ ROM_LOAD16_BYTE( "238-c6.c6", 0x1000001, 0x400000, CRC(119323cd) SHA1(05a9d4b1fb4cc963b25452ff6f81e296e0c0b2a1) )
+ ROM_LOAD16_BYTE( "238-c7.c7", 0x1800000, 0x400000, CRC(a72ce7ed) SHA1(05b151554bd7af09ccf554a17bc3c75a0512faaf) )
+ ROM_LOAD16_BYTE( "238-c8.c8", 0x1800001, 0x400000, CRC(1c7c2efb) SHA1(b055ee43cbdaf9a3cb19e4e1f9dd2c40bde69d70) )
+ROM_END
+
+ROM_START( shocktroa ) /* MVS ONLY RELEASE */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "238-pg1.p1", 0x000000, 0x100000, CRC(efedf8dc) SHA1(f638df9bf7aa7d514ee2bccfc7f2adbf39ca83fc) )
+ ROM_LOAD16_WORD_SWAP( "238-p2.sp2", 0x100000, 0x400000, CRC(5b4a09c5) SHA1(de04036cba2da4bb2da73d902d1822b82b4f67a9) )
+
+ NEO_SFIX_128K( "238-s1.s1", CRC(1f95cedb) SHA1(adfa74868147fd260481e4c387d254d3b6de83f4) )
+
+ NEO_BIOS_AUDIO_128K( "238-m1.m1", CRC(075b9518) SHA1(ac21b88a860b9572bf24432b4cadcc96d108055d) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "238-v1.v1", 0x000000, 0x400000, CRC(260c0bef) SHA1(9c4f80ce4bb205afed11bb8b8926d20748eb5512) )
+ ROM_LOAD( "238-v2.v2", 0x400000, 0x200000, CRC(4ad7d59e) SHA1(bfdf2684f7f38af4e75ad0068ff9463dc2601598) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "238-c1.c1", 0x0000000, 0x400000, CRC(90c6a181) SHA1(a381bc8449718814ff12b3a4f7fc4d1bb7ea1631) )
+ ROM_LOAD16_BYTE( "238-c2.c2", 0x0000001, 0x400000, CRC(888720f0) SHA1(cd4d65df8d3ef0dbcca2b7f3f803f45c457f5beb) )
+ ROM_LOAD16_BYTE( "238-c3.c3", 0x0800000, 0x400000, CRC(2c393aa3) SHA1(1cd7cebe5861a2d65f1d6615dd7752162e573a02) )
+ ROM_LOAD16_BYTE( "238-c4.c4", 0x0800001, 0x400000, CRC(b9e909eb) SHA1(33cc9b2d13e4ed2ab6040ff582a53dc9bca402e0) )
+ ROM_LOAD16_BYTE( "238-c5.c5", 0x1000000, 0x400000, CRC(c22c68eb) SHA1(a4b04118b1b1909d3b76be8d9ee5d97db6120600) )
+ ROM_LOAD16_BYTE( "238-c6.c6", 0x1000001, 0x400000, CRC(119323cd) SHA1(05a9d4b1fb4cc963b25452ff6f81e296e0c0b2a1) )
+ ROM_LOAD16_BYTE( "238-c7.c7", 0x1800000, 0x400000, CRC(a72ce7ed) SHA1(05b151554bd7af09ccf554a17bc3c75a0512faaf) )
+ ROM_LOAD16_BYTE( "238-c8.c8", 0x1800001, 0x400000, CRC(1c7c2efb) SHA1(b055ee43cbdaf9a3cb19e4e1f9dd2c40bde69d70) )
+ROM_END
+
+/****************************************
+ ID-0239
+ . NGM-2390
+ NEO-MVS PROGBK1 / NEO-MVS CHA512Y
+ . NGH-2390
+ NEO-AEG PROGBK1Y / NEO-AEG CHA512Y
+****************************************/
+
+ROM_START( blazstar )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "239-p1.p1", 0x000000, 0x100000, CRC(183682f8) SHA1(dcee1c2cf4a991ca1f9f2b40c4a738f21682807b) )
+ ROM_LOAD16_WORD_SWAP( "239-p2.sp2", 0x100000, 0x200000, CRC(9a9f4154) SHA1(f8805453d0995c8fa16cd9accfb7a990071ca630) )
+
+ NEO_SFIX_128K( "239-s1.s1", CRC(d56cb498) SHA1(420ce56431dc7f3f7de84fcbc8c0a17b5eab205e) )
+
+ NEO_BIOS_AUDIO_128K( "239-m1.m1", CRC(d31a3aea) SHA1(e23abfeb23052f0358edcf2c83401025fe632511) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "239-v1.v1", 0x000000, 0x400000, CRC(1b8d5bf7) SHA1(67fc1f7e36e92a89cd1d415eb31a2892f57b0d04) )
+ ROM_LOAD( "239-v2.v2", 0x400000, 0x400000, CRC(74cf0a70) SHA1(b00451a2a30de2517ae3eca35eb1fe985b950eb8) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "239-c1.c1", 0x0000000, 0x400000, CRC(84f6d584) SHA1(ff36db8504611b0d8d942d1e24823ff71e4aeb37) )
+ ROM_LOAD16_BYTE( "239-c2.c2", 0x0000001, 0x400000, CRC(05a0cb22) SHA1(4abe03e7f3a86f277131d413a3151c7b9c3646c8) )
+ ROM_LOAD16_BYTE( "239-c3.c3", 0x0800000, 0x400000, CRC(5fb69c9e) SHA1(77b96518d8ad8ad120537e0f8ba65d69d1c33566) )
+ ROM_LOAD16_BYTE( "239-c4.c4", 0x0800001, 0x400000, CRC(0be028c4) SHA1(d3f8b37786ca7838c3525895a7f2b49afc8530d4) )
+ ROM_LOAD16_BYTE( "239-c5.c5", 0x1000000, 0x400000, CRC(74bae5f8) SHA1(812c9a31f0721c2971a316b084ce69337dbe3747) )
+ ROM_LOAD16_BYTE( "239-c6.c6", 0x1000001, 0x400000, CRC(4e0700d2) SHA1(cd059fb713c403208923c17e1e8ef02fcfd2fe8d) )
+ ROM_LOAD16_BYTE( "239-c7.c7", 0x1800000, 0x400000, CRC(010ff4fd) SHA1(2571d406442f007a7458d8ccb0939a9201c9c9bf) )
+ ROM_LOAD16_BYTE( "239-c8.c8", 0x1800001, 0x400000, CRC(db60460e) SHA1(a5cb27c0983c8b400d96fd0828ef0639a66d4dba) )
+ROM_END
+
+/****************************************
+ ID-0240
+ . NGM-2400
+ NEO-MVS PROGBK1 / NEO-MVS CHA512Y
+ . NGH-2400
+ NEO-AEG PROGBK1Y / NEO-AEG CHA512Y
+****************************************/
+
+ROM_START( rbff2 ) /* MVS VERSION */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "240-p1.p1", 0x000000, 0x100000, CRC(80e41205) SHA1(8f83eb8ff54be4ec40f8a0dd2cbe56c54908d00a) )
+ ROM_LOAD16_WORD_SWAP( "240-p2.sp2", 0x100000, 0x400000, CRC(960aa88d) SHA1(3d9e785891871af90313f178dca2724633406674) )
+
+ NEO_SFIX_128K( "240-s1.s1", CRC(da3b40de) SHA1(e6bf74e057ac6fe1f249a7547f13ba7fbc694561) )
+
+ NEO_BIOS_AUDIO_256K( "240-m1.m1", CRC(ed482791) SHA1(1f54a45967cb7842c33aa24be322c9f33ff75ac3) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "240-v1.v1", 0x000000, 0x400000, CRC(f796265a) SHA1(736dff37eb91fc856b4d189249fb0de9b6c0813a) )
+ ROM_LOAD( "240-v2.v2", 0x400000, 0x400000, CRC(2cb3f3bb) SHA1(697e677890892f4b028c9a27c66809ca0a8a9b18) )
+ ROM_LOAD( "240-v3.v3", 0x800000, 0x400000, CRC(8fe1367a) SHA1(093d7a4ac2b54ad7ffb2dc316fe29415f7a99535) )
+ ROM_LOAD( "240-v4.v4", 0xc00000, 0x200000, CRC(996704d8) SHA1(0bf7a1d0660199dedf3c25be757eeab75cc6147e) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "240-c1.c1", 0x0000000, 0x800000, CRC(effac504) SHA1(e36a96e7369b02c7e839b5abf3c6799453ba1927) )
+ ROM_LOAD16_BYTE( "240-c2.c2", 0x0000001, 0x800000, CRC(ed182d44) SHA1(a9fc0a3a786bf067c129ec7220df65953dff804f) )
+ ROM_LOAD16_BYTE( "240-c3.c3", 0x1000000, 0x800000, CRC(22e0330a) SHA1(0fe7f6a8aeba7f17dbb278e85003969ff10d3cd2) )
+ ROM_LOAD16_BYTE( "240-c4.c4", 0x1000001, 0x800000, CRC(c19a07eb) SHA1(139eac8b51cadf328dd42d8109f4e2463f57230c) )
+ ROM_LOAD16_BYTE( "240-c5.c5", 0x2000000, 0x800000, CRC(244dff5a) SHA1(156548156d3ceaa808d0053d0749af2526a3943e) )
+ ROM_LOAD16_BYTE( "240-c6.c6", 0x2000001, 0x800000, CRC(4609e507) SHA1(bb17f50a377dddb77c1eeda5944a7bcbf0cca5f7) )
+ROM_END
+
+ROM_START( rbff2h ) /* AES VERSION */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "240-pg1.p1", 0x000000, 0x100000, CRC(b6969780) SHA1(e3373d18e0f0724d69efb8024a27cca121f1b5b2) )
+ ROM_LOAD16_WORD_SWAP( "240-p2.sp2", 0x100000, 0x400000, CRC(960aa88d) SHA1(3d9e785891871af90313f178dca2724633406674) )
+
+ NEO_SFIX_128K( "240-s1.s1", CRC(da3b40de) SHA1(e6bf74e057ac6fe1f249a7547f13ba7fbc694561) )
+
+ NEO_BIOS_AUDIO_256K( "240-m1.m1", CRC(ed482791) SHA1(1f54a45967cb7842c33aa24be322c9f33ff75ac3) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "240-v1.v1", 0x000000, 0x400000, CRC(f796265a) SHA1(736dff37eb91fc856b4d189249fb0de9b6c0813a) )
+ ROM_LOAD( "240-v2.v2", 0x400000, 0x400000, CRC(2cb3f3bb) SHA1(697e677890892f4b028c9a27c66809ca0a8a9b18) )
+ ROM_LOAD( "240-v3.v3", 0x800000, 0x400000, CRC(8fe1367a) SHA1(093d7a4ac2b54ad7ffb2dc316fe29415f7a99535) )
+ ROM_LOAD( "240-v4.v4", 0xc00000, 0x200000, CRC(996704d8) SHA1(0bf7a1d0660199dedf3c25be757eeab75cc6147e) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "240-c1.c1", 0x0000000, 0x800000, CRC(effac504) SHA1(e36a96e7369b02c7e839b5abf3c6799453ba1927) )
+ ROM_LOAD16_BYTE( "240-c2.c2", 0x0000001, 0x800000, CRC(ed182d44) SHA1(a9fc0a3a786bf067c129ec7220df65953dff804f) )
+ ROM_LOAD16_BYTE( "240-c3.c3", 0x1000000, 0x800000, CRC(22e0330a) SHA1(0fe7f6a8aeba7f17dbb278e85003969ff10d3cd2) )
+ ROM_LOAD16_BYTE( "240-c4.c4", 0x1000001, 0x800000, CRC(c19a07eb) SHA1(139eac8b51cadf328dd42d8109f4e2463f57230c) )
+ ROM_LOAD16_BYTE( "240-c5.c5", 0x2000000, 0x800000, CRC(244dff5a) SHA1(156548156d3ceaa808d0053d0749af2526a3943e) )
+ ROM_LOAD16_BYTE( "240-c6.c6", 0x2000001, 0x800000, CRC(4609e507) SHA1(bb17f50a377dddb77c1eeda5944a7bcbf0cca5f7) )
+ROM_END
+
+ROM_START( rbff2k ) /* KOREAN VERSION */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "140-p1k.p1", 0x000000, 0x100000, CRC(965edee1) SHA1(7f4b947b19ccfee32fc73e4fd89645eb313b5c77) )
+ ROM_LOAD16_WORD_SWAP( "240-p2.sp2", 0x100000, 0x400000, CRC(960aa88d) SHA1(3d9e785891871af90313f178dca2724633406674) )
+
+ NEO_SFIX_128K( "240-s1.s1", CRC(da3b40de) SHA1(e6bf74e057ac6fe1f249a7547f13ba7fbc694561) )
+
+ NEO_BIOS_AUDIO_256K( "240-m1.m1", CRC(ed482791) SHA1(1f54a45967cb7842c33aa24be322c9f33ff75ac3) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "240-v1.v1", 0x000000, 0x400000, CRC(f796265a) SHA1(736dff37eb91fc856b4d189249fb0de9b6c0813a) )
+ ROM_LOAD( "240-v2.v2", 0x400000, 0x400000, CRC(2cb3f3bb) SHA1(697e677890892f4b028c9a27c66809ca0a8a9b18) )
+ ROM_LOAD( "240-v3.v3", 0x800000, 0x400000, CRC(8fe1367a) SHA1(093d7a4ac2b54ad7ffb2dc316fe29415f7a99535) )
+ ROM_LOAD( "240-v4.v4", 0xc00000, 0x200000, CRC(996704d8) SHA1(0bf7a1d0660199dedf3c25be757eeab75cc6147e) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "240-c1.c1", 0x0000000, 0x800000, CRC(effac504) SHA1(e36a96e7369b02c7e839b5abf3c6799453ba1927) )
+ ROM_LOAD16_BYTE( "240-c2.c2", 0x0000001, 0x800000, CRC(ed182d44) SHA1(a9fc0a3a786bf067c129ec7220df65953dff804f) )
+ ROM_LOAD16_BYTE( "240-c3.c3", 0x1000000, 0x800000, CRC(22e0330a) SHA1(0fe7f6a8aeba7f17dbb278e85003969ff10d3cd2) )
+ ROM_LOAD16_BYTE( "240-c4.c4", 0x1000001, 0x800000, CRC(c19a07eb) SHA1(139eac8b51cadf328dd42d8109f4e2463f57230c) )
+ ROM_LOAD16_BYTE( "240-c5.c5", 0x2000000, 0x800000, CRC(244dff5a) SHA1(156548156d3ceaa808d0053d0749af2526a3943e) )
+ ROM_LOAD16_BYTE( "240-c6.c6", 0x2000001, 0x800000, CRC(4609e507) SHA1(bb17f50a377dddb77c1eeda5944a7bcbf0cca5f7) )
+ROM_END
+
+/****************************************
+ ID-0241
+ . NGM-2410
+ NEO-MVS PROGBK1 / NEO-MVS CHA512Y
+ NEO-MVS PROGBK1 / NEO-MVS CHA256
+ . NGH-2410
+ NEO-AEG PROGBK1Y / NEO-AEG CHA512Y
+****************************************/
+
+ROM_START( mslug2 ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "241-p1.p1", 0x000000, 0x100000, CRC(2a53c5da) SHA1(5a6aba482cac588a6c2c51179c95b487c6e11899) )
+ ROM_LOAD16_WORD_SWAP( "241-p2.sp2", 0x100000, 0x200000, CRC(38883f44) SHA1(fcf34b8c6e37774741542393b963635412484a27) )
+
+ NEO_SFIX_128K( "241-s1.s1", CRC(f3d32f0f) SHA1(2dc38b7dfd3ff14f64d5c0733c510b6bb8c692d0) )
+
+ NEO_BIOS_AUDIO_128K( "241-m1.m1", CRC(94520ebd) SHA1(f8a1551cebcb91e416f30f50581feed7f72899e9) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "241-v1.v1", 0x000000, 0x400000, CRC(99ec20e8) SHA1(80597707f1fe115eed1941bb0701fc00790ad504) )
+ ROM_LOAD( "241-v2.v2", 0x400000, 0x400000, CRC(ecb16799) SHA1(b4b4ddc680836ed55942c66d7dfe756314e02211) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ /* Different layout with 8xC (16 mbit) also exists; naming sheme 241-Cx */
+ ROM_LOAD16_BYTE( "241-c1.c1", 0x0000000, 0x800000, CRC(394b5e0d) SHA1(4549926f5054ee6aa7689cf920be0327e3908a50) )
+ ROM_LOAD16_BYTE( "241-c2.c2", 0x0000001, 0x800000, CRC(e5806221) SHA1(1e5475cfab129c77acc610f09369ca42ba5aafa5) )
+ ROM_LOAD16_BYTE( "241-c3.c3", 0x1000000, 0x800000, CRC(9f6bfa6f) SHA1(a4319b48004e723f81a980887678e3e296049a53) )
+ ROM_LOAD16_BYTE( "241-c4.c4", 0x1000001, 0x800000, CRC(7d3e306f) SHA1(1499316fb381775218d897b81a6a0c3465d1a37c) )
+ROM_END
+
+/****************************************
+ ID-0242
+ . NGM-2420
+ NEO-MVS PROGSF1 (1998.6.17) (protected board) / NEO-MVS CHA512Y
+ NEO-MVS PROGSF1E (1998.6.18) (protected board) / NEO-MVS CHA512Y
+ NEO-MVS PROGBK1 / NEO-MVS CHA512Y
+ . NGH-2420
+ NEO-AEG PROGBK1Y / NEO-AEG CHA512Y
+****************************************/
+
+ROM_START( kof98 ) /* encrypted code + protection */ /* MVS VERSION */
+ /* This set uses NEO-MVS PROGSF1 board */
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242-p1.p1", 0x000000, 0x200000, CRC(8893df89) SHA1(0452828785110601c65f667209fc2d2926cd3751) )
+ ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x200000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98a ) /* encrypted code + protection */ /* MVS VERSION */
+ /* This set uses NEO-MVS PROGSF1E board; same rom data as in kof98 is used */
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242-p1.p1", 0x000000, 0x200000, CRC(8893df89) SHA1(0452828785110601c65f667209fc2d2926cd3751) )
+ ROM_LOAD16_WORD_SWAP( "242-ep1.ep1", 0x200000, 0x200000, CRC(3f74a000) SHA1(e887e0ac232683bd28703e08c4055fd0ea36402c) )
+ ROM_LOAD16_WORD_SWAP( "242-ep2.ep2", 0x400000, 0x200000, CRC(6e474841) SHA1(0ce401277f9c53435ea00b930efe361c8d25a7d9) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98k ) /* encrypted code + protection, only z80 rom is different to kof98 */ /* KOREAN VERSION */
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242-p1.p1", 0x000000, 0x200000, CRC(8893df89) SHA1(0452828785110601c65f667209fc2d2926cd3751) )
+ ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x200000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ /* Correct chip label */
+ NEO_BIOS_AUDIO_256K( "242-m1k.m1", CRC(ce12da0c) SHA1(e7c01dae2852d543d1a58d55735239f6a5aa05a5) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98ka ) /* encrypted code + protection, only z80 rom is different to kof98 */ /* KOREAN VERSION */
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242-p1.p1", 0x000000, 0x200000, CRC(8893df89) SHA1(0452828785110601c65f667209fc2d2926cd3751) )
+ ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x200000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ /* Correct chip label */
+ NEO_BIOS_AUDIO_256K( "242-mg1k.m1", CRC(ce9fb07c) SHA1(631d995f1291dd803fb069f3b25e7b9ed30d8649) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98h ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242-pn1.p1", 0x000000, 0x100000, CRC(61ac868a) SHA1(26577264aa72d6af272952a876fcd3775f53e3fa) )
+ ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+/****************************************
+ ID-0243
+ . NGM-2430
+ NEO-MVS PROGBK1 / NEO-MVS CHA512Y
+ . NGH-2430
+ NEO-AEG PROGBK1Y / NEO-AEG CHA512Y
+****************************************/
+
+ROM_START( lastbld2 ) /* MVS AND AES VERSION */ /* later revision */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "243-pg1.p1", 0x000000, 0x100000, CRC(af1e6554) SHA1(bd8526f60c2472937728a5d933fbd19d899f2cba) )
+ ROM_LOAD16_WORD_SWAP( "243-pg2.sp2", 0x100000, 0x400000, CRC(add4a30b) SHA1(7db62564db49fe0218cbb35b119d62582a24d658) )
+
+ NEO_SFIX_128K( "243-s1.s1", CRC(c9cd2298) SHA1(a9a18b5347f9dbe29a2ccb63fd4c8fd19537bf8b) )
+
+ NEO_BIOS_AUDIO_128K( "243-m1.m1", CRC(acf12d10) SHA1(6e6b98cc1fa44f24a5168877559b0055e6957b60) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "243-v1.v1", 0x000000, 0x400000, CRC(f7ee6fbb) SHA1(55137bcabeeb590e40a9b8a7c07dd106e4d12a90) )
+ ROM_LOAD( "243-v2.v2", 0x400000, 0x400000, CRC(aa9e4df6) SHA1(a0b91f63e2552a8ad9e0d1af00e2c38288637161) )
+ ROM_LOAD( "243-v3.v3", 0x800000, 0x400000, CRC(4ac750b2) SHA1(585a154acc67bd84ea5b944686b78ed082b768d9) )
+ ROM_LOAD( "243-v4.v4", 0xc00000, 0x400000, CRC(f5c64ba6) SHA1(2eac455def8c27090862cc042f65a3a8aad88283) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "243-c1.c1", 0x0000000, 0x800000, CRC(5839444d) SHA1(0616921c4cce20422563578bd0e806d359508599) )
+ ROM_LOAD16_BYTE( "243-c2.c2", 0x0000001, 0x800000, CRC(dd087428) SHA1(ca27fdb60425664956a18c021ea465f452fb1527) )
+ ROM_LOAD16_BYTE( "243-c3.c3", 0x1000000, 0x800000, CRC(6054cbe0) SHA1(ec2f65e9c930250ee25fd064ee5ae76a7a9c61d9) )
+ ROM_LOAD16_BYTE( "243-c4.c4", 0x1000001, 0x800000, CRC(8bd2a9d2) SHA1(0935df65cd2b0891a708bcc0f1c188148058d4b5) )
+ ROM_LOAD16_BYTE( "243-c5.c5", 0x2000000, 0x800000, CRC(6a503dcf) SHA1(23241b16d7e20f923d41186b29487ab922c7f530) )
+ ROM_LOAD16_BYTE( "243-c6.c6", 0x2000001, 0x800000, CRC(ec9c36d0) SHA1(e145e9e359000dda6e1dfe95a996bc6d29cfca21) )
+ROM_END
+
+/****************************************
+ ID-0244
+ . ??M-2440
+ NEO-MVS PROGBK1 / NEO-MVS CHA512Y
+ . ??H-2440
+****************************************/
+
+ROM_START( neocup98 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "244-p1.p1", 0x100000, 0x100000, CRC(f8fdb7a5) SHA1(f34ee5d1c24e70427d05ef488f46906dbd9f9950) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "244-s1.s1", CRC(9bddb697) SHA1(2f479bcd5a433201168792a578de3057252d649f) )
+
+ NEO_BIOS_AUDIO_128K( "244-m1.m1", CRC(a701b276) SHA1(055550ebc650835bcf8ea4457b2c91bd73e21281) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "244-v1.v1", 0x000000, 0x400000, CRC(79def46d) SHA1(63414235de2e177654508f1c840040424f8993e6) )
+ ROM_LOAD( "244-v2.v2", 0x400000, 0x200000, CRC(b231902f) SHA1(9209772e947a2c7ac31b49dd613bf2eab0cb3358) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "244-c1.c1", 0x000000, 0x800000, CRC(c7a62b23) SHA1(4534ecc9ade69c543188c66229dcad89dbc48668) )
+ ROM_LOAD16_BYTE( "244-c2.c2", 0x000001, 0x800000, CRC(33aa0f35) SHA1(3443c7765c6aa177003d42bbfcac9f31d1e12575) )
+ROM_END
+
+/****************************************
+ ID-0245
+ . ??M-2450
+ NEO-MVS PROGBK1 / NEO-MVS CHA512Y
+****************************************/
+
+ROM_START( breakrev ) /* MVS ONLY RELEASE */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "245-p1.p1", 0x100000, 0x100000, CRC(c828876d) SHA1(1dcba850e5cf8219d0945612cfded6d20ca8682a) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "245-s1.s1", CRC(e7660a5d) SHA1(1cd54964ba60b245ea57d9daf0e27b572b815d21) )
+
+ NEO_BIOS_AUDIO_128K( "245-m1.m1", CRC(00f31c66) SHA1(8488598415c9b74bce00e05b31d96e3d1625c20d) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "245-v1.v1", 0x000000, 0x400000, CRC(e255446c) SHA1(b3933340d49d4ba581f3bf1af7ad69d786205790) )
+ ROM_LOAD( "245-v2.v2", 0x400000, 0x400000, CRC(9068198a) SHA1(71819b0475a5e173a2f9a6e4ff19a94655141c3c) )
+
+ ROM_REGION( 0x1800000, "sprites", 0 )
+ /* The chip labels and sizes are correct */
+ ROM_LOAD16_BYTE( "245-c1.c1", 0x0000000, 0x400000, CRC(68d4ae76) SHA1(2e820067f6963669f104bebf19e865fe4127b4dd) )
+ ROM_LOAD16_BYTE( "245-c2.c2", 0x0000001, 0x400000, CRC(fdee05cd) SHA1(efc4ffd790953ac7c25d5f045c64a9b49d24b096) )
+ ROM_LOAD16_BYTE( "245-c3.c3", 0x0800000, 0x400000, CRC(645077f3) SHA1(0ae74f3b4b3b88f128c6d8c0f35ffa53f5d67ef2) )
+ ROM_LOAD16_BYTE( "245-c4.c4", 0x0800001, 0x400000, CRC(63aeb74c) SHA1(9ff6930c0c3d79b46b86356e8565ce4fcd69ac38) )
+ ROM_LOAD16_BYTE( "245-c5.c5", 0x1000000, 0x400000, CRC(b5f40e7f) SHA1(b332bac64dbb9a9dd66c5315f47ea08634d36f45) )
+ ROM_LOAD16_BYTE( "245-c6.c6", 0x1000001, 0x400000, CRC(d0337328) SHA1(dff86b75dc283bd4512557a5c64f16e6be6c16e4) )
+ROM_END
+
+/****************************************
+ ID-0246
+ . NGM-2460
+ NEO-MVS PROGBK1 / NEO-MVS CHA512Y
+ . NGH-2460
+****************************************/
+
+ROM_START( shocktr2 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "246-p1.p1", 0x000000, 0x100000, CRC(6d4b7781) SHA1(3c9d53d5da9842bfd45037c919064dda3fb2e089) )
+ ROM_LOAD16_WORD_SWAP( "246-p2.sp2", 0x100000, 0x400000, CRC(72ea04c3) SHA1(4fb1d22c30f5f3db4637dd92a4d2705c88de399d) )
+
+ NEO_SFIX_128K( "246-s1.s1", CRC(2a360637) SHA1(431b43da5377dd189e51bd93d88d8a24d1b5090a) )
+
+ NEO_BIOS_AUDIO_128K( "246-m1.m1", CRC(d0604ad1) SHA1(fae3cd52a177eadd5f5775ace957cc0f8301e65d) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "246-v1.v1", 0x000000, 0x400000, CRC(16986fc6) SHA1(cff3103dadf2f4390460456a5bd3fb5f28e21f6a) )
+ ROM_LOAD( "246-v2.v2", 0x400000, 0x400000, CRC(ada41e83) SHA1(78e37ffaaa5679c8775a3a71f6df7a0d15082bdc) )
+ ROM_LOAD( "246-v3.v3", 0x800000, 0x200000, CRC(a05ba5db) SHA1(09d739cad323d918f4196f91b654627fcafd8f4d) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "246-c1.c1", 0x0000000, 0x800000, CRC(47ac9ec5) SHA1(2d9eea11ba87baa23b18a1a3f607dc137846e807) )
+ ROM_LOAD16_BYTE( "246-c2.c2", 0x0000001, 0x800000, CRC(7bcab64f) SHA1(08d0edddd14b53d606e9a7a46aa4fb4e7398e0d0) )
+ ROM_LOAD16_BYTE( "246-c3.c3", 0x1000000, 0x800000, CRC(db2f73e8) SHA1(8d0c3473a8b2a4e28fed1b74beb2e025b7e61867) )
+ ROM_LOAD16_BYTE( "246-c4.c4", 0x1000001, 0x800000, CRC(5503854e) SHA1(a0f2e7c609cbb2aa43493a39d7dcaeca3d511d26) )
+ ROM_LOAD16_BYTE( "246-c5.c5", 0x2000000, 0x800000, CRC(055b3701) SHA1(97f5e92538d1f2e437dcb3f80e56e1230287e8d1) )
+ ROM_LOAD16_BYTE( "246-c6.c6", 0x2000001, 0x800000, CRC(7e2caae1) SHA1(d9de14e3e323664a8c5b7f1df1ba9ec7dd0e6a46) )
+ROM_END
+
+/****************************************
+ ID-0247
+ . ??M-2470
+ NEO-MVS PROGBK1 / NEO-MVS CHA256
+****************************************/
+
+ROM_START( flipshot ) /* MVS ONLY RELEASE */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "247-p1.p1", 0x000000, 0x100000, CRC(95779094) SHA1(a985e033bc6f137fa65855d3eed245d66d5b244a) )
+
+ NEO_SFIX_128K( "247-s1.s1", CRC(6300185c) SHA1(cb2f1de085fde214f96a962b1c2fa285eb387d44) )
+
+ NEO_BIOS_AUDIO_128K( "247-m1.m1", CRC(a9fe0144) SHA1(4cc076ecce9216a373f3dcd7ba28a03d6050e522) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "247-v1.v1", 0x000000, 0x200000, CRC(42ec743d) SHA1(f45b5167ebcbd59300f4e5b05448cd421654102a) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "247-c1.c1", 0x000000, 0x200000, CRC(c9eedcb2) SHA1(7627f2810322c146511525eb70b573a6a5ede926) )
+ ROM_LOAD16_BYTE( "247-c2.c2", 0x000001, 0x200000, CRC(7d6d6e87) SHA1(6475b58b9f91c20d1f465f3e892de0c68e12a92b) )
+ROM_END
+
+/****************************************
+ ID-0248
+ . ??M-2480
+ NEO-MVS PROGBK1 / NEO-MVS CHA256
+****************************************/
+
+ROM_START( pbobbl2n ) /* MVS ONLY RELEASE */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "248-p1.p1", 0x000000, 0x100000, CRC(9d6c0754) SHA1(95c70c2d51fc4de01e768e03cc800a850aaad5dc) )
+
+ NEO_SFIX_128K( "248-s1.s1", CRC(0a3fee41) SHA1(0ab2120e462086be942efcf6ffb37f58ea966ca3) )
+
+ NEO_BIOS_AUDIO_128K( "248-m1.m1", CRC(883097a9) SHA1(677bf9684c0c7977a9a3f0c1288e430040a53b49) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "248-v1.v1", 0x000000, 0x400000, CRC(57fde1fa) SHA1(af39bc141fc35b78dcacfd42b3abb29d7e5c2c89) )
+ ROM_LOAD( "248-v2.v2", 0x400000, 0x400000, CRC(4b966ef3) SHA1(083c0e9fd7b8e506087648cdd8ec4206103984cd) )
+
+ ROM_REGION( 0xa00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "248-c1.c1", 0x000000, 0x400000, CRC(d9115327) SHA1(a49aa836a902326cfe785428e1699fefcf8566d4) )
+ ROM_LOAD16_BYTE( "248-c2.c2", 0x000001, 0x400000, CRC(77f9fdac) SHA1(4642d71d32b6a05dc8bfa0f95c936a77c7cef05e) )
+ ROM_LOAD16_BYTE( "248-c3.c3", 0x800000, 0x100000, CRC(8890bf7c) SHA1(a52f6bafd60e72003bfe38c80c1dde24b4983b2a) )
+ ROM_LOAD16_BYTE( "248-c4.c4", 0x800001, 0x100000, CRC(8efead3f) SHA1(f577d2f7c6f850b3d100c36947ad15e33dfa0bed) )
+ROM_END
+
+/****************************************
+ ID-0249
+ . ??M-2490
+ NEO-MVS PROGBK1 / NEO-MVS CHA256
+ NEO-MVS PROGBK1 / NEO-MVS CHA512Y
+****************************************/
+
+ROM_START( ctomaday ) /* MVS ONLY RELEASE */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "249-p1.p1", 0x100000, 0x100000, CRC(c9386118) SHA1(5554662c7bc8605889cac4a67fee05bbb4eb786f) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "249-s1.s1", CRC(dc9eb372) SHA1(b8aa142243ba303799554479bfc88eb49260f3b1) )
+
+ NEO_BIOS_AUDIO_128K( "249-m1.m1", CRC(80328a47) SHA1(34b6b1a81eab1cf38834b2eea55454ce1b6100e2) )
+
+ ROM_REGION( 0x500000, "ymsnd", 0 )
+ ROM_LOAD( "249-v1.v1", 0x000000, 0x400000, CRC(de7c8f27) SHA1(3681a68a702ab5da8f509b8301d6cada75959332) )
+ ROM_LOAD( "249-v2.v2", 0x400000, 0x100000, CRC(c8e40119) SHA1(738f525c381ed68c0b8a89318a3e4d0089473c45) )
+
+ ROM_REGION( 0x800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "249-c1.c1", 0x000000, 0x400000, CRC(041fb8ee) SHA1(dacc84d713d76818d89a26358374afaa22fa82a2) )
+ ROM_LOAD16_BYTE( "249-c2.c2", 0x000001, 0x400000, CRC(74f3cdf4) SHA1(55ddabaf77f4d575f4deb24fe63e4bdc2c6f31e1) )
+ROM_END
+
+/****************************************
+ ID-0250
+ . NGM-2500
+ NEO-MVS PROGEOP (1999.2.2) / NEO-MVS CHA512Y
+ . NGH-2500
+ NEO-AEG PROGEOP (1999.4.2) / NEO-AEG CHA512Y
+****************************************/
+
+ROM_START( mslugx ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250-p1.p1", 0x000000, 0x100000, CRC(81f1f60b) SHA1(4c19f2e9824e606178ac1c9d4b0516fbaa625035) )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+/****************************************
+ ID-0251
+ . NGM-2510
+ SMA protected version found on:
+ NEO-MVS PROGLBA (NEO-SMA) (1999.4.12) / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7042)
+ Non SMA protected version found on:
+ NEO-MVS PROGBK1 / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7042)
+ . NGH-2510
+ NEO-AEG PROGLBA (NEO-SMA) (1999.7.6) / NEO-AEG CHAFIO (1999.8.10) (NEO-CMC 7042)
+****************************************/
+
+ROM_START( kof99 ) /* Original Version - Encrypted Code & GFX */ /* MVS VERSION */
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "ka.neo-sma", 0x0c0000, 0x040000, CRC(7766d09e) SHA1(4e0a49d1ad669a62676cb30f527c6590cde80194) ) /* stored in the custom chip */
+ ROM_LOAD16_WORD_SWAP( "251-p1.p1", 0x100000, 0x400000, CRC(006e4532) SHA1(47791ab4044ad55988b1d3412d95b65b91a163c8) )
+ ROM_LOAD16_WORD_SWAP( "251-p2.p2", 0x500000, 0x400000, CRC(90175f15) SHA1(aa9e75810438a8b45808a8bf32cb04d91b5c0b3a) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99h ) /* Original Version - Encrypted Code & GFX */ /* AES VERSION */
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "kc.neo-sma", 0x0c0000, 0x040000, CRC(6c9d0647) SHA1(2a0ce62ca6c18007e8fbe1b60475c7874ab79389) ) /* stored in the custom chip */
+ ROM_LOAD16_WORD_SWAP( "251-p1.p1", 0x100000, 0x400000, CRC(006e4532) SHA1(47791ab4044ad55988b1d3412d95b65b91a163c8) )
+ ROM_LOAD16_WORD_SWAP( "251-pg2.p2", 0x500000, 0x400000, CRC(d9057f51) SHA1(8d365b4dd40351495df99d6c765df1434b0b0548) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99e ) /* Original Version - Encrypted Code & GFX */
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "ka.neo-sma", 0x0c0000, 0x040000, CRC(7766d09e) SHA1(4e0a49d1ad669a62676cb30f527c6590cde80194) ) /* stored in the custom chip */
+ /* Is the SMA for this set correct? A set with this layout and a SMA.KB is known */
+ ROM_LOAD16_WORD_SWAP( "251-ep1.p1", 0x100000, 0x200000, CRC(1e8d692d) SHA1(eea1aa8c0a17f089ac14831889c36535e559072c) )
+ ROM_LOAD16_WORD_SWAP( "251-ep2.p2", 0x300000, 0x200000, CRC(d6206e5a) SHA1(0e1100d03c40c6d5cfa899d009e319ae73fce6b8) )
+ ROM_LOAD16_WORD_SWAP( "251-ep3.p3", 0x500000, 0x200000, CRC(d58c3ef8) SHA1(f927d90d55b49944f448d6286e0cb913cc70ade1) )
+ ROM_LOAD16_WORD_SWAP( "251-ep4.p4", 0x700000, 0x200000, CRC(52de02ae) SHA1(f16924ff8eef92da7716236a6a055e22e090a02b) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99k ) /* Original Version - Encrypted GFX */ /* KOREAN VERSION */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "152-p1.p1", 0x000000, 0x100000, CRC(f2c7ddfa) SHA1(d592eecc53d442c55c2f26a6a721fdf2924d2a5b) )
+ ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99p ) /* Prototype Version - Possibly Hacked */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "proto_251-p1.p1", 0x000000, 0x100000, CRC(f37929c4) SHA1(226e7e3d629568399b88275e5bcd4e5b3839be95) )
+ ROM_LOAD16_WORD_SWAP( "proto_251-p2.p2", 0x100000, 0x400000, CRC(739742ad) SHA1(31acaf05a9bf186305888d3db7e4e8a83f7bb0a4) )
+
+ /* This is the S1 from the prototype, the final is different */
+ NEO_SFIX_128K( "proto_251-s1.s1", CRC(fb1498ed) SHA1(d40060b31b6f217a4abdf3b336439fcd7bd7aaef) )
+
+ /* Did the Prototype really use the same sound program / voice roms, sound isn't great .. */
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* these are probably decrypted versions of the roms found in the final */
+ ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) )
+ ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) )
+ ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) )
+ ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) )
+ ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) )
+ ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) )
+ ROM_LOAD16_BYTE( "proto_251-c7.c7", 0x3000000, 0x800000, CRC(a4479a58) SHA1(d50e6cc9ccfe1ddbc6d90d46b8ca2cb0304edd8c) )
+ ROM_LOAD16_BYTE( "proto_251-c8.c8", 0x3000001, 0x800000, CRC(ead513ce) SHA1(e9b07a0b01fdeb3004755a479df059c81b4d0ed6) )
+ROM_END
+
+/****************************************
+ ID-0252
+ . ??M-2520
+ NEO-MVS PROGBK1 / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7042)
+****************************************/
+
+ROM_START( ganryu ) /* Original Version - Encrypted GFX */ /* MVS ONLY RELEASE */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "252-p1.p1", 0x100000, 0x100000, CRC(4b8ac4fb) SHA1(93d90271bff281862b03beba3809cf95a47a1e44) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "252-m1.m1", CRC(30cc4099) SHA1(46453b7aac41855a92724a785372f8daf931d8d4) )
+
+ ROM_REGION( 0x0400000, "ymsnd", 0 )
+ ROM_LOAD( "252-v1.v1", 0x000000, 0x400000, CRC(e5946733) SHA1(d5904a50465af03d6ff33399a98f3259721ca0b2) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "252-c1.c1", 0x0000000, 0x800000, CRC(50ee7882) SHA1(ace0f95407c246d0456341cf2ad8a7668b81df8a) )
+ ROM_LOAD16_BYTE( "252-c2.c2", 0x0000001, 0x800000, CRC(62585474) SHA1(b35461598087aa82886af0030c61b26cc064af5f) )
+ROM_END
+
+/****************************************
+ ID-0253
+ . NGM-2530
+ NEO-MVS PROGLBA (1999.4.12) (NEO-SMA)(LBA-SUB) / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7042)
+ . NGH-2530
+ NEO-AEG PROGLBA (1999.7.6) (NEO-SMA) / NEO-AEG CHAFIO (1999.8.10) (NEO-CMC 7042)
+****************************************/
+
+ROM_START( garou ) /* Original Version - Encrypted GFX */ /* MVS VERSION - later revision */
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "kf.neo-sma", 0x0c0000, 0x040000, CRC(98bc93dc) SHA1(01fe3d18b50f770e131e8d8eeff4c630ba8c9551) ) /* stored in the custom chip */
+ ROM_LOAD16_WORD_SWAP( "253-ep1.p1", 0x100000, 0x200000, CRC(ea3171a4) SHA1(bbda40f652baa0dc5fc6a006c001a1bdb0df43f6) )
+ ROM_LOAD16_WORD_SWAP( "253-ep2.p2", 0x300000, 0x200000, CRC(382f704b) SHA1(0ace9c84a8b8a0524fd9a503e7d872de1bf1bd52) )
+ ROM_LOAD16_WORD_SWAP( "253-ep3.p3", 0x500000, 0x200000, CRC(e395bfdd) SHA1(6b50f5ac15bf66b7e4e9bff57594fd3d7530c831) )
+ ROM_LOAD16_WORD_SWAP( "253-ep4.p4", 0x700000, 0x200000, CRC(da92c08e) SHA1(5556f983ebcebc33160e90a6a6cf589d54c8cedc) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "253-m1.m1", CRC(36a806be) SHA1(90fb44dc0c3fb57946a0f35716056abb84a0f191) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "253-v1.v1", 0x000000, 0x400000, CRC(263e388c) SHA1(11f05feee170370c4bfc5053af79246a6e3de5dc) )
+ ROM_LOAD( "253-v2.v2", 0x400000, 0x400000, CRC(2c6bc7be) SHA1(c9c61054ce1a47bf1bf77a31117726b499df24a4) )
+ ROM_LOAD( "253-v3.v3", 0x800000, 0x400000, CRC(0425b27d) SHA1(986863c98fc3445487242dcf2ea75b075e7f33ee) )
+ ROM_LOAD( "253-v4.v4", 0xc00000, 0x400000, CRC(a54be8a9) SHA1(d7123e79b43e8adfaa5ecadbfcbeb6be890ec311) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "253-c1.c1", 0x0000000, 0x800000, CRC(0603e046) SHA1(5ef4557ce90ba65d36129de97be1fdc049c4a3d0) )
+ ROM_LOAD16_BYTE( "253-c2.c2", 0x0000001, 0x800000, CRC(0917d2a4) SHA1(d4ed3a13ae22f880fb399671c1752f1a0283f316) )
+ ROM_LOAD16_BYTE( "253-c3.c3", 0x1000000, 0x800000, CRC(6737c92d) SHA1(678f0c9cc1267bd131546981b9989bfb7289d8ba) )
+ ROM_LOAD16_BYTE( "253-c4.c4", 0x1000001, 0x800000, CRC(5ba92ec6) SHA1(aae36b050a3a0321026a96eba06dd184c0e2acca) )
+ ROM_LOAD16_BYTE( "253-c5.c5", 0x2000000, 0x800000, CRC(3eab5557) SHA1(47c433015aa81a0b0a1d3ee51382c4948b80c023) )
+ ROM_LOAD16_BYTE( "253-c6.c6", 0x2000001, 0x800000, CRC(308d098b) SHA1(b052f1fa9fbc69606004c250e2505360eaa24949) )
+ ROM_LOAD16_BYTE( "253-c7.c7", 0x3000000, 0x800000, CRC(c0e995ae) SHA1(8675ca787d28246174c313167f82557f021366fc) )
+ ROM_LOAD16_BYTE( "253-c8.c8", 0x3000001, 0x800000, CRC(21a11303) SHA1(fd61221ad257c185ef5c1f9694bd6b840b591af3) )
+ROM_END
+
+ROM_START( garouh ) /* Original Version - Encrypted GFX */ /* MVS AND AES VERSION - earlier revision */
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "ke.neo-sma", 0x0c0000, 0x040000, CRC(96c72233) SHA1(29e19effd40fdf7e5144332396857f4ad0eff13e) ) /* stored in the custom chip */
+ ROM_LOAD16_WORD_SWAP( "253-p1.p1", 0x100000, 0x400000, CRC(18ae5d7e) SHA1(bdb58ec9137d8653979b47132f2d10e1cc6aaa24) )
+ ROM_LOAD16_WORD_SWAP( "253-p2.p2", 0x500000, 0x400000, CRC(afffa779) SHA1(ac017986f02277fbcd656b8c02492a3f4216a90e) )
+ /* also found AES JP set with ep1 / ep2 / ep3 and ep4 on eproms and KE NEO-SMA with a white marking; chip labels for eproms are 253-EP1, 253-EP2, 253-EP3 and 253-EP4 */
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "253-m1.m1", CRC(36a806be) SHA1(90fb44dc0c3fb57946a0f35716056abb84a0f191) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "253-v1.v1", 0x000000, 0x400000, CRC(263e388c) SHA1(11f05feee170370c4bfc5053af79246a6e3de5dc) )
+ ROM_LOAD( "253-v2.v2", 0x400000, 0x400000, CRC(2c6bc7be) SHA1(c9c61054ce1a47bf1bf77a31117726b499df24a4) )
+ ROM_LOAD( "253-v3.v3", 0x800000, 0x400000, CRC(0425b27d) SHA1(986863c98fc3445487242dcf2ea75b075e7f33ee) )
+ ROM_LOAD( "253-v4.v4", 0xc00000, 0x400000, CRC(a54be8a9) SHA1(d7123e79b43e8adfaa5ecadbfcbeb6be890ec311) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "253-c1.c1", 0x0000000, 0x800000, CRC(0603e046) SHA1(5ef4557ce90ba65d36129de97be1fdc049c4a3d0) )
+ ROM_LOAD16_BYTE( "253-c2.c2", 0x0000001, 0x800000, CRC(0917d2a4) SHA1(d4ed3a13ae22f880fb399671c1752f1a0283f316) )
+ ROM_LOAD16_BYTE( "253-c3.c3", 0x1000000, 0x800000, CRC(6737c92d) SHA1(678f0c9cc1267bd131546981b9989bfb7289d8ba) )
+ ROM_LOAD16_BYTE( "253-c4.c4", 0x1000001, 0x800000, CRC(5ba92ec6) SHA1(aae36b050a3a0321026a96eba06dd184c0e2acca) )
+ ROM_LOAD16_BYTE( "253-c5.c5", 0x2000000, 0x800000, CRC(3eab5557) SHA1(47c433015aa81a0b0a1d3ee51382c4948b80c023) )
+ ROM_LOAD16_BYTE( "253-c6.c6", 0x2000001, 0x800000, CRC(308d098b) SHA1(b052f1fa9fbc69606004c250e2505360eaa24949) )
+ ROM_LOAD16_BYTE( "253-c7.c7", 0x3000000, 0x800000, CRC(c0e995ae) SHA1(8675ca787d28246174c313167f82557f021366fc) )
+ ROM_LOAD16_BYTE( "253-c8.c8", 0x3000001, 0x800000, CRC(21a11303) SHA1(fd61221ad257c185ef5c1f9694bd6b840b591af3) )
+ROM_END
+
+ROM_START( garoup ) /* Prototype Version, seems genuine */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "proto_253-p1.p1", 0x000000, 0x100000, CRC(c72f0c16) SHA1(1ff6bb651682f93bef9ff02622c3cf63fe594986) )
+ ROM_LOAD16_WORD_SWAP( "proto_253-p2.p2", 0x100000, 0x400000, CRC(bf8de565) SHA1(0e24574168cd38138bed0aa4dca49849f6901ca2) )
+
+ NEO_SFIX_128K( "proto_253-s1.s1", CRC(779989de) SHA1(8bd550857b60f8a907f6d39a4225ceffdd330307) )
+
+ NEO_BIOS_AUDIO_256K( "proto_253-m1.m1", CRC(bbe464f7) SHA1(f5f8f3e48f5d453f45107085d6f4023bcd24c053) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "proto_253-v1.v1", 0x000000, 0x400000, CRC(274f3923) SHA1(4c7a8ad1cd0e3afc1f78de3c2929120ed434f104) )
+ ROM_LOAD( "proto_253-v2.v2", 0x400000, 0x400000, CRC(8f86dabe) SHA1(b3d2d9f5c1d97a6e7aee2c674fb6627f41bbb240) )
+ ROM_LOAD( "proto_253-v3.v3", 0x800000, 0x400000, CRC(05fd06cd) SHA1(6cd699719614bb87547632ea3d61d92d81fdf563) )
+ ROM_LOAD( "proto_253-v4.v4", 0xc00000, 0x400000, CRC(14984063) SHA1(170d5638327ec0eb3590b80dc11590897367250c) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_253-c1.c1", 0x0000000, 0x800000, CRC(5bb5d137) SHA1(d648febd8e6a0bdd9bdbb6ce1f1f8b08567ec05a) )
+ ROM_LOAD16_BYTE( "proto_253-c2.c2", 0x0000001, 0x800000, CRC(5c8d2960) SHA1(f7503502be0332adf408ee0ea5ee5161c8939fd8) )
+ ROM_LOAD16_BYTE( "proto_253-c3.c3", 0x1000000, 0x800000, CRC(234d16fc) SHA1(7b9221f7ecc438150c8a10be72390329854ed21b) )
+ ROM_LOAD16_BYTE( "proto_253-c4.c4", 0x1000001, 0x800000, CRC(b9b5b993) SHA1(6059793eaf6e58c172235fe64aa9d25a40c38ed6) )
+ ROM_LOAD16_BYTE( "proto_253-c5.c5", 0x2000000, 0x800000, CRC(722615d2) SHA1(798832c535869f0e247c3db0d8253779b103e213) )
+ ROM_LOAD16_BYTE( "proto_253-c6.c6", 0x2000001, 0x800000, CRC(0a6fab38) SHA1(eaee6f2f18af91f7959d84d4b991b3fc182d07c4) )
+ ROM_LOAD16_BYTE( "proto_253-c7.c7", 0x3000000, 0x800000, CRC(d68e806f) SHA1(92bfd9839115bd590972ae4ecc45ad35dce22387) )
+ ROM_LOAD16_BYTE( "proto_253-c8.c8", 0x3000001, 0x800000, CRC(f778fe99) SHA1(c963f6ba90a36d02991728b44ffcf174ca18268a) )
+ROM_END
+
+/****************************************
+ ID-0254
+ . ??M-2540
+ NEO-MVS PROGBK1 / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7042)
+****************************************/
+
+ROM_START( s1945p ) /* Original Version, Encrypted GFX Roms */ /* MVS ONLY RELEASE */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "254-p1.p1", 0x000000, 0x100000, CRC(ff8efcff) SHA1(dcaeaca573385c172ecc43ee6bee355359091893) )
+ ROM_LOAD16_WORD_SWAP( "254-p2.sp2", 0x100000, 0x400000, CRC(efdfd4dd) SHA1(254f3e1b546eed788f7ae919be9d1bf9702148ce) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "254-m1.m1", CRC(994b4487) SHA1(a4e645a3ababa48a8325980ff022e04a8b51b017) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "254-v1.v1", 0x000000, 0x400000, CRC(844f58fb) SHA1(e59544457be9f21481eac8b5a39b9cbb502f252d) )
+ ROM_LOAD( "254-v2.v2", 0x400000, 0x400000, CRC(d9a248f0) SHA1(dd3e0974b753e6f94d0943a002de45668a1b072b) )
+ ROM_LOAD( "254-v3.v3", 0x800000, 0x400000, CRC(0b0d2d33) SHA1(f8e76af42a997f36a40f66b39de00f68afe6a89c) )
+ ROM_LOAD( "254-v4.v4", 0xc00000, 0x400000, CRC(6d13dc91) SHA1(8433513c0b5aea61939068a25ab90efbe3e44116) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "254-c1.c1", 0x0000000, 0x800000, CRC(ae6fc8ef) SHA1(544ccdaee8a4a45cdce9483e30852811d2d5f3cc) )
+ ROM_LOAD16_BYTE( "254-c2.c2", 0x0000001, 0x800000, CRC(436fa176) SHA1(d70141a91a360a1b1070753086f976608fec38af) )
+ ROM_LOAD16_BYTE( "254-c3.c3", 0x1000000, 0x800000, CRC(e53ff2dc) SHA1(31f6aaffe28146d574aa72f14f90a9d968f36bc6) )
+ ROM_LOAD16_BYTE( "254-c4.c4", 0x1000001, 0x800000, CRC(818672f0) SHA1(460c6738d0ee5ae440a23fc1434fab53bbb242b5) )
+ ROM_LOAD16_BYTE( "254-c5.c5", 0x2000000, 0x800000, CRC(4580eacd) SHA1(feb96eb5e80c9125ddd7836e0939212cd3011c34) )
+ ROM_LOAD16_BYTE( "254-c6.c6", 0x2000001, 0x800000, CRC(e34970fc) SHA1(6e43e15e27bc914357f977116ab1e2d98711bb21) )
+ ROM_LOAD16_BYTE( "254-c7.c7", 0x3000000, 0x800000, CRC(f2323239) SHA1(5b3e8dd77474203be010ec7363858d806344a320) )
+ ROM_LOAD16_BYTE( "254-c8.c8", 0x3000001, 0x800000, CRC(66848c7d) SHA1(24d4ed627940a4cf8129761c1da15556e52e199c) )
+ROM_END
+
+/****************************************
+ ID-0255
+ . ??M-2550
+ NEO-MVS PROGBK1 / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7042)
+****************************************/
+
+ROM_START( preisle2 ) /* Original Version, Encrypted GFX */ /* MVS ONLY RELEASE */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "255-p1.p1", 0x000000, 0x100000, CRC(dfa3c0f3) SHA1(793c6a46f3a794536dc0327a3f3fad20e25ab661) )
+ ROM_LOAD16_WORD_SWAP( "255-p2.sp2", 0x100000, 0x400000, CRC(42050b80) SHA1(0981a8295d43b264c2b95e5d7568bdda4e64c976) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "255-m1.m1", CRC(8efd4014) SHA1(5b73809b6e4e49264d281ef3e5004ac8a9de296d) )
+
+ ROM_REGION( 0x0600000, "ymsnd", 0 )
+ ROM_LOAD( "255-v1.v1", 0x000000, 0x400000, CRC(5a14543d) SHA1(7146ac748f846c7e2d5b0bdcf953892e39b648fe) )
+ ROM_LOAD( "255-v2.v2", 0x400000, 0x200000, CRC(6610d91a) SHA1(b2c6786920dc1712e88c3cc26d2c6c3ac2615bf4) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "255-c1.c1", 0x0000000, 0x800000, CRC(ea06000b) SHA1(1539b12e461fa48301190eb8171bbffff9d984b7) )
+ ROM_LOAD16_BYTE( "255-c2.c2", 0x0000001, 0x800000, CRC(04e67d79) SHA1(aadb6ee750da2c14c6eededa2218db95e051a32c) )
+ ROM_LOAD16_BYTE( "255-c3.c3", 0x1000000, 0x800000, CRC(60e31e08) SHA1(bd5b81ad9d04cdc4e0df31ac40eca305f98277eb) )
+ ROM_LOAD16_BYTE( "255-c4.c4", 0x1000001, 0x800000, CRC(40371d69) SHA1(90011ccc5672ff1b90737cf50c963e71b6217ce3) )
+ ROM_LOAD16_BYTE( "255-c5.c5", 0x2000000, 0x800000, CRC(0b2e6adf) SHA1(15c7d9aa8b1ad9a071e6fd0ef0de8a057c23b02e) )
+ ROM_LOAD16_BYTE( "255-c6.c6", 0x2000001, 0x800000, CRC(b001bdd3) SHA1(394ba8004644844ee97a120cfda48aeac685af8a) )
+ROM_END
+
+/****************************************
+ ID-0256
+ . NGM-2560
+ SMA protected version found on:
+ NEO-MVS PROGLBA (1999.4.12) (NEO-SMA)(LBA-SUB) / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7042)
+ Non SMA protected version found on:
+ NEO-MVS PROGBK1 / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7042)
+ . NGH-2560
+ NEO-AEG PROGLBA (1999.7.6) (NEO-SMA)(LBA-SUB) / NEO-AEG CHAFIO (1999.8.10) (NEO-CMC 7042)
+****************************************/
+
+ROM_START( mslug3 ) /* Original Version - Encrypted Code & GFX */ /* revision 2000.4.1 */ /* MVS VERSION */
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "neo-sma", 0x0c0000, 0x040000, CRC(9cd55736) SHA1(d6efb2b313127c2911d47d9324626b3f1e7c6ccb) ) /* stored in the custom chip */
+ /* The SMA for this release has a green colour marking; the older revision has a white colour marking */
+ ROM_LOAD16_WORD_SWAP( "256-pg1.p1", 0x100000, 0x400000, CRC(b07edfd5) SHA1(dcbd9e500bfae98d754e55cdbbbbf9401013f8ee) )
+ ROM_LOAD16_WORD_SWAP( "256-pg2.p2", 0x500000, 0x400000, CRC(6097c26b) SHA1(248ec29d21216f29dc6f5f3f0e1ad1601b3501b6) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3h ) /* Original Version - Encrypted GFX */ /* revision 2000.3.17 */ /* AES VERSION */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256-ph1.p1", 0x000000, 0x100000, CRC(9c42ca85) SHA1(7a8f77a89867b889295ae9b9dfd4ba28f02d234d) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+ /* also found AES sets with p1 / p2 on maskrom on NEO-AEG PROGLBA (NEO-SMA); chip labels are 256-PG1 and 256-PG2 */
+ /* The SMA on those sets has a pink or green color marking */
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+/****************************************
+ ID-0257
+ . NGM-2570
+ SMA protected version found on:
+ NEO-MVS PROGLBA (1999.4.12) (NEO-SMA)(LBA-SUB) / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7050)
+ Non SMA protected version found on:
+ NEO-MVS PROGBK1 / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7050)
+ . NGH-2570
+ NEO-AEG PROGLBA (NEO-SMA) / NEO-AEG CHAFIO (1999.8.10) (NEO-CMC 7050)
+****************************************/
+
+ROM_START( kof2000 ) /* Original Version, Encrypted Code + Sound + GFX Roms */ /* MVS AND AES VERSION */
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "neo-sma", 0x0c0000, 0x040000, CRC(71c6e6bb) SHA1(1bd29ded4c6b29780db8e8b772c452189699ca89) ) /* stored in the custom chip */
+ ROM_LOAD16_WORD_SWAP( "257-p1.p1", 0x100000, 0x400000, CRC(60947b4c) SHA1(5faa0a7ac7734d6c8e276589bd12dd574264647d) )
+ ROM_LOAD16_WORD_SWAP( "257-p2.p2", 0x500000, 0x400000, CRC(1b7ec415) SHA1(f19fa44e9ee5b5a6eb4a051349d6bc4acc3bbbdb) )
+
+ NEO_SFIX_MT_512K
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_256K( "257-m1.m1", CRC(4b749113) SHA1(2af2361146edd0ce3966614d90165a5c1afb8de4) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) )
+ ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) )
+ ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) )
+ ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) )
+ ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) )
+ ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) )
+ ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) )
+ ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) )
+ROM_END
+
+ROM_START( kof2000n ) /* Original Version, Encrypted Sound + GFX Roms */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257-pg1.p1", 0x000000, 0x100000, CRC(5f809dbe) SHA1(2bc233dcff5622de86d01e3b74b840c7caf12982) )
+ ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) )
+
+ NEO_SFIX_MT_512K
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_256K( "257-m1.m1", CRC(4b749113) SHA1(2af2361146edd0ce3966614d90165a5c1afb8de4) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) )
+ ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) )
+ ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) )
+ ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) )
+ ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) )
+ ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) )
+ ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) )
+ ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) )
+ROM_END
+
+/****************************************
+ ID-0258
+ SNK vs. Capcom?
+****************************************/
+
+/****************************************
+ ID-0259
+ . ??M-2590
+ NEO-MVS PROGBK1 / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7042)
+****************************************/
+
+ROM_START( bangbead ) /* Original Version - Encrypted GFX */ /* MVS ONLY RELEASE */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "259-p1.p1", 0x100000, 0x100000, CRC(88a37f8b) SHA1(566db84850fad5e8fe822e8bba910a33e083b550) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "259-m1.m1", CRC(85668ee9) SHA1(7d3f51710cf90c097cd3faaeeef10ceb85cbb3e8) )
+
+ ROM_REGION( 0x500000, "ymsnd", 0 )
+ ROM_LOAD( "259-v1.v1", 0x000000, 0x400000, CRC(088eb8ab) SHA1(608306e35501dd7d382d9f96b28e7550aa896a03) )
+ ROM_LOAD( "259-v2.v2", 0x400000, 0x100000, CRC(97528fe9) SHA1(8f5eddbb3a9a225492479d1a44801f3916c8e791) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "259-c1.c1", 0x0000000, 0x800000, CRC(1f537f74) SHA1(b8ef691e92191c20a5ed4f20a75cca3c7383bca6) )
+ ROM_LOAD16_BYTE( "259-c2.c2", 0x0000001, 0x800000, CRC(0efd98ff) SHA1(d350315d3c7f26d638458e5ccf2126069a4c7a5b) )
+ROM_END
+
+/****************************************
+ ID-0260
+ . ??M-2600
+ NEO-MVS PROGBK1 / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7042)
+****************************************/
+
+ROM_START( nitd ) /* Original Version - Encrypted GFX */ /* MVS ONLY RELEASE */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "260-p1.p1", 0x000000, 0x080000, CRC(61361082) SHA1(441f3f41c1aa752c0e0a9a0b1d92711d9e636b85) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_512K( "260-m1.m1", CRC(6407c5e5) SHA1(d273e154cc905b63205a17a1a6d419cac3485a92) )
+
+ ROM_REGION( 0x0400000, "ymsnd", 0 )
+ ROM_LOAD( "260-v1.v1", 0x000000, 0x400000, CRC(24b0480c) SHA1(d769e621be52a5cd2e2568891b5f95a48268e1e0) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "260-c1.c1", 0x0000000, 0x800000, CRC(147b0c7f) SHA1(a647c3a2f6d146ff47521c1d39f58830601f5781) )
+ ROM_LOAD16_BYTE( "260-c2.c2", 0x0000001, 0x800000, CRC(d2b04b0d) SHA1(ce4322e6cfacb627fe997efe81018861e21d3c27) )
+ROM_END
+
+/****************************************
+ ID-0261
+ . NGM-2610
+ NEO-MVS PROGBK1 / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7042)
+ . NGH-2610
+ NEO-AEG PROGBK1F / NEO-AEG CHAFIO (1999.8.10) (NEO-CMC 7042)
+****************************************/
+
+ROM_START( sengoku3 ) /* Original Version - Encrypted GFX */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "261-ph1.p1", 0x100000, 0x100000, CRC(e0d4bc0a) SHA1(8df366097f224771ca6d1aa5c1691cd46776cd12) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+ /* also found MVS set with p1 label 261-PG1; older revision? */
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_512K( "261-m1.m1", CRC(7d501c39) SHA1(8e6bcc428f5ac7532d9c9be7e07ad0821461a080) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "261-v1.v1", 0x000000, 0x400000, CRC(64c30081) SHA1(f9ebd20cf59b72e864b7274c1bdb6d99ecaf4595) )
+ ROM_LOAD( "261-v2.v2", 0x400000, 0x400000, CRC(392a9c47) SHA1(7ab90a54089236ca6c3ef1af8e566a8025d38159) )
+ ROM_LOAD( "261-v3.v3", 0x800000, 0x400000, CRC(c1a7ebe3) SHA1(1d7bb481451f5ee0457e954bb5210300182c3c9c) )
+ ROM_LOAD( "261-v4.v4", 0xc00000, 0x200000, CRC(9000d085) SHA1(11157b355ab4eb6627e9f322ed875332d3d77349) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "261-c1.c1", 0x0000000, 0x800000, CRC(ded84d9c) SHA1(d960523b813d4fae06d716298d4e431a5c77a0c5) )
+ ROM_LOAD16_BYTE( "261-c2.c2", 0x0000001, 0x800000, CRC(b8eb4348) SHA1(619d24312549932959481fa58f43f11c048e1ca5) )
+ ROM_LOAD16_BYTE( "261-c3.c3", 0x1000000, 0x800000, CRC(84e2034a) SHA1(38ec4ae4b86933a25c9a03799b8cade4b1346401) )
+ ROM_LOAD16_BYTE( "261-c4.c4", 0x1000001, 0x800000, CRC(0b45ae53) SHA1(a19fb21408ab633aee8bbf38bf43b5e26766b355) )
+ROM_END
+
+/****************************************
+ ID-0262
+ . NGM-262?
+ MVS PROGBK2 REV1.0 (NEO-PCM2 SNK)/ MVS CHAFIO REV1.0 (NEO-CMC 7050)
+ . NGH-2621
+ NEO-AEG PROGBK1F / NEO-AEG CHAFIO (1999.8.10) (NEO-CMC 7050)
+ - Distribution by BrezzaSoft
+****************************************/
+
+ROM_START( kof2001 ) /* MVS VERSION */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) )
+ ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) )
+ /* The first/early production run sets have proms with above labels. Some later? sets found have eproms instead of proms */
+
+ NEO_SFIX_MT_128K
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_256K( "265-262-m1.m1", CRC(a7f8119f) SHA1(71805b39b8b09c32425cf39f9de59b2f755976c2) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2001h ) /* AES VERSION */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262-pg1.p1", 0x000000, 0x100000, CRC(2af7e741) SHA1(e41282d73ed6d521da056f1a16573bb61bfa3826) )
+ ROM_LOAD16_WORD_SWAP( "262-pg2.sp2", 0x100000, 0x400000, CRC(91eea062) SHA1(82bae42bbeedb9f3aa0c7c0b0a7a69be499cf98f) )
+
+ NEO_SFIX_MT_128K
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_256K( "265-262-m1.m1", CRC(a7f8119f) SHA1(71805b39b8b09c32425cf39f9de59b2f755976c2) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+/****************************************
+ ID-0263
+ . NGM-2630
+ NEO-MVS PROGBK2 (NEO-PCM2 SNK)/ NEO-MVS CHAFIO (NEO-CMC 7050)
+ . NGH-2630
+ NEO-AEG PROGBK2 (2002.4.1) (NEO-PCM2 SNK) / NEO-AEG CHAFIO (1999.8.10) (NEO-CMC 7050)
+****************************************/
+
+ROM_START( mslug4 ) /* Original Version - Encrypted GFX */ /* MVS VERSION */
+ /* There also exist carts where p1 label is pg1; the PG1 revision has a Japanese cart label, SN 02Jxxxxx
+ The P1 revision has a US/EUR cart label, SN 02Txxxxx ; Rom data on both is identical.
+ These carts were manufactured by Mega Enterprise, not SNK. */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263-p1.p1", 0x000000, 0x100000, CRC(27e4def3) SHA1(a08785e8145981bb6b5332a3b2df7eb321253cca) )
+ ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+
+ NEO_SFIX_MT_512K
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_128K( "263-m1.m1", CRC(46ac8228) SHA1(5aeea221050c98e4bb0f16489ce772bf1c80f787) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) )
+ ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) )
+ ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) )
+ ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) )
+ ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) )
+ ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) )
+ ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) )
+ROM_END
+
+ROM_START( mslug4h ) /* Original Version - Encrypted GFX */ /* AES VERSION */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263-ph1.p1", 0x000000, 0x100000, CRC(c67f5c8d) SHA1(12af74964843f103520d9f0825069ea2f67eeb2f) )
+ ROM_LOAD16_WORD_SWAP( "263-ph2.sp2", 0x100000, 0x400000, CRC(bc3ec89e) SHA1(2cb0626bc4fa57e1d25f208e04532b570d87b3fb) )
+
+ NEO_SFIX_MT_512K
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_128K( "263-m1.m1", CRC(46ac8228) SHA1(5aeea221050c98e4bb0f16489ce772bf1c80f787) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) )
+ ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) )
+ ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) )
+ ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) )
+ ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) )
+ ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) )
+ ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) )
+ROM_END
+
+/****************************************
+ ID-0264
+ . NGM-264?
+ NEO-MVS PROGBK2 (2000.3.21) (NEO-PCM2 SNK) / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7050)
+ . NGH-2641
+ NEO-AEG PROGBK2 (2002.4.1) (NEO-PCM2 SNK) / NEO-AEG CHAFIO (1999.8.10) (NEO-CMC 7050)
+ - Distribution by BrezzaSoft
+****************************************/
+
+ROM_START( rotd ) /* Encrypted Set */ /* MVS VERSION */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "264-p1.p1", 0x000000, 0x800000, CRC(b8cc969d) SHA1(4f2205b4bdd32dd1522106ef4df10ac0eb1b852d) )
+
+ NEO_SFIX_MT_128K
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_128K( "264-m1.m1", CRC(4dbd7b43) SHA1(6b63756b0d2d30bbf13fbd219833c81fd060ef96) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) )
+ ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) )
+ ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) )
+ ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) )
+ ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) )
+ ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) )
+ ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) )
+ ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) )
+ ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) )
+ROM_END
+
+/****************************************
+ ID-0265
+ . NGM-2650
+ NEO-MVS PROGBK2 (2000.3.21) (NEO-PCM2 PLAYMORE) / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7050)
+ . NGH-2650
+ NEO-AEG PROGBK2 (NEO-PCM2 PLAYMORE) / NEO-AEG CHAFIO (1999.8.10) (NEO-CMC 7050)
+****************************************/
+
+ROM_START( kof2002 ) /* Encrypted Set */ /* MVS AND AES VERSION */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265-p1.p1", 0x000000, 0x100000, CRC(9ede7323) SHA1(ad9d45498777fda9fa58e75781f48e09aee705a6) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_128K( "265-m1.m1", CRC(85aaa632) SHA1(744fba4ca3bc3a5873838af886efb97a8a316104) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+/****************************************
+ ID-0266
+ . NGM-2660
+ NEO-MVS PROGBK2 (2000.3.21) (NEO-PCM2 PLAYMORE) / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7050)
+ . NGH-2660
+ NEO-AEG PROGBK2 (2002.4.1) (NEO-PCM2 PLAYMORE) / NEO-AEG CHAFIO (1999.8.10) (NEO-CMC 7050)
+****************************************/
+
+ROM_START( matrim ) /* Encrypted Set */ /* MVS AND AES VERSION */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "266-p1.p1", 0x000000, 0x100000, CRC(5d4c2dc7) SHA1(8d723b0d28ec344eef26009b361a2b97d300dd51) )
+ ROM_LOAD16_WORD_SWAP( "266-p2.sp2", 0x100000, 0x400000, CRC(a14b1906) SHA1(1daa14d73512f760ef569b06f9facb279437d1db) )
+
+ NEO_SFIX_MT_512K
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_128K( "266-m1.m1", CRC(456c3e6c) SHA1(5a07d0186198a18d2dda1331093cf29b0b9b2984) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "266-v1.v1", 0x000000, 0x800000, CRC(a4f83690) SHA1(200d683d8c30ebc6d0ed331aa5bbba39b4e07160) )
+ ROM_LOAD( "266-v2.v2", 0x800000, 0x800000, CRC(d0f69eda) SHA1(9d7e98976ad433ed8a35d7afffa38130444ba7db) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "266-c1.c1", 0x0000000, 0x800000, CRC(505f4e30) SHA1(f22b6f76fc0cad963555dc89d072967c8dc8b79a) )
+ ROM_LOAD16_BYTE( "266-c2.c2", 0x0000001, 0x800000, CRC(3cb57482) SHA1(dab15bc24391f9a5173de76af48b612fb9636ccf) )
+ ROM_LOAD16_BYTE( "266-c3.c3", 0x1000000, 0x800000, CRC(f1cc6ad0) SHA1(66c1cccc0332ffd2d3064f06330c41f95ca09ced) )
+ ROM_LOAD16_BYTE( "266-c4.c4", 0x1000001, 0x800000, CRC(45b806b7) SHA1(c2bb866fded53d62fad0fc88d89d5e7d4cb1894f) )
+ ROM_LOAD16_BYTE( "266-c5.c5", 0x2000000, 0x800000, CRC(9a15dd6b) SHA1(194a6973a7a9e3847efe1bdbaeaeb16e74aff2dd) )
+ ROM_LOAD16_BYTE( "266-c6.c6", 0x2000001, 0x800000, CRC(281cb939) SHA1(bdb7766cfde581ccfaee2be7fe48445f360a2301) )
+ ROM_LOAD16_BYTE( "266-c7.c7", 0x3000000, 0x800000, CRC(4b71f780) SHA1(d5611a6f6b730db58613b48f2b0174661ccfb7bb) )
+ ROM_LOAD16_BYTE( "266-c8.c8", 0x3000001, 0x800000, CRC(29873d33) SHA1(dc77f129ed49b8d40d0d4241feef3f6c2f19a987) )
+ROM_END
+
+/****************************************
+ ID-0267
+ . ??M-2670
+ NEO-MVS PROGBK2 (2000.3.21) (NEO-PCM2 SNK) / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7050)
+****************************************/
+
+ROM_START( pnyaa ) /* Encrypted Set */ /* MVS ONLY RELEASE */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "267-p1.p1", 0x000000, 0x100000, CRC(112fe2c0) SHA1(01420e051f0bdbd4f68ce306a3738161b96f8ba8) )
+ /* also found set with p1 and m1 on eprom with sticker; chip labels is PN 2.02 and M1 */
+
+ NEO_SFIX_MT_128K
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "267-m1.m1", CRC(c7853ccd) SHA1(1b7a4c5093cf0fe3861ce44fd1d3b30c71ad0abe) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "267-v1.v1", 0x000000, 0x400000, CRC(e2e8e917) SHA1(7f412d55aebff3d38a225a88c632916295ab0584) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "267-c1.c1", 0x0000000, 0x800000, CRC(5eebee65) SHA1(7eb3eefdeb24e19831d0f51d4ea07a0292c25ab6) )
+ ROM_LOAD16_BYTE( "267-c2.c2", 0x0000001, 0x800000, CRC(2b67187b) SHA1(149c3efd3c444fd0d35a97fa2268102bf76be3ed) )
+ROM_END
+
+/****************************************
+ ID-0268
+ . NGM-2680
+ NEO-MVS PROGBK3S (2003.10.1) (NEO-PCM2 PLAYMORE) (NEO-PVC) / NEO-MVS CHAFIO (2003.7.24) (NEO-CMC 7050)
+ . NGH-2680
+ NEO-AEG PROGBK3S (2003.10.6) (NEO-PCM2 PLAYMORE) (NEO-PVC) / NEO-AEG CHAFIO (2003.7.24) (NEO-CMC 7050)
+****************************************/
+
+ROM_START( mslug5 ) /* Encrypted Set */ /* MVS VERSION */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD32_WORD_SWAP( "268-p1cr.p1", 0x000000, 0x400000, CRC(d0466792) SHA1(880819933d997fab398f91061e9dbccb959ae8a1) )
+ ROM_LOAD32_WORD_SWAP( "268-p2cr.p2", 0x000002, 0x400000, CRC(fbf6b61e) SHA1(9ec743d5988b5e3183f37f8edf45c72a8c0c893e) )
+
+ NEO_SFIX_MT_128K
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "268-m1.m1", CRC(4a5a6e0e) SHA1(df0f660f2465e1db7be5adfcaf5e88ad61a74a42) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) )
+ ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "268-c1c.c1", 0x0000000, 0x800000, CRC(ab7c389a) SHA1(025a188de589500bf7637fa8e7a37ab24bf4312e) )
+ ROM_LOAD16_BYTE( "268-c2c.c2", 0x0000001, 0x800000, CRC(3560881b) SHA1(493d218c92290b4770024d6ee2917c4022753b07) )
+ ROM_LOAD16_BYTE( "268-c3c.c3", 0x1000000, 0x800000, CRC(3af955ea) SHA1(cf36b6ae9b0d12744b17cb7a928399214de894be) )
+ ROM_LOAD16_BYTE( "268-c4c.c4", 0x1000001, 0x800000, CRC(c329c373) SHA1(5073d4079958a0ef5426885af2c9e3178f37d5e0) )
+ ROM_LOAD16_BYTE( "268-c5c.c5", 0x2000000, 0x800000, CRC(959c8177) SHA1(889bda7c65d71172e7d89194d1269561888fe789) )
+ ROM_LOAD16_BYTE( "268-c6c.c6", 0x2000001, 0x800000, CRC(010a831b) SHA1(aec140661e3ae35d264df416478ba15188544d91) )
+ ROM_LOAD16_BYTE( "268-c7c.c7", 0x3000000, 0x800000, CRC(6d72a969) SHA1(968dd9a4d1209b770b9b85ea6532fa24d262a262) )
+ ROM_LOAD16_BYTE( "268-c8c.c8", 0x3000001, 0x800000, CRC(551d720e) SHA1(ebf69e334fcaba0fda6fd432fd0970283a365d12) )
+ROM_END
+
+ROM_START( mslug5h ) /* Encrypted Set */ /* AES release of the game but is also found in later MVS carts */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD32_WORD_SWAP( "268-p1c.p1", 0x000000, 0x400000, CRC(3636690a) SHA1(e0da714b4bdc6efffe1250ded02ebddb3ab6d7b3) )
+ ROM_LOAD32_WORD_SWAP( "268-p2c.p2", 0x000002, 0x400000, CRC(8dfc47a2) SHA1(27d618cfbd0107a4d2a836797e967b39d2eb4851) )
+ /* also found AES set with p1 / p2 on maskrom and m1 on M27C4001 eprom with sticker; chip labels are 268-P1CR2, 268-P2CR2 and 268-M1 */
+
+ NEO_SFIX_MT_128K
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "268-m1.m1", CRC(4a5a6e0e) SHA1(df0f660f2465e1db7be5adfcaf5e88ad61a74a42) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) )
+ ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "268-c1c.c1", 0x0000000, 0x800000, CRC(ab7c389a) SHA1(025a188de589500bf7637fa8e7a37ab24bf4312e) )
+ ROM_LOAD16_BYTE( "268-c2c.c2", 0x0000001, 0x800000, CRC(3560881b) SHA1(493d218c92290b4770024d6ee2917c4022753b07) )
+ ROM_LOAD16_BYTE( "268-c3c.c3", 0x1000000, 0x800000, CRC(3af955ea) SHA1(cf36b6ae9b0d12744b17cb7a928399214de894be) )
+ ROM_LOAD16_BYTE( "268-c4c.c4", 0x1000001, 0x800000, CRC(c329c373) SHA1(5073d4079958a0ef5426885af2c9e3178f37d5e0) )
+ ROM_LOAD16_BYTE( "268-c5c.c5", 0x2000000, 0x800000, CRC(959c8177) SHA1(889bda7c65d71172e7d89194d1269561888fe789) )
+ ROM_LOAD16_BYTE( "268-c6c.c6", 0x2000001, 0x800000, CRC(010a831b) SHA1(aec140661e3ae35d264df416478ba15188544d91) )
+ ROM_LOAD16_BYTE( "268-c7c.c7", 0x3000000, 0x800000, CRC(6d72a969) SHA1(968dd9a4d1209b770b9b85ea6532fa24d262a262) )
+ ROM_LOAD16_BYTE( "268-c8c.c8", 0x3000001, 0x800000, CRC(551d720e) SHA1(ebf69e334fcaba0fda6fd432fd0970283a365d12) )
+ROM_END
+
+/****************************************
+ ID-0269
+ . NGM-2690
+ NEO-MVS PROGBK3R (2003.9.2) (NEO-PCM2 PLAYMORE) (NEO-PVC) / NEO-MVS CHAFIO (2003.7.24) (NEO-CMC 7050)
+ . NGH-2690
+ NEO-AEG PROGBK3R (2003.8.29) (NEO-PCM2 PLAYMORE) (NEO-PVC) / NEO-AEG CHAFIO (2003.7.24) (NEO-CMC 7050)
+****************************************/
+
+ROM_START( svc ) /* Encrypted Set */ /* MVS AND AES VERSION */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD32_WORD_SWAP( "269-p1.p1", 0x000000, 0x400000, CRC(38e2005e) SHA1(1b902905916a30969282f1399a756e32ff069097) )
+ ROM_LOAD32_WORD_SWAP( "269-p2.p2", 0x000002, 0x400000, CRC(6d13797c) SHA1(3cb71a95cea6b006b44cac0f547df88aec0007b7) )
+
+ NEO_SFIX_MT_512K
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "269-m1.m1", CRC(f6819d00) SHA1(d3bbe09df502464f104e53501708ac6e2c1832c6) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "269-v1.v1", 0x000000, 0x800000, CRC(c659b34c) SHA1(1931e8111ef43946f68699f8707334c96f753a1e) )
+ ROM_LOAD( "269-v2.v2", 0x800000, 0x800000, CRC(dd903835) SHA1(e58d38950a7a8697bb22a1cc7a371ae6664ae8f9) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "269-c1r.c1", 0x0000000, 0x800000, CRC(887b4068) SHA1(227cdcf7a10a415f1e3afe7ae97acc9afc2cc8e1) )
+ ROM_LOAD16_BYTE( "269-c2r.c2", 0x0000001, 0x800000, CRC(4e8903e4) SHA1(31daaa4fd6c23e8f0a8428931c513d97d2eee1bd) )
+ ROM_LOAD16_BYTE( "269-c3r.c3", 0x1000000, 0x800000, CRC(7d9c55b0) SHA1(1f94a948b3e3c31b3ff05518ef525031a3cb2c62) )
+ ROM_LOAD16_BYTE( "269-c4r.c4", 0x1000001, 0x800000, CRC(8acb5bb6) SHA1(2c27d6e309646d7b84da85f78c06e4aaa74e844b) )
+ ROM_LOAD16_BYTE( "269-c5r.c5", 0x2000000, 0x800000, CRC(097a4157) SHA1(54d839f55d27f68c704a94ea3c63c644ffc22ca4) )
+ ROM_LOAD16_BYTE( "269-c6r.c6", 0x2000001, 0x800000, CRC(e19df344) SHA1(20448add53ab25dd3a8f0b681131ad3b9c68acc9) )
+ ROM_LOAD16_BYTE( "269-c7r.c7", 0x3000000, 0x800000, CRC(d8f0340b) SHA1(43114af7557361a8903bb8cf8553f602946a9220) )
+ ROM_LOAD16_BYTE( "269-c8r.c8", 0x3000001, 0x800000, CRC(2570b71b) SHA1(99266e1c2ffcf324793fb5c55325fbc7e6265ac0) )
+ROM_END
+
+/****************************************
+ ID-0270
+ . NGM-2700
+ NEO-MVS PROGBK2R (2003.8.26) (NEO-PCM2 PLAYMORE) / NEO-MVS CHAFIO (2003.7.24) (NEO-CMC 7050)
+ . NGH-2700
+ NEO-AEG PROGBK2S (2003.10.16) (NEO-PCM2 PLAYMORE) / NEO-AEG CHAFIO (2003.7.24) (NEO-CMC 7050)
+****************************************/
+
+ROM_START( samsho5 ) /* Encrypted Set */ /* MVS VERSION */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "270-p1.p1", 0x000000, 0x400000, CRC(4a2a09e6) SHA1(2644de02cdab8ccc605488a7c76b8c9cd1d5bcb9) )
+ ROM_LOAD16_WORD_SWAP( "270-p2.sp2", 0x400000, 0x400000, CRC(e0c74c85) SHA1(df24a4ee76438e40c2f04a714175a7f85cacdfe0) )
+
+ NEO_SFIX_MT_128K
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "270-m1.m1", CRC(49c9901a) SHA1(2623e9765a0eba58fee2de72851e9dc502344a3d) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "270-v1.v1", 0x000000, 0x800000, CRC(62e434eb) SHA1(1985f5e88f8e866f9683b6cea901aa28c04b80bf) )
+ ROM_LOAD( "270-v2.v2", 0x800000, 0x800000, CRC(180f3c9a) SHA1(6d7dc2605ead6e78704efa127e7e0dfe621e2c54) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "270-c1.c1", 0x0000000, 0x800000, CRC(14ffffac) SHA1(2ccebfdd0c7907679ae95bf6eca85b8d322441e2) )
+ ROM_LOAD16_BYTE( "270-c2.c2", 0x0000001, 0x800000, CRC(401f7299) SHA1(94e48cdf1682b1250f53c59f3f71d995e928d17b) )
+ ROM_LOAD16_BYTE( "270-c3.c3", 0x1000000, 0x800000, CRC(838f0260) SHA1(d5c8d3c6e7221d04e0b20882a847752e5ba95635) )
+ ROM_LOAD16_BYTE( "270-c4.c4", 0x1000001, 0x800000, CRC(041560a5) SHA1(d165e533699f15b1e079c82f97db3542b3a7dd66) )
+ ROM_LOAD16_BYTE( "270-c5.c5", 0x2000000, 0x800000, CRC(bd30b52d) SHA1(9f8282e684415b4045218cf764ef7d75a70e3240) )
+ ROM_LOAD16_BYTE( "270-c6.c6", 0x2000001, 0x800000, CRC(86a69c70) SHA1(526732cdb408cf680af9da39057bce6a4dfb5e13) )
+ ROM_LOAD16_BYTE( "270-c7.c7", 0x3000000, 0x800000, CRC(d28fbc3c) SHA1(a82a6ba6760fad14d9309f9147cb7d80bd6f70fc) )
+ ROM_LOAD16_BYTE( "270-c8.c8", 0x3000001, 0x800000, CRC(02c530a6) SHA1(7a3fafa6075506c6ef78cc4ec2cb72118ec83cb9) )
+ROM_END
+
+ROM_START( samsho5h ) /* Encrypted Set, Alternate Set */ /* AES VERSION */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "270-p1c.p1", 0x000000, 0x400000, CRC(bf956089) SHA1(c538289069bf338b9fa7ecc5c9143763dbb776a8) )
+ ROM_LOAD16_WORD_SWAP( "270-p2c.sp2", 0x400000, 0x400000, CRC(943a6b1d) SHA1(12bd02fc197456da6ee86f066086094cef0f4bf9) )
+
+ NEO_SFIX_MT_128K
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "270-m1.m1", CRC(49c9901a) SHA1(2623e9765a0eba58fee2de72851e9dc502344a3d) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "270-v1.v1", 0x000000, 0x800000, CRC(62e434eb) SHA1(1985f5e88f8e866f9683b6cea901aa28c04b80bf) )
+ ROM_LOAD( "270-v2.v2", 0x800000, 0x800000, CRC(180f3c9a) SHA1(6d7dc2605ead6e78704efa127e7e0dfe621e2c54) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "270-c1.c1", 0x0000000, 0x800000, CRC(14ffffac) SHA1(2ccebfdd0c7907679ae95bf6eca85b8d322441e2) )
+ ROM_LOAD16_BYTE( "270-c2.c2", 0x0000001, 0x800000, CRC(401f7299) SHA1(94e48cdf1682b1250f53c59f3f71d995e928d17b) )
+ ROM_LOAD16_BYTE( "270-c3.c3", 0x1000000, 0x800000, CRC(838f0260) SHA1(d5c8d3c6e7221d04e0b20882a847752e5ba95635) )
+ ROM_LOAD16_BYTE( "270-c4.c4", 0x1000001, 0x800000, CRC(041560a5) SHA1(d165e533699f15b1e079c82f97db3542b3a7dd66) )
+ ROM_LOAD16_BYTE( "270-c5.c5", 0x2000000, 0x800000, CRC(bd30b52d) SHA1(9f8282e684415b4045218cf764ef7d75a70e3240) )
+ ROM_LOAD16_BYTE( "270-c6.c6", 0x2000001, 0x800000, CRC(86a69c70) SHA1(526732cdb408cf680af9da39057bce6a4dfb5e13) )
+ ROM_LOAD16_BYTE( "270-c7.c7", 0x3000000, 0x800000, CRC(d28fbc3c) SHA1(a82a6ba6760fad14d9309f9147cb7d80bd6f70fc) )
+ ROM_LOAD16_BYTE( "270-c8.c8", 0x3000001, 0x800000, CRC(02c530a6) SHA1(7a3fafa6075506c6ef78cc4ec2cb72118ec83cb9) )
+ROM_END
+
+/****************************************
+ ID-0271
+ . NGM-2710
+ NEO-MVS PROGBK3S (2003.10.1) (NEO-PCM2 PLAYMORE) (NEO-PVC) / NEO-MVS CHAFIO (2003.7.24) (NEO-CMC 7050)
+ . NGH-2710
+ NEO-AEG PROGBK3S (2003.10.6) (NEO-PCM2 PLAYMORE) (NEO-PVC) / NEO-AEG CHAFIO (2003.7.24) (NEO-CMC 7050)
+****************************************/
+
+ROM_START( kof2003 ) /* Encrypted Code + Sound + GFX Roms */ /* MVS VERSION */
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD32_WORD_SWAP( "271-p1c.p1", 0x000000, 0x400000, CRC(530ecc14) SHA1(812cf7e9902af3f5e9e330b7c05c2171b139ad2b) )
+ ROM_LOAD32_WORD_SWAP( "271-p2c.p2", 0x000002, 0x400000, CRC(fd568da9) SHA1(46364906a1e81dc251117e91a1a7b43af1373ada) )
+ ROM_LOAD16_WORD_SWAP( "271-p3c.p3", 0x800000, 0x100000, CRC(aec5b4a9) SHA1(74087f785590eda5898ce146029818f86ced42b6) )
+
+ NEO_SFIX_MT_512K
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "271-m1c.m1", CRC(f5515629) SHA1(7516bf1b0207a3c8d41dc30c478f8d8b1f71304b) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "271-v1c.v1", 0x000000, 0x800000, CRC(ffa3f8c7) SHA1(7cf4a933973ca23b7f87c81151d8659e6ec4bd20) )
+ ROM_LOAD( "271-v2c.v2", 0x800000, 0x800000, CRC(5382c7d1) SHA1(1bf999705eda80ba1e7b0d6bdd010d9bfb18bd76) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "271-c1c.c1", 0x0000000, 0x800000, CRC(b1dc25d0) SHA1(50adc3c60d5b4b3abd10a49db2267306c6dbd772) )
+ ROM_LOAD16_BYTE( "271-c2c.c2", 0x0000001, 0x800000, CRC(d5362437) SHA1(66db36522dc09106388c707252df9fe1c88b4856) )
+ ROM_LOAD16_BYTE( "271-c3c.c3", 0x1000000, 0x800000, CRC(0a1fbeab) SHA1(9fe30d36ba98d00fda010832ff2f27783dd577c1) )
+ ROM_LOAD16_BYTE( "271-c4c.c4", 0x1000001, 0x800000, CRC(87b19a0c) SHA1(b72a8e7d9124ce859b5149bb4381ba481c161ea5) )
+ ROM_LOAD16_BYTE( "271-c5c.c5", 0x2000000, 0x800000, CRC(704ea371) SHA1(e75b80422f0d72eac826f8ffadf79efeccaab124) )
+ ROM_LOAD16_BYTE( "271-c6c.c6", 0x2000001, 0x800000, CRC(20a1164c) SHA1(c9843b37612a16fc95f6851793b1cfb5d49d811d) )
+ ROM_LOAD16_BYTE( "271-c7c.c7", 0x3000000, 0x800000, CRC(189aba7f) SHA1(7152195a57ad36b28290810fe87ed8c206262ba9) )
+ ROM_LOAD16_BYTE( "271-c8c.c8", 0x3000001, 0x800000, CRC(20ec4fdc) SHA1(deb5f7ec5a090e419b9d1a6a74877bee081198e2) )
+ROM_END
+
+ROM_START( kof2003h ) /* Encrypted Code + Sound + GFX Roms */ /* AES VERSION */
+ /* All chip labels for this set are correct */
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD32_WORD_SWAP( "271-p1k.p1", 0x000000, 0x400000, CRC(d0d0ae3e) SHA1(538d054ac50c91694fbbfefcce548b063713e14e) )
+ ROM_LOAD32_WORD_SWAP( "271-p2k.p2", 0x000002, 0x400000, CRC(fb3f79d9) SHA1(f253d10e732d6e23ae82d74ac9269d21f69ddb4d) )
+ ROM_LOAD16_WORD_SWAP( "271-p3k.p3", 0x800000, 0x100000, CRC(232702ad) SHA1(6045046027dac1cbd4cbd14b5c1ece522bc6197f) )
+
+ NEO_SFIX_MT_512K
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "271-m1k.m1", CRC(48d9affe) SHA1(68f01560b91bbada39001ce01bdeeed5c9bb29f2) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "271-v1c.v1", 0x000000, 0x800000, CRC(ffa3f8c7) SHA1(7cf4a933973ca23b7f87c81151d8659e6ec4bd20) )
+ ROM_LOAD( "271-v2c.v2", 0x800000, 0x800000, CRC(5382c7d1) SHA1(1bf999705eda80ba1e7b0d6bdd010d9bfb18bd76) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "271-c1k.c1", 0x0000000, 0x800000, CRC(efb9dd24) SHA1(1c6fe10fdbfc3306c3b7321c731f28ffdbfb15b8) )
+ ROM_LOAD16_BYTE( "271-c2k.c2", 0x0000001, 0x800000, CRC(3fb90447) SHA1(04d196de7c54c77bc75eba56d3060d46efc2d406) )
+ ROM_LOAD16_BYTE( "271-c3k.c3", 0x1000000, 0x800000, CRC(27950f28) SHA1(924f4de61c86b9efde6f1104b986886f1117055d) )
+ ROM_LOAD16_BYTE( "271-c4k.c4", 0x1000001, 0x800000, CRC(735177f8) SHA1(c95da1bc256995a7f44c9cc3312879ab6cbc15d6) )
+ ROM_LOAD16_BYTE( "271-c5k.c5", 0x2000000, 0x800000, CRC(a51b7c0f) SHA1(53dcf692b35b8d32abe5962ac799b8d641f04710) )
+ ROM_LOAD16_BYTE( "271-c6k.c6", 0x2000001, 0x800000, CRC(d5cae4e0) SHA1(248cd9eaac7a04d6b5d80c7534de90b057d566d7) )
+ ROM_LOAD16_BYTE( "271-c7k.c7", 0x3000000, 0x800000, CRC(e65ae2d0) SHA1(39744e10697d7ac539ecfcfa597e75597f321955) )
+ ROM_LOAD16_BYTE( "271-c8k.c8", 0x3000001, 0x800000, CRC(312f528c) SHA1(b4ad75f54f730ada6cb00112b74022250f055725) )
+ROM_END
+
+/****************************************
+ ID-0272
+ . NGM-2720
+ NEO-MVS PROGBK2S (2003.10.18) (NEO-PCM2 PLAYMORE) / NEO-MVS CHAFIO (2003.7.24) (NEO-CMC 7050)
+ . NGH-2720
+ NEO-AEG PROGBK2S (2003.10.16) (NEO-PCM2 PLAYMORE) / NEO-MVS CHAFIO (2003.7.24) (NEO-CMC 7050)
+****************************************/
+
+ROM_START( samsh5sp ) /* Encrypted Set */ /* MVS VERSION */
+ /* Uncensored */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "272-p1.p1", 0x000000, 0x400000, CRC(fb7a6bba) SHA1(f68c527208d8a55ca44b0caaa8ab66b3a0ffdfe5) )
+ ROM_LOAD16_WORD_SWAP( "272-p2.sp2", 0x400000, 0x400000, CRC(63492ea6) SHA1(6ba946acb62c63ed61a42fe72b7fff3828883bcc) )
+
+ NEO_SFIX_MT_128K
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "272-m1.m1", CRC(adeebf40) SHA1(8cbd63dda3fff4de38060405bf70cd9308c9e66e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "272-v1.v1", 0x000000, 0x800000, CRC(76a94127) SHA1(c3affd7ff1eb02345cfb755962ec173a8ec34acd) )
+ ROM_LOAD( "272-v2.v2", 0x800000, 0x800000, CRC(4ba507f1) SHA1(728d139da3fe8a391fd8be4d24bb7fdd4bf9548a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "272-c1.c1", 0x0000000, 0x800000, CRC(4f97661a) SHA1(87f1721bae5ef16bc23c06b05e64686c396413df) )
+ ROM_LOAD16_BYTE( "272-c2.c2", 0x0000001, 0x800000, CRC(a3afda4f) SHA1(86b475fce0bc0aa04d34e31324e8c7c7c847df19) )
+ ROM_LOAD16_BYTE( "272-c3.c3", 0x1000000, 0x800000, CRC(8c3c7502) SHA1(6639020a8860d2400308e110d7277cbaf6eccc2a) )
+ ROM_LOAD16_BYTE( "272-c4.c4", 0x1000001, 0x800000, CRC(32d5e2e2) SHA1(2b5612017152afd7433aaf99951a084ef5ad6bf0) )
+ ROM_LOAD16_BYTE( "272-c5.c5", 0x2000000, 0x800000, CRC(6ce085bc) SHA1(0432b04a2265c649bba1bbd934dfb425c5d80fb1) )
+ ROM_LOAD16_BYTE( "272-c6.c6", 0x2000001, 0x800000, CRC(05c8dc8e) SHA1(da45c222893f25495a66bdb302f9b0b1de3c8ae0) )
+ ROM_LOAD16_BYTE( "272-c7.c7", 0x3000000, 0x800000, CRC(1417b742) SHA1(dfe35eb4bcd022d2f2dc544ccbbb77078f08c0aa) )
+ ROM_LOAD16_BYTE( "272-c8.c8", 0x3000001, 0x800000, CRC(d49773cd) SHA1(cd8cf3b762d381c1f8f12919579c84a7ef7efb3f) )
+ROM_END
+
+
+/* Some info about the 2nd AES release of Samurai Shodown 5 Special (samsh5sph):
+
+ The fixed carts have a small round neogeo sticker applied to the front side of the cart (top right near cart sticker).
+ SNK Playmore had authorized a recall of all Samurai Shodown V Special (Samurai Spirits 0 Special) home cartridges. This recall involved bug fixes
+ and the addition of fatalities. (The fatalities were originally removed at the last minute due to the Nagasaki incident, a murder caused by a child killing her classmate by knife.)
+ Bug fixes: Improvements on Voice, Back Ground Music, and Practice mode.
+ Fatalities: SNK PLAYMORE modified the game program by including the removed "Zetumei Ougi" in a modified version.
+ This new version does not show the complete fatalities, they are instead replaced by what SNK PLAYMORE refers to as "lessened fatalities".
+*/
+
+ROM_START( samsh5sph ) /* Encrypted Set */ /* AES VERSION, 2nd bugfix release */
+ /* Less censored */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "272-p1ca.p1", 0x000000, 0x400000, CRC(c30a08dd) SHA1(66864954017c841d7ca8490112c3aa7a71a4da70) )
+ ROM_LOAD16_WORD_SWAP( "272-p2ca.sp2", 0x400000, 0x400000, CRC(bd64a518) SHA1(aa259a168930f106377d680db444535411b3bce0) )
+ /* Correct chip labels unknown */
+
+ NEO_SFIX_MT_128K
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "272-m1.m1", CRC(adeebf40) SHA1(8cbd63dda3fff4de38060405bf70cd9308c9e66e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "272-v1.v1", 0x000000, 0x800000, CRC(76a94127) SHA1(c3affd7ff1eb02345cfb755962ec173a8ec34acd) )
+ ROM_LOAD( "272-v2.v2", 0x800000, 0x800000, CRC(4ba507f1) SHA1(728d139da3fe8a391fd8be4d24bb7fdd4bf9548a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "272-c1.c1", 0x0000000, 0x800000, CRC(4f97661a) SHA1(87f1721bae5ef16bc23c06b05e64686c396413df) )
+ ROM_LOAD16_BYTE( "272-c2.c2", 0x0000001, 0x800000, CRC(a3afda4f) SHA1(86b475fce0bc0aa04d34e31324e8c7c7c847df19) )
+ ROM_LOAD16_BYTE( "272-c3.c3", 0x1000000, 0x800000, CRC(8c3c7502) SHA1(6639020a8860d2400308e110d7277cbaf6eccc2a) )
+ ROM_LOAD16_BYTE( "272-c4.c4", 0x1000001, 0x800000, CRC(32d5e2e2) SHA1(2b5612017152afd7433aaf99951a084ef5ad6bf0) )
+ ROM_LOAD16_BYTE( "272-c5.c5", 0x2000000, 0x800000, CRC(6ce085bc) SHA1(0432b04a2265c649bba1bbd934dfb425c5d80fb1) )
+ ROM_LOAD16_BYTE( "272-c6.c6", 0x2000001, 0x800000, CRC(05c8dc8e) SHA1(da45c222893f25495a66bdb302f9b0b1de3c8ae0) )
+ ROM_LOAD16_BYTE( "272-c7.c7", 0x3000000, 0x800000, CRC(1417b742) SHA1(dfe35eb4bcd022d2f2dc544ccbbb77078f08c0aa) )
+ ROM_LOAD16_BYTE( "272-c8.c8", 0x3000001, 0x800000, CRC(d49773cd) SHA1(cd8cf3b762d381c1f8f12919579c84a7ef7efb3f) )
+ROM_END
+
+ROM_START( samsh5spho ) /* Encrypted Set */ /* AES VERSION, 1st release */
+ /* Censored */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "272-p1c.p1", 0x000000, 0x400000, CRC(9291794d) SHA1(66588ff9b00ffad6508b03423548984e28a3209d) )
+ ROM_LOAD16_WORD_SWAP( "272-p2c.sp2", 0x400000, 0x400000, CRC(fa1a7dd8) SHA1(62443dad76d6c1e18f515d7d4ef8e1295a4b7f1d) )
+
+ NEO_SFIX_MT_128K
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "272-m1.m1", CRC(adeebf40) SHA1(8cbd63dda3fff4de38060405bf70cd9308c9e66e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "272-v1.v1", 0x000000, 0x800000, CRC(76a94127) SHA1(c3affd7ff1eb02345cfb755962ec173a8ec34acd) )
+ ROM_LOAD( "272-v2.v2", 0x800000, 0x800000, CRC(4ba507f1) SHA1(728d139da3fe8a391fd8be4d24bb7fdd4bf9548a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "272-c1.c1", 0x0000000, 0x800000, CRC(4f97661a) SHA1(87f1721bae5ef16bc23c06b05e64686c396413df) )
+ ROM_LOAD16_BYTE( "272-c2.c2", 0x0000001, 0x800000, CRC(a3afda4f) SHA1(86b475fce0bc0aa04d34e31324e8c7c7c847df19) )
+ ROM_LOAD16_BYTE( "272-c3.c3", 0x1000000, 0x800000, CRC(8c3c7502) SHA1(6639020a8860d2400308e110d7277cbaf6eccc2a) )
+ ROM_LOAD16_BYTE( "272-c4.c4", 0x1000001, 0x800000, CRC(32d5e2e2) SHA1(2b5612017152afd7433aaf99951a084ef5ad6bf0) )
+ ROM_LOAD16_BYTE( "272-c5.c5", 0x2000000, 0x800000, CRC(6ce085bc) SHA1(0432b04a2265c649bba1bbd934dfb425c5d80fb1) )
+ ROM_LOAD16_BYTE( "272-c6.c6", 0x2000001, 0x800000, CRC(05c8dc8e) SHA1(da45c222893f25495a66bdb302f9b0b1de3c8ae0) )
+ ROM_LOAD16_BYTE( "272-c7.c7", 0x3000000, 0x800000, CRC(1417b742) SHA1(dfe35eb4bcd022d2f2dc544ccbbb77078f08c0aa) )
+ ROM_LOAD16_BYTE( "272-c8.c8", 0x3000001, 0x800000, CRC(d49773cd) SHA1(cd8cf3b762d381c1f8f12919579c84a7ef7efb3f) )
+ROM_END
+
+
+/*************************************
+ *
+ * BrezzaSoft games, licensed?
+ *
+ *************************************/
+
+/****************************************
+ B-J-02
+ . ???-????
+ MVS PROGV (2000.11.17) / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7050)
+****************************************/
+
+ROM_START( jockeygp ) /* MVS ONLY RELEASE */
+ /* Officially licensed? Cart has a holographic 'SNK' sticker applied */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "008-epr.p1", 0x000000, 0x100000, CRC(2fb7f388) SHA1(e3c9b03944b4c10cf5081caaf9c8be1f08c06493) )
+ /* P on eprom, correct chip label unknown */
+ ROM_FILL( 0x100000, 0x100000, 0xff )
+
+ NEO_SFIX_MT_128K
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "008-mg1.m1", CRC(d163c690) SHA1(1dfd04d20c5985037f07cd01000d0b04f3a8f4f4) )
+
+ ROM_REGION( 0x0200000, "ymsnd", 0 )
+ ROM_LOAD( "008-v1.v1", 0x000000, 0x200000, CRC(443eadba) SHA1(3def3c22f0e276bc4c2fc7ff70ce473c08b0d2df) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "008-c1.c1", 0x0000000, 0x800000, CRC(a9acbf18) SHA1(d55122c70cbe78c2679598dc07863e1d1d1a31df) )
+ ROM_LOAD16_BYTE( "008-c2.c2", 0x0000001, 0x800000, CRC(6289eef9) SHA1(a2ede77bb2468a2e1486d74745a22a5451026039) )
+ROM_END
+
+ROM_START( jockeygpa ) /* MVS ONLY RELEASE */
+ /* Officially licensed? Cart has a holographic 'SNK' sticker applied */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "008-epr_a.p1", 0x000000, 0x100000, CRC(b8f35532) SHA1(b46c96677f1bfe324b678112e9c614a20c550d51) )
+ /* P on eprom, correct chip label unknown */
+
+ NEO_SFIX_MT_128K
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "008-mg1.m1", CRC(d163c690) SHA1(1dfd04d20c5985037f07cd01000d0b04f3a8f4f4) )
+
+ ROM_REGION( 0x0200000, "ymsnd", 0 )
+ ROM_LOAD( "008-v1.v1", 0x000000, 0x200000, CRC(443eadba) SHA1(3def3c22f0e276bc4c2fc7ff70ce473c08b0d2df) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "008-c1.c1", 0x0000000, 0x800000, CRC(a9acbf18) SHA1(d55122c70cbe78c2679598dc07863e1d1d1a31df) )
+ ROM_LOAD16_BYTE( "008-c2.c2", 0x0000001, 0x800000, CRC(6289eef9) SHA1(a2ede77bb2468a2e1486d74745a22a5451026039) )
+ROM_END
+
+/****************************************
+ B-V-01
+ . ???-????
+ MVS PROGV (2000.11.17) / MVS CHAV (2000.10.26)
+****************************************/
+
+ROM_START( vliner ) /* MVS ONLY RELEASE */
+ /* Officially licensed? Cart has a holographic 'SNK' sticker applied */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "epr.p1", 0x000000, 0x080000, CRC(72a2c043) SHA1(b34bcc10ff33e4465126a6865fe8bf6b6a3d6cee) )
+ /* P on eprom, correct chip label unknown */
+
+ NEO_SFIX_128K( "s-1.s1", CRC(972d8c31) SHA1(41f09ef28a3791668ea304c74b8b06c117a50e9a) )
+
+ NEO_BIOS_AUDIO_64K( "m-1.m1", CRC(9b92b7d1) SHA1(2c9b777feb9a8e43fa1bd942aba5afe3b5427d94) )
+
+ ROM_REGION( 0x200000, "ymsnd", ROMREGION_ERASE00 )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "c-1.c1", 0x000000, 0x80000, CRC(5118f7c0) SHA1(b6fb6e9cbb660580d98e00780ebf248c0995145a) )
+ ROM_LOAD16_BYTE( "c-2.c2", 0x000001, 0x80000, CRC(efe9b33e) SHA1(910c651aadce9bf59e51c338ceef62287756d2e8) )
+ROM_END
+
+ROM_START( vlinero ) /* MVS ONLY RELEASE */
+ /* Officially licensed? Cart has a holographic 'SNK' sticker applied */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "epr_54.p1", 0x000000, 0x080000, CRC(172efc18) SHA1(8ca739f8780a9e6fa19ac2c3e931d75871603f58) )
+ /* P on eprom, correct chip label unknown */
+
+ NEO_SFIX_128K( "s-1.s1", CRC(972d8c31) SHA1(41f09ef28a3791668ea304c74b8b06c117a50e9a) )
+
+ NEO_BIOS_AUDIO_64K( "m-1.m1", CRC(9b92b7d1) SHA1(2c9b777feb9a8e43fa1bd942aba5afe3b5427d94) )
+
+ ROM_REGION( 0x200000, "ymsnd", ROMREGION_ERASE00 )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "c-1.c1", 0x000000, 0x80000, CRC(5118f7c0) SHA1(b6fb6e9cbb660580d98e00780ebf248c0995145a) )
+ ROM_LOAD16_BYTE( "c-2.c2", 0x000001, 0x80000, CRC(efe9b33e) SHA1(910c651aadce9bf59e51c338ceef62287756d2e8) )
+ROM_END
+
+
+/*************************************
+ *
+ * Vektorlogic games, unlicensed
+ *
+ *************************************/
+
+/****************************************
+ NSBP V1.0U
+ PROGRAM CART REVISION 2.0 COPYRIGHT VEKTORLOGIC (C) 2004 / GRAPHICS CART REVISION 1.2 COPYRIGHT VEKTORLOGIC (C) 2004
+****************************************/
+
+// this doesn't boot, protection like kof98?
+// you can force it to boot with a simple debugger trick, but then it resets when starting a game
+ROM_START( sbp ) /* Unlicensed, no official game ID # */ /* MVS ONLY VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "001-003-02a.u2", 0x000000, 0x080000, CRC(d054d264) SHA1(d1b4bc626d000e0679def0545940fa75035921ab) )
+
+ NEO_SFIX_MT_128K
+ ROM_LOAD( "001-003-02b.u2", 0x000000, 0x20000, CRC(2fd04b2a) SHA1(1acb446704ab56d0a33df7c48855aa8d00fd5a3c) )
+ ROM_IGNORE(0x20000)
+ ROM_IGNORE(0x20000)
+ ROM_IGNORE(0x20000)
+
+ NEO_BIOS_AUDIO_512K( "001-003-01b.u1", CRC(7b1f86f7) SHA1(15b6af7f9fbd0f1f6a1ecd912200ca8d0af2da2a) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "001-003-12a.u12", 0x000000, 0x400000, CRC(c96723b9) SHA1(52eec88550781d45f84efbf9b905d7e7912e96fa) )
+ ROM_LOAD( "001-003-13a.u13", 0x400000, 0x400000, CRC(08c339a5) SHA1(badc9510ae243ef2a7877977eb36efa81b1489fe) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "001-003-03b.u3", 0x000000, 0x200000, CRC(44791317) SHA1(9e773eb9aae5ee767213bd17348ff8a312e9cb16) )
+ ROM_LOAD16_BYTE( "001-003-04b.u4", 0x000001, 0x200000, CRC(a3a1c0df) SHA1(3b1e5be673f7cbb04199a805b0e0de93dad8cb8c) )
+ROM_END
+
+
+/*************************************
+ *
+ * Jamma PCB sets
+ *
+ *************************************/
+
+/****************************************
+ ID-2680
+ . MV-0 ????
+ NEO-MVH MVOBR 2003.8.4
+****************************************/
+
+ROM_START( ms5pcb ) /* Encrypted Set, JAMMA PCB */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD32_WORD_SWAP( "268-p1r.p1", 0x000000, 0x400000, CRC(d0466792) SHA1(880819933d997fab398f91061e9dbccb959ae8a1) )
+ ROM_LOAD32_WORD_SWAP( "268-p2r.p2", 0x000002, 0x400000, CRC(fbf6b61e) SHA1(9ec743d5988b5e3183f37f8edf45c72a8c0c893e) )
+
+ NEO_SFIX_MT_128K
+
+ ROM_REGION16_BE( 0x80000, "mainbios", 0 )
+ /* this contains both an ASIA and JAPAN bios, HARDDIP3 on the PCB selects which to use */
+ ROM_LOAD16_WORD_SWAP( "sp-4x.sp1", 0x00000, 0x80000, CRC(b4590283) SHA1(47047ed5b6062babc0a0bebcc30e4b3f021e115a) )
+
+ /* Encrypted */
+ ROM_REGION( 0x80000, "audiocrypt", 0 )
+ ROM_LOAD( "268-m1.m1", 0x00000, 0x80000, CRC(4a5a6e0e) SHA1(df0f660f2465e1db7be5adfcaf5e88ad61a74a42) )
+ ROM_REGION( 0x90000, "audiocpu", ROMREGION_ERASEFF )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "268-v1.v1", 0x000000, 0x1000000, CRC(8458afe5) SHA1(62b4c6e7db763e9ff2697bbcdb43dc5a56b48c68) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD32_WORD( "268-c1.c1", 0x0000000, 0x1000000, BAD_DUMP CRC(802042e8) SHA1(ff028b65f60f0b51b255a380cc47ec19fdc0c0cf) )
+ ROM_LOAD32_WORD( "268-c2.c2", 0x0000002, 0x1000000, BAD_DUMP CRC(3b89fb9f) SHA1(cbc0729aae961f683b105ec3e1cda58b3f985abc) )
+ ROM_LOAD32_WORD( "268-c3.c3", 0x2000000, 0x1000000, BAD_DUMP CRC(0f3f59e3) SHA1(8cc751dc7d4e94864a9ce3346f23b8f011082fcc) )
+ ROM_LOAD32_WORD( "268-c4.c4", 0x2000002, 0x1000000, BAD_DUMP CRC(3ad8435a) SHA1(b333c8993c9b4c4ea59450ad0a3560e0b28056bc) )
+ROM_END
+
+/****************************************
+ ID-2690
+ . MV-0 ????
+ NEO-MVH MVO 2003.6.5
+****************************************/
+
+ROM_START( svcpcb ) /* Encrypted Set, JAMMA PCB */
+ ROM_REGION( 0x2000000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269-p1.p1", 0x000000, 0x2000000, CRC(432cfdfc) SHA1(19b40d32188a8bace6d2d570c6cf3d2f1e31e379) )
+
+ NEO_SFIX_MT_512K
+
+ ROM_REGION16_BE( 0x80000, "mainbios", 0 )
+ /* this contains both an ASIA and JAPAN bios, HARDDIP3 on the PCB selects which to use */
+ ROM_LOAD16_WORD_SWAP( "sp-4x.sp1", 0x00000, 0x80000, CRC(b4590283) SHA1(47047ed5b6062babc0a0bebcc30e4b3f021e115a) )
+
+ /* Encrypted */
+ ROM_REGION( 0x80000, "audiocrypt", 0 )
+ ROM_LOAD( "269-m1.m1", 0x00000, 0x80000, CRC(f6819d00) SHA1(d3bbe09df502464f104e53501708ac6e2c1832c6) )
+ ROM_REGION( 0x90000, "audiocpu", ROMREGION_ERASEFF )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "269-v1.v1", 0x000000, 0x800000, CRC(c659b34c) SHA1(1931e8111ef43946f68699f8707334c96f753a1e) )
+ ROM_LOAD( "269-v2.v2", 0x800000, 0x800000, CRC(dd903835) SHA1(e58d38950a7a8697bb22a1cc7a371ae6664ae8f9) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD( "269-c1.c1", 0x0000000, 0x2000000, CRC(1b608f9c) SHA1(4e70ad182da2ca18815bd3936efb04a06ebce01e) )
+ ROM_LOAD( "269-c2.c1", 0x2000000, 0x2000000, CRC(5a95f294) SHA1(6123cc7b20b494076185d27c2ffea910e124b195) )
+ROM_END
+
+/****************************************
+ ID-2690
+ . MV-0 ????
+ NEO-MVH MVOB 2003.7.9
+****************************************/
+
+ROM_START( svcpcba ) /* Encrypted Set, JAMMA PCB */
+ /* alt PCB version, this one has the same program roms as the MVS set, and different GFX / Sound rom arrangements */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD32_WORD_SWAP( "269-p1a.p1", 0x000000, 0x400000, CRC(38e2005e) SHA1(1b902905916a30969282f1399a756e32ff069097) )
+ ROM_LOAD32_WORD_SWAP( "269-p2a.p1", 0x000002, 0x400000, CRC(6d13797c) SHA1(3cb71a95cea6b006b44cac0f547df88aec0007b7) )
+
+ NEO_SFIX_MT_512K
+
+ ROM_REGION16_BE( 0x80000, "mainbios", 0 )
+ /* this contains both an ASIA and JAPAN bios, HARDDIP3 on the PCB selects which to use */
+ ROM_LOAD16_WORD_SWAP( "sp-4x.sp1", 0x00000, 0x80000, CRC(b4590283) SHA1(47047ed5b6062babc0a0bebcc30e4b3f021e115a) )
+
+ /* Encrypted */
+ ROM_REGION( 0x80000, "audiocrypt", 0 )
+ ROM_LOAD( "269-m1.m1", 0x00000, 0x80000, CRC(f6819d00) SHA1(d3bbe09df502464f104e53501708ac6e2c1832c6) )
+ ROM_REGION( 0x90000, "audiocpu", ROMREGION_ERASEFF )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "269-v1a.v1", 0x000000, 0x1000000, CRC(a6af4753) SHA1(ec4f61a526b707a7faec4653b773beb3bf3a17ba) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD32_WORD( "269-c1a.c1", 0x0000000, 0x1000000, CRC(e64d2b0c) SHA1(0714198c400e5c273181e4c6f906b49e35fef75d) )
+ ROM_LOAD32_WORD( "269-c2a.c2", 0x0000002, 0x1000000, CRC(249089c2) SHA1(1c0ca19e330efe1a74b2d35a1a9a8d61481e16a9) )
+ ROM_LOAD32_WORD( "269-c3a.c3", 0x2000000, 0x1000000, CRC(d32f2fab) SHA1(273d58cb3c9075075b1ca39a3b247a2cd545fbe7) )
+ ROM_LOAD32_WORD( "269-c4a.c4", 0x2000002, 0x1000000, CRC(bf77e878) SHA1(e6e76f8eed0d04ee9ad39bf38ce305930b10e2c1) )
+ROM_END
+
+/****************************************
+ ID-2710
+ . MV-0 ????
+ NEO-MVH MVOC 2003.11.3
+****************************************/
+
+ROM_START( kf2k3pcb ) /* Encrypted Set, JAMMA PCB */
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD32_WORD_SWAP( "271-p1.p1", 0x000000, 0x400000, CRC(b9da070c) SHA1(1a26325af142a4dd221c336061761468598c4634) )
+ ROM_LOAD32_WORD_SWAP( "271-p2.p2", 0x000002, 0x400000, CRC(da3118c4) SHA1(582e4f44f03276adecb7b2848d3b96bf6da57f1e) )
+ ROM_LOAD16_WORD_SWAP( "271-p3.p3", 0x800000, 0x100000, CRC(5cefd0d2) SHA1(cddc3164629fed4b6f715e12b109ad35d1009355) )
+
+ NEO_SFIX_MT(0x100000)
+
+ ROM_REGION16_BE( 0x80000, "mainbios", 0 )
+ ROM_LOAD16_WORD_SWAP( "spj.sp1", 0x00000, 0x080000, CRC(148dd727) SHA1(2cf592a16c7157de02a989675d47965f2b3a44dd) ) // encrypted
+
+ /* Encrypted */
+ ROM_REGION( 0x80000, "audiocrypt", 0 )
+ ROM_LOAD( "271-m1.m1", 0x00000, 0x80000, CRC(d6bcf2bc) SHA1(df78bc95990eb8e8f3638dde6e1876354df7fe84) )
+ ROM_REGION( 0x90000, "audiocpu", ROMREGION_ERASEFF )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "271-v1.v1", 0x000000, 0x1000000, CRC(1d96154b) SHA1(1d4e262b0d30cee79a4edc83bb9706023c736668) )
+
+ ROM_REGION( 0x6000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD32_WORD( "271-c1.c1", 0x0000000, 0x1000000, CRC(f5ebb327) SHA1(e4f799a54b09adcca13b1b0cf95971a1f4291b61) )
+ ROM_LOAD32_WORD( "271-c2.c2", 0x0000002, 0x1000000, CRC(2be21620) SHA1(872c658f53bbc558e90f18d5db9cbaa82e748a6a) )
+ ROM_LOAD32_WORD( "271-c3.c3", 0x2000000, 0x1000000, CRC(ddded4ff) SHA1(ff7b356125bc9e6637b164f5e81b13eabeb8d804) )
+ ROM_LOAD32_WORD( "271-c4.c4", 0x2000002, 0x1000000, CRC(d85521e6) SHA1(62278fa8690972ed32aca07a4f7f97e7203d9f3a) )
+ ROM_LOAD32_WORD( "271-c5.c5", 0x4000000, 0x1000000, CRC(18aa3540) SHA1(15e0a8c4e0927b1f7eb9bee8f532acea6818d5eb) )
+ ROM_LOAD32_WORD( "271-c6.c6", 0x4000002, 0x1000000, CRC(1c40de87) SHA1(8d6425aed43ff6a96c88194e203df6a783286373) )
+ROM_END
+
+
+
+/*************************************
+ *
+ * Bootleg sets
+ *
+ *************************************/
+
+/*
+ About supported sets:
+
+ For many bootleg sets, only P's (program rom), M1 (sound driver) and S1 (text layer) roms were dumped.
+ For these sets it is assumed that the original V's (sound data) and C's (gfx data) are used.
+ This requires verification.
+
+*/
+
+
+/* Zintrick bootleg */
+
+/* This Zintrick set appears to be a bootleg made from the CD version, not a genuine
+ prototype the code is based on that of the NeoCD version with some minor patches,
+ for example the ADK SAMPLE TEST text that appears on the screen is actually a hacked
+ PROG LOAD ERROR message. The set is supported in order to distinguish the hacks from
+ a real prototype should one turn up. */
+
+ROM_START( zintrckb )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "zin-p1.bin", 0x000000, 0x100000, CRC(06c8fca7) SHA1(b7bf38965c3d0db4d7a9684d14cac94a45b4a45b))
+
+ NEO_SFIX_128K( "zin-s1.bin", CRC(a7ab0e81) SHA1(f0649819b96cea79b05411e0b15c8edc677d79ba) )
+
+ NEO_BIOS_AUDIO_128K( "zin-m1.bin", CRC(fd9627ca) SHA1(b640c1f1ff466f734bb1cb5d7b589cb7e8a55346) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "zin-v1.bin", 0x000000, 0x200000, CRC(c09f74f1) SHA1(d0b56a780a6eba85ff092240b1f1cc6718f17c21) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "zin-c1.bin", 0x000000, 0x200000, CRC(76aee189) SHA1(ad6929804c5b9a59aa609e6baebc6aa37e858a47) )
+ ROM_LOAD16_BYTE( "zin-c2.bin", 0x000001, 0x200000, CRC(844ed4b3) SHA1(fb7cd057bdc6cbe8b78097dd124118bae7402256) )
+ROM_END
+
+/* The King of Fighters '97 bootlegs */
+
+ROM_START( kof97pls )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "kf97-p1p.bin", 0x000000, 0x100000, CRC(c01fda46) SHA1(bc6402f5082efc80a8936364c657165f19b49415) )
+ ROM_LOAD16_WORD_SWAP( "kf97-p2p.bin", 0x100000, 0x400000, CRC(5502b020) SHA1(37c48198d8b3798910a44075782cd1a20b687b4a) )
+
+ NEO_SFIX_128K( "kf97-s1p.bin", CRC(73254270) SHA1(8d06305f9d8890da1327356272b88bdd0dc089f5) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97oro )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "orochi-p1.bin", 0x0000000, 0x100000, CRC(6dcb2946) SHA1(3ccb3fdf3d32a75c7fcfefff5db1f3c75054731f) )
+ ROM_LOAD16_WORD_SWAP( "orochi-p21.bin", 0x0200000, 0x100000, CRC(6e1c4d8c) SHA1(f514638a599a8a582c5f4df72f6a957bab776b7e) )
+ ROM_CONTINUE( 0x100000, 0x100000 )
+ ROM_LOAD16_WORD_SWAP( "orochi-p29.bin", 0x0400000, 0x100000, CRC(4c7c0221) SHA1(fdd05927743cb12210b74768155bb3f59bff01b5) )
+ ROM_CONTINUE( 0x300000, 0x100000 )
+
+ NEO_SFIX_128K( "orochi-s1.bin", CRC(4ee2149a) SHA1(180a1a90021031eac1a643b769d9cdeda56518f5) )
+
+ NEO_BIOS_AUDIO_128K( "orochi-m1.bin", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "orochi-v1.bin", 0x000000, 0x0400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "orochi-v2.bin", 0x400000, 0x0400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "orochi-v3.bin", 0x800000, 0x0400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ // The C1 and C2 here are reconstructed but very likely to be correct.
+ ROM_LOAD16_BYTE( "orochi-c1.bin", 0x0000000, 0x1000000, BAD_DUMP CRC(f13e841c) SHA1(e24b3fb5f7e1c1f4752cad382c264f5f93e737a0) )
+ ROM_LOAD16_BYTE( "orochi-c2.bin", 0x0000001, 0x1000000, BAD_DUMP CRC(2db1f6d3) SHA1(13d957c04bd69f0db140e4633c39db4a9e44eab8) )
+ ROM_LOAD16_BYTE( "orochi-c51.bin", 0x2000000, 0x0200000, CRC(a90340cb) SHA1(97eaa89f0e860e2c591ca3a995fd910d8116347d) )
+ ROM_LOAD16_BYTE( "orochi-c61.bin", 0x2000001, 0x0200000, CRC(188e351a) SHA1(ab724250bc07ace0873fc825b798ace934260988) )
+ ROM_LOAD16_BYTE( "orochi-c52.bin", 0x2400000, 0x0200000, CRC(d4eec50a) SHA1(0930cce5346fbbd5c1524f9148d0577cbe634420) )
+ ROM_LOAD16_BYTE( "orochi-c62.bin", 0x2400001, 0x0200000, CRC(031b1ad5) SHA1(d47b3452953b553348be0a55473b863ce2872f6e) )
+ROM_END
+
+ROM_START( kog )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "5232-p1.bin", 0x000000, 0x200000, CRC(d2413ec6) SHA1(c0bf409d1e714cba5fdc6f79e4c2aec805316634) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x200000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "5232-s1.bin", CRC(0bef69da) SHA1(80918586e694dce35c4dba796eb18abf6a070ebb) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "5232-c1a.bin", 0x0000000, 0x800000, CRC(4eab9b0a) SHA1(a6f6b755215a3f41474e0a76b5463303a522c2d3) )
+ ROM_LOAD16_BYTE( "5232-c2a.bin", 0x0000001, 0x800000, CRC(697f8fd0) SHA1(5784464c2357ccef8e6e79b6298843fc3d13b39c) )
+ ROM_LOAD16_BYTE( "5232-c1b.bin", 0x1000000, 0x800000, CRC(1143fdf3) SHA1(9dc5fe9a3b7599380db62095880e2d6f237a41bd) )
+ ROM_LOAD16_BYTE( "5232-c2b.bin", 0x1000001, 0x800000, CRC(ea82cf8f) SHA1(3d9ab64b69cecd6b3950839ac2c6d151ad66dcf8) )
+ ROM_LOAD16_BYTE( "5232-c3.bin", 0x2000000, 0x400000, CRC(abd1be07) SHA1(857eb68bbee4538770bbfa77aaa540d61ab0abcd) )
+ ROM_LOAD16_BYTE( "5232-c4.bin", 0x2000001, 0x400000, CRC(d2bd967b) SHA1(c494e0a98e127d37ca360a28accc167fa50fb626) )
+ROM_END
+
+/* Shock Troopers - 2nd Squad bootleg */
+
+ROM_START( lans2004 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "lnsq-p1.bin", 0x000000, 0x200000, CRC(b40a879a) SHA1(379f3d44b0bae430b32157fd5f4018d77b243c58) )
+ ROM_LOAD16_WORD_SWAP( "lnsq-p21.bin", 0x200000, 0x200000, CRC(ecdb2d42) SHA1(0d930cd369dfbcab7778b144355e5f70874aa324) )
+ ROM_LOAD16_WORD_SWAP( "lnsq-p22.bin", 0x400000, 0x200000, CRC(fac5e2e7) SHA1(5cce7226c137da80c969df00e1cda41ef9c5082c) )
+
+ NEO_SFIX_128K( "lnsq-s1.bin", CRC(39e82897) SHA1(24a8c94dd7e70ecde8f90ea17f75b6b5d065704f) )
+
+ NEO_BIOS_AUDIO_128K( "246-m1.bin", CRC(d0604ad1) SHA1(fae3cd52a177eadd5f5775ace957cc0f8301e65d) )
+
+ ROM_REGION( 0xA00000, "ymsnd", 0 )
+ ROM_LOAD( "lnsq-v1.bin", 0x000000, 0x400000, CRC(4408ebc3) SHA1(e3f4d8a7e243a8cf48e97d91bbfec7829c0d9404) )
+ ROM_LOAD( "lnsq-v2.bin", 0x400000, 0x400000, CRC(3d953975) SHA1(6a4ab02ab3d4416a65343cf16815007cb273f19b) )
+ ROM_LOAD( "lnsq-v3.bin", 0x800000, 0x200000, CRC(437d1d8e) SHA1(95e015c21707b53ed7223eaa19f6cdcfb4d94f0c) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "lnsq-c1.bin", 0x0000000, 0x800000, CRC(b83de59f) SHA1(8cc060f9a57ab7d4238543b0bce5f5cd1d271d4f) )
+ ROM_LOAD16_BYTE( "lnsq-c2.bin", 0x0000001, 0x800000, CRC(e08969fd) SHA1(c192639d023cdad64a8f53dbcda02aa8cfb4168e) )
+ ROM_LOAD16_BYTE( "lnsq-c3.bin", 0x1000000, 0x800000, CRC(013f2cda) SHA1(6261111ce69dc23fbf97241131e5a6a49355d18c) )
+ ROM_LOAD16_BYTE( "lnsq-c4.bin", 0x1000001, 0x800000, CRC(d8c3a758) SHA1(d19ca3be06f9fb0cb1933b1eb3da318524c3145d) )
+ ROM_LOAD16_BYTE( "lnsq-c5.bin", 0x2000000, 0x800000, CRC(75500b82) SHA1(06d2afe94ea3eb3c4e523f593b8e709dd7c284a3) )
+ ROM_LOAD16_BYTE( "lnsq-c6.bin", 0x2000001, 0x800000, CRC(670ac13b) SHA1(f448a144caae51b69ea19e1f43940db135d1164a) )
+ROM_END
+
+/* Garou - Mark of the Wolves bootleg */
+
+ROM_START( garoubl ) /* bootleg of garoup */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "garou-p1.bin", 0x000000, 0x100000, CRC(fd446d59) SHA1(e37484673a935b2af76c84cd26977c751c0f8cff) )
+ ROM_LOAD16_WORD_SWAP( "garou-p2.bin", 0x100000, 0x400000, CRC(3fb10a84) SHA1(4e4a4f4cd7f0ad2520c938c64c8910e6f8805eaf) )
+
+ NEO_SFIX_128K( "garou-s1.bin", CRC(df720e33) SHA1(58d05002d4851682bd626241fa7b70f78f6f3bc8) )
+
+ NEO_BIOS_AUDIO_512K( "garou-m1.bin", CRC(7c51d002) SHA1(01ffba6cbc8da07804f7b21d8c71c39d64a1a4e2) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "garou-v1.bin", 0x000000, 0x400000, CRC(98d736e4) SHA1(3edda9a1d45b0e38a85156d24fc8ff2f0011239b) )
+ ROM_LOAD( "garou-v2.bin", 0x400000, 0x400000, CRC(eb43c03f) SHA1(83c9c168b154e60a64f1033004b2d33e218bbb8b) )
+ ROM_LOAD( "garou-v3.bin", 0x800000, 0x400000, CRC(10a0f814) SHA1(e86def80d6fb2a38ebc9f3338d22f28c15ce85da) )
+ ROM_LOAD( "garou-v4.bin", 0xc00000, 0x400000, CRC(8918fdd3) SHA1(60ea2104a0f993341124728d8fde0e8e937c55ef) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "garou-c1.bin", 0x0000000, 0x1000000, CRC(e2ac83fa) SHA1(186f88a85d80efbb0371bd42cca152b6b59817fb) )
+ ROM_LOAD16_BYTE( "garou-c2.bin", 0x0000001, 0x1000000, CRC(7c344b24) SHA1(f8af62a917e0ce2bf8ae4f17736fdd84d55d0788) )
+ ROM_LOAD16_BYTE( "garou-c3.bin", 0x2000000, 0x1000000, CRC(d3aec5a6) SHA1(c1a584909a8a1519f676aa49351742b87c18276d) )
+ ROM_LOAD16_BYTE( "garou-c4.bin", 0x2000001, 0x1000000, CRC(e02a242d) SHA1(8a73826d14880303a7bea2a903e842c733178aca) )
+ROM_END
+
+/* Metal Slug 3 bootleg */
+
+ROM_START( mslug3b6 ) /* This "Metal Slug 6" is a hack/bootleg of Metal Slug 3, the real Metal Slug 6 is on Atomiswave Hardware */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "299-p1.bin", 0x000000, 0x200000, CRC(5f2fe228) SHA1(747775a2dfc0da87ad2ddd4f57ce5b2522f23fa5) )
+ ROM_LOAD16_WORD_SWAP( "299-p2.bin", 0x100000, 0x400000, CRC(193fa835) SHA1(fb1f26db7998b0bb6b1c8b92500c1596ec5dfc71) )
+
+ NEO_SFIX_128K( "299-s1.bin", CRC(6f8b9635) SHA1(86b0c8c0ccac913c6192ed6a96c35d4e1a5e8061) )
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+/* Nightmare in the Dark bootleg */
+
+ROM_START( nitdbl )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "nitd-p1.bin", 0x000000, 0x080000, CRC(1a05bd1b) SHA1(7bbddef842d50b0778711063af695b168a76ff61) )
+
+ NEO_SFIX_128K( "nitd-s1.bin", CRC(dd3bf47c) SHA1(881271caee6508b8be51bf1b59c8f1e58e08e551) )
+
+ /* Bootleg m1 is 128k, data is identical */
+ NEO_BIOS_AUDIO_512K( "260-m1.m1", CRC(6407c5e5) SHA1(d273e154cc905b63205a17a1a6d419cac3485a92) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "nitd-v1.bin", 0x000000, 0x200000, CRC(79008868) SHA1(90bd6aaefd37341297ab1f4ae7246e52facd87d0) )
+ ROM_LOAD( "nitd-v2.bin", 0x200000, 0x200000, CRC(728558f9) SHA1(309aa7c933c199b2e540a601b363e7af8744fe00) )
+
+ ROM_REGION( 0x800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "nitd-c1.bin", 0x000000, 0x200000, CRC(b4353190) SHA1(90d5352e243a05f5c2be4fa7475667bb56e78016) )
+ ROM_LOAD16_BYTE( "nitd-c2.bin", 0x000001, 0x200000, CRC(6e27511f) SHA1(1fc5cf7786ad0f0bc7b1623acabe605ad04af3c1) )
+ ROM_LOAD16_BYTE( "nitd-c3.bin", 0x400000, 0x200000, CRC(472cf075) SHA1(7cdd25019e37a3d127e68a4179c051881df19afa) )
+ ROM_LOAD16_BYTE( "nitd-c4.bin", 0x400001, 0x200000, CRC(4c3926e6) SHA1(7fc54a9886dbef911f7b226e3cd20081c535e989) )
+ROM_END
+
+/* The King of Fighters 2001 bootlegs */
+
+ROM_START( cthd2003 ) /* Protected hack/bootleg of kof2001 Phenixsoft */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "5003-p1.bin", 0x000000, 0x100000, CRC(bb7602c1) SHA1(abf329a40f34c88f7325b255e3bc090db1edaca4) )
+ ROM_LOAD16_WORD_SWAP( "5003-p2.bin", 0x100000, 0x400000, CRC(adc1c22b) SHA1(271e0629989257a0d21d280c05df53df259414b1) )
+
+ NEO_SFIX_128K( "5003-s1.bin", CRC(5ba29aab) SHA1(e7ea67268a10243693bff722e6fd2276ca540acf) )
+
+ NEO_BIOS_AUDIO_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) )
+
+ /* sound roms are identical to kof2001 */
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) )
+ ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) )
+ ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) )
+ ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) )
+ ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) )
+ ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) )
+ ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) )
+ ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) )
+ROM_END
+
+ROM_START( ct2k3sp ) /* Protected hack/bootleg of kof2001 Phenixsoft */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "5003-p1sp.bin", 0x000000, 0x100000, CRC(ab5c4de0) SHA1(ca9a6bfd4c32d791ecabb34ccbf2cbf0e84f97d5) )
+ ROM_LOAD16_WORD_SWAP( "5003-p2.bin", 0x100000, 0x400000, CRC(adc1c22b) SHA1(271e0629989257a0d21d280c05df53df259414b1) )
+
+ NEO_SFIX( 0x40000, "5003-s1sp.bin", CRC(6c355ab4) SHA1(71ac2bcd3dbda8402baecc56dabc2297b148a900) )
+
+ NEO_BIOS_AUDIO_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) )
+
+ /* sound roms are identical to kof2001 */
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) )
+ ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) )
+ ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) )
+ ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) )
+ ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) )
+ ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) )
+ ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) )
+ ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) )
+ROM_END
+
+ROM_START( ct2k3sa ) /* Protected hack/bootleg of kof2001 Phenixsoft, alternate version */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "5003-p1sa.bin", 0x000000, 0x100000, CRC(013a509d) SHA1(c61c9b777e6e062b5f4ad87cdb78e9ca05e9bfb9) )
+ ROM_LOAD16_WORD_SWAP( "5003-p2.bin", 0x100000, 0x400000, CRC(adc1c22b) SHA1(271e0629989257a0d21d280c05df53df259414b1) )
+
+ NEO_SFIX_128K( "5003-s1sa.bin", CRC(4e1f7eae) SHA1(3302ad290804272447ccd2e8edd3ce968f043db1) )
+ /* S1 needs redump, correct? */
+
+ NEO_BIOS_AUDIO_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) )
+
+ /* Original set has 2x64 mbit sound roms */
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) )
+ ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) )
+ ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) )
+ ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) )
+ ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) )
+ ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) )
+ ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) )
+ ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) )
+ROM_END
+
+/* Metal Slug 4 bootleg */
+
+ROM_START( ms4plus )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "ms4-p1p.bin", 0x000000, 0x100000, CRC(806a6e04) SHA1(df503772d607271ea51285154c9fd68e18b143ce) )
+ ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+
+ NEO_SFIX_128K( "ms4-s1p.bin", CRC(07ff87ce) SHA1(96ddb439de2a26bf9869015d7fb19129d40f3fd9) )
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_128K( "263-m1.m1", CRC(46ac8228) SHA1(5aeea221050c98e4bb0f16489ce772bf1c80f787) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) )
+ ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) )
+ ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) )
+ ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) )
+ ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) )
+ ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) )
+ ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) )
+ROM_END
+
+/* The King of Fighters 2002 bootlegs */
+
+ROM_START( kof2002b )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265-p1.p1", 0x000000, 0x100000, CRC(9ede7323) SHA1(ad9d45498777fda9fa58e75781f48e09aee705a6) )
+ ROM_LOAD16_WORD_SWAP( "2k2-p2.bin", 0x100000, 0x400000, CRC(6dbee4df) SHA1(9a9646c81b233b44213c624b898c19f83e9a07f8) )
+
+ NEO_SFIX_128K( "2k2-s1.bin", CRC(2255f5bf) SHA1(8a82b3e9717df30b580b9d0bac0b403f8102a002) )
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_128K( "265-m1.m1", CRC(85aaa632) SHA1(744fba4ca3bc3a5873838af886efb97a8a316104) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "2k2-c1.bin", 0x0000000, 0x800000, CRC(f25d3d66) SHA1(eb1da3e171c126d91e851ce141840709a2f62f8a) )
+ ROM_LOAD16_BYTE( "2k2-c2.bin", 0x0000001, 0x800000, CRC(e3e66f1d) SHA1(af93e9e134816353d6187a53959c6e418b83ad8d) )
+ ROM_LOAD16_BYTE( "2k2-c3.bin", 0x1000000, 0x800000, CRC(8732fa30) SHA1(81c482b375c04bcfbbc69e3e2a2e9ab567c9bb78) )
+ ROM_LOAD16_BYTE( "2k2-c4.bin", 0x1000001, 0x800000, CRC(0989fd40) SHA1(355d6b2c528319e41ce89952c5cf5bcc47cd6de0) )
+ ROM_LOAD16_BYTE( "2k2-c5.bin", 0x2000000, 0x800000, CRC(60635cd2) SHA1(0cf2c54e003edfcdbed64e0570e6b800e7ed3c1b) )
+ ROM_LOAD16_BYTE( "2k2-c6.bin", 0x2000001, 0x800000, CRC(bd736824) SHA1(d897fc8248ace145fef57d8aa393eaebc4a1ccc4) )
+ ROM_LOAD16_BYTE( "2k2-c7.bin", 0x3000000, 0x800000, CRC(2da8d8cf) SHA1(ab8aa88b8e1baba88e5fc01d0f3cb55503b6c81a) )
+ ROM_LOAD16_BYTE( "2k2-c8.bin", 0x3000001, 0x800000, CRC(2048404a) SHA1(d6d0f049ffc196334825328e0472b04e04bf6695) )
+ROM_END
+
+ROM_START( kf2k2pls )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "2k2-p1p.bin", 0x000000, 0x100000, CRC(3ab03781) SHA1(86946c19f1c4d9ab5cde86688d698bf63118a39d) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_128K( "2k2-s1p.bin", CRC(595e0006) SHA1(ff086bdaa6f40e9ad963e1100a27f44618d684ed) )
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_128K( "265-m1.m1", CRC(85aaa632) SHA1(744fba4ca3bc3a5873838af886efb97a8a316104) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kf2k2pla )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "2k2-p1pa.bin", 0x000000, 0x100000, CRC(6a3a02f3) SHA1(c9973b64e9a87fa38dde233ee3e9a73ba085b013) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_128K( "2k2-s1pa.bin", CRC(1a3ed064) SHA1(9749bb55c750e6b65d651998c2649c5fb68db68e))
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_128K( "265-m1.m1", CRC(85aaa632) SHA1(744fba4ca3bc3a5873838af886efb97a8a316104) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kf2k2mp )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "kf02m-p1.bin", 0x000000, 0x400000, CRC(ff7c6ec0) SHA1(704c14d671dcb4cfed44d9f978a289cb7dd9d065) )
+ ROM_LOAD16_WORD_SWAP( "kf02m-p2.bin", 0x400000, 0x400000, CRC(91584716) SHA1(90da863037cf775957fa154cd42536e221df5740) )
+
+ NEO_SFIX_128K( "kf02m-s1.bin", CRC(348d6f2c) SHA1(586da8a936ebbb71af324339a4b60ec91dfa0990) )
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_128K( "265-m1.m1", CRC(85aaa632) SHA1(744fba4ca3bc3a5873838af886efb97a8a316104) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kf2k2mp2 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "k2k2m2p1.bin", 0x000000, 0x200000, CRC(1016806c) SHA1(a583b45e9c0d6f67b95c52e44444aabe88f68d97) )
+ ROM_LOAD16_WORD_SWAP( "k2k2m2p2.bin", 0x200000, 0x400000, CRC(432fdf53) SHA1(d7e542cd84d948162c60768e40ee4ed33d8e7913) )
+
+ NEO_SFIX_128K( "k2k2m2s1.bin", CRC(446e74c5) SHA1(efc2afb26578bad9eb21659c70eb0f827d6d1ef6) )
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_128K( "265-m1.m1", CRC(85aaa632) SHA1(744fba4ca3bc3a5873838af886efb97a8a316104) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof10th )
+ ROM_REGION( 0x900000, "maincpu", 0 ) // Modified
+ ROM_LOAD16_WORD_SWAP( "kf10-p1.bin", 0x000000, 0x800000, CRC(b1fd0c43) SHA1(5f842a8a27be2d957fd4140d6431ae47154997bb) )
+
+ NEO_SFIX_MT(0x40000)
+
+ NEO_BIOS_AUDIO_128K( "kf10-m1.bin", CRC(f6fab859) SHA1(0184aa1394b9f9946d610278b53b846020dd88dc) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) )
+ ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "kf10-c1a.bin", 0x0000000, 0x400000, CRC(3bbc0364) SHA1(e8aa7ff82f151ce1db56f259377b64cceef85af0) )
+ ROM_LOAD16_BYTE( "kf10-c2a.bin", 0x0000001, 0x400000, CRC(91230075) SHA1(d9098e05a7ba6008661147b6bf8bc2f494b8b72b) )
+ ROM_LOAD16_BYTE( "kf10-c1b.bin", 0x0800000, 0x400000, CRC(b5abfc28) SHA1(eabf60992bb3485c95330065294071ec155bfe7c) )
+ ROM_LOAD16_BYTE( "kf10-c2b.bin", 0x0800001, 0x400000, CRC(6cc4c6e1) SHA1(be824a944e745ee18efdc45c81fd496a4d624b9c) )
+ ROM_LOAD16_BYTE( "kf10-c3a.bin", 0x1000000, 0x400000, CRC(5b3d4a16) SHA1(93ac1cd7739100f8c32732644f81f2a19837b131) )
+ ROM_LOAD16_BYTE( "kf10-c4a.bin", 0x1000001, 0x400000, CRC(c6f3419b) SHA1(340c17a73aeb7bf8a6209f8459e6f00000075b50) )
+ ROM_LOAD16_BYTE( "kf10-c3b.bin", 0x1800000, 0x400000, CRC(9d2bba19) SHA1(5ebbd0af3f83a60e33c8ccb743e3d5f5a96f1273) )
+ ROM_LOAD16_BYTE( "kf10-c4b.bin", 0x1800001, 0x400000, CRC(5a4050cb) SHA1(8fd2291f349efa1ed5cd37ad4e273b60fe831a77) )
+ ROM_LOAD16_BYTE( "kf10-c5a.bin", 0x2000000, 0x400000, CRC(a289d1e1) SHA1(50c7d7ebde6e118a01036cc3e40827fcd9f0d3fd) )
+ ROM_LOAD16_BYTE( "kf10-c6a.bin", 0x2000001, 0x400000, CRC(e6494b5d) SHA1(18e064b9867ae0b0794065f8dbefd486620419db) )
+ ROM_LOAD16_BYTE( "kf10-c5b.bin", 0x2800000, 0x400000, CRC(404fff02) SHA1(56d1b32c87ea4885e49264e8b21846e465a20e1f) )
+ ROM_LOAD16_BYTE( "kf10-c6b.bin", 0x2800001, 0x400000, CRC(f2ccfc9e) SHA1(69db7fac7023785ab94ea711a72dbc2826cfe1a3) )
+ ROM_LOAD16_BYTE( "kf10-c7a.bin", 0x3000000, 0x400000, CRC(be79c5a8) SHA1(ded3c5eb3571647f50533eb682c2675372ace3fb) )
+ ROM_LOAD16_BYTE( "kf10-c8a.bin", 0x3000001, 0x400000, CRC(a5952ca4) SHA1(76dbb3cb45ce5a4beffa1ed29491204fc6617e42) )
+ ROM_LOAD16_BYTE( "kf10-c7b.bin", 0x3800000, 0x400000, CRC(3fdb3542) SHA1(7d2050752a2064cd6729f483a0da93808e2c6033) )
+ ROM_LOAD16_BYTE( "kf10-c8b.bin", 0x3800001, 0x400000, CRC(661b7a52) SHA1(0ae2ad2389134892f156337332b77adade3ddad1) )
+ROM_END
+
+ROM_START( kf10thep ) /* this is a hack of kof2002 much like the various korean hacks / bootlegs of games */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "5008-p1.bin", 0x000000, 0x200000, CRC(bf5469ba) SHA1(f05236d8fffab5836c0d27becdeeb80def32ee49) )
+ ROM_LOAD16_WORD_SWAP( "5008-p2.bin", 0x200000, 0x400000, CRC(a649ec38) SHA1(5c63ed5e5c848940f587c966da4908d04cf1293c) )
+ ROM_LOAD16_WORD_SWAP( "5008-p3.bin", 0x600000, 0x200000, CRC(e629e13c) SHA1(6ebe080ce01c51064cb2f4d89315ba98a45ae727) )
+
+ NEO_SFIX_128K( "5008-s1.bin", CRC(92410064) SHA1(1fb800b46341858207d3b6961a760289fbec7faa) )
+
+ NEO_BIOS_AUDIO_128K( "5008-m1.bin", CRC(5a47d9ad) SHA1(0197737934653acc6c97221660d789e9914f3578) )
+ //NEO_BIOS_AUDIO_128K( "5004-m1.bin", CRC(f6fab859) SHA1(0184aa1394b9f9946d610278b53b846020dd88dc) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) )
+ ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "kf10-c1a.bin", 0x0000000, 0x400000, CRC(3bbc0364) SHA1(e8aa7ff82f151ce1db56f259377b64cceef85af0) )
+ ROM_LOAD16_BYTE( "kf10-c2a.bin", 0x0000001, 0x400000, CRC(91230075) SHA1(d9098e05a7ba6008661147b6bf8bc2f494b8b72b) )
+ ROM_LOAD16_BYTE( "kf10-c1b.bin", 0x0800000, 0x400000, CRC(b5abfc28) SHA1(eabf60992bb3485c95330065294071ec155bfe7c) )
+ ROM_LOAD16_BYTE( "kf10-c2b.bin", 0x0800001, 0x400000, CRC(6cc4c6e1) SHA1(be824a944e745ee18efdc45c81fd496a4d624b9c) )
+ ROM_LOAD16_BYTE( "kf10-c3a.bin", 0x1000000, 0x400000, CRC(5b3d4a16) SHA1(93ac1cd7739100f8c32732644f81f2a19837b131) )
+ ROM_LOAD16_BYTE( "kf10-c4a.bin", 0x1000001, 0x400000, CRC(c6f3419b) SHA1(340c17a73aeb7bf8a6209f8459e6f00000075b50) )
+ ROM_LOAD16_BYTE( "kf10-c3b.bin", 0x1800000, 0x400000, CRC(9d2bba19) SHA1(5ebbd0af3f83a60e33c8ccb743e3d5f5a96f1273) )
+ ROM_LOAD16_BYTE( "kf10-c4b.bin", 0x1800001, 0x400000, CRC(5a4050cb) SHA1(8fd2291f349efa1ed5cd37ad4e273b60fe831a77) )
+ ROM_LOAD16_BYTE( "kf10-c5a.bin", 0x2000000, 0x400000, CRC(a289d1e1) SHA1(50c7d7ebde6e118a01036cc3e40827fcd9f0d3fd) )
+ ROM_LOAD16_BYTE( "kf10-c6a.bin", 0x2000001, 0x400000, CRC(e6494b5d) SHA1(18e064b9867ae0b0794065f8dbefd486620419db) )
+ ROM_LOAD16_BYTE( "kf10-c5b.bin", 0x2800000, 0x400000, CRC(404fff02) SHA1(56d1b32c87ea4885e49264e8b21846e465a20e1f) )
+ ROM_LOAD16_BYTE( "kf10-c6b.bin", 0x2800001, 0x400000, CRC(f2ccfc9e) SHA1(69db7fac7023785ab94ea711a72dbc2826cfe1a3) )
+ ROM_LOAD16_BYTE( "kf10-c7a.bin", 0x3000000, 0x400000, CRC(be79c5a8) SHA1(ded3c5eb3571647f50533eb682c2675372ace3fb) )
+ ROM_LOAD16_BYTE( "kf10-c8a.bin", 0x3000001, 0x400000, CRC(a5952ca4) SHA1(76dbb3cb45ce5a4beffa1ed29491204fc6617e42) )
+ ROM_LOAD16_BYTE( "5008-c7b.bin", 0x3800000, 0x400000, CRC(33604ef0) SHA1(57deec23c81d5d673ce5992cef1f2567f1a2148e) )
+ ROM_LOAD16_BYTE( "5008-c8b.bin", 0x3800001, 0x400000, CRC(51f6a8f8) SHA1(9ef1cdbdd125a2b430346c22b59f36902312905f) )
+ROM_END
+
+ROM_START( kf2k5uni )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "5006-p2a.bin", 0x000000, 0x400000, CRC(ced883a2) SHA1(f93db4d74ce0a73a3e9631966fee37be22470c89) )
+ ROM_LOAD16_WORD_SWAP( "5006-p1.bin", 0x400000, 0x400000, CRC(72c39c46) SHA1(4ba0657de20319c0bc30c7c3bba7d7331d0ce9a7) )
+
+ NEO_SFIX_128K( "5006-s1.bin", CRC(91f8c544) SHA1(9d16cafb9ca4bc54f31f7fd82b1be06ec8b11c79) )
+
+ NEO_BIOS_AUDIO_128K( "5006-m1.bin", CRC(9050bfe7) SHA1(765bf3d954f775231b7ef2504bb844cd0b29e3f7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) )
+ ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "kf10-c1a.bin", 0x0000000, 0x400000, CRC(3bbc0364) SHA1(e8aa7ff82f151ce1db56f259377b64cceef85af0) )
+ ROM_LOAD16_BYTE( "kf10-c2a.bin", 0x0000001, 0x400000, CRC(91230075) SHA1(d9098e05a7ba6008661147b6bf8bc2f494b8b72b) )
+ ROM_LOAD16_BYTE( "kf10-c1b.bin", 0x0800000, 0x400000, CRC(b5abfc28) SHA1(eabf60992bb3485c95330065294071ec155bfe7c) )
+ ROM_LOAD16_BYTE( "kf10-c2b.bin", 0x0800001, 0x400000, CRC(6cc4c6e1) SHA1(be824a944e745ee18efdc45c81fd496a4d624b9c) )
+ ROM_LOAD16_BYTE( "kf10-c3a.bin", 0x1000000, 0x400000, CRC(5b3d4a16) SHA1(93ac1cd7739100f8c32732644f81f2a19837b131) )
+ ROM_LOAD16_BYTE( "kf10-c4a.bin", 0x1000001, 0x400000, CRC(c6f3419b) SHA1(340c17a73aeb7bf8a6209f8459e6f00000075b50) )
+ ROM_LOAD16_BYTE( "kf10-c3b.bin", 0x1800000, 0x400000, CRC(9d2bba19) SHA1(5ebbd0af3f83a60e33c8ccb743e3d5f5a96f1273) )
+ ROM_LOAD16_BYTE( "kf10-c4b.bin", 0x1800001, 0x400000, CRC(5a4050cb) SHA1(8fd2291f349efa1ed5cd37ad4e273b60fe831a77) )
+ ROM_LOAD16_BYTE( "kf10-c5a.bin", 0x2000000, 0x400000, CRC(a289d1e1) SHA1(50c7d7ebde6e118a01036cc3e40827fcd9f0d3fd) )
+ ROM_LOAD16_BYTE( "kf10-c6a.bin", 0x2000001, 0x400000, CRC(e6494b5d) SHA1(18e064b9867ae0b0794065f8dbefd486620419db) )
+ ROM_LOAD16_BYTE( "kf10-c5b.bin", 0x2800000, 0x400000, CRC(404fff02) SHA1(56d1b32c87ea4885e49264e8b21846e465a20e1f) )
+ ROM_LOAD16_BYTE( "kf10-c6b.bin", 0x2800001, 0x400000, CRC(f2ccfc9e) SHA1(69db7fac7023785ab94ea711a72dbc2826cfe1a3) )
+ ROM_LOAD16_BYTE( "kf10-c7a.bin", 0x3000000, 0x400000, CRC(be79c5a8) SHA1(ded3c5eb3571647f50533eb682c2675372ace3fb) )
+ ROM_LOAD16_BYTE( "kf10-c8a.bin", 0x3000001, 0x400000, CRC(a5952ca4) SHA1(76dbb3cb45ce5a4beffa1ed29491204fc6617e42) )
+ ROM_LOAD16_BYTE( "kf10-c7b.bin", 0x3800000, 0x400000, CRC(3fdb3542) SHA1(7d2050752a2064cd6729f483a0da93808e2c6033) )
+ ROM_LOAD16_BYTE( "kf10-c8b.bin", 0x3800001, 0x400000, CRC(661b7a52) SHA1(0ae2ad2389134892f156337332b77adade3ddad1) )
+ROM_END
+
+ROM_START( kof2k4se )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "k2k4s-p2.bin", 0x000000, 0x080000, CRC(21a84084) SHA1(973e8a0bffa0e1f055803f663f81a8e03701802d) )
+ ROM_LOAD16_WORD_SWAP( "k2k4s-p3.bin", 0x080000, 0x080000, CRC(febb484e) SHA1(4b1838795b84f22d578ad043641df0a7bf7d9774) )
+ ROM_LOAD16_WORD_SWAP( "k2k4s-p1.bin", 0x100000, 0x400000, CRC(e6c50566) SHA1(cc6a3489a3bfeb4dcc65b6ddae0030f7e66fbabe) )
+
+ NEO_SFIX_128K( "k2k4s-s1.bin", CRC(a3c9b2d8) SHA1(1472d2cbd7bb73e84824ecf773924007e6117e77) )
+
+ NEO_BIOS_AUDIO_128K( "k2k4s-m1.bin", CRC(5a47d9ad) SHA1(0197737934653acc6c97221660d789e9914f3578) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "k2k4s-v2.bin", 0x000000, 0x800000, CRC(e4ddfb3f) SHA1(eb8220ab01c16cf9244b7f3f9912bec0db561b85) )
+ ROM_LOAD( "k2k4s-v1.bin", 0x800000, 0x800000, CRC(b887d287) SHA1(f593a5722df6f6fac023d189a739a117e976bb2f) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "k2k4s-c4.bin", 0x0000000, 0x800000, CRC(7a050288) SHA1(55a20c5b01e11a859f096af3f8e09986025d288f) )
+ ROM_LOAD16_BYTE( "k2k4s-c8.bin", 0x0000001, 0x800000, CRC(e924afcf) SHA1(651e974f7339d2cdcfa58c5398013197a0525b77) )
+ ROM_LOAD16_BYTE( "k2k4s-c3.bin", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63ab83ddc5f688dc8165a7ff8d262df3fcd942a2) )
+ ROM_LOAD16_BYTE( "k2k4s-c7.bin", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2a414285e48aa948b5b0d4a9333bab083b5fb853) )
+ ROM_LOAD16_BYTE( "k2k4s-c2.bin", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(e01adc7a4633bc0951b9b4f09abc07d728e9a2d9) )
+ ROM_LOAD16_BYTE( "k2k4s-c6.bin", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5d28eea7b581e780b78f391a8179f1678ee0d9a5) )
+ ROM_LOAD16_BYTE( "k2k4s-c1.bin", 0x3000000, 0x800000, CRC(fa705b2b) SHA1(f314c66876589601806352484dd8e45bc41be692) )
+ ROM_LOAD16_BYTE( "k2k4s-c5.bin", 0x3000001, 0x800000, CRC(2c912ff9) SHA1(b624a625ea3e221808b7ea43fb0b1a51d8c1853e) )
+ROM_END
+
+/* Matrimelee bootleg */
+
+ROM_START( matrimbl )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "266-p1.p1", 0x000000, 0x100000, CRC(5d4c2dc7) SHA1(8d723b0d28ec344eef26009b361a2b97d300dd51) )
+ ROM_LOAD16_WORD_SWAP( "266-p2.sp2", 0x100000, 0x400000, CRC(a14b1906) SHA1(1daa14d73512f760ef569b06f9facb279437d1db) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_128K( "mart-m1.bin", CRC(3ea96ab1) SHA1(e5053c4312f658faed2a34e38325a22ef792d384) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "mart-v1.bin", 0x000000, 0x400000, CRC(352b0a07) SHA1(19f7cc12f3f6d0fda9c7449816c4c32367447897) )
+ ROM_LOAD16_WORD_SWAP( "mart-v2.bin", 0x400000, 0x400000, CRC(1e9bd59e) SHA1(0f754e780d0ebb815a92a45ad55f85f6d0181b70) )
+ ROM_LOAD( "mart-v3.bin", 0x800000, 0x400000, CRC(e8362fcc) SHA1(42d558fd80cabe22a1c09a1fa75741afbcf46b7c) )
+ ROM_LOAD16_WORD_SWAP( "mart-v4.bin", 0xc00000, 0x400000, CRC(c8c79b19) SHA1(9c7a5e694d68f37a27209e1400b60b6241a04cc7) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "mart-c1.bin", 0x0000000, 0x800000, CRC(a5595656) SHA1(d86281607f22e4f2001047eaeeda99cd673c508c) )
+ ROM_LOAD16_BYTE( "mart-c2.bin", 0x0000001, 0x800000, CRC(c5f7c300) SHA1(9ff5ffb750bd2e925667d84389192f92183e8677) )
+ ROM_LOAD16_BYTE( "mart-c3.bin", 0x1000000, 0x800000, CRC(574efd7d) SHA1(6cac303db705fe2800701ee51de9e9fca04e6e66) )
+ ROM_LOAD16_BYTE( "mart-c4.bin", 0x1000001, 0x800000, CRC(109d54d9) SHA1(22cb748b3b14317b90d9d9951297ada2bfc3a3f1) )
+ ROM_LOAD16_BYTE( "mart-c5.bin", 0x2000000, 0x800000, CRC(15c9e882) SHA1(1c9f1ccaed4fdd9d8f5cc9b6fcaca3c4e328e59e) )
+ ROM_LOAD16_BYTE( "mart-c6.bin", 0x2000001, 0x800000, CRC(77497b97) SHA1(c6481bea5a36f8210971fdcb4bfbe7ed93c769de) )
+ ROM_LOAD16_BYTE( "mart-c7.bin", 0x3000000, 0x800000, CRC(ab481bb6) SHA1(6b2d97c5505eeb28e300b075f37f0d69ef44463a) )
+ ROM_LOAD16_BYTE( "mart-c8.bin", 0x3000001, 0x800000, CRC(906cf267) SHA1(b0f2cf8887794d715f208751ddd1ed26b2c3ffdf) )
+ROM_END
+
+/* Metal Slug 5 bootleg */
+
+ROM_START( ms5plus )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "ms5-p1p.bin", 0x000000, 0x100000, CRC(106b276f) SHA1(0e840df95f3813145e5043573483c7610d2d3e68) )
+ ROM_LOAD16_WORD_SWAP( "ms5-p2p.bin", 0x100000, 0x200000, CRC(d6a458e8) SHA1(c0a8bdae06d62859fb6734766ccc190eb2a809a4) )
+ ROM_LOAD16_WORD_SWAP( "ms5-p3p.bin", 0x300000, 0x200000, CRC(439ec031) SHA1(f0ad8f9be7d26bc504593c1321bd23c286a221f0) )
+
+ NEO_SFIX_128K("ms5-s1p.bin", CRC(21e04432) SHA1(10057a2aa487087f7143d1d69fdad978a6bef0f7) )
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "268-m1.m1", CRC(4a5a6e0e) SHA1(df0f660f2465e1db7be5adfcaf5e88ad61a74a42) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) )
+ ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "268-c1c.c1", 0x0000000, 0x800000, CRC(ab7c389a) SHA1(025a188de589500bf7637fa8e7a37ab24bf4312e) )
+ ROM_LOAD16_BYTE( "268-c2c.c2", 0x0000001, 0x800000, CRC(3560881b) SHA1(493d218c92290b4770024d6ee2917c4022753b07) )
+ ROM_LOAD16_BYTE( "268-c3c.c3", 0x1000000, 0x800000, CRC(3af955ea) SHA1(cf36b6ae9b0d12744b17cb7a928399214de894be) )
+ ROM_LOAD16_BYTE( "268-c4c.c4", 0x1000001, 0x800000, CRC(c329c373) SHA1(5073d4079958a0ef5426885af2c9e3178f37d5e0) )
+ ROM_LOAD16_BYTE( "268-c5c.c5", 0x2000000, 0x800000, CRC(959c8177) SHA1(889bda7c65d71172e7d89194d1269561888fe789) )
+ ROM_LOAD16_BYTE( "268-c6c.c6", 0x2000001, 0x800000, CRC(010a831b) SHA1(aec140661e3ae35d264df416478ba15188544d91) )
+ ROM_LOAD16_BYTE( "268-c7c.c7", 0x3000000, 0x800000, CRC(6d72a969) SHA1(968dd9a4d1209b770b9b85ea6532fa24d262a262) )
+ ROM_LOAD16_BYTE( "268-c8c.c8", 0x3000001, 0x800000, CRC(551d720e) SHA1(ebf69e334fcaba0fda6fd432fd0970283a365d12) )
+ROM_END
+
+/* Puzzle Bobble / Bust-A-Move (Neo-Geo) bootleg */
+
+ROM_START( pbobblenb )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "u7", 0x000000, 0x080000, CRC(ac1e9ef3) SHA1(a2b125ee70869667431ab125bc29e768500802ad) )
+
+ NEO_SFIX_128K( "us1", CRC(9caae538) SHA1 (cf2d90a7c1a42107c0bb8b9a61397634286dbe0a) )
+
+ NEO_BIOS_AUDIO_128K( "um1", CRC(f424368a) SHA1 (5e5bbcaeb82bed2ee17df08f005ca20ad1030723) )
+
+ ROM_REGION( 0x380000, "ymsnd", 0 )
+ /* 0x000000-0x1fffff empty */
+ ROM_LOAD( "u8", 0x200000, 0x100000, CRC(0840cbc4) SHA1 (1adbd7aef44fa80832f63dfb8efdf69fd7256a57) )
+ ROM_LOAD( "u9", 0x300000, 0x080000, CRC(0a548948) SHA1 (e1e4afd17811cb60401c14fbcf0465035165f4fb) )
+
+ ROM_REGION( 0x100000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "uc5", 0x000000, 0x80000, CRC(e89ad494) SHA1 (69c9ea415773af94ac44c48af05d55ada222b138) )
+ ROM_LOAD16_BYTE( "uc6", 0x000001, 0x80000, CRC(4b42d7eb) SHA1 (042ae50a528cea21cf07771d3915c57aa16fd5af) )
+ROM_END
+
+/* SNK vs. CAPCOM SVC CHAOS bootlegs */
+
+ROM_START( svcboot )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "svc-p1.bin", 0x000000, 0x800000, CRC(0348f162) SHA1(c313351d68effd92aeb80ed320e4f8c26a3bb53e) )
+
+ NEO_SFIX_MT_128K
+ ROM_LOAD( "svc-s1.bin", 0x10000, 0x10000, CRC(70b44df1) SHA1(52ae3f264d7b33e94e770e6b2d0cf35a64e7dda4) )
+ ROM_CONTINUE( 0x00000, 0x10000 )
+
+ NEOGEO_BIOS
+
+ ROM_REGION( 0x20000, "audiobios", 0 )
+ ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) )
+
+ ROM_REGION( 0x50000, "audiocpu", 0 )
+ ROM_LOAD( "svc-m1.bin", 0x20000, 0x10000, CRC(804328c3) SHA1(f931636c563b0789d4812033a77b47bf663db43f) )
+ ROM_CONTINUE( 0x00000, 0x10000 )
+ ROM_COPY( "audiocpu", 0x000000, 0x10000, 0x10000 )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD16_WORD_SWAP( "svc-v2.bin", 0x000000, 0x400000, CRC(b5097287) SHA1(3ba3a9b5624879616382ed40337a3d9c50a0f314) )
+ ROM_LOAD16_WORD_SWAP( "svc-v1.bin", 0x400000, 0x400000, CRC(bd3a391f) SHA1(972bf09b75e99a683ee965bec93b0da8f15d72d9) )
+ ROM_LOAD16_WORD_SWAP( "svc-v4.bin", 0x800000, 0x400000, CRC(33fc0b37) SHA1(d61017d829f44c7df8795ba10c55c727d9972662) )
+ ROM_LOAD16_WORD_SWAP( "svc-v3.bin", 0xc00000, 0x400000, CRC(aa9849a0) SHA1(9539b3356a070a066a89f27c287f316e7367ce2a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "svc-c1.bin", 0x0000000, 0x800000, CRC(a7826b89) SHA1(3bbe348ce54b80b56ef032ea532a18ef3cafeb11) )
+ ROM_LOAD16_BYTE( "svc-c2.bin", 0x0000001, 0x800000, CRC(ed3c2089) SHA1(b5d17692f15f5a678c273589fab2e3918711135e) )
+ ROM_LOAD16_BYTE( "svc-c3.bin", 0x1000000, 0x800000, CRC(71ed8063) SHA1(ea1df9e2e382a8560a06d447421844cc588f43dd) )
+ ROM_LOAD16_BYTE( "svc-c4.bin", 0x1000001, 0x800000, CRC(250bde2d) SHA1(8c72dcfceef6d022ab4b73ab37cf3ac0c3940c17) )
+ ROM_LOAD16_BYTE( "svc-c5.bin", 0x2000000, 0x800000, CRC(9817c082) SHA1(1bea9c7220c2b1524896c86841d6d8fd55f5d366) )
+ ROM_LOAD16_BYTE( "svc-c6.bin", 0x2000001, 0x800000, CRC(2bc0307f) SHA1(8090fa82c46eb503832359093c8cc3cee3141c90) )
+ ROM_LOAD16_BYTE( "svc-c7.bin", 0x3000000, 0x800000, CRC(4358d7b9) SHA1(9270b58c2abc072a046bedda72f1395df26d0714) )
+ ROM_LOAD16_BYTE( "svc-c8.bin", 0x3000001, 0x800000, CRC(366deee5) SHA1(d477ad7a5987fd6c7ef2c1680fbb7c884654590e) )
+ROM_END
+
+ROM_START( svcplus )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "svc-p1p.bin", 0x000000, 0x200000, CRC(a194d842) SHA1(72b7bfa34a97632b1aa003488e074d766a6c2f08) )
+ ROM_LOAD16_WORD_SWAP( "svc-p2p.bin", 0x200000, 0x200000, CRC(50c0e2b7) SHA1(97b396415ab0e692e43ddf371091e5a456712f0a) )
+ ROM_LOAD16_WORD_SWAP( "svc-p3p.bin", 0x400000, 0x200000, CRC(58cdc293) SHA1(3c4f2418ec513bcc13ed33a727de11dfb98f7525) )
+
+ NEO_SFIX_128K( "svc-s1p.bin", CRC(73344711) SHA1(04d84c4fe241b9135cd210f8ed8c725f595d11d2) )
+
+ NEOGEO_BIOS
+
+ ROM_REGION( 0x20000, "audiobios", 0 )
+ ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) )
+
+ ROM_REGION( 0x50000, "audiocpu", 0 )
+ ROM_LOAD( "svc-m1.bin", 0x20000, 0x10000, CRC(804328c3) SHA1(f931636c563b0789d4812033a77b47bf663db43f) )
+ ROM_CONTINUE( 0x00000, 0x10000 )
+ ROM_COPY( "audiocpu", 0x000000, 0x10000, 0x10000 )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD16_WORD_SWAP( "svc-v2.bin", 0x000000, 0x400000, CRC(b5097287) SHA1(3ba3a9b5624879616382ed40337a3d9c50a0f314) )
+ ROM_LOAD16_WORD_SWAP( "svc-v1.bin", 0x400000, 0x400000, CRC(bd3a391f) SHA1(972bf09b75e99a683ee965bec93b0da8f15d72d9) )
+ ROM_LOAD16_WORD_SWAP( "svc-v4.bin", 0x800000, 0x400000, CRC(33fc0b37) SHA1(d61017d829f44c7df8795ba10c55c727d9972662) )
+ ROM_LOAD16_WORD_SWAP( "svc-v3.bin", 0xc00000, 0x400000, CRC(aa9849a0) SHA1(9539b3356a070a066a89f27c287f316e7367ce2a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "svc-c1.bin", 0x0000000, 0x800000, CRC(a7826b89) SHA1(3bbe348ce54b80b56ef032ea532a18ef3cafeb11) )
+ ROM_LOAD16_BYTE( "svc-c2.bin", 0x0000001, 0x800000, CRC(ed3c2089) SHA1(b5d17692f15f5a678c273589fab2e3918711135e) )
+ ROM_LOAD16_BYTE( "svc-c3.bin", 0x1000000, 0x800000, CRC(71ed8063) SHA1(ea1df9e2e382a8560a06d447421844cc588f43dd) )
+ ROM_LOAD16_BYTE( "svc-c4.bin", 0x1000001, 0x800000, CRC(250bde2d) SHA1(8c72dcfceef6d022ab4b73ab37cf3ac0c3940c17) )
+ ROM_LOAD16_BYTE( "svc-c5.bin", 0x2000000, 0x800000, CRC(9817c082) SHA1(1bea9c7220c2b1524896c86841d6d8fd55f5d366) )
+ ROM_LOAD16_BYTE( "svc-c6.bin", 0x2000001, 0x800000, CRC(2bc0307f) SHA1(8090fa82c46eb503832359093c8cc3cee3141c90) )
+ ROM_LOAD16_BYTE( "svc-c7.bin", 0x3000000, 0x800000, CRC(4358d7b9) SHA1(9270b58c2abc072a046bedda72f1395df26d0714) )
+ ROM_LOAD16_BYTE( "svc-c8.bin", 0x3000001, 0x800000, CRC(366deee5) SHA1(d477ad7a5987fd6c7ef2c1680fbb7c884654590e) )
+ROM_END
+
+ROM_START( svcplusa )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "svc-p1pl.bin", 0x000000, 0x200000, CRC(16b44144) SHA1(5eab530274b1b6f480a39a86c199da524cddfccc) )
+ ROM_LOAD16_WORD_SWAP( "svc-p2pl.bin", 0x200000, 0x400000, CRC(7231ace2) SHA1(d2f13ddd5d3ee29b4b9824e8663f7ee0241f30cf) )
+
+ NEO_SFIX_MT_128K
+ ROM_LOAD( "svc-s1pl.bin", 0x10000, 0x10000, CRC(ca3c735e) SHA1(aebd15253c90432a2e0a4c40f37110c1e2176ee4) )
+ ROM_CONTINUE( 0x00000, 0x10000 )
+
+ NEOGEO_BIOS
+
+ ROM_REGION( 0x20000, "audiobios", 0 )
+ ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) )
+
+ ROM_REGION( 0x50000, "audiocpu", 0 )
+ ROM_LOAD( "svc-m1.bin", 0x20000, 0x10000, CRC(804328c3) SHA1(f931636c563b0789d4812033a77b47bf663db43f) )
+ ROM_CONTINUE( 0x00000, 0x10000 )
+ ROM_COPY( "audiocpu", 0x000000, 0x10000, 0x10000 )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD16_WORD_SWAP( "svc-v2.bin", 0x000000, 0x400000, CRC(b5097287) SHA1(3ba3a9b5624879616382ed40337a3d9c50a0f314) )
+ ROM_LOAD16_WORD_SWAP( "svc-v1.bin", 0x400000, 0x400000, CRC(bd3a391f) SHA1(972bf09b75e99a683ee965bec93b0da8f15d72d9) )
+ ROM_LOAD16_WORD_SWAP( "svc-v4.bin", 0x800000, 0x400000, CRC(33fc0b37) SHA1(d61017d829f44c7df8795ba10c55c727d9972662) )
+ ROM_LOAD16_WORD_SWAP( "svc-v3.bin", 0xc00000, 0x400000, CRC(aa9849a0) SHA1(9539b3356a070a066a89f27c287f316e7367ce2a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "svc-c1.bin", 0x0000000, 0x800000, CRC(a7826b89) SHA1(3bbe348ce54b80b56ef032ea532a18ef3cafeb11) )
+ ROM_LOAD16_BYTE( "svc-c2.bin", 0x0000001, 0x800000, CRC(ed3c2089) SHA1(b5d17692f15f5a678c273589fab2e3918711135e) )
+ ROM_LOAD16_BYTE( "svc-c3.bin", 0x1000000, 0x800000, CRC(71ed8063) SHA1(ea1df9e2e382a8560a06d447421844cc588f43dd) )
+ ROM_LOAD16_BYTE( "svc-c4.bin", 0x1000001, 0x800000, CRC(250bde2d) SHA1(8c72dcfceef6d022ab4b73ab37cf3ac0c3940c17) )
+ ROM_LOAD16_BYTE( "svc-c5.bin", 0x2000000, 0x800000, CRC(9817c082) SHA1(1bea9c7220c2b1524896c86841d6d8fd55f5d366) )
+ ROM_LOAD16_BYTE( "svc-c6.bin", 0x2000001, 0x800000, CRC(2bc0307f) SHA1(8090fa82c46eb503832359093c8cc3cee3141c90) )
+ ROM_LOAD16_BYTE( "svc-c7.bin", 0x3000000, 0x800000, CRC(4358d7b9) SHA1(9270b58c2abc072a046bedda72f1395df26d0714) )
+ ROM_LOAD16_BYTE( "svc-c8.bin", 0x3000001, 0x800000, CRC(366deee5) SHA1(d477ad7a5987fd6c7ef2c1680fbb7c884654590e) )
+ROM_END
+
+ROM_START( svcsplus )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "svc-p1sp.bin", 0x000000, 0x400000, CRC(2601902f) SHA1(202348a13c6480f7de37a3ee983823838822fc98) )
+ ROM_LOAD16_WORD_SWAP( "svc-p2sp.bin", 0x400000, 0x400000, CRC(0ca13305) SHA1(ac8fbca71b754acbcdd11802161a62ae1cf32d88) )
+
+ NEO_SFIX_128K( "svc-s1sp.bin", CRC(233d6439) SHA1(369024c7a2405c3144c14ac016c07c3dc0f44187) )
+
+ NEOGEO_BIOS
+
+ ROM_REGION( 0x20000, "audiobios", 0 )
+ ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) )
+
+ ROM_REGION( 0x50000, "audiocpu", 0 )
+ ROM_LOAD( "svc-m1.bin", 0x20000, 0x10000, CRC(804328c3) SHA1(f931636c563b0789d4812033a77b47bf663db43f) )
+ ROM_CONTINUE( 0x00000, 0x10000 )
+ ROM_COPY( "audiocpu", 0x000000, 0x10000, 0x10000 )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD16_WORD_SWAP( "svc-v2.bin", 0x000000, 0x400000, CRC(b5097287) SHA1(3ba3a9b5624879616382ed40337a3d9c50a0f314) )
+ ROM_LOAD16_WORD_SWAP( "svc-v1.bin", 0x400000, 0x400000, CRC(bd3a391f) SHA1(972bf09b75e99a683ee965bec93b0da8f15d72d9) )
+ ROM_LOAD16_WORD_SWAP( "svc-v4.bin", 0x800000, 0x400000, CRC(33fc0b37) SHA1(d61017d829f44c7df8795ba10c55c727d9972662) )
+ ROM_LOAD16_WORD_SWAP( "svc-v3.bin", 0xc00000, 0x400000, CRC(aa9849a0) SHA1(9539b3356a070a066a89f27c287f316e7367ce2a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "svc-c1.bin", 0x0000000, 0x800000, CRC(a7826b89) SHA1(3bbe348ce54b80b56ef032ea532a18ef3cafeb11) )
+ ROM_LOAD16_BYTE( "svc-c2.bin", 0x0000001, 0x800000, CRC(ed3c2089) SHA1(b5d17692f15f5a678c273589fab2e3918711135e) )
+ ROM_LOAD16_BYTE( "svc-c3.bin", 0x1000000, 0x800000, CRC(71ed8063) SHA1(ea1df9e2e382a8560a06d447421844cc588f43dd) )
+ ROM_LOAD16_BYTE( "svc-c4.bin", 0x1000001, 0x800000, CRC(250bde2d) SHA1(8c72dcfceef6d022ab4b73ab37cf3ac0c3940c17) )
+ ROM_LOAD16_BYTE( "svc-c5.bin", 0x2000000, 0x800000, CRC(9817c082) SHA1(1bea9c7220c2b1524896c86841d6d8fd55f5d366) )
+ ROM_LOAD16_BYTE( "svc-c6.bin", 0x2000001, 0x800000, CRC(2bc0307f) SHA1(8090fa82c46eb503832359093c8cc3cee3141c90) )
+ ROM_LOAD16_BYTE( "svc-c7.bin", 0x3000000, 0x800000, CRC(4358d7b9) SHA1(9270b58c2abc072a046bedda72f1395df26d0714) )
+ ROM_LOAD16_BYTE( "svc-c8.bin", 0x3000001, 0x800000, CRC(366deee5) SHA1(d477ad7a5987fd6c7ef2c1680fbb7c884654590e) )
+ROM_END
+
+/* Samurai Shodown 5 bootleg */
+
+ROM_START( samsho5b )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "ssv-p2.bin", 0x000000, 0x400000, CRC(5023067f) SHA1(b1d682fa7d158f19664356a919da6572e8cfeee0) )
+ ROM_LOAD16_WORD_SWAP( "ssv-p1.bin", 0x400000, 0x400000, CRC(b6cbe386) SHA1(99c2407361116c2b2c5fe72df53e05c5f99163c1) )
+
+ NEO_SFIX_128K( "ssv-s1.bin", CRC(70f667d0) SHA1(6d7ce62bb77eb215cc22d6c3c677accfd740aa83) )
+
+ NEO_BIOS_AUDIO_128K( "ssv-m1.bin", CRC(18114fb1) SHA1(016dc2f328340f3637a9bff373a20973df29f6b8) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "ssv-v1.bin", 0x000000, 0x400000, CRC(a3609761) SHA1(6dce1dbfd228c739b3716ae1cf08fd7f925d8650) )
+ ROM_LOAD( "ssv-v2.bin", 0x400000, 0x400000, CRC(cbd6ebd5) SHA1(00211be3fa32035b0947ac65920ea8acae7bfae2) )
+ ROM_LOAD( "ssv-v3.bin", 0x800000, 0x400000, CRC(6f1c2703) SHA1(8015df3d788cb7926ebbcda64a96964fe102ba27) )
+ ROM_LOAD( "ssv-v4.bin", 0xc00000, 0x400000, CRC(5020c055) SHA1(bd1e68d1b0a47b0e2b365159e210048f8b22823a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "ssv-c1.bin", 0x0000000, 0x1000000, CRC(9c564a01) SHA1(99dc8900fd8f56ae04fff72b34ddcaa8abe4c1be) )
+ ROM_LOAD16_BYTE( "ssv-c2.bin", 0x0000001, 0x1000000, CRC(4b73b8da) SHA1(a8b626de74cf57bbd8c222e8e24c953c9e8680f4) )
+ ROM_LOAD16_BYTE( "ssv-c3.bin", 0x2000000, 0x1000000, CRC(029f9bb5) SHA1(6296c879aa0bbd22383ceeeac0326805cbc8b4ec) )
+ ROM_LOAD16_BYTE( "ssv-c4.bin", 0x2000001, 0x1000000, CRC(75722430) SHA1(30594c30a167e75463670249df7744755e39e75b) )
+ROM_END
+
+/* The King of Fighters 2003 bootlegs */
+
+ROM_START( kf2k3bl )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "2k3-p1.bin", 0x100000, 0x400000, CRC(92ed6ee3) SHA1(5e7e21eb40dfcc453ba73808760d5ddedd49c58a) )
+ ROM_LOAD16_WORD_SWAP( "2k3-p2.bin", 0x500000, 0x200000, CRC(5d3d8bb3) SHA1(7f2341f14ca12ff5721eb038b3496228a1f34b60) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "2k3-s1.bin", CRC(482c48a5) SHA1(27e2f5295a9a838e112be28dafc111893a388a16) )
+
+ NEO_BIOS_AUDIO_128K( "2k3-m1.bin", CRC(3a4969ff) SHA1(2fc107a023a82053a8df63025829bcf12cee9610) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "271-v1c.v1", 0x000000, 0x800000, CRC(ffa3f8c7) SHA1(7cf4a933973ca23b7f87c81151d8659e6ec4bd20) )
+ ROM_LOAD( "271-v2c.v2", 0x800000, 0x800000, CRC(5382c7d1) SHA1(1bf999705eda80ba1e7b0d6bdd010d9bfb18bd76) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "271-c1c.c1", 0x0000000, 0x800000, CRC(b1dc25d0) SHA1(50adc3c60d5b4b3abd10a49db2267306c6dbd772) )
+ ROM_LOAD16_BYTE( "271-c2c.c2", 0x0000001, 0x800000, CRC(d5362437) SHA1(66db36522dc09106388c707252df9fe1c88b4856) )
+ ROM_LOAD16_BYTE( "271-c3c.c3", 0x1000000, 0x800000, CRC(0a1fbeab) SHA1(9fe30d36ba98d00fda010832ff2f27783dd577c1) )
+ ROM_LOAD16_BYTE( "271-c4c.c4", 0x1000001, 0x800000, CRC(87b19a0c) SHA1(b72a8e7d9124ce859b5149bb4381ba481c161ea5) )
+ ROM_LOAD16_BYTE( "271-c5c.c5", 0x2000000, 0x800000, CRC(704ea371) SHA1(e75b80422f0d72eac826f8ffadf79efeccaab124) )
+ ROM_LOAD16_BYTE( "271-c6c.c6", 0x2000001, 0x800000, CRC(20a1164c) SHA1(c9843b37612a16fc95f6851793b1cfb5d49d811d) )
+ ROM_LOAD16_BYTE( "271-c7c.c7", 0x3000000, 0x800000, CRC(189aba7f) SHA1(7152195a57ad36b28290810fe87ed8c206262ba9) )
+ ROM_LOAD16_BYTE( "271-c8c.c8", 0x3000001, 0x800000, CRC(20ec4fdc) SHA1(deb5f7ec5a090e419b9d1a6a74877bee081198e2) )
+ROM_END
+
+ROM_START( kf2k3bla )
+ ROM_REGION( 0x700000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "2k3-p1bl.bin", 0x000000, 0x100000, CRC(4ea414dd) SHA1(c242c9709c20a8cde3ad562adbe640a5dd5abcf1) )
+ ROM_LOAD16_WORD_SWAP( "2k3-p3bl.bin", 0x100000, 0x400000, CRC(370acbff) SHA1(e72544de1c5e2e4f7478fc003caba9e33a306c19) )
+ ROM_LOAD16_WORD_SWAP( "2k3-p2bl.bin", 0x500000, 0x200000, CRC(9c04fc52) SHA1(f41b53c79e4209373ec68276fa5941c91424bb15) )
+
+ NEO_SFIX_128K( "2k3-s1.bin", CRC(482c48a5) SHA1(27e2f5295a9a838e112be28dafc111893a388a16) )
+
+ NEO_BIOS_AUDIO_128K( "2k3-m1.bin", CRC(3a4969ff) SHA1(2fc107a023a82053a8df63025829bcf12cee9610) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "271-v1c.v1", 0x000000, 0x800000, CRC(ffa3f8c7) SHA1(7cf4a933973ca23b7f87c81151d8659e6ec4bd20) )
+ ROM_LOAD( "271-v2c.v2", 0x800000, 0x800000, CRC(5382c7d1) SHA1(1bf999705eda80ba1e7b0d6bdd010d9bfb18bd76) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "271-c1c.c1", 0x0000000, 0x800000, CRC(b1dc25d0) SHA1(50adc3c60d5b4b3abd10a49db2267306c6dbd772) )
+ ROM_LOAD16_BYTE( "271-c2c.c2", 0x0000001, 0x800000, CRC(d5362437) SHA1(66db36522dc09106388c707252df9fe1c88b4856) )
+ ROM_LOAD16_BYTE( "271-c3c.c3", 0x1000000, 0x800000, CRC(0a1fbeab) SHA1(9fe30d36ba98d00fda010832ff2f27783dd577c1) )
+ ROM_LOAD16_BYTE( "271-c4c.c4", 0x1000001, 0x800000, CRC(87b19a0c) SHA1(b72a8e7d9124ce859b5149bb4381ba481c161ea5) )
+ ROM_LOAD16_BYTE( "271-c5c.c5", 0x2000000, 0x800000, CRC(704ea371) SHA1(e75b80422f0d72eac826f8ffadf79efeccaab124) )
+ ROM_LOAD16_BYTE( "271-c6c.c6", 0x2000001, 0x800000, CRC(20a1164c) SHA1(c9843b37612a16fc95f6851793b1cfb5d49d811d) )
+ ROM_LOAD16_BYTE( "271-c7c.c7", 0x3000000, 0x800000, CRC(189aba7f) SHA1(7152195a57ad36b28290810fe87ed8c206262ba9) )
+ ROM_LOAD16_BYTE( "271-c8c.c8", 0x3000001, 0x800000, CRC(20ec4fdc) SHA1(deb5f7ec5a090e419b9d1a6a74877bee081198e2) )
+ROM_END
+
+ROM_START( kf2k3pl )
+ ROM_REGION( 0x700000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "2k3-p1pl.bin", 0x000000, 0x100000, CRC(07b84112) SHA1(0b085a928a39ff9c0745a58bfa4ce6106b5f474a) )
+ ROM_LOAD16_WORD_SWAP( "2k3-p3bl.bin", 0x100000, 0x400000, CRC(370acbff) SHA1(e72544de1c5e2e4f7478fc003caba9e33a306c19) )
+ ROM_LOAD16_WORD_SWAP( "2k3-p2bl.bin", 0x500000, 0x200000, CRC(9c04fc52) SHA1(f41b53c79e4209373ec68276fa5941c91424bb15) )
+
+ NEO_SFIX_128K( "2k3-s1pl.bin", CRC(ad548a36) SHA1(7483dbe2d74a1bd1b4dc501e99e48a683416d08e) )
+
+ NEO_BIOS_AUDIO_128K( "2k3-m1.bin", CRC(3a4969ff) SHA1(2fc107a023a82053a8df63025829bcf12cee9610) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "271-v1c.v1", 0x000000, 0x800000, CRC(ffa3f8c7) SHA1(7cf4a933973ca23b7f87c81151d8659e6ec4bd20) )
+ ROM_LOAD( "271-v2c.v2", 0x800000, 0x800000, CRC(5382c7d1) SHA1(1bf999705eda80ba1e7b0d6bdd010d9bfb18bd76) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "271-c1c.c1", 0x0000000, 0x800000, CRC(b1dc25d0) SHA1(50adc3c60d5b4b3abd10a49db2267306c6dbd772) )
+ ROM_LOAD16_BYTE( "271-c2c.c2", 0x0000001, 0x800000, CRC(d5362437) SHA1(66db36522dc09106388c707252df9fe1c88b4856) )
+ ROM_LOAD16_BYTE( "271-c3c.c3", 0x1000000, 0x800000, CRC(0a1fbeab) SHA1(9fe30d36ba98d00fda010832ff2f27783dd577c1) )
+ ROM_LOAD16_BYTE( "271-c4c.c4", 0x1000001, 0x800000, CRC(87b19a0c) SHA1(b72a8e7d9124ce859b5149bb4381ba481c161ea5) )
+ ROM_LOAD16_BYTE( "271-c5c.c5", 0x2000000, 0x800000, CRC(704ea371) SHA1(e75b80422f0d72eac826f8ffadf79efeccaab124) )
+ ROM_LOAD16_BYTE( "271-c6c.c6", 0x2000001, 0x800000, CRC(20a1164c) SHA1(c9843b37612a16fc95f6851793b1cfb5d49d811d) )
+ ROM_LOAD16_BYTE( "271-c7c.c7", 0x3000000, 0x800000, CRC(189aba7f) SHA1(7152195a57ad36b28290810fe87ed8c206262ba9) )
+ ROM_LOAD16_BYTE( "271-c8c.c8", 0x3000001, 0x800000, CRC(20ec4fdc) SHA1(deb5f7ec5a090e419b9d1a6a74877bee081198e2) )
+ROM_END
+
+ROM_START( kf2k3upl )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "2k3-p1up.bin", 0x000000, 0x800000, CRC(87294c01) SHA1(21420415a6b2ba1b43ecc1934270dc085d6bd7d9) )
+
+ NEO_SFIX_128K( "2k3-s1up.bin", CRC(e5708c0c) SHA1(5649446d3b0b1bd138b5a8b40b96a6d0f892f4d8) )
+
+ NEO_BIOS_AUDIO_128K( "2k3-m1.bin", CRC(3a4969ff) SHA1(2fc107a023a82053a8df63025829bcf12cee9610) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "271-v1c.v1", 0x000000, 0x800000, CRC(ffa3f8c7) SHA1(7cf4a933973ca23b7f87c81151d8659e6ec4bd20) )
+ ROM_LOAD( "271-v2c.v2", 0x800000, 0x800000, CRC(5382c7d1) SHA1(1bf999705eda80ba1e7b0d6bdd010d9bfb18bd76) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "271-c1c.c1", 0x0000000, 0x800000, CRC(b1dc25d0) SHA1(50adc3c60d5b4b3abd10a49db2267306c6dbd772) )
+ ROM_LOAD16_BYTE( "271-c2c.c2", 0x0000001, 0x800000, CRC(d5362437) SHA1(66db36522dc09106388c707252df9fe1c88b4856) )
+ ROM_LOAD16_BYTE( "271-c3c.c3", 0x1000000, 0x800000, CRC(0a1fbeab) SHA1(9fe30d36ba98d00fda010832ff2f27783dd577c1) )
+ ROM_LOAD16_BYTE( "271-c4c.c4", 0x1000001, 0x800000, CRC(87b19a0c) SHA1(b72a8e7d9124ce859b5149bb4381ba481c161ea5) )
+ ROM_LOAD16_BYTE( "271-c5c.c5", 0x2000000, 0x800000, CRC(704ea371) SHA1(e75b80422f0d72eac826f8ffadf79efeccaab124) )
+ ROM_LOAD16_BYTE( "271-c6c.c6", 0x2000001, 0x800000, CRC(20a1164c) SHA1(c9843b37612a16fc95f6851793b1cfb5d49d811d) )
+ ROM_LOAD16_BYTE( "271-c7c.c7", 0x3000000, 0x800000, CRC(189aba7f) SHA1(7152195a57ad36b28290810fe87ed8c206262ba9) )
+ ROM_LOAD16_BYTE( "271-c8c.c8", 0x3000001, 0x800000, CRC(20ec4fdc) SHA1(deb5f7ec5a090e419b9d1a6a74877bee081198e2) )
+ROM_END
+
+
+ /* Unlicensed Prototypes */
+
+ROM_START( diggerma ) /* Unlicensed Prototype, no official game ID # */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "dig-p1.bin", 0x000000, 0x080000, CRC(eda433d7) SHA1(abb14c66777ab0fe4ac76a402e253a49df7178d8) )
+
+ NEO_SFIX_128K( "dig-s1.bin", CRC(9b3168f0) SHA1(9be8c625686a1482f7399e5a856cfe2fef25ec52) )
+
+ NEO_BIOS_AUDIO_128K( "dig-m1.bin", CRC(e777a234) SHA1(9f3974ac07859337bc0203f903c40ae3f60dc1fb) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "dig-v1.bin", 0x000000, 0x080000, CRC(ee15bda4) SHA1(fe2206728e6efd02d6302869a98b196eb19a17df) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "dig-c1.bin", 0x000000, 0x080000, CRC(3db0a4ed) SHA1(6214faa883d97ea05809b6af7e0c85a236a18a28) )
+ ROM_LOAD16_BYTE( "dig-c2.bin", 0x000001, 0x080000, CRC(3e632161) SHA1(83711c4286fb1d9f3f91414ac6e5fed36618033e) )
+ROM_END
+
+// MVS cart
+ROM_START( lasthope )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "NGDT-300-P1.bin", 0x000000, 0x100000, CRC(3776a88f) SHA1(ea8b669da06d7c6b5ff7fa97a195f56a9253a7a1) )
+
+ NEO_SFIX_64K( "NGDT-300-S1.bin", CRC(0c0ff9e6) SHA1(c87d1ea8731ac1e63ab960b8182dd1043bcc10bb) )
+
+ NEO_BIOS_AUDIO_128K( "NGDT-300-M1.bin", CRC(113c870f) SHA1(854425eb4be0d7fa088a6c3bf6078fdd011707f5) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "NGDT-300-V1.bin", 0x000000, 0x200000, CRC(b765bafe) SHA1(b2048c44089bf250c8dcfabb27c7981e9ee5002a) )
+ ROM_LOAD( "NGDT-300-V2.bin", 0x200000, 0x200000, CRC(9fd0d559) SHA1(09e70d5e1c6e172a33f48feb3e442515c34a8f3d) )
+ ROM_LOAD( "NGDT-300-V3.bin", 0x400000, 0x200000, CRC(6d5107e2) SHA1(4ba74836e3d0421a28af47d3d8341ac16af1d7d7) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "NGDT-300-C1.bin", 0x000000, 0x400000, CRC(53ef41b5) SHA1(a8f1fe546403b609e12f0df211c05d7ac479d98d) )
+ ROM_LOAD16_BYTE( "NGDT-300-C2.bin", 0x000001, 0x400000, CRC(f9b15ab3) SHA1(d8ff2f43686bfc8c2f7ead3ef445e51c15dfbf16) )
+ ROM_LOAD16_BYTE( "NGDT-300-C3.bin", 0x800000, 0x400000, CRC(50cc21cf) SHA1(0350aaef480c5fa12e68e540a4c974dbf5870add) )
+ ROM_LOAD16_BYTE( "NGDT-300-C4.bin", 0x800001, 0x400000, CRC(8486ad9e) SHA1(19a2a73c825687e0cb9fd62bde00db91b5409529))
+ROM_END
+
+
+/*************************************
+ *
+ * Game-specific inits
+ *
+ *************************************/
+
+ // macros allow code below to be copy+pasted into slot devices more easily
+#define cpuregion memregion("maincpu")->base()
+#define cpuregion_size memregion("maincpu")->bytes()
+#define spr_region memregion("sprites")->base()
+#define spr_region_size memregion("sprites")->bytes()
+#define fix_region memregion("fixed")->base()
+#define fix_region_size memregion("fixed")->bytes()
+#define ym_region memregion("ymsnd")->base()
+#define ym_region_size memregion("ymsnd")->bytes()
+#define audiocpu_region memregion("audiocpu")->base()
+#define audio_region_size memregion("audiocpu")->bytes()
+#define audiocrypt_region memregion("audiocrypt")->base()
+#define audiocrypt_region_size memregion("audiocrypt")->bytes()
+
+
+/*********************************************** SMA + CMC42 */
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,kof99)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sma_prot->kof99_decrypt_68k(cpuregion);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->cmc42_neogeo_gfx_decrypt(spr_region, spr_region_size, KOF99_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+ m_sma_prot->kof99_install_protection(m_maincpu,m_banked_cart);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,garou)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sma_prot->garou_decrypt_68k(cpuregion);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->cmc42_neogeo_gfx_decrypt(spr_region, spr_region_size, GAROU_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+ m_sma_prot->garou_install_protection(m_maincpu,m_banked_cart);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,garouh)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sma_prot->garouh_decrypt_68k(cpuregion);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->cmc42_neogeo_gfx_decrypt(spr_region, spr_region_size, GAROU_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+ m_sma_prot->garouh_install_protection(m_maincpu,m_banked_cart);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,mslug3)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sma_prot->mslug3_decrypt_68k(cpuregion);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->cmc42_neogeo_gfx_decrypt(spr_region, spr_region_size, MSLUG3_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+ m_sma_prot->mslug3_install_protection(m_maincpu,m_banked_cart);
+}
+
+/*********************************************** SMA + CMC50 */
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,kof2000)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sma_prot->kof2000_decrypt_68k(cpuregion);
+ m_sprgen->m_fixed_layer_bank_type = 2;
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, KOF2000_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+ m_sma_prot->kof2000_install_protection(m_maincpu, m_banked_cart);
+}
+
+/*********************************************** CMC42 */
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,mslug3h)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->cmc42_neogeo_gfx_decrypt(spr_region, spr_region_size, MSLUG3_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,ganryu)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->cmc42_neogeo_gfx_decrypt(spr_region, spr_region_size, GANRYU_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,s1945p)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->cmc42_neogeo_gfx_decrypt(spr_region, spr_region_size, S1945P_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,preisle2)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->cmc42_neogeo_gfx_decrypt(spr_region, spr_region_size, PREISLE2_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,bangbead)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->cmc42_neogeo_gfx_decrypt(spr_region, spr_region_size, BANGBEAD_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,nitd)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->cmc42_neogeo_gfx_decrypt(spr_region, spr_region_size, NITD_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,sengoku3)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->cmc42_neogeo_gfx_decrypt(spr_region, spr_region_size, SENGOKU3_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,zupapa)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->cmc42_neogeo_gfx_decrypt(spr_region, spr_region_size, ZUPAPA_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,kof99k)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->cmc42_neogeo_gfx_decrypt(spr_region, spr_region_size, KOF99_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+/*********************************************** CMC50 */
+
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,kof2000n)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 2;
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, KOF2000_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,kof2001)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, KOF2001_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size);
+}
+
+/*********************************************** CMC50 + PCM2 */
+
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,mslug4)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 1; /* USA violent content screen is wrong -- not a bug, confirmed on real hardware! */
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, MSLUG4_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+ m_pcm2_prot->neo_pcm2_snk_1999(ym_region, ym_region_size, 8);
+}
+
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,rotd)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_pcm2_prot->neo_pcm2_snk_1999(ym_region, ym_region_size, 16);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, ROTD_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,pnyaa)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_pcm2_prot->neo_pcm2_snk_1999(ym_region, ym_region_size, 4);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, PNYAA_GFX_KEY );
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+/*********************************************** CMC50 + PCM2 + prg scramble */
+
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,kof2002)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_kof2002_prot->kof2002_decrypt_68k(cpuregion, cpuregion_size);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 0);
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, KOF2002_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,matrim)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_kof2002_prot->matrim_decrypt_68k(cpuregion, cpuregion_size);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 1);
+ m_sprgen->m_fixed_layer_bank_type = 2;
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, MATRIM_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,samsho5)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_kof2002_prot->samsho5_decrypt_68k(cpuregion, cpuregion_size);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 4);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, SAMSHO5_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,samsh5sp)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_kof2002_prot->samsh5sp_decrypt_68k(cpuregion, cpuregion_size);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 6);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, SAMSHO5SP_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+/*********************************************** CMC50 + PCM2 + PVC */
+
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,mslug5)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_pvc_prot->mslug5_decrypt_68k(cpuregion, cpuregion_size);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 2);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, MSLUG5_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+ m_pvc_prot->install_pvc_protection(m_maincpu,m_banked_cart);
+}
+
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,svc)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_pvc_prot->svc_px_decrypt(cpuregion, cpuregion_size);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 3);
+ m_sprgen->m_fixed_layer_bank_type = 2;
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, SVC_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+ m_pvc_prot->install_pvc_protection(m_maincpu,m_banked_cart);
+}
+
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,kof2003)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_pvc_prot->kof2003_decrypt_68k(cpuregion, cpuregion_size);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 5);
+ m_sprgen->m_fixed_layer_bank_type = 2;
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, KOF2003_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+ m_pvc_prot->install_pvc_protection(m_maincpu,m_banked_cart);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,kof2003h)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_pvc_prot->kof2003h_decrypt_68k(cpuregion, cpuregion_size);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 5);
+ m_sprgen->m_fixed_layer_bank_type = 2;
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, KOF2003_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+ m_pvc_prot->install_pvc_protection(m_maincpu,m_banked_cart);
+}
+
+/*********************************************** misc carts */
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,mslugx)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_mslugx_prot->mslugx_install_protection(m_maincpu);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,fatfury2)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_fatfury2_prot->fatfury2_install_protection(m_maincpu,m_banked_cart);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,kof98)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_kof98_prot->kof98_decrypt_68k(cpuregion, cpuregion_size);
+ m_kof98_prot->install_kof98_protection(m_maincpu);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,sbp)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sbp_prot->sbp_install_protection(m_maincpu, cpuregion, cpuregion_size);
+}
+
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,jockeygp)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, JOCKEYGP_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+
+ /* install some extra RAM */
+ m_maincpu->space(AS_PROGRAM).install_ram(0x200000, 0x201fff);
+
+// m_maincpu->space(AS_PROGRAM).install_read_port(0x280000, 0x280001, "IN5");
+// m_maincpu->space(AS_PROGRAM).install_read_port(0x2c0000, 0x2c0001, "IN6");
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,vliner)
+{
+ m_banked_cart->install_banks(machine(), m_maincpu, m_region_maincpu->base(), m_region_maincpu->bytes());
+
+ m_sprgen->m_fixed_layer_bank_type = 0;
+
+ m_maincpu->space(AS_PROGRAM).install_ram(0x200000, 0x201fff);
+
+ m_maincpu->space(AS_PROGRAM).install_read_port(0x300000, 0x300001, 0x01ff7e, "DSW");
+ m_maincpu->space(AS_PROGRAM).install_read_port(0x280000, 0x280001, "IN5");
+ m_maincpu->space(AS_PROGRAM).install_read_port(0x2c0000, 0x2c0001, "IN6");
+
+}
+
+
+/*********************************************** bootlegs */
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,garoubl)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,2);
+ m_bootleg_prot->neogeo_bootleg_cx_decrypt(spr_region, spr_region_size);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,cthd2003)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_bootleg_prot->decrypt_cthd2003(spr_region, spr_region_size, audiocpu_region,audio_region_size, fix_region, fix_region_size);
+ m_bootleg_prot->patch_cthd2003(m_maincpu,m_banked_cart, cpuregion, cpuregion_size);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,ct2k3sp)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_bootleg_prot->decrypt_ct2k3sp(spr_region, spr_region_size, audiocpu_region,audio_region_size, fix_region, fix_region_size);
+ m_bootleg_prot->patch_cthd2003(m_maincpu,m_banked_cart, cpuregion, cpuregion_size);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,ct2k3sa)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_bootleg_prot->decrypt_ct2k3sa(spr_region, spr_region_size, audiocpu_region,audio_region_size);
+ m_bootleg_prot->patch_ct2k3sa(cpuregion, cpuregion_size);
+}
+
+
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,kf10thep)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_bootleg_prot->kf10thep_px_decrypt(cpuregion, cpuregion_size);
+ m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,1);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,kf2k5uni)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_bootleg_prot->decrypt_kf2k5uni(cpuregion, cpuregion_size, audiocpu_region,audio_region_size, fix_region, fix_region_size);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,kof2k4se)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_bootleg_prot->decrypt_kof2k4se_68k(cpuregion, cpuregion_size);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,svcplus)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_bootleg_prot->svcplus_px_decrypt(cpuregion, cpuregion_size);
+ m_bootleg_prot->svcboot_cx_decrypt(spr_region, spr_region_size);
+ m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size, 1);
+ m_bootleg_prot->svcplus_px_hack(cpuregion, cpuregion_size);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,svcplusa)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_bootleg_prot->svcplusa_px_decrypt(cpuregion, cpuregion_size);
+ m_bootleg_prot->svcboot_cx_decrypt(spr_region, spr_region_size);
+ m_bootleg_prot->svcplus_px_hack(cpuregion, cpuregion_size);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,samsho5b)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_bootleg_prot->samsho5b_px_decrypt(cpuregion, cpuregion_size);
+ m_bootleg_prot->samsho5b_vx_decrypt(ym_region, ym_region_size);
+ m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,1);
+ m_bootleg_prot->neogeo_bootleg_cx_decrypt(spr_region, spr_region_size);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,kof97oro)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_bootleg_prot->kof97oro_px_decode(cpuregion, cpuregion_size);
+ m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,1);
+ m_bootleg_prot->neogeo_bootleg_cx_decrypt(spr_region, spr_region_size);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,lans2004)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_bootleg_prot->lans2004_decrypt_68k(cpuregion, cpuregion_size);
+ m_bootleg_prot->lans2004_vx_decrypt(ym_region, ym_region_size);
+ m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,1);
+ m_bootleg_prot->neogeo_bootleg_cx_decrypt(spr_region, spr_region_size);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,kof10th)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_bootleg_prot->decrypt_kof10th(cpuregion, cpuregion_size);
+ m_bootleg_prot->install_kof10th_protection(m_maincpu,m_banked_cart, cpuregion, cpuregion_size, fix_region, fix_region_size);
+}
+
+
+DRIVER_INIT_MEMBER(neogeo_noslot_kog_state,kog)
+{
+ DRIVER_INIT_CALL(neogeo);
+
+ m_kog_prot->kog_px_decrypt(cpuregion, cpuregion_size);
+ m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,1);
+ m_bootleg_prot->neogeo_bootleg_cx_decrypt(spr_region, spr_region_size);
+ m_kog_prot->kog_install_protection(m_maincpu);
+}
+
+
+
+/*********************************************** bootlegs - can use original prot */
+
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,ms4plus)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, MSLUG4_GFX_KEY);
+ m_pcm2_prot->neo_pcm2_snk_1999(ym_region, ym_region_size, 8);
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,kf2k2pls)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_kof2002_prot->kof2002_decrypt_68k(cpuregion, cpuregion_size);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 0);
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, KOF2002_GFX_KEY);
+}
+
+/*********************************************** bootleg hybrid */
+
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,mslug3b6)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,2);
+ m_cmc_prot->cmc42_neogeo_gfx_decrypt(spr_region, spr_region_size, MSLUG3_GFX_KEY);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,kof2002b)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_kof2002_prot->kof2002_decrypt_68k(cpuregion, cpuregion_size);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 0);
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size);
+ m_bootleg_prot->kof2002b_gfx_decrypt(spr_region,0x4000000);
+ m_bootleg_prot->kof2002b_gfx_decrypt(fix_region,0x20000);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,kf2k2mp)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_bootleg_prot->kf2k2mp_decrypt(cpuregion, cpuregion_size);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 0);
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size);
+ m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,2);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, KOF2002_GFX_KEY);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,kf2k2mp2)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_bootleg_prot->kf2k2mp2_px_decrypt(cpuregion, cpuregion_size);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 0);
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size);
+ m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,1);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, KOF2002_GFX_KEY);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,matrimbl)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_kof2002_prot->matrim_decrypt_68k(cpuregion, cpuregion_size);
+ m_sprgen->m_fixed_layer_bank_type = 2;
+ m_bootleg_prot->matrimbl_decrypt(spr_region, spr_region_size, audiocpu_region,audio_region_size);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size); /* required for text layer */
+}
+
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,ms5plus)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, MSLUG5_GFX_KEY);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 2);
+ m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,1);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size);
+ m_bootleg_prot->install_ms5plus_protection(m_maincpu,m_banked_cart);
+}
+
+
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,svcboot)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_bootleg_prot->svcboot_px_decrypt(cpuregion, cpuregion_size);
+ m_bootleg_prot->svcboot_cx_decrypt(spr_region, spr_region_size);
+ m_pvc_prot->install_pvc_protection(m_maincpu,m_banked_cart);
+}
+
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,svcsplus)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_bootleg_prot->svcsplus_px_decrypt(cpuregion, cpuregion_size);
+ m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,2);
+ m_bootleg_prot->svcboot_cx_decrypt(spr_region, spr_region_size);
+ m_bootleg_prot->svcsplus_px_hack(cpuregion, cpuregion_size);
+ m_pvc_prot->install_pvc_protection(m_maincpu,m_banked_cart);
+}
+
+
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,kf2k3bl)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, KOF2003_GFX_KEY);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 5);
+ m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,1);
+ m_bootleg_prot->kf2k3bl_install_protection(m_maincpu,m_banked_cart, cpuregion, cpuregion_size);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,kf2k3pl)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, KOF2003_GFX_KEY);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 5);
+ m_bootleg_prot->kf2k3pl_px_decrypt(cpuregion, cpuregion_size);
+ m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,1);
+ m_bootleg_prot->kf2k3pl_install_protection(m_maincpu,m_banked_cart, cpuregion, cpuregion_size);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,kf2k3upl)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, KOF2003_GFX_KEY);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 5);
+ m_bootleg_prot->kf2k3upl_px_decrypt(cpuregion, cpuregion_size);
+ m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,2);
+ m_bootleg_prot->kf2k3bl_install_protection(m_maincpu,m_banked_cart, cpuregion, cpuregion_size);
+}
+
+
+
+
+
+
+/*********************************************** non-carts */
+
+void neogeo_noslot_state::install_banked_bios()
+{
+ m_maincpu->space(AS_PROGRAM).install_read_bank(0xc00000, 0xc1ffff, 0x0e0000, "bankedbios");
+ membank("bankedbios")->configure_entries(0, 2, memregion("mainbios")->base(), 0x20000);
+ membank("bankedbios")->set_entry(1);
+}
+
+INPUT_CHANGED_MEMBER(neogeo_state::select_bios)
+{
+ membank("bankedbios")->set_entry(newval ? 0 : 1);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,ms5pcb)
+{
+ DRIVER_INIT_CALL(neogeo);
+
+ m_pvc_prot->mslug5_decrypt_68k(cpuregion, cpuregion_size);
+ m_sma_prot->svcpcb_gfx_decrypt(spr_region, spr_region_size);
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, MSLUG5_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+ m_sprgen->m_fixed_layer_bank_type = 2;
+ m_sma_prot->svcpcb_s1data_decrypt(fix_region, fix_region_size);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 2);
+ m_pvc_prot->install_pvc_protection(m_maincpu,m_banked_cart);
+ install_banked_bios();
+}
+
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,svcpcb)
+{
+ DRIVER_INIT_CALL(neogeo);
+
+ m_pvc_prot->svc_px_decrypt(cpuregion, cpuregion_size);
+ m_sma_prot->svcpcb_gfx_decrypt(spr_region, spr_region_size);
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, SVC_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+ m_sma_prot->svcpcb_s1data_decrypt(fix_region, fix_region_size);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 3);
+ m_sprgen->m_fixed_layer_bank_type = 2;
+ m_pvc_prot->install_pvc_protection(m_maincpu,m_banked_cart);
+ install_banked_bios();
+}
+
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,kf2k3pcb)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_pvc_prot->kf2k3pcb_decrypt_68k(cpuregion, cpuregion_size);
+ m_sma_prot->kf2k3pcb_gfx_decrypt(spr_region, spr_region_size);
+ m_sma_prot->kf2k3pcb_sp1_decrypt((uint16_t*)memregion("mainbios")->base());
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size);
+
+ /* extra little swap on the m1 - this must be performed AFTER the m1 decrypt
+ or the m1 checksum (used to generate the key) for decrypting the m1 is
+ incorrect */
+ {
+ uint8_t* rom = memregion("audiocpu")->base();
+ for (int i = 0; i < 0x90000; i++)
+ rom[i] = BITSWAP8(rom[i], 5, 6, 1, 4, 3, 0, 7, 2);
+ }
+
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, KOF2003_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+ m_sma_prot->kf2k3pcb_decrypt_s1data(spr_region, spr_region_size, fix_region, fix_region_size);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 5);
+ m_sprgen->m_fixed_layer_bank_type = 2;
+ m_pvc_prot->install_pvc_protection(m_maincpu,m_banked_cart);
+ m_maincpu->space(AS_PROGRAM).install_rom(0xc00000, 0xc7ffff, 0x080000, memregion("mainbios")->base()); // 512k bios
+}
+
+
+
+/*************************************
+ *
+ * Title catalog
+ * (source: http://neogeomuseum.snkplaymore.co.jp/english/catalogue/index.php)
+ *
+ *************************************
+
+ In 2010, SNK Playmore, the successor of SNK, released a title catalogue which lists the released
+ games (MVS/AES/CD) including their release dates in Japan. It is not 100% complete.
+ The included title catalogue is the english one.
+
+ Game Title Genre Publisher Date Released (in Japan)
+ =================================================================================================================================
+ NAM-1975 3D Action SNK MVS Cartridge:1990/04/26
+ NEOGEO ROM-cart:1991/07/01
+ NEOGEO CD:1994/09/09
+ MAHJONG KYORETSUDEN Mahjong SNK MVS Cartridge:1990/04/26
+ NEOGEO ROM-cart:1991/07/01
+ NEOGEO CD:1994/09/09
+ MAGICIAN LORD Action ADK MVS Cartridge:1990/04/26
+ NEOGEO ROM-cart:1991/07/01
+ NEOGEO CD:1994/10/31
+ BASEBALL STARS PROFESSIONAL Sports SNK MVS Cartridge:1990/04/26
+ NEOGEO ROM-cart:1991/07/01
+ NEOGEO CD:1995/04/21
+ TOP PLAYER'S GOLF Sports SNK MVS Cartridge:1990/05/23
+ NEOGEO ROM-cart:1991/07/01
+ NEOGEO CD:1994/09/09
+ NINJA COMBAT Action ADK MVS Cartridge:1990/07/24
+ NEOGEO ROM-cart:1991/07/01
+ NEOGEO CD:1994/10/31
+ RIDING HERO 3D Racing SNK MVS Cartridge:1990/07/24
+ NEOGEO ROM-cart:1991/07/01
+ NEOGEO CD:1995/05/26
+ THE SUPER SPY 3D Action SNK MVS Cartridge:1990/10/08
+ NEOGEO ROM-cart:1991/07/01
+ NEOGEO CD:1994/09/09
+ CYBER-LIP Action SNK MVS Cartridge:1990/11/07
+ NEOGEO ROM-cart:1991/07/01
+ NEOGEO CD:1995/04/21
+ PUZZLED Puzzle SNK MVS Cartridge:1990/11/20
+ NEOGEO ROM-cart:1991/07/01
+ NEOGEO CD:1994/09/09
+ LEAGUE BOWLING Sports SNK MVS Cartridge:1990/12/10
+ NEOGEO ROM-cart:1991/07/01
+ NEOGEO CD:1994/09/09
+ GHOST PILOTS Shooter SNK MVS Cartridge:1991/01/25
+ NEOGEO ROM-cart:1991/07/01
+ NEOGEO CD:1995/03/17
+ SENGOKU Action SNK MVS Cartridge:1991/02/12
+ NEOGEO ROM-cart:1991/07/01
+ NEOGEO CD:1995/03/17
+ KING OF THE MONSTERS Fighting SNK MVS Cartridge:1991/02/25
+ NEOGEO ROM-cart:1991/07/01
+ BLUE'S JOURNEY Action ADK MVS Cartridge:1991/03/14
+ NEOGEO ROM-cart:1991/07/01
+ NEOGEO CD:1994/10/31
+ ALPHA MISSION II Shooter SNK MVS Cartridge:1991/03/25
+ NEOGEO ROM-cart:1991/07/01
+ NEOGEO CD:1994/09/09
+ BURNING FIGHT Action SNK MVS Cartridge:1991/05/20
+ NEOGEO ROM-cart:1991/08/09
+ NEOGEO CD:1994/09/09
+ MINNASAN NO OKAGESAMA DESU Table Monolith MVS Cartridge:1991/07/25
+ NEOGEO ROM-cart:1991/07/21
+ CROSSED SWORDS Action ADK MVS Cartridge:1991/07/25
+ NEOGEO ROM-cart:1991/10/01
+ NEOGEO CD:1994/10/31
+ LEGEND OF SUCCESS JOE Action Wave MVS Cartridge:1991/07
+ NEOGEO ROM-cart:1991/08/30
+ QUIZ DAISUSA SEN: THE LAST COUNT DOWN Quiz SNK MVS Cartridge:1991/07
+ NEOGEO ROM-cart:1991/08/30
+ SUPER BASEBALL 2020 Sports SNK MVS Cartridge:1991/09/20
+ NEOGEO ROM-cart:1991/10/25
+ NEOGEO CD:1995/02/25
+ ROBO ARMY Action SNK MVS Cartridge:1991/10/30
+ NEOGEO ROM-cart:1991/12/20
+ NEOGEO CD:1995/04/21
+ THRASH RALLY Racing ADK MVS Cartridge:1991/11/08
+ NEOGEO ROM-cart:1991/12/20
+ NEOGEO CD:1994/10/31
+ EIGHT MAN Action SNK NEOGEO ROM-cart:1991/11/20
+ FATAL FURY Fighting SNK MVS Cartridge:1991/11/25
+ NEOGEO ROM-cart:1991/12/20
+ NEOGEO CD:1994/09/09
+ BAKATONO-SAMA MAHJONG MAN'YUKI Mahjong Monolith MVS Cartridge:1991/11
+ NEOGEO ROM-cart:1991/12/13
+ THRASH RALLY Racing ADK NEOGEO ROM-cart:1991/12/20
+ FOOTBALL FRENZY Sports SNK MVS Cartridge:1992/01/31
+ NEOGEO ROM-cart:1992/02/21
+ NEOGEO CD:1994/09/09
+ SOCCER BRAWL Sports SNK MVS Cartridge:1992/02/14
+ NEOGEO ROM-cart:1992/03/13
+ NEOGEO CD:1995/03/31
+ MUTATION NATION Action SNK MVS Cartridge:1992/03/16
+ NEOGEO ROM-cart:1992/04/17
+ NEOGEO CD:1995/02/25
+ LAST RESORT Shooter SNK MVS Cartridge:1992/03/23
+ NEOGEO ROM-cart:1992/04/24
+ NEOGEO CD:1994/09/09
+ QUIZ MEITANTEI NEO & GEO: QUIZ DAISOUSASEN PART 2 Quiz SNK MVS Cartridge:1992/03
+ NEOGEO ROM-cart:1991/04/24
+ BASEBALL STARS 2 Sports SNK MVS Cartridge:1992/04/15
+ NEOGEO ROM-cart:1992/04/28
+ NEOGEO CD:1994/09/09
+ NINJA COMMANDO Shooter ADK MVS Cartridge:1992/04/30
+ NEOGEO ROM-cart:1992/05/29
+ NEOGEO CD:1994/10/31
+ KING OF THE MONSTERS 2 Fighting SNK MVS Cartridge:1992/05/25
+ NEOGEO ROM-cart:1992/06/19
+ NEOGEO CD:1994/09/09
+ ANDRO DUNOS Shooter Visco MVS Cartridge:1992/06/15
+ NEOGEO ROM-cart:1992/07/17
+ WORLD HEROES Fighting ADK MVS Cartridge:1992/07/28
+ NEOGEO ROM-cart:1992/09/11
+ NEOGEO CD:1995/03/17
+ ART OF FIGHTING Fighting SNK MVS Cartridge:1992/09/24
+ NEOGEO ROM-cart:1992/12/11
+ NEOGEO CD:1994/09/09
+ VIEWPOINT Shooter Sammy MVS Cartridge:1992/11/20
+ NEOGEO ROM-cart:1992/12/11
+ NEOGEO CD:1995/02/25
+ FATAL FURY 2 Fighting SNK MVS Cartridge:1992/12/10
+ NEOGEO ROM-cart:1993/03/05
+ NEOGEO CD:1994/09/09
+ SUPER SIDEKICKS Sports SNK MVS Cartridge:1992/12/14
+ NEOGEO ROM-cart:1993/02/19
+ NEOGEO CD:1995/03/31
+ SENGOKU 2 Action SNK MVS Cartridge:1993/02/18
+ NEOGEO ROM-cart:1993/04/09
+ NEOGEO CD:1995/03/17
+ 3 COUNT BOUT Fighting SNK MVS Cartridge:1993/03/25
+ NEOGEO ROM-cart:1993/04/23
+ NEOGEO CD:1995/04/21
+ WORLD HEROES 2 Fighting ADK MVS Cartridge:1993/04/26
+ NEOGEO ROM-cart:1993/06/04
+ NEOGEO CD:1995/04/14
+ SAMURAI SHODOWN Fighting SNK MVS Cartridge:1993/07/07
+ NEOGEO ROM-cart:1993/08/11
+ NEOGEO CD:1994/09/09
+ FATAL FURY SPECIAL Fighting SNK MVS Cartridge:1993/09/16
+ NEOGEO ROM-cart:1993/12/22
+ NEOGEO CD:1994/09/09
+ SPINMASTER Sideview Action Data East MVS Cartridge:1993/12/16
+ NEOGEO ROM-cart:1994/02/18
+ ART OF FIGHTING 2 Fighting SNK MVS Cartridge:1994/02/03
+ NEOGEO ROM-cart:1994/03/11
+ NEOGEO CD:1994/09/09
+ WINDJAMMERS Sports Data East MVS Cartridge:1994/02/17
+ NEOGEO ROM-cart:1994/04/08
+ NEOGEO CD:1995/01/20
+ KARNOV'S REVENGE Fighting Data East MVS Cartridge:1994/03/17
+ NEOGEO ROM-cart:1994/04/28
+ NEOGEO CD:1994/12/22
+ SUPER SIDEKICKS 2 Sports SNK MVS Cartridge:1994/04/19
+ NEOGEO ROM-cart:1994/05/27
+ NEOGEO CD:1994/09/09
+ WORLD HEROES 2 JET Fighting ADK MVS Cartridge:1994/04/26
+ NEOGEO ROM-cart:1994/06/10
+ NEOGEO CD:1994/11/11
+ TOP HUNTER Action SNK MVS Cartridge:1994/05/18
+ NEOGEO ROM-cart:1994/06/24
+ NEOGEO CD:1994/09/29
+ GURURIN Puzzle Face MVS Cartridge:1994/05/25
+ FIGHT FEVER Fighting VICCOM MVS Cartridge:1994/06/28
+ JANSHIN DENSETSU: QUEST OF JONGMASTER Mahjong Aicom MVS Cartridge:1994/06/29
+ NEOGEO CD:1995/03/31
+ AERO FIGHTERS 2 Topview Shooter Video System MVS Cartridge:1994/07/18
+ NEOGEO ROM-cart:1994/08/26
+ NEOGEO CD:1994/09/29
+ AGGRESSORS OF DARK KOMBAT Fighting ADK MVS Cartridge:1994/07/26
+ NEOGEO ROM-cart:1994/08/26
+ NEOGEO CD:1995/01/13
+ THE KING OF FIGHTERS '94 Fighting SNK MVS Cartridge:1994/08/25
+ NEOGEO ROM-cart:1994/10/01
+ NEOGEO CD:1994/11/02
+ ZED BLADE Shooter NMK MVS Cartridge:1994/09/13
+ POWER SPIKES II Sports Video System MVS Cartridge:1994/10/19
+ NEOGEO CD:1995/03/18
+ SAMURAI SHODOWN II Fighting SNK MVS Cartridge:1994/10/28
+ NEOGEO ROM-cart:1994/12/02
+ NEOGEO CD:1994/12/15
+ STREET HOOP Sports Data East MVS Cartridge:1994/12/08
+ NEOGEO ROM-cart:1994/12/09
+ NEOGEO CD:1995/01/20
+ PUZZLE BOBBLE Puzzle TAITO MVS Cartridge:1994/12/21
+ NEOGEO CD:1995/05/02
+ SUPER VOLLEY '94 Sports TAITO MVS Cartridge:1994
+ BOMBERMAN: PANIC BOMBER Puzzle Eighting MVS Cartridge:1995/01/18
+ GALAXY FIGHT: UNIVERSAL WARRIORS Fighting Sunsoft MVS Cartridge:1995/01/24
+ NEOGEO ROM-cart:1995/02/25
+ NEOGEO CD:1995/04/21
+ QUIZ KING OF FIGHTERS Quiz Saurus MVS Cartridge:1995/02/01
+ NEOGEO ROM-cart:1995/03/10
+ NEOGEO CD:1995/04/07
+ DOUBLE DRAGON Fighting Technos MVS Cartridge:1995/03/03
+ NEOGEO ROM-cart:1995/03/31
+ NEOGEO CD:1995/06/02
+ SUPER SIDEKICKS 3 Sports SNK MVS Cartridge:1995/03/07
+ NEOGEO ROM-cart:1995/04/07
+ NEOGEO CD:1995/06/23
+ FATAL FURY 3 Fighting SNK MVS Cartridge:1995/03/27
+ NEOGEO ROM-cart:1995/04/21
+ NEOGEO CD:1995/04/28
+ SAVAGE REIGN Fighting SNK MVS Cartridge:1995/04/25
+ NEOGEO ROM-cart:1995/03/10
+ NEOGEO CD:1995/06/16
+ CROSSED SWORDS II Action ADK NEOGEO CD:1995/05/02
+ WORLD HEROES PERFECT Fighting ADK MVS Cartridge:1995/05/25
+ NEOGEO ROM-cart:1995/06/30
+ NEOGEO CD:1995/07/21
+ FAR EAST OF EDEN: KABUKI KLASH Fighting Hudson Soft MVS Cartridge:1995/06/20
+ NEOGEO ROM-cart:1995/07/28
+ NEOGEO CD:1995/11/24
+ THE KING OF FIGHTERS '95 Fighting SNK MVS Cartridge:1995/07/25
+ NEOGEO ROM-cart:1995/09/01
+ NEOGEO CD:1995/09/29
+ IDOL MAHJONG FINAL ROMANCE 2 Mahjong Video System NEOGEO CD:1995/08/25
+ PULSTAR Sidevi. Shooter Aicom MVS Cartridge:1995/08/28
+ NEOGEO ROM-cart:1995/09/29
+ NEOGEO CD:1995/10/27
+ VOLTAGE FIGHTER GOWCAIZER Fighting Technos MVS Cartridge:1995/09/18
+ NEOGEO ROM-cart:1995/10/20
+ NEOGEO CD:1995/11/24
+ STAKES WINNER Action Saurus MVS Cartridge:1995/09/27
+ NEOGEO ROM-cart:1995/10/27
+ NEOGEO CD:1996/03/22
+ SHOGI NO TATSUJIN - MASTER OF SYOUGI Japanese chess ADK MVS Cartridge:1995/09/28
+ NEOGEO ROM-cart:1995/10/13
+ NEOGEO CD:1995/10/20
+ AERO FIGHTERS 3 Topview Action Video System MVS Cartridge:1995/10/12
+ NEOGEO ROM-cart:1995/11/17
+ NEOGEO CD:1995/12/08
+ ADK WORLD Variety ADK NEOGEO CD:1995/11/10
+ SAMURAI SHODOWN III Fighting SNK MVS Cartridge:1995/11/15
+ NEOGEO ROM-cart:1995/12/01
+ NEOGEO CD:1995/12/29
+ CHIBI MARUKO-CHAN DELUXE QUIZ Variety Takara MVS Cartridge:1995/11/27
+ NEOGEO ROM-cart:1996/01/26
+ PUZZLE DE PON! Puzzle Visco MVS Cartridge:1995/11/28
+ REAL BOUT FATAL FURY Fighting SNK MVS Cartridge:1995/12/21
+ NEOGEO ROM-cart:1996/01/26
+ NEOGEO CD:1996/02/23
+ NEO-GEO CD SPECIAL Variety SNK NEOGEO CD:1995/12/22
+ NEO TURF MASTERS Sports Nazca MVS Cartridge:1996/01/29
+ NEOGEO ROM-cart:1996/03/01
+ NEOGEO CD:1996/05/03
+ ART OF FIGHTING 3 Fighting SNK MVS Cartridge:1996/03/12
+ NEOGEO ROM-cart:1996/04/26
+ NEOGEO CD:1996/06/14
+ MAGICAL DROP II Puzzle Data East MVS Cartridge:1996/03/21
+ NEOGEO ROM-cart:1996/04/19
+ NEOGEO CD:1996/05/24
+ OSHIDASHI JIN TRICK Puzzle ADK NEOGEO CD:1996/03/22
+ NEO DRIFT OUT Racing Visco MVS Cartridge:1996/03/28
+ NEOGEO CD:1996/07/26
+ METAL SLUG Action Nazca MVS Cartridge:1996/04/19
+ NEOGEO ROM-cart:1996/05/24
+ NEOGEO CD:1996/07/05
+ OVER TOP Racing ADK MVS Cartridge:1996/04/26
+ NEOGEO ROM-cart:1996/06/07
+ NEOGEO CD:1996/07/26
+ NINJA MASTER'S Fighting ADK MVS Cartridge:1996/05/27
+ NEOGEO ROM-cart:1996/06/28
+ NEOGEO CD:1996/09/27
+ RAGNAGARD Fighting Saurus MVS Cartridge:1996/06/13
+ NEOGEO ROM-cart:1996/07/26
+ NEOGEO CD:1996/08/23
+ FUTSAL Sports Saurus NEOGEO CD:1996/07/19
+ THE KING OF FIGHTERS '96 Fighting SNK MVS Cartridge:1996/07/30
+ NEOGEO ROM-cart:1996/09/27
+ NEOGEO CD:1996/10/25
+ KIZUNA ENCOUNTER SUPER TAG BATTLE Fighting SNK MVS Cartridge:1996/09/20
+ NEOGEO ROM-cart:1996/11/08
+ CHOUTETSU BURIKINGA Shooter Saurus NEOGEO CD:1996/09/20
+ STAKES WINNER 2 Real Jockey Act Saurus MVS Cartridge:1996/09/24
+ NEOGEO ROM-cart:1996/12/13
+ THE ULTIMATE 11 Sports SNK MVS Cartridge:1996/10/16
+ NEOGEO ROM-cart:1996/12/20
+ SAMURAI SHODOWN IV Fighting SNK MVS Cartridge:1996/10/25
+ NEOGEO ROM-cart:1996/11/29
+ NEOGEO CD:1996/12/27
+ WAKU WAKU 7 Fighting Sunsoft MVS Cartridge:1996/11/21
+ NEOGEO ROM-cart:1996/12/27
+ TWINKLE STAR SPRITES Shooter ADK MVS Cartridge:1996/11/25
+ NEOGEO ROM-cart:1997/01/31
+ NEOGEO CD:1997/02/21
+ BREAKERS Fighting Visco MVS Cartridge:1996/12/17
+ NEOGEO ROM-cart:1997/03/21
+ NEOGEO CD:1997/04/25
+ MONEY IDOL EXCHANGER Puzzle Face MVS Cartridge:1997/01/15
+ Real Bout FATAL FURY SPECIAL Fighting SNK MVS Cartridge:1997/01/28
+ NEOGEO ROM-cart:1997/02/28
+ NEOGEO CD:1997/03/03
+ THE KING OF FIGHTERS '96 NEOGEO COLLECTION Variety SNK NEOGEO CD:1997/02/14
+ MAGICAL DROP III Puzzle Data East MVS Cartridge:1997/02/25
+ NEOGEO ROM-cart:1997/04/25
+ NEO BOMBERMAN Action Hudson Soft MVS Cartridge:1997/05/01
+ NEO MR.DO! Action Visco MVS Cartridge:1997/06/26
+ SHINSETSU SAMURAI SHODOWN BUSHIDO RETSUDEN Role-playing SNK NEOGEO CD:1997/06/27
+ THE KING OF FIGHTERS '97 Fighting SNK MVS Cartridge:1997/07/28
+ NEOGEO ROM-cart:1997/09/25
+ NEOGEO CD:1997/10/30
+ UCCHAN NANCHAN NO HONO NO CHALLENGER ULTRA DENRYU IRAIRABOU Action Saurus MVS Cartridge:1997/08/25
+ SHOCK TROOPERS Shooter Saurus MVS Cartridge:1997/11/11
+ THE LAST BLADE Fighting SNK MVS Cartridge:1997/12/05
+ NEOGEO ROM-cart:1998/01/29
+ NEOGEO CD:1998/03/26
+ BLAZING STAR Shooter Yumekobo MVS Cartridge:1998/01/19
+ NEOGEO ROM-cart:1998/02/26
+ METAL SLUG 2 Action SNK MVS Cartridge:1998/02/23
+ NEOGEO ROM-cart:1998/04/02
+ NEOGEO CD:1998/06/25
+ REAL BOUT FATAL FURY 2 Fighting SNK MVS Cartridge:1998/03/20
+ NEOGEO ROM-cart:1998/04/29
+ NEOGEO CD:1998/07/23
+ NEOGEO CUP '98 Sports SNK MVS Cartridge:1998/05/28
+ NEOGEO ROM-cart:1998/07/30
+ BREAKERS REVENGE Fighting Visco MVS Cartridge:1998/07/03
+ NEOGEO ROM-cart:
+ THE KING OF FIGHTERS '98 Fighting SNK MVS Cartridge:1998/07/23
+ NEOGEO ROM-cart:1998/09/23
+ NEOGEO CD:1998/12/23
+ SHOCK TROOPERS 2nd Squad Action Shooter Saurus MVS Cartridge:1998/11/06
+ NEOGEO ROM-cart:1999/06/24
+ THE LAST BLADE 2 Fighting SNK MVS Cartridge:1998/11/25
+ NEOGEO ROM-cart:1999/01/28
+ NEOGEO CD:1999/02/27
+ FLIP SHOT Action Visco MVS Cartridge:1998/12/08
+ METAL SLUG X Action SNK MVS Cartridge:1999/03/19
+ NEOGEO ROM-cart:1999/05/27
+ CAPTAIN TOMADAY Shooter Visco MVS Cartridge:1999/05/27
+ THE KING OF FIGHTERS '99 Fighting SNK MVS Cartridge:1999/07/22
+ NEOGEO ROM-cart:1999/09/23
+ NEOGEO CD:1999/12/02
+ PREHISTORIC ISLE 2 Shooter Yumekobo MVS Cartridge:1999/09/27
+ GAROU: MARK OF THE WOLVES Fighting SNK MVS Cartridge:1999/11/26
+ NEOGEO ROM-cart:2000/02/25
+ STRIKERS 1945 PLUS Shooter Psikyo MVS Cartridge:1999/12/24
+ METAL SLUG 3 Action Shooter SNK MVS Cartridge:2000/03/23
+ NEOGEO ROM-cart:2000/06/01
+ THE KING OF FIGHTERS 2000 Fighting SNK MVS Cartridge:2000/07/26
+ NEOGEO ROM-cart:2000/12/21
+ NIGHTMARE IN THE DARK Horror Action Gavaking MVS Cartridge:2001
+ ZUPAPA! Comical Action Video System MVS Cartridge:2001
+ SENGOKU 3 Action SNK PLAYMORE MVS Cartridge:2001/07/18
+ NEOGEO ROM-cart:2001/10/25
+ THE KING OF FIGHTERS 2001 Fighting SNK PLAYMORE MVS Cartridge:2001/11/15
+ NEOGEO ROM-cart:2002/03/14
+ METAL SLUG 4 Action Shooter SNK PLAYMORE MVS Cartridge:2002/03/27
+ NEOGEO ROM-cart:2002/06/13
+ RAGE OF THE DRAGONS Fighting Evoga MVS Cartridge:2002/06/06
+ NEOGEO ROM-cart:2002/09/26
+ THE KING OF FIGHTERS 2002 Fighting SNK PLAYMORE MVS Cartridge:2002/10/10
+ NEOGEO ROM-cart:2002/12/19
+ POWER INSTINCT MATRIMELEE Fighting ATLUS/NOISE FA. MVS Cartridge:2003/03/20
+ NEOGEO ROM-cart:2003/05/29
+ SNK VS. CAPCOM: SVC CHAOS Fighting SNK PLAYMORE MV-0:2003/07/24
+ NEOGEO ROM-cart:2003/11/13
+ SAMURAI SHODOWN V Fighting SNK P/Yuki Ent MVS Cartridge:2003/10/10
+ NEOGEO ROM-cart:2003/12/11
+ METAL SLUG 5 Action Shooter SNK PLAYMORE MV-0:2003/11/14
+ NEOGEO ROM-cart:2004/02/19
+ THE KING OF FIGHTERS 2003 Fighting SNK PLAYMORE MV-0:2003/12/12
+ NEOGEO ROM-cart:2004/03/18
+ POCHI & NYAA Puzzle Aiky MVS Cartridge:2003/12/24
+ SAMURAI SHODOWN V SPECIAL Fighting SNK P/Yuki Ent MVS Cartridge:2004/04/22
+ NEOGEO ROM-cart:2004/07/15
+****************************************************************************/
+
+/* 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)", 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( 1992, lresortp, lresort, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Last Resort (prototype)", 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_kiz4p, 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_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_imaze, 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)", 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", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, janshin, neogeo, neogeo_mj, 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", 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" , 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", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, miexchng, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Face", "Money Puzzle Exchanger / Money Idol Exchanger", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, dragonsh, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Face", "Dragon's Heaven (development board)", MACHINE_IS_INCOMPLETE | MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) // same ID code as Voltage Fighter Gowkaizer, developed by ex-Technos staff
+
+/* Hudson Soft */
+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_mj, mjneogeo, neogeo_state, neogeo, ROT0, "Monolith Corp.", "Minasanno Okagesamadesu! Daisugorokutaikai (MOM-001)(MOH-001)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, bakatono, neogeo, neogeo_mj, 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", 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", MACHINE_SUPPORTS_SAVE )
+
+/* Psikyo */
+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)", 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", 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)", 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", MACHINE_SUPPORTS_SAVE )
+
+/* Technos Japan */
+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", MACHINE_SUPPORTS_SAVE )
+
+/* Viccom */
+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)", 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_dial, neogeo, 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)", 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)", 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?)", 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)", 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)", 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_noctrl, vliner, neogeo_noslot_state, vliner, ROT0, "Dyna / BrezzaSoft", "V-Liner (set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, vlinero, vliner, neogeo_noctrl, 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)", MACHINE_SUPPORTS_SAVE )
+
+/* Vektorlogic */
+GAME( 2004, sbp, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, sbp, ROT0, "Vektorlogic", "Super Bubble Pop", MACHINE_NOT_WORKING )
+
+/* NG:DEV.TEAM */
+GAME( 2005, lasthope, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "NG:DEV.TEAM", "Last Hope (bootleg AES to MVS conversion, no coin support)", MACHINE_SUPPORTS_SAVE ) // wasn't actually released on MVS but bootleg carts have been sold, this doesn't accept coins, runs like a console game
+// Last Hope Pink Bullets (c)2008 - MVS/AES
+// Fast Striker (c)2010 - MVS/AES
+// Fast Striker 1.5 (c)2010 - MVS/AES
+// GunLord (c)2012 - MVS/AES
+// Neo XYX (c)2013 - MVS/AES
+// Razion (c)2014 - MVS/AES?
+// Kraut Buster (c)2016 - MVS/AES
+
+/* N.C.I - LE CORTEX */
+// Treasure of the Caribbean (c)2011 - AES only (no credits system if ran on an MVS, Freeplay)
+
+/* NEOBITZ */
+// Knight's Chance (c)2014 - MVS/AES
+
+
+
+#include "../hbmame/drivers/neogeo0.cpp"
+
diff --git a/docs/release/src/hbmame/drivers/neogeohb.cpp b/docs/release/src/hbmame/drivers/neogeohb.cpp
new file mode 100644
index 00000000000..72c64d9864b
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/neogeohb.cpp
@@ -0,0 +1,1855 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+/*********************************************************************************************************
+
+neogeohb.cpp - started 2014-06-02
+
+HBMAME list of protos, unreleased, and homebrews. This number system is to make the categorisation
+of non-official NeoGeo sets easier. 300-399 is for unreleased commercial sets, while 400-999 is for
+homebrews. Protos will generally have an equivalent 'official' number that can be used.
+
+300-399 is mostly speculation, it is not really known what may or may not have actually existed.
+It is possible that a game is already known under another title, or perhaps it was a
+prototype of another title. Corrected info is welcome.
+
+400-499 are mostly confirmed as having existed at some time. A few of them seem unobtainable now.
+800-899 highly-priced limited edition homebrew carts, and are not to be emulated until after the maker
+ has discontinued the item.
+
+We want the MVS or AES roms for any game marked with * after the number.
+
+Please note: It is planned to move this list to the HBMAME website sometime this year.
+
+******* CD-only titles that may possibly exist as roms *************
+
+NUM YEAR COMPANY TITLE
+--- ---- ---------------- -------------------------------------------
+054 1995 ADK Crossed Swords 2
+085*1997 SNK Samurai Showdown R.P.G. (also known as 'Shinsetsu Samurai Spirits Bushidoretsuden')
+091*1995 ADK ADK World
+098 1995 Video System Co Final Romance 2
+205*1995 SNK NeoGeo CD Special
+211 1996 ADK Zintrick
+229*1996 SNK King of Fighters 96 CD Collection
+
+
+
+******* Normal games that have alternate titles (or other) *************
+
+NUM TITLES
+--- -------------------------------------------------------------------
+001 NAM-1975 (The MVS misses the demo sequence)
+004 Mahjong Kyo Retsuden / Real Mah-Jong Game
+007 Alpha Mission II / ASD Last Guardian II (MGD2 dump has extra sounds & roms)
+021 Puzzled / JoyJoyKid (The MVS misses the war & sun god sequence, AES misses demo)
+022 Blue's Journey / Raguy
+023 Quiz Daisousa Den / The Last Count Down
+033 Fatal Fury / Garou Densetsu
+038 Thrash Rally / Rally Chase
+043 3 Count Bout / Fire Suplex
+045 Samurai Shodown / Samurai Spirits
+047 Fatal Fury 2 / Garoudensetsu 2
+048 Mahjong Janshin / Quest of Jongmaster
+058 Fatal Fury Special / Garoudensetsu
+062 Spin Master / Miracle Adventure
+063 Samurai Shodown 2 / Samurai Spirits 2 / Saulabi Spirits 2
+065 Windjammers / Flying Power Disc
+066 Karnov's Revenge / Fighter's History Dynamite
+069 Fatal Fury 3 / Garoudensetsu 3; The Battle of Destiny; Road to the Final Victory
+076 Zed Blade / Operation Ragnarok
+079 Street Hoop / Dunk Dream
+087 Samurai Shodown III / Fighters Swords
+092 Kabuki Klash / Far East of Eden
+200 Neo Turf Masters / Big Tournament Golf
+215 Super Sidekicks 4 / SNK Football Championship
+216 Kizuna Encounter; Super Tag Battle
+219 Pleasure Goal / Futsal
+220 Ironclad / Brikin'ger
+222 Samurai Shodown 4 / Legend of a Warrior
+
+
+
+********************** 300 to 399 **********************************
+
+NUM YEAR COMPANY TITLE
+--- ---- ---------------- -------------------------------------------
+300* Baseball Stars 3
+301* Death Match
+302* Fire Suplex 2
+303* Heavy Glove Boxing
+304* Magician Lord 2
+305* Ninja Gaiden (This may be Ninja Gaiden II, 1994, Tecmo)
+306* Reactor
+307* World Heroes Link-up
+308*1990 Alpha Denshi Sun Shine / Block Paradise
+309*1991 Sammy Dunk Star
+310*1991 Alpha Denshi Mystic Wand
+311*1991 Alpha Denshi Fun Fun Brothers
+312*1994 Visco Crystal Legacy (this may be an early name for Breakers)
+313*1994 Video System Co Super Volley 94 (this may be an early name for Power Spikes 2)
+314*1994 Mahou All Stars Volley
+315*1994 Visco Puzzlekko Club
+316 1994 Face Treasure of the Caribbean (may also be known as 'Carib No Zaihou')
+317*1995 Face Ultimate 4 / King of Athlete
+318*1995 Monolith Last Odyssey Pinball Fantasia
+319*1995 MAX Maseki Taisen Stoon
+320*1995 Astec Warlocks of the Fates
+321*1995 Yumekobo The Karate Ninja Show
+322*1996 Sunsoft Hebereke's Pair Pair Wars
+323*1996 Viccom The Eye of Typhoon
+324*1996 Kigyo Action Pac
+325*1996 SNK Kizuna Encounter Special Edition (could be "Kizuna Encounter 4way Battle") (could be "Fu'un Super Tag Battle Link-up")
+326*1996 Saurus Mahou Juku Magic Master
+327*1997 Saurus Neo Pool Master
+328*1997 Success Q.P.
+329*1997 Gapporin Ookiku Fukuramasete Gapporn
+330*2000 SNK Garou 2 / Mark of the Wolves Special
+331 2001 Brezzasoft Jockey Grand Prix
+332 2001 Brezzasoft V-Liner
+333*2002 Sun Amusement Poker Kingdom / Bingo Island
+334*2002 ADK Dance RhythMIX
+335*2002 ADK World Heroes 3
+336 Face Dragon's Heaven
+337*2000 Vektorlogic Neo Sparks (cancelled)
+338 2004 Vektorlogic Super Bubble Pop
+339* Vektorlogic TommyK (cancelled)
+350* Neo Dev Cart
+351* MVS Test Cart
+360 2003 PhenixSoft Crouching Tiger Hidden Dragon (hack of kof2001) (original number 5003)
+361 2003 SNK? King of Gladiator (hack of kof97) (original number 5232)
+362 2004 Saurus/SNK Lansquenet 2004 (hack of Shock Troopers 2nd squad)
+363 2004 SNK? King of Fighters 10th Anniversary (hack of kof2002) (original number 5004,5008)
+364 2004 SNK? King of Fighters 2004 EX (hack of kof2003)
+365 2004 Dragon Co, Ltd King of Fighters Special Edition 2004 (hack of kof2002)
+366 2008 SNK? King of Fighters 10th Anniversary 2008 (hack of kof10th) (original number 5009)
+
+
+
+********************** 400 to 499 **********************************
+(n/r) = not released (yet)
+
+NUM YEAR COMPANY TITLE
+--- ---- ----------------------- -------------------------------------------
+400 1999 Kyle Hodgetts Digger Man
+401 2002 Jeff Kurtz Shadow of the Beast demo (original number 2002)
+402* Neobitz Neobitz demo (Jeff M. Kurtz is Neobitz)
+403 2003 Neobitz Poker Night (original number 2003)
+404 2004 Neobitz Columns (original number 2000)
+405*2005 Neobitz Neo-Pac (pacman game)
+406 2000 Blastar System Check
+407 2002 Blastar Neo no Panepon
+408 2004 Blastar Neo 2500 demo
+409 2005 Blastar Jonas Indiana and the Lost Temple of Ra
+410 2006 Blastar Codename: Blut Engel
+411 2006 Blastar NGEM2K
+412 2002 Neodev Neo Pong
+413 2001 Rastersoft WW2 demo
+414 2005 Rastersoft Frog Feast demo
+415 2006 Rastersoft Frog Feast
+416 2003 Charles Doty Neogeo Demo
+417 2011 Furrtek Nyan Cat demo
+418 2008 Crim Neogeo 2-player Tetris
+419 2011 Sebastian Mihai Neo Thunder
+420 2004 BarfHappy Neo Castlevania demo
+421 2012 Oxygene Neo 3D demo
+422 2012 NeoGeoFreak Time's Up! demo
+423*1996 Kigyo Corp Action-Pac (not known if it ever existed)
+424 2012 NeoGeoFreak Transparency demo
+425 2009 Raregame Chip n Dale intro
+426 2009 Raregame Darkwing Duck intro
+427 2009 Raregame Ghostbusters intro
+428 2009 Raregame Robocop intro
+429 2009 Raregame Spiderman intro
+430 2009 Raregame Teenage Mutant Ninja Turtles intro
+431 2009 Raregame Duck Tales Intro
+432
+433
+434*2010 CeL Hello World
+435 2010 CeL Neorom Jukebox
+436*2010 CeL Neo Pang
+437 2013 Le Cortex Crouching Pony Hidden Dragon demo
+438 2002 <unknown> Neo Bubble
+439 2013 Cristiano Bei Primo demo
+440 2013 Cristiano Bei Neo Geo Galaga demo
+441 2013 Cristiano Bei Neo Geo Sound Test
+442
+443
+444 2012 M.Priewe Santaball
+445*2014 M.Priewe Doom in the Deep (in development)
+446 2014 M.Priewe Monitor Test Tool
+447*2016 M.Priewe Hypernoid (in development)
+448
+449
+450*2012 RKGAMES Neo-sprite demo (CD only)
+451*2000 Martinez Fabrice VIP2 demo (CD only) [nebula]
+452*2011 Furrtek VUmeter (CD only) [nebula]
+453
+454*2013 Cristiano Bei NGPhoenix (CD only)
+455*2004 Blastar Neo Puzzle League (CD only) [nebula]
+456*2013 Jeff Ferrier Neo Geo Manic Panic
+457 Furrtek MVSTest01
+458 Furrtek KnackiBalls
+459*n/r Furrtek Unleashed (in development or cancelled)
+460*n/r Furrtek Astrosmash (in development or cancelled)
+461*n/r RiKo Cosmic Tower (in development or cancelled)
+462 2009 Elrayzeur Puzzle Bobble Crazy
+463* NGD NGD::ARK (Arkanoid port)
+464* NGD NGD::AIR (ngdevgroup.com [dead])
+465* NGD NGD::FIGHT
+466* 4-player input test
+467 2011 Furrtek Sprite Experimenter
+468*n/r Neobitz Submarine Shooter (in development)
+469
+470 2015 freem ADPCM-B Playback Demo
+471*n/r tcdev Donkey Kong (in development or cancelled)
+472 2015 freem ADPCM-A Playback Demo
+473 2015 blastar Twister in a mirror intro
+474 2015 freem Sound-Loop Demo
+475 2016 Kannagi Ennemi Sprite Demo
+476 2015 Kannagi Neo Fight
+477 2016 Mega Shocked DatImage demo
+478 2016 Mega Shocked Demo
+479*2016 Luis Miguel Mayor Tech Demo #1 (Street Fighter 2)
+480 2016 Luis Miguel Mayor Tech Demo #2
+
+
+********************** 800 to 899 **********************************
+
+NUM YEAR COMPANY TITLE
+--- ---- ----------------------- -------------------------------------------
+800*2012 NeoGeoFreak Time's Up!
+801*2013 Le Cortex Crouching Pony Hidden Dragon
+802 2006 NG:DEV.Team Last Hope
+803*2010 NG:DEV.Team Fast Striker
+804*2011 NG:DEV.Team Last Hope Pink Bullets
+805*2012 NG:DEV.Team Gunlord
+806*2013 NG:DEV.Team NEO XYX
+807*2013 Neobitz Knight's Chance
+808*2014 NG:DEV.Team Razion
+809*2015 NG:DEV.Team Kraut Buster
+
+
+*********************************************************************************************************/
+
+
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, fr2ch )
+{
+//// Fix rebooting at start
+
+ uint16_t *src = (uint16_t*)memregion("maincpu")->base();
+
+ // change jsr to C004DA
+ src[0x01AF8 /2] = 0x04DA; // C00552 (Not used?)
+ src[0x01BF6 /2] = 0x04DA; // C0056A (fixes crash)
+ src[0x01ED8 /2] = 0x04DA; // C00570 (Not used?)
+ src[0x1C384 /2] = 0x04DA; // C00552 (fixes crash)
+
+ // 0x001C06 - this routine can cause a loop/freeze
+ src[0x01C06 /2] = 0x4E75;
+
+//// Fix text on bottom line
+
+ uint8_t *dst = memregion( "fixed" )->base();
+
+ // Move text for credit + coin info (Thanks to Kanyero), overwrites "MA" in neogeo logo
+ memcpy(dst, dst + 0x600, 0x140);
+
+ // Patch out neogeo intro (because of above line)
+ src[0x114 /2]=0x200;
+
+
+//// Optional stuff
+
+
+ uint8_t i, *rom = memregion("maincpu")->base();
+
+ uint8_t data[16] = {
+ 0x49, 0x46, 0x41, 0x4E, 0x20, 0x4C, 0x4F, 0x52,
+ 0x41, 0x4D, 0x43, 0x4E, 0x20, 0x45, 0x20, 0x32 };
+
+ // Hack in the proper identification (see setup menu [F2])
+ for (i = 0; i < 16; i++)
+ rom[0x3A6 + i] = rom[0x61E + i] = rom[0x896 + i] = data[i];
+
+ // Album Fix
+ src[0x1C382 /2] = 0x0008; // C00552
+ src[0x1C384 /2] = 0x0000;
+ src[0x80000 /2] = 0x33FC;
+ src[0x80002 /2] = 0x0001;
+ src[0x80004 /2] = 0x0020;
+ src[0x80006 /2] = 0x0002;
+ src[0x80008 /2] = 0x4E75;
+
+ DRIVER_INIT_CALL(neogeo);
+
+ /* old fr2cd code:
+ uint16_t *mem16 = (uint16_t*)memory_region(machine, "maincpu");
+ mem16[0x1BF2/2] = 0x4E71;
+ mem16[0x1BF4/2] = 0x4E71;
+ mem16[0x1BF6/2] = 0x4E71;
+ DRIVER_INIT_CALL(neogeo); */
+}
+
+
+
+// 054 : Crossed Swords 2
+ROM_START( crswd2bl )
+ ROM_REGION( 0x200000, "maincpu", ROMREGION_BE|ROMREGION_16BIT )
+ ROM_LOAD16_WORD_SWAP( "054-p1.p1", 0x100000, 0x100000, CRC(64836147) SHA1(083cb1626885893e736fc9998036c952cd4d503b) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "054-s1.s1", CRC(22e02ddd) SHA1(ebd834affc763cc5854abf1c6c42f43f3f3755fd) )
+
+ NEO_BIOS_AUDIO_128K( "054-m1.m1", CRC(63e28343) SHA1(f46dbc2f1d6033b11047cca31a9a7d715dc69cb2) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "054-v1.v1", 0x000000, 0x200000, CRC(22d4b93b) SHA1(0515f2ee5d9a8ce424c80721e06f746ac6a543a8) )
+
+ ROM_REGION( 0x800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "054-c1.c1", 0x000000, 0x400000, CRC(8221b712) SHA1(7e68871f1bfc402ef27c8fa088c680cbd133f71a) )
+ ROM_LOAD16_BYTE( "054-c2.c2", 0x000001, 0x400000, CRC(d6c6183d) SHA1(cc546ff063fae2c01c109fabcd5b2d29ec3299db) )
+ROM_END
+
+// Roms missing; not working at all
+ROM_START( csw2 )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "054.p1", 0x000000, 0x100000, CRC(b6e8f765) SHA1(fac63109664b834b43240a6e93353173e129e6af) )
+
+ NEO_SFIX_128K( "054.s1", CRC(7ddb9c7e) SHA1(c7ca63f1ff9edb2f71d13cc14d6a426b85182228) )
+
+ NEO_BIOS_AUDIO_64K( "054.m1", CRC(c45e902b) SHA1(fa17a16077393f986b72f412ce91bded34558af0) )
+
+ ROM_REGION( 0x100000, "ymsnd", 0 )
+ ROM_LOAD( "054.v1", 0x000000, 0x80000, CRC(a12842f2) SHA1(6f6377ff54465c4c13e34f8cb4f333f4f15aed5c) )
+ ROM_LOAD( "054.v2", 0x000001, 0x80000, CRC(3b7feef0) SHA1(748db17fbd3bf8fc427ff57e0952f21dd2782e6b) )
+
+ ROM_REGION( 0x400000, "sprites", 0 ) // c-roms not found yet, using crswd2bl roms for now
+ ROM_LOAD16_BYTE( "054-c1.c1", 0x000000, 0x400000, CRC(8221b712) SHA1(7e68871f1bfc402ef27c8fa088c680cbd133f71a) )
+ ROM_LOAD16_BYTE( "054-c2.c2", 0x000001, 0x400000, CRC(d6c6183d) SHA1(cc546ff063fae2c01c109fabcd5b2d29ec3299db) )
+ROM_END
+
+
+// 098 : Idol Mahjong Final Romance 2
+ROM_START( fr2 )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "098.p1", 0x000000, 0x80000, CRC(09675541) SHA1(6afb89d43e67f93e40f3877cbedfec9566e3ff0f) )
+
+ NEO_SFIX_128K( "098.s1", CRC(0e6a7c73) SHA1(31b1194524dcc80ec4d63bac088b6fb4909f496c) )
+
+ NEO_BIOS_AUDIO_128K( "098.m1", CRC(da4878cf) SHA1(ce13d18a4c5d01974df8542c67c4df00dbc6e7c1) )
+
+ ROM_REGION( 0x100000, "ymsnd", 0 )
+ ROM_LOAD( "098.v1", 0x000000, 0x100000, CRC(6f8ccddc) SHA1(696df2d0f416c2374b0eb7c858486054688c5bca) )
+
+ ROM_REGION( 0x800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "098.c1", 0x0000000, 0x400000, CRC(29148bf7) SHA1(75097fbe8877720afbcbe4dbe30bc600466d759f) )
+ ROM_LOAD16_BYTE( "098.c2", 0x0000001, 0x400000, CRC(226b1263) SHA1(dee6a4a0a727c1d8a6d298cb38ed1b9901992d5b) )
+ROM_END
+
+ROM_START( fr2cd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "098cd.p1", 0x000000, 0x100000, CRC(a2527a5f) SHA1(1f6e3c7de9154c0026360ee6fa0bd211ed541af1) )
+
+ NEO_SFIX_128K( "098cd.s1", CRC(764ac7aa) SHA1(cc40ad276e63084ebf3c3ee224083762a47c3cf8) )
+
+ NEO_BIOS_AUDIO_64K( "098cd.m1", CRC(a455fa31) SHA1(82ccc5e2e5869a46da7533ed10ac5eab549a0063) )
+
+ ROM_REGION( 0x100000, "ymsnd", 0 )
+ ROM_LOAD( "098cd.v1", 0x000000, 0x100000, CRC(92e175f0) SHA1(788a9cce9028f16d6734bff163beb1a19305b8be) )
+
+ ROM_REGION( 0x600000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "098cd.c1", 0x0000000, 0x300000, CRC(29bf9af0) SHA1(6c7e9c2b7062bf361a2290010c4e1828eb7019cc) )
+ ROM_LOAD16_BYTE( "098cd.c2", 0x0000001, 0x300000, CRC(3cf46f63) SHA1(c5316e83586e7b1c902746f8f2049baf026b52bf) )
+ROM_END
+
+ROM_START( fr2ch ) // CD to MVS Conversion
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "098ch.p1", 0x000000, 0x080000, CRC(9AA8CEE0) SHA1(b2201f16d8fde4eaae9dbc754d019e7b381ecc06) )
+
+ NEO_SFIX_128K( "098cd.s1", CRC(764ac7aa) SHA1(cc40ad276e63084ebf3c3ee224083762a47c3cf8) )
+
+ NEO_BIOS_AUDIO_64K( "098cd.m1", CRC(a455fa31) SHA1(82ccc5e2e5869a46da7533ed10ac5eab549a0063) )
+
+ ROM_REGION( 0x100000, "ymsnd", 0 )
+ ROM_LOAD( "098cd.v1", 0x000000, 0x100000, CRC(92e175f0) SHA1(788a9cce9028f16d6734bff163beb1a19305b8be) )
+
+ ROM_REGION( 0x600000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "098ch.c1", 0x000000, 0x100000, CRC(6158CF4A) SHA1(8e34b65f2cdfccaa6eeb40fef1ab3453eab92f46) )
+ ROM_LOAD16_BYTE( "098ch.c2", 0x000001, 0x100000, CRC(93A809A3) SHA1(9b680b8b758cfc77f01d7211b67343a90462b3f3) )
+ ROM_LOAD16_BYTE( "098ch.c3", 0x200000, 0x100000, CRC(FAFA3381) SHA1(0c4f20c4d5f57c1dad50b914f9d1299a9d882b42) )
+ ROM_LOAD16_BYTE( "098ch.c4", 0x200001, 0x100000, CRC(9895E23F) SHA1(565b5fbe07f65fb48d0bde769d3245a6ac747774) )
+ ROM_LOAD16_BYTE( "098ch.c5", 0x400000, 0x100000, CRC(EEAAA818) SHA1(434c13852153d7bebe138611a836d9bf07d1d4cf) )
+ ROM_LOAD16_BYTE( "098ch.c6", 0x400001, 0x100000, CRC(F3D9A190) SHA1(44932122e044d23234235cb3899f6e1e63970983) )
+ROM_END
+
+
+// 211 : Zintrick
+ROM_START( zintrkcd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "211cd.p1", 0x000000, 0x100000, CRC(9a0bfe0a) SHA1(94299c51572b66fa37e3e496436299573b1faaa8) )
+
+ NEO_SFIX_128K( "211cd.s1", CRC(56d16afa) SHA1(6e1f960a781f5ef1f858c51507fe573bead8ea66) )
+
+ NEO_BIOS_AUDIO_64K( "211cd.m1", CRC(fcae1407) SHA1(5b4bff97a8c5930852eff6aee553eadc18e8f3d9) )
+
+ ROM_REGION( 0x100000, "ymsnd", 0 )
+ ROM_LOAD( "211cd.v1", 0x000000, 0x100000, CRC(781439da) SHA1(a80cdf3be55b5fc2ba1d167f69e222463d06ad88) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "zin-c1.bin", 0x000000, 0x200000, CRC(76aee189) SHA1(ad6929804c5b9a59aa609e6baebc6aa37e858a47) )
+ ROM_LOAD16_BYTE( "zin-c2.bin", 0x000001, 0x200000, CRC(844ed4b3) SHA1(fb7cd057bdc6cbe8b78097dd124118bae7402256) )
+ROM_END
+
+ROM_START( zintrkcd1 )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "211m1.p1", 0x000000, 0x100000, CRC(032df2ba) SHA1(dfd35d77da203ebad5319b355fd65e6ed6a553da) )
+
+ NEO_SFIX_128K( "211cd.s1", CRC(56d16afa) SHA1(6e1f960a781f5ef1f858c51507fe573bead8ea66) )
+
+ NEO_BIOS_AUDIO_64K( "211m1.m1", CRC(8e539e59) SHA1(fba718ca565a6d5f122baa6d695108632672d1b0) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "211m1.v1", 0x000000, 0x800000, CRC(00e392ed) SHA1(8a46673c02fc25e65821d45749aa6fe697fa81c1) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "zin-c1.bin", 0x000000, 0x200000, CRC(76aee189) SHA1(ad6929804c5b9a59aa609e6baebc6aa37e858a47) )
+ ROM_LOAD16_BYTE( "zin-c2.bin", 0x000001, 0x200000, CRC(844ed4b3) SHA1(fb7cd057bdc6cbe8b78097dd124118bae7402256) )
+ROM_END
+
+ROM_START( zintrkm )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "211m.p1", 0x000000, 0x100000, CRC(b3fb325c) SHA1(27a34ff0dfea02b1aac3ddbc7c965684694390f1) )
+
+ NEO_SFIX_128K( "211m.s1", CRC(b67cb1fd) SHA1(3abf201bcc28ec5bd145f0848dc44c239a6ec651) )
+
+ NEO_BIOS_AUDIO_128K( "211m.m1", CRC(a602c2c2) SHA1(19fd5d0379244c528b58343f6cbf78b4766fb23d) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "211m.v1", 0x000000, 0x200000, CRC(baa2b9a5) SHA1(914782b6c81d9a76ce02251575592b0648434ba3) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "zin-c1.bin", 0x000000, 0x200000, CRC(76aee189) SHA1(ad6929804c5b9a59aa609e6baebc6aa37e858a47) )
+ ROM_LOAD16_BYTE( "zin-c2.bin", 0x000001, 0x200000, CRC(844ed4b3) SHA1(fb7cd057bdc6cbe8b78097dd124118bae7402256) )
+ROM_END
+
+ROM_START( zintrckbh )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "211h.p1", 0x000000, 0x100000, CRC(328af665) SHA1(ece74116955ecb9ec40ac90913d496836ecc82cf) )
+
+ NEO_SFIX_128K( "zin-s1.bin", CRC(a7ab0e81) SHA1(f0649819b96cea79b05411e0b15c8edc677d79ba) )
+
+ NEO_BIOS_AUDIO_128K( "zin-m1.bin", CRC(fd9627ca) SHA1(b640c1f1ff466f734bb1cb5d7b589cb7e8a55346) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "zin-v1.bin", 0x000000, 0x200000, CRC(c09f74f1) SHA1(d0b56a780a6eba85ff092240b1f1cc6718f17c21) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "zin-c1.bin", 0x000000, 0x200000, CRC(76aee189) SHA1(ad6929804c5b9a59aa609e6baebc6aa37e858a47) )
+ ROM_LOAD16_BYTE( "zin-c2.bin", 0x000001, 0x200000, CRC(844ed4b3) SHA1(fb7cd057bdc6cbe8b78097dd124118bae7402256) )
+ROM_END
+
+
+// 316 : Treasure of the Caribbean
+ROM_START( totc )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "316.p1", 0x000000, 0x100000, CRC(99604539) SHA1(88d5f4fe56516aa36496cafd2508f6864118f1e2) )
+
+ NEO_SFIX_128K( "248-s1.s1", CRC(0a3fee41) SHA1(0ab2120e462086be942efcf6ffb37f58ea966ca3) )
+
+ NEO_BIOS_AUDIO_128K( "316.m1", CRC(18b23ace) SHA1(d55495f3d8bb5568c8f2322763278a86ba5297b3) )
+
+ ROM_REGION( 0x500000, "ymsnd", 0 )
+ ROM_LOAD( "316.v1", 0x000000, 0x200000, CRC(15c7f9e6) SHA1(c51328a92dc7c612fd6c2f3841caee4fbd120f36) )
+ ROM_LOAD( "316.v2", 0x200000, 0x200000, CRC(1b264559) SHA1(50c28858304e51cdc60f425483a1d1d2bbfb2f8d) )
+ ROM_LOAD( "316.v3", 0x400000, 0x100000, CRC(84b62c5d) SHA1(30d7f2e16c6d602cebce5e9b4b8a5b2bde20af58) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "316.c1", 0x000000, 0x200000, CRC(cdd6600f) SHA1(85649c199b32db7553012cb5a058a92bbbb7355a) )
+ ROM_LOAD16_BYTE( "316.c2", 0x000001, 0x200000, CRC(f362c271) SHA1(4a2efa043cd2553ff7039cb18a1dba8b41493be7) )
+ROM_END
+
+
+// 401 : Shadow of the Beast demo by Neobitz
+// No sound
+ROM_START( beast )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "401.p1", 0x000000, 0x080000, CRC(1f9e62a4) SHA1(f245ce9802c5deb257a11fa714b2d1d4d72fc786) )
+
+ NEO_SFIX_128K( "401.s1", CRC(05a417f5) SHA1(932eeab5ba06f654ed39112c71a4e5a1f78c70bd) )
+
+ NEO_BIOS_AUDIO_64K( "407.m1", CRC(7669de64) SHA1(caa170b561df4f68000beaad41d942c66a4a10ee) )
+
+ ROM_REGION( 0x080000, "ymsnd", 0 )
+ ROM_LOAD( "407.v1", 0x000000, 0x080000, CRC(504bf849) SHA1(13a184ec9e176371808938015111f8918cb4df7d) )
+
+ ROM_REGION( 0x100000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "401.c1", 0x000000, 0x80000, CRC(e1974741) SHA1(175b09778875a18f12e7b34c53862ac8c93141c1) )
+ ROM_LOAD16_BYTE( "401.c2", 0x000001, 0x80000, CRC(9f5b9cf6) SHA1(857595fc93bfec069c8b1cf647ab9feedce56f1f) )
+ROM_END
+
+
+// 403 : Poker Night by Neobitz
+// No sound
+ROM_START( poknight )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "403.p1", 0x000000, 0x080000, CRC(750421ee) SHA1(0a86823456a82506bc96989c361626be4b3ceeaf) )
+
+ NEO_SFIX_128K( "403.s1", CRC(a26d2f09) SHA1(e7da6005a66e52f5479f9fe9f0cc67527dcb5d04) )
+
+ NEO_BIOS_AUDIO_64K( "407.m1", CRC(7669de64) SHA1(caa170b561df4f68000beaad41d942c66a4a10ee) )
+
+ ROM_REGION( 0x080000, "ymsnd", 0 )
+ ROM_LOAD( "407.v1", 0x000000, 0x080000, CRC(504bf849) SHA1(13a184ec9e176371808938015111f8918cb4df7d) )
+
+ ROM_REGION( 0x100000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "403.c1", 0x000000, 0x80000, CRC(5fb2b761) SHA1(12ec2abcd199da866519aca767818a080d9b40bf) )
+ ROM_LOAD16_BYTE( "403.c2", 0x000001, 0x80000, CRC(f2b570e3) SHA1(1c8d8dc75651ec788729bfc7198c926285ad6080) )
+ROM_END
+ROM_START( poknightcd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "403.p1", 0x000000, 0x080000, CRC(750421ee) SHA1(0a86823456a82506bc96989c361626be4b3ceeaf) )
+
+ NEO_SFIX_64K( "403a.s1", CRC(d6919a39) SHA1(46c858249292c1077c1e4ba5a6be469eb39ed483) )
+
+ NEO_BIOS_AUDIO_64K( "407.m1", CRC(7669de64) SHA1(caa170b561df4f68000beaad41d942c66a4a10ee) )
+
+ ROM_REGION( 0x080000, "ymsnd", 0 )
+ ROM_LOAD( "407.v1", 0x000000, 0x080000, CRC(504bf849) SHA1(13a184ec9e176371808938015111f8918cb4df7d) )
+
+ ROM_REGION( 0x100000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "403a.c1", 0x000000, 0x80000, CRC(0ab5143b) SHA1(73d81c09deec02174aa5528aafad28c1294e8b8e) )
+ ROM_LOAD16_BYTE( "403a.c2", 0x000001, 0x80000, CRC(a7b2d3b9) SHA1(9723d53d10efdf9d1d402d4b9487ef5697262491) )
+ROM_END
+ROM_START( poknightfr )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "403b.p1", 0x000000, 0x020000, CRC(e0b3e776) SHA1(4b5aa783d59d37a04553671830e932a35561d447) )
+
+ NEO_SFIX_MT_128K
+ ROM_LOAD( "403b.s1", 0x00000, 0x08000, CRC(3824214d) SHA1(446bf7ec6afc80a758d7d5dc3156a12cdee3b38d) )
+ //ROM_RELOAD (0x10000, 0x08000)
+
+ NEO_BIOS_AUDIO_64K( "407.m1", CRC(7669de64) SHA1(caa170b561df4f68000beaad41d942c66a4a10ee) )
+
+ ROM_REGION( 0x080000, "ymsnd", 0 )
+ ROM_LOAD( "407.v1", 0x000000, 0x080000, CRC(504bf849) SHA1(13a184ec9e176371808938015111f8918cb4df7d) )
+
+ ROM_REGION( 0x100000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "403b.c1", 0x000000, 0x18000, CRC(0ee80e14) SHA1(4dbe8b0750ca8e479bc6936ecf15572ef5ff7462) )
+ ROM_LOAD16_BYTE( "403b.c2", 0x000001, 0x18000, CRC(84f17a6d) SHA1(3a2232469274c5418e58dd48b78106d540f2c6ad) )
+ROM_END
+
+
+// 404 : Columns by Neobitz
+// No sound
+ROM_START( columnsn )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "404.p1", 0x000000, 0x080000, CRC(c6c9888d) SHA1(5a2ec1071872c817bf82053ca7b7d5d63fab6755) )
+
+ NEO_SFIX_128K( "404.s1", CRC(089a28a8) SHA1(b38b5c42eb909c57c16b016addffcd4e930806ce) )
+
+ NEO_BIOS_AUDIO_64K( "407.m1", CRC(7669de64) SHA1(caa170b561df4f68000beaad41d942c66a4a10ee) )
+
+ ROM_REGION( 0x080000, "ymsnd", 0 )
+ ROM_LOAD( "407.v1", 0x000000, 0x080000, CRC(504bf849) SHA1(13a184ec9e176371808938015111f8918cb4df7d) )
+
+ ROM_REGION( 0x100000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "404.c1", 0x000000, 0x80000, CRC(9a579cab) SHA1(9efd285c1bdc49a0d1daf2a062d0f906a0f5b542) )
+ ROM_LOAD16_BYTE( "404.c2", 0x000001, 0x80000, CRC(91d14043) SHA1(de6a1178fbfa3d75285e4338967f0ce4ed1aff23) )
+ROM_END
+
+ROM_START( columnsncd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "404.p1", 0x000000, 0x080000, CRC(c6c9888d) SHA1(5a2ec1071872c817bf82053ca7b7d5d63fab6755) )
+
+ NEO_SFIX_64K( "404a.s1", CRC(16cdb953) SHA1(a699f05fe9fb02a9bb0f03778578a5adcae00b91) )
+
+ NEO_BIOS_AUDIO_64K( "407.m1", CRC(7669de64) SHA1(caa170b561df4f68000beaad41d942c66a4a10ee) )
+
+ ROM_REGION( 0x080000, "ymsnd", 0 )
+ ROM_LOAD( "407.v1", 0x000000, 0x080000, CRC(504bf849) SHA1(13a184ec9e176371808938015111f8918cb4df7d) )
+
+ ROM_REGION( 0x100000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "404a.c1", 0x000000, 0x80000, CRC(cf503ff1) SHA1(3fb3131fa55d6137381b817dbb07b740096749b7) )
+ ROM_LOAD16_BYTE( "404a.c2", 0x000001, 0x80000, CRC(c4d6e319) SHA1(19a5bb2622c01bea2c0eb2206724c7751caca318) )
+ROM_END
+
+
+// 406 : NeoSystemCheck v1.0b by Blastar
+// No sound
+ROM_START( syscheck )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "406.p1", 0x000000, 0x80000, CRC(a4adbe1e) SHA1(eee4a8ebe62a2c97282f0350b3c28c615ea44956) )
+
+ NEO_SFIX_64K( "406.s1", CRC(4774f28e) SHA1(f381dac250fca3dfe1eb8c8f1b9b3bf0d521000e) )
+
+ ROM_REGION16_BE( 0x20000, "mainbios", 0 )
+ ROM_LOAD16_WORD_SWAP( "uni-bios_2_3o.rom", 0x00000, 0x20000, CRC(601720ae) SHA1(1b8a72c720cdb5ee3f1d735bbcf447b09204b8d9) )
+
+ ROM_REGION( 0x20000, "audiobios", 0 )
+ ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(97cf998b) SHA1(977387a7c76ef9b21d0b01fa69830e949a9a9626) )
+
+ ROM_REGION( 0x20000, "audiocpu", 0 )
+ ROM_LOAD( "406.m1", 0x0000, 0x10000, CRC(7669de64) SHA1(caa170b561df4f68000beaad41d942c66a4a10ee) )
+ ROM_RELOAD( 0x10000, 0x10000 )
+
+ ROM_REGION( 0x80000, "ymsnd", 0 )
+ ROM_LOAD( "406.v1", 0x000000, 0x80000, CRC(504bf849) SHA1(13a184ec9e176371808938015111f8918cb4df7d) )
+
+ ROM_REGION( 0x100000, "sprites", ROMREGION_ERASEFF )
+ // no sprites (these blank roms not used)
+ //ROM_LOAD16_BYTE( "406.c1", 0x000000, 0x80000, CRC(75660aac) SHA1(6a521e1d2a632c26e53b83d2cc4b0edecfc1e68c) )
+ //ROM_LOAD16_BYTE( "406.c2", 0x000001, 0x80000, CRC(75660aac) SHA1(6a521e1d2a632c26e53b83d2cc4b0edecfc1e68c) )
+ROM_END
+
+
+// 407 : Neo No Panepon by Blastar, 2002
+// No sound
+/* There are 4 versions.
+ Release dates: v1a and v1b = 2002-07-07, v1c = 2002-08-22, v2 = 2002-10-05
+
+ MAME has a bug where the first 2 high scores do not show.
+*/
+ROM_START( neonopon_d1 )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "407a.p1", 0x000000, 0x080000, CRC(43b7c759) SHA1(bbb4bf7957a336be6e5daa4030a5ebb1c72d92ee) )
+
+ NEO_SFIX_64K( "407a.s1", CRC(e28ea706) SHA1(bd113a91a1303e2ec670250225a1cd35d34c7f60) )
+
+ NEO_BIOS_AUDIO_64K( "407.m1", CRC(7669de64) SHA1(caa170b561df4f68000beaad41d942c66a4a10ee) )
+
+ ROM_REGION( 0x080000, "ymsnd", 0 )
+ ROM_LOAD( "407.v1", 0x000000, 0x080000, CRC(504bf849) SHA1(13a184ec9e176371808938015111f8918cb4df7d) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "407a.c1", 0x000000, 0x100000, CRC(24dcba77) SHA1(da7ce6797bf4ac9903dbb00587815c51c835c879) )
+ ROM_LOAD16_BYTE( "407a.c2", 0x000001, 0x100000, CRC(57c41e26) SHA1(39d810547f3f8a44b45e7807f1e6b3a0672a1688) )
+ROM_END
+ROM_START( neonopon_d2 )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "407a.p1", 0x000000, 0x080000, CRC(43b7c759) SHA1(bbb4bf7957a336be6e5daa4030a5ebb1c72d92ee) )
+
+ NEO_SFIX_64K( "407a.s1", CRC(e28ea706) SHA1(bd113a91a1303e2ec670250225a1cd35d34c7f60) )
+
+ NEO_BIOS_AUDIO_64K( "407.m1", CRC(7669de64) SHA1(caa170b561df4f68000beaad41d942c66a4a10ee) )
+
+ ROM_REGION( 0x080000, "ymsnd", 0 )
+ ROM_LOAD( "407.v1", 0x000000, 0x080000, CRC(504bf849) SHA1(13a184ec9e176371808938015111f8918cb4df7d) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "407b.c1", 0x000000, 0x100000, CRC(0833c9e7) SHA1(62f4e093bd5b521ee3f64aa1744e324a3a50eb12) )
+ ROM_LOAD16_BYTE( "407b.c2", 0x000001, 0x100000, CRC(fbf5f67f) SHA1(52a6a800d4afaa9675e1f6eab5ed4be772f17338) )
+ROM_END
+ROM_START( neonopon_d3 )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "407a.p1", 0x000000, 0x080000, CRC(43b7c759) SHA1(bbb4bf7957a336be6e5daa4030a5ebb1c72d92ee) )
+
+ NEO_SFIX_64K( "407.s1", CRC(93e6fe7d) SHA1(791789c33eeeaa23fe6581db2f0ee3c35c73c052) )
+
+ NEO_BIOS_AUDIO_64K( "407.m1", CRC(7669de64) SHA1(caa170b561df4f68000beaad41d942c66a4a10ee) )
+
+ ROM_REGION( 0x080000, "ymsnd", 0 )
+ ROM_LOAD( "407.v1", 0x000000, 0x080000, CRC(504bf849) SHA1(13a184ec9e176371808938015111f8918cb4df7d) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "407c.c1", 0x000000, 0x100000, CRC(e0573498) SHA1(80ec6ef8a6133f1f66704920332e92daa3daee14) )
+ ROM_LOAD16_BYTE( "407b.c2", 0x000001, 0x100000, CRC(fbf5f67f) SHA1(52a6a800d4afaa9675e1f6eab5ed4be772f17338) )
+ROM_END
+
+ROM_START( neonopon ) // v.0.2
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "407.p1", 0x000000, 0x080000, CRC(8a792271) SHA1(6f8db18f9ced0706cb2e4b5545da97be871352dd) )
+
+ NEO_SFIX_64K( "407.s1", CRC(93e6fe7d) SHA1(791789c33eeeaa23fe6581db2f0ee3c35c73c052) )
+
+ NEO_BIOS_AUDIO_64K( "407.m1", CRC(7669de64) SHA1(caa170b561df4f68000beaad41d942c66a4a10ee) )
+
+ ROM_REGION( 0x080000, "ymsnd", 0 )
+ ROM_LOAD( "407.v1", 0x000000, 0x080000, CRC(504bf849) SHA1(13a184ec9e176371808938015111f8918cb4df7d) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "407.c1", 0x000000, 0x100000, CRC(4a718ae3) SHA1(e59515bacd9065c4b2712710a6a9a647e42c31e6) )
+ ROM_LOAD16_BYTE( "407.c2", 0x000001, 0x100000, CRC(0e2cbc25) SHA1(3c45eedb2efc6a3a7ec65487f980e117485abc9f) )
+ROM_END
+
+
+// 408 : Neo 2500 demo by Blaster (c) 2004
+// No sound
+ROM_START( neo2500 )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "408.p1", 0x000000, 0x080000, CRC(2321c0d8) SHA1(e0d535af20f271794dc14c83ff3ffbc1f6bf98d9) )
+
+ NEO_SFIX_64K( "408.s1", CRC(1a37925c) SHA1(2060196c3a4d5dcc75aa62e5f02b0d397ec54b1b) )
+
+ NEO_BIOS_AUDIO_128K( "202-m1.m1", CRC(9c0291ea) SHA1(3fa67c62acba79be6b3a98cc1601e45569fa11ae) )
+
+ ROM_REGION( 0x80000, "ymsnd", 0 )
+ ROM_LOAD( "202-v1.v1", 0x000000, 0x80000, CRC(debeb8fb) SHA1(49a3d3578c087f1a0050168571ef8d1b08c5dc05) )
+
+ ROM_REGION( 0x100000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "408.c1", 0x000000, 0x80000, CRC(8c304b56) SHA1(f99298b7942c0bafb6b8038b2ac3b80b75034e34) )
+ ROM_LOAD16_BYTE( "408.c2", 0x000001, 0x80000, CRC(9a0758d6) SHA1(ac1c147fe55c80082c9a68a86c30b516ff086cc4) )
+ROM_END
+
+
+// 409 : Jonas Indiana and the Lost Temple of Ra by Blastar (c) 2005
+// Bugs: Insert Coin causes reboot; You can climb into the ceiling and get stuck there; can't jump from one rope to another
+ROM_START( ltorb )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "409.p1", 0x000000, 0x040000, CRC(353f6b05) SHA1(ae2ebb9a08e936a86cd09aaafda9e90826461bbf) )
+
+ NEO_SFIX_64K( "409.s1", CRC(8224d8b7) SHA1(2e7b176e5dffd8a44fa813b928155801d80b1ee6) )
+
+ NEO_BIOS_AUDIO_64K( "409.m1", CRC(6847fd52) SHA1(6e6d9045299966d41e3f193b3aff032d5b5e135d) )
+
+ ROM_REGION( 0x80000, "ymsnd", 0 )
+ ROM_LOAD( "409.v1", 0x000000, 0x080000, CRC(0329c2e7) SHA1(44c7f04d4e37fb5a06b0366d291f80c3a67a46f5) )
+
+ ROM_REGION( 0x100000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "409.c1", 0x000000, 0x080000, CRC(8b607198) SHA1(23dc0b285518f3e80a8feab4d674d625e76e8896) )
+ ROM_LOAD16_BYTE( "409.c2", 0x000001, 0x080000, CRC(6b96b59c) SHA1(a62600c337d7f6821ce56bdfd5c484f05c88187f) )
+ROM_END
+
+
+// 410 : Codename: Blut Engel by Blastar (c) 2005
+// Bugs: Insert Coin causes reboot
+ROM_START( cnbe )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "410.p1", 0x000000, 0x080000, CRC(7ece4186) SHA1(fc4ed3b5ed551744542c2ff1e45a6e97c68eff88) )
+
+ NEO_SFIX_64K( "410.s1", CRC(40a4698f) SHA1(be631408b261906f36c41c58c775c1a4c418a256) )
+
+ NEO_BIOS_AUDIO_128K( "410.m1", CRC(a5821c9c) SHA1(81779f12bbb012bf910c484725779e03b07e44ec) )
+
+ ROM_REGION( 0x80000, "ymsnd", 0 )
+ ROM_LOAD( "410.v1", 0x000000, 0x080000, CRC(70191764) SHA1(7dff2122c32886a3626c0d7befc7e7c3961c6cee) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "410.c1", 0x000000, 0x100000, CRC(0f4fea6f) SHA1(2eeaa661272817dc205072cd63d8bffbe7d6fbec) )
+ ROM_LOAD16_BYTE( "410.c2", 0x000001, 0x100000, CRC(3d5fc36f) SHA1(59c045bc5999ccd6c1413364a6cd337a858f599e) )
+ROM_END
+
+
+// 411 : NGEM2K by Blastar (c) 2006
+// No sound
+// Bugs: Insert Coin causes reboot
+ROM_START( ngem2k )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "411.p1", 0x000000, 0x080000, CRC(f2c42fe3) SHA1(fcd7453019ad21ecf77999a60b6792fc8d72d409) )
+
+ NEO_SFIX_64K( "411.s1", CRC(fb3c02d2) SHA1(961cf3cfd56e9ace059265f0ff4c283289972938) )
+
+ NEO_BIOS_AUDIO_128K( "411.m1", CRC(b1f44a15) SHA1(a1d7b498430b713b15ce886bac2ea473adadfb0c) )
+
+ ROM_REGION( 0x80000, "ymsnd", 0 )
+ ROM_LOAD( "411.v1", 0x000000, 0x080000, CRC(c32199f0) SHA1(2e17a6736c27d703c64d58fdc1b43edd8bb36d35) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "411.c1", 0x000000, 0x100000, CRC(a8e2ab47) SHA1(69a6ee8f659a63600a48e31b10782fba263e32e2) )
+ ROM_LOAD16_BYTE( "411.c2", 0x000001, 0x100000, CRC(a738ea1c) SHA1(3b71f43ff30f4b15b5cd85dd9e95ebc7e84eb5a3) )
+ROM_END
+
+
+// 412 : Neo Pong by Neodev (c) 2002
+// MAME bug : On the title screen, there's a vertical blank area that slowly moves from left to right
+ROM_START( neopong ) // v1.1
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "412.p1", 0x000000, 0x020000, CRC(9f35e29d) SHA1(261ce9305950debbc2fe088a45ab0fa83d6cf10d) )
+
+ NEO_SFIX_128K( "412.s1", CRC(cd19264f) SHA1(531be2305cd56d332fb7a53ab924214ade34a9e8) )
+
+ NEO_BIOS_AUDIO_128K( "412.m1", CRC(78c851cb) SHA1(a9923c002e4e2171a564af45cff0958c5d57b275) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "412.v1", 0x000000, 0x200000, CRC(6c31223c) SHA1(ede3a2806d7d872a0f737626a23ecce200b534e6) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "412.c1", 0x000000, 0x100000, CRC(f5a57d1a) SHA1(781170ae439f48fcbcee6af4cb3a1367dbb70498) )
+ ROM_LOAD16_BYTE( "412.c2", 0x000001, 0x100000, CRC(affde64e) SHA1(25ba8b4f6f961027d97d35f13cebeaee2dbb6f5a) )
+ROM_END
+
+ROM_START( neoponga ) // v1.0, has no sound, does not satisfy the watchdog
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "412a.p1", 0x000000, 0x020000, CRC(31b724d7) SHA1(e374613609aeda64b547d8ce38d2078b6ed55ad5) )
+
+ NEO_SFIX_128K( "412.s1", CRC(cd19264f) SHA1(531be2305cd56d332fb7a53ab924214ade34a9e8) )
+
+ NEO_BIOS_AUDIO_128K( "202-m1.m1", CRC(9c0291ea) SHA1(3fa67c62acba79be6b3a98cc1601e45569fa11ae) )
+
+ ROM_REGION( 0x80000, "ymsnd", 0 )
+ ROM_LOAD( "202-v1.v1", 0x000000, 0x80000, CRC(debeb8fb) SHA1(49a3d3578c087f1a0050168571ef8d1b08c5dc05) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "412a.c1", 0x000000, 0x100000, CRC(d7587282) SHA1(6fbc317dede78265dc4cfd2a6d79968320b8fd50) )
+ ROM_LOAD16_BYTE( "412a.c2", 0x000001, 0x100000, CRC(fefc9d06) SHA1(f191bcd3683a184b5a7d6046156e0b2bca231e95) )
+ROM_END
+
+
+// 413 : WW2 demo by Rastersoft
+// No sound
+// The supplied m1 gives a Z80 ERROR, so it has been replaced.
+// If the game doesn't work, read the FAQ.
+// Bugs: Insert Coin freezes HBMAME.
+ROM_START( ww2demo )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "413.p1", 0x000000, 0x80000, CRC(d53762ff) SHA1(231174363266ec1d5a028295f36bddfbf0a54235) )
+
+ NEO_SFIX_64K( "413.s1", CRC(3fda5d1a) SHA1(ec0a9e008f56d694184e6b553c271763529eb711) )
+
+ NEO_BIOS_AUDIO_128K( "202-m1.m1", CRC(9c0291ea) SHA1(3fa67c62acba79be6b3a98cc1601e45569fa11ae) )
+ // Z80 error NEO_BIOS_AUDIO_128K( "413.m1", CRC(99c2354e) SHA1(fa2ea40ae3d01bda909c82b6c4baa01335c6fe8f) )
+
+ ROM_REGION( 0x80000, "ymsnd", 0 )
+ ROM_LOAD( "202-v1.v1", 0x000000, 0x80000, CRC(debeb8fb) SHA1(49a3d3578c087f1a0050168571ef8d1b08c5dc05) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "413.c1", 0x000000, 0x100000, CRC(955efd3e) SHA1(b1c3ebff7158f1653b3b9bc5a52b06d8c62da1bb) )
+ ROM_LOAD16_BYTE( "413.c2", 0x000001, 0x100000, CRC(c213940f) SHA1(430c017f93ee87127a146bcfba684c840bc69f5b) )
+ROM_END
+
+
+// 414 : Frog Feast demo by Rastersoft
+// No sound
+ROM_START( ffeastd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "414.p1", 0x000000, 0x80000, CRC(db0417ec) SHA1(dff85b47749142b3e965b2a9b5b8857096e58464) )
+
+ NEO_SFIX_64K( "414.s1", CRC(29814a2c) SHA1(a7313fa1280a2a2340b1c8a0d522354d82496a68) )
+
+ NEO_BIOS_AUDIO_64K( "407.m1", CRC(7669de64) SHA1(caa170b561df4f68000beaad41d942c66a4a10ee) )
+
+ ROM_REGION( 0x080000, "ymsnd", 0 )
+ ROM_LOAD( "407.v1", 0x000000, 0x080000, CRC(504bf849) SHA1(13a184ec9e176371808938015111f8918cb4df7d) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "414.c1", 0x000000, 0x100000, CRC(22a65cea) SHA1(3fb8cb92cd8d40c2b24e2b54833fde4c7dc255a4) )
+ ROM_LOAD16_BYTE( "414.c2", 0x000001, 0x100000, CRC(63ddd657) SHA1(41fb6fdd66fcdf5fce42eb01c8a3e00e632f6347) )
+ROM_END
+
+
+// 415 : Frog Feast by Rastersoft
+ROM_START( ffeast ) /* Frog Feast - Full Version */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "415.p1", 0x000000, 0x080000, CRC(c26848da) SHA1(33737f8d2366b3a554ceb9ea2fcd85aaed75f344) )
+
+ NEO_SFIX_128K( "415.s1", CRC(88f4cd13) SHA1(7f3b28c903ecf90478f2dcddf790714d7363aa2b) )
+
+ NEO_BIOS_AUDIO_128K( "415.m1", CRC(c825b484) SHA1(7dea872ae39ef83981436aaf3c9b602ac8bec676) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "415.v1", 0x000000, 0x100000, CRC(2639da11) SHA1(4309e46014d623066d427ce3473542c99f678f86) )
+ ROM_LOAD( "415.v2", 0x100000, 0x100000, CRC(e5eda58b) SHA1(ae203cfedf4b563da914939e0a4d7f4697070f82) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "415.c1", 0x000000, 0x100000, CRC(7b2f9fb3) SHA1(62deacf16c3b259422f962c9604b4efc2f32d91b) )
+ ROM_LOAD16_BYTE( "415.c2", 0x000001, 0x100000, CRC(a7f18a6f) SHA1(1a277c79eaacf09d12a4b7c88421e7a6d6153503) )
+ROM_END
+
+
+// 416 : Neogeo demo by Charles Doty
+// Left-right will move the turning logo
+// No sound
+ROM_START( neodemo )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "416.p1", 0x000000, 0x080000, CRC(fbfce2a4) SHA1(53472533456e131bee9fa792996b4110999b5c21) )
+
+ NEO_SFIX_128K( "412.s1", CRC(cd19264f) SHA1(531be2305cd56d332fb7a53ab924214ade34a9e8) )
+
+ NEO_BIOS_AUDIO_128K( "202-m1.m1", CRC(9c0291ea) SHA1(3fa67c62acba79be6b3a98cc1601e45569fa11ae) )
+
+ ROM_REGION( 0x080000, "ymsnd", 0 )
+ ROM_LOAD( "202-v1.v1", 0x000000, 0x080000, CRC(debeb8fb) SHA1(49a3d3578c087f1a0050168571ef8d1b08c5dc05) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "416.c1", 0x000000, 0x100000, CRC(870b28ea) SHA1(255f8e394534afc929bad31f253a2e8b03253e07) )
+ ROM_LOAD16_BYTE( "416.c2", 0x000001, 0x100000, CRC(1ecf8128) SHA1(66d200ceb023a1ff3cbe4ef7c5b1ef0068ab47f0) )
+ROM_END
+
+
+// 417 : Nyan Cat demo by Furrtek
+// Movement keys will move nyancat around
+// Bugs: Insert Coin freezes HBMAME.
+ROM_START( nyan )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD( "417.p1", 0x000000, 0x20000, CRC(1c9e076f) SHA1(95361da308bf8f946fa218424c991ace872fd374) )
+
+ NEO_SFIX_128K( "417.s1", CRC(2e7f15ec) SHA1(b41ac46ca2a81cf240dc6df4a80694ecebf65202) )
+
+ NEO_BIOS_AUDIO_128K( "417.m1", CRC(97b9a8e0) SHA1(161a06ac0a6d33a6b337a5c6ec65345cd10472e4) )
+
+ ROM_REGION( 0x80000, "ymsnd", 0 )
+ ROM_LOAD( "417.v1", 0x000000, 0x3d400, CRC(8870e0bb) SHA1(5f6f33c07f04bb00337cca6ee4db1cfa7beaa63e) )
+
+ ROM_REGION( 0x800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "417.c1", 0x000000, 0x400000, CRC(71128701) SHA1(76ae8ef8f032621706cb39161f01ef7e747ceb70) )
+ ROM_LOAD16_BYTE( "417.c2", 0x000001, 0x400000, CRC(85dcccef) SHA1(4270b11c9f9400b3b818124c96db352d94512807) )
+ROM_END
+
+
+// 418 : Tetris by Crim
+ROM_START( ngtetris )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "418.p1", 0x000000, 0x80000, CRC(3465569a) SHA1(51506d549fa048581321fc39403c0a3bf8f77467) )
+
+ NEO_SFIX_128K( "419.s1", CRC(a545b593) SHA1(09077b63595eebb7dddd55e041e7786164df0ead) )
+
+ NEO_BIOS_AUDIO_128K( "418.m1", CRC(6b3703c6) SHA1(6fa41b713f03e0957f410a387aa896e7d924acb2) )
+
+ ROM_REGION( 0x80000, "ymsnd", 0 )
+ ROM_LOAD( "418.v1", 0x000000, 0x80000, CRC(2be8e290) SHA1(198cff1b1d70f7d05344d6ab38a4354f993dc4b8) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "418.c1", 0x000000, 0x80000, CRC(acc6d1d4) SHA1(1f6ad8578d8edaa22a35ad58dc76de8543a96db9) )
+ ROM_LOAD16_BYTE( "418.c2", 0x000001, 0x80000, CRC(7ec06ab5) SHA1(3a8503be7f14d451f5ae964888b385334c12e8c6) )
+ROM_END
+
+
+// 419 : Neo Thunder demo by Sebastian Mihai
+// No sound
+ROM_START( neothund )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "419.p1", 0x000000, 0x100000, CRC(f7050757) SHA1(b73009050905ad2b1f06690e0106e59fb5ede86b) )
+
+ NEO_SFIX_128K( "419.s1", CRC(a545b593) SHA1(09077b63595eebb7dddd55e041e7786164df0ead) )
+
+ NEO_BIOS_AUDIO_128K( "202-m1.m1", CRC(9c0291ea) SHA1(3fa67c62acba79be6b3a98cc1601e45569fa11ae) )
+
+ ROM_REGION( 0x80000, "ymsnd", 0 )
+ ROM_LOAD( "202-v1.v1", 0x000000, 0x80000, CRC(debeb8fb) SHA1(49a3d3578c087f1a0050168571ef8d1b08c5dc05) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "419.c1", 0x000000, 0x100000, CRC(48b9126e) SHA1(38bf1296c3d8762372d4eab785f34507a4f8776c) )
+ ROM_LOAD16_BYTE( "419.c2", 0x000001, 0x100000, CRC(214df62e) SHA1(21e4ce2a0ac636081c9e07a294cb44987692039e) )
+ROM_END
+
+
+// 420 : Castlevania demo by BarfHappy
+// No sound.
+ROM_START( neocstlv )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "420.p1", 0x000000, 0x080000, CRC(8d6cd9f2) SHA1(23258690b0268367420cb25ef951cfb15f79b88e) )
+
+ NEO_SFIX( 0x40000, "420.s1", CRC(be950195) SHA1(883a99b79b495f66f81025bf4c1f5fb23cc0b4c7) )
+
+ NEO_BIOS_AUDIO_128K( "420.m1", CRC(89c71460) SHA1(3c675b9b0e46be2cafd2aa8858a40efd07034fcd) )
+
+ ROM_REGION( 0x80000, "ymsnd", 0 )
+ ROM_LOAD( "202-v1.v1", 0x000000, 0x80000, CRC(debeb8fb) SHA1(49a3d3578c087f1a0050168571ef8d1b08c5dc05) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "420.c1", 0x000000, 0x100000, CRC(960a7414) SHA1(753a8af8bfe9a6e9322744b9a31c8d8ef3615cae) )
+ ROM_LOAD16_BYTE( "420.c2", 0x000001, 0x100000, CRC(24a961d0) SHA1(c11dd77c9df0f829461bb3aebb3c6287b7e703f9) )
+ROM_END
+
+
+// 421 : 3D demo by Oxygene
+ROM_START( neo3d )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "421.p1", 0x000000, 0x080000, CRC(791f6042) SHA1(d44848322d08daad91c67c7dc7e9ee985d582b2b) )
+
+ NEO_SFIX_128K( "412.s1", CRC(cd19264f) SHA1(531be2305cd56d332fb7a53ab924214ade34a9e8) )
+
+ NEO_BIOS_AUDIO_128K( "421.m1", CRC(7e74cc1f) SHA1(2855577a9785baa4076567de0b37fc0d0117abe5) )
+
+ ROM_REGION( 0x80000, "ymsnd", 0 )
+ ROM_LOAD( "202-v1.v1", 0x000000, 0x80000, CRC(debeb8fb) SHA1(49a3d3578c087f1a0050168571ef8d1b08c5dc05) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "421.c1", 0x000000, 0x100000, CRC(a7eaca76) SHA1(7b046932466092e250dc879d76656227102037c5) )
+ ROM_LOAD16_BYTE( "421.c2", 0x000001, 0x100000, CRC(042f2cde) SHA1(225b03541ac3d5258de2c33d93e46e068798731f) )
+ROM_END
+
+
+// 422 : Time's UP! demo by NGF
+ROM_START( timesupd )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "422.p1", 0x000000, 0x200000, CRC(be86adb1) SHA1(4b363bab51dfc43b2302956f79a0b1d5202339ac) )
+
+ NEO_SFIX_128K( "419.s1", CRC(a545b593) SHA1(09077b63595eebb7dddd55e041e7786164df0ead) )
+
+ NEO_BIOS_AUDIO_128K( "422.m1", CRC(fe795d11) SHA1(53ba44f2197aa700229f18dee6513bc0c2619904) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "422.v1", 0x000000, 0x400000, CRC(13b8f47b) SHA1(4f0384101f9f6fce8c86a27a11a2b9d43a84a154) )
+ ROM_LOAD( "422.v2", 0x400000, 0x400000, CRC(6fdd663d) SHA1(9667f11b4350285d0722c67052ff4e9a63a3409f) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "422.c1", 0x000000, 0x200000, CRC(c19a300a) SHA1(3ab4ec4b10583257b92f5a989434db89f8130626) )
+ ROM_LOAD16_BYTE( "422.c2", 0x000001, 0x200000, CRC(fdb3f7ed) SHA1(dd1d69515e58e9fba8cefb1c4cd808dfea0475d9) )
+ROM_END
+
+
+// 424 : Transparency demo by NGF
+ROM_START( ngftdemo )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "424.p1", 0x000000, 0x080000, CRC(84d87190) SHA1(7b944603a47a062c050faf9d7e2f9ed754c325cf) )
+
+ NEO_SFIX_128K( "419.s1", CRC(a545b593) SHA1(09077b63595eebb7dddd55e041e7786164df0ead) )
+
+ NEO_BIOS_AUDIO_128K( "424.m1", CRC(5ea216be) SHA1(5ae7e878a08dcd5a1a3b5d25abfe98eea0dfc7d3) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "424.v1", 0x000000, 0x200000, CRC(d03c87eb) SHA1(033815e3cf8fa3732c481ef308aacea595e3e008) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "424.c1", 0x000000, 0x200000, CRC(b2fba994) SHA1(278bc9b2f969cec8160dbea879426bbf2c7ea2d4) )
+ ROM_LOAD16_BYTE( "424.c2", 0x000001, 0x200000, CRC(37495ab2) SHA1(b6caba50aaf7cf73cfd5c23302fac4785baafe43) )
+ROM_END
+
+
+// 425 : Chip n Dale intro from Raregame
+ROM_START( cndi ) /* you must use unibios to select Japan Console */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "425.p1", 0x000000, 0x800000, CRC(2df9a41d) SHA1(f08d81f529f17d22218b4bb52840f4a13f5821a2) )
+
+ NEO_SFIX_64K( "427.s1", CRC(63b8b25e) SHA1(1dacfaebfa68d1b2518324c2bc000f310ed8fc3f) )
+
+ ROM_REGION16_BE( 0x20000, "mainbios", 0 )
+ ROM_LOAD16_WORD_SWAP( "uni-bios_2_3o.rom", 0x00000, 0x20000, CRC(601720ae) SHA1(1b8a72c720cdb5ee3f1d735bbcf447b09204b8d9) )
+
+ ROM_REGION( 0x20000, "audiobios", 0 )
+ ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(97cf998b) SHA1(977387a7c76ef9b21d0b01fa69830e949a9a9626) )
+
+ ROM_REGION( 0x20000, "audiocpu", 0 )
+ ROM_LOAD( "425.m1", 0x0000, 0x2000, CRC(ae120a59) SHA1(11a49a82007810890ac01757af217ce76c78335b) )
+ // alternate in MultiJet: ROM_LOAD( "425a.m1", 0x0000, 0x2000, CRC(591adc4f) SHA1(02886106b5bbcd1c63a7ccd5c91456a785b0621a)
+ ROM_RELOAD( 0x10000, 0x2000 )
+
+ ROM_REGION( 0x092000, "ymsnd", 0 )
+ ROM_LOAD( "425.v1", 0x000000, 0x092000, CRC(91d45537) SHA1(2e3fe9733a49a7d5597fea40f59274133c331795) )
+ // alternate in MultiJet: ROM_LOAD( "425a.v1", 0x000000, 0x091000, CRC(15d318a6) SHA1(10f99dbded4093bac104ce954e93dba7ce8c4ade) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "425.c1", 0x0000000, 0x400000, CRC(55bd32fc) SHA1(9ca14628b50182257e812a64ae7779b677f49b3a) )
+ ROM_LOAD16_BYTE( "425.c2", 0x0000001, 0x400000, CRC(bbb43733) SHA1(cbb698354f34045a08f3f30ccd54796374c47ab9) )
+ ROM_LOAD16_BYTE( "425.c3", 0x0800000, 0x400000, CRC(715e0318) SHA1(ceab1079b9e8d53f32f0aafce5d7cda037a91e02) )
+ ROM_LOAD16_BYTE( "425.c4", 0x0800001, 0x400000, CRC(016f3c7e) SHA1(05fc02c571008dfa83eea11dc596248cee53153a) )
+ ROM_LOAD16_BYTE( "425.c5", 0x1000000, 0x400000, CRC(28c6cb8c) SHA1(05acb12720a12918debed333243b4bc42555a0b3) )
+ ROM_LOAD16_BYTE( "425.c6", 0x1000001, 0x400000, CRC(9c89503f) SHA1(8c3fc78f7bb903684367d663ede13b87c72c8cca) )
+ ROM_LOAD16_BYTE( "425.c7", 0x1800000, 0x400000, CRC(074dd407) SHA1(83f4c80ab88d506152b375480b2fabb0e4ed2eaa) )
+ ROM_LOAD16_BYTE( "425.c8", 0x1800001, 0x400000, CRC(5ddb7db5) SHA1(29cf08e39d7454fdeb7ab4a13afff1d422c7c859) )
+ROM_END
+
+
+// 426 : Darkwing Duck intro from Raregame
+ROM_START( dwi ) /* you must use unibios to select Japan Console */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "426.p1", 0x000000, 0x800000, CRC(8e3f2ea8) SHA1(80efd45770938b2dc3ac8c67d823bae4369a68aa) )
+
+ NEO_SFIX_64K( "426.s1", CRC(3dc5c1ef) SHA1(fa194481524cd95ec7188fef0857ef4d2435d7eb) )
+
+ ROM_REGION16_BE( 0x20000, "mainbios", 0 )
+ ROM_LOAD16_WORD_SWAP( "uni-bios_2_3o.rom", 0x00000, 0x20000, CRC(601720ae) SHA1(1b8a72c720cdb5ee3f1d735bbcf447b09204b8d9) )
+
+ ROM_REGION( 0x20000, "audiobios", 0 )
+ ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(97cf998b) SHA1(977387a7c76ef9b21d0b01fa69830e949a9a9626) )
+
+ ROM_REGION( 0x20000, "audiocpu", 0 )
+ ROM_LOAD( "426.m1", 0x0000, 0x2000, CRC(2249e065) SHA1(3dc737888846acfbe693452b03ee2b5c09ff9408) )
+ ROM_RELOAD( 0x10000, 0x2000 )
+
+ ROM_REGION( 0x09b000, "ymsnd", 0 )
+ ROM_LOAD( "426.v1", 0x000000, 0x09b000, CRC(13bb4ce4) SHA1(0762db7991a5958ae7d8fd5cad2a850f1803a372) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "426.c1", 0x0000000, 0x400000, CRC(2b8bda94) SHA1(68a8239a620dba52762fec548b44c7d0e703fca3) )
+ ROM_LOAD16_BYTE( "426.c2", 0x0000001, 0x400000, CRC(5345e4de) SHA1(eee16fc63c901184b1b59dc3edcea260e82b5bf5) )
+ ROM_LOAD16_BYTE( "426.c3", 0x0800000, 0x400000, CRC(c6185f14) SHA1(46539c90a2c3e59b7736925cdd59700ca99ac1e1) )
+ ROM_LOAD16_BYTE( "426.c4", 0x0800001, 0x400000, CRC(c9e59701) SHA1(67b5c396591e00ca6d58d35b7d95465d6a65d3eb) )
+ ROM_LOAD16_BYTE( "426.c5", 0x1000000, 0x400000, CRC(42dd1c90) SHA1(1ca19d11a7d0f9f8dbedf5c8fe2eadfc28337ad9) )
+ ROM_LOAD16_BYTE( "426.c6", 0x1000001, 0x400000, CRC(9fa6d651) SHA1(653592013a44b804b713302f17b4109b316662ce) )
+ ROM_LOAD16_BYTE( "426.c7", 0x1800000, 0x400000, CRC(5cfa6886) SHA1(e550e898f64a2ad9992aaa4ff7a64d6881294ce8) )
+ ROM_LOAD16_BYTE( "426.c8", 0x1800001, 0x400000, CRC(59c37871) SHA1(7413282800d4461ea151d10b91fa24fef1df94a0) )
+ROM_END
+
+
+// 427 : Ghostbusters intro from Raregame
+ROM_START( gbi ) /* you must use unibios to select Japan Console */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "427.p1", 0x000000, 0x100000, CRC(af69ef5f) SHA1(e218d1c99e491afcf1887ef9f5bed3e7a5e53fe4) )
+ ROM_LOAD16_WORD_SWAP( "427.p2", 0x100000, 0x400000, CRC(f57e393f) SHA1(4e4ac08db6cc28bcc47808854b1ceb407a486fe5) )
+
+ NEO_SFIX_64K( "427.s1", CRC(63b8b25e) SHA1(1dacfaebfa68d1b2518324c2bc000f310ed8fc3f) )
+
+ ROM_REGION16_BE( 0x20000, "mainbios", 0 )
+ ROM_LOAD16_WORD_SWAP( "uni-bios_2_3o.rom", 0x00000, 0x20000, CRC(601720ae) SHA1(1b8a72c720cdb5ee3f1d735bbcf447b09204b8d9) )
+
+ ROM_REGION( 0x20000, "audiobios", 0 )
+ ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(97cf998b) SHA1(977387a7c76ef9b21d0b01fa69830e949a9a9626) )
+
+ ROM_REGION( 0x20000, "audiocpu", 0 )
+ ROM_LOAD( "427.m1", 0x0000, 0x2000, CRC(6624e642) SHA1(03a723c477905425ced965a63fb6d006abd045e9) )
+ ROM_RELOAD( 0x10000, 0x2000 )
+
+ ROM_REGION( 0x094a00, "ymsnd", 0 )
+ ROM_LOAD( "427.v1", 0x000000, 0x094a00, CRC(44864761) SHA1(35334b93c65b3e27338290c2ba1f73aa902aa893) )
+
+ ROM_REGION( 0x1800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "427.c1", 0x0000000, 0x400000, CRC(4281fecd) SHA1(a4f4c278b28740cde042f81769c8c10e5d274fcf) )
+ ROM_LOAD16_BYTE( "427.c2", 0x0000001, 0x400000, CRC(0f07018c) SHA1(eccd998c8fe4c4e3039f104dbdc89713cd9e10cb) )
+ ROM_LOAD16_BYTE( "427.c3", 0x0800000, 0x400000, CRC(a4589b2a) SHA1(ff3784921b093f61c3f620c26f296b8f4f798028) )
+ ROM_LOAD16_BYTE( "427.c4", 0x0800001, 0x400000, CRC(2a72bd04) SHA1(8d30b1851ca706b669d8d02b1d17a2b40a424b8d) )
+ ROM_LOAD16_BYTE( "427.c5", 0x1000000, 0x400000, CRC(ad3b72f9) SHA1(0274f7b85cb1a53a5f98399ac1952418803ab765) )
+ ROM_LOAD16_BYTE( "427.c6", 0x1000001, 0x400000, CRC(963e0941) SHA1(04ae20247e74f27721a2a87f0acd41a733c6f753) )
+ROM_END
+
+
+// 428 : Robocop intro from Raregame
+ROM_START( rci ) /* you must use unibios to select Japan Console */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "428.p1", 0x000000, 0x800000, CRC(adcb4fe0) SHA1(596242e344d1e171eed7ef242c10aec1a0090acf) )
+
+ NEO_SFIX_64K( "427.s1", CRC(63b8b25e) SHA1(1dacfaebfa68d1b2518324c2bc000f310ed8fc3f) )
+
+ ROM_REGION16_BE( 0x20000, "mainbios", 0 )
+ ROM_LOAD16_WORD_SWAP( "uni-bios_2_3o.rom", 0x00000, 0x20000, CRC(601720ae) SHA1(1b8a72c720cdb5ee3f1d735bbcf447b09204b8d9) )
+
+ ROM_REGION( 0x20000, "audiobios", 0 )
+ ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(97cf998b) SHA1(977387a7c76ef9b21d0b01fa69830e949a9a9626) )
+
+ ROM_REGION( 0x20000, "audiocpu", 0 )
+ ROM_LOAD( "428.m1", 0x0000, 0x2000, CRC(c4d35e83) SHA1(0f2bb58e6e545090a11f7fbf471dcd46768a313b) )
+ ROM_RELOAD( 0x10000, 0x2000 )
+
+ ROM_REGION( 0x096000, "ymsnd", 0 )
+ ROM_LOAD( "428.v1", 0x000000, 0x096000, CRC(ecb284a9) SHA1(1ff34e6f3091ddf0da7b8afb06b903ab39d0b629) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "428.c1", 0x0000000, 0x400000, CRC(8cf565a0) SHA1(c8d383d96b03be9e96fcea94b355c5c33717b4e1) )
+ ROM_LOAD16_BYTE( "428.c2", 0x0000001, 0x400000, CRC(76ef561d) SHA1(3dfd4d923b7381e8f1ec4512915a05efa299e255) )
+ ROM_LOAD16_BYTE( "428.c3", 0x0800000, 0x400000, CRC(7166790c) SHA1(778db868373c4fa00899f224339c0d171519002a) )
+ ROM_LOAD16_BYTE( "428.c4", 0x0800001, 0x400000, CRC(c0cdcbfc) SHA1(d2bf8c0560e593820f2a556779602cabb3272b8d) )
+ ROM_LOAD16_BYTE( "428.c5", 0x1000000, 0x400000, CRC(a5ddc363) SHA1(d2bee74072c2e1b5cac0fc422472aa5d53bc7358) )
+ ROM_LOAD16_BYTE( "428.c6", 0x1000001, 0x400000, CRC(1fcc8fce) SHA1(3a7ecfc3a37b315a0a5c7a0127c9412f8214fd81) )
+ ROM_LOAD16_BYTE( "428.c7", 0x1800000, 0x400000, CRC(be9f9da2) SHA1(9d619074b368db463182be999c2350b815ee2779) )
+ ROM_LOAD16_BYTE( "428.c8", 0x1800001, 0x400000, CRC(7cff633a) SHA1(4d02abcb21dd20ffe7dfc94579fc6cbfaf1bf14e) )
+ROM_END
+
+
+// 429 : Spiderman intro from Raregame
+ROM_START( smi ) /* you must use unibios to select Japan Console */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "429.p1", 0x000000, 0x100000, CRC(66b5cfe8) SHA1(65754292a085fce07a04fbe8b91a62c42a9695b1) )
+ ROM_LOAD16_WORD_SWAP( "429.p2", 0x100000, 0x400000, CRC(72082aea) SHA1(a56a8d9196c7d6cc5d66204623cce964e1feda05) )
+
+ NEO_SFIX_64K( "427.s1", CRC(63b8b25e) SHA1(1dacfaebfa68d1b2518324c2bc000f310ed8fc3f) )
+
+ ROM_REGION16_BE( 0x20000, "mainbios", 0 )
+ ROM_LOAD16_WORD_SWAP( "uni-bios_2_3o.rom", 0x00000, 0x20000, CRC(601720ae) SHA1(1b8a72c720cdb5ee3f1d735bbcf447b09204b8d9) )
+
+ ROM_REGION( 0x20000, "audiobios", 0 )
+ ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(97cf998b) SHA1(977387a7c76ef9b21d0b01fa69830e949a9a9626) )
+
+ ROM_REGION( 0x20000, "audiocpu", 0 )
+ ROM_LOAD( "429.m1", 0x0000, 0x2000, CRC(6a02cb1d) SHA1(fffd39708bfb121496c78d01e53f07aa9a539c47) )
+ ROM_RELOAD( 0x10000, 0x2000 )
+
+ ROM_REGION( 0x096100, "ymsnd", 0 )
+ ROM_LOAD( "429.v1", 0x000000, 0x096100, CRC(95c138da) SHA1(7bfcd525ecf01737ec85db88355323d676f1f03b) )
+
+ ROM_REGION( 0x1800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "429.c1", 0x0000000, 0x400000, CRC(8e5ccfdd) SHA1(a26a3cadf67f864ded64daca3af13a8db8a73b62) )
+ ROM_LOAD16_BYTE( "429.c2", 0x0000001, 0x400000, CRC(a6406f5b) SHA1(fe63d5aba68bc51861d44ad3ec385e05fd3198c5) )
+ ROM_LOAD16_BYTE( "429.c3", 0x0800000, 0x400000, CRC(adfff926) SHA1(39a1c634168803181b43843dbd562405ed7a8fe6) )
+ ROM_LOAD16_BYTE( "429.c4", 0x0800001, 0x400000, CRC(068c307f) SHA1(47d52fa960a2451f20d6b45c87aef7f5b78e00a5) )
+ ROM_LOAD16_BYTE( "429.c5", 0x1000000, 0x400000, CRC(9a5cf7a6) SHA1(2c6a0fd9139152a85f936323f9e8a26b13819fc2) )
+ ROM_LOAD16_BYTE( "429.c6", 0x1000001, 0x400000, CRC(934f03c0) SHA1(2a54f8fb1be63dcfef2756b9fa5904af3a2ca874) )
+ROM_END
+
+
+// 430 : Teenage Mutant Ninja Turtles intro from Raregame
+ROM_START( tmnti ) /* you must use unibios to select Japan Console */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "430.p1", 0x000000, 0x800000, CRC(2d5066ff) SHA1(e1109c1e7532fa167ba5c9c90648d019740efd8e) )
+
+ NEO_SFIX_64K( "426.s1", CRC(3dc5c1ef) SHA1(fa194481524cd95ec7188fef0857ef4d2435d7eb) )
+
+ ROM_REGION16_BE( 0x20000, "mainbios", 0 )
+ ROM_LOAD16_WORD_SWAP( "uni-bios_2_3o.rom", 0x00000, 0x20000, CRC(601720ae) SHA1(1b8a72c720cdb5ee3f1d735bbcf447b09204b8d9) )
+
+ ROM_REGION( 0x20000, "audiobios", 0 )
+ ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(97cf998b) SHA1(977387a7c76ef9b21d0b01fa69830e949a9a9626) )
+
+ ROM_REGION( 0x20000, "audiocpu", 0 )
+ ROM_LOAD( "430.m1", 0x0000, 0x2000, CRC(953542ef) SHA1(95e93833b938b8d374d29f925777cf296468ae9e) )
+ ROM_RELOAD( 0x10000, 0x2000 )
+
+ ROM_REGION( 0x094900, "ymsnd", 0 )
+ ROM_LOAD( "430.v1", 0x000000, 0x094900, CRC(273640c3) SHA1(6d445e728fa9c4af00de4f454a73651de7a69ec9) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "430.c1", 0x0000000, 0x400000, CRC(ae1735c1) SHA1(a7a943fb088bccbd5e2c0fa34766bab8169000fa) )
+ ROM_LOAD16_BYTE( "430.c2", 0x0000001, 0x400000, CRC(344281b5) SHA1(a7de77ce07bcd87ba6348278e9c2a61e0f96a499) )
+ ROM_LOAD16_BYTE( "430.c3", 0x0800000, 0x400000, CRC(1058a648) SHA1(878384e1bb8e7666723935a6270d61d3015fe475) )
+ ROM_LOAD16_BYTE( "430.c4", 0x0800001, 0x400000, CRC(1c6ba1b0) SHA1(065f059ef412c69c1a6e7d96e0d41d4151802c95) )
+ ROM_LOAD16_BYTE( "430.c5", 0x1000000, 0x400000, CRC(73a89fb0) SHA1(6b17c878cf6e33f98f3d0779e908264a95a186ba) )
+ ROM_LOAD16_BYTE( "430.c6", 0x1000001, 0x400000, CRC(a139246a) SHA1(facc1caa4f5e4f8476df75c3f68802184072a8ee) )
+ ROM_LOAD16_BYTE( "430.c7", 0x1800000, 0x400000, CRC(ed957842) SHA1(0066baf544b87f7d99334401a93c239ce151df50) )
+ ROM_LOAD16_BYTE( "430.c8", 0x1800001, 0x400000, CRC(8c15d91b) SHA1(4b4d4fd2302c43a5c82bb849803d13d43947a695) )
+ROM_END
+
+
+// 431 : Duck Tales intro from Raregame
+ROM_START( dti ) /* you must use unibios to select Japan Console */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "431.p1", 0x000000, 0x800000, CRC(f975711c) SHA1(0bce8bf92536dd18920cdc1ab66a9c42b0a96df3) )
+
+ NEO_SFIX_64K( "427.s1", CRC(63b8b25e) SHA1(1dacfaebfa68d1b2518324c2bc000f310ed8fc3f) )
+
+ ROM_REGION16_BE( 0x20000, "mainbios", 0 )
+ ROM_LOAD16_WORD_SWAP( "uni-bios_2_3o.rom", 0x00000, 0x20000, CRC(601720ae) SHA1(1b8a72c720cdb5ee3f1d735bbcf447b09204b8d9) )
+
+ ROM_REGION( 0x20000, "audiobios", 0 )
+ ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(97cf998b) SHA1(977387a7c76ef9b21d0b01fa69830e949a9a9626) )
+
+ ROM_REGION( 0x20000, "audiocpu", 0 )
+ ROM_LOAD( "431.m1", 0x0000, 0x2000, CRC(7761d993) SHA1(b269e9878ca28faa1d36c7fa3dd8e9939714a5f4) )
+ ROM_RELOAD( 0x10000, 0x2000 )
+
+ ROM_REGION( 0x090200, "ymsnd", 0 )
+ ROM_LOAD( "431.v1", 0x000000, 0x090200, CRC(b40c3a5a) SHA1(fda5e4bf3af75aa70df32b21f132c41670212c52) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "431.c1", 0x0000000, 0x400000, CRC(02adabba) SHA1(7b1eafebed09dbfc1b8d9612f0ed477e25ab152d) )
+ ROM_LOAD16_BYTE( "431.c2", 0x0000001, 0x400000, CRC(00bd87ac) SHA1(cb3c02c799109fa7083110825dacf19c89372c55) )
+ ROM_LOAD16_BYTE( "431.c3", 0x0800000, 0x400000, CRC(263307c8) SHA1(5dabc76b18c02c6955abfbc5010b8fbac7d15753) )
+ ROM_LOAD16_BYTE( "431.c4", 0x0800001, 0x400000, CRC(b8330c1e) SHA1(e3ab645eb1101e561bc581e6b2cf696a0ca1e673) )
+ ROM_LOAD16_BYTE( "431.c5", 0x1000000, 0x400000, CRC(ce99fcb8) SHA1(f6222f1b0dc31e5ae5e6c7e3223aa7129b38b772) )
+ ROM_LOAD16_BYTE( "431.c6", 0x1000001, 0x400000, CRC(a6d30781) SHA1(a29e6b39169f9354a64cf64b302b9e91e0671c82) )
+ ROM_LOAD16_BYTE( "431.c7", 0x1800000, 0x400000, CRC(eda15323) SHA1(ef7291870fd30e7b04cb63e59ff45a3c0acab714) )
+ ROM_LOAD16_BYTE( "431.c8", 0x1800001, 0x400000, CRC(400fd4cd) SHA1(20cc401de5d429deb7d076535a0b42fc62c48c52) )
+ROM_END
+
+
+// 435 : Neo Rom Jukebox by CeL
+ROM_START( neoromjb )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "435.p1", 0x000000, 0x080000, CRC(fc301f3d) SHA1(e7e02963167a612e29e14cfaa53a8eb441961885) )
+
+ NEO_SFIX_64K( "435.s1", CRC(d78bd9a0) SHA1(17a237166aede98bee27d5b52654414c8a1b071a) )
+
+ NEO_BIOS_AUDIO_128K( "435.m1", CRC(60bf52f5) SHA1(86fcb7693ce0c3ee97f3fd2715d3bcb575511cd7) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "435.v1", 0x000000, 0x080000, CRC(68a2a556) SHA1(8343465cca82db43c0decea74c314f641e4bbb7a) )
+
+ ROM_REGION( 0x200000, "sprites", ROMREGION_ERASEFF )
+ // no sprites - these blank roms not used
+ //ROM_LOAD16_BYTE( "435.c1", 0x000000, 0x100000, CRC(40098266) SHA1(d5bacfff0fc3470b8af4b7675daa816b1e2eb775) )
+ //ROM_LOAD16_BYTE( "435.c2", 0x000001, 0x100000, CRC(40098266) SHA1(d5bacfff0fc3470b8af4b7675daa816b1e2eb775) )
+ROM_END
+
+
+// 437 : Crouching Pony Hidden Dragon demo by Le Cortex
+// If the game doesn't work, read the FAQ.
+ROM_START( cphd )
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "437.p1", 0x000000, 0x100000, CRC(de032a95) SHA1(5566ddbb17c8cc4016e25de1afb0ea5c281844ae) )
+ ROM_LOAD16_WORD_SWAP( "437.p2", 0x100000, 0x800000, CRC(7a3a2e41) SHA1(a1bd9e20f29f283f892ed3d937b3a79a63d9a04b) )
+
+ NEO_SFIX_128K( "437.s1", CRC(1736099a) SHA1(486bb9b5abd43d1739c717f0dd3aff0d6ed37ec0) )
+
+ NEO_BIOS_AUDIO_64K( "437.m1", CRC(535a7397) SHA1(3752017175030b05a91078bdf0709af91dee5fc3) )
+
+ ROM_REGION( 0x4000000, "ymsnd", 0 )
+ ROM_LOAD( "437.v1", 0x0000000, 0x2000000, CRC(04eb9c07) SHA1(226f6d6e0365613fb66671775a1f8e5ca62d0549) )
+ ROM_LOAD( "437.v2", 0x2000000, 0x2000000, CRC(9c9aec7f) SHA1(dc54b4ea34724da5dc9e5b498a2b16d7f1ffc1b4) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "437.c1", 0x0000000, 0x2000000, CRC(f3a4b475) SHA1(07a5e8c3a0a8e29f952e448d8eac772ccef6586e) )
+ ROM_LOAD16_BYTE( "437.c2", 0x0000001, 0x2000000, CRC(05ce93a9) SHA1(a29f7ca6d0b3c53a0b2889e716b34fe921da432c) )
+ // not used (blank)
+ //ROM_LOAD16_BYTE( "437.c3", 0x4000000, 0x2000000, CRC(59450445) SHA1(57b587e1bf2d09335bdac6db18902d43dfe76449) )
+ //ROM_LOAD16_BYTE( "437.c4", 0x4000001, 0x2000000, CRC(59450445) SHA1(57b587e1bf2d09335bdac6db18902d43dfe76449) )
+ROM_END
+
+
+// 438: Neo Bubble (author unknown)
+// Incomplete. Patched so that it can show an inbuilt message.
+ROM_START( neobubble )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "438.p1", 0x000000, 0x080000, CRC(a38b6d52) SHA1(be7918c98c65dbf533556886dea935347db6ca14) )
+ ROM_COPY("maincpu",0x398, 0x1398, 0x116)
+ ROM_FILL(0x38C,1,0x3A)
+ ROM_FILL(0x38D,1,0x3C)
+ ROM_FILL(0x38E,1,0x01)
+ ROM_FILL(0x38F,1,0x38)
+ ROM_FILL(0x390,1,0x4E)
+ ROM_FILL(0x391,1,0xB9)
+ ROM_FILL(0x392,1,0x00)
+ ROM_FILL(0x393,1,0x00)
+ ROM_FILL(0x394,1,0x13)
+ ROM_FILL(0x395,1,0x98)
+ ROM_FILL(0x396,1,0x50)
+ ROM_FILL(0x397,1,0x8F)
+ ROM_FILL(0x398,1,0x51)
+ ROM_FILL(0x399,1,0xCD)
+ ROM_FILL(0x39A,1,0xFF)
+ ROM_FILL(0x39B,1,0xF6)
+ ROM_FILL(0x39C,1,0x60)
+ ROM_FILL(0x39D,1,0xFE)
+ // This rom does nothing, just a black screen
+ //ROM_LOAD16_WORD_SWAP( "438a.p1", 0x000000, 0x080000, CRC(cbd8204d) SHA1(d0cbf0b3c4a160fdf0d598fe77b52024d438d595) )
+
+ NEO_SFIX_128K( "412.s1", CRC(cd19264f) SHA1(531be2305cd56d332fb7a53ab924214ade34a9e8) )
+
+ NEO_BIOS_AUDIO_128K( "202-m1.m1", CRC(9c0291ea) SHA1(3fa67c62acba79be6b3a98cc1601e45569fa11ae) )
+
+ ROM_REGION( 0x500000, "ymsnd", 0 )
+ ROM_LOAD( "202-v1.v1", 0x000000, 0x80000, CRC(debeb8fb) SHA1(49a3d3578c087f1a0050168571ef8d1b08c5dc05) )
+ ROM_LOAD( "076-v2.v2", 0x200000, 0x200000, CRC(b61686c3) SHA1(5a3405e833ce36abb7421190438b5cccc8537919) )
+ ROM_LOAD( "076-v3.v3", 0x400000, 0x100000, CRC(b90658fa) SHA1(b9a4b34565ce3688495c47e35c9b888ef686ae9f) )
+
+ ROM_REGION( 0x800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "438.c1", 0x000000, 0x100000, CRC(82ce3020) SHA1(65b572b5304bb259d0a5924d74ec3e1c5b3ac699) )
+ ROM_LOAD16_BYTE( "438.c2", 0x000001, 0x100000, CRC(d209f6f7) SHA1(9d60ac994a1d4004f317aa12a521a8aa6dda5746) )
+ ROM_LOAD16_BYTE( "076-c3.c3", 0x400000, 0x200000, CRC(d06431e3) SHA1(643bd1ad74af272795b02143ba80a76e375036ab) )
+ ROM_LOAD16_BYTE( "076-c4.c4", 0x400001, 0x200000, CRC(4b1c089b) SHA1(cd63961d88c5be84673cce83c683a86b222a064d) )
+ROM_END
+
+
+// 439 : Primo demo by BEY
+// No sound.
+ROM_START( iocero )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "439.p1", 0x000000, 0x100000, CRC(a315fb81) SHA1(c958d78de5d83ff31c9545d54c6429c85cdbdb64) )
+
+ NEO_SFIX_128K( "419.s1", CRC(a545b593) SHA1(09077b63595eebb7dddd55e041e7786164df0ead) )
+
+ NEO_BIOS_AUDIO_128K( "202-m1.m1", CRC(9c0291ea) SHA1(3fa67c62acba79be6b3a98cc1601e45569fa11ae) )
+
+ ROM_REGION( 0x80000, "ymsnd", 0 )
+ ROM_LOAD( "202-v1.v1", 0x000000, 0x80000, CRC(debeb8fb) SHA1(49a3d3578c087f1a0050168571ef8d1b08c5dc05) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "439.c1", 0x000000, 0x100000, CRC(d68941e1) SHA1(20b70416b9b284bae576b385ddc63fe9a47cf976) )
+ ROM_LOAD16_BYTE( "439.c2", 0x000001, 0x100000, CRC(df7e359f) SHA1(08d45350047ad9bcad17739d8b00b911b47417ee) )
+ROM_END
+
+
+// 440 : Galaga demo by BEY
+// No sound.
+ROM_START( neogal1 )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "440_1.p1", 0x000000, 0x100000, CRC(7226db5c) SHA1(d598096265286b5d32a3c6abbea8c281ee94458c) )
+
+ NEO_SFIX( 0x2000, "440_1.s1", CRC(90557449) SHA1(a6aac83715a5d2c7d0436c3d0b80d61459316ee7) )
+
+ NEO_BIOS_AUDIO_128K( "202-m1.m1", CRC(9c0291ea) SHA1(3fa67c62acba79be6b3a98cc1601e45569fa11ae) )
+
+ ROM_REGION( 0x80000, "ymsnd", 0 )
+ ROM_LOAD( "202-v1.v1", 0x000000, 0x80000, CRC(debeb8fb) SHA1(49a3d3578c087f1a0050168571ef8d1b08c5dc05) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "440_1.c1", 0x000000, 0x100000, CRC(6de8c6f6) SHA1(51d29bab7b482a5a850af08f9939a42e7127df3b) )
+ ROM_LOAD16_BYTE( "440_1.c2", 0x000001, 0x100000, CRC(fa5f0c1d) SHA1(8e8fb1f0314450ab9cdbd9619a9cdccdd78fea99) )
+ROM_END
+
+// No sound.
+ROM_START( neogal1t )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "440_1t.p1", 0x000000, 0x100000, CRC(01dc85fd) SHA1(7fed5c859901066e27bac777d3846e69185648e6) )
+
+ NEO_SFIX( 0x2000, "440_1.s1", CRC(90557449) SHA1(a6aac83715a5d2c7d0436c3d0b80d61459316ee7) )
+
+ NEO_BIOS_AUDIO_128K( "202-m1.m1", CRC(9c0291ea) SHA1(3fa67c62acba79be6b3a98cc1601e45569fa11ae) )
+
+ ROM_REGION( 0x80000, "ymsnd", 0 )
+ ROM_LOAD( "202-v1.v1", 0x000000, 0x80000, CRC(debeb8fb) SHA1(49a3d3578c087f1a0050168571ef8d1b08c5dc05) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "440_1t.c1", 0x000000, 0x100000, CRC(f8221e34) SHA1(c8bb90c03213dc493bdaa36d94c713508303a275) )
+ ROM_LOAD16_BYTE( "440_1t.c2", 0x000001, 0x100000, CRC(c30cf1fc) SHA1(774a1896fc15cdf9fddf1e1a874ea43fe4136bd6) )
+ROM_END
+
+// No sound.
+ROM_START( neogal1d )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "440_1d.p1", 0x000000, 0x100000, CRC(2c49e6ec) SHA1(69602bce2a119f644385b1cfda5ee38dbc081679) )
+
+ NEO_SFIX_128K( "419.s1", CRC(a545b593) SHA1(09077b63595eebb7dddd55e041e7786164df0ead) )
+
+ NEO_BIOS_AUDIO_128K( "202-m1.m1", CRC(9c0291ea) SHA1(3fa67c62acba79be6b3a98cc1601e45569fa11ae) )
+
+ ROM_REGION( 0x80000, "ymsnd", 0 )
+ ROM_LOAD( "202-v1.v1", 0x000000, 0x80000, CRC(debeb8fb) SHA1(49a3d3578c087f1a0050168571ef8d1b08c5dc05) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "440_1.c1", 0x000000, 0x100000, CRC(6de8c6f6) SHA1(51d29bab7b482a5a850af08f9939a42e7127df3b) )
+ ROM_LOAD16_BYTE( "440_1.c2", 0x000001, 0x100000, CRC(fa5f0c1d) SHA1(8e8fb1f0314450ab9cdbd9619a9cdccdd78fea99) )
+ROM_END
+
+ROM_START( neogal2 )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "440_2.p1", 0x000000, 0x100000, CRC(a6321942) SHA1(e2085c677e124708770846c2b9f1d3ba9e6a4323) )
+
+ NEO_SFIX_128K( "419.s1", CRC(a545b593) SHA1(09077b63595eebb7dddd55e041e7786164df0ead) )
+
+ NEO_BIOS_AUDIO_128K( "202-m1.m1", CRC(9c0291ea) SHA1(3fa67c62acba79be6b3a98cc1601e45569fa11ae) )
+
+ ROM_REGION( 0x80000, "ymsnd", 0 )
+ ROM_LOAD( "202-v1.v1", 0x000000, 0x80000, CRC(debeb8fb) SHA1(49a3d3578c087f1a0050168571ef8d1b08c5dc05) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "440_1.c1", 0x000000, 0x100000, CRC(6de8c6f6) SHA1(51d29bab7b482a5a850af08f9939a42e7127df3b) )
+ ROM_LOAD16_BYTE( "440_1.c2", 0x000001, 0x100000, CRC(fa5f0c1d) SHA1(8e8fb1f0314450ab9cdbd9619a9cdccdd78fea99) )
+ROM_END
+
+
+// 441 : Neo Geo Sound Test by BEY
+// Bugs: Insert Coin causes reboot
+ROM_START( neotest )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "441.p1", 0x000000, 0x80000, CRC(2ee900b2) SHA1(4b083f4e1e502ac17e3e396d8655870dbac7fba7) )
+
+ NEO_SFIX( 0x2000, "440_1.s1", CRC(90557449) SHA1(a6aac83715a5d2c7d0436c3d0b80d61459316ee7) )
+
+ NEO_BIOS_AUDIO_128K( "441.m1", CRC(ad14cc39) SHA1(852f71ebb54c2c26795e8a2771d1638e42e0c634) )
+
+ ROM_REGION( 0x100000, "ymsnd", 0 )
+ ROM_LOAD( "441.v1", 0x000000, 0x100000, CRC(c1c07bd5) SHA1(79a25211590dc1192913a7655d7f2d1682acdc97) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "440_1.c1", 0x000000, 0x100000, CRC(6de8c6f6) SHA1(51d29bab7b482a5a850af08f9939a42e7127df3b) )
+ ROM_LOAD16_BYTE( "440_1.c2", 0x000001, 0x100000, CRC(fa5f0c1d) SHA1(8e8fb1f0314450ab9cdbd9619a9cdccdd78fea99) )
+ROM_END
+
+
+// 444 : Santaball by M.Priewe.
+// Press 1 to play a game of Pong.
+// If the game misbehaves, read the FAQ.
+ROM_START( santabll )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "444.p1", 0x000000, 0x100000, CRC(2af7a77c) SHA1(ff79d4695e8060f5a7b981524303336a0ad99c0c) )
+
+ NEO_SFIX_128K( "444.s1", CRC(ac031928) SHA1(7516593efc70e6effed8f5423e9736d6555b3baf) )
+
+ NEO_BIOS_AUDIO_64K( "444.m1", CRC(37a8d679) SHA1(957de2aa1775502a51b4e2d5cb6268cee00f6c2a) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "444.v1", 0x000000, 0x100000, CRC(d0150804) SHA1(b3d4cdb6d0f426de3801eb04d56f867bec8fe611) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "444.c1", 0x000000, 0x100000, CRC(1e271a9b) SHA1(5cae43aa094d5ee34983bc70aeab06652a6b0e7f) )
+ ROM_LOAD16_BYTE( "444.c2", 0x000001, 0x100000, CRC(1c7fd396) SHA1(aa2e2fff1ad1804631f3058b9666b970a368a847) )
+ROM_END
+
+
+// 446 : Monitor Test by M.Priewe.
+// No sound.
+ROM_START( ngmontst )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "446.p1", 0x000000, 0x100000, CRC(17a4ad61) SHA1(38c0f2022947043f30a27ccda06cc709fe980fed) )
+
+ NEO_SFIX_128K( "sfix.sfix", CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) )
+
+ NEO_BIOS_AUDIO_128K( "052-m1.m1", CRC(49f17d2d) SHA1(70971fcf71ae3a6b2e26e7ade8063941fb178ae5) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "052-v1.v1", 0x000000, 0x200000, CRC(22c097a5) SHA1(328c4e6db0a026f54a633cff1443a3f964a8daea) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "446.c1", 0x000000, 0x100000, CRC(715df715) SHA1(74534eb9bb48a04f25d0044b1f2b57e59f49b06f) )
+ ROM_LOAD16_BYTE( "446.c2", 0x000001, 0x100000, CRC(d8ee3c9b) SHA1(c731eaffae34b4394e290e68ca8c3700e1c6dc2b) )
+ROM_END
+
+
+// 457 : MVS Test 01 by Furrtek.
+ROM_START( test01 )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "457.p1", 0x000000, 0x080000, CRC(dd059433) SHA1(17cc7c48464d2d2a3d104f47e70a5f7cf3e19a5e) )
+
+ NEO_SFIX_128K( "052-s1.s1", CRC(97689804) SHA1(fa8dab3b3353d7115a0368f3fc749950c0186fbc) )
+
+ NEO_BIOS_AUDIO_128K( "052-m1.m1", CRC(49f17d2d) SHA1(70971fcf71ae3a6b2e26e7ade8063941fb178ae5) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "052-v1.v1", 0x000000, 0x200000, CRC(22c097a5) SHA1(328c4e6db0a026f54a633cff1443a3f964a8daea) )
+
+ ROM_REGION( 0x600000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "052-c1.c1", 0x000000, 0x100000, CRC(53e1c002) SHA1(2125b1be379ea7933893ffb1cd65d6c4bf8b03bd) )
+ ROM_CONTINUE( 0x400000, 0x100000 )
+ ROM_LOAD16_BYTE( "052-c2.c2", 0x000001, 0x100000, CRC(776a2d1f) SHA1(bca0bac87443e9e78c623d284f6cc96cc9c9098f) )
+ ROM_CONTINUE( 0x400001, 0x100000 )
+ROM_END
+
+
+// 458 : KnackiBalls by Furrtek. Patched by Robbbert.
+// Bad address alignment causes it to continually reboot, so I have patched it.
+// Instruction 5019 inserted to align A1 to the next word. So, some instructions are pushed upward.
+// Not sure if the result is totally correct, but at least it runs now.
+// No sound.
+ROM_START( knacki )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "458.p1", 0x000000, 0x080000, CRC(56c0d270) SHA1(aebb3223e519f76e2abfa59f48626aa5e970ce4c) )
+ ROM_COPY("maincpu",0x3e2, 0x3e4, 16) // move code so we can insert 5019
+ ROM_FILL(0x12d, 1, 0xf4) // jump to another rts as we are overwriting this one's destination
+ ROM_FILL(0x3e2, 1, 0x50) // insert 50
+ ROM_FILL(0x3e3, 1, 0x19) // insert 19
+ ROM_FILL(0x3e7, 1, 0xc4) // fix jump
+
+ NEO_SFIX_128K( "052-s1.s1", CRC(97689804) SHA1(fa8dab3b3353d7115a0368f3fc749950c0186fbc) )
+
+ NEO_BIOS_AUDIO_128K( "458.m1", CRC(183c234a) SHA1(366c875703ced09c460d1810aadb3cd2f2fcd067) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "458.v1", 0x000000, 0x200000, CRC(ad1d1925) SHA1(4fa973bd8d2793ef553ea4e536193d3b89027828) )
+
+ ROM_REGION( 0x600000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "458.c1", 0x000000, 0x100000, CRC(71dd4d25) SHA1(682671b55375dea8f86b25031320611a8c60326e) )
+ ROM_CONTINUE( 0x400000, 0x100000 )
+ ROM_LOAD16_BYTE( "458.c2", 0x000001, 0x100000, CRC(0deccb3d) SHA1(ee9d1e5d3efcea0545a6dae8cd28b913e6f106b6) )
+ ROM_CONTINUE( 0x400001, 0x100000 )
+ROM_END
+
+
+// 467 : Sprite Experimenter by Furrtek.
+// Bugs: Insert Coin freezes HBMAME
+ROM_START( spriteex )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "467.p1", 0x000000, 0x080000, CRC(9bce0611) SHA1(5fcb0fa6a434baf20972819484430faf44ffa21d) )
+
+ NEO_SFIX_128K( "sfix.sfix", CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) )
+
+ NEO_BIOS_AUDIO_128K( "467.m1", CRC(78bd1a39) SHA1(11963ee5d01a54e5f7e1b8973adb10960308a091) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "467.v1", 0x000000, 0x10000, CRC(48077f32) SHA1(97784ee122aec09f72b62387796726c3f3e9be5e) )
+
+ ROM_REGION( 0x800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "467.c1", 0x000000, 0x200000, CRC(dcda2ca8) SHA1(b37714532d36608eb7b819396a6796d0d49dbf92) )
+ ROM_CONTINUE( 0x400000, 0x200000 )
+ ROM_LOAD16_BYTE( "467.c2", 0x000001, 0x200000, CRC(c8a4d037) SHA1(6541074be8493bf2c7b869e8dbdb39f3309dcaf7) )
+ ROM_CONTINUE( 0x400001, 0x200000 )
+ROM_END
+
+
+// 470 : ADPCM-B Playback Demo by freem.
+// Note that these 2 old roms are buggy and should be discarded: (use only the 'v3' set)
+// CRC(6d719183) SHA1(e1e064bb785823a1f20f4a931bd7961515de2a98) )
+// CRC(7b8abba4) SHA1(c492c468b34f0a7d57e2abd54d6057f3e470ee27) )
+ROM_START( pcmbdemo )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "470.p1", 0x000000, 0x080000, CRC(904e90ad) SHA1(1e13a81a2e0b1926d1745288e81dc51cd1ade5ac) )
+
+ NEO_SFIX_128K( "470.s1", CRC(9647ff8a) SHA1(ecfaa4649d490fae1697e34cc5bbbc386ffa5ef6) )
+
+ NEO_BIOS_AUDIO_128K( "470.m1", CRC(df4acc0c) SHA1(9c2999312ede7a1a415fa151a9acc6c98e510bf0) )
+
+ ROM_REGION( 0x80000, "ymsnd", 0 )
+ ROM_LOAD( "470.v1", 0x000000, 0x80000, CRC(baffec3e) SHA1(58ec4b684220ea558ed7dea99dfed1d24c57e662) )
+
+ ROM_REGION( 0x200000, "sprites", ROMREGION_ERASEFF )
+ // no sprites
+ROM_END
+
+
+// 472 : ADPCM-A Playback Demo by freem.
+ROM_START( pcmademo )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "472.p1", 0x000000, 0x080000, CRC(a198ce30) SHA1(17b9ad5fe5136c0425823f49a65d428c544170c5) )
+
+ NEO_SFIX_128K( "472.s1", CRC(c3dddf6e) SHA1(cce290e869ecbd52b7a7ed1e35c2c825450cc24c) )
+
+ NEO_BIOS_AUDIO_128K( "472.m1", CRC(1c667c87) SHA1(3bc2cb708aa9c4618d901da1f627ae719dee445d) )
+
+ ROM_REGION( 0x80000, "ymsnd", 0 )
+ ROM_LOAD( "472.v1", 0x000000, 0x80000, CRC(e7ef9bd8) SHA1(d5de1f63189b3a18382da81f02b20af68996ad7e) )
+
+ ROM_REGION( 0x200000, "sprites", ROMREGION_ERASEFF )
+ // no sprites
+ROM_END
+
+
+// 473 : Twister in a mirror intro by Blastar.
+ROM_START( twister )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "473.p1", 0x000000, 0x080000, CRC(514bf0fd) SHA1(d7d084b83ae5ae776d6cc7b7d183bd79b2ab114a) )
+
+ NEO_SFIX_128K( "473.s1", CRC(111ea86c) SHA1(1251d7ef30493b76b15ddc8975a0278ad4a48434) )
+
+ NEO_BIOS_AUDIO_128K( "473.m1", CRC(c1c27b33) SHA1(655c1b01deacacbdbfe3a89196d4b0d9d3aae1eb) )
+
+ ROM_REGION( 0x80000, "ymsnd", 0 )
+ ROM_LOAD( "473.v1", 0x000000, 0x80000, CRC(0c5e044c) SHA1(e5717ea0e6daaf7c529f1e8cf5e4e73ee4a3f26f) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "473.c1", 0x000000, 0x100000, CRC(72ceed51) SHA1(aa5ead993db739cf34917287988aeb43afa7f7d5) )
+ ROM_LOAD16_BYTE( "473.c2", 0x000001, 0x100000, CRC(27da57ee) SHA1(323fcd0893aec82cc3c78687834920e2eeedb67b) )
+ROM_END
+
+
+// 474 : Sound-Loop Demo by freem.
+// Bugs: The first time 5 is pressed, the game resets. After that it has no effect.
+ROM_START( snddemo )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "474.p1", 0x000000, 0x080000, CRC(fbb26284) SHA1(80837fb870e36360f2c8c4576d1b43f3feef3ff5) )
+
+ NEO_SFIX_128K( "474.s1", CRC(a7a76e2a) SHA1(894194f43b0bb884cb6f392bb0c9d1284639e577) )
+
+ NEO_BIOS_AUDIO_64K( "474.m1", CRC(ba37ca7d) SHA1(4bb0897b74eadd7eb2782fcf2ae0a9897b9e8c8f) )
+
+ ROM_REGION( 0x10000, "ymsnd", 0 )
+ ROM_LOAD( "474.v1", 0x000000, 0x10000, CRC(95101457) SHA1(81ca771f441edc01019b8c629709eccc746059ba) )
+
+ ROM_REGION( 0x100000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "474.c1", 0x000000, 0x080000, CRC(cad47785) SHA1(538c072417d849f33d1da3f61f98be4674c10762) )
+ ROM_LOAD16_BYTE( "474.c2", 0x000001, 0x080000, CRC(c43d0953) SHA1(1ceb394b495f8a082452d50f78d2d7d8d1ec9a56) )
+ROM_END
+
+
+// 475 : Sprite demo by Kannagi (26-3-2016)
+// Arrows to move fighter around. A = kick; B = punch; C & D slide background left & right. No sound.
+ROM_START( neofightb )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "475.p1", 0x000000, 0x080000, CRC(caaf0da5) SHA1(089a89c787d4955fcb11141b50d587caa785c30a) )
+
+ NEO_SFIX_128K( "052-s1.s1", CRC(97689804) SHA1(fa8dab3b3353d7115a0368f3fc749950c0186fbc) )
+
+ NEO_BIOS_AUDIO_128K( "475.m1", CRC(ffcbeb27) SHA1(101fee624083f33aac88e73afc69907df0b41de3) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "475.v1", 0x000000, 0x1e3300, CRC(da4f84c0) SHA1(7e9c039a47445ef805adf68c65e20063d93ba601) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "475.c1", 0x000000, 0x200000, CRC(4c2ec7e3) SHA1(572f087d2adb4900dbab39fa9bc517237ddba54e) )
+ ROM_LOAD16_BYTE( "475.c2", 0x000001, 0x200000, CRC(319b0d51) SHA1(f57b4b3c96d94a6887f9e02e53af8eaef59d617a) )
+ROM_END
+
+// 476 : Neo Fight by Kannagi (14-12-2015)
+// Arrows to move fighter around. A = kick; B = punch; C & D slide background left & right. No sound.
+ROM_START( neofighto )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "476o.p1", 0x000000, 0x080000, CRC(b0eb16a0) SHA1(136b1cb9b9daf1b8563c66002d07bb5128d41061) )
+
+ NEO_SFIX_128K( "052-s1.s1", CRC(97689804) SHA1(fa8dab3b3353d7115a0368f3fc749950c0186fbc) )
+
+ NEO_BIOS_AUDIO_128K( "052-m1.m1", CRC(49f17d2d) SHA1(70971fcf71ae3a6b2e26e7ade8063941fb178ae5) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "052-v1.v1", 0x000000, 0x200000, CRC(22c097a5) SHA1(328c4e6db0a026f54a633cff1443a3f964a8daea) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "476.c1", 0x000000, 0x200000, CRC(99fda4d5) SHA1(c5ff1b724a8cbc209c47eb4fb1eca4f0b76aad5c) )
+ ROM_LOAD16_BYTE( "476.c2", 0x000001, 0x200000, CRC(2e48378a) SHA1(80389cfc420b2e7c5f50c809995a3298a57c697f) )
+ROM_END
+ROM_START( neofight )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "476.p1", 0x000000, 0x080000, CRC(c44e5685) SHA1(59bc5814454e74f069dcdc8d3fb32da5b5b65bec) )
+
+ NEO_SFIX_128K( "052-s1.s1", CRC(97689804) SHA1(fa8dab3b3353d7115a0368f3fc749950c0186fbc) )
+
+ NEO_BIOS_AUDIO_128K( "052-m1.m1", CRC(49f17d2d) SHA1(70971fcf71ae3a6b2e26e7ade8063941fb178ae5) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "052-v1.v1", 0x000000, 0x200000, CRC(22c097a5) SHA1(328c4e6db0a026f54a633cff1443a3f964a8daea) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "476.c1", 0x000000, 0x200000, CRC(99fda4d5) SHA1(c5ff1b724a8cbc209c47eb4fb1eca4f0b76aad5c) )
+ ROM_LOAD16_BYTE( "476.c2", 0x000001, 0x200000, CRC(2e48378a) SHA1(80389cfc420b2e7c5f50c809995a3298a57c697f) )
+ROM_END
+
+// 477 : Demo that comes with DatImage, by Mega Shocked (26-07-2016)
+// No sound.
+ROM_START( didemo )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "477.p1", 0x000000, 0x200000, CRC(732691f4) SHA1(40bddb4e636799f77b85a5b46fd9c90f9e125dce) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "063-m1.m1", CRC(56675098) SHA1(90429fc40d056d480d0e2bbefbc691d9fa260fc4) )
+
+ ROM_REGION( 0x200000, "ymsnd", ROMREGION_ERASEFF )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "477.c1", 0x000000, 0x200000, CRC(af99af71) SHA1(81b723a159dc80f2b784eb6027ccece94dc8324b) )
+ ROM_LOAD16_BYTE( "477.c2", 0x000001, 0x200000, CRC(7b17b0f2) SHA1(b11071fd4782592a375f260352a0ca0d0df2c6e5) )
+ROM_END
+
+// 478 : Demo by Mega Shocked (17-08-2016)
+ROM_START(akiradmo)
+ ROM_REGION( 0x400000, "maincpu", 0 )
+ ROM_LOAD( "478.p1", 0x000000, 0x003188, CRC(a87fa008) SHA1(89f41671f185fd5e92237fcf82e9ed60387fafad) )
+ ROM_LOAD( "478.p2", 0x100000, 0x09edf8, CRC(16d8b6b4) SHA1(b246b380b3cca17e11ab223bf4d1aeb605663a03) )
+ ROM_LOAD( "478.p3", 0x200000, 0x074da4, CRC(94a22666) SHA1(e9cb0f159404ddcce10554753e56084fb79f2e60) )
+ ROM_LOAD( "478.p4", 0x300000, 0x076b0c, CRC(d170285c) SHA1(b19bd0de148a68de9dbd18d89417c3dd32518780) )
+
+ NEO_SFIX_128K( "063-s1.s1", CRC(64a5cd66) SHA1(12cdfb27bf9ccd5a8df6ddd4628ef7cf2c6d4964) )
+
+ NEO_BIOS_AUDIO_128K( "478.m1", CRC(37d8cb43) SHA1(b89baa6f41aefad57fb546fd1135506538ab9099) )
+
+ ROM_REGION( 0x100000, "ymsnd", ROMREGION_ERASEFF )
+ ROM_LOAD( "478.v1", 0x000000, 0x100000, CRC(148c5203) SHA1(8ddbfeeac4493f6e6ed7df834fcf1f0cede42ac3) )
+
+ ROM_REGION( 0xc00000, "sprites", 0 )
+ ROM_LOAD( "478.c1", 0x000000, 0x34c700, CRC(84eba506) SHA1(a771cbc5efe7b61114db6b7f776b5ab93f09b2bc) )
+ ROM_LOAD( "478.c2", 0x400000, 0x2e0400, CRC(a731451c) SHA1(aae521c38430a2797c7a60d970a0179673f05215) )
+ ROM_LOAD( "478.c3", 0x800000, 0x249a80, CRC(87b2a616) SHA1(915d5c7bf832b725a3678b3735790f503dd34f48) )
+ROM_END
+
+// 480 : Tech Demo 2 by Luis Miguel Mayor
+// No sound.
+ROM_START( ngtd2 )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "480.p1", 0x000000, 0x100000, CRC(35131b60) SHA1(74877b4f1bdbba712b04afdf65bede1d30f846b0) )
+
+ NEO_SFIX_64K( "480.s1", CRC(9a246f50) SHA1(1f1358dd9c2f88d2197d6c8272ec899b7c9a524b) )
+
+ NEO_BIOS_AUDIO_128K( "480.m1", CRC(5ef0d5eb) SHA1(a327d6a88f3c7ccd242fceaffb3ef33a0171c215) )
+
+ ROM_REGION( 0x100000, "ymsnd", 0 )
+ ROM_LOAD( "480.v1", 0x000000, 0x100000, CRC(5ea51b63) SHA1(62126f407175cd7bf44fb5acc1df12fbc0e23df6) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "480.c1", 0x000000, 0x100000, CRC(0ecfa2ba) SHA1(a5a7cbd3b79260f8cc99992067df315b20ae6741) )
+ ROM_LOAD16_BYTE( "480.c2", 0x000001, 0x100000, CRC(f16b9ae8) SHA1(cb43089370a77bdd177db7eb6819ed21c994a914) )
+ROM_END
+
+
+// 802 : Last Hope CD Beta by NG:DEV.Team
+// Bugs: Insert Coin causes reboot; purple boxes instead of graphics; some corrupt graphics
+ROM_START( lhcdb )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "802cd.p1", 0x000000, 0x100000, CRC(83e7b181) SHA1(eb13909c0b062d56d20cbdfe75abf6139eae9ee0) )
+
+ NEO_SFIX_128K( "802cd.s1", CRC(298495d6) SHA1(c217aba6c1916d2e5337bb5c17d979b11a53582e) )
+
+ NEO_BIOS_AUDIO_128K( "802cd.m1", CRC(d9f6c153) SHA1(c08f7ca288be1c34f4b33ed13abd805b5cd66d4e) )
+
+ ROM_REGION( 0xbc3500, "ymsnd", 0 )
+ ROM_LOAD( "802cd.v1", 0x000000, 0x400000, CRC(de563ec3) SHA1(cd0f1a436cdac679792fc78906e718c78369b15a) )
+ ROM_LOAD( "802cd.v2", 0x400000, 0x400000, CRC(93478033) SHA1(a03e0fcb7f51c66ec0bc5d164744db00b96973c2) )
+ ROM_LOAD( "802cd.v3", 0x800000, 0x3c3500, CRC(f0ad87b8) SHA1(f992e84c6cbbc3cab79747a2ca4d646d18bebcbd) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "802cd.c1", 0x000000, 0x400000, CRC(554e6b73) SHA1(3637a8a4474e33eb75ac4a4ce0815f6a514fe337) )
+ ROM_LOAD16_BYTE( "802cd.c2", 0x000001, 0x400000, CRC(7c84b0fc) SHA1(cbd7a7865113e4f21f2b1f990a077fa5c2eae894) )
+ ROM_LOAD16_BYTE( "802cd.c3", 0x800000, 0x400000, CRC(28ec7555) SHA1(f094739272e6017a7193fa96cde3c1ed573a66b6) )
+ ROM_LOAD16_BYTE( "802cd.c4", 0x800001, 0x400000, CRC(8b7c236b) SHA1(1cb3fe81f433a2180c85be935e340da3c55aafdb) )
+ROM_END
+ROM_START( lhcdba ) // v3 rom is different
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "802cd.p1", 0x000000, 0x100000, CRC(83e7b181) SHA1(eb13909c0b062d56d20cbdfe75abf6139eae9ee0) )
+
+ NEO_SFIX_128K( "802cd.s1", CRC(298495d6) SHA1(c217aba6c1916d2e5337bb5c17d979b11a53582e) )
+
+ NEO_BIOS_AUDIO_128K( "802cd.m1", CRC(d9f6c153) SHA1(c08f7ca288be1c34f4b33ed13abd805b5cd66d4e) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "802cd.v1", 0x000000, 0x400000, CRC(de563ec3) SHA1(cd0f1a436cdac679792fc78906e718c78369b15a) )
+ ROM_LOAD( "802cd.v2", 0x400000, 0x400000, CRC(93478033) SHA1(a03e0fcb7f51c66ec0bc5d164744db00b96973c2) )
+ ROM_LOAD( "802cda.v3", 0x800000, 0x400000, CRC(e0fc99ca) SHA1(6de935b54bf5adc4394fe824b001b38eca0291ad) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "802cd.c1", 0x000000, 0x400000, CRC(554e6b73) SHA1(3637a8a4474e33eb75ac4a4ce0815f6a514fe337) )
+ ROM_LOAD16_BYTE( "802cd.c2", 0x000001, 0x400000, CRC(7c84b0fc) SHA1(cbd7a7865113e4f21f2b1f990a077fa5c2eae894) )
+ ROM_LOAD16_BYTE( "802cd.c3", 0x800000, 0x400000, CRC(28ec7555) SHA1(f094739272e6017a7193fa96cde3c1ed573a66b6) )
+ ROM_LOAD16_BYTE( "802cd.c4", 0x800001, 0x400000, CRC(8b7c236b) SHA1(1cb3fe81f433a2180c85be935e340da3c55aafdb) )
+ROM_END
+ROM_START( lhopecd ) // These roms were extracted from the Japanese ISO, not working at all.
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD( "802cdb.p1", 0x000000, 0x100000, CRC(cd108282) SHA1(bb9b3c8bb94c05b46ea24173e62245611dbc29ce) )
+
+ NEO_SFIX_128K( "802cd.s1", CRC(298495d6) SHA1(c217aba6c1916d2e5337bb5c17d979b11a53582e) )
+
+ NEO_BIOS_AUDIO_128K( "802cd.m1", CRC(d9f6c153) SHA1(c08f7ca288be1c34f4b33ed13abd805b5cd66d4e) )
+
+ ROM_REGION( 0x80000, "ymsnd", 0 )
+ ROM_LOAD( "802cdb.v1", 0x000000, 0x80000, CRC(bc65aee1) SHA1(2090133dcbb4f5b73696aab71ed5ea5b25b09b55) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "802cdb.c1", 0x000000, 0x200000, CRC(c5741cc8) SHA1(8593b320c140456ede6a7e355fcde978e74a0ffd) )
+ ROM_LOAD16_BYTE( "802cdb.c2", 0x000001, 0x200000, CRC(a93eba1f) SHA1(da313b0ac97480cc451ba4678a819a4fab0bd5b3) )
+ROM_END
+ROM_START( lhopecdh ) // hack of the above, does not work
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "802cdc.p1", 0x000000, 0x100000, CRC(a957c41c) SHA1(63fef6c72619f0e8ec7d711f18043a5f1d8f17c2) )
+
+ NEO_SFIX_128K( "802cd.s1", CRC(298495d6) SHA1(c217aba6c1916d2e5337bb5c17d979b11a53582e) )
+
+ NEO_BIOS_AUDIO_64K( "802cdc.m1", CRC(698372df) SHA1(1eae816223c3d0c5b501e6fdc5a62388450991a5) )
+
+ ROM_REGION( 0x80000, "ymsnd", 0 )
+ ROM_LOAD( "802cdb.v1", 0x000000, 0x80000, CRC(bc65aee1) SHA1(2090133dcbb4f5b73696aab71ed5ea5b25b09b55) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "802cdb.c1", 0x000000, 0x200000, CRC(c5741cc8) SHA1(8593b320c140456ede6a7e355fcde978e74a0ffd) )
+ ROM_LOAD16_BYTE( "802cdb.c2", 0x000001, 0x200000, CRC(a93eba1f) SHA1(da313b0ac97480cc451ba4678a819a4fab0bd5b3) )
+ROM_END
+
+
+
+GAME( 1996, crswd2bl, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Razoola", "Crossed Swords 2 (CD conversion)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, csw2, crswd2bl, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Crossed Swords 2", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1995, fr2, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Video Systems Co.", "Idol Mahjong Final Romance 2", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, fr2cd, fr2, neogeo_noslot, neogeo, neogeo_hbmame,fr2ch, ROT0, "Video Systems Co.", "Idol Mahjong Final Romance 2 (CD Bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, fr2ch, fr2, neogeo_noslot, neogeo, neogeo_hbmame,fr2ch, ROT0, "Video Systems Co.", "Idol Mahjong Final Romance 2 (CD to MVS conversion)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, zintrckbh, zintrckb, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yumeji", "ZinTricK (ExChar hack by Yumeji)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, zintrkcd, zintrckb, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Razoola", "ZinTricK (CD conversion)", MACHINE_SUPPORTS_SAVE )
+GAME( 2010, zintrkm, zintrckb, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Elrayseur", "ZinTricK (Music test)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, zintrkcd1, zintrckb, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Razoola", "ZinTricK (CD test)", MACHINE_SUPPORTS_SAVE )
+GAME( 2011, totc, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Face / NCI", "Treasure of the Caribbean", MACHINE_SUPPORTS_SAVE )
+
+GAME( 2016, akiradmo, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "HP Man", "Akira Demo", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, beast, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Jeff Kurtz", "Shadow of the Beast (Neo Demo)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 2006, cnbe, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Blastar", "Codename: Blut Engel", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, cndi, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "[Raregame]", "Chip n Dale Intro", MACHINE_SUPPORTS_SAVE )
+GAME( 2013, cphd, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Le Cortex", "Crouching Pony Hidden Dragon Demo", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, columnsn, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Jeff Kurtz", "Columns", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, columnsncd, columnsn, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Jeff Kurtz", "Columns (CD conversion)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, didemo, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Mega Shocked", "DatImage demo", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, dti, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "[Raregame]", "Duck Tales Intro", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, dwi, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "[Raregame]", "DarkWing Duck Intro", MACHINE_SUPPORTS_SAVE )
+GAME( 2006, ffeast, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Rastersoft", "Frog Feast (NeoGeo)", MACHINE_SUPPORTS_SAVE )
+GAME( 2005, ffeastd, ffeast, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Rastersoft", "Frog Feast Demo", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, gbi, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "[Raregame]", "GhostBusters Intro", MACHINE_SUPPORTS_SAVE )
+GAME( 2013, iocero, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "BEY", "Primo Demo", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, lhcdb, lasthope, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "NG:Dev.Team", "Last Hope CD Beta", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 2007, lhcdba, lasthope, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "NG:Dev.Team", "Last Hope (NGCD Conversion)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 2007, lhopecd, lasthope, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "NG:DEV.TEAM", "Last Hope JAP NGCD (Beta 1)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 2007, lhopecdh, lasthope, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "NG:DEV.TEAM", "Last Hope JAP NGCD (Beta 2)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 2005, ltorb, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Blastar", "Jonas Indiana and The Lost Temple of RA (beta - 20050717)", MACHINE_SUPPORTS_SAVE )
+GAME( 20??, knacki, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Furrtek", "KnackiBalls", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, neo2500, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Blastar", "Neo 2500 Demo", MACHINE_SUPPORTS_SAVE )
+GAME( 2012, neo3d, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Oxygene", "Neo 3D Demo", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, neobubble, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Neo Bubble", MACHINE_IS_INCOMPLETE | MACHINE_SUPPORTS_SAVE )
+GAME( 2004, neocstlv, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "BarfHappy", "Neo Castlevania Demo", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, neodemo, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Charles Doty", "Demo - NeoGeo", MACHINE_SUPPORTS_SAVE )
+GAME( 2015, neofightb, neofight, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Kannagi", "Neogeo Sprite Demo (Neo Fight beta)", MACHINE_SUPPORTS_SAVE )
+GAME( 2015, neofighto, neofight, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Kannagi", "Neo Fight (old)", MACHINE_SUPPORTS_SAVE )
+GAME( 2015, neofight, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Kannagi", "Neo Fight", MACHINE_SUPPORTS_SAVE )
+GAME( 2013, neogal1, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "BEY", "Neo Geo Galaga Demo R001", MACHINE_SUPPORTS_SAVE )
+GAME( 2013, neogal1d, neogal1, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "BEY", "Neo Geo Galaga Demo R001 (debug)", MACHINE_SUPPORTS_SAVE )
+GAME( 2013, neogal1t, neogal1, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "BEY", "Neo Geo Galaga Demo R001 (text)", MACHINE_SUPPORTS_SAVE )
+GAME( 2013, neogal2, neogal1, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "BEY", "Neo Geo Galaga Demo R002", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, neonopon, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Blastar", "Neo No Panepon V.0.2", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 2002, neonopon_d1, neonopon, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Blastar", "Neo No Panepon (demo 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 2002, neonopon_d2, neonopon, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Blastar", "Neo No Panepon (demo 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 2002, neonopon_d3, neonopon, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Blastar", "Neo No Panepon (demo 3)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 2002, neopong, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Neodev", "Neo Pong (v1.1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 2002, neoponga, neopong, no_watchdog, neogeo, neogeo_state, neogeo, ROT0, "Neodev", "Neo Pong (v1.0)", MACHINE_SUPPORTS_SAVE )
+GAME( 2010, neoromjb, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "CeL", "Neo Rom Jukebox", MACHINE_SUPPORTS_SAVE )
+GAME( 2013, neotest, neogal1, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "BEY", "Neo Geo Sound Test", MACHINE_SUPPORTS_SAVE )
+GAME( 2012, neothund, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Sebastian Mihai", "Neo Thunder", MACHINE_SUPPORTS_SAVE )
+GAME( 2006, ngem2k, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Blastar", "NGEM2K", MACHINE_SUPPORTS_SAVE )
+GAME( 2012, ngftdemo, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "NGF", "NGF Transparency Demo", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, ngmontst, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "M.Priewe", "NeoGeo Monitor Test", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, ngtd2, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Luis Miguel Mayor", "NeoGeo Tech Demo 2", MACHINE_SUPPORTS_SAVE )
+GAME( 2008, ngtetris, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Crim", "NeoGeo 2-Player Tetris", MACHINE_SUPPORTS_SAVE )
+GAME( 2011, nyan, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Furrtek", "Nyan Cat demo", MACHINE_SUPPORTS_SAVE )
+GAME( 2015, pcmademo, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Freem", "ADPCM-A Playback Demo", MACHINE_SUPPORTS_SAVE )
+GAME( 2015, pcmbdemo, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Freem", "ADPCM-B Playback Demo", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, poknight, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Jeff Kurtz", "Poker Night", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, poknightcd, poknight, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Jeff Kurtz", "Poker Night (CD)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, poknightfr, poknight, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Jeff Kurtz", "Poker Night (French)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, rci, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "[Raregame]", "Robocop Intro", MACHINE_SUPPORTS_SAVE )
+GAME( 2012, santabll, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "M.Priewe", "Santaball", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, smi, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "[Raregame]", "Spiderman Intro", MACHINE_SUPPORTS_SAVE )
+GAME( 2015, snddemo, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Freem", "Sound-Loop Demo", MACHINE_SUPPORTS_SAVE )
+GAME( 2011, spriteex, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Furrtek", "Sprite Experimenter", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, syscheck, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Blastar", "Neo System Check (ver 1.0b)", MACHINE_SUPPORTS_SAVE )
+GAME( 20??, test01, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Furrtek", "MVS Test 01", MACHINE_SUPPORTS_SAVE )
+GAME( 2012, timesupd, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "NGF", "Time's Up! (Demo)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, tmnti, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "[Raregame]", "Teenage Mutant Ninja Turtles Intro", MACHINE_SUPPORTS_SAVE )
+GAME( 2015, twister, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Blastar", "Twister in a mirror intro", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, ww2demo, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Rastersoft", "WW2demo", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/ngdoubledr.cpp b/docs/release/src/hbmame/drivers/ngdoubledr.cpp
new file mode 100644
index 00000000000..df5497c8b5b
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/ngdoubledr.cpp
@@ -0,0 +1,285 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+// Double Dragon
+
+
+
+ROM_START( dbdeh ) /* Double Dragon (Neo-Geo) - Enhance by Creamymami and Ydmis - (Based on dbdehy - can select Shuko and Duke - after hitting ultra kill is max 20030420) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "082eh.p1", 0x100000, 0x100000, CRC(046e279e) SHA1(B7CDAAD32094EB3D12EE25621E7B9A9EB97AA13D) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "082-s1.s1", CRC(bef995c5) SHA1(9c89adbdaa5c1f827632c701688563dac2e482a4) )
+
+ NEO_BIOS_AUDIO_128K( "082-m1.m1", CRC(10b144de) SHA1(cf1ed0a447da68240c62bcfd76b1569803f6bf76) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "082-v1.v1", 0x000000, 0x200000, CRC(cc1128e4) SHA1(bfcfff24bc7fbde0b02b1bc0dffebd5270a0eb04) )
+ ROM_LOAD( "082-v2.v2", 0x200000, 0x200000, CRC(c3ff5554) SHA1(c685887ad64998e5572607a916b023f8b9efac49) )
+
+ ROM_REGION( 0xe00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "082-c1.c1", 0x000000, 0x200000, CRC(b478c725) SHA1(3a777c5906220f246a6dc06cb084e6ad650d67bb) )
+ ROM_LOAD16_BYTE( "082-c2.c2", 0x000001, 0x200000, CRC(2857da32) SHA1(9f13245965d23db86d46d7e73dfb6cc63e6f25a1) )
+ ROM_LOAD16_BYTE( "082-c3.c3", 0x400000, 0x200000, CRC(8b0d378e) SHA1(3a347215e414b738164f1fe4144102f07d4ffb80) )
+ ROM_LOAD16_BYTE( "082-c4.c4", 0x400001, 0x200000, CRC(c7d2f596) SHA1(e2d09d4d1b1fef9c0c53ecf3629e974b75e559f5) )
+ ROM_LOAD16_BYTE( "082-c5.c5", 0x800000, 0x200000, CRC(ec87bff6) SHA1(3fa86da93881158c2c23443855922a7b32e55135) )
+ ROM_LOAD16_BYTE( "082-c6.c6", 0x800001, 0x200000, CRC(844a8a11) SHA1(b2acbd4cacce66fb32c052b2fba9984904679bda) )
+ ROM_LOAD16_BYTE( "082-c7.c7", 0xc00000, 0x100000, CRC(727c4d02) SHA1(8204c7f037d46e0c58f269f9c7a535bc2589f526) )
+ ROM_LOAD16_BYTE( "082-c8.c8", 0xc00001, 0x100000, CRC(69a5fa37) SHA1(020e70e0e8b3c5d00a40fe97e418115a3187e50a) )
+ROM_END
+
+ROM_START( dbdehy ) /* Double Dragon (Neo-Geo) - Enhance by Ydmis - (Can select Shuko and Duke) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "082ehy.p1", 0x100000, 0x100000, CRC(37223431) SHA1(B9369B8140213AFD8EFCCB849EE7B4DF81B01D20) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "082-s1.s1", CRC(bef995c5) SHA1(9c89adbdaa5c1f827632c701688563dac2e482a4) )
+
+ NEO_BIOS_AUDIO_128K( "082-m1.m1", CRC(10b144de) SHA1(cf1ed0a447da68240c62bcfd76b1569803f6bf76) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "082-v1.v1", 0x000000, 0x200000, CRC(cc1128e4) SHA1(bfcfff24bc7fbde0b02b1bc0dffebd5270a0eb04) )
+ ROM_LOAD( "082-v2.v2", 0x200000, 0x200000, CRC(c3ff5554) SHA1(c685887ad64998e5572607a916b023f8b9efac49) )
+
+ ROM_REGION( 0xe00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "082-c1.c1", 0x000000, 0x200000, CRC(b478c725) SHA1(3a777c5906220f246a6dc06cb084e6ad650d67bb) )
+ ROM_LOAD16_BYTE( "082-c2.c2", 0x000001, 0x200000, CRC(2857da32) SHA1(9f13245965d23db86d46d7e73dfb6cc63e6f25a1) )
+ ROM_LOAD16_BYTE( "082-c3.c3", 0x400000, 0x200000, CRC(8b0d378e) SHA1(3a347215e414b738164f1fe4144102f07d4ffb80) )
+ ROM_LOAD16_BYTE( "082-c4.c4", 0x400001, 0x200000, CRC(c7d2f596) SHA1(e2d09d4d1b1fef9c0c53ecf3629e974b75e559f5) )
+ ROM_LOAD16_BYTE( "082-c5.c5", 0x800000, 0x200000, CRC(ec87bff6) SHA1(3fa86da93881158c2c23443855922a7b32e55135) )
+ ROM_LOAD16_BYTE( "082-c6.c6", 0x800001, 0x200000, CRC(844a8a11) SHA1(b2acbd4cacce66fb32c052b2fba9984904679bda) )
+ ROM_LOAD16_BYTE( "082-c7.c7", 0xc00000, 0x100000, CRC(727c4d02) SHA1(8204c7f037d46e0c58f269f9c7a535bc2589f526) )
+ ROM_LOAD16_BYTE( "082-c8.c8", 0xc00001, 0x100000, CRC(69a5fa37) SHA1(020e70e0e8b3c5d00a40fe97e418115a3187e50a) )
+ROM_END
+
+ROM_START( dbdq ) /* Double Dragon (Neo-Geo) - Hack by Creamymami - (The character is the Q - version) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "082q.p1", 0x100000, 0x100000, CRC(869862ec) SHA1(92D1B712A25070035DD45B4F4BB4719B75768F92) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "082-s1.s1", CRC(bef995c5) SHA1(9c89adbdaa5c1f827632c701688563dac2e482a4) )
+
+ NEO_BIOS_AUDIO_128K( "082-m1.m1", CRC(10b144de) SHA1(cf1ed0a447da68240c62bcfd76b1569803f6bf76) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "082-v1.v1", 0x000000, 0x200000, CRC(cc1128e4) SHA1(bfcfff24bc7fbde0b02b1bc0dffebd5270a0eb04) )
+ ROM_LOAD( "082-v2.v2", 0x200000, 0x200000, CRC(c3ff5554) SHA1(c685887ad64998e5572607a916b023f8b9efac49) )
+
+ ROM_REGION( 0xe00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "082-c1.c1", 0x000000, 0x200000, CRC(b478c725) SHA1(3a777c5906220f246a6dc06cb084e6ad650d67bb) )
+ ROM_LOAD16_BYTE( "082-c2.c2", 0x000001, 0x200000, CRC(2857da32) SHA1(9f13245965d23db86d46d7e73dfb6cc63e6f25a1) )
+ ROM_LOAD16_BYTE( "082-c3.c3", 0x400000, 0x200000, CRC(8b0d378e) SHA1(3a347215e414b738164f1fe4144102f07d4ffb80) )
+ ROM_LOAD16_BYTE( "082-c4.c4", 0x400001, 0x200000, CRC(c7d2f596) SHA1(e2d09d4d1b1fef9c0c53ecf3629e974b75e559f5) )
+ ROM_LOAD16_BYTE( "082-c5.c5", 0x800000, 0x200000, CRC(ec87bff6) SHA1(3fa86da93881158c2c23443855922a7b32e55135) )
+ ROM_LOAD16_BYTE( "082-c6.c6", 0x800001, 0x200000, CRC(844a8a11) SHA1(b2acbd4cacce66fb32c052b2fba9984904679bda) )
+ ROM_LOAD16_BYTE( "082-c7.c7", 0xc00000, 0x100000, CRC(727c4d02) SHA1(8204c7f037d46e0c58f269f9c7a535bc2589f526) )
+ ROM_LOAD16_BYTE( "082-c8.c8", 0xc00001, 0x100000, CRC(69a5fa37) SHA1(020e70e0e8b3c5d00a40fe97e418115a3187e50a) )
+ROM_END
+
+ROM_START( dbdqb ) /* Double Dragon (Neo-Geo) - Hack by Creamymami and Ydmis - (The character is the Q - version - can select Shuko and Duke) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "082qb.p1", 0x100000, 0x100000, CRC(8511d5f7) SHA1(29F161F990947C0D83262134B8ADC4B1CCC69924) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "082-s1.s1", CRC(bef995c5) SHA1(9c89adbdaa5c1f827632c701688563dac2e482a4) )
+
+ NEO_BIOS_AUDIO_128K( "082-m1.m1", CRC(10b144de) SHA1(cf1ed0a447da68240c62bcfd76b1569803f6bf76) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "082-v1.v1", 0x000000, 0x200000, CRC(cc1128e4) SHA1(bfcfff24bc7fbde0b02b1bc0dffebd5270a0eb04) )
+ ROM_LOAD( "082-v2.v2", 0x200000, 0x200000, CRC(c3ff5554) SHA1(c685887ad64998e5572607a916b023f8b9efac49) )
+
+ ROM_REGION( 0xe00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "082-c1.c1", 0x000000, 0x200000, CRC(b478c725) SHA1(3a777c5906220f246a6dc06cb084e6ad650d67bb) )
+ ROM_LOAD16_BYTE( "082-c2.c2", 0x000001, 0x200000, CRC(2857da32) SHA1(9f13245965d23db86d46d7e73dfb6cc63e6f25a1) )
+ ROM_LOAD16_BYTE( "082-c3.c3", 0x400000, 0x200000, CRC(8b0d378e) SHA1(3a347215e414b738164f1fe4144102f07d4ffb80) )
+ ROM_LOAD16_BYTE( "082-c4.c4", 0x400001, 0x200000, CRC(c7d2f596) SHA1(e2d09d4d1b1fef9c0c53ecf3629e974b75e559f5) )
+ ROM_LOAD16_BYTE( "082-c5.c5", 0x800000, 0x200000, CRC(ec87bff6) SHA1(3fa86da93881158c2c23443855922a7b32e55135) )
+ ROM_LOAD16_BYTE( "082-c6.c6", 0x800001, 0x200000, CRC(844a8a11) SHA1(b2acbd4cacce66fb32c052b2fba9984904679bda) )
+ ROM_LOAD16_BYTE( "082-c7.c7", 0xc00000, 0x100000, CRC(727c4d02) SHA1(8204c7f037d46e0c58f269f9c7a535bc2589f526) )
+ ROM_LOAD16_BYTE( "082-c8.c8", 0xc00001, 0x100000, CRC(69a5fa37) SHA1(020e70e0e8b3c5d00a40fe97e418115a3187e50a) )
+ROM_END
+
+ROM_START( dbdqeh ) /* Double Dragon (Neo-Geo) - Enhance by Creamymami and Ydmis - (The character is the Q - version - after hitting ultra kill is max - can select Shuko and Duke) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "082qeh.p1", 0x100000, 0x100000, CRC(b65dc658) SHA1(38D81BEFBCA4A95B157289966E866BDC3BF21DE3) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "082-s1.s1", CRC(bef995c5) SHA1(9c89adbdaa5c1f827632c701688563dac2e482a4) )
+
+ NEO_BIOS_AUDIO_128K( "082-m1.m1", CRC(10b144de) SHA1(cf1ed0a447da68240c62bcfd76b1569803f6bf76) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "082-v1.v1", 0x000000, 0x200000, CRC(cc1128e4) SHA1(bfcfff24bc7fbde0b02b1bc0dffebd5270a0eb04) )
+ ROM_LOAD( "082-v2.v2", 0x200000, 0x200000, CRC(c3ff5554) SHA1(c685887ad64998e5572607a916b023f8b9efac49) )
+
+ ROM_REGION( 0xe00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "082-c1.c1", 0x000000, 0x200000, CRC(b478c725) SHA1(3a777c5906220f246a6dc06cb084e6ad650d67bb) )
+ ROM_LOAD16_BYTE( "082-c2.c2", 0x000001, 0x200000, CRC(2857da32) SHA1(9f13245965d23db86d46d7e73dfb6cc63e6f25a1) )
+ ROM_LOAD16_BYTE( "082-c3.c3", 0x400000, 0x200000, CRC(8b0d378e) SHA1(3a347215e414b738164f1fe4144102f07d4ffb80) )
+ ROM_LOAD16_BYTE( "082-c4.c4", 0x400001, 0x200000, CRC(c7d2f596) SHA1(e2d09d4d1b1fef9c0c53ecf3629e974b75e559f5) )
+ ROM_LOAD16_BYTE( "082-c5.c5", 0x800000, 0x200000, CRC(ec87bff6) SHA1(3fa86da93881158c2c23443855922a7b32e55135) )
+ ROM_LOAD16_BYTE( "082-c6.c6", 0x800001, 0x200000, CRC(844a8a11) SHA1(b2acbd4cacce66fb32c052b2fba9984904679bda) )
+ ROM_LOAD16_BYTE( "082-c7.c7", 0xc00000, 0x100000, CRC(727c4d02) SHA1(8204c7f037d46e0c58f269f9c7a535bc2589f526) )
+ ROM_LOAD16_BYTE( "082-c8.c8", 0xc00001, 0x100000, CRC(69a5fa37) SHA1(020e70e0e8b3c5d00a40fe97e418115a3187e50a) )
+ROM_END
+
+ROM_START( dbdqp ) /* Double Dragon (Neo-Geo) - Hack by Creamymami - (The character is the Q - version - after hitting ultra kill is max) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "082qp.p1", 0x100000, 0x100000, CRC(b5d47143) SHA1(B9C211E0883C59C039954CC98E693D1245137C2F) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "082-s1.s1", CRC(bef995c5) SHA1(9c89adbdaa5c1f827632c701688563dac2e482a4) )
+
+ NEO_BIOS_AUDIO_128K( "082-m1.m1", CRC(10b144de) SHA1(cf1ed0a447da68240c62bcfd76b1569803f6bf76) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "082-v1.v1", 0x000000, 0x200000, CRC(cc1128e4) SHA1(bfcfff24bc7fbde0b02b1bc0dffebd5270a0eb04) )
+ ROM_LOAD( "082-v2.v2", 0x200000, 0x200000, CRC(c3ff5554) SHA1(c685887ad64998e5572607a916b023f8b9efac49) )
+
+ ROM_REGION( 0xe00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "082-c1.c1", 0x000000, 0x200000, CRC(b478c725) SHA1(3a777c5906220f246a6dc06cb084e6ad650d67bb) )
+ ROM_LOAD16_BYTE( "082-c2.c2", 0x000001, 0x200000, CRC(2857da32) SHA1(9f13245965d23db86d46d7e73dfb6cc63e6f25a1) )
+ ROM_LOAD16_BYTE( "082-c3.c3", 0x400000, 0x200000, CRC(8b0d378e) SHA1(3a347215e414b738164f1fe4144102f07d4ffb80) )
+ ROM_LOAD16_BYTE( "082-c4.c4", 0x400001, 0x200000, CRC(c7d2f596) SHA1(e2d09d4d1b1fef9c0c53ecf3629e974b75e559f5) )
+ ROM_LOAD16_BYTE( "082-c5.c5", 0x800000, 0x200000, CRC(ec87bff6) SHA1(3fa86da93881158c2c23443855922a7b32e55135) )
+ ROM_LOAD16_BYTE( "082-c6.c6", 0x800001, 0x200000, CRC(844a8a11) SHA1(b2acbd4cacce66fb32c052b2fba9984904679bda) )
+ ROM_LOAD16_BYTE( "082-c7.c7", 0xc00000, 0x100000, CRC(727c4d02) SHA1(8204c7f037d46e0c58f269f9c7a535bc2589f526) )
+ ROM_LOAD16_BYTE( "082-c8.c8", 0xc00001, 0x100000, CRC(69a5fa37) SHA1(020e70e0e8b3c5d00a40fe97e418115a3187e50a) )
+ROM_END
+
+ROM_START( dbdy ) /* Double Dragon (Neo-Geo) - Hack by Ydmis - (Can select Shuko and Duke - game is always in AES mode) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "082y.p1", 0x100000, 0x100000, CRC(2ab6a95a) SHA1(F2FEC024DAB20A3B5A444BC431377531598D27FA) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "082-s1.s1", CRC(bef995c5) SHA1(9c89adbdaa5c1f827632c701688563dac2e482a4) )
+
+ NEO_BIOS_AUDIO_128K( "082-m1.m1", CRC(10b144de) SHA1(cf1ed0a447da68240c62bcfd76b1569803f6bf76) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "082-v1.v1", 0x000000, 0x200000, CRC(cc1128e4) SHA1(bfcfff24bc7fbde0b02b1bc0dffebd5270a0eb04) )
+ ROM_LOAD( "082-v2.v2", 0x200000, 0x200000, CRC(c3ff5554) SHA1(c685887ad64998e5572607a916b023f8b9efac49) )
+
+ ROM_REGION( 0xe00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "082-c1.c1", 0x000000, 0x200000, CRC(b478c725) SHA1(3a777c5906220f246a6dc06cb084e6ad650d67bb) )
+ ROM_LOAD16_BYTE( "082-c2.c2", 0x000001, 0x200000, CRC(2857da32) SHA1(9f13245965d23db86d46d7e73dfb6cc63e6f25a1) )
+ ROM_LOAD16_BYTE( "082-c3.c3", 0x400000, 0x200000, CRC(8b0d378e) SHA1(3a347215e414b738164f1fe4144102f07d4ffb80) )
+ ROM_LOAD16_BYTE( "082-c4.c4", 0x400001, 0x200000, CRC(c7d2f596) SHA1(e2d09d4d1b1fef9c0c53ecf3629e974b75e559f5) )
+ ROM_LOAD16_BYTE( "082-c5.c5", 0x800000, 0x200000, CRC(ec87bff6) SHA1(3fa86da93881158c2c23443855922a7b32e55135) )
+ ROM_LOAD16_BYTE( "082-c6.c6", 0x800001, 0x200000, CRC(844a8a11) SHA1(b2acbd4cacce66fb32c052b2fba9984904679bda) )
+ ROM_LOAD16_BYTE( "082-c7.c7", 0xc00000, 0x100000, CRC(727c4d02) SHA1(8204c7f037d46e0c58f269f9c7a535bc2589f526) )
+ ROM_LOAD16_BYTE( "082-c8.c8", 0xc00001, 0x100000, CRC(69a5fa37) SHA1(020e70e0e8b3c5d00a40fe97e418115a3187e50a) )
+ROM_END
+
+ROM_START( doubledre2 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "082e2.p1", 0x100000, 0x100000, CRC(dd7f0c5f) SHA1(2f38ec25031407ba81a37ca6360c83a9c57e9cc0) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "082-s1.s1", CRC(bef995c5) SHA1(9c89adbdaa5c1f827632c701688563dac2e482a4) )
+
+ NEO_BIOS_AUDIO_128K( "082-m1.m1", CRC(10b144de) SHA1(cf1ed0a447da68240c62bcfd76b1569803f6bf76) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "082-v1.v1", 0x000000, 0x200000, CRC(cc1128e4) SHA1(bfcfff24bc7fbde0b02b1bc0dffebd5270a0eb04) )
+ ROM_LOAD( "082-v2.v2", 0x200000, 0x200000, CRC(c3ff5554) SHA1(c685887ad64998e5572607a916b023f8b9efac49) )
+
+ ROM_REGION( 0xe00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "082-c1.c1", 0x000000, 0x200000, CRC(b478c725) SHA1(3a777c5906220f246a6dc06cb084e6ad650d67bb) )
+ ROM_LOAD16_BYTE( "082-c2.c2", 0x000001, 0x200000, CRC(2857da32) SHA1(9f13245965d23db86d46d7e73dfb6cc63e6f25a1) )
+ ROM_LOAD16_BYTE( "082-c3.c3", 0x400000, 0x200000, CRC(8b0d378e) SHA1(3a347215e414b738164f1fe4144102f07d4ffb80) )
+ ROM_LOAD16_BYTE( "082-c4.c4", 0x400001, 0x200000, CRC(c7d2f596) SHA1(e2d09d4d1b1fef9c0c53ecf3629e974b75e559f5) )
+ ROM_LOAD16_BYTE( "082-c5.c5", 0x800000, 0x200000, CRC(ec87bff6) SHA1(3fa86da93881158c2c23443855922a7b32e55135) )
+ ROM_LOAD16_BYTE( "082-c6.c6", 0x800001, 0x200000, CRC(844a8a11) SHA1(b2acbd4cacce66fb32c052b2fba9984904679bda) )
+ ROM_LOAD16_BYTE( "082-c7.c7", 0xc00000, 0x100000, CRC(727c4d02) SHA1(8204c7f037d46e0c58f269f9c7a535bc2589f526) )
+ ROM_LOAD16_BYTE( "082-c8.c8", 0xc00001, 0x100000, CRC(69a5fa37) SHA1(020e70e0e8b3c5d00a40fe97e418115a3187e50a) )
+ROM_END
+
+ROM_START( doubledres )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "082es.p1", 0x100000, 0x100000, CRC(6f4ced99) SHA1(fc272ceeda3d2e43f58fff302ea8df62533e3bd0) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "082-s1.s1", CRC(bef995c5) SHA1(9c89adbdaa5c1f827632c701688563dac2e482a4) )
+
+ NEO_BIOS_AUDIO_128K( "082-m1.m1", CRC(10b144de) SHA1(cf1ed0a447da68240c62bcfd76b1569803f6bf76) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "082-v1.v1", 0x000000, 0x200000, CRC(cc1128e4) SHA1(bfcfff24bc7fbde0b02b1bc0dffebd5270a0eb04) )
+ ROM_LOAD( "082-v2.v2", 0x200000, 0x200000, CRC(c3ff5554) SHA1(c685887ad64998e5572607a916b023f8b9efac49) )
+
+ ROM_REGION( 0xe00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "082-c1.c1", 0x000000, 0x200000, CRC(b478c725) SHA1(3a777c5906220f246a6dc06cb084e6ad650d67bb) )
+ ROM_LOAD16_BYTE( "082-c2.c2", 0x000001, 0x200000, CRC(2857da32) SHA1(9f13245965d23db86d46d7e73dfb6cc63e6f25a1) )
+ ROM_LOAD16_BYTE( "082-c3.c3", 0x400000, 0x200000, CRC(8b0d378e) SHA1(3a347215e414b738164f1fe4144102f07d4ffb80) )
+ ROM_LOAD16_BYTE( "082-c4.c4", 0x400001, 0x200000, CRC(c7d2f596) SHA1(e2d09d4d1b1fef9c0c53ecf3629e974b75e559f5) )
+ ROM_LOAD16_BYTE( "082-c5.c5", 0x800000, 0x200000, CRC(ec87bff6) SHA1(3fa86da93881158c2c23443855922a7b32e55135) )
+ ROM_LOAD16_BYTE( "082-c6.c6", 0x800001, 0x200000, CRC(844a8a11) SHA1(b2acbd4cacce66fb32c052b2fba9984904679bda) )
+ ROM_LOAD16_BYTE( "082-c7.c7", 0xc00000, 0x100000, CRC(727c4d02) SHA1(8204c7f037d46e0c58f269f9c7a535bc2589f526) )
+ ROM_LOAD16_BYTE( "082-c8.c8", 0xc00001, 0x100000, CRC(69a5fa37) SHA1(020e70e0e8b3c5d00a40fe97e418115a3187e50a) )
+ROM_END
+
+ROM_START( doubledrhp )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "082hp.p1", 0x100000, 0x100000, CRC(1ca0941f) SHA1(40de27c5019059ed97b3bd7d8178e64709513114) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "082-s1.s1", CRC(bef995c5) SHA1(9c89adbdaa5c1f827632c701688563dac2e482a4) )
+
+ NEO_BIOS_AUDIO_128K( "082-m1.m1", CRC(10b144de) SHA1(cf1ed0a447da68240c62bcfd76b1569803f6bf76) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "082-v1.v1", 0x000000, 0x200000, CRC(cc1128e4) SHA1(bfcfff24bc7fbde0b02b1bc0dffebd5270a0eb04) )
+ ROM_LOAD( "082-v2.v2", 0x200000, 0x200000, CRC(c3ff5554) SHA1(c685887ad64998e5572607a916b023f8b9efac49) )
+
+ ROM_REGION( 0xe00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "082-c1.c1", 0x000000, 0x200000, CRC(b478c725) SHA1(3a777c5906220f246a6dc06cb084e6ad650d67bb) )
+ ROM_LOAD16_BYTE( "082-c2.c2", 0x000001, 0x200000, CRC(2857da32) SHA1(9f13245965d23db86d46d7e73dfb6cc63e6f25a1) )
+ ROM_LOAD16_BYTE( "082-c3.c3", 0x400000, 0x200000, CRC(8b0d378e) SHA1(3a347215e414b738164f1fe4144102f07d4ffb80) )
+ ROM_LOAD16_BYTE( "082-c4.c4", 0x400001, 0x200000, CRC(c7d2f596) SHA1(e2d09d4d1b1fef9c0c53ecf3629e974b75e559f5) )
+ ROM_LOAD16_BYTE( "082-c5.c5", 0x800000, 0x200000, CRC(ec87bff6) SHA1(3fa86da93881158c2c23443855922a7b32e55135) )
+ ROM_LOAD16_BYTE( "082-c6.c6", 0x800001, 0x200000, CRC(844a8a11) SHA1(b2acbd4cacce66fb32c052b2fba9984904679bda) )
+ ROM_LOAD16_BYTE( "082-c7.c7", 0xc00000, 0x100000, CRC(727c4d02) SHA1(8204c7f037d46e0c58f269f9c7a535bc2589f526) )
+ ROM_LOAD16_BYTE( "082-c8.c8", 0xc00001, 0x100000, CRC(69a5fa37) SHA1(020e70e0e8b3c5d00a40fe97e418115a3187e50a) )
+ROM_END
+
+ROM_START( doubledrsp )
+ ROM_REGION( 0x220000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "082sp.p1", 0x000000, 0x100000, CRC(8ea8ee3d) SHA1(4cc513f9021a5a6bfe29ebf2773847c674f7921b) )
+ ROM_LOAD16_WORD_SWAP( "082sp.p2", 0x100000, 0x100000, CRC(0e2616ab) SHA1(cfe5ed1ec76e21dd833e8297a6dbb30ce407ab2d) )
+ ROM_LOAD16_WORD_SWAP( "082sp.p3", 0x200000, 0x020000, CRC(8b4839c4) SHA1(6c0357f8455bc4a100e1063a5be88c8be388672c) )
+ ROM_FILL(0x844e,1,0x60)
+
+ NEO_SFIX_128K( "082-s1.s1", CRC(bef995c5) SHA1(9c89adbdaa5c1f827632c701688563dac2e482a4) )
+
+ NEO_BIOS_AUDIO_128K( "082-m1.m1", CRC(10b144de) SHA1(cf1ed0a447da68240c62bcfd76b1569803f6bf76) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "082-v1.v1", 0x000000, 0x200000, CRC(cc1128e4) SHA1(bfcfff24bc7fbde0b02b1bc0dffebd5270a0eb04) )
+ ROM_LOAD( "082-v2.v2", 0x200000, 0x200000, CRC(c3ff5554) SHA1(c685887ad64998e5572607a916b023f8b9efac49) )
+
+ ROM_REGION( 0xe00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "082-c1.c1", 0x000000, 0x200000, CRC(b478c725) SHA1(3a777c5906220f246a6dc06cb084e6ad650d67bb) )
+ ROM_LOAD16_BYTE( "082-c2.c2", 0x000001, 0x200000, CRC(2857da32) SHA1(9f13245965d23db86d46d7e73dfb6cc63e6f25a1) )
+ ROM_LOAD16_BYTE( "082-c3.c3", 0x400000, 0x200000, CRC(8b0d378e) SHA1(3a347215e414b738164f1fe4144102f07d4ffb80) )
+ ROM_LOAD16_BYTE( "082-c4.c4", 0x400001, 0x200000, CRC(c7d2f596) SHA1(e2d09d4d1b1fef9c0c53ecf3629e974b75e559f5) )
+ ROM_LOAD16_BYTE( "082sp.c5", 0x800000, 0x200000, CRC(b9c799fe) SHA1(04d44f6fbee4bf6978031d1e148a536b012ecc8d) )
+ ROM_LOAD16_BYTE( "082sp.c6", 0x800001, 0x200000, CRC(11569bc9) SHA1(ef937371e0f62ef8cc3d315aa944cacab798a173) )
+ ROM_LOAD16_BYTE( "082-c7.c7", 0xc00000, 0x100000, CRC(727c4d02) SHA1(8204c7f037d46e0c58f269f9c7a535bc2589f526) )
+ ROM_LOAD16_BYTE( "082-c8.c8", 0xc00001, 0x100000, CRC(69a5fa37) SHA1(020e70e0e8b3c5d00a40fe97e418115a3187e50a) )
+ROM_END
+
+
+
+GAME( 2003, dbdeh, doubledr, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami and Ydmis", "Double Dragon (Add Char - Max ultra kill after hit 2003-04-20)", MACHINE_SUPPORTS_SAVE ) //Based on dbdehy
+GAME( 1995, dbdehy, doubledr, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Double Dragon (Add Char)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, dbdq, doubledr, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami", "Double Dragon (Q-ver Char)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, dbdqb, doubledr, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami and Ydmis", "Double Dragon (Q-ver Char - Add Char)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, dbdqeh, doubledr, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami and Ydmis", "Double Dragon (Q-ver Char - Max ultra kill after hit - Add Char)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, dbdqp, doubledr, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami", "Double Dragon (Q-ver Char - Max ultra kill after hit)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, dbdy, doubledr, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Double Dragon (Add Char - Always in AES mode)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, doubledre2, doubledr, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Double Dragon Q (Boss hack Easy Special Attacks)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, doubledres, doubledr, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Double Dragon (Boss hack Easy Special Attacks)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, doubledrhp, doubledr, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Blackheart", "Double Dragon (Boss Hack Perfect Edition hack by Blackheart 2009-09-19)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, doubledrsp, doubledr, samsho2sp, neogeo, neogeo_state, neogeo, ROT0, "hack", "Double Dragon (Special 2017 v1.0.0311)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/nggaroup.cpp b/docs/release/src/hbmame/drivers/nggaroup.cpp
new file mode 100644
index 00000000000..d0fc2ba1117
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/nggaroup.cpp
@@ -0,0 +1,322 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+// Garou Mark of the Wolves: mostly hacks of the prototype
+
+
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, garoud )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_sma_prot->garou_decrypt_68k(cpuregion);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+ m_sma_prot->garou_install_protection(m_maincpu, m_banked_cart);
+}
+
+
+
+ROM_START( garoub ) // hack of garou
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "kf.neo-sma", 0x0c0000, 0x040000, CRC(98bc93dc) SHA1(01fe3d18b50f770e131e8d8eeff4c630ba8c9551) )
+ ROM_LOAD16_WORD_SWAP( "253-ep1.p1", 0x100000, 0x200000, CRC(ea3171a4) SHA1(bbda40f652baa0dc5fc6a006c001a1bdb0df43f6) )
+ ROM_LOAD16_WORD_SWAP( "253-ep2.p2", 0x300000, 0x200000, CRC(382f704b) SHA1(0ace9c84a8b8a0524fd9a503e7d872de1bf1bd52) )
+ ROM_LOAD16_WORD_SWAP( "253-ep3.p3", 0x500000, 0x200000, CRC(e395bfdd) SHA1(6b50f5ac15bf66b7e4e9bff57594fd3d7530c831) )
+ ROM_LOAD16_WORD_SWAP( "253b.p4", 0x700000, 0x200000, CRC(c1fb6ff4) SHA1(5a907c2c0e8d1fe40f3eecd3b79d97ac8e393940) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "253-m1.m1", CRC(36a806be) SHA1(90fb44dc0c3fb57946a0f35716056abb84a0f191) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "253-v1.v1", 0x000000, 0x400000, CRC(263e388c) SHA1(11f05feee170370c4bfc5053af79246a6e3de5dc) )
+ ROM_LOAD( "253-v2.v2", 0x400000, 0x400000, CRC(2c6bc7be) SHA1(c9c61054ce1a47bf1bf77a31117726b499df24a4) )
+ ROM_LOAD( "253-v3.v3", 0x800000, 0x400000, CRC(0425b27d) SHA1(986863c98fc3445487242dcf2ea75b075e7f33ee) )
+ ROM_LOAD( "253-v4.v4", 0xc00000, 0x400000, CRC(a54be8a9) SHA1(d7123e79b43e8adfaa5ecadbfcbeb6be890ec311) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "253-c1.c1", 0x0000000, 0x800000, CRC(0603e046) SHA1(5ef4557ce90ba65d36129de97be1fdc049c4a3d0) )
+ ROM_LOAD16_BYTE( "253-c2.c2", 0x0000001, 0x800000, CRC(0917d2a4) SHA1(d4ed3a13ae22f880fb399671c1752f1a0283f316) )
+ ROM_LOAD16_BYTE( "253-c3.c3", 0x1000000, 0x800000, CRC(6737c92d) SHA1(678f0c9cc1267bd131546981b9989bfb7289d8ba) )
+ ROM_LOAD16_BYTE( "253-c4.c4", 0x1000001, 0x800000, CRC(5ba92ec6) SHA1(aae36b050a3a0321026a96eba06dd184c0e2acca) )
+ ROM_LOAD16_BYTE( "253-c5.c5", 0x2000000, 0x800000, CRC(3eab5557) SHA1(47c433015aa81a0b0a1d3ee51382c4948b80c023) )
+ ROM_LOAD16_BYTE( "253-c6.c6", 0x2000001, 0x800000, CRC(308d098b) SHA1(b052f1fa9fbc69606004c250e2505360eaa24949) )
+ ROM_LOAD16_BYTE( "253-c7.c7", 0x3000000, 0x800000, CRC(c0e995ae) SHA1(8675ca787d28246174c313167f82557f021366fc) )
+ ROM_LOAD16_BYTE( "253-c8.c8", 0x3000001, 0x800000, CRC(21a11303) SHA1(fd61221ad257c185ef5c1f9694bd6b840b591af3) )
+ROM_END
+
+ROM_START( garoud )
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "kf.neo-sma", 0x0c0000, 0x040000, CRC(98bc93dc) SHA1(01fe3d18b50f770e131e8d8eeff4c630ba8c9551) )
+ ROM_LOAD16_WORD_SWAP( "253-ep1.p1", 0x100000, 0x200000, CRC(ea3171a4) SHA1(bbda40f652baa0dc5fc6a006c001a1bdb0df43f6) )
+ ROM_LOAD16_WORD_SWAP( "253-ep2.p2", 0x300000, 0x200000, CRC(382f704b) SHA1(0ace9c84a8b8a0524fd9a503e7d872de1bf1bd52) )
+ ROM_LOAD16_WORD_SWAP( "253-ep3.p3", 0x500000, 0x200000, CRC(e395bfdd) SHA1(6b50f5ac15bf66b7e4e9bff57594fd3d7530c831) )
+ ROM_LOAD16_WORD_SWAP( "253-ep4.p4", 0x700000, 0x200000, CRC(da92c08e) SHA1(5556f983ebcebc33160e90a6a6cf589d54c8cedc) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "253-m1.m1", CRC(36a806be) SHA1(90fb44dc0c3fb57946a0f35716056abb84a0f191) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "253-v1.v1", 0x000000, 0x400000, CRC(263e388c) SHA1(11f05feee170370c4bfc5053af79246a6e3de5dc) )
+ ROM_LOAD( "253-v2.v2", 0x400000, 0x400000, CRC(2c6bc7be) SHA1(c9c61054ce1a47bf1bf77a31117726b499df24a4) )
+ ROM_LOAD( "253-v3.v3", 0x800000, 0x400000, CRC(0425b27d) SHA1(986863c98fc3445487242dcf2ea75b075e7f33ee) )
+ ROM_LOAD( "253-v4.v4", 0xc00000, 0x400000, CRC(a54be8a9) SHA1(d7123e79b43e8adfaa5ecadbfcbeb6be890ec311) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "253d.c1", 0x0000000, 0x800000, CRC(497be3f2) SHA1(3b4e524ff185db326cdefe115851ce282272fb58) )
+ ROM_LOAD16_BYTE( "253d.c2", 0x0000001, 0x800000, CRC(6a9e95ca) SHA1(d9730d2db58edfa660edab5bf0f7fc3ed058bccf) )
+ ROM_LOAD16_BYTE( "253d.c3", 0x1000000, 0x800000, CRC(39373d2f) SHA1(8c0307150bc31001605efbe0e38ae74e1e466d5d) )
+ ROM_LOAD16_BYTE( "253d.c4", 0x1000001, 0x800000, CRC(4de23f6c) SHA1(b40bce471fb1815037e4c3705f8238e659a13a82) )
+ ROM_LOAD16_BYTE( "253d.c5", 0x2000000, 0x800000, CRC(16634ba5) SHA1(e51649efd039270139aa7292a28925e547b2be59) )
+ ROM_LOAD16_BYTE( "253d.c6", 0x2000001, 0x800000, CRC(95671ffd) SHA1(803ebeb74fefe88b9aba53cbca103c0e9145abcb) )
+ ROM_LOAD16_BYTE( "253d.c7", 0x3000000, 0x800000, CRC(e36ce77f) SHA1(71931559293182749ded13c52d8bac988a3a062f) )
+ ROM_LOAD16_BYTE( "253d.c8", 0x3000001, 0x800000, CRC(ddbd1096) SHA1(634cfb61398b3f1b983f7f3966b53f4cc3a78671) )
+ROM_END
+
+ROM_START( garoupamu ) /* Garou: Mark of the Wolves PROTOTYPE - Fix by MU - (Approach to Arcade by MU Version 5.0a) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "253pamu.p1", 0x000000, 0x100000, CRC(d5c54453) SHA1(A7FE7AB68161583E10397B1B1B30299BE93AE90C) )
+ ROM_LOAD16_WORD_SWAP( "proto_253-p2.p2", 0x100000, 0x400000, CRC(bf8de565) SHA1(0e24574168cd38138bed0aa4dca49849f6901ca2) )
+
+ NEO_SFIX_128K( "proto_253-s1.s1", CRC(779989de) SHA1(8bd550857b60f8a907f6d39a4225ceffdd330307) )
+
+ NEO_BIOS_AUDIO_256K( "proto_253-m1.m1", CRC(bbe464f7) SHA1(f5f8f3e48f5d453f45107085d6f4023bcd24c053) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "proto_253-v1.v1", 0x000000, 0x400000, CRC(274f3923) SHA1(4c7a8ad1cd0e3afc1f78de3c2929120ed434f104) )
+ ROM_LOAD( "proto_253-v2.v2", 0x400000, 0x400000, CRC(8f86dabe) SHA1(b3d2d9f5c1d97a6e7aee2c674fb6627f41bbb240) )
+ ROM_LOAD( "proto_253-v3.v3", 0x800000, 0x400000, CRC(05fd06cd) SHA1(6cd699719614bb87547632ea3d61d92d81fdf563) )
+ ROM_LOAD( "proto_253-v4.v4", 0xc00000, 0x400000, CRC(14984063) SHA1(170d5638327ec0eb3590b80dc11590897367250c) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_253-c1.c1", 0x0000000, 0x800000, CRC(5bb5d137) SHA1(d648febd8e6a0bdd9bdbb6ce1f1f8b08567ec05a) )
+ ROM_LOAD16_BYTE( "proto_253-c2.c2", 0x0000001, 0x800000, CRC(5c8d2960) SHA1(f7503502be0332adf408ee0ea5ee5161c8939fd8) )
+ ROM_LOAD16_BYTE( "proto_253-c3.c3", 0x1000000, 0x800000, CRC(234d16fc) SHA1(7b9221f7ecc438150c8a10be72390329854ed21b) )
+ ROM_LOAD16_BYTE( "proto_253-c4.c4", 0x1000001, 0x800000, CRC(b9b5b993) SHA1(6059793eaf6e58c172235fe64aa9d25a40c38ed6) )
+ ROM_LOAD16_BYTE( "proto_253-c5.c5", 0x2000000, 0x800000, CRC(722615d2) SHA1(798832c535869f0e247c3db0d8253779b103e213) )
+ ROM_LOAD16_BYTE( "proto_253-c6.c6", 0x2000001, 0x800000, CRC(0a6fab38) SHA1(eaee6f2f18af91f7959d84d4b991b3fc182d07c4) )
+ ROM_LOAD16_BYTE( "proto_253-c7.c7", 0x3000000, 0x800000, CRC(d68e806f) SHA1(92bfd9839115bd590972ae4ecc45ad35dce22387) )
+ ROM_LOAD16_BYTE( "proto_253-c8.c8", 0x3000001, 0x800000, CRC(f778fe99) SHA1(c963f6ba90a36d02991728b44ffcf174ca18268a) )
+ROM_END
+
+ROM_START( garoupeh ) /* Garou: Mark of the Wolves PROTOTYPE - Enhance by Ydmis - (In MVS mode can choose Kain and Grant) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "253peh.p1", 0x000000, 0x100000, CRC(61c65b05) SHA1(0159D181EEC3346C53C411BCFB9A3F17781FD7BC) )
+ ROM_LOAD16_WORD_SWAP( "proto_253-p2.p2", 0x100000, 0x400000, CRC(bf8de565) SHA1(0e24574168cd38138bed0aa4dca49849f6901ca2) )
+
+ NEO_SFIX_128K( "proto_253-s1.s1", CRC(779989de) SHA1(8bd550857b60f8a907f6d39a4225ceffdd330307) )
+
+ NEO_BIOS_AUDIO_256K( "proto_253-m1.m1", CRC(bbe464f7) SHA1(f5f8f3e48f5d453f45107085d6f4023bcd24c053) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "proto_253-v1.v1", 0x000000, 0x400000, CRC(274f3923) SHA1(4c7a8ad1cd0e3afc1f78de3c2929120ed434f104) )
+ ROM_LOAD( "proto_253-v2.v2", 0x400000, 0x400000, CRC(8f86dabe) SHA1(b3d2d9f5c1d97a6e7aee2c674fb6627f41bbb240) )
+ ROM_LOAD( "proto_253-v3.v3", 0x800000, 0x400000, CRC(05fd06cd) SHA1(6cd699719614bb87547632ea3d61d92d81fdf563) )
+ ROM_LOAD( "proto_253-v4.v4", 0xc00000, 0x400000, CRC(14984063) SHA1(170d5638327ec0eb3590b80dc11590897367250c) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_253-c1.c1", 0x0000000, 0x800000, CRC(5bb5d137) SHA1(d648febd8e6a0bdd9bdbb6ce1f1f8b08567ec05a) )
+ ROM_LOAD16_BYTE( "proto_253-c2.c2", 0x0000001, 0x800000, CRC(5c8d2960) SHA1(f7503502be0332adf408ee0ea5ee5161c8939fd8) )
+ ROM_LOAD16_BYTE( "proto_253-c3.c3", 0x1000000, 0x800000, CRC(234d16fc) SHA1(7b9221f7ecc438150c8a10be72390329854ed21b) )
+ ROM_LOAD16_BYTE( "proto_253-c4.c4", 0x1000001, 0x800000, CRC(b9b5b993) SHA1(6059793eaf6e58c172235fe64aa9d25a40c38ed6) )
+ ROM_LOAD16_BYTE( "proto_253-c5.c5", 0x2000000, 0x800000, CRC(722615d2) SHA1(798832c535869f0e247c3db0d8253779b103e213) )
+ ROM_LOAD16_BYTE( "proto_253-c6.c6", 0x2000001, 0x800000, CRC(0a6fab38) SHA1(eaee6f2f18af91f7959d84d4b991b3fc182d07c4) )
+ ROM_LOAD16_BYTE( "proto_253-c7.c7", 0x3000000, 0x800000, CRC(d68e806f) SHA1(92bfd9839115bd590972ae4ecc45ad35dce22387) )
+ ROM_LOAD16_BYTE( "proto_253-c8.c8", 0x3000001, 0x800000, CRC(f778fe99) SHA1(c963f6ba90a36d02991728b44ffcf174ca18268a) )
+ROM_END
+
+ROM_START( garoupehc ) /* Garou: Mark of the Wolves PROTOTYPE - Enhance by Creamymami and Ydmis - (In MVS mode can choose Kain and Grant - power hack) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "253pehc.p1", 0x000000, 0x100000, CRC(46b087b7) SHA1(236C8EC295A7380101BE27C5ED472617380A87A6) )
+ ROM_LOAD16_WORD_SWAP( "proto_253-p2.p2", 0x100000, 0x400000, CRC(bf8de565) SHA1(0e24574168cd38138bed0aa4dca49849f6901ca2) )
+
+ NEO_SFIX_128K( "proto_253-s1.s1", CRC(779989de) SHA1(8bd550857b60f8a907f6d39a4225ceffdd330307) )
+
+ NEO_BIOS_AUDIO_256K( "proto_253-m1.m1", CRC(bbe464f7) SHA1(f5f8f3e48f5d453f45107085d6f4023bcd24c053) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "proto_253-v1.v1", 0x000000, 0x400000, CRC(274f3923) SHA1(4c7a8ad1cd0e3afc1f78de3c2929120ed434f104) )
+ ROM_LOAD( "proto_253-v2.v2", 0x400000, 0x400000, CRC(8f86dabe) SHA1(b3d2d9f5c1d97a6e7aee2c674fb6627f41bbb240) )
+ ROM_LOAD( "proto_253-v3.v3", 0x800000, 0x400000, CRC(05fd06cd) SHA1(6cd699719614bb87547632ea3d61d92d81fdf563) )
+ ROM_LOAD( "proto_253-v4.v4", 0xc00000, 0x400000, CRC(14984063) SHA1(170d5638327ec0eb3590b80dc11590897367250c) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_253-c1.c1", 0x0000000, 0x800000, CRC(5bb5d137) SHA1(d648febd8e6a0bdd9bdbb6ce1f1f8b08567ec05a) )
+ ROM_LOAD16_BYTE( "proto_253-c2.c2", 0x0000001, 0x800000, CRC(5c8d2960) SHA1(f7503502be0332adf408ee0ea5ee5161c8939fd8) )
+ ROM_LOAD16_BYTE( "proto_253-c3.c3", 0x1000000, 0x800000, CRC(234d16fc) SHA1(7b9221f7ecc438150c8a10be72390329854ed21b) )
+ ROM_LOAD16_BYTE( "proto_253-c4.c4", 0x1000001, 0x800000, CRC(b9b5b993) SHA1(6059793eaf6e58c172235fe64aa9d25a40c38ed6) )
+ ROM_LOAD16_BYTE( "proto_253-c5.c5", 0x2000000, 0x800000, CRC(722615d2) SHA1(798832c535869f0e247c3db0d8253779b103e213) )
+ ROM_LOAD16_BYTE( "proto_253-c6.c6", 0x2000001, 0x800000, CRC(0a6fab38) SHA1(eaee6f2f18af91f7959d84d4b991b3fc182d07c4) )
+ ROM_LOAD16_BYTE( "proto_253-c7.c7", 0x3000000, 0x800000, CRC(d68e806f) SHA1(92bfd9839115bd590972ae4ecc45ad35dce22387) )
+ ROM_LOAD16_BYTE( "proto_253-c8.c8", 0x3000001, 0x800000, CRC(f778fe99) SHA1(c963f6ba90a36d02991728b44ffcf174ca18268a) )
+ROM_END
+
+ROM_START( garoupf ) /* Garou: Mark of the Wolves PROTOTYPE - Fix by UNKNOWN - (Fixed winning message, sprites and some bugs for prototype - from Mame32+ IPS collection) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "253pf.p1", 0x000000, 0x100000, CRC(124bdbf7) SHA1(81F4BC87AA6B7D34ECF4BEDF0BAA8AEB5B2E179A) )
+ ROM_LOAD16_WORD_SWAP( "253pf.p2", 0x100000, 0x400000, CRC(19eb641b) SHA1(114BE5C20142223CF6BB0938AA3B07B61E3243E1) )
+
+ NEO_SFIX_128K( "proto_253-s1.s1", CRC(779989de) SHA1(8bd550857b60f8a907f6d39a4225ceffdd330307) )
+
+ NEO_BIOS_AUDIO_256K( "proto_253-m1.m1", CRC(bbe464f7) SHA1(f5f8f3e48f5d453f45107085d6f4023bcd24c053) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "proto_253-v1.v1", 0x000000, 0x400000, CRC(274f3923) SHA1(4c7a8ad1cd0e3afc1f78de3c2929120ed434f104) )
+ ROM_LOAD( "proto_253-v2.v2", 0x400000, 0x400000, CRC(8f86dabe) SHA1(b3d2d9f5c1d97a6e7aee2c674fb6627f41bbb240) )
+ ROM_LOAD( "proto_253-v3.v3", 0x800000, 0x400000, CRC(05fd06cd) SHA1(6cd699719614bb87547632ea3d61d92d81fdf563) )
+ ROM_LOAD( "proto_253-v4.v4", 0xc00000, 0x400000, CRC(14984063) SHA1(170d5638327ec0eb3590b80dc11590897367250c) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_253-c1.c1", 0x0000000, 0x800000, CRC(5bb5d137) SHA1(d648febd8e6a0bdd9bdbb6ce1f1f8b08567ec05a) )
+ ROM_LOAD16_BYTE( "proto_253-c2.c2", 0x0000001, 0x800000, CRC(5c8d2960) SHA1(f7503502be0332adf408ee0ea5ee5161c8939fd8) )
+ ROM_LOAD16_BYTE( "proto_253-c3.c3", 0x1000000, 0x800000, CRC(234d16fc) SHA1(7b9221f7ecc438150c8a10be72390329854ed21b) )
+ ROM_LOAD16_BYTE( "proto_253-c4.c4", 0x1000001, 0x800000, CRC(b9b5b993) SHA1(6059793eaf6e58c172235fe64aa9d25a40c38ed6) )
+ ROM_LOAD16_BYTE( "proto_253-c5.c5", 0x2000000, 0x800000, CRC(722615d2) SHA1(798832c535869f0e247c3db0d8253779b103e213) )
+ ROM_LOAD16_BYTE( "proto_253-c6.c6", 0x2000001, 0x800000, CRC(0a6fab38) SHA1(eaee6f2f18af91f7959d84d4b991b3fc182d07c4) )
+ ROM_LOAD16_BYTE( "proto_253-c7.c7", 0x3000000, 0x800000, CRC(d68e806f) SHA1(92bfd9839115bd590972ae4ecc45ad35dce22387) )
+ ROM_LOAD16_BYTE( "proto_253-c8.c8", 0x3000001, 0x800000, CRC(f778fe99) SHA1(c963f6ba90a36d02991728b44ffcf174ca18268a) )
+ROM_END
+
+ROM_START( garoupfp ) /* Garou: Mark of the Wolves PROTOTYPE - (garoupfp) - Fix by UNKNOWN (Rom fix - FIXPLUS) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "253pfp.p1", 0x000000, 0x100000, CRC(0b23e2cb) SHA1(B61730457EFEBFFC4A1F5A31FEFBAF2E4CC8F49E) )
+ ROM_LOAD16_WORD_SWAP( "proto_253-p2.p2", 0x100000, 0x400000, CRC(bf8de565) SHA1(0e24574168cd38138bed0aa4dca49849f6901ca2) )
+
+ NEO_SFIX_128K( "proto_253-s1.s1", CRC(779989de) SHA1(8bd550857b60f8a907f6d39a4225ceffdd330307) )
+
+ NEO_BIOS_AUDIO_256K( "proto_253-m1.m1", CRC(bbe464f7) SHA1(f5f8f3e48f5d453f45107085d6f4023bcd24c053) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "proto_253-v1.v1", 0x000000, 0x400000, CRC(274f3923) SHA1(4c7a8ad1cd0e3afc1f78de3c2929120ed434f104) )
+ ROM_LOAD( "proto_253-v2.v2", 0x400000, 0x400000, CRC(8f86dabe) SHA1(b3d2d9f5c1d97a6e7aee2c674fb6627f41bbb240) )
+ ROM_LOAD( "proto_253-v3.v3", 0x800000, 0x400000, CRC(05fd06cd) SHA1(6cd699719614bb87547632ea3d61d92d81fdf563) )
+ ROM_LOAD( "proto_253-v4.v4", 0xc00000, 0x400000, CRC(14984063) SHA1(170d5638327ec0eb3590b80dc11590897367250c) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_253-c1.c1", 0x0000000, 0x800000, CRC(5bb5d137) SHA1(d648febd8e6a0bdd9bdbb6ce1f1f8b08567ec05a) )
+ ROM_LOAD16_BYTE( "proto_253-c2.c2", 0x0000001, 0x800000, CRC(5c8d2960) SHA1(f7503502be0332adf408ee0ea5ee5161c8939fd8) )
+ ROM_LOAD16_BYTE( "proto_253-c3.c3", 0x1000000, 0x800000, CRC(234d16fc) SHA1(7b9221f7ecc438150c8a10be72390329854ed21b) )
+ ROM_LOAD16_BYTE( "proto_253-c4.c4", 0x1000001, 0x800000, CRC(b9b5b993) SHA1(6059793eaf6e58c172235fe64aa9d25a40c38ed6) )
+ ROM_LOAD16_BYTE( "proto_253-c5.c5", 0x2000000, 0x800000, CRC(722615d2) SHA1(798832c535869f0e247c3db0d8253779b103e213) )
+ ROM_LOAD16_BYTE( "proto_253-c6.c6", 0x2000001, 0x800000, CRC(0a6fab38) SHA1(eaee6f2f18af91f7959d84d4b991b3fc182d07c4) )
+ ROM_LOAD16_BYTE( "proto_253-c7.c7", 0x3000000, 0x800000, CRC(d68e806f) SHA1(92bfd9839115bd590972ae4ecc45ad35dce22387) )
+ ROM_LOAD16_BYTE( "proto_253-c8.c8", 0x3000001, 0x800000, CRC(f778fe99) SHA1(c963f6ba90a36d02991728b44ffcf174ca18268a) )
+ROM_END
+
+ROM_START( garoupfu ) /* Garou: Mark of the Wolves PROTOTYPE - Fix by UNKNOWN - (Unknown Prototype Hack/Fix) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "253pfu.p1", 0x000000, 0x100000, CRC(3f41581e) SHA1(F62C64529A79C8867B789BC655182D702824464C) )
+ ROM_LOAD16_WORD_SWAP( "253pfu.p2", 0x100000, 0x400000, CRC(cf4b3903) SHA1(CFC00DC3EB0F6D566C3F5DD8EC0D6B4440E17AAE) )
+
+ NEO_SFIX_128K( "proto_253-s1.s1", CRC(779989de) SHA1(8bd550857b60f8a907f6d39a4225ceffdd330307) )
+
+ NEO_BIOS_AUDIO_256K( "proto_253-m1.m1", CRC(bbe464f7) SHA1(f5f8f3e48f5d453f45107085d6f4023bcd24c053) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "proto_253-v1.v1", 0x000000, 0x400000, CRC(274f3923) SHA1(4c7a8ad1cd0e3afc1f78de3c2929120ed434f104) )
+ ROM_LOAD( "proto_253-v2.v2", 0x400000, 0x400000, CRC(8f86dabe) SHA1(b3d2d9f5c1d97a6e7aee2c674fb6627f41bbb240) )
+ ROM_LOAD( "proto_253-v3.v3", 0x800000, 0x400000, CRC(05fd06cd) SHA1(6cd699719614bb87547632ea3d61d92d81fdf563) )
+ ROM_LOAD( "proto_253-v4.v4", 0xc00000, 0x400000, CRC(14984063) SHA1(170d5638327ec0eb3590b80dc11590897367250c) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_253-c1.c1", 0x0000000, 0x800000, CRC(5bb5d137) SHA1(d648febd8e6a0bdd9bdbb6ce1f1f8b08567ec05a) )
+ ROM_LOAD16_BYTE( "proto_253-c2.c2", 0x0000001, 0x800000, CRC(5c8d2960) SHA1(f7503502be0332adf408ee0ea5ee5161c8939fd8) )
+ ROM_LOAD16_BYTE( "proto_253-c3.c3", 0x1000000, 0x800000, CRC(234d16fc) SHA1(7b9221f7ecc438150c8a10be72390329854ed21b) )
+ ROM_LOAD16_BYTE( "proto_253-c4.c4", 0x1000001, 0x800000, CRC(b9b5b993) SHA1(6059793eaf6e58c172235fe64aa9d25a40c38ed6) )
+ ROM_LOAD16_BYTE( "proto_253-c5.c5", 0x2000000, 0x800000, CRC(722615d2) SHA1(798832c535869f0e247c3db0d8253779b103e213) )
+ ROM_LOAD16_BYTE( "proto_253-c6.c6", 0x2000001, 0x800000, CRC(0a6fab38) SHA1(eaee6f2f18af91f7959d84d4b991b3fc182d07c4) )
+ ROM_LOAD16_BYTE( "proto_253-c7.c7", 0x3000000, 0x800000, CRC(d68e806f) SHA1(92bfd9839115bd590972ae4ecc45ad35dce22387) )
+ ROM_LOAD16_BYTE( "proto_253-c8.c8", 0x3000001, 0x800000, CRC(f778fe99) SHA1(c963f6ba90a36d02991728b44ffcf174ca18268a) )
+ROM_END
+
+ROM_START( garoupx11 ) // all confirmed
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "253px11.p1", 0x000000, 0x100000, CRC(7a5e411e) SHA1(e56c518e1496948d882721d393e6e95b74cf95f4) )
+ ROM_LOAD16_WORD_SWAP( "253px11.p2", 0x100000, 0x400000, CRC(1eeecc14) SHA1(f42cfcaf10a2c8454bf90e53fa51c1c5c23b26de) )
+
+ NEO_SFIX_128K( "proto_253-s1.s1", CRC(779989de) SHA1(8bd550857b60f8a907f6d39a4225ceffdd330307) )
+
+ NEO_BIOS_AUDIO_256K( "proto_253-m1.m1", CRC(bbe464f7) SHA1(f5f8f3e48f5d453f45107085d6f4023bcd24c053) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "proto_253-v1.v1", 0x000000, 0x400000, CRC(274f3923) SHA1(4c7a8ad1cd0e3afc1f78de3c2929120ed434f104) )
+ ROM_LOAD( "proto_253-v2.v2", 0x400000, 0x400000, CRC(8f86dabe) SHA1(b3d2d9f5c1d97a6e7aee2c674fb6627f41bbb240) )
+ ROM_LOAD( "proto_253-v3.v3", 0x800000, 0x400000, CRC(05fd06cd) SHA1(6cd699719614bb87547632ea3d61d92d81fdf563) )
+ ROM_LOAD( "proto_253-v4.v4", 0xc00000, 0x400000, CRC(14984063) SHA1(170d5638327ec0eb3590b80dc11590897367250c) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_253-c1.c1", 0x0000000, 0x800000, CRC(5bb5d137) SHA1(d648febd8e6a0bdd9bdbb6ce1f1f8b08567ec05a) )
+ ROM_LOAD16_BYTE( "proto_253-c2.c2", 0x0000001, 0x800000, CRC(5c8d2960) SHA1(f7503502be0332adf408ee0ea5ee5161c8939fd8) )
+ ROM_LOAD16_BYTE( "proto_253-c3.c3", 0x1000000, 0x800000, CRC(234d16fc) SHA1(7b9221f7ecc438150c8a10be72390329854ed21b) )
+ ROM_LOAD16_BYTE( "proto_253-c4.c4", 0x1000001, 0x800000, CRC(b9b5b993) SHA1(6059793eaf6e58c172235fe64aa9d25a40c38ed6) )
+ ROM_LOAD16_BYTE( "proto_253-c5.c5", 0x2000000, 0x800000, CRC(722615d2) SHA1(798832c535869f0e247c3db0d8253779b103e213) )
+ ROM_LOAD16_BYTE( "proto_253-c6.c6", 0x2000001, 0x800000, CRC(0a6fab38) SHA1(eaee6f2f18af91f7959d84d4b991b3fc182d07c4) )
+ ROM_LOAD16_BYTE( "proto_253-c7.c7", 0x3000000, 0x800000, CRC(d68e806f) SHA1(92bfd9839115bd590972ae4ecc45ad35dce22387) )
+ ROM_LOAD16_BYTE( "253px11.c8", 0x3000001, 0x800000, CRC(7f004da7) SHA1(724d2b6439822ca30dad6d1ab59739b59e52c3a1) )
+ROM_END
+
+ROM_START( garoupy ) /* Garou: Mark of the Wolves PROTOTYPE - Hack by Ydmis - (In MVS mode P1 can choose Kain and Grant) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "253py.p1", 0x000000, 0x100000, CRC(5b010d7a) SHA1(5DC416E634456B2403ADF0668D18FC5FF60FAFDC) )
+ ROM_LOAD16_WORD_SWAP( "proto_253-p2.p2", 0x100000, 0x400000, CRC(bf8de565) SHA1(0e24574168cd38138bed0aa4dca49849f6901ca2) )
+
+ NEO_SFIX_128K( "proto_253-s1.s1", CRC(779989de) SHA1(8bd550857b60f8a907f6d39a4225ceffdd330307) )
+
+ NEO_BIOS_AUDIO_256K( "proto_253-m1.m1", CRC(bbe464f7) SHA1(f5f8f3e48f5d453f45107085d6f4023bcd24c053) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "proto_253-v1.v1", 0x000000, 0x400000, CRC(274f3923) SHA1(4c7a8ad1cd0e3afc1f78de3c2929120ed434f104) )
+ ROM_LOAD( "proto_253-v2.v2", 0x400000, 0x400000, CRC(8f86dabe) SHA1(b3d2d9f5c1d97a6e7aee2c674fb6627f41bbb240) )
+ ROM_LOAD( "proto_253-v3.v3", 0x800000, 0x400000, CRC(05fd06cd) SHA1(6cd699719614bb87547632ea3d61d92d81fdf563) )
+ ROM_LOAD( "proto_253-v4.v4", 0xc00000, 0x400000, CRC(14984063) SHA1(170d5638327ec0eb3590b80dc11590897367250c) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_253-c1.c1", 0x0000000, 0x800000, CRC(5bb5d137) SHA1(d648febd8e6a0bdd9bdbb6ce1f1f8b08567ec05a) )
+ ROM_LOAD16_BYTE( "proto_253-c2.c2", 0x0000001, 0x800000, CRC(5c8d2960) SHA1(f7503502be0332adf408ee0ea5ee5161c8939fd8) )
+ ROM_LOAD16_BYTE( "proto_253-c3.c3", 0x1000000, 0x800000, CRC(234d16fc) SHA1(7b9221f7ecc438150c8a10be72390329854ed21b) )
+ ROM_LOAD16_BYTE( "proto_253-c4.c4", 0x1000001, 0x800000, CRC(b9b5b993) SHA1(6059793eaf6e58c172235fe64aa9d25a40c38ed6) )
+ ROM_LOAD16_BYTE( "proto_253-c5.c5", 0x2000000, 0x800000, CRC(722615d2) SHA1(798832c535869f0e247c3db0d8253779b103e213) )
+ ROM_LOAD16_BYTE( "proto_253-c6.c6", 0x2000001, 0x800000, CRC(0a6fab38) SHA1(eaee6f2f18af91f7959d84d4b991b3fc182d07c4) )
+ ROM_LOAD16_BYTE( "proto_253-c7.c7", 0x3000000, 0x800000, CRC(d68e806f) SHA1(92bfd9839115bd590972ae4ecc45ad35dce22387) )
+ ROM_LOAD16_BYTE( "proto_253-c8.c8", 0x3000001, 0x800000, CRC(f778fe99) SHA1(c963f6ba90a36d02991728b44ffcf174ca18268a) )
+ROM_END
+
+ROM_START( garoupy1 ) /* Prototype Version, seems genuine */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "253py1.p1", 0x000000, 0x100000, CRC(b4a28ce4) SHA1(bab447230b6bc91a327a2622a55e125ce3aef781) )
+ ROM_LOAD16_WORD_SWAP( "253pf.p2", 0x100000, 0x400000, CRC(19eb641b) SHA1(114BE5C20142223CF6BB0938AA3B07B61E3243E1) )
+
+ NEO_SFIX_128K( "proto_253-s1.s1", CRC(779989de) SHA1(8bd550857b60f8a907f6d39a4225ceffdd330307) )
+
+ NEO_BIOS_AUDIO_256K( "proto_253-m1.m1", CRC(bbe464f7) SHA1(f5f8f3e48f5d453f45107085d6f4023bcd24c053) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "proto_253-v1.v1", 0x000000, 0x400000, CRC(274f3923) SHA1(4c7a8ad1cd0e3afc1f78de3c2929120ed434f104) )
+ ROM_LOAD( "proto_253-v2.v2", 0x400000, 0x400000, CRC(8f86dabe) SHA1(b3d2d9f5c1d97a6e7aee2c674fb6627f41bbb240) )
+ ROM_LOAD( "proto_253-v3.v3", 0x800000, 0x400000, CRC(05fd06cd) SHA1(6cd699719614bb87547632ea3d61d92d81fdf563) )
+ ROM_LOAD( "proto_253-v4.v4", 0xc00000, 0x400000, CRC(14984063) SHA1(170d5638327ec0eb3590b80dc11590897367250c) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_253-c1.c1", 0x0000000, 0x800000, CRC(5bb5d137) SHA1(d648febd8e6a0bdd9bdbb6ce1f1f8b08567ec05a) )
+ ROM_LOAD16_BYTE( "proto_253-c2.c2", 0x0000001, 0x800000, CRC(5c8d2960) SHA1(f7503502be0332adf408ee0ea5ee5161c8939fd8) )
+ ROM_LOAD16_BYTE( "proto_253-c3.c3", 0x1000000, 0x800000, CRC(234d16fc) SHA1(7b9221f7ecc438150c8a10be72390329854ed21b) )
+ ROM_LOAD16_BYTE( "proto_253-c4.c4", 0x1000001, 0x800000, CRC(b9b5b993) SHA1(6059793eaf6e58c172235fe64aa9d25a40c38ed6) )
+ ROM_LOAD16_BYTE( "proto_253-c5.c5", 0x2000000, 0x800000, CRC(722615d2) SHA1(798832c535869f0e247c3db0d8253779b103e213) )
+ ROM_LOAD16_BYTE( "proto_253-c6.c6", 0x2000001, 0x800000, CRC(0a6fab38) SHA1(eaee6f2f18af91f7959d84d4b991b3fc182d07c4) )
+ ROM_LOAD16_BYTE( "proto_253-c7.c7", 0x3000000, 0x800000, CRC(d68e806f) SHA1(92bfd9839115bd590972ae4ecc45ad35dce22387) )
+ ROM_LOAD16_BYTE( "proto_253-c8.c8", 0x3000001, 0x800000, CRC(f778fe99) SHA1(c963f6ba90a36d02991728b44ffcf174ca18268a) )
+ROM_END
+
+
+
+GAME( 1999, garoub, garou, neogeo_noslot, neogeo, neogeo_noslot_state, garou, ROT0, "Ydmis", "Garou - Mark of the Wolves (Boss hack by Ydmis)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, garoud, garou, neogeo_noslot, neogeo, neogeo_hbmame, garoud, ROT0, "hack","Garou - Mark of the Wolves (decrypted C)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, garoupamu, garoupy, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "MU", "Garou - Mark of the Wolves (proto) (Approach to Arcade by MU v5.0a)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, garoupeh, garoupy, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Garou - Mark of the Wolves (proto) (Add Char)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, garoupehc, garoupy, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami and Ydmis", "Garou - Mark of the Wolves (proto) (Add Char - Pow hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, garoupf, garoupy, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Unk", "Garou - Mark of the Wolves (proto) (Fixed winning message, sprites and some bugs)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, garoupfu, garoupy, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Unk", "Garou - Mark of the Wolves (proto) (Unk Hack/Fix)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, garoupfp, garoupy, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Unk", "Garou - Mark of the Wolves (proto) (Rom Fix - FixPlus)", MACHINE_SUPPORTS_SAVE )
+GAME( 2011, garoupx11, garoupy, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Garou - Mark of the Wolves XTREME PLUS", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, garoupy, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Garou - Mark of the Wolves (proto) (P1 Add Char)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, garoupy1, garou, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Garou: Mark of the Wolves (Prototype) [Boss Hack by Ydmis]", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/ngkofmisc.cpp b/docs/release/src/hbmame/drivers/ngkofmisc.cpp
new file mode 100644
index 00000000000..9bb892e83ae
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/ngkofmisc.cpp
@@ -0,0 +1,947 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+// Miscellaneous King of Fighters games
+// kog, cthd, kof2k4, kof10th etc
+// Nudity warning in Kof Special Edition 2004, stage with boats in the background:
+// There's a nude woman at the right side.
+// Sometimes the 6 women in the centre can also be nude.
+
+
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, cthd2k3a )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_bootleg_prot->decrypt_cthd2003(spr_region, spr_region_size, audiocpu_region,audio_region_size, fix_region, fix_region_size);
+}
+
+// This fixes the Cart Jumper in KOGD
+static MACHINE_CONFIG_DERIVED_CLASS( hbmame_kog, neogeo_arcade, neogeo_hbmame )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(main_map_noslot)
+ MCFG_KOG_PROT_ADD("kog_prot")
+
+ //joystick controller
+ MCFG_NEOGEO_CONTROL_EDGE_CONNECTOR_ADD("edge", neogeo_arc_edge_fixed, "joy", true)
+
+ //no mahjong controller
+ MCFG_NEOGEO_CONTROL_PORT_ADD("ctrl1", neogeo_arc_pin15, "", true)
+ MCFG_NEOGEO_CONTROL_PORT_ADD("ctrl2", neogeo_arc_pin15, "", true)
+MACHINE_CONFIG_END
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, kogd )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_kog_prot->kog_install_protection(m_maincpu);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, kof10thu )
+{
+ uint32_t tsize = m_region_maincpu->bytes();
+ uint8_t *rom = m_region_maincpu->base();
+ uint32_t i, ofst;
+ std::vector<uint8_t> trom( tsize );
+ memcpy( &trom[ 0 ], &rom[ 0 ], tsize );
+ // We unscramble the lower 6 address lines of the program rom.
+ for( i = 0; i < tsize / 2; i++ )
+ {
+ ofst = BITSWAP8( (i & 0x0000ff), 7, 6, 2, 3, 4, 5, 0, 1 ) | (i & 0xffff00);
+ memcpy( &rom[ ofst * 2 ], &trom[ i * 2 ], 2 );
+ }
+
+ DRIVER_INIT_CALL(neogeo);
+}
+
+
+
+ROM_START( cthd2k3a )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "360a.p1", 0x0c0000, 0x020000, CRC(1185fe39) SHA1(f7ce0878180858c359f125990fd750ec846f42dd) )
+ ROM_CONTINUE( 0x040000, 0x020000 )
+ ROM_CONTINUE( 0x020000, 0x020000 )
+ ROM_CONTINUE( 0x0a0000, 0x020000 )
+ ROM_CONTINUE( 0x080000, 0x020000 )
+ ROM_CONTINUE( 0x060000, 0x020000 )
+ ROM_CONTINUE( 0x000000, 0x020000 )
+ ROM_CONTINUE( 0x0e0000, 0x020000 )
+ ROM_FILL( 0xed00e, 1, 0x4e)
+ ROM_FILL( 0xed00f, 1, 0x71)
+ ROM_FILL( 0xed394, 1, 0x4e)
+ ROM_FILL( 0xed395, 1, 0x71)
+ ROM_FILL( 0xa2b7e, 1, 0x4e)
+ ROM_FILL( 0xa2b7f, 1, 0x71)
+ ROM_LOAD16_WORD_SWAP( "360a.p2", 0x4E0000, 0x020000, CRC(ea71faf7) SHA1(5d1bb12d04a5e2db6f48b59cae5f9b02acaeb976) )
+ ROM_CONTINUE( 0x1c0000, 0x020000 )
+ ROM_CONTINUE( 0x380000, 0x020000 )
+ ROM_CONTINUE( 0x2a0000, 0x020000 )
+ ROM_CONTINUE( 0x360000, 0x020000 )
+ ROM_CONTINUE( 0x2e0000, 0x020000 )
+ ROM_CONTINUE( 0x140000, 0x020000 )
+ ROM_CONTINUE( 0x1e0000, 0x020000 )
+ ROM_CONTINUE( 0x2c0000, 0x020000 )
+ ROM_CONTINUE( 0x280000, 0x020000 )
+ ROM_CONTINUE( 0x460000, 0x020000 )
+ ROM_CONTINUE( 0x160000, 0x020000 )
+ ROM_CONTINUE( 0x440000, 0x020000 )
+ ROM_CONTINUE( 0x4c0000, 0x020000 )
+ ROM_CONTINUE( 0x100000, 0x020000 )
+ ROM_CONTINUE( 0x480000, 0x020000 )
+ ROM_CONTINUE( 0x420000, 0x020000 )
+ ROM_CONTINUE( 0x260000, 0x020000 )
+ ROM_CONTINUE( 0x340000, 0x020000 )
+ ROM_CONTINUE( 0x180000, 0x020000 )
+ ROM_CONTINUE( 0x320000, 0x020000 )
+ ROM_CONTINUE( 0x3a0000, 0x020000 )
+ ROM_CONTINUE( 0x4a0000, 0x020000 )
+ ROM_CONTINUE( 0x200000, 0x020000 )
+ ROM_CONTINUE( 0x120000, 0x020000 )
+ ROM_CONTINUE( 0x400000, 0x020000 )
+ ROM_CONTINUE( 0x300000, 0x020000 )
+ ROM_CONTINUE( 0x3e0000, 0x020000 )
+ ROM_CONTINUE( 0x3c0000, 0x020000 )
+ ROM_CONTINUE( 0x240000, 0x020000 )
+ ROM_CONTINUE( 0x1a0000, 0x020000 )
+ ROM_CONTINUE( 0x220000, 0x020000 )
+
+ NEO_SFIX_128K( "360a.s1", CRC(174ccffd) SHA1(8067e4d79ac91f5c18855793840f41c30825cbb4) )
+
+ NEO_BIOS_AUDIO_128K( "360a.m1", CRC(a37cc447) SHA1(969375ca70cf9140afaf833378716cc43e25c5c6) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "360a.v2", 0x400000, 0x400000, CRC(2b498449) SHA1(8e2b01dd17dbf4498a197bda8ce3e08cdf785f12) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "360a.c1", 0x0000000, 0x800000, CRC(dc90c563) SHA1(a79f54f754a1bd0d603f70af6b335e839b5e20d1) )
+ ROM_LOAD16_BYTE( "360a.c2", 0x0000001, 0x800000, CRC(7b08d331) SHA1(40e259cbc888184aa0f8102d00098f37f3005ce3) )
+ ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) )
+ ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) )
+ ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) )
+ ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) )
+ ROM_LOAD16_BYTE( "360a.c7", 0x3000000, 0x800000, CRC(ad2d72b3) SHA1(6396ba51f863019059ce3e37dab20a60d3a8c549) )
+ ROM_LOAD16_BYTE( "360a.c8", 0x3000001, 0x800000, CRC(8c3fc1b5) SHA1(81b6df7c937915c5b971bde20786aece02404a05) )
+ROM_END
+
+ROM_START( cthd2k3b ) /* Crouching Tiger Hidden Dragon 2003 - Hack by HunterX Hacker - (Can choose Zero and Igniz) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "360b.p1", 0x000000, 0x100000, CRC(f403c9b3) SHA1(35D52B9388D4715BACBE958ACCD133C19E769E30) )
+ ROM_LOAD16_WORD_SWAP( "5003-p2.bin", 0x100000, 0x400000, CRC(adc1c22b) SHA1(271e0629989257a0d21d280c05df53df259414b1) )
+
+ NEO_SFIX_128K( "5003-s1.bin", CRC(5ba29aab) SHA1(e7ea67268a10243693bff722e6fd2276ca540acf) )
+
+ NEO_BIOS_AUDIO_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) )
+ ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) )
+ ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) )
+ ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) )
+ ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) )
+ ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) )
+ ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) )
+ ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) )
+ROM_END
+
+ROM_START( ct2k3eh ) /* Crouching Tiger Hidden Dragon 2003 - Enhance by Fighters Kim and HunterX Hacker - (Can choose Zero and Igniz - power hack) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "360eh.p1", 0x000000, 0x100000, CRC(eac4773b) SHA1(7E8AF18D5A18B3FE0B9130C66D8F4EF6297B8C7F) )
+ ROM_LOAD16_WORD_SWAP( "5003-p2.bin", 0x100000, 0x400000, CRC(adc1c22b) SHA1(271e0629989257a0d21d280c05df53df259414b1) )
+
+ NEO_SFIX_128K( "5003-s1.bin", CRC(5ba29aab) SHA1(e7ea67268a10243693bff722e6fd2276ca540acf) )
+
+ NEO_BIOS_AUDIO_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) )
+ ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) )
+ ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) )
+ ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) )
+ ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) )
+ ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) )
+ ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) )
+ ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) )
+ROM_END
+
+ROM_START( ct2k3ifz )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "5003-p1.bin", 0x000000, 0x100000, CRC(bb7602c1) SHA1(abf329a40f34c88f7325b255e3bc090db1edaca4) )
+ ROM_LOAD16_WORD_SWAP( "360ifz.p2", 0x100000, 0x400000, CRC(f3e7ca3a) SHA1(80b22608a90bc2b643751621200ef42a0e41557d) )
+
+ NEO_SFIX_128K( "5003-s1.bin", CRC(5ba29aab) SHA1(e7ea67268a10243693bff722e6fd2276ca540acf) )
+
+ NEO_BIOS_AUDIO_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) )
+ ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) )
+ ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) )
+ ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) )
+ ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) )
+ ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) )
+ ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) )
+ ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) )
+ROM_END
+
+ROM_START( ct2k3k3 ) /* Crouching Tiger Hidden Dragon 2003 - Remix by Jason/K3 - (Character move change - V1.2 20030823) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "360k3.p1", 0x000000, 0x100000, CRC(f5f1cfb2) SHA1(F0E19AE063E771567B30B52710C143B5E72CBF5A) )
+ ROM_LOAD16_WORD_SWAP( "5003-p2.bin", 0x100000, 0x400000, CRC(adc1c22b) SHA1(271e0629989257a0d21d280c05df53df259414b1) )
+
+ NEO_SFIX_128K( "5003-s1.bin", CRC(5ba29aab) SHA1(e7ea67268a10243693bff722e6fd2276ca540acf) )
+
+ NEO_BIOS_AUDIO_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) )
+ ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) )
+ ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) )
+ ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) )
+ ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) )
+ ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) )
+ ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) )
+ ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) )
+ROM_END
+
+ROM_START( ct2k3k3o ) /* [OLD] Crouching Tiger Hidden Dragon 2003 - Remix by Jason/K3 - (Character move change 20030818) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "360k3o.p1", 0x000000, 0x100000, CRC(93b2cb2b) SHA1(dc6bacae8851ab74eaf45c4392fdab0d679a266f) )
+ ROM_LOAD16_WORD_SWAP( "5003-p2.bin", 0x100000, 0x400000, CRC(adc1c22b) SHA1(271e0629989257a0d21d280c05df53df259414b1) )
+
+ NEO_SFIX_128K( "5003-s1.bin", CRC(5ba29aab) SHA1(e7ea67268a10243693bff722e6fd2276ca540acf) )
+
+ NEO_BIOS_AUDIO_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) )
+ ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) )
+ ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) )
+ ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) )
+ ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) )
+ ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) )
+ ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) )
+ ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) )
+ROM_END
+
+ROM_START( ct2k3spi ) // all confirmed
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "360spi.p1", 0x000000, 0x454f4e, CRC(f3010a50) SHA1(b95f322c0682999f2c378fdf2db14fc804f71153) )
+ ROM_LOAD16_WORD_SWAP( "5003-p2.bin", 0x100000, 0x400000, CRC(adc1c22b) SHA1(271e0629989257a0d21d280c05df53df259414b1) )
+
+ //NEO_SFIX_256K( "360spi.s1", CRC(6c355ab4) SHA1(71ac2bcd3dbda8402baecc56dabc2297b148a900) ) // not working
+ NEO_SFIX_128K( "5003-s1.bin", CRC(5ba29aab) SHA1(e7ea67268a10243693bff722e6fd2276ca540acf) )
+
+ NEO_BIOS_AUDIO_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) )
+ ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) )
+ ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) )
+ ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) )
+ ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) )
+ ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) )
+ ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) )
+ ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) )
+ROM_END
+
+ROM_START( ct2k3xx )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "5003-p1.bin", 0x000000, 0x100000, CRC(bb7602c1) SHA1(abf329a40f34c88f7325b255e3bc090db1edaca4) )
+ ROM_LOAD16_WORD_SWAP( "360xx.p2", 0x100000, 0x400000, CRC(7931c60b) SHA1(d9a6f90b0c40cbc0d9ba82412a418abf714b36dd) )
+
+ NEO_SFIX_128K( "5003-s1.bin", CRC(5ba29aab) SHA1(e7ea67268a10243693bff722e6fd2276ca540acf) )
+
+ NEO_BIOS_AUDIO_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) )
+ ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) )
+ ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) )
+ ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) )
+ ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) )
+ ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) )
+ ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) )
+ ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) )
+ROM_END
+
+ROM_START( ct2k3ys )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "5003-p1.bin", 0x000000, 0x100000, CRC(bb7602c1) SHA1(abf329a40f34c88f7325b255e3bc090db1edaca4) )
+ ROM_LOAD16_WORD_SWAP( "360ys.p2", 0x100000, 0x400000, CRC(d6872ee8) SHA1(23e0c9461c9fea2f5cbb1c05f45b10b5612e2ffd) )
+
+ NEO_SFIX_128K( "5003-s1.bin", CRC(5ba29aab) SHA1(e7ea67268a10243693bff722e6fd2276ca540acf) )
+
+ NEO_BIOS_AUDIO_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) )
+ ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) )
+ ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) )
+ ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) )
+ ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) )
+ ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) )
+ ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) )
+ ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) )
+ROM_END
+
+
+ROM_START( kof2k4mp )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "365mp.p1", 0x000000, 0x100000, CRC(499d739d) SHA1(b6344f49acc68405261592115a3c6c6e298309f5))
+ ROM_LOAD16_WORD_SWAP( "k2k4s-p1.bin", 0x100000, 0x400000, CRC(e6c50566) SHA1(cc6a3489a3bfeb4dcc65b6ddae0030f7e66fbabe))
+
+ NEO_SFIX_128K( "365mp.s1", CRC(f5f10e6f) SHA1(ab9d390785e03561f6b32f6c66fad2b2e9a5d996))
+
+ NEO_BIOS_AUDIO_128K( "5008-m1.bin", CRC(5a47d9ad) SHA1(0197737934653acc6c97221660d789e9914f3578) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265sm.v1", 0x000000, 0x400000, CRC(8991f6e9) SHA1(ce5afc0169c142d7f98111afbc60b3a9a2e17256) )
+ ROM_LOAD( "265sm.v2", 0x400000, 0x400000, CRC(511e4d2f) SHA1(28190ec86ac2169ab6fad80635ed13cfcf430c65) )
+ ROM_LOAD( "265sm.v3", 0x800000, 0x400000, CRC(1dd8b53a) SHA1(9aa84f145ba07f5f3c3b3fb682eb8a8ab1500b4c) )
+ ROM_LOAD( "265sm.v4", 0xc00000, 0x400000, CRC(63bb5462) SHA1(afc6a085e25bd006f26e16beda4244bc8bc19bb8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+
+ ROM_LOAD16_BYTE( "k2k4s-c4.bin", 0x0000000, 0x800000, CRC(7a050288) SHA1(55a20c5b01e11a859f096af3f8e09986025d288f) )
+ ROM_LOAD16_BYTE( "k2k4s-c8.bin", 0x0000001, 0x800000, CRC(e924afcf) SHA1(651e974f7339d2cdcfa58c5398013197a0525b77) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "k2k4s-c1.bin", 0x3000000, 0x800000, CRC(fa705b2b) SHA1(f314c66876589601806352484dd8e45bc41be692) )
+ ROM_LOAD16_BYTE( "k2k4s-c5.bin", 0x3000001, 0x800000, CRC(2c912ff9) SHA1(b624a625ea3e221808b7ea43fb0b1a51d8c1853e) )
+ROM_END
+
+ROM_START( kof2k4omg )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "365omg.p1", 0x000000, 0x3bd4c1, CRC(65687232) SHA1(3943351eb8bbb3e1af5e3c60b0304ff34ece809a) )
+ ROM_LOAD16_WORD_SWAP( "365omg.p2", 0x100000, 0x400000, CRC(edaa18d8) SHA1(dc9f0424db2d55b756d1e7b1389f6f1f9390bf95) )
+
+ NEO_SFIX_128K( "365omg.s1", CRC(a41ebb8b) SHA1(e7fde454fe3adfdfa1f43f5a0042979e0f43c89f) )
+
+ NEO_BIOS_AUDIO_128K( "5008-m1.bin", CRC(5a47d9ad) SHA1(0197737934653acc6c97221660d789e9914f3578) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "k2k4s-v2.bin", 0x000000, 0x800000, CRC(e4ddfb3f) SHA1(eb8220ab01c16cf9244b7f3f9912bec0db561b85) )
+ ROM_LOAD( "k2k4s-v1.bin", 0x800000, 0x800000, CRC(b887d287) SHA1(f593a5722df6f6fac023d189a739a117e976bb2f) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "k2k4s-c4.bin", 0x0000000, 0x800000, CRC(7a050288) SHA1(55a20c5b01e11a859f096af3f8e09986025d288f) )
+ ROM_LOAD16_BYTE( "k2k4s-c8.bin", 0x0000001, 0x800000, CRC(e924afcf) SHA1(651e974f7339d2cdcfa58c5398013197a0525b77) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63ab83ddc5f688dc8165a7ff8d262df3fcd942a2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2a414285e48aa948b5b0d4a9333bab083b5fb853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(e01adc7a4633bc0951b9b4f09abc07d728e9a2d9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5d28eea7b581e780b78f391a8179f1678ee0d9a5) )
+ ROM_LOAD16_BYTE( "365omg.c7", 0x3000000, 0x800000, CRC(7eb467ec) SHA1(9d8a7eb529e68d59ef6e9561426b80a239258b02) )
+ ROM_LOAD16_BYTE( "365omg.c8", 0x3000001, 0x800000, CRC(0b0631c4) SHA1(4d16697048cd79b654616e5976f2d19e763ec49a) )
+ROM_END
+
+ROM_START( kof2k4ru )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "365ru.p1", 0x000000, 0x100000, CRC(69100ad2) SHA1(36a818fb6fbe8433df89187dcf171058128f4f22) )
+ ROM_LOAD16_WORD_SWAP( "365ru.p2", 0x100000, 0x400000, CRC(c6b895e0) SHA1(e0080f4bb268253f0605a48c361b6c8088e173b7) )
+
+ NEO_SFIX_128K( "365ru.s1", CRC(fbfa1079) SHA1(af6d779cf0b74c765812d0ca1aab31412adb0136) )
+
+ NEO_BIOS_AUDIO_128K( "5008-m1.bin", CRC(5a47d9ad) SHA1(0197737934653acc6c97221660d789e9914f3578) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265sm.v1", 0x000000, 0x400000, CRC(8991f6e9) SHA1(ce5afc0169c142d7f98111afbc60b3a9a2e17256) )
+ ROM_LOAD( "265sm.v2", 0x400000, 0x400000, CRC(511e4d2f) SHA1(28190ec86ac2169ab6fad80635ed13cfcf430c65) )
+ ROM_LOAD( "265sm.v3", 0x800000, 0x400000, CRC(1dd8b53a) SHA1(9aa84f145ba07f5f3c3b3fb682eb8a8ab1500b4c) )
+ ROM_LOAD( "265sm.v4", 0xc00000, 0x400000, CRC(63bb5462) SHA1(afc6a085e25bd006f26e16beda4244bc8bc19bb8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "365ru.c1", 0x0000000, 0x800000, CRC(c55d7733) SHA1(3837f178788c78dcf7b0a4fbab3d62bfe0b41f9a) )
+ ROM_LOAD16_BYTE( "365ru.c2", 0x0000001, 0x800000, CRC(d89b45c9) SHA1(31d7ad16534839821f68db07b28dd564fe5c13c3) )
+ ROM_LOAD16_BYTE( "265ori.c3", 0x1000000, 0x800000, CRC(e5074eea) SHA1(387ef21d58b416126b95843bac1a0b6cc346818f) )
+ ROM_LOAD16_BYTE( "265ori.c4", 0x1000001, 0x800000, CRC(f6eb1ff2) SHA1(77cb493b9e75d42c204a9a6c052a813c2730e44f) )
+ ROM_LOAD16_BYTE( "365ru.c5", 0x2000000, 0x800000, CRC(11126545) SHA1(4ae58848c8a6701c9cfcd60e6674e8fb7491c0c0) )
+ ROM_LOAD16_BYTE( "365ru.c6", 0x2000001, 0x800000, CRC(d225bb9b) SHA1(ee627dab6aeebfb1af9dbdc315a927245243817c) )
+ ROM_LOAD16_BYTE( "365ru.c7", 0x3000000, 0x800000, CRC(750a7a2b) SHA1(3ef7688eedc3fcb9cef55306055b838f60a96285) )
+ ROM_LOAD16_BYTE( "365ru.c8", 0x3000001, 0x800000, CRC(aa21b917) SHA1(12f256f2a54246b1ed604ae4dcaa1af6e48a7b1f) )
+ROM_END
+
+ROM_START( kof2k4se1 ) // also known as kofse2k4
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "365se1.p2", 0x000000, 0x100000, CRC(5f482757) SHA1(0c2cba7fc6256e62eb7464306036784703c35a70) )
+ ROM_LOAD16_WORD_SWAP( "k2k4s-p1.bin", 0x100000, 0x400000, CRC(e6c50566) SHA1(cc6a3489a3bfeb4dcc65b6ddae0030f7e66fbabe) )
+
+ NEO_SFIX_128K( "k2k4s-s1.bin", CRC(a3c9b2d8) SHA1(1472d2cbd7bb73e84824ecf773924007e6117e77) )
+
+ NEO_BIOS_AUDIO_128K( "5008-m1.bin", CRC(5a47d9ad) SHA1(0197737934653acc6c97221660d789e9914f3578) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265sm.v1", 0x000000, 0x400000, CRC(8991f6e9) SHA1(ce5afc0169c142d7f98111afbc60b3a9a2e17256) )
+ ROM_LOAD( "265sm.v2", 0x400000, 0x400000, CRC(511e4d2f) SHA1(28190ec86ac2169ab6fad80635ed13cfcf430c65) )
+ ROM_LOAD( "265sm.v3", 0x800000, 0x400000, CRC(1dd8b53a) SHA1(9aa84f145ba07f5f3c3b3fb682eb8a8ab1500b4c) )
+ ROM_LOAD( "265sm.v4", 0xc00000, 0x400000, CRC(63bb5462) SHA1(afc6a085e25bd006f26e16beda4244bc8bc19bb8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "k2k4s-c4.bin", 0x0000000, 0x800000, CRC(7a050288) SHA1(55a20c5b01e11a859f096af3f8e09986025d288f) )
+ ROM_LOAD16_BYTE( "k2k4s-c8.bin", 0x0000001, 0x800000, CRC(e924afcf) SHA1(651e974f7339d2cdcfa58c5398013197a0525b77) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63ab83ddc5f688dc8165a7ff8d262df3fcd942a2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2a414285e48aa948b5b0d4a9333bab083b5fb853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(e01adc7a4633bc0951b9b4f09abc07d728e9a2d9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5d28eea7b581e780b78f391a8179f1678ee0d9a5) )
+ ROM_LOAD16_BYTE( "k2k4s-c1.bin", 0x3000000, 0x800000, CRC(fa705b2b) SHA1(f314c66876589601806352484dd8e45bc41be692) )
+ ROM_LOAD16_BYTE( "k2k4s-c5.bin", 0x3000001, 0x800000, CRC(2c912ff9) SHA1(b624a625ea3e221808b7ea43fb0b1a51d8c1853e) )
+ROM_END
+
+ROM_START( kof2k4se2 ) // also known as kof2004, same as kof2k4se1 except for 2nd program rom
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "365se1.p2", 0x000000, 0x100000, CRC(5f482757) SHA1(0c2cba7fc6256e62eb7464306036784703c35a70) )
+ ROM_LOAD16_WORD_SWAP( "365se2.p1", 0x100000, 0x400000, CRC(698679a7) SHA1(2bf3a7a7423141685ecd36c266139a97bac0a69c) )
+
+ NEO_SFIX_128K( "k2k4s-s1.bin", CRC(a3c9b2d8) SHA1(1472d2cbd7bb73e84824ecf773924007e6117e77) )
+
+ NEO_BIOS_AUDIO_128K( "5008-m1.bin", CRC(5a47d9ad) SHA1(0197737934653acc6c97221660d789e9914f3578) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265sm.v1", 0x000000, 0x400000, CRC(8991f6e9) SHA1(ce5afc0169c142d7f98111afbc60b3a9a2e17256) )
+ ROM_LOAD( "265sm.v2", 0x400000, 0x400000, CRC(511e4d2f) SHA1(28190ec86ac2169ab6fad80635ed13cfcf430c65) )
+ ROM_LOAD( "265sm.v3", 0x800000, 0x400000, CRC(1dd8b53a) SHA1(9aa84f145ba07f5f3c3b3fb682eb8a8ab1500b4c) )
+ ROM_LOAD( "265sm.v4", 0xc00000, 0x400000, CRC(63bb5462) SHA1(afc6a085e25bd006f26e16beda4244bc8bc19bb8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "k2k4s-c4.bin", 0x0000000, 0x800000, CRC(7a050288) SHA1(55a20c5b01e11a859f096af3f8e09986025d288f) )
+ ROM_LOAD16_BYTE( "k2k4s-c8.bin", 0x0000001, 0x800000, CRC(e924afcf) SHA1(651e974f7339d2cdcfa58c5398013197a0525b77) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63ab83ddc5f688dc8165a7ff8d262df3fcd942a2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2a414285e48aa948b5b0d4a9333bab083b5fb853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(e01adc7a4633bc0951b9b4f09abc07d728e9a2d9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5d28eea7b581e780b78f391a8179f1678ee0d9a5) )
+ ROM_LOAD16_BYTE( "k2k4s-c1.bin", 0x3000000, 0x800000, CRC(fa705b2b) SHA1(f314c66876589601806352484dd8e45bc41be692) )
+ ROM_LOAD16_BYTE( "k2k4s-c5.bin", 0x3000001, 0x800000, CRC(2c912ff9) SHA1(b624a625ea3e221808b7ea43fb0b1a51d8c1853e) )
+ROM_END
+
+ROM_START( kof2k4seb ) /* Portuguese edition */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "365seb.p1", 0x000000, 0x100000, CRC(3dda9add) SHA1(de75ab82ecdd9612b47051a502bfbe4b80c20688) )
+ ROM_LOAD16_WORD_SWAP( "365seb.p2", 0x100000, 0x400000, CRC(ed63d10b) SHA1(0991adc15d9335ce429ab0f4e1c20f198c6c0a94) )
+
+ NEO_SFIX_128K( "365seb.s1", CRC(f1b5d31a) SHA1(d111dd7b68fc4a921c0ab19bec40338dd3a88092) )
+
+ NEO_BIOS_AUDIO_128K( "5008-m1.bin", CRC(5a47d9ad) SHA1(0197737934653acc6c97221660d789e9914f3578) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "k2k4s-v2.bin", 0x000000, 0x800000, CRC(e4ddfb3f) SHA1(eb8220ab01c16cf9244b7f3f9912bec0db561b85) )
+ ROM_LOAD( "k2k4s-v1.bin", 0x800000, 0x800000, CRC(b887d287) SHA1(f593a5722df6f6fac023d189a739a117e976bb2f) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "k2k4s-c4.bin", 0x0000000, 0x800000, CRC(7a050288) SHA1(55a20c5b01e11a859f096af3f8e09986025d288f) )
+ ROM_LOAD16_BYTE( "k2k4s-c8.bin", 0x0000001, 0x800000, CRC(e924afcf) SHA1(651e974f7339d2cdcfa58c5398013197a0525b77) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "k2k4s-c1.bin", 0x3000000, 0x800000, CRC(fa705b2b) SHA1(f314c66876589601806352484dd8e45bc41be692) )
+ ROM_LOAD16_BYTE( "k2k4s-c5.bin", 0x3000001, 0x800000, CRC(2c912ff9) SHA1(b624a625ea3e221808b7ea43fb0b1a51d8c1853e) )
+ROM_END
+
+ROM_START( kof2k4spl )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "365spl.p1", 0x000000, 0x100000, CRC(388c5cba) SHA1(a9dbb3cbe622f8d7c28079883d54665da522dea9))
+ ROM_LOAD16_WORD_SWAP( "k2k4s-p1.bin", 0x100000, 0x400000, CRC(e6c50566) SHA1(cc6a3489a3bfeb4dcc65b6ddae0030f7e66fbabe))
+
+ NEO_SFIX_128K( "365spl.s1", CRC(348686dd) SHA1(676d83b98cc0b923ef4997c04cecaf74b4ef1687))
+
+ NEO_BIOS_AUDIO_128K( "5008-m1.bin", CRC(5a47d9ad) SHA1(0197737934653acc6c97221660d789e9914f3578) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265sm.v1", 0x000000, 0x400000, CRC(8991f6e9) SHA1(ce5afc0169c142d7f98111afbc60b3a9a2e17256) )
+ ROM_LOAD( "265sm.v2", 0x400000, 0x400000, CRC(511e4d2f) SHA1(28190ec86ac2169ab6fad80635ed13cfcf430c65) )
+ ROM_LOAD( "265sm.v3", 0x800000, 0x400000, CRC(1dd8b53a) SHA1(9aa84f145ba07f5f3c3b3fb682eb8a8ab1500b4c) )
+ ROM_LOAD( "265sm.v4", 0xc00000, 0x400000, CRC(63bb5462) SHA1(afc6a085e25bd006f26e16beda4244bc8bc19bb8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "k2k4s-c4.bin", 0x0000000, 0x800000, CRC(7a050288) SHA1(55a20c5b01e11a859f096af3f8e09986025d288f) )
+ ROM_LOAD16_BYTE( "k2k4s-c8.bin", 0x0000001, 0x800000, CRC(e924afcf) SHA1(651e974f7339d2cdcfa58c5398013197a0525b77) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "k2k4s-c1.bin", 0x3000000, 0x800000, CRC(fa705b2b) SHA1(f314c66876589601806352484dd8e45bc41be692) )
+ ROM_LOAD16_BYTE( "k2k4s-c5.bin", 0x3000001, 0x800000, CRC(2c912ff9) SHA1(b624a625ea3e221808b7ea43fb0b1a51d8c1853e) )
+ROM_END
+
+
+ROM_START( kof2k8uni ) // hack of kof10th
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "366.p1", 0x000000, 0x400000, CRC(966210bf) SHA1(9f86f29dbfe7ac951485908a20a6ce120ebdeb5f) )
+ ROM_LOAD16_WORD_SWAP( "366.p2", 0x400000, 0x400000, CRC(ae5f00f7) SHA1(807cbd02cdba320c7cf32c915a663338d7a89252) )
+
+ NEO_SFIX_128K( "366.s1", CRC(e57b5757) SHA1(d3dbb83c3d8b9860361b36496bfdc95220b8b75f) )
+
+ NEO_BIOS_AUDIO_128K( "kf10-m1.bin", CRC(f6fab859) SHA1(0184aa1394b9f9946d610278b53b846020dd88dc) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) )
+ ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "366.c1", 0x0000000, 0x400000, CRC(ea774fb8) SHA1(01ce6330716046b591c606b5d016dd5e57fa007b) )
+ ROM_LOAD16_BYTE( "366.c2", 0x0000001, 0x400000, CRC(6f497789) SHA1(8c8573ea191d29f0d250901ebf0116a41e184c78) )
+ ROM_LOAD16_BYTE( "kf10-c1b.bin", 0x0800000, 0x400000, CRC(b5abfc28) SHA1(eabf60992bb3485c95330065294071ec155bfe7c) )
+ ROM_LOAD16_BYTE( "kf10-c2b.bin", 0x0800001, 0x400000, CRC(6cc4c6e1) SHA1(be824a944e745ee18efdc45c81fd496a4d624b9c) )
+ ROM_LOAD16_BYTE( "kf10-c3a.bin", 0x1000000, 0x400000, CRC(5b3d4a16) SHA1(93ac1cd7739100f8c32732644f81f2a19837b131) )
+ ROM_LOAD16_BYTE( "kf10-c4a.bin", 0x1000001, 0x400000, CRC(c6f3419b) SHA1(340c17a73aeb7bf8a6209f8459e6f00000075b50) )
+ ROM_LOAD16_BYTE( "kf10-c3b.bin", 0x1800000, 0x400000, CRC(9d2bba19) SHA1(5ebbd0af3f83a60e33c8ccb743e3d5f5a96f1273) )
+ ROM_LOAD16_BYTE( "kf10-c4b.bin", 0x1800001, 0x400000, CRC(5a4050cb) SHA1(8fd2291f349efa1ed5cd37ad4e273b60fe831a77) )
+ ROM_LOAD16_BYTE( "kf10-c5a.bin", 0x2000000, 0x400000, CRC(a289d1e1) SHA1(50c7d7ebde6e118a01036cc3e40827fcd9f0d3fd) )
+ ROM_LOAD16_BYTE( "kf10-c6a.bin", 0x2000001, 0x400000, CRC(e6494b5d) SHA1(18e064b9867ae0b0794065f8dbefd486620419db) )
+ ROM_LOAD16_BYTE( "kf10-c5b.bin", 0x2800000, 0x400000, CRC(404fff02) SHA1(56d1b32c87ea4885e49264e8b21846e465a20e1f) )
+ ROM_LOAD16_BYTE( "kf10-c6b.bin", 0x2800001, 0x400000, CRC(f2ccfc9e) SHA1(69db7fac7023785ab94ea711a72dbc2826cfe1a3) )
+ ROM_LOAD16_BYTE( "kf10-c7a.bin", 0x3000000, 0x400000, CRC(be79c5a8) SHA1(ded3c5eb3571647f50533eb682c2675372ace3fb) )
+ ROM_LOAD16_BYTE( "kf10-c8a.bin", 0x3000001, 0x400000, CRC(a5952ca4) SHA1(76dbb3cb45ce5a4beffa1ed29491204fc6617e42) )
+ ROM_LOAD16_BYTE( "366.c7", 0x3800000, 0x400000, CRC(1b6f3bde) SHA1(5e1222197f5a09837930cc34713667dc1644c02a) )
+ ROM_LOAD16_BYTE( "366.c8", 0x3800001, 0x400000, CRC(113555e3) SHA1(52b48e182d23422492d95c95de4c86b1d30864e0) )
+ROM_END
+
+
+ROM_START( kof10thbr )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "363br.p1", 0x000000, 0x800000, CRC(c320bbaa) SHA1(f5570d78670881cf3ce787698e07d727fb0aeec2) )
+
+ NEO_SFIX_128K( "363br.s1", CRC(3c757cb1) SHA1(fea798902c59c125c8d31f42d52aa22caa31fc7b) )
+
+ NEO_BIOS_AUDIO_128K( "kf10-m1.bin", CRC(f6fab859) SHA1(0184aa1394b9f9946d610278b53b846020dd88dc) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) )
+ ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "kf10-c1a.bin", 0x0000000, 0x400000, CRC(3bbc0364) SHA1(e8aa7ff82f151ce1db56f259377b64cceef85af0) )
+ ROM_LOAD16_BYTE( "kf10-c2a.bin", 0x0000001, 0x400000, CRC(91230075) SHA1(d9098e05a7ba6008661147b6bf8bc2f494b8b72b) )
+ ROM_LOAD16_BYTE( "kf10-c1b.bin", 0x0800000, 0x400000, CRC(b5abfc28) SHA1(eabf60992bb3485c95330065294071ec155bfe7c) )
+ ROM_LOAD16_BYTE( "kf10-c2b.bin", 0x0800001, 0x400000, CRC(6cc4c6e1) SHA1(be824a944e745ee18efdc45c81fd496a4d624b9c) )
+ ROM_LOAD16_BYTE( "kf10-c3a.bin", 0x1000000, 0x400000, CRC(5b3d4a16) SHA1(93ac1cd7739100f8c32732644f81f2a19837b131) )
+ ROM_LOAD16_BYTE( "kf10-c4a.bin", 0x1000001, 0x400000, CRC(c6f3419b) SHA1(340c17a73aeb7bf8a6209f8459e6f00000075b50) )
+ ROM_LOAD16_BYTE( "kf10-c3b.bin", 0x1800000, 0x400000, CRC(9d2bba19) SHA1(5ebbd0af3f83a60e33c8ccb743e3d5f5a96f1273) )
+ ROM_LOAD16_BYTE( "kf10-c4b.bin", 0x1800001, 0x400000, CRC(5a4050cb) SHA1(8fd2291f349efa1ed5cd37ad4e273b60fe831a77) )
+ ROM_LOAD16_BYTE( "kf10-c5a.bin", 0x2000000, 0x400000, CRC(a289d1e1) SHA1(50c7d7ebde6e118a01036cc3e40827fcd9f0d3fd) )
+ ROM_LOAD16_BYTE( "kf10-c6a.bin", 0x2000001, 0x400000, CRC(e6494b5d) SHA1(18e064b9867ae0b0794065f8dbefd486620419db) )
+ ROM_LOAD16_BYTE( "kf10-c5b.bin", 0x2800000, 0x400000, CRC(404fff02) SHA1(56d1b32c87ea4885e49264e8b21846e465a20e1f) )
+ ROM_LOAD16_BYTE( "kf10-c6b.bin", 0x2800001, 0x400000, CRC(f2ccfc9e) SHA1(69db7fac7023785ab94ea711a72dbc2826cfe1a3) )
+ ROM_LOAD16_BYTE( "kf10-c7a.bin", 0x3000000, 0x400000, CRC(be79c5a8) SHA1(ded3c5eb3571647f50533eb682c2675372ace3fb) )
+ ROM_LOAD16_BYTE( "kf10-c8a.bin", 0x3000001, 0x400000, CRC(a5952ca4) SHA1(76dbb3cb45ce5a4beffa1ed29491204fc6617e42) )
+ ROM_LOAD16_BYTE( "kf10-c7b.bin", 0x3800000, 0x400000, CRC(3fdb3542) SHA1(7d2050752a2064cd6729f483a0da93808e2c6033) )
+ ROM_LOAD16_BYTE( "kf10-c8b.bin", 0x3800001, 0x400000, CRC(661b7a52) SHA1(0ae2ad2389134892f156337332b77adade3ddad1) )
+ROM_END
+
+ROM_START( kof10thd16 ) // after loading, p1 needs unscrambling: 2&3<->4&5 etc
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "363d16.p1", 0x000000, 0x00000, CRC(ea4274f6) SHA1(b9ea7f92f531916bed6363c8214ed5ae117d5148) )
+
+ NEO_SFIX_MT_128K
+ ROM_LOAD( "363d16.s1", 0x000000, 0x020000, CRC(6fae9f8f) SHA1(0194a0f8946c2d8e89e4b784586f77b874c03302) )
+ ROM_IGNORE( 0x435044 )
+
+ NEO_BIOS_AUDIO_128K( "kf10-m1.bin", CRC(f6fab859) SHA1(0184aa1394b9f9946d610278b53b846020dd88dc) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) )
+ ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "kf10-c1a.bin", 0x0000000, 0x400000, CRC(3bbc0364) SHA1(e8aa7ff82f151ce1db56f259377b64cceef85af0) )
+ ROM_LOAD16_BYTE( "kf10-c2a.bin", 0x0000001, 0x400000, CRC(91230075) SHA1(d9098e05a7ba6008661147b6bf8bc2f494b8b72b) )
+ ROM_LOAD16_BYTE( "kf10-c1b.bin", 0x0800000, 0x400000, CRC(b5abfc28) SHA1(eabf60992bb3485c95330065294071ec155bfe7c) )
+ ROM_LOAD16_BYTE( "kf10-c2b.bin", 0x0800001, 0x400000, CRC(6cc4c6e1) SHA1(be824a944e745ee18efdc45c81fd496a4d624b9c) )
+ ROM_LOAD16_BYTE( "kf10-c3a.bin", 0x1000000, 0x400000, CRC(5b3d4a16) SHA1(93ac1cd7739100f8c32732644f81f2a19837b131) )
+ ROM_LOAD16_BYTE( "kf10-c4a.bin", 0x1000001, 0x400000, CRC(c6f3419b) SHA1(340c17a73aeb7bf8a6209f8459e6f00000075b50) )
+ ROM_LOAD16_BYTE( "kf10-c3b.bin", 0x1800000, 0x400000, CRC(9d2bba19) SHA1(5ebbd0af3f83a60e33c8ccb743e3d5f5a96f1273) )
+ ROM_LOAD16_BYTE( "kf10-c4b.bin", 0x1800001, 0x400000, CRC(5a4050cb) SHA1(8fd2291f349efa1ed5cd37ad4e273b60fe831a77) )
+ ROM_LOAD16_BYTE( "kf10-c5a.bin", 0x2000000, 0x400000, CRC(a289d1e1) SHA1(50c7d7ebde6e118a01036cc3e40827fcd9f0d3fd) )
+ ROM_LOAD16_BYTE( "kf10-c6a.bin", 0x2000001, 0x400000, CRC(e6494b5d) SHA1(18e064b9867ae0b0794065f8dbefd486620419db) )
+ ROM_LOAD16_BYTE( "kf10-c5b.bin", 0x2800000, 0x400000, CRC(404fff02) SHA1(56d1b32c87ea4885e49264e8b21846e465a20e1f) )
+ ROM_LOAD16_BYTE( "kf10-c6b.bin", 0x2800001, 0x400000, CRC(f2ccfc9e) SHA1(69db7fac7023785ab94ea711a72dbc2826cfe1a3) )
+ ROM_LOAD16_BYTE( "kf10-c7a.bin", 0x3000000, 0x400000, CRC(be79c5a8) SHA1(ded3c5eb3571647f50533eb682c2675372ace3fb) )
+ ROM_LOAD16_BYTE( "kf10-c8a.bin", 0x3000001, 0x400000, CRC(a5952ca4) SHA1(76dbb3cb45ce5a4beffa1ed29491204fc6617e42) )
+ ROM_LOAD16_BYTE( "kf10-c7b.bin", 0x3800000, 0x400000, CRC(3fdb3542) SHA1(7d2050752a2064cd6729f483a0da93808e2c6033) )
+ ROM_LOAD16_BYTE( "kf10-c8b.bin", 0x3800001, 0x400000, CRC(661b7a52) SHA1(0ae2ad2389134892f156337332b77adade3ddad1) )
+ROM_END
+
+ROM_START( kof10thep15 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "363ep15.p1", 0x000000, 0x200000, CRC(8981b627) SHA1(b25754a6339f6533af791cd7dea95988b5f9072a) )
+ ROM_IGNORE(0x254f9f)
+ ROM_LOAD16_WORD_SWAP( "363ep15.p2", 0x200000, 0x400000, CRC(8eca396b) SHA1(58918c9dff5dc6e8975e16943ef8aefcd4caf34d) )
+ ROM_IGNORE(0x054f59)
+ ROM_LOAD16_WORD_SWAP( "5008-p3.bin", 0x600000, 0x200000, CRC(e629e13c) SHA1(6ebe080ce01c51064cb2f4d89315ba98a45ae727) )
+
+ NEO_SFIX_128K( "5008-s1.bin", CRC(92410064) SHA1(1fb800b46341858207d3b6961a760289fbec7faa) )
+
+ NEO_BIOS_AUDIO_128K( "5008-m1.bin", CRC(5a47d9ad) SHA1(0197737934653acc6c97221660d789e9914f3578) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) )
+ ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "kf10-c1a.bin", 0x0000000, 0x400000, CRC(3bbc0364) SHA1(e8aa7ff82f151ce1db56f259377b64cceef85af0) )
+ ROM_LOAD16_BYTE( "kf10-c2a.bin", 0x0000001, 0x400000, CRC(91230075) SHA1(d9098e05a7ba6008661147b6bf8bc2f494b8b72b) )
+ ROM_LOAD16_BYTE( "kf10-c1b.bin", 0x0800000, 0x400000, CRC(b5abfc28) SHA1(eabf60992bb3485c95330065294071ec155bfe7c) )
+ ROM_LOAD16_BYTE( "kf10-c2b.bin", 0x0800001, 0x400000, CRC(6cc4c6e1) SHA1(be824a944e745ee18efdc45c81fd496a4d624b9c) )
+ ROM_LOAD16_BYTE( "kf10-c3a.bin", 0x1000000, 0x400000, CRC(5b3d4a16) SHA1(93ac1cd7739100f8c32732644f81f2a19837b131) )
+ ROM_LOAD16_BYTE( "kf10-c4a.bin", 0x1000001, 0x400000, CRC(c6f3419b) SHA1(340c17a73aeb7bf8a6209f8459e6f00000075b50) )
+ ROM_LOAD16_BYTE( "kf10-c3b.bin", 0x1800000, 0x400000, CRC(9d2bba19) SHA1(5ebbd0af3f83a60e33c8ccb743e3d5f5a96f1273) )
+ ROM_LOAD16_BYTE( "kf10-c4b.bin", 0x1800001, 0x400000, CRC(5a4050cb) SHA1(8fd2291f349efa1ed5cd37ad4e273b60fe831a77) )
+ ROM_LOAD16_BYTE( "kf10-c5a.bin", 0x2000000, 0x400000, CRC(a289d1e1) SHA1(50c7d7ebde6e118a01036cc3e40827fcd9f0d3fd) )
+ ROM_LOAD16_BYTE( "kf10-c6a.bin", 0x2000001, 0x400000, CRC(e6494b5d) SHA1(18e064b9867ae0b0794065f8dbefd486620419db) )
+ ROM_LOAD16_BYTE( "kf10-c5b.bin", 0x2800000, 0x400000, CRC(404fff02) SHA1(56d1b32c87ea4885e49264e8b21846e465a20e1f) )
+ ROM_LOAD16_BYTE( "kf10-c6b.bin", 0x2800001, 0x400000, CRC(f2ccfc9e) SHA1(69db7fac7023785ab94ea711a72dbc2826cfe1a3) )
+ ROM_LOAD16_BYTE( "kf10-c7a.bin", 0x3000000, 0x400000, CRC(be79c5a8) SHA1(ded3c5eb3571647f50533eb682c2675372ace3fb) )
+ ROM_LOAD16_BYTE( "kf10-c8a.bin", 0x3000001, 0x400000, CRC(a5952ca4) SHA1(76dbb3cb45ce5a4beffa1ed29491204fc6617e42) )
+ ROM_LOAD16_BYTE( "5008-c7b.bin", 0x3800000, 0x400000, CRC(33604ef0) SHA1(57deec23c81d5d673ce5992cef1f2567f1a2148e) )
+ ROM_LOAD16_BYTE( "5008-c8b.bin", 0x3800001, 0x400000, CRC(51f6a8f8) SHA1(9ef1cdbdd125a2b430346c22b59f36902312905f) )
+ROM_END
+
+ROM_START( kof10thu )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "363u.p1", 0x600000, 0x100000, CRC(dd135fb6) SHA1(4e85814a44ee9fee9760048dd6d6fd2b66521bb1) )
+ ROM_CONTINUE( 0x100000, 0x500000 )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+ ROM_CONTINUE( 0x700000, 0x100000 )
+
+ NEO_SFIX_128K( "363u.s1", CRC(b22ba74f) SHA1(3ba9e9d4b95fef9bf35f76e9d4fb6e1a36aeee5a) )
+
+ NEO_BIOS_AUDIO_128K( "kf10-m1.bin", CRC(f6fab859) SHA1(0184aa1394b9f9946d610278b53b846020dd88dc) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) )
+ ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "kf10-c1a.bin", 0x0000000, 0x400000, CRC(3bbc0364) SHA1(e8aa7ff82f151ce1db56f259377b64cceef85af0) )
+ ROM_LOAD16_BYTE( "kf10-c2a.bin", 0x0000001, 0x400000, CRC(91230075) SHA1(d9098e05a7ba6008661147b6bf8bc2f494b8b72b) )
+ ROM_LOAD16_BYTE( "kf10-c1b.bin", 0x0800000, 0x400000, CRC(b5abfc28) SHA1(eabf60992bb3485c95330065294071ec155bfe7c) )
+ ROM_LOAD16_BYTE( "kf10-c2b.bin", 0x0800001, 0x400000, CRC(6cc4c6e1) SHA1(be824a944e745ee18efdc45c81fd496a4d624b9c) )
+ ROM_LOAD16_BYTE( "kf10-c3a.bin", 0x1000000, 0x400000, CRC(5b3d4a16) SHA1(93ac1cd7739100f8c32732644f81f2a19837b131) )
+ ROM_LOAD16_BYTE( "kf10-c4a.bin", 0x1000001, 0x400000, CRC(c6f3419b) SHA1(340c17a73aeb7bf8a6209f8459e6f00000075b50) )
+ ROM_LOAD16_BYTE( "kf10-c3b.bin", 0x1800000, 0x400000, CRC(9d2bba19) SHA1(5ebbd0af3f83a60e33c8ccb743e3d5f5a96f1273) )
+ ROM_LOAD16_BYTE( "kf10-c4b.bin", 0x1800001, 0x400000, CRC(5a4050cb) SHA1(8fd2291f349efa1ed5cd37ad4e273b60fe831a77) )
+ ROM_LOAD16_BYTE( "kf10-c5a.bin", 0x2000000, 0x400000, CRC(a289d1e1) SHA1(50c7d7ebde6e118a01036cc3e40827fcd9f0d3fd) )
+ ROM_LOAD16_BYTE( "kf10-c6a.bin", 0x2000001, 0x400000, CRC(e6494b5d) SHA1(18e064b9867ae0b0794065f8dbefd486620419db) )
+ ROM_LOAD16_BYTE( "kf10-c5b.bin", 0x2800000, 0x400000, CRC(404fff02) SHA1(56d1b32c87ea4885e49264e8b21846e465a20e1f) )
+ ROM_LOAD16_BYTE( "kf10-c6b.bin", 0x2800001, 0x400000, CRC(f2ccfc9e) SHA1(69db7fac7023785ab94ea711a72dbc2826cfe1a3) )
+ ROM_LOAD16_BYTE( "kf10-c7a.bin", 0x3000000, 0x400000, CRC(be79c5a8) SHA1(ded3c5eb3571647f50533eb682c2675372ace3fb) )
+ ROM_LOAD16_BYTE( "kf10-c8a.bin", 0x3000001, 0x400000, CRC(a5952ca4) SHA1(76dbb3cb45ce5a4beffa1ed29491204fc6617e42) )
+ ROM_LOAD16_BYTE( "kf10-c7b.bin", 0x3800000, 0x400000, CRC(3fdb3542) SHA1(7d2050752a2064cd6729f483a0da93808e2c6033) )
+ ROM_LOAD16_BYTE( "kf10-c8b.bin", 0x3800001, 0x400000, CRC(661b7a52) SHA1(0ae2ad2389134892f156337332b77adade3ddad1) )
+ROM_END
+
+ROM_START( kof10thub )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "363ub.p1", 0x000000, 0x800000, CRC(814eb1b2) SHA1(529825948f17fffa6d3a55a0d9e7ba6c06b79649) )
+
+ NEO_SFIX_128K( "363ub.s1", CRC(f5f91fc8) SHA1(f64516d7b500bdeddbe64962330cb612c11b8b84) )
+
+ NEO_BIOS_AUDIO_128K( "kf10-m1.bin", CRC(f6fab859) SHA1(0184aa1394b9f9946d610278b53b846020dd88dc) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) )
+ ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "363ud.c1", 0x0000000, 0x800000, CRC(2491af91) SHA1(e3e237e50395dc985c564867046ad202bc744d37) )
+ ROM_LOAD16_BYTE( "363ud.c2", 0x0000001, 0x800000, CRC(47ff1d91) SHA1(7d6ade9409af2c64114ed5836ccf9f50c7ebac69) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) )
+ ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) )
+ROM_END
+
+ROM_START( kof10thud )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "363ud.p1", 0x000000, 0x800000, CRC(acbe077a) SHA1(7d3b1ce4e06021f26dd1a7d97b03975f4ed17c24) )
+
+ NEO_SFIX_128K( "363u.s1", CRC(b22ba74f) SHA1(3ba9e9d4b95fef9bf35f76e9d4fb6e1a36aeee5a) )
+
+ NEO_BIOS_AUDIO_128K( "kf10-m1.bin", CRC(f6fab859) SHA1(0184aa1394b9f9946d610278b53b846020dd88dc) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) )
+ ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "363ud.c1", 0x0000000, 0x800000, CRC(2491af91) SHA1(e3e237e50395dc985c564867046ad202bc744d37) )
+ ROM_LOAD16_BYTE( "363ud.c2", 0x0000001, 0x800000, CRC(47ff1d91) SHA1(7d6ade9409af2c64114ed5836ccf9f50c7ebac69) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) )
+ ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) )
+ROM_END
+
+
+ROM_START( kogd )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "361d.p1", 0x000000, 0x100000, CRC(58F20940) SHA1(693819ff606b7c7b27400586f34073625445c412) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "361d.s1", CRC(EC690592) SHA1(a5af2880778a1904dd6c6006be769ea36b15dae3) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "361d.c1", 0x0000000, 0x800000, CRC(8E964A75) SHA1(e7611d7908ca056f4b3c0ae2c4da8f6809db4556) )
+ ROM_LOAD16_BYTE( "361d.c2", 0x0000001, 0x800000, CRC(D102DE17) SHA1(e98f33a4d16ebda6cf369b92480d4306c780cf8b) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "361d.c5", 0x2000000, 0x400000, CRC(C2698BE3) SHA1(0b1d414549947f6c29ebc71057aef96634656f32) )
+ ROM_LOAD16_BYTE( "361d.c6", 0x2000001, 0x400000, CRC(B057DB30) SHA1(2f342f03848f3f553bc70b2dbee2cc388a344a06) )
+ROM_END
+
+ROM_START( kogf )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "361f.p1", 0x000000, 0x200000, CRC(65dc181d) SHA1(663e1296fd808b3fc14fc94c3b82f9097db455e3) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x200000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "361f.s1", CRC(a5a76377) SHA1(e35f195dcd0a4ab156d6d52e8cc8fddddc602fc1) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "5232-c1a.bin", 0x0000000, 0x800000, CRC(4eab9b0a) SHA1(a6f6b755215a3f41474e0a76b5463303a522c2d3) )
+ ROM_LOAD16_BYTE( "5232-c2a.bin", 0x0000001, 0x800000, CRC(697f8fd0) SHA1(5784464c2357ccef8e6e79b6298843fc3d13b39c) )
+ ROM_LOAD16_BYTE( "5232-c1b.bin", 0x1000000, 0x800000, CRC(1143fdf3) SHA1(9dc5fe9a3b7599380db62095880e2d6f237a41bd) )
+ ROM_LOAD16_BYTE( "5232-c2b.bin", 0x1000001, 0x800000, CRC(ea82cf8f) SHA1(3d9ab64b69cecd6b3950839ac2c6d151ad66dcf8) )
+ ROM_LOAD16_BYTE( "5232-c3.bin", 0x2000000, 0x400000, CRC(abd1be07) SHA1(857eb68bbee4538770bbfa77aaa540d61ab0abcd) )
+ ROM_LOAD16_BYTE( "5232-c4.bin", 0x2000001, 0x400000, CRC(d2bd967b) SHA1(c494e0a98e127d37ca360a28accc167fa50fb626) )
+ROM_END
+
+ROM_START( koggv ) // multijet
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "5232-p1.bin", 0x000000, 0x200000, CRC(d2413ec6) SHA1(c0bf409d1e714cba5fdc6f79e4c2aec805316634) )
+ ROM_LOAD16_WORD_SWAP( "361gv.p2", 0x200000, 0x400000, CRC(7e15cd55) SHA1(608d3d1af20b63f67eb29420f725a30305b9b33a) )
+
+ NEO_SFIX_128K( "5232-s1.bin", CRC(0bef69da) SHA1(80918586e694dce35c4dba796eb18abf6a070ebb) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "5232-c1a.bin", 0x0000000, 0x800000, CRC(4eab9b0a) SHA1(a6f6b755215a3f41474e0a76b5463303a522c2d3) )
+ ROM_LOAD16_BYTE( "5232-c2a.bin", 0x0000001, 0x800000, CRC(697f8fd0) SHA1(5784464c2357ccef8e6e79b6298843fc3d13b39c) )
+ ROM_LOAD16_BYTE( "5232-c1b.bin", 0x1000000, 0x800000, CRC(1143fdf3) SHA1(9dc5fe9a3b7599380db62095880e2d6f237a41bd) )
+ ROM_LOAD16_BYTE( "5232-c2b.bin", 0x1000001, 0x800000, CRC(ea82cf8f) SHA1(3d9ab64b69cecd6b3950839ac2c6d151ad66dcf8) )
+ ROM_LOAD16_BYTE( "5232-c3.bin", 0x2000000, 0x400000, CRC(abd1be07) SHA1(857eb68bbee4538770bbfa77aaa540d61ab0abcd) )
+ ROM_LOAD16_BYTE( "5232-c4.bin", 0x2000001, 0x400000, CRC(d2bd967b) SHA1(c494e0a98e127d37ca360a28accc167fa50fb626) )
+ROM_END
+
+ROM_START( kogmxpls ) // all confirmed
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "361mxpls.p1", 0x000000, 0x100000, CRC(cb135241) SHA1(7a84ee0965a2dcd9f7a884e7fe862ce98b2a7921) )
+ ROM_LOAD16_WORD_SWAP( "361mxpls.p2", 0x100000, 0x400000, CRC(fef47a50) SHA1(cbe7361c06a14a2cdec6276745d3c93ba8fff211) )
+
+ NEO_SFIX_128K( "361mxpls.s1", CRC(4a46bdd3) SHA1(f0cd23f1b7f916c5cec36a8c379071e142849d61) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "361d.c1", 0x0000000, 0x800000, CRC(8E964A75) SHA1(e7611d7908ca056f4b3c0ae2c4da8f6809db4556) )
+ ROM_LOAD16_BYTE( "361d.c2", 0x0000001, 0x800000, CRC(D102DE17) SHA1(e98f33a4d16ebda6cf369b92480d4306c780cf8b) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "361mxpls.c5", 0x2000000, 0x400000, CRC(aec1c48b) SHA1(d6f4a8033f9b5c1942b2061f92b1bf7a13adaaae) )
+ ROM_LOAD16_BYTE( "361mxpls.c6", 0x2000001, 0x400000, CRC(eed0c40a) SHA1(efa91e7a9f4a30f4a86d0c4dd1d76754331de99f) )
+ROM_END
+
+ROM_START( kogplus )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "361plus.p1", 0x000000, 0x200000, CRC(0338f453) SHA1(01ea5ca6cc632d732a539542dc163bbafb071b88) )
+ ROM_LOAD16_WORD_SWAP( "kf97-p2p.bin", 0x200000, 0x400000, CRC(5502b020) SHA1(37c48198d8b3798910a44075782cd1a20b687b4a) )
+
+ NEO_SFIX_128K( "361plus.s1", CRC(6271e9ba) SHA1(5bc94426e916d0ad16b6660bfc2b9e21f717fa32) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "5232-c1a.bin", 0x0000000, 0x800000, CRC(4eab9b0a) SHA1(a6f6b755215a3f41474e0a76b5463303a522c2d3) )
+ ROM_LOAD16_BYTE( "5232-c2a.bin", 0x0000001, 0x800000, CRC(697f8fd0) SHA1(5784464c2357ccef8e6e79b6298843fc3d13b39c) )
+ ROM_LOAD16_BYTE( "5232-c1b.bin", 0x1000000, 0x800000, CRC(1143fdf3) SHA1(9dc5fe9a3b7599380db62095880e2d6f237a41bd) )
+ ROM_LOAD16_BYTE( "5232-c2b.bin", 0x1000001, 0x800000, CRC(ea82cf8f) SHA1(3d9ab64b69cecd6b3950839ac2c6d151ad66dcf8) )
+ ROM_LOAD16_BYTE( "5232-c3.bin", 0x2000000, 0x400000, CRC(abd1be07) SHA1(857eb68bbee4538770bbfa77aaa540d61ab0abcd) )
+ ROM_LOAD16_BYTE( "5232-c4.bin", 0x2000001, 0x400000, CRC(d2bd967b) SHA1(c494e0a98e127d37ca360a28accc167fa50fb626) )
+ROM_END
+
+ROM_START( kogplus1 ) // multijet kogplus
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "361plus1.p1", 0x000000, 0x100000, CRC(98241142) SHA1(9bb2c382063f84920841463f9b4ca87862e336de) )
+ ROM_LOAD16_WORD_SWAP( "kf97-p2p.bin", 0x100000, 0x400000, CRC(5502b020) SHA1(37c48198d8b3798910a44075782cd1a20b687b4a) )
+
+ NEO_SFIX_128K( "361plus1.s1", CRC(1a58ab17) SHA1(964ef974570923743124f4879baa8582ed4fc9f9) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "361d.c1", 0x0000000, 0x800000, CRC(8E964A75) SHA1(e7611d7908ca056f4b3c0ae2c4da8f6809db4556) )
+ ROM_LOAD16_BYTE( "361d.c2", 0x0000001, 0x800000, CRC(D102DE17) SHA1(e98f33a4d16ebda6cf369b92480d4306c780cf8b) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "361d.c5", 0x2000000, 0x400000, CRC(C2698BE3) SHA1(0b1d414549947f6c29ebc71057aef96634656f32) )
+ ROM_LOAD16_BYTE( "361d.c6", 0x2000001, 0x400000, CRC(B057DB30) SHA1(2f342f03848f3f553bc70b2dbee2cc388a344a06) )
+ROM_END
+
+ROM_START( kogplusf )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "361plusf.p1", 0x000000, 0x100000, CRC(24d0684b) SHA1(e2bf117e8dcad6e058cc0d2702f9e373e9aebb29) )
+ ROM_LOAD16_WORD_SWAP( "kf97-p2p.bin", 0x100000, 0x400000, CRC(5502b020) SHA1(37c48198d8b3798910a44075782cd1a20b687b4a) )
+
+ NEO_SFIX_128K( "361plusf.s1", CRC(3e6d76ec) SHA1(f16912d6d199f1c917efa3caece52e5730dfeb5f) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "361d.c1", 0x0000000, 0x800000, CRC(8E964A75) SHA1(e7611d7908ca056f4b3c0ae2c4da8f6809db4556) )
+ ROM_LOAD16_BYTE( "361d.c2", 0x0000001, 0x800000, CRC(D102DE17) SHA1(e98f33a4d16ebda6cf369b92480d4306c780cf8b) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "361d.c5", 0x2000000, 0x400000, CRC(C2698BE3) SHA1(0b1d414549947f6c29ebc71057aef96634656f32) )
+ ROM_LOAD16_BYTE( "361d.c6", 0x2000001, 0x400000, CRC(B057DB30) SHA1(2f342f03848f3f553bc70b2dbee2cc388a344a06) )
+ROM_END
+
+ROM_START( kogsm ) // multijet
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "361sm.p1", 0x000000, 0x200000, CRC(ae5162bd) SHA1(657379fe98783d24657a70afae8aa77cc1bbb650) )
+ ROM_LOAD16_WORD_SWAP( "361sm.p2", 0x200000, 0x400000, CRC(8e9d7a72) SHA1(7410b21dea0aabde492f1a788a76322a8ded867d) )
+
+ NEO_SFIX_128K( "361sm.s1", CRC(e7519d5a) SHA1(b637db97c596b412b959e08ed60ea44517a44534) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "5232-c1a.bin", 0x0000000, 0x800000, CRC(4eab9b0a) SHA1(a6f6b755215a3f41474e0a76b5463303a522c2d3) )
+ ROM_LOAD16_BYTE( "5232-c2a.bin", 0x0000001, 0x800000, CRC(697f8fd0) SHA1(5784464c2357ccef8e6e79b6298843fc3d13b39c) )
+ ROM_LOAD16_BYTE( "5232-c1b.bin", 0x1000000, 0x800000, CRC(1143fdf3) SHA1(9dc5fe9a3b7599380db62095880e2d6f237a41bd) )
+ ROM_LOAD16_BYTE( "5232-c2b.bin", 0x1000001, 0x800000, CRC(ea82cf8f) SHA1(3d9ab64b69cecd6b3950839ac2c6d151ad66dcf8) )
+ ROM_LOAD16_BYTE( "5232-c3.bin", 0x2000000, 0x400000, CRC(abd1be07) SHA1(857eb68bbee4538770bbfa77aaa540d61ab0abcd) )
+ ROM_LOAD16_BYTE( "5232-c4.bin", 0x2000001, 0x400000, CRC(d2bd967b) SHA1(c494e0a98e127d37ca360a28accc167fa50fb626) )
+ROM_END
+
+
+
+GAME( 2003, cthd2k3b, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, cthd2003, ROT0, "HunterX Hacker", "Crouching Tiger Hidden Dragon 2003 (Add Char)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, cthd2k3a, cthd2k3b, neogeo_noslot, neogeo, neogeo_hbmame, cthd2k3a, ROT0, "hack", "Crouching Tiger Hidden Dragon 2003 (set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, ct2k3eh, cthd2k3b, neogeo_noslot, neogeo, neogeo_noslot_state, cthd2003, ROT0, "Fighters Kim and HunterX Hacker", "Crouching Tiger Hidden Dragon 2003 (Add Char - Pow hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, ct2k3ifz, cthd2k3b, neogeo_noslot, neogeo, neogeo_noslot_state, cthd2003, ROT0, "hack", "Crouching Tiger Hidden Dragon 2003 (Ice FZ Remix)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, ct2k3k3, cthd2k3b, neogeo_noslot, neogeo, neogeo_noslot_state, cthd2003, ROT0, "Jason/K3", "Crouching Tiger Hidden Dragon 2003 Remix v1.2 (Diff Move - 030823)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, ct2k3k3o, cthd2k3b, neogeo_noslot, neogeo, neogeo_noslot_state, cthd2003, ROT0, "Jason/K3", "Crouching Tiger Hidden Dragon 2003 Remix (Diff Move - 030818)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, ct2k3spi, cthd2k3b, neogeo_noslot, neogeo, neogeo_noslot_state, cthd2003, ROT0, "hack", "Crouching Tiger Hidden Dragon 2003 (hack spi)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, ct2k3xx, cthd2k3b, neogeo_noslot, neogeo, neogeo_noslot_state, cthd2003, ROT0, "hack", "Crouching Tiger Hidden Dragon 2003 (Blood Edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, ct2k3ys, cthd2k3b, neogeo_noslot, neogeo, neogeo_noslot_state, cthd2003, ROT0, "hack", "Crouching Tiger Hidden Dragon 2003 (Red Fire Remix)", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, kof2k4mp, kof2002, neogeo_noslot, neogeo, neogeo_noslot_state, kof2k4se, ROT0, "hack", "Kof Special Edition 2004 Magic PLUS", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, kof2k4omg, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "KofOnTeam", "Kof Special Edition 2004 (Omega v0.5 (KOFONTEAM))", MACHINE_SUPPORTS_SAVE )
+GAME( 2010, kof2k4ru, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "MVS Hacks PSP", "Kof Special Edition 2004 REMIX ULTRA V2.6F", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, kof2k4se1, kof2002, neogeo_noslot, neogeo, neogeo_noslot_state, kof2k4se, ROT0, "hack", "Kof Special Edition 2004 (hack 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, kof2k4se2, kof2002, neogeo_noslot, neogeo, neogeo_noslot_state, kof2k4se, ROT0, "hack", "Kof Special Edition 2004 (hack 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, kof2k4seb, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Dragon Co.", "Kof Special Edition 2004 (portuguese)", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, kof2k4spl, kof2002, neogeo_noslot, neogeo, neogeo_noslot_state, kof2k4se, ROT0, "hack", "Kof Special Edition 2004 Plus", MACHINE_SUPPORTS_SAVE )
+GAME( 2008, kof2k8uni, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof 10th Anniversary 2008 Unique", MACHINE_SUPPORTS_SAVE )
+GAME( 2005, kof10thbr, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Neogeo BR Team", "Kof 10th Anniversary (Brazil by NeogeoBRteam)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 2005, kof10thd16, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof10thu, ROT0, "hack", "Kof 10th Anniversary UNIQUE (hack d16)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 2015, kof10thep15,kof2002, neogeo_noslot, neogeo, neogeo_noslot_state, kf10thep, ROT0, "hack", "Kof 10th Anniversary Extra Plus (hack 15)", MACHINE_SUPPORTS_SAVE )
+GAME( 2005, kof10thu, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof10thu, ROT0, "hack", "Kof 10th Anniversary UNIQUE (hack u)", MACHINE_SUPPORTS_SAVE )
+GAME( 2005, kof10thub, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof 10th Anniversary UNIQUE (portuguese edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 2005, kof10thud, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof 10th Anniversary UNIQUE (decrypted)", MACHINE_SUPPORTS_SAVE )
+GAME( 2005, kogd, kof97, hbmame_kog, neogeo, neogeo_hbmame, kogd, ROT0, "hack", "King of Gladiator (fully decrypted)", MACHINE_SUPPORTS_SAVE )
+GAME( 2005, kogf, kof97, neogeo_kog, neogeo, neogeo_noslot_kog_state, kog, ROT0, "Zxbdragon / Ryu", "King of Gladiator (Fixed Edition by Zxbdragon & Ryu)", MACHINE_SUPPORTS_SAVE )
+GAME( 2005, koggv, kof97, neogeo_kog, neogeo, neogeo_noslot_kog_state, kog, ROT0, "hack", "King of Gladiator (Green Edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 2005, kogmxpls, kof97, hbmame_kog, neogeo, neogeo_hbmame, kogd, ROT0, "hack", "King of Gladiator MIX PLUS-EX", MACHINE_SUPPORTS_SAVE )
+GAME( 2005, kogplus, kof97, neogeo_kog, neogeo, neogeo_noslot_kog_state, kog, ROT0, "hack", "King of Gladiator PLUS (set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2005, kogplus1, kof97, hbmame_kog, neogeo, neogeo_hbmame, kogd, ROT0, "hack", "King of Gladiator PLUS (set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2005, kogplusf, kof97, hbmame_kog, neogeo, neogeo_hbmame, kogd, ROT0, "Zxbdragon / Ryu", "King of Gladiator PLUS (Fixed Edition by Zxbdragon & Ryu)", MACHINE_SUPPORTS_SAVE )
+GAME( 2005, kogsm, kof97, neogeo_kog, neogeo, neogeo_noslot_kog_state, kog, ROT0, "KalceTin", "King of Gladiator (Smoke Version v1.5 Fix by KalceTin (KOFONTEAM))", MACHINE_SUPPORTS_SAVE )
+///GAME( 2004, kf2k4pls, kof2002, neogeo_noslot, neogeo, neogeo_state, kf2k4pls, ROT0, "hack", "Kof2004 Special Edition Plus", MACHINE_SUPPORTS_SAVE )
+///GAME( 2004, kof10thd, kof2002, neogeo_noslot, neogeo, neogeo_state, kof10thd, ROT0, "hack", "Kof 10th Anniversary (Fully Decrypted)", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/nglastblade.cpp b/docs/release/src/hbmame/drivers/nglastblade.cpp
new file mode 100644
index 00000000000..7b0428184c6
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/nglastblade.cpp
@@ -0,0 +1,713 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+// The Last Blade
+
+
+
+ROM_START( lba )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "234a.p1", 0x000000, 0x080000, CRC(3893d38b) SHA1(204d3f61dbeb82b1c942cda7089f24f997925adb) )
+ ROM_LOAD16_WORD_SWAP( "234a.p2", 0x080000, 0x080000, CRC(9470c788) SHA1(41671491cef3020b895e42935208e92abec09ed9) )
+ ROM_LOAD16_WORD_SWAP( "234a.p3", 0x100000, 0x200000, CRC(b45e631c) SHA1(5c88e6f6c1e343df24f2acf8bb4aed77954f7b36) )
+ ROM_LOAD16_WORD_SWAP( "234a.p4", 0x300000, 0x200000, CRC(aa34e149) SHA1(113930343f8efa603823a619964e90f1b06df2ab) )
+
+ NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) )
+
+ NEO_BIOS_AUDIO_128K( "234-m1.m1", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "234-v1.v1", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) )
+ ROM_LOAD( "234-v2.v2", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) )
+ ROM_LOAD( "234-v3.v3", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) )
+ ROM_LOAD( "234-v4.v4", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20A1F4833E5E29BA0073C1712D7A17AB7A2A035C) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "234-c1.c1", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) )
+ ROM_LOAD16_BYTE( "234-c2.c2", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) )
+ ROM_LOAD16_BYTE( "234-c3.c3", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) )
+ ROM_LOAD16_BYTE( "234-c4.c4", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) )
+ ROM_LOAD16_BYTE( "234-c5.c5", 0x2000000, 0x400000, CRC(1ba80cee) SHA1(0c59057183b5279b747e73213b4cd3c6d7ad9eb1) )
+ ROM_LOAD16_BYTE( "234-c6.c6", 0x2000001, 0x400000, CRC(beafd091) SHA1(55df9cc128eb0f00856de3996c946e3efe8f09a5) )
+ROM_END
+
+ROM_START( lbb ) /* The Last Blade - Hack by Kurouri and Wesker - (Can choose 'fair' Kaede, Musashi and Kagami - Wesker mod.) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "234b.p1", 0x000000, 0x100000, CRC(bdbc598e) SHA1(2fc8937cf07c0a402a36859a6a5231e37d092e91) )
+ ROM_LOAD16_WORD_SWAP( "234-p2.sp2", 0x100000, 0x400000, CRC(0fdc289e) SHA1(1ff31c0b0f4f9ddbedaf4bcf927faaae81892ec7) )
+
+ NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) )
+
+ NEO_BIOS_AUDIO_128K( "234-m1.m1", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "234-v1.v1", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) )
+ ROM_LOAD( "234-v2.v2", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) )
+ ROM_LOAD( "234-v3.v3", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) )
+ ROM_LOAD( "234-v4.v4", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20A1F4833E5E29BA0073C1712D7A17AB7A2A035C) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "234-c1.c1", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) )
+ ROM_LOAD16_BYTE( "234-c2.c2", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) )
+ ROM_LOAD16_BYTE( "234-c3.c3", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) )
+ ROM_LOAD16_BYTE( "234-c4.c4", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) )
+ ROM_LOAD16_BYTE( "234-c5.c5", 0x2000000, 0x400000, CRC(1ba80cee) SHA1(0c59057183b5279b747e73213b4cd3c6d7ad9eb1) )
+ ROM_LOAD16_BYTE( "234-c6.c6", 0x2000001, 0x400000, CRC(beafd091) SHA1(55df9cc128eb0f00856de3996c946e3efe8f09a5) )
+ROM_END
+
+ROM_START( lbboss ) /* The Last Blade - Hack by Kurouri - (Can choose 'fair' Kaede, Musashi and Kagami) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "234j.p1", 0x000000, 0x100000, CRC(84fb4bc9) SHA1(bf5dec15a6c2e1557b7436c48ea58193c6ad83bb) )
+ ROM_LOAD16_WORD_SWAP( "234-p2.sp2", 0x100000, 0x400000, CRC(0fdc289e) SHA1(1ff31c0b0f4f9ddbedaf4bcf927faaae81892ec7) )
+
+ NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) )
+
+ NEO_BIOS_AUDIO_128K( "234-m1.m1", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "234-v1.v1", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) )
+ ROM_LOAD( "234-v2.v2", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) )
+ ROM_LOAD( "234-v3.v3", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) )
+ ROM_LOAD( "234-v4.v4", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20A1F4833E5E29BA0073C1712D7A17AB7A2A035C) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "234-c1.c1", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) )
+ ROM_LOAD16_BYTE( "234-c2.c2", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) )
+ ROM_LOAD16_BYTE( "234-c3.c3", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) )
+ ROM_LOAD16_BYTE( "234-c4.c4", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) )
+ ROM_LOAD16_BYTE( "234-c5.c5", 0x2000000, 0x400000, CRC(1ba80cee) SHA1(0c59057183b5279b747e73213b4cd3c6d7ad9eb1) )
+ ROM_LOAD16_BYTE( "234-c6.c6", 0x2000001, 0x400000, CRC(beafd091) SHA1(55df9cc128eb0f00856de3996c946e3efe8f09a5) )
+ROM_END
+
+ROM_START( lbd ) // lastbdb in multijet
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "234d.p1", 0x000000, 0x100000, CRC(9b6d9e2a) SHA1(c65c6fc01536e5aa2fa3bcbc89a9f4db3607de2e) )
+ ROM_LOAD16_WORD_SWAP( "234-p2.sp2", 0x100000, 0x400000, CRC(0fdc289e) SHA1(1ff31c0b0f4f9ddbedaf4bcf927faaae81892ec7) )
+
+ NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) )
+
+ NEO_BIOS_AUDIO_128K( "234-m1.m1", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "234-v1.v1", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) )
+ ROM_LOAD( "234-v2.v2", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) )
+ ROM_LOAD( "234-v3.v3", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) )
+ ROM_LOAD( "234-v4.v4", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20A1F4833E5E29BA0073C1712D7A17AB7A2A035C) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "234-c1.c1", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) )
+ ROM_LOAD16_BYTE( "234-c2.c2", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) )
+ ROM_LOAD16_BYTE( "234-c3.c3", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) )
+ ROM_LOAD16_BYTE( "234-c4.c4", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) )
+ ROM_LOAD16_BYTE( "234-c5.c5", 0x2000000, 0x400000, CRC(1ba80cee) SHA1(0c59057183b5279b747e73213b4cd3c6d7ad9eb1) )
+ ROM_LOAD16_BYTE( "234-c6.c6", 0x2000001, 0x400000, CRC(beafd091) SHA1(55df9cc128eb0f00856de3996c946e3efe8f09a5) )
+ROM_END
+
+ROM_START( lbe ) /* The Last Blade - Super Enhance Hack by Creamymami, Kurouri, wesker and Ydmis - (Can choose 'fair' Kaede, Musashi and Kagami - ultra kill start is max - ultra power hack - Wesker mod.) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "234e.p1", 0x000000, 0x100000, CRC(0b06430e) SHA1(813cb410b993b032d96e7f34db0a1ee1a57c52f2) )
+ ROM_LOAD16_WORD_SWAP( "234-p2.sp2", 0x100000, 0x400000, CRC(0fdc289e) SHA1(1ff31c0b0f4f9ddbedaf4bcf927faaae81892ec7) )
+
+ NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) )
+
+ NEO_BIOS_AUDIO_128K( "234-m1.m1", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "234-v1.v1", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) )
+ ROM_LOAD( "234-v2.v2", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) )
+ ROM_LOAD( "234-v3.v3", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) )
+ ROM_LOAD( "234-v4.v4", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20A1F4833E5E29BA0073C1712D7A17AB7A2A035C) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "234-c1.c1", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) )
+ ROM_LOAD16_BYTE( "234-c2.c2", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) )
+ ROM_LOAD16_BYTE( "234-c3.c3", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) )
+ ROM_LOAD16_BYTE( "234-c4.c4", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) )
+ ROM_LOAD16_BYTE( "234-c5.c5", 0x2000000, 0x400000, CRC(1ba80cee) SHA1(0c59057183b5279b747e73213b4cd3c6d7ad9eb1) )
+ ROM_LOAD16_BYTE( "234-c6.c6", 0x2000001, 0x400000, CRC(beafd091) SHA1(55df9cc128eb0f00856de3996c946e3efe8f09a5) )
+ROM_END
+
+ROM_START( lbeh ) /* The Last Blade - Enhance by Kurouri and Ydmis - (Can choose 'fair' Kaede, Musashi and Kagami - ultra kill start is max) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "234eh.p1", 0x000000, 0x100000, CRC(d3a5d3dc) SHA1(004fe19505d08a314e208508078001425da6560d) )
+ ROM_LOAD16_WORD_SWAP( "234-p2.sp2", 0x100000, 0x400000, CRC(0fdc289e) SHA1(1ff31c0b0f4f9ddbedaf4bcf927faaae81892ec7) )
+
+ NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) )
+
+ NEO_BIOS_AUDIO_128K( "234-m1.m1", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "234-v1.v1", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) )
+ ROM_LOAD( "234-v2.v2", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) )
+ ROM_LOAD( "234-v3.v3", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) )
+ ROM_LOAD( "234-v4.v4", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20A1F4833E5E29BA0073C1712D7A17AB7A2A035C) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "234-c1.c1", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) )
+ ROM_LOAD16_BYTE( "234-c2.c2", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) )
+ ROM_LOAD16_BYTE( "234-c3.c3", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) )
+ ROM_LOAD16_BYTE( "234-c4.c4", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) )
+ ROM_LOAD16_BYTE( "234-c5.c5", 0x2000000, 0x400000, CRC(1ba80cee) SHA1(0c59057183b5279b747e73213b4cd3c6d7ad9eb1) )
+ ROM_LOAD16_BYTE( "234-c6.c6", 0x2000001, 0x400000, CRC(beafd091) SHA1(55df9cc128eb0f00856de3996c946e3efe8f09a5) )
+ROM_END
+
+ROM_START( lbeh2 ) /* The Last Blade - Hack by Ydmis - (Can choose Musashi and Kagami) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "234eh2.p1", 0x000000, 0x100000, CRC(12d80904) SHA1(cf7be0aab4f26b38cf2ea09dca8db1e0a4b90629) )
+ ROM_LOAD16_WORD_SWAP( "234-p2.sp2", 0x100000, 0x400000, CRC(0fdc289e) SHA1(1ff31c0b0f4f9ddbedaf4bcf927faaae81892ec7) )
+
+ NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) )
+
+ NEO_BIOS_AUDIO_128K( "234-m1.m1", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "234-v1.v1", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) )
+ ROM_LOAD( "234-v2.v2", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) )
+ ROM_LOAD( "234-v3.v3", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) )
+ ROM_LOAD( "234-v4.v4", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20A1F4833E5E29BA0073C1712D7A17AB7A2A035C) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "234-c1.c1", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) )
+ ROM_LOAD16_BYTE( "234-c2.c2", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) )
+ ROM_LOAD16_BYTE( "234-c3.c3", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) )
+ ROM_LOAD16_BYTE( "234-c4.c4", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) )
+ ROM_LOAD16_BYTE( "234-c5.c5", 0x2000000, 0x400000, CRC(1ba80cee) SHA1(0c59057183b5279b747e73213b4cd3c6d7ad9eb1) )
+ ROM_LOAD16_BYTE( "234-c6.c6", 0x2000001, 0x400000, CRC(beafd091) SHA1(55df9cc128eb0f00856de3996c946e3efe8f09a5) )
+ROM_END
+
+ROM_START( lbeho ) /* The Last Blade - Enhance by Ydmis - (Can choose Musashi and Kagami - ultra kill start is max) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "234eho.p1", 0x000000, 0x100000, CRC(c09d3ff3) SHA1(311a5f98d78c8fe7d551a92ac08c47b52271fb7b) )
+ ROM_LOAD16_WORD_SWAP( "234-p2.sp2", 0x100000, 0x400000, CRC(0fdc289e) SHA1(1ff31c0b0f4f9ddbedaf4bcf927faaae81892ec7) )
+
+ NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) )
+
+ NEO_BIOS_AUDIO_128K( "234-m1.m1", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "234-v1.v1", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) )
+ ROM_LOAD( "234-v2.v2", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) )
+ ROM_LOAD( "234-v3.v3", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) )
+ ROM_LOAD( "234-v4.v4", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20A1F4833E5E29BA0073C1712D7A17AB7A2A035C) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "234-c1.c1", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) )
+ ROM_LOAD16_BYTE( "234-c2.c2", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) )
+ ROM_LOAD16_BYTE( "234-c3.c3", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) )
+ ROM_LOAD16_BYTE( "234-c4.c4", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) )
+ ROM_LOAD16_BYTE( "234-c5.c5", 0x2000000, 0x400000, CRC(1ba80cee) SHA1(0c59057183b5279b747e73213b4cd3c6d7ad9eb1) )
+ ROM_LOAD16_BYTE( "234-c6.c6", 0x2000001, 0x400000, CRC(beafd091) SHA1(55df9cc128eb0f00856de3996c946e3efe8f09a5) )
+ROM_END
+
+ROM_START( lbha )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "234ha.p1", 0x000000, 0x100000, CRC(b8d24c55) SHA1(d954f5b6a35877369ebc9cbcfcb2f26bc72a653a) )
+ ROM_LOAD16_WORD_SWAP( "234-p2.sp2", 0x100000, 0x400000, CRC(0fdc289e) SHA1(1ff31c0b0f4f9ddbedaf4bcf927faaae81892ec7) )
+
+ NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) )
+
+ NEO_BIOS_AUDIO_128K( "234-m1.m1", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "234-v1.v1", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) )
+ ROM_LOAD( "234-v2.v2", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) )
+ ROM_LOAD( "234-v3.v3", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) )
+ ROM_LOAD( "234-v4.v4", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20A1F4833E5E29BA0073C1712D7A17AB7A2A035C) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "234-c1.c1", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) )
+ ROM_LOAD16_BYTE( "234-c2.c2", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) )
+ ROM_LOAD16_BYTE( "234-c3.c3", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) )
+ ROM_LOAD16_BYTE( "234-c4.c4", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) )
+ ROM_LOAD16_BYTE( "234-c5.c5", 0x2000000, 0x400000, CRC(1ba80cee) SHA1(0c59057183b5279b747e73213b4cd3c6d7ad9eb1) )
+ ROM_LOAD16_BYTE( "234-c6.c6", 0x2000001, 0x400000, CRC(beafd091) SHA1(55df9cc128eb0f00856de3996c946e3efe8f09a5) )
+ROM_END
+
+// this is lastblsp in multijet - description is "The Last Blade (Super Plus remixed by NEHT)"
+ROM_START( lbseh ) /* The Last Blade - Super Enhance Hack by Creamymami, Kurouri and Ydmis - (Can choose 'fair' Kaede, Musashi and Kagami - ultra kill start is max - ultra power hack) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "234seh.p1", 0x000000, 0x100000, CRC(32415149) SHA1(944a77e4e0e06763332549cf8255632921348933) )
+ ROM_LOAD16_WORD_SWAP( "234-p2.sp2", 0x100000, 0x400000, CRC(0fdc289e) SHA1(1ff31c0b0f4f9ddbedaf4bcf927faaae81892ec7) )
+
+ NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) )
+
+ NEO_BIOS_AUDIO_128K( "234-m1.m1", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "234-v1.v1", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) )
+ ROM_LOAD( "234-v2.v2", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) )
+ ROM_LOAD( "234-v3.v3", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) )
+ ROM_LOAD( "234-v4.v4", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20A1F4833E5E29BA0073C1712D7A17AB7A2A035C) )
+
+ ROM_REGION( 0x2400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "234-c1.c1", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) )
+ ROM_LOAD16_BYTE( "234-c2.c2", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) )
+ ROM_LOAD16_BYTE( "234-c3.c3", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) )
+ ROM_LOAD16_BYTE( "234-c4.c4", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) )
+ ROM_LOAD16_BYTE( "234seh.c5", 0x2000000, 0x200000, CRC(17bbd7ca) SHA1(7abb4ae5d3f5bb488c20ffe59496316bce999c23) )
+ ROM_LOAD16_BYTE( "234seh.c6", 0x2000001, 0x200000, CRC(5c35d541) SHA1(6bdd3e8abc0e577420762aea5ab20b1360868905) )
+ROM_END
+
+ROM_START( lbsk ) // lastbdsk in multijet
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "234sk.p1", 0x000000, 0x100000, CRC(87f40369) SHA1(73c258380bd668b5fb1b27ed772d70bba777390f) )
+ ROM_LOAD16_WORD_SWAP( "234-p2.sp2", 0x100000, 0x400000, CRC(0fdc289e) SHA1(1ff31c0b0f4f9ddbedaf4bcf927faaae81892ec7) )
+
+ NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) )
+
+ NEO_BIOS_AUDIO_128K( "234-m1.m1", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "234-v1.v1", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) )
+ ROM_LOAD( "234-v2.v2", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) )
+ ROM_LOAD( "234-v3.v3", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) )
+ ROM_LOAD( "234-v4.v4", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20A1F4833E5E29BA0073C1712D7A17AB7A2A035C) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "234-c1.c1", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) )
+ ROM_LOAD16_BYTE( "234-c2.c2", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) )
+ ROM_LOAD16_BYTE( "234-c3.c3", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) )
+ ROM_LOAD16_BYTE( "234-c4.c4", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) )
+ ROM_LOAD16_BYTE( "234-c5.c5", 0x2000000, 0x400000, CRC(1ba80cee) SHA1(0c59057183b5279b747e73213b4cd3c6d7ad9eb1) )
+ ROM_LOAD16_BYTE( "234-c6.c6", 0x2000001, 0x400000, CRC(beafd091) SHA1(55df9cc128eb0f00856de3996c946e3efe8f09a5) )
+ROM_END
+
+ROM_START( lby ) /* The Last Blade - Hack by Ydmis - (Can choose Musashi) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "234y.p1", 0x000000, 0x100000, CRC(481a6e8f) SHA1(cad1207b8ed93ba118e822767f0c32cd4030823a) )
+ ROM_LOAD16_WORD_SWAP( "234-p2.sp2", 0x100000, 0x400000, CRC(0fdc289e) SHA1(1ff31c0b0f4f9ddbedaf4bcf927faaae81892ec7) )
+
+ NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) )
+
+ NEO_BIOS_AUDIO_128K( "234-m1.m1", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "234-v1.v1", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) )
+ ROM_LOAD( "234-v2.v2", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) )
+ ROM_LOAD( "234-v3.v3", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) )
+ ROM_LOAD( "234-v4.v4", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20A1F4833E5E29BA0073C1712D7A17AB7A2A035C) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "234-c1.c1", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) )
+ ROM_LOAD16_BYTE( "234-c2.c2", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) )
+ ROM_LOAD16_BYTE( "234-c3.c3", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) )
+ ROM_LOAD16_BYTE( "234-c4.c4", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) )
+ ROM_LOAD16_BYTE( "234-c5.c5", 0x2000000, 0x400000, CRC(1ba80cee) SHA1(0c59057183b5279b747e73213b4cd3c6d7ad9eb1) )
+ ROM_LOAD16_BYTE( "234-c6.c6", 0x2000001, 0x400000, CRC(beafd091) SHA1(55df9cc128eb0f00856de3996c946e3efe8f09a5) )
+ROM_END
+
+
+ROM_START( lb2a ) /* The Last Blade 2 - Hack by Alphax2 - (Can choose Kouryu) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "243a.p1", 0x000000, 0x100000, CRC(9b53279c) SHA1(d2424f057ad834e76603cbbe4febf97d93fcd2a9) )
+ ROM_LOAD16_WORD_SWAP( "243-pg2.sp2", 0x100000, 0x400000, CRC(add4a30b) SHA1(7db62564db49fe0218cbb35b119d62582a24d658) )
+
+ NEO_SFIX_128K( "243-s1.s1", CRC(c9cd2298) SHA1(a9a18b5347f9dbe29a2ccb63fd4c8fd19537bf8b) )
+
+ NEO_BIOS_AUDIO_128K( "243-m1.m1", CRC(acf12d10) SHA1(6e6b98cc1fa44f24a5168877559b0055e6957b60) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "243-v1.v1", 0x000000, 0x400000, CRC(f7ee6fbb) SHA1(55137bcabeeb590e40a9b8a7c07dd106e4d12a90) )
+ ROM_LOAD( "243-v2.v2", 0x400000, 0x400000, CRC(aa9e4df6) SHA1(a0b91f63e2552a8ad9e0d1af00e2c38288637161) )
+ ROM_LOAD( "243-v3.v3", 0x800000, 0x400000, CRC(4ac750b2) SHA1(585a154acc67bd84ea5b944686b78ed082b768d9) )
+ ROM_LOAD( "243-v4.v4", 0xc00000, 0x400000, CRC(f5c64ba6) SHA1(2eac455def8c27090862cc042f65a3a8aad88283) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "243-c1.c1", 0x0000000, 0x800000, CRC(5839444d) SHA1(0616921c4cce20422563578bd0e806d359508599) )
+ ROM_LOAD16_BYTE( "243-c2.c2", 0x0000001, 0x800000, CRC(dd087428) SHA1(ca27fdb60425664956a18c021ea465f452fb1527) )
+ ROM_LOAD16_BYTE( "243-c3.c3", 0x1000000, 0x800000, CRC(6054cbe0) SHA1(ec2f65e9c930250ee25fd064ee5ae76a7a9c61d9) )
+ ROM_LOAD16_BYTE( "243-c4.c4", 0x1000001, 0x800000, CRC(8bd2a9d2) SHA1(0935df65cd2b0891a708bcc0f1c188148058d4b5) )
+ ROM_LOAD16_BYTE( "243-c5.c5", 0x2000000, 0x800000, CRC(6a503dcf) SHA1(23241b16d7e20f923d41186b29487ab922c7f530) )
+ ROM_LOAD16_BYTE( "243-c6.c6", 0x2000001, 0x800000, CRC(ec9c36d0) SHA1(e145e9e359000dda6e1dfe95a996bc6d29cfca21) )
+ROM_END
+
+ROM_START( lb2b )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "243b.p1", 0x000000, 0x100000, CRC(6e512568) SHA1(9bdd136d3a8b2a361b2659066f10fe6e7d3b6c52) )
+ ROM_LOAD16_WORD_SWAP( "243-pg2.sp2", 0x100000, 0x400000, CRC(add4a30b) SHA1(7db62564db49fe0218cbb35b119d62582a24d658) )
+
+ NEO_SFIX_128K( "243b.s1", CRC(357e4638) SHA1(92bfc78749c00662225ada98eecc562fd2984e3e) )
+
+ NEO_BIOS_AUDIO_128K( "243-m1.m1", CRC(acf12d10) SHA1(6e6b98cc1fa44f24a5168877559b0055e6957b60) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "243-v1.v1", 0x000000, 0x400000, CRC(f7ee6fbb) SHA1(55137bcabeeb590e40a9b8a7c07dd106e4d12a90) )
+ ROM_LOAD( "243-v2.v2", 0x400000, 0x400000, CRC(aa9e4df6) SHA1(a0b91f63e2552a8ad9e0d1af00e2c38288637161) )
+ ROM_LOAD( "243-v3.v3", 0x800000, 0x400000, CRC(4ac750b2) SHA1(585a154acc67bd84ea5b944686b78ed082b768d9) )
+ ROM_LOAD( "243-v4.v4", 0xc00000, 0x400000, CRC(f5c64ba6) SHA1(2eac455def8c27090862cc042f65a3a8aad88283) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "243-c1.c1", 0x0000000, 0x800000, CRC(5839444d) SHA1(0616921c4cce20422563578bd0e806d359508599) )
+ ROM_LOAD16_BYTE( "243-c2.c2", 0x0000001, 0x800000, CRC(dd087428) SHA1(ca27fdb60425664956a18c021ea465f452fb1527) )
+ ROM_LOAD16_BYTE( "243-c3.c3", 0x1000000, 0x800000, CRC(6054cbe0) SHA1(ec2f65e9c930250ee25fd064ee5ae76a7a9c61d9) )
+ ROM_LOAD16_BYTE( "243-c4.c4", 0x1000001, 0x800000, CRC(8bd2a9d2) SHA1(0935df65cd2b0891a708bcc0f1c188148058d4b5) )
+ ROM_LOAD16_BYTE( "243-c5.c5", 0x2000000, 0x800000, CRC(6a503dcf) SHA1(23241b16d7e20f923d41186b29487ab922c7f530) )
+ ROM_LOAD16_BYTE( "243-c6.c6", 0x2000001, 0x800000, CRC(ec9c36d0) SHA1(e145e9e359000dda6e1dfe95a996bc6d29cfca21) )
+ROM_END
+
+ROM_START( lb2bh ) // labld2bh in multijet
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "243bh.p1", 0x000000, 0x100000, CRC(3acbcfca) SHA1(825609e14daacbfce15462236193f7b2cff88169) )
+ ROM_LOAD16_WORD_SWAP( "243-pg2.sp2", 0x100000, 0x400000, CRC(add4a30b) SHA1(7db62564db49fe0218cbb35b119d62582a24d658) )
+
+ NEO_SFIX_128K( "243-s1.s1", CRC(c9cd2298) SHA1(a9a18b5347f9dbe29a2ccb63fd4c8fd19537bf8b) )
+
+ NEO_BIOS_AUDIO_128K( "243-m1.m1", CRC(acf12d10) SHA1(6e6b98cc1fa44f24a5168877559b0055e6957b60) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "243-v1.v1", 0x000000, 0x400000, CRC(f7ee6fbb) SHA1(55137bcabeeb590e40a9b8a7c07dd106e4d12a90) )
+ ROM_LOAD( "243-v2.v2", 0x400000, 0x400000, CRC(aa9e4df6) SHA1(a0b91f63e2552a8ad9e0d1af00e2c38288637161) )
+ ROM_LOAD( "243-v3.v3", 0x800000, 0x400000, CRC(4ac750b2) SHA1(585a154acc67bd84ea5b944686b78ed082b768d9) )
+ ROM_LOAD( "243-v4.v4", 0xc00000, 0x400000, CRC(f5c64ba6) SHA1(2eac455def8c27090862cc042f65a3a8aad88283) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "243-c1.c1", 0x0000000, 0x800000, CRC(5839444d) SHA1(0616921c4cce20422563578bd0e806d359508599) )
+ ROM_LOAD16_BYTE( "243-c2.c2", 0x0000001, 0x800000, CRC(dd087428) SHA1(ca27fdb60425664956a18c021ea465f452fb1527) )
+ ROM_LOAD16_BYTE( "243-c3.c3", 0x1000000, 0x800000, CRC(6054cbe0) SHA1(ec2f65e9c930250ee25fd064ee5ae76a7a9c61d9) )
+ ROM_LOAD16_BYTE( "243-c4.c4", 0x1000001, 0x800000, CRC(8bd2a9d2) SHA1(0935df65cd2b0891a708bcc0f1c188148058d4b5) )
+ ROM_LOAD16_BYTE( "243-c5.c5", 0x2000000, 0x800000, CRC(6a503dcf) SHA1(23241b16d7e20f923d41186b29487ab922c7f530) )
+ ROM_LOAD16_BYTE( "243-c6.c6", 0x2000001, 0x800000, CRC(ec9c36d0) SHA1(e145e9e359000dda6e1dfe95a996bc6d29cfca21) )
+ROM_END
+
+ROM_START( lb2bhd ) /* The Last Blade 2 - Super Enhance Hack by Dodowang - (Can choose bosses -> icons in menu - after character selection choose "SPEED" -> press c -> EX - mode enabled) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "243bhd.p1", 0x000000, 0x100000, CRC(f4e141cf) SHA1(515a101c1fc7b038603afc56121d240738e68090) )
+ ROM_LOAD16_WORD_SWAP( "243-pg2.sp2", 0x100000, 0x400000, CRC(add4a30b) SHA1(7db62564db49fe0218cbb35b119d62582a24d658) )
+
+ NEO_SFIX_128K( "243b.s1", CRC(357e4638) SHA1(92bfc78749c00662225ada98eecc562fd2984e3e) )
+
+ NEO_BIOS_AUDIO_128K( "243-m1.m1", CRC(acf12d10) SHA1(6e6b98cc1fa44f24a5168877559b0055e6957b60) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "243-v1.v1", 0x000000, 0x400000, CRC(f7ee6fbb) SHA1(55137bcabeeb590e40a9b8a7c07dd106e4d12a90) )
+ ROM_LOAD( "243-v2.v2", 0x400000, 0x400000, CRC(aa9e4df6) SHA1(a0b91f63e2552a8ad9e0d1af00e2c38288637161) )
+ ROM_LOAD( "243-v3.v3", 0x800000, 0x400000, CRC(4ac750b2) SHA1(585a154acc67bd84ea5b944686b78ed082b768d9) )
+ ROM_LOAD( "243-v4.v4", 0xc00000, 0x400000, CRC(f5c64ba6) SHA1(2eac455def8c27090862cc042f65a3a8aad88283) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "243-c1.c1", 0x0000000, 0x800000, CRC(5839444d) SHA1(0616921c4cce20422563578bd0e806d359508599) )
+ ROM_LOAD16_BYTE( "243-c2.c2", 0x0000001, 0x800000, CRC(dd087428) SHA1(ca27fdb60425664956a18c021ea465f452fb1527) )
+ ROM_LOAD16_BYTE( "243-c3.c3", 0x1000000, 0x800000, CRC(6054cbe0) SHA1(ec2f65e9c930250ee25fd064ee5ae76a7a9c61d9) )
+ ROM_LOAD16_BYTE( "243-c4.c4", 0x1000001, 0x800000, CRC(8bd2a9d2) SHA1(0935df65cd2b0891a708bcc0f1c188148058d4b5) )
+ ROM_LOAD16_BYTE( "243-c5.c5", 0x2000000, 0x800000, CRC(6a503dcf) SHA1(23241b16d7e20f923d41186b29487ab922c7f530) )
+ ROM_LOAD16_BYTE( "243-c6.c6", 0x2000001, 0x800000, CRC(ec9c36d0) SHA1(e145e9e359000dda6e1dfe95a996bc6d29cfca21) )
+ROM_END
+
+ROM_START( lb2easy ) /* The Last Blade 2 - Hack by Raymonose - (character move optimization in view of keyboard) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "243ea.p1", 0x000000, 0x100000, CRC(220F7860) SHA1(DA292FD2AE80A11676AA2B7F884C733535B5CE9E) )
+ ROM_LOAD16_WORD_SWAP( "243-pg2.sp2", 0x100000, 0x400000, CRC(add4a30b) SHA1(7db62564db49fe0218cbb35b119d62582a24d658) )
+
+ NEO_SFIX_128K( "243-s1.s1", CRC(c9cd2298) SHA1(a9a18b5347f9dbe29a2ccb63fd4c8fd19537bf8b) )
+
+ NEO_BIOS_AUDIO_128K( "243-m1.m1", CRC(acf12d10) SHA1(6e6b98cc1fa44f24a5168877559b0055e6957b60) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "243-v1.v1", 0x000000, 0x400000, CRC(f7ee6fbb) SHA1(55137bcabeeb590e40a9b8a7c07dd106e4d12a90) )
+ ROM_LOAD( "243-v2.v2", 0x400000, 0x400000, CRC(aa9e4df6) SHA1(a0b91f63e2552a8ad9e0d1af00e2c38288637161) )
+ ROM_LOAD( "243-v3.v3", 0x800000, 0x400000, CRC(4ac750b2) SHA1(585a154acc67bd84ea5b944686b78ed082b768d9) )
+ ROM_LOAD( "243-v4.v4", 0xc00000, 0x400000, CRC(f5c64ba6) SHA1(2eac455def8c27090862cc042f65a3a8aad88283) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "243-c1.c1", 0x0000000, 0x800000, CRC(5839444d) SHA1(0616921c4cce20422563578bd0e806d359508599) )
+ ROM_LOAD16_BYTE( "243-c2.c2", 0x0000001, 0x800000, CRC(dd087428) SHA1(ca27fdb60425664956a18c021ea465f452fb1527) )
+ ROM_LOAD16_BYTE( "243-c3.c3", 0x1000000, 0x800000, CRC(6054cbe0) SHA1(ec2f65e9c930250ee25fd064ee5ae76a7a9c61d9) )
+ ROM_LOAD16_BYTE( "243-c4.c4", 0x1000001, 0x800000, CRC(8bd2a9d2) SHA1(0935df65cd2b0891a708bcc0f1c188148058d4b5) )
+ ROM_LOAD16_BYTE( "243-c5.c5", 0x2000000, 0x800000, CRC(6a503dcf) SHA1(23241b16d7e20f923d41186b29487ab922c7f530) )
+ ROM_LOAD16_BYTE( "243-c6.c6", 0x2000001, 0x800000, CRC(ec9c36d0) SHA1(e145e9e359000dda6e1dfe95a996bc6d29cfca21) )
+ROM_END
+
+ROM_START( lb2ebd ) /* The Last Blade 2 - Enhance by Dodowang - (Can choose bosses - after character selection choose "SPEED" -> press c -> EX - mode enabled) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "243ebd.p1", 0x000000, 0x100000, CRC(9fa23fd3) SHA1(76f858e3c293f53770be6a0037d39797b4624002) )
+ ROM_LOAD16_WORD_SWAP( "243-pg2.sp2", 0x100000, 0x400000, CRC(add4a30b) SHA1(7db62564db49fe0218cbb35b119d62582a24d658) )
+
+ NEO_SFIX_128K( "243-s1.s1", CRC(c9cd2298) SHA1(a9a18b5347f9dbe29a2ccb63fd4c8fd19537bf8b) )
+
+ NEO_BIOS_AUDIO_128K( "243-m1.m1", CRC(acf12d10) SHA1(6e6b98cc1fa44f24a5168877559b0055e6957b60) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "243-v1.v1", 0x000000, 0x400000, CRC(f7ee6fbb) SHA1(55137bcabeeb590e40a9b8a7c07dd106e4d12a90) )
+ ROM_LOAD( "243-v2.v2", 0x400000, 0x400000, CRC(aa9e4df6) SHA1(a0b91f63e2552a8ad9e0d1af00e2c38288637161) )
+ ROM_LOAD( "243-v3.v3", 0x800000, 0x400000, CRC(4ac750b2) SHA1(585a154acc67bd84ea5b944686b78ed082b768d9) )
+ ROM_LOAD( "243-v4.v4", 0xc00000, 0x400000, CRC(f5c64ba6) SHA1(2eac455def8c27090862cc042f65a3a8aad88283) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "243-c1.c1", 0x0000000, 0x800000, CRC(5839444d) SHA1(0616921c4cce20422563578bd0e806d359508599) )
+ ROM_LOAD16_BYTE( "243-c2.c2", 0x0000001, 0x800000, CRC(dd087428) SHA1(ca27fdb60425664956a18c021ea465f452fb1527) )
+ ROM_LOAD16_BYTE( "243-c3.c3", 0x1000000, 0x800000, CRC(6054cbe0) SHA1(ec2f65e9c930250ee25fd064ee5ae76a7a9c61d9) )
+ ROM_LOAD16_BYTE( "243-c4.c4", 0x1000001, 0x800000, CRC(8bd2a9d2) SHA1(0935df65cd2b0891a708bcc0f1c188148058d4b5) )
+ ROM_LOAD16_BYTE( "243-c5.c5", 0x2000000, 0x800000, CRC(6a503dcf) SHA1(23241b16d7e20f923d41186b29487ab922c7f530) )
+ ROM_LOAD16_BYTE( "243-c6.c6", 0x2000001, 0x800000, CRC(ec9c36d0) SHA1(e145e9e359000dda6e1dfe95a996bc6d29cfca21) )
+ROM_END
+
+ROM_START( lb2ed ) /* The Last Blade 2 - Enhance by Dodowang - (After character selection choose "SPEED" -> press c -> EX - mode enabled) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "243ed.p1", 0x000000, 0x100000, CRC(35ae01f3) SHA1(dbf24eb2732c72e8d8f06bdebcd30d93f9c3ae1a) )
+ ROM_LOAD16_WORD_SWAP( "243-pg2.sp2", 0x100000, 0x400000, CRC(add4a30b) SHA1(7db62564db49fe0218cbb35b119d62582a24d658) )
+
+ NEO_SFIX_128K( "243-s1.s1", CRC(c9cd2298) SHA1(a9a18b5347f9dbe29a2ccb63fd4c8fd19537bf8b) )
+
+ NEO_BIOS_AUDIO_128K( "243-m1.m1", CRC(acf12d10) SHA1(6e6b98cc1fa44f24a5168877559b0055e6957b60) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "243-v1.v1", 0x000000, 0x400000, CRC(f7ee6fbb) SHA1(55137bcabeeb590e40a9b8a7c07dd106e4d12a90) )
+ ROM_LOAD( "243-v2.v2", 0x400000, 0x400000, CRC(aa9e4df6) SHA1(a0b91f63e2552a8ad9e0d1af00e2c38288637161) )
+ ROM_LOAD( "243-v3.v3", 0x800000, 0x400000, CRC(4ac750b2) SHA1(585a154acc67bd84ea5b944686b78ed082b768d9) )
+ ROM_LOAD( "243-v4.v4", 0xc00000, 0x400000, CRC(f5c64ba6) SHA1(2eac455def8c27090862cc042f65a3a8aad88283) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "243-c1.c1", 0x0000000, 0x800000, CRC(5839444d) SHA1(0616921c4cce20422563578bd0e806d359508599) )
+ ROM_LOAD16_BYTE( "243-c2.c2", 0x0000001, 0x800000, CRC(dd087428) SHA1(ca27fdb60425664956a18c021ea465f452fb1527) )
+ ROM_LOAD16_BYTE( "243-c3.c3", 0x1000000, 0x800000, CRC(6054cbe0) SHA1(ec2f65e9c930250ee25fd064ee5ae76a7a9c61d9) )
+ ROM_LOAD16_BYTE( "243-c4.c4", 0x1000001, 0x800000, CRC(8bd2a9d2) SHA1(0935df65cd2b0891a708bcc0f1c188148058d4b5) )
+ ROM_LOAD16_BYTE( "243-c5.c5", 0x2000000, 0x800000, CRC(6a503dcf) SHA1(23241b16d7e20f923d41186b29487ab922c7f530) )
+ ROM_LOAD16_BYTE( "243-c6.c6", 0x2000001, 0x800000, CRC(ec9c36d0) SHA1(e145e9e359000dda6e1dfe95a996bc6d29cfca21) )
+ROM_END
+
+ROM_START( lb2eh ) /* The Last Blade 2 - Enhance by Ydmis and Zhangshee - (Can choose Kaede black haired, Kouryu, Hagure and Kotetsu - ultra kill start is max) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "243eh.p1", 0x000000, 0x100000, CRC(57064bc6) SHA1(e7c1669356606bf134a02217fabc00ffd74d91f2) )
+ ROM_LOAD16_WORD_SWAP( "243-pg2.sp2", 0x100000, 0x400000, CRC(add4a30b) SHA1(7db62564db49fe0218cbb35b119d62582a24d658) )
+
+ NEO_SFIX_128K( "243-s1.s1", CRC(c9cd2298) SHA1(a9a18b5347f9dbe29a2ccb63fd4c8fd19537bf8b) )
+
+ NEO_BIOS_AUDIO_128K( "243-m1.m1", CRC(acf12d10) SHA1(6e6b98cc1fa44f24a5168877559b0055e6957b60) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "243-v1.v1", 0x000000, 0x400000, CRC(f7ee6fbb) SHA1(55137bcabeeb590e40a9b8a7c07dd106e4d12a90) )
+ ROM_LOAD( "243-v2.v2", 0x400000, 0x400000, CRC(aa9e4df6) SHA1(a0b91f63e2552a8ad9e0d1af00e2c38288637161) )
+ ROM_LOAD( "243-v3.v3", 0x800000, 0x400000, CRC(4ac750b2) SHA1(585a154acc67bd84ea5b944686b78ed082b768d9) )
+ ROM_LOAD( "243-v4.v4", 0xc00000, 0x400000, CRC(f5c64ba6) SHA1(2eac455def8c27090862cc042f65a3a8aad88283) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "243-c1.c1", 0x0000000, 0x800000, CRC(5839444d) SHA1(0616921c4cce20422563578bd0e806d359508599) )
+ ROM_LOAD16_BYTE( "243-c2.c2", 0x0000001, 0x800000, CRC(dd087428) SHA1(ca27fdb60425664956a18c021ea465f452fb1527) )
+ ROM_LOAD16_BYTE( "243-c3.c3", 0x1000000, 0x800000, CRC(6054cbe0) SHA1(ec2f65e9c930250ee25fd064ee5ae76a7a9c61d9) )
+ ROM_LOAD16_BYTE( "243-c4.c4", 0x1000001, 0x800000, CRC(8bd2a9d2) SHA1(0935df65cd2b0891a708bcc0f1c188148058d4b5) )
+ ROM_LOAD16_BYTE( "243-c5.c5", 0x2000000, 0x800000, CRC(6a503dcf) SHA1(23241b16d7e20f923d41186b29487ab922c7f530) )
+ ROM_LOAD16_BYTE( "243-c6.c6", 0x2000001, 0x800000, CRC(ec9c36d0) SHA1(e145e9e359000dda6e1dfe95a996bc6d29cfca21) )
+ROM_END
+
+ROM_START( lb2eh2 ) /* The Last Blade 2 - Hack by Ydmis - (Can choose Kaede black haired, Kouryu, Hagure and Kotetsu - ultra kill start is max - ultra power hack) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "243eh2.p1", 0x000000, 0x100000, CRC(10e0ffa5) SHA1(d26f3807426a18914801b18dc01fd01e96c9fd78) )
+ ROM_LOAD16_WORD_SWAP( "243-pg2.sp2", 0x100000, 0x400000, CRC(add4a30b) SHA1(7db62564db49fe0218cbb35b119d62582a24d658) )
+
+ NEO_SFIX_128K( "243-s1.s1", CRC(c9cd2298) SHA1(a9a18b5347f9dbe29a2ccb63fd4c8fd19537bf8b) )
+
+ NEO_BIOS_AUDIO_128K( "243-m1.m1", CRC(acf12d10) SHA1(6e6b98cc1fa44f24a5168877559b0055e6957b60) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "243-v1.v1", 0x000000, 0x400000, CRC(f7ee6fbb) SHA1(55137bcabeeb590e40a9b8a7c07dd106e4d12a90) )
+ ROM_LOAD( "243-v2.v2", 0x400000, 0x400000, CRC(aa9e4df6) SHA1(a0b91f63e2552a8ad9e0d1af00e2c38288637161) )
+ ROM_LOAD( "243-v3.v3", 0x800000, 0x400000, CRC(4ac750b2) SHA1(585a154acc67bd84ea5b944686b78ed082b768d9) )
+ ROM_LOAD( "243-v4.v4", 0xc00000, 0x400000, CRC(f5c64ba6) SHA1(2eac455def8c27090862cc042f65a3a8aad88283) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "243-c1.c1", 0x0000000, 0x800000, CRC(5839444d) SHA1(0616921c4cce20422563578bd0e806d359508599) )
+ ROM_LOAD16_BYTE( "243-c2.c2", 0x0000001, 0x800000, CRC(dd087428) SHA1(ca27fdb60425664956a18c021ea465f452fb1527) )
+ ROM_LOAD16_BYTE( "243-c3.c3", 0x1000000, 0x800000, CRC(6054cbe0) SHA1(ec2f65e9c930250ee25fd064ee5ae76a7a9c61d9) )
+ ROM_LOAD16_BYTE( "243-c4.c4", 0x1000001, 0x800000, CRC(8bd2a9d2) SHA1(0935df65cd2b0891a708bcc0f1c188148058d4b5) )
+ ROM_LOAD16_BYTE( "243-c5.c5", 0x2000000, 0x800000, CRC(6a503dcf) SHA1(23241b16d7e20f923d41186b29487ab922c7f530) )
+ ROM_LOAD16_BYTE( "243-c6.c6", 0x2000001, 0x800000, CRC(ec9c36d0) SHA1(e145e9e359000dda6e1dfe95a996bc6d29cfca21) )
+ROM_END
+
+ROM_START( lb2eho ) /* The Last Blade 2 - Enhance by Ydmis - (Can choose Kaede black haired, Kouryu, Hagure and Kotetsu) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "243eho.p1", 0x000000, 0x100000, CRC(f31ab9fe) SHA1(92614220d2e7ea2100a7258e3479db1d42431dfd) )
+ ROM_LOAD16_WORD_SWAP( "243-pg2.sp2", 0x100000, 0x400000, CRC(add4a30b) SHA1(7db62564db49fe0218cbb35b119d62582a24d658) )
+
+ NEO_SFIX_128K( "243-s1.s1", CRC(c9cd2298) SHA1(a9a18b5347f9dbe29a2ccb63fd4c8fd19537bf8b) )
+
+ NEO_BIOS_AUDIO_128K( "243-m1.m1", CRC(acf12d10) SHA1(6e6b98cc1fa44f24a5168877559b0055e6957b60) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "243-v1.v1", 0x000000, 0x400000, CRC(f7ee6fbb) SHA1(55137bcabeeb590e40a9b8a7c07dd106e4d12a90) )
+ ROM_LOAD( "243-v2.v2", 0x400000, 0x400000, CRC(aa9e4df6) SHA1(a0b91f63e2552a8ad9e0d1af00e2c38288637161) )
+ ROM_LOAD( "243-v3.v3", 0x800000, 0x400000, CRC(4ac750b2) SHA1(585a154acc67bd84ea5b944686b78ed082b768d9) )
+ ROM_LOAD( "243-v4.v4", 0xc00000, 0x400000, CRC(f5c64ba6) SHA1(2eac455def8c27090862cc042f65a3a8aad88283) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "243-c1.c1", 0x0000000, 0x800000, CRC(5839444d) SHA1(0616921c4cce20422563578bd0e806d359508599) )
+ ROM_LOAD16_BYTE( "243-c2.c2", 0x0000001, 0x800000, CRC(dd087428) SHA1(ca27fdb60425664956a18c021ea465f452fb1527) )
+ ROM_LOAD16_BYTE( "243-c3.c3", 0x1000000, 0x800000, CRC(6054cbe0) SHA1(ec2f65e9c930250ee25fd064ee5ae76a7a9c61d9) )
+ ROM_LOAD16_BYTE( "243-c4.c4", 0x1000001, 0x800000, CRC(8bd2a9d2) SHA1(0935df65cd2b0891a708bcc0f1c188148058d4b5) )
+ ROM_LOAD16_BYTE( "243-c5.c5", 0x2000000, 0x800000, CRC(6a503dcf) SHA1(23241b16d7e20f923d41186b29487ab922c7f530) )
+ ROM_LOAD16_BYTE( "243-c6.c6", 0x2000001, 0x800000, CRC(ec9c36d0) SHA1(e145e9e359000dda6e1dfe95a996bc6d29cfca21) )
+ROM_END
+
+ROM_START( lb2ehu ) /* The Last Blade 2 - Enhance by UNKNOWN - (Can choose Kaede black haired, Kouryu, Hagure and Kotetsu - ultra kill start is max) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "243ehu.p1", 0x000000, 0x100000, CRC(494aef40) SHA1(7c6af3a463c1a6acae10ee3fd9fb5e07e553fa18) )
+ ROM_LOAD16_WORD_SWAP( "243-pg2.sp2", 0x100000, 0x400000, CRC(add4a30b) SHA1(7db62564db49fe0218cbb35b119d62582a24d658) )
+
+ NEO_SFIX_128K( "243-s1.s1", CRC(c9cd2298) SHA1(a9a18b5347f9dbe29a2ccb63fd4c8fd19537bf8b) )
+
+ NEO_BIOS_AUDIO_128K( "243-m1.m1", CRC(acf12d10) SHA1(6e6b98cc1fa44f24a5168877559b0055e6957b60) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "243-v1.v1", 0x000000, 0x400000, CRC(f7ee6fbb) SHA1(55137bcabeeb590e40a9b8a7c07dd106e4d12a90) )
+ ROM_LOAD( "243-v2.v2", 0x400000, 0x400000, CRC(aa9e4df6) SHA1(a0b91f63e2552a8ad9e0d1af00e2c38288637161) )
+ ROM_LOAD( "243-v3.v3", 0x800000, 0x400000, CRC(4ac750b2) SHA1(585a154acc67bd84ea5b944686b78ed082b768d9) )
+ ROM_LOAD( "243-v4.v4", 0xc00000, 0x400000, CRC(f5c64ba6) SHA1(2eac455def8c27090862cc042f65a3a8aad88283) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "243-c1.c1", 0x0000000, 0x800000, CRC(5839444d) SHA1(0616921c4cce20422563578bd0e806d359508599) )
+ ROM_LOAD16_BYTE( "243-c2.c2", 0x0000001, 0x800000, CRC(dd087428) SHA1(ca27fdb60425664956a18c021ea465f452fb1527) )
+ ROM_LOAD16_BYTE( "243-c3.c3", 0x1000000, 0x800000, CRC(6054cbe0) SHA1(ec2f65e9c930250ee25fd064ee5ae76a7a9c61d9) )
+ ROM_LOAD16_BYTE( "243-c4.c4", 0x1000001, 0x800000, CRC(8bd2a9d2) SHA1(0935df65cd2b0891a708bcc0f1c188148058d4b5) )
+ ROM_LOAD16_BYTE( "243-c5.c5", 0x2000000, 0x800000, CRC(6a503dcf) SHA1(23241b16d7e20f923d41186b29487ab922c7f530) )
+ ROM_LOAD16_BYTE( "243-c6.c6", 0x2000001, 0x800000, CRC(ec9c36d0) SHA1(e145e9e359000dda6e1dfe95a996bc6d29cfca21) )
+ROM_END
+
+ROM_START( lb2pl )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "243pl.p1", 0x000000, 0x100000, CRC(8AF4B6E2) SHA1(2ea9a364bd7614eb93c5cbb3f571765c7af3af71) )
+ ROM_LOAD16_WORD_SWAP( "243pl.p2", 0x100000, 0x400000, CRC(EEF07572) SHA1(ba20c498dbdc2a1d664e5a3aeb3ffcd128c2a248) )
+
+ NEO_SFIX_128K( "243-s1.s1", CRC(c9cd2298) SHA1(a9a18b5347f9dbe29a2ccb63fd4c8fd19537bf8b) )
+
+ NEO_BIOS_AUDIO_128K( "243-m1.m1", CRC(acf12d10) SHA1(6e6b98cc1fa44f24a5168877559b0055e6957b60) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "243-v1.v1", 0x000000, 0x400000, CRC(f7ee6fbb) SHA1(55137bcabeeb590e40a9b8a7c07dd106e4d12a90) )
+ ROM_LOAD( "243-v2.v2", 0x400000, 0x400000, CRC(aa9e4df6) SHA1(a0b91f63e2552a8ad9e0d1af00e2c38288637161) )
+ ROM_LOAD( "243-v3.v3", 0x800000, 0x400000, CRC(4ac750b2) SHA1(585a154acc67bd84ea5b944686b78ed082b768d9) )
+ ROM_LOAD( "243-v4.v4", 0xc00000, 0x400000, CRC(f5c64ba6) SHA1(2eac455def8c27090862cc042f65a3a8aad88283) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "243-c1.c1", 0x0000000, 0x800000, CRC(5839444d) SHA1(0616921c4cce20422563578bd0e806d359508599) )
+ ROM_LOAD16_BYTE( "243-c2.c2", 0x0000001, 0x800000, CRC(dd087428) SHA1(ca27fdb60425664956a18c021ea465f452fb1527) )
+ ROM_LOAD16_BYTE( "243-c3.c3", 0x1000000, 0x800000, CRC(6054cbe0) SHA1(ec2f65e9c930250ee25fd064ee5ae76a7a9c61d9) )
+ ROM_LOAD16_BYTE( "243-c4.c4", 0x1000001, 0x800000, CRC(8bd2a9d2) SHA1(0935df65cd2b0891a708bcc0f1c188148058d4b5) )
+ ROM_LOAD16_BYTE( "243-c5.c5", 0x2000000, 0x800000, CRC(6a503dcf) SHA1(23241b16d7e20f923d41186b29487ab922c7f530) )
+ ROM_LOAD16_BYTE( "243-c6.c6", 0x2000001, 0x800000, CRC(ec9c36d0) SHA1(e145e9e359000dda6e1dfe95a996bc6d29cfca21) )
+ROM_END
+
+ROM_START( lb2te ) // unknown hack
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "243te.p1", 0x000000, 0x100000, CRC(8f9a24bf) SHA1(f7005ed9ab77d9991babfa72a68a2f535ac01064) )
+ ROM_LOAD16_WORD_SWAP( "243te.p2", 0x100000, 0x400000, CRC(37aaffa0) SHA1(4f16686956d2435d6c4339a5c49b352d0a98ecb7) )
+
+ NEO_SFIX_128K( "243-s1.s1", CRC(c9cd2298) SHA1(a9a18b5347f9dbe29a2ccb63fd4c8fd19537bf8b) )
+
+ NEO_BIOS_AUDIO_128K( "243-m1.m1", CRC(acf12d10) SHA1(6e6b98cc1fa44f24a5168877559b0055e6957b60) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "243-v1.v1", 0x000000, 0x400000, CRC(f7ee6fbb) SHA1(55137bcabeeb590e40a9b8a7c07dd106e4d12a90) )
+ ROM_LOAD( "243-v2.v2", 0x400000, 0x400000, CRC(aa9e4df6) SHA1(a0b91f63e2552a8ad9e0d1af00e2c38288637161) )
+ ROM_LOAD( "243-v3.v3", 0x800000, 0x400000, CRC(4ac750b2) SHA1(585a154acc67bd84ea5b944686b78ed082b768d9) )
+ ROM_LOAD( "243-v4.v4", 0xc00000, 0x400000, CRC(f5c64ba6) SHA1(2eac455def8c27090862cc042f65a3a8aad88283) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "243-c1.c1", 0x0000000, 0x800000, CRC(5839444d) SHA1(0616921c4cce20422563578bd0e806d359508599) )
+ ROM_LOAD16_BYTE( "243-c2.c2", 0x0000001, 0x800000, CRC(dd087428) SHA1(ca27fdb60425664956a18c021ea465f452fb1527) )
+ ROM_LOAD16_BYTE( "243-c3.c3", 0x1000000, 0x800000, CRC(6054cbe0) SHA1(ec2f65e9c930250ee25fd064ee5ae76a7a9c61d9) )
+ ROM_LOAD16_BYTE( "243-c4.c4", 0x1000001, 0x800000, CRC(8bd2a9d2) SHA1(0935df65cd2b0891a708bcc0f1c188148058d4b5) )
+ ROM_LOAD16_BYTE( "243-c5.c5", 0x2000000, 0x800000, CRC(6a503dcf) SHA1(23241b16d7e20f923d41186b29487ab922c7f530) )
+ ROM_LOAD16_BYTE( "243-c6.c6", 0x2000001, 0x800000, CRC(ec9c36d0) SHA1(e145e9e359000dda6e1dfe95a996bc6d29cfca21) )
+ROM_END
+
+ROM_START( lb2uh ) // lastb2uh in multijet
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "243uh.p1", 0x000000, 0x100000, CRC(158d66bd) SHA1(21a518465a21760e8df5bfe39c87abed07f8d654) )
+ ROM_LOAD16_WORD_SWAP( "243-pg2.sp2", 0x100000, 0x400000, CRC(add4a30b) SHA1(7db62564db49fe0218cbb35b119d62582a24d658) )
+
+ NEO_SFIX_128K( "243b.s1", CRC(357e4638) SHA1(92bfc78749c00662225ada98eecc562fd2984e3e) )
+
+ NEO_BIOS_AUDIO_128K( "243-m1.m1", CRC(acf12d10) SHA1(6e6b98cc1fa44f24a5168877559b0055e6957b60) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "243-v1.v1", 0x000000, 0x400000, CRC(f7ee6fbb) SHA1(55137bcabeeb590e40a9b8a7c07dd106e4d12a90) )
+ ROM_LOAD( "243-v2.v2", 0x400000, 0x400000, CRC(aa9e4df6) SHA1(a0b91f63e2552a8ad9e0d1af00e2c38288637161) )
+ ROM_LOAD( "243-v3.v3", 0x800000, 0x400000, CRC(4ac750b2) SHA1(585a154acc67bd84ea5b944686b78ed082b768d9) )
+ ROM_LOAD( "243-v4.v4", 0xc00000, 0x400000, CRC(f5c64ba6) SHA1(2eac455def8c27090862cc042f65a3a8aad88283) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "243-c1.c1", 0x0000000, 0x800000, CRC(5839444d) SHA1(0616921c4cce20422563578bd0e806d359508599) )
+ ROM_LOAD16_BYTE( "243-c2.c2", 0x0000001, 0x800000, CRC(dd087428) SHA1(ca27fdb60425664956a18c021ea465f452fb1527) )
+ ROM_LOAD16_BYTE( "243-c3.c3", 0x1000000, 0x800000, CRC(6054cbe0) SHA1(ec2f65e9c930250ee25fd064ee5ae76a7a9c61d9) )
+ ROM_LOAD16_BYTE( "243-c4.c4", 0x1000001, 0x800000, CRC(8bd2a9d2) SHA1(0935df65cd2b0891a708bcc0f1c188148058d4b5) )
+ ROM_LOAD16_BYTE( "243-c5.c5", 0x2000000, 0x800000, CRC(6a503dcf) SHA1(23241b16d7e20f923d41186b29487ab922c7f530) )
+ ROM_LOAD16_BYTE( "243-c6.c6", 0x2000001, 0x800000, CRC(ec9c36d0) SHA1(e145e9e359000dda6e1dfe95a996bc6d29cfca21) )
+ROM_END
+
+ROM_START( lb2wh ) /* The Last Blade 2 - Hack by Wesker - (Can choose Kaede black haired, Kouryu, Hagure and Kotetsu 20031017) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "243wh.p1", 0x000000, 0x100000, CRC(6ddcebf5) SHA1(4a93c0cb594e12cafea3b1137889187a524c5d79) )
+ ROM_LOAD16_WORD_SWAP( "243-pg2.sp2", 0x100000, 0x400000, CRC(add4a30b) SHA1(7db62564db49fe0218cbb35b119d62582a24d658) )
+
+ NEO_SFIX_128K( "243-s1.s1", CRC(c9cd2298) SHA1(a9a18b5347f9dbe29a2ccb63fd4c8fd19537bf8b) )
+
+ NEO_BIOS_AUDIO_128K( "243-m1.m1", CRC(acf12d10) SHA1(6e6b98cc1fa44f24a5168877559b0055e6957b60) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "243-v1.v1", 0x000000, 0x400000, CRC(f7ee6fbb) SHA1(55137bcabeeb590e40a9b8a7c07dd106e4d12a90) )
+ ROM_LOAD( "243-v2.v2", 0x400000, 0x400000, CRC(aa9e4df6) SHA1(a0b91f63e2552a8ad9e0d1af00e2c38288637161) )
+ ROM_LOAD( "243-v3.v3", 0x800000, 0x400000, CRC(4ac750b2) SHA1(585a154acc67bd84ea5b944686b78ed082b768d9) )
+ ROM_LOAD( "243-v4.v4", 0xc00000, 0x400000, CRC(f5c64ba6) SHA1(2eac455def8c27090862cc042f65a3a8aad88283) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "243-c1.c1", 0x0000000, 0x800000, CRC(5839444d) SHA1(0616921c4cce20422563578bd0e806d359508599) )
+ ROM_LOAD16_BYTE( "243-c2.c2", 0x0000001, 0x800000, CRC(dd087428) SHA1(ca27fdb60425664956a18c021ea465f452fb1527) )
+ ROM_LOAD16_BYTE( "243-c3.c3", 0x1000000, 0x800000, CRC(6054cbe0) SHA1(ec2f65e9c930250ee25fd064ee5ae76a7a9c61d9) )
+ ROM_LOAD16_BYTE( "243-c4.c4", 0x1000001, 0x800000, CRC(8bd2a9d2) SHA1(0935df65cd2b0891a708bcc0f1c188148058d4b5) )
+ ROM_LOAD16_BYTE( "243-c5.c5", 0x2000000, 0x800000, CRC(6a503dcf) SHA1(23241b16d7e20f923d41186b29487ab922c7f530) )
+ ROM_LOAD16_BYTE( "243-c6.c6", 0x2000001, 0x800000, CRC(ec9c36d0) SHA1(e145e9e359000dda6e1dfe95a996bc6d29cfca21) )
+ROM_END
+
+ROM_START( lb2yd ) /* The Last Blade 2 - Hack by Ydmis - (Ultra kill start is max) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "243yd.p1", 0x000000, 0x100000, CRC(095f3790) SHA1(d1de61b9019afd52042d5bc06aaca97db805dd45) )
+ ROM_LOAD16_WORD_SWAP( "243-pg2.sp2", 0x100000, 0x400000, CRC(add4a30b) SHA1(7db62564db49fe0218cbb35b119d62582a24d658) )
+
+ NEO_SFIX_128K( "243-s1.s1", CRC(c9cd2298) SHA1(a9a18b5347f9dbe29a2ccb63fd4c8fd19537bf8b) )
+
+ NEO_BIOS_AUDIO_128K( "243-m1.m1", CRC(acf12d10) SHA1(6e6b98cc1fa44f24a5168877559b0055e6957b60) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "243-v1.v1", 0x000000, 0x400000, CRC(f7ee6fbb) SHA1(55137bcabeeb590e40a9b8a7c07dd106e4d12a90) )
+ ROM_LOAD( "243-v2.v2", 0x400000, 0x400000, CRC(aa9e4df6) SHA1(a0b91f63e2552a8ad9e0d1af00e2c38288637161) )
+ ROM_LOAD( "243-v3.v3", 0x800000, 0x400000, CRC(4ac750b2) SHA1(585a154acc67bd84ea5b944686b78ed082b768d9) )
+ ROM_LOAD( "243-v4.v4", 0xc00000, 0x400000, CRC(f5c64ba6) SHA1(2eac455def8c27090862cc042f65a3a8aad88283) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "243-c1.c1", 0x0000000, 0x800000, CRC(5839444d) SHA1(0616921c4cce20422563578bd0e806d359508599) )
+ ROM_LOAD16_BYTE( "243-c2.c2", 0x0000001, 0x800000, CRC(dd087428) SHA1(ca27fdb60425664956a18c021ea465f452fb1527) )
+ ROM_LOAD16_BYTE( "243-c3.c3", 0x1000000, 0x800000, CRC(6054cbe0) SHA1(ec2f65e9c930250ee25fd064ee5ae76a7a9c61d9) )
+ ROM_LOAD16_BYTE( "243-c4.c4", 0x1000001, 0x800000, CRC(8bd2a9d2) SHA1(0935df65cd2b0891a708bcc0f1c188148058d4b5) )
+ ROM_LOAD16_BYTE( "243-c5.c5", 0x2000000, 0x800000, CRC(6a503dcf) SHA1(23241b16d7e20f923d41186b29487ab922c7f530) )
+ ROM_LOAD16_BYTE( "243-c6.c6", 0x2000001, 0x800000, CRC(ec9c36d0) SHA1(e145e9e359000dda6e1dfe95a996bc6d29cfca21) )
+ROM_END
+
+
+
+GAME( 1997, lba, lastblad, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Last Blade (set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, lbb, lastblad, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Kurouri, Wesker", "Last Blade (3 Add Char - Wesker mod)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, lbboss, lastblad, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Kurouri", "Last Blade (3 Add Char)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, lbd, lastblad, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Last Blade (Boss hack by Creamymami/Kurouri/Wesker/Ydmis)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, lbe, lastblad, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami, Kurouri, Wesker and Ydmis", "Last Blade (3 Add Char - Ultra kill start max - Ultra pow hack - Wesker mod.)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, lbeh, lastblad, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Kurouri, Ydmis", "Last Blade (3 Add Char - Ultra kill start max)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, lbeh2, lastblad, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Last Blade (2 Add Char)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, lbeho, lastblad, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Last Blade (2 Add Char - Ultra kill start max)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, lbha, lastblad, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Robert", "Last Blade (Boss hack, Alternate Set)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, lbseh, lastblad, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami, Kurouri, Ydmis", "Last Blade (3 Add Char - Ultra kill start max - Ultra pow hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, lbsk, lastblad, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGCG", "Last Blade Special Moves Revision Final (EGCG)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, lby, lastblad, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Last Blade (Add Musashi)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1998, lb2a, lastbld2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Alphax2", "Last Blade 2 (Add Kouryu)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, lb2b, lastbld2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Dodowang", "Last Blade 2 (Boss Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, lb2bh, lastbld2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "007325", "Last Blade 2 (Boss Easy Moves hack by 007325 2009-03-06)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, lb2bhd, lastbld2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Dodowang", "Last Blade 2 (Add Char with icons - EX mode choosing Speed + pressing C)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, lb2easy, lastbld2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "FGCH, Raymonose", "Last Blade 2 (Moves optimized for keyboard)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, lb2ed, lastbld2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Dodowang", "Last Blade 2 (EX mode choosing Speed + pressing C)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, lb2ebd, lastbld2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Dodowang", "Last Blade 2 (Add Char - EX mode choosing Speed + pressing C)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, lb2eh, lastbld2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis, Zhangshee", "Last Blade 2 (4 Add Char - Ultra kill start max set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, lb2eh2, lastbld2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Last Blade 2 (4 Add Char - Ultra kill start max - Ultra pow hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, lb2eho, lastbld2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Last Blade 2 (4 Add Char)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, lb2ehu, lastbld2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Last Blade 2 (4 Add Char - Ultra kill start max set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, lb2pl, lastbld2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "FCHT", "Last Blade 2 (Plus)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, lb2te, lastbld2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Last Blade 2 (hack te)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, lb2uh, lastbld2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yano", "Last Blade 2 (Yano's Ultimate hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, lb2wh, lastbld2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker", "Last Blade 2 (4 Add Char - 031017)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, lb2yd, lastbld2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Last Blade 2 (Ultra kill start max)", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/ngrbff.cpp b/docs/release/src/hbmame/drivers/ngrbff.cpp
new file mode 100644
index 00000000000..9b5147128dd
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/ngrbff.cpp
@@ -0,0 +1,667 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+// Fatal Fury 1,2,3,special ; Real Bout Fatal Fury 1,2,special
+
+
+
+ROM_START( fatfurspb )
+ ROM_REGION( 0x180000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "058b.p1", 0x000000, 0x100000, CRC(1222cf0a) SHA1(dab98ef9464e8759433958663f2625912295822b) )
+ ROM_LOAD16_WORD_SWAP( "058-p2.sp2", 0x100000, 0x080000, CRC(d7c71a6b) SHA1(b3428063031a2e5857da40a5d2ffa87fb550c1bb) )
+
+ NEO_SFIX_128K( "058-s1.s1", CRC(2df03197) SHA1(24083cfc97e720ac9e131c9fe37df57e27c49294) )
+
+ NEO_BIOS_AUDIO_128K( "058-m1.m1", CRC(ccc5186e) SHA1(cf9091c523c182aebfb928c91640b2d72fd70123) )
+
+ ROM_REGION( 0x500000, "ymsnd", 0 )
+ ROM_LOAD( "058-v1.v1", 0x000000, 0x200000, CRC(55d7ce84) SHA1(05ac6a395d9bf9166925acca176a8d6129f533c8) )
+ ROM_LOAD( "058-v2.v2", 0x200000, 0x200000, CRC(ee080b10) SHA1(29814fc21bbe30d37745c8918fab00c83a309be4) )
+ ROM_LOAD( "058-v3.v3", 0x400000, 0x100000, CRC(f9eb3d4a) SHA1(d1747f9460b965f6daf4f881ed4ecd04c5253434) )
+
+ ROM_REGION( 0xc00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "058-c1.c1", 0x000000, 0x200000, CRC(044ab13c) SHA1(569d283638a132bc163faac2a9055497017ee0d2) )
+ ROM_LOAD16_BYTE( "058-c2.c2", 0x000001, 0x200000, CRC(11e6bf96) SHA1(c093a4f93f13e07b276e28b30c2a14dda9135d8f) )
+ ROM_LOAD16_BYTE( "058-c3.c3", 0x400000, 0x200000, CRC(6f7938d5) SHA1(be057b0a3faeb76d5fff161d3e6fea8a26e11d2c) )
+ ROM_LOAD16_BYTE( "058-c4.c4", 0x400001, 0x200000, CRC(4ad066ff) SHA1(4e304646d954d5f7bbabc5d068e85de31d38830f) )
+ ROM_LOAD16_BYTE( "058-c5.c5", 0x800000, 0x200000, CRC(49c5e0bf) SHA1(f3784178f90751990ea47a082a6aa869ee3566c9) )
+ ROM_LOAD16_BYTE( "058-c6.c6", 0x800001, 0x200000, CRC(8ff1f43d) SHA1(6180ceb5412a3e2e34e9513a3283b9f63087f747) )
+ROM_END
+
+ROM_START( fatfurspbs )
+ ROM_REGION( 0x180000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "058bs.p1", 0x000000, 0x100000, CRC(8cd18f7f) SHA1(1f7a550bb5c71495bd52c66ff289f64dfa778ee4) )
+ ROM_LOAD16_WORD_SWAP( "058-p2.sp2", 0x100000, 0x080000, CRC(d7c71a6b) SHA1(b3428063031a2e5857da40a5d2ffa87fb550c1bb) )
+
+ NEO_SFIX_128K( "058-s1.s1", CRC(2df03197) SHA1(24083cfc97e720ac9e131c9fe37df57e27c49294) )
+
+ NEO_BIOS_AUDIO_128K( "058-m1.m1", CRC(ccc5186e) SHA1(cf9091c523c182aebfb928c91640b2d72fd70123) )
+
+ ROM_REGION( 0x500000, "ymsnd", 0 )
+ ROM_LOAD( "058-v1.v1", 0x000000, 0x200000, CRC(55d7ce84) SHA1(05ac6a395d9bf9166925acca176a8d6129f533c8) )
+ ROM_LOAD( "058-v2.v2", 0x200000, 0x200000, CRC(ee080b10) SHA1(29814fc21bbe30d37745c8918fab00c83a309be4) )
+ ROM_LOAD( "058-v3.v3", 0x400000, 0x100000, CRC(f9eb3d4a) SHA1(d1747f9460b965f6daf4f881ed4ecd04c5253434) )
+
+ ROM_REGION( 0xc00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "058-c1.c1", 0x000000, 0x200000, CRC(044ab13c) SHA1(569d283638a132bc163faac2a9055497017ee0d2) )
+ ROM_LOAD16_BYTE( "058-c2.c2", 0x000001, 0x200000, CRC(11e6bf96) SHA1(c093a4f93f13e07b276e28b30c2a14dda9135d8f) )
+ ROM_LOAD16_BYTE( "058-c3.c3", 0x400000, 0x200000, CRC(6f7938d5) SHA1(be057b0a3faeb76d5fff161d3e6fea8a26e11d2c) )
+ ROM_LOAD16_BYTE( "058-c4.c4", 0x400001, 0x200000, CRC(4ad066ff) SHA1(4e304646d954d5f7bbabc5d068e85de31d38830f) )
+ ROM_LOAD16_BYTE( "058-c5.c5", 0x800000, 0x200000, CRC(49c5e0bf) SHA1(f3784178f90751990ea47a082a6aa869ee3566c9) )
+ ROM_LOAD16_BYTE( "058-c6.c6", 0x800001, 0x200000, CRC(8ff1f43d) SHA1(6180ceb5412a3e2e34e9513a3283b9f63087f747) )
+ROM_END
+
+ROM_START( fatfurspbt )
+ ROM_REGION( 0x180000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "058bt.p1", 0x000000, 0x100000, CRC(67354471) SHA1(e189eeef14be9ec02668f51151434f0ec481ea65) )
+ ROM_LOAD16_WORD_SWAP( "058-p2.sp2", 0x100000, 0x080000, CRC(d7c71a6b) SHA1(b3428063031a2e5857da40a5d2ffa87fb550c1bb) )
+
+ NEO_SFIX_128K( "058-s1.s1", CRC(2df03197) SHA1(24083cfc97e720ac9e131c9fe37df57e27c49294) )
+
+ NEO_BIOS_AUDIO_128K( "058-m1.m1", CRC(ccc5186e) SHA1(cf9091c523c182aebfb928c91640b2d72fd70123) )
+
+ ROM_REGION( 0x500000, "ymsnd", 0 )
+ ROM_LOAD( "058-v1.v1", 0x000000, 0x200000, CRC(55d7ce84) SHA1(05ac6a395d9bf9166925acca176a8d6129f533c8) )
+ ROM_LOAD( "058-v2.v2", 0x200000, 0x200000, CRC(ee080b10) SHA1(29814fc21bbe30d37745c8918fab00c83a309be4) )
+ ROM_LOAD( "058-v3.v3", 0x400000, 0x100000, CRC(f9eb3d4a) SHA1(d1747f9460b965f6daf4f881ed4ecd04c5253434) )
+
+ ROM_REGION( 0xc00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "058-c1.c1", 0x000000, 0x200000, CRC(044ab13c) SHA1(569d283638a132bc163faac2a9055497017ee0d2) )
+ ROM_LOAD16_BYTE( "058-c2.c2", 0x000001, 0x200000, CRC(11e6bf96) SHA1(c093a4f93f13e07b276e28b30c2a14dda9135d8f) )
+ ROM_LOAD16_BYTE( "058-c3.c3", 0x400000, 0x200000, CRC(6f7938d5) SHA1(be057b0a3faeb76d5fff161d3e6fea8a26e11d2c) )
+ ROM_LOAD16_BYTE( "058-c4.c4", 0x400001, 0x200000, CRC(4ad066ff) SHA1(4e304646d954d5f7bbabc5d068e85de31d38830f) )
+ ROM_LOAD16_BYTE( "058-c5.c5", 0x800000, 0x200000, CRC(49c5e0bf) SHA1(f3784178f90751990ea47a082a6aa869ee3566c9) )
+ ROM_LOAD16_BYTE( "058-c6.c6", 0x800001, 0x200000, CRC(8ff1f43d) SHA1(6180ceb5412a3e2e34e9513a3283b9f63087f747) )
+ROM_END
+
+ROM_START( fatfurspeh ) /* Fatal Fury Special - (fatfspeh) - Enhance by Dodowang - (Can choose Ryo Sakazaki - works in AES/MVS mode) */
+ ROM_REGION( 0x180000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "058eh.p1", 0x000000, 0x100000, CRC(5da7db92) SHA1(755C90B1A722A844C0E518CA188D915317C5ABB0) )
+ ROM_LOAD16_WORD_SWAP( "058-p2.sp2", 0x100000, 0x080000, CRC(d7c71a6b) SHA1(b3428063031a2e5857da40a5d2ffa87fb550c1bb) )
+
+ NEO_SFIX_128K( "058-s1.s1", CRC(2df03197) SHA1(24083cfc97e720ac9e131c9fe37df57e27c49294) )
+
+ NEO_BIOS_AUDIO_128K( "058-m1.m1", CRC(ccc5186e) SHA1(cf9091c523c182aebfb928c91640b2d72fd70123) )
+
+ ROM_REGION( 0x500000, "ymsnd", 0 )
+ ROM_LOAD( "058-v1.v1", 0x000000, 0x200000, CRC(55d7ce84) SHA1(05ac6a395d9bf9166925acca176a8d6129f533c8) )
+ ROM_LOAD( "058-v2.v2", 0x200000, 0x200000, CRC(ee080b10) SHA1(29814fc21bbe30d37745c8918fab00c83a309be4) )
+ ROM_LOAD( "058-v3.v3", 0x400000, 0x100000, CRC(f9eb3d4a) SHA1(d1747f9460b965f6daf4f881ed4ecd04c5253434) )
+
+ ROM_REGION( 0xc00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "058-c1.c1", 0x000000, 0x200000, CRC(044ab13c) SHA1(569d283638a132bc163faac2a9055497017ee0d2) )
+ ROM_LOAD16_BYTE( "058-c2.c2", 0x000001, 0x200000, CRC(11e6bf96) SHA1(c093a4f93f13e07b276e28b30c2a14dda9135d8f) )
+ ROM_LOAD16_BYTE( "058-c3.c3", 0x400000, 0x200000, CRC(6f7938d5) SHA1(be057b0a3faeb76d5fff161d3e6fea8a26e11d2c) )
+ ROM_LOAD16_BYTE( "058-c4.c4", 0x400001, 0x200000, CRC(4ad066ff) SHA1(4e304646d954d5f7bbabc5d068e85de31d38830f) )
+ ROM_LOAD16_BYTE( "058-c5.c5", 0x800000, 0x200000, CRC(49c5e0bf) SHA1(f3784178f90751990ea47a082a6aa869ee3566c9) )
+ ROM_LOAD16_BYTE( "058-c6.c6", 0x800001, 0x200000, CRC(8ff1f43d) SHA1(6180ceb5412a3e2e34e9513a3283b9f63087f747) )
+ROM_END
+
+
+ROM_START( fatfury2b )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "047b.p1", 0x000000, 0x080000, CRC(a94a8fa5) SHA1(313e40c50d761f509c9826f064a588738a1b64ec) )
+ ROM_LOAD16_WORD_SWAP( "047b.p2", 0x080000, 0x080000, CRC(2a9beac5) SHA1(61378f89d64fef4c172825694f83229c2ab1a7af) )
+
+ NEO_SFIX_128K( "047-s1.s1", CRC(d7dbbf39) SHA1(29253e596f475ebd41a6e3bb53952e3a0ccd2eed) )
+
+ NEO_BIOS_AUDIO_128K( "047-m1.m1", CRC(820b0ba7) SHA1(5708248d89446e49184eaadb52f7c61b2b6c13c5) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "047-v1.v1", 0x000000, 0x200000, CRC(d9d00784) SHA1(f6a91eada8c23aa4518c4b82eeebca69f79d845c) )
+ ROM_LOAD( "047-v2.v2", 0x200000, 0x200000, CRC(2c9a4b33) SHA1(d4a1c0951c02c8919b3ec32ed96933634ff9e54c) )
+
+ ROM_REGION( 0x800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "047-c1.c1", 0x000000, 0x100000, CRC(f72a939e) SHA1(67fc398ec28061adca0d3be82bbe7297015800da) )
+ ROM_CONTINUE( 0x400000, 0x100000 )
+ ROM_LOAD16_BYTE( "047-c2.c2", 0x000001, 0x100000, CRC(05119a0d) SHA1(c2f100b73eb04f65b6ba6089d49aceb51b470ec6) )
+ ROM_CONTINUE( 0x400001, 0x100000 )
+ ROM_LOAD16_BYTE( "047-c3.c3", 0x200000, 0x100000, CRC(01e00738) SHA1(79654f24d777dd5eb68bafc3b8cb9db71d5822e2) )
+ ROM_CONTINUE( 0x600000, 0x100000 )
+ ROM_LOAD16_BYTE( "047-c4.c4", 0x200001, 0x100000, CRC(9fe27432) SHA1(89d22d77ba8bc6d1f6c974195c34ad61b9010de7) )
+ ROM_CONTINUE( 0x600001, 0x100000 )
+ROM_END
+
+
+ROM_START( fatfury3b ) /* Fatal Fury 3 - Hack by Creamymami - (Can choose Ryuji Yamazaki, Jin Chonshu and Jin Chonrei) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "069b.p1", 0x000000, 0x100000, CRC(743ad8a1) SHA1(962D11224B14BA9D5BE554E45B4ACA9E3A818610) )
+ ROM_LOAD16_WORD_SWAP( "069-sp2.sp2", 0x100000, 0x200000, CRC(dbe963ed) SHA1(8ece7f663cfe8e563576a397e41161d392cee67e) )
+
+ NEO_SFIX_128K( "069-s1.s1", CRC(0b33a800) SHA1(b7d2cc97da4f30ddebc7b801f5e1d17d2306b2db) )
+
+ NEO_BIOS_AUDIO_128K( "069-m1.m1", CRC(fce72926) SHA1(a40c74f793900b8542f0b8383ce4bf46fca112d4) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "069-v1.v1", 0x000000, 0x400000, CRC(2bdbd4db) SHA1(5f4fecf69c2329d699cbd45829c19303b1e2a80e) )
+ ROM_LOAD( "069-v2.v2", 0x400000, 0x400000, CRC(a698a487) SHA1(11b8bc53bc26a51f4a408e900e3769958625c4ed) )
+ ROM_LOAD( "069-v3.v3", 0x800000, 0x200000, CRC(581c5304) SHA1(e9550ec547b4f605afed996b22d711f49b48fa92) )
+
+ ROM_REGION( 0x1400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "069-c1.c1", 0x0000000, 0x400000, CRC(e302f93c) SHA1(d8610b14900b2b8fe691b67ca9b1abb335dbff74) )
+ ROM_LOAD16_BYTE( "069-c2.c2", 0x0000001, 0x400000, CRC(1053a455) SHA1(69501bfac68739e63d798045b812badd251d57b8) )
+ ROM_LOAD16_BYTE( "069-c3.c3", 0x0800000, 0x400000, CRC(1c0fde2f) SHA1(cf6c2ef56c03a861de3b0b6dc0d7c9204d947f9d) )
+ ROM_LOAD16_BYTE( "069-c4.c4", 0x0800001, 0x400000, CRC(a25fc3d0) SHA1(83cb349e2f1032652060b233e741fb893be5af16) )
+ ROM_LOAD16_BYTE( "069-c5.c5", 0x1000000, 0x200000, CRC(b3ec6fa6) SHA1(7e4c8ee9dd8d9a25ff183d9d8b05f38769348bc7) )
+ ROM_LOAD16_BYTE( "069-c6.c6", 0x1000001, 0x200000, CRC(69210441) SHA1(6d496c549dba65caabeaffe5b762e86f9d648a26) )
+ROM_END
+
+ROM_START( fatfury3bd ) /* Fatal Fury 3 - Hack by Creamymami and Dodowang - (Can choose Ryuji Yamazaki, Jin Chonshu and Jin Chonrei) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "069bd.p1", 0x000000, 0x100000, CRC(532c2930) SHA1(A65A39A79820138F275F75563F548240DD53F371) )
+ ROM_LOAD16_WORD_SWAP( "069-sp2.sp2", 0x100000, 0x200000, CRC(dbe963ed) SHA1(8ece7f663cfe8e563576a397e41161d392cee67e) )
+
+ NEO_SFIX_128K( "069-s1.s1", CRC(0b33a800) SHA1(b7d2cc97da4f30ddebc7b801f5e1d17d2306b2db) )
+
+ NEO_BIOS_AUDIO_128K( "069-m1.m1", CRC(fce72926) SHA1(a40c74f793900b8542f0b8383ce4bf46fca112d4) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "069-v1.v1", 0x000000, 0x400000, CRC(2bdbd4db) SHA1(5f4fecf69c2329d699cbd45829c19303b1e2a80e) )
+ ROM_LOAD( "069-v2.v2", 0x400000, 0x400000, CRC(a698a487) SHA1(11b8bc53bc26a51f4a408e900e3769958625c4ed) )
+ ROM_LOAD( "069-v3.v3", 0x800000, 0x200000, CRC(581c5304) SHA1(e9550ec547b4f605afed996b22d711f49b48fa92) )
+
+ ROM_REGION( 0x1400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "069-c1.c1", 0x0000000, 0x400000, CRC(e302f93c) SHA1(d8610b14900b2b8fe691b67ca9b1abb335dbff74) )
+ ROM_LOAD16_BYTE( "069-c2.c2", 0x0000001, 0x400000, CRC(1053a455) SHA1(69501bfac68739e63d798045b812badd251d57b8) )
+ ROM_LOAD16_BYTE( "069-c3.c3", 0x0800000, 0x400000, CRC(1c0fde2f) SHA1(cf6c2ef56c03a861de3b0b6dc0d7c9204d947f9d) )
+ ROM_LOAD16_BYTE( "069-c4.c4", 0x0800001, 0x400000, CRC(a25fc3d0) SHA1(83cb349e2f1032652060b233e741fb893be5af16) )
+ ROM_LOAD16_BYTE( "069-c5.c5", 0x1000000, 0x200000, CRC(b3ec6fa6) SHA1(7e4c8ee9dd8d9a25ff183d9d8b05f38769348bc7) )
+ ROM_LOAD16_BYTE( "069-c6.c6", 0x1000001, 0x200000, CRC(69210441) SHA1(6d496c549dba65caabeaffe5b762e86f9d648a26) )
+ROM_END
+
+ROM_START( fatfury3bh )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "069bh.p1", 0x000000, 0x100000, CRC(b8362f59) SHA1(9ae1cd259d9667fefcba0452ea658cf72aba189e) )
+ ROM_LOAD16_WORD_SWAP( "069-sp2.sp2", 0x100000, 0x200000, CRC(dbe963ed) SHA1(8ece7f663cfe8e563576a397e41161d392cee67e) )
+
+ NEO_SFIX_128K( "069-s1.s1", CRC(0b33a800) SHA1(b7d2cc97da4f30ddebc7b801f5e1d17d2306b2db) )
+
+ NEO_BIOS_AUDIO_128K( "069-m1.m1", CRC(fce72926) SHA1(a40c74f793900b8542f0b8383ce4bf46fca112d4) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "069-v1.v1", 0x000000, 0x400000, CRC(2bdbd4db) SHA1(5f4fecf69c2329d699cbd45829c19303b1e2a80e) )
+ ROM_LOAD( "069-v2.v2", 0x400000, 0x400000, CRC(a698a487) SHA1(11b8bc53bc26a51f4a408e900e3769958625c4ed) )
+ ROM_LOAD( "069-v3.v3", 0x800000, 0x200000, CRC(581c5304) SHA1(e9550ec547b4f605afed996b22d711f49b48fa92) )
+
+ ROM_REGION( 0x1400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "069-c1.c1", 0x0000000, 0x400000, CRC(e302f93c) SHA1(d8610b14900b2b8fe691b67ca9b1abb335dbff74) )
+ ROM_LOAD16_BYTE( "069-c2.c2", 0x0000001, 0x400000, CRC(1053a455) SHA1(69501bfac68739e63d798045b812badd251d57b8) )
+ ROM_LOAD16_BYTE( "069-c3.c3", 0x0800000, 0x400000, CRC(1c0fde2f) SHA1(cf6c2ef56c03a861de3b0b6dc0d7c9204d947f9d) )
+ ROM_LOAD16_BYTE( "069-c4.c4", 0x0800001, 0x400000, CRC(a25fc3d0) SHA1(83cb349e2f1032652060b233e741fb893be5af16) )
+ ROM_LOAD16_BYTE( "069-c5.c5", 0x1000000, 0x200000, CRC(b3ec6fa6) SHA1(7e4c8ee9dd8d9a25ff183d9d8b05f38769348bc7) )
+ ROM_LOAD16_BYTE( "069-c6.c6", 0x1000001, 0x200000, CRC(69210441) SHA1(6d496c549dba65caabeaffe5b762e86f9d648a26) )
+ROM_END
+
+ROM_START( fatfury3eh ) /* Fatal Fury 3 - Enhance by Creamymami and Dodowang - (Can choose Ryuji Yamazaki, Jin Chonshu and Jin Chonrei - all characters ultra kill style change) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "069eh.p1", 0x000000, 0x100000, CRC(e07140da) SHA1(205D7E2C7BE66959430A8ECFA20A368C8BF90F62) )
+ ROM_LOAD16_WORD_SWAP( "069-sp2.sp2", 0x100000, 0x200000, CRC(dbe963ed) SHA1(8ece7f663cfe8e563576a397e41161d392cee67e) )
+
+ NEO_SFIX_128K( "069-s1.s1", CRC(0b33a800) SHA1(b7d2cc97da4f30ddebc7b801f5e1d17d2306b2db) )
+
+ NEO_BIOS_AUDIO_128K( "069-m1.m1", CRC(fce72926) SHA1(a40c74f793900b8542f0b8383ce4bf46fca112d4) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "069-v1.v1", 0x000000, 0x400000, CRC(2bdbd4db) SHA1(5f4fecf69c2329d699cbd45829c19303b1e2a80e) )
+ ROM_LOAD( "069-v2.v2", 0x400000, 0x400000, CRC(a698a487) SHA1(11b8bc53bc26a51f4a408e900e3769958625c4ed) )
+ ROM_LOAD( "069-v3.v3", 0x800000, 0x200000, CRC(581c5304) SHA1(e9550ec547b4f605afed996b22d711f49b48fa92) )
+
+ ROM_REGION( 0x1400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "069-c1.c1", 0x0000000, 0x400000, CRC(e302f93c) SHA1(d8610b14900b2b8fe691b67ca9b1abb335dbff74) )
+ ROM_LOAD16_BYTE( "069-c2.c2", 0x0000001, 0x400000, CRC(1053a455) SHA1(69501bfac68739e63d798045b812badd251d57b8) )
+ ROM_LOAD16_BYTE( "069-c3.c3", 0x0800000, 0x400000, CRC(1c0fde2f) SHA1(cf6c2ef56c03a861de3b0b6dc0d7c9204d947f9d) )
+ ROM_LOAD16_BYTE( "069-c4.c4", 0x0800001, 0x400000, CRC(a25fc3d0) SHA1(83cb349e2f1032652060b233e741fb893be5af16) )
+ ROM_LOAD16_BYTE( "069-c5.c5", 0x1000000, 0x200000, CRC(b3ec6fa6) SHA1(7e4c8ee9dd8d9a25ff183d9d8b05f38769348bc7) )
+ ROM_LOAD16_BYTE( "069-c6.c6", 0x1000001, 0x200000, CRC(69210441) SHA1(6d496c549dba65caabeaffe5b762e86f9d648a26) )
+ROM_END
+
+
+ROM_START( rbff1ud ) /* Real Bout Fatal Fury - Enhance by Dodowang - (All characters ultra kill style change) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "095ud.p1", 0x000000, 0x100000, CRC(fa5e3c0f) SHA1(6391ad22eabf0246aa3b9f6d9f821cd58d2e5c71) )
+ ROM_LOAD16_WORD_SWAP( "095-p2.sp2", 0x100000, 0x200000, CRC(cc15826e) SHA1(44d6ac6c0ca697a6f367dcfd809b1e1771cb0635) )
+
+ NEO_SFIX_128K( "095-s1.s1", CRC(b6bf5e08) SHA1(b527355c35ea097f3448676f2ffa65b8e56ae30c) )
+
+ NEO_BIOS_AUDIO_128K( "095-m1.m1", CRC(653492a7) SHA1(39e511fb9ed5d2135dc8428a31d0baafb2ab36e0) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "069-v1.v1", 0x000000, 0x400000, CRC(2bdbd4db) SHA1(5f4fecf69c2329d699cbd45829c19303b1e2a80e) )
+ ROM_LOAD( "069-v2.v2", 0x400000, 0x400000, CRC(a698a487) SHA1(11b8bc53bc26a51f4a408e900e3769958625c4ed) )
+ ROM_LOAD( "095-v3.v3", 0x800000, 0x400000, CRC(189d1c6c) SHA1(f0b8cd1ee40ea3feeb2800f0723b451ec8240203) )
+
+ ROM_REGION( 0x1c00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "069-c1.c1", 0x0000000, 0x400000, CRC(e302f93c) SHA1(d8610b14900b2b8fe691b67ca9b1abb335dbff74) )
+ ROM_LOAD16_BYTE( "069-c2.c2", 0x0000001, 0x400000, CRC(1053a455) SHA1(69501bfac68739e63d798045b812badd251d57b8) )
+ ROM_LOAD16_BYTE( "069-c3.c3", 0x0800000, 0x400000, CRC(1c0fde2f) SHA1(cf6c2ef56c03a861de3b0b6dc0d7c9204d947f9d) )
+ ROM_LOAD16_BYTE( "069-c4.c4", 0x0800001, 0x400000, CRC(a25fc3d0) SHA1(83cb349e2f1032652060b233e741fb893be5af16) )
+ ROM_LOAD16_BYTE( "095-c5.c5", 0x1000000, 0x400000, CRC(8b9b65df) SHA1(e2a7e20855501f240bcd22f5cc92fcb4a9806abe) )
+ ROM_LOAD16_BYTE( "095-c6.c6", 0x1000001, 0x400000, CRC(3e164718) SHA1(53217f938c8964c1ca68a6fd5249c4169a5ac8e6) )
+ ROM_LOAD16_BYTE( "095-c7.c7", 0x1800000, 0x200000, CRC(ca605e12) SHA1(5150b835247fd705bc1dece97d423d9c20a51416) )
+ ROM_LOAD16_BYTE( "095-c8.c8", 0x1800001, 0x200000, CRC(4e6beb6c) SHA1(c0ac7cfc832ace6ad52c58f5da3a8101baead749) )
+ROM_END
+
+ROM_START( rbffsb ) /* Real Bout Fatal Fury Special - Hack by Creamymami - (Can choose Geese Howard) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "223b.p1", 0x000000, 0x100000, CRC(bb52545f) SHA1(1d082b3f2d71f8510d63a779cbcf5861a066ca26) )
+ ROM_LOAD16_WORD_SWAP( "223-p2.sp2", 0x100000, 0x400000, CRC(addd8f08) SHA1(abaf5b86c8ec915c07ef2d83fce9ad03acaa4817) )
+
+ NEO_SFIX_128K( "223-s1.s1", CRC(7ecd6e8c) SHA1(465455afc4d83cbb118142be4671b2539ffafd79) )
+
+ NEO_BIOS_AUDIO_128K( "223-m1.m1", CRC(3fee46bf) SHA1(e750f85233953853618fcdff980a4721af1710a3) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "223-v1.v1", 0x000000, 0x400000, CRC(76673869) SHA1(78a26afa29f73de552ffabdbf3fc4bf26be8ae9e) )
+ ROM_LOAD( "223-v2.v2", 0x400000, 0x400000, CRC(7a275acd) SHA1(8afe87ce822614262b72a90b371fc79155ac0d0c) )
+ ROM_LOAD( "223-v3.v3", 0x800000, 0x400000, CRC(5a797fd2) SHA1(94958e334f86d4d71059af8138f255b8d97a3b01) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "223-c1.c1", 0x0000000, 0x400000, CRC(ebab05e2) SHA1(0d60a8b631e3a3dcfbfdd7779dee081c9548ec39) )
+ ROM_LOAD16_BYTE( "223-c2.c2", 0x0000001, 0x400000, CRC(641868c3) SHA1(aa1aeb661842276b3326bfa4f1456f75bfecd52e) )
+ ROM_LOAD16_BYTE( "223-c3.c3", 0x0800000, 0x400000, CRC(ca00191f) SHA1(96977febfcc513e1848d7029ff169cdf51104038) )
+ ROM_LOAD16_BYTE( "223-c4.c4", 0x0800001, 0x400000, CRC(1f23d860) SHA1(e18df52f898a51074e07a0b8c6e75873e7cde35e) )
+ ROM_LOAD16_BYTE( "223-c5.c5", 0x1000000, 0x400000, CRC(321e362c) SHA1(39bd189334278f266124c97c6f70995f6f171cea) )
+ ROM_LOAD16_BYTE( "223-c6.c6", 0x1000001, 0x400000, CRC(d8fcef90) SHA1(bbccacb27f1e587bc144fe7ce68bd7b327ceaaee) )
+ ROM_LOAD16_BYTE( "223-c7.c7", 0x1800000, 0x400000, CRC(bc80dd2d) SHA1(086f372015eede88c6c578595fe915e28a589d2f) )
+ ROM_LOAD16_BYTE( "223-c8.c8", 0x1800001, 0x400000, CRC(5ad62102) SHA1(e28cc9840caed2a1a8bd65a03bef05231071040c) )
+ROM_END
+
+ROM_START( rbffseh ) /* Real Bout Fatal Fury Special - Enhance by Creamymami - (Can choose Geese Howard - ultra power hack) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "223eh.p1", 0x000000, 0x100000, CRC(6fe86622) SHA1(7cb68f4928c3fa9a07f7f806795628d70a24e693) )
+ ROM_LOAD16_WORD_SWAP( "223-p2.sp2", 0x100000, 0x400000, CRC(addd8f08) SHA1(abaf5b86c8ec915c07ef2d83fce9ad03acaa4817) )
+
+ NEO_SFIX_128K( "223-s1.s1", CRC(7ecd6e8c) SHA1(465455afc4d83cbb118142be4671b2539ffafd79) )
+
+ NEO_BIOS_AUDIO_128K( "223-m1.m1", CRC(3fee46bf) SHA1(e750f85233953853618fcdff980a4721af1710a3) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "223-v1.v1", 0x000000, 0x400000, CRC(76673869) SHA1(78a26afa29f73de552ffabdbf3fc4bf26be8ae9e) )
+ ROM_LOAD( "223-v2.v2", 0x400000, 0x400000, CRC(7a275acd) SHA1(8afe87ce822614262b72a90b371fc79155ac0d0c) )
+ ROM_LOAD( "223-v3.v3", 0x800000, 0x400000, CRC(5a797fd2) SHA1(94958e334f86d4d71059af8138f255b8d97a3b01) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "223-c1.c1", 0x0000000, 0x400000, CRC(ebab05e2) SHA1(0d60a8b631e3a3dcfbfdd7779dee081c9548ec39) )
+ ROM_LOAD16_BYTE( "223-c2.c2", 0x0000001, 0x400000, CRC(641868c3) SHA1(aa1aeb661842276b3326bfa4f1456f75bfecd52e) )
+ ROM_LOAD16_BYTE( "223-c3.c3", 0x0800000, 0x400000, CRC(ca00191f) SHA1(96977febfcc513e1848d7029ff169cdf51104038) )
+ ROM_LOAD16_BYTE( "223-c4.c4", 0x0800001, 0x400000, CRC(1f23d860) SHA1(e18df52f898a51074e07a0b8c6e75873e7cde35e) )
+ ROM_LOAD16_BYTE( "223-c5.c5", 0x1000000, 0x400000, CRC(321e362c) SHA1(39bd189334278f266124c97c6f70995f6f171cea) )
+ ROM_LOAD16_BYTE( "223-c6.c6", 0x1000001, 0x400000, CRC(d8fcef90) SHA1(bbccacb27f1e587bc144fe7ce68bd7b327ceaaee) )
+ ROM_LOAD16_BYTE( "223-c7.c7", 0x1800000, 0x400000, CRC(bc80dd2d) SHA1(086f372015eede88c6c578595fe915e28a589d2f) )
+ ROM_LOAD16_BYTE( "223-c8.c8", 0x1800001, 0x400000, CRC(5ad62102) SHA1(e28cc9840caed2a1a8bd65a03bef05231071040c) )
+ROM_END
+
+ROM_START( rbffsehd ) /* Real Bout Fatal Fury Special - Enhance by Dodowang - (All charcaters ultra kill style change - can choose Geese Howard - can choose 4 EX characters) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "223ehd.p1", 0x000000, 0x100000, CRC(db89d64b) SHA1(6018ab688865c2c51e73daf0a33ec8ef5c65de77) )
+ ROM_LOAD16_WORD_SWAP( "223-p2.sp2", 0x100000, 0x400000, CRC(addd8f08) SHA1(abaf5b86c8ec915c07ef2d83fce9ad03acaa4817) )
+
+ NEO_SFIX_128K( "223-s1.s1", CRC(7ecd6e8c) SHA1(465455afc4d83cbb118142be4671b2539ffafd79) )
+
+ NEO_BIOS_AUDIO_128K( "223-m1.m1", CRC(3fee46bf) SHA1(e750f85233953853618fcdff980a4721af1710a3) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "223-v1.v1", 0x000000, 0x400000, CRC(76673869) SHA1(78a26afa29f73de552ffabdbf3fc4bf26be8ae9e) )
+ ROM_LOAD( "223-v2.v2", 0x400000, 0x400000, CRC(7a275acd) SHA1(8afe87ce822614262b72a90b371fc79155ac0d0c) )
+ ROM_LOAD( "223-v3.v3", 0x800000, 0x400000, CRC(5a797fd2) SHA1(94958e334f86d4d71059af8138f255b8d97a3b01) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "223-c1.c1", 0x0000000, 0x400000, CRC(ebab05e2) SHA1(0d60a8b631e3a3dcfbfdd7779dee081c9548ec39) )
+ ROM_LOAD16_BYTE( "223-c2.c2", 0x0000001, 0x400000, CRC(641868c3) SHA1(aa1aeb661842276b3326bfa4f1456f75bfecd52e) )
+ ROM_LOAD16_BYTE( "223-c3.c3", 0x0800000, 0x400000, CRC(ca00191f) SHA1(96977febfcc513e1848d7029ff169cdf51104038) )
+ ROM_LOAD16_BYTE( "223-c4.c4", 0x0800001, 0x400000, CRC(1f23d860) SHA1(e18df52f898a51074e07a0b8c6e75873e7cde35e) )
+ ROM_LOAD16_BYTE( "223-c5.c5", 0x1000000, 0x400000, CRC(321e362c) SHA1(39bd189334278f266124c97c6f70995f6f171cea) )
+ ROM_LOAD16_BYTE( "223-c6.c6", 0x1000001, 0x400000, CRC(d8fcef90) SHA1(bbccacb27f1e587bc144fe7ce68bd7b327ceaaee) )
+ ROM_LOAD16_BYTE( "223-c7.c7", 0x1800000, 0x400000, CRC(bc80dd2d) SHA1(086f372015eede88c6c578595fe915e28a589d2f) )
+ ROM_LOAD16_BYTE( "223-c8.c8", 0x1800001, 0x400000, CRC(5ad62102) SHA1(e28cc9840caed2a1a8bd65a03bef05231071040c) )
+ROM_END
+
+ROM_START( rbffspbd )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "223bd.p1", 0x000000, 0x100000, CRC(04cb6d40) SHA1(97427ce56aeb3eaa851297a7beae125a34ca82c4) )
+ ROM_LOAD16_WORD_SWAP( "223-p2.sp2", 0x100000, 0x400000, CRC(addd8f08) SHA1(abaf5b86c8ec915c07ef2d83fce9ad03acaa4817) )
+
+ NEO_SFIX_128K( "223-s1.s1", CRC(7ecd6e8c) SHA1(465455afc4d83cbb118142be4671b2539ffafd79) )
+
+ NEO_BIOS_AUDIO_128K( "223-m1.m1", CRC(3fee46bf) SHA1(e750f85233953853618fcdff980a4721af1710a3) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "223-v1.v1", 0x000000, 0x400000, CRC(76673869) SHA1(78a26afa29f73de552ffabdbf3fc4bf26be8ae9e) )
+ ROM_LOAD( "223-v2.v2", 0x400000, 0x400000, CRC(7a275acd) SHA1(8afe87ce822614262b72a90b371fc79155ac0d0c) )
+ ROM_LOAD( "223-v3.v3", 0x800000, 0x400000, CRC(5a797fd2) SHA1(94958e334f86d4d71059af8138f255b8d97a3b01) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "223-c1.c1", 0x0000000, 0x400000, CRC(ebab05e2) SHA1(0d60a8b631e3a3dcfbfdd7779dee081c9548ec39) )
+ ROM_LOAD16_BYTE( "223-c2.c2", 0x0000001, 0x400000, CRC(641868c3) SHA1(aa1aeb661842276b3326bfa4f1456f75bfecd52e) )
+ ROM_LOAD16_BYTE( "223-c3.c3", 0x0800000, 0x400000, CRC(ca00191f) SHA1(96977febfcc513e1848d7029ff169cdf51104038) )
+ ROM_LOAD16_BYTE( "223-c4.c4", 0x0800001, 0x400000, CRC(1f23d860) SHA1(e18df52f898a51074e07a0b8c6e75873e7cde35e) )
+ ROM_LOAD16_BYTE( "223-c5.c5", 0x1000000, 0x400000, CRC(321e362c) SHA1(39bd189334278f266124c97c6f70995f6f171cea) )
+ ROM_LOAD16_BYTE( "223-c6.c6", 0x1000001, 0x400000, CRC(d8fcef90) SHA1(bbccacb27f1e587bc144fe7ce68bd7b327ceaaee) )
+ ROM_LOAD16_BYTE( "223-c7.c7", 0x1800000, 0x400000, CRC(bc80dd2d) SHA1(086f372015eede88c6c578595fe915e28a589d2f) )
+ ROM_LOAD16_BYTE( "223-c8.c8", 0x1800001, 0x400000, CRC(5ad62102) SHA1(e28cc9840caed2a1a8bd65a03bef05231071040c) )
+ROM_END
+
+ROM_START( rbffspecbs )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "223bs.p1", 0x000000, 0x100000, CRC(abf2a6e7) SHA1(59c5d253c66aad2b352ccf752d2a90f3ea229897) )
+ ROM_LOAD16_WORD_SWAP( "223-p2.sp2", 0x100000, 0x400000, CRC(addd8f08) SHA1(abaf5b86c8ec915c07ef2d83fce9ad03acaa4817) )
+
+ NEO_SFIX_128K( "223-s1.s1", CRC(7ecd6e8c) SHA1(465455afc4d83cbb118142be4671b2539ffafd79) )
+
+ NEO_BIOS_AUDIO_128K( "223-m1.m1", CRC(3fee46bf) SHA1(e750f85233953853618fcdff980a4721af1710a3) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "223-v1.v1", 0x000000, 0x400000, CRC(76673869) SHA1(78a26afa29f73de552ffabdbf3fc4bf26be8ae9e) )
+ ROM_LOAD( "223-v2.v2", 0x400000, 0x400000, CRC(7a275acd) SHA1(8afe87ce822614262b72a90b371fc79155ac0d0c) )
+ ROM_LOAD( "223-v3.v3", 0x800000, 0x400000, CRC(5a797fd2) SHA1(94958e334f86d4d71059af8138f255b8d97a3b01) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "223-c1.c1", 0x0000000, 0x400000, CRC(ebab05e2) SHA1(0d60a8b631e3a3dcfbfdd7779dee081c9548ec39) )
+ ROM_LOAD16_BYTE( "223-c2.c2", 0x0000001, 0x400000, CRC(641868c3) SHA1(aa1aeb661842276b3326bfa4f1456f75bfecd52e) )
+ ROM_LOAD16_BYTE( "223-c3.c3", 0x0800000, 0x400000, CRC(ca00191f) SHA1(96977febfcc513e1848d7029ff169cdf51104038) )
+ ROM_LOAD16_BYTE( "223-c4.c4", 0x0800001, 0x400000, CRC(1f23d860) SHA1(e18df52f898a51074e07a0b8c6e75873e7cde35e) )
+ ROM_LOAD16_BYTE( "223-c5.c5", 0x1000000, 0x400000, CRC(321e362c) SHA1(39bd189334278f266124c97c6f70995f6f171cea) )
+ ROM_LOAD16_BYTE( "223-c6.c6", 0x1000001, 0x400000, CRC(d8fcef90) SHA1(bbccacb27f1e587bc144fe7ce68bd7b327ceaaee) )
+ ROM_LOAD16_BYTE( "223-c7.c7", 0x1800000, 0x400000, CRC(bc80dd2d) SHA1(086f372015eede88c6c578595fe915e28a589d2f) )
+ ROM_LOAD16_BYTE( "223-c8.c8", 0x1800001, 0x400000, CRC(5ad62102) SHA1(e28cc9840caed2a1a8bd65a03bef05231071040c) )
+ROM_END
+
+ROM_START( rbffspy ) /* Real Bout Fatal Fury Special - Enhance by Ydmis - (Ultra power hack) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "223py.p1", 0x000000, 0x100000, CRC(2cf01f60) SHA1(fcaf1f9b91af5a035b8ee28cff6e3a72e73766fd) )
+ ROM_LOAD16_WORD_SWAP( "223-p2.sp2", 0x100000, 0x400000, CRC(addd8f08) SHA1(abaf5b86c8ec915c07ef2d83fce9ad03acaa4817) )
+
+ NEO_SFIX_128K( "223-s1.s1", CRC(7ecd6e8c) SHA1(465455afc4d83cbb118142be4671b2539ffafd79) )
+
+ NEO_BIOS_AUDIO_128K( "223-m1.m1", CRC(3fee46bf) SHA1(e750f85233953853618fcdff980a4721af1710a3) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "223-v1.v1", 0x000000, 0x400000, CRC(76673869) SHA1(78a26afa29f73de552ffabdbf3fc4bf26be8ae9e) )
+ ROM_LOAD( "223-v2.v2", 0x400000, 0x400000, CRC(7a275acd) SHA1(8afe87ce822614262b72a90b371fc79155ac0d0c) )
+ ROM_LOAD( "223-v3.v3", 0x800000, 0x400000, CRC(5a797fd2) SHA1(94958e334f86d4d71059af8138f255b8d97a3b01) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "223-c1.c1", 0x0000000, 0x400000, CRC(ebab05e2) SHA1(0d60a8b631e3a3dcfbfdd7779dee081c9548ec39) )
+ ROM_LOAD16_BYTE( "223-c2.c2", 0x0000001, 0x400000, CRC(641868c3) SHA1(aa1aeb661842276b3326bfa4f1456f75bfecd52e) )
+ ROM_LOAD16_BYTE( "223-c3.c3", 0x0800000, 0x400000, CRC(ca00191f) SHA1(96977febfcc513e1848d7029ff169cdf51104038) )
+ ROM_LOAD16_BYTE( "223-c4.c4", 0x0800001, 0x400000, CRC(1f23d860) SHA1(e18df52f898a51074e07a0b8c6e75873e7cde35e) )
+ ROM_LOAD16_BYTE( "223-c5.c5", 0x1000000, 0x400000, CRC(321e362c) SHA1(39bd189334278f266124c97c6f70995f6f171cea) )
+ ROM_LOAD16_BYTE( "223-c6.c6", 0x1000001, 0x400000, CRC(d8fcef90) SHA1(bbccacb27f1e587bc144fe7ce68bd7b327ceaaee) )
+ ROM_LOAD16_BYTE( "223-c7.c7", 0x1800000, 0x400000, CRC(bc80dd2d) SHA1(086f372015eede88c6c578595fe915e28a589d2f) )
+ ROM_LOAD16_BYTE( "223-c8.c8", 0x1800001, 0x400000, CRC(5ad62102) SHA1(e28cc9840caed2a1a8bd65a03bef05231071040c) )
+ROM_END
+
+ROM_START( rbffsud ) /* Real Bout Fatal Fury Special - Enhance by Dodowang - (All charcaters ultra kill style change) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "223ud.p1", 0x000000, 0x100000, CRC(b173df6b) SHA1(2c03eeee842b6a583a352c5414633ffc9a430fbf) )
+ ROM_LOAD16_WORD_SWAP( "223-p2.sp2", 0x100000, 0x400000, CRC(addd8f08) SHA1(abaf5b86c8ec915c07ef2d83fce9ad03acaa4817) )
+
+ NEO_SFIX_128K( "223-s1.s1", CRC(7ecd6e8c) SHA1(465455afc4d83cbb118142be4671b2539ffafd79) )
+
+ NEO_BIOS_AUDIO_128K( "223-m1.m1", CRC(3fee46bf) SHA1(e750f85233953853618fcdff980a4721af1710a3) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "223-v1.v1", 0x000000, 0x400000, CRC(76673869) SHA1(78a26afa29f73de552ffabdbf3fc4bf26be8ae9e) )
+ ROM_LOAD( "223-v2.v2", 0x400000, 0x400000, CRC(7a275acd) SHA1(8afe87ce822614262b72a90b371fc79155ac0d0c) )
+ ROM_LOAD( "223-v3.v3", 0x800000, 0x400000, CRC(5a797fd2) SHA1(94958e334f86d4d71059af8138f255b8d97a3b01) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "223-c1.c1", 0x0000000, 0x400000, CRC(ebab05e2) SHA1(0d60a8b631e3a3dcfbfdd7779dee081c9548ec39) )
+ ROM_LOAD16_BYTE( "223-c2.c2", 0x0000001, 0x400000, CRC(641868c3) SHA1(aa1aeb661842276b3326bfa4f1456f75bfecd52e) )
+ ROM_LOAD16_BYTE( "223-c3.c3", 0x0800000, 0x400000, CRC(ca00191f) SHA1(96977febfcc513e1848d7029ff169cdf51104038) )
+ ROM_LOAD16_BYTE( "223-c4.c4", 0x0800001, 0x400000, CRC(1f23d860) SHA1(e18df52f898a51074e07a0b8c6e75873e7cde35e) )
+ ROM_LOAD16_BYTE( "223-c5.c5", 0x1000000, 0x400000, CRC(321e362c) SHA1(39bd189334278f266124c97c6f70995f6f171cea) )
+ ROM_LOAD16_BYTE( "223-c6.c6", 0x1000001, 0x400000, CRC(d8fcef90) SHA1(bbccacb27f1e587bc144fe7ce68bd7b327ceaaee) )
+ ROM_LOAD16_BYTE( "223-c7.c7", 0x1800000, 0x400000, CRC(bc80dd2d) SHA1(086f372015eede88c6c578595fe915e28a589d2f) )
+ ROM_LOAD16_BYTE( "223-c8.c8", 0x1800001, 0x400000, CRC(5ad62102) SHA1(e28cc9840caed2a1a8bd65a03bef05231071040c) )
+ROM_END
+
+
+ROM_START( rbff2b ) /* Real Bout Fatal Fury 2 - Hack by Ydmis - (Can choose Alfred) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "240b.p1", 0x000000, 0x100000, CRC(94429c9f) SHA1(3c7df75eb6dec674a309f7e1e19557f78d8157a2) )
+ ROM_LOAD16_WORD_SWAP( "240-p2.sp2", 0x100000, 0x400000, CRC(960aa88d) SHA1(3d9e785891871af90313f178dca2724633406674) )
+
+ NEO_SFIX_128K( "240-s1.s1", CRC(da3b40de) SHA1(e6bf74e057ac6fe1f249a7547f13ba7fbc694561) )
+
+ NEO_BIOS_AUDIO_256K( "240-m1.m1", CRC(ed482791) SHA1(1f54a45967cb7842c33aa24be322c9f33ff75ac3) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "240-v1.v1", 0x000000, 0x400000, CRC(f796265a) SHA1(736dff37eb91fc856b4d189249fb0de9b6c0813a) )
+ ROM_LOAD( "240-v2.v2", 0x400000, 0x400000, CRC(2cb3f3bb) SHA1(697e677890892f4b028c9a27c66809ca0a8a9b18) )
+ ROM_LOAD( "240b.v3", 0x800000, 0x400000, CRC(df77b7fa) SHA1(4df971ce20bdb8c1ce8cc1692a32ac69505ffa9a) )
+ ROM_LOAD( "240b.v4", 0xc00000, 0x400000, CRC(33a356ee) SHA1(b2a08052be670f301f8d4903b36c70088d1a11da) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "240-c1.c1", 0x0000000, 0x800000, CRC(effac504) SHA1(e36a96e7369b02c7e839b5abf3c6799453ba1927) )
+ ROM_LOAD16_BYTE( "240-c2.c2", 0x0000001, 0x800000, CRC(ed182d44) SHA1(a9fc0a3a786bf067c129ec7220df65953dff804f) )
+ ROM_LOAD16_BYTE( "240-c3.c3", 0x1000000, 0x800000, CRC(22e0330a) SHA1(0fe7f6a8aeba7f17dbb278e85003969ff10d3cd2) )
+ ROM_LOAD16_BYTE( "240-c4.c4", 0x1000001, 0x800000, CRC(c19a07eb) SHA1(139eac8b51cadf328dd42d8109f4e2463f57230c) )
+ ROM_LOAD16_BYTE( "240-c5.c5", 0x2000000, 0x800000, CRC(244dff5a) SHA1(156548156d3ceaa808d0053d0749af2526a3943e) )
+ ROM_LOAD16_BYTE( "240-c6.c6", 0x2000001, 0x800000, CRC(4609e507) SHA1(bb17f50a377dddb77c1eeda5944a7bcbf0cca5f7) )
+ROM_END
+
+ROM_START( rbff2bh ) /* Real Bout Fatal Fury 2 - Hack by Dodowang - (Can choose Alfred - icon in character select menue added) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "240bh.p1", 0x000000, 0x100000, CRC(a5652c51) SHA1(0a736bb5c817752aef5b559c0355329667203073) )
+ ROM_LOAD16_WORD_SWAP( "240-p2.sp2", 0x100000, 0x400000, CRC(960aa88d) SHA1(3d9e785891871af90313f178dca2724633406674) )
+
+ NEO_SFIX_128K( "240bh.s1", CRC(141a8492) SHA1(e3b27771c78ac1df96f9daf951511897652b1a0f) )
+
+ NEO_BIOS_AUDIO_256K( "240-m1.m1", CRC(ed482791) SHA1(1f54a45967cb7842c33aa24be322c9f33ff75ac3) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "240-v1.v1", 0x000000, 0x400000, CRC(f796265a) SHA1(736dff37eb91fc856b4d189249fb0de9b6c0813a) )
+ ROM_LOAD( "240-v2.v2", 0x400000, 0x400000, CRC(2cb3f3bb) SHA1(697e677890892f4b028c9a27c66809ca0a8a9b18) )
+ ROM_LOAD( "240b.v3", 0x800000, 0x400000, CRC(df77b7fa) SHA1(4df971ce20bdb8c1ce8cc1692a32ac69505ffa9a) )
+ ROM_LOAD( "240b.v4", 0xc00000, 0x400000, CRC(33a356ee) SHA1(b2a08052be670f301f8d4903b36c70088d1a11da) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "240-c1.c1", 0x0000000, 0x800000, CRC(effac504) SHA1(e36a96e7369b02c7e839b5abf3c6799453ba1927) )
+ ROM_LOAD16_BYTE( "240-c2.c2", 0x0000001, 0x800000, CRC(ed182d44) SHA1(a9fc0a3a786bf067c129ec7220df65953dff804f) )
+ ROM_LOAD16_BYTE( "240-c3.c3", 0x1000000, 0x800000, CRC(22e0330a) SHA1(0fe7f6a8aeba7f17dbb278e85003969ff10d3cd2) )
+ ROM_LOAD16_BYTE( "240-c4.c4", 0x1000001, 0x800000, CRC(c19a07eb) SHA1(139eac8b51cadf328dd42d8109f4e2463f57230c) )
+ ROM_LOAD16_BYTE( "240-c5.c5", 0x2000000, 0x800000, CRC(244dff5a) SHA1(156548156d3ceaa808d0053d0749af2526a3943e) )
+ ROM_LOAD16_BYTE( "240-c6.c6", 0x2000001, 0x800000, CRC(4609e507) SHA1(bb17f50a377dddb77c1eeda5944a7bcbf0cca5f7) )
+ROM_END
+
+ROM_START( rbff2eh ) /* Real Bout Fatal Fury 2 - Enhance by Ydmis - (Can choose Alfred - ultra kill start is max) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "240eh.p1", 0x000000, 0x100000, CRC(270943a8) SHA1(959d0c30d3bae5011109247d50350970cb0a3e5d) )
+ ROM_LOAD16_WORD_SWAP( "240-p2.sp2", 0x100000, 0x400000, CRC(960aa88d) SHA1(3d9e785891871af90313f178dca2724633406674) )
+
+ NEO_SFIX_128K( "240-s1.s1", CRC(da3b40de) SHA1(e6bf74e057ac6fe1f249a7547f13ba7fbc694561) )
+
+ NEO_BIOS_AUDIO_256K( "240-m1.m1", CRC(ed482791) SHA1(1f54a45967cb7842c33aa24be322c9f33ff75ac3) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "240-v1.v1", 0x000000, 0x400000, CRC(f796265a) SHA1(736dff37eb91fc856b4d189249fb0de9b6c0813a) )
+ ROM_LOAD( "240-v2.v2", 0x400000, 0x400000, CRC(2cb3f3bb) SHA1(697e677890892f4b028c9a27c66809ca0a8a9b18) )
+ ROM_LOAD( "240b.v3", 0x800000, 0x400000, CRC(df77b7fa) SHA1(4df971ce20bdb8c1ce8cc1692a32ac69505ffa9a) )
+ ROM_LOAD( "240b.v4", 0xc00000, 0x400000, CRC(33a356ee) SHA1(b2a08052be670f301f8d4903b36c70088d1a11da) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "240-c1.c1", 0x0000000, 0x800000, CRC(effac504) SHA1(e36a96e7369b02c7e839b5abf3c6799453ba1927) )
+ ROM_LOAD16_BYTE( "240-c2.c2", 0x0000001, 0x800000, CRC(ed182d44) SHA1(a9fc0a3a786bf067c129ec7220df65953dff804f) )
+ ROM_LOAD16_BYTE( "240-c3.c3", 0x1000000, 0x800000, CRC(22e0330a) SHA1(0fe7f6a8aeba7f17dbb278e85003969ff10d3cd2) )
+ ROM_LOAD16_BYTE( "240-c4.c4", 0x1000001, 0x800000, CRC(c19a07eb) SHA1(139eac8b51cadf328dd42d8109f4e2463f57230c) )
+ ROM_LOAD16_BYTE( "240-c5.c5", 0x2000000, 0x800000, CRC(244dff5a) SHA1(156548156d3ceaa808d0053d0749af2526a3943e) )
+ ROM_LOAD16_BYTE( "240-c6.c6", 0x2000001, 0x800000, CRC(4609e507) SHA1(bb17f50a377dddb77c1eeda5944a7bcbf0cca5f7) )
+ROM_END
+
+ROM_START( rbff2eh2 ) /* Real Bout Fatal Fury 2 - Enhance by Creamymami and Ydmis - (Can choose Alfred - ultra kill start is max - ultra power hack) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "240eh2.p1", 0x000000, 0x100000, CRC(e25bd43c) SHA1(08071840f296204e8178e53ffc0e571ee88c3724) )
+ ROM_LOAD16_WORD_SWAP( "240-p2.sp2", 0x100000, 0x400000, CRC(960aa88d) SHA1(3d9e785891871af90313f178dca2724633406674) )
+
+ NEO_SFIX_128K( "240-s1.s1", CRC(da3b40de) SHA1(e6bf74e057ac6fe1f249a7547f13ba7fbc694561) )
+
+ NEO_BIOS_AUDIO_256K( "240-m1.m1", CRC(ed482791) SHA1(1f54a45967cb7842c33aa24be322c9f33ff75ac3) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "240-v1.v1", 0x000000, 0x400000, CRC(f796265a) SHA1(736dff37eb91fc856b4d189249fb0de9b6c0813a) )
+ ROM_LOAD( "240-v2.v2", 0x400000, 0x400000, CRC(2cb3f3bb) SHA1(697e677890892f4b028c9a27c66809ca0a8a9b18) )
+ ROM_LOAD( "240b.v3", 0x800000, 0x400000, CRC(df77b7fa) SHA1(4df971ce20bdb8c1ce8cc1692a32ac69505ffa9a) )
+ ROM_LOAD( "240b.v4", 0xc00000, 0x400000, CRC(33a356ee) SHA1(b2a08052be670f301f8d4903b36c70088d1a11da) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "240-c1.c1", 0x0000000, 0x800000, CRC(effac504) SHA1(e36a96e7369b02c7e839b5abf3c6799453ba1927) )
+ ROM_LOAD16_BYTE( "240-c2.c2", 0x0000001, 0x800000, CRC(ed182d44) SHA1(a9fc0a3a786bf067c129ec7220df65953dff804f) )
+ ROM_LOAD16_BYTE( "240-c3.c3", 0x1000000, 0x800000, CRC(22e0330a) SHA1(0fe7f6a8aeba7f17dbb278e85003969ff10d3cd2) )
+ ROM_LOAD16_BYTE( "240-c4.c4", 0x1000001, 0x800000, CRC(c19a07eb) SHA1(139eac8b51cadf328dd42d8109f4e2463f57230c) )
+ ROM_LOAD16_BYTE( "240-c5.c5", 0x2000000, 0x800000, CRC(244dff5a) SHA1(156548156d3ceaa808d0053d0749af2526a3943e) )
+ ROM_LOAD16_BYTE( "240-c6.c6", 0x2000001, 0x800000, CRC(4609e507) SHA1(bb17f50a377dddb77c1eeda5944a7bcbf0cca5f7) )
+ROM_END
+
+ROM_START( rbff2ehc ) /* Real Bout Fatal Fury 2 - Enhance by Creamymami - (Ultra power hack) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "240ehc.p1", 0x000000, 0x100000, CRC(73c40014) SHA1(5ed2ee938cf8213a0d6ea85b40e07370e472d59c) )
+ ROM_LOAD16_WORD_SWAP( "240-p2.sp2", 0x100000, 0x400000, CRC(960aa88d) SHA1(3d9e785891871af90313f178dca2724633406674) )
+
+ NEO_SFIX_128K( "240-s1.s1", CRC(da3b40de) SHA1(e6bf74e057ac6fe1f249a7547f13ba7fbc694561) )
+
+ NEO_BIOS_AUDIO_256K( "240-m1.m1", CRC(ed482791) SHA1(1f54a45967cb7842c33aa24be322c9f33ff75ac3) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "240-v1.v1", 0x000000, 0x400000, CRC(f796265a) SHA1(736dff37eb91fc856b4d189249fb0de9b6c0813a) )
+ ROM_LOAD( "240-v2.v2", 0x400000, 0x400000, CRC(2cb3f3bb) SHA1(697e677890892f4b028c9a27c66809ca0a8a9b18) )
+ ROM_LOAD( "240b.v3", 0x800000, 0x400000, CRC(df77b7fa) SHA1(4df971ce20bdb8c1ce8cc1692a32ac69505ffa9a) )
+ ROM_LOAD( "240b.v4", 0xc00000, 0x400000, CRC(33a356ee) SHA1(b2a08052be670f301f8d4903b36c70088d1a11da) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "240-c1.c1", 0x0000000, 0x800000, CRC(effac504) SHA1(e36a96e7369b02c7e839b5abf3c6799453ba1927) )
+ ROM_LOAD16_BYTE( "240-c2.c2", 0x0000001, 0x800000, CRC(ed182d44) SHA1(a9fc0a3a786bf067c129ec7220df65953dff804f) )
+ ROM_LOAD16_BYTE( "240-c3.c3", 0x1000000, 0x800000, CRC(22e0330a) SHA1(0fe7f6a8aeba7f17dbb278e85003969ff10d3cd2) )
+ ROM_LOAD16_BYTE( "240-c4.c4", 0x1000001, 0x800000, CRC(c19a07eb) SHA1(139eac8b51cadf328dd42d8109f4e2463f57230c) )
+ ROM_LOAD16_BYTE( "240-c5.c5", 0x2000000, 0x800000, CRC(244dff5a) SHA1(156548156d3ceaa808d0053d0749af2526a3943e) )
+ ROM_LOAD16_BYTE( "240-c6.c6", 0x2000001, 0x800000, CRC(4609e507) SHA1(bb17f50a377dddb77c1eeda5944a7bcbf0cca5f7) )
+ROM_END
+
+ROM_START( rbff2eho ) /* Real Bout Fatal Fury 2 - Hack by Ydmis - (Can choose Alfred) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "240eho.p1", 0x000000, 0x100000, CRC(6bf11562) SHA1(4d92a96e89b4726733fd7aeeaa5eaad6e80ce7a3) )
+ ROM_LOAD16_WORD_SWAP( "240-p2.sp2", 0x100000, 0x400000, CRC(960aa88d) SHA1(3d9e785891871af90313f178dca2724633406674) )
+
+ NEO_SFIX_128K( "240-s1.s1", CRC(da3b40de) SHA1(e6bf74e057ac6fe1f249a7547f13ba7fbc694561) )
+
+ NEO_BIOS_AUDIO_256K( "240-m1.m1", CRC(ed482791) SHA1(1f54a45967cb7842c33aa24be322c9f33ff75ac3) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "240-v1.v1", 0x000000, 0x400000, CRC(f796265a) SHA1(736dff37eb91fc856b4d189249fb0de9b6c0813a) )
+ ROM_LOAD( "240-v2.v2", 0x400000, 0x400000, CRC(2cb3f3bb) SHA1(697e677890892f4b028c9a27c66809ca0a8a9b18) )
+ ROM_LOAD( "240b.v3", 0x800000, 0x400000, CRC(df77b7fa) SHA1(4df971ce20bdb8c1ce8cc1692a32ac69505ffa9a) )
+ ROM_LOAD( "240b.v4", 0xc00000, 0x400000, CRC(33a356ee) SHA1(b2a08052be670f301f8d4903b36c70088d1a11da) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "240-c1.c1", 0x0000000, 0x800000, CRC(effac504) SHA1(e36a96e7369b02c7e839b5abf3c6799453ba1927) )
+ ROM_LOAD16_BYTE( "240-c2.c2", 0x0000001, 0x800000, CRC(ed182d44) SHA1(a9fc0a3a786bf067c129ec7220df65953dff804f) )
+ ROM_LOAD16_BYTE( "240-c3.c3", 0x1000000, 0x800000, CRC(22e0330a) SHA1(0fe7f6a8aeba7f17dbb278e85003969ff10d3cd2) )
+ ROM_LOAD16_BYTE( "240-c4.c4", 0x1000001, 0x800000, CRC(c19a07eb) SHA1(139eac8b51cadf328dd42d8109f4e2463f57230c) )
+ ROM_LOAD16_BYTE( "240-c5.c5", 0x2000000, 0x800000, CRC(244dff5a) SHA1(156548156d3ceaa808d0053d0749af2526a3943e) )
+ ROM_LOAD16_BYTE( "240-c6.c6", 0x2000001, 0x800000, CRC(4609e507) SHA1(bb17f50a377dddb77c1eeda5944a7bcbf0cca5f7) )
+ROM_END
+
+ROM_START( rbff2fc )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "240fc.p1", 0x000000, 0x100000, CRC(D01854FA) SHA1(1a4230404df76c111c76348a04d86976cd68df93) )
+ ROM_LOAD16_WORD_SWAP( "240fc.p2", 0x100000, 0x400000, CRC(C063193D) SHA1(3321d90f93b1f7bf423a20b780b453a756e041be) )
+
+ NEO_SFIX_128K( "240-s1.s1", CRC(da3b40de) SHA1(e6bf74e057ac6fe1f249a7547f13ba7fbc694561) )
+
+ NEO_BIOS_AUDIO_256K( "240-m1.m1", CRC(ed482791) SHA1(1f54a45967cb7842c33aa24be322c9f33ff75ac3) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "240-v1.v1", 0x000000, 0x400000, CRC(f796265a) SHA1(736dff37eb91fc856b4d189249fb0de9b6c0813a) )
+ ROM_LOAD( "240-v2.v2", 0x400000, 0x400000, CRC(2cb3f3bb) SHA1(697e677890892f4b028c9a27c66809ca0a8a9b18) )
+ ROM_LOAD( "240-v3.v3", 0x800000, 0x400000, CRC(8fe1367a) SHA1(093d7a4ac2b54ad7ffb2dc316fe29415f7a99535) )
+ ROM_LOAD( "240b.v4", 0xc00000, 0x400000, CRC(33a356ee) SHA1(b2a08052be670f301f8d4903b36c70088d1a11da) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "240-c1.c1", 0x0000000, 0x800000, CRC(effac504) SHA1(e36a96e7369b02c7e839b5abf3c6799453ba1927) )
+ ROM_LOAD16_BYTE( "240-c2.c2", 0x0000001, 0x800000, CRC(ed182d44) SHA1(a9fc0a3a786bf067c129ec7220df65953dff804f) )
+ ROM_LOAD16_BYTE( "240-c3.c3", 0x1000000, 0x800000, CRC(22e0330a) SHA1(0fe7f6a8aeba7f17dbb278e85003969ff10d3cd2) )
+ ROM_LOAD16_BYTE( "240-c4.c4", 0x1000001, 0x800000, CRC(c19a07eb) SHA1(139eac8b51cadf328dd42d8109f4e2463f57230c) )
+ ROM_LOAD16_BYTE( "240fc.c5", 0x2000000, 0x800000, CRC(21831787) SHA1(928620e9efb849c591d75a645969c24b15e5c337) )
+ ROM_LOAD16_BYTE( "240fc.c6", 0x2000001, 0x800000, CRC(06B2D1DA) SHA1(d39da350a9017a68704ea99bff7f48163b0866fb) )
+ROM_END
+
+ROM_START( rbff2ud ) /* Real Bout Fatal Fury 2 - Enhance by Dodowang - (P1 and P2 go to Terry, hold down B+C and press A - can choose then Alfread - all characters ultra kill style change) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "240ud.p1", 0x000000, 0x100000, CRC(d3cc7f24) SHA1(f6c831ce358afbad457c75fcdf89f9abf9a21ec8) )
+ ROM_LOAD16_WORD_SWAP( "240-p2.sp2", 0x100000, 0x400000, CRC(960aa88d) SHA1(3d9e785891871af90313f178dca2724633406674) )
+
+ NEO_SFIX_128K( "240-s1.s1", CRC(da3b40de) SHA1(e6bf74e057ac6fe1f249a7547f13ba7fbc694561) )
+
+ NEO_BIOS_AUDIO_256K( "240-m1.m1", CRC(ed482791) SHA1(1f54a45967cb7842c33aa24be322c9f33ff75ac3) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "240-v1.v1", 0x000000, 0x400000, CRC(f796265a) SHA1(736dff37eb91fc856b4d189249fb0de9b6c0813a) )
+ ROM_LOAD( "240-v2.v2", 0x400000, 0x400000, CRC(2cb3f3bb) SHA1(697e677890892f4b028c9a27c66809ca0a8a9b18) )
+ ROM_LOAD( "240b.v3", 0x800000, 0x400000, CRC(df77b7fa) SHA1(4df971ce20bdb8c1ce8cc1692a32ac69505ffa9a) )
+ ROM_LOAD( "240b.v4", 0xc00000, 0x400000, CRC(33a356ee) SHA1(b2a08052be670f301f8d4903b36c70088d1a11da) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "240-c1.c1", 0x0000000, 0x800000, CRC(effac504) SHA1(e36a96e7369b02c7e839b5abf3c6799453ba1927) )
+ ROM_LOAD16_BYTE( "240-c2.c2", 0x0000001, 0x800000, CRC(ed182d44) SHA1(a9fc0a3a786bf067c129ec7220df65953dff804f) )
+ ROM_LOAD16_BYTE( "240-c3.c3", 0x1000000, 0x800000, CRC(22e0330a) SHA1(0fe7f6a8aeba7f17dbb278e85003969ff10d3cd2) )
+ ROM_LOAD16_BYTE( "240-c4.c4", 0x1000001, 0x800000, CRC(c19a07eb) SHA1(139eac8b51cadf328dd42d8109f4e2463f57230c) )
+ ROM_LOAD16_BYTE( "240-c5.c5", 0x2000000, 0x800000, CRC(244dff5a) SHA1(156548156d3ceaa808d0053d0749af2526a3943e) )
+ ROM_LOAD16_BYTE( "240-c6.c6", 0x2000001, 0x800000, CRC(4609e507) SHA1(bb17f50a377dddb77c1eeda5944a7bcbf0cca5f7) )
+ROM_END
+
+ROM_START( rbff2y ) /* Real Bout Fatal Fury 2 - Hack by Ydmis - (Player 2 goes to Terry, holds down B+C and presses A - can choose then Alfred) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "240y.p1", 0x000000, 0x100000, CRC(621387e2) SHA1(3492845dcb34d2be4268f270025045c4c6cba0ad) )
+ ROM_LOAD16_WORD_SWAP( "240-p2.sp2", 0x100000, 0x400000, CRC(960aa88d) SHA1(3d9e785891871af90313f178dca2724633406674) )
+
+ NEO_SFIX_128K( "240-s1.s1", CRC(da3b40de) SHA1(e6bf74e057ac6fe1f249a7547f13ba7fbc694561) )
+
+ NEO_BIOS_AUDIO_256K( "240-m1.m1", CRC(ed482791) SHA1(1f54a45967cb7842c33aa24be322c9f33ff75ac3) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "240-v1.v1", 0x000000, 0x400000, CRC(f796265a) SHA1(736dff37eb91fc856b4d189249fb0de9b6c0813a) )
+ ROM_LOAD( "240-v2.v2", 0x400000, 0x400000, CRC(2cb3f3bb) SHA1(697e677890892f4b028c9a27c66809ca0a8a9b18) )
+ ROM_LOAD( "240b.v3", 0x800000, 0x400000, CRC(df77b7fa) SHA1(4df971ce20bdb8c1ce8cc1692a32ac69505ffa9a) )
+ ROM_LOAD( "240b.v4", 0xc00000, 0x400000, CRC(33a356ee) SHA1(b2a08052be670f301f8d4903b36c70088d1a11da) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "240-c1.c1", 0x0000000, 0x800000, CRC(effac504) SHA1(e36a96e7369b02c7e839b5abf3c6799453ba1927) )
+ ROM_LOAD16_BYTE( "240-c2.c2", 0x0000001, 0x800000, CRC(ed182d44) SHA1(a9fc0a3a786bf067c129ec7220df65953dff804f) )
+ ROM_LOAD16_BYTE( "240-c3.c3", 0x1000000, 0x800000, CRC(22e0330a) SHA1(0fe7f6a8aeba7f17dbb278e85003969ff10d3cd2) )
+ ROM_LOAD16_BYTE( "240-c4.c4", 0x1000001, 0x800000, CRC(c19a07eb) SHA1(139eac8b51cadf328dd42d8109f4e2463f57230c) )
+ ROM_LOAD16_BYTE( "240-c5.c5", 0x2000000, 0x800000, CRC(244dff5a) SHA1(156548156d3ceaa808d0053d0749af2526a3943e) )
+ ROM_LOAD16_BYTE( "240-c6.c6", 0x2000001, 0x800000, CRC(4609e507) SHA1(bb17f50a377dddb77c1eeda5944a7bcbf0cca5f7) )
+ROM_END
+
+
+
+GAME( 1993, fatfurspb, fatfursp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Fatal Fury Special / Garou Densetsu Special (Boss Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, fatfurspbs, fatfursp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yumeji", "Fatal Fury Special (Boss hack by Yumeji)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, fatfurspbt, fatfursp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "PPX team", "Fatal Fury Special (BT Version PPX Team hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, fatfurspeh, fatfursp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Dodowang", "Fatal Fury Special (Add Ryo)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1992, fatfury2b, fatfury2, neogeo_noslot, neogeo, neogeo_noslot_state, fatfury2, ROT0, "Yumeji", "Fatal Fury 2 (Boss hack by Yumeji)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1995, fatfury3b, fatfury3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami", "Fatal Fury 3 (Add Char set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, fatfury3bd, fatfury3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami and Dodowang", "Fatal Fury 3 (Add Char set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, fatfury3bh, fatfury3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yumeji", "Fatal Fury 3 (Boss hack by Yumeji)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, fatfury3eh, fatfury3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami and Dodowang", "Fatal Fury 3 (Add Char - Ultra kill style changed)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1995, rbff1ud, rbff1, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Dodowang", "Real Bout Fatal Fury (Ultra kill style changed)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1996, rbffsb, rbffspec, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami", "Real Bout Fatal Fury Special (Add Geese Howard)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, rbffseh, rbffspec, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami", "Real Bout Fatal Fury Special (Add Geese Howard - Ultra pow hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, rbffsehd, rbffspec, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Dodowang", "Real Bout Fatal Fury Special (Ultra kill style changed - 5 Add Char)", MACHINE_SUPPORTS_SAVE ) // Geese Howard, Andy B. EX, Blue Mary EX, Billy K. EX and Tung Fu Rue EX
+GAME( 1996, rbffspbd, rbffspec, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Real Bout Fatal Fury Special / Real Bout Garou Densetsu Special (Boss Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, rbffspecbs, rbffspec, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yumeji", "Real Bout Fatal Fury Special (Boss hack Yumeji)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, rbffspy, rbffspec, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Real Bout Fatal Fury Special (Ultra pow hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, rbffsud, rbffspec, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Dodowang", "Real Bout Fatal Fury Special (Ultra kill style changed)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1998, rbff2b, rbff2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Real Bout Fatal Fury 2 (Add Alfred)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, rbff2bh, rbff2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Dodowang", "Real Bout Fatal Fury 2 (Add Alfred with Icon)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, rbff2eh, rbff2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Real Bout Fatal Fury 2 (Add Alfred - Ultra kill start max)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, rbff2ehc, rbff2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami", "Real Bout Fatal Fury 2 (Ultra pow hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, rbff2eh2, rbff2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami and Ydmis", "Real Bout Fatal Fury 2 (Add Alfred - Ultra kill start max - Ultra pow hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, rbff2eho, rbff2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Real Bout Fatal Fury 2 (Add Alfred) (Old)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, rbff2fc, rbff2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Eddids - FCHT", "Real Bout Fatal Fury 2 (Enable Alfred v3 & Color Fix)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, rbff2ud, rbff2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Dodowang", "Real Bout Fatal Fury 2 (P1 and P2 Add Alfred [Terry, hold B+C and press A] - Ultra kill style change)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, rbff2y, rbff2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Real Bout Fatal Fury 2 (P1 only Add Alfred [Terry, hold B+C and press A])", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/ngrotd.cpp b/docs/release/src/hbmame/drivers/ngrotd.cpp
new file mode 100644
index 00000000000..9132c4bdf97
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/ngrotd.cpp
@@ -0,0 +1,591 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+
+
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, rotdb )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, ROTD_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+ m_pcm2_prot->neo_pcm2_snk_1999(ym_region, ym_region_size, 16);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, rotdd )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+ m_pcm2_prot->neo_pcm2_snk_1999(ym_region, ym_region_size, 16);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, rotdnd )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+
+
+ROM_START( rotdb ) /* Rage of the Dragons - Hack by Ydmis - (Console mode enabled - can choose Abubo and Johann) */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "264b.p1", 0x000000, 0x800000, CRC(66d05f5b) SHA1(8114262695229ec8af22001569481007a30dc977) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "264d.m1", CRC(7e06206d) SHA1(ba32dd6ffbfbf532bba9bed4c2d70cfbe959ac23) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) )
+ ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) )
+ ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) )
+ ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) )
+ ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) )
+ ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) )
+ ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) )
+ ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) )
+ ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) )
+ROM_END
+
+ROM_START( rotdb1 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "264b1.p1", 0x000000, 0x800000, CRC(8bf2d91e) SHA1(5b0e92934bb672761320eb7377962b977b39c0e5) )
+
+ NEO_SFIX_128K( "264b1.s1", CRC(b530292a) SHA1(8479cbdb377e7ed324aa777e3f6d094f4d1b80b5) )
+
+ NEO_BIOS_AUDIO_128K( "264nd.m1", CRC(c5d36af9) SHA1(320739d0cfa6cc84455ae1f7b1f9cdab3c018933) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "264nd.v1", 0x000000, 0x400000, CRC(5C77A3FE) SHA1(3de61ff174d8b5b1a735666d3ed30554637e4b2d) )
+ ROM_LOAD( "264nd.v2", 0x400000, 0x400000, CRC(A9B7AF14) SHA1(5e3c693634139fa8bbc0966af2873d1413cc13d9) )
+ ROM_LOAD( "264nd.v3", 0x800000, 0x400000, CRC(17AFF92A) SHA1(cafbef0b1b20b53c9d18c6b727e1912f0c958382) )
+ ROM_LOAD( "264nd.v4", 0xC00000, 0x400000, CRC(BC6A091E) SHA1(434b0e7aeac14677c7ce95d119dc1dd7a41a85cb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "264d.c1", 0x0000000, 0x800000, CRC(ec9d18c0) SHA1(83EBEDAE9655B6C64421CD131930B27D252853EC) )
+ ROM_LOAD16_BYTE( "264d.c2", 0x0000001, 0x800000, CRC(b1069066) SHA1(0B4E2249EFC782B572B589F72AADBD8007E8778C) )
+ ROM_LOAD16_BYTE( "264d.c3", 0x1000000, 0x800000, CRC(7e636d49) SHA1(1BA15DDBCE8369D7232CC1DA3F833F6CB68FBC10) )
+ ROM_LOAD16_BYTE( "264d.c4", 0x1000001, 0x800000, CRC(76892fda) SHA1(27416585973A6EC7B5721DE1116C8700B38E3A4C) )
+ ROM_LOAD16_BYTE( "264d.c5", 0x2000000, 0x800000, CRC(469061bc) SHA1(34E60E5F93743BE88BFC9E8B7656FE9FAF77F8F5) )
+ ROM_LOAD16_BYTE( "264d.c6", 0x2000001, 0x800000, CRC(2200220a) SHA1(8379B4C89854B3CC9B4F33F4F51AB5387ACD14CA) )
+ ROM_LOAD16_BYTE( "264d.c7", 0x3000000, 0x800000, CRC(edda4baf) SHA1(3F53EB50FD9EC9E9EE05EEE050885C07023B6D53) )
+ ROM_LOAD16_BYTE( "264d.c8", 0x3000001, 0x800000, CRC(82b1ba22) SHA1(B4AD715807F2C15FC06945F0BCB475C3698CF089) )
+ROM_END
+
+ROM_START( rotdbh )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "264bh.p1", 0x000000, 0x800000, CRC(6c7f4efd) SHA1(d7d951d0520f30baa4a7c5875cfb0b7f8243ec8a) )
+
+ NEO_SFIX_128K( "264b1.s1", CRC(b530292a) SHA1(8479cbdb377e7ed324aa777e3f6d094f4d1b80b5) )
+
+ NEO_BIOS_AUDIO_ENCRYPTED_128K( "264-m1.m1", CRC(4dbd7b43) SHA1(6b63756b0d2d30bbf13fbd219833c81fd060ef96) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) )
+ ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) )
+ ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) )
+ ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) )
+ ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) )
+ ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) )
+ ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) )
+ ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) )
+ ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) )
+ROM_END
+
+ROM_START( rotdbr ) /* Rage of the Dragons - Translation Hack by UNKNOWN - (Portuguese translation) */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "264br.p1", 0x000000, 0x800000, CRC(8f5d7188) SHA1(a29209a05a22e18d6baa78830d6bbc763d23dcac) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "264d.m1", CRC(7e06206d) SHA1(ba32dd6ffbfbf532bba9bed4c2d70cfbe959ac23) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) )
+ ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) )
+ ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) )
+ ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) )
+ ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) )
+ ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) )
+ ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) )
+ ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) )
+ ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) )
+ROM_END
+
+ROM_START( rotdbr1 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "264br1.p1", 0x000000, 0x800000, CRC(59395cb3) SHA1(3f723a4b9bbc8c587eab449ecdb2be666ca59992) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "264d.m1", CRC(7e06206d) SHA1(ba32dd6ffbfbf532bba9bed4c2d70cfbe959ac23) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) )
+ ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) )
+ ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) )
+ ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) )
+ ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) )
+ ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) )
+ ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) )
+ ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) )
+ ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) )
+ROM_END
+
+ROM_START( rotdbr2 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "264br2.p1", 0x000000, 0x800000, CRC(8a973ecf) SHA1(5c472fca9091fb88f49ea72ce49b17fae3bbdaa9) )
+
+ NEO_SFIX_128K( "264br2.s1", CRC(28b387d6) SHA1(eb50e74b66ce9e14765fa0841e928b8be3035c73) )
+
+ NEO_BIOS_AUDIO_64K( "264d.m1", CRC(7e06206d) SHA1(ba32dd6ffbfbf532bba9bed4c2d70cfbe959ac23) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) )
+ ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) )
+ ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) )
+ ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) )
+ ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) )
+ ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) )
+ ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) )
+ ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) )
+ ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) )
+ROM_END
+
+ROM_START( rotdbr2d )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "264br2.p1", 0x000000, 0x800000, CRC(8a973ecf) SHA1(5c472fca9091fb88f49ea72ce49b17fae3bbdaa9) )
+
+ NEO_SFIX_128K( "264br2.s1", CRC(28b387d6) SHA1(eb50e74b66ce9e14765fa0841e928b8be3035c73) )
+
+ NEO_BIOS_AUDIO_128K( "264nd.m1", CRC(c5d36af9) SHA1(320739d0cfa6cc84455ae1f7b1f9cdab3c018933) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "264nd.v1", 0x000000, 0x400000, CRC(5C77A3FE) SHA1(3de61ff174d8b5b1a735666d3ed30554637e4b2d) )
+ ROM_LOAD( "264nd.v2", 0x400000, 0x400000, CRC(A9B7AF14) SHA1(5e3c693634139fa8bbc0966af2873d1413cc13d9) )
+ ROM_LOAD( "264nd.v3", 0x800000, 0x400000, CRC(17AFF92A) SHA1(cafbef0b1b20b53c9d18c6b727e1912f0c958382) )
+ ROM_LOAD( "264nd.v4", 0xC00000, 0x400000, CRC(BC6A091E) SHA1(434b0e7aeac14677c7ce95d119dc1dd7a41a85cb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "264d.c1", 0x0000000, 0x800000, CRC(ec9d18c0) SHA1(83EBEDAE9655B6C64421CD131930B27D252853EC) )
+ ROM_LOAD16_BYTE( "264d.c2", 0x0000001, 0x800000, CRC(b1069066) SHA1(0B4E2249EFC782B572B589F72AADBD8007E8778C) )
+ ROM_LOAD16_BYTE( "264d.c3", 0x1000000, 0x800000, CRC(7e636d49) SHA1(1BA15DDBCE8369D7232CC1DA3F833F6CB68FBC10) )
+ ROM_LOAD16_BYTE( "264d.c4", 0x1000001, 0x800000, CRC(76892fda) SHA1(27416585973A6EC7B5721DE1116C8700B38E3A4C) )
+ ROM_LOAD16_BYTE( "264d.c5", 0x2000000, 0x800000, CRC(469061bc) SHA1(34E60E5F93743BE88BFC9E8B7656FE9FAF77F8F5) )
+ ROM_LOAD16_BYTE( "264d.c6", 0x2000001, 0x800000, CRC(2200220a) SHA1(8379B4C89854B3CC9B4F33F4F51AB5387ACD14CA) )
+ ROM_LOAD16_BYTE( "264d.c7", 0x3000000, 0x800000, CRC(edda4baf) SHA1(3F53EB50FD9EC9E9EE05EEE050885C07023B6D53) )
+ ROM_LOAD16_BYTE( "264d.c8", 0x3000001, 0x800000, CRC(82b1ba22) SHA1(B4AD715807F2C15FC06945F0BCB475C3698CF089) )
+ROM_END
+
+ROM_START( rotdcre ) /* Rage of the Dragons - Hack by Creamymami and UNKNOWN - (Console mode enabled - always power max - no change wait) */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "264cre.p1", 0x000000, 0x800000, CRC(c3f5a8ea) SHA1(4a7beeb4269846f743bafb118256c1106fd7d529) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "264d.m1", CRC(7e06206d) SHA1(ba32dd6ffbfbf532bba9bed4c2d70cfbe959ac23) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) )
+ ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) )
+ ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) )
+ ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) )
+ ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) )
+ ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) )
+ ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) )
+ ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) )
+ ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) )
+ROM_END
+
+ROM_START( rotdcreb ) /* Rage of the Dragons - Hack by Creamymami, UNKNOWN and Ydmis - (Console mode enabled - can choose Abubo and Johann - always power max - no change wait) */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "264creb.p1", 0x000000, 0x800000, CRC(c058f365) SHA1(84731cf354693141cc06f90a73bbd597eb6a594f) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "264d.m1", CRC(7e06206d) SHA1(ba32dd6ffbfbf532bba9bed4c2d70cfbe959ac23) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) )
+ ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) )
+ ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) )
+ ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) )
+ ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) )
+ ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) )
+ ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) )
+ ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) )
+ ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) )
+ROM_END
+
+ROM_START( rotdd )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "264-p1.p1", 0x000000, 0x800000, CRC(b8cc969d) SHA1(4f2205b4bdd32dd1522106ef4df10ac0eb1b852d) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "264d.m1", CRC(7e06206d) SHA1(ba32dd6ffbfbf532bba9bed4c2d70cfbe959ac23) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) )
+ ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "264d.c1", 0x0000000, 0x800000, CRC(ec9d18c0) SHA1(83EBEDAE9655B6C64421CD131930B27D252853EC) )
+ ROM_LOAD16_BYTE( "264d.c2", 0x0000001, 0x800000, CRC(b1069066) SHA1(0B4E2249EFC782B572B589F72AADBD8007E8778C) )
+ ROM_LOAD16_BYTE( "264d.c3", 0x1000000, 0x800000, CRC(7e636d49) SHA1(1BA15DDBCE8369D7232CC1DA3F833F6CB68FBC10) )
+ ROM_LOAD16_BYTE( "264d.c4", 0x1000001, 0x800000, CRC(76892fda) SHA1(27416585973A6EC7B5721DE1116C8700B38E3A4C) )
+ ROM_LOAD16_BYTE( "264d.c5", 0x2000000, 0x800000, CRC(469061bc) SHA1(34E60E5F93743BE88BFC9E8B7656FE9FAF77F8F5) )
+ ROM_LOAD16_BYTE( "264d.c6", 0x2000001, 0x800000, CRC(2200220a) SHA1(8379B4C89854B3CC9B4F33F4F51AB5387ACD14CA) )
+ ROM_LOAD16_BYTE( "264d.c7", 0x3000000, 0x800000, CRC(edda4baf) SHA1(3F53EB50FD9EC9E9EE05EEE050885C07023B6D53) )
+ ROM_LOAD16_BYTE( "264d.c8", 0x3000001, 0x800000, CRC(82b1ba22) SHA1(B4AD715807F2C15FC06945F0BCB475C3698CF089) )
+ROM_END
+
+ROM_START( rotddh )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "264dh.p1", 0x000000, 0x800000, CRC(7c095666) SHA1(2b9412105cd60fa6d7eea9d13a552fd976f56eb6) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "264nd.m1", CRC(c5d36af9) SHA1(320739d0cfa6cc84455ae1f7b1f9cdab3c018933) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) )
+ ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "264d.c1", 0x0000000, 0x800000, CRC(ec9d18c0) SHA1(83EBEDAE9655B6C64421CD131930B27D252853EC) )
+ ROM_LOAD16_BYTE( "264d.c2", 0x0000001, 0x800000, CRC(b1069066) SHA1(0B4E2249EFC782B572B589F72AADBD8007E8778C) )
+ ROM_LOAD16_BYTE( "264d.c3", 0x1000000, 0x800000, CRC(7e636d49) SHA1(1BA15DDBCE8369D7232CC1DA3F833F6CB68FBC10) )
+ ROM_LOAD16_BYTE( "264d.c4", 0x1000001, 0x800000, CRC(76892fda) SHA1(27416585973A6EC7B5721DE1116C8700B38E3A4C) )
+ ROM_LOAD16_BYTE( "264d.c5", 0x2000000, 0x800000, CRC(469061bc) SHA1(34E60E5F93743BE88BFC9E8B7656FE9FAF77F8F5) )
+ ROM_LOAD16_BYTE( "264d.c6", 0x2000001, 0x800000, CRC(2200220a) SHA1(8379B4C89854B3CC9B4F33F4F51AB5387ACD14CA) )
+ ROM_LOAD16_BYTE( "264dh.c7", 0x3000000, 0x800000, CRC(2b5c1044) SHA1(1dc3b2bd5fed3e5b39d87c4728e8b0d8225ee7dc) )
+ ROM_LOAD16_BYTE( "264dh.c8", 0x3000001, 0x800000, CRC(f697f287) SHA1(2b257f2ebef69f19aaca54f37472f1c3dfc6bee6) )
+ROM_END
+
+ROM_START( rotdeh ) /* Rage of the Dragons - Hack by Ydmis - (Can choose Abubo and Johann) */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "264eh.p1", 0x000000, 0x800000, CRC(b8db28bc) SHA1(9fd6cd7a13bde0854243dca4b0d7d9601cde4996) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "264d.m1", CRC(7e06206d) SHA1(ba32dd6ffbfbf532bba9bed4c2d70cfbe959ac23) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) )
+ ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) )
+ ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) )
+ ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) )
+ ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) )
+ ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) )
+ ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) )
+ ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) )
+ ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) )
+ROM_END
+
+ROM_START( rotdehc ) /* Rage of the Dragons - Enhance by Creamymami, FWNL and Ydmis - (Console mode enabled - can choose Abubo and Johann - always power max - no change wait) */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "264ehc.p1", 0x000000, 0x800000, CRC(2135864c) SHA1(5abd3ffbaf60ebbf7bd15afa0666b959d820c4aa) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "264d.m1", CRC(7e06206d) SHA1(ba32dd6ffbfbf532bba9bed4c2d70cfbe959ac23) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) )
+ ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) )
+ ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) )
+ ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) )
+ ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) )
+ ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) )
+ ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) )
+ ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) )
+ ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) )
+ROM_END
+
+ROM_START( rotdfw ) /* Rage of the Dragons - Hack by FWNL and Ydmis - (Console mode enabled - can choose Abubo and Johann) */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "264fw.p1", 0x000000, 0x800000, CRC(7b89da35) SHA1(0edc3421f764deac1fefc499ffe469ad30956ebc) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "264d.m1", CRC(7e06206d) SHA1(ba32dd6ffbfbf532bba9bed4c2d70cfbe959ac23) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) )
+ ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) )
+ ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) )
+ ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) )
+ ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) )
+ ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) )
+ ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) )
+ ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) )
+ ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) )
+ROM_END
+
+ROM_START( rotdfy ) /* Rage of the Dragons - Hack by FWNL and Ydmis - (Console mode enabled - can choose Abubo and Johann) */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "264fy.p1", 0x000000, 0x800000, CRC(4ab52bcd) SHA1(7fcc074fb7c048f824fd5ef9a370c9a908299727) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "264d.m1", CRC(7e06206d) SHA1(ba32dd6ffbfbf532bba9bed4c2d70cfbe959ac23) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) )
+ ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) )
+ ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) )
+ ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) )
+ ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) )
+ ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) )
+ ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) )
+ ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) )
+ ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) )
+ROM_END
+
+ROM_START( rotdh2b ) /* Rage of the Dragons - Hack by UNKNOWN and Ydmis - (Console mode enabled - can choose Abubo and Johann) */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "264h2b.p1", 0x000000, 0x800000, CRC(87bd2a72) SHA1(5f7ae41b7813fa7058c00cfa1c0d1a8c06395f8a) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "264d.m1", CRC(7e06206d) SHA1(ba32dd6ffbfbf532bba9bed4c2d70cfbe959ac23) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) )
+ ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) )
+ ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) )
+ ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) )
+ ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) )
+ ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) )
+ ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) )
+ ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) )
+ ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) )
+ROM_END
+
+ROM_START( rotdhab ) /* Rage of the Dragons - Hack by HappyAsr - (Console mode enabled - character menue changed - can choose Abubo and Johann - characters choose twice) */
+ ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) // needed
+ ROM_LOAD16_WORD_SWAP( "264hab.p1", 0x000000, 0x300000, CRC(44f5312a) SHA1(9a5356dbde209c9e5ebd04ff025c7c129a0ea4da) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "264d.m1", CRC(7e06206d) SHA1(ba32dd6ffbfbf532bba9bed4c2d70cfbe959ac23) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) )
+ ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) )
+ ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) )
+ ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) )
+ ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) )
+ ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) )
+ ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) )
+ ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) )
+ ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) )
+ROM_END
+
+ROM_START( rotdhab1 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "264hab.p1", 0x000000, 0x300000, CRC(44f5312a) SHA1(9a5356dbde209c9e5ebd04ff025c7c129a0ea4da) )
+
+ NEO_SFIX_128K( "264-s1.bin", CRC(c155d4ff) SHA1(cc20d4e30004ca82da2ba075c084d294c94651d0) )
+
+ NEO_BIOS_AUDIO_128K( "264nd.m1", CRC(c5d36af9) SHA1(320739d0cfa6cc84455ae1f7b1f9cdab3c018933) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "264nd.v1", 0x000000, 0x400000, CRC(5C77A3FE) SHA1(3de61ff174d8b5b1a735666d3ed30554637e4b2d) )
+ ROM_LOAD( "264nd.v2", 0x400000, 0x400000, CRC(A9B7AF14) SHA1(5e3c693634139fa8bbc0966af2873d1413cc13d9) )
+ ROM_LOAD( "264nd.v3", 0x800000, 0x400000, CRC(17AFF92A) SHA1(cafbef0b1b20b53c9d18c6b727e1912f0c958382) )
+ ROM_LOAD( "264nd.v4", 0xC00000, 0x400000, CRC(BC6A091E) SHA1(434b0e7aeac14677c7ce95d119dc1dd7a41a85cb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "264d.c1", 0x0000000, 0x800000, CRC(ec9d18c0) SHA1(83EBEDAE9655B6C64421CD131930B27D252853EC) )
+ ROM_LOAD16_BYTE( "264d.c2", 0x0000001, 0x800000, CRC(b1069066) SHA1(0B4E2249EFC782B572B589F72AADBD8007E8778C) )
+ ROM_LOAD16_BYTE( "264d.c3", 0x1000000, 0x800000, CRC(7e636d49) SHA1(1BA15DDBCE8369D7232CC1DA3F833F6CB68FBC10) )
+ ROM_LOAD16_BYTE( "264d.c4", 0x1000001, 0x800000, CRC(76892fda) SHA1(27416585973A6EC7B5721DE1116C8700B38E3A4C) )
+ ROM_LOAD16_BYTE( "264d.c5", 0x2000000, 0x800000, CRC(469061bc) SHA1(34E60E5F93743BE88BFC9E8B7656FE9FAF77F8F5) )
+ ROM_LOAD16_BYTE( "264d.c6", 0x2000001, 0x800000, CRC(2200220a) SHA1(8379B4C89854B3CC9B4F33F4F51AB5387ACD14CA) )
+ ROM_LOAD16_BYTE( "264d.c7", 0x3000000, 0x800000, CRC(edda4baf) SHA1(3F53EB50FD9EC9E9EE05EEE050885C07023B6D53) )
+ ROM_LOAD16_BYTE( "264d.c8", 0x3000001, 0x800000, CRC(82b1ba22) SHA1(B4AD715807F2C15FC06945F0BCB475C3698CF089) )
+ROM_END
+
+ROM_START( rotdhar ) /* Rage of the Dragons - Hack by HappyAsr - (Console mode enabled) */
+ ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 )
+ ROM_LOAD16_WORD_SWAP( "264har.p1", 0x000000, 0x300000, CRC(ca979b31) SHA1(03ff383db6b33ffbd7736bc87888f7c645dda62d) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "264d.m1", CRC(7e06206d) SHA1(ba32dd6ffbfbf532bba9bed4c2d70cfbe959ac23) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) )
+ ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) )
+ ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) )
+ ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) )
+ ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) )
+ ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) )
+ ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) )
+ ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) )
+ ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) )
+ROM_END
+
+ROM_START( rotdhfw ) /* Rage of the Dragons - Hack by FWNL - (Console mode enabled) */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "264hfw.p1", 0x000000, 0x800000, CRC(49187042) SHA1(f7609bc4fa236304bbf7383ea49e2a4a5cf44682) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "264d.m1", CRC(7e06206d) SHA1(ba32dd6ffbfbf532bba9bed4c2d70cfbe959ac23) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) )
+ ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) )
+ ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) )
+ ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) )
+ ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) )
+ ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) )
+ ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) )
+ ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) )
+ ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) )
+ROM_END
+
+ROM_START( rotdhfwb ) /* Rage of the Dragons - Hack by FWNL and Ydmis - (Console mode enabled - can choose Abubo and Johann) */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "264hfwb.p1", 0x000000, 0x800000, CRC(ed25cd79) SHA1(db73cf2e907fefc7d52cbbda2f36bc5edfa86ccb) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "264d.m1", CRC(7e06206d) SHA1(ba32dd6ffbfbf532bba9bed4c2d70cfbe959ac23) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) )
+ ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) )
+ ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) )
+ ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) )
+ ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) )
+ ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) )
+ ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) )
+ ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) )
+ ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) )
+ROM_END
+
+ROM_START( rotdnd )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "264nd1.p1", 0x000000, 0x800000, CRC(23809749) SHA1(c0b63032e08337b9a9ab0e3ca1f91a8be2641e74) )
+
+ NEO_SFIX_128K( "264-s1.bin", CRC(c155d4ff) SHA1(cc20d4e30004ca82da2ba075c084d294c94651d0) )
+
+ NEO_BIOS_AUDIO_128K( "264nd.m1", CRC(c5d36af9) SHA1(320739d0cfa6cc84455ae1f7b1f9cdab3c018933) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "264nd1.v1", 0x000000, 0x800000, CRC(2c49f3fa) SHA1(501e8b792bc96a262058326541333738418fbbdd) )
+ ROM_LOAD( "264nd1.v2", 0x800000, 0x800000, CRC(967279da) SHA1(21e90e14f6a6d73dd049541120c36d4421e237e6) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "264d.c1", 0x0000000, 0x800000, CRC(ec9d18c0) SHA1(83EBEDAE9655B6C64421CD131930B27D252853EC) )
+ ROM_LOAD16_BYTE( "264d.c2", 0x0000001, 0x800000, CRC(b1069066) SHA1(0B4E2249EFC782B572B589F72AADBD8007E8778C) )
+ ROM_LOAD16_BYTE( "264d.c3", 0x1000000, 0x800000, CRC(7e636d49) SHA1(1BA15DDBCE8369D7232CC1DA3F833F6CB68FBC10) )
+ ROM_LOAD16_BYTE( "264d.c4", 0x1000001, 0x800000, CRC(76892fda) SHA1(27416585973A6EC7B5721DE1116C8700B38E3A4C) )
+ ROM_LOAD16_BYTE( "264d.c5", 0x2000000, 0x800000, CRC(469061bc) SHA1(34E60E5F93743BE88BFC9E8B7656FE9FAF77F8F5) )
+ ROM_LOAD16_BYTE( "264d.c6", 0x2000001, 0x800000, CRC(2200220a) SHA1(8379B4C89854B3CC9B4F33F4F51AB5387ACD14CA) )
+ ROM_LOAD16_BYTE( "264d.c7", 0x3000000, 0x800000, CRC(edda4baf) SHA1(3F53EB50FD9EC9E9EE05EEE050885C07023B6D53) )
+ ROM_LOAD16_BYTE( "264d.c8", 0x3000001, 0x800000, CRC(82b1ba22) SHA1(B4AD715807F2C15FC06945F0BCB475C3698CF089) )
+ROM_END
+
+ROM_START( rotdyc ) /* Rage of the Dragons - Hack by Creamymami and Ydmis - (Console mode enabled - can choose Abubo and Johann - power hack) */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "264yc.p1", 0x000000, 0x800000, CRC(ff3ef1ab) SHA1(bad86a1c5cdedc2589b7f668e64e10e630574fef) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "264d.m1", CRC(7e06206d) SHA1(ba32dd6ffbfbf532bba9bed4c2d70cfbe959ac23) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) )
+ ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) )
+ ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) )
+ ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) )
+ ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) )
+ ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) )
+ ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) )
+ ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) )
+ ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) )
+ROM_END
+
+
+
+GAME( 2002, rotdb, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdb, ROT0, "Ydmis", "Rage of the Dragons (Add Char - Console mode enabled set 4)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, rotdb1, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdnd, ROT0, "hack", "Rage of the Dragons (Boss Hack)2", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, rotdbh, rotd, neogeo_noslot, neogeo, neogeo_noslot_state, rotd, ROT0, "Dodowang", "Rage of the Dragons (Boss hack by Dodowang)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, rotdbr, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdb, ROT0, "hack", "Rage of the Dragons (Portuguese)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, rotdbr1, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdb, ROT0, "hack", "Rage of the Dragons (Portuguese) (Alt Set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, rotdbr2, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdb, ROT0, "hack", "Rage of the Dragons (Portuguese) (Alt Set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, rotdbr2d, rotd, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Rage of the Dragons - Portuguese/Brazilian Hack ver 2.0", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, rotdcre, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdb, ROT0, "Creamymami and Unk", "Rage of the Dragons (Console mode enabled - Always pow max - No change wait)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, rotdcreb, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdb, ROT0, "Creamymami, Unk and Ydmis", "Rage of the Dragons (Add Char - Console mode enabled - Always pow max - No change wait set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, rotdd, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdd, ROT0, "Evoga / Playmore", "Rage of the Dragons (decrypted C)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, rotddh, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdd, ROT0, "hack", "Rage of the Dragons (hack dh)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, rotdeh, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdb, ROT0, "Ydmis", "Rage of the Dragons (Add Char)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, rotdehc, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdb, ROT0, "Creamymami, FWNL and Ydmis", "Rage of the Dragons (Add Char - Console mode enabled - Always pow max - No change wait set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, rotdfw, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdb, ROT0, "FWNL and Ydmis", "Rage of the Dragons (Add Char - Console mode enabled set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, rotdfy, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdb, ROT0, "FWNL and Ydmis", "Rage of the Dragons (Add Char - Console mode enabled set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, rotdh2b, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdb, ROT0, "Unk and Ydmis", "Rage of the Dragons (Add Char - Console mode enabled set 5)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, rotdhab, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdb, ROT0, "HappyAsr", "Rage of the Dragons (Add Char - Console mode enabled - Char menu changed - Char choose twice)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, rotdhab1, rotd, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Rage of the Dragons (Hack, Hero AES) [EGCG]", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, rotdhar, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdb, ROT0, "HappyAsr", "Rage of the Dragons (Console mode enabled set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, rotdhfw, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdb, ROT0, "FWNL", "Rage of the Dragons (Console mode enabled set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, rotdhfwb, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdb, ROT0, "FWNL and Ydmis", "Rage of the Dragons (Add Char - Console mode enabled set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, rotdnd, rotd, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Evoga / Playmore Corporation", "Rage of the Dragons (Fully Decrypted)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, rotdyc, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdb, ROT0, "Creamymami and Ydmis", "Rage of the Dragons (Add Char - Console mode enabled - Pow hack)", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/ngsamsho.cpp b/docs/release/src/hbmame/drivers/ngsamsho.cpp
new file mode 100644
index 00000000000..4ede3a1051c
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/ngsamsho.cpp
@@ -0,0 +1,1850 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+// Samurai Shodown / Samurai Spirits
+
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, sam5hb )
+{
+ DRIVER_INIT_CALL(neogeo);
+ // This is needed if s1 size > 0x20000, ignored otherwise
+ m_sprgen->m_fixed_layer_bank_type = 1;
+
+ // decrypt p roms if needed
+ u8 *ram = memregion("maincpu")->base();
+ if (ram[0x100007] != 0xC2)
+ {
+ //printf("Maincpu=%X\n",ram[0x100007]);fflush(stdout);
+ m_kof2002_prot->samsho5_decrypt_68k(cpuregion, cpuregion_size);
+ }
+
+ // decrypt m1 if needed
+ if (memregion("audiocrypt"))
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size);
+
+ // decrypt v roms if needed
+ ram = memregion("ymsnd")->base();
+ if (ram[0] != 8)
+ {
+ //printf("ym=%X\n",ram[0]);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 4);
+ }
+
+ // decrypt c roms if needed
+ ram = memregion("sprites")->base();
+ if (ram[0] != 0)
+ {
+ //printf("Sprites=%X\n",ram[0]);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, SAMSHO5_GFX_KEY);
+ }
+
+ // if no s rom, copy info from end of c roms
+ ram = memregion("fixed")->base();
+ if (ram[0x100] == 0)
+ {
+ //printf("Fixed1=%X\n",ram[0x100]);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+ }
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, sam5sphb )
+{
+ DRIVER_INIT_CALL(neogeo);
+ // This is needed if s1 size > 0x20000, ignored otherwise
+ m_sprgen->m_fixed_layer_bank_type = 1;
+
+ // decrypt p roms if needed
+ u8 *ram = memregion("maincpu")->base();
+ if (ram[0x100007] == 0)
+ {
+ //printf("Maincpu=%X\n",ram[0x100007]);fflush(stdout);
+ m_kof2002_prot->samsh5sp_decrypt_68k(cpuregion, cpuregion_size);
+ }
+
+ // decrypt m1 if needed
+ if (memregion("audiocrypt"))
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size);
+
+ // decrypt v roms if needed
+ ram = memregion("ymsnd")->base();
+ if (ram[0] != 8)
+ {
+ //printf("ym=%X\n",ram[0]);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 6);
+ }
+
+ // if no s rom, copy info from end of c roms
+ ram = memregion("fixed")->base();
+ if (ram[0x100] == 0)
+ {
+ //printf("Fixed1=%X\n",ram[0x100]);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+ }
+}
+
+
+
+ROM_START( fswordsb1 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "187b1.p1", 0x000000, 0x100000, CRC(382f6a55) SHA1(892ef8ade8d65a57fff71966e389c20ecba225da) )
+ ROM_LOAD16_WORD_SWAP( "087-p2.sp2", 0x100000, 0x200000, CRC(9bbe27e0) SHA1(b18117102159903c8e8f4e4226e1cc91a400e816) )
+
+ NEO_SFIX_128K( "087-s1.s1", CRC(74ec7d9f) SHA1(d79c479838a7ca51735a44f91f1968ec5b3c6b91) )
+
+ NEO_BIOS_AUDIO_128K( "087-m1.m1", CRC(8e6440eb) SHA1(e3f72150af4e326543b29df71cda27d73ec087c1) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "087-v1.v1", 0x000000, 0x400000, CRC(84bdd9a0) SHA1(adceceb00569eca13fcc2e0f0d9f0d9b06a06851) )
+ ROM_LOAD( "087-v2.v2", 0x400000, 0x200000, CRC(ac0f261a) SHA1(5411bdff24cba7fdbc3397d45a70fb468d7a44b3) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "087-c1.c1", 0x0000000, 0x400000, CRC(07a233bc) SHA1(654cb56cfd6eeebe6745c0b8b730317fb8ccd3d9) )
+ ROM_LOAD16_BYTE( "087-c2.c2", 0x0000001, 0x400000, CRC(7a413592) SHA1(b8c7a2d0d7a8b14d6cab94d7a5f347e73c6ab7a4) )
+ ROM_LOAD16_BYTE( "087-c3.c3", 0x0800000, 0x400000, CRC(8b793796) SHA1(053acc129ea56691607a5d255845703e61fd3ada) )
+ ROM_LOAD16_BYTE( "087-c4.c4", 0x0800001, 0x400000, CRC(728fbf11) SHA1(daa319d455f759bfc08a37b43218bdb48dc1c9e5) )
+ ROM_LOAD16_BYTE( "087-c5.c5", 0x1000000, 0x400000, CRC(172ab180) SHA1(a6122f683bdb78d0079e1e360c1b96ba28def7b7) )
+ ROM_LOAD16_BYTE( "087-c6.c6", 0x1000001, 0x400000, CRC(002ff8f3) SHA1(3a378708697d727796c4f702dd5bbf1c9eb4daec) )
+ ROM_LOAD16_BYTE( "087-c7.c7", 0x1800000, 0x100000, CRC(ae450e3d) SHA1(ec482632cc347ec3f9e68df0ebcaa16ebe41b9f9) )
+ ROM_LOAD16_BYTE( "087-c8.c8", 0x1800001, 0x100000, CRC(a9e82717) SHA1(e39ee15d5140dbe7f06eea945cce9984a5e8b06a) )
+ROM_END
+
+ROM_START( fswordsb2 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "187b2.p1", 0x000000, 0x100000, CRC(061fca36) SHA1(f8e69f48c6f4e8645b96a0261d849a93d5f48dd7) )
+ ROM_LOAD16_WORD_SWAP( "087-p2.sp2", 0x100000, 0x200000, CRC(9bbe27e0) SHA1(b18117102159903c8e8f4e4226e1cc91a400e816) )
+
+ NEO_SFIX_128K( "087-s1.s1", CRC(74ec7d9f) SHA1(d79c479838a7ca51735a44f91f1968ec5b3c6b91) )
+
+ NEO_BIOS_AUDIO_128K( "087-m1.m1", CRC(8e6440eb) SHA1(e3f72150af4e326543b29df71cda27d73ec087c1) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "087-v1.v1", 0x000000, 0x400000, CRC(84bdd9a0) SHA1(adceceb00569eca13fcc2e0f0d9f0d9b06a06851) )
+ ROM_LOAD( "087-v2.v2", 0x400000, 0x200000, CRC(ac0f261a) SHA1(5411bdff24cba7fdbc3397d45a70fb468d7a44b3) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "087-c1.c1", 0x0000000, 0x400000, CRC(07a233bc) SHA1(654cb56cfd6eeebe6745c0b8b730317fb8ccd3d9) )
+ ROM_LOAD16_BYTE( "087-c2.c2", 0x0000001, 0x400000, CRC(7a413592) SHA1(b8c7a2d0d7a8b14d6cab94d7a5f347e73c6ab7a4) )
+ ROM_LOAD16_BYTE( "087-c3.c3", 0x0800000, 0x400000, CRC(8b793796) SHA1(053acc129ea56691607a5d255845703e61fd3ada) )
+ ROM_LOAD16_BYTE( "087-c4.c4", 0x0800001, 0x400000, CRC(728fbf11) SHA1(daa319d455f759bfc08a37b43218bdb48dc1c9e5) )
+ ROM_LOAD16_BYTE( "087-c5.c5", 0x1000000, 0x400000, CRC(172ab180) SHA1(a6122f683bdb78d0079e1e360c1b96ba28def7b7) )
+ ROM_LOAD16_BYTE( "087-c6.c6", 0x1000001, 0x400000, CRC(002ff8f3) SHA1(3a378708697d727796c4f702dd5bbf1c9eb4daec) )
+ ROM_LOAD16_BYTE( "087-c7.c7", 0x1800000, 0x100000, CRC(ae450e3d) SHA1(ec482632cc347ec3f9e68df0ebcaa16ebe41b9f9) )
+ ROM_LOAD16_BYTE( "087-c8.c8", 0x1800001, 0x100000, CRC(a9e82717) SHA1(e39ee15d5140dbe7f06eea945cce9984a5e8b06a) )
+ROM_END
+
+ROM_START( fswordsbf )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "187bf.p1", 0x000000, 0x100000, CRC(ba48c4c1) SHA1(c2aba24cda885fc8f8072023e496e599c2e610a2) )
+ ROM_LOAD16_WORD_SWAP( "087-p2.sp2", 0x100000, 0x200000, CRC(9bbe27e0) SHA1(b18117102159903c8e8f4e4226e1cc91a400e816) )
+
+ NEO_SFIX_128K( "087-s1.s1", CRC(74ec7d9f) SHA1(d79c479838a7ca51735a44f91f1968ec5b3c6b91) )
+
+ NEO_BIOS_AUDIO_128K( "087-m1.m1", CRC(8e6440eb) SHA1(e3f72150af4e326543b29df71cda27d73ec087c1) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "087-v1.v1", 0x000000, 0x400000, CRC(84bdd9a0) SHA1(adceceb00569eca13fcc2e0f0d9f0d9b06a06851) )
+ ROM_LOAD( "087-v2.v2", 0x400000, 0x200000, CRC(ac0f261a) SHA1(5411bdff24cba7fdbc3397d45a70fb468d7a44b3) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "087-c1.c1", 0x0000000, 0x400000, CRC(07a233bc) SHA1(654cb56cfd6eeebe6745c0b8b730317fb8ccd3d9) )
+ ROM_LOAD16_BYTE( "087-c2.c2", 0x0000001, 0x400000, CRC(7a413592) SHA1(b8c7a2d0d7a8b14d6cab94d7a5f347e73c6ab7a4) )
+ ROM_LOAD16_BYTE( "087-c3.c3", 0x0800000, 0x400000, CRC(8b793796) SHA1(053acc129ea56691607a5d255845703e61fd3ada) )
+ ROM_LOAD16_BYTE( "087-c4.c4", 0x0800001, 0x400000, CRC(728fbf11) SHA1(daa319d455f759bfc08a37b43218bdb48dc1c9e5) )
+ ROM_LOAD16_BYTE( "087-c5.c5", 0x1000000, 0x400000, CRC(172ab180) SHA1(a6122f683bdb78d0079e1e360c1b96ba28def7b7) )
+ ROM_LOAD16_BYTE( "087-c6.c6", 0x1000001, 0x400000, CRC(002ff8f3) SHA1(3a378708697d727796c4f702dd5bbf1c9eb4daec) )
+ ROM_LOAD16_BYTE( "087-c7.c7", 0x1800000, 0x100000, CRC(ae450e3d) SHA1(ec482632cc347ec3f9e68df0ebcaa16ebe41b9f9) )
+ ROM_LOAD16_BYTE( "087-c8.c8", 0x1800001, 0x100000, CRC(a9e82717) SHA1(e39ee15d5140dbe7f06eea945cce9984a5e8b06a) )
+ROM_END
+
+
+ROM_START( samshob ) /* Samurai Shodown - Hack by Ydmis - (Can choose Amakusa) */
+ ROM_REGION( 0x180000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "045b.p1", 0x000000, 0x080000, CRC(bc16e98b) SHA1(097611c6b0f1f0f09460d49b67c09f1611ce68bc) )
+ ROM_LOAD16_WORD_SWAP( "045b.p3", 0x080000, 0x080000, CRC(71768728) SHA1(9ff0e01d3fb73ad04279d4fdf4c53c3160888179) )
+ ROM_LOAD16_WORD_SWAP( "045-p2.sp2", 0x100000, 0x080000, CRC(38ee9ba9) SHA1(48190699a6be83cb6257365ae81f93fdd23abe09) )
+
+ NEO_SFIX_128K( "045-s1.s1", CRC(9142a4d3) SHA1(54088e99fcfd75fd0f94852890a56350066a05a3) )
+
+ NEO_BIOS_AUDIO_128K( "045-m1.m1", CRC(95170640) SHA1(125c502db0693e8d11cef619b090081c14a9a300) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "045-v1.v1", 0x000000, 0x200000, CRC(37f78a9b) SHA1(6279b497d12fa90b49ab5ac3aae20fb302ec8b81) )
+ ROM_LOAD( "045-v2.v2", 0x200000, 0x200000, CRC(568b20cf) SHA1(61af858685472a1fad608e230cccc2b108509ddb) )
+
+ ROM_REGION( 0x900000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "045-c1.c1", 0x000000, 0x200000, CRC(2e5873a4) SHA1(65c74c1e2d34390666bbb630df7d1f4c9570c3db) )
+ ROM_LOAD16_BYTE( "045-c2.c2", 0x000001, 0x200000, CRC(04febb10) SHA1(16a8cbf0fd9468e81bf9eab6dbe7a8e3623a843e) )
+ ROM_LOAD16_BYTE( "045-c3.c3", 0x400000, 0x200000, CRC(f3dabd1e) SHA1(c80e52df42be9f8b2e89b467b11ab140a480cee8) )
+ ROM_LOAD16_BYTE( "045-c4.c4", 0x400001, 0x200000, CRC(935c62f0) SHA1(0053d40085fac14096b683f4341f65e543b71dc1) )
+ ROM_LOAD16_BYTE( "045-c5.c5", 0x800000, 0x080000, CRC(a2bb8284) SHA1(aa118e3b8c062daa219b36758b9a3814c08c69dc) )
+ ROM_LOAD16_BYTE( "045-c6.c6", 0x800001, 0x080000, CRC(4fa71252) SHA1(afe374a9d1f2d955a59efe7b6196b89e021b164c) )
+ROM_END
+
+ROM_START( samshoeh ) /* Samurai Shodown - Enhance by Ydmis - (Can choose Amakusa - ultra kill start is max) */
+ ROM_REGION( 0x180000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "045eh.p1", 0x000000, 0x080000, CRC(ba5277df) SHA1(255f467e0b9b2ee2210028829d68efd060a1480d) )
+ ROM_LOAD16_WORD_SWAP( "045b.p3", 0x080000, 0x080000, CRC(71768728) SHA1(9ff0e01d3fb73ad04279d4fdf4c53c3160888179) )
+ ROM_LOAD16_WORD_SWAP( "045-p2.sp2", 0x100000, 0x080000, CRC(38ee9ba9) SHA1(48190699a6be83cb6257365ae81f93fdd23abe09) )
+
+ NEO_SFIX_128K( "045-s1.s1", CRC(9142a4d3) SHA1(54088e99fcfd75fd0f94852890a56350066a05a3) )
+
+ NEO_BIOS_AUDIO_128K( "045-m1.m1", CRC(95170640) SHA1(125c502db0693e8d11cef619b090081c14a9a300) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "045-v1.v1", 0x000000, 0x200000, CRC(37f78a9b) SHA1(6279b497d12fa90b49ab5ac3aae20fb302ec8b81) )
+ ROM_LOAD( "045-v2.v2", 0x200000, 0x200000, CRC(568b20cf) SHA1(61af858685472a1fad608e230cccc2b108509ddb) )
+
+ ROM_REGION( 0x900000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "045-c1.c1", 0x000000, 0x200000, CRC(2e5873a4) SHA1(65c74c1e2d34390666bbb630df7d1f4c9570c3db) )
+ ROM_LOAD16_BYTE( "045-c2.c2", 0x000001, 0x200000, CRC(04febb10) SHA1(16a8cbf0fd9468e81bf9eab6dbe7a8e3623a843e) )
+ ROM_LOAD16_BYTE( "045-c3.c3", 0x400000, 0x200000, CRC(f3dabd1e) SHA1(c80e52df42be9f8b2e89b467b11ab140a480cee8) )
+ ROM_LOAD16_BYTE( "045-c4.c4", 0x400001, 0x200000, CRC(935c62f0) SHA1(0053d40085fac14096b683f4341f65e543b71dc1) )
+ ROM_LOAD16_BYTE( "045-c5.c5", 0x800000, 0x080000, CRC(a2bb8284) SHA1(aa118e3b8c062daa219b36758b9a3814c08c69dc) )
+ ROM_LOAD16_BYTE( "045-c6.c6", 0x800001, 0x080000, CRC(4fa71252) SHA1(afe374a9d1f2d955a59efe7b6196b89e021b164c) )
+ROM_END
+
+ROM_START( samshoeh2 ) /* Enhance by Creamymami and Ydmis - (Can choose Amakusa - ultra kill start is max - ultra kill is always max) */
+ ROM_REGION( 0x180000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "045eh2.p1", 0x000000, 0x080000, CRC(54e85e0d) SHA1(701807af8e1181992cca5a31a8727e24cf4a0d9c) )
+ ROM_LOAD16_WORD_SWAP( "045b.p3", 0x080000, 0x080000, CRC(71768728) SHA1(9ff0e01d3fb73ad04279d4fdf4c53c3160888179) )
+ ROM_LOAD16_WORD_SWAP( "045-p2.sp2", 0x100000, 0x080000, CRC(38ee9ba9) SHA1(48190699a6be83cb6257365ae81f93fdd23abe09) )
+
+ NEO_SFIX_128K( "045-s1.s1", CRC(9142a4d3) SHA1(54088e99fcfd75fd0f94852890a56350066a05a3) )
+
+ NEO_BIOS_AUDIO_128K( "045-m1.m1", CRC(95170640) SHA1(125c502db0693e8d11cef619b090081c14a9a300) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "045-v1.v1", 0x000000, 0x200000, CRC(37f78a9b) SHA1(6279b497d12fa90b49ab5ac3aae20fb302ec8b81) )
+ ROM_LOAD( "045-v2.v2", 0x200000, 0x200000, CRC(568b20cf) SHA1(61af858685472a1fad608e230cccc2b108509ddb) )
+
+ ROM_REGION( 0x900000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "045-c1.c1", 0x000000, 0x200000, CRC(2e5873a4) SHA1(65c74c1e2d34390666bbb630df7d1f4c9570c3db) )
+ ROM_LOAD16_BYTE( "045-c2.c2", 0x000001, 0x200000, CRC(04febb10) SHA1(16a8cbf0fd9468e81bf9eab6dbe7a8e3623a843e) )
+ ROM_LOAD16_BYTE( "045-c3.c3", 0x400000, 0x200000, CRC(f3dabd1e) SHA1(c80e52df42be9f8b2e89b467b11ab140a480cee8) )
+ ROM_LOAD16_BYTE( "045-c4.c4", 0x400001, 0x200000, CRC(935c62f0) SHA1(0053d40085fac14096b683f4341f65e543b71dc1) )
+ ROM_LOAD16_BYTE( "045-c5.c5", 0x800000, 0x080000, CRC(a2bb8284) SHA1(aa118e3b8c062daa219b36758b9a3814c08c69dc) )
+ ROM_LOAD16_BYTE( "045-c6.c6", 0x800001, 0x080000, CRC(4fa71252) SHA1(afe374a9d1f2d955a59efe7b6196b89e021b164c) )
+ROM_END
+
+ROM_START( samshos1 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "045s1.p1", 0x000000, 0x100000, CRC(61ce3e49) SHA1(4c6246a02a378ba7c581b3a023159a73604a2d1c) )
+ ROM_LOAD16_WORD_SWAP( "045-pg2.sp2", 0x100000, 0x100000, CRC(46745b94) SHA1(d9e959fd1f88c9402915c1d0dcdb4a9e3d49cdcb) )
+
+ NEO_SFIX_128K( "045-s1.s1", CRC(9142a4d3) SHA1(54088e99fcfd75fd0f94852890a56350066a05a3) )
+
+ NEO_BIOS_AUDIO_128K( "045-m1.m1", CRC(95170640) SHA1(125c502db0693e8d11cef619b090081c14a9a300) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "045-v1.v1", 0x000000, 0x200000, CRC(37f78a9b) SHA1(6279b497d12fa90b49ab5ac3aae20fb302ec8b81) )
+ ROM_LOAD( "045-v2.v2", 0x200000, 0x200000, CRC(568b20cf) SHA1(61af858685472a1fad608e230cccc2b108509ddb) )
+
+ ROM_REGION( 0xa00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "045-c1.c1", 0x000000, 0x200000, CRC(2e5873a4) SHA1(65c74c1e2d34390666bbb630df7d1f4c9570c3db) )
+ ROM_LOAD16_BYTE( "045-c2.c2", 0x000001, 0x200000, CRC(04febb10) SHA1(16a8cbf0fd9468e81bf9eab6dbe7a8e3623a843e) )
+ ROM_LOAD16_BYTE( "045-c3.c3", 0x400000, 0x200000, CRC(f3dabd1e) SHA1(c80e52df42be9f8b2e89b467b11ab140a480cee8) )
+ ROM_LOAD16_BYTE( "045-c4.c4", 0x400001, 0x200000, CRC(935c62f0) SHA1(0053d40085fac14096b683f4341f65e543b71dc1) )
+ ROM_LOAD16_BYTE( "045-c51.c5", 0x800000, 0x100000, CRC(81932894) SHA1(550f15dc5892c4602422c51869f0d59f70f01e9e) )
+ ROM_LOAD16_BYTE( "045-c61.c6", 0x800001, 0x100000, CRC(be30612e) SHA1(5e8b785f917c176d6796eba0caed37b13ddb3e63) )
+ROM_END
+
+ROM_START( samshozk )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "045zk.p1", 0x000000, 0x100000, CRC(1538b682) SHA1(6024b12084828bcc54f0da2ee51f0a01316eaba6) )
+ ROM_LOAD16_WORD_SWAP( "045-pg2.sp2", 0x100000, 0x100000, CRC(46745b94) SHA1(d9e959fd1f88c9402915c1d0dcdb4a9e3d49cdcb) )
+
+ NEO_SFIX_128K( "045-s1.s1", CRC(9142a4d3) SHA1(54088e99fcfd75fd0f94852890a56350066a05a3) )
+
+ NEO_BIOS_AUDIO_128K( "045-m1.m1", CRC(95170640) SHA1(125c502db0693e8d11cef619b090081c14a9a300) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "045-v1.v1", 0x000000, 0x200000, CRC(37f78a9b) SHA1(6279b497d12fa90b49ab5ac3aae20fb302ec8b81) )
+ ROM_LOAD( "045-v2.v2", 0x200000, 0x200000, CRC(568b20cf) SHA1(61af858685472a1fad608e230cccc2b108509ddb) )
+
+ ROM_REGION( 0xa00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "045-c1.c1", 0x000000, 0x200000, CRC(2e5873a4) SHA1(65c74c1e2d34390666bbb630df7d1f4c9570c3db) )
+ ROM_LOAD16_BYTE( "045-c2.c2", 0x000001, 0x200000, CRC(04febb10) SHA1(16a8cbf0fd9468e81bf9eab6dbe7a8e3623a843e) )
+ ROM_LOAD16_BYTE( "045-c3.c3", 0x400000, 0x200000, CRC(f3dabd1e) SHA1(c80e52df42be9f8b2e89b467b11ab140a480cee8) )
+ ROM_LOAD16_BYTE( "045-c4.c4", 0x400001, 0x200000, CRC(935c62f0) SHA1(0053d40085fac14096b683f4341f65e543b71dc1) )
+ ROM_LOAD16_BYTE( "045-c51.c5", 0x800000, 0x100000, CRC(81932894) SHA1(550f15dc5892c4602422c51869f0d59f70f01e9e) )
+ ROM_LOAD16_BYTE( "045-c61.c6", 0x800001, 0x100000, CRC(be30612e) SHA1(5e8b785f917c176d6796eba0caed37b13ddb3e63) )
+ROM_END
+
+
+ROM_START( samsho2eh ) /* Samurai Shodown II - Enhance by Ydmis - (Can choose Mizuki and Kuroko) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "063eh.p1", 0x100000, 0x100000, CRC(2682710f) SHA1(56b521673651c1b218d7a4382e6766a239f39826) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "063-s1.s1", CRC(64a5cd66) SHA1(12cdfb27bf9ccd5a8df6ddd4628ef7cf2c6d4964) )
+
+ NEO_BIOS_AUDIO_128K( "063-m1.m1", CRC(56675098) SHA1(90429fc40d056d480d0e2bbefbc691d9fa260fc4) )
+
+ ROM_REGION( 0x700000, "ymsnd", 0 )
+ ROM_LOAD( "063-v1.v1", 0x000000, 0x200000, CRC(37703f91) SHA1(a373ebef4c33ba1d8340e826981a58769aada238) )
+ ROM_LOAD( "063-v2.v2", 0x200000, 0x200000, CRC(0142bde8) SHA1(0be6c53acac44802bf70b6925452f70289a139d9) )
+ ROM_LOAD( "063-v3.v3", 0x400000, 0x200000, CRC(d07fa5ca) SHA1(1da7f081f8b8fc86a91feacf900f573218d82676) )
+ ROM_LOAD( "063-v4.v4", 0x600000, 0x100000, CRC(24aab4bb) SHA1(10ee4c5b3579865b93dcc1e4079963276aa700a6) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "063-c1.c1", 0x000000, 0x200000, CRC(86cd307c) SHA1(0d04336f7c436d74638d8c1cd8651faf436a6bec) )
+ ROM_LOAD16_BYTE( "063-c2.c2", 0x000001, 0x200000, CRC(cdfcc4ca) SHA1(179dc81432424d68cefedd20cc1c4b2a95deb891) )
+ ROM_LOAD16_BYTE( "063-c3.c3", 0x400000, 0x200000, CRC(7a63ccc7) SHA1(49d97c543bc2860d493a353ab0d059088c6fbd21) )
+ ROM_LOAD16_BYTE( "063-c4.c4", 0x400001, 0x200000, CRC(751025ce) SHA1(e1bbaa7cd67fd04e4aab7f7ea77f63ae1cbc90d0) )
+ ROM_LOAD16_BYTE( "063-c5.c5", 0x800000, 0x200000, CRC(20d3a475) SHA1(28da44a136bd14c73c62c147c3f6e6bcfa1066de) )
+ ROM_LOAD16_BYTE( "063-c6.c6", 0x800001, 0x200000, CRC(ae4c0a88) SHA1(cc8a7d11daa3821f83a6fd0942534706f939e576) )
+ ROM_LOAD16_BYTE( "063-c7.c7", 0xc00000, 0x200000, CRC(2df3cbcf) SHA1(e54f9022359963711451c2025825b862d36c6975) )
+ ROM_LOAD16_BYTE( "063-c8.c8", 0xc00001, 0x200000, CRC(1ffc6dfa) SHA1(acea18aca76c072e0bac2a364fc96d49cfc86e77) )
+ROM_END
+
+ROM_START( samsho2emb )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "063emb.p1", 0x100000, 0x100000, CRC(33284e4f) SHA1(dcd57ac1c514c9b8d7d019a7c5c61468b890445e) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "063-s1.s1", CRC(64a5cd66) SHA1(12cdfb27bf9ccd5a8df6ddd4628ef7cf2c6d4964) )
+
+ NEO_BIOS_AUDIO_128K( "063-m1.m1", CRC(56675098) SHA1(90429fc40d056d480d0e2bbefbc691d9fa260fc4) )
+
+ ROM_REGION( 0x700000, "ymsnd", 0 )
+ ROM_LOAD( "063-v1.v1", 0x000000, 0x200000, CRC(37703f91) SHA1(a373ebef4c33ba1d8340e826981a58769aada238) )
+ ROM_LOAD( "063-v2.v2", 0x200000, 0x200000, CRC(0142bde8) SHA1(0be6c53acac44802bf70b6925452f70289a139d9) )
+ ROM_LOAD( "063-v3.v3", 0x400000, 0x200000, CRC(d07fa5ca) SHA1(1da7f081f8b8fc86a91feacf900f573218d82676) )
+ ROM_LOAD( "063-v4.v4", 0x600000, 0x100000, CRC(24aab4bb) SHA1(10ee4c5b3579865b93dcc1e4079963276aa700a6) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "063-c1.c1", 0x000000, 0x200000, CRC(86cd307c) SHA1(0d04336f7c436d74638d8c1cd8651faf436a6bec) )
+ ROM_LOAD16_BYTE( "063-c2.c2", 0x000001, 0x200000, CRC(cdfcc4ca) SHA1(179dc81432424d68cefedd20cc1c4b2a95deb891) )
+ ROM_LOAD16_BYTE( "063-c3.c3", 0x400000, 0x200000, CRC(7a63ccc7) SHA1(49d97c543bc2860d493a353ab0d059088c6fbd21) )
+ ROM_LOAD16_BYTE( "063-c4.c4", 0x400001, 0x200000, CRC(751025ce) SHA1(e1bbaa7cd67fd04e4aab7f7ea77f63ae1cbc90d0) )
+ ROM_LOAD16_BYTE( "063-c5.c5", 0x800000, 0x200000, CRC(20d3a475) SHA1(28da44a136bd14c73c62c147c3f6e6bcfa1066de) )
+ ROM_LOAD16_BYTE( "063-c6.c6", 0x800001, 0x200000, CRC(ae4c0a88) SHA1(cc8a7d11daa3821f83a6fd0942534706f939e576) )
+ ROM_LOAD16_BYTE( "063-c7.c7", 0xc00000, 0x200000, CRC(2df3cbcf) SHA1(e54f9022359963711451c2025825b862d36c6975) )
+ ROM_LOAD16_BYTE( "063-c8.c8", 0xc00001, 0x200000, CRC(1ffc6dfa) SHA1(acea18aca76c072e0bac2a364fc96d49cfc86e77) )
+ROM_END
+
+ROM_START( samsho2hy )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "063hy.p1", 0x000000, 0x100000, CRC(87032884) SHA1(bdd07f9b2e57f1d429a4d5b6af4335cc5440ac75) )
+ ROM_LOAD16_WORD_SWAP( "063hy.p2", 0x100000, 0x100000, CRC(a03ead44) SHA1(8bfbc2b6220719a742e1684601f36305d0e63308) )
+
+ NEO_SFIX_128K( "063-s1.s1", CRC(64a5cd66) SHA1(12cdfb27bf9ccd5a8df6ddd4628ef7cf2c6d4964) )
+
+ NEO_BIOS_AUDIO_128K( "063-m1.m1", CRC(56675098) SHA1(90429fc40d056d480d0e2bbefbc691d9fa260fc4) )
+
+ ROM_REGION( 0x700000, "ymsnd", 0 )
+ ROM_LOAD( "063-v1.v1", 0x000000, 0x200000, CRC(37703f91) SHA1(a373ebef4c33ba1d8340e826981a58769aada238) )
+ ROM_LOAD( "063-v2.v2", 0x200000, 0x200000, CRC(0142bde8) SHA1(0be6c53acac44802bf70b6925452f70289a139d9) )
+ ROM_LOAD( "063-v3.v3", 0x400000, 0x200000, CRC(d07fa5ca) SHA1(1da7f081f8b8fc86a91feacf900f573218d82676) )
+ ROM_LOAD( "063-v4.v4", 0x600000, 0x100000, CRC(24aab4bb) SHA1(10ee4c5b3579865b93dcc1e4079963276aa700a6) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "063-c1.c1", 0x000000, 0x200000, CRC(86cd307c) SHA1(0d04336f7c436d74638d8c1cd8651faf436a6bec) )
+ ROM_LOAD16_BYTE( "063-c2.c2", 0x000001, 0x200000, CRC(cdfcc4ca) SHA1(179dc81432424d68cefedd20cc1c4b2a95deb891) )
+ ROM_LOAD16_BYTE( "063-c3.c3", 0x400000, 0x200000, CRC(7a63ccc7) SHA1(49d97c543bc2860d493a353ab0d059088c6fbd21) )
+ ROM_LOAD16_BYTE( "063-c4.c4", 0x400001, 0x200000, CRC(751025ce) SHA1(e1bbaa7cd67fd04e4aab7f7ea77f63ae1cbc90d0) )
+ ROM_LOAD16_BYTE( "063-c5.c5", 0x800000, 0x200000, CRC(20d3a475) SHA1(28da44a136bd14c73c62c147c3f6e6bcfa1066de) )
+ ROM_LOAD16_BYTE( "063-c6.c6", 0x800001, 0x200000, CRC(ae4c0a88) SHA1(cc8a7d11daa3821f83a6fd0942534706f939e576) )
+ ROM_LOAD16_BYTE( "063-c7.c7", 0xc00000, 0x200000, CRC(2df3cbcf) SHA1(e54f9022359963711451c2025825b862d36c6975) )
+ ROM_LOAD16_BYTE( "063-c8.c8", 0xc00001, 0x200000, CRC(1ffc6dfa) SHA1(acea18aca76c072e0bac2a364fc96d49cfc86e77) )
+ROM_END
+
+ROM_START( samsho2mb )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "063mb.p1", 0x100000, 0x100000, CRC(33f68ceb) SHA1(d889a40a5cacbc04ec67a81a93fb1e95f0cc5484) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "063-s1.s1", CRC(64a5cd66) SHA1(12cdfb27bf9ccd5a8df6ddd4628ef7cf2c6d4964) )
+
+ NEO_BIOS_AUDIO_128K( "063-m1.m1", CRC(56675098) SHA1(90429fc40d056d480d0e2bbefbc691d9fa260fc4) )
+
+ ROM_REGION( 0x700000, "ymsnd", 0 )
+ ROM_LOAD( "063-v1.v1", 0x000000, 0x200000, CRC(37703f91) SHA1(a373ebef4c33ba1d8340e826981a58769aada238) )
+ ROM_LOAD( "063-v2.v2", 0x200000, 0x200000, CRC(0142bde8) SHA1(0be6c53acac44802bf70b6925452f70289a139d9) )
+ ROM_LOAD( "063-v3.v3", 0x400000, 0x200000, CRC(d07fa5ca) SHA1(1da7f081f8b8fc86a91feacf900f573218d82676) )
+ ROM_LOAD( "063-v4.v4", 0x600000, 0x100000, CRC(24aab4bb) SHA1(10ee4c5b3579865b93dcc1e4079963276aa700a6) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "063-c1.c1", 0x000000, 0x200000, CRC(86cd307c) SHA1(0d04336f7c436d74638d8c1cd8651faf436a6bec) )
+ ROM_LOAD16_BYTE( "063-c2.c2", 0x000001, 0x200000, CRC(cdfcc4ca) SHA1(179dc81432424d68cefedd20cc1c4b2a95deb891) )
+ ROM_LOAD16_BYTE( "063-c3.c3", 0x400000, 0x200000, CRC(7a63ccc7) SHA1(49d97c543bc2860d493a353ab0d059088c6fbd21) )
+ ROM_LOAD16_BYTE( "063-c4.c4", 0x400001, 0x200000, CRC(751025ce) SHA1(e1bbaa7cd67fd04e4aab7f7ea77f63ae1cbc90d0) )
+ ROM_LOAD16_BYTE( "063-c5.c5", 0x800000, 0x200000, CRC(20d3a475) SHA1(28da44a136bd14c73c62c147c3f6e6bcfa1066de) )
+ ROM_LOAD16_BYTE( "063-c6.c6", 0x800001, 0x200000, CRC(ae4c0a88) SHA1(cc8a7d11daa3821f83a6fd0942534706f939e576) )
+ ROM_LOAD16_BYTE( "063-c7.c7", 0xc00000, 0x200000, CRC(2df3cbcf) SHA1(e54f9022359963711451c2025825b862d36c6975) )
+ ROM_LOAD16_BYTE( "063-c8.c8", 0xc00001, 0x200000, CRC(1ffc6dfa) SHA1(acea18aca76c072e0bac2a364fc96d49cfc86e77) )
+ROM_END
+
+ROM_START( samsho2q )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "063q.p1", 0x100000, 0x100000, CRC(6fa3bd7a) SHA1(c0a718d2e989e334948d0fbd21af58795f126a34) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "063-s1.s1", CRC(64a5cd66) SHA1(12cdfb27bf9ccd5a8df6ddd4628ef7cf2c6d4964) )
+
+ NEO_BIOS_AUDIO_128K( "063-m1.m1", CRC(56675098) SHA1(90429fc40d056d480d0e2bbefbc691d9fa260fc4) )
+
+ ROM_REGION( 0x700000, "ymsnd", 0 )
+ ROM_LOAD( "063-v1.v1", 0x000000, 0x200000, CRC(37703f91) SHA1(a373ebef4c33ba1d8340e826981a58769aada238) )
+ ROM_LOAD( "063-v2.v2", 0x200000, 0x200000, CRC(0142bde8) SHA1(0be6c53acac44802bf70b6925452f70289a139d9) )
+ ROM_LOAD( "063-v3.v3", 0x400000, 0x200000, CRC(d07fa5ca) SHA1(1da7f081f8b8fc86a91feacf900f573218d82676) )
+ ROM_LOAD( "063-v4.v4", 0x600000, 0x100000, CRC(24aab4bb) SHA1(10ee4c5b3579865b93dcc1e4079963276aa700a6) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "063-c1.c1", 0x000000, 0x200000, CRC(86cd307c) SHA1(0d04336f7c436d74638d8c1cd8651faf436a6bec) )
+ ROM_LOAD16_BYTE( "063-c2.c2", 0x000001, 0x200000, CRC(cdfcc4ca) SHA1(179dc81432424d68cefedd20cc1c4b2a95deb891) )
+ ROM_LOAD16_BYTE( "063-c3.c3", 0x400000, 0x200000, CRC(7a63ccc7) SHA1(49d97c543bc2860d493a353ab0d059088c6fbd21) )
+ ROM_LOAD16_BYTE( "063-c4.c4", 0x400001, 0x200000, CRC(751025ce) SHA1(e1bbaa7cd67fd04e4aab7f7ea77f63ae1cbc90d0) )
+ ROM_LOAD16_BYTE( "063-c5.c5", 0x800000, 0x200000, CRC(20d3a475) SHA1(28da44a136bd14c73c62c147c3f6e6bcfa1066de) )
+ ROM_LOAD16_BYTE( "063-c6.c6", 0x800001, 0x200000, CRC(ae4c0a88) SHA1(cc8a7d11daa3821f83a6fd0942534706f939e576) )
+ ROM_LOAD16_BYTE( "063-c7.c7", 0xc00000, 0x200000, CRC(2df3cbcf) SHA1(e54f9022359963711451c2025825b862d36c6975) )
+ ROM_LOAD16_BYTE( "063-c8.c8", 0xc00001, 0x200000, CRC(1ffc6dfa) SHA1(acea18aca76c072e0bac2a364fc96d49cfc86e77) )
+ROM_END
+
+ROM_START( samsho2s2 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "063s2.p1", 0x100000, 0x100000, CRC(38f5f416) SHA1(ce2f3e7fd534b1b3e02c9316210af1ca375ac2ea) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "063-s1.s1", CRC(64a5cd66) SHA1(12cdfb27bf9ccd5a8df6ddd4628ef7cf2c6d4964) )
+
+ NEO_BIOS_AUDIO_128K( "063-m1.m1", CRC(56675098) SHA1(90429fc40d056d480d0e2bbefbc691d9fa260fc4) )
+
+ ROM_REGION( 0x700000, "ymsnd", 0 )
+ ROM_LOAD( "063-v1.v1", 0x000000, 0x200000, CRC(37703f91) SHA1(a373ebef4c33ba1d8340e826981a58769aada238) )
+ ROM_LOAD( "063-v2.v2", 0x200000, 0x200000, CRC(0142bde8) SHA1(0be6c53acac44802bf70b6925452f70289a139d9) )
+ ROM_LOAD( "063-v3.v3", 0x400000, 0x200000, CRC(d07fa5ca) SHA1(1da7f081f8b8fc86a91feacf900f573218d82676) )
+ ROM_LOAD( "063-v4.v4", 0x600000, 0x100000, CRC(24aab4bb) SHA1(10ee4c5b3579865b93dcc1e4079963276aa700a6) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "063-c1.c1", 0x000000, 0x200000, CRC(86cd307c) SHA1(0d04336f7c436d74638d8c1cd8651faf436a6bec) )
+ ROM_LOAD16_BYTE( "063-c2.c2", 0x000001, 0x200000, CRC(cdfcc4ca) SHA1(179dc81432424d68cefedd20cc1c4b2a95deb891) )
+ ROM_LOAD16_BYTE( "063-c3.c3", 0x400000, 0x200000, CRC(7a63ccc7) SHA1(49d97c543bc2860d493a353ab0d059088c6fbd21) )
+ ROM_LOAD16_BYTE( "063-c4.c4", 0x400001, 0x200000, CRC(751025ce) SHA1(e1bbaa7cd67fd04e4aab7f7ea77f63ae1cbc90d0) )
+ ROM_LOAD16_BYTE( "063-c5.c5", 0x800000, 0x200000, CRC(20d3a475) SHA1(28da44a136bd14c73c62c147c3f6e6bcfa1066de) )
+ ROM_LOAD16_BYTE( "063-c6.c6", 0x800001, 0x200000, CRC(ae4c0a88) SHA1(cc8a7d11daa3821f83a6fd0942534706f939e576) )
+ ROM_LOAD16_BYTE( "063-c7.c7", 0xc00000, 0x200000, CRC(2df3cbcf) SHA1(e54f9022359963711451c2025825b862d36c6975) )
+ ROM_LOAD16_BYTE( "063-c8.c8", 0xc00001, 0x200000, CRC(1ffc6dfa) SHA1(acea18aca76c072e0bac2a364fc96d49cfc86e77) )
+ROM_END
+
+ROM_START( samsho2sp )
+ ROM_REGION( 0x220000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "063sp.p1", 0x000000, 0x100000, CRC(07d5c8f5) SHA1(0ed9bc1b188e5d445cf80ea5af67938fd96d50c2) )
+ ROM_LOAD16_WORD_SWAP( "063sp.p2", 0x100000, 0x100000, CRC(6e1aef70) SHA1(7a035e80b6f6af1d105ecccf3f5a2c44470366f3) )
+ ROM_LOAD16_WORD_SWAP( "063sp.p3", 0x200000, 0x020000, CRC(e56076ae) SHA1(9c2e6858fceb03702245658bbb6ba4e14431dda1) )
+
+ NEO_SFIX_128K( "063sp.s1", CRC(1951a907) SHA1(ee0e4743d7c2ba6306f08f16de2e3fea6697a89e) )
+
+ NEO_BIOS_AUDIO_128K( "063-m1.m1", CRC(56675098) SHA1(90429fc40d056d480d0e2bbefbc691d9fa260fc4) )
+
+ ROM_REGION( 0x700000, "ymsnd", 0 )
+ ROM_LOAD( "063-v1.v1", 0x000000, 0x200000, CRC(37703f91) SHA1(a373ebef4c33ba1d8340e826981a58769aada238) )
+ ROM_LOAD( "063-v2.v2", 0x200000, 0x200000, CRC(0142bde8) SHA1(0be6c53acac44802bf70b6925452f70289a139d9) )
+ ROM_LOAD( "063-v3.v3", 0x400000, 0x200000, CRC(d07fa5ca) SHA1(1da7f081f8b8fc86a91feacf900f573218d82676) )
+ ROM_LOAD( "063-v4.v4", 0x600000, 0x100000, CRC(24aab4bb) SHA1(10ee4c5b3579865b93dcc1e4079963276aa700a6) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "063-c1.c1", 0x000000, 0x200000, CRC(86cd307c) SHA1(0d04336f7c436d74638d8c1cd8651faf436a6bec) )
+ ROM_LOAD16_BYTE( "063-c2.c2", 0x000001, 0x200000, CRC(cdfcc4ca) SHA1(179dc81432424d68cefedd20cc1c4b2a95deb891) )
+ ROM_LOAD16_BYTE( "063-c3.c3", 0x400000, 0x200000, CRC(7a63ccc7) SHA1(49d97c543bc2860d493a353ab0d059088c6fbd21) )
+ ROM_LOAD16_BYTE( "063-c4.c4", 0x400001, 0x200000, CRC(751025ce) SHA1(e1bbaa7cd67fd04e4aab7f7ea77f63ae1cbc90d0) )
+ ROM_LOAD16_BYTE( "063-c5.c5", 0x800000, 0x200000, CRC(20d3a475) SHA1(28da44a136bd14c73c62c147c3f6e6bcfa1066de) )
+ ROM_LOAD16_BYTE( "063-c6.c6", 0x800001, 0x200000, CRC(ae4c0a88) SHA1(cc8a7d11daa3821f83a6fd0942534706f939e576) )
+ ROM_LOAD16_BYTE( "063sp.c7", 0xc00000, 0x200000, CRC(dbebced2) SHA1(c1db8a0a6814b8078934b68f1f579060e36f67b2) )
+ ROM_LOAD16_BYTE( "063sp.c8", 0xc00001, 0x200000, CRC(bf70b93c) SHA1(1bffeb6c7e158b9aee33802fe86f75cee04c6ecc) )
+ROM_END
+
+ROM_START( samsho2sp2 )
+ ROM_REGION( 0x220000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "063sp2.p1", 0x000000, 0x100000, CRC(08de44f4) SHA1(b409b0a301f61b0d0d952383aae71af51527d08e) )
+ ROM_LOAD16_WORD_SWAP( "063sp.p2", 0x100000, 0x100000, CRC(6e1aef70) SHA1(7a035e80b6f6af1d105ecccf3f5a2c44470366f3) )
+ ROM_LOAD16_WORD_SWAP( "063sp2.p3", 0x200000, 0x020000, CRC(cf9f3a5d) SHA1(8643ac9173be35f6aa5ad1e733c74d1355ac6f84) )
+
+ NEO_SFIX_128K( "063sp.s1", CRC(1951a907) SHA1(ee0e4743d7c2ba6306f08f16de2e3fea6697a89e) )
+
+ NEO_BIOS_AUDIO_128K( "063-m1.m1", CRC(56675098) SHA1(90429fc40d056d480d0e2bbefbc691d9fa260fc4) )
+
+ ROM_REGION( 0x700000, "ymsnd", 0 )
+ ROM_LOAD( "063-v1.v1", 0x000000, 0x200000, CRC(37703f91) SHA1(a373ebef4c33ba1d8340e826981a58769aada238) )
+ ROM_LOAD( "063-v2.v2", 0x200000, 0x200000, CRC(0142bde8) SHA1(0be6c53acac44802bf70b6925452f70289a139d9) )
+ ROM_LOAD( "063-v3.v3", 0x400000, 0x200000, CRC(d07fa5ca) SHA1(1da7f081f8b8fc86a91feacf900f573218d82676) )
+ ROM_LOAD( "063-v4.v4", 0x600000, 0x100000, CRC(24aab4bb) SHA1(10ee4c5b3579865b93dcc1e4079963276aa700a6) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "063-c1.c1", 0x000000, 0x200000, CRC(86cd307c) SHA1(0d04336f7c436d74638d8c1cd8651faf436a6bec) )
+ ROM_LOAD16_BYTE( "063-c2.c2", 0x000001, 0x200000, CRC(cdfcc4ca) SHA1(179dc81432424d68cefedd20cc1c4b2a95deb891) )
+ ROM_LOAD16_BYTE( "063-c3.c3", 0x400000, 0x200000, CRC(7a63ccc7) SHA1(49d97c543bc2860d493a353ab0d059088c6fbd21) )
+ ROM_LOAD16_BYTE( "063-c4.c4", 0x400001, 0x200000, CRC(751025ce) SHA1(e1bbaa7cd67fd04e4aab7f7ea77f63ae1cbc90d0) )
+ ROM_LOAD16_BYTE( "063-c5.c5", 0x800000, 0x200000, CRC(20d3a475) SHA1(28da44a136bd14c73c62c147c3f6e6bcfa1066de) )
+ ROM_LOAD16_BYTE( "063-c6.c6", 0x800001, 0x200000, CRC(ae4c0a88) SHA1(cc8a7d11daa3821f83a6fd0942534706f939e576) )
+ ROM_LOAD16_BYTE( "063sp.c7", 0xc00000, 0x200000, CRC(dbebced2) SHA1(c1db8a0a6814b8078934b68f1f579060e36f67b2) )
+ ROM_LOAD16_BYTE( "063sp.c8", 0xc00001, 0x200000, CRC(bf70b93c) SHA1(1bffeb6c7e158b9aee33802fe86f75cee04c6ecc) )
+ROM_END
+
+ROM_START( samsho2sp3 )
+ ROM_REGION( 0x220000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "063sp3.p1", 0x000000, 0x100000, CRC(19260a9a) SHA1(cd40ac51079641e778edac4910e96e51479cdcbb) )
+ ROM_LOAD16_WORD_SWAP( "063sp.p2", 0x100000, 0x100000, CRC(6e1aef70) SHA1(7a035e80b6f6af1d105ecccf3f5a2c44470366f3) )
+ ROM_LOAD16_WORD_SWAP( "063sp3.p3", 0x200000, 0x020000, CRC(8fabd043) SHA1(b8a311d0f57981ef045d80858036136c7840c405) )
+
+ NEO_SFIX_128K( "063sp.s1", CRC(1951a907) SHA1(ee0e4743d7c2ba6306f08f16de2e3fea6697a89e) )
+
+ NEO_BIOS_AUDIO_128K( "063-m1.m1", CRC(56675098) SHA1(90429fc40d056d480d0e2bbefbc691d9fa260fc4) )
+
+ ROM_REGION( 0x700000, "ymsnd", 0 )
+ ROM_LOAD( "063-v1.v1", 0x000000, 0x200000, CRC(37703f91) SHA1(a373ebef4c33ba1d8340e826981a58769aada238) )
+ ROM_LOAD( "063-v2.v2", 0x200000, 0x200000, CRC(0142bde8) SHA1(0be6c53acac44802bf70b6925452f70289a139d9) )
+ ROM_LOAD( "063-v3.v3", 0x400000, 0x200000, CRC(d07fa5ca) SHA1(1da7f081f8b8fc86a91feacf900f573218d82676) )
+ ROM_LOAD( "063-v4.v4", 0x600000, 0x100000, CRC(24aab4bb) SHA1(10ee4c5b3579865b93dcc1e4079963276aa700a6) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "063-c1.c1", 0x000000, 0x200000, CRC(86cd307c) SHA1(0d04336f7c436d74638d8c1cd8651faf436a6bec) )
+ ROM_LOAD16_BYTE( "063-c2.c2", 0x000001, 0x200000, CRC(cdfcc4ca) SHA1(179dc81432424d68cefedd20cc1c4b2a95deb891) )
+ ROM_LOAD16_BYTE( "063-c3.c3", 0x400000, 0x200000, CRC(7a63ccc7) SHA1(49d97c543bc2860d493a353ab0d059088c6fbd21) )
+ ROM_LOAD16_BYTE( "063-c4.c4", 0x400001, 0x200000, CRC(751025ce) SHA1(e1bbaa7cd67fd04e4aab7f7ea77f63ae1cbc90d0) )
+ ROM_LOAD16_BYTE( "063-c5.c5", 0x800000, 0x200000, CRC(20d3a475) SHA1(28da44a136bd14c73c62c147c3f6e6bcfa1066de) )
+ ROM_LOAD16_BYTE( "063-c6.c6", 0x800001, 0x200000, CRC(ae4c0a88) SHA1(cc8a7d11daa3821f83a6fd0942534706f939e576) )
+ ROM_LOAD16_BYTE( "063sp.c7", 0xc00000, 0x200000, CRC(dbebced2) SHA1(c1db8a0a6814b8078934b68f1f579060e36f67b2) )
+ ROM_LOAD16_BYTE( "063sp.c8", 0xc00001, 0x200000, CRC(bf70b93c) SHA1(1bffeb6c7e158b9aee33802fe86f75cee04c6ecc) )
+ROM_END
+
+ROM_START( samsho2sp4 )
+ ROM_REGION( 0x220000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "063sp4.p1", 0x000000, 0x100000, CRC(2bd5a4ab) SHA1(5d5b1cd7efc5a71b1cb97b81b920a0924b7cd760) )
+ ROM_LOAD16_WORD_SWAP( "063sp.p2", 0x100000, 0x100000, CRC(6e1aef70) SHA1(7a035e80b6f6af1d105ecccf3f5a2c44470366f3) )
+ ROM_LOAD16_WORD_SWAP( "063sp4.p3", 0x200000, 0x020000, CRC(72eec1f4) SHA1(122548fdfd6ca4b80e6a232f5928ce6bac6c862b) )
+
+ NEO_SFIX_128K( "063sp.s1", CRC(1951a907) SHA1(ee0e4743d7c2ba6306f08f16de2e3fea6697a89e) )
+
+ NEO_BIOS_AUDIO_128K( "063-m1.m1", CRC(56675098) SHA1(90429fc40d056d480d0e2bbefbc691d9fa260fc4) )
+
+ ROM_REGION( 0x700000, "ymsnd", 0 )
+ ROM_LOAD( "063-v1.v1", 0x000000, 0x200000, CRC(37703f91) SHA1(a373ebef4c33ba1d8340e826981a58769aada238) )
+ ROM_LOAD( "063-v2.v2", 0x200000, 0x200000, CRC(0142bde8) SHA1(0be6c53acac44802bf70b6925452f70289a139d9) )
+ ROM_LOAD( "063-v3.v3", 0x400000, 0x200000, CRC(d07fa5ca) SHA1(1da7f081f8b8fc86a91feacf900f573218d82676) )
+ ROM_LOAD( "063-v4.v4", 0x600000, 0x100000, CRC(24aab4bb) SHA1(10ee4c5b3579865b93dcc1e4079963276aa700a6) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "063-c1.c1", 0x000000, 0x200000, CRC(86cd307c) SHA1(0d04336f7c436d74638d8c1cd8651faf436a6bec) )
+ ROM_LOAD16_BYTE( "063-c2.c2", 0x000001, 0x200000, CRC(cdfcc4ca) SHA1(179dc81432424d68cefedd20cc1c4b2a95deb891) )
+ ROM_LOAD16_BYTE( "063-c3.c3", 0x400000, 0x200000, CRC(7a63ccc7) SHA1(49d97c543bc2860d493a353ab0d059088c6fbd21) )
+ ROM_LOAD16_BYTE( "063-c4.c4", 0x400001, 0x200000, CRC(751025ce) SHA1(e1bbaa7cd67fd04e4aab7f7ea77f63ae1cbc90d0) )
+ ROM_LOAD16_BYTE( "063-c5.c5", 0x800000, 0x200000, CRC(20d3a475) SHA1(28da44a136bd14c73c62c147c3f6e6bcfa1066de) )
+ ROM_LOAD16_BYTE( "063-c6.c6", 0x800001, 0x200000, CRC(ae4c0a88) SHA1(cc8a7d11daa3821f83a6fd0942534706f939e576) )
+ ROM_LOAD16_BYTE( "063sp.c7", 0xc00000, 0x200000, CRC(dbebced2) SHA1(c1db8a0a6814b8078934b68f1f579060e36f67b2) )
+ ROM_LOAD16_BYTE( "063sp.c8", 0xc00001, 0x200000, CRC(bf70b93c) SHA1(1bffeb6c7e158b9aee33802fe86f75cee04c6ecc) )
+ROM_END
+
+ROM_START( samsho2sq )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "063sq.p1", 0x100000, 0x100000, CRC(beeeeed1) SHA1(2d0639eee365308647f04db9423e93b9044d307a) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "063-s1.s1", CRC(64a5cd66) SHA1(12cdfb27bf9ccd5a8df6ddd4628ef7cf2c6d4964) )
+
+ NEO_BIOS_AUDIO_128K( "063-m1.m1", CRC(56675098) SHA1(90429fc40d056d480d0e2bbefbc691d9fa260fc4) )
+
+ ROM_REGION( 0x700000, "ymsnd", 0 )
+ ROM_LOAD( "063-v1.v1", 0x000000, 0x200000, CRC(37703f91) SHA1(a373ebef4c33ba1d8340e826981a58769aada238) )
+ ROM_LOAD( "063-v2.v2", 0x200000, 0x200000, CRC(0142bde8) SHA1(0be6c53acac44802bf70b6925452f70289a139d9) )
+ ROM_LOAD( "063-v3.v3", 0x400000, 0x200000, CRC(d07fa5ca) SHA1(1da7f081f8b8fc86a91feacf900f573218d82676) )
+ ROM_LOAD( "063-v4.v4", 0x600000, 0x100000, CRC(24aab4bb) SHA1(10ee4c5b3579865b93dcc1e4079963276aa700a6) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "063-c1.c1", 0x000000, 0x200000, CRC(86cd307c) SHA1(0d04336f7c436d74638d8c1cd8651faf436a6bec) )
+ ROM_LOAD16_BYTE( "063-c2.c2", 0x000001, 0x200000, CRC(cdfcc4ca) SHA1(179dc81432424d68cefedd20cc1c4b2a95deb891) )
+ ROM_LOAD16_BYTE( "063-c3.c3", 0x400000, 0x200000, CRC(7a63ccc7) SHA1(49d97c543bc2860d493a353ab0d059088c6fbd21) )
+ ROM_LOAD16_BYTE( "063-c4.c4", 0x400001, 0x200000, CRC(751025ce) SHA1(e1bbaa7cd67fd04e4aab7f7ea77f63ae1cbc90d0) )
+ ROM_LOAD16_BYTE( "063-c5.c5", 0x800000, 0x200000, CRC(20d3a475) SHA1(28da44a136bd14c73c62c147c3f6e6bcfa1066de) )
+ ROM_LOAD16_BYTE( "063-c6.c6", 0x800001, 0x200000, CRC(ae4c0a88) SHA1(cc8a7d11daa3821f83a6fd0942534706f939e576) )
+ ROM_LOAD16_BYTE( "063-c7.c7", 0xc00000, 0x200000, CRC(2df3cbcf) SHA1(e54f9022359963711451c2025825b862d36c6975) )
+ ROM_LOAD16_BYTE( "063-c8.c8", 0xc00001, 0x200000, CRC(1ffc6dfa) SHA1(acea18aca76c072e0bac2a364fc96d49cfc86e77) )
+ROM_END
+
+ROM_START( samsho2ss )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "063ss.p1", 0x100000, 0x100000, CRC(e300e5fa) SHA1(5e6793a69cc6996f5be4dba8f1bb2e95b2e36db6) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "063-s1.s1", CRC(64a5cd66) SHA1(12cdfb27bf9ccd5a8df6ddd4628ef7cf2c6d4964) )
+
+ NEO_BIOS_AUDIO_128K( "063-m1.m1", CRC(56675098) SHA1(90429fc40d056d480d0e2bbefbc691d9fa260fc4) )
+
+ ROM_REGION( 0x700000, "ymsnd", 0 )
+ ROM_LOAD( "063-v1.v1", 0x000000, 0x200000, CRC(37703f91) SHA1(a373ebef4c33ba1d8340e826981a58769aada238) )
+ ROM_LOAD( "063-v2.v2", 0x200000, 0x200000, CRC(0142bde8) SHA1(0be6c53acac44802bf70b6925452f70289a139d9) )
+ ROM_LOAD( "063-v3.v3", 0x400000, 0x200000, CRC(d07fa5ca) SHA1(1da7f081f8b8fc86a91feacf900f573218d82676) )
+ ROM_LOAD( "063-v4.v4", 0x600000, 0x100000, CRC(24aab4bb) SHA1(10ee4c5b3579865b93dcc1e4079963276aa700a6) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "063-c1.c1", 0x000000, 0x200000, CRC(86cd307c) SHA1(0d04336f7c436d74638d8c1cd8651faf436a6bec) )
+ ROM_LOAD16_BYTE( "063-c2.c2", 0x000001, 0x200000, CRC(cdfcc4ca) SHA1(179dc81432424d68cefedd20cc1c4b2a95deb891) )
+ ROM_LOAD16_BYTE( "063-c3.c3", 0x400000, 0x200000, CRC(7a63ccc7) SHA1(49d97c543bc2860d493a353ab0d059088c6fbd21) )
+ ROM_LOAD16_BYTE( "063-c4.c4", 0x400001, 0x200000, CRC(751025ce) SHA1(e1bbaa7cd67fd04e4aab7f7ea77f63ae1cbc90d0) )
+ ROM_LOAD16_BYTE( "063-c5.c5", 0x800000, 0x200000, CRC(20d3a475) SHA1(28da44a136bd14c73c62c147c3f6e6bcfa1066de) )
+ ROM_LOAD16_BYTE( "063-c6.c6", 0x800001, 0x200000, CRC(ae4c0a88) SHA1(cc8a7d11daa3821f83a6fd0942534706f939e576) )
+ ROM_LOAD16_BYTE( "063-c7.c7", 0xc00000, 0x200000, CRC(2df3cbcf) SHA1(e54f9022359963711451c2025825b862d36c6975) )
+ ROM_LOAD16_BYTE( "063-c8.c8", 0xc00001, 0x200000, CRC(1ffc6dfa) SHA1(acea18aca76c072e0bac2a364fc96d49cfc86e77) )
+ROM_END
+
+ROM_START( samsho2yc ) /* Samurai Shodown II - Enhance by Creamymami and Ydmis - (Can choose Mizuki and Kuroko - power hack) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "063yc.p1", 0x100000, 0x100000, CRC(ff64d433) SHA1(6d3140413614fe4f5dda17f623c734c6e2ab0940) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "063-s1.s1", CRC(64a5cd66) SHA1(12cdfb27bf9ccd5a8df6ddd4628ef7cf2c6d4964) )
+
+ NEO_BIOS_AUDIO_128K( "063-m1.m1", CRC(56675098) SHA1(90429fc40d056d480d0e2bbefbc691d9fa260fc4) )
+
+ ROM_REGION( 0x700000, "ymsnd", 0 )
+ ROM_LOAD( "063-v1.v1", 0x000000, 0x200000, CRC(37703f91) SHA1(a373ebef4c33ba1d8340e826981a58769aada238) )
+ ROM_LOAD( "063-v2.v2", 0x200000, 0x200000, CRC(0142bde8) SHA1(0be6c53acac44802bf70b6925452f70289a139d9) )
+ ROM_LOAD( "063-v3.v3", 0x400000, 0x200000, CRC(d07fa5ca) SHA1(1da7f081f8b8fc86a91feacf900f573218d82676) )
+ ROM_LOAD( "063-v4.v4", 0x600000, 0x100000, CRC(24aab4bb) SHA1(10ee4c5b3579865b93dcc1e4079963276aa700a6) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "063-c1.c1", 0x000000, 0x200000, CRC(86cd307c) SHA1(0d04336f7c436d74638d8c1cd8651faf436a6bec) )
+ ROM_LOAD16_BYTE( "063-c2.c2", 0x000001, 0x200000, CRC(cdfcc4ca) SHA1(179dc81432424d68cefedd20cc1c4b2a95deb891) )
+ ROM_LOAD16_BYTE( "063-c3.c3", 0x400000, 0x200000, CRC(7a63ccc7) SHA1(49d97c543bc2860d493a353ab0d059088c6fbd21) )
+ ROM_LOAD16_BYTE( "063-c4.c4", 0x400001, 0x200000, CRC(751025ce) SHA1(e1bbaa7cd67fd04e4aab7f7ea77f63ae1cbc90d0) )
+ ROM_LOAD16_BYTE( "063-c5.c5", 0x800000, 0x200000, CRC(20d3a475) SHA1(28da44a136bd14c73c62c147c3f6e6bcfa1066de) )
+ ROM_LOAD16_BYTE( "063-c6.c6", 0x800001, 0x200000, CRC(ae4c0a88) SHA1(cc8a7d11daa3821f83a6fd0942534706f939e576) )
+ ROM_LOAD16_BYTE( "063-c7.c7", 0xc00000, 0x200000, CRC(2df3cbcf) SHA1(e54f9022359963711451c2025825b862d36c6975) )
+ ROM_LOAD16_BYTE( "063-c8.c8", 0xc00001, 0x200000, CRC(1ffc6dfa) SHA1(acea18aca76c072e0bac2a364fc96d49cfc86e77) )
+ROM_END
+
+ROM_START( samsho2zk )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "063zk.p1", 0x100000, 0x100000, CRC(a7564f22) SHA1(20cf4eb464e79acc6258872a858b5e19023b461f) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "063-s1.s1", CRC(64a5cd66) SHA1(12cdfb27bf9ccd5a8df6ddd4628ef7cf2c6d4964) )
+
+ NEO_BIOS_AUDIO_128K( "063-m1.m1", CRC(56675098) SHA1(90429fc40d056d480d0e2bbefbc691d9fa260fc4) )
+
+ ROM_REGION( 0x700000, "ymsnd", 0 )
+ ROM_LOAD( "063-v1.v1", 0x000000, 0x200000, CRC(37703f91) SHA1(a373ebef4c33ba1d8340e826981a58769aada238) )
+ ROM_LOAD( "063-v2.v2", 0x200000, 0x200000, CRC(0142bde8) SHA1(0be6c53acac44802bf70b6925452f70289a139d9) )
+ ROM_LOAD( "063-v3.v3", 0x400000, 0x200000, CRC(d07fa5ca) SHA1(1da7f081f8b8fc86a91feacf900f573218d82676) )
+ ROM_LOAD( "063-v4.v4", 0x600000, 0x100000, CRC(24aab4bb) SHA1(10ee4c5b3579865b93dcc1e4079963276aa700a6) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "063-c1.c1", 0x000000, 0x200000, CRC(86cd307c) SHA1(0d04336f7c436d74638d8c1cd8651faf436a6bec) )
+ ROM_LOAD16_BYTE( "063-c2.c2", 0x000001, 0x200000, CRC(cdfcc4ca) SHA1(179dc81432424d68cefedd20cc1c4b2a95deb891) )
+ ROM_LOAD16_BYTE( "063-c3.c3", 0x400000, 0x200000, CRC(7a63ccc7) SHA1(49d97c543bc2860d493a353ab0d059088c6fbd21) )
+ ROM_LOAD16_BYTE( "063-c4.c4", 0x400001, 0x200000, CRC(751025ce) SHA1(e1bbaa7cd67fd04e4aab7f7ea77f63ae1cbc90d0) )
+ ROM_LOAD16_BYTE( "063-c5.c5", 0x800000, 0x200000, CRC(20d3a475) SHA1(28da44a136bd14c73c62c147c3f6e6bcfa1066de) )
+ ROM_LOAD16_BYTE( "063-c6.c6", 0x800001, 0x200000, CRC(ae4c0a88) SHA1(cc8a7d11daa3821f83a6fd0942534706f939e576) )
+ ROM_LOAD16_BYTE( "063-c7.c7", 0xc00000, 0x200000, CRC(2df3cbcf) SHA1(e54f9022359963711451c2025825b862d36c6975) )
+ ROM_LOAD16_BYTE( "063-c8.c8", 0xc00001, 0x200000, CRC(1ffc6dfa) SHA1(acea18aca76c072e0bac2a364fc96d49cfc86e77) )
+ROM_END
+
+
+ROM_START( samsho3eh ) /* Samurai Shodown III - Hack by Ydmis - (Can choose Zankuro and Kuroko) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "087eh.p1", 0x000000, 0x100000, CRC(251d9b3f) SHA1(6ea015bbc528ac9a5d0eeb746ed8fcca689c2be6) )
+ ROM_LOAD16_WORD_SWAP( "087-p2.sp2", 0x100000, 0x200000, CRC(9bbe27e0) SHA1(b18117102159903c8e8f4e4226e1cc91a400e816) )
+
+ NEO_SFIX_128K( "087-s1.s1", CRC(74ec7d9f) SHA1(d79c479838a7ca51735a44f91f1968ec5b3c6b91) )
+
+ NEO_BIOS_AUDIO_128K( "087-m1.m1", CRC(8e6440eb) SHA1(e3f72150af4e326543b29df71cda27d73ec087c1) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "087-v1.v1", 0x000000, 0x400000, CRC(84bdd9a0) SHA1(adceceb00569eca13fcc2e0f0d9f0d9b06a06851) )
+ ROM_LOAD( "087-v2.v2", 0x400000, 0x200000, CRC(ac0f261a) SHA1(5411bdff24cba7fdbc3397d45a70fb468d7a44b3) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "087-c1.c1", 0x0000000, 0x400000, CRC(07a233bc) SHA1(654cb56cfd6eeebe6745c0b8b730317fb8ccd3d9) )
+ ROM_LOAD16_BYTE( "087-c2.c2", 0x0000001, 0x400000, CRC(7a413592) SHA1(b8c7a2d0d7a8b14d6cab94d7a5f347e73c6ab7a4) )
+ ROM_LOAD16_BYTE( "087-c3.c3", 0x0800000, 0x400000, CRC(8b793796) SHA1(053acc129ea56691607a5d255845703e61fd3ada) )
+ ROM_LOAD16_BYTE( "087-c4.c4", 0x0800001, 0x400000, CRC(728fbf11) SHA1(daa319d455f759bfc08a37b43218bdb48dc1c9e5) )
+ ROM_LOAD16_BYTE( "087-c5.c5", 0x1000000, 0x400000, CRC(172ab180) SHA1(a6122f683bdb78d0079e1e360c1b96ba28def7b7) )
+ ROM_LOAD16_BYTE( "087-c6.c6", 0x1000001, 0x400000, CRC(002ff8f3) SHA1(3a378708697d727796c4f702dd5bbf1c9eb4daec) )
+ ROM_LOAD16_BYTE( "087-c7.c7", 0x1800000, 0x100000, CRC(ae450e3d) SHA1(ec482632cc347ec3f9e68df0ebcaa16ebe41b9f9) )
+ ROM_LOAD16_BYTE( "087-c8.c8", 0x1800001, 0x100000, CRC(a9e82717) SHA1(e39ee15d5140dbe7f06eea945cce9984a5e8b06a) )
+ROM_END
+
+ROM_START( samsho3hb )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "087hb.p1", 0x000000, 0x100000, CRC(15e021ca) SHA1(78aba32741d2e4b5bc4c641a4166f4405ab240e2) )
+ ROM_LOAD16_WORD_SWAP( "087hb.p2", 0x100000, 0x200000, CRC(1cc2c370) SHA1(01fba8d315d684652fb506aa833fa0e8e3e350df) )
+
+ NEO_SFIX_128K( "087-s1.s1", CRC(74ec7d9f) SHA1(d79c479838a7ca51735a44f91f1968ec5b3c6b91) )
+
+ NEO_BIOS_AUDIO_128K( "087-m1.m1", CRC(8e6440eb) SHA1(e3f72150af4e326543b29df71cda27d73ec087c1) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "087-v1.v1", 0x000000, 0x400000, CRC(84bdd9a0) SHA1(adceceb00569eca13fcc2e0f0d9f0d9b06a06851) )
+ ROM_LOAD( "087-v2.v2", 0x400000, 0x200000, CRC(ac0f261a) SHA1(5411bdff24cba7fdbc3397d45a70fb468d7a44b3) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "087-c1.c1", 0x0000000, 0x400000, CRC(07a233bc) SHA1(654cb56cfd6eeebe6745c0b8b730317fb8ccd3d9) )
+ ROM_LOAD16_BYTE( "087-c2.c2", 0x0000001, 0x400000, CRC(7a413592) SHA1(b8c7a2d0d7a8b14d6cab94d7a5f347e73c6ab7a4) )
+ ROM_LOAD16_BYTE( "087-c3.c3", 0x0800000, 0x400000, CRC(8b793796) SHA1(053acc129ea56691607a5d255845703e61fd3ada) )
+ ROM_LOAD16_BYTE( "087-c4.c4", 0x0800001, 0x400000, CRC(728fbf11) SHA1(daa319d455f759bfc08a37b43218bdb48dc1c9e5) )
+ ROM_LOAD16_BYTE( "087-c5.c5", 0x1000000, 0x400000, CRC(172ab180) SHA1(a6122f683bdb78d0079e1e360c1b96ba28def7b7) )
+ ROM_LOAD16_BYTE( "087-c6.c6", 0x1000001, 0x400000, CRC(002ff8f3) SHA1(3a378708697d727796c4f702dd5bbf1c9eb4daec) )
+ ROM_LOAD16_BYTE( "087-c7.c7", 0x1800000, 0x100000, CRC(ae450e3d) SHA1(ec482632cc347ec3f9e68df0ebcaa16ebe41b9f9) )
+ ROM_LOAD16_BYTE( "087-c8.c8", 0x1800001, 0x100000, CRC(a9e82717) SHA1(e39ee15d5140dbe7f06eea945cce9984a5e8b06a) )
+ROM_END
+
+ROM_START( samsho3s2 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "087s2.p1", 0x000000, 0x100000, CRC(453daf21) SHA1(9c29d2efc98746396cd2a0dcde04fee9f70e317d) )
+ ROM_LOAD16_WORD_SWAP( "087-p2.sp2", 0x100000, 0x200000, CRC(9bbe27e0) SHA1(b18117102159903c8e8f4e4226e1cc91a400e816) )
+
+ NEO_SFIX_128K( "087-s1.s1", CRC(74ec7d9f) SHA1(d79c479838a7ca51735a44f91f1968ec5b3c6b91) )
+
+ NEO_BIOS_AUDIO_128K( "087-m1.m1", CRC(8e6440eb) SHA1(e3f72150af4e326543b29df71cda27d73ec087c1) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "087-v1.v1", 0x000000, 0x400000, CRC(84bdd9a0) SHA1(adceceb00569eca13fcc2e0f0d9f0d9b06a06851) )
+ ROM_LOAD( "087-v2.v2", 0x400000, 0x200000, CRC(ac0f261a) SHA1(5411bdff24cba7fdbc3397d45a70fb468d7a44b3) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "087-c1.c1", 0x0000000, 0x400000, CRC(07a233bc) SHA1(654cb56cfd6eeebe6745c0b8b730317fb8ccd3d9) )
+ ROM_LOAD16_BYTE( "087-c2.c2", 0x0000001, 0x400000, CRC(7a413592) SHA1(b8c7a2d0d7a8b14d6cab94d7a5f347e73c6ab7a4) )
+ ROM_LOAD16_BYTE( "087-c3.c3", 0x0800000, 0x400000, CRC(8b793796) SHA1(053acc129ea56691607a5d255845703e61fd3ada) )
+ ROM_LOAD16_BYTE( "087-c4.c4", 0x0800001, 0x400000, CRC(728fbf11) SHA1(daa319d455f759bfc08a37b43218bdb48dc1c9e5) )
+ ROM_LOAD16_BYTE( "087-c5.c5", 0x1000000, 0x400000, CRC(172ab180) SHA1(a6122f683bdb78d0079e1e360c1b96ba28def7b7) )
+ ROM_LOAD16_BYTE( "087-c6.c6", 0x1000001, 0x400000, CRC(002ff8f3) SHA1(3a378708697d727796c4f702dd5bbf1c9eb4daec) )
+ ROM_LOAD16_BYTE( "087-c7.c7", 0x1800000, 0x100000, CRC(ae450e3d) SHA1(ec482632cc347ec3f9e68df0ebcaa16ebe41b9f9) )
+ ROM_LOAD16_BYTE( "087-c8.c8", 0x1800001, 0x100000, CRC(a9e82717) SHA1(e39ee15d5140dbe7f06eea945cce9984a5e8b06a) )
+ROM_END
+
+ROM_START( samsho3se ) /* Samurai Shodown III - (samsho3ehc) - Super Enhance Hack by Creamymami and Ydmis - (Can choose Zankuro and Kuroko - power hack ABC - ultra power hack) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "087se.p1", 0x000000, 0x100000, CRC(8deb9f12) SHA1(5fc437f41020f8619b23e37a864e2ba19fec2727) )
+ ROM_LOAD16_WORD_SWAP( "087-p2.sp2", 0x100000, 0x200000, CRC(9bbe27e0) SHA1(b18117102159903c8e8f4e4226e1cc91a400e816) )
+
+ NEO_SFIX_128K( "087-s1.s1", CRC(74ec7d9f) SHA1(d79c479838a7ca51735a44f91f1968ec5b3c6b91) )
+
+ NEO_BIOS_AUDIO_128K( "087-m1.m1", CRC(8e6440eb) SHA1(e3f72150af4e326543b29df71cda27d73ec087c1) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "087-v1.v1", 0x000000, 0x400000, CRC(84bdd9a0) SHA1(adceceb00569eca13fcc2e0f0d9f0d9b06a06851) )
+ ROM_LOAD( "087-v2.v2", 0x400000, 0x200000, CRC(ac0f261a) SHA1(5411bdff24cba7fdbc3397d45a70fb468d7a44b3) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "087-c1.c1", 0x0000000, 0x400000, CRC(07a233bc) SHA1(654cb56cfd6eeebe6745c0b8b730317fb8ccd3d9) )
+ ROM_LOAD16_BYTE( "087-c2.c2", 0x0000001, 0x400000, CRC(7a413592) SHA1(b8c7a2d0d7a8b14d6cab94d7a5f347e73c6ab7a4) )
+ ROM_LOAD16_BYTE( "087-c3.c3", 0x0800000, 0x400000, CRC(8b793796) SHA1(053acc129ea56691607a5d255845703e61fd3ada) )
+ ROM_LOAD16_BYTE( "087-c4.c4", 0x0800001, 0x400000, CRC(728fbf11) SHA1(daa319d455f759bfc08a37b43218bdb48dc1c9e5) )
+ ROM_LOAD16_BYTE( "087-c5.c5", 0x1000000, 0x400000, CRC(172ab180) SHA1(a6122f683bdb78d0079e1e360c1b96ba28def7b7) )
+ ROM_LOAD16_BYTE( "087-c6.c6", 0x1000001, 0x400000, CRC(002ff8f3) SHA1(3a378708697d727796c4f702dd5bbf1c9eb4daec) )
+ ROM_LOAD16_BYTE( "087-c7.c7", 0x1800000, 0x100000, CRC(ae450e3d) SHA1(ec482632cc347ec3f9e68df0ebcaa16ebe41b9f9) )
+ ROM_LOAD16_BYTE( "087-c8.c8", 0x1800001, 0x100000, CRC(a9e82717) SHA1(e39ee15d5140dbe7f06eea945cce9984a5e8b06a) )
+ROM_END
+
+ROM_START( samsho3ss )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "087ss.p1", 0x000000, 0x100000, CRC(a2fcad93) SHA1(aba1e7f70ee3349fc686968fc69507bdf77289dd) )
+ ROM_LOAD16_WORD_SWAP( "087-p2.sp2", 0x100000, 0x200000, CRC(9bbe27e0) SHA1(b18117102159903c8e8f4e4226e1cc91a400e816) )
+
+ NEO_SFIX_128K( "087-s1.s1", CRC(74ec7d9f) SHA1(d79c479838a7ca51735a44f91f1968ec5b3c6b91) )
+
+ NEO_BIOS_AUDIO_128K( "087-m1.m1", CRC(8e6440eb) SHA1(e3f72150af4e326543b29df71cda27d73ec087c1) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "087-v1.v1", 0x000000, 0x400000, CRC(84bdd9a0) SHA1(adceceb00569eca13fcc2e0f0d9f0d9b06a06851) )
+ ROM_LOAD( "087-v2.v2", 0x400000, 0x200000, CRC(ac0f261a) SHA1(5411bdff24cba7fdbc3397d45a70fb468d7a44b3) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "087-c1.c1", 0x0000000, 0x400000, CRC(07a233bc) SHA1(654cb56cfd6eeebe6745c0b8b730317fb8ccd3d9) )
+ ROM_LOAD16_BYTE( "087-c2.c2", 0x0000001, 0x400000, CRC(7a413592) SHA1(b8c7a2d0d7a8b14d6cab94d7a5f347e73c6ab7a4) )
+ ROM_LOAD16_BYTE( "087-c3.c3", 0x0800000, 0x400000, CRC(8b793796) SHA1(053acc129ea56691607a5d255845703e61fd3ada) )
+ ROM_LOAD16_BYTE( "087-c4.c4", 0x0800001, 0x400000, CRC(728fbf11) SHA1(daa319d455f759bfc08a37b43218bdb48dc1c9e5) )
+ ROM_LOAD16_BYTE( "087-c5.c5", 0x1000000, 0x400000, CRC(172ab180) SHA1(a6122f683bdb78d0079e1e360c1b96ba28def7b7) )
+ ROM_LOAD16_BYTE( "087-c6.c6", 0x1000001, 0x400000, CRC(002ff8f3) SHA1(3a378708697d727796c4f702dd5bbf1c9eb4daec) )
+ ROM_LOAD16_BYTE( "087-c7.c7", 0x1800000, 0x100000, CRC(ae450e3d) SHA1(ec482632cc347ec3f9e68df0ebcaa16ebe41b9f9) )
+ ROM_LOAD16_BYTE( "087-c8.c8", 0x1800001, 0x100000, CRC(a9e82717) SHA1(e39ee15d5140dbe7f06eea945cce9984a5e8b06a) )
+ROM_END
+
+ROM_START( samsho3yc ) /* Samurai Shodown III - Enhance by Creamymami and Ydmis - (Can choose Zankuro and Kuroko - power hack ABC) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "087yc.p1", 0x000000, 0x100000, CRC(f111c831) SHA1(eff62f96172af895605201860a8d18ed847d08a0) )
+ ROM_LOAD16_WORD_SWAP( "087-p2.sp2", 0x100000, 0x200000, CRC(9bbe27e0) SHA1(b18117102159903c8e8f4e4226e1cc91a400e816) )
+
+ NEO_SFIX_128K( "087-s1.s1", CRC(74ec7d9f) SHA1(d79c479838a7ca51735a44f91f1968ec5b3c6b91) )
+
+ NEO_BIOS_AUDIO_128K( "087-m1.m1", CRC(8e6440eb) SHA1(e3f72150af4e326543b29df71cda27d73ec087c1) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "087-v1.v1", 0x000000, 0x400000, CRC(84bdd9a0) SHA1(adceceb00569eca13fcc2e0f0d9f0d9b06a06851) )
+ ROM_LOAD( "087-v2.v2", 0x400000, 0x200000, CRC(ac0f261a) SHA1(5411bdff24cba7fdbc3397d45a70fb468d7a44b3) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "087-c1.c1", 0x0000000, 0x400000, CRC(07a233bc) SHA1(654cb56cfd6eeebe6745c0b8b730317fb8ccd3d9) )
+ ROM_LOAD16_BYTE( "087-c2.c2", 0x0000001, 0x400000, CRC(7a413592) SHA1(b8c7a2d0d7a8b14d6cab94d7a5f347e73c6ab7a4) )
+ ROM_LOAD16_BYTE( "087-c3.c3", 0x0800000, 0x400000, CRC(8b793796) SHA1(053acc129ea56691607a5d255845703e61fd3ada) )
+ ROM_LOAD16_BYTE( "087-c4.c4", 0x0800001, 0x400000, CRC(728fbf11) SHA1(daa319d455f759bfc08a37b43218bdb48dc1c9e5) )
+ ROM_LOAD16_BYTE( "087-c5.c5", 0x1000000, 0x400000, CRC(172ab180) SHA1(a6122f683bdb78d0079e1e360c1b96ba28def7b7) )
+ ROM_LOAD16_BYTE( "087-c6.c6", 0x1000001, 0x400000, CRC(002ff8f3) SHA1(3a378708697d727796c4f702dd5bbf1c9eb4daec) )
+ ROM_LOAD16_BYTE( "087-c7.c7", 0x1800000, 0x100000, CRC(ae450e3d) SHA1(ec482632cc347ec3f9e68df0ebcaa16ebe41b9f9) )
+ ROM_LOAD16_BYTE( "087-c8.c8", 0x1800001, 0x100000, CRC(a9e82717) SHA1(e39ee15d5140dbe7f06eea945cce9984a5e8b06a) )
+ROM_END
+
+ROM_START( samsho3zk )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "087zk.p1", 0x000000, 0x100000, CRC(96c92f16) SHA1(0a4d976ffa6bb0723f3832cf78b73c7f69fb5ff7) )
+ ROM_LOAD16_WORD_SWAP( "087-p2.sp2", 0x100000, 0x200000, CRC(9bbe27e0) SHA1(b18117102159903c8e8f4e4226e1cc91a400e816) )
+
+ NEO_SFIX_128K( "087-s1.s1", CRC(74ec7d9f) SHA1(d79c479838a7ca51735a44f91f1968ec5b3c6b91) )
+
+ NEO_BIOS_AUDIO_128K( "087-m1.m1", CRC(8e6440eb) SHA1(e3f72150af4e326543b29df71cda27d73ec087c1) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "087-v1.v1", 0x000000, 0x400000, CRC(84bdd9a0) SHA1(adceceb00569eca13fcc2e0f0d9f0d9b06a06851) )
+ ROM_LOAD( "087-v2.v2", 0x400000, 0x200000, CRC(ac0f261a) SHA1(5411bdff24cba7fdbc3397d45a70fb468d7a44b3) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "087-c1.c1", 0x0000000, 0x400000, CRC(07a233bc) SHA1(654cb56cfd6eeebe6745c0b8b730317fb8ccd3d9) )
+ ROM_LOAD16_BYTE( "087-c2.c2", 0x0000001, 0x400000, CRC(7a413592) SHA1(b8c7a2d0d7a8b14d6cab94d7a5f347e73c6ab7a4) )
+ ROM_LOAD16_BYTE( "087-c3.c3", 0x0800000, 0x400000, CRC(8b793796) SHA1(053acc129ea56691607a5d255845703e61fd3ada) )
+ ROM_LOAD16_BYTE( "087-c4.c4", 0x0800001, 0x400000, CRC(728fbf11) SHA1(daa319d455f759bfc08a37b43218bdb48dc1c9e5) )
+ ROM_LOAD16_BYTE( "087-c5.c5", 0x1000000, 0x400000, CRC(172ab180) SHA1(a6122f683bdb78d0079e1e360c1b96ba28def7b7) )
+ ROM_LOAD16_BYTE( "087-c6.c6", 0x1000001, 0x400000, CRC(002ff8f3) SHA1(3a378708697d727796c4f702dd5bbf1c9eb4daec) )
+ ROM_LOAD16_BYTE( "087-c7.c7", 0x1800000, 0x100000, CRC(ae450e3d) SHA1(ec482632cc347ec3f9e68df0ebcaa16ebe41b9f9) )
+ ROM_LOAD16_BYTE( "087-c8.c8", 0x1800001, 0x100000, CRC(a9e82717) SHA1(e39ee15d5140dbe7f06eea945cce9984a5e8b06a) )
+ROM_END
+
+
+ROM_START( samsho4bh ) /* Samurai Shodown IV - Hack by Dodowang - (Can choose Zankuro Minazuki - has icon in character select menue) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "222bh.p1", 0x000000, 0x100000, CRC(59dd746f) SHA1(2afecebd57f978fe0764c23a0bbf1d73421c60ca) )
+ ROM_LOAD16_WORD_SWAP( "222-p2.sp2", 0x100000, 0x400000, CRC(b023cd8b) SHA1(35b4cec9858225f90acdfa16ed8a3017d0d08327) )
+
+ NEO_SFIX_128K( "222bh.s1", CRC(d0906101) SHA1(16873a82c408a5585d4e424e953b451981a8d6b2) )
+
+ NEO_BIOS_AUDIO_128K( "222-m1.m1", CRC(7615bc1b) SHA1(b936f7b341f6fe0921b4c41049734684583e3596) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "222-v1.v1", 0x000000, 0x400000, CRC(7d6ba95f) SHA1(03cb4e0d770e0b332b07b64cacef624460b84c78) )
+ ROM_LOAD( "222-v2.v2", 0x400000, 0x400000, CRC(6c33bb5d) SHA1(fd5d4e08a962dd0d22c52c91bad5ec7f23cfb901) )
+ ROM_LOAD( "222-v3.v3", 0x800000, 0x200000, CRC(831ea8c0) SHA1(f2987b7d09bdc4311e972ce8a9ab7ca9802db4db) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "222-c1.c1", 0x0000000, 0x400000, CRC(68f2ed95) SHA1(c0a02df012cd25bcfe341770ea861a80294148cb) )
+ ROM_LOAD16_BYTE( "222-c2.c2", 0x0000001, 0x400000, CRC(a6e9aff0) SHA1(15addca49951ed53fa3c000c8d7cd327d012a620) )
+ ROM_LOAD16_BYTE( "222-c3.c3", 0x0800000, 0x400000, CRC(c91b40f4) SHA1(dcda45e0336204e3e024de08edfd0a3217bc1fdd) )
+ ROM_LOAD16_BYTE( "222-c4.c4", 0x0800001, 0x400000, CRC(359510a4) SHA1(b6642677ebdff7788263266402080272b8a66b15) )
+ ROM_LOAD16_BYTE( "222-c5.c5", 0x1000000, 0x400000, CRC(9cfbb22d) SHA1(789c32f917d0c6e38601cd390a7bf9d803131a4a) )
+ ROM_LOAD16_BYTE( "222-c6.c6", 0x1000001, 0x400000, CRC(685efc32) SHA1(db21ba1c7e3631ce0f1cb6f503ae7e0e043ff71b) )
+ ROM_LOAD16_BYTE( "222-c7.c7", 0x1800000, 0x400000, CRC(d0f86f0d) SHA1(32502d71c2ab1469c492b6b382bf2bb3f85981d9) )
+ ROM_LOAD16_BYTE( "222-c8.c8", 0x1800001, 0x400000, CRC(adfc50e3) SHA1(7d7ee874355b5aa75ad9c9a5c9c3df98d098d85e) )
+ROM_END
+
+ROM_START( samsho4cz ) /* Samurai Shodown IV - Enhance by Creamymami and Zhangshee - (Can choose Zankuro Minazuki - ultra kill start is max - ultra kill is always max) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "222cz.p1", 0x000000, 0x100000, CRC(fdfb86a3) SHA1(ed91d0273dec277ce9ee4b4bdf7e88b524b3ed3b) )
+ ROM_LOAD16_WORD_SWAP( "222-p2.sp2", 0x100000, 0x400000, CRC(b023cd8b) SHA1(35b4cec9858225f90acdfa16ed8a3017d0d08327) )
+
+ NEO_SFIX_128K( "222-s1.s1", CRC(8d3d3bf9) SHA1(9975ed9b458bdd14e23451d2534153f68a5e4e6c) )
+
+ NEO_BIOS_AUDIO_128K( "222-m1.m1", CRC(7615bc1b) SHA1(b936f7b341f6fe0921b4c41049734684583e3596) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "222-v1.v1", 0x000000, 0x400000, CRC(7d6ba95f) SHA1(03cb4e0d770e0b332b07b64cacef624460b84c78) )
+ ROM_LOAD( "222-v2.v2", 0x400000, 0x400000, CRC(6c33bb5d) SHA1(fd5d4e08a962dd0d22c52c91bad5ec7f23cfb901) )
+ ROM_LOAD( "222-v3.v3", 0x800000, 0x200000, CRC(831ea8c0) SHA1(f2987b7d09bdc4311e972ce8a9ab7ca9802db4db) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "222-c1.c1", 0x0000000, 0x400000, CRC(68f2ed95) SHA1(c0a02df012cd25bcfe341770ea861a80294148cb) )
+ ROM_LOAD16_BYTE( "222-c2.c2", 0x0000001, 0x400000, CRC(a6e9aff0) SHA1(15addca49951ed53fa3c000c8d7cd327d012a620) )
+ ROM_LOAD16_BYTE( "222-c3.c3", 0x0800000, 0x400000, CRC(c91b40f4) SHA1(dcda45e0336204e3e024de08edfd0a3217bc1fdd) )
+ ROM_LOAD16_BYTE( "222-c4.c4", 0x0800001, 0x400000, CRC(359510a4) SHA1(b6642677ebdff7788263266402080272b8a66b15) )
+ ROM_LOAD16_BYTE( "222-c5.c5", 0x1000000, 0x400000, CRC(9cfbb22d) SHA1(789c32f917d0c6e38601cd390a7bf9d803131a4a) )
+ ROM_LOAD16_BYTE( "222-c6.c6", 0x1000001, 0x400000, CRC(685efc32) SHA1(db21ba1c7e3631ce0f1cb6f503ae7e0e043ff71b) )
+ ROM_LOAD16_BYTE( "222-c7.c7", 0x1800000, 0x400000, CRC(d0f86f0d) SHA1(32502d71c2ab1469c492b6b382bf2bb3f85981d9) )
+ ROM_LOAD16_BYTE( "222-c8.c8", 0x1800001, 0x400000, CRC(adfc50e3) SHA1(7d7ee874355b5aa75ad9c9a5c9c3df98d098d85e) )
+ROM_END
+
+ROM_START( samsho4eh ) /* Samurai Shodown IV - Enhance by Zhangshee - (Can choose Zankuro Minazuki) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "222eh.p1", 0x000000, 0x100000, CRC(10390464) SHA1(029a2d22819b8440b1ce3bafb6005841665b0b27) )
+ ROM_LOAD16_WORD_SWAP( "222-p2.sp2", 0x100000, 0x400000, CRC(b023cd8b) SHA1(35b4cec9858225f90acdfa16ed8a3017d0d08327) )
+
+ NEO_SFIX_128K( "222-s1.s1", CRC(8d3d3bf9) SHA1(9975ed9b458bdd14e23451d2534153f68a5e4e6c) )
+
+ NEO_BIOS_AUDIO_128K( "222-m1.m1", CRC(7615bc1b) SHA1(b936f7b341f6fe0921b4c41049734684583e3596) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "222-v1.v1", 0x000000, 0x400000, CRC(7d6ba95f) SHA1(03cb4e0d770e0b332b07b64cacef624460b84c78) )
+ ROM_LOAD( "222-v2.v2", 0x400000, 0x400000, CRC(6c33bb5d) SHA1(fd5d4e08a962dd0d22c52c91bad5ec7f23cfb901) )
+ ROM_LOAD( "222-v3.v3", 0x800000, 0x200000, CRC(831ea8c0) SHA1(f2987b7d09bdc4311e972ce8a9ab7ca9802db4db) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "222-c1.c1", 0x0000000, 0x400000, CRC(68f2ed95) SHA1(c0a02df012cd25bcfe341770ea861a80294148cb) )
+ ROM_LOAD16_BYTE( "222-c2.c2", 0x0000001, 0x400000, CRC(a6e9aff0) SHA1(15addca49951ed53fa3c000c8d7cd327d012a620) )
+ ROM_LOAD16_BYTE( "222-c3.c3", 0x0800000, 0x400000, CRC(c91b40f4) SHA1(dcda45e0336204e3e024de08edfd0a3217bc1fdd) )
+ ROM_LOAD16_BYTE( "222-c4.c4", 0x0800001, 0x400000, CRC(359510a4) SHA1(b6642677ebdff7788263266402080272b8a66b15) )
+ ROM_LOAD16_BYTE( "222-c5.c5", 0x1000000, 0x400000, CRC(9cfbb22d) SHA1(789c32f917d0c6e38601cd390a7bf9d803131a4a) )
+ ROM_LOAD16_BYTE( "222-c6.c6", 0x1000001, 0x400000, CRC(685efc32) SHA1(db21ba1c7e3631ce0f1cb6f503ae7e0e043ff71b) )
+ ROM_LOAD16_BYTE( "222-c7.c7", 0x1800000, 0x400000, CRC(d0f86f0d) SHA1(32502d71c2ab1469c492b6b382bf2bb3f85981d9) )
+ ROM_LOAD16_BYTE( "222-c8.c8", 0x1800001, 0x400000, CRC(adfc50e3) SHA1(7d7ee874355b5aa75ad9c9a5c9c3df98d098d85e) )
+ROM_END
+
+ROM_START( samsho4es ) /* Samurai Shodown IV - Enhance by SNK2003/PPX Hack Team - (Move revision - v3.8) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "222es.p1", 0x000000, 0x100000, CRC(36D58438) SHA1(0E957E6815121C8005A560E1F17BD1D4675C2BDB) )
+ ROM_LOAD16_WORD_SWAP( "222-p2.sp2", 0x100000, 0x400000, CRC(b023cd8b) SHA1(35b4cec9858225f90acdfa16ed8a3017d0d08327) )
+
+ NEO_SFIX_128K( "222-s1.s1", CRC(8d3d3bf9) SHA1(9975ed9b458bdd14e23451d2534153f68a5e4e6c) )
+
+ NEO_BIOS_AUDIO_128K( "222-m1.m1", CRC(7615bc1b) SHA1(b936f7b341f6fe0921b4c41049734684583e3596) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "222-v1.v1", 0x000000, 0x400000, CRC(7d6ba95f) SHA1(03cb4e0d770e0b332b07b64cacef624460b84c78) )
+ ROM_LOAD( "222-v2.v2", 0x400000, 0x400000, CRC(6c33bb5d) SHA1(fd5d4e08a962dd0d22c52c91bad5ec7f23cfb901) )
+ ROM_LOAD( "222-v3.v3", 0x800000, 0x200000, CRC(831ea8c0) SHA1(f2987b7d09bdc4311e972ce8a9ab7ca9802db4db) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "222-c1.c1", 0x0000000, 0x400000, CRC(68f2ed95) SHA1(c0a02df012cd25bcfe341770ea861a80294148cb) )
+ ROM_LOAD16_BYTE( "222-c2.c2", 0x0000001, 0x400000, CRC(a6e9aff0) SHA1(15addca49951ed53fa3c000c8d7cd327d012a620) )
+ ROM_LOAD16_BYTE( "222-c3.c3", 0x0800000, 0x400000, CRC(c91b40f4) SHA1(dcda45e0336204e3e024de08edfd0a3217bc1fdd) )
+ ROM_LOAD16_BYTE( "222-c4.c4", 0x0800001, 0x400000, CRC(359510a4) SHA1(b6642677ebdff7788263266402080272b8a66b15) )
+ ROM_LOAD16_BYTE( "222-c5.c5", 0x1000000, 0x400000, CRC(9cfbb22d) SHA1(789c32f917d0c6e38601cd390a7bf9d803131a4a) )
+ ROM_LOAD16_BYTE( "222-c6.c6", 0x1000001, 0x400000, CRC(685efc32) SHA1(db21ba1c7e3631ce0f1cb6f503ae7e0e043ff71b) )
+ ROM_LOAD16_BYTE( "222-c7.c7", 0x1800000, 0x400000, CRC(d0f86f0d) SHA1(32502d71c2ab1469c492b6b382bf2bb3f85981d9) )
+ ROM_LOAD16_BYTE( "222-c8.c8", 0x1800001, 0x400000, CRC(adfc50e3) SHA1(7d7ee874355b5aa75ad9c9a5c9c3df98d098d85e) )
+ROM_END
+
+ROM_START( samsho4ev )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "222ev.p1", 0x000000, 0x100000, CRC(84539b07) SHA1(710827bcf969e913b0b1702295f4808fa68e59ca) )
+ ROM_LOAD16_WORD_SWAP( "222-p2.sp2", 0x100000, 0x400000, CRC(b023cd8b) SHA1(35b4cec9858225f90acdfa16ed8a3017d0d08327) )
+
+ NEO_SFIX_128K( "222-s1.s1", CRC(8d3d3bf9) SHA1(9975ed9b458bdd14e23451d2534153f68a5e4e6c) )
+
+ NEO_BIOS_AUDIO_128K( "222-m1.m1", CRC(7615bc1b) SHA1(b936f7b341f6fe0921b4c41049734684583e3596) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "222-v1.v1", 0x000000, 0x400000, CRC(7d6ba95f) SHA1(03cb4e0d770e0b332b07b64cacef624460b84c78) )
+ ROM_LOAD( "222-v2.v2", 0x400000, 0x400000, CRC(6c33bb5d) SHA1(fd5d4e08a962dd0d22c52c91bad5ec7f23cfb901) )
+ ROM_LOAD( "222-v3.v3", 0x800000, 0x200000, CRC(831ea8c0) SHA1(f2987b7d09bdc4311e972ce8a9ab7ca9802db4db) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "222-c1.c1", 0x0000000, 0x400000, CRC(68f2ed95) SHA1(c0a02df012cd25bcfe341770ea861a80294148cb) )
+ ROM_LOAD16_BYTE( "222-c2.c2", 0x0000001, 0x400000, CRC(a6e9aff0) SHA1(15addca49951ed53fa3c000c8d7cd327d012a620) )
+ ROM_LOAD16_BYTE( "222-c3.c3", 0x0800000, 0x400000, CRC(c91b40f4) SHA1(dcda45e0336204e3e024de08edfd0a3217bc1fdd) )
+ ROM_LOAD16_BYTE( "222-c4.c4", 0x0800001, 0x400000, CRC(359510a4) SHA1(b6642677ebdff7788263266402080272b8a66b15) )
+ ROM_LOAD16_BYTE( "222-c5.c5", 0x1000000, 0x400000, CRC(9cfbb22d) SHA1(789c32f917d0c6e38601cd390a7bf9d803131a4a) )
+ ROM_LOAD16_BYTE( "222-c6.c6", 0x1000001, 0x400000, CRC(685efc32) SHA1(db21ba1c7e3631ce0f1cb6f503ae7e0e043ff71b) )
+ ROM_LOAD16_BYTE( "222-c7.c7", 0x1800000, 0x400000, CRC(d0f86f0d) SHA1(32502d71c2ab1469c492b6b382bf2bb3f85981d9) )
+ ROM_LOAD16_BYTE( "222-c8.c8", 0x1800001, 0x400000, CRC(adfc50e3) SHA1(7d7ee874355b5aa75ad9c9a5c9c3df98d098d85e) )
+ROM_END
+
+ROM_START( samsho4ew ) /* Samurai Shodown IV - Colour fix / Hack by Eddids and Wesker - (Can choose Zankuro Minazuki - colour correction P2/P3/P4 for Zankuro Minazuki) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "222ew.p1", 0x000000, 0x100000, CRC(E76CDD8F) SHA1(025E574C0160EAF9A2754B8DA549DDE6A03EF98D) )
+ ROM_LOAD16_WORD_SWAP( "222-p2.sp2", 0x100000, 0x400000, CRC(b023cd8b) SHA1(35b4cec9858225f90acdfa16ed8a3017d0d08327) )
+
+ NEO_SFIX_128K( "222-s1.s1", CRC(8d3d3bf9) SHA1(9975ed9b458bdd14e23451d2534153f68a5e4e6c) )
+
+ NEO_BIOS_AUDIO_128K( "222-m1.m1", CRC(7615bc1b) SHA1(b936f7b341f6fe0921b4c41049734684583e3596) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "222-v1.v1", 0x000000, 0x400000, CRC(7d6ba95f) SHA1(03cb4e0d770e0b332b07b64cacef624460b84c78) )
+ ROM_LOAD( "222-v2.v2", 0x400000, 0x400000, CRC(6c33bb5d) SHA1(fd5d4e08a962dd0d22c52c91bad5ec7f23cfb901) )
+ ROM_LOAD( "222-v3.v3", 0x800000, 0x200000, CRC(831ea8c0) SHA1(f2987b7d09bdc4311e972ce8a9ab7ca9802db4db) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "222-c1.c1", 0x0000000, 0x400000, CRC(68f2ed95) SHA1(c0a02df012cd25bcfe341770ea861a80294148cb) )
+ ROM_LOAD16_BYTE( "222-c2.c2", 0x0000001, 0x400000, CRC(a6e9aff0) SHA1(15addca49951ed53fa3c000c8d7cd327d012a620) )
+ ROM_LOAD16_BYTE( "222-c3.c3", 0x0800000, 0x400000, CRC(c91b40f4) SHA1(dcda45e0336204e3e024de08edfd0a3217bc1fdd) )
+ ROM_LOAD16_BYTE( "222-c4.c4", 0x0800001, 0x400000, CRC(359510a4) SHA1(b6642677ebdff7788263266402080272b8a66b15) )
+ ROM_LOAD16_BYTE( "222-c5.c5", 0x1000000, 0x400000, CRC(9cfbb22d) SHA1(789c32f917d0c6e38601cd390a7bf9d803131a4a) )
+ ROM_LOAD16_BYTE( "222-c6.c6", 0x1000001, 0x400000, CRC(685efc32) SHA1(db21ba1c7e3631ce0f1cb6f503ae7e0e043ff71b) )
+ ROM_LOAD16_BYTE( "222-c7.c7", 0x1800000, 0x400000, CRC(d0f86f0d) SHA1(32502d71c2ab1469c492b6b382bf2bb3f85981d9) )
+ ROM_LOAD16_BYTE( "222-c8.c8", 0x1800001, 0x400000, CRC(adfc50e3) SHA1(7d7ee874355b5aa75ad9c9a5c9c3df98d098d85e) )
+ROM_END
+
+ROM_START( samsho4fc ) /* Samurai Shodown IV - Boss hack by FCHT */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "222fc.p1", 0x000000, 0x100000, CRC(7d7c973c) SHA1(bef2d2795ae536d3d16ebcd3cc6a33a7b737b74b) )
+ ROM_LOAD16_WORD_SWAP( "222-p2.sp2", 0x100000, 0x400000, CRC(b023cd8b) SHA1(35b4cec9858225f90acdfa16ed8a3017d0d08327) )
+
+ NEO_SFIX_128K( "222bh.s1", CRC(d0906101) SHA1(16873a82c408a5585d4e424e953b451981a8d6b2) )
+
+ NEO_BIOS_AUDIO_128K( "222-m1.m1", CRC(7615bc1b) SHA1(b936f7b341f6fe0921b4c41049734684583e3596) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "222-v1.v1", 0x000000, 0x400000, CRC(7d6ba95f) SHA1(03cb4e0d770e0b332b07b64cacef624460b84c78) )
+ ROM_LOAD( "222-v2.v2", 0x400000, 0x400000, CRC(6c33bb5d) SHA1(fd5d4e08a962dd0d22c52c91bad5ec7f23cfb901) )
+ ROM_LOAD( "222-v3.v3", 0x800000, 0x200000, CRC(831ea8c0) SHA1(f2987b7d09bdc4311e972ce8a9ab7ca9802db4db) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "222-c1.c1", 0x0000000, 0x400000, CRC(68f2ed95) SHA1(c0a02df012cd25bcfe341770ea861a80294148cb) )
+ ROM_LOAD16_BYTE( "222-c2.c2", 0x0000001, 0x400000, CRC(a6e9aff0) SHA1(15addca49951ed53fa3c000c8d7cd327d012a620) )
+ ROM_LOAD16_BYTE( "222-c3.c3", 0x0800000, 0x400000, CRC(c91b40f4) SHA1(dcda45e0336204e3e024de08edfd0a3217bc1fdd) )
+ ROM_LOAD16_BYTE( "222-c4.c4", 0x0800001, 0x400000, CRC(359510a4) SHA1(b6642677ebdff7788263266402080272b8a66b15) )
+ ROM_LOAD16_BYTE( "222-c5.c5", 0x1000000, 0x400000, CRC(9cfbb22d) SHA1(789c32f917d0c6e38601cd390a7bf9d803131a4a) )
+ ROM_LOAD16_BYTE( "222-c6.c6", 0x1000001, 0x400000, CRC(685efc32) SHA1(db21ba1c7e3631ce0f1cb6f503ae7e0e043ff71b) )
+ ROM_LOAD16_BYTE( "222-c7.c7", 0x1800000, 0x400000, CRC(d0f86f0d) SHA1(32502d71c2ab1469c492b6b382bf2bb3f85981d9) )
+ ROM_LOAD16_BYTE( "222-c8.c8", 0x1800001, 0x400000, CRC(adfc50e3) SHA1(7d7ee874355b5aa75ad9c9a5c9c3df98d098d85e) )
+ROM_END
+
+ROM_START( samsho4kw ) /* Samurai Shodown IV - Enhance by Fighters Kim and Wesker - (Can choose Zankuro Minazuki - ultra power hack) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "222kw.p1", 0x000000, 0x100000, CRC(dae6844a) SHA1(4e4641e13d836919013f9a156553f8a2c6af05e6) )
+ ROM_LOAD16_WORD_SWAP( "222-p2.sp2", 0x100000, 0x400000, CRC(b023cd8b) SHA1(35b4cec9858225f90acdfa16ed8a3017d0d08327) )
+
+ NEO_SFIX_128K( "222-s1.s1", CRC(8d3d3bf9) SHA1(9975ed9b458bdd14e23451d2534153f68a5e4e6c) )
+
+ NEO_BIOS_AUDIO_128K( "222-m1.m1", CRC(7615bc1b) SHA1(b936f7b341f6fe0921b4c41049734684583e3596) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "222-v1.v1", 0x000000, 0x400000, CRC(7d6ba95f) SHA1(03cb4e0d770e0b332b07b64cacef624460b84c78) )
+ ROM_LOAD( "222-v2.v2", 0x400000, 0x400000, CRC(6c33bb5d) SHA1(fd5d4e08a962dd0d22c52c91bad5ec7f23cfb901) )
+ ROM_LOAD( "222-v3.v3", 0x800000, 0x200000, CRC(831ea8c0) SHA1(f2987b7d09bdc4311e972ce8a9ab7ca9802db4db) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "222-c1.c1", 0x0000000, 0x400000, CRC(68f2ed95) SHA1(c0a02df012cd25bcfe341770ea861a80294148cb) )
+ ROM_LOAD16_BYTE( "222-c2.c2", 0x0000001, 0x400000, CRC(a6e9aff0) SHA1(15addca49951ed53fa3c000c8d7cd327d012a620) )
+ ROM_LOAD16_BYTE( "222-c3.c3", 0x0800000, 0x400000, CRC(c91b40f4) SHA1(dcda45e0336204e3e024de08edfd0a3217bc1fdd) )
+ ROM_LOAD16_BYTE( "222-c4.c4", 0x0800001, 0x400000, CRC(359510a4) SHA1(b6642677ebdff7788263266402080272b8a66b15) )
+ ROM_LOAD16_BYTE( "222-c5.c5", 0x1000000, 0x400000, CRC(9cfbb22d) SHA1(789c32f917d0c6e38601cd390a7bf9d803131a4a) )
+ ROM_LOAD16_BYTE( "222-c6.c6", 0x1000001, 0x400000, CRC(685efc32) SHA1(db21ba1c7e3631ce0f1cb6f503ae7e0e043ff71b) )
+ ROM_LOAD16_BYTE( "222-c7.c7", 0x1800000, 0x400000, CRC(d0f86f0d) SHA1(32502d71c2ab1469c492b6b382bf2bb3f85981d9) )
+ ROM_LOAD16_BYTE( "222-c8.c8", 0x1800001, 0x400000, CRC(adfc50e3) SHA1(7d7ee874355b5aa75ad9c9a5c9c3df98d098d85e) )
+ROM_END
+
+ROM_START( samsho4kz ) /* Samurai Shodown IV - Enhance by Fighters Kim and Zhangshee - (Can choose Zankuro Minazuki - ultra power hack) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "222kz.p1", 0x000000, 0x100000, CRC(41503ba4) SHA1(c741e6f341baee8bbf1fdf64b7b144f9e4f120cc) )
+ ROM_LOAD16_WORD_SWAP( "222-p2.sp2", 0x100000, 0x400000, CRC(b023cd8b) SHA1(35b4cec9858225f90acdfa16ed8a3017d0d08327) )
+
+ NEO_SFIX_128K( "222-s1.s1", CRC(8d3d3bf9) SHA1(9975ed9b458bdd14e23451d2534153f68a5e4e6c) )
+
+ NEO_BIOS_AUDIO_128K( "222-m1.m1", CRC(7615bc1b) SHA1(b936f7b341f6fe0921b4c41049734684583e3596) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "222-v1.v1", 0x000000, 0x400000, CRC(7d6ba95f) SHA1(03cb4e0d770e0b332b07b64cacef624460b84c78) )
+ ROM_LOAD( "222-v2.v2", 0x400000, 0x400000, CRC(6c33bb5d) SHA1(fd5d4e08a962dd0d22c52c91bad5ec7f23cfb901) )
+ ROM_LOAD( "222-v3.v3", 0x800000, 0x200000, CRC(831ea8c0) SHA1(f2987b7d09bdc4311e972ce8a9ab7ca9802db4db) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "222-c1.c1", 0x0000000, 0x400000, CRC(68f2ed95) SHA1(c0a02df012cd25bcfe341770ea861a80294148cb) )
+ ROM_LOAD16_BYTE( "222-c2.c2", 0x0000001, 0x400000, CRC(a6e9aff0) SHA1(15addca49951ed53fa3c000c8d7cd327d012a620) )
+ ROM_LOAD16_BYTE( "222-c3.c3", 0x0800000, 0x400000, CRC(c91b40f4) SHA1(dcda45e0336204e3e024de08edfd0a3217bc1fdd) )
+ ROM_LOAD16_BYTE( "222-c4.c4", 0x0800001, 0x400000, CRC(359510a4) SHA1(b6642677ebdff7788263266402080272b8a66b15) )
+ ROM_LOAD16_BYTE( "222-c5.c5", 0x1000000, 0x400000, CRC(9cfbb22d) SHA1(789c32f917d0c6e38601cd390a7bf9d803131a4a) )
+ ROM_LOAD16_BYTE( "222-c6.c6", 0x1000001, 0x400000, CRC(685efc32) SHA1(db21ba1c7e3631ce0f1cb6f503ae7e0e043ff71b) )
+ ROM_LOAD16_BYTE( "222-c7.c7", 0x1800000, 0x400000, CRC(d0f86f0d) SHA1(32502d71c2ab1469c492b6b382bf2bb3f85981d9) )
+ ROM_LOAD16_BYTE( "222-c8.c8", 0x1800001, 0x400000, CRC(adfc50e3) SHA1(7d7ee874355b5aa75ad9c9a5c9c3df98d098d85e) )
+ROM_END
+
+ROM_START( samsho4mb )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "222mb.p1", 0x000000, 0x100000, CRC(b10572b2) SHA1(3ed79a23ec86a7a2c96ad6422c2b99d5e81b2117) )
+ ROM_LOAD16_WORD_SWAP( "222-p2.sp2", 0x100000, 0x400000, CRC(b023cd8b) SHA1(35b4cec9858225f90acdfa16ed8a3017d0d08327) )
+
+ NEO_SFIX_128K( "222-s1.s1", CRC(8d3d3bf9) SHA1(9975ed9b458bdd14e23451d2534153f68a5e4e6c) )
+
+ NEO_BIOS_AUDIO_128K( "222-m1.m1", CRC(7615bc1b) SHA1(b936f7b341f6fe0921b4c41049734684583e3596) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "222-v1.v1", 0x000000, 0x400000, CRC(7d6ba95f) SHA1(03cb4e0d770e0b332b07b64cacef624460b84c78) )
+ ROM_LOAD( "222-v2.v2", 0x400000, 0x400000, CRC(6c33bb5d) SHA1(fd5d4e08a962dd0d22c52c91bad5ec7f23cfb901) )
+ ROM_LOAD( "222-v3.v3", 0x800000, 0x200000, CRC(831ea8c0) SHA1(f2987b7d09bdc4311e972ce8a9ab7ca9802db4db) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "222-c1.c1", 0x0000000, 0x400000, CRC(68f2ed95) SHA1(c0a02df012cd25bcfe341770ea861a80294148cb) )
+ ROM_LOAD16_BYTE( "222-c2.c2", 0x0000001, 0x400000, CRC(a6e9aff0) SHA1(15addca49951ed53fa3c000c8d7cd327d012a620) )
+ ROM_LOAD16_BYTE( "222-c3.c3", 0x0800000, 0x400000, CRC(c91b40f4) SHA1(dcda45e0336204e3e024de08edfd0a3217bc1fdd) )
+ ROM_LOAD16_BYTE( "222-c4.c4", 0x0800001, 0x400000, CRC(359510a4) SHA1(b6642677ebdff7788263266402080272b8a66b15) )
+ ROM_LOAD16_BYTE( "222-c5.c5", 0x1000000, 0x400000, CRC(9cfbb22d) SHA1(789c32f917d0c6e38601cd390a7bf9d803131a4a) )
+ ROM_LOAD16_BYTE( "222-c6.c6", 0x1000001, 0x400000, CRC(685efc32) SHA1(db21ba1c7e3631ce0f1cb6f503ae7e0e043ff71b) )
+ ROM_LOAD16_BYTE( "222-c7.c7", 0x1800000, 0x400000, CRC(d0f86f0d) SHA1(32502d71c2ab1469c492b6b382bf2bb3f85981d9) )
+ ROM_LOAD16_BYTE( "222-c8.c8", 0x1800001, 0x400000, CRC(adfc50e3) SHA1(7d7ee874355b5aa75ad9c9a5c9c3df98d098d85e) )
+ROM_END
+
+ROM_START( samsho4pm )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "222pm.p1", 0x000000, 0x100000, CRC(b76aab1e) SHA1(cfba2faa8f81ce4e05813fae290e2d6bd9abeb7c) )
+ ROM_LOAD16_WORD_SWAP( "222-p2.sp2", 0x100000, 0x400000, CRC(b023cd8b) SHA1(35b4cec9858225f90acdfa16ed8a3017d0d08327) )
+
+ NEO_SFIX_128K( "222-s1.s1", CRC(8d3d3bf9) SHA1(9975ed9b458bdd14e23451d2534153f68a5e4e6c) )
+
+ NEO_BIOS_AUDIO_128K( "222-m1.m1", CRC(7615bc1b) SHA1(b936f7b341f6fe0921b4c41049734684583e3596) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "222-v1.v1", 0x000000, 0x400000, CRC(7d6ba95f) SHA1(03cb4e0d770e0b332b07b64cacef624460b84c78) )
+ ROM_LOAD( "222-v2.v2", 0x400000, 0x400000, CRC(6c33bb5d) SHA1(fd5d4e08a962dd0d22c52c91bad5ec7f23cfb901) )
+ ROM_LOAD( "222-v3.v3", 0x800000, 0x200000, CRC(831ea8c0) SHA1(f2987b7d09bdc4311e972ce8a9ab7ca9802db4db) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "222-c1.c1", 0x0000000, 0x400000, CRC(68f2ed95) SHA1(c0a02df012cd25bcfe341770ea861a80294148cb) )
+ ROM_LOAD16_BYTE( "222-c2.c2", 0x0000001, 0x400000, CRC(a6e9aff0) SHA1(15addca49951ed53fa3c000c8d7cd327d012a620) )
+ ROM_LOAD16_BYTE( "222-c3.c3", 0x0800000, 0x400000, CRC(c91b40f4) SHA1(dcda45e0336204e3e024de08edfd0a3217bc1fdd) )
+ ROM_LOAD16_BYTE( "222-c4.c4", 0x0800001, 0x400000, CRC(359510a4) SHA1(b6642677ebdff7788263266402080272b8a66b15) )
+ ROM_LOAD16_BYTE( "222-c5.c5", 0x1000000, 0x400000, CRC(9cfbb22d) SHA1(789c32f917d0c6e38601cd390a7bf9d803131a4a) )
+ ROM_LOAD16_BYTE( "222-c6.c6", 0x1000001, 0x400000, CRC(685efc32) SHA1(db21ba1c7e3631ce0f1cb6f503ae7e0e043ff71b) )
+ ROM_LOAD16_BYTE( "222-c7.c7", 0x1800000, 0x400000, CRC(d0f86f0d) SHA1(32502d71c2ab1469c492b6b382bf2bb3f85981d9) )
+ ROM_LOAD16_BYTE( "222-c8.c8", 0x1800001, 0x400000, CRC(adfc50e3) SHA1(7d7ee874355b5aa75ad9c9a5c9c3df98d098d85e) )
+ROM_END
+
+ROM_START( samsho4ps )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "222ps.p1", 0x000000, 0x100000, CRC(70dd94fe) SHA1(611b84be241eb81a39a29d41779b7dfec6262c8c) )
+ ROM_LOAD16_WORD_SWAP( "222ps.p2", 0x100000, 0x400000, CRC(2c9c64db) SHA1(2a9825bc7577cb1f3128b6a9f41b72bb1228e037) )
+
+ NEO_SFIX_128K( "222-s1.s1", CRC(8d3d3bf9) SHA1(9975ed9b458bdd14e23451d2534153f68a5e4e6c) )
+
+ NEO_BIOS_AUDIO_128K( "222-m1.m1", CRC(7615bc1b) SHA1(b936f7b341f6fe0921b4c41049734684583e3596) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "222-v1.v1", 0x000000, 0x400000, CRC(7d6ba95f) SHA1(03cb4e0d770e0b332b07b64cacef624460b84c78) )
+ ROM_LOAD( "222-v2.v2", 0x400000, 0x400000, CRC(6c33bb5d) SHA1(fd5d4e08a962dd0d22c52c91bad5ec7f23cfb901) )
+ ROM_LOAD( "222-v3.v3", 0x800000, 0x200000, CRC(831ea8c0) SHA1(f2987b7d09bdc4311e972ce8a9ab7ca9802db4db) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "222-c1.c1", 0x0000000, 0x400000, CRC(68f2ed95) SHA1(c0a02df012cd25bcfe341770ea861a80294148cb) )
+ ROM_LOAD16_BYTE( "222-c2.c2", 0x0000001, 0x400000, CRC(a6e9aff0) SHA1(15addca49951ed53fa3c000c8d7cd327d012a620) )
+ ROM_LOAD16_BYTE( "222-c3.c3", 0x0800000, 0x400000, CRC(c91b40f4) SHA1(dcda45e0336204e3e024de08edfd0a3217bc1fdd) )
+ ROM_LOAD16_BYTE( "222-c4.c4", 0x0800001, 0x400000, CRC(359510a4) SHA1(b6642677ebdff7788263266402080272b8a66b15) )
+ ROM_LOAD16_BYTE( "222-c5.c5", 0x1000000, 0x400000, CRC(9cfbb22d) SHA1(789c32f917d0c6e38601cd390a7bf9d803131a4a) )
+ ROM_LOAD16_BYTE( "222-c6.c6", 0x1000001, 0x400000, CRC(685efc32) SHA1(db21ba1c7e3631ce0f1cb6f503ae7e0e043ff71b) )
+ ROM_LOAD16_BYTE( "222ps.c7", 0x1800000, 0x400000, CRC(ecb13c24) SHA1(5f7a62e04a7c2bed52cc4d6377f41d1dbe55f6ee) )
+ ROM_LOAD16_BYTE( "222ps.c8", 0x1800001, 0x400000, CRC(0f9a0bda) SHA1(6093f607dbcc9e1475bb1bb8e713b23fcd99c486) )
+ROM_END
+
+ROM_START( samsho4s2 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "222s2.p1", 0x000000, 0x100000, CRC(baf26b5e) SHA1(028821e26a2b9ea038c727e9a9e057f176c2e634) )
+ ROM_LOAD16_WORD_SWAP( "222-p2.sp2", 0x100000, 0x400000, CRC(b023cd8b) SHA1(35b4cec9858225f90acdfa16ed8a3017d0d08327) )
+
+ NEO_SFIX_128K( "222-s1.s1", CRC(8d3d3bf9) SHA1(9975ed9b458bdd14e23451d2534153f68a5e4e6c) )
+
+ NEO_BIOS_AUDIO_128K( "222-m1.m1", CRC(7615bc1b) SHA1(b936f7b341f6fe0921b4c41049734684583e3596) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "222-v1.v1", 0x000000, 0x400000, CRC(7d6ba95f) SHA1(03cb4e0d770e0b332b07b64cacef624460b84c78) )
+ ROM_LOAD( "222-v2.v2", 0x400000, 0x400000, CRC(6c33bb5d) SHA1(fd5d4e08a962dd0d22c52c91bad5ec7f23cfb901) )
+ ROM_LOAD( "222-v3.v3", 0x800000, 0x200000, CRC(831ea8c0) SHA1(f2987b7d09bdc4311e972ce8a9ab7ca9802db4db) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "222-c1.c1", 0x0000000, 0x400000, CRC(68f2ed95) SHA1(c0a02df012cd25bcfe341770ea861a80294148cb) )
+ ROM_LOAD16_BYTE( "222-c2.c2", 0x0000001, 0x400000, CRC(a6e9aff0) SHA1(15addca49951ed53fa3c000c8d7cd327d012a620) )
+ ROM_LOAD16_BYTE( "222-c3.c3", 0x0800000, 0x400000, CRC(c91b40f4) SHA1(dcda45e0336204e3e024de08edfd0a3217bc1fdd) )
+ ROM_LOAD16_BYTE( "222-c4.c4", 0x0800001, 0x400000, CRC(359510a4) SHA1(b6642677ebdff7788263266402080272b8a66b15) )
+ ROM_LOAD16_BYTE( "222-c5.c5", 0x1000000, 0x400000, CRC(9cfbb22d) SHA1(789c32f917d0c6e38601cd390a7bf9d803131a4a) )
+ ROM_LOAD16_BYTE( "222-c6.c6", 0x1000001, 0x400000, CRC(685efc32) SHA1(db21ba1c7e3631ce0f1cb6f503ae7e0e043ff71b) )
+ ROM_LOAD16_BYTE( "222-c7.c7", 0x1800000, 0x400000, CRC(d0f86f0d) SHA1(32502d71c2ab1469c492b6b382bf2bb3f85981d9) )
+ ROM_LOAD16_BYTE( "222-c8.c8", 0x1800001, 0x400000, CRC(adfc50e3) SHA1(7d7ee874355b5aa75ad9c9a5c9c3df98d098d85e) )
+ROM_END
+
+ROM_START( samsho4wh ) /* Samurai Shodown IV - Hack by Wesker - (Can choose Zankuro Minazuki - final edition) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "222wh.p1", 0x000000, 0x100000, CRC(8b8fbb8a) SHA1(75dff66982c4b4e2137fb3058516be516d2c6a73) )
+ ROM_LOAD16_WORD_SWAP( "222-p2.sp2", 0x100000, 0x400000, CRC(b023cd8b) SHA1(35b4cec9858225f90acdfa16ed8a3017d0d08327) )
+
+ NEO_SFIX_128K( "222-s1.s1", CRC(8d3d3bf9) SHA1(9975ed9b458bdd14e23451d2534153f68a5e4e6c) )
+
+ NEO_BIOS_AUDIO_128K( "222-m1.m1", CRC(7615bc1b) SHA1(b936f7b341f6fe0921b4c41049734684583e3596) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "222-v1.v1", 0x000000, 0x400000, CRC(7d6ba95f) SHA1(03cb4e0d770e0b332b07b64cacef624460b84c78) )
+ ROM_LOAD( "222-v2.v2", 0x400000, 0x400000, CRC(6c33bb5d) SHA1(fd5d4e08a962dd0d22c52c91bad5ec7f23cfb901) )
+ ROM_LOAD( "222-v3.v3", 0x800000, 0x200000, CRC(831ea8c0) SHA1(f2987b7d09bdc4311e972ce8a9ab7ca9802db4db) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "222-c1.c1", 0x0000000, 0x400000, CRC(68f2ed95) SHA1(c0a02df012cd25bcfe341770ea861a80294148cb) )
+ ROM_LOAD16_BYTE( "222-c2.c2", 0x0000001, 0x400000, CRC(a6e9aff0) SHA1(15addca49951ed53fa3c000c8d7cd327d012a620) )
+ ROM_LOAD16_BYTE( "222-c3.c3", 0x0800000, 0x400000, CRC(c91b40f4) SHA1(dcda45e0336204e3e024de08edfd0a3217bc1fdd) )
+ ROM_LOAD16_BYTE( "222-c4.c4", 0x0800001, 0x400000, CRC(359510a4) SHA1(b6642677ebdff7788263266402080272b8a66b15) )
+ ROM_LOAD16_BYTE( "222-c5.c5", 0x1000000, 0x400000, CRC(9cfbb22d) SHA1(789c32f917d0c6e38601cd390a7bf9d803131a4a) )
+ ROM_LOAD16_BYTE( "222-c6.c6", 0x1000001, 0x400000, CRC(685efc32) SHA1(db21ba1c7e3631ce0f1cb6f503ae7e0e043ff71b) )
+ ROM_LOAD16_BYTE( "222-c7.c7", 0x1800000, 0x400000, CRC(d0f86f0d) SHA1(32502d71c2ab1469c492b6b382bf2bb3f85981d9) )
+ ROM_LOAD16_BYTE( "222-c8.c8", 0x1800001, 0x400000, CRC(adfc50e3) SHA1(7d7ee874355b5aa75ad9c9a5c9c3df98d098d85e) )
+ROM_END
+
+ROM_START( samsho4zk )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "222zk.p1", 0x000000, 0x100000, CRC(6ae69ad2) SHA1(d2ae4c05a1b0247fcbd8153d9e2ea05edf456d19) )
+ ROM_LOAD16_WORD_SWAP( "222-p2.sp2", 0x100000, 0x400000, CRC(b023cd8b) SHA1(35b4cec9858225f90acdfa16ed8a3017d0d08327) )
+
+ NEO_SFIX_128K( "222-s1.s1", CRC(8d3d3bf9) SHA1(9975ed9b458bdd14e23451d2534153f68a5e4e6c) )
+
+ NEO_BIOS_AUDIO_128K( "222-m1.m1", CRC(7615bc1b) SHA1(b936f7b341f6fe0921b4c41049734684583e3596) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "222-v1.v1", 0x000000, 0x400000, CRC(7d6ba95f) SHA1(03cb4e0d770e0b332b07b64cacef624460b84c78) )
+ ROM_LOAD( "222-v2.v2", 0x400000, 0x400000, CRC(6c33bb5d) SHA1(fd5d4e08a962dd0d22c52c91bad5ec7f23cfb901) )
+ ROM_LOAD( "222-v3.v3", 0x800000, 0x200000, CRC(831ea8c0) SHA1(f2987b7d09bdc4311e972ce8a9ab7ca9802db4db) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "222-c1.c1", 0x0000000, 0x400000, CRC(68f2ed95) SHA1(c0a02df012cd25bcfe341770ea861a80294148cb) )
+ ROM_LOAD16_BYTE( "222-c2.c2", 0x0000001, 0x400000, CRC(a6e9aff0) SHA1(15addca49951ed53fa3c000c8d7cd327d012a620) )
+ ROM_LOAD16_BYTE( "222-c3.c3", 0x0800000, 0x400000, CRC(c91b40f4) SHA1(dcda45e0336204e3e024de08edfd0a3217bc1fdd) )
+ ROM_LOAD16_BYTE( "222-c4.c4", 0x0800001, 0x400000, CRC(359510a4) SHA1(b6642677ebdff7788263266402080272b8a66b15) )
+ ROM_LOAD16_BYTE( "222-c5.c5", 0x1000000, 0x400000, CRC(9cfbb22d) SHA1(789c32f917d0c6e38601cd390a7bf9d803131a4a) )
+ ROM_LOAD16_BYTE( "222-c6.c6", 0x1000001, 0x400000, CRC(685efc32) SHA1(db21ba1c7e3631ce0f1cb6f503ae7e0e043ff71b) )
+ ROM_LOAD16_BYTE( "222-c7.c7", 0x1800000, 0x400000, CRC(d0f86f0d) SHA1(32502d71c2ab1469c492b6b382bf2bb3f85981d9) )
+ ROM_LOAD16_BYTE( "222-c8.c8", 0x1800001, 0x400000, CRC(adfc50e3) SHA1(7d7ee874355b5aa75ad9c9a5c9c3df98d098d85e) )
+ROM_END
+
+
+ROM_START( samsho5ba )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "270ba.p1", 0x000000, 0x400000, CRC(28d9f763) SHA1(21e5cc1cd20a3a9eef7c4d4da87480654cdeceb4) )
+ ROM_LOAD16_WORD_SWAP( "270bs.p2", 0x400000, 0x400000, CRC(91979dee) SHA1(0e03a2a2e3aa493bd839f3754260ddd3935ba25b) )
+
+ NEO_SFIX_128K( "270ch.s1", CRC(cd025baa) SHA1(2ebdff1f40ec31b1842ec5399145869b00c8c4b2) )
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "270-m1.m1", CRC(49c9901a) SHA1(2623e9765a0eba58fee2de72851e9dc502344a3d) )
+
+ ROM_REGION( 0X1000000, "ymsnd", 0 )
+ ROM_LOAD( "270bs.v1", 0x000000, 0x800000, CRC(809c7617) SHA1(b6b542eb4c1078016fcd78d050433dc8e3029329) )
+ ROM_LOAD( "270bs.v2", 0x800000, 0x800000, CRC(42671607) SHA1(4fa64b5a9349e9c3d5d60806c9da4a2b6beff18a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "270ba.c1", 0x0000000, 0x800000, CRC(102ef439) SHA1(512c4b1c2c3d6fa532a4ebc0cec2127c5f3f6aea) )
+ ROM_LOAD16_BYTE( "270ba.c2", 0x0000001, 0x800000, CRC(4986bdd7) SHA1(644666d2ddb99ba67a77d6fccea4fb229a4ccc21) )
+ ROM_LOAD16_BYTE( "270ba.c3", 0x1000000, 0x800000, CRC(149ed711) SHA1(365d742ad191d6a912885e04304959d16c701eca) )
+ ROM_LOAD16_BYTE( "270ba.c4", 0x1000001, 0x800000, CRC(2e2e0e1d) SHA1(7891dd1f269c757dfe3c668c0156b1caa6ede90a) )
+ ROM_LOAD16_BYTE( "270ba.c5", 0x2000000, 0x800000, CRC(7eb555c1) SHA1(d137c290b5fab64152e8124068654174482e2db9) )
+ ROM_LOAD16_BYTE( "270ba.c6", 0x2000001, 0x800000, CRC(6471b021) SHA1(1d7cc33f07688b215706ce73ca03abdf7d654ba1) )
+ ROM_LOAD16_BYTE( "270ba.c7", 0x3000000, 0x800000, CRC(37de7738) SHA1(9bb85e77469681952d0064f1bb57534469fbaf8e) )
+ ROM_LOAD16_BYTE( "270ba.c8", 0x3000001, 0x800000, CRC(74dca282) SHA1(819488133ee2bb27cbdb2d9d53226d61c53f51d4) )
+ROM_END
+
+ROM_START( samsho5bd )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "270bd.p1", 0x000000, 0x800000, CRC(611a6687) SHA1(55ff9122d64efd276e22a66fa443e0bebd079928) )
+
+ NEO_SFIX_128K( "270bd.s1", CRC(33227d62) SHA1(5f4b7ab642175657af212304783a1df98415ed44) )
+
+ NEO_BIOS_AUDIO_128K( "270bd.m1", CRC(18114fb1) SHA1(016dc2f328340f3637a9bff373a20973df29f6b8) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "270bd.v1", 0x000000, 0x400000, CRC(6849136c) SHA1(5f8e7cc33b8d994165dd577a0d7e0eb2df16f07e) )
+ ROM_LOAD( "270bd.v2", 0x400000, 0x400000, CRC(222e1774) SHA1(3c1b2f37d4f2fa2cd7d6a6f04b3aedf6b2f4b089) )
+ ROM_LOAD( "270bd.v3", 0x800000, 0x400000, CRC(cd9e7adc) SHA1(941ae992c004594885f635fdea3ac1c51bb5d469) )
+ ROM_LOAD( "270bd.v4", 0xc00000, 0x400000, CRC(8b305cac) SHA1(938e2600c0c2b3d4a0a362ef6e91850c32217f18) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "270bd.c1", 0x0000000, 0x800000, CRC(4e7bdea1) SHA1(2376386e0e82820c0853cf39e27167f8c181980c) )
+ ROM_LOAD16_BYTE( "270bd.c2", 0x0000001, 0x800000, CRC(7b444985) SHA1(1f2941f6a1bee6391002b88277edcfa7554f10f3) )
+ ROM_LOAD16_BYTE( "270bd.c3", 0x1000000, 0x800000, CRC(8c709a9b) SHA1(92a03ccf08d301955b06f3323417b4f20d773428) )
+ ROM_LOAD16_BYTE( "270bd.c4", 0x1000001, 0x800000, CRC(cfd53f5c) SHA1(773b03fb6faa958eddee6b001ebb619f8a8d5b30) )
+ ROM_LOAD16_BYTE( "270bd.c5", 0x2000000, 0x800000, CRC(c026d318) SHA1(fec9a9309afe94f21e0f35ec992a39ce51deefc2) )
+ ROM_LOAD16_BYTE( "270bd.c6", 0x2000001, 0x800000, CRC(b3d9d204) SHA1(9dbcf6c179ea3a04c8ed26416e4e91324fd1cf11) )
+ ROM_LOAD16_BYTE( "270bd.c7", 0x3000000, 0x800000, CRC(fe03a025) SHA1(3a052869f6b46cffc5d1ea497b0d5f1f4d1874c2) )
+ ROM_LOAD16_BYTE( "270bd.c8", 0x3000001, 0x800000, CRC(89db2d34) SHA1(cd3f1e4ef631704c1078c915135a4510891bd429) )
+ROM_END
+
+ROM_START( samsho5bh )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "270bh.p1", 0x000000, 0x400000, CRC(0afe5db8) SHA1(ad7572d58fdda785b12941215b5e613a332e87c7) )
+ ROM_LOAD16_WORD_SWAP( "270bs.p2", 0x400000, 0x400000, CRC(91979dee) SHA1(0e03a2a2e3aa493bd839f3754260ddd3935ba25b) )
+
+ NEO_SFIX_128K( "270ch.s1", CRC(cd025baa) SHA1(2ebdff1f40ec31b1842ec5399145869b00c8c4b2) )
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "270-m1.m1", CRC(49c9901a) SHA1(2623e9765a0eba58fee2de72851e9dc502344a3d) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "270-v1.v1", 0x000000, 0x800000, CRC(62e434eb) SHA1(1985f5e88f8e866f9683b6cea901aa28c04b80bf) )
+ ROM_LOAD( "270-v2.v2", 0x800000, 0x800000, CRC(180f3c9a) SHA1(6d7dc2605ead6e78704efa127e7e0dfe621e2c54) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "270-c1.c1", 0x0000000, 0x800000, CRC(14ffffac) SHA1(2ccebfdd0c7907679ae95bf6eca85b8d322441e2) )
+ ROM_LOAD16_BYTE( "270-c2.c2", 0x0000001, 0x800000, CRC(401f7299) SHA1(94e48cdf1682b1250f53c59f3f71d995e928d17b) )
+ ROM_LOAD16_BYTE( "270-c3.c3", 0x1000000, 0x800000, CRC(838f0260) SHA1(d5c8d3c6e7221d04e0b20882a847752e5ba95635) )
+ ROM_LOAD16_BYTE( "270-c4.c4", 0x1000001, 0x800000, CRC(041560a5) SHA1(d165e533699f15b1e079c82f97db3542b3a7dd66) )
+ ROM_LOAD16_BYTE( "270-c5.c5", 0x2000000, 0x800000, CRC(bd30b52d) SHA1(9f8282e684415b4045218cf764ef7d75a70e3240) )
+ ROM_LOAD16_BYTE( "270-c6.c6", 0x2000001, 0x800000, CRC(86a69c70) SHA1(526732cdb408cf680af9da39057bce6a4dfb5e13) )
+ ROM_LOAD16_BYTE( "270-c7.c7", 0x3000000, 0x800000, CRC(d28fbc3c) SHA1(a82a6ba6760fad14d9309f9147cb7d80bd6f70fc) )
+ ROM_LOAD16_BYTE( "270-c8.c8", 0x3000001, 0x800000, CRC(02c530a6) SHA1(7a3fafa6075506c6ef78cc4ec2cb72118ec83cb9) )
+ROM_END
+
+ROM_START( samsho5bs )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "270bs.p1", 0x000000, 0x400000, CRC(a00cceba) SHA1(de91db34e0068dd40e9b151f0d0a7f609e880d77) )
+ ROM_LOAD16_WORD_SWAP( "270bs.p2", 0x400000, 0x400000, CRC(91979dee) SHA1(0e03a2a2e3aa493bd839f3754260ddd3935ba25b) )
+
+ NEO_SFIX_128K( "270bs.s1", CRC(2ad6048b) SHA1(173c8561f0633e0d6e4a9750e632f2e46766e674) )
+
+ NEO_BIOS_AUDIO_256K( "270d.m1", CRC(e94a5e2b) SHA1(53ef2ad6583060af69fdde73576e09ba88affa55) ) /* not a 100% match for encrypted version */
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "270bs.v1", 0x000000, 0x800000, CRC(809c7617) SHA1(b6b542eb4c1078016fcd78d050433dc8e3029329) )
+ ROM_LOAD( "270bs.v2", 0x800000, 0x800000, CRC(42671607) SHA1(4fa64b5a9349e9c3d5d60806c9da4a2b6beff18a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "270hd.c1", 0x0000000, 0x800000, CRC(9adec562) SHA1(069d73384dc320c38db420c8b04db86ac0b76101) )
+ ROM_LOAD16_BYTE( "270hd.c2", 0x0000001, 0x800000, CRC(ac0309e5) SHA1(9795fb2fa9eea617ec25656cfa9cd507899ec4fe) )
+ ROM_LOAD16_BYTE( "270hd.c3", 0x1000000, 0x800000, CRC(82db9dae) SHA1(0206e1cc2c5f0fbbc074a93add5a44f645951d0c) )
+ ROM_LOAD16_BYTE( "270hd.c4", 0x1000001, 0x800000, CRC(f8041153) SHA1(55705c725aff949e668c24b23e2e4cdb4ecf78ae) )
+ ROM_LOAD16_BYTE( "270hd.c5", 0x2000000, 0x800000, CRC(e689d62d) SHA1(001a59bb1bb14f263d16f8b7e977cd49e44e265a) )
+ ROM_LOAD16_BYTE( "270hd.c6", 0x2000001, 0x800000, CRC(a993bdcf) SHA1(d15980afe6d4b33506918186a2efc3f51b2347ca) )
+ ROM_LOAD16_BYTE( "270bs.c7", 0x3000000, 0x800000, CRC(02914b0b) SHA1(eef388cf6ceaca07f807943a0d63ea29727dd086) )
+ ROM_LOAD16_BYTE( "270bs.c8", 0x3000001, 0x800000, CRC(e874ac8b) SHA1(45c65154df10c26aa138c7973075c3327e5f908e) )
+ROM_END
+
+ROM_START( samsho5ch )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "270ch.p1", 0x000000, 0x800000, CRC(22b374ea) SHA1(dab8e0589210488feb374e80712ab511f5117066) )
+
+ NEO_SFIX_128K( "270ch.s1", CRC(cd025baa) SHA1(2ebdff1f40ec31b1842ec5399145869b00c8c4b2) )
+
+ NEO_BIOS_AUDIO_512K( "270ch.m1", CRC(0ca49586) SHA1(8610918af611d8514678fee1617aa47974b604e6) )
+
+ ROM_REGION( 0X1000000, "ymsnd", 0 )
+ ROM_LOAD( "270bs.v1", 0x000000, 0x800000, CRC(809c7617) SHA1(b6b542eb4c1078016fcd78d050433dc8e3029329) )
+ ROM_LOAD( "270bs.v2", 0x800000, 0x800000, CRC(42671607) SHA1(4fa64b5a9349e9c3d5d60806c9da4a2b6beff18a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "270ch.c1", 0x0000000, 0x800000, CRC(a2fe269f) SHA1(95ea363061bf5f4537ba885c0fbd894985f0a93a) )
+ ROM_LOAD16_BYTE( "270hd.c2", 0x0000001, 0x800000, CRC(ac0309e5) SHA1(9795fb2fa9eea617ec25656cfa9cd507899ec4fe) )
+ ROM_LOAD16_BYTE( "270ch.c3", 0x1000000, 0x800000, CRC(8275bb23) SHA1(101e784f273cce19158f81d23a8f581750ff7512) )
+ ROM_LOAD16_BYTE( "270ch.c4", 0x1000001, 0x800000, CRC(7a69cc1f) SHA1(2b63b5093c07aa7585093617c179af65b5015305) )
+ ROM_LOAD16_BYTE( "270ch.c5", 0x2000000, 0x800000, CRC(5298d011) SHA1(2090deb8341efc682b1dc55fb55e85a091d9ce2c) )
+ ROM_LOAD16_BYTE( "270ch.c6", 0x2000001, 0x800000, CRC(a33c04df) SHA1(31b14f8be2ff108337c8d672996aa650edd2307f) )
+ ROM_LOAD16_BYTE( "270ch.c7", 0x3000000, 0x800000, CRC(61025f97) SHA1(5ba6432aa35b1c27bc34ebd349ff47154dceb9a8) )
+ ROM_LOAD16_BYTE( "270ch.c8", 0x3000001, 0x800000, CRC(df3993ce) SHA1(580327300ff84ce805694b06f8036eeffef4c046) )
+ROM_END
+
+ROM_START( samsho5d )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "270-p1.p1", 0x000000, 0x400000, CRC(4a2a09e6) SHA1(2644DE02CDAB8CCC605488A7C76B8C9CD1D5BCB9) )
+ ROM_LOAD16_WORD_SWAP( "270-p2.sp2", 0x400000, 0x400000, CRC(e0c74c85) SHA1(DF24A4EE76438E40C2F04A714175A7F85CACDFE0) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_256K( "270d.m1", CRC(e94a5e2b) SHA1(53ef2ad6583060af69fdde73576e09ba88affa55) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "270-v1.v1", 0x000000, 0x800000, CRC(62e434eb) SHA1(1985f5e88f8e866f9683b6cea901aa28c04b80bf) )
+ ROM_LOAD( "270-v2.v2", 0x800000, 0x800000, CRC(180f3c9a) SHA1(6d7dc2605ead6e78704efa127e7e0dfe621e2c54) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "270d.c1", 0x0000000, 0x800000, CRC(726abb40) SHA1(86A08C1266FB057D9A30A3AC259D526EC10D2FFA) )
+ ROM_LOAD16_BYTE( "270d.c2", 0x0000001, 0x800000, CRC(76806188) SHA1(B448C06D7311791BAD09F0828FD3E56326DD7737) )
+ ROM_LOAD16_BYTE( "270hd.c3", 0x1000000, 0x800000, CRC(82db9dae) SHA1(0206E1CC2C5F0FBBC074A93ADD5A44F645951D0C) )
+ ROM_LOAD16_BYTE( "270hd.c4", 0x1000001, 0x800000, CRC(f8041153) SHA1(55705C725AFF949E668C24B23E2E4CDB4ECF78AE) )
+ ROM_LOAD16_BYTE( "270d.c5", 0x2000000, 0x800000, CRC(2219186a) SHA1(ACE6D04DA578F2A5E7B7A405E0CBB31073070185) )
+ ROM_LOAD16_BYTE( "270d.c6", 0x2000001, 0x800000, CRC(d225120d) SHA1(AE28664486135949DD16BB91E8F35936BDA725A0) )
+ ROM_LOAD16_BYTE( "270d.c7", 0x3000000, 0x800000, CRC(d245d493) SHA1(C0E89F863B9B592FF5F0F813D9B127CEE31132D1) )
+ ROM_LOAD16_BYTE( "270d.c8", 0x3000001, 0x800000, CRC(eb06c9cc) SHA1(1DFD45407586DC7F574189BBC0D8AE1967D0A089) )
+ROM_END
+
+ROM_START( samsho5d1 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "270-p1.p1", 0x000000, 0x400000, CRC(4a2a09e6) SHA1(2644de02cdab8ccc605488a7c76b8c9cd1d5bcb9) )
+ ROM_LOAD16_WORD_SWAP( "270-p2.sp2", 0x400000, 0x400000, CRC(e0c74c85) SHA1(df24a4ee76438e40c2f04a714175a7f85cacdfe0) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "270-m1.m1", CRC(49c9901a) SHA1(2623e9765a0eba58fee2de72851e9dc502344a3d) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "270-v1.v1", 0x000000, 0x800000, CRC(62e434eb) SHA1(1985f5e88f8e866f9683b6cea901aa28c04b80bf) )
+ ROM_LOAD( "270-v2.v2", 0x800000, 0x800000, CRC(180f3c9a) SHA1(6d7dc2605ead6e78704efa127e7e0dfe621e2c54) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "270hd.c1", 0x0000000, 0x800000, CRC(9adec562) SHA1(069d73384dc320c38db420c8b04db86ac0b76101) )
+ ROM_LOAD16_BYTE( "270hd.c2", 0x0000001, 0x800000, CRC(ac0309e5) SHA1(9795fb2fa9eea617ec25656cfa9cd507899ec4fe) )
+ ROM_LOAD16_BYTE( "270hd.c3", 0x1000000, 0x800000, CRC(82db9dae) SHA1(0206e1cc2c5f0fbbc074a93add5a44f645951d0c) )
+ ROM_LOAD16_BYTE( "270hd.c4", 0x1000001, 0x800000, CRC(f8041153) SHA1(55705c725aff949e668c24b23e2e4cdb4ecf78ae) )
+ ROM_LOAD16_BYTE( "270hd.c5", 0x2000000, 0x800000, CRC(e689d62d) SHA1(001a59bb1bb14f263d16f8b7e977cd49e44e265a) )
+ ROM_LOAD16_BYTE( "270hd.c6", 0x2000001, 0x800000, CRC(a993bdcf) SHA1(d15980afe6d4b33506918186a2efc3f51b2347ca) )
+ ROM_LOAD16_BYTE( "270hd.c7", 0x3000000, 0x800000, CRC(707d56a0) SHA1(303ecc621305c8fbeece8d599f9382fe82d191ee) )
+ ROM_LOAD16_BYTE( "270hd.c8", 0x3000001, 0x800000, CRC(f5903adc) SHA1(64f867a4e9d23302aa1e884f8fad7872ee347a86) )
+ROM_END
+
+ROM_START( samsho5ge )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "270ge.p1", 0x000000, 0x400000, CRC(f4900b62) SHA1(e7f3508d5409e22aac04dacea229405d9afbdfa8) )
+ ROM_LOAD16_WORD_SWAP( "270-p2.sp2", 0x400000, 0x400000, CRC(e0c74c85) SHA1(DF24A4EE76438E40C2F04A714175A7F85CACDFE0) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "270-m1.m1", CRC(49c9901a) SHA1(2623e9765a0eba58fee2de72851e9dc502344a3d) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "270-v1.v1", 0x000000, 0x800000, CRC(62e434eb) SHA1(1985f5e88f8e866f9683b6cea901aa28c04b80bf) )
+ ROM_LOAD( "270-v2.v2", 0x800000, 0x800000, CRC(180f3c9a) SHA1(6d7dc2605ead6e78704efa127e7e0dfe621e2c54) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "270-c1.c1", 0x0000000, 0x800000, CRC(14ffffac) SHA1(2ccebfdd0c7907679ae95bf6eca85b8d322441e2) )
+ ROM_LOAD16_BYTE( "270-c2.c2", 0x0000001, 0x800000, CRC(401f7299) SHA1(94e48cdf1682b1250f53c59f3f71d995e928d17b) )
+ ROM_LOAD16_BYTE( "270-c3.c3", 0x1000000, 0x800000, CRC(838f0260) SHA1(d5c8d3c6e7221d04e0b20882a847752e5ba95635) )
+ ROM_LOAD16_BYTE( "270-c4.c4", 0x1000001, 0x800000, CRC(041560a5) SHA1(d165e533699f15b1e079c82f97db3542b3a7dd66) )
+ ROM_LOAD16_BYTE( "270-c5.c5", 0x2000000, 0x800000, CRC(bd30b52d) SHA1(9f8282e684415b4045218cf764ef7d75a70e3240) )
+ ROM_LOAD16_BYTE( "270-c6.c6", 0x2000001, 0x800000, CRC(86a69c70) SHA1(526732cdb408cf680af9da39057bce6a4dfb5e13) )
+ ROM_LOAD16_BYTE( "270-c7.c7", 0x3000000, 0x800000, CRC(d28fbc3c) SHA1(a82a6ba6760fad14d9309f9147cb7d80bd6f70fc) )
+ ROM_LOAD16_BYTE( "270-c8.c8", 0x3000001, 0x800000, CRC(02c530a6) SHA1(7a3fafa6075506c6ef78cc4ec2cb72118ec83cb9) )
+ROM_END
+
+ROM_START( samsho5hd )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "270hd.p1", 0x000000, 0x400000, CRC(bf956089) SHA1(c538289069bf338b9fa7ecc5c9143763dbb776a8) )
+ ROM_LOAD16_WORD_SWAP( "270hd.p2", 0x400000, 0x400000, CRC(943a6b1d) SHA1(12bd02fc197456da6ee86f066086094cef0f4bf9) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "270-m1.m1", CRC(49c9901a) SHA1(2623e9765a0eba58fee2de72851e9dc502344a3d) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "270-v1.v1", 0x000000, 0x800000, CRC(62e434eb) SHA1(1985f5e88f8e866f9683b6cea901aa28c04b80bf) )
+ ROM_LOAD( "270-v2.v2", 0x800000, 0x800000, CRC(180f3c9a) SHA1(6d7dc2605ead6e78704efa127e7e0dfe621e2c54) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "270hd.c1", 0x0000000, 0x800000, CRC(9adec562) SHA1(069d73384dc320c38db420c8b04db86ac0b76101) )
+ ROM_LOAD16_BYTE( "270hd.c2", 0x0000001, 0x800000, CRC(ac0309e5) SHA1(9795fb2fa9eea617ec25656cfa9cd507899ec4fe) )
+ ROM_LOAD16_BYTE( "270hd.c3", 0x1000000, 0x800000, CRC(82db9dae) SHA1(0206e1cc2c5f0fbbc074a93add5a44f645951d0c) )
+ ROM_LOAD16_BYTE( "270hd.c4", 0x1000001, 0x800000, CRC(f8041153) SHA1(55705c725aff949e668c24b23e2e4cdb4ecf78ae) )
+ ROM_LOAD16_BYTE( "270hd.c5", 0x2000000, 0x800000, CRC(e689d62d) SHA1(001a59bb1bb14f263d16f8b7e977cd49e44e265a) )
+ ROM_LOAD16_BYTE( "270hd.c6", 0x2000001, 0x800000, CRC(a993bdcf) SHA1(d15980afe6d4b33506918186a2efc3f51b2347ca) )
+ ROM_LOAD16_BYTE( "270hd.c7", 0x3000000, 0x800000, CRC(707d56a0) SHA1(303ecc621305c8fbeece8d599f9382fe82d191ee) )
+ ROM_LOAD16_BYTE( "270hd.c8", 0x3000001, 0x800000, CRC(f5903adc) SHA1(64f867a4e9d23302aa1e884f8fad7872ee347a86) )
+ROM_END
+
+ROM_START( samsho5s2 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "270s2.p1", 0x000000, 0x400000, CRC(e66b65f8) SHA1(be56cc4eb21e4bd2e27bd25350deee2258f5d1da) )
+ ROM_LOAD16_WORD_SWAP( "270-p2.sp2", 0x400000, 0x400000, CRC(e0c74c85) SHA1(DF24A4EE76438E40C2F04A714175A7F85CACDFE0) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "270-m1.m1", CRC(49c9901a) SHA1(2623e9765a0eba58fee2de72851e9dc502344a3d) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "270-v1.v1", 0x000000, 0x800000, CRC(62e434eb) SHA1(1985f5e88f8e866f9683b6cea901aa28c04b80bf) )
+ ROM_LOAD( "270-v2.v2", 0x800000, 0x800000, CRC(180f3c9a) SHA1(6d7dc2605ead6e78704efa127e7e0dfe621e2c54) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "270-c1.c1", 0x0000000, 0x800000, CRC(14ffffac) SHA1(2ccebfdd0c7907679ae95bf6eca85b8d322441e2) )
+ ROM_LOAD16_BYTE( "270-c2.c2", 0x0000001, 0x800000, CRC(401f7299) SHA1(94e48cdf1682b1250f53c59f3f71d995e928d17b) )
+ ROM_LOAD16_BYTE( "270-c3.c3", 0x1000000, 0x800000, CRC(838f0260) SHA1(d5c8d3c6e7221d04e0b20882a847752e5ba95635) )
+ ROM_LOAD16_BYTE( "270-c4.c4", 0x1000001, 0x800000, CRC(041560a5) SHA1(d165e533699f15b1e079c82f97db3542b3a7dd66) )
+ ROM_LOAD16_BYTE( "270-c5.c5", 0x2000000, 0x800000, CRC(bd30b52d) SHA1(9f8282e684415b4045218cf764ef7d75a70e3240) )
+ ROM_LOAD16_BYTE( "270-c6.c6", 0x2000001, 0x800000, CRC(86a69c70) SHA1(526732cdb408cf680af9da39057bce6a4dfb5e13) )
+ ROM_LOAD16_BYTE( "270-c7.c7", 0x3000000, 0x800000, CRC(d28fbc3c) SHA1(a82a6ba6760fad14d9309f9147cb7d80bd6f70fc) )
+ ROM_LOAD16_BYTE( "270-c8.c8", 0x3000001, 0x800000, CRC(02c530a6) SHA1(7a3fafa6075506c6ef78cc4ec2cb72118ec83cb9) )
+ROM_END
+
+ROM_START( samsho5x )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "270x.p1", 0x000000, 0x800000, CRC(16983af9) SHA1(8b1ab272200bede14ad66d7e98474ac3fb7564d3) )
+
+ NEO_SFIX_128K( "270bs.s1", CRC(2ad6048b) SHA1(173c8561f0633e0d6e4a9750e632f2e46766e674) )
+
+ NEO_BIOS_AUDIO_512K( "270x.m1", CRC(5218a10a) SHA1(da4968e55d4a56249d85d6742a6acffcff4ad65d) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "270bs.v1", 0x000000, 0x800000, CRC(809c7617) SHA1(b6b542eb4c1078016fcd78d050433dc8e3029329) )
+ ROM_LOAD( "270bs.v2", 0x800000, 0x800000, CRC(42671607) SHA1(4fa64b5a9349e9c3d5d60806c9da4a2b6beff18a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "270x.c1", 0x0000000, 0x800000, CRC(25272e50) SHA1(cc2aa5e5de2483539398f27f317ab2dda7b5c49e) )
+ ROM_LOAD16_BYTE( "270x.c2", 0x0000001, 0x800000, CRC(ba68f2e7) SHA1(77b9b5ddc3b313df0dd328c75eac0e8bdfcebad8) )
+ ROM_LOAD16_BYTE( "270x.c3", 0x1000000, 0x800000, CRC(75883cde) SHA1(2f9d72a07f8f14b52150cfb70bbc33d171a3d515) )
+ ROM_LOAD16_BYTE( "270x.c4", 0x1000001, 0x800000, CRC(348540e6) SHA1(4c6eec8948fbb67ae57eaa4a98525deed6cd2859) )
+ ROM_LOAD16_BYTE( "270x.c5", 0x2000000, 0x800000, CRC(1fee8dc8) SHA1(c7f1016ad711ec248218627c92dd5af68cba0206) )
+ ROM_LOAD16_BYTE( "270x.c6", 0x2000001, 0x800000, CRC(c300b50d) SHA1(8c8fbb81dbc6c283b55380d577944c6b9cdd6cf4) )
+ ROM_LOAD16_BYTE( "270x.c7", 0x3000000, 0x800000, CRC(5e722b0b) SHA1(7015dac7cc234473949912216a1b82ca640b52b6) )
+ ROM_LOAD16_BYTE( "270x.c8", 0x3000001, 0x800000, CRC(e2a2c546) SHA1(c870acb090606ae185fa9d7b4932949abacb0705) )
+ROM_END
+
+ROM_START( samsho5zk )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "270zk.p1", 0x000000, 0x400000, CRC(a1c49fdd) SHA1(2f2e9de6ae7bb5c1f0b026083c2d47c17ea2d204) )
+ ROM_LOAD16_WORD_SWAP( "270-p2.sp2", 0x400000, 0x400000, CRC(e0c74c85) SHA1(DF24A4EE76438E40C2F04A714175A7F85CACDFE0) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "270-m1.m1", CRC(49c9901a) SHA1(2623e9765a0eba58fee2de72851e9dc502344a3d) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "270-v1.v1", 0x000000, 0x800000, CRC(62e434eb) SHA1(1985f5e88f8e866f9683b6cea901aa28c04b80bf) )
+ ROM_LOAD( "270-v2.v2", 0x800000, 0x800000, CRC(180f3c9a) SHA1(6d7dc2605ead6e78704efa127e7e0dfe621e2c54) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "270-c1.c1", 0x0000000, 0x800000, CRC(14ffffac) SHA1(2ccebfdd0c7907679ae95bf6eca85b8d322441e2) )
+ ROM_LOAD16_BYTE( "270-c2.c2", 0x0000001, 0x800000, CRC(401f7299) SHA1(94e48cdf1682b1250f53c59f3f71d995e928d17b) )
+ ROM_LOAD16_BYTE( "270-c3.c3", 0x1000000, 0x800000, CRC(838f0260) SHA1(d5c8d3c6e7221d04e0b20882a847752e5ba95635) )
+ ROM_LOAD16_BYTE( "270-c4.c4", 0x1000001, 0x800000, CRC(041560a5) SHA1(d165e533699f15b1e079c82f97db3542b3a7dd66) )
+ ROM_LOAD16_BYTE( "270-c5.c5", 0x2000000, 0x800000, CRC(bd30b52d) SHA1(9f8282e684415b4045218cf764ef7d75a70e3240) )
+ ROM_LOAD16_BYTE( "270-c6.c6", 0x2000001, 0x800000, CRC(86a69c70) SHA1(526732cdb408cf680af9da39057bce6a4dfb5e13) )
+ ROM_LOAD16_BYTE( "270-c7.c7", 0x3000000, 0x800000, CRC(d28fbc3c) SHA1(a82a6ba6760fad14d9309f9147cb7d80bd6f70fc) )
+ ROM_LOAD16_BYTE( "270-c8.c8", 0x3000001, 0x800000, CRC(02c530a6) SHA1(7a3fafa6075506c6ef78cc4ec2cb72118ec83cb9) )
+ROM_END
+
+
+ROM_START( samsh5spd )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "272-p1.p1", 0x000000, 0x400000, CRC(fb7a6bba) SHA1(f68c527208d8a55ca44b0caaa8ab66b3a0ffdfe5) )
+ ROM_LOAD16_WORD_SWAP( "272-p2.sp2", 0x400000, 0x400000, CRC(63492ea6) SHA1(6ba946acb62c63ed61a42fe72b7fff3828883bcc) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_512K( "272d.m1", CRC(203d744e) SHA1(24fc73943009effa14eed0f7a29955f349ca8e8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "272-v1.v1", 0x000000, 0x800000, CRC(76a94127) SHA1(c3affd7ff1eb02345cfb755962ec173a8ec34acd) )
+ ROM_LOAD( "272-v2.v2", 0x800000, 0x800000, CRC(4ba507f1) SHA1(728d139da3fe8a391fd8be4d24bb7fdd4bf9548a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "272d.c1", 0x0000000, 0x800000, CRC(8548097e) SHA1(99177F64039D2914FA4EBD4AFC7EB0FBF4FFE0AF) )
+ ROM_LOAD16_BYTE( "272d.c2", 0x0000001, 0x800000, CRC(8c1b48d0) SHA1(3F20288ED369E6276CFAEDFF7E9703D4EA1CF6F6) )
+ ROM_LOAD16_BYTE( "272d.c3", 0x1000000, 0x800000, CRC(96ddb28c) SHA1(7EBE5166D279C0D3EFEF65618D015B4EA13F2C49) )
+ ROM_LOAD16_BYTE( "272d.c4", 0x1000001, 0x800000, CRC(99ef7a0a) SHA1(9AC3EF339BC1D6E3482E0B32D40B259EC2B44FC1) )
+ ROM_LOAD16_BYTE( "272d.c5", 0x2000000, 0x800000, CRC(772e8b1e) SHA1(8DE4898BBD8EDE593763BFA93BBF26492492D23A) )
+ ROM_LOAD16_BYTE( "272d.c6", 0x2000001, 0x800000, CRC(5fff21fc) SHA1(5D0A23A41F5277AB09FD11F227BE35F1713A4B4F) )
+ ROM_LOAD16_BYTE( "272d.c7", 0x3000000, 0x800000, CRC(9ac56a0e) SHA1(EA4FFEC3FE2E58DF16B40FDF33E1708680010414) )
+ ROM_LOAD16_BYTE( "272d.c8", 0x3000001, 0x800000, CRC(cfde7aff) SHA1(25185F471DD35E5D388B75B83D8652085CD5E17D) )
+ROM_END
+
+ROM_START( samsh5spd1 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "272-p1.p1", 0x000000, 0x400000, CRC(fb7a6bba) SHA1(f68c527208d8a55ca44b0caaa8ab66b3a0ffdfe5) )
+ ROM_LOAD16_WORD_SWAP( "272-p2.sp2", 0x400000, 0x400000, CRC(63492ea6) SHA1(6ba946acb62c63ed61a42fe72b7fff3828883bcc) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "272-m1.m1", CRC(adeebf40) SHA1(8cbd63dda3fff4de38060405bf70cd9308c9e66e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "272-v1.v1", 0x000000, 0x800000, CRC(76a94127) SHA1(c3affd7ff1eb02345cfb755962ec173a8ec34acd) )
+ ROM_LOAD( "272-v2.v2", 0x800000, 0x800000, CRC(4ba507f1) SHA1(728d139da3fe8a391fd8be4d24bb7fdd4bf9548a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "272d.c1", 0x0000000, 0x800000, CRC(8548097e) SHA1(99177F64039D2914FA4EBD4AFC7EB0FBF4FFE0AF) )
+ ROM_LOAD16_BYTE( "272d.c2", 0x0000001, 0x800000, CRC(8c1b48d0) SHA1(3F20288ED369E6276CFAEDFF7E9703D4EA1CF6F6) )
+ ROM_LOAD16_BYTE( "272d.c3", 0x1000000, 0x800000, CRC(96ddb28c) SHA1(7EBE5166D279C0D3EFEF65618D015B4EA13F2C49) )
+ ROM_LOAD16_BYTE( "272d.c4", 0x1000001, 0x800000, CRC(99ef7a0a) SHA1(9AC3EF339BC1D6E3482E0B32D40B259EC2B44FC1) )
+ ROM_LOAD16_BYTE( "272d.c5", 0x2000000, 0x800000, CRC(772e8b1e) SHA1(8DE4898BBD8EDE593763BFA93BBF26492492D23A) )
+ ROM_LOAD16_BYTE( "272d.c6", 0x2000001, 0x800000, CRC(5fff21fc) SHA1(5D0A23A41F5277AB09FD11F227BE35F1713A4B4F) )
+ ROM_LOAD16_BYTE( "272d.c7", 0x3000000, 0x800000, CRC(9ac56a0e) SHA1(EA4FFEC3FE2E58DF16B40FDF33E1708680010414) )
+ ROM_LOAD16_BYTE( "272d.c8", 0x3000001, 0x800000, CRC(cfde7aff) SHA1(25185F471DD35E5D388B75B83D8652085CD5E17D) )
+ROM_END
+
+ROM_START( samsh5spd2 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "272d2.p1", 0x000000, 0x400000, CRC(D190102F) SHA1(A853395575E135C2113FCCA942651A2A6193B504) )
+ ROM_LOAD16_WORD_SWAP( "272d2.p2", 0x400000, 0x400000, CRC(DA770F06) SHA1(F23DE7385AE5C6A27D70B1140654192F0ED2DF84) )
+
+ NEO_SFIX_128K( "272n.s1", CRC(C297F973) SHA1(B31AF6B51E7536B538CD7EB3542C631C6327E826) )
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "272-m1.m1", CRC(adeebf40) SHA1(8cbd63dda3fff4de38060405bf70cd9308c9e66e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "272-v1.v1", 0x000000, 0x800000, CRC(76a94127) SHA1(c3affd7ff1eb02345cfb755962ec173a8ec34acd) )
+ ROM_LOAD( "272-v2.v2", 0x800000, 0x800000, CRC(4ba507f1) SHA1(728d139da3fe8a391fd8be4d24bb7fdd4bf9548a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "272d.c1", 0x0000000, 0x800000, CRC(8548097e) SHA1(99177F64039D2914FA4EBD4AFC7EB0FBF4FFE0AF) )
+ ROM_LOAD16_BYTE( "272d.c2", 0x0000001, 0x800000, CRC(8c1b48d0) SHA1(3F20288ED369E6276CFAEDFF7E9703D4EA1CF6F6) )
+ ROM_LOAD16_BYTE( "272d.c3", 0x1000000, 0x800000, CRC(96ddb28c) SHA1(7EBE5166D279C0D3EFEF65618D015B4EA13F2C49) )
+ ROM_LOAD16_BYTE( "272d.c4", 0x1000001, 0x800000, CRC(99ef7a0a) SHA1(9AC3EF339BC1D6E3482E0B32D40B259EC2B44FC1) )
+ ROM_LOAD16_BYTE( "272d.c5", 0x2000000, 0x800000, CRC(772e8b1e) SHA1(8DE4898BBD8EDE593763BFA93BBF26492492D23A) )
+ ROM_LOAD16_BYTE( "272d.c6", 0x2000001, 0x800000, CRC(5fff21fc) SHA1(5D0A23A41F5277AB09FD11F227BE35F1713A4B4F) )
+ ROM_LOAD16_BYTE( "272d.c7", 0x3000000, 0x800000, CRC(9ac56a0e) SHA1(EA4FFEC3FE2E58DF16B40FDF33E1708680010414) )
+ ROM_LOAD16_BYTE( "272d.c8", 0x3000001, 0x800000, CRC(cfde7aff) SHA1(25185F471DD35E5D388B75B83D8652085CD5E17D) )
+ROM_END
+
+ROM_START( samsh5sph1 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "272h.p1", 0x000000, 0x800000, CRC(15f53d87) SHA1(9e53deceef727757eb0ec3889f628b838cf1316a) )
+ //ROM_LOAD16_WORD_SWAP( "272nh3.p2", 0x100000, 0x700000, CRC(7114a210) SHA1(ae1f64a711648141e52ad28c6995e6d42836367c) ) // not needed
+
+ NEO_SFIX_128K( "272n.s1", CRC(c297f973) SHA1(b31af6b51e7536b538cd7eb3542c631c6327e826) )
+
+ NEO_BIOS_AUDIO_128K( "272n.m1", CRC(0b5d4d6a) SHA1(2467e06be986cba8c879412cba0388019892dbb2) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "272n.v1", 0x000000, 0x400000, CRC(4d1b252b) SHA1(e5efe408c337a2ca556e790f0fd917ba44f975e3) )
+ ROM_LOAD( "272n.v2", 0x400000, 0x400000, CRC(0e46d2f8) SHA1(b8b0838124ea29f73f31e08d5cced8797cea75b1) )
+ ROM_LOAD( "272n.v3", 0x800000, 0x400000, CRC(3f0f7554) SHA1(2581e297725f3b950b59e9086ac5569171da6140) )
+ ROM_LOAD( "272n.v4", 0xc00000, 0x400000, CRC(ad8fabb4) SHA1(cebe3b7306e1431ebb99df13bfc2270b1d3ba1ff) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "272d.c1", 0x0000000, 0x800000, CRC(8548097e) SHA1(99177F64039D2914FA4EBD4AFC7EB0FBF4FFE0AF) )
+ ROM_LOAD16_BYTE( "272d.c2", 0x0000001, 0x800000, CRC(8c1b48d0) SHA1(3F20288ED369E6276CFAEDFF7E9703D4EA1CF6F6) )
+ ROM_LOAD16_BYTE( "272d.c3", 0x1000000, 0x800000, CRC(96ddb28c) SHA1(7EBE5166D279C0D3EFEF65618D015B4EA13F2C49) )
+ ROM_LOAD16_BYTE( "272d.c4", 0x1000001, 0x800000, CRC(99ef7a0a) SHA1(9AC3EF339BC1D6E3482E0B32D40B259EC2B44FC1) )
+ ROM_LOAD16_BYTE( "272d.c5", 0x2000000, 0x800000, CRC(772e8b1e) SHA1(8DE4898BBD8EDE593763BFA93BBF26492492D23A) )
+ ROM_LOAD16_BYTE( "272d.c6", 0x2000001, 0x800000, CRC(5fff21fc) SHA1(5D0A23A41F5277AB09FD11F227BE35F1713A4B4F) )
+ ROM_LOAD16_BYTE( "272d.c7", 0x3000000, 0x800000, CRC(9ac56a0e) SHA1(EA4FFEC3FE2E58DF16B40FDF33E1708680010414) )
+ ROM_LOAD16_BYTE( "272d.c8", 0x3000001, 0x800000, CRC(cfde7aff) SHA1(25185F471DD35E5D388B75B83D8652085CD5E17D) )
+ROM_END
+
+ROM_START( samsh5spha )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "272ha.p1", 0x000000, 0x100000, CRC(24f2a6ab) SHA1(cd7cea2ed5fafb6328dc8c35224071d96e83da9b) )
+ ROM_LOAD16_WORD_SWAP( "272nh3.p2", 0x100000, 0x700000, CRC(7114a210) SHA1(ae1f64a711648141e52ad28c6995e6d42836367c) )
+
+ NEO_SFIX_128K( "272n.s1", CRC(c297f973) SHA1(b31af6b51e7536b538cd7eb3542c631c6327e826) )
+
+ NEO_BIOS_AUDIO_128K( "272n.m1", CRC(0b5d4d6a) SHA1(2467e06be986cba8c879412cba0388019892dbb2) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "272n.v1", 0x000000, 0x400000, CRC(4d1b252b) SHA1(e5efe408c337a2ca556e790f0fd917ba44f975e3) )
+ ROM_LOAD( "272n.v2", 0x400000, 0x400000, CRC(0e46d2f8) SHA1(b8b0838124ea29f73f31e08d5cced8797cea75b1) )
+ ROM_LOAD( "272n.v3", 0x800000, 0x400000, CRC(3f0f7554) SHA1(2581e297725f3b950b59e9086ac5569171da6140) )
+ ROM_LOAD( "272n.v4", 0xc00000, 0x400000, CRC(ad8fabb4) SHA1(cebe3b7306e1431ebb99df13bfc2270b1d3ba1ff) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "272d.c1", 0x0000000, 0x800000, CRC(8548097e) SHA1(99177F64039D2914FA4EBD4AFC7EB0FBF4FFE0AF) )
+ ROM_LOAD16_BYTE( "272d.c2", 0x0000001, 0x800000, CRC(8c1b48d0) SHA1(3F20288ED369E6276CFAEDFF7E9703D4EA1CF6F6) )
+ ROM_LOAD16_BYTE( "272d.c3", 0x1000000, 0x800000, CRC(96ddb28c) SHA1(7EBE5166D279C0D3EFEF65618D015B4EA13F2C49) )
+ ROM_LOAD16_BYTE( "272d.c4", 0x1000001, 0x800000, CRC(99ef7a0a) SHA1(9AC3EF339BC1D6E3482E0B32D40B259EC2B44FC1) )
+ ROM_LOAD16_BYTE( "272d.c5", 0x2000000, 0x800000, CRC(772e8b1e) SHA1(8DE4898BBD8EDE593763BFA93BBF26492492D23A) )
+ ROM_LOAD16_BYTE( "272d.c6", 0x2000001, 0x800000, CRC(5fff21fc) SHA1(5D0A23A41F5277AB09FD11F227BE35F1713A4B4F) )
+ ROM_LOAD16_BYTE( "272d.c7", 0x3000000, 0x800000, CRC(9ac56a0e) SHA1(EA4FFEC3FE2E58DF16B40FDF33E1708680010414) )
+ ROM_LOAD16_BYTE( "272d.c8", 0x3000001, 0x800000, CRC(cfde7aff) SHA1(25185F471DD35E5D388B75B83D8652085CD5E17D) )
+ROM_END
+
+ROM_START( samsh5sphb )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "272hb.p1", 0x000000, 0x100000, CRC(b07fa849) SHA1(26a8e795ee4bbd25c88104a1ee9459991b65c774) )
+ ROM_LOAD16_WORD_SWAP( "272nh3.p2", 0x100000, 0x700000, CRC(7114a210) SHA1(ae1f64a711648141e52ad28c6995e6d42836367c) )
+
+ NEO_SFIX_128K( "272n.s1", CRC(c297f973) SHA1(b31af6b51e7536b538cd7eb3542c631c6327e826) )
+
+ NEO_BIOS_AUDIO_128K( "272n.m1", CRC(0b5d4d6a) SHA1(2467e06be986cba8c879412cba0388019892dbb2) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "272n.v1", 0x000000, 0x400000, CRC(4d1b252b) SHA1(e5efe408c337a2ca556e790f0fd917ba44f975e3) )
+ ROM_LOAD( "272n.v2", 0x400000, 0x400000, CRC(0e46d2f8) SHA1(b8b0838124ea29f73f31e08d5cced8797cea75b1) )
+ ROM_LOAD( "272n.v3", 0x800000, 0x400000, CRC(3f0f7554) SHA1(2581e297725f3b950b59e9086ac5569171da6140) )
+ ROM_LOAD( "272n.v4", 0xc00000, 0x400000, CRC(ad8fabb4) SHA1(cebe3b7306e1431ebb99df13bfc2270b1d3ba1ff) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "272d.c1", 0x0000000, 0x800000, CRC(8548097e) SHA1(99177F64039D2914FA4EBD4AFC7EB0FBF4FFE0AF) )
+ ROM_LOAD16_BYTE( "272d.c2", 0x0000001, 0x800000, CRC(8c1b48d0) SHA1(3F20288ED369E6276CFAEDFF7E9703D4EA1CF6F6) )
+ ROM_LOAD16_BYTE( "272d.c3", 0x1000000, 0x800000, CRC(96ddb28c) SHA1(7EBE5166D279C0D3EFEF65618D015B4EA13F2C49) )
+ ROM_LOAD16_BYTE( "272d.c4", 0x1000001, 0x800000, CRC(99ef7a0a) SHA1(9AC3EF339BC1D6E3482E0B32D40B259EC2B44FC1) )
+ ROM_LOAD16_BYTE( "272d.c5", 0x2000000, 0x800000, CRC(772e8b1e) SHA1(8DE4898BBD8EDE593763BFA93BBF26492492D23A) )
+ ROM_LOAD16_BYTE( "272d.c6", 0x2000001, 0x800000, CRC(5fff21fc) SHA1(5D0A23A41F5277AB09FD11F227BE35F1713A4B4F) )
+ ROM_LOAD16_BYTE( "272d.c7", 0x3000000, 0x800000, CRC(9ac56a0e) SHA1(EA4FFEC3FE2E58DF16B40FDF33E1708680010414) )
+ ROM_LOAD16_BYTE( "272d.c8", 0x3000001, 0x800000, CRC(cfde7aff) SHA1(25185F471DD35E5D388B75B83D8652085CD5E17D) )
+ROM_END
+
+ROM_START( samsh5sphc )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "272nh3.p1", 0x000000, 0x400000, CRC(01e4b860) SHA1(de25b51a944a9e9757d8baa27d65601e96b4b718) )
+ ROM_LOAD16_WORD_SWAP( "272nh3.p2", 0x100000, 0x700000, CRC(7114a210) SHA1(ae1f64a711648141e52ad28c6995e6d42836367c) )
+
+ NEO_SFIX_128K( "272n.s1", CRC(c297f973) SHA1(b31af6b51e7536b538cd7eb3542c631c6327e826) )
+
+ NEO_BIOS_AUDIO_128K( "272n.m1", CRC(0b5d4d6a) SHA1(2467e06be986cba8c879412cba0388019892dbb2) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "272n.v1", 0x000000, 0x400000, CRC(4d1b252b) SHA1(e5efe408c337a2ca556e790f0fd917ba44f975e3) )
+ ROM_LOAD( "272n.v2", 0x400000, 0x400000, CRC(0e46d2f8) SHA1(b8b0838124ea29f73f31e08d5cced8797cea75b1) )
+ ROM_LOAD( "272n.v3", 0x800000, 0x400000, CRC(3f0f7554) SHA1(2581e297725f3b950b59e9086ac5569171da6140) )
+ ROM_LOAD( "272n.v4", 0xc00000, 0x400000, CRC(ad8fabb4) SHA1(cebe3b7306e1431ebb99df13bfc2270b1d3ba1ff) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "272d.c1", 0x0000000, 0x800000, CRC(8548097e) SHA1(99177F64039D2914FA4EBD4AFC7EB0FBF4FFE0AF) )
+ ROM_LOAD16_BYTE( "272d.c2", 0x0000001, 0x800000, CRC(8c1b48d0) SHA1(3F20288ED369E6276CFAEDFF7E9703D4EA1CF6F6) )
+ ROM_LOAD16_BYTE( "272d.c3", 0x1000000, 0x800000, CRC(96ddb28c) SHA1(7EBE5166D279C0D3EFEF65618D015B4EA13F2C49) )
+ ROM_LOAD16_BYTE( "272d.c4", 0x1000001, 0x800000, CRC(99ef7a0a) SHA1(9AC3EF339BC1D6E3482E0B32D40B259EC2B44FC1) )
+ ROM_LOAD16_BYTE( "272d.c5", 0x2000000, 0x800000, CRC(772e8b1e) SHA1(8DE4898BBD8EDE593763BFA93BBF26492492D23A) )
+ ROM_LOAD16_BYTE( "272d.c6", 0x2000001, 0x800000, CRC(5fff21fc) SHA1(5D0A23A41F5277AB09FD11F227BE35F1713A4B4F) )
+ ROM_LOAD16_BYTE( "272d.c7", 0x3000000, 0x800000, CRC(9ac56a0e) SHA1(EA4FFEC3FE2E58DF16B40FDF33E1708680010414) )
+ ROM_LOAD16_BYTE( "272d.c8", 0x3000001, 0x800000, CRC(cfde7aff) SHA1(25185F471DD35E5D388B75B83D8652085CD5E17D) )
+ROM_END
+
+ROM_START( samsh5sphd )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "272hd.p1", 0x000000, 0x400000, CRC(9291794d) SHA1(66588ff9b00ffad6508b03423548984e28a3209d) )
+ ROM_LOAD16_WORD_SWAP( "272hd.p2", 0x400000, 0x400000, CRC(fa1a7dd8) SHA1(62443dad76d6c1e18f515d7d4ef8e1295a4b7f1d) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "272-m1.m1", CRC(adeebf40) SHA1(8cbd63dda3fff4de38060405bf70cd9308c9e66e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "272-v1.v1", 0x000000, 0x800000, CRC(76a94127) SHA1(c3affd7ff1eb02345cfb755962ec173a8ec34acd) )
+ ROM_LOAD( "272-v2.v2", 0x800000, 0x800000, CRC(4ba507f1) SHA1(728d139da3fe8a391fd8be4d24bb7fdd4bf9548a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "272d.c1", 0x0000000, 0x800000, CRC(8548097e) SHA1(99177F64039D2914FA4EBD4AFC7EB0FBF4FFE0AF) )
+ ROM_LOAD16_BYTE( "272d.c2", 0x0000001, 0x800000, CRC(8c1b48d0) SHA1(3F20288ED369E6276CFAEDFF7E9703D4EA1CF6F6) )
+ ROM_LOAD16_BYTE( "272d.c3", 0x1000000, 0x800000, CRC(96ddb28c) SHA1(7EBE5166D279C0D3EFEF65618D015B4EA13F2C49) )
+ ROM_LOAD16_BYTE( "272d.c4", 0x1000001, 0x800000, CRC(99ef7a0a) SHA1(9AC3EF339BC1D6E3482E0B32D40B259EC2B44FC1) )
+ ROM_LOAD16_BYTE( "272d.c5", 0x2000000, 0x800000, CRC(772e8b1e) SHA1(8DE4898BBD8EDE593763BFA93BBF26492492D23A) )
+ ROM_LOAD16_BYTE( "272d.c6", 0x2000001, 0x800000, CRC(5fff21fc) SHA1(5D0A23A41F5277AB09FD11F227BE35F1713A4B4F) )
+ ROM_LOAD16_BYTE( "272d.c7", 0x3000000, 0x800000, CRC(9ac56a0e) SHA1(EA4FFEC3FE2E58DF16B40FDF33E1708680010414) )
+ ROM_LOAD16_BYTE( "272d.c8", 0x3000001, 0x800000, CRC(cfde7aff) SHA1(25185F471DD35E5D388B75B83D8652085CD5E17D) )
+ROM_END
+
+ROM_START( samsh5spn ) // fully decrypted
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "272n.p1", 0x000000, 0x800000, CRC(339f5081) SHA1(3e120481a5aee6a978d87a0f600a7323657d1c51) )
+
+ NEO_SFIX_128K( "272n.s1", CRC(c297f973) SHA1(b31af6b51e7536b538cd7eb3542c631c6327e826) )
+
+ NEO_BIOS_AUDIO_128K( "272n.m1", CRC(0b5d4d6a) SHA1(2467e06be986cba8c879412cba0388019892dbb2) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "272n.v1", 0x000000, 0x400000, CRC(4d1b252b) SHA1(e5efe408c337a2ca556e790f0fd917ba44f975e3) )
+ ROM_LOAD( "272n.v2", 0x400000, 0x400000, CRC(0e46d2f8) SHA1(b8b0838124ea29f73f31e08d5cced8797cea75b1) )
+ ROM_LOAD( "272n.v3", 0x800000, 0x400000, CRC(3f0f7554) SHA1(2581e297725f3b950b59e9086ac5569171da6140) )
+ ROM_LOAD( "272n.v4", 0xc00000, 0x400000, CRC(ad8fabb4) SHA1(cebe3b7306e1431ebb99df13bfc2270b1d3ba1ff) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "272d.c1", 0x0000000, 0x800000, CRC(8548097e) SHA1(99177F64039D2914FA4EBD4AFC7EB0FBF4FFE0AF) )
+ ROM_LOAD16_BYTE( "272d.c2", 0x0000001, 0x800000, CRC(8c1b48d0) SHA1(3F20288ED369E6276CFAEDFF7E9703D4EA1CF6F6) )
+ ROM_LOAD16_BYTE( "272d.c3", 0x1000000, 0x800000, CRC(96ddb28c) SHA1(7EBE5166D279C0D3EFEF65618D015B4EA13F2C49) )
+ ROM_LOAD16_BYTE( "272d.c4", 0x1000001, 0x800000, CRC(99ef7a0a) SHA1(9AC3EF339BC1D6E3482E0B32D40B259EC2B44FC1) )
+ ROM_LOAD16_BYTE( "272d.c5", 0x2000000, 0x800000, CRC(772e8b1e) SHA1(8DE4898BBD8EDE593763BFA93BBF26492492D23A) )
+ ROM_LOAD16_BYTE( "272d.c6", 0x2000001, 0x800000, CRC(5fff21fc) SHA1(5D0A23A41F5277AB09FD11F227BE35F1713A4B4F) )
+ ROM_LOAD16_BYTE( "272d.c7", 0x3000000, 0x800000, CRC(9ac56a0e) SHA1(EA4FFEC3FE2E58DF16B40FDF33E1708680010414) )
+ ROM_LOAD16_BYTE( "272d.c8", 0x3000001, 0x800000, CRC(cfde7aff) SHA1(25185F471DD35E5D388B75B83D8652085CD5E17D) )
+ROM_END
+
+ROM_START( samsh5spnd ) /* 2nd bugfix release */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "272nd.p1", 0x000000, 0x400000, CRC(c30a08dd) SHA1(66864954017c841d7ca8490112c3aa7a71a4da70) )
+ ROM_LOAD16_WORD_SWAP( "272nd.sp2", 0x400000, 0x400000, CRC(bd64a518) SHA1(aa259a168930f106377d680db444535411b3bce0) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "272-m1.m1", CRC(adeebf40) SHA1(8cbd63dda3fff4de38060405bf70cd9308c9e66e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "272-v1.v1", 0x000000, 0x800000, CRC(76a94127) SHA1(c3affd7ff1eb02345cfb755962ec173a8ec34acd) )
+ ROM_LOAD( "272-v2.v2", 0x800000, 0x800000, CRC(4ba507f1) SHA1(728d139da3fe8a391fd8be4d24bb7fdd4bf9548a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "272d.c1", 0x0000000, 0x800000, CRC(8548097e) SHA1(99177F64039D2914FA4EBD4AFC7EB0FBF4FFE0AF) )
+ ROM_LOAD16_BYTE( "272d.c2", 0x0000001, 0x800000, CRC(8c1b48d0) SHA1(3F20288ED369E6276CFAEDFF7E9703D4EA1CF6F6) )
+ ROM_LOAD16_BYTE( "272d.c3", 0x1000000, 0x800000, CRC(96ddb28c) SHA1(7EBE5166D279C0D3EFEF65618D015B4EA13F2C49) )
+ ROM_LOAD16_BYTE( "272d.c4", 0x1000001, 0x800000, CRC(99ef7a0a) SHA1(9AC3EF339BC1D6E3482E0B32D40B259EC2B44FC1) )
+ ROM_LOAD16_BYTE( "272d.c5", 0x2000000, 0x800000, CRC(772e8b1e) SHA1(8DE4898BBD8EDE593763BFA93BBF26492492D23A) )
+ ROM_LOAD16_BYTE( "272d.c6", 0x2000001, 0x800000, CRC(5fff21fc) SHA1(5D0A23A41F5277AB09FD11F227BE35F1713A4B4F) )
+ ROM_LOAD16_BYTE( "272d.c7", 0x3000000, 0x800000, CRC(9ac56a0e) SHA1(EA4FFEC3FE2E58DF16B40FDF33E1708680010414) )
+ ROM_LOAD16_BYTE( "272d.c8", 0x3000001, 0x800000, CRC(cfde7aff) SHA1(25185F471DD35E5D388B75B83D8652085CD5E17D) )
+ROM_END
+
+ROM_START( samsh5spnh3 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "272nh3.p1", 0x000000, 0x100000, CRC(4cc4bcae) SHA1(487a6dd8d42e6f80cf43898fc2debeb1007e8be7) )
+ ROM_LOAD16_WORD_SWAP( "272nh3.p2", 0x100000, 0x700000, CRC(7114a210) SHA1(ae1f64a711648141e52ad28c6995e6d42836367c) )
+
+ NEO_SFIX_128K( "272nh3.s1", CRC(36f02588) SHA1(114ed5d6bd396b5c88b463a816035ea4b9e0efc7) )
+
+ NEO_BIOS_AUDIO_128K( "272n.m1", CRC(0b5d4d6a) SHA1(2467e06be986cba8c879412cba0388019892dbb2) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "272n.v1", 0x000000, 0x400000, CRC(4d1b252b) SHA1(e5efe408c337a2ca556e790f0fd917ba44f975e3) )
+ ROM_LOAD( "272n.v2", 0x400000, 0x400000, CRC(0e46d2f8) SHA1(b8b0838124ea29f73f31e08d5cced8797cea75b1) )
+ ROM_LOAD( "272n.v3", 0x800000, 0x400000, CRC(3f0f7554) SHA1(2581e297725f3b950b59e9086ac5569171da6140) )
+ ROM_LOAD( "272n.v4", 0xc00000, 0x400000, CRC(ad8fabb4) SHA1(cebe3b7306e1431ebb99df13bfc2270b1d3ba1ff) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "272d.c1", 0x0000000, 0x800000, CRC(8548097e) SHA1(99177F64039D2914FA4EBD4AFC7EB0FBF4FFE0AF) )
+ ROM_LOAD16_BYTE( "272d.c2", 0x0000001, 0x800000, CRC(8c1b48d0) SHA1(3F20288ED369E6276CFAEDFF7E9703D4EA1CF6F6) )
+ ROM_LOAD16_BYTE( "272d.c3", 0x1000000, 0x800000, CRC(96ddb28c) SHA1(7EBE5166D279C0D3EFEF65618D015B4EA13F2C49) )
+ ROM_LOAD16_BYTE( "272d.c4", 0x1000001, 0x800000, CRC(99ef7a0a) SHA1(9AC3EF339BC1D6E3482E0B32D40B259EC2B44FC1) )
+ ROM_LOAD16_BYTE( "272d.c5", 0x2000000, 0x800000, CRC(772e8b1e) SHA1(8DE4898BBD8EDE593763BFA93BBF26492492D23A) )
+ ROM_LOAD16_BYTE( "272d.c6", 0x2000001, 0x800000, CRC(5fff21fc) SHA1(5D0A23A41F5277AB09FD11F227BE35F1713A4B4F) )
+ ROM_LOAD16_BYTE( "272d.c7", 0x3000000, 0x800000, CRC(9ac56a0e) SHA1(EA4FFEC3FE2E58DF16B40FDF33E1708680010414) )
+ ROM_LOAD16_BYTE( "272d.c8", 0x3000001, 0x800000, CRC(cfde7aff) SHA1(25185F471DD35E5D388B75B83D8652085CD5E17D) )
+ROM_END
+
+ROM_START( samsh5spnzk )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "272nzk.p1", 0x000000, 0x800000, CRC(17be33bf) SHA1(2350b306d6f2a57f0792b9a518c6ed9d55613b83) )
+
+ NEO_SFIX_128K( "272n.s1", CRC(c297f973) SHA1(b31af6b51e7536b538cd7eb3542c631c6327e826) )
+
+ NEO_BIOS_AUDIO_128K( "272n.m1", CRC(0b5d4d6a) SHA1(2467e06be986cba8c879412cba0388019892dbb2) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "272n.v1", 0x000000, 0x400000, CRC(4d1b252b) SHA1(e5efe408c337a2ca556e790f0fd917ba44f975e3) )
+ ROM_LOAD( "272n.v2", 0x400000, 0x400000, CRC(0e46d2f8) SHA1(b8b0838124ea29f73f31e08d5cced8797cea75b1) )
+ ROM_LOAD( "272n.v3", 0x800000, 0x400000, CRC(3f0f7554) SHA1(2581e297725f3b950b59e9086ac5569171da6140) )
+ ROM_LOAD( "272n.v4", 0xc00000, 0x400000, CRC(ad8fabb4) SHA1(cebe3b7306e1431ebb99df13bfc2270b1d3ba1ff) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "272d.c1", 0x0000000, 0x800000, CRC(8548097e) SHA1(99177F64039D2914FA4EBD4AFC7EB0FBF4FFE0AF) )
+ ROM_LOAD16_BYTE( "272d.c2", 0x0000001, 0x800000, CRC(8c1b48d0) SHA1(3F20288ED369E6276CFAEDFF7E9703D4EA1CF6F6) )
+ ROM_LOAD16_BYTE( "272d.c3", 0x1000000, 0x800000, CRC(96ddb28c) SHA1(7EBE5166D279C0D3EFEF65618D015B4EA13F2C49) )
+ ROM_LOAD16_BYTE( "272d.c4", 0x1000001, 0x800000, CRC(99ef7a0a) SHA1(9AC3EF339BC1D6E3482E0B32D40B259EC2B44FC1) )
+ ROM_LOAD16_BYTE( "272d.c5", 0x2000000, 0x800000, CRC(772e8b1e) SHA1(8DE4898BBD8EDE593763BFA93BBF26492492D23A) )
+ ROM_LOAD16_BYTE( "272d.c6", 0x2000001, 0x800000, CRC(5fff21fc) SHA1(5D0A23A41F5277AB09FD11F227BE35F1713A4B4F) )
+ ROM_LOAD16_BYTE( "272d.c7", 0x3000000, 0x800000, CRC(9ac56a0e) SHA1(EA4FFEC3FE2E58DF16B40FDF33E1708680010414) )
+ ROM_LOAD16_BYTE( "272d.c8", 0x3000001, 0x800000, CRC(cfde7aff) SHA1(25185F471DD35E5D388B75B83D8652085CD5E17D) )
+ROM_END
+
+
+
+GAME( 1995, fswordsb1, samsho3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Fighters Swords (Boss Hack v1.0)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, fswordsb2, samsho3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Fighters Swords (Boss Hack v2.0)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, fswordsbf, samsho3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Fighters Swords (Boss Hack v1.0f)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1993, samshob, samsho, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Samurai Shodown (Add Char)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, samshoeh, samsho, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Samurai Shodown (Add Char - Ultra kill start max)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, samshoeh2, samsho, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami and Ydmis", "Samurai Shodown (Add Char - Ultra kill start max - Ultra kill always max)", MACHINE_SUPPORTS_SAVE )
+GAME( 2005, samshos1, samsho, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Samurai Shodown (Special v0.1 2005-09-19)", MACHINE_SUPPORTS_SAVE )
+GAME( 2008, samshozk, samsho, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Zuojie, Kof1996", "Samurai Shodown (Hack by Zuojie, Kof1996 2008-10-23)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1994, samsho2eh, samsho2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Samurai Shodown II (Boss hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, samsho2emb, samsho2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Blackheart", "Samurai Shodown II (Easy Move hack by Blackheart 2009-08-11)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, samsho2hy, samsho2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "Samurai Shodown II (Boss hack by Yashional)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, samsho2mb, samsho2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Blackheart", "Samurai Shodown II (Moves hack by Blackheart 2009-08-03)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, samsho2q, samsho2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Samurai Shodown II (Soul Q Version v1.0)", MACHINE_SUPPORTS_SAVE )
+GAME( 2008, samsho2s2, samsho2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Samurai Shodown II (Special v0.12 2008-08-26)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, samsho2sp, samsho2, samsho2sp, neogeo, neogeo_state, neogeo, ROT0, "GSC2007", "Samurai Shodown II (Special v1.0.0122)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, samsho2sp2, samsho2, samsho2sp, neogeo, neogeo_state, neogeo, ROT0, "GSC2007", "Samurai Shodown II (Special v1.0.0221)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, samsho2sp3, samsho2, samsho2sp, neogeo, neogeo_state, neogeo, ROT0, "GSC2007", "Samurai Shodown II (Special v1.0.0320)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, samsho2sp4, samsho2, samsho2sp, neogeo, neogeo_state, neogeo, ROT0, "GSC2007", "Samurai Shodown II (Special v1.0.0311 2017-03-11)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, samsho2sq, samsho2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Samurai Shodown II (Soul Q version v2.0)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, samsho2ss, samsho2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "Samurai Shodown II Special (Hack by Yashional)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, samsho2yc, samsho2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami and Ydmis", "Samurai Shodown II (Char - Pow hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, samsho2zk, samsho2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Zuojie, Kof1996", "Samurai Shodown II (Hack by Zuojie, Kof1996 2008-10-23)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1995, samsho3eh, samsho3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Samurai Shodown III (Add Char)", MACHINE_SUPPORTS_SAVE )
+GAME( 2010, samsho3hb, samsho3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Samurai Shodown III (hack HB)", MACHINE_SUPPORTS_SAVE )
+GAME( 2008, samsho3s2, samsho3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Samurai Shodown III (Special v0.12 2008-09-01)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, samsho3se, samsho3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami and Ydmis", "Samurai Shodown III (Add Char - Pow hack ABC - Ultra pow hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2005, samsho3ss, samsho3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Samurai Shodown III (Special v0.1 2005-09-19)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, samsho3yc, samsho3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami and Ydmis", "Samurai Shodown III (Add Char - Pow hack ABC)", MACHINE_SUPPORTS_SAVE )
+GAME( 2008, samsho3zk, samsho3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Zuojie, Kof1996", "Samurai Shodown III (Hack by Zuojie, Kof1996 2008-10-23)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1996, samsho4bh, samsho4, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Dodowang", "Samurai Shodown IV (Add Char with Icon)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, samsho4cz, samsho4, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami and Zhangshee", "Samurai Shodown IV (Add Char - Ultra kill start max - Ultra kill always max)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, samsho4eh, samsho4, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Zhangshee", "Samurai Shodown IV (Add Char)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, samsho4es, samsho4, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK2003/PPX Hack Team", "Samurai Shodown IV (Moves rev - v3.8)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, samsho4ev, samsho4, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yumeji", "Samurai Shodown IV Amakusa's Revenge / Samurai Spirits - Amakusa Kourin (Evil Amakusa - Hack by Yumeji)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, samsho4ew, samsho4, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Eddids and Wesker", "Samurai Shodown IV (Add Char with Color corrections P2/P3/P4)", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, samsho4fc, samsho4, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "FCHT", "Samurai Shodown IV (Boss Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, samsho4kw, samsho4, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Fighters Kim and Wesker", "Samurai Shodown IV (Add Char - Ultra pow hack set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, samsho4kz, samsho4, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Fighters Kim and Zhangshee", "Samurai Shodown IV (Add Char - Ultra pow hack set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, samsho4mb, samsho4, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Blackheart", "Samurai Shodown IV (Moves hack by Blackheart 2009-08-05)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, samsho4pm, samsho4, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Pipi899", "Samurai Shodown IV (Power Max hack by Pipi899 2009-06-16)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, samsho4ps, samsho4, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGHT", "Samurai Shodown IV Amakusa's Revenge (Boss Fix Ver 1.00 [EGHT])", MACHINE_SUPPORTS_SAVE )
+GAME( 2008, samsho4s2, samsho4, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Samurai Shodown IV (Special v0.12 2008-09-01)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, samsho4wh, samsho4, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker", "Samurai Shodown IV (Add Char - final edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 2008, samsho4zk, samsho4, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Zuojie, Kof1996", "Samurai Shodown IV (Hack by Zuojie, Kof1996 2008-10-23)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 2003, samsho5ba, samsho5, neogeo_noslot, neogeo, neogeo_hbmame, sam5hb, ROT0, "hack", "Samurai Shodown V (Boss hack alternate set)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, samsho5bd, samsho5, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "Samurai Shodown V (bootleg, fully decrypted)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, samsho5bh, samsho5, neogeo_noslot, neogeo, neogeo_hbmame, sam5hb, ROT0, "Dodowang", "Samurai Shodown V (Boss hack by Dodowang)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, samsho5bs, samsho5, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Samurai Showdown V (Enable Hidden Characters v3.5)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, samsho5ch, samsho5, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Dodowang and Wesker", "Samurai Showdown V (Chinese Language and Boss Hack by Dodowang & Wesker)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, samsho5d, samsho5, neogeo_noslot, neogeo, neogeo_hbmame, sam5hb, ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V (decrypted C)" , MACHINE_SUPPORTS_SAVE )
+GAME( 2003, samsho5d1, samsho5, neogeo_noslot, neogeo, neogeo_hbmame, sam5hb, ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V (NGM-2700)(decrypted C)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, samsho5ge, samsho5, neogeo_noslot, neogeo, neogeo_hbmame, sam5hb, ROT0, "Shiro", "Samurai Shodown V (Genjuro Evil Edition hack by Shiro)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, samsho5hd, samsho5, neogeo_noslot, neogeo, neogeo_hbmame, sam5hb, ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V (NGH-2700)(decrypted C)", MACHINE_SUPPORTS_SAVE )
+GAME( 2008, samsho5s2, samsho5, neogeo_noslot, neogeo, neogeo_hbmame, sam5hb, ROT0, "hack", "Samurai Shodown V (Special v0.12 2008-08-26)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, samsho5x, samsho5, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Samurai Shodown V (XBOX version, hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2008, samsho5zk, samsho5, neogeo_noslot, neogeo, neogeo_hbmame, sam5hb, ROT0, "Zuojie, Kof1996", "Samurai Shodown V (Hack by Zuojie, Kof1996 2008-10-23)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 2004, samsh5spd, samsh5sp, neogeo_noslot, neogeo, neogeo_hbmame, sam5sphb, ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V Special / Samurai Spirits Zero Special (decrypted C)", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, samsh5spd1, samsh5sp, neogeo_noslot, neogeo, neogeo_hbmame, sam5sphb, ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V Special / Samurai Spirits Zero Special (NGM-2720)(decrypted C)", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, samsh5spd2, samsh5sp, neogeo_noslot, neogeo, neogeo_hbmame, sam5sphb, ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Spirits Zero Special / Samurai Showdown V Special (no encrypted P, decrypted C)", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, samsh5sph1, samsh5sp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Samurai Shodown V Special / Samurai Spirits Zero Special (Bloodlust hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, samsh5spha, samsh5sp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker", "Samurai Shodown V Special / Samurai Spirits Zero Special (Final set 1 hack by Wesker)", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, samsh5sphb, samsh5sp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker", "Samurai Shodown V Special / Samurai Spirits Zero Special (Final set 2 hack by Wesker)", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, samsh5sphc, samsh5sp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker", "Samurai Shodown V Special / Samurai Spirits Zero Special (Final set 3 hack by Wesker)", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, samsh5sphd, samsh5sp, neogeo_noslot, neogeo, neogeo_hbmame, sam5sphb, ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V Special / Samurai Spirits Zero Special (NGH-2720)(1st release, censored)(decrypted C)", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, samsh5spn, samsh5sp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Samurai Shodown V Special / Samurai Spirits Zero Special (fully decrypted)", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, samsh5spnd, samsh5sp, neogeo_noslot, neogeo, neogeo_hbmame, sam5sphb, ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V Special / Samurai Spirits Zero Special (NGH-2720)(2nd release, less censored)(decrypted C)", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, samsh5spnh3,samsh5sp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Eddids / Snk2003", "Samurai Shodown V Special / Samurai Spirits Zero Special (Enhanced Blood v3.0 hack by Eddids, Snk2003)", MACHINE_SUPPORTS_SAVE )
+GAME( 2008, samsh5spnzk,samsh5sp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Zuojie / Kof1996", "Samurai Shodown V Special / Samurai Spirits Zero Special (Hack by Zuojie, Kof1996 2008-10-23)", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/ngsengoku.cpp b/docs/release/src/hbmame/drivers/ngsengoku.cpp
new file mode 100644
index 00000000000..013a124fa49
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/ngsengoku.cpp
@@ -0,0 +1,333 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+
+
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, sengo3d )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+
+
+ROM_START( sengokucd )
+ ROM_REGION( 0x120000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "017cd.p1", 0x000000, 0x100000, CRC(89290fa2) SHA1(c546aaf74e823d76e5a9ac592edd098a7cf531ed) )
+ ROM_LOAD16_WORD_SWAP( "017-p2.p2", 0x100000, 0x020000, CRC(3024bbb3) SHA1(88892e1292dd60f35a76f9a22e623d4f0f9693cc) )
+
+ NEO_SFIX_128K( "017-s1.s1", CRC(b246204d) SHA1(73dce64c61fb5bb7e836a8e60f081bb77d80d281) )
+
+ NEO_BIOS_AUDIO_128K( "017-m1.m1", CRC(9b4f34c6) SHA1(7f3a51f47fcbaa598f5c76bc66e2c53c8dfd852d) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "017-v1.v1", 0x000000, 0x100000, CRC(23663295) SHA1(9374a5d9f3de8e6a97c11f07d8b4485ac9d55edb) )
+ ROM_LOAD( "017-v2.v2", 0x100000, 0x100000, CRC(f61e6765) SHA1(1c9b287996947319eb3d288c3d82932cf01039db) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "017-c1.c1", 0x000000, 0x100000, CRC(b4eb82a1) SHA1(79879e2ea78c07d04c88dc9a1ad59604b7a078be) )
+ ROM_LOAD16_BYTE( "017-c2.c2", 0x000001, 0x100000, CRC(d55c550d) SHA1(6110f693aa23710939c04153cf5af26493e4a03f) )
+ ROM_LOAD16_BYTE( "017-c3.c3", 0x200000, 0x100000, CRC(ed51ef65) SHA1(e8a8d86e24454948e51a75c883bc6e4091cbf820) )
+ ROM_LOAD16_BYTE( "017-c4.c4", 0x200001, 0x100000, CRC(f4f3c9cb) SHA1(8faafa89dbd0345218f71f891419d2e4e7578200) )
+ROM_END
+
+
+ROM_START( sengoku3b ) /* Sengoku 3 - Hack by Ydmis - (Can choose Byakki and Okuni) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "261b.p1", 0x100000, 0x100000, CRC(66553650) SHA1(f235681d394c6526e9c61f5321a80287240ef61f) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "261d.m1", CRC(36ed9cdd) SHA1(78a7d755e9e9f52255ac6228d9d402fd6a02c126) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "261-v1.v1", 0x000000, 0x400000, CRC(64c30081) SHA1(f9ebd20cf59b72e864b7274c1bdb6d99ecaf4595) )
+ ROM_LOAD( "261-v2.v2", 0x400000, 0x400000, CRC(392a9c47) SHA1(7ab90a54089236ca6c3ef1af8e566a8025d38159) )
+ ROM_LOAD( "261-v3.v3", 0x800000, 0x400000, CRC(c1a7ebe3) SHA1(1d7bb481451f5ee0457e954bb5210300182c3c9c) )
+ ROM_LOAD( "261-v4.v4", 0xc00000, 0x200000, CRC(9000d085) SHA1(11157b355ab4eb6627e9f322ed875332d3d77349) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "261-c1.c1", 0x0000000, 0x800000, CRC(ded84d9c) SHA1(d960523b813d4fae06d716298d4e431a5c77a0c5) )
+ ROM_LOAD16_BYTE( "261-c2.c2", 0x0000001, 0x800000, CRC(b8eb4348) SHA1(619d24312549932959481fa58f43f11c048e1ca5) )
+ ROM_LOAD16_BYTE( "261-c3.c3", 0x1000000, 0x800000, CRC(84e2034a) SHA1(38ec4ae4b86933a25c9a03799b8cade4b1346401) )
+ ROM_LOAD16_BYTE( "261-c4.c4", 0x1000001, 0x800000, CRC(0b45ae53) SHA1(a19fb21408ab633aee8bbf38bf43b5e26766b355) )
+ROM_END
+
+ROM_START( sengoku3c ) /* Sengoku 3 - Colour fix by UNKNOWN - (Character colour change - can choose Byakki and Okuni) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "261c.p1", 0x000000, 0x200000, CRC(62abbf93) SHA1(f990263265f6dd742d3bd20587affbb056e222a9) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "261d.m1", CRC(36ed9cdd) SHA1(78a7d755e9e9f52255ac6228d9d402fd6a02c126) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "261-v1.v1", 0x000000, 0x400000, CRC(64c30081) SHA1(f9ebd20cf59b72e864b7274c1bdb6d99ecaf4595) )
+ ROM_LOAD( "261-v2.v2", 0x400000, 0x400000, CRC(392a9c47) SHA1(7ab90a54089236ca6c3ef1af8e566a8025d38159) )
+ ROM_LOAD( "261-v3.v3", 0x800000, 0x400000, CRC(c1a7ebe3) SHA1(1d7bb481451f5ee0457e954bb5210300182c3c9c) )
+ ROM_LOAD( "261-v4.v4", 0xc00000, 0x200000, CRC(9000d085) SHA1(11157b355ab4eb6627e9f322ed875332d3d77349) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "261-c1.c1", 0x0000000, 0x800000, CRC(ded84d9c) SHA1(d960523b813d4fae06d716298d4e431a5c77a0c5) )
+ ROM_LOAD16_BYTE( "261-c2.c2", 0x0000001, 0x800000, CRC(b8eb4348) SHA1(619d24312549932959481fa58f43f11c048e1ca5) )
+ ROM_LOAD16_BYTE( "261-c3.c3", 0x1000000, 0x800000, CRC(84e2034a) SHA1(38ec4ae4b86933a25c9a03799b8cade4b1346401) )
+ ROM_LOAD16_BYTE( "261-c4.c4", 0x1000001, 0x800000, CRC(0b45ae53) SHA1(a19fb21408ab633aee8bbf38bf43b5e26766b355) )
+ROM_END
+
+ROM_START( sengoku3d )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "261-ph1.p1", 0x100000, 0x100000, CRC(e0d4bc0a) SHA1(8df366097f224771ca6d1aa5c1691cd46776cd12) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "261d.m1", CRC(36ed9cdd) SHA1(78a7d755e9e9f52255ac6228d9d402fd6a02c126) )
+
+ ROM_REGION( 0xE00000, "ymsnd", 0 )
+ ROM_LOAD( "261-v1.v1", 0x000000, 0x400000, CRC(64c30081) SHA1(f9ebd20cf59b72e864b7274c1bdb6d99ecaf4595) )
+ ROM_LOAD( "261-v2.v2", 0x400000, 0x400000, CRC(392a9c47) SHA1(7ab90a54089236ca6c3ef1af8e566a8025d38159) )
+ ROM_LOAD( "261-v3.v3", 0x800000, 0x400000, CRC(c1a7ebe3) SHA1(1d7bb481451f5ee0457e954bb5210300182c3c9c) )
+ ROM_LOAD( "261-v4.v4", 0xc00000, 0x200000, CRC(9000d085) SHA1(11157b355ab4eb6627e9f322ed875332d3d77349) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "261d.c1", 0x0000000, 0x800000, CRC(9af7cbca) SHA1(cf2fe3e5265861369f2878140ef33a6715b031aa) )
+ ROM_LOAD16_BYTE( "261d.c2", 0x0000001, 0x800000, CRC(2a1f874d) SHA1(26923ec0bedba56f25e6222aa107b45ccb3def7b) )
+ ROM_LOAD16_BYTE( "261d.c3", 0x1000000, 0x800000, CRC(5403adb5) SHA1(5614ee892e810dc49758f5985b3dc4f227e01b56) )
+ ROM_LOAD16_BYTE( "261d.c4", 0x1000001, 0x800000, CRC(18926df6) SHA1(a4859c9166ef7abec1f3e6af3292051a63a81f93) )
+ROM_END
+
+ROM_START( sengoku3eb ) // sgk3eb
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "261eb.p1", 0x100000, 0x100000, CRC(a77a0dc7) SHA1(a78885d1d121583c7733a868f6140babc4ba5544) )
+ ROM_IGNORE(0x100000)
+ ROM_CONTINUE(0x000000, 0x100000)
+ ROM_IGNORE(0x154f48)
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_512K( "261-m1.m1", CRC(7d501c39) SHA1(8e6bcc428f5ac7532d9c9be7e07ad0821461a080) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "261-v1.v1", 0x000000, 0x400000, CRC(64c30081) SHA1(f9ebd20cf59b72e864b7274c1bdb6d99ecaf4595) )
+ ROM_LOAD( "261-v2.v2", 0x400000, 0x400000, CRC(392a9c47) SHA1(7ab90a54089236ca6c3ef1af8e566a8025d38159) )
+ ROM_LOAD( "261-v3.v3", 0x800000, 0x400000, CRC(c1a7ebe3) SHA1(1d7bb481451f5ee0457e954bb5210300182c3c9c) )
+ ROM_LOAD( "261-v4.v4", 0xc00000, 0x200000, CRC(9000d085) SHA1(11157b355ab4eb6627e9f322ed875332d3d77349) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "261-c1.c1", 0x0000000, 0x800000, CRC(ded84d9c) SHA1(d960523b813d4fae06d716298d4e431a5c77a0c5) )
+ ROM_LOAD16_BYTE( "261-c2.c2", 0x0000001, 0x800000, CRC(b8eb4348) SHA1(619d24312549932959481fa58f43f11c048e1ca5) )
+ ROM_LOAD16_BYTE( "261-c3.c3", 0x1000000, 0x800000, CRC(84e2034a) SHA1(38ec4ae4b86933a25c9a03799b8cade4b1346401) )
+ ROM_LOAD16_BYTE( "261-c4.c4", 0x1000001, 0x800000, CRC(0b45ae53) SHA1(a19fb21408ab633aee8bbf38bf43b5e26766b355) )
+ROM_END
+
+ROM_START( sengoku3eh )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "261eh.p1", 0x000000, 0x200000, CRC(b0ce4444) SHA1(c1b46daf677bfbf61b2fe8e5449f9ccba231b59a) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "261d.m1", CRC(36ed9cdd) SHA1(78a7d755e9e9f52255ac6228d9d402fd6a02c126) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "261-v1.v1", 0x000000, 0x400000, CRC(64c30081) SHA1(f9ebd20cf59b72e864b7274c1bdb6d99ecaf4595) )
+ ROM_LOAD( "261-v2.v2", 0x400000, 0x400000, CRC(392a9c47) SHA1(7ab90a54089236ca6c3ef1af8e566a8025d38159) )
+ ROM_LOAD( "261-v3.v3", 0x800000, 0x400000, CRC(c1a7ebe3) SHA1(1d7bb481451f5ee0457e954bb5210300182c3c9c) )
+ ROM_LOAD( "261-v4.v4", 0xc00000, 0x200000, CRC(9000d085) SHA1(11157b355ab4eb6627e9f322ed875332d3d77349) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "261-c1.c1", 0x0000000, 0x800000, CRC(ded84d9c) SHA1(d960523b813d4fae06d716298d4e431a5c77a0c5) )
+ ROM_LOAD16_BYTE( "261-c2.c2", 0x0000001, 0x800000, CRC(b8eb4348) SHA1(619d24312549932959481fa58f43f11c048e1ca5) )
+ ROM_LOAD16_BYTE( "261-c3.c3", 0x1000000, 0x800000, CRC(84e2034a) SHA1(38ec4ae4b86933a25c9a03799b8cade4b1346401) )
+ ROM_LOAD16_BYTE( "261-c4.c4", 0x1000001, 0x800000, CRC(0b45ae53) SHA1(a19fb21408ab633aee8bbf38bf43b5e26766b355) )
+ROM_END
+
+ROM_START( sengoku3ha ) /* Sengoku 3 - Hack by HappyAse - (Can choose Byakki and Okuni - can directly choose USA and Brazil stage) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "261ha.p1", 0x000000, 0x200000, CRC(ff392440) SHA1(01184f9edc786d0b83a3afe83e53b9834d54a98d) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "261d.m1", CRC(36ed9cdd) SHA1(78a7d755e9e9f52255ac6228d9d402fd6a02c126) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "261-v1.v1", 0x000000, 0x400000, CRC(64c30081) SHA1(f9ebd20cf59b72e864b7274c1bdb6d99ecaf4595) )
+ ROM_LOAD( "261-v2.v2", 0x400000, 0x400000, CRC(392a9c47) SHA1(7ab90a54089236ca6c3ef1af8e566a8025d38159) )
+ ROM_LOAD( "261-v3.v3", 0x800000, 0x400000, CRC(c1a7ebe3) SHA1(1d7bb481451f5ee0457e954bb5210300182c3c9c) )
+ ROM_LOAD( "261-v4.v4", 0xc00000, 0x200000, CRC(9000d085) SHA1(11157b355ab4eb6627e9f322ed875332d3d77349) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "261-c1.c1", 0x0000000, 0x800000, CRC(ded84d9c) SHA1(d960523b813d4fae06d716298d4e431a5c77a0c5) )
+ ROM_LOAD16_BYTE( "261-c2.c2", 0x0000001, 0x800000, CRC(b8eb4348) SHA1(619d24312549932959481fa58f43f11c048e1ca5) )
+ ROM_LOAD16_BYTE( "261-c3.c3", 0x1000000, 0x800000, CRC(84e2034a) SHA1(38ec4ae4b86933a25c9a03799b8cade4b1346401) )
+ ROM_LOAD16_BYTE( "261-c4.c4", 0x1000001, 0x800000, CRC(0b45ae53) SHA1(a19fb21408ab633aee8bbf38bf43b5e26766b355) )
+ROM_END
+
+ROM_START( sengoku3k ) /* Sengoku 3 - Enhance by KrysoFun - (Can choose Byakki and Okuni - power hack) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "261k.p1", 0x100000, 0x100000, CRC(ff0ab4f5) SHA1(581184174074333d7e94cbda1f5d6b3f4aec452c) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "261d.m1", CRC(36ed9cdd) SHA1(78a7d755e9e9f52255ac6228d9d402fd6a02c126) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "261-v1.v1", 0x000000, 0x400000, CRC(64c30081) SHA1(f9ebd20cf59b72e864b7274c1bdb6d99ecaf4595) )
+ ROM_LOAD( "261-v2.v2", 0x400000, 0x400000, CRC(392a9c47) SHA1(7ab90a54089236ca6c3ef1af8e566a8025d38159) )
+ ROM_LOAD( "261-v3.v3", 0x800000, 0x400000, CRC(c1a7ebe3) SHA1(1d7bb481451f5ee0457e954bb5210300182c3c9c) )
+ ROM_LOAD( "261-v4.v4", 0xc00000, 0x200000, CRC(9000d085) SHA1(11157b355ab4eb6627e9f322ed875332d3d77349) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "261-c1.c1", 0x0000000, 0x800000, CRC(ded84d9c) SHA1(d960523b813d4fae06d716298d4e431a5c77a0c5) )
+ ROM_LOAD16_BYTE( "261-c2.c2", 0x0000001, 0x800000, CRC(b8eb4348) SHA1(619d24312549932959481fa58f43f11c048e1ca5) )
+ ROM_LOAD16_BYTE( "261-c3.c3", 0x1000000, 0x800000, CRC(84e2034a) SHA1(38ec4ae4b86933a25c9a03799b8cade4b1346401) )
+ ROM_LOAD16_BYTE( "261-c4.c4", 0x1000001, 0x800000, CRC(0b45ae53) SHA1(a19fb21408ab633aee8bbf38bf43b5e26766b355) )
+ROM_END
+
+ROM_START( sengoku3kc ) /* Sengoku 3 - Colour fix by Fighters Kim - (Character colour change - 80%) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "261kc.p1", 0x100000, 0x100000, CRC(78a02b04) SHA1(d3634471cc12dd77a53d97405bb972ebc46ef513) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "261d.m1", CRC(36ed9cdd) SHA1(78a7d755e9e9f52255ac6228d9d402fd6a02c126) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "261-v1.v1", 0x000000, 0x400000, CRC(64c30081) SHA1(f9ebd20cf59b72e864b7274c1bdb6d99ecaf4595) )
+ ROM_LOAD( "261-v2.v2", 0x400000, 0x400000, CRC(392a9c47) SHA1(7ab90a54089236ca6c3ef1af8e566a8025d38159) )
+ ROM_LOAD( "261-v3.v3", 0x800000, 0x400000, CRC(c1a7ebe3) SHA1(1d7bb481451f5ee0457e954bb5210300182c3c9c) )
+ ROM_LOAD( "261-v4.v4", 0xc00000, 0x200000, CRC(9000d085) SHA1(11157b355ab4eb6627e9f322ed875332d3d77349) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "261-c1.c1", 0x0000000, 0x800000, CRC(ded84d9c) SHA1(d960523b813d4fae06d716298d4e431a5c77a0c5) )
+ ROM_LOAD16_BYTE( "261-c2.c2", 0x0000001, 0x800000, CRC(b8eb4348) SHA1(619d24312549932959481fa58f43f11c048e1ca5) )
+ ROM_LOAD16_BYTE( "261-c3.c3", 0x1000000, 0x800000, CRC(84e2034a) SHA1(38ec4ae4b86933a25c9a03799b8cade4b1346401) )
+ ROM_LOAD16_BYTE( "261-c4.c4", 0x1000001, 0x800000, CRC(0b45ae53) SHA1(a19fb21408ab633aee8bbf38bf43b5e26766b355) )
+ROM_END
+
+ROM_START( sengoku3p )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "261p.p1", 0x000000, 0x200000, CRC(2997b5ef) SHA1(86b9509eba939528aa0744ad8742cedfaf66b02e) )
+
+ NEO_SFIX_128K( "261s.s1", CRC(c1e27cc7) SHA1(7d38319f517059f60287a8ce393a4901719db8a9) )
+
+ NEO_BIOS_AUDIO_128K( "261d.m1", CRC(36ed9cdd) SHA1(78a7d755e9e9f52255ac6228d9d402fd6a02c126) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "261-v1.v1", 0x000000, 0x400000, CRC(64c30081) SHA1(f9ebd20cf59b72e864b7274c1bdb6d99ecaf4595) )
+ ROM_LOAD( "261-v2.v2", 0x400000, 0x400000, CRC(392a9c47) SHA1(7ab90a54089236ca6c3ef1af8e566a8025d38159) )
+ ROM_LOAD( "261-v3.v3", 0x800000, 0x400000, CRC(c1a7ebe3) SHA1(1d7bb481451f5ee0457e954bb5210300182c3c9c) )
+ ROM_LOAD( "261-v4.v4", 0xc00000, 0x200000, CRC(9000d085) SHA1(11157b355ab4eb6627e9f322ed875332d3d77349) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "261d.c1", 0x0000000, 0x800000, CRC(9af7cbca) SHA1(cf2fe3e5265861369f2878140ef33a6715b031aa) )
+ ROM_LOAD16_BYTE( "261d.c2", 0x0000001, 0x800000, CRC(2a1f874d) SHA1(26923ec0bedba56f25e6222aa107b45ccb3def7b) )
+ ROM_LOAD16_BYTE( "261d.c3", 0x1000000, 0x800000, CRC(5403adb5) SHA1(5614ee892e810dc49758f5985b3dc4f227e01b56) )
+ ROM_LOAD16_BYTE( "261d.c4", 0x1000001, 0x800000, CRC(18926df6) SHA1(a4859c9166ef7abec1f3e6af3292051a63a81f93) )
+ROM_END
+
+ROM_START( sengoku3pl )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "261pl.p1", 0x100000, 0x100000, CRC(87a65e84) SHA1(0475d81c1fb4e4df7a3773522aa2958fd550e8ad) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "261d.m1", CRC(36ed9cdd) SHA1(78a7d755e9e9f52255ac6228d9d402fd6a02c126) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "261-v1.v1", 0x000000, 0x400000, CRC(64c30081) SHA1(f9ebd20cf59b72e864b7274c1bdb6d99ecaf4595) )
+ ROM_LOAD( "261-v2.v2", 0x400000, 0x400000, CRC(392a9c47) SHA1(7ab90a54089236ca6c3ef1af8e566a8025d38159) )
+ ROM_LOAD( "261-v3.v3", 0x800000, 0x400000, CRC(c1a7ebe3) SHA1(1d7bb481451f5ee0457e954bb5210300182c3c9c) )
+ ROM_LOAD( "261-v4.v4", 0xc00000, 0x200000, CRC(9000d085) SHA1(11157b355ab4eb6627e9f322ed875332d3d77349) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "261d.c1", 0x0000000, 0x800000, CRC(9af7cbca) SHA1(cf2fe3e5265861369f2878140ef33a6715b031aa) )
+ ROM_LOAD16_BYTE( "261d.c2", 0x0000001, 0x800000, CRC(2a1f874d) SHA1(26923ec0bedba56f25e6222aa107b45ccb3def7b) )
+ ROM_LOAD16_BYTE( "261d.c3", 0x1000000, 0x800000, CRC(5403adb5) SHA1(5614ee892e810dc49758f5985b3dc4f227e01b56) )
+ ROM_LOAD16_BYTE( "261d.c4", 0x1000001, 0x800000, CRC(18926df6) SHA1(a4859c9166ef7abec1f3e6af3292051a63a81f93) )
+ROM_END
+
+ROM_START( sengoku3s )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "261s.p1", 0x000000, 0x200000, CRC(5a1b5e85) SHA1(239617385b40ae6a86f737195ec6017171157bef) )
+
+ NEO_SFIX_128K( "261s.s1", CRC(c1e27cc7) SHA1(7d38319f517059f60287a8ce393a4901719db8a9) )
+
+ NEO_BIOS_AUDIO_128K( "261d.m1", CRC(36ed9cdd) SHA1(78a7d755e9e9f52255ac6228d9d402fd6a02c126) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "261-v1.v1", 0x000000, 0x400000, CRC(64c30081) SHA1(f9ebd20cf59b72e864b7274c1bdb6d99ecaf4595) )
+ ROM_LOAD( "261-v2.v2", 0x400000, 0x400000, CRC(392a9c47) SHA1(7ab90a54089236ca6c3ef1af8e566a8025d38159) )
+ ROM_LOAD( "261-v3.v3", 0x800000, 0x400000, CRC(c1a7ebe3) SHA1(1d7bb481451f5ee0457e954bb5210300182c3c9c) )
+ ROM_LOAD( "261-v4.v4", 0xc00000, 0x200000, CRC(9000d085) SHA1(11157b355ab4eb6627e9f322ed875332d3d77349) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "261d.c1", 0x0000000, 0x800000, CRC(9af7cbca) SHA1(cf2fe3e5265861369f2878140ef33a6715b031aa) )
+ ROM_LOAD16_BYTE( "261d.c2", 0x0000001, 0x800000, CRC(2a1f874d) SHA1(26923ec0bedba56f25e6222aa107b45ccb3def7b) )
+ ROM_LOAD16_BYTE( "261d.c3", 0x1000000, 0x800000, CRC(5403adb5) SHA1(5614ee892e810dc49758f5985b3dc4f227e01b56) )
+ ROM_LOAD16_BYTE( "261d.c4", 0x1000001, 0x800000, CRC(18926df6) SHA1(a4859c9166ef7abec1f3e6af3292051a63a81f93) )
+ROM_END
+
+ROM_START( sengoku3ya ) /* Sengoku 3 - Enhance by KrysFun and Ydmis - (Can choose Byakki and Okuni - power hack)? */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "261yka.p1", 0x100000, 0x100000, CRC(dea384f6) SHA1(2adf0f2aa1605710e37f13eb8e4588645ae7f8c2) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "261d.m1", CRC(36ed9cdd) SHA1(78a7d755e9e9f52255ac6228d9d402fd6a02c126) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "261-v1.v1", 0x000000, 0x400000, CRC(64c30081) SHA1(f9ebd20cf59b72e864b7274c1bdb6d99ecaf4595) )
+ ROM_LOAD( "261-v2.v2", 0x400000, 0x400000, CRC(392a9c47) SHA1(7ab90a54089236ca6c3ef1af8e566a8025d38159) )
+ ROM_LOAD( "261-v3.v3", 0x800000, 0x400000, CRC(c1a7ebe3) SHA1(1d7bb481451f5ee0457e954bb5210300182c3c9c) )
+ ROM_LOAD( "261-v4.v4", 0xc00000, 0x200000, CRC(9000d085) SHA1(11157b355ab4eb6627e9f322ed875332d3d77349) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "261-c1.c1", 0x0000000, 0x800000, CRC(ded84d9c) SHA1(d960523b813d4fae06d716298d4e431a5c77a0c5) )
+ ROM_LOAD16_BYTE( "261-c2.c2", 0x0000001, 0x800000, CRC(b8eb4348) SHA1(619d24312549932959481fa58f43f11c048e1ca5) )
+ ROM_LOAD16_BYTE( "261-c3.c3", 0x1000000, 0x800000, CRC(84e2034a) SHA1(38ec4ae4b86933a25c9a03799b8cade4b1346401) )
+ ROM_LOAD16_BYTE( "261-c4.c4", 0x1000001, 0x800000, CRC(0b45ae53) SHA1(a19fb21408ab633aee8bbf38bf43b5e26766b355) )
+ROM_END
+
+ROM_START( sengoku3yk ) /* Sengoku 3 - Enhance by KrysFun and Ydmis - (Can choose Byakki and Okuni - power hack) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "261yk.p1", 0x100000, 0x100000, CRC(51bf63b9) SHA1(36aa9f86e7cd08286983f3a1139c642714fd049e) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "261d.m1", CRC(36ed9cdd) SHA1(78a7d755e9e9f52255ac6228d9d402fd6a02c126) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "261-v1.v1", 0x000000, 0x400000, CRC(64c30081) SHA1(f9ebd20cf59b72e864b7274c1bdb6d99ecaf4595) )
+ ROM_LOAD( "261-v2.v2", 0x400000, 0x400000, CRC(392a9c47) SHA1(7ab90a54089236ca6c3ef1af8e566a8025d38159) )
+ ROM_LOAD( "261-v3.v3", 0x800000, 0x400000, CRC(c1a7ebe3) SHA1(1d7bb481451f5ee0457e954bb5210300182c3c9c) )
+ ROM_LOAD( "261-v4.v4", 0xc00000, 0x200000, CRC(9000d085) SHA1(11157b355ab4eb6627e9f322ed875332d3d77349) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "261-c1.c1", 0x0000000, 0x800000, CRC(ded84d9c) SHA1(d960523b813d4fae06d716298d4e431a5c77a0c5) )
+ ROM_LOAD16_BYTE( "261-c2.c2", 0x0000001, 0x800000, CRC(b8eb4348) SHA1(619d24312549932959481fa58f43f11c048e1ca5) )
+ ROM_LOAD16_BYTE( "261-c3.c3", 0x1000000, 0x800000, CRC(84e2034a) SHA1(38ec4ae4b86933a25c9a03799b8cade4b1346401) )
+ ROM_LOAD16_BYTE( "261-c4.c4", 0x1000001, 0x800000, CRC(0b45ae53) SHA1(a19fb21408ab633aee8bbf38bf43b5e26766b355) )
+ROM_END
+
+
+
+GAME( 2007, sengokucd, sengoku, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Sengoku (CD conversion)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, sengoku3b, sengoku3, neogeo_noslot, neogeo, neogeo_noslot_state, sengoku3, ROT0, "Ydmis", "Sengoku 3 (Add Char)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, sengoku3c, sengoku3, neogeo_noslot, neogeo, neogeo_noslot_state, sengoku3, ROT0, "Unk", "Sengoku 3 (Add Char - Char color changed)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, sengoku3d, sengoku3, neogeo_noslot, neogeo, neogeo_hbmame, cmc42sfix, ROT0, "SNK", "Sengoku 3 (decrypted C)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, sengoku3eb, sengoku3, neogeo_noslot, neogeo, neogeo_noslot_state, sengoku3, ROT0, "hack", "Sengoku 3 (hack eb)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, sengoku3eh, sengoku3, neogeo_noslot, neogeo, neogeo_noslot_state, sengoku3, ROT0, "hack", "Sengoku 3 (Evolution Special hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, sengoku3ha, sengoku3, neogeo_noslot, neogeo, neogeo_noslot_state, sengoku3, ROT0, "HappyAsr","Sengoku 3 (Add Char - Select USA and Brazil)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, sengoku3k, sengoku3, neogeo_noslot, neogeo, neogeo_noslot_state, sengoku3, ROT0, "KrysoFun", "Sengoku 3 (Add Char - Pow hack set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, sengoku3kc, sengoku3, neogeo_noslot, neogeo, neogeo_noslot_state, sengoku3, ROT0, "Fighters Kim", "Sengoku 3 (Char color changed - 80%)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, sengoku3p, sengoku3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Krysofun", "Sengoku 3/Sengoku legends 2001 EX Super Version", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, sengoku3pl, sengoku3, neogeo_noslot, neogeo, neogeo_hbmame, sengo3d, ROT0, "Player-X", "Sengoku 3 / Sengoku Densho 2001 Plus (Hack by Player-X)" , MACHINE_SUPPORTS_SAVE )
+GAME( 2001, sengoku3s, sengoku3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Sjx", "Sengoku 3 (Evolution v1.0 hack by Sjx (FCHT))", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, sengoku3ya, sengoku3, neogeo_noslot, neogeo, neogeo_noslot_state, sengoku3, ROT0, "KrysoFun and Ydmis","Sengoku 3 (Add Char - Pow hack set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, sengoku3yk, sengoku3, neogeo_noslot, neogeo, neogeo_noslot_state, sengoku3, ROT0, "KrysoFun and Ydmis","Sengoku 3 (Add Char - Pow hack set 1)", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/ngsvc.cpp b/docs/release/src/hbmame/drivers/ngsvc.cpp
new file mode 100644
index 00000000000..236cc89e450
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/ngsvc.cpp
@@ -0,0 +1,795 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+// SVCCHAOS SNK vs Capcom
+
+
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, svchb )
+{
+ DRIVER_INIT_CALL(neogeo);
+ // This is needed if s1 size > 0x20000, ignored otherwise
+ m_sprgen->m_fixed_layer_bank_type = 2;
+
+ // decrypt p roms if needed
+ u8 *ram = memregion("maincpu")->base();
+ if (ram[0x100] != 0x45)
+ {
+ //printf("Maincpu=%X\n",ram[0x100]);fflush(stdout);
+ m_pvc_prot->svc_px_decrypt(cpuregion, cpuregion_size);
+ m_pvc_prot->install_pvc_protection(m_maincpu, m_banked_cart);
+ }
+
+ // decrypt m1 if needed
+ if (memregion("audiocrypt"))
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size);
+
+ // decrypt v roms if needed
+ ram = memregion("ymsnd")->base();
+ if (ram[0x91] != 0x33)
+ {
+ //printf("ym=%X\n",ram[0x91]);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 3);
+ }
+
+ // decrypt c roms if needed
+ ram = memregion("sprites")->base();
+ if (ram[0] != 0)
+ {
+ //printf("Sprites=%X\n",ram[0]);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, SVC_GFX_KEY);
+ }
+
+ // if no s rom, copy info from end of c roms
+ ram = memregion("fixed")->base();
+ if (ram[0x100] == 0)
+ {
+ //printf("Fixed1=%X\n",ram[0x100]);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+ }
+
+ // decrypt s1 if needed
+ if (ram[0x100] != 0xBB)
+ {
+ //printf("Fixed2=%X\n",ram[0]);
+ m_sma_prot->svcpcb_s1data_decrypt(fix_region, fix_region_size);
+ }
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, svcpcd )
+{
+ DRIVER_INIT_CALL(svchb);
+ install_banked_bios();
+}
+
+
+
+ROM_START( svccprw )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269cprw.p1", 0x000000, 0x600000, CRC(55aab0ae) SHA1(2d5a7fbe0239ab79d437158987d8fb3123469d53) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "269-m1.m1", CRC(f6819d00) SHA1(d3bbe09df502464f104e53501708ac6e2c1832c6) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269-v1.v1", 0x000000, 0x800000, CRC(c659b34c) SHA1(1931e8111ef43946f68699f8707334c96f753a1e) )
+ ROM_LOAD( "269-v2.v2", 0x800000, 0x800000, CRC(dd903835) SHA1(e58d38950a7a8697bb22a1cc7a371ae6664ae8f9) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269-c1r.c1", 0x0000000, 0x800000, CRC(887b4068) SHA1(227cdcf7a10a415f1e3afe7ae97acc9afc2cc8e1) )
+ ROM_LOAD16_BYTE( "269-c2r.c2", 0x0000001, 0x800000, CRC(4e8903e4) SHA1(31daaa4fd6c23e8f0a8428931c513d97d2eee1bd) )
+ ROM_LOAD16_BYTE( "269-c3r.c3", 0x1000000, 0x800000, CRC(7d9c55b0) SHA1(1f94a948b3e3c31b3ff05518ef525031a3cb2c62) )
+ ROM_LOAD16_BYTE( "269-c4r.c4", 0x1000001, 0x800000, CRC(8acb5bb6) SHA1(2c27d6e309646d7b84da85f78c06e4aaa74e844b) )
+ ROM_LOAD16_BYTE( "269-c5r.c5", 0x2000000, 0x800000, CRC(097a4157) SHA1(54d839f55d27f68c704a94ea3c63c644ffc22ca4) )
+ ROM_LOAD16_BYTE( "269-c6r.c6", 0x2000001, 0x800000, CRC(e19df344) SHA1(20448add53ab25dd3a8f0b681131ad3b9c68acc9) )
+ ROM_LOAD16_BYTE( "269-c7r.c7", 0x3000000, 0x800000, CRC(d8f0340b) SHA1(43114af7557361a8903bb8cf8553f602946a9220) )
+ ROM_LOAD16_BYTE( "269-c8r.c8", 0x3000001, 0x800000, CRC(2570b71b) SHA1(99266e1c2ffcf324793fb5c55325fbc7e6265ac0) )
+ROM_END
+
+ROM_START( svcd )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD32_WORD_SWAP( "269-p1.p1", 0x000000, 0x400000, CRC(38e2005e) SHA1(1b902905916a30969282f1399a756e32ff069097) )
+ ROM_LOAD32_WORD_SWAP( "269-p2.p2", 0x000002, 0x400000, CRC(6d13797c) SHA1(3cb71a95cea6b006b44cac0f547df88aec0007b7) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_128K( "269d.m1", CRC(447b3123) SHA1(a09adc2c0ee2ee0f01287ceb97474a1a58093bd2) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269-v1.v1", 0x000000, 0x800000, CRC(c659b34c) SHA1(1931e8111ef43946f68699f8707334c96f753a1e) )
+ ROM_LOAD( "269-v2.v2", 0x800000, 0x800000, CRC(dd903835) SHA1(e58d38950a7a8697bb22a1cc7a371ae6664ae8f9) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcd1 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD32_WORD_SWAP( "269-p1.p1", 0x000000, 0x400000, CRC(38e2005e) SHA1(1b902905916a30969282f1399a756e32ff069097) )
+ ROM_LOAD32_WORD_SWAP( "269-p2.p2", 0x000002, 0x400000, CRC(6d13797c) SHA1(3cb71a95cea6b006b44cac0f547df88aec0007b7) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "269-m1.m1", CRC(f6819d00) SHA1(d3bbe09df502464f104e53501708ac6e2c1832c6) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269-v1.v1", 0x000000, 0x800000, CRC(c659b34c) SHA1(1931e8111ef43946f68699f8707334c96f753a1e) )
+ ROM_LOAD( "269-v2.v2", 0x800000, 0x800000, CRC(dd903835) SHA1(e58d38950a7a8697bb22a1cc7a371ae6664ae8f9) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d1.c7", 0x3000000, 0x800000, CRC(5595b6cc) SHA1(9d6cc70f435401355b885475ccc3864825887656) )
+ ROM_LOAD16_BYTE( "269d1.c8", 0x3000001, 0x800000, CRC(b17dfcf9) SHA1(46af296b12831ee40355f52d2c316f609557d6df) )
+ROM_END
+
+ROM_START( svcee )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD32_WORD_SWAP( "269ee.p1", 0x000000, 0x400000, CRC(e622f65c) SHA1(83119c9d8059cf42e5d04dd6f65b6664e356374e) )
+ ROM_LOAD32_WORD_SWAP( "269-p2.p2", 0x000002, 0x400000, CRC(6d13797c) SHA1(3cb71a95cea6b006b44cac0f547df88aec0007b7) )
+
+ NEO_SFIX_128K( "269spjoy.s1", CRC(aaef740c) SHA1(d7ae898ac93f78b19b125e98659dcfd9ee3179b2) )
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "269-m1.m1", CRC(f6819d00) SHA1(d3bbe09df502464f104e53501708ac6e2c1832c6) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269-v1.v1", 0x000000, 0x800000, CRC(c659b34c) SHA1(1931e8111ef43946f68699f8707334c96f753a1e) )
+ ROM_LOAD( "269-v2.v2", 0x800000, 0x800000, CRC(dd903835) SHA1(e58d38950a7a8697bb22a1cc7a371ae6664ae8f9) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269-c1r.c1", 0x0000000, 0x800000, CRC(887b4068) SHA1(227cdcf7a10a415f1e3afe7ae97acc9afc2cc8e1) )
+ ROM_LOAD16_BYTE( "269-c2r.c2", 0x0000001, 0x800000, CRC(4e8903e4) SHA1(31daaa4fd6c23e8f0a8428931c513d97d2eee1bd) )
+ ROM_LOAD16_BYTE( "269-c3r.c3", 0x1000000, 0x800000, CRC(7d9c55b0) SHA1(1f94a948b3e3c31b3ff05518ef525031a3cb2c62) )
+ ROM_LOAD16_BYTE( "269-c4r.c4", 0x1000001, 0x800000, CRC(8acb5bb6) SHA1(2c27d6e309646d7b84da85f78c06e4aaa74e844b) )
+ ROM_LOAD16_BYTE( "269-c5r.c5", 0x2000000, 0x800000, CRC(097a4157) SHA1(54d839f55d27f68c704a94ea3c63c644ffc22ca4) )
+ ROM_LOAD16_BYTE( "269-c6r.c6", 0x2000001, 0x800000, CRC(e19df344) SHA1(20448add53ab25dd3a8f0b681131ad3b9c68acc9) )
+ ROM_LOAD16_BYTE( "269-c7r.c7", 0x3000000, 0x800000, CRC(d8f0340b) SHA1(43114af7557361a8903bb8cf8553f602946a9220) )
+ ROM_LOAD16_BYTE( "269-c8r.c8", 0x3000001, 0x800000, CRC(2570b71b) SHA1(99266e1c2ffcf324793fb5c55325fbc7e6265ac0) )
+ROM_END
+
+ROM_START( svcesv ) // all confirmed
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD32_WORD_SWAP( "269esv.p1", 0x000000, 0x400000, CRC(c6fd0131) SHA1(25439e469d0403439fde5d6532081a9b405bf642) )
+ ROM_LOAD32_WORD_SWAP( "269esv.p2", 0x000002, 0x400000, CRC(2adede28) SHA1(555d3a9a53f0c7e8b450f7885b0ea86abece0843) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "269-m1.m1", CRC(f6819d00) SHA1(d3bbe09df502464f104e53501708ac6e2c1832c6) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269-v1.v1", 0x000000, 0x800000, CRC(c659b34c) SHA1(1931e8111ef43946f68699f8707334c96f753a1e) )
+ ROM_LOAD( "269-v2.v2", 0x800000, 0x800000, CRC(dd903835) SHA1(e58d38950a7a8697bb22a1cc7a371ae6664ae8f9) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269stdse.c1", 0x0000000, 0x800000, CRC(03cda72a) SHA1(5557d44f191ed329256fd5dc383a7242ca30aee5) )
+ ROM_LOAD16_BYTE( "269stdse.c2", 0x0000001, 0x800000, CRC(442a7724) SHA1(8b7155978638a6656b0df9ccf7bd85be8172b167) )
+ ROM_LOAD16_BYTE( "269stdse.c3", 0x1000000, 0x800000, CRC(b311b183) SHA1(52b4c8c5530b856bbb497e5b33587cee0abfc892) )
+ ROM_LOAD16_BYTE( "269stdse.c4", 0x1000001, 0x800000, CRC(4aa13c41) SHA1(733c1434b65d2b595ba40d51045cfa523c14eefa) )
+ ROM_LOAD16_BYTE( "269stdse.c5", 0x2000000, 0x800000, CRC(1a81e716) SHA1(12d5f4128be45294aaf14461203ad99d768ad9bd) )
+ ROM_LOAD16_BYTE( "269stdse.c6", 0x2000001, 0x800000, CRC(6f346ae8) SHA1(a5561786bcdb51ffd72332c8da4a4448490a7068) )
+ ROM_LOAD16_BYTE( "269stdse.c7", 0x3000000, 0x800000, CRC(8dd412d3) SHA1(3d2afd7fc09c59537209071d049ec294f76770e5) )
+ ROM_LOAD16_BYTE( "269stdse.c8", 0x3000001, 0x800000, CRC(305ef23f) SHA1(3bdd24b075757062803ac2a6f9582bcfe0bcbb4c) )
+ROM_END
+
+ROM_START( svcg )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269g.p1", 0x000000, 0x600000, CRC(2e203ac3) SHA1(dd25d735edb7c1a30f4c6bf146ebb0f56146fad4) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svch )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269h.p1", 0x000000, 0x600000, CRC(06435efb) SHA1(115d8dbad06565cfdd6b607cc2359ec3ae5db6e0) )
+
+ //NEO_SFIX_128K( "269-s1h.bin", CRC(61ef88e5) ) rom not exist
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269h.m1", CRC(1bfa0f6f) SHA1(b59b02d73d5f9a32935db656f888caac6e622a20) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svch2 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269h2.p1", 0x000000, 0x600000, CRC(df517c7e) SHA1(dc188dbd12fc2675772817f43b004c82bafe0551) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269h.m1", CRC(1bfa0f6f) SHA1(b59b02d73d5f9a32935db656f888caac6e622a20) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcice )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269ice.p1", 0x000000, 0x600000, CRC(09bdaec5) SHA1(8d305bbaabf71129269a45f49d22132ecc170149) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269h.m1", CRC(1bfa0f6f) SHA1(b59b02d73d5f9a32935db656f888caac6e622a20) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svclspc )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269lspc.p1", 0x000000, 0x600000, CRC(347d4f95) SHA1(ae7b5061ca225f5b58ca62ba056ef57a3a993a7a) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269h.m1", CRC(1bfa0f6f) SHA1(b59b02d73d5f9a32935db656f888caac6e622a20) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcnd ) // only p1,vx,s1 confirmed
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269nd.p1", 0x000000, 0x600000, CRC(93855c0b) SHA1(03dd06ff5a11a37990bd0a9531beb44c63de2d91) )
+
+ NEO_SFIX_MT_512K
+ ROM_LOAD( "269nd.s1", 0x60000, 0x20000, CRC(ad184232) SHA1(6645d323d641004fa7a17e3b1e65613f398c95dd) )
+ ROM_CONTINUE( 0x40000, 0x20000 )
+ ROM_CONTINUE( 0x20000, 0x20000 )
+ ROM_CONTINUE( 0x00000, 0x20000 )
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "269-m1.m1", CRC(f6819d00) SHA1(d3bbe09df502464f104e53501708ac6e2c1832c6) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269pcbd.v1", 0x000000, 0x800000, CRC(ff64cd56) SHA1(e2754c554ed5ca14c2020c5d931021d5ac82660c) )
+ ROM_LOAD( "269pcbd.v2", 0x800000, 0x800000, CRC(a8dd6446) SHA1(8972aab271c33f8af344bffe6359d9ddc4b8af2e) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269pcbd.c1", 0x0000000, 0x2000000, CRC(382ce01f) SHA1(8eec32f70169de83fc15df470aba9c51c312b577) )
+ ROM_LOAD16_BYTE( "269pcbd.c2", 0x0000001, 0x2000000, CRC(88ad01ec) SHA1(da223bc09aa465ea6c15954c45fefbf3ee79a4d7) )
+ROM_END
+
+ROM_START( svcnh )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269nh.p1", 0x000000, 0x600000, CRC(9c3f7cc1) SHA1(26143425f2ca931708cafb4cf52ce880ac163d50) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269h.m1", CRC(1bfa0f6f) SHA1(b59b02d73d5f9a32935db656f888caac6e622a20) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269nh.c7", 0x3000000, 0x800000, CRC(05fecd16) SHA1(5619c759bb52a5f35ebb57916a085555f5da18aa) )
+ ROM_LOAD16_BYTE( "269nh.c8", 0x3000001, 0x800000, CRC(a911afa9) SHA1(804fc1ea22f937edbd0418eebf5547d6fc9c57d1) )
+ROM_END
+
+ROM_START( svcpcbd ) // JAMMA
+ ROM_REGION( 0x2000000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269-p1.p1", 0x000000, 0x2000000, CRC(432cfdfc) SHA1(19b40d32188a8bace6d2d570c6cf3d2f1e31e379) )
+
+ NEO_SFIX_MT_512K
+
+ ROM_REGION16_BE( 0x80000, "mainbios", 0 )
+ /* this contains both an ASIA and JAPAN bios, HARDDIP3 on the PCB selects which to use */
+ ROM_LOAD16_WORD_SWAP( "sp-4x.sp1", 0x00000, 0x80000, CRC(b4590283) SHA1(47047ed5b6062babc0a0bebcc30e4b3f021e115a) )
+
+ ROM_REGION( 0x80000, "audiocrypt", 0 )
+ ROM_LOAD( "269-m1.m1", 0x00000, 0x80000, CRC(f6819d00) SHA1(d3bbe09df502464f104e53501708ac6e2c1832c6) )
+ ROM_REGION( 0x90000, "audiocpu", ROMREGION_ERASEFF )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269pcbd.v1", 0x000000, 0x800000, CRC(ff64cd56) SHA1(e2754c554ed5ca14c2020c5d931021d5ac82660c) )
+ ROM_LOAD( "269pcbd.v2", 0x800000, 0x800000, CRC(a8dd6446) SHA1(8972aab271c33f8af344bffe6359d9ddc4b8af2e) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269pcbd.c1", 0x0000000, 0x2000000, CRC(382ce01f) SHA1(8eec32f70169de83fc15df470aba9c51c312b577) )
+ ROM_LOAD16_BYTE( "269pcbd.c2", 0x0000001, 0x2000000, CRC(88ad01ec) SHA1(da223bc09aa465ea6c15954c45fefbf3ee79a4d7) )
+ROM_END
+
+ROM_START( svcplusa2016 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269pa2016.p1", 0x000000, 0x454f9c, CRC(65471e6c) SHA1(32e07ec3d415940b3e1204e9e2ef00da60b4a685) )
+ ROM_LOAD16_WORD_SWAP( "269pa2016.p2", 0x200000, 0x400000, CRC(f78b0e9e) SHA1(839091db9ecfc6720fa28790fca7c6c057ff42a7) )
+ ROM_IGNORE( 0x054f62 )
+
+ NEO_SFIX_MT_128K
+ ROM_LOAD( "svc-s1pl.bin", 0x10000, 0x10000, CRC(ca3c735e) SHA1(aebd15253c90432a2e0a4c40f37110c1e2176ee4) )
+ ROM_CONTINUE( 0x00000, 0x10000 )
+
+ NEOGEO_BIOS
+
+ ROM_REGION( 0x20000, "audiobios", 0 )
+ ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) )
+
+ ROM_REGION( 0x50000, "audiocpu", 0 )
+ ROM_LOAD( "svc-m1.bin", 0x20000, 0x10000, CRC(804328c3) SHA1(f931636c563b0789d4812033a77b47bf663db43f) )
+ ROM_CONTINUE( 0x00000, 0x10000 )
+ ROM_COPY( "audiocpu", 0x000000, 0x10000, 0x10000 )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD16_WORD_SWAP( "svc-v2.bin", 0x000000, 0x400000, CRC(b5097287) SHA1(3ba3a9b5624879616382ed40337a3d9c50a0f314) )
+ ROM_LOAD16_WORD_SWAP( "svc-v1.bin", 0x400000, 0x400000, CRC(bd3a391f) SHA1(972bf09b75e99a683ee965bec93b0da8f15d72d9) )
+ ROM_LOAD16_WORD_SWAP( "svc-v4.bin", 0x800000, 0x400000, CRC(33fc0b37) SHA1(d61017d829f44c7df8795ba10c55c727d9972662) )
+ ROM_LOAD16_WORD_SWAP( "svc-v3.bin", 0xc00000, 0x400000, CRC(aa9849a0) SHA1(9539b3356a070a066a89f27c287f316e7367ce2a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "svc-c1.bin", 0x0000000, 0x800000, CRC(a7826b89) SHA1(3bbe348ce54b80b56ef032ea532a18ef3cafeb11) )
+ ROM_LOAD16_BYTE( "svc-c2.bin", 0x0000001, 0x800000, CRC(ed3c2089) SHA1(b5d17692f15f5a678c273589fab2e3918711135e) )
+ ROM_LOAD16_BYTE( "svc-c3.bin", 0x1000000, 0x800000, CRC(71ed8063) SHA1(ea1df9e2e382a8560a06d447421844cc588f43dd) )
+ ROM_LOAD16_BYTE( "svc-c4.bin", 0x1000001, 0x800000, CRC(250bde2d) SHA1(8c72dcfceef6d022ab4b73ab37cf3ac0c3940c17) )
+ ROM_LOAD16_BYTE( "svc-c5.bin", 0x2000000, 0x800000, CRC(9817c082) SHA1(1bea9c7220c2b1524896c86841d6d8fd55f5d366) )
+ ROM_LOAD16_BYTE( "svc-c6.bin", 0x2000001, 0x800000, CRC(2bc0307f) SHA1(8090fa82c46eb503832359093c8cc3cee3141c90) )
+ ROM_LOAD16_BYTE( "svc-c7.bin", 0x3000000, 0x800000, CRC(4358d7b9) SHA1(9270b58c2abc072a046bedda72f1395df26d0714) )
+ ROM_LOAD16_BYTE( "svc-c8.bin", 0x3000001, 0x800000, CRC(366deee5) SHA1(d477ad7a5987fd6c7ef2c1680fbb7c884654590e) )
+ROM_END
+
+ROM_START( svcplusb )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269plusb.p1", 0x000000, 0x600000, CRC(5D738F9A) SHA1(10AD161D6DE285659DCAEBBEA4AA2B384341E14D) )
+
+ NEO_SFIX_MT_512K
+ ROM_LOAD( "269plusb.s1", 0x60000, 0x20000, CRC(06125f98) SHA1(69ba2625c90bb09abf64f6d49d88d2ac2f1ee9ca) )
+ ROM_CONTINUE( 0x40000, 0x20000 )
+ ROM_CONTINUE( 0x20000, 0x20000 )
+ ROM_CONTINUE( 0x00000, 0x20000 )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcplusd ) // only p1,vx,cx confirmed
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269plusd.p1", 0x000000, 0x600000, CRC(2a57e4d4) SHA1(09fec6b376adfb2b051cd281f66b483e2deffa60) )
+
+ NEO_SFIX_MT_512K // This one contains PLUS logo
+ ROM_LOAD( "269plusb.s1", 0x60000, 0x20000, CRC(06125f98) SHA1(69ba2625c90bb09abf64f6d49d88d2ac2f1ee9ca) )
+ ROM_CONTINUE( 0x40000, 0x20000 )
+ ROM_CONTINUE( 0x20000, 0x20000 )
+ ROM_CONTINUE( 0x00000, 0x20000 )
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "269-m1.m1", CRC(f6819d00) SHA1(d3bbe09df502464f104e53501708ac6e2c1832c6) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269pcbd.v1", 0x000000, 0x800000, CRC(ff64cd56) SHA1(e2754c554ed5ca14c2020c5d931021d5ac82660c) )
+ ROM_LOAD( "269pcbd.v2", 0x800000, 0x800000, CRC(a8dd6446) SHA1(8972aab271c33f8af344bffe6359d9ddc4b8af2e) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269pcbd.c1", 0x0000000, 0x2000000, CRC(382ce01f) SHA1(8eec32f70169de83fc15df470aba9c51c312b577) )
+ ROM_LOAD16_BYTE( "269pcbd.c2", 0x0000001, 0x2000000, CRC(88ad01ec) SHA1(da223bc09aa465ea6c15954c45fefbf3ee79a4d7) )
+ROM_END
+
+ROM_START( svcplusg )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269plusg.p1", 0x000000, 0x600000, CRC(eb4d57e1) SHA1(f3d300667df9308fad04f158af77784894c87f13) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcplusp )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269plusp.p1", 0x000000, 0x600000, CRC(91ee8143) SHA1(68742527ae31d8a0c2b6fa3dc91cdf7b018f2a56) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "269-m1.m1", CRC(f6819d00) SHA1(d3bbe09df502464f104e53501708ac6e2c1832c6) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269-v1.v1", 0x000000, 0x800000, CRC(c659b34c) SHA1(1931e8111ef43946f68699f8707334c96f753a1e) )
+ ROM_LOAD( "269-v2.v2", 0x800000, 0x800000, CRC(dd903835) SHA1(e58d38950a7a8697bb22a1cc7a371ae6664ae8f9) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d1.c7", 0x3000000, 0x800000, CRC(5595b6cc) SHA1(9d6cc70f435401355b885475ccc3864825887656) )
+ ROM_LOAD16_BYTE( "269d1.c8", 0x3000001, 0x800000, CRC(b17dfcf9) SHA1(46af296b12831ee40355f52d2c316f609557d6df) )
+ROM_END
+
+ROM_START( svcplusp2 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269plusp2.p1", 0x000000, 0x600000, CRC(9c8877e6) SHA1(3e8a104ac80daaf3cea641580e249b45402f2822) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "269-m1.m1", CRC(f6819d00) SHA1(d3bbe09df502464f104e53501708ac6e2c1832c6) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269-v1.v1", 0x000000, 0x800000, CRC(c659b34c) SHA1(1931e8111ef43946f68699f8707334c96f753a1e) )
+ ROM_LOAD( "269-v2.v2", 0x800000, 0x800000, CRC(dd903835) SHA1(e58d38950a7a8697bb22a1cc7a371ae6664ae8f9) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d1.c7", 0x3000000, 0x800000, CRC(5595b6cc) SHA1(9d6cc70f435401355b885475ccc3864825887656) )
+ ROM_LOAD16_BYTE( "269d1.c8", 0x3000001, 0x800000, CRC(b17dfcf9) SHA1(46af296b12831ee40355f52d2c316f609557d6df) )
+ROM_END
+
+ROM_START( svcpryu )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269pryu.p1", 0x000000, 0x600000, CRC(2088fa5c) SHA1(a60c01aef8532825dfde4a6ccc7c97692dd70e64) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269pryu.m1", CRC(dcc67f10) SHA1(acdd75144f90d2b135181a4fd2c6c72c240c66b0) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcps2 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269ps2.p1", 0x000000, 0x600000, CRC(aa15036f) SHA1(e57df12f02d2a7fa2b5eda99c90ae49c3ced44b0) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269h.m1", CRC(1bfa0f6f) SHA1(b59b02d73d5f9a32935db656f888caac6e622a20) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "svcps2_c7.rom", 0x3000000, 0x800000, CRC(361c97ab) SHA1(3b3672630c54ddbee38932f7d27d27d71e9fe19c) )
+ ROM_LOAD16_BYTE( "svcps2_c8.rom", 0x3000001, 0x800000, CRC(1a16e266) SHA1(3d6a07716b79b62c8f2240c8be83d662b35f615a) )
+ROM_END
+
+ROM_START( svcrm ) // same as svccpru
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269rm.p1", 0x000000, 0x600000, CRC(9d39234f) SHA1(a28ba0b53a9f7dc2d0b3dfd22025ebddbd8c99af) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcryu )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269ryu.p1", 0x000000, 0x600000, CRC(259b3b42) SHA1(ed74b38046babbf09ca671d3405feed20d2e8a30) )
+
+ NEO_SFIX_128K( "269spjoy.s1", CRC(aaef740c) SHA1(d7ae898ac93f78b19b125e98659dcfd9ee3179b2) )
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "269-m1.m1", CRC(f6819d00) SHA1(d3bbe09df502464f104e53501708ac6e2c1832c6) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269-v1.v1", 0x000000, 0x800000, CRC(c659b34c) SHA1(1931e8111ef43946f68699f8707334c96f753a1e) )
+ ROM_LOAD( "269-v2.v2", 0x800000, 0x800000, CRC(dd903835) SHA1(e58d38950a7a8697bb22a1cc7a371ae6664ae8f9) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269-c1r.c1", 0x0000000, 0x800000, CRC(887b4068) SHA1(227cdcf7a10a415f1e3afe7ae97acc9afc2cc8e1) )
+ ROM_LOAD16_BYTE( "269-c2r.c2", 0x0000001, 0x800000, CRC(4e8903e4) SHA1(31daaa4fd6c23e8f0a8428931c513d97d2eee1bd) )
+ ROM_LOAD16_BYTE( "269-c3r.c3", 0x1000000, 0x800000, CRC(7d9c55b0) SHA1(1f94a948b3e3c31b3ff05518ef525031a3cb2c62) )
+ ROM_LOAD16_BYTE( "269-c4r.c4", 0x1000001, 0x800000, CRC(8acb5bb6) SHA1(2c27d6e309646d7b84da85f78c06e4aaa74e844b) )
+ ROM_LOAD16_BYTE( "269-c5r.c5", 0x2000000, 0x800000, CRC(097a4157) SHA1(54d839f55d27f68c704a94ea3c63c644ffc22ca4) )
+ ROM_LOAD16_BYTE( "269-c6r.c6", 0x2000001, 0x800000, CRC(e19df344) SHA1(20448add53ab25dd3a8f0b681131ad3b9c68acc9) )
+ ROM_LOAD16_BYTE( "269-c7r.c7", 0x3000000, 0x800000, CRC(d8f0340b) SHA1(43114af7557361a8903bb8cf8553f602946a9220) )
+ ROM_LOAD16_BYTE( "269-c8r.c8", 0x3000001, 0x800000, CRC(2570b71b) SHA1(99266e1c2ffcf324793fb5c55325fbc7e6265ac0) )
+ROM_END
+
+ROM_START( svcspjoy ) // There is no INSERT COIN message
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269spjoy.p1", 0x000000, 0x600000, CRC(d41e031a) SHA1(96c9bd0caf8d1d9db5d75012db180be225801765) )
+
+ NEO_SFIX_128K( "269spjoy.s1", CRC(aaef740c) SHA1(d7ae898ac93f78b19b125e98659dcfd9ee3179b2) )
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "269-m1.m1", CRC(f6819d00) SHA1(d3bbe09df502464f104e53501708ac6e2c1832c6) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269-v1.v1", 0x000000, 0x800000, CRC(c659b34c) SHA1(1931e8111ef43946f68699f8707334c96f753a1e) )
+ ROM_LOAD( "269-v2.v2", 0x800000, 0x800000, CRC(dd903835) SHA1(e58d38950a7a8697bb22a1cc7a371ae6664ae8f9) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269-c1r.c1", 0x0000000, 0x800000, CRC(887b4068) SHA1(227cdcf7a10a415f1e3afe7ae97acc9afc2cc8e1) )
+ ROM_LOAD16_BYTE( "269-c2r.c2", 0x0000001, 0x800000, CRC(4e8903e4) SHA1(31daaa4fd6c23e8f0a8428931c513d97d2eee1bd) )
+ ROM_LOAD16_BYTE( "269-c3r.c3", 0x1000000, 0x800000, CRC(7d9c55b0) SHA1(1f94a948b3e3c31b3ff05518ef525031a3cb2c62) )
+ ROM_LOAD16_BYTE( "269-c4r.c4", 0x1000001, 0x800000, CRC(8acb5bb6) SHA1(2c27d6e309646d7b84da85f78c06e4aaa74e844b) )
+ ROM_LOAD16_BYTE( "269-c5r.c5", 0x2000000, 0x800000, CRC(097a4157) SHA1(54d839f55d27f68c704a94ea3c63c644ffc22ca4) )
+ ROM_LOAD16_BYTE( "269-c6r.c6", 0x2000001, 0x800000, CRC(e19df344) SHA1(20448add53ab25dd3a8f0b681131ad3b9c68acc9) )
+ ROM_LOAD16_BYTE( "269-c7r.c7", 0x3000000, 0x800000, CRC(d8f0340b) SHA1(43114af7557361a8903bb8cf8553f602946a9220) )
+ ROM_LOAD16_BYTE( "269-c8r.c8", 0x3000001, 0x800000, CRC(2570b71b) SHA1(99266e1c2ffcf324793fb5c55325fbc7e6265ac0) )
+ROM_END
+
+ROM_START( svcsplus2016 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "svc-p1sp.bin", 0x000000, 0x400000, CRC(2601902f) SHA1(202348a13c6480f7de37a3ee983823838822fc98) )
+ ROM_LOAD16_WORD_SWAP( "269sp2016.p2", 0x400000, 0x400000, CRC(c30b4d6c) SHA1(5bd2cc39e988e2c8c92e0df3f75b8343cec5b09c) )
+ ROM_IGNORE( 0x054f4c )
+
+ NEO_SFIX_128K( "svc-s1sp.bin", CRC(233d6439) SHA1(369024c7a2405c3144c14ac016c07c3dc0f44187) )
+
+ NEOGEO_BIOS
+
+ ROM_REGION( 0x20000, "audiobios", 0 )
+ ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) )
+
+ ROM_REGION( 0x50000, "audiocpu", 0 )
+ ROM_LOAD( "svc-m1.bin", 0x20000, 0x10000, CRC(804328c3) SHA1(f931636c563b0789d4812033a77b47bf663db43f) )
+ ROM_CONTINUE( 0x00000, 0x10000 )
+ ROM_COPY( "audiocpu", 0x000000, 0x10000, 0x10000 )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD16_WORD_SWAP( "svc-v2.bin", 0x000000, 0x400000, CRC(b5097287) SHA1(3ba3a9b5624879616382ed40337a3d9c50a0f314) )
+ ROM_LOAD16_WORD_SWAP( "svc-v1.bin", 0x400000, 0x400000, CRC(bd3a391f) SHA1(972bf09b75e99a683ee965bec93b0da8f15d72d9) )
+ ROM_LOAD16_WORD_SWAP( "svc-v4.bin", 0x800000, 0x400000, CRC(33fc0b37) SHA1(d61017d829f44c7df8795ba10c55c727d9972662) )
+ ROM_LOAD16_WORD_SWAP( "svc-v3.bin", 0xc00000, 0x400000, CRC(aa9849a0) SHA1(9539b3356a070a066a89f27c287f316e7367ce2a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "svc-c1.bin", 0x0000000, 0x800000, CRC(a7826b89) SHA1(3bbe348ce54b80b56ef032ea532a18ef3cafeb11) )
+ ROM_LOAD16_BYTE( "svc-c2.bin", 0x0000001, 0x800000, CRC(ed3c2089) SHA1(b5d17692f15f5a678c273589fab2e3918711135e) )
+ ROM_LOAD16_BYTE( "svc-c3.bin", 0x1000000, 0x800000, CRC(71ed8063) SHA1(ea1df9e2e382a8560a06d447421844cc588f43dd) )
+ ROM_LOAD16_BYTE( "svc-c4.bin", 0x1000001, 0x800000, CRC(250bde2d) SHA1(8c72dcfceef6d022ab4b73ab37cf3ac0c3940c17) )
+ ROM_LOAD16_BYTE( "svc-c5.bin", 0x2000000, 0x800000, CRC(9817c082) SHA1(1bea9c7220c2b1524896c86841d6d8fd55f5d366) )
+ ROM_LOAD16_BYTE( "svc-c6.bin", 0x2000001, 0x800000, CRC(2bc0307f) SHA1(8090fa82c46eb503832359093c8cc3cee3141c90) )
+ ROM_LOAD16_BYTE( "svc-c7.bin", 0x3000000, 0x800000, CRC(4358d7b9) SHA1(9270b58c2abc072a046bedda72f1395df26d0714) )
+ ROM_LOAD16_BYTE( "svc-c8.bin", 0x3000001, 0x800000, CRC(366deee5) SHA1(d477ad7a5987fd6c7ef2c1680fbb7c884654590e) )
+ROM_END
+
+ROM_START( svcspryu )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269spryu.p1", 0x000000, 0x600000, CRC(4f15b6b3) SHA1(651e5340b5442ff6cd9b6a325ea6ad8abc116cfb) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269pryu.m1", CRC(dcc67f10) SHA1(acdd75144f90d2b135181a4fd2c6c72c240c66b0) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcstdse )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD32_WORD_SWAP( "269stdse.p1", 0x000000, 0x400000, CRC(5855b459) SHA1(11c63394a7662af04126897490e617f44d08f8b2) )
+ ROM_LOAD32_WORD_SWAP( "269stdse.p2", 0x000002, 0x400000, CRC(19c8575e) SHA1(8deb062ac95e2e117dd1048472130c540276d82b) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "269-m1.m1", CRC(f6819d00) SHA1(d3bbe09df502464f104e53501708ac6e2c1832c6) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269-v1.v1", 0x000000, 0x800000, CRC(c659b34c) SHA1(1931e8111ef43946f68699f8707334c96f753a1e) )
+ ROM_LOAD( "269-v2.v2", 0x800000, 0x800000, CRC(dd903835) SHA1(e58d38950a7a8697bb22a1cc7a371ae6664ae8f9) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269stdse.c1", 0x0000000, 0x800000, CRC(03cda72a) SHA1(5557d44f191ed329256fd5dc383a7242ca30aee5) )
+ ROM_LOAD16_BYTE( "269stdse.c2", 0x0000001, 0x800000, CRC(442a7724) SHA1(8b7155978638a6656b0df9ccf7bd85be8172b167) )
+ ROM_LOAD16_BYTE( "269stdse.c3", 0x1000000, 0x800000, CRC(b311b183) SHA1(52b4c8c5530b856bbb497e5b33587cee0abfc892) )
+ ROM_LOAD16_BYTE( "269stdse.c4", 0x1000001, 0x800000, CRC(4aa13c41) SHA1(733c1434b65d2b595ba40d51045cfa523c14eefa) )
+ ROM_LOAD16_BYTE( "269stdse.c5", 0x2000000, 0x800000, CRC(1a81e716) SHA1(12d5f4128be45294aaf14461203ad99d768ad9bd) )
+ ROM_LOAD16_BYTE( "269stdse.c6", 0x2000001, 0x800000, CRC(6f346ae8) SHA1(a5561786bcdb51ffd72332c8da4a4448490a7068) )
+ ROM_LOAD16_BYTE( "269stdse.c7", 0x3000000, 0x800000, CRC(8dd412d3) SHA1(3d2afd7fc09c59537209071d049ec294f76770e5) )
+ ROM_LOAD16_BYTE( "269stdse.c8", 0x3000001, 0x800000, CRC(305ef23f) SHA1(3bdd24b075757062803ac2a6f9582bcfe0bcbb4c) )
+ROM_END
+
+ROM_START( svcxlb )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269xlb.p1", 0x000000, 0x600000, CRC(10bf1b9d) SHA1(461f94eed59b9642aee92f8d8d65aeb8b355ab54) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "269-m1.m1", CRC(f6819d00) SHA1(d3bbe09df502464f104e53501708ac6e2c1832c6) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269-v1.v1", 0x000000, 0x800000, CRC(c659b34c) SHA1(1931e8111ef43946f68699f8707334c96f753a1e) )
+ ROM_LOAD( "269-v2.v2", 0x800000, 0x800000, CRC(dd903835) SHA1(e58d38950a7a8697bb22a1cc7a371ae6664ae8f9) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d1.c7", 0x3000000, 0x800000, CRC(5595b6cc) SHA1(9d6cc70f435401355b885475ccc3864825887656) )
+ ROM_LOAD16_BYTE( "269d1.c8", 0x3000001, 0x800000, CRC(b17dfcf9) SHA1(46af296b12831ee40355f52d2c316f609557d6df) )
+ROM_END
+
+
+
+GAME( 2003, svccprw, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Wesker", "SvC Chaos (Plus Remix v2.0 hack by Wesker)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, svcd, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "hack", "SvC Chaos (decrypted C set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, svcd1, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "hack", "SvC Chaos (decrypted C set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2008, svcee, svc, neogeo_noslot, neogeo, neogeo_noslot_state, svc, ROT0, "Ethan H", "SvC Chaos (Hack by Ethen.H(EGHT) 2008-01-21)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, svcesv, svc, neogeo_noslot, neogeo, neogeo_noslot_state, svc, ROT0, "hack", "SvC Chaos (unknown esv)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, svcg, svc, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "SvC Chaos (Boss Special Kyo Green Edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, svch, svc, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "chbandy", "SvC Chaos (Remix V1.0 by chbandy)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, svch2, svc, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "chbandy", "SvC Chaos (Remix v1.1 by chbandy)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, svcice, svc, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "SvC Chaos (Ice Edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, svclspc, svc, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "SvC Chaos (Pink Edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, svcnd, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "hack", "SvC Chaos (unknown nd)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, svcnh, svc, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "SvC Chaos (Like PS2 Version old)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, svcpcbd, svcpcb, neogeo_noslot, dualbios, neogeo_hbmame, svcpcd, ROT0, "hack", "SvC Chaos (JAMMA PCB, decrypted C & V)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, svcplusa2016, svc, neogeo_noslot, neogeo, neogeo_noslot_state, svcplusa, ROT0, "hack", "SvC Chaos PLUS (2016)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, svcplusb, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "hack", "SvC Chaos PLUS (Bootleg, set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, svcplusd, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "hack", "SvC Chaos PLUS (unknown plusd)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, svcplusg, svc, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "SvC Chaos (Plus Special)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, svcplusp, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Kawada7278", "SvC Chaos (Plus Purple Fire hack by Kawada7278 set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, svcplusp2, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Kawada7278", "SvC Chaos (Plus Purple Fire hack by Kawada7278 set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, svcpryu, svc, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "SvC Plus (Koryu)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, svcps2, svc, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGHT", "SvC Playstation2 Hack Final 1.02 (EGHT)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, svcrm, svc, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Jason", "SvC REMIX ULTRA (Ver 1.2 by Jason)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, svcryu, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Gordon", "SvC Chaos (Ryu BT Revision hack by Gordon)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, svcspjoy, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "hack", "SvC Chaos (Super Plus Joy Modified hack by Wesker/Jason/K3)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, svcsplus2016, svc, neogeo_noslot, neogeo, neogeo_noslot_state, svcsplus, ROT0, "hack", "SvC Chaos Super Plus (2016)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, svcspryu, svc, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "SvC Plus (Super Koryu)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, svcstdse, svc, neogeo_noslot, neogeo, neogeo_noslot_state, svc, ROT0, "hack", "SvC Chaos (Subdue the Dragon Super Edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, svcxlb, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "LB70", "SvC Chaos (Knife Millennium Turbidity v1.0 hack by Lb70)", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/ngwh.cpp b/docs/release/src/hbmame/drivers/ngwh.cpp
new file mode 100644
index 00000000000..923402d55eb
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/ngwh.cpp
@@ -0,0 +1,387 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+// World Heroes hacks
+
+
+
+ROM_START( whpb ) /* World Heroes Perfect - Hack by Creamymami and Dodowang - (Can choose Gokuu, Neo-Dio and Zeus) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "090b.p1", 0x100000, 0x100000, CRC(c31f9562) SHA1(81a7dade46c0fc7241964d957322f768a256e8da) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "090-s1.s1", CRC(174a880f) SHA1(c35d315d728d119a6e9aa42e0593937c90897449) )
+
+ NEO_BIOS_AUDIO_128K( "090-m1.m1", CRC(28065668) SHA1(0c60d4afa1dccad0135e733104f056be73b54e4e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "090-v1.v1", 0x000000, 0x200000, CRC(30cf2709) SHA1(d1845033f16de2470afd3858ee0efb45176d9ed7) )
+ ROM_LOAD( "064-v2.v2", 0x200000, 0x200000, CRC(b6527edd) SHA1(2bcf5bfa6e117cf4a3728a5e5f5771313c93f22a) )
+ ROM_LOAD( "090-v3.v3", 0x400000, 0x200000, CRC(1908a7ce) SHA1(78f31bcfea33eb94752bbf5226c481baec1af5ac) )
+
+ ROM_REGION( 0x1c00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "090-c1.c1", 0x0000000, 0x400000, CRC(cd30ed9b) SHA1(839c20f7ff31251acc875ae402b5d267e55510c7) )
+ ROM_LOAD16_BYTE( "090-c2.c2", 0x0000001, 0x400000, CRC(10eed5ee) SHA1(12131b1c8c017ea77a98c044b392a5db6aad0143) )
+ ROM_LOAD16_BYTE( "064-c3.c3", 0x0800000, 0x200000, CRC(436d1b31) SHA1(059776d77b91377ed0bcfc278802d659c917fc0f) )
+ ROM_LOAD16_BYTE( "064-c4.c4", 0x0800001, 0x200000, CRC(f9c8dd26) SHA1(25a9eea1d49b21b4a988beb32c25bf2f7796f227) )
+ ROM_LOAD16_BYTE( "064-c5.c5", 0x1000000, 0x200000, CRC(8e34a9f4) SHA1(67b839b426ef3fad0a85d951fdd44c0a45c55226) )
+ ROM_LOAD16_BYTE( "064-c6.c6", 0x1000001, 0x200000, CRC(a43e4766) SHA1(54f282f2b1ff2934cca7acbb4386a2b99a29df3a) )
+ ROM_LOAD16_BYTE( "064-c7.c7", 0x1800000, 0x200000, CRC(59d97215) SHA1(85a960dc7f364df13ee0c2f99a4c53aefb081486) )
+ ROM_LOAD16_BYTE( "064-c8.c8", 0x1800001, 0x200000, CRC(fc092367) SHA1(69ff4ae909dd857de3ca8645d63f8b4bde117448) )
+ROM_END
+
+ROM_START( whpb2 ) /* World Heroes Perfect - Hack by Creamymami and Dodowang - (Can choose Gokuu, Neo-Dio and Zeus - Gokuu and Neo-Dio have icons) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "090b2.p1", 0x100000, 0x100000, CRC(fe3836e4) SHA1(0bca5e144b7de919f693fb32e977e81d5497f752) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "090-s1.s1", CRC(174a880f) SHA1(c35d315d728d119a6e9aa42e0593937c90897449) )
+
+ NEO_BIOS_AUDIO_128K( "090-m1.m1", CRC(28065668) SHA1(0c60d4afa1dccad0135e733104f056be73b54e4e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "090-v1.v1", 0x000000, 0x200000, CRC(30cf2709) SHA1(d1845033f16de2470afd3858ee0efb45176d9ed7) )
+ ROM_LOAD( "064-v2.v2", 0x200000, 0x200000, CRC(b6527edd) SHA1(2bcf5bfa6e117cf4a3728a5e5f5771313c93f22a) )
+ ROM_LOAD( "090-v3.v3", 0x400000, 0x200000, CRC(1908a7ce) SHA1(78f31bcfea33eb94752bbf5226c481baec1af5ac) )
+
+ ROM_REGION( 0x1c00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "090-c1.c1", 0x0000000, 0x400000, CRC(cd30ed9b) SHA1(839c20f7ff31251acc875ae402b5d267e55510c7) )
+ ROM_LOAD16_BYTE( "090-c2.c2", 0x0000001, 0x400000, CRC(10eed5ee) SHA1(12131b1c8c017ea77a98c044b392a5db6aad0143) )
+ ROM_LOAD16_BYTE( "064-c3.c3", 0x0800000, 0x200000, CRC(436d1b31) SHA1(059776d77b91377ed0bcfc278802d659c917fc0f) )
+ ROM_LOAD16_BYTE( "064-c4.c4", 0x0800001, 0x200000, CRC(f9c8dd26) SHA1(25a9eea1d49b21b4a988beb32c25bf2f7796f227) )
+ ROM_LOAD16_BYTE( "064-c5.c5", 0x1000000, 0x200000, CRC(8e34a9f4) SHA1(67b839b426ef3fad0a85d951fdd44c0a45c55226) )
+ ROM_LOAD16_BYTE( "064-c6.c6", 0x1000001, 0x200000, CRC(a43e4766) SHA1(54f282f2b1ff2934cca7acbb4386a2b99a29df3a) )
+ ROM_LOAD16_BYTE( "064-c7.c7", 0x1800000, 0x200000, CRC(59d97215) SHA1(85a960dc7f364df13ee0c2f99a4c53aefb081486) )
+ ROM_LOAD16_BYTE( "064-c8.c8", 0x1800001, 0x200000, CRC(fc092367) SHA1(69ff4ae909dd857de3ca8645d63f8b4bde117448) )
+ROM_END
+
+ROM_START( whpbh ) /* World Heroes Perfect - Hack by Dodowang - (Can choose Gokuu, Neo-Dio and Zeus - all boss characters have icons) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "090bh.p1", 0x100000, 0x100000, CRC(9bd000f2) SHA1(3f3b2cc47a0ef33f2b8e7ba6e6e81ebdff39a54b) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "090bh.s1", CRC(f2de6500) SHA1(5acc7746394724903b0fd3d4b5acf5bab355c9f4) )
+
+ NEO_BIOS_AUDIO_128K( "090-m1.m1", CRC(28065668) SHA1(0c60d4afa1dccad0135e733104f056be73b54e4e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "090-v1.v1", 0x000000, 0x200000, CRC(30cf2709) SHA1(d1845033f16de2470afd3858ee0efb45176d9ed7) )
+ ROM_LOAD( "064-v2.v2", 0x200000, 0x200000, CRC(b6527edd) SHA1(2bcf5bfa6e117cf4a3728a5e5f5771313c93f22a) )
+ ROM_LOAD( "090-v3.v3", 0x400000, 0x200000, CRC(1908a7ce) SHA1(78f31bcfea33eb94752bbf5226c481baec1af5ac) )
+
+ ROM_REGION( 0x1c00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "090-c1.c1", 0x0000000, 0x400000, CRC(cd30ed9b) SHA1(839c20f7ff31251acc875ae402b5d267e55510c7) )
+ ROM_LOAD16_BYTE( "090-c2.c2", 0x0000001, 0x400000, CRC(10eed5ee) SHA1(12131b1c8c017ea77a98c044b392a5db6aad0143) )
+ ROM_LOAD16_BYTE( "064-c3.c3", 0x0800000, 0x200000, CRC(436d1b31) SHA1(059776d77b91377ed0bcfc278802d659c917fc0f) )
+ ROM_LOAD16_BYTE( "064-c4.c4", 0x0800001, 0x200000, CRC(f9c8dd26) SHA1(25a9eea1d49b21b4a988beb32c25bf2f7796f227) )
+ ROM_LOAD16_BYTE( "064-c5.c5", 0x1000000, 0x200000, CRC(8e34a9f4) SHA1(67b839b426ef3fad0a85d951fdd44c0a45c55226) )
+ ROM_LOAD16_BYTE( "064-c6.c6", 0x1000001, 0x200000, CRC(a43e4766) SHA1(54f282f2b1ff2934cca7acbb4386a2b99a29df3a) )
+ ROM_LOAD16_BYTE( "064-c7.c7", 0x1800000, 0x200000, CRC(59d97215) SHA1(85a960dc7f364df13ee0c2f99a4c53aefb081486) )
+ ROM_LOAD16_BYTE( "064-c8.c8", 0x1800001, 0x200000, CRC(fc092367) SHA1(69ff4ae909dd857de3ca8645d63f8b4bde117448) )
+ROM_END
+
+ROM_START( whpbho ) /* [OLD] World Heroes Perfect - (whpbo) - Hack by Dodowang - (Can choose Gokuu, Neo-Dio and Zeus - has bug) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "090bho.p1", 0x100000, 0x100000, CRC(341f360f) SHA1(8a52866a5751021d20b8400dfa840e589024a7e9) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "090-s1.s1", CRC(174a880f) SHA1(c35d315d728d119a6e9aa42e0593937c90897449) )
+
+ NEO_BIOS_AUDIO_128K( "090-m1.m1", CRC(28065668) SHA1(0c60d4afa1dccad0135e733104f056be73b54e4e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "090-v1.v1", 0x000000, 0x200000, CRC(30cf2709) SHA1(d1845033f16de2470afd3858ee0efb45176d9ed7) )
+ ROM_LOAD( "064-v2.v2", 0x200000, 0x200000, CRC(b6527edd) SHA1(2bcf5bfa6e117cf4a3728a5e5f5771313c93f22a) )
+ ROM_LOAD( "090-v3.v3", 0x400000, 0x200000, CRC(1908a7ce) SHA1(78f31bcfea33eb94752bbf5226c481baec1af5ac) )
+
+ ROM_REGION( 0x1c00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "090-c1.c1", 0x0000000, 0x400000, CRC(cd30ed9b) SHA1(839c20f7ff31251acc875ae402b5d267e55510c7) )
+ ROM_LOAD16_BYTE( "090-c2.c2", 0x0000001, 0x400000, CRC(10eed5ee) SHA1(12131b1c8c017ea77a98c044b392a5db6aad0143) )
+ ROM_LOAD16_BYTE( "064-c3.c3", 0x0800000, 0x200000, CRC(436d1b31) SHA1(059776d77b91377ed0bcfc278802d659c917fc0f) )
+ ROM_LOAD16_BYTE( "064-c4.c4", 0x0800001, 0x200000, CRC(f9c8dd26) SHA1(25a9eea1d49b21b4a988beb32c25bf2f7796f227) )
+ ROM_LOAD16_BYTE( "064-c5.c5", 0x1000000, 0x200000, CRC(8e34a9f4) SHA1(67b839b426ef3fad0a85d951fdd44c0a45c55226) )
+ ROM_LOAD16_BYTE( "064-c6.c6", 0x1000001, 0x200000, CRC(a43e4766) SHA1(54f282f2b1ff2934cca7acbb4386a2b99a29df3a) )
+ ROM_LOAD16_BYTE( "064-c7.c7", 0x1800000, 0x200000, CRC(59d97215) SHA1(85a960dc7f364df13ee0c2f99a4c53aefb081486) )
+ ROM_LOAD16_BYTE( "064-c8.c8", 0x1800001, 0x200000, CRC(fc092367) SHA1(69ff4ae909dd857de3ca8645d63f8b4bde117448) )
+ROM_END
+
+ROM_START( whpbho2 ) /* [OLD] World Heroes Perfect - (whpbo2) - Hack by Creamymami and Dodowang - (Can choose Gokuu, Neo-Dio and Zeus - bug fix) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "090bho2.p1", 0x100000, 0x100000, CRC(cbfa58ef) SHA1(87941fbb79c82a4639103cbaec6fd013d180b3e9) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "090-s1.s1", CRC(174a880f) SHA1(c35d315d728d119a6e9aa42e0593937c90897449) )
+
+ NEO_BIOS_AUDIO_128K( "090-m1.m1", CRC(28065668) SHA1(0c60d4afa1dccad0135e733104f056be73b54e4e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "090-v1.v1", 0x000000, 0x200000, CRC(30cf2709) SHA1(d1845033f16de2470afd3858ee0efb45176d9ed7) )
+ ROM_LOAD( "064-v2.v2", 0x200000, 0x200000, CRC(b6527edd) SHA1(2bcf5bfa6e117cf4a3728a5e5f5771313c93f22a) )
+ ROM_LOAD( "090-v3.v3", 0x400000, 0x200000, CRC(1908a7ce) SHA1(78f31bcfea33eb94752bbf5226c481baec1af5ac) )
+
+ ROM_REGION( 0x1c00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "090-c1.c1", 0x0000000, 0x400000, CRC(cd30ed9b) SHA1(839c20f7ff31251acc875ae402b5d267e55510c7) )
+ ROM_LOAD16_BYTE( "090-c2.c2", 0x0000001, 0x400000, CRC(10eed5ee) SHA1(12131b1c8c017ea77a98c044b392a5db6aad0143) )
+ ROM_LOAD16_BYTE( "064-c3.c3", 0x0800000, 0x200000, CRC(436d1b31) SHA1(059776d77b91377ed0bcfc278802d659c917fc0f) )
+ ROM_LOAD16_BYTE( "064-c4.c4", 0x0800001, 0x200000, CRC(f9c8dd26) SHA1(25a9eea1d49b21b4a988beb32c25bf2f7796f227) )
+ ROM_LOAD16_BYTE( "064-c5.c5", 0x1000000, 0x200000, CRC(8e34a9f4) SHA1(67b839b426ef3fad0a85d951fdd44c0a45c55226) )
+ ROM_LOAD16_BYTE( "064-c6.c6", 0x1000001, 0x200000, CRC(a43e4766) SHA1(54f282f2b1ff2934cca7acbb4386a2b99a29df3a) )
+ ROM_LOAD16_BYTE( "064-c7.c7", 0x1800000, 0x200000, CRC(59d97215) SHA1(85a960dc7f364df13ee0c2f99a4c53aefb081486) )
+ ROM_LOAD16_BYTE( "064-c8.c8", 0x1800001, 0x200000, CRC(fc092367) SHA1(69ff4ae909dd857de3ca8645d63f8b4bde117448) )
+ROM_END
+
+ROM_START( whpeh ) /* World Heroes Perfect - Enhance by Creamymami, Dodowang and Fighters Kim - (Can choose Gokuu, Neo-Dio and Zeus - power hack) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "090eh.p1", 0x100000, 0x100000, CRC(8bde8cb8) SHA1(35941fe642ed0e57812788f1f46790a67b4c676c) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "090-s1.s1", CRC(174a880f) SHA1(c35d315d728d119a6e9aa42e0593937c90897449) )
+
+ NEO_BIOS_AUDIO_128K( "090-m1.m1", CRC(28065668) SHA1(0c60d4afa1dccad0135e733104f056be73b54e4e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "090-v1.v1", 0x000000, 0x200000, CRC(30cf2709) SHA1(d1845033f16de2470afd3858ee0efb45176d9ed7) )
+ ROM_LOAD( "064-v2.v2", 0x200000, 0x200000, CRC(b6527edd) SHA1(2bcf5bfa6e117cf4a3728a5e5f5771313c93f22a) )
+ ROM_LOAD( "090-v3.v3", 0x400000, 0x200000, CRC(1908a7ce) SHA1(78f31bcfea33eb94752bbf5226c481baec1af5ac) )
+
+ ROM_REGION( 0x1c00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "090-c1.c1", 0x0000000, 0x400000, CRC(cd30ed9b) SHA1(839c20f7ff31251acc875ae402b5d267e55510c7) )
+ ROM_LOAD16_BYTE( "090-c2.c2", 0x0000001, 0x400000, CRC(10eed5ee) SHA1(12131b1c8c017ea77a98c044b392a5db6aad0143) )
+ ROM_LOAD16_BYTE( "064-c3.c3", 0x0800000, 0x200000, CRC(436d1b31) SHA1(059776d77b91377ed0bcfc278802d659c917fc0f) )
+ ROM_LOAD16_BYTE( "064-c4.c4", 0x0800001, 0x200000, CRC(f9c8dd26) SHA1(25a9eea1d49b21b4a988beb32c25bf2f7796f227) )
+ ROM_LOAD16_BYTE( "064-c5.c5", 0x1000000, 0x200000, CRC(8e34a9f4) SHA1(67b839b426ef3fad0a85d951fdd44c0a45c55226) )
+ ROM_LOAD16_BYTE( "064-c6.c6", 0x1000001, 0x200000, CRC(a43e4766) SHA1(54f282f2b1ff2934cca7acbb4386a2b99a29df3a) )
+ ROM_LOAD16_BYTE( "064-c7.c7", 0x1800000, 0x200000, CRC(59d97215) SHA1(85a960dc7f364df13ee0c2f99a4c53aefb081486) )
+ ROM_LOAD16_BYTE( "064-c8.c8", 0x1800001, 0x200000, CRC(fc092367) SHA1(69ff4ae909dd857de3ca8645d63f8b4bde117448) )
+ROM_END
+
+ROM_START( whpeho ) /* [OLD] World Heroes Perfect - (whpeho) - Hack by Creamymami, Dodowang and Fighters Kim - (Can choose Gokuu, Neo-Dio and Zeus - power hack) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "090eho.p1", 0x100000, 0x100000, CRC(92134471) SHA1(52dc270118e9b3d5ec42b320c8bb778743cf88f5) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "090-s1.s1", CRC(174a880f) SHA1(c35d315d728d119a6e9aa42e0593937c90897449) )
+
+ NEO_BIOS_AUDIO_128K( "090-m1.m1", CRC(28065668) SHA1(0c60d4afa1dccad0135e733104f056be73b54e4e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "090-v1.v1", 0x000000, 0x200000, CRC(30cf2709) SHA1(d1845033f16de2470afd3858ee0efb45176d9ed7) )
+ ROM_LOAD( "064-v2.v2", 0x200000, 0x200000, CRC(b6527edd) SHA1(2bcf5bfa6e117cf4a3728a5e5f5771313c93f22a) )
+ ROM_LOAD( "090-v3.v3", 0x400000, 0x200000, CRC(1908a7ce) SHA1(78f31bcfea33eb94752bbf5226c481baec1af5ac) )
+
+ ROM_REGION( 0x1c00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "090-c1.c1", 0x0000000, 0x400000, CRC(cd30ed9b) SHA1(839c20f7ff31251acc875ae402b5d267e55510c7) )
+ ROM_LOAD16_BYTE( "090-c2.c2", 0x0000001, 0x400000, CRC(10eed5ee) SHA1(12131b1c8c017ea77a98c044b392a5db6aad0143) )
+ ROM_LOAD16_BYTE( "064-c3.c3", 0x0800000, 0x200000, CRC(436d1b31) SHA1(059776d77b91377ed0bcfc278802d659c917fc0f) )
+ ROM_LOAD16_BYTE( "064-c4.c4", 0x0800001, 0x200000, CRC(f9c8dd26) SHA1(25a9eea1d49b21b4a988beb32c25bf2f7796f227) )
+ ROM_LOAD16_BYTE( "064-c5.c5", 0x1000000, 0x200000, CRC(8e34a9f4) SHA1(67b839b426ef3fad0a85d951fdd44c0a45c55226) )
+ ROM_LOAD16_BYTE( "064-c6.c6", 0x1000001, 0x200000, CRC(a43e4766) SHA1(54f282f2b1ff2934cca7acbb4386a2b99a29df3a) )
+ ROM_LOAD16_BYTE( "064-c7.c7", 0x1800000, 0x200000, CRC(59d97215) SHA1(85a960dc7f364df13ee0c2f99a4c53aefb081486) )
+ ROM_LOAD16_BYTE( "064-c8.c8", 0x1800001, 0x200000, CRC(fc092367) SHA1(69ff4ae909dd857de3ca8645d63f8b4bde117448) )
+ROM_END
+
+ROM_START( whphez )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "090hez.p1", 0x100000, 0x100000, CRC(d1b90868) SHA1(344fdcac65adafbf086f6ecef0fcda5a8dc03169) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "090bh.s1", CRC(f2de6500) SHA1(5acc7746394724903b0fd3d4b5acf5bab355c9f4) )
+
+ NEO_BIOS_AUDIO_128K( "090-m1.m1", CRC(28065668) SHA1(0c60d4afa1dccad0135e733104f056be73b54e4e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "090-v1.v1", 0x000000, 0x200000, CRC(30cf2709) SHA1(d1845033f16de2470afd3858ee0efb45176d9ed7) )
+ ROM_LOAD( "064-v2.v2", 0x200000, 0x200000, CRC(b6527edd) SHA1(2bcf5bfa6e117cf4a3728a5e5f5771313c93f22a) )
+ ROM_LOAD( "090-v3.v3", 0x400000, 0x200000, CRC(1908a7ce) SHA1(78f31bcfea33eb94752bbf5226c481baec1af5ac) )
+
+ ROM_REGION( 0x1c00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "090-c1.c1", 0x0000000, 0x400000, CRC(cd30ed9b) SHA1(839c20f7ff31251acc875ae402b5d267e55510c7) )
+ ROM_LOAD16_BYTE( "090-c2.c2", 0x0000001, 0x400000, CRC(10eed5ee) SHA1(12131b1c8c017ea77a98c044b392a5db6aad0143) )
+ ROM_LOAD16_BYTE( "064-c3.c3", 0x0800000, 0x200000, CRC(436d1b31) SHA1(059776d77b91377ed0bcfc278802d659c917fc0f) )
+ ROM_LOAD16_BYTE( "064-c4.c4", 0x0800001, 0x200000, CRC(f9c8dd26) SHA1(25a9eea1d49b21b4a988beb32c25bf2f7796f227) )
+ ROM_LOAD16_BYTE( "064-c5.c5", 0x1000000, 0x200000, CRC(8e34a9f4) SHA1(67b839b426ef3fad0a85d951fdd44c0a45c55226) )
+ ROM_LOAD16_BYTE( "064-c6.c6", 0x1000001, 0x200000, CRC(a43e4766) SHA1(54f282f2b1ff2934cca7acbb4386a2b99a29df3a) )
+ ROM_LOAD16_BYTE( "064-c7.c7", 0x1800000, 0x200000, CRC(59d97215) SHA1(85a960dc7f364df13ee0c2f99a4c53aefb081486) )
+ ROM_LOAD16_BYTE( "064-c8.c8", 0x1800001, 0x200000, CRC(fc092367) SHA1(69ff4ae909dd857de3ca8645d63f8b4bde117448) )
+ROM_END
+
+ROM_START( whpsp )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "090sp.p1", 0x100000, 0x100000, CRC(e7ea5216) SHA1(7383ecb99249ad3e56faecd033cfeeee498c2f9b) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "090bh.s1", CRC(f2de6500) SHA1(5acc7746394724903b0fd3d4b5acf5bab355c9f4) )
+
+ NEO_BIOS_AUDIO_128K( "090-m1.m1", CRC(28065668) SHA1(0c60d4afa1dccad0135e733104f056be73b54e4e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "090-v1.v1", 0x000000, 0x200000, CRC(30cf2709) SHA1(d1845033f16de2470afd3858ee0efb45176d9ed7) )
+ ROM_LOAD( "064-v2.v2", 0x200000, 0x200000, CRC(b6527edd) SHA1(2bcf5bfa6e117cf4a3728a5e5f5771313c93f22a) )
+ ROM_LOAD( "090-v3.v3", 0x400000, 0x200000, CRC(1908a7ce) SHA1(78f31bcfea33eb94752bbf5226c481baec1af5ac) )
+
+ ROM_REGION( 0x1c00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "090-c1.c1", 0x0000000, 0x400000, CRC(cd30ed9b) SHA1(839c20f7ff31251acc875ae402b5d267e55510c7) )
+ ROM_LOAD16_BYTE( "090-c2.c2", 0x0000001, 0x400000, CRC(10eed5ee) SHA1(12131b1c8c017ea77a98c044b392a5db6aad0143) )
+ ROM_LOAD16_BYTE( "064-c3.c3", 0x0800000, 0x200000, CRC(436d1b31) SHA1(059776d77b91377ed0bcfc278802d659c917fc0f) )
+ ROM_LOAD16_BYTE( "064-c4.c4", 0x0800001, 0x200000, CRC(f9c8dd26) SHA1(25a9eea1d49b21b4a988beb32c25bf2f7796f227) )
+ ROM_LOAD16_BYTE( "064-c5.c5", 0x1000000, 0x200000, CRC(8e34a9f4) SHA1(67b839b426ef3fad0a85d951fdd44c0a45c55226) )
+ ROM_LOAD16_BYTE( "064-c6.c6", 0x1000001, 0x200000, CRC(a43e4766) SHA1(54f282f2b1ff2934cca7acbb4386a2b99a29df3a) )
+ ROM_LOAD16_BYTE( "064-c7.c7", 0x1800000, 0x200000, CRC(59d97215) SHA1(85a960dc7f364df13ee0c2f99a4c53aefb081486) )
+ ROM_LOAD16_BYTE( "064-c8.c8", 0x1800001, 0x200000, CRC(fc092367) SHA1(69ff4ae909dd857de3ca8645d63f8b4bde117448) )
+ROM_END
+
+ROM_START( whpss )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "090ss.p1", 0x100000, 0x100000, CRC(9c1a79d5) SHA1(13f924cf08d17205e10c282a9555d03a9e355112) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "090-s1.s1", CRC(174a880f) SHA1(c35d315d728d119a6e9aa42e0593937c90897449) )
+
+ NEO_BIOS_AUDIO_128K( "090-m1.m1", CRC(28065668) SHA1(0c60d4afa1dccad0135e733104f056be73b54e4e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "090-v1.v1", 0x000000, 0x200000, CRC(30cf2709) SHA1(d1845033f16de2470afd3858ee0efb45176d9ed7) )
+ ROM_LOAD( "064-v2.v2", 0x200000, 0x200000, CRC(b6527edd) SHA1(2bcf5bfa6e117cf4a3728a5e5f5771313c93f22a) )
+ ROM_LOAD( "090-v3.v3", 0x400000, 0x200000, CRC(1908a7ce) SHA1(78f31bcfea33eb94752bbf5226c481baec1af5ac) )
+
+ ROM_REGION( 0x1c00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "090ss.c1", 0x0000000, 0x400000, CRC(a56ebf84) SHA1(664bda43b529934a4594a205e578044acface2be) )
+ ROM_LOAD16_BYTE( "090ss.c2", 0x0000001, 0x400000, CRC(6d589146) SHA1(d24687310611ce4d61dd2e2743258d9ca8855c03) )
+ ROM_LOAD16_BYTE( "064-c3.c3", 0x0800000, 0x200000, CRC(436d1b31) SHA1(059776d77b91377ed0bcfc278802d659c917fc0f) )
+ ROM_LOAD16_BYTE( "064-c4.c4", 0x0800001, 0x200000, CRC(f9c8dd26) SHA1(25a9eea1d49b21b4a988beb32c25bf2f7796f227) )
+ ROM_LOAD16_BYTE( "064-c5.c5", 0x1000000, 0x200000, CRC(8e34a9f4) SHA1(67b839b426ef3fad0a85d951fdd44c0a45c55226) )
+ ROM_LOAD16_BYTE( "064-c6.c6", 0x1000001, 0x200000, CRC(a43e4766) SHA1(54f282f2b1ff2934cca7acbb4386a2b99a29df3a) )
+ ROM_LOAD16_BYTE( "064-c7.c7", 0x1800000, 0x200000, CRC(59d97215) SHA1(85a960dc7f364df13ee0c2f99a4c53aefb081486) )
+ ROM_LOAD16_BYTE( "064-c8.c8", 0x1800001, 0x200000, CRC(fc092367) SHA1(69ff4ae909dd857de3ca8645d63f8b4bde117448) )
+ROM_END
+
+
+ROM_START( wh1bs )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "053bs.p1", 0x000000, 0x080000, CRC(222ef9ea) SHA1(81bdded4fc61b321afc8ec050d192e4384d129cf) )
+ ROM_LOAD16_WORD_SWAP( "053-p2.p2", 0x080000, 0x080000, CRC(f198ed45) SHA1(24ccc091e97f63796562bb5b30df51f39bd504ef) )
+
+ NEO_SFIX_128K( "053-s1.s1", CRC(8c2c2d6b) SHA1(87fa79611c6f8886dcc8766814829c669c65b40f) )
+
+ NEO_BIOS_AUDIO_128K( "053-m1.m1", CRC(1bd9d04b) SHA1(65cd7b002123ed1a3111e3d942608d0082799ff3) )
+
+ ROM_REGION( 0x300000, "ymsnd", 0 )
+ ROM_LOAD( "053-v2.v2", 0x000000, 0x200000, CRC(a68df485) SHA1(007fa715423fba72c899cd3db3f4bec13281cf7a) )
+ ROM_LOAD( "053-v4.v4", 0x200000, 0x100000, CRC(7bea8f66) SHA1(428e8721bd87f7faa756adb1e12672219be46c1d) )
+
+ ROM_REGION( 0x600000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "053-c1.c1", 0x000000, 0x100000, CRC(85eb5bce) SHA1(3d03d29296ca6e6b5106aac4aaeec9d4b4ed1313) )
+ ROM_CONTINUE( 0x400000, 0x100000 )
+ ROM_LOAD16_BYTE( "053-c2.c2", 0x000001, 0x100000, CRC(ec93b048) SHA1(d4159210df94e259f874a4671d271ec27be13451) )
+ ROM_CONTINUE( 0x400001, 0x100000 )
+ ROM_LOAD16_BYTE( "053-c3.c3", 0x200000, 0x100000, CRC(0dd64965) SHA1(e97b3b8a461da5e8861b3dfdacb25e007ced37a1) )
+ ROM_LOAD16_BYTE( "053-c4.c4", 0x200001, 0x100000, CRC(9270d954) SHA1(a2ef909868f6b06cdcc22a63ddf6c96be12b999c) )
+ROM_END
+
+
+ROM_START( wh2bs )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "057bs.p1", 0x100000, 0x100000, CRC(6e6a0077) SHA1(a0a0eca1aff5dec55f863b1cb1f67bbe4ac3530a) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "057-s1.s1", CRC(fcaeb3a4) SHA1(1f3f85e38b8552333261c04ae5af0d6e3b310622) )
+
+ NEO_BIOS_AUDIO_128K( "057-m1.m1", CRC(8fa3bc77) SHA1(982f92978671e4ee66630948e6bb7565b37b5dc0) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "057-v1.v1", 0x000000, 0x200000, CRC(8877e301) SHA1(1bab988d74ea8fd12db201c257ec844622cf5f4e) )
+ ROM_LOAD( "057-v2.v2", 0x200000, 0x200000, CRC(c1317ff4) SHA1(4c28b2b5998abaeaa5143f2f3a9ba52c6041f4f3) )
+
+ ROM_REGION( 0xc00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "057-c1.c1", 0x000000, 0x200000, CRC(21c6bb91) SHA1(a2c17d0c91dd59528d8fa7fe110af8b20b25ff99) )
+ ROM_LOAD16_BYTE( "057-c2.c2", 0x000001, 0x200000, CRC(a3999925) SHA1(0ee861a77850d378d03c1bf00b9692abd860c759) )
+ ROM_LOAD16_BYTE( "057-c3.c3", 0x400000, 0x200000, CRC(b725a219) SHA1(4857687d156a9150a69b97d2729245a51c144a0c) )
+ ROM_LOAD16_BYTE( "057-c4.c4", 0x400001, 0x200000, CRC(8d96425e) SHA1(0f79c868a6a33ad25e38d842f30ec4440d809033) )
+ ROM_LOAD16_BYTE( "057-c5.c5", 0x800000, 0x200000, CRC(b20354af) SHA1(da7609fd467f2f4d71d92970f438a04d11ab1cc1) )
+ ROM_LOAD16_BYTE( "057-c6.c6", 0x800001, 0x200000, CRC(b13d1de3) SHA1(7d749c23a33d90fe50279e884540d71cf1aaaa6b) )
+ROM_END
+
+ROM_START( wh2ey )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "057ey.p1", 0x100000, 0x100000, CRC(07389ed9) SHA1(8c51b9f069a8de49bf313ec9222dddd09c520bfe) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "057-s1.s1", CRC(fcaeb3a4) SHA1(1f3f85e38b8552333261c04ae5af0d6e3b310622) )
+
+ NEO_BIOS_AUDIO_128K( "057-m1.m1", CRC(8fa3bc77) SHA1(982f92978671e4ee66630948e6bb7565b37b5dc0) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "057-v1.v1", 0x000000, 0x200000, CRC(8877e301) SHA1(1bab988d74ea8fd12db201c257ec844622cf5f4e) )
+ ROM_LOAD( "057-v2.v2", 0x200000, 0x200000, CRC(c1317ff4) SHA1(4c28b2b5998abaeaa5143f2f3a9ba52c6041f4f3) )
+
+ ROM_REGION( 0xc00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "057-c1.c1", 0x000000, 0x200000, CRC(21c6bb91) SHA1(a2c17d0c91dd59528d8fa7fe110af8b20b25ff99) )
+ ROM_LOAD16_BYTE( "057-c2.c2", 0x000001, 0x200000, CRC(a3999925) SHA1(0ee861a77850d378d03c1bf00b9692abd860c759) )
+ ROM_LOAD16_BYTE( "057-c3.c3", 0x400000, 0x200000, CRC(b725a219) SHA1(4857687d156a9150a69b97d2729245a51c144a0c) )
+ ROM_LOAD16_BYTE( "057-c4.c4", 0x400001, 0x200000, CRC(8d96425e) SHA1(0f79c868a6a33ad25e38d842f30ec4440d809033) )
+ ROM_LOAD16_BYTE( "057-c5.c5", 0x800000, 0x200000, CRC(b20354af) SHA1(da7609fd467f2f4d71d92970f438a04d11ab1cc1) )
+ ROM_LOAD16_BYTE( "057-c6.c6", 0x800001, 0x200000, CRC(b13d1de3) SHA1(7d749c23a33d90fe50279e884540d71cf1aaaa6b) )
+ROM_END
+
+ROM_START( wh2ja ) // World Heroes 2 Jet old set that was in MAME
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "064-p1.p1", 0x100000, 0x100000, CRC(385a2e86) SHA1(cfde4a1aeae038a3d6ca9946065624f097682d3d) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "064-s1.s1", CRC(2a03998a) SHA1(5e33f469982f12d4622a06d323a345f192bf88e6) )
+
+ NEO_BIOS_AUDIO_128K( "064-m1.m1", CRC(d2eec9d3) SHA1(09478787045f1448d19d064dd3d540d1741fd619) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "064-v1.v1", 0x000000, 0x200000, CRC(aa277109) SHA1(35c22b15bb0a4d0ab118cb22a2d450d03995a17c) )
+ ROM_LOAD( "064-v2.v2", 0x200000, 0x200000, CRC(b6527edd) SHA1(2bcf5bfa6e117cf4a3728a5e5f5771313c93f22a) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "064a-c13.c1", 0x000000, 0x400000, CRC(771a6365) SHA1(646bdf3a79819fbca98f513c172b9e9500c073be) )
+ ROM_LOAD16_BYTE( "064a-c24.c2", 0x000001, 0x400000, CRC(e7863a05) SHA1(39d34119137216f914b8b8b7b3e622a6c210f130) )
+ ROM_LOAD16_BYTE( "064a-c57.c3", 0x800000, 0x400000, CRC(64594ed4) SHA1(982dbb932c0cb2eb9292bf19c463fd618c8180f3) )
+ ROM_LOAD16_BYTE( "064a-c68.c4", 0x800001, 0x400000, CRC(6e385398) SHA1(e74a0e72876bff8766152b76e5d94f2958b03cf2) )
+ROM_END
+
+ROM_START( wh2jb )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "064b.p1", 0x100000, 0x100000, CRC(80ce9674) SHA1(ca081af472a114a3ac0c54b1fd21fe565a45ff22) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "064-s1.s1", CRC(2a03998a) SHA1(5e33f469982f12d4622a06d323a345f192bf88e6) )
+
+ NEO_BIOS_AUDIO_128K( "064-m1.m1", CRC(d2eec9d3) SHA1(09478787045f1448d19d064dd3d540d1741fd619) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "064-v1.v1", 0x000000, 0x200000, CRC(aa277109) SHA1(35c22b15bb0a4d0ab118cb22a2d450d03995a17c) )
+ ROM_LOAD( "064-v2.v2", 0x200000, 0x200000, CRC(b6527edd) SHA1(2bcf5bfa6e117cf4a3728a5e5f5771313c93f22a) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "064-c1.c1", 0x000000, 0x200000, CRC(2ec87cea) SHA1(e713ec7839a7665edee6ee3f82a6e530b3b4bd7c) )
+ ROM_LOAD16_BYTE( "064-c2.c2", 0x000001, 0x200000, CRC(526b81ab) SHA1(b5f0a2f04489539ed6b9d0810b12787356c64b23) )
+ ROM_LOAD16_BYTE( "064-c3.c3", 0x400000, 0x200000, CRC(436d1b31) SHA1(059776d77b91377ed0bcfc278802d659c917fc0f) )
+ ROM_LOAD16_BYTE( "064-c4.c4", 0x400001, 0x200000, CRC(f9c8dd26) SHA1(25a9eea1d49b21b4a988beb32c25bf2f7796f227) )
+ ROM_LOAD16_BYTE( "064-c5.c5", 0x800000, 0x200000, CRC(8e34a9f4) SHA1(67b839b426ef3fad0a85d951fdd44c0a45c55226) )
+ ROM_LOAD16_BYTE( "064-c6.c6", 0x800001, 0x200000, CRC(a43e4766) SHA1(54f282f2b1ff2934cca7acbb4386a2b99a29df3a) )
+ ROM_LOAD16_BYTE( "064-c7.c7", 0xc00000, 0x200000, CRC(59d97215) SHA1(85a960dc7f364df13ee0c2f99a4c53aefb081486) )
+ ROM_LOAD16_BYTE( "064-c8.c8", 0xc00001, 0x200000, CRC(fc092367) SHA1(69ff4ae909dd857de3ca8645d63f8b4bde117448) )
+ROM_END
+
+
+
+GAME( 1995, whpb, whp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami, Dodowang", "World Heroes Perfect (Add Char)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, whpb2, whp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami, Dodowang", "World Heroes Perfect (Add Char - 2 with Icons)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, whpbh, whp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Dodowang", "World Heroes Perfect (Boss Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, whpbho, whp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Dodowang", "World Heroes Perfect (Boss Hack - Older - Has bug)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, whpbho2, whp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami, Dodowang", "World Heroes Perfect (Add Char - Old - BugFix)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, whpeh, whp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami, Dodowang, Fighters Kim", "World Heroes Perfect (Add Char - Pow hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, whpeho, whp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami, Dodowang, Fighters Kim", "World Heroes Perfect (Add Char - Pow hack - Old)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, whphez, whp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Zeng_K", "World Heroes Perfect (Boss hack by Zeng_K)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, whpsp, whp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "World Heroes Perfect (Special Boss hack by Yashional)", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, whpss, whp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Eddids", "World Heroes Perfect (SS v1.0 hack by Eddids (EGHT) 2007-12-25)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1992, wh1bs, wh1, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yumeji", "World Heroes (Boss hack by Yumeji)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1993, wh2bs, wh2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yumeji", "World Heroes 2 (Boss hack by Yumeji)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, wh2ey, wh2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "ZKW", "World Heroes 2 (Boss, PPX hack, remixed by ZKW)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, wh2ja, wh2j, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "ADK / SNK", "World Heroes 2 Jet (ADM-007)(ADH-007)(old set)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, wh2jb, wh2j, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "0days", "World Heroes 2 Jet (Boss hack by 0days (EGCG))", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/nmk16.cpp b/docs/release/src/hbmame/drivers/nmk16.cpp
new file mode 100644
index 00000000000..8054bde2364
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/nmk16.cpp
@@ -0,0 +1,65 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/nmk16.cpp"
+
+ROM_START( tdragonp ) // not working at all
+ ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 code -bitswapped- */
+ ROM_LOAD16_BYTE( "91070_68k.8p", 0x00000, 0x20000, CRC(6930fffc) SHA1(571cc735dca654b77cd759b6cc52a74c24d88865) )
+ ROM_LOAD16_BYTE( "91070_68k.7p", 0x00001, 0x20000, CRC(c2d90c90) SHA1(d6c3dd955e516e9dc5efbb7aebc6dee9c49a8c98) )
+ ROM_FILL(0, 1, 0) // fix stack
+ ROM_FILL(2, 2, 0)
+
+ ROM_REGION( 0x020000, "fgtile", 0 )
+ ROM_LOAD( "91070.6", 0x000000, 0x20000, CRC(fe365920) SHA1(7581931cb95cd5a8ed40e4f5385b533e3d19af22) ) /* 8x8 tiles */
+
+ ROM_REGION( 0x100000, "bgtile", 0 )
+ ROM_LOAD( "91070.5", 0x000000, 0x100000, CRC(d0bde826) SHA1(3b74d5fc88a4a9329e101ee72f393608d327d816) ) /* 16x16 tiles */
+
+ ROM_REGION( 0x100000, "sprites", 0 )
+ ROM_LOAD16_WORD_SWAP( "91070.4", 0x000000, 0x100000, CRC(3eedc2fe) SHA1(9f48986c231a8fbc07f2b39b2017d1e967b2ed3c) ) /* Sprites */
+
+ ROM_REGION( 0x010000, "audiocpu", 0 ) /* Code for (unknown?) CPU */
+ ROM_LOAD( "91070.1", 0x00000, 0x10000, CRC(bf493d74) SHA1(6f8f5eff4b71fb6cabda10075cfa88a3f607859e) )
+
+ ROM_REGION( 0x080000, "oki1", 0 ) /* OKIM6295 samples */
+ ROM_LOAD( "91070.3", 0x00000, 0x80000, CRC(ae6875a8) SHA1(bfdb350b3d3fce2bead1ac60875beafe427765ed) ) /* 0x20000 - 0x80000 banked */
+
+ ROM_REGION( 0x080000, "oki2", 0 ) /* OKIM6295 samples */
+ ROM_LOAD( "91070.2", 0x00000, 0x80000, CRC(ecfea43e) SHA1(d664dfa6698fec8e602523bdae16068f1ff6547b) ) /* 0x20000 - 0x80000 banked */
+
+ ROM_REGION( 0x0200, "proms", 0 )
+ ROM_LOAD( "91070.9", 0x0000, 0x0100, CRC(cfdbb86c) SHA1(588822f6308a860937349c9106c2b4b1a75823ec) ) /* unknown */
+ ROM_LOAD( "91070.10", 0x0100, 0x0100, CRC(e6ead349) SHA1(6d81b1c0233580aa48f9718bade42d640e5ef3dd) ) /* unknown */
+ROM_END
+
+
+ROM_START( tdragon2p )
+ ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "6p.rom", 0x00000, 0x80000, CRC(f99f4bf8) SHA1(34dfc188d94b89efdaa61cfc40af88868d7f22db) )
+
+ ROM_REGION( 0x20000, "audiocpu", 0 ) /* Z80 code */
+ ROM_LOAD( "5.bin", 0x00000, 0x20000, CRC(b870be61) SHA1(ea5d45c3a3ab805e55806967f00167cf6366212e) )
+
+ ROM_REGION( 0x020000, "fgtile", 0 )
+ ROM_LOAD( "1.bin", 0x000000, 0x020000, CRC(d488aafa) SHA1(4d05e7ca075b638dd90ae4c9f224817a8a3ae9f3) ) /* 8x8 tiles */
+
+ ROM_REGION( 0x200000, "bgtile", 0 )
+ ROM_LOAD( "ww930914.2", 0x000000, 0x200000, CRC(f968c65d) SHA1(fd6d21bba53f945b1597d7d0735bc62dd44d5498) ) /* 16x16 tiles */
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_WORD_SWAP( "ww930917.7", 0x000000, 0x200000, CRC(b98873cb) SHA1(cc19200865176e940ff68e12de81f029b51c2084) ) /* Sprites */
+ ROM_LOAD16_WORD_SWAP( "ww930918.8", 0x200000, 0x200000, CRC(baee84b2) SHA1(b325b00e6147266dbdc840e03556004531dc2038) )
+
+ ROM_REGION( 0x240000, "oki1", 0 ) /* OKIM6295 samples */
+ ROM_LOAD( "ww930916.4", 0x040000, 0x200000, CRC(07c35fe6) SHA1(33547bd88764704310f2ef8cf3bfe21ceb56d5b7) ) /* all banked */
+
+ ROM_REGION( 0x240000, "oki2", 0 ) /* OKIM6295 samples */
+ ROM_LOAD( "ww930915.3", 0x040000, 0x200000, CRC(82025bab) SHA1(ac6053700326ea730d00ec08193e2c8a2a019f0b) ) /* all banked */
+
+ ROM_REGION( 0x0200, "proms", 0 )
+ ROM_LOAD( "9.bpr", 0x0000, 0x0100, CRC(435653a2) SHA1(575b4a46ea65179de3042614da438d2f6d8b572e) ) /* unknown */
+ ROM_LOAD( "10.bpr", 0x0100, 0x0100, CRC(e6ead349) SHA1(6d81b1c0233580aa48f9718bade42d640e5ef3dd) ) /* unknown */
+ROM_END
+
+GAME( 1991, tdragonp, tdragon, tdragon, tdragon, driver_device, 0, ROT270, "Trap15", "Thunder Dragon Practice Mode (9th Jan. 1992 - v1.01)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1993, tdragon2p,tdragon2, tdragon2, tdragon2, nmk16_state, banked_audiocpu, ROT270, "Trap15", "Thunder Dragon 2 Practice Mode (9th Nov. 1993 - v1.0)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
diff --git a/docs/release/src/hbmame/drivers/pacland.cpp b/docs/release/src/hbmame/drivers/pacland.cpp
new file mode 100644
index 00000000000..d84c33a08b7
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/pacland.cpp
@@ -0,0 +1,106 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/pacland.cpp"
+
+ROM_START( mariopac )
+ ROM_REGION( 0x20000, "maincpu", 0 )
+ ROM_LOAD( "pl5_01b.8b", 0x08000, 0x4000, CRC(b0ea7631) SHA1(424afa6f397310c7af39c9e8b580aa9ccd42c39c) )
+ ROM_LOAD( "pl5_02.8d", 0x0C000, 0x4000, CRC(d903e84e) SHA1(25338726227bfbec65847879aac5228a6a307db4) )
+ ROM_LOAD( "pl1_3.8e", 0x10000, 0x4000, CRC(aa9fa739) SHA1(7b1f7857eb5f68e166b1f8988c82051aaf05df48) )
+ ROM_LOAD( "pl1_4.8f", 0x14000, 0x4000, CRC(2b895a90) SHA1(820f8873c6a5a736089406d0f03d491dfb82d00d) )
+ ROM_LOAD( "pl1_5.8h", 0x18000, 0x4000, CRC(7af66200) SHA1(f44161ded1633e9801b7a9cd84d481e53823f5d9) )
+ ROM_LOAD( "pl3_6.8j", 0x1c000, 0x4000, CRC(2ffe3319) SHA1(c2540321cd5a1fe29ecb077abdf8f997893192e9) )
+
+ ROM_REGION( 0x10000, "mcu", 0 )
+ ROM_LOAD( "pl1_7.3e", 0x8000, 0x2000, CRC(8c5becae) SHA1(14d67136395c4c64472980a69648ce2d479ae67f) )
+ ROM_LOAD( "cus60", 0xf000, 0x1000, CRC(6ef08fb3) SHA1(4842590d60035a0059b0899eb2d5f58ae72c2529) )
+
+ ROM_REGION( 0x02000, "gfx1", 0 )
+ ROM_LOAD( "mariopac_12.6n", 0x00000, 0x2000, CRC(abba0923) SHA1(2286b0d162e5502160895940d0c9637abe5d6d2f) )
+
+ ROM_REGION( 0x02000, "gfx2", 0 )
+ ROM_LOAD( "pl4_13.6t", 0x00000, 0x2000, CRC(3ae582fd) SHA1(696b2cfadb6b071de8e43d20cd65b37713ca3b30) )
+
+ ROM_REGION( 0x10000, "gfx3", 0 )
+ ROM_LOAD( "mariopac.6f", 0x00000, 0x4000, CRC(98439154) SHA1(7bad68705ae3d9fa6e03ad7dc9421cf6063e1669) )
+ ROM_LOAD( "mariopac.6e", 0x04000, 0x4000, CRC(d0c1f225) SHA1(bcaa68922e49b7257959471641d3c91e505a8d53) )
+ ROM_LOAD( "mariopac.7e", 0x08000, 0x4000, CRC(6005b277) SHA1(acacffe38edfc2d325dc286d182253ee5bb62489) )
+ ROM_LOAD( "mariopac.7f", 0x0c000, 0x4000, CRC(eeed9880) SHA1(e037dd299895db22a88c1d32dda157833b1e8a09) )
+
+ ROM_REGION( 0x1400, "proms", 0 )
+ ROM_LOAD( "pl1-2.1t", 0x0000, 0x0400, CRC(472885de) SHA1(8d552c90b8d5bc6ad6c60934c00f4303cd180ce7) )
+ ROM_LOAD( "pl1-1.1r", 0x0400, 0x0400, CRC(a78ebdaf) SHA1(8ea215701eb5e1a2a329ef92c19fc69b18fc28c7) )
+ ROM_LOAD( "pl1-5.5t", 0x0800, 0x0400, CRC(4b7ee712) SHA1(dd0ec4c632d8b160f7b54d8f18fcf4ef1508d832) )
+ ROM_LOAD( "pl1-4.4n", 0x0c00, 0x0400, CRC(3a7be418) SHA1(475cdc68205e3acce83fe79b00b74c6a7e28dde4) )
+ ROM_LOAD( "pl1-3.6l", 0x1000, 0x0400, CRC(80558da8) SHA1(7e1483467817295f36d1e2bdb32934c4f2617d52) )
+ROM_END
+
+ROM_START( paclandb ) // cus60 is the only different rom
+ ROM_REGION( 0x20000, "maincpu", 0 )
+ ROM_LOAD( "pl5_01b.8b", 0x08000, 0x4000, CRC(b0ea7631) SHA1(424afa6f397310c7af39c9e8b580aa9ccd42c39c) )
+ ROM_LOAD( "pl5_02.8d", 0x0C000, 0x4000, CRC(d903e84e) SHA1(25338726227bfbec65847879aac5228a6a307db4) )
+ ROM_LOAD( "pl1_3.8e", 0x10000, 0x4000, CRC(aa9fa739) SHA1(7b1f7857eb5f68e166b1f8988c82051aaf05df48) )
+ ROM_LOAD( "pl1_4.8f", 0x14000, 0x4000, CRC(2b895a90) SHA1(820f8873c6a5a736089406d0f03d491dfb82d00d) )
+ ROM_LOAD( "pl1_5.8h", 0x18000, 0x4000, CRC(7af66200) SHA1(f44161ded1633e9801b7a9cd84d481e53823f5d9) )
+ ROM_LOAD( "pl3_6.8j", 0x1c000, 0x4000, CRC(2ffe3319) SHA1(c2540321cd5a1fe29ecb077abdf8f997893192e9) )
+
+ ROM_REGION( 0x10000, "mcu", 0 )
+ ROM_LOAD( "pl1_7.3e", 0x8000, 0x2000, CRC(8c5becae) SHA1(14d67136395c4c64472980a69648ce2d479ae67f) )
+ ROM_LOAD( "cus60", 0xf000, 0x1000, CRC(6ef08fb3) SHA1(4842590d60035a0059b0899eb2d5f58ae72c2529) )
+
+ ROM_REGION( 0x02000, "gfx1", 0 )
+ ROM_LOAD( "pl2_12.6n", 0x00000, 0x2000, CRC(a63c8726) SHA1(b15903fa2267375280af03af0a7157e1b0bcb86d) )
+
+ ROM_REGION( 0x02000, "gfx2", 0 )
+ ROM_LOAD( "pl4_13.6t", 0x00000, 0x2000, CRC(3ae582fd) SHA1(696b2cfadb6b071de8e43d20cd65b37713ca3b30) )
+
+ ROM_REGION( 0x10000, "gfx3", 0 )
+ ROM_LOAD( "pl1-9.6f", 0x00000, 0x4000, CRC(f5d5962b) SHA1(8d008a9bc06dc562c241955d9c551647b5c1f4e9) )
+ ROM_LOAD( "pl1-8.6e", 0x04000, 0x4000, CRC(a2ebfa4a) SHA1(4a2a2b43a23a7a46266751415d1bde118143429c) )
+ ROM_LOAD( "pl1-10.7e", 0x08000, 0x4000, CRC(c7cf1904) SHA1(7ca8ed20ee32eb8609ac96b4e4fcb3b6027b598a) )
+ ROM_LOAD( "pl1-11.7f", 0x0c000, 0x4000, CRC(6621361a) SHA1(4efa40adba803006e86d5e12514983d4132b5efb) )
+
+ ROM_REGION( 0x1400, "proms", 0 )
+ ROM_LOAD( "pl1-2.1t", 0x0000, 0x0400, CRC(472885de) SHA1(8d552c90b8d5bc6ad6c60934c00f4303cd180ce7) )
+ ROM_LOAD( "pl1-1.1r", 0x0400, 0x0400, CRC(a78ebdaf) SHA1(8ea215701eb5e1a2a329ef92c19fc69b18fc28c7) )
+ ROM_LOAD( "pl1-5.5t", 0x0800, 0x0400, CRC(4b7ee712) SHA1(dd0ec4c632d8b160f7b54d8f18fcf4ef1508d832) )
+ ROM_LOAD( "pl1-4.4n", 0x0c00, 0x0400, CRC(3a7be418) SHA1(475cdc68205e3acce83fe79b00b74c6a7e28dde4) )
+ ROM_LOAD( "pl1-3.6l", 0x1000, 0x0400, CRC(80558da8) SHA1(7e1483467817295f36d1e2bdb32934c4f2617d52) )
+ROM_END
+
+ROM_START( paclandd )
+ ROM_REGION( 0x20000, "maincpu", 0 )
+ ROM_LOAD( "pl5_01b.8b", 0x08000, 0x4000, CRC(b0ea7631) SHA1(424afa6f397310c7af39c9e8b580aa9ccd42c39c) )
+ ROM_LOAD( "pl5_02.8d", 0x0C000, 0x4000, CRC(d903e84e) SHA1(25338726227bfbec65847879aac5228a6a307db4) )
+ ROM_LOAD( "pl1_3.8e", 0x10000, 0x4000, CRC(aa9fa739) SHA1(7b1f7857eb5f68e166b1f8988c82051aaf05df48) )
+ ROM_LOAD( "pl1_4.8f", 0x14000, 0x4000, CRC(2b895a90) SHA1(820f8873c6a5a736089406d0f03d491dfb82d00d) )
+ ROM_LOAD( "pl1_5.8h", 0x18000, 0x4000, CRC(7af66200) SHA1(f44161ded1633e9801b7a9cd84d481e53823f5d9) )
+ ROM_LOAD( "pl3_6.8j", 0x1c000, 0x4000, CRC(2ffe3319) SHA1(c2540321cd5a1fe29ecb077abdf8f997893192e9) )
+
+ ROM_REGION( 0x10000, "mcu", 0 )
+ ROM_LOAD( "pl1_7.3e", 0x8000, 0x2000, CRC(8c5becae) SHA1(14d67136395c4c64472980a69648ce2d479ae67f) )
+ ROM_LOAD( "cus60", 0xf000, 0x1000, CRC(6ef08fb3) SHA1(4842590d60035a0059b0899eb2d5f58ae72c2529) )
+
+ ROM_REGION( 0x02000, "gfx1", 0 )
+ ROM_LOAD( "pl2_12.6n", 0x00000, 0x2000, CRC(a63c8726) SHA1(b15903fa2267375280af03af0a7157e1b0bcb86d) )
+
+ ROM_REGION( 0x02000, "gfx2", 0 )
+ ROM_LOAD( "pl4_13.6t", 0x00000, 0x2000, CRC(3ae582fd) SHA1(696b2cfadb6b071de8e43d20cd65b37713ca3b30) )
+
+ ROM_REGION( 0x10000, "gfx3", 0 )
+ ROM_LOAD( "paclandd.6f", 0x00000, 0x4000, CRC(3dba9085) SHA1(3ade36e6c04ef40d4dcdf53cc374c600de9dbb75) )
+ ROM_LOAD( "paclandd.6e", 0x04000, 0x4000, CRC(7f089223) SHA1(129344647ae4898c6d70f15e96c13eca12a5f6ca) )
+ ROM_LOAD( "paclandd.7e", 0x08000, 0x4000, CRC(3f4b4d81) SHA1(e6acf8164a9d9fc31a12722e466c4dfded3022fe) )
+ ROM_LOAD( "paclandd.7f", 0x0c000, 0x4000, CRC(52c2cb37) SHA1(47833d98ccbee1098910778ea1a26f58b485a76a) )
+
+ ROM_REGION( 0x1400, "proms", 0 )
+ ROM_LOAD( "pl1-2.1t", 0x0000, 0x0400, CRC(472885de) SHA1(8d552c90b8d5bc6ad6c60934c00f4303cd180ce7) )
+ ROM_LOAD( "pl1-1.1r", 0x0400, 0x0400, CRC(a78ebdaf) SHA1(8ea215701eb5e1a2a329ef92c19fc69b18fc28c7) )
+ ROM_LOAD( "pl1-5.5t", 0x0800, 0x0400, CRC(4b7ee712) SHA1(dd0ec4c632d8b160f7b54d8f18fcf4ef1508d832) )
+ ROM_LOAD( "pl1-4.4n", 0x0c00, 0x0400, CRC(3a7be418) SHA1(475cdc68205e3acce83fe79b00b74c6a7e28dde4) )
+ ROM_LOAD( "pl1-3.6l", 0x1000, 0x0400, CRC(80558da8) SHA1(7e1483467817295f36d1e2bdb32934c4f2617d52) )
+ROM_END
+
+GAME( 2001, mariopac, pacland, pacland, pacland, driver_device, 0, ROT0, "Marks Hacks", "Mario in Pac-Land", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, paclandb, pacland, pacland, pacland, driver_device, 0, ROT0, "Namco", "Pac-Land (Benelux Edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, paclandd, pacland, pacland, pacland, driver_device, 0, ROT0, "Blue Justice", "Pac-Land", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/pacman.cpp b/docs/release/src/hbmame/drivers/pacman.cpp
new file mode 100644
index 00000000000..35b41f73e98
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/pacman.cpp
@@ -0,0 +1,3676 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+/*******************************************************
+ Puckman and Pacman
+
+ Puckman is made by Namco and has these ghost names:
+ * Normal:
+ ** Oikake - Akabei
+ ** Machibuse - Pinky
+ ** Kimagure - Aosuke
+ ** Otoboke - Guzuta
+ * Alternate:
+ ** Urchin - Macky
+ ** Romp - Micky
+ ** Stylist - Mucky
+ ** Crybaby - Mocky
+
+ Clones include Hangly Man, and Newpuck-X
+
+ Pac-Man is made by Midway and has these ghost names:
+ * Normal:
+ ** Shadow - Blinky
+ ** Speedy - Pinky
+ ** Bashful - Inky
+ ** Pokey - Clyde
+ * Alternate:
+ ** AAAAAAAA - BBBBBBB
+ ** CCCCCCCC - DDDDDDD
+ ** EEEEEEEE - FFFFFFF
+ ** GGGGGGGG - HHHHHHH
+
+ Clones include most hacks
+
+ See the MAME source code for hardware information.
+********************************************************/
+
+#include "emu.h"
+#include "cpu/z80/z80.h"
+#include "pacman.h"
+#include "sound/namco.h"
+#include "machine/nvram.h"
+
+
+
+/*************************************
+ *
+ * Constants
+ *
+ *************************************/
+
+#define MASTER_CLOCK (XTAL_18_432MHz)
+
+#define PIXEL_CLOCK (MASTER_CLOCK/3)
+
+/* H counts from 128->511, HBLANK starts at 144 and ends at 240 */
+#define HTOTAL (384)
+#define HBEND (0) /*(96+16)*/
+#define HBSTART (288) /*(16)*/
+
+#define VTOTAL (264)
+#define VBEND (0) /*(16)*/
+#define VBSTART (224) /*(224+16)*/
+
+
+
+/*************************************
+ *
+ * Machine init
+ *
+ *************************************/
+
+
+/*************************************
+ *
+ * Interrupts
+ *
+ *************************************/
+
+WRITE8_MEMBER(pacman_state::irq_mask_w)
+{
+ m_irq_mask = data & 1;
+}
+
+WRITE8_MEMBER(pacman_state::pacman_interrupt_vector_w)
+{
+ m_maincpu->set_input_line_vector(0, data);
+ m_maincpu->set_input_line(0, CLEAR_LINE);
+}
+
+/* bit0 flags if memory poke already done */
+
+INTERRUPT_GEN_MEMBER( pacman_state::vblank_irq )
+{
+ uint8_t cheat_exist = m_io_fake.read_safe(120);
+
+ /* always signal a normal VBLANK */
+ if(m_irq_mask)
+ device.execute().set_input_line(0, HOLD_LINE);
+
+ if (cheat_exist != 120)
+ {
+ uint8_t cheating = ((cheat_exist & 7) > 2); /* are we cheating? */
+
+ if (cheating != (m_speedcheat & 1)) /* if status just changed, alter program bytes */
+ {
+ uint8_t *RAM = machine().root_device().memregion("maincpu")->base();
+ m_speedcheat = (m_speedcheat & 2) | cheating;
+
+ if (cheating) /* activate the cheat */
+ {
+ if (RAM[0x180b] == 0xbe) RAM[0x180b] = 1; /* pacman */
+ else
+ if (RAM[0x182d] == 0xbe) RAM[0x182d] = 1; /* pacplus */
+ }
+ else /* remove the cheat */
+ {
+ if (RAM[0x180b] == 1) RAM[0x180b] = 0xbe; /* pacman */
+ else
+ if (RAM[0x182d] == 1) RAM[0x182d] = 0xbe; /* pacplus */
+ }
+ }
+ }
+}
+
+
+/*************************************
+ *
+ * LEDs/coin counters
+ *
+ *************************************/
+
+WRITE8_MEMBER(pacman_state::pacman_leds_w)
+{
+ output().set_led_value(offset, BIT(data, 0));
+}
+
+
+WRITE8_MEMBER(pacman_state::pacman_coin_counter_w)
+{
+ machine().bookkeeping().coin_counter_w(offset, BIT(data, 0));
+}
+
+
+WRITE8_MEMBER(pacman_state::pacman_coin_lockout_global_w)
+{
+ machine().bookkeeping().coin_lockout_global_w(~data & 1);
+}
+
+
+READ8_MEMBER( pacman_state::pacman_read_nop )
+{
+ return 0xbf;
+}
+
+/*************************************
+ *
+ * Main CPU memory handlers
+ *
+ *************************************/
+
+static ADDRESS_MAP_START( pacman_map, AS_PROGRAM, 8, pacman_state )
+ ADDRESS_MAP_GLOBAL_MASK(0x7fff) /* A15 not connected at the CPU */
+ AM_RANGE(0x0000, 0x3fff) AM_ROM
+ AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0x2000) AM_RAM_WRITE(pacman_videoram_w) AM_SHARE("videoram")
+ AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0x2000) AM_RAM_WRITE(pacman_colorram_w) AM_SHARE("colorram")
+ AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0x2000) AM_READ(pacman_read_nop)
+ AM_RANGE(0x4c00, 0x4fef) AM_MIRROR(0x2000) AM_RAM
+ AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0x2000) AM_RAM AM_SHARE("spriteram")
+ AM_RANGE(0x5000, 0x5000) AM_WRITE(irq_mask_w)
+ AM_RANGE(0x5001, 0x5001) AM_DEVWRITE("namco", namco_device, pacman_sound_enable_w)
+ AM_RANGE(0x5002, 0x5002) AM_WRITENOP
+ AM_RANGE(0x5003, 0x5003) AM_WRITE(pacman_flipscreen_w)
+ AM_RANGE(0x5004, 0x5005) AM_WRITE(pacman_leds_w)
+ AM_RANGE(0x5006, 0x5006) AM_WRITENOP // AM_WRITE(pacman_coin_lockout_global_w)
+ AM_RANGE(0x5007, 0x5007) AM_WRITE(pacman_coin_counter_w)
+ AM_RANGE(0x5040, 0x505f) AM_DEVWRITE("namco", namco_device, pacman_sound_w)
+ AM_RANGE(0x5060, 0x506f) AM_WRITEONLY AM_SHARE("spriteram2")
+ AM_RANGE(0x5070, 0x5080) AM_WRITENOP
+ AM_RANGE(0x50c0, 0x50c0) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
+ AM_RANGE(0x5000, 0x5000) AM_READ_PORT("IN0")
+ AM_RANGE(0x5040, 0x5040) AM_READ_PORT("IN1")
+ AM_RANGE(0x5080, 0x5080) AM_READ_PORT("DSW1")
+ AM_RANGE(0x50c0, 0x50c0) AM_READ_PORT("DSW2")
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( woodpek_map, AS_PROGRAM, 8, pacman_state )
+ AM_RANGE(0x0000, 0x3fff) AM_ROM
+ AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_videoram_w) AM_SHARE("videoram")
+ AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_colorram_w) AM_SHARE("colorram")
+ AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0xa000) AM_READ(pacman_read_nop)
+ AM_RANGE(0x4c00, 0x4fef) AM_MIRROR(0xa000) AM_RAM
+ AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0xa000) AM_RAM AM_SHARE("spriteram")
+ AM_RANGE(0x5000, 0x5000) AM_MIRROR(0x8000) AM_WRITE(irq_mask_w)
+ AM_RANGE(0x5001, 0x5001) AM_MIRROR(0x8000) AM_DEVWRITE("namco", namco_device, pacman_sound_enable_w)
+ AM_RANGE(0x5002, 0x5002) AM_MIRROR(0x8000) AM_WRITENOP
+ AM_RANGE(0x5003, 0x5003) AM_MIRROR(0x8000) AM_WRITE(pacman_flipscreen_w)
+ AM_RANGE(0x5004, 0x5005) AM_MIRROR(0x8000) AM_WRITE(pacman_leds_w)
+ AM_RANGE(0x5006, 0x5006) AM_MIRROR(0x8000) AM_WRITENOP // AM_WRITE(pacman_coin_lockout_global_w)
+ AM_RANGE(0x5007, 0x5007) AM_MIRROR(0x8000) AM_WRITE(pacman_coin_counter_w)
+ AM_RANGE(0x5040, 0x505f) AM_MIRROR(0x8000) AM_DEVWRITE("namco", namco_device, pacman_sound_w)
+ AM_RANGE(0x5060, 0x506f) AM_MIRROR(0x8000) AM_WRITEONLY AM_SHARE("spriteram2")
+ AM_RANGE(0x5070, 0x5080) AM_MIRROR(0x8000) AM_WRITENOP
+ AM_RANGE(0x50c0, 0x50c0) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
+ AM_RANGE(0x5000, 0x5000) AM_MIRROR(0x8000) AM_READ_PORT("IN0")
+ AM_RANGE(0x5040, 0x5040) AM_MIRROR(0x8000) AM_READ_PORT("IN1")
+ AM_RANGE(0x5080, 0x5080) AM_MIRROR(0x8000) AM_READ_PORT("DSW1")
+ AM_RANGE(0x50c0, 0x50c0) AM_MIRROR(0x8000) AM_READ_PORT("DSW2")
+ AM_RANGE(0x8000, 0xbfff) AM_ROM
+ AM_RANGE(0xff00, 0xffff) AM_RAM
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( patched_opcodes_map, AS_DECRYPTED_OPCODES, 8, pacman_state )
+ AM_RANGE(0x0000, 0x3fff) AM_MIRROR(0x8000) AM_ROM AM_SHARE("patched_opcodes")
+ADDRESS_MAP_END
+/*************************************
+ *
+ * Main CPU port handlers
+ *
+ *************************************/
+
+static ADDRESS_MAP_START( writeport, AS_IO, 8, pacman_state )
+ AM_RANGE(0x0000, 0xffff) AM_WRITE(pacman_interrupt_vector_w)
+ADDRESS_MAP_END
+
+/*************************************
+ *
+ * Port definitions
+ *
+ *************************************/
+
+/* No alternate ghost names, no fake input port - for mspacman and mspacatk */
+INPUT_PORTS_START( mspacpls )
+ PORT_START ("IN0")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY
+ /* Press this while playing pacman to instantly finish the level - HBMAME */
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Finish Level (Cheat)") PORT_CODE(KEYCODE_8)
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE1 )
+
+ PORT_START ("IN1")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL
+ PORT_SERVICE( 0x10, IP_ACTIVE_LOW )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 ) /* Also invincibility when playing */
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 ) /* Also speed-up when playing */
+ PORT_DIPNAME( 0x80, 0x80, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW1:1")
+ PORT_DIPSETTING( 0x80, DEF_STR( Upright ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
+
+ PORT_START ("DSW1")
+ PORT_DIPNAME( 0x03, 0x01, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:2,3")
+ 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:4,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:6,7")
+ 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:8")
+ PORT_DIPSETTING( 0x40, DEF_STR( Normal ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Hard ) )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
+
+ PORT_START ("DSW2")
+ PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED )
+INPUT_PORTS_END
+
+/* No alternate ghost names */
+INPUT_PORTS_START( mspacman )
+ PORT_INCLUDE( mspacpls )
+
+ PORT_START ("FAKE")
+ /* This fake input port is used to get the status of the fire button */
+ /* and activate the speedup cheat if it is. */
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME( "Speed (Cheat)" )
+ PORT_DIPNAME( 0x06, 0x02, "Speed Cheat" )
+ PORT_DIPSETTING( 0x00, "Disabled" )
+ PORT_DIPSETTING( 0x02, "Enabled with Button" )
+ PORT_DIPSETTING( 0x04, "Enabled Always" )
+INPUT_PORTS_END
+
+
+/* No fake dip */
+INPUT_PORTS_START( pacman0 )
+ PORT_INCLUDE( mspacpls )
+
+ PORT_MODIFY("DSW1")
+ PORT_DIPNAME( 0x80, 0x80, "Ghost Names" ) PORT_DIPLOCATION("SW1:9")
+ PORT_DIPSETTING( 0x80, DEF_STR( Normal ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Alternate ) )
+INPUT_PORTS_END
+
+
+/* for newpuc2, pheartsb - no alternate ghost names, and the bonuses are 10k higher */
+INPUT_PORTS_START( newpuc2 )
+ PORT_INCLUDE( mspacman )
+
+ PORT_MODIFY("DSW1")
+ PORT_DIPNAME( 0x30, 0x00, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW1:6,7")
+ PORT_DIPSETTING( 0x00, "20000" )
+ PORT_DIPSETTING( 0x10, "25000" )
+ PORT_DIPSETTING( 0x20, "30000" )
+ PORT_DIPSETTING( 0x30, DEF_STR( None ) )
+INPUT_PORTS_END
+
+
+/* for newpuc2b, nwpuc2b - no alternate ghost names, and the bonuses are a lot higher */
+INPUT_PORTS_START( newpuc2b )
+ PORT_INCLUDE( mspacman )
+
+ PORT_MODIFY("DSW1")
+ PORT_DIPNAME( 0x30, 0x00, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW1:6,7")
+ PORT_DIPSETTING( 0x00, "30000" )
+ PORT_DIPSETTING( 0x10, "60000" )
+ PORT_DIPSETTING( 0x20, "90000" )
+ PORT_DIPSETTING( 0x30, DEF_STR( None ) )
+INPUT_PORTS_END
+
+/* for spuckman - alternate ghost names, and the bonuses are 10k higher */
+INPUT_PORTS_START( spuckman )
+ PORT_INCLUDE( newpuc2 )
+
+ PORT_MODIFY("DSW1")
+ PORT_DIPNAME( 0x80, 0x80, "Ghost Names" ) PORT_DIPLOCATION("SW1:9")
+ PORT_DIPSETTING( 0x80, DEF_STR( Normal ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Alternate ) )
+INPUT_PORTS_END
+
+/* All options available */
+INPUT_PORTS_START( pacman )
+ PORT_INCLUDE( pacman0 )
+
+ PORT_START ("FAKE")
+ /* This fake input port is used to get the status of the fire button */
+ /* and activate the speedup cheat if it is. */
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME( "Speed (Cheat)" )
+ PORT_DIPNAME( 0x06, 0x02, "Speed Cheat" )
+ PORT_DIPSETTING( 0x00, "Disabled" )
+ PORT_DIPSETTING( 0x02, "Enabled with Button" )
+ PORT_DIPSETTING( 0x04, "Enabled Always" )
+INPUT_PORTS_END
+
+
+/*************************************
+ *
+ * Graphics layouts
+ *
+ *************************************/
+
+static const gfx_layout tilelayout =
+{
+ 8,8, /* 8*8 characters */
+ RGN_FRAC(1,2), /* 256 characters */
+ 2, /* 2 bits per pixel */
+ { 0, 4 }, /* the two bitplanes for 4 pixels are packed into one byte */
+ { 8*8+0, 8*8+1, 8*8+2, 8*8+3, 0, 1, 2, 3 }, /* bits are packed in groups of four */
+ { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
+ 16*8 /* every char takes 16 bytes */
+};
+
+
+static const gfx_layout spritelayout =
+{
+ 16,16, /* 16*16 sprites */
+ RGN_FRAC(1,2), /* 64 sprites */
+ 2, /* 2 bits per pixel */
+ { 0, 4 }, /* the two bitplanes for 4 pixels are packed into one byte */
+ { 8*8, 8*8+1, 8*8+2, 8*8+3, 16*8+0, 16*8+1, 16*8+2, 16*8+3, 24*8+0, 24*8+1, 24*8+2, 24*8+3, 0, 1, 2, 3 },
+ { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, 32*8, 33*8, 34*8, 35*8, 36*8, 37*8, 38*8, 39*8 },
+ 64*8 /* every sprite takes 64 bytes */
+};
+
+
+static gfx_layout xtilelayout =
+{
+ 16,16, /* 16*16 characters */
+ RGN_FRAC(1,2), /* 256 characters */
+ 2, /* 2 bits per pixel */
+ { 0, 4 }, /* the two bitplanes for 4 pixels are packed into one byte */
+ { 0, 1, 2, 3, 128, 129, 130, 131, 256, 257, 258, 259, 384, 385, 386, 387 },
+ { 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 },
+ 64*8 /* every char takes 64 bytes */
+};
+
+
+static gfx_layout xspritelayout =
+{
+ 32,32, /* 32*32 sprites */
+ RGN_FRAC(1,2), /* 64 sprites */
+ 2, /* 2 bits per pixel */
+ { 0, 4 }, /* the two bitplanes for 4 pixels are packed into one byte */
+ { 0, 1, 2, 3, 256, 257, 258, 259, 512, 513, 514, 515, 768, 769, 770, 771,
+ 1024+0, 1024+1, 1024+2, 1024+3, 1024+256, 1024+257, 1024+258, 1024+259,
+ 1024+512, 1024+513, 1024+514, 1024+515, 1024+768, 1024+769, 1024+770, 1024+771 },
+ { 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,
+ 16*8, 17*8, 18*8, 19*8, 20*8, 21*8, 22*8, 23*8, 24*8, 25*8, 26*8, 27*8, 28*8, 29*8, 30*8, 31*8 },
+ 256*8 /* every sprite takes 256 bytes */
+};
+
+
+static GFXDECODE_START( pacman )
+ GFXDECODE_ENTRY( "gfx1", 0x0000, tilelayout, 0, 32 )
+ GFXDECODE_ENTRY( "gfx1", 0x1000, spritelayout, 0, 32 )
+GFXDECODE_END
+
+static GFXDECODE_START( pacmanx )
+ GFXDECODE_ENTRY( "gfx1", 0x0000, xtilelayout, 0, 32 )
+ GFXDECODE_ENTRY( "gfx1", 0x4000, xspritelayout, 0, 32 )
+GFXDECODE_END
+
+
+
+/*************************************
+ *
+ * Machine drivers
+ *
+ *************************************/
+
+static MACHINE_CONFIG_START( pacman, pacman_state )
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK/6)
+ MCFG_CPU_PROGRAM_MAP(pacman_map)
+ MCFG_CPU_IO_MAP(writeport)
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", pacman_state, vblank_irq)
+ MCFG_WATCHDOG_ADD("watchdog")
+ MCFG_WATCHDOG_VBLANK_INIT("screen", 16)
+
+ /* video hardware */
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
+ MCFG_SCREEN_UPDATE_DRIVER(pacman_state, screen_update_pacman)
+ MCFG_VIDEO_START_OVERRIDE(pacman_state,pacman)
+ MCFG_SCREEN_PALETTE("palette")
+ MCFG_PALETTE_ADD_INIT_BLACK("palette", 128*4)
+ MCFG_PALETTE_INDIRECT_ENTRIES(32)
+ MCFG_PALETTE_INIT_OWNER(pacman_state,pacman)
+ MCFG_GFXDECODE_ADD("gfxdecode", "palette", pacman)
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+ MCFG_SOUND_ADD("namco", NAMCO, MASTER_CLOCK/6/32)
+ MCFG_NAMCO_AUDIO_VOICES(3)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( pacmanx, pacman )
+ MCFG_SCREEN_MODIFY("screen")
+ MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK<<2, HTOTAL<<1, HBEND<<1, HBSTART<<1, VTOTAL<<1, VBEND<<1, VBSTART<<1)
+ MCFG_SCREEN_UPDATE_DRIVER(pacman_state, screen_update_pacmanx)
+ MCFG_VIDEO_START_OVERRIDE(pacman_state,pacmanx)
+ MCFG_GFXDECODE_MODIFY("gfxdecode", pacmanx)
+MACHINE_CONFIG_END
+
+
+static MACHINE_CONFIG_DERIVED( woodpek, pacman )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(woodpek_map)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( pacmanp, pacman )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_DECRYPTED_OPCODES_MAP(patched_opcodes_map)
+MACHINE_CONFIG_END
+
+/*************************************
+ *
+ * Driver initialization
+ *
+ *************************************/
+
+static uint8_t hbmame_pacplus_decode(offs_t addr, uint8_t e)
+{
+ static const unsigned char swap_xor_table[6][9] =
+ {
+ { 7,6,5,4,3,2,1,0, 0x00 },
+ { 7,6,5,4,3,2,1,0, 0x28 },
+ { 6,1,3,2,5,7,0,4, 0x96 },
+ { 6,1,5,2,3,7,0,4, 0xbe },
+ { 0,3,7,6,4,2,1,5, 0xd5 },
+ { 0,3,4,6,7,2,1,5, 0xdd }
+ };
+
+ static const int picktable[32] =
+ {
+ 0,2,4,2,4,0,4,2,2,0,2,2,4,0,4,2,
+ 2,2,4,0,4,2,4,0,0,4,0,4,4,2,4,2
+ };
+
+ unsigned int method = 0;
+ const unsigned char *tbl;
+
+
+ /* pick method from bits 0 2 5 7 9 of the address */
+ method = picktable[
+ (addr & 0x001) |
+ ((addr & 0x004) >> 1) |
+ ((addr & 0x020) >> 3) |
+ ((addr & 0x080) >> 4) |
+ ((addr & 0x200) >> 5)];
+
+ /* switch method if bit 11 of the address is set */
+ if ((addr & 0x800) == 0x800)
+ method ^= 1;
+
+ tbl = swap_xor_table[method];
+ return BITSWAP8(e,tbl[0],tbl[1],tbl[2],tbl[3],tbl[4],tbl[5],tbl[6],tbl[7]) ^ tbl[8];
+}
+
+DRIVER_INIT_MEMBER(pacman_state,pacplus)
+{
+ offs_t i;
+
+ /* CPU ROMs */
+ uint8_t *RAM = machine().root_device().memregion("maincpu")->base();
+
+ for (i = 0; i < 0x4000; i++)
+ RAM[i] = hbmame_pacplus_decode(i,RAM[i]);
+}
+
+void pacman_state::eyes_decode(uint8_t *data)
+{
+ int j;
+ uint8_t swapbuffer[8];
+
+ for (j = 0; j < 8; j++)
+ swapbuffer[j] = data[BITSWAP16(j,15,14,13,12,11,10,9,8,7,6,5,4,3,0,1,2)];
+
+ for (j = 0; j < 8; j++)
+ data[j] = BITSWAP8(swapbuffer[j],7,4,5,6,3,2,1,0);
+}
+
+DRIVER_INIT_MEMBER(pacman_state,eyes)
+{
+ int i;
+
+ /* CPU ROMs */
+
+ /* Data lines D3 and D5 swapped */
+ uint8_t *RAM = machine().root_device().memregion("maincpu")->base();
+ for (i = 0; i < 0x4000; i++)
+ RAM[i] = BITSWAP8(RAM[i],7,6,3,4,5,2,1,0);
+
+
+ /* Graphics ROMs */
+
+ /* Data lines D4 and D6 and address lines A0 and A2 are swapped */
+ RAM = machine().root_device().memregion("gfx1")->base();
+ for (i = 0;i < machine().root_device().memregion("gfx1")->bytes();i += 8)
+ eyes_decode(&RAM[i]);
+}
+
+
+/*************************************
+ *
+ * ROM definitions
+ *
+ *************************************/
+
+#define PACMAN_SOUND_PROMS \
+ ROM_REGION( 0x0200, "namco", 0 ) \
+ ROM_LOAD( "82s126.1m", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) \
+ ROM_LOAD( "82s126.3m", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) \
+
+#define PACMAN_PROMS \
+ ROM_REGION( 0x0120, "proms", 0 ) \
+ ROM_LOAD( "82s123.7f", 0x0000, 0x0020, CRC(2fc650bd) SHA1(8d0268dee78e47c712202b0ec4f1f51109b1f2a5) ) \
+ ROM_LOAD( "82s126.4a", 0x0020, 0x0100, CRC(3eb3a8e4) SHA1(19097b5f60d1030f8b82d9f1d3a241f93e5c75d6) ) \
+ PACMAN_SOUND_PROMS \
+
+#define PACPLUS_PROMS \
+ ROM_REGION( 0x0120, "proms", 0 ) \
+ ROM_LOAD( "pacplus.7f", 0x0000, 0x0020, CRC(063dd53a) SHA1(2e43b46ec3b101d1babab87cdaddfa944116ec06) ) \
+ ROM_LOAD( "pacplus.4a", 0x0020, 0x0100, CRC(e271a166) SHA1(cf006536215a7a1d488eebc1d8a2e2a8134ce1a6) ) \
+ PACMAN_SOUND_PROMS \
+
+ROM_START( abortman )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "puckmanb.6e", 0x0000, 0x1000, CRC(fee263b3) SHA1(87117ba5082cd7a615b4ec7c02dd819003fbd669) )
+ ROM_LOAD( "puckmanb.6f", 0x1000, 0x1000, CRC(39d1fc83) SHA1(326dbbf94c6fa2e96613dedb53702f8832b47d59) )
+ ROM_LOAD( "puckmanb.6h", 0x2000, 0x1000, CRC(02083b03) SHA1(7e1945f6eb51f2e51806d0439f975f7a2889b9b8) )
+ ROM_LOAD( "puckmanb.6j", 0x3000, 0x1000, CRC(7a36fe55) SHA1(01b4c38108d9dc4e48da4f8d685248e1e6821377) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "abortman.5e", 0x0000, 0x1000, CRC(1c4ef687) SHA1(0adea2380f8fd43ea90a4460eea9be2a17e7a825) )
+ ROM_LOAD( "abortman.5f", 0x1000, 0x1000, CRC(38a22ac4) SHA1(5503132e4d1ece4a3d71ad3635a60ec151bc0417) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( baby2 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "baby2.6j", 0x3000, 0x1000, CRC(260b87b8) SHA1(cf4ace417b7b640678f809c92f690cebc977dd68) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "baby2.5e", 0x0000, 0x1000, CRC(6f7d8d57) SHA1(2e786c5a61168455d31b7c45c97891f65243a40b) )
+ ROM_LOAD( "baby2.5f", 0x1000, 0x1000, CRC(b6d77a1e) SHA1(63ada2a7f154ce7bd756c5002a34e5f4002c2473) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( baby3 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "baby3.6j", 0x3000, 0x1000, CRC(6c0e22c8) SHA1(bcc684d7f5fb7fe73d3dcfdd80999242789dc9c9) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "baby3.5e", 0x0000, 0x1000, CRC(22174b65) SHA1(ed90d2c515e2446b369861e20ed34987f10a3dc8) )
+ ROM_LOAD( "baby2.5f", 0x1000, 0x1000, CRC(b6d77a1e) SHA1(63ada2a7f154ce7bd756c5002a34e5f4002c2473) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( baby4 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "baby4.6j", 0x3000, 0x1000, CRC(f8cd7ebb) SHA1(c7b8e690e96f9b863d31caddc81076d556058671) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "baby3.5e", 0x0000, 0x1000, CRC(22174b65) SHA1(ed90d2c515e2446b369861e20ed34987f10a3dc8) )
+ ROM_LOAD( "baby2.5f", 0x1000, 0x1000, CRC(b6d77a1e) SHA1(63ada2a7f154ce7bd756c5002a34e5f4002c2473) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( brakman )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "brakman.6j", 0x3000, 0x1000, CRC(2d2af2e5) SHA1(8355f30b106e53499d3c1e1174aee6572869b428) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "brakman.5e", 0x0000, 0x1000, CRC(a004abe7) SHA1(c2c8d871b17c9a1f8902f8ec3e46e0991e747f45) )
+ ROM_LOAD( "brakman.5f", 0x1000, 0x1000, CRC(30ed6264) SHA1(5bc2753aa6f2e49f6c1ce5810cf561d27ecb38e6) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( bucaneer )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "puckmanb.6e", 0x0000, 0x1000, CRC(fee263b3) SHA1(87117ba5082cd7a615b4ec7c02dd819003fbd669) )
+ ROM_LOAD( "puckmanb.6f", 0x1000, 0x1000, CRC(39d1fc83) SHA1(326dbbf94c6fa2e96613dedb53702f8832b47d59) )
+ ROM_LOAD( "newpuck2.6h", 0x2000, 0x1000, CRC(197443f8) SHA1(119aab12a9e1052c7b9a1f81e563740b41429a8c) )
+ ROM_LOAD( "bucaneer.6k", 0x3000, 0x1000, CRC(c4d9169a) SHA1(f34a51d9fa90739214ab9e837b2602c992a73576) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "bucaneer.5e", 0x0000, 0x0800, CRC(4060c077) SHA1(78d4aa5243246f73533fc0886438dc1fa6f7ebe5) )
+ ROM_LOAD( "bucaneer.5h", 0x0800, 0x0800, CRC(e3861283) SHA1(61cf8ed24902910e98438d9e2e2745f226ad2a13) )
+ ROM_LOAD( "bucaneer.5f", 0x1000, 0x0800, CRC(09f66dec) SHA1(2d3649341fed19bac15ec274f7d747de46a3edb2) )
+ ROM_LOAD( "bucaneer.5j", 0x1800, 0x0800, CRC(653314e7) SHA1(c466a421917b3502e9115ebda1b2d11f7f586de8) )
+ /* cannot do the "mario" trick here because bucco does odd things when going up */
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( caterpil )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "caterpil.6e", 0x0000, 0x1000, CRC(b53c5650) SHA1(54f1fee2494cfc0452051a6f134c5c3b691b4ffb) )
+ ROM_LOAD( "caterpil.6f", 0x1000, 0x1000, CRC(53845efb) SHA1(e6db734a7a806aead30422de4073511da55a17f1) )
+ ROM_LOAD( "caterpil.6h", 0x2000, 0x1000, CRC(a474357e) SHA1(0fb93ca3364b5955428bc59e2f6d9f186182a280) )
+ ROM_LOAD( "caterpil.6j", 0x3000, 0x1000, CRC(5df0ea3b) SHA1(dce379bb4cf5fa7c253cc16702360cbc3b637f37) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "caterpil.5e", 0x0000, 0x1000, CRC(0387907d) SHA1(014745c480ee4b81c161cfa7a011df673059a1a8) )
+ ROM_LOAD( "caterpil.5f", 0x1000, 0x1000, CRC(aa450714) SHA1(8a888ce6573623d15913ff297a027d4056eb2875) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( chthang )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "hangly.6e", 0x0000, 0x1000, CRC(5fe8610a) SHA1(d63eaebd85e10aa6c27bb7f47642dd403eeb6934) )
+ ROM_LOAD( "hangly.6f", 0x1000, 0x1000, CRC(73726586) SHA1(cedddc5194589039dd8b64f07ab6320d7d4f55f9) )
+ ROM_LOAD( "hangly.6h", 0x2000, 0x1000, CRC(4e7ef99f) SHA1(bd42e68b29b4d654dc817782ba00db69b7d2dfe2) )
+ ROM_LOAD( "hangly.6j", 0x3000, 0x1000, CRC(7f4147e6) SHA1(0a7ac0e59d4d26fe52a2f4196c9f19e5ab677c87) )
+
+ ROM_REGION( 0x2000, "gfx1" , 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( chtpac )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "chtpac.6f", 0x1000, 0x1000, CRC(72cea888) SHA1(87d0c2f8e7be0b9f28fc46b5711ddb8a85023942) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( chtpac3d )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "chtpac3d.6f", 0x1000, 0x1000, CRC(fe975805) SHA1(a213628c19d8998960c45f756d865dfce404ab57) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacman3d.6j", 0x3000, 0x1000, CRC(959e930e) SHA1(0ef24017be05ddf85248c4d00f0e21cbf658f78c) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman3d.5e", 0x0000, 0x1000, CRC(aa203d45) SHA1(7d2fb9bc8718601efc33d2469452a08018167e60) )
+ ROM_LOAD( "pacman3d.5f", 0x1000, 0x1000, CRC(d1830540) SHA1(5d276774997e3be8fc9c21d55562288acd1cffcc) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( chtpman2 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "newpuck2.6e", 0x0000, 0x1000, CRC(a8ae23c5) SHA1(1481a4f083b563350744f9d25b1bcd28073875d6) )
+ ROM_LOAD( "chtpac.6f", 0x1000, 0x1000, CRC(72cea888) SHA1(87d0c2f8e7be0b9f28fc46b5711ddb8a85023942) )
+ ROM_LOAD( "newpuck2.6h", 0x2000, 0x1000, CRC(197443f8) SHA1(119aab12a9e1052c7b9a1f81e563740b41429a8c) )
+ ROM_LOAD( "newpuck2.6j", 0x3000, 0x1000, CRC(0e3bdbde) SHA1(11679a3e60cb98ef56e9f0c349d421a72b7097f6) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( chtpop )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "chtpac.6f", 0x1000, 0x1000, CRC(72cea888) SHA1(87d0c2f8e7be0b9f28fc46b5711ddb8a85023942) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacpopey.5f", 0x1000, 0x1000, CRC(af2b610b) SHA1(c787b1db588125f0770dc2bf4626ad22f0faee72) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( chtpuck )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "newpuck2.6e", 0x0000, 0x1000, CRC(a8ae23c5) SHA1(1481a4f083b563350744f9d25b1bcd28073875d6) )
+ ROM_LOAD( "chtpac.6f", 0x1000, 0x1000, CRC(72cea888) SHA1(87d0c2f8e7be0b9f28fc46b5711ddb8a85023942) )
+ ROM_LOAD( "newpuck2.6h", 0x2000, 0x1000, CRC(197443f8) SHA1(119aab12a9e1052c7b9a1f81e563740b41429a8c) )
+ ROM_LOAD( "fastpuck.6j", 0x3000, 0x1000, CRC(2e64a3ba) SHA1(f86a921173f32211b18d023c2701664d13ae23be) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( crazypac )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "crazypac.6j", 0x3000, 0x1000, CRC(9f754a51) SHA1(447d95f90c6481911189173f95dbd5ea23467f67) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( ctrpllrp )
+ ROM_REGION( 0x10000, "maincpu",0 )
+ ROM_LOAD( "hangly3.6e", 0x0000, 0x0800, CRC(9d027c4a) SHA1(88e094880057451a75cdc2ce9477403021813982) )
+ ROM_LOAD( "ctrpllrp.6k", 0x0800, 0x0800, CRC(f39846d3) SHA1(bc1137a45898210523cf8da1e6a2425e7c322884) )
+ ROM_LOAD( "ctrpllrp.6f", 0x1000, 0x0800, CRC(afa149a8) SHA1(207b842854ac9e015e12a2dae41105438cda1df9) )
+ ROM_LOAD( "hangly2.6m", 0x1800, 0x0800, CRC(baf5461e) SHA1(754586a6449fd54a342f260e572c1cd60ab70815) )
+ ROM_LOAD( "ctrpllrp.6h", 0x2000, 0x0800, CRC(6bb282a1) SHA1(a96f25dc0f49ebe7e528e3297a112d778c6c3030) )
+ ROM_LOAD( "ctrpllrp.6n", 0x2800, 0x0800, CRC(fa2140f5) SHA1(123d31e653e8af78c6153702eca2e136c427ed64) )
+ ROM_LOAD( "ctrpllrp.6j", 0x3000, 0x0800, CRC(86c91e0e) SHA1(52af6a3af5b1363859f790470ca5860ef2a08566) )
+ ROM_LOAD( "ctrpllrp.6p", 0x3800, 0x0800, CRC(3d28134e) SHA1(45a257a0aca74e2ab36dd70097220d8be29cc87b) )
+
+ ROM_REGION( 0x2000, "gfx1" , 0)
+ ROM_LOAD( "ctrpllrp.5e", 0x0000, 0x0800, CRC(1c4617be) SHA1(2b2b10f1256b4612e3e01ed1c8e2d7ccb6989f5d) )
+ ROM_LOAD( "ctrpllrp.5h", 0x0800, 0x0800, CRC(46f72fef) SHA1(daf334c78fdb73d43d524b733b763b290c602ae2) )
+ ROM_LOAD( "ctrpllrp.5f", 0x1000, 0x0800, CRC(ba9ec199) SHA1(626ab2eedf4c8d307dfad3b8863a67f8c34dda97) )
+ ROM_LOAD( "ctrpllrp.5j", 0x1800, 0x0800, CRC(41c09655) SHA1(cc639e660443b9dcb33f9aefe9af5d332591c466) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( dizzy )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "dizzy.6j", 0x3000, 0x1000, CRC(bf05bf15) SHA1(9a440a7a67731553269ad72dc2340de1fb9a89a8) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "dizzy.5e", 0x0000, 0x1000, CRC(f999a8d9) SHA1(4feecc8f06ea9149751f0f97828babca1bdf3fd4) )
+ ROM_LOAD( "dizzy.5f", 0x1000, 0x1000, CRC(7cb7b9b1) SHA1(3bd09964a2d49c65a3619ddfc3635066a7097328) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( eltonpac )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "eltonpac.5e", 0x0000, 0x1000, CRC(9c093e5b) SHA1(bfdd082a6f1e0819aeda2601f06dff90cb8e8f3f) )
+ ROM_LOAD( "eltonpac.5f", 0x1000, 0x1000, CRC(c2825641) SHA1(4ea373b18ec1fc7325f33dbe9f44ee93ad6f6cb4) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( europac )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "europac.6j", 0x3000, 0x1000, CRC(a4e82007) SHA1(577b44661de47dcffac7c06e7f9fa1e5d4e085ed) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "europac.5e", 0x0000, 0x1000, CRC(00208da4) SHA1(a7ef38f2c133681344d67634f8a7362f6f0712b3) )
+ ROM_LOAD( "europac.5f", 0x1000, 0x1000, CRC(0d36dabf) SHA1(50572528e230a37a413cdc9e2bd7f2ea76fffa09) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( fasthang )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "hangly.6e", 0x0000, 0x1000, CRC(5fe8610a) SHA1(d63eaebd85e10aa6c27bb7f47642dd403eeb6934) )
+ ROM_LOAD( "fasthang.6f", 0x1000, 0x1000, CRC(1b1014bc) SHA1(c7ff86832ccd207ce8505291ae309ee0240d0586) )
+ ROM_LOAD( "hangly.6h", 0x2000, 0x1000, CRC(4e7ef99f) SHA1(bd42e68b29b4d654dc817782ba00db69b7d2dfe2) )
+ ROM_LOAD( "hangly.6j", 0x3000, 0x1000, CRC(7f4147e6) SHA1(0a7ac0e59d4d26fe52a2f4196c9f19e5ab677c87) )
+
+ ROM_REGION( 0x2000, "gfx1" , 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( fastpop )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacmanf.6f", 0x1000, 0x1000, CRC(720dc3ee) SHA1(7224d7acfa0144b681c71d7734a7337189835361) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) )
+
+ ROM_REGION( 0x2000, "gfx1" , 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacpopey.5f", 0x1000, 0x1000, CRC(af2b610b) SHA1(c787b1db588125f0770dc2bf4626ad22f0faee72) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( fastpuck )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "newpuck2.6e", 0x0000, 0x1000, CRC(a8ae23c5) SHA1(1481a4f083b563350744f9d25b1bcd28073875d6) )
+ ROM_LOAD( "pacmanf.6f", 0x1000, 0x1000, CRC(720dc3ee) SHA1(7224d7acfa0144b681c71d7734a7337189835361) )
+ ROM_LOAD( "newpuck2.6h", 0x2000, 0x1000, CRC(197443f8) SHA1(119aab12a9e1052c7b9a1f81e563740b41429a8c) )
+ ROM_LOAD( "fastpuck.6j", 0x3000, 0x1000, CRC(2e64a3ba) SHA1(f86a921173f32211b18d023c2701664d13ae23be) )
+
+ ROM_REGION( 0x2000, "gfx1" , 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( fpnleash )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "punleash.1", 0x0000, 0x1000, CRC(eddb20e7) SHA1(07f6cabac3c59c2e3f522da877e845b3ceb2cffb) )
+ ROM_LOAD( "punleash.2", 0x1000, 0x1000, CRC(57fe8b4d) SHA1(629800fe793b53c27ee8c84a2e49caf7fe056f28) )
+ ROM_LOAD( "punleash.3", 0x2000, 0x1000, CRC(94c63bb1) SHA1(872dbca70b45285dccfd0e24cb50225a5c3ac005) )
+ ROM_LOAD( "punleash.4", 0x3000, 0x1000, CRC(fe7734d5) SHA1(f246baab82ea8e9b3cfd3dc5911445ab08223c1f) )
+ ROM_LOAD( "punleash.5", 0x8000, 0x1000, CRC(ef155ffb) SHA1(c5bcd57c2a336fa8a018b192b8542954271f1bac) )
+ ROM_LOAD( "punleash.6", 0x9000, 0x1000, CRC(70d15899) SHA1(9a7cff5811b591211eb23cee125fd77263f8d4fe) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "fpnleash.5e", 0x0000, 0x1000, CRC(1f69d1d0) SHA1(8f3834358a074d0cb6c1d56e3b0e623193f8b9ec) )
+ ROM_LOAD( "punleash.5f", 0x1000, 0x1000, CRC(98d3d364) SHA1(f8023d1772d377d090a9bfebf194bbbce8643f1d) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD( "punleash.7f", 0x0000, 0x0020, CRC(357c2523) SHA1(f0c4cea06b17932cc15f6db2971406eaba3558b2) )
+ ROM_LOAD( "punleash.4a", 0x0020, 0x0100, CRC(5ff3b85a) SHA1(6b01b9c9302ab41fe83c140c3ff217d1d66773dd) )
+
+ PACMAN_SOUND_PROMS
+ROM_END
+
+ROM_START( fstpman2 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "newpuck2.6e", 0x0000, 0x1000, CRC(a8ae23c5) SHA1(1481a4f083b563350744f9d25b1bcd28073875d6) )
+ ROM_LOAD( "pacmanf.6f", 0x1000, 0x1000, CRC(720dc3ee) SHA1(7224d7acfa0144b681c71d7734a7337189835361) )
+ ROM_LOAD( "newpuck2.6h", 0x2000, 0x1000, CRC(197443f8) SHA1(119aab12a9e1052c7b9a1f81e563740b41429a8c) )
+ ROM_LOAD( "newpuck2.6j", 0x3000, 0x1000, CRC(0e3bdbde) SHA1(11679a3e60cb98ef56e9f0c349d421a72b7097f6) )
+
+ ROM_REGION( 0x2000, "gfx1" , 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( hangly )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "hangly.6e", 0x0000, 0x1000, CRC(5fe8610a) SHA1(d63eaebd85e10aa6c27bb7f47642dd403eeb6934) )
+ ROM_LOAD( "hangly.6f", 0x1000, 0x1000, CRC(73726586) SHA1(cedddc5194589039dd8b64f07ab6320d7d4f55f9) )
+ ROM_LOAD( "hangly.6h", 0x2000, 0x1000, CRC(4e7ef99f) SHA1(bd42e68b29b4d654dc817782ba00db69b7d2dfe2) )
+ ROM_LOAD( "hangly.6j", 0x3000, 0x1000, CRC(7f4147e6) SHA1(0a7ac0e59d4d26fe52a2f4196c9f19e5ab677c87) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( hangly2 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "hangly.6e", 0x0000, 0x1000, CRC(5fe8610a) SHA1(d63eaebd85e10aa6c27bb7f47642dd403eeb6934) )
+ ROM_LOAD( "hangly2.6f", 0x1000, 0x0800, CRC(5ba228bb) SHA1(b0e902cdf98bee72d6ec8069eec96adce3245074) )
+ ROM_LOAD( "hangly2.6m", 0x1800, 0x0800, CRC(baf5461e) SHA1(754586a6449fd54a342f260e572c1cd60ab70815) )
+ ROM_LOAD( "hangly.6h", 0x2000, 0x1000, CRC(4e7ef99f) SHA1(bd42e68b29b4d654dc817782ba00db69b7d2dfe2) )
+ ROM_LOAD( "hangly2.6j", 0x3000, 0x0800, CRC(51305374) SHA1(6197b606a0eedb11135d9f4f7a89aecc23fb2d33) )
+ ROM_LOAD( "hangly2.6p", 0x3800, 0x0800, CRC(427c9d4d) SHA1(917bc3d571cbdd24d88327ecabfb5b3f6d39af0a) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacmanh.5e", 0x0000, 0x1000, CRC(299fb17a) SHA1(ad97adc2122482a9018bacd137df9d8f409ddf85) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( hangly3 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "hangly3.6e", 0x0000, 0x0800, CRC(9d027c4a) SHA1(88e094880057451a75cdc2ce9477403021813982) )
+ ROM_LOAD( "hangly3.6k", 0x0800, 0x0800, CRC(194c7189) SHA1(fd423bac2810015313841c7b935054565390fbd0) )
+ ROM_LOAD( "hangly2.6f", 0x1000, 0x0800, CRC(5ba228bb) SHA1(b0e902cdf98bee72d6ec8069eec96adce3245074) )
+ ROM_LOAD( "hangly2.6m", 0x1800, 0x0800, CRC(baf5461e) SHA1(754586a6449fd54a342f260e572c1cd60ab70815) )
+ ROM_LOAD( "hangly3.6h", 0x2000, 0x0800, CRC(08419c4a) SHA1(7e5001adad401080c788737c1d2349f218750442) )
+ ROM_LOAD( "hangly3.6n", 0x2800, 0x0800, CRC(ab74b51f) SHA1(1bce8933ed7807eb7aca9670df8994f8d1a8b5b7) )
+ ROM_LOAD( "hangly3.6j", 0x3000, 0x0800, CRC(5039b082) SHA1(086a6ac4742734167d283b1121fce29d8ac4a6cd) )
+ ROM_LOAD( "hangly3.6p", 0x3800, 0x0800, CRC(931770d7) SHA1(78fcf88e07ec5126c12c3297b62ca388809e947c) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "hangly3.5e", 0x0000, 0x0800, CRC(5f4be3cc) SHA1(eeb0e1e44549b99eab481d9ac016b4359e19fe30) )
+ ROM_LOAD( "puckman.5h", 0x0800, 0x0800, CRC(3591b89d) SHA1(79bb456be6c39c1ccd7d077fbe181523131fb300) )
+ ROM_LOAD( "puckman.5f", 0x1000, 0x0800, CRC(9e39323a) SHA1(be933e691df4dbe7d12123913c3b7b7b585b7a35) )
+ ROM_LOAD( "puckman.5j", 0x1800, 0x0800, CRC(1b1d9096) SHA1(53771c573051db43e7185b1d188533056290a620) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( hanglyad )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "hangly.6e", 0x0000, 0x1000, CRC(5fe8610a) SHA1(d63eaebd85e10aa6c27bb7f47642dd403eeb6934) )
+ ROM_LOAD( "hangly.6f", 0x1000, 0x1000, CRC(73726586) SHA1(cedddc5194589039dd8b64f07ab6320d7d4f55f9) )
+ ROM_LOAD( "hangly.6h", 0x2000, 0x1000, CRC(4e7ef99f) SHA1(bd42e68b29b4d654dc817782ba00db69b7d2dfe2) )
+ ROM_LOAD( "hangly.6j", 0x3000, 0x1000, CRC(7f4147e6) SHA1(0a7ac0e59d4d26fe52a2f4196c9f19e5ab677c87) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "hanglyad.5e", 0x0000, 0x1000, CRC(93fd3682) SHA1(792ddb541aeab304b5facfcf929c3bba18150346) )
+ ROM_LOAD( "pacjr1.5f", 0x1000, 0x1000, CRC(c2310808) SHA1(84c28a4fc327afcb441daee35acdab6f7613395e) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( hanglyx )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "hangly.6e", 0x0000, 0x1000, CRC(5fe8610a) SHA1(d63eaebd85e10aa6c27bb7f47642dd403eeb6934) )
+ ROM_LOAD( "hangly.6f", 0x1000, 0x1000, CRC(73726586) SHA1(cedddc5194589039dd8b64f07ab6320d7d4f55f9) )
+ ROM_LOAD( "hangly.6h", 0x2000, 0x1000, CRC(4e7ef99f) SHA1(bd42e68b29b4d654dc817782ba00db69b7d2dfe2) )
+ ROM_LOAD( "hangly.6j", 0x3000, 0x1000, CRC(7f4147e6) SHA1(0a7ac0e59d4d26fe52a2f4196c9f19e5ab677c87) )
+
+ ROM_REGION( 0x8000, "gfx1", 0 )
+ ROM_LOAD( "pacmanx.5e", 0x0000, 0x4000, CRC(a45138ce) SHA1(f18344980b4a58d0abf0cc2b7853184af3d5bfa0) )
+ ROM_LOAD( "pacmanx.5f", 0x4000, 0x4000, CRC(92e1b10e) SHA1(bb04988502fa181365c08096b5fd47fa9541c291) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( hangly2x )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "hangly.6e", 0x0000, 0x1000, CRC(5fe8610a) SHA1(d63eaebd85e10aa6c27bb7f47642dd403eeb6934) )
+ ROM_LOAD( "hangly2.6f", 0x1000, 0x0800, CRC(5ba228bb) SHA1(b0e902cdf98bee72d6ec8069eec96adce3245074) )
+ ROM_LOAD( "hangly2.6m", 0x1800, 0x0800, CRC(baf5461e) SHA1(754586a6449fd54a342f260e572c1cd60ab70815) )
+ ROM_LOAD( "hangly.6h", 0x2000, 0x1000, CRC(4e7ef99f) SHA1(bd42e68b29b4d654dc817782ba00db69b7d2dfe2) )
+ ROM_LOAD( "hangly2.6j", 0x3000, 0x0800, CRC(51305374) SHA1(6197b606a0eedb11135d9f4f7a89aecc23fb2d33) )
+ ROM_LOAD( "hangly2.6p", 0x3800, 0x0800, CRC(427c9d4d) SHA1(917bc3d571cbdd24d88327ecabfb5b3f6d39af0a) )
+
+ ROM_REGION( 0x8000, "gfx1", 0 )
+ ROM_LOAD( "pacmodx.5e", 0x0000, 0x4000, CRC(a05bc552) SHA1(5c2350aeac14cafebfcb7ff012427b1d3c6adf62) )
+ ROM_LOAD( "pacmanx.5f", 0x4000, 0x4000, CRC(92e1b10e) SHA1(bb04988502fa181365c08096b5fd47fa9541c291) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( hangly3x )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "hangly3.6e", 0x0000, 0x0800, CRC(9d027c4a) SHA1(88e094880057451a75cdc2ce9477403021813982) )
+ ROM_LOAD( "hangly3.6k", 0x0800, 0x0800, CRC(194c7189) SHA1(fd423bac2810015313841c7b935054565390fbd0) )
+ ROM_LOAD( "hangly2.6f", 0x1000, 0x0800, CRC(5ba228bb) SHA1(b0e902cdf98bee72d6ec8069eec96adce3245074) )
+ ROM_LOAD( "hangly2.6m", 0x1800, 0x0800, CRC(baf5461e) SHA1(754586a6449fd54a342f260e572c1cd60ab70815) )
+ ROM_LOAD( "hangly3.6h", 0x2000, 0x0800, CRC(08419c4a) SHA1(7e5001adad401080c788737c1d2349f218750442) )
+ ROM_LOAD( "hangly3.6n", 0x2800, 0x0800, CRC(ab74b51f) SHA1(1bce8933ed7807eb7aca9670df8994f8d1a8b5b7) )
+ ROM_LOAD( "hangly3.6j", 0x3000, 0x0800, CRC(5039b082) SHA1(086a6ac4742734167d283b1121fce29d8ac4a6cd) )
+ ROM_LOAD( "hangly3.6p", 0x3800, 0x0800, CRC(931770d7) SHA1(78fcf88e07ec5126c12c3297b62ca388809e947c) )
+
+ ROM_REGION( 0x8000, "gfx1", 0 )
+ ROM_LOAD( "hangly3x.5e", 0x0000, 0x4000, CRC(54abb087) SHA1(a57b59325172902c3fae57c5a23e588d5ac7b8ca) )
+ ROM_LOAD( "pacmanx.5f", 0x4000, 0x4000, CRC(92e1b10e) SHA1(bb04988502fa181365c08096b5fd47fa9541c291) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( hearts )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "hearts.5e", 0x0000, 0x1000, CRC(5be0a4e4) SHA1(7314e670c81debe4ae19bb5ff4da5718a63ef084) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( hellowp )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "hellowp.6e", 0x0000, 0x00f3, CRC(699152c6) SHA1(cf8ec6a969177146ccc6155d896b693afbb70dd8) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( hm1000 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "hangly.6e", 0x0000, 0x1000, CRC(5fe8610a) SHA1(d63eaebd85e10aa6c27bb7f47642dd403eeb6934) )
+ ROM_LOAD( "hangly.6f", 0x1000, 0x1000, CRC(73726586) SHA1(cedddc5194589039dd8b64f07ab6320d7d4f55f9) )
+ ROM_LOAD( "hangly.6h", 0x2000, 0x1000, CRC(4e7ef99f) SHA1(bd42e68b29b4d654dc817782ba00db69b7d2dfe2) )
+ ROM_LOAD( "hangly.6j", 0x3000, 0x1000, CRC(7f4147e6) SHA1(0a7ac0e59d4d26fe52a2f4196c9f19e5ab677c87) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pm1000.5e", 0x0000, 0x1000, CRC(16d9f7ce) SHA1(a9ac72aa5e3dcaaa2e4d03b6ae372e81d77817f8) )
+ ROM_LOAD( "pm1000.5f", 0x1000, 0x1000, CRC(fd06d923) SHA1(a9d61bdcb6841bf07ce8ad08e1be2cf5ef349129) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( hm2000 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "hangly.6e", 0x0000, 0x1000, CRC(5fe8610a) SHA1(d63eaebd85e10aa6c27bb7f47642dd403eeb6934) )
+ ROM_LOAD( "hangly.6f", 0x1000, 0x1000, CRC(73726586) SHA1(cedddc5194589039dd8b64f07ab6320d7d4f55f9) )
+ ROM_LOAD( "hangly.6h", 0x2000, 0x1000, CRC(4e7ef99f) SHA1(bd42e68b29b4d654dc817782ba00db69b7d2dfe2) )
+ ROM_LOAD( "hangly.6j", 0x3000, 0x1000, CRC(7f4147e6) SHA1(0a7ac0e59d4d26fe52a2f4196c9f19e5ab677c87) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pm2000.5e", 0x0000, 0x1000, CRC(cba39624) SHA1(d815cb5be44b3d29cd1bdd4b8c68484e5330e4a4) )
+ ROM_LOAD( "pm2000.5f", 0x1000, 0x1000, CRC(a2b31528) SHA1(69f1c4b34e581c0e6d75b9726cbefa08f8a97fdb) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( hmba5000 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "hangly.6e", 0x0000, 0x1000, CRC(5fe8610a) SHA1(d63eaebd85e10aa6c27bb7f47642dd403eeb6934) )
+ ROM_LOAD( "hangly.6f", 0x1000, 0x1000, CRC(73726586) SHA1(cedddc5194589039dd8b64f07ab6320d7d4f55f9) )
+ ROM_LOAD( "hangly.6h", 0x2000, 0x1000, CRC(4e7ef99f) SHA1(bd42e68b29b4d654dc817782ba00db69b7d2dfe2) )
+ ROM_LOAD( "hangly.6j", 0x3000, 0x1000, CRC(7f4147e6) SHA1(0a7ac0e59d4d26fe52a2f4196c9f19e5ab677c87) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pmba3000.5e", 0x0000, 0x1000, CRC(5ebb61c5) SHA1(cfd491170d1d3d0c0632d5d81629e98cfd100fb6) )
+ ROM_LOAD( "pmba3000.5f", 0x1000, 0x1000, CRC(d9a055aa) SHA1(00c6867b70062672da3b8c254feff4354e35aa7a) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( hmba7000 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "hangly.6e", 0x0000, 0x1000, CRC(5fe8610a) SHA1(d63eaebd85e10aa6c27bb7f47642dd403eeb6934) )
+ ROM_LOAD( "hangly.6f", 0x1000, 0x1000, CRC(73726586) SHA1(cedddc5194589039dd8b64f07ab6320d7d4f55f9) )
+ ROM_LOAD( "hangly.6h", 0x2000, 0x1000, CRC(4e7ef99f) SHA1(bd42e68b29b4d654dc817782ba00db69b7d2dfe2) )
+ ROM_LOAD( "hangly.6j", 0x3000, 0x1000, CRC(7f4147e6) SHA1(0a7ac0e59d4d26fe52a2f4196c9f19e5ab677c87) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pmba6000.5e", 0x0000, 0x1000, CRC(7961ed4e) SHA1(595311b7a77d1379c9564d42a34581cc35a53875) )
+ ROM_LOAD( "pmba6000.5f", 0x1000, 0x1000, CRC(417080fd) SHA1(13e8e812bca25b64e7ce072d86189fd15b1882b0) )
+
+ PACPLUS_PROMS
+ROM_END
+
+ROM_START( hmbabymz )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "hangly.6e", 0x0000, 0x1000, CRC(5fe8610a) SHA1(d63eaebd85e10aa6c27bb7f47642dd403eeb6934) )
+ ROM_LOAD( "hangly.6f", 0x1000, 0x1000, CRC(73726586) SHA1(cedddc5194589039dd8b64f07ab6320d7d4f55f9) )
+ ROM_LOAD( "hangly.6h", 0x2000, 0x1000, CRC(4e7ef99f) SHA1(bd42e68b29b4d654dc817782ba00db69b7d2dfe2) )
+ ROM_LOAD( "hangly.6j", 0x3000, 0x1000, CRC(7f4147e6) SHA1(0a7ac0e59d4d26fe52a2f4196c9f19e5ab677c87) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pmbamaz.5e", 0x0000, 0x1000, CRC(9a8cd8a1) SHA1(653d3c900b0be5e7ffe424207419bf86229b8c48) )
+ ROM_LOAD( "hmbabymz.5f", 0x1000, 0x1000, CRC(f0bd55bd) SHA1(310a375e3b3ec2766399418ce30233cc2263961e) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( hmbluep )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "hangly.6e", 0x0000, 0x1000, CRC(5fe8610a) SHA1(d63eaebd85e10aa6c27bb7f47642dd403eeb6934) )
+ ROM_LOAD( "hangly.6f", 0x1000, 0x1000, CRC(73726586) SHA1(cedddc5194589039dd8b64f07ab6320d7d4f55f9) )
+ ROM_LOAD( "hangly.6h", 0x2000, 0x1000, CRC(4e7ef99f) SHA1(bd42e68b29b4d654dc817782ba00db69b7d2dfe2) )
+ ROM_LOAD( "hangly.6j", 0x3000, 0x1000, CRC(7f4147e6) SHA1(0a7ac0e59d4d26fe52a2f4196c9f19e5ab677c87) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pm1000.5e", 0x0000, 0x1000, CRC(16d9f7ce) SHA1(a9ac72aa5e3dcaaa2e4d03b6ae372e81d77817f8) )
+ ROM_LOAD( "hmbluep.5f", 0x1000, 0x1000, CRC(ceb721be) SHA1(7eb60764bb7f9aa63a9f2a9a3052c2b988f5a530) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( hmgrenp )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "hangly.6e", 0x0000, 0x1000, CRC(5fe8610a) SHA1(d63eaebd85e10aa6c27bb7f47642dd403eeb6934) )
+ ROM_LOAD( "hangly.6f", 0x1000, 0x1000, CRC(73726586) SHA1(cedddc5194589039dd8b64f07ab6320d7d4f55f9) )
+ ROM_LOAD( "hangly.6h", 0x2000, 0x1000, CRC(4e7ef99f) SHA1(bd42e68b29b4d654dc817782ba00db69b7d2dfe2) )
+ ROM_LOAD( "hangly.6j", 0x3000, 0x1000, CRC(7f4147e6) SHA1(0a7ac0e59d4d26fe52a2f4196c9f19e5ab677c87) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pmgrenp.5e", 0x0000, 0x1000, CRC(5807a438) SHA1(8f4160627948747e92c3c5dc386068e4561fd9aa) )
+ ROM_LOAD( "hmgrenp.5f", 0x1000, 0x1000, CRC(1fcc0cf2) SHA1(8920525a7fccdc3fea2ee52687b4881ca84ebaad) )
+
+ PACPLUS_PROMS
+ROM_END
+
+ROM_START( hmhearts )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "hangly3.6e", 0x0000, 0x0800, CRC(9d027c4a) SHA1(88e094880057451a75cdc2ce9477403021813982) )
+ ROM_LOAD( "hangly3.6k", 0x0800, 0x0800, CRC(194c7189) SHA1(fd423bac2810015313841c7b935054565390fbd0) )
+ ROM_LOAD( "hangly2.6f", 0x1000, 0x0800, CRC(5ba228bb) SHA1(b0e902cdf98bee72d6ec8069eec96adce3245074) )
+ ROM_LOAD( "newpuc2.6m", 0x1800, 0x0800, CRC(70810ccf) SHA1(3941678606aab1e53356a6781e24d84e83cc88ce) )
+ ROM_LOAD( "hangly3.6h", 0x2000, 0x0800, CRC(08419c4a) SHA1(7e5001adad401080c788737c1d2349f218750442) )
+ ROM_LOAD( "newpuc2.6n", 0x2800, 0x0800, CRC(3f250c58) SHA1(53bf2270c26f10f7e97960cd4c96e09e16b9bdf3) )
+ ROM_LOAD( "hmhearts.6j", 0x3000, 0x0800, CRC(603b70b7) SHA1(a8e408e33fb16f0879793d416c3074dc48c875db) )
+ ROM_LOAD( "hmhearts.6p", 0x3800, 0x0800, CRC(71293b1f) SHA1(b507a74866d34ecf0e6d32c91f9b5655817f6c3f) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacheart.5e", 0x0000, 0x0800, CRC(c62bbabf) SHA1(f6f28ae33c2ab274105283b22b49ad243780a95e) )
+ ROM_LOAD( "newpuc2.5h", 0x0800, 0x0800, CRC(777c70d3) SHA1(ed5ccbeb1102ec9f837577de3aa51317c32520d6) )
+ ROM_LOAD( "newpuc2.5f", 0x1000, 0x0800, CRC(ca8c184c) SHA1(833aa845824ed80777b62f03df36a920ad7c3656) )
+ ROM_LOAD( "newpuc2.5j", 0x1800, 0x0800, CRC(7dc75a81) SHA1(d3fe1cad3b594052d8367685febb2335b0ad62f4) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( hmpopey )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "hangly.6e", 0x0000, 0x1000, CRC(5fe8610a) SHA1(d63eaebd85e10aa6c27bb7f47642dd403eeb6934) )
+ ROM_LOAD( "hangly.6f", 0x1000, 0x1000, CRC(73726586) SHA1(cedddc5194589039dd8b64f07ab6320d7d4f55f9) )
+ ROM_LOAD( "hangly.6h", 0x2000, 0x1000, CRC(4e7ef99f) SHA1(bd42e68b29b4d654dc817782ba00db69b7d2dfe2) )
+ ROM_LOAD( "hangly.6j", 0x3000, 0x1000, CRC(7f4147e6) SHA1(0a7ac0e59d4d26fe52a2f4196c9f19e5ab677c87) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacpopey.5f", 0x1000, 0x1000, CRC(af2b610b) SHA1(c787b1db588125f0770dc2bf4626ad22f0faee72) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( hmplus )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "hangly.6e", 0x0000, 0x1000, CRC(5fe8610a) SHA1(d63eaebd85e10aa6c27bb7f47642dd403eeb6934) )
+ ROM_LOAD( "hangly.6f", 0x1000, 0x1000, CRC(73726586) SHA1(cedddc5194589039dd8b64f07ab6320d7d4f55f9) )
+ ROM_LOAD( "hangly.6h", 0x2000, 0x1000, CRC(4e7ef99f) SHA1(bd42e68b29b4d654dc817782ba00db69b7d2dfe2) )
+ ROM_LOAD( "hangly.6j", 0x3000, 0x1000, CRC(7f4147e6) SHA1(0a7ac0e59d4d26fe52a2f4196c9f19e5ab677c87) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacplus.5e", 0x0000, 0x1000, CRC(022c35da) SHA1(57d7d723c7b029e3415801f4ce83469ec97bb8a1) )
+ ROM_LOAD( "hmplus.5f", 0x1000, 0x1000, CRC(7a444bda) SHA1(71f93790843482d9389c6d66a7ee5196119185fb) )
+
+ PACPLUS_PROMS
+ROM_END
+
+ROM_START( homercid )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "homercid.6e", 0x0000, 0x1041, CRC(2768e80e) SHA1(aaf78f4a1bea4aba3e44275ccfbc2ee641a3b8ff) )
+ ROM_LOAD( "homercid.6f", 0x1000, 0x1000, CRC(3858d8b7) SHA1(44560196ca888a82669d94687c964373fd0ffc4d) )
+ ROM_LOAD( "homercid.6h", 0x2000, 0x1003, CRC(d61413d0) SHA1(a5ea1fdc50e2d185440e38a01837a6c5a5b89484) )
+ ROM_LOAD( "homercid.6j", 0x3000, 0x1003, CRC(e8b53076) SHA1(c8fe2c2c637a87356a95176bc333ca28f63ae00a) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "homercid.5e", 0x0000, 0x1000, CRC(4879edc5) SHA1(abde239a818a7025e629e59490479da700d70538) )
+ ROM_LOAD( "homercid.5f", 0x1000, 0x1000, CRC(475e51c9) SHA1(478d1907f448f40f50b1b2ca1ddabc5b818e7003) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD( "homercid.7f", 0x0000, 0x0020, CRC(2b7e868a) SHA1(28976b3b7a2ea112da1d7af0366090f8a172dbb6) )
+ ROM_LOAD( "homercid.4a", 0x0020, 0x0100, CRC(9717a6be) SHA1(00497d00c45d48570de0ab6ca8fea42cdb38eb85) )
+
+ PACMAN_SOUND_PROMS
+ROM_END
+
+ROM_START( jacman )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "jacman.6j", 0x3000, 0x1000, CRC(1f52ef8b) SHA1(0a803352a964de9567bc314f8ace1c612082e3d0) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "jacman.5e", 0x0000, 0x1000, CRC(809bd73e) SHA1(81989a21d089eb76297926905729efcd69abeb87) )
+ ROM_LOAD( "jacman.5f", 0x1000, 0x1000, CRC(0509d3e6) SHA1(e589543b9a2f1c81115c03b4b88096ac84826e62) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( joyman )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacheart.6e", 0x0000, 0x0800, CRC(d844b679) SHA1(c4486198b3126bb8e05a308c53787e51065f77ae) )
+ ROM_LOAD( "joyman.6k", 0x0800, 0x0800, CRC(ab9c8f29) SHA1(3753b8609c30d85d89acf745cf9303b77be440fd) )
+ ROM_LOAD( "puckman.6f", 0x1000, 0x0800, CRC(7d177853) SHA1(9b5ddaaa8b564654f97af193dbcc29f81f230a25) )
+ ROM_LOAD( "joyman.6m", 0x1800, 0x0800, CRC(b3c8d32e) SHA1(8b336fca1300820308cd5c4efc60bf2ba4199302) )
+ ROM_LOAD( "pacheart.6h", 0x2000, 0x0800, CRC(9045a44c) SHA1(a97d7016effbd2ace9a7d92ceb04a6ce18fb42f9) )
+ ROM_LOAD( "pacheart.6n", 0x2800, 0x0800, CRC(888f3c3e) SHA1(c2b5917bf13071131dd53ea76f0da86706db2d80) )
+ ROM_LOAD( "joyman.6j", 0x3000, 0x0800, CRC(00b553f8) SHA1(57f2e4a6da9f00935fead447b2123a8b95e5d672) )
+ ROM_LOAD( "joyman.6p", 0x3800, 0x0800, CRC(5d5ce992) SHA1(ced7ed39cfc7ec7b2c0459e275577976109ee82f) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "joyman.5e", 0x0000, 0x0800, CRC(39b557bc) SHA1(0f602ec84cb25fced89699e430b95b5ae93c83bd) )
+ ROM_LOAD( "joyman.5h", 0x0800, 0x0800, CRC(33e0289e) SHA1(c1b910bdc61e560a8c34298deb11401f718e7330) )
+ ROM_LOAD( "joyman.5f", 0x1000, 0x0800, CRC(338771a6) SHA1(7cd68cc428986255d0de29aae894900519e7fda5) )
+ ROM_LOAD( "joyman.5j", 0x1800, 0x0800, CRC(f4f0add5) SHA1(d71c54ef55a755ec1316623d183b4f615ef7c055) )
+
+ PACMAN_PROMS
+ROM_END
+
+/* No gfx roms and no proms included. Using puckman ones. Dumped by Andy Welburn. */
+ROM_START( jpmmunch )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "newpuck1.6e", 0x0000, 0x0800, CRC(2c0fa0ab) SHA1(37680e4502771ae69d51d07ce43f65b9b2dd2a49) )
+ ROM_LOAD( "pmheart.6k", 0x0800, 0x0800, CRC(afeca2f1) SHA1(1e6d6c75eeb3a354ce2dc88da62caf9e7d53d0cb) )
+ ROM_LOAD( "puckman.6f", 0x1000, 0x0800, CRC(7d177853) SHA1(9b5ddaaa8b564654f97af193dbcc29f81f230a25) )
+ ROM_LOAD( "puckman.6m", 0x1800, 0x0800, CRC(d3e8914c) SHA1(c2f00e1773c6864435f29c8b7f44f2ef85d227d3) )
+ ROM_LOAD( "pacheart.6h", 0x2000, 0x0800, CRC(9045a44c) SHA1(a97d7016effbd2ace9a7d92ceb04a6ce18fb42f9) )
+ ROM_LOAD( "pmheart.6n", 0x2800, 0x0800, CRC(93f344c5) SHA1(987c7fa18a774a47c045fa1dc7dff37457cb8983) )
+ ROM_LOAD( "jpmmunch.6j", 0x3000, 0x0800, CRC(258580a2) SHA1(c594329963215971dba7cd857dfde5323f610dba) )
+ ROM_LOAD( "jpmmunch.6p", 0x3800, 0x0800, CRC(b4d7ee8c) SHA1(38dfea4443f13c15ed17e0eb8f7ca24ce14d6ca8) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "puckman.5e", 0x0000, 0x0800, CRC(2066a0b7) SHA1(6d4ccc27d6be185589e08aa9f18702b679e49a4a) )
+ ROM_LOAD( "puckman.5h", 0x0800, 0x0800, CRC(3591b89d) SHA1(79bb456be6c39c1ccd7d077fbe181523131fb300) )
+ ROM_LOAD( "puckman.5f", 0x1000, 0x0800, CRC(9e39323a) SHA1(be933e691df4dbe7d12123913c3b7b7b585b7a35) )
+ ROM_LOAD( "puckman.5j", 0x1800, 0x0800, CRC(1b1d9096) SHA1(53771c573051db43e7185b1d188533056290a620) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mazeman )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "newpuck2.6e", 0x0000, 0x1000, CRC(a8ae23c5) SHA1(1481a4f083b563350744f9d25b1bcd28073875d6) )
+ ROM_LOAD( "mazeman.6f", 0x1000, 0x1000, CRC(77e44852) SHA1(01c2e54cf9adc3bd92ab02eaa471638d8f17754d) )
+ ROM_LOAD( "mazeman.6h", 0x2000, 0x1000, CRC(6d16a528) SHA1(3ef42b46564bf3b8347f6bddb1940368a23fa515) )
+ ROM_LOAD( "mazeman.6j", 0x3000, 0x1000, CRC(3c3ff208) SHA1(2c6a8f9e3f130c3c0a9fa535b1ff76ac26a07f9f) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "mazeman.5e", 0x0000, 0x1000, CRC(38870a32) SHA1(2b65a6309b204b89dcb6329e43f55301ecf69227) )
+ ROM_LOAD( "mazeman.5f", 0x1000, 0x1000, CRC(1fd18b80) SHA1(2b10b572840e5977adda490d5fbddef98b65575e) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( namcosil )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "puckmanb.6e", 0x0000, 0x1000, CRC(fee263b3) SHA1(87117ba5082cd7a615b4ec7c02dd819003fbd669) )
+ ROM_LOAD( "namcosil.6f", 0x1000, 0x1000, CRC(c5ec2352) SHA1(86178b16dabb90005b132febc1a261651a73018d) )
+ ROM_LOAD( "puckmanb.6h", 0x2000, 0x1000, CRC(02083b03) SHA1(7e1945f6eb51f2e51806d0439f975f7a2889b9b8) )
+ ROM_LOAD( "namcosil.6j", 0x3000, 0x1000, CRC(57a07f6e) SHA1(8a7a1d4662e4fc5c5374ad1cad09fd4da1f8398a) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( newpuc2 )
+ ROM_REGION( 0x10000, "maincpu",0 )
+ ROM_LOAD( "newpuc2.6e", 0x0000, 0x0800, CRC(69496a98) SHA1(2934051d6305cc3654951bc1aacf2b8902f463fe) )
+ ROM_LOAD( "newpuc2.6k", 0x0800, 0x0800, CRC(158fc01c) SHA1(2f7a1e24d259fdc716ef8e7354a87780595f3c4e) )
+ ROM_LOAD( "puckman.6f", 0x1000, 0x0800, CRC(7d177853) SHA1(9b5ddaaa8b564654f97af193dbcc29f81f230a25) )
+ ROM_LOAD( "newpuc2.6m", 0x1800, 0x0800, CRC(70810ccf) SHA1(3941678606aab1e53356a6781e24d84e83cc88ce) )
+ ROM_LOAD( "newpuc2.6h", 0x2000, 0x0800, CRC(81719de8) SHA1(e886d04ac0e20562a4bd2df7676bdf9aa98665d7) )
+ ROM_LOAD( "newpuc2.6n", 0x2800, 0x0800, CRC(3f250c58) SHA1(53bf2270c26f10f7e97960cd4c96e09e16b9bdf3) )
+ ROM_LOAD( "newpuc2.6j", 0x3000, 0x0800, CRC(e6675736) SHA1(85d0bb79bc96acbc67fcb70ff4d453c870a6c8ea) )
+ ROM_LOAD( "newpuc2.6p", 0x3800, 0x0800, CRC(1f81e765) SHA1(442d8a82e79ae842f1ffb46369c632c1d0b83161) )
+
+ ROM_REGION( 0x2000, "gfx1" , 0)
+ ROM_LOAD( "puckman.5e", 0x0000, 0x0800, CRC(2066a0b7) SHA1(6d4ccc27d6be185589e08aa9f18702b679e49a4a) )
+ ROM_LOAD( "newpuc2.5h", 0x0800, 0x0800, CRC(777c70d3) SHA1(ed5ccbeb1102ec9f837577de3aa51317c32520d6) )
+ ROM_LOAD( "newpuc2.5f", 0x1000, 0x0800, CRC(ca8c184c) SHA1(833aa845824ed80777b62f03df36a920ad7c3656) )
+ ROM_LOAD( "newpuc2.5j", 0x1800, 0x0800, CRC(7dc75a81) SHA1(d3fe1cad3b594052d8367685febb2335b0ad62f4) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( newpuc2b )
+ ROM_REGION( 0x10000, "maincpu",0 )
+ ROM_LOAD( "hangly3.6e", 0x0000, 0x0800, CRC(9d027c4a) SHA1(88e094880057451a75cdc2ce9477403021813982) )
+ ROM_LOAD( "newpuc2.6k", 0x0800, 0x0800, CRC(158fc01c) SHA1(2f7a1e24d259fdc716ef8e7354a87780595f3c4e) )
+ ROM_LOAD( "puckman.6f", 0x1000, 0x0800, CRC(7d177853) SHA1(9b5ddaaa8b564654f97af193dbcc29f81f230a25) )
+ ROM_LOAD( "newpuc2.6m", 0x1800, 0x0800, CRC(70810ccf) SHA1(3941678606aab1e53356a6781e24d84e83cc88ce) )
+ ROM_LOAD( "newpuc2b.6h", 0x2000, 0x0800, CRC(f5e4b2b1) SHA1(68464f61cc50931f6cd4bb493dd703c139500825) )
+ ROM_LOAD( "newpuc2.6n", 0x2800, 0x0800, CRC(3f250c58) SHA1(53bf2270c26f10f7e97960cd4c96e09e16b9bdf3) )
+ ROM_LOAD( "newpuc2b.6j", 0x3000, 0x0800, CRC(f068e009) SHA1(a30763935e116559d535654827230bb21a5734bb) )
+ ROM_LOAD( "newpuc2b.6p", 0x3800, 0x0800, CRC(1fadcc2f) SHA1(2d636cfc2b52b671ac5a26a03b1195e2cf8d4718) )
+
+ ROM_REGION( 0x2000, "gfx1" , 0)
+ ROM_LOAD( "puckman.5e", 0x0000, 0x0800, CRC(2066a0b7) SHA1(6d4ccc27d6be185589e08aa9f18702b679e49a4a) )
+ ROM_LOAD( "newpuc2.5h", 0x0800, 0x0800, CRC(777c70d3) SHA1(ed5ccbeb1102ec9f837577de3aa51317c32520d6) )
+ ROM_LOAD( "newpuc2.5f", 0x1000, 0x0800, CRC(ca8c184c) SHA1(833aa845824ed80777b62f03df36a920ad7c3656) )
+ ROM_LOAD( "newpuc2.5j", 0x1800, 0x0800, CRC(7dc75a81) SHA1(d3fe1cad3b594052d8367685febb2335b0ad62f4) )
+
+ PACMAN_PROMS
+ROM_END
+
+/* This was from the Italian dumping team, called "puckmanbootleg.zip". They did not dump the 2nd, 4th, 6th, 8th
+ program roms, so I have used the ones from pacheart for now. Also, it has the standard maze instead of the
+ newpuck one - but this could be correct? */
+ROM_START( newpuc1 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "newpuck1.6e", 0x0000, 0x0800, CRC(2c0fa0ab) SHA1(37680e4502771ae69d51d07ce43f65b9b2dd2a49) )
+ ROM_LOAD( "pacheart.6k", 0x0800, 0x0800, CRC(b9152a38) SHA1(b6be2cb6bc7dd123503eb6bf1165dd1c99456813) )
+ ROM_LOAD( "puckman.6f", 0x1000, 0x0800, CRC(7d177853) SHA1(9b5ddaaa8b564654f97af193dbcc29f81f230a25) )
+ ROM_LOAD( "pacheart.6m", 0x1800, 0x0800, CRC(842d6574) SHA1(40e32d09cc8d701eb318716493a68cf3f95d3d6d) )
+ ROM_LOAD( "pacheart.6h", 0x2000, 0x0800, CRC(9045a44c) SHA1(a97d7016effbd2ace9a7d92ceb04a6ce18fb42f9) )
+ ROM_LOAD( "pacheart.6n", 0x2800, 0x0800, CRC(888f3c3e) SHA1(c2b5917bf13071131dd53ea76f0da86706db2d80) )
+ ROM_LOAD( "newpuck1.6j", 0x3000, 0x0800, CRC(565687c6) SHA1(9ee8e8197e87e468669279e738fe518e5480363c) )
+ ROM_LOAD( "pacheart.6p", 0x3800, 0x0800, CRC(1a21a381) SHA1(d5367a327d19fb57ba5e484bd4fda1b10953c040) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "newpuck1.5e", 0x0000, 0x0800, CRC(3ed40275) SHA1(bf56f9a21bc1dacee438d88eb5bc59f20906b00c) )
+ ROM_LOAD( "puckman.5h", 0x0800, 0x0800, CRC(3591b89d) SHA1(79bb456be6c39c1ccd7d077fbe181523131fb300) )
+ ROM_LOAD( "puckman.5f", 0x1000, 0x0800, CRC(9e39323a) SHA1(be933e691df4dbe7d12123913c3b7b7b585b7a35) )
+ ROM_LOAD( "puckman.5j", 0x1800, 0x0800, CRC(1b1d9096) SHA1(53771c573051db43e7185b1d188533056290a620) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( newpuck2 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "newpuck2.6e", 0x0000, 0x1000, CRC(a8ae23c5) SHA1(1481a4f083b563350744f9d25b1bcd28073875d6) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "newpuck2.6h", 0x2000, 0x1000, CRC(197443f8) SHA1(119aab12a9e1052c7b9a1f81e563740b41429a8c) )
+ ROM_LOAD( "newpuck2.6j", 0x3000, 0x1000, CRC(0e3bdbde) SHA1(11679a3e60cb98ef56e9f0c349d421a72b7097f6) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( newpuc2x )
+ ROM_REGION( 0x10000, "maincpu",0 )
+ ROM_LOAD( "newpuc2.6e", 0x0000, 0x0800, CRC(69496a98) SHA1(2934051d6305cc3654951bc1aacf2b8902f463fe) )
+ ROM_LOAD( "newpuc2.6k", 0x0800, 0x0800, CRC(158fc01c) SHA1(2f7a1e24d259fdc716ef8e7354a87780595f3c4e) )
+ ROM_LOAD( "puckman.6f", 0x1000, 0x0800, CRC(7d177853) SHA1(9b5ddaaa8b564654f97af193dbcc29f81f230a25) )
+ ROM_LOAD( "newpuc2.6m", 0x1800, 0x0800, CRC(70810ccf) SHA1(3941678606aab1e53356a6781e24d84e83cc88ce) )
+ ROM_LOAD( "newpuc2.6h", 0x2000, 0x0800, CRC(81719de8) SHA1(e886d04ac0e20562a4bd2df7676bdf9aa98665d7) )
+ ROM_LOAD( "newpuc2.6n", 0x2800, 0x0800, CRC(3f250c58) SHA1(53bf2270c26f10f7e97960cd4c96e09e16b9bdf3) )
+ ROM_LOAD( "newpuc2.6j", 0x3000, 0x0800, CRC(e6675736) SHA1(85d0bb79bc96acbc67fcb70ff4d453c870a6c8ea) )
+ ROM_LOAD( "newpuc2.6p", 0x3800, 0x0800, CRC(1f81e765) SHA1(442d8a82e79ae842f1ffb46369c632c1d0b83161) )
+
+ ROM_REGION( 0x8000, "gfx1", 0 )
+ ROM_LOAD( "newpuc2x.5e", 0x0000, 0x4000, CRC(0a64f4c8) SHA1(1f3456b14b2b847869db6eeb3c115e3042b24672) )
+ ROM_LOAD( "newpuc2x.5f", 0x4000, 0x4000, CRC(4ba7164c) SHA1(902e6f0bfeed8f40b83cf0eb7de6440d91ee811d) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( newpuck3 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "newpuck2.6e", 0x0000, 0x1000, CRC(a8ae23c5) SHA1(1481a4f083b563350744f9d25b1bcd28073875d6) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "newpuck3.6h", 0x2000, 0x1000, CRC(ee3c8685) SHA1(17d80ea2766370dcec04070de67cde69d2c3b04b) )
+ ROM_LOAD( "newpuck3.6j", 0x3000, 0x1000, CRC(6ee64463) SHA1(5b692313dbe448b6b016f9dd2403757e16578049) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "newpuck3.5e", 0x0000, 0x1000, CRC(6209b614) SHA1(23434b89f25d6164dca619192a282c60a63418e1) )
+ ROM_LOAD( "newpuck3.5f", 0x1000, 0x1000, CRC(923515bc) SHA1(a3605a632f4b47616e0c6e4e1cdf1ef9c71bb0e0) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( newpuckx )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "newpuck2.6e", 0x0000, 0x1000, CRC(a8ae23c5) SHA1(1481a4f083b563350744f9d25b1bcd28073875d6) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "newpuck2.6h", 0x2000, 0x1000, CRC(197443f8) SHA1(119aab12a9e1052c7b9a1f81e563740b41429a8c) )
+ ROM_LOAD( "fastpuck.6j", 0x3000, 0x1000, CRC(2e64a3ba) SHA1(f86a921173f32211b18d023c2701664d13ae23be) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( nwpuc2b )
+ ROM_REGION( 0x10000, "maincpu",0 )
+ ROM_LOAD( "nwpuc2b.6e", 0x0000, 0x1000, CRC(532bd09f) SHA1(ed362ae0b38a00747128046a14d68d2a676953ae) )
+ ROM_LOAD( "nwpuc2b.6f", 0x1000, 0x1000, CRC(b9062f57) SHA1(cdfb2264fc5874cd18848fde936ea1314ce74cba) )
+ ROM_LOAD( "nwpuc2b.6h", 0x2000, 0x1000, CRC(519b3c57) SHA1(cc03d67035f9d590fadef899d9a2d978a4978b39) )
+ ROM_LOAD( "nwpuc2b.6j", 0x3000, 0x1000, CRC(154cc118) SHA1(e5bd6033653edcfadac467573613e1b7dbf9eb44) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "nwpuc2b.5e", 0x0000, 0x1000, CRC(58357313) SHA1(a1778318e07510eeb5b23a5d650f5a5f9fc0fb5a) )
+ ROM_LOAD( "nwpuc2b.5f", 0x1000, 0x1000, CRC(4b044c87) SHA1(3e1a497563918d1ddd730efb9622abe650a258a1) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( nwpuc2bx )
+ ROM_REGION( 0x10000, "maincpu",0 )
+ ROM_LOAD( "hangly3.6e", 0x0000, 0x0800, CRC(9d027c4a) SHA1(88e094880057451a75cdc2ce9477403021813982) )
+ ROM_LOAD( "newpuc2.6k", 0x0800, 0x0800, CRC(158fc01c) SHA1(2f7a1e24d259fdc716ef8e7354a87780595f3c4e) )
+ ROM_LOAD( "puckman.6f", 0x1000, 0x0800, CRC(7d177853) SHA1(9b5ddaaa8b564654f97af193dbcc29f81f230a25) )
+ ROM_LOAD( "newpuc2.6m", 0x1800, 0x0800, CRC(70810ccf) SHA1(3941678606aab1e53356a6781e24d84e83cc88ce) )
+ ROM_LOAD( "nwepuc2b.6h", 0x2000, 0x0800, CRC(f5e4b2b1) SHA1(68464f61cc50931f6cd4bb493dd703c139500825) )
+ ROM_LOAD( "newpuc2.6n", 0x2800, 0x0800, CRC(3f250c58) SHA1(53bf2270c26f10f7e97960cd4c96e09e16b9bdf3) )
+ ROM_LOAD( "newpuc2b.6j", 0x3000, 0x0800, CRC(f068e009) SHA1(a30763935e116559d535654827230bb21a5734bb) )
+ ROM_LOAD( "newpuc2b.6p", 0x3800, 0x0800, CRC(1fadcc2f) SHA1(2d636cfc2b52b671ac5a26a03b1195e2cf8d4718) )
+
+ ROM_REGION( 0x8000, "gfx1", 0 )
+ ROM_LOAD( "newpuc2x.5e", 0x0000, 0x4000, CRC(0a64f4c8) SHA1(1f3456b14b2b847869db6eeb3c115e3042b24672) )
+ ROM_LOAD( "newpuc2x.5f", 0x4000, 0x4000, CRC(4ba7164c) SHA1(902e6f0bfeed8f40b83cf0eb7de6440d91ee811d) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( nwpuckxx )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "newpuck2.6e", 0x0000, 0x1000, CRC(a8ae23c5) SHA1(1481a4f083b563350744f9d25b1bcd28073875d6) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "newpuck2.6h", 0x2000, 0x1000, CRC(197443f8) SHA1(119aab12a9e1052c7b9a1f81e563740b41429a8c) )
+ ROM_LOAD( "fastpuck.6j", 0x3000, 0x1000, CRC(2e64a3ba) SHA1(f86a921173f32211b18d023c2701664d13ae23be) )
+
+ ROM_REGION( 0x8000, "gfx1", 0 )
+ ROM_LOAD( "pacmanx.5e", 0x0000, 0x4000, CRC(a45138ce) SHA1(f18344980b4a58d0abf0cc2b7853184af3d5bfa0) )
+ ROM_LOAD( "pacmanx.5f", 0x4000, 0x4000, CRC(92e1b10e) SHA1(bb04988502fa181365c08096b5fd47fa9541c291) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pac2600 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pac2600.6f", 0x1000, 0x1000, CRC(0a27d11d) SHA1(b7b8da84b3a472974ed2f53a82d56bc8e81cef5c) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pac2600.6j", 0x3000, 0x1000, CRC(ab23fe0c) SHA1(1ae9882ee1c33ea18cf40c2ef5563cc3b546dcd5) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pac2600.5e", 0x0000, 0x1000, CRC(87d8f5ce) SHA1(fe421ee0f5ef70b56f0760473b003a886bed3d72) )
+ ROM_LOAD( "pac2600.5f", 0x1000, 0x1000, CRC(91bd671f) SHA1(ae1745a03090a747baf78f8554ea8620fa2b9d81) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pac2600a )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pac2600a.6j", 0x3000, 0x1000, CRC(d168bdfa) SHA1(0edc9c435385f9bce1939ad5ea41225ddf1db16f) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pac2600a.5e", 0x0000, 0x1000, CRC(20e327e3) SHA1(857e4d67ae9f2f9b9b60fd4f9c1327b5056e3705) )
+ ROM_LOAD( "pac2600a.5f", 0x1000, 0x1000, CRC(feb98199) SHA1(66a84d5813de4441e6dd70e91fbdb482f999da8f) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacbaby )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacbaby.6j", 0x3000, 0x1000, CRC(4e4ac798) SHA1(deab2d93a678abee576c891bdfb7ab93d5718792) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacbaby2 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacbaby2.6j", 0x3000, 0x1000, CRC(742453ba) SHA1(21707992ea3489c8bc95b14db33f62b6aaa24eb4) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacbaby3 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacbaby3.6j", 0x3000, 0x1000, CRC(b82f2b73) SHA1(63619220b9ed4dfeb4f462b41d9685870716590a) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacbell )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacm255.6h", 0x2000, 0x1000, CRC(d3640977) SHA1(2cc05c16c0cf6f516c69ab0b6e1a83bdd3010798) )
+ ROM_LOAD( "pacbell.6j", 0x3000, 0x1000, CRC(4b428215) SHA1(acdcc4d7ccfc58c6c0473e8ee548b5e02dcafcfd) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacelec )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacm255.6h", 0x2000, 0x1000, CRC(d3640977) SHA1(2cc05c16c0cf6f516c69ab0b6e1a83bdd3010798) )
+ ROM_LOAD( "pacelec.6j", 0x3000, 0x1000, CRC(9e5c763d) SHA1(df56eb705c7dfaf00b084aa6744d7fd5fa4f47d3) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacfnt )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacfnt.5e", 0x0000, 0x1000, CRC(f2561d07) SHA1(1b971c2a907673dac0bf676f599a8a20fcb4a01b) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacheart )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacheart.6e", 0x0000, 0x0800, CRC(d844b679) SHA1(c4486198b3126bb8e05a308c53787e51065f77ae) )
+ ROM_LOAD( "pacheart.6k", 0x0800, 0x0800, CRC(b9152a38) SHA1(b6be2cb6bc7dd123503eb6bf1165dd1c99456813) )
+ ROM_LOAD( "puckman.6f", 0x1000, 0x0800, CRC(7d177853) SHA1(9b5ddaaa8b564654f97af193dbcc29f81f230a25) )
+ ROM_LOAD( "pacheart.6m", 0x1800, 0x0800, CRC(842d6574) SHA1(40e32d09cc8d701eb318716493a68cf3f95d3d6d) )
+ ROM_LOAD( "pacheart.6h", 0x2000, 0x0800, CRC(9045a44c) SHA1(a97d7016effbd2ace9a7d92ceb04a6ce18fb42f9) )
+ ROM_LOAD( "pacheart.6n", 0x2800, 0x0800, CRC(888f3c3e) SHA1(c2b5917bf13071131dd53ea76f0da86706db2d80) )
+ ROM_LOAD( "pacheart.6j", 0x3000, 0x0800, CRC(f5265c10) SHA1(9a320790d7a03fd6192a92d30b3e9c754bbc6a9d) )
+ ROM_LOAD( "pacheart.6p", 0x3800, 0x0800, CRC(1a21a381) SHA1(d5367a327d19fb57ba5e484bd4fda1b10953c040) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacheart.5e", 0x0000, 0x0800, CRC(c62bbabf) SHA1(f6f28ae33c2ab274105283b22b49ad243780a95e) )
+ ROM_LOAD( "puckman.5h", 0x0800, 0x0800, CRC(3591b89d) SHA1(79bb456be6c39c1ccd7d077fbe181523131fb300) )
+ ROM_LOAD( "newpuc2.5f", 0x1000, 0x0800, CRC(ca8c184c) SHA1(833aa845824ed80777b62f03df36a920ad7c3656) )
+ ROM_LOAD( "puckman.5j", 0x1800, 0x0800, CRC(1b1d9096) SHA1(53771c573051db43e7185b1d188533056290a620) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacinvis )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacm255.6h", 0x2000, 0x1000, CRC(d3640977) SHA1(2cc05c16c0cf6f516c69ab0b6e1a83bdd3010798) )
+ ROM_LOAD( "pacinvis.6j", 0x3000, 0x1000, CRC(1b4e96dc) SHA1(f26207c9b8277078a7c428f35938164ea6326f21) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacjail )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacm255.6h", 0x2000, 0x1000, CRC(d3640977) SHA1(2cc05c16c0cf6f516c69ab0b6e1a83bdd3010798) )
+ ROM_LOAD( "pacjail.6j", 0x3000, 0x1000, CRC(cc31f185) SHA1(cd184a55f775bc9a70d0bfa932d2993b8987135b) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacjr1 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacm255.6h", 0x2000, 0x1000, CRC(d3640977) SHA1(2cc05c16c0cf6f516c69ab0b6e1a83bdd3010798) )
+ ROM_LOAD( "pacjr1.6j", 0x3000, 0x1000, CRC(fcfb21a3) SHA1(74c103f78cb75cb01ec4b611e341ed3d37fb0b94) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacjr1.5e", 0x0000, 0x1000, CRC(9f3c32d4) SHA1(e7e40207f2a70768ce38cbb1e62c02ca4bed3a14) )
+ ROM_LOAD( "pacjr1.5f", 0x1000, 0x1000, CRC(c2310808) SHA1(84c28a4fc327afcb441daee35acdab6f7613395e) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacjr2 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacm255.6h", 0x2000, 0x1000, CRC(d3640977) SHA1(2cc05c16c0cf6f516c69ab0b6e1a83bdd3010798) )
+ ROM_LOAD( "pacjr2.6j", 0x3000, 0x1000, CRC(cc26c905) SHA1(213adaaa54cd084dbf73bd6d6ed9f9f4e4a03a5f) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacjr1.5e", 0x0000, 0x1000, CRC(9f3c32d4) SHA1(e7e40207f2a70768ce38cbb1e62c02ca4bed3a14) )
+ ROM_LOAD( "pacjr1.5f", 0x1000, 0x1000, CRC(c2310808) SHA1(84c28a4fc327afcb441daee35acdab6f7613395e) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacjr3 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacm255.6h", 0x2000, 0x1000, CRC(d3640977) SHA1(2cc05c16c0cf6f516c69ab0b6e1a83bdd3010798) )
+ ROM_LOAD( "pacjr3.6j", 0x3000, 0x1000, CRC(d4d8cb9b) SHA1(06bcf32e5fe9af7161178bd6295a6ea48f791f37) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacjr1.5e", 0x0000, 0x1000, CRC(9f3c32d4) SHA1(e7e40207f2a70768ce38cbb1e62c02ca4bed3a14) )
+ ROM_LOAD( "pacjr1.5f", 0x1000, 0x1000, CRC(c2310808) SHA1(84c28a4fc327afcb441daee35acdab6f7613395e) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacjr4 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacm255.6h", 0x2000, 0x1000, CRC(d3640977) SHA1(2cc05c16c0cf6f516c69ab0b6e1a83bdd3010798) )
+ ROM_LOAD( "pacjr4.6j", 0x3000, 0x1000, CRC(42ca024b) SHA1(567331f4050fc0de5d1fda304fa27556c86968db) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacjr1.5e", 0x0000, 0x1000, CRC(9f3c32d4) SHA1(e7e40207f2a70768ce38cbb1e62c02ca4bed3a14) )
+ ROM_LOAD( "pacjr1.5f", 0x1000, 0x1000, CRC(c2310808) SHA1(84c28a4fc327afcb441daee35acdab6f7613395e) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacm255 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacm255.6h", 0x2000, 0x1000, CRC(d3640977) SHA1(2cc05c16c0cf6f516c69ab0b6e1a83bdd3010798) )
+ ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacman )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacman25 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "puckmanb.6e", 0x0000, 0x1000, CRC(fee263b3) SHA1(87117ba5082cd7a615b4ec7c02dd819003fbd669) )
+ ROM_LOAD( "namcosil.6f", 0x1000, 0x1000, CRC(c5ec2352) SHA1(86178b16dabb90005b132febc1a261651a73018d) )
+ ROM_LOAD( "pacman25.3", 0x2000, 0x1000, CRC(92cd89b9) SHA1(c3a0141480341c550a889b58692c8c90b322ee67) )
+ ROM_LOAD( "pacman25.4", 0x3000, 0x1000, CRC(f7193845) SHA1(6d190cf6e76520b8b8c97e6e3a817c4a142003ba) )
+ ROM_LOAD( "pacman25.5", 0x8000, 0x1000, CRC(19a22304) SHA1(6cc0e4921148b7a7eedf5d807bd63062b745e1c6) )
+ ROM_LOAD( "pacman25.6", 0x9000, 0x1000, CRC(7cdbd912) SHA1(b19868bd5da3163e03320e6de0428b22b8e02d80) )
+ ROM_LOAD( "pacman25.7", 0xa000, 0x1000, CRC(c626ea9c) SHA1(3cd3f20e002845937a43f323b685425c95881d9e) )
+ ROM_LOAD( "pacman25.8", 0xb000, 0x1000, CRC(f5ba954d) SHA1(eba18f9a7f6d50f167ed37bff0adec43f52b49a0) )
+ /* This colour table is configurable to whatever you want */
+ ROM_FILL(0x8fc0, 1, 0x01) // level 1
+ ROM_FILL(0x8fc1, 1, 0x11) // level 2
+ ROM_FILL(0x8fc2, 1, 0x03)
+ ROM_FILL(0x8fc3, 1, 0x12)
+ ROM_FILL(0x8fc4, 1, 0x09)
+ ROM_FILL(0x8fc5, 1, 0x1f)
+ ROM_FILL(0x8fc6, 1, 0x0e)
+ ROM_FILL(0x8fc7, 1, 0x14)
+ ROM_FILL(0x8fc8, 1, 0x15)
+ ROM_FILL(0x8fc9, 1, 0x16)
+ ROM_FILL(0x8fca, 1, 0x17)
+ ROM_FILL(0x8fcb, 1, 0x18)
+ ROM_FILL(0x8fcc, 1, 0x10)
+ ROM_FILL(0x8fcd, 1, 0x1d)
+ ROM_FILL(0x8fce, 1, 0x1f)
+ ROM_FILL(0x8fcf, 1, 0x07) // level 16
+ ROM_COPY( "maincpu", 0x8fc0, 0x8fd0, 0x10 ) /* copy the above to levels 17-32 */
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman25.5e", 0x0000, 0x1000, CRC(11d47ae1) SHA1(fbd47432f258e56f1323766d5b2844f4a2e6e7ac) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacman3d )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman3d.6f", 0x1000, 0x1000, CRC(96364259) SHA1(ec2f36a44fd0c13dfd7dc571b9499bc9dbaa247d) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacman3d.6j", 0x3000, 0x1000, CRC(959e930e) SHA1(0ef24017be05ddf85248c4d00f0e21cbf658f78c) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman3d.5e", 0x0000, 0x1000, CRC(aa203d45) SHA1(7d2fb9bc8718601efc33d2469452a08018167e60) )
+ ROM_LOAD( "pacman3d.5f", 0x1000, 0x1000, CRC(d1830540) SHA1(5d276774997e3be8fc9c21d55562288acd1cffcc) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacman6 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman6.6h", 0x2000, 0x1000, CRC(aee79ea1) SHA1(4f3214b56056c3ac00c0535ce5d6a367ccda6e31) )
+ ROM_LOAD( "pacman6.6j", 0x3000, 0x1000, CRC(581ae70b) SHA1(a184c9d9b6ffbaba936867aef14e783234bf7af2) )
+ ROM_LOAD( "pacman6.map", 0x8000, 0x1000, CRC(de753fd9) SHA1(467cd6dd572a3e6f0b2e0120d520df919433655a) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacmulti.5e", 0x0000, 0x1000, CRC(46cdda4a) SHA1(2c38050a4f5d0c9e1b4f3e054dcac25cde63ae2a) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacmanf )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacmanf.6f", 0x1000, 0x1000, CRC(720dc3ee) SHA1(7224d7acfa0144b681c71d7734a7337189835361) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacmanfx )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacmanf.6f", 0x1000, 0x1000, CRC(720dc3ee) SHA1(7224d7acfa0144b681c71d7734a7337189835361) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) )
+
+ ROM_REGION( 0x8000, "gfx1", 0 )
+ ROM_LOAD( "pacmanx.5e", 0x0000, 0x4000, CRC(a45138ce) SHA1(f18344980b4a58d0abf0cc2b7853184af3d5bfa0) )
+ ROM_LOAD( "pacmanx.5f", 0x4000, 0x4000, CRC(92e1b10e) SHA1(bb04988502fa181365c08096b5fd47fa9541c291) )
+
+ PACMAN_PROMS
+ROM_END
+
+/* This set has the fixes proposed by Don Hodges at the pages:
+ http://donhodges.com/how_high_can_you_get2.htm
+ http://donhodges.com/pacman_pinky_explanation.htm
+ These are: AI fixes for Pinky and Inky; fix for the kill screen on level 256.
+ Patches invented by Don Hodges; coded into a ROM by Krick. */
+ROM_START( pacmanp )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacmanp.6h", 0x2000, 0x1000, CRC(65625778) SHA1(8d29d46cff897a4d89367a3cc02627bcee1ef38e) )
+ ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacmanx )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) )
+
+ ROM_REGION( 0x8000, "gfx1", 0 )
+ ROM_LOAD( "pacmanx.5e", 0x0000, 0x4000, CRC(a45138ce) SHA1(f18344980b4a58d0abf0cc2b7853184af3d5bfa0) )
+ ROM_LOAD( "pacmanx.5f", 0x4000, 0x4000, CRC(92e1b10e) SHA1(bb04988502fa181365c08096b5fd47fa9541c291) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacmar )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacmar.6j", 0x3000, 0x1000, CRC(b208c7dc) SHA1(d2e199936ab0fc3de80f7c86def50c03da8c1684) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacmar.5e", 0x0000, 0x1000, CRC(7ccdfa59) SHA1(ed8e7f2e7b496a6f3246e1cc3966382e748ab1c3) )
+ ROM_LOAD( "pacmar.5f", 0x1000, 0x1000, CRC(51af9fc5) SHA1(0fe657bee3a811043663595f7f9e7e05cc71da84) )
+ ROM_COPY( "gfx1", 0x1b00, 0x1c00, 0x40 ) /* show mario at start of level */
+
+ PACMAN_PROMS
+ROM_END
+
+// extra keys: G = jump ; F = sound fx on/off ; R = music on/off
+ROM_START( pacminer )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacminer.6e", 0x0000, 0x1000, CRC(11dee14e) SHA1(1aeb94299a33daa9b51fdab3c0abea98858cc7dd) )
+ ROM_LOAD( "pacminer.6f", 0x1000, 0x1000, CRC(8c449bd7) SHA1(84233296683321f71fdef604ca19bfffd97e993c) )
+ ROM_LOAD( "pacminer.6h", 0x2000, 0x1000, CRC(a0e62570) SHA1(654a71144eae3c78d7baaeb9119aad0ece500e60) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacminer.5e", 0x0000, 0x1000, CRC(9b3cc7cd) SHA1(9bfb71e71f7f61e26d23e6370d684cdc6c910899) )
+ ROM_LOAD( "pacminer.5f", 0x1000, 0x1000, CRC(c1b2dc90) SHA1(3a089696bab9f3ff39e09c84117d22b861ddec40) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacmini )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacmini.6j", 0x3000, 0x1000, CRC(5e04f9c5) SHA1(1423a3698812fcfdb8537a528236278578864afb) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacmini.5e", 0x0000, 0x1000, CRC(5520b393) SHA1(5775a771b29efa5a8852310c36f1c8f68eec65a8) )
+ ROM_LOAD( "pacmini.5f", 0x1000, 0x1000, CRC(30e6024c) SHA1(51c1f9074091c053437a25ef1c6e9ee63e9b5154) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacmini2 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacmini2.6j", 0x3000, 0x1000, CRC(092dd5fa) SHA1(c016da8a22901fc4d441c94a3fecdd60d11f5c97) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacmini2.5e", 0x0000, 0x1000, CRC(130eff7b) SHA1(ab29362b827591acb4204639c0e323dabf2bc767) )
+ ROM_LOAD( "pacmini.5f", 0x1000, 0x1000, CRC(30e6024c) SHA1(51c1f9074091c053437a25ef1c6e9ee63e9b5154) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacmn6m2 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman6.6h", 0x2000, 0x1000, CRC(aee79ea1) SHA1(4f3214b56056c3ac00c0535ce5d6a367ccda6e31) )
+ ROM_LOAD( "pacman6.6j", 0x3000, 0x1000, CRC(581ae70b) SHA1(a184c9d9b6ffbaba936867aef14e783234bf7af2) )
+ ROM_LOAD( "pacmn6m2.map", 0x8000, 0x1000, CRC(aadee235) SHA1(0f8e4c26c2804033409dcdb5032d10fa650edc75) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacmn6m2.5e", 0x0000, 0x1000, CRC(60ada878) SHA1(5340d1cb8cf5f7f5fc2bc5e2df4ca0fe209b77e9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacmod )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacmanh.6e", 0x0000, 0x1000, CRC(3b2ec270) SHA1(48fc607ad8d86249948aa377c677ae44bb8ad3da) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacmanh.6h", 0x2000, 0x1000, CRC(18811780) SHA1(ab34acaa3dbcafe8b20c2197f36641e471984487) )
+ ROM_LOAD( "pacmanh.6j", 0x3000, 0x1000, CRC(5c96a733) SHA1(22ae15a6f088e7296f77c7487a350c4bd102f00e) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacmanh.5e", 0x0000, 0x1000, CRC(299fb17a) SHA1(ad97adc2122482a9018bacd137df9d8f409ddf85) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacmodx )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacmanh.6e", 0x0000, 0x1000, CRC(3b2ec270) SHA1(48fc607ad8d86249948aa377c677ae44bb8ad3da) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacmanh.6h", 0x2000, 0x1000, CRC(18811780) SHA1(ab34acaa3dbcafe8b20c2197f36641e471984487) )
+ ROM_LOAD( "pacmanh.6j", 0x3000, 0x1000, CRC(5c96a733) SHA1(22ae15a6f088e7296f77c7487a350c4bd102f00e) )
+
+ ROM_REGION( 0x8000, "gfx1", 0 )
+ ROM_LOAD( "pacmodx.5e", 0x0000, 0x4000, CRC(a05bc552) SHA1(5c2350aeac14cafebfcb7ff012427b1d3c6adf62) )
+ ROM_LOAD( "pacmanx.5f", 0x4000, 0x4000, CRC(92e1b10e) SHA1(bb04988502fa181365c08096b5fd47fa9541c291) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacms1 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacms1.6j", 0x3000, 0x1000, CRC(c5da3887) SHA1(2a65b31891bc19fc0fbdace39e853fff6c4227eb) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacms1.5e", 0x0000, 0x1000, CRC(7394868b) SHA1(832c44cf91251ebc1f7f6706ca71aa41cedc81e7) )
+ ROM_LOAD( "pacms1.5f", 0x1000, 0x1000, CRC(ce1a3264) SHA1(04fb1954ad6d60ddcd515f9c30ece1abfe2455cc) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacms2 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacms2.6j", 0x3000, 0x1000, CRC(b0a107ea) SHA1(86b8b7cb7e90b0de95bc9b8e3b98bcc46992578e) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacms1.5e", 0x0000, 0x1000, CRC(7394868b) SHA1(832c44cf91251ebc1f7f6706ca71aa41cedc81e7) )
+ ROM_LOAD( "pacms1.5f", 0x1000, 0x1000, CRC(ce1a3264) SHA1(04fb1954ad6d60ddcd515f9c30ece1abfe2455cc) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacms3 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacms3.6j", 0x3000, 0x1000, CRC(c7d8325a) SHA1(bf72a2d7b20d76e521cf45fbe1b0ab762daa8106) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacms1.5e", 0x0000, 0x1000, CRC(7394868b) SHA1(832c44cf91251ebc1f7f6706ca71aa41cedc81e7) )
+ ROM_LOAD( "pacms1.5f", 0x1000, 0x1000, CRC(ce1a3264) SHA1(04fb1954ad6d60ddcd515f9c30ece1abfe2455cc) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacms4 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacms4.6j", 0x3000, 0x1000, CRC(7b63ff9b) SHA1(84c167878ca4a1a1d79c397438defc8dcc6326f7) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacms1.5e", 0x0000, 0x1000, CRC(7394868b) SHA1(832c44cf91251ebc1f7f6706ca71aa41cedc81e7) )
+ ROM_LOAD( "pacms1.5f", 0x1000, 0x1000, CRC(ce1a3264) SHA1(04fb1954ad6d60ddcd515f9c30ece1abfe2455cc) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacmsa1 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacmsa1.6j", 0x3000, 0x1000, CRC(07163b97) SHA1(fdfbca327a2c3f69b4478b1e3ca9c8ed71605582) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacms1.5e", 0x0000, 0x1000, CRC(7394868b) SHA1(832c44cf91251ebc1f7f6706ca71aa41cedc81e7) )
+ ROM_LOAD( "pacms1.5f", 0x1000, 0x1000, CRC(ce1a3264) SHA1(04fb1954ad6d60ddcd515f9c30ece1abfe2455cc) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacmsa2 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacmsa2.6j", 0x3000, 0x1000, CRC(15e83c24) SHA1(ebe4d476104bbd037a1b5fe5783c0b77229ca707) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacms1.5e", 0x0000, 0x1000, CRC(7394868b) SHA1(832c44cf91251ebc1f7f6706ca71aa41cedc81e7) )
+ ROM_LOAD( "pacms1.5f", 0x1000, 0x1000, CRC(ce1a3264) SHA1(04fb1954ad6d60ddcd515f9c30ece1abfe2455cc) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacmsa3 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacmsa3.6j", 0x3000, 0x1000, CRC(5762f9cf) SHA1(b570468372a9520929513425523fdae734d4acfc) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacms1.5e", 0x0000, 0x1000, CRC(7394868b) SHA1(832c44cf91251ebc1f7f6706ca71aa41cedc81e7) )
+ ROM_LOAD( "pacms1.5f", 0x1000, 0x1000, CRC(ce1a3264) SHA1(04fb1954ad6d60ddcd515f9c30ece1abfe2455cc) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacmsa4 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacmsa4.6j", 0x3000, 0x1000, CRC(d9c2a669) SHA1(2f82405d297f35cc13199e1671cfa835dd598e9c) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacms1.5e", 0x0000, 0x1000, CRC(7394868b) SHA1(832c44cf91251ebc1f7f6706ca71aa41cedc81e7) )
+ ROM_LOAD( "pacms1.5f", 0x1000, 0x1000, CRC(ce1a3264) SHA1(04fb1954ad6d60ddcd515f9c30ece1abfe2455cc) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacmulti )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacmulti.6e", 0x0000, 0x1000, CRC(cfb721a8) SHA1(028e508a9c11eab508452ffc644730894adf388c) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacmulti.6h", 0x2000, 0x1000, CRC(e55d5230) SHA1(b764e85871cf8bb96a4ee7d0f3df204adfd4da5e) )
+ ROM_LOAD( "pacmulti.6j", 0x3000, 0x1000, CRC(29ba4b53) SHA1(f907641bb583342fa19f02de23639ba730123792) )
+ ROM_LOAD( "pacmulti.8", 0x8000, 0x1000, CRC(5a4b59dc) SHA1(09b21036cf40decf4ee00898eb44673599c65b05) )
+ ROM_LOAD( "pacmulti.9", 0x9000, 0x1000, CRC(3b939b12) SHA1(40333555af024f505064018a9b76dd284ecbf9a6) )
+ ROM_FILL(0x3f83, 3, 0) /* remove unneeeded subroutine call - this fixes a major bug */
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacmulti.5e", 0x0000, 0x1000, CRC(46cdda4a) SHA1(2c38050a4f5d0c9e1b4f3e054dcac25cde63ae2a) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacplus )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacplus.6e", 0x0000, 0x1000, CRC(d611ef68) SHA1(8531c54ca6b0de0ea4ccc34e0e801ba9847e75bc) )
+ ROM_LOAD( "pacplus.6f", 0x1000, 0x1000, CRC(c7207556) SHA1(8ba97215bdb75f0e70eb8d3223847efe4dc4fb48) )
+ ROM_LOAD( "pacplus.6h", 0x2000, 0x1000, CRC(ae379430) SHA1(4e8613d51a80cf106f883db79685e1e22541da45) )
+ ROM_LOAD( "pacplus.6j", 0x3000, 0x1000, CRC(5a6dff7b) SHA1(b956ae5d66683aab74b90469ad36b5bb361d677e) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacplus.5e", 0x0000, 0x1000, CRC(022c35da) SHA1(57d7d723c7b029e3415801f4ce83469ec97bb8a1) )
+ ROM_LOAD( "pacplus.5f", 0x1000, 0x1000, CRC(4de65cdd) SHA1(9c0699204484be819b77f0b212c792fe9e9fae5d) )
+
+ PACPLUS_PROMS
+ROM_END
+
+ROM_START( pacplusc )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacplusc.cpu", 0x0000, 0x4000, CRC(a0d25591) SHA1(0c7e1eb93762f9bb487df95c14ea986855529ce3) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacplus.5e", 0x0000, 0x1000, CRC(022c35da) SHA1(57d7d723c7b029e3415801f4ce83469ec97bb8a1) )
+ ROM_LOAD( "pacplus.5f", 0x1000, 0x1000, CRC(4de65cdd) SHA1(9c0699204484be819b77f0b212c792fe9e9fae5d) )
+
+ PACPLUS_PROMS
+ROM_END
+
+ROM_START( pacplusx )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacplus.6e", 0x0000, 0x1000, CRC(d611ef68) SHA1(8531c54ca6b0de0ea4ccc34e0e801ba9847e75bc) )
+ ROM_LOAD( "pacplus.6f", 0x1000, 0x1000, CRC(c7207556) SHA1(8ba97215bdb75f0e70eb8d3223847efe4dc4fb48) )
+ ROM_LOAD( "pacplus.6h", 0x2000, 0x1000, CRC(ae379430) SHA1(4e8613d51a80cf106f883db79685e1e22541da45) )
+ ROM_LOAD( "pacplus.6j", 0x3000, 0x1000, CRC(5a6dff7b) SHA1(b956ae5d66683aab74b90469ad36b5bb361d677e) )
+
+ ROM_REGION( 0x8000, "gfx1", 0 )
+ ROM_LOAD( "pacplusx.5e", 0x0000, 0x4000, CRC(06b08556) SHA1(982329d9568ee1a6edb8a1ed39686a33f65a1411) )
+ ROM_LOAD( "pacplusx.5f", 0x4000, 0x4000, CRC(57e9f865) SHA1(e40f5a34b597e32bbc230ae3ad5f32cdbadf2438) )
+
+ PACPLUS_PROMS
+ROM_END
+
+ROM_START( pacpopey )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacpopey.5f", 0x1000, 0x1000, CRC(af2b610b) SHA1(c787b1db588125f0770dc2bf4626ad22f0faee72) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacrab )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacrab.1", 0x0000, 0x1000, CRC(bb14430f) SHA1(80c632cc611e6cf774cc594a833916296bbbfccc) )
+ ROM_LOAD( "pacrab.2", 0x1000, 0x1000, CRC(f3f5a91b) SHA1(38d912661cf95c6234b0d3650c2b6be8df3003f0) )
+ ROM_LOAD( "pacrab.3", 0x2000, 0x1000, CRC(44caab2a) SHA1(10aaa38a720266739add8d2c54a4785ed133af0d) )
+ ROM_LOAD( "pacrab.4", 0x3000, 0x1000, CRC(25523534) SHA1(e0272e5a8717ef95fd2d593597af4e5011081eca) )
+ ROM_LOAD( "pacrab.5", 0x8000, 0x1000, CRC(af3985c4) SHA1(fb2e472b23cea56bf49ba2691a6cdeee4629a1b7) )
+ ROM_LOAD( "pacrab.6", 0x9000, 0x1000, CRC(3389fe5a) SHA1(394df6145614083c16cfe606adb0faca8c6a7a09) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacrab.5e", 0x0000, 0x1000, CRC(f33761a4) SHA1(401d752eacb60f2c26aae5cf6079e2bf54a8260a) )
+ ROM_LOAD( "pacrab.5f", 0x1000, 0x1000, CRC(60e1a3b7) SHA1(962b307f9fa3f3abde68507914fda78d5560f15b) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacshuf )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacm255.6h", 0x2000, 0x1000, CRC(d3640977) SHA1(2cc05c16c0cf6f516c69ab0b6e1a83bdd3010798) )
+ ROM_LOAD( "pacshuf.6j", 0x3000, 0x1000, CRC(55cc4d87) SHA1(1a05670c4fd09b4155941aa1ea90a5719a3e7ebb) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacsnoop )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacsnoop.6e", 0x0000, 0x1000, CRC(FA536307) SHA1(55742123DE6EF87E1DEEF31DC75744B98129AA9E) )
+ ROM_LOAD( "pacsnoop.6f", 0x1000, 0x1000, CRC(30EA615C) SHA1(AFB953167AA8060DC60173F3DE065C07FD933CC1) )
+ ROM_LOAD( "pacsnoop.6h", 0x2000, 0x1000, CRC(25DA6440) SHA1(93414E82442044324AC5475A45FB124DA70E5D6F) )
+ ROM_LOAD( "pacsnoop.6j", 0x3000, 0x1000, CRC(A9594951) SHA1(5C4FA744FDCC3B0EAD7900B079A13297D16A996F) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0C944964) SHA1(06EF227747A440831C9A3A613B76693D52A2F0A9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958FEDF9) SHA1(4A937AC02216EA8C96477D4A15522070507FB599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacspeed )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacm255.6h", 0x2000, 0x1000, CRC(d3640977) SHA1(2cc05c16c0cf6f516c69ab0b6e1a83bdd3010798) )
+ ROM_LOAD( "pacspeed.6j", 0x3000, 0x1000, CRC(0e7946d1) SHA1(cea3440a305ec05dab197dba7ac8428db0d5e2f7) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacweird )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman6.6h", 0x2000, 0x1000, CRC(aee79ea1) SHA1(4f3214b56056c3ac00c0535ce5d6a367ccda6e31) )
+ ROM_LOAD( "pacman6.6j", 0x3000, 0x1000, CRC(581ae70b) SHA1(a184c9d9b6ffbaba936867aef14e783234bf7af2) )
+ ROM_LOAD( "pacweird.map", 0x8000, 0x1000, CRC(92fac825) SHA1(05865bc5b84e0c100e358433c7d151c3918c5f19) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacweird.5e", 0x0000, 0x1000, CRC(11077f3e) SHA1(1f7a52a33abfc8650d5d6c685fd51039a467bf72) )
+ ROM_LOAD( "pacweird.5f", 0x1000, 0x1000, CRC(7c213ab4) SHA1(fd76db379a32d5102cd2a6afff0bfe9a4afbc3b5) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacwf ) // Weird Fruit
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacwf.6j", 0x3000, 0x1000, CRC(a13ce3ea) SHA1(6562ca3e337bd95edb2ebeb6b7fb7e219799e429) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacwf.5e", 0x0000, 0x1000, CRC(f524b277) SHA1(91242ead3d1852241d030975228533086bc3539e) )
+ ROM_LOAD( "pacwf.5f", 0x1000, 0x1000, CRC(66ec2c6c) SHA1(b22e2f3ba5a603cea938533dd05fced84d42f8d9) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pcrunchy )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacm255.6h", 0x2000, 0x1000, CRC(d3640977) SHA1(2cc05c16c0cf6f516c69ab0b6e1a83bdd3010798) )
+ ROM_LOAD( "pcrunchy.6j", 0x3000, 0x1000, CRC(c21c6c52) SHA1(c63212f51c6bf49e76b3ca7553a29e3371c4fa83) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pengman )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pengman.6j", 0x3000, 0x1000, CRC(37e7f3ba) SHA1(f9b476d9389fdd8171b443e177e05fae2052024b) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pengman.5e", 0x0000, 0x1000, CRC(02f5f5e6) SHA1(029328f78f34330e90ad4407172b318a45017cac) )
+ ROM_LOAD( "pengman.5f", 0x1000, 0x1000, CRC(5cd3db2e) SHA1(808655f543fa83762a68e13adcf4a7091d07173f) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pheartb )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "newpuc2.6e", 0x0000, 0x0800, CRC(69496a98) SHA1(2934051d6305cc3654951bc1aacf2b8902f463fe) )
+ ROM_LOAD( "newpuc2.6k", 0x0800, 0x0800, CRC(158fc01c) SHA1(2f7a1e24d259fdc716ef8e7354a87780595f3c4e) )
+ ROM_LOAD( "puckman.6f", 0x1000, 0x0800, CRC(7d177853) SHA1(9b5ddaaa8b564654f97af193dbcc29f81f230a25) )
+ ROM_LOAD( "newpuc2.6m", 0x1800, 0x0800, CRC(70810ccf) SHA1(3941678606aab1e53356a6781e24d84e83cc88ce) )
+ ROM_LOAD( "pheartb.6h", 0x2000, 0x0800, CRC(b42416d1) SHA1(3714efae24f35fe63dd89f0d7b82e4564c5405d3) )
+ ROM_LOAD( "newpuc2.6n", 0x2800, 0x0800, CRC(3f250c58) SHA1(53bf2270c26f10f7e97960cd4c96e09e16b9bdf3) )
+ ROM_LOAD( "pheartb.6j", 0x3000, 0x0800, CRC(01d13602) SHA1(dfec0784d005f82a6b2ee55923b510d2daeb9965) )
+ ROM_LOAD( "newpuc2.6p", 0x3800, 0x0800, CRC(1f81e765) SHA1(442d8a82e79ae842f1ffb46369c632c1d0b83161) )
+ ROM_FILL( 0x3fd5, 1, 0xc9 ) /* allow protection check to work - 0x36 or 0xc9 is ok */
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacheart.5e", 0x0000, 0x0800, CRC(c62bbabf) SHA1(f6f28ae33c2ab274105283b22b49ad243780a95e) )
+ ROM_LOAD( "newpuc2.5h", 0x0800, 0x0800, CRC(777c70d3) SHA1(ed5ccbeb1102ec9f837577de3aa51317c32520d6) )
+ ROM_LOAD( "newpuc2.5f", 0x1000, 0x0800, CRC(ca8c184c) SHA1(833aa845824ed80777b62f03df36a920ad7c3656) )
+ ROM_LOAD( "newpuc2.5j", 0x1800, 0x0800, CRC(7dc75a81) SHA1(d3fe1cad3b594052d8367685febb2335b0ad62f4) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pheartx )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacheart.6e", 0x0000, 0x0800, CRC(d844b679) SHA1(c4486198b3126bb8e05a308c53787e51065f77ae) )
+ ROM_LOAD( "pacheart.6k", 0x0800, 0x0800, CRC(b9152a38) SHA1(b6be2cb6bc7dd123503eb6bf1165dd1c99456813) )
+ ROM_LOAD( "puckman.6f", 0x1000, 0x0800, CRC(7d177853) SHA1(9b5ddaaa8b564654f97af193dbcc29f81f230a25) )
+ ROM_LOAD( "pacheart.6m", 0x1800, 0x0800, CRC(842d6574) SHA1(40e32d09cc8d701eb318716493a68cf3f95d3d6d) )
+ ROM_LOAD( "pacheart.6h", 0x2000, 0x0800, CRC(9045a44c) SHA1(a97d7016effbd2ace9a7d92ceb04a6ce18fb42f9) )
+ ROM_LOAD( "pacheart.6n", 0x2800, 0x0800, CRC(888f3c3e) SHA1(c2b5917bf13071131dd53ea76f0da86706db2d80) )
+ ROM_LOAD( "pacheart.6j", 0x3000, 0x0800, CRC(f5265c10) SHA1(9a320790d7a03fd6192a92d30b3e9c754bbc6a9d) )
+ ROM_LOAD( "pacheart.6p", 0x3800, 0x0800, CRC(1a21a381) SHA1(d5367a327d19fb57ba5e484bd4fda1b10953c040) )
+
+ ROM_REGION( 0x8000, "gfx1", 0 )
+ ROM_LOAD( "pheartx.5e", 0x0000, 0x4000, CRC(868825e6) SHA1(0cbe23ad47ef77f4ddfc0d476704a79701c621f1) )
+ ROM_LOAD( "pheartx.5f", 0x4000, 0x4000, CRC(b7d222ba) SHA1(83a6bceff705bc2f7d7766f417ba5a9aa2a9a28e) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pm1000 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pm1000.5e", 0x0000, 0x1000, CRC(16d9f7ce) SHA1(a9ac72aa5e3dcaaa2e4d03b6ae372e81d77817f8) )
+ ROM_LOAD( "pm1000.5f", 0x1000, 0x1000, CRC(fd06d923) SHA1(a9d61bdcb6841bf07ce8ad08e1be2cf5ef349129) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pm2000 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pm2000.5e", 0x0000, 0x1000, CRC(cba39624) SHA1(d815cb5be44b3d29cd1bdd4b8c68484e5330e4a4) )
+ ROM_LOAD( "pm2000.5f", 0x1000, 0x1000, CRC(a2b31528) SHA1(69f1c4b34e581c0e6d75b9726cbefa08f8a97fdb) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pm3000 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pm3000.5e", 0x0000, 0x1000, CRC(adb41be2) SHA1(7f2f4f3fc2d5f8d7bed9baddb1bb5787e4c5cd9e) )
+ ROM_LOAD( "pm3000.5f", 0x1000, 0x1000, CRC(1fac6af1) SHA1(d9e62fb387ec1d02a78cc3b4ba2626f9044a1021) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pm4000p )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacplus.6e", 0x0000, 0x1000, CRC(d611ef68) SHA1(8531c54ca6b0de0ea4ccc34e0e801ba9847e75bc) )
+ ROM_LOAD( "pacplus.6f", 0x1000, 0x1000, CRC(c7207556) SHA1(8ba97215bdb75f0e70eb8d3223847efe4dc4fb48) )
+ ROM_LOAD( "pacplus.6h", 0x2000, 0x1000, CRC(ae379430) SHA1(4e8613d51a80cf106f883db79685e1e22541da45) )
+ ROM_LOAD( "pacplus.6j", 0x3000, 0x1000, CRC(5a6dff7b) SHA1(b956ae5d66683aab74b90469ad36b5bb361d677e) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pm3000.5e", 0x0000, 0x1000, CRC(adb41be2) SHA1(7f2f4f3fc2d5f8d7bed9baddb1bb5787e4c5cd9e) )
+ ROM_LOAD( "pm4000p.5f", 0x1000, 0x1000, CRC(74f6f4d3) SHA1(c65b295881bc531e165996aa365ff23126eab9d1) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pm5000p )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacplus.6e", 0x0000, 0x1000, CRC(d611ef68) SHA1(8531c54ca6b0de0ea4ccc34e0e801ba9847e75bc) )
+ ROM_LOAD( "pacplus.6f", 0x1000, 0x1000, CRC(c7207556) SHA1(8ba97215bdb75f0e70eb8d3223847efe4dc4fb48) )
+ ROM_LOAD( "pacplus.6h", 0x2000, 0x1000, CRC(ae379430) SHA1(4e8613d51a80cf106f883db79685e1e22541da45) )
+ ROM_LOAD( "pacplus.6j", 0x3000, 0x1000, CRC(5a6dff7b) SHA1(b956ae5d66683aab74b90469ad36b5bb361d677e) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pm5000p.5e", 0x0000, 0x1000, CRC(5865ce98) SHA1(2ddaf119b1674a7c6af3e475ba2e43dcea09f1cd) )
+ ROM_LOAD( "pm5000p.5f", 0x1000, 0x1000, CRC(81cf02e1) SHA1(cd1b3f1ac0265ed25e00eb1a2bfb831d5c7d7e8b) )
+
+ PACPLUS_PROMS
+ROM_END
+
+ROM_START( pm6000 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacplus.6e", 0x0000, 0x1000, CRC(d611ef68) SHA1(8531c54ca6b0de0ea4ccc34e0e801ba9847e75bc) )
+ ROM_LOAD( "pacplus.6f", 0x1000, 0x1000, CRC(c7207556) SHA1(8ba97215bdb75f0e70eb8d3223847efe4dc4fb48) )
+ ROM_LOAD( "pacplus.6h", 0x2000, 0x1000, CRC(ae379430) SHA1(4e8613d51a80cf106f883db79685e1e22541da45) )
+ ROM_LOAD( "pacplus.6j", 0x3000, 0x1000, CRC(5a6dff7b) SHA1(b956ae5d66683aab74b90469ad36b5bb361d677e) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pm6000.5e", 0x0000, 0x1000, CRC(89945690) SHA1(2cee6236da8d20555e02cdebb2fb81c9e7d806ca) )
+ ROM_LOAD( "pm6000.5f", 0x1000, 0x1000, CRC(9268eb5a) SHA1(8db0365beeb89f5cb73de212b810938d5cad7971) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pm7000 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacplus.6e", 0x0000, 0x1000, CRC(d611ef68) SHA1(8531c54ca6b0de0ea4ccc34e0e801ba9847e75bc) )
+ ROM_LOAD( "pacplus.6f", 0x1000, 0x1000, CRC(c7207556) SHA1(8ba97215bdb75f0e70eb8d3223847efe4dc4fb48) )
+ ROM_LOAD( "pacplus.6h", 0x2000, 0x1000, CRC(ae379430) SHA1(4e8613d51a80cf106f883db79685e1e22541da45) )
+ ROM_LOAD( "pacplus.6j", 0x3000, 0x1000, CRC(5a6dff7b) SHA1(b956ae5d66683aab74b90469ad36b5bb361d677e) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pm7000.5e", 0x0000, 0x1000, CRC(c181ad5d) SHA1(74874eac512e445206303036e52d5e30e9ac57d0) )
+ ROM_LOAD( "pm7000.5f", 0x1000, 0x1000, CRC(bd31be36) SHA1(fa879e1b0bc28d21478337fc799360d15541d763) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pm7000p )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacplus.6e", 0x0000, 0x1000, CRC(d611ef68) SHA1(8531c54ca6b0de0ea4ccc34e0e801ba9847e75bc) )
+ ROM_LOAD( "pacplus.6f", 0x1000, 0x1000, CRC(c7207556) SHA1(8ba97215bdb75f0e70eb8d3223847efe4dc4fb48) )
+ ROM_LOAD( "pacplus.6h", 0x2000, 0x1000, CRC(ae379430) SHA1(4e8613d51a80cf106f883db79685e1e22541da45) )
+ ROM_LOAD( "pacplus.6j", 0x3000, 0x1000, CRC(5a6dff7b) SHA1(b956ae5d66683aab74b90469ad36b5bb361d677e) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pm7000.5e", 0x0000, 0x1000, CRC(c181ad5d) SHA1(74874eac512e445206303036e52d5e30e9ac57d0) )
+ ROM_LOAD( "pm7000p.5f", 0x1000, 0x1000, CRC(3d5861a5) SHA1(43f86248b2980d62bcd3f3ee71625c2c73e21a5a) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pmad )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pmad.6h", 0x2000, 0x1000, CRC(dd2eb43d) SHA1(e80ca01ce0e2f5204dcfc95abc0abd180dd7eb58) )
+ ROM_LOAD( "pmad.6j", 0x3000, 0x1000, CRC(ff3f4866) SHA1(1f55f6742ee08889ddc135cfdd3366c32c32510d) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pmad.5e", 0x0000, 0x1000, CRC(5b794d59) SHA1(413488774cda263a477fe808bcacf76e9f60b542) )
+ ROM_LOAD( "pmad.5f", 0x1000, 0x1000, CRC(59a9362c) SHA1(aa7dfa45cb529e7ca4493262090b149e8c523006) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pmad00 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pmad.6h", 0x2000, 0x1000, CRC(dd2eb43d) SHA1(e80ca01ce0e2f5204dcfc95abc0abd180dd7eb58) )
+ ROM_LOAD( "pmad00.6j", 0x3000, 0x1000, CRC(5f1aea94) SHA1(3122bd7e9e1c9123f6b1915b074491e9865d39a0) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pmad00.5e", 0x0000, 0x1000, CRC(315f7131) SHA1(8182e3e177111aabad0058897b80cee8a3fd93c7) )
+ ROM_LOAD( "pmad00.5f", 0x1000, 0x1000, CRC(157a6c0f) SHA1(93f66ad4595eb9fcc306398cb83abcacc60b1521) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pmad6m )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman6.6h", 0x2000, 0x1000, CRC(aee79ea1) SHA1(4f3214b56056c3ac00c0535ce5d6a367ccda6e31) )
+ ROM_LOAD( "pacman6.6j", 0x3000, 0x1000, CRC(581ae70b) SHA1(a184c9d9b6ffbaba936867aef14e783234bf7af2) )
+ ROM_LOAD( "pmad6m.map", 0x8000, 0x1000, CRC(d6a0d7f2) SHA1(7f3de6e13dd834a1495fb7faf2743fcc71b84747) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "hanglyad.5e", 0x0000, 0x1000, CRC(93fd3682) SHA1(792ddb541aeab304b5facfcf929c3bba18150346) )
+ ROM_LOAD( "pacjr1.5f", 0x1000, 0x1000, CRC(c2310808) SHA1(84c28a4fc327afcb441daee35acdab6f7613395e) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pmada )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pmad.6h", 0x2000, 0x1000, CRC(dd2eb43d) SHA1(e80ca01ce0e2f5204dcfc95abc0abd180dd7eb58) )
+ ROM_LOAD( "pmada.6j", 0x3000, 0x1000, CRC(24e43519) SHA1(83fe90767bd73b1f72a5a86da79122fd2d8bc282) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacjr1.5e", 0x0000, 0x1000, CRC(9f3c32d4) SHA1(e7e40207f2a70768ce38cbb1e62c02ca4bed3a14) )
+ ROM_LOAD( "pacjr1.5f", 0x1000, 0x1000, CRC(c2310808) SHA1(84c28a4fc327afcb441daee35acdab6f7613395e) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pmba2000 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pmba2000.6j", 0x3000, 0x1000, CRC(f7d647d8) SHA1(4edf34fc4a0da7367557392d55beac4a5eb5038a) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pmba2000.5e", 0x0000, 0x1000, CRC(ff6308bb) SHA1(93bc32cfb43d521e77179597141587a9866c5319) )
+ ROM_LOAD( "pmba2000.5f", 0x1000, 0x1000, CRC(c8b456b5) SHA1(a9e435300171779a6c0e145a50284045b3996d91) )
+
+ PACPLUS_PROMS
+ROM_END
+
+ROM_START( pmba3000 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pmba3000.6j", 0x3000, 0x1000, CRC(08f7a148) SHA1(288e04fb264e985fbb7ea2f57ab14edd72b97140) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pmba3000.5e", 0x0000, 0x1000, CRC(5ebb61c5) SHA1(cfd491170d1d3d0c0632d5d81629e98cfd100fb6) )
+ ROM_LOAD( "pmba3000.5f", 0x1000, 0x1000, CRC(d9a055aa) SHA1(00c6867b70062672da3b8c254feff4354e35aa7a) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pmba4000 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacplus.6e", 0x0000, 0x1000, CRC(d611ef68) SHA1(8531c54ca6b0de0ea4ccc34e0e801ba9847e75bc) )
+ ROM_LOAD( "pacplus.6f", 0x1000, 0x1000, CRC(c7207556) SHA1(8ba97215bdb75f0e70eb8d3223847efe4dc4fb48) )
+ ROM_LOAD( "pacplus.6h", 0x2000, 0x1000, CRC(ae379430) SHA1(4e8613d51a80cf106f883db79685e1e22541da45) )
+ ROM_LOAD( "pacplus.6j", 0x3000, 0x1000, CRC(5a6dff7b) SHA1(b956ae5d66683aab74b90469ad36b5bb361d677e) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pmba3000.5e", 0x0000, 0x1000, CRC(5ebb61c5) SHA1(cfd491170d1d3d0c0632d5d81629e98cfd100fb6) )
+ ROM_LOAD( "pmba3000.5f", 0x1000, 0x1000, CRC(d9a055aa) SHA1(00c6867b70062672da3b8c254feff4354e35aa7a) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pmba6000 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pmba6000.6j", 0x3000, 0x1000, CRC(bdb3d11a) SHA1(d9920ad3b6c76ab9095956b960165477ed1e11f8) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pmba6000.5e", 0x0000, 0x1000, CRC(7961ed4e) SHA1(595311b7a77d1379c9564d42a34581cc35a53875) )
+ ROM_LOAD( "pmba6000.5f", 0x1000, 0x1000, CRC(417080fd) SHA1(13e8e812bca25b64e7ce072d86189fd15b1882b0) )
+
+ PACPLUS_PROMS
+ROM_END
+
+ROM_START( pmba8000 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacplus.6e", 0x0000, 0x1000, CRC(d611ef68) SHA1(8531c54ca6b0de0ea4ccc34e0e801ba9847e75bc) )
+ ROM_LOAD( "pacplus.6f", 0x1000, 0x1000, CRC(c7207556) SHA1(8ba97215bdb75f0e70eb8d3223847efe4dc4fb48) )
+ ROM_LOAD( "pacplus.6h", 0x2000, 0x1000, CRC(ae379430) SHA1(4e8613d51a80cf106f883db79685e1e22541da45) )
+ ROM_LOAD( "pacplus.6j", 0x3000, 0x1000, CRC(5a6dff7b) SHA1(b956ae5d66683aab74b90469ad36b5bb361d677e) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pmba6000.5e", 0x0000, 0x1000, CRC(7961ed4e) SHA1(595311b7a77d1379c9564d42a34581cc35a53875) )
+ ROM_LOAD( "pmba6000.5f", 0x1000, 0x1000, CRC(417080fd) SHA1(13e8e812bca25b64e7ce072d86189fd15b1882b0) )
+
+ PACPLUS_PROMS
+ROM_END
+
+ROM_START( pmbamaz )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pmbamaz.6j", 0x3000, 0x1000, CRC(bf5e4b89) SHA1(ad16845b92e56a6fe33c7561a231dd54ad558481) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pmbamaz.5e", 0x0000, 0x1000, CRC(9a8cd8a1) SHA1(653d3c900b0be5e7ffe424207419bf86229b8c48) )
+ ROM_LOAD( "pmbamaz.5f", 0x1000, 0x1000, CRC(13aeaac4) SHA1(2abcc95559bc57a209d7216ddb6488032c4e34d6) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pmbaplus )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacplus.6e", 0x0000, 0x1000, CRC(d611ef68) SHA1(8531c54ca6b0de0ea4ccc34e0e801ba9847e75bc) )
+ ROM_LOAD( "pacplus.6f", 0x1000, 0x1000, CRC(c7207556) SHA1(8ba97215bdb75f0e70eb8d3223847efe4dc4fb48) )
+ ROM_LOAD( "pacplus.6h", 0x2000, 0x1000, CRC(ae379430) SHA1(4e8613d51a80cf106f883db79685e1e22541da45) )
+ ROM_LOAD( "pacplus.6j", 0x3000, 0x1000, CRC(5a6dff7b) SHA1(b956ae5d66683aab74b90469ad36b5bb361d677e) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pmbaplus.5e", 0x0000, 0x1000, CRC(3e5a31c2) SHA1(82716be9be3a7012a4283c6e9e6be01b655a6526) )
+ ROM_LOAD( "pmbaplus.5f", 0x1000, 0x1000, CRC(3c099bbd) SHA1(f589e34330d78de173dc42929b17e4763ed4f1a3) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pmbluep )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacplus.6e", 0x0000, 0x1000, CRC(d611ef68) SHA1(8531c54ca6b0de0ea4ccc34e0e801ba9847e75bc) )
+ ROM_LOAD( "pacplus.6f", 0x1000, 0x1000, CRC(c7207556) SHA1(8ba97215bdb75f0e70eb8d3223847efe4dc4fb48) )
+ ROM_LOAD( "pacplus.6h", 0x2000, 0x1000, CRC(ae379430) SHA1(4e8613d51a80cf106f883db79685e1e22541da45) )
+ ROM_LOAD( "pacplus.6j", 0x3000, 0x1000, CRC(5a6dff7b) SHA1(b956ae5d66683aab74b90469ad36b5bb361d677e) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pm1000.5e", 0x0000, 0x1000, CRC(16d9f7ce) SHA1(a9ac72aa5e3dcaaa2e4d03b6ae372e81d77817f8) )
+ ROM_LOAD( "pmbluep.5f", 0x1000, 0x1000, CRC(2da4dec7) SHA1(1a5c441dad8b3365ef728fe318c63d4e10de4731) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pmdeluxe )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacplus.6e", 0x0000, 0x1000, CRC(d611ef68) SHA1(8531c54ca6b0de0ea4ccc34e0e801ba9847e75bc) )
+ ROM_LOAD( "pacplus.6f", 0x1000, 0x1000, CRC(c7207556) SHA1(8ba97215bdb75f0e70eb8d3223847efe4dc4fb48) )
+ ROM_LOAD( "pacplus.6h", 0x2000, 0x1000, CRC(ae379430) SHA1(4e8613d51a80cf106f883db79685e1e22541da45) )
+ ROM_LOAD( "pacplus.6j", 0x3000, 0x1000, CRC(5a6dff7b) SHA1(b956ae5d66683aab74b90469ad36b5bb361d677e) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pm2000.5e", 0x0000, 0x1000, CRC(cba39624) SHA1(d815cb5be44b3d29cd1bdd4b8c68484e5330e4a4) )
+ ROM_LOAD( "pmdeluxe.5f", 0x1000, 0x1000, CRC(ab172fc9) SHA1(8845c73b37bb117d222eeb01788ba5738aba755a) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pmextra )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacplus.6e", 0x0000, 0x1000, CRC(d611ef68) SHA1(8531c54ca6b0de0ea4ccc34e0e801ba9847e75bc) )
+ ROM_LOAD( "pacplus.6f", 0x1000, 0x1000, CRC(c7207556) SHA1(8ba97215bdb75f0e70eb8d3223847efe4dc4fb48) )
+ ROM_LOAD( "pacplus.6h", 0x2000, 0x1000, CRC(ae379430) SHA1(4e8613d51a80cf106f883db79685e1e22541da45) )
+ ROM_LOAD( "pacplus.6j", 0x3000, 0x1000, CRC(5a6dff7b) SHA1(b956ae5d66683aab74b90469ad36b5bb361d677e) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pmextra.5e", 0x0000, 0x1000, CRC(3ee34b66) SHA1(2d7a7e9a59dd87be7bda4964471b0fa27e82a219) )
+ ROM_LOAD( "pmextra.5f", 0x1000, 0x1000, CRC(edf92a4c) SHA1(63140c7100315edc8fd8a234822f0831e6d1799d) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pmextrap )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacplus.6e", 0x0000, 0x1000, CRC(d611ef68) SHA1(8531c54ca6b0de0ea4ccc34e0e801ba9847e75bc) )
+ ROM_LOAD( "pacplus.6f", 0x1000, 0x1000, CRC(c7207556) SHA1(8ba97215bdb75f0e70eb8d3223847efe4dc4fb48) )
+ ROM_LOAD( "pacplus.6h", 0x2000, 0x1000, CRC(ae379430) SHA1(4e8613d51a80cf106f883db79685e1e22541da45) )
+ ROM_LOAD( "pacplus.6j", 0x3000, 0x1000, CRC(5a6dff7b) SHA1(b956ae5d66683aab74b90469ad36b5bb361d677e) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pmextra.5e", 0x0000, 0x1000, CRC(3ee34b66) SHA1(2d7a7e9a59dd87be7bda4964471b0fa27e82a219) )
+ ROM_LOAD( "pmextrap.5f", 0x1000, 0x1000, CRC(34ff1749) SHA1(55eb0199fdc04a3331bcf1e31baf686310af2cc7) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pmfever )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacplus.6e", 0x0000, 0x1000, CRC(d611ef68) SHA1(8531c54ca6b0de0ea4ccc34e0e801ba9847e75bc) )
+ ROM_LOAD( "pacplus.6f", 0x1000, 0x1000, CRC(c7207556) SHA1(8ba97215bdb75f0e70eb8d3223847efe4dc4fb48) )
+ ROM_LOAD( "pacplus.6h", 0x2000, 0x1000, CRC(ae379430) SHA1(4e8613d51a80cf106f883db79685e1e22541da45) )
+ ROM_LOAD( "pacplus.6j", 0x3000, 0x1000, CRC(5a6dff7b) SHA1(b956ae5d66683aab74b90469ad36b5bb361d677e) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pmfever.5e", 0x0000, 0x1000, CRC(f9b955e1) SHA1(d8565b6e0ccd37309fc7e1507603efb75eedb211) )
+ ROM_LOAD( "pmfever.5f", 0x1000, 0x1000, CRC(8ddf8eb6) SHA1(72842687a8d957de22832b56cf1939864748cd6f) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pmgrenp )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacplus.6e", 0x0000, 0x1000, CRC(d611ef68) SHA1(8531c54ca6b0de0ea4ccc34e0e801ba9847e75bc) )
+ ROM_LOAD( "pacplus.6f", 0x1000, 0x1000, CRC(c7207556) SHA1(8ba97215bdb75f0e70eb8d3223847efe4dc4fb48) )
+ ROM_LOAD( "pacplus.6h", 0x2000, 0x1000, CRC(ae379430) SHA1(4e8613d51a80cf106f883db79685e1e22541da45) )
+ ROM_LOAD( "pacplus.6j", 0x3000, 0x1000, CRC(5a6dff7b) SHA1(b956ae5d66683aab74b90469ad36b5bb361d677e) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pmgrenp.5e", 0x0000, 0x1000, CRC(5807a438) SHA1(8f4160627948747e92c3c5dc386068e4561fd9aa) )
+ ROM_LOAD( "pmgrenp.5f", 0x1000, 0x1000, CRC(1545b3c8) SHA1(a60fe521380af755b2f47bd526d523c7f9b9a923) )
+
+ PACPLUS_PROMS
+ROM_END
+
+/* Only the program roms were supplied with this dump. As it was listed as a bootleg of pacheart, I've added
+ the gfx roms and the proms from that game. */
+ROM_START( pmheart )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "newpuck1.6e", 0x0000, 0x0800, CRC(2c0fa0ab) SHA1(37680e4502771ae69d51d07ce43f65b9b2dd2a49) )
+ ROM_LOAD( "pmheart.6k", 0x0800, 0x0800, CRC(afeca2f1) SHA1(1e6d6c75eeb3a354ce2dc88da62caf9e7d53d0cb) )
+ ROM_LOAD( "pmheart.6f", 0x1000, 0x0800, CRC(6b53ada9) SHA1(a905688b389bfbc6792965d8f3d5bb1b9f0f4ec6) )
+ ROM_LOAD( "pmheart.6m", 0x1800, 0x0800, CRC(35f3ca84) SHA1(3da7336caa0742ea79f1e0e8f6b80f8560507a33) )
+ ROM_LOAD( "pacheart.6h", 0x2000, 0x0800, CRC(9045a44c) SHA1(a97d7016effbd2ace9a7d92ceb04a6ce18fb42f9) )
+ ROM_LOAD( "pmheart.6n", 0x2800, 0x0800, CRC(93f344c5) SHA1(987c7fa18a774a47c045fa1dc7dff37457cb8983) )
+ ROM_LOAD( "pmheart.6j", 0x3000, 0x0800, CRC(bed4a077) SHA1(39ac1d4d2acf4752ff7f9839f8f0d1974e023fab) )
+ ROM_LOAD( "pmheart.6p", 0x3800, 0x0800, CRC(800be41e) SHA1(6f40e741d95c2cfe1b217f1061da3497b4c2a153) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacheart.5e", 0x0000, 0x0800, CRC(c62bbabf) SHA1(f6f28ae33c2ab274105283b22b49ad243780a95e) )
+ ROM_LOAD( "puckman.5h", 0x0800, 0x0800, CRC(3591b89d) SHA1(79bb456be6c39c1ccd7d077fbe181523131fb300) )
+ ROM_LOAD( "newpuc2.5f", 0x1000, 0x0800, CRC(ca8c184c) SHA1(833aa845824ed80777b62f03df36a920ad7c3656) )
+ ROM_LOAD( "puckman.5j", 0x1800, 0x0800, CRC(1b1d9096) SHA1(53771c573051db43e7185b1d188533056290a620) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pplusad )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacplus.6e", 0x0000, 0x1000, CRC(d611ef68) SHA1(8531c54ca6b0de0ea4ccc34e0e801ba9847e75bc) )
+ ROM_LOAD( "pacplus.6f", 0x1000, 0x1000, CRC(c7207556) SHA1(8ba97215bdb75f0e70eb8d3223847efe4dc4fb48) )
+ ROM_LOAD( "pacplus.6h", 0x2000, 0x1000, CRC(ae379430) SHA1(4e8613d51a80cf106f883db79685e1e22541da45) )
+ ROM_LOAD( "pacplus.6j", 0x3000, 0x1000, CRC(5a6dff7b) SHA1(b956ae5d66683aab74b90469ad36b5bb361d677e) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pplusad.5e", 0x0000, 0x1000, CRC(ce684d85) SHA1(d7e40494631b3b1d73f9c07f15b6fa102286aa0d) )
+ ROM_LOAD( "pplusad.5f", 0x1000, 0x1000, CRC(0b86d002) SHA1(77c74d8ff6e4bf3de8e87ee872b1a9b6cf10fece) )
+
+ PACPLUS_PROMS
+ROM_END
+
+ROM_START( puck255 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "puckmanb.6e", 0x0000, 0x1000, CRC(fee263b3) SHA1(87117ba5082cd7a615b4ec7c02dd819003fbd669) )
+ ROM_LOAD( "puckmanb.6f", 0x1000, 0x1000, CRC(39d1fc83) SHA1(326dbbf94c6fa2e96613dedb53702f8832b47d59) )
+ ROM_LOAD( "pacn255.6h", 0x2000, 0x1000, CRC(6dac9e8f) SHA1(bbebc8d059755f329ce6c0e4d39c1cd999c60dfe) )
+ ROM_LOAD( "puckmanb.6j", 0x3000, 0x1000, CRC(7a36fe55) SHA1(01b4c38108d9dc4e48da4f8d685248e1e6821377) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( puckman )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "puckman.6e", 0x0000, 0x0800, CRC(f36e88ab) SHA1(813cecf44bf5464b1aed64b36f5047e4c79ba176) )
+ ROM_LOAD( "puckman.6k", 0x0800, 0x0800, CRC(618bd9b3) SHA1(b9ca52b63a49ddece768378d331deebbe34fe177) )
+ ROM_LOAD( "puckman.6f", 0x1000, 0x0800, CRC(7d177853) SHA1(9b5ddaaa8b564654f97af193dbcc29f81f230a25) )
+ ROM_LOAD( "puckman.6m", 0x1800, 0x0800, CRC(d3e8914c) SHA1(c2f00e1773c6864435f29c8b7f44f2ef85d227d3) )
+ ROM_LOAD( "puckman.6h", 0x2000, 0x0800, CRC(6bf4f625) SHA1(afe72fdfec66c145b53ed865f98734686b26e921) )
+ ROM_LOAD( "puckman.6n", 0x2800, 0x0800, CRC(a948ce83) SHA1(08759833f7e0690b2ccae573c929e2a48e5bde7f) )
+ ROM_LOAD( "puckman.6j", 0x3000, 0x0800, CRC(b6289b26) SHA1(d249fa9cdde774d5fee7258147cd25fa3f4dc2b3) )
+ ROM_LOAD( "puckman.6p", 0x3800, 0x0800, CRC(17a88c13) SHA1(eb462de79f49b7aa8adb0cc6d31535b10550c0ce) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "puckman.5e", 0x0000, 0x0800, CRC(2066a0b7) SHA1(6d4ccc27d6be185589e08aa9f18702b679e49a4a) )
+ ROM_LOAD( "puckman.5h", 0x0800, 0x0800, CRC(3591b89d) SHA1(79bb456be6c39c1ccd7d077fbe181523131fb300) )
+ ROM_LOAD( "puckman.5f", 0x1000, 0x0800, CRC(9e39323a) SHA1(be933e691df4dbe7d12123913c3b7b7b585b7a35) )
+ ROM_LOAD( "puckman.5j", 0x1800, 0x0800, CRC(1b1d9096) SHA1(53771c573051db43e7185b1d188533056290a620) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( puckmana )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "puckman.6j", 0x3000, 0x0800, CRC(b6289b26) SHA1(d249fa9cdde774d5fee7258147cd25fa3f4dc2b3) )
+ ROM_LOAD( "puckman.6p", 0x3800, 0x0800, CRC(17a88c13) SHA1(eb462de79f49b7aa8adb0cc6d31535b10550c0ce) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "puckman.5e", 0x0000, 0x0800, CRC(2066a0b7) SHA1(6d4ccc27d6be185589e08aa9f18702b679e49a4a) )
+ ROM_LOAD( "puckman.5h", 0x0800, 0x0800, CRC(3591b89d) SHA1(79bb456be6c39c1ccd7d077fbe181523131fb300) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( puckmanb )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "puckmanb.6e", 0x0000, 0x1000, CRC(fee263b3) SHA1(87117ba5082cd7a615b4ec7c02dd819003fbd669) )
+ ROM_LOAD( "puckmanb.6f", 0x1000, 0x1000, CRC(39d1fc83) SHA1(326dbbf94c6fa2e96613dedb53702f8832b47d59) )
+ ROM_LOAD( "puckmanb.6h", 0x2000, 0x1000, CRC(02083b03) SHA1(7e1945f6eb51f2e51806d0439f975f7a2889b9b8) )
+ ROM_LOAD( "puckmanb.6j", 0x3000, 0x1000, CRC(7a36fe55) SHA1(01b4c38108d9dc4e48da4f8d685248e1e6821377) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( puckmanf )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "puckmanb.6e", 0x0000, 0x1000, CRC(fee263b3) SHA1(87117ba5082cd7a615b4ec7c02dd819003fbd669) )
+ ROM_LOAD( "puckmanf.6f", 0x1000, 0x1000, CRC(51b38db9) SHA1(0a796f93462aec4758c2aa1c1f34cd05bb10a178) )
+ ROM_LOAD( "puckmanb.6h", 0x2000, 0x1000, CRC(02083b03) SHA1(7e1945f6eb51f2e51806d0439f975f7a2889b9b8) )
+ ROM_LOAD( "puckmanb.6j", 0x3000, 0x1000, CRC(7a36fe55) SHA1(01b4c38108d9dc4e48da4f8d685248e1e6821377) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( puckmano )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "puckmanb.6e", 0x0000, 0x1000, CRC(fee263b3) SHA1(87117ba5082cd7a615b4ec7c02dd819003fbd669) )
+ ROM_LOAD( "puckmanb.6f", 0x1000, 0x1000, CRC(39d1fc83) SHA1(326dbbf94c6fa2e96613dedb53702f8832b47d59) )
+ ROM_LOAD( "puckmanb.6h", 0x2000, 0x1000, CRC(02083b03) SHA1(7e1945f6eb51f2e51806d0439f975f7a2889b9b8) )
+ ROM_LOAD( "puckmanb.6j", 0x3000, 0x1000, CRC(7a36fe55) SHA1(01b4c38108d9dc4e48da4f8d685248e1e6821377) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "puckmano.5e", 0x0000, 0x1000, CRC(1f44f160) SHA1(d5ec84bf164eb549b80f8a6c25ec9246fc89d525) )
+ ROM_LOAD( "puckmano.5f", 0x1000, 0x1000, CRC(c78395ca) SHA1(100507f230c348489b30386f8ff8130b956d2646) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( puckmanx )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "puckmanb.6e", 0x0000, 0x1000, CRC(fee263b3) SHA1(87117ba5082cd7a615b4ec7c02dd819003fbd669) )
+ ROM_LOAD( "puckmanb.6f", 0x1000, 0x1000, CRC(39d1fc83) SHA1(326dbbf94c6fa2e96613dedb53702f8832b47d59) )
+ ROM_LOAD( "puckmanb.6h", 0x2000, 0x1000, CRC(02083b03) SHA1(7e1945f6eb51f2e51806d0439f975f7a2889b9b8) )
+ ROM_LOAD( "puckmanb.6j", 0x3000, 0x1000, CRC(7a36fe55) SHA1(01b4c38108d9dc4e48da4f8d685248e1e6821377) )
+
+ ROM_REGION( 0x8000, "gfx1", 0 )
+ ROM_LOAD( "pacmanx.5e", 0x0000, 0x4000, CRC(a45138ce) SHA1(f18344980b4a58d0abf0cc2b7853184af3d5bfa0) )
+ ROM_LOAD( "pacmanx.5f", 0x4000, 0x4000, CRC(92e1b10e) SHA1(bb04988502fa181365c08096b5fd47fa9541c291) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( puckmnax )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "puckman.6j", 0x3000, 0x0800, CRC(b6289b26) SHA1(d249fa9cdde774d5fee7258147cd25fa3f4dc2b3) )
+ ROM_LOAD( "puckman.6p", 0x3800, 0x0800, CRC(17a88c13) SHA1(eb462de79f49b7aa8adb0cc6d31535b10550c0ce) )
+
+ ROM_REGION( 0x8000, "gfx1", 0 )
+ ROM_LOAD( "puckmnax.5e", 0x0000, 0x4000, CRC(c8d9349e) SHA1(8ca4045fe888b78306017a5e17b180d13b37e436) )
+ ROM_LOAD( "pacmanx.5f", 0x4000, 0x4000, CRC(92e1b10e) SHA1(bb04988502fa181365c08096b5fd47fa9541c291) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( puckmnfx )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "puckmanb.6e", 0x0000, 0x1000, CRC(fee263b3) SHA1(87117ba5082cd7a615b4ec7c02dd819003fbd669) )
+ ROM_LOAD( "puckmanf.6f", 0x1000, 0x1000, CRC(51b38db9) SHA1(0a796f93462aec4758c2aa1c1f34cd05bb10a178) )
+ ROM_LOAD( "puckmanb.6h", 0x2000, 0x1000, CRC(02083b03) SHA1(7e1945f6eb51f2e51806d0439f975f7a2889b9b8) )
+ ROM_LOAD( "puckmanb.6j", 0x3000, 0x1000, CRC(7a36fe55) SHA1(01b4c38108d9dc4e48da4f8d685248e1e6821377) )
+
+ ROM_REGION( 0x8000, "gfx1", 0 )
+ ROM_LOAD( "pacmanx.5e", 0x0000, 0x4000, CRC(a45138ce) SHA1(f18344980b4a58d0abf0cc2b7853184af3d5bfa0) )
+ ROM_LOAD( "pacmanx.5f", 0x4000, 0x4000, CRC(92e1b10e) SHA1(bb04988502fa181365c08096b5fd47fa9541c291) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( puckmnhx )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "hangly.6e", 0x0000, 0x1000, CRC(5fe8610a) SHA1(d63eaebd85e10aa6c27bb7f47642dd403eeb6934) )
+ ROM_LOAD( "puckmanh.6f", 0x1000, 0x1000, CRC(61d38c6c) SHA1(1406aacdc9c8a3776e5853d214380ad3124408f4) )
+ ROM_LOAD( "hangly.6h", 0x2000, 0x1000, CRC(4e7ef99f) SHA1(bd42e68b29b4d654dc817782ba00db69b7d2dfe2) )
+ ROM_LOAD( "puckmanh.6j", 0x3000, 0x1000, CRC(8939ddd2) SHA1(cf769bb34f711cfd0ee75328cd5dc07442f88607) )
+
+ ROM_REGION( 0x8000, "gfx1", 0 )
+ ROM_LOAD( "pacmodx.5e", 0x0000, 0x4000, CRC(a05bc552) SHA1(5c2350aeac14cafebfcb7ff012427b1d3c6adf62) )
+ ROM_LOAD( "pacmanx.5f", 0x4000, 0x4000, CRC(92e1b10e) SHA1(bb04988502fa181365c08096b5fd47fa9541c291) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( puckmod )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "puckmanb.6e", 0x0000, 0x1000, CRC(fee263b3) SHA1(87117ba5082cd7a615b4ec7c02dd819003fbd669) )
+ ROM_LOAD( "puckmanb.6f", 0x1000, 0x1000, CRC(39d1fc83) SHA1(326dbbf94c6fa2e96613dedb53702f8832b47d59) )
+ ROM_LOAD( "puckmanb.6h", 0x2000, 0x1000, CRC(02083b03) SHA1(7e1945f6eb51f2e51806d0439f975f7a2889b9b8) )
+ ROM_LOAD( "puckmod.6j", 0x3000, 0x1000, CRC(7d98d5f5) SHA1(39939bcd6fb785d0d06fd29f0287158ab1267dfc) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( puckmodx )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "puckmanb.6e", 0x0000, 0x1000, CRC(fee263b3) SHA1(87117ba5082cd7a615b4ec7c02dd819003fbd669) )
+ ROM_LOAD( "puckmanb.6f", 0x1000, 0x1000, CRC(39d1fc83) SHA1(326dbbf94c6fa2e96613dedb53702f8832b47d59) )
+ ROM_LOAD( "puckmanb.6h", 0x2000, 0x1000, CRC(02083b03) SHA1(7e1945f6eb51f2e51806d0439f975f7a2889b9b8) )
+ ROM_LOAD( "puckmod.6j", 0x3000, 0x1000, CRC(7d98d5f5) SHA1(39939bcd6fb785d0d06fd29f0287158ab1267dfc) )
+
+ ROM_REGION( 0x8000, "gfx1", 0 )
+ ROM_LOAD( "pacmanx.5e", 0x0000, 0x4000, CRC(a45138ce) SHA1(f18344980b4a58d0abf0cc2b7853184af3d5bfa0) )
+ ROM_LOAD( "pacmanx.5f", 0x4000, 0x4000, CRC(92e1b10e) SHA1(bb04988502fa181365c08096b5fd47fa9541c291) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( puckmot1 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "puckmanb.6e", 0x0000, 0x1000, CRC(fee263b3) SHA1(87117ba5082cd7a615b4ec7c02dd819003fbd669) )
+ ROM_LOAD( "puckmanb.6f", 0x1000, 0x1000, CRC(39d1fc83) SHA1(326dbbf94c6fa2e96613dedb53702f8832b47d59) )
+ ROM_LOAD( "puckmanb.6h", 0x2000, 0x1000, CRC(02083b03) SHA1(7e1945f6eb51f2e51806d0439f975f7a2889b9b8) )
+ ROM_LOAD( "puckmanb.6j", 0x3000, 0x1000, CRC(7a36fe55) SHA1(01b4c38108d9dc4e48da4f8d685248e1e6821377) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "puckmot1.5e", 0x0000, 0x1000, CRC(79ad3ca1) SHA1(a84330e1a7ef1b8c201e35fe66f4480065e0804a) )
+ ROM_LOAD( "puckmot1.5f", 0x1000, 0x1000, CRC(bd898502) SHA1(3bf87f82cc2fcaab17dec15f4ad7e780df66b48f) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( puckmoti )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "puckmanb.6e", 0x0000, 0x1000, CRC(fee263b3) SHA1(87117ba5082cd7a615b4ec7c02dd819003fbd669) )
+ ROM_LOAD( "puckmanb.6f", 0x1000, 0x1000, CRC(39d1fc83) SHA1(326dbbf94c6fa2e96613dedb53702f8832b47d59) )
+ ROM_LOAD( "puckmanb.6h", 0x2000, 0x1000, CRC(02083b03) SHA1(7e1945f6eb51f2e51806d0439f975f7a2889b9b8) )
+ ROM_LOAD( "puckmanb.6j", 0x3000, 0x1000, CRC(7a36fe55) SHA1(01b4c38108d9dc4e48da4f8d685248e1e6821377) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "puckmoti.5e", 0x0000, 0x1000, CRC(e2a1f6b6) SHA1(798daee244fc4275f7ed0bd3a99b527531960807) )
+ ROM_LOAD( "puckmoti.5f", 0x1000, 0x1000, CRC(31d24bb5) SHA1(ff26f2199e28f9bbbeca09acf3850b9e76c597da) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( puckren )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "puckren.6e", 0x0000, 0x1000, CRC(0f5ecf67) SHA1(1250eb19c721b007705c75cce9140365aeed3fad) )
+ ROM_LOAD( "puckren.6f", 0x1000, 0x1000, CRC(70ea1149) SHA1(4c1f25e7e6fb7645b7a23419cd1c5b3e2cf90823) )
+ ROM_LOAD( "puckren.6h", 0x2000, 0x1000, CRC(c6bb6ea6) SHA1(a33e23193c14d2418614ad7609fb3bc0856a4a1f) )
+ ROM_LOAD( "puckren.6j", 0x3000, 0x1000, CRC(dc90f1dc) SHA1(af677ed5989abaebcbde5da9168e849135d5e96f) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "puckren.5e", 0x0000, 0x1000, CRC(a502e25f) SHA1(9f02d3f1ec095910642fe0bb616d510be52b53d8) )
+ ROM_LOAD( "puckren.5f", 0x1000, 0x1000, CRC(18d44098) SHA1(d07120b9ede3cfcbc69006381f4287bede04c6e3) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD( "puckren.7f", 0x0000, 0x0020, CRC(7b6aa3c9) SHA1(849911abdc26ccf2ad44e2c432e6219447b8bef3) )
+ ROM_LOAD( "puckren.4a", 0x0020, 0x0100, CRC(64fe1dbf) SHA1(7f7541eb12148add79ad186a1da375c865d251e0) )
+
+ PACMAN_SOUND_PROMS
+ROM_END
+
+ROM_START( puckrenc )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "puckren.6e", 0x0000, 0x1000, CRC(0f5ecf67) SHA1(1250eb19c721b007705c75cce9140365aeed3fad) )
+ ROM_LOAD( "puckrenc.6f", 0x1000, 0x1000, CRC(8a75a7e2) SHA1(79f787c8c55ce04c97baf465b64d89d2bdbf07c5) )
+ ROM_LOAD( "puckren.6h", 0x2000, 0x1000, CRC(c6bb6ea6) SHA1(a33e23193c14d2418614ad7609fb3bc0856a4a1f) )
+ ROM_LOAD( "puckren.6j", 0x3000, 0x1000, CRC(dc90f1dc) SHA1(af677ed5989abaebcbde5da9168e849135d5e96f) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "puckren.5e", 0x0000, 0x1000, CRC(a502e25f) SHA1(9f02d3f1ec095910642fe0bb616d510be52b53d8) )
+ ROM_LOAD( "puckren.5f", 0x1000, 0x1000, CRC(18d44098) SHA1(d07120b9ede3cfcbc69006381f4287bede04c6e3) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD( "puckren.7f", 0x0000, 0x0020, CRC(7b6aa3c9) SHA1(849911abdc26ccf2ad44e2c432e6219447b8bef3) )
+ ROM_LOAD( "puckren.4a", 0x0020, 0x0100, CRC(64fe1dbf) SHA1(7f7541eb12148add79ad186a1da375c865d251e0) )
+
+ PACMAN_SOUND_PROMS
+ROM_END
+
+ROM_START( punleash )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "punleash.1", 0x0000, 0x1000, CRC(eddb20e7) SHA1(07f6cabac3c59c2e3f522da877e845b3ceb2cffb) )
+ ROM_LOAD( "punleash.2", 0x1000, 0x1000, CRC(57fe8b4d) SHA1(629800fe793b53c27ee8c84a2e49caf7fe056f28) )
+ ROM_LOAD( "punleash.3", 0x2000, 0x1000, CRC(94c63bb1) SHA1(872dbca70b45285dccfd0e24cb50225a5c3ac005) )
+ ROM_LOAD( "punleash.4", 0x3000, 0x1000, CRC(fe7734d5) SHA1(f246baab82ea8e9b3cfd3dc5911445ab08223c1f) )
+ ROM_LOAD( "punleash.5", 0x8000, 0x1000, CRC(ef155ffb) SHA1(c5bcd57c2a336fa8a018b192b8542954271f1bac) )
+ ROM_LOAD( "punleash.6", 0x9000, 0x1000, CRC(70d15899) SHA1(9a7cff5811b591211eb23cee125fd77263f8d4fe) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "punleash.5e", 0x0000, 0x1000, CRC(713a4ba4) SHA1(f6eaadf92dae3a687fb317f2806b4d7a88f7c385) )
+ ROM_LOAD( "punleash.5f", 0x1000, 0x1000, CRC(98d3d364) SHA1(f8023d1772d377d090a9bfebf194bbbce8643f1d) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD( "punleash.7f", 0x0000, 0x0020, CRC(357c2523) SHA1(f0c4cea06b17932cc15f6db2971406eaba3558b2) )
+ ROM_LOAD( "punleash.4a", 0x0020, 0x0100, CRC(5ff3b85a) SHA1(6b01b9c9302ab41fe83c140c3ff217d1d66773dd) )
+
+ PACMAN_SOUND_PROMS
+ROM_END
+
+ROM_START( roboman )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "roboman.6j", 0x3000, 0x1000, CRC(a909673e) SHA1(991d0c50087f5d47f85f6c16c667dea3b3973f4f) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "roboman.5e", 0x0000, 0x1000, CRC(e386213e) SHA1(fbbc1d85cc61dc3a13cc5e26182d51b2bbdfcb63) )
+ ROM_LOAD( "roboman.5f", 0x1000, 0x1000, CRC(d8db5788) SHA1(11698932aca1150ef00801fdcb35a5ee2cb3d3b8) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( snakeyes )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman6.6h", 0x2000, 0x1000, CRC(aee79ea1) SHA1(4f3214b56056c3ac00c0535ce5d6a367ccda6e31) )
+ ROM_LOAD( "pacman6.6j", 0x3000, 0x1000, CRC(581ae70b) SHA1(a184c9d9b6ffbaba936867aef14e783234bf7af2) )
+ ROM_LOAD( "snakeyes.map", 0x8000, 0x1000, CRC(7e506e78) SHA1(a198158a69d79d1c46149c9f8878ba220a6bf82e) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacmulti.5e", 0x0000, 0x1000, CRC(46cdda4a) SHA1(2c38050a4f5d0c9e1b4f3e054dcac25cde63ae2a) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( snowpac )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "snowpac.6j", 0x3000, 0x1000, CRC(4f9e1d02) SHA1(90f7ed914e1291248f6b3ba0630a7d67d4f07374) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "snowpac.5e", 0x0000, 0x1000, CRC(2cc60a94) SHA1(05b8725cc71273e2ee61303bc00057dc60f88bb6) )
+ ROM_LOAD( "snowpac.5f", 0x1000, 0x1000, CRC(41ba87bd) SHA1(3a1473bd3753fc3a3ab6ee5285e4832b0f92d173) )
+
+ PACMAN_PROMS
+ROM_END
+
+/* This is a bootleg of Hangly set 3. The proms were missing and the gfx didn't match up (has hearts and said
+ 8000 points for eating the last monster when you only get 1600). Therefore, using the hangly3 gfx roms.
+ Despite the name "Super Pacman", it is just another puckman clone. The first monster is named "Mario". */
+ROM_START( spuckman )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "hangly3.6e", 0x0000, 0x0800, CRC(9d027c4a) SHA1(88e094880057451a75cdc2ce9477403021813982) )
+ ROM_LOAD( "hangly3.6k", 0x0800, 0x0800, CRC(194c7189) SHA1(fd423bac2810015313841c7b935054565390fbd0) )
+ ROM_LOAD( "hangly2.6f", 0x1000, 0x0800, CRC(5ba228bb) SHA1(b0e902cdf98bee72d6ec8069eec96adce3245074) )
+ ROM_LOAD( "hangly2.6m", 0x1800, 0x0800, CRC(baf5461e) SHA1(754586a6449fd54a342f260e572c1cd60ab70815) )
+ ROM_LOAD( "pheartb.6h", 0x2000, 0x0800, CRC(b42416d1) SHA1(3714efae24f35fe63dd89f0d7b82e4564c5405d3) )
+ ROM_LOAD( "hangly3.6n", 0x2800, 0x0800, CRC(ab74b51f) SHA1(1bce8933ed7807eb7aca9670df8994f8d1a8b5b7) )
+ ROM_LOAD( "spuckman.6j", 0x3000, 0x0800, CRC(bc33aa79) SHA1(b974755edebb19455efccd56412995e3fa9fbd8e) )
+ ROM_LOAD( "spuckman.6p", 0x3800, 0x0800, CRC(e95eafca) SHA1(0a0080340a2beb6408fe79a19e7fa97f35de9619) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ /* gfx from hangly3 */
+ ROM_LOAD( "hangly3.5e", 0x0000, 0x0800, CRC(5f4be3cc) SHA1(eeb0e1e44549b99eab481d9ac016b4359e19fe30) )
+ ROM_LOAD( "puckman.5h", 0x0800, 0x0800, CRC(3591b89d) SHA1(79bb456be6c39c1ccd7d077fbe181523131fb300) )
+ ROM_LOAD( "puckman.5f", 0x1000, 0x0800, CRC(9e39323a) SHA1(be933e691df4dbe7d12123913c3b7b7b585b7a35) )
+ ROM_LOAD( "puckman.5j", 0x1800, 0x0800, CRC(1b1d9096) SHA1(53771c573051db43e7185b1d188533056290a620) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( sumeltob )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "sumeltob.6j", 0x3000, 0x1000, CRC(03d59d0e) SHA1(354cfe283b34f40b913589df9bc415fff08bb796) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "sumelton.5e", 0x0000, 0x1000, CRC(10894f38) SHA1(83fac1d9e6d54697a93a0eadb4a66a813e4bd32a) )
+ ROM_LOAD( "sumelton.5f", 0x1000, 0x1000, CRC(debef8a9) SHA1(503005bd563099094ad8815f8651cbdcd616571f) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( sumelton )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "sumelton.6j", 0x3000, 0x1000, CRC(c1fe2c7d) SHA1(8eabe4c30dfd1db9b38f8557f136894ee3865f15) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "sumelton.5e", 0x0000, 0x1000, CRC(10894f38) SHA1(83fac1d9e6d54697a93a0eadb4a66a813e4bd32a) )
+ ROM_LOAD( "sumelton.5f", 0x1000, 0x1000, CRC(debef8a9) SHA1(503005bd563099094ad8815f8651cbdcd616571f) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( tbone )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman6.6h", 0x2000, 0x1000, CRC(aee79ea1) SHA1(4f3214b56056c3ac00c0535ce5d6a367ccda6e31) )
+ ROM_LOAD( "pacman6.6j", 0x3000, 0x1000, CRC(581ae70b) SHA1(a184c9d9b6ffbaba936867aef14e783234bf7af2) )
+ ROM_LOAD( "tbone.map", 0x8000, 0x1000, CRC(e7377f2d) SHA1(3cffb221655b1c7240a97ec82132a4a1a76d383e) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "tbone.5e", 0x0000, 0x1000, CRC(afd44c48) SHA1(36750fbaeb8db4143fdd90aec83189fc552b110e) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( ultra2 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "ultra2.6j", 0x3000, 0x1000, CRC(83da903e) SHA1(541cda1dad90cfbf5c9aa5dd3091337527236bc0) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( ultrapac )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman6.6h", 0x2000, 0x1000, CRC(aee79ea1) SHA1(4f3214b56056c3ac00c0535ce5d6a367ccda6e31) )
+ ROM_LOAD( "ultrapac.6j", 0x3000, 0x1000, CRC(84c6c23b) SHA1(f207ce54d7ee31d61397f1587292ea6add56cb04) )
+ ROM_LOAD( "ultrapac.map", 0x8000, 0x1000, CRC(be212894) SHA1(eaf4d33d1e2ebd14d2c9dd3445666c1319ba7807) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "ultrapac.5e", 0x0000, 0x1000, CRC(d46efbcf) SHA1(1d90cca40f5b0518cf39408e87d9faf42071e6f9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( vcrunchy )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacm255.6h", 0x2000, 0x1000, CRC(d3640977) SHA1(2cc05c16c0cf6f516c69ab0b6e1a83bdd3010798) )
+ ROM_LOAD( "pcrunchy.6j", 0x3000, 0x1000, CRC(c21c6c52) SHA1(c63212f51c6bf49e76b3ca7553a29e3371c4fa83) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "vecpac.5e", 0x0000, 0x1000, CRC(936d0475) SHA1(8db1fc56ed236deda01cb6a5169fb7d4cda53e7a) )
+ ROM_LOAD( "vecpac.5f", 0x1000, 0x1000, CRC(022d0686) SHA1(ea64d134ececc6eb3fc373821318188489b0e7cc) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( vecbaby )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacbaby.6j", 0x3000, 0x1000, CRC(4e4ac798) SHA1(deab2d93a678abee576c891bdfb7ab93d5718792) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "vecpac.5e", 0x0000, 0x1000, CRC(936d0475) SHA1(8db1fc56ed236deda01cb6a5169fb7d4cda53e7a) )
+ ROM_LOAD( "vecpac.5f", 0x1000, 0x1000, CRC(022d0686) SHA1(ea64d134ececc6eb3fc373821318188489b0e7cc) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( vecbaby2 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacbaby2.6j", 0x3000, 0x1000, CRC(742453ba) SHA1(21707992ea3489c8bc95b14db33f62b6aaa24eb4) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "vecpac.5e", 0x0000, 0x1000, CRC(936d0475) SHA1(8db1fc56ed236deda01cb6a5169fb7d4cda53e7a) )
+ ROM_LOAD( "vecpac.5f", 0x1000, 0x1000, CRC(022d0686) SHA1(ea64d134ececc6eb3fc373821318188489b0e7cc) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( vecbaby3 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacbaby3.6j", 0x3000, 0x1000, CRC(b82f2b73) SHA1(63619220b9ed4dfeb4f462b41d9685870716590a) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "vecpac.5e", 0x0000, 0x1000, CRC(936d0475) SHA1(8db1fc56ed236deda01cb6a5169fb7d4cda53e7a) )
+ ROM_LOAD( "vecpac.5f", 0x1000, 0x1000, CRC(022d0686) SHA1(ea64d134ececc6eb3fc373821318188489b0e7cc) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( vecpac )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "vecpac.5e", 0x0000, 0x1000, CRC(936d0475) SHA1(8db1fc56ed236deda01cb6a5169fb7d4cda53e7a) )
+ ROM_LOAD( "vecpac.5f", 0x1000, 0x1000, CRC(022d0686) SHA1(ea64d134ececc6eb3fc373821318188489b0e7cc) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( vectplus )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacplus.6e", 0x0000, 0x1000, CRC(d611ef68) SHA1(8531c54ca6b0de0ea4ccc34e0e801ba9847e75bc) )
+ ROM_LOAD( "pacplus.6f", 0x1000, 0x1000, CRC(c7207556) SHA1(8ba97215bdb75f0e70eb8d3223847efe4dc4fb48) )
+ ROM_LOAD( "pacplus.6h", 0x2000, 0x1000, CRC(ae379430) SHA1(4e8613d51a80cf106f883db79685e1e22541da45) )
+ ROM_LOAD( "pacplus.6j", 0x3000, 0x1000, CRC(5a6dff7b) SHA1(b956ae5d66683aab74b90469ad36b5bb361d677e) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "vectplus.5e", 0x0000, 0x1000, CRC(330abcc6) SHA1(421eb2efe402572189621e2fac49df80bd891f2c) )
+ ROM_LOAD( "vectplus.5f", 0x1000, 0x1000, CRC(61da12cf) SHA1(03bc75e3344b863e460fe74aa3b9be36e17d1149) )
+
+ PACPLUS_PROMS
+ROM_END
+
+ROM_START( vectr6m )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman6.6h", 0x2000, 0x1000, CRC(aee79ea1) SHA1(4f3214b56056c3ac00c0535ce5d6a367ccda6e31) )
+ ROM_LOAD( "pacman6.6j", 0x3000, 0x1000, CRC(581ae70b) SHA1(a184c9d9b6ffbaba936867aef14e783234bf7af2) )
+ ROM_LOAD( "pacman6.map", 0x8000, 0x1000, CRC(de753fd9) SHA1(467cd6dd572a3e6f0b2e0120d520df919433655a) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "vectr6m.5e", 0x0000, 0x1000, CRC(f7be09ba) SHA1(1ac6f67637831a39979866b684898228fb7a9761) )
+ ROM_LOAD( "vecpac.5f", 0x1000, 0x1000, CRC(022d0686) SHA1(ea64d134ececc6eb3fc373821318188489b0e7cc) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( vectr6tb )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman6.6h", 0x2000, 0x1000, CRC(aee79ea1) SHA1(4f3214b56056c3ac00c0535ce5d6a367ccda6e31) )
+ ROM_LOAD( "pacman6.6j", 0x3000, 0x1000, CRC(581ae70b) SHA1(a184c9d9b6ffbaba936867aef14e783234bf7af2) )
+ ROM_LOAD( "vectr6tb.map", 0x8000, 0x1000, CRC(bdbbb207) SHA1(2beceac64d53f197b533375da255a4158e76d970) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "vectr6m.5e", 0x0000, 0x1000, CRC(f7be09ba) SHA1(1ac6f67637831a39979866b684898228fb7a9761) )
+ ROM_LOAD( "vecpac.5f", 0x1000, 0x1000, CRC(022d0686) SHA1(ea64d134ececc6eb3fc373821318188489b0e7cc) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( vectxens )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "xensrev.6j", 0x3000, 0x1000, CRC(64a10b6c) SHA1(689be23289fb32f2bfa1392edaba9c6bfa5a82e7) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "vecpac.5e", 0x0000, 0x1000, CRC(936d0475) SHA1(8db1fc56ed236deda01cb6a5169fb7d4cda53e7a) )
+ ROM_LOAD( "vecpac.5f", 0x1000, 0x1000, CRC(022d0686) SHA1(ea64d134ececc6eb3fc373821318188489b0e7cc) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( vhangly )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "hangly.6e", 0x0000, 0x1000, CRC(5fe8610a) SHA1(d63eaebd85e10aa6c27bb7f47642dd403eeb6934) )
+ ROM_LOAD( "hangly.6f", 0x1000, 0x1000, CRC(73726586) SHA1(cedddc5194589039dd8b64f07ab6320d7d4f55f9) )
+ ROM_LOAD( "hangly.6h", 0x2000, 0x1000, CRC(4e7ef99f) SHA1(bd42e68b29b4d654dc817782ba00db69b7d2dfe2) )
+ ROM_LOAD( "hangly.6j", 0x3000, 0x1000, CRC(7f4147e6) SHA1(0a7ac0e59d4d26fe52a2f4196c9f19e5ab677c87) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "vecpac.5e", 0x0000, 0x1000, CRC(936d0475) SHA1(8db1fc56ed236deda01cb6a5169fb7d4cda53e7a) )
+ ROM_LOAD( "vecpac.5f", 0x1000, 0x1000, CRC(022d0686) SHA1(ea64d134ececc6eb3fc373821318188489b0e7cc) )
+
+ PACMAN_PROMS
+ROM_END
+
+/* This set came from Gatinho in October 2008. */
+ROM_START( vhangly3 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "hangly3.6e", 0x0000, 0x0800, CRC(9d027c4a) SHA1(88e094880057451a75cdc2ce9477403021813982) )
+ ROM_LOAD( "hangly3.6k", 0x0800, 0x0800, CRC(194c7189) SHA1(fd423bac2810015313841c7b935054565390fbd0) )
+ ROM_LOAD( "hangly2.6f", 0x1000, 0x0800, CRC(5ba228bb) SHA1(b0e902cdf98bee72d6ec8069eec96adce3245074) )
+ ROM_LOAD( "hangly2.6m", 0x1800, 0x0800, CRC(baf5461e) SHA1(754586a6449fd54a342f260e572c1cd60ab70815) )
+ ROM_LOAD( "hangly3.6h", 0x2000, 0x0800, CRC(08419c4a) SHA1(7e5001adad401080c788737c1d2349f218750442) )
+ ROM_LOAD( "hangly3.6n", 0x2800, 0x0800, CRC(ab74b51f) SHA1(1bce8933ed7807eb7aca9670df8994f8d1a8b5b7) )
+ ROM_LOAD( "hangly3.6j", 0x3000, 0x0800, CRC(5039b082) SHA1(086a6ac4742734167d283b1121fce29d8ac4a6cd) )
+ ROM_LOAD( "hangly3.6p", 0x3800, 0x0800, CRC(931770d7) SHA1(78fcf88e07ec5126c12c3297b62ca388809e947c) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "vhangly3.5e", 0x0000, 0x0800, CRC(6e0f31d5) SHA1(edf4674f511a61827d928cff3ea996f67814b281) )
+ ROM_LOAD( "vhangly3.5h", 0x0800, 0x0800, CRC(d602128c) SHA1(cff082f5911688767d3d7cc828bb13714daeb19a) )
+ ROM_LOAD( "vhangly3.5f", 0x1000, 0x0800, CRC(bff9b303) SHA1(863d155a54fb67864be3f2a0fe339815036bccf3) )
+ ROM_LOAD( "vhangly3.5j", 0x1800, 0x0800, CRC(b9724ce8) SHA1(ef4320a572d69f09821d180a249bdd06af38ca63) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( vpacbell )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacm255.6h", 0x2000, 0x1000, CRC(d3640977) SHA1(2cc05c16c0cf6f516c69ab0b6e1a83bdd3010798) )
+ ROM_LOAD( "pacbell.6j", 0x3000, 0x1000, CRC(4b428215) SHA1(acdcc4d7ccfc58c6c0473e8ee548b5e02dcafcfd) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "vecpac.5e", 0x0000, 0x1000, CRC(936d0475) SHA1(8db1fc56ed236deda01cb6a5169fb7d4cda53e7a) )
+ ROM_LOAD( "vecpac.5f", 0x1000, 0x1000, CRC(022d0686) SHA1(ea64d134ececc6eb3fc373821318188489b0e7cc) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( vpacelec )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacm255.6h", 0x2000, 0x1000, CRC(d3640977) SHA1(2cc05c16c0cf6f516c69ab0b6e1a83bdd3010798) )
+ ROM_LOAD( "pacelec.6j", 0x3000, 0x1000, CRC(9e5c763d) SHA1(df56eb705c7dfaf00b084aa6744d7fd5fa4f47d3) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "vecpac.5e", 0x0000, 0x1000, CRC(936d0475) SHA1(8db1fc56ed236deda01cb6a5169fb7d4cda53e7a) )
+ ROM_LOAD( "vecpac.5f", 0x1000, 0x1000, CRC(022d0686) SHA1(ea64d134ececc6eb3fc373821318188489b0e7cc) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( vpacjail )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacm255.6h", 0x2000, 0x1000, CRC(d3640977) SHA1(2cc05c16c0cf6f516c69ab0b6e1a83bdd3010798) )
+ ROM_LOAD( "pacjail.6j", 0x3000, 0x1000, CRC(cc31f185) SHA1(cd184a55f775bc9a70d0bfa932d2993b8987135b) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "vecpac.5e", 0x0000, 0x1000, CRC(936d0475) SHA1(8db1fc56ed236deda01cb6a5169fb7d4cda53e7a) )
+ ROM_LOAD( "vecpac.5f", 0x1000, 0x1000, CRC(022d0686) SHA1(ea64d134ececc6eb3fc373821318188489b0e7cc) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( vpacms1 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacms1.6j", 0x3000, 0x1000, CRC(c5da3887) SHA1(2a65b31891bc19fc0fbdace39e853fff6c4227eb) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "vpacms1.5e", 0x0000, 0x1000, CRC(035f0597) SHA1(50db2cd5dc99abdb90dd2ce8dc4691e7443ac2a5) )
+ ROM_LOAD( "vpacms1.5f", 0x1000, 0x1000, CRC(306b24f0) SHA1(9fd92b05c8bf6749d78f68deaf370582dafcc92e) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( vpacms2 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacms2.6j", 0x3000, 0x1000, CRC(b0a107ea) SHA1(86b8b7cb7e90b0de95bc9b8e3b98bcc46992578e) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "vpacms1.5e", 0x0000, 0x1000, CRC(035f0597) SHA1(50db2cd5dc99abdb90dd2ce8dc4691e7443ac2a5) )
+ ROM_LOAD( "vpacms1.5f", 0x1000, 0x1000, CRC(306b24f0) SHA1(9fd92b05c8bf6749d78f68deaf370582dafcc92e) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( vpacms3 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacms3.6j", 0x3000, 0x1000, CRC(c7d8325a) SHA1(bf72a2d7b20d76e521cf45fbe1b0ab762daa8106) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "vpacms1.5e", 0x0000, 0x1000, CRC(035f0597) SHA1(50db2cd5dc99abdb90dd2ce8dc4691e7443ac2a5) )
+ ROM_LOAD( "vpacms1.5f", 0x1000, 0x1000, CRC(306b24f0) SHA1(9fd92b05c8bf6749d78f68deaf370582dafcc92e) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( vpacms4 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacms4.6j", 0x3000, 0x1000, CRC(7b63ff9b) SHA1(84c167878ca4a1a1d79c397438defc8dcc6326f7) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "vpacms1.5e", 0x0000, 0x1000, CRC(035f0597) SHA1(50db2cd5dc99abdb90dd2ce8dc4691e7443ac2a5) )
+ ROM_LOAD( "vpacms1.5f", 0x1000, 0x1000, CRC(306b24f0) SHA1(9fd92b05c8bf6749d78f68deaf370582dafcc92e) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( vpacmsa1 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacmsa1.6j", 0x3000, 0x1000, CRC(07163b97) SHA1(fdfbca327a2c3f69b4478b1e3ca9c8ed71605582) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "vpacms1.5e", 0x0000, 0x1000, CRC(035f0597) SHA1(50db2cd5dc99abdb90dd2ce8dc4691e7443ac2a5) )
+ ROM_LOAD( "vpacms1.5f", 0x1000, 0x1000, CRC(306b24f0) SHA1(9fd92b05c8bf6749d78f68deaf370582dafcc92e) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( vpacmsa2 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacmsa2.6j", 0x3000, 0x1000, CRC(15e83c24) SHA1(ebe4d476104bbd037a1b5fe5783c0b77229ca707) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "vpacms1.5e", 0x0000, 0x1000, CRC(035f0597) SHA1(50db2cd5dc99abdb90dd2ce8dc4691e7443ac2a5) )
+ ROM_LOAD( "vpacms1.5f", 0x1000, 0x1000, CRC(306b24f0) SHA1(9fd92b05c8bf6749d78f68deaf370582dafcc92e) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( vpacmsa3 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacmsa3.6j", 0x3000, 0x1000, CRC(5762f9cf) SHA1(b570468372a9520929513425523fdae734d4acfc) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "vpacms1.5e", 0x0000, 0x1000, CRC(035f0597) SHA1(50db2cd5dc99abdb90dd2ce8dc4691e7443ac2a5) )
+ ROM_LOAD( "vpacms1.5f", 0x1000, 0x1000, CRC(306b24f0) SHA1(9fd92b05c8bf6749d78f68deaf370582dafcc92e) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( vpacmsa4 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacmsa4.6j", 0x3000, 0x1000, CRC(d9c2a669) SHA1(2f82405d297f35cc13199e1671cfa835dd598e9c) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "vpacms1.5e", 0x0000, 0x1000, CRC(035f0597) SHA1(50db2cd5dc99abdb90dd2ce8dc4691e7443ac2a5) )
+ ROM_LOAD( "vpacms1.5f", 0x1000, 0x1000, CRC(306b24f0) SHA1(9fd92b05c8bf6749d78f68deaf370582dafcc92e) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( vpacshuf )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacm255.6h", 0x2000, 0x1000, CRC(d3640977) SHA1(2cc05c16c0cf6f516c69ab0b6e1a83bdd3010798) )
+ ROM_LOAD( "pacshuf.6j", 0x3000, 0x1000, CRC(55cc4d87) SHA1(1a05670c4fd09b4155941aa1ea90a5719a3e7ebb) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "vecpac.5e", 0x0000, 0x1000, CRC(936d0475) SHA1(8db1fc56ed236deda01cb6a5169fb7d4cda53e7a) )
+ ROM_LOAD( "vecpac.5f", 0x1000, 0x1000, CRC(022d0686) SHA1(ea64d134ececc6eb3fc373821318188489b0e7cc) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( vpspeed )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacm255.6h", 0x2000, 0x1000, CRC(d3640977) SHA1(2cc05c16c0cf6f516c69ab0b6e1a83bdd3010798) )
+ ROM_LOAD( "pacspeed.6j", 0x3000, 0x1000, CRC(0e7946d1) SHA1(cea3440a305ec05dab197dba7ac8428db0d5e2f7) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "vecpac.5e", 0x0000, 0x1000, CRC(936d0475) SHA1(8db1fc56ed236deda01cb6a5169fb7d4cda53e7a) )
+ ROM_LOAD( "vecpac.5f", 0x1000, 0x1000, CRC(022d0686) SHA1(ea64d134ececc6eb3fc373821318188489b0e7cc) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( xensad )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "xensrev.6j", 0x3000, 0x1000, CRC(64a10b6c) SHA1(689be23289fb32f2bfa1392edaba9c6bfa5a82e7) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pmad00.5e", 0x0000, 0x1000, CRC(315f7131) SHA1(8182e3e177111aabad0058897b80cee8a3fd93c7) )
+ ROM_LOAD( "pmad00.5f", 0x1000, 0x1000, CRC(157a6c0f) SHA1(93f66ad4595eb9fcc306398cb83abcacc60b1521) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( xensrev )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "xensrev.6j", 0x3000, 0x1000, CRC(64a10b6c) SHA1(689be23289fb32f2bfa1392edaba9c6bfa5a82e7) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "xensrev.5e", 0x0000, 0x1000, CRC(40e3522d) SHA1(461d1895f82502538bf120a61a3950970f9f1b09) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+/*************************************
+ *
+ * Game drivers
+ *
+ *************************************/
+
+/* in my opinion, the true original game */
+GAME( 1980, puckman, 0, pacman, pacman, driver_device, 0, ROT90, "Namco", "Puckman (original)", MACHINE_SUPPORTS_SAVE )
+
+/* Official MAME */
+
+/* rom parent machine inp init */
+GAME( 1982, ctrpllrp, puckman, pacman, pacman, driver_device, 0, ROT90, "hack", "Caterpillar Pacman Hack", 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( 1982, joyman, puckman, pacman, pacman, driver_device, 0, ROT90, "hack", "Joyman", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, newpuc2, puckman, pacman, pacman, driver_device, 0, ROT90, "hack", "Newpuc2", 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", "Pacman (Hearts)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, pacman, puckman, pacman, pacman, driver_device, 0, ROT90, "[Namco] (Midway license)", "Pacman (Midway)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, pacmanf, puckman, pacman, pacman, driver_device, 0, ROT90, "[Namco] (Midway license)", "Pacman (Midway, with speedup hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, pacmod, puckman, pacman, pacman, driver_device, 0, ROT90, "[Namco] (Midway license)", "Pacman (Midway, harder)", MACHINE_SUPPORTS_SAVE )
+GAME( 1982, pacplus, puckman, pacman, pacman, pacman_state, pacplus, ROT90, "[Namco] (Midway license)", "Pacman Plus", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, puckmod, puckman, pacman, pacman, driver_device, 0, ROT90, "Namco", "PuckMan (Japan set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, puckmanb, puckman, pacman, pacman, driver_device, 0, ROT90, "Namco", "PuckMan (Japan set 1, Probably Bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, puckmana, puckman, pacman, pacman, driver_device, 0, ROT90, "Namco", "PuckMan (Japan set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, puckmanf, puckman, pacman, pacman, driver_device, 0, ROT90, "Namco", "PuckMan (Japan set 1 with speedup hack)", MACHINE_SUPPORTS_SAVE )
+
+/* Blue Justice's Hacks */
+
+GAME( 2001, hm1000, puckman, pacman, pacman, driver_device, 0, ROT90, "Blue Justice", "Hangly Man 1000", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, hm2000, puckman, pacman, pacman, driver_device, 0, ROT90, "Blue Justice", "Hangly Man 2000", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, hmba5000, puckman, pacman, pacman, driver_device, 0, ROT90, "Blue Justice", "Hangly Man Babies 5000", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, hmba7000, puckman, pacman, pacman, driver_device, 0, ROT90, "Blue Justice", "Hangly Man Babies 7000", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, hmbabymz, puckman, pacman, pacman, driver_device, 0, ROT90, "Blue Justice", "Hangly Man BabiesMaze", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, hmbluep, puckman, pacman, pacman, driver_device, 0, ROT90, "Blue Justice", "Hangly Man Blue Plus", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, hmgrenp, puckman, pacman, pacman, driver_device, 0, ROT90, "Blue Justice", "Hangly Man Green Plus", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, hmplus, puckman, pacman, pacman, driver_device, 0, ROT90, "Blue Justice", "Hangly Man Plus", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, pm1000, puckman, pacman, pacman, driver_device, 0, ROT90, "Blue Justice", "Pac Man 1000", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, pm2000, puckman, pacman, pacman, driver_device, 0, ROT90, "Blue Justice", "Pac Man 2000", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, pm3000, puckman, pacman, pacman, driver_device, 0, ROT90, "Blue Justice", "Pac Man 3000", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, pm4000p, puckman, pacman, pacman, pacman_state, pacplus, ROT90, "Blue Justice", "Pac Man 4000 Plus", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, pm5000p, puckman, pacman, pacman, pacman_state, pacplus, ROT90, "Blue Justice", "Pac Man 5000 Plus", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, pm6000, puckman, pacman, pacman, pacman_state, pacplus, ROT90, "Blue Justice", "Pac Man 6000", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, pm7000, puckman, pacman, pacman, pacman_state, pacplus, ROT90, "Blue Justice", "Pac Man 7000", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, pm7000p, puckman, pacman, pacman, pacman_state, pacplus, ROT90, "Blue Justice", "Pac Man 7000 Plus", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, pmba2000, puckman, pacman, pacman, driver_device, 0, ROT90, "Blue Justice", "Pac Man Babies 2000", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, pmba3000, puckman, pacman, pacman, driver_device, 0, ROT90, "Blue Justice", "Pac Man Babies 3000", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, pmba4000, puckman, pacman, pacman, pacman_state, pacplus, ROT90, "Blue Justice", "Pac Man Babies 4000", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, pmba6000, puckman, pacman, pacman, driver_device, 0, ROT90, "Blue Justice", "Pac Man Babies 6000", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, pmba8000, puckman, pacman, pacman, pacman_state, pacplus, ROT90, "Blue Justice", "Pac Man Babies 8000", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, pmbamaz, puckman, pacman, pacman, driver_device, 0, ROT90, "Blue Justice", "Pac Man Babies Maze", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, pmbaplus, puckman, pacman, pacman, pacman_state, pacplus, ROT90, "Blue Justice", "Pac Man Babies Plus", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, pmbluep, puckman, pacman, pacman, pacman_state, pacplus, ROT90, "Blue Justice", "Pac Man Blue Plus", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, pmdeluxe, puckman, pacman, pacman, pacman_state, pacplus, ROT90, "Blue Justice", "Pac Man Deluxe", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, pmextra, puckman, pacman, pacman, pacman_state, pacplus, ROT90, "Blue Justice", "Pac Man Extra", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, pmextrap, puckman, pacman, pacman, pacman_state, pacplus, ROT90, "Blue Justice", "Pac Man Extra Plus", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, pmfever, puckman, pacman, pacman, pacman_state, pacplus, ROT90, "Blue Justice", "Pac Man Fever", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, pmgrenp, puckman, pacman, pacman, pacman_state, pacplus, ROT90, "Blue Justice", "Pac Man Green Plus", MACHINE_SUPPORTS_SAVE )
+
+/* T-Bone Hacks */
+
+GAME( 2000, baby2, puckman, pacman, pacman, driver_device, 0, ROT90, "T-Bone", "Baby Pacman 2 (Alt)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, baby3, puckman, pacman, pacman, driver_device, 0, ROT90, "T-Bone", "Baby Pacman 3 (Alt)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, baby4, puckman, pacman, pacman, driver_device, 0, ROT90, "T-Bone", "Pacman (Baby Maze 4)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pmad6m, puckman, woodpek, pacman, driver_device, 0, ROT90, "T-Bone", "Pacman 2000 After Dark", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, snakeyes, puckman, woodpek, pacman, driver_device, 0, ROT90, "T-Bone", "Pacman 2000 (Snake Eyes Mazes)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, snowpac, puckman, pacman, pacman, driver_device, 0, ROT90, "T-Bone", "Snowy Day Pacman", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, tbone, puckman, woodpek, pacman, driver_device, 0, ROT90, "T-Bone", "Pacman 2000 (T-Bone Mazes)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, vectr6m, puckman, woodpek, pacman, driver_device, 0, ROT90, "T-Bone", "Vector Pacman 2000", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, vectr6tb, puckman, woodpek, pacman, driver_device, 0, ROT90, "T-Bone", "Vector Pacman 2000 (T-Bone Mazes)", MACHINE_SUPPORTS_SAVE )
+
+/* Jerronimo's Progs - www.umlautllama.com */
+
+GAME( 2000, brakman, puckman, pacman, pacman, driver_device, 0, ROT90, "Scott Lawrence", "Brakman", MACHINE_SUPPORTS_SAVE ) // http://www.csh.rit.edu/~jerry/arcade/age/
+GAME( 2004, pacman25, puckman, woodpek, pacman0, driver_device, 0, ROT90, "Scott Lawrence", "25 MAP PAC [c]", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, pacsnoop, puckman, pacman, pacman0, driver_device, 0, ROT90, "Scott Lawrence", "Pac Snoop v1.3 [f]", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pengman, puckman, pacman, pacman, driver_device, 0, ROT90, "Scott Lawrence", "Pengo Man", MACHINE_SUPPORTS_SAVE ) // http://www.csh.rit.edu/~jerry/arcade/age/
+
+/* Medragon's Hacks */
+
+GAME( 2000, crazypac, puckman, pacman, pacman, driver_device, 0, ROT90, "Tim Appleton", "Crazy Pac", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, dizzy, puckman, pacman, pacman, driver_device, 0, ROT90, "Tim Appleton", "Dizzy Ghost - A Reversal of Roles", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pacfnt, puckman, pacman, pacman, driver_device, 0, ROT90, "Tim Appleton", "Pacman with Pacman font", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pacwf, puckman, pacman, pacman, driver_device, 0, ROT90, "Tim Appleton", "Pacman (Weird Fruit)", MACHINE_SUPPORTS_SAVE )
+
+/* Sil's Hacks */
+
+GAME( 1998, chtpac3d, puckman, pacman, pacman0, driver_device, 0, ROT90, "Marcel Silvius", "Pacman 3D [c]", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, eltonpac, puckman, pacman, pacman, driver_device, 0, ROT90, "Marcel Silvius", "Elton Pac", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mazeman, puckman, pacman, pacman, driver_device, 0, ROT90, "Marcel Silvius", "Maze Man", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, namcosil, puckman, pacman, pacman0, driver_device, 0, ROT90, "Marcel Silvius", "Pacman (Namco) (Sil hack) [c]", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, newpuck3, puckman, pacman, pacman, driver_device, 0, ROT90, "Marcel Silvius", "New Puck-3", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, pacman3d, puckman, pacman, pacman, driver_device, 0, ROT90, "Marcel Silvius", "Pacman 3D", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pacman6, puckman, woodpek, pacman, driver_device, 0, ROT90, "Marcel Silvius", "Pacman 6", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pacmn6m2, puckman, woodpek, pacman, driver_device, 0, ROT90, "Marcel Silvius", "Pacman 2000 (Set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pacmulti, puckman, woodpek, pacman, driver_device, 0, ROT90, "Marcel Silvius", "PacMulti (Pacman)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pacweird, puckman, woodpek, pacman, driver_device, 0, ROT90, "Marcel Silvius", "Pacman (Six Map Weird)", MACHINE_SUPPORTS_SAVE )
+
+/* Bobby Tribble's Hacks */
+
+GAME( 2000, pac2600, puckman, pacman, pacman, driver_device, 0, ROT90, "Bobby Tribble", "Pac 2600", MACHINE_SUPPORTS_SAVE )
+GAME( 19??, pac2600a, puckman, pacman, pacman, driver_device, 0, ROT90, "Bobby Tribble?","Pac 2600 (Older?)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pacmini, puckman, pacman, pacman, driver_device, 0, ROT90, "Bobby Tribble", "Mini Pacman", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pacmini2, puckman, pacman, pacman, driver_device, 0, ROT90, "Bobby Tribble", "Mini Pacman 2", MACHINE_SUPPORTS_SAVE )
+
+/* Hires hacks */
+
+GAME( 1981, hanglyx, puckmanx, pacmanx, pacman, driver_device, 0, ROT90, "hack", "Hangly-Man (set 1) (hires hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, hangly2x, puckmanx, pacmanx, pacman, driver_device, 0, ROT90, "hack", "Hangly-Man (set 2) (hires hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, hangly3x, puckmanx, pacmanx, pacman, driver_device, 0, ROT90, "hack", "Hangly-Man (set 3) (hires hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, newpuc2x, puckmanx, pacmanx, pacman, driver_device, 0, ROT90, "hack", "Newpuc2 (hires hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, nwpuc2bx, puckmanx, pacmanx, pacman, driver_device, 0, ROT90, "hack", "Newpuc2 (set 2) (hires hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, nwpuckxx, puckmanx, pacmanx, pacman, driver_device, 0, ROT90, "hack", "New Puck-X (hires hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, pacmanx, puckmanx, pacmanx, pacman, driver_device, 0, ROT90, "[Namco] (Midway license)", "Pac-Man (Midway) (hires hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, pacmanfx, puckmanx, pacmanx, pacman0, driver_device, 0, ROT90, "[Namco] (Midway license)", "Pac-Man (Midway) (hires hack) [f]", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, pacmodx, puckmanx, pacmanx, pacman, driver_device, 0, ROT90, "[Namco] (Midway license)", "Pac-Man (Midway, harder) (hires hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1982, pacplusx, puckmanx, pacmanx, pacman, pacman_state, pacplus, ROT90, "[Namco] (Midway license)", "Pac-Man Plus (hires hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, pheartx, puckmanx, pacmanx, pacman, driver_device, 0, ROT90, "hack", "Pac-Man (Hearts) (hires hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, puckmanx, 0, pacmanx, pacman, driver_device, 0, ROT90, "Namco", "PuckMan (Japan set 1, Probably Bootleg) (hires hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, puckmnax, puckmanx, pacmanx, pacman, driver_device, 0, ROT90, "Namco", "PuckMan (Japan set 2) (hires hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, puckmnfx, puckmanx, pacmanx, pacman0, driver_device, 0, ROT90, "Namco", "PuckMan (Japan set 1) (hires hack) [f]", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, puckmnhx, puckmanx, pacmanx, pacman, driver_device, 0, ROT90, "hack", "Puckman (Falcom?) (hires hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, puckmodx, puckmanx, pacmanx, pacman, driver_device, 0, ROT90, "Namco", "PuckMan (Japan set 3) (hires hack)", MACHINE_SUPPORTS_SAVE )
+
+/* Misc Pacman Hacks */
+
+GAME( 2001, abortman, puckman, pacman, pacman, driver_device, 0, ROT90, "Paul Copeland", "Abortman", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, bucaneer, puckman, pacman, pacman, driver_device, 0, ROT90, "Bucco", "Buccaneer", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, caterpil, puckman, pacman, mspacman, driver_device, 0, ROT90, "Phi", "Caterpillar", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, chtpac, puckman, pacman, pacman0, driver_device, 0, ROT90, "[Midway]", "Pacman [c]", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, chtpman2, puckman, pacman, pacman0, driver_device, 0, ROT90, "[Namco]", "New Puck2 [c]", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, chtpop, puckman, pacman, pacman0, driver_device, 0, ROT90, "[Midway]", "Pac-man (Popeye) [c]", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, chtpuck, puckman, pacman, pacman0, driver_device, 0, ROT90, "Deluxe", "New Puck-X [c]", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, europac, puckman, pacman, pacman, driver_device, 0, ROT90, "Stefano Priore", "Euro Pac", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, fasthang, puckman, pacman, pacman0, driver_device, 0, ROT90, "[Nittoh]", "Hangly Man [f]", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, fastpop, puckman, pacman, pacman0, driver_device, 0, ROT90, "[Midway]", "Pacman (Popeye) [f]", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, fastpuck, puckman, pacman, pacman0, driver_device, 0, ROT90, "Deluxe", "New Puck-X [f]", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, fpnleash, puckman, woodpek, pacman, driver_device, 0, ROT90, "Peter Storey", "Pacman Unleashed (Flat)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, fstpman2, puckman, pacman, pacman0, driver_device, 0, ROT90, "[Namco]", "New Puck2 [f]", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, hanglyad, puckman, pacman, pacman, driver_device, 0, ROT90, "[Nittoh]", "Hangly-Man (set 1) After Dark", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, hearts, puckman, pacman, pacman, driver_device, 0, ROT90, "[Midway]", "Pacman (Hearts)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, hellowp, puckman, pacman, pacman, driver_device, 0, ROT90, "cmonkey", "Hello World (Pacman HW)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, hmhearts, puckman, pacman, pacman, driver_device, 0, ROT90, "[Nittoh]", "Hangly-Man (Hearts)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, hmpopey, puckman, pacman, pacman, driver_device, 0, ROT90, "[Nittoh]", "Hangly-Man (Popeye)", MACHINE_SUPPORTS_SAVE )
+GAME( 2005, homercid, puckman, pacman, mspacpls, driver_device, 0, ROT90, "David Widel", "Homercide", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, jacman, puckman, pacman, pacman, driver_device, 0, ROT90, "Brent Cobb", "Jacman", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, jpmmunch, puckman, pacman, pacman, driver_device, 0, ROT90, "JPM", "Muncher", MACHINE_SUPPORTS_SAVE )
+GAME( 1983, newpuc1, puckman, pacman, pacman, driver_device, 0, ROT90, "E.P.", "Newpuc1 (Italian dump)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, newpuck2, puckman, pacman, pacman, driver_device, 0, ROT90, "Sir Scotty", "New Puck-2", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, nwpuc2b, puckman, pacman, newpuc2b, driver_device, 0, ROT90, "Linear Elect", "New Puc2 (Set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pacbaby, puckman, pacman, pacman, driver_device, 0, ROT90, "[Midway]", "Pacman (Baby Maze 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pacbaby2, puckman, pacman, pacman, driver_device, 0, ROT90, "[Midway]", "Pacman (Baby Maze 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pacbaby3, puckman, pacman, pacman, driver_device, 0, ROT90, "[Midway]", "Pacman (Baby Maze 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pacbell, puckman, pacman, pacman, driver_device, 0, ROT90, "Snake Eyes", "Pacman (Bell)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pacelec, puckman, pacman, pacman, driver_device, 0, ROT90, "Snake Eyes", "Pacman (Electric Cowboy)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pacinvis, puckman, pacman, pacman, driver_device, 0, ROT90, "[Midway]", "Pacman (Original Inviso)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pacjail, puckman, pacman, pacman, driver_device, 0, ROT90, "Snake Eyes", "Pacman (Jail)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pacjr1, puckman, pacman, pacman, driver_device, 0, ROT90, "[Midway]", "Pacman Jr. (Maze 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pacjr2, puckman, pacman, pacman, driver_device, 0, ROT90, "[Midway]", "Pacman Jr. (Maze 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pacjr3, puckman, pacman, pacman, driver_device, 0, ROT90, "[Midway]", "Pacman Jr. (Maze 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pacjr4, puckman, pacman, pacman, driver_device, 0, ROT90, "[Midway]", "Pacman Jr. (Maze 4)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pacm255, puckman, pacman, pacman, driver_device, 0, ROT90, "[Midway]", "Pacman (Fixes 255th Maze)", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, pacmanp, puckman, pacman, pacman, driver_device, 0, ROT90, "Don Hodges", "Pacman (Patched)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, pacmar, puckman, pacman, pacman, driver_device, 0, ROT90, "[Midway]", "Mario Pacman", MACHINE_SUPPORTS_SAVE )
+GAME( 2012, pacminer, puckman, pacman, pacman, driver_device, 0, ROT90, "Jim Bagley", "Pac Manic Miner Man", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pacms1, puckman, pacman, pacman, driver_device, 0, ROT90, "[Midway]", "Pacman (Ms. Pacman Maze 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pacms2, puckman, pacman, pacman, driver_device, 0, ROT90, "[Midway]", "Pacman (Ms. Pacman Maze 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pacms3, puckman, pacman, pacman, driver_device, 0, ROT90, "[Midway]", "Pacman (Ms. Pacman Maze 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pacms4, puckman, pacman, pacman, driver_device, 0, ROT90, "[Midway]", "Pacman (Ms. Pacman Maze 4)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pacmsa1, puckman, pacman, pacman, driver_device, 0, ROT90, "[Midway]", "Pacman (Ms. Pacman Attack 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pacmsa2, puckman, pacman, pacman, driver_device, 0, ROT90, "[Midway]", "Pacman (Ms. Pacman Attack 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pacmsa3, puckman, pacman, pacman, driver_device, 0, ROT90, "[Midway]", "Pacman (Ms. Pacman Attack 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pacmsa4, puckman, pacman, pacman, driver_device, 0, ROT90, "[Midway]", "Pacman (Ms. Pacman Attack 4)", MACHINE_SUPPORTS_SAVE )
+GAME( 1982, pacplusc, puckman, pacman, pacman0, driver_device, 0, ROT90, "Bally Midway", "Pacman Plus (Unencrypted) [c]", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, pacpopey, puckman, pacman, pacman, driver_device, 0, ROT90, "[Midway]", "Pacman (Popeye)", MACHINE_SUPPORTS_SAVE )
+GAME( 19??, pacrab, puckman, woodpek, pacman, driver_device, 0, ROT90, "[Midway]", "Pac Rabbit", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pacshuf, puckman, pacman, pacman, driver_device, 0, ROT90, "Snake Eyes", "Pacman (Shuffle)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pacspeed, puckman, pacman, pacman, driver_device, 0, ROT90, "Snake Eyes", "Pacman (Speedy)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pcrunchy, puckman, pacman, pacman, driver_device, 0, ROT90, "Snake Eyes", "Pacman (Crunchy)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, pheartb, puckman, pacman, newpuc2, driver_device, 0, ROT90, "Kamiya", "Pacman Hearts 2", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pmad, puckman, pacman, pacman, driver_device, 0, ROT90, "Sir Scotty", "Pacman After Dark", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pmad00, puckman, pacman, pacman, driver_device, 0, ROT90, "[Midway]", "Pacman After Dark 2000", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pmada, puckman, pacman, pacman, driver_device, 0, ROT90, "[Midway]", "Pacman After Dark (Alternate)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, pmheart, puckman, pacman, pacman, driver_device, 0, ROT90, "bootleg", "Puckman Hearts", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pplusad, puckman, pacman, pacman, pacman_state, pacplus, ROT90, "[Bally Midway]", "Pacman Plus After Dark", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, puck255, puckman, pacman, pacman, driver_device, 0, ROT90, "[Namco]", "Puckman (Fixes 255th Maze)", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, puckmano, puckman, pacman, pacman, driver_device, 0, ROT90, "Hebus", "Puckman Opposite", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, puckmot1, puckman, pacman, pacman, driver_device, 0, ROT90, "Hebus", "Puckmotik (alt)", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, puckmoti, puckman, pacman, pacman, driver_device, 0, ROT90, "Hebus", "Puckmotik", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, puckren, puckman, pacman, pacman, driver_device, 0, ROT90, "PacHack", "Puckman Renaissance", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, puckrenc, puckman, pacman, pacman0, driver_device, 0, ROT90, "PacHack", "Puckman Renaissance [c]", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, punleash, puckman, woodpek, pacman, driver_device, 0, ROT90, "Peter Storey", "Pacman Unleashed", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, roboman, puckman, pacman, pacman, driver_device, 0, ROT90, "Runge Editing", "Robo Man", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, spuckman, puckman, pacman, spuckman, driver_device, 0, ROT90, "TV Tune / Miet!o!mat", "Super Puckman", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, sumelton, puckman, pacman, pacman, driver_device, 0, ROT90, "Staizitto", "Summertime Elton", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, sumeltob, puckman, pacman, pacman, driver_device, 0, ROT90, "Staizitto", "Summertime Elton (old)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, ultra2, puckman, pacman, pacman, driver_device, 0, ROT90, "TwoBit Score", "Ultra Pacman", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, ultrapac, puckman, woodpek, pacman, driver_device, 0, ROT90, "PacFan", "UltraPac", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, vcrunchy, puckman, pacman, pacman, driver_device, 0, ROT90, "Snake Eyes", "Vector Pacman (Crunchy)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, vecbaby, puckman, pacman, pacman, driver_device, 0, ROT90, "[Midway]", "Vector Pacman (Baby Maze 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, vecbaby2, puckman, pacman, pacman, driver_device, 0, ROT90, "[Midway]", "Vector Pacman (Baby Maze 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, vecbaby3, puckman, pacman, pacman, driver_device, 0, ROT90, "[Midway]", "Vector Pacman (Baby Maze 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, vecpac, puckman, pacman, pacman, driver_device, 0, ROT90, "[Midway]", "Vector Pacman", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, vectplus, puckman, pacman, pacman, pacman_state, pacplus, ROT90, "[Bally Midway]", "Vector Pacman Plus", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, vectxens, puckman, pacman, pacman, driver_device, 0, ROT90, "Jeff Morris", "Vector Xens Revenge", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, vhangly, puckman, pacman, pacman, driver_device, 0, ROT90, "[Nittoh]", "Vector Hangly-Man", MACHINE_SUPPORTS_SAVE )
+GAME( 2008, vhangly3, puckman, pacman, pacman, driver_device, 0, ROT90, "Gatinho [Nittoh]", "Vector Hangly-Man3", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, vpacbell, puckman, pacman, pacman, driver_device, 0, ROT90, "Snake Eyes", "Vector Pacman (Bell)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, vpacelec, puckman, pacman, pacman, driver_device, 0, ROT90, "Snake Eyes", "Vector Pacman (Electric Cowboy)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, vpacjail, puckman, pacman, pacman, driver_device, 0, ROT90, "Snake Eyes", "Vector Pacman (Jail)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, vpacms1, puckman, pacman, pacman, driver_device, 0, ROT90, "[Midway]", "Vector Pacman (Ms. Pacman Maze 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, vpacms2, puckman, pacman, pacman, driver_device, 0, ROT90, "[Midway]", "Vector Pacman (Ms. Pacman Maze 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, vpacms3, puckman, pacman, pacman, driver_device, 0, ROT90, "[Midway]", "Vector Pacman (Ms. Pacman Maze 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, vpacms4, puckman, pacman, pacman, driver_device, 0, ROT90, "[Midway]", "Vector Pacman (Ms. Pacman Maze 4)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, vpacmsa1, puckman, pacman, pacman, driver_device, 0, ROT90, "[Midway]", "Vector Pacman (Ms. Pacman Attack 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, vpacmsa2, puckman, pacman, pacman, driver_device, 0, ROT90, "[Midway]", "Vector Pacman (Ms. Pacman Attack 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, vpacmsa3, puckman, pacman, pacman, driver_device, 0, ROT90, "[Midway]", "Vector Pacman (Ms. Pacman Attack 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, vpacmsa4, puckman, pacman, pacman, driver_device, 0, ROT90, "[Midway]", "Vector Pacman (Ms. Pacman Attack 4)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, vpacshuf, puckman, pacman, pacman, driver_device, 0, ROT90, "Snake Eyes", "Vector Pacman (Shuffle)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, vpspeed, puckman, pacman, pacman, driver_device, 0, ROT90, "Snake Eyes", "Vector Pacman (Speedy)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, xensad, puckman, pacman, pacman, driver_device, 0, ROT90, "Jeff Morris", "Xens Revenge After Dark", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, xensrev, puckman, pacman, pacman, driver_device, 0, ROT90, "Jeff Morris", "Xens Revenge", MACHINE_SUPPORTS_SAVE )
+
+
+#include "mspacman.cpp"
+#include "multipac.cpp"
+#include "maketrax.cpp"
+
diff --git a/docs/release/src/hbmame/drivers/pcktgal.cpp b/docs/release/src/hbmame/drivers/pcktgal.cpp
new file mode 100644
index 00000000000..d394770ac6e
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/pcktgal.cpp
@@ -0,0 +1,53 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/pcktgal.cpp"
+
+ROM_START( pckgalgr )
+ ROM_REGION( 0x14000, "maincpu", 0 ) /* 64k for code + 16k for banks */
+ ROM_LOAD( "eb04gr.rom", 0x10000, 0x4000, CRC(9a7a826c) SHA1(f0c62a760cc05e31568723eaf354a735c28d20ab) )
+ ROM_CONTINUE( 0x04000, 0xc000)
+ /* 4000-7fff is banked but code falls through from 7fff to 8000, so */
+ /* I have to load the bank directly at 4000. */
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 96k for code + 96k for decrypted opcodes */
+ ROM_LOAD( "eb03.f2", 0x10000, 0x8000, CRC(cb029b02) SHA1(fbb3da08ed05ae73fbeeb13e0e2ff735aaf83db8) )
+ ROM_CONTINUE( 0x08000, 0x8000 )
+
+ ROM_REGION( 0x20000, "gfx1", 0 )
+ ROM_LOAD( "eb01gr.rom", 0x00000, 0x10000, CRC(9e5e5743) SHA1(3379bcd36148c37bfc8d2eb2909104b367797856) )
+ ROM_LOAD( "eb02gr.rom", 0x10000, 0x10000, CRC(be11227c) SHA1(c41b10f23ce60829a40851ad024e189bc7e5b07c) )
+
+ ROM_REGION( 0x10000, "gfx2", 0 )
+ ROM_LOAD( "eb00gr.rom", 0x00000, 0x10000, CRC(5eeb40e8) SHA1(703b2b87954032a383c6f34316df2b5ec6a59488) )
+
+ ROM_REGION( 0x0400, "proms", 0 )
+ ROM_LOAD( "eb05.k14", 0x0000, 0x0200, CRC(3b6198cb) SHA1(d32b364cfce99637998ca83ad21783f80364dd65) ) /* 82s147.084 */
+ ROM_LOAD( "eb06.k15", 0x0200, 0x0200, CRC(1fbd4b59) SHA1(84e20329003cf09b849b49e1d83edc330d49f404) ) /* 82s131.101 */
+ROM_END
+
+ROM_START( pcktgalk )
+ ROM_REGION( 0x14000, "maincpu", 0 ) /* 64k for code + 16k for banks */
+ ROM_LOAD( "eb04.j7", 0x10000, 0x4000, CRC(8215d60d) SHA1(ac26dfce7e215be21f2a17f864c5e966b8b8322e) )
+ ROM_CONTINUE( 0x04000, 0xc000)
+ /* 4000-7fff is banked but code falls through from 7fff to 8000, so */
+ /* I have to load the bank directly at 4000. */
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 96k for code + 96k for decrypted opcodes */
+ ROM_LOAD( "eb03.f2", 0x10000, 0x8000, CRC(cb029b02) SHA1(fbb3da08ed05ae73fbeeb13e0e2ff735aaf83db8) )
+ ROM_CONTINUE( 0x08000, 0x8000 )
+
+ ROM_REGION( 0x20000, "gfx1", 0 )
+ ROM_LOAD( "eb01k.rom", 0x00000, 0x10000, CRC(3b9f8e29) SHA1(b7ae6d72b9fc1f4964b673346d76a9d24cd5606c) )
+ ROM_LOAD( "eb02.d12", 0x10000, 0x10000, CRC(a9dcd339) SHA1(245824ab86cdfe4b842ce1be0af60f2ff4c6ae07) )
+
+ ROM_REGION( 0x10000, "gfx2", 0 )
+ ROM_LOAD( "eb00.a1", 0x00000, 0x10000, CRC(6c1a14a8) SHA1(03201197304c5f1d854b8c4f4a5c78336b51f872) )
+
+ ROM_REGION( 0x0400, "proms", 0 )
+ ROM_LOAD( "eb05.k14", 0x0000, 0x0200, CRC(3b6198cb) SHA1(d32b364cfce99637998ca83ad21783f80364dd65) ) /* 82s147.084 */
+ ROM_LOAD( "eb06.k15", 0x0200, 0x0200, CRC(1fbd4b59) SHA1(84e20329003cf09b849b49e1d83edc330d49f404) ) /* 82s131.101 */
+ROM_END
+
+
+GAME( 1987, pckgalgr, pcktgal, pcktgal, pcktgal, pcktgal_state, pcktgal, ROT0, "GreekRoms", "Pocket Gal (Greek)", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, pcktgalk, pcktgal, pcktgal, pcktgal, pcktgal_state, pcktgal, ROT0, "Hack", "Pocket Gal (Korean)", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/pengo.cpp b/docs/release/src/hbmame/drivers/pengo.cpp
new file mode 100644
index 00000000000..29b1193b267
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/pengo.cpp
@@ -0,0 +1,148 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/pengo.cpp"
+
+
+
+// DSW1 needs to be here, coins/credits combinations to be found out
+static INPUT_PORTS_START( pacpen )
+ PORT_INCLUDE( pengo )
+ PORT_MODIFY("DSW0")
+ PORT_DIPNAME( 0x03, 0x00, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW1:1,2")
+ PORT_DIPSETTING( 0x00, "10000" )
+ PORT_DIPSETTING( 0x01, "15000" )
+ PORT_DIPSETTING( 0x02, "20000" )
+ PORT_DIPSETTING( 0x03, DEF_STR( None ) )
+ PORT_DIPNAME( 0x04, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW1:3")
+ PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
+ PORT_DIPSETTING( 0x04, DEF_STR( Cocktail ) )
+ PORT_DIPNAME( 0x18, 0x10, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:4,5")
+ PORT_DIPSETTING( 0x18, "5" )
+ PORT_DIPSETTING( 0x10, "3" )
+ PORT_DIPSETTING( 0x08, "2" )
+ PORT_DIPSETTING( 0x00, "1" )
+ PORT_BIT(0xe0, IP_ACTIVE_LOW, IPT_UNUSED) PORT_DIPLOCATION("SW1:6,7,8")
+INPUT_PORTS_END
+
+
+
+/* The colours for alpacap7 and alpacap8 are completely wrong, but we are using the roms specified by
+ the original programmer. See http://umlautllama.com/projects/alpaca */
+ROM_START( alpacap7 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "alp7.u8", 0x0000, 0x1000, CRC(E70923E4) SHA1(86A96DC0DEE5F5B532121892528ED2B456D51174) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "alp7_ic92", 0x0000, 0x1000, CRC(693B1A96) SHA1(DED8AC0A4186458FDA6A241C027718742BA87973) )
+ ROM_CONTINUE( 0x2000, 0x1000 )
+ ROM_LOAD( "alp_ic105", 0x1000, 0x1000, CRC(BDA193F4) SHA1(A61B5E86809FEFF025C73DE78FC751EAD646125B) )
+ ROM_CONTINUE( 0x3000, 0x1000 )
+
+ ROM_REGION( 0x0420, "proms", 0 )
+ ROM_LOAD( "pr1633.78", 0x0000, 0x0020, CRC(3a5844ec) SHA1(680eab0e1204c9b74adc11588461651b474021bb) )
+ ROM_LOAD( "pr1634.88", 0x0020, 0x0400, CRC(766b139b) SHA1(3fcd66610fcaee814953a115bf5e04788923181f) )
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "pr1635.51", 0x0000, 0x0100, CRC(c29dea27) SHA1(563c9770028fe39188e62630711589d6ed242a66) )
+ ROM_LOAD( "pr1636.70", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) )
+ROM_END
+
+ROM_START( alpacap8 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "alp8.u8", 0x0000, 0x1000, CRC(ABD45FD7) SHA1(120276D1E9A3DA707DB4263A93418CA37F4F4C9F) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "alp8_ic92", 0x0000, 0x1000, CRC(4A45717F) SHA1(159A74C31FC5D4E5405BCD8D8843A1B381EA01A4) )
+ ROM_CONTINUE( 0x2000, 0x1000 )
+ ROM_LOAD( "alp_ic105", 0x1000, 0x1000, CRC(BDA193F4) SHA1(A61B5E86809FEFF025C73DE78FC751EAD646125B) )
+ ROM_CONTINUE( 0x3000, 0x1000 )
+
+ ROM_REGION( 0x0420, "proms", 0 )
+ ROM_LOAD( "pr1633.78", 0x0000, 0x0020, CRC(3a5844ec) SHA1(680eab0e1204c9b74adc11588461651b474021bb) )
+ ROM_LOAD( "pr1634.88", 0x0020, 0x0400, CRC(766b139b) SHA1(3fcd66610fcaee814953a115bf5e04788923181f) )
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "pr1635.51", 0x0000, 0x0100, CRC(c29dea27) SHA1(563c9770028fe39188e62630711589d6ed242a66) )
+ ROM_LOAD( "pr1636.70", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) )
+ROM_END
+
+ROM_START( pacpen )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacpen.u8", 0x0000, 0x1000, CRC(59959af1) SHA1(c528a7895338806977f2d9c76da91f67b0f78aed) )
+ ROM_LOAD( "pacpen.u7", 0x1000, 0x1000, CRC(3ed59df1) SHA1(561725f5970954cccf938330fd9f48ad0cb1829b) )
+ ROM_LOAD( "pacpen.u15", 0x2000, 0x1000, CRC(d0c8dcc8) SHA1(3a6829d12d7ef6f09d5e1afa5e0e4ef9d0605aa1) )
+ ROM_LOAD( "pacpen.u14", 0x3000, 0x1000, CRC(39066ad9) SHA1(9789a111b94a3c5aabf910c72c146f71df59f316) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "pacpen.u92", 0x0000, 0x1000, CRC(2f0b5176) SHA1(a6a51d4545329999a5f42ae790bfb3a894429fee) )
+ ROM_CONTINUE( 0x2000, 0x1000 )
+ ROM_LOAD( "pacpen.105", 0x1000, 0x1000, CRC(6ba0078e) SHA1(a6e14aa373ef22fe732c335fb1ad6c48fec92530) )
+ ROM_CONTINUE( 0x3000, 0x1000 )
+
+ ROM_REGION( 0x0420, "proms", 0 )
+ ROM_LOAD( "pr1633.78", 0x0000, 0x0020, CRC(3a5844ec) SHA1(680eab0e1204c9b74adc11588461651b474021bb) )
+ ROM_LOAD( "pr1634.88", 0x0020, 0x0400, CRC(766b139b) SHA1(3fcd66610fcaee814953a115bf5e04788923181f) )
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "pr1635.51", 0x0000, 0x0100, CRC(c29dea27) SHA1(563c9770028fe39188e62630711589d6ed242a66) )
+ ROM_LOAD( "pr1636.70", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) )
+ROM_END
+
+ROM_START( pengopop )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pengo.u8", 0x0000, 0x1000, CRC(3dfeb20e) SHA1(a387b72501da77bf38b58619d2099083a0463e1f) )
+ ROM_LOAD( "pengo.u7", 0x1000, 0x1000, CRC(1db341bd) SHA1(d1c66bb9cf479e6960dbcd35c820097a81eaa555) )
+ ROM_LOAD( "pengo.u15", 0x2000, 0x1000, CRC(7c2842d5) SHA1(a8a568da68babd0ccb9f2cee4182fc01c3138494) )
+ ROM_LOAD( "pengo.u14", 0x3000, 0x1000, CRC(6e3c1f2f) SHA1(2ee821b0f6e0f3cfeae7f5ff25a6e9bd977efce0) )
+ ROM_LOAD( "ep5124.21", 0x4000, 0x1000, CRC(95f354ff) SHA1(fdebc68a6d87f8ecdf52a57a34ae5ae844a13510) )
+ ROM_LOAD( "pengo.u20", 0x5000, 0x1000, CRC(0fdb04b8) SHA1(ed814d58318c1055e475ff678609d189727bf9b4) )
+ ROM_LOAD( "ep5126.32", 0x6000, 0x1000, CRC(e5920728) SHA1(0ac5ffdad7bdcb32e630b9582e1b1aaece5198c9) )
+ ROM_LOAD( "pengopc.u31", 0x7000, 0x1000, CRC(1ede8569) SHA1(0d10a0896847a06185a91eb83c0ccb88c4307b33) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "ep1640.92", 0x0000, 0x1000, CRC(d7eec6cd) SHA1(e542bcc28f292be9a0a29d949de726e0b55e654a) )
+ ROM_CONTINUE( 0x2000, 0x1000 )
+ ROM_LOAD( "ep1695.105", 0x1000, 0x1000, CRC(5bfd26e9) SHA1(bdec535e486b43a8f5550334beff423eeace10b2) )
+ ROM_CONTINUE( 0x3000, 0x1000 )
+
+ ROM_REGION( 0x0420, "proms", 0 )
+ ROM_LOAD( "pr1633.78", 0x0000, 0x0020, CRC(3a5844ec) SHA1(680eab0e1204c9b74adc11588461651b474021bb) )
+ ROM_LOAD( "pr1634.88", 0x0020, 0x0400, CRC(766b139b) SHA1(3fcd66610fcaee814953a115bf5e04788923181f) )
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "pr1635.51", 0x0000, 0x0100, CRC(c29dea27) SHA1(563c9770028fe39188e62630711589d6ed242a66) )
+ ROM_LOAD( "pr1636.70", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) )
+ROM_END
+
+ROM_START( vecpengo )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "ep1689c.8", 0x0000, 0x1000, CRC(f37066a8) SHA1(0930de17a763a527057f60783a92662b09554426) )
+ ROM_LOAD( "ep1690b.7", 0x1000, 0x1000, CRC(baf48143) SHA1(4c97529e61eeca5d94938b1dfbeac41bf8cbaf7d) )
+ ROM_LOAD( "ep1691b.15", 0x2000, 0x1000, CRC(adf0eba0) SHA1(c8949fbdbfe5023ee17a789ef60205e834a76c81) )
+ ROM_LOAD( "ep1692b.14", 0x3000, 0x1000, CRC(a086d60f) SHA1(7079769d14dfe3873ffe29623ba0a93413706c6d) )
+ ROM_LOAD( "ep1693b.21", 0x4000, 0x1000, CRC(b72084ec) SHA1(c0508951c2ad8dc31481be8b3bfee2063e3fb0d7) )
+ ROM_LOAD( "ep1694b.20", 0x5000, 0x1000, CRC(94194a89) SHA1(7b47aec61593efd758e2a031f72a854bb0ba8af1) )
+ ROM_LOAD( "ep5118b.32", 0x6000, 0x1000, CRC(af7b12c4) SHA1(207ed466546f40ca60a38031b83aef61446902e2) )
+ ROM_LOAD( "ep5119c.31", 0x7000, 0x1000, CRC(933950fe) SHA1(fec7236b3dee2ea6e39c68440a6d2d9e3f72675a) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "vecp_ic92", 0x0000, 0x1000, CRC(57c5e53c) SHA1(4d1d4cdc352cb2fd14ebbd6678211093be73fb69) )
+ ROM_CONTINUE( 0x2000, 0x1000 )
+ ROM_LOAD( "vecp_ic105", 0x1000, 0x1000, CRC(b93588b0) SHA1(bbb779e538bdf7ebfcb0e12e11b57cabd5ddd29d) )
+ ROM_CONTINUE( 0x3000, 0x1000 )
+
+ ROM_REGION( 0x0420, "proms", 0 )
+ ROM_LOAD( "pr1633.78", 0x0000, 0x0020, CRC(3a5844ec) SHA1(680eab0e1204c9b74adc11588461651b474021bb) )
+ ROM_LOAD( "pr1634.88", 0x0020, 0x0400, CRC(766b139b) SHA1(3fcd66610fcaee814953a115bf5e04788923181f) )
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "pr1635.51", 0x0000, 0x0100, CRC(c29dea27) SHA1(563c9770028fe39188e62630711589d6ed242a66) )
+ ROM_LOAD( "pr1636.70", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) )
+ROM_END
+
+
+GAME( 2003, alpacap7, alpaca8, pengou, pengo, driver_device, 0, ROT90, "Scott Lawrence", "Alpaca v0.7 (Pengo Hardware)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_COLORS )
+GAME( 2003, alpacap8, alpaca8, pengou, pengo, driver_device, 0, ROT90, "Scott Lawrence", "Alpaca v0.8 (Pengo Hardware)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_COLORS )
+GAME( 2016, pacpen, pengo, pengou, pacpen, driver_device, 0, ROT90, "Andrew Hannay", "Pacman on Pengo Hardware", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, pengopop, pengo, pengou, pengo, driver_device, 0, ROT90, "Sega", "Pengo (Popcorn Music)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, vecpengo, pengo, pengoe, pengo, driver_device, 0, ROT90, "T-Bone", "Pengo (Vector sim)", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/pgm.cpp b/docs/release/src/hbmame/drivers/pgm.cpp
new file mode 100644
index 00000000000..b1f04e740be
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/pgm.cpp
@@ -0,0 +1,2194 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/pgm.cpp"
+/**************************************************************************************
+Problem sets not included:
+
+KOV Zero 2000: only change is 2 gfx roms, and the result has bad gfx
+
+**************************************************************************************/
+
+ROM_START( pgemeni )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "pgemeni.p103", 0x100000, 0x200000, CRC(6cafa56b) SHA1(0b3447357cf9dc10e9473102a109a2c9f63be66b) )
+
+ ROM_REGION( 0x800000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "pgemeni.t100", 0x180000, 0x400000, CRC(42b979dd) SHA1(38ae8a7e07f1169b876bd41e0a9bfe19ecb0256f) )
+
+ ROM_REGION( 0x1800000, "sprcol", 0 )
+ ROM_LOAD( "pgemeni.a100", 0x0000000, 0x400000, CRC(105d7cee) SHA1(43b19032e9e3a1aeabd7ce11438c6658ac4b5dd0) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "pgemeni.b100", 0x0000000, 0x400000, CRC(b4127373) SHA1(fa731bedec8ff4c19ec68bd44e8ce0b80ec0c716) )
+
+ ROM_REGION( 0x600000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "pgmdemo.m100", 0x400000, 0x200000, CRC(8d89877e) SHA1(7d76d48d64d7ac5411d714a4bb83f37e3e5b8df6) )
+ROM_END
+
+ROM_START( pgmdemo )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "pgmdemo.p103", 0x100000, 0x200000, CRC(d3f6ec45) SHA1(4c171ffff6a04b362f71c42de7bc1d7b57da2c0e) )
+
+ ROM_REGION( 0x800000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "pgmdemo.t100", 0x180000, 0x400000, CRC(0596a59a) SHA1(e48cb703e886a5b71ecc839136c642117aa529ef) )
+
+ ROM_REGION( 0x1800000, "sprcol", 0 )
+ ROM_LOAD( "pgmdemo.a100", 0x0000000, 0x400000, CRC(5d0e8fa1) SHA1(95380456c8a6c9c48d4987951f689d5b9a7a397c) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "pgmdemo.b100", 0x0000000, 0x400000, CRC(15dd191f) SHA1(a90f63138c9a9bf9215b17a14635518aed7da8a9) )
+
+ ROM_REGION( 0x600000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "pgmdemo.m100", 0x400000, 0x200000, CRC(8d89877e) SHA1(7d76d48d64d7ac5411d714a4bb83f37e3e5b8df6) )
+ROM_END
+
+ROM_START( pgmfrog )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "pgmfrog.p103", 0x100000, 0x200000, CRC(cdec9e8d) SHA1(183753b3f19e9b06c6059206aac85d865bf1dd66) )
+
+ ROM_REGION( 0x800000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "pgmfrog.t100", 0x180000, 0x400000, CRC(8f58b6d8) SHA1(79b3b503f29593170a7faa93d75707682d800c66) )
+
+ ROM_REGION( 0x1800000, "sprcol", 0 )
+ ROM_LOAD( "pgmfrog.a100", 0x0000000, 0x400000, CRC(dc1eafe6) SHA1(11eb0d02c38df828ae0361bc7624c4658047df67) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "pgmfrog.b100", 0x0000000, 0x400000, CRC(3d44b66f) SHA1(04347002bd942d320c6b8240e4485aec626f2aaa) )
+
+ ROM_REGION( 0x600000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "pgmfrog.m100", 0x400000, 0x200000, CRC(05e2f761) SHA1(c93d94a8f11c41b019fcf9b6a90645416fd2c75b) )
+ROM_END
+
+ROM_START( ketarrb )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "ketarrb_v100.u38", 0x000000, 0x200000, CRC(ec7a4f92) SHA1(6351fb386586956fbdb5f0730c481fb539cc267a) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "ket_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) )
+ ROM_LOAD( "t04701w064.u19", 0x180000, 0x800000, CRC(2665b041) SHA1(fb1107778b66f2af0de77ac82e1ee2902f53a959) )
+
+ ROM_REGION( 0x1000000, "sprcol", 0 )
+ ROM_LOAD( "a04701w064.u7", 0x0000000, 0x0800000, CRC(5ef1b94b) SHA1(f10dfa46e0a4d297c3a856aea5b49d648f98935c) )
+ ROM_LOAD( "a04702w064.u8", 0x0800000, 0x0800000, CRC(26d6da7f) SHA1(f20e07a7994f41b5ed917f8b0119dc5542f3541c) )
+
+ ROM_REGION( 0x0800000, "sprmask", 0 )
+ ROM_LOAD( "b04701w064.u1", 0x0000000, 0x0800000, CRC(1bec008d) SHA1(07d117dc2eebb35727fb18a7c563acbaf25a8d36) )
+
+ ROM_REGION( 0x800000, "ics", ROMREGION_ERASE00 )
+ ROM_LOAD( "m04701b032.u17", 0x400000, 0x400000, CRC(b46e22d1) SHA1(670853dc485942fb96380568494bdf3235f446ee) )
+
+ ROM_REGION( 0x20000, "sram", 0 )
+ ROM_LOAD( "ket_defaults.nv", 0x0000000, 0x020000, CRC(3ca892d8) SHA1(67430df5217e453ae8140c5653deeadfad8fa684) )
+ROM_END
+
+// This crashes in attract mode, but if you start a game before that happens, then it plays ok
+ROM_START( orlegendcs )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0101h.s160", 0x100000, 0x200000, CRC(d608ece9) SHA1(0a34bdcfcbb4fad4c499ee559791e29a432bff85) )
+
+ ROM_REGION( 0x800000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0100.u8", 0x180000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) )
+
+ ROM_REGION( 0x1800000, "sprcol", 0 )
+ 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 )
+ 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 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0100.u1", 0x400000, 0x200000, CRC(e5c36c83) SHA1(50c6f66770e8faa3df349f7d68c407a7ad021716) )
+ROM_END
+
+// This crashes in attract mode, but if you start a game before that happens, then it plays ok
+ROM_START( orlegendh )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0101h.s160", 0x100000, 0x200000, CRC(d608ece9) SHA1(0a34bdcfcbb4fad4c499ee559791e29a432bff85) )
+
+ ROM_REGION( 0x800000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0100.u8", 0x180000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) )
+
+ ROM_REGION( 0x1800000, "sprcol", 0 )
+ 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 )
+ 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 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0100.u1", 0x400000, 0x200000, CRC(e5c36c83) SHA1(50c6f66770e8faa3df349f7d68c407a7ad021716) )
+ROM_END
+#if 0
+ROM_START( kovassg ) // encrypted
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600.assg", 0x100000, 0x400000, CRC(b9885d5c) SHA1(be55e6b3639fbf30e4cbc1bb24e388fd2ad74382) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+#endif
+ROM_START( kovassg )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "assg_v315cn.rom", 0x100000, 0x400000, CRC(b9885d5c) SHA1(be55e6b3639fbf30e4cbc1bb24e388fd2ad74382) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, BAD_DUMP CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) ) // this is the kovsh ARM rom, we intercept and modify protection calls
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "lsqh2_t01.rom",0x180000, 0x800000, CRC(d498d97f) SHA1(97a7b6d2ed1170449e7c2899448af7cbbca4c94f) )
+ ROM_IGNORE( 0x800000 ) // second half identical
+
+ ROM_REGION( 0x3000000, "sprcol", 0 )
+ ROM_LOAD( "lsqh2_a01.rom", 0x0000000, 0x1000000, CRC(25ae3efd) SHA1(083d977602ddb5ad54fbdcba000cd4287de8d463) )
+ ROM_LOAD( "lsqh2_a23.rom", 0x1000000, 0x1000000, CRC(7a779112) SHA1(0a7d36b3715063d8eac629b95a9bb3ecd8e54fca) )
+ ROM_LOAD( "lsqh2_a45.rom", 0x2000000, 0x1000000, CRC(5d7de052) SHA1(7663b6cf09f65c4644661005a38f9aba84a32913) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "lsqh2_b01.rom", 0x0000000, 0x1000000, CRC(df7ca696) SHA1(7af3d27957a39de7e4873867c9972c05af7e7964) )
+
+ ROM_REGION( 0xc00000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "lsqh2_m01.rom",0x400000, 0x400000, CRC(01af1b65) SHA1(6cf523fa8f1e03f974771611bb9a4e08a4d4443f) )
+ ROM_IGNORE( 0x400000 ) // 400000-7fffff empty
+ ROM_CONTINUE( 0x800000, 0x400000 )
+ ROM_IGNORE( 0x400000 ) // c00000-ffffff empty
+ROM_END
+
+ROM_START( kovdf ) // encrypted
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600.df", 0x100000, 0x400000, CRC(a4c3cfed) SHA1(09c7b51652a90cce21ec3977e522e4894b6f0e14) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kov2h1 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "v204-32m.2h1", 0x100000, 0x400000, CRC(1f8cda84) SHA1(9220ef478edc2267c5d96083c2c4ecf465ab9685) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ // supplied rom freezes mame when attract mode starts, this one works
+ ROM_LOAD( "kov2p_igs027a_china.bin", 0x000000, 0x04000, CRC(19a0bd95) SHA1(83e9f22512832a51d41c588debe8be7adb3b1df7) )
+
+ ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */
+ ROM_LOAD( "v200-16.rom", 0x000000, 0x200000, CRC(16a0c11f) SHA1(ce449cef76ebd5657d49b57951e2eb0f132e203e) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t1200.rom", 0x180000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) )
+
+ ROM_REGION( 0x2800000, "sprcol", 0 )
+ ROM_LOAD( "a1200.rom", 0x0000000, 0x0800000, CRC(ceeb81d8) SHA1(5476729443fc1bc9593ae10fbf7cbc5d7290b017) )
+ ROM_LOAD( "a1201.rom", 0x0800000, 0x0800000, CRC(21063ca7) SHA1(cf561b44902425a920d5cbea5bf65dd9530b2289) )
+ ROM_LOAD( "a1202.rom", 0x1000000, 0x0800000, CRC(4bb92fae) SHA1(f0b6d72ed425de1c69dc8f8d5795ea760a4a59b0) )
+ ROM_LOAD( "a1203.rom", 0x1800000, 0x0800000, CRC(e73cb627) SHA1(4c6e48b845a5d1e8f9899010fbf273d54c2b8899) )
+ ROM_LOAD( "a1204.rom", 0x2000000, 0x0200000, CRC(14b4b5bb) SHA1(d7db5740eec971f2782fb2885ee3af8f2a796550) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b1200.rom", 0x0000000, 0x0800000, CRC(bed7d994) SHA1(019dfba8154256d64cd249eb0fa4c451edce34b8) )
+ ROM_LOAD( "b1201.rom", 0x0800000, 0x0800000, CRC(f251eb57) SHA1(56a5fc14ab7822f83379cecb26638e5bb266349a) )
+
+ ROM_REGION( 0x1000000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m1200.rom", 0x800000, 0x800000, CRC(b0d88720) SHA1(44ab137e3f8e15b7cb5697ffbd9b1143d8210c4f) )
+ROM_END
+
+ROM_START( kov2h2 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "v204-32m.2h2", 0x100000, 0x400000, CRC(7fcc1ab6) SHA1(47f9ab9f7f1b3d7941a70b383072d2d58e07637b) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov2p_igs027a_china.bin", 0x000000, 0x04000, CRC(19a0bd95) SHA1(83e9f22512832a51d41c588debe8be7adb3b1df7) )
+
+ ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */
+ ROM_LOAD( "v200-16.rom", 0x000000, 0x200000, CRC(16a0c11f) SHA1(ce449cef76ebd5657d49b57951e2eb0f132e203e) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t1200.rom", 0x180000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) )
+
+ ROM_REGION( 0x2800000, "sprcol", 0 )
+ ROM_LOAD( "a1200.rom", 0x0000000, 0x0800000, CRC(ceeb81d8) SHA1(5476729443fc1bc9593ae10fbf7cbc5d7290b017) )
+ ROM_LOAD( "a1201.rom", 0x0800000, 0x0800000, CRC(21063ca7) SHA1(cf561b44902425a920d5cbea5bf65dd9530b2289) )
+ ROM_LOAD( "a1202.rom", 0x1000000, 0x0800000, CRC(4bb92fae) SHA1(f0b6d72ed425de1c69dc8f8d5795ea760a4a59b0) )
+ ROM_LOAD( "a1203.rom", 0x1800000, 0x0800000, CRC(e73cb627) SHA1(4c6e48b845a5d1e8f9899010fbf273d54c2b8899) )
+ ROM_LOAD( "a1204.rom", 0x2000000, 0x0200000, CRC(14b4b5bb) SHA1(d7db5740eec971f2782fb2885ee3af8f2a796550) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b1200.rom", 0x0000000, 0x0800000, CRC(bed7d994) SHA1(019dfba8154256d64cd249eb0fa4c451edce34b8) )
+ ROM_LOAD( "b1201.rom", 0x0800000, 0x0800000, CRC(f251eb57) SHA1(56a5fc14ab7822f83379cecb26638e5bb266349a) )
+
+ ROM_REGION( 0x1000000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m1200.rom", 0x800000, 0x800000, CRC(b0d88720) SHA1(44ab137e3f8e15b7cb5697ffbd9b1143d8210c4f) )
+ROM_END
+
+ROM_START( kov2h3 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "v204-32m.2h3", 0x100000, 0x400000, CRC(baa217ad) SHA1(f781d96870b7ac7043049ab08174bf2cc48979f5) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov2p_igs027a_china.bin", 0x000000, 0x04000, CRC(19a0bd95) SHA1(83e9f22512832a51d41c588debe8be7adb3b1df7) )
+
+ ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */
+ ROM_LOAD( "v200-16.rom", 0x000000, 0x200000, CRC(16a0c11f) SHA1(ce449cef76ebd5657d49b57951e2eb0f132e203e) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t1200.rom", 0x180000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) )
+
+ ROM_REGION( 0x2800000, "sprcol", 0 )
+ ROM_LOAD( "a1200.rom", 0x0000000, 0x0800000, CRC(ceeb81d8) SHA1(5476729443fc1bc9593ae10fbf7cbc5d7290b017) )
+ ROM_LOAD( "a1201.rom", 0x0800000, 0x0800000, CRC(21063ca7) SHA1(cf561b44902425a920d5cbea5bf65dd9530b2289) )
+ ROM_LOAD( "a1202.rom", 0x1000000, 0x0800000, CRC(4bb92fae) SHA1(f0b6d72ed425de1c69dc8f8d5795ea760a4a59b0) )
+ ROM_LOAD( "a1203.rom", 0x1800000, 0x0800000, CRC(e73cb627) SHA1(4c6e48b845a5d1e8f9899010fbf273d54c2b8899) )
+ ROM_LOAD( "a1204.rom", 0x2000000, 0x0200000, CRC(14b4b5bb) SHA1(d7db5740eec971f2782fb2885ee3af8f2a796550) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b1200.rom", 0x0000000, 0x0800000, CRC(bed7d994) SHA1(019dfba8154256d64cd249eb0fa4c451edce34b8) )
+ ROM_LOAD( "b1201.rom", 0x0800000, 0x0800000, CRC(f251eb57) SHA1(56a5fc14ab7822f83379cecb26638e5bb266349a) )
+
+ ROM_REGION( 0x1000000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m1200.rom", 0x800000, 0x800000, CRC(b0d88720) SHA1(44ab137e3f8e15b7cb5697ffbd9b1143d8210c4f) )
+ROM_END
+
+ROM_START( kov2h4 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "v204-32m.2h4", 0x100000, 0x400000, CRC(ee8fb036) SHA1(bf1f3006a5e5026ff9bec8d8cb2e147ec2ee6716) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov2p_igs027a_china.bin", 0x000000, 0x04000, CRC(19a0bd95) SHA1(83e9f22512832a51d41c588debe8be7adb3b1df7) )
+
+ ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */
+ ROM_LOAD( "v200-16.rom", 0x000000, 0x200000, CRC(16a0c11f) SHA1(ce449cef76ebd5657d49b57951e2eb0f132e203e) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t1200.rom", 0x180000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) )
+
+ ROM_REGION( 0x2800000, "sprcol", 0 )
+ ROM_LOAD( "a1200.rom", 0x0000000, 0x0800000, CRC(ceeb81d8) SHA1(5476729443fc1bc9593ae10fbf7cbc5d7290b017) )
+ ROM_LOAD( "a1201.rom", 0x0800000, 0x0800000, CRC(21063ca7) SHA1(cf561b44902425a920d5cbea5bf65dd9530b2289) )
+ ROM_LOAD( "a1202.rom", 0x1000000, 0x0800000, CRC(4bb92fae) SHA1(f0b6d72ed425de1c69dc8f8d5795ea760a4a59b0) )
+ ROM_LOAD( "a1203.rom", 0x1800000, 0x0800000, CRC(e73cb627) SHA1(4c6e48b845a5d1e8f9899010fbf273d54c2b8899) )
+ ROM_LOAD( "a1204.rom", 0x2000000, 0x0200000, CRC(14b4b5bb) SHA1(d7db5740eec971f2782fb2885ee3af8f2a796550) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b1200.rom", 0x0000000, 0x0800000, CRC(bed7d994) SHA1(019dfba8154256d64cd249eb0fa4c451edce34b8) )
+ ROM_LOAD( "b1201.rom", 0x0800000, 0x0800000, CRC(f251eb57) SHA1(56a5fc14ab7822f83379cecb26638e5bb266349a) )
+
+ ROM_REGION( 0x1000000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m1200.rom", 0x800000, 0x800000, CRC(b0d88720) SHA1(44ab137e3f8e15b7cb5697ffbd9b1143d8210c4f) )
+ROM_END
+
+ROM_START( kov2h5 ) // was kov2psv
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "v204-32mv.rom", 0x100000, 0x400000, CRC(fa8d8e5b) SHA1(b7dc3853145bbc063a2953f5840eced1bbd9186e) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov2p_igs027a_china.bin", 0x000000, 0x04000, CRC(19a0bd95) SHA1(83e9f22512832a51d41c588debe8be7adb3b1df7) )
+
+ ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */
+ ROM_LOAD( "v200-16.rom", 0x000000, 0x200000, CRC(16a0c11f) SHA1(ce449cef76ebd5657d49b57951e2eb0f132e203e) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t1200.rom", 0x180000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) )
+
+ ROM_REGION( 0x2800000, "sprcol", 0 )
+ ROM_LOAD( "a1200.rom", 0x0000000, 0x0800000, CRC(ceeb81d8) SHA1(5476729443fc1bc9593ae10fbf7cbc5d7290b017) )
+ ROM_LOAD( "a1201.rom", 0x0800000, 0x0800000, CRC(21063ca7) SHA1(cf561b44902425a920d5cbea5bf65dd9530b2289) ) // either this or a1201.rom in kov2 is probably bad
+ ROM_LOAD( "a1202.rom", 0x1000000, 0x0800000, CRC(4bb92fae) SHA1(f0b6d72ed425de1c69dc8f8d5795ea760a4a59b0) )
+ ROM_LOAD( "a1203.rom", 0x1800000, 0x0800000, CRC(e73cb627) SHA1(4c6e48b845a5d1e8f9899010fbf273d54c2b8899) )
+ ROM_LOAD( "a1204.rom", 0x2000000, 0x0200000, CRC(14b4b5bb) SHA1(d7db5740eec971f2782fb2885ee3af8f2a796550) ) // either this or a1204.rom in kov2 is probably bad
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b1200.rom", 0x0000000, 0x0800000, CRC(bed7d994) SHA1(019dfba8154256d64cd249eb0fa4c451edce34b8) )
+ ROM_LOAD( "b1201.rom", 0x0800000, 0x0800000, CRC(f251eb57) SHA1(56a5fc14ab7822f83379cecb26638e5bb266349a) )
+
+ ROM_REGION( 0x1000000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m1200.rom", 0x800000, 0x800000, CRC(b0d88720) SHA1(44ab137e3f8e15b7cb5697ffbd9b1143d8210c4f) )
+ROM_END
+
+ROM_START( kovph1 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600.ph1", 0x100000, 0x400000, CRC(390ebbfc) SHA1(e051a7659a14316c35075cfd2a2f2baba7f18f1a) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovph2 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600116.119", 0x100000, 0x400000, CRC(30157417) SHA1(6152b82aea174c4201f07e8ebc09f1750140f1ff) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovph3 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600948.119", 0x100000, 0x400000, CRC(78aae711) SHA1(af4649201ca775db7c86e8027d9c2511f656fcb1) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovph4 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p060006.119", 0x100000, 0x258000, CRC(b071cf49) SHA1(203b946d30640247b8ea5e8a56eeb2a5cb465b62) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovph5 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600v93.119", 0x100000, 0x400000, CRC(1fa0e862) SHA1(beb83e1feb7c7bd133e6ad83eba50f381a25ab85) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovph6 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600v97.119", 0x100000, 0x400000, CRC(00905e8d) SHA1(3695326f46d03bc2dc46588ee563df9d1ca14b97) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovph7 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600lb.119", 0x100000, 0x400000, CRC(8da107cb) SHA1(f6bd684a0edd1f52110e6640bb4d824b789fbb4b) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600lb.rom", 0x180000, 0x800000, CRC(9920e650) SHA1(1d46233869d4e65fd8b84ec520fc7e7e3840c7aa) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600lb.rom", 0x0000000, 0x0800000, CRC(21e272ae) SHA1(71bee0d53a80c406c813e1c6ea99774df2e40f9c) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600lb.rom", 0x0000000, 0x0800000, CRC(b79355de) SHA1(4773a83fe646e27f6223897fea56eb438edc9809) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovph8 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0602lw.119", 0x100000, 0x400000, CRC(77cfdb2e) SHA1(bf39922b38e8a7db898bb6cdc15f6ca9c2dc14b7) )
+ ROM_LOAD16_WORD_SWAP( "p0601lw.119", 0x100000, 0x271000, CRC(04f76a4b) SHA1(7303956b589e175baa924077953f146b32868182) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600lb.rom", 0x180000, 0x800000, CRC(9920e650) SHA1(1d46233869d4e65fd8b84ec520fc7e7e3840c7aa) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600lw.rom", 0x0000000, 0x0800000, CRC(cca70135) SHA1(2d288df75907e50c7fc2beca5fb9fd895faece55) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602lw.rom", 0x1000000, 0x0800000, CRC(71c8a46c) SHA1(6391eb95e1f2933b0e02518232a4bbcf7c91b73f) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600lw.rom", 0x0000000, 0x0800000, CRC(a4155c55) SHA1(3146774f00dd4156b7423d9983dc6e678aca648d) )
+ ROM_LOAD( "b0601lw.rom", 0x0800000, 0x0400000, CRC(a261d5bd) SHA1(19204c5ab9861f8ccfb0b168e2bb4137f9d14dfe) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovph9 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600pj.119", 0x100000, 0x400000, CRC(2ca30916) SHA1(506a8b27cd9911348aa481d7276b2bda1b5758ef) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovph10 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600qy.120", 0x100000, 0x400000, CRC(399c8cbc) SHA1(c9702db79ea56e6727577a5a9b8f42b700c67a4f) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600lb.rom", 0x180000, 0x800000, CRC(9920e650) SHA1(1d46233869d4e65fd8b84ec520fc7e7e3840c7aa) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovph11 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600.119", 0x100000, 0x400000, CRC(e4b0875d) SHA1(e8382e131b0e431406dc2a05cc1ef128302d987c) )
+ // not working ROM_LOAD16_WORD_SWAP( "p0600s8.119", 0x100000, 0x2bc000, CRC(dc214ff5) SHA1(0a7448dbb18259e8e36e26b38b791bcd39e1d05e) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600s8.rom", 0x180000, 0x800000, CRC(e2528ac5) SHA1(f719c2fb80a9d645432bdba90ea15a2d59427cd2) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovph12 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600x.119", 0x100000, 0x400000, CRC(3d5ad108) SHA1(f7129f69f16d1589c2b03c246f16518836f09ad7) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovph13 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "kovph13.p0600.119", 0x100000, 0x400000, CRC(910edfdf) SHA1(bb222e503fed23bbc9b4d244ba02b1dd756006f9) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovph14 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "kovph14.p0600.119", 0x100000, 0x400000, CRC(b5d87e6e) SHA1(98d3bc1327f209b19c159eb54652cabf2b61b434) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovph15 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "kovph15.p0600.119", 0x100000, 0x400000, CRC(c9326627) SHA1(a81a46325473be6b138cf76ee2fa9db655a11313) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovph16 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600up.119", 0x100000, 0x400000, CRC(dfd96c08) SHA1(544463a734c50d45ce5549dba22aa7a3a3f75dc6) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600up.rom", 0x180000, 0x800000, CRC(9920e650) SHA1(1d46233869d4e65fd8b84ec520fc7e7e3840c7aa) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovph17 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600.ph17", 0x100000, 0x400000, CRC(19032b59) SHA1(6462cfa55c6cd6d3668010e11463f1fb6a9641c8) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.ph17", 0x180000, 0x800000, CRC(84567fa4) SHA1(932fdd8095b499acbac69035c12929a2dc9a5564) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.ph17", 0x400000, 0x400000, CRC(75eaf52b) SHA1(4981992441b35343c8bf23e730bba070ddef3350) )
+ROM_END
+
+ROM_START( kovph18 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600.ph18", 0x100000, 0x454f4e, CRC(5b2981c3) SHA1(8b64d86f76991960240126da13729b6cbc8f5513) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.ph18", 0x180000, 0x800000, CRC(d5b8327e) SHA1(5e00c0ff31e7258cc37e389c8bce0a1b8d39d49f) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x854f62, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.ph18", 0x400000, 0x454f62, CRC(24b06143) SHA1(3b712320ee9b4c8df2e0b2a3f05e3ccf11087c0a) )
+ROM_END
+
+ROM_START( kovph19 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600.ph19", 0x100000, 0x400000, CRC(e4ec6880) SHA1(025d1dbc0f067d10d7e10567b9f1bc1bdfac481a) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovph20 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600.ph20", 0x100000, 0x400000, CRC(5c9acb7a) SHA1(a25c1813efa7151536971fce39cfb2e1e71c7f91) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovph21 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600.ph21", 0x100000, 0x400000, CRC(5e3bdea4) SHA1(5b20a0b9aa02f285425ac65c8df3c1a47e4e61f5) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovph22 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600.ph22", 0x100000, 0x400000, CRC(06d1f4d5) SHA1(69e2a580c66c45b0221335cc5eeb7ac0bb6e18b7) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovph23 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600.ph23", 0x100000, 0x2bc000, CRC(dc214ff5) SHA1(0a7448dbb18259e8e36e26b38b791bcd39e1d05e) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.ph23", 0x180000, 0x800000, CRC(e2528ac5) SHA1(f719c2fb80a9d645432bdba90ea15a2d59427cd2) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovph24 ) // was kvplusjq
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600jq.119", 0x100000, 0x400000, CRC(a04866b9) SHA1(bae132ae93244e328a887728d4803c4593e8b01e) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovph25 ) // was kovplusq - crashes after 2nd attract cycle
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600.120", 0x100000, 0x400000, CRC(6392a1c3) SHA1(ccbe2e736897a1c969e80fbee93ffcc6defb025a) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovsh1 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hack.322", 0x100000, 0x400000, CRC(c48df7de) SHA1(d97e3603dcc09c5018f333f21d5069eef89289dd) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kovsharm.bin", 0x000000, 0x04000, CRC(9d8ecc0c) SHA1(51f288e8aa3dd1d4b7f24155fea9c6a7f4cd1144) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x400000, CRC(164b3c94) SHA1(f00ea66886ca6bff74bbeaa49e7f5c75c275d5d7) )
+
+ ROM_REGION( 0x1e00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+ ROM_LOAD( "a0604.rom", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+ ROM_LOAD( "b0602.rom", 0x0c00000, 0x0100000, CRC(9df77934) SHA1(99a3fe337c13702c9aa2373bcd1bb1befd0e2a13) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovsh2 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600re.322", 0x100000, 0x2a3000, CRC(4c38c199) SHA1(48876b6a9cd85d39c4b49b7a47e66d66f2bfd375) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1e00000, "sprcol", 0 )
+ ROM_LOAD( "a0600re.rom", 0x0000000, 0x0800000, CRC(2f5e017e) SHA1(83655f4c4d5f4155f0f8908870c0a97de9d52907) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+ ROM_LOAD( "a0604.rom", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600re.rom", 0x0000000, 0x0800000, CRC(c16d355b) SHA1(2f711376d489ba19cf466e3ee1d498c93313fcb5) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+ ROM_LOAD( "b0602.rom", 0x0c00000, 0x0100000, CRC(9df77934) SHA1(99a3fe337c13702c9aa2373bcd1bb1befd0e2a13) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovsh3 ) // same as kovsh103 except for b0602 rom
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600.103", 0x100000, 0x400000, CRC(f0b3da82) SHA1(4067beb69c049b51bce6154f4cf880600ca4de11) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1e00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+ ROM_LOAD( "a0604.rom", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+ ROM_LOAD( "b0602.sh3", 0x0c00000, 0x0400000, CRC(c3e0b454) SHA1(7aaa9b1abf9f1e7fe9acbba757ff7fbfa46557d3) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovsh4 ) // p rom encrypted
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600.sh4", 0x100000, 0x400000, CRC(739a92ca) SHA1(69387dfbc5015c3cb43283a189b49ae05f93f3fd) )//CRC(7c78e5f3) SHA1(9b1e4bd63fb1294ebeb539966842273c8dc7683b) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1e00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+ ROM_LOAD( "a0604.rom", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+ ROM_LOAD( "b0602.rom", 0x0c00000, 0x0100000, CRC(9df77934) SHA1(99a3fe337c13702c9aa2373bcd1bb1befd0e2a13) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovsh5 ) // p rom encrypted
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600.sh5", 0x100000, 0x400000, CRC(6c61f80f) SHA1(2797971c5a53c983284525603e2d41b2efd8f26d) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x2000000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.sh5", 0x1800000, 0x0800000, CRC(eadc7955) SHA1(7ae5acded2a5c47ccbeb1726f93f14afdd1ede86) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.sh5", 0x0800000, 0x0800000, CRC(bf30ea67) SHA1(9d8049307c4084765eb1a1adb0530811347f2695) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.sh5", 0x400000, 0x400000, CRC(eae5bf80) SHA1(5052849cb1ea573ee98188c594b4a449c195e441) )
+ROM_END
+
+ROM_START( kovsh6 ) // p rom encrypted
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600.sh6", 0x100000, 0x400000, CRC(8d02a952) SHA1(9af1d7193bba64631b8bd89f6de3a04c0bf7891f) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x2000000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.sh6", 0x1800000, 0x0800000, CRC(cbc57bc1) SHA1(ae1ef43a5caaa1e1a0be6ba7a6598eeaeb284a1e) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.sh6", 0x0800000, 0x0800000, CRC(1885039b) SHA1(23f832ee7493d11f78ea06954da748ff1fa3c595) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.sh5", 0x400000, 0x400000, CRC(eae5bf80) SHA1(5052849cb1ea573ee98188c594b4a449c195e441) )
+ROM_END
+
+ROM_START( kovsh7 ) // set has 3 p roms (all encrypted, and 2 b601 roms, and 1 a603 rom, not coded atm
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600h.sh7", 0x100000, 0x400000, CRC(7c05aa5c) SHA1(85aa625187f79a4a7401386ffb6ea3c2492e1be3) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, BAD_DUMP CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) ) // this is the kovsh ARM rom, we intercept and modify protection calls
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x2000000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0540.rom", 0x1800000, 0x0800000, CRC(4fd3413e) SHA1(5e8f3e421342bf558c77e59635f9b5d713e825c2) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0540.rom", 0x0800000, 0x0800000, CRC(60999757) SHA1(118cf058e67858958bcb931e14f5d160c7de87cc) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovsh8 ) // encrypted
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600.sh8", 0x100000, 0x400000, CRC(617e53fb) SHA1(5f8b05c11e08d1bef60cda563d15dc7537b5c8f0) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1e00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+ ROM_LOAD( "a0604.rom", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+ ROM_LOAD( "b0602.rom", 0x0c00000, 0x0100000, CRC(9df77934) SHA1(99a3fe337c13702c9aa2373bcd1bb1befd0e2a13) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovsh9 ) // encrypted
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600.sh9", 0x100000, 0x400000, CRC(12463832) SHA1(7ace58653ab4e9b49556e0969596aeceb2c6dfae) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1e00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+ ROM_LOAD( "a0604.rom", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+ ROM_LOAD( "b0602.rom", 0x0c00000, 0x0100000, CRC(9df77934) SHA1(99a3fe337c13702c9aa2373bcd1bb1befd0e2a13) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovsh10 ) // not set up yet, most likely to be encrypted
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600.322", 0x100000, 0x400000, CRC(7c78e5f3) SHA1(9b1e4bd63fb1294ebeb539966842273c8dc7683b) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1e00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+ ROM_LOAD( "a0604.rom", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+ ROM_LOAD( "b0602.rom", 0x0c00000, 0x0100000, CRC(9df77934) SHA1(99a3fe337c13702c9aa2373bcd1bb1befd0e2a13) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovsh11 ) // p rom same as kovsh8
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600.322", 0x100000, 0x400000, CRC(7c78e5f3) SHA1(9b1e4bd63fb1294ebeb539966842273c8dc7683b) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1e00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+ ROM_LOAD( "a0604.rom", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+ ROM_LOAD( "b0602.rom", 0x0c00000, 0x0100000, CRC(9df77934) SHA1(99a3fe337c13702c9aa2373bcd1bb1befd0e2a13) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovsh12 ) // encrypted
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600.sh12", 0x100000, 0x400000, CRC(97330917) SHA1(99bff51d6d007d8f3f45dd36f43e4690ed5f4946) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, CRC(7ece721c) SHA1(3aa11f11803643f9aa4bdafa35421626d066c4e9) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1e00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+ ROM_LOAD( "a0604.rom", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+ ROM_LOAD( "b0602.rom", 0x0c00000, 0x0100000, CRC(9df77934) SHA1(99a3fe337c13702c9aa2373bcd1bb1befd0e2a13) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovsh13 ) // encrypted
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600.sh13", 0x100000, 0x400000, CRC(d80651ec) SHA1(90ccb02b9e7c549ad0bd36379c72127cce4159cb) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1e00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+ ROM_LOAD( "a0604.rom", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+ ROM_LOAD( "b0602.rom", 0x0c00000, 0x0100000, CRC(9df77934) SHA1(99a3fe337c13702c9aa2373bcd1bb1befd0e2a13) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovsh14 ) // encrypted
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600.sh14", 0x100000, 0x400000, CRC(bba16fe0) SHA1(ce9c42cde5d66913f73a34b66b9615a497103d3b) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1e00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+ ROM_LOAD( "a0604.rom", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+ ROM_LOAD( "b0602.rom", 0x0c00000, 0x0100000, CRC(9df77934) SHA1(99a3fe337c13702c9aa2373bcd1bb1befd0e2a13) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovsh15 ) // encrypted
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600.sh15", 0x100000, 0x400000, CRC(54f6c5d9) SHA1(9abf1fed12261fdddd2e40d30d6ce536e91c1c55) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1e00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+ ROM_LOAD( "a0604.rom", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+ ROM_LOAD( "b0602.rom", 0x0c00000, 0x0100000, CRC(9df77934) SHA1(99a3fe337c13702c9aa2373bcd1bb1befd0e2a13) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovsh16 ) // encrypted
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600.sh15", 0x100000, 0x400000, CRC(54f6c5d9) SHA1(9abf1fed12261fdddd2e40d30d6ce536e91c1c55) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1e00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+ ROM_LOAD( "a0604.rom", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+ ROM_LOAD( "b0602.rom", 0x0c00000, 0x0100000, CRC(9df77934) SHA1(99a3fe337c13702c9aa2373bcd1bb1befd0e2a13) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovsh17 ) // encrypted - was kovshq
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600q.322", 0x100000, 0x400000, CRC(f9e0bdc3) SHA1(fc7080d1255cae6b3a241fbbea24355530de0a8f) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1e00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+ ROM_LOAD( "a0604.rom", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+ ROM_LOAD( "b0602.rom", 0x0c00000, 0x0100000, CRC(9df77934) SHA1(99a3fe337c13702c9aa2373bcd1bb1befd0e2a13) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovsh18 ) // Gem Fighter hack
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600.sh18", 0x100000, 0x400000, CRC(24f9d4dc) SHA1(5e32c9faab39a735fa9c26aac09a7e87d84c252b) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1e00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.sh18", 0x0000000, 0x0800000, CRC(7bd1a62d) SHA1(8dee71a336a21b8ba967066477f0285e310686e4) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+ ROM_LOAD( "a0604.rom", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.sh18", 0x0000000, 0x0800000, CRC(52f5ba74) SHA1(05abef7cdfc9632601628bc2e8df142fc348b914) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+ ROM_LOAD( "b0602.rom", 0x0c00000, 0x0100000, CRC(9df77934) SHA1(99a3fe337c13702c9aa2373bcd1bb1befd0e2a13) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovsh19 ) // Rugal 98 hack
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600.sh19", 0x100000, 0x400000, CRC(ed4a87a8) SHA1(70845ccd41eee2b31ffb93cd76fc53e2f6e4d5a8) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1e00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.sh19", 0x0000000, 0x0800000, CRC(ba94a9ac) SHA1(6bd779196cbcc89864b7f5aae6d363eacd93ed68) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+ ROM_LOAD( "a0604.rom", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.sh19", 0x0000000, 0x0800000, CRC(3d90f533) SHA1(7026a2193ed16ec3097f024326fdae08bc639f50) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+ ROM_LOAD( "b0602.rom", 0x0c00000, 0x0100000, CRC(9df77934) SHA1(99a3fe337c13702c9aa2373bcd1bb1befd0e2a13) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.sh19", 0x400000, 0x400000, CRC(4a6053b0) SHA1(64b37dc52f7924a727f549a4c2c2682851f9405e) )
+ROM_END
+
+// same problem as MAME kovsgqyza: it crashes after the 2nd attract cycle
+ROM_START( kovsgqyzc )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "pgm_sgqyzc.rom", 0x100000, 0x400000, CRC(09774a3e) SHA1(f5131d07abb048cd3e3549bf0223c9cb485ce7f6) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kovsgqyzc_igs027a.bin", 0x000000, 0x04000, NO_DUMP ) // bootleg is probably a different device
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x2000000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "qyza0603.rom", 0x1800000, 0x0800000, CRC(c8b92220) SHA1(4f9c43970d92ac8a8f1563021022797ae8e32012) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "qyzb0601.rom", 0x0800000, 0x0800000, CRC(64f55882) SHA1(ab9ac1396587c3d78d06f6ec83cab61d6a9faacd) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+
+
+
+GAME( 2002, ketarrb, ket, pgm_arm_type1_cave, pgm, pgm_arm_type1_state, ket, ROT270, "trap15", "Ketsui: Kizuna Jigoku Tachi (2012/04/17 BACK. VER)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, orlegendh, orlegend, pgm_asic3, orlegend, pgm_asic3_state, orlegend, ROT0, "Hack", "Oriental Legend Plus / Xi You Shi E Zhuan Plus (ver. 2.0 by Enbrow)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1997, orlegendcs, orlegend, pgm_asic3, orlegend, pgm_asic3_state, orlegend, ROT0, "Kryso", "Oriental Legend / Xi Yo Gi Shi Re Zuang (Hack)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 2006, pgemeni, pgm, pgm_asic3, pgm, pgm_asic3_state, orlegend, ROT0, "Blastar", "P-Gemeni", MACHINE_SUPPORTS_SAVE ) // has no sound
+GAME( 1997, pgmdemo, pgm, pgm_asic3, pgm, pgm_asic3_state, orlegend, ROT0, "Charles Doty", "Demo - PGM", MACHINE_SUPPORTS_SAVE ) // has no sound
+GAME( 2006, pgmfrog, pgm, pgm_asic3, pgm, pgm_asic3_state, orlegend, ROT0, "Rastersoft", "Frog Feast (PGM)", MACHINE_SUPPORTS_SAVE )
+//GAME( 1999, kovassg, kov, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour (hack set assg)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+//GAME( 2008, kovassg, kovshp, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovassg, ROT0, "bootleg", "Knights of Valour: Aoshi Sanguo / Sangoku Senki: Aoshi Sanguo (ver. 315CN)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) /* need internal rom of IGS027A */
+GAME( 1999, kovdf, kov, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour (hack set df)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovsgqyzc, 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 4)", MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kov2h1, kov2p, pgm_arm_type2, kov2, pgm_arm_type2_state, kov2p, ROT0, "Hack", "Knights of Valour 2 Plus (hack set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kov2h2, kov2p, pgm_arm_type2, kov2, pgm_arm_type2_state, kov2p, ROT0, "Hack", "Knights of Valour 2 Plus (hack set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kov2h3, kov2p, pgm_arm_type2, kov2, pgm_arm_type2_state, kov2p, ROT0, "Hack", "Knights of Valour 2 Plus (hack set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kov2h4, kov2p, pgm_arm_type2, kov2, pgm_arm_type2_state, kov2p, ROT0, "Hack", "Knights of Valour 2 Plus (hack set 4)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kov2h5, kov2p, pgm_arm_type2, kov2, pgm_arm_type2_state, kov2p, ROT0, "IGS", "Knights of Valour 2 Plus (ver M204XX)(hack set 5)", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, kovph1, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus 2007 (hack set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovph2, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (hack set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovph3, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus A948 (hack set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 2006, kovph4, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "XM", "Knights of Valour Plus 2006 (hack set 4)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovph5, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (hack set 5)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovph6, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (hack set 6)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovph7, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (hack set 7)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovph8, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Fangzhoo", "Knights of Valour Plus HACK (hack set 8)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovph9, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (hack set 9)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovph10, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (hack set 10)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovph11, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (hack set 11)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovph12, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (hack set 12)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovph13, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (hack set 13)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovph14, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (hack set 14)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) // crashes in attract mode, but plays ok
+GAME( 1999, kovph15, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (hack set 15)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovph16, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (hack set 16)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 2012, kovph17, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hui Yi", "Knights of Valour Plus 2012 (hack set 17)", MACHINE_SUPPORTS_SAVE )
+GAME( 2012, kovph18, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hui Yi", "Knights of Valour Plus 2012 (hack set 18)", MACHINE_SUPPORTS_SAVE )
+GAME( 2012, kovph19, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (hack set 19)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 2012, kovph20, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (hack set 20)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 2012, kovph21, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (hack set 21)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovph22, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (hack set 22)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovph23, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (hack set 23)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovph24, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Huangxu", "Knights of Valour Plus / Sangoku Senki Plus (hack set 24)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovph25, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "IGS", "Knights of Valour Plus / Sangoku Senki Plus (ver. 120)(hack set 25)", MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovsh1, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (hack set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovsh2, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (hack set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovsh3, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (hack set 3)", MACHINE_SUPPORTS_SAVE )
+// Note: kovsh4-17 all have encrypted p-rom, and most of the other altered roms haven't been coded in yet
+GAME( 1999, kovsh4, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (hack set 4)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovsh5, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (hack set 5)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovsh6, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (hack set 6)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovsh7, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (hack set 7)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovsh8, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (hack set 8)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovsh9, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (hack set 9)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovsh10, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (hack set 10)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovsh11, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (hack set 11)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovsh12, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (hack set 12)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovsh13, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (hack set 13)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovsh14, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (hack set 14)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovsh15, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (hack set 15)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovsh16, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (hack set 16)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovsh17, kovsh, pgm_arm_type1_sim, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Sertsuna", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (ver. 320)(hack set 17)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovsh18, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (v104, Gem Fighters, hack set 18)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovsh19, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (v104, Rugal 98, hack set 19)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+
+
+#if 0
+// unused code from mame plus
+
+void pgm_arm_type1_state::kovplus_fix_patch()
+{
+ UINT8 *mem8 = (UINT8 *)(memregion("maincpu")->base());
+
+ mem8[0x1085D4] = 0x1B;
+ mem8[0x1085D5] = 0x3;
+ mem8[0x1085D6] = 0x1B;
+ mem8[0x1085D7] = 0xA4;
+ mem8[0x10EBEE] = 0x10;
+ mem8[0x10EBEF] = 0x15;
+ mem8[0x10EBF0] = 0x1A;
+ mem8[0x10EBF1] = 0x11;
+ mem8[0x11D3E4] = 0xC9;
+ mem8[0x11D3E5] = 0xF8;
+ mem8[0x11D3E6] = 0xB4;
+ mem8[0x11D3E7] = 0x9A;
+ mem8[0x11D492] = 0xA;
+ mem8[0x11D493] = 0x5A;
+ mem8[0x11D494] = 0xA;
+ mem8[0x11D495] = 0x6D;
+ mem8[0x11DAC6] = 0x18;
+ mem8[0x11DAC7] = 0x3B;
+ mem8[0x11DAC8] = 0xD1;
+ mem8[0x11DAC9] = 0xFE;
+ mem8[0x11DACA] = 0xE9;
+ mem8[0x11DACB] = 0xE;
+ mem8[0x11DACC] = 0x90;
+ mem8[0x11DACD] = 0x6B;
+ mem8[0x11DACE] = 0x90;
+ mem8[0x11DACF] = 0xF;
+ mem8[0x11DAD1] = 0x41;
+ mem8[0x11DE56] = 0x12;
+ mem8[0x11DE57] = 0x7F;
+ mem8[0x11DE58] = 0xD3;
+ mem8[0x11DE59] = 0x1C;
+ mem8[0x11DE5A] = 0xEB;
+ mem8[0x11DE5B] = 0xEA;
+ mem8[0x11DE5D] = 0x86;
+ mem8[0x11DE60] = 0x10;
+ mem8[0x11DE61] = 0x7F;
+ mem8[0x11DE62] = 0xD1;
+ mem8[0x11DE63] = 0x82;
+ mem8[0x11DE64] = 0xE9;
+ mem8[0x11DE65] = 0xB6;
+ mem8[0x11DF72] = 0x12;
+ mem8[0x11DF73] = 0x53;
+ mem8[0x11DF74] = 0xD3;
+ mem8[0x11DF75] = 0x84;
+ mem8[0x11DF76] = 0xEB;
+ mem8[0x11DF77] = 0xB8;
+ mem8[0x11DF79] = 0x2A;
+ mem8[0x11DF7C] = 0x12;
+ mem8[0x11DF7D] = 0x23;
+ mem8[0x11DF7E] = 0xD3;
+ mem8[0x11DF7F] = 0xDC;
+ mem8[0x11DF80] = 0x69;
+ mem8[0x11DF81] = 0x7C;
+ mem8[0x12E7A4] = 0x95;
+ mem8[0x12E7A5] = 0xCA;
+ mem8[0x12E7A6] = 0x54;
+ mem8[0x12E7A8] = 0x6C;
+ mem8[0x12E7A9] = 0x5;
+ mem8[0x13B25E] = 0xBA;
+ mem8[0x13B25F] = 0xBF;
+ mem8[0x1463A0] = 0x95;
+ mem8[0x1463A1] = 0x87;
+ mem8[0x1463A2] = 0x7F;
+ mem8[0x1463A3] = 0x95;
+ mem8[0x1463A4] = 0xB4;
+ mem8[0x1463A5] = 0x31;
+ mem8[0x1463A6] = 0x15;
+ mem8[0x1463A8] = 0x1D;
+ mem8[0x162408] = 0xB9;
+ mem8[0x162409] = 0x63;
+ mem8[0x1655E0] = 0x54;
+ mem8[0x1655E2] = 0x68;
+ mem8[0x1655E4] = 0x4D;
+ mem8[0x1655E5] = 0xBA;
+ mem8[0x1655E6] = 0xD1;
+ mem8[0x1655E7] = 0x23;
+ mem8[0x1655E8] = 0xE9;
+ mem8[0x1655EA] = 0x28;
+ mem8[0x1655EB] = 0x6A;
+ mem8[0x183476] = 0xDC;
+ mem8[0x183477] = 0xE7;
+ mem8[0x183DB6] = 0x3D;
+ mem8[0x32A00A] = 0x21;
+ mem8[0x32A00C] = 0x46;
+ mem8[0x32A00D] = 0x93;
+ mem8[0x32A01E] = 0x8B;
+ mem8[0x32A020] = 0x7E;
+ mem8[0x32A021] = 0xD0;
+ mem8[0x381000] = 0x50;
+ mem8[0x381001] = 0x45;
+ mem8[0x381002] = 0xE9;
+ mem8[0x381003] = 0x1C;
+ mem8[0x381004] = 0x87;
+ mem8[0x381005] = 0x3F;
+ mem8[0x381006] = 0x50;
+ mem8[0x381007] = 0xE;
+ mem8[0x381008] = 0x43;
+ mem8[0x381009] = 0x62;
+ mem8[0x38100A] = 0xC9;
+ mem8[0x38100B] = 0x59;
+ mem8[0x38100C] = 0xA7;
+ mem8[0x38100D] = 0x4B;
+ mem8[0x38100E] = 0xB0;
+ mem8[0x38100F] = 0x4;
+ mem8[0x381010] = 0x78;
+ mem8[0x381011] = 0x67;
+ mem8[0x381012] = 0xB9;
+ mem8[0x381013] = 0x97;
+ mem8[0x382000] = 0x50;
+ mem8[0x382001] = 0x1B;
+ mem8[0x382002] = 0x63;
+ mem8[0x382003] = 0x1C;
+ mem8[0x382004] = 0xE9;
+ mem8[0x382005] = 0xE3;
+ mem8[0x382006] = 0x87;
+ mem8[0x382007] = 0xDE;
+ mem8[0x382008] = 0xB0;
+ mem8[0x382009] = 0x2C;
+ mem8[0x38200A] = 0x58;
+ mem8[0x38200B] = 0x59;
+ mem8[0x38200C] = 0x15;
+ mem8[0x38200D] = 0x49;
+ mem8[0x383000] = 0x50;
+ mem8[0x383001] = 0x1B;
+ mem8[0x383002] = 0x60;
+ mem8[0x383003] = 0x1C;
+ mem8[0x383004] = 0xE9;
+ mem8[0x383005] = 0xE3;
+ mem8[0x383006] = 0x87;
+ mem8[0x383007] = 0xDE;
+ mem8[0x383008] = 0xB0;
+ mem8[0x383009] = 0x2C;
+ mem8[0x38300A] = 0x58;
+ mem8[0x38300B] = 0x59;
+ mem8[0x38300C] = 0x2F;
+ mem8[0x38300D] = 0x49;
+ mem8[0x384000] = 0x50;
+ mem8[0x384001] = 0x1B;
+ mem8[0x384002] = 0x63;
+ mem8[0x384003] = 0x1C;
+ mem8[0x384004] = 0xE9;
+ mem8[0x384005] = 0xE3;
+ mem8[0x384006] = 0x87;
+ mem8[0x384007] = 0xDE;
+ mem8[0x384008] = 0x90;
+ mem8[0x384009] = 0x2C;
+ mem8[0x38400A] = 0x78;
+ mem8[0x38400B] = 0x59;
+ mem8[0x38400C] = 0x11;
+ mem8[0x38400D] = 0x48;
+ mem8[0x385000] = 0x50;
+ mem8[0x385001] = 0x1B;
+ mem8[0x385002] = 0x60;
+ mem8[0x385003] = 0x1C;
+ mem8[0x385004] = 0xE9;
+ mem8[0x385005] = 0xE3;
+ mem8[0x385006] = 0x87;
+ mem8[0x385007] = 0xDE;
+ mem8[0x385008] = 0x90;
+ mem8[0x385009] = 0x2C;
+ mem8[0x38500A] = 0x78;
+ mem8[0x38500B] = 0x59;
+ mem8[0x38500C] = 0xEB;
+ mem8[0x38500D] = 0x48;
+ mem8[0x386000] = 0x5;
+ mem8[0x386001] = 0x5D;
+ mem8[0x386002] = 0x71;
+ mem8[0x386003] = 0x1C;
+ mem8[0x386004] = 0x6D;
+ mem8[0x386005] = 0x84;
+ mem8[0x386006] = 0x5;
+ mem8[0x386007] = 0x40;
+ mem8[0x386008] = 0x71;
+ mem8[0x386009] = 0x62;
+ mem8[0x38600A] = 0xC5;
+ mem8[0x38600B] = 0x51;
+ mem8[0x38600C] = 0x6C;
+ mem8[0x38600D] = 0x97;
+ mem8[0x38600E] = 0x79;
+ mem8[0x38600F] = 0x4B;
+ mem8[0x386010] = 0x90;
+ mem8[0x386011] = 0x29;
+ mem8[0x386012] = 0x7B;
+ mem8[0x386013] = 0x4D;
+ mem8[0x386014] = 0xC3;
+ mem8[0x386015] = 0xF8;
+}
+
+void pgm_arm_type1_state::kovboot_fix_patch()
+{
+ UINT8 *mem8 = (UINT8 *)(memregion("maincpu")->base());
+
+ mem8[0x1085D4] = 0x71;
+ mem8[0x1085D5] = 0x4E;
+ mem8[0x1085D6] = 0x71;
+ mem8[0x1085D7] = 0x4E;
+ mem8[0x11D3E4] = 0x29;
+ mem8[0x11D3E5] = 0x42;
+ mem8[0x11D3E6] = 0x54;
+ mem8[0x11D3E7] = 0x29;
+ mem8[0x11D492] = 0x71;
+ mem8[0x11D493] = 0x4E;
+ mem8[0x11D494] = 0x71;
+ mem8[0x11D495] = 0x4E;
+ mem8[0x11DAC6] = 0xF9;
+ mem8[0x11DAC7] = 0x4E;
+ mem8[0x11DAC8] = 0x38;
+ mem8[0x11DAC9] = 0x0;
+ mem8[0x11DACA] = 0x0;
+ mem8[0x11DACB] = 0xF;
+ mem8[0x11DACC] = 0x71;
+ mem8[0x11DACD] = 0x4E;
+ mem8[0x11DACE] = 0x71;
+ mem8[0x11DACF] = 0x4E;
+ mem8[0x11DAD1] = 0x65;
+ mem8[0x11DE56] = 0xF9;
+ mem8[0x11DE57] = 0x4E;
+ mem8[0x11DE58] = 0x38;
+ mem8[0x11DE59] = 0x0;
+ mem8[0x11DE5A] = 0x20;
+ mem8[0x11DE5B] = 0xF;
+ mem8[0x11DE5D] = 0x64;
+ mem8[0x11DE60] = 0xF9;
+ mem8[0x11DE61] = 0x4E;
+ mem8[0x11DE62] = 0x38;
+ mem8[0x11DE63] = 0x0;
+ mem8[0x11DE64] = 0x30;
+ mem8[0x11DE65] = 0x0F;
+ mem8[0x11DF72] = 0xF9;
+ mem8[0x11DF73] = 0x4E;
+ mem8[0x11DF74] = 0x38;
+ mem8[0x11DF75] = 0x0;
+ mem8[0x11DF76] = 0x40;
+ mem8[0x11DF77] = 0x0F;
+ mem8[0x11DF79] = 0x64;
+ mem8[0x11DF7C] = 0xF9;
+ mem8[0x11DF7D] = 0x4E;
+ mem8[0x11DF7E] = 0x38;
+ mem8[0x11DF7F] = 0x0;
+ mem8[0x11DF80] = 0x50;
+ mem8[0x11DF81] = 0x0F;
+ mem8[0x12E7A4] = 0xF9;
+ mem8[0x12E7A5] = 0x4E;
+ mem8[0x12E7A6] = 0x38;
+ mem8[0x12E7A8] = 0x60;
+ mem8[0x12E7A9] = 0x0F;
+ mem8[0x13B25E] = 0x71;
+ mem8[0x13B25F] = 0x4E;
+ mem8[0x1463A0] = 0xF9;
+ mem8[0x1463A1] = 0x4E;
+ mem8[0x1463A2] = 0x13;
+ mem8[0x1463A3] = 0x0;
+ mem8[0x1463A4] = 0xD0;
+ mem8[0x1463A5] = 0xB5;
+ mem8[0x1463A6] = 0x71;
+ mem8[0x1463A8] = 0x71;
+ mem8[0x162408] = 0xD0;
+ mem8[0x162409] = 0x1;
+ mem8[0x1655E0] = 0x3C;
+ mem8[0x1655E2] = 0x0;
+ mem8[0x1655E4] = 0x25;
+ mem8[0x1655E5] = 0x0;
+ mem8[0x1655E6] = 0xB9;
+ mem8[0x1655E7] = 0x90;
+ mem8[0x1655E8] = 0x81;
+ mem8[0x1655EA] = 0x40;
+ mem8[0x1655EB] = 0xB2;
+ mem8[0x183476] = 0xB5;
+ mem8[0x183477] = 0x1;
+ mem8[0x183DB6] = 0x50;
+ mem8[0x32A00A] = 0x68;
+ mem8[0x32A00C] = 0xF;
+ mem8[0x32A00D] = 0x4;
+ mem8[0x32A01E] = 0xC0;
+ mem8[0x32A020] = 0x13;
+ mem8[0x32A021] = 0x2;
+ mem8[0x380F00] = 0x39;
+ mem8[0x380F01] = 0x52;
+ mem8[0x380F02] = 0x80;
+ mem8[0x380F03] = 0x0;
+ mem8[0x380F04] = 0xEE;
+ mem8[0x380F05] = 0xDC;
+ mem8[0x380F06] = 0x39;
+ mem8[0x380F07] = 0xC;
+ mem8[0x380F08] = 0xA;
+ mem8[0x380F09] = 0x0;
+ mem8[0x380F0A] = 0x80;
+ mem8[0x380F0B] = 0x0;
+ mem8[0x380F0C] = 0xEE;
+ mem8[0x380F0D] = 0xDC;
+ mem8[0x380F0E] = 0xF9;
+ mem8[0x380F0F] = 0x4E;
+ mem8[0x380F10] = 0x11;
+ mem8[0x380F11] = 0x0;
+ mem8[0x380F12] = 0xD0;
+ mem8[0x380F13] = 0xDA;
+ mem8[0x380F20] = 0x39;
+ mem8[0x380F21] = 0xC;
+ mem8[0x380F22] = 0xA;
+ mem8[0x380F23] = 0x0;
+ mem8[0x380F24] = 0x80;
+ mem8[0x380F25] = 0x0;
+ mem8[0x380F26] = 0xEE;
+ mem8[0x380F27] = 0xDC;
+ mem8[0x380F28] = 0xF9;
+ mem8[0x380F29] = 0x4E;
+ mem8[0x380F2A] = 0x11;
+ mem8[0x380F2B] = 0x0;
+ mem8[0x380F2C] = 0x5C;
+ mem8[0x380F2D] = 0xDE;
+ mem8[0x380F30] = 0x39;
+ mem8[0x380F31] = 0xC;
+ mem8[0x380F32] = 0x9;
+ mem8[0x380F33] = 0x0;
+ mem8[0x380F34] = 0x80;
+ mem8[0x380F35] = 0x0;
+ mem8[0x380F36] = 0xEE;
+ mem8[0x380F37] = 0xDC;
+ mem8[0x380F38] = 0xF9;
+ mem8[0x380F39] = 0x4E;
+ mem8[0x380F3A] = 0x11;
+ mem8[0x380F3B] = 0x0;
+ mem8[0x380F3C] = 0x66;
+ mem8[0x380F3D] = 0xDE;
+ mem8[0x380F40] = 0x39;
+ mem8[0x380F41] = 0xC;
+ mem8[0x380F42] = 0xA;
+ mem8[0x380F43] = 0x0;
+ mem8[0x380F44] = 0x80;
+ mem8[0x380F45] = 0x0;
+ mem8[0x380F46] = 0xEE;
+ mem8[0x380F47] = 0xDC;
+ mem8[0x380F48] = 0xF9;
+ mem8[0x380F49] = 0x4E;
+ mem8[0x380F4A] = 0x11;
+ mem8[0x380F4B] = 0x0;
+ mem8[0x380F4C] = 0x78;
+ mem8[0x380F4D] = 0xDF;
+ mem8[0x380F50] = 0x39;
+ mem8[0x380F51] = 0xC;
+ mem8[0x380F52] = 0x9;
+ mem8[0x380F53] = 0x0;
+ mem8[0x380F54] = 0x80;
+ mem8[0x380F55] = 0x0;
+ mem8[0x380F56] = 0xEE;
+ mem8[0x380F57] = 0xDC;
+ mem8[0x380F58] = 0xF9;
+ mem8[0x380F59] = 0x4E;
+ mem8[0x380F5A] = 0x11;
+ mem8[0x380F5B] = 0x0;
+ mem8[0x380F5C] = 0x82;
+ mem8[0x380F5D] = 0xDF;
+ mem8[0x380F60] = 0x6C;
+ mem8[0x380F61] = 0x4A;
+ mem8[0x380F62] = 0x18;
+ mem8[0x380F63] = 0x0;
+ mem8[0x380F64] = 0x4;
+ mem8[0x380F65] = 0x67;
+ mem8[0x380F66] = 0x6C;
+ mem8[0x380F67] = 0x42;
+ mem8[0x380F68] = 0x18;
+ mem8[0x380F69] = 0x0;
+ mem8[0x380F6A] = 0xAC;
+ mem8[0x380F6B] = 0x8;
+ mem8[0x380F6C] = 0x5;
+ mem8[0x380F6D] = 0x0;
+ mem8[0x380F6E] = 0x10;
+ mem8[0x380F6F] = 0x1;
+ mem8[0x380F70] = 0xF9;
+ mem8[0x380F71] = 0x4E;
+ mem8[0x380F72] = 0x12;
+ mem8[0x380F73] = 0x0;
+ mem8[0x380F74] = 0xAA;
+ mem8[0x380F75] = 0xE7;
+}
+
+void pgm_arm_type1_state::kovshp_fix_patch()
+{
+ UINT8 *mem8 = (UINT8 *)(memregion("prot")->base());
+
+ mem8[0x2892] = 0x1;
+ mem8[0x2893] = 0x1;
+ mem8[0x289F] = 0x1;
+ mem8[0x28A5] = 0x1;
+ mem8[0x28A8] = 0x1;
+ mem8[0x28A9] = 0x1;
+ mem8[0x2BF3] = 0x48;
+ mem8[0x2BF5] = 0x80;
+ mem8[0x2C92] = 0xF;
+ mem8[0x2C93] = 0x40;
+ mem8[0x2CE1] = 0x6C;
+ mem8[0x2CE2] = 0x48;
+}
+
+DRIVER_INIT_MEMBER(pgm_arm_type1_state,kovshp)
+{
+ pgm_basic_init();
+ kovshp_fix_patch(); // extra line here
+ pgm_kovshp_decrypt(machine());
+ pgm_arm7_type1_latch_init();
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x4f0008, 0x4f0009, read16_delegate(FUNC(pgm_arm_type1_state::kovsh_fake_region_r),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x500000, 0x500005, write16_delegate(FUNC(pgm_arm_type1_state::kovshp_asic27a_write_word),this));
+}
+
+DRIVER_INIT_MEMBER(pgm_arm_type1_state,kovassga)
+{
+ pgm_basic_init();
+ kovshp_fix_patch(); // extra line here
+// pgm_kovshp_decrypt(machine());
+ pgm_arm7_type1_latch_init();
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x4f0008, 0x4f0009, read16_delegate(FUNC(pgm_arm_type1_state::kovsh_fake_region_r),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x500000, 0x500005, write16_delegate(FUNC(pgm_arm_type1_state::kovshp_asic27a_write_word),this));
+}
+
+void pgm_arm_type1_state::pgm_decode_kovassg_program()
+{
+ int i;
+ UINT16 *src = (UINT16 *)(memregion("maincpu")->base() + 0x100000);
+ std::vector<UINT16> dst(0x400000);
+
+ for (i = 0; i < 0x400000 / 2; i++)
+ {
+ int j = (i & ~0xffff) | (BITSWAP16(i, 15, 14, 13, 12, 11, 10, 7, 3, 1, 9, 4, 8, 6, 0, 2, 5) ^ 0x019c);
+
+ dst[j] = BITSWAP16(src[j], 13, 9, 10, 11, 2, 0, 12 ,5, 4, 1, 14, 8, 15, 6, 3, 7) ^ 0x9d05;
+ }
+
+ memcpy( src, &dst[0], 0x400000 );
+}
+
+DRIVER_INIT_MEMBER(pgm_arm_type1_state,kovassg)
+{
+ pgm_decode_kovassg_program();
+ pgm_decode_kovlsqh2_tiles();
+
+ pgm_decode_kovlsqh2_sprites(memregion("sprcol")->base() + 0x0000000);
+ pgm_decode_kovlsqh2_sprites(memregion("sprcol")->base() + 0x0800000);
+ pgm_decode_kovlsqh2_sprites(memregion("sprcol")->base() + 0x1000000);
+ pgm_decode_kovlsqh2_sprites(memregion("sprcol")->base() + 0x1800000);
+ pgm_decode_kovlsqh2_sprites(memregion("sprcol")->base() + 0x2000000);
+ pgm_decode_kovlsqh2_sprites(memregion("sprcol")->base() + 0x2800000);
+ pgm_decode_kovlsqh2_sprites(memregion("sprmask")->base() + 0x0000000);
+ pgm_decode_kovlsqh2_sprites(memregion("sprmask")->base() + 0x0800000);
+
+ pgm_decode_kovlsqh2_samples();
+ pgm_basic_init();
+ pgm_arm7_type1_latch_init();
+ /* we only have a china internal ROM dumped for now.. allow region to be changed for debugging (to ensure all alt titles / regions can be seen) */
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x4f0008, 0x4f0009, read16_delegate(FUNC(pgm_arm_type1_state::kovsh_fake_region_r),this));
+}
+
+DRIVER_INIT_MEMBER(pgm_arm_type1_state,kovplus)
+{
+ pgm_basic_init();
+ kovplus_fix_patch(); // extra line here
+ pgm_kov_decrypt(machine());
+ pgm_arm7_type1_latch_init();
+ m_curslots = 0;
+ m_kov_c0_value = 0;
+ m_kov_cb_value = 0;
+ m_kov_fe_value = 0;
+ arm_sim_handler = &pgm_arm_type1_state::command_handler_kov;
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x500000, 0x500005, read16_delegate(FUNC(pgm_arm_type1_state::pgm_arm7_type1_sim_r),this), write16_delegate(FUNC(pgm_arm_type1_state::pgm_arm7_type1_sim_w),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x4f0000, 0x4f003f, read16_delegate(FUNC(pgm_arm_type1_state::pgm_arm7_type1_sim_protram_r),this));
+}
+
+DRIVER_INIT_MEMBER(pgm_arm_type1_state,kovboot)
+{
+ pgm_basic_init();
+// pgm_kov_decrypt(machine());
+ kovboot_fix_patch(); // extra line here
+ pgm_arm7_type1_latch_init();
+ m_curslots = 0;
+ m_kov_c0_value = 0;
+ m_kov_cb_value = 0;
+ m_kov_fe_value = 0;
+ arm_sim_handler = &pgm_arm_type1_state::command_handler_kov;
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x500000, 0x500005, read16_delegate(FUNC(pgm_arm_type1_state::pgm_arm7_type1_sim_r),this), write16_delegate(FUNC(pgm_arm_type1_state::pgm_arm7_type1_sim_w),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x4f0000, 0x4f003f, read16_delegate(FUNC(pgm_arm_type1_state::pgm_arm7_type1_sim_protram_r),this));
+
+}
+#endif
diff --git a/docs/release/src/hbmame/drivers/phoenix.cpp b/docs/release/src/hbmame/drivers/phoenix.cpp
new file mode 100644
index 00000000000..8330a4e0763
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/phoenix.cpp
@@ -0,0 +1,56 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/phoenix.cpp"
+
+ROM_START( phoenixr )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "phoenix.45", 0x0000, 0x0800, CRC(5b8c55a8) SHA1(839c1ca9766f730ec3accd48db70f6429a9c3362) )
+ ROM_LOAD( "phoenix3.46", 0x0800, 0x0800, CRC(5748f486) SHA1(49e6fd836d26ec24105e95227b24cf668e8a470a) )
+ ROM_LOAD( "phoenix.47", 0x1000, 0x0800, CRC(cbbb8839) SHA1(b7f449374cac111081559e39646f973e7e99fd64) )
+ ROM_LOAD( "phoenixr.48", 0x1800, 0x0800, CRC(9253e642) SHA1(9f72d7beb22ffc8dffc43765356e34def36efc12) )
+ ROM_LOAD( "h5-ic49.5a", 0x2000, 0x0800, CRC(a105e4e7) SHA1(b35142a91b6b7fdf7535202671793393c9f4685f) )
+ ROM_LOAD( "h6-ic50.6a", 0x2800, 0x0800, CRC(ac5e9ec1) SHA1(0402e5241d99759d804291998efd43f37ce99917) )
+ ROM_LOAD( "h7-ic51.7a", 0x3000, 0x0800, CRC(2eab35b4) SHA1(849bf8273317cc869bdd67e50c68399ee8ece81d) )
+ ROM_LOAD( "phoenix3.52", 0x3800, 0x0800, CRC(d2c5c984) SHA1(a9432f9aff8a2f5ca1d347443efc008a177d8ae0) )
+
+ ROM_REGION( 0x1000, "bgtiles", 0 )
+ ROM_LOAD( "r_ic23", 0x0000, 0x0800, CRC(02bc87ea) SHA1(bd672a5c62339e18d627d5bb195a9da2a76fd239) )
+ ROM_LOAD( "r_ic24", 0x0800, 0x0800, CRC(675388ee) SHA1(4bef2b7cd28b2311a5775f89ee8756caf405c182) )
+
+ ROM_REGION( 0x1000, "fgtiles", 0 )
+ ROM_LOAD( "r_ic39", 0x0000, 0x0800, CRC(8b1653ba) SHA1(5677fd96d49165b4d71047771e4a0bd8d6fb2400) )
+ ROM_LOAD( "r_ic40", 0x0800, 0x0800, CRC(3b811dfb) SHA1(e2a9fada30bdb096ddfd35abc4717e1cac38c943) )
+
+ ROM_REGION( 0x0200, "proms", 0 )
+ ROM_LOAD( "mmi6301.ic40", 0x0000, 0x0100, CRC(79350b25) SHA1(57411be4c1d89677f7919ae295446da90612c8a8) )
+ ROM_LOAD( "mmi6301.ic41", 0x0100, 0x0100, CRC(e176b768) SHA1(e2184dd495ed579f10b6da0b78379e02d7a6229f) )
+ROM_END
+
+ROM_START( phoenixg )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "phoenix.45", 0x0000, 0x0800, CRC(5b8c55a8) SHA1(839c1ca9766f730ec3accd48db70f6429a9c3362) )
+ ROM_LOAD( "phoenix.46", 0x0800, 0x0800, CRC(dbc942fa) SHA1(9fe224e6ced407289dfa571468259a021d942b7d) )
+ ROM_LOAD( "phoenix.47", 0x1000, 0x0800, CRC(cbbb8839) SHA1(b7f449374cac111081559e39646f973e7e99fd64) )
+ ROM_LOAD( "phoenixg.48", 0x1800, 0x0800, CRC(63d4c322) SHA1(96bac0950940f6a3a7972ed403431c6fb1941667) )
+ ROM_LOAD( "phoenix.49", 0x2000, 0x0800, CRC(c8a5d6d6) SHA1(ef6ade323544e3edd4101609138ecf35e8cb9577) )
+ ROM_LOAD( "h6-ic50.6a", 0x2800, 0x0800, CRC(ac5e9ec1) SHA1(0402e5241d99759d804291998efd43f37ce99917) )
+ ROM_LOAD( "h7-ic51.7a", 0x3000, 0x0800, CRC(2eab35b4) SHA1(849bf8273317cc869bdd67e50c68399ee8ece81d) )
+ ROM_LOAD( "phoenix.52", 0x3800, 0x0800, CRC(b9915263) SHA1(f61396077b23364b5b26f62c6923394d23a37eb3) )
+
+ ROM_REGION( 0x1000, "bgtiles", 0 )
+ ROM_LOAD( "ic23.3d", 0x0000, 0x0800, CRC(3c7e623f) SHA1(e7ff5fc371664af44785c079e92eeb2d8530187b) )
+ ROM_LOAD( "ic24.4d", 0x0800, 0x0800, CRC(59916d3b) SHA1(71aec70a8e096ed1f0c2297b3ae7dca1b8ecc38d) )
+
+ ROM_REGION( 0x1000, "fgtiles", 0 )
+ ROM_LOAD( "ic39g", 0x0000, 0x0800, CRC(0ed46d30) SHA1(dd21172c11ef60351921ed7067736682237a8db9) )
+ ROM_LOAD( "b2-ic40.4b", 0x0800, 0x0800, CRC(0be2ba91) SHA1(af9243ee23377b632b9b7d0b84d341d06bf22480) )
+
+ ROM_REGION( 0x0200, "proms", 0 )
+ ROM_LOAD( "mmi6301.ic40", 0x0000, 0x0100, CRC(79350b25) SHA1(57411be4c1d89677f7919ae295446da90612c8a8) )
+ ROM_LOAD( "mmi6301.ic41", 0x0100, 0x0100, CRC(e176b768) SHA1(e2184dd495ed579f10b6da0b78379e02d7a6229f) )
+ROM_END
+
+
+
+GAME( 2000, phoenixr, phoenix, phoenix, phoenix , driver_device, 0, ROT90, "CYBERYOGI =CO= Windler", "PhoenixR (GDR hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, phoenixg, phoenix, phoenix, phoenixt, driver_device, 0, ROT90, "GreekRoms", "Phoenix (Greek)", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/playch10.cpp b/docs/release/src/hbmame/drivers/playch10.cpp
new file mode 100644
index 00000000000..c8a712e1307
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/playch10.cpp
@@ -0,0 +1,237 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/playch10.cpp"
+
+ROM_START( pc_ark ) /* Arkanoid (1942) */
+ BIOS_CPU
+ ROM_LOAD( "u3", 0x0c000, 0x2000, CRC(415b8807) SHA1(9d6161bbc6dec5873cc6d8a570141d4af42fa232) ) /* extra bios code for this game */
+ BIOS_GFX
+
+ ROM_REGION( 0x10000, "cart", 0 ) /* 64k for code */
+ ROM_LOAD( "arkanoid-u1", 0x08000, 0x8000, CRC(95dbb274) SHA1(792420b622b59d40ec0a264bf0bcd5faf9b652dc) )
+
+ ROM_REGION( 0x02000, "gfx2", 0 ) /* cart gfx */
+ ROM_LOAD( "arkanoid-u2", 0x00000, 0x2000, CRC(bb8dae70) SHA1(91bdab01839e2ad3d9aaa9041e0855ba26583a9f) )
+
+ ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
+ ROM_LOAD( "29893c7f.prm", 0x00000, 0x10, CRC(29893c7f) SHA1(58478b7de2177c8dc1d6885bd34eeeeb5e46d7a3) )
+ROM_END
+
+ROM_START( pc_bb2 ) /* Bubble Bobble Part 2 (Power Blade) */
+ BIOS_CPU
+ ROM_LOAD( "bb2-u3", 0x0c000, 0x2000, CRC(edcc21c6) SHA1(5d73c6a747cfe951dc7c6ddfbb29859e9548aded) ) /* extra bios code for this game */
+ BIOS_GFX
+
+ ROM_REGION( 0x50000, "cart", 0 ) /* 64k for code */
+ ROM_LOAD( "bb2-u5", 0x10000, 0x20000, CRC(5f7c1d17) SHA1(48608c9ebd8c0feb9e1126eb4070f185c41d9a19) ) /* banked */
+ ROM_RELOAD( 0x30000, 0x20000 )
+
+ ROM_REGION( 0x20000, "gfx2", 0 ) /* cart gfx */
+ ROM_LOAD( "bb2-u1", 0x00000, 0x20000, CRC(5e59afae) SHA1(5ed7d7c1ed50dbdc01e0a80e6ed5a246349726aa) )
+
+ ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
+ ROM_LOAD( "31a05a48.prm", 0x00000, 0x10, CRC(31a05a48) SHA1(8b340600feae03bb5cdab852a9879ecffcc8a2b9) )
+ROM_END
+
+ROM_START( pc_cch ) /* Circus Charlie (Golf) */
+ BIOS_CPU
+ ROM_LOAD( "gf-u3", 0x0c000, 0x2000, CRC(882dea87) SHA1(e3bbca36efa66231b933713dec032bbb926b36e5) ) /* extra bios code for this game */
+ BIOS_GFX
+
+ ROM_REGION( 0x10000, "cart", 0 ) /* 64k for code */
+ ROM_LOAD( "circusch.u1", 0x0c000, 0x4000, CRC(2cb269d5) SHA1(28a700b4fa5c580adf3ef9891506585ef6a40725) )
+
+ ROM_REGION( 0x02000, "gfx2", 0 ) /* cart gfx */
+ ROM_LOAD( "circusch.u2", 0x00000, 0x2000, CRC(f76c592a) SHA1(c8bc574c43d26d5072869922573edaaab7a37050) )
+
+ ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
+ ROM_LOAD( "2cd98ef6.prm", 0x00000, 0x10, CRC(2cd98ef6) SHA1(bd5142c6a29df674ab835c8beafff7e93712d88f) )
+ROM_END
+
+ROM_START( pc_ctfrc ) /* Contra Force (Power Blade) */
+ BIOS_CPU
+ ROM_LOAD( "ctfrc-u3", 0x0c000, 0x2000, CRC(edcc21c6) SHA1(5d73c6a747cfe951dc7c6ddfbb29859e9548aded) ) /* extra bios code for this game */
+ BIOS_GFX
+
+ ROM_REGION( 0x50000, "cart", 0 ) /* 64k for code */
+ ROM_LOAD( "ctfrc-u5", 0x10000, 0x20000, CRC(1ff7fc0d) SHA1(bbf1fb616c13795c9c8e447a72f009ee3746bd90) ) /* banked */
+ ROM_RELOAD( 0x30000, 0x20000 )
+
+ ROM_REGION( 0x20000, "gfx2", 0 ) /* cart gfx */
+ ROM_LOAD( "ctfrc-u1", 0x00000, 0x20000, CRC(7ff2a7f8) SHA1(234041d4c880ccd4acd295c9b2a3d6e37089beda) )
+
+ ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
+ ROM_LOAD( "31a05a48.prm", 0x00000, 0x10, CRC(31a05a48) SHA1(8b340600feae03bb5cdab852a9879ecffcc8a2b9) )
+ROM_END
+
+ROM_START( pc_digdg ) /* Dig Dug (1942) */
+ BIOS_CPU
+ ROM_LOAD( "u3", 0x0c000, 0x2000, CRC(415b8807) SHA1(9d6161bbc6dec5873cc6d8a570141d4af42fa232) ) /* extra bios code for this game */
+ BIOS_GFX
+
+ ROM_REGION( 0x10000, "cart", 0 ) /* 64k for code */
+ ROM_LOAD( "digdug.u1", 0x08000, 0x8000, CRC(a26ae22e) SHA1(0f95aa5f74ef2b192e355381987cf4624fce5653) )
+
+ ROM_REGION( 0x02000, "gfx2", 0 ) /* cart gfx */
+ ROM_LOAD( "digdug.u2", 0x00000, 0x2000, CRC(2dabc198) SHA1(79f1e65eea2a2841dc47916cb86fbf992b936bd5) )
+
+ ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
+ ROM_LOAD( "29893c7f.prm", 0x00000, 0x10, CRC(29893c7f) SHA1(58478b7de2177c8dc1d6885bd34eeeeb5e46d7a3) )
+ROM_END
+
+ROM_START( pc_dk ) /* Donkey Kong (Golf) */
+ BIOS_CPU
+ ROM_LOAD( "gf-u3", 0x0c000, 0x2000, CRC(882dea87) SHA1(e3bbca36efa66231b933713dec032bbb926b36e5) ) /* extra bios code for this game */
+ BIOS_GFX
+
+ ROM_REGION( 0x10000, "cart", 0 ) /* 64k for code */
+ ROM_LOAD( "dk.u1", 0x0c000, 0x4000, CRC(f56a5b10) SHA1(2c4b1d653194df0996d54d9de9188b270d0337d9) )
+
+ ROM_REGION( 0x02000, "gfx2", 0 ) /* cart gfx */
+ ROM_LOAD( "dk.u2", 0x00000, 0x2000, CRC(e472a17c) SHA1(3e3d5a2213c132fcb86a97089f03a7ebf8384d36) )
+
+ ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
+ ROM_LOAD( "2cd98ef6.prm", 0x00000, 0x10, CRC(2cd98ef6) SHA1(bd5142c6a29df674ab835c8beafff7e93712d88f) )
+ROM_END
+
+ROM_START( pc_dk3 ) /* Donkey Kong 3 (1942) */
+ BIOS_CPU
+ ROM_LOAD( "u3", 0x0c000, 0x2000, CRC(415b8807) SHA1(9d6161bbc6dec5873cc6d8a570141d4af42fa232) ) /* extra bios code for this game */
+ BIOS_GFX
+
+ ROM_REGION( 0x10000, "cart", 0 ) /* 64k for code */
+ ROM_LOAD( "dk3.u1", 0x08000, 0x8000, CRC(01eb0432) SHA1(94546c80c0bd41acc85f6e73a1425125c967d5db) )
+
+ ROM_REGION( 0x02000, "gfx2", 0 ) /* cart gfx */
+ ROM_LOAD( "dk3.u2", 0x00000, 0x2000, CRC(85d06c57) SHA1(803adef82721452704607fbf70027ff792636325) )
+
+ ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
+ ROM_LOAD( "29893c7f.prm", 0x00000, 0x10, CRC(29893c7f) SHA1(58478b7de2177c8dc1d6885bd34eeeeb5e46d7a3) )
+ROM_END
+
+ROM_START( pc_galag ) /* Galaga (1942) */
+ BIOS_CPU
+ ROM_LOAD( "u3", 0x0c000, 0x2000, CRC(415b8807) SHA1(9d6161bbc6dec5873cc6d8a570141d4af42fa232) ) /* extra bios code for this game */
+ BIOS_GFX
+
+ ROM_REGION( 0x10000, "cart", 0 ) /* 64k for code */
+ ROM_LOAD( "galaga.u1", 0x08000, 0x8000, CRC(b4c4c5fe) SHA1(16e53935fc998de1eb8a88f73217ef1e2005d026) )
+
+ ROM_REGION( 0x02000, "gfx2", 0 ) /* cart gfx */
+ ROM_LOAD( "galaga.u2", 0x00000, 0x2000, CRC(e2d5964e) SHA1(62b2cd49a6a4c6f1e2b0742db3b7493e167e9a23) )
+
+ ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
+ ROM_LOAD( "29893c7f.prm", 0x00000, 0x10, CRC(29893c7f) SHA1(58478b7de2177c8dc1d6885bd34eeeeb5e46d7a3) )
+ROM_END
+
+ROM_START( pc_gyrus ) /* Gyruss (Dr Mario) */
+ BIOS_CPU
+ ROM_LOAD( "vu-u2", 0x0c000, 0x2000, CRC(4b7869ac) SHA1(37afb84d963233ad92cc424fcf992aa76ea0599f) ) /* extra bios code for this game */
+ BIOS_GFX
+
+ ROM_REGION( 0x30000, "cart", 0 ) /* 64k for code */
+ ROM_LOAD( "gyruss-u4", 0x10000, 0x08000, CRC(48ecc48a) SHA1(0afdb50a07ae9610f5c62dc8cca661ca359352be) ) /* banked */
+ ROM_RELOAD( 0x18000, 0x08000 )
+ ROM_RELOAD( 0x20000, 0x08000 )
+ ROM_RELOAD( 0x28000, 0x08000 )
+
+ ROM_REGION( 0x20000, "gfx2", 0 ) /* cart gfx */
+ ROM_LOAD( "gyruss-u1", 0x00000, 0x08000, CRC(3eb77902) SHA1(2419437ad701f5e165778af02b888da268c9a74d) )
+ ROM_RELOAD( 0x08000, 0x08000 )
+ ROM_RELOAD( 0x10000, 0x08000 )
+ ROM_RELOAD( 0x18000, 0x08000 )
+
+ ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
+ ROM_LOAD( "1b26e58c.prm", 0x00000, 0x10, CRC(1b26e58c) SHA1(bd2d81d3cc54966ef154b3487d43ecbc316d6d22) )
+ROM_END
+
+ROM_START( pc_krsty ) /* Krusty's Funhouse (Power Blade) */
+ BIOS_CPU
+ ROM_LOAD( "xu-u3", 0x0c000, 0x2000, CRC(c3984e09) SHA1(70d7e5d9cf9b1f358e1be84a0e8c5997b1aae2d9) ) /* extra bios code for this game */
+ BIOS_GFX
+
+ ROM_REGION( 0x50000, "cart", 0 ) /* 64k for code */
+ ROM_LOAD( "xu-u4", 0x10000, 0x20000, CRC(1f4103e5) SHA1(0a45c9b140df98aac7936c84e732410d796a35d7) ) /* banked */
+ ROM_LOAD( "xu-u5", 0x30000, 0x20000, CRC(778c4115) SHA1(beab60c8237ffba27f6730fe7f4c45173cf892e0) ) /* banked */
+
+ ROM_REGION( 0x020000, "gfx2", 0 ) /* cart gfx */
+ ROM_LOAD( "xu-u1", 0x00000, 0x20000, CRC(fce8e0ea) SHA1(808f74e9124f273aab7adf5f31c2d5893b06323e) )
+
+ ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
+ ROM_LOAD( "0fe6e900.prm", 0x00000, 0x10, CRC(0fe6e900) SHA1(544d8af1aa9186bf76d0a35e78b20e94d3afbcb5) )
+ROM_END
+
+ROM_START( pc_mman5 ) /* Megaman 5 (TMNT2) */
+ BIOS_CPU
+ ROM_LOAD( "2n-u3", 0x0c000, 0x2000, CRC(65298370) SHA1(fd120f43e465a2622f2e2679ace2fb0fe7e709b1) ) /* extra bios code for this game */
+ BIOS_GFX
+
+ ROM_REGION( 0x50000, "cart", 0 ) /* 64k for code */
+ ROM_LOAD( "2n-u5", 0x10000, 0x40000, CRC(f3c743aa) SHA1(ee907c7279dba52320e35906ab5b0a1bdbbf0bfb) ) /* banked */
+
+ ROM_REGION( 0x40000, "gfx2", 0 ) /* cart gfx */
+ ROM_LOAD( "2n-u1", 0x00000, 0x40000, CRC(25e0ae72) SHA1(45d3ffbb5e399c891df6fcbd78b94b866be9b663) )
+
+ ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
+ ROM_LOAD( "237e8519.prm", 0x00000, 0x10, CRC(237e8519) SHA1(81b368d0784e4172c5cf9f4f4b92e29e05d34ae7) )
+ROM_END
+
+ROM_START( pc_pacm ) /* Pacman (Golf) */
+ BIOS_CPU
+ ROM_LOAD( "gf-u3", 0x0c000, 0x2000, CRC(882dea87) SHA1(e3bbca36efa66231b933713dec032bbb926b36e5) ) /* extra bios code for this game */
+ BIOS_GFX
+
+ ROM_REGION( 0x10000, "cart", 0 ) /* 64k for code */
+ ROM_LOAD( "pacman.u1", 0x0c000, 0x4000, CRC(de2070ab) SHA1(a9324a94fa3d5ae6396a90c3d6d8399de8f93bd1) )
+
+ ROM_REGION( 0x02000, "gfx2", 0 ) /* cart gfx */
+ ROM_LOAD( "pacman.u2", 0x00000, 0x2000, CRC(db6c9324) SHA1(f0d0fa49fbccc3b005742fc72a8dd3dce63909d1) )
+
+ ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
+ ROM_LOAD( "2cd98ef6.prm", 0x00000, 0x10, CRC(2cd98ef6) SHA1(bd5142c6a29df674ab835c8beafff7e93712d88f) )
+ROM_END
+
+ROM_START( pc_parsl ) /* Parasol Stars - The Story of Bubble Bobble 3 (Ninja Gaiden) */
+ BIOS_CPU
+ ROM_LOAD( "parsl-u2", 0x0c000, 0x2000, CRC(7505de96) SHA1(a9cbe6d4d2d33aeecb3e041315fbb266c886ebf1) ) /* extra bios code for this game */
+ BIOS_GFX
+
+ ROM_REGION( 0x30000, "cart", 0 ) /* 64k for code */
+ ROM_LOAD( "parsl-u4", 0x10000, 0x20000, CRC(15382139) SHA1(50991602680588a9e7b03e06d45ee607fc00db13) ) /* banked */
+
+ ROM_REGION( 0x20000, "gfx2", 0 ) /* cart gfx */
+ ROM_LOAD( "parsl-u1", 0x00000, 0x20000, CRC(af5400dc) SHA1(68258fedf7e2ba3afcf20e8261ad93d282c10bd9) ) /* banked */
+
+ ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
+ ROM_LOAD( "ec5641d6.prm", 0x00000, 0x10, CRC(ec5641d6) SHA1(05f546aec5a9db167688a9abbac922f5ced7f7c5) )
+ROM_END
+
+ROM_START( pc_skykd ) /* Sky Kid (Ninja Gaiden) */
+ BIOS_CPU
+ ROM_LOAD( "u2ng", 0x0c000, 0x2000, CRC(7505de96) SHA1(a9cbe6d4d2d33aeecb3e041315fbb266c886ebf1) ) /* extra bios code for this game */
+ BIOS_GFX
+
+ ROM_REGION( 0x30000, "cart", 0 ) /* 64k for code */
+ ROM_LOAD( "skykid.u4", 0x10000, 0x20000, CRC(c1918ec3) SHA1(e34bd36d9a7df7197b06a0a537b9d786f2303a98) ) /* banked */
+
+ ROM_REGION( 0x20000, "gfx2", 0 ) /* cart gfx */
+ ROM_LOAD( "skykid.u1", 0x00000, 0x20000, CRC(0f58923f) SHA1(805cc304ab0e20337c0b0dcd5ca7f2b7bf8e4656) ) /* banked */
+
+ ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
+ ROM_LOAD( "ec5641d6.prm", 0x00000, 0x10, CRC(ec5641d6) SHA1(05f546aec5a9db167688a9abbac922f5ced7f7c5) )
+ROM_END
+
+GAME( 2002, pc_ark, playch10, playch10, playch10, playch10_state, pc_hrz, ROT0, "NES->PC-10", "Arkanoid (PlayChoice-10)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, pc_bb2, playch10, playch10, playch10, playch10_state, pcgboard, ROT0, "NES->PC-10", "Bubble Bobble 2 (PlayChoice-10)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, pc_cch, playch10, playch10, playch10, playch10_state, playch10, ROT0, "NES->PC-10", "Circus Charlie (PlayChoice-10)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, pc_ctfrc, playch10, playch10, playch10, playch10_state, pcgboard, ROT0, "NES->PC-10", "Contra Force (PlayChoice-10)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, pc_digdg, playch10, playch10, playch10, playch10_state, pc_hrz, ROT0, "NES->PC-10", "Dig Dug (PlayChoice-10)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, pc_dk, playch10, playch10, playch10, playch10_state, playch10, ROT0, "NES->PC-10", "Donkey Kong (PlayChoice-10)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, pc_dk3, playch10, playch10, playch10, playch10_state, pc_hrz, ROT0, "NES->PC-10", "Donkey Kong 3 (PlayChoice-10)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, pc_galag, playch10, playch10, playch10, playch10_state, pc_hrz, ROT0, "NES->PC-10", "Galaga (PlayChoice-10)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, pc_gyrus, playch10, playch10, playch10, playch10_state, pcfboard, ROT0, "NES->PC-10", "Gyruss (PlayChoice-10)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS )
+GAME( 2002, pc_krsty, playch10, playch10, playch10, playch10_state, pcgboard, ROT0, "NES->PC-10", "Krusty's Funhouse (PlayChoice-10)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, pc_mman5, playch10, playch10, playch10, playch10_state, pcgboard, ROT0, "NES->PC-10", "Megaman 5 (PlayChoice-10)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, pc_pacm, playch10, playch10, playch10, playch10_state, playch10, ROT0, "NES->PC-10", "Pacman (PlayChoice-10)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, pc_parsl, playch10, playch10, playch10, playch10_state, pcfboard, ROT0, "NES->PC-10", "Parasol Stars-The Story of Bubble Bobble 3 (PlayChoice-10)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, pc_skykd, playch10, playch10, playch10, playch10_state, pcfboard, ROT0, "NES->PC-10", "Sky Kid (PlayChoice-10)", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/powerins.cpp b/docs/release/src/hbmame/drivers/powerins.cpp
new file mode 100644
index 00000000000..ed94f6213dc
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/powerins.cpp
@@ -0,0 +1,45 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/powerins.cpp"
+
+ROM_START( powernbr )
+ ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 Code */
+ ROM_LOAD16_WORD_SWAP( "93095-3br.u108", 0x00000, 0x80000, CRC(522e776a) SHA1(4b3965a3388fdbb438d5cdbff7194cc3344a51e7) )
+ ROM_LOAD16_WORD_SWAP( "93095-4.u109", 0x80000, 0x80000, CRC(d3d7a782) SHA1(7846de0ebb09bd9b2534cd451ff9aa5175e60647) )
+
+ ROM_REGION( 0x20000, "soundcpu", 0 ) /* Z80 Code */
+ ROM_LOAD( "93095-2.u90", 0x00000, 0x20000, CRC(4b123cc6) SHA1(ed61d3a2ab20c86b91fd7bafa717be3ce26159be) )
+
+ ROM_REGION( 0x280000, "gfx1", 0 ) /* Layer 0 */
+ ROM_LOAD( "93095-5.u16", 0x000000, 0x100000, CRC(b1371808) SHA1(15fca313314ff2e0caff35841a2fdda97f6235a8) )
+ ROM_LOAD( "93095-6br.u17", 0x100000, 0x100000, CRC(4a7a6bd8) SHA1(953bba9606795ec32c9c0e4e0fd4e88da9708cf8) )
+ ROM_LOAD( "93095-7.u18", 0x200000, 0x080000, CRC(2dd76149) SHA1(975e4d371fdfbbd9a568da4d4c91ffd3f0ae636e) )
+
+ ROM_REGION( 0x100000, "gfx2", 0 ) /* Layer 1 */
+ ROM_LOAD( "93095-1br.u15", 0x000000, 0x020000, CRC(7e73e1d8) SHA1(ff8d8ecbb01122291404f93a60d6e0c3fc56c3c7) )
+
+ ROM_REGION( 0x800000, "gfx3", 0 ) /* Sprites */
+ ROM_LOAD( "93095-12.u116", 0x000000, 0x100000, CRC(35f3c2a3) SHA1(70efebfe248401ba3d766dc0e4bcc2846cd0d9a0) )
+ ROM_LOAD( "93095-13.u117", 0x100000, 0x100000, CRC(1ebd45da) SHA1(99b0ac734890673064b2a4b4b57ff2694e338dea) )
+ ROM_LOAD( "93095-14.u118", 0x200000, 0x100000, CRC(760d871b) SHA1(4887122ad0518c90f08c11a7a6b694f3fd218498) )
+ ROM_LOAD( "93095-15.u119", 0x300000, 0x100000, CRC(d011be88) SHA1(837409a2584abdf22e022b0f06181a600a974cbe) )
+ ROM_LOAD( "93095-16.u120", 0x400000, 0x100000, CRC(a9c16c9c) SHA1(a34e81324c875c2a57f778d1dbdda8da81850a29) )
+ ROM_LOAD( "93095-17.u121", 0x500000, 0x100000, CRC(51b57288) SHA1(821473d51565bc0a8b9a979723ce1307b97e517e) )
+ ROM_LOAD( "93095-18.u122", 0x600000, 0x100000, CRC(b135e3f2) SHA1(339fb4007ca0f379b7554a1c4f711f494a371fb2) )
+ ROM_LOAD( "93095-19.u123", 0x700000, 0x100000, CRC(67695537) SHA1(4c78ce3e36f27d2a6a9e50e8bf896335d4d0958a) )
+
+ ROM_REGION( 0x240000, "oki1", 0 ) /* 8 bit adpcm (banked) */
+ ROM_LOAD( "93095-10.u48", 0x040000, 0x100000, CRC(329ac6c5) SHA1(e809b94e2623141f5a48995cfa97fe1ead7ab40b) )
+ ROM_LOAD( "93095-11.u49", 0x140000, 0x100000, CRC(75d6097c) SHA1(3c89a7c9b12087e2d969b822419d3e5f98f5cb1d) )
+
+ ROM_REGION( 0x240000, "oki2", 0 ) /* 8 bit adpcm (banked) */
+ ROM_LOAD( "93095-8.u46", 0x040000, 0x100000, CRC(f019bedb) SHA1(4b6e10f85671c75b666e547887d403d6e607cec8) )
+ ROM_LOAD( "93095-9.u47", 0x140000, 0x100000, CRC(adc83765) SHA1(9e760443f9de21c1bb7e33eaa1541023fcdc60ab) )
+
+ ROM_REGION( 0x0220, "proms", 0 ) /* unknown */
+ ROM_LOAD( "22.u81", 0x000000, 0x0020, CRC(67d5ec4b) SHA1(87d32948a0c88277dcdd0eaa035bde40fc7db5fe) )
+ ROM_LOAD( "21.u71", 0x000020, 0x0100, CRC(182cd81f) SHA1(3a76bea81b34ea7ccf56044206721058aa5b03e6) )
+ ROM_LOAD( "20.u54", 0x000100, 0x0100, CRC(38bd0e2f) SHA1(20d311869642cd96bb831fdf4a458e0d872f03eb) )
+ROM_END
+
+GAME( 2006, powernbr, powerins, powerins, powerins, driver_device, 0, ROT0, "Neogeo BR team", "Power Instinct (Brasil)", MACHINE_SUPPORTS_SAVE ) // 06.04.25 date
diff --git a/docs/release/src/hbmame/drivers/psikyosh.cpp b/docs/release/src/hbmame/drivers/psikyosh.cpp
new file mode 100644
index 00000000000..f4f1857fdc1
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/psikyosh.cpp
@@ -0,0 +1,54 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/psikyosh.cpp"
+
+ROM_START( s1945iiex )
+ ROM_REGION( 0x200000, "maincpu", 0) /* Code */
+ ROM_LOAD32_WORD_SWAP( "2_prog_l.u18-ex", 0x000002, 0x080000, CRC(56276eb7) SHA1(28530132058621382697c678426967d720741853) )
+ ROM_LOAD32_WORD_SWAP( "1_prog_h.u17-ex", 0x000000, 0x080000, CRC(99658d0d) SHA1(f8b7a697819dc1e4993557d9e854aa53964eb4a3) )
+
+ ROM_REGION( 0x2000000, "gfx1", 0 ) /* Tiles */
+ ROM_LOAD32_WORD( "0l.u4", 0x0000000, 0x400000, CRC(bfacf98d) SHA1(19954f12881e6e95e808bd1f2c2f5a425786727f) )
+ ROM_LOAD32_WORD( "0h.u13", 0x0000002, 0x400000, CRC(1266f67c) SHA1(cf93423a827aa92aa54afbbecf8509d2590edc9b) )
+ ROM_LOAD32_WORD( "1l.u3", 0x0800000, 0x400000, CRC(2d3332c9) SHA1(f2e54100a48061bfd589e8765f59ca051176a38b) )
+ ROM_LOAD32_WORD( "1h.u12", 0x0800002, 0x400000, CRC(27b32c3e) SHA1(17a80b3c919d8a282169c019ede8a22d2079c018) )
+ ROM_LOAD32_WORD( "2l.u2", 0x1000000, 0x400000, CRC(91ba6d23) SHA1(fd016a90204b2de43bb709971f7cd891f839de1a) )
+ ROM_LOAD32_WORD( "2h.u20", 0x1000002, 0x400000, CRC(fabf4334) SHA1(f8ec43e083b674700f532575f0d067bd49c5aaf7) )
+ ROM_LOAD32_WORD( "3l.u1", 0x1800000, 0x400000, CRC(a6c3704e) SHA1(cb9881e4235cc8e4bcca4c6ccbd8d8d8634e3624) )
+ ROM_LOAD32_WORD( "3h.u19", 0x1800002, 0x400000, CRC(4cd3ca70) SHA1(5b0a6ea4fe0e821cebe6e840596f648e24dded51) )
+
+ ROM_REGION( 0x400000, "ymf", 0 ) /* Samples */
+ ROM_LOAD( "sound.u32", 0x000000, 0x400000, CRC(ba680ca7) SHA1(b645896e297aad426784aa656bff738e1b33c2a2) )
+
+ ROM_REGION( 0x100, "eeprom", 0 )
+ ROM_LOAD( "eeprom-s1945ii.bin", 0x0000, 0x0100, CRC(7ac38846) SHA1(c5f4b05a94211f3c96b8c472adbe634f2e77d753) )
+ROM_END
+
+ROM_START( s1945sr3 )
+ ROM_REGION( 0x180000, "maincpu", 0)
+ ROM_LOAD32_WORD_SWAP( "2_progl.u16", 0x000002, 0x080000, CRC(16b4e78e) SHA1(ac16e3d7b959e7d28f1afc6eb6c590afa96fa379) )
+ ROM_LOAD32_WORD_SWAP( "1_progh.u17", 0x000000, 0x080000, CRC(6607b00e) SHA1(958d00880deb3d57c607402b8a87adaaa720914c) )
+ ROM_LOAD16_WORD_SWAP( "3_data.u1", 0x100000, 0x080000, CRC(8ff5f7d3) SHA1(420a3d7f2d5ab6a56789d36b418431f12f5f73f5) )
+
+ ROM_REGION( 0x3800000, "gfx1", 0 )
+ ROM_LOAD32_WORD( "0l.u3", 0x0000000, 0x800000, CRC(70a0d52c) SHA1(c9d9534da59123b577dc22020273b94ccdeeb67d) )
+ ROM_LOAD32_WORD( "0h.u10", 0x0000002, 0x800000, CRC(4dcd22b4) SHA1(2df7a7d08df17d2a62d574fccc8ba40aaae21a13) )
+ ROM_LOAD32_WORD( "1l.u4", 0x1000000, 0x800000, CRC(de1042ff) SHA1(468f6dfd5c1f2084c573b6851e314ff2826dc350) )
+ ROM_LOAD32_WORD( "1h.u11", 0x1000002, 0x800000, CRC(b51a4430) SHA1(b51117591b0e351e922f9a6a7930e8b50237e54e) )
+ ROM_LOAD32_WORD( "2l.u5", 0x2000000, 0x800000, CRC(23b02dca) SHA1(0249dceca02b312301a917d98fac481b6a0a9122) )
+ ROM_LOAD32_WORD( "2h.u12", 0x2000002, 0x800000, CRC(9933ab04) SHA1(710e6b20e111c1898666b4466554d039309883cc) )
+ ROM_LOAD32_WORD( "3l.u6", 0x3000000, 0x400000, CRC(f693438c) SHA1(d70e25a3f56aae6575c696d9b7b6d7a9d04f0104) )
+ ROM_LOAD32_WORD( "3h.u13", 0x3000002, 0x400000, CRC(2d0c334f) SHA1(74d94abb34484c7b79dbb989645f53124e53e3b7) )
+
+ ROM_REGION( 0x400000, "ymf", 0 ) /* Samples */
+ ROM_LOAD( "sound.u9", 0x000000, 0x400000, CRC(c5374beb) SHA1(d13e12cbd249246d953c45bb3bfa576a0ec75595) )
+
+ ROM_REGION( 0x100, "eeprom", 0 )
+ ROM_LOAD( "eeprom-s1945iii.bin", 0x0000, 0x0100, CRC(b39f3604) SHA1(d7c66210598096fcafb20adac2f0b293755f4926) )
+ROM_END
+
+
+
+/* YEAR NAME PARENT MACHINE INPUT CLASS INIT MONITOR COMPANY FULLNAME FLAGS */
+GAME( 2009, s1945iiex, s1945ii, psikyo3v1, s1945ii, psikyosh_state, ps3, ROT270, "Pipi899", "Strikers 1945 II (EX Super Version)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, s1945sr3, s1945iii, psikyo5, s1945iii, psikyosh_state, ps5, ROT270, "hack", "Strikers 1945 III (hack R3)", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/rallyx.cpp b/docs/release/src/hbmame/drivers/rallyx.cpp
new file mode 100644
index 00000000000..d0556da7bc4
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/rallyx.cpp
@@ -0,0 +1,97 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/rallyx.cpp"
+
+INPUT_PORTS_START( nrallyv )
+ PORT_START("P1")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN3 )
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 )
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START1 )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
+
+ PORT_START("P2")
+ PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( Upright ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 )
+
+ PORT_START("DSW")
+ PORT_SERVICE( 0x01, IP_ACTIVE_LOW )
+ /* TODO: the bonus score depends on the number of lives */
+ PORT_DIPNAME( 0x06, 0x02, DEF_STR( Bonus_Life ) )
+ PORT_DIPSETTING( 0x02, "A" )
+ PORT_DIPSETTING( 0x04, "B" )
+ PORT_DIPSETTING( 0x06, "C" )
+ PORT_DIPSETTING( 0x00, DEF_STR( None ) )
+ PORT_DIPNAME( 0x38, 0x00, DEF_STR( Difficulty ) )
+ PORT_DIPSETTING( 0x10, "1 Car, Medium" )
+ PORT_DIPSETTING( 0x28, "1 Car, Hard" )
+ PORT_DIPSETTING( 0x18, "2 Cars, Medium" )
+ PORT_DIPSETTING( 0x30, "2 Cars, Hard" )
+ PORT_DIPSETTING( 0x00, "3 Cars, Easy" )
+ PORT_DIPSETTING( 0x20, "3 Cars, Medium" )
+ PORT_DIPSETTING( 0x38, "3 Cars, Hard" )
+ PORT_DIPSETTING( 0x08, "4 Cars, Easy" )
+ PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Coinage ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( 2C_1C ) )
+ PORT_DIPSETTING( 0xc0, DEF_STR( 1C_1C ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( 1C_2C ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) )
+INPUT_PORTS_END
+
+ROM_START( rxtron ) // roms from rallyx except where marked
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "1b", 0x0000, 0x1000, CRC(5882700d) SHA1(b6029e9730f1694894fe8b729ac0ba8d6712dea9) )
+ ROM_LOAD( "rxtron.1e", 0x1000, 0x1000, CRC(8d5b88e5) SHA1(95a8bde287325f88cfc7ce12ad900647831b861e) )
+ ROM_LOAD( "rxtron.1h", 0x2000, 0x1000, CRC(1ecfddc0) SHA1(e800a3bb0e2d35dbfba49c7724689d29ab1912fd) )
+ ROM_LOAD( "rxtron.1k", 0x3000, 0x1000, CRC(2729e00a) SHA1(1f3d17e8342d8a7db57d64fd890b70e64315752a) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "rxtron.8e", 0x0000, 0x1000, CRC(91538868) SHA1(4ba04a56a6255895214bca1e0249e365b95f566d) )
+
+ ROM_REGION( 0x0100, "gfx2", 0 )
+ ROM_LOAD( "rx1-6.8m", 0x0000, 0x0100, CRC(3c16f62c) SHA1(7a3800be410e306cf85753b9953ffc5575afbcd6) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD( "rx1-1.11n", 0x0000, 0x0020, CRC(c7865434) SHA1(70c1c9610ba6f1ead77f347e7132958958bccb31) )
+ ROM_LOAD( "rx1-7.8p", 0x0020, 0x0100, CRC(834d4fda) SHA1(617864d3df0917a513e8255ad8d96ae7a04da5a1) )
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "rx1-5.3p", 0x0000, 0x0100, CRC(4bad7017) SHA1(3e6da9d798f5e07fa18d6ce7d0b148be98c766d5) )
+ ROM_LOAD( "rx1-4.2m", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) )
+ROM_END
+
+ROM_START( nrallyv )
+ ROM_REGION( 0x10000, "maincpu", 0 ) // from nrallyxb except where marked
+ ROM_LOAD( "nrallyx.1b", 0x0000, 0x1000, CRC(9404c8d6) SHA1(ee7e45c22a2fbf72d3ac5ac26ab1111a22623fc5) )
+ ROM_LOAD( "nrallyx.1e", 0x1000, 0x1000, CRC(ac01bf3f) SHA1(8e1a7cce92ef709d18727db6ee7f89936f4b8df8) )
+ ROM_LOAD( "nrallyx.1h", 0x2000, 0x1000, CRC(aeba29b5) SHA1(2a6e4568729b83c430bf70e43c4146ad6a556b1b) )
+ ROM_LOAD( "nrallyx.1k", 0x3000, 0x1000, CRC(78f17da7) SHA1(1e035746a10f91e898166a58093d45bdb158ae47) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "nrallyv.8e", 0x0000, 0x1000, CRC(031acfc5) SHA1(7e0df966b7f2be416e22ec2c36bb86425138c203) )
+
+ ROM_REGION( 0x0100, "gfx2", 0 )
+ ROM_LOAD( "rx1-6.8m", 0x0000, 0x0100, CRC(3c16f62c) SHA1(7a3800be410e306cf85753b9953ffc5575afbcd6) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD( "nrx1-1.11n", 0x0000, 0x0020, CRC(a0a49017) SHA1(494c920a157e9f876d533c1b0146275a366c4989) )
+ ROM_LOAD( "nrallyv.pr2", 0x0020, 0x0100, CRC(b2b7ca15) SHA1(e604d58f2f20ebf042f28b01e74eddeacf5baba9) )
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "nrallyv.spr", 0x0000, 0x0100, CRC(b75c4e87) SHA1(450f79a5ae09e34f7624d37769815baf93c0028e) )
+ ROM_LOAD( "rx1-4.2m", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) )
+ROM_END
+
+GAME( 1998, rxtron, rallyx, rallyx, rallyx, driver_device, 0, ROT0, "Jerky and Sil", "Rally-X Tron", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, nrallyv, rallyx, rallyx, nrallyv, driver_device, 0, ROT90, "hack", "New Rally X (Vertical Screen)", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/rastan.cpp b/docs/release/src/hbmame/drivers/rastan.cpp
new file mode 100644
index 00000000000..2c2d209bceb
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/rastan.cpp
@@ -0,0 +1,155 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/rastan.cpp"
+
+ROM_START( rastwack )
+ ROM_REGION( 0x60000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "rs19_38.bin", 0x00000, 0x10000, CRC(a38ac909) SHA1(66d792fee03c6bd87d15060b9d5cae74137c5ebd) )
+ ROM_LOAD16_BYTE( "wk_rs07_37.bin", 0x00001, 0x10000, CRC(bad60872) SHA1(e020f79b3ac3d2abccfcd5d135d2dc49e1335c7d) )
+ ROM_LOAD16_BYTE( "wk_rs20_40.bin", 0x20000, 0x10000, CRC(6bcf70dc) SHA1(3e369548ac01981c503150b44c2747e6c2cec12a) )
+ ROM_LOAD16_BYTE( "wk_rs08_39.bin", 0x20001, 0x10000, CRC(8838ecc5) SHA1(42b43ab77969bbacdf178fbe73a0a27652ccb297) )
+ ROM_LOAD16_BYTE( "wk_rs21_42.bin", 0x40000, 0x10000, CRC(b626c439) SHA1(976e820edc4ba107c5b579edaaee1e354e85fb67) )
+ ROM_LOAD16_BYTE( "wk_rs09_43.bin", 0x40001, 0x10000, CRC(c928a516) SHA1(fe87fdf2d1b7ba93e1986460eb6af648b58f42e4) )
+
+ ROM_REGION( 0x1c000, "audiocpu", 0 )
+ ROM_LOAD( "b04-19.49", 0x00000, 0x4000, CRC(ee81fdd8) SHA1(fa59dac2583a7d2979550dffc6f9c6c2bd67bfd5) )
+ ROM_CONTINUE( 0x10000, 0xc000 )
+
+ ROM_REGION( 0x080000, "gfx1", 0 )
+ ROM_LOAD( "wk_ic40_01.bin", 0x00000, 0x20000, CRC(f2111c1f) SHA1(bfdb46aeffe3f08fd5095440a7fa439f52d93d92) )
+ ROM_LOAD( "wk_ic39_03.bin", 0x20000, 0x20000, CRC(a25b10c1) SHA1(6a163e12e00b599cf8430d73e39b5a47a94db41e) )
+ ROM_LOAD( "wk_ic67_02.bin", 0x40000, 0x20000, CRC(a465449c) SHA1(7cae41f4c64641fb6ed8115ae7b934c013b964b2) )
+ ROM_LOAD( "wk_ic66_04.bin", 0x60000, 0x20000, CRC(9d4f8e36) SHA1(4f6634a5c2eeb7be4582f0a2596bb7caa7fddac3) )
+
+ ROM_REGION( 0x080000, "gfx2", 0 )
+ ROM_LOAD( "wk_ic15_05.bin", 0x00000, 0x20000, CRC(edc6f1bb) SHA1(567e88a4e2bfc39e9f056a9c3aa735297363a376) )
+ ROM_LOAD( "wk_ic14_07.bin", 0x20000, 0x20000, CRC(c672101c) SHA1(5759adc762f9cffb85175ee66c237a195dc2b656) )
+ ROM_LOAD( "wk_ic28_06.bin", 0x40000, 0x20000, CRC(f6ada09a) SHA1(6ddc23f2499164d4a403d4c519e9b14492a1604b) )
+ ROM_LOAD( "wk_ic27_08.bin", 0x60000, 0x20000, CRC(533d567e) SHA1(e61082c4c3e9d1422ff01646bb5fded9fda96f65) )
+
+ ROM_REGION( 0x10000, "adpcm", 0 )
+ ROM_LOAD( "b04-20.76", 0x0000, 0x10000, CRC(fd1a34cc) SHA1(b1682959521fa295769207b75cf7d839e9ec95fd) )
+ROM_END
+
+ROM_START( rastandh )
+ ROM_REGION( 0x60000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "b04-38.19", 0x00000, 0x10000, CRC(1c91dbb1) SHA1(17fc55e8546cc0b847aebd67fb4570a1e9f128f3) )
+ ROM_LOAD16_BYTE( "b04-37.7", 0x00001, 0x10000, CRC(ecf20bdd) SHA1(92e46b1edef40a19be17091c09daba598d77bca8) )
+ ROM_LOAD16_BYTE( "dh_ic20_40.bin", 0x20000, 0x10000, CRC(8f1ab70d) SHA1(58356b1b02d7c7de9f59bb8413782f655ebf0012) )
+ ROM_LOAD16_BYTE( "dh_ic08_39.bin", 0x20001, 0x10000, CRC(553a1ed8) SHA1(ef872bcdf681dd5f723907da3a36c065b618c563) )
+ ROM_LOAD16_BYTE( "dh_ic21_42.bin", 0x40000, 0x10000, CRC(08dc89b1) SHA1(836d87bcf2a12586722867fdd7d0d65f823008b7) )
+ ROM_LOAD16_BYTE( "dh_ic09_43.bin", 0x40001, 0x10000, CRC(a93fc337) SHA1(4117a31e3844cc981cae4323dd4c8878b1f77eb1) )
+
+ ROM_REGION( 0x1c000, "audiocpu", 0 )
+ ROM_LOAD( "b04-19.49", 0x00000, 0x4000, CRC(ee81fdd8) SHA1(fa59dac2583a7d2979550dffc6f9c6c2bd67bfd5) )
+ ROM_CONTINUE( 0x10000, 0xc000 )
+
+ ROM_REGION( 0x080000, "gfx1", 0 )
+ ROM_LOAD( "b04-01.40", 0x00000, 0x20000, CRC(cd30de19) SHA1(f8d158d38cd07a24cb5ddefd4ce90beec706924d) )
+ ROM_LOAD( "b04-03.39", 0x20000, 0x20000, CRC(ab67e064) SHA1(5c49f0ff9221cba9f2bb8da86eb4448c73012410) )
+ ROM_LOAD( "b04-02.67", 0x40000, 0x20000, CRC(54040fec) SHA1(a2bea2ce1cebd25b33be41723299ca0512d95f9e) )
+ ROM_LOAD( "b04-04.66", 0x60000, 0x20000, CRC(94737e93) SHA1(3df7f085fe6468bda11fab2e86252df6f74f7a99) )
+
+ ROM_REGION( 0x080000, "gfx2", 0 )
+ ROM_LOAD( "b04-05.15", 0x00000, 0x20000, CRC(c22d94ac) SHA1(04f69f9af7ac4242e95dba32988afa3616d75a92) )
+ ROM_LOAD( "b04-07.14", 0x20000, 0x20000, CRC(b5632a51) SHA1(da6ebe6afe245443a76b33714213549356c0c5c3) )
+ ROM_LOAD( "b04-06.28", 0x40000, 0x20000, CRC(002ccf39) SHA1(fdc29f39198f9b488e298ee89b0eeb3417527733) )
+ ROM_LOAD( "b04-08.27", 0x60000, 0x20000, CRC(feafca05) SHA1(9de9ff1fcf037e5ab25c181b678245041238d6ae) )
+
+ ROM_REGION( 0x10000, "adpcm", 0 )
+ ROM_LOAD( "b04-20.76", 0x0000, 0x10000, CRC(fd1a34cc) SHA1(b1682959521fa295769207b75cf7d839e9ec95fd) )
+ROM_END
+
+ROM_START( rastand2 )
+ ROM_REGION( 0x60000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "b04-38.19", 0x00000, 0x10000, CRC(1c91dbb1) SHA1(17fc55e8546cc0b847aebd67fb4570a1e9f128f3) )
+ ROM_LOAD16_BYTE( "b04-37.7", 0x00001, 0x10000, CRC(ecf20bdd) SHA1(92e46b1edef40a19be17091c09daba598d77bca8) )
+ ROM_LOAD16_BYTE( "dh_ic20_40.bin", 0x20000, 0x10000, CRC(8f1ab70d) SHA1(58356b1b02d7c7de9f59bb8413782f655ebf0012) )
+ ROM_LOAD16_BYTE( "dh_ic08_39.bin", 0x20001, 0x10000, CRC(553a1ed8) SHA1(ef872bcdf681dd5f723907da3a36c065b618c563) )
+ ROM_LOAD16_BYTE( "b04-42.21", 0x40000, 0x10000, CRC(1857a7cb) SHA1(7d967d04ade648c6ddb19aad9e184b6e272856da) )
+ ROM_LOAD16_BYTE( "d2_ic09_43.bin", 0x40001, 0x10000, CRC(e08d2b2d) SHA1(917017bdc64dc2d1ba15534baef80e581cacf7c1) )
+
+ ROM_REGION( 0x1c000, "audiocpu", 0 )
+ ROM_LOAD( "b04-19.49", 0x00000, 0x4000, CRC(ee81fdd8) SHA1(fa59dac2583a7d2979550dffc6f9c6c2bd67bfd5) )
+ ROM_CONTINUE( 0x10000, 0xc000 )
+
+ ROM_REGION( 0x080000, "gfx1", 0 )
+ ROM_LOAD( "b04-01.40", 0x00000, 0x20000, CRC(cd30de19) SHA1(f8d158d38cd07a24cb5ddefd4ce90beec706924d) )
+ ROM_LOAD( "b04-03.39", 0x20000, 0x20000, CRC(ab67e064) SHA1(5c49f0ff9221cba9f2bb8da86eb4448c73012410) )
+ ROM_LOAD( "b04-02.67", 0x40000, 0x20000, CRC(54040fec) SHA1(a2bea2ce1cebd25b33be41723299ca0512d95f9e) )
+ ROM_LOAD( "b04-04.66", 0x60000, 0x20000, CRC(94737e93) SHA1(3df7f085fe6468bda11fab2e86252df6f74f7a99) )
+
+ ROM_REGION( 0x080000, "gfx2", 0 )
+ ROM_LOAD( "b04-05.15", 0x00000, 0x20000, CRC(c22d94ac) SHA1(04f69f9af7ac4242e95dba32988afa3616d75a92) )
+ ROM_LOAD( "b04-07.14", 0x20000, 0x20000, CRC(b5632a51) SHA1(da6ebe6afe245443a76b33714213549356c0c5c3) )
+ ROM_LOAD( "b04-06.28", 0x40000, 0x20000, CRC(002ccf39) SHA1(fdc29f39198f9b488e298ee89b0eeb3417527733) )
+ ROM_LOAD( "b04-08.27", 0x60000, 0x20000, CRC(feafca05) SHA1(9de9ff1fcf037e5ab25c181b678245041238d6ae) )
+
+ ROM_REGION( 0x10000, "adpcm", 0 )
+ ROM_LOAD( "b04-20.76", 0x0000, 0x10000, CRC(fd1a34cc) SHA1(b1682959521fa295769207b75cf7d839e9ec95fd) )
+ROM_END
+
+ROM_START( rastaneh )
+ ROM_REGION( 0x60000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "b04-38.19", 0x00000, 0x10000, CRC(1c91dbb1) SHA1(17fc55e8546cc0b847aebd67fb4570a1e9f128f3) )
+ ROM_LOAD16_BYTE( "b04-37.7", 0x00001, 0x10000, CRC(ecf20bdd) SHA1(92e46b1edef40a19be17091c09daba598d77bca8) )
+ ROM_LOAD16_BYTE( "dh_ic20_40.bin", 0x20000, 0x10000, CRC(8f1ab70d) SHA1(58356b1b02d7c7de9f59bb8413782f655ebf0012) )
+ ROM_LOAD16_BYTE( "dh_ic08_39.bin", 0x20001, 0x10000, CRC(553a1ed8) SHA1(ef872bcdf681dd5f723907da3a36c065b618c563) )
+ ROM_LOAD16_BYTE( "b04-42.21", 0x40000, 0x10000, CRC(1857a7cb) SHA1(7d967d04ade648c6ddb19aad9e184b6e272856da) )
+ ROM_LOAD16_BYTE( "eh_ic09_43.bin", 0x40001, 0x10000, CRC(71037966) SHA1(f32d87a47535c6eae9016b7cc027d347236c217e) )
+
+ ROM_REGION( 0x1c000, "audiocpu", 0 )
+ ROM_LOAD( "b04-19.49", 0x00000, 0x4000, CRC(ee81fdd8) SHA1(fa59dac2583a7d2979550dffc6f9c6c2bd67bfd5) )
+ ROM_CONTINUE( 0x10000, 0xc000 )
+
+ ROM_REGION( 0x080000, "gfx1", 0 )
+ ROM_LOAD( "b04-01.40", 0x00000, 0x20000, CRC(cd30de19) SHA1(f8d158d38cd07a24cb5ddefd4ce90beec706924d) )
+ ROM_LOAD( "b04-03.39", 0x20000, 0x20000, CRC(ab67e064) SHA1(5c49f0ff9221cba9f2bb8da86eb4448c73012410) )
+ ROM_LOAD( "b04-02.67", 0x40000, 0x20000, CRC(54040fec) SHA1(a2bea2ce1cebd25b33be41723299ca0512d95f9e) )
+ ROM_LOAD( "b04-04.66", 0x60000, 0x20000, CRC(94737e93) SHA1(3df7f085fe6468bda11fab2e86252df6f74f7a99) )
+
+ ROM_REGION( 0x080000, "gfx2", 0 )
+ ROM_LOAD( "b04-05.15", 0x00000, 0x20000, CRC(c22d94ac) SHA1(04f69f9af7ac4242e95dba32988afa3616d75a92) )
+ ROM_LOAD( "b04-07.14", 0x20000, 0x20000, CRC(b5632a51) SHA1(da6ebe6afe245443a76b33714213549356c0c5c3) )
+ ROM_LOAD( "b04-06.28", 0x40000, 0x20000, CRC(002ccf39) SHA1(fdc29f39198f9b488e298ee89b0eeb3417527733) )
+ ROM_LOAD( "b04-08.27", 0x60000, 0x20000, CRC(feafca05) SHA1(9de9ff1fcf037e5ab25c181b678245041238d6ae) )
+
+ ROM_REGION( 0x10000, "adpcm", 0 )
+ ROM_LOAD( "b04-20.76", 0x0000, 0x10000, CRC(fd1a34cc) SHA1(b1682959521fa295769207b75cf7d839e9ec95fd) )
+ROM_END
+
+ROM_START( rastane2 )
+ ROM_REGION( 0x60000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "b04-38.19", 0x00000, 0x10000, CRC(1c91dbb1) SHA1(17fc55e8546cc0b847aebd67fb4570a1e9f128f3) )
+ ROM_LOAD16_BYTE( "b04-37.7", 0x00001, 0x10000, CRC(ecf20bdd) SHA1(92e46b1edef40a19be17091c09daba598d77bca8) )
+ ROM_LOAD16_BYTE( "dh_ic20_40.bin", 0x20000, 0x10000, CRC(8f1ab70d) SHA1(58356b1b02d7c7de9f59bb8413782f655ebf0012) )
+ ROM_LOAD16_BYTE( "dh_ic08_39.bin", 0x20001, 0x10000, CRC(553a1ed8) SHA1(ef872bcdf681dd5f723907da3a36c065b618c563) )
+ ROM_LOAD16_BYTE( "e2_ic21_42.bin", 0x40000, 0x10000, CRC(27845873) SHA1(b6197e15ee2655135d0fc8e72cc44fa3bcc73c10) )
+ ROM_LOAD16_BYTE( "e2_ic09_43.bin", 0x40001, 0x10000, CRC(a38131f3) SHA1(f46cda36d698c688f1b1bfee9945915194a30ebd) )
+
+ ROM_REGION( 0x1c000, "audiocpu", 0 )
+ ROM_LOAD( "b04-19.49", 0x00000, 0x4000, CRC(ee81fdd8) SHA1(fa59dac2583a7d2979550dffc6f9c6c2bd67bfd5) )
+ ROM_CONTINUE( 0x10000, 0xc000 )
+
+ ROM_REGION( 0x080000, "gfx1", 0 )
+ ROM_LOAD( "b04-01.40", 0x00000, 0x20000, CRC(cd30de19) SHA1(f8d158d38cd07a24cb5ddefd4ce90beec706924d) )
+ ROM_LOAD( "b04-03.39", 0x20000, 0x20000, CRC(ab67e064) SHA1(5c49f0ff9221cba9f2bb8da86eb4448c73012410) )
+ ROM_LOAD( "b04-02.67", 0x40000, 0x20000, CRC(54040fec) SHA1(a2bea2ce1cebd25b33be41723299ca0512d95f9e) )
+ ROM_LOAD( "b04-04.66", 0x60000, 0x20000, CRC(94737e93) SHA1(3df7f085fe6468bda11fab2e86252df6f74f7a99) )
+
+ ROM_REGION( 0x080000, "gfx2", 0 )
+ ROM_LOAD( "b04-05.15", 0x00000, 0x20000, CRC(c22d94ac) SHA1(04f69f9af7ac4242e95dba32988afa3616d75a92) )
+ ROM_LOAD( "b04-07.14", 0x20000, 0x20000, CRC(b5632a51) SHA1(da6ebe6afe245443a76b33714213549356c0c5c3) )
+ ROM_LOAD( "b04-06.28", 0x40000, 0x20000, CRC(002ccf39) SHA1(fdc29f39198f9b488e298ee89b0eeb3417527733) )
+ ROM_LOAD( "b04-08.27", 0x60000, 0x20000, CRC(feafca05) SHA1(9de9ff1fcf037e5ab25c181b678245041238d6ae) )
+
+ ROM_REGION( 0x10000, "adpcm", 0 )
+ ROM_LOAD( "b04-20.76", 0x0000, 0x10000, CRC(fd1a34cc) SHA1(b1682959521fa295769207b75cf7d839e9ec95fd) )
+ROM_END
+
+
+GAME( 2000, rastwack, rastan, rastan, rastsaga, driver_device, 0, ROT0, "Vogel", "Wacky Rastan", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, rastandh, rastan, rastan, rastsaga, driver_device, 0, ROT0, "Neil Pearce", "Rastan Dragon Hack", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, rastand2, rastan, rastan, rastsaga, driver_device, 0, ROT0, "Neil Pearce", "Rastan Dragon Hack (set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, rastaneh, rastan, rastan, rastsaga, driver_device, 0, ROT0, "Neil Pearce", "Rastan Enemy Hack", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, rastane2, rastan, rastan, rastsaga, driver_device, 0, ROT0, "Neil Pearce", "Rastan Enemy Hack (set 2)", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/retofinv.cpp b/docs/release/src/hbmame/drivers/retofinv.cpp
new file mode 100644
index 00000000000..dfe0eb21f47
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/retofinv.cpp
@@ -0,0 +1,40 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/retofinv.cpp"
+
+ROM_START( retofinv4 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "a37-03.70", 0x0000, 0x2000, CRC(eae7459d) SHA1(c105f6adbd4c09decaad68ed13163d8f9b55e646) )
+ ROM_LOAD( "a37-02.71", 0x2000, 0x2000, CRC(72895e37) SHA1(42fb904338e9f92a79d587eac401d456e7fb6e55) )
+ ROM_LOAD( "a37-01.72", 0x4000, 0x2000, CRC(505dd20b) SHA1(3a34b1515bb834ff9e2d86b0b43a752d9619307b) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "a37-04.62", 0x0000, 0x2000, CRC(d2899cc1) SHA1(fdbec743b06f4cdcc134ef863e4e71337ad0b2c5) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "a37-05.17", 0x0000, 0x2000, CRC(9025abea) SHA1(2f03e8572f23624d7cd1215a55109e97fd66e271) )
+
+ ROM_REGION( 0x0800, "68705:mcu", 0 )
+ ROM_LOAD( "a37-09.37", 0x00000, 0x0800, BAD_DUMP CRC(79bd6ded) SHA1(4967e95b4461c1bfb4e933d1804677799014f77b) )
+
+ ROM_REGION( 0x02000, "gfx1", 0 )
+ ROM_LOAD( "4_a37-16.61", 0x0000, 0x2000, CRC(e0de0cc4) SHA1(a9a19ed25de26306a328cc158843f43ade6eede1) )
+
+ ROM_REGION( 0x08000, "gfx2", 0 )
+ ROM_LOAD( "4_a37-10.8", 0x0000, 0x2000, CRC(c691fdbe) SHA1(b2f4c41cb0d059c9aa8045fc3e8e684bcc96b309) )
+ ROM_LOAD( "4_a37-11.9", 0x2000, 0x2000, CRC(0ff8cf5b) SHA1(46a67a8d7d59cdbf1a4ce9e8b9361a5766880e96) )
+ ROM_LOAD( "4_a37-12.10", 0x4000, 0x2000, CRC(90fd7496) SHA1(db2a98f4b07996d178c99a2653e1df1be4619644) )
+ ROM_LOAD( "4_a37-13.11", 0x6000, 0x2000, CRC(a2526b5e) SHA1(a31999c86aff8977cbec4bd24056a097aaa738c7) )
+
+ ROM_REGION( 0x04000, "gfx3", 0 )
+ ROM_LOAD( "4_a37-14.55", 0x0000, 0x2000, CRC(f233c421) SHA1(77da9750f88d032143968104e0b400ed1a07adca) )
+ ROM_LOAD( "4_a37-15.56", 0x2000, 0x2000, CRC(58c3f1c9) SHA1(5e0c46a5cd6adfcccba5cf33271a51a23ff9752a) )
+
+ ROM_REGION( 0x0b00, "proms", 0 )
+ ROM_LOAD( "a37-06.13", 0x0000, 0x0100, CRC(e9643b8b) SHA1(7bbb92a42e7c3effb701fc7b2c24f2470f31b063) )
+ ROM_LOAD( "a37-07.4", 0x0100, 0x0100, CRC(e8f34e11) SHA1(8f438561b8d46ffff00747ed8baf0ebb6a081615) )
+ ROM_LOAD( "a37-08.3", 0x0200, 0x0100, CRC(50030af0) SHA1(e748ae0b8702b7d20fb65c254dceee23246b3d13) )
+ ROM_LOAD( "82s191n", 0x0300, 0x0800, CRC(93c891e3) SHA1(643a0107717b6a434432dda73a0102e6e8adbca7) )
+ROM_END
+
+GAME( 2011, retofinv4, retofinv, retofinv, retofinv, driver_device, 0, ROT90, "Paul Smith", "Return of the Invaders (hack)", 0 )
diff --git a/docs/release/src/hbmame/drivers/schaser.cpp b/docs/release/src/hbmame/drivers/schaser.cpp
new file mode 100644
index 00000000000..0a906ca9ac3
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/schaser.cpp
@@ -0,0 +1,602 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+/****************************************************************************************
+
+Space Chaser (CV version)
+
+August, 2008 by Robbbert
+
+No diagram, therefore this is a Hack Job.
+
+
+These cheats exist in this game:
+1. Hold down 2P DOWN (the F key) while it says INSERT COIN. Then insert a coin
+ and play. You will have 2 extra ships.
+2. In the Hard difficulty setting, you normally start at level 4. Hold down the
+ 1P START (the 1 key) while it says INSERT COIN. Then insert a coin and play.
+ You will start at level 5.
+
+
+Changes:
+1. Used the existing Discrete System for all sounds
+2. Removed IN0 as it is never referenced
+3. Identified and documented input cheats
+4. Added watchdog
+5. Added coin lockout
+
+*******************************************************************************************/
+
+#include "emu.h"
+#include "cpu/i8085/i8085.h"
+#include "machine/mb14241.h"
+#include "sound/sn76477.h"
+#include "sound/discrete.h"
+#include "screen.h"
+#include "speaker.h"
+
+#define MW8080BW_MASTER_CLOCK (19968000.0)
+#define MW8080BW_CPU_CLOCK (MW8080BW_MASTER_CLOCK / 10)
+#define MW8080BW_PIXEL_CLOCK (MW8080BW_MASTER_CLOCK / 4)
+#define MW8080BW_HTOTAL (0x140)
+#define MW8080BW_HBEND (0x000)
+#define MW8080BW_HBSTART (0x100)
+#define MW8080BW_VTOTAL (0x106)
+#define MW8080BW_VBEND (0x000)
+#define MW8080BW_VBSTART (0x0e0)
+#define MW8080BW_VCOUNTER_START_NO_VBLANK (0x020)
+#define MW8080BW_VCOUNTER_START_VBLANK (0x0da)
+#define MW8080BW_INT_TRIGGER_COUNT_1 (0x080)
+#define MW8080BW_INT_TRIGGER_VBLANK_1 (0)
+#define MW8080BW_INT_TRIGGER_COUNT_2 MW8080BW_VCOUNTER_START_VBLANK
+#define MW8080BW_INT_TRIGGER_VBLANK_2 (1)
+#define MW8080BW_HPIXCOUNT MW8080BW_HBSTART
+
+class sc_state : public driver_device
+{
+public:
+ sc_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag)
+ , m_maincpu(*this,"maincpu")
+ , m_p_ram(*this, "ram")
+ , m_p_colorram(*this, "colorram")
+ , m_sn(*this, "snsnd")
+ , m_discrete(*this, "discrete")
+ , m_555_timer(*this, "schaser_sh_555")
+ , m_screen(*this, "screen")
+ { }
+
+ DECLARE_READ8_MEMBER(mw8080bw_shift_result_rev_r);
+ DECLARE_READ8_MEMBER(mw8080bw_reversable_shift_result_r);
+ DECLARE_WRITE8_MEMBER(mw8080bw_reversable_shift_count_w);
+ DECLARE_READ8_MEMBER(port02_r);
+ DECLARE_WRITE8_MEMBER(port03_w);
+ DECLARE_WRITE8_MEMBER(port05_w);
+ DECLARE_WRITE8_MEMBER(colour_w);
+ DECLARE_MACHINE_START(sc);
+ DECLARE_MACHINE_RESET(sc);
+ TIMER_DEVICE_CALLBACK_MEMBER(schaser_effect_555_cb);
+ TIMER_CALLBACK_MEMBER(mw8080bw_interrupt_callback);
+ uint32_t screen_update_schasercv(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+private:
+
+ bool m_flip_screen;
+ bool m_sound_enabled;
+ bool m_explosion;
+ bool m_555_is_low;
+ attotime m_555_time_remain;
+ int32_t m_555_time_remain_savable;
+ uint8_t m_last_effect;
+ uint8_t m_sound_seq;
+ emu_timer *m_interrupt_timer;
+ uint8_t vpos_to_vysnc_chain_counter( int vpos );
+ int vysnc_chain_counter_to_vpos( uint8_t counter, int vblank );
+ void schaser_reinit_555_time_remain();
+ void mw8080bw_create_interrupt_timer( );
+ void mw8080bw_start_interrupt_timer( );
+ required_device<cpu_device> m_maincpu;
+ required_shared_ptr<uint8_t> m_p_ram;
+ required_shared_ptr<uint8_t> m_p_colorram;
+ required_device<sn76477_device> m_sn;
+ required_device<discrete_device> m_discrete;
+ required_device<timer_device> m_555_timer;
+ required_device<screen_device> m_screen;
+};
+
+/*
+ * The dot sound is a square wave clocked by either the
+ * the 8V or 4V signals
+ *
+ * The frequencies are (for the 8V signal):
+ *
+ * 19.968 MHz crystal / 2 (Qa of 74160 #10) -> 9.984MHz
+ * / 2 (7474 #14) -> 4.992MHz
+ * / 256+16 (74161 #5 and #8) -> 18352.94Hz
+ * / 8 (8V) -> 2294.12 Hz
+ * / 2 the final freq. is 2 toggles -> 1147.06Hz
+ *
+ * for 4V, it's double at 2294.12Hz
+ */
+#define SCHASER_HSYNC 18352.94
+#define SCHASER_4V SCHASER_HSYNC /2 /4
+#define SCHASER_8V SCHASER_HSYNC /2 /8
+
+/* Nodes - Inputs */
+#define SCHASER_DOT_EN NODE_01
+#define SCHASER_DOT_SEL NODE_02
+#define SCHASER_EXP_STREAM NODE_03
+#define SCHASER_MUSIC_BIT NODE_04
+#define SCHASER_SND_EN NODE_05
+/* Nodes - Adjusters */
+#define SCHASER_VR1 NODE_07
+#define SCHASER_VR2 NODE_08
+#define SCHASER_VR3 NODE_09
+/* Nodes - Sounds */
+#define SCHASER_DOT_SND NODE_10
+#define SCHASER_EXP_SND NODE_11
+#define SCHASER_MUSIC_SND NODE_12
+
+DISCRETE_SOUND_START(schaser)
+ /************************************************/
+ /* Input register mapping for schaser */
+ /************************************************/
+ DISCRETE_INPUT_LOGIC (SCHASER_DOT_EN)
+ DISCRETE_INPUT_LOGIC (SCHASER_DOT_SEL)
+ // scale to 0-3.5V
+ DISCRETE_INPUTX_STREAM(SCHASER_EXP_STREAM, 0, 1.0/14100, 2.323)
+ DISCRETE_INPUTX_LOGIC (SCHASER_MUSIC_BIT, DEFAULT_TTL_V_LOGIC_1, 0, 0.0)
+ DISCRETE_INPUT_LOGIC (SCHASER_SND_EN)
+
+ /************************************************/
+ /* Volume adjusters. */
+ /* We will set them to adjust the relative */
+ /* gains. */
+ /************************************************/
+ DISCRETE_ADJUSTMENT(SCHASER_VR1, 0, RES_K(50)/(RES_K(50) + RES_K(470)), DISC_LINADJ, "VR1")
+ DISCRETE_ADJUSTMENT(SCHASER_VR2, 0, RES_K(50)/(RES_K(50) + 560 + RES_K(6.8) + RES_K(2)), DISC_LINADJ, "VR2")
+ DISCRETE_ADJUSTMENT(SCHASER_VR3, 0, RES_K(50)/(RES_K(50) + 560 + RES_K(6.8) + RES_K(10)), DISC_LINADJ, "VR3")
+
+ /************************************************/
+ /* Dot selection just selects between 4V and 8V */
+ /************************************************/
+ DISCRETE_SQUAREWFIX(NODE_20, 1, SCHASER_4V, DEFAULT_TTL_V_LOGIC_1, 50, 0, 0)
+ DISCRETE_SQUAREWFIX(NODE_21, 1, SCHASER_8V, DEFAULT_TTL_V_LOGIC_1, 50, 0, 0)
+ DISCRETE_SWITCH(NODE_22, SCHASER_DOT_EN, SCHASER_DOT_SEL, NODE_20, NODE_21)
+ DISCRETE_RCFILTER(NODE_23, NODE_22, 560, CAP_U(.1))
+ DISCRETE_RCFILTER(NODE_24, NODE_23, RES_K(6.8) + 560, CAP_U(.1))
+ DISCRETE_MULTIPLY(SCHASER_DOT_SND, NODE_24, SCHASER_VR3)
+
+ /************************************************/
+ /* Explosion/Effect filtering */
+ /************************************************/
+ DISCRETE_RCFILTER(NODE_30, SCHASER_EXP_STREAM, 560, CAP_U(.1))
+ DISCRETE_RCFILTER(NODE_31, NODE_30, RES_K(6.8) + 560, CAP_U(.1))
+ DISCRETE_CRFILTER(NODE_32, NODE_31, RES_K(6.8) + 560 + RES_K(2) + RES_K(50), CAP_U(1))
+ DISCRETE_MULTIPLY(SCHASER_EXP_SND, NODE_32, SCHASER_VR2)
+
+ /************************************************/
+ /* Music is just a 1 bit DAC */
+ /************************************************/
+ DISCRETE_CRFILTER(NODE_40, SCHASER_MUSIC_BIT, RES_K(470) + RES_K(50), CAP_U(.01))
+ DISCRETE_MULTIPLY(SCHASER_MUSIC_SND, NODE_40, SCHASER_VR1)
+
+ /************************************************/
+ /* Final mix with gain */
+ /************************************************/
+ DISCRETE_ADDER3(NODE_90, SCHASER_SND_EN, SCHASER_DOT_SND, SCHASER_EXP_SND, SCHASER_MUSIC_SND)
+
+ DISCRETE_OUTPUT(NODE_90, 33080)
+DISCRETE_SOUND_END
+
+static const double schaser_effect_rc[8] =
+{
+ 0,
+ (RES_K(15) + RES_K(20)) * CAP_U(1),
+ (RES_K(39) + RES_K(20)) * CAP_U(1),
+ (1.0/ (1.0/RES_K(15) + 1.0/RES_K(39)) + RES_K(20)) * CAP_U(1),
+ (RES_K(82) + RES_K(20)) * CAP_U(1),
+ (1.0/ (1.0/RES_K(15) + 1.0/RES_K(82)) + RES_K(20)) * CAP_U(1),
+ (1.0/ (1.0/RES_K(15) + 1.0/RES_K(82)) + RES_K(20)) * CAP_U(1),
+ (1.0/ (1.0/RES_K(15) + 1.0/RES_K(39) + 1.0/RES_K(82)) + RES_K(20)) * CAP_U(1)
+};
+
+WRITE8_MEMBER(sc_state::port03_w)
+{
+ /* bit 1 - Dot Sound Enable
+ bit 2 - Effect Sound A (a stream of pulses)
+ bit 3 - Effect Sound B (a stream of pulses)
+ bit 4 - Explosion (a stream of ff's with some fe's thrown in)
+ bit 5 - Goes high when first dot hit */
+
+ uint8_t effect = 0, byte = data & 0x2c;
+
+ /* If you use fuel, the dot sound turns into a continuous beep.
+
+ The effect sequence is really bizarre, however a pattern exists. */
+
+ m_explosion = BIT(data, 4);
+ if (!m_explosion) m_discrete->write(space, SCHASER_DOT_EN, BIT(data, 1)); /* prevents beep during explosion */
+
+ if (!m_sound_enabled) /* sound disabled */
+ m_sound_seq=0;
+ else
+ if ((m_sound_seq == 0) && (m_sound_enabled)) /* normal play */
+ m_sound_seq=1;
+ else
+ if ((m_sound_seq == 1) && (byte == 0x28)) /* going faster... */
+ m_sound_seq=2;
+ else
+ if ((m_sound_seq == 2) && (byte == 0x24)) /* and faster... */
+ m_sound_seq=3;
+ else
+ if ((m_sound_seq < 4) && (byte == 0x2c)) /* died */
+ m_sound_seq=4;
+ else
+ if ((m_sound_seq > 2) && (byte == 0)) /* finished stage, and the pause before a stage starts */
+ m_sound_seq=5;
+
+ if (m_sound_seq == 1) effect=4; /* normal speed */
+ else
+ if (m_sound_seq == 2) effect=2; /* going faster... */
+ else
+ if (m_sound_seq == 3) effect=1; /* and faster... */
+ /* effect = 0 when no missile on screen, or in attract mode */
+
+
+ if (m_last_effect != effect)
+ {
+ if (effect)
+ {
+ if (m_555_time_remain != attotime::zero)
+ {
+ /* timer re-enabled, use up remaining 555 high time */
+ m_555_timer->adjust(m_555_time_remain, effect);
+ }
+ else if (!m_555_is_low)
+ {
+ /* set 555 high time */
+ attotime new_time = attotime(0, ATTOSECONDS_PER_SECOND * .8873 * schaser_effect_rc[effect]);
+ m_555_timer->adjust(new_time, effect);
+ }
+ }
+ else
+ {
+ /* disable effect - stops at end of low cycle */
+ if (!m_555_is_low)
+ {
+ m_555_time_remain = attotime::zero;
+ m_555_time_remain_savable = m_555_time_remain.as_double();
+ m_555_timer->adjust(attotime::never);
+ }
+ }
+ m_last_effect = effect;
+ }
+
+ if (m_explosion)
+ m_sn->amplitude_res_w(1.0 / (1.0/RES_K(200) + 1.0/RES_K(68)));
+ else
+ m_sn->amplitude_res_w(RES_K(200));
+
+ m_sn->enable_w(!(m_555_is_low | m_explosion));
+ m_sn->one_shot_cap_voltage_w(!(m_555_is_low | m_explosion) ? 0 : SN76477_EXTERNAL_VOLTAGE_DISCONNECT);
+ m_sn->mixer_b_w(m_explosion);
+}
+
+WRITE8_MEMBER(sc_state::port05_w)
+{
+ /* bit 0 - Music (DAC)
+ bit 2 - Coin Lockout
+ bit 4 - Sound Enable
+ bit 5 - Flip Screen
+ There are no field control bits. Therefore the green mask can never appear.
+ The sound is enabled early on the stages that should have the mask. */
+
+ m_discrete->write(space, SCHASER_MUSIC_BIT, BIT(data, 0));
+
+ m_sound_enabled = BIT(data, 4);
+ m_discrete->write(space, SCHASER_SND_EN, m_sound_enabled);
+ machine().sound().system_enable(m_sound_enabled);
+
+ machine().bookkeeping().coin_lockout_global_w(BIT(data, 2));
+
+ m_flip_screen = BIT(data, 5) & ioport("CAB")->read();
+}
+
+
+TIMER_DEVICE_CALLBACK_MEMBER(sc_state::schaser_effect_555_cb)
+{
+ uint8_t effect = param;
+ attotime new_time;
+
+ /* Toggle 555 output */
+ m_555_is_low ^= 1;
+ m_555_time_remain = attotime::zero;
+ m_555_time_remain_savable = m_555_time_remain.as_double();
+
+ if (m_555_is_low)
+ new_time = PERIOD_OF_555_ASTABLE(0, RES_K(20), CAP_U(1)) / 2;
+ else
+ {
+ if (effect)
+ new_time = attotime(0, ATTOSECONDS_PER_SECOND * .8873 * schaser_effect_rc[effect]);
+ else
+ new_time = attotime::never;
+ }
+ m_555_timer->adjust(new_time, effect);
+ m_sn->enable_w(!(m_555_is_low | m_explosion));
+ m_sn->one_shot_cap_voltage_w(!(m_555_is_low | m_explosion) ? 0 : SN76477_EXTERNAL_VOLTAGE_DISCONNECT);
+}
+
+
+void sc_state::schaser_reinit_555_time_remain()
+{
+ m_555_time_remain = attotime::from_double(m_555_time_remain_savable);
+}
+
+
+MACHINE_START_MEMBER( sc_state, sc )
+{
+ save_item(NAME(m_flip_screen));
+ save_item(NAME(m_sound_enabled));
+ save_item(NAME(m_explosion));
+ save_item(NAME(m_last_effect));
+ save_item(NAME(m_sound_seq));
+ save_item(NAME(m_555_is_low));
+ save_item(NAME(m_555_time_remain_savable));
+ machine().save().register_postload(save_prepost_delegate(FUNC(sc_state::schaser_reinit_555_time_remain), this));
+ mw8080bw_create_interrupt_timer();
+}
+
+
+MACHINE_RESET_MEMBER( sc_state, sc )
+{
+ m_flip_screen = 0;
+ m_sound_enabled = 0;
+ m_explosion = 0;
+ m_last_effect = 0xff;
+ m_sound_seq = 0;
+ m_555_is_low = 0;
+ m_555_time_remain = attotime::zero;
+ m_555_time_remain_savable = m_555_time_remain.as_double();
+ m_555_timer->adjust(attotime::never);
+
+ address_space &space = m_maincpu->space(AS_PROGRAM);
+ port03_w(space, 0, 0);
+ port05_w(space, 0, 0);
+ mw8080bw_start_interrupt_timer();
+}
+
+uint8_t sc_state::vpos_to_vysnc_chain_counter( int vpos )
+{
+ /* convert from a vertical position to the actual values on the vertical sync counters */
+ uint8_t counter;
+ int vblank = (vpos >= MW8080BW_VBSTART);
+
+ if (vblank)
+ counter = vpos - MW8080BW_VBSTART + MW8080BW_VCOUNTER_START_VBLANK;
+ else
+ counter = vpos + MW8080BW_VCOUNTER_START_NO_VBLANK;
+
+ return counter;
+}
+
+
+int sc_state::vysnc_chain_counter_to_vpos( uint8_t counter, int vblank )
+{
+ /* convert from the vertical sync counters to an actual vertical position */
+ int vpos;
+
+ if (vblank)
+ vpos = counter - MW8080BW_VCOUNTER_START_VBLANK + MW8080BW_VBSTART;
+ else
+ vpos = counter - MW8080BW_VCOUNTER_START_NO_VBLANK;
+
+ return vpos;
+}
+
+
+TIMER_CALLBACK_MEMBER(sc_state::mw8080bw_interrupt_callback)
+{
+ uint8_t next_counter;
+ int next_vpos;
+ int next_vblank;
+
+ /* compute vector and set the interrupt line */
+ int vpos = m_screen->vpos();
+ uint8_t counter = vpos_to_vysnc_chain_counter(vpos);
+ uint8_t vector = 0xc7 | ((counter & 0x40) >> 2) | ((~counter & 0x40) >> 3);
+ m_maincpu->set_input_line_and_vector(0, HOLD_LINE, vector);
+
+ /* set up for next interrupt */
+ if (counter == MW8080BW_INT_TRIGGER_COUNT_1)
+ {
+ next_counter = MW8080BW_INT_TRIGGER_COUNT_2;
+ next_vblank = MW8080BW_INT_TRIGGER_VBLANK_2;
+ }
+ else
+ {
+ next_counter = MW8080BW_INT_TRIGGER_COUNT_1;
+ next_vblank = MW8080BW_INT_TRIGGER_VBLANK_1;
+ }
+
+ next_vpos = vysnc_chain_counter_to_vpos(next_counter, next_vblank);
+ m_interrupt_timer->adjust(m_screen->time_until_pos(next_vpos));
+}
+
+
+void sc_state::mw8080bw_create_interrupt_timer( )
+{
+ m_interrupt_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(sc_state::mw8080bw_interrupt_callback),this));
+}
+
+
+void sc_state::mw8080bw_start_interrupt_timer( )
+{
+ int vpos = vysnc_chain_counter_to_vpos(MW8080BW_INT_TRIGGER_COUNT_1, MW8080BW_INT_TRIGGER_VBLANK_1);
+ m_interrupt_timer->adjust(m_screen->time_until_pos(vpos));
+}
+
+
+
+uint32_t sc_state::screen_update_schasercv(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
+{
+ pen_t pens[8];
+ offs_t offs;
+ uint8_t i, x, y, data, fg, color;
+
+ for (i = 0; i < 8; i++)
+ pens[i] = rgb_t(pal1bit(i >> 0), pal1bit(i >> 2), pal1bit(i >> 1));
+
+ for (offs = 0; offs < m_p_ram.bytes(); offs++)
+ {
+ y = offs >> 5;
+ x = offs << 3;
+
+ data = m_p_ram[offs];
+ fg = m_p_colorram[offs & 0x1f9f] & 0x07;
+
+ for (i = 0; i < 8; i++)
+ {
+ color = BIT(data, i) ? fg : 2;
+
+ if (y >= MW8080BW_VCOUNTER_START_NO_VBLANK)
+ {
+ if (m_flip_screen)
+ bitmap.pix32(MW8080BW_VBSTART - 1 - (y - MW8080BW_VCOUNTER_START_NO_VBLANK), MW8080BW_HPIXCOUNT - 1 - x) = pens[color];
+ else
+ bitmap.pix32(y - MW8080BW_VCOUNTER_START_NO_VBLANK, x) = pens[color];
+ }
+
+ x++;
+ }
+ }
+
+ return 0;
+}
+
+READ8_MEMBER(sc_state::port02_r)
+{
+ uint8_t data = ioport("IN2")->read();
+ if (m_flip_screen) return data;
+ uint8_t in1 = ioport("IN1")->read();
+ return (data & 0x89) | (in1 & 0x70) | (BIT(in1, 3) << 1) | (BIT(in1, 7) << 2);
+}
+
+WRITE8_MEMBER( sc_state::colour_w )
+{
+ m_p_colorram[offset & 0x1f9f] = data;
+}
+
+static ADDRESS_MAP_START( schaser_map, AS_PROGRAM, 8, sc_state )
+ AM_RANGE(0x0000, 0x1fff) AM_ROM
+ AM_RANGE(0x2000, 0x3fff) AM_RAM AM_SHARE("ram")
+ AM_RANGE(0x4000, 0x5fff) AM_ROM
+ AM_RANGE(0xc000, 0xdfff) AM_SHARE("colorram") AM_WRITE(colour_w)
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( schasercv_io_map, AS_IO, 8, sc_state )
+ AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
+ AM_RANGE(0x02, 0x02) AM_READ(port02_r) AM_DEVWRITE("mb14241", mb14241_device, shift_count_w)
+ AM_RANGE(0x03, 0x03) AM_DEVREAD("mb14241", mb14241_device, shift_result_r) AM_WRITE(port03_w)
+ AM_RANGE(0x04, 0x04) AM_DEVWRITE("mb14241", mb14241_device, shift_data_w)
+ AM_RANGE(0x05, 0x05) AM_WRITE(port05_w)
+ AM_RANGE(0x06, 0x06) AM_WRITENOP //(watchdog_reset_w)
+ADDRESS_MAP_END
+
+
+static INPUT_PORTS_START( schasercv )
+ PORT_START("IN1")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 )
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 )
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 )
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY
+
+ PORT_START("IN2")
+ PORT_DIPNAME( 0x01, 0x00, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:1")
+ PORT_DIPSETTING( 0x00, "3" )
+ PORT_DIPSETTING( 0x01, "4" )
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_PLAYER(2)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY PORT_PLAYER(2)
+ PORT_DIPNAME( 0x08, 0x00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:2")
+ PORT_DIPSETTING( 0x00, DEF_STR( Easy ) )
+ PORT_DIPSETTING( 0x08, DEF_STR( Hard ) )
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_DIPLOCATION("SW1:5")
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_PLAYER(2) PORT_DIPLOCATION("SW1:6")
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_PLAYER(2) PORT_DIPLOCATION("SW1:7")
+ PORT_DIPUNKNOWN_DIPLOC( 0x80, 0x00, "SW1:3" ) /* doesn't do anything */
+
+ PORT_START("VR1")
+ PORT_ADJUSTER( 70, "VR1 - Music Volume" )
+
+ PORT_START("VR2")
+ PORT_ADJUSTER( 90, "VR2 - Explosion/Effect Volume" )
+
+ PORT_START("VR3")
+ PORT_ADJUSTER( 70, "VR3 - Dot Volume" )
+
+ PORT_START("CAB")
+ PORT_CONFNAME( 0x01, 0x00, DEF_STR( Cabinet ) )
+ PORT_CONFSETTING( 0x00, DEF_STR( Upright ) )
+ PORT_CONFSETTING( 0x01, DEF_STR( Cocktail ) )
+INPUT_PORTS_END
+
+static MACHINE_CONFIG_START( schasercv, sc_state )
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu",I8080,MW8080BW_CPU_CLOCK)
+ MCFG_CPU_PROGRAM_MAP(schaser_map)
+ MCFG_CPU_IO_MAP(schasercv_io_map)
+ MCFG_MACHINE_START_OVERRIDE(sc_state,sc)
+ MCFG_MACHINE_RESET_OVERRIDE(sc_state,sc)
+
+ /* video hardware */
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_RAW_PARAMS(MW8080BW_PIXEL_CLOCK, MW8080BW_HTOTAL, MW8080BW_HBEND, MW8080BW_HPIXCOUNT, MW8080BW_VTOTAL, MW8080BW_VBEND, MW8080BW_VBSTART)
+ MCFG_SCREEN_UPDATE_DRIVER(sc_state, screen_update_schasercv)
+
+ /* add shifter */
+ MCFG_MB14241_ADD("mb14241")
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+
+ MCFG_SOUND_ADD("snsnd", SN76477, 0)
+ MCFG_SN76477_NOISE_PARAMS(RES_K(47), RES_K(330), CAP_P(470)) // noise + filter
+ MCFG_SN76477_DECAY_RES(RES_M(2.2)) // decay_res
+ MCFG_SN76477_ATTACK_PARAMS(CAP_U(1.0), RES_K(4.7)) // attack_decay_cap + attack_res
+ MCFG_SN76477_AMP_RES(0) // amplitude_res
+ MCFG_SN76477_FEEDBACK_RES(RES_K(33)) // feedback_res
+ MCFG_SN76477_VCO_PARAMS(0, CAP_U(0.1), RES_K(39)) // VCO volt + cap + res
+ MCFG_SN76477_PITCH_VOLTAGE(5.0) // pitch_voltage
+ MCFG_SN76477_SLF_PARAMS(CAP_U(1.0), RES_K(120)) // slf caps + res
+ MCFG_SN76477_ONESHOT_PARAMS(CAP_U(0.1), RES_K(220)) // oneshot caps + res
+ MCFG_SN76477_VCO_MODE(1) // VCO mode
+ MCFG_SN76477_MIXER_PARAMS(0, 0, 0) // mixer A, B, C
+ MCFG_SN76477_ENVELOPE_PARAMS(1, 0) // envelope 1, 2
+ MCFG_SN76477_ENABLE(1) // enable
+ MCFG_SOUND_ROUTE_EX(0, "discrete", 1.0, 0)
+
+ MCFG_SOUND_ADD("discrete", DISCRETE, 0)
+ MCFG_DISCRETE_INTF(schaser)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
+
+ MCFG_TIMER_DRIVER_ADD("schaser_sh_555", sc_state, schaser_effect_555_cb)
+MACHINE_CONFIG_END
+
+ROM_START( schasrcv )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "1", 0x0000, 0x0400, CRC(bec2b16b) SHA1(c62210ecb64d7c38e5b63481d7fe04eb59bb1068) )
+ ROM_LOAD( "2", 0x0400, 0x0400, CRC(9d25e608) SHA1(4cc52a93a3ab96a0ec1d07593e17832fa59b30a1) )
+ ROM_LOAD( "3", 0x0800, 0x0400, CRC(113d0635) SHA1(ab5e98d0b5fc37d7d69bb5c541681a0f66460440) )
+ ROM_LOAD( "4", 0x0c00, 0x0400, CRC(f3a43c8d) SHA1(29a7a8b7d1de763a255cfec79157fd95e7bff551) )
+ ROM_LOAD( "5", 0x1000, 0x0400, CRC(47c84f23) SHA1(61b475fa92b8335f8edd3a128d8ac8561658e464) )
+ ROM_LOAD( "6", 0x1400, 0x0400, CRC(02ff2199) SHA1(e12c235b2064cb4bb426145172e523256e3c6358) )
+ ROM_LOAD( "7", 0x1800, 0x0400, CRC(87d06b88) SHA1(2d743161f85e47cb8ee2a600cbee790b1ad7ad99) )
+ ROM_LOAD( "8", 0x1c00, 0x0400, CRC(6dfaad08) SHA1(2184c4e2f4b6bffdc4fe13e178134331fcd43253) )
+ ROM_LOAD( "9", 0x4000, 0x0400, CRC(3d1a2ae3) SHA1(672ad6590aebdfebc2748455fa638107f3934c41) )
+ ROM_LOAD( "10", 0x4400, 0x0400, CRC(037edb99) SHA1(f2fc5e61f962666e7f6bb81753ac24ea0b97e581) )
+ROM_END
+
+GAME( 1979, schasrcv, 0, schasercv, schasercv, driver_device, 0, ROT270, "Taito", "Space Chaser (CV version)(Extra Sounds)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_COLORS )
diff --git a/docs/release/src/hbmame/drivers/segac2.cpp b/docs/release/src/hbmame/drivers/segac2.cpp
new file mode 100644
index 00000000000..346dbb2e597
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/segac2.cpp
@@ -0,0 +1,15 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/segac2.cpp"
+
+/* http://frogfeast.rastersoft.net/SegaC2.html
+ It appears from the source that the sound is going through a Z80 - but the C2 hardware doesn't have one...
+ Also there are unmapped writes to A00000-A00100, A11100, A11200. */
+
+ROM_START( c2frog )
+ ROM_REGION( 0x1000000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "epr13114.32", 0x000000, 0x020000, CRC(d7039bd3) SHA1(82b9e3a760ebc845afe7bd78f22b897e1a530651) )
+ ROM_LOAD16_BYTE( "epr13113.31", 0x000001, 0x020000, CRC(754b111a) SHA1(5542fc3b955df843e15e7c98aebc4f80c7d44b69) )
+ROM_END
+
+GAME( 2007, c2frog, 0, segac, columns, segac2_state, columns, ROT0, "Rastersoft", "Frog Feast (Sega C2 hardware)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/segag80r.cpp b/docs/release/src/hbmame/drivers/segag80r.cpp
new file mode 100644
index 00000000000..69189ad81ba
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/segag80r.cpp
@@ -0,0 +1,38 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/segag80r.cpp"
+
+ROM_START( astrob2h ) // same as astrob2 except u2 and u4
+ ROM_REGION( 0xc000, "maincpu", 0 )
+ ROM_LOAD( "829b.cpu-u25", 0x0000, 0x0800, CRC(14ae953c) SHA1(eb63d1b95faa5193db7fa6ab245e99325d519b5e) )
+ ROM_LOAD( "888a.prom-u1", 0x0800, 0x0800, CRC(42601744) SHA1(6bb58384c28b2105746a2f410f5e0979609db9bf) )
+ ROM_LOAD( "889b2h.u2", 0x1000, 0x0800, CRC(9fcdc62f) SHA1(6dbf7e1ad62548263ca5edaa81d38cbc7a9a281f) )
+ ROM_LOAD( "890.prom-u3", 0x1800, 0x0800, CRC(26f5b4cf) SHA1(be45e802f976b8847689ae8de7159843ac9100eb) )
+ ROM_LOAD( "891b2h.u4", 0x2000, 0x0800, CRC(74f906dc) SHA1(edf9efc0ec25f578214b26010d99385c0bace3ad) )
+ ROM_LOAD( "892.prom-u5", 0x2800, 0x0800, CRC(2d3c949b) SHA1(17e3c5300793f2345ff6e28e82cd7a22f1d6e41f) )
+ ROM_LOAD( "893.prom-u6", 0x3000, 0x0800, CRC(ccdb1a76) SHA1(1c8f0555e397c5558bbfca1fa1487cc32aca8592) )
+ ROM_LOAD( "894.prom-u7", 0x3800, 0x0800, CRC(66ae5ced) SHA1(81bb6e3adcc76ffbeafefecce5fe5541a7eefc37) )
+ ROM_LOAD( "895.prom-u8", 0x4000, 0x0800, CRC(202cf3a3) SHA1(26fcccfb3e94b2a01d38c14daa66713c223efb18) )
+ ROM_LOAD( "896.prom-u9", 0x4800, 0x0800, CRC(b603fe23) SHA1(3128877355a9c5bba5cd22e9addf4c8b79ee39d2) )
+ ROM_LOAD( "897.prom-u10", 0x5000, 0x0800, CRC(989198c6) SHA1(3344bf7272e388571026c4e68a2e4e5e0ebbc5e3) )
+ ROM_LOAD( "898.prom-u11", 0x5800, 0x0800, CRC(ef2bab04) SHA1(108a9812cb9d1ec4629b0306c45ba164f94ab426) )
+ ROM_LOAD( "899.prom-u12", 0x6000, 0x0800, CRC(e0d189ee) SHA1(dcab31d64e6b2d248a82cbae9e37afe031dfc6cd) )
+ ROM_LOAD( "900.prom-u13", 0x6800, 0x0800, CRC(682d4604) SHA1(6ac0d2d8ff407cc7e10b460736ae7fbc21148640) )
+ ROM_LOAD( "901.prom-u14", 0x7000, 0x0800, CRC(9ed11c61) SHA1(dd965c06d2013acdabd958e713109eeb049d5d5e) )
+ ROM_LOAD( "902.prom-u15", 0x7800, 0x0800, CRC(b4d6c330) SHA1(922a562b5f1a8a286e6777ba7d141bd0db6e2a92) )
+ ROM_LOAD( "903a.prom-u16", 0x8000, 0x0800, CRC(84acc38c) SHA1(86bed143ac2d95116e50e77b5c262d67156c6a59) )
+ ROM_LOAD( "904.prom-u17", 0x8800, 0x0800, CRC(5eba3097) SHA1(e785d1c1cea50aa25e5eea5e58a0c48fd53208c6) )
+ ROM_LOAD( "905.prom-u18", 0x9000, 0x0800, CRC(4f08f9f4) SHA1(755a825b18ed50caa7bf274a0a5c3a1b00b1c070) )
+ ROM_LOAD( "906.prom-u19", 0x9800, 0x0800, CRC(58149df1) SHA1(2bba56576a225ca47ce31a5b6dcc491546dfffec) )
+
+ ROM_REGION( 0x0800, "audiocpu", 0 )
+ ROM_LOAD( "808b.speech-u7", 0x0000, 0x0800, CRC(5988c767) SHA1(3b91a8cd46aa7e714028cc40f700fea32287afb1) )
+
+ ROM_REGION( 0x4000, "speech", 0 )
+ ROM_LOAD( "809a.speech-u6", 0x0000, 0x0800, CRC(893f228d) SHA1(41c08210d322105f5446cfaa1258c194dd078a34) )
+ ROM_LOAD( "810.speech-u5", 0x0800, 0x0800, CRC(ff0163c5) SHA1(158a12f9bf01d25c7e98f34fce56df51d49e5a85) )
+ ROM_LOAD( "811.speech-u4", 0x1000, 0x0800, CRC(219f3978) SHA1(728edb9251f7cde237fa3b005971366a099c6342) )
+ ROM_LOAD( "812a.speech-u3", 0x1800, 0x0800, CRC(410ad0d2) SHA1(9b5f05bb64a6ecfe3543025a10c6ec67de797333) )
+ROM_END
+
+GAME( 1981, astrob2h, astrob, astrob, astrob2, segag80r_state, astrob, ROT270, "Clay Cowgill", "Astro Blaster (ver 2 Hack)", 0 )
diff --git a/docs/release/src/hbmame/drivers/segaorun.cpp b/docs/release/src/hbmame/drivers/segaorun.cpp
new file mode 100644
index 00000000000..1bf93213ba0
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/segaorun.cpp
@@ -0,0 +1,220 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/segaorun.cpp"
+
+ROM_START( outrunen )
+ ROM_REGION( 0x60000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "outrunen.133", 0x000000, 0x10000, CRC(90e6ecec) SHA1(a2dfb4934770c107504f358e0b0c1ed6b4dece40) )
+ ROM_LOAD16_BYTE( "outrunen.118", 0x000001, 0x10000, CRC(e227af3c) SHA1(f5387d50b6c1cfa426b89aaaef521217e8c6530a) )
+ ROM_LOAD16_BYTE( "outrunen.132", 0x020000, 0x10000, CRC(0c87bce3) SHA1(25bdbd94d4574d90214a1df9d5a9c56f43675aaf) )
+ ROM_LOAD16_BYTE( "outrunen.117", 0x020001, 0x10000, CRC(28a5e93e) SHA1(7dda2eef158783562b17fd57ad1a94f061e34d5d) )
+
+ ROM_REGION( 0x60000, "subcpu", 0 )
+ ROM_LOAD16_BYTE( "epr-10327a.76", 0x00000, 0x10000, CRC(e28a5baf) SHA1(f715bde96c73ed47035acf5a41630fdeb41bb2f9) )
+ ROM_LOAD16_BYTE( "epr-10329a.58", 0x00001, 0x10000, CRC(da131c81) SHA1(57d5219bd0e2fd886217e37e8773fd76be9b40eb) )
+ ROM_LOAD16_BYTE( "epr-10328a.75", 0x20000, 0x10000, CRC(d5ec5e5d) SHA1(a4e3cfca4d803e72bc4fcf91ab00e21bf3f8959f) )
+ ROM_LOAD16_BYTE( "epr-10330a.57", 0x20001, 0x10000, CRC(ba9ec82a) SHA1(2136c9572e26b7ae6de402c0cd53174407cc6018) )
+
+ ROM_REGION( 0x30000, "gfx1", 0 )
+ ROM_LOAD( "opr-10268.99", 0x00000, 0x08000, CRC(95344b04) SHA1(b3480714b11fc49b449660431f85d4ba92f799ba) )
+ ROM_LOAD( "opr-10232.102", 0x08000, 0x08000, CRC(776ba1eb) SHA1(e3477961d19e694c97643066534a1f720e0c4327) )
+ ROM_LOAD( "opr-10267.100", 0x10000, 0x08000, CRC(a85bb823) SHA1(a7e0143dee5a47e679fd5155e58e717813912692) )
+ ROM_LOAD( "opr-10231.103", 0x18000, 0x08000, CRC(8908bcbf) SHA1(8e1237b640a6f26bdcbfd5e201dadb2687c4febb) )
+ ROM_LOAD( "opr-10266.101", 0x20000, 0x08000, CRC(9f6f1a74) SHA1(09164e858ebeedcff4d389524ddf89e7c216dcae) )
+ ROM_LOAD( "opr-10230.104", 0x28000, 0x08000, CRC(686f5e50) SHA1(03697b892f911177968aa40de6c5f464eb0258e7) )
+
+ ROM_REGION32_LE( 0x100000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "mpr-10371.9", 0x00000, 0x20000, CRC(7cc86208) SHA1(21320f945f7c8e990c97c9b1232a0f4b6bd00f8f) )
+ ROM_LOAD32_BYTE( "mpr-10373.10", 0x00001, 0x20000, CRC(b0d26ac9) SHA1(3a9ce8547cd43b7b04abddf9a9ab5634e0bbfaba) )
+ ROM_LOAD32_BYTE( "mpr-10375.11", 0x00002, 0x20000, CRC(59b60bd7) SHA1(e5d8c67e020608edd24ba87b7687b2ac2483ee7f) )
+ ROM_LOAD32_BYTE( "mpr-10377.12", 0x00003, 0x20000, CRC(17a1b04a) SHA1(9f7210cb4153ac9029a785dcd4b45f4513a4b008) )
+ ROM_LOAD32_BYTE( "mpr-10372.13", 0x80000, 0x20000, CRC(b557078c) SHA1(a3746a2da077a8df4932348f650a061f413e8430) )
+ ROM_LOAD32_BYTE( "mpr-10374.14", 0x80001, 0x20000, CRC(8051e517) SHA1(9c8509fbed170b4ac74c169da573393e54774f49) )
+ ROM_LOAD32_BYTE( "mpr-10376.15", 0x80002, 0x20000, CRC(f3b8f318) SHA1(a5f2532613f33a64441e0f75443c10ba78dccc6e) )
+ ROM_LOAD32_BYTE( "mpr-10378.16", 0x80003, 0x20000, CRC(a1062984) SHA1(4399030a155caf71f2dec7f75c4b65531ab53576) )
+
+ ROM_REGION( 0x10000, "gfx3", 0 ) // road gfx (2 identical roms, 1 for each road)
+ ROM_LOAD( "opr-10186.47", 0x0000, 0x8000, CRC(22794426) SHA1(a554d4b68e71861a0d0da4d031b3b811b246f082) )
+ ROM_LOAD( "opr-10185.11", 0x8000, 0x8000, CRC(22794426) SHA1(a554d4b68e71861a0d0da4d031b3b811b246f082) )
+
+ ROM_REGION( 0x10000, "soundcpu", 0 )
+ ROM_LOAD( "epr-10187.88", 0x00000, 0x8000, CRC(a10abaa9) SHA1(01c8a819587a66d2ee4d255656e36fa0904377b0) )
+
+ ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF )
+ ROM_LOAD( "opr-10193.66", 0x00000, 0x08000, CRC(bcd10dde) SHA1(417ce1d7242884640c5b14f4db8ee57cde7d085d) )
+ ROM_RELOAD( 0x08000, 0x08000 )
+ ROM_LOAD( "opr-10192.67", 0x10000, 0x08000, CRC(770f1270) SHA1(686bdf44d45c1d6002622f6658f037735382f3e0) )
+ ROM_RELOAD( 0x18000, 0x08000 )
+ ROM_LOAD( "opr-10191.68", 0x20000, 0x08000, CRC(20a284ab) SHA1(7c9027416d4122791ba53782fe2230cf02b7d506) )
+ ROM_RELOAD( 0x28000, 0x08000 )
+ ROM_LOAD( "opr-10190.69", 0x30000, 0x08000, CRC(7cab70e2) SHA1(a3c581d2b438630d0d4c39481dcfd85681c9f889) )
+ ROM_RELOAD( 0x38000, 0x08000 )
+ ROM_LOAD( "opr-10189.70", 0x40000, 0x08000, CRC(01366b54) SHA1(f467a6b807694d5832a985f5381c170d24aaee4e) )
+ ROM_RELOAD( 0x48000, 0x08000 )
+ ROM_LOAD( "outrunen.71", 0x50000, 0x08000, CRC(37598616) SHA1(e7c8ae6c59742e1de7ec5a95c5aebfab5716d959) )
+ ROM_RELOAD( 0x58000, 0x08000 )
+ROM_END
+
+ROM_START( outrunen0 )
+ ROM_REGION( 0x60000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "outrunen0.133", 0x000000, 0x10000, CRC(f4d07c15) SHA1(7d1ba7683e2f8c1942281d5de1ce636eec1ea3a1) )
+ ROM_LOAD16_BYTE( "outrunen0.118", 0x000001, 0x10000, CRC(8f97042f) SHA1(ff587eba8fa0c31c30266e6030aa7df3de90e98d) )
+ ROM_LOAD16_BYTE( "outrunen.132", 0x020000, 0x10000, CRC(0c87bce3) SHA1(25bdbd94d4574d90214a1df9d5a9c56f43675aaf) )
+ ROM_LOAD16_BYTE( "outrunen0.117", 0x020001, 0x10000, CRC(ffc9884b) SHA1(35409afaf32a68bcfca4af60a036e66b2defa7fe) )
+
+ ROM_REGION( 0x60000, "subcpu", 0 )
+ ROM_LOAD16_BYTE( "epr-10327a.76", 0x00000, 0x10000, CRC(e28a5baf) SHA1(f715bde96c73ed47035acf5a41630fdeb41bb2f9) )
+ ROM_LOAD16_BYTE( "epr-10329a.58", 0x00001, 0x10000, CRC(da131c81) SHA1(57d5219bd0e2fd886217e37e8773fd76be9b40eb) )
+ ROM_LOAD16_BYTE( "epr-10328a.75", 0x20000, 0x10000, CRC(d5ec5e5d) SHA1(a4e3cfca4d803e72bc4fcf91ab00e21bf3f8959f) )
+ ROM_LOAD16_BYTE( "epr-10330a.57", 0x20001, 0x10000, CRC(ba9ec82a) SHA1(2136c9572e26b7ae6de402c0cd53174407cc6018) )
+
+ ROM_REGION( 0x30000, "gfx1", 0 )
+ ROM_LOAD( "opr-10268.99", 0x00000, 0x08000, CRC(95344b04) SHA1(b3480714b11fc49b449660431f85d4ba92f799ba) )
+ ROM_LOAD( "opr-10232.102", 0x08000, 0x08000, CRC(776ba1eb) SHA1(e3477961d19e694c97643066534a1f720e0c4327) )
+ ROM_LOAD( "opr-10267.100", 0x10000, 0x08000, CRC(a85bb823) SHA1(a7e0143dee5a47e679fd5155e58e717813912692) )
+ ROM_LOAD( "opr-10231.103", 0x18000, 0x08000, CRC(8908bcbf) SHA1(8e1237b640a6f26bdcbfd5e201dadb2687c4febb) )
+ ROM_LOAD( "opr-10266.101", 0x20000, 0x08000, CRC(9f6f1a74) SHA1(09164e858ebeedcff4d389524ddf89e7c216dcae) )
+ ROM_LOAD( "opr-10230.104", 0x28000, 0x08000, CRC(686f5e50) SHA1(03697b892f911177968aa40de6c5f464eb0258e7) )
+
+ ROM_REGION32_LE( 0x100000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "mpr-10371.9", 0x00000, 0x20000, CRC(7cc86208) SHA1(21320f945f7c8e990c97c9b1232a0f4b6bd00f8f) )
+ ROM_LOAD32_BYTE( "mpr-10373.10", 0x00001, 0x20000, CRC(b0d26ac9) SHA1(3a9ce8547cd43b7b04abddf9a9ab5634e0bbfaba) )
+ ROM_LOAD32_BYTE( "mpr-10375.11", 0x00002, 0x20000, CRC(59b60bd7) SHA1(e5d8c67e020608edd24ba87b7687b2ac2483ee7f) )
+ ROM_LOAD32_BYTE( "mpr-10377.12", 0x00003, 0x20000, CRC(17a1b04a) SHA1(9f7210cb4153ac9029a785dcd4b45f4513a4b008) )
+ ROM_LOAD32_BYTE( "mpr-10372.13", 0x80000, 0x20000, CRC(b557078c) SHA1(a3746a2da077a8df4932348f650a061f413e8430) )
+ ROM_LOAD32_BYTE( "mpr-10374.14", 0x80001, 0x20000, CRC(8051e517) SHA1(9c8509fbed170b4ac74c169da573393e54774f49) )
+ ROM_LOAD32_BYTE( "mpr-10376.15", 0x80002, 0x20000, CRC(f3b8f318) SHA1(a5f2532613f33a64441e0f75443c10ba78dccc6e) )
+ ROM_LOAD32_BYTE( "mpr-10378.16", 0x80003, 0x20000, CRC(a1062984) SHA1(4399030a155caf71f2dec7f75c4b65531ab53576) )
+
+ ROM_REGION( 0x10000, "gfx3", 0 ) // road gfx (2 identical roms, 1 for each road)
+ ROM_LOAD( "opr-10186.47", 0x0000, 0x8000, CRC(22794426) SHA1(a554d4b68e71861a0d0da4d031b3b811b246f082) )
+ ROM_LOAD( "opr-10185.11", 0x8000, 0x8000, CRC(22794426) SHA1(a554d4b68e71861a0d0da4d031b3b811b246f082) )
+
+ ROM_REGION( 0x10000, "soundcpu", 0 )
+ ROM_LOAD( "epr-10187.88", 0x00000, 0x8000, CRC(a10abaa9) SHA1(01c8a819587a66d2ee4d255656e36fa0904377b0) )
+
+ ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF )
+ ROM_LOAD( "opr-10193.66", 0x00000, 0x08000, CRC(bcd10dde) SHA1(417ce1d7242884640c5b14f4db8ee57cde7d085d) )
+ ROM_RELOAD( 0x08000, 0x08000 )
+ ROM_LOAD( "opr-10192.67", 0x10000, 0x08000, CRC(770f1270) SHA1(686bdf44d45c1d6002622f6658f037735382f3e0) )
+ ROM_RELOAD( 0x18000, 0x08000 )
+ ROM_LOAD( "opr-10191.68", 0x20000, 0x08000, CRC(20a284ab) SHA1(7c9027416d4122791ba53782fe2230cf02b7d506) )
+ ROM_RELOAD( 0x28000, 0x08000 )
+ ROM_LOAD( "opr-10190.69", 0x30000, 0x08000, CRC(7cab70e2) SHA1(a3c581d2b438630d0d4c39481dcfd85681c9f889) )
+ ROM_RELOAD( 0x38000, 0x08000 )
+ ROM_LOAD( "opr-10189.70", 0x40000, 0x08000, CRC(01366b54) SHA1(f467a6b807694d5832a985f5381c170d24aaee4e) )
+ ROM_RELOAD( 0x48000, 0x08000 )
+ ROM_LOAD( "opr-10188.71", 0x50000, 0x08000, CRC(bad30ad9) SHA1(f70dd3a6362c314adef313b064102f7a250401c8) )
+ ROM_RELOAD( 0x58000, 0x08000 )
+ROM_END
+
+ROM_START( outrunen1 )
+ ROM_REGION( 0x60000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "outrunen1.133", 0x000000, 0x10000, CRC(5ea17a9e) SHA1(accd6a4412542857e07239ceea72a7f6ec9fb2da) )
+ ROM_LOAD16_BYTE( "outrunen1.118", 0x000001, 0x10000, CRC(455e67d8) SHA1(b3f3bcde8f5655ba3dc743573b6d91b8ca2faddc) )
+ ROM_LOAD16_BYTE( "outrunen.132", 0x020000, 0x10000, CRC(0c87bce3) SHA1(25bdbd94d4574d90214a1df9d5a9c56f43675aaf) )
+ ROM_LOAD16_BYTE( "outrunen0.117", 0x020001, 0x10000, CRC(ffc9884b) SHA1(35409afaf32a68bcfca4af60a036e66b2defa7fe) )
+
+ ROM_REGION( 0x60000, "subcpu", 0 )
+ ROM_LOAD16_BYTE( "epr-10327a.76", 0x00000, 0x10000, CRC(e28a5baf) SHA1(f715bde96c73ed47035acf5a41630fdeb41bb2f9) )
+ ROM_LOAD16_BYTE( "epr-10329a.58", 0x00001, 0x10000, CRC(da131c81) SHA1(57d5219bd0e2fd886217e37e8773fd76be9b40eb) )
+ ROM_LOAD16_BYTE( "epr-10328a.75", 0x20000, 0x10000, CRC(d5ec5e5d) SHA1(a4e3cfca4d803e72bc4fcf91ab00e21bf3f8959f) )
+ ROM_LOAD16_BYTE( "epr-10330a.57", 0x20001, 0x10000, CRC(ba9ec82a) SHA1(2136c9572e26b7ae6de402c0cd53174407cc6018) )
+
+ ROM_REGION( 0x30000, "gfx1", 0 )
+ ROM_LOAD( "opr-10268.99", 0x00000, 0x08000, CRC(95344b04) SHA1(b3480714b11fc49b449660431f85d4ba92f799ba) )
+ ROM_LOAD( "opr-10232.102", 0x08000, 0x08000, CRC(776ba1eb) SHA1(e3477961d19e694c97643066534a1f720e0c4327) )
+ ROM_LOAD( "opr-10267.100", 0x10000, 0x08000, CRC(a85bb823) SHA1(a7e0143dee5a47e679fd5155e58e717813912692) )
+ ROM_LOAD( "opr-10231.103", 0x18000, 0x08000, CRC(8908bcbf) SHA1(8e1237b640a6f26bdcbfd5e201dadb2687c4febb) )
+ ROM_LOAD( "opr-10266.101", 0x20000, 0x08000, CRC(9f6f1a74) SHA1(09164e858ebeedcff4d389524ddf89e7c216dcae) )
+ ROM_LOAD( "opr-10230.104", 0x28000, 0x08000, CRC(686f5e50) SHA1(03697b892f911177968aa40de6c5f464eb0258e7) )
+
+ ROM_REGION32_LE( 0x100000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "mpr-10371.9", 0x00000, 0x20000, CRC(7cc86208) SHA1(21320f945f7c8e990c97c9b1232a0f4b6bd00f8f) )
+ ROM_LOAD32_BYTE( "mpr-10373.10", 0x00001, 0x20000, CRC(b0d26ac9) SHA1(3a9ce8547cd43b7b04abddf9a9ab5634e0bbfaba) )
+ ROM_LOAD32_BYTE( "mpr-10375.11", 0x00002, 0x20000, CRC(59b60bd7) SHA1(e5d8c67e020608edd24ba87b7687b2ac2483ee7f) )
+ ROM_LOAD32_BYTE( "mpr-10377.12", 0x00003, 0x20000, CRC(17a1b04a) SHA1(9f7210cb4153ac9029a785dcd4b45f4513a4b008) )
+ ROM_LOAD32_BYTE( "mpr-10372.13", 0x80000, 0x20000, CRC(b557078c) SHA1(a3746a2da077a8df4932348f650a061f413e8430) )
+ ROM_LOAD32_BYTE( "mpr-10374.14", 0x80001, 0x20000, CRC(8051e517) SHA1(9c8509fbed170b4ac74c169da573393e54774f49) )
+ ROM_LOAD32_BYTE( "mpr-10376.15", 0x80002, 0x20000, CRC(f3b8f318) SHA1(a5f2532613f33a64441e0f75443c10ba78dccc6e) )
+ ROM_LOAD32_BYTE( "mpr-10378.16", 0x80003, 0x20000, CRC(a1062984) SHA1(4399030a155caf71f2dec7f75c4b65531ab53576) )
+
+ ROM_REGION( 0x10000, "gfx3", 0 ) // road gfx (2 identical roms, 1 for each road)
+ ROM_LOAD( "opr-10186.47", 0x0000, 0x8000, CRC(22794426) SHA1(a554d4b68e71861a0d0da4d031b3b811b246f082) )
+ ROM_LOAD( "opr-10185.11", 0x8000, 0x8000, CRC(22794426) SHA1(a554d4b68e71861a0d0da4d031b3b811b246f082) )
+
+ ROM_REGION( 0x10000, "soundcpu", 0 )
+ ROM_LOAD( "epr-10187.88", 0x00000, 0x8000, CRC(a10abaa9) SHA1(01c8a819587a66d2ee4d255656e36fa0904377b0) )
+
+ ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF )
+ ROM_LOAD( "opr-10193.66", 0x00000, 0x08000, CRC(bcd10dde) SHA1(417ce1d7242884640c5b14f4db8ee57cde7d085d) )
+ ROM_RELOAD( 0x08000, 0x08000 )
+ ROM_LOAD( "opr-10192.67", 0x10000, 0x08000, CRC(770f1270) SHA1(686bdf44d45c1d6002622f6658f037735382f3e0) )
+ ROM_RELOAD( 0x18000, 0x08000 )
+ ROM_LOAD( "opr-10191.68", 0x20000, 0x08000, CRC(20a284ab) SHA1(7c9027416d4122791ba53782fe2230cf02b7d506) )
+ ROM_RELOAD( 0x28000, 0x08000 )
+ ROM_LOAD( "opr-10190.69", 0x30000, 0x08000, CRC(7cab70e2) SHA1(a3c581d2b438630d0d4c39481dcfd85681c9f889) )
+ ROM_RELOAD( 0x38000, 0x08000 )
+ ROM_LOAD( "opr-10189.70", 0x40000, 0x08000, CRC(01366b54) SHA1(f467a6b807694d5832a985f5381c170d24aaee4e) )
+ ROM_RELOAD( 0x48000, 0x08000 )
+ ROM_LOAD( "opr-10188.71", 0x50000, 0x08000, CRC(bad30ad9) SHA1(f70dd3a6362c314adef313b064102f7a250401c8) )
+ ROM_RELOAD( 0x58000, 0x08000 )
+ROM_END
+
+ROM_START( outrunen2 )
+ ROM_REGION( 0x60000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "outrunen2.133", 0x000000, 0x10000, CRC(c2db4cb7) SHA1(64c3f87f759204efe2a9014e8daee8cf7396ee76) )
+ ROM_LOAD16_BYTE( "outrunen2.118", 0x000001, 0x10000, CRC(c330de11) SHA1(72cb40a0f60eae452619e64c70ae49d00857a039) )
+ ROM_LOAD16_BYTE( "outrunen.132", 0x020000, 0x10000, CRC(0c87bce3) SHA1(25bdbd94d4574d90214a1df9d5a9c56f43675aaf) )
+ ROM_LOAD16_BYTE( "outrunen.117", 0x020001, 0x10000, CRC(28a5e93e) SHA1(7dda2eef158783562b17fd57ad1a94f061e34d5d) )
+
+ ROM_REGION( 0x60000, "subcpu", 0 )
+ ROM_LOAD16_BYTE( "epr-10327a.76", 0x00000, 0x10000, CRC(e28a5baf) SHA1(f715bde96c73ed47035acf5a41630fdeb41bb2f9) )
+ ROM_LOAD16_BYTE( "epr-10329a.58", 0x00001, 0x10000, CRC(da131c81) SHA1(57d5219bd0e2fd886217e37e8773fd76be9b40eb) )
+ ROM_LOAD16_BYTE( "epr-10328a.75", 0x20000, 0x10000, CRC(d5ec5e5d) SHA1(a4e3cfca4d803e72bc4fcf91ab00e21bf3f8959f) )
+ ROM_LOAD16_BYTE( "epr-10330a.57", 0x20001, 0x10000, CRC(ba9ec82a) SHA1(2136c9572e26b7ae6de402c0cd53174407cc6018) )
+
+ ROM_REGION( 0x30000, "gfx1", 0 )
+ ROM_LOAD( "opr-10268.99", 0x00000, 0x08000, CRC(95344b04) SHA1(b3480714b11fc49b449660431f85d4ba92f799ba) )
+ ROM_LOAD( "opr-10232.102", 0x08000, 0x08000, CRC(776ba1eb) SHA1(e3477961d19e694c97643066534a1f720e0c4327) )
+ ROM_LOAD( "opr-10267.100", 0x10000, 0x08000, CRC(a85bb823) SHA1(a7e0143dee5a47e679fd5155e58e717813912692) )
+ ROM_LOAD( "opr-10231.103", 0x18000, 0x08000, CRC(8908bcbf) SHA1(8e1237b640a6f26bdcbfd5e201dadb2687c4febb) )
+ ROM_LOAD( "opr-10266.101", 0x20000, 0x08000, CRC(9f6f1a74) SHA1(09164e858ebeedcff4d389524ddf89e7c216dcae) )
+ ROM_LOAD( "opr-10230.104", 0x28000, 0x08000, CRC(686f5e50) SHA1(03697b892f911177968aa40de6c5f464eb0258e7) )
+
+ ROM_REGION32_LE( 0x100000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "mpr-10371.9", 0x00000, 0x20000, CRC(7cc86208) SHA1(21320f945f7c8e990c97c9b1232a0f4b6bd00f8f) )
+ ROM_LOAD32_BYTE( "mpr-10373.10", 0x00001, 0x20000, CRC(b0d26ac9) SHA1(3a9ce8547cd43b7b04abddf9a9ab5634e0bbfaba) )
+ ROM_LOAD32_BYTE( "mpr-10375.11", 0x00002, 0x20000, CRC(59b60bd7) SHA1(e5d8c67e020608edd24ba87b7687b2ac2483ee7f) )
+ ROM_LOAD32_BYTE( "mpr-10377.12", 0x00003, 0x20000, CRC(17a1b04a) SHA1(9f7210cb4153ac9029a785dcd4b45f4513a4b008) )
+ ROM_LOAD32_BYTE( "mpr-10372.13", 0x80000, 0x20000, CRC(b557078c) SHA1(a3746a2da077a8df4932348f650a061f413e8430) )
+ ROM_LOAD32_BYTE( "mpr-10374.14", 0x80001, 0x20000, CRC(8051e517) SHA1(9c8509fbed170b4ac74c169da573393e54774f49) )
+ ROM_LOAD32_BYTE( "mpr-10376.15", 0x80002, 0x20000, CRC(f3b8f318) SHA1(a5f2532613f33a64441e0f75443c10ba78dccc6e) )
+ ROM_LOAD32_BYTE( "mpr-10378.16", 0x80003, 0x20000, CRC(a1062984) SHA1(4399030a155caf71f2dec7f75c4b65531ab53576) )
+
+ ROM_REGION( 0x10000, "gfx3", 0 ) // road gfx (2 identical roms, 1 for each road)
+ ROM_LOAD( "opr-10186.47", 0x0000, 0x8000, CRC(22794426) SHA1(a554d4b68e71861a0d0da4d031b3b811b246f082) )
+ ROM_LOAD( "opr-10185.11", 0x8000, 0x8000, CRC(22794426) SHA1(a554d4b68e71861a0d0da4d031b3b811b246f082) )
+
+ ROM_REGION( 0x10000, "soundcpu", 0 )
+ ROM_LOAD( "epr-10187.88", 0x00000, 0x8000, CRC(a10abaa9) SHA1(01c8a819587a66d2ee4d255656e36fa0904377b0) )
+
+ ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF )
+ ROM_LOAD( "opr-10193.66", 0x00000, 0x08000, CRC(bcd10dde) SHA1(417ce1d7242884640c5b14f4db8ee57cde7d085d) )
+ ROM_RELOAD( 0x08000, 0x08000 )
+ ROM_LOAD( "opr-10192.67", 0x10000, 0x08000, CRC(770f1270) SHA1(686bdf44d45c1d6002622f6658f037735382f3e0) )
+ ROM_RELOAD( 0x18000, 0x08000 )
+ ROM_LOAD( "opr-10191.68", 0x20000, 0x08000, CRC(20a284ab) SHA1(7c9027416d4122791ba53782fe2230cf02b7d506) )
+ ROM_RELOAD( 0x28000, 0x08000 )
+ ROM_LOAD( "opr-10190.69", 0x30000, 0x08000, CRC(7cab70e2) SHA1(a3c581d2b438630d0d4c39481dcfd85681c9f889) )
+ ROM_RELOAD( 0x38000, 0x08000 )
+ ROM_LOAD( "opr-10189.70", 0x40000, 0x08000, CRC(01366b54) SHA1(f467a6b807694d5832a985f5381c170d24aaee4e) )
+ ROM_RELOAD( 0x48000, 0x08000 )
+ ROM_LOAD( "opr-10188.71", 0x50000, 0x08000, CRC(bad30ad9) SHA1(f70dd3a6362c314adef313b064102f7a250401c8) )
+ ROM_RELOAD( 0x58000, 0x08000 )
+ROM_END
+
+GAMEL(2012, outrunen, outrun, outrun, outrun, segaorun_state, outrun, ROT0, "Chris White and Darren Finck", "Out Run Enhanced Edition v1.0.3", 0, layout_outrun )
+GAMEL(2012, outrunen2, outrun, outrun, outrun, segaorun_state, outrun, ROT0, "Chris White and Darren Finck", "Out Run Enhanced Edition v1.0.2", 0, layout_outrun )
+GAMEL(2012, outrunen1, outrun, outrun, outrun, segaorun_state, outrun, ROT0, "Chris White and Darren Finck", "Out Run Enhanced Edition v1.0.1", 0, layout_outrun )
+GAMEL(2012, outrunen0, outrun, outrun, outrun, segaorun_state, outrun, ROT0, "Chris White and Darren Finck", "Out Run Enhanced Edition v1.0.0", 0, layout_outrun )
diff --git a/docs/release/src/hbmame/drivers/segas16b.cpp b/docs/release/src/hbmame/drivers/segas16b.cpp
new file mode 100644
index 00000000000..badecf5e8e2
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/segas16b.cpp
@@ -0,0 +1,34 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/segas16b.cpp"
+
+ROM_START( altbeastfr )
+ ROM_REGION( 0x040000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "altbeastfr.a7", 0x000000, 0x20000, CRC(309d3a0a) SHA1(646dcafe7ac2831e241eb0643a06f8c32bdba77a) )
+ ROM_LOAD16_BYTE( "altbeastfr.a5", 0x000001, 0x20000, CRC(39cd8368) SHA1(6b5890d44b549c3bbe18345ac86943c55f7b9d26) )
+
+ ROM_REGION( 0x60000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "opr-11674.a14", 0x00000, 0x20000, CRC(a57a66d5) SHA1(5103583d48997abad12a0c5fee26431c486ced52) )
+ ROM_LOAD( "opr-11675.a15", 0x20000, 0x20000, CRC(2ef2f144) SHA1(38d22d609db2d9b6067b5d12f6499436de4605cb) )
+ ROM_LOAD( "opr-11676.a16", 0x40000, 0x20000, CRC(0c04acac) SHA1(87fe2a0dd9913f9550e9b4cbc7e7465b61640e07) )
+
+ ROM_REGION16_BE( 0x100000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "epr-11677.b1", 0x00001, 0x20000, CRC(a01425cd) SHA1(72be5ec29e476601f9bf6aaedef9b73cedeb42f0) )
+ ROM_LOAD16_BYTE( "epr-11681.b5", 0x00000, 0x20000, CRC(d9e03363) SHA1(995a7c6a8f0c61468b57a3bb407461a2a3ae8adc) )
+ ROM_LOAD16_BYTE( "epr-11678.b2", 0x40001, 0x20000, CRC(17a9fc53) SHA1(85a9a605742ae5aab86db37189b9ee4d54c70e56) )
+ ROM_LOAD16_BYTE( "epr-11682.b6", 0x40000, 0x20000, CRC(e3f77c5e) SHA1(6b3cb7918ab0c7c97a51cc5ea19ced3374ff3914) )
+ ROM_LOAD16_BYTE( "epr-11679.b3", 0x80001, 0x20000, CRC(14dcc245) SHA1(1ca1b6e0f2b7bedad2a8ab70f52da8c54d40d3cf) )
+ ROM_LOAD16_BYTE( "epr-11683.b7", 0x80000, 0x20000, CRC(f9a60f06) SHA1(0cffcfdb02733feaa869198b7e668c58b47c321a) )
+ ROM_LOAD16_BYTE( "epr-11680.b4", 0xc0001, 0x20000, CRC(f43dcdec) SHA1(2941500cf33afca487f19f2329033d5d17aad826) )
+ ROM_LOAD16_BYTE( "epr-11684.b8", 0xc0000, 0x20000, CRC(b20c0edb) SHA1(6c8694d05e3adac37c9015037ab800233371db36) )
+
+ 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_REGION( 0x1000, "mcu", 0 ) // Intel i8751 protection MCU
+ ROM_LOAD( "317-0078.c2", 0x00000, 0x1000, CRC(8101925f) SHA1(a45d772ebe2fd1a577a6ccac8c6c76bb622258bb) )
+ROM_END
+
+GAME( 1988, altbeastfr, altbeast, system16b_i8751, altbeast, segas16b_state, generic_5521, ROT0, "Arkatrad", "Altered Beast (French)", MACHINE_NOT_WORKING )
diff --git a/docs/release/src/hbmame/drivers/shaolins.cpp b/docs/release/src/hbmame/drivers/shaolins.cpp
new file mode 100644
index 00000000000..bd06432a438
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/shaolins.cpp
@@ -0,0 +1,27 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/shaolins.cpp"
+
+ROM_START( kfjohnny ) // same as kicker except for gfx roms
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "477-l03.d9", 0x6000, 0x2000, CRC(2598dfdd) SHA1(70a9d81b73bbd4ff6b627a3e4102d5328a946d20) )
+ ROM_LOAD( "477-l04.d10", 0x8000, 0x4000, CRC(0cf0351a) SHA1(a9da783b29a63a46912a29715e8d11dc4cd22265) )
+ ROM_LOAD( "477-l05.d11", 0xC000, 0x4000, CRC(654037f8) SHA1(52d098386fe87ae97d4dfefab0bd3a902f66d70b) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "kfjohnny.a10", 0x0000, 0x2000, CRC(be0310d0) SHA1(e615aec557c656121761cf77d9ec4a6d1a6ddbea) )
+ ROM_LOAD( "kfjohnny.a11", 0x2000, 0x2000, CRC(fab8c880) SHA1(b90ae46ee72a000983ec68884f4ea0e406030ba3) )
+
+ ROM_REGION( 0x8000, "gfx2", 0 )
+ ROM_LOAD( "kfjohnny.h15", 0x0000, 0x4000, CRC(f7fbbb9c) SHA1(4b85c1b50a6232be2f6e7b2e497dca86dda387d8) )
+ ROM_LOAD( "kfjohnny.h14", 0x4000, 0x4000, CRC(84bc0cfd) SHA1(2140fe066262a5bdeb1e89d2d6cfa737f88de25d) )
+
+ ROM_REGION( 0x0500, "proms", 0 )
+ ROM_LOAD( "477j10.a12", 0x0000, 0x0100, CRC(b09db4b4) SHA1(d21176cdc7def760da109083eb52e5b6a515021f) )
+ ROM_LOAD( "477j11.a13", 0x0100, 0x0100, CRC(270a2bf3) SHA1(c0aec04bd3bceccddf5f5a814a560a893b29ef6b) )
+ ROM_LOAD( "477j12.a14", 0x0200, 0x0100, CRC(83e95ea8) SHA1(e0bfa20600488f5c66233e13ea6ad857f62acb7c) )
+ ROM_LOAD( "477j09.b8", 0x0300, 0x0100, CRC(aa900724) SHA1(c5343273d0a7101b8ba6876c4f22e43d77610c75) )
+ ROM_LOAD( "477j08.f16", 0x0400, 0x0100, CRC(80009cf5) SHA1(a367f3f55d75a9d5bf4d43f9d77272eb910a1344) )
+ROM_END
+
+GAME( 2002, kfjohnny, kicker, shaolins, shaolins, driver_device, 0, ROT90, "Smitdogg", "Kung-Fu Johnny", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/simple_st0016.cpp b/docs/release/src/hbmame/drivers/simple_st0016.cpp
new file mode 100644
index 00000000000..cf82b3542ed
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/simple_st0016.cpp
@@ -0,0 +1,11 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/simple_st0016.cpp"
+
+ROM_START( renjuk )
+ ROM_REGION( 0x290000, "maincpu", 0 )
+ ROM_LOAD( "renjuk.u31", 0x000000, 0x200000, CRC(2bd052c5) SHA1(724662d6d2ead1ef9dce1fa95d7c15d35fcb5a51) )
+ ROM_LOAD( "rnj2.u32", 0x200000, 0x080000, CRC(2015289c) SHA1(5223b6d3dbe4657cd63cf5b527eaab84cf23587a) )
+ROM_END
+
+GAME( 1994, renjuk, renju, renju, renju, st0016_state, renju, ROT0, "Visco", "Renju Kizoku (Korean)", 0 )
diff --git a/docs/release/src/hbmame/drivers/snk6502.cpp b/docs/release/src/hbmame/drivers/snk6502.cpp
new file mode 100644
index 00000000000..543ddf8c95a
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/snk6502.cpp
@@ -0,0 +1,25 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/snk6502.cpp"
+
+ROM_START( vantris )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "vantris.ic13", 0x8000, 0x1000, CRC(f9f367a5) SHA1(49249a73951ae9a8a965954d8b03627b5fcf4fe3) )
+ ROM_RELOAD( 0xf000, 0x1000 ) // for the reset and interrupt vectors
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "vantris.ic50", 0x0000, 0x0800, CRC(a7061526) SHA1(f5f5860a9dc468cb4177348e0b0592e5adda28f1) )
+ ROM_LOAD( "vantris.ic51", 0x0800, 0x0800, CRC(67bd31ed) SHA1(24f03cf097e5382500a85483351f21913a98fdd5) )
+
+ ROM_REGION( 0x0040, "proms", 0 )
+ ROM_LOAD( "vantris.ic7", 0x0000, 0x0020, CRC(90f17fc1) SHA1(fc92864178cbceccd6f7f2c75249b5c568bdbea8) )
+ ROM_RELOAD( 0x0020, 0x0020 )
+
+ ROM_REGION( 0x1000, "snk6502", 0 )
+ ROM_LOAD( "vantris.ic53", 0x0000, 0x0800, CRC(fd4d8bb0) SHA1(d59ec7569147263aed50041b15aed2ca4f395c23) )
+ ROM_LOAD( "sk4_ic52.bin", 0x0800, 0x0800, CRC(cc4a0b6f) SHA1(251b24d60083d516c4ba686d75b41e04d10f7198) )
+
+ ROM_REGION( 0x5800, "speech", ROMREGION_ERASE00 )
+ROM_END
+
+GAME( 1998, vantris, 0, vanguard, vanguard, driver_device, 0, ROT90, "Norbert Kehrer", "Vantris 98", MACHINE_SUPPORTS_SAVE ) // http://web.utanet.at/nkehrer/vantris.html
diff --git a/docs/release/src/hbmame/drivers/spacmiss.cpp b/docs/release/src/hbmame/drivers/spacmiss.cpp
new file mode 100644
index 00000000000..d6077190635
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/spacmiss.cpp
@@ -0,0 +1,486 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+/****************************************************************************************
+
+Space Missile
+
+Galaxian running on Space Invaders hardware
+
+2013-06-26
+
+*******************************************************************************************/
+
+#include "emu.h"
+#include "cpu/i8085/i8085.h"
+#include "machine/mb14241.h"
+#include "sound/discrete.h"
+#include "sound/samples.h"
+#include "screen.h"
+#include "speaker.h"
+#include "spacmissx.lh"
+
+#define MW8080BW_MASTER_CLOCK (19968000.0)
+#define MW8080BW_CPU_CLOCK (MW8080BW_MASTER_CLOCK / 10)
+#define MW8080BW_PIXEL_CLOCK (MW8080BW_MASTER_CLOCK / 4)
+#define MW8080BW_HTOTAL (0x140)
+#define MW8080BW_HBEND (0x000)
+#define MW8080BW_HBSTART (0x100)
+#define MW8080BW_VTOTAL (0x106)
+#define MW8080BW_VBEND (0x000)
+#define MW8080BW_VBSTART (0x0e0)
+#define MW8080BW_VCOUNTER_START_NO_VBLANK (0x020)
+#define MW8080BW_VCOUNTER_START_VBLANK (0x0da)
+#define MW8080BW_INT_TRIGGER_COUNT_1 (0x080)
+#define MW8080BW_INT_TRIGGER_VBLANK_1 (0)
+#define MW8080BW_INT_TRIGGER_COUNT_2 MW8080BW_VCOUNTER_START_VBLANK
+#define MW8080BW_INT_TRIGGER_VBLANK_2 (1)
+#define MW8080BW_HPIXCOUNT MW8080BW_HBSTART + 6
+
+class sm_state : public driver_device
+{
+public:
+ sm_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag)
+ , m_maincpu(*this,"maincpu")
+ , m_p_ram(*this, "ram")
+ , m_discrete(*this, "discrete")
+ , m_samples(*this, "samples")
+ , m_screen(*this, "screen")
+ { }
+
+ /* device/memory pointers */
+ required_device<cpu_device> m_maincpu;
+ required_shared_ptr<uint8_t> m_p_ram;
+ required_device<discrete_device> m_discrete;
+ required_device<samples_device> m_samples;
+ required_device<screen_device> m_screen;
+
+ bool m_flip_screen;
+ bool m_screen_red;
+ bool m_sound_enabled;
+ uint8_t m_port_1_last_extra;
+ uint8_t m_port_2_last_extra;
+
+ /* timer */
+ emu_timer *m_interrupt_timer;
+
+ DECLARE_READ8_MEMBER(mw8080bw_shift_result_rev_r);
+ DECLARE_READ8_MEMBER(mw8080bw_reversable_shift_result_r);
+ DECLARE_WRITE8_MEMBER(mw8080bw_reversable_shift_count_w);
+ DECLARE_READ8_MEMBER(spacmissx_02_r);
+ DECLARE_WRITE8_MEMBER(spacmissx_03_w);
+ DECLARE_WRITE8_MEMBER(spacmissx_05_w);
+ DECLARE_WRITE8_MEMBER(spacmissx_07_w);
+ DECLARE_MACHINE_START(sm);
+ DECLARE_MACHINE_RESET(sm);
+ uint8_t vpos_to_vysnc_chain_counter( int vpos );
+ int vysnc_chain_counter_to_vpos( uint8_t counter, int vblank );
+ uint32_t screen_update_spacmissx(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ TIMER_CALLBACK_MEMBER(mw8080bw_interrupt_callback);
+ void mw8080bw_create_interrupt_timer( );
+ void mw8080bw_start_interrupt_timer( );
+};
+
+static const discrete_dac_r1_ladder spacmissx_music_dac =
+ {3, {0, RES_K(47), RES_K(12)}, 0, 0, 0, CAP_U(0.1)};
+
+static const discrete_comp_adder_table invaders_thump_resistors =
+{
+ DISC_COMP_P_RESISTOR,
+ 0, /* no cDefault */
+ 4, /* length */
+ { RES_K(20) + RES_K(20), /* R126 + R127 */
+ RES_K(68), /* R128 */
+ RES_K(82), /* R129 */
+ RES_K(100) } /* R130 */
+};
+
+
+static const discrete_555_desc invaders_thump_555 =
+{
+ DISC_555_OUT_ENERGY | DISC_555_OUT_DC,
+ 5,
+ 5.0 - 0.6, /* 5V - diode drop */
+ DEFAULT_TTL_V_LOGIC_1 /* Output of F3 7411 buffer */
+};
+
+static const discrete_mixer_desc mix1 =
+{
+ DISC_MIXER_IS_RESISTOR,
+ {RES_K(22), RES_K(22)},
+ {0},
+ {CAP_U(.1), CAP_U(.1)},
+ 0, RES_K(100), 0, CAP_U(.1), 0, 20
+};
+
+#define spacmissx_MUSIC_CLK (150000)
+
+/* Nodes - Inputs */
+/* Nodes - Sounds */
+/************************************************
+ * Fleet movement
+ ************************************************/
+
+DISCRETE_SOUND_START(spacmissx)
+/******************************************************************************
+ *
+ * Background Hum
+ *
+ ******************************************************************************/
+ DISCRETE_INPUT_DATA(NODE_02) \
+ DISCRETE_COMP_ADDER(NODE_30, \
+ NODE_02, /* DATA */ \
+ &invaders_thump_resistors) \
+ DISCRETE_555_ASTABLE(NODE_31, /* IC F3, pin 6 */ \
+ 1, /* RESET */ \
+ NODE_30, /* R1 */ \
+ RES_K(75), /* R131 */ \
+ CAP_U(0.1), /* C29 */ \
+ &invaders_thump_555) \
+ DISCRETE_RCFILTER(NODE_32, \
+ NODE_31, /* IN0 */ \
+ 100, /* R132 */ \
+ CAP_U(4.7) ) /* C31 */ \
+ DISCRETE_RCFILTER(NODE_12, \
+ NODE_32, /* IN0 */ \
+ 100 + 100, /* R132 + R133 */ \
+ CAP_U(10) ) /* C32 */
+
+
+/******************************************************************************
+ *
+ * Music Generator
+ *
+ ******************************************************************************/
+ DISCRETE_INPUT_DATA (NODE_01)
+
+ DISCRETE_NOTE(NODE_20, 1, spacmissx_MUSIC_CLK, NODE_01, 255, 5, DISC_CLK_IS_FREQ)
+
+ // Convert count to 7492 output
+ DISCRETE_TRANSFORM2(NODE_21, NODE_20, 2, "01>0+")
+
+ DISCRETE_DAC_R1(NODE_22, NODE_21, DEFAULT_TTL_V_LOGIC_1, &spacmissx_music_dac)
+
+/******************************************************************************
+ *
+ * Final Mixing and Output
+ *
+ ******************************************************************************/
+ DISCRETE_CRFILTER(NODE_80, NODE_22, RES_K(10), CAP_U(0.1))
+
+ DISCRETE_MIXER2(NODE_90, \
+ 1, /* ENAB */ \
+ NODE_80, \
+ NODE_12, \
+ &mix1)
+
+ DISCRETE_OUTPUT(NODE_90, 2500)
+
+DISCRETE_SOUND_END
+
+WRITE8_MEMBER( sm_state::spacmissx_07_w )
+{
+ m_discrete->write(space, NODE_01, data | 0xc0);
+}
+
+WRITE8_MEMBER(sm_state::spacmissx_03_w)
+{
+ uint8_t rising_bits = data & ~m_port_1_last_extra;
+
+ if (BIT(rising_bits, 1)) m_samples->start(2, 2); /* Killed an enemy */
+ if (BIT(rising_bits, 2)) m_samples->start(1, 1); /* Lost a life */
+
+ m_port_1_last_extra = data;
+}
+
+// bits 0-3 make a variable background tone
+WRITE8_MEMBER(sm_state::spacmissx_05_w)
+{
+ if (BIT(m_port_1_last_extra, 5))
+ m_discrete->write(space, NODE_02, data & 0x0f);
+ else
+ m_discrete->write(space, NODE_02, 0);
+
+ uint8_t rising_bits = data & ~m_port_2_last_extra;
+
+ if (BIT(rising_bits, 4)) m_samples->start(0, 0); /* Shoot */
+
+ m_flip_screen = BIT(data, 5) & ioport("CAB")->read();
+
+ m_port_2_last_extra = data;
+}
+
+uint8_t sm_state::vpos_to_vysnc_chain_counter( int vpos )
+{
+ /* convert from a vertical position to the actual values on the vertical sync counters */
+ uint8_t counter;
+ int vblank = (vpos >= MW8080BW_VBSTART);
+
+ if (vblank)
+ counter = vpos - MW8080BW_VBSTART + MW8080BW_VCOUNTER_START_VBLANK;
+ else
+ counter = vpos + MW8080BW_VCOUNTER_START_NO_VBLANK;
+
+ return counter;
+}
+
+
+int sm_state::vysnc_chain_counter_to_vpos( uint8_t counter, int vblank )
+{
+ /* convert from the vertical sync counters to an actual vertical position */
+ int vpos;
+
+ if (vblank)
+ vpos = counter - MW8080BW_VCOUNTER_START_VBLANK + MW8080BW_VBSTART;
+ else
+ vpos = counter - MW8080BW_VCOUNTER_START_NO_VBLANK;
+
+ return vpos;
+}
+
+
+TIMER_CALLBACK_MEMBER(sm_state::mw8080bw_interrupt_callback)
+{
+ uint8_t next_counter;
+ int next_vpos;
+ int next_vblank;
+
+ /* compute vector and set the interrupt line */
+ int vpos = m_screen->vpos();
+ uint8_t counter = vpos_to_vysnc_chain_counter(vpos);
+ uint8_t vector = 0xc7 | ((counter & 0x40) >> 2) | ((~counter & 0x40) >> 3);
+ m_maincpu->set_input_line_and_vector(0, HOLD_LINE, vector);
+
+ /* set up for next interrupt */
+ if (counter == MW8080BW_INT_TRIGGER_COUNT_1)
+ {
+ next_counter = MW8080BW_INT_TRIGGER_COUNT_2;
+ next_vblank = MW8080BW_INT_TRIGGER_VBLANK_2;
+ }
+ else
+ {
+ next_counter = MW8080BW_INT_TRIGGER_COUNT_1;
+ next_vblank = MW8080BW_INT_TRIGGER_VBLANK_1;
+ }
+
+ next_vpos = vysnc_chain_counter_to_vpos(next_counter, next_vblank);
+ m_interrupt_timer->adjust(m_screen->time_until_pos(next_vpos));
+}
+
+
+void sm_state::mw8080bw_create_interrupt_timer( )
+{
+ m_interrupt_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(sm_state::mw8080bw_interrupt_callback),this));
+}
+
+
+void sm_state::mw8080bw_start_interrupt_timer( )
+{
+ int vpos = vysnc_chain_counter_to_vpos(MW8080BW_INT_TRIGGER_COUNT_1, MW8080BW_INT_TRIGGER_VBLANK_1);
+ m_interrupt_timer->adjust(m_screen->time_until_pos(vpos));
+}
+
+/*************************************
+ *
+ * Machine setup
+ *
+ *************************************/
+
+MACHINE_START_MEMBER( sm_state, sm )
+{
+ mw8080bw_create_interrupt_timer();
+}
+
+
+/*************************************
+ *
+ * Machine reset
+ *
+ *************************************/
+
+MACHINE_RESET_MEMBER( sm_state, sm )
+{
+ mw8080bw_start_interrupt_timer();
+}
+
+
+
+uint32_t sm_state::screen_update_spacmissx(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
+{
+ uint8_t x = 0;
+ uint8_t y = MW8080BW_VCOUNTER_START_NO_VBLANK;
+ uint8_t video_data = 0;
+ uint8_t flip = m_flip_screen;
+
+ while (1)
+ {
+ /* plot the current pixel */
+ pen_t pen = (video_data & 0x01) ? rgb_t(255,255,255) : rgb_t(0,0,0);
+
+ if (flip)
+ bitmap.pix32(MW8080BW_VBSTART - 1 - (y - MW8080BW_VCOUNTER_START_NO_VBLANK), MW8080BW_HPIXCOUNT - 1 - x) = pen;
+ else
+ bitmap.pix32(y - MW8080BW_VCOUNTER_START_NO_VBLANK, x) = pen;
+
+ /* next pixel */
+ video_data = video_data >> 1;
+ x = x + 1;
+
+ /* end of line? */
+ if (x == 0)
+ {
+ /* yes, flush out the shift register */
+ int i;
+
+ for (i = 0; i < 4; i++)
+ {
+ pen = (video_data & 0x01) ? rgb_t(255,255,255) : rgb_t(0,0,0);
+
+ if (flip)
+ bitmap.pix32(MW8080BW_VBSTART - 1 - (y - MW8080BW_VCOUNTER_START_NO_VBLANK), MW8080BW_HPIXCOUNT - 1 - (256 + i)) = pen;
+ else
+ bitmap.pix32(y - MW8080BW_VCOUNTER_START_NO_VBLANK, 256 + i) = pen;
+
+ video_data = video_data >> 1;
+ }
+
+ /* next row, video_data is now 0, so the next line will start
+ with 4 blank pixels */
+ y = y + 1;
+
+ /* end of screen? */
+ if (y == 0)
+ break;
+ }
+ /* the video RAM is read at every 8 pixels starting with pixel 4 */
+ else if ((x & 0x07) == 0x04)
+ {
+ offs_t offs = ((offs_t)y << 5) | (x >> 3);
+ video_data = m_p_ram[offs];
+ }
+ }
+
+ return 0;
+}
+
+READ8_MEMBER(sm_state::spacmissx_02_r)
+{
+ uint8_t data = ioport("IN2")->read();
+ if (m_flip_screen) return data;
+ return (data & 0x8f) | (ioport("IN1")->read() & 0x70);
+}
+
+static ADDRESS_MAP_START( spacmissx_map, AS_PROGRAM, 8, sm_state )
+ ADDRESS_MAP_GLOBAL_MASK(0x7fff)
+ AM_RANGE(0x0000, 0x1fff) AM_ROM AM_WRITENOP
+ AM_RANGE(0x2000, 0x3fff) AM_MIRROR(0x4000) AM_RAM AM_SHARE("ram")
+ AM_RANGE(0x4000, 0x5fff) AM_ROM AM_WRITENOP
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( spacmissx_io_map, AS_IO, 8, sm_state )
+ AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0")
+ AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
+ AM_RANGE(0x02, 0x02) AM_READ(spacmissx_02_r) AM_DEVWRITE("mb14241", mb14241_device, shift_count_w)
+ AM_RANGE(0x03, 0x03) AM_DEVREAD("mb14241", mb14241_device, shift_result_r) AM_WRITE(spacmissx_03_w)
+ AM_RANGE(0x04, 0x04) AM_DEVWRITE("mb14241", mb14241_device, shift_data_w)
+ AM_RANGE(0x05, 0x05) AM_WRITE(spacmissx_05_w)
+ AM_RANGE(0x06, 0x06) AM_WRITENOP //(watchdog_reset_w)
+ AM_RANGE(0x07, 0x07) AM_WRITE(spacmissx_07_w)
+ADDRESS_MAP_END
+
+static const char *const invaders_sample_names[] =
+{
+ "*invaders",
+ "1", /* shot/missle */
+ "2", /* base hit/explosion */
+ "3", /* invader hit */
+ "4", /* fleet move 1 */
+ "5", /* fleet move 2 */
+ "6", /* fleet move 3 */
+ "7", /* fleet move 4 */
+ "8", /* UFO/saucer hit */
+ "9", /* bonus base */
+ 0
+};
+
+
+static MACHINE_CONFIG_START( spacmissx, sm_state )
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu",I8080,MW8080BW_CPU_CLOCK)
+ MCFG_CPU_PROGRAM_MAP(spacmissx_map)
+ MCFG_CPU_IO_MAP(spacmissx_io_map)
+ MCFG_MACHINE_START_OVERRIDE(sm_state,sm)
+ MCFG_MACHINE_RESET_OVERRIDE(sm_state,sm)
+
+ /* video hardware */
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_RAW_PARAMS(MW8080BW_PIXEL_CLOCK, MW8080BW_HTOTAL, MW8080BW_HBEND, MW8080BW_HPIXCOUNT, MW8080BW_VTOTAL, MW8080BW_VBEND, MW8080BW_VBSTART)
+ MCFG_SCREEN_UPDATE_DRIVER(sm_state, screen_update_spacmissx)
+
+ /* add shifter */
+ MCFG_MB14241_ADD("mb14241")
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+ MCFG_SOUND_ADD("samples", SAMPLES, 0)
+ MCFG_SAMPLES_CHANNELS(6)
+ MCFG_SAMPLES_NAMES(invaders_sample_names)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
+ MCFG_DISCRETE_ADD("discrete", 0, spacmissx)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
+MACHINE_CONFIG_END
+
+
+static INPUT_PORTS_START( spacmissx )
+ PORT_START("IN0")
+ PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNKNOWN ) // gets read into memory (0x2012) then never used
+
+ PORT_START("IN1")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 )
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 )
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN )
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 )
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
+
+ PORT_START("IN2")
+ PORT_DIPNAME( 0x03, 0x02, DEF_STR( Bonus_Life ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x01, "4000" )
+ PORT_DIPSETTING( 0x02, "5000" )
+ PORT_DIPSETTING( 0x03, "7000" )
+ 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( Lives ) )
+ PORT_DIPSETTING( 0x00, "3" )
+ PORT_DIPSETTING( 0x08, "6" )
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2)
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(2)
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(2)
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
+
+ /* Dummy port for cocktail mode */
+ PORT_START("CAB")
+ PORT_CONFNAME( 0x01, 0x00, DEF_STR( Cabinet ) )
+ PORT_CONFSETTING( 0x00, DEF_STR( Upright ) )
+ PORT_CONFSETTING( 0x01, DEF_STR( Cocktail ) )
+INPUT_PORTS_END
+
+ROM_START( spacmissx )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "1", 0x0000, 0x0800, CRC(e212dc88) SHA1(bc56052bf43d18081f777b936b2be792e91ba842) )
+ ROM_LOAD( "2", 0x0800, 0x0800, CRC(f97410ee) SHA1(47f1f296c905fa13f6c521edc12c10f1f0e42400) )
+ ROM_LOAD( "3", 0x1000, 0x0800, CRC(c1175feb) SHA1(83bf955ed3a52e1ce8c688d89725d8dee1bcc866) )
+ ROM_LOAD( "4", 0x1800, 0x0800, CRC(b4451d7c) SHA1(62a18e8e927ef00a7f6cb933cdc5aeae9f074dc0) )
+ ROM_LOAD( "5", 0x4000, 0x0800, CRC(74c9da61) SHA1(cb98105729f0fa4343b71af3c658b378ade1ed46) )
+ ROM_LOAD( "6", 0x4800, 0x0800, CRC(5e7c6c44) SHA1(be7eeef10462377909018cf40503766f38466022) )
+ ROM_LOAD( "7", 0x5000, 0x0800, CRC(02619e18) SHA1(4c59f17fbc96ca08090f08c41ca9fc72c074e9c0) )
+
+ ROM_REGION( 0x0800, "user1", 0 )
+ ROM_LOAD( "8", 0x0000, 0x0800, CRC(942e5261) SHA1(e8af51d644eab4e7b31c14dc66bb036ad8940c42) ) // ?
+ROM_END
+
+GAMEL(1980?,spacmissx, 0, spacmissx, spacmissx, driver_device, 0, ROT270, "bootleg?", "Space Missile - Space Fighting Game (Extra Sounds)", MACHINE_SUPPORTS_SAVE, layout_spacmissx )
diff --git a/docs/release/src/hbmame/drivers/system1.cpp b/docs/release/src/hbmame/drivers/system1.cpp
new file mode 100644
index 00000000000..87b9509df1d
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/system1.cpp
@@ -0,0 +1,70 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/system1.cpp"
+
+ROM_START( wbmlbit )
+ ROM_REGION( 0x40000, "maincpu", 0 )
+ ROM_LOAD( "wbml.01", 0x20000, 0x8000, CRC(66482638) SHA1(887f93015f0effa2d0fa1f1f59082f75ac072221) )
+ ROM_CONTINUE( 0x00000, 0x8000 )
+ ROM_LOAD( "wbml.02it", 0x30000, 0x8000, CRC(680f2186) SHA1(bb7b43a8d8438ec9dc55f219db284934a57ea81a) )
+ ROM_CONTINUE( 0x10000, 0x8000 )
+ ROM_LOAD( "wbml.03", 0x38000, 0x8000, CRC(d57ba8aa) SHA1(16f095cb78e31af5ce76d36c20fe4c3e0d027aea) )
+ ROM_CONTINUE( 0x18000, 0x8000 )
+
+ ROM_REGION( 0x10000, "soundcpu", 0 )
+ ROM_LOAD( "epr11037.126", 0x0000, 0x8000, CRC(7a4ee585) SHA1(050436106cced5dcbf40a3d94d48202eedddc3ad) )
+
+ ROM_REGION( 0x18000, "tiles", 0 )
+ ROM_LOAD( "wbml.08it", 0x00000, 0x8000, CRC(bc2846d3) SHA1(6777ef6ca5b92600aa6038d773cdd8263639b1cb) )
+ ROM_LOAD( "wbml.09it", 0x08000, 0x8000, CRC(c61fd58e) SHA1(f17dba3195e8b3c3d443d696cce63604cdc64a5e) )
+ ROM_LOAD( "wbml.10it", 0x10000, 0x8000, CRC(e0386c02) SHA1(bdfa5fa2bbf641730865d74057203e41dcae80fa) )
+
+ ROM_REGION( 0x20000, "sprites", 0 )
+ ROM_LOAD( "epr11028.87", 0x00000, 0x8000, CRC(af0b3972) SHA1(413825f66b84c7e45aa1855131482abead8f7f3b) )
+ ROM_LOAD( "epr11027.86", 0x08000, 0x8000, CRC(277d8f1d) SHA1(7854673503ed03d276abe971805a11f8c992f6d6) )
+ ROM_LOAD( "epr11030.89", 0x10000, 0x8000, CRC(f05ffc76) SHA1(f3dbb518240f86430840c3d4cda04bac79c20f69) )
+ ROM_LOAD( "epr11029.88", 0x18000, 0x8000, CRC(cedc9c61) SHA1(dbe5744f9b6f2a406b52b910dd4e133db7bce6b2) )
+
+ ROM_REGION( 0x0300, "palette", 0 )
+ ROM_LOAD( "pr11026.20", 0x0000, 0x0100, CRC(27057298) SHA1(654be7abb937bb0720263ee6512e31194662effe) )
+ ROM_LOAD( "pr11025.14", 0x0100, 0x0100, CRC(41e4d86b) SHA1(a86e8bb0a465d01b04410edfbb82eb96f12b909f) )
+ ROM_LOAD( "pr11024.8", 0x0200, 0x0100, CRC(08d71954) SHA1(df045dbfb3d669e4d42fbdba1e7191cd046f7b47) )
+
+ ROM_REGION( 0x0100, "proms", 0 )
+ ROM_LOAD( "pr5317.37", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) )
+ROM_END
+
+ROM_START( wbmlkb )
+ ROM_REGION( 0x40000, "maincpu", 0 )
+ ROM_LOAD( "wbml.01", 0x20000, 0x8000, CRC(66482638) SHA1(887f93015f0effa2d0fa1f1f59082f75ac072221) )
+ ROM_CONTINUE( 0x00000, 0x8000 )
+ ROM_LOAD( "m-6k.bin", 0x30000, 0x8000, CRC(7dd0b45a) SHA1(ae715437c225013bade54cf021be708c5145a84f) )
+ ROM_CONTINUE( 0x10000, 0x8000 )
+ ROM_LOAD( "m-7.bin", 0x38000, 0x8000, CRC(11881703) SHA1(b5e4d477158e7653b0fef5a4806be7b4871e917d) )
+ ROM_CONTINUE( 0x18000, 0x8000 )
+
+ ROM_REGION( 0x10000, "soundcpu", 0 )
+ ROM_LOAD( "epr11037.126", 0x0000, 0x8000, CRC(7a4ee585) SHA1(050436106cced5dcbf40a3d94d48202eedddc3ad) )
+
+ ROM_REGION( 0x18000, "tiles", 0 )
+ ROM_LOAD( "epr11034.4k", 0x00000, 0x8000, CRC(7e631c73) SHA1(ef7bc9c8b15083680f8169fa8d322cfbfa7d54ac) )
+ ROM_LOAD( "epr11035.5k", 0x08000, 0x8000, CRC(4c67a9a6) SHA1(eac1f97aac3f5b0ce96dd082c7741033caa4b55b) )
+ ROM_LOAD( "epr11036.6k", 0x10000, 0x8000, CRC(0440b0c7) SHA1(f0e321dc6c979807852c375c8a6905fd32336dde) )
+
+ ROM_REGION( 0x20000, "sprites", 0 )
+ ROM_LOAD( "epr11028.87", 0x00000, 0x8000, CRC(af0b3972) SHA1(413825f66b84c7e45aa1855131482abead8f7f3b) )
+ ROM_LOAD( "epr11027.86", 0x08000, 0x8000, CRC(277d8f1d) SHA1(7854673503ed03d276abe971805a11f8c992f6d6) )
+ ROM_LOAD( "epr11030.89", 0x10000, 0x8000, CRC(f05ffc76) SHA1(f3dbb518240f86430840c3d4cda04bac79c20f69) )
+ ROM_LOAD( "epr11029.88", 0x18000, 0x8000, CRC(cedc9c61) SHA1(dbe5744f9b6f2a406b52b910dd4e133db7bce6b2) )
+
+ ROM_REGION( 0x0300, "palette", 0 )
+ ROM_LOAD( "pr11026.20", 0x0000, 0x0100, CRC(27057298) SHA1(654be7abb937bb0720263ee6512e31194662effe) )
+ ROM_LOAD( "pr11025.14", 0x0100, 0x0100, CRC(41e4d86b) SHA1(a86e8bb0a465d01b04410edfbb82eb96f12b909f) )
+ ROM_LOAD( "pr11024.8", 0x0200, 0x0100, CRC(08d71954) SHA1(df045dbfb3d669e4d42fbdba1e7191cd046f7b47) )
+
+ ROM_REGION( 0x0100, "proms", 0 )
+ ROM_LOAD( "pr5317.37", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) )
+ROM_END
+
+GAME( 1987, wbmlbit, wbml, sys2xb, wbml, system1_state, bootsys2, ROT0, "Michele", "Wonder Boy in Monster Land (Italian - v0.99)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
+GAME( 1987, wbmlkb, wbml, sys2xb, wbml, system1_state, bootsys2, ROT0, "hack", "Wonder Boy in Monster Land (Korean)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/system16.cpp b/docs/release/src/hbmame/drivers/system16.cpp
new file mode 100644
index 00000000000..4e756d9f738
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/system16.cpp
@@ -0,0 +1,28 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/system16.cpp"
+
+// Sprite processing has been disabled because the sprite processor (sega16sp.c) freezes
+// the moment anything is written to sprite ram.
+
+ROM_START( sys16dem )
+ ROM_REGION( 0x040000, "maincpu", ROMREGION_ERASEFF ) /* 68000 code */
+ ROM_LOAD16_BYTE( "rom2dm.bin", 0x00000, 0x10000, CRC(671c5eac) SHA1(5fa7f8ba9d31a6c31a0b5a32c2cd869200032461) )
+ ROM_LOAD16_BYTE( "rom1dm.bin", 0x00001, 0x10000, CRC(6461ebd9) SHA1(16dc373408342560eb48e3c037a8f42636796560) )
+ ROM_FILL(0x686, 1, 0x4e)
+ ROM_FILL(0x687, 1, 0x71) // cancel writing to sprite ram
+
+ ROM_REGION( 0x30000, "gfx1", 0 ) /* tiles */
+ ROM_LOAD( "scr01dm.b9", 0x00000, 0x10000, CRC(2fdb9b09) SHA1(bec9ca842921695b06915825acfba076443a7e8b) )
+ ROM_LOAD( "scr02dm.b10", 0x10000, 0x10000, CRC(0e880750) SHA1(d6b7c84c00dfb3c1fcf966587f700f3ea3313b94) )
+ ROM_LOAD( "scr03dm.b11", 0x20000, 0x10000, CRC(3e76f2ba) SHA1(9177850b5d0b914a672af414e7e134e15d554fb8) )
+
+ ROM_REGION16_BE( 0x020000, "sprites", 0 ) /* sprites */
+ ROM_LOAD16_BYTE( "dm-obj0-o.rom", 0x00001, 0x10000, CRC(82ec3f29) SHA1(0c0b28e98348f8981314f8d940ccd17d790bf335) )
+ ROM_LOAD16_BYTE( "dm-obj0-e.rom", 0x00000, 0x10000, CRC(6eca3b5c) SHA1(f58ac53d24b167db4787d6fe91e4799f3c3256d6) )
+
+ ROM_REGION( 0x40000, "soundcpu", 0 ) /* sound CPU */
+ ROM_LOAD( "epr12168.a7", 0x0000, 0x8000, CRC(bd9ba01b) SHA1(fafa7dc36cc057a50ae4cdf7a35f3594292336f4) )
+ROM_END
+
+GAME( 1988, sys16dem, 0, tetrisbl, tetris, segas1x_bootleg_state, dduxbl, ROT0, "Charles Doty", "Demo - Sega System 16", MACHINE_IMPERFECT_GRAPHICS )
diff --git a/docs/release/src/hbmame/drivers/taito_b.cpp b/docs/release/src/hbmame/drivers/taito_b.cpp
new file mode 100644
index 00000000000..c77f59dc40e
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/taito_b.cpp
@@ -0,0 +1,21 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/taito_b.cpp"
+
+ROM_START( bubbleb ) // same as pbobble except for ic2
+ ROM_REGION( 0x80000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "pb-1c18.bin", 0x00000, 0x40000, CRC(5de14f49) SHA1(91d537748f26e19a5c32de4b8dad341750de39ef) )
+ ROM_LOAD16_BYTE( "pb-ic2.usa", 0x00001, 0x40000, CRC(b3b7566b) SHA1(455342b6988741f8c83ed97ef1a2d3b885cbc9d1) )
+
+ ROM_REGION( 0x20000, "audiocpu", 0 )
+ ROM_LOAD( "pb-ic27.bin", 0x00000, 0x20000, CRC(26efa4c4) SHA1(795af8f6d23c2cbe2c811ec9ab1f14a4eee3f99e) )
+
+ ROM_REGION( 0x100000, "gfx1", 0 )
+ ROM_LOAD( "pb-ic14.bin", 0x00000, 0x80000, CRC(55f90ea4) SHA1(793c79e5b72171124368ad09dd31235252c541f5) )
+ ROM_LOAD( "pb-ic9.bin", 0x80000, 0x80000, CRC(3253aac9) SHA1(916d85aa96e2914630833292a0655b0389b4a39b) )
+
+ ROM_REGION( 0x100000, "ymsnd", 0 )
+ ROM_LOAD( "pb-ic15.bin", 0x000000, 0x100000, CRC(0840cbc4) SHA1(1adbd7aef44fa80832f63dfb8efdf69fd7256a57) )
+ROM_END
+
+GAME( 1994, bubbleb, pbobble, pbobble, pbobble, taitob_state, taito_b, ROT0, "Taito Corporation", "Bubble Buster", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/taito_f2.cpp b/docs/release/src/hbmame/drivers/taito_f2.cpp
new file mode 100644
index 00000000000..335ac377abd
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/taito_f2.cpp
@@ -0,0 +1,85 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/taito_f2.cpp"
+
+static MACHINE_CONFIG_START( f2demo, taitof2_state )
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", M68000, 24000000/2) /* 12 MHz */
+ MCFG_CPU_PROGRAM_MAP(liquidk_map)
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", taitof2_state, taitof2_interrupt)
+
+ MCFG_CPU_ADD("audiocpu", Z80, 24000000/6) /* 4 MHz */
+ MCFG_CPU_PROGRAM_MAP(sound_map)
+
+ MCFG_MACHINE_START_OVERRIDE(taitof2_state,f2)
+
+ /* video hardware */
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_REFRESH_RATE(60)
+ MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0) /* frames per second, vblank duration */)
+ MCFG_SCREEN_SIZE(120*8, 32*8)
+ MCFG_SCREEN_VISIBLE_AREA(40*8, 106*8-1, 2*8, 32*8-1)
+ MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri)
+ MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(taitof2_state, screen_vblank_partial_buffer_delayed))
+ MCFG_SCREEN_PALETTE("palette")
+ MCFG_GFXDECODE_ADD("gfxdecode", "palette", taitof2)
+ MCFG_PALETTE_ADD("palette", 4096)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx)
+ MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_megab)
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
+
+ MCFG_SOUND_ADD("ymsnd", YM2610, 24000000/3) /* Was 16000000/2, but only a 24Mhz OSC */
+ MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
+ MCFG_SOUND_ROUTE(0, "lspeaker", 0.25)
+ MCFG_SOUND_ROUTE(0, "rspeaker", 0.25)
+ MCFG_SOUND_ROUTE(1, "lspeaker", 1.0)
+ MCFG_SOUND_ROUTE(2, "rspeaker", 1.0)
+
+ MCFG_DEVICE_ADD("tc0140syt", TC0140SYT, 0)
+ MCFG_TC0140SYT_MASTER_CPU("maincpu")
+ MCFG_TC0140SYT_SLAVE_CPU("audiocpu")
+
+ MCFG_DEVICE_ADD("tc0220ioc", TC0220IOC, 0)
+ MCFG_TC0220IOC_READ_0_CB(IOPORT("DSWA"))
+ MCFG_TC0220IOC_READ_1_CB(IOPORT("DSWB"))
+ MCFG_TC0220IOC_READ_2_CB(IOPORT("IN0"))
+ MCFG_TC0220IOC_READ_3_CB(IOPORT("IN1"))
+ MCFG_TC0220IOC_READ_7_CB(IOPORT("IN2"))
+
+ MCFG_DEVICE_ADD("tc0100scn", TC0100SCN, 0)
+ MCFG_TC0100SCN_GFX_REGION(1)
+ MCFG_TC0100SCN_TX_REGION(2)
+ MCFG_TC0100SCN_OFFSETS(3, 0)
+ MCFG_TC0100SCN_GFXDECODE("gfxdecode")
+ MCFG_TC0100SCN_PALETTE("palette")
+
+ MCFG_TC0360PRI_ADD("tc0360pri")
+MACHINE_CONFIG_END
+
+// Game has no sound
+ROM_START( f2demo )
+ ROM_REGION( 0x80000, "maincpu", 0 ) /* 512k for 68000 code */
+ ROM_LOAD16_BYTE( "lq09.bin", 0x00000, 0x20000, CRC(809a968b) SHA1(06e8be120869371d33c61fa14c48fe4e5fd659ec) )
+ ROM_LOAD16_BYTE( "lq11.bin", 0x00001, 0x20000, CRC(7ba3a5cb) SHA1(08f5392296cceadcae0cd34e9dfe76c835583231) )
+
+ ROM_REGION( 0x080000, "gfx1", 0 ) /* SCR */
+ ROM_LOAD( "f2d_scr.bin", 0x000000, 0x80000, CRC(b178fb05) SHA1(3d33dd822622579c75b55971926f6eb04d33f5a6) ) /* TC0100SCN #1 */
+
+ ROM_REGION( 0x100000, "gfx2", 0 ) /* OBJ */
+ ROM_LOAD( "f2d_obj0.bin", 0x00000, 0x80000, CRC(1bb8aa37) SHA1(9051270485a7a995779c80b4e692b8395503d6c3) )
+ ROM_LOAD( "f2d_obj1.bin", 0x80000, 0x80000, CRC(75660aac) SHA1(6a521e1d2a632c26e53b83d2cc4b0edecfc1e68c) )
+
+ ROM_REGION( 0x1c000, "audiocpu", 0 ) /* sound cpu */
+ ROM_LOAD( "c49-08.9", 0x00000, 0x04000, CRC(413c310c) SHA1(cecb1c0c9fe3c8b744f95ce29009650a289107ab) )
+ ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */
+
+ ROM_REGION( 0x80000, "ymsnd", 0 ) /* ADPCM samples */
+ ROM_LOAD( "lk_snd.bin", 0x00000, 0x80000, CRC(474d45a4) SHA1(20cb818d753a185973098007e645f1aa75c5528d) )
+
+ /* no Delta-T samples */
+ROM_END
+
+GAME( 1990, f2demo, 0, f2demo, liquidk, driver_device, 0, ROT180, "Charles Doty", "Demo - Taito F2", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/taito_f3.cpp b/docs/release/src/hbmame/drivers/taito_f3.cpp
new file mode 100644
index 00000000000..67004254b7a
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/taito_f3.cpp
@@ -0,0 +1,223 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/taito_f3.cpp"
+
+ROM_START( cleopath )
+ ROM_REGION(0x200000, "maincpu", 0)
+ ROM_LOAD32_BYTE("e28-10.bin", 0x000000, 0x80000, CRC(013fbc39) SHA1(d36ac44609b88e1da35c98dda381042e0112ea00) )
+ ROM_LOAD32_BYTE("e28-09.bin", 0x000001, 0x80000, CRC(1c48a1f9) SHA1(791d321c03073cdd0269b970f926897446d2a6fb) )
+ ROM_LOAD32_BYTE("e28-08.bin", 0x000002, 0x80000, CRC(7564f199) SHA1(ec4b19edb0660ad478f6c0ec27d701368696a2e4) )
+ ROM_LOAD32_BYTE("e28-wrd.bin", 0x000003, 0x80000, CRC(544dd2e9) SHA1(11ad1ce4202937108f23c44de2244da570452ce1) )
+
+ ROM_REGION(0x200000, "gfx1" , 0)
+ ROM_LOAD16_BYTE("e28-02.bin", 0x000000, 0x080000, CRC(b20d47cb) SHA1(6888e5564688840fed1c123ab38467066cd59c7f) )
+ ROM_LOAD16_BYTE("e28-01.bin", 0x000001, 0x080000, CRC(4440e659) SHA1(71dece81bac8d638473c6531fed5c32798096af9) )
+ ROM_FILL ( 0x100000, 0x100000, 0 )
+
+ ROM_REGION(0x400000, "gfx2" , 0)
+ ROM_LOAD16_BYTE("e28-06.bin", 0x000000, 0x100000, CRC(21d0c454) SHA1(f4c815984b19321cfab303fa6f21d9cad35b09f2) )
+ ROM_LOAD16_BYTE("e28-05.bin", 0x000001, 0x100000, CRC(2870dbbc) SHA1(4e412b90cbd9a05956cde3d8cff615ebadca9db6) )
+ ROM_LOAD ("e28-04.bin", 0x300000, 0x100000, CRC(57aef029) SHA1(5c07209015d4749d1ffb3e9c1a890e6cfeec8cb0) )
+ ROM_FILL ( 0x200000, 0x100000, 0 )
+
+ ROM_REGION(0x140000, "taito_en:audiocpu", 0)
+ ROM_LOAD16_BYTE("e28-11.bin", 0x100000, 0x20000, CRC(01a06950) SHA1(94d22cd839f9027e9d45264c366e0cb5d698e0b6) )
+ ROM_LOAD16_BYTE("e28-12.bin", 0x100001, 0x20000, CRC(dc19260f) SHA1(fa0ca03a236326652e4f9898d07cd837c1507a9d) )
+
+ ROM_REGION16_BE(0x400000, "ensoniq.0" , ROMREGION_ERASE00 )
+ ROM_LOAD16_BYTE("e28-03.bin", 0x000000, 0x200000, CRC(15c7989d) SHA1(7cc63d93e5c1f9f52f889e973bbefd5e6f7ce807) )
+ROM_END
+
+ROM_START( driusgxh )
+ ROM_REGION(0x200000, "maincpu", 0)
+ ROM_LOAD32_BYTE("dge_mpr3.bin", 0x000000, 0x80000, CRC(1c1e24a7) SHA1(eafde331c3be5be55d0d838a84017f357ff92634) )
+ ROM_LOAD32_BYTE("dge_mpr2.bin", 0x000001, 0x80000, CRC(7be23e23) SHA1(4764355f51e207f4538dd753aea59bf2689835de) )
+ ROM_LOAD32_BYTE("dge_mpr1.bin", 0x000002, 0x80000, CRC(bc030f6f) SHA1(841396911d26ddfae0c9863431e02e0b5e762ac6) )
+ ROM_LOAD32_BYTE("dge_wrd.bin", 0x000003, 0x80000, CRC(2bb37270) SHA1(98bc07894e92ca9cce34fc7390f40d3357783e3f) )
+
+ ROM_REGION(0x800000, "gfx1" , 0)
+ ROM_LOAD16_BYTE("d87-03.bin", 0x000000, 0x200000, CRC(4be1666e) SHA1(35ba7bcf29ec7a8f8b6944ee3544693d4df1bfc2) )
+ ROM_LOAD16_BYTE("d87-04.bin", 0x000001, 0x200000, CRC(2616002c) SHA1(003f98b740a697274385b8da03c78f3c6f7b5e89) )
+ ROM_LOAD ("d87-05.bin", 0x600000, 0x200000, CRC(4e5891a9) SHA1(fd08d848079841c9237fa359a850980fd00114d8) )
+ ROM_FILL ( 0x400000, 0x200000, 0 )
+
+ ROM_REGION(0x800000, "gfx2" , 0)
+ ROM_LOAD16_BYTE("d87-06.bin", 0x000000, 0x200000, CRC(3b97a07c) SHA1(72cdeffedeab0c1bd0e47f03172085390a2be393) )
+ ROM_LOAD16_BYTE("d87-17.bin", 0x000001, 0x200000, CRC(e601d63e) SHA1(256a6aeb5633fe1db407fad567169a9d0c911219) )
+ ROM_LOAD ("d87-08.bin", 0x600000, 0x200000, CRC(76d23602) SHA1(ca53ea6641182c44a4038bbeaa5effb1687f1980) )
+ ROM_FILL ( 0x400000, 0x200000, 0 )
+
+ ROM_REGION(0x180000, "taito_en:audiocpu", 0)
+ ROM_LOAD16_BYTE("d87-13.bin", 0x100000, 0x40000, CRC(15b1fff4) SHA1(28692b731ae98a47c2c5e11a8a71b61a813d9a64) )
+ ROM_LOAD16_BYTE("d87-14.bin", 0x100001, 0x40000, CRC(eecda29a) SHA1(6eb238e47bc7bf635ffbdbb25fb06a37db980ef8) )
+
+ ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 )
+ ROM_LOAD16_BYTE("d87-01.bin", 0x000000, 0x200000, CRC(3848a110) SHA1(802e91695a526f665c7fd261f0a7639a0b883c9e) )
+ ROM_LOAD16_BYTE("d87-02.bin", 0x400000, 0x200000, CRC(9250abae) SHA1(07cae8edbc3cca0a95022d9b40a5c18a55350b67) )
+ROM_END
+
+ROM_START( f3demo )
+ ROM_REGION(0x200000, "maincpu", ROMREGION_ERASE00)
+ ROM_LOAD("f3demo.bin", 0, 0x194c, CRC(08587aea) SHA1(4850d170b935fd4b6726c03693eb25e5ac3b6198) )
+ ROM_FILL(0x043A, 1, 0x4E)
+ ROM_FILL(0x043B, 1, 0xB8)
+ ROM_FILL(0x043C, 1, 0x19)
+ ROM_FILL(0x043D, 1, 0x4C)
+ ROM_FILL(0x194C, 1, 0x41)
+ ROM_FILL(0x194D, 1, 0xF9)
+ ROM_FILL(0x194F, 1, 0x66)
+ ROM_FILL(0x1951, 1, 0x18)
+ ROM_FILL(0x1952, 1, 0x30)
+ ROM_FILL(0x1953, 1, 0x3C)
+ ROM_FILL(0x1955, 1, 0x9E)
+ ROM_FILL(0x1956, 1, 0x31)
+ ROM_FILL(0x1957, 1, 0x40)
+ ROM_FILL(0x195A, 1, 0x30)
+ ROM_FILL(0x195B, 1, 0x3C)
+ ROM_FILL(0x195D, 1, 0xF1)
+ ROM_FILL(0x195E, 1, 0x31)
+ ROM_FILL(0x195F, 1, 0x40)
+ ROM_FILL(0x1961, 1, 0x02)
+ ROM_FILL(0x1962, 1, 0x60)
+ ROM_FILL(0x1963, 1, 0xFE)
+
+ ROM_REGION(0x800000, "gfx1" , 0)
+ ROM_LOAD16_BYTE("d87-03.bin", 0x000000, 0x200000, CRC(4be1666e) SHA1(35ba7bcf29ec7a8f8b6944ee3544693d4df1bfc2) )
+ ROM_LOAD16_BYTE("d87-04.bin", 0x000001, 0x200000, CRC(2616002c) SHA1(003f98b740a697274385b8da03c78f3c6f7b5e89) )
+ ROM_LOAD ("d87-05.bin", 0x600000, 0x200000, CRC(4e5891a9) SHA1(fd08d848079841c9237fa359a850980fd00114d8) )
+ ROM_FILL ( 0x400000, 0x200000, 0 )
+
+ ROM_REGION(0x800000, "gfx2" , 0)
+ ROM_LOAD16_BYTE("d87-06.bin", 0x000000, 0x200000, CRC(3b97a07c) SHA1(72cdeffedeab0c1bd0e47f03172085390a2be393) )
+ ROM_LOAD16_BYTE("d87-17.bin", 0x000001, 0x200000, CRC(e601d63e) SHA1(256a6aeb5633fe1db407fad567169a9d0c911219) )
+ ROM_LOAD ("d87-08.bin", 0x600000, 0x200000, CRC(76d23602) SHA1(ca53ea6641182c44a4038bbeaa5effb1687f1980) )
+ ROM_FILL ( 0x400000, 0x200000, 0 )
+
+ ROM_REGION(0x180000, "taito_en:audiocpu", 0)
+ ROM_LOAD16_BYTE("d87-13.bin", 0x100000, 0x40000, CRC(15b1fff4) SHA1(28692b731ae98a47c2c5e11a8a71b61a813d9a64) )
+ ROM_LOAD16_BYTE("d87-14.bin", 0x100001, 0x40000, CRC(eecda29a) SHA1(6eb238e47bc7bf635ffbdbb25fb06a37db980ef8) )
+
+ ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 )
+ ROM_LOAD16_BYTE("d87-01.bin", 0x000000, 0x200000, CRC(3848a110) SHA1(802e91695a526f665c7fd261f0a7639a0b883c9e) )
+ ROM_LOAD16_BYTE("d87-02.bin", 0x400000, 0x200000, CRC(9250abae) SHA1(07cae8edbc3cca0a95022d9b40a5c18a55350b67) )
+ROM_END
+
+ROM_START( gekiridh )
+ ROM_REGION(0x200000, "maincpu", 0)
+ ROM_LOAD32_BYTE("e11-12.ic20", 0x000000, 0x40000, CRC(6a7aaacf) SHA1(a8114c84e76c75c908a61d985d96aa4eb9a0ac5a) )
+ ROM_LOAD32_BYTE("e11-11.ic19", 0x000001, 0x40000, CRC(2284a08e) SHA1(3dcb91be0d3491ad5e77efd30bacd506dad0f848) )
+ ROM_LOAD32_BYTE("e11-10.ic18", 0x000002, 0x40000, CRC(8795e6ba) SHA1(9128c29fdce3276f55aad47451e4a507470c8b9f) )
+ ROM_LOAD32_BYTE("e11-15.ic17", 0x000003, 0x40000, CRC(5aef1fd8) SHA1(a94884e39172e664759bff53a6dd2f93422d3299) )
+
+ ROM_REGION(0x800000, "gfx1" , 0)
+ ROM_LOAD16_BYTE("e11-03.ic12", 0x000000, 0x200000, CRC(f73877c5) SHA1(1f6b7c0b8a0aaab3e5427d21de7fad3d3cbf737a) )
+ ROM_LOAD16_BYTE("e11-02.ic8", 0x000001, 0x200000, CRC(5722a83b) SHA1(823c20a33016a5506ca5415ec615c3d2546ca9ab) )
+ ROM_LOAD ("e11-01.ic4", 0x600000, 0x200000, CRC(c2cd1069) SHA1(9744dd3d8a6d9200cea4429dafce5620b60e2960) )
+ ROM_FILL ( 0x400000, 0x200000, 0 )
+
+ ROM_REGION(0x800000, "gfx2" , 0)
+ ROM_LOAD16_BYTE("e11-08.ic47", 0x000000, 0x200000, CRC(907f69d3) SHA1(0899ed58edcae22144625c349c9d2fe4d46d11e3) )
+ ROM_LOAD16_BYTE("e11-07.ic45", 0x000001, 0x200000, CRC(ef018607) SHA1(61b602b13754c3be21caf76acbfc10c87518ba47) )
+ ROM_LOAD ("e11-06.ic43", 0x600000, 0x200000, CRC(200ce305) SHA1(c80a0b96510913a6411e6763fb72bf413fb792da) )
+ ROM_FILL ( 0x400000, 0x200000, 0 )
+
+ ROM_REGION(0x140000, "taito_en:audiocpu", 0)
+ ROM_LOAD16_BYTE("e11-13.bin", 0x100000, 0x20000, CRC(51a11ff7) SHA1(c03042489d71423667f25856d15aa6a363ea6c92) )
+ ROM_LOAD16_BYTE("e11-14.bin", 0x100001, 0x20000, CRC(dce2ba91) SHA1(00bc353c7747a7954365b587d7bc759ee5dc09c2) )
+
+ ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 )
+ ROM_LOAD16_BYTE("e11-04.ic38", 0x000000, 0x200000, CRC(e0ff4fb1) SHA1(81e186e3a692af1da316b8085a729c4f103d9a52) )
+ ROM_LOAD16_BYTE("e11-05.ic41", 0x400000, 0x200000, CRC(a4d08cf1) SHA1(ae2cabef7b7bcb8a788988c73d7af6fa4bb2c444) )
+ROM_END
+
+ROM_START( gekiridoc )
+ ROM_REGION(0x200000, "maincpu", 0)
+ ROM_LOAD32_BYTE("e11-12c.bin", 0x000000, 0x40000, CRC(448308ce) SHA1(22eac25158bd3a0349aa4f1f041473b93030ee43) )
+ ROM_LOAD32_BYTE("e11-11c.bin", 0x000001, 0x40000, CRC(8ae457c4) SHA1(f1d74d99c916df90a74be0ff80b05b0f31284306) )
+ ROM_LOAD32_BYTE("e11-10c.bin", 0x000002, 0x40000, CRC(b1ff4529) SHA1(9e8366d9d90ad4155aab3828523daff09e3d400d) )
+ ROM_LOAD32_BYTE("e11-09c.bin", 0x000003, 0x40000, CRC(24d884ff) SHA1(35ddb21608c781a0674a4244c8e5c0aa6dc220eb) )
+
+ ROM_REGION(0x800000, "gfx1" , 0)
+ ROM_LOAD16_BYTE("e11-03c.bin", 0x000000, 0x200000, CRC(2b0dab58) SHA1(7c70a2104fbbfde32fa006bfafe30c3d9708cb10) )
+ ROM_LOAD16_BYTE("e11-02c.bin", 0x000001, 0x200000, CRC(a2c4fa4f) SHA1(2ad73ce8431f1199dd32df83352dc4f85345529f) )
+ ROM_LOAD ("e11-01c.bin", 0x600000, 0x200000, CRC(e19874b3) SHA1(a8d6806133977a7decefafff5d7b249803add70b) )
+ ROM_FILL ( 0x400000, 0x200000, 0 )
+
+ ROM_REGION(0x800000, "gfx2" , 0)
+ ROM_LOAD16_BYTE("e11-08c.bin", 0x000000, 0x200000, CRC(93884253) SHA1(6d0530db64c84bf7b2ad47e94036ecd8c81418b6) )
+ ROM_LOAD16_BYTE("e11-07c.bin", 0x000001, 0x200000, CRC(15ca8ac2) SHA1(33cbcc96e5144e5910c67c99815958d8f004287e) )
+ ROM_LOAD ("e11-06c.bin", 0x600000, 0x200000, CRC(0acc71d3) SHA1(455c70ec8f1087189170160d5683545bbea1fe9a) )
+ ROM_FILL ( 0x400000, 0x200000, 0 )
+
+ ROM_REGION(0x140000, "taito_en:audiocpu", 0)
+ ROM_LOAD16_BYTE("e11-13.bin", 0x100000, 0x20000, CRC(51a11ff7) SHA1(c03042489d71423667f25856d15aa6a363ea6c92) )
+ ROM_LOAD16_BYTE("e11-14.bin", 0x100001, 0x20000, CRC(dce2ba91) SHA1(00bc353c7747a7954365b587d7bc759ee5dc09c2) )
+
+ ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 )
+ ROM_LOAD16_BYTE("e11-04.ic38", 0x000000, 0x200000, CRC(e0ff4fb1) SHA1(81e186e3a692af1da316b8085a729c4f103d9a52) )
+ ROM_LOAD16_BYTE("e11-05.ic41", 0x400000, 0x200000, CRC(a4d08cf1) SHA1(ae2cabef7b7bcb8a788988c73d7af6fa4bb2c444) )
+ROM_END
+
+ROM_START( landmakh )
+ ROM_REGION(0x200000, "maincpu", 0)
+ ROM_LOAD32_BYTE("e61-13.20", 0x000000, 0x80000, CRC(0af756a2) SHA1(2dadac6873f2491ee77703f07f00dde2aa909355) )
+ ROM_LOAD32_BYTE("e61-12.19", 0x000001, 0x80000, CRC(636b3df9) SHA1(78a5bf4977bb90d710942188ce5016f3df499feb) )
+ ROM_LOAD32_BYTE("e61-11.18", 0x000002, 0x80000, CRC(279a0ee4) SHA1(08380286737b33db76a79b27d0df5faba17dfb96) )
+ ROM_LOAD32_BYTE("e61-wrd.17", 0x000003, 0x80000, CRC(34a5939e) SHA1(4fbcdd0b57cbd589b554d1751394df8389293966) )
+
+ ROM_REGION(0x800000, "gfx1" , 0)
+ ROM_LOAD16_BYTE("e61-03.12",0x000000, 0x200000, CRC(e8abfc46) SHA1(fbde006f9822af3ed8debec525270d329981ea21) )
+ ROM_LOAD16_BYTE("e61-02.08",0x000001, 0x200000, CRC(1dc4a164) SHA1(33b412d9653099aaff8ed5e62d1ba4fc30aa9058) )
+ ROM_LOAD ("e61-01.04",0x600000, 0x200000, CRC(6cdd8311) SHA1(7810a5a81f3b5a730d2088c79b12fffd77659b5b) )
+ ROM_FILL ( 0x400000, 0x200000, 0 )
+
+ ROM_REGION(0x800000, "gfx2" , 0)
+ ROM_LOAD16_BYTE("e61-09.47", 0x000000, 0x200000, CRC(6ba29987) SHA1(b63c12523e19da66b3ca07c3548ac81bf57b59a1) )
+ ROM_LOAD16_BYTE("e61-08.45", 0x000001, 0x200000, CRC(76c98e14) SHA1(c021c325ab4ae410fa54e2eab61d34318867432b) )
+ ROM_LOAD ("e61-07.43", 0x600000, 0x200000, CRC(4a57965d) SHA1(8e80788e0f47fb242da9af3aa19077dc0ec829b8) )
+ ROM_FILL ( 0x400000, 0x200000, 0 )
+
+ ROM_REGION(0x140000, "taito_en:audiocpu", 0)
+ ROM_LOAD16_BYTE("e61-14.32", 0x100000, 0x20000, CRC(b905f4a7) SHA1(613b954e3e129fd44b4ce64958f16e5636012d6e) )
+ ROM_LOAD16_BYTE("e61-15.33", 0x100001, 0x20000, CRC(87909869) SHA1(7b90c23899a673966cac3352d375d17b83e66596) )
+
+ ROM_REGION16_BE(0x1000000, "ensoniq.0" , ROMREGION_ERASE00 )
+ ROM_LOAD16_BYTE("e61-04.38", 0x400000, 0x200000, CRC(c27aec0c) SHA1(e95da2db07a20a53662ebd45c033966e8a22a15a) )
+ ROM_LOAD16_BYTE("e61-05.39", 0x800000, 0x200000, CRC(83920d9d) SHA1(019e39ae85d1129f6d3b8460c4b1bd925f868ee2) )
+ ROM_LOAD16_BYTE("e61-06.40", 0xc00000, 0x200000, CRC(2e717bfe) SHA1(1be54cd2ec65d8fd49a5c09b5d27791fd7a320d4) )
+ROM_END
+
+ROM_START( pbobl2xh )
+ ROM_REGION(0x200000, "maincpu", 0)
+ ROM_LOAD32_BYTE("e10-29.20", 0x000000, 0x40000, CRC(f1e9ad3f) SHA1(8689d85f30e075d21e4be01a2a097a850a921c47) )
+ ROM_LOAD32_BYTE("e10-28.19", 0x000001, 0x40000, CRC(412a3602) SHA1(d754e6ac886676d2c1eb52de3a727894f316e6b5) )
+ ROM_LOAD32_BYTE("e10-27.18", 0x000002, 0x40000, CRC(88cc0b5c) SHA1(bb08a7b8b37356376052ed03f8515677811823c0) )
+ ROM_LOAD32_BYTE("e10-wrd.17", 0x000003, 0x40000, CRC(4bcc216b) SHA1(45e9250414201fa5ad866b32b0285973fd06367c) )
+
+ ROM_REGION(0x400000, "gfx1" , 0)
+ ROM_LOAD16_BYTE("e10-02.rom", 0x000000, 0x100000, CRC(c0564490) SHA1(cbe9f880192c08f4d1db21d5ba14073b97e5f1d3) )
+ ROM_LOAD16_BYTE("e10-01.rom", 0x000001, 0x100000, CRC(8c26ff49) SHA1(cbb514c061106003d2ae2b6c43958b24feaad656) )
+ ROM_FILL ( 0x200000, 0x200000, 0 )
+
+ ROM_REGION(0x400000, "gfx2" , ROMREGION_ERASE00)
+ ROM_LOAD16_BYTE("e10-07.rom", 0x000000, 0x100000, CRC(dcb3c29b) SHA1(b80c3a8ce53d696c57675e654c9927ef8687759e) )
+ ROM_LOAD16_BYTE("e10-06.rom", 0x000001, 0x100000, CRC(1b0f20e2) SHA1(66b44d059c2896abac2f0e7fc932489dee440ba0) )
+ ROM_LOAD ("e10-05.rom", 0x300000, 0x100000, CRC(81266151) SHA1(aa3b144f32995425db97efce440e234a3c7a6715) )
+
+ ROM_REGION(0x180000, "taito_en:audiocpu", 0)
+ ROM_LOAD16_BYTE("e10-30.32", 0x100000, 0x40000, CRC(bb090c1e) SHA1(af2ff23d6f9bd56c25530cb9bf9f452b6f5210f5) )
+ ROM_LOAD16_BYTE("e10-31.33", 0x100001, 0x40000, CRC(f4b88d65) SHA1(c74dcb4bed979039fad1d5c7528c14ce4db1d5ec) )
+
+ ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 )
+ ROM_LOAD16_BYTE("e10-04.rom", 0x000000, 0x200000, CRC(5c0862a6) SHA1(f916f63b8629239e3221e1e231e1b39962ef38ba) )
+ ROM_LOAD16_BYTE("e10-03.rom", 0x400000, 0x200000, CRC(46d68ac8) SHA1(ad014e9f0d458308014959ca6823077f581ab088) )
+ROM_END
+
+
+GAME( 1996, cleopath, cleopatr, f3_224a, f3, taito_f3_state, cleopatr, ROT0, "hack", "Cleopatra Fortune (World Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, driusgxh, dariusg, f3, f3, taito_f3_state, dariusg, ROT0, "hack", "Darius Gaiden (World Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, f3demo, 0, f3, f3, taito_f3_state, pbobble3, ROT0, "Antiriad", "Demo - Taito F3", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1995, gekiridh, gekiridn, f3, f3, taito_f3_state, gekirido, ROT270, "hack", "Gekirindan (World Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, gekiridoc, gekiridn, f3, f3, taito_f3_state, gekirido, ROT270, "Taito Corporation", "Gekirindan (Ver 2.3C 1995/09/21)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, landmakh, landmakr, f3, f3, taito_f3_state, landmakr, ROT0, "hack", "Land Maker (World Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, pbobl2xh, pbobble2, f3, f3, taito_f3_state, pbobbl2x, ROT0, "hack", "Puzzle Bobble 2X (World Hack)", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/taito_l.cpp b/docs/release/src/hbmame/drivers/taito_l.cpp
new file mode 100644
index 00000000000..7b01dd2dff4
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/taito_l.cpp
@@ -0,0 +1,72 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/taito_l.cpp"
+
+ROM_START( evilstonfr )
+ ROM_REGION( 0x40000, "maincpu", 0 )
+ ROM_LOAD( "c67-03fr.ic2", 0x00000, 0x20000, CRC(3fa7e884) SHA1(94716256c199b5f347bbe122d04adbab1a54b1ce) )
+ ROM_LOAD( "c67-04fr.ic6", 0x20000, 0x20000, CRC(8c43dc76) SHA1(ee395d55ee8e66c86e12f604774799ca7cfe1858) )
+
+ ROM_REGION( 0x80000, "audiocpu", 0 )
+ ROM_LOAD( "c67-05.ic22", 0x00000, 0x20000, CRC(94d3a642) SHA1(af20aa5bb60a45c05eb1deba23ba30e6640ca235) )
+
+ ROM_REGION( 0x100000, "gfx1", 0 )
+ ROM_LOAD( "c67-01.ic1", 0x00000, 0x80000, CRC(2f351bf4) SHA1(0fb37abf3413cd11baece1c9bbca5a51b0f28938) )
+ ROM_LOAD( "c67-02.ic5", 0x80000, 0x80000, CRC(eb4f895c) SHA1(2c902572fe5a5d4442e4dd29e8a85cb40c384140) )
+ROM_END
+
+ROM_START( sokoban )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "sokoban.ic10", 0x00000, 0x10000, CRC(5959ddb4) SHA1(73f206e19cdfd151426092aa3eea6f72093f360b) )
+
+ ROM_REGION( 0x20000, "gfx1", 0 )
+ ROM_LOAD16_BYTE( "sokoban.ic9", 0x00000, 0x10000, CRC(859e1ff4) SHA1(899b71bd0eb9923e88cf7142ed634b36b3e34c6c) )
+ ROM_LOAD16_BYTE( "sokoban.ic8", 0x00001, 0x10000, CRC(439a6670) SHA1(79144e3ba5205f5356f28d3b23ef32d3d4fca51c) )
+
+ // came with the zipfile but not used
+ ROM_REGION( 0x0200, "plds", 0 )
+ ROM_LOAD_OPTIONAL( "gal16v8-b86-04.bin", 0x0000, 0x0117, CRC(bf8c0ea0) SHA1(e0a00f1f6363fb79650202f90a56329990876d49) )
+ROM_END
+
+ROM_START( speccies )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "speccies.ic10", 0x00000, 0x55e9, CRC(29e126ac) SHA1(1e3e1379f964e0967d6ea5ef6a84741319b5108f) )
+
+ // came with the zipfile but not used
+ ROM_REGION( 0x0800, "mcu", 0 )
+ ROM_LOAD_OPTIONAL( "mc68705p3.ic4", 0x0000, 0x0800, CRC(085f68b4) SHA1(2dbc7e2c015220dc59ee1f1208540744e5b9b7cc) )
+
+ ROM_REGION( 0x20000, "gfx1", 0 )
+ ROM_LOAD16_BYTE( "speccies.ic9", 0x00000, 0x10000, CRC(11ed1528) SHA1(55f0b63bcbbbe4ad4d1041dca980b55ccb7a7aea) )
+ ROM_LOAD16_BYTE( "speccies.ic8", 0x00001, 0x10000, CRC(fcfeb89f) SHA1(fc0e811c72313b371d3a6530b27f9023ff201e31) )
+
+ // came with the zipfile but not used
+ ROM_REGION( 0x0200, "plds", 0 )
+ ROM_LOAD_OPTIONAL( "gal16v8-b86-04.bin", 0x0000, 0x0117, CRC(bf8c0ea0) SHA1(e0a00f1f6363fb79650202f90a56329990876d49) )
+ROM_END
+
+ROM_START( tldemo )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "tldemo.ic10", 0x00000, 0x56a4, CRC(fda3d418) SHA1(e0171cc1c035d1f800702c3766825b63f6acd291) )
+
+ ROM_REGION( 0x20000, "gfx1", 0 )
+ ROM_LOAD16_BYTE( "tldemo.ic9", 0x00000, 0x10000, CRC(792b8c11) SHA1(0592481b586bfca0f8f8eb096bee46690943596b) )
+ ROM_LOAD16_BYTE( "tldemo.ic8", 0x00001, 0x10000, CRC(59cfc5ab) SHA1(133084eeacdf978ed13db565f64d155c08ecaade) )
+ROM_END
+
+ROM_START( tldemo2 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "tldemo2.ic10", 0x00000, 0x7142, CRC(1292a22c) SHA1(e351ac5381f7d73de0087586c7fb28d9eccd72cb) )
+ // This one below is the old version, works fine in MAME but is buggy in real hardware.
+ //ROM_LOAD( "tldemo2.ic10", 0x00000, 0x6514, CRC(efd21b6b) SHA1(1c3bfb64dacfb5a1da55201cd4d4202694e06d37) )
+
+ ROM_REGION( 0x20000, "gfx1", 0 )
+ ROM_LOAD16_BYTE( "tldemo2.ic9", 0x00000, 0x10000, CRC(fcc75ddb) SHA1(e702480b84379e3106cb6d575d237a8f9701f49e) )
+ ROM_LOAD16_BYTE( "tldemo2.ic8", 0x00001, 0x10000, CRC(33e70f71) SHA1(5a0caa0912dd7d76dd7e788e21b4cc7f320156ad) )
+ROM_END
+
+GAME( 2007, evilstonfr, evilston, evilston, evilston, driver_device, 0, ROT270, "Arkatrad", "Evil Stone (French)", MACHINE_IMPERFECT_SOUND )
+GAME( 2015, sokoban, 0, plotting, plotting, driver_device, 0, ROT0, "cmonkey", "Sokoban LE", 0 )
+GAME( 2015, speccies, 0, plotting, plotting, driver_device, 0, ROT0, "Sokurah", "Speccies 2", 0 )
+GAME( 2014, tldemo, 0, plotting, plotting, driver_device, 0, ROT0, "cmonkey", "Demo - System Timed Cheat Tool", 0 )
+GAME( 2015, tldemo2, 0, plotting, plotting, driver_device, 0, ROT0, "cmonkey", "Demo - 256 colours", 0 )
diff --git a/docs/release/src/hbmame/drivers/tecmo.cpp b/docs/release/src/hbmame/drivers/tecmo.cpp
new file mode 100644
index 00000000000..8df56115e5c
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/tecmo.cpp
@@ -0,0 +1,73 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/tecmo.cpp"
+
+ROM_START( geminit ) // same as gemini except for 1c
+ ROM_REGION( 0x20000, "maincpu", 0 )
+ ROM_LOAD( "gw04-5s.rom", 0x00000, 0x10000, CRC(ff9de855) SHA1(34167af8456a081f68b338f10d4319ce1e703fd4) )
+ ROM_LOAD( "gw05-6s.rom", 0x10000, 0x10000, CRC(5a6947a9) SHA1(18b7aeb0f0e2c396bc759118dd7c45fd6070b804) )
+
+ ROM_REGION( 0x10000, "soundcpu", 0 )
+ ROM_LOAD( "gw03-5h.rom", 0x0000, 0x8000, CRC(9bc79596) SHA1(61de9ddd45140e8ed88173294bd26147e2abfa21) )
+
+ ROM_REGION( 0x08000, "gfx1", 0 )
+ ROM_LOAD( "gw02-3h.rom", 0x00000, 0x08000, CRC(7acc8d35) SHA1(05056e9f077e7571b314390b508c72d56ad0f43b) )
+
+ ROM_REGION( 0x40000, "gfx2", 0 )
+ ROM_LOAD( "geminit.1c", 0x00000, 0x10000, CRC(c47b1c97) SHA1(7d8680afe4bc76ac712ef2e86bb43bbe02c77199) )
+ ROM_LOAD( "gw07-1d.rom", 0x10000, 0x10000, CRC(da42637e) SHA1(9885c52823279f26871092c77bdbe027df08268f) )
+ ROM_LOAD( "gw08-1f.rom", 0x20000, 0x10000, CRC(0b4e8d70) SHA1(55069f3df1c8db83f306d46b8262fd23585e6013) )
+ ROM_LOAD( "gw09-1h.rom", 0x30000, 0x10000, CRC(b65c5e4c) SHA1(699e1a9e72b8d94edae7382ba119fe5da113514d) )
+
+ ROM_REGION( 0x40000, "gfx3", 0 )
+ ROM_LOAD( "gw10-1n.rom", 0x00000, 0x10000, CRC(5e84cd4f) SHA1(e85320291027a16619c87fc2365448367bda454a) )
+ ROM_LOAD( "gw11-2na.rom", 0x10000, 0x10000, CRC(08b458e1) SHA1(b3426faa57dca51dc053db44fa4968425d8bf3ee) )
+ ROM_LOAD( "gw12-2nb.rom", 0x20000, 0x10000, CRC(229c9714) SHA1(f4f47d6b379c973c22f9ae7d7bec7041cdf3f737) )
+ ROM_LOAD( "gw13-3n.rom", 0x30000, 0x10000, CRC(c5dfaf47) SHA1(c3202ca8c7f3c5c7dc9acdc09c1c894e168ef9fe) )
+
+ ROM_REGION( 0x40000, "gfx4", 0 )
+ ROM_LOAD( "gw14-1r.rom", 0x00000, 0x10000, CRC(9c10e5b5) SHA1(a81399b85d8f3ddca26883ec3535cb9044c35ada) )
+ ROM_LOAD( "gw15-2ra.rom", 0x10000, 0x10000, CRC(4cd18cfa) SHA1(c197a098a7c1e5220aad039383a40702fe7c4f21) )
+ ROM_LOAD( "gw16-2rb.rom", 0x20000, 0x10000, CRC(f911c7be) SHA1(3f49f6c4734f2b644d93c4a54249aae6ff080e1d) )
+ ROM_LOAD( "gw17-3r.rom", 0x30000, 0x10000, CRC(79a9ce25) SHA1(74e3917b8e7a920ceb2135d7ef8fb2f2c5176b21) )
+
+ ROM_REGION( 0x8000, "adpcm", 0 )
+ ROM_LOAD( "gw01-6a.rom", 0x0000, 0x8000, CRC(d78afa05) SHA1(b02a739b045f5cddf943ce59226ef234463eeebe) )
+ROM_END
+
+ROM_START( rygark ) // same as rygarj except for gfx1
+ ROM_REGION( 0x18000, "maincpu", 0 )
+ ROM_LOAD( "cpuj_5p.bin", 0x00000, 0x08000, CRC(b39698ba) SHA1(01a5a12a71973ad117b0bbd763e470f89c439e45) )
+ ROM_LOAD( "cpuj_5m.bin", 0x08000, 0x04000, CRC(3f180979) SHA1(c4c2e9f83b06b8677978800bfcc39f4ba3b344ab) )
+ ROM_LOAD( "cpuj_5j.bin", 0x10000, 0x08000, CRC(69e44e8f) SHA1(e979760a3582e64788c043adf7e475f0e1b75033) )
+
+ ROM_REGION( 0x10000, "soundcpu", 0 )
+ ROM_LOAD( "cpu_4h.bin", 0x0000, 0x2000, CRC(e4a2fa87) SHA1(ed58187dbbcf59358496a98ffd6c227a87d6c433) )
+
+ ROM_REGION( 0x08000, "gfx1", 0 )
+ ROM_LOAD( "rygark.8k", 0x00000, 0x08000, CRC(370bd8c0) SHA1(a4f140c8890608afdee4617ad1165b491cd103d8) )
+
+ ROM_REGION( 0x20000, "gfx2", 0 )
+ ROM_LOAD( "vid_6k.bin", 0x00000, 0x08000, CRC(aba6db9e) SHA1(43eb6f4f92afb5fbc11adc7e2ab04878ab56cb17) )
+ ROM_LOAD( "vid_6j.bin", 0x08000, 0x08000, CRC(ae1f2ed6) SHA1(6e6a33e665ba0884b7f57e9ad69d3f51e41d9e7b) )
+ ROM_LOAD( "vid_6h.bin", 0x10000, 0x08000, CRC(46d9e7df) SHA1(a24e0bea310a03636af704a0ad3f1a9cc4aafe12) )
+ ROM_LOAD( "vid_6g.bin", 0x18000, 0x08000, CRC(45839c9a) SHA1(eaee5767d8b0b62b991c089ef51b922e89850b79) )
+
+ ROM_REGION( 0x20000, "gfx3", 0 )
+ ROM_LOAD( "vid_6p.bin", 0x00000, 0x08000, CRC(9eae5f8e) SHA1(ed83b608ca57b9bf69fa866d9b8f55d16b7cff63) )
+ ROM_LOAD( "vid_6o.bin", 0x08000, 0x08000, CRC(5a10a396) SHA1(12ebed3952ff35a2c275cb27c915f82183048cd4) )
+ ROM_LOAD( "vid_6n.bin", 0x10000, 0x08000, CRC(7b12cf3f) SHA1(6b9d8cad6e15317df01bab0591fab09199ca6d40) )
+ ROM_LOAD( "vid_6l.bin", 0x18000, 0x08000, CRC(3cea7eaa) SHA1(1dd194d5672dfe71c2b27d2d7b76f5a611cff76f) )
+
+ ROM_REGION( 0x20000, "gfx4", 0 )
+ ROM_LOAD( "vid_6f.bin", 0x00000, 0x08000, CRC(9840edd8) SHA1(f19a1a1d932214037144c533ad07ed81256c34e7) )
+ ROM_LOAD( "vid_6e.bin", 0x08000, 0x08000, CRC(ff65e074) SHA1(513c1bad336ef5d871f15d6ba8943020f98d1f4a) )
+ ROM_LOAD( "vid_6c.bin", 0x10000, 0x08000, CRC(89868c85) SHA1(f21550f40e7a177e95c40f2726c651f85ca8edce) )
+ ROM_LOAD( "vid_6b.bin", 0x18000, 0x08000, CRC(35389a7b) SHA1(a887a89f9bbb5979bb589468d80efba1f243690b) )
+
+ ROM_REGION( 0x4000, "adpcm", 0 )
+ ROM_LOAD( "cpu_1f.bin", 0x0000, 0x4000, CRC(3cc98c5a) SHA1(ea1035be939ed1a994f3273b33412c85dda0973e) )
+ROM_END
+
+GAME( 2002, geminit, gemini, gemini, gemini, tecmo_state, gemini, ROT90, "Twisty", "Gemini Wing Hack", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, rygark, rygar, rygar, rygar, tecmo_state, rygar, ROT0, "Hack", "Rygar (Korean)", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/tecmo16.cpp b/docs/release/src/hbmame/drivers/tecmo16.cpp
new file mode 100644
index 00000000000..60d9fbea587
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/tecmo16.cpp
@@ -0,0 +1,32 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/tecmo16.cpp"
+
+
+
+ROM_START( fstarfrcc )
+ ROM_REGION( 0x80000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "fstarfc01.rom", 0x00000, 0x40000, CRC(28a0b648) SHA1(b9b1ad7a7823b0c4e96bf1a3c4ede0192a78fe38) )
+ ROM_LOAD16_BYTE( "fstarfc02.rom", 0x00001, 0x40000, CRC(cd49179f) SHA1(b1093a999c5c918cf399589fba6d175cd6899e6a) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "fstarf07.rom", 0x00000, 0x10000, CRC(e0ad5de1) SHA1(677237341e837061b6cc02200c0752964caed907) )
+
+ ROM_REGION( 0x20000, "gfx1", 0 )
+ ROM_LOAD( "fstarfc03.rom", 0x00000, 0x20000, CRC(4bedd245) SHA1(55a5dfac11dbd0c615025d25d24a5917a54955c7) )
+
+ ROM_REGION( 0x100000, "gfx2", 0 )
+ ROM_LOAD16_BYTE( "fstarf05.rom", 0x00000, 0x80000, CRC(77a281e7) SHA1(a87a90c2c856d45785cb56185b1a7dff3404b5cb) )
+ ROM_LOAD16_BYTE( "fstarf04.rom", 0x00001, 0x80000, CRC(398a920d) SHA1(eecc167803f48517348d68ce70f15e87eac204bb) )
+
+ ROM_REGION( 0x100000, "gfx3", 0 )
+ ROM_LOAD16_BYTE( "fstarf09.rom", 0x00000, 0x80000, CRC(d51341d2) SHA1(e46c319158046d407d4387cb2d8f0b6cfd7be576) )
+ ROM_LOAD16_BYTE( "fstarf06.rom", 0x00001, 0x80000, CRC(07e40e87) SHA1(22867e52a8267ae8ae0ff0dba6bb846cb3e1b63d) )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "fstarf08.rom", 0x00000, 0x20000, CRC(f0ad5693) SHA1(a0202801bb9f9c86175ca7989fbc9efa47183188) )
+ROM_END
+
+
+
+GAME( 1992, fstarfrcc, fstarfrc, fstarfrc, fstarfrc, driver_device, 0, ROT90, "Tecmo", "Final Star Force (Chinese)", 0 )
diff --git a/docs/release/src/hbmame/drivers/tehkanwc.cpp b/docs/release/src/hbmame/drivers/tehkanwc.cpp
new file mode 100644
index 00000000000..fcb204fa562
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/tehkanwc.cpp
@@ -0,0 +1,123 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/tehkanwc.cpp"
+
+ROM_START( ballonwc )
+ ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */
+ ROM_LOAD( "twc-1.bin", 0x0000, 0x4000, CRC(34d6d5ff) SHA1(72f4d408b8a7766d348f6a229d395e0c98215c40) )
+ ROM_LOAD( "twc-2.bin", 0x4000, 0x4000, CRC(7017a221) SHA1(4b4700af0a6ff64f976db369ba4b9d97cee1fd5f) )
+ ROM_LOAD( "twc-3.bin", 0x8000, 0x4000, CRC(8b662902) SHA1(13bcd4bf23e34dd7193545561e05bb2cb2c95f9b) )
+
+ ROM_REGION( 0x10000, "sub", 0 ) /* 64k for code */
+ ROM_LOAD( "twc-4.bin", 0x0000, 0x8000, CRC(70a9f883) SHA1(ace04359265271eb37512a89eb0217eb013aecb7) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for code */
+ ROM_LOAD( "twc-6.bin", 0x0000, 0x4000, CRC(e3112be2) SHA1(7859e51b4312dc5df01c88e1d97cf608abc7ca72) )
+
+ ROM_REGION( 0x04000, "gfx1", 0 )
+ ROM_LOAD( "twc-12.bin", 0x00000, 0x4000, CRC(a9e274f8) SHA1(02b46e1b149a856f0be74a23faaeb792935b66c7) ) /* fg tiles */
+
+ ROM_REGION( 0x10000, "gfx2", 0 )
+ ROM_LOAD( "blwc-8.bin", 0x00000, 0x8000, CRC(a0f75389) SHA1(60c5117430ac3471768efd0341ea533f49e8b1bd) ) /* sprites */
+ ROM_LOAD( "twc-7.bin", 0x08000, 0x8000, CRC(59faebe7) SHA1(85dad90928369601e039467d575750539410fcf6) )
+
+ ROM_REGION( 0x10000, "gfx3", 0 )
+ ROM_LOAD( "twc-11.bin", 0x00000, 0x8000, CRC(669389fc) SHA1(a93e8455060ce5242cb65f78e47b4840aa13ab13) ) /* bg tiles */
+ ROM_LOAD( "twc-9.bin", 0x08000, 0x8000, CRC(347ef108) SHA1(bb9c2f51d65f28655404e10c3be44d7ade98711b) )
+
+ ROM_REGION( 0x8000, "adpcm", 0 ) /* ADPCM samples */
+ ROM_LOAD( "twc-5.bin", 0x0000, 0x4000, CRC(444b5544) SHA1(0786d6d9ada7fe49c8ab9751b049095474d2e598) )
+ROM_END
+
+ROM_START( tehkangc )
+ ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */
+ ROM_LOAD( "twc-1.bin", 0x0000, 0x4000, CRC(34d6d5ff) SHA1(72f4d408b8a7766d348f6a229d395e0c98215c40) )
+ ROM_LOAD( "twc-2.bin", 0x4000, 0x4000, CRC(7017a221) SHA1(4b4700af0a6ff64f976db369ba4b9d97cee1fd5f) )
+ ROM_LOAD( "twc-3.bin", 0x8000, 0x4000, CRC(8b662902) SHA1(13bcd4bf23e34dd7193545561e05bb2cb2c95f9b) )
+
+ ROM_REGION( 0x10000, "sub", 0 ) /* 64k for code */
+ ROM_LOAD( "twc-4.bin", 0x0000, 0x8000, CRC(70a9f883) SHA1(ace04359265271eb37512a89eb0217eb013aecb7) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for code */
+ ROM_LOAD( "twc-6.bin", 0x0000, 0x4000, CRC(e3112be2) SHA1(7859e51b4312dc5df01c88e1d97cf608abc7ca72) )
+
+ ROM_REGION( 0x04000, "gfx1", 0 )
+ ROM_LOAD( "tgc-12.bin", 0x00000, 0x4000, CRC(dbf5cede) SHA1(ec2d21f62ab331ce64c7765f6b05a8c3c69e8ddd) ) /* fg tiles */
+
+ ROM_REGION( 0x10000, "gfx2", 0 )
+ ROM_LOAD( "tgc-8.bin", 0x00000, 0x8000, CRC(1177c8a0) SHA1(be0e0c763f2ac08ede546884e616073eb9a5517d) ) /* sprites */
+ ROM_LOAD( "tgc-7.bin", 0x08000, 0x8000, CRC(7f01d5a4) SHA1(4494ca82c9d16a4047591de7b588a8ab53ce5170) )
+
+ ROM_REGION( 0x10000, "gfx3", 0 )
+ ROM_LOAD( "twc-11.bin", 0x00000, 0x8000, CRC(669389fc) SHA1(a93e8455060ce5242cb65f78e47b4840aa13ab13) ) /* bg tiles */
+ ROM_LOAD( "twc-9.bin", 0x08000, 0x8000, CRC(347ef108) SHA1(bb9c2f51d65f28655404e10c3be44d7ade98711b) )
+
+ ROM_REGION( 0x8000, "adpcm", 0 ) /* ADPCM samples */
+ ROM_LOAD( "twc-5.bin", 0x0000, 0x4000, CRC(444b5544) SHA1(0786d6d9ada7fe49c8ab9751b049095474d2e598) )
+ROM_END
+
+ROM_START( tankwc )
+ ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */
+ ROM_LOAD( "twc-1.bin", 0x0000, 0x4000, CRC(34d6d5ff) SHA1(72f4d408b8a7766d348f6a229d395e0c98215c40) )
+ ROM_LOAD( "twc-2.bin", 0x4000, 0x4000, CRC(7017a221) SHA1(4b4700af0a6ff64f976db369ba4b9d97cee1fd5f) )
+ ROM_LOAD( "twc-3.bin", 0x8000, 0x4000, CRC(8b662902) SHA1(13bcd4bf23e34dd7193545561e05bb2cb2c95f9b) )
+
+ ROM_REGION( 0x10000, "sub", 0 ) /* 64k for code */
+ ROM_LOAD( "twc-4.bin", 0x0000, 0x8000, CRC(70a9f883) SHA1(ace04359265271eb37512a89eb0217eb013aecb7) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for code */
+ ROM_LOAD( "twc-6.bin", 0x0000, 0x4000, CRC(e3112be2) SHA1(7859e51b4312dc5df01c88e1d97cf608abc7ca72) )
+
+ ROM_REGION( 0x04000, "gfx1", 0 )
+ ROM_LOAD( "tkwc-12.bin", 0x00000, 0x4000, CRC(cf5e084a) SHA1(bba909898135467a8cbe8ca7ba7d14254ad52135) ) /* fg tiles */
+
+ ROM_REGION( 0x10000, "gfx2", 0 )
+ ROM_LOAD( "tkwc-8.bin", 0x00000, 0x8000, CRC(068210d1) SHA1(f2f21fa9452ba6d47ccdb4de3ddab833956d3fea) ) /* sprites */
+ ROM_LOAD( "tkwc-7.bin", 0x08000, 0x8000, CRC(8e7dca59) SHA1(4ae3d6c0faf99d16db5b3c49ae96aa87741f635c) )
+
+ ROM_REGION( 0x10000, "gfx3", 0 )
+ ROM_LOAD( "tkwc-11.bin", 0x00000, 0x8000, CRC(1f8536e3) SHA1(de44a066fc5862bac7de039053262ec167b70c35) ) /* bg tiles */
+ ROM_LOAD( "tkwc-9.bin", 0x08000, 0x8000, CRC(f88f52ed) SHA1(33fa29582f81f2da7dcb671ccb0c7121b95b545f) )
+
+ ROM_REGION( 0x8000, "adpcm", 0 ) /* ADPCM samples */
+ ROM_LOAD( "twc-5.bin", 0x0000, 0x4000, CRC(444b5544) SHA1(0786d6d9ada7fe49c8ab9751b049095474d2e598) )
+ROM_END
+
+ROM_START( twc_gr )
+ ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */
+ ROM_LOAD( "twc-1gr.bin", 0x0000, 0x4000, CRC(0686377f) SHA1(69c4d63c216e0b640ad514568a07c414a94bae7c) )
+ ROM_LOAD( "twc-2.bin", 0x4000, 0x4000, CRC(7017a221) SHA1(4b4700af0a6ff64f976db369ba4b9d97cee1fd5f) )
+ ROM_LOAD( "twc-3gr.bin", 0x8000, 0x4000, CRC(9a10118d) SHA1(1319e465620ab297bf70aed6eed426b68580a327) )
+
+ ROM_REGION( 0x10000, "sub", 0 ) /* 64k for code */
+ ROM_LOAD( "twc-4gr.bin", 0x0000, 0x8000, CRC(8a13d6ac) SHA1(cc9b7a0836d6b4ff5f037a165451f6cf2f967d21) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for code */
+ ROM_LOAD( "twc-6.bin", 0x0000, 0x4000, CRC(e3112be2) SHA1(7859e51b4312dc5df01c88e1d97cf608abc7ca72) )
+
+ ROM_REGION( 0x04000, "gfx1", 0 )
+ ROM_LOAD( "twc-12gr.bin", 0x00000, 0x4000, CRC(17808225) SHA1(259c0162c4eef4eceb889f4a1a142b541376e04d) ) /* fg tiles */
+
+ ROM_REGION( 0x10000, "gfx2", 0 )
+ ROM_LOAD( "twc-8.bin", 0x00000, 0x8000, CRC(055a5264) SHA1(fe294ba57c2c858952e2fab0be1b8859730846cb) ) /* sprites */
+ ROM_LOAD( "twc-7.bin", 0x08000, 0x8000, CRC(59faebe7) SHA1(85dad90928369601e039467d575750539410fcf6) )
+
+ ROM_REGION( 0x10000, "gfx3", 0 )
+ ROM_LOAD( "twc-11gr.bin", 0x00000, 0x8000, CRC(ceab1e34) SHA1(f803965ef8b69a5951656f890f0e411dfdeef7ab) ) /* bg tiles */
+ ROM_LOAD( "twc-9gr.bin", 0x08000, 0x8000, CRC(b120fbee) SHA1(a7012ec3ecbedfb3d04477bdda6f87f1fe819919) )
+
+ ROM_REGION( 0x8000, "adpcm", 0 ) /* ADPCM samples */
+ ROM_LOAD( "twc-5.bin", 0x0000, 0x4000, CRC(444b5544) SHA1(0786d6d9ada7fe49c8ab9751b049095474d2e598) )
+ROM_END
+
+GAME( 1985, ballonwc, tehkanwc, tehkanwc, tehkanwc, driver_device, 0, ROT0, "Grand Master Peter", "Ballon World Cup", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, tehkangc, tehkanwc, tehkanwc, tehkanwc, driver_device, 0, ROT0, "Grand Master Peter", "Tehkan Greek Cup", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, tankwc, tehkanwc, tehkanwc, tehkanwc, driver_device, 0, ROT0, "Kazzy", "Tank World Cup", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, twc_gr, tehkanwc, tehkanwc, tehkanwc, driver_device, 0, ROT0, "GreekRoms", "Tehkan World Cup (Greek)", MACHINE_SUPPORTS_SAVE )
+
+/* Notes on E602 - Tehkan World Cup (set 3 bootleg) (1986)
+ - Year is 1986 instead of 1985 - seems this is possibly the Spanish version
+ - Rom 1 is overdumped, after fixing this, noticed last byte changed from 27 to FF
+ - 4 bytes in rom 9 changed - this rom makes the gfx on the title screen
+ - Could not see any visual or other differences
+ - Therefore, game not added */
diff --git a/docs/release/src/hbmame/drivers/tempest.cpp b/docs/release/src/hbmame/drivers/tempest.cpp
new file mode 100644
index 00000000000..afb948e8f85
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/tempest.cpp
@@ -0,0 +1,782 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/tempest.cpp"
+
+
+/* most of these inputs are not verified */
+static INPUT_PORTS_START( aliensv )
+ PORT_START("IN0")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN3 )
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 )
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_TILT ) /* no tilt */
+ PORT_SERVICE( 0x10, IP_ACTIVE_LOW )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Diagnostic Step") PORT_CODE(KEYCODE_F1)
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER("avg", avg_tempest_device, done_r, NULL)
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, tempest_state,clock_r, NULL)
+
+ PORT_START("IN1/DSW0")
+ PORT_BIT( 0x0f, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, tempest_state,tempest_knob_r, NULL)
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Cabinet ) )
+ PORT_DIPSETTING( 0x10, DEF_STR( Upright ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) /* controls change but no flip */
+ 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("IN2")
+ PORT_DIPNAME( 0x03, 0x03, DEF_STR( Difficulty ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( Easy ) )
+ PORT_DIPSETTING( 0x03, "Medium1" )
+ PORT_DIPSETTING( 0x00, "Medium2" )
+ PORT_DIPSETTING( 0x01, DEF_STR( Hard ) )
+ PORT_DIPNAME( 0x04, 0x04, "Rating" )
+ PORT_DIPSETTING( 0x04, "1, 3, 5, 7, 9" )
+ PORT_DIPSETTING( 0x00, "tied to high score" )
+ PORT_BIT(0x18, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, tempest_state,tempest_buttons_r, NULL)
+ PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_START1 )
+ PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_START2 )
+ PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("DSW1")
+ PORT_DIPNAME( 0x03, 0x02, DEF_STR( Coinage ) ) /* coinage verified */
+ PORT_DIPSETTING( 0x03, DEF_STR( 2C_1C ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( 1C_1C ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( 1C_2C ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) )
+ PORT_DIPNAME( 0x0c, 0x00, "Right Coin" )
+ PORT_DIPSETTING( 0x00, "*1" )
+ PORT_DIPSETTING( 0x04, "*4" )
+ PORT_DIPSETTING( 0x08, "*5" )
+ PORT_DIPSETTING( 0x0c, "*6" )
+ PORT_DIPNAME( 0x10, 0x00, "Left Coin" )
+ PORT_DIPSETTING( 0x00, "*1" )
+ PORT_DIPSETTING( 0x10, "*2" )
+ PORT_DIPNAME( 0xe0, 0x00, "Bonus Coins" )
+ PORT_DIPSETTING( 0x00, DEF_STR( None ) )
+ PORT_DIPSETTING( 0x80, "1 each 5" )
+ PORT_DIPSETTING( 0x40, "1 each 4 (+Demo)" )
+ PORT_DIPSETTING( 0xa0, "1 each 3" )
+ PORT_DIPSETTING( 0x60, "2 each 4 (+Demo)" )
+ PORT_DIPSETTING( 0x20, "1 each 2" )
+ PORT_DIPSETTING( 0xc0, "Freeze Mode" )
+ PORT_DIPSETTING( 0xe0, "Freeze Mode" )
+
+ PORT_START("DSW2") /* DSW2 all dips verified */
+ PORT_DIPNAME( 0x01, 0x00, "Minimum" )
+ PORT_DIPSETTING( 0x00, "1 Credit" )
+ PORT_DIPSETTING( 0x01, "2 Credit" )
+ PORT_DIPNAME( 0x0c, 0x04, DEF_STR( Lives ) )
+ PORT_DIPSETTING( 0x00, "2" )
+ PORT_DIPSETTING( 0x04, "3" )
+ PORT_DIPSETTING( 0x08, "4" )
+ PORT_DIPSETTING( 0x0c, "5" )
+ PORT_DIPNAME( 0x30, 0x00, DEF_STR( Language ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( English ) )
+ PORT_DIPSETTING( 0x10, DEF_STR( French ) )
+ PORT_DIPSETTING( 0x20, DEF_STR( German ) )
+ PORT_DIPSETTING( 0x30, DEF_STR( Spanish ) )
+ PORT_DIPNAME( 0x02, 0x00, DEF_STR( Bonus_Life ) )
+ PORT_DIPSETTING( 0x00, "10000" )
+ PORT_DIPSETTING( 0x02, "20000" )
+ PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( On ) )
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED ) // if high it freezes
+
+ PORT_START(TEMPEST_KNOB_P1_TAG )
+ /* This is the Tempest spinner input. It only uses 4 bits. */
+ PORT_BIT( 0x0f, 0x00, IPT_DIAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(20) PORT_PLAYER(1) PORT_FULL_TURN_COUNT(72)
+ PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED )
+
+ PORT_START(TEMPEST_KNOB_P2_TAG )
+ /* This is the Tempest spinner input. It only uses 4 bits. */
+ PORT_BIT( 0x0f, 0x00, IPT_DIAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(20) PORT_PLAYER(2) PORT_FULL_TURN_COUNT(72)
+ PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED )
+
+ PORT_START(TEMPEST_BUTTONS_P1_TAG )
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
+ PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNUSED )
+
+ PORT_START(TEMPEST_BUTTONS_P2_TAG )
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
+ PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNUSED )
+INPUT_PORTS_END
+
+ROM_START( temped )
+ ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */
+ ROM_LOAD( "136002.113", 0x9000, 0x0800, CRC(65d61fe7) SHA1(38a1e8a8f65b7887cf3e190269fe4ce2c6f818aa) )
+ ROM_LOAD( "136002-114.e1", 0x9800, 0x0800, CRC(11077375) SHA1(ed8ff0ca969da6672a7683b93d4fcf2935a0d903) )
+ ROM_LOAD( "136002.115", 0xa000, 0x0800, CRC(f3e2827a) SHA1(bd04fcfbbba995e08c3144c1474fcddaaeb1c700) )
+ ROM_LOAD( "136002.316", 0xa800, 0x0800, CRC(aeb0f7e9) SHA1(a5cc25015b98692673cfc1c7c2e9634efd750870) )
+ ROM_LOAD( "136002.217", 0xb000, 0x0800, CRC(ef2eb645) SHA1(b1a2c969e8897e335d5354de6ae04a65d4b2a1e4) )
+ ROM_LOAD( "temped.118", 0xb800, 0x0800, CRC(4825ee42) SHA1(7082c4a2f4b945c004b3b17166e0e58484fda3d2) )
+ ROM_LOAD( "136002.119", 0xc000, 0x0800, CRC(a4de050f) SHA1(ea302e43a313a5a18115e74ddbaaedde0fbecda7) )
+ ROM_LOAD( "136002.120", 0xc800, 0x0800, CRC(35619648) SHA1(48f1e8bed7ec6afa0b4c549a30e5ec331c071e40) )
+ ROM_LOAD( "136002.121", 0xd000, 0x0800, CRC(73d38e47) SHA1(9980606376a79ba94f8e2a325871a6c8d10d83fc) )
+ ROM_LOAD( "136002.222", 0xd800, 0x0800, CRC(707bd5c3) SHA1(2f0af6fb7154c244c794f7247e5c16a1e06ddf7d) )
+ ROM_RELOAD( 0xf800, 0x0800 ) /* for reset/interrupt vectors */
+ /* Vector ROM */
+ ROM_LOAD( "136002-123.np3", 0x3000, 0x0800, CRC(29f7e937) SHA1(686c8b9b8901262e743497cee7f2f7dd5cb3af7e) ) /* May be labeled "136002-111", same data */
+ ROM_LOAD( "136002-124.r3", 0x3800, 0x0800, CRC(c16ec351) SHA1(a30a3662c740810c0f20e3712679606921b8ca06) ) /* May be labeled "136002-112", same data */
+
+ /* AVG PROM */
+ ROM_REGION( 0x100, "user1", 0 )
+ ROM_LOAD( "136002-125.d7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
+
+ /* Mathbox PROMs */
+ ROM_REGION( 0x20, "user2", 0 )
+ ROM_LOAD( "136002.126", 0x0000, 0x0020, CRC(8b04f921) SHA1(317b3397482f13b2d1bc21f296d3b3f9a118787b) )
+
+ ROM_REGION32_BE( 0x400, "user3", 0 )
+ ROMX_LOAD( "136002.132", 0, 0x100, CRC(2af82e87) SHA1(3816835a9ccf99a76d246adf204989d9261bb065), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.131", 0, 0x100, CRC(b31f6e24) SHA1(ce5f8ca34d06a5cfa0076b47400e61e0130ffe74), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ ROMX_LOAD( "136002.130", 1, 0x100, CRC(8119b847) SHA1(c4fbaedd4ce1ad6a4128cbe902b297743edb606a), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.129", 1, 0x100, CRC(09f5a4d5) SHA1(d6f2ac07ca9ee385c08831098b0dcaf56808993b), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ ROMX_LOAD( "136002.128", 2, 0x100, CRC(823b61ae) SHA1(d99a839874b45f64e14dae92a036e47a53705d16), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.127", 2, 0x100, CRC(276eadd5) SHA1(55718cd8ec4bcf75076d5ef0ee1ed2551e19d9ba), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ROM_END
+
+ROM_START( tempestm )
+ ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */
+ ROM_LOAD( "136002.113", 0x9000, 0x0800, CRC(65d61fe7) SHA1(38a1e8a8f65b7887cf3e190269fe4ce2c6f818aa) )
+ ROM_LOAD( "136002-114.e1", 0x9800, 0x0800, CRC(11077375) SHA1(ed8ff0ca969da6672a7683b93d4fcf2935a0d903) )
+ ROM_LOAD( "136002.115", 0xa000, 0x0800, CRC(f3e2827a) SHA1(bd04fcfbbba995e08c3144c1474fcddaaeb1c700) )
+ ROM_LOAD( "136002.316", 0xa800, 0x0800, CRC(aeb0f7e9) SHA1(a5cc25015b98692673cfc1c7c2e9634efd750870) )
+ ROM_LOAD( "136002.217", 0xb000, 0x0800, CRC(ef2eb645) SHA1(b1a2c969e8897e335d5354de6ae04a65d4b2a1e4) )
+ ROM_LOAD( "tempestm.118", 0xb800, 0x0800, CRC(b5e00840) SHA1(912e98b6766143ff5a1bc09c4d9685379408ee85) )
+ ROM_LOAD( "tempestm.119", 0xc000, 0x0800, CRC(ed4f2132) SHA1(b7deb31b23c28d0e084772bbed80a1c5997eac12) )
+ ROM_LOAD( "136002.120", 0xc800, 0x0800, CRC(35619648) SHA1(48f1e8bed7ec6afa0b4c549a30e5ec331c071e40) )
+ ROM_LOAD( "136002.121", 0xd000, 0x0800, CRC(73d38e47) SHA1(9980606376a79ba94f8e2a325871a6c8d10d83fc) )
+ ROM_LOAD( "136002.222", 0xd800, 0x0800, CRC(707bd5c3) SHA1(2f0af6fb7154c244c794f7247e5c16a1e06ddf7d) )
+ ROM_RELOAD( 0xf800, 0x0800 ) /* for reset/interrupt vectors */
+ /* Vector ROM */
+ ROM_LOAD( "136002-123.np3", 0x3000, 0x0800, CRC(29f7e937) SHA1(686c8b9b8901262e743497cee7f2f7dd5cb3af7e) ) /* May be labeled "136002-111", same data */
+ ROM_LOAD( "136002-124.r3", 0x3800, 0x0800, CRC(c16ec351) SHA1(a30a3662c740810c0f20e3712679606921b8ca06) ) /* May be labeled "136002-112", same data */
+
+ /* AVG PROM */
+ ROM_REGION( 0x100, "user1", 0 )
+ ROM_LOAD( "136002-125.d7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
+
+ /* Mathbox PROMs */
+ ROM_REGION( 0x20, "user2", 0 )
+ ROM_LOAD( "136002.126", 0x0000, 0x0020, CRC(8b04f921) SHA1(317b3397482f13b2d1bc21f296d3b3f9a118787b) )
+
+ ROM_REGION32_BE( 0x400, "user3", 0 )
+ ROMX_LOAD( "136002.132", 0, 0x100, CRC(2af82e87) SHA1(3816835a9ccf99a76d246adf204989d9261bb065), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.131", 0, 0x100, CRC(b31f6e24) SHA1(ce5f8ca34d06a5cfa0076b47400e61e0130ffe74), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ ROMX_LOAD( "136002.130", 1, 0x100, CRC(8119b847) SHA1(c4fbaedd4ce1ad6a4128cbe902b297743edb606a), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.129", 1, 0x100, CRC(09f5a4d5) SHA1(d6f2ac07ca9ee385c08831098b0dcaf56808993b), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ ROMX_LOAD( "136002.128", 2, 0x100, CRC(823b61ae) SHA1(d99a839874b45f64e14dae92a036e47a53705d16), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.127", 2, 0x100, CRC(276eadd5) SHA1(55718cd8ec4bcf75076d5ef0ee1ed2551e19d9ba), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ROM_END
+
+ROM_START( tempall ) /* rev 3 */
+ ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */
+ ROM_LOAD( "tempall.113", 0x9000, 0x0800, CRC(a9000137) SHA1(1dfb23f5d47e49923c681d4483d744795d589af0) )
+ ROM_LOAD( "136002-114.e1", 0x9800, 0x0800, CRC(11077375) SHA1(ed8ff0ca969da6672a7683b93d4fcf2935a0d903) )
+ ROM_LOAD( "136002.115", 0xa000, 0x0800, CRC(f3e2827a) SHA1(bd04fcfbbba995e08c3144c1474fcddaaeb1c700) )
+ ROM_LOAD( "136002.316", 0xa800, 0x0800, CRC(aeb0f7e9) SHA1(a5cc25015b98692673cfc1c7c2e9634efd750870) )
+ ROM_LOAD( "136002.217", 0xb000, 0x0800, CRC(ef2eb645) SHA1(b1a2c969e8897e335d5354de6ae04a65d4b2a1e4) )
+ ROM_LOAD( "tempall.118", 0xb800, 0x0800, CRC(beb352ab) SHA1(f213166d3970e0bd0f29d8dea8d6afa6990cce38) )
+ ROM_LOAD( "136002.119", 0xc000, 0x0800, CRC(a4de050f) SHA1(ea302e43a313a5a18115e74ddbaaedde0fbecda7) )
+ ROM_LOAD( "136002.120", 0xc800, 0x0800, CRC(35619648) SHA1(48f1e8bed7ec6afa0b4c549a30e5ec331c071e40) )
+ ROM_LOAD( "136002.121", 0xd000, 0x0800, CRC(73d38e47) SHA1(9980606376a79ba94f8e2a325871a6c8d10d83fc) )
+ ROM_LOAD( "136002.222", 0xd800, 0x0800, CRC(707bd5c3) SHA1(2f0af6fb7154c244c794f7247e5c16a1e06ddf7d) )
+ ROM_RELOAD( 0xf800, 0x0800 ) /* for reset/interrupt vectors */
+ /* Vector ROM */
+ ROM_LOAD( "136002-123.np3", 0x3000, 0x0800, CRC(29f7e937) SHA1(686c8b9b8901262e743497cee7f2f7dd5cb3af7e) ) /* May be labeled "136002-111", same data */
+ ROM_LOAD( "136002-124.r3", 0x3800, 0x0800, CRC(c16ec351) SHA1(a30a3662c740810c0f20e3712679606921b8ca06) ) /* May be labeled "136002-112", same data */
+
+ /* AVG PROM */
+ ROM_REGION( 0x100, "user1", 0 )
+ ROM_LOAD( "136002-125.d7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
+
+ /* Mathbox PROMs */
+ ROM_REGION( 0x20, "user2", 0 )
+ ROM_LOAD( "136002.126", 0x0000, 0x0020, CRC(8b04f921) SHA1(317b3397482f13b2d1bc21f296d3b3f9a118787b) )
+
+ ROM_REGION32_BE( 0x400, "user3", 0 )
+ ROMX_LOAD( "136002.132", 0, 0x100, CRC(2af82e87) SHA1(3816835a9ccf99a76d246adf204989d9261bb065), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.131", 0, 0x100, CRC(b31f6e24) SHA1(ce5f8ca34d06a5cfa0076b47400e61e0130ffe74), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ ROMX_LOAD( "136002.130", 1, 0x100, CRC(8119b847) SHA1(c4fbaedd4ce1ad6a4128cbe902b297743edb606a), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.129", 1, 0x100, CRC(09f5a4d5) SHA1(d6f2ac07ca9ee385c08831098b0dcaf56808993b), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ ROMX_LOAD( "136002.128", 2, 0x100, CRC(823b61ae) SHA1(d99a839874b45f64e14dae92a036e47a53705d16), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.127", 2, 0x100, CRC(276eadd5) SHA1(55718cd8ec4bcf75076d5ef0ee1ed2551e19d9ba), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ROM_END
+
+ROM_START( temptwst ) /* rev 3 */
+ ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */
+ ROM_LOAD( "tempall.113", 0x9000, 0x0800, CRC(a9000137) SHA1(1dfb23f5d47e49923c681d4483d744795d589af0) )
+ ROM_LOAD( "136002-114.e1", 0x9800, 0x0800, CRC(11077375) SHA1(ed8ff0ca969da6672a7683b93d4fcf2935a0d903) )
+ ROM_LOAD( "136002.115", 0xa000, 0x0800, CRC(f3e2827a) SHA1(bd04fcfbbba995e08c3144c1474fcddaaeb1c700) )
+ ROM_LOAD( "136002.316", 0xa800, 0x0800, CRC(aeb0f7e9) SHA1(a5cc25015b98692673cfc1c7c2e9634efd750870) )
+ ROM_LOAD( "136002.217", 0xb000, 0x0800, CRC(ef2eb645) SHA1(b1a2c969e8897e335d5354de6ae04a65d4b2a1e4) )
+ ROM_LOAD( "temptwst.118", 0xb800, 0x0800, CRC(f30afe2d) SHA1(b83b0fd7c8f4c51e2c2dc1f516212ce53fa8b240) )
+ ROM_LOAD( "temptwst.119", 0xc000, 0x0800, CRC(571b1799) SHA1(d6e5615032bcae0018e388d7e7d8a00c42ff0c5a) )
+ ROM_LOAD( "136002.120", 0xc800, 0x0800, CRC(35619648) SHA1(48f1e8bed7ec6afa0b4c549a30e5ec331c071e40) )
+ ROM_LOAD( "temptwst.121", 0xd000, 0x0800, CRC(67619e6e) SHA1(4cf91abc535cc8c5de7e5f30fabe0876a5182b39) )
+ ROM_LOAD( "136002.222", 0xd800, 0x0800, CRC(707bd5c3) SHA1(2f0af6fb7154c244c794f7247e5c16a1e06ddf7d) )
+ ROM_RELOAD( 0xf800, 0x0800 ) /* for reset/interrupt vectors */
+ /* Vector ROM */
+ ROM_LOAD( "136002-123.np3", 0x3000, 0x0800, CRC(29f7e937) SHA1(686c8b9b8901262e743497cee7f2f7dd5cb3af7e) ) /* May be labeled "136002-111", same data */
+ ROM_LOAD( "136002-124.r3", 0x3800, 0x0800, CRC(c16ec351) SHA1(a30a3662c740810c0f20e3712679606921b8ca06) ) /* May be labeled "136002-112", same data */
+
+ /* AVG PROM */
+ ROM_REGION( 0x100, "user1", 0 )
+ ROM_LOAD( "136002-125.d7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
+
+ /* Mathbox PROMs */
+ ROM_REGION( 0x20, "user2", 0 )
+ ROM_LOAD( "136002.126", 0x0000, 0x0020, CRC(8b04f921) SHA1(317b3397482f13b2d1bc21f296d3b3f9a118787b) )
+
+ ROM_REGION32_BE( 0x400, "user3", 0 )
+ ROMX_LOAD( "136002.132", 0, 0x100, CRC(2af82e87) SHA1(3816835a9ccf99a76d246adf204989d9261bb065), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.131", 0, 0x100, CRC(b31f6e24) SHA1(ce5f8ca34d06a5cfa0076b47400e61e0130ffe74), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ ROMX_LOAD( "136002.130", 1, 0x100, CRC(8119b847) SHA1(c4fbaedd4ce1ad6a4128cbe902b297743edb606a), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.129", 1, 0x100, CRC(09f5a4d5) SHA1(d6f2ac07ca9ee385c08831098b0dcaf56808993b), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ ROMX_LOAD( "136002.128", 2, 0x100, CRC(823b61ae) SHA1(d99a839874b45f64e14dae92a036e47a53705d16), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.127", 2, 0x100, CRC(276eadd5) SHA1(55718cd8ec4bcf75076d5ef0ee1ed2551e19d9ba), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ROM_END
+
+ROM_START( tmptwsta ) /* rev 3 */
+ ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */
+ ROM_LOAD( "tempall.113", 0x9000, 0x0800, CRC(a9000137) SHA1(1dfb23f5d47e49923c681d4483d744795d589af0) )
+ ROM_LOAD( "136002-114.e1", 0x9800, 0x0800, CRC(11077375) SHA1(ed8ff0ca969da6672a7683b93d4fcf2935a0d903) )
+ ROM_LOAD( "136002.115", 0xa000, 0x0800, CRC(f3e2827a) SHA1(bd04fcfbbba995e08c3144c1474fcddaaeb1c700) )
+ ROM_LOAD( "136002.316", 0xa800, 0x0800, CRC(aeb0f7e9) SHA1(a5cc25015b98692673cfc1c7c2e9634efd750870) )
+ ROM_LOAD( "136002.217", 0xb000, 0x0800, CRC(ef2eb645) SHA1(b1a2c969e8897e335d5354de6ae04a65d4b2a1e4) )
+ ROM_LOAD( "tmptwsta.118", 0xb800, 0x0800, CRC(a45add57) SHA1(79748a415dbc0a5f600d38ac098bd2d63a4f9ecc) )
+ ROM_LOAD( "temptwst.119", 0xc000, 0x0800, CRC(571b1799) SHA1(d6e5615032bcae0018e388d7e7d8a00c42ff0c5a) )
+ ROM_LOAD( "136002.120", 0xc800, 0x0800, CRC(35619648) SHA1(48f1e8bed7ec6afa0b4c549a30e5ec331c071e40) )
+ ROM_LOAD( "temptwst.121", 0xd000, 0x0800, CRC(67619e6e) SHA1(4cf91abc535cc8c5de7e5f30fabe0876a5182b39) )
+ ROM_LOAD( "136002.222", 0xd800, 0x0800, CRC(707bd5c3) SHA1(2f0af6fb7154c244c794f7247e5c16a1e06ddf7d) )
+ ROM_RELOAD( 0xf800, 0x0800 ) /* for reset/interrupt vectors */
+ /* Vector ROM */
+ ROM_LOAD( "136002-123.np3", 0x3000, 0x0800, CRC(29f7e937) SHA1(686c8b9b8901262e743497cee7f2f7dd5cb3af7e) ) /* May be labeled "136002-111", same data */
+ ROM_LOAD( "136002-124.r3", 0x3800, 0x0800, CRC(c16ec351) SHA1(a30a3662c740810c0f20e3712679606921b8ca06) ) /* May be labeled "136002-112", same data */
+
+ /* AVG PROM */
+ ROM_REGION( 0x100, "user1", 0 )
+ ROM_LOAD( "136002-125.d7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
+
+ /* Mathbox PROMs */
+ ROM_REGION( 0x20, "user2", 0 )
+ ROM_LOAD( "136002.126", 0x0000, 0x0020, CRC(8b04f921) SHA1(317b3397482f13b2d1bc21f296d3b3f9a118787b) )
+
+ ROM_REGION32_BE( 0x400, "user3", 0 )
+ ROMX_LOAD( "136002.132", 0, 0x100, CRC(2af82e87) SHA1(3816835a9ccf99a76d246adf204989d9261bb065), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.131", 0, 0x100, CRC(b31f6e24) SHA1(ce5f8ca34d06a5cfa0076b47400e61e0130ffe74), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ ROMX_LOAD( "136002.130", 1, 0x100, CRC(8119b847) SHA1(c4fbaedd4ce1ad6a4128cbe902b297743edb606a), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.129", 1, 0x100, CRC(09f5a4d5) SHA1(d6f2ac07ca9ee385c08831098b0dcaf56808993b), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ ROMX_LOAD( "136002.128", 2, 0x100, CRC(823b61ae) SHA1(d99a839874b45f64e14dae92a036e47a53705d16), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.127", 2, 0x100, CRC(276eadd5) SHA1(55718cd8ec4bcf75076d5ef0ee1ed2551e19d9ba), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ROM_END
+
+ROM_START( tmptwst2 ) /* rev 3 */
+ ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */
+ ROM_LOAD( "tempall.113", 0x9000, 0x0800, CRC(a9000137) SHA1(1dfb23f5d47e49923c681d4483d744795d589af0) )
+ ROM_LOAD( "136002-114.e1", 0x9800, 0x0800, CRC(11077375) SHA1(ed8ff0ca969da6672a7683b93d4fcf2935a0d903) )
+ ROM_LOAD( "136002.115", 0xa000, 0x0800, CRC(f3e2827a) SHA1(bd04fcfbbba995e08c3144c1474fcddaaeb1c700) )
+ ROM_LOAD( "136002.316", 0xa800, 0x0800, CRC(aeb0f7e9) SHA1(a5cc25015b98692673cfc1c7c2e9634efd750870) )
+ ROM_LOAD( "136002.217", 0xb000, 0x0800, CRC(ef2eb645) SHA1(b1a2c969e8897e335d5354de6ae04a65d4b2a1e4) )
+ ROM_LOAD( "tmptwst2.118", 0xb800, 0x0800, CRC(1c6827cb) SHA1(d5a555f6ad59630e6d33c4bacad80ee429349e59) )
+ ROM_LOAD( "temptwst.119", 0xc000, 0x0800, CRC(571b1799) SHA1(d6e5615032bcae0018e388d7e7d8a00c42ff0c5a) )
+ ROM_LOAD( "136002.120", 0xc800, 0x0800, CRC(35619648) SHA1(48f1e8bed7ec6afa0b4c549a30e5ec331c071e40) )
+ ROM_LOAD( "tmptwst2.121", 0xd000, 0x0800, CRC(c1bc4a69) SHA1(a60491fd7d6715118ed0d59dac0064c4263e15c6) )
+ ROM_LOAD( "136002.222", 0xd800, 0x0800, CRC(707bd5c3) SHA1(2f0af6fb7154c244c794f7247e5c16a1e06ddf7d) )
+ ROM_RELOAD( 0xf800, 0x0800 ) /* for reset/interrupt vectors */
+ /* Vector ROM */
+ ROM_LOAD( "136002-123.np3", 0x3000, 0x0800, CRC(29f7e937) SHA1(686c8b9b8901262e743497cee7f2f7dd5cb3af7e) ) /* May be labeled "136002-111", same data */
+ ROM_LOAD( "136002-124.r3", 0x3800, 0x0800, CRC(c16ec351) SHA1(a30a3662c740810c0f20e3712679606921b8ca06) ) /* May be labeled "136002-112", same data */
+
+ /* AVG PROM */
+ ROM_REGION( 0x100, "user1", 0 )
+ ROM_LOAD( "136002-125.d7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
+
+ /* Mathbox PROMs */
+ ROM_REGION( 0x20, "user2", 0 )
+ ROM_LOAD( "136002.126", 0x0000, 0x0020, CRC(8b04f921) SHA1(317b3397482f13b2d1bc21f296d3b3f9a118787b) )
+
+ ROM_REGION32_BE( 0x400, "user3", 0 )
+ ROMX_LOAD( "136002.132", 0, 0x100, CRC(2af82e87) SHA1(3816835a9ccf99a76d246adf204989d9261bb065), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.131", 0, 0x100, CRC(b31f6e24) SHA1(ce5f8ca34d06a5cfa0076b47400e61e0130ffe74), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ ROMX_LOAD( "136002.130", 1, 0x100, CRC(8119b847) SHA1(c4fbaedd4ce1ad6a4128cbe902b297743edb606a), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.129", 1, 0x100, CRC(09f5a4d5) SHA1(d6f2ac07ca9ee385c08831098b0dcaf56808993b), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ ROMX_LOAD( "136002.128", 2, 0x100, CRC(823b61ae) SHA1(d99a839874b45f64e14dae92a036e47a53705d16), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.127", 2, 0x100, CRC(276eadd5) SHA1(55718cd8ec4bcf75076d5ef0ee1ed2551e19d9ba), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ROM_END
+
+ROM_START( tmptwst3 ) /* rev 3 */
+ ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */
+ ROM_LOAD( "tempall.113", 0x9000, 0x0800, CRC(a9000137) SHA1(1dfb23f5d47e49923c681d4483d744795d589af0) )
+ ROM_LOAD( "136002-114.e1", 0x9800, 0x0800, CRC(11077375) SHA1(ed8ff0ca969da6672a7683b93d4fcf2935a0d903) )
+ ROM_LOAD( "136002.115", 0xa000, 0x0800, CRC(f3e2827a) SHA1(bd04fcfbbba995e08c3144c1474fcddaaeb1c700) )
+ ROM_LOAD( "136002.316", 0xa800, 0x0800, CRC(aeb0f7e9) SHA1(a5cc25015b98692673cfc1c7c2e9634efd750870) )
+ ROM_LOAD( "136002.217", 0xb000, 0x0800, CRC(ef2eb645) SHA1(b1a2c969e8897e335d5354de6ae04a65d4b2a1e4) )
+ ROM_LOAD( "tmptwst3.118", 0xb800, 0x0800, CRC(c8e7693f) SHA1(18914841f3dc685d9a72bc2aaae940f6b6711e27) )
+ ROM_LOAD( "temptwst.119", 0xc000, 0x0800, CRC(571b1799) SHA1(d6e5615032bcae0018e388d7e7d8a00c42ff0c5a) )
+ ROM_LOAD( "136002.120", 0xc800, 0x0800, CRC(35619648) SHA1(48f1e8bed7ec6afa0b4c549a30e5ec331c071e40) )
+ ROM_LOAD( "tmptwst3.121", 0xd000, 0x0800, CRC(194b34a9) SHA1(86c34dcccc2054cad4f8c175c4db4d3856172f66) )
+ ROM_LOAD( "136002.222", 0xd800, 0x0800, CRC(707bd5c3) SHA1(2f0af6fb7154c244c794f7247e5c16a1e06ddf7d) )
+ ROM_RELOAD( 0xf800, 0x0800 ) /* for reset/interrupt vectors */
+ /* Vector ROM */
+ ROM_LOAD( "136002-123.np3", 0x3000, 0x0800, CRC(29f7e937) SHA1(686c8b9b8901262e743497cee7f2f7dd5cb3af7e) ) /* May be labeled "136002-111", same data */
+ ROM_LOAD( "136002-124.r3", 0x3800, 0x0800, CRC(c16ec351) SHA1(a30a3662c740810c0f20e3712679606921b8ca06) ) /* May be labeled "136002-112", same data */
+
+ /* AVG PROM */
+ ROM_REGION( 0x100, "user1", 0 )
+ ROM_LOAD( "136002-125.d7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
+
+ /* Mathbox PROMs */
+ ROM_REGION( 0x20, "user2", 0 )
+ ROM_LOAD( "136002.126", 0x0000, 0x0020, CRC(8b04f921) SHA1(317b3397482f13b2d1bc21f296d3b3f9a118787b) )
+
+ ROM_REGION32_BE( 0x400, "user3", 0 )
+ ROMX_LOAD( "136002.132", 0, 0x100, CRC(2af82e87) SHA1(3816835a9ccf99a76d246adf204989d9261bb065), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.131", 0, 0x100, CRC(b31f6e24) SHA1(ce5f8ca34d06a5cfa0076b47400e61e0130ffe74), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ ROMX_LOAD( "136002.130", 1, 0x100, CRC(8119b847) SHA1(c4fbaedd4ce1ad6a4128cbe902b297743edb606a), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.129", 1, 0x100, CRC(09f5a4d5) SHA1(d6f2ac07ca9ee385c08831098b0dcaf56808993b), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ ROMX_LOAD( "136002.128", 2, 0x100, CRC(823b61ae) SHA1(d99a839874b45f64e14dae92a036e47a53705d16), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.127", 2, 0x100, CRC(276eadd5) SHA1(55718cd8ec4bcf75076d5ef0ee1ed2551e19d9ba), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ROM_END
+
+ROM_START( tmptwst4 ) /* rev 3 */
+ ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */
+ ROM_LOAD( "tempall.113", 0x9000, 0x0800, CRC(a9000137) SHA1(1dfb23f5d47e49923c681d4483d744795d589af0) )
+ ROM_LOAD( "136002-114.e1", 0x9800, 0x0800, CRC(11077375) SHA1(ed8ff0ca969da6672a7683b93d4fcf2935a0d903) )
+ ROM_LOAD( "136002.115", 0xa000, 0x0800, CRC(f3e2827a) SHA1(bd04fcfbbba995e08c3144c1474fcddaaeb1c700) )
+ ROM_LOAD( "136002.316", 0xa800, 0x0800, CRC(aeb0f7e9) SHA1(a5cc25015b98692673cfc1c7c2e9634efd750870) )
+ ROM_LOAD( "136002.217", 0xb000, 0x0800, CRC(ef2eb645) SHA1(b1a2c969e8897e335d5354de6ae04a65d4b2a1e4) )
+ ROM_LOAD( "tmptwst4.118", 0xb800, 0x0800, CRC(2b6fcca4) SHA1(adfd65c94c46235ba47017e726a7b3c554e8e07a) )
+ ROM_LOAD( "temptwst.119", 0xc000, 0x0800, CRC(571b1799) SHA1(d6e5615032bcae0018e388d7e7d8a00c42ff0c5a) )
+ ROM_LOAD( "136002.120", 0xc800, 0x0800, CRC(35619648) SHA1(48f1e8bed7ec6afa0b4c549a30e5ec331c071e40) )
+ ROM_LOAD( "tmptwst4.121", 0xd000, 0x0800, CRC(7fde0be4) SHA1(3d06b0f0ef71132b3fa67ad8930e2dd334e90932) )
+ ROM_LOAD( "136002.222", 0xd800, 0x0800, CRC(707bd5c3) SHA1(2f0af6fb7154c244c794f7247e5c16a1e06ddf7d) )
+ ROM_RELOAD( 0xf800, 0x0800 ) /* for reset/interrupt vectors */
+ /* Vector ROM */
+ ROM_LOAD( "136002-123.np3", 0x3000, 0x0800, CRC(29f7e937) SHA1(686c8b9b8901262e743497cee7f2f7dd5cb3af7e) ) /* May be labeled "136002-111", same data */
+ ROM_LOAD( "136002-124.r3", 0x3800, 0x0800, CRC(c16ec351) SHA1(a30a3662c740810c0f20e3712679606921b8ca06) ) /* May be labeled "136002-112", same data */
+
+ /* AVG PROM */
+ ROM_REGION( 0x100, "user1", 0 )
+ ROM_LOAD( "136002-125.d7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
+
+ /* Mathbox PROMs */
+ ROM_REGION( 0x20, "user2", 0 )
+ ROM_LOAD( "136002.126", 0x0000, 0x0020, CRC(8b04f921) SHA1(317b3397482f13b2d1bc21f296d3b3f9a118787b) )
+
+ ROM_REGION32_BE( 0x400, "user3", 0 )
+ ROMX_LOAD( "136002.132", 0, 0x100, CRC(2af82e87) SHA1(3816835a9ccf99a76d246adf204989d9261bb065), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.131", 0, 0x100, CRC(b31f6e24) SHA1(ce5f8ca34d06a5cfa0076b47400e61e0130ffe74), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ ROMX_LOAD( "136002.130", 1, 0x100, CRC(8119b847) SHA1(c4fbaedd4ce1ad6a4128cbe902b297743edb606a), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.129", 1, 0x100, CRC(09f5a4d5) SHA1(d6f2ac07ca9ee385c08831098b0dcaf56808993b), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ ROMX_LOAD( "136002.128", 2, 0x100, CRC(823b61ae) SHA1(d99a839874b45f64e14dae92a036e47a53705d16), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.127", 2, 0x100, CRC(276eadd5) SHA1(55718cd8ec4bcf75076d5ef0ee1ed2551e19d9ba), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ROM_END
+
+ROM_START( vbrakout )
+ ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */
+ ROM_LOAD( "vbrakout.113", 0x9000, 0x0800, CRC(6fd3efe5) SHA1(d195d08984ad8797607bc1989e8a606d51547c68) )
+ ROM_LOAD( "vbrakout.114", 0x9800, 0x0800, CRC(9974b9a5) SHA1(6ecc6f72070895bb15992977348f58835233911f) )
+ ROM_LOAD( "vbrakout.115", 0xa000, 0x0800, CRC(44d611d8) SHA1(82cd63fc9067ea1f00feeffbee66e7d750cab7e5) )
+ ROM_LOAD( "vbrakout.116", 0xa800, 0x0800, CRC(cd58fc11) SHA1(060e31e55183ccef67a1adc91fb48c22424a4ba5) )
+ ROM_LOAD( "vbrakout.122", 0xd800, 0x0800, CRC(1ae2dd53) SHA1(b908ba6b59195aea853380a56a243aa8fa2fba71) )
+ ROM_RELOAD( 0xf800, 0x0800 ) /* for reset/interrupt vectors */
+ /* Vector ROM */
+ ROM_LOAD( "136002-123.np3", 0x3000, 0x0800, CRC(29f7e937) SHA1(686c8b9b8901262e743497cee7f2f7dd5cb3af7e) ) /* May be labeled "136002-111", same data */
+ ROM_LOAD( "136002-124.r3", 0x3800, 0x0800, CRC(c16ec351) SHA1(a30a3662c740810c0f20e3712679606921b8ca06) ) /* May be labeled "136002-112", same data */
+
+ /* AVG PROM */
+ ROM_REGION( 0x100, "user1", 0 )
+ ROM_LOAD( "136002-125.d7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
+
+ /* Mathbox PROMs */
+ ROM_REGION( 0x20, "user2", 0 )
+ ROM_LOAD( "136002.126", 0x0000, 0x0020, CRC(8b04f921) SHA1(317b3397482f13b2d1bc21f296d3b3f9a118787b) )
+
+ ROM_REGION32_BE( 0x400, "user3", 0 )
+ ROMX_LOAD( "136002.132", 0, 0x100, CRC(2af82e87) SHA1(3816835a9ccf99a76d246adf204989d9261bb065), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.131", 0, 0x100, CRC(b31f6e24) SHA1(ce5f8ca34d06a5cfa0076b47400e61e0130ffe74), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ ROMX_LOAD( "136002.130", 1, 0x100, CRC(8119b847) SHA1(c4fbaedd4ce1ad6a4128cbe902b297743edb606a), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.129", 1, 0x100, CRC(09f5a4d5) SHA1(d6f2ac07ca9ee385c08831098b0dcaf56808993b), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ ROMX_LOAD( "136002.128", 2, 0x100, CRC(823b61ae) SHA1(d99a839874b45f64e14dae92a036e47a53705d16), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.127", 2, 0x100, CRC(276eadd5) SHA1(55718cd8ec4bcf75076d5ef0ee1ed2551e19d9ba), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ROM_END
+
+ROM_START( temptlm )
+ ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */
+ ROM_LOAD( "temptlm.113", 0x9000, 0x0800, CRC(44103863) )
+ ROM_LOAD( "136002-114.e1", 0x9800, 0x0800, CRC(11077375) SHA1(ed8ff0ca969da6672a7683b93d4fcf2935a0d903) )
+ ROM_LOAD( "136002.115", 0xa000, 0x0800, CRC(f3e2827a) SHA1(bd04fcfbbba995e08c3144c1474fcddaaeb1c700) )
+ ROM_LOAD( "136002.316", 0xa800, 0x0800, CRC(aeb0f7e9) SHA1(a5cc25015b98692673cfc1c7c2e9634efd750870) )
+ ROM_LOAD( "136002.217", 0xb000, 0x0800, CRC(ef2eb645) SHA1(b1a2c969e8897e335d5354de6ae04a65d4b2a1e4) )
+ ROM_LOAD( "136002.118", 0xb800, 0x0800, CRC(beb352ab) SHA1(f213166d3970e0bd0f29d8dea8d6afa6990cce38) )
+ ROM_LOAD( "136002.119", 0xc000, 0x0800, CRC(a4de050f) SHA1(ea302e43a313a5a18115e74ddbaaedde0fbecda7) )
+ ROM_LOAD( "temptlm.120", 0xc800, 0x0800, CRC(d27ed181) )
+ ROM_LOAD( "136002.121", 0xd000, 0x0800, CRC(73d38e47) SHA1(9980606376a79ba94f8e2a325871a6c8d10d83fc) )
+ ROM_LOAD( "136002.222", 0xd800, 0x0800, CRC(707bd5c3) SHA1(2f0af6fb7154c244c794f7247e5c16a1e06ddf7d) )
+ ROM_RELOAD( 0xf800, 0x0800 ) /* for reset/interrupt vectors */
+ /* Vector ROM */
+ ROM_LOAD( "136002-123.np3", 0x3000, 0x0800, CRC(29f7e937) SHA1(686c8b9b8901262e743497cee7f2f7dd5cb3af7e) ) /* May be labeled "136002-111", same data */
+ ROM_LOAD( "136002-124.r3", 0x3800, 0x0800, CRC(c16ec351) SHA1(a30a3662c740810c0f20e3712679606921b8ca06) ) /* May be labeled "136002-112", same data */
+
+ /* AVG PROM */
+ ROM_REGION( 0x100, "user1", 0 )
+ ROM_LOAD( "136002-125.d7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
+
+ /* Mathbox PROMs */
+ ROM_REGION( 0x20, "user2", 0 )
+ ROM_LOAD( "136002.126", 0x0000, 0x0020, CRC(8b04f921) SHA1(317b3397482f13b2d1bc21f296d3b3f9a118787b) )
+
+ ROM_REGION32_BE( 0x400, "user3", 0 )
+ ROMX_LOAD( "136002.132", 0, 0x100, CRC(2af82e87) SHA1(3816835a9ccf99a76d246adf204989d9261bb065), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.131", 0, 0x100, CRC(b31f6e24) SHA1(ce5f8ca34d06a5cfa0076b47400e61e0130ffe74), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ ROMX_LOAD( "136002.130", 1, 0x100, CRC(8119b847) SHA1(c4fbaedd4ce1ad6a4128cbe902b297743edb606a), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.129", 1, 0x100, CRC(09f5a4d5) SHA1(d6f2ac07ca9ee385c08831098b0dcaf56808993b), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ ROMX_LOAD( "136002.128", 2, 0x100, CRC(823b61ae) SHA1(d99a839874b45f64e14dae92a036e47a53705d16), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.127", 2, 0x100, CRC(276eadd5) SHA1(55718cd8ec4bcf75076d5ef0ee1ed2551e19d9ba), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ROM_END
+
+
+/* The following prototypes, if run on the real hardware, can ruin your monitor... */
+/* or, as written in the readme, "DONT RUN IT ON REAL HARDWARE - IT CAN FUCK THE MONITOR." ;) */
+
+ROM_START( tvortex ) /* rev 1 */
+ ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */
+ ROM_LOAD( "d1.bin", 0x9000, 0x0800, CRC(3aff3417) SHA1(3b7c31f01b7467757ec85e98a17038e5df5720bb) )
+ ROM_LOAD( "e1.bin", 0x9800, 0x0800, CRC(11861be3) SHA1(a35797c649e8286c844cee6dac86ac50f4fbd669) )
+ ROM_LOAD( "f1.bin", 0xa000, 0x0800, CRC(1d251111) SHA1(2912a21dc708231e28d6164e54e593a8300b9c4a) )
+ ROM_LOAD( "h1.bin", 0xa800, 0x0800, CRC(937a9859) SHA1(336b25291533d19294f1ced730bbf20971849adf) )
+ ROM_LOAD( "j1.bin", 0xb000, 0x0800, CRC(79481246) SHA1(c5362670fd29ef1432f8e626323da395d6e8a675) )
+ ROM_LOAD( "k1.bin", 0xb800, 0x0800, CRC(390f872a) SHA1(c5463ea2d2307e21c941b5b459e3652c12154609) )
+ ROM_LOAD( "lm1.bin", 0xc000, 0x0800, CRC(515760dd) SHA1(773f06c9a64e72f9d3d8a5c622bf3ec2b4ba678d) )
+ ROM_LOAD( "mn1.bin", 0xc800, 0x0800, CRC(c6c41c68) SHA1(9323c07fc80a947142dde008c53f5e8c0b0c572d) )
+ ROM_LOAD( "p1.bin", 0xd000, 0x0800, CRC(3c2ff130) SHA1(32ebabcb2cbd7aab5e29de2b873f02ed78776ae6) )
+ ROM_LOAD( "r1.bin", 0xd800, 0x0800, CRC(67cafbb1) SHA1(467515733d843398e6fe29661002536a1e6c8fc9) )
+ ROM_RELOAD( 0xf800, 0x0800 ) /* for reset/interrupt vectors */
+ /* Vector ROM */
+ ROM_LOAD( "n3.bin", 0x3000, 0x0800, CRC(29c6a1cb) SHA1(290702a1c0942a68e288b37963e51eba02177a3f) )
+ ROM_LOAD( "r3.bin", 0x3800, 0x0800, CRC(7fbe5e21) SHA1(e5de6c3af82e64444b0ddcda559e9cb4fbf6c1da) )
+
+ /* AVG PROM */
+ ROM_REGION( 0x100, "user1", 0 )
+ ROM_LOAD( "136002-125.d7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
+
+ /* Mathbox PROMs */
+ ROM_REGION( 0x20, "user2", 0 )
+ ROM_LOAD( "136002.126", 0x0000, 0x0020, CRC(8b04f921) SHA1(317b3397482f13b2d1bc21f296d3b3f9a118787b) )
+
+ ROM_REGION32_BE( 0x400, "user3", 0 )
+ ROMX_LOAD( "136002.132", 0, 0x100, CRC(2af82e87) SHA1(3816835a9ccf99a76d246adf204989d9261bb065), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.131", 0, 0x100, CRC(b31f6e24) SHA1(ce5f8ca34d06a5cfa0076b47400e61e0130ffe74), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ ROMX_LOAD( "136002.130", 1, 0x100, CRC(8119b847) SHA1(c4fbaedd4ce1ad6a4128cbe902b297743edb606a), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.129", 1, 0x100, CRC(09f5a4d5) SHA1(d6f2ac07ca9ee385c08831098b0dcaf56808993b), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ ROMX_LOAD( "136002.128", 2, 0x100, CRC(823b61ae) SHA1(d99a839874b45f64e14dae92a036e47a53705d16), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.127", 2, 0x100, CRC(276eadd5) SHA1(55718cd8ec4bcf75076d5ef0ee1ed2551e19d9ba), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ROM_END
+
+ROM_START( tvortexa ) /* rev 2? */
+ ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */
+ ROM_LOAD( "d1.bin", 0x9000, 0x0800, CRC(3aff3417) SHA1(3b7c31f01b7467757ec85e98a17038e5df5720bb) )
+ ROM_LOAD( "e1.bin", 0x9800, 0x0800, CRC(11861be3) SHA1(a35797c649e8286c844cee6dac86ac50f4fbd669) )
+ ROM_LOAD( "f1.bin", 0xa000, 0x0800, CRC(1d251111) SHA1(2912a21dc708231e28d6164e54e593a8300b9c4a) )
+ ROM_LOAD( "h1.bin", 0xa800, 0x0800, CRC(937a9859) SHA1(336b25291533d19294f1ced730bbf20971849adf) )
+ ROM_LOAD( "j1.bin", 0xb000, 0x0800, CRC(79481246) SHA1(c5362670fd29ef1432f8e626323da395d6e8a675) )
+ ROM_LOAD( "k1.bin", 0xb800, 0x0800, CRC(390f872a) SHA1(c5463ea2d2307e21c941b5b459e3652c12154609) )
+ ROM_LOAD( "lm1.bin", 0xc000, 0x0800, CRC(515760dd) SHA1(773f06c9a64e72f9d3d8a5c622bf3ec2b4ba678d) )
+ ROM_LOAD( "mn1.bin", 0xc800, 0x0800, CRC(c6c41c68) SHA1(9323c07fc80a947142dde008c53f5e8c0b0c572d) )
+ ROM_LOAD( "p1.bin", 0xd000, 0x0800, CRC(3c2ff130) SHA1(32ebabcb2cbd7aab5e29de2b873f02ed78776ae6) )
+ ROM_LOAD( "r1_alt.bin", 0xd800, 0x0800, CRC(2711c2cc) SHA1(f5e43dd46c24828e733b70f7bd678522c34e318a) )
+ ROM_RELOAD( 0xf800, 0x0800 ) /* for reset/interrupt vectors */
+ /* Vector ROM */
+ ROM_LOAD( "n3.bin", 0x3000, 0x0800, CRC(29c6a1cb) SHA1(290702a1c0942a68e288b37963e51eba02177a3f) )
+ ROM_LOAD( "r3.bin", 0x3800, 0x0800, CRC(7fbe5e21) SHA1(e5de6c3af82e64444b0ddcda559e9cb4fbf6c1da) )
+
+ /* AVG PROM */
+ ROM_REGION( 0x100, "user1", 0 )
+ ROM_LOAD( "136002-125.d7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
+
+ /* Mathbox PROMs */
+ ROM_REGION( 0x20, "user2", 0 )
+ ROM_LOAD( "136002.126", 0x0000, 0x0020, CRC(8b04f921) SHA1(317b3397482f13b2d1bc21f296d3b3f9a118787b) )
+
+ ROM_REGION32_BE( 0x400, "user3", 0 )
+ ROMX_LOAD( "136002.132", 0, 0x100, CRC(2af82e87) SHA1(3816835a9ccf99a76d246adf204989d9261bb065), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.131", 0, 0x100, CRC(b31f6e24) SHA1(ce5f8ca34d06a5cfa0076b47400e61e0130ffe74), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ ROMX_LOAD( "136002.130", 1, 0x100, CRC(8119b847) SHA1(c4fbaedd4ce1ad6a4128cbe902b297743edb606a), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.129", 1, 0x100, CRC(09f5a4d5) SHA1(d6f2ac07ca9ee385c08831098b0dcaf56808993b), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ ROMX_LOAD( "136002.128", 2, 0x100, CRC(823b61ae) SHA1(d99a839874b45f64e14dae92a036e47a53705d16), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.127", 2, 0x100, CRC(276eadd5) SHA1(55718cd8ec4bcf75076d5ef0ee1ed2551e19d9ba), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ROM_END
+
+ROM_START( aliensv ) /* rev 1 */
+ ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */
+ ROM_LOAD( "aliens_d1.bin", 0x9000, 0x0800, CRC(337e21f6) SHA1(7adadeaa975e22f0b20e8f1fb6ad68b5c3934133) )
+ ROM_LOAD( "aliens_e1.bin", 0x9800, 0x0800, CRC(337e21f6) SHA1(7adadeaa975e22f0b20e8f1fb6ad68b5c3934133) )
+ ROM_LOAD( "aliens_f1.bin", 0xa000, 0x0800, CRC(4d2aabb0) SHA1(31106a1fc22d2a19866f07b8d6c6f4bf76007909) )
+ ROM_LOAD( "aliens_h1.bin", 0xa800, 0x0800, CRC(a503f54a) SHA1(91ebf9f69a183a04a5bf55fcdd9e191523bb66bb) )
+ ROM_LOAD( "aliens_j1.bin", 0xb000, 0x0800, CRC(5487d531) SHA1(c95f037151b824345af03f27a6c3c7eb8a899b2c) )
+ ROM_LOAD( "aliens_k1.bin", 0xb800, 0x0800, CRC(0ac96e87) SHA1(37461e84e6f46516c25dbf4ddb2ffd65877445c0) )
+ ROM_LOAD( "aliens_l1.bin", 0xc000, 0x0800, CRC(cd246ac2) SHA1(de2e6fe2e72c092c3874e797fc302a71dbf57710) )
+ ROM_LOAD( "aliens_n1.bin", 0xc800, 0x0800, CRC(bd98c5f3) SHA1(268487d9cf46b4b7b49eab7420d078bf676e636c) )
+ ROM_LOAD( "aliens_p1.bin", 0xd000, 0x0800, CRC(7c10adbd) SHA1(38579128a90bff4a7a4ae46d6aaa42118b8bc218) )
+ ROM_LOAD( "aliens_r1.bin", 0xd800, 0x0800, CRC(555c3070) SHA1(032f03af23c7ccac8a2bf50c3c646e141921ffee) )
+ ROM_RELOAD( 0xf800, 0x0800 ) /* for reset/interrupt vectors */
+ /* Vector ROM */
+ ROM_LOAD( "aliens_n3.bin", 0x3000, 0x0800, CRC(5c8fd38b) SHA1(bb0d6bd062eba53b5d64b3f444d5ce0a34728bf5) )
+ ROM_LOAD( "aliens_r3.bin", 0x3800, 0x0800, CRC(6cabcd08) SHA1(e3950de50f3dfbc4d4d2f4fe26625d8ef94c0819) )
+
+ /* AVG PROM */
+ ROM_REGION( 0x100, "user1", 0 )
+ ROM_LOAD( "136002-125.d7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
+
+ /* Mathbox PROMs */
+ ROM_REGION( 0x20, "user2", 0 )
+ ROM_LOAD( "136002.126", 0x0000, 0x0020, CRC(8b04f921) SHA1(317b3397482f13b2d1bc21f296d3b3f9a118787b) )
+
+ ROM_REGION32_BE( 0x400, "user3", 0 )
+ ROMX_LOAD( "136002.132", 0, 0x100, CRC(2af82e87) SHA1(3816835a9ccf99a76d246adf204989d9261bb065), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.131", 0, 0x100, CRC(b31f6e24) SHA1(ce5f8ca34d06a5cfa0076b47400e61e0130ffe74), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ ROMX_LOAD( "136002.130", 1, 0x100, CRC(8119b847) SHA1(c4fbaedd4ce1ad6a4128cbe902b297743edb606a), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.129", 1, 0x100, CRC(09f5a4d5) SHA1(d6f2ac07ca9ee385c08831098b0dcaf56808993b), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ ROMX_LOAD( "136002.128", 2, 0x100, CRC(823b61ae) SHA1(d99a839874b45f64e14dae92a036e47a53705d16), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.127", 2, 0x100, CRC(276eadd5) SHA1(55718cd8ec4bcf75076d5ef0ee1ed2551e19d9ba), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ROM_END
+
+ROM_START( aliensva ) /* rev 2? */
+ ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */
+ ROM_LOAD( "aliens_d1.bin", 0x9000, 0x0800, CRC(337e21f6) SHA1(7adadeaa975e22f0b20e8f1fb6ad68b5c3934133) )
+ ROM_LOAD( "aliens_e1.bin", 0x9800, 0x0800, CRC(337e21f6) SHA1(7adadeaa975e22f0b20e8f1fb6ad68b5c3934133) )
+ ROM_LOAD( "aliens_f1.bin", 0xa000, 0x0800, CRC(4d2aabb0) SHA1(31106a1fc22d2a19866f07b8d6c6f4bf76007909) )
+ ROM_LOAD( "aliens_h1.bin", 0xa800, 0x0800, CRC(a503f54a) SHA1(91ebf9f69a183a04a5bf55fcdd9e191523bb66bb) )
+ ROM_LOAD( "aliens_j1.bin", 0xb000, 0x0800, CRC(5487d531) SHA1(c95f037151b824345af03f27a6c3c7eb8a899b2c) )
+ ROM_LOAD( "aliens_k1.bin", 0xb800, 0x0800, CRC(0ac96e87) SHA1(37461e84e6f46516c25dbf4ddb2ffd65877445c0) )
+ ROM_LOAD( "aliens_l1.bin", 0xc000, 0x0800, CRC(cd246ac2) SHA1(de2e6fe2e72c092c3874e797fc302a71dbf57710) )
+ ROM_LOAD( "aliens_n1.bin", 0xc800, 0x0800, CRC(bd98c5f3) SHA1(268487d9cf46b4b7b49eab7420d078bf676e636c) )
+ ROM_LOAD( "aliens_p1.bin", 0xd000, 0x0800, CRC(7c10adbd) SHA1(38579128a90bff4a7a4ae46d6aaa42118b8bc218) )
+ ROM_LOAD( "aliens_r1a.bin", 0xd800, 0x0800, CRC(4da6627d) SHA1(01d8eea45373e3e87c81bc3b31d85ba8c7f4fcb3) )
+ ROM_RELOAD( 0xf800, 0x0800 ) /* for reset/interrupt vectors */
+ /* Vector ROM */
+ ROM_LOAD( "aliens_n3.bin", 0x3000, 0x0800, CRC(5c8fd38b) SHA1(bb0d6bd062eba53b5d64b3f444d5ce0a34728bf5) )
+ ROM_LOAD( "aliens_r3.bin", 0x3800, 0x0800, CRC(6cabcd08) SHA1(e3950de50f3dfbc4d4d2f4fe26625d8ef94c0819) )
+
+ /* AVG PROM */
+ ROM_REGION( 0x100, "user1", 0 )
+ ROM_LOAD( "136002-125.d7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
+
+ /* Mathbox PROMs */
+ ROM_REGION( 0x20, "user2", 0 )
+ ROM_LOAD( "136002.126", 0x0000, 0x0020, CRC(8b04f921) SHA1(317b3397482f13b2d1bc21f296d3b3f9a118787b) )
+
+ ROM_REGION32_BE( 0x400, "user3", 0 )
+ ROMX_LOAD( "136002.132", 0, 0x100, CRC(2af82e87) SHA1(3816835a9ccf99a76d246adf204989d9261bb065), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.131", 0, 0x100, CRC(b31f6e24) SHA1(ce5f8ca34d06a5cfa0076b47400e61e0130ffe74), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ ROMX_LOAD( "136002.130", 1, 0x100, CRC(8119b847) SHA1(c4fbaedd4ce1ad6a4128cbe902b297743edb606a), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.129", 1, 0x100, CRC(09f5a4d5) SHA1(d6f2ac07ca9ee385c08831098b0dcaf56808993b), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ ROMX_LOAD( "136002.128", 2, 0x100, CRC(823b61ae) SHA1(d99a839874b45f64e14dae92a036e47a53705d16), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.127", 2, 0x100, CRC(276eadd5) SHA1(55718cd8ec4bcf75076d5ef0ee1ed2551e19d9ba), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ROM_END
+
+/* tempest multigame */
+
+class tempmg_state : public tempest_state
+{
+public:
+ tempmg_state(const machine_config &mconfig, device_type type, const char *tag)
+ : tempest_state(mconfig, type, tag)
+ , m_maincpu(*this, "maincpu")
+ { }
+
+ DECLARE_WRITE8_MEMBER(tempmg_rombank_w);
+ DECLARE_MACHINE_RESET(tempmg);
+ DECLARE_DRIVER_INIT(tempmg);
+ required_device<cpu_device> m_maincpu;
+};
+
+WRITE8_MEMBER( tempmg_state::tempmg_rombank_w )
+{
+ uint8_t *RAM = memregion("maincpu")->base();
+ membank("bank1")->set_entry(data);
+ membank("bank2")->set_entry(data);
+ /* standard rom banking would not work here, using memcpy instead */
+ if (data < 4) memcpy(&RAM[0x3000], &RAM[0x16000+(data<<15)],0x1000);
+}
+
+MACHINE_RESET_MEMBER( tempmg_state, tempmg )
+{
+ address_space &space = m_maincpu->space(AS_PROGRAM);
+ tempmg_rombank_w (space, 0,0);
+}
+
+DRIVER_INIT_MEMBER( tempmg_state, tempmg )
+{
+ address_space &space = m_maincpu->space(AS_PROGRAM);
+ uint8_t *RAM = memregion("maincpu")->base();
+ membank("bank1")->configure_entries(0, 8, &RAM[0x11000], 0x8000); // main roms
+ membank("bank2")->configure_entries(0, 8, &RAM[0x17800], 0x8000); // vectors
+ tempmg_rombank_w (space, 0,0);
+}
+
+static ADDRESS_MAP_START( tempmg_map, AS_PROGRAM, 8, tempmg_state )
+ AM_RANGE(0x0000, 0x07ff) AM_RAM
+ AM_RANGE(0x0800, 0x080f) AM_WRITEONLY AM_SHARE("colorram")
+ AM_RANGE(0x0c00, 0x0c00) AM_READ_PORT("IN0")
+ AM_RANGE(0x0d00, 0x0d00) AM_READ_PORT("DSW1")
+ AM_RANGE(0x0e00, 0x0e00) AM_READ_PORT("DSW2")
+ AM_RANGE(0x2000, 0x2fff) AM_RAM AM_SHARE("vectorram") AM_REGION("maincpu", 0x2000)
+ AM_RANGE(0x3000, 0x3fff) AM_ROM
+ AM_RANGE(0x4000, 0x4000) AM_WRITE(tempest_coin_w)
+ AM_RANGE(0x4800, 0x4800) AM_DEVWRITE("avg", avg_tempest_device, go_w)
+ AM_RANGE(0x5000, 0x5000) AM_WRITE(wdclr_w)
+ AM_RANGE(0x5800, 0x5800) AM_DEVWRITE("avg", avg_tempest_device, reset_w)
+ AM_RANGE(0x6000, 0x603f) AM_DEVWRITE("earom", atari_vg_earom_device, write)
+ AM_RANGE(0x6040, 0x6040) AM_DEVREAD("mathbox", mathbox_device, status_r) AM_DEVWRITE("earom", atari_vg_earom_device, ctrl_w)
+ AM_RANGE(0x6050, 0x6050) AM_DEVREAD("earom", atari_vg_earom_device, read)
+ AM_RANGE(0x6060, 0x6060) AM_DEVREAD("mathbox", mathbox_device, lo_r)
+ AM_RANGE(0x6070, 0x6070) AM_DEVREAD("mathbox", mathbox_device, hi_r)
+ AM_RANGE(0x6080, 0x609f) AM_DEVWRITE("mathbox", mathbox_device, go_w)
+ AM_RANGE(0x60c0, 0x60cf) AM_DEVREADWRITE("pokey1", pokey_device, read, write)
+ AM_RANGE(0x60d0, 0x60df) AM_DEVREADWRITE("pokey2", pokey_device, read, write)
+ AM_RANGE(0x60e0, 0x60e0) AM_WRITE(tempest_led_w)
+ AM_RANGE(0x9000, 0xdfff) AM_ROMBANK("bank1")
+ AM_RANGE(0xe000, 0xe000) AM_WRITE(tempmg_rombank_w)
+ AM_RANGE(0xf800, 0xffff) AM_ROMBANK("bank2")
+ADDRESS_MAP_END
+
+static MACHINE_CONFIG_DERIVED_CLASS( tempmg, tempest, tempmg_state ) // new cfg, old cfg, new class
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(tempmg_map)
+ MCFG_MACHINE_RESET_OVERRIDE(tempmg_state, tempmg)
+MACHINE_CONFIG_END
+
+ROM_START( tempmg )
+ ROM_REGION( 0x50000, "maincpu", 0 )
+ ROM_LOAD( "tempmg-113.d1", 0x11000, 0x0800, CRC(8a6633fb) SHA1(b143a5d2019f24666b350b40b0dab2924bb9c7c0) )
+ ROM_LOAD( "tempmg-114.e1", 0x11800, 0x0800, CRC(2eedfdf6) SHA1(2ed494bd8610bebd07284289ca8b7059fd805300) )
+ ROM_LOAD( "tempmg-115.f1", 0x12000, 0x0800, CRC(12f62746) SHA1(37356b5738c27ffe4c38f1b6cf99ae21441d8e8e) )
+ ROM_LOAD( "tempmg-222.r1", 0x15800, 0x0800, CRC(1d8f194a) SHA1(c77f6b83f5c498c0f2d5372089a4604913a4aad5) )
+ ROM_RELOAD( 0x17800, 0x0800 )
+ ROM_LOAD( "aliens_d1.bin", 0x19000, 0x0800, CRC(337e21f6) SHA1(7adadeaa975e22f0b20e8f1fb6ad68b5c3934133) )
+ ROM_RELOAD( 0x19800, 0x0800 )
+ ROM_LOAD( "aliens_f1.bin", 0x1a000, 0x0800, CRC(4d2aabb0) SHA1(31106a1fc22d2a19866f07b8d6c6f4bf76007909) )
+ ROM_LOAD( "aliens_h1.bin", 0x1a800, 0x0800, CRC(a503f54a) SHA1(91ebf9f69a183a04a5bf55fcdd9e191523bb66bb) )
+ ROM_LOAD( "aliens_j1.bin", 0x1b000, 0x0800, CRC(5487d531) SHA1(c95f037151b824345af03f27a6c3c7eb8a899b2c) )
+ ROM_LOAD( "aliens_k1.bin", 0x1b800, 0x0800, CRC(0ac96e87) SHA1(37461e84e6f46516c25dbf4ddb2ffd65877445c0) )
+ ROM_LOAD( "aliens_l1.bin", 0x1c000, 0x0800, CRC(cd246ac2) SHA1(de2e6fe2e72c092c3874e797fc302a71dbf57710) )
+ ROM_LOAD( "aliens_n1.bin", 0x1c800, 0x0800, CRC(bd98c5f3) SHA1(268487d9cf46b4b7b49eab7420d078bf676e636c) )
+ ROM_LOAD( "aliens_p1.bin", 0x1d000, 0x0800, CRC(7c10adbd) SHA1(38579128a90bff4a7a4ae46d6aaa42118b8bc218) )
+ ROM_LOAD( "aliens_r1.bin", 0x1d800, 0x0800, CRC(555c3070) SHA1(032f03af23c7ccac8a2bf50c3c646e141921ffee) )
+ ROM_RELOAD( 0x1f800, 0x0800 ) /* for reset/interrupt vectors */
+ ROM_LOAD( "vb_d1.bin", 0x21000, 0x0800, CRC(6fd3efe5) SHA1(d195d08984ad8797607bc1989e8a606d51547c68) )
+ ROM_LOAD( "vb_e1.bin", 0x21800, 0x0800, CRC(9974b9a5) SHA1(6ecc6f72070895bb15992977348f58835233911f) )
+ ROM_LOAD( "vb_f1.bin", 0x22000, 0x0800, CRC(44d611d8) SHA1(82cd63fc9067ea1f00feeffbee66e7d750cab7e5) )
+ ROM_LOAD( "vb_h1.bin", 0x22800, 0x0800, CRC(cd58fc11) SHA1(060e31e55183ccef67a1adc91fb48c22424a4ba5) )
+ ROM_LOAD( "vb_r1.bin", 0x25800, 0x0800, CRC(1ae2dd53) SHA1(b908ba6b59195aea853380a56a243aa8fa2fba71) )
+ ROM_RELOAD( 0x27800, 0x0800 ) /* for reset/interrupt vectors */
+ ROM_LOAD( "d1.bin", 0x29000, 0x0800, CRC(3aff3417) SHA1(3b7c31f01b7467757ec85e98a17038e5df5720bb) )
+ ROM_LOAD( "e1.bin", 0x29800, 0x0800, CRC(11861be3) SHA1(a35797c649e8286c844cee6dac86ac50f4fbd669) )
+ ROM_LOAD( "f1.bin", 0x2a000, 0x0800, CRC(1d251111) SHA1(2912a21dc708231e28d6164e54e593a8300b9c4a) )
+ ROM_LOAD( "h1.bin", 0x2a800, 0x0800, CRC(937a9859) SHA1(336b25291533d19294f1ced730bbf20971849adf) )
+ ROM_LOAD( "j1.bin", 0x2b000, 0x0800, CRC(79481246) SHA1(c5362670fd29ef1432f8e626323da395d6e8a675) )
+ ROM_LOAD( "k1.bin", 0x2b800, 0x0800, CRC(390f872a) SHA1(c5463ea2d2307e21c941b5b459e3652c12154609) )
+ ROM_LOAD( "lm1.bin", 0x2c000, 0x0800, CRC(515760dd) SHA1(773f06c9a64e72f9d3d8a5c622bf3ec2b4ba678d) )
+ ROM_LOAD( "mn1.bin", 0x2c800, 0x0800, CRC(c6c41c68) SHA1(9323c07fc80a947142dde008c53f5e8c0b0c572d) )
+ ROM_LOAD( "p1.bin", 0x2d000, 0x0800, CRC(3c2ff130) SHA1(32ebabcb2cbd7aab5e29de2b873f02ed78776ae6) )
+ ROM_LOAD( "r1.bin", 0x2d800, 0x0800, CRC(67cafbb1) SHA1(467515733d843398e6fe29661002536a1e6c8fc9) )
+ ROM_RELOAD( 0x2f800, 0x0800 ) /* for reset/interrupt vectors */
+ ROM_LOAD( "136002-113.d1", 0x31000, 0x0800, CRC(65d61fe7) SHA1(38a1e8a8f65b7887cf3e190269fe4ce2c6f818aa) )
+ ROM_RELOAD( 0x39000, 0x0800 )
+ ROM_RELOAD( 0x41000, 0x0800 )
+ ROM_RELOAD( 0x49000, 0x0800 )
+ ROM_LOAD( "136002-114.e1", 0x31800, 0x0800, CRC(11077375) SHA1(ed8ff0ca969da6672a7683b93d4fcf2935a0d903) )
+ ROM_RELOAD( 0x39800, 0x0800 )
+ ROM_RELOAD( 0x41800, 0x0800 )
+ ROM_RELOAD( 0x49800, 0x0800 )
+ ROM_LOAD( "136002-115.f1", 0x32000, 0x0800, CRC(f3e2827a) SHA1(bd04fcfbbba995e08c3144c1474fcddaaeb1c700) )
+ ROM_RELOAD( 0x3a000, 0x0800 )
+ ROM_RELOAD( 0x42000, 0x0800 )
+ ROM_RELOAD( 0x4a000, 0x0800 )
+ ROM_LOAD( "136002-316.h1", 0x32800, 0x0800, CRC(aeb0f7e9) SHA1(a5cc25015b98692673cfc1c7c2e9634efd750870) )
+ ROM_RELOAD( 0x4a800, 0x0800 )
+ ROM_RELOAD( 0x12800, 0x0800 )
+ ROM_LOAD( "136002-217.j1", 0x33000, 0x0800, CRC(ef2eb645) SHA1(b1a2c969e8897e335d5354de6ae04a65d4b2a1e4) )
+ ROM_RELOAD( 0x43000, 0x0800 )
+ ROM_RELOAD( 0x4b000, 0x0800 )
+ ROM_RELOAD( 0x13000, 0x0800 )
+ ROM_LOAD( "tube-118.k1", 0x33800, 0x0800, CRC(cefb03f0) SHA1(41ddfa4991fa49a31d4740a04551556acca66196) )
+ ROM_LOAD( "136002-119.lm1", 0x34000, 0x0800, CRC(a4de050f) SHA1(ea302e43a313a5a18115e74ddbaaedde0fbecda7) )
+ ROM_RELOAD( 0x3c000, 0x0800 )
+ ROM_RELOAD( 0x44000, 0x0800 )
+ ROM_RELOAD( 0x4c000, 0x0800 )
+ ROM_RELOAD( 0x14000, 0x0800 )
+ ROM_LOAD( "136002-120.mn1", 0x34800, 0x0800, CRC(35619648) SHA1(48f1e8bed7ec6afa0b4c549a30e5ec331c071e40) )
+ ROM_RELOAD( 0x3c800, 0x0800 )
+ ROM_RELOAD( 0x44800, 0x0800 )
+ ROM_RELOAD( 0x4c800, 0x0800 )
+ ROM_RELOAD( 0x14800, 0x0800 )
+ ROM_LOAD( "136002-121.p1", 0x35000, 0x0800, CRC(73d38e47) SHA1(9980606376a79ba94f8e2a325871a6c8d10d83fc) )
+ ROM_RELOAD( 0x3d000, 0x0800 )
+ ROM_RELOAD( 0x45000, 0x0800 )
+ ROM_RELOAD( 0x4d000, 0x0800 )
+ ROM_RELOAD( 0x15000, 0x0800 )
+ ROM_LOAD( "136002-222.r1", 0x35800, 0x0800, CRC(707bd5c3) SHA1(2f0af6fb7154c244c794f7247e5c16a1e06ddf7d) )
+ ROM_RELOAD( 0x37800, 0x0800 )
+ ROM_RELOAD( 0x45800, 0x0800 )
+ ROM_RELOAD( 0x47800, 0x0800 )
+ ROM_RELOAD( 0x4d800, 0x0800 )
+ ROM_RELOAD( 0x4f800, 0x0800 )
+ ROM_LOAD( "136002-116.h1", 0x3a800, 0x0800, CRC(7356896c) SHA1(a013ede292189a8f5a907de882ee1a573d784b3c) )
+ ROM_RELOAD( 0x42800, 0x0800 )
+ ROM_LOAD( "136002-117.j1", 0x3b000, 0x0800, CRC(55952119) SHA1(470d914fa52fce3786cb6330889876d3547dca65) )
+ ROM_LOAD( "136002-118.k1", 0x3b800, 0x0800, CRC(beb352ab) SHA1(f213166d3970e0bd0f29d8dea8d6afa6990cce38) )
+ ROM_RELOAD( 0x43800, 0x0800 )
+ ROM_RELOAD( 0x4b800, 0x0800 )
+ ROM_RELOAD( 0x13800, 0x0800 )
+ ROM_LOAD( "136002-122.r1", 0x3d800, 0x0800, CRC(796a9918) SHA1(c862a0d4ea330161e4c3cc8e5e9ad38893fffbd4) )
+ ROM_RELOAD( 0x3f800, 0x0800 )
+ /* Vector ROMs */
+ ROM_LOAD( "136002-123.np3", 0x16000, 0x0800, CRC(29f7e937) SHA1(686c8b9b8901262e743497cee7f2f7dd5cb3af7e) )
+ ROM_RELOAD( 0x26000, 0x0800 )
+ ROM_LOAD( "136002-124.r3", 0x16800, 0x0800, CRC(c16ec351) SHA1(a30a3662c740810c0f20e3712679606921b8ca06) )
+ ROM_RELOAD( 0x26800, 0x0800 )
+ ROM_LOAD( "aliens_n3.bin", 0x1e000, 0x0800, CRC(5c8fd38b) SHA1(bb0d6bd062eba53b5d64b3f444d5ce0a34728bf5) )
+ ROM_LOAD( "aliens_r3.bin", 0x1e800, 0x0800, CRC(6cabcd08) SHA1(e3950de50f3dfbc4d4d2f4fe26625d8ef94c0819) )
+ ROM_LOAD( "n3.bin", 0x2e000, 0x0800, CRC(29c6a1cb) SHA1(290702a1c0942a68e288b37963e51eba02177a3f) )
+ ROM_LOAD( "r3.bin", 0x2e800, 0x0800, CRC(7fbe5e21) SHA1(e5de6c3af82e64444b0ddcda559e9cb4fbf6c1da) )
+
+ /* AVG PROM */
+ ROM_REGION( 0x100, "user1", 0 )
+ ROM_LOAD( "136002-125.d7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
+
+ /* Mathbox PROMs */
+ ROM_REGION( 0x20, "user2", 0 )
+ ROM_LOAD( "136002.126", 0x0000, 0x0020, CRC(8b04f921) SHA1(317b3397482f13b2d1bc21f296d3b3f9a118787b) )
+
+ ROM_REGION32_BE( 0x400, "user3", 0 )
+ ROMX_LOAD( "136002.132", 0, 0x100, CRC(2af82e87) SHA1(3816835a9ccf99a76d246adf204989d9261bb065), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.131", 0, 0x100, CRC(b31f6e24) SHA1(ce5f8ca34d06a5cfa0076b47400e61e0130ffe74), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ ROMX_LOAD( "136002.130", 1, 0x100, CRC(8119b847) SHA1(c4fbaedd4ce1ad6a4128cbe902b297743edb606a), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.129", 1, 0x100, CRC(09f5a4d5) SHA1(d6f2ac07ca9ee385c08831098b0dcaf56808993b), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ ROMX_LOAD( "136002.128", 2, 0x100, CRC(823b61ae) SHA1(d99a839874b45f64e14dae92a036e47a53705d16), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.127", 2, 0x100, CRC(276eadd5) SHA1(55718cd8ec4bcf75076d5ef0ee1ed2551e19d9ba), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ROM_END
+
+
+GAME( 2000, temped, tempest, tempest, tempest, driver_device, 0, ROT270, "hack", "TempEd", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, tempall, tempest, tempest, tempest, driver_device, 0, ROT270, "hack", "Tempest All Levels", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, temptwst, tempest, tempest, tempest, driver_device, 0, ROT270, "Twisty", "Tempest Twisted", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, tmptwsta, tempest, tempest, tempest, driver_device, 0, ROT270, "Twisty", "Tempest Twisted (Alt)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, tmptwst2, tempest, tempest, tempest, driver_device, 0, ROT270, "Twisty", "Tempest Twisty's Revenge", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, tmptwst3, tempest, tempest, tempest, driver_device, 0, ROT270, "Twisty", "Tempest Psycho Twist", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, tmptwst4, tempest, tempest, tempest, driver_device, 0, ROT270, "Twisty", "Tempest Twisted Maniac", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, tempestm, tempest, tempest, tempest, driver_device, 0, ROT270, "hack", "Tempest Mark's Hacks", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, tempmg, tempest, tempmg, tempest, tempmg_state, tempmg, ROT270, "Clay Cowgill", "Tempest Multigame", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, vbrakout, tempest, tempest, tempest, driver_device, 0, ROT270, "Clay Cowgill", "Vector Breakout [h]", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, temptlm, tempest, tempest, tempest, driver_device, 0, ROT270, "hack", "Tempest Level Man", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, tvortex, tempest, tempest, tempest, driver_device, 0, ROT270, "Atari", "Vortex", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, tvortexa, tempest, tempest, tempest, driver_device, 0, ROT270, "Atari", "Vortex alt version", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, aliensv, tempest, tempest, aliensv, driver_device, 0, ROT270, "Atari", "Aliens", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, aliensva, tempest, tempest, aliensv, driver_device, 0, ORIENTATION_FLIP_Y ^ ROT270, "Atari", "Aliens alt version", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/terracre.cpp b/docs/release/src/hbmame/drivers/terracre.cpp
new file mode 100644
index 00000000000..e8a9fc798a4
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/terracre.cpp
@@ -0,0 +1,50 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/terracre.cpp"
+
+ROM_START( terracrc )
+ ROM_REGION( 0x20000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "terracrc.8", 0x00000, 0x4000, CRC(44e29950) SHA1(0446c803771e624a812b5b7bd422505a58fa2f9d) )
+ ROM_LOAD16_BYTE( "terracrc.12", 0x00001, 0x4000, CRC(5d2d4fef) SHA1(b31c2c496013163a5504343f06b4f9cc9834f78a) )
+ ROM_LOAD16_BYTE( "terracrc.7", 0x08000, 0x4000, CRC(907968e6) SHA1(8b8a17b87a08e2a5e4223d9bdbc4a7df0726a589) )
+ ROM_LOAD16_BYTE( "terracrc.11", 0x08001, 0x4000, CRC(f5dcd168) SHA1(d58c76d1f199e664caae6a89b39d8dddb758d593) )
+ ROM_LOAD16_BYTE( "terracrc.6", 0x10000, 0x4000, CRC(b2cb4442) SHA1(a7a3a2d2a509bfcc905c7bfda516147626e09782) )
+ ROM_LOAD16_BYTE( "terracrc.10", 0x10001, 0x4000, CRC(66db3b3b) SHA1(637b6dec3e03bd80ba4efdb08e9604bf3deea49b) )
+ ROM_LOAD16_BYTE( "terracrc.5", 0x18000, 0x4000, CRC(a1bea44f) SHA1(cda2f0f7feac9060f86392704907b86cb5857b47) )
+ ROM_LOAD16_BYTE( "1a_9b.rom", 0x18001, 0x4000, CRC(69227b56) SHA1(58c8aa4baa1f5ddfc151f5ed6284a06e87866dd7) )
+ ROM_FILL(0x1c16,1,1)
+ ROM_FILL(0x1c17,1,0x1c) // bypass rom checksum - one of the roms might be bad
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "bk2_11.15b", 0x0000, 0x4000, CRC(604c3b11) SHA1(c01d1ddae40fa8b65dfc72f959942cb9664a548b) )
+ ROM_LOAD( "terracrc.19", 0x4000, 0x4000, CRC(20fd3b53) SHA1(baf494f64a66fc4ae9d2fef12ae7c6f61ad82d94) )
+ ROM_LOAD( "bk2_13.18b", 0x8000, 0x4000, CRC(302dc0ab) SHA1(4db8f12e70f9adf1eb993c6a8af68b5edbf79773) )
+
+ ROM_REGION( 0x02000, "gfx1", 0 )
+ ROM_LOAD( "bk2_14.16g", 0x00000, 0x2000, CRC(591a3804) SHA1(e1b46f5652e7f9677d75f01c6132975ace4facdd) )
+
+ ROM_REGION( 0x10000, "gfx2", 0 )
+ ROM_LOAD( "terracrc.4", 0x0000, 0x4000, CRC(3597f737) SHA1(443ad8b868a20a28a739df2f677803cb94012919) )
+ ROM_LOAD( "terracrc.2", 0x4000, 0x4000, CRC(26474fd6) SHA1(7e8b725d5a29cc328925eea1ccdc2edaa2e7a927) )
+ ROM_LOAD( "terracrc.3", 0x8000, 0x4000, CRC(f5f66a67) SHA1(d7761634fd0ea725e4fdaff698171285f9042f0f) )
+ ROM_LOAD( "terracrc.1", 0xc000, 0x4000, CRC(55f80572) SHA1(a32749f8539a2a908532365f7f5650c92fc19f42) )
+
+ ROM_REGION( 0x10000, "gfx3", 0 )
+ ROM_LOAD( "bk2_7.6e", 0x00000, 0x4000, CRC(bcf7740b) SHA1(8701862c35eb8fb1ec239253136a3858ebea4d0c) )
+ ROM_LOAD( "bk2_8.7e", 0x04000, 0x4000, CRC(a70b565c) SHA1(153e5f5a9927c294660dd0d636a9f651d4984d6d) )
+ ROM_LOAD( "bk2_9.6g", 0x08000, 0x4000, CRC(4a9ec3e6) SHA1(0a35b82fb49ecf7edafd02744a48490e744c0a00) )
+ ROM_LOAD( "bk2_10.7g", 0x0c000, 0x4000, CRC(450749fc) SHA1(376ab98ab8db56ed45f7d97a221dfd52e389cb5a) )
+
+ ROM_REGION( 0x0504, "proms", 0 ) /* first 4 not supplied - using from terracre */
+ ROM_LOAD( "bk1_3.10f", 0x0000, 0x0100, CRC(ce07c544) SHA1(c3691cb420c88f1887a55e3035b5d017decbc17a) )
+ ROM_LOAD( "bk1_2.11f", 0x0100, 0x0100, CRC(566d323a) SHA1(fe83585a0d9c7f942a5e54620b627a5a17a0fcf4) )
+ ROM_LOAD( "bk1_1.12f", 0x0200, 0x0100, CRC(7ea63946) SHA1(d7b89694a80736c7605b5c83d25d8b706f4504ab) )
+ ROM_LOAD( "bk2_4.2g", 0x0300, 0x0100, CRC(08609bad) SHA1(e5daee3c3fea6620e3c2b91becd93bc4d3cdf011) )
+ /* This came with dump - no idea what it does - not hooked up */
+ ROM_LOAD_OPTIONAL( "pal16r4.bin", 0x0400, 0x0104, CRC(119ef878) SHA1(4cc68200c755d646789f6af1c7a52273f07f597c) )
+
+ ROM_REGION( 0x0100, "user1", 0 ) /* not supplied - using from terracre */
+ ROM_LOAD( "bk2_5.4e", 0x0000, 0x0100, CRC(2c43991f) SHA1(312112832bee511b0545524295aa9bc2e756db0f) )
+ROM_END
+
+GAME( 1985, terracrc, terracre, ym3526, terracre, driver_device, 0, ROT270, "Nichibutsu", "Terra Cresta (alt)", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/timelimit.cpp b/docs/release/src/hbmame/drivers/timelimit.cpp
new file mode 100644
index 00000000000..3e968b53c8b
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/timelimit.cpp
@@ -0,0 +1,107 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/timelimt.cpp"
+
+/* Changes to MAME's timelimt:
+- Added a handcrafted clr.57 from Dink
+- Added an alternate clr.48 from my collection
+- Run the game at half speed, unplayable otherwise
+*/
+
+class timelimt_hbmame : public timelimt_state
+{
+public:
+ timelimt_hbmame(const machine_config &mconfig, device_type type, const char *tag)
+ : timelimt_state(mconfig, type, tag)
+ , m_irq_state(false)
+ { }
+
+ INTERRUPT_GEN_MEMBER(hb_irq);
+private:
+ bool m_irq_state;
+};
+
+INTERRUPT_GEN_MEMBER(timelimt_hbmame::hb_irq)
+{
+ if ( m_nmi_enabled )
+ {
+ m_irq_state = (m_irq_state) ? false : true;
+ if (m_irq_state)
+ device.execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
+ }
+}
+
+static MACHINE_CONFIG_START( timelimit, timelimt_hbmame )
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", Z80, 5000000) /* 5.000 MHz */
+ MCFG_CPU_PROGRAM_MAP(main_map)
+ MCFG_CPU_IO_MAP(main_io_map)
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", timelimt_hbmame, hb_irq)
+
+ MCFG_CPU_ADD("audiocpu", Z80,18432000/6) /* 3.072 MHz */
+ MCFG_CPU_PROGRAM_MAP(sound_map)
+ MCFG_CPU_IO_MAP(sound_io_map)
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", timelimt_state, irq0_line_hold) /* ? */
+
+ MCFG_QUANTUM_TIME(attotime::from_hz(3000))
+
+ MCFG_WATCHDOG_ADD("watchdog")
+
+ /* video hardware */
+ 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(timelimt_state, screen_update)
+ MCFG_SCREEN_PALETTE("palette")
+
+ MCFG_GFXDECODE_ADD("gfxdecode", "palette", timelimt)
+ MCFG_PALETTE_ADD("palette", 64+32)
+ MCFG_PALETTE_INIT_OWNER(timelimt_state, timelimt)
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+
+ MCFG_GENERIC_LATCH_8_ADD("soundlatch")
+
+ MCFG_SOUND_ADD("ay1", AY8910, 18432000/12)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
+
+ MCFG_SOUND_ADD("ay2", AY8910, 18432000/12)
+ MCFG_AY8910_PORT_A_READ_CB(DEVREAD8("soundlatch", generic_latch_8_device, read))
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
+MACHINE_CONFIG_END
+
+ROM_START( timelimit )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "t8", 0x0000, 0x2000, CRC(006767ca) SHA1(a5d528c58cd73c0101ffa9ab783ec870668256db) )
+ ROM_LOAD( "t7", 0x2000, 0x2000, CRC(cbe7cd86) SHA1(502a78c14c9717a466ea24cdc63da4c0f3bec1f9) )
+ ROM_LOAD( "t6", 0x4000, 0x2000, CRC(f5f17e39) SHA1(7d78f551ce73276725c349703a790f2a63bb5503) )
+ ROM_LOAD( "t9", 0x6000, 0x2000, CRC(2d72ab45) SHA1(01d4afacc01b9e7c49355123efd5f5ad4d79a9cd) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "tl5", 0x0000, 0x1000, CRC(5b782e4a) SHA1(2f4fe2beb8efa5a636fefc1ee172d0200d1c9497) )
+ ROM_LOAD( "tl4", 0x1000, 0x1000, CRC(a32883a9) SHA1(26e1725b67be87db28855672facb1504b8ac84d6) )
+
+ ROM_REGION( 0x2000, "tiles_1", 0 )
+ ROM_LOAD( "tl11", 0x0000, 0x1000, CRC(46676307) SHA1(38fe80722972b6b3ba32705469a0dcb868fb76a9) )
+ ROM_LOAD( "tl10", 0x1000, 0x1000, CRC(2336908a) SHA1(345fc209ce891cc6f8f111c6d3a9e0f65ee6d818) )
+
+ ROM_REGION( 0x2000, "tiles_2", 0 )
+ ROM_LOAD( "tl13", 0x0000, 0x1000, CRC(072e4053) SHA1(209edf7b371078e38d1c2812fa6a3d1a78193b3f) )
+ ROM_LOAD( "tl12", 0x1000, 0x1000, CRC(ce960389) SHA1(57ee52cfa1b5a3832b362b38c8b7aa411dfc782b) )
+
+ ROM_REGION( 0x6000, "sprites", 0 )
+ ROM_LOAD( "tl3", 0x0000, 0x2000, CRC(01a9fd95) SHA1(cd1078700c97a3539c9d9447c55efbd27540a1b3) )
+ ROM_LOAD( "tl2", 0x2000, 0x2000, CRC(4693b849) SHA1(fbebedde53599fb1eaedc648bd704b321ab096b5) )
+ ROM_LOAD( "tl1", 0x4000, 0x2000, CRC(c4007caf) SHA1(ae05af3319545d5ca98a046bfc100138a5a3ed96) )
+
+ ROM_REGION( 0x0060, "proms", 0 )
+ ROM_LOAD( "clr.35", 0x0000, 0x0020, CRC(9c9e6073) SHA1(98496175bf19a8cdb0018705bc1a2193b8a782e1) )
+ ROM_LOAD( "clr.48", 0x0020, 0x0020, CRC(813e17c7) SHA1(25a65d8a841538748348368ebcfce101976406a9) )
+ ROM_LOAD( "clr.57", 0x0040, 0x0020, CRC(aaa6f23e) SHA1(9fcb6af82f725517e8eff86d748701f836a05eba) )
+ROM_END
+
+GAME( 2017, timelimit, timelimt, timelimit, timelimt, driver_device, 0, ROT90, "Dink", "Time Limit (colour hack)", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/tmnt.cpp b/docs/release/src/hbmame/drivers/tmnt.cpp
new file mode 100644
index 00000000000..e493268c28f
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/tmnt.cpp
@@ -0,0 +1,33 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/tmnt.cpp"
+
+ROM_START( ssridersaex )
+ ROM_REGION( 0xc0000, "maincpu", 0 ) /* 2*256k and 2*128k for 68000 code */
+ ROM_LOAD16_BYTE( "064eac02.8e-ex", 0x000000, 0x40000, CRC(536d4a79) SHA1(dec7f827e3a1300ee32e6134b8141ae99a89b50a) )
+ ROM_LOAD16_BYTE( "064eac03.8g-ex", 0x000001, 0x40000, CRC(8ea4c0e8) SHA1(c971df7fdaa801c6351a5df401a7528f000bee06) )
+ ROM_LOAD16_BYTE( "064eab04.10e", 0x080000, 0x20000, CRC(ef2315bd) SHA1(2c8b11321cb5fdb78d760fabca666c0d8cc5b298) )
+ ROM_LOAD16_BYTE( "064eab05.10g", 0x080001, 0x20000, CRC(51d6fbc4) SHA1(e80de7d155b7f263c48ef4ae2702059be3c18e76) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "064e01.2f", 0x0000, 0x10000, CRC(44b9bc52) SHA1(4654d6e14c6956c40a19cb41155accb63f0da338) )
+
+ ROM_REGION( 0x100000, "k052109", 0 ) /* tiles */
+ ROM_LOAD32_WORD( "064e12.16k", 0x000000, 0x080000, CRC(e2bdc619) SHA1(04449deb267b0beacfa33640b593eb16194aa0d9) )
+ ROM_LOAD32_WORD( "064e11.12k", 0x000002, 0x080000, CRC(2d8ca8b0) SHA1(7c882f79c2402cf75979c681071007d76e4db9ae) )
+
+ ROM_REGION( 0x200000, "k053245", 0 ) /* graphics (addressable by the main CPU) */
+ ROM_LOAD32_WORD( "064e09.7l", 0x000000, 0x100000, CRC(4160c372) SHA1(0b36181e5ccd785c7fb89b9f41e458066a42c3b0) ) /* sprites */
+ ROM_LOAD32_WORD( "064e07.3l", 0x000002, 0x100000, CRC(64dd673c) SHA1(bea4d17a71dd21c635866ee69b4892dc9d0ab455) )
+
+ ROM_REGION( 0x100000, "k053260", 0 ) /* samples for the 053260 */
+ ROM_LOAD( "064e06.1d", 0x0000, 0x100000, CRC(59810df9) SHA1(a0affc6330bdbfab1447dc0cf13c20ff708c2c71) )
+
+ ROM_REGION( 0x80, "eeprom", 0 ) // default eeprom to prevent game booting upside down with error
+ ROM_LOAD( "ssriders_abd.nv", 0x0000, 0x080, CRC(bfdafedf) SHA1(bc786d4fb3495a6baf2ae13c19392c6740a2be6d) )
+ //ROM_LOAD( "ssriders_eac.nv", 0x0000, 0x080, CRC(f6d641a7) SHA1(6c680d49e1b07a47b29ff263a6009d226bd120cf) )
+ROM_END
+
+
+// YEAR, NAME, PARENT, MACHINE, INPUT, INIT, MONITOR,COMPANY,FULLNAME,FLAGS
+GAME( 2009, ssridersaex, ssriders, ssriders, ssriders, driver_device, 0, ROT0, "Pipi899","Sunset Riders (2 Players ver ABD EX Super Version)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/toaplan2.cpp b/docs/release/src/hbmame/drivers/toaplan2.cpp
new file mode 100644
index 00000000000..fbe8d29dafb
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/toaplan2.cpp
@@ -0,0 +1,91 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/toaplan2.cpp"
+
+ROM_START( batsugunt )
+ ROM_REGION( 0x080000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tp030_01t.bin", 0x000000, 0x080000, CRC(63d28fd3) SHA1(aa3e111d596f408b735e4f79ab654eea24bd6f0c) )
+
+ ROM_REGION( 0x400000, "gp9001", 0 )
+ ROM_LOAD( "tp030_3l.bin", 0x000000, 0x100000, CRC(3024b793) SHA1(e161db940f069279356fca2c5bf2753f07773705) )
+ ROM_LOAD( "tp030_3h.bin", 0x100000, 0x100000, CRC(ed75730b) SHA1(341f0f728144a049486d996c9bb14078578c6879) )
+ ROM_LOAD( "tp030_4l.bin", 0x200000, 0x100000, CRC(fedb9861) SHA1(4b0917056bd359b21935358c6bcc729262be6417) )
+ ROM_LOAD( "tp030_4h.bin", 0x300000, 0x100000, CRC(d482948b) SHA1(31be7dc5cff072403b783bf203b9805ffcad7284) )
+
+ ROM_REGION( 0x200000, "gp9001_1", 0 )
+ ROM_LOAD( "tp030_5.bin", 0x000000, 0x100000, CRC(bcf5ba05) SHA1(40f98888a29cdd30cda5dfb60fdc667c69b0fdb0) )
+ ROM_LOAD( "tp030_6.bin", 0x100000, 0x100000, CRC(0666fecd) SHA1(aa8f921fc51590b5b05bbe0b0ad0cce5ff359c64) )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "tp030_2.bin", 0x00000, 0x40000, CRC(276146f5) SHA1(bf11d1f6782cefcad77d52af4f7e6054a8f93440) )
+ROM_END
+
+ROM_START( bgareggz )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "prg0z.bin", 0x000000, 0x080000, CRC(6f4af466) SHA1(fb77f3b86c0b25941ae0efe70ca779d06f66f02b) )
+ ROM_LOAD16_BYTE( "prg1z.bin", 0x000001, 0x080000, CRC(b4dc9a48) SHA1(9310a8c1de2a64e5597206a9974f25351d7825c2) )
+
+ ROM_REGION( 0x20000, "audiocpu", 0 )
+ ROM_LOAD( "snd.bin", 0x00000, 0x20000, CRC(68632952) SHA1(fb834db83157948e2b420b6051102a9c6ac3969b) )
+
+ ROM_REGION( 0x800000, "gp9001", 0 )
+ ROM_LOAD( "rom4.bin", 0x000000, 0x200000, CRC(b333d81f) SHA1(5481465f1304334fd55798be2f44324c57c2dbcb) )
+ ROM_LOAD( "rom3.bin", 0x200000, 0x200000, CRC(51b9ebfb) SHA1(30e0c326f5175aa436df8dba08f6f4e08130b92f) )
+ ROM_LOAD( "rom2.bin", 0x400000, 0x200000, CRC(b330e5e2) SHA1(5d48e9d56f99d093b6390e0af1609fd796df2d35) )
+ ROM_LOAD( "rom1.bin", 0x600000, 0x200000, CRC(7eafdd70) SHA1(7c8da8e86c3f9491719b1d7d5d285568d7614f38) )
+
+ ROM_REGION( 0x010000, "text", 0 )
+ ROM_LOAD( "text.u81", 0x00000, 0x08000, CRC(e67fd534) SHA1(987d0edffc2c243a13d4567319ea3d185eaadbf8) )
+
+ ROM_REGION( 0x140000, "oki", 0 )
+ ROM_LOAD( "rom5.bin", 0x040000, 0x100000, CRC(f6d49863) SHA1(3a3c354852adad06e8a051511abfab7606bce382) )
+ROM_END
+
+
+/* This game can be obtained from the Raine site, use a hex editor to zero out the last 4 bytes,
+ and rename the result to "kgpe.05". Thanks goes to the Raine devs for the idea and the rom,
+ and Tourniquet for the byte modification. Without this mod, the rom has the same crc as "ma02rom5.eng"
+ from "kingdmgp", which caused all sorts of confusion and problems. */
+ROM_START( kgpe ) // same as kingdmgp and shippumd, except for rom 05
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "ma02rom1.bin", 0x000000, 0x080000, CRC(a678b149) SHA1(8c1a631e023dbba0a3fa6cd1b7d10dec1663213a) )
+ ROM_LOAD16_BYTE( "ma02rom0.bin", 0x000001, 0x080000, CRC(f226a212) SHA1(526acf3d05fdc88054a772fbea3de2af532bf3d2) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "ma02rom2.bin", 0x00000, 0x10000, CRC(dde8a57e) SHA1(f522a3f17e229c71512464349760a9e27778bf6a) )
+
+ ROM_REGION( 0x400000, "gp9001", 0 )
+ ROM_LOAD( "ma02rom3.bin", 0x000000, 0x200000, CRC(0e797142) SHA1(a480ccd151e49b886d3175a6deff56e1f2c26c3e) )
+ ROM_LOAD( "ma02rom4.bin", 0x200000, 0x200000, CRC(72a6fa53) SHA1(ce92e65205b84361cfb90305a61e9541b5c4dc2f) )
+
+ ROM_REGION( 0x008000, "text", 0 )
+ ROM_LOAD( "kgpe.05", 0x000000, 0x008000, CRC(a0707702) SHA1(b6105291c1ae3d0792e69fd2495c31b56fbf61b7) )
+
+ ROM_REGION( 0x80000, "oki", 0 )
+ ROM_LOAD( "ma02rom6.bin", 0x00000, 0x80000, CRC(199e7cae) SHA1(0f5e13cc8ec42c80bb4bbff90aba29cdb15213d4) )
+ROM_END
+
+ROM_START( mahoudcn )
+ ROM_REGION( 0x080000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "ra_ma_01_01.u65", 0x000000, 0x080000, CRC(970ccc5c) SHA1(c87cab83bde0284e631f02e50068407fee81d941) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "ra-ma-01_02.u66", 0x00000, 0x10000, CRC(eabfa46d) SHA1(402c99ebf88f9025f74f0a28ced22b7882a65eb3) )
+
+ ROM_REGION( 0x200000, "gp9001", 0 )
+ ROM_LOAD( "ra_ma_01_cn.03", 0x000000, 0x100000, CRC(7441e469) SHA1(ba1b127b6878ec45054c7220510a1ec0a8c06a0a) )
+ ROM_LOAD( "ra_ma_01_cn.04", 0x100000, 0x100000, CRC(eb9f8159) SHA1(db8e10b847b0fbb34136c1a320ca0a160ac2646e) )
+
+ ROM_REGION( 0x008000, "text", 0 )
+ ROM_LOAD( "ra_ma_01_05.u81", 0x000000, 0x008000, CRC(c00d1e80) SHA1(53e64c4c0c6309130b37597d13b44a9e95b717d8) )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "ra-ma01-rom1.u57", 0x00000, 0x40000, CRC(6edb2ab8) SHA1(e3032e8eda2686f30df4b7a088c5a4d4d45782ed) )
+ROM_END
+
+
+
+GAME( 1993, batsugunt, batsugun, batsugun, batsugun, toaplan2_state, dogyuun, ROT270, "Eezezy", "Batsugun Transparent (HACK BY EEZEZY(LB70))", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, bgareggz, bgaregga, bgaregga, bgaregga, toaplan2_state, bgaregga,ROT270, "Zack", "Battle Garegga (Europe / USA / Japan / Asia) (Zakk version)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, kgpe, kingdmgp, shippumd, kingdmgp, driver_device, 0, ROT270, "Neil Corlett", "Kingdom Grand Prix" , MACHINE_SUPPORTS_SAVE )
+GAME( 1993, mahoudcn, sstriker, mahoudai, mahoudai, driver_device, 0, ROT270, "Raizing (Able license)", "Mahou Daisakusen (Chinese)", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/trackfld.cpp b/docs/release/src/hbmame/drivers/trackfld.cpp
new file mode 100644
index 00000000000..885d23adcf4
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/trackfld.cpp
@@ -0,0 +1,75 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/trackfld.cpp"
+
+ROM_START( athens04 ) // same as trackfld except where indicated
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "a01_e01.bin", 0x6000, 0x2000, CRC(2882f6d4) SHA1(f7ddae2c5412a2849efd7f9629e92a5b0328e7cb) )
+ ROM_LOAD( "a02_e02.bin", 0x8000, 0x2000, CRC(1743b5ee) SHA1(31301031a525f893c31461f634350f01a9492ef4) )
+ ROM_LOAD( "athens04.k03", 0xa000, 0x2000, CRC(2dd0e765) SHA1(4f832db55d9614ea733eaf53bf8a35d673bf5cba) )
+ ROM_LOAD( "a04_e04.bin", 0xc000, 0x2000, CRC(21d6c448) SHA1(6c42cc76302485954a31520bdd08469fa948c72f) )
+ ROM_LOAD( "a05_e05.bin", 0xe000, 0x2000, CRC(f08c7b7e) SHA1(50e65d9b0ea37d2afb2dfdf1f3e1378e3290bc81) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "c2_d13.bin", 0x0000, 0x2000, CRC(95bf79b6) SHA1(ea9135acd7ad162c19c5cdde356e69792d61b675) )
+
+ ROM_REGION( 0x8000, "gfx1", 0 )
+ ROM_LOAD( "c11_d06.bin", 0x0000, 0x2000, CRC(82e2185a) SHA1(1da9ea20e7af0b49c62fb39834a7ec686491af04) )
+ ROM_LOAD( "c12_d07.bin", 0x2000, 0x2000, CRC(800ff1f1) SHA1(33d73b18903e3e6bfb30f1a06db4b8105d4040d8) )
+ ROM_LOAD( "c13_d08.bin", 0x4000, 0x2000, CRC(d9faf183) SHA1(4448b6242790783d37acf50704d597af5878c2ab) )
+ ROM_LOAD( "c14_d09.bin", 0x6000, 0x2000, CRC(5886c802) SHA1(884a12a8f63600da4f23b29be6dbaacef37add20) )
+
+ ROM_REGION( 0x6000, "gfx2", 0 )
+ ROM_LOAD( "athens04.e12", 0x0000, 0x2000, CRC(29908ce9) SHA1(6f80f4962059f3422282f3e30c55c73407d9cf4c) )
+ ROM_LOAD( "athens04.e11", 0x2000, 0x2000, CRC(7a534ca1) SHA1(0bcf582662e93f96a2ebe6bd52ee8f8e8f36c24c) )
+ ROM_LOAD( "h14_e10.bin", 0x4000, 0x2000, CRC(c2166a5c) SHA1(5ba25900e653ce4edcf35f1fbce758a327a715ce) )
+
+ ROM_REGION( 0x0220, "proms", 0 )
+ ROM_LOAD( "361b16.f1", 0x0000, 0x0020, CRC(d55f30b5) SHA1(4d6a851f4886778307f75771645078b97ad55f5f) )
+ ROM_LOAD( "361b17.b16", 0x0020, 0x0100, CRC(d2ba4d32) SHA1(894b5cedf01ba9225a0d6215291857e455b84903) )
+ ROM_LOAD( "361b18.e15", 0x0120, 0x0100, CRC(053e5861) SHA1(6740a62cf7b6938a4f936a2fed429704612060a5) )
+
+ ROM_REGION( 0x2000, "vlm", 0 )
+ ROM_LOAD( "c9_d15.bin", 0x0000, 0x2000, CRC(f546a56b) SHA1(caee3d8546eb7a75ce2a578c6a1a630246aec6b8) )
+ROM_END
+
+/* ATHENS 2004
+
+HACK by The Gameland Crew (http://www.gameland.gr)
+Maddog, Whacker, Badge, Geoanas */
+
+GAME( 2004, athens04, trackfld, trackfld, trackfld, trackfld_state, trackfld, ROT0, "Gameland.gr", "Athens 2004", MACHINE_SUPPORTS_SAVE )
+
+ROM_START( tst_trkfld )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "testrom13beta", 0x6000, 0x2000, CRC(81f91de1) SHA1(66d1bfec31167c1acda7b1ff0b534730ff58ff3e) )
+ ROM_LOAD( "a02_e02.bin", 0x8000, 0x2000, CRC(1743b5ee) SHA1(31301031a525f893c31461f634350f01a9492ef4) )
+ ROM_LOAD( "a03_k03.bin", 0xa000, 0x2000, CRC(6c0d1ee9) SHA1(380ab2162153a61910a6fe5b6d091ca9451ad4fd) )
+ ROM_LOAD( "a04_e04.bin", 0xc000, 0x2000, CRC(21d6c448) SHA1(6c42cc76302485954a31520bdd08469fa948c72f) )
+ ROM_LOAD( "a05_e05.bin", 0xe000, 0x2000, CRC(f08c7b7e) SHA1(50e65d9b0ea37d2afb2dfdf1f3e1378e3290bc81) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "c2_d13.bin", 0x0000, 0x2000, CRC(95bf79b6) SHA1(ea9135acd7ad162c19c5cdde356e69792d61b675) )
+
+ ROM_REGION( 0x8000, "gfx1", 0 )
+ ROM_LOAD( "c11_d06.bin", 0x0000, 0x2000, CRC(82e2185a) SHA1(1da9ea20e7af0b49c62fb39834a7ec686491af04) )
+ ROM_LOAD( "c12_d07.bin", 0x2000, 0x2000, CRC(800ff1f1) SHA1(33d73b18903e3e6bfb30f1a06db4b8105d4040d8) )
+ ROM_LOAD( "c13_d08.bin", 0x4000, 0x2000, CRC(d9faf183) SHA1(4448b6242790783d37acf50704d597af5878c2ab) )
+ ROM_LOAD( "c14_d09.bin", 0x6000, 0x2000, CRC(5886c802) SHA1(884a12a8f63600da4f23b29be6dbaacef37add20) )
+
+ ROM_REGION( 0x6000, "gfx2", 0 )
+ ROM_LOAD( "h16_e12.bin", 0x0000, 0x2000, CRC(50075768) SHA1(dfff92c0f59dd3d8d3d6256944bfd48792cef6a9) )
+ ROM_LOAD( "h15_e11.bin", 0x2000, 0x2000, CRC(dda9e29f) SHA1(0f41cde82bb60c3f1591ee14dc3cff4642bbddc1) )
+ ROM_LOAD( "h14_e10.bin", 0x4000, 0x2000, CRC(c2166a5c) SHA1(5ba25900e653ce4edcf35f1fbce758a327a715ce) )
+
+ ROM_REGION( 0x0220, "proms", 0 )
+ ROM_LOAD( "361b16.f1", 0x0000, 0x0020, CRC(d55f30b5) SHA1(4d6a851f4886778307f75771645078b97ad55f5f) )
+ ROM_LOAD( "361b17.b16", 0x0020, 0x0100, CRC(d2ba4d32) SHA1(894b5cedf01ba9225a0d6215291857e455b84903) )
+ ROM_LOAD( "361b18.e15", 0x0120, 0x0100, CRC(053e5861) SHA1(6740a62cf7b6938a4f936a2fed429704612060a5) )
+
+ ROM_REGION( 0x2000, "vlm", 0 )
+ ROM_LOAD( "c9_d15.bin", 0x0000, 0x2000, CRC(f546a56b) SHA1(caee3d8546eb7a75ce2a578c6a1a630246aec6b8) )
+ROM_END
+
+// http://www.jammarcade.net/track-field-test-rom-beta/
+GAME( 2015, tst_trkfld, trackfld, trackfld, trackfld, trackfld_state, trackfld, ROT0, "Shoestring", "Test Rom - Track and Field", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/twincobr.cpp b/docs/release/src/hbmame/drivers/twincobr.cpp
new file mode 100644
index 00000000000..105031d7f30
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/twincobr.cpp
@@ -0,0 +1,96 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/twincobr.cpp"
+
+ROM_START( twincbu2 )
+ ROM_REGION( 0x30000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "b30_01.7j", 0x00000, 0x10000, CRC(07f64d13) SHA1(864ce0f9369c40c3ae792fc4ab2444a168214749) )
+ ROM_LOAD16_BYTE( "b30_03.7h", 0x00001, 0x10000, CRC(41be6978) SHA1(4784804b738a332c7f24a43bcbb7a1e607365735) )
+ ROM_LOAD16_BYTE( "tcbra26.bin", 0x20000, 0x08000, CRC(bdd00ba4) SHA1(b76b22f03eb4b821a8c555edd9fcee814f2e66a7) )
+ ROM_LOAD16_BYTE( "tcbra27.bin", 0x20001, 0x08000, CRC(ed600907) SHA1(e5964db9eab2c334940795d71cb90f6679490227) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "b30-05", 0x00000, 0x08000, CRC(1a8f1e10) SHA1(0c37a7a50b2523506ad77ac03ae752eb94092ff6) )
+
+ ROM_REGION( 0x2000, "dsp", 0 )
+ ROM_LOAD16_BYTE( "dsp_22.bin", 0x0001, 0x0800, CRC(79389a71) SHA1(14ec4c1c9b06702319e89a7a250d0038393437f4) )
+ ROM_LOAD16_BYTE( "dsp_21.bin", 0x0000, 0x0800, CRC(2d135376) SHA1(67a2cc774d272ee1cd6e6bc1c5fc33fc6968837e) )
+
+ ROM_REGION( 0x0c000, "gfx1", 0 )
+ ROM_LOAD( "b30_08.8c", 0x00000, 0x04000, CRC(0a254133) SHA1(17e9cc5e36fb4696012d0f9229fa172034cd843a) )
+ ROM_LOAD( "b30_07.128", 0x04000, 0x04000, CRC(3160894d) SHA1(234951e2aa4002e23781f8ed3be64b71b0400e9f) )
+ ROM_LOAD( "b30_06.8b", 0x08000, 0x04000, CRC(a599d845) SHA1(732001f2d378d890f148e6b616c287d71fae832a) )
+
+ ROM_REGION( 0x40000, "gfx2", 0 )
+ ROM_LOAD( "b30_15.512", 0x00000, 0x10000, CRC(88795b18) SHA1(73bd28ef12576cf54630304c3c0f8a08141a321f) )
+ ROM_LOAD( "b30_16.512", 0x10000, 0x10000, CRC(e6f421d2) SHA1(82da99d017780d0e52988dc8ebfcd16b54d34b6b) )
+ ROM_LOAD( "b30_13.18c", 0x20000, 0x10000, CRC(13daeac8) SHA1(1cb103f434e2ecf193fa936ca7ea9194064c5b39) )
+ ROM_LOAD( "b30_14.20c", 0x30000, 0x10000, CRC(8cc79357) SHA1(31064df2b796ca85ad3caccf626b684dff1104a1) )
+
+ ROM_REGION( 0x20000, "gfx3", 0 )
+ ROM_LOAD( "b30_12.16c", 0x00000, 0x08000, CRC(b5d48389) SHA1(a00c5b9c231d3d580fa20c7ad3f8b6fd990e6594) )
+ ROM_LOAD( "b30_11.14c", 0x08000, 0x08000, CRC(97f20fdc) SHA1(7cb3cd0637b0db889a3d552fd7c1a916eee5ca27) )
+ ROM_LOAD( "b30_10.12c", 0x10000, 0x08000, CRC(170c01db) SHA1(f4c5a1600f6cbb48abbace66c6f7514f79138e8b) )
+ ROM_LOAD( "b30_09.10c", 0x18000, 0x08000, CRC(44f5accd) SHA1(2f9bdebe71c8be195332356df68992fd38d86994) )
+
+ ROM_REGION( 0x40000, "scu", 0 )
+ ROM_LOAD( "b30_20.12d", 0x00000, 0x10000, CRC(cb4092b8) SHA1(35b1d1e04af760fa106124bd5a94174d63ff9705) )
+ ROM_LOAD( "b30_19.512", 0x10000, 0x10000, CRC(4043ad5a) SHA1(bf14829ec800dab9ac6e385bddcab303301df530) )
+ ROM_LOAD( "b30_18.512", 0x20000, 0x10000, CRC(cdc16155) SHA1(9f41695409dbf72c2a66911aaa94b8fe5f6acc01) )
+ ROM_LOAD( "b30_17.16d", 0x30000, 0x10000, CRC(4264bff8) SHA1(3271b8b23f51346d1928ae01f8b547fed49181e6) )
+
+ ROM_REGION( 0x260, "proms", 0 )
+ ROM_LOAD( "82s129.d3", 0x000, 0x100, CRC(24e7d62f) SHA1(1c06a1ef1b6a722794ca1d5ee2c476ecaa5178a3) )
+ ROM_LOAD( "82s129.d4", 0x100, 0x100, CRC(a50cef09) SHA1(55cafb5b2551b80ae708e9b966cf37c70a16d310) )
+ ROM_LOAD( "82s123.d2", 0x200, 0x020, CRC(f72482db) SHA1(b0cb911f9c81f6088a5aa8760916ddae1f8534d7) )
+ ROM_LOAD( "82s123.e18", 0x220, 0x020, CRC(bc88cced) SHA1(5055362710c0f58823c05fb4c0e0eec638b91e3d) )
+ ROM_LOAD( "82s123.b24", 0x240, 0x020, CRC(4fb5df2a) SHA1(506ef2c8e4cf45c256d6831a0a5760732f2de422) )
+ROM_END
+
+ROM_START( twintwst )
+ ROM_REGION( 0x30000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "b30_01.7j", 0x00000, 0x10000, CRC(07f64d13) SHA1(864ce0f9369c40c3ae792fc4ab2444a168214749) )
+ ROM_LOAD16_BYTE( "b30_03.7h", 0x00001, 0x10000, CRC(41be6978) SHA1(4784804b738a332c7f24a43bcbb7a1e607365735) )
+ ROM_LOAD16_BYTE( "b30_26_ii.8j", 0x20000, 0x08000, CRC(3a646618) SHA1(fc1ed8f3c491f5cf16a17e5ce08c5d8f3ce03683) )
+ ROM_LOAD16_BYTE( "b30_27_ii.8h", 0x20001, 0x08000, CRC(d7d1e317) SHA1(57b8433b1677a390a7c7e00a1464bb8ed9cbfc73) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "b30_05_ii.4f", 0x00000, 0x08000, CRC(e37b3c44) SHA1(5fed10b29c14e27aee0cd92ecde5c5cb422273b1) )
+
+ ROM_REGION( 0x2000, "dsp", 0 )
+ ROM_LOAD16_BYTE( "dsp_22.bin", 0x0001, 0x0800, CRC(79389a71) SHA1(14ec4c1c9b06702319e89a7a250d0038393437f4) )
+ ROM_LOAD16_BYTE( "dsp_21.bin", 0x0000, 0x0800, CRC(2d135376) SHA1(67a2cc774d272ee1cd6e6bc1c5fc33fc6968837e) )
+
+ ROM_REGION( 0x0c000, "gfx1", 0 )
+ ROM_LOAD( "b30_08.8c", 0x00000, 0x04000, CRC(0a254133) SHA1(17e9cc5e36fb4696012d0f9229fa172034cd843a) )
+ ROM_LOAD( "b30_07.10b", 0x04000, 0x04000, CRC(e9e2d4b1) SHA1(e0a19dd46a9ba85d95bba7fbf81d8dc36dbfeabd) )
+ ROM_LOAD( "b30_06.8b", 0x08000, 0x04000, CRC(a599d845) SHA1(732001f2d378d890f148e6b616c287d71fae832a) )
+
+ ROM_REGION( 0x40000, "gfx2", 0 )
+ ROM_LOAD( "b30_16.20b", 0x00000, 0x10000, CRC(15b3991d) SHA1(f5e7ed7a7721ed7e6dfd440634160390b7a294e4) )
+ ROM_LOAD( "b30_15.18b", 0x10000, 0x10000, CRC(d9e2e55d) SHA1(0409e6df836d1d5198b64b21b42192631aa6d096) )
+ ROM_LOAD( "b30_13.18c", 0x20000, 0x10000, CRC(13daeac8) SHA1(1cb103f434e2ecf193fa936ca7ea9194064c5b39) )
+ ROM_LOAD( "b30_14.20c", 0x30000, 0x10000, CRC(8cc79357) SHA1(31064df2b796ca85ad3caccf626b684dff1104a1) )
+
+ ROM_REGION( 0x20000, "gfx3", 0 )
+ ROM_LOAD( "b30_12.16c", 0x00000, 0x08000, CRC(b5d48389) SHA1(a00c5b9c231d3d580fa20c7ad3f8b6fd990e6594) )
+ ROM_LOAD( "b30_11.14c", 0x08000, 0x08000, CRC(97f20fdc) SHA1(7cb3cd0637b0db889a3d552fd7c1a916eee5ca27) )
+ ROM_LOAD( "b30_10.12c", 0x10000, 0x08000, CRC(170c01db) SHA1(f4c5a1600f6cbb48abbace66c6f7514f79138e8b) )
+ ROM_LOAD( "b30_09.10c", 0x18000, 0x08000, CRC(44f5accd) SHA1(2f9bdebe71c8be195332356df68992fd38d86994) )
+
+ ROM_REGION( 0x40000, "scu", 0 )
+ ROM_LOAD( "tcw20", 0x00000, 0x10000, CRC(41c8f4ea) SHA1(9da6911b89b5cf49b64a8bcb12ab191cc98316f2) )
+ ROM_LOAD( "tcw19", 0x10000, 0x10000, CRC(8d5db99e) SHA1(33a1a51396fd289ee23ea1c645bc85bfed37848d) )
+ ROM_LOAD( "tcw18", 0x20000, 0x10000, CRC(eade1ca3) SHA1(af62d4b3a4072d6b0970a47ab6ef68987bac9c93) )
+ ROM_LOAD( "tcw17", 0x30000, 0x10000, CRC(6a559622) SHA1(8a07f792efea9d521a5fd0169a5d6c15fe615d5d) )
+
+ ROM_REGION( 0x260, "proms", 0 )
+ ROM_LOAD( "82s129.d3", 0x000, 0x100, CRC(24e7d62f) SHA1(1c06a1ef1b6a722794ca1d5ee2c476ecaa5178a3) )
+ ROM_LOAD( "82s129.d4", 0x100, 0x100, CRC(a50cef09) SHA1(55cafb5b2551b80ae708e9b966cf37c70a16d310) )
+ ROM_LOAD( "82s123.d2", 0x200, 0x020, CRC(f72482db) SHA1(b0cb911f9c81f6088a5aa8760916ddae1f8534d7) )
+ ROM_LOAD( "82s123.e18", 0x220, 0x020, CRC(bc88cced) SHA1(5055362710c0f58823c05fb4c0e0eec638b91e3d) )
+ ROM_LOAD( "82s123.b24", 0x240, 0x020, CRC(4fb5df2a) SHA1(506ef2c8e4cf45c256d6831a0a5760732f2de422) )
+ROM_END
+
+GAME( 2002, twincbu2, twincobr, twincobr, twincobru, twincobr_state, twincobr, ROT270, "[Hack]", "Twin Cobra (Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, twintwst, twincobr, twincobr, twincobr, twincobr_state, twincobr, ROT270, "[Hack]", "Twin Twist (Twin Cobra Hack)", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/volfied.cpp b/docs/release/src/hbmame/drivers/volfied.cpp
new file mode 100644
index 00000000000..c4193b58b4c
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/volfied.cpp
@@ -0,0 +1,30 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/volfied.cpp"
+
+ROM_START( volfiedg ) // roms that don't end in g are same as volfied
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "c04-12-1.30g", 0x00000, 0x10000, CRC(f13c5621) SHA1(b50aaadb1a3128aa5ecbab2a1450c5e817f33620) )
+ ROM_LOAD16_BYTE( "c04-08-1.10g", 0x00001, 0x10000, CRC(b7e5472e) SHA1(68323e46ffee7cf8d2119405543353691673ac05) )
+ ROM_LOAD16_BYTE( "c04-11-1.29g", 0x20000, 0x10000, CRC(54730fe3) SHA1(796693cd2cfb539f6691aa4e359c47cfd7348734) )
+ ROM_LOAD16_BYTE( "c04-25-1.9g", 0x20001, 0x10000, CRC(cff7aee1) SHA1(1d9a3ddebafb8b8b4075de2946a250156f81fb54) )
+ ROM_LOAD16_BYTE( "c04-20.7g", 0x80000, 0x20000, CRC(7614c798) SHA1(7465f2eaeab73f047cc9f41f5a00173c34636513) )
+ ROM_LOAD16_BYTE( "c04-22.9g", 0x80001, 0x20000, CRC(aa6e8da8) SHA1(014eb2b5ba89e267a915ea647a71fdd8413099c7) )
+ ROM_LOAD16_BYTE( "c04-19.6", 0xc0000, 0x20000, CRC(231493ae) SHA1(2658e6556fd0e75ddd0f0b8628cfa5237c187a06) )
+ ROM_LOAD16_BYTE( "c04-21.8", 0xc0001, 0x20000, CRC(8598d38e) SHA1(4ec1b819586b50e2f6aff2aaa5e3b06704b9bec2) )
+
+ ROM_REGION( 0xc0000, "gfx1", 0 )
+ ROM_LOAD16_BYTE( "c04-16.2g", 0x00000, 0x20000, CRC(1c6963a9) SHA1(2dc4b6838c95497e019c03582a8f7ecb48fa97a8) )
+ ROM_LOAD16_BYTE( "c04-18.4g", 0x00001, 0x20000, CRC(67ea587f) SHA1(2b43ba53cc563d3462a4bec430427f92290f2b23) )
+ ROM_LOAD16_BYTE( "c04-15.1", 0x40000, 0x20000, CRC(7c50b978) SHA1(aa9cad5f09f5d9dceaf4e06bcd347f1d5d02d292) )
+ ROM_LOAD16_BYTE( "c04-17.3", 0x40001, 0x20000, CRC(c62fdeb8) SHA1(a9f6ca8335071169d772e65a9f5315a22a310b25) )
+ ROM_LOAD16_BYTE( "c04-10.15", 0x80000, 0x10000, CRC(429b6b49) SHA1(dcb0c8bc9d67643d96b2ffdf5ccd747318704c37) )
+ ROM_RELOAD ( 0xa0000, 0x10000 )
+ ROM_LOAD16_BYTE( "c04-09.14", 0x80001, 0x10000, CRC(c78cf057) SHA1(097982e57b1d20fbdf21986c23684adefe6f1ce1) )
+ ROM_RELOAD ( 0xa0001, 0x10000 )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "c04-06.71", 0x0000, 0x8000, CRC(b70106b2) SHA1(d71062f9d9b11492e13fc93982b95883f564f902) )
+ROM_END
+
+GAME( 2005, volfiedg, volfied, volfied, volfied, driver_device, 0, ROT270, "GreekRoms", "Volfied (Greek)", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/vsnes.cpp b/docs/release/src/hbmame/drivers/vsnes.cpp
new file mode 100644
index 00000000000..d9c343df629
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/vsnes.cpp
@@ -0,0 +1,34 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/vsnes.cpp"
+
+ROM_START( mrio2002 )
+ ROM_REGION( 0x10000,"maincpu", 0 ) /* 6502 memory */
+ ROM_LOAD( "mds-sm4.1d", 0x8000, 0x2000, CRC(be4d5436) SHA1(08162a7c987f1939d09bebdb676f596c86abf465) )
+ ROM_LOAD( "mds-sm4.1c", 0xa000, 0x2000, CRC(0011fc5a) SHA1(5c2c49938a12affc03e64e5bdab307998be20020) )
+ ROM_LOAD( "mds-sm4.1b", 0xc000, 0x2000, CRC(b1b87893) SHA1(8563ceaca664cf4495ef1020c07179ca7e4af9f3) )
+ ROM_LOAD( "mds-sm4.1a", 0xe000, 0x2000, CRC(1abf053c) SHA1(f17db88ce0c9bf1ed88dc16b9650f11d10835cec) )
+
+ ROM_REGION( 0x4000,"gfx1", 0 ) /* PPU memory */
+ ROM_LOAD( "mrio2002.2b", 0x0000, 0x2000, CRC(1feda640) SHA1(f26be31f43dacdaa9d8bffa75f4fcd9d8d04953a) )
+ ROM_LOAD( "mds-sm4.2a", 0x2000, 0x2000, CRC(15506b86) SHA1(69ecf7a3cc8bf719c1581ec7c0d68798817d416f) )
+
+ PALETTE_2C04_0004
+ROM_END
+
+ROM_START( suprsktr )
+ ROM_REGION( 0x10000,"maincpu", 0 ) /* 6502 memory */
+ ROM_LOAD( "mds-sm4.1d", 0x8000, 0x2000, CRC(be4d5436) SHA1(08162a7c987f1939d09bebdb676f596c86abf465) )
+ ROM_LOAD( "mds-sm4.1c", 0xa000, 0x2000, CRC(0011fc5a) SHA1(5c2c49938a12affc03e64e5bdab307998be20020) )
+ ROM_LOAD( "mds-sm4.1b", 0xc000, 0x2000, CRC(b1b87893) SHA1(8563ceaca664cf4495ef1020c07179ca7e4af9f3) )
+ ROM_LOAD( "mds-sm4.1a", 0xe000, 0x2000, CRC(1abf053c) SHA1(f17db88ce0c9bf1ed88dc16b9650f11d10835cec) )
+
+ ROM_REGION( 0x4000,"gfx1", 0 ) /* PPU memory */
+ ROM_LOAD( "suprsktr.2b", 0x0000, 0x2000, CRC(f3980303) SHA1(b9a25c906d1861c89e2e40e878a34d318daf6619) )
+ ROM_LOAD( "mds-sm4.2a", 0x2000, 0x2000, CRC(15506b86) SHA1(69ecf7a3cc8bf719c1581ec7c0d68798817d416f) )
+
+ PALETTE_2C04_0004
+ROM_END
+
+GAME( 2002, mrio2002, suprmrio, vsnes, suprmrio, vsnes_state, vsnormal, ROT0, "Nintendo", "Vs. Super Mario Bros. 2002", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, suprsktr, suprmrio, vsnes, suprmrio, vsnes_state, vsnormal, ROT0, "Nintendo", "Vs. Super Skater Bros.", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/williams.cpp b/docs/release/src/hbmame/drivers/williams.cpp
new file mode 100644
index 00000000000..e8384b577d8
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/williams.cpp
@@ -0,0 +1,130 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/williams.cpp"
+
+ROM_START( defender2 )
+ ROM_REGION( 0x19000, "maincpu", 0 )
+ ROM_LOAD( "10", 0x0d000, 0x1000, CRC(4d82fc2f) SHA1(b11dc3f3f2100ab14ad5b26cd333b212c454cc8d) )
+ ROM_LOAD( "11", 0x0e000, 0x1000, CRC(561fad3f) SHA1(597851e78423f30341f682f3fc62bf24cf9e8a91) )
+ ROM_LOAD( "12", 0x0f000, 0x1000, CRC(836eacca) SHA1(f788fc2a25adffa21e02a3dfe2074e8719405200) )
+ ROM_LOAD( "01", 0x10000, 0x1000, CRC(88824d18) SHA1(f003a5a9319c4eb8991fa2aae3f10c72d6b8e81a) )
+ ROM_LOAD( "02", 0x11000, 0x1000, CRC(afc614c5) SHA1(087c6da93318e8dc922d3d22e0a2af7b9759701c) )
+ ROM_LOAD( "03", 0x12000, 0x1000, CRC(6dd57970) SHA1(1fdee9180bfb835f35ac786116e0f8d7833f2c3f) )
+ ROM_LOAD( "04", 0x13000, 0x1000, CRC(a8b4bf0f) SHA1(6b4d47c2899fe9f14f9dab5928499f12078c437d) )
+ ROM_LOAD( "05", 0x14000, 0x1000, CRC(2d306074) SHA1(54f871983699113e31bb756d4ca885c26c2d66b4) )
+ ROM_LOAD( "06", 0x15000, 0x1000, CRC(53598dde) SHA1(54b02d944caf95283c9b6f0160e75ea8c4ccc97b) )
+ ROM_LOAD( "07", 0x16000, 0x1000, CRC(55b5b0d2) SHA1(dcf392a899fb6c225c4e31034e242e575c3dc94d) )
+ ROM_LOAD( "08", 0x17000, 0x1000, CRC(b4f22d4d) SHA1(2486e895628df9ae1268d9eb2434f240dba99f70) )
+ ROM_LOAD( "09", 0x18000, 0x1000, CRC(6df7463d) SHA1(b80c2872fc47b4b604967f176e3931cd992dd692) )
+
+ ROM_REGION( 0x10000, "soundcpu", 0 )
+ ROM_LOAD( "sg.snd", 0xf800, 0x0800, CRC(2fcf6c4d) SHA1(9c4334ac3ff15d94001b22fc367af40f9deb7d57) )
+
+ ROM_REGION( 0x0400, "proms", 0 )
+ ROM_LOAD( "decoder.4", 0x0000, 0x0200, CRC(e6631c23) SHA1(9988723269367fb44ef83f627186a1c88cf7877e) )
+ ROM_LOAD( "decoder.5", 0x0200, 0x0200, CRC(f921c5fe) SHA1(9cebb8bb935315101d248140d1b4503993ebdf8a) )
+ROM_END
+
+ROM_START( splatsc1 )
+ ROM_REGION( 0x19000, "maincpu", 0 )
+ ROM_LOAD( "splatsc1.10", 0x0d000, 0x1000, CRC(6cc2988a) SHA1(bd0648185ab859afc981d4e8ab954ed1f39303e4) )
+ ROM_LOAD( "splatsc1.11", 0x0e000, 0x1000, CRC(ee960115) SHA1(b3a03b14f7ee97d55b948ecc09c5e4006c31f0ce) )
+ ROM_LOAD( "splatsc1.12", 0x0f000, 0x1000, CRC(21916fce) SHA1(6896afd10c30d90b807b60f90fced7114b1812e3) )
+ ROM_LOAD( "splat.01", 0x10000, 0x1000, CRC(1cf26e48) SHA1(6ba4de6cc7d1359ed450da7bae1000552373f873) )
+ ROM_LOAD( "splat.02", 0x11000, 0x1000, CRC(ac0d4276) SHA1(710aba98909d5d63c4b9b08579021f9c026b3111) )
+ ROM_LOAD( "splat.03", 0x12000, 0x1000, CRC(74873e59) SHA1(727c9da682fd10353f3969ef02e9f1826d8cb77a) )
+ ROM_LOAD( "splat.04", 0x13000, 0x1000, CRC(70a7064e) SHA1(7e6440585462b68b62d6d571d83635bf17149f1a) )
+ ROM_LOAD( "splatsc1.05", 0x14000, 0x1000, CRC(6989e923) SHA1(383d831084cf79e3961125142d1e3bf4fad1ac66) )
+ ROM_LOAD( "splatsc1.06", 0x15000, 0x1000, CRC(82b22e55) SHA1(d71c6598f6a43f47f6752c803069efeb877bf1f0) )
+ ROM_LOAD( "splatsc1.07", 0x16000, 0x1000, CRC(e0c4230c) SHA1(2795732725f63e766ee23744147bf002373bc5f7) )
+ ROM_LOAD( "splatsc1.08", 0x17000, 0x1000, CRC(42ff589f) SHA1(72c9b40c9291a6b97f637c6424265b30227d87c6) )
+ ROM_LOAD( "splatsc1.09", 0x18000, 0x1000, CRC(f67564be) SHA1(3fda9032953e4f75df838616d1c7023a1f2e9861) )
+
+ ROM_REGION( 0x10000, "soundcpu", 0 )
+ ROM_LOAD( "splat.snd", 0xf000, 0x1000, CRC(a878d5f3) SHA1(f3347a354cb54ca228fe0971f0ae3bc778e2aecf) )
+
+ ROM_REGION( 0x0400, "proms", 0 )
+ ROM_LOAD( "decoder.4", 0x0000, 0x0200, CRC(e6631c23) SHA1(9988723269367fb44ef83f627186a1c88cf7877e) )
+ ROM_LOAD( "decoder.6", 0x0200, 0x0200, CRC(83faf25e) SHA1(30002643d08ed983a6701a7c4b5ee74a2f4a1adb) )
+ROM_END
+
+ROM_START( robotron201 )
+ ROM_REGION( 0x19000, "maincpu", 0 )
+ ROM_LOAD( "robotron.sba", 0x0d000, 0x1000, CRC(13797024) SHA1(d426a50e75dabe936de643c83a548da5e399331c) )
+ ROM_LOAD( "robotronp.sbb", 0x0e000, 0x1000, CRC(e83a2eda) SHA1(4a62fcd2f91dfb609c3d2c300bd9e6cb60edf52e) )
+ ROM_LOAD( "robotron.sbc", 0x0f000, 0x1000, CRC(645d543e) SHA1(fad7cea868ebf17347c4bc5193d647bbd8f9517b) )
+ ROM_LOAD( "robotron.sb1", 0x10000, 0x1000, CRC(66c7d3ef) SHA1(f6d60e26c209c1df2cc01ac07ad5559daa1b7118) )
+ ROM_LOAD( "robotron.sb2", 0x11000, 0x1000, CRC(5bc6c614) SHA1(4d6e82bc29f49100f7751ccfc6a9ff35695b84b3) )
+ ROM_LOAD( "robotron201.3", 0x12000, 0x1000, CRC(85eb583e) SHA1(b6c4280415515de6f56b358206dc3bd93a12bfce) )
+ ROM_LOAD( "robotron.sb4", 0x13000, 0x1000, CRC(afb1c561) SHA1(aaf89c19fd8f4e8750717169eb1af476aef38a5e) )
+ ROM_LOAD( "robotronp.5", 0x14000, 0x1000, CRC(827cb5c9) SHA1(1732d16cd88e0662f1cffce1aeda5c8aa8c31338) )
+ ROM_LOAD( "robotron.sb6", 0x15000, 0x1000, CRC(bd2c853d) SHA1(f76ec5432a7939b33a27be1c6855e2dbe6d9fdc8) )
+ ROM_LOAD( "robotron.sb7", 0x16000, 0x1000, CRC(49ac400c) SHA1(06eae5138254723819a5e93cfd9e9f3285fcddf5) )
+ ROM_LOAD( "robotron.sb8", 0x17000, 0x1000, CRC(3a96e88c) SHA1(7ae38a609ed9a6f62ca003cab719740ed7651b7c) )
+ ROM_LOAD( "robotron.sb9", 0x18000, 0x1000, CRC(b124367b) SHA1(fd9d75b866f0ebbb723f84889337e6814496a103) )
+
+ ROM_REGION( 0x10000, "soundcpu", 0 )
+ ROM_LOAD( "robotron.snd", 0xf000, 0x1000, CRC(c56c1d28) SHA1(15afefef11bfc3ab78f61ab046701db78d160ec3) )
+
+ ROM_REGION( 0x0400, "proms", 0 )
+ ROM_LOAD( "decoder.4", 0x0000, 0x0200, CRC(e6631c23) SHA1(9988723269367fb44ef83f627186a1c88cf7877e) )
+ ROM_LOAD( "decoder.6", 0x0200, 0x0200, CRC(83faf25e) SHA1(30002643d08ed983a6701a7c4b5ee74a2f4a1adb) )
+ROM_END
+
+ROM_START( robotronp )
+ ROM_REGION( 0x19000, "maincpu", 0 )
+ ROM_LOAD( "robotron.sba", 0x0d000, 0x1000, CRC(13797024) SHA1(d426a50e75dabe936de643c83a548da5e399331c) )
+ ROM_LOAD( "robotronp.sbb", 0x0e000, 0x1000, CRC(e83a2eda) SHA1(4a62fcd2f91dfb609c3d2c300bd9e6cb60edf52e) )
+ ROM_LOAD( "robotron.sbc", 0x0f000, 0x1000, CRC(645d543e) SHA1(fad7cea868ebf17347c4bc5193d647bbd8f9517b) )
+ ROM_LOAD( "robotron.sb1", 0x10000, 0x1000, CRC(66c7d3ef) SHA1(f6d60e26c209c1df2cc01ac07ad5559daa1b7118) )
+ ROM_LOAD( "robotron.sb2", 0x11000, 0x1000, CRC(5bc6c614) SHA1(4d6e82bc29f49100f7751ccfc6a9ff35695b84b3) )
+ ROM_LOAD( "robotron.sb3", 0x12000, 0x1000, CRC(e99a82be) SHA1(06a8c8dd0b4726eb7f0bb0e89c8533931d75fc1c) )
+ ROM_LOAD( "robotron.sb4", 0x13000, 0x1000, CRC(afb1c561) SHA1(aaf89c19fd8f4e8750717169eb1af476aef38a5e) )
+ ROM_LOAD( "robotronp.5", 0x14000, 0x1000, CRC(827cb5c9) SHA1(1732d16cd88e0662f1cffce1aeda5c8aa8c31338) )
+ ROM_LOAD( "robotron.sb6", 0x15000, 0x1000, CRC(bd2c853d) SHA1(f76ec5432a7939b33a27be1c6855e2dbe6d9fdc8) )
+ ROM_LOAD( "robotron.sb7", 0x16000, 0x1000, CRC(49ac400c) SHA1(06eae5138254723819a5e93cfd9e9f3285fcddf5) )
+ ROM_LOAD( "robotron.sb8", 0x17000, 0x1000, CRC(3a96e88c) SHA1(7ae38a609ed9a6f62ca003cab719740ed7651b7c) )
+ ROM_LOAD( "robotron.sb9", 0x18000, 0x1000, CRC(b124367b) SHA1(fd9d75b866f0ebbb723f84889337e6814496a103) )
+
+ ROM_REGION( 0x10000, "soundcpu", 0 )
+ ROM_LOAD( "robotron.snd", 0xf000, 0x1000, CRC(c56c1d28) SHA1(15afefef11bfc3ab78f61ab046701db78d160ec3) )
+
+ ROM_REGION( 0x0400, "proms", 0 )
+ ROM_LOAD( "decoder.4", 0x0000, 0x0200, CRC(e6631c23) SHA1(9988723269367fb44ef83f627186a1c88cf7877e) )
+ ROM_LOAD( "decoder.6", 0x0200, 0x0200, CRC(83faf25e) SHA1(30002643d08ed983a6701a7c4b5ee74a2f4a1adb) )
+ROM_END
+
+ROM_START( robotrontie )
+ ROM_REGION( 0x19000, "maincpu", 0 )
+ ROM_LOAD( "robotrontie.a", 0x0d000, 0x1000, CRC(952bea55) SHA1(80f51d8e7ec62518afad7e56a47e0756f83f813c) )
+ ROM_LOAD( "robotrontie.b", 0x0e000, 0x1000, CRC(4c05fd3c) SHA1(0d727458454826fd8222e4022b755d686ccb065f) )
+ ROM_LOAD( "robotron.sbc", 0x0f000, 0x1000, CRC(645d543e) SHA1(fad7cea868ebf17347c4bc5193d647bbd8f9517b) )
+ ROM_LOAD( "robotron.sb1", 0x10000, 0x1000, CRC(66c7d3ef) SHA1(f6d60e26c209c1df2cc01ac07ad5559daa1b7118) )
+ ROM_LOAD( "robotron.sb2", 0x11000, 0x1000, CRC(5bc6c614) SHA1(4d6e82bc29f49100f7751ccfc6a9ff35695b84b3) )
+ ROM_LOAD( "robotron.sb3", 0x12000, 0x1000, CRC(e99a82be) SHA1(06a8c8dd0b4726eb7f0bb0e89c8533931d75fc1c) )
+ ROM_LOAD( "robotrontie.4", 0x13000, 0x1000, CRC(e8238019) SHA1(0ce29f4bf6bdee677c8e80c2d5e66fc556ba349f) )
+ ROM_LOAD( "robotronp.5", 0x14000, 0x1000, CRC(827cb5c9) SHA1(1732d16cd88e0662f1cffce1aeda5c8aa8c31338) )
+ ROM_LOAD( "robotron.sb6", 0x15000, 0x1000, CRC(bd2c853d) SHA1(f76ec5432a7939b33a27be1c6855e2dbe6d9fdc8) )
+ ROM_LOAD( "robotrontie.7", 0x16000, 0x1000, CRC(3ecf4620) SHA1(3c670a1f8df35d18451c82f220a02448bf5ef5ac) )
+ ROM_LOAD( "robotrontie.8", 0x17000, 0x1000, CRC(752d7a46) SHA1(85dd58d14d527ca75d6c546d6271bf8ee5a82c8c) )
+ ROM_LOAD( "robotron.sb9", 0x18000, 0x1000, CRC(b124367b) SHA1(fd9d75b866f0ebbb723f84889337e6814496a103) )
+
+ ROM_REGION( 0x10000, "soundcpu", 0 )
+ ROM_LOAD( "robotron.snd", 0xf000, 0x1000, CRC(c56c1d28) SHA1(15afefef11bfc3ab78f61ab046701db78d160ec3) )
+
+ ROM_REGION( 0x0400, "proms", 0 )
+ ROM_LOAD( "decoder.4", 0x0000, 0x0200, CRC(e6631c23) SHA1(9988723269367fb44ef83f627186a1c88cf7877e) )
+ ROM_LOAD( "decoder.6", 0x0200, 0x0200, CRC(83faf25e) SHA1(30002643d08ed983a6701a7c4b5ee74a2f4a1adb) )
+ROM_END
+
+/*******************************************************
+ *
+ * Game Driver
+ *
+ *******************************************************/
+
+GAME( 1981, defender2, defender, williams, stargate, williams_state, stargate, ROT0, "Jeff Vavasour", "Defender II", MACHINE_SUPPORTS_SAVE )
+GAME( 1982, splatsc1, splat, williams, splat, williams_state, joust, ROT0, "Williams", "Splat! (sc1 hardware)", MACHINE_SUPPORTS_SAVE )
+GAME( 2012, robotron201, robotron, williams, robotron, williams_state, robotron, ROT0, "Sean Riddle", "Robotron: 2084 (Hacked Patched Blue-201)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, robotronp, robotron, williams, robotron, williams_state, robotron, ROT0, "Christian Gingras / Sean Riddle", "Robotron: 2084 (patched)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, robotrontie, robotron, williams, robotron, williams_state, robotron, ROT0, "Vid Kidz", "Robotron: 2084 (Tie Die)", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/drivers/yiear.cpp b/docs/release/src/hbmame/drivers/yiear.cpp
new file mode 100644
index 00000000000..50fcfddf0fa
--- /dev/null
+++ b/docs/release/src/hbmame/drivers/yiear.cpp
@@ -0,0 +1,27 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/yiear.cpp"
+
+ROM_START( nacho )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "nacho.8", 0x08000, 0x4000, CRC(ad779f38) SHA1(057f05f789261f0b9a0f9d32623c3de10d5ed5e6) )
+ ROM_LOAD( "nacho.7", 0x0c000, 0x4000, CRC(6d9b7c36) SHA1(634c68617df9d3078be85ccaefda3719b9e06bab) )
+
+ ROM_REGION( 0x04000, "gfx1", 0 )
+ ROM_LOAD( "nacho.1", 0x00000, 0x2000, CRC(7f1139ef) SHA1(04872803bcfd468490aa68b6b4b8c6219d0e3805) )
+ ROM_LOAD( "nacho.2", 0x02000, 0x2000, CRC(cd8be306) SHA1(7e6fe875e808def4da7d5b19e291481d736e418c) )
+
+ ROM_REGION( 0x10000, "gfx2", 0 )
+ ROM_LOAD( "nacho.5", 0x00000, 0x4000, CRC(2da87538) SHA1(37f17b8a6e1ad2fc2a94f90e54fa9ae8a5380b45) )
+ ROM_LOAD( "nacho.6", 0x04000, 0x4000, CRC(b48393a9) SHA1(d8f4011423027e9f22f3a62e16e9f77e0fbfdb2c) )
+ ROM_LOAD( "nacho.3", 0x08000, 0x4000, CRC(75bad724) SHA1(b6fad1771b7600867de3cafddd7555a8ab0f4f98) )
+ ROM_LOAD( "nacho.4", 0x0c000, 0x4000, CRC(3ecb72e4) SHA1(4fc494bf3025b3b9fd05fc9f4f6d865039b3ffc8) )
+
+ ROM_REGION( 0x0020, "proms", 0 )
+ ROM_LOAD( "407c10.1g", 0x00000, 0x0020, CRC(c283d71f) SHA1(10cd39f4e951ba6ca5610081c8c1fcd9d68b34d2) )
+
+ ROM_REGION( 0x2000, "vlm", 0 )
+ ROM_LOAD( "407_c09.8b", 0x00000, 0x2000, CRC(f75a1539) SHA1(f139f6cb41351eb81ee47d777db03012aa5fadb1) )
+ROM_END
+
+GAME( 2009, nacho, yiear, yiear, yiear, driver_device, 0, ROT0, "Gatinho", "Nacho Libre", MACHINE_SUPPORTS_SAVE )
diff --git a/docs/release/src/hbmame/hbmame.cpp b/docs/release/src/hbmame/hbmame.cpp
new file mode 100644
index 00000000000..299d7cbf496
--- /dev/null
+++ b/docs/release/src/hbmame/hbmame.cpp
@@ -0,0 +1,24 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+/***************************************************************************
+
+ hbmame.c
+
+ Specific (per target) constants
+
+****************************************************************************/
+
+#include "emu.h"
+
+#define APPNAME "HBMAME"
+#define APPNAME_LOWER "hbmame"
+#define CONFIGNAME "hbmame"
+#define COPYRIGHT "Copyright Nicola Salmoria\nand the MAME team\nhttp://mamedev.org"
+#define COPYRIGHT_INFO "\nMAME portions are copyright Nicola Salmoria and the MAME team.\n" \
+ "HBMAME portions are copyright Robbbert."
+
+const char * emulator_info::get_appname() { return APPNAME;}
+const char * emulator_info::get_appname_lower() { return APPNAME_LOWER;}
+const char * emulator_info::get_configname() { return CONFIGNAME;}
+const char * emulator_info::get_copyright() { return COPYRIGHT;}
+const char * emulator_info::get_copyright_info() { return COPYRIGHT_INFO;}
diff --git a/docs/release/src/hbmame/hbmame.lst b/docs/release/src/hbmame/hbmame.lst
new file mode 100644
index 00000000000..45d2b2e8475
--- /dev/null
+++ b/docs/release/src/hbmame/hbmame.lst
@@ -0,0 +1,2994 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+/******************************************************************************
+
+ hbmame.lst
+
+ List of all enabled drivers in the system.
+
+****************************************************************************
+
+
+ /* 1942 */
+1942 //parent
+1942h
+1942c64 // 1942 with C64 sounds (by minwah)
+1942fpa // 1942 with free play (by cmonkey)
+galagax /* Jerky - Chris Moore hack of 1942 */
+
+ /* 1943 */
+1943 //parent
+1943h /* Hacked to have the vendor name and phone number */
+
+ /* 8080bw */
+invaders //parent
+tst_invd // test rom
+invmulti //parent
+invmultim1a
+invmultim2a
+invmultim2c
+invmultim3a
+invmultip
+invmultis1a
+invmultis2a
+invmultis3a
+invmultit3d
+invrvnge //parent for ir
+
+ /* arkanoid */
+arkanoid //parent
+akblc2dx /* hack */
+akgcdx /* hack */
+aktaytdx /* hack */
+arkll32 /* LLMAME 32 */
+
+ /* asteroid */
+asteroid //parent
+asteroid6 /* Clay Cowgill Bullet Hack */
+astdelux4
+starslayer // star destroyer, hack of asteroid2
+//amg // test only
+
+ /* astrocde */
+tst_gorf /* Gorf test rom */
+tst_gor1 /* Gorf test rom */
+tst_wow2 /* Wow test rom */
+tst_wow3 /* Wow test rom */
+
+ /* astrof */
+astrof //parent
+astrofbl /* Black Background */
+
+ /* asuka */
+asuka //parent
+asukac // chinese
+
+ /* atarisy1 */
+atarisy1 //bios
+indytemp //parent
+ataris1hw
+
+ /* atari_s1 */
+//atarians //parent
+//atarianb /* hack for emulators */
+
+ /* bagman */
+bagman //parent
+bagturbo
+pickin //parent
+pickinpi /* Color Hack by Pi */
+
+ /* blktiger */
+blktiger //parent
+blkdrgonk /* Korean Translation */
+
+ /* bombjack */
+bombjack //parent
+bmbjckgr /* Vag @ GreekRoms */
+bombjckb /* bootleg */
+bombjred /* hack by unknown French person */
+
+ /* btime */
+btime //parent
+brubber //parent
+lnc //parent
+bnjr /* Bump N Jump Reverse Mod */
+pnc /* Pac N Chase */
+stictime /* Marks Hack of btime */
+vecbtime /* T-Bone hack of Burgertime */
+
+ /* bublbobl */
+bublbobl //parent
+boblcave
+bublcave
+bublcave10
+bublcave11
+bbaladar /* Aladar Bootleg */
+bb2bmh /* Overclocked Bubblebobble Memories Hack */
+bbhackv1 /* Overclocked Level Hack */
+bbredux1 /* Punji - Bubble Bobble Redux with Level Skip */
+bbredux2 /* Punji - Bubble Bobble Redux with Level Skip and Game Continue */
+bbredux3 /* Punji - Bubble Bobble Redux with Level Skip, Game Continue, and High Score Save */
+bublbobf /* Arkatrad */
+sboblboblh /* level select hack */
+
+ /* bwidow */
+spacwarp /* Jeff Hendrix - Proto on Space Duel HW */
+
+ /* cave */
+ddonpach //parent
+ddonpacha // trap15 hack
+pwrinst2 //parent
+pwrinst2h /* 2013 Hack by TT */
+pwrinst2z
+
+ /* cball */
+cball //parent
+cballfix // With MASH 'fixed' gfx rom
+
+ /* cclimber */
+ckong //parent
+cclimber //parent
+tongypac
+ckongfix /* Graphics Fix */
+ckonga2
+ckonga3
+cclimbrm /* Tim Arcadecollecting Modded Version */
+
+ /* centiped */
+centiped //parent
+milliped //parent
+astroped /* Twisty Hack of Centipede */
+astropd2 /* Twisty Hack of Centipede */
+cemescry /* NoSync hack of Centipede */
+killiped /* The Dog hack of Centipede */
+pacipede /* Jeff Coleburn hack of Centiped */
+silliped /* Andy hack of Millipede */
+vectiped /* The Dog hack of Centipede */
+vectrped /* T-Bone hack of Centipede */
+centipb /* bootleg of centipdb */
+magworm2 /* bootleg of magworm */
+
+ /* cinemat */
+bbugtest /* Test Rom */
+
+ /* commando */
+commando //parent
+comdelux /* Twisty Hack */
+comdlux1 /* Twisty Hack */
+
+ /* cps1 */
+3wonders // parent
+captcomm // parent
+cawing // parent
+dino // parent
+ffight // parent
+ghouls // parent
+kod // parent
+knights // parent
+megaman // parent
+pnickj // parent
+punisher // parent
+sf2 // parent
+sf2ce // parent
+slammast // parent
+strider // parent
+wof // parent
+
+ /* cps1mis */
+3wondrud
+//captcocc // not working
+captcomc // chinese
+captcomh
+captcoud
+//captcovs // not working
+cawingb
+cps1demo /* Charles Doty */
+cps1frog /* Charles Doty */
+cps1testm /* Cal2 */
+cps1testma /* Cal2 */
+cps1tests /* Cal2 */
+cps1testsa /* Cal2 */
+daimakb /* Found in Mame Plus */
+dino08h2
+dino08h3
+dino08hp
+dinob /* 1993 Cadillacs and Dinosaurs (bootleg) */
+dinobt
+dinobtpp
+dinocgba
+dinocgbb
+dinocgbc
+dinoeh
+dinoex
+dinoh /* 1993 Cadillacs and Dinosaurs (Hack) */
+dinoha /* 1993 Cadillacs and Dinosaurs (Hack) */
+dinohb /* 1993 Cadillacs and Dinosaurs (Hack) */
+dinohp
+//dinohx // crashes in the "underground", demo sound only works on first run.
+dinojp // 2010 Pipi899, RockWall, Zhyxxxx
+dinorp
+//dinosf2
+dinoslice
+dinouphp
+dinoz /* Boss Hack */
+ffightb
+knight21 // debug
+//knightsa // - rom missing
+knightsb2
+knightsh /* 1991 Knights of the Round (Hack) */
+knightsha /* 1991 Knights of the Round (Hack) */
+knightsjb
+knightsro // Sebastian Mihai - Romanian translation 2015
+knightud
+//kodd // not working
+kodh
+kodsp
+//kodud // not working
+pnicku /* 06/08/1994 (c) 1994 + Compile license (Japan) not listed on Capcom's site */
+punisherb /* Found in neht build */
+punisherf /* Flash version 24/7/2009 by Zhyxxxx */
+punisherje1
+punisherjh
+punisherjh1
+punisherjha
+punisherud1
+punisherud2
+sf2bhj
+sf2c // sf2, chinese
+sf2cebr /* hack, Brasil 920313 */
+sf2ced /* hack, Hispanic 990804 */
+sf2ceda /* hack, Hispanic 990804 */
+sf2ceh /* hack, Hispanic 990804 */
+sf2cehk
+sf2cehp
+sf2cejem
+sf2jbh // sf2jbh2014
+sf2koryuh /* Hack by TT */
+sf2h9 /* Found in Mame Plus */
+sf2h10 /* Found in Mame Plus */
+sf2h11 /* Found in Mame Plus */
+sf2h12 /* Found in Mame Plus */
+sf2h13 /* hack */
+sf2pun /* Drakon, Punishment Edition v1 Final */
+sf2sl73a /* Drakon, Sheng Long v7.3a */
+sf2th
+sf2tha
+sf2tlona /* hack, Tu Long set 1 */
+sf2tlonb /* hack, Tu Long set 2 */
+sf2tlonc /* hack, Tu Long set 3 */
+sf2turyu /* hack, Tu Long prototype */
+sf2yyc3d5
+sf2yyc3g
+sf2yyc6
+sk2h1 /* 1999 Legend of Three Kingdoms' Heroes / Sanguo Yingxiong Zhuan */
+sk2h1q // qsound version of sk2h1
+sk2h2 /* 1999 Legend of Three Kingdoms' Heroes / Sanguo Yingxiong Zhuan */
+sk2h2q
+sk2h3 // mame sgyxz for testing
+sk2h4q
+sk2h5q
+sk2h6q
+sk2h11 /* 1992 Sangokushi II (Hack 1) */
+sk2h12 /* 1992 Sangokushi II (Hack 2) */
+sk2h13 /* 1992 Sangokushi II (Hack 3) */
+sk2h14 /* Chinese language */
+sk2h15 // wofaehp
+sk2h16 // wofahp2
+sk2h21 /* 1997 Three Sword Masters / San Jian Sheng */
+sk2h22 // San Jian Sheng (Chinese bootleg of Sangokushi II
+sk2h31 /* 1997 Three Holy Swords / San Sheng Jian */
+sk2h32 /* 1997 Three Holy Swords / San Sheng Jian */
+sk2h33 /* 1995 Holy Sword Three Kingdoms / Sheng Jian San Guo */
+sk2h34 /* 1995 Holy Sword Three Kingdoms / Sheng Jian San Guo */
+sk2h35 /* 1995 Holy Sword Three Kingdoms / Sheng Jian San Guo */
+sk2h31q
+sk2h32q
+sk2h33q
+sk2h34q
+sk3p1 // wofchdx
+sk3p2 // wofchdx1
+sk3p3 // wofchdx2
+slammastud
+stridergf // fix unwanted black specks
+stridergh // as above, and uncensored
+tk2c1 // wofbio
+tk2c2 // wofbt
+tk2c3 // wofctj
+tk2c4 // wofdy
+tk2c5 // wofdyg
+tk2c6 // woffh
+tk2c7 // wofgyc
+tk2c8 // wofgyq
+tk2c9 // wofhgz
+tk2c10 // wofhzj
+tk2c11 // wofjjq
+tk2c12 // wofjqz
+tk2c13 // wofmr
+tk2c14 // wofsbl
+tk2c15 // wofsjj
+tk2c16 // wofsz
+tk2c17 // wofyjs
+tk2c18 // wofyxg
+tk2c19 // wofzhs
+tk2c20 // wofzhy
+tk2c21 // wofzy2
+tk2c22 // wofzy3
+tk2c23 // wofzyq
+tk2h1 // wofjh
+tk2h2 // wofjhb, was dynwarjh before rom loading was figured out
+tk2h3 // wofjhc, was dynwarj2 before rom loading was figured out
+tk2h4 // wofjh2
+tk2h5 // wofjcn
+tk2h6 // wofjd
+tk2h7 // wofjehp
+tk2h8 // wofjhdwb
+tk2h9 // wofjhp2
+tk2h10 // wofjm
+tk2h11 // wofjmjp
+tk2h12 // wofjpsrw
+tk2h13 // wofjrabh
+tk2h14 // wofjrlb
+//tk2h15 // wofjrpbs exception in first demo
+//tk2h16 // wofjv10s exception in first demo
+tk2h17 // wofjzcr1
+tk2h18 // wofjzero
+tk2p2 // wofch_v3
+tk2p3 // wofchspp
+wofb
+wofch // tk2p1
+wofes
+woffr /* Neo-Arc French Trans */
+wofr1h
+wofsf2
+wofud
+
+ /* cps2 */
+// CPS2 PARENTS ***
+1944
+19xx
+armwar
+avsp
+batcir
+csclub
+cybots
+ddsom
+ddtod
+dimahoo
+dstlk
+ecofghtr
+gigawing
+hsf2
+megaman2
+mmatrix
+mpang
+msh
+mshvsf
+mvsc
+nwarr
+progear
+ringdest
+sfa
+sfa2
+sfa3
+sfz2al
+sgemf
+spf2t
+ssf2
+ssf2t
+vhunt2
+vsav
+vsav2
+xmcota
+xmvsf
+// CPS2 HACKS ***
+1944fp
+ddsomavs
+ddsomchs
+ddsomhp
+ddsomjfs
+halfway // progear hack by The Halfway House
+mshjphp
+mshvsemb
+mshvsfjh
+mshvsfjphp
+mshyh
+mvscjemb
+mvscjphp
+//mvscrcp // reboots shortly after start
+//mvscuh // reboots shortly after start
+pfghtjrm
+suicide /* Razoola */
+suicide2 /* Razoola */
+sfa2h
+sfa3br
+sfa3dp
+sfa3nc
+sfa3nch
+sfa3sp2
+sfa3spp
+sfa3uhd
+sfz2abr
+sfz2ajhp
+sfz2aldp
+sfz2aldp2
+sfz2jyh
+sfz3jb
+sfz3jemb
+sfz3jhp
+sfz3jsep
+sfzjboss
+sfzjyh
+sgemfch
+spf2tb // boss hack
+ssf2tfp
+ssf2tfr
+ssf2tpls
+ssf2xjhy
+ssf2xjjs
+ssf2xjnc
+ssf2zhp
+vampjb
+vsav2emb
+xmcotajb
+xmcotajphp
+xmvsfjphp
+xmvsfrm
+xmvsfryh
+// CPS2 PHOENIX ***
+1944d
+1944da
+19xxd
+armwar1d
+avspd
+batcird
+csclub1d
+cybotsud
+cybotsjd
+dimahoud
+ddsomud
+ddtodd
+dstlku1d
+ecofghtrd
+gigaman2
+gigawingd
+gigawingjd
+hsf2d
+megamn2d
+mmatrixd
+mpangjd
+mshud
+mshvsfu1d
+mvscud
+nwarrud
+progearud
+progearjd
+progearjbl
+ringdstd
+sfa3ud
+sfad
+sfaud
+sfz2ad
+sfz2ald
+sfz2jd
+sfz3jr2d
+sgemfd
+spf2td
+ssf2r1d
+ssf2td
+spf2xjd
+ssf2tad
+ssf2tbd
+ssf2ud
+ssf2xjr1d
+vhunt2d
+vsavd
+vsav2d
+xmcotar1d
+xmvsfu1d
+
+ /* cps3 */
+jojo //parent
+jojoba //parent
+redearth //parent
+sfiii //parent
+sfiii2 //parent
+sfiii3 //parent
+jojobbh2
+jojobbss
+jojobpow
+jojonbss
+jojonpow
+redearex
+redeartn // no-cd version
+redeartno // no-cd version with old roms from multijet
+sfiiibhp
+sfiiipmp
+sfiii2bh
+sfiii2np
+sfiii2pl
+sfiii3an // hack
+sfiii3bh
+sfiii3mh
+sfiii3ng
+sfiii3np
+sfiii4rd // hack
+
+ /* dec0 */
+baddudes //parent
+baddudef /* Arkatrad */
+decodemo /* Charles Doty */
+
+ /* dkong */
+dkong //parent
+dkong2m
+dkongex /* Jeff's Hack with Foundry Level */
+dkongf
+dkongp /* Fix for level 22 kill screen by Don Hodges */
+dkongpac /* Tim Appleton - Donkey Kong with Pacman graphics */
+dkongpe
+dkongx
+dkongx11
+dkrainbow
+dkrdemo
+kong2600 /* Vic Twenty George hack of Donkey Kong */
+nadkong
+
+ /* docastle */
+dorunrun //parent
+sdreturn
+
+ /* dotrikun */
+dotrimjr
+mineswp /* Minesweeper */
+
+ /* ertictac */
+//armdemo /* Charles Doty */ // totally broken
+
+ /* exidy */
+targ //parent
+targtest // Targ Test Rom
+teetert //parent
+teetertfp // free play hack
+
+ /* exerion */
+exerion //parent
+exerionj /* Japanese version */
+exeriongr /* Vag @ GreekRoms 2004 */
+
+ /* fcrash */
+fcrash
+captcommb2
+ffightbl
+ffightbla
+kodb
+
+ /* flower */
+flower
+flowerj
+
+ /* galaga */
+galaga //parent
+xevious //parent
+galagads
+galagab2
+galaga84
+nebulbee
+galaga99 /* Jerky and Sil hack of Galaga */
+galagabl /* Namco 1982 version of Gallag */
+galagaf /* Fast Shoot Hack */
+galagap /* Patch to fix level 0 crash, by Don Hodges */
+galagix /* Galaga Meets Phoenix */
+galagost /* Twisty Hack of Galaga */
+galagosb /* Twisty Hack of Galaga 20021128 */
+galaped /* Cary Barnhard hack of Galaga */
+galgaxin /* T-Bone hack of Galaga */
+terror /* Galaga Terrorist Hack */
+galagaef /* Galaga Terrorist Hack */
+vgalaga /* Galaga Vector Hack */
+vgalagam
+vgalagaf
+battlesh /* Battles 2002 */
+gaous /* Xevious Hack */
+mrdonm /* Mr Do Nightmare */
+sxvioush /* Super Xevious 2002 */
+xevioush /* Xevious 2002 */
+xviousah
+xeviousp /* Xevious Plus! */
+xevious3 /* Xevious 2003 */
+xevious4 /* Xevious 2004 */
+xevious5 /* Xevious 2005 */
+xeviblk /* Xevious Black */
+
+ /* galaxian */
+amidar //parent
+mooncrst //parent
+pisces //parent
+scramble //parent
+frogger //parent
+amidarf /* ArkaMAME */
+amidargr /* GreekRoms 2004 */
+andromd /* hack - Renamed to avoid confusion with andromed (ex TestDriver) */
+buglaxn /* The Dog hack of Galaxian */
+fourplay
+galaxiab /* unknown hack of Galaxian */
+galaxkyo /* unknown hack of Galaxian Part X */
+galaxni /* Petaco bootleg of Galaxian Part X */
+galinvad /* T-Bone hack of Galaxian */
+galnamco /* The Original Namco */
+gaylaxn /* The Dog hack of Galaxian Part X */
+jumpbugx // extra sounds
+kazzy
+monstrz // monster zero hacked to partially work
+mooncmst
+mooncrs5 /* clone of fantazia */
+offender /* Chris Henry hack of scramble */
+starfgh2 /* Bootleg of Pisces */
+superdog /* Jerky Hack Hack of scramble */
+trukker /* Grimlick hack of Frogger */
+tst_frog /* JROK */
+vectrgal /* T-Bone hack of Galaxian */
+videight /* 8in1 multigame */
+wbeast /* Bootleg of War-of-Bug */
+
+ /* gauntlet */
+gaunt2 //parent
+gaunt2ls // Orange Elf - new levels
+gaunt2s /* Speed Hack */
+gaunt2f // graphics hack
+
+ /* gottlieb */
+qbert //parent
+711qbert /* Hack of Mello Yellow QBert */
+pbert
+qbertb
+vbert
+
+ /* ir */
+ir // extra sounds
+
+ /* itech8 */
+itecdemo /* Charles Doty */
+
+ /* jrpacman */
+jrpacman //parent
+jr1000 /* Blue Justice */
+jr1000_2 /* Blue Justice */
+jr2000 /* Blue Justice */
+jr2001 /* Blue Justice */
+jr2001p /* Blue Justice */
+jr2002 /* Blue Justice */
+jr2002p /* Blue Justice */
+jr2003 /* Blue Justice */
+jr2003p /* Blue Justice */
+jr2004 /* Blue Justice */
+jr2004p /* Blue Justice */
+jr2005 /* Blue Justice */
+jr2005p /* Blue Justice */
+jr3000p /* Blue Justice */
+jr4000p /* Blue Justice */
+jr5000p /* Blue Justice */
+jr6000 /* Blue Justice */
+jr7000 /* Blue Justice */
+jr7000p /* Blue Justice */
+jr8000 /* Blue Justice */
+jr8000p /* Blue Justice */
+jr9000p /* Blue Justice */
+jrdeluxe /* Blue Justice */
+jrhearts
+jrpacad
+jrpacjr /* Blue Justice */
+jrpacjrp /* Blue Justice */
+jrpacp /* Blue Justice */
+jrvectr /* T-Bone hack of Jr. Pac-Man */
+jrfast
+jrcheat
+jrspeed
+jryumyum /* Tim Appleton: Jr.Pacman vs Yum Yum */
+
+ /* kaneko */
+shogwarr //parent
+fjbusterbh
+shogwarrbh
+
+ /* kof94 */
+kof94b
+kof94bc
+kof94blk
+kof94br
+kof94cg
+kof94cn
+kof94cyk
+kof94eh
+//kof94h rom missing
+kof94k
+kof94kh
+kof94qaq
+kof94ru
+kof94ruj
+kof94rz
+kof94seh
+kof94sri
+kof94y
+
+ /* kof95 */
+kof95b
+kof95bln
+kof95brz
+kof95ce
+kof95d
+kof95eh
+kof95hp
+kof95k
+kof95neo
+kof95pjc
+kof95ru
+kof95seh
+kof95xg
+kof95y
+
+ /* kof96 */
+kof96a
+kof96ae
+kof96ae1
+kof96ae1a
+kof96ae1b
+kof96b
+kof96b1
+kof96bb
+kof96c
+kof96cbi
+kof96ckvs
+kof96cn
+kof96cr
+kof96chj
+kof96de
+kof96dr1
+kof96eh
+kof96ep
+kof96ep2
+kof96ep3
+kof96evo
+kof96evoo
+kof96evsp
+kof96ey
+kof96hp
+kof96hp1
+kof96hpr
+kof96k
+kof96k1
+kof96k3
+kof96k3o
+kof96kt // supposedly a korean translation, but looks the same to me.
+kof96lx
+kof96ncd
+kof96oib //IsmaMj
+kof96oib2 //IsmaMj
+kof96oih
+kof96oir
+kof96pch
+kof96pjc
+kof96pm
+kof96rcw
+kof96rf
+kof96rfs
+kof96rfsa
+kof96ri
+kof96ri1
+kof96ri2
+kof96ri3
+kof96ri4
+kof96ri5
+kof96rm
+kof96rp
+kof96rp1
+kof96rss
+kof96ru
+kof96ru2
+kof96rw
+kof96ryu
+kof96seh
+
+ /* kof97 */
+kof97aa
+kof97ae
+kof97ae1
+kof97aot
+kof97bh
+kof97bng
+kof97bs
+kof97cb2
+kof97chris
+kof97cn
+kof97co // combo 2010-02-07
+kof97co6 // combo 2006
+kof97cr
+kof97chl
+kof97chl2
+kof97cy
+kof97dse
+kof97eh
+kof97eh2
+kof97eho
+kof97ei // combo 2010-02-07 different colours
+kof97evo
+kof97evoa
+kof97frb
+kof97irgc
+kof97irgc2
+kof97hk
+kof97hl
+kof97hxd
+kof97ice
+kof97kai
+kof97kp
+kof97kp1
+kof97lb
+kof97lc
+kof97lr
+kof97m
+kof97mit
+kof97mj
+kof97nd
+kof97ne
+kof97neo
+kof97nude
+kof97phl
+kof97pj
+kof97pjc
+kof97pl2
+kof97pl3
+kof97pla
+kof97plc
+kof97plus
+kof97pm
+kof97ps
+kof97rev
+kof97ribe
+kof97rk
+kof97rst
+kof97rst2
+kof97rst3
+kof97rv
+kof97saw
+kof97sex
+kof97shi
+kof97sm
+kof97svs
+kof97svsb2
+kof97sw
+kof97tse
+kof97wh
+kof97wpls
+kof97xbt
+kof97xi
+kof97xp
+kof97xt
+kof97xt1
+kof97xxx
+kof97y
+kof97ya
+kof97yb
+kof97ye
+kof97yg
+kof97yh
+kof97yk
+kof97yk1
+kof97yk2
+kof97yk83
+kof97yk85
+kof97yl
+kof97yl2
+kof97yo
+kof97z
+kof97zm
+
+ /* kof98 */
+kof98aas
+//kof98ae //test only, do not enable
+kof98ae0 //black splashes all over fight scene where cars speed past
+kof98ae1 //black splashes all over fight scene where cars speed past
+kof98ae2 //black splashes all over fight scene where cars speed past
+kof98ae3 //black splashes all over fight scene where cars speed past
+kof98ae20160308 //black splashes all over fight scene where cars speed past
+kof98ae20160827 //black splashes all over fight scene where cars speed past
+kof98bge
+kof98bh
+//kof98bvi // reboots in first demo
+kof98c2006
+kof98c20060214 // date cannot be confirmed
+kof98c20070720 // sometimes reboots itself
+kof98c20070923 // sometimes reboots itself
+kof98c20080330 // sometimes reboots itself while in China with Benimaru
+kof98c20080524 // sometimes reboots itself
+kof98c20080616 // sometimes reboots itself
+kof98c20080712 // sometimes reboots itself
+kof98c20090620 // sometimes reboots itself
+kof98c20090923
+kof98c20100214
+kof98c20100304
+kof98c20110114
+kof98c20110314
+kof98c20120116
+kof98c20120915
+kof98c20130213
+kof98c20130311
+kof98c20130509
+kof98c20130528
+kof98c20130617
+kof98c20130808
+kof98c20130820
+kof98c20131113
+kof98c20140101
+kof98c20140110
+kof98c20140118
+kof98c20140204
+kof98c20140213
+kof98c20140217
+kof98c20140228
+kof98c20140302
+kof98c20140310
+kof98c20140317
+kof98c20140403
+kof98c20140412
+kof98c20140416
+kof98c20140419
+kof98c20140428
+kof98c20140504
+kof98c20140524
+kof98c20140606
+kof98c20140620
+kof98c20140717
+kof98c20140809
+kof98c20140816
+kof98c20140824
+kof98c20140906
+kof98c20140924
+kof98c20141002
+kof98c20141020
+kof98c20150201
+kof98c20150228
+kof98c20150302
+kof98c20150310
+kof98c20150330
+kof98c20150528
+kof98c20150614
+kof98c20150705
+kof98c20150729
+kof98c20150827
+kof98c20151103
+kof98c20151108
+kof98c20151110
+kof98c20151223
+kof98c20160320
+kof98c20160907
+kof98cd
+kof98cd1
+kof98cd2
+kof98ch
+kof98ch1
+kof98chl
+kof98chris
+kof98cn
+kof98cn1
+kof98cos
+kof98cos1
+kof98cos2
+kof98cta // (kof98c20080801) - sometimes reboots itself
+kof98dc
+kof98ecm
+kof98ehr
+kof98evl
+kof98evo
+kof98evo2
+kof98evr
+kof98f
+kof98fr
+kof98fro
+kof98fro2
+kof98frp //slutfest
+kof98fv
+kof98fv2
+kof98gold
+kof98hk
+kof98ice
+kof98ico
+kof98iori
+kof98izh
+kof98jh
+kof98k95
+kof98klc
+kof98lb
+kof98lv
+kof98m
+kof98mev
+kof98mix
+kof98nc
+kof98ncdh
+kof98new
+kof98pjc
+kof98rh
+kof98rh1
+kof98rl
+kof98rm
+kof98rsa
+kof98rup
+kof98seh
+kof98seho
+kof98sof
+kof98sp
+kof98sp2
+kof98sr
+kof98sv
+kof98tim
+kof98ul
+kof98ur
+kof98urf
+kof98wh
+kof98wh1
+kof98wh2
+kof98xi
+kof98y
+kof98yh
+kof98zy
+
+ /* kof99 */
+kof99ab
+kof99ae /* Anniversary Edition */
+kof99ae0
+kof99ae20140408
+kof99ae20140624
+kof99ae20150121
+kof99ae20150520
+kof99ae20150711
+kof99ae20160411
+kof99ae20160419
+kof99aes
+kof99bh
+kof99bhp2
+kof99bhs
+kof99bs
+kof99bs2
+kof99ch
+kof99chf
+kof99co
+kof99co2
+kof99d
+kof99eh
+kof99ehr
+kof99eur
+kof99eur1
+kof99eur2
+kof99eur3
+kof99eur4
+kof99ev2
+kof99evo
+kof99evos
+kof99fc
+kof99fc0
+kof99fc1
+kof99fc2
+kof99fix
+kof99fix1
+kof99fix2
+kof99fmi
+kof99hbi
+kof99hp
+kof99iori
+kof99jh
+kof99jho
+kof99kp
+kof99lb
+kof99m
+kof99nd
+kof99ndh
+kof99ndis
+kof99nevo
+kof99ob
+kof99ob2
+kof99pb
+kof99phl
+kof99pjc1
+kof99pjc2
+kof99pjc3
+kof99pjco
+kof99pk
+kof99pko
+kof99pm
+kof99pt
+kof99py
+kof99r
+kof99rd
+kof99rev
+kof99revo
+kof99roll
+kof99rp
+kof99rp0
+kof99rp1
+kof99rp2
+kof99rp3
+kof99rp4
+kof99rp5
+kof99rp6
+kof99rp7
+kof99rp8
+kof99rp9
+kof99rpa
+kof99rpb
+kof99rpc
+kof99rpp
+kof99rr
+kof99rs
+kof99rsm
+kof99rsp
+kof99seh
+kof99sp
+kof99spd
+kof99sr
+kof99srr
+kof99srr1
+kof99the4
+kof99the42
+//kof99vor // corrupt gfx
+kof99wet
+kof99wh1
+kof99wh2
+kof99wh3
+kof99wh4
+kof99xpsa
+kof99xpsf
+kof99xpsp
+kof99xxx
+kof99y
+kof99yb
+kof99yd
+
+ /* kof2000 */
+kof2000d
+kof2000ev
+kof2000r
+kof2kbh
+kof2kbj
+kof2kbsd
+kof2kce
+kof2kch
+kof2kcp
+kof2keh
+kof2kehr
+kof2kevo
+kof2kevo1
+kof2kevo2
+kof2kevo3
+kof2kgbh
+kof2kgold
+kof2kice
+kof2kiori
+kof2kjlc
+kof2kkf1
+kof2kkvs
+kof2kkzs
+kof2knd
+kof2kpjc
+kof2kpjc1
+kof2kpjc2
+kof2kpjc3
+kof2kpls
+kof2krm
+kof2krp
+kof2kryu
+kof2kseh
+kof2kst
+kof2kwh
+kof2kwh2
+kof2kxxx
+kof2ky
+kof2kyd
+kof2kyg
+kof2kz
+kof2kzs
+
+ /* kof2001 */
+kof2001d
+kof2001n
+kof2k1ay
+kof2k1b
+kof2k1b1
+kof2k1b3
+kof2k1b4
+kof2k1bd2
+kof2k1bh
+kof2k1bh1
+kof2k1bs
+kof2k1bs2
+kof2k1ce
+kof2k1cfc
+kof2k1cf1
+kof2k1ch
+kof2k1clr
+kof2k1cp
+kof2k1cp1
+kof2k1cp2
+kof2k1cp3
+kof2k1cp4
+kof2k1cp5
+kof2k1cp6
+kof2k1cp7
+kof2k1cr
+kof2k1eh
+kof2k1ehc
+kof2k1ehr
+kof2k1gm
+kof2k1guan
+kof2k1ha
+kof2k1ha2
+kof2k1hao
+kof2k1hb
+kof2k1hgm
+kof2k1ice
+kof2k1ic2
+kof2k1k3o
+kof2k1k32
+kof2k1k33
+kof2k1k34
+kof2k1k35
+kof2k1k36
+kof2k1k37
+kof2k1k38
+kof2k1k39
+kof2k1k3a
+kof2k1k3b
+kof2k1k3c
+kof2k1k3d
+kof2k1k3e
+kof2k1k3f
+kof2k1k3g
+kof2k1k3h
+kof2k1ki
+kof2k1lse
+kof2k1mk2
+kof2k1mk
+kof2k1mke
+kof2k1pa
+kof2k1pa2
+kof2k1pjc
+kof2k1pjo
+kof2k1pj1
+kof2k1pj2
+kof2k1pj3
+kof2k1pls
+kof2k1rm
+kof2k1rp
+kof2k1rp0
+kof2k1rp1
+kof2k1rpo
+kof2k1ru
+kof2k1ru0
+kof2k1seh
+kof2k1sob
+kof2k1st
+kof2k1st2
+kof2k1wh
+kof2k1z1
+kof2k1z2
+//kf2k1pa
+//kf2k1pls
+
+ /* kof2002 */
+kof200215
+kof2002d
+kof2002x
+kof2k2ath
+kof2k2b // no sound in attract mode
+kof2k2b1
+kof2k2bd //not working
+kof2k2bh
+kof2k2bjh
+kof2k2bjo
+kof2k2bl3
+kof2k2bl4
+kof2k2bld
+kof2k2blood2
+kof2k2br
+kof2k2br1
+kof2k2br2
+kof2k2bs
+kof2k2c2
+kof2k2cf1
+kof2k2cf2
+kof2k2cf3
+kof2k2cfc
+kof2k2ch
+kof2k2chl
+kof2k2cl2
+kof2k2cl3
+kof2k2cn
+kof2k2cori
+kof2k2dbh
+kof2k2e1
+kof2k2e2
+kof2k2e3
+kof2k2ehr
+kof2k2er2
+kof2k2er3
+kof2k2er4
+kof2k2erx
+kof2k2evo
+kof2k2evo2
+kof2k2fy
+kof2k2gc
+kof2k2gc2
+kof2k2gf
+kof2k2green
+kof2k2ht
+kof2k2ibp
+kof2k2ic1
+kof2k2ic2
+kof2k2ice
+kof2k2jc
+kof2k2js
+kof2k2js2
+kof2k2js4
+kof2k2k2
+kof2k2k3o
+kof2k2k32
+kof2k2k33
+kof2k2k34
+kof2k2k35
+kof2k2k36
+kof2k2k37
+kof2k2k38
+kof2k2k39
+kof2k2k3a
+kof2k2k3b
+kof2k2k3c
+kof2k2k3d
+kof2k2k3e
+kof2k2k3f
+kof2k2k3g
+kof2k2kai
+kof2k2kc
+kof2k2kc2
+kof2k2kk
+kof2k2lb // no sound in attract mode
+kof2k2leon
+kof2k2mcr
+kof2k2moi2
+kof2k2moir // no sound in attract mode
+kof2k2mp1 /* Magic Plus */
+kof2k2mp3 /* Magic Plus III - Ismamj */
+kof2k2mpu
+kof2k2ngp
+kof2k2nu
+kof2k2olp
+kof2k2omg
+kof2k2omg8
+kof2k2omg9
+kof2k2omg9b
+kof2k2on
+kof2k2or
+kof2k2ori
+kof2k2ori2
+kof2k2pa
+kof2k2pjw // no sound in attract mode
+kof2k2plb
+kof2k2pr
+kof2k2pro
+kof2k2ps2
+kof2k2ps2a
+kof2k2ps2mp
+kof2k2pur
+kof2k2ra
+kof2k2rgl // no sound in attract mode
+kof2k2rm
+kof2k2rma
+kof2k2rmb
+kof2k2rm1
+kof2k2rm2
+kof2k2rm3
+kof2k2rm13 // no sound in attract mode
+kof2k2rr // no sound in attract mode
+kof2k2rr1
+kof2k2rr2 // no sound in attract mode
+kof2k2rr3
+kof2k2rr4
+kof2k2rr5
+kof2k2rr6
+kof2k2rr7
+kof2k2rr8 // no sound in attract mode
+kof2k2rs
+kof2k2rs2
+kof2k2ru
+kof2k2rw
+kof2k2sb
+kof2k2seh
+kof2k2se2
+kof2k2sm // bad gfx on train scene
+kof2k2smf
+kof2k2smg
+kof2k2smg2
+kof2k2soi
+kof2k2sp
+kof2k2spl
+kof2k2spls
+kof2k2spo
+kof2k2tc
+kof2k2ul
+kof2k2ule
+kof2k2wuk // no sound in attract mode
+kof2k2xxx
+//kf2k2plc
+
+ /* kof2003 */
+kof2003d
+kof2003f
+kof2003rebh
+kof2k3b
+kof2k3bl2
+kof2k3br
+kof2k3bs1
+kof2k3bs2
+kof2k3bs3
+kof2k3bs4
+kof2k3d
+kof2k3evo
+kof2k3gc
+kof2k3hd
+kof2k3nd
+kof2k3nrx
+kof2k3pcd
+kof2k3pch
+kof2k3ps2
+kof2k3ps3
+kof2k3ryu
+kof2k3sc
+kof2k3ss
+kof2k3tc
+kof2k3zgf
+//kof2k3bd
+//kof2k3pd
+//kof2k3upd
+
+ /* kyugo */
+airwolf //parent
+airwolffr // french
+
+ /* m52 */
+alpha1v // Kyle Hodgetts
+mpatrol //parent
+spatrol /* Sponge Patrol - Gatinho 2008 */
+
+ /* maketrax */
+eyes //parent
+aa /* Widel's Games */
+abscam // GL 1982
+absurd /* scott - nonworking alpha ver 3 */
+alpaca7 /* Jerronimo (useless) */
+alpaca8 /* Jerronimo (useless) */
+bace /* Widel's Games */
+crashh /* PacMAME Hacks */
+deathstar
+dderby /* Widel's Games */
+eyesb
+ghohunt // Hurray Banana
+kangaroh /* Widel's Games */
+lazybug
+lazybug1
+mtturbo /* Tim - Make Trax Turbo Hack */
+pachello /* Jerronimo */
+pacmatri /* Jerronimo */
+pactest /* Widel's Games */
+pactetris
+ppong /* Widel's Games */
+ppong2 /* Widel's Games */
+rainboh /* Widel's Games */
+seq1 /* Jerronimo */
+seq2 /* Jerronimo */
+snakes
+tst_pacm
+wavybug
+zap /* Widel's Games */
+
+ /* mappy */
+mappy //parent
+superpac //parent
+crackhea /* Cary Barnhard hack of Mappy */
+housepty /* Jerky hack of Mappy */
+marpy
+superpc1 /* Paul Smith */
+superpcn /* Blue Justice */
+superpcp /* Blue Justice */
+superpcs /* Paul Smith */
+vectrsup /* T-Bone hack of Super Pac-Man */
+
+ /* marinedt */
+marinedt
+
+ /* mario */
+mario //parent
+cenmario
+
+ /* mcr */
+shollow //parent
+tron //parent
+tapper //parent
+handiman /* Bobby Tribble hack of Tron */
+shtron /* Jerronimo */
+stapper /* Tapper Simpsons Hack */
+stapper1 /* Tapper Simpsons Hack ver .81 */
+
+ /* mcr3 */
+sarge //parent
+sargex /* Gatinho Sarge x-rated */
+
+ /* mgd2 */
+bstarsd /* 0002 (c) 1990 SNK */
+tpgolfd /* 0003 (c) 1990 SNK */
+maglordd /* 0005 (c) 1990 Alpha Denshi Co. */
+ridherod /* 0006 (c) 1990 SNK */
+alpham2d /* 0007 (c) 1991 SNK */
+ncombatd /* 0009 (c) 1990 Alpha Denshi Co. */
+cyberlipd /* 0010 (c) 1990 SNK */
+superspyd /* 0011 (c) 1990 SNK */
+mutnatd /* 0014 (c) 1992 SNK */
+kotmd /* 0016 (c) 1991 SNK */
+sengokud /* 0017 (c) 1991 SNK */
+burningfd /* 0018 (c) 1991 SNK */
+lbowlingd /* 0019 (c) 1990 SNK */
+gpilotsd /* 0020 (c) 1991 SNK */
+joyjoyd /* 0021 (c) 1990 SNK */
+lresortd /* 0024 (c) 1992 SNK */
+eightmand /* 0025 (c) 1991 SNK / Pallas */
+minasand /* 0027 (c) 1990 Monolith Corp. */
+2020bbd /* 0030 (c) 1991 SNK / Pallas */
+socbrawld /* 0031 (c) 1991 SNK */
+roboarmyd /* 0032 (c) 1991 SNK */
+fatfury1d /* 0033 (c) 1991 SNK */
+fbfrenzyd /* 0034 (c) 1992 SNK */
+bakatonod /* 0036 (c) 1991 Monolith Corp. */
+crswordd /* 0037 (c) 1991 Alpha Denshi Co. */
+trallyd /* 0038 (c) 1991 Alpha Denshi Co. */
+sengoku2d /* 0040 (c) 1993 SNK */
+3countbd /* 0043 (c) 1993 SNK */
+aofd /* 0044 (c) 1992 SNK */
+androdund /* 0049 (c) 1992 Visco */
+ncommandd /* 0050 (c) 1992 Alpha Denshi Co. */
+wh1d /* 0053 (c) 1992 Alpha Denshi Co. */
+
+ /* midtunit */
+mk //parent
+mkfr // french
+mkturbod /* MK protection hack */
+mktturboen // Zenomorp 2012 Turbo Endurance
+mktturbopi // Zenomorp 2012 Turbo Projectile Insanity
+mk2 //parent Mortal Kombat II r3.1
+mk2fr // french
+mk2r33 // Mortal Kombat II r3.3
+umk2te50 // Ultimate MKII Tournament Edition r5.0.050
+umk2te51 // Ultimate MKII Tournament Edition r5.0.051
+umk2te52 // Ultimate MKII Tournament Edition r5.0.052
+
+ /* midwunit */
+umk3 //parent
+umk3j /* UMK3 1.2 Juggernaut Hack v1.0 */
+umk3z /* UMK3 1.2 Zeus hack */
+umk3te /* UMK3 Tournament Edition 2.0.032b8 */
+umk3te2 /* UMK3 Tournament Edition 2.0.035 */
+
+ /* midyunit */
+mkla4d /* MK protection hack */
+
+ /* mitchell */
+mitcdemo /* Charles Doty */
+
+ /* mmagic */
+mmagic // with sound
+
+ /* model2 */
+srallyc //parent
+srallyp // Kyle Hodgetts Sega Rally Pro Drivin'
+
+ /* monaco */
+monaco
+
+ /* mrdo */
+mrdo //parent
+mrdigdo /* Justin Clark hack of Mr. Do! */
+mrdofast /* Speedup hack from Evil Exidy*/
+mrpac /* Twist Hack 20020813 */
+mrpacb
+newdigdo /* Vic 20 George and Jerky hack of... */
+stickydo /* Marck's Hacks */
+
+ /* mslug */
+msboot
+mslugeh
+mslug2eh
+mslug2eh0
+mslug2eh1
+mslug2eh2
+mslug2eh3
+mslug2eh4
+mslug2fr
+mslug2fro
+mslug2sh
+mslug2t // 2015 trap15 - remove slowdowns that plague gameplay
+mslugxce
+mslugxeb
+mslugxeh
+mslugxeh1
+mslugxex
+mslugxfe
+mslugxfr
+mslugxfro
+mslugxhp
+mslugxit
+mslugxjdkj
+mslugxmfb
+mslugxres
+mslugxsef
+mslugxsvb
+mslugxp
+mslugxr
+mslugxst
+mslug3d
+mslug3eha
+mslug3ehs
+mslug3e02
+mslug3e03
+mslug3e04
+mslug3e05
+mslug3e06
+mslug3e07
+mslug3e08
+mslug3e09
+mslug3e10
+mslug3e11
+mslug3e12
+mslug3e13
+mslug3e14
+mslug3e15
+mslug3e16
+mslug3e17
+mslug3e18
+mslug3e19
+mslug3e20
+mslug3e21
+mslug3e22
+mslug3eb
+mslug3fr
+mslug3fro
+mslug3hev
+mslug3kh
+mslug3kho
+mslug3nd
+mslug3v /* EEZEZY Violence Edition */
+mslug4d
+mslug4dh /* Super D version */
+mslug4dh1
+mslug4eh
+mslug4eh2
+mslug4eh3
+mslug4eh4
+mslug4eh5
+mslug4eh6
+mslug4eho
+mslug4fr
+mslug4i
+mslug4i1
+mslug4kh
+//mslug4lw // not working - p roms are encrypted
+mslug4nd
+mslug4sp
+mslug5b
+mslug5d
+mslug5d1
+mslug5f
+mslug5fr
+mslug5fr1
+//mslug5fu // not working - p roms are encrypted
+mslug5hd
+mslug5l9a
+mslug5l9b
+mslug5lvf
+mslug5lvnc
+mslug5nd
+mslug5w
+ms5boot
+ms5pcbd
+ms5sp
+
+ /* mspacman */
+mspacman //parent
+chtmsatk /* PacMAME Hacks */
+chtmspa /* PacMAME Hacks */
+cookiem
+cottoh /* Gatinho hack of mspacman, to simulate what Crazy Otto might have been like */
+cottoh2 /* Gatinho hack of mspacman, to simulate what Crazy Otto might have been like */
+fasthang
+fastpuck
+fasthear /* PacMAME Hacks */
+fastmspa /* PacMAME Hacks */
+fastpop
+faststrm /* PacMAME Hacks */
+fstmsatk /* PacMAME Hacks */
+fstpman2
+heartbn2 /* PacMAME Hacks */
+heartbrn /* unknown hack of Ms. Pac-Man */
+horizpab /* Jerronimo v1.0 2004 */
+horizpac /* Jerronimo */
+mrmrspac
+mrpacman
+ms1000 /* Blue Justice */
+ms2000 /* Blue Justice */
+ms2600 /* T-Bone hack of Ms. Pac-Man */
+ms3000 /* Blue Justice */
+ms4000p /* Blue Justice */
+ms5000 /* Blue Justice */
+ms5000p /* Blue Justice */
+msatk2ad /* PacMAME Hacks */
+msatkad
+msbaby /* T-Bone hack */
+msberzk /* Bobby Tribble hack of Ms. Pac-Man */
+mscrzyma /* Blue Justice */
+mscrzymp /* Blue Justice */
+msdroid /* Grendal74 */
+msdstorm /* Mike Naylor hack of Ms. Pac-Man */
+mselton /* Sil hack of Ms. Pac-Man */
+msextra /* Blue Justice */
+msextrap /* Blue Justice */
+msf1pac /* Sil hack of Ms. Pac-Man */
+msgrkatk /* Grendal74 */
+msgrkb /* Grendal74 */
+mshangly /* PacMAME Hacks */
+mshearts /* PacMAME Hacks */
+msheartb
+msindy /* Sil hack of Ms. Pac-Man */
+msmini /* T-Bone hack of Ms. Pac-Man */
+msminia /* T-Bone hack of Ms. Pac-Man */
+msmspac /* Blue Justice */
+msnes4a /* T-Bone hack of Ms. Pac-Man */
+msnes62 /* T-Bone hack of Ms. Pac-Man */
+msnes63 /* T-Bone hack of Ms. Pac-Man */
+msnes6m /* T-Bone hack of Ms. Pac-Man */
+msnes6m2 /* T-Bone hack of Ms. Pac-Man */
+msnes6m3 /* T-Bone hack of Ms. Pac-Man */
+msnes6m4 /* T-Bone hack of Ms. Pac-Man */
+mspac1 /* from Greekmame 0.87 */
+mspac6m /* Sil hack of Ms. Pac-Man */
+mspac6m2 /* Sil hack of Ms. Pac-Man (fixed) */
+mspacad /* Sil hack of Ms. Pac-Man */
+mspacat2 /* Sil hack of Miss Pac Plus */
+mspacatb
+mspacde
+mspacdel /* Blue Justice */
+mspacfnt
+mspachi
+mspacii
+mspacit
+mspacit2
+mspacj
+mspacmap /* Don Hodges patch to fix various bugs in mspacmab */
+mspacmbg
+mspacnes /* T-Bone hack of Ms. Pac-Man */
+mspacp /* Blue Justice */
+mspacpbl /* Dav/PMP bootleg */
+mspacren /* T-Bone hack of Ms. Pac-Man */
+mspacrip /* R3mer hack of Ms. Pac-Man */
+mspacsup /* Super Ms. Pac-Man */
+mspacwf /* Tim Appleton - Ms. PacMan Weird Fruit */
+mspamsba /* Blue Justice */
+mspc6mad /* T-Bone hack of Ms. Pac-Man */
+msplus /* Blue Justice 20010824 */
+msrumble
+mssilad /* PacMAME Hacks */
+msstrmaz /* Blue Justice */
+msultra
+msvctr6m /* T-Bone hack of Ms. Pac-Man */
+msvectr /* PacMAME Hacks */
+msyakman /* PacMAME Hacks */
+ottop1
+ottop2
+ottop3
+ottopz
+pacatk /* Widel's Games */
+pacgalu
+pacgent
+pacrab
+pacsnoop /* Jerronimo */
+petshop
+pheartb
+piranha2
+ramsnoop /* Jerronimo */
+sueworlb
+sueworld
+superp4g
+superp4m
+supmspac /* Spedic Vending bootleg */
+tinyworld
+vectratk /* Sil and T-Bone hack of Ms. Pac-Man */
+womanp5
+zolamaze
+zolaad /* PacMAME Hacks */
+zolaatk /* PacMAME Hacks */
+zolapac /* PacMAME Hacks */
+zolaslow /* PacMAME Hacks */
+zolatunl /* PacMAME Hacks */
+zolavect /* PacMAME Hacks */
+ /* "Pacman hardware" games (hires hacks) */
+mschampx
+mspacmnx
+mspacmfx
+mspacatx
+mspacmbx
+mspacplx
+pacgalx
+
+ /* multipac */
+96in1 /* Widel's Games */
+96in1a /* Widel's Games */
+96in1b /* Widel's Games */
+96in1c /* Widel's Games */
+hackypac /* Widel's Games */
+madpac /* Widel's Games */
+multi10 /* bootleg */
+multi11 /* bootleg */
+multi13 /* bootleg */
+multi14 /* bootleg */
+multi15 /* bootleg */
+mspaceur
+pm4n1
+pm4n1a
+pm4n1b
+pm4n1c
+pm4n1d
+pm4n1e
+superabc
+superabco
+
+ /* nemesis */
+salamand //parent
+spclone // v0.7.3
+spcloneo // v0.7.2.2
+
+ /* neogeo */
+// These are the parents of our hacks
+neogeo
+2020bb // 030
+3countb // 043
+alpham2 // 007
+androdun // 049
+//aodk // 074 not needed
+aof // 044
+aof2 // 056
+aof3 // 096
+b2b // 071
+bakatono // 036
+bangbead // 259
+bjourney // 022
+//blazstar // 239 not needed
+breakers // 230
+breakrev // 245
+bstars // 002
+//bstars2 // 041 not needed
+burningf // 018
+crsword // 037
+crswd2bl // 054
+ctomaday // 249
+cyberlip // 010
+doubledr // 082
+eightman // 025
+fatfury1 // 033
+fatfury2 // 047
+fatfury3 // 069
+fatfursp // 058
+fbfrenzy // 034
+fightfev // 060
+flipshot // 247
+galaxyfg // 078
+ganryu // 252
+garou // 253
+ghostlop // 228
+//goalx3 // 209 not needed
+gowcaizr // 094
+gpilots // 020
+//gururin // 067 not needed
+ironclad // 220
+//irrmaze // 236 not needed
+//janshin // 048 not needed
+jockeygp // 331
+joyjoy // 021
+kabukikl // 092
+karnovr // 066
+kizuna // 216
+kof94 // 055
+kof95 // 084
+kof96 // 214
+kof97 // 232
+kof98 // 242
+kof99 // 251
+kof2000 // 257
+kof2001 // 262
+kof2002 // 265
+kof2003 // 271
+kf2k3pcb
+kotm // 016
+//kotm2 // 039 not needed
+lastblad // 234
+lastbld2 // 243
+lasthope // 802
+lbowling // 019
+//legendos // 029 not needed
+lresort // 024
+//magdrop2 // 221 not needed
+magdrop3 // 233
+maglord // 005
+//mahretsu // 004 not needed
+//marukodq // 206 not needed
+matrim // 266
+miexchng // 231
+minasan // 027
+mosyougi // 203
+ms5pcb
+mslug // 201
+mslug2 // 241
+mslugx // 250
+mslug3 // 256
+mslug4 // 263
+mslug5 // 268
+mutnat // 014
+nam1975 // 001
+ncombat // 009
+ncommand // 050
+//neobombe // 093 not needed
+neocup98 // 244
+//neodrift // 213 not needed
+//neomrdo // 207 not needed
+ninjamas // 217
+nitd // 260
+overtop // 212
+//panicbom // 073 not needed
+//pbobbl2n // 248 not needed
+pbobblen // 083
+//pgoal // 219 not needed
+pnyaa // 267
+//popbounc // 237 not needed
+preisle2 // 255
+//pspikes2 // 068 not needed
+//pulstar // 089
+puzzledp // 202
+puzzldpr // 235
+//quizdais // 023 not needed
+//quizdai2 // 042 not needed
+//quizkof // 080 not needed
+ragnagrd // 218
+rbff1 // 095
+rbff2 // 240
+rbffspec // 223
+ridhero // 006
+roboarmy // 032
+rotd // 264
+s1945p // 254
+samsho // 045
+samsho2 // 063
+samsho3 // 087
+samsho4 // 222
+samsho5 // 270
+samsh5sp // 272
+savagere // 059
+//sbp // 338 not working
+sdodgeb // 208
+sengoku // 017
+sengoku2 // 040
+sengoku3 // 261
+shocktr2 // 246
+shocktro // 238
+socbrawl // 031
+sonicwi2 // 075
+sonicwi3 // 097
+spinmast // 062
+ssideki // 052
+//ssideki2 // 061 not needed
+//ssideki3 // 081 not needed
+//ssideki4 // 215 not needed
+//stakwin // 088 not needed
+//stakwin2 // 227 not needed
+strhoop // 079
+superspy // 011
+svc // 269
+svcpcb
+tophuntr // 046
+tpgolf // 003
+trally // 038
+//turfmast // 200 not needed
+twinspri // 224
+//tws96 // 086 not needed
+viewpoin // 051
+//vliner // 332 not needed
+wakuwak7 // 225
+wh1 // 053
+wh2 // 057
+wh2j // 064
+whp // 090
+wjammers // 065
+//zedblade // 076 not needed
+zintrckb // 211
+zupapa // 070
+
+ /* neogeohb */
+akiradmo
+beast /* 2002 (c) 1989 Psygnosis */
+cndi /* Chip n Dale Intro */
+cnbe
+cphd
+columnsn /* 2000 (c) 1990 Sega */
+columnsncd
+//csw2 //not working & roms missing
+didemo
+dti // Duck Tales Intro
+dwi /* DarkWing Duck Intro */
+ffeast // Frog Feast
+ffeastd // Frog Feast demo
+fr2 // 098 Idol Mahjong - final romance 2
+fr2cd /* 098 (c) 1995 Video Systems Co. */
+fr2ch /* 098 (c) 1995 Video Systems Co. */
+gbi /* Ghostbusters Intro */
+iocero // BEY
+knacki // KnackiBalls by Furrtek
+lhcdb /* 2007 (c) Last Hope CD beta */
+lhcdba
+//lhopecd //not working
+//lhopecdh // not working
+ltorb
+neo2500 /* Blastar */
+neo3d // Oxygene
+neobubble
+neocstlv // BarfHappy
+neodemo /* Charles Doty */
+neofight // Kannagi
+neofightb
+neofighto
+neogal1 // BEY
+neogal1d // BEY
+neogal1t // BEY
+neogal2 // BEY
+neonopon /* (c) 2002-10-05 Blastar */
+neonopon_d1 // unplayable demo
+neonopon_d2 // unplayable demo
+neonopon_d3 // unplayable demo
+neopong /* (c) 2002 Neodev */
+neoponga /* (c) 2002 Neodev */
+neoromjb // CeL
+neotest // BEY
+neothund // Sebastian Mihai
+ngem2k
+ngftdemo // CeL
+ngmontst
+ngtd2
+ngtetris
+nyan
+pcmademo // 2015 freem
+pcmbdemo // 2015 freem
+poknight /* 2003 (c) 200? JMK */
+poknightcd
+poknightfr
+rci /* Robocop intro */
+santabll
+smi /* Spiderman intro */
+snddemo // Sound-Loop Demo by Freem
+spriteex // furrtek Sprite Experimenter
+syscheck
+test01 // MVS Test 01 by Furrtek
+timesupd // CeL
+tmnti /* TMNT intro */
+totc // Treasure of the Caribbean
+twister // Blastar 2015
+ww2demo
+zintrckbh
+zintrkcd /* 211 (c) 1996 ADK / SNK */
+zintrkcd1
+zintrkm
+
+ /* neogeo1 */
+2020bbcd
+androdunpx
+aofbh
+aof2b
+aof2b1
+aof2bh
+aof2br2
+aof3b
+aof3bh
+bangbeadp
+bjourneypx
+breakersbh
+breakersp
+breakersy
+breakrevb
+breakrevpp
+breakrevy
+burningfhp
+ctomadaypx
+dragons1
+eightmaneb
+fightfevbs
+fightfevk
+flipshotk
+galaxyfgb
+galaxyfgbh
+ganryud
+gowcaizrb
+gowcaizrbs
+gowcaizrrv
+gowcaizry
+gpilotscd
+gpilotse
+gpilotspx
+ironcladb
+//ironcladcd // not working
+jockeygpd
+joyjoycd
+joyjoycd1
+kabukiklb
+kabukikleh
+kabukiklgm
+kabukiklgmc
+kabukiklmc
+kabukiklyc
+karnovreh
+kizunab
+kizunaeh
+lans2k4d
+lbowlingcd
+lresortpx
+magdrop3fr /* Neo-Arc French Trans */
+maglordpx
+matrima
+matrimbh
+matrimd
+matrimdh
+matrimeh
+matrimehc
+matrimnd
+miexchngfr /* Neo-Arc French Trans */
+mutnatex
+nam1975g
+nam1975h
+ncombatpk
+ncommandsp
+neocup98k
+ninjamasasp
+ninjamaschl
+ninjamaseh
+ninjamasehc
+ninjamasehyc
+ninjamasha
+ninjamashb
+nitdd
+nitdfr /* Neo-Arc French Trans */
+nitdfro /* Neo-Arc French Trans */
+nitdfro1
+nitdpx
+nitdsp
+nitdsp1 // Spanish.Rev2
+nitdsp2
+pbcrazyb1
+pbcrazyb2
+pbobblenba
+pbobblencd
+pbobblendx
+pnyaad
+preisle2d
+preisle2px
+//pspikes2cd // not working
+ragnagrdbe
+ragnagrdbs
+ragnagrdeh
+ragnagrdsb
+s1945pd
+s1945peh
+s1945ph
+s1945pwe
+savagereb
+savageredb
+sdodgebp
+shocktr2px
+shocktr2w
+shocktrosp
+sonicwi2eh
+sonicwi2px
+sonicwi3eh
+sonicwi3h
+sonicwi3px
+spinmasth
+spinmastpx
+ssidekicd
+strhoopcd
+superspycd
+tophuntrpx
+tpgolfcd
+trallycd
+twinsprih
+viewpoinf
+viewpointr
+wakuwak7bh
+wakuwak7h
+wjammersf
+wjammersk
+zupapad
+//diggerma duplicate name, to check
+
+
+ /* ngdoubledr */
+dbdehy
+dbdy
+dbdeh
+dbdq
+dbdqb
+dbdqp
+dbdqeh
+doubledre2
+doubledres
+doubledrhp
+//doubledrsp //protection issues
+
+ /* nggaroup */
+garoub
+garoud
+garoupamu
+garoupeh
+garoupehc
+garoupy
+garoupf
+garoupfu
+garoupfp
+garoupx11
+garoupy1
+
+ /* ngkofmisc */
+cthd2k3b
+//cthd2k3a // not working, "not responding"
+ct2k3eh
+ct2k3ifz
+ct2k3k3
+ct2k3k3o
+ct2k3spi
+ct2k3xx
+ct2k3ys
+//ct2k3ad
+//ct2k3spd
+//cthd2k3a
+//cthd2k3d
+kof2k4mp
+kof2k4omg
+kof2k4ru // no sound in attract mode
+kof2k4se1
+kof2k4se2
+//kof2k4pls
+kof2k4seb
+kof2k4spl
+kof2k8uni
+//kof10thbr
+//kof10thd
+//kof10thd16 // not working, p1 needs unscrambling
+kof10thep15
+kof10thu
+kof10thub
+kof10thud
+kogd
+kogf
+koggv
+kogmxpls
+kogplus
+kogplus1
+kogplusf
+kogsm
+
+ /* nglastblade */
+lba
+lbb
+lbd
+lbe
+lbboss
+lbeh
+lbeh2
+lbeho
+lbha
+lbseh
+lbsk
+lby
+lb2a
+lb2b
+lb2bh
+lb2bhd
+lb2easy
+lb2ed
+lb2ebd
+lb2eh
+lb2eh2
+lb2eho
+lb2ehu
+lb2pl
+lb2te
+lb2uh
+lb2wh
+lb2yd
+
+ /* ngrbff */
+fatfury2b
+fatfury3b
+fatfury3bd
+fatfury3bh
+fatfury3eh
+fatfurspb
+fatfurspbs
+fatfurspbt
+fatfurspeh
+rbff1ud
+rbffsehd
+rbffsb
+rbffseh
+rbffspecbs
+rbffspy
+rbffspbd
+rbffsud
+rbff2b
+rbff2bh
+rbff2eh
+rbff2ehc
+rbff2eh2
+rbff2eho
+rbff2fc
+rbff2ud
+rbff2y
+
+ /* ngrotd */
+rotdb
+rotdb1
+rotdbh
+rotdbr
+rotdbr1
+rotdbr2
+rotdbr2d
+rotdcre
+rotdcreb
+rotdd
+rotddh
+rotdeh
+rotdehc
+rotdfw
+rotdfy
+rotdh2b
+rotdhab
+rotdhab1
+rotdhar
+rotdhfw
+rotdhfwb
+rotdnd
+rotdyc
+
+ /* ngsamsho */
+fswordsb1
+fswordsb2
+fswordsbf
+samshob
+samshoeh
+samshoeh2
+samshos1
+samshozk
+samsho2eh
+samsho2emb
+samsho2hy
+samsho2mb
+samsho2q
+samsho2s2
+samsho2sp
+samsho2sp2
+samsho2sp3
+samsho2sp4
+samsho2sq
+samsho2ss
+samsho2yc
+samsho2zk
+samsho3eh
+samsho3hb
+samsho3s2
+samsho3se
+samsho3ss
+samsho3yc
+samsho3zk
+samsho4bh
+samsho4cz
+samsho4eh
+samsho4es
+samsho4ev
+samsho4ew
+samsho4fc
+samsho4kw
+samsho4kz
+samsho4mb
+samsho4pm
+samsho4ps
+samsho4s2
+samsho4wh
+samsho4zk
+samsho5ba
+samsho5bd
+samsho5bh
+samsho5bs
+samsho5ch
+samsho5d
+samsho5d1
+samsho5ge
+samsho5hd
+samsho5s2
+samsho5x
+samsho5zk
+samsh5spd
+samsh5spd1
+samsh5spd2
+samsh5sph1
+samsh5spha
+samsh5sphb
+samsh5sphc
+samsh5sphd
+samsh5spn
+samsh5spnd
+samsh5spnh3
+samsh5spnzk
+
+ /* ngsengoku */
+sengokucd
+sengoku3b
+sengoku3c
+sengoku3d
+sengoku3eb
+sengoku3eh
+sengoku3ha
+sengoku3k
+sengoku3kc
+sengoku3p
+sengoku3pl
+sengoku3s
+sengoku3ya
+sengoku3yk
+
+ /* ngsvc */
+svccprw
+svcd
+svcd1
+svcee
+svcesv
+svcg
+svch
+svch2
+svcice
+svclspc
+svcnd
+svcnh
+svcpcbd
+svcplusa2016
+svcplusb
+svcplusd
+svcplusg
+svcplusp
+svcplusp2
+svcpryu
+svcps2
+svcrm
+svcryu
+svcspjoy
+svcsplus2016
+svcspryu
+svcstdse
+svcxlb
+
+ /* ngwh */
+whpb
+whpb2
+whpbh
+whpbho
+whpbho2
+whpeh
+whpeho
+whphez
+whpsp
+whpss
+wh1bs
+wh2bs
+wh2ey
+wh2ja
+wh2jb
+
+ /* nmk16 */
+//tdragon //parent
+//tdragonp // trap15 - not working
+tdragon2 //parent
+tdragon2p // trap15
+
+ /* pacland */
+pacland //parent
+mariopac
+paclandb
+paclandd /* Blue Justice */
+
+ /* pacman */
+abortman /* Paul C Copeland hack of Puckman */
+baby2 /* T-Bone hack */
+baby3 /* T-Bone hack */
+baby4 /* T-Bone hack */
+brakman /* Jerry Lawrence hack of Pac-Man (Midway) */
+bucaneer /* PacMAME Hacks */
+caterpil
+chtpac
+chtpac3d
+chtpman2
+chtpop
+chtpuck
+crazypac
+dizzy
+eltonpac /* Sil hack of Pac-Man (Midway) */
+europac /* Stefano 'Jojo' Priore hack of Pac-Man (Midway) */
+fpnleash
+hanglyad
+hmhearts /* hack */
+hearts
+hellowp // cmonkey UKVAC
+hm1000 /* Blue Justice */
+hm2000 /* Blue Justice */
+hmba5000 /* Blue Justice */
+hmba7000 /* Blue Justice */
+hmbabymz /* Blue Justice */
+hmbluep /* Blue Justice */
+hmgrenp /* Blue Justice */
+hmpopey /* */
+hmplus /* Blue Justice */
+homercid /* David Widel */
+jacman
+jpmmunch /* JPM bootleg */
+mazeman /* Sil hack of Pac-Man */
+namcosil /* Sil hack of Pac-Man (Namco) */
+newpuck2 /* Scotty hack of Pac-Man */
+newpuck3
+nwpuc2b
+pac2600 /* Bobby Tribble hack of Pac-Man (Midway) */
+pac2600a
+pacbaby
+pacbaby2
+pacbaby3
+pacbell
+pacelec
+pacfnt
+pacinvis
+pacjail
+pacjr1
+pacjr2
+pacjr3
+pacjr4
+pacm255 /* Mark Spaeth patch for level 256 */
+pacman25 /* Jerronimo v1.0 2004 */
+pacman3d /* Sil hack of Pac-Man (Midway) */
+pacman6
+pacmanp /* Don Hodges patch for level 256 */
+pacmar /* PacMAME Hacks */
+pacminer
+pacmini /* Bobby Tribble hack of Pac-Man (Midway) */
+pacmini2 /* Bobby Tribble hack of Pac-Man (Midway) */
+pacmn6m2
+pacms1
+pacms2
+pacms3
+pacms4
+pacmsa1
+pacmsa2
+pacmsa3
+pacmsa4
+pacmulti
+puck255
+pacplusc
+pacpopey /* unknown hack of Pac-Man (Namco) */
+pacshuf
+pacspeed
+pacweird
+pacwf /* Tim Appleton - Weird Fruit */
+pcrunchy
+pengman /* Jerry Lawrence hack of Pac-Man (Midway) */
+pm1000 /* Blue Justice */
+pm2000 /* Blue Justice */
+pm3000 /* Blue Justice */
+pm4000p /* Blue Justice */
+pm5000p /* Blue Justice */
+pm6000 /* Blue Justice */
+pm7000 /* Blue Justice */
+pm7000p /* Blue Justice */
+pmad /* SirScotty and Sil hack of Pac-Man (Midway) */
+pmad00
+pmad6m /* T-Bone hack */
+pmada
+pmba2000 /* Blue Justice */
+pmba3000 /* Blue Justice */
+pmba4000 /* Blue Justice */
+pmba6000 /* Blue Justice */
+pmba8000 /* Blue Justice */
+pmbamaz /* Blue Justice */
+pmbaplus /* Blue Justice */
+pmbluep /* Blue Justice */
+pmdeluxe /* Blue Justice */
+pmextra /* Blue Justice */
+pmextrap /* Blue Justice */
+pmfever /* Blue Justice */
+pmgrenp /* Blue Justice */
+pmheart
+newpuc1 /* Italian dump */
+pplusad
+puckman //our parent (not same as mame)
+puckmano
+puckmoti
+puckmot1
+puckren
+puckrenc
+punleash
+roboman
+snakeyes /* T-Bone hack */
+snowpac /* T-Bone hack */
+spuckman
+sumeltob
+sumelton
+tbone /* T-Bone hack */
+ultra2 /* PacMAME Hacks */
+ultrapac
+vcrunchy
+vecbaby
+vecbaby2
+vecbaby3
+vecpac /* T-Bone hack of Pac-Man (Midway) */
+vectplus
+vectr6m /* T-Bone hack */
+vectr6tb /* T-Bone hack */
+vectxens
+vhangly
+vhangly3
+vpacbell
+vpacelec
+vpacjail
+vpacms1
+vpacms2
+vpacms3
+vpacms4
+vpacmsa1
+vpacmsa2
+vpacmsa3
+vpacmsa4
+vpacshuf
+vpspeed
+xensad
+xensrev
+ /* "Pacman hardware" games (hires hacks) */
+puckmanx
+puckmnax
+puckmnfx
+puckmnhx
+pacmanx
+pacmanfx
+puckmodx
+pacmodx
+newpuc2x
+nwpuc2bx
+nwpuckxx
+hanglyx
+hangly2x
+hangly3x
+pacplusx
+pheartx
+
+ /* pcktgal */
+pcktgal //parent
+pckgalgr /* Vag @ GreekRoms */
+pcktgalk /* Korean Translation */
+
+ /* pengo */
+pengo //parent
+pacpen
+pengopop
+vecpengo /* T-Bone hack of Pengo */
+alpacap7 /* "Jerronimo", "Alpaca v0.7 (Pengo Hardware) useless */
+alpacap8 /* "Jerronimo", "Alpaca v0.8 (Pengo Hardware) useless */
+
+ /* pgm */
+pgm //required bios
+ket
+//kov //parent
+//kov2 //parent
+kovplus
+kovsh
+kov2p
+pgemeni /* Blastar */
+pgmdemo /* Charles Doty */
+pgmfrog /* Rastersoft */
+ketarr // trap15 hack
+ketarrb // trap15 hack
+ketarr10 // trap15 hack
+ketarr15 // trap15 hack
+ketarr151 // trap15 hack
+ketarrf // trap15 hack
+ketarrs15 // trap15 hack
+ketarrs151 // trap15 hack
+orlegend //parent
+orlegendcs
+orlegendh
+//kovassg
+//kovdf
+kovsgqyzc // similar to kovsgqyza
+kov2h1
+kov2h2
+kov2h3
+kov2h4
+kov2h5 // was kov2psv
+kovph1
+kovph2
+kovph3
+kovph4
+kovph5
+kovph6
+//kovph7
+kovph8
+//kovph9
+//kovph10
+kovph11
+kovph12
+kovph13
+kovph14
+kovph15
+//kovph16
+kovph17
+kovph18
+//kovph19
+//kovph20
+//kovph21
+//kovph22
+//kovph23
+kovph24 // was kvplusjq
+kovph25 // was kovplusq
+kovsh1
+kovsh2
+kovsh3
+//kovsh4 // all of these are encrypted, not working
+//kovsh5
+//kovsh6
+//kovsh7
+//kovsh8
+//kovsh9
+//kovsh10
+//kovsh11
+//kovsh12
+//kovsh13
+//kovsh14
+//kovsh15
+//kovsh16
+//kovsh17
+kovsh18 // gem fighters
+kovsh19 // rugal 98
+
+ /* phoenix */
+phoenix //parent
+phoenixg /* Vag @ GreekRoms */
+phoenixr /* CYBERYOGI =CO= Windler hack of Phoenix */
+
+ /* playch10 */
+playch10 //bios
+pc_bb2 /* NES->PC-10 */
+pc_ctfrc /* NES->PC-10 */
+pc_digdg /* NES->PC-10 */
+pc_krsty /* NES->PC-10 */
+pc_mman5 /* NES->PC-10 */
+pc_parsl /* NES->PC-10 */
+pc_ark /* NES->PC-10 */
+pc_dk3 /* NES->PC-10 */
+pc_galag /* NES->PC-10 */
+pc_cch /* NES->PC-10 */
+pc_dk /* NES->PC-10 */
+pc_pacm /* NES->PC-10 */
+pc_gyrus /* NES->PC-10 */
+pc_skykd /* NES->PC-10 */
+
+ /* powerins */
+powerins //parent
+powernbr // Brazil translation
+
+ /* psikyosh */
+s1945ii //parent
+s1945iiex
+s1945iii //parent
+s1945sr3
+
+ /* rallyx */
+rallyx //parent
+rxtron /* Jerky and Sil hack of Rally-X */
+nrallyv /* New Rally-X (vertical) */
+
+ /* rastan */
+rastan //parent
+rastandh /* Neil Pearce Hack */
+rastand2 /* Neil Pearce Hack */
+rastaneh /* Neil Pearce Hack */
+rastane2 /* Neil Pearce Hack */
+rastwack /* Vogel Hack */
+
+ /* retofinv */
+retofinv //parent
+retofinv4 /* Paul Smith hack */
+
+ /* schaser */
+schasrcv // extra sounds
+
+ /* segac2 */
+c2frog
+
+ /* segaorun */
+outrun //parent
+outrunen
+outrunen0
+outrunen1
+outrunen2
+
+ /* segag80r */
+astrob //parent
+astrob2h
+
+ /* segas16b */
+//altbeast //parent
+//altbeastfr // french - Arkatrad - not working
+
+ /* shaolins */
+kicker //parent
+kfjohnny /* hack by Smitdogg*/
+
+ /* skimaxx */
+skimaxx // Kyle Hodgetts
+
+ /* snk6502 */
+vantris /* (c) 1998 Norbert Kehrer */
+
+ /* simple_st0016 */
+renju //parent
+renjuk /* Korean Translation */
+
+ /* spacmiss */
+spacmissx // extra sounds
+
+ /* system1 */
+wbml //parent
+wbmlbit /* Italian Translation */
+wbmlkb /* Korean Translation */
+
+ /* system16 */
+sys16dem // Charles Doty
+
+ /* taito_b */
+pbobble //parent
+bubbleb /* pbobble USA Region Hack */
+
+ /* taito_f2 */
+f2demo /* Charles Doty */
+
+ /* taito_f3 */
+cleopatr //parent
+dariusg //parent
+gekiridn //parent
+landmakr //parent
+pbobble2 //parent
+cleopath
+driusgxh
+//f3demo /* Antiriad (a demo made for Raine, not tested on real hardware) - not working */
+gekiridh
+gekiridoc
+landmakh
+pbobl2xh
+
+ /* taito_l */
+evilston //parent
+evilstonfr // French
+sokoban // Sokoban LE by cmonkey
+speccies // Speccies 2 by Sokurah
+tldemo // cmonkey
+tldemo2 // cmonkey
+
+ /* tecmo */
+gemini //parent
+geminit /* Twisty Hack */
+rygar //parent
+rygark /* Korean Translation */
+
+ /* tecmo16 */
+fstarfrc //parent
+fstarfrcc
+
+ /* tehkanwc */
+tehkanwc //parent
+ballonwc
+tehkangc
+tankwc
+twc_gr /* Vag @ GreekRoms */
+
+ /* tempest */
+tempest //parent
+tempall
+temped /* Tempest TempEd Hack */
+tempestm
+temptwst /* Twisty Hack */
+tmptwsta /* Twisty Hack 2000 */
+tmptwst2 /* Twisty Hack */
+tmptwst3 /* Twisty Hack */
+tmptwst4 /* Twisty Hack */
+vbrakout /* Clay Cowgill */
+tempmg /* Clay Cowgill Multi-Tempest */
+temptlm
+tvortex /* Tempest Prototype */
+tvortexa /* Tempest Prototype */
+aliensv /* Tempest Prototype */
+aliensva /* Tempest Prototype */
+
+ /* terracre */
+terracre //parent
+terracrc
+
+ /* timelimit */
+timelimt //parent
+timelimit // dink colour hack
+
+ /* tmnt */
+ssriders //parent
+ssridersaex
+
+ /* toaplan1 */
+fireshrk //parent
+samesamenh // Trap15
+
+ /* toaplan2 */
+kingdmgp //parent
+kgpe /* Neill Corlett hack */
+sstriker //parent
+mahoudcn
+batsugun //parent
+batsugunt
+bgaregga //parent
+bgareggz
+
+ /* trackfld */
+trackfld //parent
+athens04 /* Athens 2004 - Hack by The Gameland Crew (http://www.gameland.gr): Maddog, Whacker, Badge, Geoanas */
+tst_trkfld
+
+ /* twincobr */
+twincobr //parent
+twincbu2
+twintwst
+
+ /* volfied */
+volfied //parent
+volfiedg /* Vag @ GreekRoms 2005 */
+
+ /* vsnes */
+suprmrio //parent
+mrio2002 /* Vs. Super Mario Bros. 2002 */
+suprsktr /* Vs. Super Skater Bros. - Vs. Super Mario Skaters */
+
+ /* wc90 */
+pac90
+
+ /* williams */
+defender //parent
+defender2
+robotron //parent
+robotron201 // start at level 201 (Sean Riddle)
+robotronp /* Patched to remove the 'in the corner' crash */
+robotrontie // Tie Die set (Vid Kidz)
+splat //parent
+splatsc1
+
+ /* wmg */
+wmg
+
+ /* yiear */
+yiear //parent
+nacho /* Gatinho - Nacho Libre */
+
diff --git a/docs/release/src/hbmame/hbmame.mak b/docs/release/src/hbmame/hbmame.mak
new file mode 100644
index 00000000000..559272f373c
--- /dev/null
+++ b/docs/release/src/hbmame/hbmame.mak
@@ -0,0 +1,62 @@
+# license:BSD-3-Clause
+# copyright-holders:Robbbert
+###########################################################################
+#
+# makefile
+#
+# Additional makefile for building HBMAME
+#
+###########################################################################
+
+GEN_FOLDERS += $(GENDIR)/mame/layout/
+
+# MAME layouts that we use
+LAYOUTS += \
+ $(SRC)/mame/layout/dotrikun.lay \
+ $(SRC)/hbmame/layout/spacmissx.lay
+# $(SRC)/mame/layout/atari_s1.lay
+
+# MAME layouts that are needed for compile to succeed, not used by HBMAME
+LAYOUTS += \
+ $(SRC)/mame/layout/gorf.lay \
+ $(SRC)/mame/layout/tenpindx.lay \
+ $(SRC)/mame/layout/spacezap.lay \
+ $(SRC)/mame/layout/seawolf2.lay \
+ $(SRC)/mame/layout/gridiron.lay \
+ $(SRC)/mame/layout/turbotag.lay \
+ $(SRC)/mame/layout/spyhunt.lay \
+ $(SRC)/mame/layout/dpoker.lay \
+ $(SRC)/mame/layout/astdelux.lay \
+ $(SRC)/mame/layout/outrun.lay \
+ $(SRC)/mame/layout/polepos.lay \
+ $(SRC)/mame/layout/topracer.lay \
+ $(SRC)/mame/layout/armora.lay \
+ $(SRC)/mame/layout/barrier.lay \
+ $(SRC)/mame/layout/demon.lay \
+ $(SRC)/mame/layout/solarq.lay \
+ $(SRC)/mame/layout/starcas.lay \
+ $(SRC)/mame/layout/sundance.lay \
+ $(SRC)/mame/layout/tailg.lay \
+ $(SRC)/mame/layout/wotw.lay \
+ $(SRC)/mame/layout/ppsatan.lay \
+ $(SRC)/mame/layout/konamigt.lay \
+ $(SRC)/mame/layout/sfiii2.lay \
+ $(SRC)/mame/layout/280zzzap.lay \
+ $(SRC)/mame/layout/attackfc.lay \
+ $(SRC)/mame/layout/clowns.lay \
+ $(SRC)/mame/layout/cosmicm.lay \
+ $(SRC)/mame/layout/escmars.lay \
+ $(SRC)/mame/layout/galactic.lay \
+ $(SRC)/mame/layout/gunchamp.lay \
+ $(SRC)/mame/layout/gunfight.lay \
+ $(SRC)/mame/layout/invad2ct.lay \
+ $(SRC)/mame/layout/invaders.lay \
+ $(SRC)/mame/layout/lagunar.lay \
+ $(SRC)/mame/layout/maze.lay \
+ $(SRC)/mame/layout/phantom2.lay \
+ $(SRC)/mame/layout/seawolf.lay \
+ $(SRC)/mame/layout/shuttlei.lay \
+ $(SRC)/mame/layout/spacecom.lay \
+ $(SRC)/mame/layout/spacwalk.lay \
+ $(SRC)/mame/layout/spcenctr.lay \
+
diff --git a/docs/release/src/hbmame/includes/cps1.h b/docs/release/src/hbmame/includes/cps1.h
new file mode 100644
index 00000000000..f12c48ccec3
--- /dev/null
+++ b/docs/release/src/hbmame/includes/cps1.h
@@ -0,0 +1,483 @@
+// license:BSD-3-Clause
+// copyright-holders:Paul Leaman
+/***************************************************************************
+
+ Capcom CPS1/2 hardware
+
+***************************************************************************/
+
+#ifndef _CPS1_H_
+#define _CPS1_H_
+
+#include "sound/msm5205.h"
+#include "sound/qsound.h"
+#include "sound/okim6295.h"
+#include "machine/gen_latch.h"
+#include "machine/timekpr.h"
+#include "cpu/m68000/m68000.h"
+#include "screen.h"
+#include "speaker.h"
+
+// Video raw params
+// measured clocks:
+// CPS2(Guru): V = 59.6376Hz, H = 15,4445kHz *H is probably measured too low!
+// CPS1 GNG: V = 59.61Hz
+/* CPS1(Charles MacDonald):
+ Pixel clock: 8.00 MHz
+ Total pixel clocks per scanline: 512 clocks
+ Horizontal sync pulse width : 36 clocks
+ Horizontal display and blanking period: 476 clocks
+ Frame size: 262 scanlines
+ Refresh rate: 59.63 MHz.
+*/
+#define CPS_PIXEL_CLOCK (XTAL_16MHz/2)
+
+#define CPS_HTOTAL (512)
+#define CPS_HBEND (64)
+#define CPS_HBSTART (448)
+
+#define CPS_VTOTAL (262)
+#define CPS_VBEND (16)
+#define CPS_VBSTART (240)
+
+
+struct gfx_range
+{
+ // start and end are as passed by the game (shift adjusted to be all
+ // in the same scale a 8x8 tiles): they don't necessarily match the
+ // position in ROM.
+ int type;
+ int start;
+ int end;
+ int bank;
+};
+
+struct CPS1config
+{
+ const char *name; /* game driver name */
+
+ /* Some games interrogate a couple of registers on bootup. */
+ /* These are CPS1 board B self test checks. They wander from game to */
+ /* game. */
+ int cpsb_addr; /* CPS board B test register address */
+ int cpsb_value; /* CPS board B test register expected value */
+
+ /* some games use as a protection check the ability to do 16-bit multiplies */
+ /* with a 32-bit result, by writing the factors to two ports and reading the */
+ /* result from two other ports. */
+ /* It looks like this feature was introduced with 3wonders (CPSB ID = 08xx) */
+ int mult_factor1;
+ int mult_factor2;
+ int mult_result_lo;
+ int mult_result_hi;
+
+ /* unknown registers which might be related to the multiply protection */
+ int unknown1;
+ int unknown2;
+ int unknown3;
+
+ int layer_control;
+ int priority[4];
+ int palette_control;
+
+ /* ideally, the layer enable masks should consist of only one bit, */
+ /* but in many cases it is unknown which bit is which. */
+ int layer_enable_mask[5];
+
+ /* these depend on the B-board model and PAL */
+ int bank_sizes[4];
+ const struct gfx_range *bank_mapper;
+
+ /* some C-boards have additional I/O for extra buttons/extra players */
+ int in2_addr;
+ int in3_addr;
+ int out2_addr;
+
+ int bootleg_kludge;
+};
+
+
+class cps_state : public driver_device
+{
+public:
+ cps_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag),
+ m_mainram(*this, "mainram"),
+ m_gfxram(*this, "gfxram"),
+ m_cps_a_regs(*this, "cps_a_regs"),
+ m_cps_b_regs(*this, "cps_b_regs"),
+ m_qsound_sharedram1(*this, "qsound_ram1"),
+ m_qsound_sharedram2(*this, "qsound_ram2"),
+ m_objram1(*this, "objram1"),
+ m_objram2(*this, "objram2"),
+ m_output(*this, "output"),
+ m_io_in0(*this, "IN0"),
+ m_io_in1(*this, "IN1"),
+ m_cps2_dial_type(0),
+ m_ecofghtr_dial_direction0(0),
+ m_ecofghtr_dial_direction1(0),
+ m_ecofghtr_dial_last0(0),
+ m_ecofghtr_dial_last1(0),
+ m_maincpu(*this, "maincpu"),
+ m_audiocpu(*this, "audiocpu"),
+ m_oki(*this, "oki"),
+ m_m48t35(*this,"m48t35"),
+ m_msm_1(*this, "msm1"),
+ m_msm_2(*this, "msm2"),
+ m_gfxdecode(*this, "gfxdecode"),
+ m_screen(*this, "screen"),
+ m_palette(*this, "palette"),
+ m_soundlatch(*this, "soundlatch"),
+ m_soundlatch2(*this, "soundlatch2"),
+ m_decrypted_opcodes(*this, "decrypted_opcodes"),
+ m_region_key(*this, "key"),
+ m_region_stars(*this, "stars")
+ { }
+
+ // cps config for new
+ int m_cpsb_addr;
+ int m_cpsb_value;
+ int m_mult_factor1;
+ int m_mult_factor2;
+ int m_mult_result_lo;
+ int m_mult_result_hi;
+ int m_layer_control;
+ int m_priority[4];
+ int m_palette_control;
+ int m_layer_enable_mask[5];
+ int m_bank_sizes[4];
+ int m_in2_addr;
+ int m_in3_addr;
+ int m_out2_addr;
+ int m_bootleg_kludge;
+ u8 m_scrollx1;
+ u8 m_scrollx2;
+ u8 m_scrollx3;
+ u32 m_bank_type[32];
+
+ /* memory pointers */
+ // cps1
+ optional_shared_ptr<uint16_t> m_mainram;
+ required_shared_ptr<uint16_t> m_gfxram;
+ required_shared_ptr<uint16_t> m_cps_a_regs;
+ required_shared_ptr<uint16_t> m_cps_b_regs;
+ uint16_t * m_scroll1;
+ uint16_t * m_scroll2;
+ uint16_t * m_scroll3;
+ uint16_t * m_obj;
+ uint16_t * m_other;
+ std::unique_ptr<uint16_t[]> m_buffered_obj;
+ optional_shared_ptr<uint8_t> m_qsound_sharedram1;
+ optional_shared_ptr<uint8_t> m_qsound_sharedram2;
+ std::unique_ptr<uint8_t[]> m_decrypt_kabuki;
+ // cps2
+ optional_shared_ptr<uint16_t> m_objram1;
+ optional_shared_ptr<uint16_t> m_objram2;
+ optional_shared_ptr<uint16_t> m_output;
+
+ optional_ioport m_io_in0;
+ optional_ioport m_io_in1;
+ std::unique_ptr<uint16_t[]> m_cps2_buffered_obj;
+ // game-specific
+ std::unique_ptr<uint16_t[]> m_gigaman2_dummyqsound_ram;
+ uint16_t sf2ceblp_prot;
+
+ /* video-related */
+ tilemap_t *m_bg_tilemap[3];
+ int m_scanline1;
+ int m_scanline2;
+ int m_scancalls;
+
+ int m_scroll1x;
+ int m_scroll1y;
+ int m_scroll2x;
+ int m_scroll2y;
+ int m_scroll3x;
+ int m_scroll3y;
+
+ int m_stars_enabled[2]; /* Layer enabled [Y/N] */
+ int m_stars1x;
+ int m_stars1y;
+ int m_stars2x;
+ int m_stars2y;
+ int m_last_sprite_offset; /* Offset of the last sprite */
+ int m_cps2_last_sprite_offset; /* Offset of the last sprite */
+ int m_pri_ctrl; /* Sprite layer priorities */
+ int m_objram_bank;
+
+ /* misc */
+ int m_dial[2]; // forgottn
+ int m_readpaddle; // pzloop2
+ int m_cps2networkpresent;
+ int m_cps2digitalvolumelevel;
+ int m_cps2disabledigitalvolume;
+ emu_timer *m_digital_volume_timer;
+ int m_cps2_dial_type;
+ int m_ecofghtr_dial_direction0;
+ int m_ecofghtr_dial_direction1;
+ int m_ecofghtr_dial_last0;
+ int m_ecofghtr_dial_last1;
+
+
+ /* fcrash sound hw */
+ int m_sample_buffer1;
+ int m_sample_buffer2;
+ int m_sample_select1;
+ int m_sample_select2;
+
+ /* video config (never changed after video_start) */
+ const struct CPS1config *m_game_config;
+ int m_scroll_size;
+ int m_obj_size;
+ int m_cps2_obj_size;
+ int m_other_size;
+ int m_palette_align;
+ int m_palette_size;
+ int m_stars_rom_size;
+ uint8_t m_empty_tile[32*32];
+ int m_cps_version;
+
+ /* fcrash video config */
+ uint8_t m_layer_enable_reg;
+ uint8_t m_layer_mask_reg[4];
+ int m_layer_scroll1x_offset;
+ int m_layer_scroll2x_offset;
+ int m_layer_scroll3x_offset;
+ int m_sprite_base;
+ int m_sprite_list_end_marker;
+ int m_sprite_x_offset;
+ std::unique_ptr<uint16_t[]> m_bootleg_sprite_ram;
+ std::unique_ptr<uint16_t[]> m_bootleg_work_ram;
+
+ /* devices */
+ required_device<m68000_base_device> m_maincpu;
+ optional_device<cpu_device> m_audiocpu;
+ optional_device<okim6295_device> m_oki;
+ optional_device<m48t35_device> m_m48t35;
+ optional_device<msm5205_device> m_msm_1; // fcrash
+ optional_device<msm5205_device> m_msm_2; // fcrash
+ required_device<gfxdecode_device> m_gfxdecode;
+ required_device<screen_device> m_screen;
+ required_device<palette_device> m_palette;
+ optional_device<generic_latch_8_device> m_soundlatch;
+ optional_device<generic_latch_8_device> m_soundlatch2;
+ optional_shared_ptr<uint16_t> m_decrypted_opcodes;
+ optional_memory_region m_region_key;
+ optional_memory_region m_region_stars;
+
+ DECLARE_READ16_MEMBER(cps1_hack_dsw_r);
+ DECLARE_READ16_MEMBER(cps1_in1_r);
+ DECLARE_READ16_MEMBER(cps1_in2_r);
+ DECLARE_READ16_MEMBER(cps1_in3_r);
+ DECLARE_READ16_MEMBER(forgottn_dial_0_r);
+ DECLARE_READ16_MEMBER(forgottn_dial_1_r);
+ DECLARE_WRITE16_MEMBER(forgottn_dial_0_reset_w);
+ DECLARE_WRITE16_MEMBER(forgottn_dial_1_reset_w);
+ DECLARE_WRITE8_MEMBER(cps1_snd_bankswitch_w);
+ DECLARE_WRITE16_MEMBER(cps1_soundlatch_w);
+ DECLARE_WRITE16_MEMBER(cps1_soundlatch2_w);
+ DECLARE_WRITE16_MEMBER(cpsq_coinctrl2_w);
+ DECLARE_READ16_MEMBER(qsound_rom_r);
+ DECLARE_READ16_MEMBER(qsound_sharedram2_r);
+ DECLARE_WRITE16_MEMBER(qsound_sharedram2_w);
+ DECLARE_WRITE8_MEMBER(qsound_banksw_w);
+ DECLARE_READ16_MEMBER(sf2rb_prot_r);
+ DECLARE_READ16_MEMBER(sf2rb2_prot_r);
+ DECLARE_READ16_MEMBER(sf2dongb_prot_r);
+ DECLARE_READ16_MEMBER(sf2ceblp_prot_r);
+ DECLARE_WRITE16_MEMBER(sf2ceblp_prot_w);
+ DECLARE_READ16_MEMBER(cps1_dsw_r);
+ DECLARE_WRITE16_MEMBER(cps1_coinctrl_w);
+ DECLARE_READ16_MEMBER(qsound_sharedram1_r);
+ DECLARE_WRITE16_MEMBER(qsound_sharedram1_w);
+ DECLARE_READ16_MEMBER(ganbare_ram_r);
+ DECLARE_WRITE16_MEMBER(ganbare_ram_w);
+ DECLARE_WRITE16_MEMBER(cps1_cps_a_w);
+ DECLARE_READ16_MEMBER(cps1_cps_b_r);
+ DECLARE_WRITE16_MEMBER(cps1_cps_b_w);
+ DECLARE_WRITE16_MEMBER(cps1_gfxram_w);
+ DECLARE_WRITE16_MEMBER(cps2_objram_bank_w);
+ DECLARE_READ16_MEMBER(cps2_objram1_r);
+ DECLARE_READ16_MEMBER(cps2_objram2_r);
+ DECLARE_WRITE16_MEMBER(cps2_objram1_w);
+ DECLARE_WRITE16_MEMBER(cps2_objram2_w);
+ DECLARE_WRITE8_MEMBER(cps1_oki_pin7_w);
+ DECLARE_WRITE16_MEMBER(sf2m1_layer_w);
+ DECLARE_WRITE16_MEMBER(sf2m3_layer_w);
+ DECLARE_READ16_MEMBER(dinohunt_sound_r);
+ DECLARE_DRIVER_INIT(sf2rb);
+ DECLARE_DRIVER_INIT(sf2rb2);
+ DECLARE_DRIVER_INIT(sf2thndr);
+ DECLARE_DRIVER_INIT(dinohunt);
+ DECLARE_DRIVER_INIT(forgottn);
+ DECLARE_DRIVER_INIT(sf2hack);
+ DECLARE_DRIVER_INIT(slammast);
+ DECLARE_DRIVER_INIT(pang3b);
+ DECLARE_DRIVER_INIT(pang3);
+ DECLARE_DRIVER_INIT(sf2ee);
+ DECLARE_DRIVER_INIT(sf2m8);
+ DECLARE_DRIVER_INIT(cps1);
+ DECLARE_DRIVER_INIT(dino);
+ DECLARE_DRIVER_INIT(punisher);
+ DECLARE_DRIVER_INIT(wof);
+ DECLARE_DRIVER_INIT(ganbare);
+ DECLARE_DRIVER_INIT(cps2_video);
+ DECLARE_DRIVER_INIT(cps2);
+ DECLARE_DRIVER_INIT(cps2nc);
+ DECLARE_DRIVER_INIT(cps2crypt);
+ DECLARE_DRIVER_INIT(ssf2tb);
+ DECLARE_DRIVER_INIT(pzloop2);
+ DECLARE_DRIVER_INIT(singbrd);
+ DECLARE_DRIVER_INIT(gigaman2);
+ DECLARE_DRIVER_INIT(ecofghtr);
+ DECLARE_DRIVER_INIT(sf2dongb);
+ DECLARE_DRIVER_INIT(sf2ceblp);
+ TILEMAP_MAPPER_MEMBER(tilemap0_scan);
+ TILEMAP_MAPPER_MEMBER(tilemap1_scan);
+ TILEMAP_MAPPER_MEMBER(tilemap2_scan);
+ TILE_GET_INFO_MEMBER(get_tile0_info);
+ TILE_GET_INFO_MEMBER(get_tile1_info);
+ TILE_GET_INFO_MEMBER(get_tile2_info);
+ DECLARE_MACHINE_START(cps1);
+ DECLARE_VIDEO_START(cps1);
+ DECLARE_MACHINE_START(common);
+ DECLARE_MACHINE_START(cps2);
+ DECLARE_VIDEO_START(cps2);
+ DECLARE_MACHINE_START(qsound);
+ DECLARE_MACHINE_START(ganbare);
+ DECLARE_MACHINE_RESET(cps);
+ DECLARE_VIDEO_START(cps);
+ DECLARE_MACHINE_START(sf2m1);
+ uint32_t screen_update_cps1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ DECLARE_WRITE_LINE_MEMBER(screen_vblank_cps1);
+ INTERRUPT_GEN_MEMBER(cps1_interrupt);
+ TIMER_DEVICE_CALLBACK_MEMBER(ganbare_interrupt);
+ TIMER_DEVICE_CALLBACK_MEMBER(cps2_interrupt);
+ TIMER_CALLBACK_MEMBER(cps2_update_digital_volume);
+
+ void kabuki_setup(void (*decode)(uint8_t *src, uint8_t *dst));
+
+ /* fcrash handlers */
+ DECLARE_DRIVER_INIT(kodb);
+ DECLARE_DRIVER_INIT(cawingbl);
+ DECLARE_DRIVER_INIT(dinopic);
+ DECLARE_DRIVER_INIT(knightsb);
+ DECLARE_DRIVER_INIT(punipic);
+ DECLARE_DRIVER_INIT(punipic3);
+ DECLARE_DRIVER_INIT(sf2m1);
+ DECLARE_DRIVER_INIT(sf2mdt);
+ DECLARE_DRIVER_INIT(sf2mdta);
+ DECLARE_DRIVER_INIT(sf2mdtb);
+ DECLARE_DRIVER_INIT(sf2b);
+ DECLARE_DRIVER_INIT(slampic);
+ DECLARE_MACHINE_START(fcrash);
+ DECLARE_MACHINE_RESET(fcrash);
+ DECLARE_MACHINE_START(cawingbl);
+ DECLARE_MACHINE_START(dinopic);
+ DECLARE_MACHINE_START(knightsb);
+ DECLARE_MACHINE_START(kodb);
+ DECLARE_MACHINE_START(punipic);
+ DECLARE_MACHINE_START(sf2mdt);
+ DECLARE_MACHINE_START(slampic);
+ DECLARE_MACHINE_START(sgyxz);
+ DECLARE_WRITE16_MEMBER(cawingbl_soundlatch_w);
+ DECLARE_WRITE16_MEMBER(dinopic_layer_w);
+ DECLARE_WRITE16_MEMBER(dinopic_layer2_w);
+ DECLARE_WRITE16_MEMBER(knightsb_layer_w);
+ DECLARE_WRITE16_MEMBER(kodb_layer_w);
+ DECLARE_WRITE16_MEMBER(punipic_layer_w);
+ DECLARE_WRITE16_MEMBER(sf2mdt_layer_w);
+ DECLARE_WRITE16_MEMBER(sf2mdta_layer_w);
+ DECLARE_WRITE16_MEMBER(slampic_layer_w);
+ DECLARE_WRITE16_MEMBER(fcrash_soundlatch_w);
+ DECLARE_WRITE8_MEMBER(fcrash_snd_bankswitch_w);
+ DECLARE_WRITE8_MEMBER(sf2mdt_snd_bankswitch_w);
+ DECLARE_WRITE8_MEMBER(knightsb_snd_bankswitch_w);
+ DECLARE_WRITE8_MEMBER(fcrash_msm5205_0_data_w);
+ DECLARE_WRITE8_MEMBER(fcrash_msm5205_1_data_w);
+ DECLARE_WRITE16_MEMBER(varthb_layer_w);
+ uint32_t screen_update_fcrash(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void fcrash_update_transmasks();
+ void fcrash_render_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void fcrash_render_layer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int primask);
+ void fcrash_render_high_layer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int layer);
+ void fcrash_build_palette();
+
+
+ /* cps video */
+ inline uint16_t *cps1_base( int offset, int boundary );
+ void cps1_get_video_base();
+ void unshuffle(uint64_t *buf, int len);
+ void cps2_gfx_decode();
+ int gfxrom_bank_mapper(int type, int code);
+ void cps1_update_transmasks();
+ void cps1_build_palette(const uint16_t* const palette_base);
+ void cps1_find_last_sprite();
+ void cps1_render_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void cps2_find_last_sprite();
+ void cps2_render_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int *primasks);
+ void cps1_render_stars(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void cps1_render_layer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int primask);
+ void cps1_render_high_layer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int layer);
+ void cps2_set_sprite_priorities();
+ void cps2_objram_latch();
+ uint16_t *cps2_objbase();
+
+
+ /* cps2 driver */
+ void init_digital_volume();
+ DECLARE_READ16_MEMBER(gigaman2_dummyqsound_r);
+ DECLARE_WRITE16_MEMBER(gigaman2_dummyqsound_w);
+ void gigaman2_gfx_reorder();
+ DECLARE_WRITE16_MEMBER(cps2_eeprom_port_w);
+ DECLARE_READ16_MEMBER(cps2_qsound_volume_r);
+ DECLARE_READ16_MEMBER(kludge_r);
+ DECLARE_READ16_MEMBER(joy_or_paddle_r);
+ DECLARE_READ16_MEMBER(joy_or_paddle_ecofghtr_r);
+ DECLARE_WRITE_LINE_MEMBER(m5205_int1);
+ DECLARE_WRITE_LINE_MEMBER(m5205_int2);
+// HBMAME start
+
+ DECLARE_WRITE16_MEMBER(dinoh_sound_command_w);
+ DECLARE_WRITE16_MEMBER(daimakb_layer_w);
+ DECLARE_WRITE16_MEMBER(daimakb_palctrl_w);
+ DECLARE_DRIVER_INIT(dinoeh);
+ DECLARE_DRIVER_INIT(dinoh);
+ DECLARE_DRIVER_INIT(dinoz);
+ DECLARE_DRIVER_INIT(dinohb);
+ DECLARE_DRIVER_INIT(punisherb);
+ DECLARE_DRIVER_INIT(sf2h9);
+ DECLARE_DRIVER_INIT(sf2h13);
+ DECLARE_DRIVER_INIT(sk2h1);
+ DECLARE_DRIVER_INIT(sk2h1q);
+ DECLARE_DRIVER_INIT(sk2h3);
+ DECLARE_DRIVER_INIT(sk2h21);
+ DECLARE_DRIVER_INIT(sk2h22);
+ DECLARE_DRIVER_INIT(sk2h31);
+ DECLARE_DRIVER_INIT(sk2h35);
+ DECLARE_DRIVER_INIT(wofb);
+ DECLARE_MACHINE_START(captcommb2);
+
+// HBMAME end
+};
+
+/*----------- defined in drivers/cps1.c -----------*/
+
+MACHINE_CONFIG_EXTERN(cps1_12MHz);
+
+ADDRESS_MAP_EXTERN( qsound_sub_map, 8 );
+
+GFXDECODE_EXTERN( cps1 );
+
+INPUT_PORTS_EXTERN( dino );
+INPUT_PORTS_EXTERN( knights );
+INPUT_PORTS_EXTERN( punisher );
+INPUT_PORTS_EXTERN( sf2 );
+INPUT_PORTS_EXTERN( slammast );
+INPUT_PORTS_EXTERN( varth );
+// HBMAME start
+INPUT_PORTS_EXTERN( captcomm );
+// HBMAME end
+
+
+#endif
diff --git a/docs/release/src/hbmame/includes/galaga.h b/docs/release/src/hbmame/includes/galaga.h
new file mode 100644
index 00000000000..028f5d4eb37
--- /dev/null
+++ b/docs/release/src/hbmame/includes/galaga.h
@@ -0,0 +1,21 @@
+// license:BSD-3-Clause
+// copyright-holders:Nicola Salmoria
+#include "../mame/includes/galaga.h"
+#include "sound/samples.h"
+#include "machine/namco06.h"
+
+class galaga_hbmame : public galaga_state
+{
+public:
+ galaga_hbmame(const machine_config &mconfig, device_type type, const char *tag)
+ : galaga_state(mconfig, type, tag)
+ , m_samples(*this, "samples")
+ , m_06xx(*this, "06xx")
+ { }
+
+ DECLARE_WRITE8_MEMBER(galaga_sample_w);
+
+private:
+ optional_device<samples_device> m_samples;
+ optional_device<namco_06xx_device> m_06xx;
+};
diff --git a/docs/release/src/hbmame/includes/galaxian.h b/docs/release/src/hbmame/includes/galaxian.h
new file mode 100644
index 00000000000..cf686885bff
--- /dev/null
+++ b/docs/release/src/hbmame/includes/galaxian.h
@@ -0,0 +1,345 @@
+// license:BSD-3-Clause
+// copyright-holders:Aaron Giles, Couriersud
+/***************************************************************************
+
+ Galaxian hardware family
+
+***************************************************************************/
+
+#include "machine/gen_latch.h"
+#include "machine/i8255.h"
+#include "sound/ay8910.h"
+#include "sound/dac.h"
+#include "sound/digitalk.h"
+#include "screen.h"
+
+/* we scale horizontally by 3 to render stars correctly */
+#define GALAXIAN_XSCALE 3
+
+/* master clocks */
+#define GALAXIAN_MASTER_CLOCK (18432000)
+#define GALAXIAN_PIXEL_CLOCK (GALAXIAN_XSCALE*GALAXIAN_MASTER_CLOCK/3)
+
+/* H counts from 128->511, HBLANK starts at 130 and ends at 250 */
+/* we normalize this here so that we count 0->383 with HBLANK */
+/* from 264-383 */
+#define GALAXIAN_HTOTAL (384*GALAXIAN_XSCALE)
+#define GALAXIAN_HBEND (0*GALAXIAN_XSCALE)
+//#define GALAXIAN_H0START (6*GALAXIAN_XSCALE)
+//#define GALAXIAN_HBSTART (264*GALAXIAN_XSCALE)
+#define GALAXIAN_H0START (0*GALAXIAN_XSCALE)
+#define GALAXIAN_HBSTART (256*GALAXIAN_XSCALE)
+
+#define GALAXIAN_VTOTAL (264)
+#define GALAXIAN_VBEND (16)
+#define GALAXIAN_VBSTART (224+16)
+
+
+class galaxian_state : public driver_device
+{
+public:
+ galaxian_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_audio2(*this, "audio2"),
+ m_dac(*this, "dac"),
+ m_ay8910_0(*this, "8910.0"),
+ m_ay8910_1(*this, "8910.1"),
+ m_ay8910_2(*this, "8910.2"),
+ m_ay8910_cclimber(*this, "cclimber_audio:aysnd"),
+ m_digitalker(*this, "digitalker"),
+ m_ppi8255_0(*this, "ppi8255_0"),
+ m_ppi8255_1(*this, "ppi8255_1"),
+ m_ppi8255_2(*this, "ppi8255_2"),
+ m_gfxdecode(*this, "gfxdecode"),
+ m_screen(*this, "screen"),
+ m_palette(*this, "palette"),
+ m_soundlatch(*this, "soundlatch"),
+ m_fake_select(*this, "FAKE_SELECT"),
+ m_tenspot_game_dsw(*this, {"IN2_GAME0", "IN2_GAME1", "IN2_GAME2", "IN2_GAME3", "IN2_GAME4", "IN2_GAME5", "IN2_GAME6", "IN2_GAME7", "IN2_GAME8", "IN2_GAME9"}),
+ m_spriteram(*this, "spriteram"),
+ m_videoram(*this, "videoram"),
+ m_decrypted_opcodes(*this, "decrypted_opcodes") { }
+
+ required_device<cpu_device> m_maincpu;
+ optional_device<cpu_device> m_audiocpu;
+ optional_device<cpu_device> m_audio2;
+ optional_device<dac_byte_interface> m_dac;
+ optional_device<ay8910_device> m_ay8910_0;
+ optional_device<ay8910_device> m_ay8910_1;
+ optional_device<ay8910_device> m_ay8910_2;
+ optional_device<ay8910_device> m_ay8910_cclimber;
+ optional_device<digitalker_device> m_digitalker;
+ optional_device<i8255_device> m_ppi8255_0;
+ optional_device<i8255_device> m_ppi8255_1;
+ optional_device<i8255_device> m_ppi8255_2;
+ required_device<gfxdecode_device> m_gfxdecode;
+ required_device<screen_device> m_screen;
+ required_device<palette_device> m_palette;
+ optional_device<generic_latch_8_device> m_soundlatch;
+
+ optional_ioport m_fake_select;
+ optional_ioport_array<10> m_tenspot_game_dsw;
+
+ required_shared_ptr<uint8_t> m_spriteram;
+ required_shared_ptr<uint8_t> m_videoram;
+ optional_shared_ptr<uint8_t> m_decrypted_opcodes;
+
+ int m_bullets_base;
+ int m_sprites_base;
+ int m_numspritegens;
+ int m_counter_74ls161[2];
+ int m_direction[2];
+ uint8_t m_gmgalax_selected_game;
+ uint8_t m_zigzag_ay8910_latch;
+ uint8_t m_kingball_speech_dip;
+ uint8_t m_kingball_sound;
+ uint8_t m_mshuttle_ay8910_cs;
+ uint16_t m_protection_state;
+ uint8_t m_protection_result;
+ uint8_t m_konami_sound_control;
+ uint8_t m_sfx_sample_control;
+ uint8_t m_moonwar_port_select;
+ uint8_t m_irq_enabled;
+ int m_irq_line;
+ int m_tenspot_current_game;
+ uint8_t m_frogger_adjust;
+ uint8_t m_sfx_tilemap;
+
+ /* video extension callbacks */
+ typedef void (galaxian_state::*galaxian_extend_tile_info_func)(uint16_t *code, uint8_t *color, uint8_t attrib, uint8_t x);
+ typedef void (galaxian_state::*galaxian_extend_sprite_info_func)(const uint8_t *base, uint8_t *sx, uint8_t *sy, uint8_t *flipx, uint8_t *flipy, uint16_t *code, uint8_t *color);
+ typedef void (galaxian_state::*galaxian_draw_bullet_func)(bitmap_rgb32 &bitmap, const rectangle &cliprect, int offs, int x, int y);
+ typedef void (galaxian_state::*galaxian_draw_background_func)(bitmap_rgb32 &bitmap, const rectangle &cliprect);
+
+ galaxian_extend_tile_info_func m_extend_tile_info_ptr;
+ galaxian_extend_sprite_info_func m_extend_sprite_info_ptr;
+ galaxian_draw_bullet_func m_draw_bullet_ptr;
+ galaxian_draw_background_func m_draw_background_ptr;
+
+ tilemap_t *m_bg_tilemap;
+ uint8_t m_flipscreen_x;
+ uint8_t m_flipscreen_y;
+ uint8_t m_background_enable;
+ uint8_t m_background_red;
+ uint8_t m_background_green;
+ uint8_t m_background_blue;
+ uint32_t m_star_rng_origin;
+ uint32_t m_star_rng_origin_frame;
+ rgb_t m_star_color[64];
+ std::unique_ptr<uint8_t[]> m_stars;
+ uint8_t m_stars_enabled;
+ uint8_t m_stars_blink_state;
+ rgb_t m_bullet_color[8];
+ uint8_t m_gfxbank[5];
+ DECLARE_WRITE8_MEMBER(galaxian_videoram_w);
+ DECLARE_WRITE8_MEMBER(galaxian_objram_w);
+ DECLARE_WRITE8_MEMBER(galaxian_flip_screen_x_w);
+ DECLARE_WRITE8_MEMBER(galaxian_flip_screen_y_w);
+ DECLARE_WRITE8_MEMBER(galaxian_flip_screen_xy_w);
+ DECLARE_WRITE8_MEMBER(galaxian_stars_enable_w);
+ DECLARE_WRITE8_MEMBER(scramble_background_enable_w);
+ DECLARE_WRITE8_MEMBER(scramble_background_red_w);
+ DECLARE_WRITE8_MEMBER(scramble_background_green_w);
+ DECLARE_WRITE8_MEMBER(scramble_background_blue_w);
+ DECLARE_WRITE8_MEMBER(galaxian_gfxbank_w);
+ DECLARE_CUSTOM_INPUT_MEMBER(scramble_protection_alt_r);
+ DECLARE_CUSTOM_INPUT_MEMBER(gmgalax_port_r);
+ DECLARE_CUSTOM_INPUT_MEMBER(azurian_port_r);
+ DECLARE_CUSTOM_INPUT_MEMBER(kingball_muxbit_r);
+ DECLARE_CUSTOM_INPUT_MEMBER(kingball_noise_r);
+ DECLARE_CUSTOM_INPUT_MEMBER(moonwar_dial_r);
+ DECLARE_WRITE8_MEMBER(irq_enable_w);
+ DECLARE_WRITE8_MEMBER(start_lamp_w);
+ DECLARE_WRITE8_MEMBER(coin_lock_w);
+ DECLARE_WRITE8_MEMBER(coin_count_0_w);
+ DECLARE_WRITE8_MEMBER(coin_count_1_w);
+ DECLARE_READ8_MEMBER(konami_ay8910_r);
+ DECLARE_WRITE8_MEMBER(konami_ay8910_w);
+ DECLARE_WRITE8_MEMBER(konami_sound_filter_w);
+ DECLARE_READ8_MEMBER(theend_ppi8255_r);
+ DECLARE_WRITE8_MEMBER(theend_ppi8255_w);
+ DECLARE_WRITE8_MEMBER(explorer_sound_control_w);
+ DECLARE_READ8_MEMBER(sfx_sample_io_r);
+ DECLARE_WRITE8_MEMBER(sfx_sample_io_w);
+ DECLARE_READ8_MEMBER(monsterz_protection_r);
+ DECLARE_READ8_MEMBER(frogger_ppi8255_r);
+ DECLARE_WRITE8_MEMBER(frogger_ppi8255_w);
+ DECLARE_READ8_MEMBER(frogger_ay8910_r);
+ DECLARE_WRITE8_MEMBER(frogger_ay8910_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);
+ DECLARE_READ8_MEMBER(turtles_ppi8255_1_r);
+ DECLARE_WRITE8_MEMBER(turtles_ppi8255_0_w);
+ DECLARE_WRITE8_MEMBER(turtles_ppi8255_1_w);
+ DECLARE_READ8_MEMBER(scorpion_ay8910_r);
+ DECLARE_WRITE8_MEMBER(scorpion_ay8910_w);
+ DECLARE_READ8_MEMBER(scorpion_digitalker_intr_r);
+ DECLARE_WRITE8_MEMBER(zigzag_bankswap_w);
+ DECLARE_WRITE8_MEMBER(zigzag_ay8910_w);
+ DECLARE_WRITE8_MEMBER(kingball_speech_dip_w);
+ DECLARE_WRITE8_MEMBER(kingball_sound1_w);
+ DECLARE_WRITE8_MEMBER(kingball_sound2_w);
+ DECLARE_WRITE8_MEMBER(mshuttle_ay8910_cs_w);
+ DECLARE_WRITE8_MEMBER(mshuttle_ay8910_control_w);
+ DECLARE_WRITE8_MEMBER(mshuttle_ay8910_data_w);
+ DECLARE_READ8_MEMBER(mshuttle_ay8910_data_r);
+ DECLARE_READ8_MEMBER(jumpbug_protection_r);
+ DECLARE_WRITE8_MEMBER(checkman_sound_command_w);
+ DECLARE_READ8_MEMBER(checkmaj_protection_r);
+ DECLARE_READ8_MEMBER(dingo_3000_r);
+ DECLARE_READ8_MEMBER(dingo_3035_r);
+ DECLARE_READ8_MEMBER(dingoe_3001_r);
+ DECLARE_WRITE8_MEMBER(tenspot_unk_6000_w);
+ DECLARE_WRITE8_MEMBER(tenspot_unk_8000_w);
+ DECLARE_WRITE8_MEMBER(tenspot_unk_e000_w);
+ DECLARE_WRITE8_MEMBER(artic_gfxbank_w);
+ DECLARE_READ8_MEMBER(tenspot_dsw_read);
+ DECLARE_INPUT_CHANGED_MEMBER(gmgalax_game_changed);
+ DECLARE_WRITE8_MEMBER(konami_sound_control_w);
+ DECLARE_READ8_MEMBER(konami_sound_timer_r);
+ DECLARE_WRITE8_MEMBER(konami_portc_0_w);
+ DECLARE_WRITE8_MEMBER(konami_portc_1_w);
+ DECLARE_WRITE8_MEMBER(theend_coin_counter_w);
+ DECLARE_WRITE8_MEMBER(scramble_protection_w);
+ DECLARE_READ8_MEMBER(scramble_protection_r);
+ DECLARE_READ8_MEMBER(explorer_sound_latch_r);
+ DECLARE_WRITE8_MEMBER(sfx_sample_control_w);
+ DECLARE_WRITE8_MEMBER(monsterz_porta_1_w);
+ DECLARE_WRITE8_MEMBER(monsterz_portb_1_w);
+ DECLARE_WRITE8_MEMBER(monsterz_portc_1_w);
+ DECLARE_READ8_MEMBER(frogger_sound_timer_r);
+ DECLARE_READ8_MEMBER(scorpion_protection_r);
+ DECLARE_WRITE8_MEMBER(scorpion_protection_w);
+ DECLARE_WRITE8_MEMBER(scorpion_digitalker_control_w);
+ DECLARE_WRITE8_MEMBER(kingball_dac_w);
+ DECLARE_WRITE8_MEMBER(moonwar_port_select_w);
+ DECLARE_DRIVER_INIT(galaxian);
+ DECLARE_DRIVER_INIT(nolock);
+ DECLARE_DRIVER_INIT(azurian);
+ DECLARE_DRIVER_INIT(gmgalax);
+ DECLARE_DRIVER_INIT(pisces);
+ DECLARE_DRIVER_INIT(batman2);
+ DECLARE_DRIVER_INIT(frogg);
+ DECLARE_DRIVER_INIT(mooncrst);
+ DECLARE_DRIVER_INIT(mooncrsu);
+ DECLARE_DRIVER_INIT(mooncrgx);
+ DECLARE_DRIVER_INIT(moonqsr);
+ DECLARE_DRIVER_INIT(pacmanbl);
+ DECLARE_DRIVER_INIT(tenspot);
+ DECLARE_DRIVER_INIT(devilfsg);
+ DECLARE_DRIVER_INIT(zigzag);
+ DECLARE_DRIVER_INIT(jumpbug);
+ DECLARE_DRIVER_INIT(checkman);
+ DECLARE_DRIVER_INIT(checkmaj);
+ DECLARE_DRIVER_INIT(dingo);
+ DECLARE_DRIVER_INIT(dingoe);
+ DECLARE_DRIVER_INIT(skybase);
+ DECLARE_DRIVER_INIT(kong);
+ DECLARE_DRIVER_INIT(mshuttle);
+ DECLARE_DRIVER_INIT(mshuttlj);
+ DECLARE_DRIVER_INIT(fantastc);
+ DECLARE_DRIVER_INIT(timefgtr);
+ DECLARE_DRIVER_INIT(kingball);
+ DECLARE_DRIVER_INIT(scorpnmc);
+ DECLARE_DRIVER_INIT(thepitm);
+ DECLARE_DRIVER_INIT(theend);
+ DECLARE_DRIVER_INIT(scramble);
+ 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(froggermc);
+ DECLARE_DRIVER_INIT(froggers);
+ DECLARE_DRIVER_INIT(quaak);
+ DECLARE_DRIVER_INIT(turtles);
+ DECLARE_DRIVER_INIT(scorpion);
+ DECLARE_DRIVER_INIT(anteater);
+ DECLARE_DRIVER_INIT(anteateruk);
+ DECLARE_DRIVER_INIT(superbon);
+ DECLARE_DRIVER_INIT(calipso);
+ DECLARE_DRIVER_INIT(moonwar);
+ DECLARE_DRIVER_INIT(ghostmun);
+ DECLARE_DRIVER_INIT(froggrs);
+ DECLARE_DRIVER_INIT(warofbugg);
+ DECLARE_DRIVER_INIT(jungsub);
+ TILE_GET_INFO_MEMBER(bg_get_tile_info);
+ virtual void video_start() override;
+ DECLARE_PALETTE_INIT(galaxian);
+ DECLARE_PALETTE_INIT(moonwar);
+ void tenspot_set_game_bank(int bank, int from_game);
+ uint32_t screen_update_galaxian(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ INTERRUPT_GEN_MEMBER(interrupt_gen);
+ INTERRUPT_GEN_MEMBER(fakechange_interrupt_gen);
+ TIMER_DEVICE_CALLBACK_MEMBER(checkmaj_irq0_gen);
+ TIMER_DEVICE_CALLBACK_MEMBER(galaxian_stars_blink_timer);
+ TIMER_DEVICE_CALLBACK_MEMBER(timefgtr_scanline);
+ void state_save_register();
+ void sprites_draw(bitmap_rgb32 &bitmap, const rectangle &cliprect, const uint8_t *spritebase);
+ void bullets_draw(bitmap_rgb32 &bitmap, const rectangle &cliprect, const uint8_t *base);
+ void stars_init();
+ void stars_update_origin();
+ void stars_draw_row(bitmap_rgb32 &bitmap, int maxx, int y, uint32_t star_offs, uint8_t starmask);
+ void galaxian_draw_background(bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ void background_draw_colorsplit(bitmap_rgb32 &bitmap, const rectangle &cliprect, rgb_t color, int split, int split_flipped);
+ void scramble_draw_stars(bitmap_rgb32 &bitmap, const rectangle &cliprect, int maxx);
+ void scramble_draw_background(bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ void anteater_draw_background(bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ void jumpbug_draw_background(bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ void turtles_draw_background(bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ void frogger_draw_background(bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ void quaak_draw_background(bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ inline void galaxian_draw_pixel(bitmap_rgb32 &bitmap, const rectangle &cliprect, int y, int x, rgb_t color);
+ void galaxian_draw_bullet(bitmap_rgb32 &bitmap, const rectangle &cliprect, int offs, int x, int y);
+ void mshuttle_draw_bullet(bitmap_rgb32 &bitmap, const rectangle &cliprect, int offs, int x, int y);
+ void scramble_draw_bullet(bitmap_rgb32 &bitmap, const rectangle &cliprect, int offs, int x, int y);
+ void theend_draw_bullet(bitmap_rgb32 &bitmap, const rectangle &cliprect, int offs, int x, int y);
+ void upper_extend_tile_info(uint16_t *code, uint8_t *color, uint8_t attrib, uint8_t x);
+ void upper_extend_sprite_info(const uint8_t *base, uint8_t *sx, uint8_t *sy, uint8_t *flipx, uint8_t *flipy, uint16_t *code, uint8_t *color);
+ void frogger_extend_tile_info(uint16_t *code, uint8_t *color, uint8_t attrib, uint8_t x);
+ void frogger_extend_sprite_info(const uint8_t *base, uint8_t *sx, uint8_t *sy, uint8_t *flipx, uint8_t *flipy, uint16_t *code, uint8_t *color);
+ void gmgalax_extend_tile_info(uint16_t *code, uint8_t *color, uint8_t attrib, uint8_t x);
+ void gmgalax_extend_sprite_info(const uint8_t *base, uint8_t *sx, uint8_t *sy, uint8_t *flipx, uint8_t *flipy, uint16_t *code, uint8_t *color);
+ void pisces_extend_tile_info(uint16_t *code, uint8_t *color, uint8_t attrib, uint8_t x);
+ void pisces_extend_sprite_info(const uint8_t *base, uint8_t *sx, uint8_t *sy, uint8_t *flipx, uint8_t *flipy, uint16_t *code, uint8_t *color);
+ void batman2_extend_tile_info(uint16_t *code, uint8_t *color, uint8_t attrib, uint8_t x);
+ void mooncrst_extend_tile_info(uint16_t *code, uint8_t *color, uint8_t attrib, uint8_t x);
+ void mooncrst_extend_sprite_info(const uint8_t *base, uint8_t *sx, uint8_t *sy, uint8_t *flipx, uint8_t *flipy, uint16_t *code, uint8_t *color);
+ void moonqsr_extend_tile_info(uint16_t *code, uint8_t *color, uint8_t attrib, uint8_t x);
+ void moonqsr_extend_sprite_info(const uint8_t *base, uint8_t *sx, uint8_t *sy, uint8_t *flipx, uint8_t *flipy, uint16_t *code, uint8_t *color);
+ void mshuttle_extend_tile_info(uint16_t *code, uint8_t *color, uint8_t attrib, uint8_t x);
+ void mshuttle_extend_sprite_info(const uint8_t *base, uint8_t *sx, uint8_t *sy, uint8_t *flipx, uint8_t *flipy, uint16_t *code, uint8_t *color);
+ void calipso_extend_sprite_info(const uint8_t *base, uint8_t *sx, uint8_t *sy, uint8_t *flipx, uint8_t *flipy, uint16_t *code, uint8_t *color);
+ void jumpbug_extend_tile_info(uint16_t *code, uint8_t *color, uint8_t attrib, uint8_t x);
+ void jumpbug_extend_sprite_info(const uint8_t *base, uint8_t *sx, uint8_t *sy, uint8_t *flipx, uint8_t *flipy, uint16_t *code, uint8_t *color);
+ void monsterz_set_latch();
+ void decode_mooncrst(int length, uint8_t *dest);
+ 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();
+ void decode_superbon();
+ void unmap_galaxian_sound(offs_t base);
+ void mshuttle_decode(const uint8_t convtable[8][16]);
+ void common_init(galaxian_draw_bullet_func draw_bullet,galaxian_draw_background_func draw_background,
+ galaxian_extend_tile_info_func extend_tile_info,galaxian_extend_sprite_info_func extend_sprite_info);
+//HBMAME start
+ DECLARE_WRITE8_MEMBER(fourplay_rombank_w);
+ DECLARE_WRITE8_MEMBER(videight_rombank_w);
+ DECLARE_WRITE8_MEMBER(videight_gfxbank_w);
+ DECLARE_DRIVER_INIT(fourplay);
+ DECLARE_DRIVER_INIT(trukker);
+ DECLARE_DRIVER_INIT(videight);
+ void videight_extend_tile_info(uint16_t *code, uint8_t *color, uint8_t attrib, uint8_t x);
+ void videight_extend_sprite_info(const uint8_t *base, uint8_t *sx, uint8_t *sy, uint8_t *flipx, uint8_t *flipy, uint16_t *code, uint8_t *color);
+//HBMAME end
+};
diff --git a/docs/release/src/hbmame/includes/neogeo.h b/docs/release/src/hbmame/includes/neogeo.h
new file mode 100644
index 00000000000..8c30a57fa4a
--- /dev/null
+++ b/docs/release/src/hbmame/includes/neogeo.h
@@ -0,0 +1,508 @@
+// license:BSD-3-Clause
+// copyright-holders:Bryan McPhail,Ernesto Corvi,Andrew Prime,Zsolt Vasvari
+// thanks-to:Fuzz
+/*************************************************************************
+
+ Neo-Geo hardware
+
+*************************************************************************/
+
+#include "machine/upd1990a.h"
+#include "machine/ng_memcard.h"
+#include "machine/gen_latch.h"
+#include "video/neogeo_spr.h"
+#include "bus/neogeo/prot.h"
+#include "bus/neogeo/banked_cart.h"
+#include "bus/neogeo_ctrl/ctrl.h"
+#include "screen.h"
+#include "speaker.h"
+
+// On scanline 224, /VBLANK goes low 56 mclks (14 pixels) from the rising edge of /HSYNC.
+// Two mclks after /VBLANK goes low, the hardware sets a pending IRQ1 flip-flop.
+#define NEOGEO_VBLANK_IRQ_HTIM (attotime::from_ticks(56+2, NEOGEO_MASTER_CLOCK))
+
+class neogeo_state : public driver_device
+{
+public:
+ neogeo_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag),
+ m_banked_cart(*this, "banked_cart"),
+ m_maincpu(*this, "maincpu"),
+ m_audiocpu(*this, "audiocpu"),
+ m_region_maincpu(*this, "maincpu"),
+ m_region_sprites(*this, "sprites"),
+ m_region_fixed(*this, "fixed"),
+ m_region_fixedbios(*this, "fixedbios"),
+ m_bank_audio_main(*this, "audio_main"),
+ m_upd4990a(*this, "upd4990a"),
+ m_save_ram(*this, "saveram"),
+ m_screen(*this, "screen"),
+ m_palette(*this, "palette"),
+ m_memcard(*this, "memcard"),
+ m_dsw(*this, "DSW"),
+ m_trackx(*this, "TRACK_X"),
+ m_tracky(*this, "TRACK_Y"),
+ m_edge(*this, "edge"),
+ m_ctrl1(*this, "ctrl1"),
+ m_ctrl2(*this, "ctrl2"),
+ m_sprgen(*this, "spritegen"),
+ m_soundlatch(*this, "soundlatch"),
+ m_soundlatch2(*this, "soundlatch2"),
+ m_use_cart_vectors(0),
+ m_use_cart_audio(0)
+ { }
+
+ DECLARE_WRITE8_MEMBER(io_control_w);
+ DECLARE_READ16_MEMBER(memcard_r);
+ DECLARE_WRITE16_MEMBER(memcard_w);
+ DECLARE_WRITE8_MEMBER(audio_command_w);
+ DECLARE_READ8_MEMBER(audio_command_r);
+ DECLARE_READ8_MEMBER(audio_cpu_bank_select_r);
+ DECLARE_WRITE8_MEMBER(audio_cpu_enable_nmi_w);
+ DECLARE_WRITE8_MEMBER(system_control_w);
+ DECLARE_READ16_MEMBER(neogeo_unmapped_r);
+ DECLARE_READ16_MEMBER(neogeo_paletteram_r);
+ DECLARE_WRITE16_MEMBER(neogeo_paletteram_w);
+ DECLARE_READ16_MEMBER(neogeo_video_register_r);
+ DECLARE_WRITE16_MEMBER(neogeo_video_register_w);
+ READ16_MEMBER(banked_vectors_r);
+ DECLARE_READ16_MEMBER(in0_r);
+ DECLARE_READ16_MEMBER(in1_r);
+
+ void set_slot_number(int slot);
+
+ DECLARE_CUSTOM_INPUT_MEMBER(get_memcard_status);
+ DECLARE_CUSTOM_INPUT_MEMBER(get_audio_result);
+
+ TIMER_CALLBACK_MEMBER(display_position_interrupt_callback);
+ TIMER_CALLBACK_MEMBER(display_position_vblank_callback);
+ TIMER_CALLBACK_MEMBER(vblank_interrupt_callback);
+
+ // MVS-specific
+ DECLARE_WRITE16_MEMBER(save_ram_w);
+ DECLARE_CUSTOM_INPUT_MEMBER(kizuna4p_start_r);
+ DECLARE_INPUT_CHANGED_MEMBER(select_bios);
+
+ uint32_t screen_update_neogeo(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+
+ DECLARE_DRIVER_INIT(neogeo);
+ DECLARE_DRIVER_INIT(mvs);
+
+ optional_device<neogeo_banked_cart_device> m_banked_cart;
+
+protected:
+ void neogeo_postload();
+ void update_interrupts();
+ void create_interrupt_timers();
+ void start_interrupt_timers();
+ void neogeo_acknowledge_interrupt(uint16_t data);
+
+ void neogeo_main_cpu_banking_init();
+ void neogeo_audio_cpu_banking_init(int set_entry);
+ void adjust_display_position_interrupt_timer();
+ void neogeo_set_display_position_interrupt_control(uint16_t data);
+ void neogeo_set_display_counter_msb(uint16_t data);
+ void neogeo_set_display_counter_lsb(uint16_t data);
+ void set_video_control( uint16_t data );
+
+ void create_rgb_lookups();
+ void set_pens();
+ void neogeo_set_screen_shadow( int data );
+ void neogeo_set_palette_bank( int data );
+
+ void audio_cpu_check_nmi();
+ void set_save_ram_unlock( uint8_t data );
+ void set_outputs( );
+ void set_output_latch( uint8_t data );
+ void set_output_data( uint8_t data );
+
+
+ // device overrides
+ virtual void machine_start() override;
+ virtual void machine_reset() override;
+
+ // devices
+ required_device<cpu_device> m_maincpu;
+ required_device<cpu_device> m_audiocpu;
+
+ // memory
+ required_memory_region m_region_maincpu;
+ required_memory_region m_region_sprites;
+ required_memory_region m_region_fixed;
+ optional_memory_region m_region_fixedbios;
+ optional_memory_bank m_bank_audio_main; // optional because of neocd
+ memory_bank *m_bank_audio_cart[4];
+
+ // MVS-specific devices
+ optional_device<upd4990a_device> m_upd4990a;
+ optional_shared_ptr<uint16_t> m_save_ram;
+
+ required_device<screen_device> m_screen;
+ optional_device<palette_device> m_palette;
+ optional_device<ng_memcard_device> m_memcard;
+
+ // configuration
+ enum {NEOGEO_MVS, NEOGEO_AES, NEOGEO_CD} m_type;
+
+ // internal state
+ bool m_recurse;
+ bool m_audio_cpu_nmi_enabled;
+ bool m_audio_cpu_nmi_pending;
+
+ // MVS-specific state
+ uint8_t m_save_ram_unlocked;
+ uint8_t m_output_data;
+ uint8_t m_output_latch;
+ uint8_t m_el_value;
+ uint8_t m_led1_value;
+ uint8_t m_led2_value;
+
+ optional_ioport m_dsw;
+ optional_ioport m_trackx;
+ optional_ioport m_tracky;
+ optional_device<neogeo_ctrl_edge_port_device> m_edge;
+ optional_device<neogeo_control_port_device> m_ctrl1;
+ optional_device<neogeo_control_port_device> m_ctrl2;
+
+ // video hardware, including maincpu interrupts
+ // TODO: make into a device
+ virtual void video_start() override;
+ virtual void video_reset() override;
+
+ emu_timer *m_display_position_interrupt_timer;
+ emu_timer *m_display_position_vblank_timer;
+ emu_timer *m_vblank_interrupt_timer;
+ uint32_t m_display_counter;
+ uint8_t m_vblank_interrupt_pending;
+ uint8_t m_display_position_interrupt_pending;
+ uint8_t m_irq3_pending;
+ uint8_t m_display_position_interrupt_control;
+ uint8_t m_vblank_level;
+ uint8_t m_raster_level;
+
+ required_device<neosprite_device> m_sprgen;
+ optional_device<generic_latch_8_device> m_soundlatch;
+ optional_device<generic_latch_8_device> m_soundlatch2;
+ uint16_t get_video_control( );
+
+ // color/palette related
+ std::vector<uint16_t> m_paletteram;
+ uint8_t m_palette_lookup[32][4];
+ const pen_t *m_bg_pen;
+ int m_screen_shadow;
+ int m_palette_bank;
+
+ int m_use_cart_vectors;
+ int m_use_cart_audio;
+
+
+public:
+ DECLARE_READ16_MEMBER(neogeo_slot_rom_low_r);
+ DECLARE_READ16_MEMBER(neogeo_slot_rom_low_bectors_r);
+
+};
+
+
+class neogeo_noslot_state : public neogeo_state
+{
+ public:
+ neogeo_noslot_state(const machine_config &mconfig, device_type type, const char *tag)
+ : neogeo_state(mconfig, type, tag),
+ /* legacy cartridge specifics */
+ m_mslugx_prot(*this, "mslugx_prot"),
+ m_sma_prot(*this, "sma_prot"),
+ m_cmc_prot(*this, "cmc_prot"),
+ m_pcm2_prot(*this, "pcm2_prot"),
+ m_pvc_prot(*this, "pvc_prot"),
+ m_bootleg_prot(*this, "bootleg_prot"),
+ m_kof2002_prot(*this, "kof2002_prot"),
+ m_fatfury2_prot(*this, "fatfury2_prot"),
+ m_kof98_prot(*this, "kof98_prot"),
+ m_sbp_prot(*this, "sbp_prot") {}
+
+ DECLARE_DRIVER_INIT(fatfury2);
+ DECLARE_DRIVER_INIT(zupapa);
+ DECLARE_DRIVER_INIT(kof98);
+ DECLARE_DRIVER_INIT(mslugx);
+ DECLARE_DRIVER_INIT(kof99);
+ DECLARE_DRIVER_INIT(kof99k);
+ DECLARE_DRIVER_INIT(garou);
+ DECLARE_DRIVER_INIT(garouh);
+ DECLARE_DRIVER_INIT(garoubl);
+ DECLARE_DRIVER_INIT(mslug3);
+ DECLARE_DRIVER_INIT(mslug3h);
+ DECLARE_DRIVER_INIT(mslug3b6);
+ DECLARE_DRIVER_INIT(kof2000);
+ DECLARE_DRIVER_INIT(kof2000n);
+ DECLARE_DRIVER_INIT(kof2001);
+ DECLARE_DRIVER_INIT(cthd2003);
+ DECLARE_DRIVER_INIT(ct2k3sp);
+ DECLARE_DRIVER_INIT(ct2k3sa);
+ DECLARE_DRIVER_INIT(mslug4);
+ DECLARE_DRIVER_INIT(ms4plus);
+ DECLARE_DRIVER_INIT(ganryu);
+ DECLARE_DRIVER_INIT(s1945p);
+ DECLARE_DRIVER_INIT(preisle2);
+ DECLARE_DRIVER_INIT(bangbead);
+ DECLARE_DRIVER_INIT(nitd);
+ DECLARE_DRIVER_INIT(sengoku3);
+ DECLARE_DRIVER_INIT(rotd);
+ DECLARE_DRIVER_INIT(kof2002);
+ DECLARE_DRIVER_INIT(kof2002b);
+ DECLARE_DRIVER_INIT(kf2k2pls);
+ DECLARE_DRIVER_INIT(kf2k2mp);
+ DECLARE_DRIVER_INIT(kf2k2mp2);
+ DECLARE_DRIVER_INIT(kof10th);
+ DECLARE_DRIVER_INIT(kf10thep);
+ DECLARE_DRIVER_INIT(kf2k5uni);
+ DECLARE_DRIVER_INIT(kof2k4se);
+ DECLARE_DRIVER_INIT(matrim);
+ DECLARE_DRIVER_INIT(matrimbl);
+ DECLARE_DRIVER_INIT(pnyaa);
+ DECLARE_DRIVER_INIT(mslug5);
+ DECLARE_DRIVER_INIT(ms5pcb);
+ DECLARE_DRIVER_INIT(ms5plus);
+ DECLARE_DRIVER_INIT(svcpcb);
+ DECLARE_DRIVER_INIT(svc);
+ DECLARE_DRIVER_INIT(svcboot);
+ DECLARE_DRIVER_INIT(svcplus);
+ DECLARE_DRIVER_INIT(svcplusa);
+ DECLARE_DRIVER_INIT(svcsplus);
+ DECLARE_DRIVER_INIT(samsho5);
+ DECLARE_DRIVER_INIT(samsho5b);
+ DECLARE_DRIVER_INIT(kf2k3pcb);
+ DECLARE_DRIVER_INIT(kof2003);
+ DECLARE_DRIVER_INIT(kof2003h);
+ DECLARE_DRIVER_INIT(kf2k3bl);
+ DECLARE_DRIVER_INIT(kf2k3pl);
+ DECLARE_DRIVER_INIT(kf2k3upl);
+ DECLARE_DRIVER_INIT(samsh5sp);
+ DECLARE_DRIVER_INIT(jockeygp);
+ DECLARE_DRIVER_INIT(vliner);
+ DECLARE_DRIVER_INIT(kof97oro);
+ DECLARE_DRIVER_INIT(lans2004);
+ DECLARE_DRIVER_INIT(sbp);
+ DECLARE_DRIVER_INIT(irrmaze);
+
+ void install_banked_bios();
+
+ // legacy
+ optional_device<mslugx_prot_device> m_mslugx_prot;
+ optional_device<sma_prot_device> m_sma_prot;
+ optional_device<cmc_prot_device> m_cmc_prot;
+ optional_device<pcm2_prot_device> m_pcm2_prot;
+ optional_device<pvc_prot_device> m_pvc_prot;
+ optional_device<ngbootleg_prot_device> m_bootleg_prot;
+ optional_device<kof2002_prot_device> m_kof2002_prot;
+ optional_device<fatfury2_prot_device> m_fatfury2_prot;
+ optional_device<kof98_prot_device> m_kof98_prot;
+ optional_device<sbp_prot_device> m_sbp_prot;
+};
+
+class neogeo_noslot_kog_state : public neogeo_state
+{
+public:
+ neogeo_noslot_kog_state(const machine_config &mconfig, device_type type, const char *tag)
+ : neogeo_state(mconfig, type, tag),
+ /* legacy cartridge specifics */
+ m_bootleg_prot(*this, "bootleg_prot"),
+ m_kog_prot(*this, "kog_prot") {}
+
+
+ DECLARE_DRIVER_INIT(kog);
+
+ // legacy
+ optional_device<ngbootleg_prot_device> m_bootleg_prot;
+ optional_device<kog_prot_device> m_kog_prot;
+};
+
+/*----------- defined in drivers/neogeo.c -----------*/
+
+MACHINE_CONFIG_EXTERN( neogeo_base );
+MACHINE_CONFIG_EXTERN( neogeo_arcade );
+INPUT_PORTS_EXTERN(neogeo);
+ADDRESS_MAP_EXTERN(neogeo_main_map,16);
+
+/*************************************
+ *
+ * Neo-Geo bios
+ *
+ *************************************
+
+ These are the known Bios Roms, Set options.bios to the one you want.
+
+ The Universe bios roms are supported because they're now used on enough PCBs
+ to be considered 'in active arcade use' rather than just homebrew hacks.
+ Some may be missing, there have been multiple CRCs reported for the same
+ revision in some cases (the Universe bios has an option for entering / displaying
+ a serial number; these should be noted as such if they're added).
+ Universe bios prior to version 1.3 was incompatible with AES.
+
+ The 'japan-hotel' BIOS is a dump of an MVS which could be found in some japanese
+ hotels. it is a custom MVS mobo which uses MVS carts but it hasn't jamma
+ connector and it's similar to a console with a coin mechanism, so it's a sort
+ of little coin op console installed in hotels.
+
+ The sp-45.sp1 bios is the latest 'ASIA' revision. Japan-j3.bin is the latest 'JAPAN'
+ revision. Both of them are also used in the sp-4x.sp1 bios of the Jamma PCB boards.
+
+ The current Neo-Geo MVS system set (SFIX/SM1/000-LO) used is from a NEO-MVH MV1FS board.
+ Other boards (MV1xx / MV2x / MV4x /MV6x) other system sets?
+
+ Zoom ROM (LO) 128K TC531000CP 1x 128Kx8 Zoom look-up table ROM
+ Fix ROM (SFIX) 128K 27C1000 1x 128Kx8 Text layer graphics ROM
+ Sound ROM (SM1) 128K 27C1000/23C1000 1x 128Kx8 Z80 program ROM
+
+*/
+
+#define ROM_LOAD16_WORD_SWAP_BIOS(bios,name,offset,length,hash) \
+ ROMX_LOAD(name, offset, length, hash, ROM_GROUPWORD | ROM_REVERSE | ROM_OPTIONAL | ROM_BIOS(bios+1)) /* Note '+1' */
+
+#define NEOGEO_UNIBIOS(x) \
+ ROM_SYSTEM_BIOS( x+ 0, "unibios32", "Universe Bios (Hack, Ver. 3.2)" ) \
+ ROM_LOAD16_WORD_SWAP_BIOS( x+ 0, "uni-bios_3_2.rom", 0x00000, 0x020000, CRC(a4e8b9b3) SHA1(c92f18c3f1edda543d264ecd0ea915240e7c8258) ) /* Universe Bios v3.2 (hack) */ \
+ ROM_SYSTEM_BIOS( x+ 1, "unibios31", "Universe Bios (Hack, Ver. 3.1)" ) \
+ ROM_LOAD16_WORD_SWAP_BIOS( x+ 1, "uni-bios_3_1.rom", 0x00000, 0x020000, CRC(0c58093f) SHA1(29329a3448c2505e1ff45ffa75e61e9693165153) ) /* Universe Bios v3.1 (hack) */ \
+ ROM_SYSTEM_BIOS( x+ 2, "unibios30", "Universe Bios (Hack, Ver. 3.0)" ) \
+ ROM_LOAD16_WORD_SWAP_BIOS( x+ 2, "uni-bios_3_0.rom", 0x00000, 0x020000, CRC(a97c89a9) SHA1(97a5eff3b119062f10e31ad6f04fe4b90d366e7f) ) /* Universe Bios v3.0 (hack) */ \
+ ROM_SYSTEM_BIOS( x+ 3, "unibios23", "Universe Bios (Hack, Ver. 2.3)" ) \
+ ROM_LOAD16_WORD_SWAP_BIOS( x+ 3, "uni-bios_2_3.rom", 0x00000, 0x020000, CRC(27664eb5) SHA1(5b02900a3ccf3df168bdcfc98458136fd2b92ac0) ) /* Universe Bios v2.3 (hack) */ \
+ ROM_SYSTEM_BIOS( x+ 4, "unibios23o", "Universe Bios (Hack, Ver. 2.3, older?)" ) \
+ ROM_LOAD16_WORD_SWAP_BIOS( x+ 4, "uni-bios_2_3o.rom", 0x00000, 0x020000, CRC(601720ae) SHA1(1b8a72c720cdb5ee3f1d735bbcf447b09204b8d9) ) /* Universe Bios v2.3 (hack) alt version, withdrawn? */ \
+ ROM_SYSTEM_BIOS( x+ 5, "unibios22", "Universe Bios (Hack, Ver. 2.2)" ) \
+ ROM_LOAD16_WORD_SWAP_BIOS( x+ 5, "uni-bios_2_2.rom", 0x00000, 0x020000, CRC(2d50996a) SHA1(5241a4fb0c63b1a23fd1da8efa9c9a9bd3b4279c) ) /* Universe Bios v2.2 (hack) */ \
+ ROM_SYSTEM_BIOS( x+ 6, "unibios21", "Universe Bios (Hack, Ver. 2.1)" ) \
+ ROM_LOAD16_WORD_SWAP_BIOS( x+ 6, "uni-bios_2_1.rom", 0x00000, 0x020000, CRC(8dabf76b) SHA1(c23732c4491d966cf0373c65c83c7a4e88f0082c) ) /* Universe Bios v2.1 (hack) */ \
+ ROM_SYSTEM_BIOS( x+ 7, "unibios20", "Universe Bios (Hack, Ver. 2.0)" ) \
+ ROM_LOAD16_WORD_SWAP_BIOS( x+ 7, "uni-bios_2_0.rom", 0x00000, 0x020000, CRC(0c12c2ad) SHA1(37bcd4d30f3892078b46841d895a6eff16dc921e) ) /* Universe Bios v2.0 (hack) */ \
+ ROM_SYSTEM_BIOS( x+ 8, "unibios13", "Universe Bios (Hack, Ver. 1.3)" ) \
+ ROM_LOAD16_WORD_SWAP_BIOS( x+ 8, "uni-bios_1_3.rom", 0x00000, 0x020000, CRC(b24b44a0) SHA1(eca8851d30557b97c309a0d9f4a9d20e5b14af4e) ) /* Universe Bios v1.3 (hack) */
+#define NEOGEO_UNIBIOS_1_2_AND_OLDER(x) \
+ ROM_SYSTEM_BIOS( x+ 9, "unibios12", "Universe Bios (Hack, Ver. 1.2)" ) \
+ ROM_LOAD16_WORD_SWAP_BIOS( x+ 9, "uni-bios_1_2.rom", 0x00000, 0x020000, CRC(4fa698e9) SHA1(682e13ec1c42beaa2d04473967840c88fd52c75a) ) /* Universe Bios v1.2 (hack) */ \
+ ROM_SYSTEM_BIOS( x+10, "unibios12o", "Universe Bios (Hack, Ver. 1.2, older)" ) \
+ ROM_LOAD16_WORD_SWAP_BIOS( x+10, "uni-bios_1_2o.rom", 0x00000, 0x020000, CRC(e19d3ce9) SHA1(af88ef837f44a3af2d7144bb46a37c8512b67770) ) /* Universe Bios v1.2 (hack) alt version */ \
+ ROM_SYSTEM_BIOS( x+11, "unibios11", "Universe Bios (Hack, Ver. 1.1)" ) \
+ ROM_LOAD16_WORD_SWAP_BIOS( x+11, "uni-bios_1_1.rom", 0x00000, 0x020000, CRC(5dda0d84) SHA1(4153d533c02926a2577e49c32657214781ff29b7) ) /* Universe Bios v1.1 (hack) */ \
+ ROM_SYSTEM_BIOS( x+12, "unibios10", "Universe Bios (Hack, Ver. 1.0)" ) \
+ ROM_LOAD16_WORD_SWAP_BIOS( x+12, "uni-bios_1_0.rom", 0x00000, 0x020000, CRC(0ce453a0) SHA1(3b4c0cd26c176fc6b26c3a2f95143dd478f6abf9) ) /* Universe Bios v1.0 (hack) */
+
+#define NEOGEO_BIOS \
+ ROM_REGION16_BE( 0x80000, "mainbios", 0 ) \
+ ROM_SYSTEM_BIOS( 0, "euro", "Europe MVS (Ver. 2)" ) \
+ ROMX_LOAD("euro_s1", 0, 0x20000, CRC(9036d879) SHA1(4f5ed7105b7128794654ce82b51723e16e389543), ROM_GROUPWORD | ROM_REVERSE | ROM_OPTIONAL | ROM_BIOS(1)) \
+ ROM_SYSTEM_BIOS( 1, "euro-s1", "Europe MVS (Ver. 1)" ) \
+ ROM_LOAD16_WORD_SWAP_BIOS( 1, "sp-s.sp1", 0x00000, 0x020000, CRC(c7f2fa45) SHA1(09576ff20b4d6b365e78e6a5698ea450262697cd) ) /* Europe, 4 Slot */ \
+ ROM_SYSTEM_BIOS( 2, "us", "US MVS (Ver. 2?)" ) \
+ ROM_LOAD16_WORD_SWAP_BIOS( 2, "sp-u2.sp1", 0x00000, 0x020000, CRC(e72943de) SHA1(5c6bba07d2ec8ac95776aa3511109f5e1e2e92eb) ) /* US, 2 Slot */ \
+ ROM_SYSTEM_BIOS( 3, "us-e", "US MVS (Ver. 1)" ) \
+ ROM_LOAD16_WORD_SWAP_BIOS( 3, "sp-e.sp1", 0x00000, 0x020000, CRC(2723a5b5) SHA1(5dbff7531cf04886cde3ef022fb5ca687573dcb8) ) /* US, 6 Slot (V5?) */ \
+ ROM_SYSTEM_BIOS( 4, "us-v2", "US MVS (4 slot, Ver 2)" ) \
+ ROM_LOAD16_WORD_SWAP_BIOS( 4, "v2.bin", 0x00000, 0x020000, CRC(62f021f4) SHA1(62d372269e1b3161c64ae21123655a0a22ffd1bb) ) /* US, 4 slot */ \
+ ROM_SYSTEM_BIOS( 5, "asia", "Asia MVS (Ver. 3)" ) \
+ ROM_LOAD16_WORD_SWAP_BIOS( 5, "asia-s3.rom", 0x00000, 0x020000, CRC(91b64be3) SHA1(720a3e20d26818632aedf2c2fd16c54f213543e1) ) /* Asia */ \
+ ROM_SYSTEM_BIOS( 6, "japan", "Japan MVS (Ver. 3)" ) \
+ ROM_LOAD16_WORD_SWAP_BIOS( 6, "vs-bios.rom", 0x00000, 0x020000, CRC(f0e8f27d) SHA1(ecf01eda815909f1facec62abf3594eaa8d11075) ) /* Japan, Ver 6 VS Bios */ \
+ ROM_SYSTEM_BIOS( 7, "japan-s2", "Japan MVS (Ver. 2)" ) \
+ ROM_LOAD16_WORD_SWAP_BIOS( 7, "sp-j2.sp1", 0x00000, 0x020000, CRC(acede59c) SHA1(b6f97acd282fd7e94d9426078a90f059b5e9dd91) ) /* Japan, Older */ \
+ ROM_SYSTEM_BIOS( 8, "japan-s1", "Japan MVS (Ver. 1)" ) \
+ ROM_LOAD16_WORD_SWAP_BIOS( 8, "sp1.jipan.1024", 0x00000, 0x020000, CRC(9fb0abe4) SHA1(18a987ce2229df79a8cf6a84f968f0e42ce4e59d) ) /* Japan, Older */ \
+ ROM_SYSTEM_BIOS( 9, "mv1c", "NEO-MVH MV1C" ) \
+ ROM_LOAD16_WORD_SWAP_BIOS( 9, "sp-45.sp1", 0x00000, 0x080000, CRC(03cc9f6a) SHA1(cdf1f49e3ff2bac528c21ed28449cf35b7957dc1) ) /* Latest Asia bios */ \
+ ROM_SYSTEM_BIOS( 10, "japan-j3", "Japan MVS (J3)" ) \
+ ROM_LOAD16_WORD_SWAP_BIOS( 10, "japan-j3.bin", 0x00000, 0x020000, CRC(dff6d41f) SHA1(e92910e20092577a4523a6b39d578a71d4de7085) ) /* Latest Japan bios; correct chip label unknown */ \
+ ROM_SYSTEM_BIOS( 11, "japan-hotel", "Custom Japanese Hotel" ) \
+ ROM_LOAD16_WORD_SWAP_BIOS( 11, "sp-1v1_3db8c.bin", 0x00000, 0x020000, CRC(162f0ebe) SHA1(fe1c6dd3dfcf97d960065b1bb46c1e11cb7bf271) ) /* 'rare MVS found in japanese hotels' shows v1.3 in test mode */ \
+ \
+ NEOGEO_UNIBIOS(12) \
+ NEOGEO_UNIBIOS_1_2_AND_OLDER(12)
+
+
+#define NEO_BIOS_AUDIO_64K(name, hash) \
+ NEOGEO_BIOS \
+ ROM_REGION( 0x20000, "audiobios", 0 ) \
+ ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) ) \
+ ROM_REGION( 0x20000, "audiocpu", 0 ) \
+ ROM_LOAD( name, 0x00000, 0x10000, hash ) \
+ ROM_RELOAD( 0x10000, 0x10000 )
+
+#define NEO_BIOS_AUDIO_128K(name, hash) \
+ NEOGEO_BIOS \
+ ROM_REGION( 0x20000, "audiobios", 0 ) \
+ ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) ) \
+ ROM_REGION( 0x30000, "audiocpu", 0 ) \
+ ROM_LOAD( name, 0x00000, 0x20000, hash ) \
+ ROM_RELOAD( 0x10000, 0x20000 )
+
+#define NEO_BIOS_AUDIO_256K(name, hash) \
+ NEOGEO_BIOS \
+ ROM_REGION( 0x20000, "audiobios", 0 ) \
+ ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) ) \
+ ROM_REGION( 0x50000, "audiocpu", 0 ) \
+ ROM_LOAD( name, 0x00000, 0x40000, hash ) \
+ ROM_RELOAD( 0x10000, 0x40000 )
+
+#define NEO_BIOS_AUDIO_512K(name, hash) \
+ NEOGEO_BIOS \
+ ROM_REGION( 0x20000, "audiobios", 0 ) \
+ ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) ) \
+ ROM_REGION( 0x90000, "audiocpu", 0 ) \
+ ROM_LOAD( name, 0x00000, 0x80000, hash ) \
+ ROM_RELOAD( 0x10000, 0x80000 )
+
+
+#define NEO_BIOS_AUDIO_ENCRYPTED_128K(name, hash) \
+ NEOGEO_BIOS \
+ ROM_REGION( 0x20000, "audiobios", 0 ) \
+ ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) ) \
+ ROM_REGION( 0x90000, "audiocpu", ROMREGION_ERASEFF ) \
+ ROM_REGION( 0x80000, "audiocrypt", 0 ) \
+ ROM_LOAD( name, 0x00000, 0x20000, hash )
+#define NEO_BIOS_AUDIO_ENCRYPTED_256K(name, hash) \
+ NEOGEO_BIOS \
+ ROM_REGION( 0x20000, "audiobios", 0 ) \
+ ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) ) \
+ ROM_REGION( 0x90000, "audiocpu", ROMREGION_ERASEFF ) \
+ ROM_REGION( 0x80000, "audiocrypt", 0 ) \
+ ROM_LOAD( name, 0x00000, 0x40000, hash )
+#define NEO_BIOS_AUDIO_ENCRYPTED_512K(name, hash) \
+ NEOGEO_BIOS \
+ ROM_REGION( 0x20000, "audiobios", 0 ) \
+ ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) ) \
+ ROM_REGION( 0x90000, "audiocpu", ROMREGION_ERASEFF ) \
+ ROM_REGION( 0x80000, "audiocrypt", 0 ) \
+ ROM_LOAD( name, 0x00000, 0x80000, hash )
+
+
+#define ROM_Y_ZOOM \
+ ROM_REGION( 0x20000, "zoomy", 0 ) \
+ ROM_LOAD( "000-lo.lo", 0x00000, 0x20000, CRC(5a86cff2) SHA1(5992277debadeb64d1c1c64b0a92d9293eaf7e4a) )
+
+#define NEO_SFIX_MT(bytes) \
+ ROM_Y_ZOOM \
+ ROM_REGION( 0x20000, "fixedbios", 0 ) \
+ ROM_LOAD( "sfix.sfix", 0, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) \
+ ROM_REGION( bytes, "fixed", ROMREGION_ERASE00 )
+
+#define NEO_SFIX_MT_128K \
+ NEO_SFIX_MT( 0x20000 )
+
+#define NEO_SFIX_MT_512K \
+ NEO_SFIX_MT( 0x80000 )
+
+#define NEO_SFIX_MSLUG(name, hash) \
+ NEO_SFIX_MT( 0x80000 ) \
+ ROM_LOAD( name, 0x00000, 0x20000, hash ) \
+ ROM_RELOAD( 0x20000, 0x20000 ) \
+ ROM_RELOAD( 0x40000, 0x20000 ) \
+ ROM_RELOAD( 0x60000, 0x20000 )
+
+#define NEO_SFIX(bytes, name, hash) \
+ NEO_SFIX_MT( bytes ) \
+ ROM_LOAD( name, 0x00000, bytes, hash )
+
+#define NEO_SFIX_64K(name, hash) \
+ NEO_SFIX( 0x10000, name, hash )
+
+#define NEO_SFIX_128K(name, hash) \
+ NEO_SFIX( 0x20000, name, hash )
diff --git a/docs/release/src/hbmame/includes/pacman.h b/docs/release/src/hbmame/includes/pacman.h
new file mode 100644
index 00000000000..bbe9da2ac7c
--- /dev/null
+++ b/docs/release/src/hbmame/includes/pacman.h
@@ -0,0 +1,226 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "sound/namco.h"
+#include "machine/watchdog.h"
+#include "screen.h"
+#include "speaker.h"
+
+/*************************************************************************
+
+ Namco PuckMan
+
+**************************************************************************/
+
+class pacman_state : public driver_device
+{
+public:
+ pacman_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag),
+ m_maincpu(*this, "maincpu"),
+ m_namco_sound(*this, "namco"),
+ m_spriteram(*this, "spriteram"),
+ m_spriteram2(*this, "spriteram2"),
+ m_s2650_spriteram(*this, "s2650_spriteram"),
+ m_videoram(*this, "videoram"),
+ m_colorram(*this, "colorram"),
+ m_s2650games_tileram(*this, "s2650_tileram"),
+ m_rocktrv2_prot_data(*this, "rocktrv2_prot"),
+ m_gfxdecode(*this, "gfxdecode"),
+ m_palette(*this, "palette"),
+ m_patched_opcodes(*this, "patched_opcodes")
+ , m_io_fake(*this, "FAKE") // HBMAME
+ { }
+
+ required_device<cpu_device> m_maincpu;
+ optional_device<namco_device> m_namco_sound;
+ optional_shared_ptr<uint8_t> m_spriteram;
+ optional_shared_ptr<uint8_t> m_spriteram2;
+ optional_shared_ptr<uint8_t> m_s2650_spriteram;
+ required_shared_ptr<uint8_t> m_videoram;
+ optional_shared_ptr<uint8_t> m_colorram;
+ optional_shared_ptr<uint8_t> m_s2650games_tileram;
+ optional_shared_ptr<uint8_t> m_rocktrv2_prot_data;
+ required_device<gfxdecode_device> m_gfxdecode;
+ required_device<palette_device> m_palette;
+ optional_shared_ptr<uint8_t> m_patched_opcodes;
+ optional_ioport m_io_fake; // HBMAME
+ uint8_t m_cannonb_bit_to_read;
+ int m_mystery;
+ uint8_t m_counter;
+ int m_bigbucks_bank;
+ uint8_t m_rocktrv2_question_bank;
+ tilemap_t *m_bg_tilemap;
+ uint8_t m_charbank;
+ uint8_t m_spritebank;
+ uint8_t m_palettebank;
+ uint8_t m_colortablebank;
+ uint8_t m_flipscreen;
+ uint8_t m_bgpriority;
+ int m_xoffsethack;
+ uint8_t m_inv_spr;
+ uint8_t m_irq_mask;
+
+ DECLARE_WRITE8_MEMBER(pacman_interrupt_vector_w);
+ DECLARE_WRITE8_MEMBER(piranha_interrupt_vector_w);
+ DECLARE_WRITE8_MEMBER(nmouse_interrupt_vector_w);
+ DECLARE_WRITE8_MEMBER(pacman_leds_w);
+ DECLARE_WRITE8_MEMBER(pacman_coin_counter_w);
+ DECLARE_WRITE8_MEMBER(pacman_coin_lockout_global_w);
+ DECLARE_WRITE8_MEMBER(alibaba_sound_w);
+ DECLARE_READ8_MEMBER(alibaba_mystery_1_r);
+ DECLARE_READ8_MEMBER(alibaba_mystery_2_r);
+ DECLARE_READ8_MEMBER(maketrax_special_port2_r);
+ DECLARE_READ8_MEMBER(maketrax_special_port3_r);
+ DECLARE_READ8_MEMBER(korosuke_special_port2_r);
+ DECLARE_READ8_MEMBER(korosuke_special_port3_r);
+ DECLARE_READ8_MEMBER(mschamp_kludge_r);
+ DECLARE_WRITE8_MEMBER(bigbucks_bank_w);
+ DECLARE_READ8_MEMBER(bigbucks_question_r);
+ DECLARE_WRITE8_MEMBER(porky_banking_w);
+ DECLARE_READ8_MEMBER(drivfrcp_port1_r);
+ DECLARE_READ8_MEMBER(_8bpm_port1_r);
+ DECLARE_READ8_MEMBER(porky_port1_r);
+ DECLARE_READ8_MEMBER(rocktrv2_prot1_data_r);
+ DECLARE_READ8_MEMBER(rocktrv2_prot2_data_r);
+ DECLARE_READ8_MEMBER(rocktrv2_prot3_data_r);
+ DECLARE_READ8_MEMBER(rocktrv2_prot4_data_r);
+ DECLARE_WRITE8_MEMBER(rocktrv2_prot_data_w);
+ DECLARE_WRITE8_MEMBER(rocktrv2_question_bank_w);
+ DECLARE_READ8_MEMBER(rocktrv2_question_r);
+ DECLARE_READ8_MEMBER(pacman_read_nop);
+ DECLARE_READ8_MEMBER(mspacman_disable_decode_r_0x0038);
+ DECLARE_READ8_MEMBER(mspacman_disable_decode_r_0x03b0);
+ DECLARE_READ8_MEMBER(mspacman_disable_decode_r_0x1600);
+ DECLARE_READ8_MEMBER(mspacman_disable_decode_r_0x2120);
+ DECLARE_READ8_MEMBER(mspacman_disable_decode_r_0x3ff0);
+ DECLARE_READ8_MEMBER(mspacman_disable_decode_r_0x8000);
+ DECLARE_READ8_MEMBER(mspacman_disable_decode_r_0x97f0);
+ DECLARE_WRITE8_MEMBER(mspacman_disable_decode_w);
+ DECLARE_READ8_MEMBER(mspacman_enable_decode_r_0x3ff8);
+ DECLARE_WRITE8_MEMBER(mspacman_enable_decode_w);
+ DECLARE_WRITE8_MEMBER(irq_mask_w);
+ DECLARE_READ8_MEMBER(mspacii_protection_r);
+ DECLARE_READ8_MEMBER(cannonbp_protection_r);
+ DECLARE_WRITE8_MEMBER(pacman_videoram_w);
+ DECLARE_WRITE8_MEMBER(pacman_colorram_w);
+ DECLARE_WRITE8_MEMBER(pacman_flipscreen_w);
+ DECLARE_WRITE8_MEMBER(pengo_palettebank_w);
+ DECLARE_WRITE8_MEMBER(pengo_colortablebank_w);
+ DECLARE_WRITE8_MEMBER(pengo_gfxbank_w);
+ DECLARE_WRITE8_MEMBER(s2650games_videoram_w);
+ DECLARE_WRITE8_MEMBER(s2650games_colorram_w);
+ DECLARE_WRITE8_MEMBER(s2650games_scroll_w);
+ DECLARE_WRITE8_MEMBER(s2650games_tilesbank_w);
+ DECLARE_WRITE8_MEMBER(jrpacman_videoram_w);
+ DECLARE_WRITE8_MEMBER(jrpacman_charbank_w);
+ DECLARE_WRITE8_MEMBER(jrpacman_spritebank_w);
+ DECLARE_WRITE8_MEMBER(jrpacman_scroll_w);
+ DECLARE_WRITE8_MEMBER(jrpacman_bgpriority_w);
+ DECLARE_WRITE8_MEMBER(superabc_bank_w);
+ DECLARE_DRIVER_INIT(maketrax);
+ DECLARE_DRIVER_INIT(drivfrcp);
+ DECLARE_DRIVER_INIT(mspacmbe);
+ DECLARE_DRIVER_INIT(ponpoko);
+ DECLARE_DRIVER_INIT(eyes);
+ DECLARE_DRIVER_INIT(woodpek);
+ DECLARE_DRIVER_INIT(cannonbp);
+ DECLARE_DRIVER_INIT(jumpshot);
+ DECLARE_DRIVER_INIT(korosuke);
+ DECLARE_DRIVER_INIT(mspacii);
+ DECLARE_DRIVER_INIT(pacplus);
+ DECLARE_DRIVER_INIT(rocktrv2);
+ DECLARE_DRIVER_INIT(superabc);
+ DECLARE_DRIVER_INIT(8bpm);
+ DECLARE_DRIVER_INIT(porky);
+ DECLARE_DRIVER_INIT(mspacman);
+ TILEMAP_MAPPER_MEMBER(pacman_scan_rows);
+ TILE_GET_INFO_MEMBER(pacman_get_tile_info);
+ TILE_GET_INFO_MEMBER(s2650_get_tile_info);
+ TILEMAP_MAPPER_MEMBER(jrpacman_scan_rows);
+ TILE_GET_INFO_MEMBER(jrpacman_get_tile_info);
+ DECLARE_VIDEO_START(pacman);
+ DECLARE_PALETTE_INIT(pacman);
+ DECLARE_VIDEO_START(birdiy);
+ DECLARE_VIDEO_START(s2650games);
+ DECLARE_MACHINE_RESET(mschamp);
+ DECLARE_MACHINE_RESET(superabc);
+ DECLARE_VIDEO_START(pengo);
+ DECLARE_VIDEO_START(jrpacman);
+ uint32_t screen_update_pacman(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ uint32_t screen_update_s2650games(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ INTERRUPT_GEN_MEMBER(vblank_irq);
+ INTERRUPT_GEN_MEMBER(vblank_nmi);
+ INTERRUPT_GEN_MEMBER(s2650_interrupt);
+ void init_save_state();
+ void jrpacman_mark_tile_dirty( int offset );
+ void maketrax_rom_decode();
+ void korosuke_rom_decode();
+ void eyes_decode(uint8_t *data);
+ void mspacman_install_patches(uint8_t *ROM);
+
+ // theglopb.c
+ void theglobp_decrypt_rom_8();
+ void theglobp_decrypt_rom_9();
+ void theglobp_decrypt_rom_A();
+ void theglobp_decrypt_rom_B();
+ DECLARE_READ8_MEMBER(theglobp_decrypt_rom);
+ DECLARE_MACHINE_START(theglobp);
+ DECLARE_MACHINE_RESET(theglobp);
+
+ // pacplus.c
+ uint8_t pacplus_decrypt(int addr, uint8_t e);
+ void pacplus_decode();
+
+ // jumpshot.c
+ uint8_t jumpshot_decrypt(int addr, uint8_t e);
+ void jumpshot_decode();
+
+ // acitya.c
+ void acitya_decrypt_rom_8();
+ void acitya_decrypt_rom_9();
+ void acitya_decrypt_rom_A();
+ void acitya_decrypt_rom_B();
+ DECLARE_READ8_MEMBER(acitya_decrypt_rom);
+ DECLARE_MACHINE_START(acitya);
+ DECLARE_MACHINE_RESET(acitya);
+// HBMAME extras
+ DECLARE_VIDEO_START(pacmanx);
+ DECLARE_VIDEO_START(multipac);
+ uint32_t screen_update_pacmanx(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ uint32_t screen_update_multipac(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ uint32_t screen_update_pengo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ DECLARE_PALETTE_INIT(multipac);
+ DECLARE_PALETTE_INIT(pengo);
+ void m96in1b_gfxbank_w(uint8_t gfxbank);
+ void madpac_gfxbank_w(uint8_t gfxbank);
+ DECLARE_WRITE8_MEMBER(multipac_gfxbank_w);
+ DECLARE_WRITE8_MEMBER(multipac_palbank_w);
+ TILE_GET_INFO_MEMBER(multipac_get_tile_info);
+ uint8_t m_speedcheat;
+ uint8_t m_timerthing;
+ DECLARE_READ8_MEMBER(mspacii_prot_r);
+ DECLARE_READ8_MEMBER(zolatimer_r);
+ DECLARE_WRITE8_MEMBER(zolatimer_w);
+ DECLARE_MACHINE_RESET(mspacman);
+ DECLARE_WRITE8_MEMBER(m96in1_rombank_w);
+ DECLARE_WRITE8_MEMBER(m96in1b_rombank_w);
+ DECLARE_WRITE8_MEMBER(hackypac_rombank_w);
+ DECLARE_WRITE8_MEMBER(madpac_rombank_w);
+ DECLARE_WRITE8_MEMBER(multipac_rombank_w);
+ DECLARE_WRITE8_MEMBER(pm4n1_rombank_w);
+ DECLARE_WRITE8_MEMBER(pm4n1d_rombank_w);
+ DECLARE_WRITE8_MEMBER(superabc_rombank_w);
+ DECLARE_MACHINE_RESET(96in1);
+ DECLARE_MACHINE_RESET(hackypac);
+ DECLARE_MACHINE_RESET(madpac);
+ DECLARE_MACHINE_RESET(multipac);
+ DECLARE_MACHINE_RESET(mspaceur);
+ DECLARE_MACHINE_RESET(pm4n1);
+ DECLARE_DRIVER_INIT(96in1);
+ DECLARE_DRIVER_INIT(madpac);
+ DECLARE_DRIVER_INIT(mspaceur);
+ DECLARE_DRIVER_INIT(multipac);
+ DECLARE_DRIVER_INIT(pm4n1);
+ DECLARE_DRIVER_INIT(pengo);
+// END HBMAME
+};
diff --git a/docs/release/src/hbmame/layout/monaco.lay b/docs/release/src/hbmame/layout/monaco.lay
new file mode 100644
index 00000000000..311d5b4572b
--- /dev/null
+++ b/docs/release/src/hbmame/layout/monaco.lay
@@ -0,0 +1,92 @@
+<?xml version="1.0"?>
+<mamelayout version="2">
+<element name="digit" defstate="10">
+ <led7seg>
+ <color red="1.0" green="0.3" blue="0.0" />
+ </led7seg>
+</element>
+
+<view name="Lamps and Timer">
+ <screen index="0">
+ <bounds left="1" top="0" right="8" bottom="8" />
+ </screen>
+ <bezel name="digit5" element="digit">
+ <bounds x="0.49" y="2.1" width="0.145" height="0.2" />
+ </bezel>
+ <bezel name="digit4" element="digit">
+ <bounds x="0.345" y="2.1" width="0.145" height="0.2" />
+ </bezel>
+ <bezel name="digit3" element="digit">
+ <bounds x="0.635" y="1.8" width="0.145" height="0.2" />
+ </bezel>
+ <bezel name="digit2" element="digit">
+ <bounds x="0.49" y="1.8" width="0.145" height="0.2" />
+ </bezel>
+ <bezel name="digit1" element="digit">
+ <bounds x="0.345" y="1.8" width="0.145" height="0.2" />
+ </bezel>
+ <bezel name="digit0" element="digit">
+ <bounds x="0.2" y="1.8" width="0.145" height="0.2" />
+ </bezel>
+ <bezel name="digit53" element="digit">
+ <bounds x="0.635" y="1.3" width="0.145" height="0.2" />
+ </bezel>
+ <bezel name="digit52" element="digit">
+ <bounds x="0.49" y="1.3" width="0.145" height="0.2" />
+ </bezel>
+ <bezel name="digit51" element="digit">
+ <bounds x="0.345" y="1.3" width="0.145" height="0.2" />
+ </bezel>
+ <bezel name="digit50" element="digit">
+ <bounds x="0.2" y="1.3" width="0.145" height="0.2" />
+ </bezel>
+ <bezel name="digit43" element="digit">
+ <bounds x="0.635" y="1.0" width="0.145" height="0.2" />
+ </bezel>
+ <bezel name="digit42" element="digit">
+ <bounds x="0.49" y="1.0" width="0.145" height="0.2" />
+ </bezel>
+ <bezel name="digit41" element="digit">
+ <bounds x="0.345" y="1.0" width="0.145" height="0.2" />
+ </bezel>
+ <bezel name="digit40" element="digit">
+ <bounds x="0.2" y="1.0" width="0.145" height="0.2" />
+ </bezel>
+ <bezel name="digit33" element="digit">
+ <bounds x="0.635" y="0.7" width="0.145" height="0.2" />
+ </bezel>
+ <bezel name="digit32" element="digit">
+ <bounds x="0.49" y="0.7" width="0.145" height="0.2" />
+ </bezel>
+ <bezel name="digit31" element="digit">
+ <bounds x="0.345" y="0.7" width="0.145" height="0.2" />
+ </bezel>
+ <bezel name="digit30" element="digit">
+ <bounds x="0.2" y="0.7" width="0.145" height="0.2" />
+ </bezel>
+ <bezel name="digit23" element="digit">
+ <bounds x="0.635" y="0.4" width="0.145" height="0.2" />
+ </bezel>
+ <bezel name="digit22" element="digit">
+ <bounds x="0.49" y="0.4" width="0.145" height="0.2" />
+ </bezel>
+ <bezel name="digit21" element="digit">
+ <bounds x="0.345" y="0.4" width="0.145" height="0.2" />
+ </bezel>
+ <bezel name="digit20" element="digit">
+ <bounds x="0.2" y="0.4" width="0.145" height="0.2" />
+ </bezel>
+ <bezel name="digit13" element="digit">
+ <bounds x="0.635" y="0.1" width="0.145" height="0.2" />
+ </bezel>
+ <bezel name="digit12" element="digit">
+ <bounds x="0.49" y="0.1" width="0.145" height="0.2" />
+ </bezel>
+ <bezel name="digit11" element="digit">
+ <bounds x="0.345" y="0.1" width="0.145" height="0.2" />
+ </bezel>
+ <bezel name="digit10" element="digit">
+ <bounds x="0.2" y="0.1" width="0.145" height="0.2" />
+ </bezel>
+ </view>
+</mamelayout> \ No newline at end of file
diff --git a/docs/release/src/hbmame/layout/neogeo.lay b/docs/release/src/hbmame/layout/neogeo.lay
new file mode 100644
index 00000000000..bdaa722b17d
--- /dev/null
+++ b/docs/release/src/hbmame/layout/neogeo.lay
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<mamelayout version="2">
+ <element name="blank">
+ <rect>
+ <color red="0" green="0" blue="0" />
+ </rect>
+ </element>
+
+ <view name="Screen 0 Standard (4:3)">
+ <screen index="0">
+ <bounds left="0" top="0" right="4" bottom="3" />
+ </screen>
+ </view>
+
+ <view name="Screen 0 Cropped (304x224)">
+ <bezel name="blank" element="blank">
+ <bounds left="0" top="0" right="0.1" bottom="3" />
+ </bezel>
+ <bezel name="blank" element="blank">
+ <bounds left="3.9" top="0" right="4" bottom="3" />
+ </bezel>
+ <screen index="0">
+ <bounds left="0" top="0" right="4" bottom="3" />
+ </screen>
+ </view>
+
+ <view name="Screen 0 Stretched (304x224)">
+ <bounds left="0" top="0" right="4" bottom="3" />
+ <screen index="0">
+ <bounds left="-0.105263" top="0" right="4.105263" bottom="3" />
+ </screen>
+ </view>
+
+ <view name="Screen 0 Stretched (272x224)">
+ <bounds left="0" top="0" right="4" bottom="3" />
+ <screen index="0">
+ <bounds left="-0.210526" top="0" right="4.205263" bottom="3" />
+ </screen>
+ </view>
+</mamelayout>
diff --git a/docs/release/src/hbmame/layout/spacmissx.lay b/docs/release/src/hbmame/layout/spacmissx.lay
new file mode 100644
index 00000000000..2c306daf5bb
--- /dev/null
+++ b/docs/release/src/hbmame/layout/spacmissx.lay
@@ -0,0 +1,30 @@
+<?xml version="1.0"?>
+<mamelayout version="2">
+ <element name="overlay">
+ <rect>
+ <bounds left="0" top="0" right="224" bottom="260" />
+ <color red="0" green="1" blue="0.4" />
+ </rect>
+ <rect>
+ <bounds left="0" top="47" right="224" bottom="70" />
+ <color red="1" green="0.2" blue="0.15" />
+ </rect>
+ <rect>
+ <bounds left="0" top="70" right="224" bottom="192" />
+ <color red="1" green="1" blue="0.2" />
+ </rect>
+ <rect>
+ <bounds left="0" top="192" right="224" bottom="214" />
+ <color red="0.2" green="0.6" blue="1" />
+ </rect>
+ </element>
+
+ <view name="Color_Overlay">
+ <screen index="0">
+ <bounds x="0" y="0" width="3" height="4" />
+ </screen>
+ <overlay element="overlay">
+ <bounds x="0" y="0" width="3" height="4" />
+ </overlay>
+ </view>
+</mamelayout>
diff --git a/docs/release/src/hbmame/machine/arkanoid.cpp b/docs/release/src/hbmame/machine/arkanoid.cpp
new file mode 100644
index 00000000000..d05697a39b8
--- /dev/null
+++ b/docs/release/src/hbmame/machine/arkanoid.cpp
@@ -0,0 +1,634 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+/***************************************************************************
+
+ machine.c
+
+ Functions to emulate general aspects of the machine (RAM, ROM, interrupts,
+ I/O ports)
+
+***************************************************************************/
+
+#include "emu.h"
+#include "includes/arkanoid.h"
+
+
+/* To log specific reads and writes of the bootlegs */
+#define ARKANOID_BOOTLEG_VERBOSE 1
+
+
+READ8_MEMBER(arkanoid_state::arkanoid_Z80_mcu_r)
+{
+ /* return the last value the 68705 wrote, and mark that we've read it */
+ m_m68705write = 0;
+ return m_toz80;
+}
+
+TIMER_CALLBACK_MEMBER(arkanoid_state::test)
+{
+ m_z80write = 1;
+ m_fromz80 = param;
+}
+
+WRITE8_MEMBER(arkanoid_state::arkanoid_Z80_mcu_w)
+{
+ machine().scheduler().synchronize(timer_expired_delegate(FUNC(arkanoid_state::test),this), data);
+ /* boost the interleave for a few usecs to make sure it is read successfully */
+ machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(10));
+}
+
+READ8_MEMBER(arkanoid_state::arkanoid_68705_port_a_r)
+{
+ return (m_port_a_out & m_ddr_a) | (m_port_a_in & ~m_ddr_a);
+}
+
+WRITE8_MEMBER(arkanoid_state::arkanoid_68705_port_a_w)
+{
+ m_port_a_out = data;
+}
+
+WRITE8_MEMBER(arkanoid_state::arkanoid_68705_ddr_a_w)
+{
+ m_ddr_a = data;
+}
+
+
+READ8_MEMBER(arkanoid_state::arkanoid_68705_port_c_r)
+{
+ int res = 0;
+
+ /* bit 0 is high on a write strobe; clear it once we've detected it */
+ if (m_z80write)
+ res |= 0x01;
+
+ /* bit 1 is high if the previous write has been read */
+ if (!m_m68705write)
+ res |= 0x02;
+
+ return (m_port_c_out & m_ddr_c) | (res & ~m_ddr_c);
+}
+
+WRITE8_MEMBER(arkanoid_state::arkanoid_68705_port_c_w)
+{
+ if ((m_ddr_c & 0x04) && (~data & 0x04) && (m_port_c_out & 0x04))
+ {
+ /* return the last value the Z80 wrote */
+ m_z80write = 0;
+ m_port_a_in = m_fromz80;
+ }
+ if ((m_ddr_c & 0x08) && (~data & 0x08) && (m_port_c_out & 0x08))
+ {
+ /* a write from the 68705 to the Z80; remember its value */
+ m_m68705write = 1;
+ m_toz80 = m_port_a_out;
+ }
+
+ m_port_c_out = data;
+}
+
+WRITE8_MEMBER(arkanoid_state::arkanoid_68705_ddr_c_w)
+{
+ m_ddr_c = data;
+}
+
+CUSTOM_INPUT_MEMBER(arkanoid_state::arkanoid_68705_input_r)
+{
+ int res = 0;
+
+ /* bit 0x40 of comes from the sticky bit */
+ if (!m_z80write)
+ res |= 0x01;
+
+ /* bit 0x80 comes from a write latch */
+ if (m_mcu) // HBMAME fix for bootlegs
+ if (!m_m68705write)
+ res |= 0x02;
+
+ return res;
+}
+
+CUSTOM_INPUT_MEMBER(arkanoid_state::arkanoid_input_mux)
+{
+ const char *tag1 = (const char *)param;
+ const char *tag2 = tag1 + strlen(tag1) + 1;
+ return ioport((m_paddle_select == 0) ? tag1 : tag2)->read();
+}
+
+/*
+
+Bootlegs stuff
+
+The bootlegs simulate the missing MCU behaviour with writes to 0xd018 and reads value back from 0xf002.
+Fortunately, 'arkangc', 'arkangc2', 'block2', 'arkbloc2' and 'arkblock' has patched code not to bother with that.
+So I've fixed 'arkbl3' and 'paddle2' to return the expected values (code is strongly similar).
+However, 'block2' is the only bootleg that writes some values to 0xd018 and reads them back from 0xf000.
+
+Some bootlegs also test some bits from 0xd008 after reading the paddle value at 0xd018.
+Their effect is completely unknown but I need to set some bits to 1 so the games are playable :
+
+ - 'arkangc' : NO read from 0xd008 !
+ - 'arkangc2' :
+ * bit 1 must be set to 1 or you enter sort of endless "demo mode" when you start :
+ . you can't select your starting level (it always starts at level 1)
+ . you can't control the paddle (it automoves by following the ball)
+ . you can use the "fire" button (the game never shoots)
+ . you are awarded points as in a normal game
+ . sounds are played
+ - 'block2' :
+ * bit 1 must be set to 1 or you enter sort of endless "demo mode" when you start :
+ . you can't control the paddle (it automoves by following the ball)
+ . you can use the "fire" button (the game never shoots)
+ . you are awarded points as in a normal game
+ . sounds are played
+ - 'arkblock' : NO read from 0xd008 !
+ - 'arkbloc2' :
+ * bit 5 must sometimes be set to 1 or you can't reach right side of the screen
+ nor select all levels at the beginning of the game
+ - 'arkgcbl' :
+ * bit 1 must be set to 1 or you enter sort of endless "demo mode" when you start :
+ . you can't select your starting level (it always starts at level 1)
+ . you can't control the paddle (it automoves by following the ball)
+ . you can use the "fire" button (the game never shoots)
+ . you are awarded points as in a normal game
+ . sounds are played
+ * bit 5 must sometimes be set to 1 or you can't reach right side of the screen
+ nor select all levels at the beginning of the game
+ - 'paddle2' :
+ * bits 0 and 1 must be set to 1 or the paddle goes up (joystick issue ?)
+ * bits 2 and 3 must be set to 1 or the paddle goes down (joystick issue ?)
+ * bit 5 must sometimes be set to 1 or you can't reach right side of the screen
+ nor select all levels at the beginning of the game
+
+
+TO DO (2006.09.12) :
+
+ - understand reads from 0xd008 (even if the games are playable)
+ - try to document writes to 0xd018 with unknown effect
+
+*/
+
+
+#define LOG_F000_R if (ARKANOID_BOOTLEG_VERBOSE) logerror("%04x: arkanoid_bootleg_f000_r - cmd = %02x - val = %02x\n", space.device().safe_pc(), m_bootleg_cmd, arkanoid_bootleg_val);
+#define LOG_F002_R if (ARKANOID_BOOTLEG_VERBOSE) logerror("%04x: arkanoid_bootleg_f002_r - cmd = %02x - val = %02x\n", space.device().safe_pc(), m_bootleg_cmd, arkanoid_bootleg_val);
+#define LOG_D018_W if (ARKANOID_BOOTLEG_VERBOSE) logerror("%04x: arkanoid_bootleg_d018_w - data = %02x - cmd = %02x\n", space.device().safe_pc(), data, m_bootleg_cmd);
+#define LOG_D008_R if (ARKANOID_BOOTLEG_VERBOSE) logerror("%04x: arkanoid_bootleg_d008_r - val = %02x\n", space.device().safe_pc(), arkanoid_bootleg_d008_val);
+
+
+/* Kludge for some bootlegs that read this address */
+READ8_MEMBER(arkanoid_state::arkanoid_bootleg_f000_r)
+{
+ uint8_t arkanoid_bootleg_val = 0x00;
+
+ switch (m_bootleg_id)
+ {
+ case ARKANGC: /* There are no reads from 0xf000 in these bootlegs */
+ case ARKBLOCK:
+ case ARKANGC2:
+ case ARKBLOC2:
+ case ARKGCBL:
+ case PADDLE2:
+ switch (m_bootleg_cmd)
+ {
+ default:
+ break;
+ }
+ LOG_F000_R
+ break;
+ case BLOCK2:
+ switch (m_bootleg_cmd)
+ {
+ case 0x05: /* Check 1 */
+ arkanoid_bootleg_val = 0x05;
+ break;
+ case 0x0a: /* Check 2 */
+ arkanoid_bootleg_val = 0x0a;
+ break;
+ default:
+ break;
+ }
+ LOG_F000_R
+ break;
+ default:
+ logerror("%04x: arkanoid_bootleg_f000_r - cmd = %02x - unknown bootleg !\n", space.device().safe_pc(), m_bootleg_cmd);
+ break;
+ }
+
+ return arkanoid_bootleg_val;
+}
+
+/* Kludge for some bootlegs that read this address */
+READ8_MEMBER(arkanoid_state::arkanoid_bootleg_f002_r)
+{
+ uint8_t arkanoid_bootleg_val = 0x00;
+
+ switch (m_bootleg_id)
+ {
+ case ARKANGC:
+ case ARKBLOCK:
+ switch (m_bootleg_cmd)
+ {
+ default:
+ break;
+ }
+ LOG_F002_R
+ break;
+ case ARKANGC2: /* There are no reads from 0xf002 in these bootlegs */
+ case BLOCK2:
+ switch (m_bootleg_cmd)
+ {
+ default:
+ break;
+ }
+ LOG_F002_R
+ break;
+ case ARKBLOC2:
+ switch (m_bootleg_cmd)
+ {
+ default:
+ break;
+ }
+ LOG_F002_R
+ break;
+ case ARKGCBL:
+ switch (m_bootleg_cmd)
+ {
+ case 0x8a: /* Current level (fixed routine) */
+ arkanoid_bootleg_val = 0xa5;
+ break;
+ case 0xff: /* Avoid "BAD HARDWARE " message (fixed routine) */
+ arkanoid_bootleg_val = 0xe2;
+ break;
+ default:
+ break;
+ }
+ LOG_F002_R
+ break;
+ case PADDLE2:
+ switch (m_bootleg_cmd)
+ {
+ case 0x24: /* Avoid bad jump to 0x0066 */
+ arkanoid_bootleg_val = 0x9b;
+ break;
+ case 0x36: /* Avoid "BAD HARDWARE " message */
+ arkanoid_bootleg_val = 0x2d;
+ break;
+ case 0x38: /* Start of levels table (fixed offset) */
+ arkanoid_bootleg_val = 0xf3;
+ break;
+ case 0x8a: /* Current level (fixed routine) */
+ arkanoid_bootleg_val = 0xa5;
+ break;
+ case 0xc3: /* Avoid bad jump to 0xf000 */
+ arkanoid_bootleg_val = 0x1d;
+ break;
+ case 0xe3: /* Number of bricks left (fixed offset) */
+ arkanoid_bootleg_val = 0x61;
+ break;
+ case 0xf7: /* Avoid "U69" message */
+ arkanoid_bootleg_val = 0x00;
+ break;
+ case 0xff: /* Avoid "BAD HARDWARE " message (fixed routine) */
+ arkanoid_bootleg_val = 0xe2;
+ break;
+ default:
+ break;
+ }
+ LOG_F002_R
+ break;
+ default:
+ logerror("%04x: arkanoid_bootleg_f002_r - cmd = %02x - unknown bootleg !\n", space.device().safe_pc(), m_bootleg_cmd);
+ break;
+ }
+
+ return arkanoid_bootleg_val;
+}
+
+/* Kludge for some bootlegs that write this address */
+WRITE8_MEMBER(arkanoid_state::arkanoid_bootleg_d018_w)
+{
+ m_bootleg_cmd = 0x00;
+
+ switch (m_bootleg_id)
+ {
+ case ARKANGC:
+ case ARKBLOCK:
+ switch (data)
+ {
+ case 0x36: /* unneeded value : no call 0x2050, unused A and overwritten HL (0x0313 -> 0x0340) */
+ if (space.device().safe_pc() == 0x7c47)
+ m_bootleg_cmd = 0x00;
+ break;
+ case 0x38: /* unneeded value : no call 0x2050, unused A and fixed HL (0x7bd5) */
+ if (space.device().safe_pc() == 0x7b87)
+ m_bootleg_cmd = 0x00;
+ break;
+ case 0x8a: /* unneeded value : no call 0x2050, unused A and overwritten HL (0x7b77 -> 0x7c1c) */
+ if (space.device().safe_pc() == 0x9661)
+ m_bootleg_cmd = 0x00;
+ break;
+ case 0xe3: /* unneeded value : call 0x2050 but fixed A (0x00) and fixed HL (0xed83) */
+ if (space.device().safe_pc() == 0x67e3)
+ m_bootleg_cmd = 0x00;
+ break;
+ case 0xf7: /* unneeded value : 3 * 'NOP' at 0x034f + 2 * 'NOP' at 0x35b */
+ if (space.device().safe_pc() == 0x0349)
+ m_bootleg_cmd = 0x00;
+ break;
+ case 0xff: /* unneeded value : no call 0x2050, unused A and overwritten HL (0x7c4f -> 0x7d31) */
+ if (space.device().safe_pc() == 0x9670)
+ m_bootleg_cmd = 0x00;
+ break;
+ default:
+ m_bootleg_cmd = 0x00;
+ break;
+ }
+ LOG_D018_W
+ break;
+ case ARKANGC2:
+ switch (data)
+ {
+ case 0x36: /* unneeded value : call 0x2050 but fixed A (0x2d) */
+ if (space.device().safe_pc() == 0x7c4c)
+ m_bootleg_cmd = 0x00;
+ break;
+ case 0x38: /* unneeded value : call 0x2050 but fixed A (0xf3) */
+ if (space.device().safe_pc() == 0x7b87)
+ m_bootleg_cmd = 0x00;
+ break;
+ case 0x88: /* unneeded value : no read back */
+ if (space.device().safe_pc() == 0x67e3)
+ m_bootleg_cmd = 0x00;
+ if (space.device().safe_pc() == 0x7c47)
+ m_bootleg_cmd = 0x00;
+ break;
+ case 0x89: /* unneeded value : no read back */
+ if (space.device().safe_pc() == 0x67e5)
+ m_bootleg_cmd = 0x00;
+ break;
+ case 0x8a: /* unneeded value : call 0x2050 but fixed A (0xa5) */
+ if (space.device().safe_pc() == 0x9661)
+ m_bootleg_cmd = 0x00;
+ break;
+ case 0xc0: /* unneeded value : no read back */
+ if (space.device().safe_pc() == 0x67e7)
+ m_bootleg_cmd = 0x00;
+ break;
+ case 0xe3: /* unneeded value : call 0x2050 but fixed A (0x61) */
+ if (space.device().safe_pc() == 0x67e9)
+ m_bootleg_cmd = 0x00;
+ break;
+ case 0xff: /* unneeded value : call 0x2050 but fixed A (0xe2) */
+ if (space.device().safe_pc() == 0x9670)
+ m_bootleg_cmd = 0x00;
+ break;
+ default:
+ m_bootleg_cmd = 0x00;
+ break;
+ }
+ LOG_D018_W
+ break;
+ case BLOCK2:
+ switch (data)
+ {
+ case 0x05: /* Check 1 */
+ if (space.device().safe_pc() == 0x0363)
+ m_bootleg_cmd = 0x05;
+ break;
+ case 0x0a: /* Check 2 */
+ if (space.device().safe_pc() == 0x0372)
+ m_bootleg_cmd = 0x0a;
+ break;
+ default:
+ m_bootleg_cmd = 0x00;
+ break;
+ }
+ LOG_D018_W
+ break;
+ case ARKBLOC2:
+ switch (data)
+ {
+ case 0x36: /* unneeded value : call 0x2050 but fixed A (0x2d) */
+ if (space.device().safe_pc() == 0x7c4c)
+ m_bootleg_cmd = 0x00;
+ break;
+ case 0x38: /* unneeded value : call 0x2050 but fixed A (0xf3) */
+ if (space.device().safe_pc() == 0x7b87)
+ m_bootleg_cmd = 0x00;
+ break;
+ case 0x88: /* unneeded value : no read back */
+ if (space.device().safe_pc() == 0x67e3)
+ m_bootleg_cmd = 0x00;
+ if (space.device().safe_pc() == 0x7c47)
+ m_bootleg_cmd = 0x00;
+ break;
+ case 0x89: /* unneeded value : no read back */
+ if (space.device().safe_pc() == 0x67e5)
+ m_bootleg_cmd = 0x00;
+ break;
+ case 0x8a: /* unneeded value : call 0x2050 but unused HL and fixed DE (0x7c1c) */
+ if (space.device().safe_pc() == 0x9661)
+ m_bootleg_cmd = 0x00;
+ break;
+ case 0xc0: /* unneeded value : no read back */
+ if (space.device().safe_pc() == 0x67e7)
+ m_bootleg_cmd = 0x00;
+ break;
+ case 0xe3: /* unneeded value : call 0x2050 but fixed A (0x61) */
+ if (space.device().safe_pc() == 0x67e9)
+ m_bootleg_cmd = 0x00;
+ break;
+ case 0xf7: /* unneeded value : call 0x2050 but never called (check code at 0x0340) */
+ if (space.device().safe_pc() == 0x0349)
+ m_bootleg_cmd = 0x00;
+ break;
+ case 0xff: /* unneeded value : no call 0x2050, unused A and fixed HL (0x7d31) */
+ if (space.device().safe_pc() == 0x9670)
+ m_bootleg_cmd = 0x00;
+ break;
+ default:
+ m_bootleg_cmd = 0x00;
+ break;
+ }
+ LOG_D018_W
+ break;
+ case ARKGCBL:
+ switch (data)
+ {
+ case 0x36: /* unneeded value : call 0x2050 but fixed A (0x2d) */
+ if (space.device().safe_pc() == 0x7c4c)
+ m_bootleg_cmd = 0x00;
+ break;
+ case 0x38: /* unneeded value : call 0x2050 but fixed A (0xf3) */
+ if (space.device().safe_pc() == 0x7b87)
+ m_bootleg_cmd = 0x00;
+ break;
+ case 0x88: /* unneeded value : no read back */
+ if (space.device().safe_pc() == 0x67e3)
+ m_bootleg_cmd = 0x00;
+ if (space.device().safe_pc() == 0x7c47)
+ m_bootleg_cmd = 0x00;
+ case 0x89: /* unneeded value : no read back */
+ if (space.device().safe_pc() == 0x67e5)
+ m_bootleg_cmd = 0x00;
+ break;
+ case 0x8a: /* call 0x2050 with A read from 0xf002 and wrong HL */
+ if (space.device().safe_pc() == 0x9661)
+ m_bootleg_cmd = data;
+ break;
+ case 0xc0: /* unneeded value : no read back */
+ if (space.device().safe_pc() == 0x67e7)
+ m_bootleg_cmd = 0x00;
+ break;
+ case 0xe3: /* unneeded value : call 0x2050 but fixed A (0x61) */
+ if (space.device().safe_pc() == 0x67e9)
+ m_bootleg_cmd = 0x00;
+ break;
+ case 0xf7: /* unneeded value : 3 * 'NOP' at 0x034f + 'JR NZ,$035D' at 0x35b */
+ if (space.device().safe_pc() == 0x0349)
+ m_bootleg_cmd = 0x00;
+ break;
+ case 0xff: /* call 0x2050 with A read from 0xf002 and wrong HL */
+ if (space.device().safe_pc() == 0x9670)
+ m_bootleg_cmd = data;
+ break;
+ default:
+ m_bootleg_cmd = 0x00;
+ break;
+ }
+ LOG_D018_W
+ break;
+ case PADDLE2:
+ switch (data)
+ {
+ case 0x24: /* A read from 0xf002 (expected to be 0x9b) */
+ if (space.device().safe_pc() == 0xbd7a)
+ m_bootleg_cmd = data;
+ break;
+ case 0x36: /* call 0x2050 with A read from 0xf002 and wrong HL */
+ if (space.device().safe_pc() == 0x7c4c)
+ m_bootleg_cmd = data;
+ break;
+ case 0x38: /* call 0x2050 with A read from 0xf002 and wrong HL */
+ if (space.device().safe_pc() == 0x7b87)
+ m_bootleg_cmd = data;
+ break;
+ case 0x88: /* unneeded value : no read back */
+ if (space.device().safe_pc() == 0x67e3)
+ m_bootleg_cmd = 0x00;
+ if (space.device().safe_pc() == 0x7c47)
+ m_bootleg_cmd = 0x00;
+ case 0x89: /* unneeded value : no read back */
+ if (space.device().safe_pc() == 0x67e5)
+ m_bootleg_cmd = 0x00;
+ break;
+ case 0x8a: /* call 0x2050 with A read from 0xf002 and wrong HL */
+ if (space.device().safe_pc() == 0x9661)
+ m_bootleg_cmd = data;
+ break;
+ case 0xc0: /* unneeded value : no read back */
+ if (space.device().safe_pc() == 0x67e7)
+ m_bootleg_cmd = 0x00;
+ break;
+ case 0xc3: /* A read from 0xf002 (expected to be 0x1d) */
+ if (space.device().safe_pc() == 0xbd8a)
+ m_bootleg_cmd = data;
+ break;
+ case 0xe3: /* call 0x2050 with A read from 0xf002 and wrong HL */
+ if (space.device().safe_pc() == 0x67e9)
+ m_bootleg_cmd = data;
+ break;
+ case 0xf7: /* call 0x2050 with A read from 0xf002 and wrong HL */
+ if (space.device().safe_pc() == 0x0349)
+ m_bootleg_cmd = data;
+ break;
+ case 0xff: /* call 0x2050 with A read from 0xf002 and wrong HL */
+ if (space.device().safe_pc() == 0x9670)
+ m_bootleg_cmd = data;
+ break;
+ default:
+ m_bootleg_cmd = 0x00;
+ break;
+ }
+ LOG_D018_W
+ break;
+
+ default:
+ logerror("%04x: arkanoid_bootleg_d018_w - data = %02x - unknown bootleg !\n", space.device().safe_pc(), data);
+ break;
+ }
+}
+
+#ifdef UNUSED_CODE
+READ8_MEMBER(arkanoid_state::block2_bootleg_f000_r)
+{
+ return m_bootleg_cmd;
+}
+#endif
+
+/* Kludge for some bootlegs that read this address */
+READ8_MEMBER(arkanoid_state::arkanoid_bootleg_d008_r)
+{
+ uint8_t arkanoid_bootleg_d008_bit[8];
+ uint8_t arkanoid_bootleg_d008_val;
+ uint8_t arkanoid_paddle_value = ioport("MUX")->read();
+ int b;
+
+ arkanoid_bootleg_d008_bit[4] = arkanoid_bootleg_d008_bit[6] = arkanoid_bootleg_d008_bit[7] = 0; /* untested bits */
+
+ switch (m_bootleg_id)
+ {
+ case ARKANGC:
+ case ARKBLOCK:
+ arkanoid_bootleg_d008_bit[0] = 0; /* untested bit */
+ arkanoid_bootleg_d008_bit[1] = 0; /* untested bit */
+ arkanoid_bootleg_d008_bit[2] = 0; /* untested bit */
+ arkanoid_bootleg_d008_bit[3] = 0; /* untested bit */
+ arkanoid_bootleg_d008_bit[5] = 0; /* untested bit */
+ break;
+ case ARKANGC2:
+ case BLOCK2:
+ arkanoid_bootleg_d008_bit[0] = 0; /* untested bit */
+ arkanoid_bootleg_d008_bit[1] = 1; /* check code at 0x0cad */
+ arkanoid_bootleg_d008_bit[2] = 0; /* untested bit */
+ arkanoid_bootleg_d008_bit[3] = 0; /* untested bit */
+ arkanoid_bootleg_d008_bit[5] = 0; /* untested bit */
+ break;
+ case ARKBLOC2:
+ arkanoid_bootleg_d008_bit[0] = 0; /* untested bit */
+ arkanoid_bootleg_d008_bit[1] = 0; /* untested bit */
+ arkanoid_bootleg_d008_bit[2] = 0; /* untested bit */
+ arkanoid_bootleg_d008_bit[3] = 0; /* untested bit */
+ arkanoid_bootleg_d008_bit[5] = (arkanoid_paddle_value < 0x40); /* check code at 0x96b0 */
+ break;
+ case ARKGCBL:
+ arkanoid_bootleg_d008_bit[0] = 0; /* untested bit */
+ arkanoid_bootleg_d008_bit[1] = 1; /* check code at 0x0cad */
+ arkanoid_bootleg_d008_bit[2] = 0; /* untested bit */
+ arkanoid_bootleg_d008_bit[3] = 0; /* untested bit */
+ arkanoid_bootleg_d008_bit[5] = (arkanoid_paddle_value < 0x40); /* check code at 0x96b0 */
+ break;
+ case PADDLE2:
+ arkanoid_bootleg_d008_bit[0] = 1; /* check code at 0x7d65 */
+ arkanoid_bootleg_d008_bit[1] = 1; /* check code at 0x7d65 */
+ arkanoid_bootleg_d008_bit[2] = 1; /* check code at 0x7d65 */
+ arkanoid_bootleg_d008_bit[3] = 1; /* check code at 0x7d65 */
+ arkanoid_bootleg_d008_bit[5] = (arkanoid_paddle_value < 0x40); /* check code at 0x96b0 */
+ break;
+ default:
+ arkanoid_bootleg_d008_bit[0] = 0; /* untested bit */
+ arkanoid_bootleg_d008_bit[1] = 0; /* untested bit */
+ arkanoid_bootleg_d008_bit[2] = 0; /* untested bit */
+ arkanoid_bootleg_d008_bit[3] = 0; /* untested bit */
+ arkanoid_bootleg_d008_bit[5] = 0; /* untested bit */
+ logerror("%04x: arkanoid_bootleg_d008_r - unknown bootleg !\n",space.device().safe_pc());
+ break;
+ }
+
+ arkanoid_bootleg_d008_val = 0;
+ for (b = 0; b < 8; b++)
+ arkanoid_bootleg_d008_val |= (arkanoid_bootleg_d008_bit[b] << b);
+
+ LOG_D008_R
+
+ return arkanoid_bootleg_d008_val;
+}
diff --git a/docs/release/src/hbmame/machine/ng_memcard.cpp b/docs/release/src/hbmame/machine/ng_memcard.cpp
new file mode 100644
index 00000000000..38608a8b62a
--- /dev/null
+++ b/docs/release/src/hbmame/machine/ng_memcard.cpp
@@ -0,0 +1,83 @@
+// license:BSD-3-Clause
+// copyright-holders:Miodrag Milanovic
+/*********************************************************************
+
+ ng_memcard.c
+
+ NEOGEO Memory card functions.
+
+*********************************************************************/
+
+#include "emu.h"
+#include "emuopts.h"
+#include "ng_memcard.h"
+
+// device type definition
+const device_type NG_MEMCARD = device_creator<ng_memcard_device>;
+
+//-------------------------------------------------
+// ng_memcard_device - constructor
+//-------------------------------------------------
+
+ng_memcard_device::ng_memcard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : device_t(mconfig, NG_MEMCARD, "NeoGeo Memory Card", tag, owner, clock, "ng_memcard", __FILE__),
+ device_image_interface(mconfig, *this)
+{
+}
+
+
+
+//-------------------------------------------------
+// device_start - device-specific startup
+//-------------------------------------------------
+
+void ng_memcard_device::device_start()
+{
+ save_item(NAME(m_memcard_data));
+}
+
+/*-------------------------------------------------
+ memcard_insert - insert an existing memory card
+ with the given index
+-------------------------------------------------*/
+
+image_init_result ng_memcard_device::call_load()
+{
+ if(length() != 0x800)
+ return image_init_result::FAIL;
+
+ fseek(0, SEEK_SET);
+ size_t ret = fread(m_memcard_data, 0x800);
+ if(ret != 0x800)
+ return image_init_result::FAIL;
+
+ return image_init_result::PASS;
+}
+
+void ng_memcard_device::call_unload()
+{
+ fseek(0, SEEK_SET);
+ fwrite(m_memcard_data, 0x800);
+}
+
+image_init_result ng_memcard_device::call_create(int format_type, util::option_resolution *format_options)
+{
+ memset(m_memcard_data, 0, 0x800);
+
+ size_t ret = fwrite(m_memcard_data, 0x800);
+ if(ret != 0x800)
+ return image_init_result::FAIL;
+
+ return image_init_result::PASS;
+}
+
+
+READ8_MEMBER(ng_memcard_device::read)
+{
+ return m_memcard_data[offset];
+}
+
+WRITE8_MEMBER(ng_memcard_device::write)
+{
+ m_memcard_data[offset] = data;
+}
diff --git a/docs/release/src/hbmame/machine/ng_memcard.h b/docs/release/src/hbmame/machine/ng_memcard.h
new file mode 100644
index 00000000000..3cab8b1af66
--- /dev/null
+++ b/docs/release/src/hbmame/machine/ng_memcard.h
@@ -0,0 +1,65 @@
+// license:BSD-3-Clause
+// copyright-holders:Miodrag Milanovic
+/*********************************************************************
+
+ ng_memcard.h
+
+ NEOGEO Memory card functions.
+
+*********************************************************************/
+
+#pragma once
+
+#ifndef __NG_MEMCARD_H__
+#define __NG_MEMCARD_H__
+
+//**************************************************************************
+// INTERFACE CONFIGURATION MACROS
+//**************************************************************************
+
+#define MCFG_NEOGEO_MEMCARD_ADD(_tag) \
+ MCFG_DEVICE_ADD(_tag, NG_MEMCARD, 0)
+
+/***************************************************************************
+ FUNCTION PROTOTYPES
+***************************************************************************/
+
+// ======================> ng_memcard_device
+
+class ng_memcard_device : public device_t, public device_image_interface
+{
+public:
+ // construction/destruction
+ ng_memcard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
+ virtual iodevice_t image_type() const override { return IO_MEMCARD; }
+
+ virtual bool is_readable() const override { return true; }
+ virtual bool is_writeable() const override { return true; }
+ virtual bool is_creatable() const override { return true; }
+ virtual bool must_be_loaded() const override { return false; }
+ virtual bool is_reset_on_load() const override { return false; }
+ virtual const char *file_extensions() const override { return "neo"; }
+
+ virtual image_init_result call_load() override;
+ virtual void call_unload() override;
+ virtual image_init_result call_create(int format_type, util::option_resolution *format_options) override;
+
+ // device-level overrides
+ virtual void device_start() override;
+
+ DECLARE_READ8_MEMBER(read);
+ DECLARE_WRITE8_MEMBER(write);
+
+ /* returns the index of the current memory card, or -1 if none */
+ int present() { return is_loaded() ? 0 : -1; }
+private:
+ uint8_t m_memcard_data[0x800];
+};
+
+
+// device type definition
+extern const device_type NG_MEMCARD;
+
+
+#endif /* __NG_MEMCARD_H__ */
diff --git a/docs/release/src/hbmame/osd/windows/hbmame.man b/docs/release/src/hbmame/osd/windows/hbmame.man
new file mode 100644
index 00000000000..cd8abb329c5
--- /dev/null
+++ b/docs/release/src/hbmame/osd/windows/hbmame.man
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+ <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
+ <assemblyIdentity version="1.0.0.0" processorArchitecture="*" name="HBMAME" type="win32" />
+ <description>Homebrew M.A.M.E.</description>
+ <dependency>
+ <dependentAssembly>
+ <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" publicKeyToken="6595b64144ccf1df" language="*" processorArchitecture="*"/>
+ </dependentAssembly>
+ </dependency>
+</assembly>
diff --git a/docs/release/src/hbmame/osd/windows/hbmame.rc b/docs/release/src/hbmame/osd/windows/hbmame.rc
new file mode 100644
index 00000000000..e9fd900c163
--- /dev/null
+++ b/docs/release/src/hbmame/osd/windows/hbmame.rc
@@ -0,0 +1,49 @@
+//============================================================
+//
+// mess.rc - Minimal resource file for Win32 MAME
+//
+//============================================================
+//
+// Copyright Aaron Giles
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or
+// without modification, are permitted provided that the
+// following conditions are met:
+//
+// * Redistributions of source code must retain the above
+// copyright notice, this list of conditions and the
+// following disclaimer.
+// * Redistributions in binary form must reproduce the
+// above copyright notice, this list of conditions and
+// the following disclaimer in the documentation and/or
+// other materials provided with the distribution.
+// * Neither the name 'MAME' nor the names of its
+// contributors may be used to endorse or promote
+// products derived from this software without specific
+// prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY AARON GILES ''AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+// FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+// EVENT SHALL AARON GILES BE LIABLE FOR ANY DIRECT,
+// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGE (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+// IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+//============================================================
+
+#define NOWINRES
+#include "windows.h"
+#include "commctrl.h"
+//#include "hbmamevers.rc"
+
+1 24 MOVEABLE PURE "hbmame.man"
+
+2 ICON DISCARDABLE "../../osd/winui/res/hbmame.ico"
diff --git a/docs/release/src/hbmame/osd/windows/hbmame/hbmame.ico b/docs/release/src/hbmame/osd/windows/hbmame/hbmame.ico
new file mode 100644
index 00000000000..845ec9aedd7
--- /dev/null
+++ b/docs/release/src/hbmame/osd/windows/hbmame/hbmame.ico
Binary files differ
diff --git a/docs/release/src/hbmame/osd/windows/hbmame/hbmame.man b/docs/release/src/hbmame/osd/windows/hbmame/hbmame.man
new file mode 100644
index 00000000000..dea8c25868e
--- /dev/null
+++ b/docs/release/src/hbmame/osd/windows/hbmame/hbmame.man
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+ <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
+ <assemblyIdentity version="1.0.0.0" processorArchitecture="*" name="HBMAME" type="win32" />
+ <description>Home Brew Multiple Arcade Machine Emulator</description>
+ <dependency>
+ <dependentAssembly>
+ <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" publicKeyToken="6595b64144ccf1df" language="*" processorArchitecture="*"/>
+ </dependentAssembly>
+ </dependency>
+ <asmv3:application>
+ <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
+ <dpiAware>true</dpiAware>
+ </asmv3:windowsSettings>
+ </asmv3:application>
+</assembly>
diff --git a/docs/release/src/hbmame/osd/windows/hbmame/hbmame.rc b/docs/release/src/hbmame/osd/windows/hbmame/hbmame.rc
new file mode 100644
index 00000000000..ca578cfb58c
--- /dev/null
+++ b/docs/release/src/hbmame/osd/windows/hbmame/hbmame.rc
@@ -0,0 +1,11 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+
+//#define NOWINRES
+#include "windows.h"
+//#include "commctrl.h"
+//#include "hbmamevers.rc"
+
+1 24 MOVEABLE PURE "hbmame.man"
+
+2 ICON DISCARDABLE "hbmame.ico"
diff --git a/docs/release/src/hbmame/video/cps1.cpp b/docs/release/src/hbmame/video/cps1.cpp
new file mode 100644
index 00000000000..0b63f49e965
--- /dev/null
+++ b/docs/release/src/hbmame/video/cps1.cpp
@@ -0,0 +1,2930 @@
+// license:BSD-3-Clause
+// copyright-holders:Paul Leaman
+/*****************************************************************************************************************************
+
+Format of the .key files:
+
+All values are little-endian
+
+Offset Purpose
+00 0x55 file header
+01 cpsb_addr
+02,03 cpsb_value
+04 mult_factor1
+05 mult_factor2
+06 mult_result_lo
+07 mult_result_hi
+08 layer_control
+09 priority[0]
+0A priority[1]
+0B priority[2]
+0C priority[3]
+0D palette_control
+0E layer_enable_mask[0]
+0F layer_enable_mask[1]
+10 layer_enable_mask[2]
+11 layer_enable_mask[3]
+12 layer_enable_mask[4]
+13 in2_addr
+14 in3_addr
+15 out2_addr
+16,17 bootleg_kludge
+18 scrollx1 offset for bootlegs (negative values are subtracted, e.g 0x81 = subtract 1)
+19 scrollx2 offset for bootlegs (as above)
+1A scrollx3 offset for bootlegs (as above)
+1B,1C,1D bank_sizes[0]
+1E,1F,20 bank_sizes[1]
+21,22,23 bank_sizes[2]
+24,25,26 bank_sizes[3]
+27 bank_type.type(bits 0-4) and bank_number(bits 6-7)
+28,29,2A bank_type.start
+2B,2C,2D bank_type.end
+The bank_type occurs 8 times for the 8 possible combinations
+After that, the remainder of the file is binary zeroes.
+
+*****************************************************************************************************************************/
+#include "emu.h"
+#include "includes/cps1.h"
+
+/********************************************************************
+
+ Configuration table:
+
+********************************************************************/
+#define WRITE_FILE 0
+
+/* Game specific data */
+
+#define GFXTYPE_SPRITES (1<<0)
+#define GFXTYPE_SCROLL1 (1<<1)
+#define GFXTYPE_SCROLL2 (1<<2)
+#define GFXTYPE_SCROLL3 (1<<3)
+#define GFXTYPE_STARS (1<<4)
+
+
+#define __not_applicable__ -1,-1,-1,-1,-1,-1,-1
+
+/* CPSB ID multiply protection unknown ctrl priority masks palctrl layer enable masks */
+#define CPS_B_01 -1, 0x0000, __not_applicable__, 0x26,{0x28,0x2a,0x2c,0x2e},0x30, {0x02,0x04,0x08,0x30,0x30}
+#define CPS_B_02 0x20,0x0002, __not_applicable__, 0x2c,{0x2a,0x28,0x26,0x24},0x22, {0x02,0x04,0x08,0x00,0x00}
+#define CPS_B_03 -1, 0x0000, __not_applicable__, 0x30,{0x2e,0x2c,0x2a,0x28},0x26, {0x20,0x10,0x08,0x00,0x00}
+#define CPS_B_04 0x20,0x0004, __not_applicable__, 0x2e,{0x26,0x30,0x28,0x32},0x2a, {0x02,0x04,0x08,0x00,0x00}
+#define CPS_B_05 0x20,0x0005, __not_applicable__, 0x28,{0x2a,0x2c,0x2e,0x30},0x32, {0x02,0x08,0x20,0x14,0x14}
+#define CPS_B_11 0x32,0x0401, __not_applicable__, 0x26,{0x28,0x2a,0x2c,0x2e},0x30, {0x08,0x10,0x20,0x00,0x00}
+#define CPS_B_12 0x20,0x0402, __not_applicable__, 0x2c,{0x2a,0x28,0x26,0x24},0x22, {0x02,0x04,0x08,0x00,0x00}
+#define CPS_B_13 0x2e,0x0403, __not_applicable__, 0x22,{0x24,0x26,0x28,0x2a},0x2c, {0x20,0x02,0x04,0x00,0x00}
+#define CPS_B_14 0x1e,0x0404, __not_applicable__, 0x12,{0x14,0x16,0x18,0x1a},0x1c, {0x08,0x20,0x10,0x00,0x00}
+#define CPS_B_15 0x0e,0x0405, __not_applicable__, 0x02,{0x04,0x06,0x08,0x0a},0x0c, {0x04,0x02,0x20,0x00,0x00}
+#define CPS_B_16 0x00,0x0406, __not_applicable__, 0x0c,{0x0a,0x08,0x06,0x04},0x02, {0x10,0x0a,0x0a,0x00,0x00}
+#define CPS_B_17 0x08,0x0407, __not_applicable__, 0x14,{0x12,0x10,0x0e,0x0c},0x0a, {0x08,0x14,0x02,0x00,0x00} // the sf2 -> strider conversion needs 0x04 for the 2nd layer enable on one level, gfx confirmed to appear on the PCB, register at the time is 0x8e, so 0x10 is not set.
+#define CPS_B_18 0x10,0x0408, __not_applicable__, 0x1c,{0x1a,0x18,0x16,0x14},0x12, {0x10,0x08,0x02,0x00,0x00}
+#define CPS_B_21_DEF 0x32, -1, 0x00,0x02,0x04,0x06, 0x08, -1, -1, 0x26,{0x28,0x2a,0x2c,0x2e},0x30, {0x02,0x04,0x08,0x30,0x30} // pang3 sets layer enable to 0x26 on startup
+#define CPS_B_21_BT1 0x32,0x0800, 0x0e,0x0c,0x0a,0x08, 0x06,0x04,0x02, 0x28,{0x26,0x24,0x22,0x20},0x30, {0x20,0x04,0x08,0x12,0x12}
+#define CPS_B_21_BT2 -1, -1, 0x1e,0x1c,0x1a,0x18, -1, 0x0c,0x0a, 0x20,{0x2e,0x2c,0x2a,0x28},0x30, {0x30,0x08,0x30,0x00,0x00}
+#define CPS_B_21_BT3 -1, -1, 0x06,0x04,0x02,0x00, 0x0e,0x0c,0x0a, 0x20,{0x2e,0x2c,0x2a,0x28},0x30, {0x20,0x12,0x12,0x00,0x00}
+#define CPS_B_21_BT4 -1, -1, 0x06,0x04,0x02,0x00, 0x1e,0x1c,0x1a, 0x28,{0x26,0x24,0x22,0x20},0x30, {0x20,0x10,0x02,0x00,0x00}
+#define CPS_B_21_BT5 0x32, -1, 0x0e,0x0c,0x0a,0x08, 0x1e,0x1c,0x1a, 0x20,{0x2e,0x2c,0x2a,0x28},0x30, {0x20,0x04,0x02,0x00,0x00}
+#define CPS_B_21_BT6 -1, -1, -1, -1, -1, -1, -1, -1, -1, 0x20,{0x2e,0x2c,0x2a,0x28},0x30, {0x20,0x14,0x14,0x00,0x00}
+#define CPS_B_21_BT7 -1, -1, -1, -1, -1, -1, -1, -1, -1, 0x2c,{ -1, -1, -1, -1 },0x12, {0x14,0x02,0x14,0x00,0x00}
+#define CPS_B_21_QS1 -1, -1, -1, -1, -1, -1, -1, -1, -1, 0x22,{0x24,0x26,0x28,0x2a},0x2c, {0x10,0x08,0x04,0x00,0x00}
+#define CPS_B_21_QS2 -1, -1, -1, -1, -1, -1, -1, 0x2e,0x20, 0x0a,{0x0c,0x0e,0x00,0x02},0x04, {0x16,0x16,0x16,0x00,0x00}
+#define CPS_B_21_QS3 0x0e,0x0c00, -1, -1, -1, -1, 0x2c, -1, -1, 0x12,{0x14,0x16,0x08,0x0a},0x0c, {0x04,0x02,0x20,0x00,0x00}
+#define CPS_B_21_QS4 0x2e,0x0c01, -1, -1, -1, -1, 0x1c,0x1e,0x08, 0x16,{0x00,0x02,0x28,0x2a},0x2c, {0x04,0x08,0x10,0x00,0x00}
+#define CPS_B_21_QS5 0x1e,0x0c02, -1, -1, -1, -1, 0x0c, -1, -1, 0x2a,{0x2c,0x2e,0x30,0x32},0x1c, {0x04,0x08,0x10,0x00,0x00}
+#define HACK_B_1 -1, -1, -1, -1, -1, -1, -1, -1, -1, 0x14,{0x12,0x10,0x0e,0x0c},0x0a, {0x0e,0x0e,0x0e,0x30,0x30}
+#define HACK_B_2 -1, -1, 0x0e,0x0c,0x0a,0x08, 0x06,0x04,0x02, 0x28,{0x26,0x24,0x22,0x20},0x22, {0x20,0x04,0x08,0x12,0x12}
+
+// HBMAME extras
+
+#define HACK_H_2 -1, -1, -1, -1, -1, -1, -1, -1, -1, 0x20,{ -1, -1, -1, -1 },0x2a, {0x02,0x02,0x02,0x00,0x00} // wofh etc
+#define HACK_H_3 -1, -1, -1, -1, -1, -1, -1, -1, -1, 0x04,{0x12,0x10,0x0e,0x0c},0x0a, {0x02,0x02,0x02,0x00,0x00} // not used
+#define HACK_H_4 -1, -1, -1, -1, -1, -1, -1, -1, -1, 0x30,{0x2e,0x2c,0x2a,0x28},0x26, {0x02,0x04,0x08,0x00,0x00} // not used
+#define HACK_H_5 -1, 0x0000, __not_applicable__, 0x26,{0x28,0x2a,0x2c,0x2e},0x30, {0x40,0x40,0x40,0x00,0x00} // daimakb
+#define HACK_H_6 -1, -1, 0x06,0x04,0x02,0x00, 0x1e,0x1c,0x1a, 0x28,{0x26,0x24,0x22,0x20},0x30, {0x40,0x10,0x02,0x00,0x00} // knightsb2
+#define HACK_H_7 -1, -1, 0x06,0x04,0x02,0x00, 0x1e,0x1c,0x1a, 0x26,{0x28,0x2a,0x2c,0x2e},0x30, {0x20,0x10,0x02,0x00,0x00} // knightsha
+#define HACK_H_8 -1, -1, -1, -1, -1, -1, -1, -1, -1, 0x20,{0x00,0x00,0x00,0x00},0x00, {0x80,0x80,0x80,0x00,0x00}
+
+/*
+CPS_B_21_DEF is CPS-B-21 at default settings (no battery)
+CPS_B_21_BTx are various battery configurations
+CPS_B_21_QSx are various battery configurations in Q-Sound games
+*/
+
+
+// LWCHR and LW621 are equivalent as far as the game is concerned, though the
+// equations are different
+
+#define mapper_LWCHR { 0x8000, 0x8000, 0, 0 }, mapper_LWCHR_table
+static const struct gfx_range mapper_LWCHR_table[] =
+{
+ // verified from PAL dump (PAL16P8B @ 3A):
+ // bank 0 = pin 19 (ROMs 1,5,8,12)
+ // bank 1 = pin 16 (ROMs 2,6,9,13)
+ // pin 12 and pin 14 are always enabled (except for stars)
+ // note that allowed codes go up to 0x1ffff but physical ROM is half that size
+
+ /* type start end bank */
+ { GFXTYPE_SPRITES, 0x00000, 0x07fff, 0 },
+ { GFXTYPE_SCROLL1, 0x00000, 0x1ffff, 0 },
+ { GFXTYPE_STARS, 0x00000, 0x1ffff, 1 },
+ { GFXTYPE_SCROLL2, 0x00000, 0x1ffff, 1 },
+ { GFXTYPE_SCROLL3, 0x00000, 0x1ffff, 1 },
+ { 0 }
+};
+
+#define mapper_LW621 { 0x8000, 0x8000, 0, 0 }, mapper_LW621_table
+static const struct gfx_range mapper_LW621_table[] =
+{
+ // verified from PAL dump (PAL @ 1A):
+ // bank 0 = pin 18
+ // bank 1 = pin 14
+ // pins 19, 16, 17, and 12 give an alternate half-size mapping which would
+ // allow to use smaller ROMs:
+ // pin 19
+ // 0 00000-03fff
+ // pin 16
+ // 0 04000-07fff
+ // 1 00000-1ffff
+ // pin 17
+ // 2 00000-1ffff
+ // 3 00000-1ffff
+ // 4 00000-1ffff
+ // pin 12
+ // 3 00000-1ffff
+ //
+ // note that allowed codes go up to 0x1ffff but physical ROM is half that size
+
+ /* type start end bank */
+ { GFXTYPE_SPRITES, 0x00000, 0x07fff, 0 },
+ { GFXTYPE_SCROLL1, 0x00000, 0x1ffff, 0 },
+ { GFXTYPE_STARS, 0x00000, 0x1ffff, 1 },
+ { GFXTYPE_SCROLL2, 0x00000, 0x1ffff, 1 },
+ { GFXTYPE_SCROLL3, 0x00000, 0x1ffff, 1 },
+ { 0 }
+};
+
+
+// DM620, DM22A and DAM63B are equivalent as far as the game is concerned, though
+// the equations are quite different
+
+#define mapper_DM620 { 0x8000, 0x2000, 0x2000, 0 }, mapper_DM620_table
+static const struct gfx_range mapper_DM620_table[] =
+{
+ // verified from PAL dump (PAL16P8B @ 2A):
+ // bank 0 = pin 19 (ROMs 5,6,7,8)
+ // bank 1 = pin 16 (ROMs 9,11,13,15,18,20,22,24)
+ // bank 2 = pin 14 (ROMs 10,12,14,16,19,21,23,25)
+ // pin 12 is never enabled
+ // note that bank 0 is enabled whenever banks 1 or 2 are not enabled,
+ // which would make it highly redundant, so I'm relying on the table
+ // to be scanned top to bottom and using a catch-all clause at the end.
+
+ /* type start end bank */
+ { GFXTYPE_SCROLL3, 0x8000, 0xbfff, 1 },
+ { GFXTYPE_SPRITES, 0x2000, 0x3fff, 2 },
+ { GFXTYPE_STARS | GFXTYPE_SPRITES | GFXTYPE_SCROLL1 | GFXTYPE_SCROLL2 | GFXTYPE_SCROLL3, 0x00000, 0x1ffff, 0 },
+ { 0 }
+};
+
+#define mapper_DM22A { 0x4000, 0x4000, 0x2000, 0x2000 }, mapper_DM22A_table
+static const struct gfx_range mapper_DM22A_table[] =
+{
+ // verified from PAL dump
+ // bank 0 = pin 19
+ // bank 1 = pin 16
+ // bank 2 = pin 14
+ // bank 3 = pin 12
+
+ /* type start end bank */
+ { GFXTYPE_SPRITES, 0x00000, 0x01fff, 0 },
+ { GFXTYPE_SCROLL1, 0x02000, 0x03fff, 0 },
+ { GFXTYPE_SCROLL2, 0x04000, 0x07fff, 1 },
+ { GFXTYPE_SCROLL3, 0x00000, 0x1ffff, 2 },
+ { GFXTYPE_SPRITES, 0x02000, 0x03fff, 3 },
+ { 0 }
+};
+
+#define mapper_DAM63B { 0x8000, 0x8000, 0, 0 }, mapper_DAM63B_table
+static const struct gfx_range mapper_DAM63B_table[] =
+{
+ // verified from PAL dump:
+ // bank0 = pin 19 (ROMs 1,3) & pin 18 (ROMs 2,4)
+ // bank1 = pin 17 (ROMs 5,7) & pin 16 (ROMs 6,8)
+ // pins 12,13,14,15 are always enabled
+
+ /* type start end bank */
+ { GFXTYPE_SPRITES, 0x00000, 0x01fff, 0 },
+ { GFXTYPE_SCROLL1, 0x02000, 0x02fff, 0 },
+ { GFXTYPE_SCROLL2, 0x04000, 0x07fff, 0 },
+ { GFXTYPE_SCROLL3, 0x00000, 0x1ffff, 1 },
+ { GFXTYPE_SPRITES, 0x02000, 0x03fff, 1 },
+ { 0 }
+};
+
+
+// ST24M1 and ST22B are equivalent except for the stars range which is
+// different. This has no practical effect.
+
+#define mapper_ST24M1 { 0x8000, 0x8000, 0, 0 }, mapper_ST24M1_table
+static const struct gfx_range mapper_ST24M1_table[] =
+{
+ // verified from PAL dump
+ // bank 0 = pin 19 (ROMs 2,4,6,8)
+ // bank 1 = pin 16 (ROMs 1,3,5,7)
+ // pin 12 and pin 14 are never enabled
+
+ /* type start end bank */
+ { GFXTYPE_STARS, 0x00000, 0x003ff, 0 },
+ { GFXTYPE_SPRITES, 0x00000, 0x04fff, 0 },
+ { GFXTYPE_SCROLL2, 0x04000, 0x07fff, 0 },
+ { GFXTYPE_SCROLL3, 0x00000, 0x07fff, 1 },
+ { GFXTYPE_SCROLL1, 0x07000, 0x07fff, 1 },
+ { 0 }
+};
+
+#define mapper_ST22B { 0x4000, 0x4000, 0x4000, 0x4000 }, mapper_ST22B_table
+static const struct gfx_range mapper_ST22B_table[] =
+{
+ // verified from PAL dump
+ // bank 0 = pin 19 (ROMs 1,5, 9,13,17,24,32,38)
+ // bank 1 = pin 16 (ROMs 2,6,10,14,18,25,33,39)
+ // bank 2 = pin 14 (ROMs 3,7,11,15,19,21,26,28)
+ // bank 3 = pin 12 (ROMS 4,8,12,16,20,22,27,29)
+
+ /* type start end bank */
+ { GFXTYPE_STARS, 0x00000, 0x1ffff, 0 },
+ { GFXTYPE_SPRITES, 0x00000, 0x03fff, 0 },
+ { GFXTYPE_SPRITES, 0x04000, 0x04fff, 1 },
+ { GFXTYPE_SCROLL2, 0x04000, 0x07fff, 1 },
+ { GFXTYPE_SCROLL3, 0x00000, 0x03fff, 2 },
+ { GFXTYPE_SCROLL3, 0x04000, 0x07fff, 3 },
+ { GFXTYPE_SCROLL1, 0x07000, 0x07fff, 3 },
+ { 0 }
+};
+
+
+#define mapper_TK22B { 0x4000, 0x4000, 0x4000, 0x4000 }, mapper_TK22B_table
+static const struct gfx_range mapper_TK22B_table[] =
+{
+ // verified from PAL dump:
+ // bank 0 = pin 19 (ROMs 1,5, 9,13,17,24,32,38)
+ // bank 1 = pin 16 (ROMs 2,6,10,14,18,25,33,39)
+ // bank 2 = pin 14 (ROMs 3,7,11,15,19,21,26,28)
+ // bank 3 = pin 12 (ROMS 4,8,12,16,20,22,27,29)
+
+ /* type start end bank */
+ { GFXTYPE_SPRITES, 0x0000, 0x3fff, 0 },
+ { GFXTYPE_SPRITES, 0x4000, 0x5fff, 1 },
+ { GFXTYPE_SCROLL1, 0x6000, 0x7fff, 1 },
+ { GFXTYPE_SCROLL3, 0x0000, 0x3fff, 2 },
+ { GFXTYPE_SCROLL2, 0x4000, 0x7fff, 3 },
+ { 0 }
+};
+
+
+#define mapper_WL24B { 0x8000, 0x8000, 0, 0 }, mapper_WL24B_table
+static const struct gfx_range mapper_WL24B_table[] =
+{
+ // verified from PAL dump:
+ // bank 0 = pin 16 (ROMs 1,3,5,7)
+ // bank 1 = pin 12 (ROMs 10,12,14,16,20,22,24,26)
+ // pin 14 and pin 19 are never enabled
+
+ /* type start end bank */
+ { GFXTYPE_SPRITES, 0x0000, 0x4fff, 0 },
+ { GFXTYPE_SCROLL3, 0x5000, 0x6fff, 0 },
+ { GFXTYPE_SCROLL1, 0x7000, 0x7fff, 0 },
+ { GFXTYPE_SCROLL2, 0x0000, 0x3fff, 1 },
+ { 0 }
+};
+
+
+#define mapper_S224B { 0x8000, 0, 0, 0 }, mapper_S224B_table
+static const struct gfx_range mapper_S224B_table[] =
+{
+ // verified from PAL dump:
+ // bank 0 = pin 16 (ROMs 1,3,5,7)
+ // pin 12 & pin 14 give an alternate half-size mapping which would allow to
+ // populate the 8-bit ROM sockets instead of the 16-bit ones:
+ // pin 12
+ // 0 00000 - 03fff
+ // pin 14
+ // 0 04000 - 043ff
+ // 1 04400 - 04bff
+ // 2 06000 - 07fff
+ // 3 04c00 - 05fff
+ // pin 19 is never enabled
+
+ /* type start end bank */
+ { GFXTYPE_SPRITES, 0x0000, 0x43ff, 0 },
+ { GFXTYPE_SCROLL1, 0x4400, 0x4bff, 0 },
+ { GFXTYPE_SCROLL3, 0x4c00, 0x5fff, 0 },
+ { GFXTYPE_SCROLL2, 0x6000, 0x7fff, 0 },
+ { 0 }
+};
+
+
+#define mapper_YI24B { 0x8000, 0, 0, 0 }, mapper_YI24B_table
+static const struct gfx_range mapper_YI24B_table[] =
+{
+ // verified from JED:
+ // bank 0 = pin 16 (ROMs 1,3,5,7)
+ // pin 12 & pin 14 give an alternate half-size mapping which would allow to
+ // populate the 8-bit ROM sockets instead of the 16-bit ones:
+ // pin 12
+ // 0 0000-1fff
+ // 3 2000-3fff
+ // pin 14
+ // 1 4000-47ff
+ // 2 4800-7fff
+ // pin 19 is never enabled
+
+ /* type start end bank */
+ { GFXTYPE_SPRITES, 0x0000, 0x1fff, 0 },
+ { GFXTYPE_SCROLL3, 0x2000, 0x3fff, 0 },
+ { GFXTYPE_SCROLL1, 0x4000, 0x47ff, 0 },
+ { GFXTYPE_SCROLL2, 0x4800, 0x7fff, 0 },
+ { 0 }
+};
+
+
+// AR24B and AR22B are equivalent, but since we could dump both PALs we are
+// documenting both.
+
+#define mapper_AR24B { 0x8000, 0, 0, 0 }, mapper_AR24B_table
+static const struct gfx_range mapper_AR24B_table[] =
+{
+ // verified from JED:
+ // bank 0 = pin 16 (ROMs 1,3,5,7)
+ // pin 12 & pin 14 give an alternate half-size mapping which would allow to
+ // populate the 8-bit ROM sockets instead of the 16-bit ones:
+ // pin 12
+ // 0 0000-2fff
+ // 1 3000-3fff
+ // pin 14
+ // 2 4000-5fff
+ // 3 6000-7fff
+ // pin 19 is never enabled
+
+ /* type start end bank */
+ { GFXTYPE_SPRITES, 0x0000, 0x2fff, 0 },
+ { GFXTYPE_SCROLL1, 0x3000, 0x3fff, 0 },
+ { GFXTYPE_SCROLL2, 0x4000, 0x5fff, 0 },
+ { GFXTYPE_SCROLL3, 0x6000, 0x7fff, 0 },
+ { 0 }
+};
+
+#define mapper_AR22B { 0x4000, 0x4000, 0, 0 }, mapper_AR22B_table
+static const struct gfx_range mapper_AR22B_table[] =
+{
+ // verified from PAL dump:
+ // bank 0 = pin 19 (ROMs 1,5, 9,13,17,24,32,38)
+ // bank 1 = pin 16 (ROMs 2,6,10,14,18,25,33,39)
+ // pins 12 and 14 are tristated
+
+ /* type start end bank */
+ { GFXTYPE_SPRITES, 0x0000, 0x2fff, 0 },
+ { GFXTYPE_SCROLL1, 0x3000, 0x3fff, 0 },
+ { GFXTYPE_SCROLL2, 0x4000, 0x5fff, 1 },
+ { GFXTYPE_SCROLL3, 0x6000, 0x7fff, 1 },
+ { 0 }
+};
+
+
+#define mapper_O224B { 0x8000, 0x4000, 0, 0 }, mapper_O224B_table
+static const struct gfx_range mapper_O224B_table[] =
+{
+ // verified from PAL dump:
+ // bank 0 = pin 19 (ROMs 2,4,6,8)
+ // bank 1 = pin 12 (ROMs 10,12,14,16,20,22,24,26)
+ // pin 16 & pin 14 appear to be an alternate half-size mapping for bank 0
+ // but scroll1 is missing:
+ // pin 16
+ // 2 00c00 - 03bff
+ // 3 03c00 - 03fff
+ // pin 14
+ // 3 04000 - 04bff
+ // 0 04c00 - 07fff
+
+ /* type start end bank */
+ { GFXTYPE_SCROLL1, 0x0000, 0x0bff, 0 },
+ { GFXTYPE_SCROLL2, 0x0c00, 0x3bff, 0 },
+ { GFXTYPE_SCROLL3, 0x3c00, 0x4bff, 0 },
+ { GFXTYPE_SPRITES, 0x4c00, 0x7fff, 0 },
+ { GFXTYPE_SPRITES, 0x8000, 0xa7ff, 1 },
+ { GFXTYPE_SCROLL2, 0xa800, 0xb7ff, 1 },
+ { GFXTYPE_SCROLL3, 0xb800, 0xbfff, 1 },
+ { 0 }
+};
+
+
+#define mapper_MS24B { 0x8000, 0, 0, 0 }, mapper_MS24B_table
+static const struct gfx_range mapper_MS24B_table[] =
+{
+ // verified from PAL dump:
+ // bank 0 = pin 16 (ROMs 1,3,5,7)
+ // pin 14 duplicates pin 16 allowing to populate the 8-bit ROM sockets
+ // instead of the 16-bit ones.
+ // pin 12 is enabled only for sprites:
+ // 0 0000-3fff
+ // pin 19 is never enabled
+
+ /* type start end bank */
+ { GFXTYPE_SPRITES, 0x0000, 0x3fff, 0 },
+ { GFXTYPE_SCROLL1, 0x4000, 0x4fff, 0 },
+ { GFXTYPE_SCROLL2, 0x5000, 0x6fff, 0 },
+ { GFXTYPE_SCROLL3, 0x7000, 0x7fff, 0 },
+ { 0 }
+};
+
+
+#define mapper_CK24B { 0x8000, 0, 0, 0 }, mapper_CK24B_table
+static const struct gfx_range mapper_CK24B_table[] =
+{
+ /* type start end bank */
+ { GFXTYPE_SPRITES, 0x0000, 0x2fff, 0 },
+ { GFXTYPE_SCROLL1, 0x3000, 0x3fff, 0 },
+ { GFXTYPE_SCROLL2, 0x4000, 0x6fff, 0 },
+ { GFXTYPE_SCROLL3, 0x7000, 0x7fff, 0 },
+ { 0 }
+};
+
+
+#define mapper_NM24B { 0x8000, 0, 0, 0 }, mapper_NM24B_table
+static const struct gfx_range mapper_NM24B_table[] =
+{
+ // verified from PAL dump:
+ // bank 0 = pin 16 (ROMs 1,3,5,7)
+ // pin 12 & pin 14 give an alternate half-size mapping which would allow to
+ // populate the 8-bit ROM sockets instead of the 16-bit ones:
+ // pin 12
+ // 0 00000 - 03fff
+ // 2 00000 - 03fff
+ // pin 14
+ // 1 04000 - 047ff
+ // 0 04800 - 067ff
+ // 2 04800 - 067ff
+ // 3 06800 - 07fff
+ // pin 19 is never enabled
+
+ /* type start end bank */
+ { GFXTYPE_SPRITES, 0x0000, 0x3fff, 0 },
+ { GFXTYPE_SCROLL2, 0x0000, 0x3fff, 0 },
+ { GFXTYPE_SCROLL1, 0x4000, 0x47ff, 0 },
+ { GFXTYPE_SPRITES, 0x4800, 0x67ff, 0 },
+ { GFXTYPE_SCROLL2, 0x4800, 0x67ff, 0 },
+ { GFXTYPE_SCROLL3, 0x6800, 0x7fff, 0 },
+ { 0 }
+};
+
+
+// CA24B and CA22B are equivalent, but since we could dump both PALs we are
+// documenting both.
+
+#define mapper_CA24B { 0x8000, 0, 0, 0 }, mapper_CA24B_table
+static const struct gfx_range mapper_CA24B_table[] =
+{
+ // verified from PAL dump:
+ // bank 0 = pin 16 (ROMs 1,3,5,7)
+ // pin 12 & pin 14 give an alternate half-size mapping which would allow to
+ // populate the 8-bit ROM sockets instead of the 16-bit ones:
+ // pin 12
+ // 0 0000-2fff
+ // 2 0000-2fff
+ // 3 3000-3fff
+ // pin 14
+ // 3 4000-4fff
+ // 1 5000-57ff
+ // 0 5800-7fff
+ // 2 5800-7fff
+ // pin 19 is never enabled (actually it is always enabled when PAL pin 1 is 1, purpose unknown)
+
+ /* type start end bank */
+ { GFXTYPE_SPRITES, 0x0000, 0x2fff, 0 },
+ { GFXTYPE_SCROLL2, 0x0000, 0x2fff, 0 },
+ { GFXTYPE_SCROLL3, 0x3000, 0x4fff, 0 },
+ { GFXTYPE_SCROLL1, 0x5000, 0x57ff, 0 },
+ { GFXTYPE_SPRITES, 0x5800, 0x7fff, 0 },
+ { GFXTYPE_SCROLL2, 0x5800, 0x7fff, 0 },
+ { 0 }
+};
+
+#define mapper_CA22B { 0x4000, 0x4000, 0, 0 }, mapper_CA22B_table
+static const struct gfx_range mapper_CA22B_table[] =
+{
+ // verified from PAL dump:
+ // bank 0 = pin 19 (ROMs 1,5, 9,13,17,24,32,38)
+ // bank 1 = pin 16 (ROMs 2,6,10,14,18,25,33,39)
+ // pin 12 and pin 14 are never enabled
+
+ /* type start end bank */
+ { GFXTYPE_SPRITES, 0x0000, 0x2fff, 0 },
+ { GFXTYPE_SCROLL2, 0x0000, 0x2fff, 0 },
+ { GFXTYPE_SCROLL3, 0x3000, 0x3fff, 0 },
+ { GFXTYPE_SCROLL3, 0x4000, 0x4fff, 1 },
+ { GFXTYPE_SCROLL1, 0x5000, 0x57ff, 1 },
+ { GFXTYPE_SPRITES, 0x5800, 0x7fff, 1 },
+ { GFXTYPE_SCROLL2, 0x5800, 0x7fff, 1 },
+ { 0 }
+};
+
+
+#define mapper_STF29 { 0x8000, 0x8000, 0x8000, 0 }, mapper_STF29_table
+static const struct gfx_range mapper_STF29_table[] =
+{
+ // verified from PAL dump:
+ // bank 0 = pin 19 (ROMs 5,6,7,8)
+ // bank 1 = pin 14 (ROMs 14,15,16,17)
+ // bank 2 = pin 12 (ROMS 24,25,26,27)
+
+ /* type start end bank */
+ { GFXTYPE_SPRITES, 0x00000, 0x07fff, 0 },
+ { GFXTYPE_SPRITES, 0x08000, 0x0ffff, 1 },
+ { GFXTYPE_SPRITES, 0x10000, 0x11fff, 2 },
+ { GFXTYPE_SCROLL3, 0x02000, 0x03fff, 2 },
+ { GFXTYPE_SCROLL1, 0x04000, 0x04fff, 2 },
+ { GFXTYPE_SCROLL2, 0x05000, 0x07fff, 2 },
+ { 0 }
+};
+
+
+// RT24B and RT22B are equivalent, but since we could dump both PALs we are
+// documenting both.
+
+#define mapper_RT24B { 0x8000, 0x8000, 0, 0 }, mapper_RT24B_table
+static const struct gfx_range mapper_RT24B_table[] =
+{
+ // verified from PAL dump:
+ // bank 0 = pin 16 (ROMs 1,3,5,7)
+ // bank 1 = pin 19 (ROMs 2,4,6,8)
+ // pin 12 & pin 14 are never enabled
+
+ /* type start end bank */
+ { GFXTYPE_SPRITES, 0x0000, 0x53ff, 0 },
+ { GFXTYPE_SCROLL1, 0x5400, 0x6fff, 0 },
+ { GFXTYPE_SCROLL3, 0x7000, 0x7fff, 0 },
+ { GFXTYPE_SCROLL3, 0x0000, 0x3fff, 1 },
+ { GFXTYPE_SCROLL2, 0x2800, 0x7fff, 1 },
+ { GFXTYPE_SPRITES, 0x5400, 0x7fff, 1 },
+ { 0 }
+};
+
+#define mapper_RT22B { 0x4000, 0x4000, 0x4000, 0x4000 }, mapper_RT22B_table
+static const struct gfx_range mapper_RT22B_table[] =
+{
+ // verified from PAL dump:
+ // bank 0 = pin 19 (ROMs 1,5, 9,13,17,24,32,38)
+ // bank 1 = pin 16 (ROMs 2,6,10,14,18,25,33,39)
+ // bank 2 = pin 14 (ROMs 3,7,11,15,19,21,26,28)
+ // bank 3 = pin 12 (ROMS 4,8,12,16,20,22,27,29)
+
+ /* type start end bank */
+ { GFXTYPE_SPRITES, 0x0000, 0x3fff, 0 },
+ { GFXTYPE_SPRITES, 0x4000, 0x53ff, 1 },
+ { GFXTYPE_SCROLL1, 0x5400, 0x6fff, 1 },
+ { GFXTYPE_SCROLL3, 0x7000, 0x7fff, 1 },
+ { GFXTYPE_SCROLL3, 0x0000, 0x3fff, 2 },
+ { GFXTYPE_SCROLL2, 0x2800, 0x3fff, 2 },
+ { GFXTYPE_SCROLL2, 0x4000, 0x7fff, 3 },
+ { GFXTYPE_SPRITES, 0x5400, 0x7fff, 3 },
+ { 0 }
+};
+
+
+#define mapper_KD29B { 0x8000, 0x8000, 0, 0 }, mapper_KD29B_table
+static const struct gfx_range mapper_KD29B_table[] =
+{
+ // verified from PAL dump:
+ // bank 0 = pin 19 (ROMs 1,2,3,4)
+ // bank 1 = pin 14 (ROMs 10,11,12,13)
+ // pin 12 is never enabled
+
+ /* type start end bank */
+ { GFXTYPE_SPRITES, 0x0000, 0x7fff, 0 },
+ { GFXTYPE_SPRITES, 0x8000, 0x8fff, 1 },
+ { GFXTYPE_SCROLL2, 0x9000, 0xbfff, 1 },
+ { GFXTYPE_SCROLL1, 0xc000, 0xd7ff, 1 },
+ { GFXTYPE_SCROLL3, 0xd800, 0xffff, 1 },
+ { 0 }
+};
+
+
+#define mapper_CC63B { 0x8000, 0x8000, 0, 0 }, mapper_CC63B_table
+static const struct gfx_range mapper_CC63B_table[] =
+{
+ // verified from PAL dump:
+ // bank0 = pin 19 (ROMs 1,3) & pin 18 (ROMs 2,4)
+ // bank1 = pin 17 (ROMs 5,7) & pin 16 (ROMs 6,8)
+ // pins 12,13,14,15 are always enabled
+
+ /* type start end bank */
+ { GFXTYPE_SPRITES, 0x0000, 0x7fff, 0 },
+ { GFXTYPE_SCROLL2, 0x0000, 0x7fff, 0 },
+ { GFXTYPE_SPRITES, 0x8000, 0xffff, 1 },
+ { GFXTYPE_SCROLL1, 0x8000, 0xffff, 1 },
+ { GFXTYPE_SCROLL2, 0x8000, 0xffff, 1 },
+ { GFXTYPE_SCROLL3, 0x8000, 0xffff, 1 },
+ { 0 }
+};
+
+
+#define mapper_KR63B { 0x8000, 0x8000, 0, 0 }, mapper_KR63B_table
+static const struct gfx_range mapper_KR63B_table[] =
+{
+ // verified from PAL dump:
+ // bank0 = pin 19 (ROMs 1,3) & pin 18 (ROMs 2,4)
+ // bank1 = pin 17 (ROMs 5,7) & pin 16 (ROMs 6,8)
+ // pins 12,13,14,15 are always enabled
+
+ /* type start end bank */
+ { GFXTYPE_SPRITES, 0x0000, 0x7fff, 0 },
+ { GFXTYPE_SCROLL2, 0x0000, 0x7fff, 0 },
+ { GFXTYPE_SCROLL1, 0x8000, 0x9fff, 1 },
+ { GFXTYPE_SPRITES, 0x8000, 0xcfff, 1 },
+ { GFXTYPE_SCROLL2, 0x8000, 0xcfff, 1 },
+ { GFXTYPE_SCROLL3, 0xd000, 0xffff, 1 },
+ { 0 }
+};
+
+
+#define mapper_S9263B { 0x8000, 0x8000, 0x8000, 0 }, mapper_S9263B_table
+static const struct gfx_range mapper_S9263B_table[] =
+{
+ // verified from PAL dump:
+ // FIXME there is some problem with this dump since pin 14 is never enabled
+ // instead of being the same as pin 15 as expected
+ // bank0 = pin 19 (ROMs 1,3) & pin 18 (ROMs 2,4)
+ // bank1 = pin 17 (ROMs 5,7) & pin 16 (ROMs 6,8)
+ // bank2 = pin 15 (ROMs 10,12) & pin 14 (ROMs 11,13)
+ // pins 12 and 13 are the same as 14 and 15
+
+ /* type start end bank */
+ { GFXTYPE_SPRITES, 0x00000, 0x07fff, 0 },
+ { GFXTYPE_SPRITES, 0x08000, 0x0ffff, 1 },
+ { GFXTYPE_SPRITES, 0x10000, 0x11fff, 2 },
+ { GFXTYPE_SCROLL3, 0x02000, 0x03fff, 2 },
+ { GFXTYPE_SCROLL1, 0x04000, 0x04fff, 2 },
+ { GFXTYPE_SCROLL2, 0x05000, 0x07fff, 2 },
+ { 0 }
+};
+
+
+// VA22B and VA63B are equivalent, but since we could dump both PALs we are
+// documenting both.
+
+#define mapper_VA22B { 0x4000, 0x4000, 0, 0 }, mapper_VA22B_table
+static const struct gfx_range mapper_VA22B_table[] =
+{
+ // verified from PAL dump:
+ // bank 0 = pin 19 (ROMs 1,5, 9,13,17,24,32,38)
+ // bank 1 = pin 16 (ROMs 2,6,10,14,18,25,33,39)
+ // pin 12 and pin 14 are never enabled
+
+ /* type start end bank */
+ { GFXTYPE_SPRITES | GFXTYPE_SCROLL1 | GFXTYPE_SCROLL2 | GFXTYPE_SCROLL3, 0x00000, 0x03fff, 0 },
+ { GFXTYPE_SPRITES | GFXTYPE_SCROLL1 | GFXTYPE_SCROLL2 | GFXTYPE_SCROLL3, 0x04000, 0x07fff, 1 },
+ { 0 }
+};
+
+#define mapper_VA63B { 0x8000, 0, 0, 0 }, mapper_VA63B_table
+static const struct gfx_range mapper_VA63B_table[] =
+{
+ // verified from PAL dump (PAL # uncertain):
+ // bank0 = pin 19 (ROMs 1,3) & pin 18 (ROMs 2,4)
+ // pins 12,13,14,15,16,17 are never enabled
+
+ /* type start end bank */
+ { GFXTYPE_SPRITES | GFXTYPE_SCROLL1 | GFXTYPE_SCROLL2 | GFXTYPE_SCROLL3, 0x00000, 0x07fff, 0 },
+ { 0 }
+};
+
+
+#define mapper_Q522B { 0x8000, 0, 0, 0 }, mapper_Q522B_table
+static const struct gfx_range mapper_Q522B_table[] =
+{
+ /* type start end bank */
+ { GFXTYPE_SPRITES | GFXTYPE_SCROLL2, 0x0000, 0x6fff, 0 },
+ { GFXTYPE_SCROLL3, 0x7000, 0x77ff, 0 },
+ { GFXTYPE_SCROLL1, 0x7800, 0x7fff, 0 },
+ { 0 }
+};
+
+
+#define mapper_TK263B { 0x8000, 0x8000, 0, 0 }, mapper_TK263B_table
+static const struct gfx_range mapper_TK263B_table[] =
+{
+ // verified from PAL dump:
+ // bank0 = pin 19 (ROMs 1,3) & pin 18 (ROMs 2,4)
+ // bank1 = pin 17 (ROMs 5,7) & pin 16 (ROMs 6,8)
+ // pins 12,13,14,15 are always enabled
+
+ /* type start end bank */
+ { GFXTYPE_SPRITES | GFXTYPE_SCROLL1 | GFXTYPE_SCROLL2 | GFXTYPE_SCROLL3, 0x00000, 0x07fff, 0 },
+ { GFXTYPE_SPRITES | GFXTYPE_SCROLL1 | GFXTYPE_SCROLL2 | GFXTYPE_SCROLL3, 0x08000, 0x0ffff, 1 },
+ { 0 }
+};
+
+
+#define mapper_CD63B { 0x8000, 0x8000, 0, 0 }, mapper_CD63B_table
+static const struct gfx_range mapper_CD63B_table[] =
+{
+ /* type start end bank */
+ { GFXTYPE_SCROLL1, 0x0000, 0x0fff, 0 },
+ { GFXTYPE_SPRITES, 0x1000, 0x7fff, 0 },
+ { GFXTYPE_SPRITES | GFXTYPE_SCROLL2, 0x8000, 0xdfff, 1 },
+ { GFXTYPE_SCROLL3, 0xe000, 0xffff, 1 },
+ { 0 }
+};
+
+
+#define mapper_PS63B { 0x8000, 0x8000, 0, 0 }, mapper_PS63B_table
+static const struct gfx_range mapper_PS63B_table[] =
+{
+ /* type start end bank */
+ { GFXTYPE_SCROLL1, 0x0000, 0x0fff, 0 },
+ { GFXTYPE_SPRITES, 0x1000, 0x7fff, 0 },
+ { GFXTYPE_SPRITES | GFXTYPE_SCROLL2, 0x8000, 0xdbff, 1 },
+ { GFXTYPE_SCROLL3, 0xdc00, 0xffff, 1 },
+ { 0 }
+};
+
+
+#define mapper_MB63B { 0x8000, 0x8000, 0x8000, 0 }, mapper_MB63B_table
+static const struct gfx_range mapper_MB63B_table[] =
+{
+ /* type start end bank */
+ { GFXTYPE_SCROLL1, 0x00000, 0x00fff, 0 },
+ { GFXTYPE_SPRITES | GFXTYPE_SCROLL2, 0x01000, 0x07fff, 0 },
+ { GFXTYPE_SPRITES | GFXTYPE_SCROLL2, 0x08000, 0x0ffff, 1 },
+ { GFXTYPE_SPRITES | GFXTYPE_SCROLL2, 0x10000, 0x167ff, 2 },
+ { GFXTYPE_SCROLL3, 0x16800, 0x17fff, 2 },
+ { 0 }
+};
+
+
+#define mapper_QD22B { 0x4000, 0, 0, 0 }, mapper_QD22B_table
+static const struct gfx_range mapper_QD22B_table[] =
+{
+ // verified from PAL dump:
+ // bank 0 = pin 19
+
+ /* type start end bank */
+ { GFXTYPE_SPRITES, 0x0000, 0x3fff, 0 },
+ { GFXTYPE_SCROLL1, 0x0000, 0x3fff, 0 },
+ { GFXTYPE_SCROLL2, 0x0000, 0x3fff, 0 },
+ { GFXTYPE_SCROLL3, 0x0000, 0x3fff, 0 },
+ { 0 }
+};
+
+
+#define mapper_QAD63B { 0x8000, 0, 0, 0 }, mapper_QAD63B_table
+static const struct gfx_range mapper_QAD63B_table[] =
+{
+ /* type start end bank */
+ { GFXTYPE_SCROLL1, 0x0000, 0x07ff, 0 },
+ { GFXTYPE_SCROLL3, 0x0800, 0x1fff, 0 },
+ { GFXTYPE_SPRITES | GFXTYPE_SCROLL2, 0x2000, 0x7fff, 0 },
+ { 0 }
+};
+
+
+#define mapper_TN2292 { 0x8000, 0x8000, 0, 0 }, mapper_TN2292_table
+static const struct gfx_range mapper_TN2292_table[] =
+{
+ /* type start end bank */
+ { GFXTYPE_SCROLL1, 0x0000, 0x0fff, 0 },
+ { GFXTYPE_SCROLL3, 0x1000, 0x3fff, 0 },
+ { GFXTYPE_SPRITES | GFXTYPE_SCROLL2, 0x4000, 0x7fff, 0 },
+ { GFXTYPE_SPRITES | GFXTYPE_SCROLL2, 0x8000, 0xffff, 1 },
+ { 0 }
+};
+
+
+#define mapper_RCM63B { 0x8000, 0x8000, 0x8000, 0x8000 }, mapper_RCM63B_table
+static const struct gfx_range mapper_RCM63B_table[] =
+{
+ // verified from PAL dump:
+ // bank0 = pin 19 (ROMs 1,3) & pin 18 (ROMs 2,4)
+ // bank1 = pin 17 (ROMs 5,7) & pin 16 (ROMs 6,8)
+ // bank0 = pin 15 (ROMs 10,12) & pin 14 (ROMs 11,13)
+ // bank1 = pin 13 (ROMs 14,16) & pin 12 (ROMs 15,17)
+
+ /* type start end bank */
+ { GFXTYPE_SPRITES | GFXTYPE_SCROLL1 | GFXTYPE_SCROLL2 | GFXTYPE_SCROLL3, 0x00000, 0x07fff, 0 },
+ { GFXTYPE_SPRITES | GFXTYPE_SCROLL1 | GFXTYPE_SCROLL2 | GFXTYPE_SCROLL3, 0x08000, 0x0ffff, 1 },
+ { GFXTYPE_SPRITES | GFXTYPE_SCROLL1 | GFXTYPE_SCROLL2 | GFXTYPE_SCROLL3, 0x10000, 0x17fff, 2 },
+ { GFXTYPE_SPRITES | GFXTYPE_SCROLL1 | GFXTYPE_SCROLL2 | GFXTYPE_SCROLL3, 0x18000, 0x1ffff, 3 },
+ { 0 }
+};
+
+
+#define mapper_PKB10B { 0x8000, 0, 0, 0 }, mapper_PKB10B_table
+static const struct gfx_range mapper_PKB10B_table[] =
+{
+ /* type start end bank */
+ { GFXTYPE_SCROLL1, 0x0000, 0x0fff, 0 },
+ { GFXTYPE_SPRITES | GFXTYPE_SCROLL2, 0x1000, 0x5fff, 0 },
+ { GFXTYPE_SCROLL3, 0x6000, 0x7fff, 0 },
+ { 0 }
+};
+
+
+#define mapper_pang3 { 0x8000, 0x8000, 0, 0 }, mapper_pang3_table
+static const struct gfx_range mapper_pang3_table[] =
+{
+ /* type start end bank */
+ { GFXTYPE_SPRITES | GFXTYPE_SCROLL2, 0x0000, 0x7fff, 0 },
+ { GFXTYPE_SPRITES | GFXTYPE_SCROLL2, 0x8000, 0x9fff, 1 },
+ { GFXTYPE_SCROLL1, 0xa000, 0xbfff, 1 },
+ { GFXTYPE_SCROLL3, 0xc000, 0xffff, 1 },
+ { 0 }
+};
+
+
+#define mapper_sfzch { 0x20000, 0, 0, 0 }, mapper_sfzch_table
+static const struct gfx_range mapper_sfzch_table[] =
+{
+ /* type start end bank */
+ { GFXTYPE_SPRITES | GFXTYPE_SCROLL1 | GFXTYPE_SCROLL2 | GFXTYPE_SCROLL3, 0x00000, 0x1ffff, 0 },
+ { 0 }
+};
+
+/*
+ I don't know if CPS2 ROM boards use PALs as well; since all games seem to be
+ well behaved, I'll just assume that there is no strong checking of gfx type.
+ (sprites are not listed here because they are addressed linearly by the CPS2
+ sprite code)
+ */
+#define mapper_cps2 { 0x20000, 0x20000, 0, 0 }, mapper_cps2_table
+static const struct gfx_range mapper_cps2_table[] =
+{
+ /* type start end bank */
+ { GFXTYPE_SCROLL1 | GFXTYPE_SCROLL2 | GFXTYPE_SCROLL3, 0x00000, 0x1ffff, 1 }, // 20000-3ffff physical
+ { 0 }
+};
+
+
+#define mapper_KNM10B { 0x8000, 0x8000, 0x8000, 0 }, mapper_KNM10B_table
+static const struct gfx_range mapper_KNM10B_table[] =
+{
+ /* type start end bank */
+
+ { GFXTYPE_SPRITES , 0x00000, 0x07fff, 0 },
+ { GFXTYPE_SPRITES , 0x08000, 0x0ffff, 1 },
+ { GFXTYPE_SPRITES , 0x10000, 0x17fff, 2 },
+ { GFXTYPE_SCROLL2 , 0x04000, 0x07fff, 2 },
+ { GFXTYPE_SCROLL1, 0x01000, 0x01fff, 2 },
+ { GFXTYPE_SCROLL3 , 0x02000, 0x03fff, 2 },
+ { 0 }
+};
+
+#if 0
+#define mapper_frog { 0x8000, 0, 0, 0 }, mapper_frog_table
+static const struct gfx_range mapper_frog_table[] =
+{
+ /* type start end bank */
+ { GFXTYPE_SPRITES, 0x04e0, 0x050f, 0 }, // frogs and bugs
+ { GFXTYPE_SCROLL1, 0x0000, 0x003f, 0 }, // text
+ { GFXTYPE_SCROLL2, 0x0140, 0x025f, 0 }, // frog feast title
+ { GFXTYPE_SCROLL3, 0x0040, 0x04df, 0 }, // logo and background
+ { 0 }
+};
+
+#define mapper_demo { 0x8000, 0, 0, 0 }, mapper_demo_table
+static const struct gfx_range mapper_demo_table[] =
+{
+ /* type start end bank */
+ { GFXTYPE_SPRITES, 0x0000, 0x003f, 0 }, // moveable chaos
+ { GFXTYPE_SCROLL1, 0x4400, 0x445f, 0 }, // text
+ { GFXTYPE_SCROLL2, 0x0040, 0x00ff, 0 }, // logo, blue box, 10th
+ { GFXTYPE_SCROLL3, 0x0100, 0x011f, 0 }, // must not allow access to 0000, otherwise not used
+ { 0 }
+};
+#endif
+
+
+static const struct CPS1config cps1_config_table[]=
+{
+ /* name CPSB gfx mapper in2 in3 out2 kludge */
+ {"forgottn", CPS_B_01, mapper_LW621 },
+ {"forgottna", CPS_B_01, mapper_LW621 },
+ {"forgottnu", CPS_B_01, mapper_LW621 },
+ {"forgottnu1", CPS_B_01, mapper_LWCHR },
+ {"forgottnua", CPS_B_01, mapper_LWCHR },
+ {"forgottnuaa", CPS_B_01, mapper_LWCHR },
+ {"lostwrld", CPS_B_01, mapper_LWCHR },
+ {"lostwrldo", CPS_B_01, mapper_LWCHR },
+ {"ghouls", CPS_B_01, mapper_DM620 },
+ {"ghoulsu", CPS_B_01, mapper_DM620 },
+ {"daimakai", CPS_B_01, mapper_DM22A }, // equivalent to DM620
+ {"daimakair", CPS_B_21_DEF, mapper_DAM63B }, // equivalent to DM620, also CPS_B_21_DEF is equivalent to CPS_B_01
+ {"strider", CPS_B_01, mapper_ST24M1 },
+ {"striderua", CPS_B_01, mapper_ST24M1 }, // wrong, this set uses ST24B2, still not dumped
+ {"strideruc", CPS_B_17, mapper_ST24M1 }, // wrong?
+ {"striderj", CPS_B_01, mapper_ST22B }, // equivalent to ST24M1
+ {"striderjr", CPS_B_21_DEF, mapper_ST24M1 }, // wrong, this set uses STH63B, still not dumped
+ {"dynwar", CPS_B_02, mapper_TK22B }, // wrong, this set uses TK24B1, dumped but equations still not added
+ {"dynwara", CPS_B_02, mapper_TK22B },
+ {"dynwarj", CPS_B_02, mapper_TK22B },
+ {"dynwarjr", CPS_B_21_DEF, mapper_TK22B }, // wrong, this set uses TK163B, still not dumped
+ {"willow", CPS_B_03, mapper_WL24B },
+ {"willowu", CPS_B_03, mapper_WL24B },
+ {"willowuo", CPS_B_03, mapper_WL24B },
+ {"willowj", CPS_B_03, mapper_WL24B }, // wrong, this set uses WL22B, still not dumped
+ {"ffight", CPS_B_04, mapper_S224B },
+ {"ffighta", CPS_B_04, mapper_S224B },
+ {"ffightu", CPS_B_04, mapper_S224B },
+ {"ffightu1", CPS_B_04, mapper_S224B },
+ {"ffightua", CPS_B_01, mapper_S224B },
+ {"ffightub", CPS_B_03, mapper_S224B }, // had 04 handwritten on the CPS_B chip, but clearly isn't.
+ {"ffightuc", CPS_B_05, mapper_S224B },
+ {"ffightj", CPS_B_04, mapper_S224B }, // wrong, this set uses S222B
+ {"ffightj1", CPS_B_01, mapper_S224B }, // wrong, this set uses S222B
+ {"ffightj2", CPS_B_02, mapper_S224B }, // wrong, this set uses S222B
+ {"ffightj3", CPS_B_05, mapper_S224B }, // wrong, this set uses S222B
+ {"ffightjh", CPS_B_01, mapper_S224B }, // wrong, ffightjh hack doesn't even use the S222B PAL, since replaced with a GAL.
+ {"1941", CPS_B_05, mapper_YI24B },
+ {"1941r1", CPS_B_05, mapper_YI24B },
+ {"1941u", CPS_B_05, mapper_YI24B },
+ {"1941j", CPS_B_05, mapper_YI24B }, // wrong, this set uses YI22B, still not dumped
+ {"unsquad", CPS_B_11, mapper_AR24B },
+ {"area88", CPS_B_11, mapper_AR22B }, // equivalent to AR24B
+ {"area88r", CPS_B_21_DEF, mapper_AR22B }, // wrong, this set uses ARA63B, still not dumped
+ {"mercs", CPS_B_12, mapper_O224B, 0x36, 0, 0x34 },
+ {"mercsu", CPS_B_12, mapper_O224B, 0x36, 0, 0x34 },
+ {"mercsur1", CPS_B_12, mapper_O224B, 0x36, 0, 0x34 },
+ {"mercsj", CPS_B_12, mapper_O224B, 0x36, 0, 0x34 }, // wrong, this set uses O222B, still not dumped
+ {"msword", CPS_B_13, mapper_MS24B },
+ {"mswordr1", CPS_B_13, mapper_MS24B },
+ {"mswordu", CPS_B_13, mapper_MS24B },
+ {"mswordj", CPS_B_13, mapper_MS24B }, // wrong, this set uses MS22B, dumped but equations still not added
+ {"mtwins", CPS_B_14, mapper_CK24B },
+ {"chikij", CPS_B_14, mapper_CK24B }, // wrong, this set uses CK22B, dumped but equations still not added
+ {"nemo", CPS_B_15, mapper_NM24B },
+ {"nemor1", CPS_B_15, mapper_NM24B },
+ {"nemoj", CPS_B_15, mapper_NM24B }, // wrong, this set uses NM22B, still not dumped
+ {"cawing", CPS_B_16, mapper_CA24B },
+ {"cawingr1", CPS_B_16, mapper_CA24B },
+ {"cawingu", CPS_B_16, mapper_CA24B },
+ {"cawingj", CPS_B_16, mapper_CA22B }, // equivalent to CA24B
+ {"cawingbl", CPS_B_16, mapper_CA22B }, // equivalent to CA24B
+ {"sf2", CPS_B_11, mapper_STF29, 0x36 },
+ {"sf2eb", CPS_B_17, mapper_STF29, 0x36 },
+ {"sf2ed", CPS_B_05, mapper_STF29, 0x36 },
+ {"sf2ee", CPS_B_18, mapper_STF29, 0x3c },
+ {"sf2ebbl", CPS_B_17, mapper_STF29, 0x36, 0, 0, 1 },
+ {"sf2ebbl2", CPS_B_17, mapper_STF29, 0x36, 0, 0, 1 },
+ {"sf2ebbl3", CPS_B_17, mapper_STF29, 0x36, 0, 0, 1 },
+ {"sf2stt", CPS_B_17, mapper_STF29, 0x36, 0, 0, 1 },
+ {"sf2rk", CPS_B_17, mapper_STF29, 0x36, 0, 0, 1 },
+ {"sf2ua", CPS_B_17, mapper_STF29, 0x36 },
+ {"sf2ub", CPS_B_17, mapper_STF29, 0x36 },
+ {"sf2uc", CPS_B_12, mapper_STF29, 0x36 },
+ {"sf2ud", CPS_B_05, mapper_STF29, 0x36 },
+ {"sf2ue", CPS_B_18, mapper_STF29, 0x3c },
+ {"sf2uf", CPS_B_15, mapper_STF29, 0x36 },
+ {"sf2ug", CPS_B_11, mapper_STF29, 0x36 },
+ {"sf2ui", CPS_B_14, mapper_STF29, 0x36 },
+ {"sf2uk", CPS_B_17, mapper_STF29, 0x36 },
+ {"sf2j", CPS_B_13, mapper_STF29, 0x36 },
+ {"sf2ja", CPS_B_17, mapper_STF29, 0x36 },
+ {"sf2jc", CPS_B_12, mapper_STF29, 0x36 },
+ {"sf2jf", CPS_B_15, mapper_STF29, 0x36 },
+ {"sf2jh", CPS_B_13, mapper_STF29, 0x36 },
+ {"sf2jl", CPS_B_17, mapper_STF29, 0x36 },
+ {"sf2qp1", CPS_B_17, mapper_STF29, 0x36 },
+ {"sf2thndr", CPS_B_17, mapper_STF29, 0x36 },
+
+ /* from here onwards the CPS-B board has suicide battery and multiply protection */
+
+ {"3wonders", CPS_B_21_BT1, mapper_RT24B },
+ {"3wondersr1", CPS_B_21_BT1, mapper_RT24B },
+ {"3wondersu", CPS_B_21_BT1, mapper_RT24B },
+ {"wonder3", CPS_B_21_BT1, mapper_RT22B }, // equivalent to RT24B
+ {"3wondersb", CPS_B_21_BT1, mapper_RT24B, 0x36, 0, 0, 0x88 }, // same as 3wonders except some registers are hard wired rather than written to
+ {"3wondersh", HACK_B_2, mapper_RT24B }, // one port is changed from 3wonders, and no protection
+ {"kod", CPS_B_21_BT2, mapper_KD29B, 0x36, 0, 0x34 },
+ {"kodr1", CPS_B_21_BT2, mapper_KD29B, 0x36, 0, 0x34 },
+ {"kodu", CPS_B_21_BT2, mapper_KD29B, 0x36, 0, 0x34 },
+ {"kodj", CPS_B_21_BT2, mapper_KD29B, 0x36, 0, 0x34 },
+ {"kodja", CPS_B_21_BT2, mapper_KD29B, 0x36, 0, 0x34 }, // wrong, this set uses KD22B, still not dumped
+ {"kodb", CPS_B_21_BT2, mapper_KD29B, 0x36, 0, 0x34 }, /* bootleg, doesn't use multiply protection */
+ {"captcomm", CPS_B_21_BT3, mapper_CC63B, 0x36, 0x38, 0x34 },
+ {"captcommr1", CPS_B_21_BT3, mapper_CC63B, 0x36, 0x38, 0x34 },
+ {"captcommu", CPS_B_21_BT3, mapper_CC63B, 0x36, 0x38, 0x34 },
+ {"captcommj", CPS_B_21_BT3, mapper_CC63B, 0x36, 0x38, 0x34 },
+ {"captcommjr1", CPS_B_21_BT3, mapper_CC63B, 0x36, 0x38, 0x34 },
+ {"captcommb", CPS_B_21_BT3, mapper_CC63B, 0x36, 0x38, 0x34, 3 },
+ {"knights", CPS_B_21_BT4, mapper_KR63B, 0x36, 0, 0x34 },
+ {"knightsu", CPS_B_21_BT4, mapper_KR63B, 0x36, 0, 0x34 },
+ {"knightsj", CPS_B_21_BT4, mapper_KR63B, 0x36, 0, 0x34 },
+ {"knightsja", CPS_B_21_BT4, mapper_KR63B, 0x36, 0, 0x34 }, // wrong, this set uses KR22B, still not dumped
+ //{"knightsb", CPS_B_21_BT4, mapper_KR63B, 0x36, 0, 0x34 }, // wrong, knightsb bootleg doesn't use the KR63B PAL
+ {"sf2ce", CPS_B_21_DEF, mapper_S9263B, 0x36 },
+ {"sf2ceea", CPS_B_21_DEF, mapper_S9263B, 0x36 },
+ {"sf2ceua", CPS_B_21_DEF, mapper_S9263B, 0x36 },
+ {"sf2ceub", CPS_B_21_DEF, mapper_S9263B, 0x36 },
+ {"sf2ceuc", CPS_B_21_DEF, mapper_S9263B, 0x36 },
+ {"sf2ceja", CPS_B_21_DEF, mapper_S9263B, 0x36 },
+ {"sf2cejb", CPS_B_21_DEF, mapper_S9263B, 0x36 },
+ {"sf2cejc", CPS_B_21_DEF, mapper_S9263B, 0x36 },
+ {"sf2bhh", CPS_B_21_DEF, mapper_S9263B, 0x36 },
+ {"sf2rb", CPS_B_21_DEF, mapper_S9263B, 0x36 },
+ {"sf2rb2", CPS_B_21_DEF, mapper_S9263B, 0x36 },
+ {"sf2rb3", CPS_B_21_DEF, mapper_S9263B, 0x36 },
+ {"sf2red", CPS_B_21_DEF, mapper_S9263B, 0x36 },
+ {"sf2v004", CPS_B_21_DEF, mapper_S9263B, 0x36 },
+ {"sf2acc", CPS_B_21_DEF, mapper_S9263B, 0x36 },
+ {"sf2ceblp", CPS_B_21_DEF, mapper_S9263B, 0x36 },
+ {"sf2cebltw", CPS_B_21_DEF, mapper_S9263B, 0x36 },
+ {"sf2acca", CPS_B_21_DEF, mapper_S9263B, 0x36 },
+ {"sf2accp2", CPS_B_21_DEF, mapper_S9263B, 0x36 },
+ {"sf2amf", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 1 }, // probably wrong but this set is not completely dumped anyway
+ {"sf2amf2", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 1 },
+ {"sf2dkot2", CPS_B_21_DEF, mapper_S9263B, 0x36 },
+ {"sf2m1", CPS_B_21_DEF, mapper_S9263B, 0x36 },
+ {"sf2m2", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 1 },
+ {"sf2m3", HACK_B_1, mapper_S9263B, 0, 0, 0, 2 },
+ {"sf2m4", HACK_B_1, mapper_S9263B, 0x36, 0, 0, 1 },
+ {"sf2m5", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 1 },
+ {"sf2m6", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 1 },
+ {"sf2m7", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 1 },
+ {"sf2m8", HACK_B_1, mapper_S9263B, 0, 0, 0, 2 },
+ {"sf2m9", CPS_B_21_DEF, mapper_S9263B, 0x36 },
+ {"sf2m10", HACK_B_1, mapper_S9263B, 0x36, 0, 0, 1 },
+ {"sf2dongb", CPS_B_21_DEF, mapper_S9263B, 0x36 },
+ {"sf2yyc", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 1 },
+ {"sf2koryu", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 1 },
+ {"sf2mdt", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 1 },
+ {"sf2mdta", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 1 },
+ {"sf2mdtb", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 1 },
+ {"sf2b", CPS_B_17, mapper_STF29, 0x36, 0, 0, 1 },
+ {"varth", CPS_B_04, mapper_VA63B }, /* CPSB test has been patched out (60=0008) register is also written to, possibly leftover from development */ // wrong, this set uses VA24B, dumped but equations still not added
+ {"varthb", CPS_B_04, mapper_VA63B, 0, 0, 0, 0x0F },
+ {"varthr1", CPS_B_04, mapper_VA63B }, /* CPSB test has been patched out (60=0008) register is also written to, possibly leftover from development */ // wrong, this set uses VA24B, dumped but equations still not added
+ {"varthu", CPS_B_04, mapper_VA63B }, /* CPSB test has been patched out (60=0008) register is also written to, possibly leftover from development */
+ {"varthj", CPS_B_21_BT5, mapper_VA22B }, /* CPSB test has been patched out (72=0001) register is also written to, possibly leftover from development */
+ {"varthjr", CPS_B_21_BT5, mapper_VA63B }, /* CPSB test has been patched out (72=0001) register is also written to, possibly leftover from development */
+ {"cworld2j", CPS_B_21_BT6, mapper_Q522B, 0x36, 0, 0x34 }, /* (ports 36, 34 probably leftover input code from another game) */
+ {"cworld2ja", CPS_B_21_DEF, mapper_Q522B }, // patched set, no battery, could be desuicided // wrong, this set uses Q529B, still not dumped
+ {"cworld2jb", CPS_B_21_BT6, mapper_Q522B, 0x36, 0, 0x34 }, // wrong, this set uses Q563B, still not dumped
+ {"wof", CPS_B_21_QS1, mapper_TK263B },
+ {"wofr1", CPS_B_21_DEF, mapper_TK263B }, // patched set coming from a desuicided board?
+ {"wofa", CPS_B_21_DEF, mapper_TK263B }, // patched set coming from a desuicided board?
+ {"wofu", CPS_B_21_QS1, mapper_TK263B },
+ {"wofj", CPS_B_21_QS1, mapper_TK263B },
+ {"wofhfh", CPS_B_21_DEF, mapper_TK263B, 0x36 }, /* Chinese bootleg */
+ {"dino", CPS_B_21_QS2, mapper_CD63B }, /* layer enable never used */
+ {"dinou", CPS_B_21_QS2, mapper_CD63B }, /* layer enable never used */
+ {"dinoj", CPS_B_21_QS2, mapper_CD63B }, /* layer enable never used */
+ {"dinopic", CPS_B_21_QS2, mapper_CD63B }, /* layer enable never used */
+ {"dinopic2", CPS_B_21_QS2, mapper_CD63B }, /* layer enable never used */
+ {"dinohunt", CPS_B_21_DEF, mapper_CD63B }, /* Chinese bootleg */
+ {"punisher", CPS_B_21_QS3, mapper_PS63B },
+ {"punisheru", CPS_B_21_QS3, mapper_PS63B },
+ {"punisherh", CPS_B_21_QS3, mapper_PS63B },
+ {"punisherj", CPS_B_21_QS3, mapper_PS63B },
+ {"punipic", CPS_B_21_QS3, mapper_PS63B },
+ {"punipic2", CPS_B_21_QS3, mapper_PS63B },
+ {"punipic3", CPS_B_21_QS3, mapper_PS63B },
+ {"punisherbz", CPS_B_21_DEF, mapper_PS63B }, /* Chinese bootleg */
+ {"slammast", CPS_B_21_QS4, mapper_MB63B },
+ {"slammastu", CPS_B_21_QS4, mapper_MB63B },
+ {"slampic", CPS_B_21_QS4, mapper_MB63B },
+ {"mbomberj", CPS_B_21_QS4, mapper_MB63B },
+ {"mbombrd", CPS_B_21_QS5, mapper_MB63B },
+ {"mbombrdj", CPS_B_21_QS5, mapper_MB63B },
+ {"sf2hf", CPS_B_21_DEF, mapper_S9263B, 0x36 },
+ {"sf2hfu", CPS_B_21_DEF, mapper_S9263B, 0x36 },
+ {"sf2hfj", CPS_B_21_DEF, mapper_S9263B, 0x36 },
+ {"qad", CPS_B_21_BT7, mapper_QD22B, 0x36 }, /* TODO: layer enable (port 36 probably leftover input code from another game) */
+ {"qadjr", CPS_B_21_DEF, mapper_QAD63B, 0x36, 0x38, 0x34 }, /* (ports 36, 38, 34 probably leftover input code from another game) */
+ {"qtono2j", CPS_B_21_DEF, mapper_TN2292, 0x36, 0x38, 0x34 }, /* (ports 36, 38, 34 probably leftover input code from another game) */
+ {"megaman", CPS_B_21_DEF, mapper_RCM63B },
+ {"megamana", CPS_B_21_DEF, mapper_RCM63B },
+ {"rockmanj", CPS_B_21_DEF, mapper_RCM63B },
+ {"pnickj", CPS_B_21_DEF, mapper_PKB10B },
+ {"pang3", CPS_B_21_DEF, mapper_pang3 }, /* EEPROM port is among the CPS registers (handled by DRIVER_INIT) */ // should use one of these three CP1B1F,CP1B8K,CP1B9KA
+ {"pang3r1", CPS_B_21_DEF, mapper_pang3 }, /* EEPROM port is among the CPS registers (handled by DRIVER_INIT) */ // should use one of these three CP1B1F,CP1B8K,CP1B9K
+ {"pang3j", CPS_B_21_DEF, mapper_pang3 }, /* EEPROM port is among the CPS registers (handled by DRIVER_INIT) */ // should use one of these three CP1B1F,CP1B8K,CP1B9K
+ {"pang3b", CPS_B_21_DEF, mapper_pang3 }, /* EEPROM port is among the CPS registers (handled by DRIVER_INIT) */ // should use one of these three CP1B1F,CP1B8K,CP1B9K
+ {"ganbare", CPS_B_21_DEF, mapper_sfzch }, // wrong, this set uses GBPR2, dumped but equations still not added
+
+ /* CPS Changer */
+
+ {"sfach", CPS_B_21_DEF, mapper_sfzch }, // wrong, this set uses an unknown PAL, still not dumped
+ {"sfzbch", CPS_B_21_DEF, mapper_sfzch }, // wrong, this set uses an unknown PAL, still not dumped
+ {"sfzch", CPS_B_21_DEF, mapper_sfzch }, // wrong, this set uses an unknown PAL, still not dumped
+ {"wofch", CPS_B_21_DEF, mapper_TK263B },
+
+ /* CPS2 games */
+
+ {"cps2", CPS_B_21_DEF, mapper_cps2 },
+
+ /* CPS1 board + extra support boards */
+
+ {"kenseim", CPS_B_21_DEF, mapper_KNM10B }, // wrong, need to convert equations from PAL
+
+// HBMAME
+ {"captcocc", CPS_B_21_BT3, mapper_CC63B, 0x36, 0x38, 0x34 }, // nw
+ {"captcovs", CPS_B_21_BT3, mapper_CC63B, 0x36, 0x38, 0x34 }, // nw
+ {"dinosf2", CPS_B_21_QS2, mapper_CD63B }, // nw
+ {"kodd", CPS_B_21_DEF, mapper_KD29B, 0x36, 0, 0x34 }, // nw
+ {"kodud", CPS_B_21_DEF, mapper_KD29B, 0x36, 0, 0x34 }, // nw
+#if 0
+ {"3wondrud", CPS_B_21_DEF, mapper_RT24B }, //works
+ {"captcoud", CPS_B_21_DEF, mapper_CC63B, 0x36, 0x38, 0x34 }, //works
+ {"captcomc", CPS_B_21_BT3, mapper_CC63B, 0x36, 0x38, 0x34 }, //works
+ {"captcomh", CPS_B_21_BT3, mapper_CC63B, 0x36, 0x38, 0x34 }, //works
+ {"captcommb2", CPS_B_21_BT3, mapper_CC63B, 0x36, 0x38, 0x34 }, //works
+ //{"cawingb", CPS_B_16, mapper_CA24B, 0, 0, 0, 0x8F }, // no sprites here, ok in fcrash.cpp
+ //{"cawingb", CPS_B_16, mapper_CA24B, 0, 0, 0, 0x8F }, // no sprites here, ok in fcrash.cpp
+ //{"knightsa", CPS_B_21_BT4, mapper_KR63B, 0x36, 0, 0x34 }, // a rom is unobtainable
+ {"cps1demo", CPS_B_04, mapper_demo, 0, 0, 0, 0x80 }, //works
+ {"cps1frog", CPS_B_04, mapper_frog, 0, 0, 0, 0x80 }, //works
+ {"cps1test", CPS_B_21_DEF, mapper_S9263B, 0x36 }, //works
+ {"cps1testa", CPS_B_21_DEF, mapper_RCM63B }, //works
+ {"daimakb", HACK_H_5, mapper_DM22A }, //works
+ {"dino08h2", CPS_B_21_QS2, mapper_CD63B }, //works
+ {"dino08h3", CPS_B_21_QS2, mapper_CD63B }, //works
+ {"dino08hp", CPS_B_21_QS2, mapper_CD63B }, //works
+ {"dinob", CPS_B_21_QS2, mapper_CD63B, 0, 0, 0, 0x0F }, //works
+ {"dinobt", CPS_B_21_QS2, mapper_CD63B }, //works
+ {"dinobtpp", CPS_B_21_QS2, mapper_CD63B }, //works
+ {"dinocgba", CPS_B_21_QS2, mapper_CD63B }, //works
+ {"dinocgbb", CPS_B_21_QS2, mapper_CD63B }, //works
+ {"dinocgbc", CPS_B_21_QS2, mapper_CD63B }, //works
+ {"dinoeh", CPS_B_21_QS2, mapper_CD63B }, //works
+ {"dinoex", CPS_B_21_DEF, mapper_CD63B }, //works
+ {"dinoh", CPS_B_21_DEF, mapper_CD63B, 0x36 }, //works
+ {"dinoha", CPS_B_21_DEF, mapper_CD63B, 0x36 }, //works
+ {"dinohb", CPS_B_21_QS2, mapper_CD63B, 0, 0, 0, 0x0F }, //works
+ {"dinohp", CPS_B_21_QS2, mapper_CD63B }, //works
+ {"dinohx", CPS_B_21_DEF, mapper_CD63B, 0x36 }, //works
+ {"dinojp", CPS_B_21_QS2, mapper_CD63B }, //works
+ {"dinorp", CPS_B_21_QS2, mapper_CD63B }, //works
+ {"dinoslice", CPS_B_21_QS2, mapper_CD63B }, //works
+ {"dinouphp", CPS_B_21_QS2, mapper_CD63B }, //works
+ {"dinoz", CPS_B_21_QS2, mapper_CD63B }, //works
+ {"ffightb", CPS_B_01, mapper_S224B }, //works
+ {"knight21", CPS_B_21_BT4, mapper_KR63B, 0x36, 0, 0x34 }, //works
+ //{"knightsa", CPS_B_21_BT4, mapper_KR63B, 0x36, 0, 0x34 }, // a rom is unobtainable
+ {"knightsb2", HACK_H_6, mapper_KR63B, 0x36, 0, 0x34, 0x44 }, //works
+ {"knightsh", CPS_B_21_DEF, mapper_KR63B, 0x36, 0, 0x34 }, //works (intro screen is crap)
+ {"knightsha", HACK_H_7, mapper_KR63B, 0x36, 0, 0x34 }, //works
+ {"knightsjb", CPS_B_21_DEF, mapper_KR63B, 0x36, 0, 0x34 }, //works
+ {"knightsro", CPS_B_21_BT4, mapper_KR63B, 0x36, 0, 0x34 }, //works
+ {"knightud", CPS_B_21_DEF, mapper_KR63B, 0x36, 0, 0x34 }, //works
+ {"kodh", CPS_B_21_DEF, mapper_KD29B, 0x36, 0, 0x34 }, //works
+ {"kodsp", CPS_B_21_BT2, mapper_KD29B, 0x36, 0, 0x34 }, //works
+ {"pnicku", CPS_B_21_DEF, mapper_PKB10B }, //works
+ {"punisherb", CPS_B_21_QS3, mapper_PS63B, 0, 0, 0, 0x0E }, //works
+ {"punisherf", CPS_B_21_QS3, mapper_PS63B }, //works
+ {"punisherje1", CPS_B_21_QS3, mapper_PS63B }, //works
+ {"punisherjh", CPS_B_21_QS3, mapper_PS63B }, //works
+ {"punisherjh1", CPS_B_21_QS3, mapper_PS63B }, //works
+ {"punisherjha", CPS_B_21_QS3, mapper_PS63B }, //works
+ {"punisherud1", CPS_B_21_DEF, mapper_PS63B }, //works
+ {"punisherud2", CPS_B_21_DEF, mapper_PS63B }, //works
+ {"sf2bhj", CPS_B_12, mapper_STF29, 0x36 }, //works
+ {"sf2c", CPS_B_13, mapper_STF29, 0x36 }, //works
+ {"sf2cebr", CPS_B_21_DEF, mapper_S9263B, 0x36 }, //works
+ {"sf2ced", CPS_B_21_DEF, mapper_S9263B, 0x36 }, //works
+ {"sf2ceda", CPS_B_21_DEF, mapper_S9263B, 0x36 }, //works
+ {"sf2ceh", CPS_B_21_DEF, mapper_S9263B, 0x36 }, //works
+ {"sf2cehk", CPS_B_21_DEF, mapper_S9263B, 0x36 }, //works
+ {"sf2cehp", CPS_B_21_DEF, mapper_S9263B, 0x36 }, //works
+ {"sf2cejem", CPS_B_21_DEF, mapper_S9263B, 0x36 }, //works
+ {"sf2koryuh", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 0x41 }, //works
+ {"sf2h9", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 0x41 }, //works
+ {"sf2h10", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 0x41 }, //works
+ {"sf2h11", HACK_B_1, mapper_S9263B, 0x36, 0, 0, 0x41 }, //works
+ {"sf2h12", HACK_B_1, mapper_S9263B, 0x36, 0, 0, 0x41 }, //works
+ {"sf2h13", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 0x41 }, //works
+ {"sf2pun", CPS_B_21_DEF, mapper_S9263B, 0x36 }, //works
+ {"sf2sl73a", CPS_B_21_DEF, mapper_S9263B, 0x36 }, //works
+ {"sf2th", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 0x41 }, //works
+ {"sf2tha", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 0x41 }, //works
+ {"sf2tlona", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 0x41 }, //works
+ {"sf2tlonb", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 0x41 }, //works
+ {"sf2tlonc", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 0x41 }, //works
+ {"sf2turyu", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 0x41 }, //works
+ {"sf2yyc3d5", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 0x41 }, //works
+ {"sf2yyc3g", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 0x41 }, //works
+ {"sf2yyc6", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 0x41 }, //works
+ {"sk2h1", HACK_H_2, mapper_TK263B, 0, 0, 0, 0x8F }, //works, priorities
+ {"sk2h1q", HACK_H_2, mapper_TK263B, 0, 0, 0, 0x8F }, //works, priorities
+ {"sk2h2", HACK_H_2, mapper_TK263B, 0, 0, 0, 0x8F }, //works, priorities
+ {"sk2h2q", HACK_H_2, mapper_TK263B, 0, 0, 0, 0x8F }, //works, priorities
+ {"sk2h3", HACK_H_2, mapper_TK263B, 0, 0, 0, 0x8F }, //works, priorities
+ {"sk2h4q", HACK_H_2, mapper_TK263B, 0, 0, 0, 0x8F }, //works, priorities
+ {"sk2h5q", HACK_H_2, mapper_TK263B, 0, 0, 0, 0x8F }, //works, priorities
+ {"sk2h6q", HACK_H_2, mapper_TK263B, 0, 0, 0, 0x8F }, //works, priorities
+ {"sk2h11", CPS_B_21_DEF, mapper_TK263B }, //works
+ {"sk2h12", CPS_B_21_DEF, mapper_TK263B }, //works
+ {"sk2h13", CPS_B_21_DEF, mapper_TK263B }, //works
+ {"sk2h14", CPS_B_21_DEF, mapper_TK263B }, //works
+ {"sk2h15", CPS_B_21_DEF, mapper_TK263B }, //works
+ {"sk2h16", CPS_B_21_DEF, mapper_TK263B }, //works
+ {"sk2h21", CPS_B_21_DEF, mapper_TK263B, 0x36 }, //works
+ {"sk2h22", HACK_H_2, mapper_TK263B, 0x36, 0, 0, 0x8F }, //works, priorities
+ {"sk2h31", HACK_H_2, mapper_TK263B, 0x36, 0, 0, 0x8F }, //works, priorities
+ {"sk2h31q", HACK_H_2, mapper_TK263B, 0x36, 0, 0, 0x8F }, //works, priorities
+ {"sk2h32", HACK_H_2, mapper_TK263B, 0x36, 0, 0, 0x8F }, //works, priorities
+ {"sk2h32q", HACK_H_2, mapper_TK263B, 0x36, 0, 0, 0x8F }, //works, priorities
+ {"sk2h33", HACK_H_2, mapper_TK263B, 0x36, 0, 0, 0x8F }, //works, priorities
+ {"sk2h33q", HACK_H_2, mapper_TK263B, 0x36, 0, 0, 0x8F }, //works, priorities
+ {"sk2h34", HACK_H_2, mapper_TK263B, 0x36, 0, 0, 0x8F }, //works, priorities
+ {"sk2h34q", HACK_H_2, mapper_TK263B, 0x36, 0, 0, 0x8F }, //works, priorities
+ {"sk2h35", CPS_B_21_DEF, mapper_TK263B, 0x36 }, //works
+ {"sk3p1", CPS_B_21_DEF, mapper_sfzch }, //works
+ {"sk3p2", CPS_B_21_DEF, mapper_TK263B }, //works
+ {"sk3p3", CPS_B_21_DEF, mapper_TK263B }, //works
+ {"slammastud", CPS_B_21_DEF, mapper_MB63B }, //works
+ {"stridergf", CPS_B_01, mapper_ST24M1 }, //works
+ {"stridergh", CPS_B_01, mapper_ST24M1 }, //works
+ {"tk2c1", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2c2", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2c3", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2c4", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2c5", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2c6", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2c7", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2c8", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2c9", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2c10", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2c11", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2c12", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2c13", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2c14", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2c15", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2c16", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2c17", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2c18", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2c19", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2c20", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2c21", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2c22", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2c23", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2h1", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2h2", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2h3", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2h4", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2h5", CPS_B_21_QS1, mapper_TK263B }, // problem with chinese language roms
+ {"tk2h6", CPS_B_21_DEF, mapper_TK263B }, //works
+ {"tk2h7", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2h8", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2h9", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2h10", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2h11", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2h12", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2h13", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2h14", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2h15", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2h16", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2h17", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2h18", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2p2", CPS_B_21_DEF, mapper_sfzch }, //works
+ {"tk2p3", CPS_B_21_DEF, mapper_TK263B }, //works
+ {"varthb", CPS_B_04, mapper_VA63B, 0, 0, 0, 0x0F }, //works
+ {"wofb", CPS_B_21_DEF, mapper_TK263B }, //works
+ {"wofes", CPS_B_21_DEF, mapper_TK263B }, //works
+ {"woffr", CPS_B_21_DEF, mapper_sfzch }, //works
+ {"wofr1h", CPS_B_21_DEF, mapper_TK263B }, //works
+ {"wofsf2", CPS_B_21_QS1, mapper_TK263B, 0x36 }, //works
+ {"wofud", CPS_B_21_DEF, mapper_TK263B }, //works
+#endif
+ // HBMAME end
+ {nullptr} /* End of table */
+};
+
+
+
+
+/* Offset of each palette entry */
+#define cps1_palette_entries (32*6) /* Number colour schemes in palette */
+
+
+/* CPS-A registers */
+#define CPS1_OBJ_BASE (0x00/2) /* Base address of objects */
+#define CPS1_SCROLL1_BASE (0x02/2) /* Base address of scroll 1 */
+#define CPS1_SCROLL2_BASE (0x04/2) /* Base address of scroll 2 */
+#define CPS1_SCROLL3_BASE (0x06/2) /* Base address of scroll 3 */
+#define CPS1_OTHER_BASE (0x08/2) /* Base address of other video */
+#define CPS1_PALETTE_BASE (0x0a/2) /* Base address of palette */
+#define CPS1_SCROLL1_SCROLLX (0x0c/2) /* Scroll 1 X */
+#define CPS1_SCROLL1_SCROLLY (0x0e/2) /* Scroll 1 Y */
+#define CPS1_SCROLL2_SCROLLX (0x10/2) /* Scroll 2 X */
+#define CPS1_SCROLL2_SCROLLY (0x12/2) /* Scroll 2 Y */
+#define CPS1_SCROLL3_SCROLLX (0x14/2) /* Scroll 3 X */
+#define CPS1_SCROLL3_SCROLLY (0x16/2) /* Scroll 3 Y */
+#define CPS1_STARS1_SCROLLX (0x18/2) /* Stars 1 X */
+#define CPS1_STARS1_SCROLLY (0x1a/2) /* Stars 1 Y */
+#define CPS1_STARS2_SCROLLX (0x1c/2) /* Stars 2 X */
+#define CPS1_STARS2_SCROLLY (0x1e/2) /* Stars 2 Y */
+#define CPS1_ROWSCROLL_OFFS (0x20/2) /* base of row scroll offsets in other RAM */
+#define CPS1_VIDEOCONTROL (0x22/2) /* flip screen, rowscroll enable */
+
+
+/*
+CPS1 VIDEO RENDERER
+
+*/
+#define CPS2_OBJ_BASE 0x00 /* Unknown (not base address of objects). Could be bass address of bank used when object swap bit set? */
+#define CPS2_OBJ_UK1 0x02 /* Unknown (nearly always 0x807d, or 0x808e when screen flipped) */
+#define CPS2_OBJ_PRI 0x04 /* Layers priorities */
+#define CPS2_OBJ_UK2 0x06 /* Unknown (usually 0x0000, 0x1101 in ssf2, 0x0001 in 19XX) */
+#define CPS2_OBJ_XOFFS 0x08 /* X offset (usually 0x0040) */
+#define CPS2_OBJ_YOFFS 0x0a /* Y offset (always 0x0010) */
+
+
+MACHINE_RESET_MEMBER(cps_state,cps)
+{
+ const char *gamename = machine().system().name;
+ u8 tt = 0;
+ u8 *rom = 0;
+ if (memregion("control"))
+ {
+ rom = memregion("control")->base();
+ tt = rom[0x00];
+ }
+ if (tt == 0x55)
+ {
+ tt = 1;
+ m_cpsb_addr = rom[tt++];
+ m_cpsb_value = rom[tt] | (rom[tt+1] << 8); tt += 2;
+ m_mult_factor1 = rom[tt++];
+ m_mult_factor2 = rom[tt++];
+ m_mult_result_lo = rom[tt++];
+ m_mult_result_hi = rom[tt++];
+ m_layer_control = rom[tt++];
+ m_priority[0] = rom[tt++];
+ m_priority[1] = rom[tt++];
+ m_priority[2] = rom[tt++];
+ m_priority[3] = rom[tt++];
+ m_palette_control = rom[tt++];
+ m_layer_enable_mask[0] = rom[tt++];
+ m_layer_enable_mask[1] = rom[tt++];
+ m_layer_enable_mask[2] = rom[tt++];
+ m_layer_enable_mask[3] = rom[tt++];
+ m_layer_enable_mask[4] = rom[tt++];
+ m_in2_addr = rom[tt++];
+ m_in3_addr = rom[tt++];
+ m_out2_addr = rom[tt++];
+ m_bootleg_kludge = rom[tt] | (rom[tt+1] << 8); tt += 2;
+ m_scrollx1 = rom[tt++];
+ m_scrollx2 = rom[tt++];
+ m_scrollx3 = rom[tt++];
+ m_bank_sizes[0] = rom[tt] | (rom[tt+1] << 8) | (rom[tt+2] << 16); tt += 3;
+ m_bank_sizes[1] = rom[tt] | (rom[tt+1] << 8) | (rom[tt+2] << 16); tt += 3;
+ m_bank_sizes[2] = rom[tt] | (rom[tt+1] << 8) | (rom[tt+2] << 16); tt += 3;
+ m_bank_sizes[3] = rom[tt] | (rom[tt+1] << 8) | (rom[tt+2] << 16); tt += 3;
+
+ for (u8 i = 0; i < 8; i++)
+ {
+ m_bank_type[i*4] = rom[tt] & 0x1f;
+ m_bank_type[i*4+1] = rom[tt+1] | (rom[tt+2] << 8) | (rom[tt+3] << 16);
+ m_bank_type[i*4+2] = rom[tt+4] | (rom[tt+5] << 8) | (rom[tt+6] << 16);
+ m_bank_type[i*4+3] = rom[tt] >> 6;
+ tt += 7;
+ }
+ }
+ else
+ {
+ const struct CPS1config *pCFG = &cps1_config_table[0];
+ while (pCFG->name)
+ {
+ if (strcmp(pCFG->name, gamename) == 0)
+ break;
+
+ pCFG++;
+ }
+
+ m_game_config = pCFG;
+
+ if (!m_game_config->name)
+ {
+ gamename = "cps2";
+ pCFG = &cps1_config_table[0];
+
+ while(pCFG->name)
+ {
+ if (strcmp(pCFG->name, gamename) == 0)
+ break;
+
+ pCFG++;
+ }
+
+ m_game_config = pCFG;
+ }
+
+ // convert legacy to new
+ m_cpsb_addr = m_game_config->cpsb_addr;
+ m_cpsb_value = m_game_config->cpsb_value;
+ m_mult_factor1 = m_game_config->mult_factor1;
+ m_mult_factor2 = m_game_config->mult_factor2;
+ m_mult_result_lo = m_game_config->mult_result_lo;
+ m_mult_result_hi = m_game_config->mult_result_hi;
+ m_layer_control = m_game_config->layer_control;
+ m_palette_control = m_game_config->palette_control;
+ m_in2_addr = m_game_config->in2_addr;
+ m_in3_addr = m_game_config->in3_addr;
+ m_out2_addr = m_game_config->out2_addr;
+ m_bootleg_kludge = m_game_config->bootleg_kludge;
+
+ for (u8 i = 0; i < 4; i++)
+ {
+ m_priority[i] = m_game_config->priority[i];
+ m_layer_enable_mask[i] = m_game_config->layer_enable_mask[i];
+ m_bank_sizes[i] = m_game_config->bank_sizes[i];
+ }
+ m_layer_enable_mask[4] = m_game_config->layer_enable_mask[4];
+
+ for (u8 i = 0; i < 32; i++)
+ m_bank_type[i] = 0;
+ const struct gfx_range *range = m_game_config->bank_mapper;
+ u8 tu = 0;
+ while ((range->type) && (tu < 32))
+ {
+ m_bank_type[tu++] = range->type;
+ m_bank_type[tu++] = range->start;
+ m_bank_type[tu++] = range->end;
+ m_bank_type[tu++] = range->bank;
+ ++range;
+ }
+ }
+#if 0
+ if (strcmp(gamename, "sf2accp2") == 0)
+ {
+ /* Patch out a odd branch which would be incorrectly interpreted
+ by the cpu core as a 32-bit branch. This branch would make the
+ game crash (address error, since it would branch to an odd address)
+ if location 180ca6 (outside ROM space) isn't 0. Protection check? */
+ uint16_t *rom = (uint16_t *)memregion("maincpu")->base();
+ rom[0x11756 / 2] = 0x4e71;
+ }
+ else if (strcmp(gamename, "ghouls") == 0)
+ {
+ /* Patch out self-test... it takes forever */
+ uint16_t *rom = (uint16_t *)memregion("maincpu")->base();
+ rom[0x61964 / 2] = 0x4ef9;
+ rom[0x61966 / 2] = 0x0000;
+ rom[0x61968 / 2] = 0x0400;
+ }
+#endif
+#if WRITE_FILE
+ // Write the config to a file
+ FILE *fp;
+ fp = fopen(gamename, "wb");
+ fprintf(fp, "%s", "U");
+ fprintf(fp, "%c", m_cpsb_addr);
+ fprintf(fp, "%c%c", m_cpsb_value&0xff, (m_cpsb_value >> 8) & 0xff);
+ fprintf(fp, "%c", m_mult_factor1);
+ fprintf(fp, "%c", m_mult_factor2);
+ fprintf(fp, "%c", m_mult_result_lo);
+ fprintf(fp, "%c", m_mult_result_hi);
+ fprintf(fp, "%c", m_layer_control);
+ fprintf(fp, "%c", m_priority[0]);
+ fprintf(fp, "%c", m_priority[1]);
+ fprintf(fp, "%c", m_priority[2]);
+ fprintf(fp, "%c", m_priority[3]);
+ fprintf(fp, "%c", m_palette_control);
+ fprintf(fp, "%c", m_layer_enable_mask[0]);
+ fprintf(fp, "%c", m_layer_enable_mask[1]);
+ fprintf(fp, "%c", m_layer_enable_mask[2]);
+ fprintf(fp, "%c", m_layer_enable_mask[3]);
+ fprintf(fp, "%c", m_layer_enable_mask[4]);
+ fprintf(fp, "%c", m_in2_addr);
+ fprintf(fp, "%c", m_in3_addr);
+ fprintf(fp, "%c", m_out2_addr);
+ fprintf(fp, "%c%c", m_bootleg_kludge&0xff, (m_bootleg_kludge >> 8) & 0xff);
+ u8 scroll1x = 0, scroll2x = 0, scroll3x = 0;
+ switch (m_bootleg_kludge&0x0f)
+ {
+ case 0x01:
+ scroll1x = 0x8c;
+ scroll2x = 0x8e;
+ scroll3x = 0x90;
+ break;
+ case 0x02:
+ scroll1x = 0x8c;
+ scroll2x = 0x90;
+ scroll3x = 0x90;
+ break;
+ case 0x03:
+ scroll1x = 0x88;
+ scroll2x = 0x8b;
+ scroll3x = 0x8c;
+ break;
+ case 0x08:
+ scroll1x = 0x04;
+ scroll2x = 0x06;
+ scroll3x = 0x0a;
+ break;
+ case 0x0E:
+ scroll1x = 0xc6;
+ scroll2x = 0xc0;
+ scroll3x = 0xc6;
+ break;
+ case 0x0F:
+ scroll1x = 0xc0;
+ scroll2x = 0xc0;
+ scroll3x = 0xc0;
+ }
+ fprintf(fp, "%c%c%c", scroll1x, scroll2x, scroll3x);
+ fprintf(fp, "%c%c%c", m_bank_sizes[0]&0xff, (m_bank_sizes[0] >> 8)&0xff, m_bank_sizes[0] >> 16);
+ fprintf(fp, "%c%c%c", m_bank_sizes[1]&0xff, (m_bank_sizes[1] >> 8)&0xff, m_bank_sizes[1] >> 16);
+ fprintf(fp, "%c%c%c", m_bank_sizes[2]&0xff, (m_bank_sizes[2] >> 8)&0xff, m_bank_sizes[2] >> 16);
+ fprintf(fp, "%c%c%c", m_bank_sizes[3]&0xff, (m_bank_sizes[3] >> 8)&0xff, m_bank_sizes[3] >> 16);
+
+ for (u8 i = 0; i < 8; i++)
+ {
+ fprintf(fp, "%c", m_bank_type[i*4] | (m_bank_type[i*4+3] << 6));
+ fprintf(fp, "%c%c%c", m_bank_type[i*4+1] & 0xff, (m_bank_type[i*4+1] >> 8)&0xff, m_bank_type[i*4+1] >> 16);
+ fprintf(fp, "%c%c%c", m_bank_type[i*4+2] & 0xff, (m_bank_type[i*4+2] >> 8)&0xff, m_bank_type[i*4+2] >> 16);
+ printf("%X,%X,%X,%X\n",m_bank_type[i*4],m_bank_type[i*4+1],m_bank_type[i*4+2],m_bank_type[i*4+3]);
+ }
+ for (u8 i = ftell(fp); i < 0x80; i++)
+ fprintf(fp, "%c", 0);
+ fclose(fp);
+#endif
+}
+
+
+inline uint16_t *cps_state::cps1_base( int offset, int boundary )
+{
+ int base = m_cps_a_regs[offset] * 256;
+
+ /*
+ The scroll RAM must start on a 0x4000 boundary.
+ Some games do not do this.
+ For example:
+ Captain commando - continue screen will not display
+ Muscle bomber games - will animate garbage during gameplay
+ Mask out the irrelevant bits.
+ */
+ base &= ~(boundary - 1);
+ return &m_gfxram[(base & 0x3ffff) / 2];
+}
+
+
+
+WRITE16_MEMBER(cps_state::cps1_cps_a_w)
+{
+ data = COMBINE_DATA(&m_cps_a_regs[offset]);
+
+ /*
+ The main CPU writes the palette to gfxram, and the CPS-B custom copies it
+ to the real palette RAM, which is separated from gfxram.
+ This is done ONLY after the palette base register is written to. It is not
+ known what the exact timing should be, how long it should take and when it
+ should happen. We are assuming that the copy happens immediately, since it
+ fixes glitches in the ghouls intro, but it might happen at next vblank.
+ */
+ if (offset == CPS1_PALETTE_BASE)
+ cps1_build_palette(cps1_base(CPS1_PALETTE_BASE, m_palette_align));
+
+ // pzloop2 write to register 24 on startup. This is probably just a bug.
+ if (offset == 0x24 / 2 && m_cps_version == 2)
+ return;
+
+#ifdef MAME_DEBUG
+ if (offset > CPS1_VIDEOCONTROL)
+ popmessage("write to CPS-A register %02x contact MAMEDEV", offset * 2);
+#endif
+}
+
+
+READ16_MEMBER(cps_state::cps1_cps_b_r)
+{
+ /* Some games interrogate a couple of registers on bootup. */
+ /* These are CPS1 board B self test checks. They wander from game to */
+ /* game. */
+ if (offset == m_cpsb_addr / 2)
+ return m_cpsb_value;
+ else
+ /* some games use as a protection check the ability to do 16-bit multiplications */
+ /* with a 32-bit result, by writing the factors to two ports and reading the */
+ /* result from two other ports. */
+ if (offset == m_mult_result_lo / 2)
+ {
+ //printf("Multiply protection lo at %s\n",machine().describe_context());
+ return (m_cps_b_regs[m_mult_factor1 / 2] *
+ m_cps_b_regs[m_mult_factor2 / 2]) & 0xffff;
+ }
+ else
+ if (offset == m_mult_result_hi / 2)
+ {
+ //printf("Multiply protection hi\n");
+ return (m_cps_b_regs[m_mult_factor1 / 2] *
+ m_cps_b_regs[m_mult_factor2 / 2]) >> 16;
+ }
+ else
+ if (offset == m_in2_addr / 2) /* Extra input ports (on C-board) */
+ return cps1_in2_r(space, 0, 0); // HBMAME ioport("IN2")->read();
+ else
+ if (offset == m_in3_addr / 2) /* Player 4 controls (on C-board) ("Captain Commando") */
+ return cps1_in3_r(space, 0, 0); // HBMAME ioport("IN3")->read();
+ else
+ if (m_cps_version == 2)
+ {
+ if (offset == 0x10/2)
+ {
+ // UNKNOWN--only mmatrix appears to read this, and I'm not sure if the result is actually used
+ return m_cps_b_regs[0x10 / 2];
+ }
+ if (offset == 0x12/2)
+ return m_cps_b_regs[0x12 / 2];
+ }
+#ifdef MAME_DEBUG
+ popmessage("CPS-B read port %02x contact MAMEDEV", offset * 2);
+#endif
+ return 0xffff;
+}
+
+
+WRITE16_MEMBER(cps_state::cps1_cps_b_w)
+{
+ data = COMBINE_DATA(&m_cps_b_regs[offset]);
+
+ if (m_cps_version == 2)
+ {
+ /* To mark scanlines for raster effects */
+ if (offset == 0x0e/2)
+ {
+ // UNKNOWN
+ return;
+ }
+ if (offset == 0x10/2)
+ {
+ m_scanline1 = (data & 0x1ff);
+ return;
+ }
+ if (offset == 0x12/2)
+ {
+ m_scanline2 = (data & 0x1ff);
+ return;
+ }
+ }
+
+
+ // additional outputs on C-board
+ if (offset == m_out2_addr / 2)
+ {
+ if (ACCESSING_BITS_0_7)
+ {
+ if (m_cpsb_value == 0x0402) // Mercs (CN2 connector)
+ {
+ machine().bookkeeping().coin_lockout_w(2, ~data & 0x01);
+ output().set_led_value(0, data & 0x02);
+ output().set_led_value(1, data & 0x04);
+ output().set_led_value(2, data & 0x08);
+ }
+ else // kod, captcomm, knights
+ {
+ machine().bookkeeping().coin_lockout_w(2, ~data & 0x02);
+ machine().bookkeeping().coin_lockout_w(3, ~data & 0x08);
+ }
+ }
+ }
+
+#ifdef MAME_DEBUG
+ if (offset != m_cpsb_addr / 2 && // only varth writes here
+ offset != m_mult_factor1 / 2 &&
+ offset != m_mult_factor2 / 2 &&
+ offset != m_layer_control / 2 &&
+ offset != m_unknown1 / 2 &&
+ offset != m_unknown2 / 2 &&
+ offset != m_unknown3 / 2 &&
+ offset != m_priority[0] / 2 &&
+ offset != m_priority[1] / 2 &&
+ offset != m_priority[2] / 2 &&
+ offset != m_priority[3] / 2 &&
+ offset != m_palette_control / 2 &&
+ offset != m_out2_addr / 2 &&
+ !m_bootleg_kludge)
+ popmessage("CPS-B write %04x to port %02x contact MAMEDEV", data, offset * 2);
+#endif
+}
+
+
+void cps_state::unshuffle( uint64_t *buf, int len )
+{
+ int i;
+ uint64_t t;
+
+ if (len == 2)
+ return;
+
+ assert(len % 4 == 0); /* must not happen */
+
+ len /= 2;
+
+ unshuffle(buf, len);
+ unshuffle(buf + len, len);
+
+ for (i = 0; i < len / 2; i++)
+ {
+ t = buf[len / 2 + i];
+ buf[len / 2 + i] = buf[len + i];
+ buf[len + i] = t;
+ }
+}
+
+
+void cps_state::cps2_gfx_decode()
+{
+ const int banksize = 0x200000;
+ int size = memregion("gfx")->bytes();
+ int i;
+
+ for (i = 0; i < size; i += banksize)
+ unshuffle((uint64_t *)(memregion("gfx")->base() + i), banksize / 8);
+}
+
+
+DRIVER_INIT_MEMBER(cps_state,cps1)
+{
+ m_scanline1 = 0;
+ m_scanline2 = 0;
+ m_scancalls = 0;
+ m_last_sprite_offset = 0;
+ m_pri_ctrl = 0;
+ m_objram_bank = 0;
+}
+
+
+
+DRIVER_INIT_MEMBER(cps_state,cps2_video)
+{
+ cps2_gfx_decode();
+
+ m_scanline1 = 262;
+ m_scanline2 = 262;
+ m_scancalls = 0;
+ m_last_sprite_offset = 0;
+ m_cps2_last_sprite_offset = 0;
+ m_pri_ctrl = 0;
+ m_objram_bank = 0;
+}
+
+
+void cps_state::cps1_get_video_base()
+{
+ // HBMAME start
+ int layercontrol=0, videocontrol=0, scroll1xoff=0, scroll2xoff=0, scroll3xoff=0;
+
+ if (BIT(m_scrollx1, 7))
+ scroll1xoff = 0 - (m_scrollx1 & 0x7f);
+ else
+ scroll1xoff = m_scrollx1;
+
+ if (BIT(m_scrollx2, 7))
+ scroll2xoff = 0 - (m_scrollx2 & 0x7f);
+ else
+ scroll2xoff = m_scrollx2;
+
+ if (BIT(m_scrollx3, 7))
+ scroll3xoff = 0 - (m_scrollx3 & 0x7f);
+ else
+ scroll3xoff = m_scrollx3;
+ // HBMAME end
+
+ /* Re-calculate the VIDEO RAM base */
+ if (m_scroll1 != cps1_base(CPS1_SCROLL1_BASE, m_scroll_size))
+ {
+ m_scroll1 = cps1_base(CPS1_SCROLL1_BASE, m_scroll_size);
+ m_bg_tilemap[0]->mark_all_dirty();
+ }
+ if (m_scroll2 != cps1_base(CPS1_SCROLL2_BASE, m_scroll_size))
+ {
+ m_scroll2 = cps1_base(CPS1_SCROLL2_BASE, m_scroll_size);
+ m_bg_tilemap[1]->mark_all_dirty();
+ }
+ if (m_scroll3 != cps1_base(CPS1_SCROLL3_BASE, m_scroll_size))
+ {
+ m_scroll3 = cps1_base(CPS1_SCROLL3_BASE, m_scroll_size);
+ m_bg_tilemap[2]->mark_all_dirty();
+ }
+
+ // HBMAME start
+ /* Some of the sf2 hacks use only sprite port 0x9100 and the scroll layers are offset */
+ uint8_t kludge = m_bootleg_kludge & 15;
+ if (kludge == 0x01 || kludge == 0x02)
+ m_cps_a_regs[CPS1_OBJ_BASE] = 0x9100;
+ else
+ if (kludge == 0x08) // 3wondersb
+ {
+ m_cps_b_regs[0x30/2] = 0x3f;
+ m_cps_a_regs[CPS1_VIDEOCONTROL] = 0x3e;
+ m_cps_a_regs[CPS1_SCROLL2_BASE] = 0x90c0;
+ m_cps_a_regs[CPS1_SCROLL3_BASE] = 0x9100;
+ m_cps_a_regs[CPS1_PALETTE_BASE] = 0x9140;
+ }
+ // HBMAME end
+
+ m_obj = cps1_base(CPS1_OBJ_BASE, m_obj_size);
+ m_other = cps1_base(CPS1_OTHER_BASE, m_other_size);
+
+ /* Get scroll values */
+ m_scroll1x = m_cps_a_regs[CPS1_SCROLL1_SCROLLX] + scroll1xoff;
+ m_scroll1y = m_cps_a_regs[CPS1_SCROLL1_SCROLLY];
+ m_scroll2x = m_cps_a_regs[CPS1_SCROLL2_SCROLLX] + scroll2xoff;
+ m_scroll2y = m_cps_a_regs[CPS1_SCROLL2_SCROLLY];
+ m_scroll3x = m_cps_a_regs[CPS1_SCROLL3_SCROLLX] + scroll3xoff;
+ m_scroll3y = m_cps_a_regs[CPS1_SCROLL3_SCROLLY];
+ m_stars1x = m_cps_a_regs[CPS1_STARS1_SCROLLX];
+ m_stars1y = m_cps_a_regs[CPS1_STARS1_SCROLLY];
+ m_stars2x = m_cps_a_regs[CPS1_STARS2_SCROLLX];
+ m_stars2y = m_cps_a_regs[CPS1_STARS2_SCROLLY];
+
+ /* Get layer enable bits */
+ layercontrol = m_cps_b_regs[m_layer_control / 2];
+ videocontrol = m_cps_a_regs[CPS1_VIDEOCONTROL];
+ m_bg_tilemap[0]->enable(layercontrol & m_layer_enable_mask[0]);
+ m_bg_tilemap[1]->enable((layercontrol & m_layer_enable_mask[1]) && (videocontrol & 4));
+ m_bg_tilemap[2]->enable((layercontrol & m_layer_enable_mask[2]) && (videocontrol & 8));
+ m_stars_enabled[0] = layercontrol & m_layer_enable_mask[3];
+ m_stars_enabled[1] = layercontrol & m_layer_enable_mask[4];
+
+#ifdef MAME_DEBUG
+{
+ int enablemask = 0;
+
+ if (m_layer_enable_mask[0] == m_layer_enable_mask[1])
+ enablemask = m_layer_enable_mask[0];
+
+ if (m_layer_enable_mask[0] == m_layer_enable_mask[2])
+ enablemask = m_layer_enable_mask[0];
+
+ if (m_layer_enable_mask[1] == m_layer_enable_mask[2])
+ enablemask = m_layer_enable_mask[1];
+
+ if (enablemask)
+ {
+ if (((layercontrol & enablemask) && (layercontrol & enablemask) != enablemask))
+ popmessage("layer %02x contact MAMEDEV", layercontrol & 0xc03f);
+ }
+
+ enablemask = m_layer_enable_mask[0] | m_layer_enable_mask[1]
+ | m_layer_enable_mask[2]
+ | m_layer_enable_mask[3] | m_layer_enable_mask[4];
+
+ if (((layercontrol & ~enablemask) & 0x003e) != 0)
+ popmessage("layer %02x contact MAMEDEV", layercontrol & 0xc03f);
+}
+#endif
+
+}
+
+
+WRITE16_MEMBER(cps_state::cps1_gfxram_w)
+{
+ int page = (offset >> 7) & 0x3c0;
+ COMBINE_DATA(&m_gfxram[offset]);
+
+ if (page == (m_cps_a_regs[CPS1_SCROLL1_BASE] & 0x3c0))
+ m_bg_tilemap[0]->mark_tile_dirty(offset / 2 & 0x0fff);
+
+ if (page == (m_cps_a_regs[CPS1_SCROLL2_BASE] & 0x3c0))
+ m_bg_tilemap[1]->mark_tile_dirty(offset / 2 & 0x0fff);
+
+ if (page == (m_cps_a_regs[CPS1_SCROLL3_BASE] & 0x3c0))
+ m_bg_tilemap[2]->mark_tile_dirty(offset / 2 & 0x0fff);
+}
+
+
+
+int cps_state::gfxrom_bank_mapper( int type, int code )
+{
+ int shift = 0;
+
+ switch (type)
+ {
+ case GFXTYPE_SPRITES: shift = 1; break;
+ case GFXTYPE_SCROLL1: shift = 0; break;
+ case GFXTYPE_SCROLL2: shift = 1; break;
+ case GFXTYPE_SCROLL3: shift = 3; break;
+ }
+
+ code <<= shift;
+
+ for (u8 i = 0; i < 8; i++)
+ {
+ if (code >= m_bank_type[i*4+1] && code <= m_bank_type[i*4+2])
+ {
+ if (m_bank_type[i*4] & type)
+ {
+ int base = 0;
+ for (int j = 0; j < m_bank_type[i*4+3]; ++j)
+ base += m_bank_sizes[j];
+
+ return (base + (code & (m_bank_sizes[m_bank_type[i*4+3]] - 1))) >> shift;
+ }
+ }
+ }
+
+#ifdef MAME_DEBUG
+// popmessage("tile %02x/%04x out of range", type, code >> shift);
+#endif
+
+ return -1;
+}
+
+
+/***************************************************************************
+
+ Start the video hardware emulation.
+
+***************************************************************************/
+
+TILEMAP_MAPPER_MEMBER(cps_state::tilemap0_scan)
+{
+ /* logical (col,row) -> memory offset */
+ return (row & 0x1f) + ((col & 0x3f) << 5) + ((row & 0x20) << 6);
+}
+
+TILEMAP_MAPPER_MEMBER(cps_state::tilemap1_scan)
+{
+ /* logical (col,row) -> memory offset */
+ return (row & 0x0f) + ((col & 0x3f) << 4) + ((row & 0x30) << 6);
+}
+
+TILEMAP_MAPPER_MEMBER(cps_state::tilemap2_scan)
+{
+ /* logical (col,row) -> memory offset */
+ return (row & 0x07) + ((col & 0x3f) << 3) + ((row & 0x38) << 6);
+}
+
+TILE_GET_INFO_MEMBER(cps_state::get_tile0_info)
+{
+ int code = m_scroll1[2 * tile_index];
+ int attr = m_scroll1[2 * tile_index + 1];
+ int gfxset;
+
+ code = gfxrom_bank_mapper(GFXTYPE_SCROLL1, code);
+
+ /* allows us to reproduce a problem seen with a ffight board where USA and Japanese
+ roms have been mixed to be reproduced (ffightub) -- it looks like each column
+ should alternate between the left and right side of the 16x16 tiles */
+ gfxset = (tile_index & 0x20) >> 5;
+
+ SET_TILE_INFO_MEMBER(gfxset,
+ code,
+ (attr & 0x1f) + 0x20,
+ TILE_FLIPYX((attr & 0x60) >> 5));
+ tileinfo.group = (attr & 0x0180) >> 7;
+
+ // for out of range tiles, switch to fully transparent data
+ // (but still call SET_TILE_INFO_MEMBER, otherwise problems might occur on boot e.g. unsquad)
+ if (code == -1)
+ tileinfo.pen_data = m_empty_tile;
+}
+
+TILE_GET_INFO_MEMBER(cps_state::get_tile1_info)
+{
+ int code = m_scroll2[2 * tile_index];
+ int attr = m_scroll2[2 * tile_index + 1];
+
+ code = gfxrom_bank_mapper(GFXTYPE_SCROLL2, code);
+
+ SET_TILE_INFO_MEMBER(2,
+ code,
+ (attr & 0x1f) + 0x40,
+ TILE_FLIPYX((attr & 0x60) >> 5));
+ tileinfo.group = (attr & 0x0180) >> 7;
+
+ // for out of range tiles, switch to fully transparent data
+ if (code == -1)
+ tileinfo.pen_data = m_empty_tile;
+}
+
+TILE_GET_INFO_MEMBER(cps_state::get_tile2_info)
+{
+ int code = m_scroll3[2 * tile_index] & 0x3fff;
+ int attr = m_scroll3[2 * tile_index + 1];
+
+ code = gfxrom_bank_mapper(GFXTYPE_SCROLL3, code);
+
+ SET_TILE_INFO_MEMBER(3,
+ code,
+ (attr & 0x1f) + 0x60,
+ TILE_FLIPYX((attr & 0x60) >> 5));
+ tileinfo.group = (attr & 0x0180) >> 7;
+
+ // for out of range tiles, switch to fully transparent data
+ // (but still call SET_TILE_INFO_MEMBER, otherwise problems might occur on boot e.g. unsquad)
+ if (code == -1)
+ tileinfo.pen_data = m_empty_tile;
+}
+
+
+
+void cps_state::cps1_update_transmasks()
+{
+ int i;
+
+ for (i = 0; i < 4; i++)
+ {
+ int mask;
+
+ /* Get transparency registers */
+ if (m_priority[i] != -1)
+ mask = m_cps_b_regs[m_priority[i] / 2] ^ 0xffff;
+ else
+ mask = 0xffff; /* completely transparent if priority masks not defined (qad) */
+
+ m_bg_tilemap[0]->set_transmask(i, mask, 0x8000);
+ m_bg_tilemap[1]->set_transmask(i, mask, 0x8000);
+ m_bg_tilemap[2]->set_transmask(i, mask, 0x8000);
+ }
+}
+
+VIDEO_START_MEMBER(cps_state,cps)
+{
+ int i;
+
+ MACHINE_RESET_CALL_MEMBER(cps);
+
+ /* Put in some const */
+ m_scroll_size = 0x4000; /* scroll1, scroll2, scroll3 */
+ m_obj_size = 0x0800;
+ m_cps2_obj_size = 0x2000;
+ m_other_size = 0x0800;
+ m_palette_align = 0x0400; /* minimum alignment is a single palette page (512 colors). Verified on pcb. */
+ m_palette_size = cps1_palette_entries * 32; /* Size of palette RAM */
+ m_stars_rom_size = 0x2000; /* first 0x4000 of gfx ROM are used, but 0x0000-0x1fff is == 0x2000-0x3fff */
+
+ /* create tilemaps */
+ m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cps_state::get_tile0_info),this), tilemap_mapper_delegate(FUNC(cps_state::tilemap0_scan),this), 8, 8, 64, 64);
+ m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cps_state::get_tile1_info),this), tilemap_mapper_delegate(FUNC(cps_state::tilemap1_scan),this), 16, 16, 64, 64);
+ m_bg_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cps_state::get_tile2_info),this), tilemap_mapper_delegate(FUNC(cps_state::tilemap2_scan),this), 32, 32, 64, 64);
+
+ /* create empty tiles */
+ memset(m_empty_tile, 0x0f, sizeof(m_empty_tile));
+
+ /* front masks will change at runtime to handle sprite occluding */
+ cps1_update_transmasks();
+
+ for (i = 0; i < cps1_palette_entries * 16; i++)
+ m_palette->set_pen_color(i, rgb_t(0,0,0));
+
+ m_buffered_obj = make_unique_clear<uint16_t[]>(m_obj_size / 2);
+
+ if (m_cps_version == 2)
+ m_cps2_buffered_obj = make_unique_clear<uint16_t[]>(m_cps2_obj_size / 2);
+
+ /* clear RAM regions */
+ memset(m_gfxram, 0, m_gfxram.bytes()); /* Clear GFX RAM */
+ memset(m_cps_a_regs, 0, 0x40); /* Clear CPS-A registers */
+ memset(m_cps_b_regs, 0, 0x40); /* Clear CPS-B registers */
+
+ m_cps_b_regs[m_palette_control/2] = 0x3F; // HBMAME
+
+ if (m_cps_version == 2)
+ {
+ memset(m_objram1, 0, m_cps2_obj_size);
+ memset(m_objram2, 0, m_cps2_obj_size);
+ }
+
+ /* Put in some defaults */
+ m_cps_a_regs[CPS1_OBJ_BASE] = 0x9200;
+ m_cps_a_regs[CPS1_SCROLL1_BASE] = 0x9000;
+ m_cps_a_regs[CPS1_SCROLL2_BASE] = 0x9040;
+ m_cps_a_regs[CPS1_SCROLL3_BASE] = 0x9080;
+ m_cps_a_regs[CPS1_OTHER_BASE] = 0x9100;
+
+ /* Set up old base */
+ m_scroll1 = nullptr;
+ m_scroll2 = nullptr;
+ m_scroll3 = nullptr;
+ m_obj = nullptr;
+ m_other = nullptr;
+ cps1_get_video_base(); /* Calculate base pointers */
+ cps1_get_video_base(); /* Calculate old base pointers */
+
+ /* state save register */
+ save_item(NAME(m_scanline1));
+ save_item(NAME(m_scanline2));
+ save_item(NAME(m_scancalls));
+#if 0
+ /* these do not need to be saved, because they are recovered from cps_a_regs in cps1_postload */
+ save_item(NAME(m_scroll1x));
+ save_item(NAME(m_scroll1y));
+ save_item(NAME(m_scroll2x));
+ save_item(NAME(m_scroll2y));
+ save_item(NAME(m_scroll3x));
+ save_item(NAME(m_scroll3y));
+ save_item(NAME(m_stars1x));
+ save_item(NAME(m_stars1y));
+ save_item(NAME(m_stars2x));
+ save_item(NAME(m_stars2y));
+ save_item(NAME(m_stars_enabled));
+#endif
+ save_item(NAME(m_last_sprite_offset));
+ save_item(NAME(m_pri_ctrl));
+ save_item(NAME(m_objram_bank));
+
+ save_pointer(NAME(m_buffered_obj.get()), m_obj_size / 2);
+ if (m_cps_version == 2)
+ {
+ save_item(NAME(m_cps2_last_sprite_offset));
+ save_pointer(NAME(m_cps2_buffered_obj.get()), m_cps2_obj_size / 2);
+ }
+
+ machine().save().register_postload(save_prepost_delegate(FUNC(cps_state::cps1_get_video_base), this));
+}
+
+VIDEO_START_MEMBER(cps_state,cps1)
+{
+ m_cps_version = 1;
+ VIDEO_START_CALL_MEMBER(cps);
+}
+
+VIDEO_START_MEMBER(cps_state,cps2)
+{
+ m_cps_version = 2;
+ VIDEO_START_CALL_MEMBER(cps);
+}
+
+/***************************************************************************
+
+ Build palette from palette RAM
+
+ 12 bit RGB with a 4 bit brightness value.
+
+***************************************************************************/
+
+void cps_state::cps1_build_palette( const uint16_t* const palette_base )
+{
+ int offset, page;
+ const uint16_t *palette_ram = palette_base;
+ int ctrl = m_cps_b_regs[m_palette_control/2];
+
+ /*
+ The palette is copied only for pages that are enabled in the ctrl
+ register. Note that if the first palette pages are skipped, all
+ the following pages are scaled down.
+ */
+ for (page = 0; page < 6; ++page)
+ {
+ if (BIT(ctrl, page))
+ {
+ for (offset = 0; offset < 0x200; ++offset)
+ {
+ int palette = *(palette_ram++);
+ int r, g, b, bright;
+
+ // from my understanding of the schematics, when the 'brightness'
+ // component is set to 0 it should reduce brightness to 1/3
+
+ bright = 0x0f + ((palette >> 12) << 1);
+
+ r = ((palette >> 8) & 0x0f) * 0x11 * bright / 0x2d;
+ g = ((palette >> 4) & 0x0f) * 0x11 * bright / 0x2d;
+ b = ((palette >> 0) & 0x0f) * 0x11 * bright / 0x2d;
+
+ m_palette->set_pen_color (0x200 * page + offset, rgb_t(r, g, b));
+ }
+ }
+ else
+ {
+ // skip page in gfxram, but only if we have already copied at least one page
+ if (palette_ram != palette_base)
+ palette_ram += 0x200;
+ }
+ }
+}
+
+
+
+/***************************************************************************
+
+ Sprites
+ =======
+
+ Sprites are represented by a number of 8 byte values
+
+ xx xx yy yy nn nn aa aa
+
+ where xxxx = x position
+ yyyy = y position
+ nnnn = tile number
+ aaaa = attribute word
+ 0x0001 colour
+ 0x0002 colour
+ 0x0004 colour
+ 0x0008 colour
+ 0x0010 colour
+ 0x0020 X Flip
+ 0x0040 Y Flip
+ 0x0080 X & Y offset toggle (used in Marvel vs. Capcom.)
+ 0x0100 X block size (in sprites)
+ 0x0200 X block size
+ 0x0400 X block size
+ 0x0800 X block size
+ 0x1000 Y block size (in sprites)
+ 0x2000 Y block size
+ 0x4000 Y block size
+ 0x8000 Y block size
+
+ The end of the table (may) be marked by an attribute value of 0xff00.
+
+***************************************************************************/
+
+void cps_state::cps1_find_last_sprite() /* Find the offset of last sprite */
+{
+ int offset = 0;
+ /* Locate the end of table marker */
+ while (offset < m_obj_size / 2)
+ {
+ if (m_bootleg_kludge == 3) {
+ /* captcommb - same end of sprite marker as CPS-2 */
+ int colour = m_buffered_obj[offset + 1];
+ if (colour >= 0x8000)
+ {
+ /* Marker found. This is the last sprite. */
+ m_last_sprite_offset = offset - 4;
+ return;
+ }
+ }
+ else
+ {
+ int colour = m_buffered_obj[offset + 3];
+ if ((colour & 0xff00) == 0xff00)
+ {
+ /* Marker found. This is the last sprite. */
+ m_last_sprite_offset = offset - 4;
+ return;
+ }
+ }
+
+ offset += 4;
+ }
+ /* Sprites must use full sprite RAM */
+ m_last_sprite_offset = m_obj_size / 2 - 4;
+}
+
+
+void cps_state::cps1_render_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect )
+{
+#define DRAWSPRITE(CODE,COLOR,FLIPX,FLIPY,SX,SY) \
+{ \
+ if (flip_screen()) \
+ m_gfxdecode->gfx(2)->prio_transpen(bitmap,\
+ cliprect, \
+ CODE, \
+ COLOR, \
+ !(FLIPX),!(FLIPY), \
+ 512-16-(SX),256-16-(SY), screen.priority(),0x02,15); \
+ else \
+ m_gfxdecode->gfx(2)->prio_transpen(bitmap,\
+ cliprect, \
+ CODE, \
+ COLOR, \
+ FLIPX,FLIPY, \
+ SX,SY, screen.priority(),0x02,15); \
+}
+
+
+ int i, baseadd;
+ uint16_t *base = m_buffered_obj.get();
+
+ /* some sf2 hacks draw the sprites in reverse order */
+ if (BIT(m_bootleg_kludge, 6)) // HBMAME
+ {
+ base += m_last_sprite_offset;
+ baseadd = -4;
+ }
+ else
+ {
+ baseadd = 4;
+ }
+
+ for (i = m_last_sprite_offset; i >= 0; i -= 4)
+ {
+ int x = *(base + 0);
+ int y = *(base + 1);
+ int code = *(base + 2);
+ int colour = *(base + 3);
+ int col = colour & 0x1f;
+
+// x -= 0x20;
+// y += 0x20;
+
+ code = gfxrom_bank_mapper(GFXTYPE_SPRITES, code);
+
+ if (code != -1)
+ {
+ if (colour & 0xff00 )
+ {
+ /* handle blocked sprites */
+ int nx = (colour & 0x0f00) >> 8;
+ int ny = (colour & 0xf000) >> 12;
+ int nxs, nys, sx, sy;
+ nx++;
+ ny++;
+
+ if (colour & 0x40)
+ {
+ /* Y flip */
+ if (colour & 0x20)
+ {
+ for (nys = 0; nys < ny; nys++)
+ {
+ for (nxs = 0; nxs < nx; nxs++)
+ {
+ sx = (x + nxs * 16) & 0x1ff;
+ sy = (y + nys * 16) & 0x1ff;
+
+ DRAWSPRITE(
+// code + (nx - 1) - nxs + 0x10 * (ny - 1 - nys),
+ (code & ~0xf) + ((code + (nx - 1) - nxs) & 0xf) + 0x10 * (ny - 1 - nys),
+ (col & 0x1f),
+ 1,1,
+ sx,sy);
+ }
+ }
+ }
+ else
+ {
+ for (nys = 0; nys < ny; nys++)
+ {
+ for (nxs = 0; nxs < nx; nxs++)
+ {
+ sx = (x + nxs * 16) & 0x1ff;
+ sy = (y + nys * 16) & 0x1ff;
+
+ DRAWSPRITE(
+// code + nxs + 0x10 * (ny - 1 - nys),
+ (code & ~0xf) + ((code + nxs) & 0xf) + 0x10 * (ny - 1 - nys),
+ (col & 0x1f),
+ 0,1,
+ sx,sy);
+ }
+ }
+ }
+ }
+ else
+ {
+ if (colour & 0x20)
+ {
+ for (nys = 0; nys < ny; nys++)
+ {
+ for (nxs = 0; nxs<nx; nxs++)
+ {
+ sx = (x + nxs * 16) & 0x1ff;
+ sy = (y + nys * 16) & 0x1ff;
+
+ DRAWSPRITE(
+// code + (nx - 1) - nxs + 0x10 * nys,
+ (code & ~0xf) + ((code + (nx - 1) - nxs) & 0xf) + 0x10 * nys,
+ (col & 0x1f),
+ 1,0,
+ sx,sy);
+ }
+ }
+ }
+ else
+ {
+ for (nys = 0; nys < ny; nys++)
+ {
+ for (nxs = 0; nxs < nx; nxs++)
+ {
+ sx = (x + nxs * 16) & 0x1ff;
+ sy = (y + nys * 16) & 0x1ff;
+
+ DRAWSPRITE(
+// code + nxs + 0x10 * nys,
+ (code & ~0xf) + ((code + nxs) & 0xf) + 0x10 * nys, // fix 00406: qadjr: When playing as the ninja, there is one broken frame in his animation loop when walking.
+ (col & 0x1f),
+ 0,0,
+ sx,sy);
+ }
+ }
+ }
+ }
+ }
+ else
+ {
+ /* Simple case... 1 sprite */
+ DRAWSPRITE(
+ code,
+ (col & 0x1f),
+ colour&0x20,colour&0x40,
+ x & 0x1ff,y & 0x1ff);
+ }
+ }
+ base += baseadd;
+ }
+#undef DRAWSPRITE
+}
+
+
+
+
+WRITE16_MEMBER(cps_state::cps2_objram_bank_w)
+{
+ if (ACCESSING_BITS_0_7)
+ m_objram_bank = data & 1;
+}
+
+READ16_MEMBER(cps_state::cps2_objram1_r)
+{
+ if (m_objram_bank & 1)
+ return m_objram2[offset];
+ else
+ return m_objram1[offset];
+}
+
+READ16_MEMBER(cps_state::cps2_objram2_r)
+{
+ if (m_objram_bank & 1)
+ return m_objram1[offset];
+ else
+ return m_objram2[offset];
+}
+
+WRITE16_MEMBER(cps_state::cps2_objram1_w)
+{
+ if (m_objram_bank & 1)
+ COMBINE_DATA(&m_objram2[offset]);
+ else
+ COMBINE_DATA(&m_objram1[offset]);
+}
+
+WRITE16_MEMBER(cps_state::cps2_objram2_w)
+{
+ if (m_objram_bank & 1)
+ COMBINE_DATA(&m_objram1[offset]);
+ else
+ COMBINE_DATA(&m_objram2[offset]);
+}
+
+uint16_t *cps_state::cps2_objbase()
+{
+ int baseptr;
+ baseptr = 0x7000;
+
+ if (m_objram_bank & 1)
+ baseptr ^= 0x0080;
+
+//popmessage("%04x %d", cps2_port(machine, CPS2_OBJ_BASE), m_objram_bank & 1);
+
+ if (baseptr == 0x7000)
+ return m_objram1;
+ else //if (baseptr == 0x7080)
+ return m_objram2;
+}
+
+
+void cps_state::cps2_find_last_sprite() /* Find the offset of last sprite */
+{
+ int offset = 0;
+ uint16_t *base = m_cps2_buffered_obj.get();
+
+ /* Locate the end of table marker */
+ while (offset < m_cps2_obj_size / 2)
+ {
+ if (base[offset + 1] >= 0x8000 || base[offset + 3] >= 0xff00)
+ {
+ /* Marker found. This is the last sprite. */
+ m_cps2_last_sprite_offset = offset - 4;
+ return;
+ }
+
+ offset += 4;
+ }
+ /* Sprites must use full sprite RAM */
+ m_cps2_last_sprite_offset = m_cps2_obj_size / 2 - 4;
+}
+
+void cps_state::cps2_render_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int *primasks )
+{
+#define DRAWSPRITE(CODE,COLOR,FLIPX,FLIPY,SX,SY) \
+{ \
+ if (flip_screen()) \
+ m_gfxdecode->gfx(2)->prio_transpen(bitmap,\
+ cliprect, \
+ CODE, \
+ COLOR, \
+ !(FLIPX),!(FLIPY), \
+ 512-16-(SX),256-16-(SY), screen.priority(),primasks[priority],15); \
+ else \
+ m_gfxdecode->gfx(2)->prio_transpen(bitmap,\
+ cliprect, \
+ CODE, \
+ COLOR, \
+ FLIPX,FLIPY, \
+ SX,SY, screen.priority(),primasks[priority],15); \
+}
+
+ int i;
+ uint16_t *base = m_cps2_buffered_obj.get();
+ int xoffs = 64 - m_output[CPS2_OBJ_XOFFS /2];
+ int yoffs = 16 - m_output[CPS2_OBJ_YOFFS /2];
+
+#ifdef MAME_DEBUG
+ if (machine().input().code_pressed(KEYCODE_Z) && machine().input().code_pressed(KEYCODE_R))
+ {
+ return;
+ }
+#endif
+
+ for (i = m_cps2_last_sprite_offset; i >= 0; i -= 4)
+ {
+ int x = base[i + 0];
+ int y = base[i + 1];
+ int priority = (x >> 13) & 0x07;
+ int code = base[i + 2] + ((y & 0x6000) << 3);
+ int colour = base[i + 3];
+ int col = colour & 0x1f;
+
+ if (colour & 0x80)
+ {
+ x += m_output[CPS2_OBJ_XOFFS /2]; /* fix the offset of some games */
+ y += m_output[CPS2_OBJ_YOFFS /2]; /* like Marvel vs. Capcom ending credits */
+ }
+
+ if (colour & 0xff00)
+ {
+ /* handle blocked sprites */
+ int nx = (colour & 0x0f00) >> 8;
+ int ny = (colour & 0xf000) >> 12;
+ int nxs, nys, sx, sy;
+ nx++;
+ ny++;
+
+ if (colour & 0x40)
+ {
+ /* Y flip */
+ if (colour & 0x20)
+ {
+ for (nys = 0; nys < ny; nys++)
+ {
+ for (nxs = 0; nxs < nx; nxs++)
+ {
+ sx = (x + nxs * 16 + xoffs) & 0x3ff;
+ sy = (y + nys * 16 + yoffs) & 0x3ff;
+ DRAWSPRITE(
+ code + (nx - 1) - nxs + 0x10 * (ny - 1 - nys),
+ (col & 0x1f),
+ 1,1,
+ sx,sy);
+ }
+ }
+ }
+ else
+ {
+ for (nys = 0; nys < ny; nys++)
+ {
+ for (nxs = 0; nxs < nx; nxs++)
+ {
+ sx = (x + nxs * 16 + xoffs) & 0x3ff;
+ sy = (y + nys * 16 + yoffs) & 0x3ff;
+
+ DRAWSPRITE(
+ code + nxs + 0x10 * (ny - 1 - nys),
+ (col & 0x1f),
+ 0,1,
+ sx,sy);
+ }
+ }
+ }
+ }
+ else
+ {
+ if (colour & 0x20)
+ {
+ for (nys = 0; nys < ny; nys++)
+ {
+ for (nxs = 0; nxs < nx; nxs++)
+ {
+ sx = (x + nxs * 16 + xoffs) & 0x3ff;
+ sy = (y + nys * 16 + yoffs) & 0x3ff;
+
+ DRAWSPRITE(
+ code + (nx - 1) - nxs + 0x10 * nys,
+ (col & 0x1f),
+ 1,0,
+ sx,sy);
+ }
+ }
+ }
+ else
+ {
+ for (nys = 0; nys < ny; nys++)
+ {
+ for (nxs = 0; nxs < nx; nxs++)
+ {
+ sx = (x + nxs * 16 + xoffs) & 0x3ff;
+ sy = (y + nys * 16 + yoffs) & 0x3ff;
+
+ DRAWSPRITE(
+// code + nxs + 0x10 * nys,
+ (code & ~0xf) + ((code + nxs) & 0xf) + 0x10 * nys, // pgear fix
+ (col & 0x1f),
+ 0,0,
+ sx,sy);
+ }
+ }
+ }
+ }
+ }
+ else
+ {
+ /* Simple case... 1 sprite */
+ DRAWSPRITE(
+ code,
+ (col & 0x1f),
+ colour&0x20,colour&0x40,
+ (x+xoffs) & 0x3ff,(y+yoffs) & 0x3ff);
+ }
+ }
+}
+
+
+
+
+void cps_state::cps1_render_stars( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect )
+{
+ int offs;
+ uint8_t *stars_rom = m_region_stars->base();
+
+ if (!stars_rom && (m_stars_enabled[0] || m_stars_enabled[1]))
+ {
+#ifdef MAME_DEBUG
+// popmessage("stars enabled but no stars ROM");
+#endif
+ return;
+ }
+
+ if (m_stars_enabled[0])
+ {
+ for (offs = 0; offs < m_stars_rom_size / 2; offs++)
+ {
+ int col = stars_rom[8 * offs + 4];
+ if (col != 0x0f)
+ {
+ int sx = (offs / 256) * 32;
+ int sy = (offs % 256);
+ sx = (sx - m_stars2x + (col & 0x1f)) & 0x1ff;
+ sy = (sy - m_stars2y) & 0xff;
+ if (flip_screen())
+ {
+ sx = 512 - sx;
+ sy = 256 - sy;
+ }
+
+ col = ((col & 0xe0) >> 1) + (screen.frame_number() / 16 & 0x0f);
+
+ if (cliprect.contains(sx, sy))
+ bitmap.pix16(sy, sx) = 0xa00 + col;
+ }
+ }
+ }
+
+ if (m_stars_enabled[1])
+ {
+ for (offs = 0; offs < m_stars_rom_size / 2; offs++)
+ {
+ int col = stars_rom[8*offs];
+ if (col != 0x0f)
+ {
+ int sx = (offs / 256) * 32;
+ int sy = (offs % 256);
+ sx = (sx - m_stars1x + (col & 0x1f)) & 0x1ff;
+ sy = (sy - m_stars1y) & 0xff;
+ if (flip_screen())
+ {
+ sx = 512 - sx;
+ sy = 256 - sy;
+ }
+
+ col = ((col & 0xe0) >> 1) + (screen.frame_number() / 16 & 0x0f);
+
+ if (cliprect.contains(sx, sy))
+ bitmap.pix16(sy, sx) = 0x800 + col;
+ }
+ }
+ }
+}
+
+
+void cps_state::cps1_render_layer( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int primask )
+{
+ switch (layer)
+ {
+ case 0:
+ cps1_render_sprites(screen, bitmap, cliprect);
+ break;
+ case 1:
+ case 2:
+ case 3:
+ m_bg_tilemap[layer - 1]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1, primask);
+ break;
+ }
+}
+
+void cps_state::cps1_render_high_layer( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int layer )
+{
+ bitmap_ind16 dummy_bitmap;
+ switch (layer)
+ {
+ case 0:
+ /* there are no high priority sprites */
+ break;
+ case 1:
+ case 2:
+ case 3:
+ m_bg_tilemap[layer - 1]->draw(screen, dummy_bitmap, cliprect, TILEMAP_DRAW_LAYER0, 1);
+ break;
+ }
+}
+
+
+/***************************************************************************
+
+ Refresh screen
+
+***************************************************************************/
+
+uint32_t cps_state::screen_update_cps1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+{
+ int layercontrol, l0, l1, l2, l3;
+ int videocontrol = m_cps_a_regs[CPS1_VIDEOCONTROL];
+
+ flip_screen_set(videocontrol & 0x8000);
+
+ layercontrol = m_cps_b_regs[m_layer_control / 2];
+
+ /* Get video memory base registers */
+ cps1_get_video_base();
+
+ /* Find the offset of the last sprite in the sprite table */
+ cps1_find_last_sprite();
+
+ if (m_cps_version == 2)
+ cps2_find_last_sprite();
+
+ cps1_update_transmasks();
+
+ m_bg_tilemap[0]->set_scrollx(0, m_scroll1x);
+ m_bg_tilemap[0]->set_scrolly(0, m_scroll1y);
+
+ if (videocontrol & 0x01) /* linescroll enable */
+ {
+ int scrly = -m_scroll2y;
+
+ m_bg_tilemap[1]->set_scroll_rows(1024);
+
+ int otheroffs = m_cps_a_regs[CPS1_ROWSCROLL_OFFS];
+
+ for (int i = 0; i < 256; i++)
+ m_bg_tilemap[1]->set_scrollx((i - scrly) & 0x3ff, m_scroll2x + m_other[(i + otheroffs) & 0x3ff]);
+ }
+ else
+ {
+ m_bg_tilemap[1]->set_scroll_rows(1);
+ m_bg_tilemap[1]->set_scrollx(0, m_scroll2x);
+ }
+ m_bg_tilemap[1]->set_scrolly(0, m_scroll2y);
+ m_bg_tilemap[2]->set_scrollx(0, m_scroll3x);
+ m_bg_tilemap[2]->set_scrolly(0, m_scroll3y);
+
+
+ /* Blank screen */
+ if (m_cps_version == 1)
+ {
+ // CPS1 games use pen 0xbff as background color; this is used in 3wonders,
+ // mtwins (explosion during attract), mercs (intermission).
+ bitmap.fill(0xbff, cliprect);
+ }
+ else
+ {
+ // CPS2 apparently always force the background to black. Several games would
+ // should a blue screen during boot if we used the same code as CPS1.
+ // Maybe Capcom changed the background handling due to the problems that
+ // it caused on several monitors (because the background extended into the
+ // blanking area instead of going black, causing the monitor to clip).
+ bitmap.fill(m_palette->black_pen(), cliprect);
+ }
+
+ if (m_region_stars)
+ {
+ cps1_render_stars(screen, bitmap, cliprect);
+ }
+
+ /* Draw layers (0 = sprites, 1-3 = tilemaps) */
+ l0 = (layercontrol >> 0x06) & 03;
+ l1 = (layercontrol >> 0x08) & 03;
+ l2 = (layercontrol >> 0x0a) & 03;
+ l3 = (layercontrol >> 0x0c) & 03;
+ screen.priority().fill(0, cliprect);
+
+ if (m_cps_version == 1)
+ {
+ if (BIT(m_bootleg_kludge, 7))
+ cps1_build_palette(cps1_base(CPS1_PALETTE_BASE, m_palette_align));
+
+ cps1_render_layer(screen, bitmap, cliprect, l0, 0);
+
+ if (l1 == 0)
+ cps1_render_high_layer(screen, bitmap, cliprect, l0); /* prepare mask for sprites */
+
+ cps1_render_layer(screen, bitmap, cliprect, l1, 0);
+
+ if (l2 == 0)
+ cps1_render_high_layer(screen, bitmap, cliprect, l1); /* prepare mask for sprites */
+
+ cps1_render_layer(screen, bitmap, cliprect, l2, 0);
+
+ if (l3 == 0)
+ cps1_render_high_layer(screen, bitmap, cliprect, l2); /* prepare mask for sprites */
+
+ cps1_render_layer(screen, bitmap, cliprect, l3, 0);
+ }
+ else
+ {
+ int l0pri, l1pri, l2pri, l3pri;
+ int primasks[8], i;
+ l0pri = (m_pri_ctrl >> 4 * l0) & 0x0f;
+ l1pri = (m_pri_ctrl >> 4 * l1) & 0x0f;
+ l2pri = (m_pri_ctrl >> 4 * l2) & 0x0f;
+ l3pri = (m_pri_ctrl >> 4 * l3) & 0x0f;
+
+#if 0
+if ( (m_output[CPS2_OBJ_BASE /2] != 0x7080 && m_output[CPS2_OBJ_BASE /2] != 0x7000) ||
+ m_output[CPS2_OBJ_UK1 /2] != 0x807d ||
+ (m_output[CPS2_OBJ_UK2 /2] != 0x0000 && m_output[CPS2_OBJ_UK2 /2] != 0x1101 && m_output[CPS2_OBJ_UK2 /2] != 0x0001))
+ popmessage("base %04x uk1 %04x uk2 %04x",
+ m_output[CPS2_OBJ_BASE /2],
+ m_output[CPS2_OBJ_UK1 /2],
+ m_output[CPS2_OBJ_UK2 /2]);
+
+if (0 && machine().input().code_pressed(KEYCODE_Z))
+ popmessage("order: %d (%d) %d (%d) %d (%d) %d (%d)",l0,l0pri,l1,l1pri,l2,l2pri,l3,l3pri);
+#endif
+
+ /* take out the CPS1 sprites layer */
+ if (l0 == 0) { l0 = l1; l1 = 0; l0pri = l1pri; }
+ if (l1 == 0) { l1 = l2; l2 = 0; l1pri = l2pri; }
+ if (l2 == 0) { l2 = l3; l3 = 0; l2pri = l3pri; }
+
+ {
+ int mask0 = 0xaa;
+ int mask1 = 0xcc;
+ if (l0pri > l1pri) mask0 &= ~0x88;
+ if (l0pri > l2pri) mask0 &= ~0xa0;
+ if (l1pri > l2pri) mask1 &= ~0xc0;
+
+ primasks[0] = 0xff;
+ for (i = 1; i < 8; i++)
+ {
+ if (i <= l0pri && i <= l1pri && i <= l2pri)
+ {
+ primasks[i] = 0xfe;
+ continue;
+ }
+ primasks[i] = 0;
+ if (i <= l0pri) primasks[i] |= mask0;
+ if (i <= l1pri) primasks[i] |= mask1;
+ if (i <= l2pri) primasks[i] |= 0xf0;
+ }
+ }
+
+ cps1_render_layer(screen, bitmap, cliprect, l0, 1);
+ cps1_render_layer(screen, bitmap, cliprect, l1, 2);
+ cps1_render_layer(screen, bitmap, cliprect, l2, 4);
+ cps2_render_sprites(screen, bitmap, cliprect, primasks);
+ }
+
+ return 0;
+}
+
+WRITE_LINE_MEMBER(cps_state::screen_vblank_cps1)
+{
+ // rising edge
+ if (state)
+ {
+ /* Get video memory base registers */
+ cps1_get_video_base();
+
+ if (m_cps_version == 1)
+ {
+ /* CPS1 sprites have to be delayed one frame */
+ memcpy(m_buffered_obj.get(), m_obj, m_obj_size);
+ }
+ }
+}
+
+void cps_state::cps2_set_sprite_priorities()
+{
+ m_pri_ctrl = m_output[CPS2_OBJ_PRI /2];
+}
+
+void cps_state::cps2_objram_latch()
+{
+ cps2_set_sprite_priorities();
+ memcpy(m_cps2_buffered_obj.get(), cps2_objbase(), m_cps2_obj_size);
+}
diff --git a/docs/release/src/hbmame/video/galaxian.cpp b/docs/release/src/hbmame/video/galaxian.cpp
new file mode 100644
index 00000000000..c94dac4e83f
--- /dev/null
+++ b/docs/release/src/hbmame/video/galaxian.cpp
@@ -0,0 +1,87 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/video/galaxian.cpp"
+
+
+/***************************************************************************
+
+ HBMAME Video support for extra games
+
+***************************************************************************/
+
+
+
+
+
+/*************************************
+ *
+ * Four Play extensions
+ *
+ *************************************/
+
+/* gfxbank[4] is used as a cpu bank number, and gfxbank[0] for graphics banking */
+WRITE8_MEMBER( galaxian_state::fourplay_rombank_w )
+{
+ m_gfxbank[4] = (m_gfxbank[4] & (2 - offset)) | (data << offset);
+
+ m_gfxbank[0] = (m_gfxbank[4] == 3); // 1 = true, 0 = false
+
+ membank("bank1")->set_entry( m_gfxbank[4] );
+}
+
+
+
+/*************************************
+ *
+ * Video Eight extensions
+ *
+ *************************************/
+
+void galaxian_state::videight_extend_tile_info(uint16_t *code, uint8_t *color, uint8_t attrib, uint8_t x)
+{
+ *code |= (m_gfxbank[0] << 8);
+ *color |= (m_gfxbank[4] << 3);
+}
+
+void galaxian_state::videight_extend_sprite_info(const uint8_t *base, uint8_t *sx, uint8_t *sy, uint8_t *flipx, uint8_t *flipy, uint16_t *code, uint8_t *color)
+{
+ *code |= (m_gfxbank[0] << 6);
+ *color |= (m_gfxbank[4] << 3);
+}
+
+
+/* This handles the main bankswitching for code and one-bank gfx games */
+WRITE8_MEMBER( galaxian_state::videight_rombank_w )
+{
+ uint8_t gfxbanks[] = { 0, 10, 2, 8, 1, 9, 4, 11 };
+ if (offset == 2)
+ galaxian_stars_enable_w( space, 0, data );
+ else
+ {
+ m_gfxbank[4] = (m_gfxbank[4] & (6 - offset)) | (data << ((offset + 1) >> 1));
+ galaxian_gfxbank_w (space, 0, gfxbanks[m_gfxbank[4]]);
+ membank("bank1")->set_entry( m_gfxbank[4] );
+ }
+}
+
+/* This handles those games with multiple gfx banks */
+WRITE8_MEMBER( galaxian_state::videight_gfxbank_w )
+{
+ /* Moon Cresta (mooncrgx) */
+ if (( data < 2 ) && (m_gfxbank[4] == 3))
+ {
+ uint8_t gfxbanks[] = { 8, 12, 8, 14, 8, 13, 8, 15 };
+ if (!offset) m_gfxbank[3] = (m_gfxbank[3] & 6) | data;
+ if (offset == 1) m_gfxbank[3] = (m_gfxbank[3] & 5) | (data << 1);
+ if (offset == 2) m_gfxbank[3] = (m_gfxbank[3] & 3) | (data << 2);
+ galaxian_gfxbank_w(space, 0, gfxbanks[m_gfxbank[3]]);
+ }
+
+ /* Uniwar S */
+ if (( data < 2 ) && (m_gfxbank[4] == 2) && (offset == 2))
+ galaxian_gfxbank_w( space, 0, data+2 );
+
+ /* Pisces (piscesb) */
+ if (( data < 2 ) && (m_gfxbank[4] == 6) && (offset == 2))
+ galaxian_gfxbank_w( space, 0, data+4 );
+}
diff --git a/docs/release/src/hbmame/video/neogeo.cpp b/docs/release/src/hbmame/video/neogeo.cpp
new file mode 100644
index 00000000000..35227dd4d72
--- /dev/null
+++ b/docs/release/src/hbmame/video/neogeo.cpp
@@ -0,0 +1,279 @@
+// license:BSD-3-Clause
+// copyright-holders:Bryan McPhail,Ernesto Corvi,Andrew Prime,Zsolt Vasvari
+// thanks-to:Fuzz
+/***************************************************************************
+
+ Neo-Geo hardware
+
+****************************************************************************/
+
+#include "emu.h"
+#include "includes/neogeo.h"
+#include "video/resnet.h"
+
+#define NUM_PENS (0x1000)
+#define VERBOSE (0)
+
+
+
+/*************************************
+ *
+ * Palette handling
+ *
+ *************************************/
+
+void neogeo_state::create_rgb_lookups()
+{
+ static const int resistances[] = {3900, 2200, 1000, 470, 220};
+
+ /* compute four sets of weights - with or without the pulldowns -
+ ensuring that we use the same scaler for all */
+ double weights_normal[5];
+ double scaler = compute_resistor_weights(0, 255, -1,
+ 5, resistances, weights_normal, 0, 0,
+ 0, nullptr, nullptr, 0, 0,
+ 0, nullptr, nullptr, 0, 0);
+
+ double weights_dark[5];
+ compute_resistor_weights(0, 255, scaler,
+ 5, resistances, weights_dark, 8200, 0,
+ 0, nullptr, nullptr, 0, 0,
+ 0, nullptr, nullptr, 0, 0);
+
+ double weights_shadow[5];
+ compute_resistor_weights(0, 255, scaler,
+ 5, resistances, weights_shadow, 150, 0,
+ 0, nullptr, nullptr, 0, 0,
+ 0, nullptr, nullptr, 0, 0);
+
+ double weights_dark_shadow[5];
+ compute_resistor_weights(0, 255, scaler,
+ 5, resistances, weights_dark_shadow, 1.0 / ((1.0 / 8200) + (1.0 / 150)), 0,
+ 0, nullptr, nullptr, 0, 0,
+ 0, nullptr, nullptr, 0, 0);
+
+ for (int i = 0; i < 32; i++)
+ {
+ int i4 = (i >> 4) & 1;
+ int i3 = (i >> 3) & 1;
+ int i2 = (i >> 2) & 1;
+ int i1 = (i >> 1) & 1;
+ int i0 = (i >> 0) & 1;
+ m_palette_lookup[i][0] = combine_5_weights(weights_normal, i0, i1, i2, i3, i4);
+ m_palette_lookup[i][1] = combine_5_weights(weights_dark, i0, i1, i2, i3, i4);
+ m_palette_lookup[i][2] = combine_5_weights(weights_shadow, i0, i1, i2, i3, i4);
+ m_palette_lookup[i][3] = combine_5_weights(weights_dark_shadow, i0, i1, i2, i3, i4);
+ }
+}
+
+void neogeo_state::set_pens()
+{
+ const pen_t *pen_base = m_palette->pens() + m_palette_bank + (m_screen_shadow ? 0x2000 : 0);
+ m_sprgen->set_pens(pen_base);
+ m_bg_pen = pen_base + 0xfff;
+}
+
+
+void neogeo_state::neogeo_set_screen_shadow( int data )
+{
+ m_screen_shadow = data;
+ set_pens();
+}
+
+
+void neogeo_state::neogeo_set_palette_bank( int data )
+{
+ m_palette_bank = data ? 0x1000 : 0;
+ set_pens();
+}
+
+
+READ16_MEMBER(neogeo_state::neogeo_paletteram_r)
+{
+ return m_paletteram[m_palette_bank + offset];
+}
+
+
+WRITE16_MEMBER(neogeo_state::neogeo_paletteram_w)
+{
+ offset += m_palette_bank;
+ data = COMBINE_DATA(&m_paletteram[offset]);
+
+ int dark = data >> 15;
+ int r = ((data >> 14) & 0x1) | ((data >> 7) & 0x1e);
+ int g = ((data >> 13) & 0x1) | ((data >> 3) & 0x1e);
+ int b = ((data >> 12) & 0x1) | ((data << 1) & 0x1e);
+
+ m_palette->set_pen_color(offset,
+ m_palette_lookup[r][dark],
+ m_palette_lookup[g][dark],
+ m_palette_lookup[b][dark]); // normal
+
+ m_palette->set_pen_color(offset + 0x2000,
+ m_palette_lookup[r][dark+2],
+ m_palette_lookup[g][dark+2],
+ m_palette_lookup[b][dark+2]); // shadow
+}
+
+
+
+/*************************************
+ *
+ * Video system start
+ *
+ *************************************/
+
+void neogeo_state::video_start()
+{
+ create_rgb_lookups();
+
+ m_paletteram.resize(0x1000 * 2);
+ memset(&m_paletteram[0], 0, 0x1000 * 2 * sizeof(m_paletteram[0]));
+
+ m_screen_shadow = 0;
+ m_palette_bank = 0;
+
+ save_item(NAME(m_paletteram));
+ save_item(NAME(m_screen_shadow));
+ save_item(NAME(m_palette_bank));
+ machine().save().register_postload(save_prepost_delegate(FUNC(neogeo_state::set_pens), this));
+
+ set_pens();
+}
+
+
+
+/*************************************
+ *
+ * Video system reset
+ *
+ *************************************/
+
+void neogeo_state::video_reset()
+{
+}
+
+
+
+/*************************************
+ *
+ * Video update
+ *
+ *************************************/
+
+uint32_t neogeo_state::screen_update_neogeo(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
+{
+ // fill with background color first
+ bitmap.fill(*m_bg_pen, cliprect);
+
+ m_sprgen->draw_sprites(bitmap, cliprect.min_y);
+
+ m_sprgen->draw_fixed_layer(bitmap, cliprect.min_y);
+
+ return 0;
+}
+
+
+
+/*************************************
+ *
+ * Video control
+ *
+ *************************************/
+
+uint16_t neogeo_state::get_video_control( )
+{
+ uint16_t ret;
+ uint16_t v_counter;
+
+ /*
+ The format of this very important location is: AAAA AAAA A??? BCCC
+
+ A is the raster line counter. mosyougi relies solely on this to do the
+ raster effects on the title screen; sdodgeb loops waiting for the top
+ bit to be 1; zedblade heavily depends on it to work correctly (it
+ checks the top bit in the IRQ2 handler).
+ B is definitely a PAL/NTSC flag. (LSPC2 only) Evidence:
+ 1) trally changes the position of the speed indicator depending on
+ it (0 = lower 1 = higher).
+ 2) samsho3 sets a variable to 60 when the bit is 0 and 50 when it's 1.
+ This is obviously the video refresh rate in Hz.
+ 3) samsho3 sets another variable to 256 or 307. This could be the total
+ screen height (including vblank), or close to that.
+ Some games (e.g. lstbld2, samsho3) do this (or similar):
+ bclr #$0, $3c000e.l
+ when the bit is set, so 3c000e (whose function is unknown) has to be
+ related
+ C animation counter lower 3 bits
+ */
+
+ /* the vertical counter chain goes from 0xf8 - 0x1ff */
+ v_counter = m_screen->vpos() + 0x100;
+
+ if (v_counter >= 0x200)
+ v_counter = v_counter - NEOGEO_VTOTAL;
+
+ ret = (v_counter << 7) | (m_sprgen->neogeo_get_auto_animation_counter() & 0x0007);
+
+ if (VERBOSE) logerror("%s: video_control read (%04x)\n", machine().describe_context(), ret);
+
+ return ret;
+}
+
+
+void neogeo_state::set_video_control( uint16_t data )
+{
+ if (VERBOSE) logerror("%s: video control write %04x\n", machine().describe_context(), data);
+
+ m_sprgen->set_auto_animation_speed(data >> 8);
+ m_sprgen->set_auto_animation_disabled(data & 0x0008);
+
+ neogeo_set_display_position_interrupt_control(data & 0x00f0);
+}
+
+
+READ16_MEMBER(neogeo_state::neogeo_video_register_r)
+{
+ uint16_t ret;
+
+ /* accessing the LSB only is not mapped */
+ if (mem_mask == 0x00ff)
+ ret = neogeo_unmapped_r(space, 0, 0xffff) & 0x00ff;
+ else
+ {
+ switch (offset)
+ {
+ default:
+ case 0x00:
+ case 0x01: ret = m_sprgen->get_videoram_data(); break;
+ case 0x02: ret = m_sprgen->get_videoram_modulo(); break;
+ case 0x03: ret = get_video_control(); break;
+ }
+ }
+
+ return ret;
+}
+
+
+WRITE16_MEMBER(neogeo_state::neogeo_video_register_w)
+{
+ /* accessing the LSB only is not mapped */
+ if (mem_mask != 0x00ff)
+ {
+ /* accessing the MSB only stores same data in MSB and LSB */
+ if (mem_mask == 0xff00)
+ data = (data & 0xff00) | (data >> 8);
+
+ switch (offset)
+ {
+ case 0x00: m_sprgen->set_videoram_offset(data); break;
+ case 0x01: m_sprgen->set_videoram_data(data); break;
+ case 0x02: m_sprgen->set_videoram_modulo(data); break;
+ case 0x03: set_video_control(data); break;
+ case 0x04: neogeo_set_display_counter_msb(data); break;
+ case 0x05: neogeo_set_display_counter_lsb(data); break;
+ case 0x06: neogeo_acknowledge_interrupt(data); break;
+ case 0x07: break; // d0: pause timer for 32 lines when in PAL mode (LSPC2 only)
+ }
+ }
+}
diff --git a/docs/release/src/hbmame/video/neogeo_spr.cpp b/docs/release/src/hbmame/video/neogeo_spr.cpp
new file mode 100644
index 00000000000..023b652fc92
--- /dev/null
+++ b/docs/release/src/hbmame/video/neogeo_spr.cpp
@@ -0,0 +1,644 @@
+// license:BSD-3-Clause
+// copyright-holders:Bryan McPhail,Ernesto Corvi,Andrew Prime,Zsolt Vasvari
+// thanks-to:Fuzz
+/* NeoGeo sprites (and fixed text layer) */
+
+#include "emu.h"
+#include "neogeo_spr.h"
+#include "screen.h"
+
+const device_type NEOGEO_SPRITE = device_creator<neosprite_device>;
+
+neosprite_device::neosprite_device
+ (const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : device_t(mconfig, NEOGEO_SPRITE, "Neo-Geo Sprites", tag, owner, clock, "neosprite", __FILE__)
+ , m_bppshift(4)
+ , m_spritegfx8(nullptr)
+ { }
+
+void neosprite_device::device_start()
+{
+ m_videoram = std::make_unique<uint16_t[]>(0x8000 + 0x800);
+ m_videoram_drawsource = m_videoram.get();
+
+ /* clear allocated memory */
+ memset(m_videoram.get(), 0x00, (0x8000 + 0x800) * sizeof(uint16_t));
+
+ create_sprite_line_timer();
+ create_auto_animation_timer();
+
+ /* initialize values that are not modified on a reset */
+ m_vram_offset = 0;
+ m_vram_read_buffer = 0;
+ m_vram_modulo = 0;
+ m_auto_animation_speed = 0;
+ m_auto_animation_disabled = 0;
+ m_auto_animation_counter = 0;
+ m_auto_animation_frame_counter = 0;
+
+ /* register for state saving */
+ save_pointer(NAME(m_videoram.get()), 0x8000 + 0x800);
+ save_item(NAME(m_vram_offset));
+ save_item(NAME(m_vram_read_buffer));
+ save_item(NAME(m_vram_modulo));
+ save_item(NAME(m_fixed_layer_source));
+
+ save_item(NAME(m_auto_animation_speed));
+ save_item(NAME(m_auto_animation_disabled));
+ save_item(NAME(m_auto_animation_counter));
+ save_item(NAME(m_auto_animation_frame_counter));
+
+ m_region_zoomy = memregion(":zoomy")->base();
+}
+
+void neosprite_device::device_reset()
+{
+ //m_sprite_gfx_address_mask = 0;
+ optimize_sprite_data();
+
+ start_sprite_line_timer();
+ start_auto_animation_timer();
+}
+
+
+
+/*************************************
+ *
+ * Video RAM access
+ *
+ *************************************/
+
+void neosprite_device::set_videoram_offset( uint16_t data )
+{
+ m_vram_offset = (data & 0x8000 ? data & 0x87ff : data);
+
+ /* the read happens right away */
+ m_vram_read_buffer = m_videoram[m_vram_offset];
+}
+
+
+uint16_t neosprite_device::get_videoram_data( )
+{
+ return m_vram_read_buffer;
+}
+
+
+void neosprite_device::set_videoram_data( uint16_t data)
+{
+ m_videoram[m_vram_offset] = data;
+
+ /* auto increment/decrement the current offset - A15 is NOT affected */
+ set_videoram_offset((m_vram_offset & 0x8000) | ((m_vram_offset + m_vram_modulo) & 0x7fff));
+}
+
+
+void neosprite_device::set_videoram_modulo( uint16_t data)
+{
+ m_vram_modulo = data;
+}
+
+
+uint16_t neosprite_device::get_videoram_modulo( )
+{
+ return m_vram_modulo;
+}
+
+
+
+/*************************************
+ *
+ * Auto animation
+ *
+ *************************************/
+
+void neosprite_device::set_auto_animation_speed( uint8_t data)
+{
+ m_auto_animation_speed = data;
+}
+
+
+void neosprite_device::set_auto_animation_disabled( uint8_t data)
+{
+ m_auto_animation_disabled = data;
+}
+
+
+uint8_t neosprite_device::neogeo_get_auto_animation_counter( )
+{
+ return m_auto_animation_counter;
+}
+
+
+TIMER_CALLBACK_MEMBER(neosprite_device::auto_animation_timer_callback)
+{
+ if (m_auto_animation_frame_counter == 0)
+ {
+ m_auto_animation_frame_counter = m_auto_animation_speed;
+ m_auto_animation_counter += 1;
+ }
+ else
+ m_auto_animation_frame_counter = m_auto_animation_frame_counter - 1;
+
+ m_auto_animation_timer->adjust(m_screen->time_until_pos(NEOGEO_VSSTART));
+}
+
+
+void neosprite_device::create_auto_animation_timer( )
+{
+ m_auto_animation_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(neosprite_device::auto_animation_timer_callback),this));
+}
+
+
+void neosprite_device::start_auto_animation_timer( )
+{
+ m_auto_animation_timer->adjust(m_screen->time_until_pos(NEOGEO_VSSTART));
+}
+
+
+
+/*************************************
+ *
+ * Fixed layer
+ *
+ *************************************/
+
+void neosprite_device::neogeo_set_fixed_layer_source( uint8_t data )
+{
+ m_fixed_layer_source = data;
+}
+
+
+void neosprite_device::draw_fixed_layer( bitmap_rgb32 &bitmap, int scanline )
+{
+ uint8_t* gfx_base = m_fixed_layer_source ? m_region_fixed : m_region_fixedbios->base();
+ uint32_t addr_mask = ( m_fixed_layer_source ? m_region_fixed_size : m_region_fixedbios->bytes() ) - 1;
+ uint16_t *video_data = &m_videoram_drawsource[0x7000 | (scanline >> 3)];
+ uint32_t *pixel_addr = &bitmap.pix32(scanline, NEOGEO_HBEND);
+
+ uint8_t garouoffsets[32];
+ bool banked = m_fixed_layer_source && (addr_mask > 0x1ffff);
+
+ /* thanks to Mr K for the garou & kof2000 banking info */
+ /* Build line banking table for Garou & MS3 before starting render */
+ if (banked && m_fixed_layer_bank_type == 1)
+ {
+ uint8_t garoubank = 0, k = 0, y = 0;
+ while (y < 32)
+ {
+ if (m_videoram_drawsource[0x7500 + k] == 0x0200 && (m_videoram_drawsource[0x7580 + k] & 0xff00) == 0xff00)
+ {
+ garoubank = m_videoram_drawsource[0x7580 + k] & 3;
+ garouoffsets[y++] = garoubank;
+ }
+ garouoffsets[y++] = garoubank;
+ k += 2;
+ }
+ }
+
+ for (uint8_t x = 0; x < 40; x++)
+ {
+ uint16_t code_and_palette = *video_data;
+ uint16_t code = code_and_palette & 0x0fff;
+
+ if (banked)
+ {
+ int y = scanline >> 3;
+ switch (m_fixed_layer_bank_type)
+ {
+ case 1:
+ /* Garou, MSlug 3 */
+ code += 0x1000 * (garouoffsets[(y - 2) & 31] ^ 3);
+ break;
+ case 2:
+ code += 0x1000 * (((m_videoram_drawsource[0x7500 + ((y - 1) & 31) + 32 * (x / 6)] >> (5 - (x % 6)) * 2) & 3) ^ 3);
+ break;
+ }
+ }
+
+ {
+ int gfx_offset = ((code << 5) | (scanline & 0x07)) & addr_mask;
+
+ const pen_t *char_pens;
+
+ char_pens = &m_pens[code_and_palette >> 12 << m_bppshift];
+
+ static const uint32_t pix_offsets[] = { 0x10, 0x18, 0x00, 0x08 };
+
+ for (u8 i = 0; i < 4; i++)
+ draw_fixed_layer_2pixels(pixel_addr, gfx_offset + pix_offsets[i], gfx_base, char_pens);
+ }
+
+ video_data += 0x20;
+ }
+}
+
+
+inline void neosprite_device::draw_fixed_layer_2pixels(uint32_t*&pixel_addr, int offset, uint8_t* gfx_base, const pen_t* char_pens)
+{
+ uint8_t data = gfx_base[offset];
+
+ if (data & 0x0f)
+ *pixel_addr = char_pens[data & 0x0f];
+ pixel_addr++;
+
+ if (data & 0xf0)
+ *pixel_addr = char_pens[data >> 4];
+ pixel_addr++;
+}
+
+/*************************************
+ *
+ * Sprite hardware
+ *
+ *************************************/
+
+#define MAX_SPRITES_PER_SCREEN (381)
+// HBMAME
+//#define MAX_SPRITES_PER_LINE (96)
+// beast requires 236 sprites, also fixes neopong and lhcdb
+#define MAX_SPRITES_PER_LINE (236)
+
+
+/* horizontal zoom table - verified on real hardware */
+static const int zoom_x_tables[][16] =
+{
+ { 0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 },
+ { 0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0 },
+ { 0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0 },
+ { 0,0,1,0,1,0,0,0,1,0,0,0,1,0,0,0 },
+ { 0,0,1,0,1,0,0,0,1,0,0,0,1,0,1,0 },
+ { 0,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0 },
+ { 0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0 },
+ { 1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0 },
+ { 1,0,1,0,1,0,1,0,1,1,1,0,1,0,1,0 },
+ { 1,0,1,1,1,0,1,0,1,1,1,0,1,0,1,0 },
+ { 1,0,1,1,1,0,1,0,1,1,1,0,1,0,1,1 },
+ { 1,0,1,1,1,0,1,1,1,1,1,0,1,0,1,1 },
+ { 1,0,1,1,1,0,1,1,1,1,1,0,1,1,1,1 },
+ { 1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1 },
+ { 1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1 },
+ { 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 }
+};
+
+
+
+inline bool neosprite_device::sprite_on_scanline(int scanline, int y, int rows)
+{
+ return (rows == 0) || (rows >= 0x20) || ((scanline - y) & 0x1ff) < (rows * 0x10);
+}
+
+
+
+
+void neosprite_device::draw_sprites( bitmap_rgb32 &bitmap, int scanline )
+{
+ int sprite_index;
+ int max_sprite_index;
+
+ int y = 0;
+ int x = 0;
+ int rows = 0;
+ int zoom_y = 0;
+ int zoom_x = 0;
+ uint16_t *sprite_list;
+
+ /* select the active list */
+ if (scanline & 0x01)
+ sprite_list = &m_videoram_drawsource[0x8680];
+ else
+ sprite_list = &m_videoram_drawsource[0x8600];
+
+ /* optimization -- find last non-zero entry and only draw that many +1
+ sprite. This is not 100% correct as the hardware will keep drawing
+ the #0 sprite over and over, but we need the speed */
+ for (max_sprite_index = (MAX_SPRITES_PER_LINE - 1); max_sprite_index >= 0; max_sprite_index--)
+ {
+ if (sprite_list[max_sprite_index] != 0)
+ break;
+ }
+
+ /* add the +1 now, just in case the 0 at the end is real sprite */
+ if (max_sprite_index != (MAX_SPRITES_PER_LINE - 1))
+ max_sprite_index = max_sprite_index + 1;
+
+ for (sprite_index = 0; sprite_index <= max_sprite_index; sprite_index++)
+ {
+ uint16_t sprite_number = sprite_list[sprite_index] & 0x01ff;
+ uint16_t y_control = m_videoram_drawsource[0x8200 | sprite_number];
+ uint16_t zoom_control = m_videoram_drawsource[0x8000 | sprite_number];
+
+ /* if chained, go to next X coordinate and get new X zoom */
+ if (y_control & 0x40)
+ {
+ x = (x + zoom_x + 1) & 0x01ff;
+ zoom_x = (zoom_control >> 8) & 0x0f;
+ }
+ /* new block */
+ else
+ {
+ y = 0x200 - (y_control >> 7);
+ x = m_videoram_drawsource[0x8400 | sprite_number] >> 7;
+
+ zoom_y = (zoom_control & 0xff);
+
+ zoom_x = (zoom_control >> 8) & 0x0f;
+ rows = y_control & 0x3f;
+ }
+
+ /* skip if falls completely outside the screen */
+ if ((x >= 0x140) && (x <= 0x1f0))
+ continue;
+
+ /* double check the Y coordinate, in case somebody modified the sprite coordinate
+ since we buffered it */
+ if (sprite_on_scanline(scanline, y, rows))
+ {
+ int sprite_y;
+ int tile;
+ uint8_t sprite_y_and_tile;
+ offs_t attr_and_code_offs;
+ uint16_t attr;
+ uint32_t code;
+ const int *zoom_x_table;
+ const pen_t *line_pens;
+ int x_inc;
+
+ int sprite_line = (scanline - y) & 0x1ff;
+ int zoom_line = sprite_line & 0xff;
+ int invert = sprite_line & 0x100;
+
+ if (invert)
+ zoom_line ^= 0xff;
+
+ if (rows > 0x20)
+ {
+ zoom_line = zoom_line % ((zoom_y + 1) << 1);
+
+ if (zoom_line > zoom_y)
+ {
+ zoom_line = ((zoom_y + 1) << 1) - 1 - zoom_line;
+ invert = !invert;
+ }
+ }
+
+ sprite_y_and_tile = m_region_zoomy[(zoom_y << 8) | zoom_line];
+
+ sprite_y = sprite_y_and_tile & 0x0f;
+ tile = sprite_y_and_tile >> 4;
+
+ if (invert)
+ {
+ sprite_y ^= 0x0f;
+ tile ^= 0x1f;
+ }
+
+ attr_and_code_offs = (sprite_number << 6) | (tile << 1);
+ attr = m_videoram_drawsource[attr_and_code_offs + 1];
+ code = ((attr << 12) & 0x70000) | m_videoram_drawsource[attr_and_code_offs];
+
+ /* substitute auto animation bits */
+ if (!m_auto_animation_disabled)
+ {
+ if (attr & 0x0008)
+ code = (code & ~0x07) | (m_auto_animation_counter & 0x07);
+ else if (attr & 0x0004)
+ code = (code & ~0x03) | (m_auto_animation_counter & 0x03);
+ }
+
+ /* vertical flip? */
+ if (attr & 0x0002)
+ sprite_y ^= 0x0f;
+
+ zoom_x_table = zoom_x_tables[zoom_x];
+
+ /* compute offset in gfx ROM and mask it to the number of bits available */
+ int gfx_base = ((code << 8) | (sprite_y << 4)) & m_sprite_gfx_address_mask;
+
+ line_pens = &m_pens[attr >> 8 << m_bppshift];
+
+ /* horizontal flip? */
+ if (attr & 0x0001)
+ {
+ gfx_base = gfx_base + 0x0f;
+ x_inc = -1;
+ }
+ else
+ x_inc = 1;
+
+ /* draw the line - no wrap-around */
+ if (x <= 0x01f0)
+ {
+ int i;
+
+ uint32_t *pixel_addr = &bitmap.pix32(scanline, x + NEOGEO_HBEND);
+
+ for (i = 0; i < 0x10; i++)
+ {
+ if (*zoom_x_table)
+ {
+ draw_pixel(gfx_base, pixel_addr, line_pens);
+
+ pixel_addr++;
+ }
+
+ zoom_x_table++;
+ gfx_base += x_inc;
+ }
+ }
+ /* wrap-around */
+ else
+ {
+ int i;
+
+ int x_save = x;
+ uint32_t *pixel_addr = &bitmap.pix32(scanline, NEOGEO_HBEND);
+
+ for (i = 0; i < 0x10; i++)
+ {
+ if (*zoom_x_table)
+ {
+ if (x >= 0x200)
+ {
+ draw_pixel(gfx_base, pixel_addr, line_pens);
+
+ pixel_addr++;
+ }
+
+ x++;
+ }
+
+ zoom_x_table++;
+ gfx_base += x_inc;
+ }
+
+ x = x_save;
+ }
+ }
+ }
+}
+
+
+void neosprite_device::parse_sprites( int scanline )
+{
+ uint16_t sprite_number;
+ int y = 0;
+ int rows = 0;
+ uint16_t *sprite_list;
+
+ int active_sprite_count = 0;
+
+ /* select the active list */
+ if (scanline & 0x01)
+ sprite_list = &m_videoram_drawsource[0x8680];
+ else
+ sprite_list = &m_videoram_drawsource[0x8600];
+
+ /* scan all sprites */
+ for (sprite_number = 0; sprite_number < MAX_SPRITES_PER_SCREEN; sprite_number++)
+ {
+ uint16_t y_control = m_videoram_drawsource[0x8200 | sprite_number];
+
+ /* if not chained, get Y position and height, otherwise use previous values */
+ if (~y_control & 0x40)
+ {
+ y = 0x200 - (y_control >> 7);
+ rows = y_control & 0x3f;
+ }
+
+ /* skip sprites with 0 rows */
+ if (rows == 0)
+ continue;
+
+ if (!sprite_on_scanline(scanline, y, rows))
+ continue;
+
+ /* sprite is on this scanline, add it to active list */
+ *sprite_list = sprite_number;
+
+ sprite_list++;
+
+ /* increment sprite count, and if we reached the max, bail out */
+ active_sprite_count++;
+
+ if (active_sprite_count == MAX_SPRITES_PER_LINE)
+ break;
+ }
+
+ /* fill the rest of the sprite list with 0, including one extra entry */
+ memset(sprite_list, 0, sizeof(sprite_list[0]) * (MAX_SPRITES_PER_LINE - active_sprite_count + 1));
+}
+
+
+TIMER_CALLBACK_MEMBER(neosprite_device::sprite_line_timer_callback)
+{
+ int scanline = param;
+
+ // we are at the beginning of a scanline - we need to draw the previous scanline and parse the sprites on the current one
+ if (scanline != 0)
+ m_screen->update_partial(scanline - 1);
+
+ parse_sprites(scanline);
+
+ // let's come back at the beginning of the next line
+ scanline = (scanline + 1) % NEOGEO_VTOTAL;
+
+ m_sprite_line_timer->adjust(m_screen->time_until_pos(scanline), scanline);
+}
+
+
+void neosprite_device::create_sprite_line_timer( )
+{
+ m_sprite_line_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(neosprite_device::sprite_line_timer_callback),this));
+}
+
+
+void neosprite_device::start_sprite_line_timer( )
+{
+ m_sprite_line_timer->adjust(m_screen->time_until_pos(0));
+}
+
+
+// these are for passing in pointers from the main system
+void neosprite_device::set_sprite_region(uint8_t* region_sprites, uint32_t region_sprites_size)
+{
+ m_region_sprites = region_sprites;
+ m_region_sprites_size = region_sprites_size;
+}
+
+void neosprite_device::set_fixed_regions(uint8_t* fix_cart, uint32_t fix_cart_size, memory_region* fix_bios)
+{
+ m_region_fixed = fix_cart;
+ m_region_fixed_size = fix_cart_size;
+ m_region_fixedbios = fix_bios;
+}
+
+void neosprite_device::set_screen(screen_device* screen)
+{
+ m_screen = screen;
+}
+
+void neosprite_device::set_pens(const pen_t* pens)
+{
+ m_pens = pens;
+}
+
+
+
+/*********************************************************************************************************************************/
+/* Regular NeoGeo sprite handling with pre-decode optimization */
+/* */
+/* this is closer to the old MAME implementation where the 4bpp graphics have been expanded to an easier to draw 8bpp format */
+/* for additional speed */
+/*********************************************************************************************************************************/
+
+
+// convert the sprite graphics data into a format that allows faster blitting
+void neosprite_device::optimize_sprite_data()
+{
+ uint32_t mask = 0xffffffff, len = m_region_sprites_size * 2 - 1;
+ uint8_t bit;
+
+ for (bit = 31; bit != 0; bit--)
+ if (BIT(len, bit))
+ break;
+
+ mask >>= (31-bit);
+
+ m_sprite_gfx.resize(mask + 1);
+ m_sprite_gfx_address_mask = mask;
+
+ uint8_t *src = m_region_sprites;
+ uint8_t *dest = &m_sprite_gfx[0];
+
+ for (unsigned i = 0; i < m_region_sprites_size; i += 0x80, src += 0x80)
+ {
+ for (unsigned y = 0; y < 0x10; y++)
+ {
+ for (unsigned x = 0; x < 8; x++)
+ {
+ *(dest++) = (((src[0x43 | (y << 2)] >> x) & 0x01) << 3) |
+ (((src[0x41 | (y << 2)] >> x) & 0x01) << 2) |
+ (((src[0x42 | (y << 2)] >> x) & 0x01) << 1) |
+ (((src[0x40 | (y << 2)] >> x) & 0x01) << 0);
+ }
+
+ for (unsigned x = 0; x < 8; x++)
+ {
+ *(dest++) = (((src[0x03 | (y << 2)] >> x) & 0x01) << 3) |
+ (((src[0x01 | (y << 2)] >> x) & 0x01) << 2) |
+ (((src[0x02 | (y << 2)] >> x) & 0x01) << 1) |
+ (((src[0x00 | (y << 2)] >> x) & 0x01) << 0);
+ }
+ }
+ }
+
+ m_spritegfx8 = &m_sprite_gfx[0];
+}
+
+inline void neosprite_device::draw_pixel(int romaddr, uint32_t* dst, const pen_t *line_pens)
+{
+ const uint8_t gfx = m_spritegfx8[romaddr];
+
+ if (gfx)
+ *dst = line_pens[gfx];
+}
diff --git a/docs/release/src/hbmame/video/neogeo_spr.h b/docs/release/src/hbmame/video/neogeo_spr.h
new file mode 100644
index 00000000000..8401f50a967
--- /dev/null
+++ b/docs/release/src/hbmame/video/neogeo_spr.h
@@ -0,0 +1,87 @@
+// license:BSD-3-Clause
+// copyright-holders:Bryan McPhail,Ernesto Corvi,Andrew Prime,Zsolt Vasvari
+// thanks-to:Fuzz
+
+// todo, move these back, currently the sprite code needs some of the values tho
+#define NEOGEO_MASTER_CLOCK (24000000)
+#define NEOGEO_MAIN_CPU_CLOCK (NEOGEO_MASTER_CLOCK / 2)
+#define NEOGEO_AUDIO_CPU_CLOCK (NEOGEO_MASTER_CLOCK / 6)
+#define NEOGEO_YM2610_CLOCK (NEOGEO_MASTER_CLOCK / 3)
+#define NEOGEO_PIXEL_CLOCK (NEOGEO_MASTER_CLOCK / 4)
+#define NEOGEO_HTOTAL (0x180)
+#define NEOGEO_HBEND (0x01e) /* this should really be 29.5 */
+#define NEOGEO_HBSTART (0x15e) /* this should really be 349.5 */
+#define NEOGEO_VTOTAL (0x108)
+#define NEOGEO_VBEND (0x010)
+#define NEOGEO_VBSTART (0x0f0)
+#define NEOGEO_VSSTART (0x100)
+
+
+class neosprite_device : public device_t
+{
+public:
+ neosprite_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ uint8_t m_fixed_layer_bank_type;
+ uint8_t m_fixed_layer_source;
+ uint16_t get_videoram_data( );
+ uint16_t get_videoram_modulo( );
+ uint8_t neogeo_get_auto_animation_counter( );
+ void set_videoram_data( uint16_t data);
+ void set_videoram_offset( uint16_t data );
+ void set_videoram_modulo( uint16_t data);
+ void set_auto_animation_speed( uint8_t data);
+ void set_auto_animation_disabled( uint8_t data);
+ void set_screen(screen_device* screen);
+ void set_pens(const pen_t* pens);
+ virtual void set_sprite_region(uint8_t* region_sprites, uint32_t region_sprites_size);
+ void set_fixed_regions(uint8_t* fix_cart, uint32_t fix_cart_size, memory_region* fix_bios);
+ void draw_fixed_layer( bitmap_rgb32 &bitmap, int scanline );
+ void draw_sprites( bitmap_rgb32 &bitmap, int scanline );
+ void neogeo_set_fixed_layer_source( uint8_t data );
+
+private:
+ virtual void draw_fixed_layer_2pixels(uint32_t*&pixel_addr, int offset, uint8_t* gfx_base, const pen_t* char_pens);
+ void create_auto_animation_timer( );
+ void start_auto_animation_timer( );
+ inline bool sprite_on_scanline(int scanline, int y, int rows);
+ void parse_sprites( int scanline );
+ void create_sprite_line_timer( );
+ void start_sprite_line_timer( );
+ virtual void optimize_sprite_data();
+ virtual void draw_pixel(int romaddr, uint32_t* dst, const pen_t *line_pens);
+
+ std::unique_ptr<uint16_t[]> m_videoram;
+ std::vector<uint8_t> m_sprite_gfx;
+
+ uint16_t *m_videoram_drawsource;
+ uint16_t m_vram_offset;
+ uint16_t m_vram_read_buffer;
+ uint16_t m_vram_modulo;
+ const uint8_t *m_region_zoomy;
+ uint32_t m_sprite_gfx_address_mask;
+ uint8_t m_auto_animation_speed;
+ uint8_t m_auto_animation_disabled;
+ uint8_t m_auto_animation_counter;
+ uint8_t m_auto_animation_frame_counter;
+
+ emu_timer *m_auto_animation_timer;
+ emu_timer *m_sprite_line_timer;
+
+ TIMER_CALLBACK_MEMBER(auto_animation_timer_callback);
+ TIMER_CALLBACK_MEMBER(sprite_line_timer_callback);
+
+ uint8_t m_bppshift; // 4 for 4bpp gfx (NeoGeo) 8 for 8bpp gfx (Midas)
+
+ virtual void device_start() override;
+ virtual void device_reset() override;
+ uint8_t* m_region_sprites;
+ uint32_t m_region_sprites_size;
+ uint8_t* m_region_fixed;
+ uint32_t m_region_fixed_size;
+ memory_region* m_region_fixedbios;
+ screen_device* m_screen;
+ const pen_t *m_pens;
+ uint8_t* m_spritegfx8;
+};
+
+extern const device_type NEOGEO_SPRITE;
diff --git a/docs/release/src/hbmame/video/pacman.cpp b/docs/release/src/hbmame/video/pacman.cpp
new file mode 100644
index 00000000000..a1a38546b14
--- /dev/null
+++ b/docs/release/src/hbmame/video/pacman.cpp
@@ -0,0 +1,360 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/video/pacman.cpp"
+
+
+VIDEO_START_MEMBER( pacman_state, pacmanx )
+{
+ init_save_state();
+ m_charbank = 0;
+ m_spritebank = 0;
+ m_palettebank = 0;
+ m_colortablebank = 0;
+ m_flipscreen = 0;
+ m_bgpriority = 0;
+ m_inv_spr = 0;
+ m_xoffsethack = 2;
+
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pacman_state::pacman_get_tile_info),this), tilemap_mapper_delegate(FUNC(pacman_state::pacman_scan_rows),this), 16, 16, 36, 28 );
+
+ m_bg_tilemap->set_scrolldx(0, 384*2 - 288*2 );
+ m_bg_tilemap->set_scrolldy(0, 264*2 - 224*2 );
+}
+
+uint32_t pacman_state::screen_update_pacmanx(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+{
+ if (m_bgpriority)
+ bitmap.fill(0,cliprect);
+ else
+ m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
+
+ if( m_spriteram )
+ {
+ uint8_t *spriteram = m_spriteram;
+ uint8_t *spriteram_2 = m_spriteram2;
+ int offs;
+
+ rectangle spriteclip(2*2*8, 2*68*8-1, 0*8, 2*56*8-1);
+ spriteclip &= cliprect;
+
+ /* Draw the sprites. Note that it is important to draw them exactly in this */
+ /* order, to have the correct priorities. */
+ for (offs = m_spriteram.bytes() - 2;offs > 2*2;offs -= 2)
+ {
+ int color;
+ int sx,sy;
+ uint8_t fx,fy;
+
+ if(m_inv_spr)
+ {
+ sx = spriteram_2[offs + 1]*2;
+ sy = 480 - (spriteram_2[offs]*2);
+ }
+ else
+ {
+ sx = 544 - spriteram_2[offs + 1]*2;
+ sy = (spriteram_2[offs] - 31)*2;
+ }
+
+ fx = (spriteram[offs] & 1) ^ m_inv_spr;
+ fy = (spriteram[offs] & 2) ^ ((m_inv_spr) << 1);
+
+ color = ( spriteram[offs + 1] & 0x1f ) | (m_colortablebank << 5) | (m_palettebank << 6 );
+
+ m_gfxdecode->gfx(1)->transmask(bitmap,spriteclip,
+ ( spriteram[offs] >> 2 ) | (m_spritebank << 6),
+ color,
+ fx,fy,
+ sx,sy,
+ m_palette->transpen_mask(*m_gfxdecode->gfx(1), color & 0x3f, 0));
+
+ /* also plot the sprite with wraparound (tunnel in Crush Roller) */
+ m_gfxdecode->gfx(1)->transmask(bitmap,spriteclip,
+ ( spriteram[offs] >> 2 ) | (m_spritebank << 6),
+ color,
+ fx,fy,
+ sx - 512,sy,
+ m_palette->transpen_mask(*m_gfxdecode->gfx(1), color & 0x3f, 0));
+ }
+ /* In the Pac Man based games (NOT Pengo) the first two sprites must be offset */
+ /* one pixel to the left to get a more correct placement */
+ for (offs = 2*2;offs >= 0;offs -= 2)
+ {
+ int color;
+ int sx,sy;
+ uint8_t fx,fy;
+
+ if(m_inv_spr)
+ {
+ sx = spriteram_2[offs + 1]*2;
+ sy = 480 - (spriteram_2[offs]*2);
+ }
+ else
+ {
+ sx = 544 - spriteram_2[offs + 1]*2;
+ sy = (spriteram_2[offs] - 31)*2;
+ }
+ color = ( spriteram[offs + 1] & 0x1f ) | (m_colortablebank << 5) | (m_palettebank << 6 );
+
+ fx = (spriteram[offs] & 1) ^ m_inv_spr;
+ fy = (spriteram[offs] & 2) ^ ((m_inv_spr) << 1);
+
+ m_gfxdecode->gfx(1)->transmask(bitmap,spriteclip,
+ ( spriteram[offs] >> 2 ) | (m_spritebank << 6),
+ color,
+ fx,fy,
+ sx,sy + m_xoffsethack,
+ m_palette->transpen_mask(*m_gfxdecode->gfx(1), color & 0x3f, 0));
+
+ /* also plot the sprite with wraparound (tunnel in Crush Roller) */
+ m_gfxdecode->gfx(1)->transmask(bitmap,spriteclip,
+ ( spriteram[offs] >> 2 ) | (m_spritebank << 6),
+ color,
+ fy,fx, //FIXME: flipping bits are really supposed to be inverted here?
+ sx - 512,sy + m_xoffsethack,
+ m_palette->transpen_mask(*m_gfxdecode->gfx(1), color & 0x3f, 0));
+ }
+ }
+
+ if (m_bgpriority != 0)
+ m_bg_tilemap->draw(screen, bitmap, cliprect, 0,0);
+ return 0;
+}
+
+
+
+
+
+/************************************************************************
+ MULTIPAC adapted for HBMAME by Robbbert
+ ************************************************************************/
+
+static void init_save_state_multipac(running_machine &machine)
+{
+ pacman_state *state = machine.driver_data<pacman_state>();
+ state->save_item(NAME(state->m_charbank));
+ state->save_item(NAME(state->m_spritebank));
+ state->save_item(NAME(state->m_palettebank));
+ state->save_item(NAME(state->m_colortablebank));
+ state->save_item(NAME(state->m_flipscreen));
+ state->save_item(NAME(state->m_bgpriority));
+}
+
+TILE_GET_INFO_MEMBER(pacman_state::multipac_get_tile_info )
+{
+ int code = m_videoram[tile_index] | (m_charbank << 8);
+ int attr = (m_colorram[tile_index] & 0x1f) | (m_colortablebank << 5);
+
+ SET_TILE_INFO_MEMBER(0,code,attr,0);
+}
+
+VIDEO_START_MEMBER( pacman_state, multipac )
+{
+ init_save_state_multipac(machine());
+
+ m_charbank = 0;
+ m_spritebank = 0;
+ m_colortablebank = 0;
+ m_flipscreen = 0;
+ m_bgpriority = 0;
+ m_inv_spr = 0;
+ m_xoffsethack = 1;
+
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pacman_state::multipac_get_tile_info),this), tilemap_mapper_delegate(FUNC(pacman_state::pacman_scan_rows),this), 8, 8, 36, 28 );
+
+ m_bg_tilemap->set_scrolldx(0, 384 - 288 );
+ m_bg_tilemap->set_scrolldy(0, 264 - 224 );
+}
+
+PALETTE_INIT_MEMBER( pacman_state, multipac )
+{
+ uint16_t i;
+ static const int resistances[3] = { 1000, 470, 220 };
+ double rweights[3], gweights[3], bweights[2];
+ uint8_t bit0, bit1, bit2, r, g, b;
+ uint16_t entries = palette.indirect_entries();
+ uint16_t bank,banks = entries >> 5;
+ const uint8_t *color_prom = machine().root_device().memregion("proms")->base();
+ const uint8_t *m_p_prom = machine().root_device().memregion("proms")->base() + entries;
+
+ /* compute the color output resistor weights */
+ compute_resistor_weights(0, 255, -1.0,
+ 3, &resistances[0], rweights, 0, 0,
+ 3, &resistances[0], gweights, 0, 0,
+ 2, &resistances[1], bweights, 0, 0);
+
+ for (bank = 0; bank < banks; bank++)
+ {
+ uint16_t obank = bank << 7;
+ uint16_t ibank = bank << 5;
+
+ /* create a lookup table for the palette */
+ for (i = ibank; i < (ibank+32); i++)
+ {
+ /* red component */
+ bit0 = BIT(color_prom[i], 0);
+ bit1 = BIT(color_prom[i], 1);
+ bit2 = BIT(color_prom[i], 2);
+ r = combine_3_weights(rweights, bit0, bit1, bit2);
+
+ /* green component */
+ bit0 = BIT(color_prom[i], 3);
+ bit1 = BIT(color_prom[i], 4);
+ bit2 = BIT(color_prom[i], 5);
+ g = combine_3_weights(gweights, bit0, bit1, bit2);
+
+ /* blue component */
+ bit0 = BIT(color_prom[i], 6);
+ bit1 = BIT(color_prom[i], 7);
+ b = combine_2_weights(bweights, bit0, bit1);
+
+ palette.set_indirect_color(i, rgb_t(r, g, b));
+ }
+
+ for (i = obank;i < (obank+128);i++)
+ {
+ if (m_p_prom[i] & 15)
+ palette.set_pen_indirect(i,(m_p_prom[i] & 15) | ibank);
+ else
+ palette.set_pen_indirect(i, 0); /* preserve transparency */
+ }
+ }
+}
+
+uint32_t pacman_state::screen_update_multipac(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+{
+ if (m_bgpriority != 0)
+ bitmap.fill(0, cliprect);
+ else
+ m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
+
+ if( m_spriteram != NULL )
+ {
+ uint8_t *spriteram = m_spriteram;
+ uint8_t *spriteram_2 = m_spriteram2;
+ int offs;
+
+ rectangle spriteclip(2*8, 34*8-1, 0*8, 28*8-1);
+ spriteclip &= cliprect;
+
+ /* Draw the sprites. Note that it is important to draw them exactly in this */
+ /* order, to have the correct priorities. */
+ for (offs = m_spriteram.bytes() - 2;offs > 2*2;offs -= 2)
+ {
+ int color;
+ int sx,sy;
+ uint8_t fx,fy;
+
+ if(m_inv_spr)
+ {
+ sx = spriteram_2[offs + 1];
+ sy = 240 - (spriteram_2[offs]);
+ }
+ else
+ {
+ sx = 272 - spriteram_2[offs + 1];
+ sy = spriteram_2[offs] - 31;
+ }
+
+ fx = (spriteram[offs] & 1) ^ m_inv_spr;
+ fy = (spriteram[offs] & 2) ^ ((m_inv_spr) << 1);
+
+ color = ( spriteram[offs + 1] & 0x1f ) | (m_colortablebank << 5) | (m_palettebank << 6 );
+
+ m_gfxdecode->gfx(1)->transmask(bitmap,spriteclip,
+ ( spriteram[offs] >> 2 ) | (m_spritebank << 6),
+ color,
+ fx,fy,
+ sx,sy,
+ m_palette->transpen_mask(*m_gfxdecode->gfx(1), color, 0));
+
+ /* also plot the sprite with wraparound (tunnel in Crush Roller) */
+ m_gfxdecode->gfx(1)->transmask(bitmap,spriteclip,
+ ( spriteram[offs] >> 2 ) | (m_spritebank << 6),
+ color,
+ fx,fy,
+ sx - 256,sy,
+ m_palette->transpen_mask(*m_gfxdecode->gfx(1), color, 0));
+ }
+ /* In the Pac Man based games (NOT Pengo) the first two sprites must be offset */
+ /* one pixel to the left to get a more correct placement */
+ for (offs = 2*2;offs >= 0;offs -= 2)
+ {
+ int color;
+ int sx,sy;
+ uint8_t fx,fy;
+
+ if(m_inv_spr)
+ {
+ sx = spriteram_2[offs + 1];
+ sy = 240 - (spriteram_2[offs]);
+ }
+ else
+ {
+ sx = 272 - spriteram_2[offs + 1];
+ sy = spriteram_2[offs] - 31;
+ }
+ color = ( spriteram[offs + 1] & 0x1f ) | (m_colortablebank << 5) | (m_palettebank << 6 );
+
+ fx = (spriteram[offs] & 1) ^ m_inv_spr;
+ fy = (spriteram[offs] & 2) ^ ((m_inv_spr) << 1);
+
+ m_gfxdecode->gfx(1)->transmask(bitmap,spriteclip,
+ ( spriteram[offs] >> 2 ) | (m_spritebank << 6),
+ color,
+ fx,fy,
+ sx,sy,
+ m_palette->transpen_mask(*m_gfxdecode->gfx(1), color, 0));
+
+ /* also plot the sprite with wraparound (tunnel in Crush Roller) */
+ m_gfxdecode->gfx(1)->transmask(bitmap,spriteclip,
+ ( spriteram[offs] >> 2 ) | (m_spritebank << 6),
+ color,
+ fx,fy,
+ sx - 256,sy,
+ m_palette->transpen_mask(*m_gfxdecode->gfx(1), color, 0));
+ }
+ }
+
+ if (m_bgpriority != 0)
+ m_bg_tilemap->draw(screen, bitmap, cliprect, 0,0);
+ return 0;
+}
+
+
+WRITE8_MEMBER( pacman_state::multipac_gfxbank_w )
+{
+ m_charbank = data;
+ m_spritebank = data;
+}
+
+/* multipac passes bankselect info for the 4a and 7f roms on separate bytes. MAME can only use one of them */
+WRITE8_MEMBER( pacman_state::multipac_palbank_w )
+{
+ if (offset) m_colortablebank = data;
+}
+
+
+/* =============================================
+ 96in1 / Mad Pac by Robbbert, July 2007
+ ============================================= */
+
+
+void pacman_state::m96in1b_gfxbank_w ( uint8_t gfxbank )
+{
+ uint8_t banks[] = { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 7, 4, 2, 3, 5, 6, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0 };
+ m_charbank = gfxbank;
+ m_spritebank = gfxbank;
+ m_colortablebank = banks[gfxbank];
+}
+
+void pacman_state::madpac_gfxbank_w ( uint8_t gfxbank )
+{
+ m_charbank = gfxbank;
+ m_spritebank = gfxbank;
+
+ if (gfxbank > 15)
+ m_colortablebank = gfxbank - 15;
+ else
+ m_colortablebank = 0;
+}
diff --git a/docs/release/src/mame/drivers/jrpacman.cpp b/docs/release/src/mame/drivers/jrpacman.cpp
new file mode 100644
index 00000000000..815339e941e
--- /dev/null
+++ b/docs/release/src/mame/drivers/jrpacman.cpp
@@ -0,0 +1,446 @@
+// license:BSD-3-Clause
+// copyright-holders:Nicola Salmoria
+/***************************************************************************
+
+ Bally/Midway Jr. Pac-Man
+
+ Games supported:
+ * Jr. Pac-Man
+
+ Known issues:
+ * none
+
+****************************************************************************
+
+ Jr. Pac Man memory map (preliminary)
+
+ 0000-3fff ROM
+ 4000-47ff Video RAM (also color RAM)
+ 4800-4fff RAM
+ 8000-dfff ROM
+
+ memory mapped ports:
+
+ read:
+ 5000 P1
+ 5040 P2
+ 5080 DSW
+
+ *
+ * IN0 (all bits are inverted)
+ * bit 7 : CREDIT
+ * bit 6 : COIN 2
+ * bit 5 : COIN 1
+ * bit 4 : RACK TEST
+ * bit 3 : DOWN player 1
+ * bit 2 : RIGHT player 1
+ * bit 1 : LEFT player 1
+ * bit 0 : UP player 1
+ *
+ *
+ * IN1 (all bits are inverted)
+ * bit 7 : TABLE or UPRIGHT cabinet select (1 = UPRIGHT)
+ * bit 6 : START 2
+ * bit 5 : START 1
+ * bit 4 : TEST SWITCH
+ * bit 3 : DOWN player 2 (TABLE only)
+ * bit 2 : RIGHT player 2 (TABLE only)
+ * bit 1 : LEFT player 2 (TABLE only)
+ * bit 0 : UP player 2 (TABLE only)
+ *
+ *
+ * DSW1 (all bits are inverted)
+ * bit 7 : ?
+ * bit 6 : difficulty level
+ * 1 = Normal 0 = Harder
+ * bit 5 :\ bonus pac at xx000 pts
+ * bit 4 :/ 00 = 10000 01 = 15000 10 = 20000 11 = 30000
+ * bit 3 :\ nr of lives
+ * bit 2 :/ 00 = 1 01 = 2 10 = 3 11 = 5
+ * bit 1 :\ play mode
+ * bit 0 :/ 00 = free play 01 = 1 coin 1 credit
+ * 10 = 1 coin 2 credits 11 = 2 coins 1 credit
+ *
+
+ write:
+ 4ff2-4ffd 6 pairs of two bytes:
+ the first byte contains the sprite image number (bits 2-7), Y flip (bit 0),
+ X flip (bit 1); the second byte the color
+ 5000 interrupt enable
+ 5001 sound enable
+ 5002 unused
+ 5003 flip screen
+ 5004 unused
+ 5005 unused
+ 5006 unused
+ 5007 coin counter
+ 5040-5044 sound voice 1 accumulator (nibbles) (used by the sound hardware only)
+ 5045 sound voice 1 waveform (nibble)
+ 5046-5049 sound voice 2 accumulator (nibbles) (used by the sound hardware only)
+ 504a sound voice 2 waveform (nibble)
+ 504b-504e sound voice 3 accumulator (nibbles) (used by the sound hardware only)
+ 504f sound voice 3 waveform (nibble)
+ 5050-5054 sound voice 1 frequency (nibbles)
+ 5055 sound voice 1 volume (nibble)
+ 5056-5059 sound voice 2 frequency (nibbles)
+ 505a sound voice 2 volume (nibble)
+ 505b-505e sound voice 3 frequency (nibbles)
+ 505f sound voice 3 volume (nibble)
+ 5062-506d Sprite coordinates, x/y pairs for 6 sprites
+ 5070 palette bank
+ 5071 colortable bank
+ 5073 background priority over sprites
+ 5074 char gfx bank
+ 5075 sprite gfx bank
+ 5080 scroll
+ 50c0 Watchdog reset
+
+ I/O ports:
+ OUT on port $0 sets the interrupt vector
+
+***************************************************************************/
+
+#include "emu.h"
+#include "includes/pacman.h"
+
+#include "cpu/z80/z80.h"
+#include "screen.h"
+#include "speaker.h"
+
+
+class jrpacman_state : public pacman_state
+{
+public:
+ jrpacman_state(const machine_config &mconfig, device_type type, const char *tag)
+ : pacman_state(mconfig, type, tag) { }
+ DECLARE_WRITE8_MEMBER(jrpacman_interrupt_vector_w);
+ DECLARE_WRITE8_MEMBER(irq_mask_w);
+ DECLARE_DRIVER_INIT(jrpacman);
+ INTERRUPT_GEN_MEMBER(vblank_irq);
+};
+
+
+
+WRITE8_MEMBER(jrpacman_state::jrpacman_interrupt_vector_w)
+{
+ m_maincpu->set_input_line_vector(0, data);
+ m_maincpu->set_input_line(0, CLEAR_LINE);
+}
+
+WRITE8_MEMBER(jrpacman_state::irq_mask_w)
+{
+ m_irq_mask = data & 1;
+}
+
+/*************************************
+ *
+ * Main CPU memory handlers
+ *
+ *************************************/
+
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, jrpacman_state )
+ AM_RANGE(0x0000, 0x3fff) AM_ROM
+ AM_RANGE(0x4000, 0x47ff) AM_RAM_WRITE(jrpacman_videoram_w) AM_SHARE("videoram")
+ AM_RANGE(0x4800, 0x4fef) AM_RAM
+ AM_RANGE(0x4ff0, 0x4fff) AM_RAM AM_SHARE("spriteram")
+ AM_RANGE(0x5000, 0x503f) AM_READ_PORT("P1")
+ AM_RANGE(0x5000, 0x5000) AM_WRITE(irq_mask_w)
+ AM_RANGE(0x5001, 0x5001) AM_DEVWRITE("namco", namco_device, pacman_sound_enable_w)
+ AM_RANGE(0x5003, 0x5003) AM_WRITE(pacman_flipscreen_w)
+ AM_RANGE(0x5040, 0x507f) AM_READ_PORT("P2")
+ AM_RANGE(0x5040, 0x505f) AM_DEVWRITE("namco", namco_device, pacman_sound_w)
+ AM_RANGE(0x5060, 0x506f) AM_WRITEONLY AM_SHARE("spriteram2")
+ AM_RANGE(0x5070, 0x5070) AM_WRITE(pengo_palettebank_w)
+ AM_RANGE(0x5071, 0x5071) AM_WRITE(pengo_colortablebank_w)
+ AM_RANGE(0x5073, 0x5073) AM_WRITE(jrpacman_bgpriority_w)
+ AM_RANGE(0x5074, 0x5074) AM_WRITE(jrpacman_charbank_w)
+ AM_RANGE(0x5075, 0x5075) AM_WRITE(jrpacman_spritebank_w)
+ AM_RANGE(0x5080, 0x50bf) AM_READ_PORT("DSW")
+ AM_RANGE(0x5080, 0x5080) AM_WRITE(jrpacman_scroll_w)
+ AM_RANGE(0x50c0, 0x50c0) AM_WRITENOP
+ AM_RANGE(0x8000, 0xdfff) AM_ROM
+// HBMAME extras
+ AM_RANGE(0x5002, 0x5002) AM_WRITENOP
+ AM_RANGE(0x5004, 0x5005) AM_WRITE(pacman_leds_w)
+ AM_RANGE(0x5006, 0x5006) AM_WRITENOP
+ AM_RANGE(0x5007, 0x5007) AM_WRITENOP
+ AM_RANGE(0x5072, 0x5072) AM_WRITENOP
+ AM_RANGE(0x5076, 0x507f) AM_WRITENOP
+ AM_RANGE(0xfffc, 0xffff) AM_RAM /* for jrfast and fastjr */
+ADDRESS_MAP_END
+
+
+static ADDRESS_MAP_START( port_map, AS_IO, 8, jrpacman_state )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
+ AM_RANGE(0, 0) AM_WRITE(jrpacman_interrupt_vector_w)
+ADDRESS_MAP_END
+
+
+
+/*************************************
+ *
+ * Port definitions
+ *
+ *************************************/
+
+static INPUT_PORTS_START( jrpacman )
+ PORT_START("P1")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY
+ /* Press this to instantly finish the level - HBMAME */
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Finish Level (Cheat)") PORT_CODE(KEYCODE_8)
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN3 )
+
+ PORT_START("P2")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL
+ PORT_SERVICE( 0x10, IP_ACTIVE_LOW )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 )
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
+ PORT_DIPNAME( 0x80, 0x80, DEF_STR( Cabinet ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( Upright ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
+
+ PORT_START("DSW")
+ PORT_DIPNAME( 0x03, 0x01, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:1,2")
+ 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:3,4")
+ 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:5,6")
+ PORT_DIPSETTING( 0x00, "10000" )
+ PORT_DIPSETTING( 0x10, "15000" )
+ PORT_DIPSETTING( 0x20, "20000" )
+ PORT_DIPSETTING( 0x30, "30000" )
+ PORT_DIPNAME( 0x40, 0x40, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:7")
+ PORT_DIPSETTING( 0x40, DEF_STR( Normal ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Hard ) )
+ PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:8")
+ PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+
+// HBMAME extras
+ PORT_START ("FAKE")
+ /* This fake input port is used to get the status of the fire button */
+ /* and activate the speedup cheat. */
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME( "Speed (Cheat)" )
+ PORT_DIPNAME( 0x06, 0x02, "Speed Cheat" )
+ PORT_DIPSETTING( 0x00, "Disabled" )
+ PORT_DIPSETTING( 0x02, "Enabled with Button" )
+ PORT_DIPSETTING( 0x04, "Enabled Always" )
+
+ PORT_START ("CONFIG")
+ PORT_CONFNAME( 0x01, 0x01, "Level" )
+ PORT_CONFSETTING( 0x00, DEF_STR( Off ) )
+ PORT_CONFSETTING( 0x01, DEF_STR( On ) )
+INPUT_PORTS_END
+
+
+
+/*************************************
+ *
+ * Graphics layouts
+ *
+ *************************************/
+
+static const gfx_layout tilelayout =
+{
+ 8,8,
+ RGN_FRAC(1,2),
+ 2,
+ { 0, 4 },
+ { STEP4(8*8,1), STEP4(0*8,1) },
+ { STEP8(0*8,8) },
+ 16*8
+};
+
+
+static const gfx_layout spritelayout =
+{
+ 16,16,
+ RGN_FRAC(1,2),
+ 2,
+ { 0, 4 },
+ { STEP4(8*8,1), STEP4(16*8,1), STEP4(24*8,1), STEP4(0*8,1) },
+ { STEP8(0*8,8), STEP8(32*8,8) },
+ 64*8
+};
+
+
+static GFXDECODE_START( jrpacman )
+ GFXDECODE_ENTRY( "gfx1", 0x0000, tilelayout, 0, 128 )
+ GFXDECODE_ENTRY( "gfx1", 0x2000, spritelayout, 0, 128 )
+GFXDECODE_END
+
+
+
+/*************************************
+ *
+ * Machine drivers
+ *
+ *************************************/
+
+INTERRUPT_GEN_MEMBER(jrpacman_state::vblank_irq)
+{
+ if(m_irq_mask)
+ device.execute().set_input_line(0, HOLD_LINE);
+}
+
+static MACHINE_CONFIG_START( jrpacman, jrpacman_state )
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", Z80, 18432000/6) /* 3.072 MHz */
+ MCFG_CPU_PROGRAM_MAP(main_map)
+ MCFG_CPU_IO_MAP(port_map)
+// MCFG_CPU_VBLANK_INT_DRIVER("screen", jrpacman_state, vblank_irq)
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", pacman_state, pacman_interrupt) // HBMAME
+
+ /* video hardware */
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_REFRESH_RATE(60.606060)
+ MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
+ MCFG_SCREEN_SIZE(36*8, 28*8)
+ MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1)
+ MCFG_SCREEN_UPDATE_DRIVER(jrpacman_state, screen_update_pacman)
+ MCFG_SCREEN_PALETTE("palette")
+
+ MCFG_GFXDECODE_ADD("gfxdecode", "palette", jrpacman)
+ MCFG_PALETTE_ADD("palette", 128*4)
+ MCFG_PALETTE_INDIRECT_ENTRIES(32)
+ MCFG_PALETTE_INIT_OWNER(jrpacman_state,pacman)
+ MCFG_VIDEO_START_OVERRIDE(jrpacman_state,jrpacman)
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+
+ MCFG_SOUND_ADD("namco", NAMCO, 3072000/32)
+ MCFG_NAMCO_AUDIO_VOICES(3)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
+MACHINE_CONFIG_END
+
+
+
+/*************************************
+ *
+ * ROM definitions
+ *
+ *************************************/
+
+ROM_START( jrpacman )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) )
+ ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) )
+ ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) )
+ ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) )
+ ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jrp2c.2c", 0x0000, 0x2000, CRC(0527ff9b) SHA1(37fe3176b0d125b7d629e108e7ebdc1196e4a132) ) /* tiles (bank 1 & 2) */
+ ROM_LOAD( "jrp2e.2e", 0x2000, 0x2000, CRC(73477193) SHA1(f00a488958ea0438642d345693787bdf771219ad) ) /* sprites (bank 1 & 2) */
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
+ROM_END
+
+ROM_START( jrpacmanf )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "fast_jr.8d", 0x0000, 0x2000, CRC(461e8b57) SHA1(42e25d384e653efb95a97bd64f55a8c3b3f71239) ) // only 1 byte difference
+ ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) )
+ ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) )
+ ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) )
+ ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jrp2c.2c", 0x0000, 0x2000, CRC(0527ff9b) SHA1(37fe3176b0d125b7d629e108e7ebdc1196e4a132) ) /* tiles (bank 1 & 2) */
+ ROM_LOAD( "jrp2e.2e", 0x2000, 0x2000, CRC(73477193) SHA1(f00a488958ea0438642d345693787bdf771219ad) ) /* sprites (bank 1 & 2) */
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
+ROM_END
+
+
+
+/*************************************
+ *
+ * Driver initialization
+ *
+ *************************************/
+
+DRIVER_INIT_MEMBER(jrpacman_state,jrpacman)
+{
+ /* The encryption PALs garble bits 0, 2 and 7 of the ROMs. The encryption */
+ /* scheme is complex (basically it's a state machine) and can only be */
+ /* faithfully emulated at run time. To avoid the performance hit that would */
+ /* cause, here we have a table of the values which must be XORed with */
+ /* each memory region to obtain the decrypted bytes. */
+ /* Decryption table provided by David Caldwell (david@indigita.com) */
+ /* For an accurate reproduction of the encryption, see jrcrypt.c */
+ static const struct {
+ int count;
+ int value;
+ } table[] =
+ {
+ { 0x00C1, 0x00 },{ 0x0002, 0x80 },{ 0x0004, 0x00 },{ 0x0006, 0x80 },
+ { 0x0003, 0x00 },{ 0x0002, 0x80 },{ 0x0009, 0x00 },{ 0x0004, 0x80 },
+ { 0x9968, 0x00 },{ 0x0001, 0x80 },{ 0x0002, 0x00 },{ 0x0001, 0x80 },
+ { 0x0009, 0x00 },{ 0x0002, 0x80 },{ 0x0009, 0x00 },{ 0x0001, 0x80 },
+ { 0x00AF, 0x00 },{ 0x000E, 0x04 },{ 0x0002, 0x00 },{ 0x0004, 0x04 },
+ { 0x001E, 0x00 },{ 0x0001, 0x80 },{ 0x0002, 0x00 },{ 0x0001, 0x80 },
+ { 0x0002, 0x00 },{ 0x0002, 0x80 },{ 0x0009, 0x00 },{ 0x0002, 0x80 },
+ { 0x0009, 0x00 },{ 0x0002, 0x80 },{ 0x0083, 0x00 },{ 0x0001, 0x04 },
+ { 0x0001, 0x01 },{ 0x0001, 0x00 },{ 0x0002, 0x05 },{ 0x0001, 0x00 },
+ { 0x0003, 0x04 },{ 0x0003, 0x01 },{ 0x0002, 0x00 },{ 0x0001, 0x04 },
+ { 0x0003, 0x01 },{ 0x0003, 0x00 },{ 0x0003, 0x04 },{ 0x0001, 0x01 },
+ { 0x002E, 0x00 },{ 0x0078, 0x01 },{ 0x0001, 0x04 },{ 0x0001, 0x05 },
+ { 0x0001, 0x00 },{ 0x0001, 0x01 },{ 0x0001, 0x04 },{ 0x0002, 0x00 },
+ { 0x0001, 0x01 },{ 0x0001, 0x04 },{ 0x0002, 0x00 },{ 0x0001, 0x01 },
+ { 0x0001, 0x04 },{ 0x0002, 0x00 },{ 0x0001, 0x01 },{ 0x0001, 0x04 },
+ { 0x0001, 0x05 },{ 0x0001, 0x00 },{ 0x0001, 0x01 },{ 0x0001, 0x04 },
+ { 0x0002, 0x00 },{ 0x0001, 0x01 },{ 0x0001, 0x04 },{ 0x0002, 0x00 },
+ { 0x0001, 0x01 },{ 0x0001, 0x04 },{ 0x0001, 0x05 },{ 0x0001, 0x00 },
+ { 0x01B0, 0x01 },{ 0x0001, 0x00 },{ 0x0002, 0x01 },{ 0x00AD, 0x00 },
+ { 0x0031, 0x01 },{ 0x005C, 0x00 },{ 0x0005, 0x01 },{ 0x604E, 0x00 },
+ { 0,0 }
+ };
+
+ uint8_t *RAM = memregion("maincpu")->base();
+ int i, j, A;
+
+ for (i = A = 0; table[i].count; i++)
+ for (j = 0; j < table[i].count; j++)
+ RAM[A++] ^= table[i].value;
+}
+
+
+
+/*************************************
+ *
+ * Game drivers
+ *
+ *************************************/
+
+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/docs/release/src/osd/modules/render/drawd3d.cpp b/docs/release/src/osd/modules/render/drawd3d.cpp
new file mode 100644
index 00000000000..e886695df12
--- /dev/null
+++ b/docs/release/src/osd/modules/render/drawd3d.cpp
@@ -0,0 +1,2749 @@
+// license:BSD-3-Clause
+// copyright-holders:Aaron Giles
+//============================================================
+//
+// drawd3d.cpp - Win32 Direct3D implementation
+//
+//============================================================
+
+// MAME headers
+#include "emu.h"
+#include "render.h"
+
+#include "rendutil.h"
+#include "emuopts.h"
+#include "aviio.h"
+
+// MAMEOS headers
+#include "winmain.h"
+#include "window.h"
+#include "drawd3d.h"
+#include "modules/render/d3d/d3dhlsl.h"
+#include "modules/monitor/monitor_module.h"
+#include <utility>
+
+//============================================================
+// TYPE DEFINITIONS
+//============================================================
+
+typedef IDirect3D9* (WINAPI *d3d9_create_fn)(UINT);
+
+
+//============================================================
+// CONSTANTS
+//============================================================
+
+enum
+{
+ TEXTURE_TYPE_PLAIN,
+ TEXTURE_TYPE_DYNAMIC,
+ TEXTURE_TYPE_SURFACE
+};
+
+
+//============================================================
+// INLINES
+//============================================================
+
+static inline BOOL GetClientRectExceptMenu(HWND hWnd, PRECT pRect, BOOL fullscreen)
+{
+ static HMENU last_menu;
+ static RECT last_rect;
+ static RECT cached_rect;
+ HMENU menu = GetMenu(hWnd);
+ BOOL result = GetClientRect(hWnd, pRect);
+
+ if (!fullscreen || !menu)
+ return result;
+
+ // to avoid flicker use cache if we can use
+ if (last_menu != menu || memcmp(&last_rect, pRect, sizeof *pRect) != 0)
+ {
+ last_menu = menu;
+ last_rect = *pRect;
+
+ SetMenu(hWnd, nullptr);
+ result = GetClientRect(hWnd, &cached_rect);
+ SetMenu(hWnd, menu);
+ }
+
+ *pRect = cached_rect;
+ return result;
+}
+
+
+static inline uint32_t ycc_to_rgb(uint8_t y, uint8_t cb, uint8_t cr)
+{
+ /* original equations:
+
+ C = Y - 16
+ D = Cb - 128
+ E = Cr - 128
+
+ R = clip(( 298 * C + 409 * E + 128) >> 8)
+ G = clip(( 298 * C - 100 * D - 208 * E + 128) >> 8)
+ B = clip(( 298 * C + 516 * D + 128) >> 8)
+
+ R = clip(( 298 * (Y - 16) + 409 * (Cr - 128) + 128) >> 8)
+ G = clip(( 298 * (Y - 16) - 100 * (Cb - 128) - 208 * (Cr - 128) + 128) >> 8)
+ B = clip(( 298 * (Y - 16) + 516 * (Cb - 128) + 128) >> 8)
+
+ R = clip(( 298 * Y - 298 * 16 + 409 * Cr - 409 * 128 + 128) >> 8)
+ G = clip(( 298 * Y - 298 * 16 - 100 * Cb + 100 * 128 - 208 * Cr + 208 * 128 + 128) >> 8)
+ B = clip(( 298 * Y - 298 * 16 + 516 * Cb - 516 * 128 + 128) >> 8)
+
+ R = clip(( 298 * Y - 298 * 16 + 409 * Cr - 409 * 128 + 128) >> 8)
+ G = clip(( 298 * Y - 298 * 16 - 100 * Cb + 100 * 128 - 208 * Cr + 208 * 128 + 128) >> 8)
+ B = clip(( 298 * Y - 298 * 16 + 516 * Cb - 516 * 128 + 128) >> 8)
+ */
+ int r, g, b, common;
+
+ common = 298 * y - 298 * 16;
+ r = (common + 409 * cr - 409 * 128 + 128) >> 8;
+ g = (common - 100 * cb + 100 * 128 - 208 * cr + 208 * 128 + 128) >> 8;
+ b = (common + 516 * cb - 516 * 128 + 128) >> 8;
+
+ if (r < 0) r = 0;
+ else if (r > 255) r = 255;
+ if (g < 0) g = 0;
+ else if (g > 255) g = 255;
+ if (b < 0) b = 0;
+ else if (b > 255) b = 255;
+
+ return rgb_t(0xff, r, g, b);
+}
+
+
+//============================================================
+// drawd3d_init
+//============================================================
+
+static d3d_base * d3dintf; // FIX ME
+
+
+//============================================================
+// drawd3d_window_init
+//============================================================
+
+int renderer_d3d9::create()
+{
+ if (!initialize())
+ {
+ osd_printf_error("Unable to initialize Direct3D 9\n");
+ return 1;
+ }
+
+ return 0;
+}
+
+void renderer_d3d9::toggle_fsfx()
+{
+ set_toggle(true);
+}
+
+void renderer_d3d9::record()
+{
+ if (m_shaders != nullptr)
+ {
+ m_shaders->record_movie();
+ }
+}
+
+void renderer_d3d9::add_audio_to_recording(const int16_t *buffer, int samples_this_frame)
+{
+ if (m_shaders != nullptr)
+ {
+ m_shaders->record_audio(buffer, samples_this_frame);
+ }
+}
+
+void renderer_d3d9::save()
+{
+ if (m_shaders != nullptr)
+ {
+ m_shaders->save_snapshot();
+ }
+}
+
+
+//============================================================
+// drawd3d_window_get_primitives
+//============================================================
+
+render_primitive_list *renderer_d3d9::get_primitives()
+{
+ RECT client;
+ auto win = try_getwindow();
+ if (win == nullptr)
+ return nullptr;
+
+ GetClientRectExceptMenu(std::static_pointer_cast<win_window_info>(win)->platform_window(), &client, win->fullscreen());
+ if (rect_width(&client) > 0 && rect_height(&client) > 0)
+ {
+ win->target()->set_bounds(rect_width(&client), rect_height(&client), win->pixel_aspect());
+ win->target()->set_max_update_rate((get_refresh() == 0) ? get_origmode().RefreshRate : get_refresh());
+ }
+ if (m_shaders != nullptr)
+ {
+ // do not transform primitives (scale, offset) if shaders are enabled, the shaders will handle the transformation
+ win->target()->set_transform_container(!m_shaders->enabled());
+ }
+ return &win->target()->get_primitives();
+}
+
+
+//============================================================
+// renderer_d3d9::init
+//============================================================
+
+bool renderer_d3d9::init(running_machine &machine)
+{
+ d3dintf = global_alloc(d3d_base);
+
+ d3dintf->d3d9_dll = osd::dynamic_module::open({ "d3d9.dll" });
+
+ d3d9_create_fn d3d9_create_ptr = d3dintf->d3d9_dll->bind<d3d9_create_fn>("Direct3DCreate9");
+ if (d3d9_create_ptr == nullptr)
+ {
+ osd_printf_verbose("Direct3D: Unable to find Direct3D 9 runtime library\n");
+ return true;
+ }
+
+ d3dintf->d3dobj = (*d3d9_create_ptr)(D3D_SDK_VERSION);
+ if (d3dintf->d3dobj == nullptr)
+ {
+ osd_printf_verbose("Direct3D: Unable to initialize Direct3D 9\n");
+ return true;
+ }
+
+ osd_printf_verbose("Direct3D: Using Direct3D 9\n");
+
+ return false;
+}
+
+
+//============================================================
+// drawd3d_window_draw
+//============================================================
+
+int renderer_d3d9::draw(const int update)
+{
+ int check = pre_window_draw_check();
+ if (check >= 0)
+ return check;
+
+ begin_frame();
+ process_primitives();
+ end_frame();
+
+ return 0;
+}
+
+void renderer_d3d9::set_texture(texture_info *texture)
+{
+ if (texture != m_last_texture)
+ {
+ m_last_texture = texture;
+ m_last_texture_flags = (texture == nullptr ? 0 : texture->get_flags());
+ HRESULT result = m_device->SetTexture(0, (texture == nullptr) ? get_default_texture()->get_finaltex() : texture->get_finaltex());
+ m_shaders->set_texture(texture);
+ if (FAILED(result))
+ osd_printf_verbose("Direct3D: Error %08lX during device set_texture call\n", result);
+ }
+}
+
+void renderer_d3d9::set_filter(int filter)
+{
+ if (filter != m_last_filter)
+ {
+ m_last_filter = filter;
+ HRESULT result = m_device->SetSamplerState(0, D3DSAMP_MINFILTER, filter ? D3DTEXF_LINEAR : D3DTEXF_POINT);
+ if (FAILED(result))
+ osd_printf_verbose("Direct3D: Error %08lX during device SetSamplerState call\n", result);
+ result = m_device->SetSamplerState(0, D3DSAMP_MAGFILTER, filter ? D3DTEXF_LINEAR : D3DTEXF_POINT);
+ if (FAILED(result))
+ osd_printf_verbose("Direct3D: Error %08lX during device SetSamplerState call\n", result);
+ result = m_device->SetSamplerState(1, D3DSAMP_MINFILTER, filter ? D3DTEXF_LINEAR : D3DTEXF_POINT);
+ if (FAILED(result))
+ osd_printf_verbose("Direct3D: Error %08lX during device SetSamplerState call\n", result);
+ result = m_device->SetSamplerState(1, D3DSAMP_MAGFILTER, filter ? D3DTEXF_LINEAR : D3DTEXF_POINT);
+ if (FAILED(result))
+ osd_printf_verbose("Direct3D: Error %08lX during device SetSamplerState call\n", result);
+ }
+}
+
+void renderer_d3d9::set_wrap(unsigned int wrap)
+{
+ if (wrap != m_last_wrap)
+ {
+ m_last_wrap = wrap;
+ HRESULT result = m_device->SetSamplerState(0, D3DSAMP_ADDRESSU, wrap);
+ if (FAILED(result))
+ osd_printf_verbose("Direct3D: Error %08lX during device SetSamplerState call\n", result);
+ result = m_device->SetSamplerState(0, D3DSAMP_ADDRESSV, wrap);
+ if (FAILED(result))
+ osd_printf_verbose("Direct3D: Error %08lX during device SetSamplerState call\n", result);
+ result = m_device->SetSamplerState(1, D3DSAMP_ADDRESSU, wrap);
+ if (FAILED(result))
+ osd_printf_verbose("Direct3D: Error %08lX during device SetSamplerState call\n", result);
+ result = m_device->SetSamplerState(1, D3DSAMP_ADDRESSV, wrap);
+ if (FAILED(result))
+ osd_printf_verbose("Direct3D: Error %08lX during device SetSamplerState call\n", result);
+ }
+}
+
+void renderer_d3d9::set_modmode(int modmode)
+{
+ if (modmode != m_last_modmode)
+ {
+ m_last_modmode = modmode;
+ HRESULT result = m_device->SetTextureStageState(0, D3DTSS_COLOROP, modmode);
+ if (FAILED(result))
+ osd_printf_verbose("Direct3D: Error %08lX during device SetTextureStageState call\n", result);
+ result = m_device->SetTextureStageState(1, D3DTSS_COLOROP, modmode);
+ if (FAILED(result))
+ osd_printf_verbose("Direct3D: Error %08lX during device SetTextureStageState call\n", result);
+ }
+}
+
+void renderer_d3d9::set_blendmode(int blendmode)
+{
+ int blendenable;
+ int blendop;
+ int blendsrc;
+ int blenddst;
+
+ // choose the parameters
+ switch (blendmode)
+ {
+ default:
+ case BLENDMODE_NONE:
+ blendenable = FALSE;
+ blendop = D3DBLENDOP_ADD;
+ blendsrc = D3DBLEND_SRCALPHA;
+ blenddst = D3DBLEND_INVSRCALPHA;
+ break;
+ case BLENDMODE_ALPHA:
+ blendenable = TRUE;
+ blendop = D3DBLENDOP_ADD;
+ blendsrc = D3DBLEND_SRCALPHA;
+ blenddst = D3DBLEND_INVSRCALPHA;
+ break;
+ case BLENDMODE_RGB_MULTIPLY:
+ blendenable = TRUE;
+ blendop = D3DBLENDOP_ADD;
+ blendsrc = D3DBLEND_DESTCOLOR;
+ blenddst = D3DBLEND_ZERO;
+ break;
+ case BLENDMODE_ADD:
+ blendenable = TRUE;
+ blendop = D3DBLENDOP_ADD;
+ blendsrc = D3DBLEND_SRCALPHA;
+ blenddst = D3DBLEND_ONE;
+ break;
+ }
+
+ // adjust the bits that changed
+ if (blendenable != m_last_blendenable)
+ {
+ m_last_blendenable = blendenable;
+ HRESULT result = m_device->SetRenderState(D3DRS_ALPHABLENDENABLE, blendenable);
+ if (FAILED(result))
+ osd_printf_verbose("Direct3D: Error %08lX during device SetRenderState call\n", result);
+ }
+
+ if (blendop != m_last_blendop)
+ {
+ m_last_blendop = blendop;
+ HRESULT result = m_device->SetRenderState(D3DRS_BLENDOP, blendop);
+ if (FAILED(result))
+ osd_printf_verbose("Direct3D: Error %08lX during device SetRenderState call\n", result);
+ }
+
+ if (blendsrc != m_last_blendsrc)
+ {
+ m_last_blendsrc = blendsrc;
+ HRESULT result = m_device->SetRenderState(D3DRS_SRCBLEND, blendsrc);
+ if (FAILED(result))
+ osd_printf_verbose("Direct3D: Error %08lX during device SetRenderState call\n", result);
+ }
+
+ if (blenddst != m_last_blenddst)
+ {
+ m_last_blenddst = blenddst;
+ HRESULT result = m_device->SetRenderState(D3DRS_DESTBLEND, blenddst);
+ if (FAILED(result))
+ osd_printf_verbose("Direct3D: Error %08lX during device SetRenderState call\n", result);
+ }
+}
+
+void renderer_d3d9::reset_render_states()
+{
+ // this ensures subsequent calls to the above setters will force-update the data
+ m_last_texture = (texture_info *)~0;
+ m_last_filter = -1;
+ m_last_blendenable = -1;
+ m_last_blendop = -1;
+ m_last_blendsrc = -1;
+ m_last_blenddst = -1;
+ m_last_wrap = (D3DTEXTUREADDRESS)-1;
+}
+
+d3d_texture_manager::d3d_texture_manager(renderer_d3d9 *d3d)
+{
+ m_renderer = d3d;
+
+ m_default_texture = nullptr;
+
+ D3DCAPS9 caps;
+ HRESULT result = d3dintf->d3dobj->GetDeviceCaps(d3d->get_adapter(), D3DDEVTYPE_HAL, &caps);
+ if (FAILED(result))
+ osd_printf_verbose("Direct3D: Error %08lX during GetDeviceCaps call\n", result);
+
+ // check for dynamic texture support
+ m_dynamic_supported = ((caps.Caps2 & D3DCAPS2_DYNAMICTEXTURES) != 0);
+ if (m_dynamic_supported)
+ osd_printf_verbose("Direct3D: Using dynamic textures\n");
+
+ // check for stretchrect support
+ m_stretch_supported = ((caps.StretchRectFilterCaps & D3DPTFILTERCAPS_MAGFPOINT) != 0);
+ if (m_stretch_supported && video_config.prescale > 1)
+ osd_printf_verbose("Direct3D: Using StretchRect for prescaling\n");
+
+ // get texture caps
+ m_texture_caps = caps.TextureCaps;
+ m_texture_max_aspect = caps.MaxTextureAspectRatio;
+ m_texture_max_width = caps.MaxTextureWidth;
+ m_texture_max_height = caps.MaxTextureHeight;
+
+ // pick a YUV texture format
+ m_yuv_format = D3DFMT_UYVY;
+ result = d3dintf->d3dobj->CheckDeviceFormat(d3d->get_adapter(), D3DDEVTYPE_HAL, d3d->get_pixel_format(), 0, D3DRTYPE_TEXTURE, D3DFMT_UYVY);
+ if (FAILED(result))
+ {
+ m_yuv_format = D3DFMT_YUY2;
+ result = d3dintf->d3dobj->CheckDeviceFormat(d3d->get_adapter(), D3DDEVTYPE_HAL, d3d->get_pixel_format(), 0, D3DRTYPE_TEXTURE, D3DFMT_YUY2);
+ if (FAILED(result))
+ m_yuv_format = D3DFMT_A8R8G8B8;
+ }
+ osd_printf_verbose("Direct3D: YUV format = %s\n", (m_yuv_format == D3DFMT_YUY2) ? "YUY2" : (m_yuv_format == D3DFMT_UYVY) ? "UYVY" : "RGB");
+
+ auto win = d3d->assert_window();
+
+ // set the max texture size
+ win->target()->set_max_texture_size(m_texture_max_width, m_texture_max_height);
+ osd_printf_verbose("Direct3D: Max texture size = %dx%d\n", (int)m_texture_max_width, (int)m_texture_max_height);
+}
+
+void d3d_texture_manager::create_resources()
+{
+ auto win = m_renderer->assert_window();
+
+ m_default_bitmap.allocate(8, 8);
+ m_default_bitmap.fill(rgb_t(0xff,0xff,0xff,0xff));
+
+ if (m_default_bitmap.valid())
+ {
+ render_texinfo texture;
+
+ // fake in the basic data so it looks like it came from render.c
+ texture.base = m_default_bitmap.raw_pixptr(0);
+ texture.rowpixels = m_default_bitmap.rowpixels();
+ texture.width = m_default_bitmap.width();
+ texture.height = m_default_bitmap.height();
+ texture.palette = nullptr;
+ texture.seqid = 0;
+ texture.osddata = 0;
+
+ // now create it
+ auto tex = std::make_unique<texture_info>(this, &texture, win->prescale(), PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA) | PRIMFLAG_TEXFORMAT(TEXFORMAT_ARGB32));
+ m_default_texture = tex.get();
+ m_texture_list.push_back(std::move(tex));
+ }
+}
+
+void d3d_texture_manager::delete_resources()
+{
+ // is part of m_texlist and will be free'd there
+ //global_free(m_default_texture);
+ m_default_texture = nullptr;
+
+ // free all textures
+ m_texture_list.clear();
+}
+
+uint32_t d3d_texture_manager::texture_compute_hash(const render_texinfo *texture, uint32_t flags)
+{
+ return (uintptr_t)texture->base ^ (flags & (PRIMFLAG_BLENDMODE_MASK | PRIMFLAG_TEXFORMAT_MASK));
+}
+
+texture_info *d3d_texture_manager::find_texinfo(const render_texinfo *texinfo, uint32_t flags)
+{
+ uint32_t hash = texture_compute_hash(texinfo, flags);
+
+ // find a match
+ for (auto it = m_texture_list.begin(); it != m_texture_list.end(); it++)
+ {
+ uint32_t test_screen = (uint32_t)(*it)->get_texinfo().osddata >> 1;
+ uint32_t test_page = (uint32_t)(*it)->get_texinfo().osddata & 1;
+ uint32_t prim_screen = (uint32_t)texinfo->osddata >> 1;
+ uint32_t prim_page = (uint32_t)texinfo->osddata & 1;
+ if (test_screen != prim_screen || test_page != prim_page)
+ continue;
+
+ if ((*it)->get_hash() == hash &&
+ (*it)->get_texinfo().base == texinfo->base &&
+ (*it)->get_texinfo().width == texinfo->width &&
+ (*it)->get_texinfo().height == texinfo->height &&
+ (((*it)->get_flags() ^ flags) & (PRIMFLAG_BLENDMODE_MASK | PRIMFLAG_TEXFORMAT_MASK)) == 0)
+ {
+ return (*it).get();
+ }
+ }
+
+ return nullptr;
+}
+
+renderer_d3d9::renderer_d3d9(std::shared_ptr<osd_window> window)
+ : osd_renderer(window, FLAG_NONE), m_adapter(0), m_width(0), m_height(0), m_refresh(0), m_create_error_count(0), m_device(nullptr), m_gamma_supported(0), m_pixformat(),
+ m_vertexbuf(nullptr), m_lockedbuf(nullptr), m_numverts(0), m_vectorbatch(nullptr), m_batchindex(0), m_numpolys(0), m_toggle(false),
+ m_screen_format(), m_last_texture(nullptr), m_last_texture_flags(0), m_last_blendenable(0), m_last_blendop(0), m_last_blendsrc(0), m_last_blenddst(0), m_last_filter(0),
+ m_last_wrap(), m_last_modmode(0), m_shaders(nullptr), m_texture_manager(nullptr)
+{
+}
+
+int renderer_d3d9::initialize()
+{
+ osd_printf_verbose("Direct3D: Initialize\n");
+
+ // configure the adapter for the mode we want
+ if (config_adapter_mode())
+ {
+ return false;
+ }
+
+ // create the device immediately for the full screen case (defer for window mode in update_window_size())
+ auto win = assert_window();
+ if (win->fullscreen() && device_create(std::static_pointer_cast<win_window_info>(win->main_window())->platform_window()))
+ {
+ return false;
+ }
+
+ return true;
+}
+
+int renderer_d3d9::pre_window_draw_check()
+{
+ auto win = assert_window();
+
+ // if we're in the middle of resizing, leave things alone
+ if (win->m_resize_state == RESIZE_STATE_RESIZING)
+ return 0;
+
+ // check if shaders should be toggled
+ if (m_toggle)
+ {
+ m_toggle = false;
+
+ // free resources
+ device_delete_resources();
+
+ m_shaders->toggle();
+ m_sliders_dirty = true;
+
+ // re-create resources
+ if (device_create_resources())
+ {
+ osd_printf_verbose("Direct3D: failed to recreate resources for device; failing permanently\n");
+ device_delete();
+ return 1;
+ }
+ }
+
+ // if we have a device, check the cooperative level
+ if (m_device != nullptr)
+ {
+ if (device_test_cooperative())
+ {
+ return 1;
+ }
+ }
+
+ // in window mode, we need to track the window size
+ if (!win->fullscreen() || m_device == nullptr)
+ {
+ // if the size changes, skip this update since the render target will be out of date
+ if (update_window_size())
+ return 0;
+
+ // if we have no device, after updating the size, return an error so GDI can try
+ if (m_device == nullptr)
+ return 1;
+ }
+
+ return -1;
+}
+
+void d3d_texture_manager::update_textures()
+{
+ auto win = m_renderer->assert_window();
+
+ for (render_primitive &prim : *win->m_primlist)
+ {
+ if (prim.texture.base != nullptr)
+ {
+ texture_info *texture = find_texinfo(&prim.texture, prim.flags);
+ if (texture == nullptr)
+ {
+ int prescale = m_renderer->get_shaders()->enabled() ? 1 : win->prescale();
+
+ auto tex = std::make_unique<texture_info>(this, &prim.texture, prescale, prim.flags);
+ texture = tex.get();
+ m_texture_list.push_back(std::move(tex));
+ }
+ else
+ {
+ // if there is one, but with a different seqid, copy the data
+ if (texture->get_texinfo().seqid != prim.texture.seqid)
+ {
+ texture->set_data(&prim.texture, prim.flags);
+ texture->get_texinfo().seqid = prim.texture.seqid;
+ }
+ }
+ }
+ }
+
+ if (!m_renderer->get_shaders()->enabled())
+ {
+ return;
+ }
+
+ int screen_index = 0;
+ for (render_primitive &prim : *win->m_primlist)
+ {
+ if (PRIMFLAG_GET_SCREENTEX(prim.flags))
+ {
+ if (!m_renderer->get_shaders()->get_texture_target(&prim, prim.texture.width, prim.texture.height, screen_index))
+ {
+ if (!m_renderer->get_shaders()->create_texture_target(&prim, prim.texture.width, prim.texture.height, screen_index))
+ {
+ d3dintf->post_fx_available = false;
+ break;
+ }
+ }
+ screen_index++;
+ }
+ else if (PRIMFLAG_GET_VECTORBUF(prim.flags))
+ {
+ if (!m_renderer->get_shaders()->get_vector_target(&prim, screen_index))
+ {
+ if (!m_renderer->get_shaders()->create_vector_target(&prim, screen_index))
+ {
+ d3dintf->post_fx_available = false;
+ break;
+ }
+ }
+ screen_index++;
+ }
+ }
+}
+
+void renderer_d3d9::begin_frame()
+{
+ auto win = assert_window();
+
+ HRESULT result = m_device->Clear(0, nullptr, D3DCLEAR_TARGET, D3DCOLOR_ARGB(0,0,0,0), 0, 0);
+ if (FAILED(result))
+ osd_printf_verbose("Direct3D: Error %08lX during device clear call\n", result);
+
+ win->m_primlist->acquire_lock();
+
+ // first update any textures
+ m_texture_manager->update_textures();
+
+ // begin the scene
+ result = m_device->BeginScene();
+ if (FAILED(result))
+ osd_printf_verbose("Direct3D: Error %08lX during device BeginScene call\n", result);
+
+ if (m_shaders->enabled())
+ m_shaders->init_fsfx_quad();
+}
+
+void renderer_d3d9::process_primitives()
+{
+ auto win = assert_window();
+
+ // loop over line primitives
+ int vector_count = 0;
+ for (render_primitive &prim : *win->m_primlist)
+ {
+ if (prim.type == render_primitive::LINE && PRIMFLAG_GET_VECTOR(prim.flags))
+ {
+ vector_count++;
+ }
+ }
+
+ // Rotating index for vector time offsets
+ for (render_primitive &prim : *win->m_primlist)
+ {
+ switch (prim.type)
+ {
+ case render_primitive::LINE:
+ if (PRIMFLAG_GET_VECTOR(prim.flags))
+ {
+ if (vector_count > 0)
+ {
+ batch_vectors(vector_count);
+ vector_count = 0;
+ }
+ }
+ else
+ {
+ draw_line(prim);
+ }
+ break;
+
+ case render_primitive::QUAD:
+ draw_quad(prim);
+ break;
+
+ default:
+ throw emu_fatalerror("Unexpected render_primitive type");
+ }
+ }
+}
+
+void renderer_d3d9::end_frame()
+{
+ auto win = assert_window();
+
+ win->m_primlist->release_lock();
+
+ // flush any pending polygons
+ primitive_flush_pending();
+
+ // finish the scene
+ HRESULT result = m_device->EndScene();
+ if (FAILED(result))
+ osd_printf_verbose("Direct3D: Error %08lX during device end_scene call\n", result);
+
+ // present the current buffers
+ result = m_device->Present(nullptr, nullptr, nullptr, nullptr);
+ if (FAILED(result))
+ osd_printf_verbose("Direct3D: Error %08lX during device present call\n", result);
+}
+
+void renderer_d3d9::update_presentation_parameters()
+{
+ auto win = assert_window();
+
+ memset(&m_presentation, 0, sizeof(m_presentation));
+ m_presentation.BackBufferWidth = m_width;
+ m_presentation.BackBufferHeight = m_height;
+ m_presentation.BackBufferFormat = m_pixformat;
+ m_presentation.BackBufferCount = video_config.triplebuf ? 2 : 1;
+ m_presentation.MultiSampleType = D3DMULTISAMPLE_NONE;
+ m_presentation.SwapEffect = D3DSWAPEFFECT_DISCARD;
+ m_presentation.hDeviceWindow = std::static_pointer_cast<win_window_info>(win)->platform_window();
+ m_presentation.Windowed = !win->fullscreen() || win->win_has_menu();
+ m_presentation.EnableAutoDepthStencil = FALSE;
+ m_presentation.AutoDepthStencilFormat = D3DFMT_D16;
+ m_presentation.Flags = 0;
+ m_presentation.FullScreen_RefreshRateInHz = m_refresh;
+ m_presentation.PresentationInterval = (
+ (video_config.triplebuf && win->fullscreen())
+ || video_config.waitvsync
+ || video_config.syncrefresh)
+ ? D3DPRESENT_INTERVAL_ONE
+ : D3DPRESENT_INTERVAL_IMMEDIATE;
+}
+
+
+void renderer_d3d9::update_gamma_ramp()
+{
+ if (m_gamma_supported)
+ {
+ return;
+ }
+
+ auto win = assert_window();
+
+ // create a standard ramp
+ D3DGAMMARAMP ramp;
+
+ // set the gamma if we need to
+ if (win->fullscreen())
+ {
+ // only set the gamma if it's not 1.0
+ windows_options &options = downcast<windows_options &>(win->machine().options());
+ float brightness = options.full_screen_brightness();
+ float contrast = options.full_screen_contrast();
+ float gamma = options.full_screen_gamma();
+ if (brightness != 1.0f || contrast != 1.0f || gamma != 1.0f)
+ {
+ for (int i = 0; i < 256; i++)
+ {
+ ramp.red[i] = ramp.green[i] = ramp.blue[i] = apply_brightness_contrast_gamma(i, brightness, contrast, gamma) << 8;
+ }
+ }
+ }
+
+ m_device->SetGammaRamp(0, 0, &ramp);
+}
+
+
+//============================================================
+// device_create
+//============================================================
+
+int renderer_d3d9::device_create(HWND device_hwnd)
+{
+ // if a device exists, free it
+ if (m_device != nullptr)
+ {
+ device_delete();
+ }
+
+ // verify the caps
+ if (!device_verify_caps())
+ {
+ return 1;
+ }
+
+ m_texture_manager = global_alloc(d3d_texture_manager(this));
+
+try_again:
+ // try for XRGB first
+ m_screen_format = D3DFMT_X8R8G8B8;
+ HRESULT result = d3dintf->d3dobj->CheckDeviceFormat(m_adapter, D3DDEVTYPE_HAL, m_pixformat,
+ m_texture_manager->is_dynamic_supported()
+ ? D3DUSAGE_DYNAMIC
+ : 0,
+ D3DRTYPE_TEXTURE, m_screen_format);
+ if (FAILED(result))
+ {
+ // if not, try for ARGB
+ m_screen_format = D3DFMT_A8R8G8B8;
+ result = d3dintf->d3dobj->CheckDeviceFormat(m_adapter, D3DDEVTYPE_HAL, m_pixformat,
+ m_texture_manager->is_dynamic_supported()
+ ? D3DUSAGE_DYNAMIC
+ : 0,
+ D3DRTYPE_TEXTURE, m_screen_format);
+ if (FAILED(result) && m_texture_manager->is_dynamic_supported())
+ {
+ m_texture_manager->set_dynamic_supported(false);
+ goto try_again;
+ }
+ if (FAILED(result))
+ {
+ osd_printf_error("Error: unable to configure a screen texture format\n");
+ return 1;
+ }
+ }
+
+ // initialize the D3D presentation parameters
+ update_presentation_parameters();
+
+ // create the D3D device
+ result = d3dintf->d3dobj->CreateDevice(
+ m_adapter, D3DDEVTYPE_HAL, device_hwnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING | D3DCREATE_FPU_PRESERVE, &m_presentation, &m_device);
+ if (FAILED(result))
+ {
+ // if we got a "DEVICELOST" error, it may be transitory; count it and only fail if
+ // we exceed a threshold
+ if (result == D3DERR_DEVICELOST)
+ {
+ m_create_error_count++;
+ if (m_create_error_count < 10)
+ {
+ return 0;
+ }
+ }
+
+ // fatal error if we just can't do it
+ osd_printf_error("Unable to create the Direct3D device (%08X)\n", (uint32_t)result);
+ return 1;
+ }
+ m_create_error_count = 0;
+ osd_printf_verbose("Direct3D: Device created at %dx%d\n", m_width, m_height);
+
+ update_gamma_ramp();
+
+ return device_create_resources();
+}
+
+
+//============================================================
+// device_create_resources
+//============================================================
+
+int renderer_d3d9::device_create_resources()
+{
+ auto win = assert_window();
+
+ // create shaders only once
+ if (m_shaders == nullptr)
+ {
+ m_shaders = (shaders*)global_alloc_clear<shaders>();
+ }
+
+ if (m_shaders->init(d3dintf, &win->machine(), this))
+ {
+ m_shaders->init_slider_list();
+ m_sliders_dirty = true;
+ }
+
+ // create resources
+ if (m_shaders->create_resources())
+ {
+ osd_printf_verbose("Direct3D: failed to create HLSL resources for device\n");
+ return 1;
+ }
+
+ // allocate a vertex buffer to use
+ HRESULT result = m_device->CreateVertexBuffer(
+ sizeof(vertex) * VERTEX_BUFFER_SIZE,
+ D3DUSAGE_DYNAMIC | D3DUSAGE_SOFTWAREPROCESSING | D3DUSAGE_WRITEONLY,
+ VERTEX_BASE_FORMAT | ((m_shaders->enabled())
+ ? D3DFVF_XYZW
+ : D3DFVF_XYZRHW),
+ D3DPOOL_DEFAULT, &m_vertexbuf, nullptr);
+ if (FAILED(result))
+ {
+ osd_printf_error("Error creating vertex buffer (%08X)\n", (uint32_t)result);
+ return 1;
+ }
+
+ // set the vertex format
+ result = m_device->SetFVF(
+ (D3DFORMAT)(VERTEX_BASE_FORMAT | ((m_shaders->enabled())
+ ? D3DFVF_XYZW
+ : D3DFVF_XYZRHW)));
+ if (FAILED(result))
+ {
+ osd_printf_error("Error setting vertex format (%08X)\n", (uint32_t)result);
+ return 1;
+ }
+
+ // set the fixed render state
+ result = m_device->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
+ result = m_device->SetRenderState(D3DRS_FILLMODE, D3DFILL_SOLID);
+ result = m_device->SetRenderState(D3DRS_SHADEMODE, D3DSHADE_FLAT);
+ result = m_device->SetRenderState(D3DRS_ZWRITEENABLE, FALSE);
+ result = m_device->SetRenderState(D3DRS_ALPHATESTENABLE, TRUE);
+ result = m_device->SetRenderState(D3DRS_LASTPIXEL, TRUE);
+ result = m_device->SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE);
+ result = m_device->SetRenderState(D3DRS_ZFUNC, D3DCMP_LESS);
+ result = m_device->SetRenderState(D3DRS_ALPHAREF, 0);
+ result = m_device->SetRenderState(D3DRS_ALPHAFUNC, D3DCMP_GREATER);
+ result = m_device->SetRenderState(D3DRS_DITHERENABLE, FALSE);
+ result = m_device->SetRenderState(D3DRS_FOGENABLE, FALSE);
+ result = m_device->SetRenderState(D3DRS_SPECULARENABLE, FALSE);
+ result = m_device->SetRenderState(D3DRS_STENCILENABLE, FALSE);
+ result = m_device->SetRenderState(D3DRS_WRAP0, FALSE);
+ result = m_device->SetRenderState(D3DRS_CLIPPING, TRUE);
+ result = m_device->SetRenderState(D3DRS_LIGHTING, FALSE);
+ result = m_device->SetRenderState(D3DRS_COLORVERTEX, TRUE);
+
+ result = m_device->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_MODULATE);
+ result = m_device->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_MODULATE);
+ result = m_device->SetTextureStageState(1, D3DTSS_COLOROP, D3DTOP_MODULATE);
+ result = m_device->SetTextureStageState(1, D3DTSS_ALPHAOP, D3DTOP_MODULATE);
+
+ // reset the local states to force updates
+ reset_render_states();
+
+ // clear the buffer
+ result = m_device->Clear(0, nullptr, D3DCLEAR_TARGET, D3DCOLOR_ARGB(0,0,0,0), 0, 0);
+ result = m_device->Present(nullptr, nullptr, nullptr, nullptr);
+
+ m_texture_manager->create_resources();
+
+ return 0;
+}
+
+
+//============================================================
+// device_delete
+//============================================================
+
+renderer_d3d9::~renderer_d3d9()
+{
+ device_delete();
+
+ // todo: throws error when switching from full screen to window mode
+ //if (m_shaders != nullptr)
+ //{
+ // // delete the HLSL interface
+ // global_free(m_shaders);
+ // m_shaders = nullptr;
+ //}
+}
+
+void renderer_d3d9::exit()
+{
+ if (d3dintf != nullptr)
+ {
+ d3dintf->d3dobj->Release();
+ global_free(d3dintf);
+ }
+}
+
+void renderer_d3d9::device_delete()
+{
+ // free our base resources
+ device_delete_resources();
+
+ // we do not delete the HLSL interface here
+
+ if (m_texture_manager != nullptr)
+ {
+ global_free(m_texture_manager);
+ m_texture_manager = nullptr;
+ }
+
+ // free the device itself
+ if (m_device != nullptr)
+ {
+ m_device->Release();
+ m_device = nullptr;
+ }
+}
+
+
+//============================================================
+// device_delete_resources
+//============================================================
+
+void renderer_d3d9::device_delete_resources()
+{
+ if (m_shaders != nullptr)
+ {
+ m_shaders->delete_resources();
+ }
+
+ if (m_texture_manager != nullptr)
+ {
+ m_texture_manager->delete_resources();
+ }
+
+ // free the vertex buffer
+ if (m_vertexbuf != nullptr)
+ {
+ m_vertexbuf->Release();
+ m_vertexbuf = nullptr;
+ }
+}
+
+
+//============================================================
+// device_verify_caps
+//============================================================
+
+bool renderer_d3d9::device_verify_caps()
+{
+ bool success = true;
+
+ D3DCAPS9 caps;
+ HRESULT result = d3dintf->d3dobj->GetDeviceCaps(m_adapter, D3DDEVTYPE_HAL, &caps);
+ if (FAILED(result))
+ {
+ osd_printf_verbose("Direct3D: Error %08lX during GetDeviceCaps call\n", result);
+ return false;
+ }
+
+ if (caps.MaxPixelShader30InstructionSlots < 512)
+ {
+ osd_printf_verbose("Direct3D: Warning - Device does not support Pixel Shader 3.0, falling back to non-PS rendering\n");
+ d3dintf->post_fx_available = false;
+ }
+
+ // verify presentation capabilities
+ if (!(caps.PresentationIntervals & D3DPRESENT_INTERVAL_IMMEDIATE))
+ {
+ osd_printf_verbose("Direct3D Error: Your graphics card does not support immediate presentation.\n");
+ success = false;
+ }
+ if (!(caps.PresentationIntervals & D3DPRESENT_INTERVAL_ONE))
+ {
+ osd_printf_verbose("Direct3D Error: Your graphics card does not support per-refresh presentation.\n");
+ success = false;
+ }
+
+ // verify device capabilities
+ if (!(caps.DevCaps & D3DDEVCAPS_CANRENDERAFTERFLIP))
+ {
+ osd_printf_error("Direct3D Error: Your graphics card does not support rendering after a page\n");
+ osd_printf_error("flip.\n");
+ success = false;
+ }
+
+ if (!(caps.DevCaps & D3DDEVCAPS_HWRASTERIZATION))
+ {
+ osd_printf_error("Direct3D Error: Your graphics card does not support hardware rendering.\n");
+ success = false;
+ }
+
+ // verify texture operation capabilities
+ if (!(caps.TextureOpCaps & D3DTEXOPCAPS_MODULATE))
+ {
+ osd_printf_error("Direct3D Error: Your graphics card does not support modulate-type blending.\n");
+ success = false;
+ }
+#if 0
+ if (caps.TextureCaps & D3DPTEXTURECAPS_NONPOW2CONDITIONAL)
+ {
+ osd_printf_error("Direct3D Error: Your graphics card does not fully support non-power-of-two\n");
+ osd_printf_error("textures.\n");
+ success = false;
+ }
+
+ if (caps.TextureCaps & D3DPTEXTURECAPS_POW2)
+ {
+ osd_printf_error("Direct3D Error: Your graphics card does not support non-power-of-two textures.\n");
+ success = false;
+ }
+#endif
+ if (caps.TextureCaps & D3DPTEXTURECAPS_SQUAREONLY)
+ {
+ osd_printf_error("Direct3D Error: Your graphics card does not support non-square textures.\n");
+ success = false;
+ }
+
+ // verify texture formats
+ result = d3dintf->d3dobj->CheckDeviceFormat(m_adapter, D3DDEVTYPE_HAL, m_pixformat, 0, D3DRTYPE_TEXTURE, D3DFMT_A8R8G8B8);
+ if (FAILED(result))
+ {
+ osd_printf_error("Direct3D Error: Your graphics card does not support the A8R8G8B8 texture format.\n");
+ success = false;
+ }
+
+ if (!success)
+ {
+ osd_printf_error("This feature or features are required to use the Direct3D renderer. Please\n");
+ osd_printf_error("select another renderer using the -video option or contact the MAME developers\n");
+ osd_printf_error("with information about your system.\n");
+ return false;
+ }
+
+ m_gamma_supported = ((caps.Caps2 & D3DCAPS2_FULLSCREENGAMMA) != 0);
+ if (!m_gamma_supported)
+ {
+ osd_printf_warning("Direct3D: Warning - device does not support full screen gamma correction.\n");
+ }
+
+ return true;
+}
+
+
+//============================================================
+// device_test_cooperative
+//============================================================
+
+int renderer_d3d9::device_test_cooperative()
+{
+ // check our current status; if we lost the device, punt to GDI
+ HRESULT result = m_device->TestCooperativeLevel();
+ if (result == D3DERR_DEVICELOST)
+ return 1;
+
+ // if we're able to reset ourselves, try it
+ if (result == D3DERR_DEVICENOTRESET)
+ {
+ osd_printf_verbose("Direct3D: resetting device\n");
+
+ // free all existing resources and call reset on the device
+ device_delete_resources();
+ result = m_device->Reset(&m_presentation);
+
+ // if it didn't work, punt to GDI
+ if (FAILED(result))
+ {
+ osd_printf_error("Unable to reset, result %08lX\n", result);
+ return 1;
+ }
+
+ // try to create the resources again; if that didn't work, delete the whole thing
+ if (device_create_resources())
+ {
+ osd_printf_verbose("Direct3D: failed to recreate resources for device; failing permanently\n");
+ device_delete();
+ return 1;
+ }
+ }
+
+ return 0;
+}
+
+
+//============================================================
+// config_adapter_mode
+//============================================================
+
+int renderer_d3d9::config_adapter_mode()
+{
+ // choose the monitor number
+ m_adapter = get_adapter_for_monitor();
+
+ // get the identifier
+ D3DADAPTER_IDENTIFIER9 id;
+ HRESULT result = d3dintf->d3dobj->GetAdapterIdentifier(m_adapter, 0, &id);
+ if (FAILED(result))
+ {
+ osd_printf_error("Error getting identifier for adapter #%d\n", m_adapter);
+ return 1;
+ }
+
+ osd_printf_verbose("Direct3D: Configuring adapter #%d = %s\n", m_adapter, id.Description);
+
+ // get the current display mode
+ result = d3dintf->d3dobj->GetAdapterDisplayMode(m_adapter, &m_origmode);
+ if (FAILED(result))
+ {
+ osd_printf_error("Error getting mode for adapter #%d\n", m_adapter);
+ return 1;
+ }
+
+ auto win = assert_window();
+
+ // choose a resolution: window mode case
+ if (!win->fullscreen() || !video_config.switchres || win->win_has_menu())
+ {
+ RECT client;
+
+ // bounds are from the window client rect
+ GetClientRectExceptMenu(std::static_pointer_cast<win_window_info>(win)->platform_window(), &client, win->fullscreen());
+ m_width = client.right - client.left;
+ m_height = client.bottom - client.top;
+
+ // pix format is from the current mode
+ m_pixformat = m_origmode.Format;
+ m_refresh = 0;
+
+ // make sure it's a pixel format we can get behind
+ if (m_pixformat != D3DFMT_X1R5G5B5 && m_pixformat != D3DFMT_R5G6B5 && m_pixformat != D3DFMT_X8R8G8B8)
+ {
+ osd_printf_error("Device %s currently in an unsupported mode\n", win->monitor()->devicename().c_str());
+ return 1;
+ }
+ }
+
+ // choose a resolution: full screen mode case
+ else
+ {
+ // default to the current mode exactly
+ m_width = m_origmode.Width;
+ m_height = m_origmode.Height;
+ m_pixformat = m_origmode.Format;
+ m_refresh = m_origmode.RefreshRate;
+
+ // if we're allowed to switch resolutions, override with something better
+ if (video_config.switchres)
+ pick_best_mode();
+ }
+
+ // see if we can handle the device type
+ result = d3dintf->d3dobj->CheckDeviceType(m_adapter, D3DDEVTYPE_HAL, m_pixformat, m_pixformat, !win->fullscreen());
+ if (FAILED(result))
+ {
+ osd_printf_error("Proposed video mode not supported on device %s\n", win->monitor()->devicename().c_str());
+ return 1;
+ }
+
+ return 0;
+}
+
+
+//============================================================
+// get_adapter_for_monitor
+//============================================================
+
+int renderer_d3d9::get_adapter_for_monitor()
+{
+ int maxadapter = d3dintf->d3dobj->GetAdapterCount();
+
+ auto win = assert_window();
+
+ // iterate over adapters until we error or find a match
+ for (int adapternum = 0; adapternum < maxadapter; adapternum++)
+ {
+ // get the monitor for this adapter
+ HMONITOR curmonitor = d3dintf->d3dobj->GetAdapterMonitor(adapternum);
+
+ // if we match the proposed monitor, this is it
+ if (curmonitor == reinterpret_cast<HMONITOR>(win->monitor()->oshandle()))
+ {
+ return adapternum;
+ }
+ }
+
+ // default to the default
+ return D3DADAPTER_DEFAULT;
+}
+
+
+//============================================================
+// pick_best_mode
+//============================================================
+
+void renderer_d3d9::pick_best_mode()
+{
+ double target_refresh = 60.0;
+ int32_t minwidth, minheight;
+ float best_score = 0.0f;
+
+ auto win = assert_window();
+
+ // determine the refresh rate of the primary screen
+ const screen_device *primary_screen = win->machine().config().first_screen();
+ if (primary_screen != nullptr)
+ {
+ target_refresh = ATTOSECONDS_TO_HZ(primary_screen->refresh_attoseconds());
+ }
+
+ // determine the minimum width/height for the selected target
+ // note: technically we should not be calling this from an alternate window
+ // thread; however, it is only done during init time, and the init code on
+ // the main thread is waiting for us to finish, so it is safe to do so here
+ win->target()->compute_minimum_size(minwidth, minheight);
+
+ // use those as the target for now
+ int32_t target_width = minwidth;
+ int32_t target_height = minheight;
+
+ // determine the maximum number of modes
+ int maxmodes = d3dintf->d3dobj->GetAdapterModeCount(m_adapter, D3DFMT_X8R8G8B8);
+
+ // enumerate all the video modes and find the best match
+ osd_printf_verbose("Direct3D: Selecting video mode...\n");
+ for (int modenum = 0; modenum < maxmodes; modenum++)
+ {
+ // check this mode
+ D3DDISPLAYMODE mode;
+ HRESULT result = d3dintf->d3dobj->EnumAdapterModes(m_adapter, D3DFMT_X8R8G8B8, modenum, &mode);
+ if (FAILED(result))
+ break;
+
+ // skip non-32 bit modes
+ if (mode.Format != D3DFMT_X8R8G8B8)
+ continue;
+
+ // compute initial score based on difference between target and current
+ float size_score = 1.0f / (1.0f + fabs((float)(mode.Width - target_width)) + fabs((float)(mode.Height - target_height)));
+
+ // if the mode is too small, give a big penalty
+ if (mode.Width < minwidth || mode.Height < minheight)
+ size_score *= 0.01f;
+
+ // if mode is smaller than we'd like, it only scores up to 0.1
+ if (mode.Width < target_width || mode.Height < target_height)
+ size_score *= 0.1f;
+
+ // if we're looking for a particular mode, that's a winner
+ if (mode.Width == win->m_win_config.width && mode.Height == win->m_win_config.height)
+ size_score = 2.0f;
+
+ // compute refresh score
+ float refresh_score = 1.0f / (1.0f + fabs((double)mode.RefreshRate - target_refresh));
+
+ // if refresh is smaller than we'd like, it only scores up to 0.1
+ if ((double)mode.RefreshRate < target_refresh)
+ refresh_score *= 0.1f;
+
+ // if we're looking for a particular refresh, make sure it matches
+ if (mode.RefreshRate == win->m_win_config.refresh)
+ refresh_score = 2.0f;
+
+ // weight size and refresh equally
+ float final_score = size_score + refresh_score;
+
+ // best so far?
+ osd_printf_verbose(" %4dx%4d@%3dHz -> %f\n", mode.Width, mode.Height, mode.RefreshRate, final_score * 1000.0f);
+ if (final_score > best_score)
+ {
+ best_score = final_score;
+ m_width = mode.Width;
+ m_height = mode.Height;
+ m_pixformat = mode.Format;
+ m_refresh = mode.RefreshRate;
+ }
+ }
+ osd_printf_verbose("Direct3D: Mode selected = %4dx%4d@%3dHz\n", m_width, m_height, m_refresh);
+}
+
+
+//============================================================
+// update_window_size
+//============================================================
+
+bool renderer_d3d9::update_window_size()
+{
+ auto win = assert_window();
+
+ // get the current window bounds
+ RECT client;
+ GetClientRectExceptMenu(std::static_pointer_cast<win_window_info>(win)->platform_window(), &client, win->fullscreen());
+
+ // if we have a device and matching width/height, nothing to do
+ if (m_device != nullptr && rect_width(&client) == m_width && rect_height(&client) == m_height)
+ {
+ // clear out any pending resizing if the area didn't change
+ if (win->m_resize_state == RESIZE_STATE_PENDING)
+ win->m_resize_state = RESIZE_STATE_NORMAL;
+ return false;
+ }
+
+ // if we're in the middle of resizing, leave it alone as well
+ if (win->m_resize_state == RESIZE_STATE_RESIZING)
+ return false;
+
+ // set the new bounds and create the device again
+ m_width = rect_width(&client);
+ m_height = rect_height(&client);
+ if (device_create(std::static_pointer_cast<win_window_info>(win->main_window())->platform_window()))
+ return false;
+
+ // reset the resize state to normal, and indicate we made a change
+ win->m_resize_state = RESIZE_STATE_NORMAL;
+ return true;
+}
+
+
+//============================================================
+// batch_vectors
+//============================================================
+
+void renderer_d3d9::batch_vectors(int vector_count)
+{
+ auto win = assert_window();
+
+ float quad_width = 0.0f;
+ float quad_height = 0.0f;
+ float target_width = 0.0f;
+ float target_height = 0.0f;
+
+ int vertex_count = vector_count * 6;
+ int triangle_count = vector_count * 2;
+ m_vectorbatch = mesh_alloc(vertex_count);
+ m_batchindex = 0;
+
+ uint32_t cached_flags = 0;
+ for (render_primitive &prim : *win->m_primlist)
+ {
+ switch (prim.type)
+ {
+ case render_primitive::LINE:
+ if (PRIMFLAG_GET_VECTOR(prim.flags))
+ {
+ batch_vector(prim);
+ cached_flags = prim.flags;
+ }
+ break;
+
+ case render_primitive::QUAD:
+ if (PRIMFLAG_GET_VECTORBUF(prim.flags))
+ {
+ quad_width = prim.get_quad_width();
+ quad_height = prim.get_quad_height();
+ target_width = prim.get_full_quad_width();
+ target_height = prim.get_full_quad_height();
+ }
+ break;
+
+ default:
+ // Skip
+ break;
+ }
+ }
+
+ // handle orientation and rotation for vectors as they were a texture
+ if (m_shaders->enabled())
+ {
+ bool orientation_swap_xy =
+ (win->machine().system().flags & ORIENTATION_SWAP_XY) == ORIENTATION_SWAP_XY;
+ bool rotation_swap_xy =
+ (win->target()->orientation() & ORIENTATION_SWAP_XY) == ORIENTATION_SWAP_XY;
+ bool swap_xy = orientation_swap_xy ^ rotation_swap_xy;
+
+ bool rotation_0 = win->target()->orientation() == ROT0;
+ bool rotation_90 = win->target()->orientation() == ROT90;
+ bool rotation_180 = win->target()->orientation() == ROT180;
+ bool rotation_270 = win->target()->orientation() == ROT270;
+ bool flip_x =
+ ((rotation_0 || rotation_270) && orientation_swap_xy) ||
+ ((rotation_180 || rotation_270) && !orientation_swap_xy);
+ bool flip_y =
+ ((rotation_0 || rotation_90) && orientation_swap_xy) ||
+ ((rotation_180 || rotation_90) && !orientation_swap_xy);
+
+ float screen_width = float(this->get_width());
+ float screen_height = float(this->get_height());
+ float half_screen_width = screen_width * 0.5f;
+ float half_screen_height = screen_height * 0.5f;
+ float screen_swap_x_factor = 1.0f / screen_width * screen_height;
+ float screen_swap_y_factor = 1.0f / screen_height * screen_width;
+ float screen_target_ratio_x = screen_width / target_width;
+ float screen_target_ratio_y = screen_height / target_height;
+
+ if (swap_xy)
+ {
+ std::swap(screen_target_ratio_x, screen_target_ratio_y);
+ }
+
+ for (int batchindex = 0; batchindex < m_batchindex; batchindex++)
+ {
+ if (swap_xy)
+ {
+ m_vectorbatch[batchindex].x *= screen_swap_x_factor;
+ m_vectorbatch[batchindex].y *= screen_swap_y_factor;
+ std::swap(m_vectorbatch[batchindex].x, m_vectorbatch[batchindex].y);
+ }
+
+ if (flip_x)
+ {
+ m_vectorbatch[batchindex].x = screen_width - m_vectorbatch[batchindex].x;
+ }
+
+ if (flip_y)
+ {
+ m_vectorbatch[batchindex].y = screen_height - m_vectorbatch[batchindex].y;
+ }
+
+ // center
+ m_vectorbatch[batchindex].x -= half_screen_width;
+ m_vectorbatch[batchindex].y -= half_screen_height;
+
+ // correct screen/target ratio (vectors are created in screen coordinates and have to be adjusted for texture corrdinates of the target)
+ m_vectorbatch[batchindex].x *= screen_target_ratio_x;
+ m_vectorbatch[batchindex].y *= screen_target_ratio_y;
+
+ // un-center
+ m_vectorbatch[batchindex].x += half_screen_width;
+ m_vectorbatch[batchindex].y += half_screen_height;
+ }
+ }
+
+ // now add a polygon entry
+ m_poly[m_numpolys].init(D3DPT_TRIANGLELIST, triangle_count, vertex_count, cached_flags, nullptr, D3DTOP_MODULATE, quad_width, quad_height);
+ m_numpolys++;
+}
+
+void renderer_d3d9::batch_vector(const render_primitive &prim)
+{
+ // get a pointer to the vertex buffer
+ if (m_vectorbatch == nullptr)
+ {
+ return;
+ }
+
+ // compute the effective width based on the direction of the line
+ float effwidth = prim.width;
+ if (effwidth < 2.0f)
+ {
+ effwidth = 2.0f;
+ }
+
+ // determine the bounds of a quad to draw this line
+ render_bounds b0, b1;
+ render_line_to_quad(&prim.bounds, effwidth, effwidth, &b0, &b1);
+
+ float lx = b1.x1 - b0.x1;
+ float ly = b1.y1 - b0.y1;
+ float wx = b1.x1 - b1.x0;
+ float wy = b1.y1 - b1.y0;
+ float line_length = sqrtf(lx * lx + ly * ly);
+ float line_width = sqrtf(wx * wx + wy * wy);
+
+ m_vectorbatch[m_batchindex + 0].x = b0.x0;
+ m_vectorbatch[m_batchindex + 0].y = b0.y0;
+ m_vectorbatch[m_batchindex + 1].x = b0.x1;
+ m_vectorbatch[m_batchindex + 1].y = b0.y1;
+ m_vectorbatch[m_batchindex + 2].x = b1.x0;
+ m_vectorbatch[m_batchindex + 2].y = b1.y0;
+
+ m_vectorbatch[m_batchindex + 3].x = b0.x1;
+ m_vectorbatch[m_batchindex + 3].y = b0.y1;
+ m_vectorbatch[m_batchindex + 4].x = b1.x0;
+ m_vectorbatch[m_batchindex + 4].y = b1.y0;
+ m_vectorbatch[m_batchindex + 5].x = b1.x1;
+ m_vectorbatch[m_batchindex + 5].y = b1.y1;
+
+ if (m_shaders->enabled())
+ {
+ // procedural generated texture
+ m_vectorbatch[m_batchindex + 0].u0 = 0.0f;
+ m_vectorbatch[m_batchindex + 0].v0 = 0.0f;
+ m_vectorbatch[m_batchindex + 1].u0 = 0.0f;
+ m_vectorbatch[m_batchindex + 1].v0 = 1.0f;
+ m_vectorbatch[m_batchindex + 2].u0 = 1.0f;
+ m_vectorbatch[m_batchindex + 2].v0 = 0.0f;
+
+ m_vectorbatch[m_batchindex + 3].u0 = 0.0f;
+ m_vectorbatch[m_batchindex + 3].v0 = 1.0f;
+ m_vectorbatch[m_batchindex + 4].u0 = 1.0f;
+ m_vectorbatch[m_batchindex + 4].v0 = 0.0f;
+ m_vectorbatch[m_batchindex + 5].u0 = 1.0f;
+ m_vectorbatch[m_batchindex + 5].v0 = 1.0f;
+ }
+ else
+ {
+ vec2f& start = get_default_texture()->get_uvstart();
+ vec2f& stop = get_default_texture()->get_uvstop();
+
+ m_vectorbatch[m_batchindex + 0].u0 = start.c.x;
+ m_vectorbatch[m_batchindex + 0].v0 = start.c.y;
+ m_vectorbatch[m_batchindex + 1].u0 = start.c.x;
+ m_vectorbatch[m_batchindex + 1].v0 = stop.c.y;
+ m_vectorbatch[m_batchindex + 2].u0 = stop.c.x;
+ m_vectorbatch[m_batchindex + 2].v0 = start.c.y;
+
+ m_vectorbatch[m_batchindex + 3].u0 = start.c.x;
+ m_vectorbatch[m_batchindex + 3].v0 = stop.c.y;
+ m_vectorbatch[m_batchindex + 4].u0 = stop.c.x;
+ m_vectorbatch[m_batchindex + 4].v0 = start.c.y;
+ m_vectorbatch[m_batchindex + 5].u0 = stop.c.x;
+ m_vectorbatch[m_batchindex + 5].v0 = stop.c.y;
+ }
+
+ // determine the color of the line
+ int32_t r = (int32_t)(prim.color.r * 255.0f);
+ int32_t g = (int32_t)(prim.color.g * 255.0f);
+ int32_t b = (int32_t)(prim.color.b * 255.0f);
+ int32_t a = (int32_t)(prim.color.a * 255.0f);
+ DWORD color = D3DCOLOR_ARGB(a, r, g, b);
+
+ // set the color, Z parameters to standard values
+ for (int i = 0; i < 6; i++)
+ {
+ m_vectorbatch[m_batchindex + i].x -= 0.5f;
+ m_vectorbatch[m_batchindex + i].y -= 0.5f;
+ m_vectorbatch[m_batchindex + i].z = 0.0f;
+ m_vectorbatch[m_batchindex + i].rhw = 1.0f;
+ m_vectorbatch[m_batchindex + i].color = color;
+
+ // vector length/width
+ m_vectorbatch[m_batchindex + i].u1 = line_length;
+ m_vectorbatch[m_batchindex + i].v1 = line_width;
+ }
+
+ m_batchindex += 6;
+}
+
+
+//============================================================
+// draw_line
+//============================================================
+
+void renderer_d3d9::draw_line(const render_primitive &prim)
+{
+ // get a pointer to the vertex buffer
+ vertex *vertex = mesh_alloc(4);
+ if (vertex == nullptr)
+ {
+ return;
+ }
+
+ // compute the effective width based on the direction of the line
+ float effwidth = prim.width;
+ if (effwidth < 1.0f)
+ {
+ effwidth = 1.0f;
+ }
+
+ // determine the bounds of a quad to draw this line
+ render_bounds b0, b1;
+ render_line_to_quad(&prim.bounds, effwidth, 0.0f, &b0, &b1);
+
+ vertex[0].x = b0.x0;
+ vertex[0].y = b0.y0;
+ vertex[1].x = b0.x1;
+ vertex[1].y = b0.y1;
+ vertex[2].x = b1.x0;
+ vertex[2].y = b1.y0;
+ vertex[3].x = b1.x1;
+ vertex[3].y = b1.y1;
+
+ vec2f& start = get_default_texture()->get_uvstart();
+ vec2f& stop = get_default_texture()->get_uvstop();
+
+ vertex[0].u0 = start.c.x;
+ vertex[0].v0 = start.c.y;
+ vertex[1].u0 = start.c.x;
+ vertex[1].v0 = stop.c.y;
+ vertex[2].u0 = stop.c.x;
+ vertex[2].v0 = start.c.y;
+ vertex[3].u0 = stop.c.x;
+ vertex[3].v0 = stop.c.y;
+
+ // determine the color of the line
+ int32_t r = (int32_t)(prim.color.r * 255.0f);
+ int32_t g = (int32_t)(prim.color.g * 255.0f);
+ int32_t b = (int32_t)(prim.color.b * 255.0f);
+ int32_t a = (int32_t)(prim.color.a * 255.0f);
+ DWORD color = D3DCOLOR_ARGB(a, r, g, b);
+
+ // set the color, Z parameters to standard values
+ for (int i = 0; i < 4; i++)
+ {
+ vertex[i].z = 0.0f;
+ vertex[i].rhw = 1.0f;
+ vertex[i].color = color;
+ }
+
+ // now add a polygon entry
+ m_poly[m_numpolys].init(D3DPT_TRIANGLESTRIP, 2, 4, prim.flags, nullptr, D3DTOP_MODULATE, 0.0f, 0.0f);
+ m_numpolys++;
+}
+
+
+//============================================================
+// draw_quad
+//============================================================
+
+void renderer_d3d9::draw_quad(const render_primitive &prim)
+{
+ texture_info *texture = m_texture_manager->find_texinfo(&prim.texture, prim.flags);
+ if (texture == nullptr)
+ {
+ texture = get_default_texture();
+ }
+
+ // get a pointer to the vertex buffer
+ vertex *vertex = mesh_alloc(4);
+ if (vertex == nullptr)
+ {
+ return;
+ }
+
+ // fill in the vertexes clockwise
+ vertex[0].x = prim.bounds.x0;
+ vertex[0].y = prim.bounds.y0;
+ vertex[1].x = prim.bounds.x1;
+ vertex[1].y = prim.bounds.y0;
+ vertex[2].x = prim.bounds.x0;
+ vertex[2].y = prim.bounds.y1;
+ vertex[3].x = prim.bounds.x1;
+ vertex[3].y = prim.bounds.y1;
+ float quad_width = prim.get_quad_width();
+ float quad_height = prim.get_quad_height();
+
+ // set the texture coordinates
+ if (texture != nullptr)
+ {
+ vec2f& start = texture->get_uvstart();
+ vec2f& stop = texture->get_uvstop();
+ vec2f delta = stop - start;
+
+ vertex[0].u0 = start.c.x + delta.c.x * prim.texcoords.tl.u;
+ vertex[0].v0 = start.c.y + delta.c.y * prim.texcoords.tl.v;
+ vertex[1].u0 = start.c.x + delta.c.x * prim.texcoords.tr.u;
+ vertex[1].v0 = start.c.y + delta.c.y * prim.texcoords.tr.v;
+ vertex[2].u0 = start.c.x + delta.c.x * prim.texcoords.bl.u;
+ vertex[2].v0 = start.c.y + delta.c.y * prim.texcoords.bl.v;
+ vertex[3].u0 = start.c.x + delta.c.x * prim.texcoords.br.u;
+ vertex[3].v0 = start.c.y + delta.c.y * prim.texcoords.br.v;
+ }
+
+ // determine the color, allowing for over modulation
+ int32_t r = (int32_t)(prim.color.r * 255.0f);
+ int32_t g = (int32_t)(prim.color.g * 255.0f);
+ int32_t b = (int32_t)(prim.color.b * 255.0f);
+ int32_t a = (int32_t)(prim.color.a * 255.0f);
+ DWORD color = D3DCOLOR_ARGB(a, r, g, b);
+
+ // adjust half pixel X/Y offset, set the color, Z parameters to standard values
+ for (int i = 0; i < 4; i++)
+ {
+ vertex[i].x -= 0.5f;
+ vertex[i].y -= 0.5f;
+ vertex[i].z = 0.0f;
+ vertex[i].rhw = 1.0f;
+ vertex[i].color = color;
+ }
+
+ // now add a polygon entry
+ m_poly[m_numpolys].init(D3DPT_TRIANGLESTRIP, 2, 4, prim.flags, texture, D3DTOP_MODULATE, quad_width, quad_height);
+ m_numpolys++;
+}
+
+
+//============================================================
+// primitive_alloc
+//============================================================
+
+vertex *renderer_d3d9::mesh_alloc(int numverts)
+{
+ HRESULT result;
+
+ // if we're going to overflow, flush
+ if (m_lockedbuf != nullptr && m_numverts + numverts >= VERTEX_BUFFER_SIZE)
+ {
+ primitive_flush_pending();
+
+ if (m_shaders->enabled())
+ m_shaders->init_fsfx_quad();
+ }
+
+ // if we don't have a lock, grab it now
+ if (m_lockedbuf == nullptr)
+ {
+ result = m_vertexbuf->Lock(0, 0, (VOID **)&m_lockedbuf, D3DLOCK_DISCARD);
+ if (FAILED(result))
+ return nullptr;
+ }
+
+ // if we already have the lock and enough room, just return a pointer
+ if (m_lockedbuf != nullptr && m_numverts + numverts < VERTEX_BUFFER_SIZE)
+ {
+ int oldverts = m_numverts;
+ m_numverts += numverts;
+ return &m_lockedbuf[oldverts];
+ }
+
+ return nullptr;
+}
+
+
+//============================================================
+// primitive_flush_pending
+//============================================================
+
+void renderer_d3d9::primitive_flush_pending()
+{
+ // ignore if we're not locked
+ if (m_lockedbuf == nullptr)
+ return;
+
+ // unlock the buffer
+ HRESULT result = m_vertexbuf->Unlock();
+ if (FAILED(result))
+ osd_printf_verbose("Direct3D: Error %08lX during vertex buffer unlock call\n", result);
+
+ m_lockedbuf = nullptr;
+
+ // set the stream
+ result = m_device->SetStreamSource(0, m_vertexbuf, 0, sizeof(vertex));
+ if (FAILED(result))
+ osd_printf_verbose("Direct3D: Error %08lX during device SetStreamSource call\n", result);
+
+ m_shaders->begin_draw();
+
+ int vertnum = 0;
+ if (m_shaders->enabled())
+ {
+ vertnum = 6;
+ }
+
+ // now do the polys
+ for (int polynum = 0; polynum < m_numpolys; polynum++)
+ {
+ uint32_t flags = m_poly[polynum].flags();
+ texture_info *texture = m_poly[polynum].texture();
+ int newfilter;
+
+ // set the texture if different
+ set_texture(texture);
+
+ // set filtering if different
+ if (texture != nullptr)
+ {
+ newfilter = FALSE;
+ if (PRIMFLAG_GET_SCREENTEX(flags))
+ newfilter = video_config.filter;
+ set_filter(newfilter);
+ set_wrap(PRIMFLAG_GET_TEXWRAP(flags) ? D3DTADDRESS_WRAP : D3DTADDRESS_CLAMP);
+ set_modmode(m_poly[polynum].modmode());
+ }
+
+ if (vertnum + m_poly[polynum].numverts() > m_numverts)
+ {
+ osd_printf_error("Error: vertnum (%d) plus poly vertex count (%d) > %d\n", vertnum, m_poly[polynum].numverts(), m_numverts);
+ fflush(stdout);
+ }
+
+ assert(vertnum + m_poly[polynum].numverts() <= m_numverts);
+
+ if(m_shaders->enabled())
+ {
+ // reset blend mode (handled by shader passes)
+ set_blendmode(BLENDMODE_NONE);
+
+ m_shaders->render_quad(&m_poly[polynum], vertnum);
+ }
+ else
+ {
+ // set blend mode
+ set_blendmode(PRIMFLAG_GET_BLENDMODE(flags));
+
+ // add the primitives
+ result = m_device->DrawPrimitive(m_poly[polynum].type(), vertnum, m_poly[polynum].count());
+ if (FAILED(result))
+ osd_printf_verbose("Direct3D: Error %08lX during device draw_primitive call\n", result);
+ }
+
+ vertnum += m_poly[polynum].numverts();
+ }
+
+ m_shaders->end_draw();
+
+ // reset the vertex count
+ m_numverts = 0;
+ m_numpolys = 0;
+}
+
+
+std::vector<ui::menu_item> renderer_d3d9::get_slider_list()
+{
+ m_sliders_dirty = false;
+
+ std::vector<ui::menu_item> sliders;
+ sliders.insert(sliders.end(), m_sliders.begin(), m_sliders.end());
+
+ if (m_shaders != nullptr && m_shaders->enabled())
+ {
+ std::vector<ui::menu_item> s_slider = m_shaders->get_slider_list();
+ sliders.insert(sliders.end(), s_slider.begin(), s_slider.end());
+ }
+
+ return sliders;
+}
+
+void renderer_d3d9::set_sliders_dirty()
+{
+ m_sliders_dirty = true;
+}
+
+
+//============================================================
+// texture_info destructor
+//============================================================
+
+texture_info::~texture_info()
+{
+ if (m_d3dfinaltex != nullptr)
+ {
+ if (m_d3dtex == m_d3dfinaltex)
+ m_d3dtex = nullptr;
+
+ m_d3dfinaltex->Release();
+ }
+
+ if (m_d3dtex != nullptr)
+ m_d3dtex->Release();
+
+ if (m_d3dsurface != nullptr)
+ m_d3dsurface->Release();
+}
+
+
+//============================================================
+// texture_info constructor
+//============================================================
+
+texture_info::texture_info(d3d_texture_manager *manager, const render_texinfo* texsource, int prescale, uint32_t flags)
+{
+ HRESULT result;
+
+ // fill in the core data
+ m_texture_manager = manager;
+ m_renderer = m_texture_manager->get_d3d();
+ m_hash = m_texture_manager->texture_compute_hash(texsource, flags);
+ m_flags = flags;
+ m_texinfo = *texsource;
+ m_xprescale = prescale;
+ m_yprescale = prescale;
+
+ m_d3dtex = nullptr;
+ m_d3dsurface = nullptr;
+ m_d3dfinaltex = nullptr;
+
+ // determine texture type, required to compute texture size
+ if (!PRIMFLAG_GET_SCREENTEX(flags))
+ {
+ m_type = TEXTURE_TYPE_PLAIN;
+ }
+ else
+ {
+ if ((m_xprescale == 1 && m_yprescale == 1) || m_renderer->get_shaders()->enabled())
+ {
+ m_type = m_texture_manager->is_dynamic_supported() ? TEXTURE_TYPE_DYNAMIC : TEXTURE_TYPE_PLAIN;
+ }
+ else
+ {
+ if (m_texture_manager->is_stretch_supported() && PRIMFLAG_GET_TEXFORMAT(flags) != TEXFORMAT_YUY16)
+ {
+ m_type = TEXTURE_TYPE_SURFACE;
+ }
+ else
+ {
+ m_type = m_texture_manager->is_dynamic_supported() ? TEXTURE_TYPE_DYNAMIC : TEXTURE_TYPE_PLAIN;
+ }
+ }
+ }
+
+ // compute the size
+ compute_size(texsource->width, texsource->height);
+
+ // non-screen textures are easy
+ if (!PRIMFLAG_GET_SCREENTEX(flags))
+ {
+ assert(PRIMFLAG_TEXFORMAT(flags) != TEXFORMAT_YUY16);
+ result = m_renderer->get_device()->CreateTexture(m_rawdims.c.x, m_rawdims.c.y, 1, 0, D3DFMT_A8R8G8B8, D3DPOOL_MANAGED, &m_d3dtex, nullptr);
+ if (FAILED(result))
+ goto error;
+ m_d3dfinaltex = m_d3dtex;
+ }
+
+ // screen textures are allocated differently
+ else
+ {
+ D3DFORMAT format;
+ DWORD usage = m_texture_manager->is_dynamic_supported() ? D3DUSAGE_DYNAMIC : 0;
+ D3DPOOL pool = m_texture_manager->is_dynamic_supported() ? D3DPOOL_DEFAULT : D3DPOOL_MANAGED;
+ int maxdim = std::max(m_renderer->get_presentation()->BackBufferWidth, m_renderer->get_presentation()->BackBufferHeight);
+
+ // pick the format
+ if (PRIMFLAG_GET_TEXFORMAT(flags) == TEXFORMAT_YUY16)
+ {
+ format = m_texture_manager->get_yuv_format();
+ }
+ else if (PRIMFLAG_GET_TEXFORMAT(flags) == TEXFORMAT_ARGB32 || PRIMFLAG_GET_TEXFORMAT(flags) == TEXFORMAT_PALETTEA16)
+ {
+ format = D3DFMT_A8R8G8B8;
+ }
+ else
+ {
+ format = m_renderer->get_screen_format();
+ }
+
+ // don't prescale above screen size
+ while (m_xprescale > 1 && m_rawdims.c.x * m_xprescale >= 2 * maxdim)
+ {
+ m_xprescale--;
+ }
+ while (m_xprescale > 1 && m_rawdims.c.x * m_xprescale > manager->get_max_texture_width())
+ {
+ m_xprescale--;
+ }
+ while (m_yprescale > 1 && m_rawdims.c.y * m_yprescale >= 2 * maxdim)
+ {
+ m_yprescale--;
+ }
+ while (m_yprescale > 1 && m_rawdims.c.y * m_yprescale > manager->get_max_texture_height())
+ {
+ m_yprescale--;
+ }
+
+ auto win = m_renderer->assert_window();
+
+ int prescale = win->prescale();
+ if (m_xprescale != prescale || m_yprescale != prescale)
+ {
+ osd_printf_verbose("Direct3D: adjusting prescale from %dx%d to %dx%d\n", prescale, prescale, m_xprescale, m_yprescale);
+ }
+
+ // loop until we allocate something or error
+ for (int attempt = 0; attempt < 2; attempt++)
+ {
+ // second attempt is always 1:1
+ if (attempt == 1)
+ {
+ m_xprescale = m_yprescale = 1;
+ }
+
+ // screen textures with no prescaling are pretty easy
+ if (m_xprescale == 1 && m_yprescale == 1)
+ {
+ result = m_renderer->get_device()->CreateTexture(m_rawdims.c.x, m_rawdims.c.y, 1, usage, format, pool, &m_d3dtex, nullptr);
+ if (result == D3D_OK)
+ {
+ m_d3dfinaltex = m_d3dtex;
+ break;
+ }
+ }
+ // screen textures with prescaling require two allocations
+ else
+ {
+ // use an offscreen plain surface for stretching if supported
+ // (won't work for YUY textures)
+ if (m_texture_manager->is_stretch_supported() && PRIMFLAG_GET_TEXFORMAT(flags) != TEXFORMAT_YUY16)
+ {
+ result = m_renderer->get_device()->CreateOffscreenPlainSurface(m_rawdims.c.x, m_rawdims.c.y, format, D3DPOOL_DEFAULT, &m_d3dsurface, nullptr);
+ if (FAILED(result))
+ {
+ continue;
+ }
+ }
+ // otherwise, we allocate a dynamic texture for the source
+ else
+ {
+ result = m_renderer->get_device()->CreateTexture(m_rawdims.c.x, m_rawdims.c.y, 1, usage, format, pool, &m_d3dtex, nullptr);
+ if (FAILED(result))
+ {
+ continue;
+ }
+ }
+
+ // for the target surface, we allocate a render target texture
+ int scwidth = m_rawdims.c.x * m_xprescale;
+ int scheight = m_rawdims.c.y * m_yprescale;
+
+ // target surfaces typically cannot be YCbCr, so we always pick RGB in that case
+ D3DFORMAT finalfmt = (format != m_texture_manager->get_yuv_format()) ? format : D3DFMT_A8R8G8B8;
+
+ result = m_renderer->get_device()->CreateTexture(scwidth, scheight, 1, D3DUSAGE_RENDERTARGET, finalfmt, D3DPOOL_DEFAULT, &m_d3dfinaltex, nullptr);
+ if (result == D3D_OK)
+ {
+ break;
+ }
+
+ m_d3dtex->Release();
+ m_d3dtex = nullptr;
+ }
+ }
+ }
+
+ // copy the data to the texture
+ set_data(texsource, flags);
+
+ return;
+
+error:
+ d3dintf->post_fx_available = false;
+ osd_printf_error("Direct3D: Critical warning: A texture failed to allocate. Expect things to get bad quickly.\n");
+ if (m_d3dsurface != nullptr)
+ m_d3dsurface->Release();
+ if (m_d3dtex != nullptr)
+ m_d3dtex->Release();
+}
+
+
+//============================================================
+// texture_info::compute_size_subroutine
+//============================================================
+
+void texture_info::compute_size_subroutine(int texwidth, int texheight, int* p_width, int* p_height)
+{
+ int finalheight = texheight;
+ int finalwidth = texwidth;
+
+ // adjust the aspect ratio if we need to
+ while (finalwidth < finalheight && finalheight / finalwidth > m_texture_manager->get_max_texture_aspect())
+ {
+ finalwidth *= 2;
+ }
+ while (finalheight < finalwidth && finalwidth / finalheight > m_texture_manager->get_max_texture_aspect())
+ {
+ finalheight *= 2;
+ }
+
+ *p_width = finalwidth;
+ *p_height = finalheight;
+}
+
+
+//============================================================
+// texture_info::compute_size
+//============================================================
+
+void texture_info::compute_size(int texwidth, int texheight)
+{
+ int finalheight = texheight;
+ int finalwidth = texwidth;
+
+ m_xborderpix = 0;
+ m_yborderpix = 0;
+
+ bool shaders_enabled = m_renderer->get_shaders()->enabled();
+ bool wrap_texture = (m_flags & PRIMFLAG_TEXWRAP_MASK) == PRIMFLAG_TEXWRAP_MASK;
+
+ // skip border when shaders are enabled
+ if (!shaders_enabled)
+ {
+ // if we're not wrapping, add a 1-2 pixel border on all sides
+ if (!wrap_texture)
+ {
+ // note we need 2 pixels in X for YUY textures
+ m_xborderpix = (PRIMFLAG_GET_TEXFORMAT(m_flags) == TEXFORMAT_YUY16) ? 2 : 1;
+ m_yborderpix = 1;
+ }
+ }
+
+ finalwidth += 2 * m_xborderpix;
+ finalheight += 2 * m_yborderpix;
+
+ // take texture size as given when shaders are enabled
+ if (!shaders_enabled)
+ {
+ compute_size_subroutine(finalwidth, finalheight, &finalwidth, &finalheight);
+
+ // if we added pixels for the border, and that just barely pushed us over, take it back
+ if (finalwidth > m_texture_manager->get_max_texture_width() || finalheight > m_texture_manager->get_max_texture_height())
+ {
+ finalheight = texheight;
+ finalwidth = texwidth;
+
+ m_xborderpix = 0;
+ m_yborderpix = 0;
+
+ compute_size_subroutine(finalwidth, finalheight, &finalwidth, &finalheight);
+ }
+ }
+
+ // if we're above the max width/height, do what?
+ if (finalwidth > m_texture_manager->get_max_texture_width() || finalheight > m_texture_manager->get_max_texture_height())
+ {
+ static bool printed = false;
+ if (!printed) osd_printf_warning("Texture too big! (wanted: %dx%d, max is %dx%d)\n", finalwidth, finalheight, (int)m_texture_manager->get_max_texture_width(), (int)m_texture_manager->get_max_texture_height());
+ printed = true;
+ }
+
+ // compute the U/V scale factors
+ m_start.c.x = (float)m_xborderpix / (float)finalwidth;
+ m_start.c.y = (float)m_yborderpix / (float)finalheight;
+ m_stop.c.x = (float)(texwidth + m_xborderpix) / (float)finalwidth;
+ m_stop.c.y = (float)(texheight + m_yborderpix) / (float)finalheight;
+
+ // set the final values
+ m_rawdims.c.x = finalwidth;
+ m_rawdims.c.y = finalheight;
+}
+
+
+//============================================================
+// copyline_palette16
+//============================================================
+
+static inline void copyline_palette16(uint32_t *dst, const uint16_t *src, int width, const rgb_t *palette, int xborderpix)
+{
+ if (xborderpix)
+ *dst++ = 0xff000000 | palette[*src];
+ for (int x = 0; x < width; x++)
+ *dst++ = 0xff000000 | palette[*src++];
+ if (xborderpix)
+ *dst++ = 0xff000000 | palette[*--src];
+}
+
+
+//============================================================
+// copyline_palettea16
+//============================================================
+
+static inline void copyline_palettea16(uint32_t *dst, const uint16_t *src, int width, const rgb_t *palette, int xborderpix)
+{
+ if (xborderpix)
+ *dst++ = palette[*src];
+ for (int x = 0; x < width; x++)
+ *dst++ = palette[*src++];
+ if (xborderpix)
+ *dst++ = palette[*--src];
+}
+
+
+//============================================================
+// copyline_rgb32
+//============================================================
+
+static inline void copyline_rgb32(uint32_t *dst, const uint32_t *src, int width, const rgb_t *palette, int xborderpix)
+{
+ if (palette != nullptr)
+ {
+ if (xborderpix)
+ {
+ rgb_t srcpix = *src;
+ *dst++ = 0xff000000 | palette[0x200 + srcpix.r()] | palette[0x100 + srcpix.g()] | palette[srcpix.b()];
+ }
+ for (int x = 0; x < width; x++)
+ {
+ rgb_t srcpix = *src++;
+ *dst++ = 0xff000000 | palette[0x200 + srcpix.r()] | palette[0x100 + srcpix.g()] | palette[srcpix.b()];
+ }
+ if (xborderpix)
+ {
+ rgb_t srcpix = *--src;
+ *dst++ = 0xff000000 | palette[0x200 + srcpix.r()] | palette[0x100 + srcpix.g()] | palette[srcpix.b()];
+ }
+ }
+ else
+ {
+ if (xborderpix)
+ *dst++ = 0xff000000 | *src;
+ for (int x = 0; x < width; x++)
+ *dst++ = 0xff000000 | *src++;
+ if (xborderpix)
+ *dst++ = 0xff000000 | *--src;
+ }
+}
+
+
+//============================================================
+// copyline_argb32
+//============================================================
+
+static inline void copyline_argb32(uint32_t *dst, const uint32_t *src, int width, const rgb_t *palette, int xborderpix)
+{
+ if (palette != nullptr)
+ {
+ if (xborderpix)
+ {
+ rgb_t srcpix = *src;
+ *dst++ = (srcpix & 0xff000000) | palette[0x200 + srcpix.r()] | palette[0x100 + srcpix.g()] | palette[srcpix.b()];
+ }
+ for (int x = 0; x < width; x++)
+ {
+ rgb_t srcpix = *src++;
+ *dst++ = (srcpix & 0xff000000) | palette[0x200 + srcpix.r()] | palette[0x100 + srcpix.g()] | palette[srcpix.b()];
+ }
+ if (xborderpix)
+ {
+ rgb_t srcpix = *--src;
+ *dst++ = (srcpix & 0xff000000) | palette[0x200 + srcpix.r()] | palette[0x100 + srcpix.g()] | palette[srcpix.b()];
+ }
+ }
+ else
+ {
+ if (xborderpix)
+ *dst++ = *src;
+ memcpy(dst, src, sizeof(uint32_t) * width);
+ dst += width;
+ src += width;
+ if (xborderpix)
+ *dst++ = *--src;
+ }
+}
+
+
+//============================================================
+// copyline_yuy16_to_yuy2
+//============================================================
+
+static inline void copyline_yuy16_to_yuy2(uint16_t *dst, const uint16_t *src, int width, const rgb_t *palette)
+{
+ assert(width % 2 == 0);
+
+ if (palette != nullptr) // palette (really RGB map) case
+ {
+ for (int x = 0; x < width; x += 2)
+ {
+ uint16_t srcpix0 = *src++;
+ uint16_t srcpix1 = *src++;
+ *dst++ = palette[0x000 + (srcpix0 >> 8)] | (srcpix0 << 8);
+ *dst++ = palette[0x000 + (srcpix1 >> 8)] | (srcpix1 << 8);
+ }
+ }
+ else // direct case
+ {
+ for (int x = 0; x < width; x += 2)
+ {
+ uint16_t srcpix0 = *src++;
+ uint16_t srcpix1 = *src++;
+ *dst++ = (srcpix0 >> 8) | (srcpix0 << 8);
+ *dst++ = (srcpix1 >> 8) | (srcpix1 << 8);
+ }
+ }
+}
+
+
+//============================================================
+// copyline_yuy16_to_uyvy
+//============================================================
+
+static inline void copyline_yuy16_to_uyvy(uint16_t *dst, const uint16_t *src, int width, const rgb_t *palette)
+{
+ assert(width % 2 == 0);
+
+ if (palette != nullptr) // palette (really RGB map) case
+ {
+ for (int x = 0; x < width; x += 2)
+ {
+ uint16_t srcpix0 = *src++;
+ uint16_t srcpix1 = *src++;
+ *dst++ = palette[0x100 + (srcpix0 >> 8)] | (srcpix0 & 0xff);
+ *dst++ = palette[0x100 + (srcpix1 >> 8)] | (srcpix1 & 0xff);
+ }
+ }
+
+ // direct case
+ else
+ {
+ memcpy(dst, src, sizeof(uint16_t) * width);
+ }
+}
+
+
+//============================================================
+// copyline_yuy16_to_argb
+//============================================================
+
+static inline void copyline_yuy16_to_argb(uint32_t *dst, const uint16_t *src, int width, const rgb_t *palette)
+{
+ assert(width % 2 == 0);
+
+ if (palette != nullptr) // palette (really RGB map) case
+ {
+ for (int x = 0; x < width / 2; x++)
+ {
+ uint16_t srcpix0 = *src++;
+ uint16_t srcpix1 = *src++;
+ uint8_t cb = srcpix0 & 0xff;
+ uint8_t cr = srcpix1 & 0xff;
+ *dst++ = ycc_to_rgb(palette[0x000 + (srcpix0 >> 8)], cb, cr);
+ *dst++ = ycc_to_rgb(palette[0x000 + (srcpix1 >> 8)], cb, cr);
+ }
+ }
+ else // direct case
+ {
+ for (int x = 0; x < width; x += 2)
+ {
+ uint16_t srcpix0 = *src++;
+ uint16_t srcpix1 = *src++;
+ uint8_t cb = srcpix0 & 0xff;
+ uint8_t cr = srcpix1 & 0xff;
+ *dst++ = ycc_to_rgb(srcpix0 >> 8, cb, cr);
+ *dst++ = ycc_to_rgb(srcpix1 >> 8, cb, cr);
+ }
+ }
+}
+
+
+//============================================================
+// texture_set_data
+//============================================================
+
+void texture_info::set_data(const render_texinfo *texsource, uint32_t flags)
+{
+ D3DLOCKED_RECT rect;
+ HRESULT result;
+
+ // lock the texture
+ switch (m_type)
+ {
+ default:
+ case TEXTURE_TYPE_PLAIN: result = m_d3dtex->LockRect(0, &rect, nullptr, 0); break;
+ case TEXTURE_TYPE_DYNAMIC: result = m_d3dtex->LockRect(0, &rect, nullptr, D3DLOCK_DISCARD); break;
+ case TEXTURE_TYPE_SURFACE: result = m_d3dsurface->LockRect(&rect, nullptr, D3DLOCK_DISCARD); break;
+ }
+ if (FAILED(result))
+ {
+ return;
+ }
+
+ // loop over Y
+ int tex_format = PRIMFLAG_GET_TEXFORMAT(flags);
+#if 0
+ if (tex_format == TEXFORMAT_ARGB32 && texsource->palette == nullptr && texsource->width == texsource->rowpixels && m_xborderpix == 0 && m_yborderpix == 0)
+ {
+ memcpy((BYTE *)rect.pBits, texsource->base, sizeof(uint32_t) * texsource->width * texsource->height);
+ }
+ else
+#endif
+ {
+ int miny = 0 - m_yborderpix;
+ int maxy = texsource->height + m_yborderpix;
+
+ for (int dsty = miny; dsty < maxy; dsty++)
+ {
+ int srcy = (dsty < 0) ? 0 : (dsty >= texsource->height) ? texsource->height - 1 : dsty;
+
+ void *dst = (BYTE *)rect.pBits + (dsty + m_yborderpix) * rect.Pitch;
+
+ switch (tex_format)
+ {
+ case TEXFORMAT_PALETTE16:
+ copyline_palette16((uint32_t *)dst, (uint16_t *)texsource->base + srcy * texsource->rowpixels, texsource->width, texsource->palette, m_xborderpix);
+ break;
+
+ case TEXFORMAT_PALETTEA16:
+ copyline_palettea16((uint32_t *)dst, (uint16_t *)texsource->base + srcy * texsource->rowpixels, texsource->width, texsource->palette, m_xborderpix);
+ break;
+
+ case TEXFORMAT_RGB32:
+ copyline_rgb32((uint32_t *)dst, (uint32_t *)texsource->base + srcy * texsource->rowpixels, texsource->width, texsource->palette, m_xborderpix);
+ break;
+
+ case TEXFORMAT_ARGB32:
+ copyline_argb32((uint32_t *)dst, (uint32_t *)texsource->base + srcy * texsource->rowpixels, texsource->width, texsource->palette, m_xborderpix);
+ break;
+
+ case TEXFORMAT_YUY16:
+ if (m_texture_manager->get_yuv_format() == D3DFMT_YUY2)
+ copyline_yuy16_to_yuy2((uint16_t *)dst, (uint16_t *)texsource->base + srcy * texsource->rowpixels, texsource->width, texsource->palette);
+ else if (m_texture_manager->get_yuv_format() == D3DFMT_UYVY)
+ copyline_yuy16_to_uyvy((uint16_t *)dst, (uint16_t *)texsource->base + srcy * texsource->rowpixels, texsource->width, texsource->palette);
+ else
+ copyline_yuy16_to_argb((uint32_t *)dst, (uint16_t *)texsource->base + srcy * texsource->rowpixels, texsource->width, texsource->palette);
+ break;
+
+ default:
+ osd_printf_error("Unknown texture blendmode=%d format=%d\n", PRIMFLAG_GET_BLENDMODE(flags), PRIMFLAG_GET_TEXFORMAT(flags));
+ break;
+ }
+ }
+ }
+
+ // unlock
+ switch (m_type)
+ {
+ default:
+ case TEXTURE_TYPE_PLAIN: result = m_d3dtex->UnlockRect(0); break;
+ case TEXTURE_TYPE_DYNAMIC: result = m_d3dtex->UnlockRect(0); break;
+ case TEXTURE_TYPE_SURFACE: result = m_d3dsurface->UnlockRect(); break;
+ }
+ if (FAILED(result))
+ osd_printf_verbose("Direct3D: Error %08lX during texture UnlockRect call\n", result);
+
+ // prescale
+ prescale();
+}
+
+
+//============================================================
+// texture_info::prescale
+//============================================================
+
+void texture_info::prescale()
+{
+ IDirect3DSurface9 *scale_surface;
+ HRESULT result;
+ int i;
+
+ // if we don't need to, just skip it
+ if (m_d3dtex == m_d3dfinaltex)
+ return;
+
+ // for all cases, we need to get the surface of the render target
+ result = m_d3dfinaltex->GetSurfaceLevel(0, &scale_surface);
+ if (FAILED(result))
+ osd_printf_verbose("Direct3D: Error %08lX during texture GetSurfaceLevel call\n", result);
+
+ // if we have an offscreen plain surface, we can just StretchRect to it
+ if (m_type == TEXTURE_TYPE_SURFACE)
+ {
+ assert(m_d3dsurface != nullptr);
+
+ // set the source bounds
+ RECT source;
+ source.left = source.top = 0;
+ source.right = m_texinfo.width + 2 * m_xborderpix;
+ source.bottom = m_texinfo.height + 2 * m_yborderpix;
+
+ // set the target bounds
+ RECT dest;
+ dest = source;
+ dest.right *= m_xprescale;
+ dest.bottom *= m_yprescale;
+
+ // do the stretchrect
+ result = m_renderer->get_device()->StretchRect(m_d3dsurface, &source, scale_surface, &dest, D3DTEXF_POINT);
+ if (FAILED(result))
+ osd_printf_verbose("Direct3D: Error %08lX during device stretct_rect call\n", result);
+ }
+
+ // if we are using a texture render target, we need to do more preparations
+ else
+ {
+ IDirect3DSurface9 *backbuffer;
+
+ assert(m_d3dtex != nullptr);
+
+ // first remember the original render target and set the new one
+ result = m_renderer->get_device()->GetRenderTarget(0, &backbuffer);
+ if (FAILED(result))
+ osd_printf_verbose("Direct3D: Error %08lX during device GetRenderTarget call\n", result);
+ result = m_renderer->get_device()->SetRenderTarget(0, scale_surface);
+ if (FAILED(result))
+ osd_printf_verbose("Direct3D: Error %08lX during device SetRenderTarget call 1\n", result);
+ m_renderer->reset_render_states();
+
+ // start the scene
+ result = m_renderer->get_device()->BeginScene();
+ if (FAILED(result))
+ osd_printf_verbose("Direct3D: Error %08lX during device BeginScene call\n", result);
+
+ // configure the rendering pipeline
+ m_renderer->set_filter(FALSE);
+ m_renderer->set_blendmode(BLENDMODE_NONE);
+ result = m_renderer->get_device()->SetTexture(0, m_d3dtex);
+ if (FAILED(result))
+ osd_printf_verbose("Direct3D: Error %08lX during device SetTexture call\n", result);
+
+ // lock the vertex buffer
+ vertex *lockedbuf;
+ result = m_renderer->get_vertex_buffer()->Lock(0, 0, (VOID **)&lockedbuf, D3DLOCK_DISCARD);
+ if (FAILED(result))
+ osd_printf_verbose("Direct3D: Error %08lX during vertex buffer lock call\n", result);
+
+ // configure the X/Y coordinates on the target surface
+ lockedbuf[0].x = -0.5f;
+ lockedbuf[0].y = -0.5f;
+ lockedbuf[1].x = (float)((m_texinfo.width + 2 * m_xborderpix) * m_xprescale) - 0.5f;
+ lockedbuf[1].y = -0.5f;
+ lockedbuf[2].x = -0.5f;
+ lockedbuf[2].y = (float)((m_texinfo.height + 2 * m_yborderpix) * m_yprescale) - 0.5f;
+ lockedbuf[3].x = (float)((m_texinfo.width + 2 * m_xborderpix) * m_xprescale) - 0.5f;
+ lockedbuf[3].y = (float)((m_texinfo.height + 2 * m_yborderpix) * m_yprescale) - 0.5f;
+
+ // configure the U/V coordintes on the source texture
+ lockedbuf[0].u0 = 0.0f;
+ lockedbuf[0].v0 = 0.0f;
+ lockedbuf[1].u0 = (float)(m_texinfo.width + 2 * m_xborderpix) / (float)m_rawdims.c.x;
+ lockedbuf[1].v0 = 0.0f;
+ lockedbuf[2].u0 = 0.0f;
+ lockedbuf[2].v0 = (float)(m_texinfo.height + 2 * m_yborderpix) / (float)m_rawdims.c.y;
+ lockedbuf[3].u0 = (float)(m_texinfo.width + 2 * m_xborderpix) / (float)m_rawdims.c.x;
+ lockedbuf[3].v0 = (float)(m_texinfo.height + 2 * m_yborderpix) / (float)m_rawdims.c.y;
+
+ // reset the remaining vertex parameters
+ for (i = 0; i < 4; i++)
+ {
+ lockedbuf[i].z = 0.0f;
+ lockedbuf[i].rhw = 1.0f;
+ lockedbuf[i].color = D3DCOLOR_ARGB(0xff,0xff,0xff,0xff);
+ }
+
+ // unlock the vertex buffer
+ result = m_renderer->get_vertex_buffer()->Unlock();
+ if (FAILED(result))
+ osd_printf_verbose("Direct3D: Error %08lX during vertex buffer unlock call\n", result);
+
+ // set the stream and draw the triangle strip
+ result = m_renderer->get_device()->SetStreamSource(0, m_renderer->get_vertex_buffer(), 0, sizeof(vertex));
+ if (FAILED(result))
+ osd_printf_verbose("Direct3D: Error %08lX during device SetStreamSource call\n", result);
+ result = m_renderer->get_device()->DrawPrimitive(D3DPT_TRIANGLESTRIP, 0, 2);
+ if (FAILED(result))
+ osd_printf_verbose("Direct3D: Error %08lX during device DrawPrimitive call\n", result);
+
+ // end the scene
+ result = m_renderer->get_device()->EndScene();
+ if (FAILED(result))
+ osd_printf_verbose("Direct3D: Error %08lX during device end_scene call\n", result);
+
+ // reset the render target and release our reference to the backbuffer
+ result = m_renderer->get_device()->SetRenderTarget(0, backbuffer);
+ if (FAILED(result))
+ osd_printf_verbose("Direct3D: Error %08lX during device SetRenderTarget call 2\n", result);
+ backbuffer->Release();
+ m_renderer->reset_render_states();
+ }
+
+ // release our reference to the target surface
+ scale_surface->Release();
+}
+
+
+//============================================================
+// d3d_render_target::~d3d_render_target
+//============================================================
+
+d3d_render_target::~d3d_render_target()
+{
+ for (int index = 0; index < MAX_BLOOM_COUNT; index++)
+ {
+ if (bloom_texture[index] != nullptr)
+ bloom_texture[index]->Release();
+
+ if (bloom_surface[index] != nullptr)
+ bloom_surface[index]->Release();
+ }
+
+ for (int index = 0; index < 2; index++)
+ {
+ if (source_texture[index] != nullptr)
+ source_texture[index]->Release();
+
+ if (source_surface[index] != nullptr)
+ source_surface[index]->Release();
+
+ if (target_texture[index] != nullptr)
+ target_texture[index]->Release();
+
+ if (target_surface[index] != nullptr)
+ target_surface[index]->Release();
+ }
+
+ if (cache_texture != nullptr)
+ cache_texture->Release();
+
+ if (cache_surface != nullptr)
+ cache_surface->Release();
+}
+
+
+//============================================================
+// d3d_render_target::init - initializes a render target
+//============================================================
+
+bool d3d_render_target::init(renderer_d3d9 *d3d, int source_width, int source_height, int target_width, int target_height, int screen_index)
+{
+ HRESULT result;
+
+ this->width = source_width;
+ this->height = source_height;
+
+ this->target_width = target_width;
+ this->target_height = target_height;
+
+ this->screen_index = screen_index;
+
+ for (int index = 0; index < 2; index++)
+ {
+ result = d3d->get_device()->CreateTexture(source_width, source_height, 1, D3DUSAGE_RENDERTARGET, D3DFMT_A8R8G8B8, D3DPOOL_DEFAULT, &source_texture[index], nullptr);
+ if (FAILED(result))
+ return false;
+
+ source_texture[index]->GetSurfaceLevel(0, &source_surface[index]);
+
+ result = d3d->get_device()->CreateTexture(target_width, target_height, 1, D3DUSAGE_RENDERTARGET, D3DFMT_A8R8G8B8, D3DPOOL_DEFAULT, &target_texture[index], nullptr);
+ if (FAILED(result))
+ return false;
+
+ target_texture[index]->GetSurfaceLevel(0, &target_surface[index]);
+ }
+
+ result = d3d->get_device()->CreateTexture(target_width, target_height, 1, D3DUSAGE_RENDERTARGET, D3DFMT_A8R8G8B8, D3DPOOL_DEFAULT, &cache_texture, nullptr);
+ if (FAILED(result))
+ return false;
+
+ cache_texture->GetSurfaceLevel(0, &cache_surface);
+
+ auto win = d3d->assert_window();
+
+ auto first_screen = win->machine().first_screen();
+ bool vector_screen =
+ first_screen != nullptr &&
+ first_screen->screen_type() == SCREEN_TYPE_VECTOR;
+
+ float scale_factor = 0.75f;
+ int scale_count = vector_screen ? MAX_BLOOM_COUNT : HALF_BLOOM_COUNT;
+
+ float bloom_width = (float)source_width;
+ float bloom_height = (float)source_height;
+ float bloom_size = bloom_width < bloom_height ? bloom_width : bloom_height;
+ for (int bloom_index = 0; bloom_index < scale_count && bloom_size >= 2.0f; bloom_size *= scale_factor)
+ {
+ this->bloom_dims[bloom_index][0] = (int)bloom_width;
+ this->bloom_dims[bloom_index][1] = (int)bloom_height;
+
+ result = d3d->get_device()->CreateTexture((int)bloom_width, (int)bloom_height, 1, D3DUSAGE_RENDERTARGET, D3DFMT_A8R8G8B8, D3DPOOL_DEFAULT, &bloom_texture[bloom_index], nullptr);
+ if (FAILED(result))
+ return false;
+
+ bloom_texture[bloom_index]->GetSurfaceLevel(0, &bloom_surface[bloom_index]);
+
+ bloom_width *= scale_factor;
+ bloom_height *= scale_factor;
+
+ bloom_index++;
+
+ this->bloom_count = bloom_index;
+ }
+
+ return true;
+}
+
+texture_info *renderer_d3d9::get_default_texture()
+{
+ return m_texture_manager->get_default_texture();
+}
diff --git a/docs/release/src/osd/winui/bitmask.cpp b/docs/release/src/osd/winui/bitmask.cpp
new file mode 100644
index 00000000000..c8b542dce5d
--- /dev/null
+++ b/docs/release/src/osd/winui/bitmask.cpp
@@ -0,0 +1,146 @@
+// For licensing and usage information, read docs/winui_license.txt
+//****************************************************************************
+/* bitmask.c - Bitmask support routines - MSH 11/19/1998 */
+
+// standard windows headers
+#include <windows.h>
+
+// standard C headers
+#include <stdlib.h> /* For malloc and free */
+
+// MAME/MAMEUI headers
+#include "bitmask.h"
+#include "emu.h"
+/* Bit routines */
+static UCHAR maskTable[8] = { 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01 };
+
+/* Create a new LPBITS struct and return the new structure
+ * initialized to 'all bits cleared'
+ *
+ * nLength is the number of desired bits
+ */
+LPBITS NewBits(UINT nLength)
+{
+ UINT nSize = (nLength+7) / 8;
+
+ LPBITS lpBits = (LPBITS)malloc(sizeof(BITS));
+ if (lpBits)
+ {
+ lpBits->m_lpBits = (UCHAR *)malloc(nSize);
+ if (lpBits->m_lpBits)
+ {
+ memset(lpBits->m_lpBits, '\0', nSize);
+ lpBits->m_nSize = nSize;
+ }
+ else
+ {
+ free(lpBits);
+ lpBits = 0;
+ }
+ }
+
+ return lpBits;
+}
+
+void DeleteBits(LPBITS lpBits)
+{
+ if (!lpBits)
+ return;
+
+ if (lpBits->m_nSize && lpBits->m_lpBits)
+ free(lpBits->m_lpBits);
+
+ free(lpBits);
+}
+
+/* Test the 'nBit'th bit */
+BOOL TestBit(LPBITS lpBits, UINT nBit)
+{
+ UINT offset;
+ UCHAR mask;
+
+ if (!lpBits || !lpBits->m_lpBits)
+ return FALSE;
+
+ offset = nBit >> 3;
+
+ if (offset >= lpBits->m_nSize)
+ return FALSE;
+
+ mask = maskTable[nBit & 7];
+ return (lpBits->m_lpBits[offset] & mask) ? TRUE : FALSE;
+}
+
+/* Set the 'nBit'th bit */
+void SetBit(LPBITS lpBits, UINT nBit)
+{
+ UINT offset;
+ UCHAR mask;
+
+ if (!lpBits || !lpBits->m_lpBits)
+ return;
+
+ offset = nBit >> 3;
+
+ if (offset >= lpBits->m_nSize)
+ return;
+
+ mask = maskTable[nBit & 7];
+ lpBits->m_lpBits[offset] |= mask;
+}
+
+/* Clear the 'nBit'th bit */
+void ClearBit(LPBITS lpBits, UINT nBit)
+{
+ UINT offset;
+ UCHAR mask;
+
+ if (!lpBits || !lpBits->m_lpBits)
+ return;
+
+ offset = nBit >> 3;
+
+ if (offset >= lpBits->m_nSize)
+ return;
+
+ mask = maskTable[nBit & 7];
+ lpBits->m_lpBits[offset] &= ~mask;
+}
+
+/* Set or Clear all bits as specified by 'bSet' */
+void SetAllBits(LPBITS lpBits, BOOL bSet)
+{
+ if (lpBits && lpBits->m_nSize != 0 && lpBits->m_lpBits)
+ memset(lpBits->m_lpBits, (!bSet) ? '\0' : '\xFF', lpBits->m_nSize);
+}
+
+/* Find next bit that matches 'bSet'
+ *
+ * 'nStartPos' specifies the bit to start search after
+ * 'bSet' specifies to search for a set or unset bit
+ *
+ * Returns -1 if no bits are found
+ */
+int FindBit(LPBITS lpBits, int nStartPos, BOOL bSet)
+{
+ UINT i = 0;
+
+ if (!lpBits || !lpBits->m_nSize || !lpBits->m_lpBits)
+ return -1;
+
+ UINT end = lpBits->m_nSize << 3;
+
+ if (nStartPos < 0)
+ nStartPos = 0;
+
+ for (i = nStartPos; i < end; i++)
+ {
+ BOOL res = (TestBit(lpBits, i)) ? TRUE : FALSE;
+ if ((res && bSet) || (!res && !bSet))
+ return i;
+ }
+
+ return -1;
+}
+
+/* End of source file */
diff --git a/docs/release/src/osd/winui/bitmask.h b/docs/release/src/osd/winui/bitmask.h
new file mode 100644
index 00000000000..ad21e6ae7ae
--- /dev/null
+++ b/docs/release/src/osd/winui/bitmask.h
@@ -0,0 +1,33 @@
+// For licensing and usage information, read docs/winui_license.txt
+//****************************************************************************
+
+#ifndef BITMASK_H
+#define BITMASK_H
+
+/* Bit array type */
+typedef struct
+{
+ UINT m_nSize;
+ UCHAR* m_lpBits;
+} BITS, * LPBITS;
+
+/* Bit functions */
+LPBITS NewBits(UINT nLength /* in bits */);
+void DeleteBits(LPBITS lpBits);
+BOOL TestBit(LPBITS lpBits, UINT nBit);
+void SetBit(LPBITS lpBits, UINT nBit);
+void ClearBit(LPBITS lpBits, UINT nBit);
+void SetAllBits(LPBITS lpBits, BOOL bSet);
+int FindBit(LPBITS lpBits, int nStartPos, BOOL bSet);
+
+/* Linked list type */
+typedef struct
+{
+ LPVOID data;
+ LPVOID next;
+ LPVOID prev;
+} NODE, * LPNODE;
+
+/* Linked list functions */
+
+#endif /* BITMASK_H */
diff --git a/docs/release/src/osd/winui/columnedit.cpp b/docs/release/src/osd/winui/columnedit.cpp
new file mode 100644
index 00000000000..21cac963e76
--- /dev/null
+++ b/docs/release/src/osd/winui/columnedit.cpp
@@ -0,0 +1,439 @@
+// For licensing and usage information, read docs/winui_license.txt
+//****************************************************************************
+
+/***************************************************************************
+
+ columnedit.c
+
+ Column Edit dialog
+
+***************************************************************************/
+
+// standard windows headers
+#include <windows.h>
+#include <windowsx.h>
+#include <shellapi.h>
+#include <commctrl.h>
+#include <commdlg.h>
+#include <stdlib.h>
+#include <assert.h>
+
+// MAME/MAMEUI headers
+#include <stdlib.h>
+#include "resource.h"
+#include "mui_opts.h"
+#include "winui.h"
+
+#ifdef __GNUC__
+#pragma GCC diagnostic ignored "-Wunused-but-set-variable"
+#endif
+
+// Returns TRUE if successful
+static int DoExchangeItem(HWND hFrom, HWND hTo, int nMinItem)
+{
+ LV_ITEM lvi;
+ TCHAR buf[80];
+ BOOL b_res = 0;
+
+ lvi.iItem = ListView_GetNextItem(hFrom, -1, LVIS_SELECTED | LVIS_FOCUSED);
+ if (lvi.iItem < nMinItem)
+ {
+ if (lvi.iItem != -1) // Can't remove the first column
+ MessageBox(0, TEXT("Cannot Move Selected Item"), TEXT("Move Item"), IDOK);
+ SetFocus(hFrom);
+ return FALSE;
+ }
+ lvi.iSubItem = 0;
+ lvi.mask = LVIF_PARAM | LVIF_TEXT;
+ lvi.pszText = buf;
+ lvi.cchTextMax = ARRAY_LENGTH(buf);
+ if (ListView_GetItem(hFrom, &lvi))
+ {
+ // Add this item to the Show and delete it from Available
+ b_res = ListView_DeleteItem(hFrom, lvi.iItem);
+ lvi.iItem = ListView_GetItemCount(hTo);
+ (void)ListView_InsertItem(hTo, &lvi);
+ ListView_SetItemState(hTo, lvi.iItem, LVIS_FOCUSED | LVIS_SELECTED, LVIS_FOCUSED | LVIS_SELECTED);
+ SetFocus(hTo);
+ return lvi.iItem;
+ }
+ return FALSE;
+}
+
+static void DoMoveItem( HWND hWnd, BOOL bDown)
+{
+ LV_ITEM lvi;
+ TCHAR buf[80];
+ int nMaxpos = 0;
+ BOOL b_res = 0;
+
+ lvi.iItem = ListView_GetNextItem(hWnd, -1, LVIS_SELECTED | LVIS_FOCUSED);
+ nMaxpos = ListView_GetItemCount(hWnd);
+ if (lvi.iItem == -1 ||
+ (lvi.iItem < 2 && bDown == FALSE) || // Disallow moving First column
+ (lvi.iItem == 0 && bDown == TRUE) || // ""
+ (lvi.iItem == nMaxpos - 1 && bDown == TRUE))
+ {
+ SetFocus(hWnd);
+ return;
+ }
+ lvi.iSubItem = 0;
+ lvi.mask = LVIF_PARAM | LVIF_TEXT;
+ lvi.pszText = buf;
+ lvi.cchTextMax = ARRAY_LENGTH(buf);
+ if (ListView_GetItem(hWnd, &lvi))
+ {
+ // Add this item to the Show and delete it from Available
+ b_res = ListView_DeleteItem(hWnd, lvi.iItem);
+ lvi.iItem += (bDown) ? 1 : -1;
+ (void)ListView_InsertItem(hWnd,&lvi);
+ ListView_SetItemState(hWnd, lvi.iItem, LVIS_FOCUSED | LVIS_SELECTED, LVIS_FOCUSED | LVIS_SELECTED);
+ if (lvi.iItem == nMaxpos - 1)
+ EnableWindow(GetDlgItem(GetParent(hWnd), IDC_BUTTONMOVEDOWN), FALSE);
+ else
+ EnableWindow(GetDlgItem(GetParent(hWnd), IDC_BUTTONMOVEDOWN), TRUE);
+
+ if (lvi.iItem < 2)
+ EnableWindow(GetDlgItem(GetParent(hWnd), IDC_BUTTONMOVEUP), FALSE);
+ else
+ EnableWindow(GetDlgItem(GetParent(hWnd), IDC_BUTTONMOVEUP), TRUE);
+
+ SetFocus(hWnd);
+ }
+}
+
+INT_PTR InternalColumnDialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam,
+ int nColumnMax, int *shown, int *order,
+ const LPCTSTR *names, void (*pfnGetRealColumnOrder)(int *),
+ void (*pfnGetColumnInfo)(int *pnOrder, int *pnShown),
+ void (*pfnSetColumnInfo)(int *pnOrder, int *pnShown))
+{
+ static HWND hShown;
+ static HWND hAvailable;
+ static BOOL showMsg = FALSE;
+ int nShown = 0;
+ int nAvail = 0;
+ int i, nCount = 0;
+ LV_ITEM lvi;
+ DWORD dwShowStyle, dwAvailableStyle, dwView = 0;
+ BOOL b_res = 0;
+
+ switch (Msg)
+ {
+ case WM_INITDIALOG:
+ hShown = GetDlgItem(hDlg, IDC_LISTSHOWCOLUMNS);
+ hAvailable = GetDlgItem(hDlg, IDC_LISTAVAILABLECOLUMNS);
+ /*Change Style to Always Show Selection */
+ dwShowStyle = GetWindowLong(hShown, GWL_STYLE);
+ dwAvailableStyle = GetWindowLong(hAvailable, GWL_STYLE);
+ dwView = LVS_SHOWSELALWAYS | LVS_LIST;
+
+ /* Only set the window style if the view bits have changed. */
+ if ((dwShowStyle & LVS_TYPEMASK) != dwView)
+ SetWindowLong(hShown, GWL_STYLE, (dwShowStyle & ~LVS_TYPEMASK) | dwView);
+ if ((dwAvailableStyle & LVS_TYPEMASK) != dwView)
+ SetWindowLong(hAvailable, GWL_STYLE, (dwAvailableStyle & ~LVS_TYPEMASK) | dwView);
+
+ pfnGetColumnInfo(order, shown);
+
+ showMsg = TRUE;
+ nShown = 0;
+ nAvail = 0;
+
+ lvi.mask = LVIF_TEXT | LVIF_PARAM;
+ lvi.stateMask = 0;
+ lvi.iSubItem = 0;
+ lvi.iImage = -1;
+
+ /* Get the Column Order and save it */
+ pfnGetRealColumnOrder(order);
+
+ for (i = 0 ; i < nColumnMax; i++)
+ {
+ lvi.pszText = (TCHAR *) names[order[i]];
+ lvi.lParam = order[i];
+
+ if (shown[order[i]])
+ {
+ lvi.iItem = nShown;
+ (void)ListView_InsertItem(hShown, &lvi);
+ nShown++;
+ }
+ else
+ {
+ lvi.iItem = nAvail;
+ (void)ListView_InsertItem(hAvailable, &lvi);
+ nAvail++;
+ }
+ }
+ if( nShown > 0)
+ {
+ /*Set to Second, because first is not allowed*/
+ ListView_SetItemState(hShown, 1, LVIS_FOCUSED | LVIS_SELECTED, LVIS_FOCUSED | LVIS_SELECTED);
+ }
+ if( nAvail > 0)
+ {
+ ListView_SetItemState(hAvailable, 0, LVIS_FOCUSED | LVIS_SELECTED, LVIS_FOCUSED | LVIS_SELECTED);
+ }
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONADD), TRUE);
+ return TRUE;
+
+ case WM_NOTIFY:
+ {
+ NMHDR *nm = (NMHDR *)lParam;
+ NM_LISTVIEW *pnmv;
+ int nPos = 0;
+
+ switch (nm->code)
+ {
+ case NM_DBLCLK:
+ // Do Data Exchange here, which ListView was double clicked?
+ switch (nm->idFrom)
+ {
+ case IDC_LISTAVAILABLECOLUMNS:
+ // Move selected Item from Available to Shown column
+ nPos = DoExchangeItem(hAvailable, hShown, 0);
+ if (nPos)
+ {
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONADD), FALSE);
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONREMOVE), TRUE);
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEUP), TRUE);
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEDOWN), FALSE);
+ }
+ break;
+
+ case IDC_LISTSHOWCOLUMNS:
+ // Move selected Item from Show to Available column
+ if (DoExchangeItem(hShown, hAvailable, 1))
+ {
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONADD), TRUE);
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONREMOVE), FALSE);
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEUP), FALSE);
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEDOWN), FALSE);
+ }
+ break;
+ }
+ return TRUE;
+
+ case LVN_ITEMCHANGED:
+ // Don't handle this message for now
+ pnmv = (NM_LISTVIEW *)nm;
+ if (//!(pnmv->uOldState & LVIS_SELECTED) &&
+ (pnmv->uNewState & LVIS_SELECTED))
+ {
+ if (pnmv->iItem == 0 && pnmv->hdr.idFrom == IDC_LISTSHOWCOLUMNS)
+ {
+ // Don't allow selecting the first item
+ ListView_SetItemState(hShown, pnmv->iItem,
+ LVIS_FOCUSED | LVIS_SELECTED, LVIS_FOCUSED | LVIS_SELECTED);
+ if (showMsg)
+ {
+ MessageBox(0, TEXT("Changing this item is not permitted"), TEXT("Select Item"), IDOK);
+ showMsg = FALSE;
+ }
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONREMOVE), FALSE);
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEUP), FALSE);
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEDOWN), FALSE);
+ /*Leave Focus on Control*/
+ //SetFocus(GetDlgItem(hDlg,IDOK));
+ return TRUE;
+ }
+ else
+ showMsg = TRUE;
+ }
+ if( pnmv->uOldState & LVIS_SELECTED && pnmv->iItem == 0 && pnmv->hdr.idFrom == IDC_LISTSHOWCOLUMNS )
+ {
+ /*we enable the buttons again, if the first Entry loses selection*/
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONREMOVE), TRUE);
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEUP), TRUE);
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEDOWN), TRUE);
+ //SetFocus(GetDlgItem(hDlg,IDOK));
+ }
+ break;
+ case NM_SETFOCUS:
+ {
+ switch (nm->idFrom)
+ {
+ case IDC_LISTAVAILABLECOLUMNS:
+ if (ListView_GetItemCount(nm->hwndFrom) != 0)
+ {
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONADD), TRUE);
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONREMOVE), FALSE);
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEDOWN), FALSE);
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEUP), FALSE);
+ }
+ break;
+ case IDC_LISTSHOWCOLUMNS:
+ if (ListView_GetItemCount(nm->hwndFrom) != 0)
+ {
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONADD), FALSE);
+
+ if (ListView_GetNextItem(hShown, -1, LVIS_SELECTED | LVIS_FOCUSED) == 0 )
+ {
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONREMOVE), FALSE);
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEDOWN), FALSE);
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEUP), FALSE);
+ }
+ else
+ {
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONREMOVE), TRUE);
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEDOWN), TRUE);
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEUP), TRUE);
+ }
+ }
+ break;
+ }
+ }
+ break;
+ case LVN_KEYDOWN:
+ case NM_CLICK:
+ pnmv = (NM_LISTVIEW *)nm;
+ if (//!(pnmv->uOldState & LVIS_SELECTED) &&
+ (pnmv->uNewState & LVIS_SELECTED))
+ {
+ if (pnmv->iItem == 0 && pnmv->hdr.idFrom == IDC_LISTSHOWCOLUMNS)
+ {
+ }
+ }
+ switch (nm->idFrom)
+ {
+ case IDC_LISTAVAILABLECOLUMNS:
+ if (ListView_GetItemCount(nm->hwndFrom) != 0)
+ {
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONADD), TRUE);
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONREMOVE), FALSE);
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEDOWN), FALSE);
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEUP), FALSE);
+ }
+ break;
+
+ case IDC_LISTSHOWCOLUMNS:
+ if (ListView_GetItemCount(nm->hwndFrom) != 0)
+ {
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONADD), FALSE);
+ if (ListView_GetNextItem(hShown, -1, LVIS_SELECTED | LVIS_FOCUSED) == 0 )
+ {
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONREMOVE), FALSE);
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEDOWN), FALSE);
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEUP), FALSE);
+ }
+ else
+ {
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONREMOVE), TRUE);
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEDOWN), TRUE);
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEUP), TRUE);
+ }
+ }
+ break;
+ }
+ //SetFocus( nm->hwndFrom );
+ return TRUE;
+ }
+ }
+ return FALSE;
+ case WM_COMMAND:
+ {
+ WORD wID = GET_WM_COMMAND_ID(wParam, lParam);
+ HWND hWndCtrl = GET_WM_COMMAND_HWND(wParam, lParam);
+ int nPos = 0;
+
+ switch (wID)
+ {
+ case IDC_LISTSHOWCOLUMNS:
+ break;
+ case IDC_BUTTONADD:
+ // Move selected Item in Available to Shown
+ nPos = DoExchangeItem(hAvailable, hShown, 0);
+ if (nPos)
+ {
+ EnableWindow(hWndCtrl,FALSE);
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONREMOVE), TRUE);
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEUP), TRUE);
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEDOWN), FALSE);
+ }
+ break;
+
+ case IDC_BUTTONREMOVE:
+ // Move selected Item in Show to Available
+ if (DoExchangeItem( hShown, hAvailable, 1))
+ {
+ EnableWindow(hWndCtrl,FALSE);
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONADD), TRUE);
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEUP), FALSE);
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEDOWN), FALSE);
+ }
+ break;
+
+ case IDC_BUTTONMOVEDOWN:
+ // Move selected item in the Show window up 1 item
+ DoMoveItem(hShown, TRUE);
+ break;
+
+ case IDC_BUTTONMOVEUP:
+ // Move selected item in the Show window down 1 item
+ DoMoveItem(hShown, FALSE);
+ break;
+
+ case IDOK:
+ // Save users choices
+ nShown = ListView_GetItemCount(hShown);
+ nAvail = ListView_GetItemCount(hAvailable);
+ nCount = 0;
+ for (i = 0; i < nShown; i++)
+ {
+ lvi.iSubItem = 0;
+ lvi.mask = LVIF_PARAM;
+ lvi.pszText = 0;
+ lvi.iItem = i;
+ b_res = ListView_GetItem(hShown, &lvi);
+ order[nCount++] = lvi.lParam;
+ shown[lvi.lParam] = TRUE;
+ }
+ for (i = 0; i < nAvail; i++)
+ {
+ lvi.iSubItem = 0;
+ lvi.mask = LVIF_PARAM;
+ lvi.pszText = 0;
+ lvi.iItem = i;
+ b_res = ListView_GetItem(hAvailable, &lvi);
+ order[nCount++] = lvi.lParam;
+ shown[lvi.lParam] = FALSE;
+ }
+ pfnSetColumnInfo(order, shown);
+ EndDialog(hDlg, 1);
+ return TRUE;
+
+ case IDCANCEL:
+ EndDialog(hDlg, 0);
+ return TRUE;
+ }
+ }
+ break;
+ }
+ return 0;
+}
+
+static void GetColumnInfo(int *order, int *shown)
+{
+ GetColumnOrder(order);
+ GetColumnShown(shown);
+}
+
+static void SetColumnInfo(int *order, int *shown)
+{
+ SetColumnOrder(order);
+ SetColumnShown(shown);
+}
+
+INT_PTR CALLBACK ColumnDialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam)
+{
+ static int shown[COLUMN_MAX];
+ static int order[COLUMN_MAX];
+ extern const LPCTSTR column_names[COLUMN_MAX]; // from winui.c, should improve
+
+ return InternalColumnDialogProc(hDlg, Msg, wParam, lParam, COLUMN_MAX,
+ shown, order, column_names, GetRealColumnOrder, GetColumnInfo, SetColumnInfo);
+}
+
+
+
diff --git a/docs/release/src/osd/winui/columnedit.h b/docs/release/src/osd/winui/columnedit.h
new file mode 100644
index 00000000000..a3c499ed999
--- /dev/null
+++ b/docs/release/src/osd/winui/columnedit.h
@@ -0,0 +1,15 @@
+// For licensing and usage information, read docs/winui_license.txt
+//****************************************************************************
+
+#ifndef COLUMNEDIT_H
+#define COLUMNEDIT_H
+
+INT_PTR InternalColumnDialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam,
+ int nColumnMax, int *shown, int *order,
+ const LPCTSTR *names, void (*pfnGetRealColumnOrder)(int *),
+ void (*pfnGetColumnInfo)(int *pnOrder, int *pnShown),
+ void (*pfnSetColumnInfo)(int *pnOrder, int *pnShown));
+
+INT_PTR CALLBACK ColumnDialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam);
+
+#endif
diff --git a/docs/release/src/osd/winui/datamap.cpp b/docs/release/src/osd/winui/datamap.cpp
new file mode 100644
index 00000000000..fa4d6e05b4d
--- /dev/null
+++ b/docs/release/src/osd/winui/datamap.cpp
@@ -0,0 +1,782 @@
+// For licensing and usage information, read docs/winui_license.txt
+//****************************************************************************
+
+//============================================================
+//
+// datamap.c - Win32 dialog and options bridge code
+//
+//============================================================
+
+// standard windows headers
+#include <windows.h>
+#include <windowsx.h>
+#include <commctrl.h>
+#include <tchar.h>
+
+// standard C headers
+#include <stdlib.h>
+#include <stdarg.h>
+#include <ctype.h>
+#include <assert.h>
+#include <math.h>
+
+// MAME/MAMEUI headers
+#include "mui_opts.h"
+#include "corestr.h"
+#include "strconv.h"
+#include "datamap.h"
+#include "winutf8.h"
+#include "emu.h"
+
+
+#ifdef _MSC_VER
+#define snprintf _snprintf
+#endif
+
+//============================================================
+// TYPE DEFINITIONS
+//============================================================
+
+enum _control_type
+{
+ CT_UNKNOWN,
+ CT_BUTTON,
+ CT_STATIC,
+ CT_EDIT,
+ CT_COMBOBOX,
+ CT_TRACKBAR,
+ CT_LISTVIEW
+};
+
+typedef enum _control_type control_type;
+
+
+typedef struct _datamap_entry datamap_entry;
+struct _datamap_entry
+{
+ // the basics about the entry
+ int dlgitem;
+ datamap_entry_type type;
+ const char *option_name;
+
+ // callbacks
+ datamap_callback callbacks[DCT_COUNT];
+ get_option_name_callback get_option_name;
+
+ // formats
+ const char *int_format;
+ const char *float_format;
+
+ // trackbar options
+ BOOL use_trackbar_options;
+ float trackbar_min;
+ float trackbar_max;
+ float trackbar_increments;
+};
+
+
+struct _datamap
+{
+ int entry_count;
+ datamap_entry entries[256]; // 256 options entries seems enough for now...
+};
+
+typedef void (*datamap_default_callback)(datamap *map, HWND control, windows_options *opts, datamap_entry *entry, const char *option_name);
+
+
+
+//============================================================
+// PROTOTYPES
+//============================================================
+
+static datamap_entry *find_entry(datamap *map, int dlgitem);
+static control_type get_control_type(HWND control);
+static int control_operation(datamap *map, HWND dialog, windows_options *opts,
+ datamap_entry *entry, datamap_callback_type callback_type);
+static void read_control(datamap *map, HWND control, windows_options *opts,
+ datamap_entry *entry, const char *option_name);
+static void populate_control(datamap *map, HWND control, windows_options *opts,
+ datamap_entry *entry, const char *option_name);
+static char *tztrim(float float_value);
+
+
+//============================================================
+// datamap_create
+//============================================================
+
+datamap *datamap_create(void)
+{
+ datamap *map = (datamap *)malloc(sizeof(*map));
+
+ if (!map)
+ return NULL;
+
+ map->entry_count = 0;
+ return map;
+}
+
+
+
+//============================================================
+// datamap_free
+//============================================================
+
+void datamap_free(datamap *map)
+{
+ free(map);
+}
+
+
+
+//============================================================
+// datamap_add
+//============================================================
+
+void datamap_add(datamap *map, int dlgitem, datamap_entry_type type, const char *option_name)
+{
+ // sanity check for too many entries
+ assert(map->entry_count < ARRAY_LENGTH(map->entries));
+
+ // add entry to the datamap
+ memset(&map->entries[map->entry_count], 0, sizeof(map->entries[map->entry_count]));
+ map->entries[map->entry_count].dlgitem = dlgitem;
+ map->entries[map->entry_count].type = type;
+ map->entries[map->entry_count].option_name = option_name;
+ map->entry_count++;
+}
+
+
+
+//============================================================
+// datamap_set_callback
+//============================================================
+
+void datamap_set_callback(datamap *map, int dlgitem, datamap_callback_type callback_type, datamap_callback callback)
+{
+ datamap_entry *entry;
+
+ assert(callback_type >= 0);
+ assert(callback_type < DCT_COUNT);
+
+ entry = find_entry(map, dlgitem);
+ entry->callbacks[callback_type] = callback;
+}
+
+
+
+//============================================================
+// datamap_set_option_name_callback
+//============================================================
+
+void datamap_set_option_name_callback(datamap *map, int dlgitem, get_option_name_callback get_option_name)
+{
+ datamap_entry *entry;
+ entry = find_entry(map, dlgitem);
+ entry->get_option_name = get_option_name;
+}
+
+
+
+//============================================================
+// datamap_set_trackbar_range
+//============================================================
+
+void datamap_set_trackbar_range(datamap *map, int dlgitem, float min, float max, float increments)
+{
+ datamap_entry *entry = find_entry(map, dlgitem);
+ entry->use_trackbar_options = TRUE;
+ entry->trackbar_min = min;
+ entry->trackbar_max = max;
+ entry->trackbar_increments = increments;
+}
+
+
+
+//============================================================
+// datamap_set_int_format
+//============================================================
+
+void datamap_set_int_format(datamap *map, int dlgitem, const char *format)
+{
+ datamap_entry *entry = find_entry(map, dlgitem);
+ entry->int_format = format;
+}
+
+
+
+//============================================================
+// datamap_set_float_format
+//============================================================
+
+void datamap_set_float_format(datamap *map, int dlgitem, const char *format)
+{
+ datamap_entry *entry = find_entry(map, dlgitem);
+ entry->float_format = format;
+}
+
+
+
+//============================================================
+// datamap_read_control
+//============================================================
+
+BOOL datamap_read_control(datamap *map, HWND dialog, windows_options &opts, int dlgitem)
+{
+ datamap_entry *entry = find_entry(map, dlgitem);
+ return control_operation(map, dialog, &opts, entry, DCT_READ_CONTROL);
+}
+
+
+
+//============================================================
+// datamap_read_all_controls
+//============================================================
+
+void datamap_read_all_controls(datamap *map, HWND dialog, windows_options &opts)
+{
+ for (int i = 0; i < map->entry_count; i++)
+ control_operation(map, dialog, &opts, &map->entries[i], DCT_READ_CONTROL);
+}
+
+
+
+//============================================================
+// datamap_populate_control
+//============================================================
+
+void datamap_populate_control(datamap *map, HWND dialog, windows_options &opts, int dlgitem)
+{
+ datamap_entry *entry = find_entry(map, dlgitem);
+ control_operation(map, dialog, &opts, entry, DCT_POPULATE_CONTROL);
+}
+
+
+
+//============================================================
+// datamap_populate_all_controls
+//============================================================
+
+void datamap_populate_all_controls(datamap *map, HWND dialog, windows_options &opts)
+{
+ for (int i = 0; i < map->entry_count; i++)
+ control_operation(map, dialog, &opts, &map->entries[i], DCT_POPULATE_CONTROL);
+}
+
+
+
+//============================================================
+// datamap_update_control
+//============================================================
+
+void datamap_update_control(datamap *map, HWND dialog, windows_options &opts, int dlgitem)
+{
+ datamap_entry *entry = find_entry(map, dlgitem);
+ control_operation(map, dialog, &opts, entry, DCT_UPDATE_STATUS);
+}
+
+
+
+//============================================================
+// datamap_update_all_controls
+//============================================================
+
+void datamap_update_all_controls(datamap *map, HWND dialog, windows_options *opts)
+{
+ for (int i = 0; i < map->entry_count; i++)
+ control_operation(map, dialog, opts, &map->entries[i], DCT_UPDATE_STATUS);
+}
+
+
+
+//============================================================
+// find_entry
+//============================================================
+
+static datamap_entry *find_entry(datamap *map, int dlgitem)
+{
+ for (int i = 0; i < map->entry_count; i++)
+ {
+ if (map->entries[i].dlgitem == dlgitem)
+ return &map->entries[i];
+ }
+
+ // should not reach here
+ assert(FALSE);
+ return NULL;
+}
+
+
+
+//============================================================
+// get_control_type
+//============================================================
+
+static control_type get_control_type(HWND control)
+{
+ control_type type;
+ TCHAR class_name[256];
+
+ GetClassName(control, class_name, ARRAY_LENGTH(class_name));
+ if (!_tcscmp(class_name, WC_BUTTON))
+ type = CT_BUTTON;
+ else if (!_tcscmp(class_name, WC_STATIC))
+ type = CT_STATIC;
+ else if (!_tcscmp(class_name, WC_EDIT))
+ type = CT_EDIT;
+ else if (!_tcscmp(class_name, WC_COMBOBOX))
+ type = CT_COMBOBOX;
+ else if (!_tcscmp(class_name, TRACKBAR_CLASS))
+ type = CT_TRACKBAR;
+ else if (!_tcscmp(class_name, WC_LISTVIEW))
+ type = CT_LISTVIEW;
+ else
+ type = CT_UNKNOWN;
+
+ assert(type != CT_UNKNOWN);
+ return type;
+}
+
+
+
+//============================================================
+// is_control_displayonly
+//============================================================
+
+static BOOL is_control_displayonly(HWND control)
+{
+ BOOL displayonly = 0;
+ switch(get_control_type(control))
+ {
+ case CT_STATIC:
+ displayonly = TRUE;
+ break;
+
+ case CT_EDIT:
+ displayonly = (GetWindowLong(control, GWL_STYLE) & ES_READONLY) ? TRUE : FALSE;
+ break;
+
+ default:
+ displayonly = FALSE;
+ break;
+ }
+
+ if (!IsWindowEnabled(control))
+ displayonly = TRUE;
+ return displayonly;
+}
+
+
+
+//============================================================
+// broadcast_changes
+//============================================================
+
+static void broadcast_changes(datamap *map, HWND dialog, windows_options *opts, datamap_entry *entry, const char *option_name)
+{
+ HWND other_control;
+ const char *that_option_name;
+ int i;
+
+ for (i = 0; i < map->entry_count; i++)
+ {
+ // search for an entry with the same option_name, but is not the exact
+ // same entry
+ that_option_name = map->entries[i].option_name;
+ if (map->entries[i].option_name && (&map->entries[i] != entry) && !strcmp(that_option_name, option_name))
+ {
+ // we've found a control sharing the same option; populate it
+ other_control = GetDlgItem(dialog, map->entries[i].dlgitem);
+ if (other_control != NULL)
+ populate_control(map, other_control, opts, &map->entries[i], that_option_name);
+ }
+ }
+}
+
+
+
+//============================================================
+// control_operation
+//============================================================
+
+static int control_operation(datamap *map, HWND dialog, windows_options *opts,
+ datamap_entry *entry, datamap_callback_type callback_type)
+{
+ static const datamap_default_callback default_callbacks[DCT_COUNT] =
+ {
+ read_control,
+ populate_control,
+ NULL
+ };
+ HWND control;
+ int result = 0;
+ const char *option_name;
+ char option_name_buffer[64];
+ char option_value[1024] = {0, };
+
+ control = GetDlgItem(dialog, entry->dlgitem);
+ if (control != NULL)
+ {
+ // don't do anything if we're reading from a display-only control
+ if ((callback_type != DCT_READ_CONTROL) || !is_control_displayonly(control))
+ {
+ // figure out the option_name
+ if (entry->get_option_name != NULL)
+ {
+ option_name_buffer[0] = '\0';
+ entry->get_option_name(map, dialog, control, option_name_buffer, ARRAY_LENGTH(option_name_buffer));
+ option_name = option_name_buffer;
+ }
+ else
+ {
+ option_name = entry->option_name;
+ }
+
+ // if reading, get the option value, solely for the purposes of comparison
+ if ((callback_type == DCT_READ_CONTROL) && (option_name != NULL))
+ snprintf(option_value, ARRAY_LENGTH(option_value), "%s", opts->value(option_name));
+
+ if (entry->callbacks[callback_type] != NULL)
+ {
+ // use custom callback
+ result = entry->callbacks[callback_type](map, dialog, control, opts, option_name);
+ }
+ else if (default_callbacks[callback_type] && (option_name != NULL))
+ {
+ // use default callback
+ default_callbacks[callback_type](map, control, opts, entry, option_name);
+ }
+
+ // the result is dependent on the type of control
+ switch(callback_type)
+ {
+ case DCT_READ_CONTROL:
+ // For callbacks that returned TRUE, do not broadcast_changes.
+ if (!result) {
+ // do a check to see if the control changed
+ result = (option_name != NULL) && (strcmp(option_value, opts->value(option_name)) != 0);
+ if (result)
+ {
+ // the value has changed; we may need to broadcast the change
+ broadcast_changes(map, dialog, opts, entry, option_name);
+ }
+ }
+ break;
+
+ default:
+ // do nothing
+ break;
+ }
+ }
+ }
+ return result;
+}
+
+
+
+//============================================================
+// trackbar_value_from_position
+//============================================================
+
+static float trackbar_value_from_position(datamap_entry *entry, int position)
+{
+ float position_f = position;
+
+ if (entry->use_trackbar_options)
+ {
+ position_f = (position_f * entry->trackbar_increments) + entry->trackbar_min;
+ }
+ return position_f;
+}
+
+
+
+//============================================================
+// trackbar_position_from_value
+//============================================================
+
+static int trackbar_position_from_value(datamap_entry *entry, float value)
+{
+ if (entry->use_trackbar_options)
+ {
+ value = floor((value - entry->trackbar_min) / entry->trackbar_increments + 0.5);
+ }
+ return (int) value;
+}
+
+
+
+//============================================================
+// read_control
+//============================================================
+
+static void read_control(datamap *map, HWND control, windows_options *opts, datamap_entry *entry, const char *option_name)
+{
+ BOOL bool_value = 0;
+ int int_value = 0;
+ float float_value = 0;
+ const char *string_value;
+ int selected_index = 0;
+ int trackbar_pos = 0;
+ std::string error;
+ // use default read value behavior
+ switch(get_control_type(control))
+ {
+ case CT_BUTTON:
+ assert(entry->type == DM_BOOL);
+ bool_value = Button_GetCheck(control);
+ opts->set_value(option_name, bool_value, OPTION_PRIORITY_CMDLINE,error);
+ break;
+
+ case CT_COMBOBOX:
+ selected_index = ComboBox_GetCurSel(control);
+ if (selected_index >= 0)
+ {
+ switch(entry->type)
+ {
+ case DM_INT:
+ int_value = (int) ComboBox_GetItemData(control, selected_index);
+ opts->set_value(option_name, int_value, OPTION_PRIORITY_CMDLINE,error);
+ break;
+
+ case DM_STRING:
+ string_value = (const char *) ComboBox_GetItemData(control, selected_index);
+ opts->set_value(option_name, string_value ? string_value : "", OPTION_PRIORITY_CMDLINE,error);
+ break;
+
+ default:
+ break;
+ }
+ }
+ break;
+
+ case CT_TRACKBAR:
+ trackbar_pos = SendMessage(control, TBM_GETPOS, 0, 0);
+ float_value = trackbar_value_from_position(entry, trackbar_pos);
+ switch(entry->type)
+ {
+ case DM_INT:
+ int_value = (int) float_value;
+ if (int_value != opts->int_value(option_name)) {
+ opts->set_value(option_name, int_value, OPTION_PRIORITY_CMDLINE,error);
+ }
+ break;
+
+ case DM_FLOAT:
+ // Use tztrim(float_value) or we get trailing zero's that break options_equal().
+ if (float_value != opts->float_value(option_name)) {
+ opts->set_value(option_name, tztrim(float_value), OPTION_PRIORITY_CMDLINE,error);
+ }
+ break;
+
+ default:
+ break;
+ }
+ break;
+
+ case CT_EDIT:
+ // NYI
+ break;
+
+ case CT_STATIC:
+ case CT_LISTVIEW:
+ case CT_UNKNOWN:
+ // non applicable
+ break;
+ }
+}
+
+
+
+//============================================================
+// populate_control
+//============================================================
+
+static void populate_control(datamap *map, HWND control, windows_options *opts, datamap_entry *entry, const char *option_name)
+{
+ int i = 0;
+ BOOL bool_value = 0;
+ int int_value = 0;
+ float float_value = 0;
+ const char *string_value;
+ const char *item_string;
+ int selected_index = 0;
+ char buffer[128];
+ int trackbar_range = 0;
+ int trackbar_pos = 0;
+ double trackbar_range_d = 0;
+
+ // use default populate control value
+ switch(get_control_type(control))
+ {
+ case CT_BUTTON:
+ assert(entry->type == DM_BOOL);
+ bool_value = opts->bool_value(option_name);
+ Button_SetCheck(control, bool_value);
+ break;
+
+ case CT_EDIT:
+ case CT_STATIC:
+ switch(entry->type)
+ {
+ case DM_STRING:
+ string_value = opts->value(option_name);
+ break;
+
+ case DM_INT:
+ int_value = opts->int_value(option_name);
+ if (entry->int_format != NULL)
+ snprintf(buffer, ARRAY_LENGTH(buffer), entry->int_format, int_value);
+ else
+ snprintf(buffer, ARRAY_LENGTH(buffer), "%d", int_value);
+ string_value = buffer;
+ break;
+
+ case DM_FLOAT:
+ float_value = opts->float_value(option_name);
+ if (entry->float_format != NULL)
+ snprintf(buffer, ARRAY_LENGTH(buffer), entry->float_format, float_value);
+ else
+ snprintf(buffer, ARRAY_LENGTH(buffer), "%f", float_value);
+ string_value = buffer;
+ break;
+
+ default:
+ string_value = "";
+ break;
+ }
+ if (string_value == NULL)
+ string_value = "";
+ win_set_window_text_utf8(control, string_value);
+ break;
+
+ case CT_COMBOBOX:
+ selected_index = 0;
+ switch(entry->type)
+ {
+ case DM_INT:
+ int_value = opts->int_value(option_name);
+ for (i = 0; i < ComboBox_GetCount(control); i++)
+ {
+ if (int_value == (int) ComboBox_GetItemData(control, i))
+ {
+ selected_index = i;
+ break;
+ }
+ }
+ break;
+
+ case DM_STRING:
+ string_value = opts->value(option_name);
+ for (i = 0; i < ComboBox_GetCount(control); i++)
+ {
+ item_string = (const char *) ComboBox_GetItemData(control, i);
+ if (!core_stricmp(string_value, item_string ? item_string : ""))
+ {
+ selected_index = i;
+ break;
+ }
+ }
+ break;
+
+ default:
+ break;
+ }
+ (void)ComboBox_SetCurSel(control, selected_index);
+ break;
+
+ case CT_TRACKBAR:
+ // do we need to set the trackbar options?
+/* if (!entry->use_trackbar_options)
+ {
+ switch(options_get_range_type(opts, option_name))
+ {
+ case OPTION_RANGE_NONE:
+ // do nothing
+ break;
+
+ case OPTION_RANGE_INT:
+ options_get_range_int(opts, option_name, &minval_int, &maxval_int);
+ entry->use_trackbar_options = TRUE;
+ entry->trackbar_min = minval_int;
+ entry->trackbar_max = maxval_int;
+ entry->trackbar_increments = 1;
+ break;
+
+ case OPTION_RANGE_FLOAT:
+ options_get_range_float(opts, option_name, &minval_float, &maxval_float);
+ entry->use_trackbar_options = TRUE;
+ entry->trackbar_min = minval_float;
+ entry->trackbar_max = maxval_float;
+ entry->trackbar_increments = (float)0.05;
+ break;
+ }
+ }
+ */
+
+ // do we specify default options for this control? if so, we need to specify
+ // the range
+ if (entry->use_trackbar_options)
+ {
+ trackbar_range_d = floor(((entry->trackbar_max - entry->trackbar_min)
+ / entry->trackbar_increments) + 0.5);
+ trackbar_range = (int) trackbar_range_d;
+ SendMessage(control, TBM_SETRANGEMIN, (WPARAM) FALSE, (LPARAM) 0);
+ SendMessage(control, TBM_SETRANGEMAX, (WPARAM) FALSE, (LPARAM) trackbar_range);
+ }
+
+ switch(entry->type)
+ {
+ case DM_INT:
+ int_value = opts->int_value(option_name);
+ trackbar_pos = trackbar_position_from_value(entry, int_value);
+ break;
+
+ case DM_FLOAT:
+ float_value = opts->float_value(option_name);
+ trackbar_pos = trackbar_position_from_value(entry, float_value);
+ break;
+
+ default:
+ trackbar_pos = 0;
+ break;
+ }
+ SendMessage(control, TBM_SETPOS, (WPARAM) TRUE, (LPARAM) trackbar_pos);
+ break;
+
+ case CT_LISTVIEW:
+ case CT_UNKNOWN:
+ // non applicable
+ break;
+ }
+}
+
+// Return a string from a float value with trailing zeros removed.
+static char *tztrim(float float_value)
+{
+ static char tz_string[20];
+ char float_string[20];
+ char *ptr;
+ int i = 0;
+
+ sprintf(float_string, "%f", float_value);
+
+ ptr = float_string;
+
+ // Copy before the '.'
+ while (*ptr && *ptr != '.') {
+ tz_string[i++] = *ptr++;
+ }
+ // add the '.' and the next digit
+ if (*ptr == '.') {
+ tz_string[i++] = *ptr++;
+ tz_string[i++] = *ptr++;
+ }
+ // Keep copying until we hit a '0'
+ while (*ptr && *ptr != '0') {
+ tz_string[i++] = *ptr++;
+ }
+ // Null terminate
+ tz_string[i] = '\0';
+ return tz_string;
+}
+
diff --git a/docs/release/src/osd/winui/datamap.h b/docs/release/src/osd/winui/datamap.h
new file mode 100644
index 00000000000..045ae1245c4
--- /dev/null
+++ b/docs/release/src/osd/winui/datamap.h
@@ -0,0 +1,73 @@
+// For licensing and usage information, read docs/winui_license.txt
+//****************************************************************************
+
+//============================================================
+//
+// datamap.c - Win32 dialog and options bridge code
+//
+//============================================================
+
+#ifndef _DATAMAP_H_
+#define _DATAMAP_H_
+
+#include "emu.h"
+
+
+//============================================================
+// TYPE DEFINITIONS
+//============================================================
+
+enum _datamap_entry_type
+{
+ DM_NONE = 0,
+ DM_BOOL,
+ DM_INT,
+ DM_FLOAT,
+ DM_STRING
+};
+typedef enum _datamap_entry_type datamap_entry_type;
+
+
+enum _datamap_callback_type
+{
+ DCT_READ_CONTROL,
+ DCT_POPULATE_CONTROL,
+ DCT_UPDATE_STATUS,
+
+ DCT_COUNT
+};
+
+typedef enum _datamap_callback_type datamap_callback_type;
+
+
+typedef struct _datamap datamap;
+// MSH - Callback can now return TRUE, signifying that changes have been made, but should NOT be broadcast.
+typedef BOOL (*datamap_callback)(datamap *map, HWND dialog, HWND control, windows_options *opts, const char *option_name);
+typedef void (*get_option_name_callback)(datamap *map, HWND dialog, HWND control, char *buffer, size_t buffer_size);
+
+
+//============================================================
+// PROTOTYPES
+//============================================================
+
+// datamap creation and disposal
+datamap *datamap_create(void);
+void datamap_free(datamap *map);
+
+// datamap setup
+void datamap_add(datamap *map, int dlgitem, datamap_entry_type type, const char *option_name);
+void datamap_set_callback(datamap *map, int dlgitem, datamap_callback_type callback_type, datamap_callback callback);
+void datamap_set_option_name_callback(datamap *map, int dlgitem, get_option_name_callback get_option_name);
+void datamap_set_trackbar_range(datamap *map, int dlgitem, float min, float max, float increments);
+void datamap_set_int_format(datamap *map, int dlgitem, const char *format);
+void datamap_set_float_format(datamap *map, int dlgitem, const char *format);
+
+// datamap operations
+BOOL datamap_read_control(datamap *map, HWND dialog, windows_options &opts, int dlgitem);
+void datamap_read_all_controls(datamap *map, HWND dialog, windows_options &opts);
+void datamap_populate_control(datamap *map, HWND dialog, windows_options &opts, int dlgitem);
+void datamap_populate_all_controls(datamap *map, HWND dialog, windows_options &opts);
+void datamap_update_control(datamap *map, HWND dialog, windows_options &opts, int dlgitem);
+void datamap_update_all_controls(datamap *map, HWND dialog, windows_options *opts);
+
+#endif // _DATAMAP_H_
diff --git a/docs/release/src/osd/winui/dialogs.cpp b/docs/release/src/osd/winui/dialogs.cpp
new file mode 100644
index 00000000000..d39fd6c7656
--- /dev/null
+++ b/docs/release/src/osd/winui/dialogs.cpp
@@ -0,0 +1,864 @@
+// For licensing and usage information, read docs/winui_license.txt
+// MASTER
+//****************************************************************************
+
+/***************************************************************************
+
+ dialogs.c
+
+ Dialog box procedures go here
+
+***************************************************************************/
+
+
+#ifdef _MSC_VER
+#ifndef NONAMELESSUNION
+#define NONAMELESSUNION
+#endif
+#endif
+
+// standard windows headers
+#include <windows.h>
+#include <windowsx.h>
+#include <shellapi.h>
+#include <commctrl.h>
+#include <commdlg.h>
+
+// standard C headers
+#include <string.h>
+#include <tchar.h>
+#include <stdlib.h>
+#include <assert.h>
+
+// MAMEUI headers
+#include "bitmask.h"
+#include "treeview.h"
+#include "resource.h"
+#include "mui_opts.h"
+#include "help.h"
+#include "winui.h"
+#include "properties.h" // For GetHelpIDs
+
+// MAME headers
+#include "strconv.h"
+#include "winutf8.h"
+#include "drivenum.h"
+
+#ifdef _MSC_VER
+#define snprintf _snprintf
+#endif
+
+
+static std::string g_FilterText;
+
+#define NUM_EXCLUSIONS 12
+
+/* Pairs of filters that exclude each other */
+static DWORD filterExclusion[NUM_EXCLUSIONS] =
+{
+ IDC_FILTER_CLONES, IDC_FILTER_ORIGINALS,
+ IDC_FILTER_NONWORKING, IDC_FILTER_WORKING,
+ IDC_FILTER_UNAVAILABLE, IDC_FILTER_AVAILABLE,
+ IDC_FILTER_RASTER, IDC_FILTER_VECTOR,
+ IDC_FILTER_HORIZONTAL, IDC_FILTER_VERTICAL,
+ IDC_FILTER_ARCADE, IDC_FILTER_MESS,
+};
+
+static void DisableFilterControls(HWND hWnd, LPCFOLDERDATA lpFilterRecord, LPCFILTER_ITEM lpFilterItem, DWORD dwFlags);
+static void EnableFilterExclusions(HWND hWnd, DWORD dwCtrlID);
+static DWORD ValidateFilters(LPCFOLDERDATA lpFilterRecord, DWORD dwFlags);
+static void OnHScroll(HWND hWnd, HWND hwndCtl, UINT code, int pos);
+
+/***************************************************************************/
+
+const char * GetFilterText(void)
+{
+ return g_FilterText.c_str();
+}
+
+INT_PTR CALLBACK ResetDialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam)
+{
+ BOOL resetFilters = FALSE;
+ BOOL resetGames = FALSE;
+ BOOL resetUI = FALSE;
+ BOOL resetDefaults = FALSE;
+
+ switch (Msg)
+ {
+ case WM_INITDIALOG:
+ return TRUE;
+
+ case WM_HELP:
+ /* User clicked the ? from the upper right on a control */
+ HelpFunction((HWND)((LPHELPINFO)lParam)->hItemHandle, MAMEUICONTEXTHELP, HH_TP_HELP_WM_HELP, GetHelpIDs());
+ break;
+
+ case WM_CONTEXTMENU:
+ HelpFunction((HWND)wParam, MAMEUICONTEXTHELP, HH_TP_HELP_CONTEXTMENU, GetHelpIDs());
+
+ break;
+
+ case WM_COMMAND :
+ switch (GET_WM_COMMAND_ID(wParam, lParam))
+ {
+ case IDOK :
+ resetFilters = Button_GetCheck(GetDlgItem(hDlg, IDC_RESET_FILTERS));
+ resetGames = Button_GetCheck(GetDlgItem(hDlg, IDC_RESET_GAMES));
+ resetDefaults = Button_GetCheck(GetDlgItem(hDlg, IDC_RESET_DEFAULT));
+ resetUI = Button_GetCheck(GetDlgItem(hDlg, IDC_RESET_UI));
+ if (resetFilters || resetGames || resetUI || resetDefaults)
+ {
+
+ TCHAR temp[400];
+ _tcscpy(temp, TEXT(MAMEUINAME));
+ _tcscat(temp, TEXT(" will now reset the following\n"));
+ _tcscat(temp, TEXT("to the default settings:\n\n"));
+
+ if (resetDefaults)
+ _tcscat(temp, TEXT("Global game options\n"));
+ if (resetGames)
+ _tcscat(temp, TEXT("Individual game options\n"));
+ if (resetFilters)
+ _tcscat(temp, TEXT("Custom folder filters\n"));
+ if (resetUI)
+ {
+ _tcscat(temp, TEXT("User interface settings\n\n"));
+ _tcscat(temp, TEXT("Resetting the User Interface options\n"));
+ _tcscat(temp, TEXT("requires exiting "));
+ _tcscat(temp, TEXT(MAMEUINAME));
+ _tcscat(temp, TEXT(".\n"));
+ }
+ _tcscat(temp, TEXT("\nDo you wish to continue?"));
+ if (MessageBox(hDlg, temp, TEXT("Restore Settings"), IDOK) == IDOK)
+ {
+ if (resetFilters)
+ ResetFilters();
+
+ if (resetGames)
+ ResetAllGameOptions();
+
+ if (resetDefaults)
+ ResetGameDefaults();
+
+ // This is the only case we need to exit and restart for.
+ if (resetUI)
+ {
+ ResetGUI();
+ EndDialog(hDlg, 1);
+ return TRUE;
+ } else {
+ EndDialog(hDlg, 0);
+ return TRUE;
+ }
+ } else {
+ // Give the user a chance to change what they want to reset.
+ break;
+ }
+ }
+ // Nothing was selected but OK, just fall through
+ case IDCANCEL :
+ EndDialog(hDlg, 0);
+ return TRUE;
+ }
+ break;
+ }
+ return 0;
+}
+
+INT_PTR CALLBACK InterfaceDialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam)
+{
+ CHOOSECOLOR cc;
+ COLORREF choice_colors[16];
+ TCHAR tmp[4];
+ int i = 0;
+ BOOL bRedrawList = FALSE;
+ int nCurSelection = 0;
+ int nHistoryTab = 0;
+ int nTabCount = 0;
+ int nPatternCount = 0;
+ int value = 0;
+ const char* snapname = NULL;
+
+ switch (Msg)
+ {
+ case WM_INITDIALOG:
+ Button_SetCheck(GetDlgItem(hDlg,IDC_START_GAME_CHECK),GetGameCheck());
+ Button_SetCheck(GetDlgItem(hDlg,IDC_JOY_GUI),GetJoyGUI());
+ Button_SetCheck(GetDlgItem(hDlg,IDC_KEY_GUI),GetKeyGUI());
+ Button_SetCheck(GetDlgItem(hDlg,IDC_HIDE_MOUSE),GetHideMouseOnStartup());
+
+ // Get the current value of the control
+ SendDlgItemMessage(hDlg, IDC_CYCLETIMESEC, TBM_SETRANGE, (WPARAM)FALSE, (LPARAM)MAKELONG(0, 60)); /* [0, 60] */
+ value = GetCycleScreenshot();
+ SendDlgItemMessage(hDlg,IDC_CYCLETIMESEC, TBM_SETPOS, TRUE, value);
+ _itot(value,tmp,10);
+ SendDlgItemMessage(hDlg,IDC_CYCLETIMESECTXT,WM_SETTEXT,0, (WPARAM)tmp);
+
+ Button_SetCheck(GetDlgItem(hDlg,IDC_STRETCH_SCREENSHOT_LARGER), GetStretchScreenShotLarger());
+ Button_SetCheck(GetDlgItem(hDlg,IDC_FILTER_INHERIT), GetFilterInherit());
+ Button_SetCheck(GetDlgItem(hDlg,IDC_NOOFFSET_CLONES), GetOffsetClones());
+ (void)ComboBox_AddString(GetDlgItem(hDlg, IDC_HISTORY_TAB), TEXT("Snapshot"));
+ (void)ComboBox_SetItemData(GetDlgItem(hDlg, IDC_HISTORY_TAB), nTabCount++, TAB_SCREENSHOT);
+ (void)ComboBox_AddString(GetDlgItem(hDlg, IDC_HISTORY_TAB), TEXT("Flyer"));
+ (void)ComboBox_SetItemData(GetDlgItem(hDlg, IDC_HISTORY_TAB), nTabCount++, TAB_FLYER);
+ (void)ComboBox_AddString(GetDlgItem(hDlg, IDC_HISTORY_TAB), TEXT("Cabinet"));
+ (void)ComboBox_SetItemData(GetDlgItem(hDlg, IDC_HISTORY_TAB), nTabCount++, TAB_CABINET);
+ (void)ComboBox_AddString(GetDlgItem(hDlg, IDC_HISTORY_TAB), TEXT("Marquee"));
+ (void)ComboBox_SetItemData(GetDlgItem(hDlg, IDC_HISTORY_TAB), nTabCount++, TAB_MARQUEE);
+ (void)ComboBox_AddString(GetDlgItem(hDlg, IDC_HISTORY_TAB), TEXT("Title"));
+ (void)ComboBox_SetItemData(GetDlgItem(hDlg, IDC_HISTORY_TAB), nTabCount++, TAB_TITLE);
+ (void)ComboBox_AddString(GetDlgItem(hDlg, IDC_HISTORY_TAB), TEXT("Control Panel"));
+ (void)ComboBox_SetItemData(GetDlgItem(hDlg, IDC_HISTORY_TAB), nTabCount++, TAB_CONTROL_PANEL);
+ (void)ComboBox_AddString(GetDlgItem(hDlg, IDC_HISTORY_TAB), TEXT("PCB"));
+ (void)ComboBox_SetItemData(GetDlgItem(hDlg, IDC_HISTORY_TAB), nTabCount++, TAB_PCB);
+ (void)ComboBox_AddString(GetDlgItem(hDlg, IDC_HISTORY_TAB), TEXT("All"));
+ (void)ComboBox_SetItemData(GetDlgItem(hDlg, IDC_HISTORY_TAB), nTabCount++, TAB_ALL);
+ (void)ComboBox_AddString(GetDlgItem(hDlg, IDC_HISTORY_TAB), TEXT("None"));
+ (void)ComboBox_SetItemData(GetDlgItem(hDlg, IDC_HISTORY_TAB), nTabCount++, TAB_NONE);
+ if (GetHistoryTab() < MAX_TAB_TYPES) {
+ (void)ComboBox_SetCurSel(GetDlgItem(hDlg, IDC_HISTORY_TAB), GetHistoryTab());
+ }
+ else {
+ (void)ComboBox_SetCurSel(GetDlgItem(hDlg, IDC_HISTORY_TAB), GetHistoryTab()-TAB_SUBTRACT);
+ }
+ (void)ComboBox_AddString(GetDlgItem(hDlg, IDC_SNAPNAME), TEXT("Gamename"));
+ (void)ComboBox_SetItemData(GetDlgItem(hDlg, IDC_SNAPNAME), nPatternCount++, "%g");
+ (void)ComboBox_AddString(GetDlgItem(hDlg, IDC_SNAPNAME), TEXT("Gamename + Increment"));
+ (void)ComboBox_SetItemData(GetDlgItem(hDlg, IDC_SNAPNAME), nPatternCount++, "%g%i");
+ (void)ComboBox_AddString(GetDlgItem(hDlg, IDC_SNAPNAME), TEXT("Gamename/Gamename"));
+ (void)ComboBox_SetItemData(GetDlgItem(hDlg, IDC_SNAPNAME), nPatternCount++, "%g/%g");
+ (void)ComboBox_AddString(GetDlgItem(hDlg, IDC_SNAPNAME), TEXT("Gamename/Gamename + Increment"));
+ (void)ComboBox_SetItemData(GetDlgItem(hDlg, IDC_SNAPNAME), nPatternCount++, "%g/%g%i");
+ (void)ComboBox_AddString(GetDlgItem(hDlg, IDC_SNAPNAME), TEXT("Gamename/Increment"));
+ (void)ComboBox_SetItemData(GetDlgItem(hDlg, IDC_SNAPNAME), nPatternCount, "%g/%i");
+ //Default to this setting
+ (void)ComboBox_SetCurSel(GetDlgItem(hDlg, IDC_SNAPNAME), nPatternCount++);
+ snapname = GetSnapName();
+ if (core_stricmp(snapname,"%g" )==0) {
+ (void)ComboBox_SetCurSel(GetDlgItem(hDlg, IDC_SNAPNAME), 0);
+ }
+ if (core_stricmp(snapname,"%g%i" )==0) {
+ (void)ComboBox_SetCurSel(GetDlgItem(hDlg, IDC_SNAPNAME), 1);
+ }
+ if (core_stricmp(snapname,"%g/%g" )==0) {
+ (void)ComboBox_SetCurSel(GetDlgItem(hDlg, IDC_SNAPNAME), 2);
+ }
+ if (core_stricmp(snapname,"%g/%g%i" )==0) {
+ (void)ComboBox_SetCurSel(GetDlgItem(hDlg, IDC_SNAPNAME), 3);
+ }
+ if (core_stricmp(snapname,"%g/%i" )==0) {
+ (void)ComboBox_SetCurSel(GetDlgItem(hDlg, IDC_SNAPNAME), 4);
+ }
+
+ SendDlgItemMessage(hDlg, IDC_SCREENSHOT_BORDERSIZE, TBM_SETRANGE,
+ (WPARAM)FALSE,
+ (LPARAM)MAKELONG(0, 100)); /* [0, 100] */
+ value = GetScreenshotBorderSize();
+ SendDlgItemMessage(hDlg,IDC_SCREENSHOT_BORDERSIZE, TBM_SETPOS, TRUE, value);
+ _itot(value,tmp,10);
+ SendDlgItemMessage(hDlg,IDC_SCREENSHOT_BORDERSIZETXT,WM_SETTEXT,0, (WPARAM)tmp);
+
+ //return TRUE;
+ break;
+
+ case WM_HELP:
+ /* User clicked the ? from the upper right on a control */
+ HelpFunction((HWND)((LPHELPINFO)lParam)->hItemHandle, MAMEUICONTEXTHELP, HH_TP_HELP_WM_HELP, GetHelpIDs());
+ break;
+
+ case WM_CONTEXTMENU:
+ HelpFunction((HWND)wParam, MAMEUICONTEXTHELP, HH_TP_HELP_CONTEXTMENU, GetHelpIDs());
+ break;
+ case WM_HSCROLL:
+ HANDLE_WM_HSCROLL(hDlg, wParam, lParam, OnHScroll);
+ break;
+ case WM_COMMAND :
+ switch (GET_WM_COMMAND_ID(wParam, lParam))
+ {
+ case IDC_SCREENSHOT_BORDERCOLOR:
+ {
+ for (i=0;i<16;i++)
+ choice_colors[i] = GetCustomColor(i);
+
+ cc.lStructSize = sizeof(CHOOSECOLOR);
+ cc.hwndOwner = hDlg;
+ cc.rgbResult = GetScreenshotBorderColor();
+ cc.lpCustColors = choice_colors;
+ cc.Flags = CC_ANYCOLOR | CC_RGBINIT | CC_SOLIDCOLOR;
+ if (!ChooseColor(&cc))
+ return TRUE;
+ for (i=0;i<16;i++)
+ SetCustomColor(i,choice_colors[i]);
+ SetScreenshotBorderColor(cc.rgbResult);
+ UpdateScreenShot();
+ return TRUE;
+ }
+ case IDOK :
+ {
+ BOOL checked = FALSE;
+
+ SetGameCheck(Button_GetCheck(GetDlgItem(hDlg, IDC_START_GAME_CHECK)));
+ SetJoyGUI(Button_GetCheck(GetDlgItem(hDlg, IDC_JOY_GUI)));
+ SetKeyGUI(Button_GetCheck(GetDlgItem(hDlg, IDC_KEY_GUI)));
+ SetHideMouseOnStartup(Button_GetCheck(GetDlgItem(hDlg,IDC_HIDE_MOUSE)));
+
+ if( Button_GetCheck(GetDlgItem(hDlg,IDC_RESET_PLAYCOUNT ) ) )
+ {
+ ResetPlayCount( -1 );
+ bRedrawList = TRUE;
+ }
+ if( Button_GetCheck(GetDlgItem(hDlg,IDC_RESET_PLAYTIME ) ) )
+ {
+ ResetPlayTime( -1 );
+ bRedrawList = TRUE;
+ }
+ value = SendDlgItemMessage(hDlg,IDC_CYCLETIMESEC, TBM_GETPOS, 0, 0);
+ if( GetCycleScreenshot() != value )
+ {
+ SetCycleScreenshot(value);
+ }
+ value = SendDlgItemMessage(hDlg,IDC_SCREENSHOT_BORDERSIZE, TBM_GETPOS, 0, 0);
+ if( GetScreenshotBorderSize() != value )
+ {
+ SetScreenshotBorderSize(value);
+ UpdateScreenShot();
+ }
+ value = SendDlgItemMessage(hDlg,IDC_HIGH_PRIORITY, TBM_GETPOS, 0, 0);
+ checked = Button_GetCheck(GetDlgItem(hDlg,IDC_STRETCH_SCREENSHOT_LARGER));
+ if (checked != GetStretchScreenShotLarger())
+ {
+ SetStretchScreenShotLarger(checked);
+ UpdateScreenShot();
+ }
+ checked = Button_GetCheck(GetDlgItem(hDlg,IDC_FILTER_INHERIT));
+ if (checked != GetFilterInherit())
+ {
+ SetFilterInherit(checked);
+ // LineUpIcons does just a ResetListView(), which is what we want here
+ PostMessage(GetMainWindow(),WM_COMMAND, MAKEWPARAM(ID_VIEW_LINEUPICONS, FALSE),(LPARAM)NULL);
+ }
+ checked = Button_GetCheck(GetDlgItem(hDlg,IDC_NOOFFSET_CLONES));
+ if (checked != GetOffsetClones())
+ {
+ SetOffsetClones(checked);
+ // LineUpIcons does just a ResetListView(), which is what we want here
+ PostMessage(GetMainWindow(),WM_COMMAND, MAKEWPARAM(ID_VIEW_LINEUPICONS, FALSE),(LPARAM)NULL);
+ }
+ nCurSelection = ComboBox_GetCurSel(GetDlgItem(hDlg,IDC_SNAPNAME));
+ if (nCurSelection != CB_ERR) {
+ const char* snapname_selection = (const char*)ComboBox_GetItemData(GetDlgItem(hDlg,IDC_SNAPNAME), nCurSelection);
+ if (snapname_selection) {
+ SetSnapName(snapname_selection);
+ }
+ }
+ EndDialog(hDlg, 0);
+
+ nCurSelection = ComboBox_GetCurSel(GetDlgItem(hDlg,IDC_HISTORY_TAB));
+ if (nCurSelection != CB_ERR)
+ nHistoryTab = ComboBox_GetItemData(GetDlgItem(hDlg,IDC_HISTORY_TAB), nCurSelection);
+ EndDialog(hDlg, 0);
+ if( GetHistoryTab() != nHistoryTab )
+ {
+ SetHistoryTab(nHistoryTab, TRUE);
+ ResizePickerControls(GetMainWindow());
+ UpdateScreenShot();
+ }
+ if( bRedrawList )
+ {
+ UpdateListView();
+ }
+ return TRUE;
+ }
+ case IDCANCEL :
+ EndDialog(hDlg, 0);
+ return TRUE;
+ }
+ break;
+ }
+ return 0;
+}
+
+INT_PTR CALLBACK FilterDialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam)
+{
+ static DWORD dwFilters;
+ static DWORD dwpFilters;
+ static LPCFOLDERDATA lpFilterRecord;
+ std::string strText;
+ int i = 0;
+
+ switch (Msg)
+ {
+ case WM_INITDIALOG:
+ {
+ LPTREEFOLDER folder = GetCurrentFolder();
+ LPTREEFOLDER lpParent = NULL;
+ LPCFILTER_ITEM g_lpFilterList = GetFilterList();
+
+ dwFilters = 0;
+
+ if (folder != NULL)
+ {
+ char tmp[80];
+
+ win_set_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_EDIT), g_FilterText.c_str());
+ Edit_SetSel(GetDlgItem(hDlg, IDC_FILTER_EDIT), 0, -1);
+ // Mask out non filter flags
+ dwFilters = folder->m_dwFlags & F_MASK;
+ // Display current folder name in dialog titlebar
+ snprintf(tmp,ARRAY_LENGTH(tmp),"Filters for %s Folder",folder->m_lpTitle);
+ win_set_window_text_utf8(hDlg, tmp);
+ if ( GetFilterInherit() )
+ {
+ BOOL bShowExplanation = FALSE;
+ lpParent = GetFolder( folder->m_nParent );
+ if( lpParent )
+ {
+ /* Check the Parent Filters and inherit them on child,
+ * No need to promote all games to parent folder, works as is */
+ dwpFilters = lpParent->m_dwFlags & F_MASK;
+ /*Check all possible Filters if inherited solely from parent, e.g. not being set explicitly on our folder*/
+ if( (dwpFilters & F_CLONES) && !(dwFilters & F_CLONES) )
+ {
+ /*Add a Specifier to the Checkbox to show it was inherited from the parent*/
+ strText = win_get_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_CLONES));
+ strText.append(" (*)");
+ win_set_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_CLONES), strText.c_str());
+ bShowExplanation = TRUE;
+ }
+ if( (dwpFilters & F_NONWORKING) && !(dwFilters & F_NONWORKING) )
+ {
+ /*Add a Specifier to the Checkbox to show it was inherited from the parent*/
+ strText = win_get_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_NONWORKING));
+ strText.append(" (*)");
+ win_set_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_NONWORKING), strText.c_str());
+ bShowExplanation = TRUE;
+ }
+ if( (dwpFilters & F_UNAVAILABLE) && !(dwFilters & F_UNAVAILABLE) )
+ {
+ /*Add a Specifier to the Checkbox to show it was inherited from the parent*/
+ strText = win_get_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_UNAVAILABLE));
+ strText.append(" (*)");
+ win_set_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_UNAVAILABLE), strText.c_str());
+ bShowExplanation = TRUE;
+ }
+ if( (dwpFilters & F_VECTOR) && !(dwFilters & F_VECTOR) )
+ {
+ /*Add a Specifier to the Checkbox to show it was inherited from the parent*/
+ strText = win_get_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_VECTOR));
+ strText.append(" (*)");
+ win_set_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_VECTOR), strText.c_str());
+ bShowExplanation = TRUE;
+ }
+ if( (dwpFilters & F_RASTER) && !(dwFilters & F_RASTER) )
+ {
+ /*Add a Specifier to the Checkbox to show it was inherited from the parent*/
+ strText = win_get_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_RASTER));
+ strText.append(" (*)");
+ win_set_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_RASTER), strText.c_str());
+ bShowExplanation = TRUE;
+ }
+ if( (dwpFilters & F_ORIGINALS) && !(dwFilters & F_ORIGINALS) )
+ {
+ /*Add a Specifier to the Checkbox to show it was inherited from the parent*/
+ strText = win_get_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_ORIGINALS));
+ strText.append(" (*)");
+ win_set_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_ORIGINALS), strText.c_str());
+ bShowExplanation = TRUE;
+ }
+ if( (dwpFilters & F_WORKING) && !(dwFilters & F_WORKING) )
+ {
+ /*Add a Specifier to the Checkbox to show it was inherited from the parent*/
+ strText = win_get_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_WORKING));
+ strText.append(" (*)");
+ win_set_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_WORKING), strText.c_str());
+ bShowExplanation = TRUE;
+ }
+ if( (dwpFilters & F_AVAILABLE) && !(dwFilters & F_AVAILABLE) )
+ {
+ /*Add a Specifier to the Checkbox to show it was inherited from the parent*/
+ strText = win_get_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_AVAILABLE));
+ strText.append(" (*)");
+ win_set_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_AVAILABLE), strText.c_str());
+ bShowExplanation = TRUE;
+ }
+ if( (dwpFilters & F_HORIZONTAL) && !(dwFilters & F_HORIZONTAL) )
+ {
+ /*Add a Specifier to the Checkbox to show it was inherited from the parent*/
+ strText = win_get_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_HORIZONTAL));
+ strText.append(" (*)");
+ win_set_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_HORIZONTAL), strText.c_str());
+ bShowExplanation = TRUE;
+ }
+ if( (dwpFilters & F_VERTICAL) && !(dwFilters & F_VERTICAL) )
+ {
+ /*Add a Specifier to the Checkbox to show it was inherited from the parent*/
+ strText = win_get_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_VERTICAL));
+ strText.append(" (*)");
+ win_set_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_VERTICAL), strText.c_str());
+ bShowExplanation = TRUE;
+ }
+ if( (dwpFilters & F_ARCADE) && !(dwFilters & F_ARCADE) )
+ {
+ /*Add a Specifier to the Checkbox to show it was inherited from the parent*/
+ strText = win_get_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_ARCADE));
+ strText.append(" (*)");
+ win_set_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_ARCADE), strText.c_str());
+ bShowExplanation = TRUE;
+ }
+ if( (dwpFilters & F_MESS) && !(dwFilters & F_MESS) )
+ {
+ /*Add a Specifier to the Checkbox to show it was inherited from the parent*/
+ strText = win_get_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_MESS));
+ strText.append(" (*)");
+ win_set_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_MESS), strText.c_str());
+ bShowExplanation = TRUE;
+ }
+ /*Do not or in the Values of the parent, so that the values of the folder still can be set*/
+ //dwFilters |= dwpFilters;
+ }
+ if( ! bShowExplanation )
+ {
+ ShowWindow(GetDlgItem(hDlg, IDC_INHERITED), FALSE );
+ }
+ }
+ else
+ {
+ ShowWindow(GetDlgItem(hDlg, IDC_INHERITED), FALSE );
+ }
+ // Find the matching filter record if it exists
+ lpFilterRecord = FindFilter(folder->m_nFolderId);
+
+ // initialize and disable appropriate controls
+ for (i = 0; g_lpFilterList[i].m_dwFilterType; i++)
+ {
+ DisableFilterControls(hDlg, lpFilterRecord, &g_lpFilterList[i], dwFilters);
+ }
+ }
+ SetFocus(GetDlgItem(hDlg, IDC_FILTER_EDIT));
+ return FALSE;
+ }
+ case WM_HELP:
+ // User clicked the ? from the upper right on a control
+ HelpFunction((HWND)((LPHELPINFO)lParam)->hItemHandle, MAMEUICONTEXTHELP,
+ HH_TP_HELP_WM_HELP, GetHelpIDs());
+ break;
+
+ case WM_CONTEXTMENU:
+ HelpFunction((HWND)wParam, MAMEUICONTEXTHELP, HH_TP_HELP_CONTEXTMENU, GetHelpIDs());
+ break;
+
+ case WM_COMMAND:
+ {
+ WORD wID = GET_WM_COMMAND_ID(wParam, lParam);
+ WORD wNotifyCode = GET_WM_COMMAND_CMD(wParam, lParam);
+ LPTREEFOLDER folder = GetCurrentFolder();
+ LPCFILTER_ITEM g_lpFilterList = GetFilterList();
+
+ switch (wID)
+ {
+ case IDOK:
+ dwFilters = 0;
+
+ g_FilterText = win_get_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_EDIT));
+
+ // see which buttons are checked
+ for (i = 0; g_lpFilterList[i].m_dwFilterType; i++)
+ {
+ if (Button_GetCheck(GetDlgItem(hDlg, g_lpFilterList[i].m_dwCtrlID)))
+ dwFilters |= g_lpFilterList[i].m_dwFilterType;
+ }
+
+ // Mask out invalid filters
+ dwFilters = ValidateFilters(lpFilterRecord, dwFilters);
+
+ // Keep non filter flags
+ folder->m_dwFlags &= ~F_MASK;
+
+ // put in the set filters
+ folder->m_dwFlags |= dwFilters;
+
+ EndDialog(hDlg, 1);
+ return TRUE;
+
+ case IDCANCEL:
+ EndDialog(hDlg, 0);
+ return TRUE;
+
+ default:
+ // Handle unchecking mutually exclusive filters
+ if (wNotifyCode == BN_CLICKED)
+ EnableFilterExclusions(hDlg, wID);
+ }
+ }
+ break;
+ }
+ return 0;
+}
+
+INT_PTR CALLBACK AboutDialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam)
+{
+ switch (Msg)
+ {
+ case WM_INITDIALOG:
+ {
+ HBITMAP hBmp;
+ hBmp = (HBITMAP)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDB_ABOUT),
+ IMAGE_BITMAP, 0, 0, LR_SHARED);
+ SendDlgItemMessage(hDlg, IDC_ABOUT, STM_SETIMAGE, (WPARAM)IMAGE_BITMAP, (LPARAM)hBmp);
+ win_set_window_text_utf8(GetDlgItem(hDlg, IDC_VERSION), GetVersionString());
+ }
+ return 1;
+
+ case WM_COMMAND:
+ EndDialog(hDlg, 0);
+ return 1;
+ }
+ return 0;
+}
+
+INT_PTR CALLBACK AddCustomFileDialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam)
+{
+ static LPTREEFOLDER default_selection = NULL;
+ static int driver_index = 0;
+ BOOL res = 0;
+
+ switch (Msg)
+ {
+ case WM_INITDIALOG:
+ {
+ TREEFOLDER **folders;
+ int num_folders = 0;
+ int i = 0;
+ TVINSERTSTRUCT tvis;
+ TVITEM tvi;
+ BOOL first_entry = TRUE;
+ HIMAGELIST treeview_icons = GetTreeViewIconList();
+
+ // current game passed in using DialogBoxParam()
+ driver_index = lParam;
+
+ (void)TreeView_SetImageList(GetDlgItem(hDlg,IDC_CUSTOM_TREE), treeview_icons, LVSIL_NORMAL);
+
+ GetFolders(&folders,&num_folders);
+
+ // should add "New..."
+
+ // insert custom folders into our tree view
+ for (i=0;i<num_folders;i++)
+ {
+ if (folders[i]->m_dwFlags & F_CUSTOM)
+ {
+ HTREEITEM hti;
+ int jj = 0;
+
+ if (folders[i]->m_nParent == -1)
+ {
+ memset(&tvi, '\0', sizeof(tvi));
+ tvis.hParent = TVI_ROOT;
+ tvis.hInsertAfter = TVI_SORT;
+ tvi.mask = TVIF_TEXT | TVIF_PARAM | TVIF_IMAGE | TVIF_SELECTEDIMAGE;
+ tvi.pszText = folders[i]->m_lptTitle;
+ tvi.lParam = (LPARAM)folders[i];
+ tvi.iImage = GetTreeViewIconIndex(folders[i]->m_nIconId);
+ tvi.iSelectedImage = 0;
+#if !defined(NONAMELESSUNION)
+ tvis.item = tvi;
+#else
+ tvis.DUMMYUNIONNAME.item = tvi;
+#endif
+
+ hti = TreeView_InsertItem(GetDlgItem(hDlg,IDC_CUSTOM_TREE),&tvis);
+
+ /* look for children of this custom folder */
+ for (jj=0;jj<num_folders;jj++)
+ {
+ if (folders[jj]->m_nParent == i)
+ {
+ HTREEITEM hti_child;
+ tvis.hParent = hti;
+ tvis.hInsertAfter = TVI_SORT;
+ tvi.mask = TVIF_TEXT | TVIF_PARAM | TVIF_IMAGE | TVIF_SELECTEDIMAGE;
+ tvi.pszText = folders[jj]->m_lptTitle;
+ tvi.lParam = (LPARAM)folders[jj];
+ tvi.iImage = GetTreeViewIconIndex(folders[jj]->m_nIconId);
+ tvi.iSelectedImage = 0;
+#if !defined(NONAMELESSUNION)
+ tvis.item = tvi;
+#else
+ tvis.DUMMYUNIONNAME.item = tvi;
+#endif
+ hti_child = TreeView_InsertItem(GetDlgItem(hDlg,IDC_CUSTOM_TREE),&tvis);
+ if (folders[jj] == default_selection)
+ res = TreeView_SelectItem(GetDlgItem(hDlg,IDC_CUSTOM_TREE),hti_child);
+ }
+ }
+
+ /*TreeView_Expand(GetDlgItem(hDlg,IDC_CUSTOM_TREE),hti,TVE_EXPAND);*/
+ if (first_entry || folders[i] == default_selection)
+ {
+ res = TreeView_SelectItem(GetDlgItem(hDlg,IDC_CUSTOM_TREE),hti);
+ first_entry = FALSE;
+ }
+ }
+ }
+ }
+
+ win_set_window_text_utf8(GetDlgItem(hDlg,IDC_CUSTOMFILE_GAME),
+ ModifyThe(driver_list::driver(driver_index).description));
+
+ res++;
+ return TRUE;
+ }
+ case WM_COMMAND:
+ switch (GET_WM_COMMAND_ID(wParam, lParam))
+ {
+ case IDOK:
+ {
+ TVITEM tvi;
+ tvi.hItem = TreeView_GetSelection(GetDlgItem(hDlg,IDC_CUSTOM_TREE));
+ tvi.mask = TVIF_PARAM;
+ if (TreeView_GetItem(GetDlgItem(hDlg,IDC_CUSTOM_TREE),&tvi) == TRUE)
+ {
+ /* should look for New... */
+
+ default_selection = (LPTREEFOLDER)tvi.lParam; /* start here next time */
+
+ AddToCustomFolder((LPTREEFOLDER)tvi.lParam,driver_index);
+ }
+
+ EndDialog(hDlg, 0);
+ return TRUE;
+ }
+ case IDCANCEL:
+ EndDialog(hDlg, 0);
+ return TRUE;
+
+ }
+ break;
+ }
+ return 0;
+}
+
+INT_PTR CALLBACK DirectXDialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam)
+{
+ HWND hEdit;
+
+ const char *directx_help = MAMEUINAME " requires DirectX version 9 or later.\r\n";
+
+ switch (Msg)
+ {
+ case WM_INITDIALOG:
+ hEdit = GetDlgItem(hDlg, IDC_DIRECTX_HELP);
+ Edit_SetSel(hEdit, Edit_GetTextLength(hEdit), Edit_GetTextLength(hEdit));
+ Edit_ReplaceSel(hEdit, directx_help);
+ return 1;
+
+ case WM_COMMAND:
+ if (LOWORD(wParam) == IDB_WEB_PAGE)
+ ShellExecute(GetMainWindow(), NULL, TEXT("http://www.microsoft.com/directx"),
+ NULL, NULL, SW_SHOWNORMAL);
+
+ if (LOWORD(wParam) == IDCANCEL || LOWORD(wParam) == IDB_WEB_PAGE)
+ EndDialog(hDlg, 0);
+ return 1;
+ }
+ return 0;
+}
+
+/***************************************************************************
+ private functions
+ ***************************************************************************/
+
+static void DisableFilterControls(HWND hWnd, LPCFOLDERDATA lpFilterRecord, LPCFILTER_ITEM lpFilterItem, DWORD dwFlags)
+{
+ HWND hWndCtrl = GetDlgItem(hWnd, lpFilterItem->m_dwCtrlID);
+ DWORD dwFilterType = lpFilterItem->m_dwFilterType;
+
+ /* Check the appropriate control */
+ if (dwFilterType & dwFlags)
+ Button_SetCheck(hWndCtrl, MF_CHECKED);
+
+ /* No special rules for this folder? */
+ if (!lpFilterRecord)
+ return;
+
+ /* If this is an excluded filter */
+ if (lpFilterRecord->m_dwUnset & dwFilterType)
+ {
+ /* uncheck it and disable the control */
+ Button_SetCheck(hWndCtrl, MF_UNCHECKED);
+ EnableWindow(hWndCtrl, FALSE);
+ }
+
+ /* If this is an implied filter, check it and disable the control */
+ if (lpFilterRecord->m_dwSet & dwFilterType)
+ {
+ Button_SetCheck(hWndCtrl, MF_CHECKED);
+ EnableWindow(hWndCtrl, FALSE);
+ }
+}
+
+// Handle disabling mutually exclusive controls
+static void EnableFilterExclusions(HWND hWnd, DWORD dwCtrlID)
+{
+ int i = 0;
+ DWORD id = 0;
+
+ for (i = 0; i < NUM_EXCLUSIONS; i++)
+ {
+ // is this control in the list?
+ if (filterExclusion[i] == dwCtrlID)
+ {
+ // found the control id
+ break;
+ }
+ }
+
+ // if the control was found
+ if (i < NUM_EXCLUSIONS)
+ {
+ // find the opposing control id
+ if (i % 2)
+ id = filterExclusion[i - 1];
+ else
+ id = filterExclusion[i + 1];
+
+ // Uncheck the other control
+ Button_SetCheck(GetDlgItem(hWnd, id), MF_UNCHECKED);
+ }
+}
+
+// Validate filter setting, mask out inappropriate filters for this folder
+static DWORD ValidateFilters(LPCFOLDERDATA lpFilterRecord, DWORD dwFlags)
+{
+ DWORD dwFilters = 0;
+
+ if (lpFilterRecord != (LPFOLDERDATA)0)
+ {
+ // Mask out implied and excluded filters
+ dwFilters = lpFilterRecord->m_dwSet | lpFilterRecord->m_dwUnset;
+ return dwFlags & ~dwFilters;
+ }
+
+ // No special cases - all filters apply
+ return dwFlags;
+}
+
+static void OnHScroll(HWND hwnd, HWND hwndCtl, UINT code, int pos)
+{
+ int value = 0;
+ TCHAR tmp[4];
+ if (hwndCtl == GetDlgItem(hwnd, IDC_CYCLETIMESEC))
+ {
+ value = SendDlgItemMessage(hwnd,IDC_CYCLETIMESEC, TBM_GETPOS, 0, 0);
+ _itot(value,tmp,10);
+ SendDlgItemMessage(hwnd,IDC_CYCLETIMESECTXT,WM_SETTEXT,0, (WPARAM)tmp);
+ }
+ else
+ if (hwndCtl == GetDlgItem(hwnd, IDC_SCREENSHOT_BORDERSIZE))
+ {
+ value = SendDlgItemMessage(hwnd,IDC_SCREENSHOT_BORDERSIZE, TBM_GETPOS, 0, 0);
+ _itot(value,tmp,10);
+ SendDlgItemMessage(hwnd,IDC_SCREENSHOT_BORDERSIZETXT,WM_SETTEXT,0, (WPARAM)tmp);
+ }
+}
diff --git a/docs/release/src/osd/winui/dialogs.h b/docs/release/src/osd/winui/dialogs.h
new file mode 100644
index 00000000000..07bff2075e6
--- /dev/null
+++ b/docs/release/src/osd/winui/dialogs.h
@@ -0,0 +1,18 @@
+// For licensing and usage information, read docs/winui_license.txt
+//****************************************************************************
+
+#ifndef DIALOGS_H
+#define DIALOGS_H
+
+const char * GetFilterText(void);
+
+INT_PTR CALLBACK ResetDialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam);
+INT_PTR CALLBACK InterfaceDialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam);
+INT_PTR CALLBACK FilterDialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam);
+INT_PTR CALLBACK AboutDialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam);
+INT_PTR CALLBACK AddCustomFileDialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam);
+INT_PTR CALLBACK DirectXDialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam);
+
+
+#endif
+
diff --git a/docs/release/src/osd/winui/dijoystick.cpp b/docs/release/src/osd/winui/dijoystick.cpp
new file mode 100644
index 00000000000..1136c7f0179
--- /dev/null
+++ b/docs/release/src/osd/winui/dijoystick.cpp
@@ -0,0 +1,629 @@
+// For licensing and usage information, read docs/winui_license.txt
+//****************************************************************************
+
+/***************************************************************************
+
+ dijoystick.c
+
+ ***************************************************************************/
+
+// standard windows headers
+#include <windows.h>
+
+// standard C headers
+#include <stdio.h>
+#include <math.h>
+#include <tchar.h>
+
+// MAMEUI headers
+#include "winui.h"
+#include "directinput.h"
+#include "dijoystick.h"
+#include "mui_util.h" // For ErrorMsg
+#include "dxdecode.h" // for DirectXDecodeError
+
+/***************************************************************************
+ function prototypes
+ ***************************************************************************/
+
+static int DIJoystick_init(void);
+static void DIJoystick_exit(void);
+static void DIJoystick_poll_joysticks(void);
+static int DIJoystick_is_joy_pressed(int joycode);
+static BOOL DIJoystick_Available(void);
+
+static BOOL CALLBACK DIJoystick_EnumDeviceProc(LPDIDEVICEINSTANCE pdidi, LPVOID pv);
+
+/***************************************************************************
+ External variables
+ ***************************************************************************/
+
+const struct OSDJoystick DIJoystick =
+{
+ DIJoystick_init, /* init */
+ DIJoystick_exit, /* exit */
+ DIJoystick_is_joy_pressed, /* joy_pressed */
+ DIJoystick_poll_joysticks, /* poll_joysticks */
+ DIJoystick_Available, /* Available */
+};
+
+/***************************************************************************
+ Internal structures
+ ***************************************************************************/
+
+#define MAX_PHYSICAL_JOYSTICKS 20
+#define MAX_AXES 20
+
+typedef struct
+{
+ GUID guid;
+ TCHAR *name;
+
+ int offset; /* offset in dijoystate */
+} axis_type;
+
+typedef struct
+{
+ BOOL use_joystick;
+
+ GUID guidDevice;
+ TCHAR *name;
+
+ BOOL is_light_gun;
+
+ LPDIRECTINPUTDEVICE2 did;
+
+ DWORD num_axes;
+ axis_type axes[MAX_AXES];
+
+ DWORD num_pov;
+ DWORD num_buttons;
+
+ DIJOYSTATE dijs;
+
+} joystick_type;
+
+struct tDIJoystick_private
+{
+ int use_count; /* the gui and game can both init/exit us, so keep track */
+ BOOL m_bCoinSlot;
+
+ DWORD num_joysticks;
+ joystick_type joysticks[MAX_PHYSICAL_JOYSTICKS]; /* actual joystick data! */
+};
+
+/* internal functions needing our declarations */
+static BOOL CALLBACK DIJoystick_EnumAxisObjectsProc(LPCDIDEVICEOBJECTINSTANCE lpddoi, LPVOID pvRef);
+static BOOL CALLBACK DIJoystick_EnumPOVObjectsProc(LPCDIDEVICEOBJECTINSTANCE lpddoi, LPVOID pvRef);
+static BOOL CALLBACK DIJoystick_EnumButtonObjectsProc(LPCDIDEVICEOBJECTINSTANCE lpddoi, LPVOID pvRef);
+static void ClearJoyState(DIJOYSTATE *pdijs);
+
+static void InitJoystick(joystick_type *joystick);
+static void ExitJoystick(joystick_type *joystick);
+
+/***************************************************************************
+ Internal variables
+ ***************************************************************************/
+
+static struct tDIJoystick_private This;
+
+static const GUID guidNULL = {0, 0, 0, {0, 0, 0, 0, 0, 0, 0, 0}};
+
+/***************************************************************************
+ External OSD functions
+ ***************************************************************************/
+/*
+ put here anything you need to do when the program is started. Return 0 if
+ initialization was successful, nonzero otherwise.
+*/
+static int DIJoystick_init(void)
+{
+ DWORD i = 0;
+ HRESULT hr;
+ LPDIRECTINPUT di = GetDirectInput();
+
+ This.use_count++;
+
+ This.num_joysticks = 0;
+
+ if (di == NULL)
+ {
+ ErrorMsg("DirectInput not initialized");
+ return 0;
+ }
+
+ /* enumerate for joystick devices */
+ hr = IDirectInput_EnumDevices(di, DIDEVTYPE_JOYSTICK,
+ (LPDIENUMDEVICESCALLBACK)DIJoystick_EnumDeviceProc,
+ NULL,
+ DIEDFL_ATTACHEDONLY );
+ if (FAILED(hr))
+ {
+ ErrorMsg("DirectInput EnumDevices() failed: %s", DirectXDecodeError(hr));
+ return 0;
+ }
+
+ /* create each joystick device, enumerate each joystick for axes, etc */
+ for (i = 0; i < This.num_joysticks; i++)
+ {
+ InitJoystick(&This.joysticks[i]);
+ }
+
+ /* Are there any joysticks attached? */
+ if (This.num_joysticks < 1)
+ {
+ /*ErrorMsg("DirectInput EnumDevices didn't find any joysticks");*/
+ return 0;
+ }
+
+ return 0;
+}
+
+/*
+ put here cleanup routines to be executed when the program is terminated.
+*/
+static void DIJoystick_exit(void)
+{
+ DWORD i = 0;
+
+ This.use_count--;
+
+ if (This.use_count > 0)
+ return;
+
+ for (i = 0; i < This.num_joysticks; i++)
+ ExitJoystick(&This.joysticks[i]);
+
+ This.num_joysticks = 0;
+}
+
+static void DIJoystick_poll_joysticks(void)
+{
+ HRESULT hr;
+ DWORD i = 0;
+
+ This.m_bCoinSlot = 0;
+
+ for (i = 0; i < This.num_joysticks; i++)
+ {
+ /* start by clearing the structure, then fill it in if possible */
+
+ ClearJoyState(&This.joysticks[i].dijs);
+
+ if (This.joysticks[i].did == NULL)
+ continue;
+
+ if (This.joysticks[i].use_joystick == FALSE)
+ continue;
+
+ hr = IDirectInputDevice2_Poll(This.joysticks[i].did);
+
+ hr = IDirectInputDevice2_GetDeviceState(This.joysticks[i].did,sizeof(DIJOYSTATE), &This.joysticks[i].dijs);
+ if (FAILED(hr))
+ {
+ if (hr == DIERR_INPUTLOST || hr == DIERR_NOTACQUIRED)
+ {
+ hr = IDirectInputDevice2_Acquire(This.joysticks[i].did);
+ }
+ continue;
+ }
+ }
+}
+
+/*
+ check if the DIJoystick is moved in the specified direction, defined in
+ osdepend.h. Return 0 if it is not pressed, nonzero otherwise.
+*/
+
+static int DIJoystick_is_joy_pressed(int joycode)
+{
+ int joy_num = 0;
+ int stick = 0;
+ int axis = 0;
+ int dir = 0;
+
+ DIJOYSTATE dijs;
+
+ int value = 0;
+ int dz = 60;
+
+ joy_num = GET_JOYCODE_JOY(joycode);
+
+ /* do we have as many sticks? */
+ if (joy_num == 0 || This.num_joysticks < joy_num)
+ return 0;
+ joy_num--;
+
+ if (This.joysticks[joy_num].use_joystick == FALSE)
+ return 0;
+
+ dijs = This.joysticks[joy_num].dijs;
+
+ stick = GET_JOYCODE_STICK(joycode);
+
+ if (stick == JOYCODE_STICK_BTN)
+ {
+ /* buttons */
+ int button;
+
+ button = GET_JOYCODE_BUTTON(joycode);
+ button--;
+
+ if (button >= This.joysticks[joy_num].num_buttons
+ || GET_JOYCODE_DIR(joycode) != JOYCODE_DIR_BTN)
+ return 0;
+
+ return dijs.rgbButtons[button] != 0;
+ }
+
+ if (stick == JOYCODE_STICK_POV)
+ {
+ /* POV */
+ int pov_value = 0;
+ int angle = 0;
+ int axis_value = 0;
+
+ int num_pov = GET_JOYCODE_BUTTON(joycode) / 4;
+ int code = GET_JOYCODE_BUTTON(joycode) % 4;
+ axis = code / 2;
+ dir = code % 2;
+
+ if (num_pov >= This.joysticks[joy_num].num_pov)
+ return 0;
+
+ pov_value = dijs.rgdwPOV[num_pov];
+ if (LOWORD(pov_value) == 0xffff)
+ return 0;
+
+ angle = (pov_value + 27000) % 36000;
+ angle = (36000 - angle) % 36000;
+ angle /= 100;
+
+ /* angle is now in degrees counterclockwise from x axis*/
+ if (axis == 1)
+ axis_value = 128 + (int)(127 * cos(2 * M_PI * angle / 360.0)); /* x */
+ else
+ axis_value = 128 + (int)(127 * sin(2 * M_PI * angle / 360.0)); /* y */
+
+ if (dir == 1)
+ return axis_value <= (128 - 128 * dz / 100);
+ else
+ return axis_value >= (128 + 128 * dz / 100);
+ }
+
+ /* sticks */
+
+ axis = GET_JOYCODE_AXIS(joycode);
+ dir = GET_JOYCODE_DIR(joycode);
+
+ if (axis == 0 || This.joysticks[joy_num].num_axes < axis)
+ return 0;
+ axis--;
+
+ value = *(int *)(((byte *)&dijs) + This.joysticks[joy_num].axes[axis].offset);
+
+ if (dir == JOYCODE_DIR_NEG)
+ return value <= (128 - 128 * dz / 100);
+ else
+ return value >= (128 + 128 * dz / 100);
+}
+
+static BOOL DIJoystick_Available(void)
+{
+ static BOOL bBeenHere = FALSE;
+ static BOOL bAvailable = FALSE;
+ HRESULT hr;
+ GUID guidDevice = guidNULL;
+ LPDIRECTINPUTDEVICE didTemp;
+ LPDIRECTINPUTDEVICE didJoystick;
+ LPDIRECTINPUT di = GetDirectInput();
+
+ if (di == NULL)
+ {
+ return FALSE;
+ }
+
+ if (bBeenHere == FALSE)
+ bBeenHere = TRUE;
+ else
+ return bAvailable;
+
+ /* enumerate for joystick devices */
+ hr = IDirectInput_EnumDevices(di, DIDEVTYPE_JOYSTICK, inputEnumDeviceProc, &guidDevice, DIEDFL_ATTACHEDONLY);
+ if (FAILED(hr))
+ {
+ return FALSE;
+ }
+
+ /* Are there any joysticks attached? */
+ if (IsEqualGUID(guidDevice, guidNULL))
+ {
+ return FALSE;
+ }
+
+ hr = IDirectInput_CreateDevice(di, guidDevice, &didTemp, NULL);
+ if (FAILED(hr))
+ {
+ return FALSE;
+ }
+
+ /* Determine if DX5 is available by a QI for a DX5 interface. */
+ hr = IDirectInputDevice_QueryInterface(didTemp, IID_IDirectInputDevice2, (void**)&didJoystick);
+ if (FAILED(hr))
+ {
+ bAvailable = FALSE;
+ }
+ else
+ {
+ bAvailable = TRUE;
+ IDirectInputDevice_Release(didJoystick);
+ }
+
+ /* dispose of the temp interface */
+ IDirectInputDevice_Release(didTemp);
+
+ return bAvailable;
+}
+
+int DIJoystick_GetNumPhysicalJoysticks()
+{
+ return This.num_joysticks;
+}
+
+TCHAR* DIJoystick_GetPhysicalJoystickName(int num_joystick)
+{
+ return This.joysticks[num_joystick].name;
+}
+
+int DIJoystick_GetNumPhysicalJoystickAxes(int num_joystick)
+{
+ return This.joysticks[num_joystick].num_axes;
+}
+
+TCHAR* DIJoystick_GetPhysicalJoystickAxisName(int num_joystick, int num_axis)
+{
+ return This.joysticks[num_joystick].axes[num_axis].name;
+}
+
+/***************************************************************************
+ Internal functions
+ ***************************************************************************/
+
+BOOL CALLBACK DIJoystick_EnumDeviceProc(LPDIDEVICEINSTANCE pdidi, LPVOID pv)
+{
+ TCHAR buffer[5000];
+
+ This.joysticks[This.num_joysticks].guidDevice = pdidi->guidInstance;
+
+ _stprintf(buffer, TEXT("%s (%s)"), pdidi->tszProductName, pdidi->tszInstanceName);
+ This.joysticks[This.num_joysticks].name = (TCHAR *)malloc((_tcslen(buffer) + 1) * sizeof(TCHAR));
+ _tcscpy(This.joysticks[This.num_joysticks].name, buffer);
+
+ This.num_joysticks++;
+
+ return DIENUM_CONTINUE;
+}
+
+static BOOL CALLBACK DIJoystick_EnumAxisObjectsProc(LPCDIDEVICEOBJECTINSTANCE lpddoi, LPVOID pvRef)
+{
+ joystick_type* joystick = (joystick_type*)pvRef;
+ DIPROPRANGE diprg;
+ HRESULT hr;
+
+ joystick->axes[joystick->num_axes].guid = lpddoi->guidType;
+
+ joystick->axes[joystick->num_axes].name = (TCHAR *)malloc((_tcslen(lpddoi->tszName) + 1) * sizeof(TCHAR));
+ _tcscpy(joystick->axes[joystick->num_axes].name, lpddoi->tszName);
+
+ joystick->axes[joystick->num_axes].offset = lpddoi->dwOfs;
+
+ /*ErrorMsg("got axis %s, offset %i",lpddoi->tszName, lpddoi->dwOfs);*/
+
+ diprg.diph.dwSize = sizeof(diprg);
+ diprg.diph.dwHeaderSize = sizeof(diprg.diph);
+ diprg.diph.dwObj = lpddoi->dwOfs;
+ diprg.diph.dwHow = DIPH_BYOFFSET;
+ diprg.lMin = 0;
+ diprg.lMax = 255;
+
+ hr = IDirectInputDevice2_SetProperty(joystick->did, DIPROP_RANGE, &diprg.diph);
+ if (FAILED(hr)) /* if this fails, don't use this axis */
+ {
+ free(joystick->axes[joystick->num_axes].name);
+ joystick->axes[joystick->num_axes].name = NULL;
+ return DIENUM_CONTINUE;
+ }
+
+#ifdef JOY_DEBUG
+ if (FAILED(hr))
+ {
+ ErrorMsg("DirectInput SetProperty() joystick axis %s failed - %s\n",
+ joystick->axes[joystick->num_axes].name, DirectXDecodeError(hr));
+ }
+#endif
+
+ /* Set axis dead zone to 0; we need accurate #'s for analog joystick reading. */
+
+ hr = SetDIDwordProperty(joystick->did, DIPROP_DEADZONE, lpddoi->dwOfs, DIPH_BYOFFSET, 0);
+
+#ifdef JOY_DEBUG
+ if (FAILED(hr))
+ {
+ ErrorMsg("DirectInput SetProperty() joystick axis %s dead zone failed - %s\n",
+ joystick->axes[joystick->num_axes].name, DirectXDecodeError(hr));
+ }
+#endif
+
+ joystick->num_axes++;
+
+ return DIENUM_CONTINUE;
+}
+
+static BOOL CALLBACK DIJoystick_EnumPOVObjectsProc(LPCDIDEVICEOBJECTINSTANCE lpddoi, LPVOID pvRef)
+{
+ joystick_type* joystick = (joystick_type*)pvRef;
+ joystick->num_pov++;
+
+ return DIENUM_CONTINUE;
+}
+
+static BOOL CALLBACK DIJoystick_EnumButtonObjectsProc(LPCDIDEVICEOBJECTINSTANCE lpddoi, LPVOID pvRef)
+{
+ joystick_type* joystick = (joystick_type*)pvRef;
+ joystick->num_buttons++;
+
+ return DIENUM_CONTINUE;
+}
+
+static void ClearJoyState(DIJOYSTATE *pdijs)
+{
+ memset(pdijs, 0, sizeof(DIJOYSTATE));
+ pdijs->lX = 128;
+ pdijs->lY = 128;
+ pdijs->lZ = 128;
+ pdijs->lRx = 128;
+ pdijs->lRy = 128;
+ pdijs->lRz = 128;
+ pdijs->rglSlider[0] = 128;
+ pdijs->rglSlider[1] = 128;
+ pdijs->rgdwPOV[0] = -1;
+ pdijs->rgdwPOV[1] = -1;
+ pdijs->rgdwPOV[2] = -1;
+ pdijs->rgdwPOV[3] = -1;
+}
+
+static void InitJoystick(joystick_type *joystick)
+{
+ LPDIRECTINPUTDEVICE didTemp;
+ HRESULT hr;
+ LPDIRECTINPUT di = GetDirectInput();
+
+ joystick->use_joystick = FALSE;
+
+ joystick->did = NULL;
+ joystick->num_axes = 0;
+
+ joystick->is_light_gun = (_tcscmp(joystick->name, TEXT("ACT LABS GS (ACT LABS GS)")) == 0);
+
+ /* get a did1 interface first... */
+ hr = IDirectInput_CreateDevice(di, joystick->guidDevice, &didTemp, NULL);
+ if (FAILED(hr))
+ {
+ ErrorMsg("DirectInput CreateDevice() joystick failed: %s\n", DirectXDecodeError(hr));
+ return;
+ }
+
+ /* get a did2 interface to work with polling (most) joysticks */
+ hr = IDirectInputDevice_QueryInterface(didTemp, IID_IDirectInputDevice2, (void**)&joystick->did);
+
+ /* dispose of the temp interface */
+ IDirectInputDevice_Release(didTemp);
+
+ /* check result of getting the did2 */
+ if (FAILED(hr))
+ {
+ /* no error message because this happens in dx3 */
+ /* ErrorMsg("DirectInput QueryInterface joystick failed\n"); */
+ joystick->did = NULL;
+ return;
+ }
+
+
+ hr = IDirectInputDevice2_SetCooperativeLevel(joystick->did, GetMainWindow(), DISCL_NONEXCLUSIVE | DISCL_BACKGROUND);
+ if (FAILED(hr))
+ {
+ ErrorMsg("DirectInput SetCooperativeLevel() joystick failed: %s\n", DirectXDecodeError(hr));
+ return;
+ }
+
+
+ hr = IDirectInputDevice2_SetDataFormat(joystick->did, &c_dfDIJoystick);
+ if (FAILED(hr))
+ {
+ ErrorMsg("DirectInput SetDataFormat() joystick failed: %s\n", DirectXDecodeError(hr));
+ return;
+ }
+
+ if (joystick->is_light_gun)
+ {
+ /* setup light gun to report raw screen pixel data */
+
+ DIPROPDWORD diprop;
+ memset(&diprop, 0, sizeof(diprop));
+ diprop.diph.dwSize = sizeof(DIPROPDWORD);
+ diprop.diph.dwHeaderSize = sizeof(DIPROPHEADER);
+ diprop.diph.dwObj = 0;
+ diprop.diph.dwHow = DIPH_DEVICE;
+ diprop.dwData = DIPROPCALIBRATIONMODE_RAW;
+
+ IDirectInputDevice2_SetProperty(joystick->did, DIPROP_CALIBRATIONMODE, &diprop.diph);
+ }
+ else
+ {
+ /* enumerate our axes */
+ hr = IDirectInputDevice_EnumObjects(joystick->did, DIJoystick_EnumAxisObjectsProc, joystick, DIDFT_AXIS);
+ if (FAILED(hr))
+ {
+ ErrorMsg("DirectInput EnumObjects() Axes failed: %s\n", DirectXDecodeError(hr));
+ return;
+ }
+
+ /* enumerate our POV hats */
+ joystick->num_pov = 0;
+ hr = IDirectInputDevice_EnumObjects(joystick->did, DIJoystick_EnumPOVObjectsProc, joystick, DIDFT_POV);
+ if (FAILED(hr))
+ {
+ ErrorMsg("DirectInput EnumObjects() POVs failed: %s\n", DirectXDecodeError(hr));
+ return;
+ }
+ }
+
+ /* enumerate our buttons */
+
+ joystick->num_buttons = 0;
+ hr = IDirectInputDevice_EnumObjects(joystick->did, DIJoystick_EnumButtonObjectsProc, joystick, DIDFT_BUTTON);
+ if (FAILED(hr))
+ {
+ ErrorMsg("DirectInput EnumObjects() Buttons failed: %s\n", DirectXDecodeError(hr));
+ return;
+ }
+
+ hr = IDirectInputDevice2_Acquire(joystick->did);
+ if (FAILED(hr))
+ {
+ ErrorMsg("DirectInputDevice Acquire joystick failed!\n");
+ return;
+ }
+
+ /* start by clearing the structures */
+
+ ClearJoyState(&joystick->dijs);
+
+ joystick->use_joystick = TRUE;
+}
+
+static void ExitJoystick(joystick_type *joystick)
+{
+ DWORD i = 0;
+
+ if (joystick->did != NULL)
+ {
+ IDirectInputDevice_Unacquire(joystick->did);
+ IDirectInputDevice_Release(joystick->did);
+ joystick->did = NULL;
+ }
+
+ for (i = 0; i < joystick->num_axes; i++)
+ {
+ if (joystick->axes[i].name)
+ free(joystick->axes[i].name);
+ joystick->axes[i].name = NULL;
+ }
+
+ if (joystick->name != NULL)
+ {
+ free(joystick->name);
+ joystick->name = NULL;
+ }
+}
+
diff --git a/docs/release/src/osd/winui/dijoystick.h b/docs/release/src/osd/winui/dijoystick.h
new file mode 100644
index 00000000000..560b5b8fb20
--- /dev/null
+++ b/docs/release/src/osd/winui/dijoystick.h
@@ -0,0 +1,63 @@
+// For licensing and usage information, read docs/winui_license.txt
+//****************************************************************************
+
+#ifndef DIJOYSTICK_H
+#define DIJOYSTICK_H
+
+/*
+ limits:
+ - 7 joysticks
+ - 15 sticks on each joystick (15?)
+ - 63 buttons on each joystick
+
+ - 256 total inputs
+
+
+ 1 1 1 1 1 1
+ 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
+ +---+-----------+---------+-----+
+ |Dir|Axis/Button| Stick | Joy |
+ +---+-----------+---------+-----+
+
+ Stick: 0 for buttons 1 for axis
+ Joy: 1 for Mouse/track buttons
+
+*/
+#define JOYCODE(joy, stick, axis_or_button, dir) \
+ ((((dir) & 0x03) << 14) | \
+ (((axis_or_button) & 0x3f) << 8) | \
+ (((stick) & 0x1f) << 3) | \
+ (((joy) & 0x07) << 0))
+
+#define GET_JOYCODE_JOY(code) (((code) >> 0) & 0x07)
+#define GET_JOYCODE_STICK(code) (((code) >> 3) & 0x1f)
+#define GET_JOYCODE_AXIS(code) (((code) >> 8) & 0x3f)
+#define GET_JOYCODE_BUTTON(code) GET_JOYCODE_AXIS(code)
+#define GET_JOYCODE_DIR(code) (((code) >>14) & 0x03)
+
+#define JOYCODE_STICK_BTN 0
+#define JOYCODE_STICK_AXIS 1
+#define JOYCODE_STICK_POV 2
+
+#define JOYCODE_DIR_BTN 0
+#define JOYCODE_DIR_NEG 1
+#define JOYCODE_DIR_POS 2
+
+struct OSDJoystick
+{
+ int (*init)(void);
+ void (*exit)(void);
+ int (*is_joy_pressed)(int joycode);
+ void (*poll_joysticks)(void);
+ BOOL (*Available)(void);
+};
+
+extern const struct OSDJoystick DIJoystick;
+
+extern int DIJoystick_GetNumPhysicalJoysticks(void);
+extern TCHAR* DIJoystick_GetPhysicalJoystickName(int num_joystick);
+
+extern int DIJoystick_GetNumPhysicalJoystickAxes(int num_joystick);
+extern TCHAR* DIJoystick_GetPhysicalJoystickAxisName(int num_joystick, int num_axis);
+
+#endif
diff --git a/docs/release/src/osd/winui/directdraw.cpp b/docs/release/src/osd/winui/directdraw.cpp
new file mode 100644
index 00000000000..c85f97f8a76
--- /dev/null
+++ b/docs/release/src/osd/winui/directdraw.cpp
@@ -0,0 +1,382 @@
+// For licensing and usage information, read docs/winui_license.txt
+//****************************************************************************
+/***************************************************************************
+
+ directdraw.c
+
+ Direct Draw routines.
+
+ ***************************************************************************/
+
+// standard windows headers
+#include <windows.h>
+
+// MAME/MAMEUI headers
+#include "emu.h"
+#include "winui.h"
+#include "directdraw.h"
+#include "mui_util.h" // For ErrorMsg
+#include "dxdecode.h" // For DirectXDecodeError
+
+// standard C headers
+#include <ddraw.h>
+#include <tchar.h>
+
+/***************************************************************************
+ function prototypes
+ ***************************************************************************/
+
+static BOOL WINAPI DDEnumInfo(GUID FAR *lpGUID, LPTSTR lpDriverDescription,
+ LPTSTR lpDriverName, LPVOID lpContext, HMONITOR hm);
+
+static BOOL WINAPI DDEnumOldInfo(GUID FAR *lpGUID, LPTSTR lpDriverDescription,
+ LPTSTR lpDriverName, LPVOID lpContext);
+
+static void CalculateDisplayModes(void);
+static HRESULT CALLBACK EnumDisplayModesCallback(LPDDSURFACEDESC pddsd, LPVOID Context);
+static HRESULT CALLBACK EnumDisplayModesCallback2(DDSURFACEDESC2* pddsd, LPVOID Context);
+
+/***************************************************************************
+ External variables
+ ***************************************************************************/
+
+/***************************************************************************
+ Internal structures
+ ***************************************************************************/
+
+typedef struct
+{
+ TCHAR* name;
+ GUID* lpguid;
+} display_type;
+
+typedef HRESULT (WINAPI *ddc_proc)(GUID FAR *lpGUID, LPDIRECTDRAW FAR *lplpDD, IUnknown FAR *pUnkOuter);
+
+/***************************************************************************
+ Internal variables
+ ***************************************************************************/
+
+#define MAX_DISPLAYS 100
+static int g_nNumDisplays = 0;
+static display_type g_Displays[MAX_DISPLAYS];
+
+static HANDLE g_hDLL;
+static BOOL g_bHWStretch = 0;
+static BOOL g_bRefresh = 0;
+static struct tDisplayModes g_DisplayModes;
+static IDirectDraw2* g_pDirectDraw2;
+static IDirectDraw4* g_pDirectDraw4;
+
+/***************************************************************************
+ External functions
+ ***************************************************************************/
+
+/****************************************************************************
+ * DirectDrawInitialize
+ *
+ * Initialize the DirectDraw variables.
+ *
+ * This entails the following functions:
+ *
+ * DirectDrawCreate
+ *
+ ****************************************************************************/
+
+#if !defined(LPDIRECTDRAWENUMERATE)
+#if defined(UNICODE)
+
+typedef HRESULT (WINAPI* LPDIRECTDRAWENUMERATEW)(LPDDENUMCALLBACKW lpCallback, LPVOID lpContext);
+
+#define LPDIRECTDRAWENUMERATE LPDIRECTDRAWENUMERATEW
+
+#define SDirectDrawEnumerateEx "DirectDrawEnumerateExW"
+#define SDirectDrawEnumerate "DirectDrawEnumerateW"
+
+#else
+
+typedef HRESULT (WINAPI* LPDIRECTDRAWENUMERATEA)(LPDDENUMCALLBACKA lpCallback, LPVOID lpContext);
+
+#define LPDIRECTDRAWENUMERATE LPDIRECTDRAWENUMERATEA
+
+#define SDirectDrawEnumerateEx "DirectDrawEnumerateExA"
+#define SDirectDrawEnumerate "DirectDrawEnumerateA"
+
+#endif
+#endif /* LPDIRECTDRAWENUMERATE */
+
+/****************************************************************************/
+
+BOOL DirectDraw_Initialize(void)
+{
+ HRESULT hr;
+ UINT error_mode = 0;
+ ddc_proc ddc;
+ DDCAPS ddCaps;
+ DDCAPS ddHelCaps;
+ IDirectDraw* pDirectDraw1;
+ LPDIRECTDRAWENUMERATEEX pDDEnumEx;
+
+ if (g_hDLL != NULL)
+ return TRUE;
+
+ g_nNumDisplays = 0;
+ g_hDLL = NULL;
+ g_bHWStretch = FALSE;
+ g_bRefresh = FALSE;
+ g_pDirectDraw2 = NULL;
+ g_pDirectDraw4 = NULL;
+
+ /* Turn off error dialog for this call */
+ error_mode = SetErrorMode(0);
+ g_hDLL = LoadLibrary(TEXT("ddraw.dll"));
+ SetErrorMode(error_mode);
+
+ if (g_hDLL == NULL)
+ return FALSE;
+
+ ddc = (ddc_proc)GetProcAddress((HINSTANCE)g_hDLL, "DirectDrawCreate");
+ if (ddc == NULL)
+ return FALSE;
+
+ pDirectDraw1 = NULL;
+ g_pDirectDraw2 = NULL;
+ g_pDirectDraw4 = NULL;
+ hr = ddc(NULL, &pDirectDraw1, NULL);
+ if (FAILED(hr))
+ {
+ ErrorMsg("DirectDrawCreate failed: %s", DirectXDecodeError(hr));
+ return FALSE;
+ }
+
+ hr = IDirectDraw_QueryInterface(pDirectDraw1, IID_IDirectDraw4, (void**)&g_pDirectDraw4);
+ if (FAILED(hr))
+ {
+ g_pDirectDraw4 = NULL;
+ hr = IDirectDraw_QueryInterface(pDirectDraw1, IID_IDirectDraw2, (void**)&g_pDirectDraw2);
+ if (FAILED(hr))
+ {
+ ErrorMsg("Query Interface for DirectDraw 2 failed: %s", DirectXDecodeError(hr));
+ g_pDirectDraw2 = NULL;
+ IDirectDraw_Release(pDirectDraw1);
+ return FALSE;
+ }
+ }
+
+ memset(&ddCaps, 0, sizeof(DDCAPS));
+ memset(&ddHelCaps, 0, sizeof(DDCAPS));
+ ddCaps.dwSize = sizeof(DDCAPS);
+ ddHelCaps.dwSize = sizeof(DDCAPS);
+ hr = IDirectDraw_GetCaps(pDirectDraw1, &ddCaps, &ddHelCaps); /* 1 2 or 4? */
+ if (FAILED(hr))
+ {
+ ErrorMsg("Error getting DirectDraw capabilities: %s", DirectXDecodeError(hr));
+ }
+ else
+ g_bHWStretch = ((ddCaps.dwCaps & DDCAPS_BLTSTRETCH) != 0) ? TRUE : FALSE;
+
+ IDirectDraw_Release(pDirectDraw1);
+
+ /*
+ Note that you must know which version of the
+ function to retrieve (see the following text).
+ For this example, we use the ANSI version.
+ */
+ pDDEnumEx = (LPDIRECTDRAWENUMERATEEX) GetProcAddress((HINSTANCE)g_hDLL, SDirectDrawEnumerateEx);
+
+ /*
+ If the function is there, call it to enumerate all display devices
+ attached to the desktop, and any non-display DirectDraw devices.
+ */
+ if (pDDEnumEx)
+ {
+ pDDEnumEx(DDEnumInfo, NULL, DDENUM_ATTACHEDSECONDARYDEVICES | DDENUM_DETACHEDSECONDARYDEVICES);
+ }
+ else
+ {
+ LPDIRECTDRAWENUMERATE lpDDEnum;
+
+ lpDDEnum = (LPDIRECTDRAWENUMERATE) GetProcAddress((HINSTANCE)g_hDLL, SDirectDrawEnumerate);
+ /*
+ * We must be running on an old version of ddraw. Therefore,
+ * by definiton, multimon isn't supported. Fall back on
+ * DirectDrawEnumerate to enumerate standard devices on a
+ * single monitor system.
+ */
+ if (lpDDEnum)
+ {
+ lpDDEnum(DDEnumOldInfo, NULL);
+ }
+ else
+ {
+ return FALSE;
+ }
+ }
+
+ return TRUE;
+}
+
+/****************************************************************************
+ *
+ * DirectDraw_Close
+ *
+ * Terminate our usage of DirectDraw.
+ *
+ ****************************************************************************/
+
+void DirectDraw_Close(void)
+{
+ int i;
+
+ for (i = 0; i < g_nNumDisplays; i++)
+ {
+ free(g_Displays[i].name);
+ g_Displays[i].name = NULL;
+ if (g_Displays[i].lpguid != NULL)
+ {
+ free(g_Displays[i].lpguid);
+ g_Displays[i].lpguid = NULL;
+ }
+
+ }
+ g_nNumDisplays = 0;
+
+ /*
+ Destroy any lingering IDirectDraw object.
+ */
+ if (g_pDirectDraw2)
+ {
+ IDirectDraw2_Release(g_pDirectDraw2);
+ g_pDirectDraw2 = NULL;
+ }
+
+ if (g_pDirectDraw4)
+ {
+ IDirectDraw4_Release(g_pDirectDraw4);
+ g_pDirectDraw4 = NULL;
+ }
+
+ if (g_hDLL)
+ {
+ FreeLibrary((HINSTANCE)g_hDLL);
+ g_hDLL = NULL;
+ }
+}
+
+/****************************************************************************/
+/*
+ Return a list of 16, 24 and 32 bit DirectDraw modes.
+*/
+struct tDisplayModes* DirectDraw_GetDisplayModes(void)
+{
+ if (g_DisplayModes.m_nNumModes == 0)
+ CalculateDisplayModes();
+
+ return &g_DisplayModes;
+}
+
+int DirectDraw_GetNumDisplays(void)
+{
+ return g_nNumDisplays;
+}
+
+BOOL DirectDraw_HasHWStretch(void)
+{
+ return g_bHWStretch;
+}
+
+BOOL DirectDraw_HasRefresh(void)
+{
+ return g_bRefresh;
+}
+
+LPCTSTR DirectDraw_GetDisplayName(int num_display)
+{
+ return g_Displays[num_display].name;
+}
+
+/****************************************************************************/
+/* internal functions */
+/****************************************************************************/
+
+static BOOL WINAPI DDEnumInfo(GUID FAR *lpGUID, LPTSTR lpDriverDescription,
+ LPTSTR lpDriverName, LPVOID lpContext, HMONITOR hm)
+{
+ g_Displays[g_nNumDisplays].name = (TCHAR*)malloc((_tcslen(lpDriverDescription) + 1) * sizeof(TCHAR));
+ _tcscpy(g_Displays[g_nNumDisplays].name, lpDriverDescription);
+
+ if (lpGUID == NULL)
+ g_Displays[g_nNumDisplays].lpguid = NULL;
+ else
+ {
+ g_Displays[g_nNumDisplays].lpguid = (LPGUID)malloc(sizeof(GUID));
+ memcpy(g_Displays[g_nNumDisplays].lpguid, lpGUID, sizeof(GUID));
+ }
+
+ g_nNumDisplays++;
+ if (g_nNumDisplays == MAX_DISPLAYS)
+ return DDENUMRET_CANCEL;
+ else
+ return DDENUMRET_OK;
+}
+
+static BOOL WINAPI DDEnumOldInfo(GUID FAR *lpGUID, LPTSTR lpDriverDescription, LPTSTR lpDriverName, LPVOID lpContext)
+{
+ return DDEnumInfo(lpGUID, lpDriverDescription, lpDriverName, lpContext, NULL);
+}
+
+static HRESULT CALLBACK EnumDisplayModesCallback(LPDDSURFACEDESC pddsd, LPVOID Context)
+{
+ DWORD dwDepth = pddsd->ddpfPixelFormat.dwRGBBitCount;
+
+ struct tDisplayModes* pDisplayModes = (struct tDisplayModes*)Context;
+ if (dwDepth == 16 || dwDepth == 24 || dwDepth == 32)
+ {
+ pDisplayModes->m_Modes[pDisplayModes->m_nNumModes].m_dwWidth = pddsd->dwWidth;
+ pDisplayModes->m_Modes[pDisplayModes->m_nNumModes].m_dwHeight = pddsd->dwHeight;
+ pDisplayModes->m_Modes[pDisplayModes->m_nNumModes].m_dwBPP = dwDepth;
+ pDisplayModes->m_Modes[pDisplayModes->m_nNumModes].m_dwRefresh = 0;
+ pDisplayModes->m_nNumModes++;
+ }
+
+ if (pDisplayModes->m_nNumModes == MAXMODES)
+ return DDENUMRET_CANCEL;
+ else
+ return DDENUMRET_OK;
+}
+
+static HRESULT CALLBACK EnumDisplayModesCallback2(DDSURFACEDESC2* pddsd2, LPVOID Context)
+{
+ struct tDisplayModes* pDisplayModes = (struct tDisplayModes*)Context;
+
+ DWORD dwDepth = pddsd2->ddpfPixelFormat.dwRGBBitCount;
+
+ if (dwDepth == 16 || dwDepth == 24 || dwDepth == 32)
+ {
+ pDisplayModes->m_Modes[pDisplayModes->m_nNumModes].m_dwWidth = pddsd2->dwWidth;
+ pDisplayModes->m_Modes[pDisplayModes->m_nNumModes].m_dwHeight = pddsd2->dwHeight;
+ pDisplayModes->m_Modes[pDisplayModes->m_nNumModes].m_dwBPP = dwDepth;
+ pDisplayModes->m_Modes[pDisplayModes->m_nNumModes].m_dwRefresh = pddsd2->dwRefreshRate;
+ pDisplayModes->m_nNumModes++;
+
+ if (pddsd2->dwRefreshRate != 0)
+ g_bRefresh = TRUE;
+ }
+
+ if (pDisplayModes->m_nNumModes == MAXMODES)
+ return DDENUMRET_CANCEL;
+ else
+ return DDENUMRET_OK;
+}
+
+static void CalculateDisplayModes(void)
+{
+ g_DisplayModes.m_nNumModes = 0;
+
+ if (g_pDirectDraw4)
+ IDirectDraw4_EnumDisplayModes(g_pDirectDraw4, DDEDM_REFRESHRATES, NULL, &g_DisplayModes, EnumDisplayModesCallback2);
+ else
+ if (g_pDirectDraw2)
+ IDirectDraw2_EnumDisplayModes(g_pDirectDraw2, 0, NULL, &g_DisplayModes, EnumDisplayModesCallback);
+}
+
+
diff --git a/docs/release/src/osd/winui/directdraw.h b/docs/release/src/osd/winui/directdraw.h
new file mode 100644
index 00000000000..95140a54ab5
--- /dev/null
+++ b/docs/release/src/osd/winui/directdraw.h
@@ -0,0 +1,36 @@
+// For licensing and usage information, read docs/winui_license.txt
+//****************************************************************************
+
+#ifndef DIRECTDRAW_H
+#define DIRECTDRAW_H
+
+#include <ddraw.h>
+
+#define MAXMODES 256 /* Maximum number of DirectDraw Display modes. */
+
+/* Display mode node */
+struct tDisplayMode
+{
+ DWORD m_dwWidth;
+ DWORD m_dwHeight;
+ DWORD m_dwBPP;
+ DWORD m_dwRefresh;
+};
+
+/* EnumDisplayMode Context */
+struct tDisplayModes
+{
+ struct tDisplayMode m_Modes[MAXMODES];
+ int m_nNumModes;
+};
+
+extern BOOL DirectDraw_Initialize(void);
+extern void DirectDraw_Close(void);
+
+extern struct tDisplayModes* DirectDraw_GetDisplayModes(void);
+extern int DirectDraw_GetNumDisplays(void);
+extern BOOL DirectDraw_HasHWStretch(void);
+extern BOOL DirectDraw_HasRefresh(void);
+extern LPCTSTR DirectDraw_GetDisplayName(int num_display);
+
+#endif
diff --git a/docs/release/src/osd/winui/directinput.cpp b/docs/release/src/osd/winui/directinput.cpp
new file mode 100644
index 00000000000..5e5c554a95c
--- /dev/null
+++ b/docs/release/src/osd/winui/directinput.cpp
@@ -0,0 +1,149 @@
+// For licensing and usage information, read docs/winui_license.txt
+// MASTER
+//****************************************************************************
+
+/***************************************************************************
+
+ directinput.c
+
+ Direct Input routines.
+
+ ***************************************************************************/
+// standard windows headers
+#include <windows.h>
+
+// MAME/MAMEUI headers
+#include "emu.h"
+#include "mui_util.h" // For ErrorMsg
+#include "directinput.h"
+
+/***************************************************************************
+ function prototypes
+ ***************************************************************************/
+
+/***************************************************************************
+ External variables
+ ***************************************************************************/
+
+/***************************************************************************
+ Internal structures
+ ***************************************************************************/
+
+/***************************************************************************
+ Internal variables
+ ***************************************************************************/
+
+static LPDIRECTINPUT di = NULL;
+
+static HANDLE hDLL = NULL;
+
+/***************************************************************************
+ External functions
+ ***************************************************************************/
+
+/****************************************************************************
+ * DirectInputInitialize
+ *
+ * Initialize the DirectInput variables.
+ *
+ * This entails the following functions:
+ *
+ * DirectInputCreate
+ *
+ ****************************************************************************/
+
+typedef HRESULT (WINAPI *dic_proc)(HINSTANCE hinst, DWORD dwVersion, LPDIRECTINPUT *ppDI, LPUNKNOWN punkOuter);
+
+BOOL DirectInputInitialize()
+{
+ HRESULT hr;
+ UINT error_mode = 0;
+ dic_proc dic;
+
+ if (hDLL != NULL)
+ return TRUE;
+
+ hDLL = NULL;
+
+ /* Turn off error dialog for this call */
+ error_mode = SetErrorMode(0);
+ hDLL = LoadLibrary(TEXT("dinput.dll"));
+ SetErrorMode(error_mode);
+
+ if (hDLL == NULL)
+ return FALSE;
+
+#ifdef UNICODE
+ dic = (dic_proc)GetProcAddress((HINSTANCE)hDLL, "DirectInputCreateW");
+#else
+ dic = (dic_proc)GetProcAddress((HINSTANCE)hDLL, "DirectInputCreateA");
+#endif
+ if (dic == NULL)
+ return FALSE;
+
+ hr = dic(GetModuleHandle(NULL), 0x0700, &di, NULL); // setup DIRECT INPUT 7 for the GUI
+
+ if (FAILED(hr))
+ {
+ hr = dic(GetModuleHandle(NULL), 0x0500, &di, NULL); // if failed, try with version 5
+
+ if (FAILED(hr))
+ {
+ ErrorMsg("DirectInputCreate failed! error=%x\n", (unsigned int)hr);
+ di = NULL;
+ return FALSE;
+ }
+ }
+ return TRUE;
+}
+
+/****************************************************************************
+ *
+ * DirectInputClose
+ *
+ * Terminate our usage of DirectInput.
+ *
+ ****************************************************************************/
+
+void DirectInputClose()
+{
+ /* Release any lingering IDirectInput object. */
+ if (di)
+ {
+ IDirectInput_Release(di);
+ di = NULL;
+ }
+}
+
+BOOL CALLBACK inputEnumDeviceProc(LPCDIDEVICEINSTANCE pdidi, LPVOID pv)
+{
+ GUID *pguidDevice;
+
+ /* report back the instance guid of the device we enumerated */
+ if (pv)
+ {
+ pguidDevice = (GUID *)pv;
+ *pguidDevice = pdidi->guidInstance;
+ }
+
+ /* BUGBUG for now, stop after the first device has been found */
+ return DIENUM_STOP;
+}
+
+HRESULT SetDIDwordProperty(LPDIRECTINPUTDEVICE2 pdev, REFGUID guidProperty, DWORD dwObject, DWORD dwHow, DWORD dwValue)
+{
+ DIPROPDWORD dipdw;
+
+ dipdw.diph.dwSize = sizeof(dipdw);
+ dipdw.diph.dwHeaderSize = sizeof(dipdw.diph);
+ dipdw.diph.dwObj = dwObject;
+ dipdw.diph.dwHow = dwHow;
+ dipdw.dwData = dwValue;
+
+ return IDirectInputDevice2_SetProperty(pdev, guidProperty, &dipdw.diph);
+}
+
+LPDIRECTINPUT GetDirectInput(void)
+{
+ return di;
+}
diff --git a/docs/release/src/osd/winui/directinput.h b/docs/release/src/osd/winui/directinput.h
new file mode 100644
index 00000000000..7af72dab981
--- /dev/null
+++ b/docs/release/src/osd/winui/directinput.h
@@ -0,0 +1,23 @@
+// For licensing and usage information, read docs/winui_license.txt
+//****************************************************************************
+
+#ifndef DIRECTINPUT_H
+#define DIRECTINPUT_H
+
+#undef WINNT
+#ifdef DIRECTINPUT_VERSION
+#undef DIRECTINPUT_VERSION
+#endif
+#define DIRECTINPUT_VERSION 0x0700
+#include <dinput.h>
+
+extern BOOL DirectInputInitialize(void);
+extern void DirectInputClose(void);
+
+extern BOOL CALLBACK inputEnumDeviceProc(LPCDIDEVICEINSTANCE pdidi, LPVOID pv);
+
+extern HRESULT SetDIDwordProperty(LPDIRECTINPUTDEVICE2 pdev, REFGUID guidProperty, DWORD dwObject, DWORD dwHow, DWORD dwValue);
+
+LPDIRECTINPUT GetDirectInput(void);
+
+#endif
diff --git a/docs/release/src/osd/winui/directories.cpp b/docs/release/src/osd/winui/directories.cpp
new file mode 100644
index 00000000000..25928d136be
--- /dev/null
+++ b/docs/release/src/osd/winui/directories.cpp
@@ -0,0 +1,753 @@
+// For licensing and usage information, read docs/winui_license.txt
+// MASTER
+//****************************************************************************
+
+/***************************************************************************
+
+ directories.c
+
+***************************************************************************/
+
+// standard windows headers
+#include <windows.h>
+#include <windowsx.h>
+
+// standard C headers
+#include <sys/stat.h>
+#include <assert.h>
+#include <tchar.h>
+
+// MAME/MAMEUI headers
+#include "winui.h"
+#include "directories.h"
+#include "resource.h"
+#include "strconv.h"
+#include "mui_util.h"
+
+// SHELL DIR header
+#include <shlobj.h>
+
+#define MAX_DIRS 256
+
+/***************************************************************************
+ Internal structures
+ ***************************************************************************/
+
+typedef struct
+{
+ TCHAR m_Directories[MAX_DIRS][MAX_PATH];
+ int m_NumDirectories;
+ BOOL m_bModified;
+} tPath;
+
+typedef struct
+{
+ tPath *m_Path;
+ TCHAR *m_tDirectory;
+} tDirInfo;
+
+/***************************************************************************
+ Function prototypes
+ ***************************************************************************/
+
+static int CALLBACK BrowseCallbackProc(HWND hwnd, UINT uMsg, LPARAM lParam, LPARAM lpData);
+BOOL BrowseForDirectory(HWND hwnd, LPCTSTR pStartDir, TCHAR* pResult);
+
+static void DirInfo_SetDir(tDirInfo *pInfo, int nType, int nItem, LPCTSTR pText);
+static TCHAR* DirInfo_Dir(tDirInfo *pInfo, int nType);
+static TCHAR* DirInfo_Path(tDirInfo *pInfo, int nType, int nItem);
+static void DirInfo_SetModified(tDirInfo *pInfo, int nType, BOOL bModified);
+static BOOL DirInfo_Modified(tDirInfo *pInfo, int nType);
+static TCHAR* FixSlash(TCHAR *s);
+
+static void UpdateDirectoryList(HWND hDlg);
+
+static void Directories_OnSelChange(HWND hDlg);
+static BOOL Directories_OnInitDialog(HWND hDlg, HWND hwndFocus, LPARAM lParam);
+static void Directories_OnDestroy(HWND hDlg);
+static void Directories_OnClose(HWND hDlg);
+static void Directories_OnOk(HWND hDlg);
+static void Directories_OnCancel(HWND hDlg);
+static void Directories_OnInsert(HWND hDlg);
+static void Directories_OnBrowse(HWND hDlg);
+static void Directories_OnDelete(HWND hDlg);
+static BOOL Directories_OnBeginLabelEdit(HWND hDlg, NMHDR* pNMHDR);
+static BOOL Directories_OnEndLabelEdit(HWND hDlg, NMHDR* pNMHDR);
+static void Directories_OnCommand(HWND hDlg, int id, HWND hwndCtl, UINT codeNotify);
+static BOOL Directories_OnNotify(HWND hDlg, int id, NMHDR* pNMHDR);
+
+/***************************************************************************
+ External variables
+ ***************************************************************************/
+
+/***************************************************************************
+ Internal variables
+ ***************************************************************************/
+
+static tDirInfo *g_pDirInfo;
+
+/***************************************************************************
+ External function definitions
+ ***************************************************************************/
+
+INT_PTR CALLBACK DirectoriesDialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam)
+{
+ BOOL bReturn = FALSE;
+
+ switch (Msg)
+ {
+ case WM_INITDIALOG:
+ return (BOOL)HANDLE_WM_INITDIALOG(hDlg, wParam, lParam, Directories_OnInitDialog);
+
+ case WM_COMMAND:
+ HANDLE_WM_COMMAND(hDlg, wParam, lParam, Directories_OnCommand);
+ bReturn = TRUE;
+ break;
+
+ case WM_NOTIFY:
+ return (BOOL)HANDLE_WM_NOTIFY(hDlg, wParam, lParam, Directories_OnNotify);
+
+ case WM_CLOSE:
+ HANDLE_WM_CLOSE(hDlg, wParam, lParam, Directories_OnClose);
+ break;
+
+ case WM_DESTROY:
+ HANDLE_WM_DESTROY(hDlg, wParam, lParam, Directories_OnDestroy);
+ break;
+
+ default:
+ bReturn = FALSE;
+ }
+ return bReturn;
+}
+
+/***************************************************************************
+ Internal function definitions
+ ***************************************************************************/
+
+static BOOL IsMultiDir(int nType)
+{
+ return g_directoryInfo[nType].bMulti;
+}
+
+static void DirInfo_SetDir(tDirInfo *pInfo, int nType, int nItem, LPCTSTR pText)
+{
+ TCHAR *t_s;
+ TCHAR *t_pOldText;
+
+ if (IsMultiDir(nType))
+ {
+ assert(nItem >= 0);
+ _tcscpy(DirInfo_Path(pInfo, nType, nItem), pText);
+ DirInfo_SetModified(pInfo, nType, TRUE);
+ }
+ else
+ {
+ t_s = win_tstring_strdup(pText);
+ if (!t_s)
+ return;
+ t_pOldText = pInfo[nType].m_tDirectory;
+ if (t_pOldText)
+ free(t_pOldText);
+ pInfo[nType].m_tDirectory = t_s;
+ }
+}
+
+static TCHAR* DirInfo_Dir(tDirInfo *pInfo, int nType)
+{
+ assert(!IsMultiDir(nType));
+ TCHAR* t = pInfo[nType].m_tDirectory;
+ // if a multipath exists in a single-path-only area then truncate it
+ TCHAR* i = _tcstok(t, TEXT(";"));
+ i++;
+ return t;
+}
+
+static TCHAR* DirInfo_Path(tDirInfo *pInfo, int nType, int nItem)
+{
+ return pInfo[nType].m_Path->m_Directories[nItem];
+}
+
+static void DirInfo_SetModified(tDirInfo *pInfo, int nType, BOOL bModified)
+{
+ assert(IsMultiDir(nType));
+ pInfo[nType].m_Path->m_bModified = bModified;
+}
+
+static BOOL DirInfo_Modified(tDirInfo *pInfo, int nType)
+{
+ assert(IsMultiDir(nType));
+ return pInfo[nType].m_Path->m_bModified;
+}
+
+#define DirInfo_NumDir(pInfo, path) \
+ ((pInfo)[(path)].m_Path->m_NumDirectories)
+
+/* lop off trailing backslash if it exists */
+static TCHAR * FixSlash(TCHAR *s)
+{
+ int len = 0;
+
+ if (s)
+ len = _tcslen(s);
+
+ if (len>3 && s[len - 1] == '\\')
+ s[len - 1] = '\0';
+
+ return s;
+}
+
+static void UpdateDirectoryList(HWND hDlg)
+{
+ bool b_res = 0;
+ int i = 0;
+ int nType = 0;
+ LV_ITEM Item;
+ HWND hList = GetDlgItem(hDlg, IDC_DIR_LIST);
+ HWND hCombo = GetDlgItem(hDlg, IDC_DIR_COMBO);
+
+ /* Remove previous */
+ b_res = ListView_DeleteAllItems(hList);
+
+ /* Update list */
+ memset(&Item, 0, sizeof(LV_ITEM));
+ Item.mask = LVIF_TEXT;
+
+ nType = ComboBox_GetCurSel(hCombo);
+ if (IsMultiDir(nType))
+ {
+ Item.pszText = (TCHAR*) TEXT(DIRLIST_NEWENTRYTEXT); // puts the < > empty entry in
+ (void)ListView_InsertItem(hList, &Item);
+ int t = DirInfo_NumDir(g_pDirInfo, nType);
+ // directories are inserted in reverse order
+ for (i = t; 0 < i; i--)
+ {
+ Item.pszText = DirInfo_Path(g_pDirInfo, nType, i-1);
+ (void)ListView_InsertItem(hList, &Item);
+ }
+ }
+ else
+ {
+ Item.pszText = DirInfo_Dir(g_pDirInfo, nType);
+ (void)ListView_InsertItem(hList, &Item);
+ }
+
+ /* select first one */
+
+ ListView_SetItemState(hList, 0, LVIS_SELECTED, LVIS_SELECTED);
+ b_res++;
+}
+
+static void Directories_OnSelChange(HWND hDlg)
+{
+ UpdateDirectoryList(hDlg);
+
+ HWND hCombo = GetDlgItem(hDlg, IDC_DIR_COMBO);
+ int nType = ComboBox_GetCurSel(hCombo);
+ if (IsMultiDir(nType))
+ {
+ EnableWindow(GetDlgItem(hDlg, IDC_DIR_DELETE), TRUE);
+ EnableWindow(GetDlgItem(hDlg, IDC_DIR_INSERT), TRUE);
+ }
+ else
+ {
+ EnableWindow(GetDlgItem(hDlg, IDC_DIR_DELETE), FALSE);
+ EnableWindow(GetDlgItem(hDlg, IDC_DIR_INSERT), FALSE);
+ }
+}
+
+static BOOL Directories_OnInitDialog(HWND hDlg, HWND hwndFocus, LPARAM lParam)
+{
+ RECT rectClient;
+ LVCOLUMN LVCol;
+ int i = 0;
+ int nDirInfoCount = 0;
+ LPCSTR s;
+ TCHAR *token;
+ TCHAR buf[MAX_PATH * MAX_DIRS];
+ TCHAR* t_s = NULL;
+ HRESULT res = 0;
+
+ /* count how many dirinfos there are */
+ nDirInfoCount = 0;
+ while(g_directoryInfo[nDirInfoCount].lpName)
+ nDirInfoCount++;
+
+ g_pDirInfo = (tDirInfo *) malloc(sizeof(tDirInfo) * nDirInfoCount);
+ if (!g_pDirInfo) /* bummer */
+ goto error;
+ memset(g_pDirInfo, 0, sizeof(tDirInfo) * nDirInfoCount);
+
+ for (i = nDirInfoCount - 1; i >= 0; i--)
+ {
+ t_s = ui_wstring_from_utf8(g_directoryInfo[i].lpName);
+ if( !t_s )
+ return FALSE;
+ (void)ComboBox_InsertString(GetDlgItem(hDlg, IDC_DIR_COMBO), 0, win_tstring_strdup(t_s));
+ free(t_s);
+ t_s = NULL;
+ }
+
+ (void)ComboBox_SetCurSel(GetDlgItem(hDlg, IDC_DIR_COMBO), 0);
+
+ GetClientRect(GetDlgItem(hDlg, IDC_DIR_LIST), &rectClient);
+
+ memset(&LVCol, 0, sizeof(LVCOLUMN));
+ LVCol.mask = LVCF_WIDTH;
+ LVCol.cx = rectClient.right - rectClient.left - GetSystemMetrics(SM_CXHSCROLL);
+
+ res = ListView_InsertColumn(GetDlgItem(hDlg, IDC_DIR_LIST), 0, &LVCol);
+ res++;
+
+ /* Keep a temporary copy of the directory strings in g_pDirInfo. */
+ for (i = 0; i < nDirInfoCount; i++)
+ {
+ s = g_directoryInfo[i].pfnGetTheseDirs();
+ t_s = ui_wstring_from_utf8(s);
+ if( !t_s )
+ return FALSE;
+ if (IsMultiDir(i))
+ {
+ /* Copy the string to our own buffer so that we can mutilate it */
+ _tcscpy(buf, t_s);
+
+ g_pDirInfo[i].m_Path = (tPath*)malloc(sizeof(tPath));
+ if (!g_pDirInfo[i].m_Path)
+ goto error;
+
+ g_pDirInfo[i].m_Path->m_NumDirectories = 0;
+ token = _tcstok(buf, TEXT(";"));
+ while ((DirInfo_NumDir(g_pDirInfo, i) < MAX_DIRS) && token)
+ {
+ _tcscpy(DirInfo_Path(g_pDirInfo, i, DirInfo_NumDir(g_pDirInfo, i)), token);
+ DirInfo_NumDir(g_pDirInfo, i)++;
+ token = _tcstok(NULL, TEXT(";"));
+ }
+ DirInfo_SetModified(g_pDirInfo, i, FALSE);
+ }
+ else
+ {
+ DirInfo_SetDir(g_pDirInfo, i, -1, t_s);
+ }
+ free(t_s);
+ t_s = NULL;
+ }
+
+ UpdateDirectoryList(hDlg);
+ return TRUE;
+
+error:
+ if( t_s )
+ free(t_s);
+ Directories_OnDestroy(hDlg);
+ EndDialog(hDlg, -1);
+ return FALSE;
+}
+
+static void Directories_OnDestroy(HWND hDlg)
+{
+ int nDirInfoCount = 0, i = 0;
+
+ if (g_pDirInfo)
+ {
+ /* count how many dirinfos there are */
+ nDirInfoCount = 0;
+ while(g_directoryInfo[nDirInfoCount].lpName)
+ nDirInfoCount++;
+
+ for (i = 0; i < nDirInfoCount; i++)
+ {
+ if (g_pDirInfo[i].m_Path)
+ free(g_pDirInfo[i].m_Path);
+ if (g_pDirInfo[i].m_tDirectory)
+ free(g_pDirInfo[i].m_tDirectory);
+ }
+ free(g_pDirInfo);
+ g_pDirInfo = NULL;
+ }
+}
+
+static void Directories_OnClose(HWND hDlg)
+{
+ EndDialog(hDlg, IDCANCEL);
+}
+
+static int RetrieveDirList(int nDir, int nFlagResult, void (*SetTheseDirs)(const char *s))
+{
+ int i = 0;
+ int nResult = 0;
+ int nPaths = 0;
+ TCHAR buf[MAX_PATH * MAX_DIRS];
+ char* utf8_buf;
+
+ if (DirInfo_Modified(g_pDirInfo, nDir))
+ {
+ memset(buf, 0, sizeof(buf));
+ nPaths = DirInfo_NumDir(g_pDirInfo, nDir);
+ for (i = 0; i < nPaths; i++)
+ {
+ _tcscat(buf, FixSlash(DirInfo_Path(g_pDirInfo, nDir, i)));
+
+ if (i < nPaths - 1)
+ _tcscat(buf, TEXT(";"));
+ }
+ utf8_buf = ui_utf8_from_wstring(buf);
+ SetTheseDirs(utf8_buf);
+ free(utf8_buf);
+
+ nResult |= nFlagResult;
+ }
+ return nResult;
+}
+
+static void Directories_OnOk(HWND hDlg)
+{
+ int i = 0;
+ int nResult = 0;
+ LPTSTR s;
+ char* utf8_s;
+
+ for (i = 0; g_directoryInfo[i].lpName; i++)
+ {
+ if (IsMultiDir(i))
+ {
+ nResult |= RetrieveDirList(i, g_directoryInfo[i].nDirDlgFlags, g_directoryInfo[i].pfnSetTheseDirs);
+ }
+ else
+ {
+ s = FixSlash(DirInfo_Dir(g_pDirInfo, i));
+ utf8_s = ui_utf8_from_wstring(s);
+ g_directoryInfo[i].pfnSetTheseDirs(utf8_s);
+ free(utf8_s);
+ }
+ }
+ EndDialog(hDlg, nResult);
+}
+
+static void Directories_OnCancel(HWND hDlg)
+{
+ EndDialog(hDlg, IDCANCEL);
+}
+
+static void Directories_OnInsert(HWND hDlg)
+{
+ int nItem = 0;
+ TCHAR buf[MAX_PATH];
+ HWND hList = 0;
+
+ hList = GetDlgItem(hDlg, IDC_DIR_LIST);
+ nItem = ListView_GetNextItem(hList, -1, LVNI_SELECTED);
+
+ if (BrowseForDirectory(hDlg, NULL, buf) == TRUE)
+ {
+ int i = 0;
+ int nType = 0;
+
+ /* list was empty */
+ if (nItem == -1)
+ nItem = 0;
+
+ nType = ComboBox_GetCurSel(GetDlgItem(hDlg, IDC_DIR_COMBO));
+ if (IsMultiDir(nType))
+ {
+ if (MAX_DIRS <= DirInfo_NumDir(g_pDirInfo, nType))
+ return;
+
+ for (i = DirInfo_NumDir(g_pDirInfo, nType); nItem < i; i--)
+ _tcscpy(DirInfo_Path(g_pDirInfo, nType, i), DirInfo_Path(g_pDirInfo, nType, i - 1));
+
+ _tcscpy(DirInfo_Path(g_pDirInfo, nType, nItem), buf);
+ DirInfo_NumDir(g_pDirInfo, nType)++;
+ DirInfo_SetModified(g_pDirInfo, nType, TRUE);
+ }
+
+ UpdateDirectoryList(hDlg);
+
+ ListView_SetItemState(hList, nItem, LVIS_FOCUSED | LVIS_SELECTED, LVIS_FOCUSED | LVIS_SELECTED);
+ }
+}
+
+static void Directories_OnBrowse(HWND hDlg)
+{
+ int nType = 0;
+ int nItem = 0;
+ TCHAR inbuf[MAX_PATH];
+ TCHAR outbuf[MAX_PATH];
+ HWND hList = 0;
+
+ hList = GetDlgItem(hDlg, IDC_DIR_LIST);
+ nItem = ListView_GetNextItem(hList, -1, LVNI_SELECTED);
+
+ if (nItem == -1)
+ return;
+
+ nType = ComboBox_GetCurSel(GetDlgItem(hDlg, IDC_DIR_COMBO));
+ if (IsMultiDir(nType))
+ {
+ /* Last item is placeholder for append */
+ if (nItem == ListView_GetItemCount(hList) - 1)
+ {
+ Directories_OnInsert(hDlg);
+ return;
+ }
+ }
+
+ ListView_GetItemText(hList, nItem, 0, inbuf, MAX_PATH);
+
+ if (BrowseForDirectory(hDlg, inbuf, outbuf) == TRUE)
+ {
+ nType = ComboBox_GetCurSel(GetDlgItem(hDlg, IDC_DIR_COMBO));
+ DirInfo_SetDir(g_pDirInfo, nType, nItem, outbuf);
+ UpdateDirectoryList(hDlg);
+ }
+}
+
+static void Directories_OnDelete(HWND hDlg)
+{
+ int nType = 0;
+ int nCount = 0;
+ int nSelect = 0;
+ int i = 0;
+ int nItem = 0;
+ HWND hList = GetDlgItem(hDlg, IDC_DIR_LIST);
+
+ nItem = ListView_GetNextItem(hList, -1, LVNI_SELECTED | LVNI_ALL);
+
+ if (nItem == -1)
+ return;
+
+ /* Don't delete "Append" placeholder. */
+ if (nItem == ListView_GetItemCount(hList) - 1)
+ return;
+
+ nType = ComboBox_GetCurSel(GetDlgItem(hDlg, IDC_DIR_COMBO));
+ if (IsMultiDir(nType))
+ {
+ for (i = nItem; i < DirInfo_NumDir(g_pDirInfo, nType) - 1; i++)
+ _tcscpy(DirInfo_Path(g_pDirInfo, nType, i),
+ DirInfo_Path(g_pDirInfo, nType, i + 1));
+
+ _tcscpy(DirInfo_Path(g_pDirInfo, nType, DirInfo_NumDir(g_pDirInfo, nType) - 1), TEXT(""));
+ DirInfo_NumDir(g_pDirInfo, nType)--;
+
+ DirInfo_SetModified(g_pDirInfo, nType, TRUE);
+ }
+
+ UpdateDirectoryList(hDlg);
+
+
+ nCount = ListView_GetItemCount(hList);
+ if (nCount <= 1)
+ return;
+
+ /* If the last item was removed, select the item above. */
+ if (nItem == nCount - 1)
+ nSelect = nCount - 2;
+ else
+ nSelect = nItem;
+
+ ListView_SetItemState(hList, nSelect, LVIS_FOCUSED | LVIS_SELECTED, LVIS_FOCUSED | LVIS_SELECTED);
+}
+
+static BOOL Directories_OnBeginLabelEdit(HWND hDlg, NMHDR* pNMHDR)
+{
+ int nType = 0;
+ BOOL bResult = FALSE;
+ NMLVDISPINFO* pDispInfo = (NMLVDISPINFO*)pNMHDR;
+ LVITEM* pItem = &pDispInfo->item;
+
+ nType = ComboBox_GetCurSel(GetDlgItem(hDlg, IDC_DIR_COMBO));
+ if (IsMultiDir(nType))
+ {
+ /* Last item is placeholder for append */
+ if (pItem->iItem == ListView_GetItemCount(GetDlgItem(hDlg, IDC_DIR_LIST)) - 1)
+ {
+ if (MAX_DIRS <= DirInfo_NumDir(g_pDirInfo, nType))
+ return TRUE; /* don't edit */
+
+ HWND hEdit = (HWND)(LRESULT)(int)SendDlgItemMessage(hDlg, IDC_DIR_LIST, LVM_GETEDITCONTROL, 0, 0);
+ Edit_SetText(hEdit, TEXT(""));
+ }
+ }
+
+ return bResult;
+}
+
+static BOOL Directories_OnEndLabelEdit(HWND hDlg, NMHDR* pNMHDR)
+{
+ BOOL bResult = FALSE;
+ NMLVDISPINFO* pDispInfo = (NMLVDISPINFO*)pNMHDR;
+ LVITEM* pItem = &pDispInfo->item;
+
+ if (pItem->pszText != NULL)
+ {
+ struct _stat file_stat;
+
+ /* Don't allow empty entries. */
+ if (!_tcscmp(pItem->pszText, TEXT("")))
+ {
+ return FALSE;
+ }
+
+ /* Check validity of edited directory. */
+ if (_tstat(pItem->pszText, &file_stat) == 0
+ && (file_stat.st_mode & S_IFDIR))
+ {
+ bResult = TRUE;
+ }
+ else
+ {
+ if (MessageBox(NULL, TEXT("Directory does not exist, continue anyway?"), TEXT(MAMEUINAME), MB_OKCANCEL) == IDOK)
+ bResult = TRUE;
+ }
+ }
+
+ if (bResult == TRUE)
+ {
+ int nType = 0;
+ int i = 0;
+
+ nType = ComboBox_GetCurSel(GetDlgItem(hDlg, IDC_DIR_COMBO));
+ if (IsMultiDir(nType))
+ {
+ /* Last item is placeholder for append */
+ if (pItem->iItem == ListView_GetItemCount(GetDlgItem(hDlg, IDC_DIR_LIST)) - 1)
+ {
+ if (MAX_DIRS <= DirInfo_NumDir(g_pDirInfo, nType))
+ return FALSE;
+
+ for (i = DirInfo_NumDir(g_pDirInfo, nType); pItem->iItem < i; i--)
+ _tcscpy(DirInfo_Path(g_pDirInfo, nType, i),
+ DirInfo_Path(g_pDirInfo, nType, i - 1));
+
+ _tcscpy(DirInfo_Path(g_pDirInfo, nType, pItem->iItem), pItem->pszText);
+
+ DirInfo_SetModified(g_pDirInfo, nType, TRUE);
+ DirInfo_NumDir(g_pDirInfo, nType)++;
+ }
+ else
+ DirInfo_SetDir(g_pDirInfo, nType, pItem->iItem, pItem->pszText);
+ }
+ else
+ {
+ DirInfo_SetDir(g_pDirInfo, nType, pItem->iItem, pItem->pszText);
+ }
+
+ UpdateDirectoryList(hDlg);
+ ListView_SetItemState(GetDlgItem(hDlg, IDC_DIR_LIST), pItem->iItem,
+ LVIS_FOCUSED | LVIS_SELECTED, LVIS_FOCUSED | LVIS_SELECTED);
+
+ }
+
+ return bResult;
+}
+
+static void Directories_OnCommand(HWND hDlg, int id, HWND hwndCtl, UINT codeNotify)
+{
+ switch (id)
+ {
+ case IDOK:
+ if (codeNotify == BN_CLICKED)
+ Directories_OnOk(hDlg);
+ break;
+
+ case IDCANCEL:
+ if (codeNotify == BN_CLICKED)
+ Directories_OnCancel(hDlg);
+ break;
+
+ case IDC_DIR_BROWSE:
+ if (codeNotify == BN_CLICKED)
+ Directories_OnBrowse(hDlg);
+ break;
+
+ case IDC_DIR_INSERT:
+ if (codeNotify == BN_CLICKED)
+ Directories_OnInsert(hDlg);
+ break;
+
+ case IDC_DIR_DELETE:
+ if (codeNotify == BN_CLICKED)
+ Directories_OnDelete(hDlg);
+ break;
+
+ case IDC_DIR_COMBO:
+ switch (codeNotify)
+ {
+ case CBN_SELCHANGE:
+ Directories_OnSelChange(hDlg);
+ break;
+ }
+ break;
+ }
+}
+
+static BOOL Directories_OnNotify(HWND hDlg, int id, NMHDR* pNMHDR)
+{
+ switch (id)
+ {
+ case IDC_DIR_LIST:
+ switch (pNMHDR->code)
+ {
+ case LVN_ENDLABELEDIT:
+ return Directories_OnEndLabelEdit(hDlg, pNMHDR);
+
+ case LVN_BEGINLABELEDIT:
+ return Directories_OnBeginLabelEdit(hDlg, pNMHDR);
+ }
+ }
+ return FALSE;
+}
+
+/**************************************************************************
+
+ Use the shell to select a Directory.
+
+ **************************************************************************/
+
+static int CALLBACK BrowseCallbackProc(HWND hwnd, UINT uMsg, LPARAM lParam, LPARAM lpData)
+{
+ /*
+ Called just after the dialog is initialized
+ Select the dir passed in BROWSEINFO.lParam
+ */
+ if (uMsg == BFFM_INITIALIZED)
+ {
+ if ((const char*)lpData != NULL)
+ SendMessage(hwnd, BFFM_SETSELECTION, TRUE, lpData);
+ }
+
+ return 0;
+}
+
+BOOL BrowseForDirectory(HWND hwnd, LPCTSTR pStartDir, TCHAR* pResult)
+{
+ BOOL bResult = FALSE;
+ BROWSEINFO Info;
+ LPITEMIDLIST pItemIDList = NULL;
+ TCHAR buf[MAX_PATH];
+
+ Info.hwndOwner = hwnd;
+ Info.pidlRoot = NULL;
+ Info.pszDisplayName = buf;
+ Info.lpszTitle = TEXT("Select a directory:");
+ Info.ulFlags = BIF_RETURNONLYFSDIRS | BIF_USENEWUI;
+ Info.lpfn = BrowseCallbackProc;
+ Info.lParam = (LPARAM)pStartDir;
+
+ pItemIDList = SHBrowseForFolder(&Info);
+
+ if (pItemIDList != NULL)
+ {
+ if (SHGetPathFromIDList(pItemIDList, buf) == TRUE)
+ {
+ _sntprintf(pResult, MAX_PATH, TEXT("%s"), buf);
+ bResult = TRUE;
+ }
+ }
+ else
+ bResult = FALSE;
+
+ return bResult;
+}
+
diff --git a/docs/release/src/osd/winui/directories.h b/docs/release/src/osd/winui/directories.h
new file mode 100644
index 00000000000..d38d3caa932
--- /dev/null
+++ b/docs/release/src/osd/winui/directories.h
@@ -0,0 +1,72 @@
+// For licensing and usage information, read docs/winui_license.txt
+// MASTER
+//****************************************************************************
+
+#ifndef DIRECTORIES_H
+#define DIRECTORIES_H
+
+/* Dialog return codes */
+#define DIRDLG_ROMS 0x0010
+#define DIRDLG_SAMPLES 0x0020
+#define DIRDLG_INI 0x0040
+#define DIRDLG_CFG 0x0100
+#define DIRDLG_IMG 0x0400
+#define DIRDLG_INP 0x0800
+#define DIRDLG_CTRLR 0x1000
+#define DIRDLG_SL 0x2000
+#define DIRDLG_SW 0x4000
+#define DIRDLG_CHEAT 0x8000
+
+#define DIRLIST_NEWENTRYTEXT "< >"
+
+#include "mui_opts.h"
+
+typedef struct
+{
+ LPCSTR lpName;
+ LPCSTR (*pfnGetTheseDirs)(void);
+ void (*pfnSetTheseDirs)(LPCSTR lpDirs);
+ BOOL bMulti;
+ int nDirDlgFlags;
+}
+DIRECTORYINFO;
+
+const DIRECTORYINFO g_directoryInfo[] =
+{
+ { "ROMs", GetRomDirs, SetRomDirs, TRUE, DIRDLG_ROMS },
+ { "Samples", GetSampleDirs, SetSampleDirs, TRUE, DIRDLG_SAMPLES },
+ { "Software File Base", GetSWDir, SetSWDir, FALSE, DIRDLG_SW }, // core cannot handle multiple path, even though we can.
+ { "Software List Base", GetSLDir, SetSLDir, FALSE, DIRDLG_SL },
+ { "Artwork", GetArtDir, SetArtDir, TRUE, 0 },
+ { "Cabinets", GetCabinetDir, SetCabinetDir, TRUE, 0 },
+ { "Cheats", GetCheatDir, SetCheatDir, TRUE, DIRDLG_CHEAT },
+ { "Config", GetCfgDir, SetCfgDir, FALSE, DIRDLG_CFG },
+ { "Control Panels", GetControlPanelDir, SetControlPanelDir, TRUE, 0 },
+ { "Controller Files", GetCtrlrDir, SetCtrlrDir, TRUE, DIRDLG_CTRLR },
+ { "Crosshairs", GetCrosshairDir, SetCrosshairDir, TRUE, 0 },
+ { "DAT files", GetDatsDir, SetDatsDir, FALSE, 0 },
+ { "Flyers", GetFlyerDir, SetFlyerDir, TRUE, 0 },
+ { "Folders", GetFolderDir, SetFolderDir, FALSE, 0 },
+ { "Fonts", GetFontDir, SetFontDir, TRUE, 0 },
+ { "Hash", GetHashDirs, SetHashDirs, TRUE, 0 },
+ { "Hard Drive Difference", GetDiffDir, SetDiffDir, TRUE, 0 },
+ { "Icons", GetIconsDir, SetIconsDir, FALSE, 0 },
+// { "Ini Files", GetIniDir, SetIniDir, FALSE, DIRDLG_INI }, // 2017-02-03 hardcoded to 'ini' now
+ { "Input files", GetInpDir, SetInpDir, TRUE, DIRDLG_INP },
+ { "Language", GetLangDir, SetLangDir, FALSE, 0 },
+ { "Marquees", GetMarqueeDir, SetMarqueeDir, TRUE, 0 },
+ { "NVRAM", GetNvramDir, SetNvramDir, TRUE, 0 },
+ { "PCBs", GetPcbDir, SetPcbDir, TRUE, 0 },
+ { "Plugins", GetPluginsDir, SetPluginsDir, FALSE, 0 },
+ { "Snapshots", GetImgDir, SetImgDir, TRUE, DIRDLG_IMG },
+ { "State", GetStateDir, SetStateDir, TRUE, 0 },
+ { "Titles", GetTitlesDir, SetTitlesDir, TRUE, 0 },
+ { NULL }
+};
+
+
+INT_PTR CALLBACK DirectoriesDialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam);
+
+#endif /* DIRECTORIES_H */
+
+
diff --git a/docs/release/src/osd/winui/dirwatch.cpp b/docs/release/src/osd/winui/dirwatch.cpp
new file mode 100644
index 00000000000..62d0ac7d7e9
--- /dev/null
+++ b/docs/release/src/osd/winui/dirwatch.cpp
@@ -0,0 +1,362 @@
+// For licensing and usage information, read docs/winui_license.txt
+//****************************************************************************
+
+// standard windows headers
+#include <windows.h>
+
+// standard C headers
+#include <string.h>
+#include <tchar.h>
+
+// MAME/MAMEUI headers
+#include "dirwatch.h"
+#include "emu.h"
+#include "mui_util.h"
+#include "strconv.h"
+
+typedef BOOL (WINAPI *READDIRECTORYCHANGESFUNC)(HANDLE hDirectory, LPVOID lpBuffer,
+ DWORD nBufferLength, BOOL bWatchSubtree, DWORD dwNotifyFilter,
+ LPDWORD lpBytesReturned, LPOVERLAPPED lpOverlapped,
+ LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine);
+
+
+struct DirWatcherEntry
+{
+ struct DirWatcherEntry *pNext;
+ HANDLE hDir;
+ WORD nIndex;
+ WORD nSubIndex;
+ BOOL bWatchSubtree;
+ OVERLAPPED overlapped;
+
+ union
+ {
+ FILE_NOTIFY_INFORMATION notify;
+ BYTE buffer[1024];
+ } u;
+
+ char szDirPath[1];
+};
+
+
+
+struct DirWatcher
+{
+ HMODULE hKernelModule;
+ READDIRECTORYCHANGESFUNC pfnReadDirectoryChanges;
+
+ HWND hwndTarget;
+ UINT nMessage;
+
+ HANDLE hRequestEvent;
+ HANDLE hResponseEvent;
+ HANDLE hThread;
+ CRITICAL_SECTION crit;
+ struct DirWatcherEntry *pEntries;
+
+ // These are posted externally
+ BOOL bQuit;
+ BOOL bWatchSubtree;
+ WORD nIndex;
+ LPCSTR pszPathList;
+};
+
+
+
+static void DirWatcher_SetupWatch(PDIRWATCHER pWatcher, struct DirWatcherEntry *pEntry)
+{
+ DWORD nDummy;
+
+ memset(&pEntry->u, 0, sizeof(pEntry->u));
+
+ pWatcher->pfnReadDirectoryChanges(pEntry->hDir,
+ &pEntry->u,
+ sizeof(pEntry->u),
+ pEntry->bWatchSubtree,
+ FILE_NOTIFY_CHANGE_FILE_NAME | FILE_NOTIFY_CHANGE_LAST_WRITE | FILE_NOTIFY_CHANGE_SIZE,
+ &nDummy,
+ &pEntry->overlapped,
+ NULL);
+}
+
+
+
+static void DirWatcher_FreeEntry(struct DirWatcherEntry *pEntry)
+{
+ if (pEntry->hDir)
+ CloseHandle(pEntry->hDir);
+ free(pEntry);
+}
+
+
+
+static BOOL DirWatcher_WatchDirectory(PDIRWATCHER pWatcher, int nIndex, int nSubIndex,
+ LPCSTR pszPath, BOOL bWatchSubtree)
+{
+ struct DirWatcherEntry *pEntry;
+ HANDLE hDir;
+
+ pEntry = (DirWatcherEntry *)malloc(sizeof(*pEntry) + strlen(pszPath));
+ if (!pEntry)
+ goto error;
+ memset(pEntry, 0, sizeof(*pEntry));
+ strcpy(pEntry->szDirPath, pszPath);
+ pEntry->overlapped.hEvent = pWatcher->hRequestEvent;
+
+ hDir = win_create_file_utf8(pszPath, FILE_LIST_DIRECTORY,
+ FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE,
+ NULL, OPEN_EXISTING,
+ FILE_FLAG_BACKUP_SEMANTICS | FILE_FLAG_OVERLAPPED, NULL);
+ if (!hDir || (hDir == INVALID_HANDLE_VALUE))
+ goto error;
+
+ // Populate the entry
+ pEntry->hDir = hDir;
+ pEntry->bWatchSubtree = bWatchSubtree;
+ pEntry->nIndex = nIndex;
+ pEntry->nSubIndex = nSubIndex;
+
+ // Link in the entry
+ pEntry->pNext = pWatcher->pEntries;
+ pWatcher->pEntries = pEntry;
+
+ DirWatcher_SetupWatch(pWatcher, pEntry);
+ return TRUE;
+
+error:
+ if (pEntry)
+ DirWatcher_FreeEntry(pEntry);
+ return FALSE;
+}
+
+
+
+static void DirWatcher_Signal(PDIRWATCHER pWatcher, struct DirWatcherEntry *pEntry)
+{
+ LPSTR pszFileName;
+ LPSTR pszFullFileName;
+ BOOL bPause = 0;
+ HANDLE hFile;
+ int nTries = 0;
+ TCHAR* t_filename;
+
+ {
+ int nLength;
+ nLength = WideCharToMultiByte(CP_ACP, 0, pEntry->u.notify.FileName, -1, NULL, 0, NULL, NULL);
+ pszFileName = (LPSTR) alloca(nLength * sizeof(*pszFileName));
+ WideCharToMultiByte(CP_ACP, 0, pEntry->u.notify.FileName, -1, pszFileName, nLength, NULL, NULL);
+ }
+
+ // get the full path to this new file
+ pszFullFileName = (LPSTR) alloca(strlen(pEntry->szDirPath) + strlen(pszFileName) + 2);
+ strcpy(pszFullFileName, pEntry->szDirPath);
+ strcat(pszFullFileName, "\\");
+ strcat(pszFullFileName, pszFileName);
+
+ // attempt to busy wait until any result other than ERROR_SHARING_VIOLATION
+ // is generated
+ nTries = 100;
+ do
+ {
+ hFile = win_create_file_utf8(pszFullFileName, GENERIC_READ,
+ FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL);
+ if (hFile != INVALID_HANDLE_VALUE)
+ CloseHandle(hFile);
+
+ bPause = (nTries--) && (hFile == INVALID_HANDLE_VALUE)
+ && (GetLastError() == ERROR_SHARING_VIOLATION);
+ if (bPause)
+ Sleep(10);
+ }
+ while(bPause);
+
+ // send the message (assuming that we have a target)
+ if (pWatcher->hwndTarget)
+ {
+ t_filename = ui_wstring_from_utf8(pszFileName);
+ if( !t_filename )
+ return;
+ SendMessage(pWatcher->hwndTarget,
+ pWatcher->nMessage,
+ (pEntry->nIndex << 16) | (pEntry->nSubIndex << 0),
+ (LPARAM)(LPCTSTR) win_tstring_strdup(t_filename));
+ free(t_filename);
+ }
+
+ DirWatcher_SetupWatch(pWatcher, pEntry);
+}
+
+
+
+static DWORD WINAPI DirWatcher_ThreadProc(LPVOID lpParameter)
+{
+ LPSTR pszPathList;
+ LPSTR s;
+ int nSubIndex = 0;
+ PDIRWATCHER pWatcher = (PDIRWATCHER) lpParameter;
+ struct DirWatcherEntry *pEntry;
+ struct DirWatcherEntry **ppEntry;
+
+ do
+ {
+ WaitForSingleObject(pWatcher->hRequestEvent, INFINITE);
+
+ if (pWatcher->pszPathList)
+ {
+ // remove any entries with the same nIndex
+ ppEntry = &pWatcher->pEntries;
+ while(*ppEntry)
+ {
+ if ((*ppEntry)->nIndex == pWatcher->nIndex)
+ {
+ pEntry = *ppEntry;
+ *ppEntry = pEntry->pNext;
+ DirWatcher_FreeEntry(pEntry);
+ }
+ else
+ {
+ ppEntry = &(*ppEntry)->pNext;
+ }
+ }
+
+ // allocate our own copy of the path list
+ pszPathList = (LPSTR) alloca(strlen(pWatcher->pszPathList) + 1);
+ strcpy(pszPathList, pWatcher->pszPathList);
+
+ nSubIndex = 0;
+ do
+ {
+ s = strchr(pszPathList, ';');
+ if (s)
+ *s = '\0';
+
+ if (*pszPathList)
+ {
+ DirWatcher_WatchDirectory(pWatcher, pWatcher->nIndex,
+ nSubIndex++, pszPathList, pWatcher->bWatchSubtree);
+ }
+
+ pszPathList = s ? s + 1 : NULL;
+ }
+ while(pszPathList);
+
+ pWatcher->pszPathList = NULL;
+ pWatcher->bWatchSubtree = FALSE;
+ }
+ else
+ {
+ // we have to go through the list and find what has been hit
+ for (pEntry = pWatcher->pEntries; pEntry; pEntry = pEntry->pNext)
+ {
+ if (pEntry->u.notify.Action != 0)
+ {
+ DirWatcher_Signal(pWatcher, pEntry);
+ }
+ }
+ }
+
+ SetEvent(pWatcher->hResponseEvent);
+ }
+ while(!pWatcher->bQuit);
+ return 0;
+}
+
+
+
+PDIRWATCHER DirWatcher_Init(HWND hwndTarget, UINT nMessage)
+{
+ struct DirWatcher *pWatcher = NULL;
+ DWORD nThreadID = 0;
+
+ // This feature does not exist on Win9x
+ if (GetVersion() >= 0x80000000)
+ goto error;
+
+ pWatcher = (DirWatcher *)malloc(sizeof(struct DirWatcher));
+ if (!pWatcher)
+ goto error;
+ memset(pWatcher, 0, sizeof(*pWatcher));
+ InitializeCriticalSection(&pWatcher->crit);
+
+ pWatcher->hKernelModule = LoadLibrary(TEXT("kernel32.dll"));
+ if (!pWatcher->hKernelModule)
+ goto error;
+
+ pWatcher->pfnReadDirectoryChanges = (READDIRECTORYCHANGESFUNC)
+ GetProcAddress(pWatcher->hKernelModule, "ReadDirectoryChangesW");
+ if (!pWatcher->pfnReadDirectoryChanges)
+ goto error;
+
+ pWatcher->hRequestEvent = CreateEvent(NULL, FALSE, FALSE, NULL);
+ if (!pWatcher->hRequestEvent)
+ goto error;
+
+ pWatcher->hResponseEvent = CreateEvent(NULL, FALSE, FALSE, NULL);
+ if (!pWatcher->hRequestEvent)
+ goto error;
+
+ pWatcher->hThread = CreateThread(NULL, 0, DirWatcher_ThreadProc,
+ (LPVOID) pWatcher, 0, &nThreadID);
+
+ pWatcher->hwndTarget = hwndTarget;
+ pWatcher->nMessage = nMessage;
+ return pWatcher;
+
+error:
+ if (pWatcher)
+ DirWatcher_Free(pWatcher);
+ return NULL;
+}
+
+
+
+BOOL DirWatcher_Watch(PDIRWATCHER pWatcher, WORD nIndex, LPCSTR pszPathList, BOOL bWatchSubtrees)
+{
+ EnterCriticalSection(&pWatcher->crit);
+
+ pWatcher->nIndex = nIndex;
+ pWatcher->pszPathList = pszPathList;
+ pWatcher->bWatchSubtree = bWatchSubtrees;
+ SetEvent(pWatcher->hRequestEvent);
+
+ WaitForSingleObject(pWatcher->hResponseEvent, INFINITE);
+ LeaveCriticalSection(&pWatcher->crit);
+ return TRUE;
+}
+
+
+
+void DirWatcher_Free(PDIRWATCHER pWatcher)
+{
+ struct DirWatcherEntry *pEntry;
+ struct DirWatcherEntry *pNextEntry;
+
+ if (pWatcher->hThread)
+ {
+ EnterCriticalSection(&pWatcher->crit);
+ pWatcher->bQuit = TRUE;
+ SetEvent(pWatcher->hRequestEvent);
+ WaitForSingleObject(pWatcher->hThread, 1000);
+ LeaveCriticalSection(&pWatcher->crit);
+ CloseHandle(pWatcher->hThread);
+ }
+
+ DeleteCriticalSection(&pWatcher->crit);
+
+ pEntry = pWatcher->pEntries;
+ while(pEntry)
+ {
+ pNextEntry = pEntry->pNext;
+ DirWatcher_FreeEntry(pEntry);
+ pEntry = pNextEntry;
+ }
+
+ if (pWatcher->hKernelModule)
+ FreeLibrary(pWatcher->hKernelModule);
+ if (pWatcher->hRequestEvent)
+ CloseHandle(pWatcher->hRequestEvent);
+ if (pWatcher->hResponseEvent)
+ CloseHandle(pWatcher->hResponseEvent);
+ free(pWatcher);
+}
+
diff --git a/docs/release/src/osd/winui/dirwatch.h b/docs/release/src/osd/winui/dirwatch.h
new file mode 100644
index 00000000000..1a759568c10
--- /dev/null
+++ b/docs/release/src/osd/winui/dirwatch.h
@@ -0,0 +1,13 @@
+// For licensing and usage information, read docs/winui_license.txt
+//****************************************************************************
+
+#ifndef DIRWATCHER_H
+#define DIRWATCHER_H
+
+typedef struct DirWatcher *PDIRWATCHER;
+
+PDIRWATCHER DirWatcher_Init(HWND hwndTarget, UINT nMessage);
+BOOL DirWatcher_Watch(PDIRWATCHER pWatcher, WORD nIndex, LPCSTR pszPathList, BOOL bWatchSubtrees);
+void DirWatcher_Free(PDIRWATCHER pWatcher);
+
+#endif
diff --git a/docs/release/src/osd/winui/dxdecode.cpp b/docs/release/src/osd/winui/dxdecode.cpp
new file mode 100644
index 00000000000..7fd82828fe8
--- /dev/null
+++ b/docs/release/src/osd/winui/dxdecode.cpp
@@ -0,0 +1,194 @@
+// For licensing and usage information, read docs/winui_license.txt
+//****************************************************************************
+
+// standard windows headers
+#include <windows.h>
+#include <ddraw.h>
+
+// standard C headers
+#include <stdio.h>
+
+// MAME/MAMEUI headers
+#include "directinput.h"
+#include "dxdecode.h"
+
+/***************************************************************/
+
+typedef struct tagERRORCODE
+{
+ HRESULT hr;
+ const char *szError;
+} ERRORCODE, * LPERRORCODE;
+
+/***************************************************************/
+static const ERRORCODE g_ErrorCode[] =
+{
+ { DDERR_ALREADYINITIALIZED, "DDERR_ALREADYINITIALIZED"},
+ { DDERR_CANNOTATTACHSURFACE, "DDERR_CANNOTATTACHSURFACE"},
+ { DDERR_CANNOTDETACHSURFACE, "DDERR_CANNOTDETACHSURFACE"},
+ { DDERR_CURRENTLYNOTAVAIL, "DDERR_CURRENTLYNOTAVAIL"},
+ { DDERR_EXCEPTION, "DDERR_EXCEPTION"},
+ { DDERR_GENERIC, "DDERR_GENERIC"},
+ { DDERR_HEIGHTALIGN, "DDERR_HEIGHTALIGN"},
+ { DDERR_INCOMPATIBLEPRIMARY, "DDERR_INCOMPATIBLEPRIMARY"},
+ { DDERR_INVALIDCAPS, "DDERR_INVALIDCAPS"},
+ { DDERR_INVALIDCLIPLIST, "DDERR_INVALIDCLIPLIST"},
+ { DDERR_INVALIDMODE, "DDERR_INVALIDMODE"},
+ { DDERR_INVALIDOBJECT, "DDERR_INVALIDOBJECT"},
+ { DDERR_INVALIDPARAMS, "DDERR_INVALIDPARAMS"},
+ { DDERR_INVALIDPIXELFORMAT, "DDERR_INVALIDPIXELFORMAT"},
+ { DDERR_INVALIDRECT, "DDERR_INVALIDRECT"},
+ { DDERR_LOCKEDSURFACES, "DDERR_LOCKEDSURFACES"},
+ { DDERR_NO3D, "DDERR_NO3D"},
+ { DDERR_NOALPHAHW, "DDERR_NOALPHAHW"},
+ { DDERR_NOCLIPLIST, "DDERR_NOCLIPLIST"},
+ { DDERR_NOCOLORCONVHW, "DDERR_NOCOLORCONVHW"},
+ { DDERR_NOCOOPERATIVELEVELSET, "DDERR_NOCOOPERATIVELEVELSET"},
+ { DDERR_NOCOLORKEY, "DDERR_NOCOLORKEY"},
+ { DDERR_NOCOLORKEYHW, "DDERR_NOCOLORKEYHW"},
+ { DDERR_NODIRECTDRAWSUPPORT, "DDERR_NODIRECTDRAWSUPPORT"},
+ { DDERR_NOEXCLUSIVEMODE, "DDERR_NOEXCLUSIVEMODE"},
+ { DDERR_NOFLIPHW, "DDERR_NOFLIPHW"},
+ { DDERR_NOGDI, "DDERR_NOGDI"},
+ { DDERR_NOMIRRORHW, "DDERR_NOMIRRORHW"},
+ { DDERR_NOTFOUND, "DDERR_NOTFOUND"},
+ { DDERR_NOOVERLAYHW, "DDERR_NOOVERLAYHW"},
+ { DDERR_NORASTEROPHW, "DDERR_NORASTEROPHW"},
+ { DDERR_NOROTATIONHW, "DDERR_NOROTATIONHW"},
+ { DDERR_NOSTRETCHHW, "DDERR_NOSTRETCHHW"},
+ { DDERR_NOT4BITCOLOR, "DDERR_NOT4BITCOLOR"},
+ { DDERR_NOT4BITCOLORINDEX, "DDERR_NOT4BITCOLORINDEX"},
+ { DDERR_NOT8BITCOLOR, "DDERR_NOT8BITCOLOR"},
+ { DDERR_NOTEXTUREHW, "DDERR_NOTEXTUREHW"},
+ { DDERR_NOVSYNCHW, "DDERR_NOVSYNCHW"},
+ { DDERR_NOZBUFFERHW, "DDERR_NOZBUFFERHW"},
+ { DDERR_NOZOVERLAYHW, "DDERR_NOZOVERLAYHW"},
+ { DDERR_OUTOFCAPS, "DDERR_OUTOFCAPS"},
+ { DDERR_OUTOFMEMORY, "DDERR_OUTOFMEMORY"},
+ { DDERR_OUTOFVIDEOMEMORY, "DDERR_OUTOFVIDEOMEMORY"},
+ { DDERR_OVERLAYCANTCLIP, "DDERR_OVERLAYCANTCLIP"},
+ { DDERR_OVERLAYCOLORKEYONLYONEACTIVE, "DDERR_OVERLAYCOLORKEYONLYONEACTIVE"},
+ { DDERR_PALETTEBUSY, "DDERR_PALETTEBUSY"},
+ { DDERR_COLORKEYNOTSET, "DDERR_COLORKEYNOTSET"},
+ { DDERR_SURFACEALREADYATTACHED, "DDERR_SURFACEALREADYATTACHED"},
+ { DDERR_SURFACEALREADYDEPENDENT, "DDERR_SURFACEALREADYDEPENDENT"},
+ { DDERR_SURFACEBUSY, "DDERR_SURFACEBUSY"},
+ { DDERR_CANTLOCKSURFACE, "DDERR_CANTLOCKSURFACE"},
+ { DDERR_SURFACEISOBSCURED, "DDERR_SURFACEISOBSCURED"},
+ { DDERR_SURFACELOST, "DDERR_SURFACELOST"},
+ { DDERR_SURFACENOTATTACHED, "DDERR_SURFACENOTATTACHED"},
+ { DDERR_TOOBIGHEIGHT, "DDERR_TOOBIGHEIGHT"},
+ { DDERR_TOOBIGSIZE, "DDERR_TOOBIGSIZE"},
+ { DDERR_TOOBIGWIDTH, "DDERR_TOOBIGWIDTH"},
+ { DDERR_UNSUPPORTED, "DDERR_UNSUPPORTED"},
+ { DDERR_UNSUPPORTEDFORMAT, "DDERR_UNSUPPORTEDFORMAT"},
+ { DDERR_UNSUPPORTEDMASK, "DDERR_UNSUPPORTEDMASK"},
+ { DDERR_VERTICALBLANKINPROGRESS, "DDERR_VERTICALBLANKINPROGRESS"},
+ { DDERR_WASSTILLDRAWING, "DDERR_WASSTILLDRAWING"},
+ { DDERR_XALIGN, "DDERR_XALIGN"},
+ { DDERR_INVALIDDIRECTDRAWGUID, "DDERR_INVALIDDIRECTDRAWGUID"},
+ { DDERR_DIRECTDRAWALREADYCREATED, "DDERR_DIRECTDRAWALREADYCREATED"},
+ { DDERR_NODIRECTDRAWHW, "DDERR_NODIRECTDRAWHW"},
+ { DDERR_PRIMARYSURFACEALREADYEXISTS, "DDERR_PRIMARYSURFACEALREADYEXISTS"},
+ { DDERR_NOEMULATION, "DDERR_NOEMULATION"},
+ { DDERR_REGIONTOOSMALL, "DDERR_REGIONTOOSMALL"},
+ { DDERR_CLIPPERISUSINGHWND, "DDERR_CLIPPERISUSINGHWND"},
+ { DDERR_NOCLIPPERATTACHED, "DDERR_NOCLIPPERATTACHED"},
+ { DDERR_NOHWND, "DDERR_NOHWND"},
+ { DDERR_HWNDSUBCLASSED, "DDERR_HWNDSUBCLASSED"},
+ { DDERR_HWNDALREADYSET, "DDERR_HWNDALREADYSET"},
+ { DDERR_NOPALETTEATTACHED, "DDERR_NOPALETTEATTACHED"},
+ { DDERR_NOPALETTEHW, "DDERR_NOPALETTEHW"},
+ { DDERR_BLTFASTCANTCLIP, "DDERR_BLTFASTCANTCLIP"},
+ { DDERR_NOBLTHW, "DDERR_NOBLTHW"},
+ { DDERR_NODDROPSHW, "DDERR_NODDROPSHW"},
+ { DDERR_OVERLAYNOTVISIBLE, "DDERR_OVERLAYNOTVISIBLE"},
+ { DDERR_NOOVERLAYDEST, "DDERR_NOOVERLAYDEST"},
+ { DDERR_INVALIDPOSITION, "DDERR_INVALIDPOSITION"},
+ { DDERR_NOTAOVERLAYSURFACE, "DDERR_NOTAOVERLAYSURFACE"},
+ { DDERR_EXCLUSIVEMODEALREADYSET, "DDERR_EXCLUSIVEMODEALREADYSET"},
+ { DDERR_NOTFLIPPABLE, "DDERR_NOTFLIPPABLE"},
+ { DDERR_CANTDUPLICATE, "DDERR_CANTDUPLICATE"},
+ { DDERR_NOTLOCKED, "DDERR_NOTLOCKED"},
+ { DDERR_CANTCREATEDC, "DDERR_CANTCREATEDC"},
+ { DDERR_NODC, "DDERR_NODC"},
+ { DDERR_WRONGMODE, "DDERR_WRONGMODE"},
+ { DDERR_IMPLICITLYCREATED, "DDERR_IMPLICITLYCREATED"},
+ { DDERR_NOTPALETTIZED, "DDERR_NOTPALETTIZED"},
+ { DDERR_UNSUPPORTEDMODE, "DDERR_UNSUPPORTEDMODE"},
+ { DDERR_NOMIPMAPHW, "DDERR_NOMIPMAPHW"},
+ { DDERR_INVALIDSURFACETYPE, "DDERR_INVALIDSURFACETYPE"},
+
+ { DDERR_NOOPTIMIZEHW, "DDERR_NOOPTIMIZEHW"},
+ { DDERR_NOTLOADED, "DDERR_NOTLOADED"},
+
+ { DDERR_DCALREADYCREATED, "DDERR_DCALREADYCREATED"},
+
+ { DDERR_NONONLOCALVIDMEM, "DDERR_NONONLOCALVIDMEM"},
+ { DDERR_CANTPAGELOCK, "DDERR_CANTPAGELOCK"},
+ { DDERR_CANTPAGEUNLOCK, "DDERR_CANTPAGEUNLOCK"},
+ { DDERR_NOTPAGELOCKED, "DDERR_NOTPAGELOCKED"},
+
+ { DDERR_MOREDATA, "DDERR_MOREDATA"},
+ { DDERR_VIDEONOTACTIVE, "DDERR_VIDEONOTACTIVE"},
+ { DDERR_DEVICEDOESNTOWNSURFACE, "DDERR_DEVICEDOESNTOWNSURFACE"},
+ { DDERR_NOTINITIALIZED, "DDERR_NOTINITIALIZED"},
+
+ { DIERR_OLDDIRECTINPUTVERSION, "DIERR_OLDDIRECTINPUTVERSION" },
+ { DIERR_BETADIRECTINPUTVERSION, "DIERR_BETADIRECTINPUTVERSION" },
+ { DIERR_BADDRIVERVER, "DIERR_BADDRIVERVER" },
+ { DIERR_DEVICENOTREG, "DIERR_DEVICENOTREG" },
+ { DIERR_NOTFOUND, "DIERR_NOTFOUND" },
+ { DIERR_OBJECTNOTFOUND, "DIERR_OBJECTNOTFOUND" },
+ { DIERR_INVALIDPARAM, "DIERR_INVALIDPARAM" },
+ { DIERR_NOINTERFACE, "DIERR_NOINTERFACE" },
+ { DIERR_GENERIC, "DIERR_GENERIC" },
+ { DIERR_OUTOFMEMORY, "DIERR_OUTOFMEMORY" },
+ { DIERR_UNSUPPORTED, "DIERR_UNSUPPORTED" },
+ { DIERR_NOTINITIALIZED, "DIERR_NOTINITIALIZED" },
+ { DIERR_ALREADYINITIALIZED, "DIERR_ALREADYINITIALIZED" },
+ { DIERR_NOAGGREGATION, "DIERR_NOAGGREGATION" },
+ { DIERR_OTHERAPPHASPRIO, "DIERR_OTHERAPPHASPRIO" },
+ { DIERR_INPUTLOST, "DIERR_INPUTLOST" },
+ { DIERR_ACQUIRED, "DIERR_ACQUIRED" },
+ { DIERR_NOTACQUIRED, "DIERR_NOTACQUIRED" },
+ { DIERR_READONLY, "DIERR_READONLY" },
+ { DIERR_HANDLEEXISTS, "DIERR_HANDLEEXISTS" },
+ { E_PENDING, "E_PENDING" },
+ { (HRESULT)DIERR_INSUFFICIENTPRIVS, "DIERR_INSUFFICIENTPRIVS" },
+ { (HRESULT)DIERR_DEVICEFULL, "DIERR_DEVICEFULL" },
+ { (HRESULT)DIERR_MOREDATA, "DIERR_MOREDATA" },
+ { (HRESULT)DIERR_NOTDOWNLOADED, "DIERR_NOTDOWNLOADED" },
+ { (HRESULT)DIERR_HASEFFECTS, "DIERR_HASEFFECTS" },
+ { (HRESULT)DIERR_NOTEXCLUSIVEACQUIRED,"DIERR_NOTEXCLUSIVEACQUIRED" },
+ { (HRESULT)DIERR_INCOMPLETEEFFECT, "DIERR_INCOMPLETEEFFECT" },
+ { (HRESULT)DIERR_NOTBUFFERED, "DIERR_NOTBUFFERED" },
+ { (HRESULT)DIERR_EFFECTPLAYING, "DIERR_EFFECTPLAYING" },
+ //{ (HRESULT)DIERR_UNPLUGGED, "DIERR_UNPLUGGED" },
+
+ { E_NOINTERFACE, "E_NOINTERFACE" }
+
+};
+
+/***************************************************************/
+
+/*
+ DirectXDecodeError: Return a string description of the given DirectX
+ error code.
+*/
+
+const char * DirectXDecodeError(HRESULT errorval)
+{
+ int i;
+ static char tmp[64];
+
+ for (i = 0; i < (sizeof(g_ErrorCode) / sizeof(g_ErrorCode[0])); i++)
+ {
+ if (g_ErrorCode[i].hr == errorval)
+ {
+ return g_ErrorCode[i].szError;
+ }
+ }
+ sprintf(tmp, "UNKNOWN: 0x%x", (unsigned int)errorval);
+ return tmp;
+}
diff --git a/docs/release/src/osd/winui/dxdecode.h b/docs/release/src/osd/winui/dxdecode.h
new file mode 100644
index 00000000000..0de32e83623
--- /dev/null
+++ b/docs/release/src/osd/winui/dxdecode.h
@@ -0,0 +1,13 @@
+// For licensing and usage information, read docs/winui_license.txt
+//****************************************************************************
+
+/* dxdecode.h for client */
+
+/* Main header file for dxdecode.cpp */
+
+#ifndef DXDECODE_H
+#define DXDECODE_H
+
+extern const char* DirectXDecodeError(HRESULT errorval);
+
+#endif /* DXDECODE_H */
diff --git a/docs/release/src/osd/winui/game_opts.h b/docs/release/src/osd/winui/game_opts.h
new file mode 100644
index 00000000000..5f5f98d737b
--- /dev/null
+++ b/docs/release/src/osd/winui/game_opts.h
@@ -0,0 +1,166 @@
+// For licensing and usage information, read docs/winui_license.txt
+//****************************************************************************
+
+#ifndef __GAME_OPTS_H__
+#define __GAME_OPTS_H__
+
+class game_options
+{
+public:
+ // construction/destruction
+ game_options()
+ {
+ m_total = driver_list::total();
+ m_list.reserve(m_total);
+
+ driver_options option = { -1, -1, -1, 0, 0 };
+
+ for (int i = 0; i < m_total; i++)
+ m_list[i] = option;
+ }
+
+ int rom(int index) { assert(0 <= index && index < driver_list::total()); return m_list[index].rom; }
+ void rom(int index, int val) { assert(0 <= index && index < driver_list::total()); m_list[index].rom = val; }
+
+ int sample(int index) { assert(0 <= index && index < driver_list::total()); return m_list[index].sample; }
+ void sample(int index, int val) { assert(0 <= index && index < driver_list::total()); m_list[index].sample = val; }
+
+ int cache(int index) { assert(0 <= index && index < driver_list::total()); return m_list[index].cache; }
+ void cache(int index, int val) { assert(0 <= index && index < driver_list::total()); m_list[index].cache = val; }
+
+ int play_count(int index) { assert(0 <= index && index < driver_list::total()); return m_list[index].play_count; }
+ void play_count(int index, int val) { assert(0 <= index && index < driver_list::total()); m_list[index].play_count = val; }
+
+ int play_time(int index) { assert(0 <= index && index < driver_list::total()); return m_list[index].play_time; }
+ void play_time(int index, int val) { assert(0 <= index && index < driver_list::total()); m_list[index].play_time = val; }
+
+ void add_entries()
+ {
+ options_entry entry[2] = { { 0 }, { 0 } };
+
+ // 1:Rom, 2:Sample, 3:Cache, 4:Play Count, 5:Play Time
+ entry[0].defvalue = "-1;-1;-1";
+ entry[0].flags = OPTION_STRING;
+ entry[0].description = NULL;
+
+ for (int i = 0; i < m_total; i++)
+ {
+ entry[0].name = driver_list::driver(i).name;
+ m_info.add_entries(entry);
+ }
+ }
+
+ osd_file::error load_file(const char *filename)
+ {
+ emu_file file(OPEN_FLAG_READ);
+
+ osd_file::error filerr = file.open(filename);
+ if (filerr == osd_file::error::NONE)
+ {
+ std::string error_string;
+ m_info.parse_ini_file(file, OPTION_PRIORITY_CMDLINE, OPTION_PRIORITY_CMDLINE, error_string);
+ }
+
+ load_settings();
+
+ return filerr;
+ }
+
+ void output_ini(std::string &buffer, const char *header = NULL)
+ {
+ std::string inibuffer = m_info.output_ini();
+
+ if (header && !inibuffer.empty())
+ {
+ buffer.append(string_format("#\n# %s\n#\n", header));
+ buffer.append(inibuffer);
+ }
+ }
+
+ void load_settings(void)
+ {
+ std::string value_str;
+
+ for (int i = 0; i < m_total; i++)
+ {
+ value_str.assign(m_info.value(driver_list::driver(i).name));
+
+ if (!value_str.empty())
+ load_settings(value_str.c_str(), i);
+ }
+ }
+
+ void load_settings(const char *str, int index)
+ {
+ path_iterator path(str);
+ std::string curpath;
+ int value_int;
+
+ for (int i = 0; i < 5; i++)
+ {
+ if ( path.next(curpath) )
+ {
+ if (!curpath.empty() && (sscanf(curpath.c_str(), "%d", &value_int) == 1))
+ {
+ switch (i)
+ {
+ case 0: m_list[index].rom = value_int; break;
+ case 1: m_list[index].sample = value_int; break;
+ case 2: m_list[index].cache = value_int; break;
+ case 3: m_list[index].play_count = value_int; break;
+ case 4: m_list[index].play_time = value_int; break;
+ }
+ }
+ }
+ else
+ break;
+ }
+ }
+
+ void save_settings(void)
+ {
+ std::string value_str;
+ std::string error_string;
+
+ for (int i = 0; i < m_total; i++)
+ {
+ value_str = string_format("%d;%d;%d;%d;%d", m_list[i].rom, m_list[i].sample, m_list[i].cache, m_list[i].play_count, m_list[i].play_time);
+ m_info.set_value(driver_list::driver(i).name, value_str.c_str(), OPTION_PRIORITY_CMDLINE, error_string);
+ }
+ }
+
+ osd_file::error save_file(const char *filename)
+ {
+ osd_file::error filerr;
+ std::string inistring;
+
+ save_settings();
+
+ output_ini(inistring, "GAME STATISTICS");
+
+ emu_file file(OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS);
+ filerr = file.open(filename);
+ if (filerr == osd_file::error::NONE)
+ file.puts(inistring.c_str());
+
+ return filerr;
+ }
+
+private:
+ core_options m_info;
+ int m_total;
+
+ struct driver_options
+ {
+ int rom;
+ int sample;
+ int cache;
+ int play_count;
+ int play_time;
+ };
+
+ std::vector<driver_options> m_list;
+};
+
+#endif // __GAME_OPTS_H__
+
diff --git a/docs/release/src/osd/winui/hbmame.rc b/docs/release/src/osd/winui/hbmame.rc
new file mode 100644
index 00000000000..f90e47d750c
--- /dev/null
+++ b/docs/release/src/osd/winui/hbmame.rc
@@ -0,0 +1,20 @@
+#include "windows.h"
+#include "commctrl.h"
+
+/////////////////////////////////////////////////////////////////////////////
+// English (U.S.) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
+#ifdef _WIN32
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+#pragma code_page(1252)
+#endif //_WIN32
+
+//
+// Icon
+//
+
+2 ICON DISCARDABLE "res\\hbmame.ico"
+#endif // English (U.S.) resources
+
+#include "hbmameui.rc"
diff --git a/docs/release/src/osd/winui/hbmameui.rc b/docs/release/src/osd/winui/hbmameui.rc
new file mode 100644
index 00000000000..e946a5ad6a3
--- /dev/null
+++ b/docs/release/src/osd/winui/hbmameui.rc
@@ -0,0 +1,1457 @@
+// Microsoft Visual C++ generated resource script.
+//
+#include "newuires.h"
+#include "resource.h"
+
+// Generated Help ID header file
+#define APSTUDIO_HIDDEN_SYMBOLS
+#include "resource.hm"
+#undef APSTUDIO_HIDDEN_SYMBOLS
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#include "windows.h"
+#include "commctrl.h"
+
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// English (USA) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
+#ifdef _WIN32
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+#pragma code_page(1252)
+#endif //_WIN32
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Menu
+//
+
+IDR_MAIN_MENU MENU DISCARDABLE
+BEGIN
+ POPUP "&File"
+ BEGIN
+ MENUITEM "&Exit", ID_FILE_EXIT
+ END
+ POPUP "&Help"
+ BEGIN
+ MENUITEM "&About HBMAMEUI", ID_ABOUT
+ END
+END
+
+IDR_UI_MENU MENU DISCARDABLE
+BEGIN
+ POPUP "&File"
+ BEGIN
+ MENUITEM "&Play", ID_FILE_PLAY
+ MENUITEM SEPARATOR
+ MENUITEM "Play and &Record Input...", ID_FILE_PLAY_RECORD
+ MENUITEM "P&layback Input...", ID_FILE_PLAY_BACK
+ MENUITEM SEPARATOR
+ MENUITEM "Play and Record &Wave Output...", ID_FILE_PLAY_RECORD_WAVE
+ MENUITEM SEPARATOR
+ MENUITEM "Play and Record &MNG Output...", ID_FILE_PLAY_RECORD_MNG
+ MENUITEM SEPARATOR
+ MENUITEM "Play and Record &uncompressed AVI Output...",
+ ID_FILE_PLAY_RECORD_AVI
+ MENUITEM SEPARATOR
+ MENUITEM "Loa&d Savestate...", ID_FILE_LOADSTATE
+ MENUITEM SEPARATOR
+
+ MENUITEM "Pr&operties", ID_GAME_PROPERTIES
+ MENUITEM SEPARATOR
+ MENUITEM "Audi&t existing sets", ID_FILE_AUDIT_X
+ MENUITEM "&Audit all sets", ID_FILE_AUDIT
+ MENUITEM SEPARATOR
+ MENUITEM "E&xit", ID_FILE_EXIT
+ END
+ POPUP "&View"
+ BEGIN
+ MENUITEM "&Toolbar\tAlt+T", ID_VIEW_TOOLBARS
+ MENUITEM "&Status bar\tAlt+S", ID_VIEW_STATUS
+ MENUITEM "Fold&er List\tAlt+D", ID_VIEW_FOLDERS
+ MENUITEM "&Picture Area\tAlt+P", ID_VIEW_PICTURE_AREA
+ MENUITEM "Screenshot Ta&b\tAlt+B", ID_VIEW_PAGETAB
+ MENUITEM SEPARATOR
+ MENUITEM "&Fullscreen\tF11", ID_VIEW_FULLSCREEN
+ MENUITEM SEPARATOR
+ POPUP "S&how Pictures"
+ BEGIN
+ MENUITEM "&Snapshot", ID_TOGGLE_TAB_SCREENSHOT
+ MENUITEM "&Flyer", ID_TOGGLE_TAB_FLYER
+ MENUITEM "&Cabinet", ID_TOGGLE_TAB_CABINET
+ MENUITEM "&Marquee", ID_TOGGLE_TAB_MARQUEE
+ MENUITEM "&Title", ID_TOGGLE_TAB_TITLE
+ MENUITEM "Control &Panel", ID_TOGGLE_TAB_CONTROL_PANEL
+
+ MENUITEM "PC&B", ID_TOGGLE_TAB_PCB
+ MENUITEM "&History", ID_TOGGLE_TAB_HISTORY
+ END
+ MENUITEM SEPARATOR
+ MENUITEM "L&arge Icons", ID_VIEW_LARGE_ICON
+ MENUITEM "S&mall Icons", ID_VIEW_SMALL_ICON
+ MENUITEM "&List", ID_VIEW_LIST_MENU
+ MENUITEM "&Details", ID_VIEW_DETAIL
+ MENUITEM "&Grouped", ID_VIEW_GROUPED
+ MENUITEM SEPARATOR
+ POPUP "Arrange &Icons"
+ BEGIN
+ MENUITEM "by &Name", ID_VIEW_BYGAME
+ MENUITEM "by D&irectory", ID_VIEW_BYDIRECTORY
+ MENUITEM "by &Manufacturer", ID_VIEW_BYMANUFACTURER
+ MENUITEM "by Times &Played", ID_VIEW_BYTIMESPLAYED
+ MENUITEM "by &Type", ID_VIEW_BYTYPE
+ MENUITEM "by &Date", ID_VIEW_BYYEAR
+ END
+ MENUITEM "Line &Up Icons", ID_VIEW_LINEUPICONS
+ MENUITEM SEPARATOR
+ MENUITEM "&Refresh\tF5", ID_UPDATE_GAMELIST
+ MENUITEM "&Custom Filters...\tCtrl+F", ID_CONTEXT_FILTERS
+ MENUITEM "Customi&ze Fields...", ID_CUSTOMIZE_FIELDS
+ END
+ POPUP "&Options"
+ BEGIN
+ MENUITEM "&Interface Options", ID_OPTIONS_INTERFACE
+ MENUITEM "Default Game &Options", ID_OPTIONS_DEFAULTS
+ MENUITEM "&Directories", ID_OPTIONS_DIR
+ MENUITEM SEPARATOR
+ MENUITEM "Game List &Font", ID_OPTIONS_FONT
+ MENUITEM "Game List &Clone Color", ID_OPTIONS_CLONE_COLOR
+ MENUITEM SEPARATOR
+
+ MENUITEM "&Background Image", ID_OPTIONS_BG
+ MENUITEM SEPARATOR
+ MENUITEM "&Reset to Default", ID_OPTIONS_RESET_DEFAULTS
+
+ END
+ POPUP "&Help"
+ BEGIN
+ MENUITEM "What's New in MAME", ID_HELP_WHATS_NEW
+ MENUITEM "&Contents\tF1", ID_HELP_CONTENTS
+ MENUITEM "&About", ID_HELP_ABOUT
+ END
+END
+
+IDR_CONTEXT_MENU MENU
+BEGIN
+ POPUP "Context Menu"
+ BEGIN
+ MENUITEM "&Play", ID_FILE_PLAY
+ MENUITEM SEPARATOR
+ MENUITEM "Play and &Record Input...", ID_FILE_PLAY_RECORD
+ MENUITEM SEPARATOR
+ MENUITEM "&Add to Custom Folder...", ID_CONTEXT_ADD_CUSTOM
+ MENUITEM "R&emove From This Folder", ID_CONTEXT_REMOVE_CUSTOM
+ MENUITEM "&Custom Filters...", ID_CONTEXT_FILTERS
+ MENUITEM SEPARATOR
+ MENUITEM "&Select Random Game", ID_CONTEXT_SELECT_RANDOM
+ MENUITEM SEPARATOR
+ MENUITEM "Rese&t Play Stats", ID_CONTEXT_RESET_PLAYSTATS
+ MENUITEM SEPARATOR
+ MENUITEM "A&udit", ID_GAME_AUDIT
+ MENUITEM SEPARATOR
+ MENUITEM "Pr&operties", ID_GAME_PROPERTIES
+ MENUITEM "Source properties", ID_FOLDER_SOURCEPROPERTIES
+// MENUITEM "&Vector properties", ID_FOLDER_VECTORPROPERTIES
+ END
+END
+
+IDR_CONTEXT_HEADER MENU
+BEGIN
+ POPUP "Header Context Menu"
+ BEGIN
+ MENUITEM "Sort &Ascending", ID_SORT_ASCENDING
+ MENUITEM "Sort &Descending", ID_SORT_DESCENDING
+ MENUITEM SEPARATOR
+ MENUITEM "Customi&ze Fields...", ID_CUSTOMIZE_FIELDS
+ END
+END
+
+IDR_CONTEXT_TREE MENU
+BEGIN
+ POPUP "Context Menu Tree"
+ BEGIN
+ MENUITEM "&Rename", ID_CONTEXT_RENAME_CUSTOM
+ MENUITEM "&Custom Filters...", ID_CONTEXT_FILTERS
+ MENUITEM SEPARATOR
+ POPUP "&Show Folders"
+ BEGIN
+ MENUITEM "overridden by code", ID_CONTEXT_SHOW_FOLDER_START
+
+ END
+ MENUITEM SEPARATOR
+ MENUITEM "&Audit", ID_FOLDER_AUDIT
+ MENUITEM SEPARATOR
+ MENUITEM "&Properties", ID_FOLDER_PROPERTIES
+ END
+END
+
+IDR_CONTEXT_SCREENSHOT MENU
+BEGIN
+ POPUP "Context Screen Shot"
+ BEGIN
+ MENUITEM "Show Tab &Control", ID_VIEW_PAGETAB
+ MENUITEM SEPARATOR
+ POPUP "S&how Pictures"
+ BEGIN
+ MENUITEM "&Snapshot", ID_TOGGLE_TAB_SCREENSHOT
+ MENUITEM "&Flyer", ID_TOGGLE_TAB_FLYER
+ MENUITEM "&Cabinet", ID_TOGGLE_TAB_CABINET
+ MENUITEM "&Marquee", ID_TOGGLE_TAB_MARQUEE
+ MENUITEM "&Title", ID_TOGGLE_TAB_TITLE
+ MENUITEM "Control &Panel", ID_TOGGLE_TAB_CONTROL_PANEL
+
+ MENUITEM "PC&B", ID_TOGGLE_TAB_PCB
+ MENUITEM "&History", ID_TOGGLE_TAB_HISTORY
+ END
+ MENUITEM SEPARATOR
+ MENUITEM "&Snapshot", ID_VIEW_TAB_SCREENSHOT
+ MENUITEM "&Flyer", ID_VIEW_TAB_FLYER
+ MENUITEM "&Cabinet", ID_VIEW_TAB_CABINET
+ MENUITEM "&Marquee", ID_VIEW_TAB_MARQUEE
+ MENUITEM "&Title", ID_VIEW_TAB_TITLE
+ MENUITEM "Control &Panel", ID_VIEW_TAB_CONTROL_PANEL
+ MENUITEM "PC&B", ID_VIEW_TAB_PCB
+ MENUITEM "&History", ID_VIEW_TAB_HISTORY
+ END
+END
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Menu
+//
+
+IDR_RUNTIME_MENU MENU
+BEGIN
+ POPUP "&File"
+ BEGIN
+ MENUITEM "&Load State...", ID_FILE_LOADSTATE_NEWUI, GRAYED
+ MENUITEM "&Save State", ID_FILE_SAVESTATE, GRAYED
+ MENUITEM "S&ave State As...", ID_FILE_SAVESTATE_AS, GRAYED
+ MENUITEM SEPARATOR
+ MENUITEM "Save Sc&reenshot", ID_FILE_SAVESCREENSHOT
+ MENUITEM SEPARATOR
+ MENUITEM "&Hide Menubar", ID_FILE_TOGGLEMENUBAR
+ MENUITEM "&Full Screen\tAlt+Enter", ID_FILE_FULLSCREEN
+ MENUITEM "Partial Keyboard Emulation", ID_FILE_UIACTIVE
+ MENUITEM "Show Tab Menu", ID_FILE_OLDUI
+ MENUITEM SEPARATOR
+ MENUITEM "&Exit", ID_FILE_EXIT_NEWUI
+ END
+ POPUP "&Edit"
+ BEGIN
+ MENUITEM "Paste", ID_EDIT_PASTE
+ END
+ POPUP "&Options"
+ BEGIN
+ MENUITEM "&Pause", ID_OPTIONS_PAUSE, GRAYED
+ MENUITEM "Soft &Reset", ID_OPTIONS_SOFTRESET
+ MENUITEM "Ha&rd Reset", ID_OPTIONS_HARDRESET
+ MENUITEM SEPARATOR
+ POPUP "&Keyboard"
+ BEGIN
+ MENUITEM "Emulated", ID_KEYBOARD_EMULATED
+ MENUITEM "Natural", ID_KEYBOARD_NATURAL
+ MENUITEM SEPARATOR
+ MENUITEM "Customise Emulated Keyboard...", ID_KEYBOARD_CUSTOMIZE
+ END
+ MENUITEM "&Joysticks", ID_OPTIONS_JOYSTICKS, GRAYED
+ POPUP "&Video"
+ BEGIN
+ MENUITEM SEPARATOR
+ MENUITEM "Rotate 0 degrees", ID_VIDEO_ROTATE_0
+ MENUITEM "Rotate 90 degrees", ID_VIDEO_ROTATE_90
+ MENUITEM "Rotate 180 degrees", ID_VIDEO_ROTATE_180
+ MENUITEM "Rotate 270 degrees", ID_VIDEO_ROTATE_270
+ END
+ MENUITEM "&Configuration...", ID_OPTIONS_CONFIGURATION
+ MENUITEM "&DIP Switches...", ID_OPTIONS_DIPSWITCHES
+ MENUITEM "&Miscellaneous Inputs...", ID_OPTIONS_MISCINPUT
+ MENUITEM "&Analog Controls...", ID_OPTIONS_ANALOGCONTROLS
+ MENUITEM SEPARATOR
+ POPUP "&Frameskip"
+ BEGIN
+ MENUITEM "Auto", ID_FRAMESKIP_AUTO
+ END
+ POPUP "Maximum &Speed"
+ BEGIN
+ MENUITEM "50%", ID_THROTTLE_50
+ MENUITEM "100%", ID_THROTTLE_100
+ MENUITEM "200%", ID_THROTTLE_200
+ MENUITEM "500%", ID_THROTTLE_500
+ MENUITEM "1000%", ID_THROTTLE_1000
+ MENUITEM "Unlimited", ID_THROTTLE_UNTHROTTLED
+ END
+ MENUITEM "Show &FPS", ID_OPTIONS_TOGGLEFPS
+ END
+ POPUP "&Media"
+ BEGIN
+ MENUITEM SEPARATOR
+ END
+ POPUP "&Help"
+ BEGIN
+ MENUITEM "About This System...", ID_HELP_ABOUTSYSTEM
+ MENUITEM "&About HBMAME...", ID_HELP_ABOUT_NEWUI
+ END
+END
+
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE MOVEABLE PURE
+BEGIN
+ "resource.h\\r\n"
+ "newuires.h\0"
+END
+
+2 TEXTINCLUDE MOVEABLE PURE
+BEGIN
+ "#define NOWINRES\r\n"
+ "#include ""windows.h""\r\n"
+ "#include ""commctrl.h""\r\n"
+ "\0"
+END
+
+3 TEXTINCLUDE MOVEABLE PURE
+BEGIN
+ "#include ""hbmamevers.rc"" // Version block\r\n"
+ "\r\n"
+ "\0"
+END
+
+#endif // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Icon
+//
+
+// Icon with lowest ID value placed first to ensure application icon
+// remains consistent on all systems.
+IDI_MAMEUI_ICON ICON "res\\hbmameui.ico"
+IDI_WIN_ROMS ICON "res\\win_roms.ico"
+IDI_WIN_NOROMS ICON "res\\win_noro.ico"
+IDI_WIN_UNKNOWN ICON "res\\win_unkn.ico"
+IDI_WIN_CLONE ICON "res\\win_clone.ico"
+IDI_WIN_REDX ICON "res\\win_redx.ico"
+IDI_FOLDER_AVAILABLE ICON "res\\foldavail.ico"
+IDI_FOLDER ICON "res\\folder.ico"
+IDI_FOLDER_MANUFACTURER ICON "res\\foldmanu.ico"
+IDI_FOLDER_OPEN ICON "res\\foldopen.ico"
+IDI_FOLDER_UNAVAILABLE ICON "res\\foldunav.ico"
+IDI_FOLDER_HORIZONTAL ICON "res\\horz.ico"
+IDI_FOLDER_VERTICAL ICON "res\\vert.ico"
+IDI_MANUFACTURER ICON "res\\manufact.ico"
+IDI_FOLDER_YEAR ICON "res\\foldyear.ico"
+IDI_FOLDER_SOURCE ICON "res\\foldsrc.ico"
+IDI_WORKING ICON "res\\working.ico"
+IDI_NONWORKING ICON "res\\nonwork.ico"
+IDI_YEAR ICON "res\\year.ico"
+IDI_KEYBOARD ICON "res\\keyboard.ico"
+IDI_JOYSTICK ICON "res\\joystick.ico"
+IDI_CPU ICON "res\\cpu.ico"
+IDI_SOUND ICON "res\\samples.ico"
+IDI_SOUNDTAB ICON "res\\sound.ico"
+IDI_SOURCE ICON "res\\source.ico"
+IDI_HARDDISK ICON "res\\harddisk.ico"
+IDI_DISPLAY ICON "res\\display.ico"
+IDI_CHECKMARK ICON "res\\checkmark.ico"
+IDI_HEADER_UP ICON "res\\header_up.ico"
+IDI_HEADER_DOWN ICON "res\\header_down.ico"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Dialog
+//
+
+IDD_ABOUT DIALOG DISCARDABLE 0, 0, 296, 129
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "About HBMAMEUI"
+FONT 8, "Tahoma"
+BEGIN
+ DEFPUSHBUTTON "&OK",IDOK,200,109,50,14,WS_GROUP
+ CTEXT "HomeBrew MAME",IDC_STATIC,147,7,142,
+ 11,NOT WS_GROUP
+ CTEXT "Version 0",IDC_VERSION,147,18,142,11,NOT WS_GROUP
+ CTEXT "Copyright (C) 1997-2017 The HBMAME Team",IDC_STATIC,147,
+ 29,142,10,NOT WS_GROUP
+ CTEXT "MAMEUI version by",IDC_STATIC,147,51,142,10,NOT
+ WS_GROUP
+ CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,147,44,142,1
+ CTEXT "Christopher Kirmse and the MAMEUI team",IDC_STATIC,147,
+ 62,142,9,NOT WS_GROUP
+ CTEXT "Additional MAMEUI code by",IDC_STATIC,147,74,142,9
+ CTEXT "Mike Haaland, Andrew Kirmse, Jeff Miller",IDC_STATIC,
+ 147,85,142,9
+ CTEXT "John Hardy IV and Michael Soderstrom",IDC_STATIC,147,96,
+ 142,9
+ CONTROL "",IDC_ABOUT,"Static",SS_BITMAP | SS_SUNKEN,7,7,16,14
+END
+
+IDD_DIRECTX DIALOG DISCARDABLE 0, 0, 236, 69
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "MAMEUI"
+FONT 8, "Tahoma"
+BEGIN
+ DEFPUSHBUTTON "Go to Microsoft's DirectX Web Page",IDB_WEB_PAGE,48,52,
+ 140,14
+ EDITTEXT IDC_DIRECTX_HELP,7,0,222,48,ES_MULTILINE |
+ ES_AUTOHSCROLL | ES_READONLY
+END
+
+IDD_AUDIT DIALOG DISCARDABLE 0, 0, 283, 188
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "File Audit"
+FONT 8, "Tahoma"
+BEGIN
+ PUSHBUTTON "&Pause",IDPAUSE,98,168,40,14
+ PUSHBUTTON "&Cancel",IDCANCEL,144,168,40,14
+ GROUPBOX "ROMs",IDC_STATIC,6,4,132,65
+ LTEXT "Correct:",IDC_STATIC,51,28,32,8
+ CONTROL "Progress1",IDC_ROMS_PROGRESS,"msctls_progress32",
+ PBS_SMOOTH | WS_BORDER,14,16,116,8
+ LTEXT "Incorrect:",IDC_STATIC,51,42,32,8
+ LTEXT "Total:",IDC_STATIC,51,56,32,8
+ LTEXT "0",IDC_ROMS_CORRECT,87,28,20,8
+ LTEXT "0",IDC_ROMS_INCORRECT,87,42,20,8
+ LTEXT "0",IDC_ROMS_TOTAL,87,56,20,8
+ GROUPBOX "Samples",IDC_STATIC,145,4,132,65
+ CONTROL "Progress1",IDC_SAMPLES_PROGRESS,"msctls_progress32",
+ PBS_SMOOTH | WS_BORDER,153,16,116,8
+ LTEXT "Correct:",IDC_STATIC,191,28,33,8
+ LTEXT "Incorrect:",IDC_STATIC,191,42,33,8
+ LTEXT "Total:",IDC_STATIC,191,56,33,8
+ LTEXT "0",IDC_SAMPLES_CORRECT,227,28,20,8
+ LTEXT "0",IDC_SAMPLES_INCORRECT,227,42,20,8
+ LTEXT "0",IDC_SAMPLES_TOTAL,227,56,20,8
+ GROUPBOX "Details",IDC_STATIC,6,72,271,90
+ EDITTEXT IDC_AUDIT_DETAILS,12,82,259,74,ES_MULTILINE |
+ ES_AUTOVSCROLL | ES_READONLY | WS_VSCROLL | WS_HSCROLL |
+ NOT WS_TABSTOP
+END
+
+IDD_DIRECTORIES DIALOG DISCARDABLE 0, 0, 230, 107
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Directories"
+FONT 8, "Tahoma"
+BEGIN
+ LTEXT "Show directories for:",IDC_STATIC,6,6,67,10
+ COMBOBOX IDC_DIR_COMBO,6,18,160,79,CBS_DROPDOWNLIST | CBS_SORT |
+ WS_VSCROLL | WS_TABSTOP
+ LTEXT "Directories:",IDC_STATIC,6,38,38,10
+ CONTROL "List1",IDC_DIR_LIST,"SysListView32",LVS_REPORT |
+ LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_EDITLABELS |
+ LVS_ALIGNLEFT | LVS_NOCOLUMNHEADER | WS_BORDER |
+ WS_TABSTOP,6,50,160,51
+ DEFPUSHBUTTON "OK",IDOK,173,8,50,14
+ PUSHBUTTON "Cancel",IDCANCEL,173,26,50,14
+ PUSHBUTTON "Browse...",IDC_DIR_BROWSE,173,50,50,14
+ PUSHBUTTON "Insert",IDC_DIR_INSERT,173,68,50,14
+ PUSHBUTTON "Delete",IDC_DIR_DELETE,173,87,50,14
+END
+
+IDD_COLUMNS DIALOG DISCARDABLE 0, 0, 302, 145
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Customize Fields"
+FONT 8, "Tahoma"
+BEGIN
+ LTEXT "Available fields:",IDC_STATIC,6,6,80,10,SS_CENTERIMAGE
+ CONTROL "List1",IDC_LISTAVAILABLECOLUMNS,"SysListView32",
+ LVS_LIST | LVS_SINGLESEL | LVS_NOCOLUMNHEADER |
+ LVS_NOSORTHEADER | WS_BORDER | WS_HSCROLL | WS_TABSTOP,6,
+ 18,90,100
+ PUSHBUTTON "Add ->",IDC_BUTTONADD,102,18,46,14,WS_DISABLED
+ PUSHBUTTON "<- Remove",IDC_BUTTONREMOVE,102,36,46,14,WS_DISABLED
+ LTEXT "Show these fields in this order:",IDC_STATIC,154,6,96,
+ 10,SS_CENTERIMAGE
+ CONTROL "List1",IDC_LISTSHOWCOLUMNS,"SysListView32",LVS_LIST |
+ LVS_SINGLESEL | LVS_NOCOLUMNHEADER | LVS_NOSORTHEADER |
+ WS_BORDER | WS_HSCROLL | WS_TABSTOP,154,18,90,100
+ PUSHBUTTON "Move Up",IDC_BUTTONMOVEUP,250,18,46,14,WS_DISABLED
+ PUSHBUTTON "Move Down",IDC_BUTTONMOVEDOWN,250,36,46,14,WS_DISABLED
+ DEFPUSHBUTTON "OK",IDOK,105,124,44,14
+ PUSHBUTTON "Cancel",IDCANCEL,155,124,44,14
+END
+
+IDD_PROP_CONTROLLER DIALOGEX 0, 0, 220, 240
+STYLE DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
+CAPTION "Controller Mapping"
+FONT 8, "Tahoma"
+BEGIN
+ ICON IDI_JOYSTICK,IDC_STATIC,20,10,20,20
+ LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,
+ SS_NOPREFIX
+ GROUPBOX "Paddle device",IDC_STATIC,4,40,102,28
+ COMBOBOX IDC_PADDLE,10,50,91,62,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP,0,HIDC_PADDLE
+ GROUPBOX "ADStick device",IDC_STATIC,4,71,102,28
+ COMBOBOX IDC_ADSTICK,10,80,91,62,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP,0,HIDC_ADSTICK
+ GROUPBOX "Pedal device",IDC_STATIC,4,102,102,28
+ COMBOBOX IDC_PEDAL,10,112,91,62,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP,0,HIDC_PEDAL
+ GROUPBOX "Mouse device",IDC_STATIC,4,133,102,28
+ COMBOBOX IDC_MOUSE,10,142,90,62,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP,0,HIDC_MOUSE
+ GROUPBOX "Dial device",IDC_STATIC,113,40,102,28
+ COMBOBOX IDC_DIAL,119,50,90,62,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP,0,HIDC_DIAL
+ GROUPBOX "Trackball device",IDC_STATIC,113,71,102,28
+ COMBOBOX IDC_TRACKBALL,119,80,90,62,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP,0,HIDC_TRACKBALL
+ GROUPBOX "Lightgun device",IDC_STATIC,113,102,102,28
+ COMBOBOX IDC_LIGHTGUNDEVICE,119,112,90,62,CBS_DROPDOWNLIST |
+ WS_VSCROLL | WS_TABSTOP,0,HIDC_LIGHTGUNDEVICE
+ GROUPBOX "Positional device",IDC_STATIC,113,133,102,28
+ COMBOBOX IDC_POSITIONAL,119,142,90,62,CBS_DROPDOWNLIST |
+ WS_VSCROLL | WS_TABSTOP,0,HIDC_POSITIONAL
+ PUSHBUTTON "Reset",IDC_PROP_RESET,4,222,97,14,0,0,HIDC_PROP_RESET
+ PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,118,222,97,14,
+ 0,0,HIDC_USE_DEFAULT
+END
+
+IDD_PROP_SCREEN DIALOGEX 0, 0, 220, 240
+STYLE WS_CHILD | WS_CAPTION
+CAPTION "Screen"
+FONT 8, "Tahoma"
+BEGIN
+ ICON IDI_DISPLAY,IDC_STATIC,20,10,21,20
+ LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,SS_NOPREFIX
+
+ GROUPBOX "Number of screens",IDC_STATIC,4,40,103,24
+ CONTROL "GammaSlider",IDC_NUMSCREENS,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,10,50,75,10,0,HIDC_NUMSCREENS
+ RTEXT "1",IDC_NUMSCREENSDISP,84,49,14,10,SS_CENTERIMAGE | NOT WS_GROUP
+
+ GROUPBOX "Screen",IDC_STATIC,4,66,103,29
+ COMBOBOX IDC_SCREEN,10,76,91,64,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_SCREEN
+
+ GROUPBOX "",IDC_STATIC,4,97,103,28
+ CONTROL "Autoselect aspect",IDC_ASPECT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,97,73,10,0,HIDC_ASPECT
+ LTEXT "Aspect ratio",IDC_ASPECTRATIOTEXT,17,108,40,11,SS_CENTERIMAGE | NOT WS_GROUP
+ EDITTEXT IDC_ASPECTRATION,60,108,14,12,ES_RIGHT | ES_AUTOHSCROLL | ES_NUMBER,0,HIDC_ASPECTRATION
+ LTEXT ":",IDC_STATIC,76,108,8,10,SS_CENTERIMAGE | NOT WS_GROUP
+ EDITTEXT IDC_ASPECTRATIOD,80,108,14,12,ES_RIGHT | ES_AUTOHSCROLL | ES_NUMBER,0,HIDC_ASPECTRATIOD
+
+ GROUPBOX "View",IDC_STATIC,4,128,103,28
+ COMBOBOX IDC_VIEW,10,137,91,64,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_VIEW
+
+ GROUPBOX "Screennumber",IDC_SCREENSELECTTEXT,113,40,102,28
+ COMBOBOX IDC_SCREENSELECT,119,50,90,64,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_SCREENSELECT
+
+ GROUPBOX "Resolution",IDC_STATIC,113,71,102,76,WS_GROUP
+ GROUPBOX "Size",IDC_STATIC,119,81,90,28,WS_GROUP
+ COMBOBOX IDC_SIZES,126,91,77,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_SIZES
+
+ GROUPBOX "Refresh",IDC_REFRESHTEXT,119,112,90,28,WS_GROUP
+ COMBOBOX IDC_REFRESH,126,121,77,76,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_REFRESH
+ CONTROL "Switch resolutions to fit",IDC_SWITCHRES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,119,151,93,10,0,HIDC_SWITCHRES
+
+ PUSHBUTTON "Reset",IDC_PROP_RESET,4,222,97,14,0,0,HIDC_PROP_RESET
+ PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,118,222,97,14,0,0,HIDC_USE_DEFAULT
+END
+
+IDD_PROP_GAME DIALOG DISCARDABLE 0, 0, 220, 276
+STYLE WS_CHILD | WS_CAPTION
+CAPTION "General"
+FONT 8, "Tahoma"
+BEGIN
+ ICON IDI_MAMEUI_ICON,IDC_GAME_ICON,20,10,21,20
+ LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,
+ SS_NOPREFIX
+ CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,18,38,178,1
+ LTEXT "Manufactured:",IDC_STATIC,18,43,47,8
+ LTEXT "Static",IDC_PROP_MANUFACTURED,65,43,155,9,SS_NOPREFIX
+ LTEXT "Status:",IDC_STATIC,18,52,47,8
+ LTEXT "Static",IDC_PROP_STATUS,65,52,155,32
+ CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,18,85,178,1
+ LTEXT "CPU:",IDC_STATIC,18,90,47,8
+ LTEXT "Static\nStatic\nStatic\nStatic\nStatic",IDC_PROP_CPU,65,90,155,40
+ CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,18,130,178,1
+ LTEXT "Sound:",IDC_STATIC,18,135,47,8
+ LTEXT "Static\nStatic\nStatic\nStatic\nStatic",IDC_PROP_SOUND,65,135,155,45
+ CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,18,181,178,1
+ LTEXT "Screen:",IDC_STATIC,18,186,47,8
+ LTEXT "Static\nStatic\nStatic",IDC_PROP_SCREEN,65,186,155,27
+ CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,18,218,178,1
+ LTEXT "Source:",IDC_STATIC,16,223,47,8
+ LTEXT "Static",IDC_PROP_SOURCE,65,223,139,8
+ LTEXT "Clone of:",IDC_PROP_CLONEOF_TEXT,16,232,50,8
+ LTEXT "Static",IDC_PROP_CLONEOF,65,232,130,33
+END
+
+IDD_PROP_AUDIT DIALOG DISCARDABLE 0, 0, 220, 240
+STYLE WS_CHILD | WS_CAPTION
+CAPTION "Audit"
+FONT 8, "Tahoma"
+BEGIN
+ ICON IDI_CHECKMARK,IDC_STATIC,20,10,20,20
+ LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,
+ SS_NOPREFIX
+ LTEXT "ROM check:",IDC_STATIC,10,40,50,8
+ LTEXT "Checking...",IDC_PROP_ROMS,66,40,139,8
+ LTEXT "Sample check:",IDC_STATIC,10,52,50,8
+ LTEXT "Checking...",IDC_PROP_SAMPLES,66,52,139,8
+ GROUPBOX "Details",IDC_STATIC,4,64,211,171
+ EDITTEXT IDC_AUDIT_DETAILS_PROP,10,74,199,155,ES_MULTILINE |
+ ES_AUTOVSCROLL | ES_READONLY | WS_VSCROLL | WS_HSCROLL |
+ NOT WS_TABSTOP
+END
+
+IDD_PROP_DISPLAY DIALOGEX 0, 0, 220, 240
+STYLE WS_CHILD | WS_CAPTION
+CAPTION "Display"
+FONT 8, "Tahoma"
+BEGIN
+ ICON IDI_DISPLAY,IDC_STATIC,20,10,20,20
+ LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,169,25,SS_NOPREFIX
+
+ CONTROL "Run in a window",IDC_WINDOWED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,40,69,10,0,HIDC_WINDOWED
+ CONTROL "Start out maximized",IDC_MAXIMIZE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,52,74,10,0,HIDC_MAXIMIZE
+ CONTROL "Enforce aspect ratio",IDC_KEEPASPECT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,64,77,10,0,HIDC_KEEPASPECT
+ CONTROL "Throttle",IDC_THROTTLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,76,39,10,0,HIDC_THROTTLE
+
+ GROUPBOX "Bitmap prescaling",IDC_PRESCALETEXT,4,89,103,24
+ CONTROL "GammaSlider",IDC_PRESCALE,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,10,99,71,10,0,HIDC_PRESCALE
+ RTEXT "1.00",IDC_PRESCALEDISP,84,98,14,11,SS_CENTERIMAGE | NOT WS_GROUP
+
+ GROUPBOX "Gamma Correction",IDC_STATIC,4,115,103,24
+ CONTROL "GammaSlider",IDC_GAMMA,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,10,125,71,10,0,HIDC_GAMMA
+ RTEXT "2.00",IDC_GAMMADISP,84,124,14,10,SS_CENTERIMAGE | NOT WS_GROUP
+
+ GROUPBOX "Brightness Correction",IDC_STATIC,4,141,103,24
+ CONTROL "GammaSlider",IDC_BRIGHTCORRECT,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,10,151,71,10,0,HIDC_BRIGHTCORRECT
+ RTEXT "1.00",IDC_BRIGHTCORRECTDISP,84,150,14,10,SS_CENTERIMAGE | NOT WS_GROUP
+
+ GROUPBOX "Contrast Correction",IDC_STATIC,4,167,103,24
+ CONTROL "GammaSlider",IDC_CONTRAST,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,10,176,71,10,0,HIDC_CONTRAST
+ RTEXT "1.00",IDC_CONTRASTDISP,84,175,14,11,SS_CENTERIMAGE | NOT WS_GROUP
+
+ GROUPBOX "Pause Brightness",IDC_STATIC,4,193,103,24
+ CONTROL "Slider1",IDC_PAUSEBRIGHT,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,10,203,71,10,0,HIDC_PAUSEBRIGHT
+ RTEXT "0.65",IDC_PAUSEBRIGHTDISP,84,202,14,11,SS_CENTERIMAGE | NOT WS_GROUP
+
+ GROUPBOX "Videomode",IDC_STATIC,113,40,102,28
+ COMBOBOX IDC_VIDEO_MODE,119,50,90,50,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP,0,HIDC_VIDEO_MODE
+
+ GROUPBOX "Rotation",IDC_STATIC,113,71,102,55
+ COMBOBOX IDC_ROTATE,119,81,90,57,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_ROTATE
+ CONTROL "Flip screen upside-down",IDC_FLIPY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,119,98,91,10,0,HIDC_FLIPY
+ CONTROL "Flip screen left-right",IDC_FLIPX,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,119,110,77,10,0,HIDC_FLIPX
+
+ GROUPBOX "Direct3D",IDC_STATIC,113,128,102,57
+ CONTROL "Use Bilinear filtering",IDC_D3D_FILTER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,119,138,85,10,0,HIDC_D3D_FILTER
+
+// GROUPBOX "Version",IDC_STATIC,119,150,90,28
+// COMBOBOX IDC_D3D_VERSION,125,160,78,95,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_D3D_VERSION
+
+// GROUPBOX "DirectDraw",IDC_STATIC,113,187,102,26
+// CONTROL "Stretch using hardware",IDC_HWSTRETCH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,119,197,85,10,0,HIDC_HWSTRETCH
+
+ PUSHBUTTON "Reset",IDC_PROP_RESET,4,222,97,14,0,0,HIDC_PROP_RESET
+ PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,118,222,97,14,0,0,HIDC_USE_DEFAULT
+END
+
+IDD_PROP_SOUND DIALOGEX 0, 0, 220, 240
+STYLE WS_CHILD | WS_CAPTION
+CAPTION "Sound"
+FONT 8, "Tahoma"
+BEGIN
+ ICON IDI_SOUNDTAB,IDC_STATIC,20,10,20,20
+ LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,SS_NOPREFIX
+
+ GROUPBOX "",IDC_STATIC,4,40,211,155
+
+ GROUPBOX "Soundmode",IDC_STATIC,60,50,100,28
+ COMBOBOX IDC_SOUND_MODE,66,60,88,50,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP,0,HIDC_VIDEO_MODE
+
+ CONTROL "Use samples",IDC_SAMPLES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,60,84,55,10,0,HIDC_SAMPLES
+
+ GROUPBOX "Sample rate",IDC_RATETEXT,60,96,100,28
+ COMBOBOX IDC_SAMPLERATE,66,106,88,60,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_SAMPLERATE
+
+ GROUPBOX "Volume attenuation",IDC_VOLUMETEXT,60,127,100,28
+ CONTROL "Slider1",IDC_VOLUME,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,66,139,68,10,0,HIDC_VOLUME
+ RTEXT "0dB",IDC_VOLUMEDISP,132,138,20,11,SS_CENTERIMAGE
+
+ GROUPBOX "Audio latency",IDC_AUDIO_LATENCY_TEXT,60,158,100,28
+ CONTROL "Slider1",IDC_AUDIO_LATENCY,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,66,170,68,10,0,HIDC_AUDIO_LATENCY
+ RTEXT "1/5",IDC_AUDIO_LATENCY_DISP,132,169,20,11,SS_CENTERIMAGE
+
+ PUSHBUTTON "Reset",IDC_PROP_RESET,4,222,97,14,0,0,HIDC_PROP_RESET
+ PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,118,222,97,14,0,0,HIDC_USE_DEFAULT
+END
+
+IDD_PROP_ADVANCED DIALOGEX 0, 0, 220, 255
+STYLE DS_FIXEDSYS | WS_CHILD | WS_CAPTION
+CAPTION "Advanced"
+FONT 8, "Tahoma"
+BEGIN
+ ICON IDI_DISPLAY,IDC_STATIC,20,10,20,20
+ LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,SS_NOPREFIX
+
+ CONTROL "Triple buffering",IDC_TRIPLE_BUFFER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,40,93,10,0,HIDC_TRIPLE_BUFFER
+ CONTROL "Sync to monitor refresh",IDC_SYNCREFRESH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,52,93,10,0,HIDC_SYNCREFRESH
+ CONTROL "Wait for vertical sync",IDC_WAITVSYNC,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,64,93,10,0,HIDC_WAITVSYNC
+ CONTROL "Refresh speed",IDC_REFRESHSPEED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,76,93,10,0,HIDC_REFRESHSPEED
+
+ GROUPBOX "Frame skipping",IDC_STATIC,4,104,103,42
+ CONTROL "Automatic",IDC_AUTOFRAMESKIP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,114,77,10,0,HIDC_AUTOFRAMESKIP
+ COMBOBOX IDC_FRAMESKIP,10,127,91,88,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_FRAMESKIP
+
+ GROUPBOX "Full screen gamma",IDC_FSGAMMATEXT,113,40,102,24
+ CONTROL "Slider1",IDC_FSGAMMA,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,119,50,71,10,0,HIDC_FSGAMMA
+ RTEXT "2.00",IDC_FSGAMMADISP,193,49,16,10,SS_CENTERIMAGE | NOT WS_GROUP
+
+ GROUPBOX "Full screen brightness",IDC_FSBRIGHTNESSTEXT,113,67,102,24
+ CONTROL "Slider1",IDC_FSBRIGHTNESS,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,119,77,71,10,0,HIDC_FSBRIGHTNESS
+ RTEXT "2.00",IDC_FSBRIGHTNESSDISP,193,76,16,10,SS_CENTERIMAGE | NOT WS_GROUP
+
+ GROUPBOX "Full screen contrast",IDC_FSCONTRASTTEXT,113,94,102,24
+ CONTROL "Slider1",IDC_FSCONTRAST,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,119,104,71,10,0,HIDC_FSCONTRAST
+ RTEXT "2.00",IDC_FSCONTRASTDISP,193,103,16,11,SS_CENTERIMAGE | NOT WS_GROUP
+
+ GROUPBOX "Seconds to run",IDC_SECONDSTORUNTEXT,113,122,102,24
+ CONTROL "",IDC_SECONDSTORUN,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,119,132,71,10,0,HIDC_SECONDSTORUN
+ RTEXT "60",IDC_SECONDSTORUNDISP,193,130,16,11,SS_CENTERIMAGE | NOT WS_GROUP
+
+ GROUPBOX "Emulation speed",IDC_SPEEDTEXT,4,155,211,24
+ CONTROL "Slider1",IDC_SPEED,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,12,165,180,10,0,HIDC_SPEED
+ RTEXT "1.00",IDC_SPEEDDISP,191,164,20,11,SS_CENTERIMAGE | NOT WS_GROUP
+
+ GROUPBOX "Effect",IDC_STATIC,4,182,211,50
+ EDITTEXT IDC_EFFECT,12,192,200,14,ES_AUTOHSCROLL | WS_DISABLED
+ PUSHBUTTON "Select Effect",IDC_SELECT_EFFECT,12,211,60,14,0,0,HIDC_SELECT_EFFECT
+ PUSHBUTTON "Reset Effect",IDC_RESET_EFFECT,152,211,60,14,0,0,HIDC_RESET_EFFECT
+
+ PUSHBUTTON "Reset",IDC_PROP_RESET,4,238,97,14,0,0,HIDC_PROP_RESET
+ PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,120,238,97,14,0,0,HIDC_USE_DEFAULT
+END
+
+IDD_PROP_DEBUG DIALOGEX 0, 0, 220, 255
+STYLE DS_FIXEDSYS | WS_CHILD | WS_CAPTION
+CAPTION "Debug"
+FONT 8, "Tahoma"
+BEGIN
+ ICON IDI_MANUFACTURER,IDC_STATIC,20,10,20,20
+ LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,SS_NOPREFIX
+
+ CONTROL "Output log to Windows Debugger",IDC_OSLOG,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,40,124,10,0,HIDC_OSLOG
+ CONTROL "Output log to Logfile",IDC_LOG,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,52,93,10,0,HIDC_LOG
+ CONTROL "Output diagnostic information",IDC_VERBOSE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,64,111,10,0,HIDC_VERBOSE
+ CONTROL "Update Main window during paused emulation",IDC_UPDATEINPAUSE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,76,171,10,0,HIDC_UPDATEINPAUSE
+ CONTROL "Activate Integrated Debugger",IDC_DEBUG,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,88,118,10,0,HIDC_DEBUG
+
+ GROUPBOX "Debugscript",IDC_STATIC,6,104,211,50
+ EDITTEXT IDC_DEBUGSCRIPT,14,114,200,14,ES_AUTOHSCROLL | WS_DISABLED
+ PUSHBUTTON "Select Debugscript",IDC_SELECT_DEBUGSCRIPT,14,133,67,14,0,0,HIDC_SELECT_DEBUGSCRIPT
+ PUSHBUTTON "Reset Debugscript",IDC_RESET_DEBUGSCRIPT,149,133,65,14,0,0,HIDC_RESET_DEBUGSCRIPT
+
+ PUSHBUTTON "Reset",IDC_PROP_RESET,4,238,97,14,0,0,HIDC_PROP_RESET
+ PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,120,238,97,14,0,0,HIDC_USE_DEFAULT
+END
+
+IDD_PROP_INPUT DIALOGEX 0, 0, 220, 240
+STYLE DS_FIXEDSYS | WS_CHILD | WS_CAPTION
+CAPTION "Controllers"
+FONT 8, "Tahoma"
+BEGIN
+ ICON IDI_JOYSTICK,IDC_STATIC,20,10,20,20
+ LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,
+ SS_NOPREFIX
+ CONTROL "Enable mouse input",IDC_USE_MOUSE,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,10,40,86,10,0,
+ HIDC_USE_MOUSE
+ CONTROL "Enable steadykey support",IDC_STEADYKEY,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,10,52,95,10,0,
+ HIDC_STEADYKEY
+ GROUPBOX "",IDC_STATIC,4,64,103,74
+ CONTROL "Enable joystick input",IDC_JOYSTICK,"Button",
+ BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,10,64,78,10,0,
+ HIDC_JOYSTICK
+ GROUPBOX "Joystick deadzone",IDC_JDZTEXT,10,76,91,28
+ CONTROL "IntensitySlider",IDC_JDZ,"msctls_trackbar32",TBS_BOTH |
+ TBS_NOTICKS | WS_TABSTOP,15,88,60,10,0,HIDC_JDZ
+ RTEXT "0.3",IDC_JDZDISP,76,87,16,11,SS_CENTERIMAGE | NOT
+ WS_GROUP
+ GROUPBOX "Default input layout",IDC_STATIC,113,40,102,28
+ COMBOBOX IDC_DEFAULT_INPUT,119,50,90,53,CBS_DROPDOWNLIST |
+ WS_VSCROLL | WS_TABSTOP,0,HIDC_DEFAULT_INPUT
+ GROUPBOX "",IDC_STATIC,113,71,102,66
+ CONTROL "Enable lightgun input",IDC_LIGHTGUN,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,119,71,80,10,0,
+ HIDC_LIGHTGUN
+ CONTROL "Offscreen shots reload",IDC_RELOAD,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,119,83,86,10,0,HIDC_RELOAD
+ CONTROL "Dual lightguns",IDC_DUAL_LIGHTGUN,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,119,96,86,10,0,
+ HIDC_DUAL_LIGHTGUN
+ CONTROL "Multiple keyboards",IDC_MULTIKEYBOARD,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,119,109,75,10,0,
+ HIDC_MULTIKEYBOARD
+ CONTROL "Multiple mice",IDC_MULTIMOUSE,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,119,122,56,10,0,HIDC_MULTIMOUSE
+ GROUPBOX "Joystick saturation",IDC_JSATTEXT,10,106,91,28
+ CONTROL "IntensitySlider",IDC_JSAT,"msctls_trackbar32",TBS_BOTH |
+ TBS_NOTICKS | WS_TABSTOP,16,118,60,10,0,HIDC_JSAT
+ RTEXT "0.85",IDC_JSATDISP,76,116,16,11,SS_CENTERIMAGE | NOT
+ WS_GROUP
+ PUSHBUTTON "Reset",IDC_PROP_RESET,4,222,97,14,0,0,HIDC_PROP_RESET
+ PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,118,222,97,14,
+ 0,0,HIDC_USE_DEFAULT
+ GROUPBOX "Joystickmap",IDC_STATIC,4,143,211,50
+ EDITTEXT IDC_JOYSTICKMAP,12,153,200,14,ES_AUTOHSCROLL |
+ WS_DISABLED
+ PUSHBUTTON "Select Joystickmap",IDC_SELECT_JOYSTICKMAP,12,172,67,14,
+ 0,0,HIDC_SELECT_JOYSTICKMAP
+ PUSHBUTTON "Reset Joystickmap",IDC_RESET_JOYSTICKMAP,147,172,65,14,
+ 0,0,HIDC_RESET_JOYSTICKMAP
+END
+
+IDD_PROP_MISC DIALOGEX 0, 0, 220, 240
+STYLE DS_FIXEDSYS | WS_CHILD | WS_CAPTION
+CAPTION "Miscellaneous"
+FONT 8, "Tahoma"
+BEGIN
+ ICON IDI_MAMEUI_ICON,IDC_STATIC,20,10,20,20
+ LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,
+ SS_NOPREFIX
+ CONTROL "Enable cheats",IDC_CHEAT,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,10,40,86,10,0,HIDC_CHEAT
+ CONTROL "Sleep when possible",IDC_SLEEP,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,10,52,86,10,0,HIDC_SLEEP
+
+ CONTROL "Skip game info",IDC_SKIP_GAME_INFO,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,10,64,96,10,0,
+ HIDC_SKIP_GAME_INFO
+ CONTROL "Save game state on exit",IDC_ENABLE_AUTOSAVE,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,10,76,96,10,0,
+ HIDC_ENABLE_AUTOSAVE
+ CONTROL "Coin lockout",IDC_COINLOCKOUT,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,10,100,96,10,0,HIDC_COINLOCKOUT
+ GROUPBOX "Thread Priority",IDC_HIGH_PRIORITY_TEXT,7,112,103,34
+ CONTROL "Slider1",IDC_HIGH_PRIORITY,"msctls_trackbar32",TBS_BOTH |
+ TBS_NOTICKS | WS_TABSTOP,13,122,75,10,0,
+ HIDC_HIGH_PRIORITY
+ LTEXT "idle",IDC_STATIC,17,132,12,8
+ RTEXT "-15",IDC_HIGH_PRIORITYTXT,87,122,14,10,SS_CENTERIMAGE
+ RTEXT "real-time",IDC_STATIC,57,134,28,8
+ GROUPBOX "Snapshot view",IDC_STATIC,7,148,103,28
+ COMBOBOX IDC_SNAPVIEW,13,158,90,60,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP,0,HIDC_SNAPVIEW
+ GROUPBOX "Artwork options",IDC_STATIC,113,40,102,85
+ CONTROL "Backdrops",IDC_BACKDROPS,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,119,50,86,10,0,HIDC_BACKDROPS
+ CONTROL "Bezels",IDC_BEZELS,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,119,62,86,10,0,HIDC_BEZELS
+ CONTROL "Overlays",IDC_OVERLAYS,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,119,74,84,10,0,HIDC_OVERLAYS
+ CONTROL "CPanels",IDC_CPANELS,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,119,86,84,10,0
+ CONTROL "Marquees",IDC_MARQUEES,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,119,98,84,10,0
+ CONTROL "Crop artwork",IDC_ARTWORK_CROP,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,119,110,53,10,0,HIDC_ARTWORK_CROP
+ GROUPBOX "BIOS",IDC_STATIC,113,128,102,28
+ COMBOBOX IDC_BIOS,119,138,90,60,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP,0,HIDC_BIOS
+ GROUPBOX "",IDC_STATIC,7,178,208,28
+ CONTROL "Autoselect snapshot size",IDC_SNAPSIZE,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,13,178,95,10,0,
+ HIDC_SNAPSIZE
+ LTEXT "Snapshotsize",IDC_SNAPSIZETEXT,11,189,44,11,
+ SS_CENTERIMAGE | NOT WS_GROUP
+ EDITTEXT IDC_SNAPSIZEWIDTH,122,187,32,12,ES_RIGHT |
+ ES_AUTOHSCROLL | ES_NUMBER,0,HIDC_SNAPSIZEWIDTH
+ EDITTEXT IDC_SNAPSIZEHEIGHT,172,187,32,12,ES_RIGHT |
+ ES_AUTOHSCROLL | ES_NUMBER,0,HIDC_SNAPSIZEHEIGHT
+ LTEXT "x",IDC_SNAPSIZEX,162,189,8,8
+ PUSHBUTTON "Reset",IDC_PROP_RESET,4,222,97,14,0,0,HIDC_PROP_RESET
+ PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,118,222,97,14,
+ 0,0,HIDC_USE_DEFAULT
+// CONTROL "Show Menu",IDC_SHOW_MENU,"Button",
+// BS_AUTOCHECKBOX | WS_TABSTOP,119,160,86,10,0
+END
+
+IDD_PROP_VECTOR DIALOGEX 0, 0, 220, 240
+STYLE WS_CHILD | WS_CAPTION
+CAPTION "Vector"
+FONT 8, "Tahoma"
+BEGIN
+ ICON IDI_MAMEUI_ICON,IDC_STATIC,20,10,20,20
+ LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,
+ SS_NOPREFIX
+// CONTROL "Draw antialiased vectors",IDC_ANTIALIAS,"Button",
+// BS_AUTOCHECKBOX | WS_TABSTOP,10,40,92,10,0,
+// HIDC_ANTIALIAS
+ GROUPBOX "Beam width",IDC_BEAMTEXT,60,53,100,28
+ CONTROL "BeamSlider",IDC_BEAM,"msctls_trackbar32",TBS_BOTH |
+ TBS_NOTICKS | WS_TABSTOP,66,65,64,10,0,HIDC_BEAM
+ RTEXT "16.00",IDC_BEAMDISP,132,64,20,11,SS_CENTERIMAGE
+ GROUPBOX "Flicker",IDC_FLICKERTEXT,60,84,100,28
+ CONTROL "FlickerSlider",IDC_FLICKER,"msctls_trackbar32",TBS_BOTH |
+ TBS_NOTICKS | WS_TABSTOP,66,96,64,10,0,HIDC_FLICKER
+ RTEXT "100.00",IDC_FLICKERDISP,128,95,24,11,SS_CENTERIMAGE |
+ NOT WS_GROUP
+ PUSHBUTTON "Reset",IDC_PROP_RESET,4,222,97,14,0,0,HIDC_PROP_RESET
+ PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,118,222,97,14,
+ 0,0,HIDC_USE_DEFAULT
+END
+
+IDD_MAIN DIALOGEX 0, 0, 364, 206
+STYLE DS_3DLOOK | DS_NOFAILCREATE | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | DS_SETFONT
+EXSTYLE WS_EX_CONTROLPARENT
+CAPTION "MAMEUI - overwritten at runtime"
+CLASS "MainClass"
+FONT 8, "Verdana"
+BEGIN
+ CONTROL "",IDC_DIVIDER,"Static",SS_ETCHEDHORZ,0,5,304,1
+ CONTROL "Tree1",IDC_TREE,"SysTreeView32",TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT | TVS_EDITLABELS |
+ TVS_SHOWSELALWAYS | TVS_FULLROWSELECT | WS_BORDER | WS_TABSTOP,5,28,48,172
+ CONTROL "List1",IDC_LIST,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_AUTOARRANGE |
+ LVS_SHAREIMAGELISTS | LVS_OWNERDRAWFIXED | WS_BORDER | WS_TABSTOP,65,28,42,172
+ GROUPBOX "",IDC_SPLITTER,55,28,8,172,BS_NOTIFY | NOT WS_VISIBLE
+ GROUPBOX "",IDC_SPLITTER2,109,28,8,172,BS_NOTIFY | NOT WS_VISIBLE
+ CONTROL "",IDC_SSFRAME,"Static",SS_ETCHEDFRAME | SS_NOTIFY,121,11,181,194
+ CONTROL "",IDC_SSTAB,"SysTabControl32",TCS_HOTTRACK,121,0,181,18
+ CONTROL "",IDC_SSPICTURE,"Static",SS_BITMAP | NOT WS_VISIBLE,141,18,141,127
+ EDITTEXT IDC_HISTORY,129,150,167,49,ES_MULTILINE | ES_READONLY | NOT WS_BORDER | WS_VSCROLL | NOT WS_TABSTOP,0, HIDC_HISTORY
+END
+
+IDD_FILTERS DIALOGEX 0, 0, 190, 196
+STYLE DS_MODALFRAME | DS_CENTER | DS_3DLOOK | WS_POPUP | WS_CAPTION |
+ WS_SYSMENU
+EXSTYLE WS_EX_CONTEXTHELP
+CAPTION "Game Filters"
+FONT 8, "Tahoma"
+BEGIN
+ GROUPBOX "Game filters",IDC_STATIC,6,4,178,99
+ CONTROL "&Vector Graphics",IDC_FILTER_VECTOR,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,14,16,70,10,0,
+ HIDC_FILTER_VECTOR
+ CONTROL "C&lones",IDC_FILTER_CLONES,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,14,30,41,10,0,HIDC_FILTER_CLONES
+ CONTROL "Non-Wor&king",IDC_FILTER_NONWORKING,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,14,44,61,10,0,
+ HIDC_FILTER_NONWORKING
+ CONTROL "&Horizontal",IDC_FILTER_HORIZONTAL,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,14,58,57,10,0,
+ HIDC_FILTER_HORIZONTAL
+ CONTROL "&Unavailable",IDC_FILTER_UNAVAILABLE,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,14,72,57,10,0,
+ HIDC_FILTER_UNAVAILABLE
+ CONTROL "Arcade",IDC_FILTER_ARCADE,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,14,86,57,10,0
+ CONTROL "&Raster Graphics",IDC_FILTER_RASTER,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,100,16,70,10,0,
+ HIDC_FILTER_RASTER
+ CONTROL "Ori&ginals",IDC_FILTER_ORIGINALS,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,100,30,47,10,0,
+ HIDC_FILTER_ORIGINALS
+ CONTROL "&Working",IDC_FILTER_WORKING,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,100,44,47,10,0,HIDC_FILTER_WORKING
+ CONTROL "&Vertical",IDC_FILTER_VERTICAL,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,100,58,47,10,0,HIDC_FILTER_VERTICAL
+ CONTROL "&Mechanical",IDC_FILTER_MECHANICAL,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,100,72,58,10,0,HIDC_FILTER_MECHANICAL
+ CONTROL "MESS",IDC_FILTER_MESS,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,100,86,58,10,0,HIDC_FILTER_MECHANICAL
+ LTEXT "(*) = inherited from parent folder",IDC_INHERITED,14,72,
+ 99,10
+ CTEXT "Game filters allow customizing the games that are displayed in each folder by hiding games that match the filters applied.",
+ IDC_STATIC,6,108,178,27
+ GROUPBOX "&Description filter",IDC_STATIC,6,136,178,33
+ EDITTEXT IDC_FILTER_EDIT,14,148,162,13,ES_AUTOHSCROLL,0,
+ HIDC_FILTER_EDIT
+ DEFPUSHBUTTON "&OK",IDOK,42,175,50,14
+ PUSHBUTTON "&Cancel",IDCANCEL,98,175,50,14
+END
+
+IDD_RESET DIALOGEX 0, 0, 190, 122
+STYLE DS_MODALFRAME | DS_CENTER | DS_3DLOOK | WS_POPUP | WS_CAPTION | WS_SYSMENU
+EXSTYLE WS_EX_CONTEXTHELP
+CAPTION "Reset Options"
+FONT 8, "Tahoma"
+BEGIN
+ GROUPBOX "Categories",IDC_STATIC,6,4,178,70
+ CONTROL "&User Interface (Fonts, Colors, Sizes)",IDC_RESET_UI,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,16,146,10,0,
+ HIDC_RESET_UI
+ CONTROL "&Default game options",IDC_RESET_DEFAULT,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,14,30,146,10,0,
+ HIDC_RESET_DEFAULT
+ CONTROL "&All games to use default options",IDC_RESET_GAMES,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,44,146,10,0,
+ HIDC_RESET_GAMES
+ CONTROL "&Folder 'filters'",IDC_RESET_FILTERS,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,14,58,146,10,0,
+ HIDC_RESET_FILTERS
+ CTEXT "Select the options to be restored to the default settings.",
+ IDC_STATIC,6,79,178,20
+ DEFPUSHBUTTON "&OK",IDOK,42,101,50,14
+ PUSHBUTTON "&Cancel",IDCANCEL,98,101,50,14
+END
+
+
+IDD_INTERFACE_OPTIONS DIALOGEX 0, 0, 378, 225
+STYLE DS_MODALFRAME | DS_CENTER | DS_3DLOOK | WS_POPUP | WS_CAPTION | WS_SYSMENU
+EXSTYLE WS_EX_CONTEXTHELP
+CAPTION "Interface Options"
+FONT 8, "Tahoma"
+BEGIN
+ GROUPBOX "Game Selection",IDC_STATIC,6,4,189,194
+ CONTROL "&Search for new games on start",IDC_START_GAME_CHECK,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,16,111,10,0,
+ HIDC_START_GAME_CHECK
+ CONTROL "Allow game selection by a &joystick (requires restart)",
+ IDC_JOY_GUI,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,30,
+ 174,10,0,HIDC_JOY_GUI
+ CONTROL "Allow game selection by custom &key sequences",
+ IDC_KEY_GUI,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,44,
+ 166,10
+ CONTROL "Hide &mouse cursor (requires restart)",IDC_HIDE_MOUSE,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,86,126,10,0,
+ HIDC_HIDE_MOUSE
+ CONTROL "Inheritable Filters",IDC_FILTER_INHERIT,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,14,100,68,10
+ CONTROL "No offset for clones missing parent in view",
+ IDC_NOOFFSET_CLONES,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,14,114,148,10
+ GROUPBOX "Show History on Tab",IDC_STATIC,14,128,173,28
+ COMBOBOX IDC_HISTORY_TAB,57,138,88,50,CBS_DROPDOWNLIST |
+ WS_VSCROLL | WS_TABSTOP
+ GROUPBOX "Snapshot Pattern",IDC_STATIC,202,4,170,28
+ GROUPBOX "Bookkeeping",IDC_STATIC,202,36,170,43
+ CONTROL "Reset all Playcounts",IDC_RESET_PLAYCOUNT,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,210,48,80,10
+ CONTROL "Reset all Play Times",IDC_RESET_PLAYTIME,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,210,62,79,10
+ GROUPBOX "Screenshot Area",IDC_STATIC,202,83,170,115
+ CONTROL "S&tretch screenshot larger than natural size",
+ IDC_STRETCH_SCREENSHOT_LARGER,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,210,95,148,10,0,
+ HIDC_STRETCH_SCREENSHOT_LARGER
+ GROUPBOX "Screenshot Cycletime in Seconds",IDC_STATIC,210,109,154,
+ 28
+ CONTROL "Slider1",IDC_CYCLETIMESEC,"msctls_trackbar32",TBS_BOTH |
+ TBS_NOTICKS | WS_TABSTOP,218,121,120,10,0,
+ HIDC_CYCLETIMESEC
+ RTEXT "60",IDC_CYCLETIMESECTXT,340,120,13,10,SS_CENTERIMAGE
+ GROUPBOX "Screenshot Bordersize",IDC_STATIC,210,141,154,28
+ CONTROL "Slider1",IDC_SCREENSHOT_BORDERSIZE,"msctls_trackbar32",
+ TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,218,153,120,10
+ RTEXT "100",IDC_SCREENSHOT_BORDERSIZETXT,340,152,13,10,
+ SS_CENTERIMAGE
+ PUSHBUTTON "Set Screenshot Border Color",IDC_SCREENSHOT_BORDERCOLOR,
+ 210,176,154,14
+ DEFPUSHBUTTON "&OK",IDOK,136,204,50,14
+ PUSHBUTTON "&Cancel",IDCANCEL,192,204,50,14
+ COMBOBOX IDC_SNAPNAME,209,14,155,60,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP,0,HIDC_SNAPNAME
+END
+
+IDD_CUSTOM_FILE DIALOG DISCARDABLE 0, 0, 190, 135
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Add Game To Custom Folder"
+FONT 8, "Tahoma"
+BEGIN
+ LTEXT "",IDC_CUSTOMFILE_GAME,6,6,175,10,SS_NOPREFIX |
+ SS_CENTERIMAGE
+ CONTROL "CustomTree",IDC_CUSTOM_TREE,"SysTreeView32",
+ TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT |
+ TVS_DISABLEDRAGDROP | TVS_SHOWSELALWAYS |
+ TVS_FULLROWSELECT | WS_BORDER | WS_TABSTOP,6,18,178,90
+ DEFPUSHBUTTON "OK",IDOK,42,114,50,14
+ PUSHBUTTON "Cancel",IDCANCEL,98,114,50,14
+END
+
+
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Accelerator
+//
+
+IDA_TAB_KEYS ACCELERATORS MOVEABLE PURE
+BEGIN
+ "1", ID_VIEW_TAB_SCREENSHOT, VIRTKEY, ALT, NOINVERT
+ "2", ID_VIEW_TAB_FLYER, VIRTKEY, ALT, NOINVERT
+ "3", ID_VIEW_TAB_CABINET, VIRTKEY, ALT, NOINVERT
+ "4", ID_VIEW_TAB_MARQUEE, VIRTKEY, ALT, NOINVERT
+ "5", ID_VIEW_TAB_TITLE, VIRTKEY, ALT, NOINVERT
+ "6", ID_VIEW_TAB_CONTROL_PANEL, VIRTKEY, ALT, NOINVERT
+ "7", ID_VIEW_TAB_PCB, VIRTKEY, ALT, NOINVERT
+ "8", ID_VIEW_TAB_HISTORY, VIRTKEY, ALT, NOINVERT
+ "A", ID_GAME_AUDIT, VIRTKEY, ALT, NOINVERT
+ "B", ID_VIEW_PAGETAB, VIRTKEY, ALT, NOINVERT
+ "D", ID_VIEW_FOLDERS, VIRTKEY, ALT, NOINVERT
+ "E", ID_TOOLBAR_EDIT, VIRTKEY, CONTROL, NOINVERT
+ "F", ID_CONTEXT_FILTERS, VIRTKEY, CONTROL, NOINVERT
+ "U", ID_FOLDER_AUDIT, VIRTKEY, ALT, NOINVERT
+ "P", ID_VIEW_PICTURE_AREA, VIRTKEY, ALT, NOINVERT
+ "R", ID_CONTEXT_SELECT_RANDOM, VIRTKEY, CONTROL, NOINVERT
+ "S", ID_VIEW_STATUS, VIRTKEY, ALT, NOINVERT
+ "T", ID_VIEW_TOOLBARS, VIRTKEY, ALT, NOINVERT
+ VK_F1, ID_HELP_CONTENTS, VIRTKEY, NOINVERT
+ VK_F11, ID_VIEW_FULLSCREEN, VIRTKEY, NOINVERT
+ VK_F5, ID_UPDATE_GAMELIST, VIRTKEY, NOINVERT
+ VK_NEXT, ID_UI_HISTORY_DOWN, VIRTKEY, CONTROL, NOINVERT
+ VK_PRIOR, ID_UI_HISTORY_UP, VIRTKEY, CONTROL, NOINVERT
+ VK_RETURN, ID_GAME_PROPERTIES, VIRTKEY, ALT, NOINVERT
+END
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// DESIGNINFO
+//
+
+#ifdef APSTUDIO_INVOKED
+GUIDELINES DESIGNINFO MOVEABLE PURE
+BEGIN
+ IDD_ABOUT, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 289
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 123
+ END
+
+ IDD_DIRECTX, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 229
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 62
+ END
+
+ IDD_AUDIT, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 280
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 187
+ HORZGUIDE, 19
+ END
+
+ IDD_DIRECTORIES, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 224
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 98
+ END
+
+ IDD_COLUMNS, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 301
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 143
+ END
+
+ IDD_PROP_CONTROLLER, DIALOG
+ BEGIN
+ RIGHTMARGIN, 210
+ BOTTOMMARGIN, 154
+ END
+
+ IDD_PROP_SCREEN, DIALOG
+ BEGIN
+ LEFTMARGIN, 4
+ VERTGUIDE, 7
+ VERTGUIDE, 123
+ BOTTOMMARGIN, 199
+ HORZGUIDE, 179
+ END
+
+ IDD_PROP_GAME, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 213
+ VERTGUIDE, 19
+ VERTGUIDE, 66
+ VERTGUIDE, 74
+ VERTGUIDE, 201
+ BOTTOMMARGIN, 268
+ END
+
+ IDD_PROP_AUDIT, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 213
+ VERTGUIDE, 12
+ VERTGUIDE, 208
+ BOTTOMMARGIN, 198
+ HORZGUIDE, 38
+ END
+
+ IDD_PROP_DISPLAY, DIALOG
+ BEGIN
+ LEFTMARGIN, 4
+ VERTGUIDE, 7
+ VERTGUIDE, 123
+ HORZGUIDE, 179
+ END
+
+ IDD_PROP_SOUND, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 213
+ VERTGUIDE, 50
+ BOTTOMMARGIN, 198
+ END
+
+ IDD_PROP_ADVANCED, DIALOG
+ BEGIN
+ LEFTMARGIN, 10
+ BOTTOMMARGIN, 240
+ END
+
+ IDD_PROP_INPUT, DIALOG
+ BEGIN
+ LEFTMARGIN, 4
+ RIGHTMARGIN, 215
+ VERTGUIDE, 50
+ VERTGUIDE, 170
+ END
+
+ IDD_PROP_MISC, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 213
+ VERTGUIDE, 25
+ VERTGUIDE, 40
+ VERTGUIDE, 104
+ VERTGUIDE, 114
+ VERTGUIDE, 204
+ BOTTOMMARGIN, 236
+ END
+
+ IDD_PROP_VECTOR, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 213
+ VERTGUIDE, 50
+ BOTTOMMARGIN, 198
+ END
+
+ IDD_FILTERS, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 178
+ END
+
+ IDD_RESET, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 175
+ VERTGUIDE, 18
+ VERTGUIDE, 164
+ TOPMARGIN, 7
+ END
+END
+#endif // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Bitmap
+//
+
+
+
+
+IDB_ABOUT BITMAP "res\\about.bmp"
+IDB_TOOLBAR BITMAP "res\\toolbar.bmp"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Cursor
+//
+
+IDC_CURSOR_HSPLIT CURSOR "res\\splith.cur"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// RT_MANIFEST
+//
+
+1 RT_MANIFEST "res\\mameui.manifest"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// String Table
+//
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ IDS_UI_FILE "Contains commands for working with the selected items"
+ IDS_UI_VIEW "Contains commands for manipulating the view"
+ IDS_UI_OPTIONS "Contains commands for user interface options"
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ IDS_UI_HELP "Contains commands for displaying help"
+ IDS_VIEW_TOOLBAR "Show or hide the toolbar"
+ IDS_VIEW_STATUSBAR "Show or hide the status bar"
+ IDS_VIEW_FOLDERLIST "Show or hide the folder list"
+ IDS_VIEW_SCREENSHOT "Show or hide the screen shot"
+ IDS_VIEW_PICTURETABS "Show or hide tabs in the picture area"
+ IDS_VIEW_SPACER1 "Spacer"
+ IDS_VIEW_FULLSCREEN "Toggle full screen mode"
+ IDS_VIEW_SPACER2 "Spacer"
+ IDS_VIEW_SHOWPICTURES "Contains commands to select tabs shown in the picture area"
+ IDS_VIEW_SPACER3 "Spacer"
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ IDS_VIEW_LARGEICONS "Display items by using large icons."
+ IDS_VIEW_SMALLICONS "Display items by using small icons."
+ IDS_VIEW_LIST "Displays items in a list."
+ IDS_VIEW_DETAILS "Displays detailed information about each item in the window."
+ IDS_VIEW_GROUPED "Displays items grouped by parent game"
+ IDS_VIEW_SPACER4 "Spacer"
+ IDS_VIEW_ARRANGE "Contains commands for sorting by various columns"
+ IDS_VIEW_LINEUPICONS "Arranges icons in a grid"
+ IDS_VIEW_SPACER5 "Spacer"
+ IDS_VIEW_REFRESH "Refresh game list"
+ IDS_VIEW_CONTEXTFILTERS "Allows filtering out games from a folder"
+ IDS_VIEW_CUSTOMIZEFIELDS
+ "Customize which columns are used in the game list"
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ ID_FILE_EXIT "Exit the application"
+ ID_FILE_PLAY "Play currently selected game"
+ ID_HELP_ABOUT "Displays program and copyright information"
+ ID_VIEW_LARGE_ICON "Display items by using large icons."
+ ID_VIEW_SMALL_ICON "Display items by using small icons."
+ ID_VIEW_LIST_MENU "Displays items in a list."
+ ID_VIEW_DETAIL "Displays detailed information about each item in the window."
+ ID_VIEW_GROUPED "Show items grouped by parent game"
+ ID_OPTIONS_FONT "Set game list and folder list font"
+ ID_OPTIONS_CLONE_COLOR "Set the clone font color"
+ ID_OPTIONS_DIR "Set directory configuration"
+ ID_OPTIONS_DEFAULTS "Set default game options"
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ ID_OPTIONS_RESET_DEFAULTS "Allow restoring options to 'sane' values."
+ ID_OPTIONS_INTERFACE "Customize interface options."
+ ID_FILE_AUDIT "Audit ROM and samples sets"
+ ID_FILE_PLAY_RECORD "Record a game for later playback"
+ ID_FILE_PLAY_BACK "Playback a recorded game"
+ ID_FILE_PLAY_RECORD_WAVE "Record the audio output of a game"
+ ID_FILE_PLAY_RECORD_MNG "Record the video output of a game"
+ ID_FILE_PLAY_RECORD_AVI "Record the complete output of a game"
+ ID_VIEW_PICTURE_AREA "Show or hide the picture area"
+ ID_HELP_CONTENTS "Display help contents"
+ ID_HELP_WHATS_NEWUI "New game changes"
+ ID_HELP_TROUBLE "Troubleshooting Documentation"
+ ID_HELP_RELEASE "MAME release notes"
+ ID_HELP_WHATS_NEW "What's new in MAME"
+ ID_HELP_CHEATS "How cheats work"
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ ID_CONTEXT_RESET_PLAYSTATS "Reset play stats for selected item"
+ ID_FOLDER_PROPERTIES "Display folder properties"
+ ID_FOLDER_AUDIT "Audit items in this folder"
+ ID_FILE_LOADSTATE "Play a game starting with the given savestate"
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ ID_VIEW_TAB_CABINET "Select Cabinet tab"
+ ID_VIEW_TAB_MARQUEE "Select Marquee tab"
+ ID_VIEW_TAB_TITLE "Select Title tab"
+ ID_VIEW_TAB_CONTROL_PANEL "Select Control panel tab"
+ ID_VIEW_TAB_PCB "Select PCB tab"
+ ID_VIEW_TAB_HISTORY "Select History tab"
+ ID_OPTIONS_BG "Set the background image"
+ ID_TOGGLE_TAB_SCREENSHOT "Enable the screenshot tab"
+ ID_TOGGLE_TAB_FLYER "Enable the flyer tab"
+ ID_TOGGLE_TAB_CABINET "Enable the cabinet tab"
+ ID_TOGGLE_TAB_MARQUEE "Enable the marquee tab"
+ ID_TOGGLE_TAB_TITLE "Enable the title tab"
+ ID_TOGGLE_TAB_CONTROL_PANEL "Enable the control panel tab"
+ ID_TOGGLE_TAB_PCB "Enable the PCB tab"
+ ID_TOGGLE_TAB_HISTORY "Enable the history tab"
+ ID_VIEW_FULLSCREEN "Toggle Fullscreen mode"
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ ID_CUSTOMIZE_FIELDS "Customize which columns are used in the game list"
+ ID_GAME_PROPERTIES "Display the properties of the selected item"
+ ID_VIEW_PAGETAB "Show or hide the tabs in the picture area"
+ ID_VIEW_FOLDERS "Show or hide the folder list"
+ ID_VIEW_TOOLBARS "Show or hide the toolbar"
+ ID_VIEW_STATUS "Show or hide the status bar"
+ ID_CONTEXT_FILTERS "Allows filtering out games from a folder"
+ ID_CONTEXT_RENAME_CUSTOM "Rename this folder"
+ ID_CONTEXT_ADD_CUSTOM "Add selected item to custom folder"
+ ID_CONTEXT_REMOVE_CUSTOM "Remove selected item from this folder"
+ ID_GAME_AUDIT "Audit the selected item"
+ ID_CONTEXT_SELECT_RANDOM "Randomly select a game."
+ ID_VIEW_TAB_SCREENSHOT "Select Snapshot tab"
+ ID_VIEW_TAB_FLYER "Select Flyer tab"
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ ID_VIEW_BYGAME "Sort items by game description"
+ ID_VIEW_BYDIRECTORY "Sort items by name"
+ ID_VIEW_BYMANUFACTURER "Sort items by manufacturer"
+ ID_VIEW_BYYEAR "Sort items by year"
+ ID_VIEW_BYTYPE "Sort items by type"
+ ID_VIEW_BYTIMESPLAYED "Sort by number of plays"
+ ID_VIEW_LINEUPICONS "Arranges icons in a grid"
+ ID_UPDATE_GAMELIST "Refresh game list"
+ ID_SORT_ASCENDING "Sort column in ascending (A-Z) order"
+ ID_SORT_DESCENDING "Sort column in descending (Z-A) order"
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ ID_FOLDER_SOURCEPROPERTIES
+ "Display properties for all games in this source file"
+ ID_FOLDER_VECTORPROPERTIES "Display properties for all vector based games"
+ ID_OPTIONS_HISTORY "Set the History file to use"
+ ID_OPTIONS_MAMEINFO "Set the Mameinfo file to use"
+END
+
+#endif // English (USA) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+#include "hbmamevers.rc" // Version block
+
+
+/////////////////////////////////////////////////////////////////////////////
+#endif // not APSTUDIO_INVOKED
+
diff --git a/docs/release/src/osd/winui/help.cpp b/docs/release/src/osd/winui/help.cpp
new file mode 100644
index 00000000000..971c369bd86
--- /dev/null
+++ b/docs/release/src/osd/winui/help.cpp
@@ -0,0 +1,107 @@
+// For licensing and usage information, read docs/winui_license.txt
+//****************************************************************************
+
+/***************************************************************************
+
+ help.c
+
+ Help wrapper code.
+
+***************************************************************************/
+
+// standard windows headers
+#include <windows.h>
+
+// MAME/MAMEUI headers
+#include "help.h"
+
+typedef HWND (WINAPI *HtmlHelpProc)(HWND hwndCaller, LPCSTR pszFile, UINT uCommand, DWORD_PTR dwData);
+
+/***************************************************************************
+ Internal structures
+***************************************************************************/
+
+/***************************************************************************
+ function prototypes
+***************************************************************************/
+
+static void Help_Load(void);
+
+/***************************************************************************
+ External function prototypes
+***************************************************************************/
+
+/***************************************************************************
+ External variables
+***************************************************************************/
+
+/***************************************************************************
+ Internal variables
+***************************************************************************/
+
+static HtmlHelpProc g_pHtmlHelp;
+static HMODULE g_hHelpLib;
+static DWORD g_dwCookie = 0;
+
+/**************************************************************************
+ External functions
+***************************************************************************/
+
+int HelpInit(void)
+{
+ g_pHtmlHelp = NULL;
+ g_hHelpLib = NULL;
+
+ g_dwCookie = 0;
+ HelpFunction(NULL, NULL, HH_INITIALIZE, (DWORD_PTR)&g_dwCookie);
+ return 0;
+}
+
+void HelpExit(void)
+{
+ HelpFunction(NULL, NULL, HH_CLOSE_ALL, 0);
+ HelpFunction(NULL, NULL, HH_UNINITIALIZE, (DWORD_PTR)&g_dwCookie);
+
+ g_dwCookie = 0;
+ g_pHtmlHelp = NULL;
+
+ if (g_hHelpLib)
+ {
+ FreeLibrary(g_hHelpLib);
+ g_hHelpLib = NULL;
+ }
+}
+
+HWND HelpFunction(HWND hwndCaller, LPCSTR pszFile, UINT uCommand, DWORD_PTR dwData)
+{
+ if (g_pHtmlHelp == NULL)
+ Help_Load();
+
+ if (g_pHtmlHelp)
+ return g_pHtmlHelp(hwndCaller, pszFile, uCommand, dwData);
+ else
+ return NULL;
+}
+
+/***************************************************************************
+ Internal functions
+***************************************************************************/
+
+static void Help_Load(void)
+{
+ g_hHelpLib = LoadLibrary(TEXT("hhctrl.ocx"));
+ if (g_hHelpLib)
+ {
+ FARPROC pProc = NULL;
+ pProc = GetProcAddress(g_hHelpLib, "HtmlHelpA");
+ if (pProc)
+ {
+ g_pHtmlHelp = (HtmlHelpProc)pProc;
+ }
+ else
+ {
+ FreeLibrary(g_hHelpLib);
+ g_hHelpLib = NULL;
+ }
+ }
+}
diff --git a/docs/release/src/osd/winui/help.h b/docs/release/src/osd/winui/help.h
new file mode 100644
index 00000000000..356e62994b7
--- /dev/null
+++ b/docs/release/src/osd/winui/help.h
@@ -0,0 +1,47 @@
+// For licensing and usage information, read docs/winui_license.txt
+//****************************************************************************
+
+#ifndef HELP_H
+#define HELP_H
+
+#if defined(__GNUC__)
+#define HH_DISPLAY_TOPIC 0
+#define HH_TP_HELP_CONTEXTMENU 16
+#define HH_TP_HELP_WM_HELP 17
+#define HH_CLOSE_ALL 18
+#define HH_INITIALIZE 28
+#define HH_UNINITIALIZE 29
+#else
+#include <htmlhelp.h>
+#endif
+
+typedef struct
+{
+ int nMenuItem;
+ BOOL bIsHtmlHelp;
+ LPCTSTR lpFile;
+} MAMEHELPINFO;
+
+extern const MAMEHELPINFO g_helpInfo[];
+
+#if !defined(MAMEUIHELP)
+#ifdef MESS
+#define MAMEUIHELP "messui.chm"
+#else
+#define MAMEUIHELP "mameui.chm"
+#endif
+#endif
+
+#if !defined(MAMEUICONTEXTHELP)
+#ifdef MESS
+#define MAMEUICONTEXTHELP "messui.chm::/cntx_help.txt"
+#else
+#define MAMEUICONTEXTHELP "mameui.chm::/cntx_help.txt"
+#endif
+#endif
+
+extern int HelpInit(void);
+extern void HelpExit(void);
+extern HWND HelpFunction(HWND hwndCaller, LPCSTR pszFile, UINT uCommand, DWORD_PTR dwData);
+
+#endif
diff --git a/docs/release/src/osd/winui/help/cntx_help.txt b/docs/release/src/osd/winui/help/cntx_help.txt
new file mode 100644
index 00000000000..61e8b1db51f
--- /dev/null
+++ b/docs/release/src/osd/winui/help/cntx_help.txt
@@ -0,0 +1,220 @@
+.topic HIDC_ADSTICK
+Selects appropriate host controller for emulated controls.
+.topic HIDC_ANTIALIAS
+Enables anti-aliasing of vector lines providing a smoother look.
+.topic HIDC_ARTWORK_CROP
+Enables cropping external artwork down to selected window or resolution
+.topic HIDC_ASPECT
+Enables manual override of MameUI's 4:3 or 3:4 aspect ratio calculation. Rarely used.
+.topic HIDC_ASPECTRATIOD
+Enables manual override of MameUI's 4:3 or 3:4 aspect ratio calculation. Rarely used.
+.topic HIDC_ASPECTRATION
+Enables manual override of MameUI's 4:3 or 3:4 aspect ratio calculation. Rarely used.
+.topic HIDC_AUDIO_LATENCY
+Selects the level of audio latency, adjusting this can often eliminate desync of the sound and associated scratchiness.
+.topic HIDC_AUTOFRAMESKIP
+Enables automatic frame skipping during emulation attempting to keep at 100%.
+.topic HIDC_BACKDROPS
+Enables the backdrops of artwork in supported games.
+.topic HIDC_BEAM
+Selects the width of the vector lines in vector games.
+.topic HIDC_BEZELS
+Enables the bezel artwork in supported games.
+.topic HIDC_BIOS
+Selects a particular BIOS in a driver family or individual games e.g. NeoGeo.
+.topic HIDC_BRIGHTCORRECT
+Selects the brightness level of the screen [but not artwork or UI].
+.topic HIDC_BROADCAST
+Enables programmatically broadcasting the game being played to attached devices.
+.topic HIDC_CHEAT
+Enables cheat capability using the in-game [tab] menu.
+.topic HIDC_COINLOCKOUT
+Enables arcade operator coin lockout behaviour.
+.topic HIDC_CONTRAST
+Selects the contrast level of the screen [but not artwork or UI].
+.topic HIDC_CYCLETIMESEC
+.topic HIDC_D3D_FILTER
+Enables bilinear filtering during image stretch.
+.topic HIDC_D3D_VERSION
+Selects the version of Direct3D to use, 9 by default.
+.topic HIDC_DEBUG
+.topic HIDC_DEFAULT_INPUT
+Selects .\ctrlr\*.cfg files to use for custom controller mappings.
+.topic HIDC_DIAL
+Selects appropriate host controller for emulated controls.
+.topic HIDC_DUAL_LIGHTGUN
+Enables support for dual light guns.
+.topic HIDC_ENABLE_AUTOSAVE
+Enables MameUI to use the contents of the \sav directory to restart a game at last quit.
+.topic HIDC_FILTER_CLONES
+Enables filtering out clones, leaving only parent games showing.
+.topic HIDC_FILTER_EDIT
+Allows typing in text to filter, including: gamename, description, driver, and manufacturer.
+.topic HIDC_FILTER_HORIZONTAL
+Enables filtering out horizontal games, leaving only vertical games showing.
+.topic HIDC_FILTER_NONWORKING
+Enables filtering out non-working games, leaving only working games showing.
+.topic HIDC_FILTER_ORIGINALS
+Enables filtering out parent games, leaving only clones showing.
+.topic HIDC_FILTER_RASTER
+Enables filtering out raster games, leaving only vector games showing.
+.topic HIDC_FILTER_UNAVAILABLE
+Enables filtering out unavailable games, leaving only available games showing.
+.topic HIDC_FILTER_VECTOR
+Enables filtering out vector games, leaving only raster games showing.
+.topic HIDC_FILTER_VERTICAL
+Enables filtering out vertical games, leaving only horizontal games showing.
+.topic HIDC_FILTER_WORKING
+Enables filtering out working games, leaving only non-working games showing.
+.topic HIDC_FLICKER
+Selects the flicker level for vector lines.
+.topic HIDC_FLIPX
+Enables flipping the screen horizontally.
+.topic HIDC_FLIPY
+Enables flipping the screen vertically.
+.topic HIDC_FRAMESKIP
+Selects the number of frames skipped during emulation.
+.topic HIDC_FSBRIGHTNESS
+Selects the level of the full-screen brightness including artwork and UI.
+.topic HIDC_FSCONTRAST
+Selects the level of the full-screen contrast including artwork and UI.
+.topic HIDC_FSGAMMA
+Selects the level of the full-screen gamma including artwork and UI.
+.topic HIDC_GAME_CAPTION
+Attempts to remove the titlebar from a windowed game.
+.topic HIDC_GAMMA
+Selects the gamma level of the screen [but not artwork or UI].
+.topic HIDC_HIDE_MOUSE
+Enables hiding the mouse cursor on launch, useful for fullscreen UI w/ keyboard controlled cabinets, etc.
+.topic HIDC_HIGH_PRIORITY
+Selects MameUI's thread priority, default is 0. Running at real-time 1 is not recommended for potential control lag and sound desync.
+.topic HIDC_HISTORY
+Enables display of the history.dat file if present in the root directory.
+.topic HIDC_HWSTRETCH
+Enables hardware stretch for DirectDraw.
+.topic HIDC_JDZ
+Selects the level for an analogue joystick's deadzone.
+.topic HIDC_JOY_GUI
+Enables controlling the MameUI GUI with a gamepad.
+.topic HIDC_JOYSTICK
+Enables gamepad control within games.
+.topic HIDC_JSAT
+Selects the level for an analogue joystick's saturation.
+.topic HIDC_KEEPASPECT
+Enables creating windows for games that are way out of proportion e.g. thick, or tall.
+.topic HIDC_LANGUAGECHECK
+.topic HIDC_LANGUAGEEDIT
+.topic HIDC_LIGHTGUN
+Enables lightgun devices.
+.topic HIDC_LIGHTGUNDEVICE
+Selects appropriate host controller for emulated controls.
+.topic HIDC_LOG
+Enables programmatic logging as a game is played, saved out to file.
+.topic HIDC_MAXIMIZE
+Enables maximizing the game window or creating a very small window.
+.topic HIDC_MOUSE
+Enables mouse support within games.
+.topic HIDC_MULTITHREAD_RENDERING
+Enables handing off the final video blit to a second thread. Still experimental [.118] and may cause issues.
+.topic HIDC_NUMSCREENS
+Selects number of screens for MameUI to produce, windowed or multi-head physical monitors.
+.topic HIDC_OVERLAYS
+Enables art overlays in supported games.
+.topic HIDC_PADDLE
+Selects appropriate host controller for emulated controls.
+.topic HIDC_PAUSEBRIGHT
+Selects level of brightness for screen when paused.
+.topic HIDC_PEDAL
+Selects appropriate host controller for emulated controls.
+.topic HIDC_POSITIONAL
+Selects appropriate host controller for emulated controls.
+.topic HIDC_PRESCALE
+Selects level of prescaling, the higher the number, the sharper the stretched filtered image.
+.topic HIDC_PROP_RESET
+Enables resetting recent changes to the open tab.
+.topic HIDC_RANDOM_BG
+Enables random GUI background selection on restart, *.png files in \bkground directory.
+.topic HIDC_REFRESH
+Selects host monitor refresh rate.
+.topic HIDC_REFRESHSPEED
+Enables altering the speed of gameplay to keep the refresh rate lower than the screen.
+.topic HIDC_RELOAD
+Enables reload functionality for second button on lightguns.
+.topic HIDC_RESET_DEFAULT
+Enables resetting of games to default settings.
+.topic HIDC_RESET_EFFECT
+Enables resetting and clearing out the *.png effect chosen.
+.topic HIDC_RESET_FILTERS
+Enables resetting and clearing filters applied to folders.
+.topic HIDC_RESET_GAMES
+Enables resetting games to use default options.
+.topic HIDC_RESET_UI
+Enables resetting the options to fresh MameUI install settings.
+.topic HIDC_ROTATE
+Selects rotation setting for game display. Use the Auto options for pivot LCDs.
+.topic HIDC_SAMPLERATE
+Selects the output samplerate for games.
+.topic HIDC_SAMPLES
+Enables the use of external samples.
+.topic HIDC_SCREEN
+Selects screenX depends on the number of screens setting. Allows different settings for each screen.
+.topic HIDC_SCREENSELECT
+Selects the physical monitor to display window or full-screen multi-head output.
+.topic HIDC_SELECT_EFFECT
+Selects a *.png file in the \artwork directory for creating monitor-like effects.
+.topic HIDC_SIZES
+Selects from DirectX interrogated resolutions.
+.topic HIDC_SKIP_GAME_INFO
+Enables skipping game info screen when games started.
+.topic HIDC_SPEED
+Selects the speed of gameplay, relative to realtime; smaller numbers are slower.
+.topic HIDC_SLEEP
+Enables giving more timeslices back to the system, allowing MameUI to 'play nicer' with other apps.
+.topic HIDC_START_GAME_CHECK
+Enables running a mini-audit on application launch.
+.topic HIDC_STEADYKEY
+Enables the steadykey hack.
+.topic HIDC_STRETCH_SCREENSHOT_LARGER
+Enables increasing the size of the art pane items if the window is expanded.
+.topic HIDC_SWITCHRES
+Enables the switching of resolutions in fullscreen gaming.
+.topic HIDC_SYNCREFRESH
+Enables syncing the game internal speed to the host monitor.
+.topic HIDC_THROTTLE
+Enables throttling games to run at 100%.
+.topic HIDC_TRACKBALL
+Selects appropriate host controller for emulated controls.
+.topic HIDC_TRIPLE_BUFFER
+Enables the use of triple buffering during fullscreen gaming.
+.topic HIDC_USE_DEFAULT
+Enables reseting to default.
+.topic HIDC_USE_MOUSE
+Selects appropriate host controller for emulated controls.
+.topic HIDC_USE_SOUND
+Enables sound within games.
+.topic HIDC_VIDEO_MODE
+Selects the default rendering method.
+.topic HIDC_VIEW
+Selects the view in use in games.
+.topic HIDC_VOLUME
+Selects the volume level in games.
+.topic HIDC_WAITVSYNC
+Enables waiting for vertical sync.
+.topic HIDC_WINDOWED
+Enables running games in a window.
+.topic HIDC_HLSL_ALPHA
+Adjusts the alpha.
+.topic HIDC_HLSL_CURV
+Adjusts the curvature.
+.topic HIDC_HLSL_SAT
+Adjusts the saturation.
+.topic HIDC_HLSL_SHADOW
+Adjusts the effect of the shadowmask on the picture.
+.topic HIDC_HLSL_PIN
+Adjusts the pincushion distortion.
+.topic HIDC_HLSL_FLOOR
+.topic HIDC_HLSL_SCALE
+.topic HIDC_HLSL_POWER
+.topic HIDC_HLSL_PLIFE
+.topic HIDC_HLSL_ON
+Enables HLSL video enhancements.
diff --git a/docs/release/src/osd/winui/help/docs/Command Line Settings.htm b/docs/release/src/osd/winui/help/docs/Command Line Settings.htm
new file mode 100644
index 00000000000..8752595f429
--- /dev/null
+++ b/docs/release/src/osd/winui/help/docs/Command Line Settings.htm
@@ -0,0 +1,1377 @@
+
+<head>
+<style type="text/css">
+.style1 {
+ font-family: Arial, Helvetica, sans-serif;
+}
+.style2 {
+ font-size: x-small;
+}
+</style>
+</head>
+
+<body style="background-image: url('../images/bkground.gif')">
+
+<span class="style1"><span class="style2"><strong>This file describes general usage
+information about MAME. It is intended<br>
+to cover aspects of using and configuring the program that are common<br>
+across operating systems. For additional OS-specific options, please see<br>
+the separate documentation for your particular version of MAME.</strong></strong><br>
+<br>
+<br>
+Using the program<br>
+-----------------<br>
+<br>
+The usual way to run MAME is by telling it to run a particular game:<br>
+<br>
+mame &lt;gamename&gt; [options]<br>
+<br>
+For example:<br>
+<br>
+mame robby -nosound<br>
+<br>
+...will run Robby Roto without sound. There are many, many options<br>
+available. All commonly supported options are listed below. Options that<br>
+are specific to one operating system or version of MAME will be listed<br>
+in a separate document.<br>
+<br>
+An alternative way to run MAME is to give it a command:<br>
+<br>
+mame &lt;command&gt; [parameters]<br>
+<br>
+For example:<br>
+<br>
+mame -listsource gridlee<br>
+<br>
+...will print the name of the source file where the gridlee driver lives<br>
+to the screen. There are just a handful of these commands in MAME. They<br>
+are all listed below, just before the options list.<br>
+<br>
+<br>
+<br>
+Default Keys<br>
+------------<br>
+<br>
+All the keys below are fully configurable in the user interface. This list<br>
+shows the standard keyboard configuration.<br>
+<br>
+Tab Toggles the configuration menu.<br>
+<br>
+~ Toggles the On Screen Display. When the on-screen display is<br>
+visible, you can use the following keys to control it:<br>
+<br>
+Up - select previous parameter to modify<br>
+Down - select next parameter to modify<br>
+Enter - reset parameter value to its default<br>
+<br>
+Left - decrease the value of the selected parameter<br>
+Control+Left - decrease the value by 10x<br>
+Shift+Left - decrease the value by 0.1x<br>
+Alt+Left - decrease the value by the smallest amount<br>
+<br>
+Right - increase the value of the selected parameter<br>
+Control+Right - increase the value by 10x<br>
+Shift+Right - increase the value by 0.1x<br>
+Alt+Right - increase the value by the smallest amount<br>
+<br>
+P Pauses the game.<br>
+<br>
+Shift+P While paused, advances to next frame.<br>
+<br>
+F2 Service Mode for games that support it.<br>
+<br>
+F3 Resets the game.<br>
+<br>
+Shift+F3 Performs a &quot;hard reset&quot;, which tears everything down and re-<br>
+creates it from scratch. This is a more thorough and complete<br>
+reset than an F3.<br>
+<br>
+F4 Shows the game palette, decoded GFX, and any tilemaps. Use the<br>
+Enter key to switch between the three modes (palette, graphics,<br>
+and tilemaps). Press F4 again to turn off the display. The key<br>
+controls in each mode vary slightly:<br>
+<br>
+* Palette/colortable mode:<br>
+[ ] - switch between palette and colortable modes<br>
+Up/Down - scroll up/down one line at a time<br>
+Page Up/Page Down - scroll up/down one page at a time<br>
+Home/End - move to top/bottom of list<br>
+-/+ - increase/decrease the number of colors per row<br>
+Enter - switch to graphics viewer<br>
+<br>
+* Graphics mode:<br>
+[ ] - switch between different graphics sets<br>
+Up/Down - scroll up/down one line at a time<br>
+Page Up/Page Down - scroll up/down one page at a time<br>
+Home/End - move to top/bottom of list<br>
+Left/Right - change color displayed<br>
+R - rotate tiles 90 degrees clockwise<br>
+-/+ - increase/decrease the number of tiles per row<br>
+Enter - switch to tilemap viewer<br>
+<br>
+* Tilemap mode:<br>
+[ ] - switch between different tilemaps<br>
+Up/Down/Left/Right - scroll 8 pixels at a time<br>
+Shift+Up/Down/Left/Right - scroll 1 pixel at a time<br>
+Control+Up/Down/Left/Right - scroll 64 pixels at a time<br>
+R - rotate tilemap view 90 degrees clockwise<br>
+-/+ - increase/decrease the zoom factor<br>
+Enter - switch to palette/colortable mode<br>
+<br>
+Note: Not all games have decoded graphics and/or tilemaps.<br>
+<br>
+F6 Toggle cheat mode (if started with &quot;-cheat&quot;).<br>
+<br>
+F7 Load a save state. You will be requested to press a key to<br>
+determine which save state you wish to load. Note that the save<br>
+state feature is not supported for a large number of drivers. If<br>
+support is not enabled for a given driver, you will receive a<br>
+warning when attempting to save or load.<br>
+<br>
+Shift+F7 Create a save state. Requires an additional keypress to identify<br>
+the state, similar to the load option above.<br>
+<br>
+F8 Decrease frame skip on the fly.<br>
+<br>
+F9 Increase frame skip on the fly.<br>
+<br>
+F10 Toggle speed throttling.<br>
+<br>
+F11 Toggles speed display.<br>
+<br>
+Shift+F11 Toggles internal profiler display (if compiled in).<br>
+<br>
+F12 Saves a screen snapshot.<br>
+<br>
+Insert Fast forward. While held, runs the game with throttling disabled<br>
+and with the maximum frameskip.<br>
+<br>
+Escape Exits emulator.<br>
+<br>
+<br>
+<br>
+<br>
+Core commands<br>
+-------------<br>
+<br>
+-help / -h / -?<br>
+<br>
+Displays current MAME version and copyright notice.<br>
+<br>
+-validate / -valid<br>
+<br>
+Performs internal validation on every driver in the system. Run this<br>
+before submitting changes to ensure that you haven't violated any of<br>
+the core system rules.<br>
+<br>
+<br>
+<br>
+Configuration commands<br>
+----------------------<br>
+<br>
+-createconfig / -cc<br>
+<br>
+Creates the default mame.ini file. All the configuration options<br>
+(not commands) described below can be permanently changed by editing<br>
+this configuration file.<br>
+<br>
+-showconfig / -sc<br>
+<br>
+Displays the current configuration settings. If you route this to a<br>
+file, you can use it as an INI file. For example, the command:<br>
+<br>
+mame -showconfig &gt;mame.ini<br>
+<br>
+is equivalent to -createconfig.<br>
+<br>
+-showusage / -su<br>
+<br>
+Displays a summary of all the command line options. For options that<br>
+are not mentioned here, the short summary given by &quot;mame -showusage&quot;<br>
+is usually sufficient.<br>
+<br>
+<br>
+<br>
+Frontend commands<br>
+-----------------<br>
+<br>
+Note: By default, all the '-list' commands below write info to the screen.<br>
+If you wish to write the info to a textfile instead, add this to the end<br>
+of your command:<br>
+<br>
+&gt; filename<br>
+<br>
+...where 'filename' is the textfile's path and name<br>
+(e.g., c:\mame\list.txt).<br>
+<br>
+-listxml / -lx [&lt;gamename|wildcard&gt;]<br>
+<br>
+List comprehensive details for all of the supported games. The output<br>
+is quite long, so it is usually better to redirect this into a file.<br>
+The output is in XML format. By default all games are listed; however,<br>
+you can limit this list by specifying a driver name or wildcard after<br>
+the -listxml command.<br>
+<br>
+-listfull / -ll [&lt;gamename|wildcard&gt;]<br>
+<br>
+Displays a list of game driver names and descriptions. By default all<br>
+games are listed; however, you can limit this list by specifying a<br>
+driver name or wildcard after the -listfull command.<br>
+<br>
+-listsource / -ls [&lt;gamename|wildcard&gt;]<br>
+<br>
+Displays a list of drivers and the names of the source files their<br>
+game drivers live in. Useful for finding which driver a game runs on<br>
+in order to fix bugs. By default all games are listed; however, you<br>
+can limit this list by specifying a driver name or wildcard after<br>
+the -listsource command.<br>
+<br>
+-listclones / -lc [&lt;gamename|wildcard&gt;]<br>
+<br>
+Displays a list of clones. By default all clones are listed; however,<br>
+you can limit this list by specifying a driver name or wildcard after<br>
+the -listsource command.<br>
+<br>
+-listcrc<br>
+<br>
+Displays a full list of CRCs of all ROM images referenced by all<br>
+drivers within MAME.<br>
+<br>
+-listroms &lt;gamename&gt;<br>
+<br>
+Displays a list of ROM images referenced by the specified game.<br>
+<br>
+-listsamples &lt;gamename&gt;<br>
+<br>
+Displays a list of samples referenced by the specified game.<br>
+<br>
+-verifyroms [&lt;gamename|wildcard&gt;]<br>
+<br>
+Checks for invalid or missing ROM images. By default all drivers that<br>
+have valid ZIP files or directories in the rompath are verified;<br>
+however, you can limit this list by specifying a driver name or<br>
+wildcard after the -verifyroms command.<br>
+<br>
+-verifysamples [&lt;gamename|wildcard&gt;]<br>
+<br>
+Checks for invalid or missing samples. By default all drivers that<br>
+have valid ZIP files or directories in the samplepath are verified;<br>
+however, you can limit this list by specifying a driver name or<br>
+wildcard after the -verifyroms command.<br>
+<br>
+-romident<br>
+<br>
+Attempts to identify ROM files, if they are known to MAME, in the<br>
+specified .zip file or directory. This command can be used to try and<br>
+identify ROM sets taken from unknown boards. On exit, the errorlevel<br>
+is returned as one of the following:<br>
+<br>
+0: means all files were identified<br>
+7: means all files were identified except for 1 or more &quot;non-ROM&quot;<br>
+files<br>
+8: means some files were identified<br>
+9: means no files were identified<br>
+<br>
+<br>
+<br>
+Configuration options<br>
+---------------------<br>
+<br>
+-[no]readconfig / -[no]rc<br>
+<br>
+Enables or disables the reading of the config files. When enabled<br>
+(which is the default), MAME reads the following config files in order:<br>
+<br>
+- mame.ini<br>
+- &lt;mymame&gt;.ini (i.e. if MAME was renamed mame060.exe, MAME<br>
+parses mame060.ini here)<br>
+- debug.ini (if the debugger is enabled)<br>
+- vector.ini (for vector games only)<br>
+- &lt;driver&gt;.ini (based on the source filename of the driver)<br>
+- &lt;parent&gt;.ini (for clones only, may be called recursively)<br>
+- &lt;gamename&gt;.ini<br>
+<br>
+The settings in the later ini's override those in the earlier ini's.<br>
+So, for example, if you wanted to disable overlay effects in the<br>
+vector games, you can create a vector.ini with the &quot;effect none&quot; line<br>
+in it, and it will override whatever effect value you have in your<br>
+mame.ini. The default is ON (-readconfig).<br>
+<br>
+<br>
+<br>
+Core search path options<br>
+------------------------<br>
+<br>
+-rompath / -rp &lt;path&gt;<br>
+<br>
+Specifies a list of paths within which to find ROM or hard disk images.<br>
+Multiple paths can be specified by separating them with semicolons.<br>
+The default is 'roms' (that is, a directory &quot;roms&quot; in the same directory<br>
+as the MAME executable).<br>
+<br>
+-samplepath / -sp &lt;path&gt;<br>
+<br>
+Specifies a list of paths within which to find sample files. Multiple<br>
+paths can be specified by separating them with semicolons. The default<br>
+is 'samples' (that is, a directory &quot;samples&quot; in the same directory as<br>
+the MAME executable).<br>
+<br>
+-artpath / -artwork_directory &lt;path&gt;<br>
+<br>
+Specifies a list of paths within which to find artwork files. Multiple<br>
+paths can be specified by separating them with semicolons. The default<br>
+is 'artwork' (that is, a directory &quot;artwork&quot; in the same directory as<br>
+the MAME executable).<br>
+<br>
+-ctrlrpath / -ctrlr_directory &lt;path&gt;<br>
+<br>
+Specifies a list of paths within which to find controller-specific<br>
+configuration files. Multiple paths can be specified by separating<br>
+them with semicolons. The default is 'ctrlr' (that is, a directory<br>
+&quot;ctrlr&quot; in the same directory as the MAME executable).<br>
+<br>
+-inipath &lt;path&gt;<br>
+<br>
+Specifies a list of paths within which to find .INI files. Multiple<br>
+paths can be specified by separating them with semicolons. The default<br>
+is '.;ini' (that is, search in the current directory first, and then<br>
+in the directory &quot;ini&quot; in the same directory as the MAME executable).<br>
+<br>
+-fontpath &lt;path&gt;<br>
+<br>
+Specifies a list of paths within which to find .BDF font files. Multiple<br>
+paths can be specified by separating them with semicolons. The default<br>
+is '.' (that is, search in the same directory as the MAME executable).<br>
+<br>
+-crosshairpath &lt;path&gt;<br>
+<br>
+Specifies a list of paths within which to find crosshair files. Multiple<br>
+paths can be specified by separating them with semicolons. The default<br>
+is 'crsshair' (that is, a directory &quot;crsshair&quot; in the same directory as<br>
+the MAME executable). If the Crosshair is set to default in the menu,<br>
+MAME will look for gamename\cross#.png and then cross#.png in the<br>
+specified crsshairpath, where # is the player number. Failing that,<br>
+MAME will use built-in default crosshairs.<br>
+<br>
+<br>
+Core Output Directory Options<br>
+-----------------------------<br>
+<br>
+-cfg_directory &lt;path&gt;<br>
+<br>
+Specifies a single directory where configuration files are stored.<br>
+Configuration files store user configurable settings that are read at<br>
+startup and written when MAME exits. The default is 'cfg' (that is,<br>
+a directory &quot;cfg&quot; in the same directory as the MAME executable). If<br>
+this directory does not exist, it will be automatically created.<br>
+<br>
+-nvram_directory &lt;path&gt;<br>
+<br>
+Specifies a single directory where NVRAM files are stored. NVRAM files<br>
+store the contents of EEPROM and non-volatile RAM (NVRAM) for games<br>
+which used this type of hardware. This data is read at startup and<br>
+written when MAME exits. The default is 'nvram' (that is, a directory<br>
+&quot;nvram&quot; in the same directory as the MAME executable). If this<br>
+directory does not exist, it will be automatically created.<br>
+<br>
+-memcard_directory &lt;path&gt;<br>
+<br>
+Specifies a single directory where memory card files are stored.<br>
+Memory card files store the contents of removable memory cards for<br>
+games which used this type of hardware. This data is read and written<br>
+under control of the user via the &quot;Memory Card&quot; menu in the user<br>
+interface. The default is 'memcard' (that is, a directory &quot;memcard&quot;<br>
+in the same directory as the MAME executable). If this directory does<br>
+not exist, it will be automatically created.<br>
+<br>
+-input_directory &lt;path&gt;<br>
+<br>
+Specifies a single directory where input recording files are stored.<br>
+Input recordings are created via the -record option and played back<br>
+via the -playback option. The default is 'inp' (that is, a directory<br>
+&quot;inp&quot; in the same directory as the MAME executable). If this directory<br>
+does not exist, it will be automatically created.<br>
+<br>
+-state_directory &lt;path&gt;<br>
+<br>
+Specifies a single directory where save state files are stored. Save<br>
+state files are read and written either upon user request, or when<br>
+using the -autosave option. The default is 'sta' (that is, a directory<br>
+&quot;sta&quot; in the same directory as the MAME executable). If this directory<br>
+does not exist, it will be automatically created.<br>
+<br>
+-snapshot_directory &lt;path&gt;<br>
+<br>
+Specifies a single directory where screen snapshots are stored, when<br>
+requested by the user. The default is 'snap' (that is, a directory<br>
+&quot;snap&quot; in the same directory as the MAME executable). If this<br>
+directory does not exist, it will be automatically created.<br>
+<br>
+-diff_directory &lt;path&gt;<br>
+<br>
+Specifies a single directory where hard drive differencing files are<br>
+stored. Hard drive differencing files store any data that is written<br>
+back to a hard disk image, in order to preserve the original image.<br>
+The differencing files are created at startup when a game with a hard<br>
+disk image. The default is 'diff' (that is, a directory &quot;diff&quot; in the<br>
+same directory as the MAME executable). If this directory does not<br>
+exist, it will be automatically created.<br>
+<br>
+-comment_directory &lt;path&gt;<br>
+<br>
+Specifies a single directory where debugger comment files are stored.<br>
+Debugger comment files are written by the debugger when comments are<br>
+added to the disassembly for a game. The default is 'comments' (that<br>
+is, a directory &quot;comments&quot; in the same directory as the MAME<br>
+executable). If this directory does not exist, it will be<br>
+automatically created.<br>
+<br>
+<br>
+<br>
+Core Filename Options<br>
+---------------------<br>
+<br>
+-cheat_file &lt;filename&gt;<br>
+<br>
+Specifies the name of the cheat database file. The default is<br>
+'cheat.dat'.<br>
+<br>
+<br>
+<br>
+Core state/playback options<br>
+---------------------------<br>
+<br>
+-state &lt;slot&gt;<br>
+<br>
+Immediately after starting the specified game, will cause the save<br>
+state in the specified &lt;slot&gt; to be loaded.<br>
+<br>
+-[no]autosave<br>
+<br>
+When enabled, automatically creates a save state file when exiting<br>
+MAME and automatically attempts to reload it when later starting MAME<br>
+with the same game. This only works for games that have explicitly<br>
+enabled save state support in their driver. The default is OFF<br>
+(-noautosave).<br>
+<br>
+-playback / -pb &lt;filename&gt;<br>
+<br>
+Specifies a file from which to play back a series of game inputs. This<br>
+feature does not work reliably for all games, but can be used to watch<br>
+a previously recorded game session from start to finish. In order to<br>
+make things consistent, you should only record and playback with all<br>
+configuration (.cfg), NVRAM (.nv), and memory card files deleted. The<br>
+default is NULL (no playback).<br>
+<br>
+-record / -rec &lt;filename&gt;<br>
+<br>
+Specifies a file to record all input from a game session. This can be<br>
+used to record a game session for later playback. This feature does<br>
+not work reliably for all games, but can be used to watch a previously<br>
+recorded game session from start to finish. In order to make things<br>
+consistent, you should only record and playback with all configuration<br>
+(.cfg), NVRAM (.nv), and memory card files deleted. The default is<br>
+NULL (no recording).<br>
+<br>
+-snapname &lt;name&gt;<br>
+<br>
+Describes how MAME should name files for snapshots. &lt;name&gt; is a string<br>
+that provides a template that is used to generate a filename. Three<br>
+simple substitutions are provided: the / character represents the<br>
+path separator on any target platform (even Windows); the string %g<br>
+represents the driver name of the current game; and the string %i<br>
+represents an incrementing index. If %i is omitted, then each<br>
+snapshot taken will overwrite the previous one; otherwise, MAME will<br>
+find the next empty value for %i and use that for a filename. The<br>
+default is %g/%i, which creates a separate folder for each game,<br>
+and names the snapshots under it starting with 0000 and increasing<br>
+from there.<br>
+<br>
+-snapsize &lt;width&gt;x&lt;height&gt;<br>
+<br>
+Hard-codes the size for snapshots and movie recording. By default,<br>
+MAME will create snapshots at the game's current resolution in raw<br>
+pixels, and will create movies at the game's starting resolution in<br>
+raw pixels. If you specify this option, then MAME will create both<br>
+snapshots and movies at the size specified, and will bilinear filter<br>
+the result. Note that this size does not automatically rotate if the<br>
+game is vertically oriented. The default is 'auto'.<br>
+<br>
+-snapview &lt;viewname&gt;<br>
+<br>
+Specifies the view to use when rendering snapshots and movies. By<br>
+default, both use a special 'internal' view, which renders a separate<br>
+snapshot per screen or renders movies only of the first screen. By<br>
+specifying this option, you can override this default behavior and<br>
+select a single view that will apply to all snapshots and movies.<br>
+Note that &lt;viewname&gt; does not need to be a perfect match; rather, it<br>
+will select the first view whose name matches all the characters<br>
+specified by &lt;viewname&gt;. For example, -snapview native will match the<br>
+&quot;Native (15:14)&quot; view even though it is not a perfect match.<br>
+&lt;viewname&gt; can also be 'auto', which selects the first view with all<br>
+screens present. The default value is 'internal'.<br>
+<br>
+-mngwrite &lt;filename&gt;<br>
+<br>
+Writes each video frame to the given &lt;filename&gt; in MNG format,<br>
+producing an animation of the game session. Note that -mngwrite only<br>
+writes video frames; it does not save any audio data. Use -wavwrite<br>
+for that, and reassemble the audio/video using offline tools. The<br>
+default is NULL (no recording).<br>
+<br>
+-aviwrite &lt;filename&gt;<br>
+<br>
+Stream video and sound data to the given &lt;filename&gt; in AVI format,<br>
+producing an animation of the game session complete with sound. The<br>
+default is NULL (no recording).<br>
+<br>
+-wavwrite &lt;filename&gt;<br>
+<br>
+Writes the final mixer output to the given &lt;filename&gt; in WAV format,<br>
+producing an audio recording of the game session. The default is<br>
+NULL (no recording).<br>
+<br>
+-[no]burnin<br>
+<br>
+Tracks brightness of the screen during play and at the end of <br>
+emulation generates a PNG that can be used to simulate burn-in<br>
+effects on other games. The resulting PNG is created such that the<br>
+least used-areas of the screen are fully white (since burned-in areas <br>
+are darker, all other areas of the screen must be lightened a touch).<br>
+The intention is that this PNG can be loaded via an artwork file with<br>
+a low alpha (e.g, 0.1-0.2 seems to work well) and blended over the<br>
+entire screen. The PNG files are saved in the snap directory under <br>
+the gamename/burnin-&lt;screen.name&gt;.png. The default is OFF (-noburnin).<br>
+<br>
+<br>
+<br>
+Core performance options<br>
+------------------------<br>
+<br>
+-[no]autoframeskip / -[no]afs<br>
+<br>
+Automatically determines the frameskip level while you're playing the<br>
+game, adjusting it constantly in a frantic attempt to keep the game<br>
+running at full speed. Turning this on overrides the value you have<br>
+set for -frameskip below. The default is OFF (-noautoframeskip).<br>
+<br>
+-frameskip / -fs &lt;level&gt;<br>
+<br>
+Specifies the frameskip value. This is the number of frames out of<br>
+every 12 to drop when running. For example, if you say -frameskip 2,<br>
+then MAME will display 10 out of every 12 frames. By skipping those<br>
+frames, you may be able to get full speed in a game that requires more<br>
+horsepower than your computer has. The default value is -frameskip 0,<br>
+which skips no frames.<br>
+<br>
+-seconds_to_run / -str &lt;seconds&gt;<br>
+<br>
+This option can be used for benchmarking and automated testing. It tells<br>
+MAME to stop execution after a fixed number of seconds. By combining<br>
+this with a fixed set of other command line options, you can set up a<br>
+consistent environment for benchmarking MAME performance. In addition,<br>
+upon exit, the -str option will write a screenshot called final.png<br>
+to the game's snapshot directory.<br>
+<br>
+-[no]throttle<br>
+<br>
+Configures the default thottling setting. When throttling is on, MAME<br>
+attempts to keep the game running at the game's intended speed. When<br>
+throttling is off, MAME runs the game as fast as it can. Note that the<br>
+fastest speed is more often than not limited by your graphics card,<br>
+especially for older games. The default is ON (-throttle).<br>
+<br>
+-[no]sleep<br>
+<br>
+Allows MAME to give time back to the system when running with -throttle.<br>
+This allows other programs to have some CPU time, assuming that the<br>
+game isn't taxing 100% of your CPU resources. This option can<br>
+potentially cause hiccups in performance if other demanding programs<br>
+are running. The default is ON (-sleep).<br>
+<br>
+-speed &lt;factor&gt;<br>
+<br>
+Changes the way MAME throttles gameplay such that the game runs at some<br>
+multiplier of the original speed. A &lt;factor&gt; of 1.0 means to run the<br>
+game at its normal speed. A &lt;factor&gt; of 0.5 means run at half speed,<br>
+and a &lt;factor&gt; of 2.0 means run at 2x speed. Note that changing this<br>
+value affects sound playback as well, which will scale in pitch<br>
+accordingly. The internal resolution of the fraction is two decimal<br>
+places, so a value of 1.002 is the same as 1.0. The default is 1.0.<br>
+<br>
+-[no]refreshspeed / -[no]rs<br>
+<br>
+Allows MAME to dynamically adjust the gameplay speed such that it does<br>
+not exceed the slowest refresh rate for any targeted monitors in your<br>
+system. Thus, if you have a 60Hz monitor and run a game that is<br>
+actually designed to run at 60.6Hz, MAME will dynamically change the<br>
+speed down to 99% in order to prevent sound hiccups or other<br>
+undesirable side effects of running at a slower refresh rate. The<br>
+default is OFF (-norefreshspeed).<br>
+<br>
+<br>
+<br>
+Core rotation options<br>
+---------------------<br>
+<br>
+-[no]rotate<br>
+<br>
+Rotate the game to match its normal state (horizontal/vertical). This<br>
+ensures that both vertically and horizontally oriented games show up<br>
+correctly without the need to rotate your monitor. If you want to keep<br>
+the game displaying 'raw' on the screen the way it would have in the<br>
+arcade, turn this option OFF. The default is ON (-rotate).<br>
+<br>
+-[no]ror<br>
+-[no]rol<br>
+<br>
+Rotate the game screen to the right (clockwise) or left (counter-<br>
+clockwise) relative to either its normal state (if -rotate is<br>
+specified) or its native state (if -norotate is specified). The<br>
+default for both of these options is OFF (-noror -norol).<br>
+<br>
+-[no]flipx<br>
+-[no]flipy<br>
+<br>
+Flip (mirror) the game screen either horizontally (-flipx) or<br>
+vertically (-flipy). The flips are applied after the -rotate and<br>
+-ror/-rol options are applied. The default for both of these options<br>
+is OFF (-noflipx -noflipy).<br>
+<br>
+-[no]autoror<br>
+-[no]autorol<br>
+<br>
+These options are designed for use with pivoting screens that only<br>
+pivot in a single direction. If your screen only pivots clockwise,<br>
+use -autorol to ensure that the game will fill the screen either<br>
+horizontally or vertically in one of the directions you can handle.<br>
+If your screen only pivots counter-clockwise, use -autoror.<br>
+<br>
+<br>
+<br>
+Core artwork options<br>
+--------------------<br>
+<br>
+-[no]artwork_crop / -[no]artcrop<br>
+<br>
+Enable cropping of artwork to the game screen area only. This works<br>
+best with -video gdi or -video d3d, and means that vertically oriented<br>
+games running full screen can display their artwork to the left and<br>
+right sides of the screen. This does not work with -video ddraw<br>
+because of the way the game screens are rendered and scaled after the<br>
+fact. This option can also be controlled via the Video Options menu in<br>
+the user interface. The default is OFF (-noartwork_crop).<br>
+<br>
+-[no]use_backdrops / -[no]backdrop<br>
+<br>
+Enables/disables the display of backdrops. The default is ON<br>
+(-use_backdrops).<br>
+<br>
+-[no]use_overlays / -[no]overlay<br>
+<br>
+Enables/disables the display of overlays. The default is ON<br>
+(-use_overlays).<br>
+<br>
+-[no]use_bezels / -[no]bezel<br>
+<br>
+Enables/disables the display of bezels. The default is ON<br>
+(-use_bezels).<br>
+<br>
+<br>
+<br>
+Core screen options<br>
+-------------------<br>
+<br>
+-brightness &lt;value&gt;<br>
+<br>
+Controls the default brightness, or black level, of the game screens.<br>
+This option does not affect the artwork or other parts of the display.<br>
+Using the MAME UI, you can individually set the brightness for each<br>
+game screen; this option controls the initial value for all visible<br>
+game screens. The standard value is 1.0. Selecting lower values (down<br>
+to 0.1) will produce a darkened display, while selecting higher values<br>
+(up to 2.0) will give a brighter display. The default is 1.0.<br>
+<br>
+-contrast &lt;value&gt;<br>
+<br>
+Controls the contrast, or white level, of the game screens. This<br>
+option does not affect the artwork or other parts of the display.<br>
+Using the MAME UI, you can individually set the contrast for each<br>
+game screen; this option controls the initial value for all visible<br>
+game screens. The standard value is 1.0. Selecting lower values (down<br>
+to 0.1) will produce a dimmer display, while selecting higher values<br>
+(up to 2.0) will give a more saturated display. The default is 1.0.<br>
+<br>
+-gamma &lt;value&gt;<br>
+<br>
+Controls the gamma, which produces a potentially nonlinear black to<br>
+white ramp, for the game screens. This option does not affect the<br>
+artwork or other parts of the display. Using the MAME UI, you can<br>
+individually set the gamma for each game screen; this option controls<br>
+the initial value for all visible game screens. The standard value is<br>
+1.0, which gives a linear ramp from black to white. Selecting lower<br>
+values (down to 0.1) will increase the nonlinearity toward black,<br>
+while selecting higher values (up to 3.0) will push the nonlinearity<br>
+toward white. The default is 1.0.<br>
+<br>
+-pause_brightness &lt;value&gt;<br>
+<br>
+This controls the brightness level when MAME is paused. The default<br>
+value is 0.65.<br>
+<br>
+<br>
+<br>
+Core vector options<br>
+-------------------<br>
+<br>
+-[no]antialias / -[no]aa<br>
+<br>
+Enables antialiased line rendering for vector games. The default is ON<br>
+(-antialias).<br>
+<br>
+-beam &lt;width&gt;<br>
+<br>
+Sets the width of the vectors. This is a scaling factor against the<br>
+standard vector width. A value of 1.0 will keep the default vector<br>
+line width. Smaller values will reduce the width, and larger values<br>
+will increase the width. The default is 1.0.<br>
+<br>
+-flicker &lt;value&gt;<br>
+<br>
+Simulates a vector &quot;flicker&quot; effect, similar to a vector monitor that<br>
+needs adjustment. This option requires a float argument in the range<br>
+of 0.00 - 100.00 (0=none, 100=maximum). The default is 0.<br>
+<br>
+<br>
+<br>
+Core sound options<br>
+------------------<br>
+<br>
+-[no]sound<br>
+<br>
+Enable or disable sound altogether. The default is ON (-sound).<br>
+<br>
+-samplerate &lt;value&gt; / -sr &lt;value&gt;<br>
+<br>
+Sets the audio sample rate. Smaller values (e.g. 11025) cause lower<br>
+audio quality but faster emulation speed. Higher values (e.g. 48000)<br>
+cause higher audio quality but slower emulation speed. The default is<br>
+48000.<br>
+<br>
+-[no]samples<br>
+<br>
+Use samples if available. The default is ON (-samples).<br>
+<br>
+-volume / -vol &lt;value&gt;<br>
+<br>
+Sets the startup volume. It can later be changed with the user<br>
+interface (see Keys section). The volume is an attenuation in dB:<br>
+e.g., &quot;-volume -12&quot; will start with -12dB attenuation. The default<br>
+is 0.<br>
+<br>
+<br>
+<br>
+Core input options<br>
+------------------<br>
+<br>
+-[no]coin_lockout / -[no]coinlock<br>
+<br>
+Enables simulation of the &quot;coin lockout&quot; feature that is implmeneted<br>
+on a number of game PCBs. It was up to the operator whether or not<br>
+the coin lockout outputs were actually connected to the coin<br>
+mechanisms. If this feature is enabled, then attempts to enter a coin<br>
+while the lockout is active will fail and will display a popup message<br>
+in the user interface. If this feature is disabled, the coin lockout<br>
+signal will be ignored. The default is ON (-coin_lockout).<br>
+<br>
+-ctrlr &lt;controller&gt;<br>
+<br>
+Enables support for special controllers. Configuration files are<br>
+loaded from the ctrlrpath. They are in the same format as the .cfg<br>
+files that are saved, but only control configuration data is read<br>
+from the file. The default is NULL (no controller file).<br>
+<br>
+-[no]mouse<br>
+<br>
+Controls whether or not MAME makes use of mouse controllers. When<br>
+this is enabled, you will likely be unable to use your mouse for other<br>
+purposes until you exit or pause the game. The default is OFF<br>
+(-nomouse).<br>
+<br>
+-[no]joystick / -[no]joy<br>
+<br>
+Controls whether or not MAME makes use of joystick/gamepad controllers.<br>
+When this is enabled, MAME will ask DirectInput about which<br>
+controllers are connected. The default is OFF (-nojoystick).<br>
+<br>
+-[no]lightgun / -[no]gun<br>
+<br>
+Controls whether or not MAME makes use of lightgun controllers.<br>
+Note that most lightguns map to the mouse, so using -lightgun and<br>
+-mouse together may produce strange results. The default is OFF<br>
+(-nolightgun).<br>
+<br>
+-[no]multikeyboard / -[no]multikey<br>
+<br>
+Determines whether MAME differentiates between multiple keyboards.<br>
+Some systems may report more than one keyboard; by default, the data<br>
+from all of these keyboards is combined so that it looks like a single<br>
+keyboard. Turning this option on will enable MAME to report keypresses<br>
+on different keyboards independently. The default is OFF<br>
+(-nomultikeyboard).<br>
+<br>
+-[no]multimouse<br>
+<br>
+Determines whether MAME differentiates between multiple mice. Some<br>
+systems may report more than one mouse device; by default, the data<br>
+from all of these mice is combined so that it looks like a single<br>
+mouse. Turning this option on will enable MAME to report mouse<br>
+movement and button presses on different mice independently. The<br>
+default is OFF (-nomultimouse).<br>
+<br>
+-[no]steadykey / -[no]steady<br>
+<br>
+Some games require two or more buttons to be pressed at exactly the<br>
+same time to make special moves. Due to limitations in the keyboard<br>
+hardware, it can be difficult or even impossible to accomplish that<br>
+using the standard keyboard handling. This option selects a different<br>
+handling that makes it easier to register simultaneous button presses,<br>
+but has the disadvantage of making controls less responsive. The<br>
+default is OFF (-nosteadykey)<br>
+<br>
+-[no]offscreen_reload / -[no]reload<br>
+<br>
+Controls whether or not MAME treats a second button input from a<br>
+lightgun as a reload signal. In this case, MAME will report the gun's<br>
+position as (0,MAX) with the trigger held, which is equivalent to an<br>
+offscreen reload. This is only needed for games that required you to<br>
+shoot offscreen to reload, and then only if your gun does not support<br>
+off screen reloads. The default is OFF (-nooffscreen_reload).<br>
+<br>
+-joystick_map &lt;map&gt; / -joymap &lt;map&gt;<br>
+<br>
+Controls how joystick values map to digital joystick controls. MAME<br>
+accepts all joystick input from the system as analog data. For true<br>
+analog joysticks, this needs to be mapped down to the usual 4-way or<br>
+8-way digital joystick values. To do this, MAME divides the analog<br>
+range into a 9x9 grid. It then takes the joystick axis position (for<br>
+X and Y axes only), maps it to this grid, and then looks up a<br>
+translation from a joystick map. This parameter allows you to specify<br>
+the map. The default is 'auto', which means that a standard 8-way,<br>
+4-way, or 4-way diagonal map is selected automatically based on the<br>
+input port configuration of the current game.<br>
+<br>
+Maps are defined as a string of numbers and characters. Since the grid<br>
+is 9x9, there are a total of 81 characters necessary to define a<br>
+complete map. Below is an example map for an 8-way joystick:<br>
+<br>
+777888999 Note that the numeric digits correspond to the keys<br>
+777888999 on a numeric keypad. So '7' maps to up+left, '4' maps<br>
+777888999 to left, '5' maps to neutral, etc. In addition to the<br>
+444555666 numeric values, you can specify the character 's',<br>
+444555666 which means &quot;sticky&quot;. In this case, the value of the<br>
+444555666 map is the same as it was the last time a non-sticky<br>
+111222333 value was read.<br>
+111222333<br>
+111222333<br>
+<br>
+To specify the map for this parameter, you can specify a string of<br>
+rows separated by a '.' (which indicates the end of a row), like so:<br>
+<br>
+777888999.777888999.777888999.444555666.444555666.444555666.<br>
+111222333.111222333.111222333<br>
+<br>
+However, this can be reduced using several shorthands supported by the<br>
+&lt;map&gt; parameter. If information about a row is missing, then it is<br>
+assumed that any missing data in columns 5-9 are left/right symmetric<br>
+with data in columns 0-4; and any missing data in colums 0-4 is<br>
+assumed to be copies of the previous data. The same logic applies to<br>
+missing rows, except that up/down symmetry is assumed.<br>
+<br>
+By using these shorthands, the 81 character map can be simply<br>
+specified by this 11 character string: 7778...4445<br>
+<br>
+Looking at the first row, 7778 is only 4 characters long. The 5th<br>
+entry can't use symmetry, so it is assumed to be equal to the previous<br>
+character '8'. The 6th character is left/right symmetric with the 4th<br>
+character, giving an '8'. The 7th character is left/right symmetric<br>
+with the 3rd character, giving a '9' (which is '7' with left/right<br>
+flipped). Eventually this gives the full 777888999 string of the row.<br>
+<br>
+The second and third rows are missing, so they are assumed to be<br>
+identical to the first row. The fourth row decodes similarly to the<br>
+first row, producing 444555666. The fifth row is missing so it is<br>
+assumed to be the same as the fourth.<br>
+<br>
+The remaining three rows are also missing, so they are assumed to be<br>
+the up/down mirrors of the first three rows, giving three final rows<br>
+of 111222333.<br>
+<br>
+-joystick_deadzone &lt;value&gt; / -joy_deadzone &lt;value&gt; / -jdz &lt;value&gt;<br>
+<br>
+If you play with an analog joystick, the center can drift a little.<br>
+joystick_deadzone tells how far along an axis you must move before the<br>
+axis starts to change. This option expects a float in the range of<br>
+0.0 to 1.0. Where 0 is the center of the joystick and 1 is the outer<br>
+limit. The default is 0.3.<br>
+<br>
+-joystick_saturation &lt;value&gt; / joy_saturation &lt;value&gt; / -jsat &lt;value&gt;<br>
+<br>
+If you play with an analog joystick, the ends can drift a little,<br>
+and may not match in the +/- directions. joystick_saturation tells how<br>
+far along an axis movement change will be accepted before it reaches<br>
+the maximum range. This option expects a float in the range of 0.0 to<br>
+1.0, where 0 is the center of the joystick and 1 is the outer limit.<br>
+The default is 0.85.<br>
+<br>
+<br>
+<br>
+Core input automatic enable options<br>
+-----------------------------------<br>
+<br>
+-paddle_device &lt;keyboard|mouse|joystick|lightgun|none&gt; / -paddle<br>
+-adstick_device &lt;keyboard|mouse|joystick|lightgun|none&gt; / -adstick<br>
+-pedal_device &lt;keyboard|mouse|joystick|lightgun|none&gt; / -pedal<br>
+-dial_device &lt;keyboard|mouse|joystick|lightgun|none&gt; / -dial<br>
+-trackball_device &lt;keyboard|mouse|joystick|lightgun|none&gt; / -trackball<br>
+-lightgun_device &lt;keyboard|mouse|joystick|lightgun|none&gt;<br>
+-positional_device &lt;keyboard|mouse|joystick|lightgun|none&gt;<br>
+<br>
+Each of these options controls autoenabling the mouse, joystick, or<br>
+lightgun depending on the presence of a particular class of analog<br>
+control for a particular game. For example, if you specify the option<br>
+-paddle mouse, then any game that has a paddle control will<br>
+automatically enable mouse controls just as if you had explicitly<br>
+specified -mouse. Note that these controls override the values of<br>
+-[no]mouse, -[no]joystick, etc.<br>
+<br>
+<br>
+<br>
+Debugging options<br>
+-----------------<br>
+<br>
+-[no]log<br>
+<br>
+Creates a file called error.log which contains all of the internal<br>
+log messages generated by the MAME core and game drivers. The default<br>
+is OFF (-nolog).<br>
+<br>
+-[no]verbose / -[no]v<br>
+<br>
+Displays internal diagnostic information. This information is very<br>
+useful for debugging problems with your configuration. IMPORTANT: when<br>
+reporting bugs, please run with mame -verbose and include the<br>
+resulting information. The default is OFF (-noverbose).<br>
+<br>
+-[no]update_in_pause<br>
+<br>
+Enables updating of the main screen bitmap while the game is paused.<br>
+This means that the VIDEO_UPDATE callback will be called repeatedly<br>
+during pause, which can be useful for debugging. The default is OFF<br>
+(-noupdate_in_pause).<br>
+<br>
+-[no]debug<br>
+<br>
+Activates the integrated debugger. By default, the debugger is entered<br>
+by pressing the tilde (~) key during emulation. It is also entered<br>
+immediately at startup. The default is OFF (-nodebug).<br>
+<br>
+-debugscript &lt;filename&gt;<br>
+<br>
+Specifies a file that contains a list of debugger commands to execute<br>
+immediately upon startup. The default is NULL (no commands).<br>
+<br>
+<br>
+<br>
+Core misc options<br>
+-----------------<br>
+<br>
+-bios &lt;biosname&gt;<br>
+<br>
+Specifies the specific BIOS to use with the current game, for game<br>
+systems that make use of a BIOS. The -listxml output will list all of<br>
+the possible BIOS names for a game. The default is 'default'.<br>
+<br>
+-[no]cheat / -[no]c<br>
+<br>
+Enables the reading of the cheat database, if present, and the Cheat<br>
+menu in the user interface. The default is OFF (-nocheat).<br>
+<br>
+-[no]skip_gameinfo<br>
+<br>
+Forces MAME to skip displaying the game info screen. The default is<br>
+OFF (-noskip_gameinfo).<br>
+<br>
+</span></span><span class="style2"><strong>This file describes Windows-specific
+usage information about MAME. It is<br>
+intended to cover aspects of using and configuring the program that are<br>
+specific to running MAME from the command line on a Windows-based system.<br>
+For common options that apply to all systems, please see config.txt.</strong><br>
+<br>
+<br>
+<br>
+Default Keys<br>
+------------<br>
+<br>
+In addition to the keys described in config.txt, the following additional<br>
+keys are defined for Windows versions of MAME:<br>
+<br>
+<br>
+Alt+Enter Toggles between full-screen and windowed mode.<br>
+<br>
+<br>
+<br>
+Windows debugging options<br>
+-------------------------<br>
+<br>
+-[no]oslog<br>
+<br>
+Outputs the error.log data to the Windows debugger. This can be used at<br>
+the same time as -log to output the log data to both targets as well.<br>
+Default is OFF (-nooslog).<br>
+<br>
+<br>
+<br>
+Windows performance options<br>
+---------------------------<br>
+<br>
+-priority &lt;priority&gt;<br>
+<br>
+Sets the thread priority for the MAME threads. By default the priority<br>
+is left alone to guarantee proper cooperation with other applications.<br>
+The valid range is -15 to 1, with 1 being the highest priority. The<br>
+default is 0 (NORMAL priority).<br>
+<br>
+-[no]multithreading / -[no]mt<br>
+<br>
+Enables multithreading within MAME. At the moment, this causes the<br>
+window and all DirectDraw/Direct3D code to execute on a second thread,<br>
+which can improve performance on hyperthreaded and multicore systems.<br>
+The default is OFF (-nomultithreading).<br>
+<br>
+-numprocessors &lt;auto|value&gt;<br>
+Specify the number of processors to use for work queues. Specifying<br>
+&quot;auto&quot; will use the value reported by the system or environment <br>
+variable OSDPROCESSORS. To avoid abuse, this value is internally limited<br>
+to 4 times the number of processors reported by the system. <br>
+The default is &quot;auto&quot;.<br>
+<br>
+<br>
+Windows video options<br>
+---------------------<br>
+<br>
+-video &lt;gdi|ddraw|d3d|none&gt;<br>
+<br>
+Specifies which video subsystem to use for drawing. By specifying 'gdi'<br>
+here, you tell MAME to render video using standard Windows graphics<br>
+drawing calls. This is the slowest but most compatible option.<br>
+Specifying 'ddraw' instructs MAME to use DirectDraw for rendering.<br>
+This causes MAME to render everything at a lower resolution and then<br>
+upscale the results at the end. This produces high performance,<br>
+especially on older or low-power video cards, but has a noticeably<br>
+lower output quality. Specifying 'd3d' tells MAME to use Direct3D for<br>
+rendering. This produces the highest quality output and enables all<br>
+rendering options. It is recommended if you have a recent (2002+)<br>
+video card. The final option 'none' displays no windows and does no<br>
+drawing. This is primarily present for doing CPU benchmarks without<br>
+the overhead of the video system. The default is d3d.<br>
+<br>
+-numscreens &lt;count&gt;<br>
+<br>
+Tells MAME how many output windows to create. For most games, a single<br>
+output window is all you need, but some games originally used multiple<br>
+screens. Each screen (up to 4) has its own independent settings for<br>
+physical monitor, aspect ratio, resolution, and view, which can be<br>
+set using the options below. The default is 1.<br>
+<br>
+-[no]window<br>
+<br>
+Run MAME in either a window or full screen. The default is OFF<br>
+(-nowindow).<br>
+<br>
+-[no]maximize / -[no]max<br>
+<br>
+Controls initial window size in windowed mode. If it is set on, the<br>
+window will initially be set to the maximum supported size when you<br>
+start MAME. If it is turned off, the window will start out at the<br>
+smallest supported size. This option only has an effect when the<br>
+-window option is used. The default is ON (-maximize).<br>
+<br>
+-[no]keepaspect / -[no]ka<br>
+<br>
+Enables aspect ratio enforcement. When this option is on, the game's<br>
+proper aspect ratio (generally 4:3 or 3:4) is enforced, so you get the<br>
+game looking like it should. When running in a window with this option<br>
+on, you can only resize the window to the proper aspect ratio, unless<br>
+you are holding down the CONTROL key. By turning the option off, the<br>
+aspect ratio is allowed to float. In full screen mode, this means that<br>
+all games will stretch to the full screen size (even vertical games).<br>
+In window mode, it means that you can freely resize the window without<br>
+any constraints. The default is ON (-keepaspect).<br>
+<br>
+-prescale &lt;amount&gt;<br>
+<br>
+Controls the size of the screen images when they are passed off to the<br>
+graphics system for scaling. At the minimum setting of 1, the screen<br>
+is rendered at its original resolution before being scaled. At higher<br>
+settings, the screen is expanded by a factor of &lt;amount&gt; before being<br>
+scaled. With -video ddraw or -video d3d, this produces a less blurry<br>
+image at the expense of some speed. In -video ddraw mode, this also<br>
+increases the effective resolution of non-screen elements such as<br>
+artwork and fonts. The default is 1.<br>
+<br>
+-effect &lt;filename&gt;<br>
+<br>
+Specifies a single PNG file that is used as an overlay over any game<br>
+screens in the video display. This PNG file is assumed to live in the<br>
+root of one of the artpath directories. The pattern in the PNG file is<br>
+repeated both horizontally and vertically to cover the entire game<br>
+screen areas (but not any external artwork), and is rendered at<br>
+the target resolution of the game image. For -video gdi and -video d3d<br>
+modes, this means that one pixel in the PNG will map to one pixel on<br>
+your output display. For -video ddraw, this means that one pixel in the<br>
+PNG will map to one pixel in the prescaled game screen. If you wish to<br>
+use an effect that requires mapping n PNG pixels to each game screen<br>
+pixel with -video ddraw, you need to specify a -prescale factor of n as<br>
+well. The RGB values of each pixel in the PNG are multiplied against the<br>
+RGB values of the target screen. The default is 'none', meaning no<br>
+effect.<br>
+<br>
+-[no]waitvsync<br>
+<br>
+Waits for the refresh period on your computer's monitor to finish<br>
+before starting to draw video to your screen. If this option is off,<br>
+MAME will just draw to the screen at any old time, even in the middle<br>
+of a refresh cycle. This can cause &quot;tearing&quot; artifacts, where the top<br>
+portion of the screen is out of sync with the bottom portion. Tearing<br>
+is not noticeable on all games, and some people hate it more than<br>
+others. However, if you turn this option on, you will waste more of<br>
+your CPU cycles waiting for the proper time to draw, so you will see a<br>
+performance hit. You should only need to turn this on in windowed mode.<br>
+In full screen mode, it is only needed if -triplebuffer does not<br>
+remove the tearing, in which case you should use -notriplebuffer<br>
+-waitvsync. Note that this option does not work with -video gdi mode.<br>
+The default is OFF (-nowaitvsync).<br>
+<br>
+-[no]syncrefresh<br>
+<br>
+Enables speed throttling only to the refresh of your monitor. This<br>
+means that the game's actual refresh rate is ignored; however, the<br>
+sound code still attempts to keep up with the game's original refresh<br>
+rate, so you may encounter sound problems. This option is intended<br>
+mainly for those who have tweaked their video card's settings to<br>
+provide carefully matched refresh rate options. Note that this option<br>
+does not work with -video gdi mode.The default is OFF (-nosyncrefresh).<br>
+<br>
+<br>
+<br>
+DirectDraw-specific options<br>
+---------------------------<br>
+<br>
+-[no]hwstretch / -[no]hws<br>
+<br>
+When enabled, MAME uses the hardware stretching abilities of your<br>
+video card to scale the game image and associated artwork to the<br>
+target resolution. Depending on the quality of your graphic card and<br>
+its drivers, this may be a fractional, antialiased scaling (nice) or<br>
+an integer, blocky scaling (not so nice), in which case you might want<br>
+to disable this option. In addition, if you have configured specific<br>
+arcade-like video modes for MAME and don't want MAME to perform any<br>
+non-integral scaling of the image, you should also disable this option.<br>
+The default is ON (-hwstretch).<br>
+<br>
+<br>
+<br>
+Direct3D-specific options<br>
+-------------------------<br>
+<br>
+-d3dversion &lt;version&gt;<br>
+<br>
+MAME supports both Direct3D 9 and Direct3D 8 for maximum compatibility.<br>
+By default, it will automatically detect which one it can use and use<br>
+that version exclusively. You can override MAME's selection with this<br>
+option. It is primarily intended as a means for the MAME developers to<br>
+test compatibility with older hardware; for the most part, there is no<br>
+reason to alter this setting. The default is 9.<br>
+<br>
+-[no]filter / -[no]d3dfilter / -[no]flt<br>
+<br>
+Enable bilinear filtering on the game screen graphics. When disabled,<br>
+point filtering is applied, which is crisper but leads to scaling<br>
+artifacts. If you don't like the filtered look, you are probably better<br>
+off increasing the -prescale value rather than turning off filtering<br>
+altogether. The default is ON (-filter).<br>
+<br>
+<br>
+<br>
+Per-window options<br>
+------------------<br>
+<br>
+-screen &lt;display&gt;<br>
+-screen0 &lt;display&gt;<br>
+-screen1 &lt;display&gt;<br>
+-screen2 &lt;display&gt;<br>
+-screen3 &lt;display&gt;<br>
+<br>
+Specifies which physical monitor on your system you wish to have each<br>
+window use by default. In order to use multiple windows, you must have<br>
+increased the value of the -numscreens option. The name of each<br>
+display in your system can be determined by running MAME with the<br>
+-verbose option. The display names are typically in the format of:<br>
+\\.\DISPLAYn, where 'n' is a number from 1 to the number of connected<br>
+monitors. The default value for these options is 'auto', which means<br>
+that the first window is placed on the first display, the second<br>
+window on the second display, etc.<br>
+<br>
+The -screen0, -screen1, -screen2, -screen3 parameters apply to the<br>
+specific window. The -screen parameter applies to all windows. The<br>
+window-specific options override values from the all window option.<br>
+<br>
+-aspect &lt;width:height&gt; / -screen_aspect &lt;num:den&gt;<br>
+-aspect0 &lt;width:height&gt;<br>
+-aspect1 &lt;width:height&gt;<br>
+-aspect2 &lt;width:height&gt;<br>
+-aspect3 &lt;width:height&gt;<br>
+<br>
+Specifies the physical aspect ratio of the physical monitor for each<br>
+window. In order to use multiple windows, you must have increased the<br>
+value of the -numscreens option. The physical aspect ratio can be<br>
+determined by measuring the width and height of the visible screen<br>
+image and specifying them separated by a colon. The default value for<br>
+these options is 'auto', which means that MAME assumes the aspect<br>
+ratio is proportional to the number of pixels in the desktop video<br>
+mode for each monitor.<br>
+<br>
+The -aspect0, -aspect1, -aspect2, -aspect3 parameters apply to the<br>
+specific window. The -aspect parameter applies to all windows. The<br>
+window-specific options override values from the all window option.<br>
+<br>
+-resolution &lt;widthxheight[@refresh]&gt; / -r &lt;widthxheight[@refresh]&gt;<br>
+-resolution0 &lt;widthxheight[@refresh]&gt; / -r0 &lt;widthxheight[@refresh]&gt;<br>
+-resolution1 &lt;widthxheight[@refresh]&gt; / -r1 &lt;widthxheight[@refresh]&gt;<br>
+-resolution2 &lt;widthxheight[@refresh]&gt; / -r2 &lt;widthxheight[@refresh]&gt;<br>
+-resolution3 &lt;widthxheight[@refresh]&gt; / -r3 &lt;widthxheight[@refresh]&gt;<br>
+<br>
+Specifies an exact resolution to run in. In full screen mode, MAME<br>
+will try to use the specific resolution you request. The width and<br>
+height are required; the refresh rate is optional. If omitted or<br>
+set to 0, MAME will determine the mode auomatically. For example,<br>
+-resolution 640x480 will force 640x480 resolution, but MAME is free to<br>
+choose the refresh rate. Similarly, -resolution 0x0@60 will force a<br>
+60Hz refresh rate, but allows MAME to choose the resolution. The<br>
+string &quot;auto&quot; is also supported, and is equivalent to 0x0@0. In window<br>
+mode, this resolution is used as a maximum size for the window. This<br>
+option requires the -switchres option as well in order to actually<br>
+enable resolution switching with -video ddraw or -video d3d. The<br>
+default value for these options is 'auto'.<br>
+<br>
+The -resolution0, -resolution1, -resolution2, -resolution3 parameters<br>
+apply to the specific window. The -resolution parameter applies to all<br>
+windows. The window-specific options override values from the all<br>
+window option.<br>
+<br>
+-view &lt;viewname&gt;<br>
+-view0 &lt;viewname&gt;<br>
+-view1 &lt;viewname&gt;<br>
+-view2 &lt;viewname&gt;<br>
+-view3 &lt;viewname&gt;<br>
+<br>
+Specifies the initial view setting for each window. The &lt;viewname&gt;<br>
+does not need to be a perfect match; rather, it will select the first<br>
+view whose name matches all the characters specified by &lt;viewname&gt;.<br>
+For example, -view native will match the &quot;Native (15:14)&quot; view even<br>
+though it is not a perfect match. The value 'auto' is also supported,<br>
+and requests that MAME perform a default selection. The default value<br>
+for these options is 'auto'.<br>
+<br>
+The -view0, -view1, -view2, -view3 parameters apply to the<br>
+specific window. The -view parameter applies to all windows. The<br>
+window-specific options override values from the all window option.<br>
+<br>
+<br>
+<br>
+Full screen options<br>
+-------------------<br>
+<br>
+-[no]triplebuffer / -[no]tb<br>
+<br>
+Enables or disables &quot;triple buffering&quot;. Normally, MAME just draws<br>
+directly to the screen, without any fancy buffering. But with this<br>
+option enabled, MAME creates three buffers to draw to, and cycles<br>
+between them in order. It attempts to keep things flowing such that one<br>
+buffer is currently displayed, the second buffer is waiting to be<br>
+displayed, and the third buffer is being drawn to. -triplebuffer will<br>
+override -waitvsync, if the buffer is sucessfully created. This option<br>
+does not work with -video gdi. The default is OFF (-notriplebuffer).<br>
+<br>
+-[no]switchres<br>
+<br>
+Enables resolution switching. This option is required for the<br>
+-resolution* options to switch resolutions in full screen mode. On<br>
+modern video cards, there is little reason to switch resolutions unless<br>
+you are trying to achieve the &quot;exact&quot; pixel resolutions of the original<br>
+games, which requires significant tweaking. This option is also useful<br>
+on LCD displays, since they run with a fixed resolution and switching<br>
+resolutions on them is just silly. This option does not work with<br>
+-video gdi. The default is OFF (-noswitchres).<br>
+<br>
+-full_screen_brightness / -fsb &lt;value&gt;<br>
+<br>
+Controls the brightness, or black level, of the entire display. The<br>
+standard value is 1.0. Selecting lower values (down to 0.1) will produce<br>
+a darkened display, while selecting higher values (up to 2.0) will<br>
+give a brighter display. Note that not all video cards have hardware to<br>
+support this option. This option does not work with -video gdi. The<br>
+default is 1.0.<br>
+<br>
+-full_screen_contrast / -fsc &lt;value&gt;<br>
+<br>
+Controls the contrast, or white level, of the entire display. The<br>
+standard value is 1.0. Selecting lower values (down to 0.1) will produce<br>
+a dimmer display, while selecting higher values (up to 2.0) will<br>
+give a more saturated display. Note that not all video cards have<br>
+hardware to support this option. This option does not work with<br>
+-video gdi. The default is 1.0.<br>
+<br>
+-full_screen_gamma / -fsg &lt;value&gt;<br>
+<br>
+Controls the gamma, which produces a potentially nonlinear black to<br>
+white ramp, for the entire display. The standard value is 1.0, which<br>
+gives a linear ramp from black to white. Selecting lower values (down<br>
+to 0.1) will increase the nonlinearity toward black, while selecting<br>
+higher values (up to 3.0) will push the nonlinearity toward white. Note<br>
+that not all video cards have hardware to support this option. This<br>
+option does not work with -video gdi. The default is 1.0.<br>
+<br>
+<br>
+<br>
+Windows sound options<br>
+---------------------<br>
+<br>
+-audio_latency &lt;value&gt;<br>
+<br>
+This controls the amount of latency built into the audio streaming. By<br>
+default MAME tries to keep the DirectSound audio buffer between 1/5 and<br>
+2/5 full. On some systems, this is pushing it too close to the edge,<br>
+and you get poor sound sometimes. The latency parameter controls the<br>
+lower threshold. The default is 1 (meaning lower=1/5 and upper=2/5).<br>
+Set it to 2 (-audio_latency 2) to keep the sound buffer between 2/5 and<br>
+3/5 full. If you crank it up to 4, you can definitely notice the lag.<br>
+<br>
+<br>
+<br>
+Input device options<br>
+--------------------<br>
+<br>
+-[no]dual_lightgun / -[no]dual<br>
+<br>
+Controls whether or not MAME attempts to track two lightguns connected<br>
+at the same time. This option requires -lightgun. This option is a hack<br>
+for supporting older dual lightgun setups. If you have multiple<br>
+lightguns connected, you will probably just need to enable -mouse and<br>
+configure each lightgun independently. The default is OFF<br>
+(-nodual_lightgun).<br>
+</span>
+
+
+</html>
diff --git a/docs/release/src/osd/winui/help/docs/Mame License.htm b/docs/release/src/osd/winui/help/docs/Mame License.htm
new file mode 100644
index 00000000000..23c0accfef4
--- /dev/null
+++ b/docs/release/src/osd/winui/help/docs/Mame License.htm
@@ -0,0 +1,57 @@
+
+<head>
+<style type="text/css">
+.style1 {
+ font-family: Arial;
+ font-size: x-small;
+}
+</style>
+</head>
+
+<body background="../images/bkground.gif">
+
+<div id="outer">
+ <div id="center">
+ <div class="content">
+ <font face="Arial"><b>Copyright © 1997-2010, Nicola Salmoria
+ and the MAME team<br>
+ All rights reserved.</b></font><font face="Arial" size="2"> </font>
+ <p><span class="style1">Unless otherwise explicitly stated, all code
+ in MAME is released under the<br>
+ following license:</span></p>
+ <p><font face="Arial" size="2">Redistribution and use of this code
+ or any derivative works are permitted provided that the following
+ conditions are met: </font></p>
+ <ul>
+ <li><font face="Arial" size="2">Redistributions may not be sold,
+ nor may they be used in a commercial product or activity. </font>
+ </li>
+ <li><font face="Arial" size="2">Redistributions that are
+ modified from the original source must include the complete
+ source code, including the source code for all components used
+ by a binary built from the modified sources. However, as a
+ special exception, the source code distributed need not include
+ anything that is normally distributed (in either source or
+ binary form) with the major components (compiler, kernel, and so
+ on) of the operating system on which the executable runs, unless
+ that component itself accompanies the executable. </font></li>
+ <li><font face="Arial" size="2">Redistributions must reproduce
+ the above copyright notice, this list of conditions and the
+ following disclaimer in the documentation and/or other materials
+ provided with the distribution. </font></li>
+ </ul>
+ <p><font face="Arial" size="2">THIS SOFTWARE IS PROVIDED BY THE
+ COPYRIGHT HOLDERS AND CONTRIBUTORS &quot;AS IS&quot; AND ANY EXPRESS OR
+ IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ SUCH DAMAGE. </font></div>
+ </div>
+</div>
diff --git a/docs/release/src/osd/winui/help/docs/Mame Statement of Purpose.htm b/docs/release/src/osd/winui/help/docs/Mame Statement of Purpose.htm
new file mode 100644
index 00000000000..95312c7012b
--- /dev/null
+++ b/docs/release/src/osd/winui/help/docs/Mame Statement of Purpose.htm
@@ -0,0 +1,79 @@
+<body background="../images/bkground.gif">
+
+<div id="outer">
+ <div id="center">
+ <div class="content">
+ <b>
+ <font face="Arial">MAME, the Multiple Arcade Machine
+ Emulator<br>
+ Copyright © 1997-2010 by Nicola Salmoria and the MAME team </font>
+ </b>
+ <h2><font face="Arial" size="3">I. Purpose</font></h2>
+ <p><font face="Arial" size="2">MAME is strictly a non-profit
+ project. Its main purpose is to be a reference to the inner workings
+ of the emulated arcade machines. This is done both for educational
+ purposes and for preservation purposes, in order to prevent many
+ historical games from disappearing forever once the hardware they
+ run on stops working. Of course, in order to preserve the games and
+ demonstrate that the emulated behavior matches the original, you
+ must also be able to actually play the games. This is considered a
+ nice side effect, and is not MAME's primary focus. </font></p>
+ <p><font face="Arial" size="2">It is not our intention to infringe
+ on any copyrights or patents on the original games. All of MAME's
+ source code is either our own or freely available. To operate, the
+ emulator requires images of the original ROMs, CDs, or hard disks
+ from the arcade machines, which must be provided by the user. No
+ portions of the original game code are included in the executable.
+ </font></p>
+ <h2><font face="Arial" size="3">II. Cost</font></h2>
+ <p><font face="Arial" size="2">MAME is free. Its source code is
+ free. Selling either is not allowed. </font></p>
+ <h2><font face="Arial" size="3">III. Image Files</font></h2>
+ <p><font face="Arial" size="2">ROM, CD, and hard disk images are all
+ copyrighted material. They cannot be distributed without the
+ explicit permission of the copyright owner. They are not &quot;abandonware&quot;,
+ nor have any of the games supported by MAME passed out of copyright.
+ </font></p>
+ <p><font face="Arial" size="2">MAME is not intended to be used as a
+ tool for mass copyright infringement. Therefore, it is strongly
+ against the authors' wishes to sell, advertise, or link to resources
+ that provide illegal copies of ROM, CD, or hard disk images. </font>
+ </p>
+ <h2><font face="Arial" size="3">IV. Derivative Works</font></h2>
+ <p><font face="Arial" size="2">Derivative works are allowed under
+ the MAME license. However, you are discouraged from providing
+ specific functionality that goes against the philosophy of the MAME
+ team. Specifically: </font></p>
+ <ul>
+ <li><font face="Arial" size="2">Do not add games which are more
+ recent than 3 years old, or which are still being sold new by
+ the company that produced them. MAME is not intended to be a
+ platform that competes with arcade games that are still being
+ actively sold. </font></li>
+ <li><font face="Arial" size="2">Do not provide a means of
+ generating a list of games that specifically identifies those
+ games for which the user does not have image files. This only
+ encourages users to seek out sources for illegal ROM, CD, and
+ hard disk images in order to &quot;complete&quot; their collection. </font>
+ </li>
+ <li><font face="Arial" size="2">Do not remove the startup screen
+ that contains information about why certain non-working games
+ don't work. This only serves to generate a bunch of useless
+ email traffic to the developers asking why the games don't work.
+ </font></li>
+ </ul>
+ <p><font face="Arial" size="2">Because the name MAME is trademarked,
+ you must abide by the rules of the trademark usage if you wish to
+ use &quot;MAME&quot; as part of the name your derivative work. In general,
+ this means you must request permission, which requires that you
+ follow the guidelines above. </font></p>
+ <p><font face="Arial" size="2">The version number of any derivative
+ work should reflect the version number of the MAME release it was
+ derived from. </font></p>
+ <h2><font face="Arial" size="3">V. Official Contact Information</font></h2>
+ <p><font face="Arial" size="2">For questions regarding the MAME
+ license, trademark, or other usage, go to
+ <a href="http://www.mamedev.com/contact.html?legal">
+ http://www.mamedev.com/</a>.</font></div>
+ </div>
+</div>
diff --git a/docs/release/src/osd/winui/help/docs/whatsnew.txt b/docs/release/src/osd/winui/help/docs/whatsnew.txt
new file mode 100644
index 00000000000..9b7e00c31ef
--- /dev/null
+++ b/docs/release/src/osd/winui/help/docs/whatsnew.txt
@@ -0,0 +1,511 @@
+0.152
+-------
+
+
+MAMETesters Bugs Fixed
+----------------------
+- 04424: [Graphics] (seta.c) thunderlbl: [debug] Severe
+ graphic issues (Osso)
+- 05357: [Crash/Freeze] (taitogn.c) nightrai: fails to boot
+ into the game (smf)
+- 05236: [Graphics] multiple monitor support doesn't work with d3d
+- 05391: [Misc.] (cave.c) ppsatan: manufacturer info for ppsatan
+- 05383: [Graphics] (twin16.c) hpuncher: Screen is split and
+ graphics are offset (Alex Jackson)
+- 00785: [Sound] (omegrace.c) omegrace: Corrupted music after
+ completing first several levels. (hap)
+- 05214: [Color/Palette] vector games: Vector games with color overlay
+ show in b&w on Windows D3D render when HLSL is disabled. (hap)
+- 05384: [DIP/Input] (lethal.c) lethaleneab, lethaleneae: Language DIP
+ Switch not changing the language (Tafoid)
+- 05355: [DIP/Input] (cps1.c) sf2m3 ; sf2m8: Kick inputs are not working
+ LK MK HK (Osso)
+- 05375: [Documentation] (sderby.c) sderby, sderby2: 1 set name and 1
+ full name need changed
+- 05373: [Crash/Freeze] (capbowl.c) capbowl3, capbowl4: Black screen
+ after starting game (Phil Bennett)
+- 05366: [Core] (harddriv.c) harddriv and clones, racedriv and clones: RTC
+ Day and Month error and fails to start
+- 05365: [Documentation] (namcos21.c) driveyes: The correct description
+ is "Driver's Eyes (Japan)"
+- 05364: [Compiling] Error when compiling with NO_USE_QTDEBUG
+- 05356: [Color/Palette] (midvunit.c) offroadc: Off Road Challenge and
+ clones have wrong color in some textures (Phil Bennett)
+- 05207: [Graphics] All vector games: In the vector games, graphics
+ remains imprinted even when exit the game. (hap)
+- 04947: [Graphics] (midvunit.c) offroadc: Missing selection indicator
+ within service mode. (Phil Bennett)
+
+Source Changes
+--------------
+-vsnes.c: Verified second half roms for vs baseball usa e-1 set, fix
+ one mislabeled rom [Dead_Body]
+
+-midvunit.c - Fixed polygon pixel color selection [Phil Bennett]
+
+-peplus.c: Corrected a couple of color CAP sizes. Added the CG graphics
+ roms for Ace$ Bonus Poker. [BrianT]
+
+-scsi: Fixed hard disk images with 256-byte sectors. [Curt Coder]
+
+-Added a simple DC blocker filter to the speaker toggle device [R. Belmont]
+
+-konendev.c: Corrected CPU type (PPC403) and added some hardware notes [Phil Bennett]
+
+-sf.c: update prom names for Street Fighter (World, Analog buttons) set.[Porchy]
+
+-exidy440.c: Replaced prom dump for all games in driver located at 3K.
+ It is unique to all the other proms and different in size. [Joe Magiera, Tafoid]
+
+-nss.c: update bios rom locations and update inst rom label for smw;
+ marked nss v3 bios as possible hack [Kiddcade, Porchy]
+
+-CPS-1 update [Artemio Urbina]:
+ * Redumped CDU_22A.7F in dinou to match real pcb, verified on two
+ different sources
+
+-Tweaks to the idehd timing, which are still based on complete fiction. [smf]
+
+-Added a new macro MCFG_DEVICE_CARD_DEFAULT_BIOS, which can be used in
+ the machine config to set the default BIOS for a slot card device.
+ [Curt Coder]
+
+-SDL: fix non-Qt non-Windows build (MT #5364) [R. Belmont]
+
+-Added SCSI status code & set it in all command handlers. It is sent
+ over the bus when in status phase. In case of an error further
+ information should be set in m_sense_key/m_sense_asc/m_sense_ascq &
+ m_sense_information so that it can be returned by executing a request
+ sense command [smf]
+
+-Set the error bit in the IDE status register if the command causes a
+ check condition [smf]
+
+-vsnes.c: update labels of vs. Super Mario Bros roms to match physical
+ chips exactly. [Dead_Body]
+
+-z80dma: Implemented Auto Restart. [Curt Coder]
+
+-TMS57002 fixes and improvements: [Phil Bennett]
+ * Moved CA/ID post-increment outside of execution. Fixes case where
+ dual instructions post-increment, also reduces number of generated
+ instructions.
+ * Fixed data ordering of external memory accesses.
+ * Don't generate redundant instructions for undefined rounding modes;
+ remap them in decode.
+ * Set XOA to 0 on reset.
+ * Use [READ|WRITE]LINE_MEMBER for I/O lines.
+ * Added PC0 line.
+ * Added registers to debugger state.
+
+-wd_fdc: Fixed ready interrupt polarity. Added a soft_reset() function
+ which resets only the FDC and not the floppy image devices, thus
+ preserving the correct ready states. [Curt Coder]
+
+-Rewrote Konami 056800 (MIRAC): [Phil Bennett]
+ * Implemented as an 8-bit device
+ * Fixed address mapping
+ * Removed bogus timer interrupt
+ * Fixed interrupt handling
+
+-054539.c: Fixed input clock rate and implemented programmable timer
+ based on hardware measurements [Phil Bennett, Stefan Lindberg]
+
+-lethal.c, mystwarr,c, tmnt.c: Hooked up 054539 timer interrupt. Fixes
+ music tempo in some games [Phil Bennett]
+
+-qdrmfgp.c: Hooked up 054539 timer interrupt for qdrmfgp, fixed IRQ
+ acknowledge handling [Phil Bennett]
+
+-plygonet.c: Hooked up 054539 timer interrupt, removed non-existent
+ second 054539 and fixed EEPROM regression [Phil Bennett]
+
+-hornet.c, gticlub.c: Implemented sound interrupt timer [Phil Bennett]
+
+-konamigx.c improvements: [Phil Bennett]
+ * Hooked up 056800 device
+ * Hooked up 054539 timer interrupt
+ * Removed sound hacks
+ * All DSP RAM tests now pass, winspike sound now works
+
+-konamigq.c improvements: [Phil Bennett]
+ * Hooked up 056800 device
+ * Hooked up 054539 timer interrupt
+ * Added TMS57002 DASP
+
+-ultrsprt.c improvements: [Phil Bennett]
+ * Hooked up 054539 timer interrupt
+ * Implemented VRAM double buffering
+ * Improved trackball inputs
+ * Fixed sound
+
+-zr107.c improvements: [Phil Bennett]
+ * Hooked up 054539 timer interrupt
+ * Fixed sound in all games
+
+-rungun.c improvements: [Phil Bennett]
+ * Hooked up 054539 timer interrupt. Fixes music tempo
+ * Implemented sound CPU NMI control
+ * Fixed 054539 #2 regression
+
+-Saves the race driving DSK zram [smf]
+
+-Added all the available beatmania IIDX hard drives and Video CD's/DVD's,
+ updated the hard drive labels from pictures online. [smf]
+
+-mcs96: Misc. fixes [O. Galibert]
+
+-diserial: Remove defines, cleanup clocks/timers, add sync support [O. Galibert]
+
+-verified The Gladiator internal ROM on an Overseas cart [Artemio Urbina]
+
+-wd_fdc: Set CRC error bit if CRC error found during Read Address
+ command. Tiki 100 determines whether the disk is in FM or MFM format
+ by checking this. [Curt Coder]
+
+-CPS-1 update:
+ * Dumped and added IOB2.11D to sf2ee and sf2ue [Porchy], S9263B.1A to
+ sf2ce and sf2hf sets and clones [Porchy], CP1B9KA.9K to pang3
+ [Zabanitu]
+
+-snk6502.c: Adjusted Nibbler board clock rate to use actual known
+ master clock and a logical divisor. [Tafoid]
+
+-jedutil.c: [Kevin Eshbach]
+ * Corrected the output of the PAL20X4, PAL20X8, PAL20X10 to show the
+ XOR on the relevant sum of products.
+ * When viewing a device the size of the JED file is verified to match
+ the size of the device.
+ * Replaced hard-coded symbol strings with constants.
+ * Started experimental work for supporting RICOH PAL’s. (Currently
+ ifdef'ed out.)
+ * Added support for viewing the following devices and the
+ corresponding regression test data. (PALCE16V8, PAL10P8, PAL12P6,
+ PAL14P4, PAL16P2, PAL16P8, PAL16RP4, PAL16RP6, PAL16RP8, PAL6L16,
+ PAL8L14, PAL12H10, PAL12L10, PAL14H8, PAL14L8, PAL16H6, PAL16L6,
+ PAL18H4, PAL18L4, PAL20C1 and PAL20L2)
+
+-Added flip screen support to Royal Mahjong and brothers [Angelo Salese]
+
+ V9958: Added preliminary screen modes 10/11/12, used by Puzzle
+ Star/Sexy Boom [Angelo Salese, Wilbert Pol]
+
+-vsnes.c: Corrected rom labels and fixed set description for vspinbal
+ set [Dead_Body]
+
+-cinemat.c: Correct dipswitches for Vectorbeam's Warrior. [Timothy Shiels]
+
+-vsnes.c: More updated ROM labels, for vs top gun and vs gradius [Dead_Body]
+
+-i386: Fixed P6 CMOVcc instructions, and added CMOV feature flag to
+ Pentium Pro and Pentium II CPUs. Added MMX feature flag to Pentium
+ MMX. [Barry Rodewald]
+
+-Fixed a complement by two bug in V9958 YJK table, fixes for good
+ colors in Puzzle Star / Sexy Boom / some MSX2+ games. [Angelo Salese]
+
+-Kludged Puzzle Star (Sang Ho Soft) hang at title screen [Angelo Salese]
+
+-Added the SHA1 for System 573 700B01 now that we have a dump. It
+ currently expects a different response from the H8 at bootup than the
+ other BIOS versions, so the data is stored in a fake rom until it's
+ HLE'd better of we get a dump of the H8 internal rom
+ [smf, innocent2k, anthonyoftga]
+
+-document that ketsui roms exist with different fill in the unused
+ areas [Artemio Urbina]
+
+-upd765: Fixed sense drive status command, and allow floppy connectors
+ without drives. [Curt Coder]
+
+-fixed scudsp & ssp1601 entries [Vito]
+
+-Reduce smearing on hlsl prescale [MooglyGuy]
+
+-Corrected 7486 description in head file [MASH]
+
+-various PGM protection cleanups / fixes (orlegend, olds, svgpcb) [iq_132]
+
+-finished modernising i2cmem [smf]
+
+-remodernised x76f041/x76f100 & zs01 so that logging becomes easy again
+ & uses READ_LINE_MEMBER/WRITE_LINE_MEMBER so the pins can be bound to
+ directly. Hooked up x76f041 to the early beatmania IIDX games. They
+ all pass the security check eventually but it takes a long time as it
+ repeatedly reads the first byte, it's possible that the contents
+ aren't correct as the game says the security is OK even when the data
+ returned is not what it's checking for. [smf]
+
+-Added a work round so that CR589 firmware updating works again, either
+ from the separate CD's or as part of the game install (for example DDR
+ MAX). [smf]
+
+-playch10: update Playchoice-10 BIOS ROM names to match exact chip
+ labels and types [Dead_Body]
+
+-naomi/dc: Sanitize screen format, fixes MT5349 [O. Galibert]
+
+-redumped some System 573 CD's [Guru]
+
+-CPS-1 update: Added S222B.1A PAL to ffightj and clones.
+ [Charles MacDonald, Porchy, Smitdogg, The Dumping Union]
+
+-Created DS1204 device & switched megatouch to use it instead of it's
+ own local version (driver could do with some more tidying up as not
+ all games use a key but currently it is hooked up to all games).
+ Default data comes from a region instead of coded in driver, commands
+ & security match are now compared, data is clocked on the correct
+ edge, key can be written to and is saved to nvram. [smf]
+
+-redumped bad roms for First Funky Fighter [Yohji, Smitdogg, The Dumping Union]
+
+-Merged othldrby.c with toaplan2.c driver [Angelo Salese]
+
+-Converted Toaplan 2 to use SCREEN_RAW_PARAMS [Angelo Salese]
+
+-Added a core for uPD4992 RTC, used by Othello Derby and Power Kick [Angelo Salese]
+
+-Hooked up ds1204, but haven't found what it checks for yet. Change
+ PATCH_PROTECTION to 0 in tmaster.c and VERBOSE_LEVEL to 2 in ds1204.c
+ then look for "-> command" in error.log to find the subsequent read
+ from the dq pin for reading the identification and secure memory. For
+ tm4k the first two bytes of the nvram need to be  0x00, 0xa0. From
+ scratch you'll need to play a game before it will complain about the
+ protection, but after that it will complain on every boot. It tries
+ five different contents for the compare register at various points
+ during the bootup, this may be for obfuscation as the real chip will
+ return random results if the key is wrong. If the keys are available
+ it might be easier to dump them than figure out exactly what it wants.
+ [smf]
+
+-svgpcb: added igs027a rom, runs intro, dies trying to go in game, not
+ sure why yet [rtw, David Haywood]
+
+-Created a skeleton for the Konami 573 Multi Session Unit, renamed
+ digital io board source file to match and moved pcb layout from
+ driver. [smf]
+
+-Added skeleton for konami 573 memory card reader and network pcb unit
+ devices [smf]
+
+-redumped keyboard mania 3 [Guru]
+
+-Updated konam80s atapi dma kludge so that Guitar Freaks 7th Mix (and
+ alot of others) load again [smf]
+
+-Mambo A GO-GO CD redump in raw mode + raw subcode. [any]
+
+-Improved Sega Bloxeed dipswitches. [Zaphod]
+
+-Added basic 3d FIFO understanding and hooked up FIFO irq processed to
+ Hyper Neo Geo 64, meaning a far better 3d display in all games
+ [Angelo Salese]
+
+-mc2661: Added various transmission and reception logic to help make
+ the above possible [Barry Rodewald]
+
+-twin16.c: [Alex Jackson]
+ * Use the correct gfx ROMs for all the vulcan/gradius2 sets
+ * Load gfx ROMs using standard macros instead of custom postprocessing
+ * Replace custom read/write handlers with AM_REGION, AM_SHARE, or banks as appropriate
+ * Fix Extra Life dipswitches in vulcana and vulcanb
+ * Fix cuebrick NVRAM size
+ * Fix audio cpu RAM size
+ * Use XTALs for clocks
+
+-Windows: Fixed D3D multimonitor support. [GroovyMAME]
+
+-Slot options can now be configured inline without creating an array.
+ Legacy support for old configuration uses MCFG_FRAGMENT_ADD, which
+ required changing so the current device could be updated by the
+ fragment. [smf]
+
+-converted cassette, pccard1 & pccard2 slots to use new MCFG macros [smf]
+
+-Uses MCFG_SLOT_DEFAULT_OPTION instead of MCFG_DEVICE_SLOT_INTERFACE
+ where only the default option is changed. [smf]
+
+-m68k: add ability for externally-thrown bus errors to have proper
+ details [R. Belmont]
+
+-uses device_mconfig_additions() to add ata slots, which allows you to
+ just add the device and configure it rather than using the
+ MCFG_ATA_INTERFACE_ADD #define. [smf]
+
+-allow building with ICL on Windows if you have it installed into MSVC [Dean London]
+ The ICL compiler on Windows installs over MSVC and piggybacks onto the
+ build tools Microsoft provide. To enable compilation use USE_ICL=1
+ when compiling with MSVC_BUILD=1 (from the ICL enabled command prompt)
+ + gives a more stable build than the MSVC compiler + more informative
+ compile errors when using ICL compared to MSVC compiler + can still
+ use MSVC debugging tools (better than GCC) + can use additional intel
+ tools etc.
+ build is still slower than GCC one
+
+-aristmk4.c: [Lord-Data]
+ * Option to raise outputs for physical meters to be used
+ * Option to disable making sound effects for emulated meters
+ * Option to disable virtual emulation of hopper/coin release system
+
+-k005289.c: refactored, removed redundant state variables and
+ unneccessary floating point math, added savestate support
+ [Alex Jackson]
+
+-Removed support for static config from slots and converted the two
+ devices using it to machine config fragments [smf]
+
+-Pong update: [couriersud]
+ * based on feedback from IRC hopefully fixed issues like "jumping"
+ * adjusted VR1 and VR2 to 50%
+ * disabled all printf output.
+
+-converted serial & rs232 devices to devcb2 [smf]
+
+-diimage: Added load_software_region() function that loads a software
+ list region into a shared_ptr. [Curt Coder]
+
+-Added preliminary sound to ghosteo.c by borrowing code from vegaeo.c. [Osso]
+
+-z8.c: Modernized cpu core. [Wilbert Pol]
+
+-midyunit.c [Andy Welsh]
+ Fixed inputs and DIP Switches for hiimpact,
+ shimpact and clones which were all imported from TROG and mostly
+ incorrect.
+
+-Added Signetics 8X300 microcontroller core, updated Wicat driver to
+ use it. [Barry Rodewald]
+
+-replaced read rx/cts/dcd callbacks in ACIA6850 write write handlers,
+ which allows multiple chips to be connected together without using
+ glue methods. [smf]
+
+-Changed Guitar Freaks 7m onwards to use a 32mb PCMCIA card [smf]
+
+-Redumped some beatmania IIDX CD's [Guru]
+
+-Redumped several Konami GV CD's [Guru]
+
+-Redumped several Konami M2 CD's [Guru]
+
+-Redumped various System 573 CD's [Guru]
+
+-i8089: implement remaining instructions and support execution from
+ "io" space. [Carl]
+
+-replaced read callbacks in I8251/Z80DART (and clones)/MC2661/
+ MC68901/IM6402/MOS6551/Z80STI/MC6852/MC6854/ZX8302 with
+ write handlers, which allows multiple chips to be connected
+ together without using glue methods. [smf]
+
+-Removed a load of unused code from MC68901, probably left
+ over when it was converted to use diserial. [smf]
+
+-Removed dependency clutter in c64 expansion port, c128 driver,
+ ecbbus & econet [smf]
+
+-nemesis.c: added PORT_TOGGLE and PORT_NAMEs to Konami GT.
+ [baritonomarchetto]
+
+-Rom locations added for Battles (Xevious bootleg), G.I. Joe,
+ Ghosts'n Goblins (US), Victory Road and Guerilla War (Version
+ 1) as well as nvram location to The Simpsons. [Kevin Eshbach]
+
+-Added readmes for gijoe, moo, xexex, lethal, mystwarr also
+ updating simpsons. [Guru]
+
+
+New games added or promoted from NOT_WORKING status
+---------------------------------------------------
+Long Beach [any, hap]
+The Gladiator / Road of the Sword / Shen Jian [David Haywood, rtw]
+Blastaball (Arcadia, V 2.1) [Unigame]
+Pharaohs Match (Arcadia) [Unigame]
+Delta Command (Arcadia) [Unigame]
+Wave shark/Jet Wave [Phil Bennett]
+Puzzle Star (Sang Ho Soft) [Angelo Salese, Wilbert Pol]
+Dancing Stage - Internet Ranking Ver (GC845 VER. EBA) [smf, skype]
+Player's Edge Plus (XM00007P+XMP00006) Multi-Poker [BrianT, Ken]
+Player's Edge Plus (X000838S+XS000002) Five Times Pay Slots [BrianT, Kevin]
+Player's Edge Plus (X000841S+XS000002) Five Times Pay Slots [BrianT, Kevin]
+Player's Edge Plus (X001087S+XS000006) Double Double Diamond Slots [BrianT, Kevin]
+Player's Edge Plus (IP0079) Standard Draw Poker - French [BrianT, Ken]
+Player's Edge Plus (X002420P+XP000064) Deuces Wild Bonus Poker - French [BrianT, Ken]
+Power Kick [bodger319, Yohji, Smitdogg, The Dumping Union, Angelo Salese]
+S.V.G. - Spectral vs Generation (M68k label V100JP)
+ (ARM label V100JP ROM 05/12/05 S.V.G V100) (Japan, JAMMA PCB) [rtw, David Haywood]
+
+
+New clones added
+----------------
+Scramble (Recreativos Franco, Spanish bootleg) [Basilio Garcia]
+The Gladiator / Road of the Sword / Shen Jian (M68k label V100)
+ (ARM label V101, ROM 03/13/03 SHEN JIAN) [Artemio Urbina]
+Super Chase - Criminal Termination (1992/10/26 20:24:29 CHASE 3 VER 1.1, prototype) [Unigame]
+Brick Zone (v1.1) [Unigame]
+Cadash (World, prototype) [Unigame]
+1942 (prototype?) [Unigame]
+4 En Raya (set 2) [Unigame]
+Gallop Racer (English Ver 10.17.K) [Arzeno Fabrice, The Dumping Union]
+Chase Bombers (prototype) [Unigame]
+The First Funky Fighter (set 2) [Unigame]
+Cobra Command (Data East LD, set 2) [Unigame] (not working)
+Spy Hunter (prototype) [Unigame] (not working, needs more work)
+U.N. Defense Force: Earth Joker (Japan, prototype?) [Unigame]
+Syvalion (World, prototype) [Unigame]
+Donkey Kong Junior (P kit) [Chris Psaros]
+Who Dunit (version 9.0) [Joe Magiera]
+Commando (US set 2) [Kevin Eshbach]
+Bucky O'Hare (ver EA) [caius]
+Player's Edge Plus (PP0055) Deuces Wild Poker (set 2) [BrianT]
+Player's Edge Plus (PP0171) Joker Poker [BrianT]
+Player's Edge Plus (X000054P+XP000038) Deuces Wild Poker [BrianT]
+Player's Edge Plus (PP0002) Standard Draw Poker [BrianT, Ken]
+Player's Edge Plus (PP0045) 10's or Better [BrianT, Ken]
+Player's Edge Plus (PP0455) Joker Poker [BrianT, Ken]
+Player's Edge Plus (PP0458) Joker Poker [BrianT, Ken]
+Player's Edge Plus (PP0536) Joker Poker [BrianT, Ken]
+Player's Edge Plus (PP0726) Double Bonus Poker [BrianT, Ken]
+Player's Edge Plus (IP0074) Joker Poker - French [BrianT, Ken]
+Player's Edge Plus (X000045P+XP000038) 10's or Better [BrianT, Ken]
+Player's Edge Plus (XMP00017) 5-in-1 Wingboard (CG2426) [BrianT, Ken]
+Player's Edge Plus (PP0417) Deuces Wild Poker (set 2) [BrianT, Kevin]
+Player's Edge Plus (PP0002) Standard Draw Poker (set 2) [BrianT, Ken]
+Player's Edge Plus (XMP00017) 5-in-1 Wingboard (CG2352) [BrianT, Ken]
+Player's Edge Plus (PP0046) 10's or Better [BrianT, Ken]
+Player's Edge Plus (X000002P+XP000038) Standard Draw Poker [BrianT, Ken]
+Player's Edge Plus (X000060P+XP000038) Standard Draw Poker [BrianT, Ken]
+Player's Edge Plus (X000171P+XP000038) Joker Poker [BrianT, Ken]
+Player's Edge Plus (X000417P+XP000053) Deuces Wild Poker [BrianT, Ken]
+Player's Edge Plus (X000459P+XP000038) Joker Poker [BrianT, Ken]
+Player's Edge Plus (X002043P+XP000038) Triple Bonus Poker [BrianT, Ken]
+Player's Edge Plus (X002066P+XP000038) Double Double Bonus Poker [BrianT, Ken]
+Player's Edge Plus (X002121P+XP000037) Standard Draw Poker [BrianT, Ken]
+Player's Edge Plus (X002150P+XP000038) 4 of a Kind Bonus Poker [BrianT, Ken]
+Player's Edge Plus (X002180P+XP000038) Double Bonus Poker [BrianT, Ken]
+Touchmaster 4000 (v6.03 New Jersey) [Brian Troha, The Dumping Union]
+Touchmaster 4000 (v6.01 Minnesota) [Brian Troha, The Dumping Union]
+Touchmaster 5000 (v7.10 Minnesota) [Brian Troha, The Dumping Union]
+Touchmaster 7000 (v8.05 New Jersey) [Brian Troha, The Dumping Union]
+Touchmaster 7000 (v8.04 Minnesota) [Brian Troha, The Dumping Union]
+Touchmaster 7000 (v8.00 Minnesota) [Brian Troha, The Dumping Union]
+World Kicks (WK3 Ver. A) [Guru]
+Wivern Wings [Brian Troha, Tormod, Smitdogg, The Dumping Union]
+Invasion - The Abductors (version 3.0) [Brian Troha, Smitdogg, The Dumping Union]
+Street Fighter III: New Generation (Euro 970204) [Layne, Smitdogg, The Dumping Union]
+
+
+New games marked as GAME_NOT_WORKING
+------------------------------------
+beatmania IIDX Substream (983 JAA) [smf]
+beatmania IIDX 5th style (GCA17 JA) [smf]
+beatmania IIDX (863 JAB) [Guru]
+beatmania IIDX 3rd style (GC992 JAC) [smf]
+beatmania IIDX 6th style (GCB4U JAB) [smf]
+Tokimeki Memorial Oshiete Your Heart (GQ673 JAA) [Guru]
+Total Vice (ver AAB) [Guru]
+Super Six Plus II English Mark Darts [Jim Stolis]
+Tokimeki Memorial Oshiete Your Heart Seal Version Plus (GE756 JAA) [Guru]
+Submarine (Midway) [John Robertson, hap]
+Mambo A Go-Go e-Amusement (GQA40 VER. JRB) [smf]
+Touch de Uno! [R. Belmont, bodger319, gamerfan, f205v, Yohji, Smitdogg, rtw, The Dumping Union]
diff --git a/docs/release/src/osd/winui/help/html/mameui_art.htm b/docs/release/src/osd/winui/help/html/mameui_art.htm
new file mode 100644
index 00000000000..bb2dc16d8de
--- /dev/null
+++ b/docs/release/src/osd/winui/help/html/mameui_art.htm
@@ -0,0 +1,139 @@
+<html>
+
+<head>
+<meta name="GENERATOR" content="Microsoft FrontPage 12.0">
+<meta name="ProgId" content="FrontPage.Editor.Document">
+<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
+<title>MameUI Art &amp; Support Files</title>
+<style>
+<!--
+p
+ {margin-right:0in;
+ margin-left:0in;
+ font-size:10.0pt;
+ font-family:Arial;
+ color:black}
+h1
+ {margin-top:12.0pt;
+ margin-right:0in;
+ margin-bottom:3.0pt;
+ margin-left:0in;
+ page-break-after:avoid;
+ font-size:16.0pt;
+ font-family:Arial;
+ color:windowtext;
+ font-weight:bold}
+h2
+ {margin-top:12.0pt;
+ margin-right:0in;
+ margin-bottom:3.0pt;
+ margin-left:0in;
+ page-break-after:avoid;
+ font-size:14.0pt;
+ font-family:Arial;
+ font-style:italic}
+ p.MsoNormal
+ {mso-style-parent:"";
+ margin-bottom:.0001pt;
+ font-size:10.0pt;
+ font-family:Arial;
+ margin-left:0in; margin-right:0in; margin-top:0in}
+div.Section1
+ {page:Section1;}
+.style1 {
+ font-weight: bold;
+}
+-->
+</style>
+<base target="_blank">
+</head>
+
+<body background="../images/bkground.gif">
+
+<h2>Art &amp; Support Files</h2>
+<p class="MsoNormal">MameUI's flexible GUI framework allows for some beautiful
+customization; including font color, icons, screenshot art, and background images.&nbsp;
+The official site for the snaps and icons is <b>
+<a target="_blank" href="http://mameui.info/">MameUI</a></b>.&nbsp; The following files are used for this customization.</p>
+<p class="MsoNormal">&nbsp;</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>
+<a style="color: blue; text-decoration: underline; text-underline: single" target="_blank" href="http://mameui.info/">Icons.zip</a></b>
+: This file contains icons for every game in MameUI and the folder view on the
+far left.&nbsp; Place it in the \MameUI\icons folder, it can remain zipped to
+save slack HD space but the zip file must be named icons.zip.</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>
+<a style="color: blue; text-decoration: underline; text-underline: single" target="_blank" href="http://mameui.info/">Snap.zip</a></b> : These are a series of files that contain in-game screenshots
+of every parent game in MameUI.&nbsp; Download the packs and extract their
+contents into the \MameUI\snap directory or combine their *.png contents into
+one large snap.zip file.</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>
+Titles.zip</b> : This file can provide support for screenshots showing the
+titles of the game in MameUI, place in \titles directory.&nbsp; </p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>Marquees.zip</b> : This file can provide support for the
+marquee images that appear on the top of arcade machines, place in \marquees
+directory..</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span>
+<span style="font-style:normal; font-variant:normal; font-weight:700">Cpanel</span><b>.zip</b> : This file can provide support for the
+images of arcade control panels, place in \cpanel directory..</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span>
+<span style="font-style: normal; font-variant: normal; line-height: normal;" class="style1">
+PCB</span><b>.zip</b> : This file can provide support for the
+images of arcade printed circuit boards, place in \pcb directory..</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>
+Bkground.zip</b> : This file contains numerous images that are used as the
+background for the MameUI GUI [beneath the game list, behind the
+screenshot/folder areas]. Download this file and extract its contents into the
+\MameUI\bkground directory. Choose a background
+image in the Options menu.&nbsp; To have it rotated randomly on MameUI launch,
+toggle the checkbox in the Options • Interface Options menu.</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>
+<a target="_blank" href="http://www.arcadeflyers.net">Flyers.zip</a></b> : This file can provide support for the original flyers sent to
+arcade operators, exhorting them to buy the games, place in \flyers directory.</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>
+Cabinets.zip</b> : These are a series of files that contain images of the
+actual physical arcade machines themselves.&nbsp; Download the packs and extract their contents into the \MameUI\cabinets
+directory or combine their *.png contents into one large cabinets.zip.</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>
+<a style="color: blue; text-decoration: underline; text-underline: single" target="_blank" href="http://www.arcade-history.com">History.dat</a></b> : This file contains the original game’s designer’s names,
+and assorted trivia.&nbsp; Place this file in the \MameUI folder alongside
+MameUI.exe. It will display if the history art tab is toggled, or if the history
+tab is not selected, it will display beneath snapshots.</p>
+
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt">
+<font size="1">
+<!--webbot bot="Timestamp" s-type="EDITED" s-format="%Y-%m-%d %I:%M %p %Z" startspan -->2007-11-12 02:05 PM -0800<!--webbot bot="Timestamp" endspan i-checksum="37923" -->
+/ john iv</font></p>
+
+</body>
+
+</html> \ No newline at end of file
diff --git a/docs/release/src/osd/winui/help/html/mameui_changes.txt b/docs/release/src/osd/winui/help/html/mameui_changes.txt
new file mode 100644
index 00000000000..c995ab92847
--- /dev/null
+++ b/docs/release/src/osd/winui/help/html/mameui_changes.txt
@@ -0,0 +1,2132 @@
+ -|ad5u1337 "unknown Scorpion '39211337' (Mazooma) (Scorpion 5, Adder 5)"
+ -|altbeastj2 "Juuouki (set 5, Japan, FD1094 317-0069)"
+ -|circusse "Circus (Sub-Electro bootleg)"
+ -|gt5 "Trivia (Version 5.06)"
+ -|sc4pacmnc "Pac Man (PR7072) (Mazooma) (Scorpion 4) (set 4)"
+ -|sc4pacmnd "Pac Man (PR7072) (Mazooma) (Scorpion 4) (set 5)"
+ -|sc4pacmne "Pac Man (PR7072) (Mazooma) (Scorpion 4) (set 6)"
+ -|sfiii3a "Street Fighter III 3rd Strike: Fight for the Future (Euro 990512)"
+ -|sfiii3an "Street Fighter III 3rd Strike: Fight for the Future (Japan 990512, NO CD)"
+ -|sfiii3au "Street Fighter III 3rd Strike: Fight for the Future (USA 990512)"
+ -|spacefbu "Space Firebird (Nintendo, set 2)"
+ -|suprpkr1 "Super Poker (Version 10.15S)"
+ +|1941r1 "1941: Counter Attack (World)"
+ +|a51site4a "Area 51: Site 4 (September 11, 1998)"
+ +|arknoid2b "Arkanoid - Revenge of DOH (Japan bootleg)"
+ +|batlgr2a "Battle Gear 2 (v2.01J)"
+ +|bgareggabl "1945 Part-2 (Chinese hack of Battle Garegga)"
+ +|bigstrkba "Big Striker (bootleg w/Italian teams)"
+ +|bikkuric "Bikkuri Card (Japan)"
+ +|boblbobl2 "Bobble Bobble (set 2)"
+ +|casbjack "Casino Black Jack (color, Standard 00-05)"
+ +|caspoker "Casino Poker (Ver PM86LO-35-5, German)"
+ +|chamburger "Hamburger (DECO Cassette, Japan)"
+ +|chance32 "Chance Thirty Two"
+ +|cninjaa "Caveman Ninja (alternate)"
+ +|cninjabl2 "Caveman Ninja (bootleg, alt)"
+ +|congoa "Congo Bongo (Rev C, 3 board stack)"
+ +|coozumou "Oozumou - The Grand Sumo (DECO Cassette, Japan)"
+ +|cskater "Skater (DECO Cassette, Japan)"
+ +|csplayh1 "Super CD Dai8dan Mahjong Hanafuda Cosplay Tengoku (Japan)"
+ +|drgninjab "Dragonninja (bootleg)"
+ +|driblingbr "Dribbling (bootleg, Brazil)"
+ +|drivfrct "Top Racer (bootleg of Driving Force)"
+ +|dtfamily "Diet Family"
+ +|dwpc "Dragon World Pretty Chance (V101, Japan)"
+ +|dynablstb2 "Dynablaster / Bomber Man (bootleg, alt)"
+ +|ertictaca "Erotictac/Tactic (ver 01)"
+ +|eyesb "Eyes (bootleg set 1)"
+ +|fantastc "Fantastic"
+ +|ffighta "Final Fight (World, set 2)"
+ +|fsoccerba "Fighting Soccer (Joystick hack bootleg, alt)"
+ +|funcube5 "Funcube 5 (v1.0)"
+ +|funriverd1 "Fun River (Version 1.3R CGA)"
+ +|galemp "Galaxy Empire (bootleg?)"
+ +|gldarrow "Golden Arrow (Standard G8-03)"
+ +|gtsers10a "Trivia (Questions Series 10 Alt Question Rom)"
+ +|gtsers11a "Trivia (Questions Series 11 Alt Question Rom)"
+ +|gtsers12 "Trivia (Questions Series 12)"
+ +|gtsers14 "Trivia (Questions Series 14)"
+ +|gtsers15 "Trivia (Questions Series 15)"
+ +|haunthig "Haunted House (IGS)"
+ +|hndlchmp "Handle Champ (GQ710 VER. JAB)"
+ +|hotmindff "Hot Mind (Fit of Fighting hardware)"
+ +|hypbbc2p "Hyper Bishi Bashi Champ - 2 Player (GX908 1999/08/24 VER. JAA)"
+ +|hypbbc2pk "Hyper Bishi Bashi Champ - 2 Player (GX908 1999/08/24 VER. KAA)"
+ +|initdv3e "Initial D Arcade Stage Ver. 3 (Export) (GDS-0033)"
+ +|intrepidb "Intrepid (bootleg)"
+ +|invadpt2br "Space Invaders Part II (Brazil)"
+ +|jankenmn "Janken Man Kattara Ageru"
+ +|jzth "Jue Zhan Tian Huang"
+ +|kong "Kong (Brazil)"
+ +|kovshxas "Knights of Valour: Aoshi Sanguo / Sangoku Senki: Aoshi Sanguo (ver. 202CN)"
+ +|luckboom "Lucky Boom"
+ +|manohman "Mann, oh-Mann"
+ +|mazan "Mazan: Flash of the Blade (MAZ1 Ver. A)"
+ +|megat2caa "Pit Boss Megatouch II (9255-10-06 ROE, California version)"
+ +|megat4c "Megatouch IV (9255-40-01 RO, Standard version)"
+ +|mooncrstuku "Moon Cresta (Nichibutsu UK, unencrypted)"
+ +|nflclsfb "NFL Classic Football (NCF3 Ver.A.)"
+ +|nibblerp "Nibbler (Pioneer Balloon conversion)"
+ +|ninjaslt "Ninja Assault (NJA3 Ver. A)"
+ +|orunnersj "OutRunners (Japan)"
+ +|pclb2elk "Print Club 2 Earth Limited Kobe (Print Club Custom) (J 970808 V1.000)"
+ +|polarisbr "Polaris (Brazil)"
+ +|potgoldu "Pot O' Gold (U.S. Games, v400x?)"
+ +|pr_qksht "Quickshot (Maygay) (PROCONN)"
+ +|pwrshovl "Power Shovel ni Norou!! - Power Shovel Simulator"
+ +|pyson "Konami Pyson BIOS"
+ +|quizshow "Quiz Show"
+ +|rfjett "Raiden Fighters Jet (Taiwan)"
+ +|sc2luvv1 "Luvvly Jubbly (set 2, UK, Arcade, 10GBP Jackpot) (Scorpion 2/3)"
+ +|sc2luvv1p "Luvvly Jubbly (set 2, UK, Arcade, 10GBP Jackpot, Protocol) (Scorpion 2/3)"
+ +|sc2luvv2 "Luvvly Jubbly (set 3, UK, Multisite) (Scorpion 2/3)"
+ +|sc2luvv2p "Luvvly Jubbly (set 3, UK, Multisite, Protocol) (Scorpion 2/3)"
+ +|sc2luvv3 "Luvvly Jubbly (set 4, UK, Arcade) (Scorpion 2/3)"
+ +|sc2luvv4 "Luvvly Jubbly (set 5, UK, Arcade) (Scorpion 2/3)"
+ +|sc2luvv5p "Luvvly Jubbly (set 6, UK, Protocol) (Scorpion 2/3)"
+ +|sc2luvv6p "Luvvly Jubbly (set 7, UK, Protocol) (Scorpion 2/3)"
+ +|sc2luvv7p "Luvvly Jubbly (set 8, UK, Protocol) (Scorpion 2/3)"
+ +|sc4boomb "Monopoly Boom Or Bust (Bellfruit) (Scorpion 4) (set 1)"
+ +|sc4boomba "Monopoly Boom Or Bust (Bellfruit) (Scorpion 4) (set 2)"
+ +|sc4bwow "Wheel Of Wealth (Bellfruit) (PR1726) (Scorpion 4) (WHEL013, set 1)"
+ +|sc4bwowa "Wheel Of Wealth (Bellfruit) (PR1726) (Scorpion 4) (WHEL013, set 2)"
+ +|sc4cckeyl "Casino Crazy Fruits Gold (Bellfruit) (Scorpion 4) (set 13)"
+ +|sc4cckeym "Casino Crazy Fruits Gold (Bellfruit) (Scorpion 4) (set 14)"
+ +|sc4cckeyn "Casino Crazy Fruits Gold (Bellfruit) (Scorpion 4) (set 15)"
+ +|sc4cckeyo "Casino Crazy Fruits Gold (Bellfruit) (Scorpion 4) (set 16)"
+ +|sc4cclimq "Crazy Climber (Bellfruit) (Scorpion 4) (set 18)"
+ +|sc4cclimr "Crazy Climber (Bellfruit) (Scorpion 4) (set 19)"
+ +|sc4cclims "Crazy Climber (Bellfruit) (Scorpion 4) (set 20)"
+ +|sc4cclimt "Crazy Climber (Bellfruit) (Scorpion 4) (set 21)"
+ +|sc4cclimu "Crazy Climber (Bellfruit) (Scorpion 4) (set 22)"
+ +|sc4clbmn "Club Moneybags (Bellfruit) (Scorpion 4) (set 1)"
+ +|sc4clbmna "Club Moneybags (Bellfruit) (Scorpion 4) (set 2)"
+ +|sc4clbmnb "Club Moneybags (Bellfruit) (Scorpion 4) (set 3)"
+ +|sc4clbmnc "Club Moneybags (Bellfruit) (Scorpion 4) (set 4)"
+ +|sc4crcpi "Cops 'n' Robbers Club Platinum (Bellfruit) (Scorpion 4) (set 9)"
+ +|sc4crcpj "Cops 'n' Robbers Club Platinum (Bellfruit) (Scorpion 4) (set 10)"
+ +|sc4crzkyt "Crazy Keys Casino (Bellfruit) (Scorpion 4) (set 13)"
+ +|sc4crzkyu "Crazy Keys Casino (Bellfruit) (Scorpion 4) (set 14)"
+ +|sc4crzkyv "Crazy Keys Casino Arcade (Bellfruit) (Scorpion 4) (set 9)"
+ +|sc4crzkyw "Crazy Keys Casino Arcade (Bellfruit) (Scorpion 4) (set 10)"
+ +|sc4fguyd "Family Guy (Bellfruit) (Scorpion 4) (set 5)"
+ +|sc4fguye "Family Guy (Bellfruit) (Scorpion 4) (set 6)"
+ +|sc4ggtb "Golden Game (Mazooma) (PR2056, Top Box) (Scorpion 4) (set 1)"
+ +|sc4ggtba "Golden Game (Mazooma) (PR2056, Top Box) (Scorpion 4) (set 2)"
+ +|sc4ggtbb "Golden Game (Mazooma) (PR2056, Top Box) (Scorpion 4) (set 3)"
+ +|sc4hntcsp "Happy Notes Casino (Bellfruit) (Scorpion 4) (set 17)"
+ +|sc4hntcsq "Happy Notes Casino (Bellfruit) (Scorpion 4) (set 18)"
+ +|sc4hntcsr "Happy Notes Casino (Bellfruit) (Scorpion 4) (set 19)"
+ +|sc4hntcss "Happy Notes Casino (Bellfruit) (Scorpion 4) (set 20)"
+ +|sc4ijobl "Italian Job (Mazooma) (Scorpion 4) (set 13)"
+ +|sc4ijobm "Italian Job (Mazooma) (Scorpion 4) (set 14)"
+ +|sc4luckb1 "Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 23)"
+ +|sc4luckb2 "Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 24)"
+ +|sc4luckb3 "Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 25)"
+ +|sc4luckb4 "Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 26)"
+ +|sc4mgrj "Money Go Round Casino (Bellfruit) (Scorpion 4) (set 11)"
+ +|sc4mgrk "Money Go Round Casino (Bellfruit) (Scorpion 4) (set 12)"
+ +|sc4mgrl "Money Go Round Casino (Bellfruit) (Scorpion 4) (set 13)"
+ +|sc4mgrm "Money Go Round Casino (Bellfruit) (Scorpion 4) (set 14)"
+ +|sc4mhpl "Monopoly Hot Property (Bellfruit) (Scorpion 4) (set 13)"
+ +|sc4mhpm "Monopoly Hot Property (Bellfruit) (Scorpion 4) (set 14)"
+ +|sc4mhpn "Monopoly Hot Property (Bellfruit) (Scorpion 4) (set 15)"
+ +|sc4mwwtb "Monopoly Wheel Of Wealth (Mazooma) (PR2389, Top Box) (Scorpion 4) (set 1)"
+ +|sc4mwwtba "Monopoly Wheel Of Wealth (Mazooma) (PR2389, Top Box) (Scorpion 4) (set 2)"
+ +|sc4mwwtbb "Monopoly Wheel Of Wealth (Mazooma) (PR2389, Top Box) (Scorpion 4) (set 3)"
+ +|sc4mwwtbc "Monopoly Wheel Of Wealth (Mazooma) (PR2389, Top Box) (Scorpion 4) (set 4)"
+ +|sc4mwwtbd "Monopoly Wheel Of Wealth (Mazooma) (PR2389, Top Box) (Scorpion 4) (set 5)"
+ +|sc4pacqp "Pac Man (PR7072) (QPS) (Scorpion 4) (set 1)"
+ +|sc4pacqpa "Pac Man (PR7072) (QPS) (Scorpion 4) (set 2)"
+ +|sc4pacqpb "Pac Man (PR7072) (QPS) (Scorpion 4) (set 3)"
+ +|sc4pogbld "Pots Of Gold Club (Bellfruit) (Scorpion 4) (set 5)"
+ +|sc4pogble "Pots Of Gold Club (Bellfruit) (Scorpion 4) (set 6)"
+ +|sc4pogh "Pots Of Gold (Bellfruit) (Scorpion 4) (set 9)"
+ +|sc4pogi "Pots Of Gold (Bellfruit) (Scorpion 4) (set 10)"
+ +|sc4popeyd "Popeye (Mazooma) (Scorpion 4) (set 5)"
+ +|sc4popeye "Popeye (Mazooma) (Scorpion 4) (set 6)"
+ +|sc4showtf "Showtime (Bellfruit) (Scorpion 4) (set 7)"
+ +|sc4wldbnn "Wild Bunch (Bellfruit) (Scorpion 4) (set 11)"
+ +|sc4wldbno "Wild Bunch (Bellfruit) (Scorpion 4) (set 12)"
+ +|sc4wldbnp "Wild Bunch (Bellfruit) (Scorpion 4) (set 13)"
+ +|sc4wldbnq "Wild Bunch (Bellfruit) (Scorpion 4) (set 14)"
+ +|sfex2ph "Street Fighter EX2 Plus (Hispanic 990611)"
+ +|sfiii3nr1 "Street Fighter III 3rd Strike: Fight for the Future (Japan 990512, NO CD)"
+ +|sfiii3r1 "Street Fighter III 3rd Strike: Fight for the Future (Euro 990512)"
+ +|sfiii3ur1 "Street Fighter III 3rd Strike: Fight for the Future (USA 990512)"
+ +|silvmil "Silver Millennium"
+ +|soulclb3a "Soul Calibur III (SC31002-NA-A)"
+ +|soulsurf "Soul Surfer (Rev A)"
+ +|spikes91a "1991 Spikes (Italian bootleg, set 2)"
+ +|springbd "Springboard (bootleg of Circus)"
+ +|ssf2xjr "Super Street Fighter II X: Grand Master Challenge (Japan 940223 rent version)"
+ +|sshooter17 "Sharpshooter (Rev 1.7)"
+ +|superchsj "Super Chase - Criminal Termination (Japan)"
+ +|suprpokra "Super Poker (Version 10.15S)"
+ +|suprpokrb "Super Poker (Version 10.10)"
+ +|suprstar "Super Stars"
+ +|tbowlp "Tecmo Bowl (World, prototype?)"
+ +|tekken4c "Tekken 4 (TEF1 Ver. C)"
+ +|touryuu "Touryuumon (V1.1)?"
+ +|tvlegaxe "Makyo Densetsu - The Legenary Axe (Tourvision PCE bootleg)"
+ +|tvsvball "Super Volley ball (Tourvision PCE bootleg)"
+ +|vcopa "Virtua Cop (Revision A)"
+ +|vhuntjr1s "Vampire Hunter: Darkstalkers' Revenge (Japan 950307 stop version)"
+ +|voyager "Star Trek: Voyager"
+ +|wboy5 "Wonder Boy (set 5, bootleg)"
+ +|wboyub "Wonder Boy (US bootleg)"
+ +|winrungp "Winning Run Suzuka Grand Prix (Japan)"
+ +|wstrike "Witch Strike (Export, 6T/12T ver 1.01A)"
+ +|wstrikea "Witch Strike (Export, 6T/12T ver 1.01B)"
+ +|wswe "World Soccer Winning Eleven Arcade Game Style"
+ +|wswe2k3 "World Soccer Winning Eleven Arcade Game 2003"
+ +|wtchjack "Witch Jack (Export, 6T/12T ver 0.87-89)"
+ +|wtchjacka "Witch Jackpot (Export, 6T/12T ver 0.25)"
+ +|wtchjackb "Witch Jack (Export, 6T/12T ver 0.40)"
+ +|wtchjackc "Witch Jack (Export, 6T/12T ver 0.40T)"
+ +|wtchjackd "Witch Jack (Export, 6T/12T ver 0.62)"
+ +|wtchjacke "Witch Jack (Export, 6T/12T ver 0.64)"
+ +|wtchjackf "Witch Jack (Export, 6T/12T ver 0.65)"
+ +|wtchjackg "Witch Jack (Export, 6T/12T ver 0.70S)"
+ +|wtchjackh "Witch Jack (Export, 6T/12T ver 0.70P)"
+ +|wtchjacki "Witch Jack (Export, 6T/12T ver 0.87)"
+ +|wtchjackj "Witch Jack (Export, 6T/12T ver 0.87-88)"
+ +|wupndown "Witch Up & Down (Export, 6T/12T ver 1.02)"
+ +|wupndowna "Witch Up & Down (Export, 6T/12T ver 0.99, set 1)"
+ +|wupndownb "Witch Up & Down (Export, 6T/12T ver 0.99, set 2)"
+ +|wupndownc "Witch Up & Down (Export, 6T/12T ver 0.99, set 3)"
+ +|wupndownd "Witch Up & Down (Export, 6T/12T ver 0.99T)"
+ +|yosimotm "Mahjong Yoshimoto Gekijou [BET] (Japan)"
+ +|zekepeak "Zeke's Peak"
+ +|zerotm2k "Zero Team 2000"
+ +|zokumahj "Zoku Mahjong Housoukyoku (Japan)"
+ C|1941 "1941: Counter Attack (World 900227)"
+ c|1941 "1941: Counter Attack (World)"
+ C|99lstwar "'99: The Last War (set 1)"
+ c|99lstwar "'99: The Last War"
+ c|99lstwara "'99: The Last War (alternate)"
+ C|99lstwara "'99: The Last War (set 2)"
+ C|altbeast5 "Altered Beast (set 5, FD1094 317-0069)"
+ c|altbeast5 "Altered Beast (set 6, 8751 317-0076)"
+ C|altbeast6 "Altered Beast (set 6, 8751 317-0076)"
+ C|am_mg3a "Multi Game III (V.Ger 3.64)"
+ c|am_uslot "Amatic Unknown Slots Game"
+ C|andromep "Andromeda (set 1)"
+ c|andromep "Andromeda"
+ c|andromepa "Andromeda (alternate set)"
+ C|andromepa "Andromeda (set 2)"
+ C|antar "Antar (set 1)"
+ c|antar "Antar"
+ c|antar2 "Antar (alternate set)"
+ C|antar2 "Antar (set 2)"
+ C|babypac "Baby Pac-Man (set 1)"
+ c|babypac "Baby Pacman (Video/Pinball Combo)"
+ C|babypac2 "Baby Pac-Man (set 2)"
+ C|baluba "Baluba-louk no Densetsu (Japan)"
+ c|baluba "Baluba-louk no Densetsu"
+ C|bmcpokr "unknown BMC poker game"
+ c|bmcpokr "Unknown BMC Poker Game"
+ c|brooklyn "Brooklyn (Bingo)"
+ C|brooklyn "Brooklyn (set 1) (Bingo)"
+ c|brooklyna "Brooklyn (alternate set)(Bingo)"
+ C|brooklyna "Brooklyn (set 2) (Bingo)"
+ c|bucky "Bucky O'Hare (ver EA)"
+ C|bucky "Bucky O'Hare (ver EAB)"
+ c|buckyaa "Bucky O'Hare (ver AA)"
+ C|buckyaab "Bucky O'Hare (ver AAB)"
+ c|buckyua "Bucky O'Hare (ver UA)"
+ C|buckyuab "Bucky O'Hare (ver UAB)"
+ C|bushido "Bushido (set 1)"
+ c|bushido "Bushido"
+ c|bushidoa "Bushido (alternate set)"
+ C|bushidoa "Bushido (set 2)"
+ c|castfant "Astro Fantasia (Cassette)"
+ C|castfant "Astro Fantasia (DECO Cassette)"
+ c|caveman "Caveman (Pinball/Video Combo)"
+ C|caveman "Caveman (Pinball/Video Combo, set 1)"
+ c|cbdash "Boulder Dash (Cassette)"
+ C|cbdash "Boulder Dash (DECO Cassette)"
+ c|cbnj "Bump 'n' Jump (Cassette)"
+ C|cbnj "Bump 'n' Jump (DECO Cassette)"
+ c|cbtime "Burger Time (Cassette)"
+ C|cbtime "Burger Time (DECO Cassette)"
+ c|cburnrub "Burnin' Rubber (Cassette, set 1)"
+ C|cburnrub "Burnin' Rubber (DECO Cassette, set 1)"
+ c|cburnrub2 "Burnin' Rubber (Cassette, set 2)"
+ C|cburnrub2 "Burnin' Rubber (DECO Cassette, set 2)"
+ c|cdiscon1 "Disco No.1 (Cassette)"
+ C|cdiscon1 "Disco No.1 (DECO Cassette)"
+ C|cdsteljn "DS Telejan (DECO Cassette, Japan)"
+ c|cexplore "Explorer (Cassette)"
+ C|cexplore "Explorer (DECO Cassette)"
+ c|cfghtice "Fighting Ice Hockey (Cassette)"
+ C|cfghtice "Fighting Ice Hockey (DECO Cassette)"
+ c|cflyball "Flying Ball (Cassette)"
+ C|cflyball "Flying Ball (DECO Cassette)"
+ c|cgraplop "Cluster Buster / Graplop (Cassette, set 1)"
+ C|cgraplop "Cluster Buster / Graplop (DECO Cassette, set 1)"
+ c|cgraplop2 "Cluster Buster / Graplop (Cassette, set 2)"
+ C|cgraplop2 "Cluster Buster / Graplop (DECO Cassette, set 2)"
+ C|chkun "Chance Kun (Japan)"
+ c|chkun "Chance Kun"
+ c|chwy "Highway Chase (Cassette)"
+ C|chwy "Highway Chase (DECO Cassette)"
+ c|clapapa "Rootin' Tootin' / La-Pa-Pa (Cassette)"
+ C|clapapa "Rootin' Tootin' / La-Pa-Pa (DECO Cassette)"
+ c|clapapa2 "Rootin' Tootin' (Cassette)"
+ C|clapapa2 "Rootin' Tootin' (DECO Cassette)"
+ C|cliffhgr "Cliff Hanger (set 1)"
+ c|cliffhgr "Cliff Hanger"
+ c|cliffhgra "Cliff Hanger (Alt)"
+ C|cliffhgra "Cliff Hanger (set 2)"
+ c|clocknch "Lock'n'Chase (Cassette)"
+ C|clocknch "Lock'n'Chase (DECO Cassette)"
+ c|cluckypo "Lucky Poker (Cassette)"
+ C|cluckypo "Lucky Poker (DECO Cassette)"
+ c|cmissnx "Mission-X (Cassette)"
+ C|cmissnx "Mission-X (DECO Cassette)"
+ c|cnightst "Night Star (Cassette, set 1)"
+ C|cnightst "Night Star (DECO Cassette, set 1)"
+ c|cnightst2 "Night Star (Cassette, set 2)"
+ C|cnightst2 "Night Star (DECO Cassette, set 2)"
+ C|congo "Congo Bongo (Rev C, 2 board stack)"
+ c|congo "Congo Bongo"
+ c|cppicf "Peter Pepper's Ice Cream Factory (Cassette, set 1)"
+ C|cppicf "Peter Pepper's Ice Cream Factory (DECO Cassette, set 1)"
+ c|cppicf2 "Peter Pepper's Ice Cream Factory (Cassette, set 2)"
+ C|cppicf2 "Peter Pepper's Ice Cream Factory (DECO Cassette, set 2)"
+ c|cprobowl "Pro Bowling (Cassette)"
+ C|cprobowl "Pro Bowling (DECO Cassette)"
+ c|cprogolf "Tournament Pro Golf (Cassette)"
+ C|cprogolf "Tournament Pro Golf (DECO Cassette)"
+ C|cprogolfj "Tournament Pro Golf (DECO Cassette, Japan)"
+ c|cpsoccer "Pro Soccer (Cassette)"
+ C|cpsoccer "Pro Soccer (DECO Cassette)"
+ c|cpsoccerj "Pro Soccer (Cassette, Japan)"
+ C|cpsoccerj "Pro Soccer (DECO Cassette, Japan)"
+ c|cptennis "Pro Tennis (Cassette)"
+ C|cptennis "Pro Tennis (DECO Cassette)"
+ c|cscrtry "Scrum Try (Cassette, set 1)"
+ C|cscrtry "Scrum Try (DECO Cassette, set 1)"
+ c|cscrtry2 "Scrum Try (Cassette, set 2)"
+ C|cscrtry2 "Scrum Try (DECO Cassette, set 2)"
+ C|csdtenis "Super Doubles Tennis (DECO Cassette, Japan)"
+ c|csuperas "Super Astro Fighter (Cassette)"
+ C|csuperas "Super Astro Fighter (DECO Cassette)"
+ c|csweetht "Sweet Heart (Cassette)"
+ C|csweetht "Sweet Heart (DECO Cassette)"
+ c|cterrani "Terranean (Cassette)"
+ C|cterrani "Terranean (DECO Cassette)"
+ c|ctisland "Treasure Island (Cassette, set 1)"
+ C|ctisland "Treasure Island (DECO Cassette, set 1)"
+ c|ctisland2 "Treasure Island (Cassette, set 2)"
+ C|ctisland2 "Treasure Island (DECO Cassette, set 2)"
+ c|ctisland3 "Treasure Island (Cassette, set 3)"
+ C|ctisland3 "Treasure Island (DECO Cassette, set 3)"
+ c|ctornado "Tornado (Cassette)"
+ C|ctornado "Tornado (DECO Cassette)"
+ c|ctsttape "Test Tape (Cassette)"
+ C|ctsttape "Test Tape (DECO Cassette)"
+ c|czeroize "Zeroize (Cassette)"
+ C|czeroize "Zeroize (DECO Cassette)"
+ C|darksealj "Dark Seal (Japan revision 4)"
+ c|darksealj "Dark Seal (Japan)"
+ c|ddp2 "Bee Storm - DoDonPachi II (ver. 102)"
+ C|ddp2 "DoDonPachi II - Bee Storm (Japan, ver. 102)"
+ c|ddp2100 "Bee Storm - DoDonPachi II (ver. 100)"
+ C|ddp2100 "DoDonPachi II - Bee Storm (Japan, ver. 100)"
+ c|ddp2101 "Bee Storm - DoDonPachi II (ver. 101)"
+ C|ddp2101 "DoDonPachi II - Bee Storm (Japan, ver. 101)"
+ c|deerhuntc "Deer Hunting USA V2"
+ C|deerhuntc "Deer Hunting USA V3"
+ C|deerhuntd "Deer Hunting USA V2"
+ c|dirtdvls "Dirt Devils (Revision A)"
+ C|dirtdvls "Dirt Devils (set 1) (Revision A)"
+ c|dirtdvlsa "Dirt Devils (alt) (Revision A)"
+ C|dirtdvlsa "Dirt Devils (set 2) (Revision A)"
+ c|disco_l1 "Disco Fever (L-1"
+ C|disco_l1 "Disco Fever (L-1)"
+ C|dmnfrnt "Demon Front (68k label V105, ROM M105XX 08/05/02) (ARM label V105, ROM 08/05/02 S105XX)"
+ c|dmnfrnt "Demon Front (ver. 102)"
+ C|dmnfrnta "Demon Front (68k label V102, ROM M102XX 06/19/02) (ARM label V102, ROM 05/24/02 S101XX)"
+ c|dmnfrnta "Demon Front (ver. 105)"
+ C|dmnfrntpcb "Demon Front (68k label V107KR, ROM M107KR 11/03/03) (ARM label V106KR, ROM 10/16/03 S106KR) (JAMMA PCB)"
+ c|doncdoon "Donchan no Hanabi de Doon"
+ C|doncdoon "Hanabi de Doon! - Don-chan Puzzle"
+ c|dynabb "Dynamite Baseball '97 (Revision A)"
+ C|dynabb "Dynamite Baseball"
+ C|dynabb97 "Dynamite Baseball 97 (Revision A)"
+ c|ec_laby "Labyrinth (Electrocoin) (?)"
+ C|ec_laby "Labyrinth (v8) (Electrocoin)"
+ c|ec_penni "Pennies From Heaven (Electrocoin) (?)"
+ C|ec_penni "Pennies From Heaven (v1) (Electrocoin)"
+ c|ec_pyram "Pyramid (Electrocoin) (?)"
+ C|ec_pyram "Pyramid (v6) (Electrocoin)"
+ c|ec_secrt "Secret Castle (Electrocoin) (?)"
+ C|ec_secrt "Secret Castle (v1) (Electrocoin)"
+ c|ec_sphin "Sphinx (Electrocoin) (?)"
+ C|ec_sphin "Sphinx (v1) (Electrocoin)"
+ c|ec_unkt "Unknown 'T' (MAB PCB?) (Concept Games Ltd) (?)"
+ C|ec_unkt "unknown 'T' (MAB PCB?) (Concept Games Ltd) (?)"
+ c|ep_beavr "Beaver Las Vegas (Global) (EPOCH, set 1)"
+ C|ep_beavr "Casino Beaver Las Vegas (Global) (EPOCH, set 1)"
+ c|ep_beavra "Beaver Las Vegas (Global) (EPOCH, set 2)"
+ C|ep_beavra "Casino Beaver Las Vegas (Global) (EPOCH, set 2)"
+ c|ep_milhr "Who Wants To Be A Millionhare (Global) (EPOCH)"
+ C|ep_milhr "Who Wants To Be A Millionhare? (Global) (EPOCH)"
+ c|ep_pkni "Phoenix Knights (Global) (EPOCH)"
+ C|ep_pkni "The Phoenix Knights (Global) (EPOCH)"
+ C|exctsccrj "Exciting Soccer (Japan set 1)"
+ c|exctsccrj "Exciting Soccer (Japan)"
+ C|eyeszacb "Eyes (bootleg set 2, decrypted)"
+ c|eyeszacb "Eyes (bootleg)"
+ c|falcnwlda "Falcons Wild - World Wide Poker (Video Klein)"
+ C|falcnwlda "Falcons Wild - World Wide Poker (Video Klein, set 1)"
+ c|falcnwldb "Falcons Wild - World Wide Poker (Falcon original)"
+ C|falcnwldb "Falcons Wild - World Wide Poker (Video Klein, set 2)"
+ C|falcnwldc "Falcons Wild - World Wide Poker (Falcon original)"
+ C|fashiong "Fashion Gambler (set 1)"
+ c|fashiong "Fashion Gambler"
+ C|fashiong2 "Fashion Gambler (set 2)"
+ c|fashiong2 "Fashion Gambler (Set 2)"
+ c|ffight "Final Fight (World)"
+ C|ffight "Final Fight (World, set 1)"
+ c|forgottnu "Forgotten Worlds (USA, B-Board 88621B-2)"
+ C|forgottnu "Forgotten Worlds (USA, B-Board 88621B-2, Rev. C)"
+ C|forgottnu1 "Forgotten Worlds (USA, B-Board 88618B-2, Rev. C)"
+ c|forgottnua "Forgotten Worlds (USA, B-Board 88618B-2)"
+ C|forgottnua "Forgotten Worlds (USA, B-Board 88618B-2, Rev. A)"
+ C|garou "Garou - Mark of the Wolves (NGM-2530)"
+ c|garou "Garou - Mark of the Wolves (set 1)"
+ C|garouh "Garou - Mark of the Wolves (NGM-2530)(NGH-2530)"
+ c|garouo "Garou - Mark of the Wolves (set 2)"
+ c|ggate "Golden Gate (Bingo)"
+ C|ggate "Golden Gate (set 1) (Bingo)"
+ c|ggatea "Golden Gate (alternate set)(Bingo)"
+ C|ggatea "Golden Gate (set 2) (Bingo)"
+ c|gl_coc "Carry On Clubbin' (Global) (Stealth)"
+ C|gl_coc "Carry On Clubbin' (Global) (v3.0) (Stealth)"
+ C|gl_coc29 "Carry On Clubbin' (Global) (v2.9) (Stealth)"
+ C|gl_coc29p "Carry On Clubbin' (Global) (v2.9 Protocol) (Stealth)"
+ C|gl_cocp "Carry On Clubbin' (Global) (v3.0 Protocol) (Stealth)"
+ c|gl_dow "Deals On Wheels (Global) (Stealth)"
+ C|gl_dow "Deals On Wheels (Global) (v1.4) (Stealth)"
+ c|gl_dowcl "Deals On Wheels Club (Global) (Stealth)"
+ C|gl_dowcl "Deals On Wheels Club (Global) (v1.6) (Stealth)"
+ C|gl_dowclp "Deals On Wheels Club (Global) (v1.6 Protocol) (Stealth)"
+ C|gl_dowp "Deals On Wheels (Global) (v1.4 Protocol) (Stealth)"
+ c|gl_hbh "Heartbreak Hotel (Global) (Stealth)"
+ C|gl_hbh "Heartbreak Hotel (Global) (v1.0) (Stealth)"
+ c|gl_hbhcl "Heartbreak Hotel Club (Global) (Stealth)"
+ C|gl_hbhcl "Heartbreak Hotel Club (Global) (v1.9) (Stealth)"
+ C|gl_hbhcla "Heartbreak Hotel Club (Global) (Set 2) (Stealth)"
+ C|gl_hbhclp "Heartbreak Hotel Club (Global) (v1.9 Protocol) (Stealth)"
+ c|gl_uyr "Up Yer Riggin Club (Global) (Stealth)"
+ C|gl_uyr "Up Yer Riggin Club (Global) (v2.8) (Stealth)"
+ C|gl_uyrp "Up Yer Riggin Club (Global) (v2.8 Protocol) (Stealth)"
+ c|gl_wywh "Wish You Were Here Club (Global) (Stealth)"
+ C|gl_wywh "Wish You Were Here Club (Global) (v2.9) (Stealth)"
+ C|gl_wywh24 "Wish You Were Here Club (Global) (v2.4) (Stealth)"
+ C|gl_wywh24p "Wish You Were Here Club (Global) (v2.4 Protocol) (Stealth)"
+ C|gl_wywhp "Wish You Were Here Club (Global) (v2.9 Protocol) (Stealth)"
+ C|goldball "Gold Ball (set 1)"
+ c|goldball "Gold Ball"
+ c|goldballn "Gold Ball (alternate set)"
+ C|goldballn "Gold Ball (set 2)"
+ C|goldmedl "Gold Medalist (set 1)"
+ c|goldmedl "Gold Medalist"
+ c|goldmedla "Gold Medalist (alt)"
+ C|goldmedla "Gold Medalist (set 2)"
+ c|granny "Granny and the Gators (Video/Pinball Combo)"
+ C|granny "Granny and the Gators"
+ C|gt103a1 "Trivia (Unsorted question roms)"
+ c|gt103a1 "Trivia (Version 1.03a) (alt 1)"
+ c|gt103a2 "Trivia (Version 1.03a) (alt 2)"
+ c|gt103a3 "Trivia (Version 1.03a) (alt 3)"
+ C|gt103aa "Trivia (Version 1.03a Alt questions 1)"
+ c|gt103aa "Trivia (Version 1.03a Alt questions)"
+ C|gt103ab "Trivia (Version 1.03a Alt questions 2)"
+ C|gulfstrm "Gulf Storm (set 1)"
+ c|gulfstrm "Gulf Storm"
+ C|gulfstrma "Gulf Storm (set 2)"
+ C|gundealrt "Gun Dealer (Japan)"
+ c|gundealrt "Gun Dealer (Korea)"
+ C|gunsur2 "Gun Survivor 2 Biohazard Code: Veronica (BHF1 Ver. A)"
+ c|gunsur2 "Gun Survivor 2 Biohazard Code: Veronica"
+ c|hb_mrmon "Mr Money (Qps)"
+ C|hb_mrmon "Mr. Money (Qps)"
+ C|hb_ydd "Yabba-Dabba-Dough (Qps)"
+ c|hb_ydd "Yabba Dabba Dough (Qps)"
+ C|hyhoo "Hayaoshi Taisen Quiz Hyhoo (Japan)"
+ c|hyhoo "Taisen Quiz HYHOO (Japan)"
+ C|hyhoo2 "Hayaoshi Taisen Quiz Hyhoo 2 (Japan)"
+ c|hyhoo2 "Taisen Quiz HYHOO 2 (Japan)"
+ C|hyperbbc "Hyper Bishi Bashi Champ (GQ876 VER. EAA)"
+ c|hyperbbc "Hyper Bishi Bashi Champ (GX908 1999/08/24 VER. JAA)"
+ C|hyperbbca "Hyper Bishi Bashi Champ (GQ876 VER. AAA)"
+ c|hyperbbck "Hyper Bishi Bashi Champ (GX908 1999/08/24 VER. KAA)"
+ c|j6cpal "Caesar's Palace (Whitbread / Crystal) (IMPACT, set 1)"
+ C|j6cpal "Caesars Palace (Whitbread / Crystal) (IMPACT, set 1)"
+ c|j6cpala "Caesar's Palace (Whitbread / Crystal) (IMPACT, set 2)"
+ C|j6cpala "Caesars Palace (Whitbread / Crystal) (IMPACT, set 2)"
+ c|j6cpalb "Caesar's Palace (Whitbread / Ace) (IMPACT)"
+ C|j6cpalb "Caesars Palace (Whitbread / Ace) (IMPACT)"
+ c|j6kapang "Kapang (Crystal) (IMPACT)"
+ C|j6kapang "Kapang! (Crystal) (IMPACT)"
+ c|jojo "JoJo's Venture (USA 990108)"
+ C|jojo "JoJo's Venture (USA 990128)"
+ c|jojoa "JoJo's Venture (USA 981202)"
+ c|jojoaj "JoJo no Kimyouna Bouken (Japan 981202)"
+ c|jojoan "JoJo's Venture (Asia 981202, NO CD)"
+ c|jojoba "JoJo no Kimyouna Bouken: Miraie no Isan (Japan 990913)"
+ C|jojoba "JoJo no Kimyouna Bouken: Miraie no Isan (Japan 990927)"
+ c|jojoban "JoJo no Kimyouna Bouken: Miraie no Isan (Japan 990913, NO CD)"
+ C|jojoban "JoJo no Kimyouna Bouken: Miraie no Isan (Japan 990927, NO CD)"
+ c|jojobane "JoJo's Bizarre Adventure (Euro 990913, NO CD)"
+ C|jojobane "JoJo's Bizarre Adventure (Euro 990927, NO CD)"
+ C|jojobaner1 "JoJo's Bizarre Adventure (Euro 990913, NO CD)"
+ C|jojobanr1 "JoJo no Kimyouna Bouken: Miraie no Isan (Japan 990913, NO CD)"
+ C|jojobar1 "JoJo no Kimyouna Bouken: Miraie no Isan (Japan 990913)"
+ c|jojoj "JoJo no Kimyouna Bouken (Japan 990108)"
+ C|jojoj "JoJo no Kimyouna Bouken (Japan 990128)"
+ C|jojojr1 "JoJo no Kimyouna Bouken (Japan 990108)"
+ C|jojojr2 "JoJo no Kimyouna Bouken (Japan 981202)"
+ c|jojon "JoJo's Venture (Asia 990108, NO CD)"
+ C|jojon "JoJo's Venture (Asia 990128, NO CD)"
+ C|jojonr1 "JoJo's Venture (Asia 990108, NO CD)"
+ C|jojonr2 "JoJo's Venture (Asia 981202, NO CD)"
+ C|jojor1 "JoJo's Venture (USA 990108)"
+ C|jojor2 "JoJo's Venture (USA 981202)"
+ C|jokpokera "Joker Poker (Version 16.03BI 5-10-85, Joker Poker ICB 9-30-86)"
+ c|jokpokera "Joker Poker (Version 16.03BI)"
+ C|kof99 "The King of Fighters '99 - Millennium Battle (NGM-2510)"
+ c|kof99 "The King of Fighters '99 - Millennium Battle (set 1)"
+ C|kof99h "The King of Fighters '99 - Millennium Battle (NGH-2510)"
+ c|kof99h "The King of Fighters '99 - Millennium Battle (set 2)"
+ c|kovlsjb "Knights of Valour: Luan Shi Jie Ba / Sangoku Senki: Luan Shi Jie Ba (ver. 200CN)"
+ C|kovlsjb "Knights of Valour: Luan Shi Jie Ba / Sangoku Senki: Luan Shi Jie Ba (ver. 200CN, set 1)"
+ c|kovlsjba "Knights of Valour: Luan Shi Jie Ba / Sangoku Senki: Luan Shi Jie Ba (alt ver. 200CN)"
+ C|kovlsjba "Knights of Valour: Luan Shi Jie Ba / Sangoku Senki: Luan Shi Jie Ba (ver. 200CN, set 2)"
+ c|kovplus "Knights of Valour Plus / Sangoku Senki Plus (ver. 119)"
+ C|kovplus "Knights of Valour Plus / Sangoku Senki Plus (ver. 119, set 1)"
+ c|kovplusa "Knights of Valour Plus / Sangoku Senki Plus (alt ver. 119)"
+ C|kovplusa "Knights of Valour Plus / Sangoku Senki Plus (ver. 119, set 2)"
+ C|kungfur "Kung-Fu Roushi"
+ c|kungfur "Kung Fu Roushi"
+ C|kungfut "Kung-Fu Taikun (set 1)"
+ c|kungfut "Kung-Fu Taikun"
+ c|kungfuta "Kung-Fu Taikun (alt)"
+ C|kungfuta "Kung-Fu Taikun (set 2)"
+ c|lhzb2a "Mahjong Long Hu Zheng Ba 2 (set 2)"
+ C|lhzb2a "Mahjong Long Hu Zheng Ba 2 (VS221M)"
+ c|m1corocb "Coronation Street Club (Maygay) (M1A/B)"
+ C|m1corocb "Coronation Street Club (Maygay) v2.1 (M1A/B)"
+ C|m1corocb1 "Coronation Street Club (Maygay) v1.1 (M1A/B)"
+ C|m1corocb1p "Coronation Street Club (Maygay) v1.1 (Protocol)(M1A/B)"
+ C|m1corocbp "Coronation Street Club (Maygay) v2.1 (Protocol) (M1A/B)"
+ c|m1cororr "Coronation Street - Rovers Return (Maygay) (M1A/B)"
+ C|m1cororr "Coronation Street - Rovers Return (Maygay) (set 1) (M1A/B)"
+ C|m1cororra "Coronation Street - Rovers Return (Maygay) (set 1) (Alternate) (M1A/B)"
+ C|m1cororrb "Coronation Street - Rovers Return (Maygay) (set 2) (M1A/B)"
+ C|m1cororrb1 "Coronation Street - Rovers Return (Maygay) (set 2) (Alternate) (M1A/B)"
+ C|m1cororrbh "Coronation Street - Rovers Return (Maygay) (set 2) (Hack) (M1A/B)"
+ C|m1cororrbp "Coronation Street - Rovers Return (Maygay) (set 2) (Protocol) (M1A/B)"
+ C|m1cororrc "Coronation Street - Rovers Return (Maygay) (set 3) (M1A/B)"
+ C|m1cororrc1 "Coronation Street - Rovers Return (Maygay) (set 3) (Alternate 1) (M1A/B)"
+ C|m1cororrc2 "Coronation Street - Rovers Return (Maygay) (set 3) (Alternate 2) (M1A/B)"
+ C|m1cororrd "Coronation Street - Rovers Return (Maygay) (set 4) (M1A/B)"
+ C|m1cororrdp "Coronation Street - Rovers Return (Maygay) (set 4) (Protocol) (M1A/B)"
+ C|m1cororre "Coronation Street - Rovers Return (Maygay) (set 5) (M1A/B)"
+ C|m1cororrf "Coronation Street - Rovers Return (Maygay) (set 6) (BW) (M1A/B)"
+ C|m1cororrfp "Coronation Street - Rovers Return (Maygay) (set 6) (BW) (Protocol) (M1A/B)"
+ C|m1cororrg "Coronation Street - Rovers Return (Maygay) (set 7) (M1A/B)"
+ C|m1cororrgp "Coronation Street - Rovers Return (Maygay) (set 7) (Protocol) (M1A/B)"
+ C|m1cororrh "Coronation Street - Rovers Return (Maygay) (set 8) (M1A/B)"
+ C|m1cororri "Coronation Street - Rovers Return (Maygay) (set 9) (M1A/B)"
+ C|m1cororrip "Coronation Street - Rovers Return (Maygay) (set 9) (Protocol) (M1A/B)"
+ C|m1cororrj "Coronation Street - Rovers Return (Maygay) (set 10) (M1A/B)"
+ C|m1cororrjp "Coronation Street - Rovers Return (Maygay) (set 10) (Protocol) (M1A/B)"
+ C|m1cororrk "Coronation Street - Rovers Return (Maygay) (set 11) (M1A/B)"
+ C|m1cororrl "Coronation Street - Rovers Return (Maygay) (set 12) (M1A/B)"
+ C|m1cororrlp "Coronation Street - Rovers Return (Maygay) (set 12) (Protocol) (M1A/B)"
+ C|m1cororrp "Coronation Street - Rovers Return (Maygay) (set 1) (Protocol) (M1A/B)"
+ c|m1corosh "Coronation Street Showcase (Maygay) (M1A/B)"
+ C|m1corosh "Coronation Street Showcase (Maygay) v1.1 (M1A/B)"
+ C|m1coroshp "Coronation Street Showcase (Maygay) v1.1 (Protocol)(M1A/B)"
+ C|m1criss "Criss Cross Club (Maygay) (Dutch) (M1A/B)"
+ c|m1criss "Criss Cross Club (Maygay) (M1A/B)"
+ c|m1dkong "Donkey Kong (Maygay) (M1A/B)"
+ C|m1dkong "Donkey Kong (Maygay) v9.2 (M1A/B)"
+ C|m1dkong11 "Donkey Kong (Maygay) v1.1 (M1A/B)"
+ C|m1dkong11p "Donkey Kong (Maygay) v1.1 (M1A/B) (Protocol?)"
+ C|m1dkong21 "Donkey Kong (Maygay) v2.1 (Older) (M1A/B)"
+ C|m1dkong21n "Donkey Kong (Maygay) v2.1 (M1A/B)"
+ C|m1dkong21p "Donkey Kong (Maygay) v2.1 (Older) (Protocol) (M1A/B)"
+ C|m1dkong31 "Donkey Kong (Maygay) v3.1 (M1A/B)"
+ C|m1dkong31p "Donkey Kong (Maygay) v3.1 (Protocol) (M1A/B)"
+ C|m1dkong41 "Donkey Kong (Maygay) v4.1 (M1A/B)"
+ C|m1dkong41p "Donkey Kong (Maygay) v4.1 (Protocol) (M1A/B)"
+ C|m1dkong51 "Donkey Kong (Maygay) v5.1 (M1A/B)"
+ C|m1dkong51p "Donkey Kong (Maygay) v5.1 (Protocol) (M1A/B)"
+ C|m1dkong81 "Donkey Kong (Maygay) v8.1 (Older) (M1A/B)"
+ C|m1dkong81n "Donkey Kong (Maygay) v8.1 (M1A/B)"
+ C|m1dkong81na "Donkey Kong (Maygay) v8.1 (Alternate) (M1A/B)"
+ C|m1dkong81np "Donkey Kong (Maygay) v8.1 (Protocol) (M1A/B)"
+ C|m1dkong81p "Donkey Kong (Maygay) v8.1 (Older) (Protocol) (M1A/B)"
+ C|m1dkong91 "Donkey Kong (Maygay) v9.1 (Older) (M1A/B)"
+ C|m1dkong91a "Donkey Kong (Maygay) v9.1 (Older) (Alternate) (M1A/B)"
+ C|m1dkong91h1 "Donkey Kong (Maygay) v9.1 (Older) (Hack 1) (M1A/B)"
+ C|m1dkong91h2 "Donkey Kong (Maygay) v9.1 (Older) (Hack 2) (M1A/B)"
+ C|m1dkong91n "Donkey Kong (Maygay) v9.1 (M1A/B)"
+ C|m1dkong91na "Donkey Kong (Maygay) v9.1 (Alternate) (M1A/B)"
+ C|m1dkong91np "Donkey Kong (Maygay) v9.1 (Protocol) (M1A/B)"
+ C|m1dkong91p "Donkey Kong (Maygay) v9.1 (Older) (Protocol) (M1A/B)"
+ C|m1dkonga "Donkey Kong (Maygay) v9.2 (Alternate) (M1A/B)"
+ C|m1dkongp "Donkey Kong (Maygay) v9.2 (Protocol) (M1A/B)"
+ c|m1dm4ev "Diamonds Are Forever Club (Maygay) (M1A/B)"
+ C|m1dm4ev "Diamonds Are Forever Club (Maygay) v5.1 (M1A/B)"
+ C|m1dm4ev11 "Diamonds Are Forever Club (Maygay) v1.1 (M1A/B)"
+ C|m1dm4evp "Diamonds Are Forever Club (Maygay) v5.1 (Protocol) n(M1A/B)"
+ c|m1dxmono "Deluxe Monopoly (Maygay) (M1A/B)"
+ C|m1dxmono "Deluxe Monopoly (Maygay) v5.1 (M1A/B)"
+ C|m1dxmono11 "Deluxe Monopoly (Maygay) v1.1 (M1A/B)"
+ C|m1dxmono11m "Deluxe Monopoly (Maygay) v1.1 (Code M) (M1A/B)"
+ C|m1dxmono11mb "Deluxe Monopoly (Maygay) v1.1 (Code M, Alternate) (M1A/B)"
+ C|m1dxmono11o "Deluxe Monopoly (Maygay) v1.1 (Older) (M1A/B)"
+ C|m1dxmono11p "Deluxe Monopoly (Maygay) v1.1 (Protocol) (M1A/B)"
+ C|m1dxmono12 "Deluxe Monopoly (Maygay) v1.2 (M1A/B)"
+ C|m1dxmono12a "Deluxe Monopoly (Maygay) v1.2 (Alternate) (M1A/B)"
+ C|m1dxmono12n "Deluxe Monopoly (Maygay) v1.2 (Newer) (M1A/B)"
+ C|m1dxmono12p "Deluxe Monopoly (Maygay) v1.2 (Protocol) (M1A/B)"
+ C|m1dxmono21p "Deluxe Monopoly (Maygay) v2.1 (Protocol) (M1A/B)"
+ C|m1dxmono30h "Deluxe Monopoly (Maygay) v3.0 (Hack) (M1A/B)"
+ C|m1dxmono31b "Deluxe Monopoly (Maygay) v3.1 (BwB set) (M1A/B)"
+ C|m1dxmono31h "Deluxe Monopoly (Maygay) v3.1 (Hack) (M1A/B)"
+ C|m1dxmono31h2 "Deluxe Monopoly (Maygay) v3.1 (Alternate Hack) (M1A/B)"
+ C|m1dxmono31p "Deluxe Monopoly (Maygay) v3.1 (Protocol) (M1A/B)"
+ C|m1dxmono51 "Deluxe Monopoly (Maygay) v5.1 (Older) (M1A/B)"
+ C|m1dxmono51o "Deluxe Monopoly (Maygay) v5.1 (Older) (M1A/B) (alt?)"
+ C|m1dxmono51p "Deluxe Monopoly (Maygay) v5.1 (Older) (Protocol) (M1A/B)"
+ C|m1dxmonop "Deluxe Monopoly (Maygay) v5.1 (Protocol) (M1A/B)"
+ C|m1liveam "Living In America (Maygay) (Alternate 1) (M1A/B)"
+ c|m1liveam "Living In America (Maygay) (M1A/B)"
+ C|m1liveama "Living In America (Maygay) (Alternate 2)(M1A/B)"
+ C|m1liveamp "Living In America (Maygay) (Protocol) (M1A/B)"
+ c|m1luxor "Luxor Casino (Gemini) (M1A/B)"
+ C|m1luxor "Luxor Casino (Gemini) v4.0 (M1A/B)"
+ C|m1luxor21 "Luxor Casino (Gemini) v2.1 (M1A/B)"
+ C|m1luxor32 "Luxor Casino (Gemini) v3.2 (M1A/B)"
+ C|m1luxor33 "Luxor Casino (Gemini) v3.3 (M1A/B)"
+ C|m5addams "Addams Family (Barcrest) (MPU5) (v0.5, set 1)"
+ c|m5addams "Addams Family (Barcrest) (MPU5)"
+ C|m5addamsa "Addams Family (Barcrest) (MPU5) (v0.5, set 2)"
+ C|m5addamsb "Addams Family (Barcrest) (MPU5) (v0.5, set 3)"
+ C|m5addamsc "Addams Family (Barcrest) (MPU5) (v0.5, set 4)"
+ C|m5addamsd "Addams Family (Barcrest) (MPU5) (v0.5, set 5)"
+ C|m5addamse "Addams Family (Barcrest) (MPU5) (v0.5, set 6)"
+ C|m5addamsf "Addams Family (Barcrest) (MPU5) (v0.5, set 7)"
+ C|m5addamsg "Addams Family (Barcrest) (MPU5) (v0.5, set 8)"
+ C|m5addamsh "Addams Family (Barcrest) (MPU5) (v0.2, set 1)"
+ C|m5addamsi "Addams Family (Barcrest) (MPU5) (v0.2, set 2)"
+ C|m5addamsj "Addams Family (Barcrest) (MPU5) (v0.2, set 3)"
+ C|m5addamsk "Addams Family (Barcrest) (MPU5) (v0.3, set 1)"
+ C|m5addamsl "Addams Family (Barcrest) (MPU5) (v0.3, set 2)"
+ C|m5addamsm "Addams Family (Barcrest) (MPU5) (v0.3, set 3)"
+ C|m5addamsn "Addams Family (Barcrest) (MPU5) (v0.3, set 4)"
+ C|m5addamso "Addams Family (Barcrest) (MPU5) (v0.3, set 5)"
+ C|m5addamsp "Addams Family (Barcrest) (MPU5) (v0.3, set 6)"
+ C|m5addamsq "Addams Family (Barcrest) (MPU5) (v0.3, set 7)"
+ C|m5addamsr "Addams Family (Barcrest) (MPU5) (v0.3, set 8)"
+ C|m5addamss "Addams Family (Barcrest) (MPU5) (v0.3, set 9)"
+ c|m5addlad "Adders & Ladders (Barcrest) (MPU5, set 1)"
+ C|m5addlad "Adders & Ladders (Barcrest) (MPU5, v0.6, set 1)"
+ c|m5addlada "Adders & Ladders (Barcrest) (MPU5, set 2)"
+ C|m5addlada "Adders & Ladders (Barcrest) (MPU5, v0.6, set 2)"
+ c|m5addladb "Adders & Ladders (Barcrest) (MPU5, set 3)"
+ C|m5addladb "Adders & Ladders (Barcrest) (MPU5, v0.6, set 3)"
+ C|m5addladc "Adders & Ladders (Barcrest) (MPU5, v0.6, set 4)"
+ C|m5addladd "Adders & Ladders (Barcrest) (MPU5, v0.6, set 5)"
+ C|m5addlade "Adders & Ladders (Barcrest) (MPU5, v0.6, set 6)"
+ C|m5addladf "Adders & Ladders (Barcrest) (MPU5, v0.6, set 7)"
+ C|m5addladg "Adders & Ladders (Barcrest) (MPU5, v0.6, set 8)"
+ C|m5addladh "Adders & Ladders (Barcrest) (MPU5, v0.6, set 9)"
+ C|m5addladi "Adders & Ladders (Barcrest) (MPU5, v0.6, set 10)"
+ C|m5addladj "Adders & Ladders (Barcrest) (MPU5, v0.1, set 1)"
+ C|m5addladk "Adders & Ladders (Barcrest) (MPU5, v0.1, set 2)"
+ C|m5addladl "Adders & Ladders (Barcrest) (MPU5, v0.1, set 3)"
+ C|m5addladm "Adders & Ladders (Barcrest) (MPU5, v0.1, set 4)"
+ C|m5addladn "Adders & Ladders (Barcrest) (MPU5, v0.1, set 5)"
+ C|m5addlado "Adders & Ladders (Barcrest) (MPU5, v0.1, set 6)"
+ C|m5addladp "Adders & Ladders (Barcrest) (MPU5, v0.1, set 7)"
+ C|m5addladq "Adders & Ladders (Barcrest) (MPU5, v0.4, set 1)"
+ C|m5addladr "Adders & Ladders (Barcrest) (MPU5, v0.4, set 2)"
+ C|m5addlads "Adders & Ladders (Barcrest) (MPU5, v?.?)"
+ C|m5all41a "All 4 One (Vivid) (MPU5, set 2)"
+ C|m5all41b "All 4 One (Vivid) (MPU5, set 3)"
+ C|m5all41c "All 4 One (Vivid) (MPU5, set 4)"
+ C|m5all41d "All 4 One (Vivid) (MPU5, set 5)"
+ C|m5all41e "All 4 One (Vivid) (MPU5, set 6)"
+ C|m5all41f "All 4 One (Vivid) (MPU5, set 7)"
+ C|m5all41g "All 4 One (Vivid) (MPU5, set 8)"
+ C|m5all41h "All 4 One (Vivid) (MPU5, set 9)"
+ C|m5all41i "All 4 One (Vivid) (MPU5, set 10)"
+ C|m5all41j "All 4 One (Vivid) (MPU5, set 11)"
+ C|m5all41k "All 4 One (Vivid) (MPU5, set 12)"
+ c|m5all41l "All 4 One (Lowen) (MPU5)"
+ C|m5all41l "All 4 One (Vivid) (MPU5, set 13)"
+ C|m5all41low "All 4 One (Lowen) (MPU5)"
+ C|m5all41m "All 4 One (Vivid) (MPU5, set 14)"
+ c|m5all41v "All 4 One (Vivid) (MPU5, set 2)"
+ c|m5ashock "Aftershock (Barcrest - Red Gaming) (MPU5)"
+ C|m5ashock "Aftershock (Barcrest - Red Gaming) (MPU5, v1.2)"
+ C|m5ashocka "Aftershock (Barcrest - Red Gaming) (MPU5, v1.3)"
+ c|m5atlan "Atlantic (Vivid) (MPU5)"
+ C|m5atlan "Atlantic (Vivid) (MPU5, v1.4)"
+ C|m5atlana "Atlantic (Vivid) (MPU5, v1.2)"
+ c|m5cockdd "Cock A Doodle Dough (Empire) (MPU5)"
+ C|m5cockdd "Cock A Doodle Dough! (Empire) (MPU5)"
+ C|m5doshpk "Do$h 'n' Pecks (Barcrest) (MPU5)"
+ c|m5doshpk "Do$h & Pecks (Barcrest) (MPU5)"
+ C|m5fewmor "A Few Dollars More (Empire) (MPU5) (v0.2, set 1)"
+ c|m5fewmor "A Few Dollars More (Empire) (MPU5)"
+ C|m5fewmora "A Few Dollars More (Empire) (MPU5) (v0.2, set 2)"
+ C|m5fewmorb "A Few Dollars More (Empire) (MPU5) (v0.3, set 1)"
+ C|m5fewmorc "A Few Dollars More (Empire) (MPU5) (v0.3, set 2)"
+ c|m5fmonty "Full Monty (Empire) (MPU5)"
+ C|m5fmonty "The Full Monty (Empire) (MPU5)"
+ c|m5sixsht "6 Shooter (Vivid) (MPU5)"
+ C|m5sixsht "Six Shooter (Vivid) (MPU5) (v1.1, set 1)"
+ C|m5sixshta "Six Shooter (Vivid) (MPU5) (v1.1, set 2)"
+ c|m5sixshta "Six Shooter (Vivid) (MPU5)"
+ C|m5sixshtb "Six Shooter (Vivid) (MPU5) (v2.0, set 1)"
+ C|m5sixshtc "Six Shooter (Vivid) (MPU5) (v2.0, set 2)"
+ C|m5sixshtd "Six Shooter (Vivid) (MPU5) (v2.0, set 3)"
+ C|m5sixshte "Six Shooter (Vivid) (MPU5) (v2.0, set 4)"
+ C|m5sixshtf "Six Shooter (Vivid) (MPU5) (v2.0, set 5)"
+ C|m5sixshtg "Six Shooter (Vivid) (MPU5) (v2.0, set 6)"
+ C|m5sixshth "Six Shooter (Vivid) (MPU5) (v2.0, set 7)"
+ C|m5sixshti "Six Shooter (Vivid) (MPU5) (v2.1, set 1)"
+ C|m5sixshtj "Six Shooter (Vivid) (MPU5) (v2.1, set 2)"
+ C|m5sixshtk "Six Shooter (Vivid) (MPU5) (v2.1, set 3)"
+ C|m5sixshtl "Six Shooter (Vivid) (MPU5) (v2.1, set 4)"
+ C|m5sixshtm "Six Shooter (Vivid) (MPU5) (v2.1, set 5)"
+ C|m5sixshtn "Six Shooter (Vivid) (MPU5) (v2.1, set 6)"
+ C|mdrawpkr "Draw Poker - Joker's Wild (Standard)"
+ c|mdrawpkr "Draw Poker Joker's Wild (Standard)"
+ C|mdrawpkra "Draw Poker - Joker's Wild (02-11)"
+ c|mdrawpkra "Draw Poker Joker's Wild (02-11)"
+ C|mirax "Mirax (set 1)"
+ c|mirax "Mirax"
+ c|mkyawdim "Mortal Kombat (Yawdim bootleg)"
+ C|mkyawdim "Mortal Kombat (Yawdim bootleg, set 1)"
+ C|mkyawdim2 "Mortal Kombat (Yawdim bootleg, set 2)"
+ C|mkyturboe "Mortal Kombat (Turbo 3.0 08/31/92, hack)"
+ c|mladyhtr "Mahjong THE LADY HUNTER (Japan 900509)"
+ C|mladyhtr "Mahjong The Lady Hunter (Japan 900509)"
+ c|mmatrixd "Mars Matrix: Hyper Solid Shooting (Japan 000412 Phoenix Edition) (bootleg)"
+ C|mmatrixd "Mars Matrix: Hyper Solid Shooting (USA 000412 Phoenix Edition) (bootleg)"
+ c|moomesa "Wild West C.O.W.-Boys of Moo Mesa (ver EA)"
+ C|moomesa "Wild West C.O.W.-Boys of Moo Mesa (ver EAB)"
+ c|moomesaa "Wild West C.O.W.-Boys of Moo Mesa (ver AA)"
+ C|moomesaaab "Wild West C.O.W.-Boys of Moo Mesa (ver AAB)"
+ c|moomesabl "Wild West C.O.W.-Boys of Moo Mesa (bootleg ver AA)"
+ C|moomesabl "Wild West C.O.W.-Boys of Moo Mesa (bootleg)"
+ c|moomesau "Wild West C.O.W.-Boys of Moo Mesa (ver UA, set 1)"
+ c|moomesaua "Wild West C.O.W.-Boys of Moo Mesa (ver UA, set 2)"
+ C|moomesauab "Wild West C.O.W.-Boys of Moo Mesa (ver UAB)"
+ C|moomesauac "Wild West C.O.W.-Boys of Moo Mesa (ver UAC)"
+ C|motrshow "Motor Show (set 1)"
+ c|motrshow "Motor Show"
+ c|motrshowa "Motor Show (alternate set)"
+ C|motrshowa "Motor Show (set 2)"
+ C|mshuttle "Moon Shuttle (US? set 1)"
+ c|mshuttle "Moon Shuttle (US?)"
+ C|mshuttlej "Moon Shuttle (Japan set 1)"
+ c|mshuttlej "Moon Shuttle (Japan)"
+ C|mslug2 "Metal Slug 2 - Super Vehicle-001/II (NGM-2410)(NGH-2410)"
+ c|mslug2 "Metal Slug 2 - Super Vehicle-001/II"
+ C|mslugx "Metal Slug X - Super Vehicle-001 (NGM-2500)(NGH-2500)"
+ c|mslugx "Metal Slug X - Super Vehicle-001"
+ C|mspacii "Ms. Pac-Man II (Orca bootleg set 1)"
+ C|mspacii2 "Ms. Pac-Man II (Orca bootleg set 2)"
+ c|nzerotea "New Zero Team"
+ C|nzeroteam "New Zero Team"
+ c|olds100 "Oriental Legend Special / Xi You Shi E Zhuan Super (ver. 100)"
+ C|olds100 "Oriental Legend Special / Xi You Shi E Zhuan Super (ver. 100, set 1)"
+ c|olds100a "Oriental Legend Special / Xi You Shi E Zhuan Super (alt ver. 100)"
+ C|olds100a "Oriental Legend Special / Xi You Shi E Zhuan Super (ver. 100, set 2)"
+ C|prosport "Pro Sports - Bowling, Tennis, and Golf (set 1)"
+ c|prosport "Pro Sports - Bowling, Tennis, and Golf"
+ c|prosporta "Pro Sports - Bowling, Tennis, and Golf (alternate)"
+ C|prosporta "Pro Sports - Bowling, Tennis, and Golf (set 2)"
+ c|pzloop2j "Puzz Loop 2 (Japan 010205)"
+ C|pzloop2j "Puzz Loop 2 (Japan 010226)"
+ C|pzloop2jr1 "Puzz Loop 2 (Japan 010205)"
+ C|quasar "Quasar (set 1)"
+ c|quasar "Quasar"
+ c|quasara "Quasar (Alternate)"
+ C|quasara "Quasar (set 2)"
+ C|rastan "Rastan (World Rev 1)"
+ c|rastan "Rastan (World)"
+ C|rastana "Rastan (World)"
+ C|rastanu "Rastan (US Rev 1)"
+ c|rastanu "Rastan (US, set 1)"
+ c|rastanu2 "Rastan (US, set 2)"
+ C|rastanua "Rastan (US)"
+ C|rastanub "Rastan (US, Earlier code base)"
+ C|rastsaga "Rastan Saga (Japan Rev 1)"
+ c|rastsaga "Rastan Saga (Japan)"
+ c|rastsaga1 "Rastan Saga (Japan Rev 1)"
+ C|rastsagaa "Rastan Saga (Japan)"
+ C|rdft2j "Raiden Fighters 2 (Japan set 1, SPI)"
+ c|rdft2j "Raiden Fighters 2 (Japan, SPI)"
+ c|redeartha "Red Earth (Euro 961023)"
+ C|redearthr1 "Red Earth (Euro 961023)"
+ C|redfoxwp2 "Red Fox War Planes II (China)"
+ c|samsh5sph "Samurai Shodown V Special / Samurai Spirits Zero Special (NGH-2720) (1st release, censored)"
+ C|samsh5sph "Samurai Shodown V Special / Samurai Spirits Zero Special (NGH-2720) (2nd release, less censored)"
+ C|samsh5spho "Samurai Shodown V Special / Samurai Spirits Zero Special (NGH-2720) (1st release, censored)"
+ c|samsh5spn "Samurai Shodown V Special / Samurai Spirits Zero Special (NGH-2720) (2nd release, less censored)"
+ c|sc1barcd "Barcode (Bellfruit) (Scorpion 1)"
+ C|sc1barcd "Barcode (Bellfruit) (set 1) (Scorpion 1)"
+ C|sc1barcda "Barcode (Bellfruit) (set 2) (Scorpion 1)"
+ c|sc1btclk "Beat The Clock (Mdm) (Scorpion 2/3)"
+ C|sc1btclk "Beat The Clock (Mdm) (set 1) (Scorpion 2/3?)"
+ C|sc1btclka "Beat The Clock (Mdm) (set 2) (Scorpion 2/3?)"
+ C|sc1btclkb "Beat The Clock (Mdm) (set 3) (Scorpion 2/3?)"
+ c|sc1ccroc "Crazy Crocs (Mdm) (Scorpion 2/3)"
+ C|sc1ccroc "Crazy Crocs (Mdm) (set 1) (Scorpion 2/3?)"
+ C|sc1ccroca "Crazy Crocs (Mdm) (set 2) (Scorpion 2/3?)"
+ C|sc1ccrocb "Crazy Crocs (Mdm) (set 3) (Scorpion 2/3?)"
+ C|sc1ccrocc "Crazy Crocs (Mdm) (set 4) (Scorpion 2/3?)"
+ c|sc1cdm "Club Diamond (Crystal) (Scorpion 1)"
+ C|sc1cdm "Club Diamond (Crystal) (set 1) (Scorpion 1)"
+ C|sc1cdmp "Club Diamond (Crystal) (set 1, Protocol) (Scorpion 1)"
+ C|sc1cexpd "Cash Explosion (Bellfruit) (Dutch) (Scorpion 1)"
+ c|sc1cexpd "Cash Explosion (Bellfruit) [Dutch] (Scorpion 1)"
+ c|sc1cexpl "Cash Explosion (Bellfruit) (Scorpion 1)"
+ C|sc1cexpl "Cash Explosion (Bellfruit) (set 1) (Scorpion 1)"
+ C|sc1cexpla "Cash Explosion (Bellfruit) (set 2) (Scorpion 1)"
+ C|sc1cexplb "Cash Explosion (Bellfruit) (set 3) (Scorpion 1)"
+ C|sc1cexplc "Cash Explosion (Bellfruit) (set 4) (Scorpion 1)"
+ C|sc1cexpld "Cash Explosion (Bellfruit) (set 5) (Scorpion 1)"
+ c|sc1chain "Chain Reaction (Bellfruit) (Scorpion 1)"
+ C|sc1chain "Chain Reaction (Bellfruit) (set 1) (Scorpion 1)"
+ C|sc1chaina "Chain Reaction (Bellfruit) (set 2) (Scorpion 1)"
+ C|sc1chainp "Chain Reaction (Bellfruit) (set 1, Protocol) (Scorpion 1)"
+ c|sc1china "China Town Club (Bellfruit) (Scorpion 1)"
+ C|sc1china "China Town Club (Bellfruit) (set 1) (Scorpion 1)"
+ C|sc1chinaa "China Town Club (Bellfruit) (set 2) (Scorpion 1)"
+ C|sc1chinaap "China Town Club (Bellfruit) (set 2, Protocol) (Scorpion 1)"
+ C|sc1chinab "China Town Club (Bellfruit) (set 3) (Scorpion 1)"
+ C|sc1chinabp "China Town Club (Bellfruit) (set 3, Protocol) (Scorpion 1)"
+ C|sc1chinap "China Town Club (Bellfruit) (set 1, Protocol) (Scorpion 1)"
+ C|sc1cl2k1 "Club 2001 (Bellfruit) (Dutch) (Scorpion 1)"
+ c|sc1cl2k1 "Club 2001 (Bellfruit) [Dutch] (Scorpion 1)"
+ c|sc1cl65 "Club 65 Special (Bellfruit) (Scorpion 1)"
+ C|sc1cl65 "Club 65 Special (Bellfruit) (set 1) (Scorpion 1)"
+ C|sc1cl65a "Club 65 Special (Bellfruit) (set 2) (Scorpion 1)"
+ C|sc1cl65ap "Club 65 Special (Bellfruit) (set 2, Protocol) (Scorpion 1)"
+ C|sc1cl65b "Club 65 Special (Bellfruit) (set 3) (Scorpion 1)"
+ C|sc1cl65bp "Club 65 Special (Bellfruit) (set 3, Protocol) (Scorpion 1)"
+ C|sc1cl65c "Club 65 Special (Bellfruit) (set 4) (Scorpion 1)"
+ C|sc1cl65d "Club 65 Special (Bellfruit) (set 5) (Scorpion 1)"
+ C|sc1cl65dp "Club 65 Special (Bellfruit) (set 5, Protocol) (Scorpion 1)"
+ C|sc1class "Classic (Bellfruit) (Dutch) (Scorpion 1)"
+ c|sc1class "Classic (Bellfruit) [Dutch] (Scorpion 1)"
+ c|sc1clbtm "Club Temptation (Bellfruit) (Scorpion 1)"
+ C|sc1clbtm "Club Temptation (Bellfruit) (set 1) (Scorpion 1)"
+ C|sc1clbtma "Club Temptation (Bellfruit) (set 2) (Scorpion 1)"
+ c|sc1clbw "Club Wise (Bellfruit) (Scorpion 1)"
+ C|sc1clbw "Club Wise (Bellfruit) (set 1) (Scorpion 1)"
+ C|sc1clbwa "Club Wise (Bellfruit) (set 2) (Scorpion 1)"
+ C|sc1clbwb "Club Wise (Bellfruit) (set 3) (Scorpion 1)"
+ C|sc1copdd "Cops 'n' Robbers Deluxe (Bellfruit) (Dutch) (Scorpion 1)"
+ c|sc1copdd "Cops 'n' Robbers Deluxe (Bellfruit) [Dutch] (Scorpion 1)"
+ c|sc1count "Count Cash Club (Bellfruit) (Scorpion 1)"
+ C|sc1count "Count Cash Club (Bellfruit) (set 1) (Scorpion 1)"
+ C|sc1counta "Count Cash Club (Bellfruit) (set 2) (Scorpion 1)"
+ C|sc1countap "Count Cash Club (Bellfruit) (set 2, Protocol) (Scorpion 1)"
+ C|sc1countb "Count Cash Club (Bellfruit) (set 3) (Scorpion 1)"
+ C|sc1countp "Count Cash Club (Bellfruit) (set 1, Protocol) (Scorpion 1)"
+ c|sc1crocr "Croc And Roll (Mdm) (Scorpion 2/3)"
+ C|sc1crocr "Croc And Roll (Mdm) (Scorpion 2/3?)"
+ C|sc1cscl "Cash Classic (Global) (set 1)"
+ c|sc1cscl "Cash Classic (Global)"
+ C|sc1cscla "Cash Classic (Global) (set 2)"
+ C|sc1csclb "Cash Classic (Maygay/Global?) (set 3)"
+ C|sc1csclc "Cash Classic (Maygay/Global?) (set 4)"
+ c|sc1cshat "Cash Attraction (Bellfruit) (Scorpion 1)"
+ C|sc1cshat "Cash Attraction (Bellfruit) (set 1) (Scorpion 1)"
+ C|sc1cshata "Cash Attraction (Bellfruit) (set 2) (Scorpion 1)"
+ C|sc1cshatb "Cash Attraction (Bellfruit) (set 3) (Scorpion 1)"
+ C|sc1cshatc "Cash Attraction (Bellfruit) (set 4) (Scorpion 1)"
+ c|sc1cshcda "Cash Card (Bellfruit) (Scorpion 1, set 1)"
+ C|sc1cshcda "Cash Card (Bellfruit) (set 1) (Scorpion 1)"
+ c|sc1cshcdb "Cash Card (Bellfruit) (Scorpion 1, set 2)"
+ C|sc1cshcdb "Cash Card (Bellfruit) (set 2) (Scorpion 1)"
+ C|sc1cshin "Cashino (Bellfruit) (Dutch) (Scorpion 1)"
+ c|sc1cshin "Cashino (Bellfruit) [Dutch] (Scorpion 1)"
+ c|sc1cshwz "Cash Wise (Bellfruit) (Scorpion 1)"
+ C|sc1cshwz "Cash Wise (Bellfruit) (set 1) (Scorpion 1)"
+ C|sc1cshwza "Cash Wise (Bellfruit) (set 2) (Scorpion 1)"
+ C|sc1cshwzb "Cash Wise (Bellfruit) (set 3) (Scorpion 1)"
+ C|sc1cshwzc "Cash Wise (Bellfruit) (set 4) (Scorpion 1)"
+ C|sc1dago "Dagobert's Vault (Bellfruit) (Dutch) (Scorpion 1)"
+ c|sc1dago "Dagobert's Vault (Bellfruit) [Dutch] (Scorpion 1)"
+ C|sc1days "All In A Days Work (Global) (set 1)"
+ c|sc1days "All In A Days Work (Global)"
+ C|sc1daysa "All In A Days Work (Global) (set 2)"
+ c|sc1dblch "Double Chance (Bellfruit) (Scorpion 1)"
+ C|sc1dblch "Double Chance (Bellfruit) (set 1) (Scorpion 1)"
+ C|sc1dblcha "Double Chance (Bellfruit) (set 2) (Scorpion 1)"
+ C|sc1disc "Discovey (Bellfruit) (Dutch) (set 1) (Scorpion 1)"
+ c|sc1disc "Discovey (Bellfruit) [Dutch] (Scorpion 1)"
+ C|sc1disca "Discovey (Bellfruit) (set 2) (Scorpion 1)"
+ C|sc1driv "Driving School (Global) (set 1)"
+ c|sc1driv "Driving School (Global)"
+ C|sc1driva "Driving School (Global) (set 2)"
+ C|sc1drivb "Driving School (Global) (set 3)"
+ C|sc1drivc "Driving School (Global) (set 4)"
+ C|sc1flash "Flash (Bellfruit) (Dutch) (Scorpion 1)"
+ c|sc1flash "Flash (Bellfruit) [Dutch] (Scorpion 1)"
+ c|sc1frpus "Fruit Pursuit (Bellfruit) (Scorpion 1?)"
+ C|sc1frpus "Fruit Pursuit (Bellfruit) (set 1) (Scorpion 1?)"
+ C|sc1frpusa "Fruit Pursuit (Bellfruit) (set 2) (Scorpion 1?)"
+ c|sc1frtln "Fruit Lines (Bellfruit) (Scorpion 1, set 2)"
+ C|sc1frtln "Fruit Lines (Bellfruit) (set 2) (Scorpion 1)"
+ c|sc1fruit "Fruit Lines (Bellfruit) (Scorpion 1, set 1)"
+ C|sc1fruit "Fruit Lines (Bellfruit) (set 1) (Scorpion 1)"
+ c|sc1funh "Fun House Club (Bellfruit) (Scorpion 1)"
+ C|sc1funh "Fun House Club (Bellfruit) (set 1) (Scorpion 1)"
+ C|sc1funha "Fun House Club (Bellfruit) (set 2) (Scorpion 1)"
+ C|sc1funhb "Fun House Club (Bellfruit) (set 3) (Scorpion 1)"
+ C|sc1funhp "Fun House Club (Bellfruit) (set 1, Protocol) (Scorpion 1)"
+ C|sc1gprix "Grand Prix (Bellfruit) (Dutch) (Scorpion 1)"
+ c|sc1gprix "Grand Prix (Bellfruit) [Dutch] (Scorpion 1)"
+ C|sc1gslam "Grand Slam (Bellfruit) (Dutch) (Scorpion 1)"
+ c|sc1gslam "Grand Slam (Bellfruit) [Dutch] (Scorpion 1)"
+ c|sc1hfcc "Hi Flyer Club (Crystal) (Scorpion 1)"
+ C|sc1hfcc "Hi Flyer Club (Crystal) (set 1) (Scorpion 1)"
+ C|sc1hfccp "Hi Flyer Club (Crystal) (set 1, Protocol) (Scorpion 1)"
+ C|sc1impc "Impact (Bellfruit) (Dutch) (Scorpion 1)"
+ c|sc1impc "Impact (Bellfruit) [Dutch] (Scorpion 1)"
+ C|sc1kings "Kings Club (Bellfruit) (Dutch) (Scorpion 1)"
+ c|sc1kings "Kings Club (Bellfruit) [Dutch] (Scorpion 1)"
+ c|sc1linx "Linx (Bellfruit) (Scorpion 1)"
+ C|sc1linx "Linx (Bellfruit) (set 1) (Scorpion 1)"
+ C|sc1linxa "Linx (Bellfruit) (set 2) (Scorpion 1)"
+ C|sc1linxp "Linx (Bellfruit) (set 3, Protocol) (Scorpion 1)"
+ C|sc1lotus "Lotus SE (Dutch) (set 1)"
+ c|sc1lotus "Lotus SE (Dutch)"
+ C|sc1lotusa "Lotus SE (Dutch) (set 2)"
+ C|sc1magc "Magic Circle (Bellfruit) (Dutch) (Scorpion 1)"
+ c|sc1magc "Magic Circle (Bellfruit) [Dutch] (Scorpion 1)"
+ C|sc1manha "Manhattan (Bellfruit) (Dutch) (Scorpion 1)"
+ c|sc1manha "Manhattan (Bellfruit) [Dutch] (Scorpion 1)"
+ C|sc1mist "Mistral (Bellfruit) (Dutch) (Scorpion 1)"
+ c|sc1mist "Mistral (Bellfruit) [Dutch] (Scorpion 1)"
+ C|sc1olym "Olympia (Bellfruit) (Dutch) (Scorpion 1)"
+ c|sc1olym "Olympia (Bellfruit) [Dutch] (Scorpion 1)"
+ C|sc1orac "Oracle (Bellfruit) (Dutch) (Scorpion 1)"
+ c|sc1orac "Oracle (Bellfruit) [Dutch] (Scorpion 1)"
+ c|sc1pwrl "Power Lines (Bellfruit) (Scorpion 1)"
+ C|sc1pwrl "Power Lines (Bellfruit) (set 1) (Scorpion 1)"
+ C|sc1pwrla "Power Lines (Bellfruit) (set 2) (Scorpion 1)"
+ C|sc1quat "Quatro (Bellfruit) (Dutch) (Scorpion 1)"
+ c|sc1quat "Quatro (Bellfruit) [Dutch] (Scorpion 1)"
+ C|sc1rain "Rainbow (Bellfruit) (Dutch) (Scorpion 1)"
+ c|sc1rain "Rainbow (Bellfruit) [Dutch] (Scorpion 1)"
+ C|sc1re "Reel Cash (Bellfruit) (Dutch) (Scorpion 1)"
+ c|sc1re "Reel Cash (Bellfruit) [Dutch] (Scorpion 1)"
+ C|sc1rese "Reel Cash SE (Bellfruit) (Dutch) (Scorpion 1)"
+ c|sc1rese "Reel Cash SE (Bellfruit) [Dutch] (Scorpion 1)"
+ C|sc1revo "Revolution (Bellfruit) (Dutch) (Scorpion 1)"
+ c|sc1revo "Revolution (Bellfruit) [Dutch] (Scorpion 1)"
+ C|sc1rose "Rose 'n' Crown (Bellfruit) (Dutch) (Scorpion 1)"
+ c|sc1rose "Rose 'n' Crown (Bellfruit) [Dutch] (Scorpion 1)"
+ C|sc1sant "Santana (Bellfruit) (Dutch) (Scorpion 1)"
+ c|sc1sant "Santana (Bellfruit) [Dutch] (Scorpion 1)"
+ C|sc1sat "Satellite (Bellfruit) (Dutch) (Scorpion 1)"
+ c|sc1sat "Satellite (Bellfruit) [Dutch] (Scorpion 1)"
+ C|sc1shan "Shanghai (Bellfruit) (Dutch) (Scorpion 1)"
+ c|sc1shan "Shanghai (Bellfruit) [Dutch] (Scorpion 1)"
+ c|sc1sir "Strike It Rich (Bellfruit) (Scorpion 1)"
+ C|sc1sir "Strike It Rich (Bellfruit) (set 1) (Scorpion 1)"
+ C|sc1sira "Strike It Rich (Bellfruit) (set 2) (Scorpion 1)"
+ C|sc1sirb "Strike It Rich (Bellfruit) (set 3) (Scorpion 1)"
+ C|sc1sirc "Strike It Rich (Bellfruit) (set 4) (Scorpion 1)"
+ c|sc1smoke "Smokey Vs The Bandit (Mdm) (Scorpion 2/3)"
+ C|sc1smoke "Smokey Vs The Bandit (Mdm) (set 1) (Scorpion 2/3?)"
+ C|sc1smokea "Smokey Vs The Bandit (Mdm) (set 2) (Scorpion 2/3?)"
+ c|sc1spct "Spectre (Bellfruit) (Scorpion 1)"
+ C|sc1spct "Spectre (Bellfruit) (set 1) (Scorpion 1)"
+ C|sc1spcta "Spectre (Bellfruit) (set 2) (Scorpion 1)"
+ C|sc1ster "Sterling (Bellfruit) (Dutch) (Scorpion 1)"
+ c|sc1ster "Sterling (Bellfruit) [Dutch] (Scorpion 1)"
+ c|sc1str4 "Strike 4 (Bellfruit) (Scorpion 1, set 1)"
+ C|sc1str4 "Strike 4 (Bellfruit) (set 1) (Scorpion 1)"
+ c|sc1str4a "Strike 4 (Bellfruit) (Scorpion 1, set 2)"
+ C|sc1str4a "Strike 4 (Bellfruit) (set 2) (Scorpion 1)"
+ C|sc1sups "Superstar (Bellfruit) (Dutch) (Scorpion 1)"
+ c|sc1sups "Superstar (Bellfruit) [Dutch] (Scorpion 1)"
+ C|sc1torn "Tornado (Bellfruit) (Dutch) (set 1) (Scorpion 1)"
+ c|sc1torn "Tornado (Bellfruit) [Dutch] (Scorpion 1)"
+ C|sc1torna "Tornado (Bellfruit) (Dutch) (set 2) (Scorpion 1)"
+ c|sc1tri "Tri Star (Bellfruit) (Scorpion 1)"
+ C|sc1tri "Tri Star (Bellfruit) (set 1) (Scorpion 1)"
+ C|sc1tria "Tri Star (Bellfruit) (set 2) (Scorpion 1)"
+ C|sc1triap "Tri Star (Bellfruit) (set 2, Protocol) (Scorpion 1)"
+ C|sc1trib "Tri Star (Bellfruit) (set 3) (Scorpion 1)"
+ C|sc1tribp "Tri Star (Bellfruit) (set 3, Protocol) (Scorpion 1)"
+ c|sc1typ "Typhoon Club (Bellfruit) (Scorpion 1)"
+ C|sc1typ "Typhoon Club (Bellfruit) (set 1) (Scorpion 1)"
+ C|sc1typp "Typhoon Club (Bellfruit) (set 1, Protocol) (Scorpion 1)"
+ C|sc1vent "Ventura (Bellfruit) (Dutch) (Scorpion 1)"
+ c|sc1vent "Ventura (Bellfruit) [Dutch] (Scorpion 1)"
+ C|sc1vict "Victory (Bellfruit) (Dutch) (Scorpion 1)"
+ c|sc1vict "Victory (Bellfruit) [Dutch] (Scorpion 1)"
+ c|sc1voy "Voyager (Bellfruit) (Scorpion 1, set 1)"
+ C|sc1voy "Voyager (Bellfruit) (set 1) (Scorpion 1)"
+ c|sc1voya "Voyager (Bellfruit) (Scorpion 1, set 2)"
+ C|sc1voya "Voyager (Bellfruit) (set 2) (Scorpion 1)"
+ C|sc1winfl "Winfalls (Dutch) (Bellfruit) (Scorpion 1)"
+ c|sc1winfl "Winfalls [Dutch] (Bellfruit) (Scorpion 1)"
+ c|sc1winst "Winning Streak (Bellfruit) (Scorpion 1)"
+ C|sc1winst "Winning Streak (Bellfruit) (set 1) (Scorpion 1)"
+ C|sc1winsta "Winning Streak (Bellfruit) (set 2) (Scorpion 1)"
+ C|sc1winstb "Winning Streak (Bellfruit) (set 3) (Scorpion 1)"
+ C|sc1winstbp "Winning Streak (Bellfruit) (set 3, Protocol) (Scorpion 1)"
+ C|sc1winstc "Winning Streak (Bellfruit) (set 4) (Scorpion 1)"
+ C|sc1winstcp "Winning Streak (Bellfruit) (set 4, Protocol) (Scorpion 1)"
+ C|sc1winstd "Winning Streak (Bellfruit) (set 5) (Scorpion 1)"
+ C|sc1winstdp "Winning Streak (Bellfruit) (set 5, Protocol) (Scorpion 1)"
+ C|sc1winste "Winning Streak (Bellfruit) (set 6) (Scorpion 1)"
+ C|sc1winstep "Winning Streak (Bellfruit) (set 6, Protocol) (Scorpion 1)"
+ C|sc1winstf "Winning Streak (Bellfruit) (set 7) (Scorpion 1)"
+ C|sc1winstfp "Winning Streak (Bellfruit) (set 7, Protocol) (Scorpion 1)"
+ C|sc1winstg "Winning Streak (Bellfruit) (set 8) (Scorpion 1)"
+ C|sc1winstp "Winning Streak (Bellfruit) (set 1, Protocol) (Scorpion 1)"
+ C|sc2brkfs1 "The Big Breakfast (set 2 UK, Single Site) (Scorpion 2/3)"
+ c|sc2brkfs1 "The Big Breakfast (set 2) (Scorpion 2/3)"
+ C|sc2brkfs1p "The Big Breakfast (set 2 UK, Single Site, Protocol) (Scorpion 2/3)"
+ C|sc2brkfs2 "The Big Breakfast (set 3 UK, Arcade, 8GBP Jackpot) (Scorpion 2/3)"
+ c|sc2brkfs2 "The Big Breakfast (set 3) (Scorpion 2/3)"
+ C|sc2brkfs3 "The Big Breakfast (set 4 UK, Arcade, 8GBP Jackpot) (Scorpion 2/3)"
+ c|sc2brkfs3 "The Big Breakfast (set 4) (Scorpion 2/3)"
+ C|sc2brkfs3p "The Big Breakfast (set 4 UK, Arcade, 8GBP Jackpot, Protocol) (Scorpion 2/3)"
+ C|sc2brkfs4 "The Big Breakfast (set 5 UK, Arcade, 10GBP Jackpot) (Scorpion 2/3)"
+ c|sc2brkfs4 "The Big Breakfast (set 5) (Scorpion 2/3)"
+ C|sc2brkfs4p "The Big Breakfast (set 5 UK, Arcade, 10GBP Jackpot, Protocol) (Scorpion 2/3)"
+ C|sc2brkfs5 "The Big Breakfast (set 6 UK, Arcade, 10GBP Jackpot) (Scorpion 2/3)"
+ c|sc2brkfs5 "The Big Breakfast (set 6) (Scorpion 2/3)"
+ C|sc2brkfs5p "The Big Breakfast (set 6 UK, Arcade, 10GBP Jackpot, Protocol) (Scorpion 2/3)"
+ c|sc2brkfsm "The Big Breakfast Casino (Scorpion 2/3)"
+ C|sc2brkfsm "The Big Breakfast Casino (set 1) (Scorpion 2/3)"
+ C|sc2brkfsm1 "The Big Breakfast Casino (set 2) (Scorpion 2/3)"
+ C|sc2brkfsm2 "The Big Breakfast Casino (set 3) (Scorpion 2/3)"
+ C|sc2brkfsp "The Big Breakfast (set 1, Protocol) (Scorpion 2/3)"
+ c|sc2call "It's Your Call (Global) (Scorpion 2/3)"
+ C|sc2call "It's Your Call (Global) (v2.7) (Scorpion 2/3)"
+ C|sc2callc "It's Your Call (Club?) (Global) (v1.6) (Scorpion 2/3)"
+ C|sc2callcp "It's Your Call (Club?) (Global) (v1.6 Protocol) (Scorpion 2/3)"
+ C|sc2callp "It's Your Call (Global) (v2.7 Protocol) (Scorpion 2/3)"
+ c|sc2casr "Casino Royale (Bellfruit) (Scorpion 2/3)"
+ C|sc2casr "Casino Royale (Bellfruit) (set 1, UK, 10GBP Jackpot, 3rd Triennial) (Scorpion 2/3)"
+ C|sc2casr1 "Casino Royale (Bellfruit) (set 2, UK, 3rd Triennial) (Scorpion 2/3)"
+ C|sc2casr1p "Casino Royale (Bellfruit) (set 2, UK, 3rd Triennial, Protocol) (Scorpion 2/3)"
+ C|sc2casr2 "Casino Royale (Bellfruit) (set 3, UK) (Scorpion 2/3)"
+ C|sc2casr2p "Casino Royale (Bellfruit) (set 3, UK, Protocol) (Scorpion 2/3)"
+ C|sc2casr3 "Casino Royale (Bellfruit) (set 4, UK, 8GBP Jackpot) (Scorpion 2/3)"
+ C|sc2casr3p "Casino Royale (Bellfruit) (set 4, UK, 8GBP Jackpot, Protocol) (Scorpion 2/3)"
+ C|sc2casr4 "Casino Royale (Bellfruit) (set 5, UK) (Scorpion 2/3)"
+ C|sc2casr4p "Casino Royale (Bellfruit) (set 5, UK, Protocol) (Scorpion 2/3)"
+ C|sc2casrp "Casino Royale (Bellfruit) (set 1, UK, 10GBP Jackpot, 3rd Triennial, Protocol) (Scorpion 2/3)"
+ C|sc2catms1 "Cat & Mouse (Bellfruit) (set 2) (Scorpion 2/3)"
+ C|sc2catms1p "Cat & Mouse (Bellfruit) (set 2, Protocol) (Scorpion 2/3)"
+ C|sc2catms2 "Cat & Mouse (Bellfruit) (set 3) (Scorpion 2/3)"
+ C|sc2catms2p "Cat & Mouse (Bellfruit) (set 3, Protocol) (Scorpion 2/3)"
+ C|sc2catms3 "Cat & Mouse (Bellfruit) (set 4) (Scorpion 2/3)"
+ C|sc2catms4 "Cat & Mouse (Bellfruit) (set 5) (Scorpion 2/3)"
+ c|sc2cb7 "Casino Bar 7 (Bellfruit) (Scorpion 2/3)"
+ C|sc2cb7 "Casino Bar 7 (Bellfruit) (set 1, UK) (Scorpion 2/3)"
+ C|sc2cb71 "Casino Bar 7 (Bellfruit) (set 2, UK, All Cash) (Scorpion 2/3)"
+ C|sc2cb72 "Casino Bar 7 (Bellfruit) (set 3, UK, 10GBP Jackpot) (Scorpion 2/3)"
+ C|sc2cb72p "Casino Bar 7 (Bellfruit) (set 3, UK, 10GBP Jackpot, Protocol) (Scorpion 2/3)"
+ C|sc2cb7p "Casino Bar 7 (Bellfruit) (set 1, UK, Protocol) (Scorpion 2/3)"
+ c|sc2cgcas "Club Grand Casino (Bellfruit) (Scorpion 2/3)"
+ C|sc2cgcas "Club Grand Casino (Bellfruit) (set 1, UK) (Scorpion 2/3)"
+ C|sc2cgcas1 "Club Grand Casino (Bellfruit) (set 2, UK, 250GBP Jackpot) (Scorpion 2/3)"
+ C|sc2cgcas1p "Club Grand Casino (Bellfruit) (set 2, UK, 250GBP Jackpot, Protocol) (Scorpion 2/3)"
+ C|sc2cgcasp "Club Grand Casino (Bellfruit) (set 1, UK, Protocol) (Scorpion 2/3)"
+ c|sc2cmbt "Cat & Mouse & Bonzo Too (Bellfruit) (Scorpion 2/3)"
+ C|sc2cmbt "Cat & Mouse & Bonzo Too (Bellfruit) (set 1, UK) (Scorpion 2/3)"
+ C|sc2cmbtp "Cat & Mouse & Bonzo Too (Bellfruit) (set 1, UK, Protocol) (Scorpion 2/3)"
+ c|sc2cnile "Cash On The Nile Club (Bellfruit) (Scorpion 2/3)"
+ C|sc2cnile "Cash On The Nile Club (Bellfruit) (set 1 UK, 150GBP Jackpot) (Scorpion 2/3)"
+ C|sc2cnile1 "Cash On The Nile Club (Bellfruit) (set 2 UK, 150GBP Jackpot) (Scorpion 2/3)"
+ C|sc2cnile2 "Cash On The Nile Club (Bellfruit) (set 2 UK, 200GBP Jackpot) (Scorpion 2/3)"
+ C|sc2cnile2p "Cash On The Nile Club (Bellfruit) (set 2 UK, 150GBP Jackpot, Protocol) (Scorpion 2/3)"
+ C|sc2cnile3p "Cash On The Nile Club (Bellfruit) (set 3 UK, 150GBP Jackpot) (Scorpion 2/3)"
+ c|sc2copcl "Cops 'n' Robbers Club (Bellfruit) (Scorpion 2/3)"
+ C|sc2copcl "Cops 'n' Robbers Club (Bellfruit) (set 1, UK, 250GBP Jackpot) (Scorpion 2/3)"
+ C|sc2copcl1 "Cops 'n' Robbers Club (Bellfruit) (set 2, UK, 250GBP Jackpot) (Scorpion 2/3)"
+ C|sc2copcl10 "Cops 'n' Robbers Club (Bellfruit) (set 11, UK) (Scorpion 2/3)"
+ C|sc2copcl11 "Cops 'n' Robbers Club (Bellfruit) (set 12, UK) (Scorpion 2/3)"
+ C|sc2copcl11p "Cops 'n' Robbers Club (Bellfruit) (set 12, UK, Protocol) (Scorpion 2/3)"
+ C|sc2copcl1p "Cops 'n' Robbers Club (Bellfruit) (set 2, UK, 250GBP Jackpot, Protocol) (Scorpion 2/3)"
+ C|sc2copcl2 "Cops 'n' Robbers Club (Bellfruit) (set 3, UK) (Scorpion 2/3)"
+ C|sc2copcl3 "Cops 'n' Robbers Club (Bellfruit) (set 4, UK) (Scorpion 2/3)"
+ C|sc2copcl3p "Cops 'n' Robbers Club (Bellfruit) (set 4, UK, Protocol) (Scorpion 2/3)"
+ C|sc2copcl4 "Cops 'n' Robbers Club (Bellfruit) (set 5, UK) (Scorpion 2/3)"
+ C|sc2copcl5 "Cops 'n' Robbers Club (Bellfruit) (set 6, UK) (Scorpion 2/3)"
+ C|sc2copcl6 "Cops 'n' Robbers Club (Bellfruit) (set 7, UK) (Scorpion 2/3)"
+ C|sc2copcl6p "Cops 'n' Robbers Club (Bellfruit) (set 7, UK, Protocol) (Scorpion 2/3)"
+ C|sc2copcl7 "Cops 'n' Robbers Club (Bellfruit) (set 8, UK) (Scorpion 2/3)"
+ C|sc2copcl8 "Cops 'n' Robbers Club (Bellfruit) (set 9, UK) (Scorpion 2/3)"
+ C|sc2copcl8p "Cops 'n' Robbers Club (Bellfruit) (set 9, UK, Protocol) (Scorpion 2/3)"
+ C|sc2copcl9 "Cops 'n' Robbers Club (Bellfruit) (set 10, UK) (Scorpion 2/3)"
+ C|sc2copcl9p "Cops 'n' Robbers Club (Bellfruit) (set 10, UK, Protocol) (Scorpion 2/3)"
+ C|sc2copclp "Cops 'n' Robbers Club (Bellfruit) (set 1, UK, 250GBP Jackpot, Protocol) (Scorpion 2/3)"
+ c|sc2copdc "Cops 'n' Robbers Club Deluxe (Bellfruit) (Scorpion 2/3)"
+ C|sc2copdc "Cops 'n' Robbers Club Deluxe (Bellfruit) (set 1, UK, 250GBP Jackpot) (Scorpion 2/3)"
+ C|sc2copdc1 "Cops 'n' Robbers Club Deluxe (Bellfruit) (set 2, UK, 250GBP Jackpot) (Scorpion 2/3)"
+ C|sc2copdc1p "Cops 'n' Robbers Club Deluxe (Bellfruit) (set 2, UK, 250GBP Jackpot, Protocol) (Scorpion 2/3)"
+ C|sc2copdc2 "Cops 'n' Robbers Club Deluxe (Bellfruit) (set 3, UK, 250GBP Jackpot) (Scorpion 2/3)"
+ C|sc2copdc2p "Cops 'n' Robbers Club Deluxe (Bellfruit) (set 3, UK, 250GBP Jackpot, Protocol) (Scorpion 2/3)"
+ C|sc2copdc3 "Cops 'n' Robbers Club Deluxe (Bellfruit) (set 4, UK, 250GBP Jackpot) (Scorpion 2/3)"
+ C|sc2copdc3p "Cops 'n' Robbers Club Deluxe (Bellfruit) (set 4, UK, 250GBP Jackpot, Protocol) (Scorpion 2/3)"
+ C|sc2copdc4 "Cops 'n' Robbers Club Deluxe (Bellfruit) (set 5, UK, 200GBP Jackpot?) (Scorpion 2/3)"
+ C|sc2copdc4p "Cops 'n' Robbers Club Deluxe (Bellfruit) (set 5, UK, 200GBP Jackpot?, Protocol) (Scorpion 2/3)"
+ C|sc2copdc5 "Cops 'n' Robbers Club Deluxe (Bellfruit) (set 6, UK, 200GBP Jackpot) (Scorpion 2/3)"
+ C|sc2copdc5p "Cops 'n' Robbers Club Deluxe (Bellfruit) (set 6, UK, 200GBP Jackpot, Protocol) (Scorpion 2/3)"
+ C|sc2copdc6 "Cops 'n' Robbers Club Deluxe (Bellfruit) (set 7, UK) (Scorpion 2/3)"
+ C|sc2copdcp "Cops 'n' Robbers Club Deluxe (Bellfruit) (set 1, UK, 250GBP Jackpot, Protocol) (Scorpion 2/3)"
+ c|sc2cops "Cops 'n' Robbers (Bellfruit) (Scorpion 2/3)"
+ C|sc2cops "Cops 'n' Robbers (Bellfruit) (set 1) (Scorpion 2/3)"
+ C|sc2cops1 "Cops 'n' Robbers (Bellfruit) (set 2) (Scorpion 2/3)"
+ C|sc2cops1p "Cops 'n' Robbers (Bellfruit) (set 2, Protocol) (Scorpion 2/3)"
+ C|sc2cops2 "Cops 'n' Robbers (Bellfruit) (set 3) (Scorpion 2/3)"
+ C|sc2cops3 "Cops 'n' Robbers (Bellfruit) (set 4) (Scorpion 2/3)"
+ C|sc2cops3p "Cops 'n' Robbers (Bellfruit) (set 4, Protocol) (Scorpion 2/3)"
+ C|sc2cops4 "Cops 'n' Robbers (Bellfruit) (set 5) (Scorpion 2/3)"
+ C|sc2cops5 "Cops 'n' Robbers (Bellfruit) (set 6) (Scorpion 2/3)"
+ C|sc2copsc "Casino Cops 'n' Robbers (Bellfruit) (set 1) (Scorpion 2/3)"
+ C|sc2copsc1 "Casino Cops 'n' Robbers (Bellfruit) (set 2) (Scorpion 2/3)"
+ C|sc2copsc1p "Casino Cops 'n' Robbers (Bellfruit) (set 2, Protocol) (Scorpion 2/3)"
+ C|sc2copsc2 "Casino Cops 'n' Robbers (Bellfruit) (set 3) (Scorpion 2/3)"
+ C|sc2copscp "Casino Cops 'n' Robbers (Bellfruit) (set 1, Protocol) (Scorpion 2/3)"
+ C|sc2copsp "Cops 'n' Robbers (Bellfruit) (set 1, Protocol) (Scorpion 2/3)"
+ C|sc2cpe1 "Club Public Enemy No.1 (set 3, UK) (Scorpion 2/3)"
+ C|sc2cpe1p "Club Public Enemy No.1 (set 3, UK, Protocol) (Scorpion 2/3)"
+ C|sc2cpe2 "Club Public Enemy No.1 (set 4, UK) (Scorpion 2/3)"
+ C|sc2cpe2p "Club Public Enemy No.1 (set 4, UK, Protocol) (Scorpion 2/3)"
+ C|sc2cpe3p "Club Public Enemy No.1 (set 5, UK, Protocol) (Scorpion 2/3)"
+ C|sc2cpe4 "Club Public Enemy No.1 (set 6, UK) (Scorpion 2/3)"
+ C|sc2cpe5p "Club Public Enemy No.1 (set 7, UK, Protocol) (Scorpion 2/3)"
+ C|sc2cpep "Club Public Enemy No.1 (set 2, UK, Protocol) (Scorpion 2/3)"
+ c|sc2cpg "Pharaoh's Gold Club (Bellfruit) (Scorpion 2/3)"
+ C|sc2cpg "Pharaoh's Gold Club (Bellfruit) (set 1, UK, 250GBP Jackpot)(Scorpion 2/3)"
+ C|sc2cpg1 "Pharaoh's Gold Club (Bellfruit) (set 2, UK, p65)(Scorpion 2/3)"
+ C|sc2cpg1p "Pharaoh's Gold Club (Bellfruit) (set 2, UK, p65, Protocol)(Scorpion 2/3)"
+ C|sc2cpg2 "Pharaoh's Gold Club (Bellfruit) (set 3, UK)(Scorpion 2/3)"
+ C|sc2cpg2p "Pharaoh's Gold Club (Bellfruit) (set 3, UK, Protocol)(Scorpion 2/3)"
+ C|sc2cpgp "Pharaoh's Gold Club (Bellfruit) (set 1, UK, 250GBP Jackpot, Protocol)(Scorpion 2/3)"
+ c|sc2cshcl "Cashino Club (Bellfruit) (Scorpion 2/3)"
+ C|sc2cshcl "Cashino Club (Bellfruit) (set 1) (Scorpion 2/3)"
+ C|sc2cshcl1 "Cashino Club (Bellfruit) (set 2) (Scorpion 2/3)"
+ C|sc2cshcl1p "Cashino Club (Bellfruit) (set 2, Protocol) (Scorpion 2/3)"
+ C|sc2cshclp "Cashino Club (Bellfruit) (set 1, Protocol) (Scorpion 2/3)"
+ C|sc2ctms2 "Cat & Mouse (Mark 2) (Bellfruit) (set 1) (Scorpion 2/3)"
+ C|sc2ctms21 "Cat & Mouse (Mark 2) (Bellfruit) (set 2) (Scorpion 2/3)"
+ C|sc2ctms21p "Cat & Mouse (Mark 2) (Bellfruit) (set 2, Protocol) (Scorpion 2/3)"
+ C|sc2ctms22 "Cat & Mouse (Mark 2) (Bellfruit) (set 3) (Scorpion 2/3)"
+ C|sc2ctms22p "Cat & Mouse (Mark 2) (Bellfruit) (set 3, Protocol) (Scorpion 2/3)"
+ C|sc2ctms23 "Cat & Mouse (Mark 2) (Bellfruit) (set 4) (Scorpion 2/3)"
+ C|sc2ctms23p "Cat & Mouse (Mark 2) (Bellfruit) (set 4, Protocol) (Scorpion 2/3)"
+ C|sc2ctms24p "Cat & Mouse (Mark 2) (Bellfruit) (set 5, Protocol) (Scorpion 2/3)"
+ C|sc2ctms25 "Cat & Mouse (Mark 2) (Bellfruit) (set 6) (Scorpion 2/3)"
+ c|sc2cvega "Cash Vegas (Bellfruit) (Scorpion 2/3)"
+ C|sc2cvega "Cash Vegas (Bellfruit) (set 1, UK) (Scorpion 2/3)"
+ C|sc2cvega1 "Cash Vegas (Bellfruit) (set 2, UK, 10GBP Jackpot, 3rd Triennial) (Scorpion 2/3)"
+ C|sc2cvega1p "Cash Vegas (Bellfruit) (set 2, UK, 10GBP Jackpot, 3rd Triennial, Protocol) (Scorpion 2/3)"
+ C|sc2cvega2 "Cash Vegas (Bellfruit) (set 3, UK, 8GBP Jackpot) (Scorpion 2/3)"
+ C|sc2cvega2p "Cash Vegas (Bellfruit) (set 3, UK, 8GBP Jackpot, Protocol) (Scorpion 2/3)"
+ C|sc2cvega3 "Cash Vegas (Bellfruit) (set 4, UK, 10GBP Jackpot) (Scorpion 2/3)"
+ C|sc2cvega3p "Cash Vegas (Bellfruit) (set 4, UK, 10GBP Jackpot, Protocol) (Scorpion 2/3)"
+ C|sc2cvega4p "Cash Vegas (Bellfruit) (set 5, UK, 10GBP Jackpot, Protocol) (Scorpion 2/3)"
+ c|sc2dbl "Double Diamond (Bellfruit) (Scorpion 2/3)"
+ C|sc2dbl "Double Diamond (Bellfruit) (set 1, UK) (Scorpion 2/3)"
+ C|sc2dbl1 "Double Diamond (Bellfruit) (set 2, UK) (Scorpion 2/3)"
+ C|sc2dbl1p "Double Diamond (Bellfruit) (set 2, UK, Protocol) (Scorpion 2/3)"
+ C|sc2dblp "Double Diamond (Bellfruit) (set 1, UK, Protocol) (Scorpion 2/3)"
+ c|sc2dels "Del's Millions (Bellfruit) (Scorpion 2/3)"
+ C|sc2dels "Del's Millions (Bellfruit) (set 1, UK, 10GBP Jackpot) (Scorpion 2/3)"
+ C|sc2dels1 "Del's Millions (Bellfruit) (set 2, UK, 10GBP Jackpot) (Scorpion 2/3)"
+ C|sc2dels1p "Del's Millions (Bellfruit) (set 2, UK, 10GBP Jackpot, Protocol) (Scorpion 2/3)"
+ C|sc2dels2 "Del's Millions (Bellfruit) (set 3, UK, 8GBP Jackpot) (Scorpion 2/3)"
+ C|sc2dels2p "Del's Millions (Bellfruit) (set 3, UK, 8GBP Jackpot, Protocol) (Scorpion 2/3)"
+ C|sc2dels3 "Del's Millions (Bellfruit) (set 4, UK, 8GBP Jackpot) (Scorpion 2/3)"
+ C|sc2dels3p "Del's Millions (Bellfruit) (set 4, UK, 8GBP Jackpot, Protocol) (Scorpion 2/3)"
+ C|sc2dels4 "Del's Millions (Bellfruit) (set 5, UK) (Scorpion 2/3)"
+ C|sc2dels4p "Del's Millions (Bellfruit) (set 5, UK, Protocol) (Scorpion 2/3)"
+ C|sc2dels5 "Del's Millions (Bellfruit) (set 6, UK) (Scorpion 2/3)"
+ C|sc2dels6 "Del's Millions (Bellfruit) (set 7, UK) (Scorpion 2/3)"
+ C|sc2dels7 "Del's Millions (Bellfruit) (set 8, UK) (Scorpion 2/3)"
+ C|sc2dels8 "Del's Millions (Bellfruit) (set 9, UK) (Scorpion 2/3)"
+ C|sc2dels9 "Del's Millions (Bellfruit) (set 10, UK) (Scorpion 2/3)"
+ C|sc2delsd "Del's Millions (Bellfruit) ('Deluxe', UK) (Scorpion 2/3)"
+ C|sc2delsm "Del's Millions (Bellfruit/Mazooma) (set 1, UK) (Scorpion 2/3)"
+ C|sc2delsm1 "Del's Millions (Bellfruit/Mazooma) (set 2, UK) (Scorpion 2/3)"
+ C|sc2delsm1p "Del's Millions (Bellfruit/Mazooma) (set 2, UK, Protocol) (Scorpion 2/3)"
+ C|sc2delsm2 "Del's Millions (Bellfruit/Mazooma) (set 3, UK) (Scorpion 2/3)"
+ C|sc2delsm2p "Del's Millions (Bellfruit/Mazooma) (set 3, UK, Protocol) (Scorpion 2/3)"
+ C|sc2delsm3 "Del's Millions (Bellfruit/Mazooma) (set 4, UK) (Scorpion 2/3)"
+ C|sc2delsm3p "Del's Millions (Bellfruit/Mazooma) (set 4, UK, Protocol) (Scorpion 2/3)"
+ C|sc2delsmp "Del's Millions (Bellfruit/Mazooma) (set 1, UK, Protocol) (Scorpion 2/3)"
+ C|sc2delsp "Del's Millions (Bellfruit) (set 1, UK, 10GBP Jackpot, Protocol) (Scorpion 2/3)"
+ c|sc2dick "Spotted Dick (Global) (Scorpion 2/3)"
+ C|sc2dick "Spotted Dick (Global) (v3.1) (Scorpion 2/3)"
+ C|sc2dick1 "Spotted Dick (Global) (v2.2) (Scorpion 2/3)"
+ C|sc2dick2 "Spotted Dick (Global) (v1.5) (Scorpion 2/3)"
+ C|sc2dick2e "Spotted Dick (Global) (v?.? Euro) (Scorpion 2/3)"
+ C|sc2dick2eu "Spotted Dick (Global) (v?.? Euro unencrypted) (Scorpion 2/3)"
+ C|sc2dick2p "Spotted Dick (Global) (v1.5 Protocol ) (Scorpion 2/3)"
+ C|sc2dickp "Spotted Dick (Global) (v3.1 Protocol) (Scorpion 2/3)"
+ c|sc2downt "Down Town (Bellfruit) (Scorpion 2/3)"
+ C|sc2downt "Down Town (Bellfruit) (set 1, UK, 15RM motor) (Scorpion 2/3)"
+ C|sc2downt1 "Down Town (Bellfruit) (set 2, UK, 15RM motor) (Scorpion 2/3)"
+ C|sc2downt1p "Down Town (Bellfruit) (set 2, UK, 15RM motor, Protocol) (Scorpion 2/3)"
+ C|sc2downt2 "Down Town (Bellfruit) (set 3, UK, 15RM motor) (Scorpion 2/3)"
+ C|sc2downt2p "Down Town (Bellfruit) (set 3, UK, 15RM motor, Protocol) (Scorpion 2/3)"
+ C|sc2downt3 "Down Town (Bellfruit) (set 4, UK, 15RM motor) (Scorpion 2/3)"
+ C|sc2downt3a "Down Town (Bellfruit) (set 4, UK, 16RM motor) (Scorpion 2/3)"
+ C|sc2downt3ap "Down Town (Bellfruit) (set 4, UK, 16RM motor, Protocol) (Scorpion 2/3)"
+ C|sc2downt3p "Down Town (Bellfruit) (set 4, UK, 15RM motor, Protocol) (Scorpion 2/3)"
+ C|sc2downt4 "Down Town (Bellfruit) (set 5, UK, 15RM motor) (Scorpion 2/3)"
+ C|sc2downt4a "Down Town (Bellfruit) (set 5, UK, 16RM motor) (Scorpion 2/3)"
+ C|sc2downt4ap "Down Town (Bellfruit) (set 5, UK, 16RM motor, Protocol) (Scorpion 2/3)"
+ C|sc2downt4p "Down Town (Bellfruit) (set 5, UK, 15RM motor, Protocol) (Scorpion 2/3)"
+ C|sc2downt5 "Down Town (Bellfruit) (set 6, UK, 15RM motor) (Scorpion 2/3)"
+ C|sc2downt6 "Down Town (Bellfruit) (set 7, UK, 15RM motor) (Scorpion 2/3)"
+ C|sc2downt7 "Down Town (Bellfruit) (set 8, UK, 15RM motor) (Scorpion 2/3)"
+ C|sc2downt8a "Down Town (Bellfruit) (set 9, UK, 16RM motor) (Scorpion 2/3)"
+ C|sc2downt8ap "Down Town (Bellfruit) (set 9, UK, 16RM motor, Protocol) (Scorpion 2/3)"
+ C|sc2downtp "Down Town (Bellfruit) (set 1, UK, 15RM motor, Protocol) (Scorpion 2/3)"
+ c|sc2drwho "Dr.Who The Timelord (set 1, UK, Game Card 95-750-288) (Scorpion 2/3)"
+ C|sc2drwho "Dr.Who The Timelord (set 1, UK, Single Site, Game Card 95-750-288) (Scorpion 2/3)"
+ c|sc2drwho10 "Dr.Who The Timelord (set 11) (Scorpion 2/3)"
+ C|sc2drwho10 "Dr.Who The Timelord (set 11, UK, Arcade, Protocol) (Scorpion 2/3)"
+ c|sc2drwho11 "Dr.Who The Timelord (set 12) (Scorpion 2/3)"
+ C|sc2drwho11 "Dr.Who The Timelord (set 12, UK, no Jackpot spin, Protocol) (Scorpion 2/3)"
+ c|sc2drwho12 "Dr.Who The Timelord (set 13) (Scorpion 2/3)"
+ C|sc2drwho12 "Dr.Who The Timelord (set 13, UK) (Scorpion 2/3)"
+ c|sc2drwho13 "Dr.Who The Timelord (set 14) (Scorpion 2/3)"
+ C|sc2drwho13 "Dr.Who The Timelord (set 14, UK, Arcade, 8GBP Jackpot) (Scorpion 2/3)"
+ c|sc2drwho14 "Dr.Who The Timelord (set 15) (Scorpion 2/3)"
+ C|sc2drwho14 "Dr.Who The Timelord (set 15, UK, Arcade) (Scorpion 2/3)"
+ c|sc2drwho15 "Dr.Who The Timelord (set 16) (Scorpion 2/3)"
+ C|sc2drwho15 "Dr.Who The Timelord (set 16, UK, Arcade) (Scorpion 2/3)"
+ c|sc2drwho2 "Dr.Who The Timelord (set 3) (Scorpion 2/3)"
+ C|sc2drwho2 "Dr.Who The Timelord (set 3, UK, Arcade, Protocol) (Scorpion 2/3)"
+ c|sc2drwho3 "Dr.Who The Timelord (set 4) (Scorpion 2/3)"
+ C|sc2drwho3 "Dr.Who The Timelord (set 4, UK Single Site, Protocol) (Scorpion 2/3)"
+ c|sc2drwho4 "Dr.Who The Timelord (set 5) (Scorpion 2/3)"
+ C|sc2drwho4 "Dr.Who The Timelord (set 5, UK, Arcade) (Scorpion 2/3)"
+ c|sc2drwho5 "Dr.Who The Timelord (set 6) (Scorpion 2/3)"
+ C|sc2drwho5 "Dr.Who The Timelord (set 6, UK) (Scorpion 2/3)"
+ c|sc2drwho6 "Dr.Who The Timelord (set 7) (Scorpion 2/3)"
+ C|sc2drwho6 "Dr.Who The Timelord (set 7, UK, Protocol) (Scorpion 2/3)"
+ c|sc2drwho7 "Dr.Who The Timelord (set 8) (Scorpion 2/3)"
+ C|sc2drwho7 "Dr.Who The Timelord (set 8, UK, Arcade, 10GBP Jackpot, Protocol) (Scorpion 2/3)"
+ c|sc2drwho8 "Dr.Who The Timelord (set 9) (Scorpion 2/3)"
+ C|sc2drwho8 "Dr.Who The Timelord (set 9, UK, Arcade, 8GBP Jackpot, Protocol) (Scorpion 2/3)"
+ c|sc2drwho9 "Dr.Who The Timelord (set 10) (Scorpion 2/3)"
+ C|sc2drwho9 "Dr.Who The Timelord (set 10, UK, Arcade, Protocol) (Scorpion 2/3)"
+ c|sc2easy "Easy Money (Bellfruit) (Scorpion 2/3)"
+ C|sc2easy "Easy Money (Bellfruit) (set 1) (Scorpion 2/3)"
+ C|sc2easy1 "Easy Money (Bellfruit) (set 2) (Scorpion 2/3)"
+ C|sc2easy1p "Easy Money (Bellfruit) (set 2, Protocol) (Scorpion 2/3)"
+ C|sc2easy2 "Easy Money (Bellfruit) (set 3) (Scorpion 2/3)"
+ C|sc2easy2p "Easy Money (Bellfruit) (set 3, Protocol) (Scorpion 2/3)"
+ C|sc2easyp "Easy Money (Bellfruit) (set 1, Protocol) (Scorpion 2/3)"
+ c|sc2eggs "Eggs On Legs Tour (Bellfruit) (Scorpion 2/3)"
+ C|sc2eggs "Eggs On Legs Tour (Bellfruit) (set 1, UK, Arcade, 10GBP Jackpot) (Scorpion 2/3)"
+ C|sc2eggs1 "Eggs On Legs Tour (Bellfruit) (set 2, UK, Arcade, 10GBP Jackpot?) (Scorpion 2/3)"
+ C|sc2eggs1p "Eggs On Legs Tour (Bellfruit) (set 2, UK, Arcade, 10GBP Jackpot, Protocol) (Scorpion 2/3)"
+ C|sc2eggsp "Eggs On Legs Tour (Bellfruit) (set 1, UK, Arcade, 10GBP Jackpot, Protocol) (Scorpion 2/3)"
+ c|sc2flaca "Flash Cash (Bellfruit) (Scorpion 2/3)"
+ C|sc2flaca "Flash Cash (Bellfruit) (set 1, UK, 10GBP Jackpot, 3rd Triennial) (Scorpion 2/3)"
+ C|sc2flaca1 "Flash Cash (Bellfruit) (set 2, UK, 10GBP Jackpot, 2nd Triennial) (Scorpion 2/3)"
+ C|sc2flaca1p "Flash Cash (Bellfruit) (set 2, UK, 10GBP Jackpot, 2nd Triennial, Protocol) (Scorpion 2/3)"
+ C|sc2flaca2 "Flash Cash (Bellfruit) (set 3, UK, 10GBP Jackpot, 2nd Triennial) (Scorpion 2/3)"
+ C|sc2flaca2p "Flash Cash (Bellfruit) (set 3, UK, 10GBP Jackpot, 2nd Triennial, Protocol) (Scorpion 2/3)"
+ C|sc2flacap "Flash Cash (Bellfruit) (set 1, UK, 10GBP Jackpot, 3rd Triennial, Protocol) (Scorpion 2/3)"
+ c|sc2foot "Football Club (Bellfruit) (Scorpion 2/3)"
+ C|sc2foot "Football Club (Bellfruit) (set 1, UK, 250GBP Jackpot) (Scorpion 2/3)"
+ C|sc2foot1 "Football Club (Bellfruit) (set 2, UK, 100GBP Jackpot) (Scorpion 2/3)"
+ C|sc2foot1p "Football Club (Bellfruit) (set 2, UK, 100GBP Jackpot, Protocol) (Scorpion 2/3)"
+ C|sc2foot2 "Football Club (Bellfruit) (set 3, UK) (Scorpion 2/3)"
+ C|sc2foot2p "Football Club (Bellfruit) (set 3, UK, Protocol) (Scorpion 2/3)"
+ C|sc2footp "Football Club (Bellfruit) (set 1, UK, 250GBP Jackpot, Protocol) (Scorpion 2/3)"
+ c|sc2gcclb "Golden Casino Club (Bellfruit) (Scorpion 2/3)"
+ C|sc2gcclb "Golden Casino Club (Bellfruit) (set 1, UK, 250GBP Jackpot) (Scorpion 2/3)"
+ C|sc2gcclb1 "Golden Casino Club (Bellfruit) (set 2, UK, 100GBP Jackpot) (Scorpion 2/3)"
+ C|sc2gcclb1p "Golden Casino Club (Bellfruit) (set 2, UK, 100GBP Jackpot, Protocol) (Scorpion 2/3)"
+ C|sc2gcclb2 "Golden Casino Club (Bellfruit) (set 3, UK) (Scorpion 2/3)"
+ C|sc2gcclb2p "Golden Casino Club (Bellfruit) (set 3, UK, Protocol) (Scorpion 2/3)"
+ C|sc2gcclb3 "Golden Casino Club (Bellfruit) (set 4, UK) (Scorpion 2/3)"
+ C|sc2gcclbp "Golden Casino Club (Bellfruit) (set 1, UK, 250GBP Jackpot, Protocol) (Scorpion 2/3)"
+ c|sc2goldr "Gold Reserve (Mdm) (Scorpion 2/3)"
+ C|sc2goldr "Gold Reserve (Mdm) (v1.3) (Scorpion 2/3)"
+ C|sc2goldr1 "Gold Reserve (Mdm) (set 2) (Scorpion 2/3)"
+ C|sc2goldrp "Gold Reserve (Mdm) (v1.3 Protocol) (Scorpion 2/3)"
+ c|sc2groul "Golden Roulette (Bellfruit) (Scorpion 2/3)"
+ C|sc2groul "Golden Roulette (Bellfruit) (set 1, UK) (Scorpion 2/3)"
+ C|sc2groulp "Golden Roulette (Bellfruit) (set 2, UK, Protocol) (Scorpion 2/3)"
+ c|sc2gsclb "The Game Show Club (Bellfruit) (Scorpion 2/3)"
+ C|sc2gsclb "The Game Show Club (Bellfruit) (set 1, UK, Arcade, p65)(Scorpion 2/3)"
+ C|sc2gsclb1 "The Game Show Club (Bellfruit) (set 2, UK, Arcade, 250GBP Jackpot, p65)(Scorpion 2/3)"
+ C|sc2gsclb1p "The Game Show Club (Bellfruit) (set 2, UK, Arcade, 250GBP Jackpot, p65, Protocol)(Scorpion 2/3)"
+ C|sc2gsclb2 "The Game Show Club (Bellfruit) (set 3, UK, Arcade)(Scorpion 2/3)"
+ C|sc2gsclb2p "The Game Show Club (Bellfruit) (set 3, UK, Arcade, Protocol)(Scorpion 2/3)"
+ C|sc2gsclb3 "The Game Show Club (Bellfruit) (set 4, UK, Arcade)(Scorpion 2/3)"
+ C|sc2gsclb3p "The Game Show Club (Bellfruit) (set 4, UK, Arcade, Protocol)(Scorpion 2/3)"
+ C|sc2gsclb4 "The Game Show Club (Bellfruit) (set 5, UK, Arcade)(Scorpion 2/3)"
+ C|sc2gsclb4p "The Game Show Club (Bellfruit) (set 5, UK, Arcade, Protocol)(Scorpion 2/3)"
+ C|sc2gsclb5 "The Game Show Club (Bellfruit) (set 6, UK)(Scorpion 2/3)"
+ C|sc2gsclb6 "The Game Show Club (Bellfruit) (set 7, UK)(Scorpion 2/3)"
+ C|sc2gsclb7p "The Game Show Club (Bellfruit) (set 8, UK, Protocol)(Scorpion 2/3)"
+ C|sc2gsclbp "The Game Show Club (Bellfruit) (set 1, UK, Arcade, p65, Protocol)(Scorpion 2/3)"
+ c|sc2gslam "Grandslam Club (UK, Game Card 95-750-843) (Scorpion 2/3)"
+ C|sc2gslam "Grandslam Club (UK, set 1, Game Card 95-750-843) (Scorpion 2/3)"
+ C|sc2gslam1 "Grandslam Club (UK, set 2) (Scorpion 2/3)"
+ C|sc2gslam1p "Grandslam Club (UK, set 2, Arcade, Protocol) (Scorpion 2/3)"
+ C|sc2gslam2 "Grandslam Club (UK, set 3) (Scorpion 2/3)"
+ C|sc2gslamp "Grandslam Club (UK, set 1, Protocol) (Scorpion 2/3)"
+ c|sc2heypr "Hey Presto (Bellfruit) (Scorpion 2/3)"
+ C|sc2heypr "Hey Presto (Bellfruit) (set 1, UK) (Scorpion 2/3)"
+ C|sc2heyprp "Hey Presto (Bellfruit) (set 1, UK, Protocol) (Scorpion 2/3)"
+ c|sc2hifly "High Flyer (Mdm) (Scorpion 2/3)"
+ C|sc2hifly "High Flyer (Mdm) (v4.1) (Scorpion 2/3)"
+ C|sc2hifly2 "High Flyer (Mdm) (v3.1) (Scorpion 2/3)"
+ C|sc2hifly3 "High Flyer (Mdm) (v2.1) (Scorpion 2/3)"
+ C|sc2hifly4 "High Flyer (Mdm) (v?.?) (Scorpion 2/3)"
+ c|sc2hypr "Hyperactive (Bellfruit) (Scorpion 2/3)"
+ C|sc2hypr "Hyperactive (Bellfruit) (set 1, UK, 10GBP Jackpot) (Scorpion 2/3)"
+ C|sc2hypr1 "Hyperactive (Bellfruit) (set 2, UK, 10GBP Jackpot) (Scorpion 2/3)"
+ C|sc2hypr1p "Hyperactive (Bellfruit) (set 2, UK, 10GBP Jackpot, Protocol) (Scorpion 2/3)"
+ C|sc2hyprp "Hyperactive (Bellfruit) (set 1, UK, 10GBP Jackpot, Protocol) (Scorpion 2/3)"
+ c|sc2inst "Instant Jackpot (Bellfruit) (Scorpion 2/3)"
+ C|sc2inst "Instant Jackpot (Bellfruit) (set 1, UK, 10GBP Jackpot) (Scorpion 2/3)"
+ C|sc2inst1 "Instant Jackpot (Bellfruit) (set 2, UK, 10GBP Jackpot) (Scorpion 2/3)"
+ C|sc2inst1p "Instant Jackpot (Bellfruit) (set 2, UK, 10GBP Jackpot, Protocol) (Scorpion 2/3)"
+ C|sc2inst2 "Instant Jackpot (Bellfruit) (set 3, UK) (Scorpion 2/3)"
+ C|sc2inst2p "Instant Jackpot (Bellfruit) (set 3, UK, Protocol) (Scorpion 2/3)"
+ C|sc2inst3 "Instant Jackpot (Bellfruit) (set 4, UK, 8GBP Jackpot) (Scorpion 2/3)"
+ C|sc2inst3p "Instant Jackpot (Bellfruit) (set 4, UK, 8GBP Jackpot, Protocol) (Scorpion 2/3)"
+ C|sc2inst4 "Instant Jackpot (Bellfruit) (set 5, UK) (Scorpion 2/3)"
+ C|sc2inst4p "Instant Jackpot (Bellfruit) (set 5, UK, Protocol) (Scorpion 2/3)"
+ C|sc2inst5 "Instant Jackpot (Bellfruit) (set 6, UK) (Scorpion 2/3)"
+ C|sc2inst6 "Instant Jackpot (Bellfruit) (set 7, UK) (Scorpion 2/3)"
+ C|sc2instp "Instant Jackpot (Bellfruit) (set 1, UK, 10GBP Jackpot, Protocol) (Scorpion 2/3)"
+ c|sc2kcclb "King Cash Club (Bellfruit) (Scorpion 2/3)"
+ C|sc2kcclb "King Cash Club (Bellfruit) (set 1, UK) (Scorpion 2/3)"
+ C|sc2kcclb1 "King Cash Club (Bellfruit) (set 2, UK) (Scorpion 2/3)"
+ C|sc2kcclb1p "King Cash Club (Bellfruit) (set 2, UK, Protocol) (Scorpion 2/3)"
+ C|sc2kcclbp "King Cash Club (Bellfruit) (set 1, UK, Protocol) (Scorpion 2/3)"
+ c|sc2mam "Make A Million (Bellfruit) (Scorpion 2/3)"
+ C|sc2mam "Make A Million (Bellfruit) (set 1, UK, 10GBP Jackpot) (Scorpion 2/3)"
+ C|sc2mam1 "Make A Million (Bellfruit) (set 2, UK, 10GBP Jackpot) (Scorpion 2/3)"
+ C|sc2mam1p "Make A Million (Bellfruit) (set 2, UK, 10GBP Jackpot, Protocol) (Scorpion 2/3)"
+ C|sc2mam2 "Make A Million (Bellfruit) (set 3, UK, 8GBP Jackpot) (Scorpion 2/3)"
+ C|sc2mam2p "Make A Million (Bellfruit) (set 3, UK, 8GBP Jackpot, Protocol) (Scorpion 2/3)"
+ C|sc2mam3 "Make A Million (Bellfruit) (set 4, UK) (Scorpion 2/3)"
+ C|sc2mam3p "Make A Million (Bellfruit) (set 4, UK, Protocol) (Scorpion 2/3)"
+ C|sc2mam4 "Make A Million (Bellfruit) (set 5, UK) (Scorpion 2/3)"
+ C|sc2mam4p "Make A Million (Bellfruit) (set 5, UK, Protocol) (Scorpion 2/3)"
+ C|sc2mam5 "Make A Million (Bellfruit) (set 6, UK) (Scorpion 2/3)"
+ c|sc2mamcl "Make A Million Club (Bellfruit) (Scorpion 2/3)"
+ C|sc2mamcl "Make A Million Club (Bellfruit) (set 1, UK, 250GBP Jackpot) (Scorpion 2/3)"
+ C|sc2mamcl1 "Make A Million Club (Bellfruit) (set 2, UK) (Scorpion 2/3)"
+ C|sc2mamcl1p "Make A Million Club (Bellfruit) (set 2, UK, Protocol) (Scorpion 2/3)"
+ C|sc2mamcl2 "Make A Million Club (Bellfruit) (set 3, UK) (Scorpion 2/3)"
+ C|sc2mamcl2p "Make A Million Club (Bellfruit) (set 3, UK, Protocol) (Scorpion 2/3)"
+ C|sc2mamcl3 "Make A Million Club (Bellfruit) (set 4, UK) (Scorpion 2/3)"
+ C|sc2mamclp "Make A Million Club (Bellfruit) (set 1, UK, 250GBP Jackpot, Protocol) (Scorpion 2/3)"
+ C|sc2mamp "Make A Million (Bellfruit) (set 1, UK, 10GBP Jackpot, Protocol) (Scorpion 2/3)"
+ c|sc2motd "Match Of The Day (Bellfruit) (Scorpion 2/3)"
+ C|sc2motd "Match Of The Day (Bellfruit) (set 1, UK, 10GBP Jackpot) (Scorpion 2/3)"
+ C|sc2motd1 "Match Of The Day (Bellfruit) (set 2, UK, 10GBP Jackpot, 1st Triennial) (Scorpion 2/3)"
+ C|sc2motd10p "Match Of The Day (Bellfruit) (set 11, UK, 8GBP Jackpot, Protocol) (Scorpion 2/3)"
+ C|sc2motd1p "Match Of The Day (Bellfruit) (set 2, UK, 10GBP Jackpot, 1st Triennial, Protocol) (Scorpion 2/3)"
+ C|sc2motd2 "Match Of The Day (Bellfruit) (set 3, UK, 10GBP Jackpot) (Scorpion 2/3)"
+ C|sc2motd2p "Match Of The Day (Bellfruit) (set 3, UK, 10GBP Jackpot, Protocol) (Scorpion 2/3)"
+ C|sc2motd3 "Match Of The Day (Bellfruit) (set 4, UK) (Scorpion 2/3)"
+ C|sc2motd3p "Match Of The Day (Bellfruit) (set 4, UK, Protocol) (Scorpion 2/3)"
+ C|sc2motd4 "Match Of The Day (Bellfruit) (set 5, UK, Arcade) (Scorpion 2/3)"
+ C|sc2motd4p "Match Of The Day (Bellfruit) (set 5, UK, Arcade, Protocol) (Scorpion 2/3)"
+ C|sc2motd5 "Match Of The Day (Bellfruit) (set 6, UK, Single Site) (Scorpion 2/3)"
+ C|sc2motd5p "Match Of The Day (Bellfruit) (set 6, UK, Single Site, Protocol) (Scorpion 2/3)"
+ C|sc2motd6 "Match Of The Day (Bellfruit) (set 7, UK, 8GBP Jackpot) (Scorpion 2/3)"
+ C|sc2motd6p "Match Of The Day (Bellfruit) (set 7, UK, 8GBP Jackpot, Protocol) (Scorpion 2/3)"
+ C|sc2motd7 "Match Of The Day (Bellfruit) (set 8, UK) (Scorpion 2/3)"
+ C|sc2motd7p "Match Of The Day (Bellfruit) (set 8, UK, Protocol) (Scorpion 2/3)"
+ C|sc2motd8 "Match Of The Day (Bellfruit) (set 9, UK) (Scorpion 2/3)"
+ C|sc2motd8p "Match Of The Day (Bellfruit) (set 9, UK, Protocol) (Scorpion 2/3)"
+ C|sc2motd9 "Match Of The Day (Bellfruit) (set 10, UK, 6GBP Jackpot) (Scorpion 2/3)"
+ C|sc2motdp "Match Of The Day (Bellfruit) (set 1, UK, 10GBP Jackpot, Protocol) (Scorpion 2/3)"
+ c|sc2ofool "Only Fools & Horses (Bellfruit) (Scorpion 2/3)"
+ C|sc2ofool "Only Fools & Horses (Bellfruit) (set 1) (Scorpion 2/3)"
+ C|sc2ofool1 "Only Fools & Horses (Bellfruit) (set 2) (Scorpion 2/3)"
+ C|sc2ofool2 "Only Fools & Horses (Bellfruit) (set 3) (Scorpion 2/3)"
+ C|sc2ofool3 "Only Fools & Horses (Bellfruit) (set 4) (Scorpion 2/3)"
+ C|sc2ofool4 "Only Fools & Horses (Bellfruit) (set 5) (Scorpion 2/3)"
+ c|sc2olgld "Olympic Gold (Bellfruit) (Scorpion 2/3)"
+ C|sc2olgld "Olympic Gold (Bellfruit) (set 1, UK) (Scorpion 2/3)"
+ C|sc2olgld1 "Olympic Gold (Bellfruit) (set 2, UK, 10GBP Jackpot) (Scorpion 2/3)"
+ C|sc2olgld1p "Olympic Gold (Bellfruit) (set 2, UK, 10GBP Jackpot, Protocol) (Scorpion 2/3)"
+ C|sc2olgldp "Olympic Gold (Bellfruit) (set 1, UK, Protocol) (Scorpion 2/3)"
+ c|sc2pick "Pick Of The Bunch (Global) (Scorpion 2/3)"
+ C|sc2pick "Pick Of The Bunch (Global) (v2.3) (Scorpion 2/3)"
+ C|sc2pickc "Pick Of The Bunch (Club?) (Global) (v1.9) (Scorpion 2/3)"
+ C|sc2pickcp "Pick Of The Bunch (Club?) (Global) (v1.9 Protocol) (Scorpion 2/3)"
+ C|sc2pickp "Pick Of The Bunch (Global) (v2.3 Protocol) (Scorpion 2/3)"
+ c|sc2prem "Premier Club Manager (Bellfruit) (Scorpion 2/3)"
+ C|sc2prem "Premier Club Manager (Bellfruit) (set 1, UK, 250GBP Jackpot) (Scorpion 2/3)"
+ C|sc2prem1 "Premier Club Manager (Bellfruit) (set 2, UK) (Scorpion 2/3)"
+ C|sc2prem1p "Premier Club Manager (Bellfruit) (set 2, UK, Protocol) (Scorpion 2/3)"
+ C|sc2prem2 "Premier Club Manager (Bellfruit) (set 3, UK) (Scorpion 2/3)"
+ C|sc2premp "Premier Club Manager (Bellfruit) (set 1, UK, 250GBP Jackpot, Protocol) (Scorpion 2/3)"
+ c|sc2ptytm "Party Time (Bellfruit) (Scorpion 2/3)"
+ C|sc2ptytm "Party Time (Bellfruit) (set 1) (Scorpion 2/3)"
+ C|sc2ptytm1 "Party Time (Bellfruit) (set 2) (Scorpion 2/3)"
+ C|sc2ptytm1p "Party Time (Bellfruit) (set 2, Protocol) (Scorpion 2/3)"
+ c|sc2relgm "Reel Gems (Bellfruit) (Scorpion 2/3)"
+ C|sc2relgm "Reel Gems (Bellfruit) (set 1, UK) (Scorpion 2/3)"
+ C|sc2relgm1p "Reel Gems (Bellfruit) (set 2, UK, Protocol) (Scorpion 2/3)"
+ C|sc2relgmp "Reel Gems (Bellfruit) (set 1, UK, Protocol) (Scorpion 2/3)"
+ c|sc2rock "How Big's Your Rock (Global) (Scorpion 2/3)"
+ C|sc2rock "How Big's Your Rock? (Global) (v1.5) (Scorpion 2/3)"
+ C|sc2rock1 "How Big's Your Rock? (Global) (v1.4) (Scorpion 2/3)"
+ C|sc2rock1p "How Big's Your Rock? (Global) (v1.4 Protocol) (Scorpion 2/3)"
+ C|sc2rocke "How Big's Your Rock? (Global) (v?.? Euro) (Scorpion 2/3)"
+ C|sc2rockp "How Big's Your Rock? (Global) (v1.5 Protocol) (Scorpion 2/3)"
+ c|sc2scc "Safe Cracker Club (Mdm) (Scorpion 2/3)"
+ C|sc2scc "Safe Cracker Club (Mdm) (v4.4) (Scorpion 2/3)"
+ c|sc2showt "Showtime Spectacular (Bellfruit) (Scorpion 2/3)"
+ C|sc2showt "Showtime Spectacular (Bellfruit) (set 1, UK) (Scorpion 2/3)"
+ C|sc2showt1 "Showtime Spectacular (Bellfruit) (set 2, UK) (Scorpion 2/3)"
+ C|sc2showt1p "Showtime Spectacular (Bellfruit) (set 2, UK, Protocol) (Scorpion 2/3)"
+ C|sc2showt2 "Showtime Spectacular (Bellfruit) (set 3, UK) (Scorpion 2/3)"
+ C|sc2showt2p "Showtime Spectacular (Bellfruit) (set 3, UK, Protocol) (Scorpion 2/3)"
+ C|sc2showt3 "Showtime Spectacular (Bellfruit) (set 4, UK) (Scorpion 2/3)"
+ C|sc2showt3p "Showtime Spectacular (Bellfruit) (set 4, UK, Protocol) (Scorpion 2/3)"
+ C|sc2showt4 "Showtime Spectacular (Bellfruit) (set 5, UK) (Scorpion 2/3)"
+ C|sc2showt4p "Showtime Spectacular (Bellfruit) (set 5, UK, Protocol) (Scorpion 2/3)"
+ C|sc2showtp "Showtime Spectacular (Bellfruit) (set 1, UK, Protocol) (Scorpion 2/3)"
+ c|sc2sstar "Superstar (Bellfruit) (Scorpion 2/3)"
+ C|sc2sstar "Superstar (Bellfruit) (set 1, UK, 3rd Triennial) (Scorpion 2/3)"
+ C|sc2sstar1 "Superstar (Bellfruit) (set 2, UK, 2nd Triennial) (Scorpion 2/3)"
+ C|sc2sstar1p "Superstar (Bellfruit) (set 2, UK, 2nd Triennial, Protocol) (Scorpion 2/3)"
+ C|sc2sstar2 "Superstar (Bellfruit) (set 3, UK, 2nd Triennial) (Scorpion 2/3)"
+ C|sc2sstar2p "Superstar (Bellfruit) (set 3, UK, 2nd Triennial, Protocol) (Scorpion 2/3)"
+ C|sc2sstar3 "Superstar (Bellfruit) (set 4, UK, 2nd Triennial) (Scorpion 2/3)"
+ C|sc2sstar3p "Superstar (Bellfruit) (set 4, UK, 2nd Triennial, Protocol) (Scorpion 2/3)"
+ C|sc2sstar4 "Superstar (Bellfruit) (set 5, UK) (Scorpion 2/3)"
+ C|sc2sstarp "Superstar (Bellfruit) (set 1, UK, 3rd Triennial, Protocol) (Scorpion 2/3)"
+ c|sc2suprz "Surprise Surprize (Bellfruit) (Scorpion 2/3)"
+ C|sc2suprz "Surprise Surprize (Bellfruit) (set 1, UK) (Scorpion 2/3)"
+ C|sc2suprz1 "Surprise Surprize (Bellfruit) (set 2, UK) (Scorpion 2/3)"
+ C|sc2suprz1p "Surprise Surprize (Bellfruit) (set 2, UK, Protocol)(Scorpion 2/3)"
+ C|sc2suprz2 "Surprise Surprize (Bellfruit) (set 3, UK) (Scorpion 2/3)"
+ C|sc2suprz2p "Surprise Surprize (Bellfruit) (set 3, UK, Protocol)(Scorpion 2/3)"
+ C|sc2suprz3 "Surprise Surprize (Bellfruit) (set 4, UK) (Scorpion 2/3)"
+ C|sc2suprzp "Surprise Surprize (Bellfruit) (set 1, UK, Protocol)(Scorpion 2/3)"
+ c|sc2topwk "Top Wack (Bellfruit) (Scorpion 2/3)"
+ C|sc2topwk "Top Wack (Bellfruit) (set 1, UK, 10GBP Jackpot, 1st Triennial) (Scorpion 2/3)"
+ C|sc2topwkp "Top Wack (Bellfruit) (set 1, UK, 10GBP Jackpot, 1st Triennial, Protocol) (Scorpion 2/3)"
+ c|sc2town "Round The Town (Bellfruit) (Scorpion 2/3)"
+ C|sc2town "Round The Town (Bellfruit) (set 1) (Scorpion 2/3)"
+ C|sc2town1 "Round The Town (Bellfruit) (set 2) (Scorpion 2/3)"
+ C|sc2town1p "Round The Town (Bellfruit) (set 2, Protocol) (Scorpion 2/3)"
+ C|sc2town2 "Round The Town (Bellfruit) (set 3) (Scorpion 2/3)"
+ C|sc2town3 "Round The Town (Bellfruit) (set 4) (Scorpion 2/3)"
+ C|sc2town3p "Round The Town (Bellfruit) (set 4, Protocol) (Scorpion 2/3)"
+ C|sc2town4 "Round The Town (Bellfruit) (set 5) (Scorpion 2/3)"
+ C|sc2town5 "Round The Town (Bellfruit) (set 6) (Scorpion 2/3)"
+ C|sc2townp "Round The Town (Bellfruit) (set 1, Protocol) (Scorpion 2/3)"
+ c|sc2wembl "Road To Wembley (Bellfruit) (Scorpion 2/3)"
+ C|sc2wembl "Road To Wembley (Bellfruit) (set 1, UK, 10GBP Jackpot, 15RM motor) (Scorpion 2/3)"
+ C|sc2wembl1 "Road To Wembley (Bellfruit) (set 2, UK, 15RM motor) (Scorpion 2/3)"
+ C|sc2wembl10 "Road To Wembley (Bellfruit) (set 11, UK) (Scorpion 2/3)"
+ C|sc2wembl1p "Road To Wembley (Bellfruit) (set 2, UK, 15RM motor, Protocol) (Scorpion 2/3)"
+ C|sc2wembl2 "Road To Wembley (Bellfruit) (set 3, UK) (Scorpion 2/3)"
+ C|sc2wembl2p "Road To Wembley (Bellfruit) (set 3, UK, Protocol) (Scorpion 2/3)"
+ C|sc2wembl3 "Road To Wembley (Bellfruit) (set 4, UK) (Scorpion 2/3)"
+ C|sc2wembl4p "Road To Wembley (Bellfruit) (set 5, UK, Protocol) (Scorpion 2/3)"
+ C|sc2wembl5a "Road To Wembley (Bellfruit) (set 6, UK, 16RM motor) (Scorpion 2/3)"
+ C|sc2wembl5ap "Road To Wembley (Bellfruit) (set 6, UK, 16RM motor, Protocol) (Scorpion 2/3)"
+ C|sc2wembl6ap "Road To Wembley (Bellfruit) (set 7, UK, 16RM motor, Protocol) (Scorpion 2/3)"
+ C|sc2wembl7a "Road To Wembley (Bellfruit) (set 8, UK, 8GBP Jackpot, 16RM motor) (Scorpion 2/3)"
+ C|sc2wembl7ap "Road To Wembley (Bellfruit) (set 8, UK, 8GBP Jackpot, 16RM motor, Protocol) (Scorpion 2/3)"
+ C|sc2wembl8 "Road To Wembley (Bellfruit) (set 9, UK) (Scorpion 2/3)"
+ C|sc2wembl9 "Road To Wembley (Bellfruit) (set 10, UK) (Scorpion 2/3)"
+ C|sc2wemblp "Road To Wembley (Bellfruit) (set 1, UK, 10GBP Jackpot, 15RM motor, Protocol) (Scorpion 2/3)"
+ c|sc2wwcl "Wild West Club (Bellfruit) (Scorpion 2/3)"
+ C|sc2wwcl "Wild West Club (Bellfruit) (set 1, UK, 250GBP Jackpot) (Scorpion 2/3)"
+ C|sc2wwcl1 "Wild West Club (Bellfruit) (set 2, UK) (Scorpion 2/3)"
+ C|sc2wwcl1p "Wild West Club (Bellfruit) (set 2, UK, Protocol) (Scorpion 2/3)"
+ C|sc2wwclp "Wild West Club (Bellfruit) (set 1, UK, 250GBP Jackpot, Protocol) (Scorpion 2/3)"
+ c|sc4cblas "Cash Blast (Bellfruit) (Scorpion 4)"
+ C|sc4cblas "Cash Blast (Voodoo Games) (Scorpion 4) (set 1)"
+ C|sc4cblasa "Cash Blast (Voodoo Games) (Scorpion 4) (set 2)"
+ C|sc4cfcas "Crazy Fruits Casino (Bellfruit) (Scorpion 4) (set 1)"
+ c|sc4cfcas "Crazy Fruits Casino (Bellfruit) (Scorpion 4)"
+ C|sc4cfcasa "Crazy Fruits Casino (Bellfruit) (Scorpion 4) (set 2)"
+ C|sc4cfcasb "Crazy Fruits Casino (Bellfruit) (Scorpion 4) (set 3)"
+ C|sc4cfcasc "Crazy Fruits Casino (Bellfruit) (Scorpion 4) (set 4)"
+ C|sc4cfcasd "Crazy Fruits Casino (Bellfruit) (Scorpion 4) (set 5)"
+ C|sc4cfcase "Crazy Fruits Casino (Bellfruit) (Scorpion 4) (set 6)"
+ C|sc4cfcasf "Crazy Fruits Casino (Bellfruit) (Scorpion 4) (set 7)"
+ C|sc4cfcasg "Crazy Fruits Casino (Bellfruit) (Scorpion 4) (set 8)"
+ C|sc4cfcash "Crazy Fruits Casino (Bellfruit) (Scorpion 4) (set 9)"
+ C|sc4cfcasi "Crazy Fruits Casino (Bellfruit) (Scorpion 4) (set 10)"
+ C|sc4cfcasj "Crazy Fruits Casino (Bellfruit) (Scorpion 4) (set 11)"
+ C|sc4cfcask "Crazy Fruits Casino (Bellfruit) (Scorpion 4) (set 12)"
+ C|sc4cfcasl "Crazy Fruits Casino (Bellfruit) (Scorpion 4) (set 13)"
+ C|sc4cfcasm "Crazy Fruits Casino (Bellfruit) (Scorpion 4) (set 14)"
+ C|sc4cfcasn "Crazy Fruits Casino (Bellfruit) (Scorpion 4) (set 15)"
+ C|sc4cfcaso "Crazy Fruits Casino (Bellfruit) (Scorpion 4) (set 16)"
+ C|sc4cfcasp "Crazy Fruits Casino (Bellfruit) (Scorpion 4) (set 17)"
+ C|sc4cfcasq "Crazy Fruits Casino (Bellfruit) (Scorpion 4) (set 18)"
+ C|sc4cfcasr "Crazy Fruits Casino (Bellfruit) (Scorpion 4) (set 19)"
+ c|sc4crzgn "Crazy Gang (Bellfruit) (Scorpion 4) (set 1)"
+ C|sc4crzgn "Crazy Gang (Bellfruit) (Scorpion 4) (set 1, Top Box)"
+ c|sc4crzgnb "Crazy Gang (Bellfruit) (Scorpion 4) (set 3)"
+ C|sc4crzgnb "Crazy Gang (Bellfruit) (Scorpion 4) (set 3, Top Box)"
+ c|sc4crzgng "Crazy Gang (Bellfruit) (Scorpion 4) (set 8)"
+ C|sc4crzgng "Crazy Gang (Bellfruit) (Scorpion 4) (set 8, Top Box)"
+ c|sc4crzgnj "Crazy Gang (Bellfruit) (Scorpion 4) (set 11)"
+ C|sc4crzgnj "Crazy Gang (Bellfruit) (Scorpion 4) (set 11, Top Box)"
+ C|sc4dhh "Dough Ho Ho (Bellfruit) (Scorpion 4) (set 1)"
+ c|sc4dhh "Dough Ho Ho (Bellfruit) (Scorpion 4) (set 2)"
+ C|sc4dhha "Dough Ho Ho (Bellfruit) (Scorpion 4) (set 2)"
+ c|sc4dhha "Dough Ho Ho (Bellfruit) (Scorpion 4) (set 3)"
+ C|sc4dhhb "Dough Ho Ho (Bellfruit) (Scorpion 4) (set 3)"
+ c|sc4dhhb "Dough Ho Ho (Bellfruit) (Scorpion 4) (set 4)"
+ C|sc4dhhc "Dough Ho Ho (Bellfruit) (Scorpion 4) (set 4)"
+ c|sc4dhhc "Dough Ho Ho (Bellfruit) (Scorpion 4) (set 5)"
+ C|sc4dhhd "Dough Ho Ho (Bellfruit) (Scorpion 4) (set 5)"
+ c|sc4dhhd "Dough Ho Ho (Bellfruit) (Scorpion 4) (set 6)"
+ C|sc4dhhe "Dough Ho Ho (Bellfruit) (Scorpion 4) (set 6)"
+ c|sc4dhhe "Dough Ho Ho (Bellfruit) (Scorpion 4) (set 7)"
+ C|sc4dnd "Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL016, set 1)"
+ c|sc4dnd "Deal Or No Deal (Bellfruit) (Scorpion 4) (set 1)"
+ C|sc4dnda "Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL422, set 2)"
+ c|sc4dnda "Deal Or No Deal (Bellfruit) (Scorpion 4) (set 2)"
+ C|sc4dndb "Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL016, set 2)"
+ c|sc4dndb "Deal Or No Deal (Bellfruit) (Scorpion 4) (set 3)"
+ C|sc4dndbb "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (CRBE471, set 1)"
+ c|sc4dndbb "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (set 1)"
+ C|sc4dndbba "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (CRBE472, set 1)"
+ c|sc4dndbba "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (set 2)"
+ C|sc4dndbbb "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (CRBE471, set 2)"
+ c|sc4dndbbb "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (set 3)"
+ C|sc4dndbbc "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (CRBE472, set 2)"
+ c|sc4dndbbc "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (set 4)"
+ C|sc4dndbbd "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (CRBE473, set 1)"
+ c|sc4dndbbd "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (set 5)"
+ C|sc4dndbbe "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (CRBE571, set 1)"
+ c|sc4dndbbe "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (set 6)"
+ C|sc4dndbbf "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (CRBE572, set 1)"
+ c|sc4dndbbf "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (set 7)"
+ C|sc4dndbbg "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (CRBE473, set 2)"
+ c|sc4dndbbg "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (set 8)"
+ C|sc4dndbbh "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (CRBE571, set 2)"
+ c|sc4dndbbh "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (set 9)"
+ C|sc4dndbbi "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (CRBE572, set 2)"
+ c|sc4dndbbi "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (set 10)"
+ C|sc4dndbc "Deal Or No Deal Box Clever (Bellfruit) (Scorpion 4) (BOXR571, set 1)"
+ c|sc4dndbc "Deal Or No Deal Box Clever (Bellfruit) (Scorpion 4) (set 1)"
+ C|sc4dndbca "Deal Or No Deal Box Clever (Bellfruit) (Scorpion 4) (BOXR571, set 2)"
+ c|sc4dndbca "Deal Or No Deal Box Clever (Bellfruit) (Scorpion 4) (set 2)"
+ C|sc4dndbd "Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 4) (BGDA471, set 1)"
+ c|sc4dndbd "Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 4) (set 1)"
+ C|sc4dndbda "Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 4) (BGDA471, set 2)"
+ c|sc4dndbda "Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 4) (set 2)"
+ C|sc4dndbdb "Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 4) (BGDA472, set 1)"
+ c|sc4dndbdb "Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 4) (set 3)"
+ C|sc4dndbdc "Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 4) (BGDA571, set 1)"
+ c|sc4dndbdc "Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 4) (set 4)"
+ C|sc4dndbdd "Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 4) (BGDA472, set 2)"
+ c|sc4dndbdd "Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 4) (set 5)"
+ C|sc4dndbde "Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 4) (BGDA571, set 2)"
+ c|sc4dndbde "Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 4) (set 6)"
+ C|sc4dndbe "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK012, set 1)"
+ c|sc4dndbe "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (set 1)"
+ C|sc4dndbeb "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK422, set 1)"
+ c|sc4dndbeb "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (set 2)"
+ C|sc4dndbec "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK012, set 2)"
+ c|sc4dndbec "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (set 3)"
+ C|sc4dndbed "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK422, set 2)"
+ c|sc4dndbed "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (set 4)"
+ C|sc4dndbee "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK423, set 1)"
+ c|sc4dndbee "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (set 5)"
+ C|sc4dndbef "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK425, set 1)"
+ c|sc4dndbef "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (set 6)"
+ C|sc4dndbeg "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK013, set 1)"
+ c|sc4dndbeg "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (set 7)"
+ C|sc4dndbeh "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK014, set 1)"
+ c|sc4dndbeh "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (set 8)"
+ C|sc4dndbei "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK423, set 2)"
+ c|sc4dndbei "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (set 9)"
+ C|sc4dndbej "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK425, set 2)"
+ c|sc4dndbej "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (set 10)"
+ C|sc4dndbek "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK013, set 2)"
+ c|sc4dndbek "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (set 11)"
+ C|sc4dndbel "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK014, set 2)"
+ c|sc4dndbel "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (set 12)"
+ C|sc4dndbem "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK426, set 1)"
+ c|sc4dndbem "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (set 13)"
+ C|sc4dndben "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK426, set 2)"
+ c|sc4dndben "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (set 14)"
+ C|sc4dndbr "Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (BIGD471, set 1)"
+ c|sc4dndbr "Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (set 1)"
+ C|sc4dndbra "Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (BIGD472, set 1)"
+ c|sc4dndbra "Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (set 2)"
+ C|sc4dndbrb "Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (BIGD471, set 2)"
+ c|sc4dndbrb "Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (set 3)"
+ C|sc4dndbrc "Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (BIGD472, set 2)"
+ c|sc4dndbrc "Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (set 4)"
+ C|sc4dndbrd "Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (BIGD475, set 1)"
+ c|sc4dndbrd "Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (set 5)"
+ C|sc4dndbre "Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (BIGD571, set 1)"
+ c|sc4dndbre "Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (set 6)"
+ C|sc4dndbrf "Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (BIGD475, set 2)"
+ c|sc4dndbrf "Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (set 7)"
+ C|sc4dndbrg "Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (BIGD571, set 2)"
+ c|sc4dndbrg "Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (set 8)"
+ C|sc4dndc "Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL422, set 1)"
+ c|sc4dndc "Deal Or No Deal (Bellfruit) (Scorpion 4) (set 4)"
+ C|sc4dndcc "Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 4) (CRZR471, set 1)"
+ c|sc4dndcc "Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 4) (set 1)"
+ C|sc4dndcca "Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 4) (CRZR474)"
+ c|sc4dndcca "Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 4) (set 2)"
+ C|sc4dndccb "Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 4) (CRZR471, set 2)"
+ c|sc4dndccb "Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 4) (set 3)"
+ C|sc4dndccc "Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 4) (CRZR475, set 1)"
+ c|sc4dndccc "Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 4) (set 4)"
+ C|sc4dndccd "Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 4) (CRZR571, set 1)"
+ c|sc4dndccd "Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 4) (set 5)"
+ C|sc4dndcce "Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 4) (CRZR475, set 2)"
+ c|sc4dndcce "Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 4) (set 6)"
+ C|sc4dndccf "Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 4) (CRZR571, set 2)"
+ c|sc4dndccf "Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 4) (set 7)"
+ C|sc4dndcl "Deal Or No Deal Club (Bellfruit) (Scorpion 4) (DNDL313, set 1)"
+ c|sc4dndcl "Deal Or No Deal Club (Bellfruit) (Scorpion 4) (set 1)"
+ C|sc4dndcla "Deal Or No Deal Club (Bellfruit) (Scorpion 4) (DNDL212, set 1)"
+ c|sc4dndcla "Deal Or No Deal Club (Bellfruit) (Scorpion 4) (set 2)"
+ C|sc4dndclb "Deal Or No Deal Club (Bellfruit) (Scorpion 4) (DNDL391, set 1)"
+ c|sc4dndclb "Deal Or No Deal Club (Bellfruit) (Scorpion 4) (set 3)"
+ C|sc4dndclc "Deal Or No Deal Club (Bellfruit) (Scorpion 4) (DNDL181, set 1)"
+ c|sc4dndclc "Deal Or No Deal Club (Bellfruit) (Scorpion 4) (set 4)"
+ C|sc4dndcld "Deal Or No Deal Club (Bellfruit) (Scorpion 4) (DNDL313, set 2)"
+ c|sc4dndcld "Deal Or No Deal Club (Bellfruit) (Scorpion 4) (set 5)"
+ C|sc4dndcle "Deal Or No Deal Club (Bellfruit) (Scorpion 4) (DNDL212, set 2)"
+ c|sc4dndcle "Deal Or No Deal Club (Bellfruit) (Scorpion 4) (set 6)"
+ C|sc4dndclf "Deal Or No Deal Club (Bellfruit) (Scorpion 4) (DNDL391, set 2)"
+ c|sc4dndclf "Deal Or No Deal Club (Bellfruit) (Scorpion 4) (set 7)"
+ C|sc4dndclg "Deal Or No Deal Club (Bellfruit) (Scorpion 4) (DNDL181, set 2)"
+ c|sc4dndclg "Deal Or No Deal Club (Bellfruit) (Scorpion 4) (set 8)"
+ C|sc4dndcs "Deal Or No Deal Classic (Bellfruit) (Scorpion 4) (CLDD211, set 1)"
+ c|sc4dndcs "Deal Or No Deal Classic (Bellfruit) (Scorpion 4) (set 1)"
+ C|sc4dndcsa "Deal Or No Deal Classic (Bellfruit) (Scorpion 4) (CLDD212, set 1)"
+ c|sc4dndcsa "Deal Or No Deal Classic (Bellfruit) (Scorpion 4) (set 2)"
+ C|sc4dndcsb "Deal Or No Deal Classic (Bellfruit) (Scorpion 4) (CLDD211, set 2)"
+ c|sc4dndcsb "Deal Or No Deal Classic (Bellfruit) (Scorpion 4) (set 3)"
+ C|sc4dndcsc "Deal Or No Deal Classic (Bellfruit) (Scorpion 4) (CLDD212, set 2)"
+ c|sc4dndcsc "Deal Or No Deal Classic (Bellfruit) (Scorpion 4) (set 4)"
+ C|sc4dndcsd "Deal Or No Deal Classic (Bellfruit) (Scorpion 4) (CLDD215, set 1)"
+ C|sc4dndcse "Deal Or No Deal Classic (Bellfruit) (Scorpion 4) (CLDD215, set 2)"
+ C|sc4dndcw "Deal Or No Deal The Walk Of Wealth Classic (Bellfruit) (Scorpion 4) (CWOH271, set 1)"
+ c|sc4dndcw "Deal Or No Deal The Walk Of Wealth Classic (Bellfruit) (Scorpion 4) (set 1)"
+ C|sc4dndcwa "Deal Or No Deal The Walk Of Wealth Classic (Bellfruit) (Scorpion 4) (CWOH272, set 1)"
+ c|sc4dndcwa "Deal Or No Deal The Walk Of Wealth Classic (Bellfruit) (Scorpion 4) (set 2)"
+ C|sc4dndcwb "Deal Or No Deal The Walk Of Wealth Classic (Bellfruit) (Scorpion 4) (CWOH271, set 2)"
+ c|sc4dndcwb "Deal Or No Deal The Walk Of Wealth Classic (Bellfruit) (Scorpion 4) (set 3)"
+ C|sc4dndcwc "Deal Or No Deal The Walk Of Wealth Classic (Bellfruit) (Scorpion 4) (CWOH272, set 2)"
+ c|sc4dndcwc "Deal Or No Deal The Walk Of Wealth Classic (Bellfruit) (Scorpion 4) (set 4)"
+ C|sc4dndd "Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL402, set 1)"
+ c|sc4dndd "Deal Or No Deal (Bellfruit) (Scorpion 4) (set 5)"
+ C|sc4dnddd "Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (DDNO471, set 1)"
+ c|sc4dnddd "Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (set 1)"
+ C|sc4dnddda "Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (DDNO571, set 1)"
+ c|sc4dnddda "Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (set 2)"
+ C|sc4dndddb "Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (DDNO572, set 1)"
+ c|sc4dndddb "Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (set 3)"
+ C|sc4dndddc "Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (DDNO573, set 1)"
+ c|sc4dndddc "Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (set 4)"
+ C|sc4dndddd "Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (DDNO471, set 2)"
+ c|sc4dndddd "Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (set 5)"
+ C|sc4dnddde "Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (DDNO571, set 2)"
+ c|sc4dnddde "Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (set 6)"
+ C|sc4dndddf "Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (DDNO572, set 2)"
+ c|sc4dndddf "Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (set 7)"
+ C|sc4dndddg "Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (DDNO573, set 2)"
+ c|sc4dndddg "Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (set 8)"
+ c|sc4dnddf "Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 4) (set 1)"
+ C|sc4dnddf "Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 4) (TDFC471, set 1)"
+ c|sc4dnddfa "Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 4) (set 2)"
+ C|sc4dnddfa "Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 4) (TDFC471, set 2)"
+ c|sc4dnddfb "Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 4) (set 3)"
+ C|sc4dnddfb "Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 4) (TDFC475, set 1)"
+ c|sc4dnddfc "Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 4) (set 4)"
+ C|sc4dnddfc "Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 4) (TDFC571, set 1)"
+ c|sc4dnddfd "Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 4) (set 5)"
+ C|sc4dnddfd "Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 4) (TDFC475, set 2)"
+ c|sc4dnddfe "Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 4) (set 6)"
+ C|sc4dnddfe "Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 4) (TDFC571, set 2)"
+ C|sc4dnddw "Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (DOFN471, set 1)"
+ c|sc4dnddw "Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (set 1)"
+ C|sc4dnddwa "Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (DOFN473, set 1)"
+ c|sc4dnddwa "Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (set 2)"
+ C|sc4dnddwb "Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (DOFN471, set 2)"
+ c|sc4dnddwb "Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (set 3)"
+ C|sc4dnddwc "Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (DOFN473, set 2)"
+ c|sc4dnddwc "Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (set 4)"
+ C|sc4dnddwd "Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (DOFN475, set 1)"
+ c|sc4dnddwd "Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (set 5)"
+ C|sc4dnddwe "Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (DOFN572, set 1)"
+ c|sc4dnddwe "Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (set 6)"
+ C|sc4dnddwf "Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (DOFN475, set 2)"
+ c|sc4dnddwf "Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (set 7)"
+ C|sc4dnddwg "Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (DOFN572, set 2)"
+ c|sc4dnddwg "Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (set 8)"
+ C|sc4dnde "Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL017, set 1)"
+ c|sc4dnde "Deal Or No Deal (Bellfruit) (Scorpion 4) (set 6)"
+ C|sc4dndf "Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL018, set 1)"
+ c|sc4dndf "Deal Or No Deal (Bellfruit) (Scorpion 4) (set 7)"
+ C|sc4dndg "Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL402, set 2)"
+ c|sc4dndg "Deal Or No Deal (Bellfruit) (Scorpion 4) (set 8)"
+ C|sc4dndh "Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL017, set 2)"
+ c|sc4dndh "Deal Or No Deal (Bellfruit) (Scorpion 4) (set 9)"
+ C|sc4dndhf "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA473, set 1)"
+ c|sc4dndhf "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (set 1)"
+ C|sc4dndhfa "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA473, set 2)"
+ c|sc4dndhfa "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (set 2)"
+ C|sc4dndhfb "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA477, set 1)"
+ c|sc4dndhfb "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (set 3)"
+ C|sc4dndhfc "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA571, set 1)"
+ c|sc4dndhfc "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (set 4)"
+ C|sc4dndhfd "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA477, set 2)"
+ c|sc4dndhfd "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (set 5)"
+ C|sc4dndhfe "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA571, set 2)"
+ c|sc4dndhfe "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (set 6)"
+ C|sc4dndhff "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA471, set 1)"
+ c|sc4dndhff "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (set 7)"
+ C|sc4dndhfg "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA472, set 1)"
+ c|sc4dndhfg "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (set 8)"
+ C|sc4dndhfh "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA471, set 2)"
+ c|sc4dndhfh "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (set 9)"
+ C|sc4dndhfi "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA472, set 2)"
+ c|sc4dndhfi "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (set 10)"
+ C|sc4dndhfj "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA476)"
+ C|sc4dndhfk "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA572, set 1, bad?)"
+ C|sc4dndhfl "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA572, set 2, bad?)"
+ C|sc4dndi "Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL018, set 2)"
+ c|sc4dndi "Deal Or No Deal (Bellfruit) (Scorpion 4) (set 10)"
+ C|sc4dndj "Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL406, set 1)"
+ c|sc4dndj "Deal Or No Deal (Bellfruit) (Scorpion 4) (set 11)"
+ C|sc4dndk "Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL428, set 1)"
+ c|sc4dndk "Deal Or No Deal (Bellfruit) (Scorpion 4) (set 12)"
+ C|sc4dndl "Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL406, set 2)"
+ c|sc4dndl "Deal Or No Deal (Bellfruit) (Scorpion 4) (set 13)"
+ C|sc4dndlp "Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 4) (LPDN571, set 1)"
+ c|sc4dndlp "Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 4) (set 1)"
+ C|sc4dndlpa "Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 4) (LPDN572, set 1)"
+ c|sc4dndlpa "Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 4) (set 2)"
+ C|sc4dndlpb "Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 4) (LPDN573, set 1)"
+ c|sc4dndlpb "Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 4) (set 3)"
+ C|sc4dndlpc "Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 4) (LPDN571, set 2)"
+ c|sc4dndlpc "Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 4) (set 4)"
+ C|sc4dndlpd "Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 4) (LPDN572, set 2)"
+ c|sc4dndlpd "Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 4) (set 5)"
+ C|sc4dndlpe "Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 4) (LPDN573, set 2)"
+ c|sc4dndlpe "Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 4) (set 6)"
+ C|sc4dndm "Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL428, set 2)"
+ c|sc4dndm "Deal Or No Deal (Bellfruit) (Scorpion 4) (set 14)"
+ C|sc4dndn "Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL424, set 1)"
+ c|sc4dndn "Deal Or No Deal (Bellfruit) (Scorpion 4) (set 15)"
+ C|sc4dndo "Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL424, set 2)"
+ c|sc4dndo "Deal Or No Deal (Bellfruit) (Scorpion 4) (set 16)"
+ c|sc4dndpg "Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 4) (set 1)"
+ C|sc4dndpg "Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 4) (TPBG471, set 1)"
+ c|sc4dndpga "Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 4) (set 2)"
+ C|sc4dndpga "Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 4) (TPBG571, set 1)"
+ c|sc4dndpgb "Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 4) (set 3)"
+ C|sc4dndpgb "Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 4) (TPBG572, set 1)"
+ c|sc4dndpgc "Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 4) (set 4)"
+ C|sc4dndpgc "Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 4) (TPBG471, set 2)"
+ c|sc4dndpgd "Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 4) (set 5)"
+ C|sc4dndpgd "Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 4) (TPGB571, set 2)"
+ c|sc4dndpge "Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 4) (set 6)"
+ C|sc4dndpge "Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 4) (TPGB572, set 2)"
+ C|sc4dndra "Deal Or No Deal Red Alert (Bellfruit) (Scorpion 4) (REDT471, set 1)"
+ c|sc4dndra "Deal Or No Deal Red Alert (Bellfruit) (Scorpion 4) (set 1)"
+ C|sc4dndraa "Deal Or No Deal Red Alert (Bellfruit) (Scorpion 4) (REDT471, set 2)"
+ c|sc4dndraa "Deal Or No Deal Red Alert (Bellfruit) (Scorpion 4) (set 2)"
+ C|sc4dndrab "Deal Or No Deal Red Alert (Bellfruit) (Scorpion 4) (REDT474, set 1)"
+ c|sc4dndrab "Deal Or No Deal Red Alert (Bellfruit) (Scorpion 4) (set 3)"
+ C|sc4dndrac "Deal Or No Deal Red Alert (Bellfruit) (Scorpion 4) (REDT572, set 1)"
+ c|sc4dndrac "Deal Or No Deal Red Alert (Bellfruit) (Scorpion 4) (set 4)"
+ C|sc4dndrad "Deal Or No Deal Red Alert (Bellfruit) (Scorpion 4) (REDT474, set 2)"
+ c|sc4dndrad "Deal Or No Deal Red Alert (Bellfruit) (Scorpion 4) (set 5)"
+ C|sc4dndrae "Deal Or No Deal Red Alert (Bellfruit) (Scorpion 4) (REDT572, set 2)"
+ c|sc4dndrae "Deal Or No Deal Red Alert (Bellfruit) (Scorpion 4) (set 6)"
+ c|sc4dndtp "Deal Or No Deal The Power (Bellfruit) (Scorpion 4) (set 1)"
+ C|sc4dndtp "Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV411, set 1)"
+ c|sc4dndtpa "Deal Or No Deal The Power (Bellfruit) (Scorpion 4) (set 2)"
+ C|sc4dndtpa "Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV412, set 1)"
+ c|sc4dndtpb "Deal Or No Deal The Power (Bellfruit) (Scorpion 4) (set 3)"
+ C|sc4dndtpb "Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV413, set 1)"
+ c|sc4dndtpc "Deal Or No Deal The Power (Bellfruit) (Scorpion 4) (set 4)"
+ C|sc4dndtpc "Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV414, set 1, bad)"
+ c|sc4dndtpd "Deal Or No Deal The Power (Bellfruit) (Scorpion 4) (set 5)"
+ C|sc4dndtpd "Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV415, set 1)"
+ c|sc4dndtpe "Deal Or No Deal The Power (Bellfruit) (Scorpion 4) (set 6)"
+ C|sc4dndtpe "Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV411, set 2)"
+ c|sc4dndtpf "Deal Or No Deal The Power (Bellfruit) (Scorpion 4) (set 7)"
+ C|sc4dndtpf "Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV412, set 2)"
+ c|sc4dndtpg "Deal Or No Deal The Power (Bellfruit) (Scorpion 4) (set 8)"
+ C|sc4dndtpg "Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV413, set 2)"
+ c|sc4dndtph "Deal Or No Deal The Power (Bellfruit) (Scorpion 4) (set 9)"
+ C|sc4dndtph "Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV414, set 2, bad)"
+ c|sc4dndtpi "Deal Or No Deal The Power (Bellfruit) (Scorpion 4) (set 10)"
+ C|sc4dndtpi "Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV415, set 2)"
+ c|sc4dndtpj "Deal Or No Deal The Power (Bellfruit) (Scorpion 4) (set 11)"
+ C|sc4dndtpj "Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV41A, set 1)"
+ c|sc4dndtpk "Deal Or No Deal The Power (Bellfruit) (Scorpion 4) (set 12)"
+ C|sc4dndtpk "Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV41A, set 2)"
+ c|sc4dndtpl "Deal Or No Deal The Power (Bellfruit) (Scorpion 4) (set 13)"
+ C|sc4dndtpl "Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV416, set 1)"
+ c|sc4dndtpm "Deal Or No Deal The Power (Bellfruit) (Scorpion 4) (set 14)"
+ C|sc4dndtpm "Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV416, set 2)"
+ c|sc4dndtr "Deal Or No Deal Think Red (Bellfruit) (Scorpion 4) (set 1)"
+ C|sc4dndtr "Deal Or No Deal Think Red (Bellfruit) (Scorpion 4) (THRE571, set 1)"
+ c|sc4dndtra "Deal Or No Deal Think Red (Bellfruit) (Scorpion 4) (set 2)"
+ C|sc4dndtra "Deal Or No Deal Think Red (Bellfruit) (Scorpion 4) (THRE571, set 2)"
+ c|sc4dndwb "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (set 1)"
+ C|sc4dndwb "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (WIYX412, set 1)"
+ c|sc4dndwba "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (set 2)"
+ C|sc4dndwba "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (WIYX414, set 1)"
+ c|sc4dndwbb "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (set 3)"
+ C|sc4dndwbb "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (WIYX412, set 2)"
+ c|sc4dndwbc "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (set 4)"
+ C|sc4dndwbc "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (WIYX414, set 2)"
+ c|sc4dndwbd "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (set 5)"
+ C|sc4dndwbd "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (WIYX415, set 1)"
+ c|sc4dndwbe "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (set 6)"
+ C|sc4dndwbe "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (WIYX415, set 2)"
+ c|sc4dndwbf "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (set 7)"
+ C|sc4dndwbf "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (WIYX419, set 1)"
+ c|sc4dndwbg "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (set 8)"
+ C|sc4dndwbg "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (WIYX419, set 2)"
+ c|sc4dndww "Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 4) (set 1)"
+ C|sc4dndww "Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 4) (TWOH411, set 1)"
+ c|sc4dndwwa "Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 4) (set 2)"
+ C|sc4dndwwa "Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 4) (TWOH412, set 1)"
+ c|sc4dndwwb "Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 4) (set 3)"
+ C|sc4dndwwb "Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 4) (TWOH411, set 2)"
+ c|sc4dndwwc "Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 4) (set 4)"
+ C|sc4dndwwc "Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 4) (TWOH415, set 1)"
+ c|sc4dndwwd "Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 4) (set 5)"
+ C|sc4dndwwd "Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 4) (TWOH415, set 2)"
+ c|sc4dndwwe "Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 4) (set 6)"
+ C|sc4dndwwe "Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 4) (TWOH412, set 2)"
+ C|sc4dndys "Deal Or No Deal It's Your Show (Bellfruit) (Scorpion 4) (DOBO571, set 1)"
+ c|sc4dndys "Deal Or No Deal It's Your Show (Bellfruit) (Scorpion 4) (set 1)"
+ C|sc4dndysa "Deal Or No Deal It's Your Show (Bellfruit) (Scorpion 4) (DOBO474, set 1)"
+ c|sc4dndysa "Deal Or No Deal It's Your Show (Bellfruit) (Scorpion 4) (set 2)"
+ C|sc4dndysb "Deal Or No Deal It's Your Show (Bellfruit) (Scorpion 4) (DOBO571, set 2)"
+ c|sc4dndysb "Deal Or No Deal It's Your Show (Bellfruit) (Scorpion 4) (set 3)"
+ C|sc4dndysc "Deal Or No Deal It's Your Show (Bellfruit) (Scorpion 4) (DOBO474, set 2)"
+ C|sc4ggame "Golden Game (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 25GBP, set 1)"
+ c|sc4ggame "Golden Game (Mazooma) (Scorpion 4) (set 1)"
+ C|sc4ggame0 "Golden Game (Mazooma) (PR2056) (Scorpion 4) (set 2)"
+ c|sc4ggame0 "Golden Game (Mazooma) (Scorpion 4) (set 28)"
+ C|sc4ggame1 "Golden Game (Mazooma) (PR2056, newer?) (Scorpion 4) (set 7)"
+ c|sc4ggame1 "Golden Game (Mazooma) (Scorpion 4) (set 29)"
+ C|sc4ggame2 "Golden Game (Mazooma) (PR2056, newer?) (Scorpion 4) (set 8)"
+ c|sc4ggame2 "Golden Game (Mazooma) (Scorpion 4) (set 30)"
+ C|sc4ggame3 "Golden Game (Mazooma) (PR2056) (Scorpion 4) (GLDX, 30GBP, set 6)"
+ c|sc4ggame3 "Golden Game (Mazooma) (Scorpion 4) (set 31)"
+ C|sc4ggame4 "Golden Game (Mazooma) (PR2056) (Scorpion 4) (GLDX, 30GBP, set 7)"
+ c|sc4ggame4 "Golden Game (Mazooma) (Scorpion 4) (set 32)"
+ C|sc4ggame5 "Golden Game (Mazooma) (PR2056) (Scorpion 4) (GLDX, 30GBP, set 8)"
+ c|sc4ggame5 "Golden Game (Mazooma) (Scorpion 4) (set 33)"
+ C|sc4ggame6 "Golden Game (Mazooma) (PR2056) (Scorpion 4) (GLDX, 30GBP, set 9)"
+ c|sc4ggame6 "Golden Game (Mazooma) (Scorpion 4) (set 34)"
+ C|sc4ggame7 "Golden Game (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 35GBP, set 1)"
+ c|sc4ggame7 "Golden Game (Mazooma) (Scorpion 4) (set 35)"
+ C|sc4ggame8 "Golden Game (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 35GBP, set 2)"
+ c|sc4ggame8 "Golden Game (Mazooma) (Scorpion 4) (set 36)"
+ C|sc4ggame9 "Golden Game (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 35GBP, set 3)"
+ c|sc4ggame9 "Golden Game (Mazooma) (Scorpion 4) (set 37)"
+ C|sc4ggamea "Golden Game (Mazooma) (PR2056) (Scorpion 4) (GLDX, 25GBP, set 1)"
+ c|sc4ggamea "Golden Game (Mazooma) (Scorpion 4) (set 2)"
+ C|sc4ggameaa "Golden Game (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 35GBP, set 4)"
+ c|sc4ggameaa "Golden Game (Mazooma) (Scorpion 4) (set 38)"
+ C|sc4ggameab "Golden Game (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 35GBP, set 5)"
+ c|sc4ggameab "Golden Game (Mazooma) (Scorpion 4) (set 39)"
+ C|sc4ggameac "Golden Game (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 35GBP, set 6)"
+ c|sc4ggameac "Golden Game (Mazooma) (Scorpion 4) (set 40)"
+ C|sc4ggamead "Golden Game (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 35GBP, set 7)"
+ c|sc4ggamead "Golden Game (Mazooma) (Scorpion 4) (set 41)"
+ C|sc4ggameae "Golden Game (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 35GBP, set 8)"
+ c|sc4ggameae "Golden Game (Mazooma) (Scorpion 4) (set 42)"
+ C|sc4ggameb "Golden Game (Mazooma) (PR2056) (Scorpion 4) (GLDX, 25GBP, set 2)"
+ c|sc4ggameb "Golden Game (Mazooma) (Scorpion 4) (set 3)"
+ C|sc4ggamec "Golden Game (Mazooma) (PR2056) (Scorpion 4) (GLDX, 25GBP, set 3)"
+ c|sc4ggamec "Golden Game (Mazooma) (Scorpion 4) (set 4)"
+ C|sc4ggamed "Golden Game (Mazooma) (PR2056) (Scorpion 4) (GLDX, 25GBP, set 4)"
+ c|sc4ggamed "Golden Game (Mazooma) (Scorpion 4) (set 5)"
+ c|sc4ggamee "Golden Game (Mazooma) (Scorpion 4) (set 6)"
+ C|sc4ggamef "Golden Game (Mazooma) (PR2056) (Scorpion 4) (GLDX, 30GBP, set 1)"
+ c|sc4ggamef "Golden Game (Mazooma) (Scorpion 4) (set 7)"
+ C|sc4ggameg "Golden Game (Mazooma) (PR2056) (Scorpion 4) (GLDX, 30GBP, set 2)"
+ c|sc4ggameg "Golden Game (Mazooma) (Scorpion 4) (set 8)"
+ c|sc4ggameh "Golden Game (Mazooma) (Scorpion 4) (set 9)"
+ C|sc4ggamei "Golden Game (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 25GBP, set 2)"
+ c|sc4ggamei "Golden Game (Mazooma) (Scorpion 4) (set 10)"
+ C|sc4ggamej "Golden Game (Mazooma) (PR2056) (Scorpion 4) (GLDX, 30GBP, set 3)"
+ c|sc4ggamej "Golden Game (Mazooma) (Scorpion 4) (set 11)"
+ C|sc4ggamek "Golden Game (Mazooma) (PR2056) (Scorpion 4) (GLDX, 30GBP, set 4)"
+ c|sc4ggamek "Golden Game (Mazooma) (Scorpion 4) (set 12)"
+ C|sc4ggamel "Golden Game (Mazooma) (PR2056, newer?) (Scorpion 4) (set 1)"
+ c|sc4ggamel "Golden Game (Mazooma) (Scorpion 4) (set 13)"
+ C|sc4ggamem "Golden Game (Mazooma) (PR2056, newer?) (Scorpion 4) (set 2)"
+ c|sc4ggamem "Golden Game (Mazooma) (Scorpion 4) (set 14)"
+ C|sc4ggamen "Golden Game (Mazooma) (PR2056) (Scorpion 4) (set 1)"
+ c|sc4ggamen "Golden Game (Mazooma) (Scorpion 4) (set 15)"
+ c|sc4ggameo "Golden Game (Mazooma) (Scorpion 4) (set 16)"
+ C|sc4ggamep "Golden Game (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 25GBP, set 3)"
+ c|sc4ggamep "Golden Game (Mazooma) (Scorpion 4) (set 17)"
+ C|sc4ggameq "Golden Game (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 25GBP, set 4)"
+ c|sc4ggameq "Golden Game (Mazooma) (Scorpion 4) (set 18)"
+ C|sc4ggamer "Golden Game (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 25GBP, set 5)"
+ c|sc4ggamer "Golden Game (Mazooma) (Scorpion 4) (set 19)"
+ C|sc4ggames "Golden Game (Mazooma) (PR2056) (Scorpion 4) (GLDX, 25GBP, set 5)"
+ c|sc4ggames "Golden Game (Mazooma) (Scorpion 4) (set 20)"
+ C|sc4ggamet "Golden Game (Mazooma) (PR2056) (Scorpion 4) (GLDX, 25GBP, set 6)"
+ c|sc4ggamet "Golden Game (Mazooma) (Scorpion 4) (set 21)"
+ C|sc4ggameu "Golden Game (Mazooma) (PR2056) (Scorpion 4) (GLDX, 25GBP, set 7)"
+ c|sc4ggameu "Golden Game (Mazooma) (Scorpion 4) (set 22)"
+ C|sc4ggamev "Golden Game (Mazooma) (PR2056) (Scorpion 4) (GLDX, 30GBP, set 5)"
+ c|sc4ggamev "Golden Game (Mazooma) (Scorpion 4) (set 23)"
+ C|sc4ggamew "Golden Game (Mazooma) (PR2056, newer?) (Scorpion 4) (set 3)"
+ c|sc4ggamew "Golden Game (Mazooma) (Scorpion 4) (set 24)"
+ C|sc4ggamex "Golden Game (Mazooma) (PR2056, newer?) (Scorpion 4) (set 4)"
+ c|sc4ggamex "Golden Game (Mazooma) (Scorpion 4) (set 25)"
+ C|sc4ggamey "Golden Game (Mazooma) (PR2056, newer?) (Scorpion 4) (set 5)"
+ c|sc4ggamey "Golden Game (Mazooma) (Scorpion 4) (set 26)"
+ C|sc4ggamez "Golden Game (Mazooma) (PR2056, newer?) (Scorpion 4) (set 6)"
+ c|sc4ggamez "Golden Game (Mazooma) (Scorpion 4) (set 27)"
+ C|sc4ggdlx "Golden Game Deluxe (Mazooma) (PR2201) (Scorpion 4) (set 1)"
+ c|sc4ggdlx "Golden Game Deluxe (Mazooma) (Scorpion 4) (set 1)"
+ C|sc4ggdlxa "Golden Game Deluxe (Mazooma) (PR2201) (Scorpion 4) (set 2)"
+ c|sc4ggdlxa "Golden Game Deluxe (Mazooma) (Scorpion 4) (set 2)"
+ C|sc4ggdlxb "Golden Game Deluxe (Mazooma) (PR2201) (Scorpion 4) (set 3)"
+ c|sc4ggdlxb "Golden Game Deluxe (Mazooma) (Scorpion 4) (set 3)"
+ C|sc4ggdlxc "Golden Game Deluxe (Mazooma) (PR2201) (Scorpion 4) (set 4)"
+ c|sc4ggdlxc "Golden Game Deluxe (Mazooma) (Scorpion 4) (set 4)"
+ C|sc4ggdlxd "Golden Game Deluxe (Mazooma) (PR2201) (Scorpion 4) (set 5)"
+ c|sc4ggdlxd "Golden Game Deluxe (Mazooma) (Scorpion 4) (set 5)"
+ C|sc4ggdlxe "Golden Game Deluxe (Mazooma) (PR2201) (Scorpion 4) (set 6)"
+ c|sc4ggdlxe "Golden Game Deluxe (Mazooma) (Scorpion 4) (set 6)"
+ C|sc4ggdlxf "Golden Game Deluxe (Mazooma) (PR2201) (Scorpion 4) (set 7)"
+ c|sc4ggdlxf "Golden Game Deluxe (Mazooma) (Scorpion 4) (set 7)"
+ C|sc4ggdlxg "Golden Game Deluxe (Mazooma) (PR2201) (Scorpion 4) (set 8)"
+ c|sc4ggdlxg "Golden Game Deluxe (Mazooma) (Scorpion 4) (set 8)"
+ C|sc4ggg "Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 1)"
+ c|sc4ggg "Grand Golden Game (Mazooma) (Scorpion 4) (set 1)"
+ c|sc4ggga "Grand Golden Game (Mazooma) (Scorpion 4) (set 2)"
+ C|sc4gggb "Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 2)"
+ c|sc4gggb "Grand Golden Game (Mazooma) (Scorpion 4) (set 3)"
+ C|sc4gggc "Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 3)"
+ c|sc4gggc "Grand Golden Game (Mazooma) (Scorpion 4) (set 4)"
+ C|sc4gggd "Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 4)"
+ c|sc4gggd "Grand Golden Game (Mazooma) (Scorpion 4) (set 5)"
+ C|sc4ggge "Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 5)"
+ c|sc4ggge "Grand Golden Game (Mazooma) (Scorpion 4) (set 6)"
+ C|sc4gggf "Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 6)"
+ c|sc4gggf "Grand Golden Game (Mazooma) (Scorpion 4) (set 7)"
+ C|sc4gggg "Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 13)"
+ c|sc4gggg "Grand Golden Game (Mazooma) (Scorpion 4) (set 8)"
+ C|sc4gggh "Grand Golden Game (Mazooma) (PR2353) (Scorpion 4) (GGGB, 35GBP, set 1)"
+ c|sc4gggh "Grand Golden Game (Mazooma) (Scorpion 4) (set 9)"
+ C|sc4gggi "Grand Golden Game (Mazooma) (PR2353) (Scorpion 4) (GGGB, 35GBP, set 2)"
+ c|sc4gggi "Grand Golden Game (Mazooma) (Scorpion 4) (set 10)"
+ c|sc4gggj "Grand Golden Game (Mazooma) (Scorpion 4) (set 11)"
+ C|sc4gggk "Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 7)"
+ c|sc4gggk "Grand Golden Game (Mazooma) (Scorpion 4) (set 12)"
+ C|sc4gggl "Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 8)"
+ c|sc4gggl "Grand Golden Game (Mazooma) (Scorpion 4) (set 13)"
+ C|sc4gggm "Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 9)"
+ c|sc4gggm "Grand Golden Game (Mazooma) (Scorpion 4) (set 14)"
+ C|sc4gggn "Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 10)"
+ c|sc4gggn "Grand Golden Game (Mazooma) (Scorpion 4) (set 15)"
+ C|sc4gggo "Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 11)"
+ c|sc4gggo "Grand Golden Game (Mazooma) (Scorpion 4) (set 16)"
+ C|sc4gggp "Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 12)"
+ c|sc4gggp "Grand Golden Game (Mazooma) (Scorpion 4) (set 17)"
+ C|sc4gggq "Grand Golden Game (Mazooma) (PR2353) (Scorpion 4) (GGGB, 35GBP, set 3)"
+ c|sc4gggq "Grand Golden Game (Mazooma) (Scorpion 4) (set 18)"
+ C|sc4gggr "Grand Golden Game (Mazooma) (PR2353) (Scorpion 4) (GGGB, 35GBP, set 4)"
+ c|sc4gggr "Grand Golden Game (Mazooma) (Scorpion 4) (set 19)"
+ C|sc4gggs "Grand Golden Game (Mazooma) (PR2353) (Scorpion 4) (GGGB, 35GBP, set 5)"
+ c|sc4gggs "Grand Golden Game (Mazooma) (Scorpion 4) (set 20)"
+ C|sc4gggtb "Grand Golden Game (Mazooma) (PR2056, Top Box) (Scorpion 4) (GGGT, set 1)"
+ C|sc4gggtba "Grand Golden Game (Mazooma) (PR2056, Top Box) (Scorpion 4) (GGGT, set 2)"
+ C|sc4mowow "Monopoly Wheel Of Wealth (Mazooma) (PR2118) (Scorpion 4) (set 1)"
+ c|sc4mowow "Monopoly Wheel Of Wealth (Mazooma) (Scorpion 4) (set 1)"
+ C|sc4mowowa "Monopoly Wheel Of Wealth (Mazooma) (PR2118) (Scorpion 4) (set 2)"
+ c|sc4mowowa "Monopoly Wheel Of Wealth (Mazooma) (Scorpion 4) (set 2)"
+ C|sc4mowowb "Monopoly Wheel Of Wealth (Mazooma) (PR2118) (Scorpion 4) (set 3)"
+ c|sc4mowowb "Monopoly Wheel Of Wealth (Mazooma) (Scorpion 4) (set 3)"
+ C|sc4mowowc "Monopoly Wheel Of Wealth (Mazooma) (PR2118) (Scorpion 4) (set 4)"
+ c|sc4mowowc "Monopoly Wheel Of Wealth (Mazooma) (Scorpion 4) (set 4)"
+ c|sc4mowowd "Monopoly Wheel Of Wealth (Mazooma) (Scorpion 4) (set 5)"
+ c|sc4mowowe "Monopoly Wheel Of Wealth (Mazooma) (Scorpion 4) (set 6)"
+ c|sc4mowowf "Monopoly Wheel Of Wealth (Mazooma) (Scorpion 4) (set 7)"
+ c|sc4mowowg "Monopoly Wheel Of Wealth (Mazooma) (Scorpion 4) (set 8)"
+ c|sc4mowowh "Monopoly Wheel Of Wealth (Mazooma) (Scorpion 4) (set 9)"
+ c|sc4mowowi "Monopoly Wheel Of Wealth (Mazooma) (Scorpion 4) (set 10)"
+ c|sc4mowowj "Monopoly Wheel Of Wealth (Mazooma) (Scorpion 4) (set 11)"
+ C|sc4qmodo "Quazzi Mo' Dough (Qps) (Scorpion 4) (set 1)"
+ c|sc4qmodo "Quazzi Mo Dough (Qps) (Scorpion 4) (set 1)"
+ C|sc4qmodoa "Quazzi Mo' Dough (Qps) (Scorpion 4) (set 2)"
+ c|sc4qmodoa "Quazzi Mo Dough (Qps) (Scorpion 4) (set 2)"
+ C|sc4qmodob "Quazzi Mo' Dough (Qps) (Scorpion 4) (set 3)"
+ c|sc4qmodob "Quazzi Mo Dough (Qps) (Scorpion 4) (set 3)"
+ C|sc4qmodoc "Quazzi Mo' Dough (Qps) (Scorpion 4) (set 4)"
+ c|sc4qmodoc "Quazzi Mo Dough (Qps) (Scorpion 4) (set 4)"
+ C|sc4qmodod "Quazzi Mo' Dough (Qps) (Scorpion 4) (set 5)"
+ c|sc4qmodod "Quazzi Mo Dough (Qps) (Scorpion 4) (set 5)"
+ c|sc4srrmz "Shake Rattle Roll (Mazooma) (Scorpion 4) (set 1)"
+ C|sc4srrmz "Shake Rattle Roll (Mazooma) (Scorpion 4) (set 1, Top Box)"
+ C|sc4tbox "Gold X Triple Top Box (Mazooma) (Scorpion 4)"
+ c|sc4tbox "Top Box (Mazooma) (Scorpion 4)"
+ c|sc5potog "Pot Of Gold (Bellfruit) (Scorpion 5) (set 1)"
+ C|sc5potog "Pot Of Gold (QPS) (Scorpion 5) (set 1)"
+ c|sc5potoga "Pot Of Gold (Bellfruit) (Scorpion 5) (set 2)"
+ C|sc5potoga "Pot Of Gold (QPS) (Scorpion 5) (set 2)"
+ c|sc5potogb "Pot Of Gold (Bellfruit) (Scorpion 5) (set 3)"
+ C|sc5potogb "Pot Of Gold (QPS) (Scorpion 5) (set 3)"
+ c|sc5potogc "Pot Of Gold (Bellfruit) (Scorpion 5) (set 4)"
+ C|sc5potogc "Pot Of Gold (QPS) (Scorpion 5) (set 4)"
+ c|sc5potogd "Pot Of Gold (Bellfruit) (Scorpion 5) (set 5)"
+ C|sc5potogd "Pot Of Gold (QPS) (Scorpion 5) (set 5)"
+ c|sc5potoge "Pot Of Gold (Bellfruit) (Scorpion 5) (set 6)"
+ C|sc5potoge "Pot Of Gold (QPS) (Scorpion 5) (set 6)"
+ c|sc5potogf "Pot Of Gold (Bellfruit) (Scorpion 5) (set 7)"
+ C|sc5potogf "Pot Of Gold (QPS) (Scorpion 5) (set 7)"
+ c|sc5potogg "Pot Of Gold (Bellfruit) (Scorpion 5) (set 8)"
+ C|sc5potogg "Pot Of Gold (QPS) (Scorpion 5) (set 8)"
+ C|schamp "Sonic Championship (USA)"
+ c|schamp "Sonic Championship"
+ c|sf2cej "Street Fighter II': Champion Edition (Japan 920513)"
+ C|sf2ceja "Street Fighter II': Champion Edition (Japan 920322)"
+ C|sf2cejb "Street Fighter II': Champion Edition (Japan 920513)"
+ C|sf2cejc "Street Fighter II': Champion Edition (Japan 920803)"
+ C|sf2ug "Street Fighter II: The World Warrior (USA 910522, Rev. G)"
+ c|sf2ui "Street Fighter II: The World Warrior (USA 910522)"
+ C|sf2ui "Street Fighter II: The World Warrior (USA 910522, Rev. I)"
+ C|sfight "Sonic the Fighters (Japan)"
+ c|sfight "Sonic The Fighters"
+ c|sfight2 "Street Fighter 2"
+ C|sfight2 "Street Fighter II"
+ c|sfight2a "Street Fighter 2 (rev.1)"
+ C|sfight2a "Street Fighter II (rev.1)"
+ c|sfight2b "Street Fighter 2 (rev.2)"
+ C|sfight2b "Street Fighter II (rev.2)"
+ C|slqz2 "Mahjong Shuang Long Qiang Zhu 2 (VS203J)"
+ c|slqz2 "Mahjong Shuang Long Qiang Zhu 2"
+ c|spacefb "Space Firebird (Nintendo, set 1)"
+ C|spacefb "Space Firebird (rev. 04-u)"
+ C|spacefba "Space Firebird (rev. 02-a)"
+ c|spacefbe "Space Firebird (Nintendo, set 3)"
+ C|spacefbe "Space Firebird (rev. 03-e set 1)"
+ C|spacefbe2 "Space Firebird (rev. 03-e set 2)"
+ c|sshooter "Sharpshooter (Rev 1.7)"
+ C|sshooter "Sharpshooter (Rev 1.9)"
+ c|starforce "Star Force (encrypted)"
+ C|starforce "Star Force (encrypted, set 1)"
+ C|svg "S.V.G. - Spectral vs Generation (M68k label V200) (ARM label V200, ROM 10/11/05 S.V.G V201)"
+ c|svg "S.V.G. - Spectral vs Generation (ver. 200)"
+ C|svgpcb "S.V.G. - Spectral vs Generation (M68k label V100JP) (ARM label V100JP ROM 05/12/05 S.V.G V100) (JAMMA PCB)"
+ C|theglad "The Gladiator - Road of the Sword / Shen Jian (M68k label V100) (ARM label V100, ROM 01/16/03 SHEN JIAN)"
+ c|theglad "The Gladiator (ver. 100)"
+ C|theglada "The Gladiator - Road of the Sword / Shen Jian (M68k label V101) (ARM label V107, ROM 06/06/03 SHEN JIAN V107)"
+ c|theglada "The Gladiator (ver. 101)"
+ C|thegladpcb "The Gladiator - Road of the Sword / Shen Jian (M68k label V100) (ARM label V100, ROM 02/25/03 SHEN JIAN) (JAMMA PCB)"
+ C|tiptop "Tip Top (3 board stack)"
+ c|tiptop "Tip Top"
+ C|toukon4 "Shin Nihon Pro Wrestling Toukon Retsuden 4 Arcade Edition (TRF1 Ver. A)"
+ c|toukon4 "Shin Nihon Pro Wrestling Toukon Retsuden 4 Arcade Edition"
+ C|tsamurai "Samurai Nihon-Ichi (set 1)"
+ c|tsamurai "Samurai Nihon-ichi (set 1)"
+ C|tsamurai2 "Samurai Nihon-Ichi (set 2)"
+ c|tsamurai2 "Samurai Nihon-ichi (set 2)"
+ C|tsamuraih "Samurai Nihon-Ichi (bootleg, harder)"
+ c|tsamuraih "Samurai Nihon-ichi (bootleg, harder)"
+ C|unkhorse "unknown Japanese horse gambling game"
+ c|unkmeyco "unknown Meyco game"
+ C|vhunt2d "Vampire Hunter 2: Darkstalkers Revenge (Japan 970913 Phoenix Edition) (bootleg)"
+ c|vhunt2d "Vampire Hunter 2: Darkstalkers Revenge (Japan 970929 Phoenix Edition) (bootleg)"
+ C|von "Cyber Troopers Virtual-On (USA, Revision B)"
+ c|von "Virtual On Cyber Troopers (US, Revision B)"
+ C|vonj "Cyber Troopers Virtual-On (Japan, Revision B)"
+ c|vonj "Virtual On Cyber Troopers (Japan, Revision B)"
+ c|warzarda "Warzard (Japan 961023)"
+ C|warzardr1 "Warzard (Japan 961023)"
+ C|wfortune "Wheel Of Fortune (set 1)"
+ c|wfortune "Wheel Of Fortune"
+ c|wfortunea "Wheel Of Fortune (alternate)"
+ C|wfortunea "Wheel Of Fortune (set 2)"
+ c|winrun "Winning Run Suzuka Grand Prix (Japan)"
+ C|winrun "Winning Run"
+ C|wldarrow "Wild Arrow (color, Standard V4.8)"
+ c|wldarrow "Wild Arrow (Standard V4.8)"
+ C|wldkicks "World Kicks (WK1 Ver. A)"
+ c|wldkicks "World Kicks"
+ c|wldwitch "Wild Witch (Export, 6T/12T ver 1.74A)"
+ C|wldwitch "Wild Witch (Export, 6T/12T ver 1.84A)"
+ C|wldwitcha "Wild Witch (Export, 6T/12T ver 1.57-SP)"
+ C|wldwitchb "Wild Witch (Export, 6T/12T ver 1.57-TE)"
+ C|wldwitchc "Wild Witch (Export, 6T/12T ver 1.62A)"
+ C|wldwitchd "Wild Witch (Export, 6T/12T ver 1.62B)"
+ C|wldwitche "Wild Witch (Export, 6T/12T ver 1.62A-F)"
+ C|wldwitchf "Wild Witch (Export, 6T/12T ver 1.62A alt)"
+ C|wldwitchg "Wild Witch (Export, 6T/12T ver 1.62B alt)"
+ C|wldwitchh "Wild Witch (Export, 6T/12T ver 1.65A)"
+ C|wldwitchi "Wild Witch (Export, 6T/12T ver 1.65A-S)"
+ C|wldwitchj "Wild Witch (Export, 6T/12T ver 1.65A-S alt)"
+ C|wldwitchk "Wild Witch (Export, 6T/12T ver 1.65A-N)"
+ C|wldwitchl "Wild Witch (Export, 6T/12T ver 1.70A beta)"
+ C|wldwitchm "Wild Witch (Export, 6T/12T ver 1.70A)"
+ C|wldwitchn "Wild Witch (Export, 6T/12T ver 1.70A alt)"
+ C|wldwitcho "Wild Witch (Export, 6T/12T ver 1.74A-SP-BELG)"
+ C|wldwitchp "Wild Witch (Export, 6T/12T ver 1.74A)"
+ C|wldwitchq "Wild Witch (Export, 6T/12T ver 1.74A alt)"
+ C|wldwitchr "Wild Witch (Export, 6B/12B ver 1.75A-E English)"
+ C|wldwitchs "Wild Witch (Export, 6T/12T ver 1.76A)"
+ C|wldwitcht "Wild Witch (Export, 6T/12T ver 1.77A)"
+ C|wldwitchu "Wild Witch (Export, 6T/12T ver 1.79A)"
+ C|wldwitchv "Wild Witch (Export, 6T/12T ver 1.83A)"
+ C|wyvernwg "Wyvern Wings (set 1)"
+ c|wyvernwg "Wyvern Wings"
+ C|wyvernwga "Wyvern Wings (set 2)"
+ c|yumefuda "(Medal) Yumefuda [BET]"
+ C|yumefuda "Yumefuda [BET]"
diff --git a/docs/release/src/osd/winui/help/html/mameui_credits.htm b/docs/release/src/osd/winui/help/html/mameui_credits.htm
new file mode 100644
index 00000000000..3dbe2393f22
--- /dev/null
+++ b/docs/release/src/osd/winui/help/html/mameui_credits.htm
@@ -0,0 +1,141 @@
+<html>
+
+<head>
+<meta name="GENERATOR" content="Microsoft FrontPage 12.0">
+<meta name="ProgId" content="FrontPage.Editor.Document">
+<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
+<title>MameUI Credits</title>
+<style>
+<!--
+p
+ {margin-right:0in;
+ margin-left:0in;
+ font-size:10.0pt;
+ font-family:Arial;
+ color:black}
+h1
+ {margin-top:12.0pt;
+ margin-right:0in;
+ margin-bottom:3.0pt;
+ margin-left:0in;
+ page-break-after:avoid;
+ font-size:16.0pt;
+ font-family:Arial;
+ color:windowtext;
+ font-weight:bold}
+h2
+ {margin-top:12.0pt;
+ margin-right:0in;
+ margin-bottom:3.0pt;
+ margin-left:0in;
+ page-break-after:avoid;
+ font-size:14.0pt;
+ font-family:Arial;
+ font-style:italic}
+ p.MsoNormal
+ {mso-style-parent:"";
+ margin-bottom:.0001pt;
+ font-size:10.0pt;
+ font-family:Arial;
+ margin-left:0in; margin-right:0in; margin-top:0in}
+ div.MsoNormal
+ {mso-style-parent:"";
+ margin-bottom:.0001pt;
+ font-size:10.0pt;
+ font-family:Arial;
+ margin-left:0in; margin-right:0in; margin-top:0in}
+-->
+</style>
+<base target="_blank">
+</head>
+
+<body background="../images/bkground.gif">
+
+<h1>MameUI Credits &amp; Resources</h1>
+<h2><b>Credits</b></h2>
+<p class="MsoNormal">The current MameUI DEV team:</p>
+<p class="MsoNormal">&nbsp;</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>Chris Kirmse</b></p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>Mike Haaland</b></p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>René Single</b></p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>
+<a href="http://mameui.info/">John L. Hardy IV</a></b></p>
+<p class="MsoNormal" style="margin-left:.75in">&nbsp;</p>
+<p class="MsoNormal">Special thanks to Michael Soderstrom for project
+co-ordination and source maintenance from 1997-2001.</p>
+<p class="MsoNormal">&nbsp;</p>
+<p class="MsoNormal">Additional appreciated code contributions by : Jeff
+Miller, Dan Miller, Andrew Kirmse, Mohammad Rezaei, <font face="Arial" size="2">
+René Single, </font>John Zissopoulos, Nathan
+Woods, Robert Schlabbach, Sword, Emuman, BUT, <font face="Arial" size="2">'Mamesick', </font>
+Sauro Puccini,<b> </b><font face="Arial" size="2">Tor
+Arne Vestbø, </font>R. J. Sheppard, Visk, K&amp;K,
+Patrick Jones, and ‘Ren Höek’.</p>
+<p class="MsoNormal">&nbsp;</p>
+<h2><b>Resources</b></h2>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>
+<a target="_blank" href="http://mameui.info/">The
+MameUI Homepage</a> </b>:<b> </b>Home to the MameUI binary/source,
+icons, screenshots, testing, work in progress updates, bug
+reporting/tracking, message board, and benchmarking.</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>
+<a target="_blank" href="http://www.mameworld.info/ubbthreads/postlist.php?Cat=&amp;Board=mameui">The
+MameUI
+Message Board</a> </b>:<b> </b>Forum for discussion of MameUI related issues.</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>
+<a target="_blank" href="http://mameui.info//MameUI_Bugs.xls">MameUI
+Defect Tracking and Bug Reports</a> </b>: Excel spreadsheet which displays
+information about current MameUI feature requests and issues.&nbsp; Check before
+reporting potential bugs.</p>
+<p class="MsoNormal"><b>&nbsp;</b></p>
+<div class="MsoNormal" align="center" style="text-align:center">
+ <span style="font-family: Courier New">
+ <hr size="2" width="100%" align="center"></span>
+</div>
+<p class="MsoNormal"><b>&nbsp;</b></p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b><a href="http://www.mamedev.org">MameDEV.org</a> </b>:<b> </b>Home of
+baseline MAME.</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>
+<a target="_blank" href="http://www.mametesters.org">MameTesters.org</a> </b>:<b> </b>
+Reporting and tracking baseline Mamebugs.</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">&nbsp;</p>
+<p class="MsoNormal" style="margin-left: 0" align="left">MameUI ©
+2007 C. Kirmse, M. Haaland, &amp; the MameUI team</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">&nbsp;</p>
+<p class="MsoNormal" style="margin-left: 0" align="left">this help
+file authored by john iv</p>
+
+<p class="MsoNormal" style="margin-left: 0" align="left">
+<font size="1">
+<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y-%m-%d %I:%M %p %Z" startspan -->2008-10-28 06:48 PM -0700<!--webbot bot="Timestamp" endspan i-checksum="38520" --></font></p>
+
+</body>
+
+</html> \ No newline at end of file
diff --git a/docs/release/src/osd/winui/help/html/mameui_download.htm b/docs/release/src/osd/winui/help/html/mameui_download.htm
new file mode 100644
index 00000000000..0063701ef36
--- /dev/null
+++ b/docs/release/src/osd/winui/help/html/mameui_download.htm
@@ -0,0 +1,62 @@
+<html>
+
+<head>
+<meta name="GENERATOR" content="Microsoft FrontPage 12.0">
+<meta name="ProgId" content="FrontPage.Editor.Document">
+<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
+<title>MameUI Download Locations</title>
+<style>
+<!--
+p
+ {margin-right:0in;
+ margin-left:0in;
+ font-size:10.0pt;
+ font-family:Arial;
+ color:black}
+h1
+ {margin-top:12.0pt;
+ margin-right:0in;
+ margin-bottom:3.0pt;
+ margin-left:0in;
+ page-break-after:avoid;
+ font-size:16.0pt;
+ font-family:Arial;
+ color:windowtext;
+ font-weight:bold}
+h2
+ {margin-top:12.0pt;
+ margin-right:0in;
+ margin-bottom:3.0pt;
+ margin-left:0in;
+ page-break-after:avoid;
+ font-size:14.0pt;
+ font-family:Arial;
+ font-style:italic}
+ p.MsoNormal
+ {mso-style-parent:"";
+ margin-bottom:.0001pt;
+ font-size:10.0pt;
+ font-family:Arial;
+ margin-left:0in; margin-right:0in; margin-top:0in}
+-->
+</style>
+<base target="_blank">
+</head>
+
+<body background="../images/bkground.gif">
+
+<h2>Download Locations</h2>
+<p class="MsoNormal">The official site for MameUI downloads:</p>
+<p class="MsoNormal">
+<a target="_blank" href="http://mameui.info/">
+<span style="font-weight: 700; color: #0000FF; text-decoration: underline">The
+MameUI Homepage</span></a></p>
+
+<p class="MsoNormal">&nbsp;</p>
+<p class="MsoNormal"><font size="1">
+<!--webbot bot="Timestamp" s-type="EDITED" s-format="%Y-%m-%d %I:%M %p %Z" startspan -->2007-11-12 02:03 PM -0800<!--webbot bot="Timestamp" endspan i-checksum="37667" -->
+/ john iv</font></p>
+
+</body>
+
+</html> \ No newline at end of file
diff --git a/docs/release/src/osd/winui/help/html/mameui_filemenu.htm b/docs/release/src/osd/winui/help/html/mameui_filemenu.htm
new file mode 100644
index 00000000000..12f2915538c
--- /dev/null
+++ b/docs/release/src/osd/winui/help/html/mameui_filemenu.htm
@@ -0,0 +1,625 @@
+<html xmlns:v="urn:schemas-microsoft-com:vml"
+xmlns:o="urn:schemas-microsoft-com:office:office"
+xmlns:w="urn:schemas-microsoft-com:office:word"
+xmlns:m="http://schemas.microsoft.com/office/2004/12/omml"
+xmlns="http://www.w3.org/TR/REC-html40">
+
+<head>
+<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
+<meta name=ProgId content=Word.Document>
+<meta name=Generator content="Microsoft Word 12">
+<meta name=Originator content="Microsoft Word 12">
+<link rel=File-List href="mameui_filemenu_files/filelist.xml">
+<link rel=Edit-Time-Data href="mameui_filemenu_files/editdata.mso">
+<!--[if !mso]>
+<style>
+v\:* {behavior:url(#default#VML);}
+o\:* {behavior:url(#default#VML);}
+w\:* {behavior:url(#default#VML);}
+.shape {behavior:url(#default#VML);}
+</style>
+<![endif]-->
+<title>MameUI File Menu</title>
+<!--[if gte mso 9]><xml>
+ <o:DocumentProperties>
+ <o:Author>john4</o:Author>
+ <o:LastAuthor>john4</o:LastAuthor>
+ <o:Revision>2</o:Revision>
+ <o:TotalTime>2</o:TotalTime>
+ <o:Created>2008-04-11T22:37:00Z</o:Created>
+ <o:LastSaved>2008-04-11T22:39:00Z</o:LastSaved>
+ <o:Pages>1</o:Pages>
+ <o:Words>438</o:Words>
+ <o:Characters>2503</o:Characters>
+ <o:Lines>20</o:Lines>
+ <o:Paragraphs>5</o:Paragraphs>
+ <o:CharactersWithSpaces>2936</o:CharactersWithSpaces>
+ <o:Version>12.00</o:Version>
+ </o:DocumentProperties>
+</xml><![endif]-->
+<link rel=themeData href="mameui_filemenu_files/themedata.thmx">
+<link rel=colorSchemeMapping href="mameui_filemenu_files/colorschememapping.xml">
+<!--[if gte mso 9]><xml>
+ <w:WordDocument>
+ <w:TrackMoves>false</w:TrackMoves>
+ <w:TrackFormatting/>
+ <w:ValidateAgainstSchemas/>
+ <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
+ <w:IgnoreMixedContent>false</w:IgnoreMixedContent>
+ <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
+ <w:DoNotPromoteQF/>
+ <w:LidThemeOther>EN-US</w:LidThemeOther>
+ <w:LidThemeAsian>X-NONE</w:LidThemeAsian>
+ <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
+ <w:Compatibility>
+ <w:BreakWrappedTables/>
+ <w:SnapToGridInCell/>
+ <w:WrapTextWithPunct/>
+ <w:UseAsianBreakRules/>
+ <w:DontGrowAutofit/>
+ <w:SplitPgBreakAndParaMark/>
+ <w:DontVertAlignCellWithSp/>
+ <w:DontBreakConstrainedForcedTables/>
+ <w:DontVertAlignInTxbx/>
+ <w:Word11KerningPairs/>
+ <w:CachedColBalance/>
+ </w:Compatibility>
+ <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
+ <m:mathPr>
+ <m:mathFont m:val="Cambria Math"/>
+ <m:brkBin m:val="before"/>
+ <m:brkBinSub m:val="&#45;-"/>
+ <m:smallFrac m:val="off"/>
+ <m:dispDef/>
+ <m:lMargin m:val="0"/>
+ <m:rMargin m:val="0"/>
+ <m:defJc m:val="centerGroup"/>
+ <m:wrapIndent m:val="1440"/>
+ <m:intLim m:val="subSup"/>
+ <m:naryLim m:val="undOvr"/>
+ </m:mathPr></w:WordDocument>
+</xml><![endif]--><!--[if gte mso 9]><xml>
+ <w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
+ DefSemiHidden="true" DefQFormat="false" DefPriority="99"
+ LatentStyleCount="267">
+ <w:LsdException Locked="false" Priority="0" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
+ <w:LsdException Locked="false" Priority="9" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
+ <w:LsdException Locked="false" Priority="9" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="heading 2"/>
+ <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
+ <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
+ <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
+ <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
+ <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
+ <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
+ <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 1"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 2"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 3"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 4"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 5"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 6"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 7"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 8"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 9"/>
+ <w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
+ <w:LsdException Locked="false" Priority="10" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Title"/>
+ <w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
+ <w:LsdException Locked="false" Priority="11" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
+ <w:LsdException Locked="false" Priority="22" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
+ <w:LsdException Locked="false" Priority="20" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
+ <w:LsdException Locked="false" Priority="59" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Table Grid"/>
+ <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
+ <w:LsdException Locked="false" Priority="1" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
+ <w:LsdException Locked="false" Priority="60" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Shading"/>
+ <w:LsdException Locked="false" Priority="61" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light List"/>
+ <w:LsdException Locked="false" Priority="62" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Grid"/>
+ <w:LsdException Locked="false" Priority="63" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 1"/>
+ <w:LsdException Locked="false" Priority="64" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 2"/>
+ <w:LsdException Locked="false" Priority="65" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 1"/>
+ <w:LsdException Locked="false" Priority="66" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 2"/>
+ <w:LsdException Locked="false" Priority="67" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 1"/>
+ <w:LsdException Locked="false" Priority="68" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 2"/>
+ <w:LsdException Locked="false" Priority="69" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 3"/>
+ <w:LsdException Locked="false" Priority="70" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Dark List"/>
+ <w:LsdException Locked="false" Priority="71" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Shading"/>
+ <w:LsdException Locked="false" Priority="72" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful List"/>
+ <w:LsdException Locked="false" Priority="73" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Grid"/>
+ <w:LsdException Locked="false" Priority="60" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
+ <w:LsdException Locked="false" Priority="61" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light List Accent 1"/>
+ <w:LsdException Locked="false" Priority="62" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
+ <w:LsdException Locked="false" Priority="63" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
+ <w:LsdException Locked="false" Priority="64" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
+ <w:LsdException Locked="false" Priority="65" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
+ <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
+ <w:LsdException Locked="false" Priority="34" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
+ <w:LsdException Locked="false" Priority="29" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
+ <w:LsdException Locked="false" Priority="30" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
+ <w:LsdException Locked="false" Priority="66" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
+ <w:LsdException Locked="false" Priority="67" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
+ <w:LsdException Locked="false" Priority="68" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
+ <w:LsdException Locked="false" Priority="69" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
+ <w:LsdException Locked="false" Priority="70" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Dark List Accent 1"/>
+ <w:LsdException Locked="false" Priority="71" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
+ <w:LsdException Locked="false" Priority="72" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
+ <w:LsdException Locked="false" Priority="73" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
+ <w:LsdException Locked="false" Priority="60" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
+ <w:LsdException Locked="false" Priority="61" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light List Accent 2"/>
+ <w:LsdException Locked="false" Priority="62" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
+ <w:LsdException Locked="false" Priority="63" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
+ <w:LsdException Locked="false" Priority="64" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
+ <w:LsdException Locked="false" Priority="65" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
+ <w:LsdException Locked="false" Priority="66" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
+ <w:LsdException Locked="false" Priority="67" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
+ <w:LsdException Locked="false" Priority="68" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
+ <w:LsdException Locked="false" Priority="69" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
+ <w:LsdException Locked="false" Priority="70" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Dark List Accent 2"/>
+ <w:LsdException Locked="false" Priority="71" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
+ <w:LsdException Locked="false" Priority="72" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
+ <w:LsdException Locked="false" Priority="73" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
+ <w:LsdException Locked="false" Priority="60" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
+ <w:LsdException Locked="false" Priority="61" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light List Accent 3"/>
+ <w:LsdException Locked="false" Priority="62" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
+ <w:LsdException Locked="false" Priority="63" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
+ <w:LsdException Locked="false" Priority="64" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
+ <w:LsdException Locked="false" Priority="65" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
+ <w:LsdException Locked="false" Priority="66" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
+ <w:LsdException Locked="false" Priority="67" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
+ <w:LsdException Locked="false" Priority="68" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
+ <w:LsdException Locked="false" Priority="69" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
+ <w:LsdException Locked="false" Priority="70" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Dark List Accent 3"/>
+ <w:LsdException Locked="false" Priority="71" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
+ <w:LsdException Locked="false" Priority="72" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
+ <w:LsdException Locked="false" Priority="73" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
+ <w:LsdException Locked="false" Priority="60" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
+ <w:LsdException Locked="false" Priority="61" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light List Accent 4"/>
+ <w:LsdException Locked="false" Priority="62" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
+ <w:LsdException Locked="false" Priority="63" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
+ <w:LsdException Locked="false" Priority="64" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
+ <w:LsdException Locked="false" Priority="65" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
+ <w:LsdException Locked="false" Priority="66" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
+ <w:LsdException Locked="false" Priority="67" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
+ <w:LsdException Locked="false" Priority="68" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
+ <w:LsdException Locked="false" Priority="69" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
+ <w:LsdException Locked="false" Priority="70" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Dark List Accent 4"/>
+ <w:LsdException Locked="false" Priority="71" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
+ <w:LsdException Locked="false" Priority="72" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
+ <w:LsdException Locked="false" Priority="73" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
+ <w:LsdException Locked="false" Priority="60" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
+ <w:LsdException Locked="false" Priority="61" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light List Accent 5"/>
+ <w:LsdException Locked="false" Priority="62" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
+ <w:LsdException Locked="false" Priority="63" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
+ <w:LsdException Locked="false" Priority="64" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
+ <w:LsdException Locked="false" Priority="65" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
+ <w:LsdException Locked="false" Priority="66" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
+ <w:LsdException Locked="false" Priority="67" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
+ <w:LsdException Locked="false" Priority="68" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
+ <w:LsdException Locked="false" Priority="69" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
+ <w:LsdException Locked="false" Priority="70" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Dark List Accent 5"/>
+ <w:LsdException Locked="false" Priority="71" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
+ <w:LsdException Locked="false" Priority="72" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
+ <w:LsdException Locked="false" Priority="73" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
+ <w:LsdException Locked="false" Priority="60" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
+ <w:LsdException Locked="false" Priority="61" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light List Accent 6"/>
+ <w:LsdException Locked="false" Priority="62" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
+ <w:LsdException Locked="false" Priority="63" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
+ <w:LsdException Locked="false" Priority="64" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
+ <w:LsdException Locked="false" Priority="65" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
+ <w:LsdException Locked="false" Priority="66" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
+ <w:LsdException Locked="false" Priority="67" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
+ <w:LsdException Locked="false" Priority="68" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
+ <w:LsdException Locked="false" Priority="69" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
+ <w:LsdException Locked="false" Priority="70" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Dark List Accent 6"/>
+ <w:LsdException Locked="false" Priority="71" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
+ <w:LsdException Locked="false" Priority="72" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
+ <w:LsdException Locked="false" Priority="73" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
+ <w:LsdException Locked="false" Priority="19" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
+ <w:LsdException Locked="false" Priority="21" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
+ <w:LsdException Locked="false" Priority="31" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
+ <w:LsdException Locked="false" Priority="32" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
+ <w:LsdException Locked="false" Priority="33" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
+ <w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
+ <w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
+ </w:LatentStyles>
+</xml><![endif]-->
+<style>
+<!--
+ /* Font Definitions */
+ @font-face
+ {font-family:"Cambria Math";
+ panose-1:2 4 5 3 5 4 6 3 2 4;
+ mso-font-charset:1;
+ mso-generic-font-family:roman;
+ mso-font-format:other;
+ mso-font-pitch:variable;
+ mso-font-signature:0 0 0 0 0 0;}
+@font-face
+ {font-family:Tahoma;
+ panose-1:2 11 6 4 3 5 4 4 2 4;
+ mso-font-charset:0;
+ mso-generic-font-family:swiss;
+ mso-font-pitch:variable;
+ mso-font-signature:-520082689 -1073717157 41 0 66047 0;}
+ /* Style Definitions */
+ p.MsoNormal, li.MsoNormal, div.MsoNormal
+ {mso-style-unhide:no;
+ mso-style-qformat:yes;
+ mso-style-parent:"";
+ margin:0in;
+ margin-bottom:.0001pt;
+ mso-pagination:widow-orphan;
+ font-size:10.0pt;
+ font-family:"Arial","sans-serif";
+ mso-fareast-font-family:"Times New Roman";
+ mso-fareast-theme-font:minor-fareast;
+ color:windowtext;}
+h1
+ {mso-style-priority:9;
+ mso-style-unhide:no;
+ mso-style-qformat:yes;
+ mso-style-link:"Heading 1 Char";
+ margin-top:12.0pt;
+ margin-right:0in;
+ margin-bottom:3.0pt;
+ margin-left:0in;
+ mso-pagination:widow-orphan;
+ page-break-after:avoid;
+ mso-outline-level:1;
+ font-size:16.0pt;
+ font-family:"Arial","sans-serif";
+ mso-fareast-font-family:"Times New Roman";
+ mso-fareast-theme-font:minor-fareast;
+ color:windowtext;
+ font-weight:bold;}
+h2
+ {mso-style-priority:9;
+ mso-style-unhide:no;
+ mso-style-qformat:yes;
+ mso-style-link:"Heading 2 Char";
+ margin-top:12.0pt;
+ margin-right:0in;
+ margin-bottom:3.0pt;
+ margin-left:0in;
+ mso-pagination:widow-orphan;
+ page-break-after:avoid;
+ mso-outline-level:2;
+ font-size:14.0pt;
+ font-family:"Arial","sans-serif";
+ mso-fareast-font-family:"Times New Roman";
+ mso-fareast-theme-font:minor-fareast;
+ color:windowtext;
+ font-weight:bold;
+ font-style:italic;}
+p
+ {mso-style-noshow:yes;
+ mso-style-priority:99;
+ mso-margin-top-alt:auto;
+ margin-right:0in;
+ mso-margin-bottom-alt:auto;
+ margin-left:0in;
+ mso-pagination:widow-orphan;
+ font-size:10.0pt;
+ font-family:"Arial","sans-serif";
+ mso-fareast-font-family:"Times New Roman";
+ mso-fareast-theme-font:minor-fareast;
+ color:black;}
+p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
+ {mso-style-noshow:yes;
+ mso-style-priority:99;
+ mso-style-link:"Balloon Text Char";
+ margin:0in;
+ margin-bottom:.0001pt;
+ mso-pagination:widow-orphan;
+ font-size:8.0pt;
+ font-family:"Tahoma","sans-serif";
+ mso-fareast-font-family:"Times New Roman";
+ mso-fareast-theme-font:minor-fareast;
+ color:windowtext;}
+span.Heading1Char
+ {mso-style-name:"Heading 1 Char";
+ mso-style-priority:9;
+ mso-style-unhide:no;
+ mso-style-locked:yes;
+ mso-style-link:"Heading 1";
+ mso-ansi-font-size:14.0pt;
+ mso-bidi-font-size:14.0pt;
+ font-family:"Cambria","serif";
+ mso-ascii-font-family:Cambria;
+ mso-ascii-theme-font:major-latin;
+ mso-fareast-font-family:"Times New Roman";
+ mso-fareast-theme-font:major-fareast;
+ mso-hansi-font-family:Cambria;
+ mso-hansi-theme-font:major-latin;
+ mso-bidi-font-family:"Times New Roman";
+ mso-bidi-theme-font:major-bidi;
+ color:#365F91;
+ mso-themecolor:accent1;
+ mso-themeshade:191;
+ font-weight:bold;}
+span.Heading2Char
+ {mso-style-name:"Heading 2 Char";
+ mso-style-noshow:yes;
+ mso-style-priority:9;
+ mso-style-unhide:no;
+ mso-style-locked:yes;
+ mso-style-link:"Heading 2";
+ mso-ansi-font-size:13.0pt;
+ mso-bidi-font-size:13.0pt;
+ font-family:"Cambria","serif";
+ mso-ascii-font-family:Cambria;
+ mso-ascii-theme-font:major-latin;
+ mso-fareast-font-family:"Times New Roman";
+ mso-fareast-theme-font:major-fareast;
+ mso-hansi-font-family:Cambria;
+ mso-hansi-theme-font:major-latin;
+ mso-bidi-font-family:"Times New Roman";
+ mso-bidi-theme-font:major-bidi;
+ color:#4F81BD;
+ mso-themecolor:accent1;
+ font-weight:bold;}
+span.BalloonTextChar
+ {mso-style-name:"Balloon Text Char";
+ mso-style-noshow:yes;
+ mso-style-priority:99;
+ mso-style-unhide:no;
+ mso-style-locked:yes;
+ mso-style-link:"Balloon Text";
+ mso-ansi-font-size:8.0pt;
+ mso-bidi-font-size:8.0pt;
+ font-family:"Tahoma","sans-serif";
+ mso-ascii-font-family:Tahoma;
+ mso-fareast-font-family:"Times New Roman";
+ mso-fareast-theme-font:minor-fareast;
+ mso-hansi-font-family:Tahoma;
+ mso-bidi-font-family:Tahoma;}
+.MsoChpDefault
+ {mso-style-type:export-only;
+ mso-default-props:yes;
+ font-size:10.0pt;
+ mso-ansi-font-size:10.0pt;
+ mso-bidi-font-size:10.0pt;}
+@page Section1
+ {size:8.5in 11.0in;
+ margin:1.0in 1.0in 1.0in 1.0in;
+ mso-header-margin:.5in;
+ mso-footer-margin:.5in;
+ mso-paper-source:0;}
+div.Section1
+ {page:Section1;}
+-->
+</style>
+<!--[if gte mso 10]>
+<style>
+ /* Style Definitions */
+ table.MsoNormalTable
+ {mso-style-name:"Table Normal";
+ mso-tstyle-rowband-size:0;
+ mso-tstyle-colband-size:0;
+ mso-style-noshow:yes;
+ mso-style-priority:99;
+ mso-style-qformat:yes;
+ mso-style-parent:"";
+ mso-padding-alt:0in 5.4pt 0in 5.4pt;
+ mso-para-margin:0in;
+ mso-para-margin-bottom:.0001pt;
+ mso-pagination:widow-orphan;
+ font-size:10.0pt;
+ font-family:"Times New Roman","serif";}
+</style>
+<![endif]--><!--[if gte mso 9]><xml>
+ <o:shapedefaults v:ext="edit" spidmax="2050"/>
+</xml><![endif]--><!--[if gte mso 9]><xml>
+ <o:shapelayout v:ext="edit">
+ <o:idmap v:ext="edit" data="1"/>
+ </o:shapelayout></xml><![endif]-->
+</head>
+
+<body bgcolor=white background="../images/bkground.gif" lang=EN-US link=blue
+vlink=purple style='tab-interval:.5in'>
+
+<div class=Section1>
+
+<h2><span style='mso-fareast-font-family:"Times New Roman"'>File Menu<o:p></o:p></span></h2>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span
+style='font-family:Symbol;mso-no-proof:yes'><img width=11 height=11
+id="_x0000_i1035" src="../images/mame321.gif" alt="*"></span><span
+style='font-size:7.0pt;font-family:"Times New Roman","serif"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span><b>Play Game</b> : Selecting this option from the file menu will launch
+the highlighted game.</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span
+style='font-family:Symbol;mso-no-proof:yes'><img width=11 height=11
+id="_x0000_i1034" src="../images/mame321.gif" alt="*"></span><span
+style='font-size:7.0pt;font-family:"Times New Roman","serif"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span><b>Play and Record Input</b> : Selecting this option from the file menu
+will allow for the creation of an *.inp file which will allow MameUI to record
+keystrokes in the game being played for playback later.&nbsp; Similar to a VCR.</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span
+style='font-family:Symbol;mso-no-proof:yes'><img width=11 height=11
+id="_x0000_i1033" src="../images/mame321.gif" alt="*"></span><span
+style='font-size:7.0pt;font-family:"Times New Roman","serif"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span><b>Playback Input</b> : Selecting this option from the file menu will
+allow the loading and playing of a previously recorded *.inp file.</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span
+style='font-family:Symbol;mso-no-proof:yes'><img width=11 height=11
+id="_x0000_i1032" src="../images/mame321.gif" alt="*"></span><span
+style='font-size:7.0pt;font-family:"Times New Roman","serif"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span><b>Play and Record Wave Output</b> : Selecting this option from the file
+menu will allow the recording of a sound file while playing a game.&nbsp; The
+*.wav file is placed in the \inp directory by default.</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span
+style='font-family:Symbol;mso-no-proof:yes'><img width=11 height=11
+id="_x0000_i1031" src="../images/mame321.gif" alt="*"></span><span
+style='font-size:7.0pt;font-family:"Times New Roman","serif"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span><b>Play and Record MNG Output</b> : Selecting this option from the file
+menu will allow the recording of a MNG video file while playing a game.&nbsp;
+The *.mng file is placed in the \inp directory by default.</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span
+style='font-family:Symbol;mso-no-proof:yes'><img width=11 height=11
+id="_x0000_i1030" src="../images/mame321.gif" alt="*"></span><span
+style='font-size:7.0pt;font-family:"Times New Roman","serif"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span><b>Load Savestate</b> : Selecting this option from the file menu will
+allow the loading and playing of a previously saved machine state, the state
+being loaded must match the highlighted game.</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span
+style='font-family:Symbol;mso-no-proof:yes'><img width=11 height=11
+id="_x0000_i1029" src="../images/mame321.gif" alt="*"></span><span
+style='font-size:7.0pt;font-family:"Times New Roman","serif"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span><b>Select Random Game</b> : Selecting this option from the file menu
+will cause MameUI to randomly highlight a game in the game list shortcut key is
+<b>Ctrl-R</b>.</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span
+style='font-family:Symbol;mso-no-proof:yes'><img width=11 height=11
+id="_x0000_i1028" src="../images/mame321.gif" alt="*"></span><span
+style='font-size:7.0pt;font-family:"Times New Roman","serif"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span><b><a href="mameui_properties.htm">Properties</a></b> : Selecting this
+option from the file menu will display the highlighted game’s individual
+settings, these settings over-ride those made to all games in the Options •
+Default Options menu item.&nbsp;</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span
+style='font-family:Symbol;mso-no-proof:yes'><img border=0 width=11 height=11
+id="_x0000_i1027" src="../images/mame321.gif" alt="*"></span><span
+style='font-size:7.0pt;font-family:"Times New Roman","serif"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span><b>Audit All Games</b> : Selecting this option from the file menu will
+initiate an exhaustive check on the available games, verifying them to MameUI’s
+expected results.</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span
+style='font-family:Symbol;mso-no-proof:yes'><img border=0 width=11 height=11
+id="_x0000_i1026" src="../images/mame321.gif" alt="*"></span><span
+style='font-size:7.0pt;font-family:"Times New Roman","serif"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span><b>Exit</b> : Selecting this option from the file menu will exit the
+program.</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'>&nbsp;</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><!--webbot bot="Timestamp" s-type="EDITED" s-format="%Y-%m-%d %I:%M %p %Z" startspan -->2007-11-10 01:41 AM -0800<!--webbot bot="Timestamp" endspan i-checksum="37617" --><span
+style='font-size:7.5pt'>/ john iv</span></p>
+
+</div>
+
+</body>
+
+</html>
diff --git a/docs/release/src/osd/winui/help/html/mameui_help.htm b/docs/release/src/osd/winui/help/html/mameui_help.htm
new file mode 100644
index 00000000000..303f409014e
--- /dev/null
+++ b/docs/release/src/osd/winui/help/html/mameui_help.htm
@@ -0,0 +1,86 @@
+<html>
+
+<head>
+<meta name="GENERATOR" content="Microsoft FrontPage 12.0">
+<meta name="ProgId" content="FrontPage.Editor.Document">
+<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
+<title>MameUI Help Menu</title>
+<style>
+<!--
+p
+ {margin-right:0in;
+ margin-left:0in;
+ font-size:10.0pt;
+ font-family:Arial;
+ color:black}
+h1
+ {margin-top:12.0pt;
+ margin-right:0in;
+ margin-bottom:3.0pt;
+ margin-left:0in;
+ page-break-after:avoid;
+ font-size:16.0pt;
+ font-family:Arial;
+ color:windowtext;
+ font-weight:bold}
+h2
+ {margin-top:12.0pt;
+ margin-right:0in;
+ margin-bottom:3.0pt;
+ margin-left:0in;
+ page-break-after:avoid;
+ font-size:14.0pt;
+ font-family:Arial;
+ font-style:italic}
+ p.MsoNormal
+ {mso-style-parent:"";
+ margin-bottom:.0001pt;
+ font-size:10.0pt;
+ font-family:Arial;
+ margin-left:0in; margin-right:0in; margin-top:0in}
+-->
+</style>
+</head>
+
+<body background="../images/bkground.gif">
+
+<h2>Help Menu</h2>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>Help Topics</b> :&nbsp; Selecting this option from the help menu
+will launch the MameUI help file.</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>Troubleshooting</b> :&nbsp; Selecting this option from the help menu
+will display the troubleshooting topic in the help file.</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>New Game Changes</b> :&nbsp; Selecting this option from the help menu
+will display added, removed, changed games.</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span>
+<span style="font-style:normal; font-variant:normal; font-weight:700">Mame </span>
+<span style="font-weight: 700">Whatsnew.txt</span> :&nbsp; Selecting this option from the help menu
+will display the baseline Mame whatsnew.txt file which contains information
+about source changes, games added, driver improvements, etc.</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>About </b>: Selecting this option from the help menu will
+display information about the version of
+MameUI and its contributors.</p>
+
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">&nbsp;</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<font size="1">
+<!--webbot bot="Timestamp" s-type="EDITED" s-format="%Y-%m-%d %I:%M %p %Z" startspan -->2007-11-10 01:41 AM -0800<!--webbot bot="Timestamp" endspan i-checksum="37617" -->
+/ john iv</font></p>
+
+</body>
+
+</html> \ No newline at end of file
diff --git a/docs/release/src/osd/winui/help/html/mameui_installprocedures.htm b/docs/release/src/osd/winui/help/html/mameui_installprocedures.htm
new file mode 100644
index 00000000000..9fd78ce0494
--- /dev/null
+++ b/docs/release/src/osd/winui/help/html/mameui_installprocedures.htm
@@ -0,0 +1,176 @@
+<html>
+
+<head>
+<meta name="GENERATOR" content="Microsoft FrontPage 12.0">
+<meta name="ProgId" content="FrontPage.Editor.Document">
+<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
+<title>MameUI Installation Procedures</title>
+<style>
+<!--
+p
+ {margin-right:0in;
+ margin-left:0in;
+ font-size:10.0pt;
+ font-family:Arial;
+ color:black}
+h1
+ {margin-top:12.0pt;
+ margin-right:0in;
+ margin-bottom:3.0pt;
+ margin-left:0in;
+ page-break-after:avoid;
+ font-size:16.0pt;
+ font-family:Arial;
+ color:windowtext;
+ font-weight:bold}
+h2
+ {margin-top:12.0pt;
+ margin-right:0in;
+ margin-bottom:3.0pt;
+ margin-left:0in;
+ page-break-after:avoid;
+ font-size:14.0pt;
+ font-family:Arial;
+ font-style:italic}
+ p.MsoNormal
+ {mso-style-parent:"";
+ margin-bottom:.0001pt;
+ font-size:10.0pt;
+ font-family:Arial;
+ margin-left:0in; margin-right:0in; margin-top:0in}
+-->
+</style>
+<base target="_blank">
+</head>
+
+<body background="../images/bkground.gif">
+
+<h2>Install Procedures</h2>
+
+<h3><font face="Arial">To Install MameUI Manually</font></h3>
+<p style="text-indent: -.25in; margin-left: .75in; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt">
+<span style="font-family: Symbol; color: windowtext">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7.0pt; font-family: Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span>
+<span style="font-style: normal; font-variant: normal; font-weight: normal; color:windowtext">
+Download the latest MameUI binary distribution [not the source] self-extracting archive
+available at
+</span>
+<span style="font-style: normal; font-variant: normal; font-weight: 700; color:windowtext">
+<a target="_blank" href="http://mameui.info/">MameUI</a></span><span style="font-style: normal; font-variant: normal; font-weight: normal; color:windowtext">.</span></p>
+<p style="text-indent: -.25in; margin-left: .75in; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt">
+<span style="font-family: Symbol; color: windowtext">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7.0pt; font-family: Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span>Double-click the self-extracting archive .exe, and point the
+directory install location to the root of the c:\ drive, or just type in the box
+&quot;c:\&quot; [no quotes].&nbsp; This will create
+a c:\MameUI directory with the program and all its support files within it.</p>
+<p style="text-indent: -.25in; margin-left: .75in; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt">
+<span style="font-family: Symbol; color: windowtext">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7.0pt; font-family: Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span>MameUI requires ROMs to play games; if attempting to play a game
+the ROMs of which are not present it will fail and list the files missing.&nbsp; Download the freely available public domain ROMs
+[Robby Roto, Gridlee, Alien Arena, and others] from <b>
+<a style="color: blue; text-decoration: underline; text-underline: single" target="_blank" href="http://www.mamedev.org/roms/">Mamedev.org</a></b>.&nbsp; Place these files
+<i><b>still zipped</b></i>, into the
+\MameUI\ROMs folder.&nbsp; <b>Again, do not unzip them</b>.</p>
+<p style="text-indent: -.25in; margin-left: .75in; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt">
+<span style="font-family: Symbol; color: windowtext">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7.0pt; font-family: Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span>Double-click the MameUI icon to launch the program.&nbsp; MameUI
+will go through its initial diagnostics and search for available games in the
+c:\MameUI\ROMs directory, and then display the GUI.&nbsp; If the games do not
+appear on the available game list, hit F5 to force a game search or do a File
+menu / Audit.</p>
+<p style="text-indent: -.25in; margin-left: .75in; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt">
+<span style="font-family: Symbol; color: windowtext">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7.0pt; font-family: Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span>To activate mouse control or attached gamepads to use within
+games, it is necessary to toggle those options on in the Options • Default
+Options • Controllers tab.</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span>Once a game has been selected and double-clicked, MameUI will
+produce two information screens and then it will run the game.&nbsp; Since
+MameUI is
+emulating the original hardware, the software thinks it’s still in an arcade and
+is starting up for the first time in the morning.&nbsp; Initial diagnostic screens
+are run through, as well as possibly some accounting information presented to
+the arcade owner.</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span>The game should now be running its demo/attract mode.&nbsp; Insert a
+coin with the [<b>5</b>] key on the keyboard, the mappings for coin inserts are:
+player 1 [<b>5</b>], player 2 [<b>6</b>], player 3 [<b>7</b>], player 4 [<b>8</b>].&nbsp;
+Now that a coin has been inserted, start the game with the [<b>1</b>] key on the
+keyboard.&nbsp; Game start mappings are player 1 [<b>1</b>], player 2 [<b>2</b>],
+player 3 [<b>3</b>], player 4 [<b>4</b>].</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span>MameUI’s default control scheme is to use the inverted T arrow
+keys on the keyboard for directional controls, and the left [<b>CTRL</b>] key as the
+primary action button.</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span>While in a game within MameUI, the internal configuration menu
+system can be activated by pressing the [<b>TAB</b>] key.&nbsp; This will bring up
+the control options.&nbsp; These options allow remapping MameUI controls to whatever
+keyboard keys or gamepad buttons are desired.&nbsp; The Input (general) area controls the global settings, and
+the Input (this game) are the controls for the game selected.&nbsp; To change the
+mapping, select the control to change by arrowing down to it, hit the [<b>ENTER</b>]
+key and then the new desired control.&nbsp; Hit the [<b>ESC</b>] key to exit the [<b>TAB</b>]
+menu back to the game. Note: If there are multiple mouse devices attached to the
+system they can be individually configured by selecting their control in the [<strong>TAB</strong>]
+menu and moving the mouse or trackball left or right, up or down to map it.</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span>Other keys of interest while playing a game are : </p>
+<p class="MsoNormal" style="margin-left:.75in">[<b>TAB</b>] key to bring up the
+internal menu system.</p>
+<p class="MsoNormal" style="margin-left:.75in">[<b>~ TILDE</b>] the onscreen
+display.</p>
+<p class="MsoNormal" style="margin-left:.75in">[<b>Shift-p</b>] advance paused
+screen one frame at a time<br>
+[<b>p</b>] for the pause button.</p>
+<p class="MsoNormal" style="margin-left:.75in">[<b>F3</b>] resets the game.</p>
+<p class="MsoNormal" style="margin-left:.75in">[<b>F4</b>] displays the tile
+manager and the game’s
+color palette.</p>
+<p class="MsoNormal" style="margin-left:.75in">[<b>Shift-F7</b>] save current
+game state [a-z, 1-0] (See save state folder view for supported games)</p>
+<p class="MsoNormal" style="margin-left:.75in">[<b>F7</b>] load game state [a-z,
+1-0] (See save state folder view on left for supported games)</p>
+<p class="MsoNormal" style="margin-left:.75in">[<b>F9</b>] changes the frameskip
+on the fly.</p>
+<p class="MsoNormal" style="margin-left:.75in">[<b>F10</b>] toggles throttling.</p>
+<p class="MsoNormal" style="margin-left:.75in">[<b>F11</b>] toggles the speed
+display
+display.<br>
+[<b>Shift-F12</b>] toggles MNG recording, once starts, second finishes.</p>
+<p class="MsoNormal" style="margin-left:.75in">[<b>F12</b>] takes a *.png
+snapshot of the game and places it in the \MameUI\snap directory.</p>
+<p class="MsoNormal" style="margin-left:.75in">[<b>ESC</b>] exits from the game
+back to the MameUI GUI.</p>
+
+<p class="MsoNormal" style="margin-left:.75in">[<b>Left-Alt + Enter</b>] toggle
+from fullscreen mode to windowed mode.</p>
+<p class="MsoNormal" style="margin-left:.75in">[<strong>Insert</strong>] fast
+forwards with full unthrottle and highest frameskip, convenient for speeding
+through slow start-up of certain games.</p>
+
+<p style="text-indent: -.25in; margin-left: .75in; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt">
+&nbsp;</p>
+
+<p style="text-indent: -.25in; margin-left: .75in; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt">
+<font size="1">
+<!--webbot bot="Timestamp" s-type="EDITED" s-format="%Y-%m-%d %I:%M %p %Z" startspan -->2007-11-12 02:02 PM -0800<!--webbot bot="Timestamp" endspan i-checksum="37539" -->
+/ john iv</font></p>
+
+</body>
+
+</html> \ No newline at end of file
diff --git a/docs/release/src/osd/winui/help/html/mameui_optionsmenu.htm b/docs/release/src/osd/winui/help/html/mameui_optionsmenu.htm
new file mode 100644
index 00000000000..7763fd64d71
--- /dev/null
+++ b/docs/release/src/osd/winui/help/html/mameui_optionsmenu.htm
@@ -0,0 +1,639 @@
+<html xmlns:v="urn:schemas-microsoft-com:vml"
+xmlns:o="urn:schemas-microsoft-com:office:office"
+xmlns:w="urn:schemas-microsoft-com:office:word"
+xmlns:m="http://schemas.microsoft.com/office/2004/12/omml"
+xmlns="http://www.w3.org/TR/REC-html40">
+
+<head>
+<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
+<meta name=ProgId content=Word.Document>
+<meta name=Generator content="Microsoft Word 12">
+<meta name=Originator content="Microsoft Word 12">
+<link rel=File-List href="mameui_optionsmenu_files/filelist.xml">
+<link rel=Edit-Time-Data href="mameui_optionsmenu_files/editdata.mso">
+<!--[if !mso]>
+<style>
+v\:* {behavior:url(#default#VML);}
+o\:* {behavior:url(#default#VML);}
+w\:* {behavior:url(#default#VML);}
+.shape {behavior:url(#default#VML);}
+</style>
+<![endif]-->
+<title>MameUI Options Menu</title>
+<!--[if gte mso 9]><xml>
+ <o:DocumentProperties>
+ <o:Author>john4</o:Author>
+ <o:LastAuthor>john4</o:LastAuthor>
+ <o:Revision>3</o:Revision>
+ <o:TotalTime>1</o:TotalTime>
+ <o:Created>2008-04-11T22:39:00Z</o:Created>
+ <o:LastSaved>2008-04-11T22:40:00Z</o:LastSaved>
+ <o:Pages>1</o:Pages>
+ <o:Words>592</o:Words>
+ <o:Characters>3375</o:Characters>
+ <o:Lines>28</o:Lines>
+ <o:Paragraphs>7</o:Paragraphs>
+ <o:CharactersWithSpaces>3960</o:CharactersWithSpaces>
+ <o:Version>12.00</o:Version>
+ </o:DocumentProperties>
+</xml><![endif]-->
+<link rel=themeData href="mameui_optionsmenu_files/themedata.thmx">
+<link rel=colorSchemeMapping
+href="mameui_optionsmenu_files/colorschememapping.xml">
+<!--[if gte mso 9]><xml>
+ <w:WordDocument>
+ <w:TrackMoves>false</w:TrackMoves>
+ <w:TrackFormatting/>
+ <w:ValidateAgainstSchemas/>
+ <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
+ <w:IgnoreMixedContent>false</w:IgnoreMixedContent>
+ <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
+ <w:DoNotPromoteQF/>
+ <w:LidThemeOther>EN-US</w:LidThemeOther>
+ <w:LidThemeAsian>X-NONE</w:LidThemeAsian>
+ <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
+ <w:Compatibility>
+ <w:BreakWrappedTables/>
+ <w:SnapToGridInCell/>
+ <w:WrapTextWithPunct/>
+ <w:UseAsianBreakRules/>
+ <w:DontGrowAutofit/>
+ <w:SplitPgBreakAndParaMark/>
+ <w:DontVertAlignCellWithSp/>
+ <w:DontBreakConstrainedForcedTables/>
+ <w:DontVertAlignInTxbx/>
+ <w:Word11KerningPairs/>
+ <w:CachedColBalance/>
+ </w:Compatibility>
+ <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
+ <m:mathPr>
+ <m:mathFont m:val="Cambria Math"/>
+ <m:brkBin m:val="before"/>
+ <m:brkBinSub m:val="&#45;-"/>
+ <m:smallFrac m:val="off"/>
+ <m:dispDef/>
+ <m:lMargin m:val="0"/>
+ <m:rMargin m:val="0"/>
+ <m:defJc m:val="centerGroup"/>
+ <m:wrapIndent m:val="1440"/>
+ <m:intLim m:val="subSup"/>
+ <m:naryLim m:val="undOvr"/>
+ </m:mathPr></w:WordDocument>
+</xml><![endif]--><!--[if gte mso 9]><xml>
+ <w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
+ DefSemiHidden="true" DefQFormat="false" DefPriority="99"
+ LatentStyleCount="267">
+ <w:LsdException Locked="false" Priority="0" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
+ <w:LsdException Locked="false" Priority="9" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
+ <w:LsdException Locked="false" Priority="9" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="heading 2"/>
+ <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
+ <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
+ <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
+ <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
+ <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
+ <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
+ <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 1"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 2"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 3"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 4"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 5"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 6"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 7"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 8"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 9"/>
+ <w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
+ <w:LsdException Locked="false" Priority="10" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Title"/>
+ <w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
+ <w:LsdException Locked="false" Priority="11" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
+ <w:LsdException Locked="false" Priority="22" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
+ <w:LsdException Locked="false" Priority="20" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
+ <w:LsdException Locked="false" Priority="59" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Table Grid"/>
+ <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
+ <w:LsdException Locked="false" Priority="1" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
+ <w:LsdException Locked="false" Priority="60" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Shading"/>
+ <w:LsdException Locked="false" Priority="61" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light List"/>
+ <w:LsdException Locked="false" Priority="62" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Grid"/>
+ <w:LsdException Locked="false" Priority="63" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 1"/>
+ <w:LsdException Locked="false" Priority="64" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 2"/>
+ <w:LsdException Locked="false" Priority="65" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 1"/>
+ <w:LsdException Locked="false" Priority="66" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 2"/>
+ <w:LsdException Locked="false" Priority="67" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 1"/>
+ <w:LsdException Locked="false" Priority="68" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 2"/>
+ <w:LsdException Locked="false" Priority="69" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 3"/>
+ <w:LsdException Locked="false" Priority="70" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Dark List"/>
+ <w:LsdException Locked="false" Priority="71" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Shading"/>
+ <w:LsdException Locked="false" Priority="72" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful List"/>
+ <w:LsdException Locked="false" Priority="73" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Grid"/>
+ <w:LsdException Locked="false" Priority="60" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
+ <w:LsdException Locked="false" Priority="61" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light List Accent 1"/>
+ <w:LsdException Locked="false" Priority="62" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
+ <w:LsdException Locked="false" Priority="63" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
+ <w:LsdException Locked="false" Priority="64" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
+ <w:LsdException Locked="false" Priority="65" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
+ <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
+ <w:LsdException Locked="false" Priority="34" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
+ <w:LsdException Locked="false" Priority="29" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
+ <w:LsdException Locked="false" Priority="30" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
+ <w:LsdException Locked="false" Priority="66" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
+ <w:LsdException Locked="false" Priority="67" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
+ <w:LsdException Locked="false" Priority="68" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
+ <w:LsdException Locked="false" Priority="69" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
+ <w:LsdException Locked="false" Priority="70" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Dark List Accent 1"/>
+ <w:LsdException Locked="false" Priority="71" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
+ <w:LsdException Locked="false" Priority="72" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
+ <w:LsdException Locked="false" Priority="73" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
+ <w:LsdException Locked="false" Priority="60" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
+ <w:LsdException Locked="false" Priority="61" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light List Accent 2"/>
+ <w:LsdException Locked="false" Priority="62" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
+ <w:LsdException Locked="false" Priority="63" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
+ <w:LsdException Locked="false" Priority="64" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
+ <w:LsdException Locked="false" Priority="65" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
+ <w:LsdException Locked="false" Priority="66" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
+ <w:LsdException Locked="false" Priority="67" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
+ <w:LsdException Locked="false" Priority="68" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
+ <w:LsdException Locked="false" Priority="69" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
+ <w:LsdException Locked="false" Priority="70" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Dark List Accent 2"/>
+ <w:LsdException Locked="false" Priority="71" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
+ <w:LsdException Locked="false" Priority="72" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
+ <w:LsdException Locked="false" Priority="73" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
+ <w:LsdException Locked="false" Priority="60" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
+ <w:LsdException Locked="false" Priority="61" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light List Accent 3"/>
+ <w:LsdException Locked="false" Priority="62" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
+ <w:LsdException Locked="false" Priority="63" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
+ <w:LsdException Locked="false" Priority="64" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
+ <w:LsdException Locked="false" Priority="65" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
+ <w:LsdException Locked="false" Priority="66" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
+ <w:LsdException Locked="false" Priority="67" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
+ <w:LsdException Locked="false" Priority="68" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
+ <w:LsdException Locked="false" Priority="69" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
+ <w:LsdException Locked="false" Priority="70" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Dark List Accent 3"/>
+ <w:LsdException Locked="false" Priority="71" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
+ <w:LsdException Locked="false" Priority="72" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
+ <w:LsdException Locked="false" Priority="73" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
+ <w:LsdException Locked="false" Priority="60" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
+ <w:LsdException Locked="false" Priority="61" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light List Accent 4"/>
+ <w:LsdException Locked="false" Priority="62" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
+ <w:LsdException Locked="false" Priority="63" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
+ <w:LsdException Locked="false" Priority="64" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
+ <w:LsdException Locked="false" Priority="65" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
+ <w:LsdException Locked="false" Priority="66" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
+ <w:LsdException Locked="false" Priority="67" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
+ <w:LsdException Locked="false" Priority="68" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
+ <w:LsdException Locked="false" Priority="69" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
+ <w:LsdException Locked="false" Priority="70" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Dark List Accent 4"/>
+ <w:LsdException Locked="false" Priority="71" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
+ <w:LsdException Locked="false" Priority="72" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
+ <w:LsdException Locked="false" Priority="73" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
+ <w:LsdException Locked="false" Priority="60" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
+ <w:LsdException Locked="false" Priority="61" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light List Accent 5"/>
+ <w:LsdException Locked="false" Priority="62" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
+ <w:LsdException Locked="false" Priority="63" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
+ <w:LsdException Locked="false" Priority="64" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
+ <w:LsdException Locked="false" Priority="65" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
+ <w:LsdException Locked="false" Priority="66" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
+ <w:LsdException Locked="false" Priority="67" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
+ <w:LsdException Locked="false" Priority="68" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
+ <w:LsdException Locked="false" Priority="69" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
+ <w:LsdException Locked="false" Priority="70" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Dark List Accent 5"/>
+ <w:LsdException Locked="false" Priority="71" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
+ <w:LsdException Locked="false" Priority="72" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
+ <w:LsdException Locked="false" Priority="73" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
+ <w:LsdException Locked="false" Priority="60" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
+ <w:LsdException Locked="false" Priority="61" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light List Accent 6"/>
+ <w:LsdException Locked="false" Priority="62" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
+ <w:LsdException Locked="false" Priority="63" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
+ <w:LsdException Locked="false" Priority="64" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
+ <w:LsdException Locked="false" Priority="65" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
+ <w:LsdException Locked="false" Priority="66" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
+ <w:LsdException Locked="false" Priority="67" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
+ <w:LsdException Locked="false" Priority="68" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
+ <w:LsdException Locked="false" Priority="69" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
+ <w:LsdException Locked="false" Priority="70" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Dark List Accent 6"/>
+ <w:LsdException Locked="false" Priority="71" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
+ <w:LsdException Locked="false" Priority="72" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
+ <w:LsdException Locked="false" Priority="73" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
+ <w:LsdException Locked="false" Priority="19" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
+ <w:LsdException Locked="false" Priority="21" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
+ <w:LsdException Locked="false" Priority="31" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
+ <w:LsdException Locked="false" Priority="32" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
+ <w:LsdException Locked="false" Priority="33" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
+ <w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
+ <w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
+ </w:LatentStyles>
+</xml><![endif]-->
+<style>
+<!--
+ /* Font Definitions */
+ @font-face
+ {font-family:"Cambria Math";
+ panose-1:2 4 5 3 5 4 6 3 2 4;
+ mso-font-charset:1;
+ mso-generic-font-family:roman;
+ mso-font-format:other;
+ mso-font-pitch:variable;
+ mso-font-signature:0 0 0 0 0 0;}
+@font-face
+ {font-family:Tahoma;
+ panose-1:2 11 6 4 3 5 4 4 2 4;
+ mso-font-charset:0;
+ mso-generic-font-family:swiss;
+ mso-font-pitch:variable;
+ mso-font-signature:-520082689 -1073717157 41 0 66047 0;}
+ /* Style Definitions */
+ p.MsoNormal, li.MsoNormal, div.MsoNormal
+ {mso-style-unhide:no;
+ mso-style-qformat:yes;
+ mso-style-parent:"";
+ margin:0in;
+ margin-bottom:.0001pt;
+ mso-pagination:widow-orphan;
+ font-size:10.0pt;
+ font-family:"Arial","sans-serif";
+ mso-fareast-font-family:"Times New Roman";
+ mso-fareast-theme-font:minor-fareast;
+ color:windowtext;}
+h1
+ {mso-style-priority:9;
+ mso-style-unhide:no;
+ mso-style-qformat:yes;
+ mso-style-link:"Heading 1 Char";
+ margin-top:12.0pt;
+ margin-right:0in;
+ margin-bottom:3.0pt;
+ margin-left:0in;
+ mso-pagination:widow-orphan;
+ page-break-after:avoid;
+ mso-outline-level:1;
+ font-size:16.0pt;
+ font-family:"Arial","sans-serif";
+ mso-fareast-font-family:"Times New Roman";
+ mso-fareast-theme-font:minor-fareast;
+ color:windowtext;
+ font-weight:bold;}
+h2
+ {mso-style-priority:9;
+ mso-style-unhide:no;
+ mso-style-qformat:yes;
+ mso-style-link:"Heading 2 Char";
+ margin-top:12.0pt;
+ margin-right:0in;
+ margin-bottom:3.0pt;
+ margin-left:0in;
+ mso-pagination:widow-orphan;
+ page-break-after:avoid;
+ mso-outline-level:2;
+ font-size:14.0pt;
+ font-family:"Arial","sans-serif";
+ mso-fareast-font-family:"Times New Roman";
+ mso-fareast-theme-font:minor-fareast;
+ color:windowtext;
+ font-weight:bold;
+ font-style:italic;}
+p
+ {mso-style-noshow:yes;
+ mso-style-priority:99;
+ mso-margin-top-alt:auto;
+ margin-right:0in;
+ mso-margin-bottom-alt:auto;
+ margin-left:0in;
+ mso-pagination:widow-orphan;
+ font-size:10.0pt;
+ font-family:"Arial","sans-serif";
+ mso-fareast-font-family:"Times New Roman";
+ mso-fareast-theme-font:minor-fareast;
+ color:black;}
+p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
+ {mso-style-noshow:yes;
+ mso-style-priority:99;
+ mso-style-link:"Balloon Text Char";
+ margin:0in;
+ margin-bottom:.0001pt;
+ mso-pagination:widow-orphan;
+ font-size:8.0pt;
+ font-family:"Tahoma","sans-serif";
+ mso-fareast-font-family:"Times New Roman";
+ mso-fareast-theme-font:minor-fareast;
+ color:windowtext;}
+span.Heading1Char
+ {mso-style-name:"Heading 1 Char";
+ mso-style-priority:9;
+ mso-style-unhide:no;
+ mso-style-locked:yes;
+ mso-style-link:"Heading 1";
+ mso-ansi-font-size:14.0pt;
+ mso-bidi-font-size:14.0pt;
+ font-family:"Cambria","serif";
+ mso-ascii-font-family:Cambria;
+ mso-ascii-theme-font:major-latin;
+ mso-fareast-font-family:"Times New Roman";
+ mso-fareast-theme-font:major-fareast;
+ mso-hansi-font-family:Cambria;
+ mso-hansi-theme-font:major-latin;
+ mso-bidi-font-family:"Times New Roman";
+ mso-bidi-theme-font:major-bidi;
+ color:#365F91;
+ mso-themecolor:accent1;
+ mso-themeshade:191;
+ font-weight:bold;}
+span.Heading2Char
+ {mso-style-name:"Heading 2 Char";
+ mso-style-noshow:yes;
+ mso-style-priority:9;
+ mso-style-unhide:no;
+ mso-style-locked:yes;
+ mso-style-link:"Heading 2";
+ mso-ansi-font-size:13.0pt;
+ mso-bidi-font-size:13.0pt;
+ font-family:"Cambria","serif";
+ mso-ascii-font-family:Cambria;
+ mso-ascii-theme-font:major-latin;
+ mso-fareast-font-family:"Times New Roman";
+ mso-fareast-theme-font:major-fareast;
+ mso-hansi-font-family:Cambria;
+ mso-hansi-theme-font:major-latin;
+ mso-bidi-font-family:"Times New Roman";
+ mso-bidi-theme-font:major-bidi;
+ color:#4F81BD;
+ mso-themecolor:accent1;
+ font-weight:bold;}
+span.BalloonTextChar
+ {mso-style-name:"Balloon Text Char";
+ mso-style-noshow:yes;
+ mso-style-priority:99;
+ mso-style-unhide:no;
+ mso-style-locked:yes;
+ mso-style-link:"Balloon Text";
+ mso-ansi-font-size:8.0pt;
+ mso-bidi-font-size:8.0pt;
+ font-family:"Tahoma","sans-serif";
+ mso-ascii-font-family:Tahoma;
+ mso-fareast-font-family:"Times New Roman";
+ mso-fareast-theme-font:minor-fareast;
+ mso-hansi-font-family:Tahoma;
+ mso-bidi-font-family:Tahoma;}
+.MsoChpDefault
+ {mso-style-type:export-only;
+ mso-default-props:yes;
+ font-size:10.0pt;
+ mso-ansi-font-size:10.0pt;
+ mso-bidi-font-size:10.0pt;}
+@page Section1
+ {size:8.5in 11.0in;
+ margin:1.0in 1.0in 1.0in 1.0in;
+ mso-header-margin:.5in;
+ mso-footer-margin:.5in;
+ mso-paper-source:0;}
+div.Section1
+ {page:Section1;}
+-->
+</style>
+<!--[if gte mso 10]>
+<style>
+ /* Style Definitions */
+ table.MsoNormalTable
+ {mso-style-name:"Table Normal";
+ mso-tstyle-rowband-size:0;
+ mso-tstyle-colband-size:0;
+ mso-style-noshow:yes;
+ mso-style-priority:99;
+ mso-style-qformat:yes;
+ mso-style-parent:"";
+ mso-padding-alt:0in 5.4pt 0in 5.4pt;
+ mso-para-margin:0in;
+ mso-para-margin-bottom:.0001pt;
+ mso-pagination:widow-orphan;
+ font-size:10.0pt;
+ font-family:"Times New Roman","serif";}
+</style>
+<![endif]--><!--[if gte mso 9]><xml>
+ <o:shapedefaults v:ext="edit" spidmax="2050"/>
+</xml><![endif]--><!--[if gte mso 9]><xml>
+ <o:shapelayout v:ext="edit">
+ <o:idmap v:ext="edit" data="1"/>
+ </o:shapelayout></xml><![endif]-->
+</head>
+
+<body bgcolor=white background="../images/bkground.gif" lang=EN-US link=blue
+vlink=purple style='tab-interval:.5in'>
+
+<div class=Section1>
+
+<h2><span style='mso-fareast-font-family:"Times New Roman"'>Options Menu<o:p></o:p></span></h2>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span
+style='font-family:Symbol;mso-no-proof:yes'><img width=11 height=11
+id="_x0000_i1033" src="../images/mame321.gif" alt="*"></span><span
+style='font-size:7.0pt;font-family:"Times New Roman","serif"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span><b>Game List Font</b> :&nbsp; Selecting this option from the options
+menu will change the font used for the GUI display.</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span
+style='font-family:Symbol;mso-no-proof:yes'><img width=11 height=11
+id="_x0000_i1032" src="../images/mame321.gif" alt="*"></span><span
+style='font-size:7.0pt;font-family:"Times New Roman","serif"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span><b>Game List Clone Color</b> :&nbsp; Selecting this option from the options
+menu will change the font color used for the GUI display of clones in the
+'Grouped' game list view.</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span
+style='font-family:Symbol;mso-no-proof:yes'><img width=11 height=11
+id="_x0000_i1031" src="../images/mame321.gif" alt="*"></span><span
+style='font-size:7.0pt;font-family:"Times New Roman","serif"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span><b>Directories </b>: Selecting this option from the options menu will
+allow for choosing a different directory for a number of MameUI support files
+including: ROMs, samples, config, high scores, snapshots, input files, state,
+artwork, memory card, flyers, cabinets, marquees, and nvram.&nbsp; Normally these
+directories are created under the MameUI executable’s directory.</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span
+style='font-family:Symbol;mso-no-proof:yes'><img width=11 height=11
+id="_x0000_i1030" src="../images/mame321.gif" alt="*"></span><span
+style='font-size:7.0pt;font-family:"Times New Roman","serif"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span><b><a href="mameui_properties.htm">Default Options</a> </b>: Selecting
+this option from the options menu will allow for the global customization of
+all games in the game list.&nbsp; These settings are overridden by altering the
+individual game settings using the File • Properties menu item.</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span
+style='font-family:Symbol;mso-no-proof:yes'><img border=0 width=11 height=11
+id="_x0000_i1029" src="../images/mame321.gif" alt="*"></span><span
+style='font-size:7.0pt;font-family:"Times New Roman","serif"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span><b>Reset to Default </b>: Selecting this option from the options menu
+will allow for resetting various parts of MameUI to their defaults.&nbsp;
+MameUI will prompt before resetting, giving the option to cancel. </p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span
+style='font-family:Symbol;mso-no-proof:yes'><img border=0 width=11 height=11
+id="_x0000_i1028" src="../images/mame321.gif" alt="*"></span><span
+style='font-size:7.0pt;font-family:"Times New Roman","serif"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span><b>Interface Options </b>: Selecting this option from the options menu
+will allow: <br>
+Toggling on or off the search for new games on start.<br>
+Toggling on or off the ability to use a game pad to navigate the GUI (see mameui32.ini
+for examples).<br>
+Toggling on or off the ability to use a keyboard encoder solution to navigate
+the GUI and launch games [helpful in Mame cabs] (see mameui32.ini for
+examples).<br>
+Selecting a random image from the \bkground directory on startup.<br>
+Toggling on or off MameUI broadcasting the selected game programmatically to
+other listening applications like message clients, or an LED message bar, <br>
+The cursor to be hidden [helpful in Mame cabs].<br>
+Selecting inheritable filters, this allows parent folders to set the filters
+for their children sub-folders.<br>
+No offset for clones missing parent in view toggle will cause clones not be
+indented if the parent game is not present due to current folder view, missing
+ROMs, or filtering.<br>
+Allow history.dat file to be displayed under any, all, or none of the art
+views.<br>
+Choosing the screenshot [<strong>F12</strong>] naming convention.<br>
+Globally clear the play time and number of times played counters.<br>
+Stretch screenshot to larger size, this will enlarge the items in the art pane
+scaling them upwards depending on the size of the GUI.<br>
+Screenshot border size and color creates a user defined border around the art
+work in the art pane on the right, set to zero to remove borders completely.</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'>&nbsp;</p>
+
+<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>
+
+<p class=MsoNormal><span style='mso-no-proof:yes'><img border=0 width=500
+height=347 id="_x0000_i1027" src="../images/int.jpg"></span></p>
+
+</blockquote>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'>&nbsp;</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span
+style='font-family:Symbol;mso-no-proof:yes'><img border=0 width=11 height=11
+id="_x0000_i1026" src="../images/mame321.gif" alt="*"></span><span
+style='font-size:7.0pt;font-family:"Times New Roman","serif"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span><b>Background Image </b>: Selecting this option from the options menu
+allows the choosing of a background image from the \bkground directory.&nbsp;
+This image will be displayed beneath the three window panes in the GUI. </p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'>&nbsp;</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><!--webbot bot="Timestamp" s-type="EDITED" s-format="%Y-%m-%d %I:%M %p %Z" startspan -->2008-07-16 12:04 AM -0700<!--webbot bot="Timestamp" endspan i-checksum="38077" --><span
+style='font-size:7.5pt'>/ john iv</span></p>
+
+</div>
+
+</body>
+
+</html>
diff --git a/docs/release/src/osd/winui/help/html/mameui_overview.htm b/docs/release/src/osd/winui/help/html/mameui_overview.htm
new file mode 100644
index 00000000000..15ff74c884c
--- /dev/null
+++ b/docs/release/src/osd/winui/help/html/mameui_overview.htm
@@ -0,0 +1,529 @@
+<html xmlns:v="urn:schemas-microsoft-com:vml"
+xmlns:o="urn:schemas-microsoft-com:office:office"
+xmlns:w="urn:schemas-microsoft-com:office:word"
+xmlns:m="http://schemas.microsoft.com/office/2004/12/omml"
+xmlns="http://www.w3.org/TR/REC-html40">
+
+<head>
+<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
+<meta name=ProgId content=Word.Document>
+<meta name=Generator content="Microsoft Word 12">
+<meta name=Originator content="Microsoft Word 12">
+<link rel=File-List href="mameui_overview_files/filelist.xml">
+<link rel=Edit-Time-Data href="mameui_overview_files/editdata.mso">
+<!--[if !mso]>
+<style>
+v\:* {behavior:url(#default#VML);}
+o\:* {behavior:url(#default#VML);}
+w\:* {behavior:url(#default#VML);}
+.shape {behavior:url(#default#VML);}
+</style>
+<![endif]-->
+<title>MameUI Overview &amp; History</title>
+<!--[if gte mso 9]><xml>
+ <o:DocumentProperties>
+ <o:Author>john4</o:Author>
+ <o:LastAuthor>john4</o:LastAuthor>
+ <o:Revision>2</o:Revision>
+ <o:TotalTime>1</o:TotalTime>
+ <o:Created>2008-04-11T22:44:00Z</o:Created>
+ <o:LastSaved>2008-04-11T22:45:00Z</o:LastSaved>
+ <o:Pages>1</o:Pages>
+ <o:Words>413</o:Words>
+ <o:Characters>2358</o:Characters>
+ <o:Lines>19</o:Lines>
+ <o:Paragraphs>5</o:Paragraphs>
+ <o:CharactersWithSpaces>2766</o:CharactersWithSpaces>
+ <o:Version>12.00</o:Version>
+ </o:DocumentProperties>
+</xml><![endif]-->
+<link rel=themeData href="mameui_overview_files/themedata.thmx">
+<link rel=colorSchemeMapping href="mameui_overview_files/colorschememapping.xml">
+<!--[if gte mso 9]><xml>
+ <w:WordDocument>
+ <w:SpellingState>Clean</w:SpellingState>
+ <w:TrackMoves>false</w:TrackMoves>
+ <w:TrackFormatting/>
+ <w:ValidateAgainstSchemas/>
+ <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
+ <w:IgnoreMixedContent>false</w:IgnoreMixedContent>
+ <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
+ <w:DoNotPromoteQF/>
+ <w:LidThemeOther>EN-US</w:LidThemeOther>
+ <w:LidThemeAsian>X-NONE</w:LidThemeAsian>
+ <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
+ <w:Compatibility>
+ <w:BreakWrappedTables/>
+ <w:SnapToGridInCell/>
+ <w:WrapTextWithPunct/>
+ <w:UseAsianBreakRules/>
+ <w:DontGrowAutofit/>
+ <w:SplitPgBreakAndParaMark/>
+ <w:DontVertAlignCellWithSp/>
+ <w:DontBreakConstrainedForcedTables/>
+ <w:DontVertAlignInTxbx/>
+ <w:Word11KerningPairs/>
+ <w:CachedColBalance/>
+ </w:Compatibility>
+ <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
+ <m:mathPr>
+ <m:mathFont m:val="Cambria Math"/>
+ <m:brkBin m:val="before"/>
+ <m:brkBinSub m:val="&#45;-"/>
+ <m:smallFrac m:val="off"/>
+ <m:dispDef/>
+ <m:lMargin m:val="0"/>
+ <m:rMargin m:val="0"/>
+ <m:defJc m:val="centerGroup"/>
+ <m:wrapIndent m:val="1440"/>
+ <m:intLim m:val="subSup"/>
+ <m:naryLim m:val="undOvr"/>
+ </m:mathPr></w:WordDocument>
+</xml><![endif]--><!--[if gte mso 9]><xml>
+ <w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
+ DefSemiHidden="true" DefQFormat="false" DefPriority="99"
+ LatentStyleCount="267">
+ <w:LsdException Locked="false" Priority="0" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
+ <w:LsdException Locked="false" Priority="9" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
+ <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
+ <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
+ <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
+ <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
+ <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
+ <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
+ <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
+ <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 1"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 2"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 3"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 4"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 5"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 6"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 7"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 8"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 9"/>
+ <w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
+ <w:LsdException Locked="false" Priority="10" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Title"/>
+ <w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
+ <w:LsdException Locked="false" Priority="11" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
+ <w:LsdException Locked="false" Priority="22" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
+ <w:LsdException Locked="false" Priority="20" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
+ <w:LsdException Locked="false" Priority="59" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Table Grid"/>
+ <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
+ <w:LsdException Locked="false" Priority="1" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
+ <w:LsdException Locked="false" Priority="60" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Shading"/>
+ <w:LsdException Locked="false" Priority="61" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light List"/>
+ <w:LsdException Locked="false" Priority="62" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Grid"/>
+ <w:LsdException Locked="false" Priority="63" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 1"/>
+ <w:LsdException Locked="false" Priority="64" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 2"/>
+ <w:LsdException Locked="false" Priority="65" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 1"/>
+ <w:LsdException Locked="false" Priority="66" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 2"/>
+ <w:LsdException Locked="false" Priority="67" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 1"/>
+ <w:LsdException Locked="false" Priority="68" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 2"/>
+ <w:LsdException Locked="false" Priority="69" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 3"/>
+ <w:LsdException Locked="false" Priority="70" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Dark List"/>
+ <w:LsdException Locked="false" Priority="71" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Shading"/>
+ <w:LsdException Locked="false" Priority="72" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful List"/>
+ <w:LsdException Locked="false" Priority="73" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Grid"/>
+ <w:LsdException Locked="false" Priority="60" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
+ <w:LsdException Locked="false" Priority="61" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light List Accent 1"/>
+ <w:LsdException Locked="false" Priority="62" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
+ <w:LsdException Locked="false" Priority="63" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
+ <w:LsdException Locked="false" Priority="64" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
+ <w:LsdException Locked="false" Priority="65" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
+ <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
+ <w:LsdException Locked="false" Priority="34" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
+ <w:LsdException Locked="false" Priority="29" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
+ <w:LsdException Locked="false" Priority="30" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
+ <w:LsdException Locked="false" Priority="66" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
+ <w:LsdException Locked="false" Priority="67" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
+ <w:LsdException Locked="false" Priority="68" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
+ <w:LsdException Locked="false" Priority="69" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
+ <w:LsdException Locked="false" Priority="70" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Dark List Accent 1"/>
+ <w:LsdException Locked="false" Priority="71" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
+ <w:LsdException Locked="false" Priority="72" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
+ <w:LsdException Locked="false" Priority="73" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
+ <w:LsdException Locked="false" Priority="60" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
+ <w:LsdException Locked="false" Priority="61" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light List Accent 2"/>
+ <w:LsdException Locked="false" Priority="62" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
+ <w:LsdException Locked="false" Priority="63" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
+ <w:LsdException Locked="false" Priority="64" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
+ <w:LsdException Locked="false" Priority="65" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
+ <w:LsdException Locked="false" Priority="66" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
+ <w:LsdException Locked="false" Priority="67" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
+ <w:LsdException Locked="false" Priority="68" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
+ <w:LsdException Locked="false" Priority="69" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
+ <w:LsdException Locked="false" Priority="70" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Dark List Accent 2"/>
+ <w:LsdException Locked="false" Priority="71" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
+ <w:LsdException Locked="false" Priority="72" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
+ <w:LsdException Locked="false" Priority="73" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
+ <w:LsdException Locked="false" Priority="60" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
+ <w:LsdException Locked="false" Priority="61" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light List Accent 3"/>
+ <w:LsdException Locked="false" Priority="62" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
+ <w:LsdException Locked="false" Priority="63" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
+ <w:LsdException Locked="false" Priority="64" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
+ <w:LsdException Locked="false" Priority="65" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
+ <w:LsdException Locked="false" Priority="66" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
+ <w:LsdException Locked="false" Priority="67" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
+ <w:LsdException Locked="false" Priority="68" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
+ <w:LsdException Locked="false" Priority="69" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
+ <w:LsdException Locked="false" Priority="70" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Dark List Accent 3"/>
+ <w:LsdException Locked="false" Priority="71" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
+ <w:LsdException Locked="false" Priority="72" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
+ <w:LsdException Locked="false" Priority="73" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
+ <w:LsdException Locked="false" Priority="60" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
+ <w:LsdException Locked="false" Priority="61" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light List Accent 4"/>
+ <w:LsdException Locked="false" Priority="62" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
+ <w:LsdException Locked="false" Priority="63" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
+ <w:LsdException Locked="false" Priority="64" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
+ <w:LsdException Locked="false" Priority="65" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
+ <w:LsdException Locked="false" Priority="66" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
+ <w:LsdException Locked="false" Priority="67" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
+ <w:LsdException Locked="false" Priority="68" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
+ <w:LsdException Locked="false" Priority="69" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
+ <w:LsdException Locked="false" Priority="70" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Dark List Accent 4"/>
+ <w:LsdException Locked="false" Priority="71" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
+ <w:LsdException Locked="false" Priority="72" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
+ <w:LsdException Locked="false" Priority="73" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
+ <w:LsdException Locked="false" Priority="60" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
+ <w:LsdException Locked="false" Priority="61" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light List Accent 5"/>
+ <w:LsdException Locked="false" Priority="62" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
+ <w:LsdException Locked="false" Priority="63" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
+ <w:LsdException Locked="false" Priority="64" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
+ <w:LsdException Locked="false" Priority="65" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
+ <w:LsdException Locked="false" Priority="66" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
+ <w:LsdException Locked="false" Priority="67" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
+ <w:LsdException Locked="false" Priority="68" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
+ <w:LsdException Locked="false" Priority="69" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
+ <w:LsdException Locked="false" Priority="70" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Dark List Accent 5"/>
+ <w:LsdException Locked="false" Priority="71" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
+ <w:LsdException Locked="false" Priority="72" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
+ <w:LsdException Locked="false" Priority="73" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
+ <w:LsdException Locked="false" Priority="60" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
+ <w:LsdException Locked="false" Priority="61" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light List Accent 6"/>
+ <w:LsdException Locked="false" Priority="62" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
+ <w:LsdException Locked="false" Priority="63" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
+ <w:LsdException Locked="false" Priority="64" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
+ <w:LsdException Locked="false" Priority="65" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
+ <w:LsdException Locked="false" Priority="66" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
+ <w:LsdException Locked="false" Priority="67" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
+ <w:LsdException Locked="false" Priority="68" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
+ <w:LsdException Locked="false" Priority="69" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
+ <w:LsdException Locked="false" Priority="70" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Dark List Accent 6"/>
+ <w:LsdException Locked="false" Priority="71" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
+ <w:LsdException Locked="false" Priority="72" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
+ <w:LsdException Locked="false" Priority="73" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
+ <w:LsdException Locked="false" Priority="19" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
+ <w:LsdException Locked="false" Priority="21" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
+ <w:LsdException Locked="false" Priority="31" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
+ <w:LsdException Locked="false" Priority="32" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
+ <w:LsdException Locked="false" Priority="33" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
+ <w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
+ <w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
+ </w:LatentStyles>
+</xml><![endif]-->
+<style>
+<!--
+ /* Font Definitions */
+ @font-face
+ {font-family:"Cambria Math";
+ panose-1:2 4 5 3 5 4 6 3 2 4;
+ mso-font-charset:1;
+ mso-generic-font-family:roman;
+ mso-font-format:other;
+ mso-font-pitch:variable;
+ mso-font-signature:0 0 0 0 0 0;}
+ /* Style Definitions */
+ p.MsoNormal, li.MsoNormal, div.MsoNormal
+ {mso-style-unhide:no;
+ mso-style-qformat:yes;
+ mso-style-parent:"";
+ margin:0in;
+ margin-bottom:.0001pt;
+ mso-pagination:widow-orphan;
+ font-size:12.0pt;
+ font-family:"Times New Roman","serif";
+ mso-fareast-font-family:"Times New Roman";
+ mso-fareast-theme-font:minor-fareast;
+ color:windowtext;}
+h1
+ {mso-style-priority:9;
+ mso-style-unhide:no;
+ mso-style-qformat:yes;
+ mso-style-link:"Heading 1 Char";
+ margin-top:12.0pt;
+ margin-right:0in;
+ margin-bottom:3.0pt;
+ margin-left:0in;
+ mso-pagination:widow-orphan;
+ page-break-after:avoid;
+ mso-outline-level:1;
+ font-size:16.0pt;
+ font-family:"Arial","sans-serif";
+ mso-fareast-font-family:"Times New Roman";
+ mso-fareast-theme-font:minor-fareast;
+ color:windowtext;
+ font-weight:bold;}
+p
+ {mso-style-noshow:yes;
+ mso-style-priority:99;
+ mso-margin-top-alt:auto;
+ margin-right:0in;
+ mso-margin-bottom-alt:auto;
+ margin-left:0in;
+ mso-pagination:widow-orphan;
+ font-size:10.0pt;
+ font-family:"Arial","sans-serif";
+ mso-fareast-font-family:"Times New Roman";
+ mso-fareast-theme-font:minor-fareast;
+ color:black;}
+span.Heading1Char
+ {mso-style-name:"Heading 1 Char";
+ mso-style-priority:9;
+ mso-style-unhide:no;
+ mso-style-locked:yes;
+ mso-style-link:"Heading 1";
+ mso-ansi-font-size:14.0pt;
+ mso-bidi-font-size:14.0pt;
+ font-family:"Cambria","serif";
+ mso-ascii-font-family:Cambria;
+ mso-ascii-theme-font:major-latin;
+ mso-fareast-font-family:"Times New Roman";
+ mso-fareast-theme-font:major-fareast;
+ mso-hansi-font-family:Cambria;
+ mso-hansi-theme-font:major-latin;
+ mso-bidi-font-family:"Times New Roman";
+ mso-bidi-theme-font:major-bidi;
+ color:#365F91;
+ mso-themecolor:accent1;
+ mso-themeshade:191;
+ font-weight:bold;}
+.MsoChpDefault
+ {mso-style-type:export-only;
+ mso-default-props:yes;
+ font-size:10.0pt;
+ mso-ansi-font-size:10.0pt;
+ mso-bidi-font-size:10.0pt;}
+@page Section1
+ {size:8.5in 11.0in;
+ margin:1.0in 1.0in 1.0in 1.0in;
+ mso-header-margin:.5in;
+ mso-footer-margin:.5in;
+ mso-paper-source:0;}
+div.Section1
+ {page:Section1;}
+-->
+</style>
+<!--[if gte mso 10]>
+<style>
+ /* Style Definitions */
+ table.MsoNormalTable
+ {mso-style-name:"Table Normal";
+ mso-tstyle-rowband-size:0;
+ mso-tstyle-colband-size:0;
+ mso-style-noshow:yes;
+ mso-style-priority:99;
+ mso-style-qformat:yes;
+ mso-style-parent:"";
+ mso-padding-alt:0in 5.4pt 0in 5.4pt;
+ mso-para-margin:0in;
+ mso-para-margin-bottom:.0001pt;
+ mso-pagination:widow-orphan;
+ font-size:10.0pt;
+ font-family:"Times New Roman","serif";}
+</style>
+<![endif]--><!--[if gte mso 9]><xml>
+ <o:shapedefaults v:ext="edit" spidmax="2050"/>
+</xml><![endif]--><!--[if gte mso 9]><xml>
+ <o:shapelayout v:ext="edit">
+ <o:idmap v:ext="edit" data="1"/>
+ </o:shapelayout></xml><![endif]-->
+</head>
+
+<body bgcolor=white background="../images/bkground.gif" lang=EN-US link=blue
+vlink=purple style='tab-interval:.5in'>
+
+<div class=Section1>
+
+<h1><span style='mso-fareast-font-family:"Times New Roman"'>MameUI Overview
+&amp; History<o:p></o:p></span></h1>
+
+<p style='margin-top:0in;margin-right:0in;margin-bottom:3.75pt;margin-left:
+0in'>MameUI [previously Mame32] is an emulator.&nbsp; Simply put, it allows a
+PC to mimic the internal hardware of a large number of stand-alone arcade
+machines from 1975 to 2003+.&nbsp; Combined with the original ROMs from these
+arcade machines, MameUI will display and play the games on a PC.&nbsp; The
+software thinks it’s still running on its original box.&nbsp; MameUI is the GUI
+version of Mame™, the M.ultiple A.rcade M.achine E.mulator.&nbsp; It has an
+attractive, elegant, graphical interface which allows the user to forego having
+to type command line parameters, although it can still be passed these
+arguments.&nbsp; For many, it’s easier to click the icon of the game.</p>
+
+<p style='margin-top:0in;margin-right:0in;margin-bottom:3.75pt;margin-left:
+0in'><b>1997.02.05</b> - In the beginning, Italian programmer and arcade
+preservationist, Nicola Salmoria, combined his individual game emulators into
+the DOS based multi-game emulator, Mame.&nbsp; It was released Feb. 05,
+1997.&nbsp; Since the source was also released, numerous people contributed new
+drivers to add support for more and more games.&nbsp; The number of contributors
+grew into the hundreds and has continued to increase over the years.</p>
+
+<p style='margin-top:0in;margin-right:0in;margin-bottom:3.75pt;margin-left:
+0in'><b>1997.08</b> - Mame32 was the first port of Mame to the Microsoft
+Windows platform.&nbsp; It originally came out in August of 1997, adding the
+GUI and a considerable amount of new code to transition to Win32.&nbsp; The
+original Mame32 was authored by Chris Kirmse and later integrated Michael
+Soderstrom's Win32 command-line port of Mame.&nbsp; Michael then coordinated,
+maintained the source, and produced the releases.&nbsp; Mike Haaland and John
+Hardy IV joined the project in late 1997.&nbsp; Mike would wholly revamp the
+user interface to its current state and continue collaborating on core
+development. John provided testing, WIP updates, artwork, and served as the
+external point of contact for the team.&nbsp; Mame32 releases followed the Mame
+DOS releases by a few days to a few weeks over the next four years.</p>
+
+<p style='margin-top:0in;margin-right:0in;margin-bottom:3.75pt;margin-left:
+0in'><b>2001.05.24</b> - With the inexorable phasing out of DOS, the authors of
+the DOS based Mame ported it to the Microsoft Windows platform as a command
+line application.&nbsp; Evolutionally similar to MameDOS, it is run by typing
+in arguments from a command prompt, and has no GUI. [many people try to double
+click it, which opens up the command line window briefly, displays a message,
+then closes].&nbsp;</p>
+
+<p style='margin-top:0in;margin-right:0in;margin-bottom:3.75pt;margin-left:
+0in'><b>2001.07.24</b> - Mame32 was re-positioned, with the familiar GUI
+grafted onto the new Mame Windows engine.&nbsp; Mame32 is currently maintained
+by Kirmse, Haaland, and Hardy and is now released by John IV shortly after Mame
+on the <b><a href="http://mameui.info/" target="_blank">MameUI</a></b>
+site.</p>
+
+<p style='margin-top:0in;margin-right:0in;margin-bottom:3.75pt;margin-left:
+0in'><strong><span style='font-family:"Arial","sans-serif"'>2007.11.11</span></strong>
+- Mame32 was rebranded as MameUI to avoid confusion of the 64bit build of the
+core version.&nbsp; It is compiled as MameUI32 and MameUI64 for the different
+target platforms.</p>
+
+<p style='margin-top:0in;margin-right:0in;margin-bottom:3.75pt;margin-left:
+0in'>&nbsp;</p>
+
+<p style='margin-top:0in;margin-right:0in;margin-bottom:3.75pt;margin-left:
+0in'><!--webbot bot="Timestamp" s-type="EDITED" s-format="%Y-%m-%d %I:%M %p %Z" startspan -->2007-11-12 01:57 PM -0800<!--webbot bot="Timestamp" endspan i-checksum="38483" --><span
+style='font-size:7.5pt'>/ john iv</span></p>
+
+</div>
+
+</body>
+
+</html>
diff --git a/docs/release/src/osd/winui/help/html/mameui_playing.htm b/docs/release/src/osd/winui/help/html/mameui_playing.htm
new file mode 100644
index 00000000000..8444676b99b
--- /dev/null
+++ b/docs/release/src/osd/winui/help/html/mameui_playing.htm
@@ -0,0 +1,136 @@
+<html>
+
+<head>
+<meta name="GENERATOR" content="Microsoft FrontPage 12.0">
+<meta name="ProgId" content="FrontPage.Editor.Document">
+<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
+<title>MameUI Playing a Game &amp; Internal Controls</title>
+<style>
+<!--
+p
+ {margin-right:0in;
+ margin-left:0in;
+ font-size:10.0pt;
+ font-family:Arial;
+ color:black}
+h1
+ {margin-top:12.0pt;
+ margin-right:0in;
+ margin-bottom:3.0pt;
+ margin-left:0in;
+ page-break-after:avoid;
+ font-size:16.0pt;
+ font-family:Arial;
+ color:windowtext;
+ font-weight:bold}
+h2
+ {margin-top:12.0pt;
+ margin-right:0in;
+ margin-bottom:3.0pt;
+ margin-left:0in;
+ page-break-after:avoid;
+ font-size:14.0pt;
+ font-family:Arial;
+ font-style:italic}
+ p.MsoNormal
+ {mso-style-parent:"";
+ margin-bottom:.0001pt;
+ font-size:10.0pt;
+ font-family:Arial;
+ margin-left:0in; margin-right:0in; margin-top:0in}
+-->
+</style>
+</head>
+
+<body background="../images/bkground.gif">
+
+<h2>Playing a Game &amp; Internal Controls</h2>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol; color: windowtext">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7.0pt; font-family: Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span>To activate mouse control or attached gamepads to use within
+games, it is necessary to toggle those options on in the Options • Default
+Options • Controllers tab.</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span>Once a game has been selected and double-clicked, MameUI will
+produce two information screens and then it will run the game.&nbsp; Since
+MameUI is
+emulating the original hardware, the software thinks it’s still in an arcade and
+is starting up for the first time in the morning.&nbsp; Initial diagnostic screens
+are run through, as well as possibly some accounting information presented to
+the arcade owner.</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span>The game should now be running its demo/attract mode.&nbsp; Insert a
+coin with the [<b>5</b>] key on the keyboard, the mappings for coin inserts are:
+player 1 [<b>5</b>], player 2 [<b>6</b>], player 3 [<b>7</b>], player 4 [<b>8</b>].&nbsp;
+Now that a coin has been inserted, start the game with the [<b>1</b>] key on the
+keyboard.&nbsp; Game start mappings are player 1 [<b>1</b>], player 2 [<b>2</b>],
+player 3 [<b>3</b>], player 4 [<b>4</b>].</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span>MameUI’s default control scheme is to use the inverted T arrow
+keys on the keyboard for directional controls, and the left [<b>CTRL</b>] key as the
+primary action button.</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span>While in a game within MameUI, the internal configuration menu
+system can be activated by pressing the [<b>TAB</b>] key.&nbsp; This will bring up
+the control options.&nbsp; These options allow remapping MameUI controls to whatever
+keyboard keys or gamepad buttons are desired.&nbsp; The Input (general) area controls the global settings, and
+the Input (this game) are the controls for the game selected.&nbsp; To change the
+mapping, select the control to change by arrowing down to it, hit the [<b>ENTER</b>]
+key and then the new desired control.&nbsp; Hit the [<b>ESC</b>] key to exit the [<b>TAB</b>]
+menu back to the game. Note: If there are multiple mouse devices attached to the
+system they can be individually configured by selecting their control in the [<strong>TAB</strong>]
+menu and moving the mouse or trackball left or right, up or down to map it.</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span>Other keys of interest while playing a game are : </p>
+<p class="MsoNormal" style="margin-left:.75in">[<b>TAB</b>] key to bring up the
+internal menu system.</p>
+<p class="MsoNormal" style="margin-left:.75in">[<b>~ TILDE</b>] the onscreen
+display.</p>
+<p class="MsoNormal" style="margin-left:.75in">[<b>Shift-p</b>] advance paused
+screen one frame at a time<br>
+[<b>p</b>] for the pause button.</p>
+<p class="MsoNormal" style="margin-left:.75in">[<b>F3</b>] resets the game.</p>
+<p class="MsoNormal" style="margin-left:.75in">[<b>F4</b>] displays the tile
+manager and the game’s
+color palette.</p>
+<p class="MsoNormal" style="margin-left:.75in">[<b>Shift-F7</b>] save current
+game state [a-z, 1-0] (See save state folder view for supported games)</p>
+<p class="MsoNormal" style="margin-left:.75in">[<b>F7</b>] load game state [a-z,
+1-0] (See save state folder view on left for supported games)</p>
+<p class="MsoNormal" style="margin-left:.75in">[<b>F9</b>] changes the frameskip
+on the fly.</p>
+<p class="MsoNormal" style="margin-left:.75in">[<b>F10</b>] toggles throttling.</p>
+<p class="MsoNormal" style="margin-left:.75in">[<b>F11</b>] toggles the speed
+display
+display.<br>
+[<b>Shift-F12</b>] toggles MNG recording, once starts, second finishes.</p>
+<p class="MsoNormal" style="margin-left:.75in">[<b>F12</b>] takes a *.png
+snapshot of the game and places it in the \MameUI\snap directory.</p>
+<p class="MsoNormal" style="margin-left:.75in">[<b>ESC</b>] exits from the game
+back to the MameUI GUI.</p>
+
+<p class="MsoNormal" style="margin-left:.75in">[<b>Left-Alt + Enter</b>] toggle
+from fullscreen mode to windowed mode.</p>
+<p class="MsoNormal" style="margin-left:.75in">[<strong>Insert</strong>] fast
+forwards with full unthrottle and highest frameskip, convenient for speeding
+through slow start-up of certain games.</p>
+
+<p class="MsoNormal" style="margin-left: .75in">&nbsp;</p>
+<p class="MsoNormal" style="margin-left: .75in"><font size="1">
+<!--webbot bot="Timestamp" s-type="EDITED" s-format="%Y-%m-%d %I:%M %p %Z" startspan -->2007-11-10 01:41 AM -0800<!--webbot bot="Timestamp" endspan i-checksum="37617" -->
+/ john iv</font></p>
+
+</body>
+
+</html> \ No newline at end of file
diff --git a/docs/release/src/osd/winui/help/html/mameui_properties.htm b/docs/release/src/osd/winui/help/html/mameui_properties.htm
new file mode 100644
index 00000000000..7601b7e5b05
--- /dev/null
+++ b/docs/release/src/osd/winui/help/html/mameui_properties.htm
@@ -0,0 +1,1034 @@
+<html xmlns:v="urn:schemas-microsoft-com:vml"
+xmlns:o="urn:schemas-microsoft-com:office:office"
+xmlns:w="urn:schemas-microsoft-com:office:word"
+xmlns:m="http://schemas.microsoft.com/office/2004/12/omml"
+xmlns="http://www.w3.org/TR/REC-html40">
+
+<head>
+<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
+<meta name=ProgId content=Word.Document>
+<meta name=Generator content="Microsoft Word 12">
+<meta name=Originator content="Microsoft Word 12">
+<link rel=File-List href="mameui_properties_files/filelist.xml">
+<link rel=Edit-Time-Data href="mameui_properties_files/editdata.mso">
+<!--[if !mso]>
+<style>
+v\:* {behavior:url(#default#VML);}
+o\:* {behavior:url(#default#VML);}
+w\:* {behavior:url(#default#VML);}
+.shape {behavior:url(#default#VML);}
+</style>
+<![endif]-->
+<title>MameUI Properties</title>
+<!--[if gte mso 9]><xml>
+ <o:DocumentProperties>
+ <o:Author>john4</o:Author>
+ <o:LastAuthor>john4</o:LastAuthor>
+ <o:Revision>2</o:Revision>
+ <o:TotalTime>3</o:TotalTime>
+ <o:Created>2008-04-11T22:41:00Z</o:Created>
+ <o:LastSaved>2008-04-11T22:44:00Z</o:LastSaved>
+ <o:Pages>2</o:Pages>
+ <o:Words>3044</o:Words>
+ <o:Characters>17351</o:Characters>
+ <o:Lines>144</o:Lines>
+ <o:Paragraphs>40</o:Paragraphs>
+ <o:CharactersWithSpaces>20355</o:CharactersWithSpaces>
+ <o:Version>12.00</o:Version>
+ </o:DocumentProperties>
+</xml><![endif]-->
+<link rel=themeData href="mameui_properties_files/themedata.thmx">
+<link rel=colorSchemeMapping
+href="mameui_properties_files/colorschememapping.xml">
+<!--[if gte mso 9]><xml>
+ <w:WordDocument>
+ <w:TrackMoves>false</w:TrackMoves>
+ <w:TrackFormatting/>
+ <w:ValidateAgainstSchemas/>
+ <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
+ <w:IgnoreMixedContent>false</w:IgnoreMixedContent>
+ <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
+ <w:DoNotPromoteQF/>
+ <w:LidThemeOther>EN-US</w:LidThemeOther>
+ <w:LidThemeAsian>X-NONE</w:LidThemeAsian>
+ <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
+ <w:Compatibility>
+ <w:BreakWrappedTables/>
+ <w:SnapToGridInCell/>
+ <w:WrapTextWithPunct/>
+ <w:UseAsianBreakRules/>
+ <w:DontGrowAutofit/>
+ <w:SplitPgBreakAndParaMark/>
+ <w:DontVertAlignCellWithSp/>
+ <w:DontBreakConstrainedForcedTables/>
+ <w:DontVertAlignInTxbx/>
+ <w:Word11KerningPairs/>
+ <w:CachedColBalance/>
+ </w:Compatibility>
+ <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
+ <m:mathPr>
+ <m:mathFont m:val="Cambria Math"/>
+ <m:brkBin m:val="before"/>
+ <m:brkBinSub m:val="&#45;-"/>
+ <m:smallFrac m:val="off"/>
+ <m:dispDef/>
+ <m:lMargin m:val="0"/>
+ <m:rMargin m:val="0"/>
+ <m:defJc m:val="centerGroup"/>
+ <m:wrapIndent m:val="1440"/>
+ <m:intLim m:val="subSup"/>
+ <m:naryLim m:val="undOvr"/>
+ </m:mathPr></w:WordDocument>
+</xml><![endif]--><!--[if gte mso 9]><xml>
+ <w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
+ DefSemiHidden="true" DefQFormat="false" DefPriority="99"
+ LatentStyleCount="267">
+ <w:LsdException Locked="false" Priority="0" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
+ <w:LsdException Locked="false" Priority="9" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
+ <w:LsdException Locked="false" Priority="9" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="heading 2"/>
+ <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
+ <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
+ <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
+ <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
+ <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
+ <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
+ <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 1"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 2"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 3"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 4"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 5"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 6"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 7"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 8"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 9"/>
+ <w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
+ <w:LsdException Locked="false" Priority="10" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Title"/>
+ <w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
+ <w:LsdException Locked="false" Priority="11" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
+ <w:LsdException Locked="false" Priority="22" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
+ <w:LsdException Locked="false" Priority="20" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
+ <w:LsdException Locked="false" Priority="59" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Table Grid"/>
+ <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
+ <w:LsdException Locked="false" Priority="1" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
+ <w:LsdException Locked="false" Priority="60" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Shading"/>
+ <w:LsdException Locked="false" Priority="61" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light List"/>
+ <w:LsdException Locked="false" Priority="62" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Grid"/>
+ <w:LsdException Locked="false" Priority="63" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 1"/>
+ <w:LsdException Locked="false" Priority="64" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 2"/>
+ <w:LsdException Locked="false" Priority="65" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 1"/>
+ <w:LsdException Locked="false" Priority="66" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 2"/>
+ <w:LsdException Locked="false" Priority="67" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 1"/>
+ <w:LsdException Locked="false" Priority="68" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 2"/>
+ <w:LsdException Locked="false" Priority="69" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 3"/>
+ <w:LsdException Locked="false" Priority="70" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Dark List"/>
+ <w:LsdException Locked="false" Priority="71" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Shading"/>
+ <w:LsdException Locked="false" Priority="72" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful List"/>
+ <w:LsdException Locked="false" Priority="73" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Grid"/>
+ <w:LsdException Locked="false" Priority="60" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
+ <w:LsdException Locked="false" Priority="61" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light List Accent 1"/>
+ <w:LsdException Locked="false" Priority="62" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
+ <w:LsdException Locked="false" Priority="63" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
+ <w:LsdException Locked="false" Priority="64" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
+ <w:LsdException Locked="false" Priority="65" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
+ <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
+ <w:LsdException Locked="false" Priority="34" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
+ <w:LsdException Locked="false" Priority="29" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
+ <w:LsdException Locked="false" Priority="30" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
+ <w:LsdException Locked="false" Priority="66" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
+ <w:LsdException Locked="false" Priority="67" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
+ <w:LsdException Locked="false" Priority="68" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
+ <w:LsdException Locked="false" Priority="69" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
+ <w:LsdException Locked="false" Priority="70" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Dark List Accent 1"/>
+ <w:LsdException Locked="false" Priority="71" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
+ <w:LsdException Locked="false" Priority="72" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
+ <w:LsdException Locked="false" Priority="73" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
+ <w:LsdException Locked="false" Priority="60" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
+ <w:LsdException Locked="false" Priority="61" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light List Accent 2"/>
+ <w:LsdException Locked="false" Priority="62" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
+ <w:LsdException Locked="false" Priority="63" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
+ <w:LsdException Locked="false" Priority="64" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
+ <w:LsdException Locked="false" Priority="65" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
+ <w:LsdException Locked="false" Priority="66" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
+ <w:LsdException Locked="false" Priority="67" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
+ <w:LsdException Locked="false" Priority="68" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
+ <w:LsdException Locked="false" Priority="69" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
+ <w:LsdException Locked="false" Priority="70" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Dark List Accent 2"/>
+ <w:LsdException Locked="false" Priority="71" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
+ <w:LsdException Locked="false" Priority="72" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
+ <w:LsdException Locked="false" Priority="73" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
+ <w:LsdException Locked="false" Priority="60" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
+ <w:LsdException Locked="false" Priority="61" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light List Accent 3"/>
+ <w:LsdException Locked="false" Priority="62" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
+ <w:LsdException Locked="false" Priority="63" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
+ <w:LsdException Locked="false" Priority="64" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
+ <w:LsdException Locked="false" Priority="65" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
+ <w:LsdException Locked="false" Priority="66" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
+ <w:LsdException Locked="false" Priority="67" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
+ <w:LsdException Locked="false" Priority="68" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
+ <w:LsdException Locked="false" Priority="69" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
+ <w:LsdException Locked="false" Priority="70" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Dark List Accent 3"/>
+ <w:LsdException Locked="false" Priority="71" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
+ <w:LsdException Locked="false" Priority="72" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
+ <w:LsdException Locked="false" Priority="73" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
+ <w:LsdException Locked="false" Priority="60" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
+ <w:LsdException Locked="false" Priority="61" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light List Accent 4"/>
+ <w:LsdException Locked="false" Priority="62" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
+ <w:LsdException Locked="false" Priority="63" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
+ <w:LsdException Locked="false" Priority="64" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
+ <w:LsdException Locked="false" Priority="65" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
+ <w:LsdException Locked="false" Priority="66" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
+ <w:LsdException Locked="false" Priority="67" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
+ <w:LsdException Locked="false" Priority="68" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
+ <w:LsdException Locked="false" Priority="69" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
+ <w:LsdException Locked="false" Priority="70" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Dark List Accent 4"/>
+ <w:LsdException Locked="false" Priority="71" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
+ <w:LsdException Locked="false" Priority="72" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
+ <w:LsdException Locked="false" Priority="73" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
+ <w:LsdException Locked="false" Priority="60" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
+ <w:LsdException Locked="false" Priority="61" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light List Accent 5"/>
+ <w:LsdException Locked="false" Priority="62" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
+ <w:LsdException Locked="false" Priority="63" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
+ <w:LsdException Locked="false" Priority="64" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
+ <w:LsdException Locked="false" Priority="65" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
+ <w:LsdException Locked="false" Priority="66" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
+ <w:LsdException Locked="false" Priority="67" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
+ <w:LsdException Locked="false" Priority="68" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
+ <w:LsdException Locked="false" Priority="69" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
+ <w:LsdException Locked="false" Priority="70" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Dark List Accent 5"/>
+ <w:LsdException Locked="false" Priority="71" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
+ <w:LsdException Locked="false" Priority="72" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
+ <w:LsdException Locked="false" Priority="73" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
+ <w:LsdException Locked="false" Priority="60" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
+ <w:LsdException Locked="false" Priority="61" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light List Accent 6"/>
+ <w:LsdException Locked="false" Priority="62" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
+ <w:LsdException Locked="false" Priority="63" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
+ <w:LsdException Locked="false" Priority="64" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
+ <w:LsdException Locked="false" Priority="65" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
+ <w:LsdException Locked="false" Priority="66" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
+ <w:LsdException Locked="false" Priority="67" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
+ <w:LsdException Locked="false" Priority="68" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
+ <w:LsdException Locked="false" Priority="69" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
+ <w:LsdException Locked="false" Priority="70" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Dark List Accent 6"/>
+ <w:LsdException Locked="false" Priority="71" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
+ <w:LsdException Locked="false" Priority="72" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
+ <w:LsdException Locked="false" Priority="73" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
+ <w:LsdException Locked="false" Priority="19" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
+ <w:LsdException Locked="false" Priority="21" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
+ <w:LsdException Locked="false" Priority="31" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
+ <w:LsdException Locked="false" Priority="32" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
+ <w:LsdException Locked="false" Priority="33" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
+ <w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
+ <w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
+ </w:LatentStyles>
+</xml><![endif]-->
+<style>
+<!--
+ /* Font Definitions */
+ @font-face
+ {font-family:"Cambria Math";
+ panose-1:2 4 5 3 5 4 6 3 2 4;
+ mso-font-charset:1;
+ mso-generic-font-family:roman;
+ mso-font-format:other;
+ mso-font-pitch:variable;
+ mso-font-signature:0 0 0 0 0 0;}
+@font-face
+ {font-family:Tahoma;
+ panose-1:2 11 6 4 3 5 4 4 2 4;
+ mso-font-charset:0;
+ mso-generic-font-family:swiss;
+ mso-font-pitch:variable;
+ mso-font-signature:-520082689 -1073717157 41 0 66047 0;}
+ /* Style Definitions */
+ p.MsoNormal, li.MsoNormal, div.MsoNormal
+ {mso-style-unhide:no;
+ mso-style-qformat:yes;
+ mso-style-parent:"";
+ margin:0in;
+ margin-bottom:.0001pt;
+ mso-pagination:widow-orphan;
+ font-size:10.0pt;
+ font-family:"Arial","sans-serif";
+ mso-fareast-font-family:"Times New Roman";
+ mso-fareast-theme-font:minor-fareast;
+ color:windowtext;}
+h1
+ {mso-style-priority:9;
+ mso-style-unhide:no;
+ mso-style-qformat:yes;
+ mso-style-link:"Heading 1 Char";
+ margin-top:12.0pt;
+ margin-right:0in;
+ margin-bottom:3.0pt;
+ margin-left:0in;
+ mso-pagination:widow-orphan;
+ page-break-after:avoid;
+ mso-outline-level:1;
+ font-size:16.0pt;
+ font-family:"Arial","sans-serif";
+ mso-fareast-font-family:"Times New Roman";
+ mso-fareast-theme-font:minor-fareast;
+ color:windowtext;
+ font-weight:bold;}
+h2
+ {mso-style-priority:9;
+ mso-style-unhide:no;
+ mso-style-qformat:yes;
+ mso-style-link:"Heading 2 Char";
+ margin-top:12.0pt;
+ margin-right:0in;
+ margin-bottom:3.0pt;
+ margin-left:0in;
+ mso-pagination:widow-orphan;
+ page-break-after:avoid;
+ mso-outline-level:2;
+ font-size:14.0pt;
+ font-family:"Arial","sans-serif";
+ mso-fareast-font-family:"Times New Roman";
+ mso-fareast-theme-font:minor-fareast;
+ color:windowtext;
+ font-weight:bold;
+ font-style:italic;}
+a:link, span.MsoHyperlink
+ {mso-style-priority:99;
+ color:blue;
+ text-decoration:underline;
+ text-underline:single;}
+p
+ {mso-style-noshow:yes;
+ mso-style-priority:99;
+ mso-margin-top-alt:auto;
+ margin-right:0in;
+ mso-margin-bottom-alt:auto;
+ margin-left:0in;
+ mso-pagination:widow-orphan;
+ font-size:10.0pt;
+ font-family:"Arial","sans-serif";
+ mso-fareast-font-family:"Times New Roman";
+ mso-fareast-theme-font:minor-fareast;
+ color:black;}
+p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
+ {mso-style-noshow:yes;
+ mso-style-priority:99;
+ mso-style-link:"Balloon Text Char";
+ margin:0in;
+ margin-bottom:.0001pt;
+ mso-pagination:widow-orphan;
+ font-size:8.0pt;
+ font-family:"Tahoma","sans-serif";
+ mso-fareast-font-family:"Times New Roman";
+ mso-fareast-theme-font:minor-fareast;
+ color:windowtext;}
+span.Heading1Char
+ {mso-style-name:"Heading 1 Char";
+ mso-style-priority:9;
+ mso-style-unhide:no;
+ mso-style-locked:yes;
+ mso-style-link:"Heading 1";
+ mso-ansi-font-size:14.0pt;
+ mso-bidi-font-size:14.0pt;
+ font-family:"Cambria","serif";
+ mso-ascii-font-family:Cambria;
+ mso-ascii-theme-font:major-latin;
+ mso-fareast-font-family:"Times New Roman";
+ mso-fareast-theme-font:major-fareast;
+ mso-hansi-font-family:Cambria;
+ mso-hansi-theme-font:major-latin;
+ mso-bidi-font-family:"Times New Roman";
+ mso-bidi-theme-font:major-bidi;
+ color:#365F91;
+ mso-themecolor:accent1;
+ mso-themeshade:191;
+ font-weight:bold;}
+span.Heading2Char
+ {mso-style-name:"Heading 2 Char";
+ mso-style-noshow:yes;
+ mso-style-priority:9;
+ mso-style-unhide:no;
+ mso-style-locked:yes;
+ mso-style-link:"Heading 2";
+ mso-ansi-font-size:13.0pt;
+ mso-bidi-font-size:13.0pt;
+ font-family:"Cambria","serif";
+ mso-ascii-font-family:Cambria;
+ mso-ascii-theme-font:major-latin;
+ mso-fareast-font-family:"Times New Roman";
+ mso-fareast-theme-font:major-fareast;
+ mso-hansi-font-family:Cambria;
+ mso-hansi-theme-font:major-latin;
+ mso-bidi-font-family:"Times New Roman";
+ mso-bidi-theme-font:major-bidi;
+ color:#4F81BD;
+ mso-themecolor:accent1;
+ font-weight:bold;}
+span.BalloonTextChar
+ {mso-style-name:"Balloon Text Char";
+ mso-style-noshow:yes;
+ mso-style-priority:99;
+ mso-style-unhide:no;
+ mso-style-locked:yes;
+ mso-style-link:"Balloon Text";
+ mso-ansi-font-size:8.0pt;
+ mso-bidi-font-size:8.0pt;
+ font-family:"Tahoma","sans-serif";
+ mso-ascii-font-family:Tahoma;
+ mso-fareast-font-family:"Times New Roman";
+ mso-fareast-theme-font:minor-fareast;
+ mso-hansi-font-family:Tahoma;
+ mso-bidi-font-family:Tahoma;}
+.MsoChpDefault
+ {mso-style-type:export-only;
+ mso-default-props:yes;
+ font-size:10.0pt;
+ mso-ansi-font-size:10.0pt;
+ mso-bidi-font-size:10.0pt;}
+@page Section1
+ {size:8.5in 11.0in;
+ margin:1.0in 1.0in 1.0in 1.0in;
+ mso-header-margin:.5in;
+ mso-footer-margin:.5in;
+ mso-paper-source:0;}
+div.Section1
+ {page:Section1;}
+-->
+</style>
+<!--[if gte mso 10]>
+<style>
+ /* Style Definitions */
+ table.MsoNormalTable
+ {mso-style-name:"Table Normal";
+ mso-tstyle-rowband-size:0;
+ mso-tstyle-colband-size:0;
+ mso-style-noshow:yes;
+ mso-style-priority:99;
+ mso-style-qformat:yes;
+ mso-style-parent:"";
+ mso-padding-alt:0in 5.4pt 0in 5.4pt;
+ mso-para-margin:0in;
+ mso-para-margin-bottom:.0001pt;
+ mso-pagination:widow-orphan;
+ font-size:10.0pt;
+ font-family:"Times New Roman","serif";}
+</style>
+<![endif]--><!--[if gte mso 9]><xml>
+ <o:shapedefaults v:ext="edit" spidmax="2050"/>
+</xml><![endif]--><!--[if gte mso 9]><xml>
+ <o:shapelayout v:ext="edit">
+ <o:idmap v:ext="edit" data="1"/>
+ </o:shapelayout></xml><![endif]-->
+</head>
+
+<body bgcolor=white background="../images/bkground.gif" lang=EN-US link=blue
+vlink=purple style='tab-interval:.5in'>
+
+<div class=Section1>
+
+<h2><span style='mso-fareast-font-family:"Times New Roman"'>Default Options
+&amp; Game Properties<o:p></o:p></span></h2>
+
+<p class=MsoNormal>The default options and game properties tabs of MameUI are
+used to set the vast majority of game play parameters.&nbsp; The Game
+Properties dialogue box, accessible from the File • Properties menu item,
+shares all the tabs of the Default Options dialogue box, accessible from the
+Options • Default Options menu item.&nbsp; The Game Properties dialogue
+contains two additional tabs which give information on the game selected, and
+its current audited state.</p>
+
+<p class=MsoNormal>&nbsp;</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span
+style='font-family:Symbol;mso-no-proof:yes'><img width=11 height=11
+id="_x0000_i1043" src="../images/mame321.gif" alt="*"></span><span
+style='font-size:7.0pt;font-family:"Times New Roman","serif"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span><b><span style='color:maroon'>General Tab</span></b> : [only available
+in Game Properties dialogue] This tab provides information on the game
+selected, this information includes manufacturer name and date, driver status,
+original CPU, original sound hardware, original screen resolution and
+orientation, and number of colors.</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'>&nbsp;</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span
+style='font-family:Symbol;mso-no-proof:yes'><img width=11 height=11
+id="_x0000_i1042" src="../images/mame321.gif" alt="*"></span><span
+style='font-size:7.0pt;font-family:"Times New Roman","serif"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span><b><span style='color:maroon'>Audit Tab</span></b> : [only available in
+the Game Properties dialogue] This tab performs a ‘mini-audit’ on the game
+selected, determining its status compared to what MameUI expects.&nbsp; Status
+will be reported and missing files with CRC information will appear in the
+details view.</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'>&nbsp;</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span
+style='font-family:Symbol;mso-no-proof:yes'><img width=11 height=11
+id="_x0000_i1041" src="../images/mame321.gif" alt="*"></span><span
+style='font-size:7.0pt;font-family:"Times New Roman","serif"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span><b><span style='color:maroon'>Display Tab</span></b> : This tab allows
+the setting of numerous video options.</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'>&nbsp;</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Run in a window</b> : MameUI
+will launch the game selected in a window on the desktop, the window can be
+resized by pausing the emulation and dragging the borders.&nbsp; The resolution
+of the window can also be set in the Screen tab.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Start out maximized </b>:
+Toggling this option on ensures that when windowed mode is used, the maximum
+amount of space is used.&nbsp; Toggle this option off to play the smallest
+version of the windowed game.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Enforce aspect ratio </b>: This
+option is used in conjunction with windowed mode, it forces the aspect ratio to
+be maintained when the game is paused and the window is dragged and
+resized.&nbsp; Turn this off to create long, thin game windows, or short fat,
+etc.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Throttle </b>: This option
+prevents MameUI from running games as fast as the host CPU can go.&nbsp; Unless
+this is toggled on, a modern x86 processor will run Donkey Kong at a thousand
+times its original speed.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Rotation </b>: This drop down
+box allows MameUI to rotate the video output by 90 degrees in either
+direction.&nbsp; This setting is useful if used in conjunction with a pivoting
+monitor [the auto options], or playing games with a monitor on its side.&nbsp;
+Doing so allows vertical orientated games to be played full screen.&nbsp; The
+additional 'auto clockwise' and 'auto anti-clockwise' settings are particularly
+useful for rotating LCD monitors, these settings will force vertical games to
+one 90 degree angle or the other depending on which way the LCD pivots.<br>
+<b>Flip screen upside down </b>: This option mirrors the image vertically.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Flip screen left right </b>:
+This option mirrors the image horizontally.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Direct3D</b> : <b>Use Bilinear
+Filtering</b> : This option enables bilinear filtering on game screen
+graphics.&nbsp; 'Fuzziness' of image can be controlled by the bitmap prescaling
+option, increasing it sharpens the image.&nbsp; Leaving this unchecked produces
+the crispest output but does point filtering leading to scaling artifacts.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Direct3D</b> : <b>Version</b> :
+This option allows toggling between version 9 and version 8 of D3D.&nbsp; It's
+almost always preferable to stay with 9.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>DirectDraw</b> : <b>Stretch
+using hardware</b> : Used in conjunction with DDraw as the video mode, this
+toggle if turned off scales upwards the size of the games original native
+resolution at the same aspect ratio.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Bitmap prescaling</b> : This
+option works in conjunction with bilinear filtering.&nbsp; The higher up the
+slider, the sharper the screen output.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Gamma correction </b>:
+&nbsp;This option controls the gamma, which produces a potentially nonlinear
+black to white ramp, for the game screens. This option does not affect the artwork
+or other parts of the display. Using MameUI's in-game tilde menu [~], one can
+individually set the gamma for each game screen; this option controls the
+initial value for all visible game screens. The standard value is 1.0, which
+gives a linear ramp from black to white. Selecting lower values (down to 0.1)
+will increase the nonlinearity toward black,&nbsp; while selecting higher
+values (up to 3.0) will push the nonlinearity&nbsp; toward white. The default
+is 1.0.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Brightness correction </b>:
+This option controls the default brightness, or black level, of the game
+screens. This option does not affect the artwork or other parts of the
+display.&nbsp; Using MameUI's in-game tilde menu [~], one can individually set
+the brightness for each game screen; this option controls the initial value for
+all visible game screens. The standard value is 1.0. Selecting lower values
+(down to 0.1) will produce a darkened display, while selecting higher values
+(up to 2.0) will give a brighter display. The default is 1.0.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Contrast correction </b>:&nbsp;
+Controls the contrast, or white level, of the game screens. This option does
+not affect the artwork or other parts of the display. Using MameUI's in-game
+tilde menu [~], one can individually set the contrast for each game screen;
+this option controls the initial value for all visible game screens. The
+standard value is 1.0. Selecting lower values (down to 0.1) will produce a
+dimmer display, while selecting higher values (up to 2.0) will give a more
+saturated display. The default is 1.0.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Pause Brightness </b>: This
+option controls the screen brightness when a game is paused.</p>
+
+<p class=MsoNormal style='margin-left:.75in'>&nbsp;</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span
+style='font-family:Symbol;mso-no-proof:yes'><img width=11 height=11
+id="_x0000_i1040" src="../images/mame321.gif" alt="*"></span><span
+style='font-size:7.0pt;font-family:"Times New Roman","serif"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span><b><span style='color:maroon'>Advanced Tab</span></b> : This tab allows
+the setting of additional numerous video options.</p>
+
+<p class=MsoNormal style='margin-left:.75in'>&nbsp;</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Triple buffering </b>: This
+option controls how MameUI draws to the screen, if toggled on, it will draw to
+three buffers and cycle between them.&nbsp; This setting when toggled on can
+also help alleviate tearing that sometimes occurs in some scrolling games.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Sync to monitor refresh </b>:
+This option tells MameUI to ignore the original game’s refresh rate and sync it
+to the output monitor’s current rate.&nbsp; This can cause the game to run too
+fast if the output monitor is using 85Hz for example.&nbsp; This option is
+preferable if MameUI is used with authentic arcade monitor hardware and video
+card modes that are tweaked appropriately.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Wait for vertical sync </b>:
+This option tells MameUI to wait for the refresh period on the output monitor
+to finish before starting to draw video to the screen, this works functionally
+similarly to triple buffer but is better suited for running games in a window
+to alleviate tearing. </p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Refresh speed </b>: This option
+tells MameUI to alter the speed of the emulation for games that run at a higher
+speed than the host monitor.&nbsp; For example this should be checked if
+running Pac-Man on a fixed 60Hz LCD since Pac-Man runs at 60.60Hz.&nbsp; This
+alleviates sound hiccups as well in the previous situation.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Emulation speed </b>: This slider
+allows for the altering of the emulation speed, it can be dropped down or
+increased by three [or to 100 in the \ini.] </p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Frame skipping </b>: These
+settings allow MameUI to skip frames of animation when playing games, if the
+host CPU is not fast enough to run the game.&nbsp; Optimally this should be
+toggled off and 'draw every frame' selected.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Full screen gamma</b> : This
+option is similar to the gamma correction in the display tab but works on all
+graphic elements of the screen including the UI.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Full screen brightness </b>:
+This option is similar to the brightness correction in the display tab but
+works on all graphic elements of the screen including the UI.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Full screen contrast</b> : This
+option is similar to the contrast correction in the display tab but works on
+all graphic elements of the screen including the UI.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Effect</b> : Starting with
+version .107 simulated arcade monitor effects are handled by the overlay of
+*.png masks on the game.&nbsp; The *.png files reside in the \artwork directory
+and are simple patterns creatable and editable in applications like
+Photoshop.&nbsp; If scan lines are desired and a very high resolution is being
+used [1280x1024 or above] the Scanlines75x4 item is suggested.&nbsp; For games
+with artwork whose playfields are smaller on screen as the results of bezels, it's
+recommended to use Scanlines75x3 or Scanlines75x2.</p>
+
+<p class=MsoNormal style='margin-left:.75in'>&nbsp;</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span
+style='font-family:Symbol;mso-no-proof:yes'><img width=11 height=11
+id="_x0000_i1039" src="../images/mame321.gif" alt="*"></span><span
+style='font-size:7.0pt;font-family:"Times New Roman","serif"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span><b><span style='color:maroon'>Screen Tab</span></b> : This tab allows
+the alteration of the various screen output settings.</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'>&nbsp;</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Number of screens </b>:<b> </b>This
+slider controls the number of screens MameUI will draw.&nbsp; In windowed mode up
+to four different output windows can be created of varying sizes, shapes,
+etc.&nbsp; In full screen mode the number of screens can match the physical
+number of monitors connected to the host system.&nbsp; This allows playing
+multi-monitor arcade games like Punch-Out or similar on 2 physical computer
+monitors in dual head mode.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Screen </b>: This option allows
+the choice of the physical monitor to use in conjunction with number of screens
+and screennumber.&nbsp; The drop down is populated by the \\.\DISPLAY1 and/or \\.\DISPLAY2
+and so forth.&nbsp; Leaving this toggle to Auto will have MameUI attempt to
+order the game screens as it sees fit, for Punch-Out for example it will place
+the main fighting screen on \\.\DISPLAY1 and the status/display screen on
+secondary monitor \\.\DISPLAY2. </p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Aspect Ratio </b>: Allows
+control over the physical aspect ratio of the physical monitor for each
+screen.&nbsp; If running full screen and auto aspect ratio is <b>off</b>, then
+switch resolutions to fit must be toggled on to work.&nbsp; Typically this
+should be set to autoselect unless weird shaped windows for game play are
+desired.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>View</b> : This drop down
+allows the selection of the default view of the in-game display.&nbsp; This can
+be auto which is effectively 4:3 for horizontal games or 3:4 for vertical
+games, native, which is the game's original native resolution, or cocktail
+which is duplicated view for 2 people playing the game on opposite sides of a
+cocktail cabinet.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Screennumber</b> : This drop
+down is populated based on the slider setting of number of screens to its
+left.&nbsp; Each item in the screennumber drop down can be individually
+tailored with screen, resolution, aspect ratio, and view. Thus it is possible
+to have elaborate combinations for game play, for example.&nbsp; Number of
+screens 3, run in windowed mode, have screen0 go to the secondary \\.\DISPLAY2,
+running in 320x240 resolution at a color depth of 16bpp with a refresh of 75Hz,
+screen1 go to primary display \\.\DISPLAY1, run at 640x480x32@60 and use the
+cocktail view, etc.&nbsp; Each item in the Screennumber drop down will populate
+its own settings and maintain those settings until returned to a default.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Resolution</b> : These options
+control the size and refresh rate of the screennumbers.&nbsp; In windowed mode
+only the resolution is selectable.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Switch resolutions to fit</b> :
+This toggle must be <b>on</b> if any of the resolution choices are altered away
+from auto in full screen mode.&nbsp; It does not impact windowed mode.</p>
+
+<p class=MsoNormal style='margin-left:.75in'>&nbsp;</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span
+style='font-family:Symbol;mso-no-proof:yes'><img width=11 height=11
+id="_x0000_i1038" src="../images/mame321.gif" alt="*"></span><span
+style='font-size:7.0pt;font-family:"Times New Roman","serif"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span><b><span style='color:maroon'>Sound Tab</span> </b>: This tab allows for
+setting the sound options.</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'>&nbsp;</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Enable sound and sound CPUs </b>:
+This setting toggles sound on or off in games.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Use samples </b>: This setting
+allows MameUI to utilize samples for games which do not have their sound
+hardware emulated, or were using analogue circuitry.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Sample Rate </b>: This setting
+tells MameUI at what rate to output sound, the higher, the better.&nbsp;
+Lowering this setting can also result in faster performance on lower end
+machines.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Volume attenuation </b>: This
+setting allows MameUI to set the initial volume level, the default is 0dB.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Audio latency </b>: This slider
+allows the adjustment of the amount of latency built into the audio
+streaming.&nbsp; Increasing the slider to the right on faster machines can help
+alleviate some desync and scratchiness in the sound on some configurations.</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'>&nbsp;</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span
+style='font-family:Symbol;mso-no-proof:yes'><img width=11 height=11
+id="_x0000_i1037" src="../images/mame321.gif" alt="*"></span><span
+style='font-size:7.0pt;font-family:"Times New Roman","serif"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span><b><span style='color:maroon'>Controllers Tab</span> </b>: This tab
+allows for setting the game controller options.</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'>&nbsp;</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Enable joystick input </b>:
+This setting tells MameUI to utilize any currently connected joysticks.&nbsp;
+MameUI will interrogate the game controllers control panel and use ID#1 and up.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Analog joystick deadzone</b> :
+This setting controls how MameUI translates analog input to games that require
+digital input.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Enable lightgun input</b> :
+This setting tells MameUI to utilize a lightgun for target/shooting games that
+require analogue control, like Crossbow, Police Trainer, Rev X, etc. and will
+only be available on non-XP based systems.&nbsp; If using XP then mouse input
+should be toggled on to allow mapping of the lightgun functions in the in-game
+[<b>TAB</b>] menu.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Offscreen shots reload</b> :
+This option if checked will internally remap the second mouse button and allow
+it to be used for simulated 'reloading' in gun games that require it.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Dual lightguns</b> : This is a
+legacy switch for non-XP systems which activates code to handle internal
+mapping of the second light gun connected to the system.&nbsp; If WinXP is used
+this is not required and is grayed out, the second gun is mapped like a
+joystick or mouse in the in-game [<b>TAB</b>] menu.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Enable mouse input </b>: This
+setting tells MameUI to utilize the mouse in games that require analogue
+control methods.&nbsp; On XP systems the mouse toggle should be on if a
+lightgun is to be utilised.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Enable steadykey support </b>:
+This option tells MameUI to use a different keyboard handling routine that
+makes it easier to register simultaneous key presses for games that require it
+for special moves [Street Fighter II, etc.].&nbsp; However it can produce more
+sluggish results in other games.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Default input layout </b>: This
+drop down menu allows MameUI to choose between multiple key mappings, including
+keyboard mapping for various third-party control panels.&nbsp; It will also
+display user defined controller mappings, if created in the \ctrlr
+directory.&nbsp; Various arcade game controller companies produce custom made
+configuration files for their setups; these *.cfg files need to go in the
+\MameUI\ctrlr folder to be recognized in the MameUI controllers tab.&nbsp;
+These files are the responsibility of the controller companies themselves and
+are not included or endorsed by MameUI, they can typically be found at the
+companies’ web sites.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><strong><span style='font-family:
+"Arial","sans-serif"'>Multiple keyboards</span></strong> : Enabling this
+checkbox tells MameUI to allow mapping to different physical keyboards that may
+be attached to the host system, this allows rather esoteric options like
+multiple keyboards for games like 2 player Keyboard Mania or Typing of the Dead
+etc.&nbsp; If left off MameUI maps all keyboard controls to all keyboard
+devices.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><strong><span style='font-family:
+"Arial","sans-serif"'>Multiple mice</span></strong> : Enabling this checkbox
+tells MameUI to allow mapping to different physical mice devices.&nbsp; Useful
+for systems that have spinners, trackballs, main system mice etc.&nbsp; If left
+off MameUI maps all mice controls to all mouse devices.</p>
+
+<p class=MsoNormal style='margin-left:.75in'>&nbsp;</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span
+style='font-family:Symbol;mso-no-proof:yes'><img width=11 height=11
+id="_x0000_i1036" src="../images/mame321.gif" alt="*"></span><span
+style='font-size:7.0pt;font-family:"Times New Roman","serif"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span><b><span style='color:maroon'>Controller Mapping Tab</span> </b>: This
+tab allows choosing which analogue device connected to the system for MameUI to
+map a game's internal analogue controls to.&nbsp; These options should be used
+in lieu of the global 'mouse' setting which can conflict with attached
+joysticks/gamepads.</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'>&nbsp;</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span
+style='font-family:Symbol;mso-no-proof:yes'><img width=11 height=11
+id="_x0000_i1035" src="../images/mame321.gif" alt="*"></span><span
+style='font-size:7.0pt;font-family:"Times New Roman","serif"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span><b><span style='color:maroon'>Miscellaneous Tab</span> </b>: This tab
+allows for setting additional options.</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'>&nbsp;</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Enable game cheats </b>: This
+setting if toggled on allows MameUI to use external cheat.dat files.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Error log (for developers) </b>:
+This setting if toggled on produces an error log of illegal memory accesses.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Sleep when possible </b>: This
+setting if toggled on allows MameUI to be more multitasking friendly in that it
+does not use as much processor time.&nbsp; If this setting is toggled off
+MameUI will utilize 100% of the CPU for playing games.&nbsp; Some machines slow
+down dramatically if this setting is toggled on, particularly laptops.&nbsp;
+This maps to the -sleep option in Mame.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Skip game info</b> : If this
+options is on, MameUI will immediately launch a game without information
+screens.&nbsp; However screens regarding problems in the drivers will still be
+shown [missing sound, unemulated protection, problems with video etc.].</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Save game state on exit</b> : This
+toggle will allow MameUI to automatically save the current machine state when
+the game is exited with the ESC key.&nbsp; As a result when the game is
+re-launched it's like the machine was never turned off.&nbsp; This feature
+allows older games to maintain their hi-scores indefinitely where it wasn't
+originally supported.&nbsp; The files are stored in the MameUI\sta
+directory.&nbsp; The list of games that support save states is present in the
+left hand folder view pane of the UI as 'Save State'.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Thread Priority slider</b> :
+Increasing the Windows thread priority for MameUI giving it more CPU and
+resources slices, can negatively impact other running processes.&nbsp; Using
+setting 1 sets it to real-time which interferes with keyboard and joystick
+controls as well as other running apps.&nbsp; Setting 1 is not recommended as a
+result.&nbsp; Some Dells and other laptop computers may require setting slider
+to -15 to get keyboard control working properly.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Multi-threaded rendering </b>:
+This toggle allows multi-core or multi-chip or HyperThreaded machines to pass
+the final video blit off to a second thread.&nbsp; This can lead up to a 40%
+increase in unthrottled FPS using D3D in GPU limited games.&nbsp; However it
+does not have a real world effect on games that are CPU bound, like the heavy
+seattle.c, or vegas.c games.&nbsp; Unless in possession of one of these types
+of machines, this should be toggled off to avoid potential slowdowns.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Use additional game artwork </b>:
+This setting if toggled on allows MameUI to utilize the external artwork
+packages available at <a href="http://www.mameworld.net/mrdo" target="_blank">Mr.
+Do’s site</a> for display in games like Armor Attack, Discs of Tron, Lunar
+Lander, Warrior, etc.&nbsp;The artwork packages are placed in the \artwork
+directory.&nbsp; Each element of the artwork package can be toggled: bezel,
+overlay, and background.&nbsp; </p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Crop Artwork</b> : Selecting
+the crop artwork toggle will shrink the scene down to the games original
+dimensions, cropping any available art pieces.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>BIOS</b> : This drop down
+allows the use of a variety of different supported NeoGeo or Sega BIOS
+files.&nbsp; The option will only be available when altering the driver family
+via the source folder view on the left pane, or individual games in the driver
+family.</p>
+
+<p class=MsoNormal style='margin-left:.75in'>&nbsp;</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span
+style='font-family:Symbol;mso-no-proof:yes'><img border=0 width=11 height=11
+id="_x0000_i1034" src="../images/mame321.gif" alt="*"></span><span
+style='font-size:7.0pt;font-family:"Times New Roman","serif"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span><b><span style='color:maroon'>Vector Tab</span> </b>: This tab allows
+for setting additional options for games that originally utilized a vector
+monitor instead of a raster monitor. [Asteroids, Battlezone, Armor Attack,
+etc.]</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'>&nbsp;</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Draw antialiased vectors </b>:
+This setting if toggled on tells MameUI to draw vector lines with an additional
+pleasing antialiased look.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Beam width</b> : This slider
+allows MameUI to set the beam width on the vector lines drawn, increasing it
+creates wider vectors. </p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Flicker</b> : This slider tells
+MameUI to artificially create a flicker effect on the vector lines.</p>
+
+<p class=MsoNormal style='margin-left:.75in'>&nbsp;</p>
+
+<p class=MsoNormal><span style='mso-no-proof:yes'><img border=0 width=250
+height=344 id="_x0000_i1033" src="../images/1.jpg"></span><span
+style='mso-no-proof:yes'><img border=0 width=250 height=344 id="_x0000_i1032"
+src="../images/2.jpg"></span><span style='mso-no-proof:yes'><img border=0
+width=250 height=344 id="_x0000_i1031" src="../images/3.jpg"></span><span
+style='mso-no-proof:yes'><img border=0 width=250 height=344 id="_x0000_i1030"
+src="../images/4.jpg"></span><span style='mso-no-proof:yes'><img border=0
+width=250 height=344 id="_x0000_i1029" src="../images/5.jpg"></span><span
+style='mso-no-proof:yes'><img border=0 width=250 height=344 id="_x0000_i1028"
+src="../images/6.jpg"></span><span style='mso-no-proof:yes'><img border=0
+width=250 height=344 id="_x0000_i1027" src="../images/7.jpg"></span><span
+style='mso-no-proof:yes'><img border=0 width=250 height=344 id="_x0000_i1026"
+src="../images/8.jpg"></span></p>
+
+<p class=MsoNormal style='margin-left:.75in'>&nbsp;</p>
+
+<p class=MsoNormal><!--webbot bot="Timestamp" s-type="EDITED" s-format="%Y-%m-%d %I:%M %p %Z" startspan -->2007-11-10 01:41 AM -0800<!--webbot bot="Timestamp" endspan i-checksum="37617" --><span
+style='font-size:7.5pt'>/ john iv</span></p>
+
+</div>
+
+</body>
+
+</html>
diff --git a/docs/release/src/osd/winui/help/html/mameui_settings.htm b/docs/release/src/osd/winui/help/html/mameui_settings.htm
new file mode 100644
index 00000000000..0224c694af2
--- /dev/null
+++ b/docs/release/src/osd/winui/help/html/mameui_settings.htm
@@ -0,0 +1,96 @@
+<html>
+
+<head>
+<meta name="GENERATOR" content="Microsoft FrontPage 12.0">
+<meta name="ProgId" content="FrontPage.Editor.Document">
+<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
+<title>MameUI Settings</title>
+<style>
+<!--
+p
+ {margin-right:0in;
+ margin-left:0in;
+ font-size:10.0pt;
+ font-family:Arial;
+ color:black}
+h1
+ {margin-top:12.0pt;
+ margin-right:0in;
+ margin-bottom:3.0pt;
+ margin-left:0in;
+ page-break-after:avoid;
+ font-size:16.0pt;
+ font-family:Arial;
+ color:windowtext;
+ font-weight:bold}
+h2
+ {margin-top:12.0pt;
+ margin-right:0in;
+ margin-bottom:3.0pt;
+ margin-left:0in;
+ page-break-after:avoid;
+ font-size:14.0pt;
+ font-family:Arial;
+ font-style:italic}
+ p.MsoNormal
+ {mso-style-parent:"";
+ margin-bottom:.0001pt;
+ font-size:10.0pt;
+ font-family:Arial;
+ margin-left:0in; margin-right:0in; margin-top:0in}
+-->
+</style>
+<base target="_blank">
+</head>
+
+<body background="../images/bkground.gif">
+
+<h2>MameUI Settings</h2>
+
+<h3><font face="Arial">Suggested MameUI Default Settings</font></h3>
+<p style="text-indent: -.25in; margin-left: .75in; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt">
+<span style="font-family: Symbol; color: windowtext">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7.0pt; font-family: Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span>
+<span style="font-style: normal; font-variant: normal; font-weight: normal; color:windowtext">
+Advanced / Triple Buffering ensures there should be no 'tearing' of screen
+images if the frame rate doesn't exactly match the monitor screen refresh in
+full-screen mode.&nbsp;
+</span>Particularly evident in vertical scrolling games.&nbsp; This however can
+lead to sound stuttering on games that are above 60Hz [early Namco games like
+Pac-Man, etc.] if the user's monitor is
+not capable of being driven at a higher refresh rate, like modern LCDs.&nbsp; If
+a modern LCD fixed at 60Hz is in use, toggle on the Advanced • Refresh game
+speed. </p>
+<p style="text-indent: -.25in; margin-left: .75in; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt">
+<span style="font-family: Symbol; color: windowtext">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7.0pt; font-family: Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span>
+<span style="font-style: normal; font-variant: normal; font-weight: normal; color:windowtext">
+Simulated monitor effects are now handled via *.png files in the \artwork
+directory.&nbsp; They are accessed in Advanced / Select Effect.&nbsp;
+Scanlines75x4 provides a 75% black line every four pixel rows.</span></p>
+<p style="text-indent: -.25in; margin-left: .75in; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt">
+<span style="font-family: Symbol; color: windowtext">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7.0pt; font-family: Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span>Bitmap prescaling in Display is the new control for determining
+how fuzzy or sharp the bilinear filtering of D3D is.&nbsp; Increasing this
+number sharpens the game pixels.</p>
+<h3>
+<img border="0" src="../images/1.jpg"><img border="0" src="../images/2.jpg"><img border="0" src="../images/3.jpg"><img border="0" src="../images/4.jpg"><img border="0" src="../images/5.jpg"><img border="0" src="../images/6.jpg"><img border="0" src="../images/7.jpg"><img border="0" src="../images/8.jpg"></h3>
+<h3>
+<img border="0" src="../images/int.jpg" width="500" height="347"></h3>
+<p style="text-indent: -.25in; margin-left: .75in; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt">
+</p>
+
+<p style="text-indent: -.25in; margin-left: .75in; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt">
+&nbsp;</p>
+
+<p style="margin-left: 0; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt">
+<font size="1">
+<!--webbot bot="Timestamp" s-type="EDITED" s-format="%Y-%m-%d %I:%M %p %Z" startspan -->2007-11-10 01:41 AM -0800<!--webbot bot="Timestamp" endspan i-checksum="37617" -->
+/ john iv</font></p>
+
+</body>
+
+</html> \ No newline at end of file
diff --git a/docs/release/src/osd/winui/help/html/mameui_support.htm b/docs/release/src/osd/winui/help/html/mameui_support.htm
new file mode 100644
index 00000000000..0049b964cb2
--- /dev/null
+++ b/docs/release/src/osd/winui/help/html/mameui_support.htm
@@ -0,0 +1,739 @@
+<html xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office">
+
+<head>
+<style type="text/css">
+div.Section1
+ {page:Section1;}
+ h1
+ {margin-top:12.0pt;
+ margin-right:0in;
+ margin-bottom:3.0pt;
+ margin-left:0in;
+ page-break-after:avoid;
+ font-size:16.0pt;
+ font-family:"Arial","sans-serif";
+ color:windowtext;
+ font-weight:bold;
+}
+p
+ {margin-right:0in;
+ margin-left:0in;
+ font-size:10.0pt;
+ font-family:"Arial","sans-serif";
+ color:black;
+}
+a:link
+ {color:blue;
+ text-decoration:underline;
+ text-underline:single;
+}
+</style>
+</head>
+
+<body style="background-image: url('../images/bkground.gif')">
+
+<div class="Section1">
+ <h1 style="mso-margin-bottom-alt: auto"><span style="COLOR: black">MameUI
+ Troubleshooting [&amp; Tips]<o:p></o:p></span></h1>
+ <p style="MARGIN-TOP: 0in">MameUI [previously Mame32] has been in development since 1997.<span style="mso-spacerun: yes">&nbsp;
+ </span>It is mature, complex, and robust.&nbsp; However, since the Mame
+ project itself is a documentation effort, and development is continuous,
+ there will be times when changes to the core program effect MameUI.&nbsp;
+ When problems do occur with a specific game in a specific version of MameUI,
+ a previous version of MameUI may be used.&nbsp; </p>
+ <p style="MARGIN-TOP: 0in">MameUI is now an integrated GUI front end which
+ passes user input from the GUI to the
+ <b style="mso-bidi-font-weight: normal"><a href="http://www.mamedev.org/">
+ <span style="COLOR: black">Mame</span></a></b> engine/core.<span style="mso-spacerun: yes">&nbsp;
+ </span>Thus, any problems that occur in the
+ <b style="mso-bidi-font-weight: normal"><a href="http://www.mamedev.org">
+ <span style="COLOR: black">Mame</span></a></b> engine will be inherited by
+ MameUI.&nbsp; Prior to <b>
+ <a href="http://www.mameworld.info/ubbthreads/postlist.php?Cat=&amp;Board=mameui">
+ <span style="COLOR: black">reporting problems</span></a> </b>
+ <span style="mso-bidi-font-weight: bold">against MameUI</span>, verify that
+ the issue is not a known, core defect in
+ <b style="mso-bidi-font-weight: normal"><a href="http://www.mamedev.org/">
+ <span style="COLOR: black">Mame</span></a></b>.&nbsp; The <b>
+ <a target="_blank" href="http://mametesters.org/mantis/my_view_page.php">
+ <span style="COLOR: black">Mametesters.org</span></a></b> site is designed
+ to track and report bugs in the baseline
+ <b style="mso-bidi-font-weight: normal"><a href="http://www.mamedev.org/">
+ <span style="COLOR: black">Mame</span></a></b> version.&nbsp; To find if a
+ problem plagues the game in question, do an
+ <b style="mso-bidi-font-weight: normal">alt-enter</b> on the game and note
+ its driver/source name at the bottom of the general properties tab; then
+ search the Mametesters’ bug database.<span style="mso-spacerun: yes">&nbsp;
+ </span>The current list of known MameUI specific issues and defect tracking
+ is available at <b>
+ <a target="_blank" href="http://mameui.info//MameUI_Bugs.xls">
+ <span style="COLOR: black">MameUI</span></a></b>.&nbsp; &nbsp;</p>
+ <p style="BACKGROUND: white; MARGIN: 0in 0in 5pt 0.25in"><strong>
+ <span style="FONT-SIZE: 12pt; FONT-FAMILY: 'Arial','sans-serif'">ROMs and
+ CHDs Related Topics</span></strong><span style="FONT-SIZE: 12pt"><o:p></o:p></span></p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l5 level1 lfo2; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>Utilization of an external ROMs management utility like
+ <b style="mso-bidi-font-weight: normal"><a href="http://www.clrmame.com/">
+ <span style="COLOR: black">Clrmame</span></a></b> is recommended for repair
+ and identification of damaged or incomplete sets.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l5 level1 lfo2; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>If receiving missing ROMs error messages when
+ attempting to run a game, secondary click on the game in the list and choose
+ properties, do an audit on that game [or use <b>Alt-A</b>].<span style="mso-spacerun: yes">&nbsp;
+ </span>The audit will determine which files are missing from the ROMset
+ currently being played.<span style="mso-spacerun: yes">&nbsp; </span>MameUI
+ will not run a game which fails its internal audit.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l5 level1 lfo2; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>Mame is an ongoing documentation project. Sometimes old
+ ROM sets are found to have miss-dumped, missing, or damaged ROMs, which need
+ to be replaced.&nbsp; As new versions of Mame are released, the Mame
+ developers add support for these new iterations of ROMs, supplanting or
+ renaming the old supported versions.<span style="mso-spacerun: yes">&nbsp;
+ </span>Thus, often, older versions of ROMs which did work in older versions
+ of MameUI, will <u>not</u> work with newer versions of MameUI because they
+ are now read as incomplete or wrong.<span style="mso-spacerun: yes">&nbsp;
+ </span>MameUI will not play the game in question until the updated ROMs are
+ utilized.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l5 level1 lfo2; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>MameUI utilizes the idea of a parent / clone
+ relationship for its games.&nbsp; If trying to play a clone or a bootleg of
+ a game, MameUI will need the ROMs for the clone game, <b>and</b> the parent
+ set.&nbsp; MameUI indicates the parent set of a clone at the bottom of the
+ game’s properties tab, or more easily in grouped view, View \ Grouped.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l5 level1 lfo2; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>MameUI utilizes the idea of having single zip files to
+ house the BIOS files for a large number of similar games.<span style="mso-spacerun: yes">&nbsp;
+ </span>The NeoGeo games for example, share upwards of ten BIOS files in
+ every game.&nbsp; Mame will look to neogeo.zip as the BIOS zip, if this file
+ is freestanding along with the other NeoGeo games, it will use it.
+ Otherwise, MameUI expects all the BIOS files in every NeoGeo game’s zip
+ file. DECO cassette, PGM, and Playchoice are some examples of other BIOS
+ games.&nbsp; An error message will occur if the BIOS files are not present
+ and those games are run.<span style="mso-spacerun: yes">&nbsp; </span>
+ Occasionally, new ROMs will need to be added to the BIOS packages
+ themselves, this occurred recently with the ‘ng-lo.rom’ and then 6 new
+ regional BIOSes in the neogeo.zip. MameUI will not audit a game as correct
+ without all the BIOS files with the correct CRC, while it may however be
+ possible to play the game after an error message.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l5 level1 lfo2; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>Games that support .CHD [compressed hunks of data]
+ images [Max Force, Killer Instinct I &amp; II, Area 51, Vicious Circle, War
+ Gods, beatmania games, and items in the CHD folder view on the left pane]
+ have to have their ROMs and .CHD files in a very specific directory
+ structure. The <b style="mso-bidi-font-weight: normal">single</b> large .CHD
+ file needs to go in the \ROMs\gamename\ directory, and have the *.CHD
+ extension, e.g. \ROMs\area51\area51.chd.<span style="mso-spacerun: yes">&nbsp;
+ </span>These games also have ROMs, these go one level up in the \ROMs folder
+ proper like any other game.<span style="mso-spacerun: yes">&nbsp; </span>So
+ in the end two files should exist for these games one *.zip in the \ROMs
+ folder and the *.chd in a sub-directory named for the game.<span style="mso-spacerun: yes">&nbsp;
+ </span></p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l5 level1 lfo2; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span><b>F5 </b>/ View • Refresh in the GUI. (Do this anytime
+ ROMs are altered, renaming, etc.)</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l5 level1 lfo2; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>If games are not displaying in the game list, ensure
+ the appropriate folder view on the far left is toggled, i.e. 'all games' and
+ it doesn't have filtering on it to stop the display of the game being
+ searched for.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l5 level1 lfo2; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>Use the Options • Reset to default menu choice and
+ check all of the items, restart MameUI.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l5 level1 lfo2; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>Final option, manually delete the MameUI32/64.ini and the
+ Mame.ini file in the \ini directory.</p>
+ <p style="BACKGROUND: white; MARGIN: 0in 0in 5pt 0.25in"><strong>
+ <span style="FONT-SIZE: 12pt; FONT-FAMILY: 'Arial','sans-serif'">Crash
+ Related Topics</span></strong><span style="FONT-SIZE: 12pt"><o:p></o:p></span></p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l3 level1 lfo4; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>Delete the \cfg\*.CFG, \diff\*.DIF, \ini\*.INI, or
+ \nv\*.NV files for the game that's crashing.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l3 level1 lfo4; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>Check to see that the zip file is valid and that it's
+ not corrupt or read-only.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l3 level1 lfo4; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>Verify the presence of the \ini directory under
+ MameUI.exe’s location.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l3 level1 lfo4; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>If versions of MameUI prior to .66 had been installed
+ on the system, verify that the old registry key has been deleted with
+ regedit.exe. HKEY_CURRENT_USER/Software/Freeware/Mame32</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l3 level1 lfo4; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>If crashing during an audit or an [<b>F5</b>] refresh,
+ it could be a corrupt .zip file. &nbsp;Extract it and re-zip. Pkunzip -t *.zip.
+ Note the file that dies during the audit and concentrate on that one. Also
+ verify that if zip files are not used, that the folder is not empty, or
+ contains partial or damaged ROMs.<span style="mso-spacerun: yes">&nbsp;
+ </span>Utilization of an external ROMs management utility like
+ <b style="mso-bidi-font-weight: normal"><a href="http://www.clrmame.com/">
+ <span style="COLOR: black">Clrmame</span></a></b> is recommended for repair
+ and identification of damaged sets.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l3 level1 lfo4; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>If seeing crashes or weird screen coloration, try
+ disabling running background apps [in Win98, use msconfig.exe], Norton
+ Crashguard, PnP programs like Kaaza, eDonkey, LimeWire, popup killers,
+ viruscans, MS Office Fast Find, the Microsoft Office Bar, Intellimouse, even
+ IE subscription updates, etc. Try moving MameUI away from compressed
+ [DriveSpace, DoubleSpace, stacker] drives.&nbsp; IntelliMouse and Office
+ Toolbars have been known to cause conflicts.<span style="mso-spacerun: yes">&nbsp;
+ </span>Also disable items in the system tray, like the CD player, etc.&nbsp;
+ It may also be necessary to download and install the latest version of
+ DirectX from Microsoft to prevent some errors.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l3 level1 lfo4; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>If MameUI crashes with an access violation it may be
+ the DEP (Data Execution Prevention) setting on that machine.<span style="mso-spacerun: yes">&nbsp;
+ </span>Add MameUI to the exception list in Control Panel / System / Advanced
+ / DEP.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l3 level1 lfo4; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>In some instances games may fail to start if the
+ installed directory path contains a large number of characters and spaces,
+ to alleviate this, install MameUI and its support directory structure into a
+ shorter path name, i.e. c:\MameUI\.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l3 level1 lfo4; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>MameUI may fail to launch its games in situations where
+ an errant, non-DX compliant, or badly written gamepad USB adapter
+ driver/software is used.<span style="mso-spacerun: yes">&nbsp; </span>This
+ includes some cheap Playstation, SNES, U64 converters.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l3 level1 lfo4; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>Games may fail to start if a video cards DirectX driver
+ is flakey, utilise an earlier one to test or re-install DirectX.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l3 level1 lfo4; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>Some recent viruses which attach to .exes will cause
+ page faults and access violations in MameUI when it's run.&nbsp; Use an
+ anti-virus check and verify MameUI is not infected.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l3 level1 lfo4; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>Odd behaviour may be exhibited in NT based systems if
+ attempting to run games while security/permissions settings do not allow it
+ or the user is not an administrator or member of the administrator’s group.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l3 level1 lfo4; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>Some anti-virus packages may slow down navigation
+ within the MameUI directory.<span style="mso-spacerun: yes">&nbsp; </span>
+ These are false positives and the anti-virus vendors should update their
+ virus dat signatures.<span style="mso-spacerun: yes">&nbsp; </span>It may
+ also be possible to exclude the MameUI.exe from real-time scanning as a
+ workaround.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l3 level1 lfo4; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>In the event of MameUI not launching a game and just
+ sitting there, try placing the entire MameUI directory and its
+ sub-directories including \ROMs into a more simple path, like c:\MameUI
+ instead of &quot;c:\Games for Fun\MameUI Goes Here\&quot;.<span style="mso-spacerun: yes">&nbsp;
+ </span>Simplify the path.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l3 level1 lfo4; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>On rare occasions malformed or damaged *.dat files
+ [history.dat, mameinfo.dat, cheat.dat] can cause MameUI to error on startup
+ when it tries to read them.<span style="mso-spacerun: yes">&nbsp; </span>
+ Remove those files individually to check for the one causing the crash.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l3 level1 lfo4; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>With the move to XML based Controller *.cfg files in
+ the .8x era it is necessary to remove the old \Ctrlr\*.ini files and use
+ their new *.cfg counterparts, otherwise MameUI may launch games then
+ immediately return to the GUI.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l3 level1 lfo4; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>Use the Options • Reset to default menu choice and
+ check all of the items, restart MameUI.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l3 level1 lfo4; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>Final option, manually delete the MameUI32/64.ini and the
+ Mame.ini file in the \ini directory.</p>
+ <p style="BACKGROUND: white; MARGIN: 0in 0in 5pt 0.25in"><strong>
+ <span style="FONT-SIZE: 12pt; FONT-FAMILY: 'Arial','sans-serif'">Performance
+ Related Topics [incl. sound scratchiness and stuttering]</span></strong><span style="FONT-SIZE: 12pt"><o:p></o:p></span></p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo6; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>MameUI will start to crackle, scratch, or echo if the
+ game running is too taxing for the processor in use. This can be visually
+ confirmed by turning on FPS display with [<b>F11</b>], and frame skip to
+ auto with [<b>F8</b>].&nbsp; If the FPS dips anywhere or frame skipping
+ rises anywhere during the game play, the game is maxing out the CPU and
+ sound breakup could occur.<span style="mso-spacerun: yes">&nbsp; It is also
+ possible to determine if the host CPU can run the game at 100% by
+ unthrottling the emulation with the [F10] key, if the CPU can do it, it will
+ run the game faster than 100%.&nbsp; </span>If
+ upgrading machine components, provide MameUI with as much hardware as
+ possible; a faster CPU makes the most difference, followed by video card,
+ and RAM.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo6; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>MameUI will start to 'skip' sound on games that run
+ slightly over the host monitor refresh rate in full-screen mode with
+ triplebuffer.&nbsp; For example, Pac-Man and other early Namco games run at
+ 60.60Hz and if they are run on a fixed 60Hz LCD monitor using triplebuffer
+ they will skip since the emulation is outpacing the monitor. In this
+ instance it is necessary to toggle on the 'Refresh Speed' switch in the
+ Options • Default Options • Advanced tab.&nbsp; This issue can also be
+ overcome by running the game in windowed mode.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo6; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>As Mame has continued development, infrastructure and
+ accuracy has improved.<span style="mso-spacerun: yes">&nbsp; </span>As such,
+ the optimization point of the games has shifted so that older games may be
+ slower unthrottled overall than when run on earlier versions.<span style="mso-spacerun: yes">&nbsp;
+ </span>For example, in version .36 Donkey Kong may have run unthrottled at
+ 1900 FPS, but in .77 it runs 1500 FPS.<span style="mso-spacerun: yes">&nbsp;
+ Thus older machines [P3 and prior] will continue to have trouble playing the
+ same games as earlier versions of Mame.&nbsp; M</span>odern machines should have no problem running these
+ early 80's games at their intended ~60 FPS rate.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo6; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>Periodically, speed-up hacks in the core code will be
+ removed to provide more accurate emulation of the games.<span style="mso-spacerun: yes">&nbsp;
+ </span>This can result in a drop in FPS for that particular family of games,
+ but can be offset by upgrading the machine MameUI is used on.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo6; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>On certain system setups (older), DirectDraw may be a
+ faster option than the D3D settings.<span style="mso-spacerun: yes">&nbsp;
+ </span>Choose Ddraw as the video mode in Default Options • Display. </p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo6; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>With the advent of MameUI .120 some historically
+ host CPU punishing games become playable on high end overclocked [3.6Ghz+]
+ Intel Core2Duo and Quad Cores.&nbsp; These processors combined with 64bit
+ operating systems and native 64bit MameUI provide almost 100% playability in
+ namcos21.c / namcos22.c / seattle.c and midvunit.c games.&nbsp; MameUI64 +
+ Vista64 + C2D chips is the best current combination for MameUI gaming on the
+ Windows platform.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo6; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>Some of the largest games supported by MameUI [NeoGeo
+ mainly] can run into the hundreds of megabyte range when they are
+ uncompressed into memory, this combined with MameUI in memory, plus OS
+ overhead can lead to very slow performance as Windows swaps the information
+ out to disk if there is not enough physical memory.&nbsp; 512M to 1G of
+ memory is recommended for all current games [.118].</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo6; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>AMD’s Cool ‘n Quiet technology on certain setups has
+ been known to cause slowdowns and lags while working in the MameUI GUI as
+ well as causing some in-game sound and graphic stuttering.<span style="mso-spacerun: yes">&nbsp;
+ </span>Disable the feature in the BIOS to verify.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo6; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>If seeing a severe slowdown in games that previously
+ didn't, toggle the 'Sleep when possible' menu item in Options •
+ Default Options • Miscellaneous.&nbsp; This happens to laptop users
+ particularly.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo6; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>Certain games in MameUI perform better on machines that
+ cannot handle them 100% if auto-frame skipping is turned <b>off</b>.&nbsp;
+ </p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo6; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>Certain games if run with D3D settings will perform
+ better if Triplebuffering is set to <b style="mso-bidi-font-weight: normal">
+ off</b>.<span style="mso-spacerun: yes">&nbsp; </span>D3D will double buffer
+ if triple is turned off.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo6; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>There may be certain sound anomalies in games if the
+ *.cfg files have become damaged, delete all the files in \cfg to remedy.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo6; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>If games are running too <b>fast</b>, verify in the
+ Options • Default Game Options menu that the throttle option is turned <b>on</b>,
+ that sync to monitor refresh is turned <b>off </b>and Wait for Vertical Sync
+ is turned <b>off</b> in the Options • Default Game Options • Advanced menu.<span style="mso-spacerun: yes">&nbsp;
+ </span></p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo6; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>MameUI video performance can be greatly enhanced if
+ running in 32bpp mode by ensuring AGP Fast Writes are toggled on in the
+ motherboard BIOS.<span style="mso-spacerun: yes">&nbsp; </span>The videocard
+ drivers also need to support this setting, the switch for this may be in the
+ advanced tab of the Windows display control panel applet.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo6; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>There are some soundcards like early PCI
+ <span class="SpellE">SoundBlaster</span> 128 that will cause scratchiness
+ if their hardware acceleration is turned up too high.&nbsp; Move the slider
+ down various steps to troubleshoot in Control Panel • Sound • Advanced
+ Audio.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo6; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>There are some older video card/video driver
+ combinations that <b>can</b> do hardware stretching, but are slower than
+ running with hardware stretch <b>off</b>. If games are too sluggish with the
+ hw stretch on, toggle it off if possible.&nbsp; Some old PCI graphic cards have
+ been seen to have this problem.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo6; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>If a large number of icons are being used in the GUI,
+ it is typically quicker to unzip them into the \icons folder instead of
+ leaving them zipped as icons.zip.</p>
+ <p style="BACKGROUND: white; MARGIN: 0in 0in 5pt 0.25in"><strong>
+ <span style="FONT-SIZE: 12pt; FONT-FAMILY: 'Arial','sans-serif'">Joysticks /
+ Mice / Gamepad / Lightgun Related Topics</span></strong><span style="FONT-SIZE: 12pt"><o:p></o:p></span></p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l6 level1 lfo8; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>Gamepads and mouse are disabled by default on first
+ MameUI launch, enable them by toggling their check boxes on in Options •
+ Default Options • Controllers.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l6 level1 lfo8; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>MameUI relies on DirectX’s DirectInput for joystick
+ support, ensure the game pad is seen as present and active in the game
+ controller control panel: start menu • settings • control panel • game
+ controllers.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l6 level1 lfo8; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>If seeing keys ‘stick’ while playing, verify that the
+ operating systems’ accessibility options and their shortcut keys are turned
+ off, things like ‘sticky keys’, and verify that Popup killers or other
+ resident programs are not mapped to the sticking key.<span style="mso-spacerun: yes">&nbsp;
+ </span>Also keys can stick on some KVM switch boxes if their hotkey switches
+ are set to [<b style="mso-bidi-font-weight: normal">Ctrl</b>] etc.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l6 level1 lfo8; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>Daisy chained gameport Microsoft Sidewinders [original]
+ in Win2k or XP do not work very well.&nbsp; Use USB gamepads instead. Single
+ Sidewinders may also cause odd behavior like ghost button presses.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l6 level1 lfo8; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>Lightguns and mice are treated like mappable joysticks
+ in current versions of MameUI.<span style="mso-spacerun: yes">&nbsp; </span>If
+ multiple mice are in use it is necessary to enter the in-game [<b style="mso-bidi-font-weight: normal">TAB</b>]
+ menu and map their axes in the ‘Input General’ section.</p>
+ <p style="BACKGROUND: white; MARGIN: 0in 0in 5pt 0.25in"><strong>
+ <span style="FONT-SIZE: 12pt; FONT-FAMILY: 'Arial','sans-serif'">Settings
+ Topics</span></strong><span style="FONT-SIZE: 12pt"><o:p></o:p></span></p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l4 level1 lfo10; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>With the advent of version 0.66 MameUI no longer stores
+ its configuration information in the Windows registry, it stores it in
+ \MameUI32/64.ini and \ini\Mame.ini.<span style="mso-spacerun: yes">&nbsp;
+ </span>To remove vestiges of the old versions, run regedit.exe and delete
+ the following key: HKEY_CURRENT_USER\Software\Freeware\MameUI.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l4 level1 lfo10; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>If having trouble saving keyboard mappings and
+ configuration, verify that the *.cfg files are not read-only and that a
+ \MameUI\cfg directory is present.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l4 level1 lfo10; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>If GUI settings and/or audit results aren’t being
+ maintained, verify the existence of a writeable MameUI32/64.ini and that the
+ \ini directory is present and writeable [not read only] under the MameUI.exe
+ location.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l4 level1 lfo10; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>If baseline Mame settings like directories and game
+ options are not being maintained, verify the existence of a writeable
+ Mame.ini [not read-only] in the \ini directory and that the \ini directory
+ itself is writeable.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l4 level1 lfo10; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>If experiencing odd behavior with MameUI saving files
+ or not appearing to clear its settings, verify that there are not multiple
+ shortcuts pointing to different versions, that an .exe is not being used by
+ itself instead of a shortcut to the .exe, or a shortcut pointing to an old
+ version of the .exe.<span style="mso-spacerun: yes">&nbsp; </span>Also
+ verify that there are not multiple versions of MameUI running in memory as
+ the last one out will save the settings.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l4 level1 lfo10; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>If seeing MameUI folders being created on the desktop,
+ verify that the .exe itself is not sitting on the desktop and being launched
+ which is not correct. Verify that a short-cut to the original is being
+ properly utilised.<span style="mso-spacerun: yes">&nbsp; </span>This means
+ setting the properties on the shortcut to ‘start in’ the appropriate
+ directory that the original .exe resides in.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l4 level1 lfo10; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>If the in-game [<b>TAB</b>] menu is no longer working
+ or can’t be accessed, it has been mapped to another key; delete the
+ default.cfg file in the \MameUI\cfg directory.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l4 level1 lfo10; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>If in-game [<b style="mso-bidi-font-weight: normal">TAB</b>]
+ settings need to be completely reset due to bad mappings, delete the
+ default.cfg file in the \MameUI\cfg directory.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l4 level1 lfo10; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>To remove the mappings on an individual game from the [<b style="mso-bidi-font-weight: normal">TAB</b>]
+ menu, delete its *.cfg file in the \MameUI\cfg directory, i.e. dkong.cfg,
+ asteroid.cfg.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l4 level1 lfo10; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>If having trouble mapping keys with the [<b style="mso-bidi-font-weight: normal">TAB</b>]
+ menu, verify the game is not paused while mapping.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l4 level1 lfo10; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>MameUI inherits a limit from baseline Mame on the
+ amount of characters that can be used for the ROM paths.<span style="mso-spacerun: yes">&nbsp;
+ </span>If directory settings are not being maintained, pare down the number
+ and names of the directories being added or simply use a single \ROMs
+ directory which MameUI expects.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l4 level1 lfo10; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>If having trouble getting games to display in the
+ proper orientation [they will not rotate] verify that rotation is set to
+ default, and that there are no video-card specific hot-keys set in Windows’
+ advanced display settings tab that could impact rotation, ATI and NVIDIA
+ both now include the ability to rotate the Windows screen to portrait
+ orientation.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l4 level1 lfo10; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>If games are appearing sideways regardless of rotation
+ settings, an onboard Intel graphic chipset or similar may be in use.<span style="mso-spacerun: yes">&nbsp;
+ </span>Disable the auto rotation capabilities of the Intel graphic chip.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l4 level1 lfo10; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>MameUI now supports the core’s –<span class="SpellE">mt</span>
+ switch.<span style="mso-spacerun: yes">&nbsp; </span>This allows
+ multi-threading of the final video blit during games. Dual core chips [X2,
+ C2D, etc.] can take advantage of this feature to offload the work to the
+ second thread and make MameUI more efficient.<span style="mso-spacerun: yes">&nbsp;
+ </span>Speed gains are seen on the unthrottled GPU bound games like dkong,
+ invaders, etc.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l4 level1 lfo10; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>MameUI now stores its settings in external *.ini files
+ instead of the registry.<span style="mso-spacerun: yes">&nbsp; </span>If it
+ is necessary to return MameUI to baseline, simply delete the MameUI32/64.ini
+ file and the Mame.ini file in the \ini directory.<span style="mso-spacerun: yes">&nbsp;
+ </span>The next time MameUI runs it will recreate those files with the
+ default settings.</p>
+ <p style="BACKGROUND: white; MARGIN: 0in 0in 5pt 0.25in"><strong>
+ <span style="FONT-SIZE: 12pt; FONT-FAMILY: 'Arial','sans-serif'">GUI Related
+ Topics &amp; Miscellaneous Tips</span></strong><span style="FONT-SIZE: 12pt"><o:p></o:p></span></p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo12; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>MameUI will read freestanding icons in the \icons
+ directory first, then icons in the icons.zip file.&nbsp; </p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo12; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>If seeing icon palette corruption in the GUI when
+ returning from a full screen game, try increasing the desktop color depth to
+ 24bpp or 32bpp.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo12; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>Sometimes icons in large icon view may appear to be
+ missing their white color or have portions transparent, this is the result
+ of having white chosen as the windows desktop window setting in Control
+ Panel / Display.&nbsp; Change the window setting to slightly off-white or
+ another color to return the icons to their appropriate look.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo12; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>To toggle the MameUI UI fullscreen [no Windows titlebar
+ and potentially no toolbar or status bar] and back use the [<b style="mso-bidi-font-weight: normal">F11</b>]
+ key.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo12; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>The GUI text may disappear from the folder view if the
+ GUI font color chosen is very close to the Windows system background color
+ scheme or if it is a large enough font [or bold] to anti-alias. </p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo12; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>MameUI no longer supports *.bmp format and may show a
+ blank or empty background if a *.bmp is erroneously renamed and used for
+ bkground.png, or if the bkground directory is marked as read only and MameUI
+ cannot create the bkground.png file when run.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo12; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>To return to a blank gray background in the GUI, delete
+ the bkground.png file in the \MameUI\bkground directory.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo12; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>Quickly navigate through games in the details view by
+ simply typing the first few letters in the name of the game, the highlight
+ will jump to that game and become more granular as the name is typed out.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo12; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>Select a random game with [<b>Ctrl-R</b>].</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo12; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>Audit an individual game with [<b>Alt-A</b>].</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo12; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>Various arcade game controller companies produce custom
+ made configuration files for their setups; these *.cfg files need to go in
+ the \MameUI\ctrlr folder to be recognized in the MameUI controllers tab.<span style="mso-spacerun: yes">&nbsp;
+ </span>These files are the responsibility of the controller companies
+ themselves and are not included or endorsed by MameUI, they can typically be
+ found at the companies’ web sites.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo12; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>In grouped view, clones are indented regardless of
+ whether their parents are visible; in a non-All Games folder this means that
+ there is not a direct relationship of a clone to the game item above it if
+ that games’ parent is not shown.&nbsp; This behaviour can be changed by the
+ setting Interface Options • No offset for clones missing parent in view.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo12; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>Certain items in the GUI may be missing if MameUI is
+ run on a Win2K/XP box and the user is not an admin or member of the admin
+ group.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo12; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>The unavailable folder and the available filter are
+ disabled in MameUI due to a direct request from Nicola.</p>
+ <p style="BACKGROUND: white; MARGIN: 0in 0in 5pt 0.25in"><strong>
+ <span style="FONT-SIZE: 12pt; FONT-FAMILY: 'Arial','sans-serif'">Keyboard
+ Shortcuts</span></strong><span style="FONT-SIZE: 12pt"><o:p></o:p></span></p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l2 level1 lfo14; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span><b style="mso-bidi-font-weight: normal">Type letters of
+ game name</b> to jump directly to its first instance.<span style="mso-spacerun: yes">&nbsp;
+ </span><b style="mso-bidi-font-weight: normal">Alt-1 through Alt-7</b>:
+ Toggle art views.<span style="mso-spacerun: yes">&nbsp; </span>
+ <b style="mso-bidi-font-weight: normal">Alt-A</b>: Audit selected game.<span style="mso-spacerun: yes">&nbsp;
+ </span><b style="mso-bidi-font-weight: normal">Alt-B</b>: Toggle art tabs.<span style="mso-spacerun: yes">&nbsp;
+ </span><b style="mso-bidi-font-weight: normal">Alt-D</b>: Toggle folder
+ pane.<span style="mso-spacerun: yes">&nbsp; </span>
+ <b style="mso-bidi-font-weight: normal">Alt-P</b>: Toggle screenshot area.<span style="mso-spacerun: yes">&nbsp;
+ </span><b style="mso-bidi-font-weight: normal">Alt-S</b>: Toggle status bar.
+ <b style="mso-bidi-font-weight: normal">Alt-T</b>: Toggle toolbar.
+ <b style="mso-bidi-font-weight: normal">Alt-U</b>: Audit selected folder.
+ <b style="mso-bidi-font-weight: normal">Alt-Enter</b>: Show games’
+ properties.<span style="mso-spacerun: yes">&nbsp; </span>
+ <b style="mso-bidi-font-weight: normal">Ctrl-F</b>: Text filter.<span style="mso-spacerun: yes">&nbsp;
+ </span><b style="mso-bidi-font-weight: normal">Ctrl-R</b>: Choose random
+ game from GUI. <b style="mso-bidi-font-weight: normal">Ctrl-Page Up</b>:
+ Scroll up in history.dat text window.<span style="mso-spacerun: yes">&nbsp;
+ </span><b style="mso-bidi-font-weight: normal">Ctrl-Page Down</b>: Scroll
+ down in history.dat text window. <b style="mso-bidi-font-weight: normal">F11</b>:
+ Fullscreen mode toggle.</p>
+ <p style="BACKGROUND: white; MARGIN: 0in 0in 5pt 0.25in"><strong>
+ <span style="FONT-SIZE: 12pt; FONT-FAMILY: 'Arial','sans-serif'">Refresh
+ Restart Instructions<o:p></o:p></span></strong></p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l2 level1 lfo14; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span><b style="mso-bidi-font-weight: normal">a.</b>
+ Re-download the binary dist package from
+ <a href="http://mameui.info/">
+ <span style="COLOR: black">MameUI</span></a>.<span style="mso-spacerun: yes">&nbsp;
+ </span><b style="mso-bidi-font-weight: normal">b.</b> Disable running
+ anti-virus packages before extracting the files.
+ <b style="mso-bidi-font-weight: normal">c.</b> Double-click the
+ self-extracting archive. <span style="mso-spacerun: yes">&nbsp;</span><b style="mso-bidi-font-weight: normal">d.</b>
+ When prompted, enter “c:\” [no quotes] as the destination folder.<span style="mso-spacerun: yes">&nbsp;
+ </span><b style="mso-bidi-font-weight: normal">e.</b> Launch MameUI by
+ double-clicking its .exe, allow the audit/refresh to finish, it should go
+ quick as there are no ROMs.<span style="mso-spacerun: yes">&nbsp; </span>
+ <b style="mso-bidi-font-weight: normal">f.</b> Put a couple of zipped ROMs
+ from <a href="http://www.mamedev.org/roms"><span style="COLOR: black">
+ mamedev.org</span></a> in the c:\MameUI\ROMs directory.<span style="mso-spacerun: yes">&nbsp;
+ </span><b style="mso-bidi-font-weight: normal">g.</b> Launch MameUI, audit
+ the two games individually with [<b style="mso-bidi-font-weight: normal">Alt-A</b>].<span style="mso-spacerun: yes">&nbsp;
+ </span><b style="mso-bidi-font-weight: normal">h.</b> Launch Robby or
+ Gridlee.<span style="mso-spacerun: yes">&nbsp; </span>
+ <b style="mso-bidi-font-weight: normal">i.</b> Quit the game, then quit
+ MameUI.<span style="mso-spacerun: yes">&nbsp; </span>
+ <b style="mso-bidi-font-weight: normal">j.</b> Add more ROMs and try again.<br style="mso-special-character: line-break">
+ <br style="mso-special-character: line-break">
+ </p>
+ <p style="MARGIN: 0in 0in 5pt 0.25in"><span style="FONT-SIZE: 8pt">
+ <span style="mso-no-proof: yes">8/17/2007 1:17:01 AM</span> / john iv<o:p></o:p></span></p>
+</div>
+
+
+</html>
diff --git a/docs/release/src/osd/winui/help/html/mameui_systemreq.htm b/docs/release/src/osd/winui/help/html/mameui_systemreq.htm
new file mode 100644
index 00000000000..65871f6a806
--- /dev/null
+++ b/docs/release/src/osd/winui/help/html/mameui_systemreq.htm
@@ -0,0 +1,82 @@
+<html>
+
+<head>
+<meta name="GENERATOR" content="Microsoft FrontPage 12.0">
+<meta name="ProgId" content="FrontPage.Editor.Document">
+<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
+<title>MameUI System Requirements</title>
+<style>
+<!--
+p
+ {margin-right:0in;
+ margin-left:0in;
+ font-size:10.0pt;
+ font-family:Arial;
+ color:black}
+h1
+ {margin-top:12.0pt;
+ margin-right:0in;
+ margin-bottom:3.0pt;
+ margin-left:0in;
+ page-break-after:avoid;
+ font-size:16.0pt;
+ font-family:Arial;
+ color:windowtext;
+ font-weight:bold}
+h2
+ {margin-top:12.0pt;
+ margin-right:0in;
+ margin-bottom:3.0pt;
+ margin-left:0in;
+ page-break-after:avoid;
+ font-size:14.0pt;
+ font-family:Arial;
+ font-style:italic}
+ p.MsoNormal
+ {mso-style-parent:"";
+ margin-bottom:.0001pt;
+ font-size:10.0pt;
+ font-family:Arial;
+ margin-left:0in; margin-right:0in; margin-top:0in}
+-->
+</style>
+<base target="_blank">
+</head>
+
+<body background="../images/bkground.gif">
+
+<p class="MsoNormal" style="page-break-after: avoid; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin-bottom: 3.0pt">
+<b><i><span style="font-size: 14.0pt">System Requirements</span></i></b></p>
+<p class="MsoNormal">MameUI runs on Microsoft Windows 98SE, Windows
+ME, Windows 2000, Windows XP, Windows 2003 Server, Windows Vista, and Windows 7.</p>
+<p class="MsoNormal">&nbsp;</p>
+<p class="MsoNormal">Because of the wide range of arcade hardware supported by
+MameUI, system requirements vary considerably.&nbsp; The
+more complex the original arcade hardware, the more CPU power is needed to
+emulate it.&nbsp; Mame strives for accuracy in its emulation; as such, over
+time, the performance point shifts as the underlying engine has been reworked
+and refined.&nbsp; Early games now require a bit more PC processing power to run
+than they did in earlier versions of Mame.&nbsp; This is typically not a great
+concern as modern PCs can run these early games easily at thousands of times
+their original speed.&nbsp; More recent games can often take upwards of 512M of memory, and
+Phenom / Core2 chips to emulate at 100% speed with effects.&nbsp; For those
+wishing to upgrade their systems; <b>MameUI benefits most from adding more CPU
+power, using a 64bit build on a 64bit OS</b>, and then memory and upgraded video card.</p>
+<p class="MsoNormal">&nbsp;</p>
+<p class="MsoNormal">Currently there are some games supported in MameUI which are not
+playable at full frame rate on today's PC hardware.&nbsp; Many of these are
+mid to late 90's and beyond advanced 3D games which MameUI renders in software for accuracy sake.&nbsp;
+Recent developments in Mame [.120] have allowed some of these games to get close
+to 100% playable on high-end overclocked [3.6Ghz+] Intel Core2Duo and Quad Core
+cpus.&nbsp; Additionally the fastest combination for MameUI is one of the
+previously mentioned CPUs plus the 64bit version of MameUI combined with a 64bit
+Operating System like Windows 7 x64.</p>
+
+<p class="MsoNormal">&nbsp;</p>
+<p class="MsoNormal"><font size="1">
+<!--webbot bot="Timestamp" s-type="EDITED" s-format="%Y-%m-%d %I:%M %p %Z" startspan -->2009-12-24 12:33 AM -0800<!--webbot bot="Timestamp" endspan i-checksum="37922" -->
+/ john iv</font></p>
+
+</body>
+
+</html> \ No newline at end of file
diff --git a/docs/release/src/osd/winui/help/html/mameui_viewmenu.htm b/docs/release/src/osd/winui/help/html/mameui_viewmenu.htm
new file mode 100644
index 00000000000..6e897d4a85d
--- /dev/null
+++ b/docs/release/src/osd/winui/help/html/mameui_viewmenu.htm
@@ -0,0 +1,160 @@
+<html>
+
+<head>
+<meta name="GENERATOR" content="Microsoft FrontPage 12.0">
+<meta name="ProgId" content="FrontPage.Editor.Document">
+<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
+<title>MameUI View Menu</title>
+<style>
+<!--
+p
+ {margin-right:0in;
+ margin-left:0in;
+ font-size:10.0pt;
+ font-family:Arial;
+ color:black}
+h1
+ {margin-top:12.0pt;
+ margin-right:0in;
+ margin-bottom:3.0pt;
+ margin-left:0in;
+ page-break-after:avoid;
+ font-size:16.0pt;
+ font-family:Arial;
+ color:windowtext;
+ font-weight:bold}
+h2
+ {margin-top:12.0pt;
+ margin-right:0in;
+ margin-bottom:3.0pt;
+ margin-left:0in;
+ page-break-after:avoid;
+ font-size:14.0pt;
+ font-family:Arial;
+ font-style:italic}
+ p.MsoNormal
+ {mso-style-parent:"";
+ margin-bottom:.0001pt;
+ font-size:10.0pt;
+ font-family:Arial;
+ margin-left:0in; margin-right:0in; margin-top:0in}
+-->
+</style>
+</head>
+
+<body background="../images/bkground.gif">
+
+<h2>View Menu</h2>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>Toolbar</b> : Selecting this option from the view menu will
+toggle the toolbar on or off.</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>Status Bar</b> : Selecting this option from the view menu will
+toggle the status bar on or off.</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>Folder List</b> : Selecting this option from the view menu will
+toggle the folder list view on or off.</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>Screenshot</b> : Selecting this option from the view menu will
+toggle the screenshot area on or off.</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>Screenshot Tab</b> : Selecting this option from the view menu will
+toggle the screenshot area tabs, allowing to choose between the multiple
+different art types.&nbsp; Note that history.dat information is only displayed
+in the snapshot view.</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>Fullscreen</b> : Selecting this option from the view menu will
+
+switch the GUI into full screen mode.&nbsp; This will expand to fill the current
+desktop resolution, it will hide the menu bar, and it will hide the windows
+taskbar.&nbsp; Toggle in and out of it with F11, other alt shortcut keys are
+still active.</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>Show Pictures</b> : Selecting this option from the view menu will
+allow toggling the display of the individual art tabs in the screenshot area.</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>Large Icons</b> : Selecting this option from the view menu will
+display large icons in the gamelist area.</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>Small Icons</b> : Selecting this option from the view menu will
+display small icons in a different grid pattern in the gamelist area.</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>List</b> : Selecting this option from the view menu will
+display small icons in the gamelist area.</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>Details</b> : Selecting this option from the view menu will
+display small icons along with full game name and any other fields chosen with
+the View • Customize Fields option.</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>Grouped</b> : Selecting this option from the view menu will
+display small icons along with full game name and any other fields chosen with
+the View • Customize Fields option, however the clone games will be displayed
+indented and alphabetized under their parents..</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>Arrange Icons </b>: Selecting this option from the view menu
+will order the gamelist area by the choice made; game, directory, manufacturer,
+times played, type, or year.</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>Line Up Icons </b>: Selecting this option from the view menu
+will re-align the icons in views where it does not automatically happen.</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>Refresh </b>: Selecting this option from the view menu will
+initiate an update of the gamelist while MameUI searches for the existence of
+zip files that match game directory names.&nbsp; This is not as exhaustive as the
+audit function on the File menu.</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>Custom Filters </b>: Selecting this option from the view menu
+will allow for the selective hiding of certain types of games.&nbsp; Manually typing
+in a phrase in the filter text box will only display games that have that text
+in their names [note valid input for the description filter are, game name,
+driver name e.g. 'cps2.c', and manufacturer].</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>Customize Fields </b>: Selecting this option from the view menu
+will allow choosing which fields are displayed in columnar mode in the game list
+details view, selectable from the View • Details.&nbsp; The columns can also be
+ordered by moving them up and down the right hand side of the well.&nbsp; The game
+name field is always the first item and cannot be changed. </p>
+
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">&nbsp;</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<font size="1">
+<!--webbot bot="Timestamp" s-type="EDITED" s-format="%Y-%m-%d %I:%M %p %Z" startspan -->2007-11-11 01:11 AM -0800<!--webbot bot="Timestamp" endspan i-checksum="37427" -->
+/ john iv</font></p>
+
+</body>
+
+</html> \ No newline at end of file
diff --git a/docs/release/src/osd/winui/help/html/mameui_visual_elements.htm b/docs/release/src/osd/winui/help/html/mameui_visual_elements.htm
new file mode 100644
index 00000000000..c25e916cf8d
--- /dev/null
+++ b/docs/release/src/osd/winui/help/html/mameui_visual_elements.htm
@@ -0,0 +1,155 @@
+<html>
+
+<head>
+<meta name="GENERATOR" content="Microsoft FrontPage 12.0">
+<meta name="ProgId" content="FrontPage.Editor.Document">
+<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
+<title>MameUI Toolbar / Status Bar / Windows</title>
+<style>
+<!--
+p
+ {margin-right:0in;
+ margin-left:0in;
+ font-size:10.0pt;
+ font-family:Arial;
+ color:black}
+h1
+ {margin-top:12.0pt;
+ margin-right:0in;
+ margin-bottom:3.0pt;
+ margin-left:0in;
+ page-break-after:avoid;
+ font-size:16.0pt;
+ font-family:Arial;
+ color:windowtext;
+ font-weight:bold}
+h2
+ {margin-top:12.0pt;
+ margin-right:0in;
+ margin-bottom:3.0pt;
+ margin-left:0in;
+ page-break-after:avoid;
+ font-size:14.0pt;
+ font-family:Arial;
+ font-style:italic}
+ p.MsoNormal
+ {mso-style-parent:"";
+ margin-bottom:.0001pt;
+ font-size:10.0pt;
+ font-family:Arial;
+ margin-left:0in; margin-right:0in; margin-top:0in}
+-->
+</style>
+</head>
+
+<body background="../images/bkground.gif">
+
+<h2>MameUI Toolbar / Status Bar / Windows</h2>
+<p class="MsoNormal">&nbsp;</p>
+<p class="MsoNormal">The MameUI <b>toolbar</b> extends the width of the application
+at the top and
+can be toggled on by using the View • Toolbar menu item, or the <b>Alt-T </b>keyboard
+shortcut.&nbsp; The buttons on the toolbar from left to right are : toggle folder
+list, toggle screenshot, large icons view, small icons view, list view, details
+view, help about, and help file.&nbsp; Click the items to toggle them on or off.&nbsp;
+The toolbar also contains the game search box, typing into this text box will
+filter out games.&nbsp; It is similar in function to the <strong>Ctrl-F</strong> filter but only
+filters on game descriptive name, it is also accessible with the <strong>Ctrl-E</strong>
+shortcut.</p>
+<p class="MsoNormal">
+<img border="0" src="../images/toolbar.gif" width="632" height="28"></p>
+<p class="MsoNormal">&nbsp;</p>
+<p class="MsoNormal">The MameUI <b>status bar</b> extends the width of the application
+at the bottom and can be toggled on by using the View • Status Bar menu item, or
+the <b>Alt-S</b> keyboard shortcut.&nbsp; The status bar indicates the full name of the game
+highlighted, and gives its internal status flag as to whether it’s working or if
+there are some issues with the emulation.&nbsp; The status bar also indicates the
+game count for the particular view used.</p>
+<p class="MsoNormal">
+<img border="0" src="../images/statusbar.gif" width="632" height="20"></p>
+<p class="MsoNormal">
+&nbsp;</p>
+<p class="MsoNormal"><b>MameUI can be divided into three windowed sections:</b></p>
+<p class="MsoNormal">&nbsp;</p>
+<p class="MsoNormal">The first section on the far left is the <b>folder view</b>,
+toggled on by using the View • Folder List menu item, or the Alt-D keyboard
+shortcut.&nbsp; This contains a tree style list that expands for certain items like
+year, manufacturer, and custom.&nbsp; By selecting one of these items, MameUI will
+display the games that meet that criterion.&nbsp; For example: selecting year / 1978,
+MameUI will
+display all the supported games manufactured in 1978.&nbsp; </p>
+<ul>
+ <li>
+<p class="MsoNormal">MameUI will display user
+created folders based on *.ini files located in the \MameUI\folders directory.&nbsp;
+See files in that location for examples.&nbsp; This location also houses the
+favorites.ini, where favorite games can be added to the text file and easily
+moved to other computers.<br>
+&nbsp; </p>
+ </li>
+ <li>
+<p class="MsoNormal">MameUI supports dragging and dropping games from the middle
+section game list into a custom folder in the left pane.&nbsp; MameUI supports
+the same procedure by secondary clicking on the game in the game list and
+choosing the 'add to custom folder' option.<br>
+&nbsp;</p>
+ </li>
+ <li>
+<p class="MsoNormal">MameUI also supports secondary clicking on a custom folder
+and renaming it, editing the custom folder name can also be accomplished by
+clicking the name of the folder three times quickly.<br>
+&nbsp;</p>
+ </li>
+ <li>
+<p class="MsoNormal">Secondary clicking on any of the folders also allows
+selectively displaying or hiding them in the tree.<br>
+&nbsp;</p>
+ </li>
+ <li>
+<p class="MsoNormal">Secondary clicking the vector folders and the \source\gamedriver
+folder allows for customizing
+away from default the games in that folder.<font face="Arial" size="2">&nbsp;
+Secondary click on the vector folder • properties in the folder pane to set
+options for that group of games.&nbsp; To alter global settings for game
+families select the properties for it, e.g. dkong.c for the Donkey Kong family
+of games&nbsp; This will change options for
+all games based on that driver.&nbsp; Thus there is the possibility to have
+four levels of alterations when a game's individual properties are viewed
+in All Games or any folder.&nbsp; The changes can be backed out of
+hierarchically with reset to default on each respective properties, or by
+deleting the .ini files in the \ini directory.</font></p>
+ </li>
+</ul>
+<p class="MsoNormal">The second, middle section of MameUI is the <b>game list</b>,
+always toggled on. &nbsp;This is where MameUI lists all of the games chosen
+in the left folder view.&nbsp; MameUI has the option to display the games as large
+icons, small icons, a list icons view, or details.&nbsp; Choosing details allows
+MameUI to display, in columnar mode, the game name as well as additional
+informational fields, chosen in the View • Customize Fields menu item.</p>
+<p class="MsoNormal">&nbsp;</p>
+<p class="MsoNormal">The third section, on the far right, is the <b>screenshot/art
+area</b>, toggled on by using the View • Screenshot menu item, or the <b>Alt-P</b> keyboard
+shortcut.&nbsp; This area of the GUI will display the optional artwork for each game
+selected, the artwork modes are toggled through by clicking on the picture area.&nbsp; The
+modes are: screenshot, flyer, cabinet, marquees, title shots, control panels,
+and history.&nbsp; <b>Alt-B</b>
+will toggle the screenshot tabs which give a visual selection method besides
+clicking the artwork area.&nbsp; Secondary clicking on the screenshot area will
+also bring up a shortcut dialogue with the file types available and allow
+toggling on or off individual tabs.&nbsp; The area under the screenshot mode
+will also display the history.dat information if that file is present [it will
+not display in the screenshot area if the history tab is enabled].&nbsp; Each of
+the tabs can be navigated to by their accelerator keys, <b>Alt-1</b>, <b>Alt-2</b>,
+<b>Alt-3</b>, etc. Further
+information about these files is in
+<a style="color: blue; text-decoration: underline; text-underline: single" href="mameui_art.htm">Art and Support Files</a>.</p>
+
+<p class="MsoNormal">&nbsp;</p>
+
+<p class="MsoNormal"><font size="1">
+<!--webbot bot="Timestamp" s-type="EDITED" s-format="%Y-%m-%d %I:%M %p %Z" startspan -->2008-07-16 12:03 AM -0700<!--webbot bot="Timestamp" endspan i-checksum="37949" -->
+/ john iv</font></p>
+
+</body>
+
+</html> \ No newline at end of file
diff --git a/docs/release/src/osd/winui/help/html/mameui_whatsnew32.htm b/docs/release/src/osd/winui/help/html/mameui_whatsnew32.htm
new file mode 100644
index 00000000000..f686d1c627c
--- /dev/null
+++ b/docs/release/src/osd/winui/help/html/mameui_whatsnew32.htm
@@ -0,0 +1,2058 @@
+</style>
+
+<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office">
+
+<title>MameUI Whatsnew</title>
+<!--[if gte mso 9]><xml>
+ <o:DocumentProperties>
+ <o:Author>john4</o:Author>
+ <o:Template>Normal</o:Template>
+ <o:LastAuthor>john4</o:LastAuthor>
+ <o:Revision>100</o:Revision>
+ <o:TotalTime>113</o:TotalTime>
+ <o:Created>2003-11-03T04:49:00Z</o:Created>
+ <o:LastSaved>2004-08-30T18:21:00Z</o:LastSaved>
+ <o:Pages>6</o:Pages>
+ <o:Words>3470</o:Words>
+ <o:Characters>19785</o:Characters>
+ <o:Lines>164</o:Lines>
+ <o:Paragraphs>46</o:Paragraphs>
+ <o:CharactersWithSpaces>23209</o:CharactersWithSpaces>
+ <o:Version>11.6360</o:Version>
+ </o:DocumentProperties>
+</xml><![endif]--><!--[if gte mso 9]><xml>
+ <w:WordDocument>
+ <w:DisplayBackgroundShape/>
+ <w:ActiveWritingStyle Lang="EN-US" VendorID="64" DLLVersion="131078"
+ NLCheck="1">1</w:ActiveWritingStyle>
+ <w:SpellingState>Clean</w:SpellingState>
+ <w:GrammarState>Clean</w:GrammarState>
+ <w:ValidateAgainstSchemas/>
+ <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
+ <w:IgnoreMixedContent>false</w:IgnoreMixedContent>
+ <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
+ <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
+ </w:WordDocument>
+</xml><![endif]--><!--[if gte mso 9]><xml>
+ <w:LatentStyles DefLockedState="false" LatentStyleCount="156">
+ </w:LatentStyles>
+</xml><![endif]-->
+<style>
+<!--
+ /* Font Definitions */
+ @font-face
+ {font-family:Wingdings;
+ panose-1:5 0 0 0 0 0 0 0 0 0;
+ mso-font-charset:2;
+ mso-generic-font-family:auto;
+ mso-font-pitch:variable;
+ mso-font-signature:0 268435456 0 0 -2147483648 0;}
+@font-face
+ {font-family:SimSun;
+ panose-1:2 1 6 0 3 1 1 1 1 1;
+ mso-font-alt:\5B8B\4F53;
+ mso-font-charset:134;
+ mso-generic-font-family:auto;
+ mso-font-format:other;
+ mso-font-pitch:variable;
+ mso-font-signature:1 135135232 16 0 262144 0;}
+@font-face
+ {font-family:"\@SimSun";
+ mso-font-charset:134;
+ mso-generic-font-family:auto;
+ mso-font-pitch:variable;
+ mso-font-signature:3 135135232 16 0 262145 0;}
+ /* Style Definitions */
+ p.MsoNormal, li.MsoNormal, div.MsoNormal
+ {mso-style-parent:"";
+ margin-bottom:.0001pt;
+ mso-pagination:widow-orphan;
+ font-size:10.0pt;
+ font-family:Arial;
+ mso-fareast-font-family:"Times New Roman";
+ color:windowtext; margin-left:0in; margin-right:0in; margin-top:0in}
+h1
+ {margin-top:12.0pt;
+ margin-right:0in;
+ margin-bottom:3.0pt;
+ margin-left:0in;
+ mso-pagination:widow-orphan;
+ page-break-after:avoid;
+ mso-outline-level:1;
+ font-size:16.0pt;
+ font-family:Arial;
+ mso-fareast-font-family:SimSun;
+ color:windowtext;
+ font-weight:bold;}
+h2
+ {margin-top:12.0pt;
+ margin-right:0in;
+ margin-bottom:3.0pt;
+ margin-left:0in;
+ mso-pagination:widow-orphan;
+ page-break-after:avoid;
+ mso-outline-level:2;
+ font-size:14.0pt;
+ font-family:Arial;
+ mso-fareast-font-family:SimSun;
+ color:windowtext;
+ font-weight:bold;
+ font-style:italic;}
+p
+ {mso-margin-top-alt:auto;
+ margin-right:0in;
+ mso-margin-bottom-alt:auto;
+ margin-left:0in;
+ mso-pagination:widow-orphan;
+ font-size:10.0pt;
+ font-family:Arial;
+ mso-fareast-font-family:"Times New Roman";
+ color:black;}
+span.GramE
+ {mso-style-name:"";
+ mso-gram-e:yes}
+@page Section1
+ {size:8.5in 11.0in;
+ margin:1.0in 1.25in 1.0in 1.25in;
+ mso-header-margin:.5in;
+ mso-footer-margin:.5in;
+ mso-paper-source:0;}
+div.Section1
+ {page:Section1;}
+ /* List Definitions */
+ @list l0
+ {mso-list-id:8872955;
+ mso-list-template-ids:-1360482768;}
+@list l0:level1
+ {mso-level-number-format:bullet;
+ mso-level-text:\F0A7;
+ mso-level-tab-stop:.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;
+ mso-ansi-font-size:10.0pt;
+ font-family:Wingdings;}
+@list l0:level2
+ {mso-level-tab-stop:1.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l0:level3
+ {mso-level-tab-stop:1.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l0:level4
+ {mso-level-tab-stop:2.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l0:level5
+ {mso-level-tab-stop:2.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l0:level6
+ {mso-level-tab-stop:3.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l0:level7
+ {mso-level-tab-stop:3.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l0:level8
+ {mso-level-tab-stop:4.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l0:level9
+ {mso-level-tab-stop:4.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l1
+ {mso-list-id:45884847;
+ mso-list-template-ids:-1235059890;}
+@list l1:level1
+ {mso-level-number-format:bullet;
+ mso-level-text:\F0A7;
+ mso-level-tab-stop:.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;
+ mso-ansi-font-size:10.0pt;
+ font-family:Wingdings;}
+@list l1:level2
+ {mso-level-tab-stop:1.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l1:level3
+ {mso-level-tab-stop:1.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l1:level4
+ {mso-level-tab-stop:2.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l1:level5
+ {mso-level-tab-stop:2.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l1:level6
+ {mso-level-tab-stop:3.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l1:level7
+ {mso-level-tab-stop:3.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l1:level8
+ {mso-level-tab-stop:4.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l1:level9
+ {mso-level-tab-stop:4.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l2
+ {mso-list-id:439879227;
+ mso-list-template-ids:1518119328;}
+@list l2:level1
+ {mso-level-number-format:bullet;
+ mso-level-text:\F0A7;
+ mso-level-tab-stop:.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;
+ mso-ansi-font-size:10.0pt;
+ font-family:Wingdings;}
+@list l2:level2
+ {mso-level-tab-stop:1.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l2:level3
+ {mso-level-tab-stop:1.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l2:level4
+ {mso-level-tab-stop:2.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l2:level5
+ {mso-level-tab-stop:2.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l2:level6
+ {mso-level-tab-stop:3.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l2:level7
+ {mso-level-tab-stop:3.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l2:level8
+ {mso-level-tab-stop:4.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l2:level9
+ {mso-level-tab-stop:4.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l3
+ {mso-list-id:489293858;
+ mso-list-template-ids:1845671390;}
+@list l3:level1
+ {mso-level-number-format:bullet;
+ mso-level-text:\F0A7;
+ mso-level-tab-stop:.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;
+ mso-ansi-font-size:10.0pt;
+ font-family:Wingdings;}
+@list l3:level2
+ {mso-level-tab-stop:1.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l3:level3
+ {mso-level-tab-stop:1.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l3:level4
+ {mso-level-tab-stop:2.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l3:level5
+ {mso-level-tab-stop:2.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l3:level6
+ {mso-level-tab-stop:3.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l3:level7
+ {mso-level-tab-stop:3.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l3:level8
+ {mso-level-tab-stop:4.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l3:level9
+ {mso-level-tab-stop:4.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l4
+ {mso-list-id:619726884;
+ mso-list-template-ids:-1537423390;}
+@list l4:level1
+ {mso-level-number-format:bullet;
+ mso-level-text:\F0A7;
+ mso-level-tab-stop:.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;
+ mso-ansi-font-size:10.0pt;
+ font-family:Wingdings;}
+@list l4:level2
+ {mso-level-tab-stop:1.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l4:level3
+ {mso-level-tab-stop:1.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l4:level4
+ {mso-level-tab-stop:2.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l4:level5
+ {mso-level-tab-stop:2.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l4:level6
+ {mso-level-tab-stop:3.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l4:level7
+ {mso-level-tab-stop:3.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l4:level8
+ {mso-level-tab-stop:4.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l4:level9
+ {mso-level-tab-stop:4.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l5
+ {mso-list-id:621153244;
+ mso-list-template-ids:995154020;}
+@list l5:level1
+ {mso-level-number-format:bullet;
+ mso-level-text:\F0A7;
+ mso-level-tab-stop:.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;
+ mso-ansi-font-size:10.0pt;
+ font-family:Wingdings;}
+@list l5:level2
+ {mso-level-tab-stop:1.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l5:level3
+ {mso-level-tab-stop:1.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l5:level4
+ {mso-level-tab-stop:2.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l5:level5
+ {mso-level-tab-stop:2.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l5:level6
+ {mso-level-tab-stop:3.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l5:level7
+ {mso-level-tab-stop:3.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l5:level8
+ {mso-level-tab-stop:4.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l5:level9
+ {mso-level-tab-stop:4.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l6
+ {mso-list-id:730887387;
+ mso-list-template-ids:-2040104406;}
+@list l6:level1
+ {mso-level-number-format:bullet;
+ mso-level-text:\F0A7;
+ mso-level-tab-stop:.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;
+ mso-ansi-font-size:10.0pt;
+ font-family:Wingdings;}
+@list l6:level2
+ {mso-level-tab-stop:1.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l6:level3
+ {mso-level-tab-stop:1.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l6:level4
+ {mso-level-tab-stop:2.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l6:level5
+ {mso-level-tab-stop:2.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l6:level6
+ {mso-level-tab-stop:3.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l6:level7
+ {mso-level-tab-stop:3.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l6:level8
+ {mso-level-tab-stop:4.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l6:level9
+ {mso-level-tab-stop:4.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l7
+ {mso-list-id:1220288851;
+ mso-list-template-ids:880986230;}
+@list l7:level1
+ {mso-level-number-format:bullet;
+ mso-level-text:\F0A7;
+ mso-level-tab-stop:.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;
+ mso-ansi-font-size:10.0pt;
+ font-family:Wingdings;}
+@list l7:level2
+ {mso-level-tab-stop:1.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l7:level3
+ {mso-level-tab-stop:1.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l7:level4
+ {mso-level-tab-stop:2.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l7:level5
+ {mso-level-tab-stop:2.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l7:level6
+ {mso-level-tab-stop:3.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l7:level7
+ {mso-level-tab-stop:3.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l7:level8
+ {mso-level-tab-stop:4.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l7:level9
+ {mso-level-tab-stop:4.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l8
+ {mso-list-id:1275020199;
+ mso-list-template-ids:551206706;}
+@list l8:level1
+ {mso-level-number-format:bullet;
+ mso-level-text:\F0A7;
+ mso-level-tab-stop:.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;
+ mso-ansi-font-size:10.0pt;
+ font-family:Wingdings;}
+@list l8:level2
+ {mso-level-tab-stop:1.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l8:level3
+ {mso-level-tab-stop:1.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l8:level4
+ {mso-level-tab-stop:2.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l8:level5
+ {mso-level-tab-stop:2.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l8:level6
+ {mso-level-tab-stop:3.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l8:level7
+ {mso-level-tab-stop:3.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l8:level8
+ {mso-level-tab-stop:4.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l8:level9
+ {mso-level-tab-stop:4.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l9
+ {mso-list-id:1357196694;
+ mso-list-template-ids:795358278;}
+@list l9:level1
+ {mso-level-number-format:bullet;
+ mso-level-text:\F0A7;
+ mso-level-tab-stop:.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;
+ mso-ansi-font-size:10.0pt;
+ font-family:Wingdings;}
+@list l9:level2
+ {mso-level-tab-stop:1.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l9:level3
+ {mso-level-tab-stop:1.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l9:level4
+ {mso-level-tab-stop:2.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l9:level5
+ {mso-level-tab-stop:2.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l9:level6
+ {mso-level-tab-stop:3.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l9:level7
+ {mso-level-tab-stop:3.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l9:level8
+ {mso-level-tab-stop:4.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l9:level9
+ {mso-level-tab-stop:4.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l10
+ {mso-list-id:1503541588;
+ mso-list-template-ids:823551726;}
+@list l10:level1
+ {mso-level-number-format:bullet;
+ mso-level-text:\F0A7;
+ mso-level-tab-stop:.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;
+ mso-ansi-font-size:10.0pt;
+ font-family:Wingdings;}
+@list l10:level2
+ {mso-level-tab-stop:1.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l10:level3
+ {mso-level-tab-stop:1.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l10:level4
+ {mso-level-tab-stop:2.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l10:level5
+ {mso-level-tab-stop:2.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l10:level6
+ {mso-level-tab-stop:3.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l10:level7
+ {mso-level-tab-stop:3.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l10:level8
+ {mso-level-tab-stop:4.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l10:level9
+ {mso-level-tab-stop:4.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l11
+ {mso-list-id:1535195385;
+ mso-list-template-ids:-778014484;}
+@list l11:level1
+ {mso-level-number-format:bullet;
+ mso-level-text:\F0A7;
+ mso-level-tab-stop:.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;
+ mso-ansi-font-size:10.0pt;
+ font-family:Wingdings;}
+@list l11:level2
+ {mso-level-tab-stop:1.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l11:level3
+ {mso-level-tab-stop:1.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l11:level4
+ {mso-level-tab-stop:2.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l11:level5
+ {mso-level-tab-stop:2.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l11:level6
+ {mso-level-tab-stop:3.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l11:level7
+ {mso-level-tab-stop:3.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l11:level8
+ {mso-level-tab-stop:4.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l11:level9
+ {mso-level-tab-stop:4.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l12
+ {mso-list-id:1924140378;
+ mso-list-template-ids:-893489372;}
+@list l12:level1
+ {mso-level-number-format:bullet;
+ mso-level-text:\F0A7;
+ mso-level-tab-stop:.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;
+ mso-ansi-font-size:10.0pt;
+ font-family:Wingdings;}
+@list l12:level2
+ {mso-level-tab-stop:1.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l12:level3
+ {mso-level-tab-stop:1.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l12:level4
+ {mso-level-tab-stop:2.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l12:level5
+ {mso-level-tab-stop:2.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l12:level6
+ {mso-level-tab-stop:3.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l12:level7
+ {mso-level-tab-stop:3.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l12:level8
+ {mso-level-tab-stop:4.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l12:level9
+ {mso-level-tab-stop:4.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l13
+ {mso-list-id:1983192207;
+ mso-list-template-ids:-1719795094;}
+@list l13:level1
+ {mso-level-number-format:bullet;
+ mso-level-text:\F0A7;
+ mso-level-tab-stop:.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;
+ mso-ansi-font-size:10.0pt;
+ font-family:Wingdings;}
+@list l13:level2
+ {mso-level-tab-stop:1.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l13:level3
+ {mso-level-tab-stop:1.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l13:level4
+ {mso-level-tab-stop:2.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l13:level5
+ {mso-level-tab-stop:2.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l13:level6
+ {mso-level-tab-stop:3.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l13:level7
+ {mso-level-tab-stop:3.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l13:level8
+ {mso-level-tab-stop:4.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l13:level9
+ {mso-level-tab-stop:4.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l14
+ {mso-list-id:1997802346;
+ mso-list-template-ids:325871162;}
+@list l14:level1
+ {mso-level-number-format:bullet;
+ mso-level-text:\F0A7;
+ mso-level-tab-stop:.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;
+ mso-ansi-font-size:10.0pt;
+ font-family:Wingdings;}
+@list l14:level2
+ {mso-level-tab-stop:1.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l14:level3
+ {mso-level-tab-stop:1.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l14:level4
+ {mso-level-tab-stop:2.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l14:level5
+ {mso-level-tab-stop:2.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l14:level6
+ {mso-level-tab-stop:3.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l14:level7
+ {mso-level-tab-stop:3.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l14:level8
+ {mso-level-tab-stop:4.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l14:level9
+ {mso-level-tab-stop:4.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l15
+ {mso-list-id:2000308197;
+ mso-list-template-ids:-1152595466;}
+@list l15:level1
+ {mso-level-number-format:bullet;
+ mso-level-text:\F0A7;
+ mso-level-tab-stop:.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;
+ mso-ansi-font-size:10.0pt;
+ font-family:Wingdings;}
+@list l15:level2
+ {mso-level-tab-stop:1.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l15:level3
+ {mso-level-tab-stop:1.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l15:level4
+ {mso-level-tab-stop:2.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l15:level5
+ {mso-level-tab-stop:2.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l15:level6
+ {mso-level-tab-stop:3.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l15:level7
+ {mso-level-tab-stop:3.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l15:level8
+ {mso-level-tab-stop:4.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l15:level9
+ {mso-level-tab-stop:4.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l16
+ {mso-list-id:2035185965;
+ mso-list-template-ids:57055450;}
+@list l16:level1
+ {mso-level-number-format:bullet;
+ mso-level-text:\F0A7;
+ mso-level-tab-stop:.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;
+ mso-ansi-font-size:10.0pt;
+ font-family:Wingdings;}
+@list l16:level2
+ {mso-level-tab-stop:1.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l16:level3
+ {mso-level-tab-stop:1.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l16:level4
+ {mso-level-tab-stop:2.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l16:level5
+ {mso-level-tab-stop:2.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l16:level6
+ {mso-level-tab-stop:3.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l16:level7
+ {mso-level-tab-stop:3.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l16:level8
+ {mso-level-tab-stop:4.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l16:level9
+ {mso-level-tab-stop:4.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+ol
+ {margin-bottom:0in;}
+ul
+ {margin-bottom:0in;}
+-->
+</style>
+<!--[if gte mso 10]>
+<style>
+ /* Style Definitions */
+ table.MsoNormalTable
+ {mso-style-name:"Table Normal";
+ mso-tstyle-rowband-size:0;
+ mso-tstyle-colband-size:0;
+ mso-style-noshow:yes;
+ mso-style-parent:"";
+ mso-padding-alt:0in 5.4pt 0in 5.4pt;
+ mso-para-margin:0in;
+ mso-para-margin-bottom:.0001pt;
+ mso-pagination:widow-orphan;
+ font-size:10.0pt;
+ font-family:"Times New Roman";
+ mso-ansi-language:#0400;
+ mso-fareast-language:#0400;
+ mso-bidi-language:#0400}
+</style>
+<![endif]--><!--[if gte mso 9]><xml>
+ <o:shapedefaults v:ext="edit" spidmax="1026"/>
+</xml><![endif]--><!--[if gte mso 9]><xml>
+ <o:shapelayout v:ext="edit">
+ <o:idmap v:ext="edit" data="1"/>
+ </o:shapelayout></xml><![endif]-->
+</head>
+
+<body bgcolor=white background="../images/bkground.gif" lang=EN-US
+style='tab-interval:.5in'>
+
+<div class=Section1>
+
+<h1>Changes to MameUI</h1>
+
+<h2><span style='font-size:12.0pt'>v.</span><font size="3">127.5</font></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Fixed issue w/ BIOS games not
+ being passed properly to core or stored in *.ini files. [<strong>Curt Coder</strong>]</li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Fixed sorting on source column
+ in gamelist. [<b style='mso-bidi-font-weight:
+ normal'>René Single</b>]</li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.</span><font size="3">126.1</font></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Moved search bar over to the
+ flush right on the toolbar, made it take the UI font, and also made it
+ accessible with Ctrl-E like any search in Vista, Firefox, or IE.&nbsp;Added
+ a new debug tab to the options and loaded it w/ the missing items from the core. [<b style='mso-bidi-font-weight:
+ normal'>René Single / John IV</b>]</li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.</span><font size="3">122.1</font></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Fixed long standing issue
+ where icons would corrupt and return to their defaults if scrolled through
+ entire game list&nbsp; [<b style='mso-bidi-font-weight:
+ normal'>René Single / John IV</b>]</li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.</span><font size="3">120.2</font></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Rebranded Mame32 to MameUI32
+ and MameUI64 to avoid confusion with the baseline builds that are now being
+ released as 64bit native apps.&nbsp; [<b style='mso-bidi-font-weight:
+ normal'>Mike Haaland / John IV</b>]</li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.</span><font size="3">120.2</font></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added support for a
+ 'nonworking.png' which will appear for non-working games in the art panes if
+ the specific game *.png doesn't exist <strong>and</strong> the game is
+ flagged as non-working in the core.<font face="Arial" size="2"> </font>[<b style='mso-bidi-font-weight:
+ normal'>Mike Haaland / John IV</b>]</li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.</span><font size="3">118.6</font></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added game search/filter to
+ the toolbar.&nbsp; Works similarly to the Ctrl-F filter but doesn't search
+ on manufacturer, driver name, or shortname.<font face="Arial" size="2">&nbsp;
+ Added PCB art pane view. </font>[<b style='mso-bidi-font-weight:
+ normal'>René Single / John IV</b>]</li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.</span><font size="3">118.5</font></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Per MameDEV request; removed
+ the ROMs view customization item, and reworked auditing to not show an icon
+ change state for unavailable sets in all games folder view.&nbsp; This was
+ to bring MameUI into compliance w/ the section of the Mame terms of usage
+ which states '<font face="Arial" size="2">Do not provide a means of
+ generating a list of games that specifically identifies those games for
+ which the user does not have image files'.&nbsp; Audit functionality and
+ game search on start is still present to populate the 'Available' folder
+ view. </font>[<b style='mso-bidi-font-weight:
+ normal'>Mike Haaland</b>]</li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Promoted screen orientation
+ folder view to 'horizontal' and 'vertical' top level views and added them to
+ the Ctrl-F filter dialogue. [<b style='mso-bidi-font-weight:
+ normal'>Mike Haaland</b>]</li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.</span><font size="3">118.2</font></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Fixed all recent options
+ related bugs as well as expanding the functionality of the audit control so
+ it doesn't cut off anymore. [<b style='mso-bidi-font-weight:
+ normal'>Mike Haaland</b>]</li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.</span><font size="3">110.2</font></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Re-arranged UI elements in
+ Options menus. [<b style='mso-bidi-font-weight:
+ normal'>Radius</b>]</li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.</span><font size="3">107.1</font></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Updated the help file to
+ include the new UI support for the core's latest video changes.&nbsp;[<b style='mso-bidi-font-weight:
+ normal'>John IV</b>]</li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.</span><font size="3">107</font></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added UI support for the large
+ amount of core changes made by Aaron Giles for the new video renderer.&nbsp;[<b style='mso-bidi-font-weight:
+ normal'>René Single / John IV</b>]</li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Created the new scanline *.png
+ files in \artwork for use with the new -effect switch. [<b>John IV</b>]</li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.</span><font size="3">105.2</font></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added BIOS folder view on the
+ left pane.&nbsp; This folder lists all the BIOSes supported by MameUI and
+ allows launching them as if turning on a machine without a cartridge etc. in
+ it, like the Neo-Geo.&nbsp; [<b style='mso-bidi-font-weight:
+ normal'>René Single</b>]</li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.</span><font size="3">104.7</font></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added properties for driver.c
+ and vector on secondary click shortcut menu.&nbsp; This is the same as
+ altering the properties on the vector folder and the \source\driver folder
+ on the left pane.&nbsp; [<b style='mso-bidi-font-weight:
+ normal'>René Single / John IV</b>]</li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.</span><font size="3">104.4</font></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added support for priority
+ switch, now a slider.&nbsp; Note: there may be system related issues going
+ to setting 1 (lagging keyboard, joystick controls), default is 0. [<b style='mso-bidi-font-weight:
+ normal'>René Single</b>]</li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Removed multi-screen folder
+ view on left pane as that flag has been removed in the core. [<b style='mso-bidi-font-weight:
+ normal'>René Single</b>]</li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added mngwrite option to
+ launch a game and immediately begin recording a MNG movie file. [<b style='mso-bidi-font-weight:
+ normal'>René Single</b>]</li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.</span><font size="3">101.1</font></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added support for savestate
+ game folder view on left.&nbsp; Added switch for autosave.
+ [<b style='mso-bidi-font-weight:
+ normal'>René Single</b>]</li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.</span><font size="3">100</font></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>New Galaxian homage about.bmp.
+ [<b style='mso-bidi-font-weight:
+ normal'>John IV</b>]</li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.99.</span><font size="3">3</font></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Re-implemented history.dat for
+ MameUI which had its support removed from core. [<b style='mso-bidi-font-weight:
+ normal'>René Single</b>]</li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.98.</span><font size="3">3</font></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>UI dialogues realignment. [<b>Radius</b>]</li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added ability to type in Mame
+ shortname in the Ctrl-F text filter, i.e. 'ddonpach'. [<b>John IV / Mash</b>]</li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.96.4</span></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>First pass at adding support
+ for the analogue and digital controller section of the core. [<b style='mso-bidi-font-weight:
+ normal'>René Single</b>]</li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.95.</span><font size="3">5</font></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added core's -screen switch to
+ UI to allow playing games on secondary/tertiary monitors in multi-head
+ setups. [<b style='mso-bidi-font-weight:
+ normal'>René Single</b>]</li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.90.3</span></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>More UI dialogues realignment. [<b style='mso-bidi-font-weight:
+ normal'>Radius</b>]</li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.89.3</span></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Re-aligned UI elements in
+ Options menus and added some XP-style icons. [<b style='mso-bidi-font-weight:
+ normal'>Radius</b>]</li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.88.1<o:p></o:p></span></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added switch to toggle
+ validity checking in the binary. [<b style='mso-bidi-font-weight:
+ normal'>René Single</b>]</li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.87.1<o:p></o:p></span></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Increased start up speed via
+ driver info caching. [<b>Sauro Puccini / Chris Kirmse</b>]</li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.86.1<o:p></o:p></span></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Reworked MameUI folder
+ properties and their initial memory allocation.<span
+ style='mso-spacerun:yes'>  </span>Results in halving MameUI’s memory
+ footprint on most systems. [<b style='mso-bidi-font-weight:normal'>René
+ Single</b>]</li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.86<o:p></o:p></span></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Reworked MameUI multisession
+ behaviour.<span style='mso-spacerun:yes'>  </span>When launching a game,
+ MameUI
+ will now dynamically resize itself in memory rather than spawning a
+ separate core process, saving some memory (this new feature impacts the
+ icons on windowed mode playing and the show caption option). [<b
+ style='mso-bidi-font-weight:normal'>Chris Kirmse</b>]</li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Re-added support for custom
+ controller selection again in the controller tab. [<b style='mso-bidi-font-weight:
+ normal'>Chris Kirmse</b>]</li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.84.5<o:p></o:p></span></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Cleaned up the Options •
+ Interface Options menu, adding sliders. [<b style='mso-bidi-font-weight:
+ normal'>René Single</b>]</li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Internal clean-ups to provide
+ support for the new core changes. [<b style='mso-bidi-font-weight:normal'>Chris
+ Kirmse</b> / <b style='mso-bidi-font-weight:normal'>Nathan Woods</b>]</li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.84.2<o:p></o:p></span></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added feature request to
+ place a border around the artwork in the art pane, user selectable size
+ and color (0=no border). [<b>René Single</b><b style='mso-bidi-font-weight:
+ normal'> / John IV</b>]</li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added dump status folder
+ view, an easy reference for un-dumped and badly dumped ROMs for folks who
+ may be in a position to update them. [<b>René Single</b><span
+ style='mso-bidi-font-weight:bold'>]</span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'><span style='mso-bidi-font-weight:
+ bold'>Expanded game list font control to go beyond the original 16 color
+ choices allowing access to a greater UI customization (see last color on
+ drop down list ‘custom’). [<b>René Single</b>]</span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'><span style='mso-bidi-font-weight:
+ bold'>Added wave output option to match the core.<span
+ style='mso-spacerun:yes'>  </span>File menu / Play and Record Wave output.
+ [<b>Chris Kirmse</b>]</span></li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.84<o:p></o:p></span></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Various internal treeview
+ fixes [year / manufacturer] and cleanups. [<b style='mso-bidi-font-weight:
+ normal'>Nathan Woods / <span style='mso-bidi-font-weight:bold'>René Single</span>
+ / Mamesick / Chris Kirmse</b>]</li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Factored out list view
+ handling into its own module, picker.c.<span style='mso-spacerun:yes'> 
+ </span>Auto_malloc() now used and appears to result in a speed up of the
+ GUI game list scrolling, however at the moment it does cause slight pauses
+ moving from one ‘view’ to another. [<b style='mso-bidi-font-weight:normal'>Nathan
+ Woods</b>]</li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added ability to display
+ games in windowed mode without their titlebar caption. Not fully
+ functioning w/ GCC compile. [<b>René Single / John IV</b><span
+ style='mso-bidi-font-weight:bold'>]</span></li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.82<o:p></o:p></span></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Brought game ‘not working’
+ status messages in-line with core [status bar, general properties, etc.]
+ and rearranged status area on properties tab.<span
+ style='mso-spacerun:yes'>  </span>[<b style='mso-bidi-font-weight:normal'>Mamesick</b>]</li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added sample folder view. [<b
+ style='mso-bidi-font-weight:normal'>Mamesick</b>]</li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Renamed Hard Disk folder view
+ to CHD due to newly supported CD CHDs. [<b style='mso-bidi-font-weight:
+ normal'>John IV / Nathan Woods</b>]</li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.81<o:p></o:p></span></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Moved placement of
+ bkground.png to \bkground folder instead of \snap folder. [<b>René Single</b>]</li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Fixed erroneous behaviour for
+ Imperfect folder view. [<b>René Single</b>]</li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Corrected audio latency
+ slider movement and setting past notch 4. [<b>René Single</b>]</li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added customizable quit key
+ [default Alt-Q] for the mappable keyboard solution option. [<b>René Single</b>]</li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added new History.dat option
+ to allow display under any or all of the art views in Options • Interface
+ Options. [<b>René Single</b>]</li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.79</span></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added an ‘Imperfect’ folder
+ view on the left pane, this categorizes the various problems flagged in
+ games. [<b>René Single</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Reworked handling of the BIOS
+ option, now that there are multiple drivers that support different BIOSes
+ [neogeo.c, stv.c] the global setting is not appropriate.<span
+ style='mso-spacerun:yes'>  </span>Select the driver from the source folder
+ view on the left pane and change its BIOS settings, this will alter it for
+ all games in that driver.<span style='mso-spacerun:yes'>  </span>The
+ functionality remains the same for altering individual games settings in
+ all games view or anywhere else. [<b>René Single</b>]</li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added the ability to control
+ the MameUI GUI via mappable keyboard solutions.<span
+ style='mso-spacerun:yes'>  </span>This feature is intended to compliment
+ the GUI control via joystick option first offered in version .70
+ below.<span style='mso-spacerun:yes'>  </span>It is designed to allow
+ users of Mame cabinets with keyboard encoders the same functionality and
+ is controlled in the mameUI32/64.ini file [mapping the enter key to button 1
+ to launch a game for example], using the same syntax as the \ctrlr files.
+ [<b style='mso-bidi-font-weight:normal'>Jarek Burczynski / Chris Kirmse</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added support for the new
+ core switches for lightgun modifications; reload to allow mapping reload
+ to keys, and dual gun setups. [<b style='mso-bidi-font-weight:normal'>Chris
+ Kirmse</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added accelerator key for
+ folder level ‘mini-audits’, Alt-U [<b>René Single</b><b style='mso-bidi-font-weight:
+ normal'> / John IV</b>].<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added accelerator key support
+ for scrolling up and down through history.dat text window. CTRL-Page Up /
+ CTRL-Page Down.<b style='mso-bidi-font-weight:normal'> </b>[<b>René Single</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added toggle in Grouped view
+ to allow clones missing a parent to display non-indented. [<b>René Single</b><span
+ style='mso-bidi-font-weight:bold'>]</span><span style='font-size:12.0pt;
+ font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'><span style='mso-bidi-font-weight:
+ bold'>Added support for the core’s new save state loading on game
+ start.<span style='mso-spacerun:yes'>  </span>[<b>René Single</b>]</span><span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'><span style='mso-bidi-font-weight:
+ bold'>Added support for the core’s new keyboard LED choices, USB or PS/2.
+ [<b>René Single</b>]</span><span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.78</span></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added the ability to do ‘mini-audits’
+ on each of the folders on the left pane.<span style='mso-spacerun:yes'> 
+ </span>Secondary click on the folders to see audit as a choice. [<b>René
+ Single</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Changed behaviour of MameUI
+ when displaying games that have the protection not emulated flag,
+ previously it would flag these games as non-working and display the
+ warning.ico.<span style='mso-spacerun:yes'>  </span>Now warning.ico and
+ non-working status will only occur if the game has the non-working flag
+ attached in the driver. [<b>René Single / </b><b style='mso-bidi-font-weight:
+ normal'>Mamesick / John IV / Chris Kirmse</b>]<span style='font-size:12.0pt;
+ font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Increased CPU and sound area
+ on games’ properties page to accommodate 5 lines now that tceptor and tmnt
+ utilise it. [<b>René Single / Chris Kirmse</b>]<span style='font-size:
+ 12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Altered behaviour of
+ properties titlebar on driver.ini to show the driver name instead of
+ ‘folder’ properties. [<b>René Single / Chris Kirmse</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>No longer UPX compressing the
+ MameUI .exe.<span style='mso-spacerun:yes'>  </span>This saves 20 Megs
+ when MameUI is loaded into memory, will allow for better dynamic loading,
+ and won’t trip off virus detectors that have trouble w/ UPX compression.<span
+ style='mso-spacerun:yes'>  </span>As a result, MameUI.exe is now 20 Megs
+ in size on the hard drive.<span style='mso-spacerun:yes'>  </span>The
+ distribution package is also being changed and compressed with 7-Zip as a
+ self-extracting archive, this actually makes the distribution package
+ about 1 Meg smaller than previous releases. [<b style='mso-bidi-font-weight:
+ normal'>John IV</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Switched default settings in
+ MameUI to disable auto frameskipping and to use draw every frame per
+ discussion on MameDEV list. [<b style='mso-bidi-font-weight:normal'>John
+ IV</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added 48000 as a sample rate
+ option, works well with modern soundcards and chips. [<b style='mso-bidi-font-weight:
+ normal'>John IV</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.77</span></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Fulfilling the longstanding
+ feature req. added the ability to globally alter vector.ini and driver.ini
+ to match the core.&nbsp; Secondary click on the vector folder • properties
+ in the folder pane to set options for that group of games.&nbsp; To alter
+ global settings for game families, drill down into the source folder in
+ the folder pane, and secondary click on a driver's properties i.e.
+ 1942.c.&nbsp; This will change options for all games based on that
+ driver.&nbsp; The different levels of alteration are color coded,
+ vector.ini changes are red, driver.ini changes are green, and individual
+ game settings are blue.&nbsp; Thus there is the possibility to have four
+ color/levels of alterations when a game's individual properties are viewed
+ in All Games or any folder.&nbsp; The changes can be backed out of
+ hierarchically with reset to default on each respective properties, the
+ reset to default global option, or by deleting the .ini files in the \ini
+ directory.<span style='mso-spacerun:yes'>  </span><b style='mso-bidi-font-weight:
+ normal'>Note</b>: Currently the color alterations do not display properly
+ with XP in themed mode, but the functionality works [bug 462].<span
+ style='mso-spacerun:yes'>  </span>Coded solutions to this issue via DIFF
+ are welcomed. [<b>René Single / Chris Kirmse / John IV</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.76</span></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l7 level1 lfo2;tab-stops:list .5in'>Added programmatically
+ populated lightgun and multi-monitor folders. [<b>René Single</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l7 level1 lfo2;tab-stops:list .5in'>Added reset play count and
+ play time for individual games, and globally. [Secondary click on game,
+ &amp; Options • Interface Options. [<b>René Single</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l7 level1 lfo2;tab-stops:list .5in'>Allowed filter propagation
+ downward from parent folders, toggle this feature in Options • Interface
+ Options. [<b>René Single</b>]<span style='font-size:12.0pt;font-family:
+ "Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l7 level1 lfo2;tab-stops:list .5in'>Changed behavior of vertical
+ scrollbar in history pane, will not show if there is less text than
+ available room. [<b>René Single</b>]<span style='font-size:12.0pt;
+ font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l7 level1 lfo2;tab-stops:list .5in'>Extended game not working
+ status support to show more flags in status bar and game properties. [<b>René
+ Single</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l7 level1 lfo2;tab-stops:list .5in'>Added tool tip text to status
+ bar if longer than displayable name is selected. [<b>René Single</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l7 level1 lfo2;tab-stops:list .5in'>Increased history.dat buffer
+ to prevent cut-off and overflow. [<b>René Single</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l7 level1 lfo2;tab-stops:list .5in'>Re-implemented ability to
+ show game's icon on title bar in windowed mode. [<b>René Single</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.72</span></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l0 level1 lfo3;tab-stops:list .5in'>Added the ability to scale
+ the right side art pane contents upwards as the window size increases,
+ toggle on Options • Interface Options. [<b>René Single / Chris Kirmse</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l0 level1 lfo3;tab-stops:list .5in'>Expanded the reach of the
+ CTRL-F text filter, it can now act on name, driver name e.g. 'cps2.c', and
+ manufacturer.&nbsp; This is a quick method for immediately seeing a driver
+ family instead of drilling down through the source folder on the left. [<b>René
+ Single / Chris Kirmse</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.71</span></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l1 level1 lfo4;tab-stops:list .5in'>Added the ability to
+ selectively disable built in folder views on the left pane, secondary
+ click in the window area for the dialogue box. [<b>Chris Kirmse</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l1 level1 lfo4;tab-stops:list .5in'>Added control panel art tab.
+ [<b>Chris Kirmse</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l1 level1 lfo4;tab-stops:list .5in'>Fixed audit control overflow
+ issue. [<b>René Single</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l1 level1 lfo4;tab-stops:list .5in'>Designed art tab state
+ toggles to be more readable in MameUI32/64.ini. [<b>Chris Kirmse</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l1 level1 lfo4;tab-stops:list .5in'>Added the ability to have
+ MameUI automatically cycle the selected art views at an interval, in
+ seconds.&nbsp; Accessible in Options • Interface Options. [<b>René Single
+ / Chris Kirmse</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l1 level1 lfo4;tab-stops:list .5in'>Added the ability to track
+ the amount of time spent playing each game in minutes and seconds.&nbsp;
+ Displays in details or grouped view.&nbsp; Add the column in View • Customize
+ fields. [<b>René Single / Chris Kirmse</b>]<span style='font-size:12.0pt;
+ font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l1 level1 lfo4;tab-stops:list .5in'>Added the ability to view
+ game's icon on title bar in windowed mode. [<b>René Single / Chris Kirmse</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.70.1</span></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l12 level1 lfo5;tab-stops:list .5in'>Removed saturate slider from
+ D3D tab. [<b>Chris Kirmse</b>]<span style='font-size:12.0pt;font-family:
+ "Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l12 level1 lfo5;tab-stops:list .5in'>Fixed cleanstretch and
+ prescale settings not holding. [<b>Chris Kirmse</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l12 level1 lfo5;tab-stops:list .5in'>Implemented BIOS selection
+ on per game basis [only Neo Geo games currently] and allowed temporary
+ global settings for BIOS via number. [<b>Chris Kirmse</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.70</span></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l3 level1 lfo6;tab-stops:list .5in'>Added art tab with only
+ history.dat.&nbsp; If this tab is enabled and history.dat is present
+ history text will no longer appear beneath the screenshot. [<b>Tor Arne
+ Vestbø / Chris Kirmse</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l3 level1 lfo6;tab-stops:list .5in'>Added option to hide the
+ mouse cursor on launch in full screen on Options • Interface Options. [<b>Tor
+ Arne Vestbø</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l3 level1 lfo6;tab-stops:list .5in'>Addressed some long standing
+ bugs dealing with icon decimation and windows title bar size, and
+ details/grouped view not holding the column size on return from large icon
+ view post-session restart. [<b>René Single</b>]<span style='font-size:
+ 12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l3 level1 lfo6;tab-stops:list .5in'>Added option to expand MameUI
+ to full screen kiosk mode without any windows controls [F11]. [<b>Tor Arne
+ Vestbø / Chris Kirmse</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l3 level1 lfo6;tab-stops:list .5in'>Created new Berzerk homage about.bmp. [<b>John IV</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l3 level1 lfo6;tab-stops:list .5in'>Reworked drop down for D3D
+ prescale effect, now allowing various levels of sharpness to be used. [<b>Chris
+ Kirmse</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l3 level1 lfo6;tab-stops:list .5in'>Updated win32ui.c to pull
+ certain information more appropriately out of layout.c. [<b>Nathan
+ Woods/MESS32</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l3 level1 lfo6;tab-stops:list .5in'>Removed obsoleted version
+ mismatch toggle. [<b>Chris Kirmse</b>]<span style='font-size:12.0pt;
+ font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l3 level1 lfo6;tab-stops:list .5in'>Added a built in orientation
+ folder view for displaying vertical and horizontal games. [<b>René Single</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l3 level1 lfo6;tab-stops:list .5in'>Added support for the new
+ cleanstretch options. [<b>Chris Kirmse</b>]<span style='font-size:12.0pt;
+ font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l3 level1 lfo6;tab-stops:list .5in'>Added ability to map joystick
+ actions in MameUI32/64.ini to control GUI navigation instead of being hard
+ coded:<br>
+ <b>Format</b>: joystick_number, stick_type, axis_or_button, direction<br>
+ <br>
+ #define JOYCODE_STICK_BTN 0<br>
+ #define JOYCODE_STICK_AXIS 1<br>
+ #define JOYCODE_STICK_POV 2<br>
+ #define JOYCODE_DIR_BTN 0<br>
+ #define JOYCODE_DIR_NEG 1<br>
+ #define JOYCODE_DIR_POS 2<span style='font-family:"Times New Roman"'><o:p></o:p></span></li>
+</ul>
+
+<p style='margin-left:.5in'>So, pressing button 3 on joystick one would be:
+1,0,3,0<br>
+<br>
+ui_joy_up 1,1,2,1<br>
+ui_joy_down 1,1,2,2<br>
+ui_joy_left 1,1,1,1<br>
+ui_joy_right 1,1,1,2<br>
+ui_joy_start 1,0,1,0<br>
+ui_joy_pgup 2,1,2,1<br>
+ui_joy_pgdwn 2,1,2,2<br>
+ui_joy_home 0,0,0,0<br>
+ui_joy_end 0,0,0,0<br>
+ui_joy_ss_change 2,0,3,0<br>
+ui_joy_history_up 2,0,4,0<br>
+ui_joy_history_down 2,0,1,0<br>
+ui_joy_exec 0,0,0,0</p>
+
+<p style='margin-left:.5in'>For stick type POV there are no directions, only
+four axes (0-3) [<b>Tor Arne Vestbø</b>]</p>
+
+<h2><span style='font-size:12.0pt'>v.69</span></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l11 level1 lfo7;tab-stops:list .5in'>Added support for the new
+ D3D filter and effects options in Options • Default Game Options •
+ Direct3D, see help menu contents for further descriptions of the new
+ features. [<b>John IV / Chris Kirmse</b>]<span style='font-size:12.0pt;
+ font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l11 level1 lfo7;tab-stops:list .5in'>Added support for the new
+ core toggle -bios to allow selection of the various supported Neo Geo
+ BIOSes. [<b>Chris Kirmse</b>]<span style='font-size:12.0pt;font-family:
+ "Times New Roman"'><o:p></o:p></span></li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.68</span></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l9 level1 lfo8;tab-stops:list .5in'>Added code to allow clicking
+ anywhere in the screenshot window to toggle the art views.&nbsp; No longer
+ necessary to click directly on the default image. [<b>K&amp;K</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l9 level1 lfo8;tab-stops:list .5in'>Added code to allow disabling
+ / toggling individual art views on the view menu and the context menu of
+ the art window. [<b>Chris Kirmse</b>]<span style='font-size:12.0pt;
+ font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l9 level1 lfo8;tab-stops:list .5in'>Added support for the new
+ core D3D items, accessible on the Options • Default Game Options • Direct3D.
+ [<b>Chris Kirmse</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l9 level1 lfo8;tab-stops:list .5in'>Added support for the new
+ core audio latency settings. [<b>Chris Kirmse</b>]<span style='font-size:
+ 12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.67</span></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l14 level1 lfo9;tab-stops:list .5in'>Re-worked the rotation
+ options to a drop down, and included the new switches for auto-clockwise /
+ auto-anti-clockwise for pivot monitors. [<b>Chris Kirmse</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.66</span></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l4 level1 lfo10;tab-stops:list .5in'>Moved towards an *.ini based
+ settings storage scheme to more closely match the Mame.exe core,
+ individual game *.inis whose settings are altered are stored in the \ini
+ directory. The MameUI GUI settings are stored in MameUI32/64.ini in the root
+ w/ MameUI.exe, and MameUI.ini is stored in the \ini directory and should
+ be interchangeable with a regular Mame.ini.&nbsp; Purge these two items to
+ return to baseline, the registry is no longer used for MameUI. [<b>Chris
+ Kirmse</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l4 level1 lfo10;tab-stops:list .5in'>Provided an additional 'migration'
+ version of MameUI which will copy the contents of the registry key and
+ write it out to the new *.ini scheme when exiting.&nbsp; Useful for people
+ who have a large number of individual game customizations. [<b>John IV /
+ Chris Kirmse</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l4 level1 lfo10;tab-stops:list .5in'>Added toggle for high thread
+ priority in Options • Interface Options to match the core's new
+ -high_priority switch.&nbsp; This will devote more system resources and
+ time to MameUI at the expense of other already running programs. [<b>Chris
+ Kirmse</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.65</span></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l10 level1 lfo11;tab-stops:list .5in'>Updated columnedit.c to
+ allow for MESS32 usage in software view. [<b>Nathan Woods/MESS32</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l10 level1 lfo11;tab-stops:list .5in'>Reworked F5/refresh
+ routines to utilise more audit code and logic. [<b>Chris Kirmse</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l10 level1 lfo11;tab-stops:list .5in'>Reworked -lightgun
+ handling, enabling independently selectable mouse control for those games.
+ [<b>Chris Kirmse</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l10 level1 lfo11;tab-stops:list .5in'>Custom icons are included
+ in the distribution \icons directory to show what the control/tree icons
+ are without having to go through the source. [<b>John IV</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.63.1</span></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l5 level1 lfo12;tab-stops:list .5in'>Fixed analogue dead-zone not
+ being maintained, and pre-0.63 timing not being maintained. [<b>Chris
+ Kirmse</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l5 level1 lfo12;tab-stops:list .5in'>Added folder view for hard
+ drive based games. [<b>Chris Kirmse</b>]<span style='font-size:12.0pt;
+ font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l5 level1 lfo12;tab-stops:list .5in'>Addressed missing/blank
+ custom icon display indexing issue on F5/refresh. [<b>Chris Kirmse</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l5 level1 lfo12;tab-stops:list .5in'>Sped up MameUI launch /
+ folder reading routine. [<b>Chris Kirmse</b>]<span style='font-size:12.0pt;
+ font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l5 level1 lfo12;tab-stops:list .5in'>Fixed screenshot area
+ decimation when resizing images larger than the viewable area. [<b>John IV
+ / Chris Kirmse</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l5 level1 lfo12;tab-stops:list .5in'>Added additional help topic
+ IDs and tool tips. [<b>Chris Kirmse</b>]<span style='font-size:12.0pt;
+ font-family:"Times New Roman"'><o:p></o:p></span></li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.63</span></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l16 level1 lfo13;tab-stops:list .5in'>Added code to ROM loading
+ dialogue to visually indicate user intervention when the game being
+ launched may not work due to 'no good dump' this will match the baseline
+ Mame [press ok to continue].&nbsp; Examples include the game Astyanax,
+ 64th Street etc. [<b>Chris Kirmse</b>]<span style='font-size:12.0pt;
+ font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l16 level1 lfo13;tab-stops:list .5in'>Return to baseline non-I686
+ compile as it prevented MameUI working on a variety of machines. [<b>John
+ IV</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l16 level1 lfo13;tab-stops:list .5in'>Made numerous code changes
+ to allow MameUI to be compiled with the new MinGW 2.0 package. [<b>Chris
+ Kirmse / Mike Haaland</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l16 level1 lfo13;tab-stops:list .5in'>Distribution compiles are
+ now done using above mentioned MinGW 2.0 package. [<b>John IV</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l16 level1 lfo13;tab-stops:list .5in'>Added code to allow for a
+ tool tip to appear showing the full name of a game whose description is
+ cut-off by column width in details/grouped view.&nbsp; Hover cursor over
+ game to activate. [<b>Andrew Kirmse / Chris Kirmse</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l16 level1 lfo13;tab-stops:list .5in'>The default
+ \folders\Favorites.ini has been cleaned out.&nbsp; Now that it is easy to
+ drag and drop or secondary click to add games from the main list to the
+ custom folders, it no longer needs to serve as an example using personal
+ favorites. Be sure to backup existing \folders\Favorites.ini if using the
+ built in installer version of the MameUI distribution. [<b>John IV</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l16 level1 lfo13;tab-stops:list .5in'>Tweaked code for drag &amp;
+ drop of games into custom folders.&nbsp; In a custom folder to drag an
+ item out for deletion, it must go out of the game list pane either left,
+ right, up, or down beneath the last item in the pane or further out of the
+ GUI. [<b>Chris Kirmse</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l16 level1 lfo13;tab-stops:list .5in'>Reworked internal file
+ handling code to interface with Aaron's substantial core updates. [<b>Chris
+ Kirmse</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l16 level1 lfo13;tab-stops:list .5in'>Submitted code suggestion
+ to allow for more granular sorting and display of items in the Manufacturers
+ view, so companies will no longer be grouped with others incorrectly. [<b>René
+ Single</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l16 level1 lfo13;tab-stops:list .5in'>Created new main icon and
+ about.bmp 'Ladybug Homage'. [<b>John IV</b>]<span style='font-size:12.0pt;
+ font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l16 level1 lfo13;tab-stops:list .5in'>Fixed ascending/descending
+ toggle via View • Arrange Icons for columns other than Game.&nbsp; Added
+ some logic to the -listsourcefile column display. Prevented color depth
+ and refresh rate settings from being displayed if games are played in
+ windowed mode. [<b>René Single / Chris Kirmse</b>]<span style='font-size:
+ 12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l16 level1 lfo13;tab-stops:list .5in'>Made Misc. art option gray
+ properly when its parent control was deselected. [<b>Chris Kirmse</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l16 level1 lfo13;tab-stops:list .5in'>Submitted code to clean up
+ some issues with the list and small icons view and icons squishing in
+ details view upon return from another view like large icons. [<b>René
+ Single / Chris Kirmse</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l16 level1 lfo13;tab-stops:list .5in'>Upgraded MameUI to utilize
+ the new common controls from Windows XP, allowing the proper look of an XP
+ application without the need for an external manifest file. [<b>Chris
+ Kirmse</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l16 level1 lfo13;tab-stops:list .5in'>Added ability to rename
+ custom folders from the tree view, secondary click on them and choose
+ rename folder from the context menu, or click the name of the folder three
+ times quickly. [<b>Chris Kirmse</b>]<span style='font-size:12.0pt;
+ font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l16 level1 lfo13;tab-stops:list .5in'>Added the 'Source' folder
+ view, this will display all the driver.c files and all the games within
+ each family. [<b>Mike Haaland</b>]<span style='font-size:12.0pt;
+ font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l16 level1 lfo13;tab-stops:list .5in'>Removed the
+ \folders\BIOS.ini as it is now obviated by the built-in Source folder
+ view. [<b>John IV</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l16 level1 lfo13;tab-stops:list .5in'>Added -sourcefileinfo
+ information to the general tab for each <span class=GramE>games'</span>
+ properties, to easily and quickly see what driver family a game belongs
+ to. [<b>Chris Kirmse</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l16 level1 lfo13;tab-stops:list .5in'>Added the long requested
+ clone offset aka 'Grouped' view.&nbsp; This will display the parent games
+ flush left, with all their clones alphabetized beneath them indented
+ inward. Excellent for grouping the clones whose names may be considerably
+ different than their <span class=GramE>parents,</span> and allowing typing
+ the name of the game to go to the parent set immediately.&nbsp; [<b>John
+ IV / Chris Kirmse</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l16 level1 lfo13;tab-stops:list .5in'>Reworked the Startup
+ Options to now be Interface Options, and added checkboxes to support
+ Aaron's new disclaimer / info screen toggle. [<b>Chris Kirmse</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l16 level1 lfo13;tab-stops:list .5in'>Added new switches -rdtsc /
+ -pause_brightness to match the core. [<b>Chris Kirmse</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.62</span></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l6 level1 lfo14;tab-stops:list .5in'>Internalized the code for
+ rotate.exe, MameUI can now choose its background images from Options •
+ Background Image, and choose a random one on startup.&nbsp; Options •
+ Startup Options • Select Random Background Image. [<b>K&amp;K</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l6 level1 lfo14;tab-stops:list .5in'>Added tabs for the
+ screenshot art <span class=GramE>area,</span> toggle with Alt-b. [<b>K&amp;K</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l6 level1 lfo14;tab-stops:list .5in'>Added code to increase speed
+ of audit. [<b>K&amp;K</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l6 level1 lfo14;tab-stops:list .5in'>Added secondary click menu
+ pop-up for screenshot area. [<b>Sword</b>]<span style='font-size:12.0pt;
+ font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l6 level1 lfo14;tab-stops:list .5in'>Allowed bkground.png to be displayed
+ in history.dat area under screenshot, font color changed to match GUI font
+ color. [<b>K&amp;K</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l6 level1 lfo14;tab-stops:list .5in'>Created new icons for the
+ various tabs in Default Options / Game Properties dialogue boxes. [<b>John
+ IV</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l6 level1 lfo14;tab-stops:list .5in'>Updated the ColumnEdit and
+ Properties code to make them both more extensible. [<b>Nathan Woods/MESS32</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l6 level1 lfo14;tab-stops:list .5in'>Included index fixes to
+ speed load time in treeview.c, particularly with extra \folders *.inis. [<b>Jeff
+ Miller</b>] <span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l6 level1 lfo14;tab-stops:list .5in'>Fixed an issue where the
+ startup focus in the details list would jump to the top of the list before
+ returning to the prior selection. [<b>Chris Kirmse</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l6 level1 lfo14;tab-stops:list .5in'>Main distribution now
+ compiled with I686=1 for Pentium Pro optimization.&nbsp; Doesn't impact
+ high end AMD chips at all but provides speed increases to lower range PII,
+ P3 machines. [<b>John IV</b>]<span style='font-size:12.0pt;font-family:
+ "Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l6 level1 lfo14;tab-stops:list .5in'>Created new *.ini files for
+ the \folders directory.&nbsp; Replace the old ones with these (<span
+ class=GramE>except</span> any user-modified of course). [<b>John IV</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l6 level1 lfo14;tab-stops:list .5in'>Created a new MameUI MSI
+ installer package.&nbsp; This should be easier for beginners. [<b>John IV</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l6 level1 lfo14;tab-stops:list .5in'>Added the ability to drag and
+ drop games into the custom *.ini folders. [<b>Chris Kirmse</b>] <span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l6 level1 lfo14;tab-stops:list .5in'>Added the ability to
+ secondary click on a game to add or remove it from an *.ini file in the
+ \folders directory. [<b>Patrick Jones / Chris Kirmse</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.61</span></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l2 level1 lfo15;tab-stops:list .5in'>Fixed a nasty crasher where
+ MameUI would hang if loading a game that required user intervention in
+ Mame[w] <span class=GramE>like</span> 'The Astyanax', and there was no
+ joystick connected to the system. [<b>Sword</b>]<span style='font-size:
+ 12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l2 level1 lfo15;tab-stops:list .5in'>Fixed a couple of fringe
+ case crashers when Windows is shut down beneath MameUI, i.e. a cabinet
+ setting. [<b>Robert John Sheppard</b>]<span style='font-size:12.0pt;
+ font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l2 level1 lfo15;tab-stops:list .5in'>Removed -dirty / -nodirty
+ options to match Aaron's core changes. [<b>John IV</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l2 level1 lfo15;tab-stops:list .5in'>Added dialogue box support
+ for new artwork switches, added -ini support to Options • Directories. [<b>Mike
+ Haaland</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l2 level1 lfo15;tab-stops:list .5in'>Added dialogue box support
+ for LED disablement, artwork resolution. [<b>Mike Haaland</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l2 level1 lfo15;tab-stops:list .5in'>Added brightness slider,
+ removed -bpp per Aaron's changes. [<b>Mike Haaland</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l2 level1 lfo15;tab-stops:list .5in'>Added sound chip and CPU
+ information to the folder views.&nbsp; Added the long requested feature to
+ create user defined folder views, see \folders files for examples. [<b>Sword,
+ BUT, Emuman / Mike Haaland</b>] <span style='font-size:12.0pt;font-family:
+ "Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l2 level1 lfo15;tab-stops:list .5in'>Created Artwork, BIOS, and
+ Custom folder views. [<b>John IV</b>]<span style='font-size:12.0pt;
+ font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l2 level1 lfo15;tab-stops:list .5in'>Added support for displaying
+ -listsourcefile [source] field to the View • Customize Fields.&nbsp; Handy
+ for sorting to test global driver changes across all its <span
+ class=GramE>games.,</span> or using to report game problems to
+ MameTesters.com. [<b>Mike Haaland</b>]<span style='font-size:12.0pt;
+ font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l2 level1 lfo15;tab-stops:list .5in'>Created new Version and
+ Classification folder views. [<b>John IV</b>]<span style='font-size:12.0pt;
+ font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l2 level1 lfo15;tab-stops:list .5in'>Added support for the new
+ -lightgun switch. [<b>John IV</b>]<span style='font-size:12.0pt;
+ font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l2 level1 lfo15;tab-stops:list .5in'>Removed 'add to favorites'
+ from context menus and file menu since it is now possible/preferable to
+ have favorites stored in the portable, user-defined, external text file
+ [\folders]. <span class=GramE>Which also of course would survive a
+ registry key purge.</span> <span class=GramE>Times played is</span> still
+ accessible as a column in details view. [<b>John IV</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l2 level1 lfo15;tab-stops:list .5in'>Updated help file with new
+ settings, added baseline Mame[w] documents to help file. [<b>John IV</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l2 level1 lfo15;tab-stops:list .5in'>Added \titles directory
+ support to allow for title screenshots viewing. [<b>John IV</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l2 level1 lfo15;tab-stops:list .5in'>Created new MameUI icon and <span
+ class=GramE>About</span> graphic. [<b>John IV</b>]<span style='font-size:
+ 12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.60</span></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l13 level1 lfo16;tab-stops:list .5in'>Created and added the new
+ MameUI HTML Help File. [<b>John IV</b>]<span style='font-size:12.0pt;
+ font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l13 level1 lfo16;tab-stops:list .5in'>Updated context sensitive
+ help support to MameUI, all controls should be mapped to pop-up help. [<b>Mike
+ Haaland</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l13 level1 lfo16;tab-stops:list .5in'>Added 'Use less CPU if
+ possible' check box in Options • Default Options • Miscellaneous.&nbsp;
+ This toggles the new baseline Mame[w] sleep / -nosleep switch.&nbsp; If
+ toggled on, it will return more time slices to the processor and be more
+ amenable to multi-tasking with other applications.&nbsp; If toggled off,
+ MameUI will continue to take 100% of the CPU time as it has historically.&nbsp;
+ It should be toggled 'off' for people experiencing severe slowdowns,
+ particularly laptop users. [<b>John IV / Mike Haaland</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l13 level1 lfo16;tab-stops:list .5in'>Added option to set the
+ directory for hard drive image diff files to match Mame[w] in Options •
+ Directories. Fixed screenshot area decimation when image sized too large
+ for area.&nbsp; Scales properly now and looks great.&nbsp; Fixed flip
+ options. [<b>Sword</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l13 level1 lfo16;tab-stops:list .5in'>Added option to set the
+ directory for icons in Options • Directories. [<b>John IV</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l13 level1 lfo16;tab-stops:list .5in'>Added support for new
+ external controller mapping. This adds support for common arcade
+ controllers and provides the ability to create user defined mappings for
+ home built solutions.&nbsp; See Options • Default Options • Controllers.
+ Also see the controller mapping document in the Mame Documents help
+ section. [<b>Ron Fries</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.59</span></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l15 level1 lfo17;tab-stops:list .5in'>Added 'Allow game selection
+ by joystick' check box to Startup Options.&nbsp; Allows navigation and
+ game launch via controller<span class=GramE>:</span><br>
+ joystick 1 up = up arrow<br>
+ joystick 1 down = down arrow<br>
+ joystick 1 left = left arrow<br>
+ joystick 1 right = right arrow<br>
+ joystick 1 button 1 = play game<br>
+ joystick 1 button 2 = page up<br>
+ joystick 1 button 5 = page down<br>
+ joystick 1 button 3 = end<br>
+ joystick 1 button 6 = home. [<b>Chris Kirmse</b>]<span style='font-size:
+ 12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l15 level1 lfo17;tab-stops:list .5in'>Fixed a few files to allow
+ a MinGW compile without errors. [<b>Sword</b>]<span style='font-size:12.0pt;
+ font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l15 level1 lfo17;tab-stops:list .5in'>Added 'Broadcast selected game
+ to all windows' check box in Startup Options, this allows third party
+ applications to be programmatically told what game is being played in
+ MameUI.&nbsp; It can be used to hook into applications like LED reader
+ boards, or instant message clients, etc. [<b>Chris Kirmse</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+</ul>
+
+<p><font size="1">
+<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y-%m-%d %I:%M %p %Z" startspan -->2008-09-23 09:01 PM -0700<!--webbot bot="Timestamp" endspan i-checksum="37950" -->/ <span class=GramE>john</span> iv</font></p>
+
+</div>
+
+</body>
+
+</html> \ No newline at end of file
diff --git a/docs/release/src/osd/winui/help/images/1.jpg b/docs/release/src/osd/winui/help/images/1.jpg
new file mode 100644
index 00000000000..0ea95f36b2c
--- /dev/null
+++ b/docs/release/src/osd/winui/help/images/1.jpg
Binary files differ
diff --git a/docs/release/src/osd/winui/help/images/2.jpg b/docs/release/src/osd/winui/help/images/2.jpg
new file mode 100644
index 00000000000..645f70feab9
--- /dev/null
+++ b/docs/release/src/osd/winui/help/images/2.jpg
Binary files differ
diff --git a/docs/release/src/osd/winui/help/images/3.jpg b/docs/release/src/osd/winui/help/images/3.jpg
new file mode 100644
index 00000000000..4eb620fd2fe
--- /dev/null
+++ b/docs/release/src/osd/winui/help/images/3.jpg
Binary files differ
diff --git a/docs/release/src/osd/winui/help/images/4.jpg b/docs/release/src/osd/winui/help/images/4.jpg
new file mode 100644
index 00000000000..76b3c7c1176
--- /dev/null
+++ b/docs/release/src/osd/winui/help/images/4.jpg
Binary files differ
diff --git a/docs/release/src/osd/winui/help/images/5.jpg b/docs/release/src/osd/winui/help/images/5.jpg
new file mode 100644
index 00000000000..ee797a92b1b
--- /dev/null
+++ b/docs/release/src/osd/winui/help/images/5.jpg
Binary files differ
diff --git a/docs/release/src/osd/winui/help/images/6.jpg b/docs/release/src/osd/winui/help/images/6.jpg
new file mode 100644
index 00000000000..c2d6e48d904
--- /dev/null
+++ b/docs/release/src/osd/winui/help/images/6.jpg
Binary files differ
diff --git a/docs/release/src/osd/winui/help/images/7.jpg b/docs/release/src/osd/winui/help/images/7.jpg
new file mode 100644
index 00000000000..1635cfe0ccd
--- /dev/null
+++ b/docs/release/src/osd/winui/help/images/7.jpg
Binary files differ
diff --git a/docs/release/src/osd/winui/help/images/8.jpg b/docs/release/src/osd/winui/help/images/8.jpg
new file mode 100644
index 00000000000..8c18f298077
--- /dev/null
+++ b/docs/release/src/osd/winui/help/images/8.jpg
Binary files differ
diff --git a/docs/release/src/osd/winui/help/images/bkground.gif b/docs/release/src/osd/winui/help/images/bkground.gif
new file mode 100644
index 00000000000..3fc4ac0a81a
--- /dev/null
+++ b/docs/release/src/osd/winui/help/images/bkground.gif
Binary files differ
diff --git a/docs/release/src/osd/winui/help/images/folder.gif b/docs/release/src/osd/winui/help/images/folder.gif
new file mode 100644
index 00000000000..e28e6f4033c
--- /dev/null
+++ b/docs/release/src/osd/winui/help/images/folder.gif
Binary files differ
diff --git a/docs/release/src/osd/winui/help/images/int.jpg b/docs/release/src/osd/winui/help/images/int.jpg
new file mode 100644
index 00000000000..cab16e39c26
--- /dev/null
+++ b/docs/release/src/osd/winui/help/images/int.jpg
Binary files differ
diff --git a/docs/release/src/osd/winui/help/images/mame321.gif b/docs/release/src/osd/winui/help/images/mame321.gif
new file mode 100644
index 00000000000..4260dc3848a
--- /dev/null
+++ b/docs/release/src/osd/winui/help/images/mame321.gif
Binary files differ
diff --git a/docs/release/src/osd/winui/help/images/statusbar.gif b/docs/release/src/osd/winui/help/images/statusbar.gif
new file mode 100644
index 00000000000..8619a6f618d
--- /dev/null
+++ b/docs/release/src/osd/winui/help/images/statusbar.gif
Binary files differ
diff --git a/docs/release/src/osd/winui/help/images/toolbar.gif b/docs/release/src/osd/winui/help/images/toolbar.gif
new file mode 100644
index 00000000000..3a1d1ad5ed3
--- /dev/null
+++ b/docs/release/src/osd/winui/help/images/toolbar.gif
Binary files differ
diff --git a/docs/release/src/osd/winui/help/mameui.hhc b/docs/release/src/osd/winui/help/mameui.hhc
new file mode 100644
index 00000000000..e989d217a60
--- /dev/null
+++ b/docs/release/src/osd/winui/help/mameui.hhc
@@ -0,0 +1,122 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<HTML>
+<HEAD>
+<meta name="GENERATOR" content="Microsoft&reg; HTML Help Workshop 4.1">
+<!-- Sitemap 1.0 -->
+</HEAD><BODY>
+<OBJECT type="text/site properties">
+ <param name="Window Styles" value="0x800625">
+ <param name="ImageType" value="Folder">
+<param name="Font" value="Tahoma,8,0">
+</OBJECT>
+<UL>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="MameUI Overview &amp; History">
+ <param name="Local" value="html\mameui_overview.htm">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="MameUI Changes">
+ <param name="Local" value="html\mameui_whatsnew32.htm">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="MameUI Installation">
+ </OBJECT>
+ <UL>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="System Requirements">
+ <param name="Local" value="html\mameui_systemreq.htm">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Download Locations">
+ <param name="Local" value="html\mameUI_download.htm">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Installation Procedures">
+ <param name="Local" value="html\mameUI_installprocedures.htm">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Art and Support Files">
+ <param name="Local" value="html\mameUI_art.htm">
+ </OBJECT>
+ </UL>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="MameUI Usage">
+ </OBJECT>
+ <UL>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="MameUI Suggested Settings">
+ <param name="Local" value="html\mameui_settings.htm">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Playing a Game &amp; Internal Controls">
+ <param name="Local" value="html\mameui_playing.htm">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Toolbar, Status Bar, &amp; Windows">
+ <param name="Local" value="html\mameui_visual_elements.htm">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="File Menu">
+ <param name="Local" value="html\mameui_filemenu.htm">
+ </OBJECT>
+ <UL>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Game Properties">
+ <param name="Local" value="html\mameui_properties.htm">
+ </OBJECT>
+ </UL>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="View Menu">
+ <param name="Local" value="html\mameui_viewmenu.htm">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Options Menu">
+ <param name="Local" value="html\mameui_optionsmenu.htm">
+ </OBJECT>
+ <UL>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Game Properties">
+ <param name="Local" value="html\mameui_properties.htm">
+ </OBJECT>
+ </UL>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Help Menu">
+ <param name="Local" value="html\mameui_help.htm">
+ </OBJECT>
+ </UL>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="MameUI Troubleshooting">
+ <param name="Local" value="html\mameui_support.htm">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="MameUI Credits &amp; Resources">
+ <param name="Local" value="html\mameui_credits.htm">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Game Changes">
+ <param name="Local" value="html\mameui_changes.txt">
+ <param name="New" value="1">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Mame Documents">
+ </OBJECT>
+ <UL>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Mame License">
+ <param name="Local" value="docs\Mame License.htm">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Mame Terms of Use">
+ <param name="Local" value="docs\Mame Statement of Purpose.htm">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Mame Release Notes">
+ <param name="Local" value="docs\whatsnew.txt">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Mame Configuration &amp; Usage">
+ <param name="Local" value="docs\Command Line Settings.htm">
+ </OBJECT>
+ </UL>
+</UL>
+</BODY></HTML>
diff --git a/docs/release/src/osd/winui/help/mameui.hhk b/docs/release/src/osd/winui/help/mameui.hhk
new file mode 100644
index 00000000000..c0ba08a9ac4
--- /dev/null
+++ b/docs/release/src/osd/winui/help/mameui.hhk
@@ -0,0 +1,9 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<HTML>
+<HEAD>
+<meta name="GENERATOR" content="Microsoft&reg; HTML Help Workshop 4.1">
+<!-- Sitemap 1.0 -->
+</HEAD><BODY>
+<UL>
+</UL>
+</BODY></HTML>
diff --git a/docs/release/src/osd/winui/help/mameui.hhp b/docs/release/src/osd/winui/help/mameui.hhp
new file mode 100644
index 00000000000..c0e4e40c160
--- /dev/null
+++ b/docs/release/src/osd/winui/help/mameui.hhp
@@ -0,0 +1,24 @@
+[OPTIONS]
+Binary Index=No
+Compatibility=1.1 or later
+Compiled file=MameUI.chm
+Contents file=mameui.hhc
+Default Window=Baseline
+Default topic=.\html\mameUI_changes.txt
+Display compile progress=No
+Full text search stop list file=stoplist.stp
+Full-text search=Yes
+Index file=mameui.hhk
+Language=0x409 English (United States)
+Title=MameUI Help
+
+[WINDOWS]
+Baseline="MameUI Help","mameUI.hhc",,"html\mameUI_changes.txt",,,,,,0x22520,260,0x300c,[100,100,974,615],,,,,,,0
+
+
+[TEXT POPUPS]
+cntx_help.txt
+reshelp.h
+
+[INFOTYPES]
+
diff --git a/docs/release/src/osd/winui/help/mameui.hm b/docs/release/src/osd/winui/help/mameui.hm
new file mode 100644
index 00000000000..a1f1e82f2ea
--- /dev/null
+++ b/docs/release/src/osd/winui/help/mameui.hm
@@ -0,0 +1,135 @@
+// MAKEHELP.BAT generated Help Map file. Used by MAME32.HHP.
+
+// Commands (ID_* and IDM_*)
+HID_TOOLBAR_EDIT 0x1005C
+HID_CONTEXT_SHOW_FOLDER_START 0x19858
+HID_CONTEXT_SHOW_FOLDER_END 0x19920
+HID_FILE_EXIT 0x19C41
+HID_ABOUT 0x19C43
+HID_FILE_PLAY 0x19C44
+HID_HELP_ABOUT 0x19C46
+HID_VIEW_LARGE_ICON 0x19C47
+HID_VIEW_SMALL_ICON 0x19C48
+HID_VIEW_LIST_MENU 0x19C49
+HID_VIEW_DETAIL 0x19C4A
+HID_VIEW_GROUPED 0x19C4B
+HID_OPTIONS_FONT 0x19C4C
+HID_OPTIONS_CLONE_COLOR 0x19C4D
+HID_OPTIONS_DIR 0x19C4E
+HID_OPTIONS_DEFAULTS 0x19C4F
+HID_OPTIONS_RESET_DEFAULTS 0x19C50
+HID_OPTIONS_INTERFACE 0x19C51
+HID_FILE_AUDIT 0x19C52
+HID_FILE_PLAY_RECORD 0x19C53
+HID_FILE_PLAY_BACK 0x19C54
+HID_FILE_PLAY_RECORD_WAVE 0x19C55
+HID_FILE_PLAY_RECORD_MNG 0x19C56
+HID_VIEW_PICTURE_AREA 0x19C57
+HID_FILE_PLAY_RECORD_AVI 0x19C58
+HID_HELP_CONTENTS 0x19C59
+HID_HELP_WHATS_NEW32 0x19C5A
+HID_HELP_TROUBLE 0x19C5B
+HID_HELP_RELEASE 0x19C5C
+HID_HELP_WHATS_NEW 0x19C5D
+HID_HELP_CHEATS 0x19C5E
+HID_VIEW_BYGAME 0x19C62
+HID_VIEW_BYDIRECTORY 0x19C63
+HID_VIEW_BYMANUFACTURER 0x19C64
+HID_VIEW_BYYEAR 0x19C65
+HID_VIEW_BYTYPE 0x19C66
+HID_VIEW_BYTIMESPLAYED 0x19C67
+HID_VIEW_LINEUPICONS 0x19C68
+HID_UPDATE_GAMELIST 0x19C6A
+HID_SORT_ASCENDING 0x19C6D
+HID_SORT_DESCENDING 0x19C6E
+HID_CUSTOMIZE_FIELDS 0x19C70
+HID_GAME_PROPERTIES 0x19C71
+HID_VIEW_PAGETAB 0x19C72
+HID_VIEW_FOLDERS 0x19C73
+HID_VIEW_TOOLBARS 0x19C74
+HID_VIEW_STATUS 0x19C75
+HID_CONTEXT_FILTERS 0x19C76
+HID_CONTEXT_RENAME_CUSTOM 0x19C77
+HID_CONTEXT_ADD_CUSTOM 0x19C79
+HID_CONTEXT_REMOVE_CUSTOM 0x19C7A
+HID_GAME_AUDIT 0x19C7B
+HID_CONTEXT_SELECT_RANDOM 0x19C7C
+HID_OPTIONS_LANGUAGE 0x19C7D
+HID_VIEW_TAB_SCREENSHOT 0x19C7E
+HID_VIEW_TAB_FLYER 0x19C7F
+HID_VIEW_TAB_CABINET 0x19C80
+HID_VIEW_TAB_MARQUEE 0x19C81
+HID_VIEW_TAB_TITLE 0x19C82
+HID_VIEW_TAB_CONTROL_PANEL 0x19C83
+HID_VIEW_TAB_PCB 0x19C84
+HID_VIEW_TAB_HISTORY 0x19C85
+HID_OPTIONS_BG 0x19C86
+HID_TOGGLE_TAB_SCREENSHOT 0x19C87
+HID_TOGGLE_TAB_FLYER 0x19C88
+HID_TOGGLE_TAB_CABINET 0x19C89
+HID_TOGGLE_TAB_MARQUEE 0x19C8A
+HID_TOGGLE_TAB_TITLE 0x19C8B
+HID_TOGGLE_TAB_CONTROL_PANEL 0x19C8C
+HID_TOGGLE_TAB_PCB 0x19C8D
+HID_TOGGLE_TAB_HISTORY 0x19C8E
+HID_VIEW_FULLSCREEN 0x19C8F
+HID_CONTEXT_RESET_PLAYTIME 0x19C90
+HID_CONTEXT_RESET_PLAYCOUNT 0x19C91
+HID_FOLDER_PROPERTIES 0x19C92
+HID_FOLDER_AUDIT 0x19C93
+HID_UI_UP 0x19C94
+HID_UI_DOWN 0x19C95
+HID_UI_LEFT 0x19C96
+HID_UI_RIGHT 0x19C97
+HID_UI_START 0x19C98
+HID_UI_PGUP 0x19C99
+HID_UI_PGDOWN 0x19C9A
+HID_UI_HOME 0x19C9B
+HID_UI_END 0x19C9C
+HID_UI_HISTORY_UP 0x19C9D
+HID_UI_HISTORY_DOWN 0x19C9E
+HID_FILE_LOADSTATE 0x19C9F
+HID_FOLDER_SOURCEPROPERTIES 0x19CA0
+HID_FOLDER_VECTORPROPERTIES 0x19CA1
+HID_ARRANGE_ICONS 0x19CA2
+
+// Prompts (IDP_*)
+
+// Resources (IDR_*)
+HIDR_MAIN_MENU 0x2006D
+HIDR_UI_MENU 0x2006E
+HIDR_CONTEXT_MENU 0x20076
+HIDR_CONTEXT_HEADER 0x20097
+HIDR_CONTEXT_TREE 0x200A8
+HIDR_CONTEXT_SCREENSHOT 0x200B5
+
+// Dialogs (IDD_*)
+HIDD_MAIN 0x20065
+HIDD_ABOUT 0x2006C
+HIDD_DIRECTX 0x20072
+HIDD_AUDIT 0x20073
+HIDD_DIRECTORIES 0x20074
+HIDD_CUSTOM_FILE 0x20075
+HIDD_PROP_GAME 0x20098
+HIDD_PROP_AUDIT 0x20099
+HIDD_PROP_DISPLAY 0x2009A
+HIDD_PROP_SOUND 0x2009B
+HIDD_PROP_ADVANCED 0x2009C
+HIDD_PROP_INPUT 0x2009D
+HIDD_PROP_MISC 0x2009E
+HIDD_PROP_VECTOR 0x2009F
+HIDD_COLUMNS 0x200A0
+HIDD_FILTERS 0x200A9
+HIDD_RESET 0x200AA
+HIDD_LOAD_PROGRESS 0x200AB
+HIDD_INTERFACE_OPTIONS 0x200AD
+HIDD_PROP_HISTORY 0x200B0
+HIDD_ROM_ERROR 0x200B1
+HIDD_LANGUAGE 0x200B2
+HIDD_ERROR 0x200B3
+HIDD_PROP_DIRECT3D 0x200B8
+HIDD_PROP_CONTROLLER 0x200B9
+HIDD_PROP_SCREEN 0x200BB
+
+// Frame Controls (IDW_*)
+HIDW_STATUS 0x50070
diff --git a/docs/release/src/osd/winui/help/reshelp.h b/docs/release/src/osd/winui/help/reshelp.h
new file mode 100644
index 00000000000..709a8058cb1
--- /dev/null
+++ b/docs/release/src/osd/winui/help/reshelp.h
@@ -0,0 +1,4 @@
+// Include the Microsoft Developer Studio generated Help ID include file.
+//
+#include "..\resource.hm"
+#include "mame32.hm"
diff --git a/docs/release/src/osd/winui/help/stoplist.stp b/docs/release/src/osd/winui/help/stoplist.stp
new file mode 100644
index 00000000000..11255546e24
--- /dev/null
+++ b/docs/release/src/osd/winui/help/stoplist.stp
@@ -0,0 +1,88 @@
+a
+about
+after
+against
+all
+also
+among
+an
+and
+are
+as
+at
+be
+became
+because
+been
+between
+but
+by
+can
+come
+do
+during
+each
+early
+for
+form
+found
+from
+had
+has
+have
+he
+mame32
+his
+however
+in
+include
+into
+is
+it
+its
+late
+later
+me
+med
+made
+many
+may
+more
+most
+near
+no
+non
+not
+of
+on
+only
+or
+other
+over
+several
+she
+some
+such
+than
+that
+the
+their
+then
+there
+these
+they
+this
+through
+to
+under
+until
+use
+was
+we
+were
+when
+where
+which
+who
+with
+you \ No newline at end of file
diff --git a/docs/release/src/osd/winui/helpids.cpp b/docs/release/src/osd/winui/helpids.cpp
new file mode 100644
index 00000000000..31e5e15ffc4
--- /dev/null
+++ b/docs/release/src/osd/winui/helpids.cpp
@@ -0,0 +1,125 @@
+/*
+ * Help ID array - Generated by mkhelp
+ */
+
+#include <windows.h>
+#include "resource.h"
+#include "resource.hm"
+
+extern const DWORD dwHelpIDs[] =
+{
+ IDC_ADSTICK ,HIDC_ADSTICK,
+ IDC_ARTWORK_CROP ,HIDC_ARTWORK_CROP,
+ IDC_ASPECT ,HIDC_ASPECT,
+ IDC_ASPECTRATIOD ,HIDC_ASPECTRATIOD,
+ IDC_ASPECTRATION ,HIDC_ASPECTRATION,
+ IDC_AUDIO_LATENCY ,HIDC_AUDIO_LATENCY,
+ IDC_AUTOFRAMESKIP ,HIDC_AUTOFRAMESKIP,
+ IDC_BACKDROPS ,HIDC_BACKDROPS,
+ IDC_BEAM ,HIDC_BEAM,
+ IDC_BEZELS ,HIDC_BEZELS,
+ IDC_BIOS ,HIDC_BIOS,
+ IDC_BRIGHTCORRECT ,HIDC_BRIGHTCORRECT,
+ IDC_CHEAT ,HIDC_CHEAT,
+ IDC_COINLOCKOUT ,HIDC_COINLOCKOUT,
+ IDC_CONTRAST ,HIDC_CONTRAST,
+ IDC_CYCLETIMESEC ,HIDC_CYCLETIMESEC,
+ IDC_D3D_FILTER ,HIDC_D3D_FILTER,
+ IDC_DEBUG ,HIDC_DEBUG,
+ IDC_DEFAULT_INPUT ,HIDC_DEFAULT_INPUT,
+ IDC_DIAL ,HIDC_DIAL,
+ IDC_DUAL_LIGHTGUN ,HIDC_DUAL_LIGHTGUN,
+ IDC_ENABLE_AUTOSAVE ,HIDC_ENABLE_AUTOSAVE,
+ IDC_FILTER_CLONES ,HIDC_FILTER_CLONES,
+ IDC_FILTER_EDIT ,HIDC_FILTER_EDIT,
+ IDC_FILTER_HORIZONTAL ,HIDC_FILTER_HORIZONTAL,
+ IDC_FILTER_MECHANICAL ,HIDC_FILTER_MECHANICAL,
+ IDC_FILTER_NONWORKING ,HIDC_FILTER_NONWORKING,
+ IDC_FILTER_ORIGINALS ,HIDC_FILTER_ORIGINALS,
+ IDC_FILTER_RASTER ,HIDC_FILTER_RASTER,
+ IDC_FILTER_UNAVAILABLE ,HIDC_FILTER_UNAVAILABLE,
+ IDC_FILTER_VECTOR ,HIDC_FILTER_VECTOR,
+ IDC_FILTER_VERTICAL ,HIDC_FILTER_VERTICAL,
+ IDC_FILTER_WORKING ,HIDC_FILTER_WORKING,
+ IDC_FLICKER ,HIDC_FLICKER,
+ IDC_FLIPX ,HIDC_FLIPX,
+ IDC_FLIPY ,HIDC_FLIPY,
+ IDC_FRAMESKIP ,HIDC_FRAMESKIP,
+ IDC_FSBRIGHTNESS ,HIDC_FSBRIGHTNESS,
+ IDC_FSCONTRAST ,HIDC_FSCONTRAST,
+ IDC_FSGAMMA ,HIDC_FSGAMMA,
+ IDC_GAMMA ,HIDC_GAMMA,
+ IDC_HIDE_MOUSE ,HIDC_HIDE_MOUSE,
+ IDC_HIGH_PRIORITY ,HIDC_HIGH_PRIORITY,
+ IDC_HISTORY ,HIDC_HISTORY,
+ IDC_HWSTRETCH ,HIDC_HWSTRETCH,
+ IDC_JDZ ,HIDC_JDZ,
+ IDC_JOY_GUI ,HIDC_JOY_GUI,
+ IDC_JOYSTICK ,HIDC_JOYSTICK,
+ IDC_JSAT ,HIDC_JSAT,
+ IDC_KEEPASPECT ,HIDC_KEEPASPECT,
+ IDC_LIGHTGUN ,HIDC_LIGHTGUN,
+ IDC_LIGHTGUNDEVICE ,HIDC_LIGHTGUNDEVICE,
+ IDC_LOG ,HIDC_LOG,
+ IDC_MAXIMIZE ,HIDC_MAXIMIZE,
+ IDC_MOUSE ,HIDC_MOUSE,
+ IDC_MULTIKEYBOARD ,HIDC_MULTIKEYBOARD,
+ IDC_MULTIMOUSE ,HIDC_MULTIMOUSE,
+ IDC_MULTITHREAD_RENDERING ,HIDC_MULTITHREAD_RENDERING,
+ IDC_NUMSCREENS ,HIDC_NUMSCREENS,
+ IDC_OSLOG ,HIDC_OSLOG,
+ IDC_OVERLAYS ,HIDC_OVERLAYS,
+ IDC_PADDLE ,HIDC_PADDLE,
+ IDC_PAUSEBRIGHT ,HIDC_PAUSEBRIGHT,
+ IDC_PEDAL ,HIDC_PEDAL,
+ IDC_POSITIONAL ,HIDC_POSITIONAL,
+ IDC_PRESCALE ,HIDC_PRESCALE,
+ IDC_PROP_RESET ,HIDC_PROP_RESET,
+ IDC_REFRESH ,HIDC_REFRESH,
+ IDC_REFRESHSPEED ,HIDC_REFRESHSPEED,
+ IDC_RELOAD ,HIDC_RELOAD,
+ IDC_RESET_DEBUGSCRIPT ,HIDC_RESET_DEBUGSCRIPT,
+ IDC_RESET_DEFAULT ,HIDC_RESET_DEFAULT,
+ IDC_RESET_EFFECT ,HIDC_RESET_EFFECT,
+ IDC_RESET_FILTERS ,HIDC_RESET_FILTERS,
+ IDC_RESET_GAMES ,HIDC_RESET_GAMES,
+ IDC_RESET_JOYSTICKMAP ,HIDC_RESET_JOYSTICKMAP,
+ IDC_RESET_UI ,HIDC_RESET_UI,
+ IDC_ROTATE ,HIDC_ROTATE,
+ IDC_SAMPLERATE ,HIDC_SAMPLERATE,
+ IDC_SAMPLES ,HIDC_SAMPLES,
+ IDC_SCREEN ,HIDC_SCREEN,
+ IDC_SCREENSELECT ,HIDC_SCREENSELECT,
+ IDC_SECONDSTORUN ,HIDC_SECONDSTORUN,
+ IDC_SELECT_DEBUGSCRIPT ,HIDC_SELECT_DEBUGSCRIPT,
+ IDC_SELECT_EFFECT ,HIDC_SELECT_EFFECT,
+ IDC_SELECT_JOYSTICKMAP ,HIDC_SELECT_JOYSTICKMAP,
+ IDC_SIZES ,HIDC_SIZES,
+ IDC_SKIP_GAME_INFO ,HIDC_SKIP_GAME_INFO,
+ IDC_SLEEP ,HIDC_SLEEP,
+ IDC_SNAPNAME ,HIDC_SNAPNAME,
+ IDC_SNAPSIZE ,HIDC_SNAPSIZE,
+ IDC_SNAPSIZEHEIGHT ,HIDC_SNAPSIZEHEIGHT,
+ IDC_SNAPSIZEWIDTH ,HIDC_SNAPSIZEWIDTH,
+ IDC_SNAPVIEW ,HIDC_SNAPVIEW,
+ IDC_SPEED ,HIDC_SPEED,
+ IDC_START_GAME_CHECK ,HIDC_START_GAME_CHECK,
+ IDC_STEADYKEY ,HIDC_STEADYKEY,
+ IDC_STRETCH_SCREENSHOT_LARGER ,HIDC_STRETCH_SCREENSHOT_LARGER,
+ IDC_SWITCHRES ,HIDC_SWITCHRES,
+ IDC_SYNCREFRESH ,HIDC_SYNCREFRESH,
+ IDC_THROTTLE ,HIDC_THROTTLE,
+ IDC_TRACKBALL ,HIDC_TRACKBALL,
+ IDC_TRIPLE_BUFFER ,HIDC_TRIPLE_BUFFER,
+ IDC_UPDATEINPAUSE ,HIDC_UPDATEINPAUSE,
+ IDC_USE_DEFAULT ,HIDC_USE_DEFAULT,
+ IDC_USE_MOUSE ,HIDC_USE_MOUSE,
+ IDC_VERBOSE ,HIDC_VERBOSE,
+ IDC_VIDEO_MODE ,HIDC_VIDEO_MODE,
+ IDC_VIEW ,HIDC_VIEW,
+ IDC_VOLUME ,HIDC_VOLUME,
+ IDC_WAITVSYNC ,HIDC_WAITVSYNC,
+ IDC_WINDOWED ,HIDC_WINDOWED,
+ 0 ,0
+
+};
diff --git a/docs/release/src/osd/winui/history.cpp b/docs/release/src/osd/winui/history.cpp
new file mode 100644
index 00000000000..fb96346f307
--- /dev/null
+++ b/docs/release/src/osd/winui/history.cpp
@@ -0,0 +1,982 @@
+// For licensing and usage information, read docs/winui_license.txt
+// MASTER
+//****************************************************************************
+/***************************************************************************
+
+ history.cpp
+
+ * history functions.
+ * History database engine
+ * Collect all information on the selected driver, and return it as
+ * a string. Called by winui.cpp
+ *
+ * Token parsing by Neil Bradley
+ * Modifications and higher-level functions by John Butler
+
+ * Further work by Mamesick and Robbbert
+
+***************************************************************************/
+
+// standard windows headers
+#include <windows.h>
+
+// MAME/MAMEUI headers
+#include "emu.h"
+#include "screen.h"
+#include "speaker.h"
+#include "drivenum.h"
+#include "mui_util.h"
+#include "mui_opts.h"
+#include "sound/samples.h"
+
+#define MAX_TOKEN_LENGTH 256
+#define DATAFILE_TAG '$'
+
+/****************************************************************************
+ * datafile constants
+ ****************************************************************************/
+static const char *DATAFILE_TAG_KEY = "$info";
+static const char *DATAFILE_TAG_BIO = "$bio";
+static const char *DATAFILE_TAG_MAME = "$mame";
+static const char *DATAFILE_TAG_DRIV = "$drv";
+static const char *DATAFILE_TAG_CMD = "$cmd";
+static const char *DATAFILE_TAG_SCORE = "$story";
+static const char *DATAFILE_TAG_END = "$end";
+
+/****************************************************************************
+ * private data for parsing functions
+ ****************************************************************************/
+static FILE *fp = nullptr; /* Our file pointer */
+static UINT64 dwFilePos = 0; /* file position */
+static char filename[MAX_PATH]; /* datafile name */
+
+struct tDatafileIndex
+{
+ long offset;
+ const game_driver *driver;
+};
+
+static struct tDatafileIndex *gameinit_idx = nullptr;
+static struct tDatafileIndex *hist_idx = nullptr;
+static struct tDatafileIndex *mame_idx = nullptr;
+static struct tDatafileIndex *driv_idx = nullptr;
+static struct tDatafileIndex *sysinfo_idx = nullptr;
+static struct tDatafileIndex *mess_idx = nullptr;
+static struct tDatafileIndex *messdriv_idx = nullptr;
+static struct tDatafileIndex *cmd_idx = nullptr;
+static struct tDatafileIndex *score_idx = nullptr;
+
+/****************************************************************************
+* Create an array with sorted sourcedrivers for the function
+* index_datafile_drivinfo to speed up the datafile access
+****************************************************************************/
+
+typedef struct
+{
+ const char *srcdriver;
+ int index;
+} srcdriver_data_type;
+
+static srcdriver_data_type *sorted_srcdrivers = nullptr;
+
+static int SrcDriverDataCompareFunc(const void *arg1, const void *arg2)
+{
+ return strcmp(((srcdriver_data_type *)arg1)->srcdriver, ((srcdriver_data_type *)arg2)->srcdriver);
+}
+
+static int GetSrcDriverIndex(const char *srcdriver)
+{
+ srcdriver_data_type *srcdriver_index_info;
+ srcdriver_data_type key;
+ key.srcdriver = srcdriver;
+ int num_games = driver_list::total();
+
+ if (sorted_srcdrivers == NULL)
+ {
+ /* initialize array of game names/indices */
+ sorted_srcdrivers = (srcdriver_data_type *)malloc(sizeof(srcdriver_data_type) * num_games);
+ for (int i = 0; i < num_games; i++)
+ {
+ sorted_srcdrivers[i].srcdriver = driver_list::driver(i).source_file+32;
+ sorted_srcdrivers[i].index = i;
+ }
+ qsort(sorted_srcdrivers,num_games,sizeof(srcdriver_data_type),SrcDriverDataCompareFunc);
+ }
+
+ srcdriver_index_info = (srcdriver_data_type *)bsearch(&key, sorted_srcdrivers, num_games, sizeof(srcdriver_data_type), SrcDriverDataCompareFunc);
+
+ if (srcdriver_index_info)
+ return srcdriver_index_info->index;
+ else
+ return -1;
+}
+
+/****************************************************************************
+ * ParseClose - Closes the existing opened file (if any)
+ ****************************************************************************/
+static void ParseClose(void)
+{
+ /* If the file is open, time for fclose. */
+ if (fp)
+ fclose(fp);
+}
+
+/****************************************************************************
+ * ParseOpen - Open up file for reading
+ ****************************************************************************/
+static BOOL ParseOpen(const char *pszFilename)
+{
+ /* MAME core file parsing functions fail in recognizing UNICODE chars in UTF-8 without BOM,
+ so it's better and faster use standard C fileio functions */
+ fp = fopen(pszFilename, "r");
+
+ if (fp == NULL)
+ return FALSE;
+
+ /* Otherwise, prepare! */
+ dwFilePos = 0;
+ /* identify text file type first */
+ fgetc(fp);
+ fseek(fp, dwFilePos, SEEK_SET);
+ return TRUE;
+}
+
+/****************************************************************************
+ * ParseSeek - Move the file position indicator
+ ****************************************************************************/
+static UINT8 ParseSeek(UINT64 offset, int whence)
+{
+ int result = fseek(fp, offset, whence);
+
+ if (result == 0)
+ dwFilePos = ftell(fp);
+
+ return (UINT8)result;
+}
+
+/**************************************************************************
+ **************************************************************************
+ *
+ * Datafile functions
+ *
+ **************************************************************************
+ **************************************************************************/
+
+ /**************************************************************************
+ * index_datafile
+ * Create an index for the records in the currently open datafile.
+ *
+ * Returns 0 on error, or the number of index entries created.
+ **************************************************************************/
+static int index_datafile(struct tDatafileIndex **_index, int source)
+{
+ struct tDatafileIndex *idx;
+ int count = 0;
+ char readbuf[512];
+ char name[40];
+ int num_games = driver_list::total();
+
+ /* rewind file */
+ if (ParseSeek (0L, SEEK_SET))
+ return 0;
+
+ /* allocate index */
+ idx = *_index = global_alloc_array(tDatafileIndex, (num_games + 1) * sizeof (struct tDatafileIndex));
+
+ if (!idx)
+ return 0;
+
+ while (fgets(readbuf, 512, fp))
+ {
+ /* DATAFILE_TAG_KEY identifies the driver */
+ if (!core_strnicmp(DATAFILE_TAG_KEY, readbuf, strlen(DATAFILE_TAG_KEY)))
+ {
+ int game_index = 0;
+ char *curpoint = &readbuf[strlen(DATAFILE_TAG_KEY) + 1];
+ char *pch = NULL;
+ char *ends = &readbuf[strlen(readbuf) - 1];
+
+ while (curpoint < ends)
+ {
+ // search for comma
+ pch = strpbrk(curpoint, ",");
+
+ // found it
+ if (pch)
+ {
+ // copy data and validate driver
+ int len = pch - curpoint;
+ strncpy(name, curpoint, len);
+ name[len] = '\0';
+
+ if (!source)
+ game_index = GetGameNameIndex(name);
+ else
+ game_index = GetSrcDriverIndex(name);
+
+ if (game_index >= 0)
+ {
+ idx->driver = &driver_list::driver(game_index);
+ idx->offset = ftell(fp);
+ idx++;
+ count++;
+ }
+
+ // update current point
+ curpoint = pch + 1;
+ }
+ // if comma not found, copy data while until reach the end of string
+ else if (!pch && curpoint < ends)
+ {
+ int len = ends - curpoint;
+ strncpy(name, curpoint, len);
+ name[len] = '\0';
+
+ if (!source)
+ game_index = GetGameNameIndex(name);
+ else
+ game_index = GetSrcDriverIndex(name);
+
+ if (game_index >= 0)
+ {
+ idx->driver = &driver_list::driver(game_index);
+ idx->offset = ftell(fp);
+ idx++;
+ count++;
+ }
+
+ // update current point
+ curpoint = ends;
+ }
+ }
+ }
+ }
+
+ /* mark end of index */
+ idx->offset = 0L;
+ idx->driver = 0;
+ return count;
+}
+
+/**************************************************************************
+ * load_datafile_text
+ *
+ * Loads text field for a driver into the buffer specified. Specify the
+ * driver, a pointer to the buffer, the buffer size, the index created by
+ * index_datafile(), and the desired text field (e.g., DATAFILE_TAG_BIO).
+ *
+ * Returns 0 if successful.
+ **************************************************************************/
+static int load_datafile_text(const game_driver *drv, char *buffer, int bufsize, struct tDatafileIndex *idx, const char *tag, int source_file, int mameinfo)
+{
+ char readbuf[16384];
+
+ *buffer = '\0';
+
+ if (!source_file)
+ {
+ /* find driver in datafile index */
+ while (idx->driver)
+ {
+ if (idx->driver == drv)
+ break;
+
+ idx++;
+ }
+ }
+ else
+ {
+ /* find source file in datafile index */
+ while (idx->driver)
+ {
+ if (idx->driver->source_file == drv->source_file)
+ break;
+
+ idx++;
+ }
+ }
+
+ if (idx->driver == 0)
+ return 1; /* driver not found in index */
+
+ /* seek to correct point in datafile */
+ if (ParseSeek (idx->offset, SEEK_SET))
+ return 1;
+
+ /* read text until buffer is full or end of entry is encountered */
+ while (fgets(readbuf, 16384, fp))
+ {
+ if (!core_strnicmp(DATAFILE_TAG_END, readbuf, strlen(DATAFILE_TAG_END)))
+ break;
+
+ if (!core_strnicmp(tag, readbuf, strlen(tag)))
+ continue;
+
+ if (strlen(buffer) + strlen(readbuf) > bufsize)
+ break;
+
+ if (mameinfo)
+ {
+ char *temp = strtok(readbuf, "\r\n\r\n");
+ if (temp != nullptr)
+ strcat(buffer, temp);
+ else
+ strcat(buffer, readbuf);
+ }
+ else
+ strcat(buffer, readbuf);
+ }
+
+ return 0;
+}
+
+/**************************************************************************
+ * load_driver_history
+ * Load history text for the specified driver into the specified buffer.
+ * Combines $bio field of HISTORY.DAT with $mame field of MAMEINFO.DAT.
+ *
+ * Returns 0 if successful.
+ *
+ * NOTE: For efficiency the indices are never freed (intentional leak).
+ **************************************************************************/
+static int load_driver_history(const game_driver *drv, char *buffer, int bufsize, int filenum)
+{
+ int history = 0;
+
+ *buffer = 0;
+
+ if (filenum)
+ snprintf(filename, ARRAY_LENGTH(filename), "%s\\sysinfo.dat", GetDatsDir());
+ else
+ snprintf(filename, ARRAY_LENGTH(filename), "%s\\history.dat", GetDatsDir());
+
+ /* try to open history datafile */
+ if (filenum)
+ {
+ if (ParseOpen(filename))
+ {
+ /* create index if necessary */
+ if (sysinfo_idx)
+ history = 1;
+ else
+ history = (index_datafile (&sysinfo_idx, 0) != 0);
+
+ /* load history text (append)*/
+ if (sysinfo_idx)
+ {
+ strcat(buffer, "\n**** SYSINFO: ****\n\n");
+ int len = strlen(buffer);
+ int err = 0;
+ const game_driver *gdrv;
+ gdrv = drv;
+
+ do
+ {
+ err = load_datafile_text(gdrv, buffer + len, bufsize - len, sysinfo_idx, DATAFILE_TAG_BIO, 0, 0);
+ int g = driver_list::clone(*gdrv);
+
+ if (g!=-1)
+ gdrv = &driver_list::driver(g);
+ else
+ gdrv = NULL;
+ } while (err && gdrv);
+
+ if (err)
+ history = 0;
+ }
+
+ ParseClose();
+ }
+ }
+ else
+ {
+ if (ParseOpen(filename))
+ {
+ /* create index if necessary */
+ if (hist_idx)
+ history = 1;
+ else
+ history = (index_datafile (&hist_idx, 0) != 0);
+
+ /* load history text (append)*/
+ if (hist_idx)
+ {
+ strcat(buffer, "\n**** HISTORY: ****\n\n");
+ int len = strlen(buffer);
+ int err = 0;
+ const game_driver *gdrv;
+ gdrv = drv;
+
+ do
+ {
+ err = load_datafile_text(gdrv, buffer + len, bufsize - len, hist_idx, DATAFILE_TAG_BIO, 0, 0);
+ int g = driver_list::clone(*gdrv);
+
+ if (g!=-1)
+ gdrv = &driver_list::driver(g);
+ else
+ gdrv = NULL;
+ } while (err && gdrv);
+
+ if (err)
+ history = 0;
+ }
+
+ ParseClose();
+ }
+ }
+
+ strcat(buffer, "\n");
+ return (history == 0);
+}
+
+static int load_driver_mameinfo(const game_driver *drv, char *buffer, int bufsize, int filenum)
+{
+ machine_config config(*drv, MameUIGlobal());
+ const game_driver *parent = NULL;
+ char name[512];
+ int mameinfo = 0;
+ int is_bios = 0;
+
+ *buffer = 0;
+
+ switch (filenum)
+ {
+ case 0:
+ snprintf(filename, ARRAY_LENGTH(filename), "%s\\mameinfo.dat", GetDatsDir());
+ strcat(buffer, "\n**** MAMEINFO: ****\n\n");
+ break;
+ case 1:
+ snprintf(filename, ARRAY_LENGTH(filename), "%s\\messinfo.dat", GetDatsDir());
+ strcat(buffer, "\n**** MESSINFO: ****\n\n");
+ break;
+ case 2:
+ snprintf(filename, ARRAY_LENGTH(filename), "%s\\gameinit.dat", GetDatsDir());
+ strcat(buffer, "\n**** GAMEINIT: ****\n\n");
+ break;
+ default:
+ break;
+ }
+
+ if (filenum < 2)
+ {
+ /* List the game info 'flags' */
+ if (drv->flags & MACHINE_NOT_WORKING)
+ strcat(buffer, "THIS GAME DOESN'T WORK PROPERLY\n");
+
+ if (drv->flags & MACHINE_UNEMULATED_PROTECTION)
+ strcat(buffer, "The game has protection which isn't fully emulated.\n");
+
+ if (drv->flags & MACHINE_IMPERFECT_GRAPHICS)
+ strcat(buffer, "The video emulation isn't 100% accurate.\n");
+
+ if (drv->flags & MACHINE_WRONG_COLORS)
+ strcat(buffer, "The colors are completely wrong.\n");
+
+ if (drv->flags & MACHINE_IMPERFECT_COLORS)
+ strcat(buffer, "The colors aren't 100% accurate.\n");
+
+ if (drv->flags & MACHINE_NO_SOUND)
+ strcat(buffer, "The game lacks sound.\n");
+
+ if (drv->flags & MACHINE_IMPERFECT_SOUND)
+ strcat(buffer, "The sound emulation isn't 100% accurate.\n");
+
+ if (drv->flags & MACHINE_SUPPORTS_SAVE)
+ strcat(buffer, "Save state support.\n");
+
+ if (drv->flags & MACHINE_MECHANICAL)
+ strcat(buffer, "The game contains mechanical parts.\n");
+
+ strcat(buffer, "\n");
+
+ if (drv->flags & MACHINE_IS_BIOS_ROOT)
+ is_bios = 1;
+ }
+
+ /* try to open mameinfo datafile */
+ if (ParseOpen(filename))
+ {
+ if (filenum == 2)
+ {
+ /* create index if necessary */
+ if (gameinit_idx)
+ mameinfo = 1;
+ else
+ mameinfo = (index_datafile (&gameinit_idx, 0) != 0);
+
+ /* load informational text (append) */
+ if (gameinit_idx)
+ {
+ int len = strlen(buffer);
+ int err = 0;
+ const game_driver *gdrv;
+ gdrv = drv;
+
+ do
+ {
+ err = load_datafile_text(gdrv, buffer + len, bufsize - len, gameinit_idx, DATAFILE_TAG_MAME, 0, 1);
+ int g = driver_list::clone(*gdrv);
+
+ if (g!=-1)
+ gdrv = &driver_list::driver(g);
+ else
+ gdrv = NULL;
+ } while (err && gdrv);
+
+ if (err)
+ mameinfo = 0;
+ }
+ }
+ else
+ if (filenum == 1)
+ {
+ /* create index if necessary */
+ if (mess_idx)
+ mameinfo = 1;
+ else
+ mameinfo = (index_datafile (&mess_idx, 0) != 0);
+
+ /* load informational text (append) */
+ if (mess_idx)
+ {
+ int len = strlen(buffer);
+ int err = 0;
+ const game_driver *gdrv;
+ gdrv = drv;
+
+ do
+ {
+ err = load_datafile_text(gdrv, buffer + len, bufsize - len, mess_idx, DATAFILE_TAG_MAME, 0, 1);
+ int g = driver_list::clone(*gdrv);
+
+ if (g!=-1)
+ gdrv = &driver_list::driver(g);
+ else
+ gdrv = NULL;
+ } while (err && gdrv);
+
+ if (err)
+ mameinfo = 0;
+ }
+ }
+ else
+ if (filenum == 0)
+ {
+ /* create index if necessary */
+ if (mame_idx)
+ mameinfo = 1;
+ else
+ mameinfo = (index_datafile (&mame_idx, 0) != 0);
+
+ /* load informational text (append) */
+ if (mame_idx)
+ {
+ int len = strlen(buffer);
+ int err = 0;
+ const game_driver *gdrv;
+ gdrv = drv;
+
+ do
+ {
+ err = load_datafile_text(gdrv, buffer + len, bufsize - len, mame_idx, DATAFILE_TAG_MAME, 0, 1);
+ int g = driver_list::clone(*gdrv);
+
+ if (g!=-1)
+ gdrv = &driver_list::driver(g);
+ else
+ gdrv = NULL;
+ } while (err && gdrv);
+
+ if (err)
+ mameinfo = 0;
+ }
+ }
+
+ ParseClose();
+ }
+
+ if (filenum > 1)
+ return (mameinfo == 0);
+
+ /* GAME INFORMATIONS */
+ snprintf(name, ARRAY_LENGTH(name), "\nGAME: %s\n", drv->name);
+ strcat(buffer, name);
+ snprintf(name, ARRAY_LENGTH(name), "%s", drv->description);
+ strcat(buffer, name);
+ snprintf(name, ARRAY_LENGTH(name), " (%s %s)\n\nCPU:\n", drv->manufacturer, drv->year);
+ strcat(buffer, name);
+ /* iterate over CPUs */
+ for (device_execute_interface &cpu : execute_interface_iterator(config.root_device()))
+ {
+ if (cpu.device().clock() >= 1000000)
+ snprintf(name, ARRAY_LENGTH(name), "%s %d.%06d MHz\n", cpu.device().name(), cpu.device().clock() / 1000000, cpu.device().clock() % 1000000);
+ else
+ snprintf(name, ARRAY_LENGTH(name), "%s %d.%03d kHz\n", cpu.device().name(), cpu.device().clock() / 1000, cpu.device().clock() % 1000);
+
+ strcat(buffer, name);
+ }
+
+ strcat(buffer, "\nSOUND:\n");
+ int has_sound = 0;
+ /* iterate over sound chips */
+
+ for (device_sound_interface &sound : sound_interface_iterator(config.root_device()))
+ {
+ char tmpname[1024];
+
+ snprintf(tmpname, ARRAY_LENGTH(tmpname), "%s", sound.device().name());
+ int clock = sound.device().clock();
+ has_sound = 1;
+
+ strcat(buffer, tmpname);
+
+ if (clock)
+ {
+ if (clock >= 1000000)
+ snprintf(name, ARRAY_LENGTH(name), " %d.%06d MHz", clock / 1000000, clock % 1000000);
+ else
+ snprintf(name, ARRAY_LENGTH(name), " %d.%03d kHz", clock / 1000, clock % 1000);
+
+ strcat(buffer, name);
+ }
+
+ strcat(buffer, "\n");
+ }
+
+ if (has_sound)
+ {
+ speaker_device_iterator iter(config.root_device());
+ int channels = iter.count();
+
+ if(channels == 1)
+ snprintf(name, ARRAY_LENGTH(name), "%d Channel\n",channels);
+ else
+ snprintf(name, ARRAY_LENGTH(name), "%dx Channels\n",channels);
+
+ strcat(buffer, name);
+ }
+
+ strcat(buffer, "\nVIDEO:\n");
+ screen_device_iterator screeniter(config.root_device());
+ const screen_device *screen1 = screeniter.first();
+
+ if (screen1 == nullptr)
+ strcat(buffer, "Screenless\n");
+ else if (screen1->screen_type() == SCREEN_TYPE_VECTOR)
+ strcat(buffer,"Vector\n");
+ else
+ {
+ for (screen_device &screen : screen_device_iterator(config.root_device()))
+ {
+ if (drv->flags & ORIENTATION_SWAP_XY)
+ snprintf(name, ARRAY_LENGTH(name), "%d x %d (V)", screen.visible_area().height(), screen.visible_area().width());
+ else
+ snprintf(name, ARRAY_LENGTH(name), "%d x %d (H)", screen.visible_area().width(), screen.visible_area().height());
+
+ strcat(buffer, name);
+ snprintf(name, ARRAY_LENGTH(name), " %f Hz", ATTOSECONDS_TO_HZ(screen.refresh_attoseconds()));
+ strcat(buffer, name);
+ strcat(buffer, "\n");
+ }
+ }
+
+ strcat(buffer, "\nROM REGION:\n");
+ int g = driver_list::clone(*drv);
+
+ if (g != -1)
+ parent = &driver_list::driver(g);
+
+ for (device_t &device : device_iterator(config.root_device()))
+ {
+ for (const rom_entry *region = rom_first_region(device); region; region = rom_next_region(region))
+ {
+ for (const rom_entry *rom = rom_first_file(region); rom; rom = rom_next_file(rom))
+ {
+ util::hash_collection hashes(ROM_GETHASHDATA(rom));
+
+ if (g != -1)
+ {
+ machine_config pconfig(*parent, MameUIGlobal());
+ device_iterator deviter(pconfig.root_device());
+
+ for (device_t &device : device_iterator(pconfig.root_device()))
+ for (const rom_entry *pregion = rom_first_region(device); pregion; pregion = rom_next_region(pregion))
+ for (const rom_entry *prom = rom_first_file(pregion); prom; prom = rom_next_file(prom))
+ {
+ util::hash_collection phashes(ROM_GETHASHDATA(prom));
+
+ if (hashes == phashes)
+ break;
+ }
+ }
+
+ snprintf(name, ARRAY_LENGTH(name), "%-16s \t", ROM_GETNAME(rom));
+ strcat(buffer, name);
+ snprintf(name, ARRAY_LENGTH(name), "%09d \t", rom_file_size(rom));
+ strcat(buffer, name);
+ snprintf(name, ARRAY_LENGTH(name), "%-10s", ROMREGION_GETTAG(region));
+ strcat(buffer, name);
+ strcat(buffer, "\n");
+ }
+ }
+ }
+
+ for (samples_device &device : samples_device_iterator(config.root_device()))
+ {
+ samples_iterator sampiter(device);
+
+ if (sampiter.altbasename() )
+ {
+ snprintf(name, ARRAY_LENGTH(name), "\nSAMPLES (%s):\n", sampiter.altbasename());
+ strcat(buffer, name);
+ }
+
+ std::unordered_set<std::string> already_printed;
+
+ for (const char *samplename = sampiter.first(); samplename; samplename = sampiter.next())
+ {
+ // filter out duplicates
+ if (!already_printed.insert(samplename).second)
+ continue;
+
+ // output the sample name
+ snprintf(name, ARRAY_LENGTH(name), "%s.wav\n", samplename);
+ strcat(buffer, name);
+ }
+ }
+
+ if (!is_bios)
+ {
+ int g = driver_list::clone(*drv);
+
+ if (g != -1)
+ drv = &driver_list::driver(g);
+
+ strcat(buffer, "\nORIGINAL:\n");
+ strcat(buffer, drv->description);
+ strcat(buffer, "\n\nCLONES:\n");
+
+ for (int i = 0; i < driver_list::total(); i++)
+ {
+ if (!strcmp (drv->name, driver_list::driver(i).parent))
+ {
+ strcat(buffer, driver_list::driver(i).description);
+ strcat(buffer, "\n");
+ }
+ }
+ }
+
+ strcat(buffer, "\n");
+ return (mameinfo == 0);
+}
+
+static int load_driver_driverinfo(const game_driver *drv, char *buffer, int bufsize, int filenum)
+{
+ int drivinfo = 0;
+ char source_file[40];
+ char tmp[100];
+ std::string temp = core_filename_extract_base(drv->source_file);
+ strcpy(source_file, temp.c_str());
+
+ *buffer = 0;
+
+ if (filenum)
+ snprintf(filename, ARRAY_LENGTH(filename), "%s\\messinfo.dat", GetDatsDir());
+ else
+ snprintf(filename, ARRAY_LENGTH(filename), "%s\\mameinfo.dat", GetDatsDir());
+
+ /* Print source code file */
+ snprintf(tmp, ARRAY_LENGTH(tmp), "\n\nSOURCE: %s\n\n", source_file);
+ strcat(buffer, tmp);
+
+ /* Try to open mameinfo datafile - driver section*/
+ if (ParseOpen(filename))
+ {
+ if (filenum)
+ {
+ /* create index if necessary */
+ if (messdriv_idx)
+ drivinfo = 1;
+ else
+ drivinfo = (index_datafile (&messdriv_idx, 1) != 0);
+
+ /* load informational text (append) */
+ if (messdriv_idx)
+ {
+ int len = strlen(buffer);
+ int err = load_datafile_text(drv, buffer + len, bufsize - len, messdriv_idx, DATAFILE_TAG_DRIV, 1, 1);
+
+ if (err)
+ drivinfo = 0;
+ }
+ }
+ else
+ {
+ /* create index if necessary */
+ if (driv_idx)
+ drivinfo = 1;
+ else
+ drivinfo = (index_datafile (&driv_idx, 1) != 0);
+
+ /* load informational text (append) */
+ if (driv_idx)
+ {
+ int len = strlen(buffer);
+ int err = load_datafile_text(drv, buffer + len, bufsize - len, driv_idx, DATAFILE_TAG_DRIV, 1, 1);
+
+ if (err)
+ drivinfo = 0;
+ }
+ }
+ ParseClose();
+ }
+
+ strcat(buffer, "\nGAMES SUPPORTED:\n");
+
+ for (int i = 0; i < driver_list::total(); i++)
+ {
+ if (!strcmp(source_file, GetDriverFilename(i)) && !(DriverIsBios(i)))
+ {
+ strcat(buffer, driver_list::driver(i).description);
+ strcat(buffer,"\n");
+ }
+ }
+
+ strcat(buffer, "\n\n");
+ return (drivinfo == 0);
+}
+
+static int load_driver_command(const game_driver *drv, char *buffer, int bufsize)
+{
+ int command = 0;
+
+ *buffer = 0;
+ snprintf(filename, ARRAY_LENGTH(filename), "%s\\command.dat", GetDatsDir());
+ strcat(buffer, "\n**** COMMAND: ****\n\n");
+
+ /* try to open command datafile */
+ if (ParseOpen(filename))
+ {
+ /* create index if necessary */
+ if (cmd_idx)
+ command = 1;
+ else
+ command = (index_datafile (&cmd_idx, 0) != 0);
+
+ /* load informational text (append) */
+ if (cmd_idx)
+ {
+ int len = strlen(buffer);
+ int err = 0;
+ const game_driver *gdrv;
+ gdrv = drv;
+
+ do
+ {
+ err = load_datafile_text(gdrv, buffer + len, bufsize - len, cmd_idx, DATAFILE_TAG_CMD, 0, 0);
+ int g = driver_list::clone(*gdrv);
+
+ if (g!=-1)
+ gdrv = &driver_list::driver(g);
+ else
+ gdrv = NULL;
+ } while (err && gdrv);
+
+ if (err)
+ command = 0;
+ }
+
+ ParseClose();
+ }
+
+ strcat(buffer, "\n\n");
+ return (command == 0);
+}
+
+static int load_driver_scoreinfo(const game_driver *drv, char *buffer, int bufsize)
+{
+ int scoreinfo = 0;
+
+ *buffer = 0;
+ snprintf(filename, ARRAY_LENGTH(filename), "%s\\story.dat", GetDatsDir());
+
+ /* try to open story datafile */
+ if (ParseOpen(filename))
+ {
+ /* create index if necessary */
+ if (score_idx)
+ scoreinfo = 1;
+ else
+ scoreinfo = (index_datafile (&score_idx, 0) != 0);
+
+ /* load informational text (append) */
+ if (score_idx)
+ {
+ int len = strlen(buffer);
+ int err = 0;
+ const game_driver *gdrv;
+ gdrv = drv;
+
+ do
+ {
+ err = load_datafile_text(gdrv, buffer + len, bufsize - len, score_idx, DATAFILE_TAG_SCORE, 0, 0);
+ int g = driver_list::clone(*gdrv);
+
+ if (g!=-1)
+ gdrv = &driver_list::driver(g);
+ else
+ gdrv = NULL;
+ } while (err && gdrv);
+
+ if (err)
+ scoreinfo = 0;
+ }
+
+ ParseClose();
+ }
+
+ return (scoreinfo == 0);
+}
+/**************************************************************
+ * functions
+ **************************************************************/
+
+// Load indexes from history.dat if found
+char * GetGameHistory(int driver_index)
+{
+ static char dataBuf[2048 * 2048];
+ static char buffer[2048 * 2048];
+
+ memset(&buffer, 0, sizeof(buffer));
+ memset(&dataBuf, 0, sizeof(dataBuf));
+
+ if (load_driver_mameinfo(&driver_list::driver(driver_index), buffer, ARRAY_LENGTH(buffer), 2) == 0)
+ strcat(dataBuf, buffer);
+
+ if (load_driver_history(&driver_list::driver(driver_index), buffer, ARRAY_LENGTH(buffer), 0) == 0)
+ strcat(dataBuf, buffer);
+
+ if (load_driver_history(&driver_list::driver(driver_index), buffer, ARRAY_LENGTH(buffer), 1) == 0)
+ strcat(dataBuf, buffer);
+
+ if (load_driver_mameinfo(&driver_list::driver(driver_index), buffer, ARRAY_LENGTH(buffer), 0) == 0)
+ strcat(dataBuf, buffer);
+
+ if (load_driver_driverinfo(&driver_list::driver(driver_index), buffer, ARRAY_LENGTH(buffer), 0) == 0)
+ strcat(dataBuf, buffer);
+
+ if (load_driver_mameinfo(&driver_list::driver(driver_index), buffer, ARRAY_LENGTH(buffer), 1) == 0)
+ strcat(dataBuf, buffer);
+
+ if (load_driver_driverinfo(&driver_list::driver(driver_index), buffer, ARRAY_LENGTH(buffer), 1) == 0)
+ strcat(dataBuf, buffer);
+
+ if (load_driver_command(&driver_list::driver(driver_index), buffer, ARRAY_LENGTH(buffer)) == 0)
+ strcat(dataBuf, buffer);
+
+ if (load_driver_scoreinfo(&driver_list::driver(driver_index), buffer, ARRAY_LENGTH(buffer)) == 0)
+ strcat(dataBuf, buffer);
+
+ return ConvertToWindowsNewlines(dataBuf);
+}
diff --git a/docs/release/src/osd/winui/history.h b/docs/release/src/osd/winui/history.h
new file mode 100644
index 00000000000..1bf846d94fd
--- /dev/null
+++ b/docs/release/src/osd/winui/history.h
@@ -0,0 +1,12 @@
+// For licensing and usage information, read docs/winui_license.txt
+// MASTER
+//****************************************************************************
+
+#pragma once
+
+#ifndef HISTORY_H
+#define HISTORY_H
+
+char * GetGameHistory(int driver_index);
+
+#endif
diff --git a/docs/release/src/osd/winui/layout.cpp b/docs/release/src/osd/winui/layout.cpp
new file mode 100644
index 00000000000..a4ced439c48
--- /dev/null
+++ b/docs/release/src/osd/winui/layout.cpp
@@ -0,0 +1,265 @@
+// For licensing and usage information, read docs/winui_license.txt
+// MASTER
+//****************************************************************************
+
+/***************************************************************************
+
+ layout.c
+
+ MAME specific TreeView definitions (and maybe more in the future)
+
+***************************************************************************/
+// standard windows headers
+#include <windows.h>
+#include <commctrl.h>
+
+// MAME/MAMEUI headers
+#include "bitmask.h"
+#include "treeview.h"
+#include "emu.h"
+#include "mui_util.h"
+#include "resource.h"
+#include "mui_opts.h"
+#include "splitters.h"
+#include "help.h"
+#include "mui_audit.h"
+#include "properties.h"
+//#define MESS
+
+static BOOL FilterAvailable(int driver_index);
+
+#ifdef MESS
+#include "drivenum.h"
+
+static BOOL DriverIsComputer(int driver_index)
+{
+ return (driver_list::driver(driver_index).flags & MACHINE_TYPE_COMPUTER) != 0;
+}
+
+static BOOL DriverIsConsole(int driver_index)
+{
+ return (driver_list::driver(driver_index).flags & MACHINE_TYPE_CONSOLE) != 0;
+}
+
+static BOOL DriverIsModified(int driver_index)
+{
+ return (driver_list::driver(driver_index).flags & MACHINE_UNOFFICIAL) != 0;
+}
+
+extern const FOLDERDATA g_folderData[] =
+{
+ {"All Systems", "allgames", FOLDER_ALLGAMES, IDI_FOLDER, 0, 0, NULL, NULL, TRUE },
+ {"Available", "available", FOLDER_AVAILABLE, IDI_FOLDER_AVAILABLE, F_AVAILABLE, 0, NULL, FilterAvailable, TRUE },
+ {"Unavailable", "unavailable", FOLDER_UNAVAILABLE, IDI_FOLDER_UNAVAILABLE, 0, F_AVAILABLE, NULL, FilterAvailable, FALSE },
+ {"Console", "console", FOLDER_CONSOLE, IDI_FOLDER, F_CONSOLE, F_COMPUTER, NULL, DriverIsConsole, TRUE },
+ {"Computer", "computer", FOLDER_COMPUTER, IDI_FOLDER, F_COMPUTER, F_CONSOLE, NULL, DriverIsComputer, TRUE },
+ {"Modified/Hacked", "modified", FOLDER_MODIFIED, IDI_FOLDER, 0, 0, NULL, DriverIsModified, TRUE },
+ {"Manufacturer", "manufacturer", FOLDER_MANUFACTURER, IDI_FOLDER_MANUFACTURER, 0, 0, CreateManufacturerFolders },
+ {"Year", "year", FOLDER_YEAR, IDI_FOLDER_YEAR, 0, 0, CreateYearFolders },
+ {"Source", "source", FOLDER_SOURCE, IDI_FOLDER_SOURCE, 0, 0, CreateSourceFolders },
+// {"CPU", "cpu", FOLDER_CPU, IDI_FOLDER, 0, 0, CreateCPUFolders },
+// {"Sound", "sound", FOLDER_SND, IDI_FOLDER, 0, 0, CreateSoundFolders },
+ {"Imperfect", "imperfect", FOLDER_DEFICIENCY, IDI_FOLDER, 0, 0, CreateDeficiencyFolders },
+// {"Dumping Status", "dumping", FOLDER_DUMPING, IDI_FOLDER, 0, 0, CreateDumpingFolders },
+// {"BIOS", "bios", FOLDER_BIOS, IDI_FOLDER, 0, 0, CreateBIOSFolders, DriverIsBios, TRUE },
+ {"CHD", "harddisk", FOLDER_HARDDISK, IDI_HARDDISK, 0, 0, NULL, DriverIsHarddisk, TRUE },
+ {"Samples", "samples", FOLDER_SAMPLES, IDI_FOLDER, 0, 0, NULL, DriverUsesSamples, TRUE },
+ {"Working", "working", FOLDER_WORKING, IDI_WORKING, F_WORKING, F_NONWORKING, NULL, DriverIsBroken, FALSE },
+ {"Not Working", "nonworking", FOLDER_NONWORKING, IDI_NONWORKING, F_NONWORKING, F_WORKING, NULL, DriverIsBroken, TRUE },
+ {"Originals", "originals", FOLDER_ORIGINAL, IDI_FOLDER, F_ORIGINALS, F_CLONES, NULL, DriverIsClone, FALSE },
+ {"Clones", "clones", FOLDER_CLONES, IDI_FOLDER, F_CLONES, F_ORIGINALS, NULL, DriverIsClone, TRUE },
+ {"Screens", "screens", FOLDER_SCREENS, IDI_FOLDER, 0, 0, CreateScreenFolders },
+ {"Raster", "raster", FOLDER_RASTER, IDI_FOLDER, F_RASTER, F_VECTOR, NULL, DriverIsVector, FALSE },
+ {"Horizontal", "horizontal", FOLDER_HORIZONTAL, IDI_FOLDER_HORIZONTAL, F_HORIZONTAL, F_VERTICAL, NULL, DriverIsVertical, FALSE },
+ {"Vertical", "vertical", FOLDER_VERTICAL, IDI_FOLDER_VERTICAL, F_VERTICAL, F_HORIZONTAL, NULL, DriverIsVertical, TRUE },
+ {"Vector", "vector", FOLDER_VECTOR, IDI_FOLDER, F_VECTOR, F_RASTER, NULL, DriverIsVector, TRUE },
+ {"Mouse", "mouse", FOLDER_MOUSE, IDI_FOLDER, 0, 0, NULL, DriverUsesMouse, TRUE },
+ {"Trackball", "trackball", FOLDER_TRACKBALL, IDI_FOLDER, 0, 0, NULL, DriverUsesTrackball, TRUE },
+ {"Lightgun", "Lightgun", FOLDER_LIGHTGUN, IDI_FOLDER, 0, 0, NULL, DriverUsesLightGun, TRUE },
+ {"Stereo", "stereo", FOLDER_STEREO, IDI_SOUND, 0, 0, NULL, DriverIsStereo, TRUE },
+ {"Save State", "savestate", FOLDER_SAVESTATE, IDI_FOLDER, 0, 0, NULL, DriverSupportsSaveState, TRUE },
+ {"Mechanical", "mechanical", FOLDER_MECHANICAL, IDI_FOLDER, 0, 0, NULL, DriverIsMechanical, TRUE },
+ {"Non Mechanical", "nonmechanical", FOLDER_NONMECHANICAL,IDI_FOLDER, 0, 0, NULL, DriverIsMechanical, FALSE },
+ { NULL }
+};
+#else
+extern const FOLDERDATA g_folderData[] =
+{
+ {"All Games", "allgames", FOLDER_ALLGAMES, IDI_FOLDER, 0, 0, NULL, NULL, TRUE },
+ {"Available", "available", FOLDER_AVAILABLE, IDI_FOLDER_AVAILABLE, F_AVAILABLE, 0, NULL, FilterAvailable, TRUE },
+ {"Unavailable", "unavailable", FOLDER_UNAVAILABLE, IDI_FOLDER_UNAVAILABLE, 0, F_AVAILABLE, NULL, FilterAvailable, FALSE },
+ {"Manufacturer", "manufacturer", FOLDER_MANUFACTURER, IDI_FOLDER_MANUFACTURER, 0, 0, CreateManufacturerFolders },
+ {"Year", "year", FOLDER_YEAR, IDI_FOLDER_YEAR, 0, 0, CreateYearFolders },
+ {"Source", "source", FOLDER_SOURCE, IDI_FOLDER_SOURCE, 0, 0, CreateSourceFolders },
+// These 3 work, but cause MAMEUI to take a long time to start (approx 2 secs each)
+// {"CPU", "cpu", FOLDER_CPU, IDI_CPU, 0, 0, CreateCPUFolders },
+// {"Sound", "sound", FOLDER_SND, IDI_SOUND, 0, 0, CreateSoundFolders },
+// {"Dumping Status", "dumping", FOLDER_DUMPING, IDI_FOLDER, 0, 0, CreateDumpingFolders },
+ {"BIOS", "bios", FOLDER_BIOS, IDI_FOLDER, 0, 0, CreateBIOSFolders, DriverIsBios, TRUE },
+ {"CHD", "harddisk", FOLDER_HARDDISK, IDI_HARDDISK, 0, 0, NULL, DriverIsHarddisk, TRUE },
+ {"Samples", "samples", FOLDER_SAMPLES, IDI_FOLDER, 0, 0, NULL, DriverUsesSamples, TRUE },
+ {"Working", "working", FOLDER_WORKING, IDI_WORKING, F_WORKING, F_NONWORKING, NULL, DriverIsBroken, FALSE },
+ {"Imperfect", "imperfect", FOLDER_DEFICIENCY, IDI_FOLDER, 0, 0, CreateDeficiencyFolders },
+ {"Not Working", "nonworking", FOLDER_NONWORKING, IDI_NONWORKING, F_NONWORKING, F_WORKING, NULL, DriverIsBroken, TRUE },
+ {"Originals", "originals", FOLDER_ORIGINAL, IDI_FOLDER, F_ORIGINALS, F_CLONES, NULL, DriverIsClone, FALSE },
+ {"Clones", "clones", FOLDER_CLONES, IDI_FOLDER, F_CLONES, F_ORIGINALS, NULL, DriverIsClone, TRUE },
+ {"Screens", "screens", FOLDER_SCREENS, IDI_FOLDER, 0, 0, CreateScreenFolders },
+// These 2 stop MAMEUI from starting
+// {"Resolution", "resolution", FOLDER_RESOLUTION, IDI_FOLDER, 0, 0, CreateResolutionFolders },
+// {"FPS", "fps", FOLDER_FPS, IDI_FOLDER, 0, 0, CreateFPSFolders },
+ {"Horizontal", "horizontal", FOLDER_HORIZONTAL, IDI_FOLDER_HORIZONTAL, F_HORIZONTAL, F_VERTICAL, NULL, DriverIsVertical, FALSE },
+ {"Vertical", "vertical", FOLDER_VERTICAL, IDI_FOLDER_VERTICAL, F_VERTICAL, F_HORIZONTAL, NULL, DriverIsVertical, TRUE },
+ {"Raster", "raster", FOLDER_RASTER, IDI_FOLDER, F_RASTER, F_VECTOR, NULL, DriverIsVector, FALSE },
+ {"Vector", "vector", FOLDER_VECTOR, IDI_FOLDER, F_VECTOR, F_RASTER, NULL, DriverIsVector, TRUE },
+ {"Trackball", "trackball", FOLDER_TRACKBALL, IDI_FOLDER, 0, 0, NULL, DriverUsesTrackball, TRUE },
+ {"Lightgun", "Lightgun", FOLDER_LIGHTGUN, IDI_FOLDER, 0, 0, NULL, DriverUsesLightGun, TRUE },
+ {"Stereo", "stereo", FOLDER_STEREO, IDI_FOLDER, 0, 0, NULL, DriverIsStereo, TRUE },
+ {"Save State", "savestate", FOLDER_SAVESTATE, IDI_FOLDER, 0, 0, NULL, DriverSupportsSaveState, TRUE },
+ {"Mechanical", "mechanical", FOLDER_MECHANICAL, IDI_FOLDER, 0, 0, NULL, DriverIsMechanical, TRUE },
+ {"Non Mechanical", "nonmechanical", FOLDER_NONMECHANICAL,IDI_FOLDER, 0, 0, NULL, DriverIsMechanical, FALSE },
+ { NULL }
+};
+#endif
+
+/* list of filter/control Id pairs */
+#ifdef MESS
+extern const FILTER_ITEM g_filterList[] =
+{
+ { F_VECTOR, IDC_FILTER_VECTOR, DriverIsVector, TRUE },
+ { F_RASTER, IDC_FILTER_RASTER, DriverIsVector, FALSE },
+ { F_CLONES, IDC_FILTER_CLONES, DriverIsClone, TRUE },
+ { F_ORIGINALS, IDC_FILTER_ORIGINALS, DriverIsClone, FALSE },
+ { F_NONWORKING, IDC_FILTER_NONWORKING, DriverIsBroken, TRUE },
+ { F_WORKING, IDC_FILTER_WORKING, DriverIsBroken, FALSE },
+ { F_HORIZONTAL, IDC_FILTER_HORIZONTAL, DriverIsVertical, FALSE },
+ { F_VERTICAL, IDC_FILTER_VERTICAL, DriverIsVertical, TRUE },
+ { F_COMPUTER, IDC_FILTER_COMPUTER, DriverIsComputer, TRUE },
+ { F_CONSOLE, IDC_FILTER_CONSOLE, DriverIsConsole, TRUE },
+ { F_UNAVAILABLE, IDC_FILTER_UNAVAILABLE, FilterAvailable, FALSE },
+ { F_MECHANICAL, IDC_FILTER_MECHANICAL, DriverIsMechanical, TRUE },
+ { F_ARCADE, IDC_FILTER_ARCADE, DriverIsArcade, TRUE },
+ { F_MESS, IDC_FILTER_MESS, DriverIsArcade, FALSE },
+// { F_MODIFIED, IDC_FILTER_MODIFIED, DriverIsModified, TRUE },
+// { F_AVAILABLE, IDC_FILTER_AVAILABLE, FilterAvailable, TRUE },
+ { 0 }
+};
+#else
+extern const FILTER_ITEM g_filterList[] =
+{
+ { F_CLONES, IDC_FILTER_CLONES, DriverIsClone, TRUE },
+ { F_NONWORKING, IDC_FILTER_NONWORKING, DriverIsBroken, TRUE },
+ { F_UNAVAILABLE, IDC_FILTER_UNAVAILABLE, FilterAvailable, FALSE },
+ { F_RASTER, IDC_FILTER_RASTER, DriverIsVector, FALSE },
+ { F_VECTOR, IDC_FILTER_VECTOR, DriverIsVector, TRUE },
+ { F_ORIGINALS, IDC_FILTER_ORIGINALS, DriverIsClone, FALSE },
+ { F_WORKING, IDC_FILTER_WORKING, DriverIsBroken, FALSE },
+ { F_AVAILABLE, IDC_FILTER_AVAILABLE, FilterAvailable, TRUE },
+ { F_HORIZONTAL, IDC_FILTER_HORIZONTAL, DriverIsVertical, FALSE },
+ { F_VERTICAL, IDC_FILTER_VERTICAL, DriverIsVertical, TRUE },
+ { F_MECHANICAL, IDC_FILTER_MECHANICAL, DriverIsMechanical, TRUE },
+ { F_ARCADE, IDC_FILTER_ARCADE, DriverIsArcade, TRUE },
+ { F_MESS, IDC_FILTER_MESS, DriverIsArcade, FALSE },
+ { 0 }
+};
+#endif
+
+#ifdef MESS
+extern const MAMEHELPINFO g_helpInfo[] =
+{
+ //{ ID_HELP_CONTENTS, TRUE, TEXT(MAMEUIHELP"::/windows/main.htm") },
+ { ID_HELP_CONTENTS, TRUE, TEXT(MAMEUIHELP) }, // 0 - call up CHM file
+ //{ ID_HELP_RELEASE, TRUE, TEXT(MAMEUIHELP) },
+ //{ ID_HELP_WHATS_NEW, TRUE, TEXT(MAMEUIHELP"::/messnew.txt") },
+ { ID_HELP_WHATS_NEW, TRUE, TEXT("") }, // 1 - call up whatsnew at mamedev.org
+ { -1 }
+};
+#else
+extern const MAMEHELPINFO g_helpInfo[] =
+{
+ { ID_HELP_CONTENTS, TRUE, TEXT(MAMEUIHELP) },
+ //{ ID_HELP_WHATS_NEWUI, TRUE, TEXT(MAMEUIHELP"::/html/mameui_changes.txt") },
+ //{ ID_HELP_TROUBLE, TRUE, TEXT(MAMEUIHELP"::/html/mameui_support.htm") },
+ //{ ID_HELP_RELEASE, FALSE, TEXT("windows.txt") },
+ { ID_HELP_WHATS_NEW, TRUE, TEXT(MAMEUIHELP"::/docs/whatsnew.txt") },
+ { -1 }
+};
+#endif
+
+#ifdef MESS
+extern const PROPERTYSHEETINFO g_propSheets[] =
+{
+ { FALSE, NULL, IDD_PROP_GAME, GamePropertiesDialogProc },
+ { FALSE, NULL, IDD_PROP_AUDIT, GameAuditDialogProc },
+ { TRUE, NULL, IDD_PROP_DISPLAY, GameOptionsProc },
+ { TRUE, NULL, IDD_PROP_ADVANCED, GameOptionsProc },
+ { TRUE, NULL, IDD_PROP_SCREEN, GameOptionsProc },
+ { TRUE, NULL, IDD_PROP_SOUND, GameOptionsProc },
+ { TRUE, NULL, IDD_PROP_INPUT, GameOptionsProc },
+ { TRUE, NULL, IDD_PROP_CONTROLLER, GameOptionsProc },
+ { TRUE, NULL, IDD_PROP_DEBUG, GameOptionsProc },
+ { TRUE, NULL, IDD_PROP_MISC, GameOptionsProc },
+ { FALSE, NULL, IDD_PROP_SOFTWARE, GameMessOptionsProc },
+ { FALSE, DriverHasRam, IDD_PROP_CONFIGURATION, GameMessOptionsProc }, // PropSheetFilter_Config not needed
+ { TRUE, DriverIsVector, IDD_PROP_VECTOR, GameOptionsProc }, // PropSheetFilter_Vector not needed
+ { FALSE }
+};
+#else
+extern const PROPERTYSHEETINFO g_propSheets[] =
+{
+ { FALSE, NULL, IDD_PROP_GAME, GamePropertiesDialogProc },
+ { FALSE, NULL, IDD_PROP_AUDIT, GameAuditDialogProc },
+ { TRUE, NULL, IDD_PROP_DISPLAY, GameOptionsProc },
+ { TRUE, NULL, IDD_PROP_ADVANCED, GameOptionsProc },
+ { TRUE, NULL, IDD_PROP_SCREEN, GameOptionsProc },
+ { TRUE, NULL, IDD_PROP_SOUND, GameOptionsProc },
+ { TRUE, NULL, IDD_PROP_INPUT, GameOptionsProc },
+ { TRUE, NULL, IDD_PROP_CONTROLLER, GameOptionsProc },
+ { TRUE, NULL, IDD_PROP_MISC, GameOptionsProc },
+ { TRUE, NULL, IDD_PROP_DEBUG, GameOptionsProc },
+ { TRUE, DriverIsVector, IDD_PROP_VECTOR, GameOptionsProc },
+ { FALSE }
+};
+#endif
+
+#ifdef MESS
+extern const ICONDATA g_iconData[] =
+{
+ { IDI_WIN_NOROMS, "noroms" },
+ { IDI_WIN_ROMS, "roms" },
+ { IDI_WIN_UNKNOWN, "unknown" },
+ { IDI_WIN_CLONE, "clone" },
+ { IDI_WIN_REDX, "warning" },
+ { IDI_WIN_NOROMSNEEDED, "noromsneeded" },
+ { IDI_WIN_MISSINGOPTROM, "missingoptrom" },
+ { IDI_WIN_FLOP, "floppy" },
+ { IDI_WIN_CASS, "cassette" },
+ { IDI_WIN_SERL, "serial" },
+ { IDI_WIN_SNAP, "snapshot" },
+ { IDI_WIN_PRIN, "printer" },
+ { IDI_WIN_HARD, "hard" },
+ { 0 }
+};
+#else
+extern const ICONDATA g_iconData[] =
+{
+ { IDI_WIN_NOROMS, "noroms" },
+ { IDI_WIN_ROMS, "roms" },
+ { IDI_WIN_UNKNOWN, "unknown" },
+ { IDI_WIN_CLONE, "clone" },
+ { IDI_WIN_REDX, "warning" },
+ { 0 }
+};
+#endif
+
+#ifdef MESS
+extern const TCHAR g_szPlayGameString[] = TEXT("&Run %s");
+extern const char g_szGameCountString[] = "%d systems";
+#else
+extern const TCHAR g_szPlayGameString[] = TEXT("&Play %s");
+extern const char g_szGameCountString[] = "%d games";
+#endif
+
+static BOOL FilterAvailable(int driver_index)
+{
+ return !DriverUsesRoms(driver_index) || IsAuditResultYes(GetRomAuditResults(driver_index));
+}
diff --git a/docs/release/src/osd/winui/mameui.rc b/docs/release/src/osd/winui/mameui.rc
new file mode 100644
index 00000000000..a51eda11202
--- /dev/null
+++ b/docs/release/src/osd/winui/mameui.rc
@@ -0,0 +1,1467 @@
+// Microsoft Visual C++ generated resource script.
+//
+#include "newuires.h"
+#include "resource.h"
+
+// Generated Help ID header file
+#define APSTUDIO_HIDDEN_SYMBOLS
+#include "resource.hm"
+#undef APSTUDIO_HIDDEN_SYMBOLS
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#include "windows.h"
+#include "commctrl.h"
+
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// English (USA) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
+#ifdef _WIN32
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+#pragma code_page(1252)
+#endif //_WIN32
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Menu
+//
+
+IDR_MAIN_MENU MENU DISCARDABLE
+BEGIN
+ POPUP "&File"
+ BEGIN
+ MENUITEM "&Exit", ID_FILE_EXIT
+ END
+ POPUP "&Help"
+ BEGIN
+ MENUITEM "&About MAMEUI", ID_ABOUT
+ END
+END
+
+IDR_UI_MENU MENU DISCARDABLE
+BEGIN
+ POPUP "&File"
+ BEGIN
+ MENUITEM "&Play", ID_FILE_PLAY
+ MENUITEM SEPARATOR
+ MENUITEM "Play and &Record Input...", ID_FILE_PLAY_RECORD
+ MENUITEM "P&layback Input...", ID_FILE_PLAY_BACK
+ MENUITEM SEPARATOR
+ MENUITEM "Play and Record &Wave Output...", ID_FILE_PLAY_RECORD_WAVE
+ MENUITEM SEPARATOR
+ MENUITEM "Play and Record &MNG Output...", ID_FILE_PLAY_RECORD_MNG
+ MENUITEM SEPARATOR
+ MENUITEM "Play and Record &uncompressed AVI Output...",
+ ID_FILE_PLAY_RECORD_AVI
+ MENUITEM SEPARATOR
+ MENUITEM "Loa&d Savestate...", ID_FILE_LOADSTATE
+ MENUITEM SEPARATOR
+
+ MENUITEM "Pr&operties", ID_GAME_PROPERTIES
+ MENUITEM SEPARATOR
+ MENUITEM "Audi&t existing sets", ID_FILE_AUDIT_X
+ MENUITEM "&Audit all sets", ID_FILE_AUDIT
+ MENUITEM SEPARATOR
+ MENUITEM "E&xit", ID_FILE_EXIT
+ END
+ POPUP "&View"
+ BEGIN
+ MENUITEM "&Toolbar\tAlt+T", ID_VIEW_TOOLBARS
+ MENUITEM "&Status bar\tAlt+S", ID_VIEW_STATUS
+ MENUITEM "Fold&er List\tAlt+D", ID_VIEW_FOLDERS
+ MENUITEM "&Picture Area\tAlt+P", ID_VIEW_PICTURE_AREA
+ MENUITEM "Screenshot Ta&b\tAlt+B", ID_VIEW_PAGETAB
+ MENUITEM SEPARATOR
+ MENUITEM "&Fullscreen\tF11", ID_VIEW_FULLSCREEN
+ MENUITEM SEPARATOR
+ POPUP "S&how Pictures"
+ BEGIN
+ MENUITEM "&Snapshot", ID_TOGGLE_TAB_SCREENSHOT
+ MENUITEM "&Flyer", ID_TOGGLE_TAB_FLYER
+ MENUITEM "&Cabinet", ID_TOGGLE_TAB_CABINET
+ MENUITEM "&Marquee", ID_TOGGLE_TAB_MARQUEE
+ MENUITEM "&Title", ID_TOGGLE_TAB_TITLE
+ MENUITEM "Control &Panel", ID_TOGGLE_TAB_CONTROL_PANEL
+
+ MENUITEM "PC&B", ID_TOGGLE_TAB_PCB
+ MENUITEM "&History", ID_TOGGLE_TAB_HISTORY
+ END
+ MENUITEM SEPARATOR
+ MENUITEM "L&arge Icons", ID_VIEW_LARGE_ICON
+ MENUITEM "S&mall Icons", ID_VIEW_SMALL_ICON
+ MENUITEM "&List", ID_VIEW_LIST_MENU
+ MENUITEM "&Details", ID_VIEW_DETAIL
+ MENUITEM "&Grouped", ID_VIEW_GROUPED
+ MENUITEM SEPARATOR
+ POPUP "Arrange &Icons"
+ BEGIN
+ MENUITEM "by &Name", ID_VIEW_BYGAME
+ MENUITEM "by D&irectory", ID_VIEW_BYDIRECTORY
+ MENUITEM "by &Manufacturer", ID_VIEW_BYMANUFACTURER
+ MENUITEM "by Times &Played", ID_VIEW_BYTIMESPLAYED
+ MENUITEM "by &Type", ID_VIEW_BYTYPE
+ MENUITEM "by &Date", ID_VIEW_BYYEAR
+ END
+ MENUITEM "Line &Up Icons", ID_VIEW_LINEUPICONS
+ MENUITEM SEPARATOR
+ MENUITEM "&Refresh\tF5", ID_UPDATE_GAMELIST
+ MENUITEM "&Custom Filters...\tCtrl+F", ID_CONTEXT_FILTERS
+ MENUITEM "Customi&ze Fields...", ID_CUSTOMIZE_FIELDS
+ END
+ POPUP "&Options"
+ BEGIN
+ MENUITEM "&Interface Options", ID_OPTIONS_INTERFACE
+ MENUITEM "Default Game &Options", ID_OPTIONS_DEFAULTS
+ MENUITEM "&Directories", ID_OPTIONS_DIR
+ MENUITEM SEPARATOR
+ MENUITEM "Game List &Font", ID_OPTIONS_FONT
+ MENUITEM "Game List &Clone Color", ID_OPTIONS_CLONE_COLOR
+ MENUITEM SEPARATOR
+
+ MENUITEM "&Background Image", ID_OPTIONS_BG
+ MENUITEM SEPARATOR
+ MENUITEM "&Reset to Default", ID_OPTIONS_RESET_DEFAULTS
+
+ END
+ POPUP "&Help"
+ BEGIN
+// MENUITEM "&Contents\tF1", ID_HELP_CONTENTS
+// MENUITEM "&Troubleshooting", ID_HELP_TROUBLE
+// MENUITEM SEPARATOR
+// MENUITEM "&New Game Changes", ID_HELP_WHATS_NEWUI
+// MENUITEM "&Mame Release Notes", ID_HELP_WHATS_NEW
+// MENUITEM SEPARATOR
+// MENUITEM "&About", ID_HELP_ABOUT
+// MENUITEM "&Mess Release Notes", ID_HELP_RELEASE
+ MENUITEM "What's New in MAME", ID_HELP_WHATS_NEW
+ MENUITEM "&Contents\tF1", ID_HELP_CONTENTS
+// MENUITEM "&Troubleshooting", ID_HELP_TROUBLE
+ MENUITEM "&About", ID_HELP_ABOUT
+ END
+END
+
+IDR_CONTEXT_MENU MENU
+BEGIN
+ POPUP "Context Menu"
+ BEGIN
+ MENUITEM "&Play", ID_FILE_PLAY
+ MENUITEM SEPARATOR
+ MENUITEM "Play and &Record Input...", ID_FILE_PLAY_RECORD
+ MENUITEM SEPARATOR
+ MENUITEM "&Add to Custom Folder...", ID_CONTEXT_ADD_CUSTOM
+ MENUITEM "R&emove From This Folder", ID_CONTEXT_REMOVE_CUSTOM
+ MENUITEM "&Custom Filters...", ID_CONTEXT_FILTERS
+ MENUITEM SEPARATOR
+ MENUITEM "&Select Random Game", ID_CONTEXT_SELECT_RANDOM
+ MENUITEM SEPARATOR
+ MENUITEM "Rese&t Playcount", ID_CONTEXT_RESET_PLAYCOUNT
+ MENUITEM "Reset Pla&y Time", ID_CONTEXT_RESET_PLAYTIME
+ MENUITEM SEPARATOR
+ MENUITEM "A&udit", ID_GAME_AUDIT
+ MENUITEM SEPARATOR
+ MENUITEM "Pr&operties", ID_GAME_PROPERTIES
+ MENUITEM "Source propert&ies", ID_FOLDER_SOURCEPROPERTIES
+ MENUITEM "&Vector properties", ID_FOLDER_VECTORPROPERTIES
+ END
+END
+
+IDR_CONTEXT_HEADER MENU
+BEGIN
+ POPUP "Header Context Menu"
+ BEGIN
+ MENUITEM "Sort &Ascending", ID_SORT_ASCENDING
+ MENUITEM "Sort &Descending", ID_SORT_DESCENDING
+ MENUITEM SEPARATOR
+ MENUITEM "Customi&ze Fields...", ID_CUSTOMIZE_FIELDS
+ END
+END
+
+IDR_CONTEXT_TREE MENU
+BEGIN
+ POPUP "Context Menu Tree"
+ BEGIN
+ MENUITEM "&Rename", ID_CONTEXT_RENAME_CUSTOM
+ MENUITEM "&Custom Filters...", ID_CONTEXT_FILTERS
+ MENUITEM SEPARATOR
+ POPUP "&Show Folders"
+ BEGIN
+ MENUITEM "overridden by code", ID_CONTEXT_SHOW_FOLDER_START
+
+ END
+ MENUITEM SEPARATOR
+ MENUITEM "&Audit", ID_FOLDER_AUDIT
+ MENUITEM SEPARATOR
+ MENUITEM "&Properties", ID_FOLDER_PROPERTIES
+ END
+END
+
+IDR_CONTEXT_SCREENSHOT MENU
+BEGIN
+ POPUP "Context Screen Shot"
+ BEGIN
+ MENUITEM "Show Tab &Control", ID_VIEW_PAGETAB
+ MENUITEM SEPARATOR
+ POPUP "S&how Pictures"
+ BEGIN
+ MENUITEM "&Snapshot", ID_TOGGLE_TAB_SCREENSHOT
+ MENUITEM "&Flyer", ID_TOGGLE_TAB_FLYER
+ MENUITEM "&Cabinet", ID_TOGGLE_TAB_CABINET
+ MENUITEM "&Marquee", ID_TOGGLE_TAB_MARQUEE
+ MENUITEM "&Title", ID_TOGGLE_TAB_TITLE
+ MENUITEM "Control &Panel", ID_TOGGLE_TAB_CONTROL_PANEL
+
+ MENUITEM "PC&B", ID_TOGGLE_TAB_PCB
+ MENUITEM "&History", ID_TOGGLE_TAB_HISTORY
+ END
+ MENUITEM SEPARATOR
+ MENUITEM "&Snapshot", ID_VIEW_TAB_SCREENSHOT
+ MENUITEM "&Flyer", ID_VIEW_TAB_FLYER
+ MENUITEM "&Cabinet", ID_VIEW_TAB_CABINET
+ MENUITEM "&Marquee", ID_VIEW_TAB_MARQUEE
+ MENUITEM "&Title", ID_VIEW_TAB_TITLE
+ MENUITEM "Control &Panel", ID_VIEW_TAB_CONTROL_PANEL
+ MENUITEM "PC&B", ID_VIEW_TAB_PCB
+ MENUITEM "&History", ID_VIEW_TAB_HISTORY
+ END
+END
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Menu
+//
+
+IDR_RUNTIME_MENU MENU
+BEGIN
+ POPUP "&File"
+ BEGIN
+ MENUITEM "&Load State...", ID_FILE_LOADSTATE_NEWUI, GRAYED
+ MENUITEM "&Save State", ID_FILE_SAVESTATE, GRAYED
+ MENUITEM "S&ave State As...", ID_FILE_SAVESTATE_AS, GRAYED
+ MENUITEM SEPARATOR
+ MENUITEM "Save Sc&reenshot", ID_FILE_SAVESCREENSHOT
+ MENUITEM SEPARATOR
+ MENUITEM "&Hide Menubar", ID_FILE_TOGGLEMENUBAR
+ MENUITEM "&Full Screen\tAlt+Enter", ID_FILE_FULLSCREEN
+ MENUITEM "Partial Keyboard Emulation", ID_FILE_UIACTIVE
+ MENUITEM "Show Tab Menu", ID_FILE_OLDUI
+ MENUITEM SEPARATOR
+ MENUITEM "&Exit", ID_FILE_EXIT_NEWUI
+ END
+ POPUP "&Edit"
+ BEGIN
+ MENUITEM "Paste", ID_EDIT_PASTE
+ END
+ POPUP "&Options"
+ BEGIN
+ MENUITEM "&Pause", ID_OPTIONS_PAUSE, GRAYED
+ MENUITEM "Soft &Reset", ID_OPTIONS_SOFTRESET
+ MENUITEM "Ha&rd Reset", ID_OPTIONS_HARDRESET
+ MENUITEM SEPARATOR
+ POPUP "&Keyboard"
+ BEGIN
+ MENUITEM "Emulated", ID_KEYBOARD_EMULATED
+ MENUITEM "Natural", ID_KEYBOARD_NATURAL
+ MENUITEM SEPARATOR
+ MENUITEM "Customise Emulated Keyboard...", ID_KEYBOARD_CUSTOMIZE
+ END
+ MENUITEM "&Joysticks", ID_OPTIONS_JOYSTICKS, GRAYED
+ POPUP "&Video"
+ BEGIN
+ MENUITEM SEPARATOR
+ MENUITEM "Rotate 0 degrees", ID_VIDEO_ROTATE_0
+ MENUITEM "Rotate 90 degrees", ID_VIDEO_ROTATE_90
+ MENUITEM "Rotate 180 degrees", ID_VIDEO_ROTATE_180
+ MENUITEM "Rotate 270 degrees", ID_VIDEO_ROTATE_270
+ END
+ MENUITEM "&Configuration...", ID_OPTIONS_CONFIGURATION
+ MENUITEM "&DIP Switches...", ID_OPTIONS_DIPSWITCHES
+ MENUITEM "&Miscellaneous Inputs...", ID_OPTIONS_MISCINPUT
+ MENUITEM "&Analog Controls...", ID_OPTIONS_ANALOGCONTROLS
+ MENUITEM SEPARATOR
+ POPUP "&Frameskip"
+ BEGIN
+ MENUITEM "Auto", ID_FRAMESKIP_AUTO
+ END
+ POPUP "Maximum &Speed"
+ BEGIN
+ MENUITEM "50%", ID_THROTTLE_50
+ MENUITEM "100%", ID_THROTTLE_100
+ MENUITEM "200%", ID_THROTTLE_200
+ MENUITEM "500%", ID_THROTTLE_500
+ MENUITEM "1000%", ID_THROTTLE_1000
+ MENUITEM "Unlimited", ID_THROTTLE_UNTHROTTLED
+ END
+ MENUITEM "Show &FPS", ID_OPTIONS_TOGGLEFPS
+ END
+ POPUP "&Media"
+ BEGIN
+ MENUITEM SEPARATOR
+ END
+ POPUP "&Help"
+ BEGIN
+ MENUITEM "About This System...", ID_HELP_ABOUTSYSTEM
+ MENUITEM "&About MAME...", ID_HELP_ABOUT_NEWUI
+ END
+END
+
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE MOVEABLE PURE
+BEGIN
+ "resource.h\\r\n"
+ "newuires.h\0"
+END
+
+2 TEXTINCLUDE MOVEABLE PURE
+BEGIN
+ "#define NOWINRES\r\n"
+ "#include ""windows.h""\r\n"
+ "#include ""commctrl.h""\r\n"
+ "\0"
+END
+
+3 TEXTINCLUDE MOVEABLE PURE
+BEGIN
+ "#include ""mamevers.rc"" // Version block\r\n"
+ "\r\n"
+ "\0"
+END
+
+#endif // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Icon
+//
+
+// Icon with lowest ID value placed first to ensure application icon
+// remains consistent on all systems.
+IDI_MAMEUI_ICON ICON "res\\mameui.ico"
+IDI_WIN_ROMS ICON "res\\win_roms.ico"
+IDI_WIN_NOROMS ICON "res\\win_noro.ico"
+IDI_WIN_UNKNOWN ICON "res\\win_unkn.ico"
+IDI_WIN_CLONE ICON "res\\win_clone.ico"
+IDI_WIN_REDX ICON "res\\win_redx.ico"
+IDI_FOLDER_AVAILABLE ICON "res\\foldavail.ico"
+IDI_FOLDER ICON "res\\folder.ico"
+IDI_FOLDER_MANUFACTURER ICON "res\\foldmanu.ico"
+IDI_FOLDER_OPEN ICON "res\\foldopen.ico"
+IDI_FOLDER_UNAVAILABLE ICON "res\\foldunav.ico"
+IDI_FOLDER_HORIZONTAL ICON "res\\horz.ico"
+IDI_FOLDER_VERTICAL ICON "res\\vert.ico"
+IDI_MANUFACTURER ICON "res\\manufact.ico"
+IDI_FOLDER_YEAR ICON "res\\foldyear.ico"
+IDI_FOLDER_SOURCE ICON "res\\foldsrc.ico"
+IDI_WORKING ICON "res\\working.ico"
+IDI_NONWORKING ICON "res\\nonwork.ico"
+IDI_YEAR ICON "res\\year.ico"
+IDI_KEYBOARD ICON "res\\keyboard.ico"
+IDI_JOYSTICK ICON "res\\joystick.ico"
+IDI_CPU ICON "res\\cpu.ico"
+IDI_SOUND ICON "res\\samples.ico"
+IDI_SOUNDTAB ICON "res\\sound.ico"
+IDI_SOURCE ICON "res\\source.ico"
+IDI_HARDDISK ICON "res\\harddisk.ico"
+IDI_DISPLAY ICON "res\\display.ico"
+IDI_CHECKMARK ICON "res\\checkmark.ico"
+IDI_HEADER_UP ICON "res\\header_up.ico"
+IDI_HEADER_DOWN ICON "res\\header_down.ico"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Dialog
+//
+
+IDD_ABOUT DIALOG DISCARDABLE 0, 0, 296, 129
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "About MAMEUI"
+FONT 8, "Tahoma"
+BEGIN
+ DEFPUSHBUTTON "&OK",IDOK,200,109,50,14,WS_GROUP
+ CTEXT "HomeBrew MAME",IDC_STATIC,147,7,142,
+ 11,NOT WS_GROUP
+ CTEXT "Version 0",IDC_VERSION,147,18,142,11,NOT WS_GROUP
+ CTEXT "Copyright (C) 1997-2017 The HBMAME Team",IDC_STATIC,147,
+ 29,142,10,NOT WS_GROUP
+ CTEXT "MAMEUI version by",IDC_STATIC,147,51,142,10,NOT
+ WS_GROUP
+ CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,147,44,142,1
+ CTEXT "Christopher Kirmse and the MAMEUI team",IDC_STATIC,147,
+ 62,142,9,NOT WS_GROUP
+ CTEXT "Additional MAMEUI code by",IDC_STATIC,147,74,142,9
+ CTEXT "Mike Haaland, Andrew Kirmse, Jeff Miller",IDC_STATIC,
+ 147,85,142,9
+ CTEXT "John Hardy IV and Michael Soderstrom",IDC_STATIC,147,96,
+ 142,9
+ CONTROL "",IDC_ABOUT,"Static",SS_BITMAP | SS_SUNKEN,7,7,16,14
+END
+
+IDD_DIRECTX DIALOG DISCARDABLE 0, 0, 236, 69
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "MAMEUI"
+FONT 8, "Tahoma"
+BEGIN
+ DEFPUSHBUTTON "Go to Microsoft's DirectX Web Page",IDB_WEB_PAGE,48,52,
+ 140,14
+ EDITTEXT IDC_DIRECTX_HELP,7,0,222,48,ES_MULTILINE |
+ ES_AUTOHSCROLL | ES_READONLY
+END
+
+IDD_AUDIT DIALOG DISCARDABLE 0, 0, 283, 188
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "File Audit"
+FONT 8, "Tahoma"
+BEGIN
+ PUSHBUTTON "&Pause",IDPAUSE,98,168,40,14
+ PUSHBUTTON "&Cancel",IDCANCEL,144,168,40,14
+ GROUPBOX "ROMs",IDC_STATIC,6,4,132,65
+ LTEXT "Correct:",IDC_STATIC,51,28,32,8
+ CONTROL "Progress1",IDC_ROMS_PROGRESS,"msctls_progress32",
+ PBS_SMOOTH | WS_BORDER,14,16,116,8
+ LTEXT "Incorrect:",IDC_STATIC,51,42,32,8
+ LTEXT "Total:",IDC_STATIC,51,56,32,8
+ LTEXT "0",IDC_ROMS_CORRECT,87,28,20,8
+ LTEXT "0",IDC_ROMS_INCORRECT,87,42,20,8
+ LTEXT "0",IDC_ROMS_TOTAL,87,56,20,8
+ GROUPBOX "Samples",IDC_STATIC,145,4,132,65
+ CONTROL "Progress1",IDC_SAMPLES_PROGRESS,"msctls_progress32",
+ PBS_SMOOTH | WS_BORDER,153,16,116,8
+ LTEXT "Correct:",IDC_STATIC,191,28,33,8
+ LTEXT "Incorrect:",IDC_STATIC,191,42,33,8
+ LTEXT "Total:",IDC_STATIC,191,56,33,8
+ LTEXT "0",IDC_SAMPLES_CORRECT,227,28,20,8
+ LTEXT "0",IDC_SAMPLES_INCORRECT,227,42,20,8
+ LTEXT "0",IDC_SAMPLES_TOTAL,227,56,20,8
+ GROUPBOX "Details",IDC_STATIC,6,72,271,90
+ EDITTEXT IDC_AUDIT_DETAILS,12,82,259,74,ES_MULTILINE |
+ ES_AUTOVSCROLL | ES_READONLY | WS_VSCROLL | WS_HSCROLL |
+ NOT WS_TABSTOP
+END
+
+IDD_DIRECTORIES DIALOG DISCARDABLE 0, 0, 230, 107
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Directories"
+FONT 8, "Tahoma"
+BEGIN
+ LTEXT "Show directories for:",IDC_STATIC,6,6,67,10
+ COMBOBOX IDC_DIR_COMBO,6,18,160,79,CBS_DROPDOWNLIST | CBS_SORT |
+ WS_VSCROLL | WS_TABSTOP
+ LTEXT "Directories:",IDC_STATIC,6,38,38,10
+ CONTROL "List1",IDC_DIR_LIST,"SysListView32",LVS_REPORT |
+ LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_EDITLABELS |
+ LVS_ALIGNLEFT | LVS_NOCOLUMNHEADER | WS_BORDER |
+ WS_TABSTOP,6,50,160,51
+ DEFPUSHBUTTON "OK",IDOK,173,8,50,14
+ PUSHBUTTON "Cancel",IDCANCEL,173,26,50,14
+ PUSHBUTTON "Browse...",IDC_DIR_BROWSE,173,50,50,14
+ PUSHBUTTON "Insert",IDC_DIR_INSERT,173,68,50,14
+ PUSHBUTTON "Delete",IDC_DIR_DELETE,173,87,50,14
+END
+
+IDD_COLUMNS DIALOG DISCARDABLE 0, 0, 302, 145
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Customize Fields"
+FONT 8, "Tahoma"
+BEGIN
+ LTEXT "Available fields:",IDC_STATIC,6,6,80,10,SS_CENTERIMAGE
+ CONTROL "List1",IDC_LISTAVAILABLECOLUMNS,"SysListView32",
+ LVS_LIST | LVS_SINGLESEL | LVS_NOCOLUMNHEADER |
+ LVS_NOSORTHEADER | WS_BORDER | WS_HSCROLL | WS_TABSTOP,6,
+ 18,90,100
+ PUSHBUTTON "Add ->",IDC_BUTTONADD,102,18,46,14,WS_DISABLED
+ PUSHBUTTON "<- Remove",IDC_BUTTONREMOVE,102,36,46,14,WS_DISABLED
+ LTEXT "Show these fields in this order:",IDC_STATIC,154,6,96,
+ 10,SS_CENTERIMAGE
+ CONTROL "List1",IDC_LISTSHOWCOLUMNS,"SysListView32",LVS_LIST |
+ LVS_SINGLESEL | LVS_NOCOLUMNHEADER | LVS_NOSORTHEADER |
+ WS_BORDER | WS_HSCROLL | WS_TABSTOP,154,18,90,100
+ PUSHBUTTON "Move Up",IDC_BUTTONMOVEUP,250,18,46,14,WS_DISABLED
+ PUSHBUTTON "Move Down",IDC_BUTTONMOVEDOWN,250,36,46,14,WS_DISABLED
+ DEFPUSHBUTTON "OK",IDOK,105,124,44,14
+ PUSHBUTTON "Cancel",IDCANCEL,155,124,44,14
+END
+
+IDD_PROP_CONTROLLER DIALOGEX 0, 0, 220, 240
+STYLE DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
+CAPTION "Controller Mapping"
+FONT 8, "Tahoma"
+BEGIN
+ ICON IDI_JOYSTICK,IDC_STATIC,20,10,20,20
+ LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,
+ SS_NOPREFIX
+ GROUPBOX "Paddle device",IDC_STATIC,4,40,102,28
+ COMBOBOX IDC_PADDLE,10,50,91,62,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP,0,HIDC_PADDLE
+ GROUPBOX "ADStick device",IDC_STATIC,4,71,102,28
+ COMBOBOX IDC_ADSTICK,10,80,91,62,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP,0,HIDC_ADSTICK
+ GROUPBOX "Pedal device",IDC_STATIC,4,102,102,28
+ COMBOBOX IDC_PEDAL,10,112,91,62,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP,0,HIDC_PEDAL
+ GROUPBOX "Mouse device",IDC_STATIC,4,133,102,28
+ COMBOBOX IDC_MOUSE,10,142,90,62,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP,0,HIDC_MOUSE
+ GROUPBOX "Dial device",IDC_STATIC,113,40,102,28
+ COMBOBOX IDC_DIAL,119,50,90,62,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP,0,HIDC_DIAL
+ GROUPBOX "Trackball device",IDC_STATIC,113,71,102,28
+ COMBOBOX IDC_TRACKBALL,119,80,90,62,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP,0,HIDC_TRACKBALL
+ GROUPBOX "Lightgun device",IDC_STATIC,113,102,102,28
+ COMBOBOX IDC_LIGHTGUNDEVICE,119,112,90,62,CBS_DROPDOWNLIST |
+ WS_VSCROLL | WS_TABSTOP,0,HIDC_LIGHTGUNDEVICE
+ GROUPBOX "Positional device",IDC_STATIC,113,133,102,28
+ COMBOBOX IDC_POSITIONAL,119,142,90,62,CBS_DROPDOWNLIST |
+ WS_VSCROLL | WS_TABSTOP,0,HIDC_POSITIONAL
+ PUSHBUTTON "Reset",IDC_PROP_RESET,4,222,97,14,0,0,HIDC_PROP_RESET
+ PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,118,222,97,14,
+ 0,0,HIDC_USE_DEFAULT
+END
+
+IDD_PROP_SCREEN DIALOGEX 0, 0, 220, 240
+STYLE WS_CHILD | WS_CAPTION
+CAPTION "Screen"
+FONT 8, "Tahoma"
+BEGIN
+ ICON IDI_DISPLAY,IDC_STATIC,20,10,21,20
+ LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,SS_NOPREFIX
+
+ GROUPBOX "Number of screens",IDC_STATIC,4,40,103,24
+ CONTROL "GammaSlider",IDC_NUMSCREENS,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,10,50,75,10,0,HIDC_NUMSCREENS
+ RTEXT "1",IDC_NUMSCREENSDISP,84,49,14,10,SS_CENTERIMAGE | NOT WS_GROUP
+
+ GROUPBOX "Screen",IDC_STATIC,4,66,103,29
+ COMBOBOX IDC_SCREEN,10,76,91,64,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_SCREEN
+
+ GROUPBOX "",IDC_STATIC,4,97,103,28
+ CONTROL "Autoselect aspect",IDC_ASPECT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,97,73,10,0,HIDC_ASPECT
+ LTEXT "Aspect ratio",IDC_ASPECTRATIOTEXT,17,108,40,11,SS_CENTERIMAGE | NOT WS_GROUP
+ EDITTEXT IDC_ASPECTRATION,60,108,14,12,ES_RIGHT | ES_AUTOHSCROLL | ES_NUMBER,0,HIDC_ASPECTRATION
+ LTEXT ":",IDC_STATIC,76,108,8,10,SS_CENTERIMAGE | NOT WS_GROUP
+ EDITTEXT IDC_ASPECTRATIOD,80,108,14,12,ES_RIGHT | ES_AUTOHSCROLL | ES_NUMBER,0,HIDC_ASPECTRATIOD
+
+ GROUPBOX "View",IDC_STATIC,4,128,103,28
+ COMBOBOX IDC_VIEW,10,137,91,64,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_VIEW
+
+ GROUPBOX "Screennumber",IDC_SCREENSELECTTEXT,113,40,102,28
+ COMBOBOX IDC_SCREENSELECT,119,50,90,64,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_SCREENSELECT
+
+ GROUPBOX "Resolution",IDC_STATIC,113,71,102,76,WS_GROUP
+ GROUPBOX "Size",IDC_STATIC,119,81,90,28,WS_GROUP
+ COMBOBOX IDC_SIZES,126,91,77,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_SIZES
+
+ GROUPBOX "Refresh",IDC_REFRESHTEXT,119,112,90,28,WS_GROUP
+ COMBOBOX IDC_REFRESH,126,121,77,76,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_REFRESH
+ CONTROL "Switch resolutions to fit",IDC_SWITCHRES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,119,151,93,10,0,HIDC_SWITCHRES
+
+ PUSHBUTTON "Reset",IDC_PROP_RESET,4,222,97,14,0,0,HIDC_PROP_RESET
+ PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,118,222,97,14,0,0,HIDC_USE_DEFAULT
+END
+
+IDD_PROP_GAME DIALOG DISCARDABLE 0, 0, 220, 276
+STYLE WS_CHILD | WS_CAPTION
+CAPTION "General"
+FONT 8, "Tahoma"
+BEGIN
+ ICON IDI_MAMEUI_ICON,IDC_GAME_ICON,20,10,21,20
+ LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,
+ SS_NOPREFIX
+ CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,18,38,178,1
+ LTEXT "Manufactured:",IDC_STATIC,18,43,47,8
+ LTEXT "Static",IDC_PROP_MANUFACTURED,65,43,155,9,SS_NOPREFIX
+ LTEXT "Status:",IDC_STATIC,18,52,47,8
+ LTEXT "Static",IDC_PROP_STATUS,65,52,155,32
+ CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,18,85,178,1
+ LTEXT "CPU:",IDC_STATIC,18,90,47,8
+ LTEXT "Static\nStatic\nStatic\nStatic\nStatic",IDC_PROP_CPU,65,90,155,40
+ CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,18,130,178,1
+ LTEXT "Sound:",IDC_STATIC,18,135,47,8
+ LTEXT "Static\nStatic\nStatic\nStatic\nStatic",IDC_PROP_SOUND,65,135,155,45
+ CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,18,181,178,1
+ LTEXT "Screen:",IDC_STATIC,18,186,47,8
+ LTEXT "Static\nStatic\nStatic",IDC_PROP_SCREEN,65,186,155,27
+ CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,18,218,178,1
+ LTEXT "Source:",IDC_STATIC,16,223,47,8
+ LTEXT "Static",IDC_PROP_SOURCE,65,223,139,8
+ LTEXT "Clone of:",IDC_PROP_CLONEOF_TEXT,16,232,50,8
+ LTEXT "Static",IDC_PROP_CLONEOF,65,232,130,33
+END
+
+IDD_PROP_AUDIT DIALOG DISCARDABLE 0, 0, 220, 240
+STYLE WS_CHILD | WS_CAPTION
+CAPTION "Audit"
+FONT 8, "Tahoma"
+BEGIN
+ ICON IDI_CHECKMARK,IDC_STATIC,20,10,20,20
+ LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,
+ SS_NOPREFIX
+ LTEXT "ROM check:",IDC_STATIC,10,40,50,8
+ LTEXT "Checking...",IDC_PROP_ROMS,66,40,139,8
+ LTEXT "Sample check:",IDC_STATIC,10,52,50,8
+ LTEXT "Checking...",IDC_PROP_SAMPLES,66,52,139,8
+ GROUPBOX "Details",IDC_STATIC,4,64,211,171
+ EDITTEXT IDC_AUDIT_DETAILS_PROP,10,74,199,155,ES_MULTILINE |
+ ES_AUTOVSCROLL | ES_READONLY | WS_VSCROLL | WS_HSCROLL |
+ NOT WS_TABSTOP
+END
+
+IDD_PROP_DISPLAY DIALOGEX 0, 0, 220, 240
+STYLE WS_CHILD | WS_CAPTION
+CAPTION "Display"
+FONT 8, "Tahoma"
+BEGIN
+ ICON IDI_DISPLAY,IDC_STATIC,20,10,20,20
+ LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,169,25,SS_NOPREFIX
+
+ CONTROL "Run in a window",IDC_WINDOWED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,40,69,10,0,HIDC_WINDOWED
+ CONTROL "Start out maximized",IDC_MAXIMIZE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,52,74,10,0,HIDC_MAXIMIZE
+ CONTROL "Enforce aspect ratio",IDC_KEEPASPECT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,64,77,10,0,HIDC_KEEPASPECT
+ CONTROL "Throttle",IDC_THROTTLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,76,39,10,0,HIDC_THROTTLE
+
+ GROUPBOX "Bitmap prescaling",IDC_PRESCALETEXT,4,89,103,24
+ CONTROL "GammaSlider",IDC_PRESCALE,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,10,99,71,10,0,HIDC_PRESCALE
+ RTEXT "1.00",IDC_PRESCALEDISP,84,98,14,11,SS_CENTERIMAGE | NOT WS_GROUP
+
+ GROUPBOX "Gamma Correction",IDC_STATIC,4,115,103,24
+ CONTROL "GammaSlider",IDC_GAMMA,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,10,125,71,10,0,HIDC_GAMMA
+ RTEXT "2.00",IDC_GAMMADISP,84,124,14,10,SS_CENTERIMAGE | NOT WS_GROUP
+
+ GROUPBOX "Brightness Correction",IDC_STATIC,4,141,103,24
+ CONTROL "GammaSlider",IDC_BRIGHTCORRECT,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,10,151,71,10,0,HIDC_BRIGHTCORRECT
+ RTEXT "1.00",IDC_BRIGHTCORRECTDISP,84,150,14,10,SS_CENTERIMAGE | NOT WS_GROUP
+
+ GROUPBOX "Contrast Correction",IDC_STATIC,4,167,103,24
+ CONTROL "GammaSlider",IDC_CONTRAST,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,10,176,71,10,0,HIDC_CONTRAST
+ RTEXT "1.00",IDC_CONTRASTDISP,84,175,14,11,SS_CENTERIMAGE | NOT WS_GROUP
+
+ GROUPBOX "Pause Brightness",IDC_STATIC,4,193,103,24
+ CONTROL "Slider1",IDC_PAUSEBRIGHT,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,10,203,71,10,0,HIDC_PAUSEBRIGHT
+ RTEXT "0.65",IDC_PAUSEBRIGHTDISP,84,202,14,11,SS_CENTERIMAGE | NOT WS_GROUP
+
+ GROUPBOX "Video mode",IDC_STATIC,113,40,102,28
+ COMBOBOX IDC_VIDEO_MODE,119,50,90,50,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP,0,HIDC_VIDEO_MODE
+
+ GROUPBOX "Rotation",IDC_STATIC,113,71,102,55
+ COMBOBOX IDC_ROTATE,119,81,90,57,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_ROTATE
+ CONTROL "Flip screen upside-down",IDC_FLIPY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,119,98,91,10,0,HIDC_FLIPY
+ CONTROL "Flip screen left-right",IDC_FLIPX,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,119,110,77,10,0,HIDC_FLIPX
+
+ GROUPBOX "Direct3D",IDC_STATIC,113,128,102,57
+ CONTROL "Use Bilinear filtering",IDC_D3D_FILTER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,119,138,85,10,0,HIDC_D3D_FILTER
+
+// GROUPBOX "Version",IDC_STATIC,119,150,90,28
+// COMBOBOX IDC_D3D_VERSION,125,160,78,95,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_D3D_VERSION
+
+// GROUPBOX "DirectDraw",IDC_STATIC,113,187,102,26
+// CONTROL "Stretch using hardware",IDC_HWSTRETCH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,119,197,85,10,0,HIDC_HWSTRETCH
+
+ PUSHBUTTON "Reset",IDC_PROP_RESET,4,222,97,14,0,0,HIDC_PROP_RESET
+ PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,118,222,97,14,0,0,HIDC_USE_DEFAULT
+END
+
+IDD_PROP_SOUND DIALOGEX 0, 0, 220, 240
+STYLE WS_CHILD | WS_CAPTION
+CAPTION "Sound"
+FONT 8, "Tahoma"
+BEGIN
+ ICON IDI_SOUNDTAB,IDC_STATIC,20,10,20,20
+ LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,SS_NOPREFIX
+
+ GROUPBOX "",IDC_STATIC,4,40,211,155
+
+ GROUPBOX "Soundmode",IDC_STATIC,60,50,100,28
+ COMBOBOX IDC_SOUND_MODE,66,60,88,50,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP,0,HIDC_VIDEO_MODE
+
+ CONTROL "Use samples",IDC_SAMPLES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,60,84,55,10,0,HIDC_SAMPLES
+
+ GROUPBOX "Sample rate",IDC_RATETEXT,60,96,100,28
+ COMBOBOX IDC_SAMPLERATE,66,106,88,60,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_SAMPLERATE
+
+ GROUPBOX "Volume attenuation",IDC_VOLUMETEXT,60,127,100,28
+ CONTROL "Slider1",IDC_VOLUME,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,66,139,68,10,0,HIDC_VOLUME
+ RTEXT "0dB",IDC_VOLUMEDISP,132,138,20,11,SS_CENTERIMAGE
+
+ GROUPBOX "Audio latency",IDC_AUDIO_LATENCY_TEXT,60,158,100,28
+ CONTROL "Slider1",IDC_AUDIO_LATENCY,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,66,170,68,10,0,HIDC_AUDIO_LATENCY
+ RTEXT "1/5",IDC_AUDIO_LATENCY_DISP,132,169,20,11,SS_CENTERIMAGE
+
+ PUSHBUTTON "Reset",IDC_PROP_RESET,4,222,97,14,0,0,HIDC_PROP_RESET
+ PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,118,222,97,14,0,0,HIDC_USE_DEFAULT
+END
+
+IDD_PROP_ADVANCED DIALOGEX 0, 0, 220, 255
+STYLE DS_FIXEDSYS | WS_CHILD | WS_CAPTION
+CAPTION "Advanced"
+FONT 8, "Tahoma"
+BEGIN
+ ICON IDI_DISPLAY,IDC_STATIC,20,10,20,20
+ LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,SS_NOPREFIX
+
+ CONTROL "Triple buffering",IDC_TRIPLE_BUFFER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,40,93,10,0,HIDC_TRIPLE_BUFFER
+ CONTROL "Sync to monitor refresh",IDC_SYNCREFRESH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,52,93,10,0,HIDC_SYNCREFRESH
+ CONTROL "Wait for vertical sync",IDC_WAITVSYNC,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,64,93,10,0,HIDC_WAITVSYNC
+ CONTROL "Refresh speed",IDC_REFRESHSPEED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,76,93,10,0,HIDC_REFRESHSPEED
+
+ GROUPBOX "Frame skipping",IDC_STATIC,4,104,103,42
+ CONTROL "Automatic",IDC_AUTOFRAMESKIP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,114,77,10,0,HIDC_AUTOFRAMESKIP
+ COMBOBOX IDC_FRAMESKIP,10,127,91,88,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_FRAMESKIP
+
+ GROUPBOX "Full screen gamma",IDC_FSGAMMATEXT,113,40,102,24
+ CONTROL "Slider1",IDC_FSGAMMA,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,119,50,71,10,0,HIDC_FSGAMMA
+ RTEXT "2.00",IDC_FSGAMMADISP,193,49,16,10,SS_CENTERIMAGE | NOT WS_GROUP
+
+ GROUPBOX "Full screen brightness",IDC_FSBRIGHTNESSTEXT,113,67,102,24
+ CONTROL "Slider1",IDC_FSBRIGHTNESS,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,119,77,71,10,0,HIDC_FSBRIGHTNESS
+ RTEXT "2.00",IDC_FSBRIGHTNESSDISP,193,76,16,10,SS_CENTERIMAGE | NOT WS_GROUP
+
+ GROUPBOX "Full screen contrast",IDC_FSCONTRASTTEXT,113,94,102,24
+ CONTROL "Slider1",IDC_FSCONTRAST,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,119,104,71,10,0,HIDC_FSCONTRAST
+ RTEXT "2.00",IDC_FSCONTRASTDISP,193,103,16,11,SS_CENTERIMAGE | NOT WS_GROUP
+
+ GROUPBOX "Seconds to run",IDC_SECONDSTORUNTEXT,113,122,102,24
+ CONTROL "",IDC_SECONDSTORUN,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,119,132,71,10,0,HIDC_SECONDSTORUN
+ RTEXT "60",IDC_SECONDSTORUNDISP,193,130,16,11,SS_CENTERIMAGE | NOT WS_GROUP
+
+ GROUPBOX "Emulation speed",IDC_SPEEDTEXT,4,155,211,24
+ CONTROL "Slider1",IDC_SPEED,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,12,165,180,10,0,HIDC_SPEED
+ RTEXT "1.00",IDC_SPEEDDISP,191,164,20,11,SS_CENTERIMAGE | NOT WS_GROUP
+
+ GROUPBOX "Effect",IDC_STATIC,4,182,211,50
+ EDITTEXT IDC_EFFECT,12,192,200,14,ES_AUTOHSCROLL | WS_DISABLED
+ PUSHBUTTON "Select Effect",IDC_SELECT_EFFECT,12,211,60,14,0,0,HIDC_SELECT_EFFECT
+ PUSHBUTTON "Reset Effect",IDC_RESET_EFFECT,152,211,60,14,0,0,HIDC_RESET_EFFECT
+
+ PUSHBUTTON "Reset",IDC_PROP_RESET,4,238,97,14,0,0,HIDC_PROP_RESET
+ PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,120,238,97,14,0,0,HIDC_USE_DEFAULT
+END
+
+IDD_PROP_DEBUG DIALOGEX 0, 0, 220, 255
+STYLE DS_FIXEDSYS | WS_CHILD | WS_CAPTION
+CAPTION "Debug"
+FONT 8, "Tahoma"
+BEGIN
+ ICON IDI_MANUFACTURER,IDC_STATIC,20,10,20,20
+ LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,SS_NOPREFIX
+
+ CONTROL "Output log to Windows Debugger",IDC_OSLOG,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,40,124,10,0,HIDC_OSLOG
+ CONTROL "Output log to Logfile",IDC_LOG,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,52,93,10,0,HIDC_LOG
+ CONTROL "Output diagnostic information",IDC_VERBOSE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,64,111,10,0,HIDC_VERBOSE
+ CONTROL "Update Main window during paused emulation",IDC_UPDATEINPAUSE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,76,171,10,0,HIDC_UPDATEINPAUSE
+ CONTROL "Activate Integrated Debugger",IDC_DEBUG,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,88,118,10,0,HIDC_DEBUG
+
+ GROUPBOX "Debugscript",IDC_STATIC,6,104,211,50
+ EDITTEXT IDC_DEBUGSCRIPT,14,114,200,14,ES_AUTOHSCROLL | WS_DISABLED
+ PUSHBUTTON "Select Debugscript",IDC_SELECT_DEBUGSCRIPT,14,133,67,14,0,0,HIDC_SELECT_DEBUGSCRIPT
+ PUSHBUTTON "Reset Debugscript",IDC_RESET_DEBUGSCRIPT,149,133,65,14,0,0,HIDC_RESET_DEBUGSCRIPT
+
+ PUSHBUTTON "Reset",IDC_PROP_RESET,4,238,97,14,0,0,HIDC_PROP_RESET
+ PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,120,238,97,14,0,0,HIDC_USE_DEFAULT
+END
+
+IDD_PROP_INPUT DIALOGEX 0, 0, 220, 240
+STYLE DS_FIXEDSYS | WS_CHILD | WS_CAPTION
+CAPTION "Controllers"
+FONT 8, "Tahoma"
+BEGIN
+ ICON IDI_JOYSTICK,IDC_STATIC,20,10,20,20
+ LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,
+ SS_NOPREFIX
+ CONTROL "Enable mouse input",IDC_USE_MOUSE,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,10,40,86,10,0,
+ HIDC_USE_MOUSE
+ CONTROL "Enable steadykey support",IDC_STEADYKEY,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,10,52,95,10,0,
+ HIDC_STEADYKEY
+ GROUPBOX "",IDC_STATIC,4,64,103,74
+ CONTROL "Enable joystick input",IDC_JOYSTICK,"Button",
+ BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,10,64,78,10,0,
+ HIDC_JOYSTICK
+ GROUPBOX "Joystick deadzone",IDC_JDZTEXT,10,76,91,28
+ CONTROL "IntensitySlider",IDC_JDZ,"msctls_trackbar32",TBS_BOTH |
+ TBS_NOTICKS | WS_TABSTOP,15,88,60,10,0,HIDC_JDZ
+ RTEXT "0.3",IDC_JDZDISP,76,87,16,11,SS_CENTERIMAGE | NOT
+ WS_GROUP
+ GROUPBOX "Default input layout",IDC_STATIC,113,40,102,28
+ COMBOBOX IDC_DEFAULT_INPUT,119,50,90,53,CBS_DROPDOWNLIST |
+ WS_VSCROLL | WS_TABSTOP,0,HIDC_DEFAULT_INPUT
+ GROUPBOX "",IDC_STATIC,113,71,102,66
+ CONTROL "Enable lightgun input",IDC_LIGHTGUN,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,119,71,80,10,0,
+ HIDC_LIGHTGUN
+ CONTROL "Offscreen shots reload",IDC_RELOAD,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,119,83,86,10,0,HIDC_RELOAD
+ CONTROL "Dual lightguns",IDC_DUAL_LIGHTGUN,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,119,96,86,10,0,
+ HIDC_DUAL_LIGHTGUN
+ CONTROL "Multiple keyboards",IDC_MULTIKEYBOARD,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,119,109,75,10,0,
+ HIDC_MULTIKEYBOARD
+ CONTROL "Multiple mice",IDC_MULTIMOUSE,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,119,122,56,10,0,HIDC_MULTIMOUSE
+ GROUPBOX "Joystick saturation",IDC_JSATTEXT,10,106,91,28
+ CONTROL "IntensitySlider",IDC_JSAT,"msctls_trackbar32",TBS_BOTH |
+ TBS_NOTICKS | WS_TABSTOP,16,118,60,10,0,HIDC_JSAT
+ RTEXT "0.85",IDC_JSATDISP,76,116,16,11,SS_CENTERIMAGE | NOT
+ WS_GROUP
+ PUSHBUTTON "Reset",IDC_PROP_RESET,4,222,97,14,0,0,HIDC_PROP_RESET
+ PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,118,222,97,14,
+ 0,0,HIDC_USE_DEFAULT
+ GROUPBOX "Joystickmap",IDC_STATIC,4,143,211,50
+ EDITTEXT IDC_JOYSTICKMAP,12,153,200,14,ES_AUTOHSCROLL |
+ WS_DISABLED
+ PUSHBUTTON "Select Joystickmap",IDC_SELECT_JOYSTICKMAP,12,172,67,14,
+ 0,0,HIDC_SELECT_JOYSTICKMAP
+ PUSHBUTTON "Reset Joystickmap",IDC_RESET_JOYSTICKMAP,147,172,65,14,
+ 0,0,HIDC_RESET_JOYSTICKMAP
+END
+
+IDD_PROP_MISC DIALOGEX 0, 0, 220, 240
+STYLE DS_FIXEDSYS | WS_CHILD | WS_CAPTION
+CAPTION "Miscellaneous"
+FONT 8, "Tahoma"
+BEGIN
+ ICON IDI_MAMEUI_ICON,IDC_STATIC,20,10,20,20
+ LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,
+ SS_NOPREFIX
+ CONTROL "Enable cheats",IDC_CHEAT,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,10,40,86,10,0,HIDC_CHEAT
+ CONTROL "Sleep when possible",IDC_SLEEP,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,10,52,86,10,0,HIDC_SLEEP
+ CONTROL "Skip game info",IDC_SKIP_GAME_INFO,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,10,64,96,10,0,
+ HIDC_SKIP_GAME_INFO
+ CONTROL "Save game state on exit",IDC_ENABLE_AUTOSAVE,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,10,76,96,10,0,
+ HIDC_ENABLE_AUTOSAVE
+ CONTROL "Coin lockout",IDC_COINLOCKOUT,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,10,100,96,10,0,HIDC_COINLOCKOUT
+ GROUPBOX "Thread Priority",IDC_HIGH_PRIORITY_TEXT,7,112,103,34
+ CONTROL "Slider1",IDC_HIGH_PRIORITY,"msctls_trackbar32",TBS_BOTH |
+ TBS_NOTICKS | WS_TABSTOP,13,122,75,10,0,
+ HIDC_HIGH_PRIORITY
+ LTEXT "idle",IDC_STATIC,17,132,12,8
+ RTEXT "-15",IDC_HIGH_PRIORITYTXT,87,122,14,10,SS_CENTERIMAGE
+ RTEXT "real-time",IDC_STATIC,57,134,28,8
+ GROUPBOX "Snapshot view",IDC_STATIC,7,148,103,28
+ COMBOBOX IDC_SNAPVIEW,13,158,90,60,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP,0,HIDC_SNAPVIEW
+ GROUPBOX "Artwork options",IDC_STATIC,113,40,102,85
+ CONTROL "Backdrops",IDC_BACKDROPS,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,119,50,86,10,0,HIDC_BACKDROPS
+ CONTROL "Bezels",IDC_BEZELS,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,119,62,86,10,0,HIDC_BEZELS
+ CONTROL "Overlays",IDC_OVERLAYS,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,119,74,84,10,0,HIDC_OVERLAYS
+ CONTROL "CPanels",IDC_CPANELS,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,119,86,84,10,0
+ CONTROL "Marquees",IDC_MARQUEES,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,119,98,84,10,0
+ CONTROL "Crop artwork",IDC_ARTWORK_CROP,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,119,110,53,10,0,HIDC_ARTWORK_CROP
+ GROUPBOX "BIOS",IDC_STATIC,113,128,102,28
+ COMBOBOX IDC_BIOS,119,138,90,60,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP,0,HIDC_BIOS
+ GROUPBOX "",IDC_STATIC,7,178,208,28
+ CONTROL "Autoselect snapshot size",IDC_SNAPSIZE,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,13,178,95,10,0,
+ HIDC_SNAPSIZE
+ LTEXT "Snapshotsize",IDC_SNAPSIZETEXT,11,189,44,11,
+ SS_CENTERIMAGE | NOT WS_GROUP
+ EDITTEXT IDC_SNAPSIZEWIDTH,122,187,32,12,ES_RIGHT |
+ ES_AUTOHSCROLL | ES_NUMBER,0,HIDC_SNAPSIZEWIDTH
+ EDITTEXT IDC_SNAPSIZEHEIGHT,172,187,32,12,ES_RIGHT |
+ ES_AUTOHSCROLL | ES_NUMBER,0,HIDC_SNAPSIZEHEIGHT
+ LTEXT "x",IDC_SNAPSIZEX,162,189,8,8
+ PUSHBUTTON "Reset",IDC_PROP_RESET,4,222,97,14,0,0,HIDC_PROP_RESET
+ PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,118,222,97,14,
+ 0,0,HIDC_USE_DEFAULT
+ CONTROL "Show Menu",IDC_SHOW_MENU,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,119,160,86,10,0
+END
+
+IDD_PROP_VECTOR DIALOGEX 0, 0, 220, 240
+STYLE WS_CHILD | WS_CAPTION
+CAPTION "Vector"
+FONT 8, "Tahoma"
+BEGIN
+ ICON IDI_MAMEUI_ICON,IDC_STATIC,20,10,20,20
+ LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,
+ SS_NOPREFIX
+// CONTROL "Draw antialiased vectors",IDC_ANTIALIAS,"Button",
+// BS_AUTOCHECKBOX | WS_TABSTOP,10,40,92,10,0,
+// HIDC_ANTIALIAS
+ GROUPBOX "Beam width",IDC_BEAMTEXT,60,53,100,28
+ CONTROL "BeamSlider",IDC_BEAM,"msctls_trackbar32",TBS_BOTH |
+ TBS_NOTICKS | WS_TABSTOP,66,65,64,10,0,HIDC_BEAM
+ RTEXT "16.00",IDC_BEAMDISP,132,64,20,11,SS_CENTERIMAGE
+ GROUPBOX "Flicker",IDC_FLICKERTEXT,60,84,100,28
+ CONTROL "FlickerSlider",IDC_FLICKER,"msctls_trackbar32",TBS_BOTH |
+ TBS_NOTICKS | WS_TABSTOP,66,96,64,10,0,HIDC_FLICKER
+ RTEXT "100.00",IDC_FLICKERDISP,128,95,24,11,SS_CENTERIMAGE |
+ NOT WS_GROUP
+ PUSHBUTTON "Reset",IDC_PROP_RESET,4,222,97,14,0,0,HIDC_PROP_RESET
+ PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,118,222,97,14,
+ 0,0,HIDC_USE_DEFAULT
+END
+
+IDD_MAIN DIALOGEX 0, 0, 364, 206
+STYLE DS_3DLOOK | DS_NOFAILCREATE | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | DS_SETFONT
+EXSTYLE WS_EX_CONTROLPARENT
+CAPTION "MAMEUI - overwritten at runtime"
+CLASS "MainClass"
+FONT 8, "Verdana"
+BEGIN
+ CONTROL "",IDC_DIVIDER,"Static",SS_ETCHEDHORZ,0,5,304,1
+ CONTROL "Tree1",IDC_TREE,"SysTreeView32",TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT | TVS_EDITLABELS |
+ TVS_SHOWSELALWAYS | TVS_FULLROWSELECT | WS_BORDER | WS_TABSTOP,5,28,48,172
+ CONTROL "List1",IDC_LIST,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_AUTOARRANGE |
+ LVS_SHAREIMAGELISTS | LVS_OWNERDRAWFIXED | WS_BORDER | WS_TABSTOP,65,28,42,172
+ GROUPBOX "",IDC_SPLITTER,55,28,8,172,BS_NOTIFY | NOT WS_VISIBLE
+ GROUPBOX "",IDC_SPLITTER2,109,28,8,172,BS_NOTIFY | NOT WS_VISIBLE
+ CONTROL "",IDC_SSFRAME,"Static",SS_ETCHEDFRAME | SS_NOTIFY,121,11,181,194
+ CONTROL "",IDC_SSTAB,"SysTabControl32",TCS_HOTTRACK,121,0,181,18
+ CONTROL "",IDC_SSPICTURE,"Static",SS_BITMAP | NOT WS_VISIBLE,141,18,141,127
+ EDITTEXT IDC_HISTORY,129,150,167,49,ES_MULTILINE | ES_READONLY | NOT WS_BORDER | WS_VSCROLL | NOT WS_TABSTOP,0,HIDC_HISTORY
+END
+
+IDD_FILTERS DIALOGEX 0, 0, 190, 196
+STYLE DS_MODALFRAME | DS_CENTER | DS_3DLOOK | WS_POPUP | WS_CAPTION |
+ WS_SYSMENU
+EXSTYLE WS_EX_CONTEXTHELP
+CAPTION "Game Filters"
+FONT 8, "Tahoma"
+BEGIN
+ GROUPBOX "Game filters",IDC_STATIC,6,4,178,99
+ CONTROL "&Vector Graphics",IDC_FILTER_VECTOR,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,14,16,70,10,0,
+ HIDC_FILTER_VECTOR
+ CONTROL "C&lones",IDC_FILTER_CLONES,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,14,30,41,10,0,HIDC_FILTER_CLONES
+ CONTROL "Non-Wor&king",IDC_FILTER_NONWORKING,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,14,44,61,10,0,
+ HIDC_FILTER_NONWORKING
+ CONTROL "&Horizontal",IDC_FILTER_HORIZONTAL,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,14,58,57,10,0,
+ HIDC_FILTER_HORIZONTAL
+ CONTROL "&Unavailable",IDC_FILTER_UNAVAILABLE,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,14,72,57,10,0,
+ HIDC_FILTER_UNAVAILABLE
+ CONTROL "Arcade",IDC_FILTER_ARCADE,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,14,86,57,10,0
+ CONTROL "&Raster Graphics",IDC_FILTER_RASTER,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,100,16,70,10,0,
+ HIDC_FILTER_RASTER
+ CONTROL "Ori&ginals",IDC_FILTER_ORIGINALS,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,100,30,47,10,0,
+ HIDC_FILTER_ORIGINALS
+ CONTROL "&Working",IDC_FILTER_WORKING,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,100,44,47,10,0,HIDC_FILTER_WORKING
+ CONTROL "&Vertical",IDC_FILTER_VERTICAL,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,100,58,47,10,0,HIDC_FILTER_VERTICAL
+ CONTROL "&Mechanical",IDC_FILTER_MECHANICAL,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,100,72,58,10,0,HIDC_FILTER_MECHANICAL
+ CONTROL "MESS",IDC_FILTER_MESS,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,100,86,58,10,0,HIDC_FILTER_MECHANICAL
+ LTEXT "(*) = inherited from parent folder",IDC_INHERITED,14,72,
+ 99,10
+ CTEXT "Game filters allow customizing the games that are displayed in each folder by hiding games that match the filters applied.",
+ IDC_STATIC,6,108,178,27
+ GROUPBOX "&Description filter",IDC_STATIC,6,136,178,33
+ EDITTEXT IDC_FILTER_EDIT,14,148,162,13,ES_AUTOHSCROLL,0,
+ HIDC_FILTER_EDIT
+ DEFPUSHBUTTON "&OK",IDOK,42,175,50,14
+ PUSHBUTTON "&Cancel",IDCANCEL,98,175,50,14
+END
+
+IDD_RESET DIALOGEX 0, 0, 190, 122
+STYLE DS_MODALFRAME | DS_CENTER | DS_3DLOOK | WS_POPUP | WS_CAPTION | WS_SYSMENU
+EXSTYLE WS_EX_CONTEXTHELP
+CAPTION "Reset Options"
+FONT 8, "Tahoma"
+BEGIN
+ GROUPBOX "Categories",IDC_STATIC,6,4,178,70
+ CONTROL "&User Interface (Fonts, Colors, Sizes)",IDC_RESET_UI,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,16,146,10,0,
+ HIDC_RESET_UI
+ CONTROL "&Default game options",IDC_RESET_DEFAULT,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,14,30,146,10,0,
+ HIDC_RESET_DEFAULT
+ CONTROL "&All games to use default options",IDC_RESET_GAMES,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,44,146,10,0,
+ HIDC_RESET_GAMES
+ CONTROL "&Folder 'filters'",IDC_RESET_FILTERS,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,14,58,146,10,0,
+ HIDC_RESET_FILTERS
+ CTEXT "Select the options to be restored to the default settings.",
+ IDC_STATIC,6,79,178,20
+ DEFPUSHBUTTON "&OK",IDOK,42,101,50,14
+ PUSHBUTTON "&Cancel",IDCANCEL,98,101,50,14
+END
+
+
+IDD_INTERFACE_OPTIONS DIALOGEX 0, 0, 378, 225
+STYLE DS_MODALFRAME | DS_CENTER | DS_3DLOOK | WS_POPUP | WS_CAPTION | WS_SYSMENU
+EXSTYLE WS_EX_CONTEXTHELP
+CAPTION "Interface Options"
+FONT 8, "Tahoma"
+BEGIN
+ GROUPBOX "Game Selection",IDC_STATIC,6,4,189,194
+ CONTROL "&Search for new games on start",IDC_START_GAME_CHECK,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,16,111,10,0,
+ HIDC_START_GAME_CHECK
+ CONTROL "Allow game selection by a &joystick (requires restart)",
+ IDC_JOY_GUI,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,30,
+ 174,10,0,HIDC_JOY_GUI
+ CONTROL "Allow game selection by custom &key sequences",
+ IDC_KEY_GUI,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,44,
+ 166,10
+ CONTROL "Hide &mouse cursor (requires restart)",IDC_HIDE_MOUSE,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,86,126,10,0,
+ HIDC_HIDE_MOUSE
+ CONTROL "Inheritable Filters",IDC_FILTER_INHERIT,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,14,100,68,10
+ CONTROL "No offset for clones missing parent in view",
+ IDC_NOOFFSET_CLONES,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,14,114,148,10
+ GROUPBOX "Show History on Tab",IDC_STATIC,14,128,173,28
+ COMBOBOX IDC_HISTORY_TAB,57,138,88,50,CBS_DROPDOWNLIST |
+ WS_VSCROLL | WS_TABSTOP
+ GROUPBOX "Snapshot Pattern",IDC_STATIC,202,4,170,28
+ GROUPBOX "Bookkeeping",IDC_STATIC,202,36,170,43
+ CONTROL "Reset all Playcounts",IDC_RESET_PLAYCOUNT,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,210,48,80,10
+ CONTROL "Reset all Play Times",IDC_RESET_PLAYTIME,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,210,62,79,10
+ GROUPBOX "Screenshot Area",IDC_STATIC,202,83,170,115
+ CONTROL "S&tretch screenshot larger than natural size",
+ IDC_STRETCH_SCREENSHOT_LARGER,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,210,95,148,10,0,
+ HIDC_STRETCH_SCREENSHOT_LARGER
+ GROUPBOX "Screenshot Cycletime in Seconds",IDC_STATIC,210,109,154,
+ 28
+ CONTROL "Slider1",IDC_CYCLETIMESEC,"msctls_trackbar32",TBS_BOTH |
+ TBS_NOTICKS | WS_TABSTOP,218,121,120,10,0,
+ HIDC_CYCLETIMESEC
+ RTEXT "60",IDC_CYCLETIMESECTXT,340,120,13,10,SS_CENTERIMAGE
+ GROUPBOX "Screenshot Bordersize",IDC_STATIC,210,141,154,28
+ CONTROL "Slider1",IDC_SCREENSHOT_BORDERSIZE,"msctls_trackbar32",
+ TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,218,153,120,10
+ RTEXT "100",IDC_SCREENSHOT_BORDERSIZETXT,340,152,13,10,
+ SS_CENTERIMAGE
+ PUSHBUTTON "Set Screenshot Border Color",IDC_SCREENSHOT_BORDERCOLOR,
+ 210,176,154,14
+ DEFPUSHBUTTON "&OK",IDOK,136,204,50,14
+ PUSHBUTTON "&Cancel",IDCANCEL,192,204,50,14
+ COMBOBOX IDC_SNAPNAME,209,14,155,60,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP,0,HIDC_SNAPNAME
+END
+
+IDD_CUSTOM_FILE DIALOG DISCARDABLE 0, 0, 190, 135
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Add Game To Custom Folder"
+FONT 8, "Tahoma"
+BEGIN
+ LTEXT "",IDC_CUSTOMFILE_GAME,6,6,175,10,SS_NOPREFIX |
+ SS_CENTERIMAGE
+ CONTROL "CustomTree",IDC_CUSTOM_TREE,"SysTreeView32",
+ TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT |
+ TVS_DISABLEDRAGDROP | TVS_SHOWSELALWAYS |
+ TVS_FULLROWSELECT | WS_BORDER | WS_TABSTOP,6,18,178,90
+ DEFPUSHBUTTON "OK",IDOK,42,114,50,14
+ PUSHBUTTON "Cancel",IDCANCEL,98,114,50,14
+END
+
+
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Accelerator
+//
+
+IDA_TAB_KEYS ACCELERATORS MOVEABLE PURE
+BEGIN
+ "1", ID_VIEW_TAB_SCREENSHOT, VIRTKEY, ALT, NOINVERT
+ "2", ID_VIEW_TAB_FLYER, VIRTKEY, ALT, NOINVERT
+ "3", ID_VIEW_TAB_CABINET, VIRTKEY, ALT, NOINVERT
+ "4", ID_VIEW_TAB_MARQUEE, VIRTKEY, ALT, NOINVERT
+ "5", ID_VIEW_TAB_TITLE, VIRTKEY, ALT, NOINVERT
+ "6", ID_VIEW_TAB_CONTROL_PANEL, VIRTKEY, ALT, NOINVERT
+ "7", ID_VIEW_TAB_PCB, VIRTKEY, ALT, NOINVERT
+ "8", ID_VIEW_TAB_HISTORY, VIRTKEY, ALT, NOINVERT
+ "A", ID_GAME_AUDIT, VIRTKEY, ALT, NOINVERT
+ "B", ID_VIEW_PAGETAB, VIRTKEY, ALT, NOINVERT
+ "D", ID_VIEW_FOLDERS, VIRTKEY, ALT, NOINVERT
+ "E", ID_TOOLBAR_EDIT, VIRTKEY, CONTROL, NOINVERT
+ "F", ID_CONTEXT_FILTERS, VIRTKEY, CONTROL, NOINVERT
+ "U", ID_FOLDER_AUDIT, VIRTKEY, ALT, NOINVERT
+ "P", ID_VIEW_PICTURE_AREA, VIRTKEY, ALT, NOINVERT
+ "R", ID_CONTEXT_SELECT_RANDOM, VIRTKEY, CONTROL, NOINVERT
+ "S", ID_VIEW_STATUS, VIRTKEY, ALT, NOINVERT
+ "T", ID_VIEW_TOOLBARS, VIRTKEY, ALT, NOINVERT
+ VK_F1, ID_HELP_CONTENTS, VIRTKEY, NOINVERT
+ VK_F11, ID_VIEW_FULLSCREEN, VIRTKEY, NOINVERT
+ VK_F5, ID_UPDATE_GAMELIST, VIRTKEY, NOINVERT
+ VK_NEXT, ID_UI_HISTORY_DOWN, VIRTKEY, CONTROL, NOINVERT
+ VK_PRIOR, ID_UI_HISTORY_UP, VIRTKEY, CONTROL, NOINVERT
+ VK_RETURN, ID_GAME_PROPERTIES, VIRTKEY, ALT, NOINVERT
+END
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// DESIGNINFO
+//
+
+#ifdef APSTUDIO_INVOKED
+GUIDELINES DESIGNINFO MOVEABLE PURE
+BEGIN
+ IDD_ABOUT, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 289
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 123
+ END
+
+ IDD_DIRECTX, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 229
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 62
+ END
+
+ IDD_AUDIT, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 280
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 187
+ HORZGUIDE, 19
+ END
+
+ IDD_DIRECTORIES, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 224
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 98
+ END
+
+ IDD_COLUMNS, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 301
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 143
+ END
+
+ IDD_PROP_CONTROLLER, DIALOG
+ BEGIN
+ RIGHTMARGIN, 210
+ BOTTOMMARGIN, 154
+ END
+
+ IDD_PROP_SCREEN, DIALOG
+ BEGIN
+ LEFTMARGIN, 4
+ VERTGUIDE, 7
+ VERTGUIDE, 123
+ BOTTOMMARGIN, 199
+ HORZGUIDE, 179
+ END
+
+ IDD_PROP_GAME, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 213
+ VERTGUIDE, 19
+ VERTGUIDE, 66
+ VERTGUIDE, 74
+ VERTGUIDE, 201
+ BOTTOMMARGIN, 268
+ END
+
+ IDD_PROP_AUDIT, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 213
+ VERTGUIDE, 12
+ VERTGUIDE, 208
+ BOTTOMMARGIN, 198
+ HORZGUIDE, 38
+ END
+
+ IDD_PROP_DISPLAY, DIALOG
+ BEGIN
+ LEFTMARGIN, 4
+ VERTGUIDE, 7
+ VERTGUIDE, 123
+ HORZGUIDE, 179
+ END
+
+ IDD_PROP_SOUND, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 213
+ VERTGUIDE, 50
+ BOTTOMMARGIN, 198
+ END
+
+ IDD_PROP_ADVANCED, DIALOG
+ BEGIN
+ LEFTMARGIN, 10
+ BOTTOMMARGIN, 240
+ END
+
+ IDD_PROP_INPUT, DIALOG
+ BEGIN
+ LEFTMARGIN, 4
+ RIGHTMARGIN, 215
+ VERTGUIDE, 50
+ VERTGUIDE, 170
+ END
+
+ IDD_PROP_MISC, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 213
+ VERTGUIDE, 25
+ VERTGUIDE, 40
+ VERTGUIDE, 104
+ VERTGUIDE, 114
+ VERTGUIDE, 204
+ BOTTOMMARGIN, 236
+ END
+
+ IDD_PROP_VECTOR, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 213
+ VERTGUIDE, 50
+ BOTTOMMARGIN, 198
+ END
+
+ IDD_FILTERS, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 178
+ END
+
+ IDD_RESET, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 175
+ VERTGUIDE, 18
+ VERTGUIDE, 164
+ TOPMARGIN, 7
+ END
+END
+#endif // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Bitmap
+//
+
+
+
+
+IDB_ABOUT BITMAP "res\\about.bmp"
+IDB_TOOLBAR BITMAP "res\\toolbar.bmp"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Cursor
+//
+
+IDC_CURSOR_HSPLIT CURSOR "res\\splith.cur"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// RT_MANIFEST
+//
+
+1 RT_MANIFEST "res\\mameui.manifest"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// String Table
+//
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ IDS_UI_FILE "Contains commands for working with the selected items"
+ IDS_UI_VIEW "Contains commands for manipulating the view"
+ IDS_UI_OPTIONS "Contains commands for user interface options"
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ IDS_UI_HELP "Contains commands for displaying help"
+ IDS_VIEW_TOOLBAR "Show or hide the toolbar"
+ IDS_VIEW_STATUSBAR "Show or hide the status bar"
+ IDS_VIEW_FOLDERLIST "Show or hide the folder list"
+ IDS_VIEW_SCREENSHOT "Show or hide the screen shot"
+ IDS_VIEW_PICTURETABS "Show or hide tabs in the picture area"
+ IDS_VIEW_SPACER1 "Spacer"
+ IDS_VIEW_FULLSCREEN "Toggle full screen mode"
+ IDS_VIEW_SPACER2 "Spacer"
+ IDS_VIEW_SHOWPICTURES "Contains commands to select tabs shown in the picture area"
+ IDS_VIEW_SPACER3 "Spacer"
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ IDS_VIEW_LARGEICONS "Display items by using large icons."
+ IDS_VIEW_SMALLICONS "Display items by using small icons."
+ IDS_VIEW_LIST "Displays items in a list."
+ IDS_VIEW_DETAILS "Displays detailed information about each item in the window."
+ IDS_VIEW_GROUPED "Displays items grouped by parent game"
+ IDS_VIEW_SPACER4 "Spacer"
+ IDS_VIEW_ARRANGE "Contains commands for sorting by various columns"
+ IDS_VIEW_LINEUPICONS "Arranges icons in a grid"
+ IDS_VIEW_SPACER5 "Spacer"
+ IDS_VIEW_REFRESH "Refresh game list"
+ IDS_VIEW_CONTEXTFILTERS "Allows filtering out games from a folder"
+ IDS_VIEW_CUSTOMIZEFIELDS
+ "Customize which columns are used in the game list"
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ ID_FILE_EXIT "Exit the application"
+ ID_FILE_PLAY "Play currently selected game"
+ ID_HELP_ABOUT "Displays program and copyright information"
+ ID_VIEW_LARGE_ICON "Display items by using large icons."
+ ID_VIEW_SMALL_ICON "Display items by using small icons."
+ ID_VIEW_LIST_MENU "Displays items in a list."
+ ID_VIEW_DETAIL "Displays detailed information about each item in the window."
+ ID_VIEW_GROUPED "Show items grouped by parent game"
+ ID_OPTIONS_FONT "Set game list and folder list font"
+ ID_OPTIONS_CLONE_COLOR "Set the clone font color"
+ ID_OPTIONS_DIR "Set directory configuration"
+ ID_OPTIONS_DEFAULTS "Set default game options"
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ ID_OPTIONS_RESET_DEFAULTS "Allow restoring options to 'sane' values."
+ ID_OPTIONS_INTERFACE "Customize interface options."
+ ID_FILE_AUDIT "Audit ROM and samples sets"
+ ID_FILE_PLAY_RECORD "Record a game for later playback"
+ ID_FILE_PLAY_BACK "Playback a recorded game"
+ ID_FILE_PLAY_RECORD_WAVE "Record the audio output of a game"
+ ID_FILE_PLAY_RECORD_MNG "Record the video output of a game"
+ ID_FILE_PLAY_RECORD_AVI "Record the complete output of a game"
+ ID_VIEW_PICTURE_AREA "Show or hide the picture area"
+ ID_HELP_CONTENTS "Display help contents"
+ ID_HELP_WHATS_NEWUI "New game changes"
+ ID_HELP_TROUBLE "Troubleshooting Documentation"
+ ID_HELP_RELEASE "MAME release notes"
+ ID_HELP_WHATS_NEW "What's new in MAME"
+ ID_HELP_CHEATS "How cheats work"
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ ID_CONTEXT_RESET_PLAYTIME "Reset time played for selected item"
+ ID_CONTEXT_RESET_PLAYCOUNT "Reset number of plays for selected item"
+ ID_FOLDER_PROPERTIES "Display folder properties"
+ ID_FOLDER_AUDIT "Audit items in this folder"
+ ID_FILE_LOADSTATE "Play a game starting with the given savestate"
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ ID_VIEW_TAB_CABINET "Select Cabinet tab"
+ ID_VIEW_TAB_MARQUEE "Select Marquee tab"
+ ID_VIEW_TAB_TITLE "Select Title tab"
+ ID_VIEW_TAB_CONTROL_PANEL "Select Control panel tab"
+ ID_VIEW_TAB_PCB "Select PCB tab"
+ ID_VIEW_TAB_HISTORY "Select History tab"
+ ID_OPTIONS_BG "Set the background image"
+ ID_TOGGLE_TAB_SCREENSHOT "Enable the screenshot tab"
+ ID_TOGGLE_TAB_FLYER "Enable the flyer tab"
+ ID_TOGGLE_TAB_CABINET "Enable the cabinet tab"
+ ID_TOGGLE_TAB_MARQUEE "Enable the marquee tab"
+ ID_TOGGLE_TAB_TITLE "Enable the title tab"
+ ID_TOGGLE_TAB_CONTROL_PANEL "Enable the control panel tab"
+ ID_TOGGLE_TAB_PCB "Enable the PCB tab"
+ ID_TOGGLE_TAB_HISTORY "Enable the history tab"
+ ID_VIEW_FULLSCREEN "Toggle Fullscreen mode"
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ ID_CUSTOMIZE_FIELDS "Customize which columns are used in the game list"
+ ID_GAME_PROPERTIES "Display the properties of the selected item"
+ ID_VIEW_PAGETAB "Show or hide the tabs in the picture area"
+ ID_VIEW_FOLDERS "Show or hide the folder list"
+ ID_VIEW_TOOLBARS "Show or hide the toolbar"
+ ID_VIEW_STATUS "Show or hide the status bar"
+ ID_CONTEXT_FILTERS "Allows filtering out games from a folder"
+ ID_CONTEXT_RENAME_CUSTOM "Rename this folder"
+ ID_CONTEXT_ADD_CUSTOM "Add selected item to custom folder"
+ ID_CONTEXT_REMOVE_CUSTOM "Remove selected item from this folder"
+ ID_GAME_AUDIT "Audit the selected item"
+ ID_CONTEXT_SELECT_RANDOM "Randomly select a game."
+ ID_VIEW_TAB_SCREENSHOT "Select Snapshot tab"
+ ID_VIEW_TAB_FLYER "Select Flyer tab"
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ ID_VIEW_BYGAME "Sort items by game description"
+ ID_VIEW_BYDIRECTORY "Sort items by name"
+ ID_VIEW_BYMANUFACTURER "Sort items by manufacturer"
+ ID_VIEW_BYYEAR "Sort items by year"
+ ID_VIEW_BYTYPE "Sort items by type"
+ ID_VIEW_BYTIMESPLAYED "Sort by number of plays"
+ ID_VIEW_LINEUPICONS "Arranges icons in a grid"
+ ID_UPDATE_GAMELIST "Refresh game list"
+ ID_SORT_ASCENDING "Sort column in ascending (A-Z) order"
+ ID_SORT_DESCENDING "Sort column in descending (Z-A) order"
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ ID_FOLDER_SOURCEPROPERTIES
+ "Display properties for all games in this source file"
+ ID_FOLDER_VECTORPROPERTIES "Display properties for all vector based games"
+ ID_OPTIONS_HISTORY "Set the History file to use"
+ ID_OPTIONS_MAMEINFO "Set the Mameinfo file to use"
+END
+
+#endif // English (USA) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+#include "mamevers.rc" // Version block
+
+
+/////////////////////////////////////////////////////////////////////////////
+#endif // not APSTUDIO_INVOKED
+
diff --git a/docs/release/src/osd/winui/messui.rc b/docs/release/src/osd/winui/messui.rc
new file mode 100644
index 00000000000..1c9157a4777
--- /dev/null
+++ b/docs/release/src/osd/winui/messui.rc
@@ -0,0 +1,1394 @@
+// Microsoft Visual C++ generated resource script.
+//
+#include "resource.h"
+
+// Generated Help ID header file
+#define APSTUDIO_HIDDEN_SYMBOLS
+#include "resource.hm"
+#undef APSTUDIO_HIDDEN_SYMBOLS
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#include "windows.h"
+#include "commctrl.h"
+
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// Englisch (USA) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
+#ifdef _WIN32
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+#pragma code_page(1252)
+#endif //_WIN32
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Menu
+//
+
+IDR_MAIN_MENU MENU DISCARDABLE
+BEGIN
+ POPUP "&File"
+ BEGIN
+ MENUITEM "&Exit", ID_FILE_EXIT
+ END
+ POPUP "&Help"
+ BEGIN
+ MENUITEM "&About MAMEUI", ID_ABOUT
+ END
+END
+
+IDR_UI_MENU MENU DISCARDABLE
+BEGIN
+ POPUP "&File"
+ BEGIN
+ MENUITEM "&Play", ID_FILE_PLAY
+ MENUITEM SEPARATOR
+ MENUITEM "Play and &Record Input...", ID_FILE_PLAY_RECORD
+ MENUITEM "P&layback Input...", ID_FILE_PLAY_BACK
+ MENUITEM SEPARATOR
+ MENUITEM "Play and Record &Wave Output...", ID_FILE_PLAY_RECORD_WAVE
+ MENUITEM SEPARATOR
+ MENUITEM "Play and Record &MNG Output...", ID_FILE_PLAY_RECORD_MNG
+ MENUITEM SEPARATOR
+ MENUITEM "Play and Record &uncompressed AVI Output...",
+ ID_FILE_PLAY_RECORD_AVI
+ MENUITEM SEPARATOR
+ MENUITEM "Loa&d Savestate...", ID_FILE_LOADSTATE
+ MENUITEM SEPARATOR
+
+ MENUITEM "Pr&operties", ID_GAME_PROPERTIES
+ MENUITEM SEPARATOR
+ MENUITEM "&Audit all games", ID_FILE_AUDIT
+ MENUITEM SEPARATOR
+ MENUITEM "E&xit", ID_FILE_EXIT
+ END
+ POPUP "&View"
+ BEGIN
+ MENUITEM "&Toolbar\tAlt+T", ID_VIEW_TOOLBARS
+ MENUITEM "&Status bar\tAlt+S", ID_VIEW_STATUS
+ MENUITEM "Fold&er List\tAlt+D", ID_VIEW_FOLDERS
+ MENUITEM "&Picture Area\tAlt+P", ID_VIEW_PICTURE_AREA
+ MENUITEM "Screenshot Ta&b\tAlt+B", ID_VIEW_PAGETAB
+ MENUITEM SEPARATOR
+ MENUITEM "&Fullscreen\tF11", ID_VIEW_FULLSCREEN
+ MENUITEM SEPARATOR
+ POPUP "S&how Pictures"
+ BEGIN
+ MENUITEM "&Snapshot", ID_TOGGLE_TAB_SCREENSHOT
+ MENUITEM "&Flyer", ID_TOGGLE_TAB_FLYER
+ MENUITEM "&Cabinet", ID_TOGGLE_TAB_CABINET
+ MENUITEM "&Marquee", ID_TOGGLE_TAB_MARQUEE
+ MENUITEM "&Title", ID_TOGGLE_TAB_TITLE
+ MENUITEM "Control &Panel", ID_TOGGLE_TAB_CONTROL_PANEL
+
+ MENUITEM "PC&B", ID_TOGGLE_TAB_PCB
+ MENUITEM "&History", ID_TOGGLE_TAB_HISTORY
+ END
+ MENUITEM SEPARATOR
+ MENUITEM "L&arge Icons", ID_VIEW_LARGE_ICON
+ MENUITEM "S&mall Icons", ID_VIEW_SMALL_ICON
+ MENUITEM "&List", ID_VIEW_LIST_MENU
+ MENUITEM "&Details", ID_VIEW_DETAIL
+ MENUITEM "&Grouped", ID_VIEW_GROUPED
+ MENUITEM SEPARATOR
+ POPUP "Arrange &Icons"
+ BEGIN
+ MENUITEM "by &Name", ID_VIEW_BYGAME
+ MENUITEM "by D&irectory", ID_VIEW_BYDIRECTORY
+ MENUITEM "by &Manufacturer", ID_VIEW_BYMANUFACTURER
+ MENUITEM "by Times &Played", ID_VIEW_BYTIMESPLAYED
+ MENUITEM "by &Type", ID_VIEW_BYTYPE
+ MENUITEM "by &Date", ID_VIEW_BYYEAR
+ END
+ MENUITEM "Line &Up Icons", ID_VIEW_LINEUPICONS
+ MENUITEM SEPARATOR
+ MENUITEM "&Refresh\tF5", ID_UPDATE_GAMELIST
+ MENUITEM "&Custom Filters...\tCtrl+F", ID_CONTEXT_FILTERS
+ MENUITEM "Customi&ze Fields...", ID_CUSTOMIZE_FIELDS
+ END
+ POPUP "&Options"
+ BEGIN
+ MENUITEM "&Interface Options", ID_OPTIONS_INTERFACE
+ MENUITEM "Default Game &Options", ID_OPTIONS_DEFAULTS
+ MENUITEM "&Directories", ID_OPTIONS_DIR
+ MENUITEM SEPARATOR
+ MENUITEM "Game List &Font", ID_OPTIONS_FONT
+ MENUITEM "Game List &Clone Color", ID_OPTIONS_CLONE_COLOR
+ MENUITEM SEPARATOR
+
+ MENUITEM "&Background Image", ID_OPTIONS_BG
+ MENUITEM "&History File", ID_OPTIONS_HISTORY
+ MENUITEM "&Mameinfo File", ID_OPTIONS_MAMEINFO
+ MENUITEM SEPARATOR
+ MENUITEM "&Reset to Default", ID_OPTIONS_RESET_DEFAULTS
+
+ END
+ POPUP "&Help"
+ BEGIN
+ MENUITEM "&Contents\tF1", ID_HELP_CONTENTS
+ MENUITEM "&Troubleshooting", ID_HELP_TROUBLE
+ MENUITEM SEPARATOR
+ MENUITEM "&New Game Changes", ID_HELP_WHATS_NEWUI
+ MENUITEM "&Mame Release Notes", ID_HELP_WHATS_NEW
+ MENUITEM SEPARATOR
+ MENUITEM "&About", ID_HELP_ABOUT
+ END
+END
+
+IDR_CONTEXT_MENU MENU
+BEGIN
+ POPUP "Context Menu"
+ BEGIN
+ MENUITEM "&Play", ID_FILE_PLAY
+ MENUITEM SEPARATOR
+ MENUITEM "Play and &Record Input...", ID_FILE_PLAY_RECORD
+ MENUITEM SEPARATOR
+ MENUITEM "&Add to Custom Folder...", ID_CONTEXT_ADD_CUSTOM
+ MENUITEM "R&emove From This Folder", ID_CONTEXT_REMOVE_CUSTOM
+ MENUITEM "&Custom Filters...", ID_CONTEXT_FILTERS
+ MENUITEM SEPARATOR
+ MENUITEM "&Select Random Game", ID_CONTEXT_SELECT_RANDOM
+ MENUITEM SEPARATOR
+ MENUITEM "Rese&t Playcount", ID_CONTEXT_RESET_PLAYCOUNT
+ MENUITEM "Reset Pla&y Time", ID_CONTEXT_RESET_PLAYTIME
+ MENUITEM SEPARATOR
+ MENUITEM "A&udit", ID_GAME_AUDIT
+ MENUITEM SEPARATOR
+ MENUITEM "Pr&operties", ID_GAME_PROPERTIES
+ MENUITEM "Source propert&ies", ID_FOLDER_SOURCEPROPERTIES
+ MENUITEM "&Vector properties", ID_FOLDER_VECTORPROPERTIES
+ END
+END
+
+IDR_CONTEXT_HEADER MENU
+BEGIN
+ POPUP "Header Context Menu"
+ BEGIN
+ MENUITEM "Sort &Ascending", ID_SORT_ASCENDING
+ MENUITEM "Sort &Descending", ID_SORT_DESCENDING
+ MENUITEM SEPARATOR
+ MENUITEM "Customi&ze Fields...", ID_CUSTOMIZE_FIELDS
+ END
+END
+
+IDR_CONTEXT_TREE MENU
+BEGIN
+ POPUP "Context Menu Tree"
+ BEGIN
+ MENUITEM "&Rename", ID_CONTEXT_RENAME_CUSTOM
+ MENUITEM "&Custom Filters...", ID_CONTEXT_FILTERS
+ MENUITEM SEPARATOR
+ POPUP "&Show Folders"
+ BEGIN
+ MENUITEM "overridden by code", ID_CONTEXT_SHOW_FOLDER_START
+
+ END
+ MENUITEM SEPARATOR
+ MENUITEM "&Audit", ID_FOLDER_AUDIT
+ MENUITEM SEPARATOR
+ MENUITEM "&Properties", ID_FOLDER_PROPERTIES
+ END
+END
+
+IDR_CONTEXT_SCREENSHOT MENU
+BEGIN
+ POPUP "Context Screen Shot"
+ BEGIN
+ MENUITEM "Show Tab &Control", ID_VIEW_PAGETAB
+ MENUITEM SEPARATOR
+ POPUP "S&how Pictures"
+ BEGIN
+ MENUITEM "&Snapshot", ID_TOGGLE_TAB_SCREENSHOT
+ MENUITEM "&Flyer", ID_TOGGLE_TAB_FLYER
+ MENUITEM "&Cabinet", ID_TOGGLE_TAB_CABINET
+ MENUITEM "&Marquee", ID_TOGGLE_TAB_MARQUEE
+ MENUITEM "&Title", ID_TOGGLE_TAB_TITLE
+ MENUITEM "Control &Panel", ID_TOGGLE_TAB_CONTROL_PANEL
+
+ MENUITEM "PC&B", ID_TOGGLE_TAB_PCB
+ MENUITEM "&History", ID_TOGGLE_TAB_HISTORY
+ END
+ MENUITEM SEPARATOR
+ MENUITEM "&Snapshot", ID_VIEW_TAB_SCREENSHOT
+ MENUITEM "&Flyer", ID_VIEW_TAB_FLYER
+ MENUITEM "&Cabinet", ID_VIEW_TAB_CABINET
+ MENUITEM "&Marquee", ID_VIEW_TAB_MARQUEE
+ MENUITEM "&Title", ID_VIEW_TAB_TITLE
+ MENUITEM "Control &Panel", ID_VIEW_TAB_CONTROL_PANEL
+ MENUITEM "PC&B", ID_VIEW_TAB_PCB
+ MENUITEM "&History", ID_VIEW_TAB_HISTORY
+ END
+END
+
+
+
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE MOVEABLE PURE
+BEGIN
+ "resource.h\0"
+END
+
+2 TEXTINCLUDE MOVEABLE PURE
+BEGIN
+ "#define NOWINRES\r\n"
+ "#include ""windows.h""\r\n"
+ "#include ""commctrl.h""\r\n"
+ "\0"
+END
+
+3 TEXTINCLUDE MOVEABLE PURE
+BEGIN
+ "#include ""messvers.rc"" // Version block\r\n"
+ "\r\n"
+ "\0"
+END
+
+#endif // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Icon
+//
+
+// Icon with lowest ID value placed first to ensure application icon
+// remains consistent on all systems.
+IDI_MAMEUI_ICON ICON "res\\messui.ico"
+IDI_WIN_ROMS ICON "res\\win_roms.ico"
+IDI_WIN_NOROMS ICON "res\\win_noro.ico"
+IDI_WIN_UNKNOWN ICON "res\\win_unkn.ico"
+IDI_WIN_CLONE ICON "res\\win_clone.ico"
+IDI_WIN_REDX ICON "res\\win_redx.ico"
+IDI_FOLDER_AVAILABLE ICON "res\\foldavail.ico"
+IDI_FOLDER ICON "res\\folder.ico"
+IDI_FOLDER_MANUFACTURER ICON "res\\foldmanu.ico"
+IDI_FOLDER_OPEN ICON "res\\foldopen.ico"
+IDI_FOLDER_UNAVAILABLE ICON "res\\foldunav.ico"
+IDI_FOLDER_HORIZONTAL ICON "res\\horz.ico"
+IDI_FOLDER_VERTICAL ICON "res\\vert.ico"
+IDI_MANUFACTURER ICON "res\\manufact.ico"
+IDI_FOLDER_YEAR ICON "res\\foldyear.ico"
+IDI_FOLDER_SOURCE ICON "res\\foldsrc.ico"
+IDI_WORKING ICON "res\\working.ico"
+IDI_NONWORKING ICON "res\\nonwork.ico"
+IDI_YEAR ICON "res\\year.ico"
+IDI_KEYBOARD ICON "res\\keyboard.ico"
+IDI_JOYSTICK ICON "res\\joystick.ico"
+IDI_CPU ICON "res\\cpu.ico"
+IDI_SOUND ICON "res\\samples.ico"
+IDI_SOUNDTAB ICON "res\\sound.ico"
+IDI_SOURCE ICON "res\\source.ico"
+IDI_HARDDISK ICON "res\\harddisk.ico"
+IDI_DISPLAY ICON "res\\display.ico"
+IDI_CHECKMARK ICON "res\\checkmark.ico"
+IDI_HEADER_UP ICON "res\\header_up.ico"
+IDI_HEADER_DOWN ICON "res\\header_down.ico"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Dialog
+//
+
+IDD_ABOUT DIALOG DISCARDABLE 0, 0, 296, 129
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "About MAMEUI"
+FONT 8, "MS Shell Dlg"
+BEGIN
+ DEFPUSHBUTTON "&OK",IDOK,200,109,50,14,WS_GROUP
+ CTEXT "Multiple Arcade Machine Emulator",IDC_STATIC,147,7,142,
+ 11,NOT WS_GROUP
+ CTEXT "Version 0",IDC_VERSION,147,18,142,11,NOT WS_GROUP
+ CTEXT "Copyright (C) 1997-2015 The MAME Team",IDC_STATIC,147,
+ 29,142,10,NOT WS_GROUP
+ CTEXT "MAMEUI version by",IDC_STATIC,147,51,142,10,NOT
+ WS_GROUP
+ CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,147,44,142,1
+ CTEXT "Christopher Kirmse and the MAMEUI team",IDC_STATIC,147,
+ 62,142,9,NOT WS_GROUP
+ CTEXT "Additional MAMEUI code by",IDC_STATIC,147,74,142,9
+ CTEXT "Mike Haaland, Andrew Kirmse, Jeff Miller",IDC_STATIC,
+ 147,85,142,9
+ CTEXT "John Hardy IV and Michael Soderstrom",IDC_STATIC,147,96,
+ 142,9
+ CONTROL "",IDC_ABOUT,"Static",SS_BITMAP | SS_SUNKEN,7,7,16,14
+END
+
+IDD_DIRECTX DIALOG DISCARDABLE 0, 0, 236, 69
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "MAMEUI"
+FONT 8, "MS Shell Dlg"
+BEGIN
+ DEFPUSHBUTTON "Go to Microsoft's DirectX Web Page",IDB_WEB_PAGE,48,52,
+ 140,14
+ EDITTEXT IDC_DIRECTX_HELP,7,0,222,48,ES_MULTILINE |
+ ES_AUTOHSCROLL | ES_READONLY
+END
+
+IDD_AUDIT DIALOG DISCARDABLE 0, 0, 283, 188
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "File Audit"
+FONT 8, "MS Shell Dlg"
+BEGIN
+ PUSHBUTTON "&Pause",IDPAUSE,98,168,40,14
+ PUSHBUTTON "&Cancel",IDCANCEL,144,168,40,14
+ GROUPBOX "ROMs",IDC_STATIC,6,4,132,65
+ LTEXT "Correct:",IDC_STATIC,51,28,32,8
+ CONTROL "Progress1",IDC_ROMS_PROGRESS,"msctls_progress32",
+ PBS_SMOOTH | WS_BORDER,14,16,116,8
+ LTEXT "Incorrect:",IDC_STATIC,51,42,32,8
+ LTEXT "Total:",IDC_STATIC,51,56,32,8
+ LTEXT "0",IDC_ROMS_CORRECT,87,28,20,8
+ LTEXT "0",IDC_ROMS_INCORRECT,87,42,20,8
+ LTEXT "0",IDC_ROMS_TOTAL,87,56,20,8
+ GROUPBOX "Samples",IDC_STATIC,145,4,132,65
+ CONTROL "Progress1",IDC_SAMPLES_PROGRESS,"msctls_progress32",
+ PBS_SMOOTH | WS_BORDER,153,16,116,8
+ LTEXT "Correct:",IDC_STATIC,191,28,33,8
+ LTEXT "Incorrect:",IDC_STATIC,191,42,33,8
+ LTEXT "Total:",IDC_STATIC,191,56,33,8
+ LTEXT "0",IDC_SAMPLES_CORRECT,227,28,20,8
+ LTEXT "0",IDC_SAMPLES_INCORRECT,227,42,20,8
+ LTEXT "0",IDC_SAMPLES_TOTAL,227,56,20,8
+ GROUPBOX "Details",IDC_STATIC,6,72,271,90
+ EDITTEXT IDC_AUDIT_DETAILS,12,82,259,74,ES_MULTILINE |
+ ES_AUTOVSCROLL | ES_READONLY | WS_VSCROLL | WS_HSCROLL |
+ NOT WS_TABSTOP
+END
+
+IDD_DIRECTORIES DIALOG DISCARDABLE 0, 0, 230, 107
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Directories"
+FONT 8, "MS Shell Dlg"
+BEGIN
+ LTEXT "Show directories for:",IDC_STATIC,6,6,67,10
+ COMBOBOX IDC_DIR_COMBO,6,18,160,79,CBS_DROPDOWNLIST | CBS_SORT |
+ WS_VSCROLL | WS_TABSTOP
+ LTEXT "Directories:",IDC_STATIC,6,38,38,10
+ CONTROL "List1",IDC_DIR_LIST,"SysListView32",LVS_REPORT |
+ LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_EDITLABELS |
+ LVS_ALIGNLEFT | LVS_NOCOLUMNHEADER | WS_BORDER |
+ WS_TABSTOP,6,50,160,51
+ DEFPUSHBUTTON "OK",IDOK,173,8,50,14
+ PUSHBUTTON "Cancel",IDCANCEL,173,26,50,14
+ PUSHBUTTON "Browse...",IDC_DIR_BROWSE,173,50,50,14
+ PUSHBUTTON "Insert",IDC_DIR_INSERT,173,68,50,14
+ PUSHBUTTON "Delete",IDC_DIR_DELETE,173,87,50,14
+END
+
+IDD_COLUMNS DIALOG DISCARDABLE 0, 0, 302, 145
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Customize Fields"
+FONT 8, "MS Shell Dlg"
+BEGIN
+ LTEXT "Available fields:",IDC_STATIC,6,6,80,10,SS_CENTERIMAGE
+ CONTROL "List1",IDC_LISTAVAILABLECOLUMNS,"SysListView32",
+ LVS_LIST | LVS_SINGLESEL | LVS_NOCOLUMNHEADER |
+ LVS_NOSORTHEADER | WS_BORDER | WS_HSCROLL | WS_TABSTOP,6,
+ 18,90,100
+ PUSHBUTTON "Add ->",IDC_BUTTONADD,102,18,46,14,WS_DISABLED
+ PUSHBUTTON "<- Remove",IDC_BUTTONREMOVE,102,36,46,14,WS_DISABLED
+ LTEXT "Show these fields in this order:",IDC_STATIC,154,6,96,
+ 10,SS_CENTERIMAGE
+ CONTROL "List1",IDC_LISTSHOWCOLUMNS,"SysListView32",LVS_LIST |
+ LVS_SINGLESEL | LVS_NOCOLUMNHEADER | LVS_NOSORTHEADER |
+ WS_BORDER | WS_HSCROLL | WS_TABSTOP,154,18,90,100
+ PUSHBUTTON "Move Up",IDC_BUTTONMOVEUP,250,18,46,14,WS_DISABLED
+ PUSHBUTTON "Move Down",IDC_BUTTONMOVEDOWN,250,36,46,14,WS_DISABLED
+ DEFPUSHBUTTON "OK",IDOK,105,124,44,14
+ PUSHBUTTON "Cancel",IDCANCEL,155,124,44,14
+END
+
+IDD_PROP_CONTROLLER DIALOGEX 0, 0, 220, 240
+STYLE DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
+CAPTION "Controller Mapping"
+FONT 8, "MS Shell Dlg"
+BEGIN
+ ICON IDI_JOYSTICK,IDC_STATIC,20,10,20,20
+ LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,
+ SS_NOPREFIX
+ GROUPBOX "Paddle device",IDC_STATIC,4,40,102,28
+ COMBOBOX IDC_PADDLE,10,50,91,62,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP,0,HIDC_PADDLE
+ GROUPBOX "ADStick device",IDC_STATIC,4,71,102,28
+ COMBOBOX IDC_ADSTICK,10,80,91,62,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP,0,HIDC_ADSTICK
+ GROUPBOX "Pedal device",IDC_STATIC,4,102,102,28
+ COMBOBOX IDC_PEDAL,10,112,91,62,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP,0,HIDC_PEDAL
+ GROUPBOX "Mouse device",IDC_STATIC,4,133,102,28
+ COMBOBOX IDC_MOUSE,10,142,90,62,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP,0,HIDC_MOUSE
+ GROUPBOX "Dial device",IDC_STATIC,113,40,102,28
+ COMBOBOX IDC_DIAL,119,50,90,62,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP,0,HIDC_DIAL
+ GROUPBOX "Trackball device",IDC_STATIC,113,71,102,28
+ COMBOBOX IDC_TRACKBALL,119,80,90,62,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP,0,HIDC_TRACKBALL
+ GROUPBOX "Lightgun device",IDC_STATIC,113,102,102,28
+ COMBOBOX IDC_LIGHTGUNDEVICE,119,112,90,62,CBS_DROPDOWNLIST |
+ WS_VSCROLL | WS_TABSTOP,0,HIDC_LIGHTGUNDEVICE
+ GROUPBOX "Positional device",IDC_STATIC,113,133,102,28
+ COMBOBOX IDC_POSITIONAL,119,142,90,62,CBS_DROPDOWNLIST |
+ WS_VSCROLL | WS_TABSTOP,0,HIDC_POSITIONAL
+ PUSHBUTTON "Reset",IDC_PROP_RESET,4,222,97,14,0,0,HIDC_PROP_RESET
+ PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,118,222,97,14,
+ 0,0,HIDC_USE_DEFAULT
+END
+
+IDD_PROP_SCREEN DIALOGEX 0, 0, 220, 240
+STYLE WS_CHILD | WS_CAPTION
+CAPTION "Screen"
+FONT 8, "MS Shell Dlg"
+BEGIN
+ ICON IDI_DISPLAY,IDC_STATIC,20,10,21,20
+ LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,SS_NOPREFIX
+
+ GROUPBOX "Number of screens",IDC_STATIC,4,40,103,24
+ CONTROL "GammaSlider",IDC_NUMSCREENS,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,10,50,75,10,0,HIDC_NUMSCREENS
+ RTEXT "1",IDC_NUMSCREENSDISP,84,49,14,10,SS_CENTERIMAGE | NOT WS_GROUP
+
+ GROUPBOX "Screen",IDC_STATIC,4,66,103,29
+ COMBOBOX IDC_SCREEN,10,76,91,64,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_SCREEN
+
+ GROUPBOX "",IDC_STATIC,4,97,103,28
+ CONTROL "Autoselect aspect",IDC_ASPECT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,97,73,10,0,HIDC_ASPECT
+ LTEXT "Aspect ratio",IDC_ASPECTRATIOTEXT,17,108,40,11,SS_CENTERIMAGE | NOT WS_GROUP
+ EDITTEXT IDC_ASPECTRATION,60,108,14,12,ES_RIGHT | ES_AUTOHSCROLL | ES_NUMBER,0,HIDC_ASPECTRATION
+ LTEXT ":",IDC_STATIC,76,108,8,10,SS_CENTERIMAGE | NOT WS_GROUP
+ EDITTEXT IDC_ASPECTRATIOD,80,108,14,12,ES_RIGHT | ES_AUTOHSCROLL | ES_NUMBER,0,HIDC_ASPECTRATIOD
+
+ GROUPBOX "View",IDC_STATIC,4,128,103,28
+ COMBOBOX IDC_VIEW,10,137,91,64,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_VIEW
+
+ GROUPBOX "Screennumber",IDC_SCREENSELECTTEXT,113,40,102,28
+ COMBOBOX IDC_SCREENSELECT,119,50,90,64,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_SCREENSELECT
+
+ GROUPBOX "Resolution",IDC_STATIC,113,71,102,76,WS_GROUP
+ GROUPBOX "Size",IDC_STATIC,119,81,90,28,WS_GROUP
+ COMBOBOX IDC_SIZES,126,91,77,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_SIZES
+
+ GROUPBOX "Refresh",IDC_REFRESHTEXT,119,112,90,28,WS_GROUP
+ COMBOBOX IDC_REFRESH,126,121,77,76,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_REFRESH
+ CONTROL "Switch resolutions to fit",IDC_SWITCHRES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,119,151,93,10,0,HIDC_SWITCHRES
+
+ PUSHBUTTON "Reset",IDC_PROP_RESET,4,222,97,14,0,0,HIDC_PROP_RESET
+ PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,118,222,97,14,0,0,HIDC_USE_DEFAULT
+END
+
+IDD_PROP_GAME DIALOG DISCARDABLE 0, 0, 220, 276
+STYLE WS_CHILD | WS_CAPTION
+CAPTION "General"
+FONT 8, "MS Shell Dlg"
+BEGIN
+ ICON IDI_MAMEUI_ICON,IDC_GAME_ICON,20,10,21,20
+ LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,
+ SS_NOPREFIX
+ CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,18,38,178,1
+ LTEXT "Manufactured:",IDC_STATIC,18,43,47,8
+ LTEXT "Static",IDC_PROP_MANUFACTURED,65,43,155,9,SS_NOPREFIX
+ LTEXT "Status:",IDC_STATIC,18,52,47,8
+ LTEXT "Static",IDC_PROP_STATUS,65,52,155,32
+ CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,18,85,178,1
+ LTEXT "CPU:",IDC_STATIC,18,90,47,8
+ LTEXT "Static\nStatic\nStatic\nStatic\nStatic",IDC_PROP_CPU,65,90,155,40
+ CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,18,130,178,1
+ LTEXT "Sound:",IDC_STATIC,18,135,47,8
+ LTEXT "Static\nStatic\nStatic\nStatic\nStatic",IDC_PROP_SOUND,65,135,155,45
+ CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,18,181,178,1
+ LTEXT "Screen:",IDC_STATIC,18,186,47,8
+ LTEXT "Static\nStatic\nStatic",IDC_PROP_SCREEN,65,186,155,27
+ LTEXT "Colors:",IDC_STATIC,18,223,47,8
+ LTEXT "Static",IDC_PROP_COLORS,65,223,155,8
+ LTEXT "Clone of:",IDC_PROP_CLONEOF_TEXT,18,243,50,8
+ LTEXT "Static",IDC_PROP_CLONEOF,65,243,155,28
+ LTEXT "Source:",IDC_STATIC,18,233,47,8
+ LTEXT "Static",IDC_PROP_SOURCE,65,233,155,8
+ CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,18,218,178,1
+END
+
+IDD_PROP_AUDIT DIALOG DISCARDABLE 0, 0, 220, 240
+STYLE WS_CHILD | WS_CAPTION
+CAPTION "Audit"
+FONT 8, "MS Shell Dlg"
+BEGIN
+ ICON IDI_CHECKMARK,IDC_STATIC,20,10,20,20
+ LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,
+ SS_NOPREFIX
+ LTEXT "ROM check:",IDC_STATIC,10,40,50,8
+ LTEXT "Checking...",IDC_PROP_ROMS,66,40,139,8
+ LTEXT "Sample check:",IDC_STATIC,10,52,50,8
+ LTEXT "Checking...",IDC_PROP_SAMPLES,66,52,139,8
+ GROUPBOX "Details",IDC_STATIC,4,64,211,171
+ EDITTEXT IDC_AUDIT_DETAILS_PROP,10,74,199,155,ES_MULTILINE |
+ ES_AUTOVSCROLL | ES_READONLY | WS_VSCROLL | WS_HSCROLL |
+ NOT WS_TABSTOP
+END
+
+IDD_PROP_DISPLAY DIALOGEX 0, 0, 220, 240
+STYLE WS_CHILD | WS_CAPTION
+CAPTION "Display"
+FONT 8, "MS Shell Dlg"
+BEGIN
+ ICON IDI_DISPLAY,IDC_STATIC,20,10,20,20
+ LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,169,25,SS_NOPREFIX
+
+ CONTROL "Run in a window",IDC_WINDOWED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,40,69,10,0,HIDC_WINDOWED
+ CONTROL "Start out maximized",IDC_MAXIMIZE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,52,74,10,0,HIDC_MAXIMIZE
+ CONTROL "Enforce aspect ratio",IDC_KEEPASPECT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,64,77,10,0,HIDC_KEEPASPECT
+ CONTROL "Throttle",IDC_THROTTLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,76,39,10,0,HIDC_THROTTLE
+
+ GROUPBOX "Bitmap prescaling",IDC_PRESCALETEXT,4,89,103,24
+ CONTROL "GammaSlider",IDC_PRESCALE,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,10,99,71,10,0,HIDC_PRESCALE
+ RTEXT "1.00",IDC_PRESCALEDISP,84,98,14,11,SS_CENTERIMAGE | NOT WS_GROUP
+
+ GROUPBOX "Gamma Correction",IDC_STATIC,4,115,103,24
+ CONTROL "GammaSlider",IDC_GAMMA,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,10,125,71,10,0,HIDC_GAMMA
+ RTEXT "2.00",IDC_GAMMADISP,84,124,14,10,SS_CENTERIMAGE | NOT WS_GROUP
+
+ GROUPBOX "Brightness Correction",IDC_STATIC,4,141,103,24
+ CONTROL "GammaSlider",IDC_BRIGHTCORRECT,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,10,151,71,10,0,HIDC_BRIGHTCORRECT
+ RTEXT "1.00",IDC_BRIGHTCORRECTDISP,84,150,14,10,SS_CENTERIMAGE | NOT WS_GROUP
+
+ GROUPBOX "Contrast Correction",IDC_STATIC,4,167,103,24
+ CONTROL "GammaSlider",IDC_CONTRAST,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,10,176,71,10,0,HIDC_CONTRAST
+ RTEXT "1.00",IDC_CONTRASTDISP,84,175,14,11,SS_CENTERIMAGE | NOT WS_GROUP
+
+ GROUPBOX "Pause Brightness",IDC_STATIC,4,193,103,24
+ CONTROL "Slider1",IDC_PAUSEBRIGHT,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,10,203,71,10,0,HIDC_PAUSEBRIGHT
+ RTEXT "0.65",IDC_PAUSEBRIGHTDISP,84,202,14,11,SS_CENTERIMAGE | NOT WS_GROUP
+
+ GROUPBOX "Video mode",IDC_STATIC,113,40,102,28
+ COMBOBOX IDC_VIDEO_MODE,119,50,90,50,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP,0,HIDC_VIDEO_MODE
+
+ GROUPBOX "Rotation",IDC_STATIC,113,71,102,55
+ COMBOBOX IDC_ROTATE,119,81,90,57,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_ROTATE
+ CONTROL "Flip screen upside-down",IDC_FLIPY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,119,98,91,10,0,HIDC_FLIPY
+ CONTROL "Flip screen left-right",IDC_FLIPX,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,119,110,77,10,0,HIDC_FLIPX
+
+ GROUPBOX "Direct3D",IDC_STATIC,113,128,102,57
+ CONTROL "Use Bilinear filtering",IDC_D3D_FILTER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,119,138,85,10,0,HIDC_D3D_FILTER
+
+ GROUPBOX "DirectDraw",IDC_STATIC,113,187,102,26
+ CONTROL "Stretch using hardware",IDC_HWSTRETCH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,119,197,85,10,0,HIDC_HWSTRETCH
+
+ PUSHBUTTON "Reset",IDC_PROP_RESET,4,222,97,14,0,0,HIDC_PROP_RESET
+ PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,118,222,97,14,0,0,HIDC_USE_DEFAULT
+END
+
+IDD_PROP_SOUND DIALOGEX 0, 0, 220, 240
+STYLE WS_CHILD | WS_CAPTION
+CAPTION "Sound"
+FONT 8, "MS Shell Dlg"
+BEGIN
+ ICON IDI_SOUNDTAB,IDC_STATIC,20,10,20,20
+ LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,SS_NOPREFIX
+
+ CONTROL "Use samples",IDC_SAMPLES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,40,55,10,0,HIDC_SAMPLES
+
+ GROUPBOX "Sound mode",IDC_SOUNDTEXT,4,53,100,28
+ COMBOBOX IDC_SOUND_MODE,10,63,88,60,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0
+
+ GROUPBOX "Sample rate",IDC_RATETEXT,4,84,100,28
+ COMBOBOX IDC_SAMPLERATE,10,94,88,60,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_SAMPLERATE
+
+ GROUPBOX "Volume attenuation",IDC_STATIC,4,115,100,28
+ CONTROL "Slider1",IDC_VOLUME,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,10,127,68,10,0,HIDC_VOLUME
+ RTEXT "0dB",IDC_VOLUMEDISP,76,125,20,10,SS_CENTERIMAGE
+
+ GROUPBOX "Audio latency",IDC_AUDIO_LATENCY_TEXT,4,146,100,28
+ CONTROL "Slider1",IDC_AUDIO_LATENCY,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,10,158,68,10,0,HIDC_AUDIO_LATENCY
+ RTEXT "1/5",IDC_AUDIO_LATENCY_DISP,76,156,20,10,SS_CENTERIMAGE
+
+ PUSHBUTTON "Reset",IDC_PROP_RESET,4,222,97,14,0,0,HIDC_PROP_RESET
+ PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,118,222,97,14,0,0,HIDC_USE_DEFAULT
+END
+
+IDD_PROP_ADVANCED DIALOGEX 0, 0, 220, 255
+STYLE DS_FIXEDSYS | WS_CHILD | WS_CAPTION
+CAPTION "Advanced"
+FONT 8, "MS Shell Dlg"
+BEGIN
+ ICON IDI_DISPLAY,IDC_STATIC,20,10,20,20
+ LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,SS_NOPREFIX
+
+ CONTROL "Triple buffering",IDC_TRIPLE_BUFFER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,40,93,10,0,HIDC_TRIPLE_BUFFER
+ CONTROL "Sync to monitor refresh",IDC_SYNCREFRESH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,52,93,10,0,HIDC_SYNCREFRESH
+ CONTROL "Wait for vertical sync",IDC_WAITVSYNC,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,64,93,10,0,HIDC_WAITVSYNC
+ CONTROL "Refresh speed",IDC_REFRESHSPEED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,76,93,10,0,HIDC_REFRESHSPEED
+
+ GROUPBOX "Frame skipping",IDC_STATIC,4,104,103,42
+ CONTROL "Automatic",IDC_AUTOFRAMESKIP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,114,77,10,0,HIDC_AUTOFRAMESKIP
+ COMBOBOX IDC_FRAMESKIP,10,127,91,88,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_FRAMESKIP
+
+ GROUPBOX "Full screen gamma",IDC_FSGAMMATEXT,113,40,102,24
+ CONTROL "Slider1",IDC_FSGAMMA,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,119,50,71,10,0,HIDC_FSGAMMA
+ RTEXT "2.00",IDC_FSGAMMADISP,193,49,16,10,SS_CENTERIMAGE | NOT WS_GROUP
+
+ GROUPBOX "Full screen brightness",IDC_FSBRIGHTNESSTEXT,113,67,102,24
+ CONTROL "Slider1",IDC_FSBRIGHTNESS,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,119,77,71,10,0,HIDC_FSBRIGHTNESS
+ RTEXT "2.00",IDC_FSBRIGHTNESSDISP,193,76,16,10,SS_CENTERIMAGE | NOT WS_GROUP
+
+ GROUPBOX "Full screen contrast",IDC_FSCONTRASTTEXT,113,94,102,24
+ CONTROL "Slider1",IDC_FSCONTRAST,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,119,104,71,10,0,HIDC_FSCONTRAST
+ RTEXT "2.00",IDC_FSCONTRASTDISP,193,103,16,11,SS_CENTERIMAGE | NOT WS_GROUP
+
+ GROUPBOX "Seconds to run",IDC_SECONDSTORUNTEXT,113,122,102,24
+ CONTROL "",IDC_SECONDSTORUN,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,119,132,71,10,0,HIDC_SECONDSTORUN
+ RTEXT "60",IDC_SECONDSTORUNDISP,193,130,16,11,SS_CENTERIMAGE | NOT WS_GROUP
+
+ GROUPBOX "Emulation speed",IDC_SPEEDTEXT,4,155,211,24
+ CONTROL "Slider1",IDC_SPEED,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,12,165,180,10,0,HIDC_SPEED
+ RTEXT "1.00",IDC_SPEEDDISP,191,164,20,11,SS_CENTERIMAGE | NOT WS_GROUP
+
+ GROUPBOX "Effect",IDC_STATIC,4,182,211,50
+ EDITTEXT IDC_EFFECT,12,192,200,14,ES_AUTOHSCROLL | WS_DISABLED
+ PUSHBUTTON "Select Effect",IDC_SELECT_EFFECT,12,211,60,14,0,0,HIDC_SELECT_EFFECT
+ PUSHBUTTON "Reset Effect",IDC_RESET_EFFECT,152,211,60,14,0,0,HIDC_RESET_EFFECT
+
+ PUSHBUTTON "Reset",IDC_PROP_RESET,4,238,97,14,0,0,HIDC_PROP_RESET
+ PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,120,238,97,14,0,0,HIDC_USE_DEFAULT
+END
+
+IDD_PROP_DEBUG DIALOGEX 0, 0, 220, 255
+STYLE DS_FIXEDSYS | WS_CHILD | WS_CAPTION
+CAPTION "Debug"
+FONT 8, "MS Shell Dlg"
+BEGIN
+ ICON IDI_MANUFACTURER,IDC_STATIC,20,10,20,20
+ LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,SS_NOPREFIX
+
+ CONTROL "Output log to Windows Debugger",IDC_OSLOG,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,40,124,10,0,HIDC_OSLOG
+ CONTROL "Output log to Logfile",IDC_LOG,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,52,93,10,0,HIDC_LOG
+ CONTROL "Output diagnostic information",IDC_VERBOSE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,64,111,10,0,HIDC_VERBOSE
+ CONTROL "Update Main window during paused emulation",IDC_UPDATEINPAUSE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,76,171,10,0,HIDC_UPDATEINPAUSE
+ CONTROL "Activate Integrated Debugger",IDC_DEBUG,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,88,118,10,0,HIDC_DEBUG
+
+ GROUPBOX "Debugscript",IDC_STATIC,6,104,211,50
+ EDITTEXT IDC_DEBUGSCRIPT,14,114,200,14,ES_AUTOHSCROLL | WS_DISABLED
+ PUSHBUTTON "Select Debugscript",IDC_SELECT_DEBUGSCRIPT,14,133,67,14,0,0,HIDC_SELECT_DEBUGSCRIPT
+ PUSHBUTTON "Reset Debugscript",IDC_RESET_DEBUGSCRIPT,149,133,65,14,0,0,HIDC_RESET_DEBUGSCRIPT
+
+ PUSHBUTTON "Reset",IDC_PROP_RESET,4,238,97,14,0,0,HIDC_PROP_RESET
+ PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,120,238,97,14,0,0,HIDC_USE_DEFAULT
+END
+
+IDD_PROP_INPUT DIALOGEX 0, 0, 220, 240
+STYLE DS_FIXEDSYS | WS_CHILD | WS_CAPTION
+CAPTION "Controllers"
+FONT 8, "MS Shell Dlg"
+BEGIN
+ ICON IDI_JOYSTICK,IDC_STATIC,20,10,20,20
+ LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,
+ SS_NOPREFIX
+ CONTROL "Enable mouse input",IDC_USE_MOUSE,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,10,40,86,10,0,
+ HIDC_USE_MOUSE
+ CONTROL "Enable steadykey support",IDC_STEADYKEY,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,10,52,95,10,0,
+ HIDC_STEADYKEY
+ GROUPBOX "",IDC_STATIC,4,64,103,74
+ CONTROL "Enable joystick input",IDC_JOYSTICK,"Button",
+ BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,10,64,78,10,0,
+ HIDC_JOYSTICK
+ GROUPBOX "Joystick deadzone",IDC_JDZTEXT,10,76,91,28
+ CONTROL "IntensitySlider",IDC_JDZ,"msctls_trackbar32",TBS_BOTH |
+ TBS_NOTICKS | WS_TABSTOP,15,88,60,10,0,HIDC_JDZ
+ RTEXT "0.3",IDC_JDZDISP,76,87,16,11,SS_CENTERIMAGE | NOT
+ WS_GROUP
+ GROUPBOX "Default input layout",IDC_STATIC,113,40,102,28
+ COMBOBOX IDC_DEFAULT_INPUT,119,50,90,53,CBS_DROPDOWNLIST |
+ WS_VSCROLL | WS_TABSTOP,0,HIDC_DEFAULT_INPUT
+ GROUPBOX "",IDC_STATIC,113,71,102,66
+ CONTROL "Enable lightgun input",IDC_LIGHTGUN,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,119,71,80,10,0,
+ HIDC_LIGHTGUN
+ CONTROL "Offscreen shots reload",IDC_RELOAD,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,119,83,86,10,0,HIDC_RELOAD
+ CONTROL "Dual lightguns",IDC_DUAL_LIGHTGUN,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,119,96,86,10,0,
+ HIDC_DUAL_LIGHTGUN
+ CONTROL "Multiple keyboards",IDC_MULTIKEYBOARD,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,119,109,75,10,0,
+ HIDC_MULTIKEYBOARD
+ CONTROL "Multiple mice",IDC_MULTIMOUSE,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,119,122,56,10,0,HIDC_MULTIMOUSE
+ GROUPBOX "Joystick saturation",IDC_JSATTEXT,10,106,91,28
+ CONTROL "IntensitySlider",IDC_JSAT,"msctls_trackbar32",TBS_BOTH |
+ TBS_NOTICKS | WS_TABSTOP,16,118,60,10,0,HIDC_JSAT
+ RTEXT "0.85",IDC_JSATDISP,76,116,16,11,SS_CENTERIMAGE | NOT
+ WS_GROUP
+ PUSHBUTTON "Reset",IDC_PROP_RESET,4,222,97,14,0,0,HIDC_PROP_RESET
+ PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,118,222,97,14,
+ 0,0,HIDC_USE_DEFAULT
+ GROUPBOX "Joystickmap",IDC_STATIC,4,143,211,50
+ EDITTEXT IDC_JOYSTICKMAP,12,153,200,14,ES_AUTOHSCROLL |
+ WS_DISABLED
+ PUSHBUTTON "Select Joystickmap",IDC_SELECT_JOYSTICKMAP,12,172,67,14,
+ 0,0,HIDC_SELECT_JOYSTICKMAP
+ PUSHBUTTON "Reset Joystickmap",IDC_RESET_JOYSTICKMAP,147,172,65,14,
+ 0,0,HIDC_RESET_JOYSTICKMAP
+END
+
+IDD_PROP_MISC DIALOGEX 0, 0, 220, 240
+STYLE DS_FIXEDSYS | WS_CHILD | WS_CAPTION
+CAPTION "Miscellaneous"
+FONT 8, "MS Shell Dlg"
+BEGIN
+ ICON IDI_MAMEUI_ICON,IDC_STATIC,20,10,20,20
+ LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,
+ SS_NOPREFIX
+ CONTROL "Enable cheats",IDC_CHEAT,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,10,40,86,10,0,HIDC_CHEAT
+ CONTROL "Sleep when possible",IDC_SLEEP,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,10,52,86,10,0,HIDC_SLEEP
+
+ CONTROL "Skip game info",IDC_SKIP_GAME_INFO,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,10,64,96,10,0,
+ HIDC_SKIP_GAME_INFO
+ CONTROL "Save game state on exit",IDC_ENABLE_AUTOSAVE,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,10,76,96,10,0,
+ HIDC_ENABLE_AUTOSAVE
+// CONTROL "Multi-threaded rendering",IDC_MULTITHREAD_RENDERING,
+// "Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,88,96,10,0,
+// HIDC_MULTITHREAD_RENDERING
+ CONTROL "Coin lockout",IDC_COINLOCKOUT,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,10,100,96,10,0,HIDC_COINLOCKOUT
+ GROUPBOX "Thread Priority",IDC_HIGH_PRIORITY_TEXT,7,112,103,34
+ CONTROL "Slider1",IDC_HIGH_PRIORITY,"msctls_trackbar32",TBS_BOTH |
+ TBS_NOTICKS | WS_TABSTOP,13,122,75,10,0,
+ HIDC_HIGH_PRIORITY
+ LTEXT "idle",IDC_STATIC,17,132,12,8
+ RTEXT "-15",IDC_HIGH_PRIORITYTXT,87,122,14,10,SS_CENTERIMAGE
+ RTEXT "real-time",IDC_STATIC,57,134,28,8
+ GROUPBOX "Snapshot view",IDC_STATIC,7,148,103,28
+ COMBOBOX IDC_SNAPVIEW,13,158,90,60,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP,0,HIDC_SNAPVIEW
+ GROUPBOX "Artwork options",IDC_STATIC,113,40,102,85
+ CONTROL "Backdrops",IDC_BACKDROPS,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,119,50,86,10,0,HIDC_BACKDROPS
+ CONTROL "Bezels",IDC_BEZELS,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,119,62,86,10,0,HIDC_BEZELS
+ CONTROL "Overlays",IDC_OVERLAYS,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,119,74,84,10,0,HIDC_OVERLAYS
+ CONTROL "CPanels",IDC_CPANELS,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,119,86,84,10,0
+ CONTROL "Marquees",IDC_MARQUEES,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,119,98,84,10,0
+ CONTROL "Crop artwork",IDC_ARTWORK_CROP,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,119,110,53,10,0,HIDC_ARTWORK_CROP
+ GROUPBOX "BIOS",IDC_STATIC,113,128,102,28
+ COMBOBOX IDC_BIOS,119,138,90,60,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP,0,HIDC_BIOS
+ GROUPBOX "",IDC_STATIC,7,178,208,28
+ CONTROL "Autoselect snapshot size",IDC_SNAPSIZE,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,13,178,95,10,0,
+ HIDC_SNAPSIZE
+ LTEXT "Snapshotsize",IDC_SNAPSIZETEXT,11,189,44,11,
+ SS_CENTERIMAGE | NOT WS_GROUP
+ EDITTEXT IDC_SNAPSIZEWIDTH,122,187,32,12,ES_RIGHT |
+ ES_AUTOHSCROLL | ES_NUMBER,0,HIDC_SNAPSIZEWIDTH
+ EDITTEXT IDC_SNAPSIZEHEIGHT,172,187,32,12,ES_RIGHT |
+ ES_AUTOHSCROLL | ES_NUMBER,0,HIDC_SNAPSIZEHEIGHT
+ LTEXT "x",IDC_SNAPSIZEX,162,189,8,8
+ PUSHBUTTON "Reset",IDC_PROP_RESET,4,222,97,14,0,0,HIDC_PROP_RESET
+ PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,118,222,97,14,
+ 0,0,HIDC_USE_DEFAULT
+END
+
+IDD_PROP_VECTOR DIALOGEX 0, 0, 220, 240
+STYLE WS_CHILD | WS_CAPTION
+CAPTION "Vector"
+FONT 8, "MS Shell Dlg"
+BEGIN
+ ICON IDI_MAMEUI_ICON,IDC_STATIC,20,10,20,20
+ LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,
+ SS_NOPREFIX
+// CONTROL "Draw antialiased vectors",IDC_ANTIALIAS,"Button",
+// BS_AUTOCHECKBOX | WS_TABSTOP,10,40,92,10,0,
+// HIDC_ANTIALIAS
+ GROUPBOX "Beam width",IDC_BEAMTEXT,60,53,100,28
+ CONTROL "BeamSlider",IDC_BEAM,"msctls_trackbar32",TBS_BOTH |
+ TBS_NOTICKS | WS_TABSTOP,66,65,64,10,0,HIDC_BEAM
+ RTEXT "16.00",IDC_BEAMDISP,132,64,20,11,SS_CENTERIMAGE
+ GROUPBOX "Flicker",IDC_FLICKERTEXT,60,84,100,28
+ CONTROL "FlickerSlider",IDC_FLICKER,"msctls_trackbar32",TBS_BOTH |
+ TBS_NOTICKS | WS_TABSTOP,66,96,64,10,0,HIDC_FLICKER
+ RTEXT "100.00",IDC_FLICKERDISP,128,95,24,11,SS_CENTERIMAGE |
+ NOT WS_GROUP
+ PUSHBUTTON "Reset",IDC_PROP_RESET,4,222,97,14,0,0,HIDC_PROP_RESET
+ PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,118,222,97,14,
+ 0,0,HIDC_USE_DEFAULT
+END
+
+IDD_MAIN DIALOGEX 0, 0, 364, 206
+STYLE DS_3DLOOK | DS_NOFAILCREATE | WS_MINIMIZEBOX | WS_MAXIMIZEBOX |
+ WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
+EXSTYLE WS_EX_CONTROLPARENT
+CAPTION "MAMEUI - overwritten at runtime"
+CLASS "MainClass"
+FONT 8, "MS Shell Dlg"
+BEGIN
+ CONTROL "",IDC_DIVIDER,"Static",SS_ETCHEDHORZ,0,5,304,1
+ CONTROL "Tree1",IDC_TREE,"SysTreeView32",TVS_HASBUTTONS |
+ TVS_HASLINES | TVS_LINESATROOT | TVS_EDITLABELS |
+ TVS_SHOWSELALWAYS | TVS_FULLROWSELECT | WS_BORDER |
+ WS_TABSTOP,5,28,48,172
+ CONTROL "List1",IDC_LIST,"SysListView32",LVS_REPORT |
+ LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_AUTOARRANGE |
+ LVS_SHAREIMAGELISTS |
+ LVS_OWNERDRAWFIXED | WS_BORDER | WS_TABSTOP,65,28,42,172
+ GROUPBOX "",IDC_SPLITTER,55,28,8,172,BS_NOTIFY | NOT WS_VISIBLE
+ GROUPBOX "",IDC_SPLITTER2,109,28,8,172,BS_NOTIFY | NOT WS_VISIBLE
+ CONTROL "",IDC_SSFRAME,"Static",SS_ETCHEDFRAME | SS_NOTIFY,121,
+ 11,181,194
+ CONTROL "",IDC_SSTAB,"SysTabControl32",TCS_HOTTRACK,121,0,181,18
+ CONTROL "",IDC_SSPICTURE,"Static",SS_BITMAP | NOT WS_VISIBLE,141,
+ 18,141,127
+ EDITTEXT IDC_HISTORY,129,150,167,49,ES_MULTILINE | ES_READONLY | ES_OEMCONVERT |
+ NOT WS_BORDER | WS_VSCROLL | NOT WS_TABSTOP,0,
+ HIDC_HISTORY
+END
+
+IDD_FILTERS DIALOGEX 0, 0, 190, 182
+STYLE DS_MODALFRAME | DS_CENTER | DS_3DLOOK | WS_POPUP | WS_CAPTION |
+ WS_SYSMENU
+EXSTYLE WS_EX_CONTEXTHELP
+CAPTION "Game Filters"
+FONT 8, "MS Shell Dlg"
+BEGIN
+ GROUPBOX "Game filters",IDC_STATIC,6,4,178,85
+ CONTROL "&Vector Graphics",IDC_FILTER_VECTOR,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,14,16,70,10,0,
+ HIDC_FILTER_VECTOR
+ CONTROL "C&lones",IDC_FILTER_CLONES,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,14,30,41,10,0,HIDC_FILTER_CLONES
+ CONTROL "Non-Wor&king",IDC_FILTER_NONWORKING,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,14,44,61,10,0,
+ HIDC_FILTER_NONWORKING
+ CONTROL "&Horizontal",IDC_FILTER_HORIZONTAL,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,14,58,57,10,0,
+ HIDC_FILTER_HORIZONTAL
+ CONTROL "&Unavailable",IDC_FILTER_UNAVAILABLE,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,14,72,57,10,0,
+ HIDC_FILTER_UNAVAILABLE
+ CONTROL "&Raster Graphics",IDC_FILTER_RASTER,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,100,16,70,10,0,
+ HIDC_FILTER_RASTER
+ CONTROL "Ori&ginals",IDC_FILTER_ORIGINALS,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,100,30,47,10,0,
+ HIDC_FILTER_ORIGINALS
+ CONTROL "&Working",IDC_FILTER_WORKING,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,100,44,47,10,0,HIDC_FILTER_WORKING
+ CONTROL "&Vertical",IDC_FILTER_VERTICAL,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,100,58,47,10,0,HIDC_FILTER_VERTICAL
+ CONTROL "&Mechanical",IDC_FILTER_MECHANICAL,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,100,72,47,10,0,HIDC_FILTER_MECHANICAL
+ LTEXT "(*) = inherited from parent folder",IDC_INHERITED,14,72,
+ 99,10
+ CTEXT "Game filters allow customizing the games that are displayed in each folder by hiding games that match the filters applied.",
+ IDC_STATIC,6,94,178,27
+ GROUPBOX "&Description filter",IDC_STATIC,6,122,178,33
+ EDITTEXT IDC_FILTER_EDIT,14,134,162,13,ES_AUTOHSCROLL,0,
+ HIDC_FILTER_EDIT
+ DEFPUSHBUTTON "&OK",IDOK,42,161,50,14
+ PUSHBUTTON "&Cancel",IDCANCEL,98,161,50,14
+END
+
+IDD_RESET DIALOGEX 0, 0, 190, 122
+STYLE DS_MODALFRAME | DS_CENTER | DS_3DLOOK | WS_POPUP | WS_CAPTION | WS_SYSMENU
+EXSTYLE WS_EX_CONTEXTHELP
+CAPTION "Reset Options"
+FONT 8, "MS Shell Dlg"
+BEGIN
+ GROUPBOX "Categories",IDC_STATIC,6,4,178,70
+ CONTROL "&User Interface (Fonts, Colors, Sizes)",IDC_RESET_UI,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,16,146,10,0,
+ HIDC_RESET_UI
+ CONTROL "&Default game options",IDC_RESET_DEFAULT,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,14,30,146,10,0,
+ HIDC_RESET_DEFAULT
+ CONTROL "&All games to use default options",IDC_RESET_GAMES,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,44,146,10,0,
+ HIDC_RESET_GAMES
+ CONTROL "&Folder 'filters'",IDC_RESET_FILTERS,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,14,58,146,10,0,
+ HIDC_RESET_FILTERS
+ CTEXT "Select the options to be restored to the default settings.",
+ IDC_STATIC,6,79,178,20
+ DEFPUSHBUTTON "&OK",IDOK,42,101,50,14
+ PUSHBUTTON "&Cancel",IDCANCEL,98,101,50,14
+END
+
+
+IDD_INTERFACE_OPTIONS DIALOGEX 0, 0, 378, 225
+STYLE DS_MODALFRAME | DS_CENTER | DS_3DLOOK | WS_POPUP | WS_CAPTION | WS_SYSMENU
+EXSTYLE WS_EX_CONTEXTHELP
+CAPTION "Interface Options"
+FONT 8, "MS Shell Dlg"
+BEGIN
+ GROUPBOX "Game Selection",IDC_STATIC,6,4,189,194
+ CONTROL "&Search for new games on start",IDC_START_GAME_CHECK,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,16,111,10,0,
+ HIDC_START_GAME_CHECK
+ CONTROL "Allow game selection by a &joystick (requires restart)",
+ IDC_JOY_GUI,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,30,
+ 174,10,0,HIDC_JOY_GUI
+ CONTROL "Allow game selection by custom &key sequences",
+ IDC_KEY_GUI,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,44,
+ 166,10
+ CONTROL "Select &random background image",IDC_RANDOM_BG,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,14,58,122,10,0,
+ HIDC_RANDOM_BG
+ CONTROL "&Broadcast selected game to all windows",IDC_BROADCAST,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,72,141,10,0,
+ HIDC_BROADCAST
+ CONTROL "Hide &mouse cursor (requires restart)",IDC_HIDE_MOUSE,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,86,126,10,0,
+ HIDC_HIDE_MOUSE
+ CONTROL "Inheritable Filters",IDC_FILTER_INHERIT,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,14,100,68,10
+ CONTROL "No offset for clones missing parent in view",
+ IDC_NOOFFSET_CLONES,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,14,114,148,10
+ GROUPBOX "Show History on Tab",IDC_STATIC,14,128,173,28
+ COMBOBOX IDC_HISTORY_TAB,57,138,88,50,CBS_DROPDOWNLIST |
+ WS_VSCROLL | WS_TABSTOP
+ GROUPBOX "Snapshot Pattern",IDC_STATIC,202,4,170,28
+ GROUPBOX "Bookkeeping",IDC_STATIC,202,36,170,43
+ CONTROL "Reset all Playcounts",IDC_RESET_PLAYCOUNT,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,210,48,80,10
+ CONTROL "Reset all Play Times",IDC_RESET_PLAYTIME,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,210,62,79,10
+ GROUPBOX "Screenshot Area",IDC_STATIC,202,83,170,115
+ CONTROL "S&tretch screenshot larger than natural size",
+ IDC_STRETCH_SCREENSHOT_LARGER,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,210,95,148,10,0,
+ HIDC_STRETCH_SCREENSHOT_LARGER
+ GROUPBOX "Screenshot Cycletime in Seconds",IDC_STATIC,210,109,154,
+ 28
+ CONTROL "Slider1",IDC_CYCLETIMESEC,"msctls_trackbar32",TBS_BOTH |
+ TBS_NOTICKS | WS_TABSTOP,218,121,120,10,0,
+ HIDC_CYCLETIMESEC
+ RTEXT "60",IDC_CYCLETIMESECTXT,340,120,13,10,SS_CENTERIMAGE
+ GROUPBOX "Screenshot Bordersize",IDC_STATIC,210,141,154,28
+ CONTROL "Slider1",IDC_SCREENSHOT_BORDERSIZE,"msctls_trackbar32",
+ TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,218,153,120,10
+ RTEXT "100",IDC_SCREENSHOT_BORDERSIZETXT,340,152,13,10,
+ SS_CENTERIMAGE
+ PUSHBUTTON "Set Screenshot Border Color",IDC_SCREENSHOT_BORDERCOLOR,
+ 210,176,154,14
+ DEFPUSHBUTTON "&OK",IDOK,136,204,50,14
+ PUSHBUTTON "&Cancel",IDCANCEL,192,204,50,14
+ COMBOBOX IDC_SNAPNAME,209,14,155,60,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP,0,HIDC_SNAPNAME
+END
+
+IDD_CUSTOM_FILE DIALOG DISCARDABLE 0, 0, 190, 135
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Add Game To Custom Folder"
+FONT 8, "MS Shell Dlg"
+BEGIN
+ LTEXT "",IDC_CUSTOMFILE_GAME,6,6,175,10,SS_NOPREFIX |
+ SS_CENTERIMAGE
+ CONTROL "CustomTree",IDC_CUSTOM_TREE,"SysTreeView32",
+ TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT |
+ TVS_DISABLEDRAGDROP | TVS_SHOWSELALWAYS |
+ TVS_FULLROWSELECT | WS_BORDER | WS_TABSTOP,6,18,178,90
+ DEFPUSHBUTTON "OK",IDOK,42,114,50,14
+ PUSHBUTTON "Cancel",IDCANCEL,98,114,50,14
+END
+
+
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Accelerator
+//
+
+IDA_TAB_KEYS ACCELERATORS MOVEABLE PURE
+BEGIN
+ "1", ID_VIEW_TAB_SCREENSHOT, VIRTKEY, ALT, NOINVERT
+ "2", ID_VIEW_TAB_FLYER, VIRTKEY, ALT, NOINVERT
+ "3", ID_VIEW_TAB_CABINET, VIRTKEY, ALT, NOINVERT
+ "4", ID_VIEW_TAB_MARQUEE, VIRTKEY, ALT, NOINVERT
+ "5", ID_VIEW_TAB_TITLE, VIRTKEY, ALT, NOINVERT
+ "6", ID_VIEW_TAB_CONTROL_PANEL, VIRTKEY, ALT, NOINVERT
+ "7", ID_VIEW_TAB_PCB, VIRTKEY, ALT, NOINVERT
+ "8", ID_VIEW_TAB_HISTORY, VIRTKEY, ALT, NOINVERT
+ "A", ID_GAME_AUDIT, VIRTKEY, ALT, NOINVERT
+ "B", ID_VIEW_PAGETAB, VIRTKEY, ALT, NOINVERT
+ "D", ID_VIEW_FOLDERS, VIRTKEY, ALT, NOINVERT
+ "E", ID_TOOLBAR_EDIT, VIRTKEY, CONTROL, NOINVERT
+ "F", ID_CONTEXT_FILTERS, VIRTKEY, CONTROL, NOINVERT
+ "U", ID_FOLDER_AUDIT, VIRTKEY, ALT, NOINVERT
+ "P", ID_VIEW_PICTURE_AREA, VIRTKEY, ALT, NOINVERT
+ "R", ID_CONTEXT_SELECT_RANDOM, VIRTKEY, CONTROL, NOINVERT
+ "S", ID_VIEW_STATUS, VIRTKEY, ALT, NOINVERT
+ "T", ID_VIEW_TOOLBARS, VIRTKEY, ALT, NOINVERT
+ VK_F1, ID_HELP_CONTENTS, VIRTKEY, NOINVERT
+ VK_F11, ID_VIEW_FULLSCREEN, VIRTKEY, NOINVERT
+ VK_F5, ID_UPDATE_GAMELIST, VIRTKEY, NOINVERT
+ VK_NEXT, ID_UI_HISTORY_DOWN, VIRTKEY, CONTROL, NOINVERT
+ VK_PRIOR, ID_UI_HISTORY_UP, VIRTKEY, CONTROL, NOINVERT
+ VK_RETURN, ID_GAME_PROPERTIES, VIRTKEY, ALT, NOINVERT
+END
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// DESIGNINFO
+//
+
+#ifdef APSTUDIO_INVOKED
+GUIDELINES DESIGNINFO MOVEABLE PURE
+BEGIN
+ IDD_ABOUT, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 289
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 123
+ END
+
+ IDD_DIRECTX, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 229
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 62
+ END
+
+ IDD_AUDIT, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 280
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 187
+ HORZGUIDE, 19
+ END
+
+ IDD_DIRECTORIES, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 224
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 98
+ END
+
+ IDD_COLUMNS, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 301
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 143
+ END
+
+ IDD_PROP_CONTROLLER, DIALOG
+ BEGIN
+ RIGHTMARGIN, 210
+ BOTTOMMARGIN, 154
+ END
+
+ IDD_PROP_SCREEN, DIALOG
+ BEGIN
+ LEFTMARGIN, 4
+ VERTGUIDE, 7
+ VERTGUIDE, 123
+ BOTTOMMARGIN, 199
+ HORZGUIDE, 179
+ END
+
+ IDD_PROP_GAME, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 213
+ VERTGUIDE, 19
+ VERTGUIDE, 66
+ VERTGUIDE, 74
+ VERTGUIDE, 201
+ BOTTOMMARGIN, 268
+ END
+
+ IDD_PROP_AUDIT, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 213
+ VERTGUIDE, 12
+ VERTGUIDE, 208
+ BOTTOMMARGIN, 198
+ HORZGUIDE, 38
+ END
+
+ IDD_PROP_DISPLAY, DIALOG
+ BEGIN
+ LEFTMARGIN, 4
+ VERTGUIDE, 7
+ VERTGUIDE, 123
+ HORZGUIDE, 179
+ END
+
+ IDD_PROP_SOUND, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 213
+ VERTGUIDE, 50
+ BOTTOMMARGIN, 198
+ END
+
+ IDD_PROP_ADVANCED, DIALOG
+ BEGIN
+ LEFTMARGIN, 10
+ BOTTOMMARGIN, 240
+ END
+
+ IDD_PROP_INPUT, DIALOG
+ BEGIN
+ LEFTMARGIN, 4
+ RIGHTMARGIN, 215
+ VERTGUIDE, 50
+ VERTGUIDE, 170
+ END
+
+ IDD_PROP_MISC, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 213
+ VERTGUIDE, 25
+ VERTGUIDE, 40
+ VERTGUIDE, 104
+ VERTGUIDE, 114
+ VERTGUIDE, 204
+ BOTTOMMARGIN, 236
+ END
+
+ IDD_PROP_VECTOR, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 213
+ VERTGUIDE, 50
+ BOTTOMMARGIN, 198
+ END
+
+ IDD_FILTERS, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 178
+ END
+
+ IDD_RESET, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 175
+ VERTGUIDE, 18
+ VERTGUIDE, 164
+ TOPMARGIN, 7
+ END
+END
+#endif // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Bitmap
+//
+
+
+
+
+IDB_ABOUT BITMAP "res\\about.bmp"
+IDB_TOOLBAR BITMAP "res\\toolbar.bmp"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Cursor
+//
+
+IDC_CURSOR_HSPLIT CURSOR "res\\splith.cur"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// RT_MANIFEST
+//
+
+1 RT_MANIFEST "res\\mameui.manifest"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// String Table
+//
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ IDS_UI_FILE "Contains commands for working with the selected items"
+ IDS_UI_VIEW "Contains commands for manipulating the view"
+ IDS_UI_OPTIONS "Contains commands for user interface options"
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ IDS_UI_HELP "Contains commands for displaying help"
+ IDS_VIEW_TOOLBAR "Show or hide the toolbar"
+ IDS_VIEW_STATUSBAR "Show or hide the status bar"
+ IDS_VIEW_FOLDERLIST "Show or hide the folder list"
+ IDS_VIEW_SCREENSHOT "Show or hide the screen shot"
+ IDS_VIEW_PICTURETABS "Show or hide tabs in the picture area"
+ IDS_VIEW_SPACER1 "Spacer"
+ IDS_VIEW_FULLSCREEN "Toggle full screen mode"
+ IDS_VIEW_SPACER2 "Spacer"
+ IDS_VIEW_SHOWPICTURES "Contains commands to select tabs shown in the picture area"
+ IDS_VIEW_SPACER3 "Spacer"
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ IDS_VIEW_LARGEICONS "Display items by using large icons."
+ IDS_VIEW_SMALLICONS "Display items by using small icons."
+ IDS_VIEW_LIST "Displays items in a list."
+ IDS_VIEW_DETAILS "Displays detailed information about each item in the window."
+ IDS_VIEW_GROUPED "Displays items grouped by parent game"
+ IDS_VIEW_SPACER4 "Spacer"
+ IDS_VIEW_ARRANGE "Contains commands for sorting by various columns"
+ IDS_VIEW_LINEUPICONS "Arranges icons in a grid"
+ IDS_VIEW_SPACER5 "Spacer"
+ IDS_VIEW_REFRESH "Refresh game list"
+ IDS_VIEW_CONTEXTFILTERS "Allows filtering out games from a folder"
+ IDS_VIEW_CUSTOMIZEFIELDS
+ "Customize which columns are used in the game list"
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ ID_FILE_EXIT "Exit the application"
+ ID_FILE_PLAY "Play currently selected game"
+ ID_HELP_ABOUT "Displays program and copyright information"
+ ID_VIEW_LARGE_ICON "Display items by using large icons."
+ ID_VIEW_SMALL_ICON "Display items by using small icons."
+ ID_VIEW_LIST_MENU "Displays items in a list."
+ ID_VIEW_DETAIL "Displays detailed information about each item in the window."
+ ID_VIEW_GROUPED "Show items grouped by parent game"
+ ID_OPTIONS_FONT "Set game list and folder list font"
+ ID_OPTIONS_CLONE_COLOR "Set the clone font color"
+ ID_OPTIONS_DIR "Set directory configuration"
+ ID_OPTIONS_DEFAULTS "Set default game options"
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ ID_OPTIONS_RESET_DEFAULTS "Allow restoring options to 'sane' values."
+ ID_OPTIONS_INTERFACE "Customize interface options."
+ ID_FILE_AUDIT "Audit ROM and samples sets"
+ ID_FILE_PLAY_RECORD "Record a game for later playback"
+ ID_FILE_PLAY_BACK "Playback a recorded game"
+ ID_FILE_PLAY_RECORD_WAVE "Record the audio output of a game"
+ ID_FILE_PLAY_RECORD_MNG "Record the video output of a game"
+ ID_FILE_PLAY_RECORD_AVI "Record the complete output of a game"
+ ID_VIEW_PICTURE_AREA "Show or hide the picture area"
+ ID_HELP_CONTENTS "Display help contents"
+ ID_HELP_WHATS_NEWUI "New game changes"
+ ID_HELP_TROUBLE "Troubleshooting Documentation"
+ ID_HELP_RELEASE "MAME release notes"
+ ID_HELP_WHATS_NEW "What's new in MAME"
+ ID_HELP_CHEATS "How cheats work"
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ ID_CONTEXT_RESET_PLAYTIME "Reset time played for selected item"
+ ID_CONTEXT_RESET_PLAYCOUNT "Reset number of plays for selected item"
+ ID_FOLDER_PROPERTIES "Display folder properties"
+ ID_FOLDER_AUDIT "Audit items in this folder"
+ ID_FILE_LOADSTATE "Play a game starting with the given savestate"
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ ID_VIEW_TAB_CABINET "Select Cabinet tab"
+ ID_VIEW_TAB_MARQUEE "Select Marquee tab"
+ ID_VIEW_TAB_TITLE "Select Title tab"
+ ID_VIEW_TAB_CONTROL_PANEL "Select Control panel tab"
+ ID_VIEW_TAB_PCB "Select PCB tab"
+ ID_VIEW_TAB_HISTORY "Select History tab"
+ ID_OPTIONS_BG "Set the background image"
+ ID_TOGGLE_TAB_SCREENSHOT "Enable the screenshot tab"
+ ID_TOGGLE_TAB_FLYER "Enable the flyer tab"
+ ID_TOGGLE_TAB_CABINET "Enable the cabinet tab"
+ ID_TOGGLE_TAB_MARQUEE "Enable the marquee tab"
+ ID_TOGGLE_TAB_TITLE "Enable the title tab"
+ ID_TOGGLE_TAB_CONTROL_PANEL "Enable the control panel tab"
+ ID_TOGGLE_TAB_PCB "Enable the PCB tab"
+ ID_TOGGLE_TAB_HISTORY "Enable the history tab"
+ ID_VIEW_FULLSCREEN "Toggle Fullscreen mode"
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ ID_CUSTOMIZE_FIELDS "Customize which columns are used in the game list"
+ ID_GAME_PROPERTIES "Display the properties of the selected item"
+ ID_VIEW_PAGETAB "Show or hide the tabs in the picture area"
+ ID_VIEW_FOLDERS "Show or hide the folder list"
+ ID_VIEW_TOOLBARS "Show or hide the toolbar"
+ ID_VIEW_STATUS "Show or hide the status bar"
+ ID_CONTEXT_FILTERS "Allows filtering out games from a folder"
+ ID_CONTEXT_RENAME_CUSTOM "Rename this folder"
+ ID_CONTEXT_ADD_CUSTOM "Add selected item to custom folder"
+ ID_CONTEXT_REMOVE_CUSTOM "Remove selected item from this folder"
+ ID_GAME_AUDIT "Audit the selected item"
+ ID_CONTEXT_SELECT_RANDOM "Randomly select a game."
+ ID_VIEW_TAB_SCREENSHOT "Select Snapshot tab"
+ ID_VIEW_TAB_FLYER "Select Flyer tab"
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ ID_VIEW_BYGAME "Sort items by game description"
+ ID_VIEW_BYDIRECTORY "Sort items by name"
+ ID_VIEW_BYMANUFACTURER "Sort items by manufacturer"
+ ID_VIEW_BYYEAR "Sort items by year"
+ ID_VIEW_BYTYPE "Sort items by type"
+ ID_VIEW_BYTIMESPLAYED "Sort by number of plays"
+ ID_VIEW_LINEUPICONS "Arranges icons in a grid"
+ ID_UPDATE_GAMELIST "Refresh game list"
+ ID_SORT_ASCENDING "Sort column in ascending (A-Z) order"
+ ID_SORT_DESCENDING "Sort column in descending (Z-A) order"
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ ID_FOLDER_SOURCEPROPERTIES
+ "Display properties for all games in this source file"
+ ID_FOLDER_VECTORPROPERTIES "Display properties for all vector based games"
+ ID_OPTIONS_HISTORY "Set the History file to use"
+ ID_OPTIONS_MAMEINFO "Set the Mameinfo file to use"
+END
+
+#endif // English (USA) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+#include "messvers.rc" // Version block
+
+
+/////////////////////////////////////////////////////////////////////////////
+#endif // not APSTUDIO_INVOKED
+
diff --git a/docs/release/src/osd/winui/mkhelp.cpp b/docs/release/src/osd/winui/mkhelp.cpp
new file mode 100644
index 00000000000..115ded9ef8d
--- /dev/null
+++ b/docs/release/src/osd/winui/mkhelp.cpp
@@ -0,0 +1,152 @@
+// For licensing and usage information, read docs/winui_license.txt
+//****************************************************************************
+
+/***************************************************************************
+
+ mkhelp.c
+
+ Simple resource HIDC to Help entry tool.
+
+ MSH - 20070815
+
+***************************************************************************/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include "osdcore.h"
+
+
+static int compare( const void *arg1, const void *arg2 );
+static void extract_help_ids(const char *buffer, FILE *fp);
+
+/*-------------------------------------------------
+ main - primary entry point
+-------------------------------------------------*/
+
+int main(int argc, char *argv[])
+{
+ const char *resourcefile, *varname, *type;
+ FILE *src, *dst;
+ char *buffer;
+ int bytes = 0;
+
+ varname = "dwHelpIDs";
+ type = "DWORD";
+
+ /* needs at least three arguments */
+ if (argc < 1)
+ {
+ fprintf(stderr,
+ "Usage:\n"
+ " mkhelp <resource.rc>\n"
+ "\n"
+ "The default <type> is DWORD, with an assumed NULL terminator pair\n"
+ );
+ return 0;
+ }
+
+ /* extract arguments */
+ resourcefile = argv[1];
+
+ /* open source file */
+ src = fopen(resourcefile, "rb");
+ if (src == NULL)
+ {
+ fprintf(stderr, "Unable to open resource file '%s'\n", resourcefile);
+ return 1;
+ }
+
+ /* determine file size */
+ fseek(src, 0, SEEK_END);
+ bytes = ftell(src);
+ fseek(src, 0, SEEK_SET);
+
+ /* allocate memory */
+ buffer = (char*)malloc(bytes + 1);
+ if (buffer == NULL)
+ {
+ fclose(src);
+ fprintf(stderr, "Out of memory allocating %d byte buffer\n", bytes);
+ return 1;
+ }
+
+ /* read the source file */
+ fread(buffer, 1, bytes, src);
+ buffer[bytes] = 0;
+ fclose(src);
+
+ /* open dest file */
+ dst = stdout;
+
+ fprintf(dst,"/*\n * Help ID array - Generated by mkhelp\n */\n\n");
+ fprintf(dst, "#include <windows.h>\n#include \"resource.h\"\n#include \"resource.hm\"\n\n");
+ /* write the initial header */
+ fprintf(dst, "extern const %s %s[] =\n{\n", type, varname);
+
+ extract_help_ids(buffer, dst);
+
+ fprintf(dst, "\n};\n");
+
+ /* close the files */
+ free(buffer);
+ return 0;
+}
+
+static int compare( const void *arg1, const void *arg2 )
+{
+ /* Compare all of both strings: */
+ return _stricmp( * ( char** ) arg1, * ( char** ) arg2 );
+}
+
+static void extract_help_ids(const char *buffer, FILE *fp)
+{
+ const char *ptr = buffer;
+ char **help_ids = (char **)malloc(500 * sizeof(char *));
+ int num_help_id = 0;
+ int i;
+
+ //memset(help_ids, '\0', sizeof(*help_ids));
+ memset(help_ids, 0, 500);
+
+ while(*ptr) {
+ if (strncmp("HIDC_", ptr, 5) == 0) {
+ char id_name[128];
+ char *end = id_name;
+ char *id;
+ memset(id_name, '\0', sizeof(id_name));
+ while (*ptr && *ptr != '\x0d' && *ptr != '\x0a' ) {
+ *end++ = *ptr++;
+ }
+ id = (char *)malloc(strlen(id_name));
+ memset(id, '\0', strlen(id_name));
+ memcpy(id, &id_name[1], strlen(&id_name[1]));
+ help_ids[num_help_id] = id;
+ num_help_id++;
+ } else {
+ ptr++;
+ }
+ }
+
+ /* Sort using Quicksort algorithm: */
+ qsort( (void *)help_ids, (size_t)num_help_id, sizeof( char * ), compare );
+
+ // Now print them out.
+ ptr = help_ids[0];
+ for (i = 0; i < num_help_id; i++) {
+ if (i > 0) {
+ if (strcmp(ptr, help_ids[i]) == 0) {
+ continue;
+ }
+ }
+ fprintf(fp, "\t%-30s,H%s,\n", help_ids[i], help_ids[i]);
+ ptr = help_ids[i];
+ }
+ fprintf(fp, "\t%-30i,%i\n", 0, 0);
+
+ // free our allocations.
+ for (i = 0; i < num_help_id; i++) {
+ free(help_ids[i]);
+ }
+ free (help_ids);
+}
+
diff --git a/docs/release/src/osd/winui/mui_audit.cpp b/docs/release/src/osd/winui/mui_audit.cpp
new file mode 100644
index 00000000000..97ca2210ae3
--- /dev/null
+++ b/docs/release/src/osd/winui/mui_audit.cpp
@@ -0,0 +1,497 @@
+// For licensing and usage information, read docs/winui_license.txt
+// MASTER
+//****************************************************************************
+
+ /***************************************************************************
+
+ mui_audit.c
+
+ Audit dialog
+
+***************************************************************************/
+
+// standard windows headers
+#include <windows.h>
+#include <windowsx.h>
+#include <commctrl.h>
+
+// standard C headers
+#include <stdio.h>
+#include <tchar.h>
+
+// MAME/MAMEUI headers
+#include "winui.h"
+#include "winutf8.h"
+#include "strconv.h"
+#include "audit.h"
+#include "resource.h"
+#include "mui_opts.h"
+#include "mui_util.h"
+#include "properties.h"
+#include <richedit.h>
+
+
+#ifdef _MSC_VER
+#define vsnprintf _vsnprintf
+#endif
+
+/***************************************************************************
+ function prototypes
+ ***************************************************************************/
+
+static DWORD WINAPI AuditThreadProc(LPVOID hDlg);
+static INT_PTR CALLBACK AuditWindowProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam);
+static void ProcessNextRom(void);
+static void ProcessNextSample(void);
+static void CLIB_DECL DetailsPrintf(const char *fmt, ...) ATTR_PRINTF(1,2);
+static const char * StatusString(int iStatus);
+
+/***************************************************************************
+ Internal variables
+ ***************************************************************************/
+
+#define MAX_AUDITBOX_TEXT 0x7FFFFFFE
+
+static volatile HWND hAudit;
+static volatile int rom_index = 0;
+static volatile int roms_correct = 0;
+static volatile int roms_incorrect = 0;
+static volatile int sample_index = 0;
+static volatile int samples_correct = 0;
+static volatile int samples_incorrect = 0;
+static volatile BOOL bPaused = FALSE;
+static volatile BOOL bCancel = FALSE;
+static int m_choice = 0;
+
+/***************************************************************************
+ External functions
+ ***************************************************************************/
+
+static int strcatprintf(std::string &str, const char *format, ...)
+{
+ va_list ap;
+ va_start(ap, format);
+ int retVal = strcatvprintf(str, format, ap);
+ va_end(ap);
+ return retVal;
+}
+
+void AuditDialog(HWND hParent, int choice)
+{
+ HMODULE hModule = NULL;
+ rom_index = 0;
+ roms_correct = -1; // ___empty must not be counted
+ roms_incorrect = 0;
+ sample_index = 0;
+ samples_correct = -1; // ___empty must not be counted
+ samples_incorrect = 0;
+ m_choice = choice;
+
+ //RS use Riched32.dll
+ hModule = LoadLibrary(TEXT("Riched32.dll"));
+ if( hModule )
+ {
+ DialogBox(GetModuleHandle(NULL),MAKEINTRESOURCE(IDD_AUDIT),hParent,AuditWindowProc);
+ FreeLibrary( hModule );
+ hModule = NULL;
+ }
+ else
+ {
+ MessageBox(GetMainWindow(),TEXT("Unable to Load Riched32.dll"),TEXT("Error"), MB_OK | MB_ICONERROR);
+ }
+}
+
+void InitGameAudit(int gameIndex)
+{
+ rom_index = gameIndex;
+}
+
+const char * GetAuditString(int audit_result)
+{
+ switch (audit_result)
+ {
+ case media_auditor::CORRECT :
+ case media_auditor::BEST_AVAILABLE :
+ case media_auditor::NONE_NEEDED :
+ return "Yes";
+
+ case media_auditor::NOTFOUND :
+ case media_auditor::INCORRECT :
+ return "No";
+
+ default:
+ dprintf("unknown audit value %i\n",audit_result);
+ }
+
+ return "?";
+}
+
+BOOL IsAuditResultKnown(int audit_result)
+{
+ return TRUE;
+}
+
+BOOL IsAuditResultYes(int audit_result)
+{
+ return audit_result == media_auditor::CORRECT
+ || audit_result == media_auditor::BEST_AVAILABLE
+ || audit_result == media_auditor::NONE_NEEDED;
+}
+
+BOOL IsAuditResultNo(int audit_result)
+{
+ return audit_result == media_auditor::NOTFOUND
+ || audit_result == media_auditor::INCORRECT;
+}
+
+
+/***************************************************************************
+ Internal functions
+ ***************************************************************************/
+// Verifies the ROM set while calling SetRomAuditResults
+int MameUIVerifyRomSet(int game, bool choice)
+{
+ driver_enumerator enumerator(MameUIGlobal(), driver_list::driver(game));
+ enumerator.next();
+ media_auditor auditor(enumerator);
+ media_auditor::summary summary = auditor.audit_media(AUDIT_VALIDATE_FAST);
+
+ std::string summary_string;
+
+ if (summary == media_auditor::NOTFOUND)
+ {
+ if (m_choice < 2)
+ strcatprintf(summary_string, "%s: Romset NOT FOUND\n", driver_list::driver(game).name);
+ }
+ else
+ if (choice)
+ {
+ auditor.winui_summarize(driver_list::driver(game).name, &summary_string); // audit all games
+ }
+ else
+ {
+ std::ostringstream whatever;
+ auditor.summarize(driver_list::driver(game).name, &whatever); // audit one game
+ summary_string = whatever.str();
+ }
+
+ // output the summary of the audit
+ DetailsPrintf("%s", summary_string.c_str());
+
+ SetRomAuditResults(game, summary);
+ return summary;
+}
+
+// Verifies the Sample set while calling SetSampleAuditResults
+int MameUIVerifySampleSet(int game)
+{
+ driver_enumerator enumerator(MameUIGlobal(), driver_list::driver(game));
+ enumerator.next();
+ media_auditor auditor(enumerator);
+ media_auditor::summary summary = auditor.audit_samples();
+
+ std::string summary_string;
+
+ if (summary == media_auditor::NOTFOUND)
+ strcatprintf(summary_string, "%s: Sampleset NOT FOUND\n", driver_list::driver(game).name);
+ else
+ {
+ std::ostringstream whatever;
+ auditor.summarize(driver_list::driver(game).name, &whatever);
+ summary_string = whatever.str();
+ }
+
+ // output the summary of the audit
+ DetailsPrintf("%s", summary_string.c_str());
+
+ SetSampleAuditResults(game, summary);
+ return summary;
+}
+
+static DWORD WINAPI AuditThreadProc(LPVOID hDlg)
+{
+ char buffer[200];
+
+ while (!bCancel)
+ {
+ if (!bPaused)
+ {
+ if (rom_index != -1)
+ {
+ sprintf(buffer, "Checking Set %s - %s",
+ driver_list::driver(rom_index).name, driver_list::driver(rom_index).description);
+ win_set_window_text_utf8((HWND)hDlg, buffer);
+ ProcessNextRom();
+ }
+ else
+ if (sample_index != -1)
+ {
+ sprintf(buffer, "Checking Set %s - %s",
+ driver_list::driver(sample_index).name, driver_list::driver(sample_index).description);
+ win_set_window_text_utf8((HWND)hDlg, buffer);
+ ProcessNextSample();
+ }
+ else
+ {
+ win_set_window_text_utf8((HWND)hDlg, "File Audit");
+ EnableWindow(GetDlgItem((HWND)hDlg, IDPAUSE), FALSE);
+ ExitThread(1);
+ }
+ }
+ }
+ return 0;
+}
+
+static INT_PTR CALLBACK AuditWindowProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam)
+{
+ static HANDLE hThread;
+ static DWORD dwThreadID = 0;
+ DWORD dwExitCode = 0;
+ HWND hEdit;
+
+ switch (Msg)
+ {
+ case WM_INITDIALOG:
+ hAudit = hDlg;
+ //RS 20030613 Set Bkg of RichEdit Ctrl
+ hEdit = GetDlgItem(hAudit, IDC_AUDIT_DETAILS);
+ if (hEdit != NULL)
+ {
+ SendMessage( hEdit, EM_SETBKGNDCOLOR, FALSE, GetSysColor(COLOR_BTNFACE) );
+ // MSH - Set to max
+ SendMessage( hEdit, EM_SETLIMITTEXT, MAX_AUDITBOX_TEXT, 0 );
+
+ }
+ SendDlgItemMessage(hDlg, IDC_ROMS_PROGRESS, PBM_SETRANGE, 0, MAKELPARAM(0, driver_list::total()));
+ SendDlgItemMessage(hDlg, IDC_SAMPLES_PROGRESS, PBM_SETRANGE, 0, MAKELPARAM(0, driver_list::total()));
+ bPaused = FALSE;
+ bCancel = FALSE;
+ rom_index = 0;
+ hThread = CreateThread(NULL, 0, AuditThreadProc, hDlg, 0, &dwThreadID);
+ return 1;
+ case WM_COMMAND:
+ switch (LOWORD(wParam))
+ {
+ case IDCANCEL:
+ bPaused = FALSE;
+ if (hThread)
+ {
+ bCancel = TRUE;
+ if (GetExitCodeThread(hThread, &dwExitCode) && (dwExitCode == STILL_ACTIVE))
+ {
+ PostMessage(hDlg, WM_COMMAND, wParam, lParam);
+ return 1;
+ }
+ CloseHandle(hThread);
+ }
+ EndDialog(hDlg,0);
+ m_choice = 0;
+ break;
+
+ case IDPAUSE:
+ if (bPaused)
+ {
+ SendDlgItemMessage(hAudit, IDPAUSE, WM_SETTEXT, 0, (LPARAM)TEXT("Pause"));
+ bPaused = FALSE;
+ }
+ else
+ {
+ SendDlgItemMessage(hAudit, IDPAUSE, WM_SETTEXT, 0, (LPARAM)TEXT("Continue"));
+ bPaused = TRUE;
+ }
+ break;
+ }
+ return 1;
+ }
+ return 0;
+}
+
+/* Callback for the Audit property sheet */
+INT_PTR CALLBACK GameAuditDialogProc(HWND hDlg,UINT Msg,WPARAM wParam,LPARAM lParam)
+{
+ switch (Msg)
+ {
+ case WM_INITDIALOG:
+ FlushFileCaches();
+ hAudit = hDlg;
+ win_set_window_text_utf8(GetDlgItem(hDlg, IDC_PROP_TITLE), GameInfoTitle(OPTIONS_GAME, rom_index));
+ SetTimer(hDlg, 0, 1, NULL);
+ return 1;
+
+ case WM_TIMER:
+ KillTimer(hDlg, 0);
+ {
+ int iStatus;
+ LPCSTR lpStatus;
+
+ iStatus = MameUIVerifyRomSet(rom_index, 0);
+ lpStatus = DriverUsesRoms(rom_index) ? StatusString(iStatus) : "None required";
+ win_set_window_text_utf8(GetDlgItem(hDlg, IDC_PROP_ROMS), lpStatus);
+
+ if (DriverUsesSamples(rom_index))
+ {
+ iStatus = MameUIVerifySampleSet(rom_index);
+ lpStatus = StatusString(iStatus);
+ }
+ else
+ {
+ lpStatus = "None Required";
+ }
+
+ win_set_window_text_utf8(GetDlgItem(hDlg, IDC_PROP_SAMPLES), lpStatus);
+ }
+ ShowWindow(hDlg, SW_SHOW);
+ break;
+ }
+ return 0;
+}
+
+static void ProcessNextRom()
+{
+ int retval = 0;
+ TCHAR buffer[200];
+
+ retval = MameUIVerifyRomSet(rom_index, 1);
+ switch (retval)
+ {
+ case media_auditor::BEST_AVAILABLE: /* correct, incorrect or separate count? */
+ case media_auditor::CORRECT:
+ case media_auditor::NONE_NEEDED:
+ roms_correct++;
+ _stprintf(buffer, TEXT("%i"), roms_correct);
+ SendDlgItemMessage(hAudit, IDC_ROMS_CORRECT, WM_SETTEXT, 0, (LPARAM)buffer);
+ _stprintf(buffer, TEXT("%i"), roms_correct + roms_incorrect);
+ SendDlgItemMessage(hAudit, IDC_ROMS_TOTAL, WM_SETTEXT, 0, (LPARAM)buffer);
+ break;
+
+ case media_auditor::NOTFOUND:
+ case media_auditor::INCORRECT:
+ roms_incorrect++;
+ _stprintf(buffer, TEXT("%i"), roms_incorrect);
+ SendDlgItemMessage(hAudit, IDC_ROMS_INCORRECT, WM_SETTEXT, 0, (LPARAM)buffer);
+ _stprintf(buffer, TEXT("%i"), roms_correct + roms_incorrect);
+ SendDlgItemMessage(hAudit, IDC_ROMS_TOTAL, WM_SETTEXT, 0, (LPARAM)buffer);
+ break;
+ }
+
+ rom_index++;
+ SendDlgItemMessage(hAudit, IDC_ROMS_PROGRESS, PBM_SETPOS, rom_index, 0);
+
+ if (rom_index == driver_list::total())
+ {
+ sample_index = 0;
+ rom_index = -1;
+ }
+}
+
+static void ProcessNextSample()
+{
+ int retval = 0;
+ TCHAR buffer[200];
+
+ retval = MameUIVerifySampleSet(sample_index);
+
+ switch (retval)
+ {
+ case media_auditor::NOTFOUND:
+ case media_auditor::INCORRECT:
+ if (DriverUsesSamples(sample_index))
+ {
+ samples_incorrect++;
+ _stprintf(buffer, TEXT("%i"), samples_incorrect);
+ SendDlgItemMessage(hAudit, IDC_SAMPLES_INCORRECT, WM_SETTEXT, 0, (LPARAM)buffer);
+ _stprintf(buffer, TEXT("%i"), samples_correct + samples_incorrect);
+ SendDlgItemMessage(hAudit, IDC_SAMPLES_TOTAL, WM_SETTEXT, 0, (LPARAM)buffer);
+ break;
+ }
+ default:
+ if ((DriverUsesSamples(sample_index)) || (m_choice == 1))
+ {
+ samples_correct++;
+ _stprintf(buffer, TEXT("%i"), samples_correct);
+ SendDlgItemMessage(hAudit, IDC_SAMPLES_CORRECT, WM_SETTEXT, 0, (LPARAM)buffer);
+ _stprintf(buffer, TEXT("%i"), samples_correct + samples_incorrect);
+ SendDlgItemMessage(hAudit, IDC_SAMPLES_TOTAL, WM_SETTEXT, 0, (LPARAM)buffer);
+ break;
+ }
+ }
+
+ sample_index++;
+ SendDlgItemMessage(hAudit, IDC_SAMPLES_PROGRESS, PBM_SETPOS, sample_index, 0);
+
+ if (sample_index == driver_list::total())
+ {
+ DetailsPrintf("Audit complete.\n");
+ SendDlgItemMessage(hAudit, IDCANCEL, WM_SETTEXT, 0, (LPARAM)TEXT("Close"));
+ sample_index = -1;
+ }
+}
+
+static void CLIB_DECL DetailsPrintf(const char *fmt, ...)
+{
+ HWND hEdit;
+ va_list marker;
+ char buffer[8000];
+ TCHAR* t_s;
+ int textLength = 0;
+
+ //RS 20030613 Different Ids for Property Page and Dialog
+ // so see which one's currently instantiated
+ hEdit = GetDlgItem(hAudit, IDC_AUDIT_DETAILS);
+ if (hEdit == NULL)
+ hEdit = GetDlgItem(hAudit, IDC_AUDIT_DETAILS_PROP);
+
+ if (hEdit == NULL)
+ {
+ dprintf("audit detailsprintf() can't find any audit control\n");
+ return;
+ }
+
+ va_start(marker, fmt);
+
+ vsprintf(buffer, fmt, marker);
+
+ va_end(marker);
+
+ t_s = ui_wstring_from_utf8(ConvertToWindowsNewlines(buffer));
+ if( !t_s || _tcscmp(TEXT(""), t_s) == 0)
+ return;
+
+ textLength = Edit_GetTextLength(hEdit);
+ Edit_SetSel(hEdit, textLength, textLength);
+ SendMessage( hEdit, EM_REPLACESEL, FALSE, (WPARAM)(LPCTSTR)win_tstring_strdup(t_s) );
+
+ free(t_s);
+}
+
+static const char * StatusString(int iStatus)
+{
+ static const char *ptr;
+
+ ptr = "Unknown";
+
+ switch (iStatus)
+ {
+ case media_auditor::CORRECT:
+ ptr = "Passed";
+ break;
+
+ case media_auditor::BEST_AVAILABLE:
+ ptr = "Best available";
+ break;
+
+ case media_auditor::NONE_NEEDED:
+ ptr = "None Required";
+ break;
+
+ case media_auditor::NOTFOUND:
+ ptr = "Not found";
+ break;
+
+ case media_auditor::INCORRECT:
+ ptr = "Failed";
+ break;
+ }
+
+ return ptr;
+}
diff --git a/docs/release/src/osd/winui/mui_audit.h b/docs/release/src/osd/winui/mui_audit.h
new file mode 100644
index 00000000000..b95e1684ce1
--- /dev/null
+++ b/docs/release/src/osd/winui/mui_audit.h
@@ -0,0 +1,21 @@
+// For licensing and usage information, read docs/winui_license.txt
+//****************************************************************************
+
+#ifndef MUI_AUDIT_H
+#define MUI_AUDIT_H
+
+void AuditDialog(HWND hParent, int choice);
+
+// For property sheet Game Audit tab
+void InitGameAudit(int gameIndex);
+INT_PTR CALLBACK GameAuditDialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam);
+
+int MameUIVerifyRomSet(int game, bool choice);
+int MameUIVerifySampleSet(int game);
+
+const char * GetAuditString(int audit_result);
+BOOL IsAuditResultKnown(int audit_result);
+BOOL IsAuditResultYes(int audit_result);
+BOOL IsAuditResultNo(int audit_result);
+
+#endif
diff --git a/docs/release/src/osd/winui/mui_main.cpp b/docs/release/src/osd/winui/mui_main.cpp
new file mode 100644
index 00000000000..31ba3db2e38
--- /dev/null
+++ b/docs/release/src/osd/winui/mui_main.cpp
@@ -0,0 +1,22 @@
+// For licensing and usage information, read docs/winui_license.txt
+//****************************************************************************
+#ifndef WINUI
+#define WINUI
+#endif
+
+// import the main() from MAME, but rename it so we can call it indirectly
+#undef main
+#undef wmain
+#define main mame_main
+#define wmain mame_main
+#include "windows/main.cpp"
+#undef main
+#undef wmain
+
+#include "winui.h"
+
+
+int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nCmdShow)
+{
+ return MameUIMain(hInstance, lpCmdLine, nCmdShow);
+}
diff --git a/docs/release/src/osd/winui/mui_opts.cpp b/docs/release/src/osd/winui/mui_opts.cpp
new file mode 100644
index 00000000000..409960e45ef
--- /dev/null
+++ b/docs/release/src/osd/winui/mui_opts.cpp
@@ -0,0 +1,2807 @@
+// For licensing and usage information, read docs/winui_license.txt
+// MASTER
+//****************************************************************************
+
+ /***************************************************************************
+
+ mui_opts.cpp
+
+ Stores global options and per-game options;
+
+***************************************************************************/
+
+// standard windows headers
+#include <windows.h>
+#include <windowsx.h>
+#include <winreg.h>
+#include <commctrl.h>
+
+// standard C headers
+#include <assert.h>
+#include <stdio.h>
+#include <sys/stat.h>
+#include <math.h>
+#include <direct.h>
+#include <emu.h>
+#include <mameopts.h>
+#include <ui/moptions.h>
+#include <stddef.h>
+#include <tchar.h>
+
+// MAME/MAMEUI headers
+#include "bitmask.h"
+#include "winui.h"
+#include "mui_util.h"
+#include "treeview.h"
+#include "splitters.h"
+#include "mui_opts.h"
+#include "winutf8.h"
+#include "strconv.h"
+#include "drivenum.h"
+#include "game_opts.h"
+
+#ifdef _MSC_VER
+#define snprintf _snprintf
+#endif
+
+/***************************************************************************
+ Internal function prototypes
+ ***************************************************************************/
+
+// static void LoadFolderFilter(int folder_index,int filters);
+
+static void LoadSettingsFile(winui_options &opts, const char *filename);
+static void SaveSettingsFile(winui_options &opts, const char *filename);
+static void LoadSettingsFile(windows_options &opts, const char *filename);
+static void SaveSettingsFile(windows_options &opts, const char *filename);
+
+static void LoadOptionsAndSettings(void);
+
+static void CusColorEncodeString(const COLORREF *value, char* str);
+static void CusColorDecodeString(const char* str, COLORREF *value);
+
+static void SplitterEncodeString(const int *value, char* str);
+static void SplitterDecodeString(const char *str, int *value);
+
+static void FontEncodeString(const LOGFONT *f, char *str);
+static void FontDecodeString(const char* str, LOGFONT *f);
+
+static void TabFlagsEncodeString(int data, char *str);
+static void TabFlagsDecodeString(const char *str, int *data);
+
+static DWORD DecodeFolderFlags(const char *buf);
+static const char * EncodeFolderFlags(DWORD value);
+
+static void ResetToDefaults(windows_options &opts, int priority);
+
+//static void ui_parse_ini_file(windows_options &opts, const char *name);
+
+
+#ifdef _MSC_VER
+#define snprintf _snprintf
+#endif
+
+/***************************************************************************
+ Internal defines
+ ***************************************************************************/
+
+#define GAMEINFO_INI_FILENAME MAMENAME "_g.ini"
+#define MEWUI_FILENAME "ini\\ui.ini"
+
+#define MUIOPTION_LIST_MODE "list_mode"
+#define MUIOPTION_CHECK_GAME "check_game"
+#define MUIOPTION_JOYSTICK_IN_INTERFACE "joystick_in_interface"
+#define MUIOPTION_KEYBOARD_IN_INTERFACE "keyboard_in_interface"
+#define MUIOPTION_CYCLE_SCREENSHOT "cycle_screenshot"
+#define MUIOPTION_STRETCH_SCREENSHOT_LARGER "stretch_screenshot_larger"
+#define MUIOPTION_SCREENSHOT_BORDER_SIZE "screenshot_bordersize"
+#define MUIOPTION_SCREENSHOT_BORDER_COLOR "screenshot_bordercolor"
+#define MUIOPTION_INHERIT_FILTER "inherit_filter"
+#define MUIOPTION_OFFSET_CLONES "offset_clones"
+#define MUIOPTION_DEFAULT_FOLDER_ID "default_folder_id"
+#define MUIOPTION_SHOW_IMAGE_SECTION "show_image_section"
+#define MUIOPTION_SHOW_FOLDER_SECTION "show_folder_section"
+#define MUIOPTION_HIDE_FOLDERS "hide_folders"
+#define MUIOPTION_SHOW_STATUS_BAR "show_status_bar"
+#define MUIOPTION_SHOW_TABS "show_tabs"
+#define MUIOPTION_SHOW_TOOLBAR "show_tool_bar"
+#define MUIOPTION_CURRENT_TAB "current_tab"
+#define MUIOPTION_WINDOW_X "window_x"
+#define MUIOPTION_WINDOW_Y "window_y"
+#define MUIOPTION_WINDOW_WIDTH "window_width"
+#define MUIOPTION_WINDOW_HEIGHT "window_height"
+#define MUIOPTION_WINDOW_STATE "window_state"
+#define MUIOPTION_CUSTOM_COLOR "custom_color"
+#define MUIOPTION_LIST_FONT "list_font"
+#define MUIOPTION_TEXT_COLOR "text_color"
+#define MUIOPTION_CLONE_COLOR "clone_color"
+#define MUIOPTION_HIDE_TABS "hide_tabs"
+#define MUIOPTION_HISTORY_TAB "history_tab"
+#define MUIOPTION_COLUMN_WIDTHS "column_widths"
+#define MUIOPTION_COLUMN_ORDER "column_order"
+#define MUIOPTION_COLUMN_SHOWN "column_shown"
+#define MUIOPTION_SPLITTERS "splitters"
+#define MUIOPTION_SORT_COLUMN "sort_column"
+#define MUIOPTION_SORT_REVERSED "sort_reversed"
+#define MUIOPTION_ICONS_DIRECTORY "icons_directory"
+#define MUIOPTION_BACKGROUND_DIRECTORY "background_directory"
+#define MUIOPTION_DATS_DIRECTORY "dats_directory"
+#define MUIOPTION_UI_KEY_UP "ui_key_up"
+#define MUIOPTION_UI_KEY_DOWN "ui_key_down"
+#define MUIOPTION_UI_KEY_LEFT "ui_key_left"
+#define MUIOPTION_UI_KEY_RIGHT "ui_key_right"
+#define MUIOPTION_UI_KEY_START "ui_key_start"
+#define MUIOPTION_UI_KEY_PGUP "ui_key_pgup"
+#define MUIOPTION_UI_KEY_PGDWN "ui_key_pgdwn"
+#define MUIOPTION_UI_KEY_HOME "ui_key_home"
+#define MUIOPTION_UI_KEY_END "ui_key_end"
+#define MUIOPTION_UI_KEY_SS_CHANGE "ui_key_ss_change"
+#define MUIOPTION_UI_KEY_HISTORY_UP "ui_key_history_up"
+#define MUIOPTION_UI_KEY_HISTORY_DOWN "ui_key_history_down"
+#define MUIOPTION_UI_KEY_CONTEXT_FILTERS "ui_key_context_filters"
+#define MUIOPTION_UI_KEY_SELECT_RANDOM "ui_key_select_random"
+#define MUIOPTION_UI_KEY_GAME_AUDIT "ui_key_game_audit"
+#define MUIOPTION_UI_KEY_GAME_PROPERTIES "ui_key_game_properties"
+#define MUIOPTION_UI_KEY_HELP_CONTENTS "ui_key_help_contents"
+#define MUIOPTION_UI_KEY_UPDATE_GAMELIST "ui_key_update_gamelist"
+#define MUIOPTION_UI_KEY_VIEW_FOLDERS "ui_key_view_folders"
+#define MUIOPTION_UI_KEY_VIEW_FULLSCREEN "ui_key_view_fullscreen"
+#define MUIOPTION_UI_KEY_VIEW_PAGETAB "ui_key_view_pagetab"
+#define MUIOPTION_UI_KEY_VIEW_PICTURE_AREA "ui_key_view_picture_area"
+#define MUIOPTION_UI_KEY_VIEW_STATUS "ui_key_view_status"
+#define MUIOPTION_UI_KEY_VIEW_TOOLBARS "ui_key_view_toolbars"
+#define MUIOPTION_UI_KEY_VIEW_TAB_CABINET "ui_key_view_tab_cabinet"
+#define MUIOPTION_UI_KEY_VIEW_TAB_CPANEL "ui_key_view_tab_cpanel"
+#define MUIOPTION_UI_KEY_VIEW_TAB_FLYER "ui_key_view_tab_flyer"
+#define MUIOPTION_UI_KEY_VIEW_TAB_HISTORY "ui_key_view_tab_history"
+#define MUIOPTION_UI_KEY_VIEW_TAB_MARQUEE "ui_key_view_tab_marquee"
+#define MUIOPTION_UI_KEY_VIEW_TAB_SCREENSHOT "ui_key_view_tab_screenshot"
+#define MUIOPTION_UI_KEY_VIEW_TAB_TITLE "ui_key_view_tab_title"
+#define MUIOPTION_UI_KEY_VIEW_TAB_PCB "ui_key_view_tab_pcb"
+#define MUIOPTION_UI_KEY_QUIT "ui_key_quit"
+#define MUIOPTION_UI_JOY_UP "ui_joy_up"
+#define MUIOPTION_UI_JOY_DOWN "ui_joy_down"
+#define MUIOPTION_UI_JOY_LEFT "ui_joy_left"
+#define MUIOPTION_UI_JOY_RIGHT "ui_joy_right"
+#define MUIOPTION_UI_JOY_START "ui_joy_start"
+#define MUIOPTION_UI_JOY_PGUP "ui_joy_pgup"
+#define MUIOPTION_UI_JOY_PGDWN "ui_joy_pgdwn"
+#define MUIOPTION_UI_JOY_HOME "ui_joy_home"
+#define MUIOPTION_UI_JOY_END "ui_joy_end"
+#define MUIOPTION_UI_JOY_SS_CHANGE "ui_joy_ss_change"
+#define MUIOPTION_UI_JOY_HISTORY_UP "ui_joy_history_up"
+#define MUIOPTION_UI_JOY_HISTORY_DOWN "ui_joy_history_down"
+#define MUIOPTION_UI_JOY_EXEC "ui_joy_exec"
+#define MUIOPTION_EXEC_COMMAND "exec_command"
+#define MUIOPTION_EXEC_WAIT "exec_wait"
+#define MUIOPTION_HIDE_MOUSE "hide_mouse"
+#define MUIOPTION_FULL_SCREEN "full_screen"
+#define MUIOPTION_SHOW_SOFTWARE_SECTION "show_software_section"
+#define MUIOPTION_UI_KEY_VIEW_SOFTWARE_AREA "ui_key_view_software_area"
+
+#ifdef MESS
+#define MUIOPTION_DEFAULT_GAME "default_system"
+#define MUIDEFAULT_SELECTION "3do"
+#define MUIDEFAULT_SPLITTERS "152,310,468"
+#else
+#define MUIOPTION_DEFAULT_GAME "default_machine"
+#define MUIDEFAULT_SELECTION "puckman"
+#define MUIDEFAULT_SPLITTERS "152,362"
+#endif
+
+#define MUIOPTION_VERSION "version"
+
+#define MESSUI_SL_COLUMN_SHOWN "sl_column_shown"
+#define MESSUI_SL_COLUMN_WIDTHS "sl_column_widths"
+#define MESSUI_SL_COLUMN_ORDER "sl_column_order"
+#define MESSUI_SL_SORT_REVERSED "sl_sort_reversed"
+#define MESSUI_SL_SORT_COLUMN "sl_sort_column"
+#define MESSUI_SW_COLUMN_SHOWN "sw_column_shown"
+#define MESSUI_SW_COLUMN_WIDTHS "sw_column_widths"
+#define MESSUI_SW_COLUMN_ORDER "sw_column_order"
+#define MESSUI_SW_SORT_REVERSED "sw_sort_reversed"
+#define MESSUI_SW_SORT_COLUMN "sw_sort_column"
+#define MESSUI_SOFTWARE_TAB "current_software_tab"
+#define MESSUI_SLPATH "slpath"
+
+
+/***************************************************************************
+ Internal structures
+ ***************************************************************************/
+
+ /***************************************************************************
+ Internal variables
+ ***************************************************************************/
+
+static mame_options mameopts; // core options
+static ui_options mewui; // ui.ini
+static winui_options settings; // mameui.ini
+
+static windows_options global; // Global 'default' options
+
+static game_options game_opts;
+
+// UI options in MAMEui.ini
+const options_entry winui_options::s_option_entries[] =
+{
+ // UI options
+ { NULL, NULL, OPTION_HEADER, "APPLICATION OPTIONS" },
+ { MUIOPTION_VERSION, "", OPTION_STRING, NULL },
+ { NULL, NULL, OPTION_HEADER, "DISPLAY STATE OPTIONS" },
+ { MUIOPTION_DEFAULT_GAME, MUIDEFAULT_SELECTION, OPTION_STRING, NULL },
+ { MUIOPTION_DEFAULT_FOLDER_ID, "0", OPTION_INTEGER, NULL },
+ { MUIOPTION_SHOW_IMAGE_SECTION, "1", OPTION_BOOLEAN, NULL },
+ { MUIOPTION_FULL_SCREEN, "0", OPTION_BOOLEAN, NULL },
+ { MUIOPTION_CURRENT_TAB, "0", OPTION_STRING, NULL },
+ { MESSUI_SOFTWARE_TAB, "0", OPTION_STRING, NULL },
+ { MUIOPTION_SHOW_TOOLBAR, "1", OPTION_BOOLEAN, NULL },
+ { MUIOPTION_SHOW_STATUS_BAR, "1", OPTION_BOOLEAN, NULL },
+ { MUIOPTION_HIDE_FOLDERS, "", OPTION_STRING, NULL },
+ { MUIOPTION_SHOW_FOLDER_SECTION, "1", OPTION_BOOLEAN, NULL },
+ { MUIOPTION_SHOW_TABS, "1", OPTION_BOOLEAN, NULL },
+ { MUIOPTION_HIDE_TABS, "marquee, title, cpanel, pcb, history", OPTION_STRING, NULL },
+ { MUIOPTION_HISTORY_TAB, "0", OPTION_INTEGER, NULL },
+ { MUIOPTION_SHOW_SOFTWARE_SECTION, "1", OPTION_BOOLEAN, NULL },
+ { MUIOPTION_SORT_COLUMN, "0", OPTION_INTEGER, NULL },
+ { MUIOPTION_SORT_REVERSED, "0", OPTION_BOOLEAN, NULL },
+ { MUIOPTION_WINDOW_X, "0", OPTION_INTEGER, NULL },
+ { MUIOPTION_WINDOW_Y, "0", OPTION_INTEGER, NULL },
+ { MUIOPTION_WINDOW_WIDTH, "800", OPTION_INTEGER, NULL },
+ { MUIOPTION_WINDOW_HEIGHT, "600", OPTION_INTEGER, NULL },
+ { MUIOPTION_WINDOW_STATE, "1", OPTION_INTEGER, NULL },
+ { MUIOPTION_TEXT_COLOR, "-1", OPTION_INTEGER, NULL },
+ { MUIOPTION_CLONE_COLOR, "-1", OPTION_INTEGER, NULL },
+ { MUIOPTION_CUSTOM_COLOR, "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", OPTION_STRING, NULL },
+ /* ListMode needs to be before ColumnWidths settings */
+ { MUIOPTION_LIST_MODE, "5", OPTION_INTEGER, NULL },
+ { MUIOPTION_SPLITTERS, MUIDEFAULT_SPLITTERS, OPTION_STRING, NULL },
+ { MUIOPTION_LIST_FONT, "-8,0,0,0,400,0,0,0,0,0,0,0,MS Sans Serif", OPTION_STRING, NULL },
+ { MUIOPTION_COLUMN_WIDTHS, "185,78,84,84,64,88,74,108,60,144,84,40,40", OPTION_STRING, NULL },
+ { MUIOPTION_COLUMN_ORDER, "0,1,2,3,4,5,6,7,8,9,10,11,12", OPTION_STRING, NULL },
+ { MUIOPTION_COLUMN_SHOWN, "1,1,1,1,1,1,1,1,1,1,1,1,0", OPTION_STRING, NULL },
+ { MESSUI_SL_COLUMN_WIDTHS, "100,75,223,46,120,120", OPTION_STRING, NULL },
+ { MESSUI_SL_COLUMN_ORDER, "0,1,2,3,4,5", OPTION_STRING, NULL }, // order of columns
+ { MESSUI_SL_COLUMN_SHOWN, "1,1,1,1,1,1", OPTION_STRING, NULL }, // 0=hide,1=show
+ { MESSUI_SL_SORT_COLUMN, "0", OPTION_INTEGER, NULL },
+ { MESSUI_SL_SORT_REVERSED, "0", OPTION_BOOLEAN, NULL },
+ { MESSUI_SW_COLUMN_WIDTHS, "400", OPTION_STRING, NULL },
+ { MESSUI_SW_COLUMN_ORDER, "0", OPTION_STRING, NULL }, // 1= dummy column
+ { MESSUI_SW_COLUMN_SHOWN, "1", OPTION_STRING, NULL }, // 0=don't show it
+ { MESSUI_SW_SORT_COLUMN, "0", OPTION_INTEGER, NULL },
+ { MESSUI_SW_SORT_REVERSED, "0", OPTION_BOOLEAN, NULL },
+ { NULL, NULL, OPTION_HEADER, "INTERFACE OPTIONS" },
+ { MUIOPTION_CHECK_GAME, "0", OPTION_BOOLEAN, NULL },
+ { MUIOPTION_JOYSTICK_IN_INTERFACE, "1", OPTION_BOOLEAN, NULL },
+ { MUIOPTION_KEYBOARD_IN_INTERFACE, "0", OPTION_BOOLEAN, NULL },
+ { MUIOPTION_HIDE_MOUSE, "0", OPTION_BOOLEAN, NULL },
+ { MUIOPTION_INHERIT_FILTER, "0", OPTION_BOOLEAN, NULL },
+ { MUIOPTION_OFFSET_CLONES, "0", OPTION_BOOLEAN, NULL },
+ { MUIOPTION_STRETCH_SCREENSHOT_LARGER, "0", OPTION_BOOLEAN, NULL },
+ { MUIOPTION_CYCLE_SCREENSHOT, "0", OPTION_INTEGER, NULL },
+ { MUIOPTION_SCREENSHOT_BORDER_SIZE, "11", OPTION_INTEGER, NULL },
+ { MUIOPTION_SCREENSHOT_BORDER_COLOR, "-1", OPTION_INTEGER, NULL },
+ { MUIOPTION_EXEC_COMMAND, "", OPTION_STRING, NULL },
+ { MUIOPTION_EXEC_WAIT, "0", OPTION_INTEGER, NULL },
+ { NULL, NULL, OPTION_HEADER, "SEARCH PATH OPTIONS" },
+ { MUIOPTION_BACKGROUND_DIRECTORY, "bkground", OPTION_STRING, NULL },
+ { MUIOPTION_ICONS_DIRECTORY, "icons", OPTION_STRING, NULL },
+ { MUIOPTION_DATS_DIRECTORY, "dats", OPTION_STRING, NULL },
+ { MESSUI_SLPATH, "software", OPTION_STRING, NULL },
+ { NULL, NULL, OPTION_HEADER, "NAVIGATION KEY CODES" },
+ { MUIOPTION_UI_KEY_UP, "KEYCODE_UP", OPTION_STRING, NULL },
+ { MUIOPTION_UI_KEY_DOWN, "KEYCODE_DOWN", OPTION_STRING, NULL },
+ { MUIOPTION_UI_KEY_LEFT, "KEYCODE_LEFT", OPTION_STRING, NULL },
+ { MUIOPTION_UI_KEY_RIGHT, "KEYCODE_RIGHT", OPTION_STRING, NULL },
+ { MUIOPTION_UI_KEY_START, "KEYCODE_ENTER NOT KEYCODE_LALT", OPTION_STRING, NULL },
+ { MUIOPTION_UI_KEY_PGUP, "KEYCODE_PGUP", OPTION_STRING, NULL },
+ { MUIOPTION_UI_KEY_PGDWN, "KEYCODE_PGDN", OPTION_STRING, NULL },
+ { MUIOPTION_UI_KEY_HOME, "KEYCODE_HOME", OPTION_STRING, NULL },
+ { MUIOPTION_UI_KEY_END, "KEYCODE_END", OPTION_STRING, NULL },
+ { MUIOPTION_UI_KEY_SS_CHANGE, "KEYCODE_INSERT", OPTION_STRING, NULL },
+ { MUIOPTION_UI_KEY_HISTORY_UP, "KEYCODE_DEL", OPTION_STRING, NULL },
+ { MUIOPTION_UI_KEY_HISTORY_DOWN, "KEYCODE_LALT KEYCODE_0", OPTION_STRING, NULL },
+ { MUIOPTION_UI_KEY_CONTEXT_FILTERS, "KEYCODE_LCONTROL KEYCODE_F", OPTION_STRING, NULL },
+ { MUIOPTION_UI_KEY_SELECT_RANDOM, "KEYCODE_LCONTROL KEYCODE_R", OPTION_STRING, NULL },
+ { MUIOPTION_UI_KEY_GAME_AUDIT, "KEYCODE_LALT KEYCODE_A", OPTION_STRING, NULL },
+ { MUIOPTION_UI_KEY_GAME_PROPERTIES, "KEYCODE_LALT KEYCODE_ENTER", OPTION_STRING, NULL },
+ { MUIOPTION_UI_KEY_HELP_CONTENTS, "KEYCODE_F1", OPTION_STRING, NULL },
+ { MUIOPTION_UI_KEY_UPDATE_GAMELIST, "KEYCODE_F5", OPTION_STRING, NULL },
+ { MUIOPTION_UI_KEY_VIEW_FOLDERS, "KEYCODE_LALT KEYCODE_D", OPTION_STRING, NULL },
+ { MUIOPTION_UI_KEY_VIEW_FULLSCREEN, "KEYCODE_F11", OPTION_STRING, NULL },
+ { MUIOPTION_UI_KEY_VIEW_PAGETAB, "KEYCODE_LALT KEYCODE_B", OPTION_STRING, NULL },
+ { MUIOPTION_UI_KEY_VIEW_PICTURE_AREA, "KEYCODE_LALT KEYCODE_P", OPTION_STRING, NULL },
+ { MUIOPTION_UI_KEY_VIEW_SOFTWARE_AREA, "KEYCODE_LALT KEYCODE_W", OPTION_STRING, NULL },
+ { MUIOPTION_UI_KEY_VIEW_STATUS, "KEYCODE_LALT KEYCODE_S", OPTION_STRING, NULL },
+ { MUIOPTION_UI_KEY_VIEW_TOOLBARS, "KEYCODE_LALT KEYCODE_T", OPTION_STRING, NULL },
+ { MUIOPTION_UI_KEY_VIEW_TAB_CABINET, "KEYCODE_LALT KEYCODE_3", OPTION_STRING, NULL },
+ { MUIOPTION_UI_KEY_VIEW_TAB_CPANEL, "KEYCODE_LALT KEYCODE_6", OPTION_STRING, NULL },
+ { MUIOPTION_UI_KEY_VIEW_TAB_FLYER, "KEYCODE_LALT KEYCODE_2", OPTION_STRING, NULL },
+ { MUIOPTION_UI_KEY_VIEW_TAB_HISTORY, "KEYCODE_LALT KEYCODE_8", OPTION_STRING, NULL },
+ { MUIOPTION_UI_KEY_VIEW_TAB_MARQUEE, "KEYCODE_LALT KEYCODE_4", OPTION_STRING, NULL },
+ { MUIOPTION_UI_KEY_VIEW_TAB_SCREENSHOT, "KEYCODE_LALT KEYCODE_1", OPTION_STRING, NULL },
+ { MUIOPTION_UI_KEY_VIEW_TAB_TITLE, "KEYCODE_LALT KEYCODE_5", OPTION_STRING, NULL },
+ { MUIOPTION_UI_KEY_VIEW_TAB_PCB, "KEYCODE_LALT KEYCODE_7", OPTION_STRING, NULL },
+ { MUIOPTION_UI_KEY_QUIT, "KEYCODE_LALT KEYCODE_Q", OPTION_STRING, NULL },
+ { NULL, NULL, OPTION_HEADER, "NAVIGATION JOYSTICK CODES" },
+ { MUIOPTION_UI_JOY_UP, "1,1,1,1", OPTION_STRING, NULL },
+ { MUIOPTION_UI_JOY_DOWN, "1,1,1,2", OPTION_STRING, NULL },
+ { MUIOPTION_UI_JOY_LEFT, "1,1,2,1", OPTION_STRING, NULL },
+ { MUIOPTION_UI_JOY_RIGHT, "1,1,2,2", OPTION_STRING, NULL },
+ { MUIOPTION_UI_JOY_START, "1,0,1,0", OPTION_STRING, NULL },
+ { MUIOPTION_UI_JOY_PGUP, "2,1,2,1", OPTION_STRING, NULL },
+ { MUIOPTION_UI_JOY_PGDWN, "2,1,2,2", OPTION_STRING, NULL },
+ { MUIOPTION_UI_JOY_HOME, "0,0,0,0", OPTION_STRING, NULL },
+ { MUIOPTION_UI_JOY_END, "0,0,0,0", OPTION_STRING, NULL },
+ { MUIOPTION_UI_JOY_SS_CHANGE, "2,0,3,0", OPTION_STRING, NULL },
+ { MUIOPTION_UI_JOY_HISTORY_UP, "2,0,4,0", OPTION_STRING, NULL },
+ { MUIOPTION_UI_JOY_HISTORY_DOWN, "2,0,1,0", OPTION_STRING, NULL },
+ { MUIOPTION_UI_JOY_EXEC, "0,0,0,0", OPTION_STRING, NULL },
+ { NULL }
+};
+
+#if 0
+// no longer used, but keep in case we need to add more per-game options in the future
+static const options_entry perGameOptions[] =
+{
+ // per game options in messui.ini - transferred to swpath
+ { "_extra_software", "", OPTION_STRING, NULL },
+ { NULL }
+};
+#endif
+
+static const options_entry filterOptions[] =
+{
+ // filters
+ { "_filters", "0", OPTION_INTEGER, NULL },
+ { NULL }
+};
+
+
+
+// Screen shot Page tab control text
+// these must match the order of the options flags in options.h
+// (TAB_...)
+static const char *const image_tabs_long_name[MAX_TAB_TYPES] =
+{
+ "Snapshot",
+ "Flyer",
+ "Cabinet",
+ "Marquee",
+ "Title",
+ "Control Panel",
+ "PCB",
+ "History",
+};
+
+static const char *const image_tabs_short_name[MAX_TAB_TYPES] =
+{
+ "snapshot",
+ "flyer",
+ "cabinet",
+ "marquee",
+ "title",
+ "cpanel",
+ "pcb",
+ "history"
+};
+
+
+/***************************************************************************
+ External functions
+ ***************************************************************************/
+winui_options::winui_options()
+{
+ add_entries(s_option_entries);
+}
+
+void CreateGameOptions(windows_options &opts, OPTIONS_TYPE opt_type, int driver_index)
+{
+ if (driver_index >= 0)
+ mameopts.set_system_name(opts, driver_list::driver(driver_index).name);
+}
+
+BOOL OptionsInit()
+{
+#if 0
+// keep in case we need per-game options in the future
+ // set up per game options
+ {
+ char buffer[128];
+ int i, j;
+ int game_option_count = 0;
+
+ while(perGameOptions[game_option_count].name)
+ game_option_count++;
+
+ for (i = 0; i < driver_list::total(); i++)
+ {
+ for (j = 0; j < game_option_count; j++)
+ {
+ options_entry entry[2] = { { 0 }, { 0 } };
+ snprintf(buffer, ARRAY_LENGTH(buffer), "%s%s", driver_list::driver(i).name, perGameOptions[j].name);
+
+ entry[0].name = core_strdup(buffer);
+ entry[0].defvalue = perGameOptions[j].defvalue;
+ entry[0].flags = perGameOptions[j].flags;
+ entry[0].description = perGameOptions[j].description;
+ settings.add_entries(entry);
+ }
+ }
+ }
+#endif
+
+ game_opts.add_entries();
+ // set up global options
+ CreateGameOptions(global, OPTIONS_GLOBAL, GLOBAL_OPTIONS);
+ // now load the options and settings
+ LoadOptionsAndSettings();
+
+ return TRUE;
+
+}
+
+void OptionsExit(void)
+{
+}
+
+winui_options & MameUISettings(void)
+{
+ return settings;
+}
+
+windows_options & MameUIGlobal(void)
+{
+ return global;
+}
+
+// Restore ui settings to factory
+void ResetGUI(void)
+{
+ settings.revert(OPTION_PRIORITY_NORMAL);
+ // Save the new MAMEui.ini
+ SaveOptions();
+}
+
+const char * GetImageTabLongName(int tab_index)
+{
+ assert(tab_index >= 0);
+ assert(tab_index < ARRAY_LENGTH(image_tabs_long_name));
+ return image_tabs_long_name[tab_index];
+}
+
+const char * GetImageTabShortName(int tab_index)
+{
+ assert(tab_index >= 0);
+ assert(tab_index < ARRAY_LENGTH(image_tabs_short_name));
+ return image_tabs_short_name[tab_index];
+}
+
+//============================================================
+// OPTIONS WRAPPERS
+//============================================================
+
+static COLORREF options_get_color(winui_options &opts, const char *name)
+{
+ const char *value_str;
+ unsigned int r = 0, g = 0, b = 0;
+ COLORREF value;
+
+ value_str = opts.value(name);
+
+ if (sscanf(value_str, "%u,%u,%u", &r, &g, &b) == 3)
+ value = RGB(r,g,b);
+ else
+ value = (COLORREF) - 1;
+ return value;
+}
+
+static void options_set_color(winui_options &opts, const char *name, COLORREF value)
+{
+ char value_str[32];
+
+ if (value == (COLORREF) -1)
+ {
+ snprintf(value_str, ARRAY_LENGTH(value_str), "%d", (int) value);
+ }
+ else
+ {
+ snprintf(value_str, ARRAY_LENGTH(value_str), "%d,%d,%d", (((int) value) >> 0) & 0xFF, (((int) value) >> 8) & 0xFF, (((int) value) >> 16) & 0xFF);
+ }
+ std::string error_string;
+ opts.set_value(name, value_str, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+static COLORREF options_get_color_default(winui_options &opts, const char *name, int default_color)
+{
+ COLORREF value = options_get_color(opts, name);
+ if (value == (COLORREF) -1)
+ value = GetSysColor(default_color);
+ return value;
+}
+
+static void options_set_color_default(winui_options &opts, const char *name, COLORREF value, int default_color)
+{
+ if (value == GetSysColor(default_color))
+ options_set_color(settings, name, (COLORREF) -1);
+ else
+ options_set_color(settings, name, value);
+}
+
+static input_seq *options_get_input_seq(winui_options &opts, const char *name)
+{
+/* static input_seq seq;
+ const char *seq_string;
+
+ seq_string = opts.value( name);
+ input_seq_from_tokens(NULL, seq_string, &seq); // HACK
+ return &seq;*/
+ return NULL;
+}
+
+
+
+//============================================================
+// OPTIONS CALLS
+//============================================================
+
+void SetViewMode(int val)
+{
+ std::string error_string;
+ settings.set_value(MUIOPTION_LIST_MODE, val, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+int GetViewMode(void)
+{
+ return settings.int_value(MUIOPTION_LIST_MODE);
+}
+
+void SetGameCheck(BOOL game_check)
+{
+ std::string error_string;
+ settings.set_value(MUIOPTION_CHECK_GAME, game_check, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+BOOL GetGameCheck(void)
+{
+ return settings.bool_value(MUIOPTION_CHECK_GAME);
+}
+
+void SetJoyGUI(BOOL use_joygui)
+{
+ std::string error_string;
+ settings.set_value(MUIOPTION_JOYSTICK_IN_INTERFACE, use_joygui, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+BOOL GetJoyGUI(void)
+{
+ return settings.bool_value( MUIOPTION_JOYSTICK_IN_INTERFACE);
+}
+
+void SetKeyGUI(BOOL use_keygui)
+{
+ std::string error_string;
+ settings.set_value(MUIOPTION_KEYBOARD_IN_INTERFACE, use_keygui, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+BOOL GetKeyGUI(void)
+{
+ return settings.bool_value( MUIOPTION_KEYBOARD_IN_INTERFACE);
+}
+
+void SetCycleScreenshot(int cycle_screenshot)
+{
+ std::string error_string;
+ settings.set_value(MUIOPTION_CYCLE_SCREENSHOT, cycle_screenshot, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+int GetCycleScreenshot(void)
+{
+ return settings.int_value(MUIOPTION_CYCLE_SCREENSHOT);
+}
+
+void SetStretchScreenShotLarger(BOOL stretch)
+{
+ std::string error_string;
+ settings.set_value(MUIOPTION_STRETCH_SCREENSHOT_LARGER, stretch, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+BOOL GetStretchScreenShotLarger(void)
+{
+ return settings.bool_value( MUIOPTION_STRETCH_SCREENSHOT_LARGER);
+}
+
+void SetScreenshotBorderSize(int size)
+{
+ std::string error_string;
+ settings.set_value(MUIOPTION_SCREENSHOT_BORDER_SIZE, size, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+int GetScreenshotBorderSize(void)
+{
+ return settings.int_value(MUIOPTION_SCREENSHOT_BORDER_SIZE);
+}
+
+void SetScreenshotBorderColor(COLORREF uColor)
+{
+ options_set_color_default(settings, MUIOPTION_SCREENSHOT_BORDER_COLOR, uColor, COLOR_3DFACE);
+}
+
+COLORREF GetScreenshotBorderColor(void)
+{
+ return options_get_color_default(settings, MUIOPTION_SCREENSHOT_BORDER_COLOR, COLOR_3DFACE);
+}
+
+void SetFilterInherit(BOOL inherit)
+{
+ std::string error_string;
+ settings.set_value(MUIOPTION_INHERIT_FILTER, inherit, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+BOOL GetFilterInherit(void)
+{
+ return settings.bool_value( MUIOPTION_INHERIT_FILTER);
+}
+
+void SetOffsetClones(BOOL offset)
+{
+ std::string error_string;
+ settings.set_value(MUIOPTION_OFFSET_CLONES, offset, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+BOOL GetOffsetClones(void)
+{
+ return settings.bool_value( MUIOPTION_OFFSET_CLONES);
+}
+
+void SetSavedFolderID(UINT val)
+{
+ std::string error_string;
+ settings.set_value(MUIOPTION_DEFAULT_FOLDER_ID, (int) val, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+UINT GetSavedFolderID(void)
+{
+ return (UINT) settings.int_value(MUIOPTION_DEFAULT_FOLDER_ID);
+}
+
+void SetShowScreenShot(BOOL val)
+{
+ std::string error_string;
+ settings.set_value(MUIOPTION_SHOW_IMAGE_SECTION, val, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+BOOL GetShowScreenShot(void)
+{
+ return settings.bool_value(MUIOPTION_SHOW_IMAGE_SECTION);
+}
+
+void SetShowSoftware(BOOL val)
+{
+ std::string error_string;
+ settings.set_value(MUIOPTION_SHOW_SOFTWARE_SECTION, val, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+BOOL GetShowSoftware(void)
+{
+ return settings.bool_value(MUIOPTION_SHOW_SOFTWARE_SECTION);
+}
+
+void SetShowFolderList(BOOL val)
+{
+ std::string error_string;
+ settings.set_value(MUIOPTION_SHOW_FOLDER_SECTION, val, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+BOOL GetShowFolderList(void)
+{
+ return settings.bool_value(MUIOPTION_SHOW_FOLDER_SECTION);
+}
+
+static void GetsShowFolderFlags(LPBITS bits)
+{
+ char s[2000];
+ extern const FOLDERDATA g_folderData[];
+ char *token;
+
+ snprintf(s, ARRAY_LENGTH(s), "%s", settings.value( MUIOPTION_HIDE_FOLDERS));
+
+ SetAllBits(bits, TRUE);
+
+ token = strtok(s,", \t");
+ int j;
+ while (token)
+ {
+ for (j=0; g_folderData[j].m_lpTitle; j++)
+ {
+ if (strcmp(g_folderData[j].short_name,token) == 0)
+ {
+ ClearBit(bits, g_folderData[j].m_nFolderId);
+ break;
+ }
+ }
+ token = strtok(NULL,", \t");
+ }
+}
+
+BOOL GetShowFolder(int folder)
+{
+ LPBITS show_folder_flags = NewBits(MAX_FOLDERS);
+ GetsShowFolderFlags(show_folder_flags);
+ BOOL result = TestBit(show_folder_flags, folder);
+ DeleteBits(show_folder_flags);
+ return result;
+}
+
+void SetShowFolder(int folder,BOOL show)
+{
+ LPBITS show_folder_flags = NewBits(MAX_FOLDERS);
+ int i = 0, j = 0;
+ int num_saved = 0;
+ char str[10000];
+ extern const FOLDERDATA g_folderData[];
+
+ GetsShowFolderFlags(show_folder_flags);
+
+ if (show)
+ SetBit(show_folder_flags, folder);
+ else
+ ClearBit(show_folder_flags, folder);
+
+ strcpy(str, "");
+
+ // we save the ones that are NOT displayed, so we can add new ones
+ // and upgraders will see them
+ for (i=0; i<MAX_FOLDERS; i++)
+ {
+ if (TestBit(show_folder_flags, i) == FALSE)
+ {
+ if (num_saved != 0)
+ strcat(str,", ");
+
+ for (j=0; g_folderData[j].m_lpTitle; j++)
+ {
+ if (g_folderData[j].m_nFolderId == i)
+ {
+ strcat(str,g_folderData[j].short_name);
+ num_saved++;
+ break;
+ }
+ }
+ }
+ }
+ std::string error_string;
+ settings.set_value(MUIOPTION_HIDE_FOLDERS, str, OPTION_PRIORITY_CMDLINE,error_string);
+ DeleteBits(show_folder_flags);
+}
+
+void SetShowStatusBar(BOOL val)
+{
+ std::string error_string;
+ settings.set_value(MUIOPTION_SHOW_STATUS_BAR, val, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+BOOL GetShowStatusBar(void)
+{
+ return settings.bool_value( MUIOPTION_SHOW_STATUS_BAR);
+}
+
+void SetShowTabCtrl (BOOL val)
+{
+ std::string error_string;
+ settings.set_value(MUIOPTION_SHOW_TABS, val, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+BOOL GetShowTabCtrl (void)
+{
+ return settings.bool_value( MUIOPTION_SHOW_TABS);
+}
+
+void SetShowToolBar(BOOL val)
+{
+ std::string error_string;
+ settings.set_value(MUIOPTION_SHOW_TOOLBAR, val, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+BOOL GetShowToolBar(void)
+{
+ return settings.bool_value( MUIOPTION_SHOW_TOOLBAR);
+}
+
+void SetCurrentTab(const char *shortname)
+{
+ std::string error_string;
+ settings.set_value(MUIOPTION_CURRENT_TAB, shortname, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+const char *GetCurrentTab(void)
+{
+ return settings.value( MUIOPTION_CURRENT_TAB);
+}
+
+void SetDefaultGame(const char *name)
+{
+ std::string error_string;
+ settings.set_value(MUIOPTION_DEFAULT_GAME, name, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+const char *GetDefaultGame(void)
+{
+ return settings.value( MUIOPTION_DEFAULT_GAME);
+}
+
+void SetWindowArea(const AREA *area)
+{
+ std::string error_string;
+ settings.set_value(MUIOPTION_WINDOW_X, area->x, OPTION_PRIORITY_CMDLINE,error_string);
+ settings.set_value(MUIOPTION_WINDOW_Y, area->y, OPTION_PRIORITY_CMDLINE,error_string);
+ settings.set_value(MUIOPTION_WINDOW_WIDTH, area->width, OPTION_PRIORITY_CMDLINE,error_string);
+ settings.set_value(MUIOPTION_WINDOW_HEIGHT, area->height, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+void GetWindowArea(AREA *area)
+{
+ area->x = settings.int_value(MUIOPTION_WINDOW_X);
+ area->y = settings.int_value(MUIOPTION_WINDOW_Y);
+ area->width = settings.int_value(MUIOPTION_WINDOW_WIDTH);
+ area->height = settings.int_value(MUIOPTION_WINDOW_HEIGHT);
+}
+
+void SetWindowState(UINT state)
+{
+ std::string error_string;
+ settings.set_value(MUIOPTION_WINDOW_STATE, (int)state, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+UINT GetWindowState(void)
+{
+ return settings.int_value(MUIOPTION_WINDOW_STATE);
+}
+
+void SetCustomColor(int iIndex, COLORREF uColor)
+{
+ const char *custom_color_string;
+ COLORREF custom_color[256];
+ char buffer[80];
+
+ custom_color_string = settings.value( MUIOPTION_CUSTOM_COLOR);
+ CusColorDecodeString(custom_color_string, custom_color);
+
+ custom_color[iIndex] = uColor;
+
+ CusColorEncodeString(custom_color, buffer);
+ std::string error_string;
+ settings.set_value(MUIOPTION_CUSTOM_COLOR, buffer, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+COLORREF GetCustomColor(int iIndex)
+{
+ const char *custom_color_string;
+ COLORREF custom_color[256];
+
+ custom_color_string = settings.value( MUIOPTION_CUSTOM_COLOR);
+ CusColorDecodeString(custom_color_string, custom_color);
+
+ if (custom_color[iIndex] == (COLORREF)-1)
+ return (COLORREF)RGB(0,0,0);
+
+ return custom_color[iIndex];
+}
+
+void SetListFont(const LOGFONT *font)
+{
+ char font_string[10000];
+ FontEncodeString(font, font_string);
+ std::string error_string;
+ settings.set_value(MUIOPTION_LIST_FONT, font_string, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+void GetListFont(LOGFONT *font)
+{
+ const char *font_string = settings.value( MUIOPTION_LIST_FONT);
+ FontDecodeString(font_string, font);
+}
+
+void SetListFontColor(COLORREF uColor)
+{
+ options_set_color_default(settings, MUIOPTION_TEXT_COLOR, uColor, COLOR_WINDOWTEXT);
+}
+
+COLORREF GetListFontColor(void)
+{
+ return options_get_color_default(settings, MUIOPTION_TEXT_COLOR, COLOR_WINDOWTEXT);
+}
+
+void SetListCloneColor(COLORREF uColor)
+{
+ options_set_color_default(settings, MUIOPTION_CLONE_COLOR, uColor, COLOR_WINDOWTEXT);
+}
+
+COLORREF GetListCloneColor(void)
+{
+ return options_get_color_default(settings, MUIOPTION_CLONE_COLOR, COLOR_WINDOWTEXT);
+}
+
+int GetShowTab(int tab)
+{
+ const char *show_tabs_string;
+ int show_tab_flags = 0;
+
+ show_tabs_string = settings.value( MUIOPTION_HIDE_TABS);
+ TabFlagsDecodeString(show_tabs_string, &show_tab_flags);
+ return (show_tab_flags & (1 << tab)) != 0;
+}
+
+void SetShowTab(int tab,BOOL show)
+{
+ const char *show_tabs_string;
+ int show_tab_flags = 0;
+ char buffer[10000];
+
+ show_tabs_string = settings.value( MUIOPTION_HIDE_TABS);
+ TabFlagsDecodeString(show_tabs_string, &show_tab_flags);
+
+ if (show)
+ show_tab_flags |= 1 << tab;
+ else
+ show_tab_flags &= ~(1 << tab);
+
+ TabFlagsEncodeString(show_tab_flags, buffer);
+ std::string error_string;
+ settings.set_value(MUIOPTION_HIDE_TABS, buffer, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+// don't delete the last one
+BOOL AllowedToSetShowTab(int tab,BOOL show)
+{
+ const char *show_tabs_string;
+ int show_tab_flags = 0;
+
+ if (show == TRUE)
+ return TRUE;
+
+ show_tabs_string = settings.value( MUIOPTION_HIDE_TABS);
+ TabFlagsDecodeString(show_tabs_string, &show_tab_flags);
+
+ show_tab_flags &= ~(1 << tab);
+ return show_tab_flags != 0;
+}
+
+int GetHistoryTab(void)
+{
+ return settings.int_value(MUIOPTION_HISTORY_TAB);
+}
+
+void SetHistoryTab(int tab, BOOL show)
+{
+ std::string error_string;
+ if (show)
+ settings.set_value(MUIOPTION_HISTORY_TAB, tab, OPTION_PRIORITY_CMDLINE,error_string);
+ else
+ settings.set_value(MUIOPTION_HISTORY_TAB, TAB_NONE, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+void SetColumnWidths(int width[])
+{
+ char column_width_string[80];
+ ColumnEncodeStringWithCount(width, column_width_string, COLUMN_MAX);
+ std::string error_string;
+ settings.set_value(MUIOPTION_COLUMN_WIDTHS, column_width_string, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+void GetColumnWidths(int width[])
+{
+ const char *column_width_string;
+ column_width_string = settings.value(MUIOPTION_COLUMN_WIDTHS);
+ ColumnDecodeStringWithCount(column_width_string, width, COLUMN_MAX);
+}
+
+void SetSplitterPos(int splitterId, int pos)
+{
+ const char *splitter_string;
+ int *splitter;
+ char buffer[80];
+
+ if (splitterId < GetSplitterCount())
+ {
+ splitter_string = settings.value(MUIOPTION_SPLITTERS);
+ splitter = (int *) alloca(GetSplitterCount() * sizeof(*splitter));
+ SplitterDecodeString(splitter_string, splitter);
+
+ splitter[splitterId] = pos;
+
+ SplitterEncodeString(splitter, buffer);
+ std::string error_string;
+ settings.set_value(MUIOPTION_SPLITTERS, buffer, OPTION_PRIORITY_CMDLINE,error_string);
+ }
+}
+
+int GetSplitterPos(int splitterId)
+{
+ const char *splitter_string;
+ int *splitter;
+
+ splitter_string = settings.value( MUIOPTION_SPLITTERS);
+ splitter = (int *) alloca(GetSplitterCount() * sizeof(*splitter));
+ SplitterDecodeString(splitter_string, splitter);
+
+ if (splitterId < GetSplitterCount())
+ return splitter[splitterId];
+
+ return -1; /* Error */
+}
+
+void SetColumnOrder(int order[])
+{
+ char column_order_string[80];
+ ColumnEncodeStringWithCount(order, column_order_string, COLUMN_MAX);
+ std::string error_string;
+ settings.set_value(MUIOPTION_COLUMN_ORDER, column_order_string, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+void GetColumnOrder(int order[])
+{
+ const char *column_order_string;
+ column_order_string = settings.value( MUIOPTION_COLUMN_ORDER);
+ ColumnDecodeStringWithCount(column_order_string, order, COLUMN_MAX);
+}
+
+void SetColumnShown(int shown[])
+{
+ char column_shown_string[80];
+ ColumnEncodeStringWithCount(shown, column_shown_string, COLUMN_MAX);
+ std::string error_string;
+ settings.set_value(MUIOPTION_COLUMN_SHOWN, column_shown_string, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+void GetColumnShown(int shown[])
+{
+ const char *column_shown_string;
+ column_shown_string = settings.value( MUIOPTION_COLUMN_SHOWN);
+ ColumnDecodeStringWithCount(column_shown_string, shown, COLUMN_MAX);
+}
+
+void SetSortColumn(int column)
+{
+ std::string error_string;
+ settings.set_value(MUIOPTION_SORT_COLUMN, column, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+int GetSortColumn(void)
+{
+ return settings.int_value(MUIOPTION_SORT_COLUMN);
+}
+
+void SetSortReverse(BOOL reverse)
+{
+ std::string error_string;
+ settings.set_value(MUIOPTION_SORT_REVERSED, reverse, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+BOOL GetSortReverse(void)
+{
+ return settings.bool_value( MUIOPTION_SORT_REVERSED);
+}
+
+const char* GetLanguageUI(void)
+{
+ return global.value(OPTION_LANGUAGE);
+}
+
+bool GetEnablePlugins(void)
+{
+ return global.bool_value(OPTION_PLUGINS);
+}
+
+const char* GetPlugins(void)
+{
+ return global.value(OPTION_PLUGIN);
+}
+
+const char* GetRomDirs(void)
+{
+ return global.media_path();
+}
+
+void SetRomDirs(const char* paths)
+{
+ std::string error_string;
+ global.set_value(OPTION_MEDIAPATH, paths, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+const char* GetHashDirs(void)
+{
+ return global.hash_path();
+}
+
+void SetHashDirs(const char* paths)
+{
+ std::string error_string;
+ global.set_value(OPTION_HASHPATH, paths, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+const char* GetSampleDirs(void)
+{
+ return global.value(OPTION_SAMPLEPATH);
+}
+
+void SetSampleDirs(const char* paths)
+{
+ std::string error_string;
+ global.set_value(OPTION_SAMPLEPATH, paths, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+const char * GetIniDir(void)
+{
+ const char *ini_dir;
+ const char *s;
+
+ ini_dir = global.value(OPTION_INIPATH);
+ while((s = strchr(ini_dir, ';')) != NULL)
+ ini_dir = s + 1;
+
+ //ini_dir = "ini\0";
+ return ini_dir;
+
+}
+
+void SetIniDir(const char *path)
+{
+ std::string error_string;
+ global.set_value(OPTION_INIPATH, path, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+const char* GetCtrlrDir(void)
+{
+ return global.value(OPTION_CTRLRPATH);
+}
+
+void SetCtrlrDir(const char* path)
+{
+ std::string error_string;
+ global.set_value(OPTION_CTRLRPATH, path, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+const char* GetSWDir(void)
+{
+ return global.value(OPTION_SWPATH);
+}
+
+void SetSWDir(const char* path)
+{
+ std::string error_string;
+ global.set_value(OPTION_SWPATH, path, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+const char* GetCfgDir(void)
+{
+ return global.value(OPTION_CFG_DIRECTORY);
+}
+
+void SetCfgDir(const char* path)
+{
+ std::string error_string;
+ global.set_value(OPTION_CFG_DIRECTORY, path, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+const char* GetNvramDir(void)
+{
+ return global.value(OPTION_NVRAM_DIRECTORY);
+}
+
+void SetNvramDir(const char* path)
+{
+ std::string error_string;
+ global.set_value(OPTION_NVRAM_DIRECTORY, path, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+const char* GetInpDir(void)
+{
+ return global.value(OPTION_INPUT_DIRECTORY);
+}
+
+void SetInpDir(const char* path)
+{
+ std::string error_string;
+ global.set_value(OPTION_INPUT_DIRECTORY, path, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+const char* GetImgDir(void)
+{
+ return global.value(OPTION_SNAPSHOT_DIRECTORY);
+}
+
+void SetImgDir(const char* path)
+{
+ std::string error_string;
+ global.set_value(OPTION_SNAPSHOT_DIRECTORY, path, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+const char* GetStateDir(void)
+{
+ return global.value(OPTION_STATE_DIRECTORY);
+}
+
+void SetStateDir(const char* path)
+{
+ std::string error_string;
+ global.set_value(OPTION_STATE_DIRECTORY, path, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+const char* GetArtDir(void)
+{
+ return global.value(OPTION_ARTPATH);
+}
+
+void SetArtDir(const char* path)
+{
+ std::string error_string;
+ global.set_value(OPTION_ARTPATH, path, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+const char* GetFontDir(void)
+{
+ return global.value(OPTION_FONTPATH);
+}
+
+void SetFontDir(const char* paths)
+{
+ std::string error_string;
+ global.set_value(OPTION_FONTPATH, paths, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+const char* GetCrosshairDir(void)
+{
+ return global.value(OPTION_CROSSHAIRPATH);
+}
+
+void SetCrosshairDir(const char* paths)
+{
+ std::string error_string;
+ global.set_value(OPTION_CROSSHAIRPATH, paths, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+const char* GetFlyerDir(void)
+{
+ return mewui.value(OPTION_FLYERS_PATH);
+}
+
+void SetFlyerDir(const char* path)
+{
+ std::string error_string;
+ mewui.set_value(OPTION_FLYERS_PATH, path, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+const char* GetCabinetDir(void)
+{
+ return mewui.value(OPTION_CABINETS_PATH);
+}
+
+void SetCabinetDir(const char* path)
+{
+ std::string error_string;
+ mewui.set_value(OPTION_CABINETS_PATH, path, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+const char* GetMarqueeDir(void)
+{
+ return mewui.value(OPTION_MARQUEES_PATH);
+}
+
+void SetMarqueeDir(const char* path)
+{
+ std::string error_string;
+ mewui.set_value(OPTION_MARQUEES_PATH, path, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+const char* GetTitlesDir(void)
+{
+ return mewui.value(OPTION_TITLES_PATH);
+}
+
+void SetTitlesDir(const char* path)
+{
+ std::string error_string;
+ mewui.set_value(OPTION_TITLES_PATH, path, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+const char * GetControlPanelDir(void)
+{
+ return mewui.value(OPTION_CPANELS_PATH);
+}
+
+void SetControlPanelDir(const char *path)
+{
+ std::string error_string;
+ mewui.set_value(OPTION_CPANELS_PATH, path, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+const char * GetPcbDir(void)
+{
+ return mewui.value(OPTION_PCBS_PATH);
+}
+
+void SetPcbDir(const char *path)
+{
+ std::string error_string;
+ mewui.set_value(OPTION_PCBS_PATH, path, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+const char* GetPluginsDir(void)
+{
+ return global.value(OPTION_PLUGINSPATH);
+}
+
+void SetPluginsDir(const char* path)
+{
+ std::string error_string;
+ global.set_value(OPTION_PLUGINSPATH, path, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+const char* GetLangDir(void)
+{
+ return global.value(OPTION_LANGUAGEPATH);
+}
+
+void SetLangDir(const char* path)
+{
+ std::string error_string;
+ global.set_value(OPTION_LANGUAGEPATH, path, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+const char * GetDiffDir(void)
+{
+ return global.value(OPTION_DIFF_DIRECTORY);
+}
+
+void SetDiffDir(const char* path)
+{
+ std::string error_string;
+ global.set_value(OPTION_DIFF_DIRECTORY, path, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+const char* GetIconsDir(void)
+{
+ return settings.value( MUIOPTION_ICONS_DIRECTORY);
+}
+
+void SetIconsDir(const char* path)
+{
+ std::string error_string;
+ settings.set_value(MUIOPTION_ICONS_DIRECTORY, path, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+const char* GetBgDir (void)
+{
+ return settings.value( MUIOPTION_BACKGROUND_DIRECTORY);
+}
+
+void SetBgDir (const char* path)
+{
+ std::string error_string;
+ settings.set_value(MUIOPTION_BACKGROUND_DIRECTORY, path, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+const char * GetDatsDir(void)
+{
+ const char* t = settings.value( MUIOPTION_DATS_DIRECTORY);
+ const char* t1 = strtok((char*)t, ";");
+ if (t1)
+ return t1;
+ else
+ return t;
+ //return settings.value( MUIOPTION_DATS_DIRECTORY);
+ //return mewui.value(OPTION_HISTORY_PATH);
+}
+
+void SetDatsDir(const char *path)
+{
+ std::string error_string;
+ settings.set_value(MUIOPTION_DATS_DIRECTORY, path, OPTION_PRIORITY_CMDLINE,error_string);
+ //mewui.set_value(OPTION_HISTORY_PATH, path, OPTION_PRIORITY_CMDLINE, error_string);
+}
+
+const char* GetFolderDir(void)
+{
+ return mewui.value(OPTION_EXTRAINI_PATH);
+}
+
+void SetFolderDir(const char* path)
+{
+ std::string error_string;
+ mewui.set_value(OPTION_EXTRAINI_PATH, path, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+const char* GetCheatDir(void)
+{
+ return global.value(OPTION_CHEATPATH);
+}
+
+void SetCheatDir(const char* path)
+{
+ std::string error_string;
+ global.set_value(OPTION_CHEATPATH, path, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+const char* GetSnapName(void)
+{
+ return global.value(OPTION_SNAPNAME);
+}
+
+void SetSnapName(const char* pattern)
+{
+ std::string error_string;
+ global.set_value(OPTION_SNAPNAME, pattern, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+void ResetGameOptions(int driver_index)
+{
+ assert(0 <= driver_index && driver_index < driver_list::total());
+
+ //save_options(NULL, OPTIONS_GAME, driver_index);
+}
+
+void ResetGameDefaults(void)
+{
+ // Walk the global settings and reset everything to defaults;
+ ResetToDefaults(global, OPTION_PRIORITY_CMDLINE);
+ save_options(global, OPTIONS_GLOBAL, GLOBAL_OPTIONS);
+}
+
+/*
+ * Reset all game, vector and source options to defaults.
+ * No reason to reboot if this is done.
+ */
+void ResetAllGameOptions(void)
+{
+ for (int i = 0; i < driver_list::total(); i++)
+ ResetGameOptions(i);
+}
+
+int GetRomAuditResults(int driver_index)
+{
+ return game_opts.rom(driver_index);
+}
+
+void SetRomAuditResults(int driver_index, int audit_results)
+{
+ game_opts.rom(driver_index, audit_results);
+}
+
+int GetSampleAuditResults(int driver_index)
+{
+ return game_opts.sample(driver_index);
+}
+
+void SetSampleAuditResults(int driver_index, int audit_results)
+{
+ game_opts.sample(driver_index, audit_results);
+}
+
+static void IncrementPlayVariable(int driver_index, const char *play_variable, int increment)
+{
+ int count = 0;
+
+ if (strcmp(play_variable, "count") == 0)
+ {
+ count = game_opts.play_count(driver_index);
+ game_opts.play_count(driver_index, count + increment);
+ }
+ else if (strcmp(play_variable, "time") == 0)
+ {
+ count = game_opts.play_time(driver_index);
+ game_opts.play_time(driver_index, count + increment);
+ }
+}
+
+void IncrementPlayCount(int driver_index)
+{
+ IncrementPlayVariable(driver_index, "count", 1);
+}
+
+int GetPlayCount(int driver_index)
+{
+ return game_opts.play_count(driver_index);
+}
+
+static void ResetPlayVariable(int driver_index, const char *play_variable)
+{
+ if (driver_index < 0)
+ {
+ /* all games */
+ for (int i = 0; i< driver_list::total(); i++)
+ {
+ ResetPlayVariable(i, play_variable);
+ }
+ }
+ else
+ {
+ if (strcmp(play_variable, "count") == 0)
+ game_opts.play_count(driver_index, 0);
+ else if (strcmp(play_variable, "time") == 0)
+ game_opts.play_time(driver_index, 0);
+ }
+}
+
+void ResetPlayCount(int driver_index)
+{
+ ResetPlayVariable(driver_index, "count");
+}
+
+void ResetPlayTime(int driver_index)
+{
+ ResetPlayVariable(driver_index, "time");
+}
+
+int GetPlayTime(int driver_index)
+{
+ return game_opts.play_time(driver_index);
+}
+
+void IncrementPlayTime(int driver_index,int playtime)
+{
+ IncrementPlayVariable(driver_index, "time", playtime);
+}
+
+void GetTextPlayTime(int driver_index, char *buf)
+{
+
+ assert(0 <= driver_index && driver_index < driver_list::total());
+ int temp = GetPlayTime(driver_index);
+ int hour = temp / 3600;
+ temp = temp - 3600*hour;
+ int minute = temp / 60; //Calc Minutes
+ int second = temp - 60*minute;
+
+ if (hour == 0)
+ sprintf(buf, "%d:%02d", minute, second );
+ else
+ sprintf(buf, "%d:%02d:%02d", hour, minute, second );
+}
+
+input_seq* Get_ui_key_up(void)
+{
+ return options_get_input_seq(settings, MUIOPTION_UI_KEY_UP);
+}
+
+input_seq* Get_ui_key_down(void)
+{
+ return options_get_input_seq(settings, MUIOPTION_UI_KEY_DOWN);
+}
+
+input_seq* Get_ui_key_left(void)
+{
+ return options_get_input_seq(settings, MUIOPTION_UI_KEY_LEFT);
+}
+
+input_seq* Get_ui_key_right(void)
+{
+ return options_get_input_seq(settings, MUIOPTION_UI_KEY_RIGHT);
+}
+
+input_seq* Get_ui_key_start(void)
+{
+ return options_get_input_seq(settings, MUIOPTION_UI_KEY_START);
+}
+
+input_seq* Get_ui_key_pgup(void)
+{
+ return options_get_input_seq(settings, MUIOPTION_UI_KEY_PGUP);
+}
+
+input_seq* Get_ui_key_pgdwn(void)
+{
+ return options_get_input_seq(settings, MUIOPTION_UI_KEY_PGDWN);
+}
+
+input_seq* Get_ui_key_home(void)
+{
+ return options_get_input_seq(settings, MUIOPTION_UI_KEY_HOME);
+}
+
+input_seq* Get_ui_key_end(void)
+{
+ return options_get_input_seq(settings, MUIOPTION_UI_KEY_END);
+}
+
+input_seq* Get_ui_key_ss_change(void)
+{
+ return options_get_input_seq(settings, MUIOPTION_UI_KEY_SS_CHANGE);
+}
+
+input_seq* Get_ui_key_history_up(void)
+{
+ return options_get_input_seq(settings, MUIOPTION_UI_KEY_HISTORY_UP);
+}
+
+input_seq* Get_ui_key_history_down(void)
+{
+ return options_get_input_seq(settings, MUIOPTION_UI_KEY_HISTORY_DOWN);
+}
+
+input_seq* Get_ui_key_context_filters(void)
+{
+ return options_get_input_seq(settings, MUIOPTION_UI_KEY_CONTEXT_FILTERS);
+}
+
+input_seq* Get_ui_key_select_random(void)
+{
+ return options_get_input_seq(settings, MUIOPTION_UI_KEY_SELECT_RANDOM);
+}
+
+input_seq* Get_ui_key_game_audit(void)
+{
+ return options_get_input_seq(settings, MUIOPTION_UI_KEY_GAME_AUDIT);
+}
+
+input_seq* Get_ui_key_game_properties(void)
+{
+ return options_get_input_seq(settings, MUIOPTION_UI_KEY_GAME_PROPERTIES);
+}
+
+input_seq* Get_ui_key_help_contents(void)
+{
+ return options_get_input_seq(settings, MUIOPTION_UI_KEY_HELP_CONTENTS);
+}
+
+input_seq* Get_ui_key_update_gamelist(void)
+{
+ return options_get_input_seq(settings, MUIOPTION_UI_KEY_UPDATE_GAMELIST);
+}
+
+input_seq* Get_ui_key_view_folders(void)
+{
+ return options_get_input_seq(settings, MUIOPTION_UI_KEY_VIEW_FOLDERS);
+}
+
+input_seq* Get_ui_key_view_fullscreen(void)
+{
+ return options_get_input_seq(settings, MUIOPTION_UI_KEY_VIEW_FULLSCREEN);
+}
+
+input_seq* Get_ui_key_view_pagetab(void)
+{
+ return options_get_input_seq(settings, MUIOPTION_UI_KEY_VIEW_PAGETAB);
+}
+
+input_seq* Get_ui_key_view_picture_area(void)
+{
+ return options_get_input_seq(settings, MUIOPTION_UI_KEY_VIEW_PICTURE_AREA);
+}
+
+input_seq* Get_ui_key_view_software_area(void)
+{
+ return options_get_input_seq(settings, MUIOPTION_UI_KEY_VIEW_SOFTWARE_AREA);
+}
+
+input_seq* Get_ui_key_view_status(void)
+{
+ return options_get_input_seq(settings, MUIOPTION_UI_KEY_VIEW_STATUS);
+}
+
+input_seq* Get_ui_key_view_toolbars(void)
+{
+ return options_get_input_seq(settings, MUIOPTION_UI_KEY_VIEW_TOOLBARS);
+}
+
+input_seq* Get_ui_key_view_tab_cabinet(void)
+{
+ return options_get_input_seq(settings, MUIOPTION_UI_KEY_VIEW_TAB_CABINET);
+}
+
+input_seq* Get_ui_key_view_tab_cpanel(void)
+{
+ return options_get_input_seq(settings, MUIOPTION_UI_KEY_VIEW_TAB_CPANEL);
+}
+
+input_seq* Get_ui_key_view_tab_flyer(void)
+{
+ return options_get_input_seq(settings, MUIOPTION_UI_KEY_VIEW_TAB_FLYER);
+}
+
+input_seq* Get_ui_key_view_tab_history(void)
+{
+ return options_get_input_seq(settings, MUIOPTION_UI_KEY_VIEW_TAB_HISTORY);
+}
+
+input_seq* Get_ui_key_view_tab_marquee(void)
+{
+ return options_get_input_seq(settings, MUIOPTION_UI_KEY_VIEW_TAB_MARQUEE);
+}
+
+input_seq* Get_ui_key_view_tab_screenshot(void)
+{
+ return options_get_input_seq(settings, MUIOPTION_UI_KEY_VIEW_TAB_SCREENSHOT);
+}
+
+input_seq* Get_ui_key_view_tab_title(void)
+{
+ return options_get_input_seq(settings, MUIOPTION_UI_KEY_VIEW_TAB_TITLE);
+}
+
+input_seq* Get_ui_key_view_tab_pcb(void)
+{
+ return options_get_input_seq(settings, MUIOPTION_UI_KEY_VIEW_TAB_PCB);
+}
+
+input_seq* Get_ui_key_quit(void)
+{
+ return options_get_input_seq(settings, MUIOPTION_UI_KEY_QUIT);
+}
+
+static int GetUIJoy(const char *option_name, int joycodeIndex)
+{
+ const char *joycodes_string;
+ int joycodes[4];
+
+ assert(0 <= joycodeIndex && joycodeIndex < 4);
+ joycodes_string = settings.value( option_name);
+ ColumnDecodeStringWithCount(joycodes_string, joycodes, ARRAY_LENGTH(joycodes));
+ return joycodes[joycodeIndex];
+}
+
+static void SetUIJoy(const char *option_name, int joycodeIndex, int val)
+{
+ const char *joycodes_string;
+ int joycodes[4];
+ char buffer[1024];
+
+ assert(0 <= joycodeIndex && joycodeIndex < 4);
+ joycodes_string = settings.value( option_name);
+ ColumnDecodeStringWithCount(joycodes_string, joycodes, ARRAY_LENGTH(joycodes));
+
+ joycodes[joycodeIndex] = val;
+ ColumnEncodeStringWithCount(joycodes, buffer, ARRAY_LENGTH(joycodes));
+ std::string error_string;
+ settings.set_value(option_name, buffer, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+int GetUIJoyUp(int joycodeIndex)
+{
+ return GetUIJoy(MUIOPTION_UI_JOY_UP, joycodeIndex);
+}
+
+void SetUIJoyUp(int joycodeIndex, int val)
+{
+ SetUIJoy(MUIOPTION_UI_JOY_UP, joycodeIndex, val);
+}
+
+int GetUIJoyDown(int joycodeIndex)
+{
+ return GetUIJoy(MUIOPTION_UI_JOY_DOWN, joycodeIndex);
+}
+
+void SetUIJoyDown(int joycodeIndex, int val)
+{
+ SetUIJoy(MUIOPTION_UI_JOY_DOWN, joycodeIndex, val);
+}
+
+int GetUIJoyLeft(int joycodeIndex)
+{
+ return GetUIJoy(MUIOPTION_UI_JOY_LEFT, joycodeIndex);
+}
+
+void SetUIJoyLeft(int joycodeIndex, int val)
+{
+ SetUIJoy(MUIOPTION_UI_JOY_LEFT, joycodeIndex, val);
+}
+
+int GetUIJoyRight(int joycodeIndex)
+{
+ return GetUIJoy(MUIOPTION_UI_JOY_RIGHT, joycodeIndex);
+}
+
+void SetUIJoyRight(int joycodeIndex, int val)
+{
+ SetUIJoy(MUIOPTION_UI_JOY_RIGHT, joycodeIndex, val);
+}
+
+int GetUIJoyStart(int joycodeIndex)
+{
+ return GetUIJoy(MUIOPTION_UI_JOY_START, joycodeIndex);
+}
+
+void SetUIJoyStart(int joycodeIndex, int val)
+{
+ SetUIJoy(MUIOPTION_UI_JOY_START, joycodeIndex, val);
+}
+
+int GetUIJoyPageUp(int joycodeIndex)
+{
+ return GetUIJoy(MUIOPTION_UI_JOY_PGUP, joycodeIndex);
+}
+
+void SetUIJoyPageUp(int joycodeIndex, int val)
+{
+ SetUIJoy(MUIOPTION_UI_JOY_PGUP, joycodeIndex, val);
+}
+
+int GetUIJoyPageDown(int joycodeIndex)
+{
+ return GetUIJoy(MUIOPTION_UI_JOY_PGDWN, joycodeIndex);
+}
+
+void SetUIJoyPageDown(int joycodeIndex, int val)
+{
+ SetUIJoy(MUIOPTION_UI_JOY_PGDWN, joycodeIndex, val);
+}
+
+int GetUIJoyHome(int joycodeIndex)
+{
+ return GetUIJoy(MUIOPTION_UI_JOY_HOME, joycodeIndex);
+}
+
+void SetUIJoyHome(int joycodeIndex, int val)
+{
+ SetUIJoy(MUIOPTION_UI_JOY_HOME, joycodeIndex, val);
+}
+
+int GetUIJoyEnd(int joycodeIndex)
+{
+ return GetUIJoy(MUIOPTION_UI_JOY_END, joycodeIndex);
+}
+
+void SetUIJoyEnd(int joycodeIndex, int val)
+{
+ SetUIJoy(MUIOPTION_UI_JOY_END, joycodeIndex, val);
+}
+
+int GetUIJoySSChange(int joycodeIndex)
+{
+ return GetUIJoy(MUIOPTION_UI_JOY_SS_CHANGE, joycodeIndex);
+}
+
+void SetUIJoySSChange(int joycodeIndex, int val)
+{
+ SetUIJoy(MUIOPTION_UI_JOY_SS_CHANGE, joycodeIndex, val);
+}
+
+int GetUIJoyHistoryUp(int joycodeIndex)
+{
+ return GetUIJoy(MUIOPTION_UI_JOY_HISTORY_UP, joycodeIndex);
+}
+
+void SetUIJoyHistoryUp(int joycodeIndex, int val)
+{
+ SetUIJoy(MUIOPTION_UI_JOY_HISTORY_UP, joycodeIndex, val);
+}
+
+int GetUIJoyHistoryDown(int joycodeIndex)
+{
+ return GetUIJoy(MUIOPTION_UI_JOY_HISTORY_DOWN, joycodeIndex);
+}
+
+void SetUIJoyHistoryDown(int joycodeIndex, int val)
+{
+ SetUIJoy(MUIOPTION_UI_JOY_HISTORY_DOWN, joycodeIndex, val);
+}
+
+void SetUIJoyExec(int joycodeIndex, int val)
+{
+ SetUIJoy(MUIOPTION_UI_JOY_EXEC, joycodeIndex, val);
+}
+
+int GetUIJoyExec(int joycodeIndex)
+{
+ return GetUIJoy(MUIOPTION_UI_JOY_EXEC, joycodeIndex);
+}
+
+const char * GetExecCommand(void)
+{
+ return settings.value( MUIOPTION_EXEC_COMMAND);
+}
+
+void SetExecCommand(char *cmd)
+{
+ std::string error_string;
+ settings.set_value(MUIOPTION_EXEC_COMMAND, cmd, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+int GetExecWait(void)
+{
+ return settings.int_value(MUIOPTION_EXEC_WAIT);
+}
+
+void SetExecWait(int wait)
+{
+ std::string error_string;
+ settings.set_value(MUIOPTION_EXEC_WAIT, wait, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+BOOL GetHideMouseOnStartup(void)
+{
+ return settings.bool_value( MUIOPTION_HIDE_MOUSE);
+}
+
+void SetHideMouseOnStartup(BOOL hide)
+{
+ std::string error_string;
+ settings.set_value(MUIOPTION_HIDE_MOUSE, hide, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+BOOL GetRunFullScreen(void)
+{
+ return settings.bool_value( MUIOPTION_FULL_SCREEN);
+}
+
+void SetRunFullScreen(BOOL fullScreen)
+{
+ std::string error_string;
+ settings.set_value(MUIOPTION_FULL_SCREEN, fullScreen, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+/***************************************************************************
+ Internal functions
+ ***************************************************************************/
+
+static void CusColorEncodeString(const COLORREF *value, char* str)
+{
+ char tmpStr[256];
+
+ sprintf(tmpStr, "%u", (int) value[0]);
+
+ strcpy(str, tmpStr);
+
+ for (int i = 1; i < 16; i++)
+ {
+ sprintf(tmpStr, ",%u", (unsigned) value[i]);
+ strcat(str, tmpStr);
+ }
+}
+
+static void CusColorDecodeString(const char* str, COLORREF *value)
+{
+ char *s, *p;
+ char tmpStr[256];
+
+ strcpy(tmpStr, str);
+ p = tmpStr;
+
+ for (int i = 0; p && i < 16; i++)
+ {
+ s = p;
+
+ if ((p = strchr(s,',')) != NULL && *p == ',')
+ {
+ *p = '\0';
+ p++;
+ }
+ value[i] = atoi(s);
+ }
+}
+
+
+void ColumnEncodeStringWithCount(const int *value, char *str, int count)
+{
+ char buffer[256];
+
+ snprintf(buffer,sizeof(buffer),"%d",value[0]);
+
+ strcpy(str,buffer);
+
+ for (int i = 1; i < count; i++)
+ {
+ snprintf(buffer,sizeof(buffer),",%d",value[i]);
+ strcat(str,buffer);
+ }
+}
+
+void ColumnDecodeStringWithCount(const char* str, int *value, int count)
+{
+ char *s, *p;
+ char tmpStr[256];
+
+ if (str == NULL)
+ return;
+
+ strcpy(tmpStr, str);
+ p = tmpStr;
+
+ for (int i = 0; p && i < count; i++)
+ {
+ s = p;
+
+ if ((p = strchr(s,',')) != NULL && *p == ',')
+ {
+ *p = '\0';
+ p++;
+ }
+ value[i] = atoi(s);
+ }
+}
+
+static void SplitterEncodeString(const int *value, char* str)
+{
+ char tmpStr[256];
+
+ sprintf(tmpStr, "%d", value[0]);
+
+ strcpy(str, tmpStr);
+
+ for (int i = 1; i < GetSplitterCount(); i++)
+ {
+ sprintf(tmpStr, ",%d", value[i]);
+ strcat(str, tmpStr);
+ }
+}
+
+static void SplitterDecodeString(const char *str, int *value)
+{
+ char *s, *p;
+ char tmpStr[256];
+
+ strcpy(tmpStr, str);
+ p = tmpStr;
+
+ for (int i = 0; p && i < GetSplitterCount(); i++)
+ {
+ s = p;
+
+ if ((p = strchr(s,',')) != NULL && *p == ',')
+ {
+ *p = '\0';
+ p++;
+ }
+ value[i] = atoi(s);
+ }
+}
+
+/* Parse the given comma-delimited string into a LOGFONT structure */
+static void FontDecodeString(const char* str, LOGFONT *f)
+{
+ const char* ptr;
+ TCHAR* t_ptr;
+
+ sscanf(str, "%li,%li,%li,%li,%li,%i,%i,%i,%i,%i,%i,%i,%i",
+ &f->lfHeight,
+ &f->lfWidth,
+ &f->lfEscapement,
+ &f->lfOrientation,
+ &f->lfWeight,
+ (int*)&f->lfItalic,
+ (int*)&f->lfUnderline,
+ (int*)&f->lfStrikeOut,
+ (int*)&f->lfCharSet,
+ (int*)&f->lfOutPrecision,
+ (int*)&f->lfClipPrecision,
+ (int*)&f->lfQuality,
+ (int*)&f->lfPitchAndFamily);
+ ptr = strrchr(str, ',');
+ if (ptr)
+ {
+ t_ptr = ui_wstring_from_utf8(ptr + 1);
+ if( !t_ptr )
+ return;
+ _tcscpy(f->lfFaceName, t_ptr);
+ free(t_ptr);
+ }
+}
+
+/* Encode the given LOGFONT structure into a comma-delimited string */
+static void FontEncodeString(const LOGFONT *f, char *str)
+{
+ char* utf8_FaceName = ui_utf8_from_wstring(f->lfFaceName);
+ if( !utf8_FaceName )
+ return;
+
+ sprintf(str, "%li,%li,%li,%li,%li,%i,%i,%i,%i,%i,%i,%i,%i,%s",
+ f->lfHeight,
+ f->lfWidth,
+ f->lfEscapement,
+ f->lfOrientation,
+ f->lfWeight,
+ f->lfItalic,
+ f->lfUnderline,
+ f->lfStrikeOut,
+ f->lfCharSet,
+ f->lfOutPrecision,
+ f->lfClipPrecision,
+ f->lfQuality,
+ f->lfPitchAndFamily,
+ utf8_FaceName);
+
+ free(utf8_FaceName);
+}
+
+static void TabFlagsEncodeString(int data, char *str)
+{
+ int num_saved = 0;
+
+ strcpy(str,"");
+
+ // we save the ones that are NOT displayed, so we can add new ones
+ // and upgraders will see them
+ for ( int i=0; i<MAX_TAB_TYPES; i++)
+ {
+ if (((data & (1 << i)) == 0) && GetImageTabShortName(i))
+ {
+ if (num_saved > 0)
+ strcat(str, ", ");
+
+ strcat(str,GetImageTabShortName(i));
+ num_saved++;
+ }
+ }
+}
+
+static void TabFlagsDecodeString(const char *str, int *data)
+{
+ int j = 0;
+ char s[2000];
+ char *token;
+
+ snprintf(s, ARRAY_LENGTH(s), "%s", str);
+
+ // simple way to set all tab bits "on"
+ *data = (1 << MAX_TAB_TYPES) - 1;
+
+ token = strtok(s,", \t");
+ while (token)
+ {
+ for (j=0; j<MAX_TAB_TYPES; j++)
+ {
+ if (!GetImageTabShortName(j) || (strcmp(GetImageTabShortName(j), token) == 0))
+ {
+ // turn off this bit
+ *data &= ~(1 << j);
+ break;
+ }
+ }
+ token = strtok(NULL,", \t");
+ }
+
+ if (*data == 0)
+ {
+ // not allowed to hide all tabs, because then why even show the area?
+ *data = (1 << TAB_SCREENSHOT);
+ }
+}
+
+static void LoadSettingsFile(ui_options &opts, const char *filename)
+{
+ osd_file::error filerr;
+ util::core_file::ptr file;
+
+ filerr = util::core_file::open(filename, OPEN_FLAG_READ, file);
+ if (filerr == osd_file::error::NONE)
+ {
+ std::string error_string;
+ opts.parse_ini_file(*file, OPTION_PRIORITY_CMDLINE, OPTION_PRIORITY_CMDLINE, error_string);
+ file.reset();
+ }
+}
+
+static void LoadSettingsFile(winui_options &opts, const char *filename)
+{
+ osd_file::error filerr;
+ util::core_file::ptr file;
+
+ filerr = util::core_file::open(filename, OPEN_FLAG_READ, file);
+ if (filerr == osd_file::error::NONE)
+ {
+ std::string error_string;
+ opts.parse_ini_file(*file, OPTION_PRIORITY_CMDLINE, OPTION_PRIORITY_CMDLINE, error_string);
+ file.reset();
+ }
+}
+
+static void LoadSettingsFile(windows_options &opts, const char *filename)
+{
+ osd_file::error filerr;
+ util::core_file::ptr file;
+
+ filerr = util::core_file::open(filename, OPEN_FLAG_READ, file);
+ if (filerr == osd_file::error::NONE)
+ {
+ std::string error_string;
+ opts.parse_ini_file(*file, OPTION_PRIORITY_CMDLINE, OPTION_PRIORITY_CMDLINE, error_string);
+ file.reset();
+ }
+}
+
+// This saves changes to UI.INI only
+static void SaveSettingsFile(ui_options &opts, const char *filename)
+{
+ osd_file::error filerr = osd_file::error::NONE;
+ util::core_file::ptr file;
+
+ filerr = util::core_file::open(filename, OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS, file);
+
+ if (filerr == osd_file::error::NONE)
+ {
+ std::string inistring = opts.output_ini();
+ file->puts(inistring.c_str());
+ file.reset();
+ }
+}
+
+
+
+// This saves changes to MAMEUI.INI only
+static void SaveSettingsFile(winui_options &opts, const char *filename)
+{
+ osd_file::error filerr = osd_file::error::NONE;
+ util::core_file::ptr file;
+
+ filerr = util::core_file::open(filename, OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS, file);
+
+ if (filerr == osd_file::error::NONE)
+ {
+ std::string inistring = opts.output_ini();
+ file->puts(inistring.c_str());
+ file.reset();
+ }
+}
+
+
+
+// This saves changes to <game>.INI or MAME.INI only
+static void SaveSettingsFile(windows_options &opts, const char *filename)
+{
+ osd_file::error filerr = osd_file::error::NONE;
+ util::core_file::ptr file;
+
+ filerr = util::core_file::open(filename, OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS, file);
+
+ if (filerr == osd_file::error::NONE)
+ {
+ std::string inistring = opts.output_ini();
+ // printf("=====%s=====\n%s\n",filename,inistring.c_str()); // for debugging
+ file->puts(inistring.c_str());
+ file.reset();
+ }
+}
+
+
+
+/* Register access functions below */
+static void LoadOptionsAndSettings(void)
+{
+// char buffer[MAX_PATH];
+
+ // parse MAMEui.ini - always in the current directory.
+ LoadSettingsFile(settings, UI_INI_FILENAME);
+ LoadSettingsFile(mewui, MEWUI_FILENAME);
+
+ // parse GameInfo.ini - game options.
+ game_opts.load_file(GAMEINFO_INI_FILENAME);
+
+ // parse global options ini/mame32.ini
+ load_options(global, OPTIONS_GLOBAL, GLOBAL_OPTIONS);
+}
+
+void SetDirectories(windows_options &opts)
+{
+ std::string error_string;
+ opts.set_value(OPTION_MEDIAPATH, GetRomDirs(), OPTION_PRIORITY_CMDLINE, error_string);
+ opts.set_value(OPTION_SAMPLEPATH, GetSampleDirs(), OPTION_PRIORITY_CMDLINE, error_string);
+ opts.set_value(OPTION_INIPATH, GetIniDir(), OPTION_PRIORITY_CMDLINE, error_string);
+ opts.set_value(OPTION_CFG_DIRECTORY, GetCfgDir(), OPTION_PRIORITY_CMDLINE, error_string);
+ opts.set_value(OPTION_SNAPSHOT_DIRECTORY, GetImgDir(), OPTION_PRIORITY_CMDLINE, error_string);
+ opts.set_value(OPTION_INPUT_DIRECTORY, GetInpDir(), OPTION_PRIORITY_CMDLINE, error_string);
+ opts.set_value(OPTION_STATE_DIRECTORY, GetStateDir(), OPTION_PRIORITY_CMDLINE, error_string);
+ opts.set_value(OPTION_ARTPATH, GetArtDir(), OPTION_PRIORITY_CMDLINE, error_string);
+ opts.set_value(OPTION_NVRAM_DIRECTORY, GetNvramDir(), OPTION_PRIORITY_CMDLINE, error_string);
+ opts.set_value(OPTION_CTRLRPATH, GetCtrlrDir(), OPTION_PRIORITY_CMDLINE, error_string);
+ opts.set_value(OPTION_CHEATPATH, GetCheatDir(), OPTION_PRIORITY_CMDLINE, error_string);
+ opts.set_value(OPTION_CROSSHAIRPATH, GetCrosshairDir(), OPTION_PRIORITY_CMDLINE, error_string);
+ opts.set_value(OPTION_FONTPATH, GetFontDir(), OPTION_PRIORITY_CMDLINE, error_string);
+ opts.set_value(OPTION_DIFF_DIRECTORY, GetDiffDir(), OPTION_PRIORITY_CMDLINE, error_string);
+ opts.set_value(OPTION_SNAPNAME, GetSnapName(), OPTION_PRIORITY_CMDLINE, error_string);
+}
+
+// not used
+#if 0
+const char * GetFolderNameByID(UINT nID)
+{
+ UINT i;
+ extern const FOLDERDATA g_folderData[];
+ extern LPEXFOLDERDATA ExtraFolderData[];
+
+ for (i = 0; i < MAX_EXTRA_FOLDERS * MAX_EXTRA_SUBFOLDERS; i++)
+ if( ExtraFolderData[i] )
+ if (ExtraFolderData[i]->m_nFolderId == nID)
+ return ExtraFolderData[i]->m_szTitle;
+
+ for( i = 0; i < MAX_FOLDERS; i++)
+ if (g_folderData[i].m_nFolderId == nID)
+ return g_folderData[i].m_lpTitle;
+
+ return NULL;
+}
+#endif
+
+DWORD GetFolderFlags(int folder_index)
+{
+ LPTREEFOLDER lpFolder = GetFolder(folder_index);
+
+ if (lpFolder)
+ return lpFolder->m_dwFlags & F_MASK;
+
+ return 0;
+}
+
+
+/* Decode the flags into a DWORD */
+static DWORD DecodeFolderFlags(const char *buf)
+{
+ DWORD flags = 0;
+ int shift = 0;
+ const char *ptr = buf;
+
+ while (*ptr && (1 << shift) & F_MASK)
+ {
+ if (*ptr++ == '1')
+ {
+ flags |= (1 << shift);
+ }
+ shift++;
+ }
+ return flags;
+}
+
+/* Encode the flags into a string */
+static const char * EncodeFolderFlags(DWORD value)
+{
+ static char buf[40];
+ int shift = 0;
+
+ memset(buf,'\0', sizeof(buf));
+
+ while ((1 << shift) & F_MASK)
+ {
+ buf[shift] = (value & (1 << shift)) ? '1' : '0';
+ shift++;
+ }
+
+ return buf;
+}
+
+/* MSH 20080813
+ * Read the folder filters from MAMEui.ini. This must only
+ * be called AFTER the folders have all been created.
+ */
+void LoadFolderFlags(void)
+{
+ winui_options opts;
+ int i, numFolders = 0;
+ LPTREEFOLDER lpFolder;
+ options_entry entries[2] = { { 0 }, { 0 } };
+
+ memcpy(entries, filterOptions, sizeof(filterOptions));
+
+ numFolders = GetNumFolders();
+
+ for (i = 0; i < numFolders; i++)
+ {
+ lpFolder = GetFolder(i);
+
+ if (lpFolder)
+ {
+ char folder_name[256];
+ char *ptr;
+
+ // Convert spaces to underscores
+ strcpy(folder_name, lpFolder->m_lpTitle);
+ ptr = folder_name;
+ while (*ptr && *ptr != '\0')
+ {
+ if (*ptr == ' ')
+ {
+ *ptr = '_';
+ }
+ ptr++;
+ }
+
+ std::string option_name = std::string(folder_name) + "_filters";
+ // create entry
+ entries[0].name = option_name.c_str();
+ opts.add_entries(entries);
+ }
+ }
+
+ // These are overlaid at the end of our UI ini
+ // The normal read will skip them.
+ LoadSettingsFile(opts, UI_INI_FILENAME);
+
+ // retrieve the stored values
+ for (i = 0; i < numFolders; i++)
+ {
+ lpFolder = GetFolder(i);
+
+ if (lpFolder)
+ {
+ char folder_name[256];
+ char *ptr;
+ const char *value;
+
+ // Convert spaces to underscores
+ strcpy(folder_name, lpFolder->m_lpTitle);
+ ptr = folder_name;
+ while (*ptr && *ptr != '\0')
+ {
+ if (*ptr == ' ')
+ {
+ *ptr = '_';
+ }
+ ptr++;
+ }
+ std::string option_name = std::string(folder_name) + "_filters";
+ // get entry and decode it
+ value = opts.value(option_name.c_str());
+
+ if (value)
+ lpFolder->m_dwFlags |= DecodeFolderFlags(value) & F_MASK;
+ }
+ }
+}
+
+
+
+// Adds our folder flags to a temporary winui_options, for saving.
+static void AddFolderFlags(winui_options &opts)
+{
+ int numFolders = 0, num_entries = 0;
+ LPTREEFOLDER lpFolder;
+ options_entry entries[2] = { { 0 }, { 0 } };
+
+ entries[0].name = NULL;
+ entries[0].defvalue = NULL;
+ entries[0].flags = OPTION_HEADER;
+ entries[0].description = "FOLDER FILTERS";
+ opts.add_entries(entries);
+
+ memcpy(entries, filterOptions, sizeof(filterOptions));
+
+ numFolders = GetNumFolders();
+
+ for (int i = 0; i < numFolders; i++)
+ {
+ lpFolder = GetFolder(i);
+ if (lpFolder && (lpFolder->m_dwFlags & F_MASK) != 0)
+ {
+ char folder_name[256];
+ char *ptr;
+
+ // Convert spaces to underscores
+ strcpy(folder_name, lpFolder->m_lpTitle);
+ ptr = folder_name;
+ while (*ptr && *ptr != '\0')
+ {
+ if (*ptr == ' ')
+ {
+ *ptr = '_';
+ }
+ ptr++;
+ }
+
+ std::string option_name = std::string(folder_name) + "_filters";
+
+ // create entry
+ entries[0].name = option_name.c_str();
+ opts.add_entries(entries);
+
+ // store entry
+ std::string error_string;
+ opts.set_value(option_name.c_str(), EncodeFolderFlags(lpFolder->m_dwFlags), OPTION_PRIORITY_CMDLINE,error_string);
+
+ // increment counter
+ num_entries++;
+ }
+ }
+}
+
+// Save MAMEUI.ini
+void SaveOptions(void)
+{
+ // Add the folder flag to settings.
+ AddFolderFlags(settings);
+ // Save opts if it is non-null, else save settings.
+ // It will be null if there are no filters set.
+ SaveSettingsFile(settings, UI_INI_FILENAME);
+ SaveSettingsFile(mewui, MEWUI_FILENAME);
+}
+
+void SaveGameListOptions(void)
+{
+ // Save GameInfo.ini - game options.
+ game_opts.save_file(GAMEINFO_INI_FILENAME);
+}
+
+void SaveDefaultOptions(void)
+{
+ std::string fname = std::string(GetIniDir()) + PATH_SEPARATOR + std::string(emulator_info::get_configname()).append(".ini");
+ SaveSettingsFile(global, fname.c_str());
+}
+
+const char * GetVersionString(void)
+{
+ return emulator_info::get_build_version();
+}
+
+
+/* get options, based on passed in game number. */
+void load_options(windows_options &opts, OPTIONS_TYPE opt_type, int game_num)
+{
+ const game_driver *driver = NULL;
+ if (game_num > -1)
+ driver = &driver_list::driver(game_num);
+ CreateGameOptions(opts, opt_type, game_num);
+
+ // Try base ini first
+ std::string fname = std::string(emulator_info::get_configname()).append(".ini");
+ LoadSettingsFile(opts, fname.c_str());
+
+ if (opt_type == OPTIONS_SOURCE)
+ {
+ fname = std::string(GetIniDir()) + PATH_SEPARATOR + "source" + PATH_SEPARATOR + core_filename_extract_base(driver->source_file, true) + ".ini";
+ LoadSettingsFile(opts, fname.c_str());
+ return;
+ }
+
+ if (game_num > -2)
+ {
+ driver = &driver_list::driver(game_num);
+ // Now try global ini
+ fname = std::string(GetIniDir()) + PATH_SEPARATOR + std::string(emulator_info::get_configname()).append(".ini");
+ LoadSettingsFile(opts, fname.c_str());
+
+ if (game_num > -1)
+ {
+ // global swpath serves a different purpose than for games, so blank it out
+ std::string error_string;
+ opts.set_value(OPTION_SWPATH, "", OPTION_PRIORITY_CMDLINE,error_string);
+ // Lastly, gamename.ini
+ if (driver)
+ {
+ fname = std::string(GetIniDir()) + PATH_SEPARATOR + std::string(driver->name).append(".ini");
+ LoadSettingsFile(opts, fname.c_str());
+ }
+ }
+ }
+ SetDirectories(opts);
+}
+
+/* Save ini file based on game_number. */
+void save_options(windows_options &opts, OPTIONS_TYPE opt_type, int game_num)
+{
+ const game_driver *driver = NULL;
+ std::string filename, filepath;
+
+ if (game_num >= 0)
+ {
+ driver = &driver_list::driver(game_num);
+ if (driver)
+ {
+ filename.assign(driver->name);
+ if (opt_type == OPTIONS_SOURCE)
+ filepath = std::string(GetIniDir()) + PATH_SEPARATOR + "source" + PATH_SEPARATOR + core_filename_extract_base(driver->source_file, true) + ".ini";
+ }
+ }
+ else
+ if (game_num == -1)
+ filename = std::string(emulator_info::get_configname());
+
+ if (!filename.empty() && filepath.empty())
+ filepath = std::string(GetIniDir()).append(PATH_SEPARATOR).append(filename.c_str()).append(".ini");
+
+ if (game_num == -2)
+ filepath = std::string(emulator_info::get_configname()).append(".ini");
+
+ if (!filepath.empty())
+ {
+ SetDirectories(opts);
+ SaveSettingsFile(opts, filepath.c_str());
+// printf("Settings saved to %s\n",filepath.c_str());
+ }
+// else
+// printf("Unable to save settings\n");
+}
+
+
+// Reset the given windows_options to their default settings.
+static void ResetToDefaults(windows_options &opts, int priority)
+{
+ // iterate through the options setting each one back to the default value.
+ opts.revert(priority);
+}
+
+int GetDriverCache(int driver_index)
+{
+ return game_opts.cache(driver_index);
+}
+
+void SetDriverCache(int driver_index, int val)
+{
+ game_opts.cache(driver_index, val);
+}
+
+BOOL RequiredDriverCache(void)
+{
+ bool ret = false;
+
+ if ( strcmp(settings.value(MUIOPTION_VERSION), GetVersionString()) != 0 )
+ ret = true;
+
+ std::string error_string;
+ settings.set_value(MUIOPTION_VERSION, GetVersionString(), OPTION_PRIORITY_CMDLINE,error_string);
+
+ return ret;
+}
+
+// from optionsms.cpp (MESSUI)
+
+
+#define LOG_SOFTWARE 0
+
+void SetSLColumnOrder(int order[])
+{
+ char column_order_string[80];
+ ColumnEncodeStringWithCount(order, column_order_string, SL_COLUMN_MAX);
+ std::string error_string;
+ MameUISettings().set_value(MESSUI_SL_COLUMN_ORDER, column_order_string, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+void GetSLColumnOrder(int order[])
+{
+ const char *column_order_string;
+ column_order_string = MameUISettings().value(MESSUI_SL_COLUMN_ORDER);
+ ColumnDecodeStringWithCount(column_order_string, order, SL_COLUMN_MAX);
+}
+
+void SetSLColumnShown(int shown[])
+{
+ char column_shown_string[80];
+ ColumnEncodeStringWithCount(shown, column_shown_string, SL_COLUMN_MAX);
+ std::string error_string;
+ MameUISettings().set_value(MESSUI_SL_COLUMN_SHOWN, column_shown_string, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+void GetSLColumnShown(int shown[])
+{
+ const char *column_shown_string;
+ column_shown_string = MameUISettings().value(MESSUI_SL_COLUMN_SHOWN);
+ ColumnDecodeStringWithCount(column_shown_string, shown, SL_COLUMN_MAX);
+}
+
+void SetSLColumnWidths(int width[])
+{
+ char column_width_string[80];
+ ColumnEncodeStringWithCount(width, column_width_string, SL_COLUMN_MAX);
+ std::string error_string;
+ MameUISettings().set_value(MESSUI_SL_COLUMN_WIDTHS, column_width_string, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+void GetSLColumnWidths(int width[])
+{
+ const char *column_width_string;
+ column_width_string = MameUISettings().value(MESSUI_SL_COLUMN_WIDTHS);
+ ColumnDecodeStringWithCount(column_width_string, width, SL_COLUMN_MAX);
+}
+
+void SetSLSortColumn(int column)
+{
+ std::string error_string;
+ MameUISettings().set_value(MESSUI_SL_SORT_COLUMN, column, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+int GetSLSortColumn(void)
+{
+ return MameUISettings().int_value(MESSUI_SL_SORT_COLUMN);
+}
+
+void SetSLSortReverse(BOOL reverse)
+{
+ std::string error_string;
+ MameUISettings().set_value( MESSUI_SL_SORT_REVERSED, reverse, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+BOOL GetSLSortReverse(void)
+{
+ return MameUISettings().bool_value(MESSUI_SL_SORT_REVERSED);
+}
+
+void SetSWColumnOrder(int order[])
+{
+ char column_order_string[80];
+ ColumnEncodeStringWithCount(order, column_order_string, SW_COLUMN_MAX);
+ std::string error_string;
+ MameUISettings().set_value(MESSUI_SW_COLUMN_ORDER, column_order_string, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+void GetSWColumnOrder(int order[])
+{
+ const char *column_order_string;
+ column_order_string = MameUISettings().value(MESSUI_SW_COLUMN_ORDER);
+ ColumnDecodeStringWithCount(column_order_string, order, SW_COLUMN_MAX);
+}
+
+void SetSWColumnShown(int shown[])
+{
+ char column_shown_string[80];
+ ColumnEncodeStringWithCount(shown, column_shown_string, SW_COLUMN_MAX);
+ std::string error_string;
+ MameUISettings().set_value(MESSUI_SW_COLUMN_SHOWN, column_shown_string, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+void GetSWColumnShown(int shown[])
+{
+ const char *column_shown_string;
+ column_shown_string = MameUISettings().value(MESSUI_SW_COLUMN_SHOWN);
+ ColumnDecodeStringWithCount(column_shown_string, shown, SW_COLUMN_MAX);
+}
+
+void SetSWColumnWidths(int width[])
+{
+ char column_width_string[80];
+ ColumnEncodeStringWithCount(width, column_width_string, SW_COLUMN_MAX);
+ std::string error_string;
+ MameUISettings().set_value(MESSUI_SW_COLUMN_WIDTHS, column_width_string, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+void GetSWColumnWidths(int width[])
+{
+ const char *column_width_string;
+ column_width_string = MameUISettings().value(MESSUI_SW_COLUMN_WIDTHS);
+ ColumnDecodeStringWithCount(column_width_string, width, SW_COLUMN_MAX);
+}
+
+void SetSWSortColumn(int column)
+{
+ std::string error_string;
+ MameUISettings().set_value(MESSUI_SW_SORT_COLUMN, column, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+int GetSWSortColumn(void)
+{
+ return MameUISettings().int_value(MESSUI_SW_SORT_COLUMN);
+}
+
+void SetSWSortReverse(BOOL reverse)
+{
+ std::string error_string;
+ MameUISettings().set_value( MESSUI_SW_SORT_REVERSED, reverse, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+BOOL GetSWSortReverse(void)
+{
+ return MameUISettings().bool_value(MESSUI_SW_SORT_REVERSED);
+}
+
+void SetSelectedSoftware(int driver_index, const machine_config *config, const device_image_interface *dev, const char *software)
+{
+ std::string opt_name = dev->instance_name();
+ windows_options o;
+ std::string error_string;
+
+ if (LOG_SOFTWARE)
+ {
+ dprintf("SetSelectedSoftware(): dev=%p (\'%s\') software='%s'\n", dev, driver_list::driver(driver_index).name, software);
+ }
+
+ load_options(o, OPTIONS_GAME, driver_index);
+ o.set_value(opt_name.c_str(), software, OPTION_PRIORITY_CMDLINE,error_string);
+ save_options(o, OPTIONS_GAME, driver_index);
+}
+
+void SetCurrentSoftwareTab(const char *shortname)
+{
+ std::string error_string;
+ MameUISettings().set_value(MESSUI_SOFTWARE_TAB, shortname, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
+const char *GetCurrentSoftwareTab(void)
+{
+ return MameUISettings().value(MESSUI_SOFTWARE_TAB);
+}
+
+const char* GetSLDir(void)
+{
+ return MameUISettings().value(MESSUI_SLPATH);
+}
+
+void SetSLDir(const char* paths)
+{
+ std::string error_string;
+ MameUISettings().set_value(MESSUI_SLPATH, paths, OPTION_PRIORITY_CMDLINE,error_string);
+}
+
diff --git a/docs/release/src/osd/winui/mui_opts.h b/docs/release/src/osd/winui/mui_opts.h
new file mode 100644
index 00000000000..9367b46f8fb
--- /dev/null
+++ b/docs/release/src/osd/winui/mui_opts.h
@@ -0,0 +1,510 @@
+// For licensing and usage information, read docs/winui_license.txt
+// MASTER
+//****************************************************************************
+
+#ifndef MUI_OPTS_H
+#define MUI_OPTS_H
+
+#include "winmain.h"
+#include "winui.h"
+
+// These help categorise the folders on the left side
+// This list is mainly for documentation, although a few are used in code
+typedef enum {
+ // Global types
+ OPTIONS_GLOBAL = 0,
+ OPTIONS_HORIZONTAL,
+ OPTIONS_VERTICAL,
+ OPTIONS_RASTER,
+ OPTIONS_VECTOR,
+ OPTIONS_LCD,
+ OPTIONS_ARCADE,
+ OPTIONS_CONSOLE,
+ OPTIONS_COMPUTER,
+ OPTIONS_OTHERSYS,
+ // Local types
+ OPTIONS_SOURCE,
+ OPTIONS_GPARENT,
+ OPTIONS_PARENT,
+ OPTIONS_GAME,
+ // EOF marker
+ OPTIONS_MAX
+} OPTIONS_TYPE;
+
+// List of columns in the main game list
+enum
+{
+ COLUMN_GAMES = 0,
+ COLUMN_SRCDRIVERS,
+ COLUMN_DIRECTORY,
+ COLUMN_TYPE,
+ COLUMN_ORIENTATION,
+ COLUMN_MANUFACTURER,
+ COLUMN_YEAR,
+ COLUMN_PLAYED,
+ COLUMN_PLAYTIME,
+ COLUMN_CLONE,
+ COLUMN_TRACKBALL,
+#ifdef SHOW_COLUMN_SAMPLES
+ COLUMN_SAMPLES,
+#endif
+#ifdef SHOW_COLUMN_ROMS
+ COLUMN_ROMS,
+#endif
+ COLUMN_MAX
+};
+
+#define LOCAL_OPTIONS -10
+#define GLOBAL_OPTIONS -1
+
+typedef struct
+{
+ int x, y, width, height;
+} AREA;
+
+typedef struct
+{
+ char* screen;
+ char* aspect;
+ char* resolution;
+ char* view;
+} ScreenParams;
+
+// List of artwork types to display in the screen shot area
+enum
+{
+ // these must match array of strings image_tabs_long_name in options.c
+ // if you add new Tabs, be sure to also add them to the ComboBox init in dialogs.c
+ TAB_SCREENSHOT = 0,
+ TAB_FLYER,
+ TAB_CABINET,
+ TAB_MARQUEE,
+ TAB_TITLE,
+ TAB_CONTROL_PANEL,
+ TAB_PCB,
+ TAB_HISTORY,
+
+ MAX_TAB_TYPES,
+ BACKGROUND,
+ TAB_ALL,
+ TAB_NONE
+};
+// Because we have added the Options after MAX_TAB_TYPES, we have to subtract 3 here
+// (that's how many options we have after MAX_TAB_TYPES)
+#define TAB_SUBTRACT 3
+
+class winui_options : public core_options
+{
+public:
+ // construction/destruction
+ winui_options();
+
+private:
+ static const options_entry s_option_entries[];
+};
+
+BOOL OptionsInit(void);
+void OptionsExit(void);
+
+#define OPTIONS_TYPE_GLOBAL -1
+#define OPTIONS_TYPE_FOLDER -2
+
+void SetDirectories(windows_options &opts);
+
+void load_options(windows_options &opts, OPTIONS_TYPE opt_type, int game_num);
+void save_options(windows_options &opts, OPTIONS_TYPE opt_type, int game_num);
+
+void CreateGameOptions(windows_options &opts, OPTIONS_TYPE opt_type, int driver_index);
+
+winui_options & MameUISettings(void);
+windows_options & MameUIGlobal(void);
+
+void LoadFolderFlags(void);
+
+// Start interface to directories.h
+const char* GetRomDirs(void);
+void SetRomDirs(const char* paths);
+
+const char* GetSampleDirs(void);
+void SetSampleDirs(const char* paths);
+
+const char* GetArtDir(void);
+void SetArtDir(const char* path);
+
+const char* GetCabinetDir(void);
+void SetCabinetDir(const char* path);
+
+const char* GetCheatDir(void);
+void SetCheatDir(const char* path);
+
+const char* GetCfgDir(void);
+void SetCfgDir(const char* path);
+
+const char* GetControlPanelDir(void);
+void SetControlPanelDir(const char* path);
+
+const char* GetCtrlrDir(void);
+void SetCtrlrDir(const char* path);
+
+const char* GetCrosshairDir(void);
+void SetCrosshairDir(const char* paths);
+
+const char* GetDatsDir(void);
+void SetDatsDir(const char *path);
+
+const char* GetFlyerDir(void);
+void SetFlyerDir(const char* path);
+
+const char* GetFolderDir(void);
+void SetFolderDir(const char* path);
+
+const char* GetFontDir(void);
+void SetFontDir(const char* paths);
+
+const char* GetHashDirs(void);
+void SetHashDirs(const char* paths);
+
+const char* GetDiffDir(void);
+void SetDiffDir(const char* path);
+
+const char* GetIconsDir(void);
+void SetIconsDir(const char* path);
+
+const char* GetIniDir(void);
+void SetIniDir(const char *path);
+
+const char* GetInpDir(void);
+void SetInpDir(const char* path);
+
+const char* GetLangDir(void);
+void SetLangDir(const char* path);
+
+const char* GetMarqueeDir(void);
+void SetMarqueeDir(const char* path);
+
+const char* GetNvramDir(void);
+void SetNvramDir(const char* path);
+
+const char* GetPcbDir(void);
+void SetPcbDir(const char* path);
+
+const char* GetPluginsDir(void);
+void SetPluginsDir(const char* path);
+
+const char* GetImgDir(void);
+void SetImgDir(const char* path);
+
+const char* GetStateDir(void);
+void SetStateDir(const char* path);
+
+const char* GetTitlesDir(void);
+void SetTitlesDir(const char* path);
+
+const char* GetSLDir(void);
+void SetSLDir(const char* path);
+const char* GetSWDir(void);
+void SetSWDir(const char* path);
+// End interface to directories.h
+
+void SaveOptions(void);
+void SaveDefaultOptions(void);
+void SaveGameListOptions(void);
+
+void ResetGUI(void);
+void ResetGameDefaults(void);
+void ResetAllGameOptions(void);
+
+const char * GetImageTabLongName(int tab_index);
+const char * GetImageTabShortName(int tab_index);
+
+void SetViewMode(int val);
+int GetViewMode(void);
+
+void SetGameCheck(BOOL game_check);
+BOOL GetGameCheck(void);
+
+void SetVersionCheck(BOOL version_check);
+BOOL GetVersionCheck(void);
+
+void SetJoyGUI(BOOL use_joygui);
+BOOL GetJoyGUI(void);
+
+void SetKeyGUI(BOOL use_keygui);
+BOOL GetKeyGUI(void);
+
+void SetCycleScreenshot(int cycle_screenshot);
+int GetCycleScreenshot(void);
+
+void SetStretchScreenShotLarger(BOOL stretch);
+BOOL GetStretchScreenShotLarger(void);
+
+void SetScreenshotBorderSize(int size);
+int GetScreenshotBorderSize(void);
+
+void SetScreenshotBorderColor(COLORREF uColor);
+COLORREF GetScreenshotBorderColor(void);
+
+void SetFilterInherit(BOOL inherit);
+BOOL GetFilterInherit(void);
+
+void SetOffsetClones(BOOL offset);
+BOOL GetOffsetClones(void);
+
+void SetSavedFolderID(UINT val);
+UINT GetSavedFolderID(void);
+
+void SetShowScreenShot(BOOL val);
+BOOL GetShowScreenShot(void);
+
+void SetShowSoftware(BOOL val);
+BOOL GetShowSoftware(void);
+
+void SetShowFolderList(BOOL val);
+BOOL GetShowFolderList(void);
+
+BOOL GetShowFolder(int folder);
+void SetShowFolder(int folder,BOOL show);
+
+void SetShowStatusBar(BOOL val);
+BOOL GetShowStatusBar(void);
+
+void SetShowToolBar(BOOL val);
+BOOL GetShowToolBar(void);
+
+void SetShowTabCtrl(BOOL val);
+BOOL GetShowTabCtrl(void);
+
+void SetCurrentTab(const char *shortname);
+const char *GetCurrentTab(void);
+
+void SetDefaultGame(const char *name);
+const char *GetDefaultGame(void);
+
+void SetWindowArea(const AREA *area);
+void GetWindowArea(AREA *area);
+
+void SetWindowState(UINT state);
+UINT GetWindowState(void);
+
+void SetColumnWidths(int widths[]);
+void GetColumnWidths(int widths[]);
+
+void SetColumnOrder(int order[]);
+void GetColumnOrder(int order[]);
+
+void SetColumnShown(int shown[]);
+void GetColumnShown(int shown[]);
+
+void SetSplitterPos(int splitterId, int pos);
+int GetSplitterPos(int splitterId);
+
+void SetCustomColor(int iIndex, COLORREF uColor);
+COLORREF GetCustomColor(int iIndex);
+
+void SetListFont(const LOGFONT *font);
+void GetListFont(LOGFONT *font);
+
+DWORD GetFolderFlags(int folder_index);
+
+void SetListFontColor(COLORREF uColor);
+COLORREF GetListFontColor(void);
+
+void SetListCloneColor(COLORREF uColor);
+COLORREF GetListCloneColor(void);
+
+int GetHistoryTab(void);
+void SetHistoryTab(int tab,BOOL show);
+
+int GetShowTab(int tab);
+void SetShowTab(int tab,BOOL show);
+BOOL AllowedToSetShowTab(int tab,BOOL show);
+
+void SetSortColumn(int column);
+int GetSortColumn(void);
+
+void SetSortReverse(BOOL reverse);
+BOOL GetSortReverse(void);
+
+const char* GetLanguageUI(void);
+
+bool GetEnablePlugins(void);
+
+const char* GetPlugins(void);
+
+const char* GetSnapName(void);
+void SetSnapName(const char* pattern);
+
+const char* GetBgDir(void);
+void SetBgDir(const char* path);
+
+void ResetGameOptions(int driver_index);
+
+int GetRomAuditResults(int driver_index);
+void SetRomAuditResults(int driver_index, int audit_results);
+
+int GetSampleAuditResults(int driver_index);
+void SetSampleAuditResults(int driver_index, int audit_results);
+
+void IncrementPlayCount(int driver_index);
+int GetPlayCount(int driver_index);
+void ResetPlayCount(int driver_index);
+
+void IncrementPlayTime(int driver_index,int playtime);
+int GetPlayTime(int driver_index);
+void GetTextPlayTime(int driver_index,char *buf);
+void ResetPlayTime(int driver_index);
+
+const char * GetVersionString(void);
+
+void SaveDefaultOptions(void);
+
+BOOL IsGlobalOption(const char *option_name);
+
+
+
+// Keyboard control of ui
+input_seq* Get_ui_key_up(void);
+input_seq* Get_ui_key_down(void);
+input_seq* Get_ui_key_left(void);
+input_seq* Get_ui_key_right(void);
+input_seq* Get_ui_key_start(void);
+input_seq* Get_ui_key_pgup(void);
+input_seq* Get_ui_key_pgdwn(void);
+input_seq* Get_ui_key_home(void);
+input_seq* Get_ui_key_end(void);
+input_seq* Get_ui_key_ss_change(void);
+input_seq* Get_ui_key_history_up(void);
+input_seq* Get_ui_key_history_down(void);
+
+input_seq* Get_ui_key_context_filters(void);
+input_seq* Get_ui_key_select_random(void);
+input_seq* Get_ui_key_game_audit(void);
+input_seq* Get_ui_key_game_properties(void);
+input_seq* Get_ui_key_help_contents(void);
+input_seq* Get_ui_key_update_gamelist(void);
+input_seq* Get_ui_key_view_folders(void);
+input_seq* Get_ui_key_view_fullscreen(void);
+input_seq* Get_ui_key_view_pagetab(void);
+input_seq* Get_ui_key_view_picture_area(void);
+input_seq* Get_ui_key_view_software_area(void);
+input_seq* Get_ui_key_view_status(void);
+input_seq* Get_ui_key_view_toolbars(void);
+
+input_seq* Get_ui_key_view_tab_cabinet(void);
+input_seq* Get_ui_key_view_tab_cpanel(void);
+input_seq* Get_ui_key_view_tab_flyer(void);
+input_seq* Get_ui_key_view_tab_history(void);
+input_seq* Get_ui_key_view_tab_marquee(void);
+input_seq* Get_ui_key_view_tab_screenshot(void);
+input_seq* Get_ui_key_view_tab_title(void);
+input_seq* Get_ui_key_view_tab_pcb(void);
+input_seq* Get_ui_key_quit(void);
+
+
+int GetUIJoyUp(int joycodeIndex);
+void SetUIJoyUp(int joycodeIndex, int val);
+
+int GetUIJoyDown(int joycodeIndex);
+void SetUIJoyDown(int joycodeIndex, int val);
+
+int GetUIJoyLeft(int joycodeIndex);
+void SetUIJoyLeft(int joycodeIndex, int val);
+
+int GetUIJoyRight(int joycodeIndex);
+void SetUIJoyRight(int joycodeIndex, int val);
+
+int GetUIJoyStart(int joycodeIndex);
+void SetUIJoyStart(int joycodeIndex, int val);
+
+int GetUIJoyPageUp(int joycodeIndex);
+void SetUIJoyPageUp(int joycodeIndex, int val);
+
+int GetUIJoyPageDown(int joycodeIndex);
+void SetUIJoyPageDown(int joycodeIndex, int val);
+
+int GetUIJoyHome(int joycodeIndex);
+void SetUIJoyHome(int joycodeIndex, int val);
+
+int GetUIJoyEnd(int joycodeIndex);
+void SetUIJoyEnd(int joycodeIndex, int val);
+
+int GetUIJoySSChange(int joycodeIndex);
+void SetUIJoySSChange(int joycodeIndex, int val);
+
+int GetUIJoyHistoryUp(int joycodeIndex);
+void SetUIJoyHistoryUp(int joycodeIndex, int val);
+
+int GetUIJoyHistoryDown(int joycodeIndex);
+void SetUIJoyHistoryDown(int joycodeIndex, int val);
+
+int GetUIJoyExec(int joycodeIndex);
+void SetUIJoyExec(int joycodeIndex, int val);
+
+const char* GetExecCommand(void);
+void SetExecCommand(char* cmd);
+
+int GetExecWait(void);
+void SetExecWait(int wait);
+
+BOOL GetHideMouseOnStartup(void);
+void SetHideMouseOnStartup(BOOL hide);
+
+BOOL GetRunFullScreen(void);
+void SetRunFullScreen(BOOL fullScreen);
+
+void ColumnEncodeStringWithCount(const int *value, char *str, int count);
+void ColumnDecodeStringWithCount(const char* str, int *value, int count);
+
+int GetDriverCache(int driver_index);
+void SetDriverCache(int driver_index, int val);
+BOOL RequiredDriverCache(void);
+
+// from optionsms.h (MESSUI)
+
+enum
+{
+ SW_COLUMN_IMAGES,
+ SW_COLUMN_MAX
+};
+
+enum
+{
+ SL_COLUMN_IMAGES,
+ SL_COLUMN_GOODNAME,
+ SL_COLUMN_MANUFACTURER,
+ SL_COLUMN_YEAR,
+ SL_COLUMN_PLAYABLE,
+ SL_COLUMN_USAGE,
+ SL_COLUMN_MAX
+};
+
+void SetSWColumnWidths(int widths[]);
+void GetSWColumnWidths(int widths[]);
+void SetSWColumnOrder(int order[]);
+void GetSWColumnOrder(int order[]);
+void SetSWColumnShown(int shown[]);
+void GetSWColumnShown(int shown[]);
+void SetSWSortColumn(int column);
+int GetSWSortColumn(void);
+void SetSWSortReverse(BOOL reverse);
+BOOL GetSWSortReverse(void);
+
+void SetSLColumnWidths(int widths[]);
+void GetSLColumnWidths(int widths[]);
+void SetSLColumnOrder(int order[]);
+void GetSLColumnOrder(int order[]);
+void SetSLColumnShown(int shown[]);
+void GetSLColumnShown(int shown[]);
+void SetSLSortColumn(int column);
+int GetSLSortColumn(void);
+void SetSLSortReverse(BOOL reverse);
+BOOL GetSLSortReverse(void);
+
+void SetSelectedSoftware(int driver_index, const machine_config *config, const device_image_interface *device, const char *software);
+
+void SetCurrentSoftwareTab(const char *shortname);
+const char *GetCurrentSoftwareTab(void);
+
+
+#endif
+
diff --git a/docs/release/src/osd/winui/mui_util.cpp b/docs/release/src/osd/winui/mui_util.cpp
new file mode 100644
index 00000000000..abb45522b1b
--- /dev/null
+++ b/docs/release/src/osd/winui/mui_util.cpp
@@ -0,0 +1,760 @@
+// For licensing and usage information, read docs/winui_license.txt
+// MASTER
+//****************************************************************************
+
+/***************************************************************************
+
+ mui_util.c
+
+ ***************************************************************************/
+
+// standard windows headers
+#include <windows.h>
+#include <shellapi.h>
+
+// standard C headers
+#include <stdio.h>
+#include <tchar.h>
+
+// MAME/MAMEUI headers
+#include "emu.h"
+#include "screen.h"
+#include "speaker.h"
+#include "unzip.h"
+#include "sound/samples.h"
+#include "winutf8.h"
+#include "strconv.h"
+#include "winui.h"
+#include "mui_util.h"
+#include "mui_opts.h"
+#include "drivenum.h"
+#include "machine/ram.h"
+
+#include <shlwapi.h>
+#include <vector>
+
+/***************************************************************************
+ function prototypes
+ ***************************************************************************/
+
+/***************************************************************************
+ External variables
+ ***************************************************************************/
+
+/***************************************************************************
+ Internal structures
+ ***************************************************************************/
+struct DriversInfo
+{
+ int screenCount;
+ bool isClone;
+ bool isBroken;
+ bool isHarddisk;
+ bool hasOptionalBIOS;
+ bool isStereo;
+ bool isVector;
+ bool usesRoms;
+ bool usesSamples;
+ bool usesTrackball;
+ bool usesLightGun;
+ bool usesMouse;
+ bool supportsSaveState;
+ bool isVertical;
+ bool hasRam;
+};
+
+static std::vector<DriversInfo> drivers_info;
+
+
+enum
+{
+ DRIVER_CACHE_SCREEN = 0x000F,
+ DRIVER_CACHE_ROMS = 0x0010,
+ DRIVER_CACHE_CLONE = 0x0020,
+ DRIVER_CACHE_STEREO = 0x0040,
+ DRIVER_CACHE_BIOS = 0x0080,
+ DRIVER_CACHE_TRACKBALL = 0x0100,
+ DRIVER_CACHE_HARDDISK = 0x0200,
+ DRIVER_CACHE_SAMPLES = 0x0400,
+ DRIVER_CACHE_LIGHTGUN = 0x0800,
+ DRIVER_CACHE_VECTOR = 0x1000,
+ DRIVER_CACHE_MOUSE = 0x2000,
+ DRIVER_CACHE_RAM = 0x4000,
+};
+
+/***************************************************************************
+ External functions
+ ***************************************************************************/
+
+/*
+ ErrorMsg
+*/
+void __cdecl ErrorMsg(const char* fmt, ...)
+{
+ static FILE* pFile = NULL;
+ DWORD dwWritten;
+ char buf[5000];
+ char buf2[5000];
+ va_list va;
+
+ va_start(va, fmt);
+
+ vsprintf(buf, fmt, va);
+
+ win_message_box_utf8(GetActiveWindow(), buf, MAMEUINAME, MB_OK | MB_ICONERROR);
+
+ strcpy(buf2, MAMEUINAME ": ");
+ strcat(buf2,buf);
+ strcat(buf2, "\n");
+
+ WriteFile(GetStdHandle(STD_OUTPUT_HANDLE), buf2, strlen(buf2), &dwWritten, NULL);
+
+ if (pFile == NULL)
+ pFile = fopen("debug.txt", "wt");
+
+ if (pFile != NULL)
+ {
+ fprintf(pFile, "%s", buf2);
+ fflush(pFile);
+ }
+
+ va_end(va);
+}
+
+void __cdecl dprintf(const char* fmt, ...)
+{
+ char buf[5000];
+ va_list va;
+
+ va_start(va, fmt);
+
+ _vsnprintf(buf,sizeof(buf),fmt,va);
+
+ win_output_debug_string_utf8(buf);
+
+ va_end(va);
+}
+
+UINT GetDepth(HWND hWnd)
+{
+ UINT nBPP;
+ HDC hDC;
+
+ hDC = GetDC(hWnd);
+
+ nBPP = GetDeviceCaps(hDC, BITSPIXEL) * GetDeviceCaps(hDC, PLANES);
+
+ ReleaseDC(hWnd, hDC);
+
+ return nBPP;
+}
+
+/*
+ * Return TRUE if comctl32.dll is version 4.71 or greater
+ * otherwise return FALSE.
+ */
+LONG GetCommonControlVersion()
+{
+ HMODULE hModule = GetModuleHandle(TEXT("comctl32"));
+
+ if (hModule)
+ {
+ FARPROC lpfnICCE = GetProcAddress(hModule, "InitCommonControlsEx");
+
+ if (NULL != lpfnICCE)
+ {
+ FARPROC lpfnDLLI = GetProcAddress(hModule, "DllInstall");
+
+ if (NULL != lpfnDLLI)
+ {
+ /* comctl 4.71 or greater */
+
+ // see if we can find out exactly
+
+ DLLGETVERSIONPROC pDllGetVersion;
+ pDllGetVersion = (DLLGETVERSIONPROC)GetProcAddress(hModule, "DllGetVersion");
+
+ /* Because some DLLs might not implement this function, you
+ must test for it explicitly. Depending on the particular
+ DLL, the lack of a DllGetVersion function can be a useful
+ indicator of the version. */
+
+ if(pDllGetVersion)
+ {
+ DLLVERSIONINFO dvi;
+ HRESULT hr;
+
+ ZeroMemory(&dvi, sizeof(dvi));
+ dvi.cbSize = sizeof(dvi);
+
+ hr = (*pDllGetVersion)(&dvi);
+
+ if (SUCCEEDED(hr))
+ {
+ return PACKVERSION(dvi.dwMajorVersion, dvi.dwMinorVersion);
+ }
+ }
+ return PACKVERSION(4,71);
+ }
+ return PACKVERSION(4,7);
+ }
+ return PACKVERSION(4,0);
+ }
+ /* DLL not found */
+ return PACKVERSION(0,0);
+}
+
+void DisplayTextFile(HWND hWnd, const char *cName)
+{
+ HINSTANCE hErr;
+ LPCTSTR msg = 0;
+ LPTSTR tName;
+
+ tName = ui_wstring_from_utf8(cName);
+ if( !tName )
+ return;
+
+ hErr = ShellExecute(hWnd, NULL, tName, NULL, NULL, SW_SHOWNORMAL);
+ if ((uintptr_t)hErr > 32)
+ {
+ free(tName);
+ return;
+ }
+
+ switch((uintptr_t)hErr)
+ {
+ case 0:
+ msg = TEXT("The operating system is out of memory or resources.");
+ break;
+
+ case ERROR_FILE_NOT_FOUND:
+ msg = TEXT("The specified file was not found.");
+ break;
+
+ case SE_ERR_NOASSOC :
+ msg = TEXT("There is no application associated with the given filename extension.");
+ break;
+
+ case SE_ERR_OOM :
+ msg = TEXT("There was not enough memory to complete the operation.");
+ break;
+
+ case SE_ERR_PNF :
+ msg = TEXT("The specified path was not found.");
+ break;
+
+ case SE_ERR_SHARE :
+ msg = TEXT("A sharing violation occurred.");
+ break;
+
+ default:
+ msg = TEXT("Unknown error.");
+ }
+
+ MessageBox(NULL, msg, tName, MB_OK);
+
+ free(tName);
+}
+
+char* MyStrStrI(const char* pFirst, const char* pSrch)
+{
+ char* cp = (char*)pFirst;
+ char* s1;
+ char* s2;
+
+ while (*cp)
+ {
+ s1 = cp;
+ s2 = (char*)pSrch;
+
+ while (*s1 && *s2 && !core_strnicmp(s1, s2, 1))
+ s1++, s2++;
+
+ if (!*s2)
+ return cp;
+
+ cp++;
+ }
+ return NULL;
+}
+
+char * ConvertToWindowsNewlines(const char *source)
+{
+ static char buf[2048 * 2048];
+ char *dest;
+
+ dest = buf;
+ while (*source != 0)
+ {
+ if (*source == '\n')
+ {
+ *dest++ = '\r';
+ *dest++ = '\n';
+ }
+ else
+ *dest++ = *source;
+ source++;
+ }
+ *dest = 0;
+ return buf;
+}
+
+/* Lop off path and extention from a source file name
+ * This assumes their is a pathname passed to the function
+ * like src\drivers\blah.c
+ */
+const char * GetDriverFilename(int nIndex)
+{
+ static char tmp[40];
+ std::string driver = core_filename_extract_base(driver_list::driver(nIndex).source_file);
+ strcpy(tmp, driver.c_str());
+ return tmp;
+}
+
+BOOL isDriverVector(const machine_config *config)
+{
+ const screen_device *screen = config->first_screen();
+
+ if (screen)
+ {
+ if (SCREEN_TYPE_VECTOR == screen->screen_type())
+ return TRUE;
+ }
+ return FALSE;
+}
+
+int numberOfScreens(const machine_config *config)
+{
+ screen_device_iterator scriter(config->root_device());
+ return scriter.count();
+}
+
+int numberOfSpeakers(const machine_config *config)
+{
+ speaker_device_iterator iter(config->root_device());
+ return iter.count();
+}
+
+static void SetDriversInfo(void)
+{
+ int ndriver;
+ int cache = -1;
+ int total = driver_list::total();
+ struct DriversInfo *gameinfo = NULL;
+
+ for (ndriver = 0; ndriver < total; ndriver++)
+ {
+ gameinfo = &drivers_info[ndriver];
+ cache = (gameinfo->screenCount & DRIVER_CACHE_SCREEN);
+ if (gameinfo->isClone) cache += DRIVER_CACHE_CLONE;
+ if (gameinfo->isHarddisk) cache += DRIVER_CACHE_HARDDISK;
+ if (gameinfo->hasOptionalBIOS) cache += DRIVER_CACHE_BIOS;
+ if (gameinfo->isStereo) cache += DRIVER_CACHE_STEREO;
+ if (gameinfo->isVector) cache += DRIVER_CACHE_VECTOR;
+ if (gameinfo->usesRoms) cache += DRIVER_CACHE_ROMS;
+ if (gameinfo->usesSamples) cache += DRIVER_CACHE_SAMPLES;
+ if (gameinfo->usesTrackball) cache += DRIVER_CACHE_TRACKBALL;
+ if (gameinfo->usesLightGun) cache += DRIVER_CACHE_LIGHTGUN;
+ if (gameinfo->usesMouse) cache += DRIVER_CACHE_MOUSE;
+ if (gameinfo->hasRam) cache += DRIVER_CACHE_RAM;
+
+ SetDriverCache(ndriver, cache);
+ }
+}
+
+static void InitDriversInfo(void)
+{
+ int ndriver;
+ int num_speakers;
+ int total = driver_list::total();
+ const game_driver *gamedrv = NULL;
+ struct DriversInfo *gameinfo = NULL;
+ const rom_entry *region, *rom;
+
+ for (ndriver = 0; ndriver < total; ndriver++)
+ {
+ gamedrv = &driver_list::driver(ndriver);
+ gameinfo = &drivers_info[ndriver];
+ machine_config config(*gamedrv, MameUIGlobal());
+
+ gameinfo->isClone = (GetParentRomSetIndex(gamedrv) != -1);
+ gameinfo->isBroken = (gamedrv->flags & (MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_MECHANICAL)) ? true : false;
+ gameinfo->supportsSaveState = ((gamedrv->flags & MACHINE_SUPPORTS_SAVE) != 0);
+ gameinfo->isHarddisk = FALSE;
+ gameinfo->isVertical = (gamedrv->flags & ORIENTATION_SWAP_XY) ? TRUE : FALSE;
+
+ ram_device_iterator iter1(config.root_device());
+ gameinfo->hasRam = (iter1.first() );
+
+ for (device_t &device : device_iterator(config.root_device()))
+ for (region = rom_first_region(device); region; region = rom_next_region(region))
+ if (ROMREGION_ISDISKDATA(region))
+ gameinfo->isHarddisk = TRUE;
+
+ gameinfo->hasOptionalBIOS = FALSE;
+ if (gamedrv->rom)
+ {
+ auto rom_entries = rom_build_entries(gamedrv->rom);
+ for (rom = rom_entries.data(); !ROMENTRY_ISEND(rom); rom++)
+ if (ROMENTRY_ISSYSTEM_BIOS(rom))
+ gameinfo->hasOptionalBIOS = TRUE;
+ }
+
+ num_speakers = numberOfSpeakers(&config);
+
+ gameinfo->isStereo = (num_speakers > 1);
+ gameinfo->screenCount = numberOfScreens(&config);
+ gameinfo->isVector = isDriverVector(&config); // ((drv.video_attributes & VIDEO_TYPE_VECTOR) != 0);
+ gameinfo->usesRoms = FALSE;
+ for (device_t &device : device_iterator(config.root_device()))
+ for (region = rom_first_region(device); region; region = rom_next_region(region))
+ for (rom = rom_first_file(region); rom; rom = rom_next_file(rom))
+ gameinfo->usesRoms = TRUE;
+
+ gameinfo->usesSamples = FALSE;
+
+ samples_device_iterator iter(config.root_device());
+ if (iter.first())
+ gameinfo->usesSamples = TRUE;
+
+ gameinfo->usesTrackball = FALSE;
+ gameinfo->usesLightGun = FALSE;
+ if (gamedrv->ipt)
+ {
+ ioport_list portlist;
+ std::string errors;
+ for (device_t &cfg : device_iterator(config.root_device()))
+ if (cfg.input_ports())
+ portlist.append(cfg, errors);
+
+ for (auto &port : portlist)
+ {
+ for (ioport_field &field : port.second->fields())
+ {
+ UINT32 type;
+ type = field.type();
+ if (type == IPT_END)
+ break;
+ if (type == IPT_DIAL || type == IPT_PADDLE ||
+ type == IPT_TRACKBALL_X || type == IPT_TRACKBALL_Y ||
+ type == IPT_AD_STICK_X || type == IPT_AD_STICK_Y)
+ gameinfo->usesTrackball = TRUE;
+ if (type == IPT_LIGHTGUN_X || type == IPT_LIGHTGUN_Y)
+ gameinfo->usesLightGun = TRUE;
+ if (type == IPT_MOUSE_X || type == IPT_MOUSE_Y)
+ gameinfo->usesMouse = TRUE;
+ }
+ }
+ }
+ }
+
+ SetDriversInfo();
+}
+
+static int InitDriversCache(void)
+{
+ int cache = -1;
+ int total = driver_list::total();
+ const game_driver *gamedrv = NULL;
+ struct DriversInfo *gameinfo = NULL;
+ int ndriver;
+
+ if (RequiredDriverCache())
+ {
+ InitDriversInfo();
+ return 0;
+ }
+
+ for (ndriver = 0; ndriver < total; ndriver++)
+ {
+ gamedrv = &driver_list::driver(ndriver);
+ gameinfo = &drivers_info[ndriver];
+ cache = GetDriverCache(ndriver);
+
+ if (cache == -1)
+ {
+ InitDriversInfo();
+ break;
+ }
+
+ gameinfo->isBroken = (gamedrv->flags & (MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_MECHANICAL)) ? true : false;
+ gameinfo->supportsSaveState = ((gamedrv->flags & MACHINE_SUPPORTS_SAVE) != 0);
+ gameinfo->isVertical = (gamedrv->flags & ORIENTATION_SWAP_XY) ? TRUE : FALSE;
+ gameinfo->screenCount = cache & DRIVER_CACHE_SCREEN;
+ gameinfo->isClone = ((cache & DRIVER_CACHE_CLONE) != 0);
+ gameinfo->isHarddisk = ((cache & DRIVER_CACHE_HARDDISK) != 0);
+ gameinfo->hasOptionalBIOS = ((cache & DRIVER_CACHE_BIOS) != 0);
+ gameinfo->isStereo = ((cache & DRIVER_CACHE_STEREO) != 0);
+ gameinfo->isVector = ((cache & DRIVER_CACHE_VECTOR) != 0);
+ gameinfo->usesRoms = ((cache & DRIVER_CACHE_ROMS) != 0);
+ gameinfo->usesSamples = ((cache & DRIVER_CACHE_SAMPLES) != 0);
+ gameinfo->usesTrackball = ((cache & DRIVER_CACHE_TRACKBALL) != 0);
+ gameinfo->usesLightGun = ((cache & DRIVER_CACHE_LIGHTGUN) != 0);
+ gameinfo->usesMouse = ((cache & DRIVER_CACHE_MOUSE) != 0);
+ gameinfo->hasRam = ((cache & DRIVER_CACHE_RAM) != 0);
+ }
+
+ return 0;
+}
+
+static struct DriversInfo* GetDriversInfo(int driver_index)
+{
+ static bool bFirst = true;
+
+ if (bFirst)
+ {
+ bFirst = false;
+
+ drivers_info.clear();
+ drivers_info.reserve(driver_list::total());
+
+ InitDriversCache();
+ }
+
+ return &drivers_info[driver_index];
+}
+
+BOOL DriverIsClone(int driver_index)
+{
+ return GetDriversInfo(driver_index)->isClone;
+}
+
+BOOL DriverIsBroken(int driver_index)
+{
+ return GetDriversInfo(driver_index)->isBroken;
+}
+
+BOOL DriverIsHarddisk(int driver_index)
+{
+ return GetDriversInfo(driver_index)->isHarddisk;
+}
+
+BOOL DriverIsBios(int driver_index)
+{
+ return ( driver_list::driver(driver_index).flags & MACHINE_IS_BIOS_ROOT ) ? TRUE : FALSE;
+}
+
+BOOL DriverIsMechanical(int driver_index)
+{
+ return ( driver_list::driver(driver_index).flags & MACHINE_MECHANICAL ) ? TRUE : FALSE;
+}
+
+BOOL DriverIsArcade(int driver_index)
+{
+ return ( driver_list::driver(driver_index).flags & MACHINE_TYPE_ARCADE ) ? TRUE : FALSE;
+}
+
+BOOL DriverHasOptionalBIOS(int driver_index)
+{
+ return GetDriversInfo(driver_index)->hasOptionalBIOS;
+}
+
+BOOL DriverIsStereo(int driver_index)
+{
+ return GetDriversInfo(driver_index)->isStereo;
+}
+
+int DriverNumScreens(int driver_index)
+{
+ return GetDriversInfo(driver_index)->screenCount;
+}
+
+BOOL DriverIsVector(int driver_index)
+{
+ return GetDriversInfo(driver_index)->isVector;
+}
+
+BOOL DriverUsesRoms(int driver_index)
+{
+ return GetDriversInfo(driver_index)->usesRoms;
+}
+
+BOOL DriverUsesSamples(int driver_index)
+{
+ return GetDriversInfo(driver_index)->usesSamples;
+}
+
+BOOL DriverUsesTrackball(int driver_index)
+{
+ return GetDriversInfo(driver_index)->usesTrackball;
+}
+
+BOOL DriverUsesLightGun(int driver_index)
+{
+ return GetDriversInfo(driver_index)->usesLightGun;
+}
+
+BOOL DriverUsesMouse(int driver_index)
+{
+ return GetDriversInfo(driver_index)->usesMouse;
+}
+
+BOOL DriverSupportsSaveState(int driver_index)
+{
+ return GetDriversInfo(driver_index)->supportsSaveState;
+}
+
+BOOL DriverIsVertical(int driver_index)
+{
+ return GetDriversInfo(driver_index)->isVertical;
+}
+
+BOOL DriverHasRam(int driver_index)
+{
+ return GetDriversInfo(driver_index)->hasRam;
+}
+
+void FlushFileCaches(void)
+{
+ util::archive_file::cache_clear();
+}
+
+BOOL StringIsSuffixedBy(const char *s, const char *suffix)
+{
+ return (strlen(s) > strlen(suffix)) && (strcmp(s + strlen(s) - strlen(suffix), suffix) == 0);
+}
+
+/***************************************************************************
+ Win32 wrappers
+ ***************************************************************************/
+
+BOOL SafeIsAppThemed(void)
+{
+ BOOL bResult = FALSE;
+ HMODULE hThemes;
+ BOOL (WINAPI *pfnIsAppThemed)(void);
+
+ hThemes = LoadLibrary(TEXT("uxtheme.dll"));
+ if (hThemes)
+ {
+ pfnIsAppThemed = (BOOL (WINAPI *)(void)) GetProcAddress(hThemes, "IsAppThemed");
+ if (pfnIsAppThemed)
+ bResult = pfnIsAppThemed();
+ FreeLibrary(hThemes);
+ }
+ return bResult;
+
+}
+
+
+void GetSystemErrorMessage(DWORD dwErrorId, TCHAR **tErrorMessage)
+{
+ if( FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER|FORMAT_MESSAGE_FROM_SYSTEM, NULL, dwErrorId, 0, (LPTSTR)tErrorMessage, 0, NULL) == 0 )
+ {
+ *tErrorMessage = (LPTSTR)LocalAlloc(LPTR, MAX_PATH * sizeof(TCHAR));
+ _tcscpy(*tErrorMessage, TEXT("Unknown Error"));
+ }
+}
+
+
+//============================================================
+// win_extract_icon_utf8
+//============================================================
+
+HICON win_extract_icon_utf8(HINSTANCE inst, const char* exefilename, UINT iconindex)
+{
+ HICON icon = 0;
+ TCHAR* t_exefilename = ui_wstring_from_utf8(exefilename);
+ if( !t_exefilename )
+ return icon;
+
+ icon = ExtractIcon(inst, t_exefilename, iconindex);
+
+ free(t_exefilename);
+
+ return icon;
+}
+
+
+
+//============================================================
+// win_tstring_strdup
+//============================================================
+
+TCHAR* win_tstring_strdup(LPCTSTR str)
+{
+ TCHAR *cpy = NULL;
+ if (str)
+ {
+ cpy = (TCHAR*)malloc((_tcslen(str) + 1) * sizeof(TCHAR));
+ if (cpy)
+ _tcscpy(cpy, str);
+ }
+ return cpy;
+}
+
+//============================================================
+// win_create_file_utf8
+//============================================================
+
+HANDLE win_create_file_utf8(const char* filename, DWORD desiredmode, DWORD sharemode,
+ LPSECURITY_ATTRIBUTES securityattributes, DWORD creationdisposition,
+ DWORD flagsandattributes, HANDLE templatehandle)
+{
+ HANDLE result = 0;
+ TCHAR* t_filename = ui_wstring_from_utf8(filename);
+ if( !t_filename )
+ return result;
+
+ result = CreateFile(t_filename, desiredmode, sharemode, securityattributes, creationdisposition, flagsandattributes, templatehandle);
+
+ free(t_filename);
+
+ return result;
+}
+
+//============================================================
+// win_get_current_directory_utf8
+//============================================================
+
+DWORD win_get_current_directory_utf8(DWORD bufferlength, char* buffer)
+{
+ DWORD result = 0;
+ TCHAR* t_buffer = NULL;
+ char* utf8_buffer = NULL;
+
+ if( bufferlength > 0 ) {
+ t_buffer = (TCHAR*)malloc((bufferlength * sizeof(TCHAR)) + 1);
+ if( !t_buffer )
+ return result;
+ }
+
+ result = GetCurrentDirectory(bufferlength, t_buffer);
+
+ if( bufferlength > 0 ) {
+ utf8_buffer = ui_utf8_from_wstring(t_buffer);
+ if( !utf8_buffer ) {
+ free(t_buffer);
+ return result;
+ }
+ }
+
+ strncpy(buffer, utf8_buffer, bufferlength);
+
+ if( utf8_buffer )
+ free(utf8_buffer);
+
+ if( t_buffer )
+ free(t_buffer);
+
+ return result;
+}
+
+//============================================================
+// win_find_first_file_utf8
+//============================================================
+
+HANDLE win_find_first_file_utf8(const char* filename, LPWIN32_FIND_DATA findfiledata)
+{
+ HANDLE result = 0;
+ TCHAR* t_filename = ui_wstring_from_utf8(filename);
+ if( !t_filename )
+ return result;
+
+ result = FindFirstFile(t_filename, findfiledata);
+
+ free(t_filename);
+
+ return result;
+}
+
diff --git a/docs/release/src/osd/winui/mui_util.h b/docs/release/src/osd/winui/mui_util.h
new file mode 100644
index 00000000000..3633b41f5d9
--- /dev/null
+++ b/docs/release/src/osd/winui/mui_util.h
@@ -0,0 +1,101 @@
+// For licensing and usage information, read docs/winui_license.txt
+//****************************************************************************
+
+#ifndef MUI_UTIL_H
+#define MUI_UTIL_H
+
+#include "emucore.h"
+
+extern void __cdecl ErrorMsg(const char* fmt, ...);
+extern void __cdecl dprintf(const char* fmt, ...);
+
+
+extern UINT GetDepth(HWND hWnd);
+
+/* Open a text file */
+extern void DisplayTextFile(HWND hWnd, const char *cName);
+
+#define PACKVERSION(major,minor) MAKELONG(minor,major)
+
+/* Check for old version of comctl32.dll */
+extern LONG GetCommonControlVersion(void);
+
+extern char * MyStrStrI(const char* pFirst, const char* pSrch);
+extern char * ConvertToWindowsNewlines(const char *source);
+
+extern const char * GetDriverFilename(int nIndex);
+
+BOOL DriverIsClone(int driver_index);
+BOOL DriverIsBroken(int driver_index);
+BOOL DriverIsHarddisk(int driver_index);
+BOOL DriverHasOptionalBIOS(int driver_index);
+BOOL DriverIsStereo(int driver_index);
+BOOL DriverIsVector(int driver_index);
+int DriverNumScreens(int driver_index);
+BOOL DriverIsBios(int driver_index);
+BOOL DriverUsesRoms(int driver_index);
+BOOL DriverUsesSamples(int driver_index);
+BOOL DriverUsesTrackball(int driver_index);
+BOOL DriverUsesLightGun(int driver_index);
+BOOL DriverUsesMouse(int driver_index);
+BOOL DriverSupportsSaveState(int driver_index);
+BOOL DriverIsVertical(int driver_index);
+BOOL DriverIsMechanical(int driver_index);
+BOOL DriverIsArcade(int driver_index);
+BOOL DriverHasRam(int driver_index);
+
+int isDriverVector(const machine_config *config);
+int numberOfSpeakers(const machine_config *config);
+int numberOfScreens(const machine_config *config);
+
+void FlushFileCaches(void);
+
+BOOL StringIsSuffixedBy(const char *s, const char *suffix);
+
+BOOL SafeIsAppThemed(void);
+
+// provides result of FormatMessage()
+// resulting buffer must be free'd with LocalFree()
+void GetSystemErrorMessage(DWORD dwErrorId, TCHAR **tErrorMessage);
+
+HICON win_extract_icon_utf8(HINSTANCE inst, const char* exefilename, UINT iconindex);
+TCHAR* win_tstring_strdup(LPCTSTR str);
+HANDLE win_create_file_utf8(const char* filename, DWORD desiredmode, DWORD sharemode,
+ LPSECURITY_ATTRIBUTES securityattributes, DWORD creationdisposition,
+ DWORD flagsandattributes, HANDLE templatehandle);
+DWORD win_get_current_directory_utf8(DWORD bufferlength, char* buffer);
+HANDLE win_find_first_file_utf8(const char* filename, LPWIN32_FIND_DATA findfiledata);
+
+ // wstring_from_utf8
+ //============================================================
+
+WCHAR *ui_wstring_from_utf8(const char *utf8string)
+{
+ int char_count;
+ WCHAR *result;
+
+ // convert MAME string (UTF-8) to UTF-16
+ char_count = MultiByteToWideChar(CP_UTF8, 0, utf8string, -1, nullptr, 0);
+ result = (WCHAR *)malloc(char_count * sizeof(*result));
+ if (result != nullptr)
+ MultiByteToWideChar(CP_UTF8, 0, utf8string, -1, result, char_count);
+
+ return result;
+}
+
+char *ui_utf8_from_wstring(const WCHAR *wstring)
+{
+ int char_count;
+ char *result;
+
+ // convert UTF-16 to MAME string (UTF-8)
+ char_count = WideCharToMultiByte(CP_UTF8, 0, wstring, -1, nullptr, 0, nullptr, nullptr);
+ result = (char *)malloc(char_count * sizeof(*result));
+ if (result != nullptr)
+ WideCharToMultiByte(CP_UTF8, 0, wstring, -1, result, char_count, nullptr, nullptr);
+ return result;
+}
+
+
+#endif /* MUI_UTIL_H */
+
diff --git a/docs/release/src/osd/winui/newui.cpp b/docs/release/src/osd/winui/newui.cpp
new file mode 100644
index 00000000000..5ee6d76e5dd
--- /dev/null
+++ b/docs/release/src/osd/winui/newui.cpp
@@ -0,0 +1,3364 @@
+// For licensing and usage information, read docs/winui_license.txt
+//************************************************************************************************
+// MASTER
+//
+// newui.c - This is the NEWUI Windows dropdown menu system
+//
+// known bugs:
+// - Unable to modify keyboard or joystick. Last known to be working in 0.158 .
+// Need to use the default UI.
+//
+//
+//************************************************************************************************
+
+// Set minimum windows version to XP
+#ifdef _WIN32_WINNT
+#undef _WIN32_WINNT
+#endif
+#define _WIN32_WINNT 0x501
+
+
+// standard windows headers
+#include "newui.h"
+
+#include <shellapi.h>
+
+
+enum _win_file_dialog_type
+{
+ WIN_FILE_DIALOG_OPEN = 1,
+ WIN_FILE_DIALOG_SAVE
+};
+typedef enum _win_file_dialog_type win_file_dialog_type;
+
+typedef struct _win_open_file_name win_open_file_name;
+struct _win_open_file_name
+{
+ win_file_dialog_type type; // type of file dialog
+ HWND owner; // owner of the dialog
+ HINSTANCE instance; // instance
+ const char * filter; // pipe char ("|") delimited strings
+ DWORD filter_index; // index into filter
+ char filename[MAX_PATH]; // filename buffer
+ const char * initial_directory; // initial directory for dialog
+ DWORD flags; // standard flags
+ LPARAM custom_data; // custom data for dialog hook
+ LPOFNHOOKPROC hook; // custom dialog hook
+ LPCTSTR template_name; // custom dialog template
+};
+
+
+typedef struct _dialog_box dialog_box;
+
+struct dialog_layout
+{
+ short label_width;
+ short combo_width;
+};
+
+typedef void (*dialog_itemstoreval)(void *param, int val);
+typedef void (*dialog_itemchangedproc)(dialog_box *dialog, HWND dlgitem, void *changed_param);
+typedef void (*dialog_notification)(dialog_box *dialog, HWND dlgwnd, NMHDR *notification, void *param);
+
+#ifdef UNICODE
+#define win_dialog_tcsdup win_dialog_wcsdup
+#else
+#define win_dialog_tcsdup win_dialog_strdup
+#endif
+
+#define SEQWM_SETFOCUS (WM_APP + 0)
+#define SEQWM_KILLFOCUS (WM_APP + 1)
+
+enum
+{
+ TRIGGER_INITDIALOG = 1,
+ TRIGGER_APPLY = 2,
+ TRIGGER_CHANGED = 4
+};
+
+typedef LRESULT (*trigger_function)(dialog_box *dialog, HWND dlgwnd, UINT message, WPARAM wparam, LPARAM lparam);
+
+struct dialog_info_trigger
+{
+ struct dialog_info_trigger *next;
+ WORD dialog_item;
+ WORD trigger_flags;
+ UINT message;
+ WPARAM wparam;
+ LPARAM lparam;
+ void (*storeval)(void *param, int val);
+ void *storeval_param;
+ trigger_function trigger_proc;
+};
+
+struct dialog_object_pool
+{
+ HGDIOBJ objects[16];
+};
+
+struct _dialog_box
+{
+ HGLOBAL handle;
+ size_t handle_size;
+ struct dialog_info_trigger *trigger_first;
+ struct dialog_info_trigger *trigger_last;
+ WORD item_count;
+ WORD size_x, size_y;
+ WORD pos_x, pos_y;
+ WORD cursize_x, cursize_y;
+ WORD home_y;
+ DWORD style;
+ int combo_string_count;
+ int combo_default_value;
+ //object_pool *mempool;
+ struct dialog_object_pool *objpool;
+ const struct dialog_layout *layout;
+
+ // singular notification callback; hack
+ UINT notify_code;
+ dialog_notification notify_callback;
+ void *notify_param;
+};
+
+enum _seqselect_state
+{
+ SEQSELECT_STATE_NOT_POLLING,
+ SEQSELECT_STATE_POLLING,
+ SEQSELECT_STATE_POLLING_COMPLETE
+};
+typedef enum _seqselect_state seqselect_state;
+
+// this is the structure that gets associated with each input_seq edit box
+typedef struct _seqselect_info seqselect_info;
+struct _seqselect_info
+{
+ WNDPROC oldwndproc;
+ ioport_field *field; // pointer to the field
+ ioport_field::user_settings settings; // the new settings
+ input_seq *code; // the input_seq within settings
+ WORD pos;
+ BOOL is_analog;
+ seqselect_state poll_state;
+};
+
+
+
+//============================================================
+// PARAMETERS
+//============================================================
+
+#define DIM_VERTICAL_SPACING 3
+#define DIM_HORIZONTAL_SPACING 5
+#define DIM_NORMAL_ROW_HEIGHT 10
+#define DIM_COMBO_ROW_HEIGHT 12
+#define DIM_SLIDER_ROW_HEIGHT 18
+#define DIM_BUTTON_ROW_HEIGHT 12
+#define DIM_EDIT_WIDTH 120
+#define DIM_BUTTON_WIDTH 50
+#define DIM_ADJUSTER_SCR_WIDTH 12
+#define DIM_ADJUSTER_HEIGHT 12
+#define DIM_SCROLLBAR_WIDTH 10
+#define DIM_BOX_VERTSKEW -3
+
+#define DLGITEM_BUTTON ((const WCHAR *) dlgitem_button)
+#define DLGITEM_EDIT ((const WCHAR *) dlgitem_edit)
+#define DLGITEM_STATIC ((const WCHAR *) dlgitem_static)
+#define DLGITEM_LISTBOX ((const WCHAR *) dlgitem_listbox)
+#define DLGITEM_SCROLLBAR ((const WCHAR *) dlgitem_scrollbar)
+#define DLGITEM_COMBOBOX ((const WCHAR *) dlgitem_combobox)
+
+#define DLGTEXT_OK "OK"
+#define DLGTEXT_APPLY "Apply"
+#define DLGTEXT_CANCEL "Cancel"
+
+#define FONT_SIZE 8
+#define FONT_FACE L"Arial"
+
+#define SCROLL_DELTA_LINE 10
+#define SCROLL_DELTA_PAGE 100
+
+#define LOG_WINMSGS 0
+#define DIALOG_STYLE WS_POPUP | WS_BORDER | WS_SYSMENU | DS_MODALFRAME | WS_CAPTION | DS_SETFONT
+#define MAX_DIALOG_HEIGHT 200
+
+
+
+//============================================================
+// LOCAL VARIABLES
+//============================================================
+
+static running_machine *Machine; // HACK - please fix
+
+static double pixels_to_xdlgunits;
+static double pixels_to_ydlgunits;
+
+static const struct dialog_layout default_layout = { 80, 140 };
+static const WORD dlgitem_button[] = { 0xFFFF, 0x0080 };
+static const WORD dlgitem_edit[] = { 0xFFFF, 0x0081 };
+static const WORD dlgitem_static[] = { 0xFFFF, 0x0082 };
+static const WORD dlgitem_listbox[] = { 0xFFFF, 0x0083 };
+static const WORD dlgitem_scrollbar[] = { 0xFFFF, 0x0084 };
+static const WORD dlgitem_combobox[] = { 0xFFFF, 0x0085 };
+static int joystick_menu_setup = 0;
+static char state_filename[MAX_PATH];
+static void add_filter_entry(std::string &dest, const char *description, const char *extensions);
+static const char* software_dir;
+
+
+//============================================================
+// PROTOTYPES
+//============================================================
+
+static void dialog_prime(dialog_box *di);
+static int dialog_write_item(dialog_box *di, DWORD style, short x, short y, short width, short height, const char *str, const WCHAR *class_name, WORD *id);
+
+
+
+//============================================================
+// PARAMETERS
+//============================================================
+
+#define ID_FRAMESKIP_0 10000
+#define ID_DEVICE_0 11000
+#define ID_JOYSTICK_0 12000
+#define ID_VIDEO_VIEW_0 14000
+#define MAX_JOYSTICKS (8)
+
+enum
+{
+ DEVOPTION_OPEN,
+ DEVOPTION_CREATE,
+ DEVOPTION_CLOSE,
+ DEVOPTION_CASSETTE_PLAYRECORD,
+ DEVOPTION_CASSETTE_STOPPAUSE,
+ DEVOPTION_CASSETTE_PLAY,
+ DEVOPTION_CASSETTE_RECORD,
+ DEVOPTION_CASSETTE_REWIND,
+ DEVOPTION_CASSETTE_FASTFORWARD,
+ DEVOPTION_MAX
+};
+
+
+//========================================================================
+// LOCAL STRING FUNCTIONS (these require free after being called)
+//========================================================================
+
+static WCHAR *ui_wstring_from_utf8(const char *utf8string)
+{
+ int char_count;
+ WCHAR *result;
+
+ // convert MAME string (UTF-8) to UTF-16
+ char_count = MultiByteToWideChar(CP_UTF8, 0, utf8string, -1, nullptr, 0);
+ result = (WCHAR *)malloc(char_count * sizeof(*result));
+ if (result != nullptr)
+ MultiByteToWideChar(CP_UTF8, 0, utf8string, -1, result, char_count);
+
+ return result;
+}
+
+static char *ui_utf8_from_wstring(const WCHAR *wstring)
+{
+ int char_count;
+ char *result;
+
+ // convert UTF-16 to MAME string (UTF-8)
+ char_count = WideCharToMultiByte(CP_UTF8, 0, wstring, -1, nullptr, 0, nullptr, nullptr);
+ result = (char *)malloc(char_count * sizeof(*result));
+ if (result != nullptr)
+ WideCharToMultiByte(CP_UTF8, 0, wstring, -1, result, char_count, nullptr, nullptr);
+ return result;
+}
+
+
+
+//============================================================
+// win_get_file_name_dialog - sanitize all of the ugliness
+// in invoking GetOpenFileName() and GetSaveFileName()
+// called from win_file_dialog, state_dialog
+//============================================================
+
+static BOOL win_get_file_name_dialog(win_open_file_name *ofn)
+{
+ BOOL result = FALSE;
+ BOOL dialog_result;
+ OPENFILENAME os_ofn;
+ LPTSTR t_filter = NULL;
+ LPTSTR t_file = NULL;
+ DWORD t_file_size = 0;
+ LPTSTR t_initial_directory = NULL;
+ LPTSTR buffer;
+ char *utf8_file;
+ int i;
+
+ // do we have to translate the filter?
+ if (ofn->filter)
+ {
+ buffer = ui_wstring_from_utf8(ofn->filter);
+ if (!buffer)
+ goto done;
+
+ // convert a pipe-char delimited string into a NUL delimited string
+ t_filter = (LPTSTR) alloca((_tcslen(buffer) + 2) * sizeof(*t_filter));
+ for (i = 0; buffer[i] != '\0'; i++)
+ t_filter[i] = (buffer[i] != '|') ? buffer[i] : '\0';
+ t_filter[i++] = '\0';
+ t_filter[i++] = '\0';
+ free(buffer);
+ }
+
+ // do we need to translate the file parameter?
+ if (ofn->filename)
+ {
+ buffer = ui_wstring_from_utf8(ofn->filename);
+ if (!buffer)
+ goto done;
+
+ t_file_size = ((_tcslen(buffer) + 1) > MAX_PATH) ? (_tcslen(buffer) + 1) : MAX_PATH;
+ t_file = (LPTSTR) alloca(t_file_size * sizeof(*t_file));
+ _tcscpy(t_file, buffer);
+ free(buffer);
+ }
+
+ // do we need to translate the initial directory?
+ if (ofn->initial_directory)
+ {
+ t_initial_directory = ui_wstring_from_utf8(ofn->initial_directory);
+ if (t_initial_directory == NULL)
+ goto done;
+ }
+
+ // translate our custom structure to a native Win32 structure
+ memset(&os_ofn, 0, sizeof(os_ofn));
+ os_ofn.lStructSize = sizeof(OPENFILENAME);
+ os_ofn.hwndOwner = ofn->owner;
+ os_ofn.hInstance = ofn->instance;
+ os_ofn.lpstrFilter = t_filter;
+ os_ofn.nFilterIndex = ofn->filter_index;
+ os_ofn.lpstrFile = t_file;
+ os_ofn.nMaxFile = t_file_size;
+ os_ofn.lpstrInitialDir = t_initial_directory;
+ os_ofn.Flags = ofn->flags;
+ os_ofn.lCustData = ofn->custom_data;
+ os_ofn.lpfnHook = ofn->hook;
+ os_ofn.lpTemplateName = ofn->template_name;
+
+ // invoke the correct Win32 call
+ switch(ofn->type)
+ {
+ case WIN_FILE_DIALOG_OPEN:
+ dialog_result = GetOpenFileName(&os_ofn);
+ break;
+
+ case WIN_FILE_DIALOG_SAVE:
+ dialog_result = GetSaveFileName(&os_ofn);
+ break;
+
+ default:
+ // should not reach here
+ dialog_result = FALSE;
+ break;
+ }
+
+ // copy data out
+ ofn->filter_index = os_ofn.nFilterIndex;
+ ofn->flags = os_ofn.Flags;
+
+ // copy file back out into passed structure
+ if (t_file)
+ {
+ utf8_file = ui_utf8_from_wstring(t_file);
+ if (!utf8_file)
+ goto done;
+
+ snprintf(ofn->filename, ARRAY_LENGTH(ofn->filename), "%s", utf8_file);
+ free(utf8_file);
+ }
+
+ // we've completed the process
+ result = dialog_result;
+
+done:
+ if (t_initial_directory)
+ free(t_initial_directory);
+ return result;
+}
+
+
+
+//============================================================
+// win_scroll_window
+// called from dialog_proc
+//============================================================
+
+static void win_scroll_window(HWND window, WPARAM wparam, int scroll_bar, int scroll_delta_line)
+{
+ SCROLLINFO si;
+ int scroll_pos;
+
+ // retrieve vital info about the scroll bar
+ memset(&si, 0, sizeof(si));
+ si.cbSize = sizeof(si);
+ si.fMask = SIF_PAGE | SIF_RANGE | SIF_POS;
+ GetScrollInfo(window, scroll_bar, &si);
+
+ scroll_pos = si.nPos;
+
+ // change scroll_pos in accordance with this message
+ switch(LOWORD(wparam))
+ {
+ case SB_BOTTOM:
+ scroll_pos = si.nMax;
+ break;
+ case SB_LINEDOWN:
+ scroll_pos += scroll_delta_line;
+ break;
+ case SB_LINEUP:
+ scroll_pos -= scroll_delta_line;
+ break;
+ case SB_PAGEDOWN:
+ scroll_pos += scroll_delta_line;
+ break;
+ case SB_PAGEUP:
+ scroll_pos -= scroll_delta_line;
+ break;
+ case SB_THUMBPOSITION:
+ case SB_THUMBTRACK:
+ scroll_pos = HIWORD(wparam);
+ break;
+ case SB_TOP:
+ scroll_pos = si.nMin;
+ break;
+ }
+
+ // max out the scroll bar value
+ if (scroll_pos < si.nMin)
+ scroll_pos = si.nMin;
+ else if (scroll_pos > (si.nMax - si.nPage))
+ scroll_pos = (si.nMax - si.nPage);
+
+ // if the value changed, set the scroll position
+ if (scroll_pos != si.nPos)
+ {
+ SetScrollPos(window, scroll_bar, scroll_pos, TRUE);
+ ScrollWindowEx(window, 0, si.nPos - scroll_pos, NULL, NULL, NULL, NULL, SW_SCROLLCHILDREN | SW_INVALIDATE | SW_ERASE);
+ }
+}
+
+
+
+//============================================================
+// win_append_menu_utf8
+// create a menu item
+//============================================================
+
+static BOOL win_append_menu_utf8(HMENU menu, UINT flags, UINT_PTR id, const char *item)
+{
+ BOOL result;
+ const TCHAR *t_item = (const TCHAR*)item;
+ TCHAR *t_str = NULL;
+
+ // only convert string when it's not a bitmap
+ if (!(flags & MF_BITMAP) && item)
+ {
+ t_str = ui_wstring_from_utf8(item);
+ t_item = t_str;
+ }
+
+ result = AppendMenu(menu, flags, id, t_item);
+
+ if (t_str)
+ free(t_str);
+
+ return result;
+}
+
+
+
+//============================================================
+// call_windowproc
+// called from adjuster_sb_wndproc, seqselect_wndproc
+//============================================================
+
+static LRESULT call_windowproc(WNDPROC wndproc, HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam)
+{
+ LRESULT rc;
+ if (IsWindowUnicode(hwnd))
+ rc = CallWindowProcW(wndproc, hwnd, msg, wparam, lparam);
+ else
+ rc = CallWindowProcA(wndproc, hwnd, msg, wparam, lparam);
+ return rc;
+}
+
+
+
+//==========================================================================
+// dialog_write
+// called from dialog_write_string, win_dialog_init, dialog_write_item
+//==========================================================================
+
+static int dialog_write(struct _dialog_box *di, const void *ptr, size_t sz, int align)
+{
+ HGLOBAL newhandle;
+ size_t base;
+ UINT8 *mem;
+ UINT8 *mem2;
+
+ if (!di->handle)
+ {
+ newhandle = GlobalAlloc(GMEM_ZEROINIT, sz);
+ base = 0;
+ }
+ else
+ {
+ base = di->handle_size;
+ base += align - 1;
+ base -= base % align;
+ newhandle = GlobalReAlloc(di->handle, base + sz, GMEM_ZEROINIT);
+ if (!newhandle)
+ {
+ newhandle = GlobalAlloc(GMEM_ZEROINIT, base + sz);
+ if (newhandle)
+ {
+ mem = (UINT8*)GlobalLock(di->handle);
+ mem2 = (UINT8*)GlobalLock(newhandle);
+ memcpy(mem2, mem, base);
+ GlobalUnlock(di->handle);
+ GlobalUnlock(newhandle);
+ GlobalFree(di->handle);
+ }
+ }
+ }
+ if (!newhandle)
+ return 1;
+
+ mem = (UINT8*)GlobalLock(newhandle);
+ memcpy(mem + base, ptr, sz);
+ GlobalUnlock(newhandle);
+ di->handle = newhandle;
+ di->handle_size = base + sz;
+ return 0;
+}
+
+
+
+//============================================================
+// dialog_write_string
+// called from win_dialog_init, dialog_write_item
+//============================================================
+
+static int dialog_write_string(dialog_box *di, const WCHAR *str)
+{
+ if (!str)
+ str = L"";
+ return dialog_write(di, str, (wcslen(str) + 1) * sizeof(WCHAR), 2);
+}
+
+
+
+
+//============================================================
+// win_dialog_exit
+// called from win_dialog_init, calc_dlgunits_multiple, change_device, and all customise_input functions
+//============================================================
+
+static void win_dialog_exit(dialog_box *dialog)
+{
+ int i;
+ struct dialog_object_pool *objpool;
+
+ if (!dialog)
+ printf("No dialog passed to win_dialog_exit\n");
+ assert(dialog);
+
+ objpool = dialog->objpool;
+ if (objpool)
+ {
+ for (i = 0; i < ARRAY_LENGTH(objpool->objects); i++)
+ DeleteObject(objpool->objects[i]);
+ }
+
+ if (dialog->handle)
+ GlobalFree(dialog->handle);
+
+ free(dialog);
+}
+
+
+
+//===========================================================================
+// win_dialog_init
+// called from calc_dlgunits_multiple, and all customise_input functions
+//===========================================================================
+
+dialog_box *win_dialog_init(const char *title, const struct dialog_layout *layout)
+{
+ struct _dialog_box *di;
+ DLGTEMPLATE dlg_template;
+ WORD w[2];
+ WCHAR *w_title;
+ int rc;
+
+ // use default layout if not specified
+ if (!layout)
+ layout = &default_layout;
+
+ // create the dialog structure
+ di = (_dialog_box *)malloc(sizeof(struct _dialog_box));
+ if (!di)
+ goto error;
+ memset(di, 0, sizeof(*di));
+
+ di->layout = layout;
+
+ memset(&dlg_template, 0, sizeof(dlg_template));
+ dlg_template.style = di->style = DIALOG_STYLE;
+ dlg_template.x = 10;
+ dlg_template.y = 10;
+ if (dialog_write(di, &dlg_template, sizeof(dlg_template), 4))
+ goto error;
+
+ w[0] = 0;
+ w[1] = 0;
+ if (dialog_write(di, w, sizeof(w), 2))
+ goto error;
+
+ w_title = ui_wstring_from_utf8(title);
+ rc = dialog_write_string(di, w_title);
+ free(w_title);
+ if (rc)
+ goto error;
+
+ // set the font, if necessary
+ if (di->style & DS_SETFONT)
+ {
+ w[0] = FONT_SIZE;
+ if (dialog_write(di, w, sizeof(w[0]), 2))
+ goto error;
+ if (dialog_write_string(di, FONT_FACE))
+ goto error;
+ }
+
+ return di;
+
+error:
+ if (di)
+ win_dialog_exit(di);
+ return NULL;
+}
+
+
+//============================================================
+// compute_dlgunits_multiple
+// called from dialog_scrollbar_init
+//============================================================
+
+static void calc_dlgunits_multiple(void)
+{
+ dialog_box *dialog = NULL;
+ short offset_x = 2048;
+ short offset_y = 2048;
+ const char *wnd_title = "Foo";
+ WORD id;
+ HWND dlg_window = NULL;
+ HWND child_window;
+ RECT r;
+
+ if ((pixels_to_xdlgunits == 0) || (pixels_to_ydlgunits == 0))
+ {
+ // create a bogus dialog
+ dialog = win_dialog_init(NULL, NULL);
+ if (!dialog)
+ goto done;
+
+ if (dialog_write_item(dialog, WS_CHILD | WS_VISIBLE | SS_LEFT, 0, 0, offset_x, offset_y, wnd_title, DLGITEM_STATIC, &id))
+ goto done;
+
+ dialog_prime(dialog);
+ dlg_window = CreateDialogIndirectParam(NULL, (const DLGTEMPLATE*)dialog->handle, NULL, NULL, 0);
+ child_window = GetDlgItem(dlg_window, id);
+
+ GetWindowRect(child_window, &r);
+ pixels_to_xdlgunits = (double)(r.right - r.left) / offset_x;
+ pixels_to_ydlgunits = (double)(r.bottom - r.top) / offset_y;
+
+done:
+ if (dialog)
+ win_dialog_exit(dialog);
+ if (dlg_window)
+ DestroyWindow(dlg_window);
+ }
+}
+
+
+
+//============================================================
+// dialog_trigger
+// called from dialog_proc, file_dialog_hook
+//============================================================
+
+static void dialog_trigger(HWND dlgwnd, WORD trigger_flags)
+{
+ LRESULT result;
+ HWND dialog_item;
+ struct _dialog_box *di;
+ struct dialog_info_trigger *trigger;
+ LONG_PTR l;
+
+ l = GetWindowLongPtr(dlgwnd, GWLP_USERDATA);
+ di = (struct _dialog_box *) l;
+ if (!di)
+ printf("Unexpected result of di in dialog_trigger\n");
+ assert(di);
+ for (trigger = di->trigger_first; trigger; trigger = trigger->next)
+ {
+ if (trigger->trigger_flags & trigger_flags)
+ {
+ if (trigger->dialog_item)
+ dialog_item = GetDlgItem(dlgwnd, trigger->dialog_item);
+ else
+ dialog_item = dlgwnd;
+ if (!dialog_item)
+ printf("Unexpected result of dialog_item in dialog_trigger\n");
+ assert(dialog_item);
+ result = 0;
+
+ if (trigger->message)
+ result = SendMessage(dialog_item, trigger->message, trigger->wparam, trigger->lparam);
+ if (trigger->trigger_proc)
+ result = trigger->trigger_proc(di, dialog_item, trigger->message, trigger->wparam, trigger->lparam);
+
+ if (trigger->storeval)
+ trigger->storeval(trigger->storeval_param, result);
+ }
+ }
+}
+
+//============================================================
+// dialog_proc
+// called from win_dialog_runmodal
+//============================================================
+
+static INT_PTR CALLBACK dialog_proc(HWND dlgwnd, UINT msg, WPARAM wparam, LPARAM lparam)
+{
+ INT_PTR handled = TRUE;
+ std::string buf;
+ WORD command;
+
+ switch(msg)
+ {
+ case WM_INITDIALOG:
+ SetWindowLongPtr(dlgwnd, GWLP_USERDATA, (LONG_PTR) lparam);
+ dialog_trigger(dlgwnd, TRIGGER_INITDIALOG);
+ break;
+
+ case WM_COMMAND:
+ command = LOWORD(wparam);
+
+ buf = win_get_window_text_utf8((HWND) lparam);
+ if (!strcmp(buf.c_str(), DLGTEXT_OK))
+ command = IDOK;
+ else if (!strcmp(buf.c_str(), DLGTEXT_CANCEL))
+ command = IDCANCEL;
+ else
+ command = 0;
+
+ switch(command)
+ {
+ case IDOK:
+ dialog_trigger(dlgwnd, TRIGGER_APPLY);
+ // fall through
+
+ case IDCANCEL:
+ EndDialog(dlgwnd, 0);
+ break;
+
+ default:
+ handled = FALSE;
+ break;
+ }
+ break;
+
+ case WM_SYSCOMMAND:
+ if (wparam == SC_CLOSE)
+ EndDialog(dlgwnd, 0);
+ else
+ handled = FALSE;
+
+ break;
+
+ case WM_VSCROLL:
+ if (lparam)
+ // this scroll message came from an actual scroll bar window;
+ // pass it on
+ SendMessage((HWND) lparam, msg, wparam, lparam);
+ else
+ // scroll the dialog
+ win_scroll_window(dlgwnd, wparam, SB_VERT, SCROLL_DELTA_LINE);
+
+ break;
+
+ default:
+ handled = FALSE;
+ break;
+ }
+ return handled;
+}
+
+
+
+//=========================================================================================================================================================================================
+// dialog_write_item
+// called from calc_dlgunits_multiple, win_dialog_add_active_combobox, win_dialog_add_adjuster, dialog_add_single_seqselect, win_dialog_add_portselect, win_dialog_add_standard_buttons
+//=========================================================================================================================================================================================
+
+static int dialog_write_item(dialog_box *di, DWORD style, short x, short y, short width, short height, const char *str, const WCHAR *class_name, WORD *id)
+{
+ DLGITEMTEMPLATE item_template;
+ UINT class_name_length;
+ WORD w;
+ WCHAR *w_str;
+ int rc;
+
+ memset(&item_template, 0, sizeof(item_template));
+ item_template.style = style;
+ item_template.x = x;
+ item_template.y = y;
+ item_template.cx = width;
+ item_template.cy = height;
+ item_template.id = di->item_count + 1;
+
+ if (dialog_write(di, &item_template, sizeof(item_template), 4))
+ return 1;
+
+ if (*class_name == 0xffff)
+ class_name_length = 4;
+ else
+ class_name_length = (wcslen(class_name) + 1) * sizeof(WCHAR);
+ if (dialog_write(di, class_name, class_name_length, 2))
+ return 1;
+
+ w_str = str ? ui_wstring_from_utf8(str) : NULL;
+ rc = dialog_write_string(di, w_str);
+ if (w_str)
+ free(w_str);
+ if (rc)
+ return 1;
+
+ w = 0;
+ if (dialog_write(di, &w, sizeof(w), 2))
+ return 1;
+
+ di->item_count++;
+
+ if (id)
+ *id = di->item_count;
+ return 0;
+}
+
+
+
+//==========================================================================================================================================================
+// dialog_add_trigger
+// called from dialog_add_scrollbar, win_dialog_add_active_combobox, win_dialog_add_combobox_item, win_dialog_add_adjuster, dialog_add_single_seqselect
+//==========================================================================================================================================================
+
+static int dialog_add_trigger(struct _dialog_box *di, WORD dialog_item, WORD trigger_flags, UINT message, trigger_function trigger_proc,
+ WPARAM wparam, LPARAM lparam, void (*storeval)(void *param, int val), void *storeval_param)
+{
+ if (!di)
+ printf("Unexpected result of di in dialog_add_trigger\n");
+ assert(di);
+ if (!trigger_flags)
+ printf("Unexpected result of trigger_flags in dialog_add_trigger\n");
+ assert(trigger_flags);
+
+ dialog_info_trigger *trigger = new(dialog_info_trigger);
+
+ trigger->next = NULL;
+ trigger->trigger_flags = trigger_flags;
+ trigger->dialog_item = dialog_item;
+ trigger->message = message;
+ trigger->trigger_proc = trigger_proc;
+ trigger->wparam = wparam;
+ trigger->lparam = lparam;
+ trigger->storeval = storeval;
+ trigger->storeval_param = storeval_param;
+
+ if (di->trigger_last)
+ di->trigger_last->next = trigger;
+ else
+ di->trigger_first = trigger;
+ di->trigger_last = trigger;
+ return 0;
+}
+
+
+
+//============================================================
+// dialog_scrollbar_init
+// called from dialog_add_scrollbar
+//============================================================
+
+static LRESULT dialog_scrollbar_init(dialog_box *dialog, HWND dlgwnd, UINT message, WPARAM wparam, LPARAM lparam)
+{
+ SCROLLINFO si;
+
+ calc_dlgunits_multiple();
+
+ memset(&si, 0, sizeof(si));
+ si.cbSize = sizeof(si);
+ si.nMin = pixels_to_ydlgunits * 0;
+ si.nMax = pixels_to_ydlgunits * dialog->size_y;
+ si.nPage = pixels_to_ydlgunits * MAX_DIALOG_HEIGHT;
+ si.fMask = SIF_PAGE | SIF_RANGE;
+
+ SetScrollInfo(dlgwnd, SB_VERT, &si, TRUE);
+ return 0;
+}
+
+
+
+//============================================================
+// dialog_add_scrollbar
+// called from dialog_prime
+//============================================================
+
+static int dialog_add_scrollbar(dialog_box *dialog)
+{
+ if (dialog_add_trigger(dialog, 0, TRIGGER_INITDIALOG, 0, dialog_scrollbar_init, 0, 0, NULL, NULL))
+ return 1;
+
+ dialog->style |= WS_VSCROLL;
+ return 0;
+}
+
+
+
+//==============================================================================
+// dialog_prime
+// called from calc_dlgunits_multiple, win_dialog_runmodal, win_file_dialog
+//==============================================================================
+
+static void dialog_prime(dialog_box *di)
+{
+ DLGTEMPLATE *dlg_template;
+
+ if (di->size_y > MAX_DIALOG_HEIGHT)
+ {
+ di->size_x += DIM_SCROLLBAR_WIDTH;
+ dialog_add_scrollbar(di);
+ }
+
+ dlg_template = (DLGTEMPLATE *) GlobalLock(di->handle);
+ dlg_template->cdit = di->item_count;
+ dlg_template->cx = di->size_x;
+ dlg_template->cy = (di->size_y > MAX_DIALOG_HEIGHT) ? MAX_DIALOG_HEIGHT : di->size_y;
+ dlg_template->style = di->style;
+ GlobalUnlock(di->handle);
+}
+
+
+
+//============================================================
+// dialog_get_combo_value
+// called from win_dialog_add_active_combobox
+//============================================================
+
+static LRESULT dialog_get_combo_value(dialog_box *dialog, HWND dialog_item, UINT message, WPARAM wparam, LPARAM lparam)
+{
+ int idx;
+ idx = SendMessage(dialog_item, CB_GETCURSEL, 0, 0);
+ if (idx == CB_ERR)
+ return 0;
+ return SendMessage(dialog_item, CB_GETITEMDATA, idx, 0);
+}
+
+
+
+//============================================================
+// dialog_get_adjuster_value
+// called from win_dialog_add_adjuster
+//============================================================
+
+static LRESULT dialog_get_adjuster_value(dialog_box *dialog, HWND dialog_item, UINT message, WPARAM wparam, LPARAM lparam)
+{
+ TCHAR buf[32];
+ GetWindowText(dialog_item, buf, ARRAY_LENGTH(buf));
+ return _ttoi(buf);
+}
+
+
+
+//====================================================================================================
+// dialog_new_control
+// called from win_dialog_add_active_combobox, win_dialog_add_adjuster, win_dialog_add_portselect
+//====================================================================================================
+
+static void dialog_new_control(struct _dialog_box *di, short *x, short *y)
+{
+ *x = di->pos_x + DIM_HORIZONTAL_SPACING;
+ *y = di->pos_y + DIM_VERTICAL_SPACING;
+}
+
+
+
+//====================================================================================================
+// dialog_finish_control
+// called from win_dialog_add_active_combobox, win_dialog_add_adjuster, win_dialog_add_portselect
+//====================================================================================================
+
+static void dialog_finish_control(struct _dialog_box *di, short x, short y)
+{
+ di->pos_y = y;
+
+ // update dialog size
+ if (x > di->size_x)
+ di->size_x = x;
+ if (y > di->size_y)
+ di->size_y = y;
+ if (x > di->cursize_x)
+ di->cursize_x = x;
+ if (y > di->cursize_y)
+ di->cursize_y = y;
+}
+
+
+
+//============================================================
+// dialog_combo_changed
+// called from win_dialog_add_active_combobox
+//============================================================
+
+static LRESULT dialog_combo_changed(dialog_box *dialog, HWND dlgitem, UINT message, WPARAM wparam, LPARAM lparam)
+{
+ dialog_itemchangedproc changed = (dialog_itemchangedproc) wparam;
+ changed(dialog, dlgitem, (void *) lparam);
+ return 0;
+}
+
+
+
+//============================================================
+// win_dialog_wcsdup
+// called from win_dialog_add_adjuster (via define)
+//============================================================
+
+static WCHAR *win_dialog_wcsdup(dialog_box *dialog, const WCHAR *s)
+{
+ WCHAR *result = global_alloc_array(WCHAR, wcslen(s) + 1);
+ if (result)
+ wcscpy(result, s);
+ return result;
+}
+
+
+
+//============================================================
+// win_dialog_add_active_combobox
+// called from win_dialog_add_combobox
+//============================================================
+
+static int win_dialog_add_active_combobox(dialog_box *dialog, const char *item_label, int default_value,
+ dialog_itemstoreval storeval, void *storeval_param, dialog_itemchangedproc changed, void *changed_param)
+{
+ int rc = 1;
+ short x;
+ short y;
+
+ dialog_new_control(dialog, &x, &y);
+
+ if (dialog_write_item(dialog, WS_CHILD | WS_VISIBLE | SS_LEFT,
+ x, y, dialog->layout->label_width, DIM_COMBO_ROW_HEIGHT, item_label, DLGITEM_STATIC, NULL))
+ goto done;
+
+ y += DIM_BOX_VERTSKEW;
+
+ x += dialog->layout->label_width + DIM_HORIZONTAL_SPACING;
+ if (dialog_write_item(dialog, WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP | CBS_DROPDOWNLIST,
+ x, y, dialog->layout->combo_width, DIM_COMBO_ROW_HEIGHT * 8, NULL, DLGITEM_COMBOBOX, NULL))
+ goto done;
+ dialog->combo_string_count = 0;
+ dialog->combo_default_value = default_value;
+
+ // add the trigger invoked when the apply button is pressed
+ if (dialog_add_trigger(dialog, dialog->item_count, TRIGGER_APPLY, 0, dialog_get_combo_value, 0, 0, storeval, storeval_param))
+ goto done;
+
+ // if appropriate, add the optional changed trigger
+ if (changed)
+ {
+ if (dialog_add_trigger(dialog, dialog->item_count, TRIGGER_INITDIALOG | TRIGGER_CHANGED, 0, dialog_combo_changed, (WPARAM) changed, (LPARAM) changed_param, NULL, NULL))
+ goto done;
+ }
+
+ x += dialog->layout->combo_width + DIM_HORIZONTAL_SPACING;
+ y += DIM_COMBO_ROW_HEIGHT + DIM_VERTICAL_SPACING * 2;
+
+ dialog_finish_control(dialog, x, y);
+ rc = 0;
+
+done:
+ return rc;
+}
+
+
+
+//============================================================
+// win_dialog_add_combobox
+// called from customise_switches, customise_analogcontrols
+//============================================================
+
+static int win_dialog_add_combobox(dialog_box *dialog, const char *item_label, int default_value, void (*storeval)(void *param, int val), void *storeval_param)
+{
+ return win_dialog_add_active_combobox(dialog, item_label, default_value, storeval, storeval_param, NULL, NULL);
+}
+
+
+
+//============================================================
+// win_dialog_add_combobox_item
+// called from customise_switches, customise_analogcontrols
+//============================================================
+
+static int win_dialog_add_combobox_item(dialog_box *dialog, const char *item_label, int item_data)
+{
+ // create our own copy of the string
+ size_t newsize = strlen(item_label) + 1;
+ wchar_t * t_item_label = new wchar_t[newsize];
+ //size_t convertedChars = 0;
+ //mbstowcs_s(&convertedChars, t_item_label, newsize, item_label, _TRUNCATE);
+ mbstowcs(t_item_label, item_label, newsize);
+
+ if (dialog_add_trigger(dialog, dialog->item_count, TRIGGER_INITDIALOG, CB_ADDSTRING, NULL, 0, (LPARAM) t_item_label, NULL, NULL))
+ return 1;
+ dialog->combo_string_count++;
+ if (dialog_add_trigger(dialog, dialog->item_count, TRIGGER_INITDIALOG, CB_SETITEMDATA, NULL, dialog->combo_string_count-1, (LPARAM) item_data, NULL, NULL))
+ return 1;
+ if (item_data == dialog->combo_default_value)
+ {
+ if (dialog_add_trigger(dialog, dialog->item_count, TRIGGER_INITDIALOG, CB_SETCURSEL, NULL, dialog->combo_string_count-1, 0, NULL, NULL))
+ return 1;
+ }
+ return 0;
+}
+
+
+
+//============================================================
+// adjuster_sb_wndproc
+// called from adjuster_sb_setup
+//============================================================
+
+struct adjuster_sb_stuff
+{
+ WNDPROC oldwndproc;
+ int min_value;
+ int max_value;
+};
+
+static INT_PTR CALLBACK adjuster_sb_wndproc(HWND sbwnd, UINT msg, WPARAM wparam, LPARAM lparam)
+{
+ INT_PTR result;
+ struct adjuster_sb_stuff *stuff;
+ std::string buf;
+ CHAR BUF[64];
+ HWND dlgwnd, editwnd;
+ int value, id;
+ LONG_PTR l;
+
+ l = GetWindowLongPtr(sbwnd, GWLP_USERDATA);
+ stuff = (struct adjuster_sb_stuff *) l;
+
+ if (msg == WM_VSCROLL)
+ {
+ id = GetWindowLong(sbwnd, GWL_ID);
+ dlgwnd = GetParent(sbwnd);
+ editwnd = GetDlgItem(dlgwnd, id - 1);
+ buf = win_get_window_text_utf8(editwnd);
+ value = atoi(buf.c_str());
+
+ switch(wparam)
+ {
+ case SB_LINEDOWN:
+ case SB_PAGEDOWN:
+ value--;
+ break;
+
+ case SB_LINEUP:
+ case SB_PAGEUP:
+ value++;
+ break;
+ }
+
+ if (value < stuff->min_value)
+ value = stuff->min_value;
+ else if (value > stuff->max_value)
+ value = stuff->max_value;
+ _snprintf(BUF, 64, "%d", value);
+ win_set_window_text_utf8(editwnd, BUF);
+ result = 0;
+ }
+ else
+ result = call_windowproc(stuff->oldwndproc, sbwnd, msg, wparam, lparam);
+
+ return result;
+}
+
+
+
+//============================================================
+// adjuster_sb_setup
+// called from win_dialog_add_adjuster
+//============================================================
+
+static LRESULT adjuster_sb_setup(dialog_box *dialog, HWND sbwnd, UINT message, WPARAM wparam, LPARAM lparam)
+{
+ struct adjuster_sb_stuff *stuff;
+ LONG_PTR l;
+
+ stuff = global_alloc(adjuster_sb_stuff);
+ if (!stuff)
+ return 1;
+ stuff->min_value = (WORD) (lparam >> 0);
+ stuff->max_value = (WORD) (lparam >> 16);
+
+ l = (LONG_PTR) stuff;
+ SetWindowLongPtr(sbwnd, GWLP_USERDATA, l);
+ l = (LONG_PTR) adjuster_sb_wndproc;
+ l = SetWindowLongPtr(sbwnd, GWLP_WNDPROC, l);
+ stuff->oldwndproc = (WNDPROC) l;
+ return 0;
+}
+
+
+
+//============================================================
+// win_dialog_add_adjuster
+// called from customise_analogcontrols
+//============================================================
+
+static int win_dialog_add_adjuster(dialog_box *dialog, const char *item_label, int default_value,
+ int min_value, int max_value, BOOL is_percentage, dialog_itemstoreval storeval, void *storeval_param)
+{
+ short x;
+ short y;
+ TCHAR buf[32];
+ TCHAR *s;
+
+ dialog_new_control(dialog, &x, &y);
+
+ if (dialog_write_item(dialog, WS_CHILD | WS_VISIBLE | SS_LEFT, x, y, dialog->layout->label_width, DIM_ADJUSTER_HEIGHT, item_label, DLGITEM_STATIC, NULL))
+ goto error;
+ x += dialog->layout->label_width + DIM_HORIZONTAL_SPACING;
+
+ y += DIM_BOX_VERTSKEW;
+
+ if (dialog_write_item(dialog, WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER | ES_NUMBER,
+ x, y, dialog->layout->combo_width - DIM_ADJUSTER_SCR_WIDTH, DIM_ADJUSTER_HEIGHT, NULL, DLGITEM_EDIT, NULL))
+ goto error;
+ x += dialog->layout->combo_width - DIM_ADJUSTER_SCR_WIDTH;
+
+ _sntprintf(buf, ARRAY_LENGTH(buf), is_percentage ? TEXT("%d%%") : TEXT("%d"), default_value);
+ s = win_dialog_tcsdup(dialog, buf);
+
+ if (!s)
+ return 1;
+ if (dialog_add_trigger(dialog, dialog->item_count, TRIGGER_INITDIALOG, WM_SETTEXT, NULL, 0, (LPARAM) s, NULL, NULL))
+ goto error;
+
+ // add the trigger invoked when the apply button is pressed
+ if (dialog_add_trigger(dialog, dialog->item_count, TRIGGER_APPLY, 0, dialog_get_adjuster_value, 0, 0, storeval, storeval_param))
+ goto error;
+
+ if (dialog_write_item(dialog, WS_CHILD | WS_VISIBLE | WS_TABSTOP | SBS_VERT, x, y, DIM_ADJUSTER_SCR_WIDTH, DIM_ADJUSTER_HEIGHT, NULL, DLGITEM_SCROLLBAR, NULL))
+ goto error;
+ x += DIM_ADJUSTER_SCR_WIDTH + DIM_HORIZONTAL_SPACING;
+
+ if (dialog_add_trigger(dialog, dialog->item_count, TRIGGER_INITDIALOG, 0, adjuster_sb_setup, 0, MAKELONG(min_value, max_value), NULL, NULL))
+ return 1;
+
+ y += DIM_COMBO_ROW_HEIGHT + DIM_VERTICAL_SPACING * 2;
+
+ dialog_finish_control(dialog, x, y);
+ return 0;
+
+error:
+ return 1;
+}
+
+
+
+
+//============================================================
+// get_seqselect_info
+//============================================================
+
+static seqselect_info *get_seqselect_info(HWND editwnd)
+{
+ LONG_PTR lp;
+ lp = GetWindowLongPtr(editwnd, GWLP_USERDATA);
+ return (seqselect_info *) lp;
+}
+
+
+
+//=============================================================================
+// seqselect_settext
+// called from seqselect_start_read_from_main_thread, seqselect_setup
+//=============================================================================
+//#pragma GCC diagnostic push
+#ifdef __GNUC__
+#pragma GCC diagnostic ignored "-Wunused-value"
+#endif
+
+static void seqselect_settext(HWND editwnd)
+{
+ seqselect_info *stuff;
+ std::string seqstring, buf;
+
+ // the basics
+ stuff = get_seqselect_info(editwnd);
+ if (stuff == NULL)
+ return; // this should not happen - need to fix this
+
+ // retrieve the seq name
+ seqstring = Machine->input().seq_name(*stuff->code);
+
+ // change the text - avoid calls to SetWindowText() if we can
+ buf = win_get_window_text_utf8(editwnd);
+ if (buf != seqstring)
+ win_set_window_text_utf8(editwnd, seqstring.c_str());
+
+ // reset the selection
+ if (GetFocus() == editwnd)
+ {
+ DWORD start = 0, end = 0;
+ SendMessage(editwnd, EM_GETSEL, (WPARAM) (LPDWORD) &start, (LPARAM) (LPDWORD) &end);
+ if ((start != 0) || (end != buf.size()))
+ SendMessage(editwnd, EM_SETSEL, 0, -1);
+ }
+}
+
+#ifdef __GNUC__
+#pragma GCC diagnostic error "-Wunused-value"
+#endif
+
+
+//============================================================
+// seqselect_start_read_from_main_thread
+// called from seqselect_wndproc
+//============================================================
+
+static void seqselect_start_read_from_main_thread(void *param)
+{
+ seqselect_info *stuff;
+
+ // get the basics
+ HWND editwnd = (HWND) param;
+ stuff = get_seqselect_info(editwnd);
+
+ // are we currently polling? if so bail out
+ if (stuff->poll_state != SEQSELECT_STATE_NOT_POLLING)
+ return;
+
+ // change the state
+ stuff->poll_state = SEQSELECT_STATE_POLLING;
+
+ // the Win32 OSD code thinks that we are paused, we need to temporarily
+ // unpause ourselves or else we will block
+ int pause_count = 0;
+ while(Machine->paused() && !winwindow_ui_is_paused(*Machine))
+ {
+ winwindow_ui_pause(*Machine, FALSE);
+ pause_count++;
+ }
+
+ // start the polling
+ (*Machine).input().seq_poll_start(stuff->is_analog ? ITEM_CLASS_ABSOLUTE : ITEM_CLASS_SWITCH, NULL);
+
+ while(stuff->poll_state == SEQSELECT_STATE_POLLING)
+ {
+ // poll
+ if (Machine->input().seq_poll())
+ {
+ *stuff->code = Machine->input().seq_poll_final();
+ seqselect_settext(editwnd);
+ }
+ }
+
+ // we are no longer polling
+ stuff->poll_state = SEQSELECT_STATE_NOT_POLLING;
+
+ // repause the OSD code
+ while(pause_count--)
+ winwindow_ui_pause(*Machine, TRUE);
+}
+
+
+
+//============================================================
+// seqselect_stop_read_from_main_thread
+// called from seqselect_wndproc
+//============================================================
+
+static void seqselect_stop_read_from_main_thread(void *param)
+{
+ HWND editwnd;
+ seqselect_info *stuff;
+
+ // get the basics
+ editwnd = (HWND) param;
+ stuff = get_seqselect_info(editwnd);
+
+ // stop the read
+ if (stuff->poll_state == SEQSELECT_STATE_POLLING)
+ stuff->poll_state = SEQSELECT_STATE_POLLING_COMPLETE;
+}
+
+
+
+//============================================================
+// seqselect_wndproc
+// called from seqselect_setup
+//============================================================
+
+static INT_PTR CALLBACK seqselect_wndproc(HWND editwnd, UINT msg, WPARAM wparam, LPARAM lparam)
+{
+ seqselect_info *stuff;
+ INT_PTR result = 0;
+ BOOL call_baseclass = TRUE;
+
+ stuff = get_seqselect_info(editwnd);
+
+ switch(msg)
+ {
+ case WM_KEYDOWN:
+ case WM_SYSKEYDOWN:
+ case WM_CHAR:
+ case WM_KEYUP:
+ case WM_SYSKEYUP:
+ result = 1;
+ call_baseclass = FALSE;
+ break;
+
+ case WM_SETFOCUS:
+ PostMessage(editwnd, SEQWM_SETFOCUS, 0, 0);
+ break;
+
+ case WM_KILLFOCUS:
+ PostMessage(editwnd, SEQWM_KILLFOCUS, 0, 0);
+ break;
+
+ case SEQWM_SETFOCUS:
+ // if we receive the focus, we should start a polling loop
+ seqselect_start_read_from_main_thread( (void *) editwnd);
+ break;
+
+ case SEQWM_KILLFOCUS:
+ // when we abort the focus, end any current polling loop
+ seqselect_stop_read_from_main_thread( (void *) editwnd);
+ break;
+
+ case WM_LBUTTONDOWN:
+ case WM_RBUTTONDOWN:
+ SetFocus(editwnd);
+ SendMessage(editwnd, EM_SETSEL, 0, -1);
+ call_baseclass = FALSE;
+ result = 0;
+ break;
+ }
+
+ if (call_baseclass)
+ result = call_windowproc(stuff->oldwndproc, editwnd, msg, wparam, lparam);
+ return result;
+}
+
+
+
+//============================================================
+// seqselect_setup
+// called from dialog_add_single_seqselect
+//============================================================
+
+static LRESULT seqselect_setup(dialog_box *dialog, HWND editwnd, UINT message, WPARAM wparam, LPARAM lparam)
+{
+ seqselect_info *stuff = (seqselect_info *) lparam;
+ LONG_PTR lp;
+
+ lp = SetWindowLongPtr(editwnd, GWLP_WNDPROC, (LONG_PTR) seqselect_wndproc);
+ stuff->oldwndproc = (WNDPROC) lp;
+ SetWindowLongPtr(editwnd, GWLP_USERDATA, lparam);
+ seqselect_settext(editwnd);
+ return 0;
+}
+
+
+
+//============================================================
+// seqselect_apply
+// called from dialog_add_single_seqselect
+//============================================================
+
+static LRESULT seqselect_apply(dialog_box *dialog, HWND editwnd, UINT message, WPARAM wparam, LPARAM lparam)
+{
+ seqselect_info *stuff;
+ stuff = get_seqselect_info(editwnd);
+
+ // store the settings
+ stuff->field->set_user_settings(stuff->settings);
+
+ return 0;
+}
+
+//============================================================
+// dialog_add_single_seqselect
+// called from win_dialog_add_portselect
+//============================================================
+
+static int dialog_add_single_seqselect(struct _dialog_box *di, short x, short y, short cx, short cy, ioport_field *field, int is_analog, int seqtype)
+{
+ // write the dialog item
+ if (dialog_write_item(di, WS_CHILD | WS_VISIBLE | SS_ENDELLIPSIS | ES_CENTER | SS_SUNKEN, x, y, cx, cy, NULL, DLGITEM_EDIT, NULL))
+ return 1;
+
+ // allocate a seqselect_info
+ seqselect_info *stuff = new(seqselect_info);
+ //seqselect_info *stuff;
+ //stuff = global_alloc(seqselect_info);
+ if (!stuff)
+ return 1;
+
+ // initialize the structure
+ memset(stuff, 0, sizeof(*stuff));
+ field->get_user_settings(stuff->settings);
+ stuff->field = field;
+ stuff->pos = di->item_count;
+ stuff->is_analog = is_analog;
+
+ // This next line is completely unsafe, but I do not know what to use *****************
+ stuff->code = const_cast <input_seq*> (&field->seq( (input_seq_type) seqtype) );
+
+ if (dialog_add_trigger(di, di->item_count, TRIGGER_INITDIALOG, 0, seqselect_setup, di->item_count, (LPARAM) stuff, NULL, NULL))
+ return 1;
+ if (dialog_add_trigger(di, di->item_count, TRIGGER_APPLY, 0, seqselect_apply, 0, 0, NULL, NULL))
+ return 1;
+ return 0;
+}
+
+
+
+//============================================================
+// win_dialog_add_seqselect
+// called from customise_input, customise_miscinput
+//============================================================
+
+static int win_dialog_add_portselect(dialog_box *dialog, ioport_field *field)
+{
+ dialog_box *di = dialog;
+ short x;
+ short y;
+ const char *port_name;
+ const char *this_port_name;
+ char *s;
+ int seq;
+ int seq_count = 0;
+ const char *port_suffix[3];
+ int seq_types[3];
+ int is_analog[3];
+ int len;
+
+ port_name = field->name();
+ if (!port_name)
+ printf("Blank port_name encountered in win_dialog_add_portselect\n");
+ assert(port_name);
+
+ if (field->type() > IPT_ANALOG_FIRST && field->type() < IPT_ANALOG_LAST)
+ {
+ seq_types[seq_count] = SEQ_TYPE_STANDARD;
+ port_suffix[seq_count] = " Analog";
+ is_analog[seq_count] = TRUE;
+ seq_count++;
+
+ seq_types[seq_count] = SEQ_TYPE_DECREMENT;
+ port_suffix[seq_count] = " Dec";
+ is_analog[seq_count] = FALSE;
+ seq_count++;
+
+ seq_types[seq_count] = SEQ_TYPE_INCREMENT;
+ port_suffix[seq_count] = " Inc";
+ is_analog[seq_count] = FALSE;
+ seq_count++;
+ }
+ else
+ {
+ seq_types[seq_count] = SEQ_TYPE_STANDARD;
+ port_suffix[seq_count] = NULL;
+ is_analog[seq_count] = FALSE;
+ seq_count++;
+ }
+
+ for (seq = 0; seq < seq_count; seq++)
+ {
+ // create our local name for this entry; also convert from
+ // MAME strings to wide strings
+ len = strlen(port_name);
+ s = (char *) alloca((len + (port_suffix[seq] ? strlen(port_suffix[seq]) : 0) + 1) * sizeof(*s));
+ strcpy(s, port_name);
+
+ if (port_suffix[seq])
+ strcpy(s + len, port_suffix[seq]);
+ this_port_name = s;
+
+ // no positions specified
+ dialog_new_control(di, &x, &y);
+
+ if (dialog_write_item(di, WS_CHILD | WS_VISIBLE | SS_LEFT | SS_NOPREFIX, x, y,
+ dialog->layout->label_width, DIM_NORMAL_ROW_HEIGHT, this_port_name, DLGITEM_STATIC, NULL))
+ return 1;
+ x += dialog->layout->label_width + DIM_HORIZONTAL_SPACING;
+
+ if (dialog_add_single_seqselect(di, x, y, DIM_EDIT_WIDTH, DIM_NORMAL_ROW_HEIGHT, field, is_analog[seq], seq_types[seq]))
+ return 1;
+ y += DIM_VERTICAL_SPACING + DIM_NORMAL_ROW_HEIGHT;
+ x += DIM_EDIT_WIDTH + DIM_HORIZONTAL_SPACING;
+
+ dialog_finish_control(di, x, y);
+ }
+ return 0;
+}
+
+
+
+//============================================================
+// win_dialog_add_standard_buttons
+//============================================================
+
+static int win_dialog_add_standard_buttons(dialog_box *dialog)
+{
+ dialog_box *di = dialog;
+ short x;
+ short y;
+
+ // Handle the case of an empty dialog box (size_x & size_y will be 0)
+ if (!di->size_x)
+ di->size_x = 3 * DIM_HORIZONTAL_SPACING + 2 * DIM_BUTTON_WIDTH;
+ if (!di->size_y)
+ di->size_y = DIM_VERTICAL_SPACING;
+
+ // work out where cancel button goes
+ x = di->size_x - DIM_HORIZONTAL_SPACING - DIM_BUTTON_WIDTH;
+ y = di->size_y + DIM_VERTICAL_SPACING;
+
+ // display cancel button
+ if (dialog_write_item(di, WS_CHILD | WS_VISIBLE | SS_LEFT, x, y, DIM_BUTTON_WIDTH, DIM_BUTTON_ROW_HEIGHT, DLGTEXT_CANCEL, DLGITEM_BUTTON, NULL))
+ return 1;
+
+ // work out where OK button goes
+ x -= DIM_HORIZONTAL_SPACING + DIM_BUTTON_WIDTH;
+
+ // display OK button
+ if (dialog_write_item(di, WS_CHILD | WS_VISIBLE | SS_LEFT, x, y, DIM_BUTTON_WIDTH, DIM_BUTTON_ROW_HEIGHT, DLGTEXT_OK, DLGITEM_BUTTON, NULL))
+ return 1;
+
+ di->size_y += DIM_BUTTON_ROW_HEIGHT + DIM_VERTICAL_SPACING * 2;
+
+ return 0;
+}
+
+
+
+//============================================================
+// before_display_dialog
+//============================================================
+
+static void before_display_dialog(running_machine &machine)
+{
+ Machine = &machine;
+ winwindow_ui_pause(machine, TRUE);
+}
+
+
+
+//============================================================
+// after_display_dialog
+//============================================================
+
+static void after_display_dialog(running_machine &machine)
+{
+ winwindow_ui_pause(machine, FALSE);
+}
+
+
+
+//============================================================
+// win_dialog_runmodal
+// called from the various customise_inputs functions
+//============================================================
+
+static void win_dialog_runmodal(running_machine &machine, HWND wnd, dialog_box *dialog)
+{
+ if (!dialog)
+ printf("Unexpected result in win_dialog_runmodal\n");
+ assert(dialog);
+
+ // finishing touches on the dialog
+ dialog_prime(dialog);
+
+ // show the dialog
+ before_display_dialog(machine);
+ DialogBoxIndirectParamW(NULL, (const DLGTEMPLATE*)dialog->handle, wnd, (DLGPROC) dialog_proc, (LPARAM) dialog);
+ after_display_dialog(machine);
+}
+
+
+
+//============================================================
+// win_file_dialog
+// called from change_device
+//============================================================
+
+static BOOL win_file_dialog(running_machine &machine, HWND parent, win_file_dialog_type dlgtype, const char *filter,
+ const char *initial_dir, char *filename, size_t filename_len)
+{
+ win_open_file_name ofn;
+ BOOL result = FALSE;
+
+ // set up the OPENFILENAME data structure
+ memset(&ofn, 0, sizeof(ofn));
+ ofn.type = dlgtype;
+ ofn.owner = parent;
+ ofn.flags = OFN_EXPLORER | OFN_NOCHANGEDIR | OFN_PATHMUSTEXIST | OFN_HIDEREADONLY;
+ ofn.filter = filter;
+ ofn.initial_directory = initial_dir;
+
+ if (dlgtype == WIN_FILE_DIALOG_OPEN)
+ ofn.flags |= OFN_FILEMUSTEXIST;
+
+ snprintf(ofn.filename, ARRAY_LENGTH(ofn.filename), "%s", filename);
+
+ before_display_dialog(machine);
+ result = win_get_file_name_dialog(&ofn);
+ after_display_dialog(machine);
+
+ snprintf(filename, filename_len, "%s", ofn.filename);
+ return result;
+}
+
+
+
+//============================================================
+// customise_input
+//============================================================
+
+static void customise_input(running_machine &machine, HWND wnd, const char *title, int player, int inputclass)
+{
+ dialog_box *dlg;
+ int this_inputclass, this_player;
+
+ /* create the dialog */
+ dlg = win_dialog_init(title, NULL);
+ if (!dlg)
+ return;
+
+ for (auto &port : machine.ioport().ports())
+ {
+ for (ioport_field &field : port.second->fields())
+ {
+ /* add if we match the group and we have a valid name */
+ const char *name = field.name();
+ this_inputclass = field.type_class();
+ this_player = field.player();
+
+ if ((name)
+ && (field.enabled())
+//check me && ((field->type() == IPT_OTHER && field->name()) || (machine.ioport().type_group(field->type(), field->player()) != IPG_INVALID))
+ && (this_player == player)
+ && (this_inputclass == inputclass))
+ {
+ if (win_dialog_add_portselect(dlg, &field))
+ goto done;
+ }
+ }
+ }
+
+ /* ...and now add OK/Cancel */
+ if (win_dialog_add_standard_buttons(dlg))
+ goto done;
+
+ /* ...and finally display the dialog */
+ win_dialog_runmodal(machine, wnd, dlg);
+
+done:
+ if (dlg)
+ win_dialog_exit(dlg);
+}
+
+
+
+//============================================================
+// customise_joystick
+//============================================================
+
+static void customise_joystick(running_machine &machine, HWND wnd, int joystick_num)
+{
+ customise_input(machine, wnd, "Joysticks/Controllers", joystick_num, INPUT_CLASS_CONTROLLER);
+}
+
+
+
+//============================================================
+// customise_keyboard
+//============================================================
+
+static void customise_keyboard(running_machine &machine, HWND wnd)
+{
+ customise_input(machine, wnd, "Emulated Keyboard", 0, INPUT_CLASS_KEYBOARD);
+}
+
+
+
+//===============================================================================================
+// check_for_miscinput
+// (to decide if "Miscellaneous Inputs" menu item should show or not).
+// We do this here because the core check has been broken for years (always returns false).
+//===============================================================================================
+
+static bool check_for_miscinput(running_machine &machine)
+{
+ int this_inputclass = 0;
+
+ for (auto &port : machine.ioport().ports())
+ {
+ for (ioport_field &field : port.second->fields())
+ {
+ const char *name = field.name();
+ this_inputclass = field.type_class();
+
+ /* add if we match the group and we have a valid name */
+ if ((name)
+ && (field.enabled())
+ && ((field.type() == IPT_OTHER && field.name()) || (machine.ioport().type_group(field.type(), field.player()) != IPG_INVALID))
+ && (this_inputclass != INPUT_CLASS_CONTROLLER)
+ && (this_inputclass != INPUT_CLASS_KEYBOARD))
+ {
+ return TRUE;
+ }
+ }
+ }
+ return FALSE;
+}
+
+
+
+//============================================================
+// customise_miscinput
+//============================================================
+
+static void customise_miscinput(running_machine &machine, HWND wnd)
+{
+ dialog_box *dlg;
+ int this_inputclass;
+ const char *title = "Miscellaneous Inputs";
+
+ /* create the dialog */
+ dlg = win_dialog_init(title, NULL);
+ if (!dlg)
+ return;
+
+ for (auto &port : machine.ioport().ports())
+ {
+ for (ioport_field &field : port.second->fields())
+ {
+ const char *name = field.name();
+ this_inputclass = field.type_class();
+
+ /* add if we match the group and we have a valid name */
+ if ((name)
+ && (field.enabled())
+ && ((field.type() == IPT_OTHER && field.name()) || (machine.ioport().type_group(field.type(), field.player()) != IPG_INVALID))
+ && (this_inputclass != INPUT_CLASS_CONTROLLER)
+ && (this_inputclass != INPUT_CLASS_KEYBOARD))
+ {
+ if (win_dialog_add_portselect(dlg, &field))
+ goto done;
+ }
+ }
+ }
+
+ /* ...and now add OK/Cancel */
+ if (win_dialog_add_standard_buttons(dlg))
+ goto done;
+
+ /* ...and finally display the dialog */
+ win_dialog_runmodal(machine, wnd, dlg);
+
+done:
+ if (dlg)
+ win_dialog_exit(dlg);
+}
+
+
+
+//============================================================
+// storeval_inputport
+// called from customise_switches
+//============================================================
+
+static void storeval_inputport(void *param, int val)
+{
+ ioport_field *field = (ioport_field *) param;
+ ioport_field::user_settings settings;
+
+ field->get_user_settings(settings);
+ settings.value = (ioport_value) val;
+ field->set_user_settings(settings);
+}
+
+
+
+//============================================================
+// customise_switches
+//============================================================
+
+static void customise_switches(running_machine &machine, HWND wnd, const char* title_string, UINT32 ipt_name)
+{
+ dialog_box *dlg;
+ ioport_field *afield;
+ ioport_setting *setting;
+ const char *switch_name = NULL;
+ ioport_field::user_settings settings;
+
+ UINT32 type = 0;
+
+ dlg = win_dialog_init(title_string, NULL);
+ if (!dlg)
+ return;
+
+ for (auto &port : machine.ioport().ports())
+ {
+ for (ioport_field &field : port.second->fields())
+ {
+ type = field.type();
+
+ if (type == ipt_name)
+ {
+ switch_name = field.name();
+
+ field.get_user_settings(settings);
+ afield = &field;
+ if (win_dialog_add_combobox(dlg, switch_name, settings.value, storeval_inputport, (void *) afield))
+ goto done;
+
+ for (setting = field.settings().first(); setting; setting = setting->next())
+ {
+ if (win_dialog_add_combobox_item(dlg, setting->name(), setting->value()))
+ goto done;
+ }
+ }
+ }
+ }
+
+ if (win_dialog_add_standard_buttons(dlg))
+ goto done;
+
+ win_dialog_runmodal(machine, wnd, dlg);
+
+done:
+ if (dlg)
+ win_dialog_exit(dlg);
+}
+
+
+
+//============================================================
+// customise_dipswitches
+//============================================================
+
+static void customise_dipswitches(running_machine &machine, HWND wnd)
+{
+ customise_switches(machine, wnd, "Dip Switches", IPT_DIPSWITCH);
+}
+
+
+
+//============================================================
+// customise_configuration
+//============================================================
+
+static void customise_configuration(running_machine &machine, HWND wnd)
+{
+ customise_switches(machine, wnd, "Driver Configuration", IPT_CONFIG);
+}
+
+
+
+//============================================================
+// customise_analogcontrols
+//============================================================
+
+enum
+{
+ ANALOG_ITEM_KEYSPEED,
+ ANALOG_ITEM_CENTERSPEED,
+ ANALOG_ITEM_REVERSE,
+ ANALOG_ITEM_SENSITIVITY
+};
+
+
+
+static void store_analogitem(void *param, int val, int selected_item)
+{
+ ioport_field *field = (ioport_field *) param;
+ ioport_field::user_settings settings;
+
+ field->get_user_settings(settings);
+
+ switch(selected_item)
+ {
+ case ANALOG_ITEM_KEYSPEED:
+ settings.delta = val;
+ break;
+ case ANALOG_ITEM_CENTERSPEED:
+ settings.centerdelta = val;
+ break;
+ case ANALOG_ITEM_REVERSE:
+ settings.reverse = val;
+ break;
+ case ANALOG_ITEM_SENSITIVITY:
+ settings.sensitivity = val;
+ break;
+ }
+ field->set_user_settings(settings);
+}
+
+
+
+static void store_delta(void *param, int val)
+{
+ store_analogitem(param, val, ANALOG_ITEM_KEYSPEED);
+}
+
+
+
+static void store_centerdelta(void *param, int val)
+{
+ store_analogitem(param, val, ANALOG_ITEM_CENTERSPEED);
+}
+
+
+
+static void store_reverse(void *param, int val)
+{
+ store_analogitem(param, val, ANALOG_ITEM_REVERSE);
+}
+
+
+
+static void store_sensitivity(void *param, int val)
+{
+ store_analogitem(param, val, ANALOG_ITEM_SENSITIVITY);
+}
+
+
+
+static int port_type_is_analog(int type)
+{
+ return (type > IPT_ANALOG_FIRST && type < IPT_ANALOG_LAST);
+}
+
+
+
+static void customise_analogcontrols(running_machine &machine, HWND wnd)
+{
+ dialog_box *dlg;
+ ioport_field::user_settings settings;
+ ioport_field *afield;
+ const char *name;
+ char buf[255];
+ static const struct dialog_layout layout = { 120, 52 };
+
+ dlg = win_dialog_init("Analog Controls", &layout);
+ if (!dlg)
+ return;
+
+ for (auto &port : machine.ioport().ports())
+ {
+ for (ioport_field &field : port.second->fields())
+ {
+ if (port_type_is_analog(field.type()))
+ {
+ field.get_user_settings(settings);
+ name = field.name();
+ afield = &field;
+
+ _snprintf(buf, ARRAY_LENGTH(buf), "%s %s", name, "Digital Speed");
+ if (win_dialog_add_adjuster(dlg, buf, settings.delta, 1, 255, FALSE, store_delta, (void *) afield))
+ goto done;
+
+ _snprintf(buf, ARRAY_LENGTH(buf), "%s %s", name, "Autocenter Speed");
+ if (win_dialog_add_adjuster(dlg, buf, settings.centerdelta, 0, 255, FALSE, store_centerdelta, (void *) afield))
+ goto done;
+
+ _snprintf(buf, ARRAY_LENGTH(buf), "%s %s", name, "Reverse");
+ if (win_dialog_add_combobox(dlg, buf, settings.reverse ? 1 : 0, store_reverse, (void *) afield))
+ goto done;
+ if (win_dialog_add_combobox_item(dlg, "Off", 0))
+ goto done;
+ if (win_dialog_add_combobox_item(dlg, "On", 1))
+ goto done;
+
+ _snprintf(buf, ARRAY_LENGTH(buf), "%s %s", name, "Sensitivity");
+ if (win_dialog_add_adjuster(dlg, buf, settings.sensitivity, 1, 255, TRUE, store_sensitivity, (void *) afield))
+ goto done;
+ }
+ }
+ }
+
+ if (win_dialog_add_standard_buttons(dlg))
+ goto done;
+
+ win_dialog_runmodal(machine, wnd, dlg);
+
+done:
+ if (dlg)
+ win_dialog_exit(dlg);
+}
+
+
+//============================================================
+// win_dirname
+// called from state_dialog
+//============================================================
+
+static char *win_dirname(const char *filename)
+{
+ char *dirname;
+ char *c;
+
+ // NULL begets NULL
+ if (!filename)
+ return NULL;
+
+ // allocate space for it
+ dirname = (char*)malloc(strlen(filename) + 1);
+ if (!dirname)
+ return NULL;
+
+ // copy in the name
+ strcpy(dirname, filename);
+
+ // search backward for a slash or a colon
+ for (c = dirname + strlen(dirname) - 1; c >= dirname; c--)
+ if (*c == '\\' || *c == '/' || *c == ':')
+ {
+ // found it: NULL terminate and return
+ *(c + 1) = 0;
+ return dirname;
+ }
+
+ // otherwise, return an empty string
+ dirname[0] = 0;
+ return dirname;
+}
+
+
+//============================================================
+// state_dialog
+// called when loading or saving a state
+//============================================================
+
+static void state_dialog(HWND wnd, win_file_dialog_type dlgtype, DWORD fileproc_flags, bool is_load, running_machine &machine)
+{
+ win_open_file_name ofn;
+ char *dir = NULL;
+ int result = 0;
+
+ if (state_filename[0])
+ dir = win_dirname(state_filename);
+
+ memset(&ofn, 0, sizeof(ofn));
+ ofn.type = dlgtype;
+ ofn.owner = wnd;
+ ofn.flags = OFN_EXPLORER | OFN_NOCHANGEDIR | OFN_PATHMUSTEXIST | OFN_HIDEREADONLY | fileproc_flags;
+ ofn.filter = "State Files (*.sta)|*.sta|All Files (*.*)|*.*";
+ ofn.initial_directory = dir;
+
+ if (!core_filename_ends_with(ofn.filename, "sta"))
+ snprintf(ofn.filename, ARRAY_LENGTH(ofn.filename), "%s.sta", state_filename);
+ else
+ snprintf(ofn.filename, ARRAY_LENGTH(ofn.filename), "%s", state_filename);
+
+ result = win_get_file_name_dialog(&ofn);
+
+ if (result)
+ {
+ // the core doesn't add the extension if it's an absolute path
+ if (osd_is_absolute_path(ofn.filename) && !core_filename_ends_with(ofn.filename, "sta"))
+ snprintf(state_filename, ARRAY_LENGTH(state_filename), "%s.sta", ofn.filename);
+ else
+ snprintf(state_filename, ARRAY_LENGTH(state_filename), "%s", ofn.filename);
+
+ if (is_load)
+ machine.schedule_load(state_filename);
+ else
+ machine.schedule_save(state_filename);
+ }
+
+ if (dir)
+ free(dir);
+}
+
+
+
+static void state_load(HWND wnd, running_machine &machine)
+{
+ state_dialog(wnd, WIN_FILE_DIALOG_OPEN, OFN_FILEMUSTEXIST, TRUE, machine);
+}
+
+static void state_save_as(HWND wnd, running_machine &machine)
+{
+ state_dialog(wnd, WIN_FILE_DIALOG_SAVE, OFN_OVERWRITEPROMPT, FALSE, machine);
+}
+
+static void state_save(running_machine &machine)
+{
+ machine.schedule_save(state_filename);
+}
+
+
+
+//============================================================
+// copy_extension_list
+//============================================================
+
+static void copy_extension_list(std::string &dest, const char *extensions)
+{
+ // our extension lists are comma delimited; Win32 expects to see lists
+ // delimited by semicolons
+ char const *s = extensions;
+ while (*s)
+ {
+ // append a semicolon if not at the beginning
+ if (s != extensions)
+ dest.push_back(';');
+
+ // append ".*"
+ dest.append("*.");
+
+ // append the file extension
+ while (*s && (*s != ','))
+ dest.push_back(*s++);
+
+ // if we found a comma, advance
+ while(*s == ',')
+ s++;
+ }
+}
+
+
+
+//============================================================
+// add_filter_entry
+//============================================================
+
+static void add_filter_entry(std::string &dest, const char *description, const char *extensions)
+{
+ // add the description
+ dest.append(description);
+ dest.append(" (");
+
+ // add the extensions to the description
+ copy_extension_list(dest, extensions);
+
+ // add the trailing rparen and '|' character
+ dest.append(")|");
+
+ // now add the extension list itself
+ copy_extension_list(dest, extensions);
+
+ // append a '|'
+ dest.append("|");
+}
+
+
+
+//============================================================
+// build_generic_filter
+//============================================================
+
+static void build_generic_filter(device_image_interface *img, bool is_save, std::string &filter)
+{
+ std::string file_extension = img->file_extensions();
+
+ if (!is_save)
+ file_extension.append(",zip,7z");
+
+ add_filter_entry(filter, "Common image types", file_extension.c_str());
+
+ filter.append("All files (*.*)|*.*|");
+
+ if (!is_save)
+ filter.append("Compressed Images (*.zip;*.7z)|*.zip;*.7z|");
+}
+
+
+
+//============================================================
+// change_device
+// open a dialog box to open or create a software file
+//============================================================
+
+static void change_device(HWND wnd, device_image_interface *image, bool is_save)
+{
+ std::string filter;
+ char filename[MAX_PATH];
+ const char *initial_dir;
+ BOOL result = 0;
+ int create_format = 0;
+ util::option_resolution *create_args = NULL;
+
+ // get the file
+ if (image->exists())
+ {
+ const char *imgname;
+ imgname = image->basename();
+ snprintf(filename, ARRAY_LENGTH(filename), "%s", imgname);
+ }
+ else
+ filename[0] = '\0';
+
+ // get the working directory, but if it is ".", then use the one specified in swpath
+ char *working = 0;
+ std::string dst;
+ osd_get_full_path(dst,"."); // turn local directory into full path
+ initial_dir = image->working_directory().c_str(); // get working directory from diimage.cpp
+ // if . use swpath
+ if (strcmp(dst.c_str(), initial_dir) == 0) // same?
+ initial_dir = software_dir;
+
+ // remove any trailing backslash
+ working = core_strdup(initial_dir);
+ int temp = strlen(working) - 1;
+ if (temp > 2)
+ if (working[temp] == '\\')
+ {
+ working[temp] = '\0';
+ initial_dir = working;
+ }
+
+// NOTE: the working directory can come from the .cfg file. If it's wrong delete the cfg.
+//printf("%s = %s = %s = %s\n",dst,working,initial_dir,software_dir);
+
+ // build a normal filter
+ build_generic_filter(image, is_save, filter);
+
+ // display the dialog
+ result = win_file_dialog(image->device().machine(), wnd, is_save ? WIN_FILE_DIALOG_SAVE : WIN_FILE_DIALOG_OPEN, filter.c_str(), initial_dir, filename, ARRAY_LENGTH(filename));
+ if (result)
+ {
+ // mount the image
+ if (is_save)
+ (image_error_t)image->create(filename, image->device_get_indexed_creatable_format(create_format), create_args);
+ else
+ (image_error_t)image->load( filename);
+
+ // no need to check the returnvalue and show a messagebox anymore.
+ // a UI message will now be generated by the image code
+ }
+}
+
+
+
+//============================================================
+// pause
+//============================================================
+
+static void pause(running_machine &machine)
+{
+ if (!winwindow_ui_is_paused(machine))
+ machine.pause();
+ else
+ machine.resume();
+}
+
+
+
+//============================================================
+// get_menu_item_string
+//============================================================
+
+static BOOL get_menu_item_string(HMENU menu, UINT item, BOOL by_position, HMENU *sub_menu, LPTSTR buffer, size_t buffer_len)
+{
+ MENUITEMINFO mii;
+
+ // clear out results
+ memset(buffer, '\0', sizeof(*buffer) * buffer_len);
+ if (sub_menu)
+ *sub_menu = NULL;
+
+ // prepare MENUITEMINFO structure
+ memset(&mii, 0, sizeof(mii));
+ mii.cbSize = sizeof(mii);
+ mii.fMask = MIIM_TYPE | (sub_menu ? MIIM_SUBMENU : 0);
+ mii.dwTypeData = buffer;
+ mii.cch = buffer_len;
+
+ // call GetMenuItemInfo()
+ if (!GetMenuItemInfo(menu, item, by_position, &mii))
+ return FALSE;
+
+ // return results
+ if (sub_menu)
+ *sub_menu = mii.hSubMenu;
+ if (mii.fType == MFT_SEPARATOR)
+ _sntprintf(buffer, buffer_len, TEXT("-"));
+ return TRUE;
+}
+
+
+
+//============================================================
+// find_sub_menu
+//============================================================
+
+static HMENU find_sub_menu(HMENU menu, const char *menutext, bool create_sub_menu)
+{
+ TCHAR buf[128];
+ HMENU sub_menu;
+
+ while(*menutext)
+ {
+ TCHAR *t_menutext = ui_wstring_from_utf8(menutext);
+
+ int i = -1;
+ do
+ {
+ if (!get_menu_item_string(menu, ++i, TRUE, &sub_menu, buf, ARRAY_LENGTH(buf)))
+ {
+ free(t_menutext);
+ return NULL;
+ }
+ }
+ while(_tcscmp(t_menutext, buf));
+
+ free(t_menutext);
+
+ if (!sub_menu && create_sub_menu)
+ {
+ MENUITEMINFO mii;
+ memset(&mii, 0, sizeof(mii));
+ mii.cbSize = sizeof(mii);
+ mii.fMask = MIIM_SUBMENU;
+ mii.hSubMenu = CreateMenu();
+ if (!SetMenuItemInfo(menu, i, TRUE, &mii))
+ {
+ i = GetLastError();
+ return NULL;
+ }
+ sub_menu = mii.hSubMenu;
+ }
+ menu = sub_menu;
+ if (!menu)
+ return NULL;
+ menutext += strlen(menutext) + 1;
+ }
+ return menu;
+}
+
+
+
+//============================================================
+// set_command_state
+//============================================================
+
+static void set_command_state(HMENU menu_bar, UINT command, UINT state)
+{
+ BOOL result = 0;
+
+ MENUITEMINFO mii;
+
+ memset(&mii, 0, sizeof(mii));
+ mii.cbSize = sizeof(mii);
+ mii.fMask = MIIM_STATE;
+ mii.fState = state;
+ result = SetMenuItemInfo(menu_bar, command, FALSE, &mii);
+ result++;
+}
+
+
+
+
+//============================================================
+// remove_menu_items
+//============================================================
+
+static void remove_menu_items(HMENU menu)
+{
+ while(RemoveMenu(menu, 0, MF_BYPOSITION))
+ ;
+}
+
+
+
+//============================================================
+// setup_joystick_menu
+//============================================================
+
+static void setup_joystick_menu(running_machine &machine, HMENU menu_bar)
+{
+ int joystick_count = 0;
+ HMENU joystick_menu;
+ int i = 0;
+ char buf[256];
+ int child_count = 0;
+
+ joystick_menu = find_sub_menu(menu_bar, "&Options\0&Joysticks\0", TRUE);
+ if (!joystick_menu)
+ return;
+
+ // set up joystick menu
+ joystick_count = machine.ioport().count_players();
+ if (joystick_count > 0)
+ {
+ for (i = 0; i < joystick_count; i++)
+ {
+ snprintf(buf, ARRAY_LENGTH(buf), "Joystick %i", i + 1);
+ win_append_menu_utf8(joystick_menu, MF_STRING, ID_JOYSTICK_0 + i, buf);
+ child_count++;
+ }
+ }
+
+ // last but not least, enable the joystick menu (or not)
+ set_command_state(menu_bar, ID_OPTIONS_JOYSTICKS, child_count ? MFS_ENABLED : MFS_GRAYED);
+}
+
+
+
+//============================================================
+// is_windowed
+//============================================================
+
+static int is_windowed(void)
+{
+ return video_config.windowed;
+}
+
+
+
+//============================================================
+// frameskip_level_count
+//============================================================
+
+static int frameskip_level_count(running_machine &machine)
+{
+ static int count = -1;
+
+ if (count < 0)
+ {
+ int frameskip_max = 10;
+ count = frameskip_max + 1;
+ }
+ return count;
+}
+
+
+
+//============================================================
+// prepare_menus
+//============================================================
+
+static void prepare_menus(HWND wnd)
+{
+ int i = 0;
+ char buf[MAX_PATH];
+ TCHAR t_buf[MAX_PATH];
+ const char *s;
+ HMENU menu_bar;
+ HMENU video_menu;
+ HMENU device_menu;
+ HMENU sub_menu;
+ UINT_PTR new_item;
+ UINT flags_for_exists = 0;
+ UINT flags_for_writing = 0;
+ bool has_config = 0, has_dipswitch = 0, has_keyboard = 0, has_misc = 0, has_analog = 0;
+ int frameskip = 0;
+ int orientation = 0;
+ int speed = 0;
+ LONG_PTR ptr = GetWindowLongPtr(wnd, GWLP_USERDATA);
+ win_window_info *window = (win_window_info *)ptr;
+ const char *view_name;
+ int view_index = 0;
+ ioport_field::user_settings settings;
+
+ menu_bar = GetMenu(wnd);
+ if (!menu_bar)
+ return;
+
+ if (!joystick_menu_setup)
+ {
+ setup_joystick_menu(window->machine(), menu_bar);
+ joystick_menu_setup = 1;
+ }
+
+ frameskip = window->machine().video().frameskip();
+
+ orientation = window->m_target->orientation();
+
+ speed = window->machine().video().throttled() ? window->machine().video().speed_factor() : 0;
+
+ has_config = window->machine().ioport().type_class_present(INPUT_CLASS_CONFIG);
+ has_dipswitch = window->machine().ioport().type_class_present(INPUT_CLASS_DIPSWITCH);
+ has_keyboard = window->machine().ioport().type_class_present(INPUT_CLASS_KEYBOARD);
+ has_misc = check_for_miscinput(window->machine());
+
+ has_analog = 0;
+ for (auto &port : window->machine().ioport().ports())
+ {
+ for (ioport_field &field : port.second->fields())
+ {
+ if (port_type_is_analog(field.type()))
+ {
+ has_analog = 1;
+ break;
+ }
+ }
+ }
+
+ if (window->machine().system().flags & MACHINE_SUPPORTS_SAVE)
+ {
+ set_command_state(menu_bar, ID_FILE_LOADSTATE_NEWUI, MFS_ENABLED);
+ set_command_state(menu_bar, ID_FILE_SAVESTATE_AS, MFS_ENABLED);
+ set_command_state(menu_bar, ID_FILE_SAVESTATE, state_filename[0] != '\0' ? MFS_ENABLED : MFS_GRAYED);
+ }
+ else
+ {
+ set_command_state(menu_bar, ID_FILE_LOADSTATE_NEWUI, MFS_GRAYED);
+ set_command_state(menu_bar, ID_FILE_SAVESTATE_AS, MFS_GRAYED);
+ set_command_state(menu_bar, ID_FILE_SAVESTATE, MFS_GRAYED);
+ }
+
+ set_command_state(menu_bar, ID_EDIT_PASTE, window->machine().ioport().natkeyboard().can_post() ? MFS_ENABLED : MFS_GRAYED);
+
+ set_command_state(menu_bar, ID_OPTIONS_PAUSE, winwindow_ui_is_paused(window->machine()) ? MFS_CHECKED : MFS_ENABLED);
+ set_command_state(menu_bar, ID_OPTIONS_CONFIGURATION, has_config ? MFS_ENABLED : MFS_GRAYED);
+ set_command_state(menu_bar, ID_OPTIONS_DIPSWITCHES, has_dipswitch ? MFS_ENABLED : MFS_GRAYED);
+ set_command_state(menu_bar, ID_OPTIONS_MISCINPUT, has_misc ? MFS_ENABLED : MFS_GRAYED);
+ set_command_state(menu_bar, ID_OPTIONS_ANALOGCONTROLS, has_analog ? MFS_ENABLED : MFS_GRAYED);
+ set_command_state(menu_bar, ID_FILE_FULLSCREEN, !is_windowed() ? MFS_CHECKED : MFS_ENABLED);
+ set_command_state(menu_bar, ID_OPTIONS_TOGGLEFPS, mame_machine_manager::instance()->ui().show_fps() ? MFS_CHECKED : MFS_ENABLED);
+ set_command_state(menu_bar, ID_FILE_UIACTIVE, has_keyboard ? (window->machine().ui_active() ? MFS_CHECKED : MFS_ENABLED): MFS_CHECKED | MFS_GRAYED);
+
+ set_command_state(menu_bar, ID_KEYBOARD_EMULATED, has_keyboard ? (!window->machine().ioport().natkeyboard().in_use() ? MFS_CHECKED : MFS_ENABLED): MFS_GRAYED);
+ set_command_state(menu_bar, ID_KEYBOARD_NATURAL, (has_keyboard && window->machine().ioport().natkeyboard().can_post()) ? (window->machine().ioport().natkeyboard().in_use() ? MFS_CHECKED : MFS_ENABLED): MFS_GRAYED);
+ set_command_state(menu_bar, ID_KEYBOARD_CUSTOMIZE, has_keyboard ? MFS_ENABLED : MFS_GRAYED);
+
+ set_command_state(menu_bar, ID_VIDEO_ROTATE_0, (orientation == ROT0) ? MFS_CHECKED : MFS_ENABLED);
+ set_command_state(menu_bar, ID_VIDEO_ROTATE_90, (orientation == ROT90) ? MFS_CHECKED : MFS_ENABLED);
+ set_command_state(menu_bar, ID_VIDEO_ROTATE_180, (orientation == ROT180) ? MFS_CHECKED : MFS_ENABLED);
+ set_command_state(menu_bar, ID_VIDEO_ROTATE_270, (orientation == ROT270) ? MFS_CHECKED : MFS_ENABLED);
+
+ set_command_state(menu_bar, ID_THROTTLE_50, (speed == 500) ? MFS_CHECKED : MFS_ENABLED);
+ set_command_state(menu_bar, ID_THROTTLE_100, (speed == 1000) ? MFS_CHECKED : MFS_ENABLED);
+ set_command_state(menu_bar, ID_THROTTLE_200, (speed == 2000) ? MFS_CHECKED : MFS_ENABLED);
+ set_command_state(menu_bar, ID_THROTTLE_500, (speed == 5000) ? MFS_CHECKED : MFS_ENABLED);
+ set_command_state(menu_bar, ID_THROTTLE_1000, (speed == 10000) ? MFS_CHECKED : MFS_ENABLED);
+ set_command_state(menu_bar, ID_THROTTLE_UNTHROTTLED, (speed == 0) ? MFS_CHECKED : MFS_ENABLED);
+
+ set_command_state(menu_bar, ID_FRAMESKIP_AUTO, (frameskip < 0) ? MFS_CHECKED : MFS_ENABLED);
+ for (i = 0; i < frameskip_level_count(window->machine()); i++)
+ set_command_state(menu_bar, ID_FRAMESKIP_0 + i, (frameskip == i) ? MFS_CHECKED : MFS_ENABLED);
+
+ // set up screens in video menu
+ video_menu = find_sub_menu(menu_bar, "&Options\0&Video\0", FALSE);
+ do
+ {
+ get_menu_item_string(video_menu, 0, TRUE, NULL, t_buf, ARRAY_LENGTH(t_buf));
+ if (_tcscmp(t_buf, TEXT("-")))
+ RemoveMenu(video_menu, 0, MF_BYPOSITION);
+ }
+ while(_tcscmp(t_buf, TEXT("-")));
+ i = 0;
+ view_index = window->m_target->view();
+ while((view_name = window->m_target->view_name(i)))
+ {
+ TCHAR *t_view_name = ui_wstring_from_utf8(view_name);
+ InsertMenu(video_menu, i, MF_BYPOSITION | (i == view_index ? MF_CHECKED : 0), ID_VIDEO_VIEW_0 + i, t_view_name);
+ free(t_view_name);
+ i++;
+ }
+
+ // set up device menu; first remove all existing menu items
+ device_menu = find_sub_menu(menu_bar, "&Media\0", FALSE);
+ remove_menu_items(device_menu);
+
+ int cnt = 0;
+ // then set up the actual devices
+ for (device_image_interface &img : image_interface_iterator(window->machine().root_device()))
+ {
+ new_item = ID_DEVICE_0 + (cnt * DEVOPTION_MAX);
+ flags_for_exists = MF_STRING;
+
+ if (!img.exists())
+ flags_for_exists |= MF_GRAYED;
+
+ flags_for_writing = flags_for_exists;
+ if (img.is_readonly())
+ flags_for_writing |= MF_GRAYED;
+
+ sub_menu = CreateMenu();
+ win_append_menu_utf8(sub_menu, MF_STRING, new_item + DEVOPTION_OPEN, "Mount File...");
+
+ if (img.is_creatable())
+ win_append_menu_utf8(sub_menu, MF_STRING, new_item + DEVOPTION_CREATE, "Create...");
+
+ win_append_menu_utf8(sub_menu, flags_for_exists, new_item + DEVOPTION_CLOSE, "Unmount");
+
+ if (img.device().type() == CASSETTE)
+ {
+ cassette_state state;
+ state = (cassette_state)(img.exists() ? (dynamic_cast<cassette_image_device*>(&img.device())->get_state() & CASSETTE_MASK_UISTATE) : CASSETTE_STOPPED);
+ win_append_menu_utf8(sub_menu, MF_SEPARATOR, 0, NULL);
+ win_append_menu_utf8(sub_menu, flags_for_exists | ((state == CASSETTE_STOPPED) ? MF_CHECKED : 0), new_item + DEVOPTION_CASSETTE_STOPPAUSE, "Pause/Stop");
+ win_append_menu_utf8(sub_menu, flags_for_exists | ((state == CASSETTE_PLAY) ? MF_CHECKED : 0), new_item + DEVOPTION_CASSETTE_PLAY, "Play");
+ win_append_menu_utf8(sub_menu, flags_for_writing | ((state == CASSETTE_RECORD) ? MF_CHECKED : 0), new_item + DEVOPTION_CASSETTE_RECORD, "Record");
+ win_append_menu_utf8(sub_menu, flags_for_exists, new_item + DEVOPTION_CASSETTE_REWIND, "Rewind");
+ win_append_menu_utf8(sub_menu, flags_for_exists, new_item + DEVOPTION_CASSETTE_FASTFORWARD, "Fast Forward");
+ }
+ s = img.exists() ? img.filename() : "[empty slot]";
+
+ snprintf(buf, ARRAY_LENGTH(buf), "%s: %s", img.device().name(), s);
+ win_append_menu_utf8(device_menu, MF_POPUP, (UINT_PTR)sub_menu, buf);
+
+ cnt++;
+ }
+}
+
+
+
+//============================================================
+// set_speed
+//============================================================
+
+static void set_speed(running_machine &machine, int speed)
+{
+ std::string error_string;
+ if (speed != 0)
+ {
+ machine.video().set_speed_factor(speed);
+ machine.options().emu_options::set_value(OPTION_SPEED, speed / 1000, OPTION_PRIORITY_CMDLINE, error_string);
+ }
+
+ machine.video().set_throttled(speed != 0);
+ machine.options().emu_options::set_value(OPTION_THROTTLE, (speed != 0), OPTION_PRIORITY_CMDLINE, error_string);
+}
+
+
+
+//============================================================
+// win_toggle_menubar
+//============================================================
+
+static void win_toggle_menubar(void)
+{
+ LONG width_diff = 0;
+ LONG height_diff = 0;
+ DWORD style = 0, exstyle = 0;
+ HWND hwnd = 0;
+ HMENU menu = 0;
+
+ for (auto window : osd_common_t::s_window_list)
+ {
+ RECT before_rect = { 100, 100, 200, 200 };
+ RECT after_rect = { 100, 100, 200, 200 };
+
+ hwnd = std::static_pointer_cast<win_window_info>(window)->platform_window();
+
+ // get current menu
+ menu = GetMenu(hwnd);
+
+ // get before rect
+ style = GetWindowLong(hwnd, GWL_STYLE);
+ exstyle = GetWindowLong(hwnd, GWL_EXSTYLE);
+ AdjustWindowRectEx(&before_rect, style, menu ? TRUE : FALSE, exstyle);
+
+ // toggle the menu
+ if (menu)
+ {
+ SetProp(hwnd, TEXT("menu"), (HANDLE) menu);
+ menu = NULL;
+ }
+ else
+ menu = (HMENU) GetProp(hwnd, TEXT("menu"));
+
+ SetMenu(hwnd, menu);
+
+ // get after rect, and width/height diff
+ AdjustWindowRectEx(&after_rect, style, menu ? TRUE : FALSE, exstyle);
+ width_diff = (after_rect.right - after_rect.left) - (before_rect.right - before_rect.left);
+ height_diff = (after_rect.bottom - after_rect.top) - (before_rect.bottom - before_rect.top);
+
+ if (is_windowed())
+ {
+ RECT window_rect;
+ GetWindowRect(hwnd, &window_rect);
+ SetWindowPos(hwnd, HWND_TOP, 0, 0, window_rect.right - window_rect.left + width_diff, window_rect.bottom - window_rect.top + height_diff, SWP_NOMOVE | SWP_NOZORDER);
+ }
+
+ RedrawWindow(hwnd, NULL, NULL, 0);
+ }
+}
+
+
+
+//============================================================
+// device_command
+// This handles all options under the "Media" dropdown
+//============================================================
+
+static void device_command(HWND wnd, device_image_interface *img, int devoption)
+{
+ switch(devoption)
+ {
+ case DEVOPTION_OPEN:
+ change_device(wnd, img, FALSE);
+ break;
+
+ case DEVOPTION_CREATE:
+ change_device(wnd, img, TRUE);
+ break;
+
+ case DEVOPTION_CLOSE:
+ img->unload();
+ break;
+
+ default:
+ if (img->device().type() == CASSETTE)
+ {
+ cassette_image_device* cassette = dynamic_cast<cassette_image_device*>(&img->device());
+
+ switch(devoption)
+ {
+ case DEVOPTION_CASSETTE_STOPPAUSE:
+ cassette->change_state(CASSETTE_STOPPED, CASSETTE_MASK_UISTATE);
+ break;
+
+ case DEVOPTION_CASSETTE_PLAY:
+ cassette->change_state(CASSETTE_PLAY, CASSETTE_MASK_UISTATE);
+ break;
+
+ case DEVOPTION_CASSETTE_RECORD:
+ cassette->change_state(CASSETTE_RECORD, CASSETTE_MASK_UISTATE);
+ break;
+
+ case DEVOPTION_CASSETTE_REWIND:
+ cassette->seek(-60.0, SEEK_CUR);
+ break;
+
+ case DEVOPTION_CASSETTE_FASTFORWARD:
+ cassette->seek(+60.0, SEEK_CUR);
+ break;
+ }
+ }
+ break;
+ }
+}
+
+
+
+//============================================================
+// help_display
+//============================================================
+
+static void help_display(HWND wnd, const char *chapter)
+{
+ typedef HWND (WINAPI *htmlhelpproc)(HWND hwndCaller, LPCTSTR pszFile, UINT uCommand, DWORD_PTR dwData);
+ static htmlhelpproc htmlhelp;
+ static DWORD htmlhelp_cookie;
+ LPCSTR htmlhelp_funcname;
+
+ if (htmlhelp == NULL)
+ {
+#ifdef UNICODE
+ htmlhelp_funcname = "HtmlHelpW";
+#else
+ htmlhelp_funcname = "HtmlHelpA";
+#endif
+ htmlhelp = (htmlhelpproc) GetProcAddress(LoadLibrary(TEXT("hhctrl.ocx")), htmlhelp_funcname);
+ if (!htmlhelp)
+ return;
+ htmlhelp(NULL, NULL, 28 /*HH_INITIALIZE*/, (DWORD_PTR) &htmlhelp_cookie);
+ }
+
+ // if full screen, turn it off
+ if (!is_windowed())
+ winwindow_toggle_full_screen();
+
+ TCHAR *t_chapter = ui_wstring_from_utf8(chapter);
+// htmlhelp(wnd, t_chapter, 0 /*HH_DISPLAY_TOPIC*/, 0);
+// TCHAR *szSite = new TCHAR[100];
+// _tcscpy(szSite, TEXT("http://messui.the-chronicles.org/onlinehelp/"));
+// _tcscat(szSite, t_chapter);
+// _tcscat(szSite, TEXT(".html"));
+// ShellExecute(wnd, TEXT("open"), TEXT("http://www.microsoft.com/directx"), TEXT(""), NULL, SW_SHOWNORMAL);
+ ShellExecute(wnd, TEXT("open"), t_chapter, TEXT(""), NULL, SW_SHOWNORMAL);
+ free(t_chapter);
+// free(szSite);
+}
+
+
+
+//============================================================
+// help_about_mess
+//============================================================
+
+static void help_about_mess(HWND wnd)
+{
+ //help_display(wnd, "mess.chm::/windows/main.htm"); //doesnt do anything
+ //help_display(wnd, "mess.chm");
+ help_display(wnd, "http://mamedev.org/");
+}
+
+
+
+//============================================================
+// help_about_thissystem
+//============================================================
+
+static void help_about_thissystem(running_machine &machine, HWND wnd)
+{
+ char buf[100];
+// snprintf(buf, ARRAY_LENGTH(buf), "mess.chm::/sysinfo/%s.htm", machine.system().name);
+// snprintf(buf, ARRAY_LENGTH(buf), "http://messui.the-chronicles.org/onlinehelp/%s.html", machine.system().name);
+ snprintf(buf, ARRAY_LENGTH(buf), "http://www.progettoemma.net/mess/system.php?machine=%s", machine.system().name);
+ help_display(wnd, buf);
+}
+
+
+
+//============================================================
+// decode_deviceoption
+//============================================================
+
+static device_image_interface *decode_deviceoption(running_machine &machine, int command, int *devoption)
+{
+ command -= ID_DEVICE_0;
+ int absolute_index = command / DEVOPTION_MAX;
+
+ if (devoption)
+ *devoption = command % DEVOPTION_MAX;
+
+ image_interface_iterator iter(machine.root_device());
+ return iter.byindex(absolute_index);
+}
+
+
+
+//============================================================
+// set_window_orientation
+//============================================================
+
+static void set_window_orientation(win_window_info *window, int orientation)
+{
+ window->m_target->set_orientation(orientation);
+ if (window->m_target->is_ui_target())
+ {
+ render_container::user_settings settings;
+ window->machine().render().ui_container().get_user_settings(settings);
+ settings.m_orientation = orientation;
+ window->machine().render().ui_container().set_user_settings(settings);
+ }
+ window->update();
+}
+
+
+
+//============================================================
+// pause_for_command
+//============================================================
+
+static int pause_for_command(UINT command)
+{
+ // we really should be more conservative and only pause for commands
+ // that do dialog stuff
+ return (command != ID_OPTIONS_PAUSE);
+}
+
+
+
+//============================================================
+// invoke_command
+//============================================================
+
+static bool invoke_command(HWND wnd, UINT command)
+{
+ std::string error_string;
+ bool handled = TRUE;
+ int dev_command = 0;
+ device_image_interface *img;
+ LONG_PTR ptr = GetWindowLongPtr(wnd, GWLP_USERDATA);
+ win_window_info *window = (win_window_info *)ptr;
+ ioport_field::user_settings settings;
+
+ // pause while invoking certain commands
+ if (pause_for_command(command))
+ winwindow_ui_pause(window->machine(), TRUE);
+
+ switch(command)
+ {
+ case ID_FILE_LOADSTATE_NEWUI:
+ state_load(wnd, window->machine());
+ break;
+
+ case ID_FILE_SAVESTATE:
+ state_save(window->machine());
+ break;
+
+ case ID_FILE_SAVESTATE_AS:
+ state_save_as(wnd, window->machine());
+ break;
+
+ case ID_FILE_SAVESCREENSHOT:
+ window->machine().video().save_active_screen_snapshots();
+ break;
+
+ case ID_FILE_UIACTIVE:
+ window->machine().set_ui_active(!window->machine().ui_active());
+ break;
+
+ case ID_FILE_EXIT_NEWUI:
+ window->machine().schedule_exit();
+ break;
+
+ case ID_EDIT_PASTE:
+ PostMessage(wnd, WM_PASTE, 0, 0);
+ break;
+
+ case ID_KEYBOARD_NATURAL:
+ window->machine().ioport().natkeyboard().set_in_use(TRUE);
+ break;
+
+ case ID_KEYBOARD_EMULATED:
+ window->machine().ioport().natkeyboard().set_in_use(FALSE);
+ break;
+
+ case ID_KEYBOARD_CUSTOMIZE:
+ customise_keyboard(window->machine(), wnd);
+ break;
+
+ case ID_VIDEO_ROTATE_0:
+ set_window_orientation(window, ROT0);
+ break;
+
+ case ID_VIDEO_ROTATE_90:
+ set_window_orientation(window, ROT90);
+ break;
+
+ case ID_VIDEO_ROTATE_180:
+ set_window_orientation(window, ROT180);
+ break;
+
+ case ID_VIDEO_ROTATE_270:
+ set_window_orientation(window, ROT270);
+ break;
+
+ case ID_OPTIONS_PAUSE:
+ pause(window->machine());
+ break;
+
+ case ID_OPTIONS_HARDRESET:
+ window->machine().schedule_hard_reset();
+ break;
+
+ case ID_OPTIONS_SOFTRESET:
+ window->machine().schedule_soft_reset();
+ break;
+
+ case ID_OPTIONS_CONFIGURATION:
+ customise_configuration(window->machine(), wnd);
+ break;
+
+ case ID_OPTIONS_DIPSWITCHES:
+ customise_dipswitches(window->machine(), wnd);
+ break;
+
+ case ID_OPTIONS_MISCINPUT:
+ customise_miscinput(window->machine(), wnd);
+ break;
+
+ case ID_OPTIONS_ANALOGCONTROLS:
+ customise_analogcontrols(window->machine(), wnd);
+ break;
+
+ case ID_FILE_OLDUI:
+ mame_machine_manager::instance()->ui().show_menu();
+ break;
+
+ case ID_FILE_FULLSCREEN:
+ winwindow_toggle_full_screen();
+ break;
+
+ case ID_OPTIONS_TOGGLEFPS:
+ mame_machine_manager::instance()->ui().set_show_fps(!mame_machine_manager::instance()->ui().show_fps());
+ break;
+
+ case ID_OPTIONS_USEMOUSE:
+ {
+ // FIXME
+// extern int win_use_mouse;
+// win_use_mouse = !win_use_mouse;
+ }
+ break;
+
+ case ID_FILE_TOGGLEMENUBAR:
+ win_toggle_menubar();
+ break;
+
+ case ID_FRAMESKIP_AUTO:
+ window->machine().video().set_frameskip(-1);
+ window->machine().options().emu_options::set_value(OPTION_AUTOFRAMESKIP, 1, OPTION_PRIORITY_CMDLINE, error_string);
+ break;
+
+ case ID_HELP_ABOUT_NEWUI:
+ help_about_mess(wnd);
+ break;
+
+ case ID_HELP_ABOUTSYSTEM:
+ help_about_thissystem(window->machine(), wnd);
+ break;
+
+ case ID_THROTTLE_50:
+ set_speed(window->machine(), 500);
+ break;
+
+ case ID_THROTTLE_100:
+ set_speed(window->machine(), 1000);
+ break;
+
+ case ID_THROTTLE_200:
+ set_speed(window->machine(), 2000);
+ break;
+
+ case ID_THROTTLE_500:
+ set_speed(window->machine(), 5000);
+ break;
+
+ case ID_THROTTLE_1000:
+ set_speed(window->machine(), 10000);
+ break;
+
+ case ID_THROTTLE_UNTHROTTLED:
+ set_speed(window->machine(), 0);
+ break;
+
+ default:
+ if ((command >= ID_FRAMESKIP_0) && (command < ID_FRAMESKIP_0 + frameskip_level_count(window->machine())))
+ {
+ // change frameskip
+ window->machine().video().set_frameskip(command - ID_FRAMESKIP_0);
+ window->machine().options().emu_options::set_value(OPTION_AUTOFRAMESKIP, 0, OPTION_PRIORITY_CMDLINE, error_string);
+ window->machine().options().emu_options::set_value(OPTION_FRAMESKIP, (int)command - ID_FRAMESKIP_0, OPTION_PRIORITY_CMDLINE, error_string);
+ }
+ else
+ if ((command >= ID_DEVICE_0) && (command < ID_DEVICE_0 + (IO_COUNT*DEVOPTION_MAX)))
+ {
+ // change device
+ img = decode_deviceoption(window->machine(), command, &dev_command);
+ device_command(wnd, img, dev_command);
+ }
+ else
+ if ((command >= ID_JOYSTICK_0) && (command < ID_JOYSTICK_0 + MAX_JOYSTICKS))
+ // customise joystick
+ customise_joystick(window->machine(), wnd, command - ID_JOYSTICK_0);
+ else
+ if ((command >= ID_VIDEO_VIEW_0) && (command < ID_VIDEO_VIEW_0 + 1000))
+ {
+ // render views
+ window->m_target->set_view(command - ID_VIDEO_VIEW_0);
+ window->update(); // actually change window size
+ }
+ else
+ // bogus command
+ handled = FALSE;
+
+ break;
+ }
+
+ // resume emulation
+ if (pause_for_command(command))
+ winwindow_ui_pause(window->machine(), FALSE);
+
+ return handled;
+}
+
+
+
+//============================================================
+// set_menu_text
+//============================================================
+
+static void set_menu_text(HMENU menu_bar, int command, const char *text)
+{
+ TCHAR *t_text;
+ MENUITEMINFO mii;
+
+ // convert to TCHAR
+ t_text = ui_wstring_from_utf8(text);
+
+ // invoke SetMenuItemInfo()
+ memset(&mii, 0, sizeof(mii));
+ mii.cbSize = sizeof(mii);
+ mii.fMask = MIIM_TYPE;
+ mii.dwTypeData = t_text;
+ SetMenuItemInfo(menu_bar, command, FALSE, &mii);
+
+ // cleanup
+ free(t_text);
+}
+
+
+
+//============================================================
+// win_setup_menus
+//============================================================
+
+static int win_setup_menus(running_machine &machine, HMODULE module, HMENU menu_bar)
+{
+ HMENU frameskip_menu;
+ char buf[256];
+ int i = 0;
+
+ // verify that our magic numbers work
+ assert((ID_DEVICE_0 + IO_COUNT * DEVOPTION_MAX) < ID_JOYSTICK_0);
+
+ // initialize critical values
+ joystick_menu_setup = 0;
+
+ // set up frameskip menu
+ frameskip_menu = find_sub_menu(menu_bar, "&Options\0&Frameskip\0", FALSE);
+
+ if (!frameskip_menu)
+ return 1;
+
+ for(i = 0; i < frameskip_level_count(machine); i++)
+ {
+ snprintf(buf, ARRAY_LENGTH(buf), "%i", i);
+ win_append_menu_utf8(frameskip_menu, MF_STRING, ID_FRAMESKIP_0 + i, buf);
+ }
+
+ // set the help menu to refer to this machine
+ snprintf(buf, ARRAY_LENGTH(buf), "About %s (%s)...", machine.system().description, machine.system().name);
+ set_menu_text(menu_bar, ID_HELP_ABOUTSYSTEM, buf);
+
+ // initialize state_filename for each driver, so we don't carry names in-between them
+ {
+ char *src;
+ char *dst;
+
+ snprintf(state_filename, ARRAY_LENGTH(state_filename), "%s State", machine.system().description);
+
+ src = state_filename;
+ dst = state_filename;
+ do
+ {
+ if ((*src == '\0') || isalnum(*src) || isspace(*src) || strchr("(),.", *src))
+ *(dst++) = *src;
+ }
+ while(*(src++));
+ }
+
+ return 0;
+}
+
+
+
+//============================================================
+// win_resource_module
+//============================================================
+
+static HMODULE win_resource_module(void)
+{
+ static HMODULE module;
+ if (module == NULL)
+ {
+ MEMORY_BASIC_INFORMATION info;
+ if ((VirtualQuery((const void*)win_resource_module, &info, sizeof(info))) == sizeof(info))
+ module = (HMODULE)info.AllocationBase;
+ }
+ return module;
+}
+
+///// Interface to the core /////
+
+//============================================================
+// win_create_menu
+//============================================================
+
+int win_create_menu(running_machine &machine, HMENU *menus)
+{
+ // Get the path for loose software from <gamename>.ini
+ // if this is invalid, then windows chooses whatever directory it used last.
+ const char* t = machine.options().emu_options::sw_path();
+ // This pulls out the first path from a multipath field
+ const char* t1 = strtok((char*)t, ";");
+ if (t1)
+ software_dir = t1; // the first path of many
+ else
+ software_dir = t; // the only path
+
+ // do not show in the mewui ui.
+ if (strcmp(machine.system().name, "___empty") == 0)
+ return 0;
+
+ HMODULE module = win_resource_module();
+ HMENU menu_bar = LoadMenu(module, MAKEINTRESOURCE(IDR_RUNTIME_MENU));
+
+ if (!menu_bar)
+ {
+ printf("No memory for the menu, running without it.\n");
+ return 0;
+ }
+
+ if (win_setup_menus(machine, module, menu_bar))
+ {
+ printf("Unable to setup the menu, running without it.\n");
+ if (menu_bar)
+ DestroyMenu(menu_bar);
+ return 0; // return 1 causes a crash
+ }
+
+ *menus = menu_bar;
+ return 0;
+}
+
+
+
+//============================================================
+// winwindow_video_window_proc_ui
+//============================================================
+
+LRESULT CALLBACK winwindow_video_window_proc_ui(HWND wnd, UINT message, WPARAM wparam, LPARAM lparam)
+{
+ switch(message)
+ {
+ case WM_INITMENU:
+ prepare_menus(wnd);
+ break;
+
+ case WM_PASTE:
+ {
+ mame_machine_manager::instance()->ui().paste();
+ }
+ break;
+
+ case WM_COMMAND:
+ if (invoke_command(wnd, wparam))
+ break;
+ /* fall through */
+
+ default:
+ return win_window_info::video_window_proc(wnd, message, wparam, lparam);
+ }
+ return 0;
+}
+
diff --git a/docs/release/src/osd/winui/newui.h b/docs/release/src/osd/winui/newui.h
new file mode 100644
index 00000000000..3a8d0ec6aef
--- /dev/null
+++ b/docs/release/src/osd/winui/newui.h
@@ -0,0 +1,38 @@
+// For licensing and usage information, read docs/winui_license.txt
+//****************************************************************************
+//============================================================
+//
+// newui.h - NEWUI
+//
+//============================================================
+
+#ifndef NEWUI_H
+#define NEWUI_H
+
+///// INCLUDES /////
+
+#include <windows.h>
+#include <commdlg.h>
+#include <tchar.h>
+#include "emu.h"
+#include "mame.h"
+#include "emuopts.h"
+#include "ui/ui.h"
+#include "newuires.h"
+#include "strconv.h"
+#include "natkeyboard.h"
+#include "imagedev/cassette.h"
+#include "windows/window.h"
+#include "winutf8.h"
+#include "modules/lib/osdobj_common.h"
+
+
+
+// These are called from src/osd/windows/windows.c and
+// provide the linkage between newui and the core.
+
+LRESULT CALLBACK winwindow_video_window_proc_ui(HWND wnd, UINT message, WPARAM wparam, LPARAM lparam);
+
+int win_create_menu(running_machine &machine, HMENU *menus);
+
+#endif /* NEWUI_H */
diff --git a/docs/release/src/osd/winui/newuires.h b/docs/release/src/osd/winui/newuires.h
new file mode 100644
index 00000000000..aca0d2baccb
--- /dev/null
+++ b/docs/release/src/osd/winui/newuires.h
@@ -0,0 +1,64 @@
+//{{NO_DEPENDENCIES}}
+// Microsoft Visual C++ generated include file.
+// Used by mess.rc
+//
+#define ID_FILE_LOADSTATE_NEWUI 3101
+#define ID_FILE_SAVESTATE 3102
+#define ID_FILE_SAVESTATE_AS 3103
+#define ID_FILE_SAVESCREENSHOT 3104
+#define ID_FILE_EXIT_NEWUI 3105
+#define ID_EDIT_PASTE 3106
+#define ID_FILE_HIDEMENUBAR 3107
+#define ID_OPTIONS_KEYBOARD 3108
+#define ID_OPTIONS_CONFIGURATION 3109
+#define ID_OPTIONS_DIPSWITCHES 3110
+#define ID_OPTIONS_MISCINPUT 3111
+#define ID_OPTIONS_USEMOUSE 3112
+#define ID_FILE_TOGGLEMENUBAR 3113
+#define ID_OPTIONS_SOFTRESET 3114
+#define ID_OPTIONS_HARDRESET 3115
+#define ID_OPTIONS_FRAMESKIP 3116
+#define ID_OPTIONS_PAUSE 3117
+#define ID_OPTIONS_JOYSTICKS 3118
+#define ID_OPTIONS_ANALOGCONTROLS 3119
+#define ID_FILE_FULLSCREEN 3120
+#define ID_OPTIONS_TOGGLEFPS 3122
+#define ID_KEYBOARD_EMULATED 3124
+#define ID_KEYBOARD_NATURAL 3125
+#define ID_KEYBOARD_CUSTOMIZE 3126
+#define ID_VIDEO_ROTATE_0 3127
+#define ID_VIDEO_ROTATE_90 3128
+#define ID_VIDEO_ROTATE_180 3129
+#define ID_VIDEO_ROTATE_270 3130
+#define ID_THROTTLE_50 3131
+#define ID_THROTTLE_100 3132
+#define ID_THROTTLE_200 3133
+#define ID_THROTTLE_500 3134
+#define ID_THROTTLE_1000 3135
+#define ID_THROTTLE_UNTHROTTLED 3136
+#define ID_FRAMESKIP_AUTO 3137
+#define ID_DEVICES 3138
+#define ID_HELP_ABOUT_NEWUI 3139
+#define ID_HELP_ABOUTSYSTEM 3140
+#define ID_FILE_OLDUI 3141
+#define ID_FILE_UIACTIVE 3142
+#define IDC_SHOW_MENU 3143
+#define IDI_ICON_CART 3200
+#define IDI_ICON_HARD 3201
+#define IDI_ICON_CASS 3202
+#define IDI_ICON_FLOP 3203
+#define IDI_ICON_PRIN 3204
+#define IDI_ICON_SERL 3205
+#define IDI_ICON_SNAP 3206
+#define IDR_RUNTIME_MENU 3300
+
+// Next default values for new objects
+//
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+#define _APS_NEXT_RESOURCE_VALUE 3144
+#define _APS_NEXT_COMMAND_VALUE 40008
+#define _APS_NEXT_CONTROL_VALUE 3306
+#define _APS_NEXT_SYMED_VALUE 101
+#endif
+#endif
diff --git a/docs/release/src/osd/winui/picker.cpp b/docs/release/src/osd/winui/picker.cpp
new file mode 100644
index 00000000000..894687b9a2f
--- /dev/null
+++ b/docs/release/src/osd/winui/picker.cpp
@@ -0,0 +1,1681 @@
+// For licensing and usage information, read docs/winui_license.txt
+//****************************************************************************
+
+// standard windows headers
+#define _WIN32_IE 0x0501
+#include <windows.h>
+#include <windowsx.h>
+#include <shellapi.h>
+#include <commctrl.h>
+#include <commdlg.h>
+#include <wingdi.h>
+
+// standard C headers
+#include <stdio.h>
+#include <ctype.h>
+#include <string.h>
+#include <sys/stat.h>
+#include <time.h>
+#include <tchar.h>
+
+// MAME/MAMEUI headers
+#include "picker.h"
+#include "winui.h"
+#include "mui_util.h" // For dprintf
+#include "mui_opts.h"
+#include "bitmask.h"
+#include "treeview.h" // For GetParentFound()
+
+
+#ifdef __GNUC__
+#pragma GCC diagnostic ignored "-Wunused-but-set-variable"
+#endif
+
+// fix warning: cast does not match function type
+#if defined(__GNUC__) && defined(ListView_GetHeader)
+#undef ListView_GetHeader
+#endif
+#if defined(__GNUC__) && defined(ListView_GetImageList)
+#undef ListView_GetImageList
+#undef ListView_GetItemRect
+#endif
+
+#ifndef ListView_GetItemRect
+#define ListView_GetItemRect(w,i,p,c) \
+ (BOOL)SNDMSG((w),LVM_GETITEMRECT,i,((p != NULL)?(((LPRECT)(p))->left=(c),(LPARAM)(LPRECT)(p)):0))
+#endif
+
+#ifndef ListView_GetImageList
+#define ListView_GetImageList(w,i) (HIMAGELIST)(LRESULT)(int)SendMessage((w),LVM_GETIMAGELIST,(i),0)
+#endif // ListView_GetImageList
+
+#ifndef ListView_GetHeader
+#define ListView_GetHeader(w) (HWND)(LRESULT)(int)SNDMSG((w),LVM_GETHEADER,0,0)
+#endif // ListView_GetHeader
+
+#ifndef HDM_SETIMAGELIST
+#define HDM_SETIMAGELIST (HDM_FIRST + 8)
+#endif // HDM_SETIMAGELIST
+
+#ifndef Header_SetImageList
+#define Header_SetImageList(h,i) (HIMAGELIST)(LRESULT)(int)SNDMSG((h), HDM_SETIMAGELIST, 0, (LPARAM)i)
+#endif // Header_SetImageList
+
+#ifndef HDF_SORTUP
+#define HDF_SORTUP 0x400
+#endif
+
+#ifndef HDF_SORTDOWN
+#define HDF_SORTDOWN 0x200
+#endif
+
+
+
+struct PickerInfo
+{
+ const struct PickerCallbacks *pCallbacks;
+ WNDPROC pfnParentWndProc;
+ int nCurrentViewID;
+ int nLastItem;
+ int nColumnCount;
+ int *pnColumnsShown;
+ int *pnColumnsOrder;
+ UINT_PTR nTimer;
+ const LPCTSTR *ppszColumnNames;
+};
+
+
+static struct PickerInfo *GetPickerInfo(HWND hWnd)
+{
+ LONG_PTR l;
+ l = GetWindowLongPtr(hWnd, GWLP_USERDATA);
+ return (struct PickerInfo *) l;
+}
+
+
+
+static LRESULT CallParentWndProc(WNDPROC pfnParentWndProc,
+ HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
+{
+ LRESULT rc;
+
+ if (!pfnParentWndProc)
+ pfnParentWndProc = GetPickerInfo(hWnd)->pfnParentWndProc;
+
+ if (IsWindowUnicode(hWnd))
+ rc = CallWindowProcW(pfnParentWndProc, hWnd, message, wParam, lParam);
+ else
+ rc = CallWindowProcA(pfnParentWndProc, hWnd, message, wParam, lParam);
+ return rc;
+}
+
+static BOOL ListViewOnErase(HWND hWnd, HDC hDC)
+{
+ RECT rcClient;
+ HRGN rgnBitmap;
+ HPALETTE hPAL;
+
+ int i, j;
+ HDC htempDC;
+ POINT ptOrigin;
+ POINT pt = {0,0};
+ HBITMAP hOldBitmap;
+ MYBITMAPINFO *pbmDesc = GetBackgroundInfo();
+ HBITMAP hBackground = GetBackgroundBitmap();
+ HPALETTE hPALbg = GetBackgroundPalette();
+
+ // this does not draw the background properly in report view
+
+ GetClientRect(hWnd, &rcClient);
+
+ htempDC = CreateCompatibleDC(hDC);
+ hOldBitmap = (HBITMAP)SelectObject(htempDC, hBackground);
+
+ rgnBitmap = CreateRectRgnIndirect(&rcClient);
+ SelectClipRgn(hDC, rgnBitmap);
+ DeleteBitmap(rgnBitmap);
+
+ hPAL = (!hPALbg) ? CreateHalftonePalette(hDC) : hPALbg;
+
+ if (GetDeviceCaps(htempDC, RASTERCAPS) & RC_PALETTE && hPAL != NULL)
+ {
+ SelectPalette(htempDC, hPAL, FALSE);
+ RealizePalette(htempDC);
+ }
+
+ // Get x and y offset
+ MapWindowPoints(hWnd, GetTreeView(), &pt, 1);
+ GetDCOrgEx(hDC, &ptOrigin);
+ ptOrigin.x -= pt.x;
+ ptOrigin.y -= pt.y;
+ ptOrigin.x = -GetScrollPos(hWnd, SB_HORZ);
+ ptOrigin.y = -GetScrollPos(hWnd, SB_VERT);
+
+ if (pbmDesc->bmWidth && pbmDesc->bmHeight)
+ {
+ for (i = ptOrigin.x; i < rcClient.right; i += pbmDesc->bmWidth)
+ for (j = ptOrigin.y; j < rcClient.bottom; j += pbmDesc->bmHeight)
+ BitBlt(hDC, i, j, pbmDesc->bmWidth, pbmDesc->bmHeight, htempDC, 0, 0, SRCCOPY);
+ }
+
+ SelectObject(htempDC, hOldBitmap);
+ DeleteDC(htempDC);
+
+ if (!pbmDesc->bmColors)
+ {
+ DeletePalette(hPAL);
+ hPAL = 0;
+ }
+
+ return TRUE;
+}
+
+
+
+static BOOL ListViewNotify(HWND hWnd, LPNMHDR lpNmHdr)
+{
+ RECT rcClient;
+ DWORD dwPos;
+ POINT pt;
+
+ // This code is for using bitmap in the background
+ // Invalidate the right side of the control when a column is resized
+ if (lpNmHdr->code == HDN_ITEMCHANGINGA || lpNmHdr->code == HDN_ITEMCHANGINGW)
+ {
+ dwPos = GetMessagePos();
+ pt.x = LOWORD(dwPos);
+ pt.y = HIWORD(dwPos);
+
+ GetClientRect(hWnd, &rcClient);
+ ScreenToClient(hWnd, &pt);
+ rcClient.left = pt.x;
+ InvalidateRect(hWnd, &rcClient, FALSE);
+ }
+ return FALSE;
+}
+
+
+
+static BOOL ListViewContextMenu(HWND hwndPicker, LPARAM lParam)
+{
+ struct PickerInfo *pPickerInfo;
+ POINT pt, headerPt;
+ int i, nViewID, nColumn = -1;
+ HWND hwndHeader;
+ RECT rcCol;
+
+ pPickerInfo = GetPickerInfo(hwndPicker);
+
+ // Extract the point out of the lparam
+ pt.x = GET_X_LPARAM(lParam);
+ pt.y = GET_Y_LPARAM(lParam);
+ if (pt.x < 0 && pt.y < 0)
+ GetCursorPos(&pt);
+
+ // Figure out which header column was clicked, if at all
+ nViewID = Picker_GetViewID(hwndPicker);
+ if ((nViewID == VIEW_REPORT) || (nViewID == VIEW_GROUPED))
+ {
+ hwndHeader = ListView_GetHeader(hwndPicker);
+ headerPt = pt;
+ ScreenToClient(hwndHeader, &headerPt);
+
+ for (i = 0; Header_GetItemRect(hwndHeader, i, &rcCol); i++)
+ {
+ if (PtInRect(&rcCol, headerPt))
+ {
+ nColumn = i;
+ break;
+ }
+ }
+ }
+
+ if (nColumn >= 0)
+ {
+ // A column header was clicked
+ if (pPickerInfo->pCallbacks->pfnOnHeaderContextMenu)
+ pPickerInfo->pCallbacks->pfnOnHeaderContextMenu(pt, nColumn);
+ }
+ else
+ {
+ // The body was clicked
+ if (pPickerInfo->pCallbacks->pfnOnBodyContextMenu)
+ pPickerInfo->pCallbacks->pfnOnBodyContextMenu(pt);
+ }
+ return TRUE;
+}
+
+
+
+static void Picker_Free(struct PickerInfo *pPickerInfo)
+{
+ // Free up all resources associated with this picker structure
+ if (pPickerInfo->pnColumnsShown)
+ free(pPickerInfo->pnColumnsShown);
+ if (pPickerInfo->pnColumnsOrder)
+ free(pPickerInfo->pnColumnsOrder);
+ free(pPickerInfo);
+}
+
+
+
+static LRESULT CALLBACK ListViewWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
+{
+ struct PickerInfo *pPickerInfo;
+ LRESULT rc = 0;
+ BOOL bHandled = FALSE;
+ WNDPROC pfnParentWndProc;
+ HWND hwndHeaderCtrl = NULL;
+ HFONT hHeaderCtrlFont = NULL;
+
+ pPickerInfo = GetPickerInfo(hWnd);
+ pfnParentWndProc = pPickerInfo->pfnParentWndProc;
+
+ switch(message)
+ {
+ case WM_MOUSEMOVE:
+ if (MouseHasBeenMoved())
+ ShowCursor(TRUE);
+ break;
+
+ case WM_ERASEBKGND:
+ if (GetBackgroundBitmap())
+ {
+ rc = ListViewOnErase(hWnd, (HDC) wParam);
+ bHandled = TRUE;
+ }
+ break;
+
+ case WM_NOTIFY:
+ bHandled = ListViewNotify(hWnd, (LPNMHDR) lParam);
+ break;
+
+ case WM_SETFONT:
+ hwndHeaderCtrl = ListView_GetHeader(hWnd);
+ if (hwndHeaderCtrl)
+ hHeaderCtrlFont = GetWindowFont(hwndHeaderCtrl);
+ break;
+
+ case WM_CONTEXTMENU:
+ bHandled = ListViewContextMenu(hWnd, lParam);
+ break;
+
+ case WM_DESTROY:
+ // Received WM_DESTROY; time to clean up
+ if (pPickerInfo->pCallbacks->pfnSetViewMode)
+ pPickerInfo->pCallbacks->pfnSetViewMode(pPickerInfo->nCurrentViewID);
+ Picker_Free(pPickerInfo);
+ SetWindowLongPtr(hWnd, GWLP_WNDPROC, (LONG_PTR) pfnParentWndProc);
+ SetWindowLongPtr(hWnd, GWLP_USERDATA, (LONG_PTR) NULL);
+ break;
+ }
+
+ if (!bHandled)
+ rc = CallParentWndProc(pfnParentWndProc, hWnd, message, wParam, lParam);
+
+ // If we received WM_SETFONT, reset header ctrl font back to original font
+ if (hwndHeaderCtrl)
+ SetWindowFont(hwndHeaderCtrl, hHeaderCtrlFont, TRUE);
+
+ return rc;
+}
+
+
+
+// Re/initialize the ListControl Columns
+static void Picker_InternalResetColumnDisplay(HWND hWnd, BOOL bFirstTime)
+{
+ LV_COLUMN lvc;
+ int i;
+ int nColumn;
+ int *widths;
+ int *order;
+ int *shown;
+ //int shown_columns;
+ LVCOLUMN col;
+ struct PickerInfo *pPickerInfo;
+ HRESULT res;
+ BOOL b_res;
+
+ pPickerInfo = GetPickerInfo(hWnd);
+
+ widths = (int*)malloc(pPickerInfo->nColumnCount * sizeof(*widths));
+ order = (int*)malloc(pPickerInfo->nColumnCount * sizeof(*order));
+ shown = (int*)malloc(pPickerInfo->nColumnCount * sizeof(*shown));
+ if (!widths || !order || !shown)
+ goto done;
+
+ memset(widths, 0, pPickerInfo->nColumnCount * sizeof(*widths));
+ memset(order, 0, pPickerInfo->nColumnCount * sizeof(*order));
+ memset(shown, 0, pPickerInfo->nColumnCount * sizeof(*shown));
+ pPickerInfo->pCallbacks->pfnGetColumnWidths(widths);
+ pPickerInfo->pCallbacks->pfnGetColumnOrder(order);
+ pPickerInfo->pCallbacks->pfnGetColumnShown(shown);
+
+ if (!bFirstTime)
+ {
+ DWORD style = GetWindowLong(hWnd, GWL_STYLE);
+
+ // switch the list view to LVS_REPORT style so column widths reported correctly
+ SetWindowLong(hWnd, GWL_STYLE,
+ (GetWindowLong(hWnd, GWL_STYLE) & ~LVS_TYPEMASK) | LVS_REPORT);
+
+ // Retrieve each of the column widths
+ i = 0;
+ memset(&col, 0, sizeof(col));
+ col.mask = LVCF_WIDTH;
+ while(ListView_GetColumn(hWnd, 0, &col))
+ {
+ nColumn = Picker_GetRealColumnFromViewColumn(hWnd, i++);
+ widths[nColumn] = col.cx;
+ b_res = ListView_DeleteColumn(hWnd, 0);
+ }
+
+ pPickerInfo->pCallbacks->pfnSetColumnWidths(widths);
+
+ // restore old style
+ SetWindowLong(hWnd, GWL_STYLE, style);
+ }
+
+ nColumn = 0;
+ for (i = 0; i < pPickerInfo->nColumnCount; i++)
+ {
+ if (shown[order[i]])
+ {
+ lvc.mask = LVCF_FMT | LVCF_WIDTH | LVCF_SUBITEM | LVCF_TEXT;
+ lvc.pszText = (LPTSTR) pPickerInfo->ppszColumnNames[order[i]];
+ lvc.iSubItem = nColumn;
+ lvc.cx = widths[order[i]];
+ lvc.fmt = LVCFMT_LEFT;
+ res = ListView_InsertColumn(hWnd, nColumn, &lvc);
+ pPickerInfo->pnColumnsOrder[nColumn] = order[i];
+
+ dprintf("Visible column %d: Logical column %d; Width=%d\n", nColumn, order[i], widths[order[i]]);
+
+ nColumn++;
+ }
+ }
+
+ //shown_columns = nColumn;
+
+ /* Fill this in so we can still sort on columns NOT shown */
+ for (i = 0; i < pPickerInfo->nColumnCount && nColumn < pPickerInfo->nColumnCount; i++)
+ {
+ if (!shown[order[i]])
+ {
+ pPickerInfo->pnColumnsOrder[nColumn] = order[i];
+ nColumn++;
+ }
+ }
+
+ if (GetListFontColor() == RGB(255, 255, 255))
+ b_res = ListView_SetTextColor(hWnd, RGB(240, 240, 240));
+ else
+ b_res = ListView_SetTextColor(hWnd, GetListFontColor());
+
+done:
+ if (widths)
+ free(widths);
+ if (order)
+ free(order);
+ if (shown)
+ free(shown);
+}
+
+
+
+void Picker_ResetColumnDisplay(HWND hWnd)
+{
+ Picker_InternalResetColumnDisplay(hWnd, FALSE);
+}
+
+
+
+void Picker_ClearIdle(HWND hwndPicker)
+{
+ struct PickerInfo *pPickerInfo;
+
+ pPickerInfo = GetPickerInfo(hwndPicker);
+ if (pPickerInfo->nTimer)
+ {
+ KillTimer(hwndPicker, 0);
+ pPickerInfo->nTimer = 0;
+ }
+}
+
+
+
+static void CALLBACK Picker_TimerProc(HWND hwndPicker, UINT uMsg,
+ UINT_PTR idEvent, DWORD dwTime)
+{
+ struct PickerInfo *pPickerInfo;
+ BOOL bContinueIdle;
+ DWORD nTickCount, nBaseTickCount;
+ DWORD nMaxIdleTicks = 50;
+
+ pPickerInfo = GetPickerInfo(hwndPicker);
+ bContinueIdle = FALSE;
+ nBaseTickCount = GetTickCount();
+
+ // This idle procedure will loop until either idling is over, or until
+ // a specified amount of time elapses (in this case, 50ms). This frees
+ // idle callbacks of any responsibility for balancing their workloads; the
+ // picker code will
+ do
+ {
+ if (pPickerInfo->pCallbacks->pfnOnIdle)
+ bContinueIdle = pPickerInfo->pCallbacks->pfnOnIdle(hwndPicker);
+ nTickCount = GetTickCount();
+ }
+ while(bContinueIdle && ((nTickCount - nBaseTickCount) < nMaxIdleTicks));
+
+ if (!bContinueIdle)
+ Picker_ClearIdle(hwndPicker);
+}
+
+
+
+// Instructs this picker to reset idling; idling will continue until the
+// idle function returns FALSE
+void Picker_ResetIdle(HWND hwndPicker)
+{
+ struct PickerInfo *pPickerInfo;
+
+ pPickerInfo = GetPickerInfo(hwndPicker);
+
+ Picker_ClearIdle(hwndPicker);
+ if (pPickerInfo->pCallbacks->pfnOnIdle)
+ pPickerInfo->nTimer = SetTimer(hwndPicker, 0, 0, Picker_TimerProc);
+}
+
+
+
+BOOL Picker_IsIdling(HWND hwndPicker)
+{
+ struct PickerInfo *pPickerInfo;
+ pPickerInfo = GetPickerInfo(hwndPicker);
+ return pPickerInfo->nTimer != 0;
+}
+
+
+
+BOOL SetupPicker(HWND hwndPicker, const struct PickerOptions *pOptions)
+{
+ struct PickerInfo *pPickerInfo;
+ int i;
+ LONG_PTR l;
+ HRESULT res;
+
+ assert(hwndPicker);
+
+ // Allocate the list view struct
+ pPickerInfo = (struct PickerInfo *) malloc(sizeof(struct PickerInfo));
+ if (!pPickerInfo)
+ return FALSE;
+
+ // And fill it out
+ memset(pPickerInfo, 0, sizeof(*pPickerInfo));
+ pPickerInfo->pCallbacks = pOptions->pCallbacks;
+ pPickerInfo->nColumnCount = pOptions->nColumnCount;
+ pPickerInfo->ppszColumnNames = pOptions->ppszColumnNames;
+ pPickerInfo->nLastItem = -1;
+
+ if (pPickerInfo->nColumnCount)
+ {
+ // Allocate space for the column order and columns shown array
+ pPickerInfo->pnColumnsOrder = (int*)malloc(pPickerInfo->nColumnCount *
+ sizeof(*pPickerInfo->pnColumnsOrder));
+ pPickerInfo->pnColumnsShown = (int*)malloc(pPickerInfo->nColumnCount *
+ sizeof(*pPickerInfo->pnColumnsShown));
+ if (!pPickerInfo->pnColumnsOrder || !pPickerInfo->pnColumnsShown)
+ goto error;
+
+ // set up initial values
+ for (i = 0; i < pPickerInfo->nColumnCount; i++)
+ {
+ pPickerInfo->pnColumnsOrder[i] = i;
+ pPickerInfo->pnColumnsShown[i] = TRUE;
+ }
+
+ if (GetUseOldControl())
+ {
+ if (pPickerInfo->pCallbacks->pfnSetColumnOrder)
+ pPickerInfo->pCallbacks->pfnSetColumnOrder(pPickerInfo->pnColumnsOrder);
+ if (pPickerInfo->pCallbacks->pfnSetColumnShown)
+ pPickerInfo->pCallbacks->pfnSetColumnShown(pPickerInfo->pnColumnsShown);
+ }
+ else
+ {
+ if (pPickerInfo->pCallbacks->pfnGetColumnOrder)
+ pPickerInfo->pCallbacks->pfnGetColumnOrder(pPickerInfo->pnColumnsOrder);
+ if (pPickerInfo->pCallbacks->pfnGetColumnShown)
+ pPickerInfo->pCallbacks->pfnGetColumnShown(pPickerInfo->pnColumnsShown);
+ }
+ }
+
+ // Hook in our wndproc and userdata pointer
+ l = GetWindowLongPtr(hwndPicker, GWLP_WNDPROC);
+ pPickerInfo->pfnParentWndProc = (WNDPROC) l;
+ SetWindowLongPtr(hwndPicker, GWLP_USERDATA, (LONG_PTR) pPickerInfo);
+ SetWindowLongPtr(hwndPicker, GWLP_WNDPROC, (LONG_PTR) ListViewWndProc);
+
+ res = ListView_SetExtendedListViewStyle(hwndPicker, LVS_EX_FULLROWSELECT | LVS_EX_HEADERDRAGDROP |
+ LVS_EX_UNDERLINEHOT | LVS_EX_UNDERLINECOLD | LVS_EX_LABELTIP);
+
+ Picker_InternalResetColumnDisplay(hwndPicker, TRUE);
+ Picker_ResetIdle(hwndPicker);
+ return TRUE;
+
+error:
+ if (pPickerInfo)
+ Picker_Free(pPickerInfo);
+ return FALSE;
+}
+
+
+
+int Picker_GetViewID(HWND hwndPicker)
+{
+ struct PickerInfo *pPickerInfo;
+ pPickerInfo = GetPickerInfo(hwndPicker);
+ return pPickerInfo->nCurrentViewID;
+}
+
+
+
+void Picker_SetViewID(HWND hwndPicker, int nViewID)
+{
+ struct PickerInfo *pPickerInfo;
+ LONG_PTR nListViewStyle;
+ DWORD dwStyle;
+
+ pPickerInfo = GetPickerInfo(hwndPicker);
+
+ // Change the nCurrentViewID member
+ pPickerInfo->nCurrentViewID = nViewID;
+ if (pPickerInfo->pCallbacks->pfnSetViewMode)
+ pPickerInfo->pCallbacks->pfnSetViewMode(pPickerInfo->nCurrentViewID);
+
+ // Change the ListView flags in accordance
+ switch(nViewID)
+ {
+ case VIEW_LARGE_ICONS:
+ nListViewStyle = LVS_ICON;
+ break;
+ case VIEW_SMALL_ICONS:
+ nListViewStyle = LVS_SMALLICON;
+ break;
+ case VIEW_INLIST:
+ nListViewStyle = LVS_LIST;
+ break;
+ case VIEW_GROUPED:
+ case VIEW_REPORT:
+ default:
+ nListViewStyle = LVS_REPORT;
+ break;
+ }
+
+ dwStyle = GetWindowLong(hwndPicker, GWL_STYLE);
+ if (GetUseXPControl())
+ {
+ // RS Microsoft must have changed something in the Ownerdraw handling with Version 6 of the Common Controls
+ // as on all other OSes it works without this...
+ if (nViewID == VIEW_LARGE_ICONS || nViewID == VIEW_SMALL_ICONS)
+ {
+ // remove Ownerdraw style for Icon views
+ dwStyle &= ~LVS_OWNERDRAWFIXED;
+ if( nViewID == VIEW_SMALL_ICONS )
+ {
+ // to properly get them to arrange, otherwise the entries might overlap
+ // we have to call SetWindowLong to get it into effect !!
+ // It's no use just setting the Style, as it's changed again further down...
+ SetWindowLong(hwndPicker, GWL_STYLE, (GetWindowLong(hwndPicker, GWL_STYLE)
+ & ~LVS_TYPEMASK) | LVS_ICON);
+ }
+ }
+ else
+ {
+ // add again..
+ dwStyle |= LVS_OWNERDRAWFIXED;
+ }
+ }
+
+ dwStyle &= ~LVS_TYPEMASK;
+ dwStyle |= nListViewStyle;
+ SetWindowLong(hwndPicker, GWL_STYLE, dwStyle);
+ RedrawWindow(hwndPicker, NULL, NULL, RDW_ERASE | RDW_INVALIDATE | RDW_FRAME);
+}
+
+
+
+static BOOL PickerHitTest(HWND hWnd)
+{
+ RECT rect;
+ POINTS p;
+ DWORD res = GetMessagePos();
+ LVHITTESTINFO htInfo;
+ HRESULT result;
+
+ memset(&htInfo, 0, sizeof(htInfo));
+ p = MAKEPOINTS(res);
+ GetWindowRect(hWnd, &rect);
+ htInfo.pt.x = p.x - rect.left;
+ htInfo.pt.y = p.y - rect.top;
+ result = ListView_HitTest(hWnd, &htInfo);
+
+ return (! (htInfo.flags & LVHT_NOWHERE));
+}
+
+
+
+int Picker_GetSelectedItem(HWND hWnd)
+{
+ int nItem;
+ LV_ITEM lvi;
+ BOOL res;
+
+ nItem = ListView_GetNextItem(hWnd, -1, LVIS_SELECTED | LVIS_FOCUSED);
+ if (nItem < 0)
+ return 0;
+
+ memset(&lvi, 0, sizeof(lvi));
+ lvi.iItem = nItem;
+ lvi.mask = LVIF_PARAM;
+ res = ListView_GetItem(hWnd, &lvi);
+ return lvi.lParam;
+}
+
+
+
+void Picker_SetSelectedPick(HWND hWnd, int nIndex)
+{
+ BOOL res;
+
+ if (nIndex < 0)
+ nIndex = 0;
+
+ ListView_SetItemState(hWnd, nIndex, LVIS_FOCUSED | LVIS_SELECTED,
+ LVIS_FOCUSED | LVIS_SELECTED);
+ res = ListView_EnsureVisible(hWnd, nIndex, FALSE);
+}
+
+
+
+void Picker_SetSelectedItem(HWND hWnd, int nItem)
+{
+ int i;
+ LV_FINDINFO lvfi;
+
+ if (nItem < 0)
+ return;
+
+ lvfi.flags = LVFI_PARAM;
+ lvfi.lParam = nItem;
+ i = ListView_FindItem(hWnd, -1, &lvfi);
+ if (i == -1)
+ {
+ POINT p = {0,0};
+ lvfi.flags = LVFI_NEARESTXY;
+ lvfi.pt = p;
+ i = ListView_FindItem(hWnd, -1, &lvfi);
+ }
+ Picker_SetSelectedPick(hWnd, (i == -1) ? 0 : i);
+}
+
+
+
+static const TCHAR *Picker_CallGetItemString(HWND hwndPicker,
+ int nItem, int nColumn, TCHAR *pszBuffer, UINT nBufferLength)
+{
+ // this call wraps the pfnGetItemString callback to properly set up the
+ // buffers, and normalize the results
+ struct PickerInfo *pPickerInfo;
+ const TCHAR *s;
+
+ pPickerInfo = GetPickerInfo(hwndPicker);
+ pszBuffer[0] = '\0';
+ s = NULL;
+
+ if (pPickerInfo->pCallbacks->pfnGetItemString)
+ {
+ s = pPickerInfo->pCallbacks->pfnGetItemString(hwndPicker,
+ nItem, nColumn, pszBuffer, nBufferLength);
+ }
+ if (!s)
+ s = pszBuffer;
+ return s;
+}
+
+
+
+// put the arrow on the new sort column
+static void Picker_ResetHeaderSortIcon(HWND hwndPicker)
+{
+ struct PickerInfo *pPickerInfo;
+ HWND hwndHeader;
+ HD_ITEM hdi;
+ int i, nViewColumn;
+ BOOL res;
+
+ pPickerInfo = GetPickerInfo(hwndPicker);
+
+ hwndHeader = ListView_GetHeader(hwndPicker);
+
+ // take arrow off non-current columns
+ hdi.mask = HDI_FORMAT;
+ hdi.fmt = HDF_STRING;
+ for (i = 0; i < pPickerInfo->nColumnCount; i++)
+ {
+ if (i != pPickerInfo->pCallbacks->pfnGetSortColumn())
+ res = Header_SetItem(hwndHeader, Picker_GetViewColumnFromRealColumn(hwndPicker, i), &hdi);
+ }
+
+ if (GetUseXPControl())
+ {
+ // use built in sort arrows
+ hdi.mask = HDI_FORMAT;
+ hdi.fmt = HDF_STRING | (pPickerInfo->pCallbacks->pfnGetSortReverse() ? HDF_SORTDOWN : HDF_SORTUP);
+ }
+ else
+ {
+ // put our arrow icon next to the text
+ hdi.mask = HDI_FORMAT | HDI_IMAGE;
+ hdi.fmt = HDF_STRING | HDF_IMAGE | HDF_BITMAP_ON_RIGHT;
+ hdi.iImage = pPickerInfo->pCallbacks->pfnGetSortReverse() ? 1 : 0;
+ }
+
+ nViewColumn = Picker_GetViewColumnFromRealColumn(hwndPicker, pPickerInfo->pCallbacks->pfnGetSortColumn());
+ res = Header_SetItem(hwndHeader, nViewColumn, &hdi);
+}
+
+
+
+struct CompareProcParams
+{
+ HWND hwndPicker;
+ struct PickerInfo *pPickerInfo;
+ int nSortColumn;
+ int nViewMode;
+ BOOL bReverse;
+};
+
+
+
+static void Picker_PopulateCompareProcParams(HWND hwndPicker,
+ struct CompareProcParams *pParams)
+{
+ struct PickerInfo *pPickerInfo;
+
+ pPickerInfo = GetPickerInfo(hwndPicker);
+
+ // populate the CompareProcParams structure
+ memset(pParams, 0, sizeof(*pParams));
+ pParams->hwndPicker = hwndPicker;
+ pParams->pPickerInfo = pPickerInfo;
+ pParams->nViewMode = pPickerInfo->pCallbacks->pfnGetViewMode();
+ if (pPickerInfo->pCallbacks->pfnGetSortColumn)
+ pParams->nSortColumn = pPickerInfo->pCallbacks->pfnGetSortColumn();
+ if (pPickerInfo->pCallbacks->pfnGetSortReverse)
+ pParams->bReverse = pPickerInfo->pCallbacks->pfnGetSortReverse();
+}
+
+
+
+static int CALLBACK Picker_CompareProc(LPARAM index1, LPARAM index2, LPARAM nParamSort)
+{
+ struct CompareProcParams *pcpp = (struct CompareProcParams *) nParamSort;
+ struct PickerInfo *pPickerInfo = pcpp->pPickerInfo;
+ BOOL bCallCompare = TRUE;
+ int nResult = 0, nParent1, nParent2;
+ TCHAR szBuffer1[256], szBuffer2[256];
+ const TCHAR *s1, *s2;
+
+ if (pcpp->nViewMode == VIEW_GROUPED)
+ {
+ // do our fancy compare, with clones grouped under parents
+ // first thing we need to do is identify both item's parents
+ if (pPickerInfo->pCallbacks->pfnFindItemParent)
+ {
+ nParent1 = pPickerInfo->pCallbacks->pfnFindItemParent(pcpp->hwndPicker, index1);
+ nParent2 = pPickerInfo->pCallbacks->pfnFindItemParent(pcpp->hwndPicker, index2);
+ }
+ else
+ {
+ nParent1 = nParent2 = -1;
+ }
+
+ if ((nParent1 < 0) && (nParent2 < 0))
+ {
+ // if both entries are both parents, we just do a basic sort
+ }
+ else if ((nParent1 >= 0) && (nParent2 >= 0))
+ {
+ // if both entries are children and the parents are different,
+ // sort on their parents
+ if (nParent1 != nParent2)
+ {
+ index1 = nParent1;
+ index2 = nParent2;
+ }
+ }
+ else
+ {
+ // one parent, one child
+ if (nParent1 >= 0)
+ {
+ // first one is a child
+ if (nParent1 == index2)
+ {
+ // if this is a child and its parent, put child after
+ nResult = 1;
+ bCallCompare = FALSE;
+ }
+ else
+ {
+ // sort on parent
+ index1 = nParent1;
+ }
+ }
+ else
+ {
+ // second one is a child
+ if (nParent2 == index1)
+ {
+ // if this is a child and its parent, put child after
+ nResult = -1;
+ bCallCompare = FALSE;
+ }
+ else
+ {
+ // sort on parent
+ index2 = nParent2;
+ }
+ }
+ }
+ }
+
+ if (bCallCompare)
+ {
+ if (pPickerInfo->pCallbacks->pfnCompare)
+ {
+ nResult = pPickerInfo->pCallbacks->pfnCompare(pcpp->hwndPicker,
+ index1, index2, pcpp->nSortColumn);
+ }
+ else
+ {
+ // no default sort proc, just get the string and compare them
+ s1 = Picker_CallGetItemString(pcpp->hwndPicker, index1, pcpp->nSortColumn,
+ szBuffer1, ARRAY_LENGTH(szBuffer1));
+ s2 = Picker_CallGetItemString(pcpp->hwndPicker, index2, pcpp->nSortColumn,
+ szBuffer2, ARRAY_LENGTH(szBuffer2));
+ nResult = _tcsicmp(s1, s2);
+ }
+
+ if (pcpp->bReverse)
+ nResult = -nResult;
+ }
+ return nResult;
+}
+
+
+
+void Picker_Sort(HWND hwndPicker)
+{
+ LV_FINDINFO lvfi;
+ //struct PickerInfo *pPickerInfo;
+ struct CompareProcParams params;
+ int nItem;
+ BOOL res;
+
+ //pPickerInfo = GetPickerInfo(hwndPicker);
+
+ // populate the CompareProcParams structure
+ Picker_PopulateCompareProcParams(hwndPicker, &params);
+
+ res = ListView_SortItems(hwndPicker, Picker_CompareProc, (LPARAM) &params);
+
+ Picker_ResetHeaderSortIcon(hwndPicker);
+
+ memset(&lvfi, 0, sizeof(lvfi));
+ lvfi.flags = LVFI_PARAM;
+ lvfi.lParam = Picker_GetSelectedItem(hwndPicker);
+ nItem = ListView_FindItem(hwndPicker, -1, &lvfi);
+
+ res = ListView_EnsureVisible(hwndPicker, nItem, FALSE);
+}
+
+
+
+int Picker_InsertItemSorted(HWND hwndPicker, int nParam)
+{
+ //struct PickerInfo *pPickerInfo;
+ int nHigh, nLow, nMid;
+ struct CompareProcParams params;
+ int nCompareResult;
+ LVITEM lvi;
+ BOOL res;
+
+ //pPickerInfo = GetPickerInfo(hwndPicker);
+
+ nLow = 0;
+ nHigh = ListView_GetItemCount(hwndPicker);
+
+ // populate the CompareProcParams structure
+ Picker_PopulateCompareProcParams(hwndPicker, &params);
+
+ while(nLow < nHigh)
+ {
+ nMid = (nHigh + nLow) / 2;
+
+ memset(&lvi, 0, sizeof(lvi));
+ lvi.mask = LVIF_PARAM;
+ lvi.iItem = nMid;
+ res = ListView_GetItem(hwndPicker, &lvi);
+
+ nCompareResult = Picker_CompareProc(nParam, lvi.lParam, (LPARAM) &params);
+
+ if (nCompareResult > 0)
+ nLow = nMid + 1;
+ else if (nCompareResult < 0)
+ nHigh = nMid;
+ else
+ {
+ nLow = nMid;
+ break;
+ }
+ }
+
+ memset(&lvi, 0, sizeof(lvi));
+ lvi.mask = LVIF_IMAGE | LVIF_TEXT | LVIF_PARAM;
+ lvi.iItem = nLow;
+ lvi.iSubItem = 0;
+ lvi.lParam = nParam;
+ lvi.pszText = LPSTR_TEXTCALLBACK;
+ lvi.iImage = I_IMAGECALLBACK;
+
+ return ListView_InsertItem(hwndPicker, &lvi);
+}
+
+
+
+int Picker_GetRealColumnFromViewColumn(HWND hWnd, int nViewColumn)
+{
+ struct PickerInfo *pPickerInfo;
+ int nRealColumn = 0;
+
+ pPickerInfo = GetPickerInfo(hWnd);
+ if (nViewColumn >= 0 && nViewColumn < pPickerInfo->nColumnCount)
+ nRealColumn = pPickerInfo->pnColumnsOrder[nViewColumn];
+ return nRealColumn;
+}
+
+
+
+int Picker_GetViewColumnFromRealColumn(HWND hWnd, int nRealColumn)
+{
+ struct PickerInfo *pPickerInfo;
+ int i;
+
+ pPickerInfo = GetPickerInfo(hWnd);
+ for (i = 0; i < pPickerInfo->nColumnCount; i++)
+ {
+ if (pPickerInfo->pnColumnsOrder[i] == nRealColumn)
+ return i;
+ }
+
+ // major error, shouldn't be possible, but no good way to warn
+ return 0;
+}
+
+
+
+BOOL Picker_HandleNotify(LPNMHDR lpNmHdr)
+{
+ struct PickerInfo *pPickerInfo;
+ HWND hWnd;
+ BOOL bResult = FALSE;
+ NM_LISTVIEW *pnmv;
+ LV_DISPINFO *pDispInfo;
+ int nItem, nColumn;
+ const TCHAR *s;
+ BOOL bReverse;
+
+ hWnd = lpNmHdr->hwndFrom;
+ pPickerInfo = GetPickerInfo(hWnd);
+ pnmv = (NM_LISTVIEW *) lpNmHdr;
+
+ switch(lpNmHdr->code)
+ {
+ case NM_RCLICK:
+ case NM_CLICK:
+ case NM_DBLCLK:
+ // don't allow selection of blank spaces in the listview
+ if (!PickerHitTest(hWnd))
+ {
+ // we have no current item selected
+ if (pPickerInfo->nLastItem != -1)
+ {
+ Picker_SetSelectedItem(hWnd, pPickerInfo->nLastItem);
+ }
+ bResult = TRUE;
+ }
+ else if ((lpNmHdr->code == NM_DBLCLK) && (pPickerInfo->pCallbacks->pfnDoubleClick))
+ {
+ // double click!
+ pPickerInfo->pCallbacks->pfnDoubleClick();
+ bResult = TRUE;
+ }
+ break;
+
+ case LVN_GETDISPINFO:
+ pDispInfo = (LV_DISPINFO *) lpNmHdr;
+ nItem = (int) pDispInfo->item.lParam;
+
+ if (pDispInfo->item.mask & LVIF_IMAGE)
+ {
+ // retrieve item image
+ if (pPickerInfo->pCallbacks->pfnGetItemImage)
+ pDispInfo->item.iImage = pPickerInfo->pCallbacks->pfnGetItemImage(hWnd, nItem);
+ else
+ pDispInfo->item.iImage = 0;
+ bResult = TRUE;
+ }
+
+ if (pDispInfo->item.mask & LVIF_STATE)
+ {
+ pDispInfo->item.state = 0;
+ bResult = TRUE;
+ }
+
+ if (pDispInfo->item.mask & LVIF_TEXT)
+ {
+ // retrieve item text
+ nColumn = Picker_GetRealColumnFromViewColumn(hWnd, pDispInfo->item.iSubItem);
+
+ s = Picker_CallGetItemString(hWnd, nItem, nColumn,
+ pDispInfo->item.pszText, pDispInfo->item.cchTextMax);
+
+ pDispInfo->item.pszText = (TCHAR *) s;
+ bResult = TRUE;
+ }
+ break;
+
+ case LVN_ITEMCHANGED:
+ if ((pnmv->uOldState & LVIS_SELECTED)
+ && !(pnmv->uNewState & LVIS_SELECTED))
+ {
+ if (pnmv->lParam != -1)
+ pPickerInfo->nLastItem = pnmv->lParam;
+ if (pPickerInfo->pCallbacks->pfnLeavingItem)
+ pPickerInfo->pCallbacks->pfnLeavingItem(hWnd, pnmv->lParam);
+ }
+ if (!(pnmv->uOldState & LVIS_SELECTED)
+ && (pnmv->uNewState & LVIS_SELECTED))
+ {
+ if (pPickerInfo->pCallbacks->pfnEnteringItem)
+ pPickerInfo->pCallbacks->pfnEnteringItem(hWnd, pnmv->lParam);
+ }
+ bResult = TRUE;
+ break;
+
+ case LVN_COLUMNCLICK:
+ // if clicked on the same column we're sorting by, reverse it
+ if (pPickerInfo->pCallbacks->pfnGetSortColumn() == Picker_GetRealColumnFromViewColumn(hWnd, pnmv->iSubItem))
+ bReverse = !pPickerInfo->pCallbacks->pfnGetSortReverse();
+ else
+ bReverse = FALSE;
+ pPickerInfo->pCallbacks->pfnSetSortReverse(bReverse);
+ pPickerInfo->pCallbacks->pfnSetSortColumn(Picker_GetRealColumnFromViewColumn(hWnd, pnmv->iSubItem));
+ Picker_Sort(hWnd);
+ bResult = TRUE;
+ break;
+
+ case LVN_BEGINDRAG:
+ if (pPickerInfo->pCallbacks->pfnBeginListViewDrag)
+ pPickerInfo->pCallbacks->pfnBeginListViewDrag(pnmv);
+ break;
+ }
+ return bResult;
+}
+
+
+
+int Picker_GetNumColumns(HWND hWnd)
+{
+ int nColumnCount = 0;
+ int i;
+ HWND hwndHeader;
+ int *shown;
+ struct PickerInfo *pPickerInfo;
+
+ pPickerInfo = GetPickerInfo(hWnd);
+
+ shown = (int*)malloc(pPickerInfo->nColumnCount * sizeof(*shown));
+ if (!shown)
+ return -1;
+
+ pPickerInfo->pCallbacks->pfnGetColumnShown(shown);
+ hwndHeader = ListView_GetHeader(hWnd);
+
+ if (GetUseOldControl() || (nColumnCount = Header_GetItemCount(hwndHeader)) < 1)
+ {
+ nColumnCount = 0;
+ for (i = 0; i < pPickerInfo->nColumnCount ; i++ )
+ {
+ if (shown[i])
+ nColumnCount++;
+ }
+ }
+
+ free(shown);
+ return nColumnCount;
+}
+
+
+
+/* Add ... to Items in ListView if needed */
+static LPCTSTR MakeShortString(HDC hDC, LPCTSTR lpszLong, int nColumnLen, int nOffset)
+{
+ static const TCHAR szThreeDots[] = TEXT("...");
+ static TCHAR szShort[MAX_PATH];
+ int nStringLen = lstrlen(lpszLong);
+ int nAddLen;
+ SIZE size;
+ int i;
+
+ GetTextExtentPoint32(hDC, lpszLong, nStringLen, &size);
+ if (nStringLen == 0 || size.cx + nOffset <= nColumnLen)
+ return lpszLong;
+
+ lstrcpy(szShort, lpszLong);
+ GetTextExtentPoint32(hDC, szThreeDots, ARRAY_LENGTH(szThreeDots), &size);
+ nAddLen = size.cx;
+
+ for (i = nStringLen - 1; i > 0; i--)
+ {
+ szShort[i] = 0;
+ GetTextExtentPoint32(hDC, szShort, i, &size);
+ if (size.cx + nOffset + nAddLen <= nColumnLen)
+ break;
+ }
+
+ lstrcat(szShort, szThreeDots);
+
+ return szShort;
+}
+
+#define ListView_GetItemRect_Modified(hwnd,i,prc,code) (BOOL)SNDMSG((hwnd),LVM_GETITEMRECT,(WPARAM)(int)(i),(((RECT *)(prc))->left = (code),(LPARAM)(RECT *)(prc)))
+
+void Picker_HandleDrawItem(HWND hWnd, LPDRAWITEMSTRUCT lpDrawItemStruct)
+{
+ struct PickerInfo *pPickerInfo;
+ HDC hDC = lpDrawItemStruct->hDC;
+ RECT rcItem = lpDrawItemStruct->rcItem;
+ UINT uiFlags = ILD_TRANSPARENT;
+ HIMAGELIST hImageList;
+ int nItem = lpDrawItemStruct->itemID;
+ COLORREF clrTextSave = 0;
+ COLORREF clrBkSave = 0;
+ COLORREF clrImage = GetSysColor(COLOR_WINDOW);
+ static TCHAR szBuff[MAX_PATH];
+ BOOL bFocus = (GetFocus() == hWnd);
+ LPCTSTR pszText;
+ UINT nStateImageMask;
+ BOOL bSelected;
+ LV_COLUMN lvc;
+ LV_ITEM lvi;
+ RECT rcAllLabels;
+ RECT rcLabel;
+ RECT rcIcon;
+ int offset;
+ SIZE size;
+ int i, j;
+ int nColumn;
+ int nColumnMax = 0;
+ int *order;
+ BOOL bDrawAsChild;
+ int indent_space;
+ BOOL bColorChild = FALSE;
+ BOOL bParentFound = FALSE;
+ int nParent;
+ HBITMAP hBackground = GetBackgroundBitmap();
+ MYBITMAPINFO *pbmDesc = GetBackgroundInfo();
+ BOOL res;
+
+ pPickerInfo = GetPickerInfo(hWnd);
+
+ order = (int*)malloc(pPickerInfo->nColumnCount * sizeof(*order));
+ if (!order)
+ return;
+ nColumnMax = Picker_GetNumColumns(hWnd);
+
+ if (GetUseOldControl())
+ {
+ pPickerInfo->pCallbacks->pfnGetColumnOrder(order);
+ }
+ else
+ {
+ /* Get the Column Order and save it */
+ res = ListView_GetColumnOrderArray(hWnd, nColumnMax, order);
+
+ /* Disallow moving column 0 */
+ if (order[0] != 0)
+ {
+ for (i = 0; i < nColumnMax; i++)
+ {
+ if (order[i] == 0)
+ {
+ order[i] = order[0];
+ order[0] = 0;
+ }
+ }
+ res = ListView_SetColumnOrderArray(hWnd, nColumnMax, order);
+ }
+ }
+
+ /* Labels are offset by a certain amount */
+ /* This offset is related to the width of a space character */
+ GetTextExtentPoint32(hDC, TEXT(" "), 1, &size);
+ offset = size.cx;
+
+ lvi.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_STATE | LVIF_PARAM;
+ lvi.iItem = nItem;
+ lvi.iSubItem = order[0];
+ lvi.pszText = szBuff;
+ lvi.cchTextMax = ARRAY_LENGTH(szBuff);
+ lvi.stateMask = 0xFFFF; /* get all state flags */
+ res = ListView_GetItem(hWnd, &lvi);
+
+ bSelected = ((lvi.state & LVIS_DROPHILITED) || ( (lvi.state & LVIS_SELECTED)
+ && ((bFocus) || (GetWindowLong(hWnd, GWL_STYLE) & LVS_SHOWSELALWAYS))));
+
+ /* figure out if we indent and draw grayed */
+ if (pPickerInfo->pCallbacks->pfnFindItemParent)
+ nParent = pPickerInfo->pCallbacks->pfnFindItemParent(hWnd, lvi.lParam);
+ else
+ nParent = -1;
+ bDrawAsChild = (pPickerInfo->pCallbacks->pfnGetViewMode() == VIEW_GROUPED && (nParent >= 0));
+
+ /* only indent if parent is also in this view */
+#if 1 // minimal listview flickering.
+ if ((nParent >= 0) && bDrawAsChild)
+ {
+ if (GetParentFound(lvi.lParam))
+ bParentFound = TRUE;
+ }
+#else
+ if ((nParent >= 0) && bDrawAsChild)
+ {
+ for (i = 0; i < ListView_GetItemCount(hWnd); i++)
+ {
+ lvi.mask = LVIF_PARAM;
+ lvi.iItem = i;
+ res = ListView_GetItem(hWnd, &lvi);
+
+ if (lvi.lParam == nParent)
+ {
+ bParentFound = TRUE;
+ break;
+ }
+ }
+ }
+#endif
+
+ if (pPickerInfo->pCallbacks->pfnGetOffsetChildren && pPickerInfo->pCallbacks->pfnGetOffsetChildren())
+ {
+ if (!bParentFound && bDrawAsChild)
+ {
+ /*Reset it, as no Parent is there*/
+ bDrawAsChild = FALSE;
+ bColorChild = TRUE;
+ }
+ else
+ {
+ nParent = -1;
+ bParentFound = FALSE;
+ }
+ }
+
+ res = ListView_GetItemRect_Modified(hWnd, nItem, &rcAllLabels, LVIR_BOUNDS);
+ res = ListView_GetItemRect_Modified(hWnd, nItem, &rcLabel, LVIR_LABEL);
+
+ rcAllLabels.left = rcLabel.left;
+
+ if (hBackground != NULL)
+ {
+ RECT rcClient;
+ HRGN rgnBitmap;
+ RECT rcTmpBmp = rcItem;
+ RECT rcFirstItem;
+ HPALETTE hPAL;
+ HDC htempDC;
+ HBITMAP oldBitmap;
+
+ htempDC = CreateCompatibleDC(hDC);
+
+ oldBitmap = (HBITMAP)SelectObject(htempDC, hBackground);
+
+ GetClientRect(hWnd, &rcClient);
+ rcTmpBmp.right = rcClient.right;
+ /* We also need to check whether it is the last item
+ The update region has to be extended to the bottom if it is */
+ if (nItem == ListView_GetItemCount(hWnd) - 1)
+ rcTmpBmp.bottom = rcClient.bottom;
+
+ rgnBitmap = CreateRectRgnIndirect(&rcTmpBmp);
+ SelectClipRgn(hDC, rgnBitmap);
+ DeleteBitmap(rgnBitmap);
+
+ hPAL = GetBackgroundPalette();
+ if (hPAL == NULL)
+ hPAL = CreateHalftonePalette(hDC);
+
+ if (GetDeviceCaps(htempDC, RASTERCAPS) & RC_PALETTE && hPAL != NULL)
+ {
+ SelectPalette(htempDC, hPAL, FALSE);
+ RealizePalette(htempDC);
+ }
+
+ res = ListView_GetItemRect_Modified(hWnd, 0, &rcFirstItem, LVIR_BOUNDS);
+
+ for (i = rcFirstItem.left; i < rcClient.right; i += pbmDesc->bmWidth)
+ for (j = rcFirstItem.top; j < rcClient.bottom; j += pbmDesc->bmHeight)
+ BitBlt(hDC, i, j, pbmDesc->bmWidth, pbmDesc->bmHeight, htempDC, 0, 0, SRCCOPY);
+
+ SelectObject(htempDC, oldBitmap);
+ DeleteDC(htempDC);
+
+ if (GetBackgroundPalette() == NULL)
+ {
+ DeletePalette(hPAL);
+ hPAL = NULL;
+ }
+ }
+
+ indent_space = 0;
+
+ if (bDrawAsChild)
+ {
+ RECT rect;
+
+ res = ListView_GetItemRect_Modified(hWnd, nItem, &rect, LVIR_ICON);
+
+ /* indent width of icon + the space between the icon and text
+ * so left of clone icon starts at text of parent
+ */
+ indent_space = rect.right - rect.left + offset;
+ }
+
+ rcAllLabels.left += indent_space;
+
+ if (bSelected)
+ {
+ HBRUSH hBrush;
+ HBRUSH hOldBrush;
+
+ if (bFocus)
+ {
+ clrTextSave = SetTextColor(hDC, GetSysColor(COLOR_HIGHLIGHTTEXT));
+ clrBkSave = SetBkColor(hDC, GetSysColor(COLOR_HIGHLIGHT));
+ hBrush = CreateSolidBrush(GetSysColor(COLOR_HIGHLIGHT));
+ }
+ else
+ {
+ clrTextSave = SetTextColor(hDC, GetSysColor(COLOR_BTNTEXT));
+ clrBkSave = SetBkColor(hDC, GetSysColor(COLOR_BTNFACE));
+ hBrush = CreateSolidBrush(GetSysColor(COLOR_BTNFACE));
+ }
+
+ hOldBrush = (HBRUSH)SelectObject(hDC, hBrush);
+ FillRect(hDC, &rcAllLabels, hBrush);
+ SelectObject(hDC, hOldBrush);
+ DeleteBrush(hBrush);
+ }
+ else
+ {
+ if (hBackground == NULL)
+ {
+ HBRUSH hBrush;
+
+ hBrush = CreateSolidBrush(GetSysColor(COLOR_WINDOW));
+ FillRect(hDC, &rcAllLabels, hBrush);
+ DeleteBrush(hBrush);
+ }
+
+ if (pPickerInfo->pCallbacks->pfnGetOffsetChildren && pPickerInfo->pCallbacks->pfnGetOffsetChildren())
+ {
+ if (bDrawAsChild || bColorChild)
+ clrTextSave = SetTextColor(hDC, GetListCloneColor());
+ else
+ clrTextSave = SetTextColor(hDC, GetListFontColor());
+ }
+ else
+ {
+ if (bDrawAsChild)
+ clrTextSave = SetTextColor(hDC, GetListCloneColor());
+ else
+ clrTextSave = SetTextColor(hDC, GetListFontColor());
+ }
+
+ clrBkSave = SetBkColor(hDC, GetSysColor(COLOR_WINDOW));
+ }
+
+
+ if (lvi.state & LVIS_CUT)
+ {
+ clrImage = GetSysColor(COLOR_WINDOW);
+ uiFlags |= ILD_BLEND50;
+ }
+ else if (bSelected)
+ {
+ if (bFocus)
+ clrImage = GetSysColor(COLOR_HIGHLIGHT);
+ else
+ clrImage = GetSysColor(COLOR_BTNFACE);
+
+ uiFlags |= ILD_BLEND50;
+ }
+
+ nStateImageMask = lvi.state & LVIS_STATEIMAGEMASK;
+
+ if (nStateImageMask)
+ {
+ int nImage = (nStateImageMask >> 12) - 1;
+ hImageList = ListView_GetImageList(hWnd, LVSIL_STATE);
+ if (hImageList)
+ ImageList_Draw(hImageList, nImage, hDC, rcItem.left, rcItem.top, ILD_TRANSPARENT);
+ }
+
+ res = ListView_GetItemRect_Modified(hWnd, nItem, &rcIcon, LVIR_ICON);
+
+ rcIcon.left += indent_space;
+
+ res = ListView_GetItemRect_Modified(hWnd, nItem, &rcItem, LVIR_LABEL);
+
+ hImageList = ListView_GetImageList(hWnd, LVSIL_SMALL);
+ if (hImageList)
+ {
+ UINT nOvlImageMask = lvi.state & LVIS_OVERLAYMASK;
+ if (rcIcon.left + 16 + indent_space < rcItem.right)
+ {
+ ImageList_DrawEx(hImageList, lvi.iImage, hDC, rcIcon.left, rcIcon.top, 16, 16,
+ GetSysColor(COLOR_WINDOW), clrImage, uiFlags | nOvlImageMask);
+ }
+ }
+
+ res = ListView_GetItemRect_Modified(hWnd, nItem, &rcItem, LVIR_LABEL);
+
+ pszText = MakeShortString(hDC, szBuff, rcItem.right - rcItem.left, 2*offset + indent_space);
+
+ rcLabel = rcItem;
+ rcLabel.left += offset + indent_space;
+ rcLabel.right -= offset;
+
+ DrawText(hDC, pszText, -1, &rcLabel,
+ DT_LEFT | DT_SINGLELINE | DT_NOPREFIX | DT_VCENTER);
+
+ for (nColumn = 1; nColumn < nColumnMax; nColumn++)
+ {
+ int nRetLen;
+ UINT nJustify;
+ LV_ITEM lvItem;
+
+ lvc.mask = LVCF_FMT | LVCF_WIDTH;
+ res = ListView_GetColumn(hWnd, order[nColumn], &lvc);
+
+ lvItem.mask = LVIF_TEXT;
+ lvItem.iItem = nItem;
+ lvItem.iSubItem = order[nColumn];
+ lvItem.pszText = szBuff;
+ lvItem.cchTextMax = ARRAY_LENGTH(szBuff);
+
+ if (ListView_GetItem(hWnd, &lvItem) == FALSE)
+ continue;
+
+ rcItem.left = rcItem.right;
+ rcItem.right += lvc.cx;
+
+ nRetLen = _tcslen(szBuff);
+ if (nRetLen == 0)
+ continue;
+
+ pszText = MakeShortString(hDC, szBuff, rcItem.right - rcItem.left, 2 * offset);
+
+ nJustify = DT_LEFT;
+
+ if (pszText == szBuff)
+ {
+ switch (lvc.fmt & LVCFMT_JUSTIFYMASK)
+ {
+ case LVCFMT_RIGHT:
+ nJustify = DT_RIGHT;
+ break;
+
+ case LVCFMT_CENTER:
+ nJustify = DT_CENTER;
+ break;
+
+ default:
+ break;
+ }
+ }
+
+ rcLabel = rcItem;
+ rcLabel.left += offset;
+ rcLabel.right -= offset;
+ DrawText(hDC, pszText, -1, &rcLabel,
+ nJustify | DT_SINGLELINE | DT_NOPREFIX | DT_VCENTER);
+ }
+
+ if (lvi.state & LVIS_FOCUSED && bFocus)
+ DrawFocusRect(hDC, &rcAllLabels);
+
+ SetTextColor(hDC, clrTextSave);
+ SetBkColor(hDC, clrBkSave);
+ free(order);
+}
+
+
+
+
+const struct PickerCallbacks *Picker_GetCallbacks(HWND hwndPicker)
+{
+ struct PickerInfo *pPickerInfo;
+ pPickerInfo = GetPickerInfo(hwndPicker);
+ return pPickerInfo->pCallbacks;
+}
+
+
+
+int Picker_GetColumnCount(HWND hwndPicker)
+{
+ struct PickerInfo *pPickerInfo;
+ pPickerInfo = GetPickerInfo(hwndPicker);
+ return pPickerInfo->nColumnCount;
+}
+
+
+
+const LPCTSTR *Picker_GetColumnNames(HWND hwndPicker)
+{
+ struct PickerInfo *pPickerInfo;
+ pPickerInfo = GetPickerInfo(hwndPicker);
+ return pPickerInfo->ppszColumnNames;
+}
+
+
+
+void Picker_SetHeaderImageList(HWND hwndPicker, HIMAGELIST hHeaderImages)
+{
+ HWND hwndHeader;
+ hwndHeader = ListView_GetHeader(hwndPicker);
+ SendMessage(hwndHeader, HDM_SETIMAGELIST, 0, (LPARAM) (void *) hHeaderImages);
+}
+
+
+
+BOOL Picker_SaveColumnWidths(HWND hwndPicker)
+{
+ struct PickerInfo *pPickerInfo;
+ int *widths;
+ int *order;
+ int *tmpOrder;
+ int nColumnMax, i;
+ BOOL bSuccess = FALSE;
+ BOOL res;
+
+ pPickerInfo = GetPickerInfo(hwndPicker);
+
+ /* allocate space for the column info */
+ widths = (int*)malloc(pPickerInfo->nColumnCount * sizeof(*widths));
+ order = (int*)malloc(pPickerInfo->nColumnCount * sizeof(*order));
+ tmpOrder = (int*)malloc(pPickerInfo->nColumnCount * sizeof(*tmpOrder));
+ if (!widths || !order || !tmpOrder)
+ goto done;
+
+ /* retrieve the values */
+ memset(widths, 0, pPickerInfo->nColumnCount * sizeof(*widths));
+ memset(order, 0, pPickerInfo->nColumnCount * sizeof(*order));
+ pPickerInfo->pCallbacks->pfnGetColumnWidths(widths);
+ pPickerInfo->pCallbacks->pfnGetColumnOrder(order);
+
+ /* switch the list view to LVS_REPORT style so column widths reported correctly */
+ SetWindowLong(hwndPicker, GWL_STYLE,
+ (GetWindowLong(hwndPicker, GWL_STYLE) & ~LVS_TYPEMASK) | LVS_REPORT);
+
+ nColumnMax = Picker_GetNumColumns(hwndPicker);
+
+ if (GetUseOldControl())
+ {
+ for (i = 0; i < nColumnMax; i++)
+ {
+ widths[Picker_GetRealColumnFromViewColumn(hwndPicker, i)] =
+ ListView_GetColumnWidth(hwndPicker, i);
+ }
+ }
+ else
+ {
+ /* Get the Column Order and save it */
+ res = ListView_GetColumnOrderArray(hwndPicker, nColumnMax, tmpOrder);
+
+ for (i = 0; i < nColumnMax; i++)
+ {
+ widths[Picker_GetRealColumnFromViewColumn(hwndPicker, i)]
+ = ListView_GetColumnWidth(hwndPicker, i);
+ order[i] = Picker_GetRealColumnFromViewColumn(hwndPicker, tmpOrder[i]);
+ }
+ }
+
+ pPickerInfo->pCallbacks->pfnSetColumnWidths(widths);
+ pPickerInfo->pCallbacks->pfnSetColumnOrder(order);
+ bSuccess = TRUE;
+
+done:
+ if (widths)
+ free(widths);
+ if (order)
+ free(order);
+ if (tmpOrder)
+ free(tmpOrder);
+ return bSuccess;
+}
diff --git a/docs/release/src/osd/winui/picker.h b/docs/release/src/osd/winui/picker.h
new file mode 100644
index 00000000000..ab514b2d28b
--- /dev/null
+++ b/docs/release/src/osd/winui/picker.h
@@ -0,0 +1,88 @@
+// For licensing and usage information, read docs/winui_license.txt
+//****************************************************************************
+
+#ifndef PICKER_H
+#define PICKER_H
+
+struct PickerCallbacks
+{
+ // Options retrieval
+ void (*pfnSetSortColumn)(int column);
+ int (*pfnGetSortColumn)(void);
+ void (*pfnSetSortReverse)(BOOL reverse);
+ BOOL (*pfnGetSortReverse)(void);
+ void (*pfnSetViewMode)(int val);
+ int (*pfnGetViewMode)(void);
+ void (*pfnSetColumnWidths)(int widths[]);
+ void (*pfnGetColumnWidths)(int widths[]);
+ void (*pfnSetColumnOrder)(int order[]);
+ void (*pfnGetColumnOrder)(int order[]);
+ void (*pfnSetColumnShown)(int shown[]);
+ void (*pfnGetColumnShown)(int shown[]);
+ BOOL (*pfnGetOffsetChildren)(void);
+
+ int (*pfnCompare)(HWND hwndPicker, int nIndex1, int nIndex2, int nSortSubItem);
+ void (*pfnDoubleClick)(void);
+ const TCHAR *(*pfnGetItemString)(HWND hwndPicker, int nItem, int nColumn,
+ TCHAR *pszBuffer, UINT nBufferLength);
+ int (*pfnGetItemImage)(HWND hwndPicker, int nItem);
+ void (*pfnLeavingItem)(HWND hwndPicker, int nItem);
+ void (*pfnEnteringItem)(HWND hwndPicker, int nItem);
+ void (*pfnBeginListViewDrag)(NM_LISTVIEW *pnlv);
+ int (*pfnFindItemParent)(HWND hwndPicker, int nItem);
+ BOOL (*pfnOnIdle)(HWND hwndPicker);
+ void (*pfnOnHeaderContextMenu)(POINT pt, int nColumn);
+ void (*pfnOnBodyContextMenu)(POINT pt);
+};
+
+struct PickerOptions
+{
+ const struct PickerCallbacks *pCallbacks;
+ BOOL bOldControl;
+ BOOL bXPControl;
+ int nColumnCount;
+ const LPCTSTR *ppszColumnNames;
+};
+
+enum
+{
+ VIEW_LARGE_ICONS = 0,
+ VIEW_SMALL_ICONS,
+ VIEW_INLIST,
+ VIEW_REPORT,
+ VIEW_GROUPED,
+ VIEW_MAX
+};
+
+
+
+BOOL SetupPicker(HWND hwndPicker, const struct PickerOptions *pOptions);
+
+int Picker_GetViewID(HWND hwndPicker);
+void Picker_SetViewID(HWND hwndPicker, int nViewID);
+int Picker_GetRealColumnFromViewColumn(HWND hwndPicker, int nViewColumn);
+int Picker_GetViewColumnFromRealColumn(HWND hwndPicker, int nRealColumn);
+void Picker_Sort(HWND hwndPicker);
+void Picker_ResetColumnDisplay(HWND hwndPicker);
+int Picker_GetSelectedItem(HWND hwndPicker);
+void Picker_SetSelectedItem(HWND hwndPicker, int nItem);
+void Picker_SetSelectedPick(HWND hwndPicker, int nIndex);
+int Picker_GetNumColumns(HWND hWnd);
+void Picker_ClearIdle(HWND hwndPicker);
+void Picker_ResetIdle(HWND hwndPicker);
+BOOL Picker_IsIdling(HWND hwndPicker);
+void Picker_SetHeaderImageList(HWND hwndPicker, HIMAGELIST hHeaderImages);
+int Picker_InsertItemSorted(HWND hwndPicker, int nParam);
+BOOL Picker_SaveColumnWidths(HWND hwndPicker);
+
+// These are used to handle events received by the parent regarding
+// picker controls
+BOOL Picker_HandleNotify(LPNMHDR lpNmHdr);
+void Picker_HandleDrawItem(HWND hwndPicker, LPDRAWITEMSTRUCT lpDrawItemStruct);
+
+// Accessors
+const struct PickerCallbacks *Picker_GetCallbacks(HWND hwndPicker);
+int Picker_GetColumnCount(HWND hwndPicker);
+const LPCTSTR *Picker_GetColumnNames(HWND hwndPicker);
+
+#endif // PICKER_H
diff --git a/docs/release/src/osd/winui/properties.cpp b/docs/release/src/osd/winui/properties.cpp
new file mode 100644
index 00000000000..fa692a9618b
--- /dev/null
+++ b/docs/release/src/osd/winui/properties.cpp
@@ -0,0 +1,3354 @@
+// For licensing and usage information, read docs/winui_license.txt
+// MASTER
+//****************************************************************************
+
+/***************************************************************************
+
+ Properties.c
+
+ Properties Popup and Misc UI support routines.
+
+ Created 8/29/98 by Mike Haaland (mhaaland@hypertech.com)
+
+***************************************************************************/
+
+/***************************************************************************
+
+MSH - 20070809
+--
+Notes on properties and ini files, reset and reset to default.
+----------------------------------------------------------------------------
+Each ini contains a complete option set.
+
+Priority order for option sets (Lowest to Highest):
+
+built-in defaults
+program ini (executable root filename ini)
+debug ini (if running a debug build)
+driver ini (source code root filename in which this driver is found)
+game ini (where game is the driver name for this game)
+
+To determine which option set to use, start at the top level (lowest
+priority), and overlay all higher priority ini's until the desired level
+is reached.
+
+The 'default' option set is the next priority higher up the list from
+the desired level. For the default (program.ini) level, it is also the
+default.
+
+When MAME is run, the desired level is game ini.
+
+Expected Code behavior:
+----------------------------------------------------------------------------
+This approach requires 3 option sets, 'current', 'original' and 'default'.
+
+'current': used to populate the property pages, and to initialize the
+'original' set.
+
+'original': used to evaluate if the 'Reset' button is enabled.
+If 'current' matches 'original', the 'Reset' button is disabled,
+otherwise it is enabled.
+
+'default': used to evaluate if the 'Restore to Defaults' button is enabled.
+If 'current' matches 'default', the 'Restore to Defaults' button is disabled,
+otherwise it is enabled.
+
+When editing any option set, the desired level is set to the one being
+edited, the default set for that level, is the next lower priority set found.
+
+Upon entering the properties dialog:
+a) 'current' is initialized
+b) 'original' is initialized by 'current'
+c) 'default' is initialized
+d) Populate Property pages with 'current'
+e) 'Reset' and 'Restore to Defaults' buttons are evaluated.
+
+After any change:
+a) 'current' is updated
+b) 'Reset' and 'Restore to Defaults' buttons are re-evaluated.
+
+Reset:
+a) 'current' is reinitialized to 'original'
+b) Re-populate Property pages with 'current'
+c) 'Reset' and 'Restore to Defaults' buttons are re-evaluated.
+
+Restore to Defaults:
+a) 'current' is reinitialized to 'default'
+b) Re-populate Property pages with 'current'
+b) 'Reset' and 'Restore to Defaults' buttons are re-evaluated.
+
+Apply:
+a) 'original' is reinitialized to 'current'
+b) 'Reset' and 'Restore to defaults' are re-evaluated.
+c) If they 'current' matches 'default', remove the ini from disk.
+ Otherwise, write the ini to disk.
+
+Cancel:
+a) Exit the dialog.
+
+OK:
+a) If they 'current' matches 'default', remove the ini from disk.
+ Otherwise, write the ini to disk.
+b) Exit the dialog.
+
+
+***************************************************************************/
+
+// standard windows headers
+#include <windows.h>
+#include <windowsx.h>
+
+// standard C headers
+#include <tchar.h>
+#include <sys/stat.h> // for S_IFDIR
+
+// MAME/MAMEUI headers
+#include "emu.h"
+#include "screen.h"
+#include "mui_audit.h"
+#include "mui_opts.h"
+#include "resource.h"
+#include "dijoystick.h" /* For DIJoystick availability. */
+#include "mui_util.h"
+#include "datamap.h"
+#include "help.h"
+#include "winui.h"
+#include "strconv.h"
+#include "winutf8.h"
+#include "directories.h"
+#include "sound/samples.h"
+
+#ifdef _MSC_VER
+#define snprintf _snprintf
+#endif
+
+#include "newuires.h"
+#include "directdraw.h" /* has to be after samples.h */
+#include "properties.h"
+#include "drivenum.h"
+#include "machine/ram.h"
+
+
+#if defined(__GNUC__)
+/* fix warning: cast does not match function type */
+#undef PropSheet_GetTabControl
+#define PropSheet_GetTabControl(d) (HWND)(LRESULT)(int)SendMessage((d),PSM_GETTABCONTROL,0,0)
+#endif /* defined(__GNUC__) */
+
+/***************************************************************
+ * Imported function prototypes
+ ***************************************************************/
+
+/**************************************************************
+ * Local function prototypes
+ **************************************************************/
+
+static void SetSamplesEnabled(HWND hWnd, int nIndex, BOOL bSoundEnabled);
+static void InitializeOptions(HWND hDlg);
+static void InitializeMisc(HWND hDlg);
+static void OptOnHScroll(HWND hWnd, HWND hwndCtl, UINT code, int pos);
+static void NumScreensSelectionChange(HWND hwnd);
+static void RefreshSelectionChange(HWND hWnd, HWND hWndCtrl);
+static void InitializeSoundUI(HWND hwnd);
+static void InitializeSkippingUI(HWND hwnd);
+static void InitializeRotateUI(HWND hwnd);
+static void UpdateSelectScreenUI(HWND hwnd);
+static void InitializeSelectScreenUI(HWND hwnd);
+static void InitializeD3DVersionUI(HWND hwnd);
+static void InitializeVideoUI(HWND hwnd);
+static void InitializeBIOSUI(HWND hwnd);
+static void InitializeControllerMappingUI(HWND hwnd);
+static void UpdateOptions(HWND hDlg, datamap *map, windows_options &opts);
+static void UpdateProperties(HWND hDlg, datamap *map, windows_options &opts);
+static void PropToOptions(HWND hWnd, windows_options &o);
+static void OptionsToProp(HWND hWnd, windows_options &o);
+static void SetPropEnabledControls(HWND hWnd);
+static BOOL SelectEffect(HWND hWnd);
+static BOOL ResetEffect(HWND hWnd);
+static BOOL SelectJoystickMap(HWND hWnd);
+static BOOL ResetJoystickMap(HWND hWnd);
+static BOOL SelectDebugscript(HWND hWnd);
+static BOOL ResetDebugscript(HWND hWnd);
+
+static void BuildDataMap(void);
+static void ResetDataMap(HWND hWnd);
+
+static void UpdateBackgroundBrush(HWND hwndTab);
+static HBRUSH hBkBrush;
+
+#ifdef MESS
+static BOOL DirListReadControl(datamap *map, HWND dialog, HWND control, windows_options *opts, const char *option_name);
+static BOOL DirListPopulateControl(datamap *map, HWND dialog, HWND control, windows_options *opts, const char *option_name);
+static BOOL RamPopulateControl(datamap *map, HWND dialog, HWND control, windows_options *opts, const char *option_name);
+extern BOOL BrowseForDirectory(HWND hwnd, LPCTSTR pStartDir, TCHAR* pResult);
+//static BOOL g_bModifiedSoftwarePaths = FALSE;
+#endif
+
+/**************************************************************
+ * Local private variables
+ **************************************************************/
+
+/* No longer used by the core, but we need it to predefine configurable screens for all games. */
+#ifndef MAX_SCREENS
+/* maximum number of screens for one game */
+#define MAX_SCREENS 4
+#endif
+
+static windows_options pOrigOpts, pDefaultOpts, pCurrentOpts;
+static datamap *properties_datamap;
+
+static int g_nGame = 0;
+static int g_nFolder = 0;
+static int g_nFolderGame = 0;
+static OPTIONS_TYPE g_nPropertyMode = OPTIONS_GAME;
+static BOOL g_bAutoAspect[MAX_SCREENS] = {FALSE, FALSE, FALSE, FALSE};
+static BOOL g_bAutoSnapSize = FALSE;
+static HICON g_hIcon = NULL;
+
+/* Property sheets */
+
+#define HIGHLIGHT_COLOR RGB(0,196,0)
+static HBRUSH highlight_brush = NULL;
+static HBRUSH background_brush = NULL;
+
+#define ORIENTATION_COLOR RGB( 190, 128, 0) //LIGHT BROWN
+#define VECTOR_COLOR RGB( 190, 0, 0) //DARK RED
+#define FOLDER_COLOR RGB( 0, 128, 0 ) // DARK GREEN
+#define PARENT_COLOR RGB( 190, 128, 192 ) // PURPLE
+#define GAME_COLOR RGB( 0, 128, 192 ) // DARK BLUE
+
+
+BOOL PropSheetFilter_Vector(const machine_config *drv, const game_driver *gamedrv)
+{
+ return isDriverVector(drv);
+}
+
+/* Help IDs - moved to auto-generated helpids.c */
+extern const DWORD dwHelpIDs[];
+
+static struct ComboBoxVideo
+{
+ const TCHAR* m_pText;
+ const char* m_pData;
+} g_ComboBoxVideo[] =
+{
+ { TEXT("Auto"), "auto" },
+ { TEXT("GDI"), "gdi" },
+// { TEXT("DirectDraw"), "ddraw" }, // removed 20160217
+ { TEXT("Direct3D"), "d3d" },
+ { TEXT("BGFX"), "bgfx" },
+ { TEXT("OpenGL"), "opengl" },
+};
+#define NUMVIDEO (sizeof(g_ComboBoxVideo) / sizeof(g_ComboBoxVideo[0]))
+
+static struct ComboBoxSound
+{
+ const TCHAR* m_pText;
+ const char* m_pData;
+} g_ComboBoxSound[] =
+{
+ { TEXT("None"), "none" },
+ { TEXT("Auto"), "auto" },
+ { TEXT("DirectSound"), "dsound" },
+ { TEXT("PortAudio"), "portaudio" },
+// { TEXT("XAudio2"), "xaudio2" }, // invalid option
+};
+#define NUMSOUND (sizeof(g_ComboBoxSound) / sizeof(g_ComboBoxSound[0]))
+
+static struct ComboBoxD3DVersion
+{
+ const TCHAR* m_pText;
+ const int m_pData;
+} g_ComboBoxD3DVersion[] =
+{
+ { TEXT("Version 9"), 9 },
+// { TEXT("Version 8"), 8 },
+};
+
+#define NUMD3DVERSIONS (sizeof(g_ComboBoxD3DVersion) / sizeof(g_ComboBoxD3DVersion[0]))
+#define WINOPTION_D3DVERSION "9"
+
+static struct ComboBoxSelectScreen
+{
+ const TCHAR* m_pText;
+ const int m_pData;
+} g_ComboBoxSelectScreen[] =
+{
+ { TEXT("Screen 0"), 0 },
+ { TEXT("Screen 1"), 1 },
+ { TEXT("Screen 2"), 2 },
+ { TEXT("Screen 3"), 3 },
+};
+#define NUMSELECTSCREEN (sizeof(g_ComboBoxSelectScreen) / sizeof(g_ComboBoxSelectScreen[0]))
+
+static struct ComboBoxView
+{
+ const TCHAR* m_pText;
+ const char* m_pData;
+} g_ComboBoxView[] =
+{
+ { TEXT("Auto"), "auto" },
+ { TEXT("Standard"), "standard" },
+ { TEXT("Pixel Aspect"), "pixel" },
+ { TEXT("Cocktail"), "cocktail" },
+};
+#define NUMVIEW (sizeof(g_ComboBoxView) / sizeof(g_ComboBoxView[0]))
+
+
+
+static struct ComboBoxDevices
+{
+ const TCHAR* m_pText;
+ const char* m_pData;
+} g_ComboBoxDevice[] =
+{
+ { TEXT("None"), "none" },
+ { TEXT("Keyboard"), "keyboard" },
+ { TEXT("Mouse"), "mouse" },
+ { TEXT("Joystick"), "joystick" },
+ { TEXT("Lightgun"), "lightgun" },
+};
+
+#define NUMDEVICES (sizeof(g_ComboBoxDevice) / sizeof(g_ComboBoxDevice[0]))
+
+static struct ComboBoxSnapView
+{
+ const TCHAR* m_pText;
+ const char* m_pData;
+} g_ComboBoxSnapView[] =
+{
+ { TEXT("Internal"), "internal" },
+ { TEXT("Auto"), "auto" },
+ { TEXT("Standard"), "standard" },
+ { TEXT("Pixel Aspect"), "pixel" },
+ { TEXT("Cocktail"), "cocktail" },
+};
+#define NUMSNAPVIEW (sizeof(g_ComboBoxSnapView) / sizeof(g_ComboBoxSnapView[0]))
+
+
+/***************************************************************
+ * Public functions
+ ***************************************************************/
+
+
+int PropertiesCurrentGame(HWND hDlg)
+{
+ return g_nGame;
+}
+
+DWORD_PTR GetHelpIDs(void)
+{
+ return (DWORD_PTR)dwHelpIDs;
+}
+
+static int GetSelectedScreen(HWND hWnd)
+{
+ int nSelectedScreen = 0;
+ HWND hCtrl = GetDlgItem(hWnd, IDC_SCREENSELECT);
+ if (hCtrl)
+ nSelectedScreen = ComboBox_GetCurSel(hCtrl);
+ if ((nSelectedScreen < 0) || (nSelectedScreen >= NUMSELECTSCREEN))
+ nSelectedScreen = 0;
+ return nSelectedScreen;
+
+}
+
+static PROPSHEETPAGE *CreatePropSheetPages(HINSTANCE hInst, BOOL bOnlyDefault,
+// const game_driver *gamedrv, UINT *pnMaxPropSheets, BOOL isGame )
+ int nGame, UINT *pnMaxPropSheets, BOOL isGame )
+{
+ PROPSHEETPAGE *pspages;
+ int maxPropSheets = 0;
+ int possiblePropSheets;
+ int i = ( isGame ) ? 0 : 2;
+
+ for (; g_propSheets[i].pfnDlgProc; i++)
+ ;
+
+ possiblePropSheets = (isGame) ? i + 1 : i - 1;
+
+ pspages = (PROPSHEETPAGE *)malloc(sizeof(PROPSHEETPAGE) * possiblePropSheets);
+ if (!pspages)
+ return NULL;
+
+ memset(pspages, 0, sizeof(PROPSHEETPAGE) * possiblePropSheets);
+
+ i = ( isGame ) ? 0 : 2;
+
+ for (; g_propSheets[i].pfnDlgProc; i++)
+ {
+ if (nGame < 0)
+ {
+ if (g_propSheets[i].bOnDefaultPage)
+ {
+ pspages[maxPropSheets].dwSize = sizeof(PROPSHEETPAGE);
+ pspages[maxPropSheets].dwFlags = 0;
+ pspages[maxPropSheets].hInstance = hInst;
+ pspages[maxPropSheets].pszTemplate = MAKEINTRESOURCE(g_propSheets[i].dwDlgID);
+ pspages[maxPropSheets].pfnCallback = NULL;
+ pspages[maxPropSheets].lParam = 0;
+ pspages[maxPropSheets].pfnDlgProc = g_propSheets[i].pfnDlgProc;
+ maxPropSheets++;
+ }
+ }
+ else
+ if ((nGame >= 0) || g_propSheets[i].bOnDefaultPage)
+ {
+ //machine_config config(*gamedrv,pCurrentOpts);
+
+// if (!gamedrv || !g_propSheets[i].pfnFilterProc || g_propSheets[i].pfnFilterProc(&config, gamedrv))
+ if (nGame < 0 || !g_propSheets[i].pfnFilterProc || g_propSheets[i].pfnFilterProc(nGame))
+ {
+ pspages[maxPropSheets].dwSize = sizeof(PROPSHEETPAGE);
+ pspages[maxPropSheets].dwFlags = 0;
+ pspages[maxPropSheets].hInstance = hInst;
+ pspages[maxPropSheets].pszTemplate = MAKEINTRESOURCE(g_propSheets[i].dwDlgID);
+ pspages[maxPropSheets].pfnCallback = NULL;
+ pspages[maxPropSheets].lParam = 0;
+ pspages[maxPropSheets].pfnDlgProc = g_propSheets[i].pfnDlgProc;
+ maxPropSheets++;
+ }
+ }
+ }
+
+ if (pnMaxPropSheets)
+ *pnMaxPropSheets = maxPropSheets;
+
+ return pspages;
+}
+
+// This is for the DEFAULT property-page options only
+void InitDefaultPropertyPage(HINSTANCE hInst, HWND hWnd)
+{
+ PROPSHEETHEADER pshead;
+ PROPSHEETPAGE *pspage;
+
+ // clear globals
+ g_nGame = GLOBAL_OPTIONS;
+ windows_options dummy;
+ pCurrentOpts = dummy;
+ pOrigOpts = dummy;
+ pDefaultOpts = dummy;
+
+ /* Get default options to populate property sheets */
+ load_options(pCurrentOpts, OPTIONS_GLOBAL, g_nGame);
+ load_options(pOrigOpts, OPTIONS_GLOBAL, g_nGame);
+ load_options(pDefaultOpts, OPTIONS_GLOBAL, -2);
+
+ /* Stash the result for comparing later */
+ //CreateGameOptions(pOrigOpts, OPTIONS_TYPE_GLOBAL);
+
+ g_nPropertyMode = OPTIONS_GLOBAL;
+ BuildDataMap();
+
+ ZeroMemory(&pshead, sizeof(pshead));
+
+ pspage = CreatePropSheetPages(hInst, TRUE, -1, &pshead.nPages, FALSE);
+ if (!pspage)
+ return;
+
+ /* Fill in the property sheet header */
+ pshead.hwndParent = hWnd;
+ pshead.dwSize = sizeof(PROPSHEETHEADER);
+ pshead.dwFlags = PSH_PROPSHEETPAGE | PSH_USEICONID | PSH_PROPTITLE;
+ pshead.hInstance = hInst;
+ pshead.pszCaption = TEXT("Default Game");
+ pshead.nStartPage = 0;
+ pshead.pszIcon = MAKEINTRESOURCE(IDI_MAMEUI_ICON);
+ pshead.ppsp = pspage;
+
+ /* Create the Property sheet and display it */
+ if (PropertySheet(&pshead) == -1)
+ {
+ char temp[100];
+ DWORD dwError = GetLastError();
+ sprintf(temp, "Property Sheet Error %d %X", (int)dwError, (int)dwError);
+ win_message_box_utf8(0, temp, "Error", IDOK);
+ }
+
+ free(pspage);
+}
+
+/* Initialize the property pages for anything but the Default option set */
+void InitPropertyPage(HINSTANCE hInst, HWND hWnd, HICON hIcon, OPTIONS_TYPE opt_type, int folder_id, int game_num)
+{
+ InitPropertyPageToPage(hInst, hWnd, hIcon, opt_type, folder_id, game_num, PROPERTIES_PAGE);
+}
+
+void InitPropertyPageToPage(HINSTANCE hInst, HWND hWnd, HICON hIcon, OPTIONS_TYPE opt_type, int folder_id, int game_num, int start_page )
+{
+ PROPSHEETHEADER pshead;
+ PROPSHEETPAGE *pspage;
+ TCHAR* t_description = 0;
+/// OPTIONS_TYPE default_type = opt_type;
+
+ if (highlight_brush == NULL)
+ highlight_brush = CreateSolidBrush(HIGHLIGHT_COLOR);
+
+ if (background_brush == NULL)
+ background_brush = CreateSolidBrush(GetSysColor(COLOR_3DFACE));
+
+ // Initialize the options
+ load_options(pCurrentOpts, opt_type, game_num);
+ load_options(pOrigOpts, opt_type, game_num);
+ if (game_num == GLOBAL_OPTIONS)
+ load_options(pDefaultOpts, OPTIONS_GLOBAL, -2); // base opts is the backup for global
+ else
+ load_options(pDefaultOpts, OPTIONS_GLOBAL, -1); // global is the backup for games
+
+ // Copy current_options to original options
+/// CreateGameOptions(pOrigOpts, OPTIONS_TYPE_GLOBAL);
+
+ // Copy icon to use for the property pages
+ g_hIcon = CopyIcon(hIcon);
+
+ // These MUST be valid, they are used as indicies
+ g_nGame = game_num;
+ g_nFolder = folder_id;
+
+ // Keep track of OPTIONS_TYPE that was passed in.
+ g_nPropertyMode = opt_type;
+
+ // Evaluate if the current set uses the Default set
+ //g_bUseDefaults = (pCurrentOpts != pDefaultOpts);
+ //g_bReset = FALSE;
+ BuildDataMap();
+
+ ZeroMemory(&pshead, sizeof(PROPSHEETHEADER));
+
+ // Set the game to audit to this game
+
+ // Create the property sheets
+ if( OPTIONS_GAME == opt_type )
+ {
+ InitGameAudit(game_num);
+// pspage = CreatePropSheetPages(hInst, FALSE, &driver_list::driver(game_num), &pshead.nPages, TRUE);
+ pspage = CreatePropSheetPages(hInst, FALSE, game_num, &pshead.nPages, TRUE);
+ }
+ else
+ pspage = CreatePropSheetPages(hInst, FALSE, -1, &pshead.nPages, FALSE);
+
+ if (!pspage)
+ return;
+
+
+ // Get the description use as the dialog caption.
+ switch( opt_type )
+ {
+ case OPTIONS_GAME:
+ t_description = ui_wstring_from_utf8(ModifyThe(driver_list::driver(g_nGame).description));
+ break;
+ case OPTIONS_SOURCE:
+ t_description = ui_wstring_from_utf8(GetDriverFilename(g_nGame));
+ break;
+ case OPTIONS_GLOBAL:
+ t_description = ui_wstring_from_utf8("Default Settings");
+ break;
+ default:
+ return;
+ }
+ // If we have no description, return.
+ if( !t_description )
+ return;
+
+ /* Fill in the property sheet header */
+ pshead.pszCaption = t_description;
+ pshead.hwndParent = hWnd;
+ pshead.dwSize = sizeof(PROPSHEETHEADER);
+ pshead.dwFlags = PSH_PROPSHEETPAGE | PSH_USEICONID | PSH_PROPTITLE;
+ pshead.hInstance = hInst;
+ pshead.nStartPage = start_page;
+ pshead.pszIcon = MAKEINTRESOURCE(IDI_MAMEUI_ICON);
+ pshead.ppsp = pspage;
+
+ /* Create the Property sheet and display it */
+ if (PropertySheet(&pshead) == -1)
+ {
+ char temp[100];
+ DWORD dwError = GetLastError();
+ sprintf(temp, "Property Sheet Error %d %X", (int)dwError, (int)dwError);
+ win_message_box_utf8(0, temp, "Error", IDOK);
+ }
+
+ free(t_description);
+ free(pspage);
+}
+
+
+/*********************************************************************
+ * Local Functions
+ *********************************************************************/
+
+/* Build CPU info string */
+static char *GameInfoCPU(UINT nIndex)
+{
+ static char buf[1024];
+ machine_config config(driver_list::driver(nIndex),pCurrentOpts);
+ ZeroMemory(buf, sizeof(buf));
+
+ for (device_execute_interface &cpu : execute_interface_iterator(config.root_device()))
+ {
+ if (cpu.device().clock() >= 1000000)
+ {
+ sprintf(&buf[strlen(buf)], "%s %d.%06d MHz",
+ cpu.device().name(),
+ cpu.device().clock() / 1000000,
+ cpu.device().clock() % 1000000);
+ }
+ else
+ {
+ sprintf(&buf[strlen(buf)], "%s %d.%03d kHz",
+ cpu.device().name(),
+ cpu.device().clock() / 1000,
+ cpu.device().clock() % 1000);
+ }
+
+ strcat(buf, "\n");
+ }
+
+ return buf;
+}
+
+/* Build Sound system info string */
+static char *GameInfoSound(UINT nIndex)
+{
+ static char buf[1024];
+
+ buf[0] = 0;
+
+ machine_config config(driver_list::driver(nIndex),pCurrentOpts);
+
+ /* iterate over sound chips */
+ for (device_sound_interface &sound : sound_interface_iterator(config.root_device()))
+ {
+ char tmpname[1024];
+
+ sprintf(tmpname,"%s",sound.device().name());
+
+ int clock = sound.device().clock();
+
+ sprintf(&buf[strlen(buf)],"%s",tmpname);
+
+ if (clock)
+ {
+ if (clock >= 1000000)
+ {
+ sprintf(&buf[strlen(buf)]," %d.%06d MHz",
+ clock / 1000000,
+ clock % 1000000);
+ }
+ else
+ {
+ sprintf(&buf[strlen(buf)]," %d.%03d kHz",
+ clock / 1000,
+ clock % 1000);
+ }
+ }
+
+ strcat(buf,"\n");
+ }
+ return buf;
+}
+
+/* Build Display info string */
+static char *GameInfoScreen(UINT nIndex)
+{
+ static char buf[1024];
+ machine_config config(driver_list::driver(nIndex),pCurrentOpts);
+ memset(buf, '\0', 1024);
+
+ if (isDriverVector(&config))
+ strcpy(buf, "Vector Game");
+ else
+ {
+ screen_device_iterator iter(config.root_device());
+ const screen_device *screen = iter.first();
+ if (screen == NULL)
+ strcpy(buf, "Screenless Game");
+ else
+ {
+ for (screen_device &screen : screen_device_iterator(config.root_device()))
+ {
+ char tmpbuf[256];
+ const rectangle &visarea = screen.visible_area();
+
+ if (driver_list::driver(nIndex).flags & ORIENTATION_SWAP_XY)
+ {
+ sprintf(tmpbuf,"%d x %d (V) %f Hz\n",
+ visarea.max_y - visarea.min_y + 1,
+ visarea.max_x - visarea.min_x + 1,
+ ATTOSECONDS_TO_HZ(screen.refresh_attoseconds()));
+ }
+ else
+ {
+ sprintf(tmpbuf,"%d x %d (H) %f Hz\n",
+ visarea.max_x - visarea.min_x + 1,
+ visarea.max_y - visarea.min_y + 1,
+ ATTOSECONDS_TO_HZ(screen.refresh_attoseconds()));
+ }
+ strcat(buf, tmpbuf);
+ }
+ }
+ }
+ return buf;
+}
+
+
+/* Build game status string */
+const char *GameInfoStatus(int driver_index, BOOL bRomStatus)
+{
+ static char buffer[1024];
+ int audit_result = GetRomAuditResults(driver_index);
+ memset(buffer,0,sizeof(char)*1024);
+ if ( bRomStatus )
+ {
+ if (IsAuditResultKnown(audit_result) == FALSE)
+ strcpy(buffer, "Unknown");
+ else if (IsAuditResultYes(audit_result))
+ {
+ if (DriverIsBroken(driver_index))
+ {
+ strcpy(buffer, "Not working");
+
+ if (driver_list::driver(driver_index).flags & MACHINE_UNEMULATED_PROTECTION)
+ {
+ if (*buffer != '\0')
+ strcat(buffer, "\r\n");
+ strcat(buffer, "Game protection isn't fully emulated");
+ }
+ if (driver_list::driver(driver_index).flags & MACHINE_WRONG_COLORS)
+ {
+ if (*buffer != '\0')
+ strcat(buffer, "\r\n");
+ strcat(buffer, "Colors are completely wrong");
+ }
+ if (driver_list::driver(driver_index).flags & MACHINE_IMPERFECT_COLORS)
+ {
+ if (*buffer != '\0')
+ strcat(buffer, "\r\n");
+ strcat(buffer, "Colors aren't 100% accurate");
+ }
+ if (driver_list::driver(driver_index).flags & MACHINE_IMPERFECT_GRAPHICS)
+ {
+ if (*buffer != '\0')
+ strcat(buffer, "\r\n");
+ strcat(buffer, "Video emulation isn't 100% accurate");
+ }
+ if (driver_list::driver(driver_index).flags & MACHINE_NO_SOUND)
+ {
+ if (*buffer != '\0')
+ strcat(buffer, "\r\n");
+ strcat(buffer, "Game lacks sound");
+ }
+ if (driver_list::driver(driver_index).flags & MACHINE_IMPERFECT_SOUND)
+ {
+ if (*buffer != '\0')
+ strcat(buffer, "\r\n");
+ strcat(buffer, "Sound emulation isn't 100% accurate");
+ }
+ if (driver_list::driver(driver_index).flags & MACHINE_NO_COCKTAIL)
+ {
+ if (*buffer != '\0')
+ strcat(buffer, "\r\n");
+ strcat(buffer, "Screen flipping is not supported");
+ }
+ if (driver_list::driver(driver_index).flags & MACHINE_REQUIRES_ARTWORK)
+ {
+ if (*buffer != '\0')
+ strcat(buffer, "\r\n");
+ strcat(buffer, "Game requires artwork");
+ }
+ }
+ else
+ {
+ strcpy(buffer, "Working");
+
+ if (driver_list::driver(driver_index).flags & MACHINE_UNEMULATED_PROTECTION)
+ {
+ if (*buffer != '\0')
+ strcat(buffer, "\r\n");
+ strcat(buffer, "Game protection isn't fully emulated");
+ }
+ if (driver_list::driver(driver_index).flags & MACHINE_WRONG_COLORS)
+ {
+ if (*buffer != '\0')
+ strcat(buffer, "\r\n");
+ strcat(buffer, "Colors are completely wrong");
+ }
+ if (driver_list::driver(driver_index).flags & MACHINE_IMPERFECT_COLORS)
+ {
+ if (*buffer != '\0')
+ strcat(buffer, "\r\n");
+ strcat(buffer, "Colors aren't 100% accurate");
+ }
+ if (driver_list::driver(driver_index).flags & MACHINE_IMPERFECT_GRAPHICS)
+ {
+ if (*buffer != '\0')
+ strcat(buffer, "\r\n");
+ strcat(buffer, "Video emulation isn't 100% accurate");
+ }
+ if (driver_list::driver(driver_index).flags & MACHINE_NO_SOUND)
+ {
+ if (*buffer != '\0')
+ strcat(buffer, "\r\n");
+ strcat(buffer, "Game lacks sound");
+ }
+ if (driver_list::driver(driver_index).flags & MACHINE_IMPERFECT_SOUND)
+ {
+ if (*buffer != '\0')
+ strcat(buffer, "\r\n");
+ strcat(buffer, "Sound emulation isn't 100% accurate");
+ }
+ if (driver_list::driver(driver_index).flags & MACHINE_NO_COCKTAIL)
+ {
+ if (*buffer != '\0')
+ strcat(buffer, "\r\n");
+ strcat(buffer, "Screen flipping is not supported");
+ }
+ if (driver_list::driver(driver_index).flags & MACHINE_REQUIRES_ARTWORK)
+ {
+ if (*buffer != '\0')
+ strcat(buffer, "\r\n");
+ strcat(buffer, "Game requires artwork");
+ }
+ }
+ }
+ else
+ {
+ // audit result is no
+ strcpy(buffer, "BIOS missing");
+ }
+ }
+ else
+ {
+ //Just show the emulation flags
+ if (DriverIsBroken(driver_index))
+ {
+ strcpy(buffer, "Not working");
+ }
+ else
+ {
+ strcpy(buffer, "Working");
+ }
+ if (driver_list::driver(driver_index).flags & MACHINE_UNEMULATED_PROTECTION)
+ {
+ if (*buffer != '\0')
+ strcat(buffer, "\r\n");
+ strcat(buffer, "Game protection isn't fully emulated");
+ }
+ if (driver_list::driver(driver_index).flags & MACHINE_WRONG_COLORS)
+ {
+ if (*buffer != '\0')
+ strcat(buffer, "\r\n");
+ strcat(buffer, "Colors are completely wrong");
+ }
+ if (driver_list::driver(driver_index).flags & MACHINE_IMPERFECT_COLORS)
+ {
+ if (*buffer != '\0')
+ strcat(buffer, "\r\n");
+ strcat(buffer, "Colors aren't 100% accurate");
+ }
+ if (driver_list::driver(driver_index).flags & MACHINE_IMPERFECT_GRAPHICS)
+ {
+ if (*buffer != '\0')
+ strcat(buffer, "\r\n");
+ strcat(buffer, "Video emulation isn't 100% accurate");
+ }
+ if (driver_list::driver(driver_index).flags & MACHINE_NO_SOUND)
+ {
+ if (*buffer != '\0')
+ strcat(buffer, "\r\n");
+ strcat(buffer, "Game lacks sound");
+ }
+ if (driver_list::driver(driver_index).flags & MACHINE_IMPERFECT_SOUND)
+ {
+ if (*buffer != '\0')
+ strcat(buffer, "\r\n");
+ strcat(buffer, "Sound emulation isn't 100% accurate");
+ }
+ if (driver_list::driver(driver_index).flags & MACHINE_NO_COCKTAIL)
+ {
+ if (*buffer != '\0')
+ strcat(buffer, "\r\n");
+ strcat(buffer, "Screen flipping is not supported");
+ }
+ if (driver_list::driver(driver_index).flags & MACHINE_REQUIRES_ARTWORK)
+ {
+ if (*buffer != '\0')
+ strcat(buffer, "\r\n");
+ strcat(buffer, "Game requires artwork");
+ }
+ }
+ return buffer;
+}
+
+/* Build game manufacturer string */
+static char *GameInfoManufactured(UINT nIndex)
+{
+ static char buffer[1024];
+
+ snprintf(buffer,sizeof(buffer),"%s %s",driver_list::driver(nIndex).year,driver_list::driver(nIndex).manufacturer);
+ return buffer;
+}
+
+/* Build Game title string */
+char *GameInfoTitle(OPTIONS_TYPE opt_type, UINT nIndex)
+{
+ static char buf[1024];
+
+ if (OPTIONS_GLOBAL == opt_type)
+ strcpy(buf, "Global game options\nDefault options used by all games");
+ else
+ if (OPTIONS_SOURCE == opt_type)
+ strcpy(buf, "Options used by all games in the source");
+ else
+ if (OPTIONS_VECTOR == opt_type)
+ strcpy(buf, "Global vector options");
+ else
+ if (OPTIONS_GAME == opt_type)
+ sprintf(buf, "%s\n\"%s\"", ModifyThe(driver_list::driver(nIndex).description), driver_list::driver(nIndex).name);
+ return buf;
+}
+
+/* Build game clone information string */
+static char *GameInfoCloneOf(UINT nIndex)
+{
+ static char buf[1024];
+ int nParentIndex= -1;
+
+ buf[0] = '\0';
+
+ if (DriverIsClone(nIndex))
+ {
+ nParentIndex = GetParentIndex(&driver_list::driver(nIndex));
+ sprintf(buf, "%s - \"%s\"",
+ ConvertAmpersandString(ModifyThe(driver_list::driver(nParentIndex).description)),
+ driver_list::driver(nParentIndex).name);
+ }
+
+ return buf;
+}
+
+static const char * GameInfoSource(UINT nIndex)
+{
+ return GetDriverFilename(nIndex);
+}
+
+/* Handle the information property page */
+INT_PTR CALLBACK GamePropertiesDialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam)
+{
+HWND hWnd;
+ switch (Msg)
+ {
+ case WM_INITDIALOG:
+ if (g_hIcon)
+ SendDlgItemMessage(hDlg, IDC_GAME_ICON, STM_SETICON, (WPARAM) g_hIcon, 0);
+#if defined(USE_SINGLELINE_TABCONTROL)
+ {
+ HWND hWnd = PropSheet_GetTabControl(GetParent(hDlg));
+ DWORD tabStyle = (GetWindowLong(hWnd,GWL_STYLE) & ~TCS_MULTILINE);
+ SetWindowLong(hWnd,GWL_STYLE,tabStyle | TCS_SINGLELINE);
+ }
+#endif
+
+ win_set_window_text_utf8(GetDlgItem(hDlg, IDC_PROP_TITLE), GameInfoTitle(g_nPropertyMode, g_nGame));
+ win_set_window_text_utf8(GetDlgItem(hDlg, IDC_PROP_MANUFACTURED), GameInfoManufactured(g_nGame));
+ win_set_window_text_utf8(GetDlgItem(hDlg, IDC_PROP_STATUS), GameInfoStatus(g_nGame, FALSE));
+ win_set_window_text_utf8(GetDlgItem(hDlg, IDC_PROP_CPU), GameInfoCPU(g_nGame));
+ win_set_window_text_utf8(GetDlgItem(hDlg, IDC_PROP_SOUND), GameInfoSound(g_nGame));
+ win_set_window_text_utf8(GetDlgItem(hDlg, IDC_PROP_SCREEN), GameInfoScreen(g_nGame));
+ win_set_window_text_utf8(GetDlgItem(hDlg, IDC_PROP_CLONEOF), GameInfoCloneOf(g_nGame));
+ win_set_window_text_utf8(GetDlgItem(hDlg, IDC_PROP_SOURCE), GameInfoSource(g_nGame));
+
+ if (DriverIsClone(g_nGame))
+ ShowWindow(GetDlgItem(hDlg, IDC_PROP_CLONEOF_TEXT), SW_SHOW);
+ else
+ ShowWindow(GetDlgItem(hDlg, IDC_PROP_CLONEOF_TEXT), SW_HIDE);
+
+ hWnd = PropSheet_GetTabControl(GetParent(hDlg));
+ UpdateBackgroundBrush(hWnd);
+ ShowWindow(hDlg, SW_SHOW);
+ return 1;
+ }
+ return 0;
+}
+
+/* Handle all options property pages */
+// NOTE you cannot just say opts1=opts2, although in theory it should work, in practice opts1 becomes null.
+INT_PTR CALLBACK GameOptionsProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam)
+{
+ BOOL g_bUseDefaults = 0, g_bReset = 0;
+ //d3d_version = pCurrentOpts.int_value(WINOPTION_D3DVERSION);
+
+
+ switch (Msg)
+ {
+ case WM_INITDIALOG:
+ /* Fill in the Game info at the top of the sheet */
+ win_set_window_text_utf8(GetDlgItem(hDlg, IDC_PROP_TITLE), GameInfoTitle(g_nPropertyMode, g_nGame));
+ InitializeOptions(hDlg);
+ InitializeMisc(hDlg);
+
+ UpdateProperties(hDlg, properties_datamap, pCurrentOpts);
+
+ g_bUseDefaults = (pCurrentOpts != pDefaultOpts);
+ g_bReset = (pCurrentOpts != pOrigOpts);
+
+ // Default button doesn't exist on Default settings
+// if (g_nGame == GLOBAL_OPTIONS)
+// ShowWindow(GetDlgItem(hDlg, IDC_USE_DEFAULT), SW_HIDE);
+// else
+ EnableWindow(GetDlgItem(hDlg, IDC_USE_DEFAULT), g_bUseDefaults);
+
+ // Setup Reset button
+ EnableWindow(GetDlgItem(hDlg, IDC_PROP_RESET), g_bReset);
+ ShowWindow(hDlg, SW_SHOW);
+ return 1;
+
+ case WM_HSCROLL:
+ /* slider changed */
+ HANDLE_WM_HSCROLL(hDlg, wParam, lParam, OptOnHScroll);
+ EnableWindow(GetDlgItem(hDlg, IDC_USE_DEFAULT), TRUE);
+
+ // Enable Apply button
+ PropSheet_Changed(GetParent(hDlg), hDlg);
+
+ // make sure everything's copied over, to determine what's changed
+ UpdateOptions(hDlg, properties_datamap, pCurrentOpts);
+
+ // redraw it, it might be a new color now
+ InvalidateRect((HWND)lParam,NULL,TRUE);
+
+ break;
+
+ case WM_COMMAND:
+ {
+ /* Below, 'changed' is used to signify the 'Apply' button should be enabled. */
+ WORD wID = GET_WM_COMMAND_ID(wParam, lParam);
+ HWND hWndCtrl = GET_WM_COMMAND_HWND(wParam, lParam);
+ WORD wNotifyCode = GET_WM_COMMAND_CMD(wParam, lParam);
+ BOOL changed = FALSE;
+ int nCurSelection = 0;
+ TCHAR szClass[256];
+
+ switch (wID)
+ {
+ case IDC_REFRESH:
+ if (wNotifyCode == LBN_SELCHANGE)
+ {
+ RefreshSelectionChange(hDlg, hWndCtrl);
+ changed = TRUE;
+ }
+ break;
+
+ case IDC_ASPECT:
+ nCurSelection = Button_GetCheck( GetDlgItem(hDlg, IDC_ASPECT));
+ if( g_bAutoAspect[GetSelectedScreen(hDlg)] != nCurSelection )
+ {
+ changed = TRUE;
+ g_bAutoAspect[GetSelectedScreen(hDlg)] = nCurSelection;
+ }
+ break;
+
+ case IDC_SNAPSIZE:
+ nCurSelection = Button_GetCheck( GetDlgItem(hDlg, IDC_SNAPSIZE));
+ if( g_bAutoSnapSize != nCurSelection )
+ {
+ changed = TRUE;
+ g_bAutoSnapSize = nCurSelection;
+ }
+ break;
+
+ case IDC_SELECT_EFFECT:
+ changed = SelectEffect(hDlg);
+ break;
+
+ case IDC_RESET_EFFECT:
+ changed = ResetEffect(hDlg);
+ break;
+
+ case IDC_SELECT_JOYSTICKMAP:
+ changed = SelectJoystickMap(hDlg);
+ break;
+
+ case IDC_RESET_JOYSTICKMAP:
+ changed = ResetJoystickMap(hDlg);
+ break;
+
+ case IDC_SELECT_DEBUGSCRIPT:
+ changed = SelectDebugscript(hDlg);
+ break;
+
+ case IDC_RESET_DEBUGSCRIPT:
+ changed = ResetDebugscript(hDlg);
+ break;
+
+ case IDC_PROP_RESET:
+ // RESET Button - Only do it if mouse-clicked
+ if (wNotifyCode != BN_CLICKED)
+ break;
+
+ // Change settings in property sheets back to original
+ UpdateProperties(hDlg, properties_datamap, pOrigOpts);
+ // The original options become the current options.
+ UpdateOptions(hDlg, properties_datamap, pCurrentOpts);
+
+ g_bUseDefaults = (pCurrentOpts != pDefaultOpts);
+ g_bReset = (pCurrentOpts != pOrigOpts);
+ // Turn off Apply
+ PropSheet_UnChanged(GetParent(hDlg), hDlg);
+ EnableWindow(GetDlgItem(hDlg, IDC_USE_DEFAULT), g_bUseDefaults);
+ EnableWindow(GetDlgItem(hDlg, IDC_PROP_RESET), g_bReset);
+ break;
+
+ case IDC_USE_DEFAULT:
+ // DEFAULT Button - Only do it if mouse-clicked
+ if (wNotifyCode != BN_CLICKED)
+ break;
+
+ // Change settings to be the same as mame.ini
+ UpdateProperties(hDlg, properties_datamap, pDefaultOpts);
+ // The original options become the current options.
+ UpdateOptions(hDlg, properties_datamap, pCurrentOpts);
+
+ g_bUseDefaults = (pCurrentOpts != pDefaultOpts);
+ g_bReset = (pCurrentOpts != pOrigOpts);
+ // Enable/Disable the Reset to Defaults button
+ EnableWindow(GetDlgItem(hDlg, IDC_USE_DEFAULT), g_bUseDefaults);
+ EnableWindow(GetDlgItem(hDlg, IDC_PROP_RESET), g_bReset);
+ // Tell the dialog to enable/disable the apply button.
+ if (g_nGame != GLOBAL_OPTIONS)
+ {
+ if (g_bReset)
+ PropSheet_Changed(GetParent(hDlg), hDlg);
+ else
+ PropSheet_UnChanged(GetParent(hDlg), hDlg);
+ }
+ break;
+
+ // MSH 20070813 - Update all related controls
+ case IDC_SCREENSELECT:
+ case IDC_SCREEN:
+ // NPW 3-Apr-2007: Ugh I'm only perpetuating the vile hacks in this code
+ if ((wNotifyCode == CBN_SELCHANGE) || (wNotifyCode == CBN_SELENDOK))
+ {
+ changed = datamap_read_control(properties_datamap, hDlg, pCurrentOpts, wID);
+ datamap_populate_control(properties_datamap, hDlg, pCurrentOpts, IDC_SIZES);
+ //MSH 20070814 - Hate to do this, but its either this, or update each individual
+ // control on the SCREEN tab.
+ UpdateProperties(hDlg, properties_datamap, pCurrentOpts);
+ changed = TRUE;
+ /* NOT USED *************
+ datamap_populate_control(properties_datamap, hDlg, pCurrentOpts, IDC_SCREENSELECT);
+ datamap_populate_control(properties_datamap, hDlg, pCurrentOpts, IDC_SCREEN);
+ datamap_populate_control(properties_datamap, hDlg, pCurrentOpts, IDC_REFRESH);
+ datamap_populate_control(properties_datamap, hDlg, pCurrentOpts, IDC_SIZES);
+ datamap_populate_control(properties_datamap, hDlg, pCurrentOpts, IDC_VIEW);
+ datamap_populate_control(properties_datamap, hDlg, pCurrentOpts, IDC_SWITCHRES);
+
+ if (strcmp(options_get_string(pCurrentOpts, "screen0"), options_get_string(pOrigOpts, "screen0")!=0) ||
+ strcmp(options_get_string(pCurrentOpts, "screen1"), options_get_string(pOrigOpts, "screen1")!=0) ||
+ strcmp(options_get_string(pCurrentOpts, "screen2"), options_get_string(pOrigOpts, "screen2")!=0) ||
+ strcmp(options_get_string(pCurrentOpts, "screen3"), options_get_string(pOrigOpts, "screen3")!=0))
+ changed = TRUE;
+ ************************************* */
+ }
+ break;
+ default:
+#ifdef MESS
+ if (MessPropertiesCommand(hDlg, wNotifyCode, wID, &changed))
+ break;
+#endif
+
+ // use default behavior; try to get the result out of the datamap if
+ // appropriate
+ GetClassName(hWndCtrl, szClass, ARRAY_LENGTH(szClass));
+ if (!_tcscmp(szClass, WC_COMBOBOX))
+ {
+ // combo box
+ if ((wNotifyCode == CBN_SELCHANGE) || (wNotifyCode == CBN_SELENDOK))
+ changed = datamap_read_control(properties_datamap, hDlg, pCurrentOpts, wID);
+ }
+ else if (!_tcscmp(szClass, WC_BUTTON) && (GetWindowLong(hWndCtrl, GWL_STYLE) & BS_CHECKBOX))
+ {
+ // check box
+ changed = datamap_read_control(properties_datamap, hDlg, pCurrentOpts, wID);
+ }
+ break;
+ }
+
+ if (changed == TRUE)
+ {
+ // make sure everything's copied over, to determine what's changed
+ UpdateOptions(hDlg, properties_datamap, pCurrentOpts);
+ // enable the apply button
+ PropSheet_Changed(GetParent(hDlg), hDlg);
+ g_bUseDefaults = (pCurrentOpts != pDefaultOpts);
+ g_bReset = (pCurrentOpts != pOrigOpts);
+ EnableWindow(GetDlgItem(hDlg, IDC_USE_DEFAULT), g_bUseDefaults);
+ EnableWindow(GetDlgItem(hDlg, IDC_PROP_RESET), g_bReset);
+ }
+ }
+ break;
+
+ case WM_NOTIFY:
+ {
+ // Set to true if we are exiting the properties dialog
+ //BOOL bClosing = ((LPPSHNOTIFY) lParam)->lParam; // indicates OK was clicked rather than APPLY
+
+ switch (((NMHDR *) lParam)->code)
+ {
+ //We'll need to use a CheckState Table
+ //Because this one gets called for all kinds of other things too, and not only if a check is set
+ case PSN_SETACTIVE:
+ /* Initialize the controls. */
+ UpdateProperties(hDlg, properties_datamap, pCurrentOpts);
+ g_bUseDefaults = (pCurrentOpts != pDefaultOpts);
+ g_bReset = (pCurrentOpts != pOrigOpts);
+ EnableWindow(GetDlgItem(hDlg, IDC_USE_DEFAULT), g_bUseDefaults);
+ EnableWindow(GetDlgItem(hDlg, IDC_PROP_RESET), g_bReset);
+ break;
+
+ case PSN_APPLY:
+ // Handle more than one PSN_APPLY, since this proc handles more than one
+ // property sheet and can be called multiple times when it's time to exit,
+ // and we may have already freed the windows_options.
+ //if (bClosing)
+ //{
+ //if (NULL == pCurrentOpts)
+ //return TRUE;
+ //}
+
+ // Read the datamap
+ UpdateOptions(hDlg, properties_datamap, pCurrentOpts);
+ // The current options become the original options.
+ UpdateOptions(hDlg, properties_datamap, pOrigOpts);
+
+ // Repopulate the controls? WTF? We just read them, they should be fine.
+ UpdateProperties(hDlg, properties_datamap, pCurrentOpts);
+
+ g_bUseDefaults = (pCurrentOpts != pDefaultOpts);
+ g_bReset = (pCurrentOpts != pOrigOpts);
+ EnableWindow(GetDlgItem(hDlg, IDC_USE_DEFAULT), g_bUseDefaults);
+ EnableWindow(GetDlgItem(hDlg, IDC_PROP_RESET), g_bReset);
+
+ // Save the current options
+ save_options(pCurrentOpts, g_nPropertyMode, g_nGame);
+
+ // Disable apply button
+ PropSheet_UnChanged(GetParent(hDlg), hDlg);
+ SetWindowLongPtr(hDlg, DWLP_MSGRESULT, PSNRET_NOERROR);
+
+ return TRUE;
+
+ case PSN_KILLACTIVE:
+ /* Save Changes to the options here. */
+ UpdateOptions(hDlg, properties_datamap, pCurrentOpts);
+ // Determine button states.
+ g_bUseDefaults = (pCurrentOpts != pDefaultOpts);
+ g_bReset = (pCurrentOpts != pOrigOpts);
+ EnableWindow(GetDlgItem(hDlg, IDC_USE_DEFAULT), g_bUseDefaults);
+ EnableWindow(GetDlgItem(hDlg, IDC_PROP_RESET), g_bReset);
+
+ ResetDataMap(hDlg);
+ SetWindowLongPtr(hDlg, DWLP_MSGRESULT, FALSE);
+ return 1;
+
+ case PSN_RESET:
+ // Reset to the original values. Disregard changes
+ //pCurrentOpts = pOrigOpts;
+ g_bUseDefaults = (pCurrentOpts != pDefaultOpts);
+ g_bReset = (pCurrentOpts != pOrigOpts);
+ EnableWindow(GetDlgItem(hDlg, IDC_USE_DEFAULT), g_bUseDefaults);
+ EnableWindow(GetDlgItem(hDlg, IDC_PROP_RESET), g_bReset);
+ SetWindowLongPtr(hDlg, DWLP_MSGRESULT, FALSE);
+ break;
+
+ case PSN_HELP:
+ // User wants help for this property page
+ break;
+ }
+ }
+ break;
+
+ case WM_HELP:
+ /* User clicked the ? from the upper right on a control */
+ HelpFunction((HWND)((LPHELPINFO)lParam)->hItemHandle, MAMEUICONTEXTHELP, HH_TP_HELP_WM_HELP, GetHelpIDs());
+ break;
+
+ case WM_CONTEXTMENU:
+ HelpFunction((HWND)wParam, MAMEUICONTEXTHELP, HH_TP_HELP_CONTEXTMENU, GetHelpIDs());
+ break;
+
+ }
+
+ return 0;
+}
+
+/* Read controls that are not handled in the DataMap */
+static void PropToOptions(HWND hWnd, windows_options &o)
+{
+ HWND hCtrl;
+ HWND hCtrl2;
+ HWND hCtrl3;
+ std::string error_string;
+
+ /* aspect ratio */
+ hCtrl = GetDlgItem(hWnd, IDC_ASPECTRATION);
+ hCtrl2 = GetDlgItem(hWnd, IDC_ASPECTRATIOD);
+ hCtrl3 = GetDlgItem(hWnd, IDC_ASPECT);
+ if (hCtrl && hCtrl2 && hCtrl3)
+ {
+ char aspect_option[32];
+ snprintf(aspect_option, ARRAY_LENGTH(aspect_option), "aspect%d", GetSelectedScreen(hWnd));
+
+ if (Button_GetCheck(hCtrl3))
+ {
+ o.set_value(aspect_option, "auto", OPTION_PRIORITY_CMDLINE,error_string);
+ }
+ else
+ {
+ int n = 0;
+ int d = 0;
+ TCHAR buffer[200];
+ char buffer2[200];
+
+ Edit_GetText(hCtrl, buffer, ARRAY_LENGTH(buffer));
+ _stscanf(buffer,TEXT("%d"),&n);
+
+ Edit_GetText(hCtrl2, buffer, ARRAY_LENGTH(buffer));
+ _stscanf(buffer,TEXT("%d"),&d);
+
+ if (n == 0 || d == 0)
+ {
+ n = 4;
+ d = 3;
+ }
+
+ snprintf(buffer2, sizeof(buffer2), "%d:%d", n, d);
+ o.set_value(aspect_option, buffer2, OPTION_PRIORITY_CMDLINE,error_string);
+ }
+ }
+ /* aspect ratio */
+ hCtrl = GetDlgItem(hWnd, IDC_SNAPSIZEWIDTH);
+ hCtrl2 = GetDlgItem(hWnd, IDC_SNAPSIZEHEIGHT);
+ hCtrl3 = GetDlgItem(hWnd, IDC_SNAPSIZE);
+ if (hCtrl && hCtrl2 && hCtrl3)
+ {
+ if (Button_GetCheck(hCtrl3))
+ {
+ o.set_value(OPTION_SNAPSIZE, "auto", OPTION_PRIORITY_CMDLINE,error_string);
+ }
+ else
+ {
+ int width = 0;
+ int height = 0;
+ TCHAR buffer[200];
+ char buffer2[200];
+
+ Edit_GetText(hCtrl, buffer, ARRAY_LENGTH(buffer));
+ _stscanf(buffer, TEXT("%d"), &width);
+
+ Edit_GetText(hCtrl2, buffer, ARRAY_LENGTH(buffer));
+ _stscanf(buffer, TEXT("%d"), &height);
+
+ if (width == 0 || height == 0)
+ {
+ width = 640;
+ height = 480;
+ }
+
+ snprintf(buffer2, sizeof(buffer2), "%dx%d", width, height);
+ o.set_value(OPTION_SNAPSIZE, buffer2, OPTION_PRIORITY_CMDLINE,error_string);
+ }
+ }
+}
+
+/* Update options from the dialog */
+static void UpdateOptions(HWND hDlg, datamap *map, windows_options &opts)
+{
+ /* These are always called together, so make one convenient function. */
+ datamap_read_all_controls(map, hDlg, opts);
+ PropToOptions(hDlg, opts);
+}
+
+/* Update the dialog from the options */
+static void UpdateProperties(HWND hDlg, datamap *map, windows_options &opts)
+{
+ /* These are always called together, so make one convenient function. */
+ datamap_populate_all_controls(map, hDlg, opts);
+ OptionsToProp(hDlg, opts);
+ SetPropEnabledControls(hDlg);
+}
+
+/* Populate controls that are not handled in the DataMap */
+static void OptionsToProp(HWND hWnd, windows_options& o)
+{
+ HWND hCtrl;
+ HWND hCtrl2;
+ TCHAR buf[100];
+ int n = 0;
+ int d = 0;
+ int width = 0;
+ int height = 0;
+ int res = 0;
+
+ /* video */
+
+ /* Setup refresh list based on depth. */
+ datamap_update_control(properties_datamap, hWnd, pCurrentOpts, IDC_REFRESH);
+ /* Setup Select screen*/
+ UpdateSelectScreenUI(hWnd );
+
+ hCtrl = GetDlgItem(hWnd, IDC_ASPECT);
+ if (hCtrl)
+ {
+ Button_SetCheck(hCtrl, g_bAutoAspect[GetSelectedScreen(hWnd)] ) ;
+ }
+
+ hCtrl = GetDlgItem(hWnd, IDC_SNAPSIZE);
+ if (hCtrl)
+ {
+ Button_SetCheck(hCtrl, g_bAutoSnapSize ) ;
+ }
+
+ /* Bios select list */
+ hCtrl = GetDlgItem(hWnd, IDC_BIOS);
+ if (hCtrl)
+ {
+ const char* cBuffer;
+ int i = 0;
+ int iCount = ComboBox_GetCount( hCtrl );
+ for( i=0; i< iCount; i++ )
+ {
+ cBuffer = (const char*)ComboBox_GetItemData( hCtrl, i );
+ if (strcmp(cBuffer, pCurrentOpts.value(OPTION_BIOS) ) == 0)
+ {
+ res = ComboBox_SetCurSel(hCtrl, i);
+ break;
+ }
+
+ }
+ }
+
+
+ hCtrl = GetDlgItem(hWnd, IDC_ASPECT);
+ if (hCtrl)
+ {
+ char aspect_option[32];
+ snprintf(aspect_option, ARRAY_LENGTH(aspect_option), "aspect%d", GetSelectedScreen(hWnd));
+ if( strcmp(o.value(aspect_option), "auto") == 0)
+ {
+ Button_SetCheck(hCtrl, TRUE);
+ g_bAutoAspect[GetSelectedScreen(hWnd)] = TRUE;
+ }
+ else
+ {
+ Button_SetCheck(hCtrl, FALSE);
+ g_bAutoAspect[GetSelectedScreen(hWnd)] = FALSE;
+ }
+ }
+
+ /* aspect ratio */
+ hCtrl = GetDlgItem(hWnd, IDC_ASPECTRATION);
+ hCtrl2 = GetDlgItem(hWnd, IDC_ASPECTRATIOD);
+ if (hCtrl && hCtrl2)
+ {
+ char aspect_option[32];
+ snprintf(aspect_option, ARRAY_LENGTH(aspect_option), "aspect%d", GetSelectedScreen(hWnd));
+
+ n = 0;
+ d = 0;
+ if (o.value(aspect_option))
+ {
+ if (sscanf(o.value(aspect_option), "%d:%d", &n, &d) == 2 && n != 0 && d != 0)
+ {
+ _stprintf(buf, TEXT("%d"), n);
+ Edit_SetText(hCtrl, buf);
+ _stprintf(buf, TEXT("%d"), d);
+ Edit_SetText(hCtrl2, buf);
+ }
+ else
+ {
+ Edit_SetText(hCtrl, TEXT("4"));
+ Edit_SetText(hCtrl2, TEXT("3"));
+ }
+ }
+ else
+ {
+ Edit_SetText(hCtrl, TEXT("4"));
+ Edit_SetText(hCtrl2, TEXT("3"));
+ }
+ }
+ hCtrl = GetDlgItem(hWnd, IDC_EFFECT);
+ if (hCtrl) {
+ const char* effect = o.value(OPTION_EFFECT);
+ if (effect == NULL) {
+ effect = "none";
+ std::string error_string;
+ o.set_value(OPTION_EFFECT, effect, OPTION_PRIORITY_CMDLINE,error_string);
+ }
+ win_set_window_text_utf8(hCtrl, effect);
+ }
+ hCtrl = GetDlgItem(hWnd, IDC_SNAPSIZE);
+ if (hCtrl)
+ {
+ if( strcmp(o.value(OPTION_SNAPSIZE), "auto") == 0)
+ {
+ Button_SetCheck(hCtrl, TRUE);
+ g_bAutoSnapSize = TRUE;
+ }
+ else
+ {
+ Button_SetCheck(hCtrl, FALSE);
+ g_bAutoSnapSize = FALSE;
+ }
+ }
+ /* snapshot size */
+ hCtrl = GetDlgItem(hWnd, IDC_SNAPSIZEWIDTH);
+ hCtrl2 = GetDlgItem(hWnd, IDC_SNAPSIZEHEIGHT);
+ if (hCtrl && hCtrl2)
+ {
+ n = 0;
+ d = 0;
+ if (o.value(OPTION_SNAPSIZE))
+ {
+ if (sscanf(o.value(OPTION_SNAPSIZE), "%dx%d", &width, &height) == 2 && width != 0 && height != 0)
+ {
+ _stprintf(buf, TEXT("%d"), width);
+ Edit_SetText(hCtrl, buf);
+ _stprintf(buf, TEXT("%d"), height);
+ Edit_SetText(hCtrl2, buf);
+ }
+ else
+ {
+ Edit_SetText(hCtrl, TEXT("640"));
+ Edit_SetText(hCtrl2, TEXT("480"));
+ }
+ }
+ else
+ {
+ Edit_SetText(hCtrl, TEXT("640"));
+ Edit_SetText(hCtrl2, TEXT("480"));
+ }
+ }
+ res++;
+}
+
+/* Adjust controls - tune them to the currently selected game */
+static void SetPropEnabledControls(HWND hWnd)
+{
+ //HWND hCtrl;
+ bool useart = TRUE;
+ BOOL joystick_attached = FALSE;
+ bool in_window = FALSE;
+ int nIndex = g_nGame;
+
+ // auto is a reserved word
+ bool autov = (core_stricmp(pCurrentOpts.value(OSDOPTION_VIDEO), "auto")==0);
+ bool d3d = (core_stricmp(pCurrentOpts.value(OSDOPTION_VIDEO), "d3d")==0) | autov;
+ bool ddraw = 0;//(core_stricmp(pCurrentOpts.value(OSDOPTION_VIDEO), "ddraw")==0) | autov;
+ //bool gdi = (core_stricmp(pCurrentOpts.value(OSDOPTION_VIDEO), "gdi")==0) | autov;
+
+ in_window = pCurrentOpts.bool_value(OSDOPTION_WINDOW);
+ Button_SetCheck(GetDlgItem(hWnd, IDC_ASPECT), g_bAutoAspect[GetSelectedScreen(hWnd)] );
+
+ EnableWindow(GetDlgItem(hWnd, IDC_WAITVSYNC), d3d|ddraw);
+ EnableWindow(GetDlgItem(hWnd, IDC_TRIPLE_BUFFER), d3d|ddraw);
+ EnableWindow(GetDlgItem(hWnd, IDC_PRESCALE), d3d|ddraw);
+ EnableWindow(GetDlgItem(hWnd, IDC_PRESCALEDISP), d3d|ddraw);
+ EnableWindow(GetDlgItem(hWnd, IDC_PRESCALETEXT), d3d|ddraw);
+ EnableWindow(GetDlgItem(hWnd, IDC_HWSTRETCH), ddraw && DirectDraw_HasHWStretch());
+ EnableWindow(GetDlgItem(hWnd, IDC_SWITCHRES), TRUE);
+ EnableWindow(GetDlgItem(hWnd, IDC_SYNCREFRESH), TRUE);
+ EnableWindow(GetDlgItem(hWnd, IDC_REFRESH), !in_window);
+ EnableWindow(GetDlgItem(hWnd, IDC_REFRESHTEXT), !in_window);
+ EnableWindow(GetDlgItem(hWnd, IDC_FSGAMMA), !in_window);
+ EnableWindow(GetDlgItem(hWnd, IDC_FSGAMMATEXT), !in_window);
+ EnableWindow(GetDlgItem(hWnd, IDC_FSGAMMADISP), !in_window);
+ EnableWindow(GetDlgItem(hWnd, IDC_FSBRIGHTNESS), !in_window);
+ EnableWindow(GetDlgItem(hWnd, IDC_FSBRIGHTNESSTEXT), !in_window);
+ EnableWindow(GetDlgItem(hWnd, IDC_FSBRIGHTNESSDISP), !in_window);
+ EnableWindow(GetDlgItem(hWnd, IDC_FSCONTRAST), !in_window);
+ EnableWindow(GetDlgItem(hWnd, IDC_FSCONTRASTTEXT), !in_window);
+ EnableWindow(GetDlgItem(hWnd, IDC_FSCONTRASTDISP), !in_window);
+
+ EnableWindow(GetDlgItem(hWnd, IDC_ASPECTRATIOTEXT), !g_bAutoAspect[GetSelectedScreen(hWnd)]);
+ EnableWindow(GetDlgItem(hWnd, IDC_ASPECTRATION), !g_bAutoAspect[GetSelectedScreen(hWnd)]);
+ EnableWindow(GetDlgItem(hWnd, IDC_ASPECTRATIOD), !g_bAutoAspect[GetSelectedScreen(hWnd)]);
+
+ EnableWindow(GetDlgItem(hWnd, IDC_SNAPSIZETEXT), !g_bAutoSnapSize);
+ EnableWindow(GetDlgItem(hWnd, IDC_SNAPSIZEHEIGHT), !g_bAutoSnapSize);
+ EnableWindow(GetDlgItem(hWnd, IDC_SNAPSIZEWIDTH), !g_bAutoSnapSize);
+ EnableWindow(GetDlgItem(hWnd, IDC_SNAPSIZEX), !g_bAutoSnapSize);
+
+ EnableWindow(GetDlgItem(hWnd,IDC_D3D_FILTER),d3d);
+ EnableWindow(GetDlgItem(hWnd,IDC_D3D_VERSION),(NUMD3DVERSIONS>1) & d3d);
+
+ //Switchres and D3D or ddraw enable the per screen parameters
+
+ EnableWindow(GetDlgItem(hWnd, IDC_NUMSCREENS), ddraw | d3d);
+ EnableWindow(GetDlgItem(hWnd, IDC_NUMSCREENSDISP), ddraw | d3d);
+ EnableWindow(GetDlgItem(hWnd, IDC_SCREENSELECT), ddraw | d3d);
+ EnableWindow(GetDlgItem(hWnd, IDC_SCREENSELECTTEXT), ddraw | d3d);
+
+ EnableWindow(GetDlgItem(hWnd, IDC_ARTWORK_CROP), useart);
+ EnableWindow(GetDlgItem(hWnd, IDC_BACKDROPS), useart);
+ EnableWindow(GetDlgItem(hWnd, IDC_BEZELS), useart);
+ EnableWindow(GetDlgItem(hWnd, IDC_OVERLAYS), useart);
+ EnableWindow(GetDlgItem(hWnd, IDC_CPANELS), useart);
+ EnableWindow(GetDlgItem(hWnd, IDC_MARQUEES), useart);
+ EnableWindow(GetDlgItem(hWnd, IDC_ARTMISCTEXT), useart);
+
+ /* Joystick options */
+ joystick_attached = DIJoystick.Available();
+
+ Button_Enable(GetDlgItem(hWnd,IDC_JOYSTICK), joystick_attached);
+ EnableWindow(GetDlgItem(hWnd, IDC_JDZTEXT), joystick_attached);
+ EnableWindow(GetDlgItem(hWnd, IDC_JDZDISP), joystick_attached);
+ EnableWindow(GetDlgItem(hWnd, IDC_JDZ), joystick_attached);
+ EnableWindow(GetDlgItem(hWnd, IDC_JSATTEXT), joystick_attached);
+ EnableWindow(GetDlgItem(hWnd, IDC_JSATDISP), joystick_attached);
+ EnableWindow(GetDlgItem(hWnd, IDC_JSAT), joystick_attached);
+ /* Trackball / Mouse options */
+ if (nIndex <= -1 || DriverUsesTrackball(nIndex) || DriverUsesLightGun(nIndex))
+ Button_Enable(GetDlgItem(hWnd,IDC_USE_MOUSE),TRUE);
+ else
+ Button_Enable(GetDlgItem(hWnd,IDC_USE_MOUSE),FALSE);
+
+ if (!in_window && (nIndex <= -1 || DriverUsesLightGun(nIndex)))
+ {
+ // on WinXP the Lightgun and Dual Lightgun switches are no longer supported use mouse instead
+ OSVERSIONINFOEX osvi;
+ BOOL bOsVersionInfoEx;
+ // Try calling GetVersionEx using the OSVERSIONINFOEX structure.
+ // If that fails, try using the OSVERSIONINFO structure.
+
+ ZeroMemory(&osvi, sizeof(OSVERSIONINFOEX));
+ osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
+
+ if( !(bOsVersionInfoEx = GetVersionEx ((OSVERSIONINFO *) &osvi)) )
+ {
+ osvi.dwOSVersionInfoSize = sizeof (OSVERSIONINFO);
+ bOsVersionInfoEx = GetVersionEx ( (OSVERSIONINFO *) &osvi);
+ }
+
+ if( bOsVersionInfoEx && (osvi.dwPlatformId == VER_PLATFORM_WIN32_NT) && (osvi.dwMajorVersion >= 5) )
+ {
+ BOOL use_lightgun;
+ //XP and above...
+ Button_Enable(GetDlgItem(hWnd,IDC_LIGHTGUN),FALSE);
+ use_lightgun = Button_GetCheck(GetDlgItem(hWnd,IDC_USE_MOUSE));
+ Button_Enable(GetDlgItem(hWnd,IDC_DUAL_LIGHTGUN),FALSE);
+ Button_Enable(GetDlgItem(hWnd,IDC_RELOAD),use_lightgun);
+ }
+ else
+ {
+ BOOL use_lightgun;
+ // Older than XP
+ Button_Enable(GetDlgItem(hWnd,IDC_LIGHTGUN),TRUE);
+ use_lightgun = Button_GetCheck(GetDlgItem(hWnd,IDC_LIGHTGUN));
+ Button_Enable(GetDlgItem(hWnd,IDC_DUAL_LIGHTGUN),use_lightgun);
+ Button_Enable(GetDlgItem(hWnd,IDC_RELOAD),use_lightgun);
+ }
+ }
+ else
+ {
+ Button_Enable(GetDlgItem(hWnd,IDC_LIGHTGUN),FALSE);
+ Button_Enable(GetDlgItem(hWnd,IDC_DUAL_LIGHTGUN),FALSE);
+ Button_Enable(GetDlgItem(hWnd,IDC_RELOAD),FALSE);
+ }
+
+
+ /* Sound options */
+ bool sound = (core_stricmp(pCurrentOpts.value(OSDOPTION_SOUND), "none")!=0);
+ ComboBox_Enable(GetDlgItem(hWnd, IDC_SAMPLERATE), sound);
+ EnableWindow(GetDlgItem(hWnd,IDC_VOLUME),sound);
+ EnableWindow(GetDlgItem(hWnd,IDC_RATETEXT),sound);
+ EnableWindow(GetDlgItem(hWnd,IDC_VOLUMEDISP),sound);
+ EnableWindow(GetDlgItem(hWnd,IDC_VOLUMETEXT),sound);
+ EnableWindow(GetDlgItem(hWnd,IDC_AUDIO_LATENCY),sound);
+ EnableWindow(GetDlgItem(hWnd,IDC_AUDIO_LATENCY_DISP),sound);
+ EnableWindow(GetDlgItem(hWnd,IDC_AUDIO_LATENCY_TEXT),sound);
+ SetSamplesEnabled(hWnd, nIndex, sound);
+
+ if (Button_GetCheck(GetDlgItem(hWnd, IDC_AUTOFRAMESKIP)))
+ EnableWindow(GetDlgItem(hWnd, IDC_FRAMESKIP), FALSE);
+ else
+ EnableWindow(GetDlgItem(hWnd, IDC_FRAMESKIP), 1);
+
+ if (nIndex <= -1 || DriverHasOptionalBIOS(nIndex))
+ EnableWindow(GetDlgItem(hWnd,IDC_BIOS),TRUE);
+ else
+ EnableWindow(GetDlgItem(hWnd,IDC_BIOS),FALSE);
+
+}
+
+//============================================================
+// CONTROL HELPER FUNCTIONS FOR DATA EXCHANGE
+//============================================================
+
+static BOOL RotateReadControl(datamap *map, HWND dialog, HWND control, windows_options *opts, const char *option_name)
+{
+ int selected_index = ComboBox_GetCurSel(control);
+ int original_selection = 0;
+
+ // Figure out what the original selection value is
+ if (opts->bool_value(OPTION_ROR) && !opts->bool_value(OPTION_ROL))
+ original_selection = 1;
+ else if (!opts->bool_value(OPTION_ROR) && opts->bool_value(OPTION_ROL))
+ original_selection = 2;
+ else if (!opts->bool_value(OPTION_ROTATE))
+ original_selection = 3;
+ else if (opts->bool_value(OPTION_AUTOROR))
+ original_selection = 4;
+ else if (opts->bool_value(OPTION_AUTOROL))
+ original_selection = 5;
+
+ // Any work to do? If so, make the changes and return TRUE.
+ if (selected_index != original_selection)
+ {
+ // Set the options based on the new selection.
+ std::string error_string;
+ opts->set_value(OPTION_ROR, selected_index == 1, OPTION_PRIORITY_CMDLINE,error_string);
+ opts->set_value(OPTION_ROL, selected_index == 2, OPTION_PRIORITY_CMDLINE,error_string);
+ opts->set_value(OPTION_ROTATE, selected_index != 3, OPTION_PRIORITY_CMDLINE,error_string);
+ opts->set_value(OPTION_AUTOROR, selected_index == 4, OPTION_PRIORITY_CMDLINE,error_string);
+ opts->set_value(OPTION_AUTOROL, selected_index == 5, OPTION_PRIORITY_CMDLINE,error_string);
+ return TRUE;
+ }
+
+ // No changes
+ return FALSE;
+}
+
+
+
+static BOOL RotatePopulateControl(datamap *map, HWND dialog, HWND control, windows_options *opts, const char *option_name)
+{
+ int res, selected_index = 0;
+ if (opts->bool_value(OPTION_ROR) && !opts->bool_value(OPTION_ROL))
+ selected_index = 1;
+ else if (!opts->bool_value(OPTION_ROR) && opts->bool_value(OPTION_ROL))
+ selected_index = 2;
+ else if (!opts->bool_value(OPTION_ROTATE))
+ selected_index = 3;
+ else if (opts->bool_value(OPTION_AUTOROR))
+ selected_index = 4;
+ else if (opts->bool_value(OPTION_AUTOROL))
+ selected_index = 5;
+
+ res = ComboBox_SetCurSel(control, selected_index);
+ res++;
+ return FALSE;
+}
+
+
+
+static BOOL ScreenReadControl(datamap *map, HWND dialog, HWND control, windows_options *opts, const char *option_name)
+{
+ char screen_option_name[32];
+ TCHAR *screen_option_value;
+ int selected_screen;
+ int screen_option_index;
+ char *op_val;
+ std::string error_string;
+
+ selected_screen = GetSelectedScreen(dialog);
+ screen_option_index = ComboBox_GetCurSel(control);
+ screen_option_value = (TCHAR*) ComboBox_GetItemData(control, screen_option_index);
+ snprintf(screen_option_name, ARRAY_LENGTH(screen_option_name), "screen%d", selected_screen);
+ op_val = ui_utf8_from_wstring(screen_option_value);
+ opts->set_value(screen_option_name, op_val, OPTION_PRIORITY_CMDLINE,error_string);
+ free(op_val);
+ return FALSE;
+}
+
+
+
+static BOOL ScreenPopulateControl(datamap *map, HWND dialog, HWND control, windows_options *opts, const char *option_name)
+{
+ //int iMonitors;
+ DISPLAY_DEVICE dd;
+ int res, i = 0;
+ int nSelection = 0;
+ TCHAR* t_option = 0;
+
+ /* Remove all items in the list. */
+ res = ComboBox_ResetContent(control);
+ res = ComboBox_InsertString(control, 0, TEXT("Auto"));
+ res = ComboBox_SetItemData(control, 0, (void*)ui_wstring_from_utf8("auto"));
+
+ //Dynamically populate it, by enumerating the Monitors
+ //iMonitors = GetSystemMetrics(SM_CMONITORS); // this gets the count of monitors attached
+ ZeroMemory(&dd, sizeof(dd));
+ dd.cb = sizeof(dd);
+ for(i=0; EnumDisplayDevices(NULL, i, &dd, 0); i++)
+ {
+ if( !(dd.StateFlags & DISPLAY_DEVICE_MIRRORING_DRIVER) )
+ {
+ char screen_option[32];
+
+ //we have to add 1 to account for the "auto" entry
+ res = ComboBox_InsertString(control, i+1, win_tstring_strdup(dd.DeviceName));
+ res = ComboBox_SetItemData(control, i+1, (void*)win_tstring_strdup(dd.DeviceName));
+
+ snprintf(screen_option, ARRAY_LENGTH(screen_option), "screen%d", GetSelectedScreen(dialog));
+ t_option = ui_wstring_from_utf8(opts->value(screen_option));
+ if( !t_option )
+ return FALSE;
+ if (_tcscmp(t_option, dd.DeviceName) == 0)
+ nSelection = i+1;
+ free(t_option);
+ }
+ }
+ res = ComboBox_SetCurSel(control, nSelection);
+ res++;
+ return FALSE;
+}
+
+
+
+static void ViewSetOptionName(datamap *map, HWND dialog, HWND control, char *buffer, size_t buffer_size)
+{
+ snprintf(buffer, buffer_size, "view%d", GetSelectedScreen(dialog));
+}
+
+static BOOL ViewPopulateControl(datamap *map, HWND dialog, HWND control, windows_options *opts, const char *option_name)
+{
+ int res, i;
+ int selected_index = 0;
+ char view_option[32];
+ const char *view;
+
+ // determine the view option value
+ snprintf(view_option, ARRAY_LENGTH(view_option), "view%d", GetSelectedScreen(dialog));
+ view = opts->value(view_option);
+
+ res = ComboBox_ResetContent(control);
+ for (i = 0; i < NUMVIEW; i++)
+ {
+ res = ComboBox_InsertString(control, i, g_ComboBoxView[i].m_pText);
+ res = ComboBox_SetItemData(control, i, g_ComboBoxView[i].m_pData);
+
+ if (strcmp(view, g_ComboBoxView[i].m_pData)==0)
+ selected_index = i;
+ }
+ res = ComboBox_SetCurSel(control, selected_index);
+ res++;
+ return FALSE;
+}
+
+static BOOL SnapViewPopulateControl(datamap *map, HWND dialog, HWND control, windows_options *opts, const char *option_name)
+{
+ int res, i;
+ int selected_index = 0;
+ const char *snapview;
+
+ // determine the snapview option value
+ snapview = opts->value(OPTION_SNAPVIEW);
+
+ res = ComboBox_ResetContent(control);
+ for (i = 0; i < NUMSNAPVIEW; i++)
+ {
+ res = ComboBox_InsertString(control, i, g_ComboBoxSnapView[i].m_pText);
+ res = ComboBox_SetItemData(control, i, g_ComboBoxSnapView[i].m_pData);
+
+ if (strcmp(snapview, g_ComboBoxSnapView[i].m_pData)==0)
+ selected_index = i;
+ }
+ res = ComboBox_SetCurSel(control, selected_index);
+ res++;
+ return FALSE;
+}
+
+static BOOL DefaultInputReadControl(datamap *map, HWND dialog, HWND control, windows_options *opts, const char *option_name)
+{
+ TCHAR *input_option_value;
+ int input_option_index;
+ char *op_val = NULL;
+ std::string error_string;
+
+ input_option_index = ComboBox_GetCurSel(control);
+ input_option_value = (TCHAR*) ComboBox_GetItemData(control, input_option_index);
+ op_val = ui_utf8_from_wstring(input_option_value);
+ opts->set_value(OPTION_CTRLR, input_option_index ? op_val : "", OPTION_PRIORITY_CMDLINE,error_string);
+ free(op_val);
+ return FALSE;
+}
+
+static BOOL DefaultInputPopulateControl(datamap *map, HWND dialog, HWND control, windows_options *opts, const char *option_name)
+{
+ WIN32_FIND_DATA FindFileData;
+ HANDLE hFind;
+ TCHAR *ext;
+ TCHAR root[256];
+ TCHAR path[256];
+ int selected = 0;
+ int res, index = 0;
+ LPCTSTR t_ctrlr_option = 0;
+ LPTSTR t_buf = 0;
+ const char *ctrlr_option;
+ TCHAR* t_ctrldir;
+
+ // determine the ctrlr option
+ ctrlr_option = opts->value(OPTION_CTRLR);
+ if( ctrlr_option )
+ {
+ t_buf = ui_wstring_from_utf8(ctrlr_option);
+ if( !t_buf )
+ return FALSE;
+ t_ctrlr_option = t_buf;
+ }
+ else
+ {
+ t_ctrlr_option = TEXT("");
+ }
+
+ // reset the controllers dropdown
+ res = ComboBox_ResetContent(control);
+ res = ComboBox_InsertString(control, index, TEXT("Default"));
+ res = ComboBox_SetItemData(control, index, "");
+ index++;
+
+ t_ctrldir = ui_wstring_from_utf8(GetCtrlrDir());
+ if( !t_ctrldir )
+ {
+ if( t_buf )
+ free(t_buf);
+ return FALSE;
+ }
+
+ _stprintf (path, TEXT("%s\\*.*"), t_ctrldir);
+
+ free(t_ctrldir);
+
+ hFind = FindFirstFile(path, &FindFileData);
+
+ if (hFind != INVALID_HANDLE_VALUE)
+ {
+ do
+ {
+ // copy the filename
+ _tcscpy (root,FindFileData.cFileName);
+
+ // find the extension
+ ext = _tcsrchr (root,'.');
+ if (ext)
+ {
+ // check if it's a cfg file
+ if (_tcscmp (ext, TEXT(".cfg")) == 0)
+ {
+ // and strip off the extension
+ *ext = 0;
+
+ // set the option?
+ if (!_tcscmp(root, t_ctrlr_option))
+ selected = index;
+
+ // add it as an option
+ res = ComboBox_InsertString(control, index, root);
+ res = ComboBox_SetItemData(control, index, (void*)win_tstring_strdup(root)); // FIXME - leaks memory!
+ index++;
+ }
+ }
+ }
+ while (FindNextFile (hFind, &FindFileData) != 0);
+
+ FindClose (hFind);
+ }
+
+ res = ComboBox_SetCurSel(control, selected);
+
+ if( t_buf )
+ free(t_buf);
+
+ res++;
+ return FALSE;
+}
+
+
+
+static void ResolutionSetOptionName(datamap *map, HWND dialog, HWND control, char *buffer, size_t buffer_size)
+{
+ snprintf(buffer, buffer_size, "resolution%d", GetSelectedScreen(dialog));
+}
+
+
+static BOOL ResolutionReadControl(datamap *map, HWND dialog, HWND control, windows_options *opts, const char *option_name)
+{
+ HWND refresh_control = GetDlgItem(dialog, IDC_REFRESH);
+ HWND sizes_control = GetDlgItem(dialog, IDC_SIZES);
+ int res = 0, refresh_index = 0, refresh_value = 0, width = 0, height = 0;
+ char option_value[256];
+ TCHAR buffer[256];
+ std::string error_string;
+
+ if (refresh_control && sizes_control)
+ {
+ res = ComboBox_GetText(sizes_control, buffer, ARRAY_LENGTH(buffer) - 1);
+ if (_stscanf(buffer, TEXT("%d x %d"), &width, &height) == 2)
+ {
+ refresh_index = ComboBox_GetCurSel(refresh_control);
+ refresh_value = ComboBox_GetItemData(refresh_control, refresh_index);
+ snprintf(option_value, ARRAY_LENGTH(option_value), "%dx%d@%d", width, height, refresh_value);
+ }
+ else
+ {
+ snprintf(option_value, ARRAY_LENGTH(option_value), "auto");
+ }
+ opts->set_value(option_name, option_value, OPTION_PRIORITY_CMDLINE,error_string);
+ }
+ res++;
+ return FALSE;
+}
+
+
+
+static BOOL ResolutionPopulateControl(datamap *map, HWND dialog, HWND control_, windows_options *opts, const char *option_name)
+{
+ HWND sizes_control = GetDlgItem(dialog, IDC_SIZES);
+ HWND refresh_control = GetDlgItem(dialog, IDC_REFRESH);
+ int width, height, refresh;
+ const char *option_value;
+ int sizes_index = 0;
+ int refresh_index = 0;
+ int sizes_selection = 0;
+ int refresh_selection = 0;
+ char screen_option[32];
+ const char *screen;
+ LPTSTR t_screen;
+ TCHAR buf[16];
+ int res = 0, i;
+ DEVMODE devmode;
+
+ if (sizes_control && refresh_control)
+ {
+ // determine the resolution
+ option_value = opts->value(option_name);
+ if (sscanf(option_value, "%dx%d@%d", &width, &height, &refresh) != 3)
+ {
+ width = 0;
+ height = 0;
+ refresh = 0;
+ }
+
+ // reset sizes control
+ res = ComboBox_ResetContent(sizes_control);
+ res = ComboBox_InsertString(sizes_control, sizes_index, TEXT("Auto"));
+ res = ComboBox_SetItemData(sizes_control, sizes_index, 0);
+ sizes_index++;
+
+ // reset refresh control
+ res = ComboBox_ResetContent(refresh_control);
+ res = ComboBox_InsertString(refresh_control, refresh_index, TEXT("Auto"));
+ res = ComboBox_SetItemData(refresh_control, refresh_index, 0);
+ refresh_index++;
+
+ // determine which screen we're using
+ snprintf(screen_option, ARRAY_LENGTH(screen_option), "screen%d", GetSelectedScreen(dialog));
+ screen = opts->value(screen_option);
+ t_screen = ui_wstring_from_utf8(screen);
+
+ // retrieve screen information
+ devmode.dmSize = sizeof(devmode);
+ for (i = 0; EnumDisplaySettings(t_screen, i, &devmode); i++)
+ {
+ if ((devmode.dmBitsPerPel == 32 ) // Only 32 bit depth supported by core
+ &&(devmode.dmDisplayFrequency == refresh || refresh == 0))
+ {
+ _sntprintf(buf, ARRAY_LENGTH(buf), TEXT("%li x %li"),
+ devmode.dmPelsWidth, devmode.dmPelsHeight);
+
+ if (ComboBox_FindString(sizes_control, 0, buf) == CB_ERR)
+ {
+ res = ComboBox_InsertString(sizes_control, sizes_index, buf);
+
+ if ((width == devmode.dmPelsWidth) && (height == devmode.dmPelsHeight))
+ sizes_selection = sizes_index;
+ sizes_index++;
+
+ }
+ }
+ if (devmode.dmDisplayFrequency >= 10 )
+ {
+ // I have some devmode "vga" which specifes 1 Hz, which is probably bogus, so we filter it out
+
+ _sntprintf(buf, ARRAY_LENGTH(buf), TEXT("%li Hz"), devmode.dmDisplayFrequency);
+
+ if (ComboBox_FindString(refresh_control, 0, buf) == CB_ERR)
+ {
+ res = ComboBox_InsertString(refresh_control, refresh_index, buf);
+ res = ComboBox_SetItemData(refresh_control, refresh_index, devmode.dmDisplayFrequency);
+
+ if (refresh == devmode.dmDisplayFrequency)
+ refresh_selection = refresh_index;
+
+ refresh_index++;
+ }
+ }
+ }
+ free(t_screen);
+
+ res = ComboBox_SetCurSel(sizes_control, sizes_selection);
+ res = ComboBox_SetCurSel(refresh_control, refresh_selection);
+ }
+ res++;
+ return FALSE;
+}
+
+
+/************************************************************
+ * DataMap initializers
+ ************************************************************/
+
+/* Initialize local helper variables */
+static void ResetDataMap(HWND hWnd)
+{
+ char screen_option[32];
+
+ snprintf(screen_option, ARRAY_LENGTH(screen_option), "screen%d", GetSelectedScreen(hWnd));
+
+ if (pCurrentOpts.value(screen_option) == NULL
+ || (core_stricmp(pCurrentOpts.value(screen_option), "") == 0 )
+ || (core_stricmp(pCurrentOpts.value(screen_option), "auto") == 0 ) )
+ {
+ std::string error_string;
+ pCurrentOpts.set_value(screen_option, "auto", OPTION_PRIORITY_CMDLINE,error_string);
+ }
+}
+
+
+/* Build the control mapping by adding all needed information to the DataMap */
+static void BuildDataMap(void)
+{
+ properties_datamap = datamap_create();
+
+ // core state options
+ datamap_add(properties_datamap, IDC_ENABLE_AUTOSAVE, DM_BOOL, OPTION_AUTOSAVE);
+ datamap_add(properties_datamap, IDC_SNAPVIEW, DM_STRING, OPTION_SNAPVIEW);
+ datamap_add(properties_datamap, IDC_SNAPSIZEWIDTH, DM_STRING, NULL);
+ datamap_add(properties_datamap, IDC_SNAPSIZEHEIGHT, DM_STRING, NULL);
+
+ // core performance options
+ datamap_add(properties_datamap, IDC_AUTOFRAMESKIP, DM_BOOL, OPTION_AUTOFRAMESKIP);
+ datamap_add(properties_datamap, IDC_FRAMESKIP, DM_INT, OPTION_FRAMESKIP);
+ datamap_add(properties_datamap, IDC_SECONDSTORUN, DM_INT, OPTION_SECONDS_TO_RUN);
+ datamap_add(properties_datamap, IDC_SECONDSTORUNDISP, DM_INT, OPTION_SECONDS_TO_RUN);
+ datamap_add(properties_datamap, IDC_THROTTLE, DM_BOOL, OPTION_THROTTLE);
+ datamap_add(properties_datamap, IDC_SLEEP, DM_BOOL, OPTION_SLEEP);
+ datamap_add(properties_datamap, IDC_SPEED, DM_FLOAT, OPTION_SPEED);
+ datamap_add(properties_datamap, IDC_SPEEDDISP, DM_FLOAT, OPTION_SPEED);
+ datamap_add(properties_datamap, IDC_REFRESHSPEED, DM_BOOL, OPTION_REFRESHSPEED);
+
+ // core retation options
+ datamap_add(properties_datamap, IDC_ROTATE, DM_INT, NULL);
+ // ror, rol, autoror, autorol handled by callback
+ datamap_add(properties_datamap, IDC_FLIPX, DM_BOOL, OPTION_FLIPX);
+ datamap_add(properties_datamap, IDC_FLIPY, DM_BOOL, OPTION_FLIPY);
+
+ // core artwork options
+ datamap_add(properties_datamap, IDC_ARTWORK_CROP, DM_BOOL, OPTION_ARTWORK_CROP);
+ datamap_add(properties_datamap, IDC_BACKDROPS, DM_BOOL, OPTION_USE_BACKDROPS);
+ datamap_add(properties_datamap, IDC_OVERLAYS, DM_BOOL, OPTION_USE_OVERLAYS);
+ datamap_add(properties_datamap, IDC_BEZELS, DM_BOOL, OPTION_USE_BEZELS);
+ datamap_add(properties_datamap, IDC_CPANELS, DM_BOOL, OPTION_USE_CPANELS);
+ datamap_add(properties_datamap, IDC_MARQUEES, DM_BOOL, OPTION_USE_MARQUEES);
+
+ // core screen options
+ datamap_add(properties_datamap, IDC_BRIGHTCORRECT, DM_FLOAT, OPTION_BRIGHTNESS);
+ datamap_add(properties_datamap, IDC_BRIGHTCORRECTDISP, DM_FLOAT, OPTION_BRIGHTNESS);
+ datamap_add(properties_datamap, IDC_CONTRAST, DM_FLOAT, OPTION_CONTRAST);
+ datamap_add(properties_datamap, IDC_CONTRASTDISP, DM_FLOAT, OPTION_CONTRAST);
+ datamap_add(properties_datamap, IDC_GAMMA, DM_FLOAT, OPTION_GAMMA);
+ datamap_add(properties_datamap, IDC_GAMMADISP, DM_FLOAT, OPTION_GAMMA);
+ datamap_add(properties_datamap, IDC_PAUSEBRIGHT, DM_FLOAT, OPTION_PAUSE_BRIGHTNESS);
+ datamap_add(properties_datamap, IDC_PAUSEBRIGHTDISP, DM_FLOAT, OPTION_PAUSE_BRIGHTNESS);
+
+ // core vector options
+ datamap_add(properties_datamap, IDC_BEAM, DM_FLOAT, OPTION_BEAM_WIDTH_MAX);
+ datamap_add(properties_datamap, IDC_BEAMDISP, DM_FLOAT, OPTION_BEAM_WIDTH_MAX);
+ datamap_add(properties_datamap, IDC_FLICKER, DM_FLOAT, OPTION_FLICKER);
+ datamap_add(properties_datamap, IDC_FLICKERDISP, DM_FLOAT, OPTION_FLICKER);
+
+ // core sound options
+ datamap_add(properties_datamap, IDC_SAMPLERATE, DM_INT, OPTION_SAMPLERATE);
+ datamap_add(properties_datamap, IDC_SAMPLES, DM_BOOL, OPTION_SAMPLES);
+ datamap_add(properties_datamap, IDC_SOUND_MODE, DM_STRING, OSDOPTION_SOUND);
+ datamap_add(properties_datamap, IDC_VOLUME, DM_INT, OPTION_VOLUME);
+ datamap_add(properties_datamap, IDC_VOLUMEDISP, DM_INT, OPTION_VOLUME);
+
+ // core input options
+ datamap_add(properties_datamap, IDC_COINLOCKOUT, DM_BOOL, OPTION_COIN_LOCKOUT);
+ datamap_add(properties_datamap, IDC_DEFAULT_INPUT, DM_STRING, OPTION_CTRLR);
+ datamap_add(properties_datamap, IDC_USE_MOUSE, DM_BOOL, OPTION_MOUSE);
+ datamap_add(properties_datamap, IDC_JOYSTICK, DM_BOOL, OPTION_JOYSTICK);
+ datamap_add(properties_datamap, IDC_LIGHTGUN, DM_BOOL, OPTION_LIGHTGUN);
+ datamap_add(properties_datamap, IDC_STEADYKEY, DM_BOOL, OPTION_STEADYKEY);
+ datamap_add(properties_datamap, IDC_MULTIKEYBOARD, DM_BOOL, OPTION_MULTIKEYBOARD);
+ datamap_add(properties_datamap, IDC_MULTIMOUSE, DM_BOOL, OPTION_MULTIMOUSE);
+ datamap_add(properties_datamap, IDC_RELOAD, DM_BOOL, OPTION_OFFSCREEN_RELOAD);
+
+ datamap_add(properties_datamap, IDC_JDZ, DM_FLOAT, OPTION_JOYSTICK_DEADZONE);
+ datamap_add(properties_datamap, IDC_JDZDISP, DM_FLOAT, OPTION_JOYSTICK_DEADZONE);
+ datamap_add(properties_datamap, IDC_JSAT, DM_FLOAT, OPTION_JOYSTICK_SATURATION);
+ datamap_add(properties_datamap, IDC_JSATDISP, DM_FLOAT, OPTION_JOYSTICK_SATURATION);
+ datamap_add(properties_datamap, IDC_JOYSTICKMAP, DM_STRING, OPTION_JOYSTICK_MAP);
+
+ // core input automatic enable options
+ datamap_add(properties_datamap, IDC_PADDLE, DM_STRING, OPTION_PADDLE_DEVICE);
+ datamap_add(properties_datamap, IDC_ADSTICK, DM_STRING, OPTION_ADSTICK_DEVICE);
+ datamap_add(properties_datamap, IDC_PEDAL, DM_STRING, OPTION_PEDAL_DEVICE);
+ datamap_add(properties_datamap, IDC_DIAL, DM_STRING, OPTION_DIAL_DEVICE);
+ datamap_add(properties_datamap, IDC_TRACKBALL, DM_STRING, OPTION_TRACKBALL_DEVICE);
+ datamap_add(properties_datamap, IDC_LIGHTGUNDEVICE, DM_STRING, OPTION_LIGHTGUN_DEVICE);
+ datamap_add(properties_datamap, IDC_POSITIONAL, DM_STRING, OPTION_POSITIONAL_DEVICE);
+ datamap_add(properties_datamap, IDC_MOUSE, DM_STRING, OPTION_MOUSE_DEVICE);
+
+ // core debugging options
+ datamap_add(properties_datamap, IDC_LOG, DM_BOOL, OPTION_LOG);
+ datamap_add(properties_datamap, IDC_DEBUG, DM_BOOL, OPTION_DEBUG);
+ datamap_add(properties_datamap, IDC_VERBOSE, DM_BOOL, OPTION_VERBOSE);
+ datamap_add(properties_datamap, IDC_UPDATEINPAUSE, DM_BOOL, OPTION_UPDATEINPAUSE);
+ datamap_add(properties_datamap, IDC_DEBUGSCRIPT, DM_STRING, OPTION_DEBUGSCRIPT);
+
+ // core misc options
+ datamap_add(properties_datamap, IDC_BIOS, DM_STRING, OPTION_BIOS);
+ datamap_add(properties_datamap, IDC_CHEAT, DM_BOOL, OPTION_CHEAT);
+ datamap_add(properties_datamap, IDC_SKIP_GAME_INFO, DM_BOOL, OPTION_SKIP_GAMEINFO);
+
+ // windows debugging options
+ datamap_add(properties_datamap, IDC_OSLOG, DM_BOOL, OPTION_OSLOG);
+
+ // windows performance options
+ datamap_add(properties_datamap, IDC_HIGH_PRIORITY, DM_INT, WINOPTION_PRIORITY);
+ datamap_add(properties_datamap, IDC_HIGH_PRIORITYTXT, DM_INT, WINOPTION_PRIORITY);
+
+ // windows video options
+ datamap_add(properties_datamap, IDC_VIDEO_MODE, DM_STRING, OSDOPTION_VIDEO);
+ datamap_add(properties_datamap, IDC_NUMSCREENS, DM_INT, OSDOPTION_NUMSCREENS);
+ datamap_add(properties_datamap, IDC_NUMSCREENSDISP, DM_INT, OSDOPTION_NUMSCREENS);
+ datamap_add(properties_datamap, IDC_WINDOWED, DM_BOOL, OSDOPTION_WINDOW);
+ datamap_add(properties_datamap, IDC_MAXIMIZE, DM_BOOL, OSDOPTION_MAXIMIZE);
+ datamap_add(properties_datamap, IDC_KEEPASPECT, DM_BOOL, OPTION_KEEPASPECT);
+ datamap_add(properties_datamap, IDC_PRESCALE, DM_INT, OSDOPTION_PRESCALE);
+ datamap_add(properties_datamap, IDC_PRESCALEDISP, DM_INT, OSDOPTION_PRESCALE);
+ datamap_add(properties_datamap, IDC_EFFECT, DM_STRING, OPTION_EFFECT);
+ datamap_add(properties_datamap, IDC_WAITVSYNC, DM_BOOL, OSDOPTION_WAITVSYNC);
+ datamap_add(properties_datamap, IDC_SYNCREFRESH, DM_BOOL, OSDOPTION_SYNCREFRESH);
+
+ // Direct3D specific options
+ datamap_add(properties_datamap, IDC_D3D_VERSION, DM_INT, WINOPTION_D3DVERSION);
+ datamap_add(properties_datamap, IDC_D3D_FILTER, DM_BOOL, OSDOPTION_FILTER);
+
+ // per window video options
+ datamap_add(properties_datamap, IDC_SCREEN, DM_STRING, NULL);
+ datamap_add(properties_datamap, IDC_SCREENSELECT, DM_STRING, NULL);
+ datamap_add(properties_datamap, IDC_VIEW, DM_STRING, NULL);
+ datamap_add(properties_datamap, IDC_ASPECTRATIOD, DM_STRING, NULL);
+ datamap_add(properties_datamap, IDC_ASPECTRATION, DM_STRING, NULL);
+ datamap_add(properties_datamap, IDC_REFRESH, DM_STRING, NULL);
+ datamap_add(properties_datamap, IDC_SIZES, DM_STRING, NULL);
+
+ // full screen options
+ datamap_add(properties_datamap, IDC_TRIPLE_BUFFER, DM_BOOL, WINOPTION_TRIPLEBUFFER);
+ datamap_add(properties_datamap, IDC_SWITCHRES, DM_BOOL, OSDOPTION_SWITCHRES);
+ datamap_add(properties_datamap, IDC_FSBRIGHTNESS, DM_FLOAT, WINOPTION_FULLSCREENBRIGHTNESS);
+ datamap_add(properties_datamap, IDC_FSBRIGHTNESSDISP, DM_FLOAT, WINOPTION_FULLSCREENBRIGHTNESS);
+ datamap_add(properties_datamap, IDC_FSCONTRAST, DM_FLOAT, WINOPTION_FULLSCREENCONTRAST);
+ datamap_add(properties_datamap, IDC_FSCONTRASTDISP, DM_FLOAT, WINOPTION_FULLSCREENCONTRAST);
+ datamap_add(properties_datamap, IDC_FSGAMMA, DM_FLOAT, WINOPTION_FULLSCREENGAMMA);
+ datamap_add(properties_datamap, IDC_FSGAMMADISP, DM_FLOAT, WINOPTION_FULLSCREENGAMMA);
+
+ // windows sound options
+ datamap_add(properties_datamap, IDC_AUDIO_LATENCY, DM_INT, OSDOPTION_AUDIO_LATENCY);
+ datamap_add(properties_datamap, IDC_AUDIO_LATENCY_DISP, DM_INT, OSDOPTION_AUDIO_LATENCY);
+
+ // input device options
+ datamap_add(properties_datamap, IDC_DUAL_LIGHTGUN, DM_BOOL, WINOPTION_DUAL_LIGHTGUN);
+
+ // show menu
+ datamap_add(properties_datamap, IDC_SHOW_MENU, DM_BOOL, WINOPTION_MENU);
+
+ // set up callbacks
+ datamap_set_callback(properties_datamap, IDC_ROTATE, DCT_READ_CONTROL, RotateReadControl);
+ datamap_set_callback(properties_datamap, IDC_ROTATE, DCT_POPULATE_CONTROL, RotatePopulateControl);
+ datamap_set_callback(properties_datamap, IDC_SCREEN, DCT_READ_CONTROL, ScreenReadControl);
+ datamap_set_callback(properties_datamap, IDC_SCREEN, DCT_POPULATE_CONTROL, ScreenPopulateControl);
+ datamap_set_callback(properties_datamap, IDC_VIEW, DCT_POPULATE_CONTROL, ViewPopulateControl);
+ datamap_set_callback(properties_datamap, IDC_REFRESH, DCT_READ_CONTROL, ResolutionReadControl);
+ datamap_set_callback(properties_datamap, IDC_REFRESH, DCT_POPULATE_CONTROL, ResolutionPopulateControl);
+ datamap_set_callback(properties_datamap, IDC_SIZES, DCT_READ_CONTROL, ResolutionReadControl);
+ datamap_set_callback(properties_datamap, IDC_SIZES, DCT_POPULATE_CONTROL, ResolutionPopulateControl);
+ datamap_set_callback(properties_datamap, IDC_DEFAULT_INPUT, DCT_READ_CONTROL, DefaultInputReadControl);
+ datamap_set_callback(properties_datamap, IDC_DEFAULT_INPUT, DCT_POPULATE_CONTROL, DefaultInputPopulateControl);
+ datamap_set_callback(properties_datamap, IDC_SNAPVIEW, DCT_POPULATE_CONTROL, SnapViewPopulateControl);
+
+ datamap_set_option_name_callback(properties_datamap, IDC_VIEW, ViewSetOptionName);
+ //missing population of views with per game defined additional views
+ datamap_set_option_name_callback(properties_datamap, IDC_REFRESH, ResolutionSetOptionName);
+ datamap_set_option_name_callback(properties_datamap, IDC_SIZES, ResolutionSetOptionName);
+
+
+ // formats
+ datamap_set_int_format(properties_datamap, IDC_VOLUMEDISP, "%ddB");
+ datamap_set_int_format(properties_datamap, IDC_AUDIO_LATENCY_DISP, "%d/5");
+ datamap_set_float_format(properties_datamap, IDC_BEAMDISP, "%03.2f");
+ datamap_set_float_format(properties_datamap, IDC_FLICKERDISP, "%03.2f");
+ datamap_set_float_format(properties_datamap, IDC_GAMMADISP, "%03.2f");
+ datamap_set_float_format(properties_datamap, IDC_BRIGHTCORRECTDISP, "%03.2f");
+ datamap_set_float_format(properties_datamap, IDC_CONTRASTDISP, "%03.2f");
+ datamap_set_float_format(properties_datamap, IDC_PAUSEBRIGHTDISP, "%03.2f");
+ datamap_set_float_format(properties_datamap, IDC_FSGAMMADISP, "%03.2f");
+ datamap_set_float_format(properties_datamap, IDC_FSBRIGHTNESSDISP, "%03.2f");
+ datamap_set_float_format(properties_datamap, IDC_FSCONTRASTDISP, "%03.2f");
+ datamap_set_float_format(properties_datamap, IDC_JDZDISP, "%03.2f");
+ datamap_set_float_format(properties_datamap, IDC_JSATDISP, "%03.2f");
+ datamap_set_float_format(properties_datamap, IDC_SPEEDDISP, "%03.2f");
+
+ // trackbar ranges - slider-name,start,end,step
+ datamap_set_trackbar_range(properties_datamap, IDC_JDZ, 0.00, 1.00, (float)0.05);
+ datamap_set_trackbar_range(properties_datamap, IDC_JSAT, 0.00, 1.00, (float)0.05);
+ datamap_set_trackbar_range(properties_datamap, IDC_SPEED, 0.00, 3.00, (float)0.01);
+ datamap_set_trackbar_range(properties_datamap, IDC_BEAM, (float)0.10, 10.00, (float)0.10);
+ datamap_set_trackbar_range(properties_datamap, IDC_AUDIO_LATENCY, 1, 5, 1);
+ datamap_set_trackbar_range(properties_datamap, IDC_VOLUME, -32, 0, 1);
+ datamap_set_trackbar_range(properties_datamap, IDC_SECONDSTORUN, 0, 60, 1);
+ datamap_set_trackbar_range(properties_datamap, IDC_NUMSCREENS, 1, 4, 1);
+ datamap_set_trackbar_range(properties_datamap, IDC_PRESCALE, 1, 3, 1);
+ datamap_set_trackbar_range(properties_datamap, IDC_FSGAMMA, 0.0, 3.0, (float)0.1);
+ datamap_set_trackbar_range(properties_datamap, IDC_FSBRIGHTNESS, 0.00, 2.0, (float)0.1);
+ datamap_set_trackbar_range(properties_datamap, IDC_FSCONTRAST, 0.0, 2.0, (float)0.1);
+ datamap_set_trackbar_range(properties_datamap, IDC_GAMMA, 0.0, 3.0, (float)0.1);
+ datamap_set_trackbar_range(properties_datamap, IDC_BRIGHTCORRECT, 0.00, 2.0, (float)0.1);
+ datamap_set_trackbar_range(properties_datamap, IDC_CONTRAST, 0.0, 2.0, (float)0.1);
+ datamap_set_trackbar_range(properties_datamap, IDC_PAUSEBRIGHT, 0.00, 1.00, (float)0.05);
+
+#ifdef MESS
+ // MESS specific stuff
+ datamap_add(properties_datamap, IDC_DIR_LIST, DM_STRING, NULL);
+ datamap_add(properties_datamap, IDC_RAM_COMBOBOX, DM_INT, OPTION_RAMSIZE);
+
+ // set up callbacks
+ datamap_set_callback(properties_datamap, IDC_DIR_LIST, DCT_READ_CONTROL, DirListReadControl);
+ datamap_set_callback(properties_datamap, IDC_DIR_LIST, DCT_POPULATE_CONTROL, DirListPopulateControl);
+ datamap_set_callback(properties_datamap, IDC_RAM_COMBOBOX, DCT_POPULATE_CONTROL, RamPopulateControl);
+#endif
+}
+
+
+static void SetSamplesEnabled(HWND hWnd, int nIndex, BOOL bSoundEnabled)
+{
+ BOOL enabled = FALSE;
+ HWND hCtrl;
+
+ hCtrl = GetDlgItem(hWnd, IDC_SAMPLES);
+
+
+ if (hCtrl)
+ {
+ if ( nIndex > -1 )
+ {
+ machine_config config(driver_list::driver(nIndex),pCurrentOpts);
+
+ for (device_sound_interface &sound : sound_interface_iterator(config.root_device()))
+ {
+ if (sound.device().type() == SAMPLES)
+ enabled = TRUE;
+ }
+ }
+ enabled = enabled && bSoundEnabled;
+ EnableWindow(hCtrl, enabled);
+ }
+}
+
+/* Moved here cause it's called in a few places */
+static void InitializeOptions(HWND hDlg)
+{
+ InitializeSoundUI(hDlg);
+ InitializeSkippingUI(hDlg);
+ InitializeRotateUI(hDlg);
+ InitializeSelectScreenUI(hDlg);
+ InitializeBIOSUI(hDlg);
+ InitializeControllerMappingUI(hDlg);
+ InitializeD3DVersionUI(hDlg);
+ InitializeVideoUI(hDlg);
+}
+
+/* Moved here because it is called in several places */
+static void InitializeMisc(HWND hDlg)
+{
+ Button_Enable(GetDlgItem(hDlg, IDC_JOYSTICK), DIJoystick.Available());
+}
+
+static void OptOnHScroll(HWND hwnd, HWND hwndCtl, UINT code, int pos)
+{
+ if (hwndCtl == GetDlgItem(hwnd, IDC_NUMSCREENS))
+ NumScreensSelectionChange(hwnd);
+}
+
+/* Handle changes to the Numscreens slider */
+static void NumScreensSelectionChange(HWND hwnd)
+{
+ //Also Update the ScreenSelect Combo with the new number of screens
+ UpdateSelectScreenUI(hwnd );
+}
+
+/* Handle changes to the Refresh drop down */
+static void RefreshSelectionChange(HWND hWnd, HWND hWndCtrl)
+{
+ int nCurSelection = ComboBox_GetCurSel(hWndCtrl);
+
+ if (nCurSelection != CB_ERR)
+ {
+ datamap_read_control(properties_datamap, hWnd, pCurrentOpts, IDC_SIZES);
+ datamap_populate_control(properties_datamap, hWnd, pCurrentOpts, IDC_SIZES);
+ }
+}
+
+/* Initialize the sound options */
+static void InitializeSoundUI(HWND hwnd)
+{
+ HWND hCtrl;
+ int res = 0, i;
+
+ hCtrl = GetDlgItem(hwnd, IDC_SOUND_MODE);
+ if (hCtrl)
+ {
+ for (i = 0; i < NUMSOUND; i++)
+ {
+ res = ComboBox_InsertString(hCtrl, i, g_ComboBoxSound[i].m_pText);
+ res = ComboBox_SetItemData( hCtrl, i, g_ComboBoxSound[i].m_pData);
+ }
+ }
+
+ i = 0;
+
+ hCtrl = GetDlgItem(hwnd, IDC_SAMPLERATE);
+ if (hCtrl)
+ {
+ res = ComboBox_AddString(hCtrl, TEXT("11025"));
+ res = ComboBox_SetItemData(hCtrl, i++, 11025);
+ res = ComboBox_AddString(hCtrl, TEXT("22050"));
+ res = ComboBox_SetItemData(hCtrl, i++, 22050);
+ res = ComboBox_AddString(hCtrl, TEXT("44100"));
+ res = ComboBox_SetItemData(hCtrl, i++, 44100);
+ res = ComboBox_AddString(hCtrl, TEXT("48000"));
+ res = ComboBox_SetItemData(hCtrl, i++, 48000);
+ res = ComboBox_SetCurSel(hCtrl, 1);
+ }
+ res++;
+}
+
+/* Populate the Frame Skipping drop down */
+static void InitializeSkippingUI(HWND hwnd)
+{
+ HWND hCtrl = GetDlgItem(hwnd, IDC_FRAMESKIP);
+ int res = 0, i = 0;
+
+ if (hCtrl)
+ {
+ res = ComboBox_AddString(hCtrl, TEXT("Draw every frame"));
+ res = ComboBox_SetItemData(hCtrl, i++, 0);
+ res = ComboBox_AddString(hCtrl, TEXT("Skip 1 frame"));
+ res = ComboBox_SetItemData(hCtrl, i++, 1);
+ res = ComboBox_AddString(hCtrl, TEXT("Skip 2 frames"));
+ res = ComboBox_SetItemData(hCtrl, i++, 2);
+ res = ComboBox_AddString(hCtrl, TEXT("Skip 3 frames"));
+ res = ComboBox_SetItemData(hCtrl, i++, 3);
+ res = ComboBox_AddString(hCtrl, TEXT("Skip 4 frames"));
+ res = ComboBox_SetItemData(hCtrl, i++, 4);
+ res = ComboBox_AddString(hCtrl, TEXT("Skip 5 frames"));
+ res = ComboBox_SetItemData(hCtrl, i++, 5);
+ res = ComboBox_AddString(hCtrl, TEXT("Skip 6 frames"));
+ res = ComboBox_SetItemData(hCtrl, i++, 6);
+ res = ComboBox_AddString(hCtrl, TEXT("Skip 7 frames"));
+ res = ComboBox_SetItemData(hCtrl, i++, 7);
+ res = ComboBox_AddString(hCtrl, TEXT("Skip 8 frames"));
+ res = ComboBox_SetItemData(hCtrl, i++, 8);
+ res = ComboBox_AddString(hCtrl, TEXT("Skip 9 frames"));
+ res = ComboBox_SetItemData(hCtrl, i++, 9);
+ res = ComboBox_AddString(hCtrl, TEXT("Skip 10 frames"));
+ res = ComboBox_SetItemData(hCtrl, i++, 10);
+ }
+ res++;
+}
+
+/* Populate the Rotate drop down */
+static void InitializeRotateUI(HWND hwnd)
+{
+ HWND hCtrl = GetDlgItem(hwnd, IDC_ROTATE);
+ int res = 0;
+
+ if (hCtrl)
+ {
+ res = ComboBox_AddString(hCtrl, TEXT("Default")); // 0
+ res = ComboBox_AddString(hCtrl, TEXT("Clockwise")); // 1
+ res = ComboBox_AddString(hCtrl, TEXT("Anti-clockwise")); // 2
+ res = ComboBox_AddString(hCtrl, TEXT("None")); // 3
+ res = ComboBox_AddString(hCtrl, TEXT("Auto clockwise")); // 4
+ res = ComboBox_AddString(hCtrl, TEXT("Auto anti-clockwise")); // 5
+ }
+ res++;
+}
+
+/* Populate the Video Mode drop down */
+static void InitializeVideoUI(HWND hwnd)
+{
+ HWND hCtrl;
+ int res = 0;
+
+ hCtrl = GetDlgItem(hwnd, IDC_VIDEO_MODE);
+ if (hCtrl)
+ {
+ int i;
+ for (i = 0; i < NUMVIDEO; i++)
+ {
+ res = ComboBox_InsertString(hCtrl, i, g_ComboBoxVideo[i].m_pText);
+ res = ComboBox_SetItemData( hCtrl, i, g_ComboBoxVideo[i].m_pData);
+ }
+ }
+ res++;
+}
+
+/* Populate the D3D Version drop down */
+static void InitializeD3DVersionUI(HWND hwnd)
+{
+ HWND hCtrl = GetDlgItem(hwnd, IDC_D3D_VERSION);
+ int res = 0, i;
+ if (hCtrl)
+ {
+ for (i = 0; i < NUMD3DVERSIONS; i++)
+ {
+ res = ComboBox_InsertString(hCtrl, i, g_ComboBoxD3DVersion[i].m_pText);
+ res = ComboBox_SetItemData( hCtrl, i, g_ComboBoxD3DVersion[i].m_pData);
+ }
+ }
+ res++;
+}
+
+static void UpdateSelectScreenUI(HWND hwnd)
+{
+ int res = 0, i, curSel;
+ HWND hCtrl = GetDlgItem(hwnd, IDC_SCREENSELECT);
+ if (hCtrl)
+ {
+ curSel = ComboBox_GetCurSel(hCtrl);
+ if ((curSel < 0) || (curSel >= NUMSELECTSCREEN))
+ curSel = 0;
+ res = ComboBox_ResetContent(hCtrl);
+ for (i = 0; i < NUMSELECTSCREEN && i < pCurrentOpts.int_value(OSDOPTION_NUMSCREENS) ; i++)
+ {
+ res = ComboBox_InsertString(hCtrl, i, g_ComboBoxSelectScreen[i].m_pText);
+ res = ComboBox_SetItemData( hCtrl, i, g_ComboBoxSelectScreen[i].m_pData);
+ }
+ // Smaller Amount of screens was selected, so use 0
+ if( i < curSel )
+ res = ComboBox_SetCurSel(hCtrl, 0);
+ else
+ res = ComboBox_SetCurSel(hCtrl, curSel);
+ }
+ res++;
+}
+
+/* Populate the Select Screen drop down */
+static void InitializeSelectScreenUI(HWND hwnd)
+{
+ UpdateSelectScreenUI(hwnd);
+}
+
+static void InitializeControllerMappingUI(HWND hwnd)
+{
+ int res = 0, i;
+ HWND hCtrl = GetDlgItem(hwnd,IDC_PADDLE);
+ HWND hCtrl1 = GetDlgItem(hwnd,IDC_ADSTICK);
+ HWND hCtrl2 = GetDlgItem(hwnd,IDC_PEDAL);
+ HWND hCtrl3 = GetDlgItem(hwnd,IDC_MOUSE);
+ HWND hCtrl4 = GetDlgItem(hwnd,IDC_DIAL);
+ HWND hCtrl5 = GetDlgItem(hwnd,IDC_TRACKBALL);
+ HWND hCtrl6 = GetDlgItem(hwnd,IDC_LIGHTGUNDEVICE);
+ HWND hCtrl7 = GetDlgItem(hwnd,IDC_POSITIONAL);
+
+ for (i = 0; i < NUMDEVICES; i++)
+ {
+ if (hCtrl)
+ {
+ res = ComboBox_InsertString(hCtrl, i, g_ComboBoxDevice[i].m_pText);
+ res = ComboBox_SetItemData( hCtrl, i, g_ComboBoxDevice[i].m_pData);
+ }
+
+ if (hCtrl1)
+ {
+ res = ComboBox_InsertString(hCtrl1, i, g_ComboBoxDevice[i].m_pText);
+ res = ComboBox_SetItemData( hCtrl1, i, g_ComboBoxDevice[i].m_pData);
+ }
+
+ if (hCtrl2)
+ {
+ res = ComboBox_InsertString(hCtrl2, i, g_ComboBoxDevice[i].m_pText);
+ res = ComboBox_SetItemData( hCtrl2, i, g_ComboBoxDevice[i].m_pData);
+ }
+
+ if (hCtrl3)
+ {
+ res = ComboBox_InsertString(hCtrl3, i, g_ComboBoxDevice[i].m_pText);
+ res = ComboBox_SetItemData( hCtrl3, i, g_ComboBoxDevice[i].m_pData);
+ }
+
+ if (hCtrl4)
+ {
+ res = ComboBox_InsertString(hCtrl4, i, g_ComboBoxDevice[i].m_pText);
+ res = ComboBox_SetItemData( hCtrl4, i, g_ComboBoxDevice[i].m_pData);
+ }
+
+ if (hCtrl5)
+ {
+ res = ComboBox_InsertString(hCtrl5, i, g_ComboBoxDevice[i].m_pText);
+ res = ComboBox_SetItemData( hCtrl5, i, g_ComboBoxDevice[i].m_pData);
+ }
+
+ if (hCtrl6)
+ {
+ res = ComboBox_InsertString(hCtrl6, i, g_ComboBoxDevice[i].m_pText);
+ res = ComboBox_SetItemData( hCtrl6, i, g_ComboBoxDevice[i].m_pData);
+ }
+
+ if (hCtrl7)
+ {
+ res = ComboBox_InsertString(hCtrl7, i, g_ComboBoxDevice[i].m_pText);
+ res = ComboBox_SetItemData( hCtrl7, i, g_ComboBoxDevice[i].m_pData);
+ }
+ }
+ res++;
+}
+
+
+static void InitializeBIOSUI(HWND hwnd)
+{
+ HWND hCtrl = GetDlgItem(hwnd,IDC_BIOS);
+ int res = 0, i = 0;
+ TCHAR* t_s;
+ if (hCtrl)
+ {
+ const game_driver *gamedrv = &driver_list::driver(g_nGame);
+ const rom_entry *rom;
+
+ if (g_nGame == GLOBAL_OPTIONS)
+ {
+ res = ComboBox_InsertString(hCtrl, i, TEXT("None"));
+ res = ComboBox_SetItemData( hCtrl, i++, "");
+ return;
+ }
+ if (g_nGame == LOCAL_OPTIONS) //Folder Options: This is the only place that LOCAL_OPTIONS is used, is this code ever executed?
+ {
+ gamedrv = &driver_list::driver(g_nFolderGame);
+ if (DriverHasOptionalBIOS(g_nFolderGame) == FALSE)
+ {
+ res = ComboBox_InsertString(hCtrl, i, TEXT("None"));
+ res = ComboBox_SetItemData( hCtrl, i++, "");
+ return;
+ }
+ res = ComboBox_InsertString(hCtrl, i, TEXT("Default"));
+ res = ComboBox_SetItemData( hCtrl, i++, "");
+
+ if (gamedrv->rom)
+ {
+ auto rom_entries = rom_build_entries(gamedrv->rom);
+ for (rom = rom_entries.data(); !ROMENTRY_ISEND(rom); rom++)
+ {
+ if (ROMENTRY_ISSYSTEM_BIOS(rom))
+ {
+ const char *name = ROM_GETHASHDATA(rom);
+ const char *biosname = ROM_GETNAME(rom);
+ t_s = ui_wstring_from_utf8(name);
+ if( !t_s )
+ return;
+ res = ComboBox_InsertString(hCtrl, i, win_tstring_strdup(t_s));
+ res = ComboBox_SetItemData( hCtrl, i++, biosname);
+ free(t_s);
+ }
+ }
+ }
+ return;
+ }
+
+ if (DriverHasOptionalBIOS(g_nGame) == FALSE)
+ {
+ res = ComboBox_InsertString(hCtrl, i, TEXT("None"));
+ res = ComboBox_SetItemData( hCtrl, i++, "");
+ return;
+ }
+ res = ComboBox_InsertString(hCtrl, i, TEXT("Default"));
+ res = ComboBox_SetItemData( hCtrl, i++, "");
+
+ if (gamedrv->rom)
+ {
+ auto rom_entries = rom_build_entries(gamedrv->rom);
+ for (rom = rom_entries.data(); !ROMENTRY_ISEND(rom); rom++)
+ {
+ if (ROMENTRY_ISSYSTEM_BIOS(rom))
+ {
+ const char *name = ROM_GETHASHDATA(rom);
+ const char *biosname = ROM_GETNAME(rom);
+ t_s = ui_wstring_from_utf8(name);
+ if( !t_s )
+ return;
+ res = ComboBox_InsertString(hCtrl, i, win_tstring_strdup(t_s));
+ res = ComboBox_SetItemData( hCtrl, i++, biosname);
+ free(t_s);
+ }
+ }
+ }
+ }
+ res++;
+}
+
+static BOOL SelectEffect(HWND hWnd)
+{
+ char filename[MAX_PATH];
+ BOOL changed = FALSE;
+
+ *filename = 0;
+ if (CommonFileDialog(GetOpenFileName, filename, FILETYPE_EFFECT_FILES))
+ {
+ //strip Path and extension
+ char buff[MAX_PATH];
+ int i, j = 0, k = 0, l = 0;
+ for(i=0; i<strlen(filename); i++ )
+ {
+ if( filename[i] == '\\' )
+ j = i;
+ if( filename[i] == '.' )
+ k = i;
+ }
+ for(i=j+1;i<k;i++)
+ {
+ buff[l++] = filename[i];
+ }
+ buff[l] = '\0';
+
+ if (strcmp(buff, pCurrentOpts.value(OPTION_EFFECT))!=0)
+ {
+ HWND control = GetDlgItem(hWnd, IDC_EFFECT);
+ std::string error_string;
+ pCurrentOpts.set_value(OPTION_EFFECT, buff, OPTION_PRIORITY_CMDLINE,error_string);
+ win_set_window_text_utf8(control, buff);
+ // datamap_populate_control(properties_datamap, hWnd, pCurrentOpts, IDC_EFFECT);
+ changed = TRUE;
+ }
+ }
+ return changed;
+}
+
+static BOOL ResetEffect(HWND hWnd)
+{
+ BOOL changed = FALSE;
+ const char *new_value = "none";
+
+ if (strcmp(new_value, pCurrentOpts.value(OPTION_EFFECT))!=0)
+ {
+ HWND control = GetDlgItem(hWnd, IDC_EFFECT);
+ std::string error_string;
+ pCurrentOpts.set_value(OPTION_EFFECT, new_value, OPTION_PRIORITY_CMDLINE,error_string);
+ win_set_window_text_utf8(control, new_value);
+ // datamap_populate_control(properties_datamap, hWnd, pCurrentOpts, IDC_EFFECT);
+ changed = TRUE;
+ }
+ return changed;
+}
+
+static BOOL SelectJoystickMap(HWND hWnd)
+{
+ char filename[MAX_PATH];
+ BOOL changed = FALSE;
+
+ *filename = 0;
+ if (CommonFileDialog(GetOpenFileName, filename, FILETYPE_JOYMAP_FILES))
+ {
+ if (strcmp(filename, pCurrentOpts.value(OPTION_JOYSTICK_MAP))!=0)
+ {
+ HWND control = GetDlgItem(hWnd, IDC_JOYSTICKMAP);
+ std::string error_string;
+ pCurrentOpts.set_value(OPTION_JOYSTICK_MAP, filename, OPTION_PRIORITY_CMDLINE,error_string);
+ win_set_window_text_utf8(control, filename);
+ changed = TRUE;
+ }
+ }
+ return changed;
+}
+
+static BOOL ResetJoystickMap(HWND hWnd)
+{
+ BOOL changed = FALSE;
+ const char *new_value = "auto";
+
+ if (strcmp(new_value, pCurrentOpts.value(OPTION_JOYSTICK_MAP))!=0)
+ {
+ HWND control = GetDlgItem(hWnd, IDC_JOYSTICKMAP);
+ std::string error_string;
+ pCurrentOpts.set_value(OPTION_JOYSTICK_MAP, new_value, OPTION_PRIORITY_CMDLINE,error_string);
+ win_set_window_text_utf8(control, new_value);
+ changed = TRUE;
+ }
+ return changed;
+}
+
+static BOOL SelectDebugscript(HWND hWnd)
+{
+ char filename[MAX_PATH];
+ BOOL changed = FALSE;
+
+ *filename = 0;
+ if (CommonFileDialog(GetOpenFileName, filename, FILETYPE_DEBUGSCRIPT_FILES))
+ {
+ if (strcmp(filename, pCurrentOpts.value(OPTION_DEBUGSCRIPT))!=0)
+ {
+ HWND control = GetDlgItem(hWnd, IDC_DEBUGSCRIPT);
+ std::string error_string;
+ pCurrentOpts.set_value(OPTION_DEBUGSCRIPT, filename, OPTION_PRIORITY_CMDLINE,error_string);
+ win_set_window_text_utf8(control, filename);
+ changed = TRUE;
+ }
+ }
+ return changed;
+}
+
+static BOOL ResetDebugscript(HWND hWnd)
+{
+ BOOL changed = FALSE;
+ const char *new_value = "";
+
+ if (strcmp(new_value, pCurrentOpts.value(OPTION_DEBUGSCRIPT))!=0)
+ {
+ HWND control = GetDlgItem(hWnd, IDC_DEBUGSCRIPT);
+ std::string error_string;
+ pCurrentOpts.set_value(OPTION_DEBUGSCRIPT, new_value, OPTION_PRIORITY_CMDLINE,error_string);
+ win_set_window_text_utf8(control, new_value);
+ changed = TRUE;
+ }
+ return changed;
+}
+
+void UpdateBackgroundBrush(HWND hwndTab)
+{
+ // Destroy old brush
+ if (hBkBrush)
+ DeleteBrush(hBkBrush);
+
+ hBkBrush = NULL;
+
+ // Only do this if the theme is active
+ if (SafeIsAppThemed())
+ {
+ RECT rc;
+ HDC hDC, hDCMem;
+ HBITMAP hBmp, hBmpOld;
+ // Get tab control dimensions
+ GetWindowRect( hwndTab, &rc);
+
+ // Get the tab control DC
+ hDC = GetDC(hwndTab);
+
+ // Create a compatible DC
+ hDCMem = CreateCompatibleDC(hDC);
+ hBmp = CreateCompatibleBitmap(hDC, rc.right - rc.left, rc.bottom - rc.top);
+ hBmpOld = (HBITMAP)(SelectObject(hDCMem, hBmp));
+
+ // Tell the tab control to paint in our DC
+ SendMessage(hwndTab, WM_PRINTCLIENT, (WPARAM)(hDCMem), (LPARAM)(PRF_ERASEBKGND | PRF_CLIENT | PRF_NONCLIENT));
+
+ // Create a pattern brush from the bitmap selected in our DC
+ hBkBrush = CreatePatternBrush(hBmp);
+
+ // Restore the bitmap
+ SelectObject(hDCMem, hBmpOld);
+
+ // Cleanup
+ DeleteBitmap(hBmp);
+ DeleteDC(hDCMem);
+ ReleaseDC(hwndTab, hDC);
+ }
+}
+
+
+// from propertiesms.cpp (MESSUI)
+
+
+//============================================================
+#ifdef MESS
+//============================================================
+// DATAMAP HANDLERS FOR MESS
+//============================================================
+
+static void AppendList(HWND hList, LPCTSTR lpItem, int nItem)
+{
+ LV_ITEM Item;
+ HRESULT res;
+ memset(&Item, 0, sizeof(LV_ITEM));
+ Item.mask = LVIF_TEXT;
+ Item.pszText = (LPTSTR) lpItem;
+ Item.iItem = nItem;
+ res = ListView_InsertItem(hList, &Item);
+ res++;
+}
+
+static BOOL DirListReadControl(datamap *map, HWND dialog, HWND control, windows_options *opts, const char *option_name)
+{
+ int directory_count;
+ LV_ITEM lvi;
+ TCHAR buffer[2048];
+ int i, pos = 0;
+ BOOL res;
+
+ // determine the directory count; note that one item is the "< >" entry
+ directory_count = ListView_GetItemCount(control);
+ if (directory_count > 0)
+ directory_count--;
+
+ buffer[0] = '\0';
+
+ for (i = 0; i < directory_count; i++)
+ {
+ // append a semicolon, if we're past the first entry
+ if (i > 0)
+ pos += _sntprintf(&buffer[pos], ARRAY_LENGTH(buffer) - pos, TEXT(";"));
+
+ // retrieve the next entry
+ memset(&lvi, '\0', sizeof(lvi));
+ lvi.mask = LVIF_TEXT;
+ lvi.iItem = i;
+ lvi.pszText = &buffer[pos];
+ lvi.cchTextMax = ARRAY_LENGTH(buffer) - pos;
+ res = ListView_GetItem(control, &lvi);
+
+ // advance the position
+ pos += _tcslen(&buffer[pos]);
+ }
+
+ const char* paths = ui_utf8_from_wstring(buffer);
+ if ((buffer[1] == 0x3A) || (buffer[0] == 0)) // must be a folder or null
+ {
+ std::string error_string;
+ pCurrentOpts.set_value(OPTION_SWPATH, paths, OPTION_PRIORITY_CMDLINE, error_string);
+ }
+ res++;
+ return TRUE;
+}
+
+
+static BOOL DirListPopulateControl(datamap *map, HWND dialog, HWND control, windows_options *opts, const char *option_name)
+{
+ int driver_index, pos, new_pos, current_item;
+ TCHAR *s;
+ LV_COLUMN lvc;
+ RECT r;
+ HRESULT res;
+ BOOL b_res;
+
+ // access the directory list, and convert to TCHARs
+ driver_index = PropertiesCurrentGame(dialog);
+ windows_options o;
+ load_options(o, OPTIONS_GAME, driver_index);
+ const char* paths = o.value(OPTION_SWPATH);
+ TCHAR* t_dir_list = ui_wstring_from_utf8(paths);
+ paths = 0;
+ if (!t_dir_list)
+ return FALSE;
+
+ // delete all items in the list control
+ b_res = ListView_DeleteAllItems(control);
+
+ // add the column
+ GetClientRect(control, &r);
+ memset(&lvc, 0, sizeof(LVCOLUMN));
+ lvc.mask = LVCF_WIDTH;
+ lvc.cx = r.right - r.left - GetSystemMetrics(SM_CXHSCROLL);
+ res = ListView_InsertColumn(control, 0, &lvc);
+
+ // add each of the directories
+ pos = 0;
+ current_item = 0;
+ while(t_dir_list[pos] != '\0')
+ {
+ // parse off this item
+ s = _tcschr(&t_dir_list[pos], ';');
+ if (s)
+ {
+ *s = '\0';
+ new_pos = s - t_dir_list + 1;
+ }
+ else
+ new_pos = pos + _tcslen(&t_dir_list[pos]);
+
+ // append this item
+ AppendList(control, &t_dir_list[pos], current_item);
+
+ // advance to next item
+ pos = new_pos;
+ current_item++;
+ }
+
+ // finish up
+ AppendList(control, TEXT(DIRLIST_NEWENTRYTEXT), current_item);
+ ListView_SetItemState(control, 0, LVIS_SELECTED, LVIS_SELECTED);
+ free(t_dir_list);
+ res++;
+ b_res++;
+ return TRUE;
+}
+
+
+
+static const char *messram_string(char *buffer, UINT32 ram)
+{
+ const char *suffix;
+
+ if ((ram % (1024*1024)) == 0)
+ {
+ ram /= 1024*1024;
+ suffix = "m";
+ }
+ else if ((ram % 1024) == 0)
+ {
+ ram /= 1024;
+ suffix = "k";
+ }
+ else
+ suffix = "";
+
+ sprintf(buffer, "%u%s", ram, suffix);
+ return buffer;
+}
+
+static BOOL RamPopulateControl(datamap *map, HWND dialog, HWND control, windows_options *opts, const char *option_name)
+{
+ int res = 0, i = 0, current_index, driver_index;
+ const game_driver *gamedrv;
+ UINT32 ram, current_ram;
+ const char *this_ram_string;
+ TCHAR* t_ramstring;
+
+ // identify the driver
+ driver_index = PropertiesCurrentGame(dialog);
+ gamedrv = &driver_list::driver(driver_index);
+
+ // clear out the combo box
+ res = ComboBox_ResetContent(control);
+
+ // allocate the machine config
+ machine_config cfg(*gamedrv,*opts);
+
+ // identify how many options that we have
+ ram_device_iterator iter(cfg.root_device());
+ ram_device *device = iter.first();
+
+ EnableWindow(control, (device != NULL));
+
+ // we can only do something meaningful if there is more than one option
+ if (device)
+ {
+ const ram_device *ramdev = dynamic_cast<const ram_device *>(device);
+
+ // identify the current amount of RAM
+ this_ram_string = opts->value(OPTION_RAMSIZE);
+ current_ram = (this_ram_string != NULL) ? ramdev->parse_string(this_ram_string) : 0;
+ if (current_ram == 0)
+ current_ram = ramdev->default_size();
+
+ // by default, assume index 0
+ current_index = 0;
+
+ {
+ char tmpval[20] ;
+ ram = ramdev->default_size();
+ messram_string(tmpval,ram);
+ t_ramstring = ui_wstring_from_utf8(tmpval);
+ if( !t_ramstring )
+ return FALSE;
+
+ res = ComboBox_InsertString(control, i, win_tstring_strdup(t_ramstring));
+ res = ComboBox_SetItemData(control, i, ram);
+
+ free(t_ramstring);
+ }
+ if (ramdev->extra_options())
+ {
+ int j;
+ int size = strlen(ramdev->extra_options());
+ char * const s = core_strdup(ramdev->extra_options());
+ char * const e = s + size;
+ char *p = s;
+ for (j=0;j<size;j++)
+ if (p[j]==',')
+ p[j]=0;
+
+ /* try to parse each option */
+ while(p <= e)
+ {
+ i++;
+ // identify this option
+ ram = ramdev->parse_string(p);
+
+ this_ram_string = p;
+
+ t_ramstring = ui_wstring_from_utf8(this_ram_string);
+ if( !t_ramstring )
+ return FALSE;
+
+ // add this option to the combo box
+ res = ComboBox_InsertString(control, i, win_tstring_strdup(t_ramstring));
+ res = ComboBox_SetItemData(control, i, ram);
+
+ free(t_ramstring);
+
+ // is this the current option? record the index if so
+ if (ram == current_ram)
+ current_index = i;
+
+ p+= strlen(p);
+ if (p == e)
+ break;
+
+ p++;
+ }
+
+ free(s);
+ }
+
+ // set the combo box
+ res = ComboBox_SetCurSel(control, current_index);
+ }
+ res++;
+ return TRUE;
+}
+
+
+static void MarkChanged(HWND hDlg)
+{
+ HWND hCtrl;
+
+ /* fake a CBN_SELCHANGE event from IDC_SIZES to force it to be changed */
+ hCtrl = GetDlgItem(hDlg, IDC_SIZES);
+ PostMessage(hDlg, WM_COMMAND, (CBN_SELCHANGE << 16) | IDC_SIZES, (LPARAM) hCtrl);
+}
+
+
+static BOOL SoftwareDirectories_OnInsertBrowse(HWND hDlg, BOOL bBrowse, LPCTSTR lpItem)
+{
+ int nItem;
+ TCHAR inbuf[MAX_PATH];
+ TCHAR outbuf[MAX_PATH];
+ HWND hList;
+ LPTSTR lpIn;
+ BOOL res;
+
+ g_bModifiedSoftwarePaths = TRUE;
+
+ hList = GetDlgItem(hDlg, IDC_DIR_LIST);
+ nItem = ListView_GetNextItem(hList, -1, LVNI_SELECTED);
+
+ if (nItem == -1)
+ return FALSE;
+
+ /* Last item is placeholder for append */
+ if (nItem == ListView_GetItemCount(hList) - 1)
+ bBrowse = FALSE;
+
+ if (!lpItem)
+ {
+ if (bBrowse)
+ {
+ ListView_GetItemText(hList, nItem, 0, inbuf, ARRAY_LENGTH(inbuf));
+ lpIn = inbuf;
+ }
+ else
+ lpIn = NULL;
+
+ if (!BrowseForDirectory(hDlg, lpIn, outbuf))
+ return FALSE;
+
+ lpItem = outbuf;
+ }
+
+ AppendList(hList, lpItem, nItem);
+ if (bBrowse)
+ res = ListView_DeleteItem(hList, nItem+1);
+ MarkChanged(hDlg);
+ res++;
+ return TRUE;
+}
+
+
+
+static BOOL SoftwareDirectories_OnDelete(HWND hDlg)
+{
+ int nCount;
+ int nSelect;
+ int nItem;
+ HWND hList = GetDlgItem(hDlg, IDC_DIR_LIST);
+ BOOL res;
+
+ g_bModifiedSoftwarePaths = TRUE;
+
+ nItem = ListView_GetNextItem(hList, -1, LVNI_SELECTED | LVNI_ALL);
+
+ if (nItem == -1)
+ return FALSE;
+
+ /* Don't delete "Append" placeholder. */
+ if (nItem == ListView_GetItemCount(hList) - 1)
+ return FALSE;
+
+ res = ListView_DeleteItem(hList, nItem);
+
+ nCount = ListView_GetItemCount(hList);
+ if (nCount <= 1)
+ return FALSE;
+
+ /* If the last item was removed, select the item above. */
+ if (nItem == nCount - 1)
+ nSelect = nCount - 2;
+ else
+ nSelect = nItem;
+
+ ListView_SetItemState(hList, nSelect, LVIS_FOCUSED | LVIS_SELECTED, LVIS_FOCUSED | LVIS_SELECTED);
+ MarkChanged(hDlg);
+ res++;
+ return TRUE;
+}
+
+
+
+static BOOL SoftwareDirectories_OnBeginLabelEdit(HWND hDlg, NMHDR* pNMHDR)
+{
+ BOOL bResult = FALSE;
+ NMLVDISPINFO* pDispInfo = (NMLVDISPINFO*)pNMHDR;
+ LVITEM* pItem = &pDispInfo->item;
+ HWND hList = GetDlgItem(hDlg, IDC_DIR_LIST);
+
+ /* Last item is placeholder for append */
+ if (pItem->iItem == ListView_GetItemCount(hList) - 1)
+ {
+ HWND hEdit = (HWND) (uintptr_t) SendMessage(hList, LVM_GETEDITCONTROL, 0, 0);
+ win_set_window_text_utf8(hEdit, "");
+ }
+
+ return bResult;
+}
+
+
+
+static BOOL SoftwareDirectories_OnEndLabelEdit(HWND hDlg, NMHDR* pNMHDR)
+{
+ BOOL bResult = FALSE;
+ NMLVDISPINFO* pDispInfo = (NMLVDISPINFO*)pNMHDR;
+ LVITEM* pItem = &pDispInfo->item;
+
+ if (pItem->pszText)
+ {
+ struct _stat file_stat;
+
+ /* Don't allow empty entries. */
+ if (!_tcscmp(pItem->pszText, TEXT("")))
+ return FALSE;
+
+ /* Check validity of edited directory. */
+ if ((_tstat(pItem->pszText, &file_stat) == 0) && (file_stat.st_mode & S_IFDIR))
+ bResult = TRUE;
+ else
+ if (win_message_box_utf8(NULL, "Folder does not exist, continue anyway?", MAMEUINAME, MB_OKCANCEL) == IDOK)
+ bResult = TRUE;
+ }
+
+ if (bResult == TRUE)
+ SoftwareDirectories_OnInsertBrowse(hDlg, TRUE, pItem->pszText);
+
+ return bResult;
+}
+
+
+static BOOL DriverHasDevice(const game_driver *gamedrv, iodevice_t type)
+{
+ BOOL b = FALSE;
+
+ // allocate the machine config
+ machine_config config(*gamedrv,MameUIGlobal());
+
+ for (device_image_interface &dev : image_interface_iterator(config.root_device()))
+ {
+ if (dev.image_type() == type)
+ {
+ b = TRUE;
+ break;
+ }
+ }
+ return b;
+}
+
+BOOL PropSheetFilter_Config(const machine_config *drv, const game_driver *gamedrv)
+{
+ ram_device_iterator iter(drv->root_device());
+ return (iter.first()!=NULL) || DriverHasDevice(gamedrv, IO_PRINTER);
+}
+
+INT_PTR CALLBACK GameMessOptionsProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam)
+{
+ INT_PTR rc = 0;
+ BOOL bHandled = FALSE;
+
+ switch (Msg)
+ {
+ case WM_NOTIFY:
+ switch (((NMHDR *) lParam)->code)
+ {
+ case LVN_ENDLABELEDIT:
+ rc = SoftwareDirectories_OnEndLabelEdit(hDlg, (NMHDR *) lParam);
+ bHandled = TRUE;
+ break;
+
+ case LVN_BEGINLABELEDIT:
+ rc = SoftwareDirectories_OnBeginLabelEdit(hDlg, (NMHDR *) lParam);
+ bHandled = TRUE;
+ break;
+ }
+ }
+
+ if (!bHandled)
+ rc = GameOptionsProc(hDlg, Msg, wParam, lParam);
+
+ return rc;
+}
+
+
+
+BOOL MessPropertiesCommand(HWND hWnd, WORD wNotifyCode, WORD wID, BOOL *changed)
+{
+ BOOL handled = TRUE;
+
+ switch(wID)
+ {
+ case IDC_DIR_BROWSE:
+ if (wNotifyCode == BN_CLICKED)
+ *changed = SoftwareDirectories_OnInsertBrowse(hWnd, TRUE, NULL);
+ break;
+
+ case IDC_DIR_INSERT:
+ if (wNotifyCode == BN_CLICKED)
+ *changed = SoftwareDirectories_OnInsertBrowse(hWnd, FALSE, NULL);
+ break;
+
+ case IDC_DIR_DELETE:
+ if (wNotifyCode == BN_CLICKED)
+ *changed = SoftwareDirectories_OnDelete(hWnd);
+ break;
+
+ default:
+ handled = FALSE;
+ break;
+ }
+ return handled;
+}
+
+#endif
+
+
diff --git a/docs/release/src/osd/winui/properties.h b/docs/release/src/osd/winui/properties.h
new file mode 100644
index 00000000000..5c403ec6bf3
--- /dev/null
+++ b/docs/release/src/osd/winui/properties.h
@@ -0,0 +1,58 @@
+// For licensing and usage information, read docs/winui_license.txt
+//****************************************************************************
+
+#ifndef PROPERTIES_H
+#define PROPERTIES_H
+
+/* Get title string to display in the top of the property page,
+ * Called also in ui_audit.c
+ */
+char* GameInfoTitle(OPTIONS_TYPE opt_type, UINT nIndex);
+
+/* Called in winui.c to create the property page */
+void InitPropertyPage(HINSTANCE hInst, HWND hWnd, HICON hIcon, OPTIONS_TYPE opt_type, int folder_id, int game_num);
+
+#define PROPERTIES_PAGE 0
+#define AUDIT_PAGE 1
+
+void InitPropertyPageToPage(HINSTANCE hInst, HWND hWnd, HICON hIcon, OPTIONS_TYPE opt_type, int folder_id, int game_num, int start_page);
+void InitDefaultPropertyPage(HINSTANCE hInst, HWND hWnd);
+
+/* Get Help ID array for WM_HELP and WM_CONTEXTMENU */
+DWORD_PTR GetHelpIDs(void);
+
+/* Get Game status text string */
+const char* GameInfoStatus(int driver_index, BOOL bRomStatus);
+
+/* Property sheet info for layout.c */
+typedef struct
+{
+ BOOL bOnDefaultPage;
+// BOOL (*pfnFilterProc)(const machine_config *drv, const game_driver *gamedrv);
+ BOOL (*pfnFilterProc)(int driver_index);
+ DWORD dwDlgID;
+ DLGPROC pfnDlgProc;
+} PROPERTYSHEETINFO;
+
+extern const PROPERTYSHEETINFO g_propSheets[];
+
+BOOL PropSheetFilter_Vector(const machine_config *drv, const game_driver *gamedrv);
+
+INT_PTR CALLBACK GamePropertiesDialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam);
+INT_PTR CALLBACK GameOptionsProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam);
+
+int PropertiesCurrentGame(HWND hDlg);
+
+// from propertiesms.h (MESSUI)
+
+BOOL MessPropertiesCommand(HWND hWnd, WORD wNotifyCode, WORD wID, BOOL *changed);
+
+INT_PTR CALLBACK GameMessOptionsProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam);
+BOOL PropSheetFilter_Config(const machine_config *drv, const game_driver *gamedrv);
+
+#include "datamap.h"
+void MessBuildDataMap(datamap *properties_datamap);
+
+
+#endif
+
diff --git a/docs/release/src/osd/winui/res/about.bmp b/docs/release/src/osd/winui/res/about.bmp
new file mode 100644
index 00000000000..e04a46ca022
--- /dev/null
+++ b/docs/release/src/osd/winui/res/about.bmp
Binary files differ
diff --git a/docs/release/src/osd/winui/res/bkgnd16.bmp b/docs/release/src/osd/winui/res/bkgnd16.bmp
new file mode 100644
index 00000000000..c4a589a32d4
--- /dev/null
+++ b/docs/release/src/osd/winui/res/bkgnd16.bmp
Binary files differ
diff --git a/docs/release/src/osd/winui/res/bkground.bmp b/docs/release/src/osd/winui/res/bkground.bmp
new file mode 100644
index 00000000000..f7e49de3084
--- /dev/null
+++ b/docs/release/src/osd/winui/res/bkground.bmp
Binary files differ
diff --git a/docs/release/src/osd/winui/res/checkmark.ico b/docs/release/src/osd/winui/res/checkmark.ico
new file mode 100644
index 00000000000..dd272c2e536
--- /dev/null
+++ b/docs/release/src/osd/winui/res/checkmark.ico
Binary files differ
diff --git a/docs/release/src/osd/winui/res/controller.ico b/docs/release/src/osd/winui/res/controller.ico
new file mode 100644
index 00000000000..390c18db340
--- /dev/null
+++ b/docs/release/src/osd/winui/res/controller.ico
Binary files differ
diff --git a/docs/release/src/osd/winui/res/cpu.ico b/docs/release/src/osd/winui/res/cpu.ico
new file mode 100644
index 00000000000..9c6843fbed5
--- /dev/null
+++ b/docs/release/src/osd/winui/res/cpu.ico
Binary files differ
diff --git a/docs/release/src/osd/winui/res/custom.ico b/docs/release/src/osd/winui/res/custom.ico
new file mode 100644
index 00000000000..8047b9d0b43
--- /dev/null
+++ b/docs/release/src/osd/winui/res/custom.ico
Binary files differ
diff --git a/docs/release/src/osd/winui/res/display.ico b/docs/release/src/osd/winui/res/display.ico
new file mode 100644
index 00000000000..b81df196948
--- /dev/null
+++ b/docs/release/src/osd/winui/res/display.ico
Binary files differ
diff --git a/docs/release/src/osd/winui/res/foldavail.ico b/docs/release/src/osd/winui/res/foldavail.ico
new file mode 100644
index 00000000000..b8bcb595bf9
--- /dev/null
+++ b/docs/release/src/osd/winui/res/foldavail.ico
Binary files differ
diff --git a/docs/release/src/osd/winui/res/folder.ico b/docs/release/src/osd/winui/res/folder.ico
new file mode 100644
index 00000000000..8a801462d62
--- /dev/null
+++ b/docs/release/src/osd/winui/res/folder.ico
Binary files differ
diff --git a/docs/release/src/osd/winui/res/foldmanu.ico b/docs/release/src/osd/winui/res/foldmanu.ico
new file mode 100644
index 00000000000..8a801462d62
--- /dev/null
+++ b/docs/release/src/osd/winui/res/foldmanu.ico
Binary files differ
diff --git a/docs/release/src/osd/winui/res/foldopen.ico b/docs/release/src/osd/winui/res/foldopen.ico
new file mode 100644
index 00000000000..7bab12a3abc
--- /dev/null
+++ b/docs/release/src/osd/winui/res/foldopen.ico
Binary files differ
diff --git a/docs/release/src/osd/winui/res/foldsrc.ico b/docs/release/src/osd/winui/res/foldsrc.ico
new file mode 100644
index 00000000000..8a801462d62
--- /dev/null
+++ b/docs/release/src/osd/winui/res/foldsrc.ico
Binary files differ
diff --git a/docs/release/src/osd/winui/res/foldunav.ico b/docs/release/src/osd/winui/res/foldunav.ico
new file mode 100644
index 00000000000..b74cc8edfc8
--- /dev/null
+++ b/docs/release/src/osd/winui/res/foldunav.ico
Binary files differ
diff --git a/docs/release/src/osd/winui/res/foldyear.ico b/docs/release/src/osd/winui/res/foldyear.ico
new file mode 100644
index 00000000000..8a801462d62
--- /dev/null
+++ b/docs/release/src/osd/winui/res/foldyear.ico
Binary files differ
diff --git a/docs/release/src/osd/winui/res/harddisk.ico b/docs/release/src/osd/winui/res/harddisk.ico
new file mode 100644
index 00000000000..580d379fab4
--- /dev/null
+++ b/docs/release/src/osd/winui/res/harddisk.ico
Binary files differ
diff --git a/docs/release/src/osd/winui/res/hbmame.ico b/docs/release/src/osd/winui/res/hbmame.ico
new file mode 100644
index 00000000000..845ec9aedd7
--- /dev/null
+++ b/docs/release/src/osd/winui/res/hbmame.ico
Binary files differ
diff --git a/docs/release/src/osd/winui/res/hbmameui.ico b/docs/release/src/osd/winui/res/hbmameui.ico
new file mode 100644
index 00000000000..845ec9aedd7
--- /dev/null
+++ b/docs/release/src/osd/winui/res/hbmameui.ico
Binary files differ
diff --git a/docs/release/src/osd/winui/res/header_down.ico b/docs/release/src/osd/winui/res/header_down.ico
new file mode 100644
index 00000000000..490eb0f7880
--- /dev/null
+++ b/docs/release/src/osd/winui/res/header_down.ico
Binary files differ
diff --git a/docs/release/src/osd/winui/res/header_up.ico b/docs/release/src/osd/winui/res/header_up.ico
new file mode 100644
index 00000000000..e7cbd555c4e
--- /dev/null
+++ b/docs/release/src/osd/winui/res/header_up.ico
Binary files differ
diff --git a/docs/release/src/osd/winui/res/horz.ico b/docs/release/src/osd/winui/res/horz.ico
new file mode 100644
index 00000000000..c4a5e940d09
--- /dev/null
+++ b/docs/release/src/osd/winui/res/horz.ico
Binary files differ
diff --git a/docs/release/src/osd/winui/res/icon_asc.ico b/docs/release/src/osd/winui/res/icon_asc.ico
new file mode 100644
index 00000000000..95f04736dc3
--- /dev/null
+++ b/docs/release/src/osd/winui/res/icon_asc.ico
Binary files differ
diff --git a/docs/release/src/osd/winui/res/icon_des.ico b/docs/release/src/osd/winui/res/icon_des.ico
new file mode 100644
index 00000000000..cda58ae29b5
--- /dev/null
+++ b/docs/release/src/osd/winui/res/icon_des.ico
Binary files differ
diff --git a/docs/release/src/osd/winui/res/icon_snd.ico b/docs/release/src/osd/winui/res/icon_snd.ico
new file mode 100644
index 00000000000..8b085042313
--- /dev/null
+++ b/docs/release/src/osd/winui/res/icon_snd.ico
Binary files differ
diff --git a/docs/release/src/osd/winui/res/icon_sndn.ico b/docs/release/src/osd/winui/res/icon_sndn.ico
new file mode 100644
index 00000000000..ce7d03df4b3
--- /dev/null
+++ b/docs/release/src/osd/winui/res/icon_sndn.ico
Binary files differ
diff --git a/docs/release/src/osd/winui/res/joystick.ico b/docs/release/src/osd/winui/res/joystick.ico
new file mode 100644
index 00000000000..4a7c5c7cd05
--- /dev/null
+++ b/docs/release/src/osd/winui/res/joystick.ico
Binary files differ
diff --git a/docs/release/src/osd/winui/res/keyboard.ico b/docs/release/src/osd/winui/res/keyboard.ico
new file mode 100644
index 00000000000..1e11e2c382f
--- /dev/null
+++ b/docs/release/src/osd/winui/res/keyboard.ico
Binary files differ
diff --git a/docs/release/src/osd/winui/res/mameui.manifest b/docs/release/src/osd/winui/res/mameui.manifest
new file mode 100644
index 00000000000..ce705a1b765
--- /dev/null
+++ b/docs/release/src/osd/winui/res/mameui.manifest
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
+<assemblyIdentity version="1.0.0.0" processorArchitecture="*" name="MAMEUI" type="win32" />
+<description>Multiple Arcade Machine Emulator with built in user interface</description>
+<dependency>
+<dependentAssembly>
+<assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" publicKeyToken="6595b64144ccf1df" language="*" processorArchitecture="*"/>
+</dependentAssembly>
+</dependency>
+</assembly>
diff --git a/docs/release/src/osd/winui/res/manufact.ico b/docs/release/src/osd/winui/res/manufact.ico
new file mode 100644
index 00000000000..85d8136f08e
--- /dev/null
+++ b/docs/release/src/osd/winui/res/manufact.ico
Binary files differ
diff --git a/docs/release/src/osd/winui/res/nonwork.ico b/docs/release/src/osd/winui/res/nonwork.ico
new file mode 100644
index 00000000000..8964fc75367
--- /dev/null
+++ b/docs/release/src/osd/winui/res/nonwork.ico
Binary files differ
diff --git a/docs/release/src/osd/winui/res/samples.ico b/docs/release/src/osd/winui/res/samples.ico
new file mode 100644
index 00000000000..96851b31582
--- /dev/null
+++ b/docs/release/src/osd/winui/res/samples.ico
Binary files differ
diff --git a/docs/release/src/osd/winui/res/sound.ico b/docs/release/src/osd/winui/res/sound.ico
new file mode 100644
index 00000000000..9f7edeaa6cd
--- /dev/null
+++ b/docs/release/src/osd/winui/res/sound.ico
Binary files differ
diff --git a/docs/release/src/osd/winui/res/source.ico b/docs/release/src/osd/winui/res/source.ico
new file mode 100644
index 00000000000..94618b8c6fd
--- /dev/null
+++ b/docs/release/src/osd/winui/res/source.ico
Binary files differ
diff --git a/docs/release/src/osd/winui/res/splith.cur b/docs/release/src/osd/winui/res/splith.cur
new file mode 100644
index 00000000000..7342d296e81
--- /dev/null
+++ b/docs/release/src/osd/winui/res/splith.cur
Binary files differ
diff --git a/docs/release/src/osd/winui/res/toolbar.bmp b/docs/release/src/osd/winui/res/toolbar.bmp
new file mode 100644
index 00000000000..6e7e26055e4
--- /dev/null
+++ b/docs/release/src/osd/winui/res/toolbar.bmp
Binary files differ
diff --git a/docs/release/src/osd/winui/res/vert.ico b/docs/release/src/osd/winui/res/vert.ico
new file mode 100644
index 00000000000..2855e6176d7
--- /dev/null
+++ b/docs/release/src/osd/winui/res/vert.ico
Binary files differ
diff --git a/docs/release/src/osd/winui/res/win_clone.ico b/docs/release/src/osd/winui/res/win_clone.ico
new file mode 100644
index 00000000000..3a0af8a5cd9
--- /dev/null
+++ b/docs/release/src/osd/winui/res/win_clone.ico
Binary files differ
diff --git a/docs/release/src/osd/winui/res/win_noro.ico b/docs/release/src/osd/winui/res/win_noro.ico
new file mode 100644
index 00000000000..1f313aa4b95
--- /dev/null
+++ b/docs/release/src/osd/winui/res/win_noro.ico
Binary files differ
diff --git a/docs/release/src/osd/winui/res/win_redx.ico b/docs/release/src/osd/winui/res/win_redx.ico
new file mode 100644
index 00000000000..1d4f2458314
--- /dev/null
+++ b/docs/release/src/osd/winui/res/win_redx.ico
Binary files differ
diff --git a/docs/release/src/osd/winui/res/win_roms.ico b/docs/release/src/osd/winui/res/win_roms.ico
new file mode 100644
index 00000000000..9c6843fbed5
--- /dev/null
+++ b/docs/release/src/osd/winui/res/win_roms.ico
Binary files differ
diff --git a/docs/release/src/osd/winui/res/win_unkn.ico b/docs/release/src/osd/winui/res/win_unkn.ico
new file mode 100644
index 00000000000..4d7f401a4fa
--- /dev/null
+++ b/docs/release/src/osd/winui/res/win_unkn.ico
Binary files differ
diff --git a/docs/release/src/osd/winui/res/working.ico b/docs/release/src/osd/winui/res/working.ico
new file mode 100644
index 00000000000..4a3f53c6f3b
--- /dev/null
+++ b/docs/release/src/osd/winui/res/working.ico
Binary files differ
diff --git a/docs/release/src/osd/winui/res/year.ico b/docs/release/src/osd/winui/res/year.ico
new file mode 100644
index 00000000000..4f8d93dbbd3
--- /dev/null
+++ b/docs/release/src/osd/winui/res/year.ico
Binary files differ
diff --git a/docs/release/src/osd/winui/resource.h b/docs/release/src/osd/winui/resource.h
new file mode 100644
index 00000000000..5fc98ae17d6
--- /dev/null
+++ b/docs/release/src/osd/winui/resource.h
@@ -0,0 +1,453 @@
+//{{NO_DEPENDENCIES}}
+// Microsoft Visual C++ generated include file.
+// Used by mameui.rc
+//
+#define IDPAUSE 3
+#define IDS_UI_FILE 61
+#define IDS_UI_VIEW 62
+#define IDS_UI_OPTIONS 63
+#define IDS_UI_HELP 64
+#define IDS_VIEW_TOOLBAR 70
+#define IDS_VIEW_STATUSBAR 71
+#define IDS_VIEW_FOLDERLIST 72
+#define IDS_VIEW_SCREENSHOT 73
+#define IDS_VIEW_PICTURETABS 74
+#define IDS_VIEW_SPACER1 75
+#define IDS_VIEW_FULLSCREEN 76
+#define IDS_VIEW_SPACER2 77
+#define IDS_VIEW_SHOWPICTURES 78
+#define IDS_VIEW_SPACER3 79
+#define IDS_VIEW_LARGEICONS 80
+#define IDS_VIEW_SMALLICONS 81
+#define IDS_VIEW_LIST 82
+#define IDS_VIEW_DETAILS 83
+#define IDS_VIEW_GROUPED 84
+#define IDS_VIEW_SPACER4 85
+#define IDS_VIEW_ARRANGE 86
+#define IDS_VIEW_LINEUPICONS 87
+#define IDS_VIEW_SPACER5 88
+#define IDS_VIEW_REFRESH 89
+#define IDS_VIEW_CONTEXTFILTERS 90
+#define IDS_VIEW_CUSTOMIZEFIELDS 91
+#define ID_TOOLBAR_EDIT 92
+#define IDD_MAIN 101
+#define IDA_TAB_KEYS 106
+#define IDI_MAMEUI_ICON 107
+#define IDD_ABOUT 108
+#define IDR_MAIN_MENU 109
+#define IDR_UI_MENU 110
+#define IDB_ABOUT 113
+#define IDD_DIRECTX 114
+#define IDD_AUDIT 115
+#define IDD_DIRECTORIES 116
+#define IDD_CUSTOM_FILE 117
+#define IDR_CONTEXT_MENU 118
+#define IDI_WIN_NOROMS 119
+#define IDI_WIN_ROMS 120
+#define IDI_WIN_UNKNOWN 121
+#define IDI_WIN_CLONE 122
+#define IDI_WIN_REDX 123
+#define IDI_FOLDER_OPEN 124
+#define IDI_FOLDER 125
+#define IDI_FOLDER_AVAILABLE 126
+#define IDI_FOLDER_MANUFACTURER 127
+#define IDI_FOLDER_UNAVAILABLE 128
+#define IDI_FOLDER_YEAR 129
+#define IDI_FOLDER_SOURCE 130
+#define IDI_MANUFACTURER 131
+#define IDI_WORKING 132
+#define IDI_NONWORKING 133
+#define IDI_YEAR 134
+#define IDI_SOUND 135
+#define IDI_CPU 136
+#define IDI_HARDDISK 137
+#define IDI_SOURCE 138
+#define IDI_FOLDER_HORIZONTAL 139
+#define IDI_FOLDER_VERTICAL 140
+#define IDR_CONTEXT_HEADER 151
+#define IDD_PROP_GAME 152
+#define IDD_PROP_AUDIT 153
+#define IDD_PROP_DISPLAY 154
+#define IDD_PROP_SOUND 155
+#define IDD_PROP_ADVANCED 156
+#define IDD_PROP_INPUT 157
+#define IDD_PROP_MISC 158
+#define IDD_PROP_VECTOR 159
+#define IDD_COLUMNS 160
+#define IDI_KEYBOARD 161
+#define IDI_JOYSTICK 162
+#define IDI_DISPLAY 163
+#define IDI_CHECKMARK 164
+#define IDC_CURSOR_HSPLIT 165
+#define IDB_TOOLBAR 166
+#define IDR_CONTEXT_TREE 168
+#define IDD_FILTERS 169
+#define IDD_RESET 170
+#define IDD_LOAD_PROGRESS 171
+#define IDD_INTERFACE_OPTIONS 173
+#define IDR_CONTEXT_SCREENSHOT 181
+#define IDI_HEADER_UP 182
+#define IDI_HEADER_DOWN 183
+#define IDD_PROP_CONTROLLER 185
+#define IDD_PROP_SCREEN 187
+#define IDD_PROP_DEBUG 188
+#define IDI_SOUNDTAB 666
+#define IDC_LIST 1000
+#define IDC_JOYSTICK 1003
+#define IDC_SIZES 1005
+#define IDC_FRAMESKIP 1009
+#define IDC_ROTATE 1010
+#define IDC_SCREEN 1012
+#define IDC_VIEW 1013
+#define IDC_SCREENSELECT 1014
+#define IDC_CHEAT 1015
+#define IDC_LOG 1016
+#define IDC_ARTWORK_CROP 1017
+#define IDC_OVERLAYS 1018
+#define IDC_BEZELS 1019
+#define IDC_CPANELS 1020
+#define IDC_MARQUEES 1021
+#define IDC_SLEEP 1022
+#define IDC_GAMMA 1023
+#define IDC_BRIGHTCORRECT 1024
+#define IDC_USE_DEFAULT 1025
+#define IDC_CONTRAST 1026
+#define IDC_SAMPLERATE 1027
+#define IDC_NUMSCREENS 1028
+#define IDC_BEAM 1030
+#define IDC_FLICKER 1031
+#define IDC_FLIPX 1032
+#define IDC_FLIPY 1033
+#define IDC_BACKDROPS 1034
+#define IDC_DIRECTX_HELP 1035
+#define IDC_FLICKERDISP 1036
+#define IDB_WEB_PAGE 1037
+#define IDC_FSCONTRAST 1038
+#define IDC_ROMS_PROGRESS 1039
+#define IDC_SECONDSTORUN 1039
+#define IDC_CONTRASTDISP 1040
+#define IDC_ROMS_CORRECT 1041
+#define IDC_FSCONTRASTDISP 1042
+#define IDC_ROMS_INCORRECT 1043
+#define IDC_SECONDSTORUNDISP 1043
+#define IDC_NUMSCREENSDISP 1044
+#define IDC_ROMS_TOTAL 1045
+#define IDC_SAMPLES_PROGRESS 1046
+#define IDC_SAMPLES_CORRECT 1047
+#define IDC_BEAMDISP 1048
+#define IDC_SAMPLES_INCORRECT 1049
+#define IDC_SAMPLES_TOTAL 1050
+#define IDC_AUDIT_DETAILS 1051
+#define IDC_DIR_COMBO 1053
+#define IDC_DIR_LIST 1054
+#define IDC_DIR_BROWSE 1055
+#define IDC_DIR_INSERT 1056
+#define IDC_DIR_DELETE 1057
+#define IDC_FLICKERTEXT 1058
+#define IDC_SSFRAME 1059
+#define IDC_PRESCALE 1060
+#define IDC_SSPICTURE 1062
+#define IDC_BEAMTEXT 1063
+#define IDC_MULTIKEYBOARD 1065
+#define IDC_RATETEXT 1069
+#define IDC_LISTAVAILABLECOLUMNS 1070
+#define IDC_LISTSHOWCOLUMNS 1071
+#define IDC_BUTTONADD 1072
+#define IDC_BUTTONREMOVE 1073
+#define IDC_BUTTONMOVEDOWN 1074
+#define IDC_BUTTONMOVEUP 1075
+#define IDC_PROP_SOUND 1076
+#define IDC_PROP_CPU 1077
+#define IDC_PROP_TITLE 1078
+#define IDC_PROP_MANUFACTURED 1079
+#define IDC_PROP_STATUS 1080
+#define IDC_PROP_SCREEN 1081
+#define IDC_PROP_COLORS 1082
+#define IDC_PROP_ROMS 1083
+#define IDC_PROP_SAMPLES 1084
+#define IDC_PROP_CLONEOF_TEXT 1085
+#define IDC_PROP_CLONEOF 1086
+#define IDC_VERSION 1088
+#define IDC_FSGAMMA 1090
+#define IDC_GAMMADISP 1091
+#define IDC_FSBRIGHTNESS 1092
+#define IDC_FSGAMMADISP 1093
+#define IDC_PRESCALEDISP 1094
+#define IDC_BRIGHTCORRECTDISP 1095
+#define IDC_FSBRIGHTNESSDISP 1096
+#define IDC_AUTOFRAMESKIP 1097
+#define IDC_TREE 1098
+#define IDC_WINDOWED 1099
+#define IDC_PROP_RESET 1101
+#define IDC_SPLITTER 1102
+#define IDC_SPLITTER2 1103
+#define IDC_DIVIDER 1104
+#define IDC_FILTER_VECTOR 1105
+#define IDC_FILTER_RASTER 1106
+#define IDC_FILTER_UNAVAILABLE 1107
+#define IDC_FILTER_NONWORKING 1108
+#define IDC_FILTER_CLONES 1109
+#define IDC_RESET_GAMES 1110
+#define IDC_RESET_UI 1111
+#define IDC_RESET_FILTERS 1112
+#define IDC_RESET_EFFECT 1113
+#define IDC_RESET_DEFAULT 1114
+#define IDC_FILTER_ORIGINALS 1115
+#define IDC_FILTER_WORKING 1116
+#define IDC_FILTER_AVAILABLE 1117
+#define IDC_FILTER_ARCADE 1118
+#define IDC_FILTER_MESS 1119
+#define IDC_START_GAME_CHECK 1120
+#define IDC_VOLUME 1121
+#define IDC_VOLUMEDISP 1122
+#define IDC_HISTORY 1124
+#define IDC_SAMPLES 1125
+#define IDC_TRIPLE_BUFFER 1127
+#define IDC_LOAD_ROMNAME 1128
+#define IDC_DEFAULT_INPUT 1129
+#define IDC_LANGUAGECHECK 1130
+#define IDC_LANGUAGEBROWSE 1131
+#define IDC_LANGUAGEEDIT 1132
+#define IDC_FILTER_EDIT 1133
+#define IDC_ABOUT 1134
+#define IDC_USE_SOUND 1136
+#define IDC_WAITVSYNC 1137
+#define IDC_HWSTRETCH 1138
+#define IDC_SWITCHRES 1139
+#define IDC_MAXIMIZE 1140
+#define IDC_KEEPASPECT 1141
+#define IDC_SYNCREFRESH 1142
+#define IDC_USE_MOUSE 1143
+#define IDC_THROTTLE 1144
+#define IDC_VOLUMETEXT 1146
+#define IDC_REFRESH 1148
+#define IDC_REFRESHTEXT 1149
+#define IDC_EFFECT 1150
+#define IDC_FSGAMMATEXT 1151
+#define IDC_STEADYKEY 1152
+#define IDC_ASPECTRATION 1154
+#define IDC_ASPECTRATIOD 1155
+#define IDC_ASPECTRATIOTEXT 1156
+#define IDC_JOY_GUI 1157
+#define IDC_BROADCAST 1158
+#define IDC_JDZ 1159
+#define IDC_JDZDISP 1160
+#define IDC_JDZTEXT 1161
+#define IDC_JSATTEXT 1162
+#define IDC_JSAT 1163
+#define IDC_JSATDISP 1164
+#define IDC_AUDIO_LATENCY_DISP 1165
+#define IDC_PLAY_GAME 1166
+#define IDC_LIGHTGUN 1167
+#define IDC_SSTAB 1168
+#define IDC_GAME_ICON 1169
+#define IDC_RANDOM_BG 1170
+#define IDC_CUSTOM_TREE 1171
+#define IDC_CUSTOMFILE_GAME 1173
+#define IDC_LOAD_STATUS 1174
+#define IDC_ERROR_TEXT 1175
+#define IDC_ARTMISCTEXT 1176
+#define IDC_ENABLE_AUTOSAVE 1177
+#define IDC_SKIP_GAME_INFO 1178
+#define IDC_PROP_SOURCE 1179
+#define IDC_FILTER_HORIZONTAL 1180
+#define IDC_PAUSEBRIGHT 1181
+#define IDC_PAUSEBRIGHTDISP 1182
+#define IDC_HIGH_PRIORITY 1183
+#define IDC_D3D_FILTER 1184
+#define IDC_HIDE_MOUSE 1185
+#define IDC_AUDIO_LATENCY 1186
+#define IDC_D3D_VERSION 1187
+#define IDC_AUDIT_DETAILS_PROP 1188
+#define IDC_CYCLETIMESEC 1190
+#define IDC_AUDIO_LATENCY_TEXT 1191
+#define IDC_STRETCH_SCREENSHOT_LARGER 1192
+#define IDC_FILTER_INHERIT 1193
+#define IDC_RESET_PLAYTIME 1194
+#define IDC_RESET_PLAYCOUNT 1195
+#define IDC_INHERITED 1196
+#define IDC_KEY_GUI 1197
+#define IDC_RELOAD 1198
+#define IDC_DUAL_LIGHTGUN 1199
+#define IDC_NOOFFSET_CLONES 1200
+#define IDC_BIOS 1201
+#define IDC_HISTORY_TAB 1202
+#define IDC_SNAPVIEW 1202
+#define IDC_SCREENSHOT_BORDERSIZE 1204
+#define IDC_SCREENSHOT_BORDERCOLOR 1205
+#define IDC_CYCLETIMESECTXT 1206
+#define IDC_SCREENSHOT_BORDERSIZETXT 1207
+#define IDC_PADDLE 1208
+#define IDC_ADSTICK 1209
+#define IDC_PEDAL 1210
+#define IDC_DIAL 1211
+#define IDC_TRACKBALL 1212
+#define IDC_LIGHTGUNDEVICE 1213
+#define IDC_MOUSE 1214
+#define IDC_POSITIONAL 1215
+#define IDC_HIGH_PRIORITY_TEXT 1216
+#define IDC_HIGH_PRIORITYTXT 1217
+#define IDC_SELECT_EFFECT 1218
+#define IDC_MULTITHREAD_RENDERING 1219
+#define IDC_ASPECT 1220
+#define IDC_LOAD_PROGRESS 1223
+#define IDC_FSBRIGHTNESSTEXT 1224
+#define IDC_FSCONTRASTTEXT 1225
+#define IDC_VIDEO_MODE 1226
+#define IDC_SCREENSELECTTEXT 1227
+#define IDC_PRESCALETEXT 1228
+#define IDC_SOUND_MODE 1229
+#define IDC_MULTIMOUSE 1230
+#define IDC_DEBUG 1231
+#define IDC_REFRESHSPEED 1232
+#define IDC_SPEEDTEXT 1233
+#define IDC_SPEED 1234
+#define IDC_SPEEDDISP 1235
+#define IDC_FILTER_VERTICAL 1236
+#define IDC_SNAPNAME 1237
+#define IDC_COINLOCKOUT 1238
+#define IDC_SECONDSTORUNTEXT 1239
+#define IDC_OSLOG 1240
+#define IDC_VERBOSE 1241
+#define IDC_UPDATEINPAUSE 1242
+#define IDC_DEBUGSCRIPT 1243
+#define IDC_SELECT_DEBUGSCRIPT 1244
+#define IDC_RESET_DEBUGSCRIPT 1245
+#define IDC_SELECT_JOYSTICKMAP 1246
+#define IDC_RESET_JOYSTICKMAP 1247
+#define IDC_JOYSTICKMAP 1248
+#define IDC_SNAPSIZE 1249
+#define IDC_SNAPSIZEWIDTH 1250
+#define IDC_SNAPSIZEHEIGHT 1251
+#define IDC_SNAPSIZETEXT 1252
+#define IDC_SNAPSIZEX 1253
+#define IDC_FILTER_MECHANICAL 1254
+#define IDC_SPLITTER3 2000
+#define IDC_SWTAB 2001
+#define IDC_SWLIST 2002
+#define IDC_SWDEVVIEW 2003
+#define IDC_FILTER_COMPUTER 2004
+#define IDC_FILTER_CONSOLE 2005
+#define IDC_FILTER_MODIFIED 2006
+#define IDC_RAM_COMBOBOX 2008
+#define IDC_RAM_CAPTION 2009
+#define IDC_SOFTLIST 2010
+#define IDI_WIN_NOROMSNEEDED 2100
+#define IDI_WIN_MISSINGOPTROM 2101
+#define IDI_WIN_FLOP 2102
+#define IDI_WIN_CASS 2103
+#define IDI_WIN_SERL 2104
+#define IDI_WIN_SNAP 2105
+#define IDI_WIN_PRIN 2106
+#define IDI_WIN_HARD 2107
+#define IDI_WIN_CYLN 2110
+#define IDI_WIN_PTAP 2111
+#define IDI_WIN_PCRD 2112
+#define ID_MESS_OPEN_SOFTWARE 2200
+#define IDD_PROP_SOFTWARE 2202
+#define IDD_PROP_CONFIGURATION 2203
+#define ID_CONTEXT_SHOW_FOLDER_START 39000
+#define ID_CONTEXT_SHOW_FOLDER_END 39200
+#define ID_FILE_EXIT 40001
+#define ID_ABOUT 40003
+#define ID_FILE_PLAY 40004
+#define ID_HELP_ABOUT 40006
+#define ID_VIEW_LARGE_ICON 40007
+#define ID_VIEW_SMALL_ICON 40008
+#define ID_VIEW_LIST_MENU 40009
+#define ID_VIEW_DETAIL 40010
+#define ID_VIEW_GROUPED 40011
+#define ID_OPTIONS_FONT 40012
+#define ID_OPTIONS_CLONE_COLOR 40013
+#define ID_OPTIONS_DIR 40014
+#define ID_OPTIONS_DEFAULTS 40015
+#define ID_OPTIONS_RESET_DEFAULTS 40016
+#define ID_OPTIONS_INTERFACE 40017
+#define ID_FILE_AUDIT 40018
+#define ID_FILE_PLAY_RECORD 40019
+#define ID_FILE_PLAY_BACK 40020
+#define ID_FILE_PLAY_RECORD_WAVE 40021
+#define ID_FILE_PLAY_RECORD_MNG 40022
+#define ID_FILE_PLAY_RECORD_AVI 40023
+#define ID_VIEW_PICTURE_AREA 40024
+#define ID_HELP_CONTENTS 40025
+#define ID_HELP_WHATS_NEWUI 40026
+#define ID_HELP_TROUBLE 40027
+#define ID_HELP_RELEASE 40028
+#define ID_HELP_WHATS_NEW 40029
+#define ID_HELP_CHEATS 40030
+#define ID_FILE_AUDIT_X 40031
+#define ID_VIEW_BYGAME 40034
+#define ID_VIEW_BYDIRECTORY 40035
+#define ID_VIEW_BYMANUFACTURER 40036
+#define ID_VIEW_BYYEAR 40037
+#define ID_VIEW_BYTYPE 40038
+#define ID_VIEW_BYTIMESPLAYED 40039
+#define ID_VIEW_LINEUPICONS 40040
+#define ID_UPDATE_GAMELIST 40042
+#define ID_SORT_ASCENDING 40045
+#define ID_SORT_DESCENDING 40046
+#define ID_CUSTOMIZE_FIELDS 40048
+#define ID_GAME_PROPERTIES 40049
+#define ID_VIEW_PAGETAB 40050
+#define ID_VIEW_FOLDERS 40051
+#define ID_VIEW_TOOLBARS 40052
+#define ID_VIEW_STATUS 40053
+#define ID_CONTEXT_FILTERS 40054
+#define ID_CONTEXT_RENAME_CUSTOM 40055
+#define ID_CONTEXT_ADD_CUSTOM 40057
+#define ID_CONTEXT_REMOVE_CUSTOM 40058
+#define ID_GAME_AUDIT 40059
+#define ID_CONTEXT_SELECT_RANDOM 40060
+#define ID_VIEW_TAB_SCREENSHOT 40062
+#define ID_VIEW_TAB_FLYER 40063
+#define ID_VIEW_TAB_CABINET 40064
+#define ID_VIEW_TAB_MARQUEE 40065
+#define ID_VIEW_TAB_TITLE 40066
+#define ID_VIEW_TAB_CONTROL_PANEL 40067
+#define ID_VIEW_TAB_PCB 40068
+#define ID_VIEW_TAB_HISTORY 40069
+#define ID_OPTIONS_BG 40070
+#define ID_TOGGLE_TAB_SCREENSHOT 40071
+#define ID_TOGGLE_TAB_FLYER 40072
+#define ID_TOGGLE_TAB_CABINET 40073
+#define ID_TOGGLE_TAB_MARQUEE 40074
+#define ID_TOGGLE_TAB_TITLE 40075
+#define ID_TOGGLE_TAB_CONTROL_PANEL 40076
+#define ID_TOGGLE_TAB_PCB 40077
+#define ID_TOGGLE_TAB_HISTORY 40078
+#define ID_VIEW_FULLSCREEN 40079
+#define ID_CONTEXT_RESET_PLAYSTATS 40081
+#define ID_FOLDER_PROPERTIES 40082
+#define ID_FOLDER_AUDIT 40083
+#define ID_UI_UP 40084
+#define ID_UI_DOWN 40085
+#define ID_UI_LEFT 40086
+#define ID_UI_RIGHT 40087
+#define ID_UI_START 40088
+#define ID_UI_PGUP 40089
+#define ID_UI_PGDOWN 40090
+#define ID_UI_HOME 40091
+#define ID_UI_END 40092
+#define ID_UI_HISTORY_UP 40093
+#define ID_UI_HISTORY_DOWN 40094
+#define ID_FILE_LOADSTATE 40095
+#define ID_FOLDER_SOURCEPROPERTIES 40096
+#define ID_FOLDER_VECTORPROPERTIES 40097
+#define ID_OPTIONS_MAMEINFO 40100
+#define ID_OPTIONS_HISTORY 40101
+#define ID_VIEW_SOFTWARE_AREA 40102
+#define IDC_STATIC -1
+
+// Next default values for new objects
+//
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+#define _APS_NO_MFC 1
+#define _APS_3D_CONTROLS 1
+#define _APS_NEXT_RESOURCE_VALUE 192
+#define _APS_NEXT_COMMAND_VALUE 40103
+#define _APS_NEXT_CONTROL_VALUE 1337
+#define _APS_NEXT_SYMED_VALUE 93
+#endif
+#endif
diff --git a/docs/release/src/osd/winui/resource.hm b/docs/release/src/osd/winui/resource.hm
new file mode 100644
index 00000000000..0934c33b73d
--- /dev/null
+++ b/docs/release/src/osd/winui/resource.hm
@@ -0,0 +1,122 @@
+// Microsoft Visual C++ generated Help ID include file.
+// Used by mameui.rc
+//
+#define HIDC_ADSTICK 0x80b904b9 // IDD_PROP_CONTROLLER [English (U.S.)]
+#define HIDC_ANTIALIAS 0x809f0405 // IDD_PROP_VECTOR [English (U.S.)]
+#define HIDC_ARTWORK_CROP 0x809e03fa // IDD_PROP_MISC [English (U.S.)]
+#define HIDC_ASPECT 0x80bb04c4 // IDD_PROP_SCREEN [English (U.S.)]
+#define HIDC_ASPECTRATIOD 0x80bb0483 // IDD_PROP_SCREEN [English (U.S.)]
+#define HIDC_ASPECTRATION 0x80bb0482 // IDD_PROP_SCREEN [English (U.S.)]
+#define HIDC_AUDIO_LATENCY 0x809b04a2 // IDD_PROP_SOUND [English (U.S.)]
+#define HIDC_AUTOFRAMESKIP 0x809c0449 // IDD_PROP_ADVANCED [English (U.S.)]
+#define HIDC_BACKDROPS 0x809e040a // IDD_PROP_MISC [English (U.S.)]
+#define HIDC_BEAM 0x809f0406 // IDD_PROP_VECTOR [English (U.S.)]
+#define HIDC_BEZELS 0x809e03fd // IDD_PROP_MISC [English (U.S.)]
+#define HIDC_BIOS 0x809e04b1 // IDD_PROP_MISC [English (U.S.)]
+#define HIDC_BRIGHTCORRECT 0x809a0400 // IDD_PROP_DISPLAY [English (U.S.)]
+#define HIDC_BROADCAST 0x80ad0486 // IDD_INTERFACE_OPTIONS [English (U.S.)]
+#define HIDC_CHEAT 0x809e03f8 // IDD_PROP_MISC [English (U.S.)]
+#define HIDC_COINLOCKOUT 0x809e04d6 // IDD_PROP_MISC [English (U.S.)]
+#define HIDC_CONTRAST 0x809a0402 // IDD_PROP_DISPLAY [English (U.S.)]
+#define HIDC_CYCLETIMESEC 0x80ad04a6 // IDD_INTERFACE_OPTIONS [English (U.S.)]
+#define HIDC_D3D_FILTER 0x809a04a0 // IDD_PROP_DISPLAY [English (U.S.)]
+#define HIDC_D3D_VERSION 0x809a04a3 // IDD_PROP_DISPLAY [English (U.S.)]
+#define HIDC_DEBUG 0x80bc04cf // IDD_PROP_DEBUG [English (U.S.)]
+#define HIDC_DEFAULT_INPUT 0x809d0469 // IDD_PROP_INPUT [English (U.S.)]
+#define HIDC_DIAL 0x80b904bb // IDD_PROP_CONTROLLER [English (U.S.)]
+#define HIDC_DUAL_LIGHTGUN 0x809d04af // IDD_PROP_INPUT [English (U.S.)]
+#define HIDC_ENABLE_AUTOSAVE 0x809e0499 // IDD_PROP_MISC [English (U.S.)]
+#define HIDC_FILTER_CLONES 0x80a90455 // IDD_FILTERS [English (U.S.)]
+#define HIDC_FILTER_EDIT 0x80a9046d // IDD_FILTERS [English (U.S.)]
+#define HIDC_FILTER_HORIZONTAL 0x80a9049c // IDD_FILTERS [English (U.S.)]
+#define HIDC_FILTER_NONWORKING 0x80a90454 // IDD_FILTERS [English (U.S.)]
+#define HIDC_FILTER_ORIGINALS 0x80a9045b // IDD_FILTERS [English (U.S.)]
+#define HIDC_FILTER_RASTER 0x80a90452 // IDD_FILTERS [English (U.S.)]
+#define HIDC_FILTER_UNAVAILABLE 0x80a90453 // IDD_FILTERS [English (U.S.)]
+#define HIDC_FILTER_VECTOR 0x80a90451 // IDD_FILTERS [English (U.S.)]
+#define HIDC_FILTER_VERTICAL 0x80a90460 // IDD_FILTERS [English (U.S.)]
+#define HIDC_FILTER_WORKING 0x80a9045c // IDD_FILTERS [English (U.S.)]
+#define HIDC_FILTER_MECHANICAL 0x80a90461 // IDD_FILTERS [English (U.S.)]
+#define HIDC_FLICKER 0x809f0407 // IDD_PROP_VECTOR [English (U.S.)]
+#define HIDC_FLIPX 0x809a0408 // IDD_PROP_DISPLAY [English (U.S.)]
+#define HIDC_FLIPY 0x809a0409 // IDD_PROP_DISPLAY [English (U.S.)]
+#define HIDC_FRAMESKIP 0x809c03f1 // IDD_PROP_ADVANCED [English (U.S.)]
+#define HIDC_FSBRIGHTNESS 0x809c0444 // IDD_PROP_ADVANCED [English (U.S.)]
+#define HIDC_FSCONTRAST 0x809c040e // IDD_PROP_ADVANCED [English (U.S.)]
+#define HIDC_FSGAMMA 0x809c0442 // IDD_PROP_ADVANCED [English (U.S.)]
+#define HIDC_GAMMA 0x809a03ff // IDD_PROP_DISPLAY [English (U.S.)]
+#define HIDC_HIDE_MOUSE 0x80ad04a1 // IDD_INTERFACE_OPTIONS [English (U.S.)]
+#define HIDC_HIGH_PRIORITY 0x809e049f // IDD_PROP_MISC [English (U.S.)]
+#define HIDC_HISTORY 0x806504cb // IDD_MAIN [English (U.S.)]
+#define HIDC_HWSTRETCH 0x809a046c // IDD_PROP_DISPLAY [English (U.S.)]
+#define HIDC_JDZ 0x809d0487 // IDD_PROP_INPUT [English (U.S.)]
+#define HIDC_JOYSTICK 0x809d03eb // IDD_PROP_INPUT [English (U.S.)]
+#define HIDC_JOY_GUI 0x80ad0485 // IDD_INTERFACE_OPTIONS [English (U.S.)]
+#define HIDC_JSAT 0x809d048b // IDD_PROP_INPUT [English (U.S.)]
+#define HIDC_KEEPASPECT 0x809a0474 // IDD_PROP_DISPLAY [English (U.S.)]
+#define HIDC_LANGUAGECHECK 0x80b204d1 // IDD_LANGUAGE [English (U.S.)]
+#define HIDC_LANGUAGEEDIT 0x80b204d4 // IDD_LANGUAGE [English (U.S.)]
+#define HIDC_LIGHTGUN 0x809d048f // IDD_PROP_INPUT [English (U.S.)]
+#define HIDC_LIGHTGUNDEVICE 0x80b904bd // IDD_PROP_CONTROLLER [English (U.S.)]
+#define HIDC_LOG 0x80bc03f9 // IDD_PROP_DEBUG [English (U.S.)]
+#define HIDC_MAXIMIZE 0x809a046e // IDD_PROP_DISPLAY [English (U.S.)]
+#define HIDC_MOUSE 0x80b904be // IDD_PROP_CONTROLLER [English (U.S.)]
+#define HIDC_MULTIKEYBOARD 0x809d0429 // IDD_PROP_INPUT [English (U.S.)]
+#define HIDC_MULTIMOUSE 0x809d04ce // IDD_PROP_INPUT [English (U.S.)]
+#define HIDC_MULTITHREAD_RENDERING 0x809e04c3 // IDD_PROP_MISC [English (U.S.)]
+#define HIDC_NUMSCREENS 0x80bb0404 // IDD_PROP_SCREEN [English (U.S.)]
+#define HIDC_OSLOG 0x80bc04d8 // IDD_PROP_DEBUG [English (U.S.)]
+#define HIDC_OVERLAYS 0x809e03fb // IDD_PROP_MISC [English (U.S.)]
+#define HIDC_PADDLE 0x80b904b8 // IDD_PROP_CONTROLLER [English (U.S.)]
+#define HIDC_PAUSEBRIGHT 0x809a049c // IDD_PROP_DISPLAY [English (U.S.)]
+#define HIDC_PEDAL 0x80b904ba // IDD_PROP_CONTROLLER [English (U.S.)]
+#define HIDC_POSITIONAL 0x80b904bf // IDD_PROP_CONTROLLER [English (U.S.)]
+#define HIDC_PRESCALE 0x809a041f // IDD_PROP_DISPLAY [English (U.S.)]
+#define HIDC_PROP_RESET 0x809c044d // IDD_PROP_ADVANCED [English (U.S.)]
+#define HIDC_RANDOM_BG 0x80ad0492 // IDD_INTERFACE_OPTIONS [English (U.S.)]
+#define HIDC_REFRESH 0x80bb047c // IDD_PROP_SCREEN [English (U.S.)]
+#define HIDC_REFRESHSPEED 0x809c04d0 // IDD_PROP_ADVANCED [English (U.S.)]
+#define HIDC_RELOAD 0x809d04ae // IDD_PROP_INPUT [English (U.S.)]
+#define HIDC_RESET_DEBUGSCRIPT 0x80bc04dd // IDD_PROP_DEBUG [English (U.S.)]
+#define HIDC_RESET_DEFAULT 0x80aa04a2 // IDD_RESET [English (U.S.)]
+#define HIDC_RESET_EFFECT 0x809c0459 // IDD_PROP_ADVANCED [English (U.S.)]
+#define HIDC_RESET_FILTERS 0x80aa049f // IDD_RESET [English (U.S.)]
+#define HIDC_RESET_GAMES 0x80aa049d // IDD_RESET [English (U.S.)]
+#define HIDC_RESET_JOYSTICKMAP 0x809d04df // IDD_PROP_INPUT [English (U.S.)]
+#define HIDC_RESET_UI 0x80aa049e // IDD_RESET [English (U.S.)]
+#define HIDC_ROTATE 0x809a03f2 // IDD_PROP_DISPLAY [English (U.S.)]
+#define HIDC_SAMPLERATE 0x809b0403 // IDD_PROP_SOUND [English (U.S.)]
+#define HIDC_SAMPLES 0x809b0461 // IDD_PROP_SOUND [English (U.S.)]
+#define HIDC_SCREEN 0x80bb03f4 // IDD_PROP_SCREEN [English (U.S.)]
+#define HIDC_SCREENSELECT 0x80bb03f7 // IDD_PROP_SCREEN [English (U.S.)]
+#define HIDC_SECONDSTORUN 0x809c040f // IDD_PROP_ADVANCED [English (U.S.)]
+#define HIDC_SELECT_DEBUGSCRIPT 0x80bc04dc // IDD_PROP_DEBUG [English (U.S.)]
+#define HIDC_SELECT_EFFECT 0x809c04c2 // IDD_PROP_ADVANCED [English (U.S.)]
+#define HIDC_SELECT_JOYSTICKMAP 0x809d04de // IDD_PROP_INPUT [English (U.S.)]
+#define HIDC_SIZES 0x80bb03ed // IDD_PROP_SCREEN [English (U.S.)]
+#define HIDC_SKIP_GAME_INFO 0x809e049a // IDD_PROP_MISC [English (U.S.)]
+#define HIDC_SLEEP 0x809e03fe // IDD_PROP_MISC [English (U.S.)]
+#define HIDC_SNAPNAME 0x80ad04d5 // IDD_INTERFACE_OPTIONS [English (U.S.)]
+#define HIDC_SNAPSIZE 0x809e04e1 // IDD_PROP_MISC [English (U.S.)]
+#define HIDC_SNAPSIZEHEIGHT 0x809e04e3 // IDD_PROP_MISC [English (U.S.)]
+#define HIDC_SNAPSIZEWIDTH 0x809e04e2 // IDD_PROP_MISC [English (U.S.)]
+#define HIDC_SNAPVIEW 0x809e04b2 // IDD_PROP_MISC [English (U.S.)]
+#define HIDC_SPEED 0x809c04d2 // IDD_PROP_ADVANCED [English (U.S.)]
+#define HIDC_START_GAME_CHECK 0x80ad0460 // IDD_INTERFACE_OPTIONS [English (U.S.)]
+#define HIDC_STEADYKEY 0x809d0480 // IDD_PROP_INPUT [English (U.S.)]
+#define HIDC_STRETCH_SCREENSHOT_LARGER 0x80ad04a8 // IDD_INTERFACE_OPTIONS [English (U.S.)]
+#define HIDC_SWITCHRES 0x80bb046d // IDD_PROP_SCREEN [English (U.S.)]
+#define HIDC_SYNCREFRESH 0x809c0476 // IDD_PROP_ADVANCED [English (U.S.)]
+#define HIDC_THROTTLE 0x809a0478 // IDD_PROP_DISPLAY [English (U.S.)]
+#define HIDC_TRACKBALL 0x80b904bc // IDD_PROP_CONTROLLER [English (U.S.)]
+#define HIDC_TRIPLE_BUFFER 0x809c0467 // IDD_PROP_ADVANCED [English (U.S.)]
+#define HIDC_UPDATEINPAUSE 0x80bc04da // IDD_PROP_DEBUG [English (U.S.)]
+#define HIDC_USE_DEFAULT 0x809c0401 // IDD_PROP_ADVANCED [English (U.S.)]
+#define HIDC_USE_MOUSE 0x809d0477 // IDD_PROP_INPUT [English (U.S.)]
+#define HIDC_USE_SOUND 0x809b046d // IDD_PROP_SOUND [English (U.S.)]
+#define HIDC_VERBOSE 0x80bc04d9 // IDD_PROP_DEBUG [English (U.S.)]
+#define HIDC_VIDEO_MODE 0x809a04ca // IDD_PROP_DISPLAY [English (U.S.)]
+#define HIDC_VIEW 0x80bb03f6 // IDD_PROP_SCREEN [English (U.S.)]
+#define HIDC_VOLUME 0x809b045d // IDD_PROP_SOUND [English (U.S.)]
+#define HIDC_WAITVSYNC 0x809c0471 // IDD_PROP_ADVANCED [English (U.S.)]
+#define HIDC_WINDOWED 0x809a0497 // IDD_PROP_DISPLAY [English (U.S.)]
diff --git a/docs/release/src/osd/winui/screenshot.cpp b/docs/release/src/osd/winui/screenshot.cpp
new file mode 100644
index 00000000000..c85f712007b
--- /dev/null
+++ b/docs/release/src/osd/winui/screenshot.cpp
@@ -0,0 +1,663 @@
+// For licensing and usage information, read docs/winui_license.txt
+// MASTER
+//****************************************************************************
+
+/***************************************************************************
+
+ Screenshot.c
+
+ Win32 DIB handling.
+
+ Created 7/1/98 by Mike Haaland (mhaaland@hypertech.com)
+
+ 0.145u5
+ - Cleaned out unused code.
+ - If Software tab is chosen, software-specific pictures can be displayed.
+ - Background picture must be PNG, and can be chosen from anywhere, but
+ must be uncompressed (not in a zip file).
+
+***************************************************************************/
+
+// standard windows headers
+#include <windows.h>
+#include <windowsx.h>
+
+// MAME/MAMEUI headers
+#include "emu.h"
+#include "png.h"
+#include "unzip.h"
+#include "mui_opts.h"
+#include "mui_util.h"
+#include "winui.h"
+#include "drivenum.h"
+
+/***************************************************************************
+ Static global variables
+***************************************************************************/
+
+/* these refer to the single image currently loaded by the ScreenShot functions */
+static HGLOBAL m_hDIB = nullptr;
+static HPALETTE m_hPal = nullptr;
+static HANDLE m_hDDB = nullptr;
+
+/* PNG variables */
+
+static int copy_size = 0;
+static char* pixel_ptr = nullptr;
+static int row = 0;
+static int effWidth;
+static BOOL LoadDIB(const char *filename, HGLOBAL *phDIB, HPALETTE *pPal, int pic_type);
+
+/***************************************************************************
+ Functions
+***************************************************************************/
+
+BOOL ScreenShotLoaded(void)
+{
+ return m_hDDB != NULL;
+}
+
+static BOOL LoadSoftwareScreenShot(const game_driver *drv, LPCSTR lpSoftwareName, int nType)
+{
+ BOOL result;
+ char *s = (char*)alloca(strlen(drv->name) + 1 + strlen(lpSoftwareName) + 5);
+ sprintf(s, "%s", lpSoftwareName);
+ // oldest code --> sprintf(s, "%s/%s.png", drv->name, lpSoftwareName);
+ //sprintf(s, "%s:%s", drv->name, lpSoftwareName);
+ result = LoadDIB(s, &m_hDIB, &m_hPal, nType);
+ return result;
+}
+
+/* Allow us to pre-load the DIB once for future draws */
+BOOL LoadScreenShotEx(int nGame, LPCSTR lpSoftwareName, int nType)
+{
+ BOOL loaded = FALSE;
+
+ /* Delete the last ones */
+ FreeScreenShot();
+
+ /* Load the DIB */
+
+ if (lpSoftwareName)
+ {
+ int nParentIndex = -1;
+ loaded = LoadSoftwareScreenShot(&driver_list::driver(nGame), lpSoftwareName, nType);
+ if (!loaded && DriverIsClone(nGame) == TRUE)
+ {
+ nParentIndex = GetParentIndex(&driver_list::driver(nGame));
+ loaded = LoadSoftwareScreenShot(&driver_list::driver(nParentIndex), lpSoftwareName, nType);
+ }
+ }
+
+ if (!loaded)
+ loaded = LoadDIB(driver_list::driver(nGame).name, &m_hDIB, &m_hPal, nType);
+
+ /* If not loaded, see if there is a clone and try that */
+ if (!loaded)
+ {
+ int nParentIndex = GetParentIndex(&driver_list::driver(nGame));
+ if( nParentIndex >= 0)
+ {
+ loaded = LoadDIB(driver_list::driver(nParentIndex).name, &m_hDIB, &m_hPal, nType);
+ nParentIndex = GetParentIndex(&driver_list::driver(nParentIndex));
+ if (!loaded && nParentIndex >= 0)
+ loaded = LoadDIB(driver_list::driver(nParentIndex).name, &m_hDIB, &m_hPal, nType);
+ }
+ }
+
+ if (loaded)
+ {
+ HDC hdc = GetDC(GetMainWindow());
+ m_hDDB = DIBToDDB(hdc, m_hDIB, NULL);
+ ReleaseDC(GetMainWindow(),hdc);
+ }
+
+ return (loaded) ? TRUE : FALSE;
+}
+
+HANDLE GetScreenShotHandle()
+{
+ return m_hDDB;
+}
+
+int GetScreenShotWidth(void)
+{
+ return ((LPBITMAPINFO)m_hDIB)->bmiHeader.biWidth;
+}
+
+int GetScreenShotHeight(void)
+{
+ return ((LPBITMAPINFO)m_hDIB)->bmiHeader.biHeight;
+}
+
+/* Delete the HPALETTE and Free the HDIB memory */
+void FreeScreenShot(void)
+{
+ if (m_hDIB != NULL)
+ GlobalFree(m_hDIB);
+ m_hDIB = NULL;
+
+ if (m_hPal != NULL)
+ DeletePalette(m_hPal);
+ m_hPal = NULL;
+
+ if (m_hDDB != NULL)
+ DeleteObject(m_hDDB);
+ m_hDDB = NULL;
+
+ ///current_image_game = -1;
+ ///current_image_type = -1;
+}
+
+/***************************************************************************
+ PNG graphics handling functions
+***************************************************************************/
+
+BOOL AllocatePNG(png_info *p, HGLOBAL *phDIB, HPALETTE *pPal)
+{
+ int dibSize;
+ HGLOBAL hDIB;
+ BITMAPINFOHEADER bi;
+ LPBITMAPINFOHEADER lpbi;
+ LPBITMAPINFO bmInfo;
+ LPVOID lpDIBBits = 0;
+ int lineWidth = 0;
+ int nColors = 0;
+ RGBQUAD* pRgb;
+ copy_size = 0;
+ pixel_ptr = 0;
+ row = p->height - 1;
+ lineWidth = p->width;
+
+ if (p->color_type != 2 && p->num_palette <= 256)
+ nColors = p->num_palette;
+
+ bi.biSize = sizeof(BITMAPINFOHEADER);
+ bi.biWidth = p->width;
+ bi.biHeight = p->height;
+ bi.biPlanes = 1;
+ bi.biBitCount = (p->color_type == 3) ? 8 : 24; /* bit_depth; */
+
+ bi.biCompression = BI_RGB;
+ bi.biSizeImage = 0;
+ bi.biXPelsPerMeter = 0;
+ bi.biYPelsPerMeter = 0;
+ bi.biClrUsed = nColors;
+ bi.biClrImportant = nColors;
+
+ effWidth = (long)(((long)lineWidth*bi.biBitCount + 31) / 32) * 4;
+
+ dibSize = (effWidth * bi.biHeight);
+ hDIB = GlobalAlloc(GMEM_FIXED, bi.biSize + (nColors * sizeof(RGBQUAD)) + dibSize);
+
+ if (!hDIB)
+ return FALSE;
+
+ lpbi = (LPBITMAPINFOHEADER)hDIB;
+ memcpy(lpbi, &bi, sizeof(BITMAPINFOHEADER));
+ pRgb = (RGBQUAD*)((LPSTR)lpbi + bi.biSize);
+ lpDIBBits = (LPVOID)((LPSTR)lpbi + bi.biSize + (nColors * sizeof(RGBQUAD)));
+ if (nColors)
+ {
+ int i;
+ /* Convert a PNG palette (3 byte RGBTRIPLEs) to a new color table (4 byte RGBQUADs) */
+ for (i = 0; i < nColors; i++)
+ {
+ RGBQUAD rgb;
+
+ rgb.rgbRed = p->palette[i * 3 + 0];
+ rgb.rgbGreen = p->palette[i * 3 + 1];
+ rgb.rgbBlue = p->palette[i * 3 + 2];
+ rgb.rgbReserved = (BYTE)0;
+
+ pRgb[i] = rgb;
+ }
+ }
+
+ bmInfo = (LPBITMAPINFO)hDIB;
+
+ /* Create a halftone palette if colors > 256. */
+ if (0 == nColors || nColors > 256)
+ {
+ HDC hDC = CreateCompatibleDC(0); /* Desktop DC */
+ *pPal = CreateHalftonePalette(hDC);
+ DeleteDC(hDC);
+ }
+ else
+ {
+ UINT nSize = sizeof(LOGPALETTE) + (sizeof(PALETTEENTRY) * nColors);
+ LOGPALETTE *pLP = (LOGPALETTE *)malloc(nSize);
+ int i;
+
+ pLP->palVersion = 0x300;
+ pLP->palNumEntries = nColors;
+
+ for (i = 0; i < nColors; i++)
+ {
+ pLP->palPalEntry[i].peRed = bmInfo->bmiColors[i].rgbRed;
+ pLP->palPalEntry[i].peGreen = bmInfo->bmiColors[i].rgbGreen;
+ pLP->palPalEntry[i].peBlue = bmInfo->bmiColors[i].rgbBlue;
+ pLP->palPalEntry[i].peFlags = 0;
+ }
+
+ *pPal = CreatePalette(pLP);
+
+ free (pLP);
+ }
+
+ copy_size = dibSize;
+ pixel_ptr = (char*)lpDIBBits;
+ *phDIB = hDIB;
+ return TRUE;
+}
+
+inline void store_pixels(UINT8 *buf, int len)
+{
+ if (pixel_ptr && copy_size)
+ {
+ memcpy(&pixel_ptr[row * effWidth], buf, len);
+ row--;
+ copy_size -= len;
+ }
+}
+
+
+/* Copied and modified from png.c
+ logerror doesn't work here... changed to printf */
+static int png_read_bitmap_gui(util::core_file &mfile, HGLOBAL *phDIB, HPALETTE *pPAL)
+{
+ png_info p;
+ UINT32 i;
+ int bytespp;
+
+ if (png_read_file(mfile, &p) != PNGERR_NONE)
+ return 0;
+
+ if (p.color_type != 3 && p.color_type != 2)
+ {
+ printf("PNG Unsupported color type %i (has to be 2 or 3)\n", p.color_type);
+ //png_free(&p);
+ //return 0; Leave in so ppl can see incompatibility
+ }
+
+ if (p.interlace_method != 0)
+ {
+ printf("PNG Interlace unsupported\n");
+ png_free(&p);
+ return 0;
+ }
+
+ /* Convert < 8 bit to 8 bit */
+ png_expand_buffer_8bit(&p);
+
+ if (!AllocatePNG(&p, phDIB, pPAL))
+ {
+ printf("PNG Unable to allocate memory to display screenshot\n");
+ png_free(&p);
+ return 0;
+ }
+
+ bytespp = (p.color_type == 2) ? 3 : 1;
+
+ for (i = 0; i < p.height; i++)
+ {
+ UINT8 *ptr = p.image + i * (p.width * bytespp);
+
+ if (p.color_type == 2) /*(p->bit_depth > 8) */
+ {
+ int j;
+ UINT8 bTmp;
+
+ for (j = 0; j < p.width; j++)
+ {
+ bTmp = ptr[0];
+ ptr[0] = ptr[2];
+ ptr[2] = bTmp;
+ ptr += 3;
+ }
+ }
+ store_pixels(p.image + i * (p.width * bytespp), p.width * bytespp);
+ }
+
+ png_free(&p);
+
+ return 1;
+}
+
+
+
+/***************************************************************************
+ File search functions
+***************************************************************************/
+
+static osd_file::error OpenBkgroundFile(const char *filename, util::core_file::ptr &file)
+{
+ osd_file::error filerr;
+
+ // clear out result
+ file = NULL;
+
+ // look for the raw file
+ std::string fname (filename);
+ filerr = util::core_file::open(fname.c_str(), OPEN_FLAG_READ, file);
+
+ return filerr;
+}
+
+static osd_file::error OpenRawDIBFile(const char *dir_name, const char *filename, util::core_file::ptr &file)
+{
+ osd_file::error filerr;
+
+ // clear out result
+ file = NULL;
+
+ // look for the raw file
+ std::string fname = std::string(dir_name) + PATH_SEPARATOR + std::string(filename);
+ filerr = util::core_file::open(fname.c_str(), OPEN_FLAG_READ, file);
+
+ return filerr;
+}
+
+static osd_file::error OpenZipDIBFile(const char *dir_name, const char *zip_name, const char *filename, util::core_file::ptr &file, void **buffer)
+{
+ osd_file::error filerr = osd_file::error::NOT_FOUND;
+ util::archive_file::error ziperr;
+ util::archive_file::ptr zip;
+
+ // clear out result
+ file = NULL;
+
+ // look into zip file
+ std::string fname = std::string(dir_name) + PATH_SEPARATOR + std::string(zip_name) + ".zip";
+ ziperr = util::archive_file::open_zip(fname, zip);
+
+ if (ziperr == util::archive_file::error::NONE)
+ {
+ int res = zip->search(filename, false);
+ if (res >= 0)
+ {
+ *buffer = malloc(zip->current_uncompressed_length());
+ ziperr = zip->decompress(*buffer, zip->current_uncompressed_length());
+ if (ziperr == util::archive_file::error::NONE)
+ {
+ filerr = util::core_file::open_ram(*buffer, zip->current_uncompressed_length(), OPEN_FLAG_READ, file);
+ }
+ }
+ zip.reset();
+ }
+ else
+ {
+ fname = std::string(dir_name) + PATH_SEPARATOR + std::string(zip_name) + ".7z";
+ ziperr = util::archive_file::open_7z(fname, zip);
+
+ if (ziperr == util::archive_file::error::NONE)
+ {
+ int res = zip->search(filename, false);
+ if (res >= 0)
+ {
+ *buffer = malloc(zip->current_uncompressed_length());
+ ziperr = zip->decompress(*buffer, zip->current_uncompressed_length());
+ if (ziperr == util::archive_file::error::NONE)
+ {
+ filerr = util::core_file::open_ram(*buffer, zip->current_uncompressed_length(), OPEN_FLAG_READ, file);
+ }
+ }
+ zip.reset();
+ }
+ }
+ return filerr;
+}
+
+// called from winui.c to display the background
+BOOL LoadDIBBG(HGLOBAL *phDIB, HPALETTE *pPal)
+{
+ osd_file::error filerr = osd_file::error::NOT_FOUND;
+ util::core_file::ptr file = NULL;
+ BOOL success = FALSE;
+ const char *dir_name;
+ if (pPal != NULL )
+ DeletePalette(pPal);
+
+ dir_name = GetBgDir();
+ filerr = OpenBkgroundFile(dir_name, file);
+ if (filerr == osd_file::error::NONE)
+ {
+ success = png_read_bitmap_gui(*file, phDIB, pPal);
+ file.reset();
+ }
+
+ return success;
+}
+
+// display a snap, cabinet, title, flyer, marquee, pcb, control panel
+static BOOL LoadDIB(const char *filename, HGLOBAL *phDIB, HPALETTE *pPal, int pic_type)
+{
+ osd_file::error filerr = osd_file::error::NOT_FOUND; // defined in osdcore.h
+ util::core_file::ptr file = NULL;
+ BOOL success = FALSE;
+ const char *dir_name;
+ const char *zip_name;
+ void *buffer = NULL;
+ std::string fname;
+ if (pPal != NULL )
+ DeletePalette(pPal);
+
+ char *system_name = 0;
+ char *file_name = 0;
+ char* dir_name1 = 0;
+ int i,j;
+ bool ok = FALSE; // TRUE indicates split success
+
+ switch (pic_type)
+ {
+ case TAB_SCREENSHOT:
+ dir_name = GetImgDir();
+ zip_name = "snap";
+ break;
+ case TAB_FLYER:
+ dir_name = GetFlyerDir();
+ zip_name = "flyers";
+ break;
+ case TAB_CABINET:
+ dir_name = GetCabinetDir();
+ zip_name = "cabinets";
+ break;
+ case TAB_MARQUEE:
+ dir_name = GetMarqueeDir();
+ zip_name = "marquees";
+ break;
+ case TAB_TITLE:
+ dir_name = GetTitlesDir();
+ zip_name = "titles";
+ break;
+ case TAB_CONTROL_PANEL:
+ dir_name = GetControlPanelDir();
+ zip_name = "cpanel";
+ break;
+ case TAB_PCB :
+ dir_name = GetPcbDir();
+ zip_name = "pcb";
+ break;
+ default :
+ // in case a non-image tab gets here, which can happen
+ return FALSE;
+ }
+
+ // allocate space
+ system_name = (char*)malloc(strlen(filename) + 1);
+ file_name = (char*)malloc(strlen(filename) + 1);
+
+ // if the filename contains a system, split them
+
+ // get system = find colon and truncate there
+ for (i = 0; filename[i] && !ok; i++)
+ {
+ if (filename[i] != ':')
+ system_name[i] = filename[i];
+ else
+ {
+ ok = TRUE;
+ system_name[i] = '\0';
+ }
+ }
+ system_name[i] = '\0'; // 'i' is one more here than above but needed if no colon
+
+ // now left-justify the filename
+ if (ok)
+ {
+ for (j = 0; filename[i]; j++,i++)
+ file_name[j] = filename[i];
+ file_name[j] = '\0';
+ }
+ else
+ // it wasn't a software title, copy over to get around const nonsense
+ {
+ for (i = 0; filename[i]; i++)
+ file_name[i] = filename[i];
+ file_name[i] = '\0';
+ }
+
+ // another const workaround
+ dir_name1 = (char*)malloc(strlen(dir_name) + 2);
+ for (i = 0; dir_name[i]; i++)
+ dir_name1[i] = dir_name[i];
+ dir_name1[i++] = ';';
+ dir_name1[i] = '\0';
+
+ // Support multiple paths
+ char* dir_one = strtok(dir_name1, ";");
+
+ while (dir_one && filerr != osd_file::error::NONE)
+ {
+ //Add handling for the displaying of all the different supported snapshot pattern types
+ //%g
+
+ // Do software checks first
+ if (ok)
+ {
+ // Try dir/system/game.png
+ fname = std::string(system_name) + PATH_SEPARATOR + std::string(file_name) + ".png";
+ filerr = OpenRawDIBFile(dir_one, fname.c_str(), file);
+
+ // Try dir/system.zip/game.png
+ if (filerr != osd_file::error::NONE)
+ {
+ fname = std::string(file_name) + ".png";
+ filerr = OpenZipDIBFile(dir_one, system_name, fname.c_str(), file, &buffer);
+ }
+
+ // Try dir/system.zip/system/game.png
+ if (filerr != osd_file::error::NONE)
+ {
+ fname = std::string(system_name) + "/" + std::string(file_name) + ".png";
+ filerr = OpenZipDIBFile(dir_one, system_name, fname.c_str(), file, &buffer);
+ }
+
+ // Try dir/zipfile/system/game.png
+ if (filerr != osd_file::error::NONE)
+ {
+ filerr = OpenZipDIBFile(dir_one, zip_name, fname.c_str(), file, &buffer);
+ }
+ }
+
+ // give up on software-specific, try dir/system.png
+ if (filerr != osd_file::error::NONE)
+ {
+ fname = std::string(system_name) + ".png";
+ filerr = OpenRawDIBFile(dir_one, fname.c_str(), file);
+ }
+
+ // For SNAPS only, try filenames with 0000.
+ if (pic_type == TAB_SCREENSHOT)
+ {
+ if (filerr != osd_file::error::NONE)
+ {
+ //%g/%i
+ fname = std::string(system_name) + PATH_SEPARATOR + "0000.png";
+ filerr = OpenRawDIBFile(dir_one, fname.c_str(), file);
+ }
+ if (filerr != osd_file::error::NONE)
+ {
+ //%g%i
+ fname = std::string(system_name) + "0000.png";
+ filerr = OpenRawDIBFile(dir_one, fname.c_str(), file);
+ }
+ if (filerr != osd_file::error::NONE)
+ {
+ //%g/%g%i
+ fname = std::string(system_name) + PATH_SEPARATOR + std::string(system_name) + "0000.png";
+ filerr = OpenRawDIBFile(dir_one, fname.c_str(), file);
+ }
+ }
+
+ // Try dir/zipfile/system.png
+ if (filerr != osd_file::error::NONE)
+ {
+ fname = std::string(file_name) + ".png";
+ filerr = OpenZipDIBFile(dir_one, zip_name, fname.c_str(), file, &buffer);
+ }
+
+ dir_one = strtok(NULL, ";");
+ }
+
+ if (filerr == osd_file::error::NONE)
+ {
+ success = png_read_bitmap_gui(*file, phDIB, pPal);
+ file.reset();
+ }
+
+ // free the buffer if we have to
+ if (buffer != NULL)
+ free(buffer);
+ free(system_name);
+ free(file_name);
+ free(dir_name1);
+
+ return success;
+}
+
+HBITMAP DIBToDDB(HDC hDC, HANDLE hDIB, LPMYBITMAPINFO desc)
+{
+ LPBITMAPINFOHEADER lpbi;
+ HBITMAP hBM;
+ int nColors;
+ BITMAPINFO * bmInfo = (LPBITMAPINFO)hDIB;
+ LPVOID lpDIBBits;
+
+ if (hDIB == NULL)
+ return NULL;
+
+ lpbi = (LPBITMAPINFOHEADER)hDIB;
+ nColors = lpbi->biClrUsed ? lpbi->biClrUsed : 1 << lpbi->biBitCount;
+
+ if (bmInfo->bmiHeader.biBitCount > 8)
+ lpDIBBits = (LPVOID)((LPDWORD)(bmInfo->bmiColors +
+ bmInfo->bmiHeader.biClrUsed) +
+ ((bmInfo->bmiHeader.biCompression == BI_BITFIELDS) ? 3 : 0));
+ else
+ lpDIBBits = (LPVOID)(bmInfo->bmiColors + nColors);
+
+ if (desc != 0)
+ {
+ /* Store for easy retrieval later */
+ desc->bmWidth = bmInfo->bmiHeader.biWidth;
+ desc->bmHeight = bmInfo->bmiHeader.biHeight;
+ desc->bmColors = (nColors <= 256) ? nColors : 0;
+ }
+
+ hBM = CreateDIBitmap(hDC, /* handle to device context */
+ (LPBITMAPINFOHEADER)lpbi, /* pointer to bitmap info header */
+ (LONG)CBM_INIT, /* initialization flag */
+ lpDIBBits, /* pointer to initialization data */
+ (LPBITMAPINFO)lpbi, /* pointer to bitmap info */
+ DIB_RGB_COLORS); /* color-data usage */
+
+ return hBM;
+}
+
+BOOL LoadScreenShot(int nGame, int nType)
+{
+ return LoadScreenShotEx(nGame, NULL, nType);
+}
+
+/* End of source */
diff --git a/docs/release/src/osd/winui/screenshot.h b/docs/release/src/osd/winui/screenshot.h
new file mode 100644
index 00000000000..ac7103034fe
--- /dev/null
+++ b/docs/release/src/osd/winui/screenshot.h
@@ -0,0 +1,26 @@
+// For licensing and usage information, read docs/winui_license.txt
+//****************************************************************************
+
+#ifndef SCREENSHOT_H
+#define SCREENSHOT_H
+
+typedef struct _mybitmapinfo
+{
+ int bmWidth;
+ int bmHeight;
+ int bmColors;
+} MYBITMAPINFO, *LPMYBITMAPINFO;
+
+extern BOOL LoadScreenShotEx(int nGame, LPCSTR lpSoftwareName, int nType);
+extern BOOL LoadScreenShot(int nGame, int nType);
+extern HANDLE GetScreenShotHandle(void);
+extern int GetScreenShotWidth(void);
+extern int GetScreenShotHeight(void);
+
+extern void FreeScreenShot(void);
+extern BOOL ScreenShotLoaded(void);
+
+extern BOOL LoadDIBBG(HGLOBAL *phDIB, HPALETTE *pPal);
+extern HBITMAP DIBToDDB(HDC hDC, HANDLE hDIB, LPMYBITMAPINFO desc);
+
+#endif
diff --git a/docs/release/src/osd/winui/splitters.cpp b/docs/release/src/osd/winui/splitters.cpp
new file mode 100644
index 00000000000..ce934a14731
--- /dev/null
+++ b/docs/release/src/osd/winui/splitters.cpp
@@ -0,0 +1,379 @@
+// For licensing and usage information, read docs/winui_license.txt
+// MASTER
+//****************************************************************************
+
+ /***************************************************************************
+
+ splitters.c
+
+ Splitter GUI code. - Tree, splitter, list, splitter, pict
+
+ Created 12/03/98 (C) by Mike Haaland (mhaaland@hypertech.com)
+
+***************************************************************************/
+
+
+// standard windows headers
+#include <windows.h>
+#include <windowsx.h>
+
+// MAME/MAMEUI headers
+#include "splitters.h"
+#include "mui_opts.h"
+
+/* Local Variables */
+static BOOL bTracking = 0;
+static int numSplitters = 0;
+static int currentSplitter = 0;
+static HZSPLITTER *splitter;
+static LPHZSPLITTER lpCurSpltr = 0;
+static HCURSOR hSplitterCursor = 0;
+
+int *nSplitterOffset;
+
+BOOL InitSplitters(void)
+{
+ /* load the cursor for the splitter */
+ hSplitterCursor = LoadCursor(GetModuleHandle(0), MAKEINTRESOURCE(IDC_CURSOR_HSPLIT));
+
+ int nSplitterCount = GetSplitterCount();
+
+ splitter = (HZSPLITTER*)malloc(sizeof(HZSPLITTER) * nSplitterCount);
+ if (!splitter)
+ goto error;
+ memset(splitter, 0, sizeof(HZSPLITTER) * nSplitterCount);
+
+ nSplitterOffset = (int*)malloc(sizeof(int) * nSplitterCount);
+ if (!nSplitterOffset)
+ goto error;
+ memset(nSplitterOffset, 0, sizeof(int) * nSplitterCount);
+
+ return TRUE;
+
+error:
+ SplittersExit();
+ return FALSE;
+}
+
+void SplittersExit(void)
+{
+ if (splitter)
+ {
+ free(splitter);
+ splitter = NULL;
+ }
+ if (nSplitterOffset)
+ {
+ free(nSplitterOffset);
+ nSplitterOffset = NULL;
+ }
+}
+
+
+/* Called with hWnd = Parent Window */
+static void CalcSplitter(HWND hWnd, LPHZSPLITTER lpSplitter)
+{
+ POINT p = {0,0};
+ RECT leftRect, rightRect;
+ int dragWidth;
+
+ ClientToScreen(hWnd, &p);
+
+ GetWindowRect(lpSplitter->m_hWnd, &lpSplitter->m_dragRect);
+ GetWindowRect(lpSplitter->m_hWndLeft, &leftRect);
+ GetWindowRect(lpSplitter->m_hWndRight, &rightRect);
+
+ OffsetRect(&lpSplitter->m_dragRect, -p.x, -p.y);
+ OffsetRect(&leftRect, -p.x, -p.y);
+ OffsetRect(&rightRect, -p.x, -p.y);
+
+ dragWidth = lpSplitter->m_dragRect.right - lpSplitter->m_dragRect.left;
+
+ lpSplitter->m_limitRect.left = leftRect.left + 20;
+ lpSplitter->m_limitRect.right = rightRect.right - 20;
+ lpSplitter->m_limitRect.top = lpSplitter->m_dragRect.top;
+ lpSplitter->m_limitRect.bottom = lpSplitter->m_dragRect.bottom;
+ if (lpSplitter->m_func)
+ lpSplitter->m_func(hWnd, &lpSplitter->m_limitRect);
+
+ if (lpSplitter->m_dragRect.left < lpSplitter->m_limitRect.left)
+ lpSplitter->m_dragRect.left = lpSplitter->m_limitRect.left;
+
+ if (lpSplitter->m_dragRect.right > lpSplitter->m_limitRect.right)
+ lpSplitter->m_dragRect.left = lpSplitter->m_limitRect.right - dragWidth;
+
+ lpSplitter->m_dragRect.right = lpSplitter->m_dragRect.left + dragWidth;
+}
+
+void AdjustSplitter2Rect(HWND hWnd, LPRECT lpRect)
+{
+ RECT pRect;
+
+ GetClientRect(hWnd, &pRect);
+
+ if (lpRect->right > pRect.right)
+ lpRect->right = pRect.right;
+
+ lpRect->right = MIN(lpRect->right - GetMinimumScreenShotWindowWidth(), lpRect->right);
+
+ lpRect->left = MAX((pRect.right - (pRect.right - pRect.left)) / 2, lpRect->left);
+}
+
+void AdjustSplitter1Rect(HWND hWnd, LPRECT lpRect)
+{
+}
+
+void RecalcSplitters(void)
+{
+ int i;
+
+ for (i = 0; i < numSplitters; i++)
+ {
+ CalcSplitter(GetParent(splitter[i].m_hWnd), &splitter[i]);
+ nSplitterOffset[i] = splitter[i].m_dragRect.left;
+ }
+
+ for (i = numSplitters - 1; i >= 0; i--)
+ {
+ CalcSplitter(GetParent(splitter[i].m_hWnd), &splitter[i]);
+ nSplitterOffset[i] = splitter[i].m_dragRect.left;
+ }
+
+}
+
+void OnSizeSplitter(HWND hWnd)
+{
+ static bool firstTime = true;
+ bool changed = false;
+ RECT rWindowRect;
+ POINT p = {0,0};
+ int i;
+ int nSplitterCount;
+
+ nSplitterCount = GetSplitterCount();
+
+ if (firstTime)
+ {
+ for (i = 0; i < nSplitterCount; i++)
+ nSplitterOffset[i] = GetSplitterPos(i);
+ changed = true;
+ firstTime = false;
+ }
+
+ GetWindowRect(hWnd, &rWindowRect);
+
+ for (i = 0; i < nSplitterCount; i++)
+ {
+ p.x = 0;
+ p.y = 0;
+ ClientToScreen(splitter[i].m_hWnd, &p);
+
+ /* We must change if our window is not in the window rect */
+ bool bMustChange = !PtInRect(&rWindowRect, p);
+
+ /* We should also change if we are ahead the next splitter */
+ if ((i < nSplitterCount-1) && (nSplitterOffset[i] >= nSplitterOffset[i+1]))
+ bMustChange = true;
+
+ /* ...or if we are behind the previous splitter */
+ if ((i > 0) && (nSplitterOffset[i] <= nSplitterOffset[i-1]))
+ bMustChange = true;
+#ifdef MESS
+ if ((i==1)&&(!GetShowSoftware()))
+ bMustChange = false;
+ if ((i==2)&&(!GetShowScreenShot()))
+ bMustChange = false;
+#endif
+ if (bMustChange)
+ {
+ nSplitterOffset[i] = (rWindowRect.right - rWindowRect.left) * g_splitterInfo[i].dPosition;
+ changed = true;
+ }
+ }
+
+ if (changed)
+ {
+ ResizePickerControls(hWnd);
+ RecalcSplitters();
+ //UpdateScreenShot();
+ }
+}
+
+void AddSplitter(HWND hWnd, HWND hWndLeft, HWND hWndRight, void (*func)(HWND hWnd,LPRECT lpRect))
+{
+ LPHZSPLITTER lpSpltr = &splitter[numSplitters];
+
+ if (numSplitters >= GetSplitterCount())
+ return;
+
+ lpSpltr->m_hWnd = hWnd;
+ lpSpltr->m_hWndLeft = hWndLeft;
+ lpSpltr->m_hWndRight = hWndRight;
+ lpSpltr->m_func = func;
+ CalcSplitter(GetParent(hWnd), lpSpltr);
+
+ numSplitters++;
+}
+
+static void OnInvertTracker(HWND hWnd, const RECT *rect)
+{
+ HDC hDC = GetDC(hWnd);
+ HBRUSH hBrush = CreateSolidBrush(RGB(0xFF, 0xFF, 0xFF));
+ HBRUSH hOldBrush = 0;
+
+ if (hBrush != 0)
+ hOldBrush = (HBRUSH)SelectObject(hDC, hBrush);
+ PatBlt(hDC, rect->left, rect->top, rect->right - rect->left, rect->bottom - rect->top, DSTINVERT);
+ if (hOldBrush != 0)
+ SelectObject(hDC, hOldBrush);
+ ReleaseDC(hWnd, hDC);
+ DeleteBrush(hBrush);
+}
+
+static void StartTracking(HWND hWnd, UINT hitArea)
+{
+ if (!bTracking && lpCurSpltr != 0 && hitArea == SPLITTER_HITITEM)
+ {
+ // Ensure we have and updated cursor structure
+ CalcSplitter(hWnd, lpCurSpltr);
+ // Draw the first splitter shadow
+ OnInvertTracker(hWnd, &lpCurSpltr->m_dragRect);
+ // Capture the mouse
+ SetCapture(hWnd);
+ // Set tracking to TRUE
+ bTracking = TRUE;
+ SetCursor(hSplitterCursor);
+ }
+}
+
+static void StopTracking(HWND hWnd)
+{
+ if (bTracking)
+ {
+ // erase the tracking image
+ OnInvertTracker(hWnd, &lpCurSpltr->m_dragRect);
+ // Release the mouse
+ ReleaseCapture();
+ // set tracking to false
+ bTracking = FALSE;
+ SetCursor(LoadCursor(0, IDC_ARROW));
+ // set the new splitter position
+ nSplitterOffset[currentSplitter] = lpCurSpltr->m_dragRect.left;
+ // Redraw the screen area
+ ResizePickerControls(hWnd);
+ UpdateScreenShot();
+ InvalidateRect(GetMainWindow(),NULL,TRUE);
+ }
+}
+
+static UINT SplitterHitTest(HWND hWnd, POINTS p)
+{
+ RECT rect;
+ POINT pt;
+ int i;
+
+ pt.x = p.x;
+ pt.y = p.y;
+
+ // Check which area we hit
+ ClientToScreen(hWnd, &pt);
+
+ for (i = 0; i < numSplitters; i++)
+ {
+ GetWindowRect(splitter[i].m_hWnd, &rect);
+ if (PtInRect(&rect, pt))
+ {
+ lpCurSpltr = &splitter[i];
+ currentSplitter = i;
+ // We hit the splitter
+ return SPLITTER_HITITEM;
+ }
+ }
+ lpCurSpltr = 0;
+ // We missed the splitter
+ return SPLITTER_HITNOTHING;
+}
+
+void OnMouseMove(HWND hWnd, UINT nFlags, POINTS p)
+{
+ if (bTracking) // move the tracking image
+ {
+ int nWidth;
+ RECT rect;
+ POINT pt;
+
+ pt.x = (int)p.x;
+ pt.y = (int)p.y;
+
+ ClientToScreen(hWnd, &pt);
+ GetWindowRect(hWnd, &rect);
+ if (! PtInRect(&rect, pt))
+ {
+ if ((short)pt.x < (short)rect.left)
+ pt.x = rect.left;
+ if ((short)pt.x > (short)rect.right)
+ pt.x = rect.right;
+ pt.y = rect.top + 1;
+ }
+
+ ScreenToClient(hWnd, &pt);
+
+ // Erase the old tracking image
+ OnInvertTracker(hWnd, &lpCurSpltr->m_dragRect);
+
+ // calc the new one based on p.x draw it
+ nWidth = lpCurSpltr->m_dragRect.right - lpCurSpltr->m_dragRect.left;
+ lpCurSpltr->m_dragRect.right = pt.x + nWidth / 2;
+ lpCurSpltr->m_dragRect.left = pt.x - nWidth / 2;
+
+ if (pt.x - nWidth / 2 > lpCurSpltr->m_limitRect.right)
+ {
+ lpCurSpltr->m_dragRect.right = lpCurSpltr->m_limitRect.right;
+ lpCurSpltr->m_dragRect.left = lpCurSpltr->m_dragRect.right - nWidth;
+ }
+ if (pt.x + nWidth / 2 < lpCurSpltr->m_limitRect.left)
+ {
+ lpCurSpltr->m_dragRect.left = lpCurSpltr->m_limitRect.left;
+ lpCurSpltr->m_dragRect.right = lpCurSpltr->m_dragRect.left + nWidth;
+ }
+ OnInvertTracker(hWnd, &lpCurSpltr->m_dragRect);
+ }
+ else
+ {
+ switch(SplitterHitTest(hWnd, p))
+ {
+ case SPLITTER_HITNOTHING:
+ SetCursor(LoadCursor(0, IDC_ARROW));
+ break;
+ case SPLITTER_HITITEM:
+ SetCursor(hSplitterCursor);
+ break;
+ }
+ }
+}
+
+void OnLButtonDown(HWND hWnd, UINT nFlags, POINTS p)
+{
+ if (!bTracking) // See if we need to start a splitter drag
+ {
+ StartTracking(hWnd, SplitterHitTest(hWnd, p));
+ }
+}
+
+void OnLButtonUp(HWND hWnd, UINT nFlags, POINTS p)
+{
+ if (bTracking)
+ {
+ StopTracking(hWnd);
+ }
+}
+
+int GetSplitterCount(void)
+{
+ int nSplitterCount = 0;
+ while(g_splitterInfo[nSplitterCount].dPosition > 0)
+ nSplitterCount++;
+ return nSplitterCount;
+}
+
+/* End of file */
diff --git a/docs/release/src/osd/winui/splitters.h b/docs/release/src/osd/winui/splitters.h
new file mode 100644
index 00000000000..bbf700b0f32
--- /dev/null
+++ b/docs/release/src/osd/winui/splitters.h
@@ -0,0 +1,81 @@
+// For licensing and usage information, read docs/winui_license.txt
+// MASTER
+//****************************************************************************
+
+/* Written by Mike Haaland <mhaaland@hypertech.com> */
+
+#ifndef SPLITTER_H
+#define SPLITTER_H
+
+#if !defined(MAX)
+#define MIN(a, b) ((a) < (b) ? (a) : (b))
+#define MAX(a, b) ((a) > (b) ? (a) : (b))
+#endif
+
+#include "resource.h"
+#include "winui.h"
+#define SPLITTER_WIDTH 4
+#define MIN_VIEW_WIDTH 10
+
+enum eSplitterHits
+{
+ SPLITTER_HITNOTHING = 0,
+ SPLITTER_HITITEM
+};
+
+typedef struct horzSplitter
+{
+ HWND m_hWnd;
+ HWND m_hWndLeft;
+ HWND m_hWndRight;
+ RECT m_limitRect;
+ RECT m_dragRect;
+ void (*m_func)(HWND hWnd, LPRECT lpRect);
+} HZSPLITTER, *LPHZSPLITTER;
+
+/* Splitter routines */
+void OnMouseMove(HWND hWnd, UINT nFlags, POINTS p);
+void OnLButtonDown(HWND hWnd, UINT nFlags, POINTS p);
+void OnLButtonUp(HWND hWnd, UINT nFlags, POINTS p);
+void OnSizeSplitter(HWND hWnd);
+void AddSplitter(HWND hWnd, HWND hWndLeft, HWND hWndRight,
+ void (*func)(HWND hWnd,LPRECT lpRect));
+void RecalcSplitters(void);
+void AdjustSplitter2Rect(HWND hWnd, LPRECT lpRect);
+void AdjustSplitter1Rect(HWND hWnd, LPRECT lpRect);
+BOOL InitSplitters(void);
+void SplittersExit(void);
+int GetSplitterCount(void);
+
+extern int *nSplitterOffset;
+
+typedef struct
+{
+ double dPosition;
+ int nSplitterWindow;
+ int nLeftWindow;
+ int nRightWindow;
+ void (*pfnAdjust)(HWND hWnd,LPRECT lpRect);
+} SPLITTERINFO;
+
+#ifdef MESS
+const SPLITTERINFO g_splitterInfo[] =
+{
+ { 0.2, IDC_SPLITTER, IDC_TREE, IDC_LIST, AdjustSplitter1Rect },
+ { 0.4, IDC_SPLITTER2, IDC_LIST, IDC_SWLIST, AdjustSplitter1Rect },
+ { 0.6, IDC_SPLITTER3, IDC_SWTAB, IDC_SSFRAME, AdjustSplitter2Rect },
+ { -1 }
+};
+#else
+const SPLITTERINFO g_splitterInfo[] =
+{
+ { 0.25, IDC_SPLITTER, IDC_TREE, IDC_LIST, AdjustSplitter1Rect },
+ { 0.5, IDC_SPLITTER2, IDC_LIST, IDC_SSFRAME, AdjustSplitter2Rect },
+ { -1 }
+};
+#endif
+
+//extern const SPLITTERINFO g_splitterInfo[];
+
+
+#endif /* SPLITTER_H */
diff --git a/docs/release/src/osd/winui/tabview.cpp b/docs/release/src/osd/winui/tabview.cpp
new file mode 100644
index 00000000000..d5971275819
--- /dev/null
+++ b/docs/release/src/osd/winui/tabview.cpp
@@ -0,0 +1,335 @@
+// For licensing and usage information, read docs/winui_license.txt
+//****************************************************************************
+
+// standard windows headers
+#include <windows.h>
+#include <windowsx.h>
+#include <shellapi.h>
+#include <commctrl.h>
+#include <commdlg.h>
+#include <wingdi.h>
+
+// MAME/MAMEUI headers
+#include "winui.h"
+#include "tabview.h"
+#include "emu.h"
+#include "mui_util.h"
+#include "strconv.h"
+
+
+#ifdef __GNUC__
+#pragma GCC diagnostic ignored "-Wunused-but-set-variable"
+#endif
+
+
+struct TabViewInfo
+{
+ const struct TabViewCallbacks *pCallbacks;
+ int nTabCount;
+ WNDPROC pfnParentWndProc;
+};
+
+
+
+static struct TabViewInfo *GetTabViewInfo(HWND hWnd)
+{
+ LONG_PTR l;
+ l = GetWindowLongPtr(hWnd, GWLP_USERDATA);
+ return (struct TabViewInfo *) l;
+}
+
+
+
+static LRESULT CallParentWndProc(WNDPROC pfnParentWndProc,
+ HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
+{
+ LRESULT rc;
+
+ if (!pfnParentWndProc)
+ pfnParentWndProc = GetTabViewInfo(hWnd)->pfnParentWndProc;
+
+ if (IsWindowUnicode(hWnd))
+ rc = CallWindowProcW(pfnParentWndProc, hWnd, message, wParam, lParam);
+ else
+ rc = CallWindowProcA(pfnParentWndProc, hWnd, message, wParam, lParam);
+ return rc;
+}
+
+
+
+static LRESULT CALLBACK TabViewWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
+{
+ struct TabViewInfo *pTabViewInfo;
+ WNDPROC pfnParentWndProc;
+ BOOL bHandled = FALSE;
+ LRESULT rc = 0;
+
+ pTabViewInfo = GetTabViewInfo(hWnd);
+ pfnParentWndProc = pTabViewInfo->pfnParentWndProc;
+
+ switch(message)
+ {
+ case WM_DESTROY:
+ free(pTabViewInfo);
+ SetWindowLongPtr(hWnd, GWLP_WNDPROC, (LONG_PTR) pfnParentWndProc);
+ SetWindowLongPtr(hWnd, GWLP_USERDATA, (LONG_PTR) NULL);
+ break;
+ }
+
+ if (!bHandled)
+ rc = CallParentWndProc(pfnParentWndProc, hWnd, message, wParam, lParam);
+
+ switch(message)
+ {
+ case WM_MOVE:
+ case WM_SIZE:
+ if (pTabViewInfo->pCallbacks->pfnOnMoveSize)
+ pTabViewInfo->pCallbacks->pfnOnMoveSize();
+ break;
+ }
+
+ return rc;
+}
+
+
+
+static int TabView_GetTabFromTabIndex(HWND hwndTabView, int tab_index)
+{
+ int shown_tabs = -1;
+ int i;
+ struct TabViewInfo *pTabViewInfo;
+
+ pTabViewInfo = GetTabViewInfo(hwndTabView);
+
+ for (i = 0; i < pTabViewInfo->nTabCount; i++)
+ {
+ if (!pTabViewInfo->pCallbacks->pfnGetShowTab || pTabViewInfo->pCallbacks->pfnGetShowTab(i))
+ {
+ shown_tabs++;
+ if (shown_tabs == tab_index)
+ return i;
+ }
+ }
+ dprintf("invalid tab index %i\n", tab_index);
+ return 0;
+}
+
+
+
+int TabView_GetCurrentTab(HWND hwndTabView)
+{
+ struct TabViewInfo *pTabViewInfo;
+ LPCSTR pszTab = NULL;
+ LPCSTR pszThatTab;
+ int i, nTab = -1;
+
+ pTabViewInfo = GetTabViewInfo(hwndTabView);
+
+ if (pTabViewInfo->pCallbacks->pfnGetCurrentTab)
+ pszTab = pTabViewInfo->pCallbacks->pfnGetCurrentTab();
+
+ if (pszTab)
+ {
+ if (pTabViewInfo->pCallbacks->pfnGetTabShortName)
+ {
+ for (i = 0; i < pTabViewInfo->nTabCount; i++)
+ {
+ pszThatTab = pTabViewInfo->pCallbacks->pfnGetTabShortName(i);
+ if (pszThatTab && !core_stricmp(pszTab, pszThatTab))
+ {
+ nTab = i;
+ break;
+ }
+ }
+ }
+ if (nTab < 0)
+ {
+ nTab = 0;
+ sscanf(pszTab, "%d", &nTab);
+ }
+ }
+ else
+ {
+ nTab = 0;
+ }
+ return nTab;
+}
+
+
+
+void TabView_SetCurrentTab(HWND hwndTabView, int nTab)
+{
+ struct TabViewInfo *pTabViewInfo;
+ LPCSTR pszName;
+ char szBuffer[16];
+
+ pTabViewInfo = GetTabViewInfo(hwndTabView);
+
+ if (pTabViewInfo->pCallbacks->pfnGetTabShortName)
+ {
+ pszName = pTabViewInfo->pCallbacks->pfnGetTabShortName(nTab);
+ }
+ else
+ {
+ snprintf(szBuffer, ARRAY_LENGTH(szBuffer),
+ "%d", nTab);
+ pszName = szBuffer;
+ }
+
+ if (pTabViewInfo->pCallbacks->pfnSetCurrentTab)
+ pTabViewInfo->pCallbacks->pfnSetCurrentTab(pszName);
+}
+
+
+
+static int TabView_GetCurrentTabIndex(HWND hwndTabView)
+{
+ int shown_tabs = 0;
+ int i;
+ int nCurrentTab;
+ struct TabViewInfo *pTabViewInfo;
+
+ pTabViewInfo = GetTabViewInfo(hwndTabView);
+ nCurrentTab = TabView_GetCurrentTab(hwndTabView);
+
+ for (i = 0; i < pTabViewInfo->nTabCount; i++)
+ {
+ if (i == nCurrentTab)
+ break;
+
+ if (!pTabViewInfo->pCallbacks->pfnGetShowTab || pTabViewInfo->pCallbacks->pfnGetShowTab(i))
+ shown_tabs++;
+ }
+ return shown_tabs;
+}
+
+
+
+void TabView_UpdateSelection(HWND hwndTabView)
+{
+ HRESULT res;
+ res = TabCtrl_SetCurSel(hwndTabView, TabView_GetCurrentTabIndex(hwndTabView));
+}
+
+
+
+BOOL TabView_HandleNotify(LPNMHDR lpNmHdr)
+{
+ HWND hwndTabView;
+ struct TabViewInfo *pTabViewInfo;
+ BOOL bResult = FALSE;
+ int nTabIndex, nTab;
+
+ hwndTabView = lpNmHdr->hwndFrom;
+ pTabViewInfo = GetTabViewInfo(hwndTabView);
+
+ switch (lpNmHdr->code)
+ {
+ case TCN_SELCHANGE:
+ nTabIndex = TabCtrl_GetCurSel(hwndTabView);
+ nTab = TabView_GetTabFromTabIndex(hwndTabView, nTabIndex);
+ TabView_SetCurrentTab(hwndTabView, nTab);
+ if (pTabViewInfo->pCallbacks->pfnOnSelectionChanged)
+ pTabViewInfo->pCallbacks->pfnOnSelectionChanged();
+ bResult = TRUE;
+ break;
+ }
+ return bResult;
+}
+
+
+
+void TabView_CalculateNextTab(HWND hwndTabView)
+{
+ struct TabViewInfo *pTabViewInfo;
+ int i;
+ int nCurrentTab;
+
+ pTabViewInfo = GetTabViewInfo(hwndTabView);
+
+ // at most loop once through all options
+ for (i = 0; i < pTabViewInfo->nTabCount; i++)
+ {
+ nCurrentTab = TabView_GetCurrentTab(hwndTabView);
+ TabView_SetCurrentTab(hwndTabView, (nCurrentTab + 1) % pTabViewInfo->nTabCount);
+ nCurrentTab = TabView_GetCurrentTab(hwndTabView);
+
+ if (!pTabViewInfo->pCallbacks->pfnGetShowTab || pTabViewInfo->pCallbacks->pfnGetShowTab(nCurrentTab))
+ {
+ // this tab is being shown, so we're all set
+ return;
+ }
+ }
+}
+
+
+
+void TabView_Reset(HWND hwndTabView)
+{
+ struct TabViewInfo *pTabViewInfo;
+ TC_ITEM tci;
+ int i;
+ TCHAR* t_text;
+ HRESULT res;
+ BOOL b_res;
+
+ pTabViewInfo = GetTabViewInfo(hwndTabView);
+
+ b_res = TabCtrl_DeleteAllItems(hwndTabView);
+
+ memset(&tci, 0, sizeof(tci));
+ tci.mask = TCIF_TEXT;
+ tci.cchTextMax = 20;
+
+ for (i = 0; i < pTabViewInfo->nTabCount; i++)
+ {
+ if (!pTabViewInfo->pCallbacks->pfnGetShowTab || pTabViewInfo->pCallbacks->pfnGetShowTab(i))
+ {
+ t_text = ui_wstring_from_utf8(pTabViewInfo->pCallbacks->pfnGetTabLongName(i));
+ if( !t_text )
+ return;
+ tci.pszText = t_text;
+ res = TabCtrl_InsertItem(hwndTabView, i, &tci);
+ free(t_text);
+ }
+ }
+ TabView_UpdateSelection(hwndTabView);
+}
+
+
+
+BOOL SetupTabView(HWND hwndTabView, const struct TabViewOptions *pOptions)
+{
+ struct TabViewInfo *pTabViewInfo;
+ LONG_PTR l;
+ BOOL bShowTabView;
+
+ assert(hwndTabView);
+
+ // Allocate the list view struct
+ pTabViewInfo = (struct TabViewInfo *) malloc(sizeof(struct TabViewInfo));
+ if (!pTabViewInfo)
+ return FALSE;
+
+ // And fill it out
+ memset(pTabViewInfo, 0, sizeof(*pTabViewInfo));
+ pTabViewInfo->pCallbacks = pOptions->pCallbacks;
+ pTabViewInfo->nTabCount = pOptions->nTabCount;
+
+ // Hook in our wndproc and userdata pointer
+ l = GetWindowLongPtr(hwndTabView, GWLP_WNDPROC);
+ pTabViewInfo->pfnParentWndProc = (WNDPROC) l;
+ SetWindowLongPtr(hwndTabView, GWLP_USERDATA, (LONG_PTR) pTabViewInfo);
+ SetWindowLongPtr(hwndTabView, GWLP_WNDPROC, (LONG_PTR) TabViewWndProc);
+
+ bShowTabView = pTabViewInfo->pCallbacks->pfnGetShowTabCtrl ?
+ pTabViewInfo->pCallbacks->pfnGetShowTabCtrl() : TRUE;
+ ShowWindow(hwndTabView, bShowTabView ? SW_SHOW : SW_HIDE);
+
+ TabView_Reset(hwndTabView);
+ if (pTabViewInfo->pCallbacks->pfnOnSelectionChanged)
+ pTabViewInfo->pCallbacks->pfnOnSelectionChanged();
+ return TRUE;
+}
+
+
diff --git a/docs/release/src/osd/winui/tabview.h b/docs/release/src/osd/winui/tabview.h
new file mode 100644
index 00000000000..77d61b1af7a
--- /dev/null
+++ b/docs/release/src/osd/winui/tabview.h
@@ -0,0 +1,44 @@
+// For licensing and usage information, read docs/winui_license.txt
+//****************************************************************************
+
+#ifndef TABVIEW_H
+#define TABVIEW_H
+
+struct TabViewCallbacks
+{
+ // Options retrieval
+ BOOL (*pfnGetShowTabCtrl)(void);
+ void (*pfnSetCurrentTab)(LPCSTR pszShortName);
+ LPCSTR (*pfnGetCurrentTab)(void);
+ void (*pfnSetShowTab)(int nTab, BOOL show);
+ int (*pfnGetShowTab)(int nTab);
+
+ // Accessors
+ LPCSTR (*pfnGetTabShortName)(int nTab);
+ LPCSTR (*pfnGetTabLongName)(int nTab);
+
+ // Callbacks
+ void (*pfnOnSelectionChanged)(void);
+ void (*pfnOnMoveSize)(void);
+};
+
+struct TabViewOptions
+{
+ const struct TabViewCallbacks *pCallbacks;
+ int nTabCount;
+};
+
+
+BOOL SetupTabView(HWND hwndTabView, const struct TabViewOptions *pOptions);
+
+void TabView_Reset(HWND hwndTabView);
+void TabView_CalculateNextTab(HWND hwndTabView);
+int TabView_GetCurrentTab(HWND hwndTabView);
+void TabView_SetCurrentTab(HWND hwndTabView, int nTab);
+void TabView_UpdateSelection(HWND hwndTabView);
+
+// These are used to handle events received by the parent regarding
+// tabview controls
+BOOL TabView_HandleNotify(LPNMHDR lpNmHdr);
+
+#endif // TABVIEW_H
diff --git a/docs/release/src/osd/winui/treeview.cpp b/docs/release/src/osd/winui/treeview.cpp
new file mode 100644
index 00000000000..fb2b331aa0d
--- /dev/null
+++ b/docs/release/src/osd/winui/treeview.cpp
@@ -0,0 +1,2441 @@
+// For licensing and usage information, read docs/winui_license.txt
+//****************************************************************************
+
+/***************************************************************************
+
+ treeview.c
+
+ TreeView support routines - MSH 11/19/1998
+
+***************************************************************************/
+
+// standard windows headers
+#include <windows.h>
+#include <windowsx.h>
+#include <shellapi.h>
+#include <commctrl.h>
+
+// standard C headers
+#include <stdio.h> // for sprintf
+#include <stdlib.h> // For malloc and free
+#include <ctype.h> // For tolower
+#include <string.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+
+#ifdef _MSC_VER
+#include <direct.h>
+#endif
+#include <tchar.h>
+#include <io.h>
+
+// MAME/MAMEUI headers
+#include "emu.h"
+#include "hash.h"
+#include "mui_util.h"
+#include "bitmask.h"
+#include "winui.h"
+#include "treeview.h"
+#include "resource.h"
+#include "mui_opts.h"
+#include "dialogs.h"
+#include "winutf8.h"
+#include "strconv.h"
+#include "drivenum.h"
+#include "screen.h"
+
+#ifdef _MSC_VER
+#define snprintf _snprintf
+#endif
+
+#ifdef __GNUC__
+#pragma GCC diagnostic ignored "-Wunused-but-set-variable"
+#endif
+
+#define MAX_EXTRA_FOLDERS 256
+
+/***************************************************************************
+ public structures
+ ***************************************************************************/
+
+#define ICON_MAX ARRAY_LENGTH(treeIconNames)
+
+/* Name used for user-defined custom icons */
+/* external *.ico file to look for. */
+
+typedef struct
+{
+ int nResourceID;
+ LPCSTR lpName;
+} TREEICON;
+
+static TREEICON treeIconNames[] =
+{
+ { IDI_FOLDER_OPEN, "foldopen" },
+ { IDI_FOLDER, "folder" },
+ { IDI_FOLDER_AVAILABLE, "foldavail" },
+ { IDI_FOLDER_MANUFACTURER, "foldmanu" },
+ { IDI_FOLDER_UNAVAILABLE, "foldunav" },
+ { IDI_FOLDER_YEAR, "foldyear" },
+ { IDI_FOLDER_SOURCE, "foldsrc" },
+ { IDI_FOLDER_HORIZONTAL, "horz" },
+ { IDI_FOLDER_VERTICAL, "vert" },
+ { IDI_MANUFACTURER, "manufact" },
+ { IDI_WORKING, "working" },
+ { IDI_NONWORKING, "nonwork" },
+ { IDI_YEAR, "year" },
+ { IDI_SOUND, "sound" },
+ { IDI_CPU, "cpu" },
+ { IDI_HARDDISK, "harddisk" },
+ { IDI_SOURCE, "source" }
+};
+
+/***************************************************************************
+ private variables
+ ***************************************************************************/
+
+/* this has an entry for every folder eventually in the UI, including subfolders */
+static TREEFOLDER **treeFolders = 0;
+static UINT numFolders = 0; /* Number of folder in the folder array */
+static UINT next_folder_id = MAX_FOLDERS;
+static UINT folderArrayLength = 0; /* Size of the folder array */
+static LPTREEFOLDER lpCurrentFolder = nullptr; /* Currently selected folder */
+static UINT nCurrentFolder = 0; /* Current folder ID */
+static WNDPROC g_lpTreeWndProc = 0; /* for subclassing the TreeView */
+static HIMAGELIST hTreeSmall = 0; /* TreeView Image list of icons */
+
+/* this only has an entry for each TOP LEVEL extra folder + SubFolders*/
+LPEXFOLDERDATA ExtraFolderData[MAX_EXTRA_FOLDERS * MAX_EXTRA_SUBFOLDERS];
+static int numExtraFolders = 0;
+static int numExtraIcons = 0;
+static char *ExtraFolderIcons[MAX_EXTRA_FOLDERS];
+
+// built in folders and filters
+static LPCFOLDERDATA g_lpFolderData;
+static LPCFILTER_ITEM g_lpFilterList;
+
+/***************************************************************************
+ private function prototypes
+ ***************************************************************************/
+
+extern BOOL InitFolders(void);
+static BOOL CreateTreeIcons(void);
+static void TreeCtrlOnPaint(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
+static const char* ParseManufacturer(const char *s, int *pParsedChars );
+static const char* TrimManufacturer(const char *s);
+static void CreateAllChildFolders(void);
+static BOOL AddFolder(LPTREEFOLDER lpFolder);
+static LPTREEFOLDER NewFolder(const char *lpTitle, UINT nFolderId, int nParent, UINT nIconId, DWORD dwFlags);
+static void DeleteFolder(LPTREEFOLDER lpFolder);
+
+static LRESULT CALLBACK TreeWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
+
+static int InitExtraFolders(void);
+static void FreeExtraFolders(void);
+static void SetExtraIcons(char *name, int *id);
+static BOOL TryAddExtraFolderAndChildren(int parent_index);
+
+static BOOL TrySaveExtraFolder(LPTREEFOLDER lpFolder);
+
+/***************************************************************************
+ public functions
+ ***************************************************************************/
+
+static BOOL win_move_file_utf8(const char* existingfilename, const char* newfilename)
+{
+ TCHAR* t_existingfilename;
+ TCHAR* t_newfilename;
+ BOOL result = FALSE;
+
+ t_existingfilename = ui_wstring_from_utf8(existingfilename);
+ if( !t_existingfilename )
+ return result;
+
+ t_newfilename = ui_wstring_from_utf8(newfilename);
+ if( !t_newfilename ) {
+ free(t_existingfilename);
+ return result;
+ }
+
+ result = MoveFile(t_existingfilename, t_newfilename);
+
+ free(t_newfilename);
+ free(t_existingfilename);
+
+ return result;
+}
+
+/**************************************************************************
+ * ci_strncmp - case insensitive character array compare
+ *
+ * Returns zero if the first n characters of s1 and s2 are equal,
+ * ignoring case.
+ * stolen from datafile.c
+ **************************************************************************/
+static int ci_strncmp (const char *s1, const char *s2, int n)
+{
+ int c1, c2;
+
+ while (n)
+ {
+ if ((c1 = tolower (*s1)) != (c2 = tolower (*s2)))
+ return (c1 - c2);
+ else if (!c1)
+ break;
+ --n;
+
+ s1++;
+ s2++;
+ }
+ return 0;
+}
+
+
+
+/* De-allocate all folder memory */
+void FreeFolders(void)
+{
+ int i = 0;
+
+ if (treeFolders != NULL)
+ {
+ if (numExtraFolders)
+ {
+ FreeExtraFolders();
+ numFolders -= numExtraFolders;
+ }
+
+ for (i = numFolders - 1; i >= 0; i--)
+ {
+ DeleteFolder(treeFolders[i]);
+ treeFolders[i] = NULL;
+ numFolders--;
+ }
+ free(treeFolders);
+ treeFolders = NULL;
+ }
+ numFolders = 0;
+}
+
+/* Reset folder filters */
+void ResetFilters(void)
+{
+ int i = 0;
+
+ if (treeFolders != 0)
+ {
+ for (i = 0; i < (int)numFolders; i++)
+ {
+ treeFolders[i]->m_dwFlags &= ~F_MASK;
+ }
+ }
+}
+
+void InitTree(LPCFOLDERDATA lpFolderData, LPCFILTER_ITEM lpFilterList)
+{
+ LONG_PTR l;
+
+ g_lpFolderData = lpFolderData;
+ g_lpFilterList = lpFilterList;
+
+ InitFolders();
+
+ /* this will subclass the treeview (where WM_DRAWITEM gets sent for the header control) */
+ l = GetWindowLongPtr(GetTreeView(), GWLP_WNDPROC);
+ g_lpTreeWndProc = (WNDPROC)l;
+ SetWindowLongPtr(GetTreeView(), GWLP_WNDPROC, (LONG_PTR)TreeWndProc);
+}
+
+void SetCurrentFolder(LPTREEFOLDER lpFolder)
+{
+ lpCurrentFolder = (lpFolder == 0) ? treeFolders[0] : lpFolder;
+ nCurrentFolder = (lpCurrentFolder) ? lpCurrentFolder->m_nFolderId : 0;
+}
+
+LPTREEFOLDER GetCurrentFolder(void)
+{
+ return lpCurrentFolder;
+}
+
+UINT GetCurrentFolderID(void)
+{
+ return nCurrentFolder;
+}
+
+int GetNumFolders(void)
+{
+ return numFolders;
+}
+
+LPTREEFOLDER GetFolder(UINT nFolder)
+{
+ return (nFolder < numFolders) ? treeFolders[nFolder] : NULL;
+}
+
+LPTREEFOLDER GetFolderByID(UINT nID)
+{
+ UINT i;
+
+ for (i = 0; i < numFolders; i++)
+ {
+ if (treeFolders[i]->m_nFolderId == nID)
+ {
+ return treeFolders[i];
+ }
+ }
+
+ return (LPTREEFOLDER)0;
+}
+
+void AddGame(LPTREEFOLDER lpFolder, UINT nGame)
+{
+ if (lpFolder)
+ SetBit(lpFolder->m_lpGameBits, nGame);
+}
+
+void RemoveGame(LPTREEFOLDER lpFolder, UINT nGame)
+{
+ ClearBit(lpFolder->m_lpGameBits, nGame);
+}
+
+int FindGame(LPTREEFOLDER lpFolder, int nGame)
+{
+ return FindBit(lpFolder->m_lpGameBits, nGame, TRUE);
+}
+
+// Called to re-associate games with folders
+void ResetWhichGamesInFolders(void)
+{
+ UINT i, jj, k;
+ BOOL b;
+ int nGames = driver_list::total();
+
+ for (i = 0; i < numFolders; i++)
+ {
+ LPTREEFOLDER lpFolder = treeFolders[i];
+ // setup the games in our built-in folders
+ for (k = 0; g_lpFolderData[k].m_lpTitle; k++)
+ {
+ if (lpFolder->m_nFolderId == g_lpFolderData[k].m_nFolderId)
+ {
+ if (g_lpFolderData[k].m_pfnQuery || g_lpFolderData[k].m_bExpectedResult)
+ {
+ SetAllBits(lpFolder->m_lpGameBits, FALSE);
+ for (jj = 0; jj < nGames; jj++)
+ {
+ // invoke the query function
+ b = g_lpFolderData[k].m_pfnQuery ? g_lpFolderData[k].m_pfnQuery(jj) : TRUE;
+
+ // if we expect FALSE, flip the result
+ if (!g_lpFolderData[k].m_bExpectedResult)
+ b = !b;
+
+ // if we like what we hear, add the game
+ if (b)
+ AddGame(lpFolder, jj);
+ }
+ }
+ break;
+ }
+ }
+ }
+}
+
+
+/* Used to build the GameList */
+bool GameFiltered(int nGame, DWORD dwMask)
+{
+ int i;
+ LPTREEFOLDER lpFolder = GetCurrentFolder();
+ LPTREEFOLDER lpParent = nullptr;
+
+ //Filter out the Bioses on all Folders, except for the Bios Folder
+ if (lpFolder != nullptr && lpFolder->m_nFolderId != FOLDER_BIOS)
+ {
+// if( !( (driver_list::driver(nGame).flags & MACHINE_IS_BIOS_ROOT ) == 0) )
+// return TRUE;
+ if( driver_list::driver(nGame).name[0] == '_' )
+ return TRUE;
+ }
+ // Filter games--return TRUE if the game should be HIDDEN in this view
+ if( GetFilterInherit() )
+ {
+ if( lpFolder != nullptr )
+ {
+ lpParent = GetFolder( lpFolder->m_nParent );
+ if( lpParent != nullptr )
+ {
+ /* Check the Parent Filters and inherit them on child,
+ * The inherited filters don't display on the custom Filter Dialog for the Child folder
+ * No need to promote all games to parent folder, works as is */
+ dwMask |= lpParent->m_dwFlags;
+ }
+ }
+ }
+
+ if (strlen(GetSearchText()) && _stricmp(GetSearchText(), SEARCH_PROMPT))
+ {
+ if (MyStrStrI(driver_list::driver(nGame).description,GetSearchText()) == NULL &&
+ MyStrStrI(driver_list::driver(nGame).name,GetSearchText()) == NULL)
+ return TRUE;
+ }
+ /*Filter Text is already global*/
+ if (MyStrStrI(driver_list::driver(nGame).description,GetFilterText()) == NULL &&
+ MyStrStrI(driver_list::driver(nGame).name,GetFilterText()) == NULL &&
+ MyStrStrI(driver_list::driver(nGame).source_file,GetFilterText()) == NULL &&
+ MyStrStrI(driver_list::driver(nGame).manufacturer,GetFilterText()) == NULL)
+ {
+ return TRUE;
+ }
+ // Are there filters set on this folder?
+ if ((dwMask & F_MASK) == 0)
+ return FALSE;
+
+ // Filter out clones?
+ if (dwMask & F_CLONES && DriverIsClone(nGame))
+ return TRUE;
+
+ for (i = 0; g_lpFilterList[i].m_dwFilterType; i++)
+ {
+ if (dwMask & g_lpFilterList[i].m_dwFilterType)
+ {
+ if (g_lpFilterList[i].m_pfnQuery(nGame) == g_lpFilterList[i].m_bExpectedResult)
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
+/* Get the parent of game in this view */
+BOOL GetParentFound(int nGame) // not used
+{
+ int nParentIndex = -1;
+ LPTREEFOLDER lpFolder = GetCurrentFolder();
+
+ if( lpFolder )
+ {
+ nParentIndex = GetParentIndex(&driver_list::driver(nGame));
+
+ /* return FALSE if no parent is there in this view */
+ if( nParentIndex == -1)
+ return FALSE;
+
+ /* return FALSE if the folder should be HIDDEN in this view */
+ if (TestBit(lpFolder->m_lpGameBits, nParentIndex) == 0)
+ return FALSE;
+
+ /* return FALSE if the game should be HIDDEN in this view */
+ if (GameFiltered(nParentIndex, lpFolder->m_dwFlags))
+ return FALSE;
+
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+LPCFILTER_ITEM GetFilterList(void)
+{
+ return g_lpFilterList;
+}
+
+/***************************************************************************
+ private functions
+ ***************************************************************************/
+
+void CreateSourceFolders(int parent_index)
+{
+ int i,jj, k = 0;
+ int nGames = driver_list::total();
+ int start_folder = numFolders;
+ LPTREEFOLDER lpFolder = treeFolders[parent_index];
+ LPTREEFOLDER lpTemp;
+
+ // no games in top level folder
+ SetAllBits(lpFolder->m_lpGameBits,FALSE);
+ for (jj = 0; jj < nGames; jj++)
+ {
+ const char *s = GetDriverFilename(jj);
+
+ if (s == NULL || s[0] == '\0')
+ continue;
+
+ // look for an existant source treefolder for this game
+ // (likely to be the previous one, so start at the end)
+ for (i=numFolders-1;i>=start_folder;i--)
+ {
+ if (strcmp(treeFolders[i]->m_lpTitle,s) == 0)
+ {
+ AddGame(treeFolders[i],jj);
+ break;
+ }
+ }
+ if (i == start_folder-1)
+ {
+ // nope, it's a source file we haven't seen before, make it.
+ lpTemp = NewFolder(s, next_folder_id, parent_index, IDI_SOURCE, GetFolderFlags(numFolders));
+
+ // Increment next_folder_id here in case code is added above
+ next_folder_id++;
+ AddFolder(lpTemp);
+ AddGame(lpTemp,jj);
+ }
+ }
+ SetNumOptionFolders(k-1);
+}
+
+void CreateScreenFolders(int parent_index)
+{
+ int i, jj, k = 0;
+ int nGames = driver_list::total();
+ int start_folder = numFolders;
+ LPTREEFOLDER lpFolder = treeFolders[parent_index];
+ LPTREEFOLDER lpTemp;
+
+ // no games in top level folder
+ SetAllBits(lpFolder->m_lpGameBits,FALSE);
+ for (jj = 0; jj < nGames; jj++)
+ {
+ int screens = DriverNumScreens(jj);
+ char s[2];
+ itoa(screens, s, 10);
+
+ // look for an existant screens treefolder for this game
+ // (likely to be the previous one, so start at the end)
+ for (i=numFolders-1;i>=start_folder;i--)
+ {
+ if (strcmp(treeFolders[i]->m_lpTitle,s) == 0)
+ {
+ AddGame(treeFolders[i],jj);
+ break;
+ }
+ }
+ if (i == start_folder-1)
+ {
+ // nope, it's a screen file we haven't seen before, make it.
+ lpTemp = NewFolder(s, next_folder_id, parent_index, IDI_FOLDER, GetFolderFlags(numFolders));
+
+ // Increment next_folder_id here in case code is added above
+ next_folder_id++;
+ AddFolder(lpTemp);
+ AddGame(lpTemp,jj);
+ }
+ }
+ SetNumOptionFolders(k-1);
+}
+
+
+void CreateManufacturerFolders(int parent_index)
+{
+ int i, jj;
+ int nGames = driver_list::total();
+ int start_folder = numFolders;
+ LPTREEFOLDER lpFolder = treeFolders[parent_index];
+ LPTREEFOLDER lpTemp;
+
+ // no games in top level folder
+ SetAllBits(lpFolder->m_lpGameBits,FALSE);
+
+ for (jj = 0; jj < nGames; jj++)
+ {
+ const char *manufacturer = driver_list::driver(jj).manufacturer;
+ int iChars = 0;
+ while( manufacturer != NULL && manufacturer[0] != '\0' )
+ {
+ const char *s = ParseManufacturer(manufacturer, &iChars);
+ manufacturer += iChars;
+ //shift to next start char
+ if( s != NULL && *s != 0 )
+ {
+ const char *t = TrimManufacturer(s);
+ for (i=numFolders-1;i>=start_folder;i--)
+ {
+ //RS Made it case insensitive
+ if (ci_strncmp(treeFolders[i]->m_lpTitle,t,20) == 0 )
+ {
+ AddGame(treeFolders[i],jj);
+ break;
+ }
+ }
+ if (i == start_folder-1)
+ {
+ // nope, it's a manufacturer we haven't seen before, make it.
+ lpTemp = NewFolder(t, next_folder_id, parent_index, IDI_MANUFACTURER, GetFolderFlags(numFolders));
+ AddFolder(lpTemp);
+ AddGame(lpTemp,jj);
+ }
+ }
+ }
+ }
+}
+
+/* Make a reasonable name out of the one found in the driver array */
+static const char* ParseManufacturer(const char *s, int *pParsedChars )
+{
+ static char tmp[256];
+ char* ptmp;
+ char *t;
+ *pParsedChars= 0;
+
+ if ( *s == '?' || *s == '<' || s[3] == '?' )
+ {
+ (*pParsedChars) = strlen(s);
+ return "<unknown>";
+ }
+
+ ptmp = tmp;
+ /*if first char is a space, skip it*/
+ if( *s == ' ' )
+ {
+ (*pParsedChars)++;
+ ++s;
+ }
+ while( *s )
+ {
+ /* combinations where to end string */
+
+ if (
+ ( (*s == ' ') && ( s[1] == '(' || s[1] == '/' || s[1] == '+' ) ) ||
+ ( *s == ']' ) ||
+ ( *s == '/' ) ||
+ ( *s == '?' )
+ )
+ {
+ (*pParsedChars)++;
+ if( s[1] == '/' || s[1] == '+' )
+ (*pParsedChars)++;
+ break;
+ }
+ if( s[0] == ' ' && s[1] == '?' )
+ {
+ (*pParsedChars) += 2;
+ s+=2;
+ }
+
+ /* skip over opening braces*/
+
+ if ( *s != '[' )
+ {
+ *ptmp++ = *s;
+ }
+ (*pParsedChars)++;
+ /*for "distributed by" and "supported by" handling*/
+ if( ( (s[1] == ',') && (s[2] == ' ') && ( (s[3] == 's') || (s[3] == 'd') ) ) )
+ {
+ //*ptmp++ = *s;
+ ++s;
+ break;
+ }
+ ++s;
+ }
+ *ptmp = '\0';
+ t = tmp;
+ if( tmp[0] == '(' || tmp[strlen(tmp)-1] == ')' || tmp[0] == ',')
+ {
+ ptmp = strchr( tmp,'(' );
+ if ( ptmp == NULL )
+ {
+ ptmp = strchr( tmp,',' );
+ if( ptmp != NULL)
+ {
+ //parse the new "supported by" and "distributed by"
+ ptmp++;
+
+ if (ci_strncmp(ptmp, " supported by", 13) == 0)
+ {
+ ptmp += 13;
+ }
+ else if (ci_strncmp(ptmp, " distributed by", 15) == 0)
+ {
+ ptmp += 15;
+ }
+ else
+ {
+ return NULL;
+ }
+ }
+ else
+ {
+ ptmp = tmp;
+ if ( ptmp == NULL )
+ {
+ return NULL;
+ }
+ }
+ }
+ if( tmp[0] == '(' || tmp[0] == ',')
+ {
+ ptmp++;
+ }
+ if (ci_strncmp(ptmp, "licensed from ", 14) == 0)
+ {
+ ptmp += 14;
+ }
+ // for the licenced from case
+ if (ci_strncmp(ptmp, "licenced from ", 14) == 0)
+ {
+ ptmp += 14;
+ }
+
+ while ( (*ptmp != ')' ) && (*ptmp != '/' ) && *ptmp != '\0')
+ {
+ if (*ptmp == ' ' && ci_strncmp(ptmp, " license", 8) == 0)
+ {
+ break;
+ }
+ if (*ptmp == ' ' && ci_strncmp(ptmp, " licence", 8) == 0)
+ {
+ break;
+ }
+ *t++ = *ptmp++;
+ }
+
+ *t = '\0';
+ }
+
+ *ptmp = '\0';
+ return tmp;
+}
+
+/* Analyze Manufacturer Names for typical patterns, that don't distinguish between companies (e.g. Co., Ltd., Inc., etc. */
+static const char* TrimManufacturer(const char *s)
+{
+ //Also remove Country specific suffixes (e.g. Japan, Italy, America, USA, ...)
+ int i=0;
+ char strTemp[256];
+ static char strTemp2[256];
+ int j=0;
+ int k=0;
+ int l = 0;
+ memset(strTemp, '\0', 256 );
+ memset(strTemp2, '\0', 256 );
+ //start analyzing from the back, as these are usually suffixes
+ for(i=strlen(s)-1; i>=0;i-- )
+ {
+
+ l = strlen(strTemp);
+ for(k=l;k>=0; k--)
+ strTemp[k+1] = strTemp[k];
+ strTemp[0] = s[i];
+ strTemp[++l] = '\0';
+ switch (l)
+ {
+ case 2:
+ if( ci_strncmp(strTemp, "co", 2) == 0 )
+ {
+ j=l;
+ while( s[strlen(s)-j-1] == ' ' || s[strlen(s)-j-1] == ',' )
+ {
+ j++;
+ }
+ if( j!=l)
+ {
+ memset(strTemp2, '\0', 256 );
+ strncpy(strTemp2, s, strlen(s)-j );
+ }
+ }
+ break;
+ case 3:
+ if( ci_strncmp(strTemp, "co.", 3) == 0 || ci_strncmp(strTemp, "ltd", 3) == 0 || ci_strncmp(strTemp, "inc", 3) == 0 || ci_strncmp(strTemp, "SRL", 3) == 0 || ci_strncmp(strTemp, "USA", 3) == 0)
+ {
+ j=l;
+ while( s[strlen(s)-j-1] == ' ' || s[strlen(s)-j-1] == ',' )
+ {
+ j++;
+ }
+ if( j!=l)
+ {
+ memset(strTemp2, '\0', 256 );
+ strncpy(strTemp2, s, strlen(s)-j );
+ }
+ }
+ break;
+ case 4:
+ if( ci_strncmp(strTemp, "inc.", 4) == 0 || ci_strncmp(strTemp, "ltd.", 4) == 0 || ci_strncmp(strTemp, "corp", 4) == 0 || ci_strncmp(strTemp, "game", 4) == 0)
+ {
+ j=l;
+ while( s[strlen(s)-j-1] == ' ' || s[strlen(s)-j-1] == ',' )
+ {
+ j++;
+ }
+ if( j!=l)
+ {
+ memset(strTemp2, '\0', 256 );
+ strncpy(strTemp2, s, strlen(s)-j );
+ }
+ }
+ break;
+ case 5:
+ if( ci_strncmp(strTemp, "corp.", 5) == 0 || ci_strncmp(strTemp, "Games", 5) == 0 || ci_strncmp(strTemp, "Italy", 5) == 0 || ci_strncmp(strTemp, "Japan", 5) == 0)
+ {
+ j=l;
+ while( s[strlen(s)-j-1] == ' ' || s[strlen(s)-j-1] == ',' )
+ {
+ j++;
+ }
+ if( j!=l)
+ {
+ memset(strTemp2, '\0', 256 );
+ strncpy(strTemp2, s, strlen(s)-j );
+ }
+ }
+ break;
+ case 6:
+ if( ci_strncmp(strTemp, "co-ltd", 6) == 0 || ci_strncmp(strTemp, "S.R.L.", 6) == 0)
+ {
+ j=l;
+ while( s[strlen(s)-j-1] == ' ' || s[strlen(s)-j-1] == ',' )
+ {
+ j++;
+ }
+ if( j!=l)
+ {
+ memset(strTemp2, '\0', 256 );
+ strncpy(strTemp2, s, strlen(s)-j );
+ }
+ }
+ break;
+ case 7:
+ if( ci_strncmp(strTemp, "co. ltd", 7) == 0 || ci_strncmp(strTemp, "America", 7) == 0)
+ {
+ j=l;
+ while( s[strlen(s)-j-1] == ' ' || s[strlen(s)-j-1] == ',' )
+ {
+ j++;
+ }
+ if( j!=l)
+ {
+ memset(strTemp2, '\0', 256 );
+ strncpy(strTemp2, s, strlen(s)-j );
+ }
+ }
+ break;
+ case 8:
+ if( ci_strncmp(strTemp, "co. ltd.", 8) == 0 )
+ {
+ j=l;
+ while( s[strlen(s)-j-1] == ' ' || s[strlen(s)-j-1] == ',' )
+ {
+ j++;
+ }
+ if( j!=l)
+ {
+ memset(strTemp2, '\0', 256 );
+ strncpy(strTemp2, s, strlen(s)-j );
+ }
+ }
+ break;
+ case 9:
+ if( ci_strncmp(strTemp, "co., ltd.", 9) == 0 || ci_strncmp(strTemp, "gmbh & co", 9) == 0 )
+ {
+ j=l;
+ while( s[strlen(s)-j-1] == ' ' || s[strlen(s)-j-1] == ',' )
+ {
+ j++;
+ }
+ if( j!=l)
+ {
+ memset(strTemp2, '\0', 256 );
+ strncpy(strTemp2, s, strlen(s)-j );
+ }
+ }
+ break;
+ case 10:
+ if( ci_strncmp(strTemp, "corp, ltd.", 10) == 0 || ci_strncmp(strTemp, "industries", 10) == 0 || ci_strncmp(strTemp, "of America", 10) == 0)
+ {
+ j=l;
+ while( s[strlen(s)-j-1] == ' ' || s[strlen(s)-j-1] == ',' )
+ {
+ j++;
+ }
+ if( j!=l)
+ {
+ memset(strTemp2, '\0', 256 );
+ strncpy(strTemp2, s, strlen(s)-j );
+ }
+ }
+ break;
+ case 11:
+ if( ci_strncmp(strTemp, "corporation", 11) == 0 || ci_strncmp(strTemp, "enterprises", 11) == 0 )
+ {
+ j=l;
+ while( s[strlen(s)-j-1] == ' ' || s[strlen(s)-j-1] == ',' )
+ {
+ j++;
+ }
+ if( j!=l)
+ {
+ memset(strTemp2, '\0', 256 );
+ strncpy(strTemp2, s, strlen(s)-j );
+ }
+ }
+ break;
+ case 16:
+ if( ci_strncmp(strTemp, "industries japan", 16) == 0 )
+ {
+ j=l;
+ while( s[strlen(s)-j-1] == ' ' || s[strlen(s)-j-1] == ',' )
+ {
+ j++;
+ }
+ if( j!=l)
+ {
+ memset(strTemp2, '\0', 256 );
+ strncpy(strTemp2, s, strlen(s)-j );
+ }
+ }
+ break;
+ default:
+ break;
+ }
+ }
+ if( *strTemp2 == 0 )
+ return s;
+ return strTemp2;
+}
+
+void CreateCPUFolders(int parent_index)
+{
+ int i, j, device_folder_count = 0;
+ LPTREEFOLDER device_folders[512];
+ LPTREEFOLDER folder;
+ LPTREEFOLDER lpTemp;
+ int nFolder = numFolders;
+
+ for (i = 0; i < driver_list::total(); i++)
+ {
+ machine_config config(driver_list::driver(i),MameUIGlobal());
+
+ // enumerate through all devices
+ for (device_execute_interface &device : execute_interface_iterator(config.root_device()))
+ {
+ // get the name
+ std::string dev_name = device.device().name();
+
+ // do we have a folder for this device?
+ folder = NULL;
+ for (j = 0; j < device_folder_count; j++)
+ {
+ if (!strcmp(dev_name.c_str(), device_folders[j]->m_lpTitle))
+ {
+ folder = device_folders[j];
+ break;
+ }
+ }
+
+ // are we forced to create a folder?
+ if (folder == NULL)
+ {
+ lpTemp = NewFolder(device.device().name(), next_folder_id, parent_index, IDI_CPU, GetFolderFlags(numFolders));
+ AddFolder(lpTemp);
+ folder = treeFolders[nFolder++];
+
+ // record that we found this folder
+ device_folders[device_folder_count++] = folder;
+ }
+
+ // cpu type #'s are one-based
+ AddGame(folder, i);
+ }
+ }
+
+}
+
+void CreateSoundFolders(int parent_index)
+{
+ int i, j, device_folder_count = 0;
+ LPTREEFOLDER device_folders[512];
+ LPTREEFOLDER folder;
+ LPTREEFOLDER lpTemp;
+ int nFolder = numFolders;
+
+ for (i = 0; i < driver_list::total(); i++)
+ {
+ machine_config config(driver_list::driver(i),MameUIGlobal());
+
+ // enumerate through all devices
+
+ for (device_sound_interface &device : sound_interface_iterator(config.root_device()))
+ {
+ // get the name
+ std::string dev_name = device.device().name();
+
+ // do we have a folder for this device?
+ folder = NULL;
+ for (j = 0; j < device_folder_count; j++)
+ {
+ if (!strcmp(dev_name.c_str(), device_folders[j]->m_lpTitle))
+ {
+ folder = device_folders[j];
+ break;
+ }
+ }
+
+ // are we forced to create a folder?
+ if (folder == NULL)
+ {
+
+ lpTemp = NewFolder(device.device().name(), next_folder_id, parent_index, IDI_CPU, GetFolderFlags(numFolders));
+ AddFolder(lpTemp);
+ folder = treeFolders[nFolder++];
+
+ // record that we found this folder
+ device_folders[device_folder_count++] = folder;
+ }
+
+ // cpu type #'s are one-based
+ AddGame(folder, i);
+ }
+ }
+}
+
+void CreateDeficiencyFolders(int parent_index)
+{
+ int jj;
+ int nGames = driver_list::total();
+ LPTREEFOLDER lpFolder = treeFolders[parent_index];
+ LPTREEFOLDER lpProt, lpWrongCol, lpImpCol, lpImpGraph, lpMissSnd, lpImpSnd, lpFlip, lpArt;
+
+ // create our subfolders
+ lpProt = NewFolder("Unemulated Protection", next_folder_id, parent_index, IDI_FOLDER, GetFolderFlags(numFolders));
+ lpWrongCol = NewFolder("Wrong Colors", next_folder_id, parent_index, IDI_FOLDER, GetFolderFlags(numFolders));
+ lpImpCol = NewFolder("Imperfect Colors", next_folder_id, parent_index, IDI_FOLDER, GetFolderFlags(numFolders));
+ lpImpGraph = NewFolder("Imperfect Graphics", next_folder_id, parent_index, IDI_FOLDER, GetFolderFlags(numFolders));
+ lpMissSnd = NewFolder("Missing Sound", next_folder_id, parent_index, IDI_FOLDER, GetFolderFlags(numFolders));
+ lpImpSnd = NewFolder("Imperfect Sound", next_folder_id, parent_index, IDI_FOLDER, GetFolderFlags(numFolders));
+ lpFlip = NewFolder("No Cocktail", next_folder_id, parent_index, IDI_FOLDER, GetFolderFlags(numFolders));
+ lpArt = NewFolder("Requires Artwork", next_folder_id, parent_index, IDI_FOLDER, GetFolderFlags(numFolders));
+ AddFolder(lpProt);
+ AddFolder(lpWrongCol);
+ AddFolder(lpImpCol);
+ AddFolder(lpImpGraph);
+ AddFolder(lpMissSnd);
+ AddFolder(lpImpSnd);
+ AddFolder(lpFlip);
+ AddFolder(lpArt);
+
+ // no games in top level folder
+ SetAllBits(lpFolder->m_lpGameBits,FALSE);
+
+ for (jj = 0; jj < nGames; jj++)
+ {
+ if (driver_list::driver(jj).flags & MACHINE_WRONG_COLORS)
+ {
+ AddGame(lpWrongCol,jj);
+ }
+ if (driver_list::driver(jj).flags & MACHINE_UNEMULATED_PROTECTION)
+ {
+ AddGame(lpProt,jj);
+ }
+ if (driver_list::driver(jj).flags & MACHINE_IMPERFECT_COLORS)
+ {
+ AddGame(lpImpCol,jj);
+ }
+ if (driver_list::driver(jj).flags & MACHINE_IMPERFECT_GRAPHICS)
+ {
+ AddGame(lpImpGraph,jj);
+ }
+ if (driver_list::driver(jj).flags & MACHINE_NO_SOUND)
+ {
+ AddGame(lpMissSnd,jj);
+ }
+ if (driver_list::driver(jj).flags & MACHINE_IMPERFECT_SOUND)
+ {
+ AddGame(lpImpSnd,jj);
+ }
+ if (driver_list::driver(jj).flags & MACHINE_NO_COCKTAIL)
+ {
+ AddGame(lpFlip,jj);
+ }
+ if (driver_list::driver(jj).flags & MACHINE_REQUIRES_ARTWORK)
+ {
+ AddGame(lpArt,jj);
+ }
+ }
+}
+
+void CreateDumpingFolders(int parent_index)
+{
+ int jj;
+ BOOL bBadDump = FALSE;
+ BOOL bNoDump = FALSE;
+ int nGames = driver_list::total();
+ LPTREEFOLDER lpFolder = treeFolders[parent_index];
+ LPTREEFOLDER lpBad, lpNo;
+ const rom_entry *region, *rom;
+ const game_driver *gamedrv;
+
+ // create our two subfolders
+ lpBad = NewFolder("Bad Dump", next_folder_id, parent_index, IDI_FOLDER, GetFolderFlags(numFolders));
+ lpNo = NewFolder("No Dump", next_folder_id, parent_index, IDI_FOLDER, GetFolderFlags(numFolders));
+ AddFolder(lpBad);
+ AddFolder(lpNo);
+
+ // no games in top level folder
+ SetAllBits(lpFolder->m_lpGameBits,FALSE);
+
+ for (jj = 0; jj < nGames; jj++)
+ {
+
+ gamedrv = &driver_list::driver(jj);
+
+ if (!gamedrv->rom)
+ continue;
+ bBadDump = FALSE;
+ bNoDump = FALSE;
+ /* Allocate machine config */
+ machine_config config(*gamedrv,MameUIGlobal());
+
+ for (device_t &device : device_iterator(config.root_device()))
+ {
+ for (region = rom_first_region(device); region; region = rom_next_region(region))
+ {
+ for (rom = rom_first_file(region); rom; rom = rom_next_file(rom))
+ {
+ if (ROMREGION_ISROMDATA(region) || ROMREGION_ISDISKDATA(region) )
+ {
+ //name = ROM_GETNAME(rom);
+ util::hash_collection hashes(ROM_GETHASHDATA(rom));
+ if (hashes.flag(util::hash_collection::FLAG_BAD_DUMP))
+ bBadDump = TRUE;
+ if (hashes.flag(util::hash_collection::FLAG_NO_DUMP))
+ bNoDump = TRUE;
+ }
+ }
+ }
+ }
+ if (bBadDump)
+ {
+ AddGame(lpBad,jj);
+ }
+ if (bNoDump)
+ {
+ AddGame(lpNo,jj);
+ }
+ }
+}
+
+
+void CreateYearFolders(int parent_index)
+{
+ int i, jj;
+ int nGames = driver_list::total();
+ int start_folder = numFolders;
+ LPTREEFOLDER lpFolder = treeFolders[parent_index];
+ LPTREEFOLDER lpTemp;
+
+ // no games in top level folder
+ SetAllBits(lpFolder->m_lpGameBits,FALSE);
+
+ for (jj = 0; jj < nGames; jj++)
+ {
+ char s[100];
+ strcpy(s,driver_list::driver(jj).year);
+
+ if (s[0] == '\0')
+ continue;
+
+ // look for an extant year treefolder for this game
+ // (likely to be the previous one, so start at the end)
+ for (i=numFolders-1;i>=start_folder;i--)
+ {
+ if (strncmp(treeFolders[i]->m_lpTitle,s,5) == 0)
+ {
+ AddGame(treeFolders[i],jj);
+ break;
+ }
+ }
+ if (i == start_folder-1)
+ {
+ // nope, it's a year we haven't seen before, make it.
+ lpTemp = NewFolder(s, next_folder_id, parent_index, IDI_YEAR, GetFolderFlags(numFolders));
+ AddFolder(lpTemp);
+ AddGame(lpTemp,jj);
+ }
+ }
+}
+
+void CreateBIOSFolders(int parent_index)
+{
+ int i, jj;
+ int nGames = driver_list::total();
+ int start_folder = numFolders;
+ const game_driver *drv;
+ int nParentIndex = -1;
+ LPTREEFOLDER lpFolder = treeFolders[parent_index];
+ LPTREEFOLDER lpTemp;
+
+ // no games in top level folder
+ SetAllBits(lpFolder->m_lpGameBits,FALSE);
+
+ for (jj = 0; jj < nGames; jj++)
+ {
+ if ( DriverIsClone(jj) )
+ {
+ nParentIndex = GetParentIndex(&driver_list::driver(jj));
+ if (nParentIndex < 0) return;
+ drv = &driver_list::driver(nParentIndex);
+ }
+ else
+ drv = &driver_list::driver(jj);
+ nParentIndex = GetParentIndex(drv);
+
+ if (nParentIndex < 0 || !driver_list::driver(nParentIndex).description)
+ continue;
+
+ for (i = numFolders-1; i >= start_folder; i--)
+ {
+ if (strcmp(treeFolders[i]->m_lpTitle, driver_list::driver(nParentIndex).description) == 0)
+ {
+ AddGame(treeFolders[i],jj);
+ break;
+ }
+ }
+
+ if (i == start_folder-1)
+ {
+ lpTemp = NewFolder(driver_list::driver(nParentIndex).description, next_folder_id++, parent_index, IDI_CPU, GetFolderFlags(numFolders));
+ AddFolder(lpTemp);
+ AddGame(lpTemp,jj);
+ }
+ }
+}
+
+void CreateResolutionFolders(int parent_index)
+{
+ int i,jj;
+ int nGames = driver_list::total();
+ int start_folder = numFolders;
+ char Resolution[20];
+ LPTREEFOLDER lpFolder = treeFolders[parent_index];
+ LPTREEFOLDER lpVectorV, lpVectorH;
+ LPTREEFOLDER lpTemp;
+
+ // create our two subfolders
+ lpVectorV = NewFolder("Vector (V)", next_folder_id++, parent_index, IDI_FOLDER, GetFolderFlags(numFolders));
+ lpVectorH = NewFolder("Vector (H)", next_folder_id++, parent_index, IDI_FOLDER, GetFolderFlags(numFolders));
+ AddFolder(lpVectorV);
+ AddFolder(lpVectorH);
+
+ // no games in top level folder
+ SetAllBits(lpFolder->m_lpGameBits,FALSE);
+
+ for (jj = 0; jj < nGames; jj++)
+ {
+ machine_config config(driver_list::driver(jj), MameUIGlobal());
+ const screen_device *screen;
+ screen = config.first_screen();
+ if (screen != NULL)
+ {
+ const rectangle &visarea = screen->visible_area();
+
+ if (DriverIsVector(jj))
+ {
+ if (driver_list::driver(jj).flags & ORIENTATION_SWAP_XY)
+ {
+ AddGame(lpVectorV,jj);
+ }
+ else
+ {
+ AddGame(lpVectorH,jj);
+ }
+ }
+ else
+ if (driver_list::driver(jj).flags & ORIENTATION_SWAP_XY)
+ {
+ sprintf(Resolution, "%dx%d (V)",
+ visarea.max_y - visarea.min_y + 1,
+ visarea.max_x - visarea.min_x + 1);
+ }
+ else
+ {
+ sprintf(Resolution, "%dx%d (H)",
+ visarea.max_x - visarea.min_x + 1,
+ visarea.max_y - visarea.min_y + 1);
+ }
+
+ for (i=numFolders-1;i>=start_folder;i--)
+ {
+ if (strcmp(treeFolders[i]->m_lpTitle, Resolution) == 0)
+ {
+ AddGame(treeFolders[i],jj);
+ break;
+ }
+ }
+ if (i == start_folder-1)
+ {
+ lpTemp = NewFolder(Resolution, next_folder_id++, parent_index, IDI_FOLDER, GetFolderFlags(numFolders));
+ AddFolder(lpTemp);
+ AddGame(lpTemp,jj);
+ }
+ }
+ }
+}
+
+void CreateFPSFolders(int parent_index)
+{
+ int i, jj;
+ int nGames = driver_list::total();
+ int nFolder = numFolders;
+ LPTREEFOLDER lpFolder = treeFolders[parent_index];
+ LPTREEFOLDER map[256];
+ LPTREEFOLDER lpTemp;
+ float fps[256];
+ int nFPS = 0;
+
+ // no games in top level folder
+ SetAllBits(lpFolder->m_lpGameBits,FALSE);
+
+ for (i = 0; i < nGames; i++)
+ {
+ float f;
+ machine_config config(driver_list::driver(i), MameUIGlobal());
+ const screen_device *screen;
+ screen = config.first_screen();
+ if (screen != NULL)
+ {
+ f = ATTOSECONDS_TO_HZ(screen->refresh_attoseconds());
+
+ for (jj = 0; jj < nFPS; jj++)
+ if (fps[jj] == f)
+ break;
+
+ if (nFPS == jj)
+ {
+ char buf[50];
+
+ assert(nFPS + 1 < ARRAY_LENGTH(fps));
+ assert(nFPS + 1 < ARRAY_LENGTH(map));
+
+ sprintf(buf, "%f Hz", f);
+
+ lpTemp = NewFolder(buf, next_folder_id++, parent_index, IDI_FOLDER, GetFolderFlags(numFolders));
+ AddFolder(lpTemp);
+ map[nFPS] = treeFolders[nFolder++];
+ fps[nFPS++] = f;
+ }
+
+ AddGame(map[jj],i);
+ }
+ }
+}
+
+// creates child folders of all the top level folders, including custom ones
+void CreateAllChildFolders(void)
+{
+ int num_top_level_folders = numFolders;
+ int i, j;
+
+ for (i = 0; i < num_top_level_folders; i++)
+ {
+ LPTREEFOLDER lpFolder = treeFolders[i];
+ LPCFOLDERDATA lpFolderData = NULL;
+
+ for (j = 0; g_lpFolderData[j].m_lpTitle; j++)
+ {
+ if (g_lpFolderData[j].m_nFolderId == lpFolder->m_nFolderId)
+ {
+ lpFolderData = &g_lpFolderData[j];
+ break;
+ }
+ }
+
+ if (lpFolderData != NULL)
+ {
+ //dprintf("Found built-in-folder id %i %i\n",i,lpFolder->m_nFolderId);
+ if (lpFolderData->m_pfnCreateFolders != NULL)
+ lpFolderData->m_pfnCreateFolders(i);
+ }
+ else
+ {
+ if ((lpFolder->m_dwFlags & F_CUSTOM) == 0)
+ {
+ dprintf("Internal inconsistency with non-built-in folder, but not custom\n");
+ continue;
+ }
+
+ //dprintf("Loading custom folder %i %i\n",i,lpFolder->m_nFolderId);
+
+ // load the extra folder files, which also adds children
+ if (TryAddExtraFolderAndChildren(i) == FALSE)
+ {
+ lpFolder->m_nFolderId = FOLDER_NONE;
+ }
+ }
+ }
+}
+
+// adds these folders to the treeview
+void ResetTreeViewFolders(void)
+{
+ HWND hTreeView = GetTreeView();
+ int i;
+ TVITEM tvi;
+ TVINSERTSTRUCT tvs;
+ BOOL res;
+
+ HTREEITEM shti; // for current child branches
+
+ // currently "cached" parent
+ HTREEITEM hti_parent = NULL;
+ int index_parent = -1;
+
+ res = TreeView_DeleteAllItems(hTreeView);
+
+ //dprintf("Adding folders to tree ui indices %i to %i\n",start_index,end_index);
+
+ tvs.hInsertAfter = TVI_SORT;
+
+ for (i=0;i<numFolders;i++)
+ {
+ LPTREEFOLDER lpFolder = treeFolders[i];
+
+ if (lpFolder->m_nParent == -1)
+ {
+ if (lpFolder->m_nFolderId < MAX_FOLDERS)
+ {
+ // it's a built in folder, let's see if we should show it
+ if (GetShowFolder(lpFolder->m_nFolderId) == FALSE)
+ {
+ continue;
+ }
+ }
+
+ tvi.mask = TVIF_TEXT | TVIF_PARAM | TVIF_IMAGE | TVIF_SELECTEDIMAGE;
+ tvs.hParent = TVI_ROOT;
+ tvi.pszText = lpFolder->m_lptTitle;
+ tvi.lParam = (LPARAM)lpFolder;
+ tvi.iImage = GetTreeViewIconIndex(lpFolder->m_nIconId);
+ tvi.iSelectedImage = 0;
+
+ tvs.item = tvi;
+
+ // Add root branch
+ hti_parent = TreeView_InsertItem(hTreeView, &tvs);
+
+ continue;
+ }
+
+ // not a top level branch, so look for parent
+ if (treeFolders[i]->m_nParent != index_parent)
+ {
+
+ hti_parent = TreeView_GetRoot(hTreeView);
+ while (1)
+ {
+ if (hti_parent == NULL)
+ {
+ // couldn't find parent folder, so it's a built-in but
+ // not shown folder
+ break;
+ }
+
+ tvi.hItem = hti_parent;
+ tvi.mask = TVIF_PARAM;
+ res = TreeView_GetItem(hTreeView,&tvi);
+ if (((LPTREEFOLDER)tvi.lParam) == treeFolders[treeFolders[i]->m_nParent])
+ break;
+
+ hti_parent = TreeView_GetNextSibling(hTreeView,hti_parent);
+ }
+
+ // if parent is not shown, then don't show the child either obviously!
+ if (hti_parent == NULL)
+ continue;
+
+ index_parent = treeFolders[i]->m_nParent;
+ }
+
+ tvi.mask = TVIF_TEXT | TVIF_PARAM | TVIF_IMAGE | TVIF_SELECTEDIMAGE;
+ tvs.hParent = hti_parent;
+ tvi.iImage = GetTreeViewIconIndex(treeFolders[i]->m_nIconId);
+ tvi.iSelectedImage = 0;
+ tvi.pszText = treeFolders[i]->m_lptTitle;
+ tvi.lParam = (LPARAM)treeFolders[i];
+
+ tvs.item = tvi;
+
+ // Add it to this tree branch
+ shti = TreeView_InsertItem(hTreeView, &tvs);
+
+ }
+}
+
+void SelectTreeViewFolder(int folder_id)
+{
+ HWND hTreeView = GetTreeView();
+ HTREEITEM hti;
+ TVITEM tvi;
+ BOOL res;
+
+ memset(&tvi,0,sizeof(tvi));
+
+ hti = TreeView_GetRoot(hTreeView);
+
+ while (hti != NULL)
+ {
+ HTREEITEM hti_next;
+
+ tvi.hItem = hti;
+ tvi.mask = TVIF_PARAM;
+ res = TreeView_GetItem(hTreeView,&tvi);
+
+ if (((LPTREEFOLDER)tvi.lParam)->m_nFolderId == folder_id)
+ {
+ res = TreeView_SelectItem(hTreeView,tvi.hItem);
+ SetCurrentFolder((LPTREEFOLDER)tvi.lParam);
+ return;
+ }
+
+ hti_next = TreeView_GetChild(hTreeView,hti);
+ if (hti_next == NULL)
+ {
+ hti_next = TreeView_GetNextSibling(hTreeView,hti);
+ if (hti_next == NULL)
+ {
+ hti_next = TreeView_GetParent(hTreeView,hti);
+ if (hti_next != NULL)
+ hti_next = TreeView_GetNextSibling(hTreeView,hti_next);
+ }
+ }
+ hti = hti_next;
+ }
+
+ // could not find folder to select
+ // make sure we select something
+ tvi.hItem = TreeView_GetRoot(hTreeView);
+ tvi.mask = TVIF_PARAM;
+ res = TreeView_GetItem(hTreeView,&tvi);
+
+ res = TreeView_SelectItem(hTreeView,tvi.hItem);
+ SetCurrentFolder((LPTREEFOLDER)tvi.lParam);
+}
+
+/*
+ * Does this folder have an INI associated with it?
+ * Currently only TRUE for FOLDER_VECTOR and children
+ * of FOLDER_SOURCE.
+ */
+static BOOL FolderHasIni(LPTREEFOLDER lpFolder) {
+ if (FOLDER_VECTOR == lpFolder->m_nFolderId ||
+ FOLDER_VERTICAL == lpFolder->m_nFolderId ||
+ FOLDER_HORIZONTAL == lpFolder->m_nFolderId) {
+ return TRUE;
+ }
+ if (lpFolder->m_nParent != -1
+ && FOLDER_SOURCE == treeFolders[lpFolder->m_nParent]->m_nFolderId) {
+ return TRUE;
+ }
+ return FALSE;
+}
+
+/* Add a folder to the list. Does not allocate */
+static BOOL AddFolder(LPTREEFOLDER lpFolder)
+{
+ TREEFOLDER **tmpTree = NULL;
+ UINT oldFolderArrayLength = folderArrayLength;
+ if (numFolders + 1 >= folderArrayLength)
+ {
+ folderArrayLength += 500;
+ tmpTree = (TREEFOLDER **)malloc(sizeof(TREEFOLDER **) * folderArrayLength);
+ memcpy(tmpTree,treeFolders,sizeof(TREEFOLDER **) * oldFolderArrayLength);
+ if (treeFolders) free(treeFolders);
+ treeFolders = tmpTree;
+ }
+
+ /* Is there an folder.ini that can be edited? */
+ if (FolderHasIni(lpFolder)) {
+ lpFolder->m_dwFlags |= F_INIEDIT;
+ }
+
+ treeFolders[numFolders] = lpFolder;
+ numFolders++;
+ return TRUE;
+}
+
+/* Allocate and initialize a NEW TREEFOLDER */
+static LPTREEFOLDER NewFolder(const char *lpTitle, UINT nFolderId, int nParent, UINT nIconId, DWORD dwFlags)
+{
+ LPTREEFOLDER lpFolder = (LPTREEFOLDER)malloc(sizeof(TREEFOLDER));
+ memset(lpFolder, '\0', sizeof (TREEFOLDER));
+ lpFolder->m_lpTitle = (LPSTR)malloc(strlen(lpTitle) + 1);
+ strcpy((char *)lpFolder->m_lpTitle,lpTitle);
+ lpFolder->m_lptTitle = ui_wstring_from_utf8(lpFolder->m_lpTitle);
+ lpFolder->m_lpGameBits = NewBits(driver_list::total());
+ lpFolder->m_nFolderId = nFolderId;
+ lpFolder->m_nParent = nParent;
+ lpFolder->m_nIconId = nIconId;
+ lpFolder->m_dwFlags = dwFlags;
+ return lpFolder;
+}
+
+/* Deallocate the passed in LPTREEFOLDER */
+static void DeleteFolder(LPTREEFOLDER lpFolder)
+{
+ if (lpFolder)
+ {
+ if (lpFolder->m_lpGameBits)
+ {
+ DeleteBits(lpFolder->m_lpGameBits);
+ lpFolder->m_lpGameBits = 0;
+ }
+ free(lpFolder->m_lptTitle);
+ lpFolder->m_lptTitle = 0;
+ free(lpFolder->m_lpTitle);
+ lpFolder->m_lpTitle = 0;
+ free(lpFolder);
+ lpFolder = 0;
+ }
+}
+
+/* Can be called to re-initialize the array of treeFolders */
+BOOL InitFolders(void)
+{
+ int i = 0;
+ DWORD dwFolderFlags;
+ LPCFOLDERDATA fData = 0;
+ if (treeFolders != NULL)
+ {
+ for (i = numFolders - 1; i >= 0; i--)
+ {
+ DeleteFolder(treeFolders[i]);
+ treeFolders[i] = 0;
+ numFolders--;
+ }
+ }
+ numFolders = 0;
+ if (folderArrayLength == 0)
+ {
+ folderArrayLength = 200;
+ treeFolders = (TREEFOLDER **)malloc(sizeof(TREEFOLDER **) * folderArrayLength);
+ if (!treeFolders)
+ {
+ folderArrayLength = 0;
+ return 0;
+ }
+ else
+ {
+ memset(treeFolders,'\0', sizeof(TREEFOLDER **) * folderArrayLength);
+ }
+ }
+ // built-in top level folders
+ for (i = 0; g_lpFolderData[i].m_lpTitle; i++)
+ {
+ fData = &g_lpFolderData[i];
+ /* get the saved folder flags */
+ dwFolderFlags = GetFolderFlags(numFolders);
+ /* create the folder */
+ AddFolder(NewFolder(fData->m_lpTitle, fData->m_nFolderId, -1, fData->m_nIconId, dwFolderFlags));
+ }
+
+ numExtraFolders = InitExtraFolders();
+
+ for (i = 0; i < numExtraFolders; i++)
+ {
+ LPEXFOLDERDATA fExData = ExtraFolderData[i];
+
+ // OR in the saved folder flags
+ dwFolderFlags = fExData->m_dwFlags | GetFolderFlags(numFolders);
+ // create the folder
+ //dprintf("creating top level custom folder with icon %i\n",fExData->m_nIconId);
+ AddFolder(NewFolder(fExData->m_szTitle,fExData->m_nFolderId,fExData->m_nParent, fExData->m_nIconId,dwFolderFlags));
+ }
+
+ CreateAllChildFolders();
+ CreateTreeIcons();
+ ResetWhichGamesInFolders();
+ ResetTreeViewFolders();
+ SelectTreeViewFolder(GetSavedFolderID());
+ LoadFolderFlags();
+ return TRUE;
+}
+
+// create iconlist and Treeview control
+static BOOL CreateTreeIcons()
+{
+ HICON hIcon;
+ INT i;
+ HINSTANCE hInst = GetModuleHandle(0);
+
+ int numIcons = ICON_MAX + numExtraIcons;
+ hTreeSmall = ImageList_Create (16, 16, ILC_COLORDDB | ILC_MASK, numIcons, numIcons);
+
+ //dprintf("Trying to load %i normal icons\n",ICON_MAX);
+ for (i = 0; i < ICON_MAX; i++)
+ {
+ hIcon = LoadIconFromFile(treeIconNames[i].lpName);
+ if (!hIcon)
+ hIcon = LoadIcon(hInst, MAKEINTRESOURCE(treeIconNames[i].nResourceID));
+
+ if (ImageList_AddIcon (hTreeSmall, hIcon) == -1)
+ {
+ ErrorMsg("Error creating icon on regular folder, %i %i",i,hIcon != NULL);
+ return FALSE;
+ }
+ }
+
+ //dprintf("Trying to load %i extra custom-folder icons\n",numExtraIcons);
+ for (i = 0; i < numExtraIcons; i++)
+ {
+ if ((hIcon = LoadIconFromFile(ExtraFolderIcons[i])) == 0)
+ hIcon = LoadIcon (hInst, MAKEINTRESOURCE(IDI_FOLDER));
+
+ if (ImageList_AddIcon(hTreeSmall, hIcon) == -1)
+ {
+ ErrorMsg("Error creating icon on extra folder, %i %i",i,hIcon != NULL);
+ return FALSE;
+ }
+ }
+
+ // Be sure that all the small icons were added.
+ if (ImageList_GetImageCount(hTreeSmall) < numIcons)
+ {
+ ErrorMsg("Error with icon list--too few images. %i %i", ImageList_GetImageCount(hTreeSmall),numIcons);
+ return FALSE;
+ }
+
+ // Be sure that all the small icons were added.
+
+ if (ImageList_GetImageCount (hTreeSmall) < ICON_MAX)
+ {
+ ErrorMsg("Error with icon list--too few images. %i < %i", ImageList_GetImageCount(hTreeSmall),(INT)ICON_MAX);
+ return FALSE;
+ }
+
+ // Associate the image lists with the list view control.
+ (void)TreeView_SetImageList(GetTreeView(), hTreeSmall, TVSIL_NORMAL);
+
+ return TRUE;
+}
+
+
+static void TreeCtrlOnPaint(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
+{
+ PAINTSTRUCT ps;
+ HDC hDC;
+ RECT rcClip, rcClient;
+ HDC memDC;
+ HBITMAP bitmap;
+ HBITMAP hOldBitmap;
+
+ HBITMAP hBackground = GetBackgroundBitmap();
+ MYBITMAPINFO *bmDesc = GetBackgroundInfo();
+
+ hDC = BeginPaint(hWnd, &ps);
+
+ GetClipBox(hDC, &rcClip);
+ GetClientRect(hWnd, &rcClient);
+
+ // Create a compatible memory DC
+ memDC = CreateCompatibleDC(hDC);
+
+ // Select a compatible bitmap into the memory DC
+ bitmap = CreateCompatibleBitmap(hDC, rcClient.right - rcClient.left, rcClient.bottom - rcClient.top);
+ hOldBitmap = (HBITMAP)SelectObject(memDC, bitmap);
+
+ // First let the control do its default drawing.
+ CallWindowProc(g_lpTreeWndProc, hWnd, uMsg, (WPARAM)memDC, 0);
+
+ // Draw bitmap in the background
+
+ {
+ HPALETTE hPAL;
+ HDC maskDC;
+ HBITMAP maskBitmap;
+ HDC tempDC;
+ HDC imageDC;
+ HBITMAP bmpImage;
+ HBITMAP hOldBmpImage;
+ HBITMAP hOldMaskBitmap;
+ HBITMAP hOldHBitmap;
+ int i, j;
+ RECT rcRoot;
+
+ // Now create a mask
+ maskDC = CreateCompatibleDC(hDC);
+
+ // Create monochrome bitmap for the mask
+ maskBitmap = CreateBitmap(rcClient.right - rcClient.left, rcClient.bottom - rcClient.top, 1, 1, NULL);
+
+ hOldMaskBitmap = (HBITMAP)SelectObject(maskDC, maskBitmap);
+ SetBkColor(memDC, GetSysColor(COLOR_WINDOW));
+
+ // Create the mask from the memory DC
+ BitBlt(maskDC, 0, 0, rcClient.right - rcClient.left,
+ rcClient.bottom - rcClient.top, memDC,
+ rcClient.left, rcClient.top, SRCCOPY);
+
+ tempDC = CreateCompatibleDC(hDC);
+ hOldHBitmap = (HBITMAP)SelectObject(tempDC, hBackground);
+
+ imageDC = CreateCompatibleDC(hDC);
+ bmpImage = CreateCompatibleBitmap(hDC, rcClient.right - rcClient.left, rcClient.bottom - rcClient.top);
+ hOldBmpImage = (HBITMAP)SelectObject(imageDC, bmpImage);
+
+ hPAL = GetBackgroundPalette();
+ if (hPAL == NULL)
+ hPAL = CreateHalftonePalette(hDC);
+
+ if (GetDeviceCaps(hDC, RASTERCAPS) & RC_PALETTE && hPAL != NULL)
+ {
+ SelectPalette(hDC, hPAL, FALSE);
+ RealizePalette(hDC);
+ SelectPalette(imageDC, hPAL, FALSE);
+ }
+
+ // Get x and y offset
+ TreeView_GetItemRect(hWnd, TreeView_GetRoot(hWnd), &rcRoot, FALSE);
+ rcRoot.left = -GetScrollPos(hWnd, SB_HORZ);
+
+ // Draw bitmap in tiled manner to imageDC
+ for (i = rcRoot.left; i < rcClient.right; i += bmDesc->bmWidth)
+ for (j = rcRoot.top; j < rcClient.bottom; j += bmDesc->bmHeight)
+ BitBlt(imageDC, i, j, bmDesc->bmWidth, bmDesc->bmHeight,
+ tempDC, 0, 0, SRCCOPY);
+
+ // Set the background in memDC to black. Using SRCPAINT with black and any other
+ // color results in the other color, thus making black the transparent color
+ SetBkColor(memDC, RGB(0,0,0));
+ SetTextColor(memDC, RGB(255,255,255));
+ BitBlt(memDC, rcClip.left, rcClip.top, rcClip.right - rcClip.left,
+ rcClip.bottom - rcClip.top,
+ maskDC, rcClip.left, rcClip.top, SRCAND);
+
+ // Set the foreground to black. See comment above.
+ SetBkColor(imageDC, RGB(255,255,255));
+ SetTextColor(imageDC, RGB(0,0,0));
+ BitBlt(imageDC, rcClip.left, rcClip.top, rcClip.right - rcClip.left,
+ rcClip.bottom - rcClip.top,
+ maskDC, rcClip.left, rcClip.top, SRCAND);
+
+ // Combine the foreground with the background
+ BitBlt(imageDC, rcClip.left, rcClip.top, rcClip.right - rcClip.left,
+ rcClip.bottom - rcClip.top,
+ memDC, rcClip.left, rcClip.top, SRCPAINT);
+
+ // Draw the final image to the screen
+ BitBlt(hDC, rcClip.left, rcClip.top, rcClip.right - rcClip.left,
+ rcClip.bottom - rcClip.top,
+ imageDC, rcClip.left, rcClip.top, SRCCOPY);
+
+ SelectObject(maskDC, hOldMaskBitmap);
+ SelectObject(tempDC, hOldHBitmap);
+ SelectObject(imageDC, hOldBmpImage);
+
+ DeleteDC(maskDC);
+ DeleteDC(imageDC);
+ DeleteDC(tempDC);
+ DeleteBitmap(bmpImage);
+ DeleteBitmap(maskBitmap);
+
+ if (GetBackgroundPalette() == NULL)
+ {
+ DeletePalette(hPAL);
+ hPAL = NULL;
+ }
+ }
+
+ SelectObject(memDC, hOldBitmap);
+ DeleteBitmap(bitmap);
+ DeleteDC(memDC);
+ EndPaint(hWnd, &ps);
+ ReleaseDC(hWnd, hDC);
+}
+
+/* Header code - Directional Arrows */
+static LRESULT CALLBACK TreeWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
+{
+ if (GetBackgroundBitmap() != NULL)
+ {
+ switch (uMsg)
+ {
+ case WM_MOUSEMOVE:
+ {
+ if (MouseHasBeenMoved())
+ ShowCursor(TRUE);
+ break;
+ }
+
+ case WM_KEYDOWN :
+ if (wParam == VK_F2)
+ {
+ if (lpCurrentFolder->m_dwFlags & F_CUSTOM)
+ {
+ TreeView_EditLabel(hWnd,TreeView_GetSelection(hWnd));
+ return TRUE;
+ }
+ }
+ break;
+
+ case WM_ERASEBKGND:
+ return TRUE;
+
+ case WM_PAINT:
+ TreeCtrlOnPaint(hWnd, uMsg, wParam, lParam);
+ UpdateWindow(hWnd);
+ break;
+ }
+ }
+
+ /* message not handled */
+ return CallWindowProc(g_lpTreeWndProc, hWnd, uMsg, wParam, lParam);
+}
+
+/*
+ * Filter code - should be moved to filter.c/filter.h
+ * Added 01/09/99 - MSH <mhaaland@hypertech.com>
+ */
+
+/* find a FOLDERDATA by folderID */
+LPCFOLDERDATA FindFilter(DWORD folderID)
+{
+ int i;
+
+ for (i = 0; g_lpFolderData[i].m_lpTitle; i++)
+ {
+ if (g_lpFolderData[i].m_nFolderId == folderID)
+ return &g_lpFolderData[i];
+ }
+ return (LPFOLDERDATA) 0;
+}
+
+
+LPTREEFOLDER GetFolderByName(int nParentId, const char *pszFolderName)
+{
+ int i = 0, nParent;
+
+ //First Get the Parent TreeviewItem
+ //Enumerate Children
+ for(i = 0; i < numFolders/* ||treeFolders[i] != NULL*/; i++)
+ {
+ if (!strcmp(treeFolders[i]->m_lpTitle, pszFolderName))
+ {
+ nParent = treeFolders[i]->m_nParent;
+ if ((nParent >= 0) && treeFolders[nParent]->m_nFolderId == nParentId)
+ return treeFolders[i];
+ }
+ }
+ return NULL;
+}
+
+static int InitExtraFolders(void)
+{
+ struct stat stat_buffer;
+ struct _finddata_t files;
+ int i, count = 0;
+ long hLong;
+ char* ext;
+ char buf[256];
+ char curdir[MAX_PATH];
+ const char* dir = GetFolderDir();
+
+ memset(ExtraFolderData, 0, (MAX_EXTRA_FOLDERS * MAX_EXTRA_SUBFOLDERS)* sizeof(LPEXFOLDERDATA));
+
+ /* NPW 9-Feb-2003 - MSVC stat() doesn't like stat() called with an empty string */
+ if (dir[0] == '\0')
+ dir = ".";
+
+ // Why create the directory if it doesn't exist, just return 0 folders.
+ if (stat(dir, &stat_buffer) != 0)
+ {
+ return 0; // _mkdir(dir);
+ }
+
+ _getcwd(curdir, MAX_PATH);
+
+ chdir(dir);
+
+ hLong = _findfirst("*", &files);
+
+ for (i = 0; i < MAX_EXTRA_FOLDERS; i++)
+ {
+ ExtraFolderIcons[i] = NULL;
+ }
+
+ numExtraIcons = 0;
+
+ while (!_findnext(hLong, &files))
+ {
+ if ((files.attrib & _A_SUBDIR) == 0)
+ {
+ FILE *fp;
+
+ fp = fopen(files.name, "r");
+ if (fp != NULL)
+ {
+ int icon[2] = { 0, 0 };
+ char *p, *name;
+
+ while (fgets(buf, 256, fp))
+ {
+ if (buf[0] == '[')
+ {
+ p = strchr(buf, ']');
+ if (p == NULL)
+ continue;
+
+ *p = '\0';
+ name = &buf[1];
+ if (!strcmp(name, "FOLDER_SETTINGS"))
+ {
+ while (fgets(buf, 256, fp))
+ {
+ name = strtok(buf, " =\r\n");
+ if (name == NULL)
+ break;
+
+ if (!strcmp(name, "RootFolderIcon"))
+ {
+ name = strtok(NULL, " =\r\n");
+ if (name != NULL)
+ SetExtraIcons(name, &icon[0]);
+ }
+ if (!strcmp(name, "SubFolderIcon"))
+ {
+ name = strtok(NULL, " =\r\n");
+ if (name != NULL)
+ SetExtraIcons(name, &icon[1]);
+ }
+ }
+ break;
+ }
+ }
+ }
+ fclose(fp);
+
+ strcpy(buf, files.name);
+ ext = strrchr(buf, '.');
+
+ if (ext && *(ext + 1) && !core_stricmp(ext + 1, "ini"))
+ {
+ ExtraFolderData[count] =(EXFOLDERDATA*) malloc(sizeof(EXFOLDERDATA));
+ if (ExtraFolderData[count])
+ {
+ *ext = '\0';
+
+ memset(ExtraFolderData[count], 0, sizeof(EXFOLDERDATA));
+
+ strncpy(ExtraFolderData[count]->m_szTitle, buf, 63);
+ ExtraFolderData[count]->m_nFolderId = next_folder_id++;
+ ExtraFolderData[count]->m_nParent = -1;
+ ExtraFolderData[count]->m_dwFlags = F_CUSTOM;
+ ExtraFolderData[count]->m_nIconId = icon[0] ? -icon[0] : IDI_FOLDER;
+ ExtraFolderData[count]->m_nSubIconId = icon[1] ? -icon[1] : IDI_FOLDER;
+ //dprintf("extra folder with icon %i, subicon %i\n",
+ //ExtraFolderData[count]->m_nIconId,
+ //ExtraFolderData[count]->m_nSubIconId);
+ count++;
+ }
+ }
+ }
+ }
+ }
+
+ chdir(curdir);
+ return count;
+}
+
+void FreeExtraFolders(void)
+{
+ int i;
+
+ for (i = 0; i < numExtraFolders; i++)
+ {
+ if (ExtraFolderData[i])
+ {
+ free(ExtraFolderData[i]);
+ ExtraFolderData[i] = NULL;
+ }
+ }
+
+ for (i = 0; i < numExtraIcons; i++)
+ {
+ free(ExtraFolderIcons[i]);
+ }
+
+ numExtraIcons = 0;
+
+}
+
+
+static void SetExtraIcons(char *name, int *id)
+{
+ char *p = strchr(name, '.');
+
+ if (p != NULL)
+ *p = '\0';
+
+ ExtraFolderIcons[numExtraIcons] = (char*)malloc(strlen(name) + 1);
+ if (ExtraFolderIcons[numExtraIcons])
+ {
+ *id = ICON_MAX + numExtraIcons;
+ strcpy(ExtraFolderIcons[numExtraIcons], name);
+ numExtraIcons++;
+ }
+}
+
+
+// Called to add child folders of the top level extra folders already created
+BOOL TryAddExtraFolderAndChildren(int parent_index)
+{
+ FILE* fp = NULL;
+ char fname[MAX_PATH];
+ char readbuf[256];
+ char* p;
+ char* name;
+ int id, current_id, i;
+ LPTREEFOLDER lpTemp = NULL;
+ LPTREEFOLDER lpFolder = treeFolders[parent_index];
+
+ current_id = lpFolder->m_nFolderId;
+
+ id = lpFolder->m_nFolderId - MAX_FOLDERS;
+
+ /* "folder\title.ini" */
+
+ sprintf( fname, "%s\\%s.ini",
+ GetFolderDir(),
+ ExtraFolderData[id]->m_szTitle);
+
+ fp = fopen(fname, "r");
+ if (fp == NULL)
+ return FALSE;
+
+ while ( fgets(readbuf, 256, fp) )
+ {
+ /* do we have [...] ? */
+
+ if (readbuf[0] == '[')
+ {
+ p = strchr(readbuf, ']');
+ if (p == NULL)
+ {
+ continue;
+ }
+
+ *p = '\0';
+ name = &readbuf[1];
+
+ /* is it [FOLDER_SETTINGS]? */
+
+ if (strcmp(name, "FOLDER_SETTINGS") == 0)
+ {
+ current_id = -1;
+ continue;
+ }
+ else
+ {
+ /* it it [ROOT_FOLDER]? */
+
+ if (!strcmp(name, "ROOT_FOLDER"))
+ {
+ current_id = lpFolder->m_nFolderId;
+ lpTemp = lpFolder;
+
+ }
+ else
+ {
+ /* must be [folder name] */
+
+ current_id = next_folder_id++;
+ /* create a new folder with this name,
+ and the flags for this folder as read from the registry */
+ lpTemp = NewFolder(name,current_id,parent_index,
+ ExtraFolderData[id]->m_nSubIconId,
+ GetFolderFlags(numFolders) | F_CUSTOM);
+ ExtraFolderData[current_id] = (EXFOLDERDATA*)malloc(sizeof(EXFOLDERDATA));
+ memset(ExtraFolderData[current_id], 0, sizeof(EXFOLDERDATA));
+
+ ExtraFolderData[current_id]->m_nFolderId = current_id - MAX_EXTRA_FOLDERS;
+ ExtraFolderData[current_id]->m_nIconId = ExtraFolderData[id]->m_nSubIconId;
+ ExtraFolderData[current_id]->m_nParent = ExtraFolderData[id]->m_nFolderId;
+ ExtraFolderData[current_id]->m_nSubIconId = -1;
+ strcpy( ExtraFolderData[current_id]->m_szTitle, name );
+ ExtraFolderData[current_id]->m_dwFlags = ExtraFolderData[id]->m_dwFlags;
+ AddFolder(lpTemp);
+ }
+ }
+ }
+ else if (current_id != -1)
+ {
+ /* string on a line by itself -- game name */
+
+ name = strtok(readbuf, " \t\r\n");
+ if (name == NULL)
+ {
+ current_id = -1;
+ continue;
+ }
+
+ /* IMPORTANT: This assumes that all driver names are lowercase! */
+ for (i = 0; name[i]; i++)
+ name[i] = tolower(name[i]);
+
+ if (lpTemp == NULL)
+ {
+ ErrorMsg("Error parsing %s: missing [folder name] or [ROOT_FOLDER]", fname);
+ current_id = lpFolder->m_nFolderId;
+ lpTemp = lpFolder;
+ }
+ AddGame(lpTemp,GetGameNameIndex(name));
+ }
+ }
+
+ if ( fp )
+ {
+ fclose( fp );
+ }
+
+ return TRUE;
+}
+
+
+void GetFolders(TREEFOLDER ***folders,int *num_folders)
+{
+ *folders = treeFolders;
+ *num_folders = numFolders;
+}
+
+static BOOL TryRenameCustomFolderIni(LPTREEFOLDER lpFolder,const char *old_name,const char *new_name)
+{
+ char filename[MAX_PATH];
+ char new_filename[MAX_PATH];
+ LPTREEFOLDER lpParent = NULL;
+ if (lpFolder->m_nParent >= 0)
+ {
+ //it is a custom SubFolder
+ lpParent = GetFolder( lpFolder->m_nParent );
+ if( lpParent )
+ {
+ snprintf(filename,ARRAY_LENGTH(filename),"%s\\%s\\%s.ini",GetIniDir(),lpParent->m_lpTitle, old_name );
+ snprintf(new_filename,ARRAY_LENGTH(new_filename),"%s\\%s\\%s.ini",GetIniDir(),lpParent->m_lpTitle, new_name );
+ win_move_file_utf8(filename,new_filename);
+ }
+ }
+ else
+ {
+ //Rename the File, if it exists
+ snprintf(filename,ARRAY_LENGTH(filename),"%s\\%s.ini",GetIniDir(),old_name );
+ snprintf(new_filename,ARRAY_LENGTH(new_filename),"%s\\%s.ini",GetIniDir(), new_name );
+ win_move_file_utf8(filename,new_filename);
+ //Rename the Directory, if it exists
+ snprintf(filename,ARRAY_LENGTH(filename),"%s\\%s",GetIniDir(),old_name );
+ snprintf(new_filename,ARRAY_LENGTH(new_filename),"%s\\%s",GetIniDir(), new_name );
+ win_move_file_utf8(filename,new_filename);
+ }
+ return TRUE;
+}
+
+BOOL TryRenameCustomFolder(LPTREEFOLDER lpFolder, const char *new_name)
+{
+ BOOL retval;
+ char filename[MAX_PATH];
+ char new_filename[MAX_PATH];
+
+ if (lpFolder->m_nParent >= 0)
+ {
+ // a child extra folder was renamed, so do the rename and save the parent
+
+ // save old title
+ char *old_title = lpFolder->m_lpTitle;
+
+ // set new title
+ lpFolder->m_lpTitle = (char *)malloc(strlen(new_name) + 1);
+ strcpy(lpFolder->m_lpTitle,new_name);
+
+ // try to save
+ if (TrySaveExtraFolder(lpFolder) == FALSE)
+ {
+ // failed, so free newly allocated title and restore old
+ free(lpFolder->m_lpTitle);
+ lpFolder->m_lpTitle = old_title;
+ return FALSE;
+ }
+ TryRenameCustomFolderIni(lpFolder, old_title, new_name);
+ // successful, so free old title
+ free(old_title);
+ return TRUE;
+ }
+
+ // a parent extra folder was renamed, so rename the file
+
+ snprintf(new_filename,ARRAY_LENGTH(new_filename),"%s\\%s.ini",GetFolderDir(),new_name);
+ snprintf(filename,ARRAY_LENGTH(filename),"%s\\%s.ini",GetFolderDir(),lpFolder->m_lpTitle);
+
+ retval = win_move_file_utf8(filename,new_filename);
+
+ if (retval)
+ {
+ TryRenameCustomFolderIni(lpFolder, lpFolder->m_lpTitle, new_name);
+ free(lpFolder->m_lpTitle);
+ lpFolder->m_lpTitle = (char *)malloc(strlen(new_name) + 1);
+ strcpy(lpFolder->m_lpTitle,new_name);
+ }
+ else
+ {
+ char buf[500];
+ snprintf(buf,ARRAY_LENGTH(buf),"Error while renaming custom file %s to %s", filename,new_filename);
+ win_message_box_utf8(GetMainWindow(), buf, MAMEUINAME, MB_OK | MB_ICONERROR);
+ }
+ return retval;
+}
+
+void AddToCustomFolder(LPTREEFOLDER lpFolder,int driver_index)
+{
+ if ((lpFolder->m_dwFlags & F_CUSTOM) == 0)
+ {
+ win_message_box_utf8(GetMainWindow(),"Unable to add game to non-custom folder",
+ MAMEUINAME,MB_OK | MB_ICONERROR);
+ return;
+ }
+
+ if (TestBit(lpFolder->m_lpGameBits,driver_index) == 0)
+ {
+ AddGame(lpFolder,driver_index);
+ if (TrySaveExtraFolder(lpFolder) == FALSE)
+ RemoveGame(lpFolder,driver_index); // undo on error
+ }
+}
+
+void RemoveFromCustomFolder(LPTREEFOLDER lpFolder,int driver_index)
+{
+ if ((lpFolder->m_dwFlags & F_CUSTOM) == 0)
+ {
+ win_message_box_utf8(GetMainWindow(),"Unable to remove game from non-custom folder",
+ MAMEUINAME,MB_OK | MB_ICONERROR);
+ return;
+ }
+
+ if (TestBit(lpFolder->m_lpGameBits,driver_index) != 0)
+ {
+ RemoveGame(lpFolder,driver_index);
+ if (TrySaveExtraFolder(lpFolder) == FALSE)
+ AddGame(lpFolder,driver_index); // undo on error
+ }
+}
+
+BOOL TrySaveExtraFolder(LPTREEFOLDER lpFolder)
+{
+ char fname[MAX_PATH];
+ FILE *fp;
+ BOOL error = FALSE;
+ int i,j;
+
+ LPTREEFOLDER root_folder = NULL;
+ LPEXFOLDERDATA extra_folder = NULL;
+
+ for (i=0;i<numExtraFolders;i++)
+ {
+ if (ExtraFolderData[i]->m_nFolderId == lpFolder->m_nFolderId)
+ {
+ root_folder = lpFolder;
+ extra_folder = ExtraFolderData[i];
+ break;
+ }
+
+ if (lpFolder->m_nParent >= 0 &&
+ ExtraFolderData[i]->m_nFolderId == treeFolders[lpFolder->m_nParent]->m_nFolderId)
+ {
+ root_folder = treeFolders[lpFolder->m_nParent];
+ extra_folder = ExtraFolderData[i];
+ break;
+ }
+ }
+
+ if (extra_folder == NULL || root_folder == NULL)
+ {
+ MessageBox(GetMainWindow(), TEXT("Error finding custom file name to save"), (LPCTSTR)MAMEUINAME, MB_OK | MB_ICONERROR);
+ return FALSE;
+ }
+ /* "folder\title.ini" */
+
+ snprintf( fname, sizeof(fname), "%s\\%s.ini", GetFolderDir(), extra_folder->m_szTitle);
+
+ fp = fopen(fname, "wt");
+ if (fp == NULL)
+ error = TRUE;
+ else
+ {
+ TREEFOLDER *folder_data;
+
+
+ fprintf(fp,"[FOLDER_SETTINGS]\n");
+ // negative values for icons means it's custom, so save 'em
+ if (extra_folder->m_nIconId < 0)
+ {
+ fprintf(fp, "RootFolderIcon %s\n", ExtraFolderIcons[(-extra_folder->m_nIconId) - ICON_MAX]);
+ }
+ if (extra_folder->m_nSubIconId < 0)
+ {
+ fprintf(fp,"SubFolderIcon %s\n", ExtraFolderIcons[(-extra_folder->m_nSubIconId) - ICON_MAX]);
+ }
+
+ /* need to loop over all our TREEFOLDERs--first the root one, then each child.
+ start with the root */
+
+ folder_data = root_folder;
+
+ fprintf(fp,"\n[ROOT_FOLDER]\n");
+
+ for (i=0;i<driver_list::total();i++)
+ {
+ if (TestBit(folder_data->m_lpGameBits, i))
+ {
+ fprintf(fp,"%s\n",driver_list::driver(i).name);
+ }
+ }
+
+ /* look through the custom folders for ones with our root as parent */
+ for (j=0;j<numFolders;j++)
+ {
+ folder_data = treeFolders[j];
+
+ if (folder_data->m_nParent >= 0 &&
+ treeFolders[folder_data->m_nParent] == root_folder)
+ {
+ fprintf(fp,"\n[%s]\n",folder_data->m_lpTitle);
+
+ for (i=0;i<driver_list::total();i++)
+ {
+ if (TestBit(folder_data->m_lpGameBits, i))
+ {
+ fprintf(fp,"%s\n",driver_list::driver(i).name);
+ }
+ }
+ }
+ }
+ if (fclose(fp) != 0)
+ error = TRUE;
+ }
+
+ if (error)
+ {
+ char buf[500];
+ snprintf(buf,ARRAY_LENGTH(buf),"Error while saving custom file %s",fname);
+ win_message_box_utf8(GetMainWindow(), buf, MAMEUINAME, MB_OK | MB_ICONERROR);
+ }
+ return !error;
+}
+
+HIMAGELIST GetTreeViewIconList(void)
+{
+ return hTreeSmall;
+}
+
+int GetTreeViewIconIndex(int icon_id)
+{
+ int i;
+
+ if (icon_id < 0)
+ return -icon_id;
+
+ for (i = 0; i < ARRAY_LENGTH(treeIconNames); i++)
+ {
+ if (icon_id == treeIconNames[i].nResourceID)
+ return i;
+ }
+
+ return -1;
+}
+
+/* End of source file */
diff --git a/docs/release/src/osd/winui/treeview.h b/docs/release/src/osd/winui/treeview.h
new file mode 100644
index 00000000000..e61747dc981
--- /dev/null
+++ b/docs/release/src/osd/winui/treeview.h
@@ -0,0 +1,210 @@
+// For licensing and usage information, read docs/winui_license.txt
+//****************************************************************************
+
+#ifndef TREEVIEW_H
+#define TREEVIEW_H
+
+/* corrections for commctrl.h */
+
+#if defined(__GNUC__)
+/* fix warning: cast does not match function type */
+#undef TreeView_InsertItem
+#define TreeView_InsertItem(w,i) (HTREEITEM)(LRESULT)(int)SendMessage((w),TVM_INSERTITEM,0,(LPARAM)(LPTV_INSERTSTRUCT)(i))
+
+#undef TreeView_SetImageList
+#define TreeView_SetImageList(w,h,i) (HIMAGELIST)(LRESULT)(int)SendMessage((w),TVM_SETIMAGELIST,i,(LPARAM)(HIMAGELIST)(h))
+
+#undef TreeView_GetNextItem
+#define TreeView_GetNextItem(w,i,c) (HTREEITEM)(LRESULT)(int)SendMessage((w),TVM_GETNEXTITEM,c,(LPARAM)(HTREEITEM)(i))
+
+#undef TreeView_HitTest
+#define TreeView_HitTest(hwnd, lpht) \
+ (HTREEITEM)(LRESULT)(int)SNDMSG((hwnd), TVM_HITTEST, 0, (LPARAM)(LPTV_HITTESTINFO)(lpht))
+
+/* fix wrong return type */
+#undef TreeView_Select
+#define TreeView_Select(w,i,c) (BOOL)(int)SendMessage((w),TVM_SELECTITEM,c,(LPARAM)(HTREEITEM)(i))
+
+#undef TreeView_EditLabel
+#define TreeView_EditLabel(w, i) \
+ SNDMSG(w,TVM_EDITLABEL,0,(LPARAM)(i))
+
+#endif /* defined(__GNUC__) */
+
+/***************************************************************************
+ Folder And Filter Definitions
+ ***************************************************************************/
+
+typedef struct
+{
+ const char *m_lpTitle; // Folder Title
+ const char *short_name; // for saving in the .ini
+ UINT m_nFolderId; // ID
+ UINT m_nIconId; // if >= 0, resource id of icon (IDI_xxx), otherwise index in image list
+ DWORD m_dwUnset; // Excluded filters
+ DWORD m_dwSet; // Implied filters
+ void (*m_pfnCreateFolders)(int parent_index); // Constructor for special folders
+ BOOL (*m_pfnQuery)(int nDriver); // Query function
+ BOOL m_bExpectedResult; // Expected query result
+} FOLDERDATA, *LPFOLDERDATA;
+
+typedef const FOLDERDATA *LPCFOLDERDATA;
+
+typedef struct
+{
+ DWORD m_dwFilterType; /* Filter value */
+ DWORD m_dwCtrlID; /* Control ID that represents it */
+ BOOL (*m_pfnQuery)(int nDriver); /* Query function */
+ BOOL m_bExpectedResult; /* Expected query result */
+} FILTER_ITEM, *LPFILTER_ITEM;
+
+typedef const FILTER_ITEM *LPCFILTER_ITEM;
+
+/***************************************************************************
+ Functions to build builtin folder lists
+ ***************************************************************************/
+
+void CreateManufacturerFolders(int parent_index);
+void CreateYearFolders(int parent_index);
+void CreateSourceFolders(int parent_index);
+void CreateScreenFolders(int parent_index);
+void CreateCPUFolders(int parent_index);
+void CreateSoundFolders(int parent_index);
+void CreateOrientationFolders(int parent_index);
+void CreateDeficiencyFolders(int parent_index);
+void CreateDumpingFolders(int parent_index);
+void CreateBIOSFolders(int parent_index);
+void CreateFPSFolders(int parent_index);
+void CreateResolutionFolders(int parent_index);
+
+/***************************************************************************/
+
+#define MAX_EXTRA_FOLDERS 256
+#define MAX_EXTRA_SUBFOLDERS 256
+#define SHOW_UNAVAILABLE_FOLDER
+
+/* TreeView structures */
+enum
+{
+ FOLDER_NONE = 0,
+ FOLDER_ALLGAMES,
+ FOLDER_AVAILABLE,
+#ifdef SHOW_UNAVAILABLE_FOLDER
+ FOLDER_UNAVAILABLE,
+#endif
+ FOLDER_MANUFACTURER,
+ FOLDER_YEAR,
+ FOLDER_SOURCE,
+ FOLDER_CPU,
+ FOLDER_SND,
+ FOLDER_DEFICIENCY,
+ FOLDER_WORKING,
+ FOLDER_NONWORKING,
+ FOLDER_ORIGINAL,
+ FOLDER_CLONES,
+ FOLDER_RASTER,
+ FOLDER_VECTOR,
+ FOLDER_TRACKBALL,
+ FOLDER_LIGHTGUN,
+ FOLDER_STEREO,
+ FOLDER_HARDDISK,
+ FOLDER_SAMPLES,
+ FOLDER_DUMPING,
+ FOLDER_SAVESTATE,
+ FOLDER_BIOS,
+ FOLDER_RESOLUTION,
+ FOLDER_FPS,
+ FOLDER_HORIZONTAL,
+ FOLDER_VERTICAL,
+ FOLDER_SCREENS,
+ FOLDER_MECHANICAL,
+ FOLDER_NONMECHANICAL,
+ MAX_FOLDERS
+};
+
+typedef enum
+{
+ F_CLONES = 0x00000001,
+ F_NONWORKING = 0x00000002,
+ F_UNAVAILABLE = 0x00000004,
+ F_VECTOR = 0x00000008,
+ F_RASTER = 0x00000010,
+ F_ORIGINALS = 0x00000020,
+ F_WORKING = 0x00000040,
+ F_AVAILABLE = 0x00000080,
+ F_HORIZONTAL = 0x00000100,
+ F_VERTICAL = 0x00000200,
+ F_MECHANICAL = 0x00000400,
+ F_ARCADE = 0x00000800,
+ F_MESS = 0x00001000,
+#ifdef MESS
+ F_COMPUTER = 0x00002000,
+ F_CONSOLE = 0x00004000,
+ F_MODIFIED = 0x00008000,
+#endif
+ F_MASK = 0x0000FFFF,
+ F_INIEDIT = 0x00010000, // There is an .ini that can be edited. MSH 20070811
+ F_CUSTOM = 0x01000000 // for current .ini custom folders
+} FOLDERFLAG;
+
+typedef struct
+{
+ LPSTR m_lpTitle; // String contains the folder name
+ LPTSTR m_lptTitle; // String contains the folder name as TCHAR*
+ UINT m_nFolderId; // Index / Folder ID number
+ int m_nParent; // Parent folder index in treeFolders[]
+ int m_nIconId; // negative icon index into the ImageList, or IDI_xxx resource id
+ DWORD m_dwFlags; // Misc flags
+ LPBITS m_lpGameBits; // Game bits, represent game indices
+} TREEFOLDER, *LPTREEFOLDER;
+
+typedef struct
+{
+ char m_szTitle[64]; // Folder Title
+ UINT m_nFolderId; // ID
+ int m_nParent; // Parent Folder index in treeFolders[]
+ DWORD m_dwFlags; // Flags - Customizable and Filters
+ int m_nIconId; // negative icon index into the ImageList, or IDI_xxx resource id
+ int m_nSubIconId; // negative icon index into the ImageList, or IDI_xxx resource id
+} EXFOLDERDATA, *LPEXFOLDERDATA;
+
+void FreeFolders(void);
+void ResetFilters(void);
+void InitTree(LPCFOLDERDATA lpFolderData, LPCFILTER_ITEM lpFilterList);
+void SetCurrentFolder(LPTREEFOLDER lpFolder);
+UINT GetCurrentFolderID(void);
+
+LPTREEFOLDER GetCurrentFolder(void);
+int GetNumFolders(void);
+LPTREEFOLDER GetFolder(UINT nFolder);
+LPTREEFOLDER GetFolderByID(UINT nID);
+LPTREEFOLDER GetFolderByName(int nParentId, const char *pszFolderName);
+
+void AddGame(LPTREEFOLDER lpFolder, UINT nGame);
+void RemoveGame(LPTREEFOLDER lpFolder, UINT nGame);
+int FindGame(LPTREEFOLDER lpFolder, int nGame);
+
+void ResetWhichGamesInFolders(void);
+
+LPCFOLDERDATA FindFilter(DWORD folderID);
+
+bool GameFiltered(int nGame, DWORD dwFlags);
+BOOL GetParentFound(int nGame);
+
+LPCFILTER_ITEM GetFilterList(void);
+
+void SetTreeIconSize(HWND hWnd, BOOL bLarge);
+BOOL GetTreeIconSize(void);
+
+void GetFolders(TREEFOLDER ***folders,int *num_folders);
+BOOL TryRenameCustomFolder(LPTREEFOLDER lpFolder,const char *new_name);
+void AddToCustomFolder(LPTREEFOLDER lpFolder,int driver_index);
+void RemoveFromCustomFolder(LPTREEFOLDER lpFolder,int driver_index);
+
+HIMAGELIST GetTreeViewIconList(void);
+int GetTreeViewIconIndex(int icon_id);
+
+void ResetTreeViewFolders(void);
+void SelectTreeViewFolder(int folder_id);
+
+#endif /* TREEVIEW_H */
diff --git a/docs/release/src/osd/winui/winui.cpp b/docs/release/src/osd/winui/winui.cpp
new file mode 100644
index 00000000000..914fd9618a6
--- /dev/null
+++ b/docs/release/src/osd/winui/winui.cpp
@@ -0,0 +1,6683 @@
+// For licensing and usage information, read docs/winui_license.txt
+//****************************************************************************
+
+ /***************************************************************************
+
+ winui.c
+
+ Win32 GUI code.
+
+ Created 8/12/97 by Christopher Kirmse (ckirmse@ricochet.net)
+ Additional code November 1997 by Jeff Miller (miller@aa.net)
+ More July 1998 by Mike Haaland (mhaaland@hypertech.com)
+ Added Spitters/Property Sheets/Removed Tabs/Added Tree Control in
+ Nov/Dec 1998 - Mike Haaland
+
+***************************************************************************/
+
+// standard windows headers
+#define _WIN32_IE 0x0501
+#include <windows.h>
+#include <windowsx.h>
+#include <shellapi.h>
+#include <commctrl.h>
+#include <wingdi.h>
+
+// standard C headers
+#include <stdio.h>
+#include <ctype.h>
+#include <io.h>
+#include <fcntl.h>
+#include <dlgs.h>
+#include <string.h>
+#include <sys/stat.h>
+#include <time.h>
+#include <tchar.h>
+
+
+// MAME/MAMEUI headers
+#include "emu.h"
+#include "mame.h"
+#include "mameopts.h"
+#include "language.h"
+#include "unzip.h"
+#include "winutf8.h"
+#include "strconv.h"
+#include "window.h"
+#include "../osdcore.h"
+#include "zippath.h"
+
+#include "resource.h"
+#include "resource.hm"
+
+#include "winui.h"
+#include "mui_util.h"
+#include "mui_audit.h"
+#include "directories.h"
+#include "mui_opts.h"
+#include "properties.h"
+#include "columnedit.h"
+#include "picker.h"
+#include "tabview.h"
+#include "bitmask.h"
+#include "treeview.h"
+#include "splitters.h"
+#include "dirwatch.h"
+#include "help.h"
+#include "history.h"
+#include "dialogs.h"
+#include "directdraw.h"
+#include "directinput.h"
+#include "dijoystick.h" /* For DIJoystick availability. */
+
+#ifdef _MSC_VER
+#define snprintf _snprintf
+#endif
+
+#ifdef __GNUC__
+#pragma GCC diagnostic ignored "-Wunused-but-set-variable"
+#endif
+
+#ifndef LVS_EX_LABELTIP
+#define LVS_EX_LABELTIP 0x00004000 // listview unfolds partly hidden labels if it does not have infotip text
+#endif // LVS_EX_LABELTIP
+
+// fix warning: cast does not match function type
+#if defined(__GNUC__) && defined(ListView_CreateDragImage)
+#undef ListView_CreateDragImage
+#endif
+
+#ifndef ListView_CreateDragImage
+#define ListView_CreateDragImage(hwnd, i, lpptUpLeft) \
+ (HIMAGELIST)(LRESULT)(int)SendMessage((hwnd), LVM_CREATEDRAGIMAGE, (WPARAM)(int)(i), (LPARAM)(LPPOINT)(lpptUpLeft))
+#endif // ListView_CreateDragImage
+
+#ifndef TreeView_EditLabel
+#define TreeView_EditLabel(w, i) \
+ SNDMSG(w,TVM_EDITLABEL,0,(LPARAM)(i))
+#endif // TreeView_EditLabel
+
+#ifndef HDF_SORTUP
+#define HDF_SORTUP 0x400
+#endif // HDF_SORTUP
+
+#ifndef HDF_SORTDOWN
+#define HDF_SORTDOWN 0x200
+#endif // HDF_SORTDOWN
+
+#ifndef LVM_SETBKIMAGEA
+#define LVM_SETBKIMAGEA (LVM_FIRST + 68)
+#endif // LVM_SETBKIMAGEA
+
+#ifndef LVM_SETBKIMAGEW
+#define LVM_SETBKIMAGEW (LVM_FIRST + 138)
+#endif // LVM_SETBKIMAGEW
+
+#ifndef LVM_GETBKIMAGEA
+#define LVM_GETBKIMAGEA (LVM_FIRST + 69)
+#endif // LVM_GETBKIMAGEA
+
+#ifndef LVM_GETBKIMAGEW
+#define LVM_GETBKIMAGEW (LVM_FIRST + 139)
+#endif // LVM_GETBKIMAGEW
+
+#ifndef LVBKIMAGE
+
+typedef struct tagLVBKIMAGEA
+{
+ ULONG ulFlags;
+ HBITMAP hbm;
+ LPSTR pszImage;
+ UINT cchImageMax;
+ int xOffsetPercent;
+ int yOffsetPercent;
+} LVBKIMAGEA, *LPLVBKIMAGEA;
+
+typedef struct tagLVBKIMAGEW
+{
+ ULONG ulFlags;
+ HBITMAP hbm;
+ LPWSTR pszImage;
+ UINT cchImageMax;
+ int xOffsetPercent;
+ int yOffsetPercent;
+} LVBKIMAGEW, *LPLVBKIMAGEW;
+
+#ifdef UNICODE
+#define LVBKIMAGE LVBKIMAGEW
+#define LPLVBKIMAGE LPLVBKIMAGEW
+#define LVM_SETBKIMAGE LVM_SETBKIMAGEW
+#define LVM_GETBKIMAGE LVM_GETBKIMAGEW
+#else
+#define LVBKIMAGE LVBKIMAGEA
+#define LPLVBKIMAGE LPLVBKIMAGEA
+#define LVM_SETBKIMAGE LVM_SETBKIMAGEA
+#define LVM_GETBKIMAGE LVM_GETBKIMAGEA
+#endif
+#endif
+
+#ifndef LVBKIF_SOURCE_NONE
+#define LVBKIF_SOURCE_NONE 0x00000000
+#endif // LVBKIF_SOURCE_NONE
+
+#ifndef LVBKIF_SOURCE_HBITMAP
+#define LVBKIF_SOURCE_HBITMAP 0x00000001
+#endif
+
+#ifndef LVBKIF_SOURCE_URL
+#define LVBKIF_SOURCE_URL 0x00000002
+#endif // LVBKIF_SOURCE_URL
+
+#ifndef LVBKIF_SOURCE_MASK
+#define LVBKIF_SOURCE_MASK 0x00000003
+#endif // LVBKIF_SOURCE_MASK
+
+#ifndef LVBKIF_STYLE_NORMAL
+#define LVBKIF_STYLE_NORMAL 0x00000000
+#endif // LVBKIF_STYLE_NORMAL
+
+#ifndef LVBKIF_STYLE_TILE
+#define LVBKIF_STYLE_TILE 0x00000010
+#endif // LVBKIF_STYLE_TILE
+
+#ifndef LVBKIF_STYLE_MASK
+#define LVBKIF_STYLE_MASK 0x00000010
+#endif // LVBKIF_STYLE_MASK
+
+#ifndef ListView_SetBkImage
+#define ListView_SetBkImage(hwnd, plvbki) \
+ (BOOL)SNDMSG((hwnd), LVM_SETBKIMAGE, 0, (LPARAM)(plvbki))
+#endif // ListView_SetBkImage
+
+#ifndef ListView_GetBkImage
+#define ListView_GetBkImage(hwnd, plvbki) \
+ (BOOL)SNDMSG((hwnd), LVM_GETBKIMAGE, 0, (LPARAM)(plvbki))
+#endif // ListView_GetBkImage
+
+#define MM_PLAY_GAME (WM_APP + 15000)
+
+#define JOYGUI_MS 100
+
+#define JOYGUI_TIMER 1
+#define SCREENSHOT_TIMER 2
+#define GAMEWND_TIMER 3
+
+/* Max size of a sub-menu */
+#define DBU_MIN_WIDTH 292
+#define DBU_MIN_HEIGHT 190
+
+static int MIN_WIDTH = DBU_MIN_WIDTH;
+static int MIN_HEIGHT = DBU_MIN_HEIGHT;
+
+/* Max number of bkground picture files */
+#define MAX_BGFILES 100
+
+#ifndef LVS_EX_LABELTIP
+#define LVS_EX_LABELTIP 0x00004000 // listview unfolds partly hidden labels if it does not have infotip text
+#endif
+
+#define NO_FOLDER -1
+#define STATESAVE_VERSION 1
+//I could not find a predefined value for this event and docs just say it has 1 for the parameter
+#define TOOLBAR_EDIT_ACCELERATOR_PRESSED 1
+#define SHOW_MISSING_ROMS_ICON
+
+/***************************************************************************
+ externally defined global variables
+ ***************************************************************************/
+extern const ICONDATA g_iconData[];
+extern const TCHAR g_szPlayGameString[];
+extern const char g_szGameCountString[];
+UINT8 playopts_apply = 0;
+
+typedef struct _play_options play_options;
+struct _play_options
+{
+ const char *record; // OPTION_RECORD
+ const char *playback; // OPTION_PLAYBACK
+ const char *state; // OPTION_STATE
+ const char *wavwrite; // OPTION_WAVWRITE
+ const char *mngwrite; // OPTION_MNGWRITE
+ const char *aviwrite; // OPTION_AVIWRITE
+};
+
+/***************************************************************************
+ function prototypes
+ ***************************************************************************/
+
+static BOOL Win32UI_init(HINSTANCE hInstance, LPWSTR lpCmdLine, int nCmdShow);
+static void Win32UI_exit(void);
+
+static BOOL PumpMessage(void);
+static BOOL OnIdle(HWND hWnd);
+static void OnSize(HWND hwnd, UINT state, int width, int height);
+static LRESULT CALLBACK MameWindowProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
+
+static void SetView(int menu_id);
+static void ResetListView(void);
+static void UpdateGameList(BOOL bUpdateRomAudit, BOOL bUpdateSampleAudit);
+static void DestroyIcons(void);
+static void ReloadIcons(void);
+static void PollGUIJoystick(void);
+//static void PressKey(HWND hwnd,UINT vk);
+static BOOL MameCommand(HWND hwnd,int id, HWND hwndCtl, UINT codeNotify);
+static void KeyboardKeyDown(int syskey, int vk_code, int special);
+static void KeyboardKeyUp(int syskey, int vk_code, int special);
+static void KeyboardStateClear(void);
+
+static void UpdateStatusBar(void);
+//static BOOL PickerHitTest(HWND hWnd);
+static BOOL TreeViewNotify(NMHDR *nm);
+
+static void LoadBackgroundBitmap(void);
+static void PaintBackgroundImage(HWND hWnd, HRGN hRgn, int x, int y);
+
+static int GamePicker_Compare(HWND hwndPicker, int index1, int index2, int sort_subitem);
+
+static void DisableSelection(void);
+static void EnableSelection(int nGame);
+
+static HICON GetSelectedPickItemIcon(void);
+static void SetRandomPickItem(void);
+static void PickColor(COLORREF *cDefault);
+
+static LPTREEFOLDER GetSelectedFolder(void);
+static HICON GetSelectedFolderIcon(void);
+
+static LRESULT CALLBACK HistoryWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
+static LRESULT CALLBACK PictureFrameWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
+static LRESULT CALLBACK PictureWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
+
+static void MamePlayRecordGame(void);
+static void MamePlayBackGame(void);
+static void MamePlayRecordWave(void);
+static void MamePlayRecordMNG(void);
+static void MamePlayRecordAVI(void);
+static void MameLoadState(void);
+static void MamePlayGameWithOptions(int nGame, const play_options *playopts);
+static BOOL GameCheck(void);
+static BOOL FolderCheck(void);
+
+static void ToggleScreenShot(void);
+static void AdjustMetrics(void);
+//static void EnablePlayOptions(int nIndex, windows_options *o);
+
+/* Icon routines */
+static DWORD GetShellLargeIconSize(void);
+static DWORD GetShellSmallIconSize(void);
+static void CreateIcons(void);
+static int GetIconForDriver(int nItem);
+static void AddDriverIcon(int nItem,int default_icon_index);
+
+// Context Menu handlers
+static void UpdateMenu(HMENU hMenu);
+static void InitTreeContextMenu(HMENU hTreeMenu);
+static void InitBodyContextMenu(HMENU hBodyContextMenu);
+static void ToggleShowFolder(int folder);
+static BOOL HandleTreeContextMenu( HWND hWnd, WPARAM wParam, LPARAM lParam);
+static BOOL HandleScreenShotContextMenu( HWND hWnd, WPARAM wParam, LPARAM lParam);
+static void GamePicker_OnHeaderContextMenu(POINT pt, int nColumn);
+static void GamePicker_OnBodyContextMenu(POINT pt);
+
+static void InitListView(void);
+/* Re/initialize the ListView header columns */
+static void ResetColumnDisplay(BOOL first_time);
+
+static void CopyToolTipText (LPTOOLTIPTEXT lpttt);
+
+static void ProgressBarShow(void);
+static void ProgressBarHide(void);
+static void ResizeProgressBar(void);
+static void ProgressBarStep(void);
+static void ProgressBarStepParam(int iGameIndex, int nGameCount);
+
+static HWND InitProgressBar(HWND hParent);
+static HWND InitToolbar(HWND hParent);
+static HWND InitStatusBar(HWND hParent);
+
+static LRESULT Statusbar_MenuSelect (HWND hwnd, WPARAM wParam, LPARAM lParam);
+
+static void UpdateHistory(void);
+
+
+static void RemoveCurrentGameCustomFolder(void);
+static void RemoveGameCustomFolder(int driver_index);
+
+static void BeginListViewDrag(NM_LISTVIEW *pnmv);
+static void MouseMoveListViewDrag(POINTS pt);
+static void ButtonUpListViewDrag(POINTS p);
+
+static void CalculateBestScreenShotRect(HWND hWnd, RECT *pRect, BOOL restrict_height);
+
+BOOL MouseHasBeenMoved(void);
+static void SwitchFullScreenMode(void);
+
+/***************************************************************************
+ External variables
+ ***************************************************************************/
+
+/***************************************************************************
+ Internal structures
+ ***************************************************************************/
+
+/*
+ * These next two structs represent how the icon information
+ * is stored in an ICO file.
+ */
+typedef struct
+{
+ BYTE bWidth; /* Width of the image */
+ BYTE bHeight; /* Height of the image (times 2) */
+ BYTE bColorCount; /* Number of colors in image (0 if >=8bpp) */
+ BYTE bReserved; /* Reserved */
+ WORD wPlanes; /* Color Planes */
+ WORD wBitCount; /* Bits per pixel */
+ DWORD dwBytesInRes; /* how many bytes in this resource? */
+ DWORD dwImageOffset; /* where in the file is this image */
+} ICONDIRENTRY, *LPICONDIRENTRY;
+
+typedef struct
+{
+ UINT Width, Height, Colors; /* Width, Height and bpp */
+ LPBYTE lpBits; /* ptr to DIB bits */
+ DWORD dwNumBytes; /* how many bytes? */
+ LPBITMAPINFO lpbi; /* ptr to header */
+ LPBYTE lpXOR; /* ptr to XOR image bits */
+ LPBYTE lpAND; /* ptr to AND image bits */
+} ICONIMAGE, *LPICONIMAGE;
+
+/* Which edges of a control are anchored to the corresponding side of the parent window */
+#define RA_LEFT 0x01
+#define RA_RIGHT 0x02
+#define RA_TOP 0x04
+#define RA_BOTTOM 0x08
+#define RA_ALL 0x0F
+
+#define RA_END 0
+#define RA_ID 1
+#define RA_HWND 2
+
+typedef struct
+{
+ int type; /* Either RA_ID or RA_HWND, to indicate which member of u is used; or RA_END
+ to signify last entry */
+ union /* Can identify a child window by control id or by handle */
+ {
+ int id; /* Window control id */
+ HWND hwnd; /* Window handle */
+ } u;
+ BOOL setfont; /* Do we set this item's font? */
+ int action; /* What to do when control is resized */
+ void *subwindow; /* Points to a Resize structure for this subwindow; NULL if none */
+} ResizeItem;
+
+typedef struct
+{
+ RECT rect; /* Client rect of window; must be initialized before first resize */
+ const ResizeItem* items; /* Array of subitems to be resized */
+} Resize;
+
+static void ResizeWindow(HWND hParent, Resize *r);
+static void SetAllWindowsFont(HWND hParent, const Resize *r, HFONT hFont, BOOL bRedraw);
+
+/* List view Icon defines */
+#define LG_ICONMAP_WIDTH GetSystemMetrics(SM_CXICON)
+#define LG_ICONMAP_HEIGHT GetSystemMetrics(SM_CYICON)
+#define ICONMAP_WIDTH GetSystemMetrics(SM_CXSMICON)
+#define ICONMAP_HEIGHT GetSystemMetrics(SM_CYSMICON)
+
+typedef struct tagPOPUPSTRING
+{
+ HMENU hMenu;
+ UINT uiString;
+} POPUPSTRING;
+
+#define MAX_MENUS 3
+
+#define SPLITTER_WIDTH 4
+#define MIN_VIEW_WIDTH 10
+
+// Struct needed for Game Window Communication
+
+typedef struct
+{
+ LPPROCESS_INFORMATION ProcessInfo;
+ HWND hwndFound;
+} FINDWINDOWHANDLE;
+
+/***************************************************************************
+ Internal variables
+ ***************************************************************************/
+
+static HWND hMain = NULL;
+static HACCEL hAccel = NULL;
+
+static HWND hwndList = NULL;
+static HWND hTreeView = NULL;
+static HWND hProgWnd = NULL;
+static HWND hTabCtrl = NULL;
+
+static HINSTANCE hInst = NULL;
+
+static HFONT hFont = NULL; /* Font for list view */
+
+static int optionfolder_count = 0;
+
+/* global data--know where to send messages */
+static BOOL in_emulation;
+
+/* idle work at startup */
+static BOOL idle_work;
+
+/* object pool in use */
+static object_pool *mameui_pool;
+
+static int game_index;
+static int progBarStep;
+
+static BOOL bDoGameCheck = FALSE;
+
+/* Tree control variables */
+static BOOL bShowTree = 1;
+static BOOL bShowToolBar = 1;
+static BOOL bShowStatusBar = 1;
+static BOOL bShowTabCtrl = 1;
+static BOOL bProgressShown = FALSE;
+static BOOL bListReady = FALSE;
+
+#define WM_MAME32_FILECHANGED (WM_USER + 0)
+#define WM_MAME32_AUDITGAME (WM_USER + 1)
+
+static PDIRWATCHER s_pWatcher;
+
+/* use a joystick subsystem in the gui? */
+static const struct OSDJoystick* g_pJoyGUI = NULL;
+
+/* store current keyboard state (in bools) here */
+static bool keyboard_state[4096]; /* __code_max #defines the number of internal key_codes */
+
+/* search */
+static char g_SearchText[256];
+/* table copied from windows/inputs.c */
+// table entry indices
+#define MAME_KEY 0
+#define DI_KEY 1
+#define VIRTUAL_KEY 2
+#define ASCII_KEY 3
+
+// master keyboard translation table
+static const int win_key_trans_table[][4] =
+{
+ // MAME key dinput key virtual key ascii
+ { ITEM_ID_ESC, DIK_ESCAPE, VK_ESCAPE, 27 },
+ { ITEM_ID_1, DIK_1, '1', '1' },
+ { ITEM_ID_2, DIK_2, '2', '2' },
+ { ITEM_ID_3, DIK_3, '3', '3' },
+ { ITEM_ID_4, DIK_4, '4', '4' },
+ { ITEM_ID_5, DIK_5, '5', '5' },
+ { ITEM_ID_6, DIK_6, '6', '6' },
+ { ITEM_ID_7, DIK_7, '7', '7' },
+ { ITEM_ID_8, DIK_8, '8', '8' },
+ { ITEM_ID_9, DIK_9, '9', '9' },
+ { ITEM_ID_0, DIK_0, '0', '0' },
+ { ITEM_ID_BACKSPACE, DIK_BACK, VK_BACK, 8 },
+ { ITEM_ID_TAB, DIK_TAB, VK_TAB, 9 },
+ { ITEM_ID_Q, DIK_Q, 'Q', 'Q' },
+ { ITEM_ID_W, DIK_W, 'W', 'W' },
+ { ITEM_ID_E, DIK_E, 'E', 'E' },
+ { ITEM_ID_R, DIK_R, 'R', 'R' },
+ { ITEM_ID_T, DIK_T, 'T', 'T' },
+ { ITEM_ID_Y, DIK_Y, 'Y', 'Y' },
+ { ITEM_ID_U, DIK_U, 'U', 'U' },
+ { ITEM_ID_I, DIK_I, 'I', 'I' },
+ { ITEM_ID_O, DIK_O, 'O', 'O' },
+ { ITEM_ID_P, DIK_P, 'P', 'P' },
+ { ITEM_ID_OPENBRACE, DIK_LBRACKET, VK_OEM_4, '[' },
+ { ITEM_ID_CLOSEBRACE, DIK_RBRACKET, VK_OEM_6, ']' },
+ { ITEM_ID_ENTER, DIK_RETURN, VK_RETURN, 13 },
+ { ITEM_ID_LCONTROL, DIK_LCONTROL, VK_LCONTROL, 0 },
+ { ITEM_ID_A, DIK_A, 'A', 'A' },
+ { ITEM_ID_S, DIK_S, 'S', 'S' },
+ { ITEM_ID_D, DIK_D, 'D', 'D' },
+ { ITEM_ID_F, DIK_F, 'F', 'F' },
+ { ITEM_ID_G, DIK_G, 'G', 'G' },
+ { ITEM_ID_H, DIK_H, 'H', 'H' },
+ { ITEM_ID_J, DIK_J, 'J', 'J' },
+ { ITEM_ID_K, DIK_K, 'K', 'K' },
+ { ITEM_ID_L, DIK_L, 'L', 'L' },
+ { ITEM_ID_COLON, DIK_SEMICOLON, VK_OEM_1, ';' },
+ { ITEM_ID_QUOTE, DIK_APOSTROPHE, VK_OEM_7, '\'' },
+ { ITEM_ID_TILDE, DIK_GRAVE, VK_OEM_3, '`' },
+ { ITEM_ID_LSHIFT, DIK_LSHIFT, VK_LSHIFT, 0 },
+ { ITEM_ID_BACKSLASH, DIK_BACKSLASH, VK_OEM_5, '\\' },
+ { ITEM_ID_Z, DIK_Z, 'Z', 'Z' },
+ { ITEM_ID_X, DIK_X, 'X', 'X' },
+ { ITEM_ID_C, DIK_C, 'C', 'C' },
+ { ITEM_ID_V, DIK_V, 'V', 'V' },
+ { ITEM_ID_B, DIK_B, 'B', 'B' },
+ { ITEM_ID_N, DIK_N, 'N', 'N' },
+ { ITEM_ID_M, DIK_M, 'M', 'M' },
+ { ITEM_ID_SLASH, DIK_SLASH, VK_OEM_2, '/' },
+ { ITEM_ID_RSHIFT, DIK_RSHIFT, VK_RSHIFT, 0 },
+ { ITEM_ID_ASTERISK, DIK_MULTIPLY, VK_MULTIPLY, '*' },
+ { ITEM_ID_LALT, DIK_LMENU, VK_LMENU, 0 },
+ { ITEM_ID_SPACE, DIK_SPACE, VK_SPACE, ' ' },
+ { ITEM_ID_CAPSLOCK, DIK_CAPITAL, VK_CAPITAL, 0 },
+ { ITEM_ID_F1, DIK_F1, VK_F1, 0 },
+ { ITEM_ID_F2, DIK_F2, VK_F2, 0 },
+ { ITEM_ID_F3, DIK_F3, VK_F3, 0 },
+ { ITEM_ID_F4, DIK_F4, VK_F4, 0 },
+ { ITEM_ID_F5, DIK_F5, VK_F5, 0 },
+ { ITEM_ID_F6, DIK_F6, VK_F6, 0 },
+ { ITEM_ID_F7, DIK_F7, VK_F7, 0 },
+ { ITEM_ID_F8, DIK_F8, VK_F8, 0 },
+ { ITEM_ID_F9, DIK_F9, VK_F9, 0 },
+ { ITEM_ID_F10, DIK_F10, VK_F10, 0 },
+ { ITEM_ID_NUMLOCK, DIK_NUMLOCK, VK_NUMLOCK, 0 },
+ { ITEM_ID_SCRLOCK, DIK_SCROLL, VK_SCROLL, 0 },
+ { ITEM_ID_7_PAD, DIK_NUMPAD7, VK_NUMPAD7, 0 },
+ { ITEM_ID_8_PAD, DIK_NUMPAD8, VK_NUMPAD8, 0 },
+ { ITEM_ID_9_PAD, DIK_NUMPAD9, VK_NUMPAD9, 0 },
+ { ITEM_ID_MINUS_PAD, DIK_SUBTRACT, VK_SUBTRACT, 0 },
+ { ITEM_ID_4_PAD, DIK_NUMPAD4, VK_NUMPAD4, 0 },
+ { ITEM_ID_5_PAD, DIK_NUMPAD5, VK_NUMPAD5, 0 },
+ { ITEM_ID_6_PAD, DIK_NUMPAD6, VK_NUMPAD6, 0 },
+ { ITEM_ID_PLUS_PAD, DIK_ADD, VK_ADD, 0 },
+ { ITEM_ID_1_PAD, DIK_NUMPAD1, VK_NUMPAD1, 0 },
+ { ITEM_ID_2_PAD, DIK_NUMPAD2, VK_NUMPAD2, 0 },
+ { ITEM_ID_3_PAD, DIK_NUMPAD3, VK_NUMPAD3, 0 },
+ { ITEM_ID_0_PAD, DIK_NUMPAD0, VK_NUMPAD0, 0 },
+ { ITEM_ID_DEL_PAD, DIK_DECIMAL, VK_DECIMAL, 0 },
+ { ITEM_ID_F11, DIK_F11, VK_F11, 0 },
+ { ITEM_ID_F12, DIK_F12, VK_F12, 0 },
+ { ITEM_ID_F13, DIK_F13, VK_F13, 0 },
+ { ITEM_ID_F14, DIK_F14, VK_F14, 0 },
+ { ITEM_ID_F15, DIK_F15, VK_F15, 0 },
+ { ITEM_ID_ENTER_PAD, DIK_NUMPADENTER, VK_RETURN, 0 },
+ { ITEM_ID_RCONTROL, DIK_RCONTROL, VK_RCONTROL, 0 },
+ { ITEM_ID_SLASH_PAD, DIK_DIVIDE, VK_DIVIDE, 0 },
+ { ITEM_ID_PRTSCR, DIK_SYSRQ, 0, 0 },
+ { ITEM_ID_RALT, DIK_RMENU, VK_RMENU, 0 },
+ { ITEM_ID_HOME, DIK_HOME, VK_HOME, 0 },
+ { ITEM_ID_UP, DIK_UP, VK_UP, 0 },
+ { ITEM_ID_PGUP, DIK_PRIOR, VK_PRIOR, 0 },
+ { ITEM_ID_LEFT, DIK_LEFT, VK_LEFT, 0 },
+ { ITEM_ID_RIGHT, DIK_RIGHT, VK_RIGHT, 0 },
+ { ITEM_ID_END, DIK_END, VK_END, 0 },
+ { ITEM_ID_DOWN, DIK_DOWN, VK_DOWN, 0 },
+ { ITEM_ID_PGDN, DIK_NEXT, VK_NEXT, 0 },
+ { ITEM_ID_INSERT, DIK_INSERT, VK_INSERT, 0 },
+ { ITEM_ID_DEL, DIK_DELETE, VK_DELETE, 0 },
+ { ITEM_ID_LWIN, DIK_LWIN, VK_LWIN, 0 },
+ { ITEM_ID_RWIN, DIK_RWIN, VK_RWIN, 0 },
+ { ITEM_ID_MENU, DIK_APPS, VK_APPS, 0 },
+ { ITEM_ID_PAUSE, DIK_PAUSE, VK_PAUSE, 0 },
+ { ITEM_ID_CANCEL, 0, VK_CANCEL, 0 },
+};
+
+
+
+typedef struct
+{
+ char name[40]; // functionality name (optional)
+ input_seq is; // the input sequence (the keys pressed)
+ UINT func_id; // the identifier
+ input_seq* (*const getiniptr)(void);// pointer to function to get the value from .ini file
+} GUISequence;
+
+static const GUISequence GUISequenceControl[]=
+{
+ {"gui_key_up", input_seq(), ID_UI_UP, Get_ui_key_up },
+ {"gui_key_down", input_seq(), ID_UI_DOWN, Get_ui_key_down },
+ {"gui_key_left", input_seq(), ID_UI_LEFT, Get_ui_key_left },
+ {"gui_key_right", input_seq(), ID_UI_RIGHT, Get_ui_key_right },
+ {"gui_key_start", input_seq(), ID_UI_START, Get_ui_key_start },
+ {"gui_key_pgup", input_seq(), ID_UI_PGUP, Get_ui_key_pgup },
+ {"gui_key_pgdwn", input_seq(), ID_UI_PGDOWN, Get_ui_key_pgdwn },
+ {"gui_key_home", input_seq(), ID_UI_HOME, Get_ui_key_home },
+ {"gui_key_end", input_seq(), ID_UI_END, Get_ui_key_end },
+ {"gui_key_ss_change", input_seq(), IDC_SSFRAME, Get_ui_key_ss_change },
+ {"gui_key_history_up", input_seq(), ID_UI_HISTORY_UP, Get_ui_key_history_up },
+ {"gui_key_history_down", input_seq(), ID_UI_HISTORY_DOWN, Get_ui_key_history_down },
+
+ {"gui_key_context_filters", input_seq(), ID_CONTEXT_FILTERS, Get_ui_key_context_filters },
+ {"gui_key_select_random", input_seq(), ID_CONTEXT_SELECT_RANDOM, Get_ui_key_select_random },
+ {"gui_key_game_audit", input_seq(), ID_GAME_AUDIT, Get_ui_key_game_audit },
+ {"gui_key_game_properties", input_seq(), ID_GAME_PROPERTIES, Get_ui_key_game_properties },
+ {"gui_key_help_contents", input_seq(), ID_HELP_CONTENTS, Get_ui_key_help_contents },
+ {"gui_key_update_gamelist", input_seq(), ID_UPDATE_GAMELIST, Get_ui_key_update_gamelist },
+ {"gui_key_view_folders", input_seq(), ID_VIEW_FOLDERS, Get_ui_key_view_folders },
+ {"gui_key_view_fullscreen", input_seq(), ID_VIEW_FULLSCREEN, Get_ui_key_view_fullscreen },
+ {"gui_key_view_pagetab", input_seq(), ID_VIEW_PAGETAB, Get_ui_key_view_pagetab },
+ {"gui_key_view_picture_area", input_seq(), ID_VIEW_PICTURE_AREA, Get_ui_key_view_picture_area },
+ {"gui_key_view_status", input_seq(), ID_VIEW_STATUS, Get_ui_key_view_status },
+ {"gui_key_view_toolbars", input_seq(), ID_VIEW_TOOLBARS, Get_ui_key_view_toolbars },
+
+ {"gui_key_view_tab_cabinet", input_seq(), ID_VIEW_TAB_CABINET, Get_ui_key_view_tab_cabinet },
+ {"gui_key_view_tab_cpanel", input_seq(), ID_VIEW_TAB_CONTROL_PANEL, Get_ui_key_view_tab_cpanel },
+ {"gui_key_view_tab_flyer", input_seq(), ID_VIEW_TAB_FLYER, Get_ui_key_view_tab_flyer },
+ {"gui_key_view_tab_history", input_seq(), ID_VIEW_TAB_HISTORY, Get_ui_key_view_tab_history },
+ {"gui_key_view_tab_marquee", input_seq(), ID_VIEW_TAB_MARQUEE, Get_ui_key_view_tab_marquee },
+ {"gui_key_view_tab_screenshot", input_seq(), ID_VIEW_TAB_SCREENSHOT, Get_ui_key_view_tab_screenshot },
+ {"gui_key_view_tab_title", input_seq(), ID_VIEW_TAB_TITLE, Get_ui_key_view_tab_title },
+ {"gui_key_view_tab_pcb", input_seq(), ID_VIEW_TAB_PCB, Get_ui_key_view_tab_pcb },
+ {"gui_key_quit", input_seq(), ID_FILE_EXIT, Get_ui_key_quit },
+};
+
+
+#define NUM_GUI_SEQUENCES (sizeof(GUISequenceControl) / sizeof(GUISequenceControl[0]))
+
+
+static UINT lastColumnClick = 0;
+static WNDPROC g_lpHistoryWndProc = NULL;
+static WNDPROC g_lpPictureFrameWndProc = NULL;
+static WNDPROC g_lpPictureWndProc = NULL;
+
+static POPUPSTRING popstr[MAX_MENUS + 1];
+
+/* Tool and Status bar variables */
+static HWND hStatusBar = 0;
+static HWND s_hToolBar = 0;
+
+/* Column Order as Displayed */
+static BOOL oldControl = FALSE;
+static BOOL xpControl = FALSE;
+
+/* Used to recalculate the main window layout */
+static int bottomMargin;
+static int topMargin;
+static int have_history = FALSE;
+
+static BOOL have_selection = FALSE;
+
+static HBITMAP hMissing_bitmap = NULL;
+
+/* Icon variables */
+static HIMAGELIST hLarge = NULL;
+static HIMAGELIST hSmall = NULL;
+static HIMAGELIST hHeaderImages = NULL;
+static int *icon_index = NULL; /* for custom per-game icons */
+
+static const TBBUTTON tbb[] =
+{
+ {0, ID_VIEW_FOLDERS, TBSTATE_ENABLED, TBSTYLE_CHECK, {0, 0}, 0, 0},
+ {1, ID_VIEW_PICTURE_AREA,TBSTATE_ENABLED, TBSTYLE_CHECK, {0, 0}, 0, 1},
+ {0, 0, TBSTATE_ENABLED, TBSTYLE_SEP, {0, 0}, 0, 0},
+ {2, ID_VIEW_LARGE_ICON, TBSTATE_ENABLED, TBSTYLE_CHECKGROUP, {0, 0}, 0, 2},
+ {3, ID_VIEW_SMALL_ICON, TBSTATE_ENABLED, TBSTYLE_CHECKGROUP, {0, 0}, 0, 3},
+ {4, ID_VIEW_LIST_MENU, TBSTATE_ENABLED, TBSTYLE_CHECKGROUP, {0, 0}, 0, 4},
+ {5, ID_VIEW_DETAIL, TBSTATE_ENABLED, TBSTYLE_CHECKGROUP, {0, 0}, 0, 5},
+ {6, ID_VIEW_GROUPED, TBSTATE_ENABLED, TBSTYLE_CHECKGROUP, {0, 0}, 0, 6},
+ {0, 0, TBSTATE_ENABLED, TBSTYLE_SEP, {0, 0}, 0, 0},
+ {7, ID_HELP_ABOUT, TBSTATE_ENABLED, TBSTYLE_BUTTON, {0, 0}, 0, 7},
+ {8, ID_HELP_CONTENTS, TBSTATE_ENABLED, TBSTYLE_BUTTON, {0, 0}, 0, 8}
+};
+
+#define NUM_TOOLBUTTONS (sizeof(tbb) / sizeof(tbb[0]))
+
+#define NUM_TOOLTIPS 9
+
+static const TCHAR szTbStrings[NUM_TOOLTIPS + 1][30] =
+{
+ TEXT("Toggle Folder List"),
+ TEXT("Toggle Screen Shot"),
+ TEXT("Large Icons"),
+ TEXT("Small Icons"),
+ TEXT("List"),
+ TEXT("Details"),
+ TEXT("Grouped"),
+ TEXT("About"),
+ TEXT("Help")
+};
+
+static const int CommandToString[] =
+{
+ ID_VIEW_FOLDERS,
+ ID_VIEW_PICTURE_AREA,
+ ID_VIEW_LARGE_ICON,
+ ID_VIEW_SMALL_ICON,
+ ID_VIEW_LIST_MENU,
+ ID_VIEW_DETAIL,
+ ID_VIEW_GROUPED,
+ ID_HELP_ABOUT,
+ ID_HELP_CONTENTS,
+ -1
+};
+
+static const int s_nPickers[] =
+{
+ IDC_LIST
+};
+
+
+/* How to resize toolbar sub window */
+static ResizeItem toolbar_resize_items[] =
+{
+ { RA_ID, { ID_TOOLBAR_EDIT }, TRUE, RA_LEFT | RA_TOP, NULL },
+ { RA_END, { 0 }, FALSE, 0, NULL }
+};
+
+static Resize toolbar_resize = { {0, 0, 0, 0}, toolbar_resize_items };
+
+/* How to resize main window */
+static ResizeItem main_resize_items[] =
+{
+ { RA_HWND, { 0 }, FALSE, RA_LEFT | RA_RIGHT | RA_TOP, &toolbar_resize },
+ { RA_HWND, { 0 }, FALSE, RA_LEFT | RA_RIGHT | RA_BOTTOM, NULL },
+ { RA_ID, { IDC_DIVIDER }, FALSE, RA_LEFT | RA_RIGHT | RA_TOP, NULL },
+ { RA_ID, { IDC_TREE }, TRUE, RA_LEFT | RA_BOTTOM | RA_TOP, NULL },
+ { RA_ID, { IDC_LIST }, TRUE, RA_ALL, NULL },
+ { RA_ID, { IDC_SPLITTER }, FALSE, RA_LEFT | RA_BOTTOM | RA_TOP, NULL },
+ { RA_ID, { IDC_SPLITTER2 },FALSE, RA_RIGHT | RA_BOTTOM | RA_TOP, NULL },
+ { RA_ID, { IDC_SSFRAME }, FALSE, RA_RIGHT | RA_BOTTOM | RA_TOP, NULL },
+ { RA_ID, { IDC_SSPICTURE },FALSE, RA_RIGHT | RA_BOTTOM | RA_TOP, NULL },
+ { RA_ID, { IDC_HISTORY }, TRUE, RA_RIGHT | RA_BOTTOM | RA_TOP, NULL },
+ { RA_ID, { IDC_SSTAB }, FALSE, RA_RIGHT | RA_TOP, NULL },
+ { RA_END, { 0 }, FALSE, 0, NULL }
+};
+
+static Resize main_resize = { {0, 0, 0, 0}, main_resize_items };
+
+/* last directory for common file dialogs */
+TCHAR last_directory[MAX_PATH];
+
+/* system-wide window message sent out with an ATOM of the current game name
+ each time it changes */
+static UINT g_mame32_message = 0;
+
+static BOOL g_listview_dragging = FALSE;
+static HIMAGELIST himl_drag;
+static int game_dragged; /* which game started the drag */
+static HTREEITEM prev_drag_drop_target; /* which tree view item we're currently highlighting */
+
+static BOOL g_in_treeview_edit = FALSE;
+
+/***************************************************************************
+ Global variables
+ ***************************************************************************/
+
+/* Background Image handles also accessed from TreeView.c */
+static HPALETTE hPALbg = 0;
+static HBITMAP hBackground = 0;
+static MYBITMAPINFO bmDesc;
+
+/* List view Column text */
+extern const LPCTSTR column_names[COLUMN_MAX] =
+{
+ TEXT("Machine"),
+ TEXT("Source"),
+ TEXT("Directory"),
+ TEXT("Type"),
+ TEXT("Screen"),
+ TEXT("Manufacturer"),
+ TEXT("Year"),
+ TEXT("Played"),
+ TEXT("Play Time"),
+ TEXT("Clone Of"),
+ TEXT("Trackball"),
+#ifdef SHOW_COLUMN_SAMPLES
+ TEXT("Samples"),
+#endif
+#ifdef SHOW_COLUMN_ROMS
+ TEXT("ROMs"),
+#endif
+};
+
+/***************************************************************************
+ Message Macros
+ ***************************************************************************/
+
+#ifndef StatusBar_GetItemRect
+#define StatusBar_GetItemRect(hWnd, iPart, lpRect) \
+ SendMessage(hWnd, SB_GETRECT, (WPARAM) iPart, (LPARAM) (LPRECT) lpRect)
+#endif
+
+#ifndef ToolBar_CheckButton
+#define ToolBar_CheckButton(hWnd, idButton, fCheck) \
+ SendMessage(hWnd, TB_CHECKBUTTON, (WPARAM)idButton, (LPARAM)MAKELONG(fCheck, 0))
+#endif
+
+//============================================================
+// winui_output_error
+//============================================================
+
+
+class mameui_output_error : public osd_output
+{
+public:
+ virtual void output_callback(osd_output_channel channel, const char *msg, va_list args)
+ {
+ if (channel == OSD_OUTPUT_CHANNEL_ERROR)
+ {
+ char buffer[1024];
+
+ // if we are in fullscreen mode, go to windowed mode
+ if ((video_config.windowed == 0) && !osd_common_t::s_window_list.empty())
+ winwindow_toggle_full_screen();
+
+ vsnprintf(buffer, ARRAY_LENGTH(buffer), msg, args);printf("%s\n",buffer);
+ win_message_box_utf8(!osd_common_t::s_window_list.empty() ? std::static_pointer_cast<win_window_info>(osd_common_t::s_window_list.front())->platform_window() : hMain, buffer, MAMEUINAME, MB_ICONERROR | MB_OK);
+ }
+ else
+ chain_output(channel, msg, args);
+ }
+};
+
+static std::wstring s2ws(const std::string& s)
+{
+ int len;
+ int slength = (int)s.length() + 1;
+ len = MultiByteToWideChar(CP_ACP, 0, s.c_str(), slength, 0, 0);
+ wchar_t* buf = new wchar_t[len];
+ MultiByteToWideChar(CP_ACP, 0, s.c_str(), slength, buf, len);
+ std::wstring r(buf);
+ delete[] buf;
+ return r;
+}
+
+
+/***************************************************************************
+ External functions
+ ***************************************************************************/
+static DWORD RunMAME(int nGameIndex, const play_options *playopts)
+{
+ time_t start, end;
+ double elapsedtime;
+ int i;
+ //mame_options mame_opts; seems useless....
+ windows_options global_opts;
+ std::string error_string;
+ // set up MAME options
+ // mame_opts = mame_options_init(mame_win_options);
+
+ // Tell mame were to get the INIs
+ SetDirectories(global_opts);
+
+ // set some startup options
+ global_opts.set_value(OPTION_LANGUAGE, GetLanguageUI(), OPTION_PRIORITY_CMDLINE, error_string);
+ global_opts.set_value(OPTION_PLUGINS, GetEnablePlugins(), OPTION_PRIORITY_CMDLINE, error_string);
+ global_opts.set_value(OPTION_PLUGIN, GetPlugins(), OPTION_PRIORITY_CMDLINE, error_string);
+
+ // add image specific device options
+ //mame_opts.set_system_name(global_opts, driver_list::driver(nGameIndex).name);
+ global_opts.set_value(OPTION_SYSTEMNAME, driver_list::driver(nGameIndex).name, OPTION_PRIORITY_CMDLINE, error_string);
+
+ // set any specified play options
+ if (playopts_apply == 0x57)
+ {
+ if (playopts->record)
+ global_opts.set_value(OPTION_RECORD, playopts->record, OPTION_PRIORITY_CMDLINE,error_string);
+ if (playopts->playback)
+ global_opts.set_value(OPTION_PLAYBACK, playopts->playback, OPTION_PRIORITY_CMDLINE,error_string);
+ if (playopts->state)
+ global_opts.set_value(OPTION_STATE, playopts->state, OPTION_PRIORITY_CMDLINE,error_string);
+ if (playopts->wavwrite)
+ global_opts.set_value(OPTION_WAVWRITE, playopts->wavwrite, OPTION_PRIORITY_CMDLINE,error_string);
+ if (playopts->mngwrite)
+ global_opts.set_value(OPTION_MNGWRITE, playopts->mngwrite, OPTION_PRIORITY_CMDLINE,error_string);
+ if (playopts->aviwrite)
+ global_opts.set_value(OPTION_AVIWRITE, playopts->aviwrite, OPTION_PRIORITY_CMDLINE,error_string);
+ }
+
+ // Mame will parse all the needed .ini files.
+
+ // prepare MAME32 to run the game
+ ShowWindow(hMain, SW_HIDE);
+
+ for (i = 0; i < ARRAY_LENGTH(s_nPickers); i++)
+ Picker_ClearIdle(GetDlgItem(hMain, s_nPickers[i]));
+
+ // run the emulation
+ // Time the game run.
+ time(&start);
+ windows_osd_interface osd(global_opts);
+ // output errors to message boxes
+ mameui_output_error winerror;
+ osd_output::push(&winerror);
+ osd.register_options();
+ mame_machine_manager *manager = mame_machine_manager::instance(global_opts, osd);
+ load_translation(global_opts);
+ manager->start_http_server();
+ manager->start_luaengine();
+ manager->execute();
+ osd_output::pop(&winerror);
+ global_free(manager);
+ // Calc the duration
+ time(&end);
+ elapsedtime = end - start;
+ // Increment our playtime.
+ IncrementPlayTime(nGameIndex, elapsedtime);
+
+ // clear any specified play options
+ // do it this way to preserve slots and software entries
+ if (playopts_apply == 0x57)
+ {
+ windows_options o;
+ load_options(o, OPTIONS_GAME, nGameIndex);
+ if (playopts->record)
+ o.set_value(OPTION_RECORD, "", OPTION_PRIORITY_CMDLINE,error_string);
+ if (playopts->playback)
+ o.set_value(OPTION_PLAYBACK, "", OPTION_PRIORITY_CMDLINE,error_string);
+ if (playopts->state)
+ o.set_value(OPTION_STATE, "", OPTION_PRIORITY_CMDLINE,error_string);
+ if (playopts->wavwrite)
+ o.set_value(OPTION_WAVWRITE, "", OPTION_PRIORITY_CMDLINE,error_string);
+ if (playopts->mngwrite)
+ o.set_value(OPTION_MNGWRITE, "", OPTION_PRIORITY_CMDLINE,error_string);
+ if (playopts->aviwrite)
+ o.set_value(OPTION_AVIWRITE, "", OPTION_PRIORITY_CMDLINE,error_string);
+ // apply the above to the ini file
+ save_options(o, OPTIONS_GAME, nGameIndex);
+ }
+ playopts_apply = 0;
+
+ // the emulation is complete; continue
+ for (i = 0; i < ARRAY_LENGTH(s_nPickers); i++)
+ Picker_ResetIdle(GetDlgItem(hMain, s_nPickers[i]));
+ ShowWindow(hMain, SW_SHOW);
+ SetForegroundWindow(hMain);
+
+ return (DWORD)0;
+}
+
+int MameUIMain(HINSTANCE hInstance, LPWSTR lpCmdLine, int nCmdShow)
+{
+ if (__argc != 1)
+ {
+ /* Rename main because gcc will use it instead of WinMain even with -mwindows */
+ extern int utf8_main(std::vector<std::string> &args);
+ std::vector<std::string> utf8_argv(__argc);
+
+ /* convert arguments to UTF-8 */
+ for (int i = 0; i < __argc; i++)
+ utf8_argv[i] = ui_utf8_from_wstring(__targv[i]);
+
+ /* run utf8_main */
+ exit(utf8_main(utf8_argv));
+ }
+ if (!Win32UI_init(hInstance, lpCmdLine, nCmdShow))
+ return 1;
+
+ // pump message, but quit on WM_QUIT
+ while(PumpMessage())
+ ;
+
+ Win32UI_exit();
+ return 0;
+}
+
+
+HWND GetMainWindow(void)
+{
+ return hMain;
+}
+
+HWND GetTreeView(void)
+{
+ return hTreeView;
+}
+
+object_pool *GetMameUIMemoryPool(void)
+{
+ return mameui_pool;
+}
+
+void GetRealColumnOrder(int order[])
+{
+ int tmpOrder[COLUMN_MAX];
+ int nColumnMax;
+ int i;
+ BOOL res;
+
+ nColumnMax = Picker_GetNumColumns(hwndList);
+
+ /* Get the Column Order and save it */
+ if (!oldControl)
+ {
+ res = ListView_GetColumnOrderArray(hwndList, nColumnMax, tmpOrder);
+
+ for (i = 0; i < nColumnMax; i++)
+ {
+ order[i] = Picker_GetRealColumnFromViewColumn(hwndList, tmpOrder[i]);
+ }
+ }
+}
+
+/*
+ * PURPOSE: Format raw data read from an ICO file to an HICON
+ * PARAMS: PBYTE ptrBuffer - Raw data from an ICO file
+ * UINT nBufferSize - Size of buffer ptrBuffer
+ * RETURNS: HICON - handle to the icon, NULL for failure
+ * History: July '95 - Created
+ * March '00- Seriously butchered from MSDN for mine own
+ * purposes, sayeth H0ek.
+ */
+static HICON FormatICOInMemoryToHICON(PBYTE ptrBuffer, UINT nBufferSize)
+{
+ ICONIMAGE IconImage;
+ LPICONDIRENTRY lpIDE = NULL;
+ UINT nNumImages;
+ UINT nBufferIndex = 0;
+ HICON hIcon = NULL;
+
+ /* Is there a WORD? */
+ if (nBufferSize < sizeof(WORD))
+ {
+ return NULL;
+ }
+
+ /* Was it 'reserved' ? (ie 0) */
+ if ((WORD)(ptrBuffer[nBufferIndex]) != 0)
+ {
+ return NULL;
+ }
+
+ nBufferIndex += sizeof(WORD);
+
+ /* Is there a WORD? */
+ if (nBufferSize - nBufferIndex < sizeof(WORD))
+ {
+ return NULL;
+ }
+
+ /* Was it type 1? */
+ if ((WORD)(ptrBuffer[nBufferIndex]) != 1)
+ {
+ return NULL;
+ }
+
+ nBufferIndex += sizeof(WORD);
+
+ /* Is there a WORD? */
+ if (nBufferSize - nBufferIndex < sizeof(WORD))
+ {
+ return NULL;
+ }
+
+ /* Then that's the number of images in the ICO file */
+ nNumImages = (WORD)(ptrBuffer[nBufferIndex]);
+
+ /* Is there at least one icon in the file? */
+ if ( nNumImages < 1 )
+ {
+ return NULL;
+ }
+
+ nBufferIndex += sizeof(WORD);
+
+ /* Is there enough space for the icon directory entries? */
+ if ((nBufferIndex + nNumImages * sizeof(ICONDIRENTRY)) > nBufferSize)
+ {
+ return NULL;
+ }
+
+ /* Assign icon directory entries from buffer */
+ lpIDE = (LPICONDIRENTRY)(&ptrBuffer[nBufferIndex]);
+ nBufferIndex += nNumImages * sizeof (ICONDIRENTRY);
+
+ IconImage.dwNumBytes = lpIDE->dwBytesInRes;
+
+ /* Seek to beginning of this image */
+ if ( lpIDE->dwImageOffset > nBufferSize )
+ {
+ return NULL;
+ }
+
+ nBufferIndex = lpIDE->dwImageOffset;
+
+ /* Read it in */
+ if ((nBufferIndex + lpIDE->dwBytesInRes) > nBufferSize)
+ {
+ return NULL;
+ }
+
+ IconImage.lpBits = &ptrBuffer[nBufferIndex];
+ nBufferIndex += lpIDE->dwBytesInRes;
+ /* It failed, odds are good we're on NT so try the non-Ex way */
+ if (hIcon == NULL)
+ {
+ /* We would break on NT if we try with a 16bpp image */
+ if (((LPBITMAPINFO)IconImage.lpBits)->bmiHeader.biBitCount != 16)
+ {
+ hIcon = CreateIconFromResourceEx(IconImage.lpBits, IconImage.dwNumBytes, TRUE, 0x00030000,0,0,LR_DEFAULTSIZE);
+ }
+ }
+ return hIcon;
+}
+
+HICON LoadIconFromFile(const char *iconname)
+{
+ HICON hIcon = 0;
+ struct stat file_stat;
+ char tmpStr[MAX_PATH];
+ char tmpIcoName[MAX_PATH];
+ const char* sDirName = GetImgDir();
+ PBYTE bufferPtr;
+ util::archive_file::error ziperr;
+ util::archive_file::ptr zip;
+ int res = 0;
+
+ sprintf(tmpStr, "%s/%s.ico", GetIconsDir(), iconname);
+ if (stat(tmpStr, &file_stat) != 0 || (hIcon = win_extract_icon_utf8(hInst, tmpStr, 0)) == 0)
+ {
+ sprintf(tmpStr, "%s/%s.ico", sDirName, iconname);
+ if (stat(tmpStr, &file_stat) != 0
+ || (hIcon = win_extract_icon_utf8(hInst, tmpStr, 0)) == 0)
+ {
+ sprintf(tmpStr, "%s/icons.zip", GetIconsDir());
+ sprintf(tmpIcoName, "%s.ico", iconname);
+
+ ziperr = util::archive_file::open_zip(tmpStr, zip);
+ if (ziperr == util::archive_file::error::NONE)
+ {
+ res = zip->search(tmpIcoName, false);
+ if (res >= 0)
+ {
+ bufferPtr = (PBYTE)malloc(zip->current_uncompressed_length());
+ if (bufferPtr)
+ {
+ ziperr = zip->decompress(bufferPtr, zip->current_uncompressed_length());
+ if (ziperr == util::archive_file::error::NONE)
+ {
+ hIcon = FormatICOInMemoryToHICON(bufferPtr, zip->current_uncompressed_length());
+ }
+ free(bufferPtr);
+ }
+ }
+ zip.reset();
+ }
+ else
+ {
+ sprintf(tmpStr, "%s/icons.7z", GetIconsDir());
+ sprintf(tmpIcoName, "%s.ico", iconname);
+
+ ziperr = util::archive_file::open_7z(tmpStr, zip);
+ if (ziperr == util::archive_file::error::NONE)
+ {
+ res = zip->search(tmpIcoName, false);
+ if (res >= 0)
+ {
+ bufferPtr = (PBYTE)malloc(zip->current_uncompressed_length());
+ if (bufferPtr)
+ {
+ ziperr = zip->decompress(bufferPtr, zip->current_uncompressed_length());
+ if (ziperr == util::archive_file::error::NONE)
+ {
+ hIcon = FormatICOInMemoryToHICON(bufferPtr, zip->current_uncompressed_length());
+ }
+ free(bufferPtr);
+ }
+ }
+ zip.reset();
+ }
+ }
+ }
+ }
+ return hIcon;
+}
+
+/* Return the number of folders with options */
+void SetNumOptionFolders(int count)
+{
+ optionfolder_count = count;
+}
+
+/* search */
+const char * GetSearchText(void)
+{
+ return g_SearchText;
+}
+
+
+/* Sets the treeview and listviews sizes in accordance with their visibility and the splitters */
+static void ResizeTreeAndListViews(BOOL bResizeHidden)
+{
+ int i;
+ int nLastWidth = 0;
+ int nLastWidth2 = 0;
+ int nLeftWindowWidth = 0;
+ RECT rect;
+ BOOL bVisible;
+ //int nLastOverlap = -1;
+
+ /* Size the List Control in the Picker */
+ GetClientRect(hMain, &rect);
+
+ if (bShowStatusBar)
+ rect.bottom -= bottomMargin;
+ if (bShowToolBar)
+ rect.top += topMargin;
+
+ /* Tree control */
+ ShowWindow(GetDlgItem(hMain, IDC_TREE), bShowTree ? SW_SHOW : SW_HIDE);
+
+ for (i = 0; g_splitterInfo[i].nSplitterWindow; i++)
+ {
+ bVisible = GetWindowLong(GetDlgItem(hMain, g_splitterInfo[i].nLeftWindow), GWL_STYLE) & WS_VISIBLE ? TRUE : FALSE;
+ if (bResizeHidden || bVisible)
+ {
+ nLeftWindowWidth = nSplitterOffset[i] - SPLITTER_WIDTH/2 - nLastWidth;
+
+ /* special case for the rightmost pane when the screenshot is gone */
+ if (!GetShowScreenShot() && !g_splitterInfo[i+1].nSplitterWindow)
+ nLeftWindowWidth = rect.right - nLastWidth;
+
+ /* woah? are we overlapping ourselves? */
+ if (nLeftWindowWidth < MIN_VIEW_WIDTH)
+ {
+ //nLastOverlap = i;
+ nLastWidth = nLastWidth2;
+ nLeftWindowWidth = nSplitterOffset[i] - MIN_VIEW_WIDTH - (SPLITTER_WIDTH*3/2) - nLastWidth;
+ i--;
+ }
+
+ MoveWindow(GetDlgItem(hMain, g_splitterInfo[i].nLeftWindow), nLastWidth, rect.top + 2,
+ nLeftWindowWidth, (rect.bottom - rect.top) - 4 , TRUE);
+
+ MoveWindow(GetDlgItem(hMain, g_splitterInfo[i].nSplitterWindow), nSplitterOffset[i], rect.top + 2,
+ SPLITTER_WIDTH, (rect.bottom - rect.top) - 4, TRUE);
+ }
+
+ if (bVisible)
+ {
+ nLastWidth2 = nLastWidth;
+ nLastWidth += nLeftWindowWidth + SPLITTER_WIDTH;
+ }
+ }
+}
+
+/* Adjust the list view and screenshot button based on GetShowScreenShot() */
+void UpdateScreenShot(void)
+{
+ RECT rect;
+ //int nWidth;
+ RECT fRect;
+ POINT p = {0, 0};
+
+ /* first time through can't do this stuff */
+ if (hwndList == NULL)
+ return;
+
+ /* Size the List Control in the Picker */
+ GetClientRect(hMain, &rect);
+
+ if (bShowStatusBar)
+ rect.bottom -= bottomMargin;
+ if (bShowToolBar)
+ rect.top += topMargin;
+
+ if (GetShowScreenShot())
+ {
+ //nWidth = nSplitterOffset[GetSplitterCount() - 1];
+ CheckMenuItem(GetMenu(hMain),ID_VIEW_PICTURE_AREA, MF_CHECKED);
+ ToolBar_CheckButton(s_hToolBar, ID_VIEW_PICTURE_AREA, MF_CHECKED);
+ }
+ else
+ {
+ //nWidth = rect.right;
+ CheckMenuItem(GetMenu(hMain),ID_VIEW_PICTURE_AREA, MF_UNCHECKED);
+ ToolBar_CheckButton(s_hToolBar, ID_VIEW_PICTURE_AREA, MF_UNCHECKED);
+ }
+
+ ResizeTreeAndListViews(FALSE);
+
+ FreeScreenShot();
+
+ if (have_selection)
+ {
+#ifdef MESS
+ if (!g_szSelectedItem[0] || !LoadScreenShotEx(Picker_GetSelectedItem(hwndList), g_szSelectedItem,
+ TabView_GetCurrentTab(hTabCtrl)))
+#endif
+ // load and set image, or empty it if we don't have one
+ LoadScreenShot(Picker_GetSelectedItem(hwndList), TabView_GetCurrentTab(hTabCtrl));
+ }
+
+ // figure out if we have a history or not, to place our other windows properly
+ UpdateHistory();
+
+ // setup the picture area
+
+ if (GetShowScreenShot())
+ {
+ DWORD dwStyle;
+ DWORD dwStyleEx;
+ BOOL showing_history;
+
+ ClientToScreen(hMain, &p);
+ GetWindowRect(GetDlgItem(hMain, IDC_SSFRAME), &fRect);
+ OffsetRect(&fRect, -p.x, -p.y);
+
+ // show history on this tab IFF
+ // - we have history for the game
+ // - we're on the first tab
+ // - we DON'T have a separate history tab
+ showing_history = (have_history && (TabView_GetCurrentTab(hTabCtrl) == GetHistoryTab() || GetHistoryTab() == TAB_ALL ) &&
+ GetShowTab(TAB_HISTORY) == FALSE);
+ CalculateBestScreenShotRect(GetDlgItem(hMain, IDC_SSFRAME), &rect,showing_history);
+
+ dwStyle = GetWindowLong(GetDlgItem(hMain, IDC_SSPICTURE), GWL_STYLE);
+ dwStyleEx = GetWindowLong(GetDlgItem(hMain, IDC_SSPICTURE), GWL_EXSTYLE);
+
+ AdjustWindowRectEx(&rect, dwStyle, FALSE, dwStyleEx);
+ MoveWindow(GetDlgItem(hMain, IDC_SSPICTURE),
+ fRect.left + rect.left,
+ fRect.top + rect.top,
+ rect.right - rect.left,
+ rect.bottom - rect.top,
+ TRUE);
+
+ ShowWindow(GetDlgItem(hMain,IDC_SSPICTURE),
+ (TabView_GetCurrentTab(hTabCtrl) != TAB_HISTORY) ? SW_SHOW : SW_HIDE);
+ ShowWindow(GetDlgItem(hMain,IDC_SSFRAME),SW_SHOW);
+ ShowWindow(GetDlgItem(hMain,IDC_SSTAB),bShowTabCtrl ? SW_SHOW : SW_HIDE);
+
+ InvalidateRect(GetDlgItem(hMain,IDC_SSPICTURE),NULL,FALSE);
+ }
+ else
+ {
+ ShowWindow(GetDlgItem(hMain,IDC_SSPICTURE),SW_HIDE);
+ ShowWindow(GetDlgItem(hMain,IDC_SSFRAME),SW_HIDE);
+ ShowWindow(GetDlgItem(hMain,IDC_SSTAB),SW_HIDE);
+ }
+
+}
+
+void ResizePickerControls(HWND hWnd)
+{
+ RECT frameRect;
+ RECT rect, sRect;
+ int nListWidth, nScreenShotWidth;
+ static BOOL firstTime = TRUE;
+ int doSSControls = TRUE;
+ int i, nSplitterCount;
+
+ nSplitterCount = GetSplitterCount();
+
+ /* Size the List Control in the Picker */
+ GetClientRect(hWnd, &rect);
+
+ /* Calc the display sizes based on g_splitterInfo */
+ if (firstTime)
+ {
+ RECT rWindow;
+
+ for (i = 0; i < nSplitterCount; i++)
+ nSplitterOffset[i] = rect.right * g_splitterInfo[i].dPosition;
+
+ GetWindowRect(hStatusBar, &rWindow);
+ bottomMargin = rWindow.bottom - rWindow.top;
+ GetWindowRect(s_hToolBar, &rWindow);
+ topMargin = rWindow.bottom - rWindow.top;
+ /*buttonMargin = (sRect.bottom + 4); */
+
+ firstTime = FALSE;
+ }
+ else
+ {
+ doSSControls = GetShowScreenShot();
+ }
+
+ if (bShowStatusBar)
+ rect.bottom -= bottomMargin;
+
+ if (bShowToolBar)
+ rect.top += topMargin;
+
+ MoveWindow(GetDlgItem(hWnd, IDC_DIVIDER), rect.left, rect.top - 4, rect.right, 2, TRUE);
+
+ ResizeTreeAndListViews(TRUE);
+
+ nListWidth = nSplitterOffset[nSplitterCount-1];
+ nScreenShotWidth = (rect.right - nListWidth) - 4;
+
+ /* Screen shot Page tab control */
+ if (bShowTabCtrl)
+ {
+ MoveWindow(GetDlgItem(hWnd, IDC_SSTAB), nListWidth + 4, rect.top + 2,
+ nScreenShotWidth - 2, rect.top + 20, doSSControls);
+ rect.top += 20;
+ }
+
+ /* resize the Screen shot frame */
+ MoveWindow(GetDlgItem(hWnd, IDC_SSFRAME), nListWidth + 4, rect.top + 2,
+ nScreenShotWidth - 2, (rect.bottom - rect.top) - 4, doSSControls);
+
+ /* The screen shot controls */
+ GetClientRect(GetDlgItem(hWnd, IDC_SSFRAME), &frameRect);
+
+ /* Text control - game history */
+ sRect.left = nListWidth + 14;
+ sRect.right = sRect.left + (nScreenShotWidth - 22);
+
+
+ if (GetShowTab(TAB_HISTORY))
+ {
+ // We're using the new mode, with the history filling the entire tab (almost)
+ sRect.top = rect.top + 14;
+ sRect.bottom = (rect.bottom - rect.top) - 30;
+ }
+ else
+ {
+ // We're using the original mode, with the history beneath the SS picture
+ sRect.top = rect.top + 264;
+ sRect.bottom = (rect.bottom - rect.top) - 278;
+ }
+
+ MoveWindow(GetDlgItem(hWnd, IDC_HISTORY),
+ sRect.left, sRect.top,
+ sRect.right - sRect.left, sRect.bottom, doSSControls);
+
+ /* the other screen shot controls will be properly placed in UpdateScreenshot() */
+
+}
+
+
+char *ModifyThe(const char *str)
+{
+ static int bufno = 0;
+ static char buffer[4][255];
+
+ if (strncmp(str, "The ", 4) == 0)
+ {
+ char *s, *p;
+ char temp[255];
+
+ strcpy(temp, &str[4]);
+
+ bufno = (bufno + 1) % 4;
+
+ s = buffer[bufno];
+
+ /* Check for version notes in parens */
+ p = strchr(temp, '(');
+ if (p)
+ {
+ p[-1] = '\0';
+ }
+
+ strcpy(s, temp);
+ strcat(s, ", The");
+
+ if (p)
+ {
+ strcat(s, " ");
+ strcat(s, p);
+ }
+
+ return s;
+ }
+ return (char *)str;
+}
+
+HBITMAP GetBackgroundBitmap(void)
+{
+ return hBackground;
+}
+
+HPALETTE GetBackgroundPalette(void)
+{
+ return hPALbg;
+}
+
+MYBITMAPINFO * GetBackgroundInfo(void)
+{
+ return &bmDesc;
+}
+
+BOOL GetUseOldControl(void)
+{
+ return oldControl;
+}
+
+BOOL GetUseXPControl(void)
+{
+ return xpControl;
+}
+
+int GetMinimumScreenShotWindowWidth(void)
+{
+ BITMAP bmp;
+ GetObject(hMissing_bitmap,sizeof(BITMAP),&bmp);
+
+ return bmp.bmWidth + 6; // 6 is for a little breathing room
+}
+
+
+int GetParentIndex(const game_driver *driver)
+{
+ return GetGameNameIndex(driver->parent);
+}
+
+int GetParentRomSetIndex(const game_driver *driver)
+{
+ int nParentIndex = GetGameNameIndex(driver->parent);
+
+ if( nParentIndex >= 0)
+ {
+ if ((driver_list::driver(nParentIndex).flags & MACHINE_IS_BIOS_ROOT) == 0)
+ return nParentIndex;
+ }
+
+ return -1;
+}
+
+int GetGameNameIndex(const char *name)
+{
+ return driver_list::find(name);
+}
+
+/***************************************************************************
+ Internal functions
+ ***************************************************************************/
+
+
+static void SetMainTitle(void)
+{
+ char version[50];
+ char buffer[100];
+
+ sscanf(GetVersionString(),"%49s",version);
+ snprintf(buffer, ARRAY_LENGTH(buffer), "%s %s", MAMEUINAME, GetVersionString());
+ win_set_window_text_utf8(hMain,buffer);
+}
+
+static void memory_error(const char *message)
+{
+ win_message_box_utf8(hMain, message, emulator_info::get_appname(), MB_OK);
+ exit(-1);
+}
+
+static BOOL Win32UI_init(HINSTANCE hInstance, LPWSTR lpCmdLine, int nCmdShow)
+{
+ extern int mame_validitychecks(int game);
+ WNDCLASS wndclass;
+ RECT rect;
+ int i, nSplitterCount;
+ extern const FOLDERDATA g_folderData[];
+ extern const FILTER_ITEM g_filterList[];
+ LONG common_control_version = GetCommonControlVersion();
+ int validity_failed = 0;
+ TCHAR* t_inpdir = NULL;
+ LONG_PTR l;
+
+ if (!OptionsInit())
+ return FALSE;
+
+ srand((unsigned)time(NULL));
+
+ // create the memory pool
+ mameui_pool = pool_alloc_lib(memory_error);
+
+ // custom per-game icons
+ icon_index = (int*)pool_malloc_lib(mameui_pool, sizeof(int) * driver_list::total());
+ memset(icon_index, '\0', sizeof(int) * driver_list::total());
+
+ // set up window class
+ wndclass.style = CS_HREDRAW | CS_VREDRAW;
+ wndclass.lpfnWndProc = MameWindowProc;
+ wndclass.cbClsExtra = 0;
+ wndclass.cbWndExtra = DLGWINDOWEXTRA;
+ wndclass.hInstance = hInstance;
+ wndclass.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_MAMEUI_ICON));
+ wndclass.hCursor = NULL;
+ wndclass.hbrBackground = (HBRUSH)(COLOR_3DFACE + 1);
+ wndclass.lpszMenuName = MAKEINTRESOURCE(IDR_UI_MENU);
+ wndclass.lpszClassName = TEXT("MainClass");
+
+ RegisterClass(&wndclass);
+
+ InitCommonControls();
+
+ // Are we using an Old comctl32.dll?
+ dprintf("common controlversion %ld %ld\n",common_control_version >> 16, common_control_version & 0xffff);
+
+ oldControl = (common_control_version < PACKVERSION(4,71));
+ xpControl = (common_control_version >= PACKVERSION(6,0));
+ if (oldControl)
+ {
+ char buf[] = MAMEUINAME " has detected an old version of comctl32.dll\n\n"
+ "Game Properties, many configuration options and\n"
+ "features are not available without an updated DLL\n\n";
+
+ win_message_box_utf8(0, buf, MAMEUINAME " Outdated comctl32.dll Warning", MB_OK | MB_ICONWARNING);
+ }
+
+ g_mame32_message = RegisterWindowMessage(TEXT("MAME32"));
+
+ HelpInit();
+
+ t_inpdir = ui_wstring_from_utf8(GetInpDir());
+ if( ! t_inpdir )
+ return FALSE;
+
+ _tcscpy(last_directory,t_inpdir);
+ free(t_inpdir);
+ hMain = CreateDialog(hInstance, MAKEINTRESOURCE(IDD_MAIN), 0, NULL);
+ if (hMain == NULL)
+ {
+ dprintf("error creating main dialog, aborting\n");
+ return FALSE;
+ }
+
+ s_pWatcher = DirWatcher_Init(hMain, WM_MAME32_FILECHANGED);
+ if (s_pWatcher)
+ {
+ DirWatcher_Watch(s_pWatcher, 0, GetRomDirs(), TRUE);
+ DirWatcher_Watch(s_pWatcher, 1, GetSampleDirs(), TRUE);
+ }
+
+ SetMainTitle();
+ hTabCtrl = GetDlgItem(hMain, IDC_SSTAB);
+
+ {
+ struct TabViewOptions opts;
+
+ static const struct TabViewCallbacks s_tabviewCallbacks =
+ {
+ GetShowTabCtrl, // pfnGetShowTabCtrl
+ SetCurrentTab, // pfnSetCurrentTab
+ GetCurrentTab, // pfnGetCurrentTab
+ SetShowTab, // pfnSetShowTab
+ GetShowTab, // pfnGetShowTab
+
+ GetImageTabShortName, // pfnGetTabShortName
+ GetImageTabLongName, // pfnGetTabLongName
+ UpdateScreenShot // pfnOnSelectionChanged
+ };
+
+ memset(&opts, 0, sizeof(opts));
+ opts.pCallbacks = &s_tabviewCallbacks;
+ opts.nTabCount = MAX_TAB_TYPES;
+
+ if (!SetupTabView(hTabCtrl, &opts))
+ return FALSE;
+ }
+
+ /* subclass history window */
+ l = GetWindowLongPtr(GetDlgItem(hMain, IDC_HISTORY), GWLP_WNDPROC);
+ g_lpHistoryWndProc = (WNDPROC)l;
+ SetWindowLongPtr(GetDlgItem(hMain, IDC_HISTORY), GWLP_WNDPROC, (LONG_PTR)HistoryWndProc);
+
+ /* subclass picture frame area */
+ l = GetWindowLongPtr(GetDlgItem(hMain, IDC_SSFRAME), GWLP_WNDPROC);
+ g_lpPictureFrameWndProc = (WNDPROC)l;
+ SetWindowLongPtr(GetDlgItem(hMain, IDC_SSFRAME), GWLP_WNDPROC, (LONG_PTR)PictureFrameWndProc);
+
+ /* subclass picture area */
+ l = GetWindowLongPtr(GetDlgItem(hMain, IDC_SSPICTURE), GWLP_WNDPROC);
+ g_lpPictureWndProc = (WNDPROC)l;
+ SetWindowLongPtr(GetDlgItem(hMain, IDC_SSPICTURE), GWLP_WNDPROC, (LONG_PTR)PictureWndProc);
+
+ /* Load the pic for the default screenshot. */
+ hMissing_bitmap = LoadBitmap(GetModuleHandle(NULL),MAKEINTRESOURCE(IDB_ABOUT));
+
+ /* Stash hInstance for later use */
+ hInst = hInstance;
+
+ s_hToolBar = InitToolbar(hMain);
+ hStatusBar = InitStatusBar(hMain);
+ hProgWnd = InitProgressBar(hStatusBar);
+
+ main_resize_items[0].u.hwnd = s_hToolBar;
+ main_resize_items[1].u.hwnd = hStatusBar;
+
+ /* In order to handle 'Large Fonts' as the Windows
+ * default setting, we need to make the dialogs small
+ * enough to fit in our smallest window size with
+ * large fonts, then resize the picker, tab and button
+ * controls to fill the window, no matter which font
+ * is currently set. This will still look like bad
+ * if the user uses a bigger default font than 125%
+ * (Large Fonts) on the Windows display setting tab.
+ *
+ * NOTE: This has to do with Windows default font size
+ * settings, NOT our picker font size.
+ */
+
+ GetClientRect(hMain, &rect);
+
+ hTreeView = GetDlgItem(hMain, IDC_TREE);
+ hwndList = GetDlgItem(hMain, IDC_LIST);
+
+ if (!InitSplitters())
+ return FALSE;
+
+ nSplitterCount = GetSplitterCount();
+ for (i = 0; i < nSplitterCount; i++)
+ {
+ HWND hWnd;
+ HWND hWndLeft;
+ HWND hWndRight;
+
+ hWnd = GetDlgItem(hMain, g_splitterInfo[i].nSplitterWindow);
+ hWndLeft = GetDlgItem(hMain, g_splitterInfo[i].nLeftWindow);
+ hWndRight = GetDlgItem(hMain, g_splitterInfo[i].nRightWindow);
+
+ AddSplitter(hWnd, hWndLeft, hWndRight, g_splitterInfo[i].pfnAdjust);
+ }
+
+ /* Initial adjustment of controls on the Picker window */
+ ResizePickerControls(hMain);
+
+ TabView_UpdateSelection(hTabCtrl);
+
+ bDoGameCheck = GetGameCheck();
+ idle_work = TRUE;
+ game_index = 0;
+
+ bShowTree = GetShowFolderList();
+ bShowToolBar = GetShowToolBar();
+ bShowStatusBar = GetShowStatusBar();
+ bShowTabCtrl = GetShowTabCtrl();
+
+ CheckMenuItem(GetMenu(hMain), ID_VIEW_FOLDERS, (bShowTree) ? MF_CHECKED : MF_UNCHECKED);
+ ToolBar_CheckButton(s_hToolBar, ID_VIEW_FOLDERS, (bShowTree) ? MF_CHECKED : MF_UNCHECKED);
+ CheckMenuItem(GetMenu(hMain), ID_VIEW_TOOLBARS, (bShowToolBar) ? MF_CHECKED : MF_UNCHECKED);
+ ShowWindow(s_hToolBar, (bShowToolBar) ? SW_SHOW : SW_HIDE);
+ CheckMenuItem(GetMenu(hMain), ID_VIEW_STATUS, (bShowStatusBar) ? MF_CHECKED : MF_UNCHECKED);
+ ShowWindow(hStatusBar, (bShowStatusBar) ? SW_SHOW : SW_HIDE);
+ CheckMenuItem(GetMenu(hMain), ID_VIEW_PAGETAB, (bShowTabCtrl) ? MF_CHECKED : MF_UNCHECKED);
+
+ if (oldControl)
+ {
+ EnableMenuItem(GetMenu(hMain), ID_CUSTOMIZE_FIELDS, MF_GRAYED);
+ EnableMenuItem(GetMenu(hMain), ID_GAME_PROPERTIES, MF_GRAYED);
+ EnableMenuItem(GetMenu(hMain), ID_OPTIONS_DEFAULTS, MF_GRAYED);
+ }
+
+ /* Init DirectDraw */
+ if (!DirectDraw_Initialize())
+ {
+ DialogBox(GetModuleHandle(NULL),MAKEINTRESOURCE(IDD_DIRECTX), NULL, DirectXDialogProc);
+ return FALSE;
+ }
+
+ LoadBackgroundBitmap();
+
+ dprintf("about to init tree\n");
+ InitTree(g_folderData, g_filterList);
+ dprintf("did init tree\n");
+
+ /* Initialize listview columns */
+ InitListView();
+ SetFocus(hwndList);
+
+ /* Reset the font */
+ {
+ LOGFONT logfont;
+
+ GetListFont(&logfont);
+ if (hFont ) {
+ //Clenaup old Font, otherwise we have a GDI handle leak
+ DeleteFont(hFont);
+ }
+ hFont = CreateFontIndirect(&logfont);
+ if (hFont )
+ SetAllWindowsFont(hMain, &main_resize, hFont, FALSE);
+ }
+
+ /* Init DirectInput */
+ if (!DirectInputInitialize())
+ {
+ DialogBox(GetModuleHandle(NULL),MAKEINTRESOURCE(IDD_DIRECTX), NULL, DirectXDialogProc);
+ return FALSE;
+ }
+
+ AdjustMetrics();
+ UpdateScreenShot();
+
+ hAccel = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDA_TAB_KEYS));
+
+ /* clear keyboard state */
+ KeyboardStateClear();
+
+ if (GetJoyGUI() == TRUE)
+ {
+ g_pJoyGUI = &DIJoystick;
+ if (g_pJoyGUI->init() != 0)
+ g_pJoyGUI = NULL;
+ else
+ SetTimer(hMain, JOYGUI_TIMER, JOYGUI_MS, NULL);
+ }
+ else
+ g_pJoyGUI = NULL;
+
+ if (GetHideMouseOnStartup())
+ {
+ /* For some reason the mouse is centered when a game is exited, which of
+ course causes a WM_MOUSEMOVE event that shows the mouse. So we center
+ it now, before the startup coords are initilized, and that way the mouse
+ will still be hidden when exiting from a game (i hope) :)
+ */
+ SetCursorPos(GetSystemMetrics(SM_CXSCREEN)/2,GetSystemMetrics(SM_CYSCREEN)/2);
+
+ // Then hide it
+ ShowCursor(FALSE);
+ }
+
+ nCmdShow = GetWindowState();
+ if (nCmdShow == SW_HIDE || nCmdShow == SW_MINIMIZE || nCmdShow == SW_SHOWMINIMIZED)
+ {
+ nCmdShow = SW_RESTORE;
+ }
+
+ if (GetRunFullScreen())
+ {
+ LONG lMainStyle;
+
+ // Remove menu
+ SetMenu(hMain,NULL);
+
+ // Frameless dialog (fake fullscreen)
+ lMainStyle = GetWindowLong(hMain, GWL_STYLE);
+ lMainStyle = lMainStyle & (WS_BORDER ^ 0xffffffff);
+ SetWindowLong(hMain, GWL_STYLE, lMainStyle);
+
+ nCmdShow = SW_MAXIMIZE;
+ }
+
+ ShowWindow(hMain, nCmdShow);
+
+ switch (GetViewMode())
+ {
+ case VIEW_LARGE_ICONS :
+ SetView(ID_VIEW_LARGE_ICON);
+ break;
+ case VIEW_SMALL_ICONS :
+ SetView(ID_VIEW_SMALL_ICON);
+ break;
+ case VIEW_INLIST :
+ SetView(ID_VIEW_LIST_MENU);
+ break;
+ case VIEW_REPORT :
+ SetView(ID_VIEW_DETAIL);
+ break;
+ case VIEW_GROUPED :
+ default :
+ SetView(ID_VIEW_GROUPED);
+ break;
+ }
+
+ if (GetCycleScreenshot() > 0)
+ {
+ SetTimer(hMain, SCREENSHOT_TIMER, GetCycleScreenshot()*1000, NULL); //scale to Seconds
+ }
+
+ if (validity_failed)
+ {
+ win_message_box_utf8(hMain, MAMEUINAME " has failed its validity checks. The GUI will "
+ "still work, but emulations will fail to execute", MAMEUINAME, MB_OK | MB_ICONERROR);
+ }
+
+ return TRUE;
+}
+
+
+static void Win32UI_exit()
+{
+ if (g_pJoyGUI)
+ g_pJoyGUI->exit();
+
+ /* Free GDI resources */
+ if (hMain) {
+ DeleteObject(hMain);
+ hMain = NULL;
+ }
+
+ if (hMissing_bitmap)
+ {
+ DeleteBitmap(hMissing_bitmap);
+ hMissing_bitmap = NULL;
+ }
+
+ if (hBackground)
+ {
+ DeleteBitmap(hBackground);
+ hBackground = NULL;
+ }
+
+ if (hPALbg)
+ {
+ DeletePalette(hPALbg);
+ hPALbg = NULL;
+ }
+
+ if (hFont)
+ {
+ DeleteFont(hFont);
+ hFont = NULL;
+ }
+
+ DestroyIcons();
+
+ DestroyAcceleratorTable(hAccel);
+
+ DirectInputClose();
+ DirectDraw_Close();
+
+ SetSavedFolderID(GetCurrentFolderID());
+ SaveGameListOptions();
+ //SaveDefaultOptions();
+ SaveOptions();
+
+ FreeFolders();
+
+ /* DestroyTree(hTreeView); */
+
+ FreeScreenShot();
+
+ OptionsExit();
+
+ HelpExit();
+
+ pool_free_lib(mameui_pool);
+ mameui_pool = NULL;
+}
+
+static LRESULT CALLBACK MameWindowProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
+{
+ MINMAXINFO *mminfo;
+ int i;
+ TCHAR szClass[128];
+ BOOL res;
+
+ switch (message)
+ {
+ case WM_CTLCOLORSTATIC:
+ if (hBackground && (HWND)lParam == GetDlgItem(hMain, IDC_HISTORY))
+ {
+ static HBRUSH hBrush=0;
+ HDC hDC=(HDC)wParam;
+ LOGBRUSH lb;
+
+ if (hBrush)
+ DeleteBrush(hBrush);
+ lb.lbStyle = BS_HOLLOW;
+ hBrush = CreateBrushIndirect(&lb);
+ SetBkMode(hDC, TRANSPARENT);
+ SetTextColor(hDC, GetListFontColor());
+ return (LRESULT) hBrush;
+ }
+ break;
+
+ case WM_INITDIALOG:
+ /* Initialize info for resizing subitems */
+ GetClientRect(hWnd, &main_resize.rect);
+ return TRUE;
+
+ case WM_SETFOCUS:
+ SetFocus(hwndList);
+ break;
+
+ case WM_SETTINGCHANGE:
+ AdjustMetrics();
+ return 0;
+
+ case WM_SIZE:
+ OnSize(hWnd, wParam, LOWORD(lParam), HIWORD(wParam));
+ return TRUE;
+
+ case WM_MENUSELECT:
+ return Statusbar_MenuSelect(hWnd, wParam, lParam);
+
+ case MM_PLAY_GAME:
+ MamePlayGame();
+ return TRUE;
+
+ case WM_INITMENUPOPUP:
+ UpdateMenu(GetMenu(hWnd));
+ break;
+
+ case WM_CONTEXTMENU:
+ if (HandleTreeContextMenu(hWnd, wParam, lParam)
+ || HandleScreenShotContextMenu(hWnd, wParam, lParam))
+ return FALSE;
+ break;
+
+ case WM_COMMAND:
+ return MameCommand(hWnd,(int)(LOWORD(wParam)),(HWND)(lParam),(UINT)HIWORD(wParam));
+
+ case WM_GETMINMAXINFO:
+ /* Don't let the window get too small; it can break resizing */
+ mminfo = (MINMAXINFO *) lParam;
+ mminfo->ptMinTrackSize.x = MIN_WIDTH;
+ mminfo->ptMinTrackSize.y = MIN_HEIGHT;
+ return 0;
+
+ case WM_TIMER:
+ switch (wParam)
+ {
+ case JOYGUI_TIMER:
+ PollGUIJoystick();
+ break;
+ case SCREENSHOT_TIMER:
+ TabView_CalculateNextTab(hTabCtrl);
+ UpdateScreenShot();
+ TabView_UpdateSelection(hTabCtrl);
+ break;
+ default:
+ break;
+ }
+ return TRUE;
+
+ case WM_CLOSE:
+ {
+ /* save current item */
+ RECT rect;
+ AREA area;
+ int nItem;
+ WINDOWPLACEMENT wndpl;
+ UINT state;
+
+ wndpl.length = sizeof(WINDOWPLACEMENT);
+ GetWindowPlacement(hMain, &wndpl);
+ state = wndpl.showCmd;
+
+ /* Restore the window before we attempt to save parameters,
+ * This fixed the lost window on startup problem, among other problems
+ */
+ if (state == SW_MINIMIZE || state == SW_SHOWMINIMIZED || state == SW_MAXIMIZE)
+ {
+ if( wndpl.flags & WPF_RESTORETOMAXIMIZED || state == SW_MAXIMIZE)
+ state = SW_MAXIMIZE;
+ else
+ state = SW_RESTORE;
+
+ ShowWindow(hWnd, SW_RESTORE);
+ }
+
+ /* Restore the window before we attempt to save parameters,
+ * This fixed the lost window on startup problem, among other problems
+ */
+ if (state == SW_MAXIMIZE)
+ ShowWindow(hWnd, SW_RESTORE);
+
+ for (i = 0; i < GetSplitterCount(); i++)
+ SetSplitterPos(i, nSplitterOffset[i]);
+ SetWindowState(state);
+
+ for (i = 0; i < sizeof(s_nPickers) / sizeof(s_nPickers[0]); i++)
+ Picker_SaveColumnWidths(GetDlgItem(hMain, s_nPickers[i]));
+
+ GetWindowRect(hWnd, &rect);
+ area.x = rect.left;
+ area.y = rect.top;
+ area.width = rect.right - rect.left;
+ area.height = rect.bottom - rect.top;
+ SetWindowArea(&area);
+
+ /* Save the users current game options and default game */
+ nItem = Picker_GetSelectedItem(hwndList);
+ SetDefaultGame(ModifyThe(driver_list::driver(nItem).name));
+
+ /* hide window to prevent orphan empty rectangles on the taskbar */
+ /* ShowWindow(hWnd,SW_HIDE); */
+ DestroyWindow( hWnd );
+
+ /* PostQuitMessage(0); */
+ break;
+ }
+
+ case WM_DESTROY:
+ PostQuitMessage(0);
+ return 0;
+
+ case WM_LBUTTONDOWN:
+ OnLButtonDown(hWnd, (UINT)wParam, MAKEPOINTS(lParam));
+ break;
+
+ /*
+ Check to see if the mouse has been moved by the user since
+ startup. I'd like this checking to be done only in the
+ main WinProc (here), but somehow the WM_MOUSEDOWN messages
+ are eaten up before they reach MameWindowProc. That's why
+ there is one check for each of the subclassed windows too.
+
+ POSSIBLE BUGS:
+ I've included this check in the subclassed windows, but a
+ mose move in either the title bar, the menu, or the
+ toolbar will not generate a WM_MOUSEOVER message. At least
+ not one that I know how to pick up. A solution could maybe
+ be to subclass those too, but that's too much work :)
+ */
+
+ case WM_MOUSEMOVE:
+ {
+ if (MouseHasBeenMoved())
+ ShowCursor(TRUE);
+
+ if (g_listview_dragging)
+ MouseMoveListViewDrag(MAKEPOINTS(lParam));
+ else
+ /* for splitters */
+ OnMouseMove(hWnd, (UINT)wParam, MAKEPOINTS(lParam));
+ break;
+ }
+
+ case WM_LBUTTONUP:
+ if (g_listview_dragging)
+ ButtonUpListViewDrag(MAKEPOINTS(lParam));
+ else
+ /* for splitters */
+ OnLButtonUp(hWnd, (UINT)wParam, MAKEPOINTS(lParam));
+ break;
+
+ case WM_NOTIFY:
+ /* Where is this message intended to go */
+ {
+ LPNMHDR lpNmHdr = (LPNMHDR)lParam;
+
+ /* Fetch tooltip text */
+ if (lpNmHdr->code == TTN_NEEDTEXT)
+ {
+ LPTOOLTIPTEXT lpttt = (LPTOOLTIPTEXT)lParam;
+ CopyToolTipText(lpttt);
+ }
+
+ if (lpNmHdr->hwndFrom == hTreeView)
+ return TreeViewNotify(lpNmHdr);
+
+ GetClassName(lpNmHdr->hwndFrom, szClass, sizeof(szClass) / sizeof(szClass[0]));
+ if (!_tcscmp(szClass, TEXT("SysListView32")))
+ return Picker_HandleNotify(lpNmHdr);
+ if (!_tcscmp(szClass, TEXT("SysTabControl32")))
+ return TabView_HandleNotify(lpNmHdr);
+ }
+ break;
+
+ case WM_DRAWITEM:
+ {
+ LPDRAWITEMSTRUCT lpDis = (LPDRAWITEMSTRUCT)lParam;
+
+ GetClassName(lpDis->hwndItem, szClass, sizeof(szClass) / sizeof(szClass[0]));
+ if (!_tcscmp(szClass, TEXT("SysListView32")))
+ Picker_HandleDrawItem(GetDlgItem(hMain, lpDis->CtlID), lpDis);
+ }
+ break;
+
+ case WM_MEASUREITEM :
+ {
+ LPMEASUREITEMSTRUCT lpmis = (LPMEASUREITEMSTRUCT) lParam;
+
+ // tell the list view that each row (item) should be just taller than our font
+
+ //DefWindowProc(hWnd, message, wParam, lParam);
+ //dprintf("default row height calculation gives %u\n",lpmis->itemHeight);
+
+ TEXTMETRIC tm;
+ HDC hDC = GetDC(NULL);
+ HFONT hFontOld = (HFONT)SelectObject(hDC,hFont);
+
+ GetTextMetrics(hDC,&tm);
+
+ lpmis->itemHeight = tm.tmHeight + tm.tmExternalLeading + 1;
+ if (lpmis->itemHeight < 17)
+ lpmis->itemHeight = 17;
+ //dprintf("we would do %u\n",tm.tmHeight + tm.tmExternalLeading + 1);
+ SelectObject(hDC,hFontOld);
+ ReleaseDC(NULL,hDC);
+
+ return TRUE;
+ }
+
+ case WM_MAME32_FILECHANGED:
+ {
+ char szFileName[32];
+ char *s;
+ int nGameIndex;
+ int (*pfnGetAuditResults)(int driver_index) = NULL;
+ void (*pfnSetAuditResults)(int driver_index, int audit_results) = NULL;
+
+ switch(HIWORD(wParam))
+ {
+ case 0:
+ pfnGetAuditResults = GetRomAuditResults;
+ pfnSetAuditResults = SetRomAuditResults;
+ break;
+
+ case 1:
+ pfnGetAuditResults = GetSampleAuditResults;
+ pfnSetAuditResults = SetSampleAuditResults;
+ break;
+ }
+
+ if (pfnGetAuditResults && pfnSetAuditResults)
+ {
+ int nParentIndex = -1;
+
+ snprintf(szFileName, sizeof(szFileName), "%s", (LPCSTR) lParam);
+ s = strchr(szFileName, '.');
+ if (s)
+ *s = '\0';
+ s = strchr(szFileName, '\\');
+ if (s)
+ *s = '\0';
+
+ for (nGameIndex = 0; nGameIndex < driver_list::total(); nGameIndex++)
+ {
+ for (nParentIndex = nGameIndex; nGameIndex == -1; nParentIndex = GetParentIndex(&driver_list::driver(nParentIndex)))
+ {
+ if (!core_stricmp(driver_list::driver(nParentIndex).name, szFileName))
+ {
+ if (pfnGetAuditResults(nGameIndex) != UNKNOWN)
+ {
+ pfnSetAuditResults(nGameIndex, UNKNOWN);
+ PostMessage(hMain, WM_MAME32_AUDITGAME, wParam, nGameIndex);
+ }
+ break;
+ }
+ }
+ }
+ }
+ }
+ break;
+
+ case WM_MAME32_AUDITGAME:
+ {
+ LV_FINDINFO lvfi;
+ int nGameIndex;
+
+ nGameIndex = lParam;
+
+ switch(HIWORD(wParam))
+ {
+ case 0:
+ MameUIVerifyRomSet(nGameIndex, 0);
+ break;
+ case 1:
+ MameUIVerifySampleSet(nGameIndex);
+ break;
+ }
+
+ memset(&lvfi, 0, sizeof(lvfi));
+ lvfi.flags = LVFI_PARAM;
+ lvfi.lParam = nGameIndex;
+
+ i = ListView_FindItem(hwndList, -1, &lvfi);
+ if (i != -1)
+ {
+ res = ListView_RedrawItems(hwndList, i, i);
+ }
+ }
+ break;
+
+ default:
+ break;
+ }
+ return DefWindowProc(hWnd, message, wParam, lParam);
+}
+
+static int HandleKeyboardGUIMessage(HWND hWnd, UINT message, UINT wParam, LONG lParam)
+{
+ switch (message)
+ {
+ case WM_CHAR: /* List-View controls use this message for searching the items "as user types" */
+ //MessageBox(NULL,"wm_char message arrived","TitleBox",MB_OK);
+ return TRUE;
+
+ case WM_KEYDOWN:
+ KeyboardKeyDown(0, wParam, lParam);
+ return TRUE;
+
+ case WM_KEYUP:
+ KeyboardKeyUp(0, wParam, lParam);
+ return TRUE;
+
+ case WM_SYSKEYDOWN:
+ KeyboardKeyDown(1, wParam, lParam);
+ return TRUE;
+
+ case WM_SYSKEYUP:
+ KeyboardKeyUp(1, wParam, lParam);
+ return TRUE;
+ }
+
+ return FALSE; /* message not processed */
+}
+
+static BOOL PumpMessage()
+{
+ MSG msg;
+
+ if (!GetMessage(&msg, NULL, 0, 0))
+ return FALSE;
+
+ if (IsWindow(hMain))
+ {
+ BOOL absorbed_key = FALSE;
+ if (GetKeyGUI())
+ absorbed_key = HandleKeyboardGUIMessage(msg.hwnd, msg.message, msg.wParam, msg.lParam);
+ else
+ absorbed_key = TranslateAccelerator(hMain, hAccel, &msg);
+
+ if (!absorbed_key)
+ {
+ if (!IsDialogMessage(hMain, &msg))
+ {
+ TranslateMessage(&msg);
+ DispatchMessage(&msg);
+ }
+ }
+ }
+
+ return TRUE;
+}
+
+static BOOL FolderCheck(void)
+{
+
+ char *pDescription = NULL;
+ int nGameIndex = 0;
+ int i=0;
+ int iStep = 0;
+ LV_FINDINFO lvfi;
+ int nCount = ListView_GetItemCount(hwndList);
+ BOOL changed = FALSE;
+ BOOL res;
+
+ MSG msg;
+ for(i=0; i<nCount;i++)
+ {
+ LV_ITEM lvi;
+
+ lvi.iItem = i;
+ lvi.iSubItem = 0;
+ lvi.mask = LVIF_PARAM;
+ res = ListView_GetItem(hwndList, &lvi);
+ nGameIndex = lvi.lParam;
+ SetRomAuditResults(nGameIndex, UNKNOWN);
+ SetSampleAuditResults(nGameIndex, UNKNOWN);
+ }
+ if( nCount > 0)
+ ProgressBarShow();
+ else
+ return FALSE;
+ if( nCount < 100 )
+ iStep = 100 / nCount;
+ else
+ iStep = nCount/100;
+ UpdateListView();
+ UpdateWindow(hMain);
+ for(i=0; i<nCount;i++)
+ {
+ LV_ITEM lvi;
+
+ lvi.iItem = i;
+ lvi.iSubItem = 0;
+ lvi.mask = LVIF_PARAM;
+ res = ListView_GetItem(hwndList, &lvi);
+ nGameIndex = lvi.lParam;
+ if (GetRomAuditResults(nGameIndex) == UNKNOWN)
+ {
+ MameUIVerifyRomSet(nGameIndex, 0);
+ changed = TRUE;
+ }
+
+ if (GetSampleAuditResults(nGameIndex) == UNKNOWN)
+ {
+ MameUIVerifySampleSet(nGameIndex);
+ changed = TRUE;
+ }
+
+ lvfi.flags = LVFI_PARAM;
+ lvfi.lParam = nGameIndex;
+
+ i = ListView_FindItem(hwndList, -1, &lvfi);
+ if (changed && i != -1)
+ {
+ res = ListView_RedrawItems(hwndList, i, i);
+ while( PeekMessage( &msg, hwndList, 0, 0, PM_REMOVE ) != 0)
+ {
+ TranslateMessage(&msg);
+ DispatchMessage(&msg);
+ }
+ }
+ changed = FALSE;
+ if ((i % iStep) == 0)
+ ProgressBarStepParam(i, nCount);
+ }
+ ProgressBarHide();
+ pDescription = ModifyThe(driver_list::driver(Picker_GetSelectedItem(hwndList)).description);
+ SetStatusBarText(0, pDescription);
+ UpdateStatusBar();
+ return TRUE;
+}
+
+static BOOL GameCheck(void)
+{
+ LV_FINDINFO lvfi;
+ int i;
+ BOOL changed = FALSE;
+ BOOL res;
+
+ if (game_index == 0)
+ ProgressBarShow();
+
+ if (game_index >= driver_list::total())
+ {
+ bDoGameCheck = FALSE;
+ ProgressBarHide();
+ ResetWhichGamesInFolders();
+ return FALSE;
+ }
+
+ if (GetRomAuditResults(game_index) == UNKNOWN)
+ {
+ MameUIVerifyRomSet(game_index, 0);
+ changed = TRUE;
+ }
+
+ if (GetSampleAuditResults(game_index) == UNKNOWN)
+ {
+ MameUIVerifySampleSet(game_index);
+ changed = TRUE;
+ }
+
+ lvfi.flags = LVFI_PARAM;
+ lvfi.lParam = game_index;
+
+ i = ListView_FindItem(hwndList, -1, &lvfi);
+ if (changed && i != -1)
+ res = ListView_RedrawItems(hwndList, i, i);
+ if ((game_index % progBarStep) == 0)
+ ProgressBarStep();
+ game_index++;
+
+ return changed;
+}
+
+static BOOL OnIdle(HWND hWnd)
+{
+ static int bFirstTime = TRUE;
+ static int bResetList = TRUE;
+
+ char *pDescription;
+ int driver_index;
+
+ if (bFirstTime)
+ {
+ bResetList = FALSE;
+ bFirstTime = FALSE;
+ }
+ if (bDoGameCheck)
+ {
+ bResetList |= GameCheck();
+ return idle_work;
+ }
+ // NPW 17-Jun-2003 - Commenting this out because it is redundant
+ // and it causes the game to reset back to the original game after an F5
+ // refresh
+ //driver_index = GetGameNameIndex(GetDefaultGame());
+ //SetSelectedPickItem(driver_index);
+
+ // in case it's not found, get it back
+ driver_index = Picker_GetSelectedItem(hwndList);
+
+ pDescription = ModifyThe(driver_list::driver(driver_index).description);
+ SetStatusBarText(0, pDescription);
+ idle_work = FALSE;
+ UpdateStatusBar();
+ bFirstTime = TRUE;
+
+ if (!idle_work)
+ PostMessage(GetMainWindow(),WM_COMMAND, MAKEWPARAM(ID_VIEW_LINEUPICONS, TRUE),(LPARAM)NULL);
+ return idle_work;
+}
+
+static void OnSize(HWND hWnd, UINT nState, int nWidth, int nHeight)
+{
+ static BOOL firstTime = TRUE;
+
+ if (nState != SIZE_MAXIMIZED && nState != SIZE_RESTORED)
+ return;
+
+ ResizeWindow(hWnd, &main_resize);
+ ResizeProgressBar();
+ if (firstTime == FALSE)
+ OnSizeSplitter(hMain);
+ //firstTime = FALSE;
+ /* Update the splitters structures as appropriate */
+ RecalcSplitters();
+ if (firstTime == FALSE)
+ ResizePickerControls(hMain);
+ firstTime = FALSE;
+ UpdateScreenShot();
+}
+
+
+
+static HWND GetResizeItemWindow(HWND hParent, const ResizeItem *ri)
+{
+ HWND hControl;
+ if (ri->type == RA_ID)
+ hControl = GetDlgItem(hParent, ri->u.id);
+ else
+ hControl = ri->u.hwnd;
+ return hControl;
+}
+
+
+
+static void SetAllWindowsFont(HWND hParent, const Resize *r, HFONT hTheFont, BOOL bRedraw)
+{
+ int i;
+ HWND hControl;
+
+ for (i = 0; r->items[i].type != RA_END; i++)
+ {
+ hControl = GetResizeItemWindow(hParent, &r->items[i]);
+ if (r->items[i].setfont)
+ {
+ SetWindowFont(hControl, hTheFont, bRedraw);
+ }
+ /* Take care of subcontrols, if appropriate */
+ if (r->items[i].subwindow )
+ SetAllWindowsFont(hControl, (const Resize*)r->items[i].subwindow, hTheFont, bRedraw);
+
+ }
+}
+
+
+
+static void ResizeWindow(HWND hParent, Resize *r)
+{
+ int cmkindex = 0, dx, dy;
+ HWND hControl;
+ RECT parent_rect, rect;
+ const ResizeItem *ri;
+ POINT p = {0, 0};
+
+ if (hParent == NULL)
+ return;
+
+ /* Calculate change in width and height of parent window */
+ GetClientRect(hParent, &parent_rect);
+ dy = parent_rect.bottom - r->rect.bottom;
+ dx = parent_rect.right - r->rect.right;
+ ClientToScreen(hParent, &p);
+
+ while (r->items[cmkindex].type != RA_END)
+ {
+ int width, height;
+ ri = &r->items[cmkindex];
+ if (ri->type == RA_ID)
+ hControl = GetDlgItem(hParent, ri->u.id);
+ else
+ hControl = ri->u.hwnd;
+
+ if (hControl == NULL)
+ {
+ cmkindex++;
+ continue;
+ }
+
+ /* Get control's rectangle relative to parent */
+ GetWindowRect(hControl, &rect);
+ OffsetRect(&rect, -p.x, -p.y);
+ width = rect.right - rect.left;
+ height = rect.bottom - rect.top;
+
+ if (!(ri->action & RA_LEFT))
+ rect.left += dx;
+
+ if (!(ri->action & RA_TOP))
+ rect.top += dy;
+
+ if (ri->action & RA_RIGHT)
+ rect.right += dx;
+
+ if (ri->action & RA_BOTTOM)
+ rect.bottom += dy;
+ //Sanity Check the child rect
+ if (parent_rect.top > rect.top)
+ rect.top = parent_rect.top;
+ if (parent_rect.left > rect.left)
+ rect.left = parent_rect.left;
+ if (parent_rect.bottom < rect.bottom)
+ {
+ rect.bottom = parent_rect.bottom;
+ //ensure we have at least a minimal height
+ rect.top = rect.bottom - height;
+ if (rect.top < parent_rect.top)
+ rect.top = parent_rect.top;
+ }
+ if (parent_rect.right < rect.right)
+ {
+ rect.right = parent_rect.right;
+ //ensure we have at least a minimal width
+ rect.left = rect.right - width;
+ if (rect.left < parent_rect.left)
+ rect.left = parent_rect.left;
+ }
+ MoveWindow(hControl, rect.left, rect.top,
+ (rect.right - rect.left),
+ (rect.bottom - rect.top), TRUE);
+
+ /* Take care of subcontrols, if appropriate */
+ if (ri->subwindow )
+ ResizeWindow(hControl, (Resize*)ri->subwindow);
+
+ cmkindex++;
+ }
+
+ /* Record parent window's new location */
+ memcpy(&r->rect, &parent_rect, sizeof(RECT));
+}
+
+static void ProgressBarShow()
+{
+ RECT rect;
+ int widths[2] = {150, -1};
+
+ if (driver_list::total() < 100)
+ progBarStep = 100 / driver_list::total();
+ else
+ progBarStep = (driver_list::total() / 100);
+
+ SendMessage(hStatusBar, SB_SETPARTS, (WPARAM)2, (LPARAM)(LPINT)widths);
+ SendMessage(hProgWnd, PBM_SETRANGE, 0, (LPARAM)MAKELONG(0, driver_list::total()));
+ SendMessage(hProgWnd, PBM_SETSTEP, (WPARAM)progBarStep, 0);
+ SendMessage(hProgWnd, PBM_SETPOS, 0, 0);
+
+ StatusBar_GetItemRect(hStatusBar, 1, &rect);
+
+ MoveWindow(hProgWnd, rect.left, rect.top,
+ rect.right - rect.left,
+ rect.bottom - rect.top, TRUE);
+
+ bProgressShown = TRUE;
+}
+
+static void ProgressBarHide()
+{
+ RECT rect;
+ int widths[4];
+ HDC hDC;
+ SIZE size;
+ int numParts = 4;
+
+ if (hProgWnd == NULL)
+ return;
+
+ hDC = GetDC(hProgWnd);
+
+ ShowWindow(hProgWnd, SW_HIDE);
+
+ GetTextExtentPoint32(hDC, TEXT("MMX"), 3, &size);
+ widths[3] = size.cx;
+ GetTextExtentPoint32(hDC, TEXT("MMMM games"), 10, &size);
+ widths[2] = size.cx;
+ //Just specify 24 instead of 30, gives us sufficient space to display the message, and saves some space
+ GetTextExtentPoint32(hDC, TEXT("Screen flip support is missing"), 24, &size);
+ widths[1] = size.cx;
+
+ ReleaseDC(hProgWnd, hDC);
+
+ widths[0] = -1;
+ SendMessage(hStatusBar, SB_SETPARTS, (WPARAM)1, (LPARAM)(LPINT)widths);
+ StatusBar_GetItemRect(hStatusBar, 0, &rect);
+
+ widths[0] = (rect.right - rect.left) - (widths[1] + widths[2] + widths[3]);
+ widths[1] += widths[0];
+ widths[2] += widths[1];
+ widths[3] = -1;
+
+ SendMessage(hStatusBar, SB_SETPARTS, (WPARAM)numParts, (LPARAM)(LPINT)widths);
+ UpdateStatusBar();
+
+ bProgressShown = FALSE;
+}
+
+static void ResizeProgressBar()
+{
+ if (bProgressShown)
+ {
+ RECT rect;
+ int widths[2] = {150, -1};
+
+ SendMessage(hStatusBar, SB_SETPARTS, (WPARAM)2, (LPARAM)(LPINT)widths);
+ StatusBar_GetItemRect(hStatusBar, 1, &rect);
+ MoveWindow(hProgWnd, rect.left, rect.top,
+ rect.right - rect.left,
+ rect.bottom - rect.top, TRUE);
+ }
+ else
+ {
+ ProgressBarHide();
+ }
+}
+
+static void ProgressBarStepParam(int iGameIndex, int nGameCount)
+{
+ SetStatusBarTextF(0, "Game search %d%% complete", ((iGameIndex + 1) * 100) / nGameCount);
+ if (iGameIndex == 0)
+ ShowWindow(hProgWnd, SW_SHOW);
+ SendMessage(hProgWnd, PBM_STEPIT, 0, 0);
+}
+
+static void ProgressBarStep()
+{
+ ProgressBarStepParam(game_index, driver_list::total());
+}
+
+static HWND InitProgressBar(HWND hParent)
+{
+ RECT rect;
+
+ StatusBar_GetItemRect(hStatusBar, 0, &rect);
+
+ rect.left += 150;
+
+ return CreateWindowEx(WS_EX_STATICEDGE, PROGRESS_CLASS, TEXT("Progress Bar"),
+ WS_CHILD | PBS_SMOOTH, rect.left, rect.top, rect.right - rect.left,
+ rect.bottom - rect.top, hParent, NULL, hInst, NULL);
+}
+
+static void CopyToolTipText(LPTOOLTIPTEXT lpttt)
+{
+ int i;
+ int iButton = lpttt->hdr.idFrom;
+ static TCHAR String[1024];
+ BOOL bConverted = FALSE;
+ TCHAR* t_gameinfostatus;
+
+ /* Map command ID to string index */
+ for (i = 0; CommandToString[i] != -1; i++)
+ {
+ if (CommandToString[i] == iButton)
+ {
+ iButton = i;
+ bConverted = TRUE;
+ break;
+ }
+ }
+ if( bConverted )
+ {
+ /* Check for valid parameter */
+ if(iButton > NUM_TOOLTIPS)
+ {
+ _tcscpy(String,TEXT("Invalid Button Index"));
+ }
+ else
+ {
+ _tcscpy(String,szTbStrings[iButton]);
+ }
+ }
+ else if ( iButton <= 2 )
+ {
+ //Statusbar
+ SendMessage(lpttt->hdr.hwndFrom, TTM_SETMAXTIPWIDTH, 0, 200);
+ if( iButton != 1)
+ SendMessage(hStatusBar, SB_GETTEXT, (WPARAM)iButton, (LPARAM)&String );
+ else {
+ //for first pane we get the Status directly, to get the line breaks
+ t_gameinfostatus = ui_wstring_from_utf8( GameInfoStatus(Picker_GetSelectedItem(hwndList), FALSE));
+ if( !t_gameinfostatus )
+ return;
+ _tcscpy(String, t_gameinfostatus);
+ free(t_gameinfostatus);
+ }
+ }
+ else
+ _tcscpy(String,TEXT("Invalid Button Index"));
+
+ lpttt->lpszText = String;
+}
+
+static HWND InitToolbar(HWND hParent)
+{
+ HWND hToolBar = CreateToolbarEx(hParent,
+ WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS |
+ CCS_TOP | TBSTYLE_FLAT | TBSTYLE_TOOLTIPS, 1, 8,
+ hInst, IDB_TOOLBAR, tbb, NUM_TOOLBUTTONS, 16, 16, 0, 0, sizeof(TBBUTTON));
+ RECT rect;
+ int idx;
+ int iPosX, iPosY, iHeight;
+
+ // get Edit Control position
+ idx = SendMessage(hToolBar, TB_BUTTONCOUNT, (WPARAM)0, (LPARAM)0) - 1;
+ SendMessage(hToolBar, TB_GETITEMRECT, (WPARAM)idx, (LPARAM)&rect);
+ iPosX = rect.right + 10;
+ iPosY = rect.top + 1;
+ iHeight = rect.bottom - rect.top - 2;
+
+ // create Edit Control
+ win_create_window_ex_utf8( 0L, "Edit", SEARCH_PROMPT, WS_CHILD | WS_BORDER | WS_VISIBLE | ES_LEFT,
+ iPosX, iPosY, 200, iHeight, hToolBar, (HMENU)ID_TOOLBAR_EDIT, hInst, NULL );
+
+ return hToolBar;
+}
+
+static HWND InitStatusBar(HWND hParent)
+{
+ HMENU hMenu = GetMenu(hParent);
+
+ popstr[0].hMenu = 0;
+ popstr[0].uiString = 0;
+ popstr[1].hMenu = hMenu;
+ popstr[1].uiString = IDS_UI_FILE;
+ popstr[2].hMenu = GetSubMenu(hMenu, 1);
+ popstr[2].uiString = IDS_VIEW_TOOLBAR;
+ popstr[3].hMenu = 0;
+ popstr[3].uiString = 0;
+
+ return CreateStatusWindow(WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS |
+ CCS_BOTTOM | SBARS_SIZEGRIP | SBT_TOOLTIPS,
+ TEXT("Ready"), hParent, 2);
+}
+
+
+static LRESULT Statusbar_MenuSelect(HWND hwnd, WPARAM wParam, LPARAM lParam)
+{
+ UINT fuFlags = (UINT)HIWORD(wParam);
+ HMENU hMainMenu = NULL;
+ int iMenu = 0;
+
+ /* Handle non-system popup menu descriptions. */
+ if ( (fuFlags & MF_POPUP)
+ && (!(fuFlags & MF_SYSMENU)))
+ {
+ for (iMenu = 1; iMenu < MAX_MENUS; iMenu++)
+ {
+ if ((HMENU)lParam == popstr[iMenu].hMenu)
+ {
+ hMainMenu = (HMENU)lParam;
+ break;
+ }
+ }
+ }
+
+ if (hMainMenu)
+ {
+ /* Display helpful text in status bar */
+ MenuHelp(WM_MENUSELECT, wParam, lParam, hMainMenu, hInst,
+ hStatusBar, (UINT *)&popstr[iMenu]);
+ }
+ else
+ {
+ UINT nZero = 0;
+ MenuHelp(WM_MENUSELECT, wParam, lParam, NULL, hInst,
+ hStatusBar, &nZero);
+ }
+
+ return 0;
+}
+
+static void UpdateStatusBar()
+{
+ LPTREEFOLDER lpFolder = GetCurrentFolder();
+ int games_shown = 0;
+ int i = -1;
+
+ if (!lpFolder)
+ return;
+
+ while (1)
+ {
+ i = FindGame(lpFolder,i+1);
+ if (i == -1)
+ break;
+
+ if (!GameFiltered(i, lpFolder->m_dwFlags))
+ games_shown++;
+ }
+
+ /* Show number of games in the current 'View' in the status bar */
+ SetStatusBarTextF(2, g_szGameCountString, games_shown);
+
+ i = Picker_GetSelectedItem(hwndList);
+
+ if (games_shown == 0)
+ DisableSelection();
+ else
+ {
+ const char* pStatus = GameInfoStatus(i, FALSE);
+ SetStatusBarText(1, pStatus);
+ }
+}
+
+static void UpdateHistory(void)
+{
+ HDC hDC;
+ RECT rect;
+ TEXTMETRIC tm ;
+ int nLines, nLineHeight;
+ //DWORD dwStyle = GetWindowLong(GetDlgItem(hMain, IDC_HISTORY), GWL_STYLE);
+ have_history = FALSE;
+
+ if (GetSelectedPick() >= 0)
+ {
+ char *histText = GetGameHistory(Picker_GetSelectedItem(hwndList));
+
+ have_history = (histText && histText[0]) ? TRUE : FALSE;
+ win_set_window_text_utf8(GetDlgItem(hMain, IDC_HISTORY), histText);
+ }
+
+ if (have_history && GetShowScreenShot()
+ && ((TabView_GetCurrentTab(hTabCtrl) == TAB_HISTORY) ||
+ (TabView_GetCurrentTab(hTabCtrl) == GetHistoryTab() && GetShowTab(TAB_HISTORY) == FALSE) ||
+ (TAB_ALL == GetHistoryTab() && GetShowTab(TAB_HISTORY) == FALSE) ))
+ {
+ Edit_GetRect(GetDlgItem(hMain, IDC_HISTORY),&rect);
+ nLines = Edit_GetLineCount(GetDlgItem(hMain, IDC_HISTORY) );
+ hDC = GetDC(GetDlgItem(hMain, IDC_HISTORY));
+ GetTextMetrics (hDC, &tm);
+ nLineHeight = tm.tmHeight - tm.tmInternalLeading;
+ if( ( (rect.bottom - rect.top) / nLineHeight) < (nLines) )
+ {
+ //more than one Page, so show Scrollbar
+ SetScrollRange(GetDlgItem(hMain, IDC_HISTORY), SB_VERT, 0, nLines, TRUE);
+ }
+ else
+ {
+ //hide Scrollbar
+ SetScrollRange(GetDlgItem(hMain, IDC_HISTORY),SB_VERT, 0, 0, TRUE);
+
+ }
+ ShowWindow(GetDlgItem(hMain, IDC_HISTORY), SW_SHOW);
+ }
+ else
+ ShowWindow(GetDlgItem(hMain, IDC_HISTORY), SW_HIDE);
+
+}
+
+
+static void DisableSelection()
+{
+ MENUITEMINFO mmi;
+ HMENU hMenu = GetMenu(hMain);
+ BOOL prev_have_selection = have_selection;
+
+ mmi.cbSize = sizeof(mmi);
+ mmi.fMask = MIIM_TYPE;
+ mmi.fType = MFT_STRING;
+ mmi.dwTypeData = (TCHAR *) TEXT("&Play");
+ mmi.cch = _tcslen(mmi.dwTypeData);
+ SetMenuItemInfo(hMenu, ID_FILE_PLAY, FALSE, &mmi);
+
+ EnableMenuItem(hMenu, ID_FILE_PLAY, MF_GRAYED);
+ EnableMenuItem(hMenu, ID_FILE_PLAY_RECORD, MF_GRAYED);
+ EnableMenuItem(hMenu, ID_GAME_PROPERTIES, MF_GRAYED);
+
+ SetStatusBarText(0, "No Selection");
+ SetStatusBarText(1, "");
+ SetStatusBarText(3, "");
+
+ have_selection = FALSE;
+
+ if (prev_have_selection != have_selection)
+ UpdateScreenShot();
+}
+
+static void EnableSelection(int nGame)
+{
+ TCHAR buf[200];
+ const char * pText;
+ MENUITEMINFO mmi;
+ HMENU hMenu = GetMenu(hMain);
+ TCHAR* t_description;
+
+ t_description = ui_wstring_from_utf8(ConvertAmpersandString(ModifyThe(driver_list::driver(nGame).description)));
+ if( !t_description )
+ return;
+
+ _sntprintf(buf, sizeof(buf) / sizeof(buf[0]), g_szPlayGameString, t_description);
+ mmi.cbSize = sizeof(mmi);
+ mmi.fMask = MIIM_TYPE;
+ mmi.fType = MFT_STRING;
+ mmi.dwTypeData = buf;
+ mmi.cch = _tcslen(mmi.dwTypeData);
+ SetMenuItemInfo(hMenu, ID_FILE_PLAY, FALSE, &mmi);
+
+ pText = ModifyThe(driver_list::driver(nGame).description);
+ SetStatusBarText(0, pText);
+ /* Add this game's status to the status bar */
+ pText = GameInfoStatus(nGame, FALSE);
+ SetStatusBarText(1, pText);
+ SetStatusBarText(3, "");
+
+ /* If doing updating game status and the game name is NOT pacman.... */
+
+ EnableMenuItem(hMenu, ID_FILE_PLAY, MF_ENABLED);
+ EnableMenuItem(hMenu, ID_FILE_PLAY_RECORD, MF_ENABLED);
+
+ if (!oldControl)
+ EnableMenuItem(hMenu, ID_GAME_PROPERTIES, MF_ENABLED);
+
+ if (bProgressShown && bListReady == TRUE)
+ {
+ SetDefaultGame(ModifyThe(driver_list::driver(nGame).name));
+ }
+ have_selection = TRUE;
+
+ UpdateScreenShot();
+
+ free(t_description);
+}
+
+static void PaintBackgroundImage(HWND hWnd, HRGN hRgn, int x, int y)
+{
+ RECT rcClient;
+ HRGN rgnBitmap;
+ HPALETTE hPAL;
+ HDC hDC = GetDC(hWnd);
+ int i, j;
+ HDC htempDC;
+ HBITMAP oldBitmap;
+
+ /* x and y are offsets within the background image that should be at 0,0 in hWnd */
+
+ /* So we don't paint over the control's border */
+ GetClientRect(hWnd, &rcClient);
+
+ htempDC = CreateCompatibleDC(hDC);
+ oldBitmap = (HBITMAP)SelectObject(htempDC, hBackground);
+
+ if (hRgn == NULL)
+ {
+ /* create a region of our client area */
+ rgnBitmap = CreateRectRgnIndirect(&rcClient);
+ SelectClipRgn(hDC, rgnBitmap);
+ DeleteBitmap(rgnBitmap);
+ }
+ else
+ {
+ /* use the passed in region */
+ SelectClipRgn(hDC, hRgn);
+ }
+
+ hPAL = GetBackgroundPalette();
+ if (hPAL == NULL)
+ hPAL = CreateHalftonePalette(hDC);
+
+ if (GetDeviceCaps(htempDC, RASTERCAPS) & RC_PALETTE && hPAL)
+ {
+ SelectPalette(htempDC, hPAL, FALSE);
+ RealizePalette(htempDC);
+ }
+
+ for (i = rcClient.left-x; i < rcClient.right; i += bmDesc.bmWidth)
+ for (j = rcClient.top-y; j < rcClient.bottom; j += bmDesc.bmHeight)
+ BitBlt(hDC, i, j, bmDesc.bmWidth, bmDesc.bmHeight, htempDC, 0, 0, SRCCOPY);
+
+ SelectObject(htempDC, oldBitmap);
+ DeleteDC(htempDC);
+
+ if (GetBackgroundPalette() == NULL)
+ {
+ DeletePalette(hPAL);
+ hPAL = NULL;
+ }
+
+ ReleaseDC(hWnd, hDC);
+}
+
+static LPCSTR GetCloneParentName(int nItem)
+{
+ int nParentIndex = -1;
+
+ if (DriverIsClone(nItem) == TRUE)
+ {
+ nParentIndex = GetParentIndex(&driver_list::driver(nItem));
+ if( nParentIndex >= 0)
+ return ModifyThe(driver_list::driver(nParentIndex).description);
+ }
+ return "";
+}
+
+static BOOL TreeViewNotify(LPNMHDR nm)
+{
+ switch (nm->code)
+ {
+ case TVN_SELCHANGED :
+ {
+ HTREEITEM hti = TreeView_GetSelection(hTreeView);
+ TVITEM tvi;
+
+ tvi.mask = TVIF_PARAM | TVIF_HANDLE;
+ tvi.hItem = hti;
+
+ if (TreeView_GetItem(hTreeView, &tvi))
+ {
+ SetCurrentFolder((LPTREEFOLDER)tvi.lParam);
+ if (bListReady)
+ {
+ ResetListView();
+ UpdateScreenShot();
+ }
+ }
+ return TRUE;
+ }
+ case TVN_BEGINLABELEDIT :
+ {
+ TV_DISPINFO *ptvdi = (TV_DISPINFO *)nm;
+ LPTREEFOLDER folder = (LPTREEFOLDER)ptvdi->item.lParam;
+
+ if (folder->m_dwFlags & F_CUSTOM)
+ {
+ // user can edit custom folder names
+ g_in_treeview_edit = TRUE;
+ return FALSE;
+ }
+ // user can't edit built in folder names
+ return TRUE;
+ }
+ case TVN_ENDLABELEDIT :
+ {
+ TV_DISPINFO *ptvdi = (TV_DISPINFO *)nm;
+ LPTREEFOLDER folder = (LPTREEFOLDER)ptvdi->item.lParam;
+ char* utf8_szText;
+ BOOL result;
+
+ g_in_treeview_edit = FALSE;
+
+ if (ptvdi->item.pszText == NULL || _tcslen(ptvdi->item.pszText) == 0)
+ return FALSE;
+
+ utf8_szText = ui_utf8_from_wstring(ptvdi->item.pszText);
+ if( !utf8_szText )
+ return FALSE;
+
+ result = TryRenameCustomFolder(folder, utf8_szText);
+
+ free(utf8_szText);
+
+ return result;
+ }
+ }
+ return FALSE;
+}
+
+
+
+static void GamePicker_OnHeaderContextMenu(POINT pt, int nColumn)
+{
+ // Right button was clicked on header
+ HMENU hMenuLoad;
+ HMENU hMenu;
+
+ hMenuLoad = LoadMenu(hInst, MAKEINTRESOURCE(IDR_CONTEXT_HEADER));
+ hMenu = GetSubMenu(hMenuLoad, 0);
+ lastColumnClick = nColumn;
+ TrackPopupMenu(hMenu,TPM_LEFTALIGN | TPM_RIGHTBUTTON,pt.x,pt.y,0,hMain,NULL);
+
+ DestroyMenu(hMenuLoad);
+}
+
+
+
+char* ConvertAmpersandString(const char *s)
+{
+ /* takes a string and changes any ampersands to double ampersands,
+ for setting text of window controls that don't allow us to disable
+ the ampersand underlining.
+ */
+ /* returns a static buffer--use before calling again */
+
+ static char buf[200];
+ char *ptr;
+
+ ptr = buf;
+ while (*s)
+ {
+ if (*s == '&')
+ *ptr++ = *s;
+ *ptr++ = *s++;
+ }
+ *ptr = 0;
+
+ return buf;
+}
+
+static int GUI_seq_pressed(const input_seq *seq)
+{
+ int codenum;
+ int res = 1;
+ bool invert = 0;
+ int count = 0;
+
+ for (codenum = 0; (*seq)[codenum] != input_seq::end_code; codenum++)
+ {
+ input_code code = (*seq)[codenum];
+
+ if (code == input_seq::not_code)
+ invert = !invert;
+
+ else if (code == input_seq::or_code)
+ {
+ if (res && count)
+ return 1;
+ res = 1;
+ count = 0;
+ }
+ else
+ {
+ if (res)
+ {
+ if ((keyboard_state[(int)(code.item_id())] != 0) == invert)
+ res = 0;
+ }
+ invert = 0;
+ ++count;
+ }
+ }
+ return res && count;
+}
+
+static void check_for_GUI_action(void)
+{
+ int i;
+
+ for (i = 0; i < NUM_GUI_SEQUENCES; i++)
+ {
+ const input_seq *is = &(GUISequenceControl[i].is);
+
+ if (GUI_seq_pressed(is))
+ {
+ dprintf("seq =%s pressed\n", GUISequenceControl[i].name);
+ switch (GUISequenceControl[i].func_id)
+ {
+ case ID_GAME_AUDIT:
+ case ID_GAME_PROPERTIES:
+ case ID_CONTEXT_FILTERS:
+ case ID_UI_START:
+ KeyboardStateClear(); /* beacuse whe won't receive KeyUp mesage when we loose focus */
+ break;
+ default:
+ break;
+ }
+ SendMessage(hMain, WM_COMMAND, GUISequenceControl[i].func_id, 0);
+ }
+ }
+}
+
+static void KeyboardStateClear(void)
+{
+ memset(keyboard_state, 0, sizeof(keyboard_state));
+ dprintf("keyboard gui state cleared.\n");
+}
+
+
+static void KeyboardKeyDown(int syskey, int vk_code, int special)
+{
+ int i, found = 0;
+ int icode = 0;
+ int special_code = (special >> 24) & 1;
+ int scancode = (special>>16) & 0xff;
+
+ if ((vk_code==VK_MENU) || (vk_code==VK_CONTROL) || (vk_code==VK_SHIFT))
+ {
+ found = 1;
+
+ /* a hack for right shift - it's better to use Direct X for keyboard input it seems......*/
+ if (vk_code==VK_SHIFT)
+ if (scancode>0x30) /* on my keyboard left shift scancode is 0x2a, right shift is 0x36 */
+ special_code = 1;
+
+ if (special_code) /* right hand keys */
+ {
+ switch(vk_code)
+ {
+ case VK_MENU:
+ icode = (int)(KEYCODE_RALT.item_id());
+ break;
+ case VK_CONTROL:
+ icode = (int)(KEYCODE_RCONTROL.item_id());
+ break;
+ case VK_SHIFT:
+ icode = (int)(KEYCODE_RSHIFT.item_id());
+ break;
+ }
+ }
+ else /* left hand keys */
+ {
+ switch(vk_code)
+ {
+ case VK_MENU:
+ icode = (int)(KEYCODE_LALT.item_id());
+ break;
+ case VK_CONTROL:
+ icode = (int)(KEYCODE_LCONTROL.item_id());
+ break;
+ case VK_SHIFT:
+ icode = (int)(KEYCODE_LSHIFT.item_id());
+ break;
+ }
+ }
+ }
+ else
+ {
+ for (i = 0; i < ARRAY_LENGTH(win_key_trans_table); i++)
+ {
+ if ( vk_code == win_key_trans_table[i][VIRTUAL_KEY])
+ {
+ icode = win_key_trans_table[i][MAME_KEY];
+ found = 1;
+ break;
+ }
+ }
+ }
+ if (!found)
+ {
+ dprintf("VK_code pressed not found = %i\n",vk_code);
+ //MessageBox(NULL,"keydown message arrived not processed","TitleBox",MB_OK);
+ return;
+ }
+ dprintf("VK_code pressed found = %i, sys=%i, mame_keycode=%i special=%08x\n", vk_code, syskey, icode, special);
+ keyboard_state[icode] = true;
+ check_for_GUI_action();
+}
+
+static void KeyboardKeyUp(int syskey, int vk_code, int special)
+{
+ int i, found = 0;
+ int icode = 0;
+ int special_code = (special >> 24) & 1;
+ int scancode = (special>>16) & 0xff;
+
+ if ((vk_code==VK_MENU) || (vk_code==VK_CONTROL) || (vk_code==VK_SHIFT))
+ {
+ found = 1;
+
+ /* a hack for right shift - it's better to use Direct X for keyboard input it seems......*/
+ if (vk_code==VK_SHIFT)
+ if (scancode>0x30) /* on my keyboard left shift scancode is 0x2a, right shift is 0x36 */
+ special_code = 1;
+
+ if (special_code) /* right hand keys */
+ {
+ switch(vk_code)
+ {
+ case VK_MENU:
+ icode = (int)(KEYCODE_RALT.item_id());
+ break;
+ case VK_CONTROL:
+ icode = (int)(KEYCODE_RCONTROL.item_id());
+ break;
+ case VK_SHIFT:
+ icode = (int)(KEYCODE_RSHIFT.item_id());
+ break;
+ }
+ }
+ else /* left hand keys */
+ {
+ switch(vk_code)
+ {
+ case VK_MENU:
+ icode = (int)(KEYCODE_LALT.item_id());
+ break;
+ case VK_CONTROL:
+ icode = (int)(KEYCODE_LCONTROL.item_id());
+ break;
+ case VK_SHIFT:
+ icode = (int)(KEYCODE_LSHIFT.item_id());
+ break;
+ }
+ }
+ }
+ else
+ {
+ for (i = 0; i < ARRAY_LENGTH(win_key_trans_table); i++)
+ {
+ if (vk_code == win_key_trans_table[i][VIRTUAL_KEY])
+ {
+ icode = win_key_trans_table[i][MAME_KEY];
+ found = 1;
+ break;
+ }
+ }
+ }
+ if (!found)
+ {
+ dprintf("VK_code released not found = %i\n",vk_code);
+ //MessageBox(NULL,"keyup message arrived not processed","TitleBox",MB_OK);
+ return;
+ }
+ keyboard_state[icode] = false;
+ dprintf("VK_code released found= %i, sys=%i, mame_keycode=%i special=%08x\n", vk_code, syskey, icode, special );
+ check_for_GUI_action();
+}
+
+static void PollGUIJoystick()
+{
+ // For the exec timer, will keep track of how long the button has been pressed
+ static int exec_counter = 0;
+ const char* exec_command;
+ TCHAR* t_exec_command;
+
+ if (in_emulation)
+ return;
+
+ if (g_pJoyGUI == NULL)
+ return;
+
+ g_pJoyGUI->poll_joysticks();
+
+
+ // User pressed UP
+ if (g_pJoyGUI->is_joy_pressed(JOYCODE(GetUIJoyUp(0), GetUIJoyUp(1), GetUIJoyUp(2),GetUIJoyUp(3))))
+ {
+ SendMessage(hMain, WM_COMMAND, ID_UI_UP, 0);
+ }
+
+ // User pressed DOWN
+ if (g_pJoyGUI->is_joy_pressed(JOYCODE(GetUIJoyDown(0), GetUIJoyDown(1), GetUIJoyDown(2),GetUIJoyDown(3))))
+ {
+ SendMessage(hMain, WM_COMMAND, ID_UI_DOWN, 0);
+ }
+
+ // User pressed LEFT
+ if (g_pJoyGUI->is_joy_pressed(JOYCODE(GetUIJoyLeft(0), GetUIJoyLeft(1), GetUIJoyLeft(2),GetUIJoyLeft(3))))
+ {
+ SendMessage(hMain, WM_COMMAND, ID_UI_LEFT, 0);
+ }
+
+ // User pressed RIGHT
+ if (g_pJoyGUI->is_joy_pressed(JOYCODE(GetUIJoyRight(0), GetUIJoyRight(1), GetUIJoyRight(2),GetUIJoyRight(3))))
+ {
+ SendMessage(hMain, WM_COMMAND, ID_UI_RIGHT, 0);
+ }
+
+ // User pressed START GAME
+ if (g_pJoyGUI->is_joy_pressed(JOYCODE(GetUIJoyStart(0), GetUIJoyStart(1), GetUIJoyStart(2),GetUIJoyStart(3))))
+ {
+ SendMessage(hMain, WM_COMMAND, ID_UI_START, 0);
+ }
+
+ // User pressed PAGE UP
+ if (g_pJoyGUI->is_joy_pressed(JOYCODE(GetUIJoyPageUp(0), GetUIJoyPageUp(1), GetUIJoyPageUp(2),GetUIJoyPageUp(3))))
+ {
+ SendMessage(hMain, WM_COMMAND, ID_UI_PGUP, 0);
+ }
+
+ // User pressed PAGE DOWN
+ if (g_pJoyGUI->is_joy_pressed(JOYCODE(GetUIJoyPageDown(0), GetUIJoyPageDown(1), GetUIJoyPageDown(2),GetUIJoyPageDown(3))))
+ {
+ SendMessage(hMain, WM_COMMAND, ID_UI_PGDOWN, 0);
+ }
+
+ // User pressed HOME
+ if (g_pJoyGUI->is_joy_pressed(JOYCODE(GetUIJoyHome(0), GetUIJoyHome(1), GetUIJoyHome(2),GetUIJoyHome(3))))
+ {
+ SendMessage(hMain, WM_COMMAND, ID_UI_HOME, 0);
+ }
+
+ // User pressed END
+ if (g_pJoyGUI->is_joy_pressed(JOYCODE(GetUIJoyEnd(0), GetUIJoyEnd(1), GetUIJoyEnd(2),GetUIJoyEnd(3))))
+ {
+ SendMessage(hMain, WM_COMMAND, ID_UI_END, 0);
+ }
+
+ // User pressed CHANGE SCREENSHOT
+ if (g_pJoyGUI->is_joy_pressed(JOYCODE(GetUIJoySSChange(0), GetUIJoySSChange(1), GetUIJoySSChange(2),GetUIJoySSChange(3))))
+ {
+ SendMessage(hMain, WM_COMMAND, IDC_SSFRAME, 0);
+ }
+
+ // User pressed SCROLL HISTORY UP
+ if (g_pJoyGUI->is_joy_pressed(JOYCODE(GetUIJoyHistoryUp(0), GetUIJoyHistoryUp(1), GetUIJoyHistoryUp(2),GetUIJoyHistoryUp(3))))
+ {
+ SendMessage(hMain, WM_COMMAND, ID_UI_HISTORY_UP, 0);
+ }
+
+ // User pressed SCROLL HISTORY DOWN
+ if (g_pJoyGUI->is_joy_pressed(JOYCODE(GetUIJoyHistoryDown(0), GetUIJoyHistoryDown(1), GetUIJoyHistoryDown(2),GetUIJoyHistoryDown(3))))
+ {
+ SendMessage(hMain, WM_COMMAND, ID_UI_HISTORY_DOWN, 0);
+ }
+
+ // User pressed EXECUTE COMMANDLINE
+ if (g_pJoyGUI->is_joy_pressed(JOYCODE(GetUIJoyExec(0), GetUIJoyExec(1), GetUIJoyExec(2),GetUIJoyExec(3))))
+ {
+ if (++exec_counter >= GetExecWait()) // Button has been pressed > exec timeout
+ {
+ PROCESS_INFORMATION pi;
+ STARTUPINFO si;
+
+ // Reset counter
+ exec_counter = 0;
+
+ ZeroMemory( &si, sizeof(si) );
+ ZeroMemory( &pi, sizeof(pi) );
+ si.dwFlags = STARTF_FORCEONFEEDBACK;
+ si.cb = sizeof(si);
+
+ exec_command = GetExecCommand();
+ t_exec_command = ui_wstring_from_utf8(exec_command);
+ if( !t_exec_command )
+ return;
+ CreateProcess(NULL, t_exec_command, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi);
+
+ free(t_exec_command);
+
+ // We will not wait for the process to finish cause it might be a background task
+ // The process won't get closed when MAME32 closes either.
+
+ // But close the handles cause we won't need them anymore. Will not close process.
+ CloseHandle(pi.hProcess);
+ CloseHandle(pi.hThread);
+ }
+ }
+ else
+ {
+ // Button has been released within the timeout period, reset the counter
+ exec_counter = 0;
+ }
+}
+
+static void SetView(int menu_id)
+{
+ BOOL force_reset = FALSE;
+ int i;
+
+ // first uncheck previous menu item, check new one
+ CheckMenuRadioItem(GetMenu(hMain), ID_VIEW_LARGE_ICON, ID_VIEW_GROUPED, menu_id, MF_CHECKED);
+ ToolBar_CheckButton(s_hToolBar, menu_id, MF_CHECKED);
+
+ if (Picker_GetViewID(hwndList) == VIEW_GROUPED || menu_id == ID_VIEW_GROUPED)
+ {
+ // this changes the sort order, so redo everything
+ force_reset = TRUE;
+ }
+
+ for (i = 0; i < sizeof(s_nPickers) / sizeof(s_nPickers[0]); i++)
+ Picker_SetViewID(GetDlgItem(hMain, s_nPickers[i]), menu_id - ID_VIEW_LARGE_ICON);
+
+ if (force_reset)
+ {
+ for (i = 0; i < sizeof(s_nPickers) / sizeof(s_nPickers[0]); i++)
+ Picker_Sort(GetDlgItem(hMain, s_nPickers[i]));
+ }
+}
+
+static void ResetListView()
+{
+ int i;
+ int current_game;
+ LV_ITEM lvi;
+ BOOL no_selection = FALSE;
+ LPTREEFOLDER lpFolder = GetCurrentFolder();
+ HRESULT res;
+ BOOL b_res;
+
+ if (!lpFolder)
+ return;
+
+ /* If the last folder was empty, no_selection is TRUE */
+ if (have_selection == FALSE)
+ no_selection = TRUE;
+
+ current_game = Picker_GetSelectedItem(hwndList);
+
+ SetWindowRedraw(hwndList,FALSE);
+
+ b_res = ListView_DeleteAllItems(hwndList);
+
+ // hint to have it allocate it all at once
+ ListView_SetItemCount(hwndList,driver_list::total());
+
+ lvi.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_PARAM;
+ lvi.stateMask = 0;
+
+ i = -1;
+
+ do
+ {
+ /* Add the games that are in this folder */
+ if ((i = FindGame(lpFolder, i + 1)) != -1)
+ {
+ if (GameFiltered(i, lpFolder->m_dwFlags))
+ continue;
+
+ lvi.iItem = i;
+ lvi.iSubItem = 0;
+ lvi.lParam = i;
+ lvi.pszText = LPSTR_TEXTCALLBACK;
+ lvi.iImage = I_IMAGECALLBACK;
+ res = ListView_InsertItem(hwndList, &lvi);
+ }
+ } while (i != -1);
+
+ Picker_Sort(hwndList);
+
+ if (bListReady)
+ {
+ /* If last folder was empty, select the first item in this folder */
+ if (no_selection)
+ Picker_SetSelectedPick(hwndList, 0);
+ else
+ Picker_SetSelectedItem(hwndList, current_game);
+ }
+
+ /*RS Instead of the Arrange Call that was here previously on all Views
+ We now need to set the ViewMode for SmallIcon again,
+ for an explanation why, see SetView*/
+ if (GetViewMode() == VIEW_SMALL_ICONS)
+ SetView(ID_VIEW_SMALL_ICON);
+
+ SetWindowRedraw(hwndList, TRUE);
+
+ UpdateStatusBar();
+
+}
+
+static void UpdateGameList(BOOL bUpdateRomAudit, BOOL bUpdateSampleAudit)
+{
+ int i;
+
+ for (i = 0; i < driver_list::total(); i++)
+ {
+ if (bUpdateRomAudit && DriverUsesRoms(i))
+ SetRomAuditResults(i, UNKNOWN);
+ if (bUpdateSampleAudit && DriverUsesSamples(i))
+ SetSampleAuditResults(i, UNKNOWN);
+ }
+
+ idle_work = TRUE;
+ bDoGameCheck = TRUE;
+ game_index = 0;
+
+ ReloadIcons();
+
+ // Let REFRESH also load new background if found
+ LoadBackgroundBitmap();
+ InvalidateRect(hMain,NULL,TRUE);
+ Picker_ResetIdle(hwndList);
+}
+
+UINT_PTR CALLBACK CFHookProc(
+ HWND hdlg, // handle to dialog box
+ UINT uiMsg, // message identifier
+ WPARAM wParam, // message parameter
+ LPARAM lParam // message parameter
+)
+{
+ int iIndex, i;
+ COLORREF cCombo, cList;
+ switch (uiMsg)
+ {
+ case WM_INITDIALOG:
+ SendDlgItemMessage(hdlg, cmb4, CB_ADDSTRING, 0, (LPARAM)TEXT("Custom"));
+ iIndex = SendDlgItemMessage(hdlg, cmb4, CB_GETCOUNT, 0, 0);
+ cList = GetListFontColor();
+ SendDlgItemMessage(hdlg, cmb4, CB_SETITEMDATA,(WPARAM)iIndex-1,(LPARAM)cList );
+ for( i = 0; i< iIndex; i++)
+ {
+ cCombo = SendDlgItemMessage(hdlg, cmb4, CB_GETITEMDATA,(WPARAM)i,0 );
+ if( cList == cCombo)
+ {
+ SendDlgItemMessage(hdlg, cmb4, CB_SETCURSEL,(WPARAM)i,0 );
+ break;
+ }
+ }
+ break;
+ case WM_COMMAND:
+ if( LOWORD(wParam) == cmb4)
+ {
+ switch (HIWORD(wParam))
+ {
+ case CBN_SELCHANGE: // The color ComboBox changed selection
+ iIndex = (int)SendDlgItemMessage(hdlg, cmb4,
+ CB_GETCURSEL, 0, 0L);
+ if( iIndex == SendDlgItemMessage(hdlg, cmb4, CB_GETCOUNT, 0, 0)-1)
+ {
+ //Custom color selected
+ cList = GetListFontColor();
+ PickColor(&cList);
+ SendDlgItemMessage(hdlg, cmb4, CB_DELETESTRING, iIndex, 0);
+ SendDlgItemMessage(hdlg, cmb4, CB_ADDSTRING, 0, (LPARAM)TEXT("Custom"));
+ SendDlgItemMessage(hdlg, cmb4, CB_SETITEMDATA,(WPARAM)iIndex,(LPARAM)cList);
+ SendDlgItemMessage(hdlg, cmb4, CB_SETCURSEL,(WPARAM)iIndex,0 );
+ return TRUE;
+ }
+ }
+ }
+ break;
+ }
+ return FALSE;
+}
+
+static void PickFont(void)
+{
+ LOGFONT font;
+ CHOOSEFONT cf;
+ TCHAR szClass[128];
+ HWND hWnd;
+ HRESULT res;
+ BOOL b_res;
+
+ GetListFont(&font);
+ font.lfQuality = DEFAULT_QUALITY;
+
+ cf.lStructSize = sizeof(CHOOSEFONT);
+ cf.hwndOwner = hMain;
+ cf.lpLogFont = &font;
+ cf.lpfnHook = &CFHookProc;
+ cf.rgbColors = GetListFontColor();
+ cf.Flags = CF_SCREENFONTS | CF_INITTOLOGFONTSTRUCT | CF_EFFECTS | CF_ENABLEHOOK;
+ if (!ChooseFont(&cf))
+ return;
+
+ SetListFont(&font);
+ if (hFont)
+ DeleteFont(hFont);
+ hFont = CreateFontIndirect(&font);
+ if (hFont)
+ {
+ COLORREF textColor = cf.rgbColors;
+
+ if (textColor == RGB(255,255,255))
+ {
+ textColor = RGB(240, 240, 240);
+ }
+
+ SetAllWindowsFont(hMain, &main_resize, hFont, TRUE);
+
+ hWnd = GetWindow(hMain, GW_CHILD);
+ while(hWnd)
+ {
+ if (GetClassName(hWnd, szClass, sizeof(szClass) / sizeof(szClass[0])))
+ {
+ if (!_tcscmp(szClass, TEXT("SysListView32")))
+ {
+ b_res = ListView_SetTextColor(hWnd, textColor);
+ }
+ else if (!_tcscmp(szClass, TEXT("SysTreeView32")))
+ {
+ res = TreeView_SetTextColor(hTreeView, textColor);
+ }
+ }
+ hWnd = GetWindow(hWnd, GW_HWNDNEXT);
+ }
+ SetListFontColor(cf.rgbColors);
+ ResetListView();
+ }
+}
+
+static void PickColor(COLORREF *cDefault)
+{
+ CHOOSECOLOR cc;
+ COLORREF choice_colors[16];
+ int i;
+
+ for (i=0;i<16;i++)
+ choice_colors[i] = GetCustomColor(i);
+
+ cc.lStructSize = sizeof(CHOOSECOLOR);
+ cc.hwndOwner = hMain;
+ cc.rgbResult = *cDefault;
+ cc.lpCustColors = choice_colors;
+ cc.Flags = CC_ANYCOLOR | CC_RGBINIT | CC_SOLIDCOLOR | CC_FULLOPEN;
+ if (!ChooseColor(&cc))
+ return;
+ for (i=0;i<16;i++)
+ SetCustomColor(i,choice_colors[i]);
+ *cDefault = cc.rgbResult;
+}
+
+static void PickCloneColor(void)
+{
+ COLORREF cClonecolor;
+ cClonecolor = GetListCloneColor();
+ PickColor( &cClonecolor);
+ SetListCloneColor(cClonecolor);
+ InvalidateRect(hwndList,NULL,FALSE);
+}
+
+static BOOL MameCommand(HWND hwnd,int id, HWND hwndCtl, UINT codeNotify)
+{
+ int i = 0;
+ LPTREEFOLDER folder;
+ char* utf8_szFile;
+ BOOL res = 0;
+
+ switch (id)
+ {
+ case ID_FILE_PLAY:
+ MamePlayGame();
+ return TRUE;
+
+ case ID_FILE_PLAY_RECORD:
+ MamePlayRecordGame();
+ return TRUE;
+
+ case ID_FILE_PLAY_BACK:
+ MamePlayBackGame();
+ return TRUE;
+
+ case ID_FILE_PLAY_RECORD_WAVE:
+ MamePlayRecordWave();
+ return TRUE;
+
+ case ID_FILE_PLAY_RECORD_MNG:
+ MamePlayRecordMNG();
+ return TRUE;
+
+ case ID_FILE_PLAY_RECORD_AVI:
+ MamePlayRecordAVI();
+ return TRUE;
+
+ case ID_FILE_LOADSTATE :
+ MameLoadState();
+ return TRUE;
+
+ case ID_FILE_AUDIT:
+ AuditDialog(hMain, 1);
+ ResetWhichGamesInFolders();
+ ResetListView();
+ SetFocus(hwndList);
+ return TRUE;
+
+ case ID_FILE_AUDIT_X:
+ AuditDialog(hMain, 2);
+ ResetWhichGamesInFolders();
+ ResetListView();
+ SetFocus(hwndList);
+ return TRUE;
+
+ case ID_FILE_EXIT:
+ PostMessage(hMain, WM_CLOSE, 0, 0);
+ return TRUE;
+
+ case ID_VIEW_LARGE_ICON:
+ SetView(ID_VIEW_LARGE_ICON);
+ return TRUE;
+
+ case ID_VIEW_SMALL_ICON:
+ SetView(ID_VIEW_SMALL_ICON);
+ ResetListView();
+ return TRUE;
+
+ case ID_VIEW_LIST_MENU:
+ SetView(ID_VIEW_LIST_MENU);
+ return TRUE;
+
+ case ID_VIEW_DETAIL:
+ SetView(ID_VIEW_DETAIL);
+ return TRUE;
+
+ case ID_VIEW_GROUPED:
+ SetView(ID_VIEW_GROUPED);
+ return TRUE;
+
+ /* Arrange Icons submenu */
+ case ID_VIEW_BYGAME:
+ SetSortReverse(FALSE);
+ SetSortColumn(COLUMN_GAMES);
+ Picker_Sort(hwndList);
+ break;
+
+ case ID_VIEW_BYDIRECTORY:
+ SetSortReverse(FALSE);
+ SetSortColumn(COLUMN_DIRECTORY);
+ Picker_Sort(hwndList);
+ break;
+
+ case ID_VIEW_BYMANUFACTURER:
+ SetSortReverse(FALSE);
+ SetSortColumn(COLUMN_MANUFACTURER);
+ Picker_Sort(hwndList);
+ break;
+
+ case ID_VIEW_BYTIMESPLAYED:
+ SetSortReverse(FALSE);
+ SetSortColumn(COLUMN_PLAYED);
+ Picker_Sort(hwndList);
+ break;
+
+ case ID_VIEW_BYTYPE:
+ SetSortReverse(FALSE);
+ SetSortColumn(COLUMN_TYPE);
+ Picker_Sort(hwndList);
+ break;
+
+ case ID_VIEW_BYYEAR:
+ SetSortReverse(FALSE);
+ SetSortColumn(COLUMN_YEAR);
+ Picker_Sort(hwndList);
+ break;
+
+ case ID_VIEW_FOLDERS:
+ bShowTree = !bShowTree;
+ SetShowFolderList(bShowTree);
+ CheckMenuItem(GetMenu(hMain), ID_VIEW_FOLDERS, (bShowTree) ? MF_CHECKED : MF_UNCHECKED);
+ ToolBar_CheckButton(s_hToolBar, ID_VIEW_FOLDERS, (bShowTree) ? MF_CHECKED : MF_UNCHECKED);
+ UpdateScreenShot();
+ break;
+
+ case ID_VIEW_TOOLBARS:
+ bShowToolBar = !bShowToolBar;
+ SetShowToolBar(bShowToolBar);
+ CheckMenuItem(GetMenu(hMain), ID_VIEW_TOOLBARS, (bShowToolBar) ? MF_CHECKED : MF_UNCHECKED);
+ ToolBar_CheckButton(s_hToolBar, ID_VIEW_TOOLBARS, (bShowToolBar) ? MF_CHECKED : MF_UNCHECKED);
+ ShowWindow(s_hToolBar, (bShowToolBar) ? SW_SHOW : SW_HIDE);
+ ResizePickerControls(hMain);
+ UpdateScreenShot();
+ break;
+
+ case ID_VIEW_STATUS:
+ bShowStatusBar = !bShowStatusBar;
+ SetShowStatusBar(bShowStatusBar);
+ CheckMenuItem(GetMenu(hMain), ID_VIEW_STATUS, (bShowStatusBar) ? MF_CHECKED : MF_UNCHECKED);
+ ToolBar_CheckButton(s_hToolBar, ID_VIEW_STATUS, (bShowStatusBar) ? MF_CHECKED : MF_UNCHECKED);
+ ShowWindow(hStatusBar, (bShowStatusBar) ? SW_SHOW : SW_HIDE);
+ ResizePickerControls(hMain);
+ UpdateScreenShot();
+ break;
+
+ case ID_VIEW_PAGETAB:
+ bShowTabCtrl = !bShowTabCtrl;
+ SetShowTabCtrl(bShowTabCtrl);
+ ShowWindow(hTabCtrl, (bShowTabCtrl) ? SW_SHOW : SW_HIDE);
+ ResizePickerControls(hMain);
+ UpdateScreenShot();
+ InvalidateRect(hMain,NULL,TRUE);
+ break;
+
+ /*
+ Switches to fullscreen mode. No check mark handling
+ for this item cause in fullscreen mode the menu won't
+ be visible anyways.
+ */
+ case ID_VIEW_FULLSCREEN:
+ SwitchFullScreenMode();
+ break;
+
+ case ID_TOOLBAR_EDIT:
+ {
+ std::string buf;
+ HWND hToolbarEdit;
+
+ buf = win_get_window_text_utf8(hwndCtl);
+ switch (codeNotify)
+ {
+ case TOOLBAR_EDIT_ACCELERATOR_PRESSED:
+ hToolbarEdit = GetDlgItem( s_hToolBar, ID_TOOLBAR_EDIT);
+ SetFocus(hToolbarEdit);
+ break;
+ case EN_CHANGE:
+ //put search routine here first, add a 200ms timer later.
+ if ((!_stricmp(buf.c_str(), SEARCH_PROMPT) && !_stricmp(g_SearchText, "")))
+ strcpy(g_SearchText, buf.c_str());
+ else
+ {
+ strcpy(g_SearchText, buf.c_str());
+ ResetListView();
+ }
+ break;
+ case EN_SETFOCUS:
+ if (!_stricmp(buf.c_str(), SEARCH_PROMPT))
+ win_set_window_text_utf8(hwndCtl, "");
+ break;
+ case EN_KILLFOCUS:
+ if (*buf.c_str() == 0)
+ win_set_window_text_utf8(hwndCtl, SEARCH_PROMPT);
+ break;
+ }
+ }
+ break;
+
+ case ID_GAME_AUDIT:
+ InitGameAudit(0);
+ if (!oldControl)
+ {
+ InitPropertyPageToPage(hInst, hwnd, GetSelectedPickItemIcon(), OPTIONS_GAME, -1, Picker_GetSelectedItem(hwndList), AUDIT_PAGE);
+ }
+ /* Just in case the toggle MMX on/off */
+ UpdateStatusBar();
+ break;
+
+ /* ListView Context Menu */
+ case ID_CONTEXT_ADD_CUSTOM:
+ {
+ DialogBoxParam(GetModuleHandle(NULL),MAKEINTRESOURCE(IDD_CUSTOM_FILE),
+ hMain,AddCustomFileDialogProc,Picker_GetSelectedItem(hwndList));
+ SetFocus(hwndList);
+ break;
+ }
+
+ case ID_CONTEXT_REMOVE_CUSTOM:
+ {
+ RemoveCurrentGameCustomFolder();
+ break;
+ }
+
+ /* Tree Context Menu */
+ case ID_CONTEXT_FILTERS:
+ if (DialogBox(GetModuleHandle(NULL),
+ MAKEINTRESOURCE(IDD_FILTERS), hMain, FilterDialogProc) == TRUE)
+ ResetListView();
+ SetFocus(hwndList);
+ return TRUE;
+
+ // ScreenShot Context Menu
+ // select current tab
+ case ID_VIEW_TAB_SCREENSHOT :
+ case ID_VIEW_TAB_FLYER :
+ case ID_VIEW_TAB_CABINET :
+ case ID_VIEW_TAB_MARQUEE :
+ case ID_VIEW_TAB_TITLE :
+ case ID_VIEW_TAB_CONTROL_PANEL :
+ case ID_VIEW_TAB_PCB :
+ case ID_VIEW_TAB_HISTORY:
+ if (id == ID_VIEW_TAB_HISTORY && GetShowTab(TAB_HISTORY) == FALSE)
+ break;
+
+ TabView_SetCurrentTab(hTabCtrl, id - ID_VIEW_TAB_SCREENSHOT);
+ UpdateScreenShot();
+ TabView_UpdateSelection(hTabCtrl);
+ break;
+
+ // toggle tab's existence
+ case ID_TOGGLE_TAB_SCREENSHOT :
+ case ID_TOGGLE_TAB_FLYER :
+ case ID_TOGGLE_TAB_CABINET :
+ case ID_TOGGLE_TAB_MARQUEE :
+ case ID_TOGGLE_TAB_TITLE :
+ case ID_TOGGLE_TAB_CONTROL_PANEL :
+ case ID_TOGGLE_TAB_PCB :
+ case ID_TOGGLE_TAB_HISTORY :
+ {
+ int toggle_flag = id - ID_TOGGLE_TAB_SCREENSHOT;
+
+ if (AllowedToSetShowTab(toggle_flag,!GetShowTab(toggle_flag)) == FALSE)
+ {
+ // attempt to hide the last tab
+ // should show error dialog? hide picture area? or ignore?
+ break;
+ }
+
+ SetShowTab(toggle_flag,!GetShowTab(toggle_flag));
+
+ TabView_Reset(hTabCtrl);
+
+ if (TabView_GetCurrentTab(hTabCtrl) == toggle_flag && GetShowTab(toggle_flag) == FALSE)
+ {
+ // we're deleting the tab we're on, so go to the next one
+ TabView_CalculateNextTab(hTabCtrl);
+ }
+
+
+ // Resize the controls in case we toggled to another history
+ // mode (and the history control needs resizing).
+
+ ResizePickerControls(hMain);
+ UpdateScreenShot();
+
+ TabView_UpdateSelection(hTabCtrl);
+
+ break;
+ }
+
+ /* Header Context Menu */
+ case ID_SORT_ASCENDING:
+ SetSortReverse(FALSE);
+ SetSortColumn(Picker_GetRealColumnFromViewColumn(hwndList, lastColumnClick));
+ Picker_Sort(hwndList);
+ break;
+
+ case ID_SORT_DESCENDING:
+ SetSortReverse(TRUE);
+ SetSortColumn(Picker_GetRealColumnFromViewColumn(hwndList, lastColumnClick));
+ Picker_Sort(hwndList);
+ break;
+
+ case ID_CUSTOMIZE_FIELDS:
+ if (DialogBox(GetModuleHandle(NULL),
+ MAKEINTRESOURCE(IDD_COLUMNS), hMain, ColumnDialogProc) == TRUE)
+ ResetColumnDisplay(FALSE);
+ SetFocus(hwndList);
+ return TRUE;
+
+ /* View Menu */
+ case ID_VIEW_LINEUPICONS:
+ if( codeNotify == FALSE)
+ ResetListView();
+ else
+ {
+ /*it was sent after a refresh (F5) was done, we only reset the View if "available" is the selected folder
+ as it doesn't affect the others*/
+ folder = GetSelectedFolder();
+ if( folder )
+ if (folder->m_nFolderId == FOLDER_AVAILABLE )
+ ResetListView();
+ }
+ break;
+
+ case ID_GAME_PROPERTIES:
+ if (!oldControl)
+ {
+ folder = GetFolderByName(FOLDER_SOURCE, GetDriverFilename(Picker_GetSelectedItem(hwndList)) );
+ InitPropertyPage(hInst, hwnd, GetSelectedPickItemIcon(), OPTIONS_GAME, folder->m_nFolderId, Picker_GetSelectedItem(hwndList));
+ }
+ /* Just in case the toggle MMX on/off */
+ UpdateStatusBar();
+ break;
+
+ case ID_FOLDER_PROPERTIES:
+ if (!oldControl)
+ {
+ OPTIONS_TYPE curOptType = OPTIONS_SOURCE;
+ folder = GetSelectedFolder();
+ if(folder->m_nFolderId == FOLDER_VECTOR)
+ curOptType = OPTIONS_VECTOR;
+
+ InitPropertyPage(hInst, hwnd, GetSelectedFolderIcon(), curOptType, folder->m_nFolderId, Picker_GetSelectedItem(hwndList));
+ }
+ /* Just in case the toggle MMX on/off */
+ UpdateStatusBar();
+ break;
+
+ case ID_FOLDER_SOURCEPROPERTIES:
+ if (!oldControl)
+ {
+ folder = GetFolderByName(FOLDER_SOURCE, GetDriverFilename(Picker_GetSelectedItem(hwndList)) );
+ InitPropertyPage(hInst, hwnd, GetSelectedFolderIcon(), (folder->m_nFolderId == FOLDER_VECTOR) ? OPTIONS_VECTOR : OPTIONS_SOURCE , folder->m_nFolderId, Picker_GetSelectedItem(hwndList));
+ }
+ /* Just in case the toggle MMX on/off */
+ UpdateStatusBar();
+ break;
+
+ case ID_FOLDER_VECTORPROPERTIES:
+ if (!oldControl)
+ {
+ folder = GetFolderByID( FOLDER_VECTOR );
+ InitPropertyPage(hInst, hwnd, GetSelectedFolderIcon(), OPTIONS_VECTOR, folder->m_nFolderId, Picker_GetSelectedItem(hwndList));
+ }
+ /* Just in case the toggle MMX on/off */
+ UpdateStatusBar();
+ break;
+
+ case ID_FOLDER_AUDIT:
+ FolderCheck();
+ /* Just in case the toggle MMX on/off */
+ UpdateStatusBar();
+ break;
+
+ case ID_VIEW_PICTURE_AREA :
+ ToggleScreenShot();
+ break;
+
+ case ID_UPDATE_GAMELIST:
+ UpdateGameList(TRUE, TRUE);
+ break;
+
+ case ID_OPTIONS_FONT:
+ PickFont();
+ return TRUE;
+
+ case ID_OPTIONS_CLONE_COLOR:
+ PickCloneColor();
+ return TRUE;
+
+ case ID_OPTIONS_DEFAULTS:
+ /* Check the return value to see if changes were applied */
+ if (!oldControl)
+ {
+ InitDefaultPropertyPage(hInst, hwnd);
+ }
+ SetFocus(hwndList);
+ return TRUE;
+
+ case ID_OPTIONS_DIR:
+ {
+ int nResult = DialogBox(GetModuleHandle(NULL),
+ MAKEINTRESOURCE(IDD_DIRECTORIES),
+ hMain,
+ DirectoriesDialogProc);
+
+ SaveDefaultOptions();
+ SaveOptions();
+
+ BOOL bUpdateRoms = ((nResult & DIRDLG_ROMS) == DIRDLG_ROMS) ? TRUE : FALSE;
+ BOOL bUpdateSamples = ((nResult & DIRDLG_SAMPLES) == DIRDLG_SAMPLES) ? TRUE : FALSE;
+
+ if (s_pWatcher)
+ {
+ if (bUpdateRoms)
+ DirWatcher_Watch(s_pWatcher, 0, GetRomDirs(), TRUE);
+ if (bUpdateSamples)
+ DirWatcher_Watch(s_pWatcher, 1, GetSampleDirs(), TRUE);
+ }
+
+ /* update game list */
+ if (bUpdateRoms == TRUE || bUpdateSamples == TRUE)
+ UpdateGameList(bUpdateRoms, bUpdateSamples);
+
+ SetFocus(hwndList);
+ }
+ return TRUE;
+
+ case ID_OPTIONS_RESET_DEFAULTS:
+ if (DialogBox(GetModuleHandle(NULL), MAKEINTRESOURCE(IDD_RESET), hMain, ResetDialogProc) == TRUE)
+ {
+ // these may have been changed
+ SaveDefaultOptions();
+ SaveOptions();
+ DestroyWindow(hwnd);
+ PostQuitMessage(0);
+ }
+ else
+ {
+ ResetListView();
+ SetFocus(hwndList);
+ }
+ return TRUE;
+
+ case ID_OPTIONS_INTERFACE:
+ DialogBox(GetModuleHandle(NULL), MAKEINTRESOURCE(IDD_INTERFACE_OPTIONS), hMain, InterfaceDialogProc);
+ SaveOptions();
+
+ KillTimer(hMain, SCREENSHOT_TIMER);
+ if( GetCycleScreenshot() > 0)
+ {
+ SetTimer(hMain, SCREENSHOT_TIMER, GetCycleScreenshot()*1000, NULL ); // Scale to seconds
+ }
+
+ return TRUE;
+
+ case ID_OPTIONS_BG:
+ {
+ // More c++ stupidity with strings
+ // Get the path from the existing filename; if no filename go to root
+ TCHAR* t_bgdir = TEXT(".");
+ const char *s = GetBgDir();
+ std::string as;
+ util::zippath_parent(as, s);
+ size_t t1 = as.length()-1;
+ if (as[t1] == '\\') as[t1]='\0';
+ t1 = as.find(':');
+ if (t1 > 0)
+ t_bgdir = ui_wstring_from_utf8(as.c_str());
+
+ OPENFILENAME OFN;
+ static TCHAR szFile[MAX_PATH] = TEXT("\0");
+ if( !t_bgdir )
+ return FALSE;
+
+ OFN.lStructSize = sizeof(OPENFILENAME);
+ OFN.hwndOwner = hMain;
+ OFN.hInstance = 0;
+ OFN.lpstrFilter = TEXT("Image Files (*.png)\0*.PNG\0");
+ OFN.lpstrCustomFilter = NULL;
+ OFN.nMaxCustFilter = 0;
+ OFN.nFilterIndex = 1;
+ OFN.lpstrFile = szFile;
+ OFN.nMaxFile = sizeof(szFile);
+ OFN.lpstrFileTitle = NULL;
+ OFN.nMaxFileTitle = 0;
+ OFN.lpstrInitialDir = t_bgdir;
+ OFN.lpstrTitle = TEXT("Select a Background Image");
+ OFN.nFileOffset = 0;
+ OFN.nFileExtension = 0;
+ OFN.lpstrDefExt = NULL;
+ OFN.lCustData = 0;
+ OFN.lpfnHook = NULL;
+ OFN.lpTemplateName = NULL;
+ OFN.Flags = OFN_NOCHANGEDIR | OFN_SHOWHELP | OFN_EXPLORER;
+
+ if (GetOpenFileName(&OFN))
+ {
+ free(t_bgdir);
+ utf8_szFile = ui_utf8_from_wstring(szFile);
+ if( !utf8_szFile )
+ return FALSE;
+
+ // Make this file as the new default
+ SetBgDir(utf8_szFile);
+
+ // Display new background
+ LoadBackgroundBitmap();
+ InvalidateRect(hMain, NULL, TRUE);
+ free(utf8_szFile);
+ return TRUE;
+ }
+ free(t_bgdir);
+ }
+ break;
+#if 0
+ case ID_OPTIONS_HISTORY:
+ {
+ char filename[MAX_PATH];
+ strcpy(filename, GetHistoryFileName());
+ if (CommonFileDialog(GetOpenFileName, filename, FILETYPE_HISTORY_FILE))
+ {
+ SetHistoryFileName(filename);
+ }
+ return TRUE;
+ }
+ case ID_OPTIONS_MAMEINFO:
+ {
+ char filename[MAX_PATH];
+ strcpy(filename, GetMAMEInfoFileName());
+ if (CommonFileDialog(GetOpenFileName, filename, FILETYPE_MAMEINFO_FILE))
+ {
+ SetMAMEInfoFileName(filename);
+ }
+ return TRUE;
+ }
+#endif
+ case ID_HELP_ABOUT:
+ DialogBox(GetModuleHandle(NULL), MAKEINTRESOURCE(IDD_ABOUT), hMain, AboutDialogProc);
+ SetFocus(hwndList);
+ return TRUE;
+
+ case IDOK :
+ /* cmk -- might need to check more codes here, not sure */
+ if (codeNotify != EN_CHANGE && codeNotify != EN_UPDATE)
+ {
+ /* enter key */
+ if (g_in_treeview_edit)
+ {
+ res = TreeView_EndEditLabelNow(hTreeView, FALSE);
+ return TRUE;
+ }
+ else
+ if (have_selection)
+ MamePlayGame();
+ }
+ break;
+
+ case IDCANCEL : /* esc key */
+ if (g_in_treeview_edit)
+ res = TreeView_EndEditLabelNow(hTreeView, TRUE);
+ break;
+
+ case IDC_PLAY_GAME :
+ if (have_selection)
+ MamePlayGame();
+ break;
+
+ case ID_UI_START:
+ SetFocus(hwndList);
+ MamePlayGame();
+ break;
+
+ case ID_UI_UP:
+ Picker_SetSelectedPick(hwndList, GetSelectedPick() - 1);
+ break;
+
+ case ID_UI_DOWN:
+ Picker_SetSelectedPick(hwndList, GetSelectedPick() + 1);
+ break;
+
+ case ID_UI_PGUP:
+ Picker_SetSelectedPick(hwndList, GetSelectedPick() - ListView_GetCountPerPage(hwndList));
+ break;
+
+ case ID_UI_PGDOWN:
+ if ( (GetSelectedPick() + ListView_GetCountPerPage(hwndList)) < ListView_GetItemCount(hwndList) )
+ Picker_SetSelectedPick(hwndList, GetSelectedPick() + ListView_GetCountPerPage(hwndList) );
+ else
+ Picker_SetSelectedPick(hwndList, ListView_GetItemCount(hwndList)-1 );
+ break;
+
+ case ID_UI_HOME:
+ Picker_SetSelectedPick(hwndList, 0);
+ break;
+
+ case ID_UI_END:
+ Picker_SetSelectedPick(hwndList, ListView_GetItemCount(hwndList)-1 );
+ break;
+ case ID_UI_LEFT:
+ /* hmmmmm..... */
+ SendMessage(hwndList,WM_HSCROLL, SB_LINELEFT, 0);
+ break;
+
+ case ID_UI_RIGHT:
+ /* hmmmmm..... */
+ SendMessage(hwndList,WM_HSCROLL, SB_LINERIGHT, 0);
+ break;
+ case ID_UI_HISTORY_UP:
+ /* hmmmmm..... */
+ {
+ HWND hHistory = GetDlgItem(hMain, IDC_HISTORY);
+ SendMessage(hHistory, EM_SCROLL, SB_PAGEUP, 0);
+ }
+ break;
+
+ case ID_UI_HISTORY_DOWN:
+ /* hmmmmm..... */
+ {
+ HWND hHistory = GetDlgItem(hMain, IDC_HISTORY);
+ SendMessage(hHistory, EM_SCROLL, SB_PAGEDOWN, 0);
+ }
+ break;
+
+ case IDC_SSFRAME:
+ TabView_CalculateNextTab(hTabCtrl);
+ UpdateScreenShot();
+ TabView_UpdateSelection(hTabCtrl);
+ break;
+
+ case ID_CONTEXT_SELECT_RANDOM:
+ SetRandomPickItem();
+ break;
+
+ case ID_CONTEXT_RESET_PLAYSTATS:
+ ResetPlayTime( Picker_GetSelectedItem(hwndList) );
+ ResetPlayCount( Picker_GetSelectedItem(hwndList) );
+ res = ListView_RedrawItems(hwndList, GetSelectedPick(), GetSelectedPick());
+ break;
+
+ case ID_CONTEXT_RENAME_CUSTOM :
+ TreeView_EditLabel(hTreeView,TreeView_GetSelection(hTreeView));
+ break;
+
+ default:
+ if (id >= ID_CONTEXT_SHOW_FOLDER_START && id < ID_CONTEXT_SHOW_FOLDER_END)
+ {
+ ToggleShowFolder(id - ID_CONTEXT_SHOW_FOLDER_START);
+ break;
+ }
+ for (i = 0; g_helpInfo[i].nMenuItem > 0; i++)
+ {
+ if (g_helpInfo[i].nMenuItem == id)
+ {
+ printf("%X: %ls\n",g_helpInfo[i].bIsHtmlHelp, g_helpInfo[i].lpFile);
+ if (i == 1) // get current whatsnew.txt from mamedev.org
+ {
+ std::string version = std::string(GetVersionString()); // turn version string into std
+ version.erase(1,1); // take out the decimal point
+ version.erase(4, std::string::npos); // take out the date
+ std::string url = "http://mamedev.org/releases/whatsnew_" + version + ".txt"; // construct url
+ std::wstring stemp = s2ws(url); // convert to wide string (yeah, typical c++ mess)
+ LPCWSTR result = stemp.c_str(); // then convert to const wchar_t*
+ ShellExecute(hMain, TEXT("open"), result, TEXT(""), NULL, SW_SHOWNORMAL); // show web page
+ }
+ else
+ if (g_helpInfo[i].bIsHtmlHelp)
+// HelpFunction(hMain, g_helpInfo[i].lpFile, HH_DISPLAY_TOPIC, 0);
+ ShellExecute(hMain, TEXT("open"), g_helpInfo[i].lpFile, TEXT(""), NULL, SW_SHOWNORMAL);
+// else
+// DisplayTextFile(hMain, g_helpInfo[i].lpFile);
+ return FALSE;
+ }
+ }
+ break;
+ }
+
+ return FALSE;
+}
+
+static void LoadBackgroundBitmap()
+{
+ HGLOBAL hDIBbg;
+
+ if (hBackground)
+ {
+ DeleteBitmap(hBackground);
+ hBackground = 0;
+ }
+
+ if (hPALbg)
+ {
+ DeletePalette(hPALbg);
+ hPALbg = 0;
+ }
+
+ if (LoadDIBBG(&hDIBbg, &hPALbg))
+ {
+ HDC hDC = GetDC(hwndList);
+ hBackground = DIBToDDB(hDC, hDIBbg, &bmDesc);
+ GlobalFree(hDIBbg);
+ ReleaseDC(hwndList, hDC);
+ }
+}
+
+static void ResetColumnDisplay(BOOL first_time)
+{
+ int driver_index;
+
+ if (!first_time)
+ Picker_ResetColumnDisplay(hwndList);
+
+ ResetListView();
+
+ driver_index = GetGameNameIndex(GetDefaultGame());
+ Picker_SetSelectedItem(hwndList, driver_index);
+}
+
+static int GamePicker_GetItemImage(HWND hwndPicker, int nItem)
+{
+ return GetIconForDriver(nItem);
+}
+
+static const TCHAR *GamePicker_GetItemString(HWND hwndPicker, int nItem, int nColumn, TCHAR *pszBuffer, UINT nBufferLength)
+{
+ const TCHAR *s = NULL;
+ const char* utf8_s = NULL;
+ char playtime_buf[256];
+
+ switch(nColumn)
+ {
+ case COLUMN_GAMES:
+ /* Driver description */
+ utf8_s = ModifyThe(driver_list::driver(nItem).description);
+ break;
+
+ case COLUMN_ORIENTATION:
+ utf8_s = DriverIsVertical(nItem) ? "Vertical" : "Horizontal";
+ break;
+
+#ifdef SHOW_COLUMN_ROMS
+ case COLUMN_ROMS:
+ utf8_s = GetAuditString(GetRomAuditResults(nItem));
+ break;
+#endif
+#ifdef SHOW_COLUMN_SAMPLES
+ case COLUMN_SAMPLES:
+ /* Samples */
+ if (DriverUsesSamples(nItem))
+ utf8_s = GetAuditString(GetSampleAuditResults(nItem));
+ else
+ s = TEXT("-");
+ break;
+#endif
+ case COLUMN_DIRECTORY:
+ /* Driver name (directory) */
+ utf8_s = driver_list::driver(nItem).name;
+ break;
+
+ case COLUMN_SRCDRIVERS:
+ /* Source drivers */
+ utf8_s = GetDriverFilename(nItem);
+ break;
+
+ case COLUMN_PLAYTIME:
+ /* Source drivers */
+ GetTextPlayTime(nItem, playtime_buf);
+ utf8_s = playtime_buf;
+ break;
+
+ case COLUMN_TYPE:
+ /* Vector/Raster */
+ {
+ if (DriverIsVector(nItem))
+ s = TEXT("Vector");
+ else
+ s = TEXT("Raster");
+ break;
+ }
+
+ case COLUMN_TRACKBALL:
+ /* Trackball */
+ if (DriverUsesTrackball(nItem))
+ s = TEXT("Yes");
+ else
+ s = TEXT("No");
+ break;
+
+ case COLUMN_PLAYED:
+ /* times played */
+ _sntprintf(pszBuffer, nBufferLength, TEXT("%i"), GetPlayCount(nItem));
+ s = pszBuffer;
+ break;
+
+ case COLUMN_MANUFACTURER:
+ /* Manufacturer */
+ utf8_s = driver_list::driver(nItem).manufacturer;
+ break;
+
+ case COLUMN_YEAR:
+ /* Year */
+ utf8_s = driver_list::driver(nItem).year;
+ break;
+
+ case COLUMN_CLONE:
+ utf8_s = GetCloneParentName(nItem);
+ break;
+ }
+
+ if( utf8_s )
+ {
+ TCHAR* t_s = ui_wstring_from_utf8(utf8_s);
+ if( !t_s )
+ return s;
+
+ _sntprintf(pszBuffer, nBufferLength, TEXT("%s"), t_s);
+ free(t_s);
+
+ s = pszBuffer;
+ }
+
+ return s;
+}
+
+static void GamePicker_LeavingItem(HWND hwndPicker, int nItem)
+{
+ // leaving item
+ // printf("leaving %s\n",driver_list::driver(nItem).name);
+}
+
+static void GamePicker_EnteringItem(HWND hwndPicker, int nItem)
+{
+ EnableSelection(nItem);
+
+ // decide if it is valid to load a savestate
+ if (DriverSupportsSaveState(nItem))
+ EnableMenuItem(GetMenu(hMain), ID_FILE_LOADSTATE, MFS_ENABLED);
+ else
+ EnableMenuItem(GetMenu(hMain), ID_FILE_LOADSTATE, MFS_GRAYED);
+}
+
+static int GamePicker_FindItemParent(HWND hwndPicker, int nItem)
+{
+ return GetParentRomSetIndex(&driver_list::driver(nItem));
+}
+
+/* Initialize the Picker and List controls */
+static void InitListView()
+{
+ LVBKIMAGE bki;
+ //TCHAR path[MAX_PATH];
+ TCHAR* t_bgdir;
+ BOOL res;
+
+ static const struct PickerCallbacks s_gameListCallbacks =
+ {
+ SetSortColumn, /* pfnSetSortColumn */
+ GetSortColumn, /* pfnGetSortColumn */
+ SetSortReverse, /* pfnSetSortReverse */
+ GetSortReverse, /* pfnGetSortReverse */
+ SetViewMode, /* pfnSetViewMode */
+ GetViewMode, /* pfnGetViewMode */
+ SetColumnWidths, /* pfnSetColumnWidths */
+ GetColumnWidths, /* pfnGetColumnWidths */
+ SetColumnOrder, /* pfnSetColumnOrder */
+ GetColumnOrder, /* pfnGetColumnOrder */
+ SetColumnShown, /* pfnSetColumnShown */
+ GetColumnShown, /* pfnGetColumnShown */
+ GetOffsetClones, /* pfnGetOffsetChildren */
+
+ GamePicker_Compare, /* pfnCompare */
+ MamePlayGame, /* pfnDoubleClick */
+ GamePicker_GetItemString, /* pfnGetItemString */
+ GamePicker_GetItemImage, /* pfnGetItemImage */
+ GamePicker_LeavingItem, /* pfnLeavingItem */
+ GamePicker_EnteringItem, /* pfnEnteringItem */
+ BeginListViewDrag, /* pfnBeginListViewDrag */
+ GamePicker_FindItemParent, /* pfnFindItemParent */
+ OnIdle, /* pfnIdle */
+ GamePicker_OnHeaderContextMenu, /* pfnOnHeaderContextMenu */
+ GamePicker_OnBodyContextMenu /* pfnOnBodyContextMenu */
+ };
+
+ struct PickerOptions opts;
+
+ // subclass the list view
+ memset(&opts, 0, sizeof(opts));
+ opts.pCallbacks = &s_gameListCallbacks;
+ opts.nColumnCount = COLUMN_MAX;
+ opts.ppszColumnNames = column_names;
+ SetupPicker(hwndList, &opts);
+
+ res = ListView_SetTextBkColor(hwndList, CLR_NONE);
+ res = ListView_SetBkColor(hwndList, CLR_NONE);
+ t_bgdir = ui_wstring_from_utf8(GetBgDir());
+ if( !t_bgdir )
+ return;
+
+ bki.ulFlags = LVBKIF_SOURCE_URL | LVBKIF_STYLE_TILE;
+ bki.pszImage = t_bgdir;
+ if( hBackground )
+ res = ListView_SetBkImage(hwndList, &bki);
+
+ CreateIcons();
+
+ ResetColumnDisplay(TRUE);
+
+ // Allow selection to change the default saved game
+ bListReady = TRUE;
+ free(t_bgdir);
+}
+
+static void AddDriverIcon(int nItem,int default_icon_index)
+{
+ HICON hIcon = 0;
+ int nParentIndex = -1;
+
+ /* if already set to rom or clone icon, we've been here before */
+ if (icon_index[nItem] == 1 || icon_index[nItem] == 3)
+ return;
+
+ hIcon = LoadIconFromFile((char *)driver_list::driver(nItem).name);
+ if (hIcon == NULL)
+ {
+ nParentIndex = GetParentIndex(&driver_list::driver(nItem));
+ if( nParentIndex >= 0)
+ {
+ hIcon = LoadIconFromFile((char *)driver_list::driver(nParentIndex).name);
+ nParentIndex = GetParentIndex(&driver_list::driver(nParentIndex));
+ if (hIcon == NULL && nParentIndex >= 0)
+ hIcon = LoadIconFromFile((char *)driver_list::driver(nParentIndex).name);
+ }
+ }
+
+ if (hIcon)
+ {
+ int nIconPos = ImageList_AddIcon(hSmall, hIcon);
+ ImageList_AddIcon(hLarge, hIcon);
+ if (nIconPos != -1)
+ icon_index[nItem] = nIconPos;
+ DestroyIcon(hIcon);
+ }
+ if (icon_index[nItem] == 0)
+ icon_index[nItem] = default_icon_index;
+}
+
+static void DestroyIcons(void)
+{
+ if (hSmall)
+ {
+ ImageList_Destroy(hSmall);
+ hSmall = NULL;
+ }
+
+ if (icon_index)
+ {
+ int i;
+ for (i=0;i<driver_list::total();i++)
+ icon_index[i] = 0; // these are indices into hSmall
+ }
+
+ if (hLarge)
+ {
+ ImageList_Destroy(hLarge);
+ hLarge = NULL;
+ }
+
+ if (hHeaderImages)
+ {
+ ImageList_Destroy(hHeaderImages);
+ hHeaderImages = NULL;
+ }
+
+}
+
+static void ReloadIcons(void)
+{
+ HICON hIcon;
+ INT i;
+
+ // clear out all the images
+ ImageList_RemoveAll(hSmall);
+ ImageList_RemoveAll(hLarge);
+
+ if (icon_index)
+ {
+ for (i=0;i<driver_list::total();i++)
+ icon_index[i] = 0; // these are indices into hSmall
+ }
+
+ for (i = 0; g_iconData[i].icon_name; i++)
+ {
+ hIcon = LoadIconFromFile((char *) g_iconData[i].icon_name);
+ if (hIcon == NULL)
+ hIcon = LoadIcon(hInst, MAKEINTRESOURCE(g_iconData[i].resource));
+
+ ImageList_AddIcon(hSmall, hIcon);
+ ImageList_AddIcon(hLarge, hIcon);
+ DestroyIcon(hIcon);
+ }
+}
+
+static DWORD GetShellLargeIconSize(void)
+{
+ DWORD dwSize = 32, dwLength = 512, dwType = REG_SZ;
+ TCHAR szBuffer[512];
+ HKEY hKey;
+ LONG lRes;
+ LPTSTR tErrorMessage = NULL;
+
+ /* Get the Key */
+ lRes = RegOpenKey(HKEY_CURRENT_USER, TEXT("Control Panel\\Desktop\\WindowMetrics"), &hKey);
+ if( lRes != ERROR_SUCCESS )
+ {
+ GetSystemErrorMessage(lRes, &tErrorMessage);
+ MessageBox(GetMainWindow(), tErrorMessage, TEXT("Large shell icon size registry access"), MB_OK | MB_ICONERROR);
+ LocalFree(tErrorMessage);
+ return dwSize;
+ }
+
+ /* Save the last size */
+ lRes = RegQueryValueEx(hKey, TEXT("Shell Icon Size"), NULL, &dwType, (LPBYTE)szBuffer, &dwLength);
+ if( lRes != ERROR_SUCCESS )
+ {
+ GetSystemErrorMessage(lRes, &tErrorMessage);
+ MessageBox(GetMainWindow(), tErrorMessage, TEXT("Large shell icon size registry query"), MB_OK | MB_ICONERROR);
+ LocalFree(tErrorMessage);
+ RegCloseKey(hKey);
+ return dwSize;
+ }
+
+ dwSize = _ttol(szBuffer);
+ if (dwSize < 32)
+ dwSize = 32;
+
+ if (dwSize > 48)
+ dwSize = 48;
+
+ /* Clean up */
+ RegCloseKey(hKey);
+ return dwSize;
+}
+
+static DWORD GetShellSmallIconSize(void)
+{
+ DWORD dwSize = ICONMAP_WIDTH;
+
+ if (dwSize < 48)
+ {
+ if (dwSize < 32)
+ dwSize = 16;
+ else
+ dwSize = 32;
+ }
+ else
+ {
+ dwSize = 48;
+ }
+ return dwSize;
+}
+
+// create iconlist for Listview control
+static void CreateIcons(void)
+{
+ DWORD dwSmallIconSize = GetShellSmallIconSize();
+ DWORD dwLargeIconSize = GetShellLargeIconSize();
+ HICON hIcon;
+ int icon_count;
+ DWORD dwStyle;
+ int i;
+ int grow = 5000;
+
+ icon_count = 0;
+ while(g_iconData[icon_count].icon_name)
+ icon_count++;
+
+ // the current window style affects the sizing of the rows when changing
+ // between list views, so put it in small icon mode temporarily while we associate
+ // our image list
+ //
+ // using large icon mode instead kills the horizontal scrollbar when doing
+ // full refresh, which seems odd (it should recreate the scrollbar when
+ // set back to report mode, for example, but it doesn't).
+
+ dwStyle = GetWindowLong(hwndList,GWL_STYLE);
+ SetWindowLong(hwndList,GWL_STYLE,(dwStyle & ~LVS_TYPEMASK) | LVS_ICON);
+
+ hSmall = ImageList_Create(dwSmallIconSize, dwSmallIconSize,
+ ILC_COLORDDB | ILC_MASK, icon_count, icon_count + grow);
+
+ if (NULL == hSmall)
+ {
+ win_message_box_utf8(hwndList, "Cannot allocate small icon image list", "Allocation error - Exiting", IDOK);
+ PostQuitMessage(0);
+ }
+
+ hLarge = ImageList_Create(dwLargeIconSize, dwLargeIconSize,
+ ILC_COLORDDB | ILC_MASK, icon_count, icon_count + grow);
+
+ if (NULL == hLarge) {
+ win_message_box_utf8(hwndList, "Cannot allocate large icon image list", "Allocation error - Exiting", IDOK);
+ PostQuitMessage(0);
+ }
+
+ ReloadIcons();
+
+ // Associate the image lists with the list view control.
+ (void)ListView_SetImageList(hwndList, hSmall, LVSIL_SMALL);
+ (void)ListView_SetImageList(hwndList, hLarge, LVSIL_NORMAL);
+
+ // restore our view
+ SetWindowLong(hwndList,GWL_STYLE,dwStyle);
+
+ // Now set up header specific stuff
+ hHeaderImages = ImageList_Create(16,16,ILC_COLORDDB | ILC_MASK,2,2);
+ hIcon = LoadIcon(hInst,MAKEINTRESOURCE(IDI_HEADER_UP));
+ ImageList_AddIcon(hHeaderImages,hIcon);
+ hIcon = LoadIcon(hInst,MAKEINTRESOURCE(IDI_HEADER_DOWN));
+ ImageList_AddIcon(hHeaderImages,hIcon);
+
+ for (i = 0; i < sizeof(s_nPickers) / sizeof(s_nPickers[0]); i++)
+ Picker_SetHeaderImageList(GetDlgItem(hMain, s_nPickers[i]), hHeaderImages);
+}
+
+
+
+static int GamePicker_Compare(HWND hwndPicker, int index1, int index2, int sort_subitem)
+{
+ int value = 0; /* Default to 0, for unknown case */
+ const char *name1 = NULL;
+ const char *name2 = NULL;
+ char file1[20];
+ char file2[20];
+ int nTemp1, nTemp2;
+
+ switch (sort_subitem)
+ {
+ case COLUMN_GAMES:
+ return core_stricmp(ModifyThe(driver_list::driver(index1).description),
+ ModifyThe(driver_list::driver(index2).description));
+
+ case COLUMN_ORIENTATION:
+ nTemp1 = DriverIsVertical(index1) ? 1 : 0;
+ nTemp2 = DriverIsVertical(index2) ? 1 : 0;
+ value = nTemp1 - nTemp2;
+ break;
+#ifdef SHOW_COLUMN_SAMPLES
+ case COLUMN_SAMPLES:
+ nTemp1 = -1;
+ if (DriverUsesSamples(index1))
+ {
+ int audit_result = GetSampleAuditResults(index1);
+ if (IsAuditResultKnown(audit_result))
+ {
+ if (IsAuditResultYes(audit_result))
+ nTemp1 = 1;
+ else
+ nTemp1 = 0;
+ }
+ else
+ nTemp1 = 2;
+ }
+
+ nTemp2 = -1;
+ if (DriverUsesSamples(index2))
+ {
+ int audit_result = GetSampleAuditResults(index1);
+ if (IsAuditResultKnown(audit_result))
+ {
+ if (IsAuditResultYes(audit_result))
+ nTemp2 = 1;
+ else
+ nTemp2 = 0;
+ }
+ else
+ nTemp2 = 2;
+ }
+ value = nTemp2 - nTemp1;
+ break;
+#endif
+ case COLUMN_DIRECTORY:
+ value = core_stricmp(driver_list::driver(index1).name, driver_list::driver(index2).name);
+ break;
+
+ case COLUMN_SRCDRIVERS:
+ strcpy(file1, GetDriverFilename(index1));
+ strcpy(file2, GetDriverFilename(index2));
+ value = core_stricmp(file1, file2);
+ break;
+
+ case COLUMN_PLAYTIME:
+ value = GetPlayTime(index1) - GetPlayTime(index2);
+ break;
+
+ case COLUMN_TYPE:
+ {
+ value = DriverIsVector(index1) - DriverIsVector(index2);
+ break;
+ }
+
+ case COLUMN_TRACKBALL:
+ value = DriverUsesTrackball(index1) - DriverUsesTrackball(index2);
+ break;
+
+ case COLUMN_PLAYED:
+ value = GetPlayCount(index1) - GetPlayCount(index2);
+ break;
+
+ case COLUMN_MANUFACTURER:
+ value = core_stricmp(driver_list::driver(index1).manufacturer, driver_list::driver(index2).manufacturer);
+ break;
+
+ case COLUMN_YEAR:
+ value = core_stricmp(driver_list::driver(index1).year, driver_list::driver(index2).year);
+ break;
+
+ case COLUMN_CLONE:
+ name1 = GetCloneParentName(index1);
+ name2 = GetCloneParentName(index2);
+
+ if (*name1 == '\0')
+ name1 = NULL;
+ if (*name2 == '\0')
+ name2 = NULL;
+
+ if (NULL == name1 && NULL == name2)
+ value = 0;
+ else if (name2 == NULL)
+ value = -1;
+ else if (name1 == NULL)
+ value = 1;
+ else
+ value = core_stricmp(name1, name2);
+ break;
+ }
+
+ // Handle same comparisons here
+ if (0 == value && COLUMN_GAMES != sort_subitem)
+ {
+ value = GamePicker_Compare(hwndPicker, index1, index2, COLUMN_GAMES);
+ }
+
+ return value;
+}
+
+int GetSelectedPick()
+{
+ /* returns index of listview selected item */
+ /* This will return -1 if not found */
+ return ListView_GetNextItem(hwndList, -1, LVIS_SELECTED | LVIS_FOCUSED);
+}
+
+static HICON GetSelectedPickItemIcon()
+{
+ LV_ITEM lvi;
+ BOOL res;
+
+ lvi.iItem = GetSelectedPick();
+ lvi.iSubItem = 0;
+ lvi.mask = LVIF_IMAGE;
+ res = ListView_GetItem(hwndList, &lvi);
+
+ return ImageList_GetIcon(hLarge, lvi.iImage, ILD_TRANSPARENT);
+}
+
+static void SetRandomPickItem()
+{
+ int nListCount;
+
+ nListCount = ListView_GetItemCount(hwndList);
+
+ if (nListCount > 0)
+ {
+ Picker_SetSelectedPick(hwndList, rand() % nListCount);
+ }
+}
+
+BOOL CommonFileDialog(common_file_dialog_proc cfd, char *filename, int filetype)
+{
+ BOOL success;
+ UINT16 i;
+ OPENFILENAME ofn;
+ std::string dirname;
+ TCHAR* t_filename;
+ TCHAR t_filename_buffer[MAX_PATH] = {0, };
+ char *utf8_filename;
+
+ // convert the filename to UTF-8 and copy into buffer
+ t_filename = ui_wstring_from_utf8(filename);
+ if (t_filename)
+ {
+ _sntprintf(t_filename_buffer, ARRAY_LENGTH(t_filename_buffer), TEXT("%s"), t_filename);
+ free(t_filename);
+ }
+
+ ofn.lStructSize = sizeof(ofn);
+ ofn.hwndOwner = hMain;
+ ofn.hInstance = NULL;
+ switch (filetype)
+ {
+ case FILETYPE_INPUT_FILES :
+ ofn.lpstrFilter = TEXT("input files (*.inp,*.zip,*.7z)\0*.inp;*.zip;*.7z\0All files (*.*)\0*.*\0");
+ ofn.lpstrDefExt = TEXT("inp");
+ dirname = GetInpDir();
+ break;
+ case FILETYPE_SAVESTATE_FILES :
+ ofn.lpstrFilter = TEXT("savestate files (*.sta)\0*.sta;\0All files (*.*)\0*.*\0");
+ ofn.lpstrDefExt = TEXT("sta");
+ dirname = GetStateDir();
+ break;
+ case FILETYPE_WAVE_FILES :
+ ofn.lpstrFilter = TEXT("sounds (*.wav)\0*.wav;\0All files (*.*)\0*.*\0");
+ ofn.lpstrDefExt = TEXT("wav");
+ dirname = GetImgDir();
+ break;
+ case FILETYPE_MNG_FILES :
+ ofn.lpstrFilter = TEXT("videos (*.mng)\0*.mng;\0All files (*.*)\0*.*\0");
+ ofn.lpstrDefExt = TEXT("mng");
+ dirname = GetImgDir();
+ break;
+ case FILETYPE_AVI_FILES :
+ ofn.lpstrFilter = TEXT("videos (*.avi)\0*.avi;\0All files (*.*)\0*.*\0");
+ ofn.lpstrDefExt = TEXT("avi");
+ dirname = GetImgDir();
+ break;
+ case FILETYPE_EFFECT_FILES :
+ ofn.lpstrFilter = TEXT("effects (*.png)\0*.png;\0All files (*.*)\0*.*\0");
+ ofn.lpstrDefExt = TEXT("png");
+ dirname = GetArtDir();
+ break;
+ case FILETYPE_JOYMAP_FILES :
+ ofn.lpstrFilter = TEXT("maps (*.map,*.txt)\0*.map;*.txt;\0All files (*.*)\0*.*\0");
+ ofn.lpstrDefExt = TEXT("map");
+ dirname = GetCtrlrDir();
+ break;
+ case FILETYPE_DEBUGSCRIPT_FILES :
+ ofn.lpstrFilter = TEXT("scripts (*.txt,*.dat)\0*.txt;*.dat;\0All files (*.*)\0*.*\0");
+ ofn.lpstrDefExt = TEXT("txt");
+ dirname = GetInpDir();
+ break;
+ case FILETYPE_CHEAT_FILE :
+ ofn.lpstrFilter = TEXT("cheats (*.dat)\0*.dat;\0All files (*.*)\0*.*\0");
+ ofn.lpstrDefExt = TEXT("dat");
+ dirname = ".";
+ break;
+ case FILETYPE_HISTORY_FILE :
+ ofn.lpstrFilter = TEXT("history (*.dat)\0*.dat;\0All files (*.*)\0*.*\0");
+ ofn.lpstrDefExt = TEXT("dat");
+ dirname = ".";
+ break;
+ case FILETYPE_MAMEINFO_FILE :
+ ofn.lpstrFilter = TEXT("mameinfo (*.dat)\0*.dat;\0All files (*.*)\0*.*\0");
+ ofn.lpstrDefExt = TEXT("dat");
+ dirname = ".";
+ break;
+ }
+ ofn.lpstrCustomFilter = NULL;
+ ofn.nMaxCustFilter = 0;
+ ofn.nFilterIndex = 1;
+ ofn.lpstrFile = t_filename_buffer;
+ ofn.nMaxFile = ARRAY_LENGTH(t_filename_buffer);
+ ofn.lpstrFileTitle = NULL;
+ ofn.nMaxFileTitle = 0;
+
+ // Only want first directory
+ i = dirname.find(";");
+ if (i > 0)
+ dirname.resize(i);
+ if (dirname.empty())
+ dirname = ".";
+ ofn.lpstrInitialDir = ui_wstring_from_utf8(dirname.c_str());
+
+ ofn.lpstrTitle = NULL;
+ ofn.Flags = OFN_EXPLORER | OFN_NOCHANGEDIR | OFN_PATHMUSTEXIST | OFN_HIDEREADONLY;
+ ofn.nFileOffset = 0;
+ ofn.nFileExtension = 0;
+ ofn.lCustData = 0;
+ ofn.lpfnHook = NULL;
+ ofn.lpTemplateName = NULL;
+
+ success = cfd(&ofn);
+ if (success)
+ {
+ //dprintf("got filename %s nFileExtension %u\n",filename,ofn.nFileExtension);
+ /*GetDirectory(filename,last_directory,sizeof(last_directory));*/
+ }
+
+ utf8_filename = ui_utf8_from_wstring(t_filename_buffer);
+ if (utf8_filename)
+ {
+ snprintf(filename, MAX_PATH, "%s", utf8_filename);
+ free(utf8_filename);
+ }
+
+ return success;
+}
+
+void SetStatusBarText(int part_index, const char *message)
+{
+ TCHAR* t_message = ui_wstring_from_utf8(message);
+ if( !t_message )
+ return;
+ SendMessage(hStatusBar, SB_SETTEXT, (WPARAM) part_index, (LPARAM)(LPCTSTR) win_tstring_strdup(t_message));
+ free(t_message);
+}
+
+void SetStatusBarTextF(int part_index, const char *fmt, ...)
+{
+ char buf[256];
+ va_list va;
+
+ va_start(va, fmt);
+ vsprintf(buf, fmt, va);
+ va_end(va);
+
+ SetStatusBarText(part_index, buf);
+}
+
+static void CLIB_DECL ATTR_PRINTF(1,2) MameMessageBox(const char *fmt, ...)
+{
+ char buf[2048];
+ va_list va;
+
+ va_start(va, fmt);
+ vsprintf(buf, fmt, va);
+ win_message_box_utf8(GetMainWindow(), buf, MAMEUINAME, MB_OK | MB_ICONERROR);
+ va_end(va);
+}
+
+static void MamePlayBackGame()
+{
+ char filename[MAX_PATH];
+ *filename = 0;
+
+ int nGame = Picker_GetSelectedItem(hwndList);
+ if (nGame != -1)
+ strcpy(filename, driver_list::driver(nGame).name);
+
+ if (CommonFileDialog(GetOpenFileName, filename, FILETYPE_INPUT_FILES))
+ {
+ osd_file::error fileerr;
+ char drive[_MAX_DRIVE];
+ char dir[_MAX_DIR];
+ char bare_fname[_MAX_FNAME];
+ char ext[_MAX_EXT];
+ char path[MAX_PATH];
+ char fname[MAX_PATH];
+ play_options playopts;
+
+ _splitpath(filename, drive, dir, bare_fname, ext);
+
+ sprintf(path,"%s%s",drive,dir);
+ sprintf(fname,"%s%s",bare_fname,ext);
+ if (path[strlen(path)-1] == '\\')
+ path[strlen(path)-1] = 0; // take off trailing back slash
+
+ emu_file pPlayBack(MameUIGlobal().input_directory(), OPEN_FLAG_READ);
+ fileerr = pPlayBack.open(fname);
+ if (fileerr != osd_file::error::NONE)
+ {
+ MameMessageBox("Could not open '%s' as a valid input file.", filename);
+ return;
+ }
+
+ // check for game name embedded in .inp header
+ inp_header header;
+
+ /* read the header and verify that it is a modern version; if not, print an error */
+ if (!header.read(pPlayBack))
+ {
+ MameMessageBox("Input file is corrupt or invalid (missing header)");
+ return;
+ }
+ if ((!header.check_magic()) || (header.get_majversion() != inp_header::MAJVERSION))
+ {
+ MameMessageBox("Input file invalid or in an older, unsupported format");
+ return;
+ }
+
+ std::string const sysname = header.get_sysname();
+ nGame = -1;
+ for (int i = 0; i < driver_list::total(); i++) // find game and play it
+ {
+ if (driver_list::driver(i).name == sysname)
+ {
+ nGame = i;
+ break;
+ }
+ }
+ if (nGame == -1)
+ {
+ MameMessageBox("Game \"%s\" cannot be found", sysname.c_str());
+ return;
+ }
+
+ memset(&playopts, 0, sizeof(playopts));
+ playopts.playback = fname;
+ playopts_apply = 0x57;
+ MamePlayGameWithOptions(nGame, &playopts);
+ }
+}
+
+static void MameLoadState()
+{
+ int nGame;
+ char filename[MAX_PATH];
+ char selected_filename[MAX_PATH];
+ play_options playopts;
+
+ *filename = 0;
+
+ nGame = Picker_GetSelectedItem(hwndList);
+ if (nGame != -1)
+ {
+ strcpy(filename, driver_list::driver(nGame).name);
+ strcpy(selected_filename, driver_list::driver(nGame).name);
+ }
+ if (CommonFileDialog(GetOpenFileName, filename, FILETYPE_SAVESTATE_FILES))
+ {
+ char drive[_MAX_DRIVE];
+ char dir[_MAX_DIR];
+ char ext[_MAX_EXT];
+
+ char path[MAX_PATH];
+ char fname[MAX_PATH];
+ char bare_fname[_MAX_FNAME];
+ char *state_fname;
+ //int rc;
+
+ _splitpath(filename, drive, dir, bare_fname, ext);
+
+ // parse path
+ sprintf(path,"%s%s",drive,dir);
+ sprintf(fname,"%s%s",bare_fname,ext);
+ if (path[strlen(path)-1] == '\\')
+ path[strlen(path)-1] = 0; // take off trailing back slash
+
+#ifdef MESS
+ {
+ state_fname = filename;
+ }
+#else // !MESS
+ {
+ char *cPos=0;
+ int iPos=0;
+ char romname[MAX_PATH];
+
+ cPos = strchr(bare_fname, '-' );
+ iPos = cPos ? cPos - bare_fname : strlen(bare_fname);
+ strncpy(romname, bare_fname, iPos );
+ romname[iPos] = '\0';
+ if( strcmp(selected_filename,romname) != 0 )
+ {
+ MameMessageBox("'%s' is not a valid savestate file for game '%s'.", filename, selected_filename);
+ return;
+ }
+ state_fname = fname;
+ }
+#endif // MESS
+ emu_file pSaveState(MameUIGlobal().state_directory(), OPEN_FLAG_READ);
+ osd_file::error fileerr = pSaveState.open(state_fname);
+ if (fileerr != osd_file::error::NONE)
+ {
+ MameMessageBox("Could not open '%s' as a valid savestate file.", filename);
+ return;
+ }
+
+ // call the MAME core function to check the save state file
+ //rc = state_manager::check_file(NULL, pSaveState, selected_filename, MameMessageBox);
+ //if (rc)
+// return;
+
+ memset(&playopts, 0, sizeof(playopts));
+#ifdef MESS
+ playopts.state = state_fname;
+ playopts_apply = 0x57;
+#else
+ {
+ char *cPos;
+ cPos = strrchr(bare_fname, '-' );
+ cPos = cPos+1;
+ if (*cPos != 0)
+ {
+ playopts.state = cPos;
+ }
+ }
+#endif
+
+ MamePlayGameWithOptions(nGame, &playopts);
+ }
+}
+
+static void MamePlayRecordGame()
+{
+ int nGame;
+ char filename[MAX_PATH];
+ *filename = 0;
+
+ nGame = Picker_GetSelectedItem(hwndList);
+ strcpy(filename, driver_list::driver(nGame).name);
+
+ if (CommonFileDialog(GetSaveFileName, filename, FILETYPE_INPUT_FILES))
+ {
+ char drive[_MAX_DRIVE];
+ char dir[_MAX_DIR];
+ char fname[_MAX_FNAME];
+ char ext[_MAX_EXT];
+ char path[MAX_PATH];
+ play_options playopts;
+
+ _splitpath(filename, drive, dir, fname, ext);
+
+ sprintf(path,"%s%s",drive,dir);
+ if (path[strlen(path)-1] == '\\')
+ path[strlen(path)-1] = 0; // take off trailing back slash
+
+ memset(&playopts, 0, sizeof(playopts));
+ strcat(fname, ".inp");
+ playopts.record = fname;
+ playopts_apply = 0x57;
+ MamePlayGameWithOptions(nGame, &playopts);
+ }
+}
+
+void MamePlayGame(void)
+{
+ int nGame;
+ play_options playopts;
+
+ nGame = Picker_GetSelectedItem(hwndList);
+
+ memset(&playopts, 0, sizeof(playopts));
+ MamePlayGameWithOptions(nGame, &playopts);
+}
+
+static void MamePlayRecordWave()
+{
+ int nGame;
+ char filename[MAX_PATH];
+ play_options playopts;
+
+ nGame = Picker_GetSelectedItem(hwndList);
+ strcpy(filename, driver_list::driver(nGame).name);
+
+ if (CommonFileDialog(GetSaveFileName, filename, FILETYPE_WAVE_FILES))
+ {
+ memset(&playopts, 0, sizeof(playopts));
+ playopts.wavwrite = filename;
+ playopts_apply = 0x57;
+ MamePlayGameWithOptions(nGame, &playopts);
+ }
+}
+
+static void MamePlayRecordMNG()
+{
+ int nGame;
+ char filename[MAX_PATH] = { 0, };
+
+ nGame = Picker_GetSelectedItem(hwndList);
+ strcpy(filename, driver_list::driver(nGame).name);
+
+ if (CommonFileDialog(GetSaveFileName, filename, FILETYPE_MNG_FILES))
+ {
+ char drive[_MAX_DRIVE];
+ char dir[_MAX_DIR];
+ char fname[_MAX_FNAME];
+ char ext[_MAX_EXT];
+ char path[MAX_PATH];
+ play_options playopts;
+
+ _splitpath(filename, drive, dir, fname, ext);
+
+ sprintf(path,"%s%s",drive,dir);
+ if (path[strlen(path)-1] == '\\')
+ path[strlen(path)-1] = 0; // take off trailing back slash
+
+ memset(&playopts, 0, sizeof(playopts));
+ strcat(fname, ".mng");
+ playopts.mngwrite = fname;
+ playopts_apply = 0x57;
+ MamePlayGameWithOptions(nGame, &playopts);
+ }
+}
+
+static void MamePlayRecordAVI()
+{
+ int nGame;
+ char filename[MAX_PATH] = { 0, };
+
+ nGame = Picker_GetSelectedItem(hwndList);
+ strcpy(filename, driver_list::driver(nGame).name);
+
+ if (CommonFileDialog(GetSaveFileName, filename, FILETYPE_AVI_FILES))
+ {
+ char drive[_MAX_DRIVE];
+ char dir[_MAX_DIR];
+ char fname[_MAX_FNAME];
+ char ext[_MAX_EXT];
+ char path[MAX_PATH];
+ play_options playopts;
+
+ _splitpath(filename, drive, dir, fname, ext);
+
+ sprintf(path,"%s%s",drive,dir);
+ if (path[strlen(path)-1] == '\\')
+ path[strlen(path)-1] = 0; // take off trailing back slash
+
+ memset(&playopts, 0, sizeof(playopts));
+ strcat(fname, ".avi");
+ playopts.aviwrite = fname;
+ playopts_apply = 0x57;
+ MamePlayGameWithOptions(nGame, &playopts);
+ }
+}
+
+
+static void MamePlayGameWithOptions(int nGame, const play_options *playopts)
+{
+ DWORD dwExitCode;
+ BOOL res;
+
+ if (g_pJoyGUI)
+ KillTimer(hMain, JOYGUI_TIMER);
+ if (GetCycleScreenshot() > 0)
+ KillTimer(hMain, SCREENSHOT_TIMER);
+
+ in_emulation = TRUE;
+
+ dwExitCode = RunMAME(nGame, playopts);
+ if (dwExitCode == 0)
+ {
+ IncrementPlayCount(nGame);
+ res = ListView_RedrawItems(hwndList, GetSelectedPick(), GetSelectedPick());
+ }
+ else
+ {
+ ShowWindow(hMain, SW_SHOW);
+ }
+
+ in_emulation = FALSE;
+
+ // re-sort if sorting on # of times played
+ if (GetSortColumn() == COLUMN_PLAYED)
+ Picker_Sort(hwndList);
+
+ UpdateStatusBar();
+
+ ShowWindow(hMain, SW_SHOW);
+ SetFocus(hwndList);
+
+ if (g_pJoyGUI)
+ SetTimer(hMain, JOYGUI_TIMER, JOYGUI_MS, NULL);
+ if (GetCycleScreenshot() > 0)
+ SetTimer(hMain, SCREENSHOT_TIMER, GetCycleScreenshot()*1000, NULL); //scale to seconds
+}
+
+/* Toggle ScreenShot ON/OFF */
+static void ToggleScreenShot(void)
+{
+ BOOL showScreenShot = GetShowScreenShot();
+
+ SetShowScreenShot((showScreenShot) ? FALSE : TRUE);
+ UpdateScreenShot();
+
+ /* Redraw list view */
+ if (hBackground && showScreenShot)
+ InvalidateRect(hwndList, NULL, FALSE);
+}
+
+static void AdjustMetrics(void)
+{
+ HDC hDC;
+ TEXTMETRIC tm;
+ int xtraX, xtraY;
+ AREA area;
+ int offX, offY;
+ int maxX, maxY;
+ COLORREF textColor;
+ TCHAR szClass[128];
+ HWND hWnd;
+ HRESULT res;
+ BOOL b_res;
+
+ /* WM_SETTINGCHANGE also */
+ xtraX = GetSystemMetrics(SM_CXFIXEDFRAME); /* Dialog frame width */
+ xtraY = GetSystemMetrics(SM_CYFIXEDFRAME); /* Dialog frame height */
+ xtraY += GetSystemMetrics(SM_CYMENUSIZE); /* Menu height */
+ xtraY += GetSystemMetrics(SM_CYCAPTION); /* Caption Height */
+ maxX = GetSystemMetrics(SM_CXSCREEN); /* Screen Width */
+ maxY = GetSystemMetrics(SM_CYSCREEN); /* Screen Height */
+
+ hDC = GetDC(hMain);
+ GetTextMetrics (hDC, &tm);
+
+ /* Convert MIN Width/Height from Dialog Box Units to pixels. */
+ MIN_WIDTH = (int)((tm.tmAveCharWidth / 4.0) * DBU_MIN_WIDTH) + xtraX;
+ MIN_HEIGHT = (int)((tm.tmHeight / 8.0) * DBU_MIN_HEIGHT) + xtraY;
+ ReleaseDC(hMain, hDC);
+
+ if ((textColor = GetListFontColor()) == RGB(255, 255, 255))
+ textColor = RGB(240, 240, 240);
+
+ hWnd = GetWindow(hMain, GW_CHILD);
+ while(hWnd)
+ {
+ if (GetClassName(hWnd, szClass, sizeof(szClass) / sizeof(szClass[0])))
+ {
+ if (!_tcscmp(szClass, TEXT("SysListView32")))
+ {
+ b_res = ListView_SetBkColor(hWnd, GetSysColor(COLOR_WINDOW));
+ b_res = ListView_SetTextColor(hWnd, textColor);
+ }
+ else if (!_tcscmp(szClass, TEXT("SysTreeView32")))
+ {
+ res = TreeView_SetBkColor(hTreeView, GetSysColor(COLOR_WINDOW));
+ res = TreeView_SetTextColor(hTreeView, textColor);
+ }
+ }
+ hWnd = GetWindow(hWnd, GW_HWNDNEXT);
+ }
+
+ GetWindowArea(&area);
+
+ offX = area.x + area.width;
+ offY = area.y + area.height;
+
+ if (offX > maxX)
+ {
+ offX = maxX;
+ area.x = (offX - area.width > 0) ? (offX - area.width) : 0;
+ }
+ if (offY > maxY)
+ {
+ offY = maxY;
+ area.y = (offY - area.height > 0) ? (offY - area.height) : 0;
+ }
+
+ SetWindowArea(&area);
+ SetWindowPos(hMain, 0, area.x, area.y, area.width, area.height, SWP_NOZORDER | SWP_SHOWWINDOW | SWP_NOACTIVATE);
+}
+
+int FindIconIndex(int nIconResource)
+{
+ int i;
+ for(i = 0; g_iconData[i].icon_name; i++)
+ {
+ if (g_iconData[i].resource == nIconResource)
+ return i;
+ }
+ return -1;
+}
+
+int FindIconIndexByName(const char *icon_name)
+{
+ int i;
+ for (i = 0; g_iconData[i].icon_name; i++)
+ {
+ if (!strcmp(g_iconData[i].icon_name, icon_name))
+ return i;
+ }
+ return -1;
+}
+
+static int GetIconForDriver(int nItem)
+{
+ int iconRoms = 1;
+
+ if (DriverUsesRoms(nItem))
+ {
+ int audit_result = GetRomAuditResults(nItem);
+ if (IsAuditResultKnown(audit_result) == FALSE)
+ return 2;
+#ifdef SHOW_MISSING_ROMS_ICON
+ if (IsAuditResultYes(audit_result))
+ iconRoms = 1;
+ else
+ iconRoms = 0;
+#endif
+ }
+
+ // iconRoms is now either 0 (no roms), 1 (roms), or 2 (unknown)
+ // these are indices into icon_names, which maps into our image list, also must match IDI_WIN_NOROMS + iconRoms
+ // Show Red-X if the ROMs are present and flagged as NOT WORKING
+ if (iconRoms == 1 && DriverIsBroken(nItem))
+ iconRoms = FindIconIndex(IDI_WIN_REDX);
+
+ // show clone icon if we have roms and game is working
+ if (iconRoms == 1 && DriverIsClone(nItem))
+ iconRoms = FindIconIndex(IDI_WIN_CLONE);
+
+ // if we have the roms, then look for a custom per-game icon to override
+ if (iconRoms == 1 || iconRoms == 3)
+ {
+ if (icon_index[nItem] == 0)
+ AddDriverIcon(nItem,iconRoms);
+ iconRoms = icon_index[nItem];
+ }
+
+ return iconRoms;
+}
+
+static BOOL HandleTreeContextMenu(HWND hWnd, WPARAM wParam, LPARAM lParam)
+{
+ HMENU hTreeMenu;
+ HMENU hMenu;
+ TVHITTESTINFO hti;
+ POINT pt;
+ BOOL res;
+
+ if ((HWND)wParam != GetDlgItem(hWnd, IDC_TREE))
+ return FALSE;
+
+ pt.x = GET_X_LPARAM(lParam);
+ pt.y = GET_Y_LPARAM(lParam);
+ if (pt.x < 0 && pt.y < 0)
+ GetCursorPos(&pt);
+
+ /* select the item that was right clicked or shift-F10'ed */
+ hti.pt = pt;
+ ScreenToClient(hTreeView,&hti.pt);
+ (void)TreeView_HitTest(hTreeView,&hti);
+ if ((hti.flags & TVHT_ONITEM) != 0)
+ res = TreeView_SelectItem(hTreeView,hti.hItem);
+
+ hTreeMenu = LoadMenu(hInst,MAKEINTRESOURCE(IDR_CONTEXT_TREE));
+
+ InitTreeContextMenu(hTreeMenu);
+
+ hMenu = GetSubMenu(hTreeMenu, 0);
+
+ UpdateMenu(hMenu);
+
+ TrackPopupMenu(hMenu,TPM_LEFTALIGN | TPM_RIGHTBUTTON,pt.x,pt.y,0,hWnd,NULL);
+
+ DestroyMenu(hTreeMenu);
+
+ return TRUE;
+}
+
+
+
+static void GamePicker_OnBodyContextMenu(POINT pt)
+{
+ HMENU hMenuLoad;
+ HMENU hMenu;
+
+ hMenuLoad = LoadMenu(hInst, MAKEINTRESOURCE(IDR_CONTEXT_MENU));
+ hMenu = GetSubMenu(hMenuLoad, 0);
+ InitBodyContextMenu(hMenu);
+
+ UpdateMenu(hMenu);
+
+ TrackPopupMenu(hMenu,TPM_LEFTALIGN | TPM_RIGHTBUTTON,pt.x,pt.y,0,hMain,NULL);
+
+ DestroyMenu(hMenuLoad);
+}
+
+
+
+static BOOL HandleScreenShotContextMenu(HWND hWnd, WPARAM wParam, LPARAM lParam)
+{
+ HMENU hMenuLoad;
+ HMENU hMenu;
+ POINT pt;
+
+ if ((HWND)wParam != GetDlgItem(hWnd, IDC_SSPICTURE) && (HWND)wParam != GetDlgItem(hWnd, IDC_SSFRAME))
+ return FALSE;
+
+ pt.x = GET_X_LPARAM(lParam);
+ pt.y = GET_Y_LPARAM(lParam);
+ if (pt.x < 0 && pt.y < 0)
+ GetCursorPos(&pt);
+
+ hMenuLoad = LoadMenu(hInst, MAKEINTRESOURCE(IDR_CONTEXT_SCREENSHOT));
+ hMenu = GetSubMenu(hMenuLoad, 0);
+
+ UpdateMenu(hMenu);
+
+ TrackPopupMenu(hMenu,TPM_LEFTALIGN | TPM_RIGHTBUTTON,pt.x,pt.y,0,hWnd,NULL);
+
+ DestroyMenu(hMenuLoad);
+
+ return TRUE;
+}
+
+static void UpdateMenu(HMENU hMenu)
+{
+ TCHAR buf[200];
+ MENUITEMINFO mItem;
+ int nGame = Picker_GetSelectedItem(hwndList);
+ LPTREEFOLDER lpFolder = GetCurrentFolder();
+ int i;
+ //const char *pParent;
+ TCHAR* t_description;
+
+ if (have_selection)
+ {
+ t_description = ui_wstring_from_utf8(ConvertAmpersandString(ModifyThe(driver_list::driver(nGame).description)));
+ if( !t_description )
+ return;
+
+ _sntprintf(buf, ARRAY_LENGTH(buf), g_szPlayGameString, t_description);
+
+ mItem.cbSize = sizeof(mItem);
+ mItem.fMask = MIIM_TYPE;
+ mItem.fType = MFT_STRING;
+ mItem.dwTypeData = buf;
+ mItem.cch = _tcslen(mItem.dwTypeData);
+
+ SetMenuItemInfo(hMenu, ID_FILE_PLAY, FALSE, &mItem);
+
+ EnableMenuItem(hMenu, ID_CONTEXT_SELECT_RANDOM, MF_ENABLED);
+
+ free(t_description);
+ }
+ else
+ {
+ EnableMenuItem(hMenu, ID_FILE_PLAY, MF_GRAYED);
+ EnableMenuItem(hMenu, ID_FILE_PLAY_RECORD, MF_GRAYED);
+ EnableMenuItem(hMenu, ID_GAME_PROPERTIES, MF_GRAYED);
+ EnableMenuItem(hMenu, ID_CONTEXT_SELECT_RANDOM, MF_GRAYED);
+ }
+
+ if (oldControl)
+ {
+ EnableMenuItem(hMenu, ID_CUSTOMIZE_FIELDS, MF_GRAYED);
+ EnableMenuItem(hMenu, ID_GAME_PROPERTIES, MF_GRAYED);
+ EnableMenuItem(hMenu, ID_OPTIONS_DEFAULTS, MF_GRAYED);
+ }
+
+ if (lpFolder->m_dwFlags & F_CUSTOM)
+ {
+ EnableMenuItem(hMenu,ID_CONTEXT_REMOVE_CUSTOM,MF_ENABLED);
+ EnableMenuItem(hMenu,ID_CONTEXT_RENAME_CUSTOM,MF_ENABLED);
+ }
+ else
+ {
+ EnableMenuItem(hMenu,ID_CONTEXT_REMOVE_CUSTOM,MF_GRAYED);
+ EnableMenuItem(hMenu,ID_CONTEXT_RENAME_CUSTOM,MF_GRAYED);
+ }
+ //pParent = GetFolderNameByID(lpFolder->m_nParent+1);
+
+ if (lpFolder->m_dwFlags & F_INIEDIT)
+ EnableMenuItem(hMenu,ID_FOLDER_PROPERTIES,MF_ENABLED);
+ else
+ EnableMenuItem(hMenu,ID_FOLDER_PROPERTIES,MF_GRAYED);
+
+ CheckMenuRadioItem(hMenu, ID_VIEW_TAB_SCREENSHOT, ID_VIEW_TAB_HISTORY,
+ ID_VIEW_TAB_SCREENSHOT + TabView_GetCurrentTab(hTabCtrl), MF_BYCOMMAND);
+
+ // set whether we're showing the tab control or not
+ if (bShowTabCtrl)
+ CheckMenuItem(hMenu,ID_VIEW_PAGETAB,MF_BYCOMMAND | MF_CHECKED);
+ else
+ CheckMenuItem(hMenu,ID_VIEW_PAGETAB,MF_BYCOMMAND | MF_UNCHECKED);
+
+
+ for (i=0;i<MAX_TAB_TYPES;i++)
+ {
+ // disable menu items for tabs we're not currently showing
+ if (GetShowTab(i))
+ EnableMenuItem(hMenu,ID_VIEW_TAB_SCREENSHOT + i,MF_BYCOMMAND | MF_ENABLED);
+ else
+ EnableMenuItem(hMenu,ID_VIEW_TAB_SCREENSHOT + i,MF_BYCOMMAND | MF_GRAYED);
+
+ // check toggle menu items
+ if (GetShowTab(i))
+ CheckMenuItem(hMenu, ID_TOGGLE_TAB_SCREENSHOT + i,MF_BYCOMMAND | MF_CHECKED);
+ else
+ CheckMenuItem(hMenu, ID_TOGGLE_TAB_SCREENSHOT + i,MF_BYCOMMAND | MF_UNCHECKED);
+ }
+
+ for (i=0;i<MAX_FOLDERS;i++)
+ {
+ if (GetShowFolder(i))
+ CheckMenuItem(hMenu,ID_CONTEXT_SHOW_FOLDER_START + i,MF_BYCOMMAND | MF_CHECKED);
+ else
+ CheckMenuItem(hMenu,ID_CONTEXT_SHOW_FOLDER_START + i,MF_BYCOMMAND | MF_UNCHECKED);
+ }
+
+}
+
+void InitTreeContextMenu(HMENU hTreeMenu)
+{
+ MENUITEMINFO mii;
+ HMENU hMenu;
+ int i;
+ extern const FOLDERDATA g_folderData[];
+
+ ZeroMemory(&mii,sizeof(mii));
+ mii.cbSize = sizeof(mii);
+
+ mii.wID = -1;
+ mii.fMask = MIIM_SUBMENU | MIIM_ID;
+
+ hMenu = GetSubMenu(hTreeMenu, 0);
+
+ if (GetMenuItemInfo(hMenu,3,TRUE,&mii) == FALSE)
+ {
+ dprintf("can't find show folders context menu\n");
+ return;
+ }
+
+ if (mii.hSubMenu == NULL)
+ {
+ dprintf("can't find submenu for show folders context menu\n");
+ return;
+ }
+
+ hMenu = mii.hSubMenu;
+
+ for (i=0;g_folderData[i].m_lpTitle;i++)
+ {
+ TCHAR* t_title = ui_wstring_from_utf8(g_folderData[i].m_lpTitle);
+ if( !t_title )
+ return;
+
+ mii.fMask = MIIM_TYPE | MIIM_ID;
+ mii.fType = MFT_STRING;
+ mii.dwTypeData = t_title;
+ mii.cch = _tcslen(mii.dwTypeData);
+ mii.wID = ID_CONTEXT_SHOW_FOLDER_START + g_folderData[i].m_nFolderId;
+
+
+ // menu in resources has one empty item (needed for the submenu to setup properly)
+ // so overwrite this one, append after
+ if (i == 0)
+ SetMenuItemInfo(hMenu,ID_CONTEXT_SHOW_FOLDER_START,FALSE,&mii);
+ else
+ InsertMenuItem(hMenu,i,FALSE,&mii);
+
+ free(t_title);
+ }
+
+}
+
+void InitBodyContextMenu(HMENU hBodyContextMenu)
+{
+ LPTREEFOLDER lpFolder;
+ TCHAR tmp[30];
+ MENUITEMINFO mii;
+ ZeroMemory(&mii,sizeof(mii));
+ mii.cbSize = sizeof(mii);
+
+ if (GetMenuItemInfo(hBodyContextMenu,ID_FOLDER_SOURCEPROPERTIES,FALSE,&mii) == FALSE)
+ {
+ dprintf("can't find show folders context menu\n");
+ return;
+ }
+ lpFolder = GetFolderByName(FOLDER_SOURCE, GetDriverFilename(Picker_GetSelectedItem(hwndList)) );
+ _sntprintf(tmp,ARRAY_LENGTH(tmp),TEXT("Properties for %s"),lpFolder->m_lptTitle );
+ mii.fMask = MIIM_TYPE | MIIM_ID;
+ mii.fType = MFT_STRING;
+ mii.dwTypeData = tmp;
+ mii.cch = _tcslen(mii.dwTypeData);
+ mii.wID = ID_FOLDER_SOURCEPROPERTIES;
+
+
+ // menu in resources has one default item
+ // so overwrite this one
+ SetMenuItemInfo(hBodyContextMenu,ID_FOLDER_SOURCEPROPERTIES,FALSE,&mii);
+ if( ! DriverIsVector(Picker_GetSelectedItem(hwndList) ) )
+ EnableMenuItem(hBodyContextMenu, ID_FOLDER_VECTORPROPERTIES, MF_GRAYED);
+}
+
+
+void ToggleShowFolder(int folder)
+{
+ int current_id = GetCurrentFolderID();
+
+ SetWindowRedraw(hwndList,FALSE);
+
+ SetShowFolder(folder,!GetShowFolder(folder));
+
+ ResetTreeViewFolders();
+ SelectTreeViewFolder(current_id);
+
+ SetWindowRedraw(hwndList,TRUE);
+}
+
+static LRESULT CALLBACK HistoryWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
+{
+ if (hBackground)
+ {
+ switch (uMsg)
+ {
+ case WM_MOUSEMOVE:
+ {
+ if (MouseHasBeenMoved())
+ ShowCursor(TRUE);
+ break;
+ }
+
+ case WM_ERASEBKGND:
+ return TRUE;
+ case WM_PAINT:
+ {
+ POINT p = { 0, 0 };
+
+ /* get base point of background bitmap */
+ MapWindowPoints(hWnd,hTreeView,&p,1);
+ PaintBackgroundImage(hWnd, NULL, p.x, p.y);
+ /* to ensure our parent procedure repaints the whole client area */
+ InvalidateRect(hWnd, NULL, FALSE);
+ break;
+ }
+ }
+ }
+ return CallWindowProc(g_lpHistoryWndProc, hWnd, uMsg, wParam, lParam);
+}
+
+static LRESULT CALLBACK PictureFrameWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
+{
+ switch (uMsg)
+ {
+ case WM_MOUSEMOVE:
+ {
+ if (MouseHasBeenMoved())
+ ShowCursor(TRUE);
+ break;
+ }
+
+ case WM_NCHITTEST :
+ {
+ POINT pt;
+ RECT rect;
+ HWND hHistory = GetDlgItem(hMain, IDC_HISTORY);
+
+ pt.x = LOWORD(lParam);
+ pt.y = HIWORD(lParam);
+ GetWindowRect(hHistory, &rect);
+ // check if they clicked on the picture area (leave 6 pixel no man's land
+ // by the history window to reduce mistaken clicks)
+ // no more no man's land, the Cursor changes when Edit control is left, should be enough feedback
+ if (have_history &&
+ ( ( (TabView_GetCurrentTab(hTabCtrl) == TAB_HISTORY) ||
+ (TabView_GetCurrentTab(hTabCtrl) == GetHistoryTab() && GetShowTab(TAB_HISTORY) == FALSE) ||
+ (TAB_ALL == GetHistoryTab() && GetShowTab(TAB_HISTORY) == FALSE) ) &&
+// (rect.top - 6) < pt.y && pt.y < (rect.bottom + 6) ) )
+ PtInRect( &rect, pt ) ) )
+
+ {
+ return HTTRANSPARENT;
+ }
+ else
+ {
+ return HTCLIENT;
+ }
+ }
+ break;
+ case WM_CONTEXTMENU:
+ if ( HandleScreenShotContextMenu(hWnd, wParam, lParam))
+ return FALSE;
+ break;
+ }
+
+ if (hBackground)
+ {
+ switch (uMsg)
+ {
+ case WM_ERASEBKGND :
+ return TRUE;
+ case WM_PAINT :
+ {
+ RECT rect,nodraw_rect;
+ HRGN region,nodraw_region;
+ POINT p = { 0, 0 };
+
+ /* get base point of background bitmap */
+ MapWindowPoints(hWnd,hTreeView,&p,1);
+
+ /* get big region */
+ GetClientRect(hWnd,&rect);
+ region = CreateRectRgnIndirect(&rect);
+
+ if (IsWindowVisible(GetDlgItem(hMain,IDC_HISTORY)))
+ {
+ /* don't draw over this window */
+ GetWindowRect(GetDlgItem(hMain,IDC_HISTORY),&nodraw_rect);
+ MapWindowPoints(HWND_DESKTOP,hWnd,(LPPOINT)&nodraw_rect,2);
+ nodraw_region = CreateRectRgnIndirect(&nodraw_rect);
+ CombineRgn(region,region,nodraw_region,RGN_DIFF);
+ DeleteObject(nodraw_region);
+ }
+ if (IsWindowVisible(GetDlgItem(hMain,IDC_SSPICTURE)))
+ {
+ /* don't draw over this window */
+ GetWindowRect(GetDlgItem(hMain,IDC_SSPICTURE),&nodraw_rect);
+ MapWindowPoints(HWND_DESKTOP,hWnd,(LPPOINT)&nodraw_rect,2);
+ nodraw_region = CreateRectRgnIndirect(&nodraw_rect);
+ CombineRgn(region,region,nodraw_region,RGN_DIFF);
+ DeleteObject(nodraw_region);
+ }
+
+ PaintBackgroundImage(hWnd,region,p.x,p.y);
+
+ DeleteObject(region);
+
+ /* to ensure our parent procedure repaints the whole client area */
+ InvalidateRect(hWnd, NULL, FALSE);
+
+ break;
+ }
+ }
+ }
+ return CallWindowProc(g_lpPictureFrameWndProc, hWnd, uMsg, wParam, lParam);
+}
+
+static LRESULT CALLBACK PictureWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
+{
+ switch (uMsg)
+ {
+ case WM_ERASEBKGND :
+ return TRUE;
+ case WM_PAINT :
+ {
+ PAINTSTRUCT ps;
+ HDC hdc,hdc_temp;
+ RECT rect;
+ HBITMAP old_bitmap;
+
+ int width,height;
+
+ RECT rect2;
+ HBRUSH hBrush;
+ HBRUSH holdBrush;
+ HRGN region1, region2;
+ int nBordersize;
+ nBordersize = GetScreenshotBorderSize();
+ hBrush = CreateSolidBrush(GetScreenshotBorderColor());
+
+ hdc = BeginPaint(hWnd,&ps);
+
+ hdc_temp = CreateCompatibleDC(hdc);
+ if (ScreenShotLoaded())
+ {
+ width = GetScreenShotWidth();
+ height = GetScreenShotHeight();
+
+ old_bitmap = (HBITMAP)SelectObject(hdc_temp,GetScreenShotHandle());
+ }
+ else
+ {
+ BITMAP bmp;
+
+ GetObject(hMissing_bitmap,sizeof(BITMAP),&bmp);
+ width = bmp.bmWidth;
+ height = bmp.bmHeight;
+
+ old_bitmap = (HBITMAP)SelectObject(hdc_temp,hMissing_bitmap);
+ }
+
+ GetClientRect(hWnd,&rect);
+
+ rect2 = rect;
+ //Configurable Borders around images
+ rect.bottom -= nBordersize;
+ if( rect.bottom < 0)
+ rect.bottom = rect2.bottom;
+ rect.right -= nBordersize;
+ if( rect.right < 0)
+ rect.right = rect2.right;
+ rect.top += nBordersize;
+ if( rect.top > rect.bottom )
+ rect.top = rect2.top;
+ rect.left += nBordersize;
+ if( rect.left > rect.right )
+ rect.left = rect2.left;
+ region1 = CreateRectRgnIndirect(&rect);
+ region2 = CreateRectRgnIndirect(&rect2);
+ CombineRgn(region2,region2,region1,RGN_DIFF);
+ holdBrush = (HBRUSH)SelectObject(hdc, hBrush);
+
+ FillRgn(hdc,region2, hBrush );
+ SelectObject(hdc, holdBrush);
+ DeleteBrush(hBrush);
+
+ SetStretchBltMode(hdc,STRETCH_HALFTONE);
+ StretchBlt(hdc,nBordersize,nBordersize,rect.right-rect.left,rect.bottom-rect.top,
+ hdc_temp,0,0,width,height,SRCCOPY);
+ SelectObject(hdc_temp,old_bitmap);
+ DeleteDC(hdc_temp);
+ DeleteObject(region1);
+ DeleteObject(region2);
+
+ EndPaint(hWnd,&ps);
+
+ return TRUE;
+ }
+ }
+
+ return CallWindowProc(g_lpPictureWndProc, hWnd, uMsg, wParam, lParam);
+}
+
+static void RemoveCurrentGameCustomFolder(void)
+{
+ RemoveGameCustomFolder(Picker_GetSelectedItem(hwndList));
+}
+
+static void RemoveGameCustomFolder(int driver_index)
+{
+ int i;
+ TREEFOLDER **folders;
+ int num_folders;
+
+ GetFolders(&folders,&num_folders);
+
+ for (i=0; i<num_folders; i++)
+ {
+ if (folders[i]->m_dwFlags & F_CUSTOM && folders[i]->m_nFolderId == GetCurrentFolderID())
+ {
+ int current_pick_index;
+
+ RemoveFromCustomFolder(folders[i],driver_index);
+
+ if (driver_index == Picker_GetSelectedItem(hwndList))
+ {
+ /* if we just removed the current game,
+ move the current selection so that when we rebuild the listview it
+ leaves the cursor on next or previous one */
+
+ current_pick_index = GetSelectedPick();
+ Picker_SetSelectedPick(hwndList, GetSelectedPick() + 1);
+ if (current_pick_index == GetSelectedPick()) /* we must have deleted the last item */
+ Picker_SetSelectedPick(hwndList, GetSelectedPick() - 1);
+ }
+
+ ResetListView();
+ return;
+ }
+ }
+ MessageBox(GetMainWindow(), TEXT("Error searching for custom folder"), (LPCTSTR)MAMEUINAME, MB_OK | MB_ICONERROR);
+}
+
+
+static void BeginListViewDrag(NM_LISTVIEW *pnmv)
+{
+ LV_ITEM lvi;
+ POINT pt;
+ BOOL res;
+
+ lvi.iItem = pnmv->iItem;
+ lvi.mask = LVIF_PARAM;
+ res = ListView_GetItem(hwndList, &lvi);
+
+ game_dragged = lvi.lParam;
+
+ pt.x = 0;
+ pt.y = 0;
+
+ /* Tell the list view control to create an image to use
+ for dragging. */
+ himl_drag = ListView_CreateDragImage(hwndList,pnmv->iItem,&pt);
+
+ /* Start the drag operation. */
+ ImageList_BeginDrag(himl_drag, 0, 0, 0);
+
+ pt = pnmv->ptAction;
+ ClientToScreen(hwndList,&pt);
+ ImageList_DragEnter(GetDesktopWindow(),pt.x,pt.y);
+
+ /* Hide the mouse cursor, and direct mouse input to the
+ parent window. */
+ SetCapture(hMain);
+
+ prev_drag_drop_target = NULL;
+
+ g_listview_dragging = TRUE;
+
+}
+
+static void MouseMoveListViewDrag(POINTS p)
+{
+ HTREEITEM htiTarget;
+ TV_HITTESTINFO tvht;
+ BOOL res;
+
+ POINT pt;
+ pt.x = p.x;
+ pt.y = p.y;
+
+ ClientToScreen(hMain,&pt);
+
+ ImageList_DragMove(pt.x,pt.y);
+
+ MapWindowPoints(GetDesktopWindow(),hTreeView,&pt,1);
+
+ tvht.pt = pt;
+ htiTarget = TreeView_HitTest(hTreeView,&tvht);
+
+ if (htiTarget != prev_drag_drop_target)
+ {
+ ImageList_DragShowNolock(FALSE);
+ if (htiTarget)
+ res = TreeView_SelectDropTarget(hTreeView,htiTarget);
+ else
+ res = TreeView_SelectDropTarget(hTreeView,NULL);
+ ImageList_DragShowNolock(TRUE);
+
+ prev_drag_drop_target = htiTarget;
+ }
+}
+
+static void ButtonUpListViewDrag(POINTS p)
+{
+ POINT pt;
+ HTREEITEM htiTarget;
+ TV_HITTESTINFO tvht;
+ TVITEM tvi;
+ BOOL res;
+
+ ReleaseCapture();
+
+ ImageList_DragLeave(hwndList);
+ ImageList_EndDrag();
+ ImageList_Destroy(himl_drag);
+
+ res = TreeView_SelectDropTarget(hTreeView,NULL);
+
+ g_listview_dragging = FALSE;
+
+ /* see where the game was dragged */
+
+ pt.x = p.x;
+ pt.y = p.y;
+
+ MapWindowPoints(hMain,hTreeView,&pt,1);
+
+ tvht.pt = pt;
+ htiTarget = TreeView_HitTest(hTreeView,&tvht);
+ if (htiTarget == NULL)
+ {
+ LVHITTESTINFO lvhtti;
+ LPTREEFOLDER folder;
+ RECT rcList;
+
+ /* the user dragged a game onto something other than the treeview */
+ /* try to remove if we're in a custom folder */
+
+ /* see if it was dragged within the list view; if so, ignore */
+
+ MapWindowPoints(hTreeView,hwndList,&pt,1);
+ lvhtti.pt = pt;
+ GetWindowRect(hwndList, &rcList);
+ ClientToScreen(hwndList, &pt);
+ if( PtInRect(&rcList, pt) != 0 )
+ return;
+
+ folder = GetCurrentFolder();
+ if (folder->m_dwFlags & F_CUSTOM)
+ {
+ /* dragged out of a custom folder, so let's remove it */
+ RemoveCurrentGameCustomFolder();
+ }
+ return;
+ }
+
+
+ tvi.lParam = 0;
+ tvi.mask = TVIF_PARAM | TVIF_HANDLE;
+ tvi.hItem = htiTarget;
+
+ if (TreeView_GetItem(hTreeView, &tvi))
+ {
+ LPTREEFOLDER folder = (LPTREEFOLDER)tvi.lParam;
+ AddToCustomFolder(folder,game_dragged);
+ }
+
+}
+
+static LPTREEFOLDER GetSelectedFolder(void)
+{
+ HTREEITEM htree;
+ TVITEM tvi;
+ BOOL res;
+
+ htree = TreeView_GetSelection(hTreeView);
+ if(htree)
+ {
+ tvi.hItem = htree;
+ tvi.mask = TVIF_PARAM;
+ res = TreeView_GetItem(hTreeView,&tvi);
+ return (LPTREEFOLDER)tvi.lParam;
+ }
+ return NULL;
+}
+
+static HICON GetSelectedFolderIcon(void)
+{
+ HTREEITEM htree;
+ TVITEM tvi;
+ HIMAGELIST hSmall_icon;
+ LPTREEFOLDER folder;
+ BOOL res;
+
+ htree = TreeView_GetSelection(hTreeView);
+ if (htree)
+ {
+ tvi.hItem = htree;
+ tvi.mask = TVIF_PARAM;
+ res = TreeView_GetItem(hTreeView,&tvi);
+
+ folder = (LPTREEFOLDER)tvi.lParam;
+ //hSmall_icon = TreeView_GetImageList(hTreeView,(int)tvi.iImage);
+ hSmall_icon = NULL;
+ return ImageList_GetIcon(hSmall_icon, tvi.iImage, ILD_TRANSPARENT);
+ }
+ return NULL;
+}
+
+/* Updates all currently displayed Items in the List with the latest Data*/
+void UpdateListView(void)
+{
+ BOOL res;
+
+ if( (GetViewMode() == VIEW_GROUPED) || (GetViewMode() == VIEW_DETAILS ) )
+ res = ListView_RedrawItems(hwndList,ListView_GetTopIndex(hwndList),
+ ListView_GetTopIndex(hwndList)+ ListView_GetCountPerPage(hwndList) );
+}
+
+static void CalculateBestScreenShotRect(HWND hWnd, RECT *pRect, BOOL restrict_height)
+{
+ int destX, destY;
+ int destW, destH;
+ int nBorder;
+ RECT rect;
+ /* for scaling */
+ int x, y;
+ int rWidth, rHeight;
+ double scale;
+ BOOL bReduce = FALSE;
+
+ GetClientRect(hWnd, &rect);
+
+ // Scale the bitmap to the frame specified by the passed in hwnd
+ if (ScreenShotLoaded())
+ {
+ x = GetScreenShotWidth();
+ y = GetScreenShotHeight();
+ }
+ else
+ {
+ BITMAP bmp;
+ GetObject(hMissing_bitmap,sizeof(BITMAP),&bmp);
+
+ x = bmp.bmWidth;
+ y = bmp.bmHeight;
+ }
+ rWidth = (rect.right - rect.left);
+ rHeight = (rect.bottom - rect.top);
+
+ /* Limit the screen shot to max height of 264 */
+ if (restrict_height == TRUE && rHeight > 264)
+ {
+ rect.bottom = rect.top + 264;
+ rHeight = 264;
+ }
+
+ /* If the bitmap does NOT fit in the screenshot area */
+ if (x > rWidth - 10 || y > rHeight - 10)
+ {
+ rect.right -= 10;
+ rect.bottom -= 10;
+ rWidth -= 10;
+ rHeight -= 10;
+ bReduce = TRUE;
+ /* Try to scale it properly */
+ /* assumes square pixels, doesn't consider aspect ratio */
+ if (x > y)
+ scale = (double)rWidth / x;
+ else
+ scale = (double)rHeight / y;
+
+ destW = (int)(x * scale);
+ destH = (int)(y * scale);
+
+ /* If it's still too big, scale again */
+ if (destW > rWidth || destH > rHeight)
+ {
+ if (destW > rWidth)
+ scale = (double)rWidth / destW;
+ else
+ scale = (double)rHeight / destH;
+
+ destW = (int)(destW * scale);
+ destH = (int)(destH * scale);
+ }
+ }
+ else
+ {
+ if (GetStretchScreenShotLarger())
+ {
+ rect.right -= 10;
+ rect.bottom -= 10;
+ rWidth -= 10;
+ rHeight -= 10;
+ bReduce = TRUE;
+ // Try to scale it properly
+ // assumes square pixels, doesn't consider aspect ratio
+ if (x < y)
+ scale = (double)rWidth / x;
+ else
+ scale = (double)rHeight / y;
+
+ destW = (int)(x * scale);
+ destH = (int)(y * scale);
+
+ // If it's too big, scale again
+ if (destW > rWidth || destH > rHeight)
+ {
+ if (destW > rWidth)
+ scale = (double)rWidth / destW;
+ else
+ scale = (double)rHeight / destH;
+
+ destW = (int)(destW * scale);
+ destH = (int)(destH * scale);
+ }
+ }
+ else
+ {
+ // Use the bitmaps size if it fits
+ destW = x;
+ destH = y;
+ }
+
+ }
+
+
+ destX = (rWidth - destW) / 2;
+ destY = (rHeight - destH) / 2;
+
+ if (bReduce)
+ {
+ destX += 5;
+ destY += 5;
+ }
+ nBorder = GetScreenshotBorderSize();
+ if( destX > nBorder+1)
+ pRect->left = destX - nBorder;
+ else
+ pRect->left = 2;
+ if( destY > nBorder+1)
+ pRect->top = destY - nBorder;
+ else
+ pRect->top = 2;
+ if( rWidth >= destX + destW + nBorder)
+ pRect->right = destX + destW + nBorder;
+ else
+ pRect->right = rWidth - pRect->left;
+ if( rHeight >= destY + destH + nBorder)
+ pRect->bottom = destY + destH + nBorder;
+ else
+ pRect->bottom = rHeight - pRect->top;
+}
+
+/*
+ Switches to either fullscreen or normal mode, based on the
+ current mode.
+
+ POSSIBLE BUGS:
+ Removing the menu might cause problems later if some
+ function tries to poll info stored in the menu. Don't
+ know if you've done that, but this was the only way I
+ knew to remove the menu dynamically.
+*/
+
+static void SwitchFullScreenMode(void)
+{
+ LONG lMainStyle;
+
+ if (GetRunFullScreen())
+ {
+ // Return to normal
+
+ // Restore the menu
+ SetMenu(hMain, LoadMenu(hInst,MAKEINTRESOURCE(IDR_UI_MENU)));
+
+ // Refresh the checkmarks
+ CheckMenuItem(GetMenu(hMain), ID_VIEW_FOLDERS, GetShowFolderList() ? MF_CHECKED : MF_UNCHECKED);
+ CheckMenuItem(GetMenu(hMain), ID_VIEW_TOOLBARS, GetShowToolBar() ? MF_CHECKED : MF_UNCHECKED);
+ CheckMenuItem(GetMenu(hMain), ID_VIEW_STATUS, GetShowStatusBar() ? MF_CHECKED : MF_UNCHECKED);
+ CheckMenuItem(GetMenu(hMain), ID_VIEW_PAGETAB, GetShowTabCtrl() ? MF_CHECKED : MF_UNCHECKED);
+
+ // Add frame to dialog again
+ lMainStyle = GetWindowLong(hMain, GWL_STYLE);
+ lMainStyle = lMainStyle | WS_BORDER;
+ SetWindowLong(hMain, GWL_STYLE, lMainStyle);
+
+ // Show the window maximized
+ if( GetWindowState() == SW_MAXIMIZE )
+ {
+ ShowWindow(hMain, SW_NORMAL);
+ ShowWindow(hMain, SW_MAXIMIZE);
+ }
+ else
+ ShowWindow(hMain, SW_RESTORE);
+
+ SetRunFullScreen(FALSE);
+ }
+ else
+ {
+ // Set to fullscreen
+
+ // Remove menu
+ SetMenu(hMain,NULL);
+
+ // Frameless dialog (fake fullscreen)
+ lMainStyle = GetWindowLong(hMain, GWL_STYLE);
+ lMainStyle = lMainStyle & (WS_BORDER ^ 0xffffffff);
+ SetWindowLong(hMain, GWL_STYLE, lMainStyle);
+ if( IsMaximized(hMain) )
+ {
+ ShowWindow(hMain, SW_NORMAL);
+ SetWindowState( SW_MAXIMIZE );
+ }
+ else
+ {
+ SetWindowState( SW_NORMAL );
+ }
+
+ ShowWindow(hMain, SW_MAXIMIZE);
+
+ SetRunFullScreen(TRUE);
+ }
+}
+
+/*
+ Checks to see if the mouse has been moved since this func
+ was first called (which is at startup). The reason for
+ storing the startup coordinates of the mouse is that when
+ a window is created it generates WM_MOUSEOVER events, even
+ though the user didn't actually move the mouse. So we need
+ to know when the WM_MOUSEOVER event is user-triggered.
+
+ POSSIBLE BUGS:
+ Gets polled at every WM_MOUSEMOVE so it might cause lag,
+ but there's probably another way to code this that's
+ way better?
+
+*/
+
+BOOL MouseHasBeenMoved(void)
+{
+ static int mouse_x = -1;
+ static int mouse_y = -1;
+ POINT p;
+
+ GetCursorPos(&p);
+
+ if (mouse_x == -1) // First time
+ {
+ mouse_x = p.x;
+ mouse_y = p.y;
+ }
+
+ return (p.x != mouse_x || p.y != mouse_y);
+}
+
+/* End of source file */
diff --git a/docs/release/src/osd/winui/winui.h b/docs/release/src/osd/winui/winui.h
new file mode 100644
index 00000000000..5579d9c3943
--- /dev/null
+++ b/docs/release/src/osd/winui/winui.h
@@ -0,0 +1,110 @@
+// For licensing and usage information, read docs/winui_license.txt
+//****************************************************************************
+
+#ifndef WINUI_H
+#define WINUI_H
+
+#include <commctrl.h>
+#include <commdlg.h>
+#include "emu.h"
+#include "pool.h"
+#include "screenshot.h"
+#include "drivenum.h"
+
+#define MAMENAME "HBMAME"
+#define UI_INI_FILENAME MAMENAME "UI.ini"
+
+#ifdef PTR64
+#define MAMEUINAME MAMENAME "UI64"
+#else
+#define MAMEUINAME MAMENAME "UI32"
+#endif
+
+#define SEARCH_PROMPT ""
+#define SHOW_COLUMN_ROMS
+#define SHOW_COLUMN_SAMPLES
+
+enum
+{
+ UNKNOWN = -1,
+ TAB_PICKER = 0,
+ TAB_DISPLAY,
+ TAB_MISC,
+ NUM_TABS
+};
+
+enum
+{
+ FILETYPE_INPUT_FILES = 1,
+ FILETYPE_SAVESTATE_FILES,
+ FILETYPE_WAVE_FILES,
+ FILETYPE_AVI_FILES,
+ FILETYPE_MNG_FILES,
+ FILETYPE_EFFECT_FILES,
+ FILETYPE_JOYMAP_FILES,
+ FILETYPE_DEBUGSCRIPT_FILES,
+ FILETYPE_CHEAT_FILE,
+ FILETYPE_HISTORY_FILE,
+ FILETYPE_MAMEINFO_FILE
+};
+
+
+typedef struct
+{
+ INT resource;
+ const char *icon_name;
+} ICONDATA;
+
+extern TCHAR last_directory[MAX_PATH];
+
+typedef BOOL (WINAPI *common_file_dialog_proc)(LPOPENFILENAME lpofn);
+BOOL CommonFileDialog(common_file_dialog_proc cfd,char *filename, int filetype);
+
+HWND GetMainWindow(void);
+HWND GetTreeView(void);
+void SetNumOptionFolders(int count);
+void GetRealColumnOrder(int order[]);
+HICON LoadIconFromFile(const char *iconname);
+void UpdateScreenShot(void);
+void ResizePickerControls(HWND hWnd);
+void MamePlayGame(void);
+int FindIconIndex(int nIconResource);
+int FindIconIndexByName(const char *icon_name);
+int GetSelectedPick(void);
+object_pool *GetMameUIMemoryPool(void);
+
+void UpdateListView(void);
+
+// Move The in "The Title (notes)" to "Title, The (notes)"
+char * ModifyThe(const char *str);
+
+// Convert Ampersand so it can display in a static control
+char * ConvertAmpersandString(const char *s);
+
+// globalized for painting tree control
+HBITMAP GetBackgroundBitmap(void);
+HPALETTE GetBackgroundPalette(void);
+MYBITMAPINFO* GetBackgroundInfo(void);
+BOOL GetUseOldControl(void);
+BOOL GetUseXPControl(void);
+
+int GetMinimumScreenShotWindowWidth(void);
+
+// we maintain an array of drivers sorted by name, useful all around
+int GetParentIndex(const game_driver *driver);
+int GetParentRomSetIndex(const game_driver *driver);
+int GetGameNameIndex(const char *name);
+
+// sets text in part of the status bar on the main window
+void SetStatusBarText(int part_index, const char *message);
+void SetStatusBarTextF(int part_index, const char *fmt, ...) ATTR_PRINTF(2,3);
+
+int MameUIMain(HINSTANCE hInstance,
+ LPWSTR lpCmdLine,
+ int nCmdShow);
+
+BOOL MouseHasBeenMoved(void);
+
+const char * GetSearchText(void);
+
+#endif
diff --git a/docs/release/src/version.cpp b/docs/release/src/version.cpp
new file mode 100644
index 00000000000..e114ed4fdda
--- /dev/null
+++ b/docs/release/src/version.cpp
@@ -0,0 +1,22 @@
+// license:BSD-3-Clause
+// copyright-holders:Aaron Giles
+/***************************************************************************
+
+ version.c
+
+ Version string source file for MAME.
+
+***************************************************************************/
+
+#define BARE_BUILD_VERSION "0.185"
+
+extern const char bare_build_version[];
+extern const char build_version[];
+const char bare_build_version[] = BARE_BUILD_VERSION;
+#if defined(GIT_VERSION)
+#define VERSION_TO_STRING(s) XVERSION_TO_STRING(s)
+#define XVERSION_TO_STRING(ver) #ver
+const char build_version[] = BARE_BUILD_VERSION " (" VERSION_TO_STRING(GIT_VERSION) ")";
+#else
+const char build_version[] = BARE_BUILD_VERSION " (" __DATE__")";
+#endif
diff --git a/docs/release/winui_license.txt b/docs/release/winui_license.txt
new file mode 100644
index 00000000000..5fb050e8d92
--- /dev/null
+++ b/docs/release/winui_license.txt
@@ -0,0 +1,71 @@
+This document is best read with Notepad.
+
+The purpose of this document is to state the names of WINUI authors, disclaimers, and licence conditions.
+
+WINUI is a set of codes which add a 'front-end' facility to the MAME emulator (and certain derivatives).
+It is not maintained or supported by MAMEdev, but by the efforts of dedicated individuals.
+The files are normally found in the src/osd/winui folder(s) of a source package.
+
+WINUI was originally written around 1997, and has had contributions from many authors, both known and unknown.
+Due to the lack of historical records, it is unknown who exactly contributed what.
+
+Here is the list of known authors, and the known licence for them:
+
+Michael Soderstrom BSD-3-Clause
+Christopher Kirmse BSD-3-Clause
+MSH (Mike Haaland) BSD-3-Clause
+Captain Pugwash BSD-3-Clause
+Jeff Miller BSD-3-Clause
+Robbbert BSD-3-Clause
+etabeta (Fabio Priuli) BSD-3-Clause
+Bletch (Nathan Woods) BSD-3-Clause
+Mamesick BSD-3-Clause
+
+
+Copyright exists from 1997 to the present day, and beyond. The project is hereby covered by the GPL,
+with the following additional provisos.
+
+1. Original authors may lay claim to their particular works.
+
+2. Original authors may specify a different licence.
+
+3. Redistributions must include this file, and the file BSD3Clause.txt .
+
+
+
+4. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+
+POSSIBILITY OF SUCH DAMAGE.
+
+In other words, we (authors, contributors, repository holders, official websites)
+are not liable or responsible for anything.
+
+5. Usage: WINUI can be modified and used as you see fit, including commercially, however you
+ cannot claim ownership or copyright of the works. See BSD3Clause.txt for more information.
+
+6. If you are unable to comply with these conditions, you must delete any winui code in your
+ possession, along with any binaries that contain winui code, immediately.
+
+Written by Robbbert on 2015-06-03.
+Updated on 2016-03-14.
+
+Please read the MAME license as well.
+
diff --git a/docs/winui_license.txt b/docs/winui_license.txt
new file mode 100644
index 00000000000..5fb050e8d92
--- /dev/null
+++ b/docs/winui_license.txt
@@ -0,0 +1,71 @@
+This document is best read with Notepad.
+
+The purpose of this document is to state the names of WINUI authors, disclaimers, and licence conditions.
+
+WINUI is a set of codes which add a 'front-end' facility to the MAME emulator (and certain derivatives).
+It is not maintained or supported by MAMEdev, but by the efforts of dedicated individuals.
+The files are normally found in the src/osd/winui folder(s) of a source package.
+
+WINUI was originally written around 1997, and has had contributions from many authors, both known and unknown.
+Due to the lack of historical records, it is unknown who exactly contributed what.
+
+Here is the list of known authors, and the known licence for them:
+
+Michael Soderstrom BSD-3-Clause
+Christopher Kirmse BSD-3-Clause
+MSH (Mike Haaland) BSD-3-Clause
+Captain Pugwash BSD-3-Clause
+Jeff Miller BSD-3-Clause
+Robbbert BSD-3-Clause
+etabeta (Fabio Priuli) BSD-3-Clause
+Bletch (Nathan Woods) BSD-3-Clause
+Mamesick BSD-3-Clause
+
+
+Copyright exists from 1997 to the present day, and beyond. The project is hereby covered by the GPL,
+with the following additional provisos.
+
+1. Original authors may lay claim to their particular works.
+
+2. Original authors may specify a different licence.
+
+3. Redistributions must include this file, and the file BSD3Clause.txt .
+
+
+
+4. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+
+POSSIBILITY OF SUCH DAMAGE.
+
+In other words, we (authors, contributors, repository holders, official websites)
+are not liable or responsible for anything.
+
+5. Usage: WINUI can be modified and used as you see fit, including commercially, however you
+ cannot claim ownership or copyright of the works. See BSD3Clause.txt for more information.
+
+6. If you are unable to comply with these conditions, you must delete any winui code in your
+ possession, along with any binaries that contain winui code, immediately.
+
+Written by Robbbert on 2015-06-03.
+Updated on 2016-03-14.
+
+Please read the MAME license as well.
+
diff --git a/hash/msx1_cass.xml b/hash/msx1_cass.xml
index b8be81e6fda..b8be81e6fda 100755..100644
--- a/hash/msx1_cass.xml
+++ b/hash/msx1_cass.xml
diff --git a/hash/timex_dock.xml b/hash/timex_dock.xml
index 08d5b11a705..08d5b11a705 100755..100644
--- a/hash/timex_dock.xml
+++ b/hash/timex_dock.xml
diff --git a/keymaps/km_be_LINUX.map b/keymaps/km_be_LINUX.map
deleted file mode 100644
index 4462771f129..00000000000
--- a/keymaps/km_be_LINUX.map
+++ /dev/null
@@ -1,44 +0,0 @@
-# MAME/MESS keymap for Belgian AZERTY 105-keys keyboard (Linux)
-#
-# Row 1
-#
-ITEM_ID_TILDE SDLK_WORLD_18 0x31 0xb2 ²
-ITEM_ID_1 SDLK_AMPERSAND 0x0a 0x26 &
-ITEM_ID_2 SDLK_WORLD_73 0x0b 0xe9 é
-ITEM_ID_3 SDLK_QUOTEDBL 0x0c 0x22 "
-ITEM_ID_4 SDLK_QUOTE 0x0d 0x27 '
-ITEM_ID_5 SDLK_LEFTPAREN 0x0e 0x28 (
-ITEM_ID_6 SDLK_WORLD_7 0x0f 0xa7 §
-ITEM_ID_7 SDLK_WORLD_72 0x10 0xe8 è
-ITEM_ID_8 SDLK_EXCLAIM 0x11 0x21 !
-ITEM_ID_9 SDLK_WORLD_71 0x12 0xe7 ç
-ITEM_ID_0 SDLK_WORLD_64 0x13 0xe0 à
-ITEM_ID_MINUS SDLK_RIGHTPAREN 0x14 0x29 )
-ITEM_ID_EQUALS SDLK_MINUS 0x15 0x2d -
-#
-# Row 2
-#
-ITEM_ID_Q SDLK_a 0x18 0x61 A
-ITEM_ID_W SDLK_z 0x19 0x7a Z
-ITEM_ID_OPENBRACE SDLK_CARET 0x22 0x5e ^
-ITEM_ID_CLOSEBRACE SDLK_DOLLAR 0x23 0x24 $
-#
-# Row 3
-#
-ITEM_ID_A SDLK_q 0x26 0x71 Q
-ITEM_ID_COLON SDLK_m 0x2f 0x6d M
-ITEM_ID_QUOTE SDLK_WORLD_89 0x30 0xf9 ù
-ITEM_ID_BACKSLASH SDLK_WORLD_21 0x33 0xb5 µ
-#
-# Row 4
-#
-ITEM_ID_BACKSLASH2 SDLK_LESS 0x5e 0x3c <
-ITEM_ID_Z SDLK_w 0x34 0x77 W
-ITEM_ID_M SDLK_COMMA 0x3a 0x2c ,
-ITEM_ID_COMMA SDLK_SEMICOLON 0x3b 0x3b ;
-ITEM_ID_STOP SDLK_COLON 0x3c 0x3a :
-ITEM_ID_SLASH SDLK_EQUALS 0x3d 0x3d =
-#
-# Row 5
-#
-ITEM_ID_RALT SDLK_MODE 0x71 0x00 ALTGR \ No newline at end of file
diff --git a/keymaps/km_br_LINUX.map b/keymaps/km_br_LINUX.map
deleted file mode 100644
index 19ded27bbef..00000000000
--- a/keymaps/km_br_LINUX.map
+++ /dev/null
@@ -1,33 +0,0 @@
-# MAME/MESS keymap for Brazilian QWERTY 107-keys keyboard (Linux)
-#
-# The 107-keys Brazilian keyboard has an extra key used to type "/".
-# Since I don't own such a keyboard, I can't write a proper definition.
-# However, it should be placed in the 4th row, after ITEM_ID_SLASH.
-#
-# SDL can tell the difference between the two COMPOSE keys but assigns them the same label
-# thus both OPENBRACE and QUOTE appear like "´ ~" in the user interface.
-# The following definitions are therefore correct.
-#
-# Row 1
-#
-ITEM_ID_TILDE SDLK_QUOTE 0x31 0x27 '
-#
-# Row 2
-#
-ITEM_ID_OPENBRACE SDLK_COMPOSE 0x22 0x00 ´
-ITEM_ID_CLOSEBRACE SDLK_LEFTBRACKET 0x23 0x00 [
-#
-# Row 3
-#
-ITEM_ID_COLON SDLK_WORLD_71 0x2f 0xe7 Ç
-ITEM_ID_QUOTE SDLK_COMPOSE 0x30 0x00 ~
-ITEM_ID_BACKSLASH SDLK_RIGHTBRACKET 0x33 0x00 ]
-#
-# Row 4
-#
-ITEM_ID_BACKSLASH2 SDLK_LESS 0x5e 0x3c <
-ITEM_ID_SLASH SDLK_SEMICOLON 0x3d 0x3b ;
-#
-# Row 5
-#
-ITEM_ID_RALT SDLK_MODE 0x71 0x00 ALTGR \ No newline at end of file
diff --git a/keymaps/km_ch_LINUX.map b/keymaps/km_ch_LINUX.map
deleted file mode 100644
index 53595faa082..00000000000
--- a/keymaps/km_ch_LINUX.map
+++ /dev/null
@@ -1,29 +0,0 @@
-# MAME/MESS keymap for Swiss QWERTZ 105-keys keyboard (Linux)
-#
-# Row 1
-#
-ITEM_ID_TILDE SDLK_WORLD_7 0x31 0xa7 §
-ITEM_ID_MINUS SDLK_QUOTE 0x14 0x27 '
-ITEM_ID_EQUALS SDLK_CARET 0x15 0x00 ^
-#
-# Row 2
-#
-ITEM_ID_Y SDLK_z 0x1d 0x7a Z
-ITEM_ID_OPENBRACE SDLK_WORLD_92 0x22 0xfc ü
-ITEM_ID_CLOSEBRACE SDLK_COMPOSE 0x23 0x00 ¨
-#
-# Row 3
-#
-ITEM_ID_COLON SDLK_WORLD_86 0x2f 0xf6 ö
-ITEM_ID_QUOTE SDLK_WORLD_68 0x30 0xe4 ä
-ITEM_ID_BACKSLASH SDLK_DOLLAR 0x33 0x24 $
-#
-# Row 4
-#
-ITEM_ID_BACKSLASH2 SDLK_LESS 0x5e 0x3c <
-ITEM_ID_Z SDLK_y 0x34 0x79 Y
-ITEM_ID_SLASH SDLK_MINUS 0x3d 0x2d -
-#
-# Row 5
-#
-ITEM_ID_RALT SDLK_MODE 0x71 0x00 ALTGR \ No newline at end of file
diff --git a/keymaps/km_de_LINUX.map b/keymaps/km_de_LINUX.map
deleted file mode 100644
index 4b8ec55a793..00000000000
--- a/keymaps/km_de_LINUX.map
+++ /dev/null
@@ -1,29 +0,0 @@
-# MAME/MESS keymap for German QWERTZ 105-keys keyboard (Linux)
-#
-# Row 1
-#
-ITEM_ID_TILDE SDLK_CARET 0x31 0x00 ^
-ITEM_ID_MINUS SDLK_WORLD_63 0x14 0xdf ß
-ITEM_ID_EQUALS SDLK_COMPOSE 0x15 0x00 ´
-#
-# Row 2
-#
-ITEM_ID_Y SDLK_z 0x1d 0x7a Z
-ITEM_ID_OPENBRACE SDLK_WORLD_92 0x22 0xfc Ü
-ITEM_ID_CLOSEBRACE SDLK_PLUS 0x23 0x2b +
-#
-# Row 3
-#
-ITEM_ID_COLON SDLK_WORLD_86 0x2f 0xf6 Ö
-ITEM_ID_QUOTE SDLK_WORLD_68 0x30 0xe4 Ä
-ITEM_ID_BACKSLASH SDLK_HASH 0x33 0x23 #
-#
-# Row 4
-#
-ITEM_ID_BACKSLASH2 SDLK_LESS 0x5e 0x3c <
-ITEM_ID_Z SDLK_y 0x34 0x79 Y
-ITEM_ID_SLASH SDLK_MINUS 0x3d 0x2d -
-#
-# Row 5
-#
-ITEM_ID_RALT SDLK_MODE 0x71 0x00 ALTGR \ No newline at end of file
diff --git a/keymaps/km_es_LINUX.map b/keymaps/km_es_LINUX.map
deleted file mode 100644
index 584d791a9d2..00000000000
--- a/keymaps/km_es_LINUX.map
+++ /dev/null
@@ -1,30 +0,0 @@
-# MAME/MESS keymap for Spanish QWERTY 105-keys keyboard (Linux)
-# SDL can tell the difference between the two COMPOSE keys but assigns them the same label
-# thus both OPENBRACE and QUOTE appear like "` ´" in the user interface.
-# The following definitions are therefore correct.
-#
-# Row 1
-#
-ITEM_ID_TILDE SDLK_WORLD_26 0x31 0xba º
-ITEM_ID_MINUS SDLK_QUOTE 0x14 0x27 '
-ITEM_ID_EQUALS SDLK_WORLD_1 0x15 0xa1 ¡
-#
-# Row 2
-#
-ITEM_ID_OPENBRACE SDLK_COMPOSE 0x22 0x00 `
-ITEM_ID_CLOSEBRACE SDLK_PLUS 0x23 0x00 +
-#
-# Row 3
-#
-ITEM_ID_COLON SDLK_WORLD_81 0x2f 0xf1 Ñ
-ITEM_ID_QUOTE SDLK_COMPOSE 0x30 0x00 ´
-ITEM_ID_BACKSLASH SDLK_WORLD_71 0x33 0x00 Ç
-#
-# Row 4
-#
-ITEM_ID_BACKSLASH2 SDLK_LESS 0x5e 0x3c <
-ITEM_ID_SLASH SDLK_MINUS 0x3d 0x2d -
-#
-# Row 5
-#
-ITEM_ID_RALT SDLK_MODE 0x71 0x00 ALTGR \ No newline at end of file
diff --git a/keymaps/km_fr_LINUX.map b/keymaps/km_fr_LINUX.map
deleted file mode 100644
index f33c899b997..00000000000
--- a/keymaps/km_fr_LINUX.map
+++ /dev/null
@@ -1,43 +0,0 @@
-# MAME/MESS keymap for French AZERTY 105-keys keyboard (Linux)
-#
-# Row 1
-#
-ITEM_ID_TILDE SDLK_WORLD_18 0x31 0xb2 ²
-ITEM_ID_1 SDLK_AMPERSAND 0x0a 0x26 &
-ITEM_ID_2 SDLK_WORLD_73 0x0b 0xe9 é
-ITEM_ID_3 SDLK_QUOTEDBL 0x0c 0x22 "
-ITEM_ID_4 SDLK_QUOTE 0x0d 0x27 '
-ITEM_ID_5 SDLK_LEFTPAREN 0x0e 0x28 (
-ITEM_ID_6 SDLK_MINUS 0x0f 0x2d -
-ITEM_ID_7 SDLK_WORLD_72 0x10 0xe8 è
-ITEM_ID_8 SDLK_UNDERSCORE 0x11 0x5f _
-ITEM_ID_9 SDLK_WORLD_71 0x12 0xe7 ç
-ITEM_ID_0 SDLK_WORLD_64 0x13 0xe0 à
-ITEM_ID_MINUS SDLK_RIGHTPAREN 0x14 0x29 )
-#
-# Row 2
-#
-ITEM_ID_Q SDLK_a 0x18 0x61 A
-ITEM_ID_W SDLK_z 0x19 0x7a Z
-ITEM_ID_OPENBRACE SDLK_CARET 0x22 0x00 ^
-ITEM_ID_CLOSEBRACE SDLK_DOLLAR 0x23 0x00 $
-#
-# Row 3
-#
-ITEM_ID_A SDLK_q 0x26 0x51 Q
-ITEM_ID_COLON SDLK_m 0x2f 0x6d M
-ITEM_ID_QUOTE SDLK_WORLD_89 0x30 0xf9 ù
-ITEM_ID_BACKSLASH SDLK_ASTERISK 0x33 0x2a *
-#
-# Row 4
-#
-ITEM_ID_BACKSLASH2 SDLK_LESS 0x5e 0x3c <
-ITEM_ID_Z SDLK_w 0x34 0x77 W
-ITEM_ID_M SDLK_COMMA 0x3a 0x2c ,
-ITEM_ID_COMMA SDLK_SEMICOLON 0x3b 0x3b ;
-ITEM_ID_STOP SDLK_COLON 0x3c 0x3a :
-ITEM_ID_SLASH SDLK_EXCLAIM 0x3d 0x21 !
-#
-# Row 5
-#
-ITEM_ID_RALT SDLK_MODE 0x71 0x00 ALTGR \ No newline at end of file
diff --git a/keymaps/km_fr_OSX.map b/keymaps/km_fr_OSX.map
deleted file mode 100644
index 9a492ca2d3e..00000000000
--- a/keymaps/km_fr_OSX.map
+++ /dev/null
@@ -1,15 +0,0 @@
-# MAME/MESS keymap for French AZERTY keyboard (OSX)
-#
-#
-ITEM_ID_1 SDLK_AMPERSAND 0x12 0x26 &
-ITEM_ID_2 SDLK_WORLD_0 0x13 0xe9 é
-ITEM_ID_3 SDLK_QUOTEDBL 0x14 0x22 "
-ITEM_ID_4 SDLK_QUOTE 0x15 0x27 '
-ITEM_ID_5 SDLK_LEFTPAREN 0x17 0x28 (
-ITEM_ID_6 SDLK_WORLD_1 0x16 0xa7 §
-ITEM_ID_7 SDLK_WORLD_3 0x1a 0xe8 è
-ITEM_ID_8 SDLK_EXCLAIM 0x1c 0x21 !
-ITEM_ID_9 SDLK_WORLD_2 0x19 0xe7 ç
-ITEM_ID_0 SDLK_WORLD_4 0x1d 0xe0 à
-ITEM_ID_MINUS SDLK_RIGHTPAREN 0x1b 0x29 )
-ITEM_ID_EQUALS SDLK_MINUS 0x18 0x2d - \ No newline at end of file
diff --git a/keymaps/km_gb_LINUX.map b/keymaps/km_gb_LINUX.map
deleted file mode 100644
index d4fa500cbce..00000000000
--- a/keymaps/km_gb_LINUX.map
+++ /dev/null
@@ -1,20 +0,0 @@
-# MAME/MESS keymap for British QWERTY 105-keys keyboard (Linux)
-#
-# Row 1
-#
-ITEM_ID_TILDE SDLK_BACKQUOTE 0x31 0x60 `
-#
-# Row 2
-#
-#
-# Row 3
-#
-ITEM_ID_BACKSLASH SDLK_HASH 0x33 0x23 #
-#
-# Row 4
-#
-ITEM_ID_BACKSLASH2 SDLK_BACKSLASH 0x5e 0x5c \
-#
-# Row 5
-#
-ITEM_ID_RALT SDLK_MODE 0x71 0x00 ALTGR \ No newline at end of file
diff --git a/keymaps/km_it_LINUX.map b/keymaps/km_it_LINUX.map
deleted file mode 100644
index b6fdfe329a2..00000000000
--- a/keymaps/km_it_LINUX.map
+++ /dev/null
@@ -1,27 +0,0 @@
-# MAME/MESS keymap for Italian QWERTY 105-keys keyboard (Linux)
-#
-# Row 1
-#
-ITEM_ID_TILDE SDLK_BACKSLASH 0x31 0x5c \
-ITEM_ID_MINUS SDLK_QUOTE 0x14 0x27 '
-ITEM_ID_EQUALS SDLK_WORLD_76 0x15 0xec ì
-#
-# Row 2
-#
-ITEM_ID_OPENBRACE SDLK_WORLD_72 0x22 0xe8 è
-ITEM_ID_CLOSEBRACE SDLK_PLUS 0x23 0x2b +
-#
-# Row 3
-#
-ITEM_ID_COLON SDLK_WORLD_82 0x2f 0xf2 ò
-ITEM_ID_QUOTE SDLK_WORLD_64 0x30 0xe0 à
-ITEM_ID_BACKSLASH SDLK_WORLD_89 0x33 0xf9 ù
-#
-# Row 4
-#
-ITEM_ID_BACKSLASH2 SDLK_LESS 0x5e 0x3c <
-ITEM_ID_SLASH SDLK_MINUS 0x3d 0x2d -
-#
-# Row 5
-#
-ITEM_ID_RALT SDLK_MODE 0x71 0x00 ALTGR \ No newline at end of file
diff --git a/keymaps/km_pt_LINUX.map b/keymaps/km_pt_LINUX.map
deleted file mode 100644
index 3767058e2de..00000000000
--- a/keymaps/km_pt_LINUX.map
+++ /dev/null
@@ -1,30 +0,0 @@
-# MAME/MESS keymap for Portuguese QWERTY 105-keys keyboard (Linux)
-# SDL can tell the difference between the two COMPOSE keys but assigns them the same label
-# thus both CLOSEBRACE and BACKSLASH appear like "´ ~" in the user interface.
-# The following definitions are therefore correct.
-#
-# Row 1
-#
-ITEM_ID_TILDE SDLK_BACKSLASH 0x31 0x5c \
-ITEM_ID_MINUS SDLK_QUOTE 0x14 0x27 '
-ITEM_ID_EQUALS SDLK_WORLD_11 0x15 0xab «
-#
-# Row 2
-#
-ITEM_ID_OPENBRACE SDLK_PLUS 0x22 0x2b +
-ITEM_ID_CLOSEBRACE SDLK_COMPOSE 0x23 0x00 ´
-#
-# Row 3
-#
-ITEM_ID_COLON SDLK_WORLD_71 0x2f 0xe7 Ç
-ITEM_ID_QUOTE SDLK_WORLD_26 0x30 0xba º
-ITEM_ID_BACKSLASH SDLK_COMPOSE 0x33 0x00 ~
-#
-# Row 4
-#
-ITEM_ID_BACKSLASH2 SDLK_LESS 0x5e 0x3c <
-ITEM_ID_SLASH SDLK_MINUS 0x3d 0x2d -
-#
-# Row 5
-#
-ITEM_ID_RALT SDLK_MODE 0x71 0x00 ALTGR \ No newline at end of file
diff --git a/keymaps/km_se_LINUX.map b/keymaps/km_se_LINUX.map
deleted file mode 100644
index 7cc737baf21..00000000000
--- a/keymaps/km_se_LINUX.map
+++ /dev/null
@@ -1,23 +0,0 @@
-# MAME/MESS keymap for Swedish/Finnish QWERTY 105-keys keyboard (Linux)
-#
-# Row 1
-#
-ITEM_ID_TILDE SDLK_LESS 0x32 0x3c <
-ITEM_ID_MINUS SDLK_PLUS 0x1b 0x2b +
-ITEM_ID_EQUALS SDLK_WORLD_1 0x18 0x00
-#
-# Row 2
-#
-ITEM_ID_OPENBRACE SDLK_WORLD_3 0x21 0xe5 å
-ITEM_ID_CLOSEBRACE SDLK_WORLD_2 0x1e 0x00
-#
-# Row 3
-#
-ITEM_ID_COLON SDLK_WORLD_5 0x29 0xf6 ö
-ITEM_ID_QUOTE SDLK_WORLD_4 0x27 0xe4 ä
-ITEM_ID_BACKSLASH2 SDLK_QUOTE 0x2a 0x27 '
-#
-# Row 4
-#
-ITEM_ID_BACKSLASH SDLK_WORLD_0 0x0a 0xa7 §
-ITEM_ID_SLASH SDLK_MINUS 0x2c 0x2d -
diff --git a/keymaps/km_se_OSX.map b/keymaps/km_se_OSX.map
deleted file mode 100644
index 36d629fb97c..00000000000
--- a/keymaps/km_se_OSX.map
+++ /dev/null
@@ -1,23 +0,0 @@
-# MAME/MESS keymap for Swedish/Finnish QWERTY compact keyboard (OSX)
-#
-# Row 1
-#
-ITEM_ID_TILDE SDLK_WORLD_0 0x0a 0xa7 §
-ITEM_ID_MINUS SDLK_PLUS 0x1b 0x2b +
-ITEM_ID_EQUALS SDLK_WORLD_1 0x18 0x00
-#
-# Row 2
-#
-ITEM_ID_OPENBRACE SDLK_WORLD_3 0x21 0xe5 å
-ITEM_ID_CLOSEBRACE SDLK_WORLD_2 0x1e 0x00
-#
-# Row 3
-#
-ITEM_ID_COLON SDLK_WORLD_5 0x29 0xf6 ö
-ITEM_ID_QUOTE SDLK_WORLD_4 0x27 0xe4 ä
-ITEM_ID_BACKSLASH2 SDLK_QUOTE 0x2a 0x27 '
-#
-# Row 4
-#
-ITEM_ID_BACKSLASH SDLK_LESS 0x32 0x3c <
-ITEM_ID_SLASH SDLK_MINUS 0x2c 0x2d -
diff --git a/scripts/build/verinfo.py b/scripts/build/verinfo.py
index 51bf4f25d63..3437288b447 100644
--- a/scripts/build/verinfo.py
+++ b/scripts/build/verinfo.py
@@ -85,6 +85,8 @@ if dstfile is not None:
else:
fp = sys.stdout
+legal_copyright = "Copyright Nicola Salmoria and the MAME team"
+
if build == "mess":
# MESS
author = "MESS Team"
@@ -95,6 +97,17 @@ if build == "mess":
original_filename = "MESS"
product_name = "MESS"
bundle_identifier = "org.mamedev.mess"
+elif build == "hbmame":
+ # HBMAME
+ author = "Robbbert and the MAME team"
+ legal_copyright = author
+ comments = "Homebrew MAME"
+ company_name = "MAME Team"
+ file_description = "HBMAME"
+ internal_name = "HBMAME"
+ original_filename = "HBMAME"
+ product_name = "HBMAME"
+ bundle_identifier = "org.mamedev.hbmame"
else:
# MAME
author = "Nicola Salmoria and the MAME Team"
@@ -106,8 +119,6 @@ else:
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))
diff --git a/scripts/resources/windows/hbmame/hbmame.ico b/scripts/resources/windows/hbmame/hbmame.ico
new file mode 100644
index 00000000000..845ec9aedd7
--- /dev/null
+++ b/scripts/resources/windows/hbmame/hbmame.ico
Binary files differ
diff --git a/scripts/resources/windows/hbmame/hbmame.man b/scripts/resources/windows/hbmame/hbmame.man
new file mode 100644
index 00000000000..45d07d3f853
--- /dev/null
+++ b/scripts/resources/windows/hbmame/hbmame.man
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+ <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
+ <assemblyIdentity version="1.0.0.0" processorArchitecture="*" name="HBMAME" type="win32" />
+ <description>Homebrew MAME</description>
+ <dependency>
+ <dependentAssembly>
+ <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" publicKeyToken="6595b64144ccf1df" language="*" processorArchitecture="*"/>
+ </dependentAssembly>
+ </dependency>
+ <asmv3:application>
+ <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
+ <dpiAware>true</dpiAware>
+ </asmv3:windowsSettings>
+ </asmv3:application>
+</assembly>
diff --git a/scripts/resources/windows/hbmame/hbmame.rc b/scripts/resources/windows/hbmame/hbmame.rc
new file mode 100644
index 00000000000..33da7f1d685
--- /dev/null
+++ b/scripts/resources/windows/hbmame/hbmame.rc
@@ -0,0 +1,14 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+//============================================================
+//
+// mame.rc - Minimal resource file for Win32 MAME
+//
+//============================================================
+
+#include <windows.h>
+#include "hbmamevers.rc"
+
+1 24 MOVEABLE PURE "hbmame.man"
+
+2 ICON DISCARDABLE "hbmame.ico"
diff --git a/scripts/resources/windows/mame/mame.rc b/scripts/resources/windows/mame/mame.rc
index 8156b424c64..deceb068193 100644
--- a/scripts/resources/windows/mame/mame.rc
+++ b/scripts/resources/windows/mame/mame.rc
@@ -7,7 +7,7 @@
//============================================================
#include <windows.h>
-#include "mamevers.rc"
+//#include "mamevers.rc"
1 24 MOVEABLE PURE "mame.man"
diff --git a/scripts/src/machine.lua b/scripts/src/machine.lua
index fc1fa11d0fa..a88377fceec 100644
--- a/scripts/src/machine.lua
+++ b/scripts/src/machine.lua
@@ -12,55 +12,55 @@
files {
MAME_DIR .. "src/devices/machine/bcreader.cpp",
MAME_DIR .. "src/devices/machine/bcreader.h",
- MAME_DIR .. "src/devices/machine/buffer.cpp",
- MAME_DIR .. "src/devices/machine/buffer.h",
+-- MAME_DIR .. "src/devices/machine/buffer.cpp",
+-- MAME_DIR .. "src/devices/machine/buffer.h",
MAME_DIR .. "src/devices/machine/clock.cpp",
MAME_DIR .. "src/devices/machine/clock.h",
- MAME_DIR .. "src/devices/machine/keyboard.cpp",
- MAME_DIR .. "src/devices/machine/keyboard.h",
- MAME_DIR .. "src/devices/machine/keyboard.ipp",
+-- MAME_DIR .. "src/devices/machine/keyboard.cpp",
+-- MAME_DIR .. "src/devices/machine/keyboard.h",
+-- MAME_DIR .. "src/devices/machine/keyboard.ipp",
MAME_DIR .. "src/devices/machine/laserdsc.cpp",
MAME_DIR .. "src/devices/machine/laserdsc.h",
- MAME_DIR .. "src/devices/machine/latch.cpp",
- MAME_DIR .. "src/devices/machine/latch.h",
+-- MAME_DIR .. "src/devices/machine/latch.cpp",
+-- MAME_DIR .. "src/devices/machine/latch.h",
MAME_DIR .. "src/devices/machine/nvram.cpp",
MAME_DIR .. "src/devices/machine/nvram.h",
MAME_DIR .. "src/devices/machine/ram.cpp",
MAME_DIR .. "src/devices/machine/ram.h",
MAME_DIR .. "src/devices/machine/legscsi.cpp",
MAME_DIR .. "src/devices/machine/legscsi.h",
- MAME_DIR .. "src/devices/machine/sdlc.cpp",
- MAME_DIR .. "src/devices/machine/sdlc.h",
- MAME_DIR .. "src/devices/machine/terminal.cpp",
- MAME_DIR .. "src/devices/machine/terminal.h",
+-- MAME_DIR .. "src/devices/machine/sdlc.cpp",
+-- MAME_DIR .. "src/devices/machine/sdlc.h",
+-- MAME_DIR .. "src/devices/machine/terminal.cpp",
+-- MAME_DIR .. "src/devices/machine/terminal.h",
MAME_DIR .. "src/devices/machine/timer.cpp",
MAME_DIR .. "src/devices/machine/timer.h",
}
files {
- MAME_DIR .. "src/devices/imagedev/bitbngr.cpp",
- MAME_DIR .. "src/devices/imagedev/bitbngr.h",
+-- MAME_DIR .. "src/devices/imagedev/bitbngr.cpp",
+-- MAME_DIR .. "src/devices/imagedev/bitbngr.h",
MAME_DIR .. "src/devices/imagedev/cassette.cpp",
MAME_DIR .. "src/devices/imagedev/cassette.h",
MAME_DIR .. "src/devices/imagedev/chd_cd.cpp",
MAME_DIR .. "src/devices/imagedev/chd_cd.h",
- MAME_DIR .. "src/devices/imagedev/diablo.cpp",
- MAME_DIR .. "src/devices/imagedev/diablo.h",
+-- MAME_DIR .. "src/devices/imagedev/diablo.cpp",
+-- MAME_DIR .. "src/devices/imagedev/diablo.h",
MAME_DIR .. "src/devices/imagedev/flopdrv.cpp",
MAME_DIR .. "src/devices/imagedev/flopdrv.h",
MAME_DIR .. "src/devices/imagedev/floppy.cpp",
MAME_DIR .. "src/devices/imagedev/floppy.h",
MAME_DIR .. "src/devices/imagedev/harddriv.cpp",
MAME_DIR .. "src/devices/imagedev/harddriv.h",
- MAME_DIR .. "src/devices/imagedev/mfmhd.cpp",
- MAME_DIR .. "src/devices/imagedev/mfmhd.h",
- MAME_DIR .. "src/devices/imagedev/midiin.cpp",
- MAME_DIR .. "src/devices/imagedev/midiin.h",
- MAME_DIR .. "src/devices/imagedev/midiout.cpp",
- MAME_DIR .. "src/devices/imagedev/midiout.h",
- MAME_DIR .. "src/devices/imagedev/printer.cpp",
- MAME_DIR .. "src/devices/imagedev/printer.h",
- MAME_DIR .. "src/devices/imagedev/snapquik.cpp",
- MAME_DIR .. "src/devices/imagedev/snapquik.h",
+-- MAME_DIR .. "src/devices/imagedev/mfmhd.cpp",
+-- MAME_DIR .. "src/devices/imagedev/mfmhd.h",
+-- MAME_DIR .. "src/devices/imagedev/midiin.cpp",
+-- MAME_DIR .. "src/devices/imagedev/midiin.h",
+-- MAME_DIR .. "src/devices/imagedev/midiout.cpp",
+-- MAME_DIR .. "src/devices/imagedev/midiout.h",
+-- MAME_DIR .. "src/devices/imagedev/printer.cpp",
+-- MAME_DIR .. "src/devices/imagedev/printer.h",
+-- MAME_DIR .. "src/devices/imagedev/snapquik.cpp",
+-- MAME_DIR .. "src/devices/imagedev/snapquik.h",
}
---------------------------------------------------
--
diff --git a/scripts/src/main.lua b/scripts/src/main.lua
index a4bb6d3eab6..9228e0a312a 100644
--- a/scripts/src/main.lua
+++ b/scripts/src/main.lua
@@ -365,7 +365,7 @@ if (STANDALONE~=true) then
end
files {
mainfile,
- GEN_DIR .. "version.cpp",
+ MAME_DIR .. "src/version.cpp",
GEN_DIR .. _target .. "/" .. _subtarget .."/drivlist.cpp",
}
@@ -408,7 +408,8 @@ if (STANDALONE~=true) then
configuration { "mingw*" }
custombuildtask {
- { GEN_DIR .. "version.cpp" , GEN_DIR .. "resource/" .. rctarget .. "vers.rc", { MAME_DIR .. "scripts/build/verinfo.py" }, {"@echo Emitting " .. rctarget .. "vers.rc" .. "...", PYTHON .. " $(1) -r -b " .. rctarget .. " $(<) > $(@)" }},
+-- { GEN_DIR .. "version.cpp" , GEN_DIR .. "resource/" .. rctarget .. "vers.rc", { MAME_DIR .. "scripts/build/verinfo.py" }, {"@echo Emitting " .. rctarget .. "vers.rc" .. "...", PYTHON .. " $(1) -r -b " .. rctarget .. " $(<) > $(@)" }},
+ { MAME_DIR .. "src/version.cpp" , GEN_DIR .. "resource/" .. rctarget .. "vers.rc", { MAME_DIR .. "scripts/build/verinfo.py" }, {"@echo Emitting " .. rctarget .. "vers.rc" .. "...", PYTHON .. " $(1) -r -b " .. rctarget .. " $(<) > $(@)" }},
}
configuration { "vs*" }
diff --git a/scripts/src/osd/newui.lua b/scripts/src/osd/newui.lua
new file mode 100644
index 00000000000..3caa3a83d0d
--- /dev/null
+++ b/scripts/src/osd/newui.lua
@@ -0,0 +1,273 @@
+-- license:BSD-3-Clause
+-- copyright-holders:Robbbert
+
+---------------------------------------------------------------------------
+--
+-- newui.lua
+--
+-- Rules for the building for Windows
+--
+---------------------------------------------------------------------------
+
+dofile("modules.lua")
+
+premake.make.linkoptions_after = false;
+
+function maintargetosdoptions(_target,_subtarget)
+ osdmodulestargetconf()
+
+ configuration { "mingw*" }
+ links {
+ "mingw32",
+ }
+
+ configuration { }
+
+ if _OPTIONS["DIRECTINPUT"] == "8" then
+ links {
+ "dinput8",
+ }
+ else
+ links {
+ "dinput",
+ }
+ end
+
+ links {
+ "comctl32",
+ "comdlg32",
+ "psapi",
+ "ole32",
+ }
+
+-- needs same resources as messui, because dropdown menus are in mameui.rc
+ override_resources = true;
+ rctarget = _subtarget;
+ local rcfile = MAME_DIR .. "src/osd/winui/" .. _subtarget .. ".rc"
+ local uifile = MAME_DIR .. "src/osd/winui/" .. _subtarget .. "ui.rc"
+
+ if not os.isfile(rcfile) then
+ print(string.format("***** %s not found *****",rcfile))
+ os.exit();
+ end
+
+ if not os.isfile(uifile) then
+ print(string.format("***** %s not found *****",uifile))
+ os.exit();
+ end
+
+ files {
+ rcfile,
+ }
+ dependency {
+ { "$(OBJDIR)/".._subtarget..".res" , GEN_DIR .. "/resource/".._subtarget.."vers.rc", true },
+ }
+end
+
+
+newoption {
+ trigger = "DIRECTINPUT",
+ description = "Minimum DirectInput version to support",
+ allowed = {
+ { "7", "Support DirectInput 7 or later" },
+ { "8", "Support DirectInput 8 or later" },
+ },
+}
+
+if not _OPTIONS["DIRECTINPUT"] then
+ _OPTIONS["DIRECTINPUT"] = "8"
+end
+
+
+project ("qtdbg_" .. _OPTIONS["osd"])
+ uuid (os.uuid("qtdbg_" .. _OPTIONS["osd"]))
+ kind (LIBTYPE)
+
+ dofile("windows_cfg.lua")
+ includedirs {
+ MAME_DIR .. "src/emu",
+ MAME_DIR .. "src/devices", -- accessing imagedev from debugger
+ MAME_DIR .. "src/osd",
+ MAME_DIR .. "src/lib",
+ MAME_DIR .. "src/lib/util",
+ MAME_DIR .. "src/osd/modules/render",
+ MAME_DIR .. "3rdparty",
+ }
+ qtdebuggerbuild()
+
+project ("osd_" .. _OPTIONS["osd"])
+ uuid (os.uuid("osd_" .. _OPTIONS["osd"]))
+ kind "StaticLib"
+
+ dofile("winui_cfg.lua")
+ osdmodulesbuild()
+
+ defines {
+ "DIRECT3D_VERSION=0x0900",
+ }
+
+ if _OPTIONS["DIRECTINPUT"] == "8" then
+ defines {
+ "DIRECTINPUT_VERSION=0x0800",
+ }
+ else
+ defines {
+ "DIRECTINPUT_VERSION=0x0700",
+ }
+ end
+
+ includedirs {
+ MAME_DIR .. "src/emu",
+ MAME_DIR .. "src/devices",
+ MAME_DIR .. "src/osd",
+ MAME_DIR .. "src/lib",
+ MAME_DIR .. "src/lib/util",
+ MAME_DIR .. "src/osd/modules/file",
+ MAME_DIR .. "src/osd/modules/render",
+ MAME_DIR .. "3rdparty",
+ MAME_DIR .. "src/frontend/mame",
+ MAME_DIR .. "src/osd/windows",
+ }
+
+ files {
+ MAME_DIR .. "src/osd/modules/render/d3d/d3dintf.h",
+ MAME_DIR .. "src/osd/modules/render/d3d/d3dhlsl.cpp",
+ MAME_DIR .. "src/osd/modules/render/d3d/d3dcomm.h",
+ MAME_DIR .. "src/osd/modules/render/d3d/d3dhlsl.h",
+ MAME_DIR .. "src/osd/modules/render/drawd3d.cpp",
+ MAME_DIR .. "src/osd/modules/render/drawd3d.h",
+ MAME_DIR .. "src/osd/modules/render/drawgdi.cpp",
+ MAME_DIR .. "src/osd/modules/render/drawgdi.h",
+ MAME_DIR .. "src/osd/modules/render/drawnone.cpp",
+ MAME_DIR .. "src/osd/modules/render/drawnone.h",
+ MAME_DIR .. "src/osd/windows/video.cpp",
+ MAME_DIR .. "src/osd/windows/video.h",
+ MAME_DIR .. "src/osd/windows/window.cpp",
+ MAME_DIR .. "src/osd/windows/window.h",
+ MAME_DIR .. "src/osd/modules/osdwindow.cpp",
+ MAME_DIR .. "src/osd/modules/osdwindow.h",
+ MAME_DIR .. "src/osd/windows/winmain.cpp",
+ MAME_DIR .. "src/osd/windows/winmain.h",
+ MAME_DIR .. "src/osd/osdepend.h",
+ MAME_DIR .. "src/osd/winui/newui.cpp",
+ MAME_DIR .. "src/osd/windows/winmain.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/consolewininfo.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/consolewininfo.h",
+ MAME_DIR .. "src/osd/modules/debugger/win/debugbaseinfo.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/debugbaseinfo.h",
+ MAME_DIR .. "src/osd/modules/debugger/win/debugviewinfo.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/debugviewinfo.h",
+ MAME_DIR .. "src/osd/modules/debugger/win/debugwininfo.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/debugwininfo.h",
+ MAME_DIR .. "src/osd/modules/debugger/win/disasmbasewininfo.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/disasmbasewininfo.h",
+ MAME_DIR .. "src/osd/modules/debugger/win/disasmviewinfo.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/disasmviewinfo.h",
+ MAME_DIR .. "src/osd/modules/debugger/win/disasmwininfo.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/disasmwininfo.h",
+ MAME_DIR .. "src/osd/modules/debugger/win/editwininfo.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/editwininfo.h",
+ MAME_DIR .. "src/osd/modules/debugger/win/logviewinfo.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/logviewinfo.h",
+ MAME_DIR .. "src/osd/modules/debugger/win/logwininfo.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/logwininfo.h",
+ MAME_DIR .. "src/osd/modules/debugger/win/memoryviewinfo.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/memoryviewinfo.h",
+ MAME_DIR .. "src/osd/modules/debugger/win/memorywininfo.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/memorywininfo.h",
+ MAME_DIR .. "src/osd/modules/debugger/win/pointswininfo.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/pointswininfo.h",
+ MAME_DIR .. "src/osd/modules/debugger/win/uimetrics.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/uimetrics.h",
+ MAME_DIR .. "src/osd/modules/debugger/win/debugwin.h",
+ }
+
+
+project ("ocore_" .. _OPTIONS["osd"])
+ uuid (os.uuid("ocore_" .. _OPTIONS["osd"]))
+ kind "StaticLib"
+
+ options {
+ "ForceCPP",
+ }
+ removeflags {
+ "SingleOutputDir",
+ }
+
+ dofile("windows_cfg.lua")
+
+ includedirs {
+ MAME_DIR .. "3rdparty",
+ MAME_DIR .. "src/emu",
+ MAME_DIR .. "src/osd",
+ MAME_DIR .. "src/osd/modules/file",
+ MAME_DIR .. "src/lib",
+ MAME_DIR .. "src/lib/util",
+ }
+
+ BASE_TARGETOS = "win32"
+ SDLOS_TARGETOS = "win32"
+ SYNC_IMPLEMENTATION = "windows"
+
+ includedirs {
+ MAME_DIR .. "src/osd/windows",
+ MAME_DIR .. "src/lib/winpcap",
+ }
+
+ files {
+ MAME_DIR .. "src/osd/eigccppc.h",
+ MAME_DIR .. "src/osd/eigccx86.h",
+ MAME_DIR .. "src/osd/eivc.h",
+ MAME_DIR .. "src/osd/eivcx86.h",
+ MAME_DIR .. "src/osd/eminline.h",
+ MAME_DIR .. "src/osd/osdcomm.h",
+ MAME_DIR .. "src/osd/osdcore.cpp",
+ MAME_DIR .. "src/osd/osdcore.h",
+ MAME_DIR .. "src/osd/strconv.cpp",
+ MAME_DIR .. "src/osd/strconv.h",
+ MAME_DIR .. "src/osd/windows/main.cpp",
+ MAME_DIR .. "src/osd/osdsync.cpp",
+ MAME_DIR .. "src/osd/osdsync.h",
+ MAME_DIR .. "src/osd/windows/winutf8.cpp",
+ MAME_DIR .. "src/osd/windows/winutf8.h",
+ MAME_DIR .. "src/osd/windows/winutil.cpp",
+ MAME_DIR .. "src/osd/windows/winutil.h",
+ MAME_DIR .. "src/osd/modules/osdmodule.cpp",
+ MAME_DIR .. "src/osd/modules/osdmodule.h",
+ MAME_DIR .. "src/osd/modules/file/windir.cpp",
+ MAME_DIR .. "src/osd/modules/file/winfile.cpp",
+ MAME_DIR .. "src/osd/modules/file/winfile.h",
+ MAME_DIR .. "src/osd/modules/file/winptty.cpp",
+ MAME_DIR .. "src/osd/modules/file/winsocket.cpp",
+ MAME_DIR .. "src/osd/modules/lib/osdlib_win32.cpp",
+ }
+
+
+
+--------------------------------------------------
+-- ledutil
+--------------------------------------------------
+
+if _OPTIONS["with-tools"] then
+ project("ledutil")
+ uuid ("061293ca-7290-44ac-b2b5-5913ae8dc9c0")
+ kind "ConsoleApp"
+
+ options {
+ "ForceCPP",
+ }
+
+ targetdir(MAME_DIR)
+
+ links {
+ "ocore_" .. _OPTIONS["osd"],
+ }
+
+ includedirs {
+ MAME_DIR .. "src/osd",
+ }
+
+ files {
+ MAME_DIR .. "src/osd/windows/ledutil.cpp",
+ }
+end
diff --git a/scripts/src/osd/winui.lua b/scripts/src/osd/winui.lua
new file mode 100644
index 00000000000..fbb213634bf
--- /dev/null
+++ b/scripts/src/osd/winui.lua
@@ -0,0 +1,320 @@
+-- license:BSD-3-Clause
+-- copyright-holders:Robbbert
+
+---------------------------------------------------------------------------
+--
+-- winui.lua
+--
+-- Rules for the building for Windows
+--
+---------------------------------------------------------------------------
+
+dofile("modules.lua")
+
+premake.make.linkoptions_after = false;
+
+function maintargetosdoptions(_target,_subtarget)
+ kind "WindowedApp"
+
+ osdmodulestargetconf()
+
+ configuration { "mingw*-gcc" }
+ linkoptions {
+ "-municode",
+ "-lmingw32",
+ "-Wl,--allow-multiple-definition",
+ }
+
+ configuration { "x64", "Release" }
+ targetsuffix "ui64"
+
+ configuration { "x64", "Debug" }
+ targetsuffix "ui64d"
+
+ configuration { "x32", "Release" }
+ targetsuffix "ui"
+
+ configuration { "x32", "Debug" }
+ targetsuffix "uid"
+
+ configuration { "Native", "Release" }
+ targetsuffix "ui"
+
+ configuration { "Native", "Debug" }
+ targetsuffix "uid"
+
+ configuration { }
+
+ if _OPTIONS["DIRECTINPUT"] == "8" then
+ links {
+ "dinput8",
+ }
+ else
+ links {
+ "dinput",
+ }
+ end
+
+ links {
+ "comctl32",
+ "comdlg32",
+ "psapi",
+ "ole32",
+ }
+
+-- Local file gives correct icon in mame instance inside of mameui
+-- Local file must #include mameui.rc
+ override_resources = true;
+ rctarget = _target;
+ local rcfile = MAME_DIR .. "src/osd/winui/" .. _target .. ".rc"
+ local uifile = MAME_DIR .. "src/osd/winui/" .. _target .. "ui.rc"
+
+ if not os.isfile(rcfile) then
+ print(string.format("***** %s not found *****",rcfile))
+ os.exit();
+ end
+
+ if not os.isfile(uifile) then
+ print(string.format("***** %s not found *****",uifile))
+ os.exit();
+ end
+
+ files {
+ rcfile,
+ }
+ dependency {
+ { "$(OBJDIR)/".._target ..".res" , GEN_DIR .. "/resource/" .. _target .. "vers.rc", true },
+ }
+end
+
+
+newoption {
+ trigger = "DIRECTINPUT",
+ description = "Minimum DirectInput version to support",
+ allowed = {
+ { "7", "Support DirectInput 7 or later" },
+ { "8", "Support DirectInput 8 or later" },
+ },
+}
+
+if not _OPTIONS["DIRECTINPUT"] then
+ _OPTIONS["DIRECTINPUT"] = "8"
+end
+
+
+project ("qtdbg_" .. _OPTIONS["osd"])
+ uuid (os.uuid("qtdbg_" .. _OPTIONS["osd"]))
+ kind (LIBTYPE)
+
+ dofile("winui_cfg.lua")
+ includedirs {
+ MAME_DIR .. "src/emu",
+ MAME_DIR .. "src/devices", -- accessing imagedev from debugger
+ MAME_DIR .. "src/osd",
+ MAME_DIR .. "src/lib",
+ MAME_DIR .. "src/lib/util",
+ MAME_DIR .. "src/osd/modules/render",
+ MAME_DIR .. "3rdparty",
+ }
+ qtdebuggerbuild()
+
+project ("osd_" .. _OPTIONS["osd"])
+ uuid (os.uuid("osd_" .. _OPTIONS["osd"]))
+ kind "StaticLib"
+
+ dofile("winui_cfg.lua")
+ osdmodulesbuild()
+
+ defines {
+ "DIRECT3D_VERSION=0x0900",
+ }
+
+ if _OPTIONS["DIRECTINPUT"] == "8" then
+ defines {
+ "DIRECTINPUT_VERSION=0x0800",
+ }
+ else
+ defines {
+ "DIRECTINPUT_VERSION=0x0700",
+ }
+ end
+
+ includedirs {
+ MAME_DIR .. "src/emu",
+ MAME_DIR .. "src/devices",
+ MAME_DIR .. "src/osd",
+ MAME_DIR .. "src/lib",
+ MAME_DIR .. "src/lib/util",
+ MAME_DIR .. "src/osd/modules/file",
+ MAME_DIR .. "src/osd/modules/render",
+ MAME_DIR .. "3rdparty",
+ MAME_DIR .. "src/frontend/mame",
+ MAME_DIR .. "src/osd/windows",
+ }
+
+ files {
+ MAME_DIR .. "src/osd/modules/render/d3d/d3dintf.h",
+ MAME_DIR .. "src/osd/modules/render/d3d/d3dhlsl.cpp",
+ MAME_DIR .. "src/osd/modules/render/d3d/d3dcomm.h",
+ MAME_DIR .. "src/osd/modules/render/d3d/d3dhlsl.h",
+ MAME_DIR .. "src/osd/modules/render/drawd3d.cpp",
+ MAME_DIR .. "src/osd/modules/render/drawd3d.h",
+ MAME_DIR .. "src/osd/modules/render/drawgdi.cpp",
+ MAME_DIR .. "src/osd/modules/render/drawgdi.h",
+ MAME_DIR .. "src/osd/modules/render/drawnone.cpp",
+ MAME_DIR .. "src/osd/modules/render/drawnone.h",
+ MAME_DIR .. "src/osd/windows/video.cpp",
+ MAME_DIR .. "src/osd/windows/video.h",
+ MAME_DIR .. "src/osd/windows/window.cpp",
+ MAME_DIR .. "src/osd/windows/window.h",
+ MAME_DIR .. "src/osd/modules/osdwindow.cpp",
+ MAME_DIR .. "src/osd/modules/osdwindow.h",
+ MAME_DIR .. "src/osd/windows/winmain.cpp",
+ MAME_DIR .. "src/osd/windows/winmain.h",
+ MAME_DIR .. "src/osd/osdepend.h",
+ MAME_DIR .. "src/osd/windows/winmenu.cpp",
+-- MAME_DIR .. "src/osd/winui/newui.cpp",
+ MAME_DIR .. "src/osd/windows/winmain.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/consolewininfo.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/consolewininfo.h",
+ MAME_DIR .. "src/osd/modules/debugger/win/debugbaseinfo.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/debugbaseinfo.h",
+ MAME_DIR .. "src/osd/modules/debugger/win/debugviewinfo.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/debugviewinfo.h",
+ MAME_DIR .. "src/osd/modules/debugger/win/debugwininfo.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/debugwininfo.h",
+ MAME_DIR .. "src/osd/modules/debugger/win/disasmbasewininfo.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/disasmbasewininfo.h",
+ MAME_DIR .. "src/osd/modules/debugger/win/disasmviewinfo.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/disasmviewinfo.h",
+ MAME_DIR .. "src/osd/modules/debugger/win/disasmwininfo.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/disasmwininfo.h",
+ MAME_DIR .. "src/osd/modules/debugger/win/editwininfo.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/editwininfo.h",
+ MAME_DIR .. "src/osd/modules/debugger/win/logviewinfo.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/logviewinfo.h",
+ MAME_DIR .. "src/osd/modules/debugger/win/logwininfo.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/logwininfo.h",
+ MAME_DIR .. "src/osd/modules/debugger/win/memoryviewinfo.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/memoryviewinfo.h",
+ MAME_DIR .. "src/osd/modules/debugger/win/memorywininfo.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/memorywininfo.h",
+ MAME_DIR .. "src/osd/modules/debugger/win/pointswininfo.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/pointswininfo.h",
+ MAME_DIR .. "src/osd/modules/debugger/win/uimetrics.cpp",
+ MAME_DIR .. "src/osd/modules/debugger/win/uimetrics.h",
+ MAME_DIR .. "src/osd/modules/debugger/win/debugwin.h",
+ MAME_DIR .. "src/osd/winui/bitmask.cpp",
+ MAME_DIR .. "src/osd/winui/columnedit.cpp",
+ MAME_DIR .. "src/osd/winui/datamap.cpp",
+ MAME_DIR .. "src/osd/winui/dialogs.cpp",
+ MAME_DIR .. "src/osd/winui/dijoystick.cpp",
+-- MAME_DIR .. "src/osd/winui/directdraw.cpp",
+ MAME_DIR .. "src/osd/winui/directinput.cpp",
+ MAME_DIR .. "src/osd/winui/directories.cpp",
+ MAME_DIR .. "src/osd/winui/dirwatch.cpp",
+-- MAME_DIR .. "src/osd/winui/dxdecode.cpp",
+ MAME_DIR .. "src/osd/winui/help.cpp",
+ MAME_DIR .. "src/osd/winui/helpids.cpp",
+ MAME_DIR .. "src/osd/winui/history.cpp",
+ MAME_DIR .. "src/osd/winui/layout.cpp",
+ MAME_DIR .. "src/osd/winui/mui_audit.cpp",
+ MAME_DIR .. "src/osd/winui/mui_main.cpp",
+ MAME_DIR .. "src/osd/winui/mui_opts.cpp",
+ MAME_DIR .. "src/osd/winui/mui_util.cpp",
+ MAME_DIR .. "src/osd/winui/picker.cpp",
+ MAME_DIR .. "src/osd/winui/properties.cpp",
+ MAME_DIR .. "src/osd/winui/resource.h",
+ MAME_DIR .. "src/osd/winui/screenshot.cpp",
+ MAME_DIR .. "src/osd/winui/splitters.cpp",
+ MAME_DIR .. "src/osd/winui/tabview.cpp",
+ MAME_DIR .. "src/osd/winui/treeview.cpp",
+ MAME_DIR .. "src/osd/winui/winui.cpp",
+ }
+
+project ("ocore_" .. _OPTIONS["osd"])
+ uuid (os.uuid("ocore_" .. _OPTIONS["osd"]))
+ kind "StaticLib"
+
+ options {
+ "ForceCPP",
+ }
+ removeflags {
+ "SingleOutputDir",
+ }
+
+ dofile("windows_cfg.lua")
+
+ includedirs {
+ MAME_DIR .. "3rdparty",
+ MAME_DIR .. "src/emu",
+ MAME_DIR .. "src/osd",
+ MAME_DIR .. "src/osd/modules/file",
+ MAME_DIR .. "src/lib",
+ MAME_DIR .. "src/lib/util",
+ }
+
+ BASE_TARGETOS = "win32"
+ SDLOS_TARGETOS = "win32"
+ SYNC_IMPLEMENTATION = "windows"
+
+ includedirs {
+ MAME_DIR .. "src/osd/windows",
+ MAME_DIR .. "src/lib/winpcap",
+ }
+
+ files {
+ MAME_DIR .. "src/osd/eigccppc.h",
+ MAME_DIR .. "src/osd/eigccx86.h",
+ MAME_DIR .. "src/osd/eivc.h",
+ MAME_DIR .. "src/osd/eivcx86.h",
+ MAME_DIR .. "src/osd/eminline.h",
+ MAME_DIR .. "src/osd/osdcomm.h",
+ MAME_DIR .. "src/osd/osdcore.cpp",
+ MAME_DIR .. "src/osd/osdcore.h",
+ MAME_DIR .. "src/osd/strconv.cpp",
+ MAME_DIR .. "src/osd/strconv.h",
+ MAME_DIR .. "src/osd/windows/main.cpp",
+ MAME_DIR .. "src/osd/osdsync.cpp",
+ MAME_DIR .. "src/osd/osdsync.h",
+ MAME_DIR .. "src/osd/windows/winutf8.cpp",
+ MAME_DIR .. "src/osd/windows/winutf8.h",
+ MAME_DIR .. "src/osd/windows/winutil.cpp",
+ MAME_DIR .. "src/osd/windows/winutil.h",
+ MAME_DIR .. "src/osd/modules/osdmodule.cpp",
+ MAME_DIR .. "src/osd/modules/osdmodule.h",
+ MAME_DIR .. "src/osd/modules/file/windir.cpp",
+ MAME_DIR .. "src/osd/modules/file/winfile.cpp",
+ MAME_DIR .. "src/osd/modules/file/winfile.h",
+ MAME_DIR .. "src/osd/modules/file/winptty.cpp",
+ MAME_DIR .. "src/osd/modules/file/winsocket.cpp",
+ MAME_DIR .. "src/osd/modules/lib/osdlib_win32.cpp",
+ }
+
+
+--------------------------------------------------
+-- ledutil
+--------------------------------------------------
+
+if _OPTIONS["with-tools"] then
+ project("ledutil")
+ uuid ("061293ca-7290-44ac-b2b5-5913ae8dc9c0")
+ kind "ConsoleApp"
+
+ if _OPTIONS["SEPARATE_BIN"]~="1" then
+ targetdir(MAME_DIR)
+ end
+
+ links {
+ "ocore_" .. _OPTIONS["osd"],
+ }
+
+ includedirs {
+ MAME_DIR .. "src/osd",
+ }
+
+ files {
+ MAME_DIR .. "src/osd/windows/ledutil.cpp",
+ }
+end
+
diff --git a/scripts/src/osd/winui_cfg.lua b/scripts/src/osd/winui_cfg.lua
new file mode 100644
index 00000000000..20c6034a2e1
--- /dev/null
+++ b/scripts/src/osd/winui_cfg.lua
@@ -0,0 +1,26 @@
+defines {
+ "UNICODE",
+ "_UNICODE",
+ "OSD_WINDOWS",
+ "USE_SDL=0",
+ --"WIN95_MULTIMON"
+ "_WIN32_WINNT=0x0501",
+ "USE_QTDEBUG=0",
+ "WIN32_LEAN_AND_MEAN",
+ "NOMINMAX",
+}
+
+configuration { "vs*" }
+ flags {
+ "Unicode",
+ }
+
+configuration { }
+
+if not _OPTIONS["DONT_USE_NETWORK"] then
+ defines {
+ "USE_NETWORK",
+ "OSD_NET_USE_PCAP",
+ }
+end
+
diff --git a/scripts/target/hbmame/hbmame.lua b/scripts/target/hbmame/hbmame.lua
new file mode 100644
index 00000000000..7ea441240b3
--- /dev/null
+++ b/scripts/target/hbmame/hbmame.lua
@@ -0,0 +1,795 @@
+-- license:BSD-3-Clause
+-- copyright-holders:Robbbert
+---------------------------------------------------------------------------
+--
+-- hbmame.lua
+--
+-- HBMAME target makefile
+--
+---------------------------------------------------------------------------
+
+--------------------------------------------------
+-- specify available CPU cores
+---------------------------------------------------
+
+CPUS["ADSP21XX"] = true
+CPUS["ADSP21062"] = true -- model2
+CPUS["ARM"] = true
+CPUS["ARM7"] = true
+CPUS["CCPU"] = true
+CPUS["DSP16A"] = true
+CPUS["H6280"] = true
+CPUS["HD6309"] = true
+CPUS["I8085"] = true
+CPUS["I8089"] = true
+CPUS["I86"] = true
+CPUS["I960"] = true -- model2
+CPUS["M6502"] = true
+CPUS["M6800"] = true
+CPUS["M6805"] = true
+CPUS["M6809"] = true
+CPUS["M680X0"] = true
+CPUS["MB88XX"] = true
+CPUS["MB86233"] = true -- model2
+CPUS["MB86235"] = true -- model2
+CPUS["MCS48"] = true
+CPUS["MCS51"] = true
+CPUS["NEC"] = true
+CPUS["S2650"] = true
+CPUS["SH"] = true
+CPUS["SSP1601"] = true
+CPUS["TLCS90"] = true
+CPUS["TMS32010"] = true
+CPUS["TMS32031"] = true
+CPUS["TMS340X0"] = true
+CPUS["PIC16C5X"] = true
+CPUS["UPD7810"] = true
+CPUS["V810"] = true
+CPUS["Z180"] = true
+CPUS["Z80"] = true
+
+--------------------------------------------------
+-- specify available sound cores
+--------------------------------------------------
+
+SOUNDS["ASTROCADE"] = true
+SOUNDS["AY8910"] = true
+SOUNDS["BEEP"] = true
+SOUNDS["CDDA"] = true
+SOUNDS["DAC"] = true
+SOUNDS["DMADAC"] = true
+SOUNDS["DIGITALKER"] = true
+SOUNDS["DISCRETE"] = true
+SOUNDS["ES5505"] = true
+SOUNDS["HC55516"] = true
+SOUNDS["ICS2115"] = true
+SOUNDS["K005289"] = true
+SOUNDS["K007232"] = true
+SOUNDS["K051649"] = true
+SOUNDS["K053260"] = true
+SOUNDS["K054539"] = true
+SOUNDS["MPEG_AUDIO"] = true -- model2
+SOUNDS["MSM5205"] = true
+SOUNDS["MULTIPCM"] = true -- model2
+SOUNDS["NAMCO_15XX"] = true
+SOUNDS["NAMCO_52XX"] = true
+SOUNDS["NES_APU"] = true
+SOUNDS["OKIM6295"] = true
+SOUNDS["POKEY"] = true
+SOUNDS["QSOUND"] = true
+SOUNDS["RF5C68"] = true
+SOUNDS["SAMPLES"] = true
+SOUNDS["SCSP"] = true -- model2
+SOUNDS["SEGAPCM"] = true
+SOUNDS["SN76477"] = true
+SOUNDS["SN76496"] = true
+SOUNDS["SP0250"] = true
+SOUNDS["SPEAKER"] = true
+SOUNDS["ST0016"] = true
+SOUNDS["TC8830F"] = true -- timeplt
+SOUNDS["TMS36XX"] = true
+SOUNDS["TMS5110"] = true
+SOUNDS["TMS5220"] = true
+SOUNDS["UPD7759"] = true
+SOUNDS["VLM5030"] = true
+SOUNDS["VOLT_REG"] = true
+SOUNDS["VOTRAX"] = true
+SOUNDS["YM2151"] = true
+SOUNDS["YM2203"] = true
+SOUNDS["YM2413"] = true
+SOUNDS["YM2608"] = true
+SOUNDS["YM2610"] = true
+SOUNDS["YM2612"] = true
+SOUNDS["YM3812"] = true
+SOUNDS["YM3526"] = true
+SOUNDS["YMF262"] = true
+SOUNDS["YMF278B"] = true
+SOUNDS["YMZ280B"] = true
+
+--------------------------------------------------
+-- specify available video cores
+--------------------------------------------------
+
+VIDEOS["SEGA315_5124"] = true
+VIDEOS["SEGA315_5313"] = true
+VIDEOS["BUFSPRITE"] = true
+VIDEOS["HD63484"] = true
+VIDEOS["MC6845"] = true
+VIDEOS["TLC34076"] = true
+VIDEOS["TMS34061"] = true
+
+--------------------------------------------------
+-- specify available machine cores
+--------------------------------------------------
+
+MACHINES["6522VIA"] = true
+MACHINES["RIOT6532"] = true
+MACHINES["6821PIA"] = true
+MACHINES["68681"] = true
+MACHINES["I8257"] = true
+MACHINES["AAKARTDEV"] = true
+MACHINES["ADC0844"] = true
+MACHINES["BANKDEV"] = true
+MACHINES["CXD1095"] = true
+MACHINES["EEPROMDEV"] = true
+MACHINES["ER2055"] = true
+MACHINES["FDC_PLL"] = true
+MACHINES["I2CMEM"] = true
+MACHINES["I8243"] = true
+MACHINES["I8251"] = true
+MACHINES["I8255"] = true
+MACHINES["INPUT_MERGER"] = true
+MACHINES["INTELFLASH"] = true
+MACHINES["GEN_LATCH"] = true
+MACHINES["LATCH8"] = true
+MACHINES["LDPR8210"] = true
+MACHINES["MB8421"] = true
+MACHINES["MB14241"] = true
+MACHINES["MB87078"] = true
+MACHINES["MIOT6530"] = true
+MACHINES["MSM6253"] = true
+MACHINES["NETLIST"] = true
+MACHINES["RP5C01"] = true
+MACHINES["RP5H01"] = true
+MACHINES["TE7750"] = true
+MACHINES["TICKET"] = true
+MACHINES["TIMEKPR"] = true
+MACHINES["TMS1024"] = true -- docastle
+MACHINES["TMS6100"] = true
+MACHINES["TTL74157"] = true
+MACHINES["TTL74259"] = true
+MACHINES["UPD1990A"] = true
+MACHINES["UPD4701"] = true
+MACHINES["UPD4992"] = true
+MACHINES["V3021"] = true
+MACHINES["WATCHDOG"] = true
+MACHINES["WD33C93"] = true
+MACHINES["WD_FDC"] = true
+MACHINES["Z80CTC"] = true
+MACHINES["Z80DART"] = true
+MACHINES["Z80PIO"] = true
+
+--------------------------------------------------
+-- specify available bus cores
+--------------------------------------------------
+
+BUSES["GENERIC"] = true
+-- BUSES["NEOGEO"] = true
+-- BUSES["NEOGEO_CTRL"] = true
+BUSES["SCSI"] = true
+
+--------------------------------------------------
+-- this is the list of driver libraries that
+-- comprise MAME plus hbmame.lst which contains
+-- the list of drivers
+--------------------------------------------------
+
+function linkProjects_hbmame_hbmame(_target, _subtarget)
+ links {
+ "acorn",
+ "atari",
+ "atlus",
+ "capcom",
+ "cave",
+ "cinemat",
+ "dataeast",
+ "exidy",
+ "gottlieb",
+ "igs",
+ "irem",
+ "itech",
+ "jaleco",
+ "kaneko",
+ "konami",
+ "midway",
+ "namco",
+ "neogeo",
+ "nichibut",
+ "nintendo",
+ "nmk",
+ "pacman",
+ "phoenix",
+ "psikyo",
+ "sega",
+ "seta",
+ "snk",
+ "taito",
+ "tehkan",
+ "toaplan",
+ "univers",
+ "valadon",
+-- "shared",
+ "misc",
+ }
+end
+
+function createHBMAMEProjects(_target, _subtarget, _name)
+ project (_name)
+ targetsubdir(_target .."_" .. _subtarget)
+ kind (LIBTYPE)
+ uuid (os.uuid("drv-" .. _target .."_" .. _subtarget .. "_" .._name))
+-- addprojectflags() -- no idea if this is needed, seems to work fine without it
+ precompiledheaders()
+
+ includedirs {
+ MAME_DIR .. "src/osd",
+ MAME_DIR .. "src/emu",
+ MAME_DIR .. "src/devices",
+ MAME_DIR .. "src/hbmame/includes",
+ MAME_DIR .. "src/hbmame",
+ MAME_DIR .. "src/mame",
+ MAME_DIR .. "src/lib",
+ MAME_DIR .. "src/lib/util",
+ MAME_DIR .. "src/lib/netlist",
+ MAME_DIR .. "3rdparty",
+ MAME_DIR .. "3rdparty/zlib",
+ GEN_DIR .. "mame/layout",
+ GEN_DIR .. "hbmame/layout",
+ }
+ includedirs {
+ ext_includedir("flac"),
+ }
+end
+
+function createProjects_hbmame_hbmame(_target, _subtarget)
+--------------------------------------------------
+-- the following files are general components and
+-- shared across a number of drivers
+--------------------------------------------------
+
+--createHBMAMEProjects(_target, _subtarget, "shared")
+--files {
+-- MAME_DIR .. "src/devices/machine/ticket.cpp",
+--}
+
+--------------------------------------------------
+-- manufacturer-specific groupings for drivers
+--------------------------------------------------
+
+createHBMAMEProjects(_target, _subtarget, "acorn")
+files {
+ MAME_DIR .. "src/hbmame/drivers/ertictac.cpp",
+ MAME_DIR .. "src/mame/machine/archimds.cpp",
+ MAME_DIR .. "src/mame/video/archimds.cpp",
+}
+
+createHBMAMEProjects(_target, _subtarget, "atari")
+files {
+ MAME_DIR .. "src/hbmame/drivers/asteroid.cpp",
+ MAME_DIR .. "src/mame/machine/asteroid.cpp",
+ MAME_DIR .. "src/hbmame/drivers/atarisy1.cpp",
+ MAME_DIR .. "src/mame/video/atarisy1.cpp",
+ MAME_DIR .. "src/mame/audio/asteroid.cpp",
+ MAME_DIR .. "src/hbmame/drivers/bwidow.cpp",
+ MAME_DIR .. "src/mame/audio/bwidow.cpp",
+ MAME_DIR .. "src/hbmame/drivers/cball.cpp",
+ MAME_DIR .. "src/hbmame/drivers/centiped.cpp",
+ MAME_DIR .. "src/mame/video/centiped.cpp",
+ MAME_DIR .. "src/hbmame/drivers/gauntlet.cpp",
+ MAME_DIR .. "src/mame/video/gauntlet.cpp",
+ MAME_DIR .. "src/hbmame/drivers/tempest.cpp",
+ MAME_DIR .. "src/mame/machine/atari_vg.cpp",
+ MAME_DIR .. "src/mame/machine/atarigen.cpp",
+ MAME_DIR .. "src/mame/machine/mathbox.cpp",
+ MAME_DIR .. "src/mame/machine/slapstic.cpp",
+ MAME_DIR .. "src/mame/audio/llander.cpp",
+ MAME_DIR .. "src/mame/video/atarimo.cpp",
+ MAME_DIR .. "src/mame/video/avgdvg.cpp",
+}
+
+createHBMAMEProjects(_target, _subtarget, "atlus")
+files {
+ MAME_DIR .. "src/hbmame/drivers/powerins.cpp",
+ MAME_DIR .. "src/mame/video/powerins.cpp",
+}
+
+createHBMAMEProjects(_target, _subtarget, "capcom")
+files {
+ MAME_DIR .. "src/hbmame/drivers/1942.cpp",
+ MAME_DIR .. "src/mame/video/1942.cpp",
+ MAME_DIR .. "src/hbmame/drivers/blktiger.cpp",
+ MAME_DIR .. "src/mame/video/blktiger.cpp",
+ MAME_DIR .. "src/hbmame/drivers/commando.cpp",
+ MAME_DIR .. "src/mame/video/commando.cpp",
+ MAME_DIR .. "src/hbmame/drivers/cps1.cpp",
+ MAME_DIR .. "src/hbmame/video/cps1.cpp",
+ MAME_DIR .. "src/hbmame/drivers/cps2.cpp",
+ MAME_DIR .. "src/mame/machine/cps2crypt.cpp",
+ MAME_DIR .. "src/hbmame/drivers/cps3.cpp",
+ MAME_DIR .. "src/mame/audio/cps3.cpp",
+ MAME_DIR .. "src/hbmame/drivers/fcrash.cpp",
+ MAME_DIR .. "src/hbmame/drivers/mitchell.cpp",
+ MAME_DIR .. "src/mame/video/mitchell.cpp",
+ MAME_DIR .. "src/mame/machine/kabuki.cpp",
+}
+
+createHBMAMEProjects(_target, _subtarget, "cave")
+files {
+ MAME_DIR .. "src/hbmame/drivers/cave.cpp",
+ MAME_DIR .. "src/mame/video/cave.cpp",
+}
+
+createHBMAMEProjects(_target, _subtarget, "cinemat")
+files {
+ MAME_DIR .. "src/hbmame/drivers/cinemat.cpp",
+ MAME_DIR .. "src/mame/audio/cinemat.cpp",
+ MAME_DIR .. "src/mame/video/cinemat.cpp",
+}
+
+createHBMAMEProjects(_target, _subtarget, "dataeast")
+files {
+ MAME_DIR .. "src/hbmame/drivers/astrof.cpp",
+ MAME_DIR .. "src/mame/audio/astrof.cpp",
+ MAME_DIR .. "src/hbmame/drivers/btime.cpp",
+ MAME_DIR .. "src/mame/machine/btime.cpp",
+ MAME_DIR .. "src/mame/video/btime.cpp",
+ MAME_DIR .. "src/hbmame/drivers/dec0.cpp",
+ MAME_DIR .. "src/mame/machine/dec0.cpp",
+ MAME_DIR .. "src/mame/video/dec0.cpp",
+ MAME_DIR .. "src/mame/machine/deco222.cpp",
+ MAME_DIR .. "src/mame/machine/decocpu7.cpp",
+ MAME_DIR .. "src/hbmame/drivers/pcktgal.cpp",
+ MAME_DIR .. "src/mame/video/pcktgal.cpp",
+ MAME_DIR .. "src/mame/video/decbac06.cpp",
+ MAME_DIR .. "src/mame/video/decmxc06.cpp",
+}
+
+createHBMAMEProjects(_target, _subtarget, "exidy")
+files {
+ MAME_DIR .. "src/hbmame/drivers/exidy.cpp",
+ MAME_DIR .. "src/mame/audio/exidy.cpp",
+ MAME_DIR .. "src/mame/video/exidy.cpp",
+ MAME_DIR .. "src/mame/audio/targ.cpp",
+}
+
+createHBMAMEProjects(_target, _subtarget, "gottlieb")
+files {
+ MAME_DIR .. "src/hbmame/drivers/gottlieb.cpp",
+ MAME_DIR .. "src/mame/audio/gottlieb.cpp",
+ MAME_DIR .. "src/mame/video/gottlieb.cpp",
+}
+
+createHBMAMEProjects(_target, _subtarget, "igs")
+files {
+ MAME_DIR .. "src/hbmame/drivers/pgm.cpp",
+ MAME_DIR .. "src/mame/video/pgm.cpp",
+ MAME_DIR .. "src/mame/machine/pgmprot_igs027a_type1.cpp",
+ MAME_DIR .. "src/mame/machine/pgmprot_igs027a_type2.cpp",
+ MAME_DIR .. "src/mame/machine/pgmprot_igs027a_type3.cpp",
+ MAME_DIR .. "src/mame/machine/pgmprot_igs025_igs012.cpp",
+ MAME_DIR .. "src/mame/machine/pgmprot_igs025_igs022.cpp",
+ MAME_DIR .. "src/mame/machine/pgmprot_igs025_igs028.cpp",
+ MAME_DIR .. "src/mame/machine/pgmprot_orlegend.cpp",
+ MAME_DIR .. "src/mame/machine/pgmcrypt.cpp",
+ MAME_DIR .. "src/mame/machine/igs025.cpp",
+ MAME_DIR .. "src/mame/machine/igs022.cpp",
+ MAME_DIR .. "src/mame/machine/igs028.cpp",
+}
+
+createHBMAMEProjects(_target, _subtarget, "irem")
+files {
+ MAME_DIR .. "src/hbmame/drivers/m52.cpp",
+ MAME_DIR .. "src/mame/video/m52.cpp",
+ MAME_DIR .. "src/mame/machine/irem_cpu.cpp",
+ MAME_DIR .. "src/mame/audio/nl_kidniki.cpp",
+ MAME_DIR .. "src/mame/audio/irem.cpp",
+}
+
+createHBMAMEProjects(_target, _subtarget, "itech")
+files {
+ MAME_DIR .. "src/hbmame/drivers/itech8.cpp",
+ MAME_DIR .. "src/mame/machine/itech8.cpp",
+ MAME_DIR .. "src/mame/video/itech8.cpp",
+}
+
+createHBMAMEProjects(_target, _subtarget, "jaleco")
+files {
+ MAME_DIR .. "src/hbmame/drivers/exerion.cpp",
+ MAME_DIR .. "src/mame/video/exerion.cpp",
+}
+
+createHBMAMEProjects(_target, _subtarget, "kaneko")
+files {
+ MAME_DIR .. "src/hbmame/drivers/kaneko16.cpp",
+ MAME_DIR .. "src/mame/includes/kaneko16.h",
+ MAME_DIR .. "src/mame/video/kaneko16.cpp",
+ MAME_DIR .. "src/mame/video/kaneko_tmap.cpp",
+ MAME_DIR .. "src/mame/video/kaneko_tmap.h",
+ MAME_DIR .. "src/mame/video/kaneko_spr.cpp",
+ MAME_DIR .. "src/mame/video/kaneko_spr.h",
+ MAME_DIR .. "src/mame/machine/kaneko_hit.cpp",
+ MAME_DIR .. "src/mame/machine/kaneko_hit.h",
+ MAME_DIR .. "src/mame/machine/kaneko_calc3.cpp",
+ MAME_DIR .. "src/mame/machine/kaneko_calc3.h",
+ MAME_DIR .. "src/mame/machine/kaneko_toybox.cpp",
+ MAME_DIR .. "src/mame/machine/kaneko_toybox.h",
+ MAME_DIR .. "src/mame/video/kan_pand.cpp", -- these 2 needed for linux compile
+ MAME_DIR .. "src/mame/video/kan_pand.h",
+}
+
+createHBMAMEProjects(_target, _subtarget, "konami")
+files {
+ MAME_DIR .. "src/hbmame/drivers/1943.cpp",
+ MAME_DIR .. "src/mame/video/1943.cpp",
+ MAME_DIR .. "src/mame/audio/hyprolyb.cpp",
+ MAME_DIR .. "src/hbmame/drivers/nemesis.cpp",
+ MAME_DIR .. "src/mame/video/nemesis.cpp",
+ MAME_DIR .. "src/hbmame/drivers/pooyan.cpp",
+ MAME_DIR .. "src/mame/video/pooyan.cpp",
+ MAME_DIR .. "src/hbmame/drivers/shaolins.cpp",
+ MAME_DIR .. "src/mame/video/shaolins.cpp",
+ MAME_DIR .. "src/hbmame/drivers/timeplt.cpp",
+ MAME_DIR .. "src/mame/audio/timeplt.cpp",
+ MAME_DIR .. "src/mame/video/timeplt.cpp",
+ MAME_DIR .. "src/hbmame/drivers/tmnt.cpp",
+ MAME_DIR .. "src/mame/video/tmnt.cpp",
+ MAME_DIR .. "src/hbmame/drivers/trackfld.cpp",
+ MAME_DIR .. "src/mame/machine/konami1.cpp",
+ MAME_DIR .. "src/mame/audio/trackfld.cpp",
+ MAME_DIR .. "src/mame/video/trackfld.cpp",
+ MAME_DIR .. "src/mame/video/tutankhm.cpp",
+ MAME_DIR .. "src/hbmame/drivers/yiear.cpp",
+ MAME_DIR .. "src/mame/video/yiear.cpp",
+ MAME_DIR .. "src/mame/video/konami_helper.cpp",
+ MAME_DIR .. "src/mame/video/k051960.cpp",
+ MAME_DIR .. "src/mame/video/k052109.cpp",
+ MAME_DIR .. "src/mame/video/k053251.cpp",
+ MAME_DIR .. "src/mame/video/k053244_k053245.cpp",
+ MAME_DIR .. "src/mame/video/k054000.cpp",
+ MAME_DIR .. "src/mame/video/k053936.cpp",
+}
+
+createHBMAMEProjects(_target, _subtarget, "midway")
+files {
+ MAME_DIR .. "src/mame/drivers/8080bw.cpp",
+ MAME_DIR .. "src/mame/includes/8080bw.h",
+ MAME_DIR .. "src/mame/audio/8080bw.cpp",
+ MAME_DIR .. "src/mame/video/8080bw.cpp",
+ MAME_DIR .. "src/mame/drivers/mw8080bw.cpp",
+ MAME_DIR .. "src/mame/includes/mw8080bw.h",
+ MAME_DIR .. "src/mame/machine/mw8080bw.cpp",
+ MAME_DIR .. "src/mame/audio/mw8080bw.cpp",
+ MAME_DIR .. "src/mame/video/mw8080bw.cpp",
+ MAME_DIR .. "src/hbmame/drivers/astrocde.cpp",
+ MAME_DIR .. "src/mame/video/astrocde.cpp",
+ MAME_DIR .. "src/hbmame/drivers/mcr.cpp",
+ MAME_DIR .. "src/mame/machine/mcr.cpp",
+ MAME_DIR .. "src/mame/video/mcr.cpp",
+ MAME_DIR .. "src/hbmame/drivers/mcr3.cpp",
+ MAME_DIR .. "src/mame/video/mcr3.cpp",
+ MAME_DIR .. "src/mame/drivers/mcr68.cpp",
+ MAME_DIR .. "src/mame/machine/mcr68.cpp",
+ MAME_DIR .. "src/mame/video/mcr68.cpp",
+ MAME_DIR .. "src/hbmame/drivers/midtunit.cpp",
+ MAME_DIR .. "src/mame/machine/midtunit.cpp",
+ MAME_DIR .. "src/mame/video/midtunit.cpp",
+ MAME_DIR .. "src/hbmame/drivers/midwunit.cpp",
+ MAME_DIR .. "src/mame/machine/midwunit.cpp",
+ MAME_DIR .. "src/hbmame/drivers/midyunit.cpp",
+ MAME_DIR .. "src/mame/machine/midyunit.cpp",
+ MAME_DIR .. "src/mame/video/midyunit.cpp",
+ MAME_DIR .. "src/mame/drivers/wmg.cpp",
+ MAME_DIR .. "src/hbmame/drivers/williams.cpp",
+ MAME_DIR .. "src/mame/machine/williams.cpp",
+ MAME_DIR .. "src/mame/audio/williams.cpp",
+ MAME_DIR .. "src/mame/video/williams.cpp",
+ MAME_DIR .. "src/mame/machine/midwayic.cpp",
+ MAME_DIR .. "src/mame/audio/midway.cpp",
+ MAME_DIR .. "src/mame/audio/cage.cpp",
+ MAME_DIR .. "src/mame/audio/dcs.cpp",
+ MAME_DIR .. "src/mame/audio/csd.cpp",
+ MAME_DIR .. "src/mame/audio/csd.h",
+}
+
+createHBMAMEProjects(_target, _subtarget, "namco")
+files {
+ MAME_DIR .. "src/hbmame/drivers/galaga.cpp",
+ MAME_DIR .. "src/mame/audio/galaga.cpp",
+ MAME_DIR .. "src/mame/video/galaga.cpp",
+ MAME_DIR .. "src/mame/video/bosco.cpp",
+ MAME_DIR .. "src/mame/video/digdug.cpp",
+ MAME_DIR .. "src/mame/machine/xevious.cpp",
+ MAME_DIR .. "src/mame/video/xevious.cpp",
+ MAME_DIR .. "src/hbmame/drivers/galaxian.cpp",
+ MAME_DIR .. "src/mame/audio/galaxian.cpp",
+ MAME_DIR .. "src/hbmame/video/galaxian.cpp",
+ MAME_DIR .. "src/hbmame/drivers/mappy.cpp",
+ MAME_DIR .. "src/mame/video/mappy.cpp",
+ MAME_DIR .. "src/hbmame/drivers/pacland.cpp",
+ MAME_DIR .. "src/mame/video/pacland.cpp",
+ MAME_DIR .. "src/mame/drivers/polepos.cpp",
+ MAME_DIR .. "src/mame/audio/polepos.cpp",
+ MAME_DIR .. "src/mame/video/polepos.cpp",
+ MAME_DIR .. "src/hbmame/drivers/rallyx.cpp",
+ MAME_DIR .. "src/mame/video/rallyx.cpp",
+ MAME_DIR .. "src/mame/machine/namcoio.cpp",
+ MAME_DIR .. "src/mame/machine/namco06.cpp",
+ MAME_DIR .. "src/mame/machine/namco50.cpp",
+ MAME_DIR .. "src/mame/machine/namco51.cpp",
+ MAME_DIR .. "src/mame/machine/namco53.cpp",
+ MAME_DIR .. "src/mame/audio/namco52.cpp",
+ MAME_DIR .. "src/mame/audio/namco54.cpp",
+ MAME_DIR .. "src/mame/audio/timeplt.cpp",
+}
+
+createHBMAMEProjects(_target, _subtarget, "neogeo")
+files {
+ MAME_DIR .. "src/hbmame/drivers/neogeo.cpp",
+ MAME_DIR .. "src/hbmame/video/neogeo.cpp",
+ MAME_DIR .. "src/hbmame/drivers/neogeo_noslot.cpp",
+ MAME_DIR .. "src/hbmame/video/neogeo_spr.cpp",
+ MAME_DIR .. "src/hbmame/machine/ng_memcard.cpp",
+ MAME_DIR .. "src/hbmame/bus/neogeo/prot.cpp",
+ MAME_DIR .. "src/hbmame/bus/neogeo/prot.h",
+ MAME_DIR .. "src/hbmame/bus/neogeo/banked_cart.cpp",
+ MAME_DIR .. "src/hbmame/bus/neogeo/banked_cart.h",
+ MAME_DIR .. "src/hbmame/bus/neogeo_ctrl/ctrl.cpp",
+ MAME_DIR .. "src/hbmame/bus/neogeo_ctrl/ctrl.h",
+ MAME_DIR .. "src/hbmame/bus/neogeo_ctrl/joystick.cpp",
+ MAME_DIR .. "src/hbmame/bus/neogeo_ctrl/joystick.h",
+ MAME_DIR .. "src/hbmame/bus/neogeo_ctrl/mahjong.cpp",
+ MAME_DIR .. "src/hbmame/bus/neogeo_ctrl/mahjong.h",
+ MAME_DIR .. "src/hbmame/bus/neogeo_ctrl/dial.cpp",
+ MAME_DIR .. "src/hbmame/bus/neogeo_ctrl/dial.h",
+ MAME_DIR .. "src/hbmame/bus/neogeo_ctrl/irrmaze.cpp",
+ MAME_DIR .. "src/hbmame/bus/neogeo_ctrl/irrmaze.h",
+ MAME_DIR .. "src/hbmame/bus/neogeo_ctrl/kizuna4p.cpp",
+ MAME_DIR .. "src/hbmame/bus/neogeo_ctrl/kizuna4p.h",
+}
+
+createHBMAMEProjects(_target, _subtarget, "nichibut")
+files {
+ MAME_DIR .. "src/hbmame/drivers/cclimber.cpp",
+ MAME_DIR .. "src/mame/machine/cclimber.cpp",
+ MAME_DIR .. "src/mame/audio/cclimber.cpp",
+ MAME_DIR .. "src/mame/video/cclimber.cpp",
+ MAME_DIR .. "src/hbmame/drivers/terracre.cpp",
+ MAME_DIR .. "src/mame/video/terracre.cpp",
+}
+
+createHBMAMEProjects(_target, _subtarget, "nintendo")
+files {
+ MAME_DIR .. "src/hbmame/drivers/dkong.cpp",
+ MAME_DIR .. "src/mame/audio/dkong.cpp",
+ MAME_DIR .. "src/mame/video/dkong.cpp",
+ MAME_DIR .. "src/hbmame/drivers/mario.cpp",
+ MAME_DIR .. "src/mame/audio/mario.cpp",
+ MAME_DIR .. "src/mame/video/mario.cpp",
+ MAME_DIR .. "src/mame/audio/nl_mario.cpp",
+ MAME_DIR .. "src/mame/audio/nl_mario.h",
+ MAME_DIR .. "src/hbmame/drivers/playch10.cpp",
+ MAME_DIR .. "src/mame/machine/playch10.cpp",
+ MAME_DIR .. "src/mame/video/playch10.cpp",
+ MAME_DIR .. "src/hbmame/drivers/vsnes.cpp",
+ MAME_DIR .. "src/mame/machine/vsnes.cpp",
+ MAME_DIR .. "src/mame/video/vsnes.cpp",
+ MAME_DIR .. "src/devices/video/ppu2c0x.cpp",
+ MAME_DIR .. "src/devices/machine/z80dma.cpp",
+
+}
+
+createHBMAMEProjects(_target, _subtarget, "nmk")
+files {
+ MAME_DIR .. "src/hbmame/drivers/nmk16.cpp",
+ MAME_DIR .. "src/mame/video/nmk16.cpp",
+ MAME_DIR .. "src/mame/machine/nmk004.cpp",
+ MAME_DIR .. "src/mame/audio/seibu.cpp",
+}
+
+createHBMAMEProjects(_target, _subtarget, "pacman")
+files {
+ MAME_DIR .. "src/hbmame/drivers/jrpacman.cpp",
+ MAME_DIR .. "src/hbmame/drivers/pacman.cpp",
+ MAME_DIR .. "src/hbmame/video/pacman.cpp",
+ MAME_DIR .. "src/hbmame/drivers/pengo.cpp",
+}
+
+createHBMAMEProjects(_target, _subtarget, "phoenix")
+files {
+ MAME_DIR .. "src/hbmame/drivers/phoenix.cpp",
+ MAME_DIR .. "src/mame/audio/phoenix.cpp",
+ MAME_DIR .. "src/mame/video/phoenix.cpp",
+ MAME_DIR .. "src/mame/audio/pleiads.cpp",
+}
+
+createHBMAMEProjects(_target, _subtarget, "psikyo")
+files {
+ MAME_DIR .. "src/hbmame/drivers/psikyosh.cpp",
+ MAME_DIR .. "src/mame/video/psikyosh.cpp",
+}
+
+createHBMAMEProjects(_target, _subtarget, "sega")
+files {
+ MAME_DIR .. "src/mame/machine/megadriv.cpp",
+ MAME_DIR .. "src/mame/drivers/megaplay.cpp",
+ MAME_DIR .. "src/mame/drivers/megatech.cpp",
+ MAME_DIR .. "src/hbmame/drivers/segac2.cpp",
+ MAME_DIR .. "src/mame/drivers/segae.cpp",
+ MAME_DIR .. "src/hbmame/drivers/segag80r.cpp",
+ MAME_DIR .. "src/mame/machine/segag80.cpp",
+ MAME_DIR .. "src/mame/audio/segag80r.cpp",
+ MAME_DIR .. "src/mame/video/segag80r.cpp",
+ MAME_DIR .. "src/hbmame/drivers/segaorun.cpp",
+ MAME_DIR .. "src/mame/video/segaorun.cpp",
+ MAME_DIR .. "src/hbmame/drivers/system1.cpp",
+ MAME_DIR .. "src/mame/video/system1.cpp",
+ MAME_DIR .. "src/hbmame/drivers/system16.cpp",
+ MAME_DIR .. "src/mame/video/system16.cpp",
+ MAME_DIR .. "src/mame/machine/315_5296.cpp",
+ MAME_DIR .. "src/mame/machine/fd1089.cpp",
+ MAME_DIR .. "src/mame/machine/fd1094.cpp",
+ MAME_DIR .. "src/mame/machine/mc8123.cpp",
+ MAME_DIR .. "src/mame/machine/segaic16.cpp",
+ MAME_DIR .. "src/mame/machine/segacrpt_device.cpp",
+ MAME_DIR .. "src/mame/machine/segacrpt_device.h",
+ MAME_DIR .. "src/mame/machine/segacrp2_device.cpp",
+ MAME_DIR .. "src/mame/machine/segacrp2_device.h",
+ MAME_DIR .. "src/mame/audio/segasnd.cpp",
+ MAME_DIR .. "src/mame/video/segaic16.cpp",
+ MAME_DIR .. "src/mame/video/segaic16_road.cpp",
+ MAME_DIR .. "src/mame/video/sega16sp.cpp",
+ MAME_DIR .. "src/hbmame/drivers/segas16b.cpp",
+ MAME_DIR .. "src/mame/video/segas16b.cpp",
+ MAME_DIR .. "src/mame/machine/m2comm.cpp", -- from here, for model2
+ MAME_DIR .. "src/mame/machine/m2comm.h",
+ MAME_DIR .. "src/mame/audio/dsbz80.cpp",
+ MAME_DIR .. "src/mame/audio/dsbz80.h",
+ MAME_DIR .. "src/hbmame/drivers/model2.cpp",
+ MAME_DIR .. "src/mame/includes/model2.h",
+ MAME_DIR .. "src/mame/video/model2rd.hxx",
+ MAME_DIR .. "src/mame/video/model2.cpp",
+ MAME_DIR .. "src/mame/audio/segam1audio.cpp",
+ MAME_DIR .. "src/mame/audio/segam1audio.h",
+ MAME_DIR .. "src/mame/video/segaic24.cpp",
+ MAME_DIR .. "src/mame/video/segaic24.h",
+ MAME_DIR .. "src/mame/machine/315-5881_crypt.cpp",
+ MAME_DIR .. "src/mame/machine/315-5881_crypt.h",
+ MAME_DIR .. "src/mame/machine/315-5838_317-0229_comp.cpp",
+ MAME_DIR .. "src/mame/machine/315-5838_317-0229_comp.h",
+}
+
+createHBMAMEProjects(_target, _subtarget, "seta")
+files {
+ MAME_DIR .. "src/mame/machine/st0016.cpp",
+ MAME_DIR .. "src/hbmame/drivers/simple_st0016.cpp",
+}
+
+createHBMAMEProjects(_target, _subtarget, "snk")
+files {
+ MAME_DIR .. "src/hbmame/drivers/snk6502.cpp",
+ MAME_DIR .. "src/mame/audio/snk6502.cpp",
+ MAME_DIR .. "src/mame/video/snk6502.cpp",
+}
+
+createHBMAMEProjects(_target, _subtarget, "taito")
+files {
+ MAME_DIR .. "src/hbmame/drivers/arkanoid.cpp",
+ MAME_DIR .. "src/mame/machine/arkanoid.cpp",
+ MAME_DIR .. "src/mame/video/arkanoid.cpp",
+ MAME_DIR .. "src/hbmame/drivers/asuka.cpp",
+ MAME_DIR .. "src/mame/machine/bonzeadv.cpp",
+ MAME_DIR .. "src/mame/video/asuka.cpp",
+ MAME_DIR .. "src/hbmame/drivers/bublbobl.cpp",
+ MAME_DIR .. "src/mame/machine/bublbobl.cpp",
+ MAME_DIR .. "src/mame/video/bublbobl.cpp",
+ MAME_DIR .. "src/hbmame/drivers/rastan.cpp",
+ MAME_DIR .. "src/mame/video/rastan.cpp",
+ MAME_DIR .. "src/hbmame/drivers/retofinv.cpp",
+ MAME_DIR .. "src/mame/video/retofinv.cpp",
+ MAME_DIR .. "src/hbmame/drivers/taito_b.cpp",
+ MAME_DIR .. "src/mame/video/taito_b.cpp",
+ MAME_DIR .. "src/hbmame/drivers/taito_f2.cpp",
+ MAME_DIR .. "src/mame/video/taito_f2.cpp",
+ MAME_DIR .. "src/hbmame/drivers/taito_f3.cpp",
+ MAME_DIR .. "src/mame/video/taito_f3.cpp",
+ MAME_DIR .. "src/mame/machine/taitocchip.cpp",
+ MAME_DIR .. "src/hbmame/drivers/volfied.cpp",
+ MAME_DIR .. "src/mame/machine/volfied.cpp",
+ MAME_DIR .. "src/mame/video/volfied.cpp",
+ MAME_DIR .. "src/mame/audio/taitosnd.cpp",
+ MAME_DIR .. "src/mame/audio/taito_en.cpp",
+ MAME_DIR .. "src/mame/machine/taitoio.cpp",
+ MAME_DIR .. "src/mame/video/taito_helper.cpp",
+ MAME_DIR .. "src/mame/video/pc080sn.cpp",
+ MAME_DIR .. "src/mame/video/pc090oj.cpp",
+ MAME_DIR .. "src/mame/video/tc0100scn.cpp",
+ MAME_DIR .. "src/mame/video/tc0280grd.cpp",
+ MAME_DIR .. "src/mame/video/tc0360pri.cpp",
+ MAME_DIR .. "src/mame/video/tc0480scp.cpp",
+ MAME_DIR .. "src/mame/video/tc0110pcr.cpp",
+ MAME_DIR .. "src/mame/video/tc0180vcu.cpp",
+ MAME_DIR .. "src/hbmame/drivers/taito_l.cpp",
+ MAME_DIR .. "src/mame/video/taito_l.cpp",
+ MAME_DIR .. "src/mame/machine/taito68705interface.cpp",
+ MAME_DIR .. "src/mame/machine/taito68705interface.h",
+}
+
+createHBMAMEProjects(_target, _subtarget, "tehkan")
+files {
+ MAME_DIR .. "src/mame/video/tecmo_spr.cpp",
+ MAME_DIR .. "src/mame/video/tecmo_mix.cpp",
+ MAME_DIR .. "src/mame/video/tecmo_mix.h",
+ MAME_DIR .. "src/hbmame/drivers/bombjack.cpp",
+ MAME_DIR .. "src/mame/video/bombjack.cpp",
+ MAME_DIR .. "src/hbmame/drivers/tecmo.cpp",
+ MAME_DIR .. "src/mame/video/tecmo.cpp",
+ MAME_DIR .. "src/hbmame/drivers/tecmo16.cpp",
+ MAME_DIR .. "src/mame/includes/tecmo16.h",
+ MAME_DIR .. "src/mame/video/tecmo16.cpp",
+ MAME_DIR .. "src/hbmame/drivers/tehkanwc.cpp",
+ MAME_DIR .. "src/mame/video/tehkanwc.cpp",
+ MAME_DIR .. "src/mame/drivers/wc90.cpp",
+ MAME_DIR .. "src/mame/includes/wc90.h",
+ MAME_DIR .. "src/mame/video/wc90.cpp",
+}
+
+createHBMAMEProjects(_target, _subtarget, "toaplan")
+files {
+ MAME_DIR .. "src/mame/drivers/toaplan1.cpp",
+ MAME_DIR .. "src/mame/machine/toaplan1.cpp",
+ MAME_DIR .. "src/mame/video/toaplan1.cpp",
+ MAME_DIR .. "src/hbmame/drivers/toaplan2.cpp",
+ MAME_DIR .. "src/mame/video/toaplan2.cpp",
+ MAME_DIR .. "src/mame/video/gp9001.cpp",
+ MAME_DIR .. "src/hbmame/drivers/twincobr.cpp",
+ MAME_DIR .. "src/mame/machine/twincobr.cpp",
+ MAME_DIR .. "src/mame/video/twincobr.cpp",
+ MAME_DIR .. "src/mame/drivers/wardner.cpp",
+ MAME_DIR .. "src/mame/video/toaplan_scu.cpp",
+ MAME_DIR .. "src/mame/machine/nmk112.cpp",
+}
+
+createHBMAMEProjects(_target, _subtarget, "univers")
+files {
+ MAME_DIR .. "src/hbmame/drivers/docastle.cpp",
+ MAME_DIR .. "src/mame/machine/docastle.cpp",
+ MAME_DIR .. "src/mame/video/docastle.cpp",
+ MAME_DIR .. "src/hbmame/drivers/mrdo.cpp",
+ MAME_DIR .. "src/mame/video/mrdo.cpp",
+}
+
+createHBMAMEProjects(_target, _subtarget, "valadon")
+files {
+ MAME_DIR .. "src/hbmame/drivers/bagman.cpp",
+ MAME_DIR .. "src/mame/machine/bagman.cpp",
+ MAME_DIR .. "src/mame/video/bagman.cpp",
+}
+
+createHBMAMEProjects(_target, _subtarget, "misc")
+files {
+ MAME_DIR .. "src/hbmame/drivers/dotrikun.cpp",
+ MAME_DIR .. "src/hbmame/drivers/ir.cpp",
+ MAME_DIR .. "src/hbmame/drivers/schaser.cpp",
+ MAME_DIR .. "src/hbmame/drivers/spacmiss.cpp",
+ MAME_DIR .. "src/hbmame/drivers/monaco.cpp",
+-- MAME_DIR .. "src/hbmame/drivers/atari_s1.cpp",
+-- MAME_DIR .. "src/mame/machine/genpin.cpp",
+ MAME_DIR .. "src/hbmame/drivers/kyugo.cpp",
+ MAME_DIR .. "src/mame/video/kyugo.cpp",
+ MAME_DIR .. "src/mame/drivers/skimaxx.cpp",
+ MAME_DIR .. "src/hbmame/drivers/timelimit.cpp",
+ MAME_DIR .. "src/mame/video/timelimt.cpp",
+}
+
+end
+
diff --git a/src/devices/cpu/m68000/m68kcpu.cpp b/src/devices/cpu/m68000/m68kcpu.cpp
index 8a0008bdfb5..20381f6dd93 100644
--- a/src/devices/cpu/m68000/m68kcpu.cpp
+++ b/src/devices/cpu/m68000/m68kcpu.cpp
@@ -758,6 +758,8 @@ void m68000_base_device::execute_run()
{
/* Return point if we had an address error */
check_address_error:
+// HBMAME temp hack, to see if this allows us to run chinese hacks
+#if 0
if (m_address_error==1)
{
m_address_error = 0;
@@ -782,7 +784,7 @@ void m68000_base_device::execute_run()
return;
}
}
-
+#endif
/* Main loop. Keep going until we run out of clock cycles */
while (m_remaining_cycles > 0)
diff --git a/src/emu/digfx.h b/src/emu/digfx.h
index a9a3d060fc5..4c313d7e541 100644
--- a/src/emu/digfx.h
+++ b/src/emu/digfx.h
@@ -25,7 +25,8 @@
constexpr u8 MAX_GFX_ELEMENTS = 32;
constexpr u16 MAX_GFX_PLANES = 8;
-constexpr u16 MAX_GFX_SIZE = 32;
+// HBMAME - needed by monaco
+constexpr u16 MAX_GFX_SIZE = 64;
diff --git a/src/emu/emuopts.cpp b/src/emu/emuopts.cpp
index e9009e92dd4..8b0db741f7e 100644
--- a/src/emu/emuopts.cpp
+++ b/src/emu/emuopts.cpp
@@ -40,7 +40,7 @@ const options_entry emu_options::s_option_entries[] =
{ OPTION_SAMPLEPATH ";sp", "samples", OPTION_STRING, "path to samplesets" },
{ OPTION_ARTPATH, "artwork", OPTION_STRING, "path to artwork files" },
{ OPTION_CTRLRPATH, "ctrlr", OPTION_STRING, "path to controller definitions" },
- { OPTION_INIPATH, ".;ini;ini/presets", OPTION_STRING, "path to ini files" },
+ { OPTION_INIPATH, ".", OPTION_STRING, "path to ini files" }, // MESSUI
{ OPTION_FONTPATH, ".", OPTION_STRING, "path to font files" },
{ OPTION_CHEATPATH, "cheat", OPTION_STRING, "path to cheat files" },
{ OPTION_CROSSHAIRPATH, "crosshair", OPTION_STRING, "path to crosshair files" },
diff --git a/src/emu/romload.cpp b/src/emu/romload.cpp
index 6d2dcfec2e9..503017f3440 100644
--- a/src/emu/romload.cpp
+++ b/src/emu/romload.cpp
@@ -704,8 +704,8 @@ int rom_load_manager::read_rom_data(const rom_entry *parent_region, const rom_en
LOG("Loading ROM data: offs=%X len=%X mask=%02X group=%d skip=%d reverse=%d\n", ROM_GETOFFSET(romp), numbytes, datamask, groupsize, skip, reversed);
/* make sure the length was an even multiple of the group size */
- if (numbytes % groupsize != 0)
- osd_printf_warning("Warning in RomModule definition: %s length not an even multiple of group size\n", ROM_GETNAME(romp));
+// if (numbytes % groupsize != 0)
+// osd_printf_warning("Warning in RomModule definition: %s length not an even multiple of group size\n", ROM_GETNAME(romp)); // HBMAME
/* make sure we only fill within the region space */
if (ROM_GETOFFSET(romp) + numgroups * groupsize + (numgroups - 1) * skip > m_region->bytes())
diff --git a/src/emu/validity.cpp b/src/emu/validity.cpp
index ff29b1b7442..5fdb48c53b0 100644
--- a/src/emu/validity.cpp
+++ b/src/emu/validity.cpp
@@ -1595,7 +1595,7 @@ void validity_checker::validate_roms(device_t &root)
}
// for any non-region ending entries, make sure they don't extend past the end
- if (!ROMENTRY_ISREGIONEND(romp) && current_length > 0)
+ if (!ROMENTRY_ISREGIONEND(romp) && current_length > 0 && !ROMENTRY_ISIGNORE(romp)) // HBMAME
{
items_since_region++;
if (ROM_GETOFFSET(romp) + ROM_GETLENGTH(romp) > current_length)
diff --git a/src/emu/video.h b/src/emu/video.h
index 7e19de3c5ab..50451ab1401 100644
--- a/src/emu/video.h
+++ b/src/emu/video.h
@@ -62,6 +62,7 @@ public:
bool is_recording() const { return (m_mng_file || m_avi_file); }
// setters
+ void set_speed_factor(int speed) { m_speed = speed; } // MESSUI
void set_frameskip(int frameskip);
void set_throttled(bool throttled = true) { m_throttled = throttled; }
void set_throttle_rate(float throttle_rate) { m_throttle_rate = throttle_rate; }
diff --git a/src/frontend/mame/audit.cpp b/src/frontend/mame/audit.cpp
index b0268675005..7c132b29ceb 100644
--- a/src/frontend/mame/audit.cpp
+++ b/src/frontend/mame/audit.cpp
@@ -562,3 +562,81 @@ media_auditor::audit_record::audit_record(const char *name, media_type type)
, m_shared_device(nullptr)
{
}
+
+
+
+// MESSUI - only report problems that the user can fix
+media_auditor::summary media_auditor::winui_summarize(const char *name, std::string *output)
+{
+ if (m_record_list.empty())
+ return NONE_NEEDED;
+
+ // loop over records
+ summary overall_status = CORRECT;
+ for (audit_record const &record : m_record_list)
+ {
+ summary best_new_status = INCORRECT;
+
+ // skip anything that's fine
+ if ( (record.substatus() == audit_substatus::GOOD)
+ || (record.substatus() == audit_substatus::GOOD_NEEDS_REDUMP)
+ || (record.substatus() == audit_substatus::NOT_FOUND_NODUMP)
+ || (record.substatus() == audit_substatus::FOUND_NODUMP)
+ )
+ continue;
+
+ // output the game name, file name, and length (if applicable)
+ //if (output)
+ {
+ output->append(string_format("%-12s: %s", name, record.name()));
+ if (record.expected_length() > 0)
+ output->append(string_format(" (%d bytes)", record.expected_length()));
+ output->append(" - ");
+ }
+
+ // use the substatus for finer details
+ switch (record.substatus())
+ {
+ case audit_substatus::FOUND_NODUMP:
+ if (output) output->append("NO GOOD DUMP KNOWN\n");
+ best_new_status = BEST_AVAILABLE;
+ break;
+
+ case audit_substatus::FOUND_BAD_CHECKSUM:
+ if (output)
+ {
+ output->append("INCORRECT CHECKSUM:\n");
+ output->append(string_format("EXPECTED: %s\n", record.expected_hashes().macro_string().c_str()));
+ output->append(string_format(" FOUND: %s\n", record.actual_hashes().macro_string().c_str()));
+ }
+ break;
+
+ case audit_substatus::FOUND_WRONG_LENGTH:
+ if (output) output->append(string_format("INCORRECT LENGTH: %d bytes\n", record.actual_length()));
+ break;
+
+ case audit_substatus::NOT_FOUND:
+ if (output)
+ {
+ device_t *shared_device = record.shared_device();
+ if (shared_device == NULL)
+ output->append("NOT FOUND\n");
+ else
+ output->append(string_format("NOT FOUND (%s)\n", shared_device->shortname()));
+ }
+ break;
+
+ case audit_substatus::NOT_FOUND_OPTIONAL:
+ if (output) output->append("NOT FOUND BUT OPTIONAL\n");
+ best_new_status = BEST_AVAILABLE;
+ break;
+
+ default:
+ break;
+ }
+
+ // downgrade the overall status if necessary
+ overall_status = (std::max)(overall_status, best_new_status);
+ }
+ return overall_status;
+}
diff --git a/src/frontend/mame/audit.h b/src/frontend/mame/audit.h
index be6dccf297c..c017651842f 100644
--- a/src/frontend/mame/audit.h
+++ b/src/frontend/mame/audit.h
@@ -161,6 +161,7 @@ public:
summary audit_software(const std::string &list_name, const software_info *swinfo, const char *validation = AUDIT_VALIDATE_FULL);
summary audit_samples();
summary summarize(const char *name, std::ostream *output = nullptr) const;
+ summary winui_summarize(const char *name, std::string *output = nullptr); //WINUI - only report problems that the user can fix
private:
// internal helpers
diff --git a/src/frontend/mame/ui/ui.cpp b/src/frontend/mame/ui/ui.cpp
index df5089cb1c0..0a8324c4a40 100644
--- a/src/frontend/mame/ui/ui.cpp
+++ b/src/frontend/mame/ui/ui.cpp
@@ -420,7 +420,8 @@ void mame_ui_manager::update_and_render(render_container &container)
m_popup_text_end = 0;
// display the internal mouse cursor
- if (m_mouse_show || (is_menu_active() && machine().options().ui_mouse()))
+ if (machine().options().ui_mouse() && (m_mouse_show || is_menu_active())) //MESSUI - (NEWUI) system pointer always on; MAME pointer always off
+ //if (m_mouse_show || (is_menu_active() && machine().options().ui_mouse()))
{
int32_t mouse_target_x, mouse_target_y;
bool mouse_button;
diff --git a/src/hbmame/bus/neogeo/banked_cart.cpp b/src/hbmame/bus/neogeo/banked_cart.cpp
new file mode 100644
index 00000000000..3a368bbf532
--- /dev/null
+++ b/src/hbmame/bus/neogeo/banked_cart.cpp
@@ -0,0 +1,109 @@
+// license:BSD-3-Clause
+// copyright-holders:S. Smith,David Haywood
+#include "emu.h"
+#include "banked_cart.h"
+
+
+
+DEFINE_DEVICE_TYPE(NEOGEO_BANKED_CART, neogeo_banked_cart_device, "neogeo_banked_cart", "NeoGeo Banked Cartridge")
+
+
+neogeo_banked_cart_device::neogeo_banked_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : device_t(mconfig, NEOGEO_BANKED_CART, tag, owner, clock),
+ m_bank_cartridge(nullptr),
+ m_main_cpu_bank_address(0),
+ m_region(nullptr),
+ m_region_size(0)
+
+{
+}
+
+void neogeo_banked_cart_device::postload()
+{
+ _set_main_cpu_bank_address();
+}
+
+void neogeo_banked_cart_device::device_start()
+{
+ save_item(NAME(m_main_cpu_bank_address));
+ machine().save().register_postload(save_prepost_delegate(FUNC(neogeo_banked_cart_device::postload), this));
+}
+
+void neogeo_banked_cart_device::device_reset()
+{
+}
+
+
+
+
+
+
+/*************************************
+ *
+ * Main CPU banking
+ *
+ *************************************/
+
+void neogeo_banked_cart_device::_set_main_cpu_bank_address(void)
+{
+ if (!m_region)
+ printf("region is null\n");
+
+ if (!m_bank_cartridge)
+ printf("bank_cartridge is null\n");
+
+ if (m_region && m_bank_cartridge) m_bank_cartridge->set_base(m_region + m_main_cpu_bank_address);
+}
+
+
+void neogeo_banked_cart_device::neogeo_set_main_cpu_bank_address( uint32_t bank_address )
+{
+// if (LOG_MAIN_CPU_BANKING) logerror("MAIN CPU PC %06x: neogeo_set_main_cpu_bank_address %06x\n", m_maincpu->pc(), bank_address);
+
+ m_main_cpu_bank_address = bank_address;
+
+ _set_main_cpu_bank_address();
+}
+
+
+WRITE16_MEMBER(neogeo_banked_cart_device::main_cpu_bank_select_w)
+{
+ uint32_t bank_address;
+ uint32_t len = m_region_size;
+
+ if ((len <= 0x100000) && (data & 0x07))
+ logerror("PC %06x: warning: bankswitch to %02x but no banks available\n", space.device().safe_pc(), data);
+ else
+ {
+ bank_address = ((data & 0x07) + 1) * 0x100000;
+
+ if (bank_address >= len)
+ {
+ logerror("PC %06x: warning: bankswitch to empty bank %02x\n", space.device().safe_pc(), data);
+ bank_address = 0x100000;
+ }
+
+ neogeo_set_main_cpu_bank_address(bank_address);
+ }
+}
+
+void neogeo_banked_cart_device::init_banks(void)
+{
+ /* set initial main CPU bank */
+ if (m_region_size > 0x100000)
+ neogeo_set_main_cpu_bank_address(0x100000);
+ else
+ neogeo_set_main_cpu_bank_address(0x000000);
+}
+
+void neogeo_banked_cart_device::install_banks(running_machine& machine, cpu_device* maincpu, uint8_t* region, uint32_t region_size)
+{
+ maincpu->space(AS_PROGRAM).install_read_bank(0x200000, 0x2fffff, "cartridge");
+ maincpu->space(AS_PROGRAM).install_write_handler(0x2ffff0, 0x2fffff, write16_delegate(FUNC(neogeo_banked_cart_device::main_cpu_bank_select_w),this));
+
+ m_bank_cartridge = machine.root_device().membank("cartridge");
+ m_region = region;
+ m_region_size = region_size;
+
+ init_banks();
+}
diff --git a/src/hbmame/bus/neogeo/banked_cart.h b/src/hbmame/bus/neogeo/banked_cart.h
new file mode 100644
index 00000000000..4cd556deeb0
--- /dev/null
+++ b/src/hbmame/bus/neogeo/banked_cart.h
@@ -0,0 +1,40 @@
+// license:BSD-3-Clause
+// copyright-holders:S. Smith,David Haywood
+
+
+#pragma once
+
+#ifndef __NEOGEO_BANKED_CART__
+#define __NEOGEO_BANKED_CART__
+
+DECLARE_DEVICE_TYPE(NEOGEO_BANKED_CART, neogeo_banked_cart_device)
+
+#define MCFG_NEOGEO_BANKED_CART_ADD(_tag) \
+ MCFG_DEVICE_ADD(_tag, NEOGEO_BANKED_CART, 0)
+
+
+class neogeo_banked_cart_device : public device_t
+{
+public:
+ // construction/destruction
+ neogeo_banked_cart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
+ memory_bank* m_bank_cartridge;
+ uint32_t m_main_cpu_bank_address;
+ uint8_t* m_region;
+ uint32_t m_region_size;
+
+
+ void install_banks(running_machine& machine, cpu_device* maincpu, uint8_t* region, uint32_t region_size);
+ WRITE16_MEMBER(main_cpu_bank_select_w);
+ void neogeo_set_main_cpu_bank_address(uint32_t bank_address);
+ void _set_main_cpu_bank_address();
+ void init_banks(void);
+
+protected:
+ virtual void device_start() override;
+ virtual void device_reset() override;
+ void postload();
+};
+
+#endif
diff --git a/src/hbmame/bus/neogeo/prot.cpp b/src/hbmame/bus/neogeo/prot.cpp
new file mode 100644
index 00000000000..7a017e74b6c
--- /dev/null
+++ b/src/hbmame/bus/neogeo/prot.cpp
@@ -0,0 +1,3131 @@
+// license:BSD-3-Clause
+// copyright-holders:S. Smith,David Haywood
+#include "neogeo.h"
+
+
+DEFINE_DEVICE_TYPE(NGBOOTLEG_PROT, ngbootleg_prot_device, "ngbootleg_prot", "NeoGeo Protection (Bootleg)")
+
+
+ngbootleg_prot_device::ngbootleg_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : device_t(mconfig, NGBOOTLEG_PROT, tag, owner, clock)
+ , kof2k3_overlay(0)
+ , m_mainrom(nullptr)
+ , m_fixedrom(nullptr)
+ , m_bankdev(nullptr)
+ { }
+
+
+void ngbootleg_prot_device::device_start()
+{
+ memset(m_cartridge_ram, 0x00, 0x2000);
+
+ save_item(NAME(m_cartridge_ram));
+}
+
+void ngbootleg_prot_device::device_reset() { }
+
+
+/* General Bootleg Functions - used by more than 1 game */
+
+
+void ngbootleg_prot_device::neogeo_bootleg_cx_decrypt(uint8_t*sprrom, uint32_t sprrom_size)
+{
+ int i;
+ int cx_size = sprrom_size;
+ uint8_t *rom = sprrom;
+ std::vector<uint8_t> buf( cx_size );
+
+ memcpy( &buf[0], rom, cx_size );
+
+ for( i = 0; i < cx_size / 0x40; i++ )
+ memcpy( &rom[ i * 0x40 ], &buf[ (i ^ 1) * 0x40 ], 0x40 );
+}
+
+
+void ngbootleg_prot_device::neogeo_bootleg_sx_decrypt(uint8_t* fixed, uint32_t fixed_size, int value )
+{
+ int sx_size = fixed_size;
+ uint8_t *rom = fixed;
+ int i;
+
+ if (value == 1)
+ {
+ std::vector<uint8_t> buf( sx_size );
+ memcpy( &buf[0], rom, sx_size );
+
+ for( i = 0; i < sx_size; i += 0x10 )
+ {
+ memcpy( &rom[ i ], &buf[ i + 8 ], 8 );
+ memcpy( &rom[ i + 8 ], &buf[ i ], 8 );
+ }
+ }
+ else if (value == 2)
+ {
+ for( i = 0; i < sx_size; i++ )
+ rom[ i ] = bitswap<8>( rom[ i ], 7, 6, 0, 4, 3, 2, 1, 5 );
+ }
+}
+
+
+
+/* The King of Fighters '97 Oroshi Plus 2003 (bootleg) */
+
+void ngbootleg_prot_device::kof97oro_px_decode(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ int i;
+ std::vector<uint16_t> tmp( 0x500000 );
+ uint16_t *src = (uint16_t*)cpurom;
+
+ for (i = 0; i < 0x500000/2; i++)
+ tmp[i] = src[i ^ 0x7ffef];
+
+ memcpy (src, &tmp[0], 0x500000);
+}
+
+
+/* The King of Fighters 10th Anniversary (The King of Fighters 2002 bootleg) */
+
+
+/* this uses RAM based tiles for the text layer, however the implementation
+ is incomplete, at the moment the S data is copied from the program rom on
+ start-up instead */
+
+void ngbootleg_prot_device::kof10thBankswitch(address_space &space, uint16_t nBank)
+{
+ uint32_t bank = 0x100000 + ((nBank & 7) << 20);
+ if (bank >= 0x700000)
+ bank = 0x100000;
+ m_bankdev->neogeo_set_main_cpu_bank_address(bank);
+}
+
+READ16_MEMBER( ngbootleg_prot_device::kof10th_RAMB_r )
+{
+ return m_cartridge_ram[offset];
+}
+
+READ16_MEMBER(ngbootleg_prot_device::kof10th_RAM2_r)
+{
+// printf("kof10th_RAM2_r\n");
+ return m_cartridge_ram2[offset];
+}
+
+WRITE16_MEMBER( ngbootleg_prot_device::kof10th_custom_w )
+{
+ if (!m_cartridge_ram[0xFFE]) { // Write to RAM bank A
+ //uint16_t *prom = (uint16_t*)m_mainrom;
+ COMBINE_DATA(&m_cartridge_ram2[(0x00000/2) + (offset & 0xFFFF)]);
+ }
+ else
+ { // Write S data on-the-fly
+ m_fixedrom[offset] = bitswap<8>(data,7,6,0,4,3,2,1,5);
+ }
+}
+
+WRITE16_MEMBER( ngbootleg_prot_device::kof10th_bankswitch_w )
+{
+ if (offset >= 0x5F000) {
+ if (offset == 0x5FFF8)
+ { // Standard bankswitch
+ kof10thBankswitch(space, data);
+ }
+ else
+ if (offset == 0x5FFFC && m_cartridge_ram[0xFFC] != data)
+ { // Special bankswitch
+ uint8_t *src = m_mainrom;
+ memcpy (src + 0x10000, src + ((data & 1) ? 0x810000 : 0x710000), 0xcffff);
+ }
+ COMBINE_DATA(&m_cartridge_ram[offset & 0xFFF]);
+ }
+}
+
+void ngbootleg_prot_device::install_kof10th_protection (cpu_device* maincpu, neogeo_banked_cart_device* bankdev, uint8_t* cpurom, uint32_t cpurom_size, uint8_t* fixedrom, uint32_t fixedrom_size)
+{
+ m_mainrom = cpurom;
+ m_fixedrom = fixedrom;
+ m_bankdev = bankdev;
+
+ maincpu->space(AS_PROGRAM).install_read_handler(0x0e0000, 0x0fffff, read16_delegate(FUNC(ngbootleg_prot_device::kof10th_RAM2_r),this));
+
+ maincpu->space(AS_PROGRAM).install_read_handler(0x2fe000, 0x2fffff, read16_delegate(FUNC(ngbootleg_prot_device::kof10th_RAMB_r),this));
+ maincpu->space(AS_PROGRAM).install_write_handler(0x200000, 0x23ffff, write16_delegate(FUNC(ngbootleg_prot_device::kof10th_custom_w),this));
+ maincpu->space(AS_PROGRAM).install_write_handler(0x240000, 0x2fffff, write16_delegate(FUNC(ngbootleg_prot_device::kof10th_bankswitch_w),this));
+ memcpy(m_cartridge_ram2, cpurom + 0xe0000, 0x20000);
+
+ // HACK: only save this at device_start (not allowed later)
+ if (machine().phase() <= machine_phase::INIT)
+ save_pointer(NAME(m_fixedrom), 0x40000);
+}
+
+void ngbootleg_prot_device::decrypt_kof10th(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ int i, j;
+ std::vector<uint8_t> dst(0x900000);
+ uint8_t *src = cpurom;
+
+ memcpy(&dst[0x000000], src + 0x700000, 0x100000); // Correct (Verified in Uni-bios)
+ memcpy(&dst[0x100000], src + 0x000000, 0x800000);
+
+ for (i = 0; i < 0x900000; i++)
+ {
+ j = bitswap<24>(i,23,22,21,20,19,18,17,16,15,14,13,12,11,2,9,8,7,1,5,4,3,10,6,0);
+ src[j] = dst[i];
+ }
+
+ // Altera protection chip patches these over P ROM
+ ((uint16_t*)src)[0x0124/2] = 0x000d; // Enables XOR for RAM moves, forces SoftDIPs, and USA region
+ ((uint16_t*)src)[0x0126/2] = 0xf7a8;
+ ((uint16_t*)src)[0x8bf4/2] = 0x4ef9; // Run code to change "S" data
+ ((uint16_t*)src)[0x8bf6/2] = 0x000d;
+ ((uint16_t*)src)[0x8bf8/2] = 0xf980;
+}
+
+
+/* The King of Fighters 10th Anniversary Extra Plus (The King of Fighters 2002 bootleg) */
+
+
+void ngbootleg_prot_device::kf10thep_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ uint16_t *rom = (uint16_t*)cpurom;
+ std::vector<uint16_t> buf(0x100000/2);
+
+ memcpy(&buf[0x000000/2], &rom[0x060000/2], 0x20000);
+ memcpy(&buf[0x020000/2], &rom[0x100000/2], 0x20000);
+ memcpy(&buf[0x040000/2], &rom[0x0e0000/2], 0x20000);
+ memcpy(&buf[0x060000/2], &rom[0x180000/2], 0x20000);
+ memcpy(&buf[0x080000/2], &rom[0x020000/2], 0x20000);
+ memcpy(&buf[0x0a0000/2], &rom[0x140000/2], 0x20000);
+ memcpy(&buf[0x0c0000/2], &rom[0x0c0000/2], 0x20000);
+ memcpy(&buf[0x0e0000/2], &rom[0x1a0000/2], 0x20000);
+ memcpy(&buf[0x0002e0/2], &rom[0x0402e0/2], 0x6a); // copy banked code to a new memory region
+ memcpy(&buf[0x0f92bc/2], &rom[0x0492bc/2], 0xb9e); // copy banked code to a new memory region
+ memcpy(rom, &buf[0], 0x100000);
+
+ for (int i = 0xf92bc/2; i < 0xf9e58/2; i++)
+ {
+ if (rom[i+0] == 0x4eb9 && rom[i+1] == 0x0000) rom[i+1] = 0x000F; // correct JSR in moved code
+ if (rom[i+0] == 0x4ef9 && rom[i+1] == 0x0000) rom[i+1] = 0x000F; // correct JMP in moved code
+ }
+ rom[0x00342/2] = 0x000f;
+
+ memmove(&rom[0x100000/2], &rom[0x200000/2], 0x600000);
+}
+
+
+/* The King of Fighters 10th Anniversary 2005 Unique (The King of Fighters 2002 bootleg) */
+
+
+void ngbootleg_prot_device::kf2k5uni_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ int i, j, ofst;
+ uint8_t *src = cpurom;
+ uint8_t dst[0x80];
+
+ for (i = 0; i < 0x800000; i+=0x80)
+ {
+ for (j = 0; j < 0x80; j+=2)
+ {
+ ofst = bitswap<8>(j, 0, 3, 4, 5, 6, 1, 2, 7);
+ memcpy(&dst[j], src + i + ofst, 2);
+ }
+ memcpy(src + i, &dst[0], 0x80);
+ }
+
+ memcpy(src, src + 0x600000, 0x100000); // Seems to be the same as kof10th
+}
+
+void ngbootleg_prot_device::kf2k5uni_sx_decrypt(uint8_t* fixedrom, uint32_t fixedrom_size)
+{
+ int i;
+ uint8_t *srom = fixedrom;
+
+ for (i = 0; i < 0x20000; i++)
+ srom[i] = bitswap<8>(srom[i], 4, 5, 6, 7, 0, 1, 2, 3);
+}
+
+void ngbootleg_prot_device::kf2k5uni_mx_decrypt(uint8_t* audiorom, uint32_t audiorom_size)
+{
+ int i;
+ uint8_t *mrom = audiorom;
+
+ for (i = 0; i < 0x30000; i++)
+ mrom[i] = bitswap<8>(mrom[i], 4, 5, 6, 7, 0, 1, 2, 3);
+}
+
+void ngbootleg_prot_device::decrypt_kf2k5uni(uint8_t* cpurom, uint32_t cpurom_size, uint8_t* audiorom, uint32_t audiorom_size, uint8_t* fixedrom, uint32_t fixedrom_size)
+{
+ kf2k5uni_px_decrypt(cpurom, cpurom_size);
+ kf2k5uni_sx_decrypt(fixedrom, fixedrom_size);
+ kf2k5uni_mx_decrypt(audiorom, audiorom_size);
+}
+
+
+/* The King of Fighters 2002 (bootleg) */
+
+
+void ngbootleg_prot_device::kof2002b_gfx_decrypt(uint8_t *src, int size)
+{
+ int i, j;
+ static const uint8_t t[ 8 ][ 6 ] =
+ {
+ { 0, 8, 7, 6, 2, 1 },
+ { 1, 0, 8, 7, 6, 2 },
+ { 2, 1, 0, 8, 7, 6 },
+ { 6, 2, 1, 0, 8, 7 },
+ { 7, 6, 2, 1, 0, 8 },
+ { 0, 1, 2, 6, 7, 8 },
+ { 2, 1, 0, 6, 7, 8 },
+ { 8, 0, 7, 6, 2, 1 },
+ };
+
+ std::vector<uint8_t> dst( 0x10000 );
+
+ for ( i = 0; i < size; i+=0x10000 )
+ {
+ memcpy( &dst[0], src+i, 0x10000 );
+
+ for ( j = 0; j < 0x200; j++ )
+ {
+ int n = (j & 0x38) >> 3;
+ int ofst = bitswap<16>(j, 15, 14, 13, 12, 11, 10, 9, t[n][0], t[n][1], t[n][2], 5, 4, 3, t[n][3], t[n][4], t[n][5]);
+ memcpy( src+i+ofst*128, &dst[j*128], 128 );
+ }
+ }
+}
+
+
+/* The King of Fighters 2002 Magic Plus (bootleg) */
+
+
+void ngbootleg_prot_device::kf2k2mp_decrypt(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ int i,j;
+
+ uint8_t *src = cpurom;
+ uint8_t dst[0x80];
+
+ memmove(src, src + 0x300000, 0x500000);
+
+ for (i = 0; i < 0x800000; i+=0x80)
+ {
+ for (j = 0; j < 0x80 / 2; j++)
+ {
+ int ofst = bitswap<8>( j, 6, 7, 2, 3, 4, 5, 0, 1 );
+ memcpy(dst + j * 2, src + i + ofst * 2, 2);
+ }
+ memcpy(src + i, dst, 0x80);
+ }
+}
+
+
+/* The King of Fighters 2002 Magic Plus II (bootleg) */
+
+
+void ngbootleg_prot_device::kf2k2mp2_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ uint8_t *src = cpurom;
+ std::vector<uint8_t> dst(0x600000);
+
+ memcpy (&dst[0x000000], &src[0x1C0000], 0x040000);
+ memcpy (&dst[0x040000], &src[0x140000], 0x080000);
+ memcpy (&dst[0x0C0000], &src[0x100000], 0x040000);
+ memcpy (&dst[0x100000], &src[0x200000], 0x400000);
+ memcpy (&src[0x000000], &dst[0x000000], 0x600000);
+}
+
+
+/* Crouching Tiger Hidden Dragon 2003 (bootleg of King of Fighters 2001) */
+
+
+/* descrambling information from razoola */
+void ngbootleg_prot_device::cthd2003_neogeo_gfx_address_fix_do(uint8_t* sprrom, uint32_t sprrom_size, int start, int end, int bit3shift, int bit2shift, int bit1shift, int bit0shift)
+{
+ int i,j;
+ int tilesize=128;
+
+ std::vector<uint8_t> rom(16*tilesize); // 16 tiles buffer
+ uint8_t* realrom = sprrom + start*tilesize;
+
+ for (i = 0; i < (end-start)/16; i++)
+ {
+ for (j = 0; j < 16; j++)
+ {
+ int offset = (((j&1)>>0)<<bit0shift) +(((j&2)>>1)<<bit1shift) +(((j&4)>>2)<<bit2shift) +(((j&8)>>3)<<bit3shift);
+
+ memcpy(&rom[j*tilesize], realrom+offset*tilesize, tilesize);
+ }
+ memcpy(realrom,&rom[0],tilesize*16);
+ realrom += 16*tilesize;
+ }
+}
+
+void ngbootleg_prot_device::cthd2003_neogeo_gfx_address_fix(uint8_t* sprrom, uint32_t sprrom_size, int start, int end)
+{
+ cthd2003_neogeo_gfx_address_fix_do(sprrom, sprrom_size, start+512*0, end+512*0, 0,3,2,1);
+ cthd2003_neogeo_gfx_address_fix_do(sprrom, sprrom_size, start+512*1, end+512*1, 1,0,3,2);
+ cthd2003_neogeo_gfx_address_fix_do(sprrom, sprrom_size, start+512*2, end+512*2, 2,1,0,3);
+ // skip 3 & 4
+ cthd2003_neogeo_gfx_address_fix_do(sprrom, sprrom_size, start+512*5, end+512*5, 0,1,2,3);
+ cthd2003_neogeo_gfx_address_fix_do(sprrom, sprrom_size, start+512*6, end+512*6, 0,1,2,3);
+ cthd2003_neogeo_gfx_address_fix_do(sprrom, sprrom_size, start+512*7, end+512*7, 0,2,3,1);
+}
+
+void ngbootleg_prot_device::cthd2003_c(uint8_t* sprrom, uint32_t sprrom_size, int pow)
+{
+ int i;
+
+ for (i=0; i<=192; i+=8)
+ cthd2003_neogeo_gfx_address_fix(sprrom, sprrom_size, i*512,i*512+512);
+
+ for (i=200; i<=392; i+=8)
+ cthd2003_neogeo_gfx_address_fix(sprrom, sprrom_size, i*512,i*512+512);
+
+ for (i=400; i<=592; i+=8)
+ cthd2003_neogeo_gfx_address_fix(sprrom, sprrom_size, i*512,i*512+512);
+
+ for (i=600; i<=792; i+=8)
+ cthd2003_neogeo_gfx_address_fix(sprrom, sprrom_size, i*512,i*512+512);
+
+ for (i=800; i<=992; i+=8)
+ cthd2003_neogeo_gfx_address_fix(sprrom, sprrom_size, i*512,i*512+512);
+
+ for (i=1000; i<=1016; i+=8)
+ cthd2003_neogeo_gfx_address_fix(sprrom, sprrom_size, i*512,i*512+512);
+}
+
+void ngbootleg_prot_device::decrypt_cthd2003(uint8_t* sprrom, uint32_t sprrom_size, uint8_t* audiorom, uint32_t audiorom_size, uint8_t* fixedrom, uint32_t fixedrom_size)
+{
+ uint8_t *romdata = fixedrom;
+ std::vector<uint8_t> tmp(8*128*128);
+
+ memcpy(&tmp[8*0*128], romdata+8*0*128, 8*32*128);
+ memcpy(&tmp[8*32*128], romdata+8*64*128, 8*32*128);
+ memcpy(&tmp[8*64*128], romdata+8*32*128, 8*32*128);
+ memcpy(&tmp[8*96*128], romdata+8*96*128, 8*32*128);
+ memcpy(romdata, &tmp[0], 8*128*128);
+
+ romdata = audiorom+0x10000;
+ memcpy(&tmp[8*0*128], romdata+8*0*128, 8*32*128);
+ memcpy(&tmp[8*32*128], romdata+8*64*128, 8*32*128);
+ memcpy(&tmp[8*64*128], romdata+8*32*128, 8*32*128);
+ memcpy(&tmp[8*96*128], romdata+8*96*128, 8*32*128);
+ memcpy(romdata, &tmp[0], 8*128*128);
+
+ memcpy(romdata-0x10000,romdata,0x10000);
+
+ cthd2003_c(sprrom, sprrom_size, 0);
+}
+
+WRITE16_MEMBER( ngbootleg_prot_device::cthd2003_bankswitch_w )
+{
+ int bankaddress;
+ static const int cthd2003_banks[8] = { 1,0,1,0,1,0,3,2 };
+ if (offset == 0)
+ {
+ bankaddress = 0x100000 + cthd2003_banks[data&7] * 0x100000;
+ m_bankdev->neogeo_set_main_cpu_bank_address(bankaddress);
+ }
+}
+
+void ngbootleg_prot_device::patch_cthd2003(cpu_device* maincpu, neogeo_banked_cart_device* bankdev, uint8_t* cpurom, uint32_t cpurom_size)
+{
+ /* patches thanks to razoola */
+ int i;
+ uint16_t *mem16 = (uint16_t *)cpurom;
+
+ /* special ROM banking handler */
+ maincpu->space(AS_PROGRAM).install_write_handler(0x2ffff0, 0x2fffff, write16_delegate(FUNC(ngbootleg_prot_device::cthd2003_bankswitch_w),this));
+ m_bankdev = bankdev;
+
+ // theres still a problem on the character select screen but it seems to be related to cpu core timing issues,
+ // overclocking the 68k prevents it.
+
+ // fix garbage on s1 layer over everything
+ mem16[0xf415a/2] = 0x4ef9;
+ mem16[0xf415c/2] = 0x000f;
+ mem16[0xf415e/2] = 0x4cf2;
+ // Fix corruption in attract mode before title screen
+ for (i=0x1ae290/2;i < 0x1ae8d0/2; i=i+1)
+ mem16[i] = 0x0000;
+
+ // Fix for title page
+ for (i=0x1f8ef0/2;i < 0x1fa1f0/2; i=i+2)
+ {
+ mem16[i] -= 0x7000;
+ mem16[i+1] -= 0x0010;
+ }
+
+ // Fix for green dots on title page
+ for (i=0xac500/2;i < 0xac520/2; i=i+1)
+ mem16[i] = 0xFFFF;
+
+ // Fix for blanks as screen change level end clear
+ mem16[0x991d0/2] = 0xdd03;
+ mem16[0x99306/2] = 0xdd03;
+ mem16[0x99354/2] = 0xdd03;
+ mem16[0x9943e/2] = 0xdd03;
+}
+
+
+/* Crouching Tiger Hidden Dragon 2003 Super Plus (bootleg of King of Fighters 2001) */
+
+
+void ngbootleg_prot_device::ct2k3sp_sx_decrypt( uint8_t* fixedrom, uint32_t fixedrom_size )
+{
+ int rom_size = fixedrom_size;
+ uint8_t *rom = fixedrom;
+ std::vector<uint8_t> buf( rom_size );
+ int i;
+ int ofst;
+
+ memcpy( &buf[0], rom, rom_size );
+
+ for( i = 0; i < rom_size; i++ ){
+ ofst = bitswap<24>( (i & 0x1ffff), 23, 22, 21, 20, 19, 18, 17, 3, 0, 1, 4, 2, 13, 14, 16, 15, 5, 6, 11, 10, 9, 8, 7, 12 );
+
+ ofst += (i >> 17) << 17;
+
+ rom[ i ] = buf[ ofst ];
+ }
+
+ memcpy( &buf[0], rom, rom_size );
+
+ memcpy( &rom[ 0x08000 ], &buf[ 0x10000 ], 0x8000 );
+ memcpy( &rom[ 0x10000 ], &buf[ 0x08000 ], 0x8000 );
+ memcpy( &rom[ 0x28000 ], &buf[ 0x30000 ], 0x8000 );
+ memcpy( &rom[ 0x30000 ], &buf[ 0x28000 ], 0x8000 );
+}
+
+void ngbootleg_prot_device::decrypt_ct2k3sp(uint8_t* sprrom, uint32_t sprrom_size, uint8_t* audiorom, uint32_t audiorom_size, uint8_t* fixedrom, uint32_t fixedrom_size)
+{
+ uint8_t *romdata = audiorom + 0x10000;
+ std::vector<uint8_t> tmp(8*128*128);
+ memcpy(&tmp[8*0*128], romdata+8*0*128, 8*32*128);
+ memcpy(&tmp[8*32*128], romdata+8*64*128, 8*32*128);
+ memcpy(&tmp[8*64*128], romdata+8*32*128, 8*32*128);
+ memcpy(&tmp[8*96*128], romdata+8*96*128, 8*32*128);
+ memcpy(romdata, &tmp[0], 8*128*128);
+ memcpy(romdata - 0x10000, romdata, 0x10000);
+ ct2k3sp_sx_decrypt(fixedrom, fixedrom_size);
+ cthd2003_c(sprrom, sprrom_size, 0);
+}
+
+
+/* Crouching Tiger Hidden Dragon 2003 Super Plus alternate (bootleg of King of Fighters 2001) */
+
+
+void ngbootleg_prot_device::decrypt_ct2k3sa(uint8_t* sprrom, uint32_t sprrom_size, uint8_t* audiorom, uint32_t audiorom_size )
+{
+ uint8_t *romdata = audiorom + 0x10000;
+ std::vector<uint8_t> tmp(8*128*128);
+ memcpy(&tmp[8*0*128], romdata+8*0*128, 8*32*128);
+ memcpy(&tmp[8*32*128], romdata+8*64*128, 8*32*128);
+ memcpy(&tmp[8*64*128], romdata+8*32*128, 8*32*128);
+ memcpy(&tmp[8*96*128], romdata+8*96*128, 8*32*128);
+ memcpy(romdata, &tmp[0], 8*128*128);
+
+ memcpy(romdata - 0x10000, romdata, 0x10000);
+ cthd2003_c(sprrom, sprrom_size, 0);
+}
+
+void ngbootleg_prot_device::patch_ct2k3sa(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ /* patches thanks to razoola - same as for cthd2003*/
+ int i;
+ uint16_t *mem16 = (uint16_t *)cpurom;
+
+ // theres still a problem on the character select screen but it seems to be related to cpu core timing issues,
+ // overclocking the 68k prevents it.
+
+ // fix garbage on s1 layer over everything
+ mem16[0xf415a/2] = 0x4ef9;
+ mem16[0xf415c/2] = 0x000f;
+ mem16[0xf415e/2] = 0x4cf2;
+
+ // Fix corruption in attract mode before title screen
+ for (i=0x1ae290/2;i < 0x1ae8d0/2; i=i+1)
+ mem16[i] = 0x0000;
+
+ // Fix for title page
+ for (i=0x1f8ef0/2;i < 0x1fa1f0/2; i=i+2)
+ {
+ mem16[i] -= 0x7000;
+ mem16[i+1] -= 0x0010;
+ }
+
+ // Fix for green dots on title page
+ for (i=0xac500/2;i < 0xac520/2; i=i+1)
+ mem16[i] = 0xFFFF;
+
+ // Fix for blanks as screen change level end clear
+ mem16[0x991d0/2] = 0xdd03;
+ mem16[0x99306/2] = 0xdd03;
+ mem16[0x99354/2] = 0xdd03;
+ mem16[0x9943e/2] = 0xdd03;
+}
+
+
+/* King of Fighters Special Edition 2004 (bootleg of King of Fighters 2002) */
+
+
+void ngbootleg_prot_device::decrypt_kof2k4se_68k(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ uint8_t *src = cpurom+0x100000;
+ std::vector<uint8_t> dst(0x400000);
+ static const int sec[] = {0x300000, 0x200000, 0x100000, 0x000000};
+ memcpy(&dst[0], src, 0x400000);
+
+ for(uint8_t i = 0; i < 4; ++i)
+ memcpy(src + i*0x100000, &dst[sec[i]], 0x100000);
+}
+
+
+/* Lansquenet 2004 (Shock Troopers - 2nd Squad bootleg) */
+
+
+void ngbootleg_prot_device::lans2004_vx_decrypt(uint8_t* ymsndrom, uint32_t ymsndrom_size)
+{
+ uint8_t *rom = ymsndrom;
+ for (uint8_t i = 0; i < 0xA00000; i++)
+ rom[i] = bitswap<8>(rom[i], 0, 1, 5, 4, 3, 2, 6, 7);
+}
+
+void ngbootleg_prot_device::lans2004_decrypt_68k(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ /* Descrambling P ROMs - Thanks to Razoola for the info */
+ int i;
+ uint8_t *src = cpurom;
+ uint16_t *rom = (uint16_t*)cpurom;
+
+ static const int sec[] = { 0x3, 0x8, 0x7, 0xC, 0x1, 0xA, 0x6, 0xD };
+ std::vector<uint8_t> dst(0x600000);
+
+ for (i = 0; i < 8; i++)
+ memcpy (&dst[i * 0x20000], src + sec[i] * 0x20000, 0x20000);
+
+ memcpy (&dst[0x0BBB00], src + 0x045B00, 0x001710);
+ memcpy (&dst[0x02FFF0], src + 0x1A92BE, 0x000010);
+ memcpy (&dst[0x100000], src + 0x200000, 0x400000);
+ memcpy (src, &dst[0], 0x600000);
+
+ for (i = 0xBBB00/2; i < 0xBE000/2; i++)
+ {
+ if ((((rom[i]&0xFFBF)==0x4EB9) || ((rom[i]&0xFFBF)==0x43B9)) && (rom[i+1]==0x0000))
+ {
+ rom[i + 1] = 0x000B;
+ rom[i + 2] += 0x6000;
+ }
+ }
+
+ /* Patched by protection chip (Altera) ? */
+ rom[0x2D15C/2] = 0x000B;
+ rom[0x2D15E/2] = 0xBB00;
+ rom[0x2D1E4/2] = 0x6002;
+ rom[0x2EA7E/2] = 0x6002;
+ rom[0xBBCD0/2] = 0x6002;
+ rom[0xBBDF2/2] = 0x6002;
+ rom[0xBBE42/2] = 0x6002;
+}
+
+
+/* Metal Slug 5 Plus (bootleg) */
+
+
+READ16_MEMBER( ngbootleg_prot_device::mslug5_prot_r )
+{
+ logerror("PC %06x: access protected\n",space.device().safe_pc());
+ return 0xa0;
+}
+
+WRITE16_MEMBER( ngbootleg_prot_device::ms5plus_bankswitch_w )
+{
+ int bankaddress;
+ logerror("offset: %06x PC %06x: set banking %04x\n",offset,space.device().safe_pc(),data);
+ if ((offset == 0)&&(data == 0xa0))
+ {
+ bankaddress=0xa0;
+ m_bankdev->neogeo_set_main_cpu_bank_address(bankaddress);
+ logerror("offset: %06x PC %06x: set banking %04x\n\n",offset,space.device().safe_pc(),bankaddress);
+ }
+ else if(offset == 2)
+ {
+ data=data>>4;
+ //data=data&7;
+ bankaddress=data*0x100000;
+ m_bankdev->neogeo_set_main_cpu_bank_address(bankaddress);
+ logerror("offset: %06x PC %06x: set banking %04x\n\n",offset,space.device().safe_pc(),bankaddress);
+ }
+}
+
+void ngbootleg_prot_device::install_ms5plus_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev)
+{
+ // special ROM banking handler / additional protection
+ maincpu->space(AS_PROGRAM).install_readwrite_handler(0x2ffff0, 0x2fffff,
+ read16_delegate(FUNC(ngbootleg_prot_device::mslug5_prot_r),this),
+ write16_delegate(FUNC(ngbootleg_prot_device::ms5plus_bankswitch_w),this));
+ m_bankdev = bankdev;
+}
+
+
+/* SNK vs. CAPCOM SVC CHAOS (bootleg) */
+
+
+void ngbootleg_prot_device::svcboot_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ static const uint8_t sec[] = { 0x06, 0x07, 0x01, 0x02, 0x03, 0x04, 0x05, 0x00 };
+ int i;
+ int size = cpurom_size;
+ uint8_t *src = cpurom;
+ std::vector<uint8_t> dst( size );
+ int ofst;
+ for( i = 0; i < size / 0x100000; i++ )
+ memcpy( &dst[ i * 0x100000 ], &src[ sec[ i ] * 0x100000 ], 0x100000 );
+
+ for( i = 0; i < size / 2; i++ )
+ {
+ ofst = bitswap<8>( (i & 0x0000ff), 7, 6, 1, 0, 3, 2, 5, 4 );
+ ofst += (i & 0xffff00);
+ memcpy( &src[ i * 2 ], &dst[ ofst * 2 ], 0x02 );
+ }
+}
+
+void ngbootleg_prot_device::svcboot_cx_decrypt(uint8_t*sprrom, uint32_t sprrom_size)
+{
+ static const uint8_t idx_tbl[ 0x10 ] = { 0, 1, 0, 1, 2, 3, 2, 3, 3, 4, 3, 4, 4, 5, 4, 5 };
+ static const uint8_t bitswap4_tbl[ 6 ][ 4 ] = { { 3, 0, 1, 2 }, { 2, 3, 0, 1 }, { 1, 2, 3, 0 }, { 0, 1, 2, 3 }, { 3, 2, 1, 0 }, { 3, 0, 2, 1 } };
+ int i;
+ int size = sprrom_size;
+ uint8_t *src = sprrom;
+ std::vector<uint8_t> dst( size );
+ int ofst;
+ memcpy( &dst[0], src, size );
+ for( i = 0; i < size / 0x80; i++ )
+ {
+ int idx = idx_tbl[ (i & 0xf00) >> 8 ];
+ int bit0 = bitswap4_tbl[ idx ][ 0 ];
+ int bit1 = bitswap4_tbl[ idx ][ 1 ];
+ int bit2 = bitswap4_tbl[ idx ][ 2 ];
+ int bit3 = bitswap4_tbl[ idx ][ 3 ];
+ ofst = bitswap<8>( (i & 0x0000ff), 7, 6, 5, 4, bit3, bit2, bit1, bit0 );
+ ofst += (i & 0xfffff00);
+ memcpy( &src[ i * 0x80 ], &dst[ ofst * 0x80 ], 0x80 );
+ }
+}
+
+
+/* SNK vs. CAPCOM SVC CHAOS Plus (bootleg set 1) */
+
+
+void ngbootleg_prot_device::svcplus_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ static const int sec[] = { 0x00, 0x03, 0x02, 0x05, 0x04, 0x01 };
+ int i, ofst, size = cpurom_size;
+ uint8_t *src = cpurom;
+ std::vector<uint8_t> dst( size );
+ memcpy( &dst[0], src, size );
+ for( i = 0; i < size / 2; i++ )
+ {
+ ofst = bitswap<24>( (i & 0xfffff), 0x17, 0x16, 0x15, 0x14, 0x13, 0x00, 0x01, 0x02, 0x0f, 0x0e, 0x0d, 0x0c,
+ 0x0b, 0x0a, 0x09, 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x10, 0x11, 0x12 );
+ ofst ^= 0x0f0007;
+ ofst += (i & 0xff00000);
+ memcpy( &src[ i * 0x02 ], &dst[ ofst * 0x02 ], 0x02 );
+ }
+ memcpy( &dst[0], src, size );
+ for( i = 0; i < 6; i++ )
+ memcpy( &src[ i * 0x100000 ], &dst[ sec[ i ] * 0x100000 ], 0x100000 );
+}
+
+void ngbootleg_prot_device::svcplus_px_hack(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ /* patched by the protection chip? */
+ uint16_t *mem16 = (uint16_t *)cpurom;
+ mem16[0x0f8016/2] = 0x33c1;
+}
+
+
+/* SNK vs. CAPCOM SVC CHAOS Plus (bootleg set 2) */
+
+
+void ngbootleg_prot_device::svcplusa_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ int i;
+ static const int sec[] = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x00 };
+ int size = cpurom_size;
+ uint8_t *src = cpurom;
+ std::vector<uint8_t> dst( size );
+ memcpy( &dst[0], src, size );
+ for( i = 0; i < 6; i++ )
+ memcpy( &src[ i * 0x100000 ], &dst[ sec[ i ] * 0x100000 ], 0x100000 );
+}
+
+
+/* SNK vs. CAPCOM SVC CHAOS Super Plus (bootleg) */
+
+
+void ngbootleg_prot_device::svcsplus_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ static const int sec[] = { 0x06, 0x07, 0x01, 0x02, 0x03, 0x04, 0x05, 0x00 };
+ int i, ofst, size = cpurom_size;
+ uint8_t *src = cpurom;
+ std::vector<uint8_t> dst( size );
+ memcpy( &dst[0], src, size );
+ for( i = 0; i < size / 2; i++ )
+ {
+ ofst = bitswap<16>( (i & 0x007fff), 0x0f, 0x00, 0x08, 0x09, 0x0b, 0x0a, 0x0c, 0x0d, 0x04, 0x03, 0x01, 0x07, 0x06, 0x02, 0x05, 0x0e );
+ ofst += (i & 0x078000);
+ ofst += sec[ (i & 0xf80000) >> 19 ] << 19;
+ memcpy( &src[ i * 2 ], &dst[ ofst * 2 ], 0x02 );
+ }
+}
+
+void ngbootleg_prot_device::svcsplus_px_hack(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ /* patched by the protection chip? */
+ uint16_t *mem16 = (uint16_t *)cpurom;
+ mem16[0x9e90/2] = 0x000f;
+ mem16[0x9e92/2] = 0xc9c0;
+ mem16[0xa10c/2] = 0x4eb9;
+ mem16[0xa10e/2] = 0x000e;
+ mem16[0xa110/2] = 0x9750;
+}
+
+
+/* The King of Fighters 2003 (bootleg set 1) */
+
+
+READ16_MEMBER( ngbootleg_prot_device::kof2003_r)
+{
+ return m_cartridge_ram[offset];
+}
+
+READ16_MEMBER(ngbootleg_prot_device::kof2003_overlay_r) // hack?
+{
+ return kof2k3_overlay;
+}
+
+WRITE16_MEMBER( ngbootleg_prot_device::kof2003_w )
+{
+ data = COMBINE_DATA(&m_cartridge_ram[offset]);
+ if (offset == 0x1ff0/2 || offset == 0x1ff2/2)
+ {
+ uint8_t* cr = (uint8_t *)m_cartridge_ram;
+ uint32_t address = (cr[BYTE_XOR_LE(0x1ff3)]<<16)|(cr[BYTE_XOR_LE(0x1ff2)]<<8)|cr[BYTE_XOR_LE(0x1ff1)];
+ uint8_t prt = cr[BYTE_XOR_LE(0x1ff2)];
+
+ cr[BYTE_XOR_LE(0x1ff0)] = 0xa0;
+ cr[BYTE_XOR_LE(0x1ff1)] &= 0xfe;
+ cr[BYTE_XOR_LE(0x1ff3)] &= 0x7f;
+ m_bankdev->neogeo_set_main_cpu_bank_address(address+0x100000);
+
+ kof2k3_overlay = (prt & 0x00ff) | (kof2k3_overlay & 0xff00);
+ }
+}
+
+WRITE16_MEMBER( ngbootleg_prot_device::kof2003p_w )
+{
+ data = COMBINE_DATA(&m_cartridge_ram[offset]);
+ if (offset == 0x1ff0/2 || offset == 0x1ff2/2)
+ {
+ uint8_t* cr = (uint8_t *)m_cartridge_ram;
+ uint32_t address = (cr[BYTE_XOR_LE(0x1ff3)]<<16)|(cr[BYTE_XOR_LE(0x1ff2)]<<8)|cr[BYTE_XOR_LE(0x1ff0)];
+ uint8_t prt = cr[BYTE_XOR_LE(0x1ff2)];
+
+ cr[BYTE_XOR_LE(0x1ff0)] &= 0xfe;
+ cr[BYTE_XOR_LE(0x1ff3)] &= 0x7f;
+ m_bankdev->neogeo_set_main_cpu_bank_address(address+0x100000);
+
+ kof2k3_overlay = (prt & 0x00ff) | (kof2k3_overlay & 0xff00);
+ }
+}
+
+void ngbootleg_prot_device::kf2k3bl_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ static const uint8_t sec[] = { 0x07, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06 };
+
+ int rom_size = 0x800000;
+ uint8_t *rom = cpurom;
+ std::vector<uint8_t> buf( rom_size );
+ memcpy( &buf[0], rom, rom_size );
+
+ for( int i = 0; i < rom_size / 0x100000; i++ )
+ memcpy( &rom[ i * 0x100000 ], &buf[ sec[ i ] * 0x100000 ], 0x100000 );
+}
+
+void ngbootleg_prot_device::kf2k3bl_install_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev, uint8_t* cpurom, uint32_t cpurom_size)
+{
+ m_mainrom = cpurom;
+
+ maincpu->space(AS_PROGRAM).install_read_handler(0x58196, 0x58197, read16_delegate(FUNC(ngbootleg_prot_device::kof2003_overlay_r),this) );
+
+ maincpu->space(AS_PROGRAM).install_readwrite_handler(0x2fe000, 0x2fffff, read16_delegate(FUNC(ngbootleg_prot_device::kof2003_r),this), write16_delegate(FUNC(ngbootleg_prot_device::kof2003_w),this) );
+ m_bankdev = bankdev;
+}
+
+
+/* The King of Fighters 2004 Plus / Hero (The King of Fighters 2003 bootleg) */
+
+
+void ngbootleg_prot_device::kf2k3pl_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ std::vector<uint16_t> tmp(0x100000/2);
+ uint16_t*rom16 = (uint16_t*)cpurom;
+ int i, j;
+
+ for (i = 0;i < 0x700000/2;i+=0x100000/2)
+ {
+ memcpy(&tmp[0], &rom16[i], 0x100000);
+ for (j = 0; j < 0x100000/2; j++)
+ rom16[i+j] = tmp[bitswap<24>(j,23,22,21,20,19,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18)];
+ }
+
+ /* patched by Altera protection chip on PCB */
+ rom16[0xf38ac/2] = 0x4e75;
+
+ kof2k3_overlay = rom16[0x58196 / 2];
+}
+
+void ngbootleg_prot_device::kf2k3pl_install_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev, uint8_t* cpurom, uint32_t cpurom_size)
+{
+ m_mainrom = cpurom;
+ maincpu->space(AS_PROGRAM).install_readwrite_handler(0x2fe000, 0x2fffff,
+ read16_delegate(FUNC(ngbootleg_prot_device::kof2003_r),this),
+ write16_delegate(FUNC(ngbootleg_prot_device::kof2003p_w),this) );
+ m_bankdev = bankdev;
+}
+
+
+/* The King of Fighters 2004 Ultra Plus (The King of Fighters 2003 bootleg) */
+
+
+void ngbootleg_prot_device::kf2k3upl_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ {
+ uint8_t *src = cpurom;
+ memmove(src+0x100000, src, 0x600000);
+ memmove(src, src+0x700000, 0x100000);
+ }
+
+ {
+ int i, ofst;
+ uint8_t *rom = cpurom + 0xfe000;
+ uint8_t *buf = cpurom + 0xd0610;
+
+ for( i = 0; i < 0x2000 / 2; i++ )
+ {
+ ofst = (i & 0xff00) + bitswap<8>( (i & 0x00ff), 7, 6, 0, 4, 3, 2, 1, 5 );
+ memcpy( &rom[ i * 2 ], &buf[ ofst * 2 ], 2 );
+ }
+ }
+
+ uint16_t*rom16 = (uint16_t*)cpurom;
+ kof2k3_overlay = rom16[0x58196 / 2];
+}
+
+
+/* Samurai Shodown V / Samurai Spirits Zero (bootleg) */
+
+
+void ngbootleg_prot_device::samsho5b_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ int i, ofst, px_size = cpurom_size;
+ uint8_t *rom = cpurom;
+ std::vector<uint8_t> buf( px_size );
+
+ memcpy( &buf[0], rom, px_size );
+
+ for( i = 0; i < px_size / 2; i++ )
+ {
+ ofst = bitswap<8>( (i & 0x000ff), 7, 6, 5, 4, 3, 0, 1, 2 );
+ ofst += (i & 0xfffff00);
+ ofst ^= 0x060005;
+ memcpy( &rom[ i * 2 ], &buf[ ofst * 2 ], 0x02 );
+ }
+
+ memcpy( &buf[0], rom, px_size );
+
+ memcpy( &rom[ 0x000000 ], &buf[ 0x700000 ], 0x100000 );
+ memcpy( &rom[ 0x100000 ], &buf[ 0x000000 ], 0x700000 );
+}
+
+
+void ngbootleg_prot_device::samsho5b_vx_decrypt(uint8_t* ymsndrom, uint32_t ymsndrom_size)
+{
+ int vx_size = ymsndrom_size;
+ uint8_t *rom = ymsndrom;
+
+ for( int i = 0; i < vx_size; i++ )
+ rom[ i ] = bitswap<8>( rom[ i ], 0, 1, 5, 4, 3, 2, 6, 7 );
+}
+
+
+/* Matrimelee / Shin Gouketsuji Ichizoku Toukon (bootleg) */
+
+
+#define MATRIMBLZ80( i ) ( i^(bitswap<8>(i&0x3,4,3,1,2,0,7,6,5)<<8) )
+
+void ngbootleg_prot_device::matrimbl_decrypt(uint8_t* sprrom, uint32_t sprrom_size, uint8_t* audiorom, uint32_t audiorom_size)
+{
+ /* decrypt Z80 */
+ uint8_t *rom = audiorom+0x10000;
+ std::vector<uint8_t> buf( 0x20000 );
+ int i, j;
+ memcpy( &buf[0], rom, 0x20000 );
+ for( i=0x00000; i<0x20000; i++ )
+ {
+ if ( i&0x10000 )
+ {
+ if ( i&0x800 )
+ {
+ j=MATRIMBLZ80( i );
+ j=j^0x10000;
+ }
+ else
+ {
+ j=MATRIMBLZ80(( i^0x01 ));
+ }
+ }
+ else
+ {
+ if ( i&0x800 )
+ {
+ j=MATRIMBLZ80(( i^0x01 ));
+ j=j^0x10000;
+ }
+ else
+ {
+ j=MATRIMBLZ80( i );
+ }
+ }
+ rom[ j ]=buf[ i ];
+ }
+ memcpy( rom-0x10000, rom, 0x10000 );
+
+ /* decrypt gfx */
+ cthd2003_c(sprrom,sprrom_size, 0 );
+}
+
+/***********************************************************************************************************************************/
+
+DEFINE_DEVICE_TYPE(KOG_PROT, kog_prot_device, "kog_prot", "NeoGeo Protection (King of Gladiator)")
+
+
+kog_prot_device::kog_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : device_t(mconfig, KOG_PROT, tag, owner, clock)
+ , m_jumper(*this, "JUMPER")
+ { }
+
+
+void kog_prot_device::device_start() { }
+void kog_prot_device::device_reset() { }
+
+READ16_MEMBER(kog_prot_device::read_jumper)
+{
+ return ioport("JUMPER")->read();
+}
+
+void kog_prot_device::kog_install_protection(cpu_device* maincpu)
+{
+ /* overlay cartridge ROM */
+ maincpu->space(AS_PROGRAM).install_read_handler(0x0ffffe, 0x0fffff, read16_delegate(FUNC(kog_prot_device::read_jumper), this));
+}
+
+
+void kog_prot_device::kog_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ uint8_t *src = cpurom;
+ std::vector<uint8_t> dst( 0x600000 );
+ uint16_t *rom = (uint16_t *)cpurom;
+ int i;
+ static const int sec[] = { 0x3, 0x8, 0x7, 0xC, 0x1, 0xA, 0x6, 0xD };
+
+ for (i = 0; i < 8; i++)
+ memcpy (&dst[i * 0x20000], src + sec[i] * 0x20000, 0x20000);
+
+ memcpy (&dst[0x0007A6], src + 0x0407A6, 0x000006);
+ memcpy (&dst[0x0007C6], src + 0x0407C6, 0x000006);
+ memcpy (&dst[0x0007E6], src + 0x0407E6, 0x000006);
+ memcpy (&dst[0x090000], src + 0x040000, 0x004000);
+ memcpy (&dst[0x100000], src + 0x200000, 0x400000);
+ memcpy (src, &dst[0], 0x600000);
+
+ for (i = 0x90000/2; i < 0x94000/2; i++)
+ {
+ if (((rom[i]&0xFFBF) == 0x4EB9 || rom[i] == 0x43F9) && !rom[i + 1])
+ rom[i + 1] = 0x0009;
+
+ if (rom[i] == 0x4EB8)
+ rom[i] = 0x6100;
+ }
+
+ rom[0x007A8/2] = 0x0009;
+ rom[0x007C8/2] = 0x0009;
+ rom[0x007E8/2] = 0x0009;
+ rom[0x93408/2] = 0xF168;
+ rom[0x9340C/2] = 0xFB7A;
+ rom[0x924AC/2] = 0x0009;
+ rom[0x9251C/2] = 0x0009;
+ rom[0x93966/2] = 0xFFDA;
+ rom[0x93974/2] = 0xFFCC;
+ rom[0x93982/2] = 0xFFBE;
+ rom[0x93990/2] = 0xFFB0;
+ rom[0x9399E/2] = 0xFFA2;
+ rom[0x939AC/2] = 0xFF94;
+ rom[0x939BA/2] = 0xFF86;
+ rom[0x939C8/2] = 0xFF78;
+ rom[0x939D4/2] = 0xFA5C;
+ rom[0x939E0/2] = 0xFA50;
+ rom[0x939EC/2] = 0xFA44;
+ rom[0x939F8/2] = 0xFA38;
+ rom[0x93A04/2] = 0xFA2C;
+ rom[0x93A10/2] = 0xFA20;
+ rom[0x93A1C/2] = 0xFA14;
+ rom[0x93A28/2] = 0xFA08;
+ rom[0x93A34/2] = 0xF9FC;
+ rom[0x93A40/2] = 0xF9F0;
+ rom[0x93A4C/2] = 0xFD14;
+ rom[0x93A58/2] = 0xFD08;
+ rom[0x93A66/2] = 0xF9CA;
+ rom[0x93A72/2] = 0xF9BE;
+}
+
+
+static INPUT_PORTS_START( kog )
+ /* a jumper on the pcb overlays a ROM address, very strange but that's how it works. */
+ PORT_START("JUMPER")
+ PORT_DIPNAME( 0x0001, 0x0001, "Title Language" ) PORT_DIPLOCATION("CART-JUMPER:1")
+ PORT_DIPSETTING( 0x0001, DEF_STR( English ) )
+ PORT_DIPSETTING( 0x0000, "Non-English" )
+ PORT_BIT( 0x00fe, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED )
+INPUT_PORTS_END
+
+ioport_constructor kog_prot_device::device_input_ports() const
+{
+ return INPUT_PORTS_NAME( kog );
+}
+
+/***********************************************************************************************************************************/
+
+
+DEFINE_DEVICE_TYPE(CMC_PROT, cmc_prot_device, "cmc_prot", "NeoGeo Protection (CMC)")
+
+
+cmc_prot_device::cmc_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : device_t(mconfig, CMC_PROT, tag, owner, clock)
+ , type0_t03(nullptr)
+ , type0_t12(nullptr)
+ , type1_t03(nullptr)
+ , type1_t12(nullptr)
+ , address_8_15_xor1(nullptr)
+ , address_8_15_xor2(nullptr)
+ , address_16_23_xor1(nullptr)
+ , address_16_23_xor2(nullptr)
+ , address_0_7_xor(nullptr)
+ { }
+
+
+void cmc_prot_device::device_start() { }
+void cmc_prot_device::device_reset() { }
+
+static const uint8_t kof99_type0_t03[256] =
+{
+ 0xfb, 0x86, 0x9d, 0xf1, 0xbf, 0x80, 0xd5, 0x43, 0xab, 0xb3, 0x9f, 0x6a, 0x33, 0xd9, 0xdb, 0xb6,
+ 0x66, 0x08, 0x69, 0x88, 0xcc, 0xb7, 0xde, 0x49, 0x97, 0x64, 0x1f, 0xa6, 0xc0, 0x2f, 0x52, 0x42,
+ 0x44, 0x5a, 0xf2, 0x28, 0x98, 0x87, 0x96, 0x8a, 0x83, 0x0b, 0x03, 0x61, 0x71, 0x99, 0x6b, 0xb5,
+ 0x1a, 0x8e, 0xfe, 0x04, 0xe1, 0xf7, 0x7d, 0xdd, 0xed, 0xca, 0x37, 0xfc, 0xef, 0x39, 0x72, 0xda,
+ 0xb8, 0xbe, 0xee, 0x7f, 0xe5, 0x31, 0x78, 0xf3, 0x91, 0x9a, 0xd2, 0x11, 0x19, 0xb9, 0x09, 0x4c,
+ 0xfd, 0x6d, 0x2a, 0x4d, 0x65, 0xa1, 0x89, 0xc7, 0x75, 0x50, 0x21, 0xfa, 0x16, 0x00, 0xe9, 0x12,
+ 0x74, 0x2b, 0x1e, 0x4f, 0x14, 0x01, 0x70, 0x3a, 0x4e, 0x3f, 0xf5, 0xf4, 0x1d, 0x3d, 0x15, 0x27,
+ 0xa7, 0xff, 0x45, 0xe0, 0x6e, 0xf9, 0x54, 0xc8, 0x48, 0xad, 0xa5, 0x0a, 0xf6, 0x2d, 0x2c, 0xe2,
+ 0x68, 0x67, 0xd6, 0x85, 0xb4, 0xc3, 0x34, 0xbc, 0x62, 0xd3, 0x5f, 0x84, 0x06, 0x5b, 0x0d, 0x95,
+ 0xea, 0x5e, 0x9e, 0xd4, 0xeb, 0x90, 0x7a, 0x05, 0x81, 0x57, 0xe8, 0x60, 0x2e, 0x20, 0x25, 0x7c,
+ 0x46, 0x0c, 0x93, 0xcb, 0xbd, 0x17, 0x7e, 0xec, 0x79, 0xb2, 0xc2, 0x22, 0x41, 0xb1, 0x10, 0xac,
+ 0xa8, 0xbb, 0x9b, 0x82, 0x4b, 0x9c, 0x8b, 0x07, 0x47, 0x35, 0x24, 0x56, 0x8d, 0xaf, 0xe6, 0x26,
+ 0x40, 0x38, 0xc4, 0x5d, 0x1b, 0xc5, 0xd1, 0x0f, 0x6c, 0x7b, 0xb0, 0xe3, 0xa3, 0x23, 0x6f, 0x58,
+ 0xc1, 0xba, 0xcf, 0xd7, 0xa2, 0xe7, 0xd0, 0x63, 0x5c, 0xf8, 0x73, 0xa0, 0x13, 0xdc, 0x29, 0xcd,
+ 0xc9, 0x76, 0xae, 0x8f, 0xe4, 0x59, 0x30, 0xaa, 0x94, 0x1c, 0x3c, 0x0e, 0x55, 0x92, 0x77, 0x32,
+ 0xc6, 0xce, 0x18, 0x36, 0xdf, 0xa9, 0x8c, 0xd8, 0xa4, 0xf0, 0x3b, 0x51, 0x4a, 0x02, 0x3e, 0x53,
+};
+
+
+static const uint8_t kof99_type0_t12[256] =
+{
+ 0x1f, 0xac, 0x4d, 0xcd, 0xca, 0x70, 0x02, 0x6b, 0x18, 0x40, 0x62, 0xb2, 0x3f, 0x9b, 0x5b, 0xef,
+ 0x69, 0x68, 0x71, 0x3b, 0xcb, 0xd4, 0x30, 0xbc, 0x47, 0x72, 0x74, 0x5e, 0x84, 0x4c, 0x1b, 0xdb,
+ 0x6a, 0x35, 0x1d, 0xf5, 0xa1, 0xb3, 0x87, 0x5d, 0x57, 0x28, 0x2f, 0xc4, 0xfd, 0x24, 0x26, 0x36,
+ 0xad, 0xbe, 0x61, 0x63, 0x73, 0xaa, 0x82, 0xee, 0x29, 0xd0, 0xdf, 0x8c, 0x15, 0xb5, 0x96, 0xf3,
+ 0xdd, 0x7e, 0x3a, 0x37, 0x58, 0x7f, 0x0c, 0xfc, 0x0b, 0x07, 0xe8, 0xf7, 0xf4, 0x14, 0xb8, 0x81,
+ 0xb6, 0xd7, 0x1e, 0xc8, 0x85, 0xe6, 0x9d, 0x33, 0x60, 0xc5, 0x95, 0xd5, 0x55, 0x00, 0xa3, 0xb7,
+ 0x7d, 0x50, 0x0d, 0xd2, 0xc1, 0x12, 0xe5, 0xed, 0xd8, 0xa4, 0x9c, 0x8f, 0x2a, 0x4f, 0xa8, 0x01,
+ 0x52, 0x83, 0x65, 0xea, 0x9a, 0x6c, 0x44, 0x4a, 0xe2, 0xa5, 0x2b, 0x46, 0xe1, 0x34, 0x25, 0xf8,
+ 0xc3, 0xda, 0xc7, 0x6e, 0x48, 0x38, 0x7c, 0x78, 0x06, 0x53, 0x64, 0x16, 0x98, 0x3c, 0x91, 0x42,
+ 0x39, 0xcc, 0xb0, 0xf1, 0xeb, 0x13, 0xbb, 0x05, 0x32, 0x86, 0x0e, 0xa2, 0x0a, 0x9e, 0xfa, 0x66,
+ 0x54, 0x8e, 0xd3, 0xe7, 0x19, 0x20, 0x77, 0xec, 0xff, 0xbd, 0x6d, 0x43, 0x23, 0x03, 0xab, 0x75,
+ 0x3d, 0xcf, 0xd1, 0xde, 0x92, 0x31, 0xa7, 0x45, 0x4b, 0xc2, 0x97, 0xf9, 0x7a, 0x88, 0xd9, 0x1c,
+ 0xe9, 0xe4, 0x10, 0xc9, 0x22, 0x2d, 0x90, 0x76, 0x17, 0x79, 0x04, 0x51, 0x1a, 0x5a, 0x5f, 0x2c,
+ 0x21, 0x6f, 0x3e, 0xe0, 0xf0, 0xbf, 0xd6, 0x94, 0x0f, 0x80, 0x11, 0xa0, 0x5c, 0xa9, 0x49, 0x2e,
+ 0xce, 0xaf, 0xa6, 0x9f, 0x7b, 0x99, 0xb9, 0xb4, 0xe3, 0xfb, 0xf6, 0x27, 0xf2, 0x93, 0xfe, 0x08,
+ 0x67, 0xae, 0x09, 0x89, 0xdc, 0x4e, 0xc6, 0xc0, 0x8a, 0xb1, 0x59, 0x8b, 0x41, 0x56, 0x8d, 0xba,
+};
+
+
+static const uint8_t kof99_type1_t03[256] =
+{
+ 0xa9, 0x17, 0xaf, 0x0d, 0x34, 0x6e, 0x53, 0xb6, 0x7f, 0x58, 0xe9, 0x14, 0x5f, 0x55, 0xdb, 0xd4,
+ 0x42, 0x80, 0x99, 0x59, 0xa8, 0x3a, 0x57, 0x5d, 0xd5, 0x6f, 0x4c, 0x68, 0x35, 0x46, 0xa6, 0xe7,
+ 0x7b, 0x71, 0xe0, 0x93, 0xa2, 0x1f, 0x64, 0x21, 0xe3, 0xb1, 0x98, 0x26, 0xab, 0xad, 0xee, 0xe5,
+ 0xbb, 0xd9, 0x1e, 0x2e, 0x95, 0x36, 0xef, 0x23, 0x79, 0x45, 0x04, 0xed, 0x13, 0x1d, 0xf4, 0x85,
+ 0x96, 0xec, 0xc2, 0x32, 0xaa, 0x7c, 0x15, 0xd8, 0xda, 0x92, 0x90, 0x9d, 0xb7, 0x56, 0x6a, 0x66,
+ 0x41, 0xfc, 0x00, 0xf6, 0x50, 0x24, 0xcf, 0xfb, 0x11, 0xfe, 0x82, 0x48, 0x9b, 0x27, 0x1b, 0x67,
+ 0x4e, 0x84, 0x69, 0x97, 0x6d, 0x8c, 0xd2, 0xba, 0x74, 0xf9, 0x8f, 0xa5, 0x54, 0x5c, 0xcd, 0x73,
+ 0x07, 0xd1, 0x01, 0x09, 0xf1, 0x19, 0x3b, 0x5e, 0x87, 0x30, 0x76, 0xcc, 0xc0, 0x5a, 0xa7, 0x49,
+ 0x22, 0xfa, 0x16, 0x02, 0xdf, 0xa4, 0xff, 0xb3, 0x75, 0x33, 0xbd, 0x88, 0x2f, 0xcb, 0x2a, 0x44,
+ 0xb8, 0xbf, 0x1c, 0x0f, 0x81, 0x10, 0x43, 0xb4, 0xc8, 0x7e, 0x9a, 0x25, 0xea, 0x83, 0x4b, 0x38,
+ 0x7a, 0xd7, 0x3d, 0x1a, 0x4f, 0x62, 0x51, 0xc9, 0x47, 0x0e, 0xce, 0x3f, 0xc7, 0x4d, 0x2c, 0xa1,
+ 0x86, 0xb9, 0xc5, 0xca, 0xdd, 0x6b, 0x70, 0x6c, 0x91, 0x9c, 0xbe, 0x0a, 0x9f, 0xf5, 0x94, 0xbc,
+ 0x18, 0x2b, 0x60, 0x20, 0x29, 0xf7, 0xf2, 0x28, 0xc4, 0xa0, 0x0b, 0x65, 0xde, 0x8d, 0x78, 0x12,
+ 0x3e, 0xd0, 0x77, 0x08, 0x8b, 0xae, 0x05, 0x31, 0x3c, 0xd6, 0xa3, 0x89, 0x06, 0xdc, 0x52, 0x72,
+ 0xb0, 0xb5, 0x37, 0xd3, 0xc3, 0x8a, 0xc6, 0xf0, 0xc1, 0x61, 0xfd, 0x4a, 0x5b, 0x7d, 0x9e, 0xf3,
+ 0x63, 0x40, 0x2d, 0xe8, 0xb2, 0xe6, 0x39, 0x03, 0xeb, 0x8e, 0xe1, 0x0c, 0xe4, 0xe2, 0xf8, 0xac,
+};
+
+
+static const uint8_t kof99_type1_t12[256] =
+{
+ 0xea, 0xe6, 0x5e, 0xa7, 0x8e, 0xac, 0x34, 0x03, 0x30, 0x97, 0x52, 0x53, 0x76, 0xf2, 0x62, 0x0b,
+ 0x0a, 0xfc, 0x94, 0xb8, 0x67, 0x36, 0x11, 0xbc, 0xae, 0xca, 0xfa, 0x15, 0x04, 0x2b, 0x17, 0xc4,
+ 0x3e, 0x5b, 0x59, 0x01, 0x57, 0xe2, 0xba, 0xb7, 0xd1, 0x3f, 0xf0, 0x6a, 0x9c, 0x2a, 0xcb, 0xa9,
+ 0xe3, 0x2c, 0xc0, 0x0f, 0x46, 0x91, 0x8a, 0xd0, 0x98, 0xc5, 0xa6, 0x1b, 0x96, 0x29, 0x12, 0x09,
+ 0x63, 0xed, 0xe0, 0xa2, 0x86, 0x77, 0xbe, 0xe5, 0x65, 0xdb, 0xbd, 0x50, 0xb3, 0x9d, 0x1a, 0x4e,
+ 0x79, 0x0c, 0x00, 0x43, 0xdf, 0x3d, 0x54, 0x33, 0x8f, 0x89, 0xa8, 0x7b, 0xf9, 0xd5, 0x27, 0x82,
+ 0xbb, 0xc2, 0x8c, 0x47, 0x88, 0x6b, 0xb4, 0xc3, 0xf8, 0xaa, 0x06, 0x1e, 0x83, 0x7d, 0x05, 0x78,
+ 0x85, 0xf6, 0x6e, 0x2e, 0xec, 0x5a, 0x31, 0x45, 0x38, 0x14, 0x16, 0x8b, 0x02, 0xe4, 0x4f, 0xb0,
+ 0xbf, 0xab, 0xa4, 0x9e, 0x48, 0x60, 0x19, 0x35, 0x08, 0xde, 0xdd, 0x66, 0x90, 0x51, 0xcc, 0xa3,
+ 0xaf, 0x70, 0x9b, 0x75, 0x95, 0x49, 0x6c, 0x64, 0x72, 0x7e, 0x44, 0xa0, 0x73, 0x25, 0x68, 0x55,
+ 0x1f, 0x40, 0x7a, 0x74, 0x0e, 0x8d, 0xdc, 0x1c, 0x71, 0xc8, 0xcf, 0xd7, 0xe8, 0xce, 0xeb, 0x32,
+ 0x3a, 0xee, 0x07, 0x61, 0x4d, 0xfe, 0x5c, 0x7c, 0x56, 0x2f, 0x2d, 0x5f, 0x6f, 0x9f, 0x81, 0x22,
+ 0x58, 0x4b, 0xad, 0xda, 0xb9, 0x10, 0x18, 0x23, 0xe1, 0xf3, 0x6d, 0xe7, 0xe9, 0x28, 0xd6, 0xd8,
+ 0xf4, 0x4c, 0x39, 0x21, 0xb2, 0x84, 0xc1, 0x24, 0x26, 0xf1, 0x93, 0x37, 0xc6, 0x4a, 0xcd, 0x20,
+ 0xc9, 0xd9, 0xc7, 0xb1, 0xff, 0x99, 0xd4, 0x5d, 0xb5, 0xa1, 0x87, 0x0d, 0x69, 0x92, 0x13, 0x80,
+ 0xd2, 0xd3, 0xfd, 0x1d, 0xf5, 0x3b, 0xa5, 0x7f, 0xef, 0x9a, 0xb6, 0x42, 0xfb, 0x3c, 0xf7, 0x41,
+};
+
+
+/* underlined values are wrong (not enough evidence, FF fill in kof99 and garou) */
+/* they correspond to tiles 7d000-7efff */
+static const uint8_t kof99_address_8_15_xor1[256] =
+{
+ 0x00, 0xb1, 0x1e, 0xc5, 0x3d, 0x40, 0x45, 0x5e, 0xf2, 0xf8, 0x04, 0x63, 0x36, 0x87, 0x88, 0xbf,
+ 0xab, 0xcc, 0x78, 0x08, 0xdd, 0x20, 0xd4, 0x35, 0x09, 0x8e, 0x44, 0xae, 0x33, 0xa9, 0x9e, 0xcd,
+ 0xb3, 0xe5, 0xad, 0x41, 0xda, 0xbe, 0xf4, 0x16, 0x57, 0x2e, 0x53, 0x67, 0xaf, 0xdb, 0x8a, 0xd8,
+ 0x34, 0x17, 0x3c, 0x01, 0x55, 0x73, 0xcf, 0xe3, 0xe8, 0xc7, 0x0d, 0xe9, 0xa3, 0x13, 0x0c, 0xf6,
+ 0x90, 0x4e, 0xfb, 0x97, 0x6d, 0x5f, 0xa8, 0x71, 0x11, 0xfc, 0xd1, 0x95, 0x81, 0xba, 0x8c, 0x1b,
+ 0x39, 0xfe, 0xa2, 0x15, 0xa6, 0x52, 0x4d, 0x5b, 0x59, 0xa5, 0xe0, 0x96, 0xd9, 0x8f, 0x7b, 0xed,
+ 0x29, 0xd3, 0x1f, 0x0e, 0xec, 0x23, 0x0f, 0xb8, 0x6c, 0x6f, 0x7d, 0x18, 0x46, 0xd6, 0xe4, 0xb5,
+ 0x9a, 0x79, 0x02, 0xf5, 0x03, 0xc0, 0x60, 0x66, 0x5c, 0x2f, 0x76, 0x85, 0x9d, 0x54, 0x1a, 0x6a,
+ 0x28, 0xce, 0x7f, 0x7c, 0x91, 0x99, 0x4c, 0x83, 0x3e, 0xb4, 0x1d, 0x05, 0xc1, 0xc3, 0xd7, 0x47,
+ 0xde, 0xbc, 0x62, 0x6e, 0x86, 0x14, 0x80, 0x77, 0xeb, 0xf3, 0x07, 0x31, 0x56, 0xd2, 0xc2, 0xc6,
+ 0x6b, 0xdc, 0xfd, 0x22, 0x92, 0xf0, 0x06, 0x51, 0x2d, 0x38, 0xe6, 0xa0, 0x25, 0xdf, 0xd5, 0x2c,
+ 0x1c, 0x94, 0x12, 0x9c, 0xb0, 0x9b, 0xc4, 0x0b, 0xc8, 0xd0, 0xf7, 0x30, 0xcb, 0x27, 0xfa, 0x7a,
+ 0x10, 0x61, 0xaa, 0xa4, 0x70, 0xb7, 0x2a, 0x5a, 0xc9, 0xf1, 0x0a, 0x49, 0x65, 0xee, 0x69, 0x4b,
+ 0x3a, 0x8d, 0x32, 0x5d, 0x68, 0xb9, 0x9f, 0x75, 0x19, 0x3f, 0xac, 0x37, 0x4f, 0xe7, 0x93, 0x89,
+ 0x7e, 0x4a, 0x3b, 0xea, 0x74, 0x72, 0x43, 0xbd, 0x24, 0xef, 0xb6, 0xff, 0x64, 0x58, 0x84, 0x8b,
+ 0xa7, 0xbb, 0xb2, 0xe1, 0x26, 0x2b, 0x50, 0xca, 0x21, 0xf9, 0x98, 0xa1, 0xe2, 0x42, 0x82, 0x48,
+// ^^^^ ^^^^ ^^^^ ^^^^
+};
+
+
+static const uint8_t kof99_address_8_15_xor2[256] =
+{
+ 0x9b, 0x9d, 0xc1, 0x3d, 0xa9, 0xb8, 0xf4, 0x6f, 0xf6, 0x25, 0xc7, 0x47, 0xd5, 0x97, 0xdf, 0x6b,
+ 0xeb, 0x90, 0xa4, 0xb2, 0x5d, 0xf5, 0x66, 0xb0, 0xb9, 0x8b, 0x93, 0x64, 0xec, 0x7b, 0x65, 0x8c,
+ 0xf1, 0x43, 0x42, 0x6e, 0x45, 0x9f, 0xb3, 0x35, 0x06, 0x71, 0x96, 0xdb, 0xa0, 0xfb, 0x0b, 0x3a,
+ 0x1f, 0xf8, 0x8e, 0x69, 0xcd, 0x26, 0xab, 0x86, 0xa2, 0x0c, 0xbd, 0x63, 0xa5, 0x7a, 0xe7, 0x6a,
+ 0x5f, 0x18, 0x9e, 0xbf, 0xad, 0x55, 0xb1, 0x1c, 0x5c, 0x03, 0x30, 0xc6, 0x37, 0x20, 0xe3, 0xc9,
+ 0x52, 0xe8, 0xee, 0x4f, 0x01, 0x70, 0xc4, 0x77, 0x29, 0x2a, 0xba, 0x53, 0x12, 0x04, 0x7d, 0xaf,
+ 0x33, 0x8f, 0xa8, 0x4d, 0xaa, 0x5b, 0xb4, 0x0f, 0x92, 0xbb, 0xed, 0xe1, 0x2f, 0x50, 0x6c, 0xd2,
+ 0x2c, 0x95, 0xd9, 0xf9, 0x98, 0xc3, 0x76, 0x4c, 0xf2, 0xe4, 0xe5, 0x2b, 0xef, 0x9c, 0x49, 0xb6,
+ 0x31, 0x3b, 0xbc, 0xa1, 0xca, 0xde, 0x62, 0x74, 0xea, 0x81, 0x00, 0xdd, 0xa6, 0x46, 0x88, 0x3f,
+ 0x39, 0xd6, 0x23, 0x54, 0x24, 0x4a, 0xd8, 0xdc, 0xd7, 0xd1, 0xcc, 0xbe, 0x57, 0x7c, 0xda, 0x44,
+ 0x61, 0xce, 0xd3, 0xd4, 0xe9, 0x28, 0x80, 0xe0, 0x56, 0x8a, 0x09, 0x05, 0x9a, 0x89, 0x1b, 0xf7,
+ 0xf3, 0x99, 0x6d, 0x5e, 0x48, 0x91, 0xc0, 0xd0, 0xc5, 0x79, 0x78, 0x41, 0x59, 0x21, 0x2e, 0xff,
+ 0xc2, 0x4b, 0x38, 0x83, 0x32, 0xe6, 0xe2, 0x7f, 0x1e, 0x17, 0x58, 0x1d, 0x1a, 0xfa, 0x85, 0x82,
+ 0x94, 0xc8, 0x72, 0x7e, 0xb7, 0xac, 0x0e, 0xfc, 0xfd, 0x16, 0x27, 0x75, 0x8d, 0xcb, 0x08, 0xfe,
+ 0x0a, 0x02, 0x0d, 0x36, 0x11, 0x22, 0x84, 0x40, 0x34, 0x3e, 0x2d, 0x68, 0x5a, 0xa7, 0x67, 0xae,
+ 0x87, 0x07, 0x10, 0x60, 0x14, 0x73, 0x3c, 0x51, 0x19, 0xa3, 0xb5, 0xcf, 0x13, 0xf0, 0x15, 0x4e,
+};
+
+
+static const uint8_t kof99_address_16_23_xor1[256] =
+{
+ 0x00, 0x5f, 0x03, 0x52, 0xce, 0xe3, 0x7d, 0x8f, 0x6b, 0xf8, 0x20, 0xde, 0x7b, 0x7e, 0x39, 0xbe,
+ 0xf5, 0x94, 0x18, 0x78, 0x80, 0xc9, 0x7f, 0x7a, 0x3e, 0x63, 0xf2, 0xe0, 0x4e, 0xf7, 0x87, 0x27,
+ 0x69, 0x6c, 0xa4, 0x1d, 0x85, 0x5b, 0xe6, 0x44, 0x25, 0x0c, 0x98, 0xc7, 0x01, 0x02, 0xa3, 0x26,
+ 0x09, 0x38, 0xdb, 0xc3, 0x1e, 0xcf, 0x23, 0x45, 0x68, 0x76, 0xd6, 0x22, 0x5d, 0x5a, 0xae, 0x16,
+ 0x9f, 0xa2, 0xb5, 0xcd, 0x81, 0xea, 0x5e, 0xb8, 0xb9, 0x9d, 0x9c, 0x1a, 0x0f, 0xff, 0xe1, 0xe7,
+ 0x74, 0xaa, 0xd4, 0xaf, 0xfc, 0xc6, 0x33, 0x29, 0x5c, 0xab, 0x95, 0xf0, 0x19, 0x47, 0x59, 0x67,
+ 0xf3, 0x96, 0x60, 0x1f, 0x62, 0x92, 0xbd, 0x89, 0xee, 0x28, 0x13, 0x06, 0xfe, 0xfa, 0x32, 0x6d,
+ 0x57, 0x3c, 0x54, 0x50, 0x2c, 0x58, 0x49, 0xfb, 0x17, 0xcc, 0xef, 0xb2, 0xb4, 0xf9, 0x07, 0x70,
+ 0xc5, 0xa9, 0xdf, 0xd5, 0x3b, 0x86, 0x2b, 0x0d, 0x6e, 0x4d, 0x0a, 0x90, 0x43, 0x31, 0xc1, 0xf6,
+ 0x88, 0x0b, 0xda, 0x53, 0x14, 0xdc, 0x75, 0x8e, 0xb0, 0xeb, 0x99, 0x46, 0xa1, 0x15, 0x71, 0xc8,
+ 0xe9, 0x3f, 0x4a, 0xd9, 0x73, 0xe5, 0x7c, 0x30, 0x77, 0xd3, 0xb3, 0x4b, 0x37, 0x72, 0xc2, 0x04,
+ 0x97, 0x08, 0x36, 0xb1, 0x3a, 0x61, 0xec, 0xe2, 0x1c, 0x9a, 0x8b, 0xd1, 0x1b, 0x2e, 0x9e, 0x8a,
+ 0xd8, 0x41, 0xe4, 0xc4, 0x40, 0x2f, 0xad, 0xc0, 0xb6, 0x84, 0x51, 0x66, 0xbb, 0x12, 0xe8, 0xdd,
+ 0xcb, 0xbc, 0x6f, 0xd0, 0x11, 0x83, 0x56, 0x4c, 0xca, 0xbf, 0x05, 0x10, 0xd7, 0xba, 0xfd, 0xed,
+ 0x8c, 0x0e, 0x4f, 0x3d, 0x35, 0x91, 0xb7, 0xac, 0x34, 0x64, 0x2a, 0xf1, 0x79, 0x6a, 0x9b, 0x2d,
+ 0x65, 0xf4, 0x42, 0xa0, 0x8d, 0xa7, 0x48, 0x55, 0x21, 0x93, 0x24, 0xd2, 0xa6, 0xa5, 0xa8, 0x82,
+};
+
+
+static const uint8_t kof99_address_16_23_xor2[256] =
+{
+ 0x29, 0x97, 0x1a, 0x2c, 0x0b, 0x94, 0x3e, 0x75, 0x01, 0x0d, 0x1b, 0xe1, 0x4d, 0x38, 0x39, 0x8f,
+ 0xe7, 0xd0, 0x60, 0x90, 0xb2, 0x0f, 0xbb, 0x70, 0x1f, 0xe6, 0x5b, 0x87, 0xb4, 0x43, 0xfd, 0xf5,
+ 0xf6, 0xf9, 0xad, 0xc0, 0x98, 0x17, 0x9f, 0x91, 0x15, 0x51, 0x55, 0x64, 0x6c, 0x18, 0x61, 0x0e,
+ 0xd9, 0x93, 0xab, 0xd6, 0x24, 0x2f, 0x6a, 0x3a, 0x22, 0xb1, 0x4f, 0xaa, 0x23, 0x48, 0xed, 0xb9,
+ 0x88, 0x8b, 0xa3, 0x6b, 0x26, 0x4c, 0xe8, 0x2d, 0x1c, 0x99, 0xbd, 0x5c, 0x58, 0x08, 0x50, 0xf2,
+ 0x2a, 0x62, 0xc1, 0x72, 0x66, 0x04, 0x10, 0x37, 0x6e, 0xfc, 0x44, 0xa9, 0xdf, 0xd4, 0x20, 0xdd,
+ 0xee, 0x41, 0xdb, 0x73, 0xde, 0x54, 0xec, 0xc9, 0xf3, 0x4b, 0x2e, 0xae, 0x5a, 0x4a, 0x5e, 0x47,
+ 0x07, 0x2b, 0x76, 0xa4, 0xe3, 0x28, 0xfe, 0xb0, 0xf0, 0x02, 0x06, 0xd1, 0xaf, 0x42, 0xc2, 0xa5,
+ 0xe0, 0x67, 0xbf, 0x16, 0x8e, 0x35, 0xce, 0x8a, 0xe5, 0x3d, 0x7b, 0x96, 0xd7, 0x79, 0x52, 0x1e,
+ 0xa1, 0xfb, 0x9b, 0xbe, 0x21, 0x9c, 0xe9, 0x56, 0x14, 0x7f, 0xa0, 0xe4, 0xc3, 0xc4, 0x46, 0xea,
+ 0xf7, 0xd2, 0x1d, 0x31, 0x0a, 0x5f, 0xeb, 0xa2, 0x68, 0x8d, 0xb5, 0xc5, 0x74, 0x0c, 0xdc, 0x82,
+ 0x80, 0x09, 0x19, 0x95, 0x71, 0x9a, 0x11, 0x57, 0x77, 0x4e, 0xc6, 0xff, 0x12, 0x03, 0xa7, 0xc7,
+ 0xf4, 0xc8, 0xb6, 0x7a, 0x59, 0x36, 0x3c, 0x53, 0xe2, 0x69, 0x8c, 0x25, 0x05, 0x45, 0x63, 0xf8,
+ 0x34, 0x89, 0x33, 0x3f, 0x85, 0x27, 0xbc, 0x65, 0xfa, 0xa8, 0x6d, 0x84, 0x5d, 0xba, 0x40, 0x32,
+ 0x30, 0xef, 0x83, 0x13, 0xa6, 0x78, 0xcc, 0x81, 0x9e, 0xda, 0xca, 0xd3, 0x7e, 0x9d, 0x6f, 0xcd,
+ 0xb7, 0xb3, 0xd8, 0xcf, 0x3b, 0x00, 0x92, 0xb8, 0x86, 0xac, 0x49, 0x7c, 0xf1, 0xd5, 0xcb, 0x7d,
+};
+
+
+static const uint8_t kof99_address_0_7_xor[256] =
+{
+ 0x74, 0xad, 0x5d, 0x1d, 0x9e, 0xc3, 0xfa, 0x4e, 0xf7, 0xdb, 0xca, 0xa2, 0x64, 0x36, 0x56, 0x0c,
+ 0x4f, 0xcf, 0x43, 0x66, 0x1e, 0x91, 0xe3, 0xa5, 0x58, 0xc2, 0xc1, 0xd4, 0xb9, 0xdd, 0x76, 0x16,
+ 0xce, 0x61, 0x75, 0x01, 0x2b, 0x22, 0x38, 0x55, 0x50, 0xef, 0x6c, 0x99, 0x05, 0xe9, 0xe8, 0xe0,
+ 0x2d, 0xa4, 0x4b, 0x4a, 0x42, 0xae, 0xba, 0x8c, 0x6f, 0x93, 0x14, 0xbd, 0x71, 0x21, 0xb0, 0x02,
+ 0x15, 0xc4, 0xe6, 0x60, 0xd7, 0x44, 0xfd, 0x85, 0x7e, 0x78, 0x8f, 0x00, 0x81, 0xf1, 0xa7, 0x3b,
+ 0xa0, 0x10, 0xf4, 0x9f, 0x39, 0x88, 0x35, 0x62, 0xcb, 0x19, 0x31, 0x11, 0x51, 0xfb, 0x2a, 0x20,
+ 0x45, 0xd3, 0x7d, 0x92, 0x1b, 0xf2, 0x09, 0x0d, 0x97, 0xa9, 0xb5, 0x3c, 0xee, 0x5c, 0xaf, 0x7b,
+ 0xd2, 0x3a, 0x49, 0x8e, 0xb6, 0xcd, 0xd9, 0xde, 0x8a, 0x29, 0x6e, 0xd8, 0x0b, 0xe1, 0x69, 0x87,
+ 0x1a, 0x96, 0x18, 0xcc, 0xdf, 0xe7, 0xc5, 0xc7, 0xf8, 0x52, 0xc9, 0xf0, 0xb7, 0xe5, 0x33, 0xda,
+ 0x67, 0x9d, 0xa3, 0x03, 0x0e, 0x72, 0x26, 0x79, 0xe2, 0xb8, 0xfc, 0xaa, 0xfe, 0xb4, 0x86, 0xc8,
+ 0xd1, 0xbc, 0x12, 0x08, 0x77, 0xeb, 0x40, 0x8d, 0x04, 0x25, 0x4d, 0x5a, 0x6a, 0x7a, 0x2e, 0x41,
+ 0x65, 0x1c, 0x13, 0x94, 0xb2, 0x63, 0x28, 0x59, 0x5e, 0x9a, 0x30, 0x07, 0xc6, 0xbf, 0x17, 0xf5,
+ 0x0f, 0x89, 0xf3, 0x1f, 0xea, 0x6d, 0xb3, 0xc0, 0x70, 0x47, 0xf9, 0x53, 0xf6, 0xd6, 0x54, 0xed,
+ 0x6b, 0x4c, 0xe4, 0x8b, 0x83, 0x24, 0x90, 0xb1, 0x7c, 0xbb, 0x73, 0xab, 0xd5, 0x2f, 0x5f, 0xec,
+ 0x9c, 0x2c, 0xa8, 0x34, 0x46, 0x37, 0x27, 0xa1, 0x0a, 0x06, 0x80, 0x68, 0x82, 0x32, 0x84, 0xff,
+ 0x48, 0xac, 0x7f, 0x3f, 0x95, 0xdc, 0x98, 0x9b, 0xbe, 0x23, 0x57, 0x3e, 0x5b, 0xd0, 0x3d, 0xa6,
+};
+
+
+static const uint8_t kof2000_type0_t03[256] =
+{
+ 0x10, 0x61, 0xf1, 0x78, 0x85, 0x52, 0x68, 0xe3, 0x12, 0x0d, 0xfa, 0xf0, 0xc9, 0x36, 0x5e, 0x3d,
+ 0xf9, 0xa6, 0x01, 0x2e, 0xc7, 0x84, 0xea, 0x2b, 0x6d, 0x14, 0x38, 0x4f, 0x55, 0x1c, 0x9d, 0xa7,
+ 0x7a, 0xc6, 0xf8, 0x9a, 0xe6, 0x42, 0xb5, 0xed, 0x7d, 0x3a, 0xb1, 0x05, 0x43, 0x4a, 0x22, 0xfd,
+ 0xac, 0xa4, 0x31, 0xc3, 0x32, 0x76, 0x95, 0x9e, 0x7e, 0x88, 0x8e, 0xa2, 0x97, 0x18, 0xbe, 0x2a,
+ 0xf5, 0xd6, 0xca, 0xcc, 0x72, 0x3b, 0x87, 0x6c, 0xde, 0x75, 0xd7, 0x21, 0xcb, 0x0b, 0xdd, 0xe7,
+ 0xe1, 0x65, 0xaa, 0xb9, 0x44, 0xfb, 0x66, 0x15, 0x1a, 0x3c, 0x98, 0xcf, 0x8a, 0xdf, 0x37, 0xa5,
+ 0x2f, 0x67, 0xd2, 0x83, 0xb6, 0x6b, 0xfc, 0xe0, 0xb4, 0x7c, 0x08, 0xdc, 0x93, 0x30, 0xab, 0xe4,
+ 0x19, 0xc2, 0x8b, 0xeb, 0xa0, 0x0a, 0xc8, 0x03, 0xc0, 0x4b, 0x64, 0x71, 0x86, 0x9c, 0x9b, 0x16,
+ 0x79, 0xff, 0x70, 0x09, 0x8c, 0xd0, 0xf6, 0x53, 0x07, 0x73, 0xd4, 0x89, 0xb3, 0x00, 0xe9, 0xfe,
+ 0xec, 0x8f, 0xbc, 0xb2, 0x1e, 0x5d, 0x11, 0x35, 0xa9, 0x06, 0x59, 0x9f, 0xc1, 0xd3, 0x7b, 0xf2,
+ 0xc5, 0x77, 0x4e, 0x39, 0x20, 0xd5, 0x6a, 0x82, 0xda, 0x45, 0xf3, 0x33, 0x81, 0x23, 0xba, 0xe2,
+ 0x1d, 0x5f, 0x5c, 0x51, 0x49, 0xae, 0x8d, 0xc4, 0xa8, 0xf7, 0x1f, 0x0f, 0x34, 0x28, 0xa1, 0xd9,
+ 0x27, 0xd8, 0x4c, 0x2c, 0xbf, 0x91, 0x3e, 0x69, 0x57, 0x41, 0x25, 0x0c, 0x5a, 0x90, 0x92, 0xb0,
+ 0x63, 0x6f, 0x40, 0xaf, 0x74, 0xb8, 0x2d, 0x80, 0xbb, 0x46, 0x94, 0xe5, 0x29, 0xee, 0xb7, 0x1b,
+ 0x96, 0xad, 0x13, 0x0e, 0x58, 0x99, 0x60, 0x4d, 0x17, 0x26, 0xce, 0xe8, 0xdb, 0xef, 0x24, 0xa3,
+ 0x6e, 0x7f, 0x54, 0x3f, 0x02, 0xd1, 0x5b, 0x50, 0x56, 0x48, 0xf4, 0xbd, 0x62, 0x47, 0x04, 0xcd,
+};
+
+
+static const uint8_t kof2000_type0_t12[256] =
+{
+ 0xf4, 0x28, 0xb4, 0x8f, 0xfa, 0xeb, 0x8e, 0x54, 0x2b, 0x49, 0xd1, 0x76, 0x71, 0x47, 0x8b, 0x57,
+ 0x92, 0x85, 0x7c, 0xb8, 0x5c, 0x22, 0xf9, 0x26, 0xbc, 0x5b, 0x6d, 0x67, 0xae, 0x5f, 0x6f, 0xf5,
+ 0x9f, 0x48, 0x66, 0x40, 0x0d, 0x11, 0x4e, 0xb2, 0x6b, 0x35, 0x15, 0x0f, 0x18, 0x25, 0x1d, 0xba,
+ 0xd3, 0x69, 0x79, 0xec, 0xa8, 0x8c, 0xc9, 0x7f, 0x4b, 0xdb, 0x51, 0xaf, 0xca, 0xe2, 0xb3, 0x81,
+ 0x12, 0x5e, 0x7e, 0x38, 0xc8, 0x95, 0x01, 0xff, 0xfd, 0xfb, 0xf2, 0x74, 0x62, 0x14, 0xa5, 0x98,
+ 0xa6, 0xda, 0x80, 0x53, 0xe8, 0x56, 0xac, 0x1b, 0x52, 0xd0, 0xf1, 0x45, 0x42, 0xb6, 0x1a, 0x4a,
+ 0x3a, 0x99, 0xfc, 0xd2, 0x9c, 0xcf, 0x31, 0x2d, 0xdd, 0x86, 0x2f, 0x29, 0xe1, 0x03, 0x19, 0xa2,
+ 0x41, 0x33, 0x83, 0x90, 0xc1, 0xbf, 0x0b, 0x08, 0x3d, 0xd8, 0x8d, 0x6c, 0x39, 0xa0, 0xe3, 0x55,
+ 0x02, 0x50, 0x46, 0xe6, 0xc3, 0x82, 0x36, 0x13, 0x75, 0xab, 0x27, 0xd7, 0x1f, 0x0a, 0xd4, 0x89,
+ 0x59, 0x4f, 0xc0, 0x5d, 0xc6, 0xf7, 0x88, 0xbd, 0x3c, 0x00, 0xef, 0xcd, 0x05, 0x1c, 0xaa, 0x9b,
+ 0xed, 0x7a, 0x61, 0x17, 0x93, 0xfe, 0x23, 0xb9, 0xf3, 0x68, 0x78, 0xf6, 0x5a, 0x7b, 0xe0, 0xe4,
+ 0xa3, 0xee, 0x16, 0x72, 0xc7, 0x3b, 0x8a, 0x37, 0x2a, 0x70, 0xa9, 0x2c, 0x21, 0xf8, 0x24, 0x09,
+ 0xce, 0x20, 0x9e, 0x06, 0x87, 0xc5, 0x04, 0x64, 0x43, 0x7d, 0x4d, 0x10, 0xd6, 0xa4, 0x94, 0x4c,
+ 0x60, 0xde, 0xdf, 0x58, 0xb1, 0x44, 0x3f, 0xb0, 0xd9, 0xe5, 0xcb, 0xbb, 0xbe, 0xea, 0x07, 0x34,
+ 0x73, 0x6a, 0x77, 0xf0, 0x9d, 0x0c, 0x2e, 0x0e, 0x91, 0x9a, 0xcc, 0xc2, 0xb7, 0x63, 0x97, 0xd5,
+ 0xdc, 0xc4, 0x32, 0xe7, 0x84, 0x3e, 0x30, 0xa1, 0x1e, 0xb5, 0x6e, 0x65, 0xe9, 0xad, 0xa7, 0x96,
+};
+
+
+static const uint8_t kof2000_type1_t03[256] =
+{
+ 0x9a, 0x2f, 0xcc, 0x4e, 0x40, 0x69, 0xac, 0xca, 0xa5, 0x7b, 0x0a, 0x61, 0x91, 0x0d, 0x55, 0x74,
+ 0xcd, 0x8b, 0x0b, 0x80, 0x09, 0x5e, 0x38, 0xc7, 0xda, 0xbf, 0xf5, 0x37, 0x23, 0x31, 0x33, 0xe9,
+ 0xae, 0x87, 0xe5, 0xfa, 0x6e, 0x5c, 0xad, 0xf4, 0x76, 0x62, 0x9f, 0x2e, 0x01, 0xe2, 0xf6, 0x47,
+ 0x8c, 0x7c, 0xaa, 0x98, 0xb5, 0x92, 0x51, 0xec, 0x5f, 0x07, 0x5d, 0x6f, 0x16, 0xa1, 0x1d, 0xa9,
+ 0x48, 0x45, 0xf0, 0x6a, 0x9c, 0x1e, 0x11, 0xa0, 0x06, 0x46, 0xd5, 0xf1, 0x73, 0xed, 0x94, 0xf7,
+ 0xc3, 0x57, 0x1b, 0xe0, 0x97, 0xb1, 0xa4, 0xa7, 0x24, 0xe7, 0x2b, 0x05, 0x5b, 0x34, 0x0c, 0xb8,
+ 0x0f, 0x9b, 0xc8, 0x4d, 0x5a, 0xa6, 0x86, 0x3e, 0x14, 0x29, 0x84, 0x58, 0x90, 0xdb, 0x2d, 0x54,
+ 0x9d, 0x82, 0xd4, 0x7d, 0xc6, 0x67, 0x41, 0x89, 0xc1, 0x13, 0xb0, 0x9e, 0x81, 0x6d, 0xa8, 0x59,
+ 0xbd, 0x39, 0x8e, 0xe6, 0x25, 0x8f, 0xd9, 0xa2, 0xe4, 0x53, 0xc5, 0x72, 0x7e, 0x36, 0x4a, 0x4f,
+ 0x52, 0xc2, 0x22, 0x2a, 0xce, 0x3c, 0x21, 0x2c, 0x00, 0xd7, 0x75, 0x8a, 0x27, 0xee, 0x43, 0xfe,
+ 0xcb, 0x6b, 0xb9, 0xa3, 0x78, 0xb7, 0x85, 0x02, 0x20, 0xd0, 0x83, 0xc4, 0x12, 0xf9, 0xfd, 0xd8,
+ 0x79, 0x64, 0x3a, 0x49, 0x03, 0xb4, 0xc0, 0xf2, 0xdf, 0x15, 0x93, 0x08, 0x35, 0xff, 0x70, 0xdd,
+ 0x28, 0x6c, 0x0e, 0x04, 0xde, 0x7a, 0x65, 0xd2, 0xab, 0x42, 0x95, 0xe1, 0x3f, 0x3b, 0x7f, 0x66,
+ 0xd1, 0x8d, 0xe3, 0xbb, 0x1c, 0xfc, 0x77, 0x1a, 0x88, 0x18, 0x19, 0x68, 0x1f, 0x56, 0xd6, 0xe8,
+ 0xb6, 0xbc, 0xd3, 0xea, 0x3d, 0x26, 0xb3, 0xc9, 0x44, 0xdc, 0xf3, 0x32, 0x30, 0xef, 0x96, 0x4c,
+ 0xaf, 0x17, 0xf8, 0xfb, 0x60, 0x50, 0xeb, 0x4b, 0x99, 0x63, 0xba, 0xb2, 0x71, 0xcf, 0x10, 0xbe,
+};
+
+
+static const uint8_t kof2000_type1_t12[256] =
+{
+ 0xda, 0xa7, 0xd6, 0x6e, 0x2f, 0x5e, 0xf0, 0x3f, 0xa4, 0xce, 0xd3, 0xfd, 0x46, 0x2a, 0xac, 0xc9,
+ 0xbe, 0xeb, 0x9f, 0xd5, 0x3c, 0x61, 0x96, 0x11, 0xd0, 0x38, 0xca, 0x06, 0xed, 0x1b, 0x65, 0xe7,
+ 0x23, 0xdd, 0xd9, 0x05, 0xbf, 0x5b, 0x5d, 0xa5, 0x95, 0x00, 0xec, 0xf1, 0x01, 0xa9, 0xa6, 0xfc,
+ 0xbb, 0x54, 0xe3, 0x2e, 0x92, 0x58, 0x0a, 0x7b, 0xb6, 0xcc, 0xb1, 0x5f, 0x14, 0x35, 0x72, 0xff,
+ 0xe6, 0x52, 0xd7, 0x8c, 0xf3, 0x43, 0xaf, 0x9c, 0xc0, 0x4f, 0x0c, 0x42, 0x8e, 0xef, 0x80, 0xcd,
+ 0x1d, 0x7e, 0x88, 0x3b, 0x98, 0xa1, 0xad, 0xe4, 0x9d, 0x8d, 0x2b, 0x56, 0xb5, 0x50, 0xdf, 0x66,
+ 0x6d, 0xd4, 0x60, 0x09, 0xe1, 0xee, 0x4a, 0x47, 0xf9, 0xfe, 0x73, 0x07, 0x89, 0xa8, 0x39, 0xea,
+ 0x82, 0x9e, 0xcf, 0x26, 0xb2, 0x4e, 0xc3, 0x59, 0xf2, 0x3d, 0x9a, 0xb0, 0x69, 0xf7, 0xbc, 0x34,
+ 0xe5, 0x36, 0x22, 0xfb, 0x57, 0x71, 0x99, 0x6c, 0x83, 0x30, 0x55, 0xc2, 0xbd, 0xf4, 0x77, 0xe9,
+ 0x76, 0x97, 0xa0, 0xe0, 0xb9, 0x86, 0x6b, 0xa3, 0x84, 0x67, 0x1a, 0x70, 0x02, 0x5a, 0x41, 0x5c,
+ 0x25, 0x81, 0xaa, 0x28, 0x78, 0x4b, 0xc6, 0x64, 0x53, 0x16, 0x4d, 0x8b, 0x20, 0x93, 0xae, 0x0f,
+ 0x94, 0x2c, 0x3a, 0xc7, 0x62, 0xe8, 0xc4, 0xdb, 0x04, 0xc5, 0xfa, 0x29, 0x48, 0xd1, 0x08, 0x24,
+ 0x0d, 0xe2, 0xd8, 0x10, 0xb4, 0x91, 0x8a, 0x13, 0x0e, 0xdc, 0xd2, 0x79, 0xb8, 0xf8, 0xba, 0x2d,
+ 0xcb, 0xf5, 0x7d, 0x37, 0x51, 0x40, 0x31, 0xa2, 0x0b, 0x18, 0x63, 0x7f, 0xb3, 0xab, 0x9b, 0x87,
+ 0xf6, 0x90, 0xde, 0xc8, 0x27, 0x45, 0x7c, 0x1c, 0x85, 0x68, 0x33, 0x19, 0x03, 0x75, 0x15, 0x7a,
+ 0x1f, 0x49, 0x8f, 0x4c, 0xc1, 0x44, 0x17, 0x12, 0x6f, 0x32, 0xb7, 0x3e, 0x74, 0x1e, 0x21, 0x6a,
+};
+
+
+static const uint8_t kof2000_address_8_15_xor1[256] =
+{
+ 0xfc, 0x9b, 0x1c, 0x35, 0x72, 0x53, 0xd6, 0x7d, 0x84, 0xa4, 0xc5, 0x93, 0x7b, 0xe7, 0x47, 0xd5,
+ 0x24, 0xa2, 0xfa, 0x19, 0x0c, 0xb1, 0x8c, 0xb9, 0x9d, 0xd8, 0x59, 0x4f, 0x3c, 0xb2, 0x78, 0x4a,
+ 0x2a, 0x96, 0x9a, 0xf1, 0x1f, 0x22, 0xa8, 0x5b, 0x67, 0xa3, 0x0f, 0x00, 0xfb, 0xdf, 0xeb, 0x0a,
+ 0x57, 0xb8, 0x25, 0xd7, 0xf0, 0x6b, 0x0b, 0x31, 0x95, 0x23, 0x2d, 0x5c, 0x27, 0xc7, 0xf4, 0x55,
+ 0x1a, 0xf7, 0x74, 0xbe, 0xd3, 0xac, 0x3d, 0xc1, 0x7f, 0xbd, 0x28, 0x01, 0x10, 0xe5, 0x09, 0x37,
+ 0x1e, 0x58, 0xaf, 0x17, 0xf2, 0x16, 0x30, 0x92, 0x36, 0x68, 0xe6, 0xd4, 0xea, 0xb7, 0x75, 0x54,
+ 0x77, 0x41, 0xb4, 0x8d, 0xe0, 0xf3, 0x51, 0x03, 0xa9, 0xe8, 0x66, 0xab, 0x29, 0xa5, 0xed, 0xcb,
+ 0xd1, 0xaa, 0xf5, 0xdb, 0x4c, 0x42, 0x97, 0x8a, 0xae, 0xc9, 0x6e, 0x04, 0x33, 0x85, 0xdd, 0x2b,
+ 0x6f, 0xef, 0x12, 0x21, 0x7a, 0xa1, 0x5a, 0x91, 0xc8, 0xcc, 0xc0, 0xa7, 0x60, 0x3e, 0x56, 0x2f,
+ 0xe4, 0x71, 0x99, 0xc2, 0xa0, 0x45, 0x80, 0x65, 0xbb, 0x87, 0x69, 0x81, 0x73, 0xca, 0xf6, 0x46,
+ 0x43, 0xda, 0x26, 0x7e, 0x8f, 0xe1, 0x8b, 0xfd, 0x50, 0x79, 0xba, 0xc6, 0x63, 0x4b, 0xb3, 0x8e,
+ 0x34, 0xe2, 0x48, 0x14, 0xcd, 0xe3, 0xc4, 0x05, 0x13, 0x40, 0x06, 0x6c, 0x88, 0xb0, 0xe9, 0x1b,
+ 0x4d, 0xf8, 0x76, 0x02, 0x44, 0x94, 0xcf, 0x32, 0xfe, 0xce, 0x3b, 0x5d, 0x2c, 0x89, 0x5f, 0xdc,
+ 0xd2, 0x9c, 0x6a, 0xec, 0x18, 0x6d, 0x0e, 0x86, 0xff, 0x5e, 0x9e, 0xee, 0x11, 0xd0, 0x49, 0x52,
+ 0x4e, 0x61, 0x90, 0x0d, 0xc3, 0x39, 0x15, 0x83, 0xb5, 0x62, 0x3f, 0x70, 0x7c, 0xad, 0x20, 0xbf,
+ 0x2e, 0x08, 0x1d, 0xf9, 0xb6, 0xa6, 0x64, 0x07, 0x82, 0x38, 0x98, 0x3a, 0x9f, 0xde, 0xbc, 0xd9,
+};
+
+
+static const uint8_t kof2000_address_8_15_xor2[256] =
+{
+ 0x00, 0xbe, 0x06, 0x5a, 0xfa, 0x42, 0x15, 0xf2, 0x3f, 0x0a, 0x84, 0x93, 0x4e, 0x78, 0x3b, 0x89,
+ 0x32, 0x98, 0xa2, 0x87, 0x73, 0xdd, 0x26, 0xe5, 0x05, 0x71, 0x08, 0x6e, 0x9b, 0xe0, 0xdf, 0x9e,
+ 0xfc, 0x83, 0x81, 0xef, 0xb2, 0xc0, 0xc3, 0xbf, 0xa7, 0x6d, 0x1b, 0x95, 0xed, 0xb9, 0x3e, 0x13,
+ 0xb0, 0x47, 0x9c, 0x7a, 0x24, 0x41, 0x68, 0xd0, 0x36, 0x0b, 0xb5, 0xc2, 0x67, 0xf7, 0x54, 0x92,
+ 0x1e, 0x44, 0x86, 0x2b, 0x94, 0xcc, 0xba, 0x23, 0x0d, 0xca, 0x6b, 0x4c, 0x2a, 0x9a, 0x2d, 0x8b,
+ 0xe3, 0x52, 0x29, 0xf0, 0x21, 0xbd, 0xbb, 0x1f, 0xa3, 0xab, 0xf8, 0x46, 0xb7, 0x45, 0x82, 0x5e,
+ 0xdb, 0x07, 0x5d, 0xe9, 0x9d, 0x1a, 0x48, 0xce, 0x91, 0x12, 0xd4, 0xee, 0xa9, 0x39, 0xf1, 0x18,
+ 0x2c, 0x22, 0x8a, 0x7e, 0x34, 0x4a, 0x8c, 0xc1, 0x14, 0xf3, 0x20, 0x35, 0xd9, 0x96, 0x33, 0x77,
+ 0x9f, 0x76, 0x7c, 0x90, 0xc6, 0xd5, 0xa1, 0x5b, 0xac, 0x75, 0xc7, 0x0c, 0xb3, 0x17, 0xd6, 0x99,
+ 0x56, 0xa6, 0x3d, 0x1d, 0xb1, 0x2e, 0xd8, 0xbc, 0x2f, 0xde, 0x60, 0x55, 0x6c, 0x40, 0xcd, 0x43,
+ 0xff, 0xad, 0x38, 0x79, 0x51, 0xc8, 0x0e, 0x5f, 0xc4, 0x66, 0xcb, 0xa8, 0x7d, 0xa4, 0x3a, 0xea,
+ 0x27, 0x7b, 0x70, 0x8e, 0x5c, 0x19, 0x0f, 0x80, 0x6f, 0x8f, 0x10, 0xf9, 0x49, 0x85, 0x69, 0x7f,
+ 0xeb, 0x1c, 0x01, 0x65, 0x37, 0xa5, 0x28, 0xe4, 0x6a, 0x03, 0x04, 0xd1, 0x31, 0x11, 0x30, 0xfb,
+ 0x88, 0x97, 0xd3, 0xf6, 0xc5, 0x4d, 0xf5, 0x3c, 0xe8, 0x61, 0xdc, 0xd2, 0xb4, 0xb8, 0xa0, 0xae,
+ 0x16, 0x25, 0x02, 0x09, 0xfe, 0xcf, 0x53, 0x63, 0xaf, 0x59, 0xf4, 0xe1, 0xec, 0xd7, 0xe7, 0x50,
+ 0xe2, 0xc9, 0xaa, 0x4b, 0x8d, 0x4f, 0xe6, 0x64, 0xda, 0x74, 0xb6, 0x72, 0x57, 0x62, 0xfd, 0x58,
+};
+
+
+static const uint8_t kof2000_address_16_23_xor1[256] =
+{
+ 0x45, 0x9f, 0x6e, 0x2f, 0x28, 0xbc, 0x5e, 0x6d, 0xda, 0xb5, 0x0d, 0xb8, 0xc0, 0x8e, 0xa2, 0x32,
+ 0xee, 0xcd, 0x8d, 0x48, 0x8c, 0x27, 0x14, 0xeb, 0x65, 0xd7, 0xf2, 0x93, 0x99, 0x90, 0x91, 0xfc,
+ 0x5f, 0xcb, 0xfa, 0x75, 0x3f, 0x26, 0xde, 0x72, 0x33, 0x39, 0xc7, 0x1f, 0x88, 0x79, 0x73, 0xab,
+ 0x4e, 0x36, 0x5d, 0x44, 0xd2, 0x41, 0xa0, 0x7e, 0xa7, 0x8b, 0xa6, 0xbf, 0x03, 0xd8, 0x86, 0xdc,
+ 0x2c, 0xaa, 0x70, 0x3d, 0x46, 0x07, 0x80, 0x58, 0x0b, 0x2b, 0xe2, 0xf0, 0xb1, 0xfe, 0x42, 0xf3,
+ 0xe9, 0xa3, 0x85, 0x78, 0xc3, 0xd0, 0x5a, 0xdb, 0x1a, 0xfb, 0x9d, 0x8a, 0xa5, 0x12, 0x0e, 0x54,
+ 0x8f, 0xc5, 0x6c, 0xae, 0x25, 0x5b, 0x4b, 0x17, 0x02, 0x9c, 0x4a, 0x24, 0x40, 0xe5, 0x9e, 0x22,
+ 0xc6, 0x49, 0x62, 0xb6, 0x6b, 0xbb, 0xa8, 0xcc, 0xe8, 0x81, 0x50, 0x47, 0xc8, 0xbe, 0x5c, 0xa4,
+ 0xd6, 0x94, 0x4f, 0x7b, 0x9a, 0xcf, 0xe4, 0x59, 0x7a, 0xa1, 0xea, 0x31, 0x37, 0x13, 0x2d, 0xaf,
+ 0x21, 0x69, 0x19, 0x1d, 0x6f, 0x16, 0x98, 0x1e, 0x08, 0xe3, 0xb2, 0x4d, 0x9b, 0x7f, 0xa9, 0x77,
+ 0xed, 0xbd, 0xd4, 0xd9, 0x34, 0xd3, 0xca, 0x09, 0x18, 0x60, 0xc9, 0x6a, 0x01, 0xf4, 0xf6, 0x64,
+ 0xb4, 0x3a, 0x15, 0xac, 0x89, 0x52, 0x68, 0x71, 0xe7, 0x82, 0xc1, 0x0c, 0x92, 0xf7, 0x30, 0xe6,
+ 0x1c, 0x3e, 0x0f, 0x0a, 0x67, 0x35, 0xba, 0x61, 0xdd, 0x29, 0xc2, 0xf8, 0x97, 0x95, 0xb7, 0x3b,
+ 0xe0, 0xce, 0xf9, 0xd5, 0x06, 0x76, 0xb3, 0x05, 0x4c, 0x04, 0x84, 0x3c, 0x87, 0x23, 0x63, 0x7c,
+ 0x53, 0x56, 0xe1, 0x7d, 0x96, 0x1b, 0xd1, 0xec, 0x2a, 0x66, 0xf1, 0x11, 0x10, 0xff, 0x43, 0x2e,
+ 0xdf, 0x83, 0x74, 0xf5, 0x38, 0x20, 0xfd, 0xad, 0xc4, 0xb9, 0x55, 0x51, 0xb0, 0xef, 0x00, 0x57,
+};
+
+
+static const uint8_t kof2000_address_16_23_xor2[256] =
+{
+ 0x00, 0xb8, 0xf0, 0x34, 0xca, 0x21, 0x3c, 0xf9, 0x01, 0x8e, 0x75, 0x70, 0xec, 0x13, 0x27, 0x96,
+ 0xf4, 0x5b, 0x88, 0x1f, 0xeb, 0x4a, 0x7d, 0x9d, 0xbe, 0x02, 0x14, 0xaf, 0xa2, 0x06, 0xc6, 0xdb,
+ 0x35, 0x6b, 0x74, 0x45, 0x7b, 0x29, 0xd2, 0xfe, 0xb6, 0x15, 0xd0, 0x8a, 0xa9, 0x2d, 0x19, 0xf6,
+ 0x5e, 0x5a, 0x90, 0xe9, 0x11, 0x33, 0xc2, 0x47, 0x37, 0x4c, 0x4f, 0x59, 0xc3, 0x04, 0x57, 0x1d,
+ 0xf2, 0x63, 0x6d, 0x6e, 0x31, 0x95, 0xcb, 0x3e, 0x67, 0xb2, 0xe3, 0x98, 0xed, 0x8d, 0xe6, 0xfb,
+ 0xf8, 0xba, 0x5d, 0xd4, 0x2a, 0xf5, 0x3b, 0x82, 0x05, 0x16, 0x44, 0xef, 0x4d, 0xe7, 0x93, 0xda,
+ 0x9f, 0xbb, 0x61, 0xc9, 0x53, 0xbd, 0x76, 0x78, 0x52, 0x36, 0x0c, 0x66, 0xc1, 0x10, 0xdd, 0x7a,
+ 0x84, 0x69, 0xcd, 0xfd, 0x58, 0x0d, 0x6c, 0x89, 0x68, 0xad, 0x3a, 0xb0, 0x4b, 0x46, 0xc5, 0x03,
+ 0xb4, 0xf7, 0x30, 0x8c, 0x4e, 0x60, 0x73, 0xa1, 0x8b, 0xb1, 0x62, 0xcc, 0xd1, 0x08, 0xfc, 0x77,
+ 0x7e, 0xcf, 0x56, 0x51, 0x07, 0xa6, 0x80, 0x92, 0xdc, 0x0b, 0xa4, 0xc7, 0xe8, 0xe1, 0xb5, 0x71,
+ 0xea, 0xb3, 0x2f, 0x94, 0x18, 0xe2, 0x3d, 0x49, 0x65, 0xaa, 0xf1, 0x91, 0xc8, 0x99, 0x55, 0x79,
+ 0x86, 0xa7, 0x26, 0xa0, 0xac, 0x5f, 0xce, 0x6a, 0x5c, 0xf3, 0x87, 0x8f, 0x12, 0x1c, 0xd8, 0xe4,
+ 0x9b, 0x64, 0x2e, 0x1e, 0xd7, 0xc0, 0x17, 0xbc, 0xa3, 0xa8, 0x9a, 0x0e, 0x25, 0x40, 0x41, 0x50,
+ 0xb9, 0xbf, 0x28, 0xdf, 0x32, 0x54, 0x9e, 0x48, 0xd5, 0x2b, 0x42, 0xfa, 0x9c, 0x7f, 0xd3, 0x85,
+ 0x43, 0xde, 0x81, 0x0f, 0x24, 0xc4, 0x38, 0xae, 0x83, 0x1b, 0x6f, 0x7c, 0xe5, 0xff, 0x1a, 0xd9,
+ 0x3f, 0xb7, 0x22, 0x97, 0x09, 0xe0, 0xa5, 0x20, 0x23, 0x2c, 0x72, 0xd6, 0x39, 0xab, 0x0a, 0xee,
+};
+
+
+static const uint8_t kof2000_address_0_7_xor[256] =
+{
+ 0x26, 0x48, 0x06, 0x9b, 0x21, 0xa9, 0x1b, 0x76, 0xc9, 0xf8, 0xb4, 0x67, 0xe4, 0xff, 0x99, 0xf7,
+ 0x15, 0x9e, 0x62, 0x00, 0x72, 0x4d, 0xa0, 0x4f, 0x02, 0xf1, 0xea, 0xef, 0x0b, 0xf3, 0xeb, 0xa6,
+ 0x93, 0x78, 0x6f, 0x7c, 0xda, 0xd4, 0x7b, 0x05, 0xe9, 0xc6, 0xd6, 0xdb, 0x50, 0xce, 0xd2, 0x01,
+ 0xb5, 0xe8, 0xe0, 0x2a, 0x08, 0x1a, 0xb8, 0xe3, 0xf9, 0xb1, 0xf4, 0x8b, 0x39, 0x2d, 0x85, 0x9c,
+ 0x55, 0x73, 0x63, 0x40, 0x38, 0x96, 0xdc, 0xa3, 0xa2, 0xa1, 0x25, 0x66, 0x6d, 0x56, 0x8e, 0x10,
+ 0x0f, 0x31, 0x1c, 0xf5, 0x28, 0x77, 0x0a, 0xd1, 0x75, 0x34, 0xa4, 0xfe, 0x7d, 0x07, 0x51, 0x79,
+ 0x41, 0x90, 0x22, 0x35, 0x12, 0xbb, 0xc4, 0xca, 0xb2, 0x1f, 0xcb, 0xc8, 0xac, 0xdd, 0xd0, 0x0d,
+ 0xfc, 0xc5, 0x9d, 0x14, 0xbc, 0x83, 0xd9, 0x58, 0xc2, 0x30, 0x9a, 0x6a, 0xc0, 0x0c, 0xad, 0xf6,
+ 0x5d, 0x74, 0x7f, 0x2f, 0xbd, 0x1d, 0x47, 0xd5, 0xe6, 0x89, 0xcf, 0xb7, 0xd3, 0x59, 0x36, 0x98,
+ 0xf0, 0xfb, 0x3c, 0xf2, 0x3f, 0xa7, 0x18, 0x82, 0x42, 0x5c, 0xab, 0xba, 0xde, 0x52, 0x09, 0x91,
+ 0xaa, 0x61, 0xec, 0xd7, 0x95, 0x23, 0xcd, 0x80, 0xa5, 0x68, 0x60, 0x27, 0x71, 0xe1, 0x2c, 0x2e,
+ 0x8d, 0x2b, 0x57, 0x65, 0xbf, 0xc1, 0x19, 0xc7, 0x49, 0x64, 0x88, 0x4a, 0xcc, 0x20, 0x4e, 0xd8,
+ 0x3b, 0x4c, 0x13, 0x5f, 0x9f, 0xbe, 0x5e, 0x6e, 0xfd, 0xe2, 0xfa, 0x54, 0x37, 0x0e, 0x16, 0x7a,
+ 0x6c, 0x33, 0xb3, 0x70, 0x84, 0x7e, 0xc3, 0x04, 0xb0, 0xae, 0xb9, 0x81, 0x03, 0x29, 0xdf, 0x46,
+ 0xe5, 0x69, 0xe7, 0x24, 0x92, 0x5a, 0x4b, 0x5b, 0x94, 0x11, 0x3a, 0x3d, 0x87, 0xed, 0x97, 0xb6,
+ 0x32, 0x3e, 0x45, 0xaf, 0x1e, 0x43, 0x44, 0x8c, 0x53, 0x86, 0x6b, 0xee, 0xa8, 0x8a, 0x8f, 0x17,
+};
+
+
+
+void cmc_prot_device::decrypt(uint8_t *r0, uint8_t *r1, uint8_t c0, uint8_t c1, const uint8_t *table0hi, const uint8_t *table0lo, const uint8_t *table1, int base, int invert)
+{
+ uint8_t tmp,xor0,xor1;
+
+ tmp = table1[(base & 0xff) ^ address_0_7_xor[(base >> 8) & 0xff]];
+ xor0 = (table0hi[(base >> 8) & 0xff] & 0xfe) | (tmp & 0x01);
+ xor1 = (tmp & 0xfe) | (table0lo[(base >> 8) & 0xff] & 0x01);
+
+ if (invert)
+ {
+ *r0 = c1 ^ xor0;
+ *r1 = c0 ^ xor1;
+ }
+ else
+ {
+ *r0 = c0 ^ xor0;
+ *r1 = c1 ^ xor1;
+ }
+}
+
+
+void cmc_prot_device::neogeo_gfx_decrypt(uint8_t* rom, uint32_t rom_size, int extra_xor)
+{
+ int rpos;
+ std::vector<uint8_t> buf(rom_size);
+
+ // Data xor
+ for (rpos = 0;rpos < rom_size/4;rpos++)
+ {
+ decrypt(&buf[4*rpos+0], &buf[4*rpos+3], rom[4*rpos+0], rom[4*rpos+3], type0_t03, type0_t12, type1_t03, rpos, (rpos>>8) & 1);
+ decrypt(&buf[4*rpos+1], &buf[4*rpos+2], rom[4*rpos+1], rom[4*rpos+2], type0_t12, type0_t03, type1_t12, rpos, ((rpos>>16) ^ address_16_23_xor2[(rpos>>8) & 0xff]) & 1);
+ }
+
+ // Address xor
+ for (rpos = 0;rpos < rom_size/4;rpos++)
+ {
+ int baser = rpos ^ extra_xor;
+ baser ^= address_8_15_xor1[(baser >> 16) & 0xff] << 8;
+ baser ^= address_8_15_xor2[baser & 0xff] << 8;
+ baser ^= address_16_23_xor1[baser & 0xff] << 16;
+ baser ^= address_16_23_xor2[(baser >> 8) & 0xff] << 16;
+ baser ^= address_0_7_xor[(baser >> 8) & 0xff];
+
+ if (rom_size == 0x3000000) /* special handling for preisle2 */
+ {
+ if (rpos < 0x2000000/4)
+ baser &= (0x2000000/4)-1;
+ else
+ baser = 0x2000000/4 + (baser & ((0x1000000/4)-1));
+ }
+ else if (rom_size == 0x6000000) /* special handling for kf2k3pcb */
+ {
+ if (rpos < 0x4000000/4)
+ baser &= (0x4000000/4)-1;
+ else
+ baser = 0x4000000/4 + (baser & ((0x1000000/4)-1));
+ }
+ else /* Clamp to the real rom size */
+ baser &= (rom_size/4)-1;
+
+ rom[4*rpos+0] = buf[4*baser+0];
+ rom[4*rpos+1] = buf[4*baser+1];
+ rom[4*rpos+2] = buf[4*baser+2];
+ rom[4*rpos+3] = buf[4*baser+3];
+ }
+}
+
+
+/* the S data comes from the end of the C data */
+void cmc_prot_device::neogeo_sfix_decrypt(uint8_t* rom, uint32_t rom_size, uint8_t* fixed, uint32_t fixed_size)
+{
+ int i;
+ int tx_size = fixed_size;
+ uint8_t *src = rom+rom_size-tx_size;
+ uint8_t *dst = fixed;
+
+ for (i = 0;i < tx_size;i++)
+ dst[i] = src[(i & ~0x1f) + ((i & 7) << 2) + ((~i & 8) >> 2) + ((i & 0x10) >> 4)];
+}
+
+
+/* CMC42 protection chip */
+void cmc_prot_device::cmc42_neogeo_gfx_decrypt(uint8_t* rom, uint32_t rom_size, int extra_xor)
+{
+ type0_t03 = kof99_type0_t03;
+ type0_t12 = kof99_type0_t12;
+ type1_t03 = kof99_type1_t03;
+ type1_t12 = kof99_type1_t12;
+ address_8_15_xor1 = kof99_address_8_15_xor1;
+ address_8_15_xor2 = kof99_address_8_15_xor2;
+ address_16_23_xor1 = kof99_address_16_23_xor1;
+ address_16_23_xor2 = kof99_address_16_23_xor2;
+ address_0_7_xor = kof99_address_0_7_xor;
+ neogeo_gfx_decrypt(rom, rom_size, extra_xor);
+}
+
+
+/* CMC50 protection chip */
+void cmc_prot_device::cmc50_neogeo_gfx_decrypt(uint8_t* rom, uint32_t rom_size, int extra_xor)
+{
+ type0_t03 = kof2000_type0_t03;
+ type0_t12 = kof2000_type0_t12;
+ type1_t03 = kof2000_type1_t03;
+ type1_t12 = kof2000_type1_t12;
+ address_8_15_xor1 = kof2000_address_8_15_xor1;
+ address_8_15_xor2 = kof2000_address_8_15_xor2;
+ address_16_23_xor1 = kof2000_address_16_23_xor1;
+ address_16_23_xor2 = kof2000_address_16_23_xor2;
+ address_0_7_xor = kof2000_address_0_7_xor;
+ neogeo_gfx_decrypt(rom, rom_size, extra_xor);
+}
+
+
+
+/***************************************************************************
+
+NeoGeo 'M' ROM encryption
+ CMC50 protection chip
+
+***************************************************************************/
+
+
+static const uint8_t m1_address_8_15_xor[256] =
+{
+ 0x0a, 0x72, 0xb7, 0xaf, 0x67, 0xde, 0x1d, 0xb1, 0x78, 0xc4, 0x4f, 0xb5, 0x4b, 0x18, 0x76, 0xdd,
+ 0x11, 0xe2, 0x36, 0xa1, 0x82, 0x03, 0x98, 0xa0, 0x10, 0x5f, 0x3f, 0xd6, 0x1f, 0x90, 0x6a, 0x0b,
+ 0x70, 0xe0, 0x64, 0xcb, 0x9f, 0x38, 0x8b, 0x53, 0x04, 0xca, 0xf8, 0xd0, 0x07, 0x68, 0x56, 0x32,
+ 0xae, 0x1c, 0x2e, 0x48, 0x63, 0x92, 0x9a, 0x9c, 0x44, 0x85, 0x41, 0x40, 0x09, 0xc0, 0xc8, 0xbf,
+ 0xea, 0xbb, 0xf7, 0x2d, 0x99, 0x21, 0xf6, 0xba, 0x15, 0xce, 0xab, 0xb0, 0x2a, 0x60, 0xbc, 0xf1,
+ 0xf0, 0x9e, 0xd5, 0x97, 0xd8, 0x4e, 0x14, 0x9d, 0x42, 0x4d, 0x2c, 0x5c, 0x2b, 0xa6, 0xe1, 0xa7,
+ 0xef, 0x25, 0x33, 0x7a, 0xeb, 0xe7, 0x1b, 0x6d, 0x4c, 0x52, 0x26, 0x62, 0xb6, 0x35, 0xbe, 0x80,
+ 0x01, 0xbd, 0xfd, 0x37, 0xf9, 0x47, 0x55, 0x71, 0xb4, 0xf2, 0xff, 0x27, 0xfa, 0x23, 0xc9, 0x83,
+ 0x17, 0x39, 0x13, 0x0d, 0xc7, 0x86, 0x16, 0xec, 0x49, 0x6f, 0xfe, 0x34, 0x05, 0x8f, 0x00, 0xe6,
+ 0xa4, 0xda, 0x7b, 0xc1, 0xf3, 0xf4, 0xd9, 0x75, 0x28, 0x66, 0x87, 0xa8, 0x45, 0x6c, 0x20, 0xe9,
+ 0x77, 0x93, 0x7e, 0x3c, 0x1e, 0x74, 0xf5, 0x8c, 0x3e, 0x94, 0xd4, 0xc2, 0x5a, 0x06, 0x0e, 0xe8,
+ 0x3d, 0xa9, 0xb2, 0xe3, 0xe4, 0x22, 0xcf, 0x24, 0x8e, 0x6b, 0x8a, 0x8d, 0x84, 0x4a, 0xd2, 0x91,
+ 0x88, 0x79, 0x57, 0xa5, 0x0f, 0xcd, 0xb9, 0xac, 0x3b, 0xaa, 0xb3, 0xd1, 0xee, 0x31, 0x81, 0x7c,
+ 0xd7, 0x89, 0xd3, 0x96, 0x43, 0xc5, 0xc6, 0xc3, 0x69, 0x7f, 0x46, 0xdf, 0x30, 0x5b, 0x6e, 0xe5,
+ 0x08, 0x95, 0x9b, 0xfb, 0xb8, 0x58, 0x0c, 0x61, 0x50, 0x5d, 0x3a, 0xa2, 0x29, 0x12, 0xfc, 0x51,
+ 0x7d, 0x1a, 0x02, 0x65, 0x54, 0x5e, 0x19, 0xcc, 0xdc, 0xdb, 0x73, 0xed, 0xad, 0x59, 0x2f, 0xa3,
+};
+
+static const uint8_t m1_address_0_7_xor[256] =
+{
+ 0xf4, 0xbc, 0x02, 0xf7, 0x2c, 0x3d, 0xe8, 0xd9, 0x50, 0x62, 0xec, 0xbd, 0x53, 0x73, 0x79, 0x61,
+ 0x00, 0x34, 0xcf, 0xa2, 0x63, 0x28, 0x90, 0xaf, 0x44, 0x3b, 0xc5, 0x8d, 0x3a, 0x46, 0x07, 0x70,
+ 0x66, 0xbe, 0xd8, 0x8b, 0xe9, 0xa0, 0x4b, 0x98, 0xdc, 0xdf, 0xe2, 0x16, 0x74, 0xf1, 0x37, 0xf5,
+ 0xb7, 0x21, 0x81, 0x01, 0x1c, 0x1b, 0x94, 0x36, 0x09, 0xa1, 0x4a, 0x91, 0x30, 0x92, 0x9b, 0x9a,
+ 0x29, 0xb1, 0x38, 0x4d, 0x55, 0xf2, 0x56, 0x18, 0x24, 0x47, 0x9d, 0x3f, 0x80, 0x1f, 0x22, 0xa4,
+ 0x11, 0x54, 0x84, 0x0d, 0x25, 0x48, 0xee, 0xc6, 0x59, 0x15, 0x03, 0x7a, 0xfd, 0x6c, 0xc3, 0x33,
+ 0x5b, 0xc4, 0x7b, 0x5a, 0x05, 0x7f, 0xa6, 0x40, 0xa9, 0x5d, 0x41, 0x8a, 0x96, 0x52, 0xd3, 0xf0,
+ 0xab, 0x72, 0x10, 0x88, 0x6f, 0x95, 0x7c, 0xa8, 0xcd, 0x9c, 0x5f, 0x32, 0xae, 0x85, 0x39, 0xac,
+ 0xe5, 0xd7, 0xfb, 0xd4, 0x08, 0x23, 0x19, 0x65, 0x6b, 0xa7, 0x93, 0xbb, 0x2b, 0xbf, 0xb8, 0x35,
+ 0xd0, 0x06, 0x26, 0x68, 0x3e, 0xdd, 0xb9, 0x69, 0x2a, 0xb2, 0xde, 0x87, 0x45, 0x58, 0xff, 0x3c,
+ 0x9e, 0x7d, 0xda, 0xed, 0x49, 0x8c, 0x14, 0x8e, 0x75, 0x2f, 0xe0, 0x6e, 0x78, 0x6d, 0x20, 0xd2,
+ 0xfa, 0x2d, 0x51, 0xcc, 0xc7, 0xe7, 0x1d, 0x27, 0x97, 0xfc, 0x31, 0xdb, 0xf8, 0x42, 0xe3, 0x99,
+ 0x5e, 0x83, 0x0e, 0xb4, 0x2e, 0xf6, 0xc0, 0x0c, 0x4c, 0x57, 0xb6, 0x64, 0x0a, 0x17, 0xa3, 0xc1,
+ 0x77, 0x12, 0xfe, 0xe6, 0x8f, 0x13, 0x71, 0xe4, 0xf9, 0xad, 0x9f, 0xce, 0xd5, 0x89, 0x7e, 0x0f,
+ 0xc2, 0x86, 0xf3, 0x67, 0xba, 0x60, 0x43, 0xc9, 0x04, 0xb3, 0xb0, 0x1e, 0xb5, 0xc8, 0xeb, 0xa5,
+ 0x76, 0xea, 0x5c, 0x82, 0x1a, 0x4f, 0xaa, 0xca, 0xe1, 0x0b, 0x4e, 0xcb, 0x6a, 0xef, 0xd1, 0xd6,
+};
+
+
+/* The CMC50 hardware does a checksum of the first 64kb of the M1 rom,
+ ,and uses this checksum as the basis of the key with which to decrypt
+ the rom */
+
+uint16_t cmc_prot_device::generate_cs16(uint8_t *rom, int size)
+{
+ uint16_t cs16 = 0;
+ for (int i=0; i<size; i++ )
+ cs16 += rom[i];
+
+ return cs16;
+}
+
+
+int cmc_prot_device::m1_address_scramble(int address, uint16_t key)
+{
+ const int p1[8][16] = {
+ {15,14,10,7,1,2,3,8,0,12,11,13,6,9,5,4},
+ {7,1,8,11,15,9,2,3,5,13,4,14,10,0,6,12},
+ {8,6,14,3,10,7,15,1,4,0,2,5,13,11,12,9},
+ {2,8,15,9,3,4,11,7,13,6,0,10,1,12,14,5},
+ {1,13,6,15,14,3,8,10,9,4,7,12,5,2,0,11},
+ {11,15,3,4,7,0,9,2,6,14,12,1,8,5,10,13},
+ {10,5,13,8,6,15,1,14,11,9,3,0,12,7,4,2},
+ {9,3,7,0,2,12,4,11,14,10,5,8,15,13,1,6},
+ };
+
+ int block = (address>>16)&7;
+ int aux = address&0xffff;
+
+ aux ^= bitswap<16>(key,12,0,2,4,8,15,7,13,10,1,3,6,11,9,14,5);
+ aux = bitswap<16>(aux,
+ p1[block][15],p1[block][14],p1[block][13],p1[block][12],
+ p1[block][11],p1[block][10],p1[block][9],p1[block][8],
+ p1[block][7],p1[block][6],p1[block][5],p1[block][4],
+ p1[block][3],p1[block][2],p1[block][1],p1[block][0]);
+ aux ^= m1_address_0_7_xor[(aux>>8)&0xff];
+ aux ^= m1_address_8_15_xor[aux&0xff]<<8;
+ aux = bitswap<16>(aux, 7,15,14,6,5,13,12,4,11,3,10,2,9,1,8,0);
+
+ return (block<<16)|aux;
+}
+
+
+void cmc_prot_device::neogeo_cmc50_m1_decrypt(uint8_t* romcrypt, uint32_t romcrypt_size, uint8_t* romaudio, uint32_t romaudio_size)
+{
+ uint8_t* rom = romcrypt;
+ size_t rom_size = 0x80000;
+ uint8_t* rom2 = romaudio;
+
+ std::vector<uint8_t> buffer(rom_size);
+
+ uint32_t i;
+
+ uint16_t key=generate_cs16(rom,0x10000);
+
+ //printf("key %04x\n",key);
+
+ for (i=0; i<rom_size; i++)
+ buffer[i] = rom[m1_address_scramble(i, key)];
+
+ memcpy(rom,&buffer[0],rom_size);
+ memcpy(rom2,rom,0x10000);
+ memcpy(rom2+0x10000,rom,0x80000);
+
+#if 0
+ {
+ FILE *fp;
+ const char *gamename = machine().system().name;
+ char filename[256];
+ sprintf(filename, "%s_m1.dump", gamename);
+
+ fp=fopen(filename, "w+b");
+ if (fp)
+ {
+ fwrite(rom, rom_size, 1, fp);
+ fclose(fp);
+ }
+ }
+#endif
+
+
+#if 0
+ {
+ FILE *fp;
+ const char *gamename = machine().system().name;
+ char filename[256];
+ sprintf(filename, "%s_m1extra.dump", gamename);
+
+ fp=fopen(filename, "w+b");
+ if (fp)
+ {
+ fwrite(&rom[0xf800], 0x800, 1, fp);
+ fclose(fp);
+ }
+ }
+#endif
+}
+
+/***********************************************************************************************************************************/
+
+DEFINE_DEVICE_TYPE(FATFURY2_PROT, fatfury2_prot_device, "fatfury2_prot", "NeoGeo Protection (Fatal Fury 2)")
+
+
+fatfury2_prot_device::fatfury2_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : device_t(mconfig, FATFURY2_PROT, tag, owner, clock)
+ , m_bankdev(nullptr)
+ , m_fatfury2_prot_data(0)
+ { }
+
+
+void fatfury2_prot_device::device_start()
+{
+ save_item(NAME(m_fatfury2_prot_data));
+}
+
+void fatfury2_prot_device::device_reset() { }
+
+
+
+/************************ Fatal Fury 2 *************************/
+
+READ16_MEMBER( fatfury2_prot_device::fatfury2_protection_16_r )
+{
+ uint16_t res = m_fatfury2_prot_data >> 24;
+
+ switch (offset)
+ {
+ case 0x55550/2:
+ case 0xffff0/2:
+ case 0x00000/2:
+ case 0xff000/2:
+ case 0x36000/2:
+ case 0x36008/2:
+ return res;
+
+ case 0x36004/2:
+ case 0x3600c/2:
+ return ((res & 0xf0) >> 4) | ((res & 0x0f) << 4);
+
+ default:
+ logerror("unknown protection read at pc %06x, offset %08x\n", space.device().safe_pc(), offset << 1);
+ return 0;
+ }
+}
+
+
+WRITE16_MEMBER( fatfury2_prot_device::fatfury2_protection_16_w )
+{
+ switch (offset)
+ {
+ case 0x11112/2: /* data == 0x1111; expects 0xff000000 back */
+ m_fatfury2_prot_data = 0xff000000;
+ break;
+
+ case 0x33332/2: /* data == 0x3333; expects 0x0000ffff back */
+ m_fatfury2_prot_data = 0x0000ffff;
+ break;
+
+ case 0x44442/2: /* data == 0x4444; expects 0x00ff0000 back */
+ m_fatfury2_prot_data = 0x00ff0000;
+ break;
+
+ case 0x55552/2: /* data == 0x5555; read back from 55550, ffff0, 00000, ff000 */
+ m_fatfury2_prot_data = 0xff00ff00;
+ break;
+
+ case 0x56782/2: /* data == 0x1234; read back from 36000 *or* 36004 */
+ m_fatfury2_prot_data = 0xf05a3601;
+ break;
+
+ case 0x42812/2: /* data == 0x1824; read back from 36008 *or* 3600c */
+ m_fatfury2_prot_data = 0x81422418;
+ break;
+
+ case 0x55550/2:
+ case 0xffff0/2:
+ case 0xff000/2:
+ case 0x36000/2:
+ case 0x36004/2:
+ case 0x36008/2:
+ case 0x3600c/2:
+ m_fatfury2_prot_data <<= 8;
+ break;
+
+ default:
+ logerror("unknown protection write at pc %06x, offset %08x, data %02x\n", space.device().safe_pc(), offset, data);
+ break;
+ }
+}
+
+
+void fatfury2_prot_device::fatfury2_install_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev)
+{
+ /* the protection involves reading and writing addresses in the */
+ /* 0x2xxxxx range. There are several checks all around the code. */
+ maincpu->space(AS_PROGRAM).install_readwrite_handler(0x200000, 0x2fffff,
+ read16_delegate(FUNC(fatfury2_prot_device::fatfury2_protection_16_r),this),
+ write16_delegate(FUNC(fatfury2_prot_device::fatfury2_protection_16_w),this));
+
+ m_bankdev = bankdev;
+ m_fatfury2_prot_data = 0;
+
+}
+
+/***********************************************************************************************************************************/
+
+
+DEFINE_DEVICE_TYPE(KOF2002_PROT, kof2002_prot_device, "kof2002_prot", "NeoGeo Protection (KOF2002)")
+
+
+kof2002_prot_device::kof2002_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : device_t(mconfig, KOF2002_PROT, tag, owner, clock)
+ { }
+
+
+void kof2002_prot_device::device_start() { }
+
+void kof2002_prot_device::device_reset() { }
+
+
+/* kof2002, matrim, samsho5, samsh5sp have some simple block swapping */
+void kof2002_prot_device::kof2002_decrypt_68k(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ static const int sec[]={0x100000,0x280000,0x300000,0x180000,0x000000,0x380000,0x200000,0x080000};
+ uint8_t *src = cpurom+0x100000;
+ std::vector<uint8_t> dst(0x400000);
+ memcpy( &dst[0], src, 0x400000 );
+ for( uint8_t i=0; i<8; ++i )
+ memcpy( src+i*0x80000, &dst[sec[i]], 0x80000 );
+}
+
+
+void kof2002_prot_device::matrim_decrypt_68k(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ static const int sec[]={0x100000,0x280000,0x300000,0x180000,0x000000,0x380000,0x200000,0x080000};
+ uint8_t *src = cpurom+0x100000;
+ std::vector<uint8_t> dst(0x400000);
+ memcpy( &dst[0], src, 0x400000);
+ for( uint8_t i=0; i<8; ++i )
+ memcpy( src+i*0x80000, &dst[sec[i]], 0x80000 );
+}
+
+
+void kof2002_prot_device::samsho5_decrypt_68k(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ static const int sec[]={0x000000,0x080000,0x700000,0x680000,0x500000,0x180000,0x200000,0x480000,0x300000,0x780000,0x600000,0x280000,0x100000,0x580000,0x400000,0x380000};
+ uint8_t *src = cpurom;
+ std::vector<uint8_t> dst(0x800000);
+ memcpy( &dst[0], src, 0x800000 );
+ for( uint8_t i=0; i<16; ++i )
+ memcpy( src+i*0x80000, &dst[sec[i]], 0x80000 );
+}
+
+
+void kof2002_prot_device::samsh5sp_decrypt_68k(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ static const int sec[]={0x000000,0x080000,0x500000,0x480000,0x600000,0x580000,0x700000,0x280000,0x100000,0x680000,0x400000,0x780000,0x200000,0x380000,0x300000,0x180000};
+ uint8_t *src = cpurom;
+ std::vector<uint8_t> dst(0x800000);
+ memcpy( &dst[0], src, 0x800000 );
+ for( uint8_t i=0; i<16; ++i )
+ memcpy( src+i*0x80000, &dst[sec[i]], 0x80000 );
+}
+
+/***********************************************************************************************************************************/
+
+DEFINE_DEVICE_TYPE(KOF98_PROT, kof98_prot_device, "kof98_prot", "NeoGeo Protection (KOF98)")
+
+
+kof98_prot_device::kof98_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : device_t(mconfig, KOF98_PROT, tag, owner, clock)
+ , kof98_prot_state(0)
+ { }
+
+
+void kof98_prot_device::device_start() { }
+
+void kof98_prot_device::device_reset()
+{
+ kof98_prot_state = 0;
+}
+
+
+/* Kof98 uses an early encryption, quite different from the others */
+void kof98_prot_device::kof98_decrypt_68k(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ uint8_t *src = cpurom;
+ std::vector<uint8_t> dst(0x200000);
+ int i, j, k;
+ static const uint32_t sec[]={0x000000,0x100000,0x000004,0x100004,0x10000a,0x00000a,0x10000e,0x00000e};
+ static const uint32_t pos[]={0x000,0x004,0x00a,0x00e};
+
+ memcpy( &dst[0], src, 0x200000);
+ for( i=0x800; i<0x100000; i+=0x200 )
+ {
+ for( j=0; j<0x100; j+=0x10 )
+ {
+ for( k=0; k<16; k+=2)
+ {
+ memcpy( &src[i+j+k], &dst[ i+j+sec[k/2]+0x100 ], 2 );
+ memcpy( &src[i+j+k+0x100], &dst[ i+j+sec[k/2] ], 2 );
+ }
+ if( i >= 0x080000 && i < 0x0c0000)
+ {
+ for( k=0; k<4; k++ )
+ {
+ memcpy( &src[i+j+pos[k]], &dst[i+j+pos[k]], 2 );
+ memcpy( &src[i+j+pos[k]+0x100], &dst[i+j+pos[k]+0x100], 2 );
+ }
+ }
+ else if( i >= 0x0c0000 )
+ {
+ for( k=0; k<4; k++ )
+ {
+ memcpy( &src[i+j+pos[k]], &dst[i+j+pos[k]+0x100], 2 );
+ memcpy( &src[i+j+pos[k]+0x100], &dst[i+j+pos[k]], 2 );
+ }
+ }
+ }
+ memcpy( &src[i+0x000000], &dst[i+0x000000], 2 );
+ memcpy( &src[i+0x000002], &dst[i+0x100000], 2 );
+ memcpy( &src[i+0x000100], &dst[i+0x000100], 2 );
+ memcpy( &src[i+0x000102], &dst[i+0x100100], 2 );
+ }
+ memmove( &src[0x100000], &src[0x200000], 0x400000 );
+
+ uint16_t* mem16 = (uint16_t*)cpurom;
+ m_default_rom[0] = mem16[0x100 / 2];
+ m_default_rom[1] = mem16[0x102 / 2];
+}
+
+
+/************************ King of Fighters 98*******************
+ The encrypted set has a rom overlay feature, checked at
+ various points in the game.
+ Boards used: NEO-MVS PROGSF1 (1998.6.17) / NEO-MVS PROGSF1E (1998.6.18)
+ The boards have an ALTERA chip (EPM7128SQC100-15) which is tied to 242-P1
+***************************************************************/
+
+READ16_MEMBER(kof98_prot_device::kof98_prot_r)
+{
+ if (kof98_prot_state == 1)
+ {
+ if (!offset)
+ return 0x00c2;
+ else
+ return 0x00fd;
+ }
+
+ if (kof98_prot_state == 2)
+ {
+ if (!offset)
+ return 0x4e45;
+ else
+ return 0x4f2d;
+ }
+
+ if (!offset)
+ return m_default_rom[0];
+
+ return m_default_rom[1];
+}
+
+WRITE16_MEMBER( kof98_prot_device::kof98_prot_w )
+{
+ /* info from razoola */
+ switch (data)
+ {
+ case 0x0090:
+ logerror ("%06x kof98 - protection 0x0090x\n", space.device().safe_pc());
+ kof98_prot_state = 1;
+ break;
+
+ case 0x00f0:
+ logerror ("%06x kof98 - protection 0x00f0x\n", space.device().safe_pc());
+ kof98_prot_state = 2;
+ break;
+
+ default: // 00aa is written, but not needed?
+ logerror ("%06x kof98 - unknown protection write %04x\n", space.device().safe_pc(), data);
+ break;
+ }
+}
+
+
+void kof98_prot_device::install_kof98_protection(cpu_device* maincpu)
+{
+ /* when 0x20aaaa contains 0x0090 (word) then 0x100 (normally the neogeo header) should return 0x00c200fd worked out using real hw */
+ maincpu->space(AS_PROGRAM).install_read_handler(0x00100, 0x00103, read16_delegate(FUNC(kof98_prot_device::kof98_prot_r),this));
+ maincpu->space(AS_PROGRAM).install_write_handler(0x20aaaa, 0x20aaab, write16_delegate(FUNC(kof98_prot_device::kof98_prot_w),this));
+}
+
+/***********************************************************************************************************************************/
+
+
+DEFINE_DEVICE_TYPE(MSLUGX_PROT, mslugx_prot_device, "mslugx_prot", "NeoGeo Protection (Metal Slug X)")
+
+
+mslugx_prot_device::mslugx_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : device_t(mconfig, MSLUGX_PROT, tag, owner, clock)
+ , m_mslugx_counter(0)
+ , m_mslugx_command(0)
+ { }
+
+
+void mslugx_prot_device::device_start()
+{
+ save_item(NAME(m_mslugx_command));
+ save_item(NAME(m_mslugx_counter));
+}
+
+void mslugx_prot_device::device_reset() { }
+
+
+
+
+/************************ Metal Slug X *************************
+ Board used: NEO-MVS PROGEOP (1999.2.2)
+ The board has an ALTERA chip (EPM7128SQC100-15) which is tied to 250-P1
+ Also found is a QFP144 chip labeled with 0103 - function unknown
+***************************************************************/
+
+WRITE16_MEMBER( mslugx_prot_device::mslugx_protection_16_w )
+{
+ switch (offset)
+ {
+ case 0x0/2: // start new read?
+ m_mslugx_command = 0;
+ break;
+
+ case 0x2/2: // command? These are pulsed with data and then 0
+ case 0x4/2:
+ m_mslugx_command |= data;
+ break;
+
+ case 0x6/2: // finished?
+ break;
+
+ case 0xa/2: // init?
+ m_mslugx_counter = 0;
+ m_mslugx_command = 0;
+ break;
+
+ default:
+ logerror("unknown protection write at pc %06x, offset %08x, data %02x\n", space.device().safe_pc(), offset << 1, data);
+ break;
+ }
+}
+
+
+READ16_MEMBER( mslugx_prot_device::mslugx_protection_16_r )
+{
+ uint16_t res = 0;
+
+ switch (m_mslugx_command)
+ {
+ case 0x0001: { // $3bdc(?) and $3c30 (Register D7)
+ res = (space.read_byte(0xdedd2 + ((m_mslugx_counter >> 3) & 0xfff)) >> (~m_mslugx_counter & 0x07)) & 1;
+ m_mslugx_counter++;
+ }
+ break;
+
+ case 0x0fff: { // All other accesses (Register D2)
+ int32_t select = space.read_word(0x10f00a) - 1; // How should this be calculated?
+ res = (space.read_byte(0xdedd2 + ((select >> 3) & 0x0fff)) >> (~select & 0x07)) & 1;
+ }
+ break;
+
+ default:
+ logerror("unknown protection read at pc %06x, offset %08x\n", space.device().safe_pc(), offset << 1);
+ break;
+ }
+
+ return res;
+}
+
+
+void mslugx_prot_device::mslugx_install_protection(cpu_device* maincpu)
+{
+ maincpu->space(AS_PROGRAM).install_readwrite_handler(0x2fffe0, 0x2fffef,
+ read16_delegate(FUNC(mslugx_prot_device::mslugx_protection_16_r),this),
+ write16_delegate(FUNC(mslugx_prot_device::mslugx_protection_16_w),this));
+}
+
+/***********************************************************************************************************************************/
+
+
+DEFINE_DEVICE_TYPE(PCM2_PROT, pcm2_prot_device, "pcm2_prot", "NeoGeo Protection (NEOPCM2)")
+
+
+pcm2_prot_device::pcm2_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : device_t(mconfig, PCM2_PROT, tag, owner, clock)
+ { }
+
+
+void pcm2_prot_device::device_start() { }
+
+void pcm2_prot_device::device_reset() { }
+
+/***************************************************************************
+
+NeoGeo 'V' (PCM) ROM encryption
+ NEOPCM2 chip
+
+***************************************************************************/
+
+/* Neo-Pcm2 Drivers for Encrypted V Roms */
+void pcm2_prot_device::neo_pcm2_snk_1999(uint8_t* ymrom, uint32_t ymsize, int value)
+{ /* thanks to Elsemi for the NEO-PCM2 info */
+ uint16_t *rom = (uint16_t *)ymrom;
+ int size = ymsize;
+ int i, j;
+
+ if (rom)
+ { /* swap address lines on the whole ROMs */
+ std::vector<uint16_t> buffer(value / 2);
+
+ for( i = 0; i < size / 2; i += ( value / 2 ) )
+ {
+ memcpy( &buffer[0], &rom[ i ], value );
+ for( j = 0; j < (value / 2); j++ )
+ rom[ i + j ] = buffer[ j ^ (value/4) ];
+ }
+ }
+}
+
+
+/* the later PCM2 games have additional scrambling */
+void pcm2_prot_device::neo_pcm2_swap(uint8_t* ymrom, uint32_t ymsize, int value)
+{
+ static const uint32_t addrs[7][2]={
+ {0x000000,0xa5000},
+ {0xffce20,0x01000},
+ {0xfe2cf6,0x4e001},
+ {0xffac28,0xc2000},
+ {0xfeb2c0,0x0a000},
+ {0xff14ea,0xa7001},
+ {0xffb440,0x02000}};
+ static const uint8_t xordata[7][8]={
+ {0xf9,0xe0,0x5d,0xf3,0xea,0x92,0xbe,0xef},
+ {0xc4,0x83,0xa8,0x5f,0x21,0x27,0x64,0xaf},
+ {0xc3,0xfd,0x81,0xac,0x6d,0xe7,0xbf,0x9e},
+ {0xc3,0xfd,0x81,0xac,0x6d,0xe7,0xbf,0x9e},
+ {0xcb,0x29,0x7d,0x43,0xd2,0x3a,0xc2,0xb4},
+ {0x4b,0xa4,0x63,0x46,0xf0,0x91,0xea,0x62},
+ {0x4b,0xa4,0x63,0x46,0xf0,0x91,0xea,0x62}};
+
+ std::vector<uint8_t> buf(0x1000000);
+ int i, j, d;
+ uint8_t* src = ymrom;
+ memcpy(&buf[0], src, 0x1000000);
+ for (i=0; i<0x1000000; i++)
+ {
+ j = bitswap<24>(i,23,22,21,20,19,18,17,0,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,16);
+ j ^= addrs[value][1];
+ d=((i + addrs[value][0]) & 0xffffff);
+ src[j] = buf[d] ^ xordata[value][j & 0x7];
+ }
+}
+
+/***********************************************************************************************************************************/
+
+
+DEFINE_DEVICE_TYPE(PVC_PROT, pvc_prot_device, "pvc_prot", "NeoGeo Protection (PVC)")
+
+
+pvc_prot_device::pvc_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : device_t(mconfig, PVC_PROT, tag, owner, clock)
+ , m_bankdev(nullptr)
+ { }
+
+
+void pvc_prot_device::device_start()
+{
+ save_item(NAME(m_cartridge_ram));
+}
+
+void pvc_prot_device::device_reset() { }
+
+
+
+
+/************************ PVC Protection ***********************
+ mslug5, svcchaos, kof2003
+***************************************************************/
+
+void pvc_prot_device::pvc_write_unpack_color()
+{
+ uint16_t pen = m_cartridge_ram[0xff0];
+
+ uint8_t b = ((pen & 0x000f) << 1) | ((pen & 0x1000) >> 12);
+ uint8_t g = ((pen & 0x00f0) >> 3) | ((pen & 0x2000) >> 13);
+ uint8_t r = ((pen & 0x0f00) >> 7) | ((pen & 0x4000) >> 14);
+ uint8_t s = (pen & 0x8000) >> 15;
+
+ m_cartridge_ram[0xff1] = (g << 8) | b;
+ m_cartridge_ram[0xff2] = (s << 8) | r;
+}
+
+
+void pvc_prot_device::pvc_write_pack_color()
+{
+ uint16_t gb = m_cartridge_ram[0xff4];
+ uint16_t sr = m_cartridge_ram[0xff5];
+
+ m_cartridge_ram[0xff6] = ((gb & 0x001e) >> 1) | ((gb & 0x1e00) >> 5) | ((sr & 0x001e) << 7) |
+ ((gb & 0x0001) << 12) | ((gb & 0x0100) << 5) | ((sr & 0x0001) << 14) | ((sr & 0x0100) << 7);
+}
+
+
+void pvc_prot_device::pvc_write_bankswitch( address_space &space )
+{
+ uint32_t bankaddress = ((m_cartridge_ram[0xff8] >> 8)|(m_cartridge_ram[0xff9] << 8));
+ m_cartridge_ram[0xff8] = (m_cartridge_ram[0xff8] & 0xfe00) | 0x00a0;
+ m_cartridge_ram[0xff9] &= 0x7fff;
+ m_bankdev->neogeo_set_main_cpu_bank_address(bankaddress + 0x100000);
+}
+
+
+READ16_MEMBER( pvc_prot_device::pvc_prot_r )
+{
+ return m_cartridge_ram[offset];
+}
+
+
+WRITE16_MEMBER( pvc_prot_device::pvc_prot_w )
+{
+ COMBINE_DATA(&m_cartridge_ram[offset] );
+ if (offset == 0xff0)
+ pvc_write_unpack_color();
+ else
+ if(offset >= 0xff4 && offset <= 0xff5)
+ pvc_write_pack_color();
+ else
+ if(offset >= 0xff8)
+ pvc_write_bankswitch(space);
+}
+
+
+void pvc_prot_device::install_pvc_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev)
+{
+ m_bankdev = bankdev;
+ maincpu->space(AS_PROGRAM).install_readwrite_handler(0x2fe000, 0x2fffff,
+ read16_delegate(FUNC(pvc_prot_device::pvc_prot_r),this),
+ write16_delegate(FUNC(pvc_prot_device::pvc_prot_w),this));
+}
+
+
+
+
+/* kf2k3pcb, kof2003, kof2003h, mslug5 and svc have updated P rom scramble */
+void pvc_prot_device::mslug5_decrypt_68k(uint8_t* rom, uint32_t size)
+{
+ static const uint8_t xor1[ 0x20 ] = { 0xc2, 0x4b, 0x74, 0xfd, 0x0b, 0x34, 0xeb, 0xd7, 0x10, 0x6d, 0xf9, 0xce, 0x5d, 0xd5, 0x61, 0x29, 0xf5, 0xbe, 0x0d, 0x82, 0x72, 0x45, 0x0f, 0x24, 0xb3, 0x34, 0x1b, 0x99, 0xea, 0x09, 0xf3, 0x03 };
+ static const uint8_t xor2[ 0x20 ] = { 0x36, 0x09, 0xb0, 0x64, 0x95, 0x0f, 0x90, 0x42, 0x6e, 0x0f, 0x30, 0xf6, 0xe5, 0x08, 0x30, 0x64, 0x08, 0x04, 0x00, 0x2f, 0x72, 0x09, 0xa0, 0x13, 0xc9, 0x0b, 0xa0, 0x3e, 0xc2, 0x00, 0x40, 0x2b };
+ int i, ofst, rom_size = 0x800000;
+ std::vector<uint8_t> buf( rom_size );
+
+ for( i = 0; i < 0x100000; i++ )
+ rom[ i ] ^= xor1[ (BYTE_XOR_LE(i) % 0x20) ];
+
+ for( i = 0x100000; i < 0x800000; i++ )
+ rom[ i ] ^= xor2[ (BYTE_XOR_LE(i) % 0x20) ];
+
+ for( i = 0x100000; i < 0x0800000; i += 4 )
+ {
+ uint16_t rom16;
+ rom16 = rom[BYTE_XOR_LE(i+1)] | rom[BYTE_XOR_LE(i+2)]<<8;
+ rom16 = bitswap<16>( rom16, 15, 14, 13, 12, 10, 11, 8, 9, 6, 7, 4, 5, 3, 2, 1, 0 );
+ rom[BYTE_XOR_LE(i+1)] = rom16&0xff;
+ rom[BYTE_XOR_LE(i+2)] = rom16>>8;
+ }
+
+ memcpy( &buf[0], rom, rom_size );
+
+ for( i = 0; i < 0x0100000 / 0x10000; i++ )
+ {
+ ofst = (i & 0xf0) + bitswap<8>( (i & 0x0f), 7, 6, 5, 4, 1, 0, 3, 2 );
+ memcpy( &rom[ i * 0x10000 ], &buf[ ofst * 0x10000 ], 0x10000 );
+ }
+
+ for( i = 0x100000; i < 0x800000; i += 0x100 )
+ {
+ ofst = (i & 0xf000ff) + ((i & 0x000f00) ^ 0x00700) + (bitswap<8>( ((i & 0x0ff000) >> 12), 5, 4, 7, 6, 1, 0, 3, 2 ) << 12);
+ memcpy( &rom[ i ], &buf[ ofst ], 0x100 );
+ }
+
+ memcpy( &buf[0], rom, rom_size );
+ memcpy( &rom[ 0x100000 ], &buf[ 0x700000 ], 0x100000 );
+ memcpy( &rom[ 0x200000 ], &buf[ 0x100000 ], 0x600000 );
+}
+
+
+void pvc_prot_device::svc_px_decrypt(uint8_t* rom, uint32_t size)
+{
+ static const uint8_t xor1[ 0x20 ] = { 0x3b, 0x6a, 0xf7, 0xb7, 0xe8, 0xa9, 0x20, 0x99, 0x9f, 0x39, 0x34, 0x0c, 0xc3, 0x9a, 0xa5, 0xc8,
+ 0xb8, 0x18, 0xce, 0x56, 0x94, 0x44, 0xe3, 0x7a, 0xf7, 0xdd, 0x42, 0xf0, 0x18, 0x60, 0x92, 0x9f };
+ static const uint8_t xor2[ 0x20 ] = { 0x69, 0x0b, 0x60, 0xd6, 0x4f, 0x01, 0x40, 0x1a, 0x9f, 0x0b, 0xf0, 0x75, 0x58, 0x0e, 0x60, 0xb4,
+ 0x14, 0x04, 0x20, 0xe4, 0xb9, 0x0d, 0x10, 0x89, 0xeb, 0x07, 0x30, 0x90, 0x50, 0x0e, 0x20, 0x26 };
+ int i, ofst, rom_size = 0x800000;
+ std::vector<uint8_t> buf( rom_size );
+
+ for( i = 0; i < 0x100000; i++ )
+ rom[ i ] ^= xor1[ (BYTE_XOR_LE(i) % 0x20) ];
+
+ for( i = 0x100000; i < 0x800000; i++ )
+ rom[ i ] ^= xor2[ (BYTE_XOR_LE(i) % 0x20) ];
+
+ for( i = 0x100000; i < 0x0800000; i += 4 )
+ {
+ uint16_t rom16;
+ rom16 = rom[BYTE_XOR_LE(i+1)] | rom[BYTE_XOR_LE(i+2)]<<8;
+ rom16 = bitswap<16>( rom16, 15, 14, 13, 12, 10, 11, 8, 9, 6, 7, 4, 5, 3, 2, 1, 0 );
+ rom[BYTE_XOR_LE(i+1)] = rom16&0xff;
+ rom[BYTE_XOR_LE(i+2)] = rom16>>8;
+ }
+
+ memcpy( &buf[0], rom, rom_size );
+
+ for( i = 0; i < 0x0100000 / 0x10000; i++ )
+ {
+ ofst = (i & 0xf0) + bitswap<8>( (i & 0x0f), 7, 6, 5, 4, 2, 3, 0, 1 );
+ memcpy( &rom[ i * 0x10000 ], &buf[ ofst * 0x10000 ], 0x10000 );
+ }
+
+ for( i = 0x100000; i < 0x800000; i += 0x100 )
+ {
+ ofst = (i & 0xf000ff) + ((i & 0x000f00) ^ 0x00a00) + (bitswap<8>( ((i & 0x0ff000) >> 12), 4, 5, 6, 7, 1, 0, 3, 2 ) << 12);
+ memcpy( &rom[ i ], &buf[ ofst ], 0x100 );
+ }
+
+ memcpy( &buf[0], rom, rom_size );
+ memcpy( &rom[ 0x100000 ], &buf[ 0x700000 ], 0x100000 );
+ memcpy( &rom[ 0x200000 ], &buf[ 0x100000 ], 0x600000 );
+}
+
+
+void pvc_prot_device::kf2k3pcb_decrypt_68k(uint8_t* rom, uint32_t size)
+{
+ static const uint8_t xor2[ 0x20 ] = { 0xb4, 0x0f, 0x40, 0x6c, 0x38, 0x07, 0xd0, 0x3f, 0x53, 0x08, 0x80, 0xaa, 0xbe, 0x07, 0xc0, 0xfa,
+ 0xd0, 0x08, 0x10, 0xd2, 0xf1, 0x03, 0x70, 0x7e, 0x87, 0x0b, 0x40, 0xf6, 0x2a, 0x0a, 0xe0, 0xf9 };
+ int i, ofst, rom_size = 0x900000;
+ std::vector<uint8_t> buf( rom_size );
+
+ for (i = 0; i < 0x100000; i++)
+ rom[ 0x800000 + i ] ^= rom[ 0x100002 | i ];
+
+ for( i = 0x100000; i < 0x800000; i++ )
+ rom[ i ] ^= xor2[ (BYTE_XOR_LE(i) % 0x20) ];
+
+ for( i = 0x100000; i < 0x800000; i += 4 )
+ {
+ uint16_t rom16;
+ rom16 = rom[BYTE_XOR_LE(i+1)] | rom[BYTE_XOR_LE(i+2)]<<8;
+ rom16 = bitswap<16>( rom16, 15, 14, 13, 12, 4, 5, 6, 7, 8, 9, 10, 11, 3, 2, 1, 0 );
+ rom[BYTE_XOR_LE(i+1)] = rom16&0xff;
+ rom[BYTE_XOR_LE(i+2)] = rom16>>8;
+ }
+
+ for( i = 0; i < 0x0100000 / 0x10000; i++ )
+ {
+ ofst = (i & 0xf0) + bitswap<8>( (i & 0x0f), 7, 6, 5, 4, 1, 0, 3, 2 );
+ memcpy( &buf[ i * 0x10000 ], &rom[ ofst * 0x10000 ], 0x10000 );
+ }
+
+ for( i = 0x100000; i < 0x900000; i += 0x100 )
+ {
+ ofst = (i & 0xf000ff) + ((i & 0x000f00) ^ 0x00300) + (bitswap<8>( ((i & 0x0ff000) >> 12), 4, 5, 6, 7, 1, 0, 3, 2 ) << 12);
+ memcpy( &buf[ i ], &rom[ ofst ], 0x100 );
+ }
+
+ memcpy (&rom[0x000000], &buf[0x000000], 0x100000);
+ memcpy (&rom[0x100000], &buf[0x800000], 0x100000);
+ memcpy (&rom[0x200000], &buf[0x100000], 0x700000);
+}
+
+
+void pvc_prot_device::kof2003_decrypt_68k(uint8_t* rom, uint32_t size)
+{
+ static const uint8_t xor1[0x20] = { 0x3b, 0x6a, 0xf7, 0xb7, 0xe8, 0xa9, 0x20, 0x99, 0x9f, 0x39, 0x34, 0x0c, 0xc3, 0x9a, 0xa5, 0xc8,
+ 0xb8, 0x18, 0xce, 0x56, 0x94, 0x44, 0xe3, 0x7a, 0xf7, 0xdd, 0x42, 0xf0, 0x18, 0x60, 0x92, 0x9f };
+ static const uint8_t xor2[0x20] = { 0x2f, 0x02, 0x60, 0xbb, 0x77, 0x01, 0x30, 0x08, 0xd8, 0x01, 0xa0, 0xdf, 0x37, 0x0a, 0xf0, 0x65,
+ 0x28, 0x03, 0xd0, 0x23, 0xd3, 0x03, 0x70, 0x42, 0xbb, 0x06, 0xf0, 0x28, 0xba, 0x0f, 0xf0, 0x7a };
+ int i, ofst, rom_size = 0x900000;
+ std::vector<uint8_t> buf( rom_size );
+
+ for (i = 0; i < 0x100000; i++)
+ rom[ 0x800000 + i ] ^= rom[ 0x100002 | i ];
+
+ for( i = 0; i < 0x100000; i++)
+ rom[ i ] ^= xor1[ (BYTE_XOR_LE(i) % 0x20) ];
+
+ for( i = 0x100000; i < 0x800000; i++)
+ rom[ i ] ^= xor2[ (BYTE_XOR_LE(i) % 0x20) ];
+
+ for( i = 0x100000; i < 0x800000; i += 4)
+ {
+ uint16_t rom16;
+ rom16 = rom[BYTE_XOR_LE(i+1)] | rom[BYTE_XOR_LE(i+2)]<<8;
+ rom16 = bitswap<16>( rom16, 15, 14, 13, 12, 5, 4, 7, 6, 9, 8, 11, 10, 3, 2, 1, 0 );
+ rom[BYTE_XOR_LE(i+1)] = rom16&0xff;
+ rom[BYTE_XOR_LE(i+2)] = rom16>>8;
+ }
+
+ for( i = 0; i < 0x0100000 / 0x10000; i++ )
+ {
+ ofst = (i & 0xf0) + bitswap<8>((i & 0x0f), 7, 6, 5, 4, 0, 1, 2, 3);
+ memcpy( &buf[ i * 0x10000 ], &rom[ ofst * 0x10000 ], 0x10000 );
+ }
+
+ for( i = 0x100000; i < 0x900000; i += 0x100)
+ {
+ ofst = (i & 0xf000ff) + ((i & 0x000f00) ^ 0x00800) + (bitswap<8>( ((i & 0x0ff000) >> 12), 4, 5, 6, 7, 1, 0, 3, 2 ) << 12);
+ memcpy( &buf[ i ], &rom[ ofst ], 0x100 );
+ }
+
+ memcpy (&rom[0x000000], &buf[0x000000], 0x100000);
+ memcpy (&rom[0x100000], &buf[0x800000], 0x100000);
+ memcpy (&rom[0x200000], &buf[0x100000], 0x700000);
+}
+
+
+void pvc_prot_device::kof2003h_decrypt_68k(uint8_t* rom, uint32_t size)
+{
+ static const uint8_t xor1[0x20] = { 0xc2, 0x4b, 0x74, 0xfd, 0x0b, 0x34, 0xeb, 0xd7, 0x10, 0x6d, 0xf9, 0xce, 0x5d, 0xd5, 0x61, 0x29,
+ 0xf5, 0xbe, 0x0d, 0x82, 0x72, 0x45, 0x0f, 0x24, 0xb3, 0x34, 0x1b, 0x99, 0xea, 0x09, 0xf3, 0x03 };
+ static const uint8_t xor2[0x20] = { 0x2b, 0x09, 0xd0, 0x7f, 0x51, 0x0b, 0x10, 0x4c, 0x5b, 0x07, 0x70, 0x9d, 0x3e, 0x0b, 0xb0, 0xb6,
+ 0x54, 0x09, 0xe0, 0xcc, 0x3d, 0x0d, 0x80, 0x99, 0x87, 0x03, 0x90, 0x82, 0xfe, 0x04, 0x20, 0x18 };
+ int i, ofst, rom_size = 0x900000;
+ std::vector<uint8_t> buf( rom_size );
+
+ for (i = 0; i < 0x100000; i++)
+ rom[ 0x800000 + i ] ^= rom[ 0x100002 | i ];
+
+ for( i = 0; i < 0x100000; i++)
+ rom[ i ] ^= xor1[ (BYTE_XOR_LE(i) % 0x20) ];
+
+ for( i = 0x100000; i < 0x800000; i++)
+ rom[ i ] ^= xor2[ (BYTE_XOR_LE(i) % 0x20) ];
+
+ for( i = 0x100000; i < 0x800000; i += 4)
+ {
+ uint16_t rom16;
+ rom16 = rom[BYTE_XOR_LE(i+1)] | rom[BYTE_XOR_LE(i+2)]<<8;
+ rom16 = bitswap<16>( rom16, 15, 14, 13, 12, 10, 11, 8, 9, 6, 7, 4, 5, 3, 2, 1, 0 );
+ rom[BYTE_XOR_LE(i+1)] = rom16&0xff;
+ rom[BYTE_XOR_LE(i+2)] = rom16>>8;
+ }
+
+ for( i = 0; i < 0x0100000 / 0x10000; i++ )
+ {
+ ofst = (i & 0xf0) + bitswap<8>((i & 0x0f), 7, 6, 5, 4, 1, 0, 3, 2);
+ memcpy( &buf[ i * 0x10000 ], &rom[ ofst * 0x10000 ], 0x10000 );
+ }
+
+ for( i = 0x100000; i < 0x900000; i += 0x100)
+ {
+ ofst = (i & 0xf000ff) + ((i & 0x000f00) ^ 0x00400) + (bitswap<8>( ((i & 0x0ff000) >> 12), 6, 7, 4, 5, 0, 1, 2, 3 ) << 12);
+ memcpy( &buf[ i ], &rom[ ofst ], 0x100 );
+ }
+
+ memcpy (&rom[0x000000], &buf[0x000000], 0x100000);
+ memcpy (&rom[0x100000], &buf[0x800000], 0x100000);
+ memcpy (&rom[0x200000], &buf[0x100000], 0x700000);
+}
+
+/***********************************************************************************************************************************/
+
+
+DEFINE_DEVICE_TYPE(SBP_PROT, sbp_prot_device, "sbp_prot", "NeoGeo Protection (Super Bubble Pop)")
+
+
+sbp_prot_device::sbp_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : device_t(mconfig, SBP_PROT, tag, owner, clock)
+ , m_mainrom(nullptr)
+ { }
+
+void sbp_prot_device::device_start() { }
+void sbp_prot_device::device_reset() { }
+
+READ16_MEMBER( sbp_prot_device::sbp_lowerrom_r )
+{
+ uint16_t* rom = (uint16_t*)m_mainrom;
+ uint16_t origdata = rom[(offset+(0x200/2))];
+ uint16_t data = bitswap<16>(origdata, 11,10,9,8,15,14,13,12,3,2,1,0,7,6,5,4);
+ int realoffset = 0x200+(offset*2);
+ logerror("sbp_lowerrom_r offset %08x data %04x\n", realoffset, data );
+
+ // there is actually data in the rom here already, maybe we should just return it 'as is'
+ if (realoffset==0xd5e) return origdata;
+
+ return data;
+}
+
+WRITE16_MEMBER( sbp_prot_device::sbp_lowerrom_w )
+{
+ int realoffset = 0x200+(offset*2);
+
+ // the actual data written is just pulled from the end of the rom, and unused space
+ // maybe this is just some kind of watchdog for the protection device and it doesn't
+ // matter?
+ if (realoffset == 0x1080)
+ {
+ if (data==0x4e75)
+ return;
+ else
+ if (data==0xffff)
+ return;
+ }
+
+ printf("sbp_lowerrom_w offset %08x data %04x\n", realoffset, data );
+}
+
+
+void sbp_prot_device::sbp_install_protection(cpu_device* maincpu, uint8_t* cpurom, uint32_t cpurom_size)
+{
+ m_mainrom = cpurom;
+
+ // there seems to be a protection device living around here..
+ // if you nibble swap the data in the rom the game will boot
+ // there are also writes to 0x1080..
+ //
+ // other stuff going on as well tho, the main overlay is still missing, and p1 inputs don't work
+ maincpu->space(AS_PROGRAM).install_read_handler(0x00200, 0x001fff, read16_delegate(FUNC(sbp_prot_device::sbp_lowerrom_r), this));
+ maincpu->space(AS_PROGRAM).install_write_handler(0x00200, 0x001fff, write16_delegate(FUNC(sbp_prot_device::sbp_lowerrom_w), this));
+
+ /* the game code clears the text overlay used ingame immediately after writing it.. why? protection? sloppy code that the hw ignores? imperfect emulation? */
+ {
+ uint16_t* rom = (uint16_t*)cpurom;
+
+ rom[0x2a6f8 / 2] = 0x4e71;
+ rom[0x2a6fa / 2] = 0x4e71;
+ rom[0x2a6fc / 2] = 0x4e71;
+ }
+}
+
+/***********************************************************************************************************************************/
+
+
+DEFINE_DEVICE_TYPE(SMA_PROT, sma_prot_device, "sma_prot", "NeoGeo SMA Cartridge")
+
+
+sma_prot_device::sma_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : device_t(mconfig, SMA_PROT, tag, owner, clock)
+ , m_bankdev(nullptr)
+ , m_sma_rng(0)
+ { }
+
+
+void sma_prot_device::device_start()
+{
+ save_item(NAME(m_sma_rng));
+}
+
+void sma_prot_device::device_reset()
+{
+ reset_sma_rng();
+}
+
+
+/************************ SMA Protection************************
+ thanks to Razoola
+***************************************************************/
+
+WRITE16_MEMBER( sma_prot_device::kof99_bankswitch_w )
+{
+ static const int bankoffset[64] =
+ {
+ 0x000000, 0x100000, 0x200000, 0x300000,
+ 0x3cc000, 0x4cc000, 0x3f2000, 0x4f2000,
+ 0x407800, 0x507800, 0x40d000, 0x50d000,
+ 0x417800, 0x517800, 0x420800, 0x520800,
+ 0x424800, 0x524800, 0x429000, 0x529000,
+ 0x42e800, 0x52e800, 0x431800, 0x531800,
+ 0x54d000, 0x551000, 0x567000, 0x592800,
+ 0x588800, 0x581800, 0x599800, 0x594800,
+ 0x598000, /* rest not used? */
+ };
+
+ /* unscramble bank number */
+ data = (((data>>14)&1)<<0) + (((data>> 6)&1)<<1) + (((data>> 8)&1)<<2) + (((data>>10)&1)<<3) + (((data>>12)&1)<<4) + (((data>> 5)&1)<<5);
+
+ int bankaddress = 0x100000 + bankoffset[data];
+ m_bankdev->neogeo_set_main_cpu_bank_address(bankaddress);
+}
+
+
+WRITE16_MEMBER( sma_prot_device::garou_bankswitch_w )
+{
+ /* thanks to Razoola and Mr K for the info */
+ static const int bankoffset[64] =
+ {
+ 0x000000, 0x100000, 0x200000, 0x300000, // 00
+ 0x280000, 0x380000, 0x2d0000, 0x3d0000, // 04
+ 0x2f0000, 0x3f0000, 0x400000, 0x500000, // 08
+ 0x420000, 0x520000, 0x440000, 0x540000, // 12
+ 0x498000, 0x598000, 0x4a0000, 0x5a0000, // 16
+ 0x4a8000, 0x5a8000, 0x4b0000, 0x5b0000, // 20
+ 0x4b8000, 0x5b8000, 0x4c0000, 0x5c0000, // 24
+ 0x4c8000, 0x5c8000, 0x4d0000, 0x5d0000, // 28
+ 0x458000, 0x558000, 0x460000, 0x560000, // 32
+ 0x468000, 0x568000, 0x470000, 0x570000, // 36
+ 0x478000, 0x578000, 0x480000, 0x580000, // 40
+ 0x488000, 0x588000, 0x490000, 0x590000, // 44
+ 0x5d0000, 0x5d8000, 0x5e0000, 0x5e8000, // 48
+ 0x5f0000, 0x5f8000, 0x600000, /* rest not used? */
+ };
+
+ /* unscramble bank number */
+ data = (((data>> 5)&1)<<0) + (((data>> 9)&1)<<1) + (((data>> 7)&1)<<2) + (((data>> 6)&1)<<3) + (((data>>14)&1)<<4) + (((data>>12)&1)<<5);
+
+ int bankaddress = 0x100000 + bankoffset[data];
+ m_bankdev->neogeo_set_main_cpu_bank_address(bankaddress);
+}
+
+
+WRITE16_MEMBER( sma_prot_device::garouh_bankswitch_w )
+{
+ /* thanks to Razoola and Mr K for the info */
+ static const int bankoffset[64] =
+ {
+ 0x000000, 0x100000, 0x200000, 0x300000, // 00
+ 0x280000, 0x380000, 0x2d0000, 0x3d0000, // 04
+ 0x2c8000, 0x3c8000, 0x400000, 0x500000, // 08
+ 0x420000, 0x520000, 0x440000, 0x540000, // 12
+ 0x598000, 0x698000, 0x5a0000, 0x6a0000, // 16
+ 0x5a8000, 0x6a8000, 0x5b0000, 0x6b0000, // 20
+ 0x5b8000, 0x6b8000, 0x5c0000, 0x6c0000, // 24
+ 0x5c8000, 0x6c8000, 0x5d0000, 0x6d0000, // 28
+ 0x458000, 0x558000, 0x460000, 0x560000, // 32
+ 0x468000, 0x568000, 0x470000, 0x570000, // 36
+ 0x478000, 0x578000, 0x480000, 0x580000, // 40
+ 0x488000, 0x588000, 0x490000, 0x590000, // 44
+ 0x5d8000, 0x6d8000, 0x5e0000, 0x6e0000, // 48
+ 0x5e8000, 0x6e8000, 0x6e8000, 0x000000, // 52
+ 0x000000, 0x000000, 0x000000, 0x000000, // 56
+ 0x000000, 0x000000, 0x000000, 0x000000, // 60
+ };
+
+ /* unscramble bank number */
+ data = (((data>> 4)&1)<<0) + (((data>> 8)&1)<<1) + (((data>>14)&1)<<2) + (((data>> 2)&1)<<3) + (((data>>11)&1)<<4) + (((data>>13)&1)<<5);
+
+ int bankaddress = 0x100000 + bankoffset[data];
+ m_bankdev->neogeo_set_main_cpu_bank_address(bankaddress);
+}
+
+
+WRITE16_MEMBER( sma_prot_device::mslug3_bankswitch_w )
+{
+ /* thanks to Razoola and Mr K for the info */
+ static const int bankoffset[64] =
+ {
+ 0x000000, 0x020000, 0x040000, 0x060000, // 00
+ 0x070000, 0x090000, 0x0b0000, 0x0d0000, // 04
+ 0x0e0000, 0x0f0000, 0x120000, 0x130000, // 08
+ 0x140000, 0x150000, 0x180000, 0x190000, // 12
+ 0x1a0000, 0x1b0000, 0x1e0000, 0x1f0000, // 16
+ 0x200000, 0x210000, 0x240000, 0x250000, // 20
+ 0x260000, 0x270000, 0x2a0000, 0x2b0000, // 24
+ 0x2c0000, 0x2d0000, 0x300000, 0x310000, // 28
+ 0x320000, 0x330000, 0x360000, 0x370000, // 32
+ 0x380000, 0x390000, 0x3c0000, 0x3d0000, // 36
+ 0x400000, 0x410000, 0x440000, 0x450000, // 40
+ 0x460000, 0x470000, 0x4a0000, 0x4b0000, // 44
+ 0x4c0000, /* rest not used? */
+ };
+
+ /* unscramble bank number */
+ data = (((data>>14)&1)<<0) + (((data>>12)&1)<<1) + (((data>>15)&1)<<2) + (((data>> 6)&1)<<3) + (((data>> 3)&1)<<4) + (((data>> 9)&1)<<5);
+
+ int bankaddress = 0x100000 + bankoffset[data];
+ m_bankdev->neogeo_set_main_cpu_bank_address(bankaddress);
+}
+
+
+WRITE16_MEMBER( sma_prot_device::kof2000_bankswitch_w )
+{
+ /* thanks to Razoola and Mr K for the info */
+ static const int bankoffset[64] =
+ {
+ 0x000000, 0x100000, 0x200000, 0x300000, // 00
+ 0x3f7800, 0x4f7800, 0x3ff800, 0x4ff800, // 04
+ 0x407800, 0x507800, 0x40f800, 0x50f800, // 08
+ 0x416800, 0x516800, 0x41d800, 0x51d800, // 12
+ 0x424000, 0x524000, 0x523800, 0x623800, // 16
+ 0x526000, 0x626000, 0x528000, 0x628000, // 20
+ 0x52a000, 0x62a000, 0x52b800, 0x62b800, // 24
+ 0x52d000, 0x62d000, 0x52e800, 0x62e800, // 28
+ 0x618000, 0x619000, 0x61a000, 0x61a800, // 32
+ };
+
+ /* unscramble bank number */
+ data = (((data>>15)&1)<<0) + (((data>>14)&1)<<1) + (((data>> 7)&1)<<2) + (((data>> 3)&1)<<3) + (((data>>10)&1)<<4) + (((data>> 5)&1)<<5);
+
+ int bankaddress = 0x100000 + bankoffset[data];
+ m_bankdev->neogeo_set_main_cpu_bank_address(bankaddress);
+}
+
+
+READ16_MEMBER( sma_prot_device::prot_9a37_r )
+{
+ return 0x9a37;
+}
+
+
+/* information about the sma random number generator provided by razoola */
+/* this RNG is correct for KOF99, other games might be different */
+
+READ16_MEMBER( sma_prot_device::sma_random_r )
+{
+ uint16_t old = m_sma_rng;
+ uint16_t newbit = ((m_sma_rng >> 2) ^ (m_sma_rng >> 3) ^ (m_sma_rng >> 5) ^ (m_sma_rng >> 6) ^ (m_sma_rng >> 7) ^ (m_sma_rng >>11) ^ (m_sma_rng >>12) ^ (m_sma_rng >>15)) & 1;
+ m_sma_rng = (m_sma_rng << 1) | newbit;
+ return old;
+}
+
+
+void sma_prot_device::reset_sma_rng()
+{
+ m_sma_rng = 0x2345;
+}
+
+
+void sma_prot_device::sma_install_random_read_handler(cpu_device* maincpu, int addr1, int addr2 )
+{
+ maincpu->space(AS_PROGRAM).install_read_handler(addr1, addr1 + 1, read16_delegate(FUNC(sma_prot_device::sma_random_r),this));
+ maincpu->space(AS_PROGRAM).install_read_handler(addr2, addr2 + 1, read16_delegate(FUNC(sma_prot_device::sma_random_r),this));
+}
+
+
+void sma_prot_device::kof99_install_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev)
+{
+ maincpu->space(AS_PROGRAM).install_write_handler(0x2ffff0, 0x2ffff1, write16_delegate(FUNC(sma_prot_device::kof99_bankswitch_w),this));
+ maincpu->space(AS_PROGRAM).install_read_handler(0x2fe446, 0x2fe447, read16_delegate(FUNC(sma_prot_device::prot_9a37_r),this));
+ m_bankdev = bankdev;
+
+ sma_install_random_read_handler(maincpu, 0x2ffff8, 0x2ffffa);
+}
+
+
+void sma_prot_device::garou_install_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev)
+{
+ maincpu->space(AS_PROGRAM).install_write_handler(0x2fffc0, 0x2fffc1, write16_delegate(FUNC(sma_prot_device::garou_bankswitch_w),this));
+ maincpu->space(AS_PROGRAM).install_read_handler(0x2fe446, 0x2fe447, read16_delegate(FUNC(sma_prot_device::prot_9a37_r),this));
+ m_bankdev = bankdev;
+
+ sma_install_random_read_handler(maincpu, 0x2fffcc, 0x2ffff0);
+}
+
+
+void sma_prot_device::garouh_install_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev)
+{
+ maincpu->space(AS_PROGRAM).install_write_handler(0x2fffc0, 0x2fffc1, write16_delegate(FUNC(sma_prot_device::garouh_bankswitch_w),this));
+ maincpu->space(AS_PROGRAM).install_read_handler(0x2fe446, 0x2fe447, read16_delegate(FUNC(sma_prot_device::prot_9a37_r),this));
+ m_bankdev = bankdev;
+
+ sma_install_random_read_handler(maincpu, 0x2fffcc, 0x2ffff0);
+}
+
+
+void sma_prot_device::mslug3_install_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev)
+{
+ maincpu->space(AS_PROGRAM).install_write_handler(0x2fffe4, 0x2fffe5, write16_delegate(FUNC(sma_prot_device::mslug3_bankswitch_w),this));
+ maincpu->space(AS_PROGRAM).install_read_handler(0x2fe446, 0x2fe447, read16_delegate(FUNC(sma_prot_device::prot_9a37_r),this));
+ m_bankdev = bankdev;
+
+// sma_install_random_read_handler(maincpu, 0x2ffff8, 0x2ffffa);
+}
+
+
+void sma_prot_device::kof2000_install_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev)
+{
+ maincpu->space(AS_PROGRAM).install_write_handler(0x2fffec, 0x2fffed, write16_delegate(FUNC(sma_prot_device::kof2000_bankswitch_w),this));
+ maincpu->space(AS_PROGRAM).install_read_handler(0x2fe446, 0x2fe447, read16_delegate(FUNC(sma_prot_device::prot_9a37_r),this));
+ m_bankdev = bankdev;
+
+ sma_install_random_read_handler(maincpu, 0x2fffd8, 0x2fffda);
+}
+
+
+
+/* kof99, garou, garouh, mslug3 and kof2000 have a SMA chip which contains program code and decrypts the 68k roms */
+void sma_prot_device::kof99_decrypt_68k(uint8_t* base)
+{
+ int i,j;
+ uint16_t *rom = (uint16_t *)(base + 0x100000);
+ /* swap data lines on the whole ROMs */
+ for (i = 0;i < 0x800000/2;i++)
+ rom[i] = bitswap<16>(rom[i],13,7,3,0,9,4,5,6,1,12,8,14,10,11,2,15);
+
+ /* swap address lines for the banked part */
+ for (i = 0;i < 0x600000/2;i+=0x800/2)
+ {
+ uint16_t buffer[0x800/2];
+ memcpy(buffer, &rom[i], 0x800);
+ for (j = 0; j < 0x800/2; j++)
+ rom[i+j] = buffer[bitswap<24>(j,23,22,21,20,19,18,17,16,15,14,13,12,11,10,6,2,4,9,8,3,1,7,0,5)];
+ }
+
+ /* swap address lines & relocate fixed part */
+ rom = (uint16_t *)base;
+ for (i = 0;i < 0x0c0000/2;i++)
+ rom[i] = rom[0x700000/2 + bitswap<24>(i,23,22,21,20,19,18,11,6,14,17,16,5,8,10,12,0,4,3,2,7,9,15,13,1)];
+}
+
+
+void sma_prot_device::garou_decrypt_68k(uint8_t* base)
+{
+ int i,j;
+
+ /* thanks to Razoola and Mr K for the info */
+ uint16_t *rom = (uint16_t *)(base + 0x100000);
+ /* swap data lines on the whole ROMs */
+ for (i = 0;i < 0x800000/2;i++)
+ rom[i] = bitswap<16>(rom[i],13,12,14,10,8,2,3,1,5,9,11,4,15,0,6,7);
+
+ /* swap address lines & relocate fixed part */
+ rom = (uint16_t *)base;
+ for (i = 0;i < 0x0c0000/2;i++)
+ rom[i] = rom[0x710000/2 + bitswap<24>(i,23,22,21,20,19,18,4,5,16,14,7,9,6,13,17,15,3,1,2,12,11,8,10,0)];
+
+ /* swap address lines for the banked part */
+ rom = (uint16_t *)(base + 0x100000);
+ for (i = 0;i < 0x800000/2;i+=0x8000/2)
+ {
+ uint16_t buffer[0x8000/2];
+ memcpy(buffer,&rom[i],0x8000);
+ for (j = 0;j < 0x8000/2;j++)
+ rom[i+j] = buffer[bitswap<24>(j,23,22,21,20,19,18,17,16,15,14,9,4,8,3,13,6,2,7,0,12,1,11,10,5)];
+ }
+}
+
+
+void sma_prot_device::garouh_decrypt_68k(uint8_t* base)
+{
+ int i,j;
+
+ /* thanks to Razoola and Mr K for the info */
+ uint16_t *rom = (uint16_t *)(base + 0x100000);
+ /* swap data lines on the whole ROMs */
+ for (i = 0;i < 0x800000/2;i++)
+ rom[i] = bitswap<16>(rom[i],14,5,1,11,7,4,10,15,3,12,8,13,0,2,9,6);
+
+ /* swap address lines & relocate fixed part */
+ rom = (uint16_t *)base;
+ for (i = 0;i < 0x0c0000/2;i++)
+ rom[i] = rom[0x7f8000/2 + bitswap<24>(i,23,22,21,20,19,18,5,16,11,2,6,7,17,3,12,8,14,4,0,9,1,10,15,13)];
+
+ /* swap address lines for the banked part */
+ rom = (uint16_t *)(base + 0x100000);
+ for (i = 0;i < 0x800000/2;i+=0x8000/2)
+ {
+ uint16_t buffer[0x8000/2];
+ memcpy(buffer,&rom[i],0x8000);
+ for (j = 0;j < 0x8000/2;j++)
+ rom[i+j] = buffer[bitswap<24>(j,23,22,21,20,19,18,17,16,15,14,12,8,1,7,11,3,13,10,6,9,5,4,0,2)];
+ }
+}
+
+
+void sma_prot_device::mslug3_decrypt_68k(uint8_t* base)
+{
+ int i,j;
+
+ /* thanks to Razoola and Mr K for the info */
+ uint16_t *rom = (uint16_t *)(base + 0x100000);
+ /* swap data lines on the whole ROMs */
+ for (i = 0;i < 0x800000/2;i++)
+ rom[i] = bitswap<16>(rom[i],4,11,14,3,1,13,0,7,2,8,12,15,10,9,5,6);
+
+ /* swap address lines & relocate fixed part */
+ rom = (uint16_t *)base;
+ for (i = 0;i < 0x0c0000/2;i++)
+ rom[i] = rom[0x5d0000/2 + bitswap<24>(i,23,22,21,20,19,18,15,2,1,13,3,0,9,6,16,4,11,5,7,12,17,14,10,8)];
+
+ /* swap address lines for the banked part */
+ rom = (uint16_t *)(base + 0x100000);
+ for (i = 0;i < 0x800000/2;i+=0x10000/2)
+ {
+ uint16_t buffer[0x10000/2];
+ memcpy(buffer,&rom[i],0x10000);
+ for (j = 0;j < 0x10000/2;j++)
+ rom[i+j] = buffer[bitswap<24>(j,23,22,21,20,19,18,17,16,15,2,11,0,14,6,4,13,8,9,3,10,7,5,12,1)];
+ }
+}
+
+
+void sma_prot_device::kof2000_decrypt_68k(uint8_t* base)
+{
+ int i,j;
+
+ /* thanks to Razoola and Mr K for the info */
+ uint16_t *rom = (uint16_t *)(base + 0x100000);
+ /* swap data lines on the whole ROMs */
+ for (i = 0;i < 0x800000/2;i++)
+ rom[i] = bitswap<16>(rom[i],12,8,11,3,15,14,7,0,10,13,6,5,9,2,1,4);
+
+ /* swap address lines for the banked part */
+ for (i = 0;i < 0x63a000/2;i+=0x800/2)
+ {
+ uint16_t buffer[0x800/2];
+ memcpy(buffer,&rom[i],0x800);
+ for (j = 0;j < 0x800/2;j++)
+ rom[i+j] = buffer[bitswap<24>(j,23,22,21,20,19,18,17,16,15,14,13,12,11,10,4,1,3,8,6,2,7,0,9,5)];
+ }
+
+ /* swap address lines & relocate fixed part */
+ rom = (uint16_t *)base;
+ for (i = 0;i < 0x0c0000/2;i++)
+ rom[i] = rom[0x73a000/2 + bitswap<24>(i,23,22,21,20,19,18,8,4,15,13,3,14,16,2,6,17,7,12,10,0,5,11,1,9)];
+}
+
+// From here are not sma decrypts, it's a convenient place to store them **************************************************
+
+
+/* ms5pcb and svcpcb have an additional scramble on top of the standard CMC scrambling */
+void sma_prot_device::svcpcb_gfx_decrypt(uint8_t* rom, uint32_t rom_size)
+{
+ static const uint8_t xorval[ 4 ] = { 0x34, 0x21, 0xc4, 0xe9 };
+ int i, ofst;
+ std::vector<uint8_t> buf( rom_size );
+
+ for( i = 0; i < rom_size; i++ )
+ rom[ i ] ^= xorval[ (i % 4) ];
+
+ for( i = 0; i < rom_size; i += 4 )
+ {
+ uint32_t rom32 = rom[i] | rom[i+1]<<8 | rom[i+2]<<16 | rom[i+3]<<24;
+ rom32 = bitswap<32>( rom32, 0x09, 0x0d, 0x13, 0x00, 0x17, 0x0f, 0x03, 0x05, 0x04, 0x0c, 0x11, 0x1e, 0x12,
+ 0x15, 0x0b, 0x06, 0x1b, 0x0a, 0x1a, 0x1c, 0x14, 0x02, 0x0e, 0x1d, 0x18, 0x08, 0x01, 0x10, 0x19, 0x1f, 0x07, 0x16 );
+ buf[i] = rom32 & 0xff;
+ buf[i+1] = (rom32>>8) & 0xff;
+ buf[i+2] = (rom32>>16) & 0xff;
+ buf[i+3] = (rom32>>24) & 0xff;
+ }
+
+ for( i = 0; i < rom_size / 4; i++ )
+ {
+ ofst = bitswap<24>( (i & 0x1fffff), 0x17, 0x16, 0x15, 0x04, 0x0b, 0x0e, 0x08, 0x0c, 0x10, 0x00, 0x0a, 0x13,
+ 0x03, 0x06, 0x02, 0x07, 0x0d, 0x01, 0x11, 0x09, 0x14, 0x0f, 0x12, 0x05 );
+ ofst ^= 0x0c8923;
+ ofst += (i & 0xffe00000);
+ memcpy( &rom[ i * 4 ], &buf[ ofst * 4 ], 0x04 );
+ }
+}
+
+
+/* and a further swap on the s1 data */
+void sma_prot_device::svcpcb_s1data_decrypt(uint8_t* rom, uint32_t rom_size)
+{
+ for( int i = 0; i < rom_size; i++ ) // Decrypt S
+ rom[ i ] = bitswap<8>( rom[ i ] ^ 0xd2, 4, 0, 7, 2, 5, 1, 6, 3 );
+}
+
+
+/* kf2k3pcb has an additional scramble on top of the standard CMC scrambling */
+/* Thanks to Razoola & Halrin for the info */
+void sma_prot_device::kf2k3pcb_gfx_decrypt(uint8_t* rom, uint32_t rom_size)
+{
+ const uint8_t xorval[ 4 ] = { 0x34, 0x21, 0xc4, 0xe9 };
+ int i, ofst;
+ std::vector<uint8_t> buf( rom_size );
+
+ for ( i = 0; i < rom_size; i++ )
+ rom[ i ] ^= xorval[ (i % 4) ];
+
+ for ( i = 0; i < rom_size; i +=4 )
+ {
+ uint32_t rom32 = rom[i] | rom[i+1]<<8 | rom[i+2]<<16 | rom[i+3]<<24;
+ rom32 = bitswap<32>( rom32, 0x09, 0x0d, 0x13, 0x00, 0x17, 0x0f, 0x03, 0x05, 0x04, 0x0c, 0x11, 0x1e, 0x12,
+ 0x15, 0x0b, 0x06, 0x1b, 0x0a, 0x1a, 0x1c, 0x14, 0x02, 0x0e, 0x1d, 0x18, 0x08, 0x01, 0x10, 0x19, 0x1f, 0x07, 0x16 );
+ buf[i] = rom32 & 0xff;
+ buf[i+1] = (rom32>>8) & 0xff;
+ buf[i+2] = (rom32>>16) & 0xff;
+ buf[i+3] = (rom32>>24) & 0xff;
+ }
+
+ for ( i = 0; i < rom_size; i+=4 )
+ {
+ ofst = bitswap<24>( (i & 0x7fffff), 0x17, 0x15, 0x0a, 0x14, 0x13, 0x16, 0x12, 0x11, 0x10, 0x0f, 0x0e, 0x0d,
+ 0x0c, 0x0b, 0x09, 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x00 );
+ ofst += (i & 0xff800000);
+ memcpy( &rom[ ofst ], &buf[ i ], 0x04 );
+ }
+}
+
+
+/* and a further swap on the s1 data */
+void sma_prot_device::kf2k3pcb_decrypt_s1data(uint8_t* rom, uint32_t rom_size, uint8_t* fixed, uint32_t fixed_size)
+{
+ uint8_t *src;
+ uint8_t *dst;
+ int i;
+
+ src = rom + rom_size - 0x1000000 - 0x80000; // Decrypt S
+
+ for( i = 0; i < fixed_size / 2; i++ )
+ fixed[ i ] = src[ (i & ~0x1f) + ((i & 7) << 2) + ((~i & 8) >> 2) + ((i & 0x10) >> 4) ];
+
+ src = rom + rom_size - 0x80000;
+ dst = fixed + 0x80000;
+
+ for( i = 0; i < fixed_size / 2; i++ )
+ dst[ i ] = src[ (i & ~0x1f) + ((i & 7) << 2) + ((~i & 8) >> 2) + ((i & 0x10) >> 4) ];
+
+ for( i = 0; i < fixed_size; i++ )
+ fixed[ i ] = bitswap<8>( fixed[ i ] ^ 0xd2, 4, 0, 7, 2, 5, 1, 6, 3 );
+}
+
+
+/***************************************************************************
+
+NeoGeo 'SP1' (BIOS) ROM encryption
+
+***************************************************************************/
+
+
+/* only found on kf2k3pcb */
+void sma_prot_device::kf2k3pcb_sp1_decrypt(uint16_t* rom)
+{
+ static const uint8_t address[0x40] = {
+ 0x04,0x0a,0x04,0x0a,0x04,0x0a,0x04,0x0a,
+ 0x0a,0x04,0x0a,0x04,0x0a,0x04,0x0a,0x04,
+ 0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,
+ 0x09,0x09,0x04,0x04,0x09,0x09,0x04,0x04,
+ 0x0b,0x0d,0x0b,0x0d,0x03,0x05,0x03,0x05,
+ 0x0e,0x0e,0x03,0x03,0x0e,0x0e,0x03,0x03,
+ 0x03,0x05,0x0b,0x0d,0x03,0x05,0x0b,0x0d,
+ 0x04,0x00,0x04,0x00,0x0e,0x0a,0x0e,0x0a
+ };
+
+ std::vector<uint16_t> buf(0x80000/2);
+ int i, addr;
+
+ for (i = 0; i < 0x80000/2; i++)
+ {
+ // address xor
+ addr = i ^ 0x0020;
+ if ( i & 0x00020) addr ^= 0x0010;
+ if (~i & 0x00010) addr ^= 0x0040;
+ if (~i & 0x00004) addr ^= 0x0080;
+ if ( i & 0x00200) addr ^= 0x0100;
+ if (~i & 0x02000) addr ^= 0x0400;
+ if (~i & 0x10000) addr ^= 0x1000;
+ if ( i & 0x02000) addr ^= 0x8000;
+ addr ^= address[((i >> 1) & 0x38) | (i & 7)];
+ buf[i] = rom[addr];
+
+ // data xor
+ if (buf[i] & 0x0004) buf[i] ^= 0x0001;
+ if (buf[i] & 0x0010) buf[i] ^= 0x0002;
+ if (buf[i] & 0x0020) buf[i] ^= 0x0008;
+ }
+
+ memcpy(rom, &buf[0], 0x80000);
+}
diff --git a/src/hbmame/bus/neogeo/prot.h b/src/hbmame/bus/neogeo/prot.h
new file mode 100644
index 00000000000..466b0e2d6b5
--- /dev/null
+++ b/src/hbmame/bus/neogeo/prot.h
@@ -0,0 +1,417 @@
+// license:BSD-3-Clause
+// copyright-holders:S. Smith,David Haywood
+
+
+#pragma once
+
+#include "banked_cart.h"
+
+#ifndef __NEOGEO_PROT__
+#define __NEOGEO_PROT__
+
+DECLARE_DEVICE_TYPE(NGBOOTLEG_PROT, ngbootleg_prot_device)
+
+#define MCFG_NGBOOTLEG_PROT_ADD(_tag) \
+ MCFG_DEVICE_ADD(_tag, NGBOOTLEG_PROT, 0)
+
+
+class ngbootleg_prot_device : public device_t
+{
+public:
+ // construction/destruction
+ ngbootleg_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
+ void neogeo_bootleg_cx_decrypt(uint8_t*sprrom, uint32_t sprrom_size);
+ void neogeo_bootleg_sx_decrypt(uint8_t* fixed, uint32_t fixed_size, int value);
+ void kof97oro_px_decode(uint8_t* cpurom, uint32_t cpurom_size);
+ void kof10thBankswitch(address_space &space, uint16_t nBank);
+ DECLARE_READ16_MEMBER(kof10th_RAM2_r);
+ DECLARE_READ16_MEMBER(kof10th_RAMB_r);
+ DECLARE_WRITE16_MEMBER(kof10th_custom_w);
+ DECLARE_WRITE16_MEMBER(kof10th_bankswitch_w);
+ void install_kof10th_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev, uint8_t* cpurom, uint32_t cpurom_size, uint8_t* fixedrom, uint32_t fixedrom_size);
+ void decrypt_kof10th(uint8_t* cpurom, uint32_t cpurom_size);
+ void kf10thep_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size);
+ void kf2k5uni_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size);
+ void kf2k5uni_sx_decrypt(uint8_t* fixedrom, uint32_t fixedrom_size);
+ void kf2k5uni_mx_decrypt(uint8_t* audiorom, uint32_t audiorom_size);
+ void decrypt_kf2k5uni(uint8_t* cpurom, uint32_t cpurom_size, uint8_t* audiorom, uint32_t audiorom_size, uint8_t* fixedrom, uint32_t fixedrom_size);
+ void kof2002b_gfx_decrypt(uint8_t *src, int size);
+ void kf2k2mp_decrypt(uint8_t* cpurom, uint32_t cpurom_size);
+ void kf2k2mp2_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size);
+ void cthd2003_neogeo_gfx_address_fix_do(uint8_t* sprrom, uint32_t sprrom_size, int start, int end, int bit3shift, int bit2shift, int bit1shift, int bit0shift);
+ void cthd2003_neogeo_gfx_address_fix(uint8_t* sprrom, uint32_t sprrom_size, int start, int end);
+ void cthd2003_c(uint8_t* sprrom, uint32_t sprrom_size, int pow);
+ void decrypt_cthd2003(uint8_t* sprrom, uint32_t sprrom_size, uint8_t* audiorom, uint32_t audiorom_size, uint8_t* fixedrom, uint32_t fixedrom_size);
+ DECLARE_WRITE16_MEMBER(cthd2003_bankswitch_w);
+ void patch_cthd2003(cpu_device* maincpu, neogeo_banked_cart_device* bankdev, uint8_t* cpurom, uint32_t cpurom_size);
+ void ct2k3sp_sx_decrypt(uint8_t* fixedrom, uint32_t fixedrom_size);
+ void decrypt_ct2k3sp(uint8_t* sprrom, uint32_t sprrom_size, uint8_t* audiorom, uint32_t audiorom_size, uint8_t* fixedrom, uint32_t fixedrom_size);
+ void decrypt_ct2k3sa(uint8_t* sprrom, uint32_t sprrom_size, uint8_t* audiorom, uint32_t audiorom_size);
+ void patch_ct2k3sa(uint8_t* cpurom, uint32_t cpurom_size);
+ void decrypt_kof2k4se_68k(uint8_t* cpurom, uint32_t cpurom_size);
+ void lans2004_vx_decrypt(uint8_t* ymsndrom, uint32_t ymsndrom_size);
+ void lans2004_decrypt_68k(uint8_t* cpurom, uint32_t cpurom_size);
+ DECLARE_READ16_MEMBER(mslug5_prot_r);
+ DECLARE_WRITE16_MEMBER(ms5plus_bankswitch_w);
+ void install_ms5plus_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev);
+ void svcboot_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size);
+ void svcboot_cx_decrypt(uint8_t*sprrom, uint32_t sprrom_size);
+ void svcplus_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size);
+ void svcplus_px_hack(uint8_t* cpurom, uint32_t cpurom_size);
+ void svcplusa_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size);
+ void svcsplus_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size);
+ void svcsplus_px_hack(uint8_t* cpurom, uint32_t cpurom_size);
+ DECLARE_READ16_MEMBER(kof2003_r);
+ DECLARE_WRITE16_MEMBER(kof2003_w);
+ DECLARE_WRITE16_MEMBER(kof2003p_w);
+ DECLARE_READ16_MEMBER(kof2003_overlay_r);
+ void kf2k3bl_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size);
+ void kf2k3bl_install_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev, uint8_t* cpurom, uint32_t cpurom_size);
+ void kf2k3pl_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size);
+ void kf2k3pl_install_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev, uint8_t* cpurom, uint32_t cpurom_size);
+ uint16_t kof2k3_overlay;
+
+ void kf2k3upl_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size);
+ void samsho5b_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size);
+ void samsho5b_vx_decrypt(uint8_t* ymsndrom, uint32_t ymsndrom_size);
+ void matrimbl_decrypt(uint8_t* sprrom, uint32_t sprrom_size, uint8_t* audiorom, uint32_t audiorom_size);
+
+ uint16_t m_cartridge_ram[0x1000]; // bootlegs
+
+ // for kof10th
+ uint8_t* m_mainrom;
+ uint8_t* m_fixedrom;
+ neogeo_banked_cart_device* m_bankdev;
+ uint16_t m_cartridge_ram2[0x10000];
+
+protected:
+ virtual void device_start() override;
+ virtual void device_reset() override;
+};
+
+
+DECLARE_DEVICE_TYPE(KOG_PROT, kog_prot_device)
+
+#define MCFG_KOG_PROT_ADD(_tag) \
+ MCFG_DEVICE_ADD(_tag, KOG_PROT, 0)
+
+
+class kog_prot_device : public device_t
+{
+public:
+ // construction/destruction
+ kog_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
+ void kog_install_protection(cpu_device* maincpu);
+ void kog_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size);
+ READ16_MEMBER(read_jumper);
+
+ required_ioport m_jumper;
+
+protected:
+ virtual void device_start() override;
+ virtual void device_reset() override;
+ virtual ioport_constructor device_input_ports() const override;
+};
+
+
+DECLARE_DEVICE_TYPE(CMC_PROT, cmc_prot_device)
+
+#define MCFG_CMC_PROT_ADD(_tag) \
+ MCFG_DEVICE_ADD(_tag, CMC_PROT, 0)
+
+// cmc42
+#define KOF99_GFX_KEY (0x00)
+#define GAROU_GFX_KEY (0x06)
+#define MSLUG3_GFX_KEY (0xad)
+#define ZUPAPA_GFX_KEY (0xbd)
+#define GANRYU_GFX_KEY (0x07)
+#define S1945P_GFX_KEY (0x05)
+#define PREISLE2_GFX_KEY (0x9f)
+#define BANGBEAD_GFX_KEY (0xf8)
+#define NITD_GFX_KEY (0xff)
+#define SENGOKU3_GFX_KEY (0xfe)
+
+// cmc50
+#define KOF2000_GFX_KEY (0x00)
+#define KOF2001_GFX_KEY (0x1e)
+#define MSLUG4_GFX_KEY (0x31)
+#define ROTD_GFX_KEY (0x3f)
+#define PNYAA_GFX_KEY (0x2e)
+#define KOF2002_GFX_KEY (0xec)
+#define MATRIM_GFX_KEY (0x6a)
+#define SAMSHO5_GFX_KEY (0x0f)
+#define SAMSHO5SP_GFX_KEY (0x0d)
+#define MSLUG5_GFX_KEY (0x19)
+#define SVC_GFX_KEY (0x57)
+#define KOF2003_GFX_KEY (0x9d)
+#define JOCKEYGP_GFX_KEY (0xac)
+
+
+class cmc_prot_device : public device_t
+{
+public:
+ // construction/destruction
+ cmc_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
+ void decrypt(uint8_t *r0, uint8_t *r1,
+ uint8_t c0, uint8_t c1,
+ const uint8_t *table0hi,
+ const uint8_t *table0lo,
+ const uint8_t *table1,
+ int base,
+ int invert);
+
+ void neogeo_gfx_decrypt(uint8_t* rom, uint32_t rom_size, int extra_xor);
+ void neogeo_sfix_decrypt(uint8_t* rom, uint32_t rom_size, uint8_t* fixed, uint32_t fixed_size);
+ void cmc42_neogeo_gfx_decrypt(uint8_t* rom, uint32_t rom_size, int extra_xor);
+ void cmc50_neogeo_gfx_decrypt(uint8_t* rom, uint32_t rom_size, int extra_xor);
+
+ uint16_t generate_cs16(uint8_t *rom, int size);
+ int m1_address_scramble(int address, uint16_t key);
+ void neogeo_cmc50_m1_decrypt(uint8_t* romcrypt, uint32_t romcrypt_size, uint8_t* romaudio, uint32_t romaudio_size);
+
+protected:
+ virtual void device_start() override;
+ virtual void device_reset() override;
+
+ const uint8_t *type0_t03;
+ const uint8_t *type0_t12;
+ const uint8_t *type1_t03;
+ const uint8_t *type1_t12;
+ const uint8_t *address_8_15_xor1;
+ const uint8_t *address_8_15_xor2;
+ const uint8_t *address_16_23_xor1;
+ const uint8_t *address_16_23_xor2;
+ const uint8_t *address_0_7_xor;
+};
+
+
+DECLARE_DEVICE_TYPE(FATFURY2_PROT, fatfury2_prot_device)
+
+#define MCFG_FATFURY2_PROT_ADD(_tag) \
+ MCFG_DEVICE_ADD(_tag, FATFURY2_PROT, 0)
+
+
+class fatfury2_prot_device : public device_t
+{
+public:
+ // construction/destruction
+ fatfury2_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
+ DECLARE_READ16_MEMBER( fatfury2_protection_16_r );
+ DECLARE_WRITE16_MEMBER( fatfury2_protection_16_w );
+ void fatfury2_install_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev);
+
+
+ neogeo_banked_cart_device* m_bankdev;
+ uint32_t m_fatfury2_prot_data;
+
+protected:
+ virtual void device_start() override;
+ virtual void device_reset() override;
+};
+
+
+DECLARE_DEVICE_TYPE(KOF2002_PROT, kof2002_prot_device)
+
+#define MCFG_KOF2002_PROT_ADD(_tag) \
+ MCFG_DEVICE_ADD(_tag, KOF2002_PROT, 0)
+
+
+class kof2002_prot_device : public device_t
+{
+public:
+ // construction/destruction
+ kof2002_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
+ void kof2002_decrypt_68k(uint8_t* cpurom, uint32_t cpurom_size);
+ void matrim_decrypt_68k(uint8_t* cpurom, uint32_t cpurom_size);
+ void samsho5_decrypt_68k(uint8_t* cpurom, uint32_t cpurom_size);
+ void samsh5sp_decrypt_68k(uint8_t* cpurom, uint32_t cpurom_size);
+
+protected:
+ virtual void device_start() override;
+ virtual void device_reset() override;
+};
+
+
+DECLARE_DEVICE_TYPE(KOF98_PROT, kof98_prot_device)
+
+#define MCFG_KOF98_PROT_ADD(_tag) \
+ MCFG_DEVICE_ADD(_tag, KOF98_PROT, 0)
+
+
+class kof98_prot_device : public device_t
+{
+public:
+ // construction/destruction
+ kof98_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
+ void kof98_decrypt_68k(uint8_t* cpurom, uint32_t cpurom_size);
+ void install_kof98_protection(cpu_device* maincpu);
+ DECLARE_WRITE16_MEMBER(kof98_prot_w);
+ DECLARE_READ16_MEMBER(kof98_prot_r);
+ int kof98_prot_state;
+ uint16_t m_default_rom[2];
+
+protected:
+ virtual void device_start() override;
+ virtual void device_reset() override;
+};
+
+
+DECLARE_DEVICE_TYPE(MSLUGX_PROT, mslugx_prot_device)
+
+#define MCFG_MSLUGX_PROT_ADD(_tag) \
+ MCFG_DEVICE_ADD(_tag, MSLUGX_PROT, 0)
+
+
+class mslugx_prot_device : public device_t
+{
+public:
+ // construction/destruction
+ mslugx_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
+
+ DECLARE_WRITE16_MEMBER( mslugx_protection_16_w );
+ DECLARE_READ16_MEMBER( mslugx_protection_16_r );
+ void mslugx_install_protection(cpu_device* maincpu);
+
+ uint16_t m_mslugx_counter;
+ uint16_t m_mslugx_command;
+
+protected:
+ virtual void device_start() override;
+ virtual void device_reset() override;
+};
+
+
+DECLARE_DEVICE_TYPE(PCM2_PROT, pcm2_prot_device)
+
+#define MCFG_PCM2_PROT_ADD(_tag) \
+ MCFG_DEVICE_ADD(_tag, PCM2_PROT, 0)
+
+
+class pcm2_prot_device : public device_t
+{
+public:
+ // construction/destruction
+ pcm2_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
+ void neo_pcm2_snk_1999(uint8_t* ymrom, uint32_t ymsize, int value);
+ void neo_pcm2_swap(uint8_t* ymrom, uint32_t ymsize, int value);
+
+protected:
+ virtual void device_start() override;
+ virtual void device_reset() override;
+};
+
+
+DECLARE_DEVICE_TYPE(PVC_PROT, pvc_prot_device)
+
+#define MCFG_PVC_PROT_ADD(_tag) \
+ MCFG_DEVICE_ADD(_tag, PVC_PROT, 0)
+
+
+class pvc_prot_device : public device_t
+{
+public:
+ // construction/destruction
+ pvc_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
+ void pvc_write_unpack_color();
+ void pvc_write_pack_color();
+ void pvc_write_bankswitch(address_space &space);
+ DECLARE_READ16_MEMBER(pvc_prot_r);
+ DECLARE_WRITE16_MEMBER(pvc_prot_w);
+ void install_pvc_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev);
+ neogeo_banked_cart_device* m_bankdev;
+
+ uint16_t m_cartridge_ram[0x1000];
+
+ void mslug5_decrypt_68k(uint8_t* rom, uint32_t size);
+ void svc_px_decrypt(uint8_t* rom, uint32_t size);
+ void kf2k3pcb_decrypt_68k(uint8_t* rom, uint32_t size);
+ void kof2003_decrypt_68k(uint8_t* rom, uint32_t size);
+ void kof2003h_decrypt_68k(uint8_t* rom, uint32_t size);
+
+protected:
+ virtual void device_start() override;
+ virtual void device_reset() override;
+};
+
+
+DECLARE_DEVICE_TYPE(SBP_PROT, sbp_prot_device)
+
+#define MCFG_SBP_PROT_ADD(_tag) \
+ MCFG_DEVICE_ADD(_tag, SBP_PROT, 0)
+
+
+class sbp_prot_device : public device_t
+{
+public:
+ // construction/destruction
+ sbp_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
+
+ uint8_t* m_mainrom;
+
+ void sbp_install_protection(cpu_device* maincpu, uint8_t* cpurom, uint32_t cpurom_size);
+ DECLARE_WRITE16_MEMBER(sbp_lowerrom_w);
+ DECLARE_READ16_MEMBER(sbp_lowerrom_r);
+
+protected:
+ virtual void device_start() override;
+ virtual void device_reset() override;
+};
+
+DECLARE_DEVICE_TYPE(SMA_PROT, sma_prot_device)
+
+#define MCFG_SMA_PROT_ADD(_tag) \
+ MCFG_DEVICE_ADD(_tag, SMA_PROT, 0)
+
+
+class sma_prot_device : public device_t
+{
+public:
+ // construction/destruction
+ sma_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
+
+ DECLARE_WRITE16_MEMBER( kof99_bankswitch_w );
+ DECLARE_WRITE16_MEMBER( garou_bankswitch_w );
+ DECLARE_WRITE16_MEMBER( garouh_bankswitch_w );
+ DECLARE_WRITE16_MEMBER( mslug3_bankswitch_w );
+ DECLARE_WRITE16_MEMBER( kof2000_bankswitch_w );
+ DECLARE_READ16_MEMBER( prot_9a37_r );
+ DECLARE_READ16_MEMBER( sma_random_r );
+ void reset_sma_rng();
+ void sma_install_random_read_handler(cpu_device* maincpu, int addr1, int addr2 );
+ void kof99_install_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev);
+ void garou_install_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev);
+ void garouh_install_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev);
+ void mslug3_install_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev);
+ void kof2000_install_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev);
+ neogeo_banked_cart_device* m_bankdev;
+ void kof99_decrypt_68k(uint8_t* base);
+ void garou_decrypt_68k(uint8_t* base);
+ void garouh_decrypt_68k(uint8_t* base);
+ void mslug3_decrypt_68k(uint8_t* base);
+ void kof2000_decrypt_68k(uint8_t* base);
+
+ // PCB decrypts (not sma)
+ void svcpcb_gfx_decrypt(uint8_t* rom, uint32_t rom_size);
+ void svcpcb_s1data_decrypt(uint8_t* rom, uint32_t rom_size);
+ void kf2k3pcb_gfx_decrypt(uint8_t* rom, uint32_t rom_size);
+ void kf2k3pcb_decrypt_s1data(uint8_t* rom, uint32_t rom_size, uint8_t* fixed, uint32_t fixed_size);
+ void kf2k3pcb_sp1_decrypt(uint16_t* rom);
+
+ uint16_t m_sma_rng;
+protected:
+ virtual void device_start() override;
+ virtual void device_reset() override;
+};
+
+#endif
diff --git a/src/hbmame/bus/neogeo_ctrl/ctrl.cpp b/src/hbmame/bus/neogeo_ctrl/ctrl.cpp
new file mode 100644
index 00000000000..82963bcec06
--- /dev/null
+++ b/src/hbmame/bus/neogeo_ctrl/ctrl.cpp
@@ -0,0 +1,221 @@
+// license:BSD-3-Clause
+// copyright-holders:Fabio Priuli
+/**********************************************************************
+
+ SNK Neo Geo Controller Port emulation
+
+ This actually covers two separate piece of hardware of Neo Geo system:
+ - The 15-pin controller ports that are used for controllers in the
+ AES home system and for mahjong controllers in the MVS arcade PCB
+ - The controller part of the main edge connector that is used for
+ joystick inputs in the MVS arcade PCB
+
+ Technically, the latter is not a configurable slot, because it's not
+ a component that arcade operators could simply change with a different
+ controller, but this implementation allows for simpler code.
+
+**********************************************************************/
+
+#include "ctrl.h"
+// slot devices
+#include "joystick.h"
+#include "mahjong.h"
+#include "dial.h"
+#include "irrmaze.h"
+#include "kizuna4p.h"
+
+
+//**************************************************************************
+// GLOBAL VARIABLES
+//**************************************************************************
+
+DEFINE_DEVICE_TYPE(NEOGEO_CONTROL_PORT, neogeo_control_port_device, "neogeo_control_port", "SNK Neo Geo control port")
+DEFINE_DEVICE_TYPE(NEOGEO_CTRL_EDGE_CONNECTOR, neogeo_ctrl_edge_port_device, "neogeo_ctrl_edge", "SNK Neo Geo Edge Connector (Controller)")
+
+
+//**************************************************************************
+// CARD INTERFACE
+//**************************************************************************
+
+//-------------------------------------------------
+// device_neogeo_control_port_interface - constructor
+//-------------------------------------------------
+
+device_neogeo_control_port_interface::device_neogeo_control_port_interface(const machine_config &mconfig, device_t &device)
+ : device_slot_card_interface(mconfig,device)
+{
+ m_port = dynamic_cast<neogeo_control_port_device *>(device.owner());
+}
+
+
+//-------------------------------------------------
+// ~device_neogeo_control_port_interface - destructor
+//-------------------------------------------------
+
+device_neogeo_control_port_interface::~device_neogeo_control_port_interface()
+{
+}
+
+//-------------------------------------------------
+// device_neogeo_ctrl_edge_interface - constructor
+//-------------------------------------------------
+
+device_neogeo_ctrl_edge_interface::device_neogeo_ctrl_edge_interface(const machine_config &mconfig, device_t &device)
+ : device_slot_card_interface(mconfig,device)
+{
+ m_port = dynamic_cast<neogeo_ctrl_edge_port_device *>(device.owner());
+}
+
+
+//-------------------------------------------------
+// ~device_neogeo_ctrl_edge_interface - destructor
+//-------------------------------------------------
+
+device_neogeo_ctrl_edge_interface::~device_neogeo_ctrl_edge_interface()
+{
+}
+
+
+//**************************************************************************
+// LIVE DEVICE
+//**************************************************************************
+
+//-------------------------------------------------
+// neogeo_control_port_device - constructor
+//-------------------------------------------------
+
+neogeo_control_port_device::neogeo_control_port_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
+ device_t(mconfig, NEOGEO_CONTROL_PORT, tag, owner, clock),
+ device_slot_interface(mconfig, *this), m_device(nullptr)
+{
+}
+
+
+//-------------------------------------------------
+// ~neogeo_control_port_device - destructor
+//-------------------------------------------------
+
+neogeo_control_port_device::~neogeo_control_port_device()
+{
+}
+
+
+//-------------------------------------------------
+// device_start - device-specific startup
+//-------------------------------------------------
+
+void neogeo_control_port_device::device_start()
+{
+ m_device = dynamic_cast<device_neogeo_control_port_interface *>(get_card_device());
+}
+
+
+uint8_t neogeo_control_port_device::read_ctrl()
+{
+ uint8_t data = 0xff;
+ if (m_device)
+ data &= m_device->read_ctrl();
+ return data;
+}
+
+uint8_t neogeo_control_port_device::read_start_sel()
+{
+ uint8_t data = 0xff;
+ if (m_device)
+ data &= m_device->read_start_sel();
+ return data;
+}
+
+
+void neogeo_control_port_device::write_ctrlsel(uint8_t data)
+{
+ if (m_device)
+ m_device->write_ctrlsel(data);
+}
+
+
+//-------------------------------------------------
+// neogeo_ctrl_edge_port_device - constructor
+//-------------------------------------------------
+
+neogeo_ctrl_edge_port_device::neogeo_ctrl_edge_port_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
+ device_t(mconfig, NEOGEO_CTRL_EDGE_CONNECTOR, tag, owner, clock),
+ device_slot_interface(mconfig, *this), m_device(nullptr)
+{
+}
+
+
+//-------------------------------------------------
+// ~neogeo_ctrl_edge_port_device - destructor
+//-------------------------------------------------
+
+neogeo_ctrl_edge_port_device::~neogeo_ctrl_edge_port_device()
+{
+}
+
+
+//-------------------------------------------------
+// device_start - device-specific startup
+//-------------------------------------------------
+
+void neogeo_ctrl_edge_port_device::device_start()
+{
+ m_device = dynamic_cast<device_neogeo_ctrl_edge_interface *>(get_card_device());
+}
+
+
+READ8_MEMBER(neogeo_ctrl_edge_port_device::in0_r)
+{
+ uint8_t data = 0xff;
+ if (m_device)
+ data &= m_device->in0_r(space, offset, mem_mask);
+ return data;
+}
+
+READ8_MEMBER(neogeo_ctrl_edge_port_device::in1_r)
+{
+ uint8_t data = 0xff;
+ if (m_device)
+ data &= m_device->in1_r(space, offset, mem_mask);
+ return data;
+}
+
+uint8_t neogeo_ctrl_edge_port_device::read_start_sel()
+{
+ uint8_t data = 0xff;
+ if (m_device)
+ data &= m_device->read_start_sel();
+ return data;
+}
+
+void neogeo_ctrl_edge_port_device::write_ctrlsel(uint8_t data)
+{
+ if (m_device)
+ m_device->write_ctrlsel(data);
+}
+
+
+
+//-------------------------------------------------
+// SLOT_INTERFACE( neogeo_control_port_devices )
+//-------------------------------------------------
+
+SLOT_INTERFACE_START( neogeo_controls )
+ SLOT_INTERFACE("joy", NEOGEO_JOY)
+ SLOT_INTERFACE("mahjong", NEOGEO_MJCTRL)
+SLOT_INTERFACE_END
+
+SLOT_INTERFACE_START( neogeo_arc_edge )
+ SLOT_INTERFACE("joy", NEOGEO_JOY_AC)
+SLOT_INTERFACE_END
+
+SLOT_INTERFACE_START( neogeo_arc_edge_fixed )
+ SLOT_INTERFACE("joy", NEOGEO_JOY_AC)
+ SLOT_INTERFACE("dial", NEOGEO_DIAL)
+ SLOT_INTERFACE("irrmaze", NEOGEO_IRRMAZE)
+ SLOT_INTERFACE("kiz4p", NEOGEO_KIZ4P)
+SLOT_INTERFACE_END
+
+SLOT_INTERFACE_START( neogeo_arc_pin15 )
+ SLOT_INTERFACE("mahjong", NEOGEO_MJCTRL)
+SLOT_INTERFACE_END
diff --git a/src/hbmame/bus/neogeo_ctrl/ctrl.h b/src/hbmame/bus/neogeo_ctrl/ctrl.h
new file mode 100644
index 00000000000..e0b8a071a6d
--- /dev/null
+++ b/src/hbmame/bus/neogeo_ctrl/ctrl.h
@@ -0,0 +1,130 @@
+// license:BSD-3-Clause
+// copyright-holders:Fabio Priuli
+/**********************************************************************
+
+ SNK Neo Geo controller port emulation
+
+**********************************************************************/
+
+
+#pragma once
+
+#ifndef __NEOGEO_CONTROL_PORT__
+#define __NEOGEO_CONTROL_PORT__
+
+#include "emu.h"
+
+//**************************************************************************
+// TYPE DEFINITIONS
+//**************************************************************************
+
+class neogeo_control_port_device;
+class neogeo_ctrl_edge_port_device;
+
+// ======================> device_neogeo_control_port_interface
+
+class device_neogeo_control_port_interface : public device_slot_card_interface
+{
+public:
+ // construction/destruction
+ device_neogeo_control_port_interface(const machine_config &mconfig, device_t &device);
+ virtual ~device_neogeo_control_port_interface();
+
+ virtual uint8_t read_ctrl() { return 0xff; };
+ virtual uint8_t read_start_sel() { return 0xff; };
+ virtual void write_ctrlsel(uint8_t data) { };
+
+protected:
+ neogeo_control_port_device *m_port;
+};
+
+// ======================> neogeo_control_port_device
+
+class neogeo_control_port_device : public device_t,
+ public device_slot_interface
+{
+public:
+ // construction/destruction
+ neogeo_control_port_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ virtual ~neogeo_control_port_device();
+
+ uint8_t read_ctrl();
+ uint8_t read_start_sel();
+ void write_ctrlsel(uint8_t data);
+ DECLARE_READ8_MEMBER( ctrl_r ) { return read_ctrl(); }
+
+protected:
+ // device-level overrides
+ virtual void device_start() override;
+
+ device_neogeo_control_port_interface *m_device;
+};
+
+
+// ======================> device_neogeo_ctrl_edge_interface
+
+class device_neogeo_ctrl_edge_interface : public device_slot_card_interface
+{
+public:
+ // construction/destruction
+ device_neogeo_ctrl_edge_interface(const machine_config &mconfig, device_t &device);
+ virtual ~device_neogeo_ctrl_edge_interface();
+
+ virtual uint8_t read_start_sel() { return 0xff; }
+ virtual DECLARE_READ8_MEMBER( in0_r ) { return 0xff; }
+ virtual DECLARE_READ8_MEMBER( in1_r ) { return 0xff; }
+ virtual void write_ctrlsel(uint8_t data) { }
+
+protected:
+ neogeo_ctrl_edge_port_device *m_port;
+};
+
+// ======================> neogeo_ctrl_edge_port_device
+
+class neogeo_ctrl_edge_port_device : public device_t,
+ public device_slot_interface
+{
+public:
+ // construction/destruction
+ neogeo_ctrl_edge_port_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ virtual ~neogeo_ctrl_edge_port_device();
+
+ uint8_t read_start_sel();
+ DECLARE_READ8_MEMBER( in0_r );
+ DECLARE_READ8_MEMBER( in1_r );
+ void write_ctrlsel(uint8_t data);
+
+protected:
+ // device-level overrides
+ virtual void device_start() override;
+
+ device_neogeo_ctrl_edge_interface *m_device;
+};
+
+
+// device type definition
+DECLARE_DEVICE_TYPE(NEOGEO_CONTROL_PORT, neogeo_control_port_device)
+DECLARE_DEVICE_TYPE(NEOGEO_CTRL_EDGE_CONNECTOR, neogeo_ctrl_edge_port_device)
+
+
+//**************************************************************************
+// INTERFACE CONFIGURATION MACROS
+//**************************************************************************
+
+#define MCFG_NEOGEO_CONTROL_PORT_ADD(_tag, _slot_intf, _def_slot, _fixed) \
+ MCFG_DEVICE_ADD(_tag, NEOGEO_CONTROL_PORT, 0) \
+ MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, _fixed)
+
+#define MCFG_NEOGEO_CONTROL_EDGE_CONNECTOR_ADD(_tag, _slot_intf, _def_slot, _fixed) \
+ MCFG_DEVICE_ADD(_tag, NEOGEO_CTRL_EDGE_CONNECTOR, 0) \
+ MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, _fixed)
+
+
+
+SLOT_INTERFACE_EXTERN( neogeo_controls );
+SLOT_INTERFACE_EXTERN( neogeo_arc_edge );
+SLOT_INTERFACE_EXTERN( neogeo_arc_edge_fixed );
+SLOT_INTERFACE_EXTERN( neogeo_arc_pin15 );
+
+
+#endif
diff --git a/src/hbmame/bus/neogeo_ctrl/dial.cpp b/src/hbmame/bus/neogeo_ctrl/dial.cpp
new file mode 100644
index 00000000000..bf3dc8526aa
--- /dev/null
+++ b/src/hbmame/bus/neogeo_ctrl/dial.cpp
@@ -0,0 +1,131 @@
+// license:BSD-3-Clause
+// copyright-holders:Fabio Priuli
+/**********************************************************************
+
+ SNK Neo Geo Dial Controller emulation
+
+**********************************************************************/
+
+#include "dial.h"
+
+//**************************************************************************
+// DEVICE DEFINITIONS
+//**************************************************************************
+
+DEFINE_DEVICE_TYPE(NEOGEO_DIAL, neogeo_dial_device, "neogeo_dial", "SNK Neo Geo Dial Controller")
+
+
+static INPUT_PORTS_START( neogeo_dial )
+ PORT_START("JOY1")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1)
+ PORT_BIT( 0x90, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) /* note it needs it from 0x80 when using paddle */
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
+
+ PORT_START("JOY2")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2)
+ PORT_BIT( 0x90, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) /* note it needs it from 0x80 when using paddle */
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
+
+ PORT_START("DIAL1")
+ PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(20) PORT_PLAYER(1)
+
+ PORT_START("DIAL2")
+ PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(20) PORT_PLAYER(2)
+INPUT_PORTS_END
+
+
+//-------------------------------------------------
+// input_ports - device-specific input ports
+//-------------------------------------------------
+
+ioport_constructor neogeo_dial_device::device_input_ports() const
+{
+ return INPUT_PORTS_NAME( neogeo_dial );
+}
+
+
+//**************************************************************************
+// LIVE DEVICE
+//**************************************************************************
+
+//-------------------------------------------------
+// neogeo_dial_device - constructor
+//-------------------------------------------------
+
+neogeo_dial_device::neogeo_dial_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
+ device_t(mconfig, NEOGEO_DIAL, tag, owner, clock),
+ device_neogeo_ctrl_edge_interface(mconfig, *this),
+ m_joy1(*this, "JOY1"),
+ m_joy2(*this, "JOY2"),
+ m_dial1(*this, "DIAL1"),
+ m_dial2(*this, "DIAL2")
+{
+}
+
+
+//-------------------------------------------------
+// device_start - device-specific startup
+//-------------------------------------------------
+
+void neogeo_dial_device::device_start()
+{
+ save_item(NAME(m_ctrl_sel));
+}
+
+
+//-------------------------------------------------
+// device_reset - device-specific reset
+//-------------------------------------------------
+
+void neogeo_dial_device::device_reset()
+{
+ m_ctrl_sel = 0;
+}
+
+
+//-------------------------------------------------
+// in0_r
+//-------------------------------------------------
+
+READ8_MEMBER(neogeo_dial_device::in0_r)
+{
+ uint8_t res = 0;
+ if (m_ctrl_sel & 0x01)
+ res = m_joy1->read();
+ else
+ res = m_dial1->read();
+
+ return res;
+}
+
+//-------------------------------------------------
+// in1_r
+//-------------------------------------------------
+
+READ8_MEMBER(neogeo_dial_device::in1_r)
+{
+ uint8_t res = 0;
+ if (m_ctrl_sel & 0x01)
+ res = m_joy2->read();
+ else
+ res = m_dial2->read();
+
+ return res;
+}
+
+//-------------------------------------------------
+// write_ctrlsel
+//-------------------------------------------------
+
+void neogeo_dial_device::write_ctrlsel(uint8_t data)
+{
+ m_ctrl_sel = data;
+}
diff --git a/src/hbmame/bus/neogeo_ctrl/dial.h b/src/hbmame/bus/neogeo_ctrl/dial.h
new file mode 100644
index 00000000000..06850e1c66d
--- /dev/null
+++ b/src/hbmame/bus/neogeo_ctrl/dial.h
@@ -0,0 +1,58 @@
+// license:BSD-3-Clause
+// copyright-holders:Fabio Priuli
+/**********************************************************************
+
+ SNK Neo Geo Dial controller emulation
+
+**********************************************************************/
+
+#pragma once
+
+#ifndef __NEOGEO_DIAL__
+#define __NEOGEO_DIAL__
+
+
+#include "emu.h"
+#include "ctrl.h"
+
+//**************************************************************************
+// TYPE DEFINITIONS
+//**************************************************************************
+
+// ======================> neogeo_dial_device
+
+class neogeo_dial_device : public device_t,
+ public device_neogeo_ctrl_edge_interface
+{
+public:
+ // construction/destruction
+ neogeo_dial_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
+ // optional information overrides
+ virtual ioport_constructor device_input_ports() const override;
+
+protected:
+ // device-level overrides
+ virtual void device_start() override;
+ virtual void device_reset() override;
+
+ // device_neogeo_control_port_interface overrides
+ virtual DECLARE_READ8_MEMBER( in0_r ) override;
+ virtual DECLARE_READ8_MEMBER( in1_r ) override;
+ virtual void write_ctrlsel(uint8_t data) override;
+
+private:
+ required_ioport m_joy1;
+ required_ioport m_joy2;
+ required_ioport m_dial1;
+ required_ioport m_dial2;
+ uint8_t m_ctrl_sel;
+};
+
+
+
+// device type definition
+DECLARE_DEVICE_TYPE(NEOGEO_DIAL, neogeo_dial_device)
+
+
+#endif
diff --git a/src/hbmame/bus/neogeo_ctrl/irrmaze.cpp b/src/hbmame/bus/neogeo_ctrl/irrmaze.cpp
new file mode 100644
index 00000000000..4515781fe93
--- /dev/null
+++ b/src/hbmame/bus/neogeo_ctrl/irrmaze.cpp
@@ -0,0 +1,113 @@
+// license:BSD-3-Clause
+// copyright-holders:Fabio Priuli
+/**********************************************************************
+
+ SNK Neo Geo Irritation Maze Analog Controller emulation
+
+**********************************************************************/
+
+#include "irrmaze.h"
+
+//**************************************************************************
+// DEVICE DEFINITIONS
+//**************************************************************************
+
+DEFINE_DEVICE_TYPE(NEOGEO_IRRMAZE, neogeo_irrmaze_device, "neogeo_irrmaze", "SNK Neo Geo Irritating Maze Analog Controller")
+
+
+static INPUT_PORTS_START( neogeo_irrmaze )
+ PORT_START("BUTTONS")
+ PORT_BIT( 0x0f, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
+
+ PORT_START("TRACK_X")
+ PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X ) PORT_SENSITIVITY(10) PORT_KEYDELTA(20) PORT_REVERSE
+
+ PORT_START("TRACK_Y")
+ PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(10) PORT_KEYDELTA(20) PORT_REVERSE
+INPUT_PORTS_END
+
+
+//-------------------------------------------------
+// input_ports - device-specific input ports
+//-------------------------------------------------
+
+ioport_constructor neogeo_irrmaze_device::device_input_ports() const
+{
+ return INPUT_PORTS_NAME( neogeo_irrmaze );
+}
+
+
+//**************************************************************************
+// LIVE DEVICE
+//**************************************************************************
+
+//-------------------------------------------------
+// neogeo_irrmaze_device - constructor
+//-------------------------------------------------
+
+neogeo_irrmaze_device::neogeo_irrmaze_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
+ device_t(mconfig, NEOGEO_IRRMAZE, tag, owner, clock),
+ device_neogeo_ctrl_edge_interface(mconfig, *this),
+ m_tx(*this, "TRACK_X"),
+ m_ty(*this, "TRACK_Y"),
+ m_buttons(*this, "BUTTONS")
+{
+}
+
+
+//-------------------------------------------------
+// device_start - device-specific startup
+//-------------------------------------------------
+
+void neogeo_irrmaze_device::device_start()
+{
+ save_item(NAME(m_ctrl_sel));
+}
+
+
+//-------------------------------------------------
+// device_reset - device-specific reset
+//-------------------------------------------------
+
+void neogeo_irrmaze_device::device_reset()
+{
+ m_ctrl_sel = 0;
+}
+
+
+//-------------------------------------------------
+// in0_r
+//-------------------------------------------------
+
+READ8_MEMBER(neogeo_irrmaze_device::in0_r)
+{
+ uint8_t res = 0;
+ if (m_ctrl_sel & 0x01)
+ res = m_ty->read();
+ else
+ res = m_tx->read();
+
+ return res;
+}
+
+//-------------------------------------------------
+// in1_r
+//-------------------------------------------------
+
+READ8_MEMBER(neogeo_irrmaze_device::in1_r)
+{
+ return m_buttons->read();
+}
+
+//-------------------------------------------------
+// write_ctrlsel
+//-------------------------------------------------
+
+void neogeo_irrmaze_device::write_ctrlsel(uint8_t data)
+{
+ m_ctrl_sel = data;
+}
diff --git a/src/hbmame/bus/neogeo_ctrl/irrmaze.h b/src/hbmame/bus/neogeo_ctrl/irrmaze.h
new file mode 100644
index 00000000000..dddb84f2785
--- /dev/null
+++ b/src/hbmame/bus/neogeo_ctrl/irrmaze.h
@@ -0,0 +1,57 @@
+// license:BSD-3-Clause
+// copyright-holders:Fabio Priuli
+/**********************************************************************
+
+ SNK Neo Geo Dial controller emulation
+
+**********************************************************************/
+
+#pragma once
+
+#ifndef __NEOGEO_IRRMAZE__
+#define __NEOGEO_IRRMAZE__
+
+
+#include "emu.h"
+#include "ctrl.h"
+
+//**************************************************************************
+// TYPE DEFINITIONS
+//**************************************************************************
+
+// ======================> neogeo_dial_device
+
+class neogeo_irrmaze_device : public device_t,
+ public device_neogeo_ctrl_edge_interface
+{
+public:
+ // construction/destruction
+ neogeo_irrmaze_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
+ // optional information overrides
+ virtual ioport_constructor device_input_ports() const override;
+
+protected:
+ // device-level overrides
+ virtual void device_start() override;
+ virtual void device_reset() override;
+
+ // device_neogeo_control_port_interface overrides
+ virtual DECLARE_READ8_MEMBER( in0_r ) override;
+ virtual DECLARE_READ8_MEMBER( in1_r ) override;
+ virtual void write_ctrlsel(uint8_t data) override;
+
+private:
+ required_ioport m_tx;
+ required_ioport m_ty;
+ required_ioport m_buttons;
+ uint8_t m_ctrl_sel;
+};
+
+
+
+// device type definition
+DECLARE_DEVICE_TYPE(NEOGEO_IRRMAZE, neogeo_irrmaze_device)
+
+
+#endif
diff --git a/src/hbmame/bus/neogeo_ctrl/joystick.cpp b/src/hbmame/bus/neogeo_ctrl/joystick.cpp
new file mode 100644
index 00000000000..6fb092f79dd
--- /dev/null
+++ b/src/hbmame/bus/neogeo_ctrl/joystick.cpp
@@ -0,0 +1,205 @@
+// license:BSD-3-Clause
+// copyright-holders:Fabio Priuli
+/**********************************************************************
+
+ SNK Neo Geo Joystick emulation
+
+**********************************************************************/
+
+#include "joystick.h"
+
+
+
+/**********************************************************************
+
+ Implementation through the 15-pin controller port (used by AES)
+
+ **********************************************************************/
+
+
+//**************************************************************************
+// DEVICE DEFINITIONS
+//**************************************************************************
+
+DEFINE_DEVICE_TYPE(NEOGEO_JOY, neogeo_joystick_device, "neogeo_joy", "SNK Neo Geo Joystick")
+
+
+static INPUT_PORTS_START( neogeo_joy )
+ PORT_START("JOY")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP )
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN )
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT )
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT )
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON4 )
+
+ PORT_START("START_SELECT")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START )
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SELECT )
+INPUT_PORTS_END
+
+
+//-------------------------------------------------
+// input_ports - device-specific input ports
+//-------------------------------------------------
+
+ioport_constructor neogeo_joystick_device::device_input_ports() const
+{
+ return INPUT_PORTS_NAME( neogeo_joy );
+}
+
+
+//**************************************************************************
+// LIVE DEVICE
+//**************************************************************************
+
+//-------------------------------------------------
+// neogeo_joystick_device - constructor
+//-------------------------------------------------
+
+neogeo_joystick_device::neogeo_joystick_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
+ device_t(mconfig, NEOGEO_JOY, tag, owner, clock),
+ device_neogeo_control_port_interface(mconfig, *this),
+ m_joy(*this, "JOY"),
+ m_ss(*this, "START_SELECT")
+{
+}
+
+
+//-------------------------------------------------
+// device_start - device-specific startup
+//-------------------------------------------------
+
+void neogeo_joystick_device::device_start()
+{
+}
+
+
+//-------------------------------------------------
+// device_reset - device-specific reset
+//-------------------------------------------------
+
+void neogeo_joystick_device::device_reset()
+{
+}
+
+
+//-------------------------------------------------
+// read_ctrl
+//-------------------------------------------------
+
+uint8_t neogeo_joystick_device::read_ctrl()
+{
+ return m_joy->read();
+}
+
+//-------------------------------------------------
+// read_start_sel
+//-------------------------------------------------
+
+uint8_t neogeo_joystick_device::read_start_sel()
+{
+ return m_ss->read();
+}
+
+
+
+/**********************************************************************
+
+ Implementation through the edge connector (used by MVS) and
+ connecting two controllers
+
+ **********************************************************************/
+
+//**************************************************************************
+// DEVICE DEFINITIONS
+//**************************************************************************
+
+DEFINE_DEVICE_TYPE(NEOGEO_JOY_AC, neogeo_joy_ac_device, "neogeo_joyac", "SNK Neo Geo Arcade Joystick")
+
+
+static INPUT_PORTS_START( neogeo_joy_ac )
+ PORT_START("JOY1")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1)
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
+ 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("JOY2")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) 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_BUTTON3 ) PORT_PLAYER(2)
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2)
+INPUT_PORTS_END
+
+
+//-------------------------------------------------
+// input_ports - device-specific input ports
+//-------------------------------------------------
+
+ioport_constructor neogeo_joy_ac_device::device_input_ports() const
+{
+ return INPUT_PORTS_NAME( neogeo_joy_ac );
+}
+
+//**************************************************************************
+// LIVE DEVICE
+//**************************************************************************
+
+//-------------------------------------------------
+// neogeo_joy_ac_device / neogeo_joystick_device - constructor
+//-------------------------------------------------
+
+neogeo_joy_ac_device::neogeo_joy_ac_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
+ device_t(mconfig, NEOGEO_JOY_AC, tag, owner, clock),
+ device_neogeo_ctrl_edge_interface(mconfig, *this),
+ m_joy1(*this, "JOY1"),
+ m_joy2(*this, "JOY2")
+{
+}
+
+//-------------------------------------------------
+// device_start - device-specific startup
+//-------------------------------------------------
+
+void neogeo_joy_ac_device::device_start()
+{
+}
+
+
+//-------------------------------------------------
+// device_reset - device-specific reset
+//-------------------------------------------------
+
+void neogeo_joy_ac_device::device_reset()
+{
+}
+
+
+//-------------------------------------------------
+// in0_r
+//-------------------------------------------------
+
+READ8_MEMBER(neogeo_joy_ac_device::in0_r)
+{
+ return m_joy1->read();
+}
+
+//-------------------------------------------------
+// in1_r
+//-------------------------------------------------
+
+READ8_MEMBER(neogeo_joy_ac_device::in1_r)
+{
+ return m_joy2->read();
+}
diff --git a/src/hbmame/bus/neogeo_ctrl/joystick.h b/src/hbmame/bus/neogeo_ctrl/joystick.h
new file mode 100644
index 00000000000..9d5c94d4b22
--- /dev/null
+++ b/src/hbmame/bus/neogeo_ctrl/joystick.h
@@ -0,0 +1,81 @@
+// license:BSD-3-Clause
+// copyright-holders:Fabio Priuli
+/**********************************************************************
+
+ SNK Neo Geo Joystick emulation
+
+**********************************************************************/
+
+#pragma once
+
+#ifndef __NEOGEO_JOYSTICK__
+#define __NEOGEO_JOYSTICK__
+
+
+#include "emu.h"
+#include "ctrl.h"
+
+//**************************************************************************
+// TYPE DEFINITIONS
+//**************************************************************************
+
+// ======================> neogeo_joystick_device
+
+class neogeo_joystick_device : public device_t,
+ public device_neogeo_control_port_interface
+{
+public:
+ // construction/destruction
+ neogeo_joystick_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
+ // optional information overrides
+ virtual ioport_constructor device_input_ports() const override;
+
+protected:
+ // device-level overrides
+ virtual void device_start() override;
+ virtual void device_reset() override;
+
+ // device_neogeo_control_port_interface overrides
+ virtual uint8_t read_ctrl() override;
+ virtual uint8_t read_start_sel() override;
+
+private:
+ required_ioport m_joy;
+ required_ioport m_ss;
+};
+
+
+// ======================> neogeo_joy_ac_device
+
+class neogeo_joy_ac_device : public device_t,
+ public device_neogeo_ctrl_edge_interface
+{
+public:
+ // construction/destruction
+ neogeo_joy_ac_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
+ // optional information overrides
+ virtual ioport_constructor device_input_ports() const override;
+
+protected:
+ // device-level overrides
+ virtual void device_start() override;
+ virtual void device_reset() override;
+
+ // device_neogeo_ctrl_edge_interface overrides
+ virtual DECLARE_READ8_MEMBER( in0_r ) override;
+ virtual DECLARE_READ8_MEMBER( in1_r ) override;
+
+private:
+ required_ioport m_joy1;
+ required_ioport m_joy2;
+};
+
+
+// device type definition
+DECLARE_DEVICE_TYPE(NEOGEO_JOY, neogeo_joystick_device)
+DECLARE_DEVICE_TYPE(NEOGEO_JOY_AC, neogeo_joy_ac_device)
+
+
+#endif
diff --git a/src/hbmame/bus/neogeo_ctrl/kizuna4p.cpp b/src/hbmame/bus/neogeo_ctrl/kizuna4p.cpp
new file mode 100644
index 00000000000..2f81ee28153
--- /dev/null
+++ b/src/hbmame/bus/neogeo_ctrl/kizuna4p.cpp
@@ -0,0 +1,171 @@
+// license:BSD-3-Clause
+// copyright-holders:Fabio Priuli
+/**********************************************************************
+
+ SNK Neo Geo Kizuna 4Players Controller emulation
+
+**********************************************************************/
+
+#include "kizuna4p.h"
+
+//**************************************************************************
+// DEVICE DEFINITIONS
+//**************************************************************************
+
+DEFINE_DEVICE_TYPE(NEOGEO_KIZ4P, neogeo_kizuna4p_device, "neogeo_kiz4p", "SNK Neo Geo Kizuna 4P Controller")
+
+
+static INPUT_PORTS_START( neogeo_kiz4p )
+ PORT_START("JOY1")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1)
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
+ 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("JOY2")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) 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_BUTTON3 ) PORT_PLAYER(2)
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2)
+
+ PORT_START("JOY3")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(3)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(3)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(3)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(3)
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3)
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3)
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3)
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(3)
+
+ PORT_START("JOY4")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(4)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(4)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(4)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(4)
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4)
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4)
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4)
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(4)
+
+ PORT_START("START13")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START3 )
+
+ PORT_START("START24")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START2 )
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START4 )
+INPUT_PORTS_END
+
+
+//-------------------------------------------------
+// input_ports - device-specific input ports
+//-------------------------------------------------
+
+ioport_constructor neogeo_kizuna4p_device::device_input_ports() const
+{
+ return INPUT_PORTS_NAME( neogeo_kiz4p );
+}
+
+
+//**************************************************************************
+// LIVE DEVICE
+//**************************************************************************
+
+//-------------------------------------------------
+// neogeo_kizuna4p_device - constructor
+//-------------------------------------------------
+
+neogeo_kizuna4p_device::neogeo_kizuna4p_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
+ device_t(mconfig, NEOGEO_KIZ4P, tag, owner, clock),
+ device_neogeo_ctrl_edge_interface(mconfig, *this),
+ m_joy1(*this, "JOY1"),
+ m_joy2(*this, "JOY2"),
+ m_joy3(*this, "JOY3"),
+ m_joy4(*this, "JOY4"),
+ m_ss1(*this, "START13"),
+ m_ss2(*this, "START24")
+{
+}
+
+
+//-------------------------------------------------
+// device_start - device-specific startup
+//-------------------------------------------------
+
+void neogeo_kizuna4p_device::device_start()
+{
+ save_item(NAME(m_ctrl_sel));
+}
+
+
+//-------------------------------------------------
+// device_reset - device-specific reset
+//-------------------------------------------------
+
+void neogeo_kizuna4p_device::device_reset()
+{
+ m_ctrl_sel = 0;
+}
+
+
+//-------------------------------------------------
+// in0_r
+//-------------------------------------------------
+
+READ8_MEMBER(neogeo_kizuna4p_device::in0_r)
+{
+ uint8_t res = 0;
+ if (m_ctrl_sel & 0x01)
+ res = m_joy3->read();
+ else
+ res = m_joy1->read();
+
+ if (m_ctrl_sel & 0x04) res &= ((m_ctrl_sel & 0x01) ? ~0x20 : ~0x10);
+
+ return res;
+}
+
+//-------------------------------------------------
+// in1_r
+//-------------------------------------------------
+
+READ8_MEMBER(neogeo_kizuna4p_device::in1_r)
+{
+ uint8_t res = 0;
+ if (m_ctrl_sel & 0x01)
+ res = m_joy4->read();
+ else
+ res = m_joy2->read();
+
+ if (m_ctrl_sel & 0x04) res &= ((m_ctrl_sel & 0x01) ? ~0x20 : ~0x10);
+
+ return res;
+}
+
+//-------------------------------------------------
+// read_start_sel
+//-------------------------------------------------
+
+uint8_t neogeo_kizuna4p_device::read_start_sel()
+{
+ return (BIT(m_ss1->read(), m_ctrl_sel & 0x01)) | (BIT(m_ss2->read(), m_ctrl_sel & 0x01) << 2);
+}
+
+
+//-------------------------------------------------
+// write_ctrlsel
+//-------------------------------------------------
+
+void neogeo_kizuna4p_device::write_ctrlsel(uint8_t data)
+{
+ m_ctrl_sel = data;
+}
diff --git a/src/hbmame/bus/neogeo_ctrl/kizuna4p.h b/src/hbmame/bus/neogeo_ctrl/kizuna4p.h
new file mode 100644
index 00000000000..3a5fb43f96c
--- /dev/null
+++ b/src/hbmame/bus/neogeo_ctrl/kizuna4p.h
@@ -0,0 +1,61 @@
+// license:BSD-3-Clause
+// copyright-holders:Fabio Priuli
+/**********************************************************************
+
+ SNK Neo Geo Kizuna 4Players controller emulation
+
+**********************************************************************/
+
+#pragma once
+
+#ifndef __NEOGEO_KIZ4P__
+#define __NEOGEO_KIZ4P__
+
+
+#include "emu.h"
+#include "ctrl.h"
+
+//**************************************************************************
+// TYPE DEFINITIONS
+//**************************************************************************
+
+// ======================> neogeo_kizuna4p_device
+
+class neogeo_kizuna4p_device : public device_t,
+ public device_neogeo_ctrl_edge_interface
+{
+public:
+ // construction/destruction
+ neogeo_kizuna4p_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
+ // optional information overrides
+ virtual ioport_constructor device_input_ports() const override;
+
+protected:
+ // device-level overrides
+ virtual void device_start() override;
+ virtual void device_reset() override;
+
+ // device_neogeo_control_port_interface overrides
+ virtual DECLARE_READ8_MEMBER( in0_r ) override;
+ virtual DECLARE_READ8_MEMBER( in1_r ) override;
+ virtual uint8_t read_start_sel() override;
+ virtual void write_ctrlsel(uint8_t data) override;
+
+private:
+ required_ioport m_joy1;
+ required_ioport m_joy2;
+ required_ioport m_joy3;
+ required_ioport m_joy4;
+ required_ioport m_ss1;
+ required_ioport m_ss2;
+ uint8_t m_ctrl_sel;
+};
+
+
+
+// device type definition
+DECLARE_DEVICE_TYPE(NEOGEO_KIZ4P, neogeo_kizuna4p_device)
+
+
+#endif
diff --git a/src/hbmame/bus/neogeo_ctrl/mahjong.cpp b/src/hbmame/bus/neogeo_ctrl/mahjong.cpp
new file mode 100644
index 00000000000..b1ced51efe8
--- /dev/null
+++ b/src/hbmame/bus/neogeo_ctrl/mahjong.cpp
@@ -0,0 +1,171 @@
+// license:BSD-3-Clause
+// copyright-holders:Fabio Priuli
+/**********************************************************************
+
+ SNK Neo Geo Mahjong controller emulation
+
+**********************************************************************/
+
+#include "mahjong.h"
+
+//**************************************************************************
+// DEVICE DEFINITIONS
+//**************************************************************************
+
+DEFINE_DEVICE_TYPE(NEOGEO_MJCTRL_AC, neogeo_mjctrl_ac_device, "neogeo_mjac", "SNK Neo Geo Arcade Mahjong panel")
+DEFINE_DEVICE_TYPE(NEOGEO_MJCTRL, neogeo_mjctrl_device, "neogeo_mjctrl", "SNK Neo Geo Mahjong controller")
+
+
+static INPUT_PORTS_START( neogeo_mj_ac )
+ PORT_START("MJ.0")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_A )
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_B )
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_C )
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_D )
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_E )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_MAHJONG_F )
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_MAHJONG_G )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("MJ.1")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_H )
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_I )
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_J )
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_K )
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_L )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_MAHJONG_M )
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_MAHJONG_N )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON6 )
+
+ // is this actually connected?
+ PORT_START("MJ.2")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP )
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN )
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT )
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT )
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON4 )
+
+ PORT_START("MJ.3")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_PON )
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_CHI )
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_KAN )
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_RON )
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_REACH )
+ 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( neogeo_mj )
+ PORT_INCLUDE( neogeo_mj_ac )
+
+ PORT_START("START_SELECT")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START )
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SELECT )
+INPUT_PORTS_END
+
+
+//-------------------------------------------------
+// input_ports - device-specific input ports
+//-------------------------------------------------
+
+ioport_constructor neogeo_mjctrl_ac_device::device_input_ports() const
+{
+ return INPUT_PORTS_NAME( neogeo_mj_ac );
+}
+
+ioport_constructor neogeo_mjctrl_device::device_input_ports() const
+{
+ return INPUT_PORTS_NAME( neogeo_mj );
+}
+
+
+
+//**************************************************************************
+// LIVE DEVICE
+//**************************************************************************
+
+//-------------------------------------------------
+// neogeo_joystick_device - constructor
+//-------------------------------------------------
+
+neogeo_mjctrl_ac_device::neogeo_mjctrl_ac_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock)
+ : device_t(mconfig, type, tag, owner, clock)
+ , device_neogeo_control_port_interface(mconfig, *this)
+ , m_mjpanel(*this, "MJ.%u", 0)
+{
+}
+
+neogeo_mjctrl_ac_device::neogeo_mjctrl_ac_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : neogeo_mjctrl_ac_device(mconfig, NEOGEO_MJCTRL_AC, tag, owner, clock)
+{
+}
+
+neogeo_mjctrl_device::neogeo_mjctrl_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
+ neogeo_mjctrl_ac_device(mconfig, NEOGEO_MJCTRL, tag, owner, clock),
+ m_ss(*this, "START_SELECT")
+{
+}
+
+
+//-------------------------------------------------
+// device_start - device-specific startup
+//-------------------------------------------------
+
+void neogeo_mjctrl_ac_device::device_start()
+{
+ save_item(NAME(m_ctrl_sel));
+}
+
+
+//-------------------------------------------------
+// device_reset - device-specific reset
+//-------------------------------------------------
+
+void neogeo_mjctrl_ac_device::device_reset()
+{
+ m_ctrl_sel = 0;
+}
+
+
+//-------------------------------------------------
+// read_ctrl
+//-------------------------------------------------
+
+uint8_t neogeo_mjctrl_ac_device::read_ctrl()
+{
+ uint8_t res = 0;
+ switch (m_ctrl_sel)
+ {
+ default:
+ case 0x00: res = 0xff; break;
+ case 0x09: res = m_mjpanel[0]->read(); break;
+ case 0x12: res = m_mjpanel[1]->read(); break;
+ case 0x1b: res = m_mjpanel[2]->read(); break;
+ case 0x24: res = m_mjpanel[3]->read(); break;
+ }
+
+ return res;
+}
+
+//-------------------------------------------------
+// write_ctrlsel
+//-------------------------------------------------
+
+void neogeo_mjctrl_ac_device::write_ctrlsel(uint8_t data)
+{
+ m_ctrl_sel = data;
+}
+
+//-------------------------------------------------
+// read_start_sel
+//-------------------------------------------------
+
+uint8_t neogeo_mjctrl_device::read_start_sel()
+{
+ return m_ss->read();
+}
diff --git a/src/hbmame/bus/neogeo_ctrl/mahjong.h b/src/hbmame/bus/neogeo_ctrl/mahjong.h
new file mode 100644
index 00000000000..a6468d9e0f6
--- /dev/null
+++ b/src/hbmame/bus/neogeo_ctrl/mahjong.h
@@ -0,0 +1,75 @@
+// license:BSD-3-Clause
+// copyright-holders:Fabio Priuli
+/**********************************************************************
+
+ SNK Neo Geo Mahjong controller emulation
+
+**********************************************************************/
+
+#pragma once
+
+#ifndef __NEOGEO_MJCTRL__
+#define __NEOGEO_MJCTRL__
+
+
+#include "emu.h"
+#include "ctrl.h"
+
+//**************************************************************************
+// TYPE DEFINITIONS
+//**************************************************************************
+
+// ======================> neogeo_mjctrl_ac_device
+
+class neogeo_mjctrl_ac_device : public device_t,
+ public device_neogeo_control_port_interface
+{
+public:
+ // construction/destruction
+ neogeo_mjctrl_ac_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
+ neogeo_mjctrl_ac_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
+ // optional information overrides
+ virtual ioport_constructor device_input_ports() const override;
+
+protected:
+ // device-level overrides
+ virtual void device_start() override;
+ virtual void device_reset() override;
+
+ // device_neogeo_control_port_interface overrides
+ virtual uint8_t read_ctrl() override;
+ virtual void write_ctrlsel(uint8_t data) override;
+
+private:
+ required_ioport_array<4> m_mjpanel;
+ uint8_t m_ctrl_sel;
+};
+
+// ======================> neogeo_mjctrl_device
+
+class neogeo_mjctrl_device : public neogeo_mjctrl_ac_device
+{
+public:
+ // construction/destruction
+ neogeo_mjctrl_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
+ // optional information overrides
+ virtual ioport_constructor device_input_ports() const override;
+
+protected:
+
+ // device_neogeo_control_port_interface overrides
+ virtual uint8_t read_start_sel() override;
+
+private:
+ required_ioport m_ss;
+};
+
+
+// device type definition
+DECLARE_DEVICE_TYPE(NEOGEO_MJCTRL, neogeo_mjctrl_device)
+DECLARE_DEVICE_TYPE(NEOGEO_MJCTRL_AC, neogeo_mjctrl_ac_device)
+
+
+#endif
diff --git a/src/hbmame/drivers/1942.cpp b/src/hbmame/drivers/1942.cpp
new file mode 100644
index 00000000000..c7e369c78fe
--- /dev/null
+++ b/src/hbmame/drivers/1942.cpp
@@ -0,0 +1,126 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/1942.cpp"
+
+ROM_START( 1942c64 )
+ ROM_REGION( 0x20000, "maincpu", ROMREGION_ERASEFF )
+ ROM_LOAD( "srb-03.m3", 0x00000, 0x4000, CRC(d9dafcc3) SHA1(a089a9bc55fb7d6d0ac53f91b258396d5d62677a) )
+ ROM_LOAD( "srb-04.m4", 0x04000, 0x4000, CRC(da0cf924) SHA1(856fbb302c9a4ec7850a26ab23dab8467f79bba4) )
+ ROM_LOAD( "srb-05.m5", 0x10000, 0x4000, CRC(d102911c) SHA1(35ba1d82bd901940f61d8619273463d02fc0a952) )
+ ROM_LOAD( "srb-06.m6", 0x14000, 0x2000, CRC(466f8248) SHA1(2ccc8fc59962d3001fbc10e8d2f20a254a74f251) )
+ ROM_LOAD( "srb-07.m7", 0x18000, 0x4000, CRC(0d31038c) SHA1(b588eaf6fddd66ecb2d9832dc197f286f1ccd846) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "1942c64.c11", 0x0000, 0x4000, CRC(4ee7ab6b) SHA1(609d2d9124da47d305c15ee034efd64a73adc1c0) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "sr-02.f2", 0x0000, 0x2000, CRC(6ebca191) SHA1(0dbddadde54a0ab66994c4a8726be05c6ca88a0e) )
+
+ ROM_REGION( 0xc000, "gfx2", 0 )
+ ROM_LOAD( "sr-08.a1", 0x0000, 0x2000, CRC(3884d9eb) SHA1(5cbd9215fa5ba5a61208b383700adc4428521aed) )
+ ROM_LOAD( "sr-09.a2", 0x2000, 0x2000, CRC(999cf6e0) SHA1(5b8b685038ec98b781908b92eb7fb9506db68544) )
+ ROM_LOAD( "sr-10.a3", 0x4000, 0x2000, CRC(8edb273a) SHA1(85fdd4c690ed31e6396e3c16aa02140ee7ea2d61) )
+ ROM_LOAD( "sr-11.a4", 0x6000, 0x2000, CRC(3a2726c3) SHA1(187c92ef591febdcbd1d42ab850e0cbb62c00873) )
+ ROM_LOAD( "sr-12.a5", 0x8000, 0x2000, CRC(1bd3d8bb) SHA1(ef4dce605eb4dc8035985a415315ec61c21419c6) )
+ ROM_LOAD( "sr-13.a6", 0xa000, 0x2000, CRC(658f02c4) SHA1(f087d69e49e38cf3107350cde18fcf85a8fa04f0) )
+
+ ROM_REGION( 0x10000, "gfx3", 0 )
+ ROM_LOAD( "sr-14.l1", 0x00000, 0x4000, CRC(2528bec6) SHA1(29f7719f18faad6bd1ec6735cc24e69168361470) )
+ ROM_LOAD( "sr-15.l2", 0x04000, 0x4000, CRC(f89287aa) SHA1(136fff6d2a4f48a488fc7c620213761459c3ada0) )
+ ROM_LOAD( "sr-16.n1", 0x08000, 0x4000, CRC(024418f8) SHA1(145b8d5d6c8654cd090955a98f6dd8c8dbafe7c1) )
+ ROM_LOAD( "sr-17.n2", 0x0c000, 0x4000, CRC(e2c7e489) SHA1(d4b5d575c021f58f6966df189df94e08c5b3621c) )
+
+ ROM_REGION( 0x0a00, "proms", 0 )
+ ROM_LOAD( "sb-5.e8", 0x0000, 0x0100, CRC(93ab8153) SHA1(a792f24e5c0c3c4a6b436102e7a98199f878ece1) )
+ ROM_LOAD( "sb-6.e9", 0x0100, 0x0100, CRC(8ab44f7d) SHA1(f74680a6a987d74b3acb32e6396f20e127874149) )
+ ROM_LOAD( "sb-7.e10", 0x0200, 0x0100, CRC(f4ade9a4) SHA1(62ad31d31d183cce213b03168daa035083b2f28e) )
+ ROM_LOAD( "sb-0.f1", 0x0300, 0x0100, CRC(6047d91b) SHA1(1ce025f9524c1033e48c5294ee7d360f8bfebe8d) )
+ ROM_LOAD( "sb-4.d6", 0x0400, 0x0100, CRC(4858968d) SHA1(20b5dbcaa1a4081b3139e7e2332d8fe3c9e55ed6) )
+ ROM_LOAD( "sb-8.k3", 0x0500, 0x0100, CRC(f6fad943) SHA1(b0a24ea7805272e8ebf72a99b08907bc00d5f82f) )
+ ROM_LOAD( "sb-2.d1", 0x0600, 0x0100, CRC(8bb8b3df) SHA1(49de2819c4c92057fedcb20425282515d85829aa) )
+ ROM_LOAD( "sb-3.d2", 0x0700, 0x0100, CRC(3b0c99af) SHA1(38f30ac1e48632634e409f328ee3051b987de7ad) )
+ ROM_LOAD( "sb-1.k6", 0x0800, 0x0100, CRC(712ac508) SHA1(5349d722ab6733afdda65f6e0a98322f0d515e86) )
+ ROM_LOAD( "sb-9.m11", 0x0900, 0x0100, CRC(4921635c) SHA1(aee37d6cdc36acf0f11ff5f93e7b16e4b12f6c39) )
+ROM_END
+
+ROM_START( 1942fpa )
+ ROM_REGION( 0x20000, "maincpu", ROMREGION_ERASEFF )
+ ROM_LOAD( "1942fpa.m3", 0x00000, 0x4000, CRC(dcec86c9) SHA1(73ee4ca2d861eaa5805b4b8ff7db05cd6f06650a) )
+ ROM_LOAD( "1942fpa.m4", 0x04000, 0x4000, CRC(cdd75d78) SHA1(6ee714f9d3dd1a0c9404a8e3c8ca96a74c08e1cf) )
+ ROM_LOAD( "srb-05.m5", 0x10000, 0x4000, CRC(d102911c) SHA1(35ba1d82bd901940f61d8619273463d02fc0a952) )
+ ROM_LOAD( "srb-06.m6", 0x14000, 0x2000, CRC(466f8248) SHA1(2ccc8fc59962d3001fbc10e8d2f20a254a74f251) )
+ ROM_LOAD( "srb-07.m7", 0x18000, 0x4000, CRC(0d31038c) SHA1(b588eaf6fddd66ecb2d9832dc197f286f1ccd846) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "sr-01.c11", 0x0000, 0x4000, CRC(bd87f06b) SHA1(821f85cf157f81117eeaba0c3cf0337eac357e58) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "sr-02.f2", 0x0000, 0x2000, CRC(6ebca191) SHA1(0dbddadde54a0ab66994c4a8726be05c6ca88a0e) )
+
+ ROM_REGION( 0xc000, "gfx2", 0 )
+ ROM_LOAD( "sr-08.a1", 0x0000, 0x2000, CRC(3884d9eb) SHA1(5cbd9215fa5ba5a61208b383700adc4428521aed) )
+ ROM_LOAD( "sr-09.a2", 0x2000, 0x2000, CRC(999cf6e0) SHA1(5b8b685038ec98b781908b92eb7fb9506db68544) )
+ ROM_LOAD( "sr-10.a3", 0x4000, 0x2000, CRC(8edb273a) SHA1(85fdd4c690ed31e6396e3c16aa02140ee7ea2d61) )
+ ROM_LOAD( "sr-11.a4", 0x6000, 0x2000, CRC(3a2726c3) SHA1(187c92ef591febdcbd1d42ab850e0cbb62c00873) )
+ ROM_LOAD( "sr-12.a5", 0x8000, 0x2000, CRC(1bd3d8bb) SHA1(ef4dce605eb4dc8035985a415315ec61c21419c6) )
+ ROM_LOAD( "sr-13.a6", 0xa000, 0x2000, CRC(658f02c4) SHA1(f087d69e49e38cf3107350cde18fcf85a8fa04f0) )
+
+ ROM_REGION( 0x10000, "gfx3", 0 )
+ ROM_LOAD( "sr-14.l1", 0x00000, 0x4000, CRC(2528bec6) SHA1(29f7719f18faad6bd1ec6735cc24e69168361470) )
+ ROM_LOAD( "sr-15.l2", 0x04000, 0x4000, CRC(f89287aa) SHA1(136fff6d2a4f48a488fc7c620213761459c3ada0) )
+ ROM_LOAD( "sr-16.n1", 0x08000, 0x4000, CRC(024418f8) SHA1(145b8d5d6c8654cd090955a98f6dd8c8dbafe7c1) )
+ ROM_LOAD( "sr-17.n2", 0x0c000, 0x4000, CRC(e2c7e489) SHA1(d4b5d575c021f58f6966df189df94e08c5b3621c) )
+
+ ROM_REGION( 0x0a00, "proms", 0 )
+ ROM_LOAD( "sb-5.e8", 0x0000, 0x0100, CRC(93ab8153) SHA1(a792f24e5c0c3c4a6b436102e7a98199f878ece1) )
+ ROM_LOAD( "sb-6.e9", 0x0100, 0x0100, CRC(8ab44f7d) SHA1(f74680a6a987d74b3acb32e6396f20e127874149) )
+ ROM_LOAD( "sb-7.e10", 0x0200, 0x0100, CRC(f4ade9a4) SHA1(62ad31d31d183cce213b03168daa035083b2f28e) )
+ ROM_LOAD( "sb-0.f1", 0x0300, 0x0100, CRC(6047d91b) SHA1(1ce025f9524c1033e48c5294ee7d360f8bfebe8d) )
+ ROM_LOAD( "sb-4.d6", 0x0400, 0x0100, CRC(4858968d) SHA1(20b5dbcaa1a4081b3139e7e2332d8fe3c9e55ed6) )
+ ROM_LOAD( "sb-8.k3", 0x0500, 0x0100, CRC(f6fad943) SHA1(b0a24ea7805272e8ebf72a99b08907bc00d5f82f) )
+ ROM_LOAD( "sb-2.d1", 0x0600, 0x0100, CRC(8bb8b3df) SHA1(49de2819c4c92057fedcb20425282515d85829aa) )
+ ROM_LOAD( "sb-3.d2", 0x0700, 0x0100, CRC(3b0c99af) SHA1(38f30ac1e48632634e409f328ee3051b987de7ad) )
+ ROM_LOAD( "sb-1.k6", 0x0800, 0x0100, CRC(712ac508) SHA1(5349d722ab6733afdda65f6e0a98322f0d515e86) )
+ ROM_LOAD( "sb-9.m11", 0x0900, 0x0100, CRC(4921635c) SHA1(aee37d6cdc36acf0f11ff5f93e7b16e4b12f6c39) )
+ROM_END
+
+ROM_START( galagax )
+ ROM_REGION( 0x20000, "maincpu", ROMREGION_ERASEFF )
+ ROM_LOAD( "galagax1.n3", 0x00000, 0x4000, CRC(c78cdc46) SHA1(50ac4ab7a884b8555f15d959dac2b33e317fcd16) )
+ ROM_LOAD( "galagax1.n4", 0x04000, 0x4000, CRC(863f2f49) SHA1(dbe7d13bcaa3919e1be51ba04fbf50f898e5c76e) )
+ ROM_LOAD( "galagax1.n5", 0x10000, 0x4000, CRC(0da115f9) SHA1(0517c60877a8067fb13c61c63a032a3f5ed16a57) )
+ ROM_LOAD( "1-n6.bin", 0x14000, 0x2000, CRC(821c6481) SHA1(06becb6bf8b4bde3a458098498eecad566a87711) )
+ ROM_LOAD( "1-n7.bin", 0x18000, 0x4000, CRC(5df525e1) SHA1(70cd2910e2945db76bd6ebfa0ff09a5efadc2d0b) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "sr-01.c11", 0x0000, 0x4000, CRC(bd87f06b) SHA1(821f85cf157f81117eeaba0c3cf0337eac357e58) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "galagax1.f2", 0x00000, 0x2000, CRC(b3e1862b) SHA1(736fbef1ef15892ba6ea87be5366abf520e3d5fd) )
+
+ ROM_REGION( 0xc000, "gfx2", 0 )
+ ROM_LOAD( "galagax2.a1", 0x00000, 0x2000, CRC(21f3fee2) SHA1(2eed32063b808fae27255e9b026fb92209cfc214) )
+ ROM_LOAD( "galagax2.a2", 0x02000, 0x2000, CRC(5542beae) SHA1(f37fad84fbeb2f98092bdb2f2a3bc80804392e07) )
+ ROM_LOAD( "galagax2.a3", 0x04000, 0x2000, CRC(118e87ec) SHA1(0b79eee01bd6aef2e85409de16ff9cb032c457cb) )
+ ROM_LOAD( "galagax2.a4", 0x06000, 0x2000, CRC(fc3db895) SHA1(bc469fd6f5634eca77728a24e4e6d83a2074c780) )
+ ROM_LOAD( "galagax2.a5", 0x08000, 0x2000, CRC(4a336de1) SHA1(8359abb42fc9f774350524a7fbf561e6c8799822) )
+ ROM_LOAD( "galagax2.a6", 0x0a000, 0x2000, CRC(1d4a69c9) SHA1(34d3ea5e7666fee1ecd0ac763f3114d9c8d60806) )
+
+ ROM_REGION( 0x10000, "gfx3", 0 )
+ ROM_LOAD( "galagax2.l1", 0x00000, 0x4000, CRC(8408b932) SHA1(bea9d62156c566e7a3ae296e3e411d5542b7544b) )
+ ROM_LOAD( "galagax2.l2", 0x04000, 0x4000, CRC(2218cb80) SHA1(5dd05b59a55804bedf637abb339188e9c9e6037a) )
+ ROM_LOAD( "galagax2.n1", 0x08000, 0x4000, CRC(4d5ed5e5) SHA1(a66e979d8a6ed9cae77c8415130c5f17f8149eda) )
+ ROM_LOAD( "galagax2.n2", 0x0c000, 0x4000, CRC(8f4a1688) SHA1(69bab8f167a47eee34dadf56b1727b414f3e6579) )
+
+ ROM_REGION( 0x0600, "proms", 0 )
+ ROM_LOAD( "sb-5.e8", 0x0000, 0x0100, CRC(93ab8153) SHA1(a792f24e5c0c3c4a6b436102e7a98199f878ece1) )
+ ROM_LOAD( "sb-6.e9", 0x0100, 0x0100, CRC(8ab44f7d) SHA1(f74680a6a987d74b3acb32e6396f20e127874149) )
+ ROM_LOAD( "sb-7.e10", 0x0200, 0x0100, CRC(f4ade9a4) SHA1(62ad31d31d183cce213b03168daa035083b2f28e) )
+ ROM_LOAD( "sb-0.f1", 0x0300, 0x0100, CRC(6047d91b) SHA1(1ce025f9524c1033e48c5294ee7d360f8bfebe8d) )
+ ROM_LOAD( "sb-4.d6", 0x0400, 0x0100, CRC(4858968d) SHA1(20b5dbcaa1a4081b3139e7e2332d8fe3c9e55ed6) )
+ ROM_LOAD( "sb-8.k3", 0x0500, 0x0100, CRC(f6fad943) SHA1(b0a24ea7805272e8ebf72a99b08907bc00d5f82f) )
+ROM_END
+
+GAME( 2015, 1942c64, 1942, 1942, 1942, _1942_state, 1942, ROT270, "Minwah", "1942 with C64 music", MACHINE_SUPPORTS_SAVE )
+GAME( 2015, 1942fpa, 1942, 1942, 1942, _1942_state, 1942, ROT270, "cmonkey", "1942 with attract mode in free play", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, galagax, 1942, 1942, 1942, _1942_state, 1942, ROT270, "Jerky and Chris Moore", "Galaga X (1942 hack)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/1943.cpp b/src/hbmame/drivers/1943.cpp
new file mode 100644
index 00000000000..f2d25984e94
--- /dev/null
+++ b/src/hbmame/drivers/1943.cpp
@@ -0,0 +1,63 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/1943.cpp"
+
+ROM_START( 1943h )
+ ROM_REGION( 0x30000, "maincpu", 0 )
+ ROM_LOAD( "bme01addontext.12d", 0x00000, 0x08000, CRC(36ab7c07) SHA1(baa9342c6c509b96e3c28a79284300707461a0fc) )
+ ROM_LOAD( "bme02.13d", 0x10000, 0x10000, CRC(073fc57c) SHA1(6824fa387badd3c420f5c9e2b68159ac8a3aaec7) )
+ ROM_LOAD( "bme03.14d", 0x20000, 0x10000, CRC(835822c2) SHA1(2c2fad13f062069efa7721abb9d807fb5a7625b4) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "bm05.4k", 0x00000, 0x8000, CRC(ee2bd2d7) SHA1(4d2d019a9f8452fbbb247e893280568a2e86073e) )
+
+ ROM_REGION( 0x10000, "mcu", 0 )
+ ROM_LOAD( "bm.7k", 0x00000, 0x10000 , NO_DUMP )
+
+ ROM_REGION( 0x8000, "gfx1", 0 )
+ ROM_LOAD( "bm04.5h", 0x00000, 0x8000, CRC(46cb9d3d) SHA1(96fd0e714b91fe13a2ca0d185ada9e4b4baa0c0b) )
+
+ ROM_REGION( 0x40000, "gfx2", 0 )
+ ROM_LOAD( "bm15.10f", 0x00000, 0x8000, CRC(6b1a0443) SHA1(32337c840ccd6815fd5844c194365c58d708f6dc) )
+ ROM_LOAD( "bm16.11f", 0x08000, 0x8000, CRC(23c908c2) SHA1(42b83ff5781be9181802a21ff1b23c17ab1bc5a2) )
+ ROM_LOAD( "bm17.12f", 0x10000, 0x8000, CRC(46bcdd07) SHA1(38feda668be25d1adc04aa36afc73b07c1545f89) )
+ ROM_LOAD( "bm18.14f", 0x18000, 0x8000, CRC(e6ae7ba0) SHA1(959c306dc28b9be2adc54b3d46312d26764c7b8b) )
+ ROM_LOAD( "bm19.10j", 0x20000, 0x8000, CRC(868ababc) SHA1(1c7be905f53c63bad25fbbd9b3cf82d2c7749bc3) )
+ ROM_LOAD( "bm20.11j", 0x28000, 0x8000, CRC(0917e5d4) SHA1(62dd277bc1fa54cfe168ae2380bc147bd17f4205) )
+ ROM_LOAD( "bm21.12j", 0x30000, 0x8000, CRC(9bfb0d89) SHA1(f1bae7ec46edcf46c7af84c054e89b322f8c8972) )
+ ROM_LOAD( "bm22.14j", 0x38000, 0x8000, CRC(04f3c274) SHA1(932780c04abe285e1ec67b726b145175f73eafe0) )
+
+ ROM_REGION( 0x10000, "gfx3", 0 )
+ ROM_LOAD( "bm24.14k", 0x00000, 0x8000, CRC(11134036) SHA1(88da112ab9fc7e0d8f0e901f273715b950ae588c) )
+ ROM_LOAD( "bm25.14l", 0x08000, 0x8000, CRC(092cf9c1) SHA1(19fe3c714b1d52cbb21dea25cdee5af841f525db) )
+
+ ROM_REGION( 0x40000, "gfx4", 0 )
+ ROM_LOAD( "bm06.10a", 0x00000, 0x8000, CRC(97acc8af) SHA1(c9fa07cb61f6905408b355edabfe453fb652ff0d) )
+ ROM_LOAD( "bm07.11a", 0x08000, 0x8000, CRC(d78f7197) SHA1(6367c7e80e80d4a0d33d7840b5c843c63c80123e) )
+ ROM_LOAD( "bm08.12a", 0x10000, 0x8000, CRC(1a626608) SHA1(755c27a07728fd686168e9d9e4dee3d8f274892a) )
+ ROM_LOAD( "bm09.14a", 0x18000, 0x8000, CRC(92408400) SHA1(3ab299bad1ba115efead53ebd92254abe7a092ba) )
+ ROM_LOAD( "bm10.10c", 0x20000, 0x8000, CRC(8438a44a) SHA1(873629b00cf3f6d8976a7fdafe63cd16e47b7491) )
+ ROM_LOAD( "bm11.11c", 0x28000, 0x8000, CRC(6c69351d) SHA1(c213d5c3e76a5749bc32539604716dcef6dcb694) )
+ ROM_LOAD( "bm12.12c", 0x30000, 0x8000, CRC(5e7efdb7) SHA1(fef271a38dc1a9e45a0c6e27e28e713c77c8f8c9) )
+ ROM_LOAD( "bm13.14c", 0x38000, 0x8000, CRC(1143829a) SHA1(2b3a65e354a205c05a87f783e9938b64bc62396f) )
+
+ ROM_REGION( 0x10000, "gfx5", 0 )
+ ROM_LOAD( "bm14.5f", 0x0000, 0x8000, CRC(4d3c6401) SHA1(ce4f6dbf8fa030ad45cbb5afd58df27fed2d4618) )
+ ROM_LOAD( "bm23.8k", 0x8000, 0x8000, CRC(a52aecbd) SHA1(45b0283d84d394c16c35802463ca95d70d1062d4) )
+
+ ROM_REGION( 0x0c00, "proms", 0 )
+ ROM_LOAD( "bm1.12a", 0x0000, 0x0100, CRC(74421f18) SHA1(5b8b59f6f4e5ad358611de50608f47f41a5b0e51) )
+ ROM_LOAD( "bm2.13a", 0x0100, 0x0100, CRC(ac27541f) SHA1(1796c4c9041dfe28e6319576f21df1dbcb8d12bf) )
+ ROM_LOAD( "bm3.14a", 0x0200, 0x0100, CRC(251fb6ff) SHA1(d1118159b3d429d841e4efa938728ebedadd7ec5) )
+ ROM_LOAD( "bm5.7f", 0x0300, 0x0100, CRC(206713d0) SHA1(fa609f6d675af18c379838583505724d28bcff0e) )
+ ROM_LOAD( "bm10.7l", 0x0400, 0x0100, CRC(33c2491c) SHA1(13da924e4b182759c4aae49034f3a7cbe556ea65) )
+ ROM_LOAD( "bm9.6l", 0x0500, 0x0100, CRC(aeea4af7) SHA1(98f4570ee061e9aa58d8ed2d2f8ae59ce2ec5795) )
+ ROM_LOAD( "bm12.12m", 0x0600, 0x0100, CRC(c18aa136) SHA1(684f04d9a5b94ae1db5fb95763e65271f4cf8e01) )
+ ROM_LOAD( "bm11.12l", 0x0700, 0x0100, CRC(405aae37) SHA1(94a06f81b775c4e49d57d42fc064d3072a253bbd) )
+ ROM_LOAD( "bm8.8c", 0x0800, 0x0100, CRC(c2010a9e) SHA1(be9852500209066e2f0ff2770e0c217d1636a0b5) )
+ ROM_LOAD( "bm7.7c", 0x0900, 0x0100, CRC(b56f30c3) SHA1(9f5e6db464d21457a33ec8bdfdff069632b791db) )
+ ROM_LOAD( "bm4.12c", 0x0a00, 0x0100, CRC(91a8a2e1) SHA1(9583c87eff876f04bc2ccf7218cd8081f1bcdb94) )
+ ROM_LOAD( "bm6.4b", 0x0b00, 0x0100, CRC(0eaf5158) SHA1(bafd4108708f66cd7b280e47152b108f3e254fc9) )
+ROM_END
+
+GAME( 1987, 1943h, 1943, 1943, 1943, _1943_state, 1943, ROT270, "Capcom", "1943: The Battle of Midway (US, Rev C) (hacked)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/arkanoid.cpp b/src/hbmame/drivers/arkanoid.cpp
new file mode 100644
index 00000000000..1a757d17819
--- /dev/null
+++ b/src/hbmame/drivers/arkanoid.cpp
@@ -0,0 +1,73 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/arkanoid.cpp"
+
+ROM_START( akblc2dx )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "akblc2dx.bin", 0x0000, 0x10000, CRC(e8ca9820) SHA1(ac97ebf285d1b8dd216dfc7024f7630fceac50b6) )
+
+ ROM_REGION( 0x18000, "gfx1", 0 )
+ ROM_LOAD( "a75-03.ic64", 0x00000, 0x8000, CRC(038b74ba) SHA1(ac053cc4908b4075f918748b89570e07a0ba5116) )
+ ROM_LOAD( "a75-04.ic63", 0x08000, 0x8000, CRC(71fae199) SHA1(5d253c46ccf4cd2976a5fb8b8713f0f345443d06) )
+ ROM_LOAD( "a75-05.ic62", 0x10000, 0x8000, CRC(c76374e2) SHA1(7520dd48de20db60a2038f134dcaa454988e7874) )
+
+ ROM_REGION( 0x0600, "proms", 0 )
+ ROM_LOAD( "a75-07.ic24", 0x0000, 0x0200, CRC(0af8b289) SHA1(6bc589e8a609b4cf450aebedc8ce02d5d45c970f) )
+ ROM_LOAD( "a75-08.ic23", 0x0200, 0x0200, CRC(abb002fb) SHA1(c14f56b8ef103600862e7930709d293b0aa97a73) )
+ ROM_LOAD( "a75-09.ic22", 0x0400, 0x0200, CRC(a7c6c277) SHA1(adaa003dcd981576ea1cc5f697d709b2d6b2ea29) )
+ROM_END
+
+ROM_START( akgcdx )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "akgcdx.bin", 0x0000, 0x10000, CRC(6e6ba560) SHA1(477a68caa1a9d0ce6e21f1164f8ec01434011308) )
+
+ ROM_REGION( 0x18000, "gfx1", 0 )
+ ROM_LOAD( "a75-03.ic64", 0x00000, 0x8000, CRC(038b74ba) SHA1(ac053cc4908b4075f918748b89570e07a0ba5116) )
+ ROM_LOAD( "a75-04.ic63", 0x08000, 0x8000, CRC(71fae199) SHA1(5d253c46ccf4cd2976a5fb8b8713f0f345443d06) )
+ ROM_LOAD( "a75-05.ic62", 0x10000, 0x8000, CRC(c76374e2) SHA1(7520dd48de20db60a2038f134dcaa454988e7874) )
+
+ ROM_REGION( 0x0600, "proms", 0 )
+ ROM_LOAD( "a75-07.ic24", 0x0000, 0x0200, CRC(0af8b289) SHA1(6bc589e8a609b4cf450aebedc8ce02d5d45c970f) )
+ ROM_LOAD( "a75-08.ic23", 0x0200, 0x0200, CRC(abb002fb) SHA1(c14f56b8ef103600862e7930709d293b0aa97a73) )
+ ROM_LOAD( "a75-09.ic22", 0x0400, 0x0200, CRC(a7c6c277) SHA1(adaa003dcd981576ea1cc5f697d709b2d6b2ea29) )
+ROM_END
+
+ROM_START( aktaytdx )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "aktaytdx.bin", 0x0000, 0x10000, CRC(8606f0ee) SHA1(d1edb58a9b29a354023484089d0ca5f32e9985e4) )
+
+ ROM_REGION( 0x18000, "gfx1", 0 )
+ ROM_LOAD( "a75-03.ic64", 0x00000, 0x8000, CRC(038b74ba) SHA1(ac053cc4908b4075f918748b89570e07a0ba5116) )
+ ROM_LOAD( "a75-04.ic63", 0x08000, 0x8000, CRC(71fae199) SHA1(5d253c46ccf4cd2976a5fb8b8713f0f345443d06) )
+ ROM_LOAD( "a75-05.ic62", 0x10000, 0x8000, CRC(c76374e2) SHA1(7520dd48de20db60a2038f134dcaa454988e7874) )
+
+ ROM_REGION( 0x0600, "proms", 0 )
+ ROM_LOAD( "a75-07.ic24", 0x0000, 0x0200, CRC(0af8b289) SHA1(6bc589e8a609b4cf450aebedc8ce02d5d45c970f) )
+ ROM_LOAD( "a75-08.ic23", 0x0200, 0x0200, CRC(abb002fb) SHA1(c14f56b8ef103600862e7930709d293b0aa97a73) )
+ ROM_LOAD( "a75-09.ic22", 0x0400, 0x0200, CRC(a7c6c277) SHA1(adaa003dcd981576ea1cc5f697d709b2d6b2ea29) )
+ROM_END
+
+ROM_START( arkll32 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "lle_a75_01-1.rom", 0x0000, 0x8000, CRC(8e6d7e7f) SHA1(3682c548c1bc3ceea2ff685fc5b82e61ed0044d2) )
+ ROM_LOAD( "lle_a75_11.rom", 0x8000, 0x8000, CRC(845fa7b0) SHA1(e89ab456281bcb83a61a89b347dc93303928d365) )
+
+ ROM_REGION( 0x0800, "mcu:mcu", 0 )
+ ROM_LOAD( "a75-06__bootleg_68705.ic14", 0x0000, 0x0800, CRC(515d77b6) SHA1(a302937683d11f663abd56a2fd7c174374e4d7fb) )
+
+ ROM_REGION( 0x18000, "gfx1", 0 )
+ ROM_LOAD( "a75-03.ic64", 0x00000, 0x8000, CRC(038b74ba) SHA1(ac053cc4908b4075f918748b89570e07a0ba5116) )
+ ROM_LOAD( "a75-04.ic63", 0x08000, 0x8000, CRC(71fae199) SHA1(5d253c46ccf4cd2976a5fb8b8713f0f345443d06) )
+ ROM_LOAD( "a75-05.ic62", 0x10000, 0x8000, CRC(c76374e2) SHA1(7520dd48de20db60a2038f134dcaa454988e7874) )
+
+ ROM_REGION( 0x0600, "proms", 0 )
+ ROM_LOAD( "a75-07.ic24", 0x0000, 0x0200, CRC(0af8b289) SHA1(6bc589e8a609b4cf450aebedc8ce02d5d45c970f) )
+ ROM_LOAD( "a75-08.ic23", 0x0200, 0x0200, CRC(abb002fb) SHA1(c14f56b8ef103600862e7930709d293b0aa97a73) )
+ ROM_LOAD( "a75-09.ic22", 0x0400, 0x0200, CRC(a7c6c277) SHA1(adaa003dcd981576ea1cc5f697d709b2d6b2ea29) )
+ROM_END
+
+
+GAME( 2000, akblc2dx, arkanoid, bootleg, arkangc, arkanoid_state, arkblock, ROT90, "hack", "Block Deluxe (Game Corporation)", 0 )
+GAME( 2000, akgcdx, arkanoid, bootleg, arkangc, arkanoid_state, arkgcbl, ROT90, "hack", "Arkanoid Deluxe (Game Corporation)", 0 )
+GAME( 2000, aktaytdx, arkanoid, bootleg, arktayt2, arkanoid_state, 0, ROT90, "hack", "Arkanoid Deluxe (Japan, Tayto)", 0 )
+GAME( 2000, arkll32, arkanoid, p3mcu, arkanoidj, arkanoid_state, 0, ROT90, "hack", "Arkanoid LL32", 0 )
diff --git a/src/hbmame/drivers/asteroid.cpp b/src/hbmame/drivers/asteroid.cpp
new file mode 100644
index 00000000000..c2757d3f63d
--- /dev/null
+++ b/src/hbmame/drivers/asteroid.cpp
@@ -0,0 +1,145 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/asteroid.cpp"
+
+static INPUT_PORTS_START( astdelu4 )
+ PORT_INCLUDE(astdelux)
+ PORT_MODIFY("IN1")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) // Coin Left
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) // Coin Center
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN3 ) // Coin Right
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START1 )
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START2 )
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_CODE(KEYCODE_LALT) PORT_CODE(JOYCODE_BUTTON2) // thrust
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CODE(KEYCODE_RIGHT) PORT_CODE(JOYCODE_X_RIGHT_SWITCH) // right
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CODE(KEYCODE_LEFT) PORT_CODE(JOYCODE_X_LEFT_SWITCH) // left
+INPUT_PORTS_END
+
+
+
+/*************************************
+ *
+ * ROM definitions
+ *
+ *************************************/
+
+ROM_START( starslayer ) // This name does not appear anywhere, but it does say Star Destroyer at the end.
+ ROM_REGION( 0x8000, "maincpu", 0 )
+ ROM_LOAD( "035145-02.ef2", 0x6800, 0x0800, CRC(0cc75459) SHA1(2af85c9689b878155004da47fedbde5853a18723) )
+ ROM_LOAD( "035144-02.h2", 0x7000, 0x0800, CRC(096ed35c) SHA1(064d680ded7f30c543f93ae5ca85f90d550f73e5) )
+ ROM_LOAD( "035143-02.j2", 0x7800, 0x0800, CRC(312caa02) SHA1(1ce2eac1ab90b972e3f1fc3d250908f26328d6cb) )
+ /* Vector ROM */
+ ROM_LOAD( "035127-02.ss", 0x5000, 0x0800, CRC(edf610a2) SHA1(bbbf62820a3b06488201137c735c0d8c03cf535c) )
+
+ /* DVG PROM */
+ ROM_REGION( 0x100, "user1", 0 )
+ ROM_LOAD( "034602-01.c8", 0x0000, 0x0100, CRC(97953db8) SHA1(8cbded64d1dd35b18c4d5cece00f77e7b2cab2ad) )
+ROM_END
+
+ROM_START( asteroid6 )
+ ROM_REGION( 0x8000, "maincpu", 0 )
+ ROM_LOAD( "asteroid6.ef2", 0x6800, 0x0800, CRC(6cdf25a3) SHA1(96e7882e5e144757d3adc51de8bfd5f583c0302e) )
+ ROM_LOAD( "asteroid6.h2", 0x7000, 0x0800, CRC(b4dcfbde) SHA1(447e888c4af704c9f30801b2417617b7caa73921) )
+ ROM_LOAD( "035143-02.j2", 0x7800, 0x0800, CRC(312caa02) SHA1(1ce2eac1ab90b972e3f1fc3d250908f26328d6cb) )
+ /* Vector ROM */
+ ROM_LOAD( "035127-02.np3", 0x5000, 0x0800, CRC(8b71fd9e) SHA1(8cd5005e531eafa361d6b7e9eed159d164776c70) )
+
+ ROM_REGION( 0x0100, "user1", 0 )
+ ROM_LOAD( "034602-01.c8", 0x0000, 0x0100, CRC(97953db8) SHA1(8cbded64d1dd35b18c4d5cece00f77e7b2cab2ad) )
+ROM_END
+
+ROM_START( astdelux4 )
+ ROM_REGION( 0x8000, "maincpu", 0 )
+ ROM_LOAD( "036430.02", 0x6000, 0x0800, CRC(cbcfba4f) SHA1(7e0ed90588e47c89182a18a8f5815ad052a42674) )
+ ROM_LOAD( "036431.02", 0x6800, 0x0800, CRC(3249e623) SHA1(7dd7f4531680e4fe2efb14e22466458c2e2ea4e7) )
+ ROM_LOAD( "036432.02", 0x7000, 0x0800, CRC(6d720c41) SHA1(198218cd2f43f8b83e4463b1f3a8aa49da5015e4) )
+ ROM_LOAD( "036433.03", 0x7800, 0x0800, CRC(0dcc0be6) SHA1(bf10ffb0c4870e777d6b509cbede35db8bb6b0b8) )
+ /* Vector ROM */
+ ROM_LOAD( "036800.02", 0x4800, 0x0800, CRC(5c0ca7a6) SHA1(4abbac4a4974c89a0b44e1a92ea0c8b9095d9594) )
+ ROM_LOAD( "036799.01", 0x5000, 0x0800, CRC(7d511572) SHA1(1956a12bccb5d3a84ce0c1cc10c6ad7f64e30b40) )
+ /* DVG PROM */
+ ROM_REGION( 0x100, "user1", 0 )
+ ROM_LOAD( "034602-01.c8", 0x0000, 0x0100, CRC(97953db8) SHA1(8cbded64d1dd35b18c4d5cece00f77e7b2cab2ad) )
+ROM_END
+
+
+GAME( 1979, asteroid6, asteroid, asteroid, asteroid, asteroid_state, 0, ROT0, "Clay Cowgill", "Asteroids (Six-Bullet Hack)", MACHINE_SUPPORTS_SAVE )
+GAMEL(1980, astdelux4, asteroid, astdelux, astdelu4, asteroid_state, 0, ROT0, "Atari", "Asteroids Deluxe (Unknown Revision) [h]", MACHINE_SUPPORTS_SAVE, layout_astdelux )
+GAME( 1979, starslayer, asteroid, asteroid, asteroid, asteroid_state, 0, ROT0, "Nufekop", "Starslayer (hack of Asteroids (rev 2))", MACHINE_SUPPORTS_SAVE )
+
+
+/*********************************************************************************************************************/
+
+#if 0
+/* Asteroids Multigame
+
+such a confusing pile of roms
+
+*/
+
+class amg_state : public asteroid_state
+{
+public:
+ amg_state(const machine_config &mconfig, device_type type, const char *tag)
+ : asteroid_state(mconfig, type, tag)
+// , m_maincpu(*this, "maincpu")
+// , m_p_ram(*this, "ram")
+ { }
+
+ DECLARE_DRIVER_INIT(amg);
+};
+
+ROM_START( amg )
+ ROM_REGION( 0x8000, "maincpu", 0 )
+ ROM_LOAD( "035145-02.ef2", 0x6800, 0x0800, CRC(0cc75459) SHA1(2af85c9689b878155004da47fedbde5853a18723) )
+ ROM_LOAD( "035144-02.h2", 0x7000, 0x0800, CRC(096ed35c) SHA1(064d680ded7f30c543f93ae5ca85f90d550f73e5) )
+ ROM_LOAD( "035143-02.j2", 0x7800, 0x0800, CRC(312caa02) SHA1(1ce2eac1ab90b972e3f1fc3d250908f26328d6cb) )
+ /* Vector ROM */
+ ROM_LOAD( "035127.02", 0x5000, 0x0800, CRC(8b71fd9e) SHA1(8cd5005e531eafa361d6b7e9eed159d164776c70) )
+
+ /* DVG PROM */
+ ROM_REGION( 0x100, "user1", 0 )
+ ROM_LOAD( "034602-01.c8", 0x0000, 0x0100, CRC(97953db8) SHA1(8cbded64d1dd35b18c4d5cece00f77e7b2cab2ad) )
+
+ ROM_REGION( 0x20000, "user2", 0 )
+ ROM_LOAD( "adla-11a.512", 0x0000, 0x10000, CRC(43ad0f95) SHA1(6105926b4d734ec12e23579faa4453b4d5a981f9) )
+ ROM_LOAD( "adlv-11a.256", 0x10000, 0x8000, CRC(a03b957c) SHA1(45819fafdb34b9da0c3100e5ff143ba8e164c9d0) )
+
+ ROM_REGION( 0x20000, "user3", ROMREGION_ERASEFF )
+ROM_END
+
+DRIVER_INIT_MEMBER( amg_state, amg )
+{
+ UINT8 *src = memregion("user2")->base();
+// int len = memregion("user1")->bytes();
+ UINT8 *dest = memregion("user3")->base();
+
+ offs_t i,j;
+
+ for (i = 0; i < 0x10000; i++)
+ src[i] = BITSWAP8(src[i], 3, 4, 5, 6, 7, 1, 2, 0);
+
+ for (i = 0; i < 0x10000; i++)
+ {
+ j = BITSWAP16(i, 15, 5, 4, 7, 0, 10, 1, 11, 6, 2, 12, 3, 9, 8, 13, 14);
+
+ if (!BIT(i, 10))
+ j ^= 0x100;
+
+ dest[j] = src[i];
+ }
+
+ for (i = 0x10000; i < 0x18000; i++)
+ src[i] = BITSWAP8(src[i], 3, 4, 5, 6, 7, 1, 2, 0);
+
+ for (i = 0x10000; i < 0x18000; i++)
+ {
+ j = BITSWAP16(i, 15, 6, 5, 12, 11, 10, 9, 8, 7, 14, 13, 4, 3, 2, 1, 0);
+ dest[j|0x10000] = src[i];
+ }
+}
+
+
+GAME( 2002, amg, asteroid, asteroid, asteroid, amg_state, amg, ROT0, "Braze", "Asteroids Multigame", MACHINE_NOT_WORKING )
+#endif
+
diff --git a/src/hbmame/drivers/astrocde.cpp b/src/hbmame/drivers/astrocde.cpp
new file mode 100644
index 00000000000..61cd79fe320
--- /dev/null
+++ b/src/hbmame/drivers/astrocde.cpp
@@ -0,0 +1,29 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/astrocde.cpp"
+
+
+ROM_START( tst_gorf )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "gorfmd.bin", 0x0000, 0x1000, CRC(3776a6a1) SHA1(bd6b0a1dd587e8d4b325ef4133b8e3797416d8d2) )
+ROM_END
+
+ROM_START( tst_gor1 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "gorftest.bin", 0x0000, 0x0627, CRC(676137a2) SHA1(d99192a16add7b188b29db7f9497b6c129d81144) )
+ROM_END
+
+ROM_START( tst_wow2 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "wowmd02b.x1", 0x0000, 0x1000, CRC(0af2f2c8) SHA1(e883afe696c2a444c8691041f1b9e0e015dff517) )
+ROM_END
+
+ROM_START( tst_wow3 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "wowmd030.x1", 0x0000, 0x1000, CRC(f493ec4d) SHA1(030cd12e7a7e9ac346e8299df83b62480004c954) )
+ROM_END
+
+GAME( 2005, tst_gorf, 0, gorf, gorf, astrocde_state, gorf, ROT270, "David Turner", "Test Rom - Gorf", MACHINE_SUPPORTS_SAVE )
+GAME( 2006, tst_gor1, 0, gorf, gorf, astrocde_state, gorf, ROT270, "Mark Spaeth", "Test Rom - Gorf Complete Memory Diagnostics", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, tst_wow2, 0, wow, wow, astrocde_state, wow, ROT0, "David Turner", "Test Rom - Wizard of Wor (ver 0.2b)", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, tst_wow3, 0, wow, wow, astrocde_state, wow, ROT0, "David Turner", "Test Rom - Wizard of Wor (ver 0.3)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/astrof.cpp b/src/hbmame/drivers/astrof.cpp
new file mode 100644
index 00000000000..38763e1f0a5
--- /dev/null
+++ b/src/hbmame/drivers/astrof.cpp
@@ -0,0 +1,19 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/astrof.cpp"
+
+ROM_START( astrofbl )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "afii.6", 0xd000, 0x0800, CRC(d6cd13a4) SHA1(359b00b02f4256f1138c8526214c6a34d2e5b47a) )
+ ROM_LOAD( "afii.5", 0xd800, 0x0800, CRC(6fd3c4df) SHA1(73aad03e2588ac9f249d5751eb4a7c7cd12fd3b9) )
+ ROM_LOAD( "afii.4", 0xe000, 0x0800, CRC(9612dae3) SHA1(8ee1797c212e06c381972b7b555f240ff317d75d) )
+ ROM_LOAD( "afii.3", 0xe800, 0x0800, CRC(5a0fef42) SHA1(92a575abdf17bbb5ed6bc67479049523a985aa75) )
+ ROM_LOAD( "afii.2", 0xf000, 0x0800, CRC(69f8a4fc) SHA1(9f9a935f19187640018009ade92f8993912ef6c2) )
+ ROM_LOAD( "afii.1", 0xf800, 0x0800, CRC(322c09d2) SHA1(89723e3d998ff9cb9b174bca4b072b412b290c04) )
+
+ ROM_REGION( 0x0020, "proms", 0 )
+ ROM_LOAD( "astrf_bl.clr", 0x0000, 0x0020, CRC(6be69d4b) SHA1(4197cf9110db08e45b5d18aedb0fde96779491c1) )
+ROM_END
+
+
+GAME( 1979, astrofbl, astrof, astrof, astrof, astrof_state, 0, ROT90, "Hack", "Astro Fighter (Black Background)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/asuka.cpp b/src/hbmame/drivers/asuka.cpp
new file mode 100644
index 00000000000..d5950dd5ce7
--- /dev/null
+++ b/src/hbmame/drivers/asuka.cpp
@@ -0,0 +1,27 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/asuka.cpp"
+
+ROM_START( asukac )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "b68-13c.ic23", 0x00000, 0x20000, CRC(356a3151) SHA1(a2929a30bcd45962a4fc08a980e82d9914078c29) )
+ ROM_LOAD16_BYTE( "b68-12c.ic8", 0x00001, 0x20000, CRC(8bd073d4) SHA1(53453cb0dd4aa606215922ad8363e536524dc0f3) )
+ ROM_LOAD16_WORD( "b68-03c.ic30", 0x80000, 0x80000, CRC(3d0d7798) SHA1(a63d9fc043e8ba0b79a7606c17faac406e0b92ec) )
+
+ ROM_REGION( 0x80000, "gfx1", 0 )
+ ROM_LOAD( "b68-01c.ic3", 0x00000, 0x80000, CRC(d5dec087) SHA1(1f8888c15cb08c1c0d27ce29cb71106360c9c852) )
+
+ ROM_REGION( 0xa0000, "gfx2", 0 )
+ ROM_LOAD ( "b68-02c.ic6", 0x00000, 0x80000, CRC(09927d23) SHA1(b9761286feaa14c4eb6fc87ec35e7245c318d687) )
+ 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 )
+ ROM_LOAD( "b68-11.ic27", 0x00000, 0x04000, CRC(c378b508) SHA1(1b145fe736b924f298e02532cf9f26cc18b42ca7) )
+ ROM_CONTINUE( 0x10000, 0x0c000 )
+
+ ROM_REGION( 0x10000, "ymsnd", 0 )
+ ROM_LOAD( "b68-10.ic24", 0x00000, 0x10000, CRC(387aaf40) SHA1(47c583564ef1d49ece15f97221b2e073e8fb0544) )
+ROM_END
+
+GAME( 1988, asukac, asuka, asuka, asuka, asuka_state, 0, ROT270, "Taito Corporation", "Asuka & Asuka (Chinese)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/atari_s1.cpp b/src/hbmame/drivers/atari_s1.cpp
new file mode 100644
index 00000000000..b6ec2ce695d
--- /dev/null
+++ b/src/hbmame/drivers/atari_s1.cpp
@@ -0,0 +1,20 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/atari_s1.cpp"
+
+/*-------------------------------------------------------------------
+ The Atarians (working bootleg)
+Game modified to work in emulation from original set (atarians)
+
+Except, it doesn't work.
+-------------------------------------------------------------------*/
+ROM_START(atarianb)
+ ROM_REGION(0x10000, "maincpu", 0)
+ ROM_LOAD("atarianb.e00", 0x7000, 0x0800, CRC(74fc86e4) SHA1(135d75e5c03feae0929fa84caa3c802353cdd94e))
+ ROM_LOAD("atarian.e0", 0x7800, 0x0800, CRC(45cb0427) SHA1(e286930ca36bdd0f79acefd142d2a5431fa8005b))
+
+ ROM_REGION(0x0200, "proms", 0)
+ ROM_LOAD("82s130.bin", 0x0000, 0x0200, CRC(da1f77b4) SHA1(b21fdc1c6f196c320ec5404013d672c35f95890b))
+ROM_END
+
+GAME( 2002, atarianb, atarians, atari_s1, atari_s1, driver_device, 0, ROT0, "Atari / Gaston", "The Atarians (modified for emulation)", MACHINE_NOT_WORKING | MACHINE_MECHANICAL)
diff --git a/src/hbmame/drivers/atarisy1.cpp b/src/hbmame/drivers/atarisy1.cpp
new file mode 100644
index 00000000000..80610f5919b
--- /dev/null
+++ b/src/hbmame/drivers/atarisy1.cpp
@@ -0,0 +1,65 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+
+#include "../mame/drivers/atarisy1.cpp"
+ROM_START( ataris1hw )
+ ROM_REGION( 0x88000, "maincpu", 0 )
+ MOTHERBOARD_BIOS
+ ROM_LOAD16_BYTE( "ataris1hw.432", 0x10000, 0x08000, CRC(db3f1d4e) SHA1(58d6a88f73f90c8fe2981e60fbf6f359e0b88ea7) )
+ ROM_LOAD16_BYTE( "ataris1hw.431", 0x10001, 0x08000, CRC(e439e2a1) SHA1(4346252c81336c087edfbd2e334d488f13dcaba3) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "136036.153", 0x4000, 0x4000, CRC(95294641) SHA1(00f90a0d49d2c77d5288080036f81a74ad31f8bc) )
+ ROM_LOAD( "136036.154", 0x8000, 0x4000, CRC(cbfc6adb) SHA1(ee132eced924435f1214e2997533e866a3e5364b) )
+ ROM_LOAD( "136036.155", 0xc000, 0x4000, CRC(fd1a6878) SHA1(28e1b2187f58098e5140d9a88bda969965758f26) )
+
+ ROM_REGION( 0x2000, "alpha", 0 )
+ MOTHERBOARD_ALPHA
+
+ ROM_REGION( 0x200000, "tiles", ROMREGION_INVERT | ROMREGION_ERASEFF )
+ ROM_LOAD( "136036.135", 0x000000, 0x08000, CRC(a8fa9870) SHA1(375cb16ccaae62cf429bf1a7d2c6de1829b86877) )
+ ROM_LOAD( "136036.139", 0x010000, 0x08000, CRC(6959604d) SHA1(94f130507981ec01240252ab7b044f6d1e19280e) )
+ ROM_LOAD( "136036.143", 0x020000, 0x08000, CRC(b6b14274) SHA1(441c0447721afe0aadf320e1b0c40ebf97d0e485) )
+ ROM_LOAD( "136036.147", 0x030000, 0x08000, CRC(2de2e834) SHA1(ba7640ea7440250152b1be71e65e3480f782011f) )
+
+ ROM_REGION( 0x400, "proms", 0 )
+ ROM_LOAD( "136036.152", 0x000, 0x200, CRC(4f96e57c) SHA1(271633a0aacd1d1efe2917728b73e90010c64d2c) )
+ ROM_LOAD( "136036.151", 0x200, 0x200, CRC(7daf351f) SHA1(95c13d81a47440f847af7b19632cc032380b9ff4) )
+
+ ROM_REGION( 0x201, "motherbrd_proms", 0)
+ MOTHERBOARD_PROMS
+ROM_END
+
+GAME( 2017, ataris1hw, indytemp, indytemp, indytemp, atarisy1_state, indytemp, ROT0, "Luigi30", "Atari System 1 Hello World", 0 )
+
+
+// It runs, the output appears in the videoram (A03xxx), but screen stays black. Works on real hardware.
+
+ROM_START( ataris1rt )
+ ROM_REGION( 0x88000, "maincpu", 0 )
+ ROM_LOAD16_BYTE("ataris1rt.l13", 0x00000, 0x04000, CRC(86713619) SHA1(26e0348e91d10d9c7380736194bb8cb933765293) )
+ ROM_LOAD16_BYTE("ataris1rt.l12", 0x00001, 0x04000, CRC(63b94bd5) SHA1(fe3c41a33cd8e70d04744055488d8e94d4a70caf) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "136036.153", 0x4000, 0x4000, CRC(95294641) SHA1(00f90a0d49d2c77d5288080036f81a74ad31f8bc) )
+ ROM_LOAD( "136036.154", 0x8000, 0x4000, CRC(cbfc6adb) SHA1(ee132eced924435f1214e2997533e866a3e5364b) )
+ ROM_LOAD( "136036.155", 0xc000, 0x4000, CRC(fd1a6878) SHA1(28e1b2187f58098e5140d9a88bda969965758f26) )
+
+ ROM_REGION( 0x2000, "alpha", 0 )
+ MOTHERBOARD_ALPHA
+
+ ROM_REGION( 0x200000, "tiles", ROMREGION_INVERT | ROMREGION_ERASEFF )
+ ROM_LOAD( "136036.135", 0x000000, 0x08000, CRC(a8fa9870) SHA1(375cb16ccaae62cf429bf1a7d2c6de1829b86877) )
+ ROM_LOAD( "136036.139", 0x010000, 0x08000, CRC(6959604d) SHA1(94f130507981ec01240252ab7b044f6d1e19280e) )
+ ROM_LOAD( "136036.143", 0x020000, 0x08000, CRC(b6b14274) SHA1(441c0447721afe0aadf320e1b0c40ebf97d0e485) )
+ ROM_LOAD( "136036.147", 0x030000, 0x08000, CRC(2de2e834) SHA1(ba7640ea7440250152b1be71e65e3480f782011f) )
+
+ ROM_REGION( 0x400, "proms", 0 )
+ ROM_LOAD( "136036.152", 0x000, 0x200, CRC(4f96e57c) SHA1(271633a0aacd1d1efe2917728b73e90010c64d2c) )
+ ROM_LOAD( "136036.151", 0x200, 0x200, CRC(7daf351f) SHA1(95c13d81a47440f847af7b19632cc032380b9ff4) )
+
+ ROM_REGION( 0x201, "motherbrd_proms", 0)
+ MOTHERBOARD_PROMS
+ROM_END
+
+GAME( 2017, ataris1rt, indytemp, indytemp, indytemp, atarisy1_state, indytemp, ROT0, "GadgetFreak", "Atari System 1 Ram Tester", MACHINE_NOT_WORKING )
diff --git a/src/hbmame/drivers/bagman.cpp b/src/hbmame/drivers/bagman.cpp
new file mode 100644
index 00000000000..88c965affb5
--- /dev/null
+++ b/src/hbmame/drivers/bagman.cpp
@@ -0,0 +1,53 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/bagman.cpp"
+
+ROM_START( bagturbo )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "bagt_a4_9e.bin", 0x0000, 0x1000, CRC(c070635c) SHA1(98c920f9ab377258d376e62337f14df3e51badaa) )
+ ROM_LOAD( "a5-9f", 0x1000, 0x1000, CRC(2ddf6bb9) SHA1(151068dddc55163bb6f925f68e5d04e347ded6a5) )
+ ROM_LOAD( "a4_9j.bin", 0x2000, 0x1000, CRC(b2da8b77) SHA1(ea36cd6be42c5548a9a91054aeebb4b985ba15c9) )
+ ROM_LOAD( "a5-9k", 0x3000, 0x1000, CRC(f91d617b) SHA1(a3323b51277e08747701cc4e2d3a9c466e96d4c1) )
+ ROM_LOAD( "bagt_a4_9m.bin", 0x4000, 0x1000, CRC(8cb278fe) SHA1(807a4f1d89dcbd7482ef86f4b2e88cc2f64abbf4) )
+ ROM_LOAD( "a5-9n", 0x5000, 0x1000, CRC(68e4b64d) SHA1(55950d7c07c621cafa001d5d3bfec6bbc02712e2) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "a2_1e.bin", 0x0000, 0x1000, CRC(f217ac09) SHA1(a9716674401dff27344a01df8121b6b648688680) )
+ ROM_LOAD( "j1_b04.bin", 0x1000, 0x1000, CRC(c680ef04) SHA1(79406bc786374abfcd9f548268c445b5c8d8858d) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "a2_1c.bin", 0x0000, 0x1000, CRC(f3e11bd7) SHA1(43ee00ff777008c89f619eb183e7c5e63f6c7694) )
+ ROM_LOAD( "a2_1f.bin", 0x1000, 0x1000, CRC(d0f7105b) SHA1(fb382703850a4ded567706e02ebb7f3e22531b7c) )
+
+ ROM_REGION( 0x0060, "proms", 0 )
+ ROM_LOAD( "p3.bin", 0x0000, 0x0020, CRC(2a855523) SHA1(91e032233fee397c90b7c1662934aca9e0671482) )
+ ROM_LOAD( "r3.bin", 0x0020, 0x0020, CRC(ae6f1019) SHA1(fd711882b670380cb4bd909c840ba06277b8fbe3) )
+
+ ROM_REGION( 0x0020, "5110ctrl", 0)
+ ROM_LOAD( "r6.bin", 0x0000, 0x0020, CRC(c58a4f6a) SHA1(35ef244b3e94032df2610aa594ea5670b91e1449) )
+
+ ROM_REGION( 0x2000, "tmsprom", 0 )
+ ROM_LOAD( "r9_b11.bin", 0x0000, 0x1000, CRC(2e0057ff) SHA1(33e3ffa6418f86864eb81e5e9bda4bf540c143a6) )
+ ROM_LOAD( "t9_b12.bin", 0x1000, 0x1000, CRC(b2120edd) SHA1(52b89dbcc749b084331fa82b13d0876e911fce52) )
+ROM_END
+
+ROM_START( pickinpi )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "9e", 0x0000, 0x1000, CRC(efd0bd43) SHA1(b70a471a809c08286a82934046357fb46556f641) )
+ ROM_LOAD( "9f", 0x1000, 0x1000, CRC(b5785a23) SHA1(9eddda5695981cb0470dfea68d5e2e8e220382b1) )
+ ROM_LOAD( "9j", 0x2000, 0x1000, CRC(65ee9fd4) SHA1(2efa40c19a7b0644ef4f4b2ce6a025b2b880239d) )
+ ROM_LOAD( "9k", 0x3000, 0x1000, CRC(7b23350e) SHA1(dff19602a0e46ca0bcdbdf2a1d61fd2c80ac70e7) )
+ ROM_LOAD( "9m", 0x4000, 0x1000, CRC(935a7248) SHA1(d9af4405d51ce1ff6c4b84709dc85c0db88b1d54) )
+ ROM_LOAD( "9n", 0x5000, 0x1000, CRC(52485d1d) SHA1(c309eec506f978388463f20d56d958e6639c31e8) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "1f", 0x0000, 0x1000, CRC(c5e96ac6) SHA1(b2d740b6d07c765e8eb2dce31fe285a15a9fe597) )
+ ROM_LOAD( "1j", 0x1000, 0x1000, CRC(41c4ac1c) SHA1(aac58a9d675a9b70140d82341231bcf6c77c7b41) )
+
+ ROM_REGION( 0x0040, "proms", 0 )
+ ROM_LOAD( "6331-1pi.3p", 0x0000, 0x0020, CRC(b1dd1e68) SHA1(059c5f6c43e62b9381f4a0fa322dbe59c29812f5) )
+ ROM_LOAD( "6331-1pi.3r", 0x0020, 0x0020, CRC(47fadc93) SHA1(3ba46957e664a2ea639a97a0c199a9636861ca50) )
+ROM_END
+
+GAME(1991, bagturbo, bagman, bagman, bagman, bagman_state, 0, ROT270, "Tim Arcadecollecting", "Bagman Turbo (Stern set 1) [c]", 0 ) // http://www.arcadecollecting.com/hacks/bagman
+GAME(1983, pickinpi, pickin, pickin, pickin, bagman_state, 0, ROT270, "Pi", "Pickin' (Color Hack)", 0 )
diff --git a/src/hbmame/drivers/blktiger.cpp b/src/hbmame/drivers/blktiger.cpp
new file mode 100644
index 00000000000..7ccc630df5a
--- /dev/null
+++ b/src/hbmame/drivers/blktiger.cpp
@@ -0,0 +1,41 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/blktiger.cpp"
+
+ROM_START( blkdrgonk )
+ ROM_REGION( 0x50000, "maincpu", 0 )
+ ROM_LOAD( "blkdrgnk.5e", 0x00000, 0x08000, CRC(e713b486) SHA1(468a75120080f9529f2b56d66c72c767e7ee86df) )
+ ROM_LOAD( "blkdrgon.6e", 0x10000, 0x10000, CRC(7d39c26f) SHA1(562a3f578e109ae020f65e341c876ad7e510a311) )
+ ROM_LOAD( "blkdrgon.8e", 0x20000, 0x10000, CRC(d1bf3757) SHA1(b19f8b986406bde65ac7f0d55d54f87b37f5e42f) )
+ ROM_LOAD( "blkdrgon.9e", 0x30000, 0x10000, CRC(4d1d6680) SHA1(e137624c59392de6aaffeded99b024938360bd25) )
+ ROM_LOAD( "blkdrgon.10e", 0x40000, 0x10000, CRC(c8d0c45e) SHA1(66c2e5a74c5875a2c8e28740fe944bd943246ce5) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "bd-06.1l", 0x0000, 0x8000, CRC(2cf54274) SHA1(87df100c65999ba1e9d358ffd0fe4bba23ae0efb) )
+
+ ROM_REGION( 0x10000, "mcu", 0 )
+ ROM_LOAD( "bd.6k", 0x0000, 0x1000, CRC(ac7d14f1) SHA1(46fd6b43f10312e3e8d3c9e0c0fd616af98fdbad) )
+
+ ROM_REGION( 0x08000, "gfx1", 0 )
+ ROM_LOAD( "blkdrgnk.2n", 0x00000, 0x08000, CRC(3b432217) SHA1(da0b3fe16fb5192f6514bdf5fef85a889c7b2f0a) )
+
+ ROM_REGION( 0x40000, "gfx2", 0 )
+ ROM_LOAD( "blkdrgon.5b", 0x00000, 0x10000, CRC(22d0a4b0) SHA1(f9402ea9ffedcb280497a63c5eb352de9d4ca3fd) )
+ ROM_LOAD( "blkdrgon.4b", 0x10000, 0x10000, CRC(c8b5fc52) SHA1(621e899285ce6302e5b25d133d9cd52c09b7b202) )
+ ROM_LOAD( "blkdrgon.9b", 0x20000, 0x10000, CRC(9498c378) SHA1(841934ddef724faf04162c4be4aea1684d8d8e0f) )
+ ROM_LOAD( "blkdrgon.8b", 0x30000, 0x10000, CRC(5b0df8ce) SHA1(57d10b48bd61b0224ce21b36bde8d2479e8e5df4) )
+
+ ROM_REGION( 0x40000, "gfx3", 0 )
+ ROM_LOAD( "bd-08.5a", 0x00000, 0x10000, CRC(e2f17438) SHA1(3e5fdae07d40febedc59c7c7c4d9c6f0d72b58b5) )
+ ROM_LOAD( "bd-07.4a", 0x10000, 0x10000, CRC(5fccbd27) SHA1(33c55aa9c12b3121ca5c3b4c39a9b152b6946461) )
+ ROM_LOAD( "bd-10.9a", 0x20000, 0x10000, CRC(fc33ccc6) SHA1(d492626a88565c2626f98ecb1d74535f1ad68e4c) )
+ ROM_LOAD( "bd-09.8a", 0x30000, 0x10000, CRC(f449de01) SHA1(f6b40e9eb2471b89c42ab84f4214295d284db0c3) )
+
+ ROM_REGION( 0x0400, "proms", 0 )
+ ROM_LOAD( "bd01.8j", 0x0000, 0x0100, CRC(29b459e5) SHA1(0034734a533df3dea16b7b48e072485d7f26f850) )
+ ROM_LOAD( "bd02.9j", 0x0100, 0x0100, CRC(8b741e66) SHA1(6c1fda59936a7217b05949f5c54b1f91f4b49dbe) )
+ ROM_LOAD( "bd03.11k", 0x0200, 0x0100, CRC(27201c75) SHA1(c54d87f06bfe0b0908389c005014d97156e272c2) )
+ ROM_LOAD( "bd04.11l", 0x0300, 0x0100, CRC(e5490b68) SHA1(40f9f92efe7dd97b49144aec02eb509834056915) )
+ROM_END
+
+GAME( 1987, blkdrgonk, blktiger, blktiger, blktiger, blktiger_state, 0, ROT0, "hack", "Black Dragon (Korean)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/bombjack.cpp b/src/hbmame/drivers/bombjack.cpp
new file mode 100644
index 00000000000..fe758e26891
--- /dev/null
+++ b/src/hbmame/drivers/bombjack.cpp
@@ -0,0 +1,96 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/bombjack.cpp"
+
+ROM_START( bmbjckgr )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "09_j01b.bin", 0x0000, 0x2000, CRC(c668dc30) SHA1(51dd6a2688b42e9f28f0882bd76f75be7ec3222a) )
+ ROM_LOAD( "10_l01b.bin", 0x2000, 0x2000, CRC(52a1e5fb) SHA1(e1cdc4b4efbc6c7a1e4fa65019486617f2acba1b) )
+ ROM_LOAD( "11_m01b.bin", 0x4000, 0x2000, CRC(b68a062a) SHA1(43bae56494ac0202aaa8f1ed5c1ed1bff775b2b8) )
+ ROM_LOAD( "12g_n01b.bin", 0x6000, 0x2000, CRC(b457909f) SHA1(807b30742a89a327721596c4f5d091912f0ab4ec) )
+ ROM_LOAD( "13g.1r", 0xc000, 0x2000, CRC(f8e14e2c) SHA1(a5dff87ad26eff6a07313594d9bce2ea568c8f26) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "01_h03t.bin", 0x0000, 0x2000, CRC(8407917d) SHA1(318face9f7a7ab6c7eeac773995040425e780aaf) )
+
+ ROM_REGION( 0x3000, "chars", 0 )
+ ROM_LOAD( "03g_e08t.bin", 0x0000, 0x1000, CRC(df120e35) SHA1(b389320cd95fe3ac7bfb613098140d169c0485b1) )
+ ROM_LOAD( "04g_h08t.bin", 0x1000, 0x1000, CRC(2af09b2b) SHA1(4ce87353a941c6527c9426e578ed2a6c7286175e) )
+ ROM_LOAD( "05g_k08t.bin", 0x2000, 0x1000, CRC(4362417c) SHA1(680a5c06c938e7cca33880bc18a2b592a4204ec8) )
+
+ ROM_REGION( 0x6000, "tiles", 0 )
+ ROM_LOAD( "06_l08t.bin", 0x0000, 0x2000, CRC(51eebd89) SHA1(515128a3971fcb97b60c5b6bdd2b03026aec1921) )
+ ROM_LOAD( "07_n08t.bin", 0x2000, 0x2000, CRC(9dd98e9d) SHA1(6db6006a6e20ff7c243d88293ca53681c4703ea5) )
+ ROM_LOAD( "08_r08t.bin", 0x4000, 0x2000, CRC(3155ee7d) SHA1(e7897dca4c145f10b7d975b8ef0e4d8aa9354c25) )
+
+ ROM_REGION( 0x6000, "sprites", 0 )
+ ROM_LOAD( "16g_m07b.bin", 0x0000, 0x2000, CRC(e33942bf) SHA1(a9fad16f9b83faf1c0948ad15186959ec17eb448) )
+ ROM_LOAD( "15g_l07b.bin", 0x2000, 0x2000, CRC(1bb8ec79) SHA1(14c8b6ee9f22491330bbf14356fa4ab3c62cb811) )
+ ROM_LOAD( "14g_j07b.bin", 0x4000, 0x2000, CRC(0a9b3106) SHA1(bfd1c430e3e96896ebf4db962f755353a9a57be8) )
+
+ ROM_REGION( 0x1000, "gfx4", 0 )
+ ROM_LOAD( "02_p04t.bin", 0x0000, 0x1000, CRC(398d4a02) SHA1(ac18a8219f99ba9178b96c9564de3978e39c59fd) )
+ROM_END
+
+/* E720 - rom 13 = the old rom11+rom12; rom 14 = the old rom09+rom10+alterations */
+ROM_START( bombjckb )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "bombjckb.14", 0x0000, 0x4000, CRC(129f94f7) SHA1(499625812166c5288efe74d75c8fbc7ce8f197eb) )
+ ROM_LOAD( "bombjckb.13", 0x4000, 0x4000, CRC(87fa35ad) SHA1(42d82658609cbc88928fb2fdf579eb117d4b0cbc) )
+ ROM_LOAD( "13.1r", 0xc000, 0x2000, CRC(70e0244d) SHA1(67654155e42821ea78a655f869fb81c8d6387f63) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "01_h03t.bin", 0x0000, 0x2000, CRC(8407917d) SHA1(318face9f7a7ab6c7eeac773995040425e780aaf) )
+
+ ROM_REGION( 0x3000, "chars", 0 )
+ ROM_LOAD( "03_e08t.bin", 0x0000, 0x1000, CRC(9f0470d5) SHA1(94ef52ef47b4399a03528fe3efeac9c1d6983446) )
+ ROM_LOAD( "04_h08t.bin", 0x1000, 0x1000, CRC(81ec12e6) SHA1(e29ba193f21aa898499187603b25d2e226a07c7b) )
+ ROM_LOAD( "05_k08t.bin", 0x2000, 0x1000, CRC(e87ec8b1) SHA1(a66808ef2d62fca2854396898b86bac9be5f17a3) )
+
+ ROM_REGION( 0x6000, "tiles", 0 )
+ ROM_LOAD( "06_l08t.bin", 0x0000, 0x2000, CRC(51eebd89) SHA1(515128a3971fcb97b60c5b6bdd2b03026aec1921) )
+ ROM_LOAD( "07_n08t.bin", 0x2000, 0x2000, CRC(9dd98e9d) SHA1(6db6006a6e20ff7c243d88293ca53681c4703ea5) )
+ ROM_LOAD( "08_r08t.bin", 0x4000, 0x2000, CRC(3155ee7d) SHA1(e7897dca4c145f10b7d975b8ef0e4d8aa9354c25) )
+
+ ROM_REGION( 0x6000, "sprites", 0 )
+ ROM_LOAD( "16_m07b.bin", 0x0000, 0x2000, CRC(94694097) SHA1(de71bcd67f97d05527f2504fc8430be333fb9ec2) )
+ ROM_LOAD( "15_l07b.bin", 0x2000, 0x2000, CRC(013f58f2) SHA1(20c64593ab9fcb04cefbce0cd5d17ce3ff26441b) )
+ ROM_LOAD( "14_j07b.bin", 0x4000, 0x2000, CRC(101c858d) SHA1(ed1746c15cdb04fae888601d940183d5c7702282) )
+
+ ROM_REGION( 0x1000, "gfx4", 0 )
+ ROM_LOAD( "02_p04t.bin", 0x0000, 0x1000, CRC(398d4a02) SHA1(ac18a8219f99ba9178b96c9564de3978e39c59fd) )
+ROM_END
+
+ROM_START( bombjred )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "09_j01b.bin", 0x0000, 0x2000, CRC(c668dc30) SHA1(51dd6a2688b42e9f28f0882bd76f75be7ec3222a) )
+ ROM_LOAD( "10_l01b.bin", 0x2000, 0x2000, CRC(52a1e5fb) SHA1(e1cdc4b4efbc6c7a1e4fa65019486617f2acba1b) )
+ ROM_LOAD( "11_m01b.bin", 0x4000, 0x2000, CRC(b68a062a) SHA1(43bae56494ac0202aaa8f1ed5c1ed1bff775b2b8) )
+ ROM_LOAD( "12_n01b.bin", 0x6000, 0x2000, CRC(1d3ecee5) SHA1(8b3c49e21ea4952cae7042890d1be2115f7d6fda) )
+ ROM_LOAD( "13.1r", 0xc000, 0x2000, CRC(70e0244d) SHA1(67654155e42821ea78a655f869fb81c8d6387f63) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "01_h03t.bin", 0x0000, 0x2000, CRC(8407917d) SHA1(318face9f7a7ab6c7eeac773995040425e780aaf) )
+
+ ROM_REGION( 0x3000, "chars", 0 )
+ ROM_LOAD( "bombjred.03", 0x0000, 0x1000, CRC(8732fa2b) SHA1(e9919bd812a44d6edaf7a08e6cb857cdee2af057) )
+ ROM_LOAD( "bombjred.04", 0x1000, 0x1000, CRC(dc392a25) SHA1(8ace01ef128b92ff04d668fdd3c2be9cb9a25e4d) )
+ ROM_LOAD( "bombjred.05", 0x2000, 0x1000, CRC(ad9d7a8c) SHA1(8ae81bf891544c825115925b38a53c89c1ca2f65) )
+
+ ROM_REGION( 0x6000, "tiles", 0 )
+ ROM_LOAD( "06_l08t.bin", 0x0000, 0x2000, CRC(51eebd89) SHA1(515128a3971fcb97b60c5b6bdd2b03026aec1921) )
+ ROM_LOAD( "07_n08t.bin", 0x2000, 0x2000, CRC(9dd98e9d) SHA1(6db6006a6e20ff7c243d88293ca53681c4703ea5) )
+ ROM_LOAD( "08_r08t.bin", 0x4000, 0x2000, CRC(3155ee7d) SHA1(e7897dca4c145f10b7d975b8ef0e4d8aa9354c25) )
+
+ ROM_REGION( 0x6000, "sprites", 0 )
+ ROM_LOAD( "bombjred.16", 0x0000, 0x2000, CRC(bdabd682) SHA1(3caf238295ba4d033d50b8e2a51e6c2bd0ad6bde) )
+ ROM_LOAD( "bombjred.15", 0x2000, 0x2000, CRC(a213f039) SHA1(67e247c4d3fe2b4791d3c5de9bb242c21f31c84d) )
+ ROM_LOAD( "bombjred.14", 0x4000, 0x2000, CRC(498513fe) SHA1(81851994da287982a67a4e47231404f534b6b9df) )
+
+ ROM_REGION( 0x1000, "gfx4", 0 )
+ ROM_LOAD( "02_p04t.bin", 0x0000, 0x1000, CRC(398d4a02) SHA1(ac18a8219f99ba9178b96c9564de3978e39c59fd) )
+ROM_END
+
+GAME( 1984, bmbjckgr, bombjack, bombjack, bombjack, bombjack_state, 0, ROT90, "hack", "Bomb Jack (Greek)", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, bombjckb, bombjack, bombjack, bombjack, bombjack_state, 0, ROT90, "hack", "Bomb Jack (Bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 2008, bombjred, bombjack, bombjack, bombjack, bombjack_state, 0, ROT90, "hack", "Bomb Jack Red", MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/btime.cpp b/src/hbmame/drivers/btime.cpp
new file mode 100644
index 00000000000..e15e6434ad4
--- /dev/null
+++ b/src/hbmame/drivers/btime.cpp
@@ -0,0 +1,106 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/btime.cpp"
+
+ROM_START( bnjr )
+ ROM_REGION( 2*0x10000, "maincpu", 0 )
+ ROM_LOAD( "bnj12b.bin", 0xa000, 0x2000, CRC(ba3e3801) SHA1(56284076d938c33c1492a07281b936681eb09808) )
+ ROM_LOAD( "bnj12c.bin", 0xc000, 0x2000, CRC(fb3a2cdd) SHA1(4a964389cc8035b9264d4cb133eb6d3826e74b95) )
+ ROM_LOAD( "bnj12d.bin", 0xe000, 0x2000, CRC(b88bc99e) SHA1(08a4ddea4037f9e14d0d9f4262a1746b0a3a140c) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "bnj6c.bin", 0xe000, 0x1000, CRC(8c02f662) SHA1(1279d564e65fd3ccac25b1f9fbb40d910de2b544) )
+
+ ROM_REGION( 0x6000, "gfx1", 0 )
+ ROM_LOAD( "bnjr4e.bin", 0x0000, 0x2000, CRC(876cc672) SHA1(860cfc92752f312ce167fdfb7752fb5e7d7d8817) )
+ ROM_LOAD( "bnjr4f.bin", 0x2000, 0x2000, CRC(e5e95e3f) SHA1(c16e03e29229fa7dcc9ed01b43b645fbcc79cc97) )
+ ROM_LOAD( "bnjr4h.bin", 0x4000, 0x2000, CRC(570ffa46) SHA1(e397fbca0cc7b8173476d34d4e651752937b7569) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "bnjr10e.bin", 0x0000, 0x1000, CRC(9e523e4c) SHA1(4d76696c7594d84d081d17220dc58c0e7e35a14c) )
+ ROM_LOAD( "bnjr10f.bin", 0x1000, 0x1000, CRC(5cf10f28) SHA1(66b2d8cc27ff6dd340054290f6eb2d71c9a1052a) )
+ROM_END
+
+ROM_START( pnc )
+ ROM_REGION( 2*0x10000, "maincpu", 0 )
+ ROM_LOAD( "s3-3d", 0xc000, 0x1000, CRC(1ab4f2c2) SHA1(c5890b768172cd2e3912b84db5f71546969ad7e2) )
+ ROM_LOAD( "s2-3c", 0xd000, 0x1000, CRC(5e46b789) SHA1(00b2510e07eb565cb373db798dd537191b0b7cc8) )
+ ROM_LOAD( "s1-3b", 0xe000, 0x1000, CRC(1308a32e) SHA1(da64fe7b76f5ac8ac35460e6c789ab1e986c78ef) )
+ ROM_LOAD( "s0-3a", 0xf000, 0x1000, CRC(beb4b1fc) SHA1(166a96b5757946231f3619844366218065412935) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "sa-1h", 0xe000, 0x1000, CRC(379387ec) SHA1(29d37f04c64ed53a2573962dfa9c0623b89e0045) )
+
+ ROM_REGION( 0x6000, "gfx1", 0 )
+ ROM_LOAD( "pnc-s4-11l", 0x0000, 0x1000, CRC(38a40f50) SHA1(c5188fc3eeffb9843a22211b95ef6fec656dedb9) )
+ ROM_LOAD( "pnc-s5-11m", 0x1000, 0x1000, CRC(c6c7236a) SHA1(da50b4066c6d39c1c860afdbd353de5576bf9fbf) )
+ ROM_LOAD( "pnc-s6-13l", 0x2000, 0x1000, CRC(20779144) SHA1(f580db44ce870cb5945ef341ef5dd674b170ffc6) )
+ ROM_LOAD( "pnc-s7-13m", 0x3000, 0x1000, CRC(8911a546) SHA1(e78ff510af33789e6a25227afa269008c049b553) )
+ ROM_LOAD( "pnc-s8-15l", 0x4000, 0x1000, CRC(1c8f5112) SHA1(01601dc443e1db13f9fb9b32cc5180d5d19b4c10) )
+ ROM_LOAD( "pnc-s9-15m", 0x5000, 0x1000, CRC(b919e43b) SHA1(1bb22f48a7914afc8b4eb8d90b9c6a4d93ae2b24) )
+
+ ROM_REGION( 0x0040, "proms", 0 )
+ ROM_LOAD( "sc-5m", 0x0000, 0x0020, CRC(2a976ebe) SHA1(f3c1b0d98f431f9cd0d5fa009fafa1115aabe6e5) )
+ ROM_LOAD( "sb-4c", 0x0020, 0x0020, CRC(a29b4204) SHA1(7f15cae5c4aaa29638fb45029782dafd2b3d1484) )
+ROM_END
+
+ROM_START( stictime )
+ ROM_REGION( 2*0x10000, "maincpu", 0 )
+ ROM_LOAD( "aa04.9b", 0xc000, 0x1000, CRC(368a25b5) SHA1(ed3f3712423979dcb351941fa85dce6a0a7bb16b) )
+ ROM_LOAD( "aa06.13b", 0xd000, 0x1000, CRC(b4ba400d) SHA1(8c77397e934907bc47a739f263196a0f2f81ba3d) )
+ ROM_LOAD( "aa05.10b", 0xe000, 0x1000, CRC(8005bffa) SHA1(d0da4e360039f6a8d8142a4e8e05c1f90c0af68a) )
+ ROM_LOAD( "aa07.15b", 0xf000, 0x1000, CRC(086440ad) SHA1(4a32bc92f8ff5fbe112f56e62d2c03da8851a7b9) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "ab14.12h", 0xe000, 0x1000, CRC(f55e5211) SHA1(27940026d0c6212d1138d2fd88880df697218627) )
+
+ ROM_REGION( 0x6000, "gfx1", 0 )
+ ROM_LOAD( "stic_aa12.7k", 0x0000, 0x1000, CRC(0550e118) SHA1(74ab46a307ea9d61e38ba0b541bf509436cd9290) )
+ ROM_LOAD( "ab13.9k", 0x1000, 0x1000, CRC(ac01042f) SHA1(e64b6381a9298eaf74e79fa5f1ea8e9596c58a49) )
+ ROM_LOAD( "stic_ab10.10k",0x2000, 0x1000, CRC(ba774d51) SHA1(68806bbe93aeea82d7aefc376b69af66858c6028) )
+ ROM_LOAD( "ab11.12k", 0x3000, 0x1000, CRC(d4848014) SHA1(0a55b091cd4e7f317c35defe13d5051b26042eee) )
+ ROM_LOAD( "stic_aa8.13k", 0x4000, 0x1000, CRC(00a15086) SHA1(e78047ebffdc642583d363b12dd8fbd1368eb3c4) )
+ ROM_LOAD( "ab9.15k", 0x5000, 0x1000, CRC(8dec15e6) SHA1(b72633de6268ce16742bba4dcba835df860d6c2f) )
+
+ ROM_REGION( 0x1800, "gfx2", 0 )
+ ROM_LOAD( "stic_ab00.1b", 0x0000, 0x0800, CRC(4010c652) SHA1(418eae0ef70c62c3f69becf167bd40a4faba176b) )
+ ROM_LOAD( "ab01.3b", 0x0800, 0x0800, CRC(25b49078) SHA1(4abdcbd4f3362c3e4463a1274731289f1a72d2e6) )
+ ROM_LOAD( "stic_ab02.4b", 0x1000, 0x0800, CRC(1def5b40) SHA1(845a6b1105757d4d921a4d1f9378a3731f6460b3) )
+
+ ROM_REGION( 0x0800, "bg_map", 0 )
+ ROM_LOAD( "ab03.6b", 0x0000, 0x0800, CRC(d26bc1f3) SHA1(737af6e264183a1f151f277a07cf250d6abb3fd8) )
+ROM_END
+
+ROM_START( vecbtime )
+ ROM_REGION( 2*0x10000, "maincpu", 0 )
+ ROM_LOAD( "ab05a1.12b", 0xb000, 0x1000, CRC(0a98b230) SHA1(aeee4f6f0aaa27575b80261d03c5453cc6ebd646) )
+ ROM_LOAD( "ab04.9b", 0xc000, 0x1000, CRC(797e5f75) SHA1(35ea5fa4b8f3494adf7774b3946ed2540ac826ff) )
+ ROM_LOAD( "ab06.13b", 0xd000, 0x1000, CRC(c77f3f64) SHA1(f283087fad0a102fe92be7ce80ed18e64dc93b67) )
+ ROM_LOAD( "ab05.10b", 0xe000, 0x1000, CRC(b0d3640f) SHA1(6ba28971714ece6f1c04fa2dbf1f9f216ded7cfa) )
+ ROM_LOAD( "ab07.15b", 0xf000, 0x1000, CRC(a142f862) SHA1(39d7ef172d18874885f1b1542e885cc4287dc344) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "ab14.12h", 0xe000, 0x1000, CRC(f55e5211) SHA1(27940026d0c6212d1138d2fd88880df697218627) )
+
+ ROM_REGION( 0x6000, "gfx1", 0 )
+ ROM_LOAD( "vec_ab12.7k", 0x0000, 0x1000, CRC(b02d859c) SHA1(0d506c52dd2a76d62bd980087fbb5c3808aedf56) )
+ ROM_LOAD( "vec_ab13.9k", 0x1000, 0x1000, CRC(d9757010) SHA1(fc70cfbd7bb7c23d0b5880f42ef92df711c6a46d) )
+ ROM_LOAD( "vec_ab10.10k", 0x2000, 0x1000, CRC(2b71a1db) SHA1(424c3fceeeb030c0cf89e8f872957a75d5475cfb) )
+ ROM_LOAD( "vec_ab11.12k", 0x3000, 0x1000, CRC(a98fea41) SHA1(1ddbb8b26bca2b8c6ab4d9b1bfd8b21db2b2d97b) )
+ ROM_LOAD( "vec_ab8.13k", 0x4000, 0x1000, CRC(0ca7828f) SHA1(eb7db2607b10e8276a97a20030bdbeeeb7b6935b) )
+ ROM_LOAD( "vec_ab9.15k", 0x5000, 0x1000, CRC(1e460ff7) SHA1(6ac3ec08e3c79490262324fd4a93a6eb1188554b) )
+
+ ROM_REGION( 0x1800, "gfx2", 0 )
+ ROM_LOAD( "vec_ab00.1b", 0x0000, 0x0800, CRC(03dbe9b6) SHA1(4844d490a767d15ed5230868cbd25dadf70cf1e3) )
+ ROM_LOAD( "vec_ab01.3b", 0x0800, 0x0800, CRC(698089da) SHA1(6b6e61536d1247a8784a4657cdc50e48b002335d) )
+ ROM_LOAD( "vec_ab02.4b", 0x1000, 0x0800, CRC(4464ccef) SHA1(1fa91178c55c1120910be89f724b909a356796e8) )
+
+ ROM_REGION( 0x0800, "bg_map", 0 )
+ ROM_LOAD( "ab03.6b", 0x0000, 0x0800, CRC(d26bc1f3) SHA1(737af6e264183a1f151f277a07cf250d6abb3fd8) )
+ROM_END
+
+
+GAME( 2002, bnjr, brubber, bnj, bnj, btime_state, lnc, ROT270, "DaveC", "Bump 'n' Jump Reverse Mod", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, pnc, lnc, lnc, lnc, btime_state, lnc, ROT270, "Marks Hacks", "Pac'n'Chase", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, stictime, btime, btime, btime, btime_state, btime, ROT270, "Marks Hacks", "Mr Sticky Time", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, vecbtime, btime, btime, btime, btime_state, btime, ROT270, "T-Bone", "Burgertime (Vector sim)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/bublbobl.cpp b/src/hbmame/drivers/bublbobl.cpp
new file mode 100644
index 00000000000..f1c00a12c11
--- /dev/null
+++ b/src/hbmame/drivers/bublbobl.cpp
@@ -0,0 +1,290 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/bublbobl.cpp"
+
+static INPUT_PORTS_START( bbaladar )
+ PORT_INCLUDE( boblbobl )
+
+ PORT_MODIFY( "DSW1" )
+ PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNKNOWN )
+INPUT_PORTS_END
+
+ROM_START( bbaladar )
+ ROM_REGION( 0x30000, "maincpu", 0 )
+ ROM_LOAD( "bbaladar.3", 0x00000, 0x8000, CRC(31bfc6fb) SHA1(6a72086d415a69b9e5c003ec6cf7858e8c4b346f) )
+ ROM_LOAD( "bbaladar.5", 0x10000, 0x8000, CRC(16386e9a) SHA1(77fa3f5ecce5c79ba52098c0870482459926b415) )
+ ROM_LOAD( "bbaladar.4", 0x18000, 0x8000, CRC(0c4bcb07) SHA1(3e3f7fa098d6be61d265cab5258dbd0e279bd8ed) )
+
+ ROM_REGION( 0x10000, "subcpu", 0 )
+ ROM_LOAD( "a78-08.37", 0x0000, 0x08000, CRC(ae11a07b) SHA1(af7a335c8da637103103cc274e077f123908ebb7) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "a78-07.46", 0x0000, 0x08000, CRC(4f9a26e8) SHA1(3105b34b88a7134493c2b3f584729f8b0407a011) )
+
+ ROM_REGION( 0x80000, "gfx1", ROMREGION_INVERT )
+ ROM_LOAD( "a78-09.12", 0x00000, 0x8000, CRC(20358c22) SHA1(2297af6c53d5807bf90a8e081075b8c72a994fc5) )
+ ROM_LOAD( "a78-10.13", 0x08000, 0x8000, CRC(930168a9) SHA1(fd358c3c3b424bca285f67a1589eb98a345ff670) )
+ ROM_LOAD( "a78-11.14", 0x10000, 0x8000, CRC(9773e512) SHA1(33c1687ee575d66bf0e98add45d06da827813765) )
+ ROM_LOAD( "a78-12.15", 0x18000, 0x8000, CRC(d045549b) SHA1(0c12077d3ddc2ce6aa45a0224ad5540f3f218446) )
+ ROM_LOAD( "a78-13.16", 0x20000, 0x8000, CRC(d0af35c5) SHA1(c5a89f4d73acc0db86654540b3abfd77b3757db5) )
+ ROM_LOAD( "a78-14.17", 0x28000, 0x8000, CRC(7b5369a8) SHA1(1307b26d80e6f36ebe6c442bebec41d20066eaf9) )
+ ROM_LOAD( "a78-15.30", 0x40000, 0x8000, CRC(6b61a413) SHA1(44eddf12fb46fceca2addbe6da929aaea7636b13) )
+ ROM_LOAD( "a78-16.31", 0x48000, 0x8000, CRC(b5492d97) SHA1(d5b045e3ebaa44809757a4220cefb3c6815470da) )
+ ROM_LOAD( "a78-17.32", 0x50000, 0x8000, CRC(d69762d5) SHA1(3326fef4e0bd86681a3047dc11886bb171ecb609) )
+ ROM_LOAD( "a78-18.33", 0x58000, 0x8000, CRC(9f243b68) SHA1(32dce8d311a4be003693182a999e4053baa6bb0a) )
+ ROM_LOAD( "a78-19.34", 0x60000, 0x8000, CRC(66e9438c) SHA1(b94e62b6fbe7f4e08086d0365afc5cff6e0ccafd) )
+ ROM_LOAD( "a78-20.35", 0x68000, 0x8000, CRC(9ef863ad) SHA1(29f91b5a3765e4d6e6c3382db1d8d8297b6e56c8) )
+
+ ROM_REGION( 0x0100, "proms", 0 )
+ ROM_LOAD( "a71-25.41", 0x0000, 0x0100, CRC(2d0f8545) SHA1(089c31e2f614145ef2743164f7b52ae35bc06808) )
+
+ ROM_REGION( 0x0600, "plds", 0 )
+ ROM_LOAD( "pal16r4.u36", 0x0000, 0x0104, CRC(22fe26ac) SHA1(bbbfcbe6faded4af7ceec57b800297c054a997da) )
+ ROM_LOAD( "pal16l8.u38", 0x0200, 0x0104, CRC(c02d9663) SHA1(5d23cfd96f072981fd5fcf0dd7e98459da58b662) )
+ ROM_LOAD( "pal16l8.u4", 0x0400, 0x0104, CRC(077d20a8) SHA1(8e568ffd6f66c3dd61708dd0f3be9c2ed488ae4b) )
+ROM_END
+
+ROM_START( bb2bmh )
+ ROM_REGION( 0x30000, "maincpu", 0 )
+ ROM_LOAD( "a78-06.51", 0x00000, 0x08000, CRC(32c8305b) SHA1(6bf69b3edfbefd33cd670a762b4bf0b39629a220) )
+ ROM_LOAD( "bb2bmh-05.52", 0x10000, 0x10000, CRC(d286f2e9) SHA1(ac293aa5bb3973738c7a48ce78c523154d650ded) )
+
+ ROM_REGION( 0x10000, "subcpu", 0 )
+ ROM_LOAD( "bb2bmh-08.37", 0x0000, 0x08000, CRC(ebce6c5c) SHA1(bd99a67a044763567c443b174115aae89957a60c) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "a78-07.46", 0x0000, 0x08000, CRC(4f9a26e8) SHA1(3105b34b88a7134493c2b3f584729f8b0407a011) )
+
+ ROM_REGION( 0x0800, "mcu", 0 )
+ ROM_LOAD( "68705.bin", 0x0000, 0x0800, CRC(78caa635) SHA1(a756e45b25b007843ba4f2204cad6081cf7260e9) )
+
+ ROM_REGION( 0x80000, "gfx1", ROMREGION_INVERT )
+ ROM_LOAD( "a78-09.12", 0x00000, 0x8000, CRC(20358c22) SHA1(2297af6c53d5807bf90a8e081075b8c72a994fc5) )
+ ROM_LOAD( "a78-10.13", 0x08000, 0x8000, CRC(930168a9) SHA1(fd358c3c3b424bca285f67a1589eb98a345ff670) )
+ ROM_LOAD( "a78-11.14", 0x10000, 0x8000, CRC(9773e512) SHA1(33c1687ee575d66bf0e98add45d06da827813765) )
+ ROM_LOAD( "a78-12.15", 0x18000, 0x8000, CRC(d045549b) SHA1(0c12077d3ddc2ce6aa45a0224ad5540f3f218446) )
+ ROM_LOAD( "a78-13.16", 0x20000, 0x8000, CRC(d0af35c5) SHA1(c5a89f4d73acc0db86654540b3abfd77b3757db5) )
+ ROM_LOAD( "a78-14.17", 0x28000, 0x8000, CRC(7b5369a8) SHA1(1307b26d80e6f36ebe6c442bebec41d20066eaf9) )
+ ROM_LOAD( "a78-15.30", 0x40000, 0x8000, CRC(6b61a413) SHA1(44eddf12fb46fceca2addbe6da929aaea7636b13) )
+ ROM_LOAD( "a78-16.31", 0x48000, 0x8000, CRC(b5492d97) SHA1(d5b045e3ebaa44809757a4220cefb3c6815470da) )
+ ROM_LOAD( "a78-17.32", 0x50000, 0x8000, CRC(d69762d5) SHA1(3326fef4e0bd86681a3047dc11886bb171ecb609) )
+ ROM_LOAD( "a78-18.33", 0x58000, 0x8000, CRC(9f243b68) SHA1(32dce8d311a4be003693182a999e4053baa6bb0a) )
+ ROM_LOAD( "a78-19.34", 0x60000, 0x8000, CRC(66e9438c) SHA1(b94e62b6fbe7f4e08086d0365afc5cff6e0ccafd) )
+ ROM_LOAD( "a78-20.35", 0x68000, 0x8000, CRC(9ef863ad) SHA1(29f91b5a3765e4d6e6c3382db1d8d8297b6e56c8) )
+
+ ROM_REGION( 0x0100, "proms", 0 )
+ ROM_LOAD( "a71-25.41", 0x0000, 0x0100, CRC(2d0f8545) SHA1(089c31e2f614145ef2743164f7b52ae35bc06808) )
+ROM_END
+
+ROM_START( bbhackv1 )
+ ROM_REGION( 0x30000, "maincpu", 0 )
+ ROM_LOAD( "a78-06.51", 0x00000, 0x08000, CRC(32c8305b) SHA1(6bf69b3edfbefd33cd670a762b4bf0b39629a220) )
+ ROM_LOAD( "bbhackv1-05.52", 0x10000, 0x10000, CRC(8da82422) SHA1(385ccd427b101255bc865af0802672b4d8432339) )
+
+ ROM_REGION( 0x10000, "subcpu", 0 )
+ ROM_LOAD( "bbhackv1-08.37", 0x0000, 0x08000, CRC(419caf60) SHA1(95d680c2be15e813081d3f78f17c5d97eda8b60b) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "a78-07.46", 0x0000, 0x08000, CRC(4f9a26e8) SHA1(3105b34b88a7134493c2b3f584729f8b0407a011) )
+
+ ROM_REGION( 0x0800, "mcu", 0 )
+ ROM_LOAD( "68705.bin", 0x0000, 0x0800, CRC(78caa635) SHA1(a756e45b25b007843ba4f2204cad6081cf7260e9) )
+
+ ROM_REGION( 0x80000, "gfx1", ROMREGION_INVERT )
+ ROM_LOAD( "a78-09.12", 0x00000, 0x8000, CRC(20358c22) SHA1(2297af6c53d5807bf90a8e081075b8c72a994fc5) )
+ ROM_LOAD( "a78-10.13", 0x08000, 0x8000, CRC(930168a9) SHA1(fd358c3c3b424bca285f67a1589eb98a345ff670) )
+ ROM_LOAD( "a78-11.14", 0x10000, 0x8000, CRC(9773e512) SHA1(33c1687ee575d66bf0e98add45d06da827813765) )
+ ROM_LOAD( "a78-12.15", 0x18000, 0x8000, CRC(d045549b) SHA1(0c12077d3ddc2ce6aa45a0224ad5540f3f218446) )
+ ROM_LOAD( "a78-13.16", 0x20000, 0x8000, CRC(d0af35c5) SHA1(c5a89f4d73acc0db86654540b3abfd77b3757db5) )
+ ROM_LOAD( "a78-14.17", 0x28000, 0x8000, CRC(7b5369a8) SHA1(1307b26d80e6f36ebe6c442bebec41d20066eaf9) )
+ ROM_LOAD( "a78-15.30", 0x40000, 0x8000, CRC(6b61a413) SHA1(44eddf12fb46fceca2addbe6da929aaea7636b13) )
+ ROM_LOAD( "a78-16.31", 0x48000, 0x8000, CRC(b5492d97) SHA1(d5b045e3ebaa44809757a4220cefb3c6815470da) )
+ ROM_LOAD( "a78-17.32", 0x50000, 0x8000, CRC(d69762d5) SHA1(3326fef4e0bd86681a3047dc11886bb171ecb609) )
+ ROM_LOAD( "a78-18.33", 0x58000, 0x8000, CRC(9f243b68) SHA1(32dce8d311a4be003693182a999e4053baa6bb0a) )
+ ROM_LOAD( "a78-19.34", 0x60000, 0x8000, CRC(66e9438c) SHA1(b94e62b6fbe7f4e08086d0365afc5cff6e0ccafd) )
+ ROM_LOAD( "a78-20.35", 0x68000, 0x8000, CRC(9ef863ad) SHA1(29f91b5a3765e4d6e6c3382db1d8d8297b6e56c8) )
+
+ ROM_REGION( 0x0100, "proms", 0 )
+ ROM_LOAD( "a71-25.41", 0x0000, 0x0100, CRC(2d0f8545) SHA1(089c31e2f614145ef2743164f7b52ae35bc06808) )
+ROM_END
+
+//Press P1+P2 while playing, to advance
+ROM_START( bbredux1 )
+ ROM_REGION( 0x30000, "maincpu", 0 )
+ ROM_LOAD( "bb3.1", 0x00000, 0x8000, CRC(b802046d) SHA1(93dba2507c67f3f61eca80908a7a4409d2cd1b75) )
+ ROM_LOAD( "bb5", 0x10000, 0x8000, CRC(d29d3444) SHA1(3db694a6ba2ba2ed85d31c2bc4c7c94911b99b85) )
+ ROM_LOAD( "bb4.1", 0x18000, 0x8000, CRC(19a5a0fa) SHA1(e7fff3643d7922a494ad8118d1a0f74e52443f9f) )
+
+ ROM_REGION( 0x10000, "subcpu", 0 )
+ ROM_LOAD( "a78-08.37", 0x0000, 0x08000, CRC(ae11a07b) SHA1(af7a335c8da637103103cc274e077f123908ebb7) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "a78-07.46", 0x0000, 0x08000, CRC(4f9a26e8) SHA1(3105b34b88a7134493c2b3f584729f8b0407a011) )
+
+ ROM_REGION( 0x80000, "gfx1", ROMREGION_INVERT )
+ ROM_LOAD( "a78-09.12", 0x00000, 0x8000, CRC(20358c22) SHA1(2297af6c53d5807bf90a8e081075b8c72a994fc5) )
+ ROM_LOAD( "a78-10.13", 0x08000, 0x8000, CRC(930168a9) SHA1(fd358c3c3b424bca285f67a1589eb98a345ff670) )
+ ROM_LOAD( "a78-11.14", 0x10000, 0x8000, CRC(9773e512) SHA1(33c1687ee575d66bf0e98add45d06da827813765) )
+ ROM_LOAD( "a78-12.15", 0x18000, 0x8000, CRC(d045549b) SHA1(0c12077d3ddc2ce6aa45a0224ad5540f3f218446) )
+ ROM_LOAD( "a78-13.16", 0x20000, 0x8000, CRC(d0af35c5) SHA1(c5a89f4d73acc0db86654540b3abfd77b3757db5) )
+ ROM_LOAD( "a78-14.17", 0x28000, 0x8000, CRC(7b5369a8) SHA1(1307b26d80e6f36ebe6c442bebec41d20066eaf9) )
+ ROM_LOAD( "a78-15.30", 0x40000, 0x8000, CRC(6b61a413) SHA1(44eddf12fb46fceca2addbe6da929aaea7636b13) )
+ ROM_LOAD( "a78-16.31", 0x48000, 0x8000, CRC(b5492d97) SHA1(d5b045e3ebaa44809757a4220cefb3c6815470da) )
+ ROM_LOAD( "a78-17.32", 0x50000, 0x8000, CRC(d69762d5) SHA1(3326fef4e0bd86681a3047dc11886bb171ecb609) )
+ ROM_LOAD( "a78-18.33", 0x58000, 0x8000, CRC(9f243b68) SHA1(32dce8d311a4be003693182a999e4053baa6bb0a) )
+ ROM_LOAD( "a78-19.34", 0x60000, 0x8000, CRC(66e9438c) SHA1(b94e62b6fbe7f4e08086d0365afc5cff6e0ccafd) )
+ ROM_LOAD( "a78-20.35", 0x68000, 0x8000, CRC(9ef863ad) SHA1(29f91b5a3765e4d6e6c3382db1d8d8297b6e56c8) )
+
+ ROM_REGION( 0x0100, "proms", 0 )
+ ROM_LOAD( "a71-25.41", 0x0000, 0x0100, CRC(2d0f8545) SHA1(089c31e2f614145ef2743164f7b52ae35bc06808) )
+
+ ROM_REGION( 0x0600, "plds", 0 )
+ ROM_LOAD( "pal16r4.u36", 0x0000, 0x0104, CRC(22fe26ac) SHA1(bbbfcbe6faded4af7ceec57b800297c054a997da) )
+ ROM_LOAD( "pal16l8.u38", 0x0200, 0x0104, CRC(c02d9663) SHA1(5d23cfd96f072981fd5fcf0dd7e98459da58b662) )
+ ROM_LOAD( "pal16l8.u4", 0x0400, 0x0104, CRC(077d20a8) SHA1(8e568ffd6f66c3dd61708dd0f3be9c2ed488ae4b) )
+ROM_END
+
+// When you die for the last time, it momentarily says press P1. Do so, to continue.
+ROM_START( bbredux2 )
+ ROM_REGION( 0x30000, "maincpu", 0 )
+ ROM_LOAD( "bb3.2", 0x00000, 0x8000, CRC(198dc44e) SHA1(de9538b47703c468f85ba318deb8aa0b65174a26) )
+ ROM_LOAD( "bb5", 0x10000, 0x8000, CRC(d29d3444) SHA1(3db694a6ba2ba2ed85d31c2bc4c7c94911b99b85) )
+ ROM_LOAD( "bb4.2", 0x18000, 0x8000, CRC(9b819b62) SHA1(79d7208cb81fa36ed317f4776b1eda3082b1a21c) )
+
+ ROM_REGION( 0x10000, "subcpu", 0 )
+ ROM_LOAD( "a78-08.37", 0x0000, 0x08000, CRC(ae11a07b) SHA1(af7a335c8da637103103cc274e077f123908ebb7) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "a78-07.46", 0x0000, 0x08000, CRC(4f9a26e8) SHA1(3105b34b88a7134493c2b3f584729f8b0407a011) )
+
+ ROM_REGION( 0x80000, "gfx1", ROMREGION_INVERT )
+ ROM_LOAD( "a78-09.12", 0x00000, 0x8000, CRC(20358c22) SHA1(2297af6c53d5807bf90a8e081075b8c72a994fc5) )
+ ROM_LOAD( "a78-10.13", 0x08000, 0x8000, CRC(930168a9) SHA1(fd358c3c3b424bca285f67a1589eb98a345ff670) )
+ ROM_LOAD( "a78-11.14", 0x10000, 0x8000, CRC(9773e512) SHA1(33c1687ee575d66bf0e98add45d06da827813765) )
+ ROM_LOAD( "a78-12.15", 0x18000, 0x8000, CRC(d045549b) SHA1(0c12077d3ddc2ce6aa45a0224ad5540f3f218446) )
+ ROM_LOAD( "a78-13.16", 0x20000, 0x8000, CRC(d0af35c5) SHA1(c5a89f4d73acc0db86654540b3abfd77b3757db5) )
+ ROM_LOAD( "a78-14.17", 0x28000, 0x8000, CRC(7b5369a8) SHA1(1307b26d80e6f36ebe6c442bebec41d20066eaf9) )
+ ROM_LOAD( "a78-15.30", 0x40000, 0x8000, CRC(6b61a413) SHA1(44eddf12fb46fceca2addbe6da929aaea7636b13) )
+ ROM_LOAD( "a78-16.31", 0x48000, 0x8000, CRC(b5492d97) SHA1(d5b045e3ebaa44809757a4220cefb3c6815470da) )
+ ROM_LOAD( "a78-17.32", 0x50000, 0x8000, CRC(d69762d5) SHA1(3326fef4e0bd86681a3047dc11886bb171ecb609) )
+ ROM_LOAD( "a78-18.33", 0x58000, 0x8000, CRC(9f243b68) SHA1(32dce8d311a4be003693182a999e4053baa6bb0a) )
+ ROM_LOAD( "a78-19.34", 0x60000, 0x8000, CRC(66e9438c) SHA1(b94e62b6fbe7f4e08086d0365afc5cff6e0ccafd) )
+ ROM_LOAD( "a78-20.35", 0x68000, 0x8000, CRC(9ef863ad) SHA1(29f91b5a3765e4d6e6c3382db1d8d8297b6e56c8) )
+
+ ROM_REGION( 0x0100, "proms", 0 )
+ ROM_LOAD( "a71-25.41", 0x0000, 0x0100, CRC(2d0f8545) SHA1(089c31e2f614145ef2743164f7b52ae35bc06808) )
+
+ ROM_REGION( 0x0600, "plds", 0 )
+ ROM_LOAD( "pal16r4.u36", 0x0000, 0x0104, CRC(22fe26ac) SHA1(bbbfcbe6faded4af7ceec57b800297c054a997da) )
+ ROM_LOAD( "pal16l8.u38", 0x0200, 0x0104, CRC(c02d9663) SHA1(5d23cfd96f072981fd5fcf0dd7e98459da58b662) )
+ ROM_LOAD( "pal16l8.u4", 0x0400, 0x0104, CRC(077d20a8) SHA1(8e568ffd6f66c3dd61708dd0f3be9c2ed488ae4b) )
+ROM_END
+
+// High score save is not working as yet
+ROM_START( bbredux3 )
+ ROM_REGION( 0x30000, "maincpu", 0 )
+ ROM_LOAD( "bb3.3", 0x00000, 0x8000, CRC(959cafca) SHA1(9c541e45326d27f4d25a1fd9d66f234ce7f969c9) )
+ ROM_LOAD( "bb5", 0x10000, 0x8000, CRC(d29d3444) SHA1(3db694a6ba2ba2ed85d31c2bc4c7c94911b99b85) )
+ ROM_LOAD( "bb4.3", 0x18000, 0x8000, CRC(3f350047) SHA1(7e23d1c9b1a29760d96dcc7f7784ae610ac860d9) )
+
+ ROM_REGION( 0x10000, "subcpu", 0 )
+ ROM_LOAD( "a78-08.37", 0x0000, 0x08000, CRC(ae11a07b) SHA1(af7a335c8da637103103cc274e077f123908ebb7) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "a78-07.46", 0x0000, 0x08000, CRC(4f9a26e8) SHA1(3105b34b88a7134493c2b3f584729f8b0407a011) )
+
+ ROM_REGION( 0x80000, "gfx1", ROMREGION_INVERT )
+ ROM_LOAD( "a78-09.12", 0x00000, 0x8000, CRC(20358c22) SHA1(2297af6c53d5807bf90a8e081075b8c72a994fc5) )
+ ROM_LOAD( "a78-10.13", 0x08000, 0x8000, CRC(930168a9) SHA1(fd358c3c3b424bca285f67a1589eb98a345ff670) )
+ ROM_LOAD( "a78-11.14", 0x10000, 0x8000, CRC(9773e512) SHA1(33c1687ee575d66bf0e98add45d06da827813765) )
+ ROM_LOAD( "a78-12.15", 0x18000, 0x8000, CRC(d045549b) SHA1(0c12077d3ddc2ce6aa45a0224ad5540f3f218446) )
+ ROM_LOAD( "a78-13.16", 0x20000, 0x8000, CRC(d0af35c5) SHA1(c5a89f4d73acc0db86654540b3abfd77b3757db5) )
+ ROM_LOAD( "a78-14.17", 0x28000, 0x8000, CRC(7b5369a8) SHA1(1307b26d80e6f36ebe6c442bebec41d20066eaf9) )
+ ROM_LOAD( "a78-15.30", 0x40000, 0x8000, CRC(6b61a413) SHA1(44eddf12fb46fceca2addbe6da929aaea7636b13) )
+ ROM_LOAD( "a78-16.31", 0x48000, 0x8000, CRC(b5492d97) SHA1(d5b045e3ebaa44809757a4220cefb3c6815470da) )
+ ROM_LOAD( "a78-17.32", 0x50000, 0x8000, CRC(d69762d5) SHA1(3326fef4e0bd86681a3047dc11886bb171ecb609) )
+ ROM_LOAD( "a78-18.33", 0x58000, 0x8000, CRC(9f243b68) SHA1(32dce8d311a4be003693182a999e4053baa6bb0a) )
+ ROM_LOAD( "a78-19.34", 0x60000, 0x8000, CRC(66e9438c) SHA1(b94e62b6fbe7f4e08086d0365afc5cff6e0ccafd) )
+ ROM_LOAD( "a78-20.35", 0x68000, 0x8000, CRC(9ef863ad) SHA1(29f91b5a3765e4d6e6c3382db1d8d8297b6e56c8) )
+
+ ROM_REGION( 0x0100, "proms", 0 )
+ ROM_LOAD( "a71-25.41", 0x0000, 0x0100, CRC(2d0f8545) SHA1(089c31e2f614145ef2743164f7b52ae35bc06808) )
+
+ ROM_REGION( 0x0600, "plds", 0 )
+ ROM_LOAD( "pal16r4.u36", 0x0000, 0x0104, CRC(22fe26ac) SHA1(bbbfcbe6faded4af7ceec57b800297c054a997da) )
+ ROM_LOAD( "pal16l8.u38", 0x0200, 0x0104, CRC(c02d9663) SHA1(5d23cfd96f072981fd5fcf0dd7e98459da58b662) )
+ ROM_LOAD( "pal16l8.u4", 0x0400, 0x0104, CRC(077d20a8) SHA1(8e568ffd6f66c3dd61708dd0f3be9c2ed488ae4b) )
+ROM_END
+
+// issues since 2017-08-06: music keeps dropping out, reboots if you press ctrl instead of 1 at level select screen
+ROM_START( sboblboblh )
+ ROM_REGION( 0x30000, "maincpu", 0 )
+ ROM_LOAD( "bb3.u28", 0x00000, 0x08000, CRC(c23cd704) SHA1(a389ecc8d55d1b0c915fd3814d93338b9e402701) )
+ ROM_LOAD( "bb5.s", 0x10000, 0x08000, CRC(13118eb1) SHA1(5a5da40c2cc82420f70bc58ffa32de1088c6c82f) )
+ ROM_LOAD( "bbb-4.rom", 0x18000, 0x08000, CRC(94c75591) SHA1(7698bc4b7d20e554a73a489cd3a15ae61b350e37) )
+
+ ROM_REGION( 0x10000, "subcpu", 0 )
+ ROM_LOAD( "a78-08.37", 0x0000, 0x08000, CRC(ae11a07b) SHA1(af7a335c8da637103103cc274e077f123908ebb7) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "a78-07.46", 0x0000, 0x08000, CRC(4f9a26e8) SHA1(3105b34b88a7134493c2b3f584729f8b0407a011) )
+
+ ROM_REGION( 0x80000, "gfx1", ROMREGION_INVERT )
+ ROM_LOAD( "a78-09.12", 0x00000, 0x8000, CRC(20358c22) SHA1(2297af6c53d5807bf90a8e081075b8c72a994fc5) )
+ ROM_LOAD( "a78-10.13", 0x08000, 0x8000, CRC(930168a9) SHA1(fd358c3c3b424bca285f67a1589eb98a345ff670) )
+ ROM_LOAD( "a78-11.14", 0x10000, 0x8000, CRC(9773e512) SHA1(33c1687ee575d66bf0e98add45d06da827813765) )
+ ROM_LOAD( "a78-12.15", 0x18000, 0x8000, CRC(d045549b) SHA1(0c12077d3ddc2ce6aa45a0224ad5540f3f218446) )
+ ROM_LOAD( "a78-13.16", 0x20000, 0x8000, CRC(d0af35c5) SHA1(c5a89f4d73acc0db86654540b3abfd77b3757db5) )
+ ROM_LOAD( "a78-14.17", 0x28000, 0x8000, CRC(7b5369a8) SHA1(1307b26d80e6f36ebe6c442bebec41d20066eaf9) )
+ ROM_LOAD( "a78-15.30", 0x40000, 0x8000, CRC(6b61a413) SHA1(44eddf12fb46fceca2addbe6da929aaea7636b13) )
+ ROM_LOAD( "a78-16.31", 0x48000, 0x8000, CRC(b5492d97) SHA1(d5b045e3ebaa44809757a4220cefb3c6815470da) )
+ ROM_LOAD( "a78-17.32", 0x50000, 0x8000, CRC(d69762d5) SHA1(3326fef4e0bd86681a3047dc11886bb171ecb609) )
+ ROM_LOAD( "a78-18.33", 0x58000, 0x8000, CRC(9f243b68) SHA1(32dce8d311a4be003693182a999e4053baa6bb0a) )
+ ROM_LOAD( "a78-19.34", 0x60000, 0x8000, CRC(66e9438c) SHA1(b94e62b6fbe7f4e08086d0365afc5cff6e0ccafd) )
+ ROM_LOAD( "a78-20.35", 0x68000, 0x8000, CRC(9ef863ad) SHA1(29f91b5a3765e4d6e6c3382db1d8d8297b6e56c8) )
+
+ ROM_REGION( 0x0100, "proms", 0 )
+ ROM_LOAD( "a71-25.41", 0x0000, 0x0100, CRC(2d0f8545) SHA1(089c31e2f614145ef2743164f7b52ae35bc06808) )
+ROM_END
+
+ROM_START( bublbobf )
+ ROM_REGION( 0x30000, "maincpu", 0 )
+ ROM_LOAD( "bublbobf-06.51", 0x00000, 0x08000, CRC(9ced3d8f) SHA1(d445f218fca822e7083a9347abd4a4e049b6555b) )
+ ROM_LOAD( "bublbobf-05.52", 0x10000, 0x10000, CRC(56197d88) SHA1(b1b750df33835df012b2550585edcd6ea58db186) )
+
+ ROM_REGION( 0x10000, "subcpu", 0 )
+ ROM_LOAD( "a78-08.37", 0x0000, 0x08000, CRC(ae11a07b) SHA1(af7a335c8da637103103cc274e077f123908ebb7) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "a78-07.46", 0x0000, 0x08000, CRC(4f9a26e8) SHA1(3105b34b88a7134493c2b3f584729f8b0407a011) )
+
+ ROM_REGION( 0x10000, "mcu", 0 )
+ ROM_LOAD( "a78-01.17", 0xf000, 0x1000, CRC(b1bfb53d) SHA1(31b8f31acd3aa394acd80db362774749842e1285) )
+
+ ROM_REGION( 0x80000, "gfx1", ROMREGION_INVERT )
+ ROM_LOAD( "a78-09.12", 0x00000, 0x8000, CRC(20358c22) SHA1(2297af6c53d5807bf90a8e081075b8c72a994fc5) )
+ ROM_LOAD( "a78-10.13", 0x08000, 0x8000, CRC(930168a9) SHA1(fd358c3c3b424bca285f67a1589eb98a345ff670) )
+ ROM_LOAD( "a78-11.14", 0x10000, 0x8000, CRC(9773e512) SHA1(33c1687ee575d66bf0e98add45d06da827813765) )
+ ROM_LOAD( "a78-12.15", 0x18000, 0x8000, CRC(d045549b) SHA1(0c12077d3ddc2ce6aa45a0224ad5540f3f218446) )
+ ROM_LOAD( "a78-13.16", 0x20000, 0x8000, CRC(d0af35c5) SHA1(c5a89f4d73acc0db86654540b3abfd77b3757db5) )
+ ROM_LOAD( "a78-14.17", 0x28000, 0x8000, CRC(7b5369a8) SHA1(1307b26d80e6f36ebe6c442bebec41d20066eaf9) )
+ ROM_LOAD( "a78-15.30", 0x40000, 0x8000, CRC(6b61a413) SHA1(44eddf12fb46fceca2addbe6da929aaea7636b13) )
+ ROM_LOAD( "a78-16.31", 0x48000, 0x8000, CRC(b5492d97) SHA1(d5b045e3ebaa44809757a4220cefb3c6815470da) )
+ ROM_LOAD( "a78-17.32", 0x50000, 0x8000, CRC(d69762d5) SHA1(3326fef4e0bd86681a3047dc11886bb171ecb609) )
+ ROM_LOAD( "a78-18.33", 0x58000, 0x8000, CRC(9f243b68) SHA1(32dce8d311a4be003693182a999e4053baa6bb0a) )
+ ROM_LOAD( "a78-19.34", 0x60000, 0x8000, CRC(66e9438c) SHA1(b94e62b6fbe7f4e08086d0365afc5cff6e0ccafd) )
+ ROM_LOAD( "a78-20.35", 0x68000, 0x8000, CRC(9ef863ad) SHA1(29f91b5a3765e4d6e6c3382db1d8d8297b6e56c8) )
+
+ ROM_REGION( 0x0100, "proms", 0 )
+ ROM_LOAD( "a71-25.41", 0x0000, 0x0100, CRC(2d0f8545) SHA1(089c31e2f614145ef2743164f7b52ae35bc06808) )
+ROM_END
+
+
+GAME( 2012, bbaladar, bublbobl, boblbobl, bbaladar, bublbobl_state, common , ROT0, "Aladar", "Bubble Bobble Bootleg", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, bb2bmh, bublbobl, bub68705, bublbobl, bub68705_state, common , ROT0, "hack", "Bubble Bobble (Memories Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, bbhackv1, bublbobl, bub68705, bublbobl, bub68705_state, common , ROT0, "hack", "Bubble Bobble (Level Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2013, bbredux1, bublbobl, boblbobl, boblbobl, bublbobl_state, common , ROT0, "Punji", "Bobble Bobble Redux (Level Skip)", MACHINE_SUPPORTS_SAVE )
+GAME( 2013, bbredux2, bublbobl, boblbobl, boblbobl, bublbobl_state, common , ROT0, "Punji", "Bobble Bobble Redux (Game Continue)", MACHINE_SUPPORTS_SAVE )
+GAME( 2013, bbredux3, bublbobl, boblbobl, boblbobl, bublbobl_state, common , ROT0, "Punji", "Bobble Bobble Redux (High Score)", MACHINE_SUPPORTS_SAVE )
+GAME( 19??, sboblboblh, bublbobl, boblbobl, boblbobl, bublbobl_state, common , ROT0, "hack", "Super Bobble Bobble (Level Select)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 2007, bublbobf, bublbobl, bublbobl, bublbobl, bublbobl_state, common , ROT0, "Arkatrad", "Bubble Bobble (French)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/bwidow.cpp b/src/hbmame/drivers/bwidow.cpp
new file mode 100644
index 00000000000..bf5a79d2817
--- /dev/null
+++ b/src/hbmame/drivers/bwidow.cpp
@@ -0,0 +1,38 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/bwidow.cpp"
+
+/************************************************************************************************
+ *
+ * The only sound in this game is a low continuous growl when a ship is damaged or destroyed
+ *
+ ************************************************************************************************/
+
+
+ROM_START( spacwarp )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ /* Vector ROM */
+ ROM_LOAD( "spacwarp.106", 0x2800, 0x0800, CRC(23a25ff9) SHA1(e4117e6c453408079bd4a9e7b30a9b82e7b1712d) )
+ ROM_LOAD( "136006.107", 0x3000, 0x1000, CRC(d8dd0461) SHA1(58060b20b2511d30d2ec06479d21840bdd0b53c6) )
+ /* Program ROM */
+ ROM_LOAD( "spacwarp.201", 0x4000, 0x1000, CRC(0acb38e9) SHA1(dcdeeedc798d7735d03249559556d55b8256abc6) )
+ ROM_LOAD( "spacwarp.102", 0x5000, 0x1000, CRC(75fae2df) SHA1(7510e93781fe444ff10aac92abf4b882a65999aa) )
+ ROM_LOAD( "136006.103", 0x6000, 0x1000, CRC(ee72da63) SHA1(d36d62cdf7fe76ee9cdbfc2e76ac5d90f22986ba) )
+ ROM_LOAD( "spacwarp.104", 0x7000, 0x1000, CRC(aae05ec6) SHA1(14629e8375e1ae12dce96a742f1a0777e5114edb) )
+ ROM_LOAD( "spacwarp.105", 0x8000, 0x1000, CRC(41cddb2d) SHA1(8dcd7f72ca1099b04f3d29730b5071d3cb55888e) )
+ ROM_RELOAD( 0xf000, 0x1000 ) /* for reset/interrupt vectors */
+
+ // patch irq code to acknowledge the interrupt
+ ROM_COPY( "maincpu", 0x4003, 0x5353, 3 ) // move jump
+ ROM_FILL(0x4004, 1, 0x50) // new jump
+ ROM_FILL(0x4005, 1, 0x53)
+ ROM_FILL(0x5350, 1, 0x8D) // ack irq
+ ROM_FILL(0x5351, 1, 0x00)
+ ROM_FILL(0x5352, 1, 0x0E)
+
+ /* AVG PROM */
+ ROM_REGION( 0x100, "user1", 0 )
+ ROM_LOAD( "136002-125.n4", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
+ROM_END
+
+GAME( 1999, spacwarp, 0, spacduel, spacduel, bwidow_state, 0, ROT0, "Jeff Hendrix", "Space War (Proto on Space Duel HW)", MACHINE_IS_INCOMPLETE | MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/cave.cpp b/src/hbmame/drivers/cave.cpp
new file mode 100644
index 00000000000..9e84018ec68
--- /dev/null
+++ b/src/hbmame/drivers/cave.cpp
@@ -0,0 +1,201 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/cave.cpp"
+
+
+ROM_START( pwrinst2h )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "pwrinst2h.u45", 0x000000, 0x80000, CRC(126af635) SHA1(83222ed11f4f8e7b8bb6b5bc78ff1ef59738124d) )
+ ROM_LOAD16_BYTE( "pwrinst2h.u44", 0x000001, 0x80000, CRC(e4eff14d) SHA1(d60de745c79e53a909905e0769a776d2e2d96a02) )
+ ROM_LOAD16_BYTE( "g02.u43", 0x100000, 0x80000, CRC(178e3d24) SHA1(926234f4196a5d5e3bd1438abbf73355f2c65b06) )
+ ROM_LOAD16_BYTE( "g02.u42", 0x100001, 0x80000, CRC(a0b4ee99) SHA1(c6df4aa2543b04d8bda7683f503e5eb763e506af) )
+
+ ROM_REGION16_BE( 0x100000, "user1", ROMREGION_ERASE00 )
+
+ ROM_REGION( 0x20000, "audiocpu", 0 )
+ ROM_LOAD( "g02.u3a", 0x00000, 0x20000, CRC(ebea5e1e) SHA1(4d3af9e5f29d0c1b26563f51250039c9e8bd3735) )
+
+ ROM_REGION( 0x1C00000, "sprites0", 0 )
+ ROM_LOAD( "g02.u61", 0x000000, 0x200000, CRC(91e30398) SHA1(2b59a5e40bed2a988382054fe30d92808dad3348) )
+ ROM_LOAD( "g02.u62", 0x200000, 0x200000, CRC(d9455dd7) SHA1(afa69fe9a540cd78b8cfecf09cffa1401c01141a) )
+ ROM_LOAD( "g02.u63", 0x400000, 0x200000, CRC(4d20560b) SHA1(ceaee8cf0b69cc366b95ddcb689a5594d79e5114) )
+ ROM_LOAD( "g02.u64", 0x600000, 0x200000, CRC(b17b9b6e) SHA1(fc6213d8322cda4c7f653e2d7d6d314ce84c97b7) )
+ ROM_LOAD( "g02.u65", 0x800000, 0x200000, CRC(08541878) SHA1(138cf077a49a26440a3da1bdc2c399a208359e57) )
+ ROM_LOAD( "g02.u66", 0xa00000, 0x200000, CRC(becf2a36) SHA1(f8b386d0292b1dc745b7253a3df51d1aa8d5e9db) )
+ ROM_LOAD( "g02.u67", 0xc00000, 0x200000, CRC(52fe2b8b) SHA1(dd50aa62f7db995e28f47de9b3fb749aeeaaa5b0) )
+
+ ROM_REGION( 0x200000, "layer0", 0 )
+ ROM_LOAD( "g02.u78", 0x000000, 0x200000, CRC(1eca63d2) SHA1(538942b43301f950e3d5139461331c54dc90129d) )
+
+ ROM_REGION( 0x100000, "layer1", 0 )
+ ROM_LOAD( "g02.u81", 0x000000, 0x100000, CRC(8a3ff685) SHA1(4a59ec50ec4470453374fe10f76d3e894494b49f) )
+
+ ROM_REGION( 0x100000, "layer2", 0 )
+ ROM_LOAD( "g02.u89", 0x000000, 0x100000, CRC(373e1f73) SHA1(ec1ae9fab37eee41be8e1bc6dad03809b62fdbce) )
+
+ ROM_REGION( 0x080000, "layer3", 0 )
+ ROM_LOAD( "g02.82a", 0x000000, 0x080000, CRC(4b3567d6) SHA1(d3e14783b312d2bea9722a8e3c22bcec81e26166) )
+
+ ROM_REGION( 0x440000, "oki1", 0 )
+ ROM_LOAD( "g02.u53", 0x040000, 0x200000, CRC(c4bdd9e0) SHA1(a938a831e789ddf6f3cc5f3e5f3877ec7bd62d4e) )
+ ROM_LOAD( "g02.u54", 0x240000, 0x200000, CRC(1357d50e) SHA1(433766177ce9d6933f90de85ba91bfc6d8d5d664) )
+
+ ROM_REGION( 0x440000, "oki2", 0 )
+ ROM_LOAD( "g02.u55", 0x040000, 0x200000, CRC(2d102898) SHA1(bd81f4cd2ba100707db0c5bb1419f0b23c998574) )
+ ROM_LOAD( "g02.u56", 0x240000, 0x200000, CRC(9ff50dda) SHA1(1121685e387c20e228032f2b0f5cbb606376fc15) )
+ROM_END
+
+ROM_START( pwrinst2z )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "pwrinst2z.u45", 0x000000, 0x80000, CRC(7b66ff4f) SHA1(ffbc2616197f1fd67dfbb9993018fe51fb12e623) )
+ ROM_IGNORE(0x3d4f47)
+ ROM_LOAD16_BYTE( "pwrinst2z.u44", 0x000001, 0x80000, CRC(b2b19ac4) SHA1(5d846c9e8a69b754bd8e874c3df50a20c0ab009a) )
+ ROM_IGNORE(0x3d4f48)
+ ROM_LOAD16_BYTE( "g02.u43", 0x100000, 0x80000, CRC(178e3d24) SHA1(926234f4196a5d5e3bd1438abbf73355f2c65b06) )
+ ROM_LOAD16_BYTE( "g02.u42", 0x100001, 0x80000, CRC(a0b4ee99) SHA1(c6df4aa2543b04d8bda7683f503e5eb763e506af) )
+
+ ROM_REGION16_BE( 0x100000, "user1", ROMREGION_ERASE00 )
+
+ ROM_REGION( 0x20000, "audiocpu", 0 )
+ ROM_LOAD( "g02.u3a", 0x00000, 0x20000, CRC(ebea5e1e) SHA1(4d3af9e5f29d0c1b26563f51250039c9e8bd3735) )
+
+ ROM_REGION( 0x1C00000, "sprites0", 0 )
+ ROM_LOAD( "g02.u61", 0x000000, 0x200000, CRC(91e30398) SHA1(2b59a5e40bed2a988382054fe30d92808dad3348) )
+ ROM_LOAD( "g02.u62", 0x200000, 0x200000, CRC(d9455dd7) SHA1(afa69fe9a540cd78b8cfecf09cffa1401c01141a) )
+ ROM_LOAD( "g02.u63", 0x400000, 0x200000, CRC(4d20560b) SHA1(ceaee8cf0b69cc366b95ddcb689a5594d79e5114) )
+ ROM_LOAD( "g02.u64", 0x600000, 0x200000, CRC(b17b9b6e) SHA1(fc6213d8322cda4c7f653e2d7d6d314ce84c97b7) )
+ ROM_LOAD( "g02.u65", 0x800000, 0x200000, CRC(08541878) SHA1(138cf077a49a26440a3da1bdc2c399a208359e57) )
+ ROM_LOAD( "g02.u66", 0xa00000, 0x200000, CRC(becf2a36) SHA1(f8b386d0292b1dc745b7253a3df51d1aa8d5e9db) )
+ ROM_LOAD( "g02.u67", 0xc00000, 0x200000, CRC(52fe2b8b) SHA1(dd50aa62f7db995e28f47de9b3fb749aeeaaa5b0) )
+
+ ROM_REGION( 0x200000, "layer0", 0 )
+ ROM_LOAD( "g02.u78", 0x000000, 0x200000, CRC(1eca63d2) SHA1(538942b43301f950e3d5139461331c54dc90129d) )
+
+ ROM_REGION( 0x100000, "layer1", 0 )
+ ROM_LOAD( "g02.u81", 0x000000, 0x100000, CRC(8a3ff685) SHA1(4a59ec50ec4470453374fe10f76d3e894494b49f) )
+
+ ROM_REGION( 0x100000, "layer2", 0 )
+ ROM_LOAD( "g02.u89", 0x000000, 0x100000, CRC(373e1f73) SHA1(ec1ae9fab37eee41be8e1bc6dad03809b62fdbce) )
+
+ ROM_REGION( 0x080000, "layer3", 0 )
+ ROM_LOAD( "g02.82a", 0x000000, 0x080000, CRC(4b3567d6) SHA1(d3e14783b312d2bea9722a8e3c22bcec81e26166) )
+
+ ROM_REGION( 0x440000, "oki1", 0 )
+ ROM_LOAD( "g02.u53", 0x040000, 0x200000, CRC(c4bdd9e0) SHA1(a938a831e789ddf6f3cc5f3e5f3877ec7bd62d4e) )
+ ROM_LOAD( "g02.u54", 0x240000, 0x200000, CRC(1357d50e) SHA1(433766177ce9d6933f90de85ba91bfc6d8d5d664) )
+
+ ROM_REGION( 0x440000, "oki2", 0 )
+ ROM_LOAD( "g02.u55", 0x040000, 0x200000, CRC(2d102898) SHA1(bd81f4cd2ba100707db0c5bb1419f0b23c998574) )
+ ROM_LOAD( "g02.u56", 0x240000, 0x200000, CRC(9ff50dda) SHA1(1121685e387c20e228032f2b0f5cbb606376fc15) )
+ROM_END
+
+GAME( 2013, pwrinst2h, pwrinst2, pwrinst2, metmqstr, cave_state, pwrinst2j, ROT0, "TT", "Power Instinct 2 (hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, pwrinst2z, pwrinst2, pwrinst2, metmqstr, cave_state, pwrinst2j, ROT0, "hack", "Power Instinct 2 (unknown hack)", MACHINE_SUPPORTS_SAVE )
+
+// From PScave
+
+ROM_START( pwrinst2s01 )
+ ROM_REGION( 0xA00000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "g02hc01.u45", 0x000000, 0x454F47, CRC(7b66ff4f) SHA1(ffbc2616197f1fd67dfbb9993018fe51fb12e623) )
+ ROM_LOAD16_BYTE( "g02hc01.u44", 0x000001, 0x454F48, CRC(b2b19ac4) SHA1(5d846c9e8a69b754bd8e874c3df50a20c0ab009a) )
+ ROM_LOAD16_BYTE( "g02.u43", 0x100000, 0x80000, CRC(178e3d24) SHA1(926234f4196a5d5e3bd1438abbf73355f2c65b06) )
+ ROM_LOAD16_BYTE( "g02.u42", 0x100001, 0x80000, CRC(a0b4ee99) SHA1(c6df4aa2543b04d8bda7683f503e5eb763e506af) )
+
+ ROM_REGION16_BE( 0x100000, "user1", ROMREGION_ERASE00 )
+
+ ROM_REGION( 0x20000, "audiocpu", 0 )
+ ROM_LOAD( "g02.u3a", 0x00000, 0x20000, CRC(ebea5e1e) SHA1(4d3af9e5f29d0c1b26563f51250039c9e8bd3735) )
+
+ ROM_REGION( 0x1C00000, "sprites0", 0 )
+ ROM_LOAD( "g02.u61", 0x000000, 0x200000, CRC(91e30398) SHA1(2b59a5e40bed2a988382054fe30d92808dad3348) )
+ ROM_LOAD( "g02.u62", 0x200000, 0x200000, CRC(d9455dd7) SHA1(afa69fe9a540cd78b8cfecf09cffa1401c01141a) )
+ ROM_LOAD( "g02.u63", 0x400000, 0x200000, CRC(4d20560b) SHA1(ceaee8cf0b69cc366b95ddcb689a5594d79e5114) )
+ ROM_LOAD( "g02.u64", 0x600000, 0x200000, CRC(b17b9b6e) SHA1(fc6213d8322cda4c7f653e2d7d6d314ce84c97b7) )
+ ROM_LOAD( "g02.u65", 0x800000, 0x200000, CRC(08541878) SHA1(138cf077a49a26440a3da1bdc2c399a208359e57) )
+ ROM_LOAD( "g02.u66", 0xa00000, 0x200000, CRC(becf2a36) SHA1(f8b386d0292b1dc745b7253a3df51d1aa8d5e9db) )
+ ROM_LOAD( "g02.u67", 0xc00000, 0x200000, CRC(52fe2b8b) SHA1(dd50aa62f7db995e28f47de9b3fb749aeeaaa5b0) )
+
+ ROM_REGION( 0x200000, "layer0", 0 )
+ ROM_LOAD( "g02.u78", 0x000000, 0x200000, CRC(1eca63d2) SHA1(538942b43301f950e3d5139461331c54dc90129d) )
+
+ ROM_REGION( 0x100000, "layer1", 0 )
+ ROM_LOAD( "g02.u81", 0x000000, 0x100000, CRC(8a3ff685) SHA1(4a59ec50ec4470453374fe10f76d3e894494b49f) )
+
+ ROM_REGION( 0x100000, "layer2", 0 )
+ ROM_LOAD( "g02.u89", 0x000000, 0x100000, CRC(373e1f73) SHA1(ec1ae9fab37eee41be8e1bc6dad03809b62fdbce) )
+
+ ROM_REGION( 0x080000, "layer3", 0 )
+ ROM_LOAD( "g02.82a", 0x000000, 0x080000, CRC(4b3567d6) SHA1(d3e14783b312d2bea9722a8e3c22bcec81e26166) )
+
+ ROM_REGION( 0x440000, "oki1", 0 )
+ ROM_LOAD( "g02.u53", 0x040000, 0x200000, CRC(c4bdd9e0) SHA1(a938a831e789ddf6f3cc5f3e5f3877ec7bd62d4e) )
+ ROM_LOAD( "g02.u54", 0x240000, 0x200000, CRC(1357d50e) SHA1(433766177ce9d6933f90de85ba91bfc6d8d5d664) )
+
+ ROM_REGION( 0x440000, "oki2", 0 )
+ ROM_LOAD( "g02.u55", 0x040000, 0x200000, CRC(2d102898) SHA1(bd81f4cd2ba100707db0c5bb1419f0b23c998574) )
+ ROM_LOAD( "g02.u56", 0x240000, 0x200000, CRC(9ff50dda) SHA1(1121685e387c20e228032f2b0f5cbb606376fc15) )
+ROM_END
+
+ /****************************************************
+ Gouketsuji Gaiden
+*****************************************************/
+
+ROM_START( plegendsjs01 )
+ ROM_REGION( 0xA00000, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "proghc01.u45", 0x000000, 0x454F5D, CRC(ab7d1e49) SHA1(2bab667194d69cbec20744fac693f3953cd28578) )
+ ROM_LOAD16_BYTE( "proghc01.u44", 0x000001, 0x454F49, CRC(bad17718) SHA1(f44413152dcbf07fd93e7447827679faeb0ee651) )
+ ROM_LOAD16_BYTE( "pr12.u2", 0x100000, 0x80000, CRC(0e202559) SHA1(217a8e47d5c679aff02ca43de1641230e4f78b01) ) /* Contains text in Japanese */
+ ROM_LOAD16_BYTE( "pr12.u3", 0x100001, 0x80000, CRC(54742f21) SHA1(fae7bb7381478eb077f0409acd521f77417aa968) ) /* Contains text in Japanese */
+
+ ROM_REGION16_BE( 0x100000, "user1", 0 ) /* 68000 extra data roms */
+ ROM_LOAD16_BYTE( "d15.u4", 0x000000, 0x80000, CRC(6352cec0) SHA1(a54d55b8d642e438158268d0d41880b6589e48e2) )
+ ROM_LOAD16_BYTE( "d17.u5", 0x000001, 0x80000, CRC(7af810d8) SHA1(5e24f78a228809a001f3f3372c1b32ea05070e17) )
+
+ ROM_REGION( 0x20000, "audiocpu", 0 ) /* Z80 code */
+ ROM_LOAD( "sound.u3", 0x00000, 0x20000, CRC(36f71520) SHA1(11d0a059ddba3e1aa4c54ccdde7b3f5c7bde482f) )
+
+ ROM_REGION( 0x1000000 * 2, "sprites0", 0 ) /* Sprites: * 2 */
+ ROM_LOAD( "g02.u61", 0x000000, 0x200000, CRC(91e30398) SHA1(2b59a5e40bed2a988382054fe30d92808dad3348) )
+ ROM_LOAD( "g02.u62", 0x200000, 0x200000, CRC(d9455dd7) SHA1(afa69fe9a540cd78b8cfecf09cffa1401c01141a) )
+ ROM_LOAD( "g02.u63", 0x400000, 0x200000, CRC(4d20560b) SHA1(ceaee8cf0b69cc366b95ddcb689a5594d79e5114) )
+ ROM_LOAD( "g02.u64", 0x600000, 0x200000, CRC(b17b9b6e) SHA1(fc6213d8322cda4c7f653e2d7d6d314ce84c97b7) )
+ ROM_LOAD( "g02.u65", 0x800000, 0x200000, CRC(08541878) SHA1(138cf077a49a26440a3da1bdc2c399a208359e57) )
+ ROM_LOAD( "g02.u66", 0xa00000, 0x200000, CRC(becf2a36) SHA1(f8b386d0292b1dc745b7253a3df51d1aa8d5e9db) )
+ ROM_LOAD( "atgs.u1", 0xc00000, 0x200000, CRC(aa6f34a9) SHA1(00de85de1b413bd2c46931c13365f8556b50b634) ) /* US version's rom labeled "sp6_u67-1" */
+ ROM_LOAD( "atgs.u2", 0xe00000, 0x200000, CRC(553eda27) SHA1(5b9126f966f0c64b3ac7c06526064d71e4df60c5) ) /* US version's rom labeled "sp6_u67-2" */
+
+ ROM_REGION( 0x200000, "layer0", 0 ) /* Layer 0 */
+ ROM_LOAD( "atgs.u78", 0x000000, 0x200000, CRC(16710ecb) SHA1(6277f7f6095457df649932550b04242e5853ec5e) ) /* US version's rom labeled "bg0_u78" */
+
+ ROM_REGION( 0x200000, "layer1", 0 ) /* Layer 1 */
+ ROM_LOAD( "atgs.u81", 0x000000, 0x200000, CRC(cb2aca91) SHA1(869f0f2db35c45ec90b74d33d521cbb598e60a3f) ) /* US version's rom labeled "bg1_u81" */
+
+ ROM_REGION( 0x200000, "layer2", 0 ) /* Layer 2 */
+ ROM_LOAD( "atgs.u89", 0x000000, 0x200000, CRC(65f45a0f) SHA1(b7f4b56308dcdc144100d0a92d91255459a320a4) ) /* US version's rom labeled "bg2_u89" */
+
+ ROM_REGION( 0x080000, "layer3", 0 ) /* Layer 3 */
+ ROM_LOAD( "text.u82", 0x000000, 0x080000, CRC(f57333ea) SHA1(409d8005ffcf91943e4a743b2434ce425f5bdc36) ) /* US version's rom labeled "d20" */
+
+ ROM_REGION( 0x440000, "oki1", 0 ) /* OKIM6295 #1 Samples */
+ /* Leave the 0x40000 bytes addressable by the chip empty */
+ ROM_LOAD( "g02.u53", 0x040000, 0x200000, CRC(c4bdd9e0) SHA1(a938a831e789ddf6f3cc5f3e5f3877ec7bd62d4e) )
+ ROM_LOAD( "g02.u54", 0x240000, 0x200000, CRC(1357d50e) SHA1(433766177ce9d6933f90de85ba91bfc6d8d5d664) )
+
+ ROM_REGION( 0x440000, "oki2", 0 ) /* OKIM6295 #2 Samples */
+ /* Leave the 0x40000 bytes addressable by the chip empty */
+ ROM_LOAD( "g02.u55", 0x040000, 0x200000, CRC(2d102898) SHA1(bd81f4cd2ba100707db0c5bb1419f0b23c998574) )
+ ROM_LOAD( "g02.u56", 0x240000, 0x200000, CRC(9ff50dda) SHA1(1121685e387c20e228032f2b0f5cbb606376fc15) )
+ROM_END
+
+/*************************************
+ *
+ * Game driver(s)
+ *
+ *************************************/
+// Proyecto Shadows Mame Build Plus
+/* YEAR NAME PARENT MACHINE INPUT INIT MONITOR COMPANY FULLNAME FLAGS */
+// Power Instinct 2
+GAME( 2017, pwrinst2s01, pwrinst2, pwrinst2, metmqstr, cave_state, pwrinst2j,ROT0, "Hacks", "Power Instinct 2 (Description Of Unknown Origin 01)", MACHINE_SUPPORTS_SAVE )
+// Gouketsuji Gaiden
+GAME( 2017, plegendsjs01, plegends, pwrinst2, metmqstr, cave_state, pwrinst2j,ROT0, "Hacks", "Gouketsuji Gaiden (Description Of Unknown Origin 01)", MACHINE_SUPPORTS_SAVE )
+
diff --git a/src/hbmame/drivers/cball.cpp b/src/hbmame/drivers/cball.cpp
new file mode 100644
index 00000000000..3bad3fe9ab6
--- /dev/null
+++ b/src/hbmame/drivers/cball.cpp
@@ -0,0 +1,37 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/cball.cpp"
+/***************************************************************************
+
+ Atari Cannonball (prototype) driver
+
+ Note: canballmash.6m is an approximate replacement created by MASH.
+
+ The maincpu rom has heaps of illegal '02' opcodes.
+
+***************************************************************************/
+
+
+ROM_START( cballfix )
+ ROM_REGION( 0x8000, "maincpu", 0 )
+ ROM_LOAD_NIB_LOW ( "canball.1e", 0x7400, 0x0400, CRC(0b34823b) SHA1(0db6b9f78f7c07ee7d35f2bf048ba61fe43b1e26) )
+ ROM_LOAD_NIB_HIGH( "canball.1l", 0x7400, 0x0400, CRC(b43ca275) SHA1(a03e03f6366877cfdcec71030a5fb2c5171c8d8a) )
+ ROM_LOAD_NIB_LOW ( "canball.1f", 0x7800, 0x0400, CRC(29b4e1f7) SHA1(8cef944b6e0153c304aa2d4cfdc530b8a4eef021) )
+ ROM_LOAD_NIB_HIGH( "canball.1k", 0x7800, 0x0400, CRC(a4d1cf12) SHA1(99de6470efd16e57d72019e065f55bc740f3c7fc) )
+ ROM_LOAD_NIB_LOW ( "canball.1h", 0x7c00, 0x0400, CRC(13f55937) SHA1(7514c27e60944c4e00992c8ecbc5115f8ff948bb) )
+ ROM_LOAD_NIB_HIGH( "canball.1j", 0x7c00, 0x0400, CRC(5b905d69) SHA1(2408dd6e44c51c0c9bdb82d2d33826c03f8308c4) )
+
+ ROM_REGION( 0x0200, "gfx1", 0 )
+ ROM_LOAD_NIB_LOW ( "canballmash.6m", 0x0000, 0x0200, BAD_DUMP CRC(bec9eb19) SHA1(8d84d783a4615e58fa4138e039658922ce50e967) )
+ ROM_LOAD_NIB_HIGH( "canball.6l", 0x0000, 0x0200, CRC(5b1c9e88) SHA1(6e9630db9907170c53942a21302bcf8b721590a3) )
+
+ ROM_REGION( 0x0200, "gfx2", 0 )
+ ROM_LOAD_NIB_LOW ( "canball.5l", 0x0000, 0x0200, CRC(3d0d1569) SHA1(1dfcf5cf9468d476c4b7d76a261c6fec87a99f93) )
+ ROM_LOAD_NIB_HIGH( "canball.5k", 0x0000, 0x0200, CRC(c5fdd3c8) SHA1(5aae148439683ff1cf0005a810c81fdcbed525c3) )
+
+ ROM_REGION( 0x0100, "proms", 0 )
+ ROM_LOAD( "canball.6h", 0x0000, 0x0100, CRC(b8094b4c) SHA1(82dc6799a19984f3b204ee3aeeb007e55afc8be3) )
+ROM_END
+
+
+GAME( 2004, cballfix, cball, cball, cball, cball_state, 0, ROT0, "MASH", "Cannonball (Atari, prototype) with new rom", MACHINE_NO_SOUND | MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/cclimber.cpp b/src/hbmame/drivers/cclimber.cpp
new file mode 100644
index 00000000000..1d67b64f49c
--- /dev/null
+++ b/src/hbmame/drivers/cclimber.cpp
@@ -0,0 +1,182 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/cclimber.cpp"
+
+INPUT_PORTS_START( ckonga2 ) /* one less life than normal */
+ PORT_INCLUDE( ckong )
+ PORT_MODIFY("DSW")
+ PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) )
+ PORT_DIPSETTING( 0x00, "2" )
+ PORT_DIPSETTING( 0x01, "3" )
+ PORT_DIPSETTING( 0x02, "4" )
+ PORT_DIPSETTING( 0x03, "5" )
+INPUT_PORTS_END
+
+INPUT_PORTS_START( ckonga4 ) /* two less lives than normal */
+ PORT_INCLUDE( ckong )
+ PORT_MODIFY("DSW")
+ PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) )
+ PORT_DIPSETTING( 0x00, "1" )
+ PORT_DIPSETTING( 0x01, "2" )
+ PORT_DIPSETTING( 0x02, "3" )
+ PORT_DIPSETTING( 0x03, "4" )
+INPUT_PORTS_END
+
+ROM_START( cclimbrm )
+ ROM_REGION( 0x6000, "maincpu", 0 )
+ ROM_LOAD( "cc11m", 0x0000, 0x1000, CRC(a7d58b7e) SHA1(83a21b1a731895c84f1f3604f36b21b172bb144b) )
+ ROM_LOAD( "cc10", 0x1000, 0x1000, CRC(b3c26cef) SHA1(f52cb5482c12a9c5fb56e2e2aec7cab0ed23e5a5) )
+ ROM_LOAD( "cc09", 0x2000, 0x1000, CRC(6db0879c) SHA1(c0ba1976c1dcd6edadd78073173a26851ae8dd4f) )
+ ROM_LOAD( "cc08", 0x3000, 0x1000, CRC(f48c5fe3) SHA1(79072bbbf37387998ffd031afe8eb569a16fa9bd) )
+ ROM_LOAD( "cc07m", 0x4000, 0x1000, CRC(a417e7a3) SHA1(0cc8e306268119e11d8375749147cb7c1a831bd8) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "cc06", 0x0000, 0x0800, CRC(481b64cc) SHA1(3f35c545fc784ed4f969aba2d7be6e13a5ae32b7) )
+ /* empty hole - Crazy Kong has an additional ROM here */
+ ROM_LOAD( "cc04", 0x2000, 0x0800, CRC(332347cb) SHA1(4115ca32af73f1791635b7d9e093bf77088a8222) )
+ /* empty hole - Crazy Kong has an additional ROM here */
+ ROM_LOAD( "cc05", 0x1000, 0x0800, CRC(2c33b760) SHA1(2edea8fe13376fbd51a5586d97aba3b30d78e94b) )
+ /* empty hole - Crazy Kong has an additional ROM here */
+ ROM_LOAD( "cc03", 0x3000, 0x0800, CRC(4e4b3658) SHA1(0d39a8cb5cd6cf06008be60707f9b277a8a32a2d) )
+ /* empty hole - Crazy Kong has an additional ROM here */
+
+ ROM_REGION( 0x1000, "gfx2", 0 )
+ ROM_LOAD( "cc02", 0x0000, 0x0800, CRC(14f3ecc9) SHA1(a1b5121abfbe8f07580eb3fa6384352d239a3d75) )
+ ROM_LOAD( "cc01", 0x0800, 0x0800, CRC(21c0f9fb) SHA1(44fad56d302a439257216ddac9fd62b3666589f1) )
+
+ ROM_REGION( 0x0060, "proms", 0 )
+ ROM_LOAD( "cclimber.pr1", 0x0000, 0x0020, CRC(751c3325) SHA1(edce2bc883996c1d72dc6c1c9f62799b162d415a) )
+ ROM_LOAD( "cclimber.pr2", 0x0020, 0x0020, CRC(ab1940fa) SHA1(8d98e05cbaa6f55770c12e0a9a8ed9c73cc54423) )
+ ROM_LOAD( "cclimber.pr3", 0x0040, 0x0020, CRC(71317756) SHA1(1195f0a037e379cc1a3c0314cb746f5cd2bffe50) )
+
+ ROM_REGION( 0x2000, "samples", 0 )
+ ROM_LOAD( "cc13", 0x0000, 0x1000, CRC(e0042f75) SHA1(86cb31b110742a0f7ae33052c88f42d00deb5468) )
+ ROM_LOAD( "cc12", 0x1000, 0x1000, CRC(5da13aaa) SHA1(b2d41e69435d09c456648a10e33f5e1fbb0bc64c) )
+ROM_END
+
+/* E376 and E449 are basically the same bootleg of "ckonga". One gfx rom in E376 is changed, and we use it here.
+ Changes: One less life than normal, and gfx corruptions on the stage with the incinerator in the middle. */
+ROM_START( ckonga2 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "ckonga2.07", 0x0000, 0x1000, CRC(1c21386f) SHA1(ce1a0c469dd09d81485cede6c8fbaf6299a9decf) )
+ ROM_LOAD( "f05-08.bin", 0x1000, 0x1000, CRC(5dc1aaba) SHA1(42b9e5946ffce7c156d114bde68f37c2c34853c4) )
+ ROM_LOAD( "h05-09.bin", 0x2000, 0x1000, CRC(c9054c94) SHA1(1aa08d2501ee620759fd5c111e12f6d432c25294) )
+ ROM_LOAD( "10.dat", 0x3000, 0x1000, CRC(c3beb501) SHA1(14f49c45fc7c91799034c5a51fca310f0a66b1d7) )
+ ROM_LOAD( "l05-11.bin", 0x4000, 0x1000, CRC(ae159192) SHA1(d467256a3a366e246243e7828ff4a45d4c146e2c) )
+ ROM_LOAD( "n05-12.bin", 0x5000, 0x1000, CRC(966bc9ab) SHA1(4434fc620169ffea1b1f227b61674e1daf79b54b) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "n11-06.bin", 0x0000, 0x1000, CRC(2dcedd12) SHA1(dfdcfc21bcba7c8e148ee54daae511ca78c58e70) )
+ ROM_LOAD( "falcon5", 0x1000, 0x1000, CRC(cd3b5dde) SHA1(2319a2be04d70989b01f4fc703756ba6e1c1f388) )
+ ROM_LOAD( "k11-04.bin", 0x2000, 0x1000, CRC(3375b3bd) SHA1(a00b3c31cff123aab6ac0833aabfdd663302971a) )
+ ROM_LOAD( "h11-03.bin", 0x3000, 0x1000, CRC(5655cc11) SHA1(5195e9b2a60c54280b48b32ee8248090904dbc51) )
+
+ ROM_REGION( 0x1000, "gfx2", 0 )
+ ROM_LOAD( "c11-02.bin", 0x0000, 0x0800, CRC(d1352c31) SHA1(da726a63a8be830d695afeddc1717749af8c9d47) )
+ ROM_LOAD( "a11-01.bin", 0x0800, 0x0800, CRC(a7a2fdbd) SHA1(529865f8bbfbdbbf34ac39c70ef17e6d5bd0f845) )
+
+ ROM_REGION( 0x0060, "proms", 0 )
+ ROM_LOAD( "prom.v6", 0x0000, 0x0020, CRC(b3fc1505) SHA1(5b94adde0428a26b815c7eb9b3f3716470d349c7) )
+ ROM_LOAD( "prom.u6", 0x0020, 0x0020, CRC(26aada9e) SHA1(f59645e606ea4f0dd0fc4ea47dd03f526c534941) )
+ ROM_LOAD( "prom.t6", 0x0040, 0x0020, CRC(676b3166) SHA1(29b9434cd34d43ea5664e436e2a24b54f8d88aac) )
+
+ ROM_REGION( 0x2000, "samples", 0 )
+ ROM_LOAD( "falcon13", 0x0000, 0x1000, CRC(5f0bcdfb) SHA1(7f79bf6de117348f606696ed7ea1937bbf926612) )
+ ROM_LOAD( "falcon12", 0x1000, 0x1000, CRC(9003ffbd) SHA1(fd016056aabc23957643f37230f03842294f795e) )
+ROM_END
+
+/* E448 and E589 are basically the same bootleg of "ckonga". One prom in E448 is changed, and we use it here.
+ Changes: Two less lives than normal. */
+ROM_START( ckonga3 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "ckonga4.07", 0x0000, 0x1000, CRC(9b5e7592) SHA1(c2b44765eef7d6a8f9f1fb8a7cefd011ebf2a330) )
+ ROM_LOAD( "f05-08.bin", 0x1000, 0x1000, CRC(5dc1aaba) SHA1(42b9e5946ffce7c156d114bde68f37c2c34853c4) )
+ ROM_LOAD( "h05-09.bin", 0x2000, 0x1000, CRC(c9054c94) SHA1(1aa08d2501ee620759fd5c111e12f6d432c25294) )
+ ROM_LOAD( "10.dat", 0x3000, 0x1000, CRC(c3beb501) SHA1(14f49c45fc7c91799034c5a51fca310f0a66b1d7) )
+ ROM_LOAD( "l05-11.bin", 0x4000, 0x1000, CRC(ae159192) SHA1(d467256a3a366e246243e7828ff4a45d4c146e2c) )
+ ROM_LOAD( "n05-12.bin", 0x5000, 0x1000, CRC(966bc9ab) SHA1(4434fc620169ffea1b1f227b61674e1daf79b54b) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "n11-06.bin", 0x0000, 0x1000, CRC(2dcedd12) SHA1(dfdcfc21bcba7c8e148ee54daae511ca78c58e70) )
+ ROM_LOAD( "l11-05.bin", 0x1000, 0x1000, CRC(fa7cbd91) SHA1(0208d2ebc59f3600005476b6987472685bc99d67) )
+ ROM_LOAD( "k11-04.bin", 0x2000, 0x1000, CRC(3375b3bd) SHA1(a00b3c31cff123aab6ac0833aabfdd663302971a) )
+ ROM_LOAD( "h11-03.bin", 0x3000, 0x1000, CRC(5655cc11) SHA1(5195e9b2a60c54280b48b32ee8248090904dbc51) )
+
+ ROM_REGION( 0x1000, "gfx2", 0 )
+ ROM_LOAD( "c11-02.bin", 0x0000, 0x0800, CRC(d1352c31) SHA1(da726a63a8be830d695afeddc1717749af8c9d47) )
+ ROM_LOAD( "a11-01.bin", 0x0800, 0x0800, CRC(a7a2fdbd) SHA1(529865f8bbfbdbbf34ac39c70ef17e6d5bd0f845) )
+
+ ROM_REGION( 0x0060, "proms", 0 )
+ ROM_LOAD( "ckonga4.v6", 0x0000, 0x0020, CRC(d3b84067) SHA1(1d025c28c47c4c7508b0dfd534de87e923262630) )
+ ROM_LOAD( "prom.u6", 0x0020, 0x0020, CRC(26aada9e) SHA1(f59645e606ea4f0dd0fc4ea47dd03f526c534941) )
+ ROM_LOAD( "prom.t6", 0x0040, 0x0020, CRC(676b3166) SHA1(29b9434cd34d43ea5664e436e2a24b54f8d88aac) )
+
+ ROM_REGION( 0x2000, "samples", 0 )
+ ROM_LOAD( "falcon13", 0x0000, 0x1000, CRC(5f0bcdfb) SHA1(7f79bf6de117348f606696ed7ea1937bbf926612) )
+ ROM_LOAD( "falcon12", 0x1000, 0x1000, CRC(9003ffbd) SHA1(fd016056aabc23957643f37230f03842294f795e) )
+ROM_END
+
+ROM_START( ckongfix )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "d05-07.bin", 0x0000, 0x1000, CRC(b27df032) SHA1(57f9be139c610405e3c2fddd7093dfb1277e450e) )
+ ROM_LOAD( "f05-08.bin", 0x1000, 0x1000, CRC(5dc1aaba) SHA1(42b9e5946ffce7c156d114bde68f37c2c34853c4) )
+ ROM_LOAD( "h05-09.bin", 0x2000, 0x1000, CRC(c9054c94) SHA1(1aa08d2501ee620759fd5c111e12f6d432c25294) )
+ ROM_LOAD( "k05-10.bin", 0x3000, 0x1000, CRC(069c4797) SHA1(03be185e6914ec7f3770ce3da4eb49cdb97adc85) )
+ ROM_LOAD( "l05-11.bin", 0x4000, 0x1000, CRC(ae159192) SHA1(d467256a3a366e246243e7828ff4a45d4c146e2c) )
+ ROM_LOAD( "n05-12.bin", 0x5000, 0x1000, CRC(966bc9ab) SHA1(4434fc620169ffea1b1f227b61674e1daf79b54b) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "n11-06.bin", 0x0000, 0x1000, CRC(2dcedd12) SHA1(dfdcfc21bcba7c8e148ee54daae511ca78c58e70) )
+ ROM_LOAD( "l11-05.bin", 0x1000, 0x1000, CRC(fa7cbd91) SHA1(0208d2ebc59f3600005476b6987472685bc99d67) )
+ ROM_LOAD( "k11-04.bin", 0x2000, 0x1000, CRC(3375b3bd) SHA1(a00b3c31cff123aab6ac0833aabfdd663302971a) )
+ ROM_LOAD( "h11-03.bin", 0x3000, 0x1000, CRC(5655cc11) SHA1(5195e9b2a60c54280b48b32ee8248090904dbc51) )
+
+ ROM_REGION( 0x1000, "gfx2", 0 )
+ ROM_LOAD( "c11-02f.bin", 0x0000, 0x0800, CRC(881ed76e) SHA1(e516d898b68da7040f7fb8c7dbc47e0526349e4c) )
+ ROM_LOAD( "a11-01f.bin", 0x0800, 0x0800, CRC(d49aa505) SHA1(7dec6d62e874fb23f827ffddb72d85777a5c39f7) )
+
+ ROM_REGION( 0x0060, "proms", 0 )
+ ROM_LOAD( "prom.v6", 0x0000, 0x0020, CRC(b3fc1505) SHA1(5b94adde0428a26b815c7eb9b3f3716470d349c7) )
+ ROM_LOAD( "prom.u6", 0x0020, 0x0020, CRC(26aada9e) SHA1(f59645e606ea4f0dd0fc4ea47dd03f526c534941) )
+ ROM_LOAD( "prom.t6", 0x0040, 0x0020, CRC(676b3166) SHA1(29b9434cd34d43ea5664e436e2a24b54f8d88aac) )
+
+ ROM_REGION( 0x2000, "samples", 0 )
+ ROM_LOAD( "falcon13", 0x0000, 0x1000, CRC(5f0bcdfb) SHA1(7f79bf6de117348f606696ed7ea1937bbf926612) )
+ ROM_LOAD( "falcon12", 0x1000, 0x1000, CRC(9003ffbd) SHA1(fd016056aabc23957643f37230f03842294f795e) )
+ROM_END
+
+/* This is a gfx hack of monkeyd. Should monkeyd get correct colours, it must be applied here too. */
+ROM_START( tongypac )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "falcon7", 0x0000, 0x1000, CRC(2171cac3) SHA1(7b18bfe44c32fb64b675bbbe2136344522c79b09) )
+ ROM_LOAD( "falcon8", 0x1000, 0x1000, CRC(88b83ff7) SHA1(4afc494cc264aaa4614da6aed02ce062d9c20850) )
+ ROM_LOAD( "falcon9", 0x2000, 0x1000, CRC(cff2af47) SHA1(1757428cefad13855a623162101ec01c04006c94) )
+ ROM_LOAD( "ck10.bin", 0x3000, 0x1000, CRC(520fa4de) SHA1(6edbaf727756cd33bde94492d72654aa12dbd7e1) )
+ ROM_LOAD( "md5l.bin", 0x4000, 0x1000, CRC(d1db1bb0) SHA1(fe7d700c7f9eca9c389be3717ebebf3e7dc63aa2) )
+ /* no ROM at 5000 */
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "tpac6.bin", 0x0000, 0x1000, CRC(918e3c52) SHA1(bc630759a525615aba1a06a0781e26a1a5c2c377) )
+ ROM_LOAD( "tpac5.bin", 0x1000, 0x1000, CRC(2bbc69e7) SHA1(5741aa6944e9b936289368d533c2b19d34320260) )
+ ROM_LOAD( "tpac4.bin", 0x2000, 0x1000, CRC(8d5890b6) SHA1(92d48d75084df2e2a3fa9d92a3c6c059f0781d81) )
+ ROM_LOAD( "tpac3.bin", 0x3000, 0x1000, CRC(6b16145b) SHA1(ef17fad07b81c9dae5c6e16a86afc4a8f6a7ff8c) )
+
+ ROM_REGION( 0x1000, "gfx2", 0 )
+ ROM_LOAD( "falcon2", 0x0000, 0x0800, CRC(f67c80f1) SHA1(d1fbcce1b6242f810e106ff50812636e3168ebc1) )
+ ROM_LOAD( "falcon1", 0x0800, 0x0800, CRC(80eb517d) SHA1(fef4111f656c58b28e7eac5aa5b5cc7e07ccb2fd) )
+
+ ROM_REGION( 0x0060, "proms", 0 )
+ ROM_LOAD( "ck6v.bin", 0x0000, 0x0020, CRC(751c3325) SHA1(edce2bc883996c1d72dc6c1c9f62799b162d415a) )
+ ROM_LOAD( "ck6u.bin", 0x0020, 0x0020, CRC(ab1940fa) SHA1(8d98e05cbaa6f55770c12e0a9a8ed9c73cc54423) )
+ ROM_LOAD( "ck6t.bin", 0x0040, 0x0020, CRC(b4e827a5) SHA1(31a5a5ad54417a474d22bb16c473415d99a2b6f1) )
+
+ ROM_REGION( 0x2000, "samples", 0 )
+ ROM_LOAD( "falcon13", 0x0000, 0x1000, CRC(5f0bcdfb) SHA1(7f79bf6de117348f606696ed7ea1937bbf926612) )
+ ROM_LOAD( "ck12.bin", 0x1000, 0x1000, CRC(2eb23b60) SHA1(c9e7dc584562aceb374193655fbacb7df6c9c731) )
+ROM_END
+
+GAME( 1980, cclimbrm, cclimber, cclimberx, cclimber, cclimber_state, cclimber, ROT0, "Tim Arcadecollecting", "Crazy Climber (US - modded)", MACHINE_SUPPORTS_SAVE ) // http://www.arcadecollecting.com/crazy/cchack
+GAME( 1981, ckonga2, ckong, cclimber, ckonga2, cclimber_state, 0, ROT270, "bootleg", "Crazy Kong Part II -1", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, ckonga3, ckong, cclimber, ckonga4, cclimber_state, 0, ROT270, "bootleg", "Crazy Kong Part II -2", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, ckongfix, ckong, cclimber, ckong, cclimber_state, 0, ROT270, "Pinny", "Crazy Kong Part II (Graphic Fix)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, tongypac, ckong, cclimber, ckong, cclimber_state, 0, ROT270, "Grand Master Peter", "Tongy Paccy", MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/centiped.cpp b/src/hbmame/drivers/centiped.cpp
new file mode 100644
index 00000000000..f1673ba2e0b
--- /dev/null
+++ b/src/hbmame/drivers/centiped.cpp
@@ -0,0 +1,165 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/centiped.cpp"
+
+ROM_START( astropd2 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "136001-307.d1", 0x2000, 0x0800, CRC(5ab0d9de) SHA1(8ea6e3304202831aabaf31dbd0f970a7b3bfe421) )
+ ROM_LOAD( "136001-308.e1", 0x2800, 0x0800, CRC(4c07fd3e) SHA1(af4fdbf32c23b1864819d620a874e7f205da3cdb) )
+ ROM_LOAD( "136001-309.fh1", 0x3000, 0x0800, CRC(ff69b424) SHA1(689fa560d40a384dcbcad7c8095bc12e91875580) )
+ ROM_LOAD( "136001-310.j1", 0x3800, 0x0800, CRC(44e40fa4) SHA1(c557db83876afc8ab52047ab1a3c3bfef34d6351) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "astropd2.211", 0x0000, 0x0800, CRC(7bdb6861) SHA1(38e3f1827687e8a93ad66f69bee5a34f5f553fa4) )
+ ROM_LOAD( "astropd2.212", 0x0800, 0x0800, CRC(043f9810) SHA1(954e55d6cc464f6f992f615b89b43d6cb29d35a9) )
+
+ ROM_REGION( 0x0100, "proms", 0 )
+ ROM_LOAD( "136001-213.p4", 0x0000, 0x0100, CRC(6fa3093a) SHA1(2b7aeca74c1ae4156bf1878453a047330f96f0a8) )
+ROM_END
+
+ROM_START( astroped )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "136001-307.d1", 0x2000, 0x0800, CRC(5ab0d9de) SHA1(8ea6e3304202831aabaf31dbd0f970a7b3bfe421) )
+ ROM_LOAD( "136001-308.e1", 0x2800, 0x0800, CRC(4c07fd3e) SHA1(af4fdbf32c23b1864819d620a874e7f205da3cdb) )
+ ROM_LOAD( "136001-309.fh1", 0x3000, 0x0800, CRC(ff69b424) SHA1(689fa560d40a384dcbcad7c8095bc12e91875580) )
+ ROM_LOAD( "136001-310.j1", 0x3800, 0x0800, CRC(44e40fa4) SHA1(c557db83876afc8ab52047ab1a3c3bfef34d6351) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "astroped.211", 0x0000, 0x0800, CRC(47992235) SHA1(f200c55327edee86abb82a2c33f75a2cf1abbb1f) )
+ ROM_LOAD( "astroped.212", 0x0800, 0x0800, CRC(1f877066) SHA1(7254765394c71bfcca8a1061b0544438f2783218) )
+
+ ROM_REGION( 0x0100, "proms", 0 )
+ ROM_LOAD( "136001-213.p4", 0x0000, 0x0100, CRC(6fa3093a) SHA1(2b7aeca74c1ae4156bf1878453a047330f96f0a8) )
+ROM_END
+
+ROM_START( cemescry )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "136001-307.d1", 0x2000, 0x0800, CRC(5ab0d9de) SHA1(8ea6e3304202831aabaf31dbd0f970a7b3bfe421) )
+ ROM_LOAD( "136001-308.e1", 0x2800, 0x0800, CRC(4c07fd3e) SHA1(af4fdbf32c23b1864819d620a874e7f205da3cdb) )
+ ROM_LOAD( "136001-309.fh1", 0x3000, 0x0800, CRC(ff69b424) SHA1(689fa560d40a384dcbcad7c8095bc12e91875580) )
+ ROM_LOAD( "136001-310.j1", 0x3800, 0x0800, CRC(44e40fa4) SHA1(c557db83876afc8ab52047ab1a3c3bfef34d6351) )
+
+ ROM_REGION(0x1000, "gfx1", 0 )
+ ROM_LOAD( "cemescry.211", 0x0000, 0x0800, CRC(dad550a7) SHA1(3a5067dac4d5fc5af01a9778654463f37f793606) )
+ ROM_LOAD( "cemescry.212", 0x0800, 0x0800, CRC(47982803) SHA1(62b3aa80379fd71eb4efc5994b594b1eb69c0468) )
+
+ ROM_REGION( 0x0100, "proms", 0 )
+ ROM_LOAD( "136001-213.p4", 0x0000, 0x0100, CRC(6fa3093a) SHA1(2b7aeca74c1ae4156bf1878453a047330f96f0a8) )
+ROM_END
+
+/* E418 - same as centipdb except for 2 roms */
+ROM_START( centipb )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "d1", 0x2000, 0x0800, CRC(b17b8e0b) SHA1(01944cf040cf23aeb4c50d4f2e63181e08a07310) )
+ ROM_LOAD( "e1", 0x2800, 0x0800, CRC(7684398e) SHA1(eea8e05506a7af2fec55c2689e3caafc62ea524f) )
+ ROM_LOAD( "h1", 0x3000, 0x0800, CRC(74580fe4) SHA1(35b8a8675e4e020e234e51c3e4bd4ee5c24b79d2) )
+ ROM_LOAD( "centipb.4", 0x3800, 0x0800, CRC(849b1614) SHA1(9060e39ec1d5c66e26c8d28a86818bcc1801c610) )
+ ROM_LOAD( "centipb.5", 0x6000, 0x0800, CRC(9d3ad0e5) SHA1(ad7520b3c95d729bfd022553817f868485e9a191) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "136001-211.f7", 0x0000, 0x0800, CRC(880acfb9) SHA1(6c862352c329776f2f9974a0df9dbe41f9dbc361) )
+ ROM_LOAD( "136001-212.hj7", 0x0800, 0x0800, CRC(b1397029) SHA1(974c03d29aeca672fffa4dfc00a06be6a851aacb) )
+
+ ROM_REGION( 0x0100, "proms", 0 )
+ ROM_LOAD( "136001-213.p4", 0x0000, 0x0100, CRC(6fa3093a) SHA1(2b7aeca74c1ae4156bf1878453a047330f96f0a8) )
+ROM_END
+
+ROM_START( killiped )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "136001-307.d1", 0x2000, 0x0800, CRC(5ab0d9de) SHA1(8ea6e3304202831aabaf31dbd0f970a7b3bfe421) )
+ ROM_LOAD( "136001-308.e1", 0x2800, 0x0800, CRC(4c07fd3e) SHA1(af4fdbf32c23b1864819d620a874e7f205da3cdb) )
+ ROM_LOAD( "136001-309.fh1", 0x3000, 0x0800, CRC(ff69b424) SHA1(689fa560d40a384dcbcad7c8095bc12e91875580) )
+ ROM_LOAD( "136001-310.j1", 0x3800, 0x0800, CRC(44e40fa4) SHA1(c557db83876afc8ab52047ab1a3c3bfef34d6351) )
+
+ ROM_REGION(0x1000, "gfx1", 0 )
+ ROM_LOAD( "killiped.211", 0x0000, 0x0800, CRC(6115917c) SHA1(ec9d7fc6503647a4bd13894c44584cb308232ecd) )
+ ROM_LOAD( "killiped.212", 0x0800, 0x0800, CRC(3d545e5b) SHA1(098f714084ada6ea1f379da9783581bb6be20d2c) )
+
+ ROM_REGION( 0x0100, "proms", 0 )
+ ROM_LOAD( "136001-213.p4", 0x0000, 0x0100, CRC(6fa3093a) SHA1(2b7aeca74c1ae4156bf1878453a047330f96f0a8) )
+ROM_END
+
+/* E626 - This dump has a bad "2" rom. Using the one from magworm for now. The coins aren't always detected. */
+ROM_START( magworm2 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "magworm2.k0", 0x2000, 0x0800, CRC(22985495) SHA1(ad477b05d9303a03d99d110ff4546d1e5de165bd) )
+ ROM_LOAD( "magworm2.k1", 0x2800, 0x0800, CRC(981e1ddc) SHA1(b7ba1d522cb45b646d2b26e06d9531196152722e) )
+ ROM_LOAD( "11005-2.k2", 0x3000, 0x0800, CRC(f127f1c3) SHA1(3fddcd6f458ac60eaebacef921b522dd2c7b8141) )
+ ROM_LOAD( "magworm2.k3", 0x3800, 0x0800, CRC(95029f45) SHA1(a341cf1a3bf91f24bf3ae87b2f5950228cc9379d) )
+
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "11005-4.c4", 0x0000, 0x0800, CRC(cea64e1a) SHA1(9022102124e1ad93f912ce8bdf85f8a886b0879b) )
+ ROM_LOAD( "11005-5.c5", 0x0800, 0x0800, CRC(24558ea5) SHA1(8cd7131e19afd7a96191b1b3c3fba7ae9a140f4b) )
+ROM_END
+
+ROM_START( pacipede )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "136001-307.d1", 0x2000, 0x0800, CRC(5ab0d9de) SHA1(8ea6e3304202831aabaf31dbd0f970a7b3bfe421) )
+ ROM_LOAD( "136001-308.e1", 0x2800, 0x0800, CRC(4c07fd3e) SHA1(af4fdbf32c23b1864819d620a874e7f205da3cdb) )
+ ROM_LOAD( "136001-309.fh1", 0x3000, 0x0800, CRC(ff69b424) SHA1(689fa560d40a384dcbcad7c8095bc12e91875580) )
+ ROM_LOAD( "136001-310.j1", 0x3800, 0x0800, CRC(44e40fa4) SHA1(c557db83876afc8ab52047ab1a3c3bfef34d6351) )
+
+ ROM_REGION(0x1000, "gfx1", 0 )
+ ROM_LOAD( "paciped.211", 0x0000, 0x0800, CRC(4d2a94c0) SHA1(6f07f86ec6b8fbd62a63a808b20ced5116765f11) )
+ ROM_LOAD( "paciped.212", 0x0800, 0x0800, CRC(10fac52e) SHA1(80c4f9148b5310b81963960ddc8ad4ec3e26217b) )
+
+ ROM_REGION( 0x0100, "proms", 0 )
+ ROM_LOAD( "136001-213.p4", 0x0000, 0x0100, CRC(6fa3093a) SHA1(2b7aeca74c1ae4156bf1878453a047330f96f0a8) )
+ROM_END
+
+ROM_START( silliped )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "136013-104.mn1", 0x4000, 0x1000, CRC(40711675) SHA1(b595d6a0f5d3c611ade1b83a94c3b909d2124dc4) )
+ ROM_LOAD( "136013-103.l1", 0x5000, 0x1000, CRC(fb01baf2) SHA1(9c1d0bbc20bf25dd21761a311fd1ed80aa029241) )
+ ROM_LOAD( "136013-102.jk1", 0x6000, 0x1000, CRC(62e137e0) SHA1(9fe40db55ba1d20d4f11704f7f5df9ff75b87f30) )
+ ROM_LOAD( "136013-101.h1", 0x7000, 0x1000, CRC(46752c7d) SHA1(ab06b1fd80271849946f90757b3837b617394929) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "silliped.106", 0x0000, 0x0800, CRC(b946599e) SHA1(3bd7360c8b4e4bbda0ffcda6b8d5961430073d5c) )
+ ROM_LOAD( "silliped.107", 0x0800, 0x0800, CRC(89442fbc) SHA1(450bedd9d09300191bbc31c4cc5b5ca0424661ef) )
+
+ ROM_REGION( 0x0100, "proms", 0 )
+ ROM_LOAD( "136001-213.e7", 0x0000, 0x0100, CRC(6fa3093a) SHA1(2b7aeca74c1ae4156bf1878453a047330f96f0a8) ) /* not used */
+ROM_END
+
+ROM_START( vectiped )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "136001-307.d1", 0x2000, 0x0800, CRC(5ab0d9de) SHA1(8ea6e3304202831aabaf31dbd0f970a7b3bfe421) )
+ ROM_LOAD( "136001-308.e1", 0x2800, 0x0800, CRC(4c07fd3e) SHA1(af4fdbf32c23b1864819d620a874e7f205da3cdb) )
+ ROM_LOAD( "136001-309.fh1", 0x3000, 0x0800, CRC(ff69b424) SHA1(689fa560d40a384dcbcad7c8095bc12e91875580) )
+ ROM_LOAD( "136001-310.j1", 0x3800, 0x0800, CRC(44e40fa4) SHA1(c557db83876afc8ab52047ab1a3c3bfef34d6351) )
+
+ ROM_REGION(0x1000, "gfx1", 0 )
+ ROM_LOAD( "vectiped.211", 0x0000, 0x0800, CRC(33eccc59) SHA1(ab456577e4a4392abb35831a20e30e6314502367) )
+ ROM_LOAD( "vectiped.212", 0x0800, 0x0800, CRC(bc71790c) SHA1(b5a69ee0cb5861a0b328f478a49d453716a8703d) )
+
+ ROM_REGION( 0x0100, "proms", 0 )
+ ROM_LOAD( "136001-213.p4", 0x0000, 0x0100, CRC(6fa3093a) SHA1(2b7aeca74c1ae4156bf1878453a047330f96f0a8) )
+ROM_END
+
+ROM_START( vectrped )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "136001-307.d1", 0x2000, 0x0800, CRC(5ab0d9de) SHA1(8ea6e3304202831aabaf31dbd0f970a7b3bfe421) )
+ ROM_LOAD( "136001-308.e1", 0x2800, 0x0800, CRC(4c07fd3e) SHA1(af4fdbf32c23b1864819d620a874e7f205da3cdb) )
+ ROM_LOAD( "136001-309.fh1", 0x3000, 0x0800, CRC(ff69b424) SHA1(689fa560d40a384dcbcad7c8095bc12e91875580) )
+ ROM_LOAD( "136001-310.j1", 0x3800, 0x0800, CRC(44e40fa4) SHA1(c557db83876afc8ab52047ab1a3c3bfef34d6351) )
+
+ ROM_REGION(0x1000, "gfx1", 0 )
+ ROM_LOAD( "vectrped.211", 0x0000, 0x0800, CRC(e65cd908) SHA1(ceb25e4850e5e7cbe2809c465313610b99321269) )
+ ROM_LOAD( "vectrped.212", 0x0800, 0x0800, CRC(72616fcb) SHA1(c7617be0f28dbeae662738a0d8bba6c2e12a02aa) )
+
+ ROM_REGION( 0x0100, "proms", 0 )
+ ROM_LOAD( "136001-213.p4", 0x0000, 0x0100, CRC(6fa3093a) SHA1(2b7aeca74c1ae4156bf1878453a047330f96f0a8) )
+ROM_END
+
+GAME( 2002, astropd2, centiped, centiped, centiped, centiped_state, 0, ROT270, "Twisty", "Astropede II", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, astroped, centiped, centiped, centiped, centiped_state, 0, ROT270, "Twisty", "Astropede", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, cemescry, centiped, centiped, centiped, centiped_state, 0, ROT270, "NoSync", "Cemescary", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, centipb, centiped, centipdb, centiped, centiped_state, 0, ROT270, "bootleg", "Centipede", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, killiped, centiped, centiped, centiped, centiped_state, 0, ROT270, "The Dog", "Killipede", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, magworm2, centiped, magworm, magworm, centiped_state, 0, ROT270, "bootleg", "Magic Worm", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pacipede, centiped, centiped, centiped, centiped_state, 0, ROT270, "Jeff Coleburn", "Pacipede", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, silliped, milliped, milliped, milliped, centiped_state, 0, ROT270, "Andy", "Sillipede", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, vectiped, centiped, centiped, centiped, centiped_state, 0, ROT270, "The Dog", "Vectipede", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, vectrped, centiped, centiped, centiped, centiped_state, 0, ROT270, "T-Bone", "Vectorpede", MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/cinemat.cpp b/src/hbmame/drivers/cinemat.cpp
new file mode 100644
index 00000000000..b43b81d75cf
--- /dev/null
+++ b/src/hbmame/drivers/cinemat.cpp
@@ -0,0 +1,47 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+/* BBUGTEST NOTES
+
+With no documentation whatsoever, I have compiled what I know to share with you all.
+
+I do not know if the graphics are complete, or if all tests are working.
+
+Use the dipswitches to select a test pattern.
+
+Pressing any player key, or start button will make a slight change to the colours.
+
+If you move your mouse to the left, pressing the keys will alter the numbers across the bottom
+of the screen. Moving the mouse to the right will revert to changing colours again.
+
+*/
+
+
+#include "../mame/drivers/cinemat.cpp"
+
+static MACHINE_CONFIG_DERIVED( bbugtest, cinemat_jmi_32k )
+ MCFG_SCREEN_MODIFY("screen")
+ MCFG_SCREEN_VISIBLE_AREA(0, 1024, 0, 788)
+ MCFG_VIDEO_START_OVERRIDE(cinemat_state,cinemat_color)
+MACHINE_CONFIG_END
+
+/*************************************
+ *
+ * Game drivers
+ *
+ *************************************/
+
+ROM_START( bbugtest )
+ ROM_REGION( 0x10000, "maincpu", 0 ) /* 16k for code */
+ ROM_LOAD16_BYTE( "bbugtest.t7", 0x0000, 0x1000, CRC(92a460f1) SHA1(eaa8fea38d87f1fd6e2e52b92085fed43498e5ce) )
+ ROM_LOAD16_BYTE( "bbugtest.p7", 0x0001, 0x1000, CRC(06d0bde2) SHA1(b0a224b7a74fa739b293ad7383236ffaa012f3c3) )
+
+ ROM_REGION( 0x1a0, "proms", 0 )
+ ROM_LOAD("prom.f14", 0x000, 0x100, CRC(9edbf536) SHA1(036ad8a231284e05f44b1106d38fc0c7e041b6e8) )
+ ROM_LOAD("prom.e14", 0x100, 0x020, CRC(29dbfb87) SHA1(d8c40ab010b2ea30f29b2c443819e2b69f376c04) )
+ ROM_LOAD("prom.d14", 0x120, 0x020, CRC(9a05afbf) SHA1(5d806a42424942ba5ef0b70a1d629315b37f931b) )
+ ROM_LOAD("prom.c14", 0x140, 0x020, CRC(07492cda) SHA1(32df9148797c23f70db47b840139c40e046dd710) )
+ ROM_LOAD("prom.j14", 0x160, 0x020, CRC(a481ca71) SHA1(ce145d61686f600cc16b77febfd5c783bf8c13b0) )
+ ROM_LOAD("prom.e8", 0x180, 0x020, CRC(791ec9e1) SHA1(6f7fcce4aa3be9020595235568381588adaab88e) )
+ROM_END
+
+GAME(1981, bbugtest, 0, bbugtest, boxingb, cinemat_state, boxingb, ORIENTATION_FLIP_Y, "Test Rom", "Test Rom - Boxing Bugs", MACHINE_NO_SOUND_HW | MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/commando.cpp b/src/hbmame/drivers/commando.cpp
new file mode 100644
index 00000000000..0e2bc7dd41d
--- /dev/null
+++ b/src/hbmame/drivers/commando.cpp
@@ -0,0 +1,78 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/commando.cpp"
+
+ROM_START( comdelux )
+ ROM_REGION( 2*0x10000, "maincpu", 0 ) /* 64k for code + 64k for decrypted opcodes */
+ ROM_LOAD( "cm04.9m", 0x0000, 0x8000, CRC(8438b694) SHA1(e154478d8f1b635355bd777370acabe49cb9d309) )
+ ROM_LOAD( "cm03.8m", 0x8000, 0x4000, CRC(35486542) SHA1(531a85c9e03970ce037be84f2240c2df6f6e3ec1) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the audio CPU */
+ ROM_LOAD( "cm02.9f", 0x0000, 0x4000, CRC(f9cc4a74) SHA1(ee8dd73919c6f47f62cc6d999de9510db9f79b8f) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "vt01.5d", 0x0000, 0x4000, CRC(505726e0) SHA1(2435c87c9c9d78a6e703cf0e1f6a0288207fcd4c) ) // characters
+
+ ROM_REGION( 0x18000, "gfx2", 0 )
+ ROM_LOAD( "vt11.5a", 0x00000, 0x4000, CRC(7b2e1b48) SHA1(5d49e1d8146e4ef744445b68f35677302e875a85) ) // SCR X (tiles)
+ ROM_LOAD( "vt12.6a", 0x04000, 0x4000, CRC(81b417d3) SHA1(5ec7e3f0c8069384a5f6eb39232c228b9d7b8c0c) ) // SCR X
+ ROM_LOAD( "vt13.7a", 0x08000, 0x4000, CRC(5612dbd2) SHA1(9e4e1a22b6cbf60607b9a81dae34482ae55f7c47) ) // SCR Y
+ ROM_LOAD( "vt14.8a", 0x0c000, 0x4000, CRC(2b2dee36) SHA1(8792278464fa3da47176582025f6673a15a581e2) ) // SCR Y
+ ROM_LOAD( "vt15.9a", 0x10000, 0x4000, CRC(de70babf) SHA1(6717e23baf55f84d3143fb432140a7c3e102ac26) ) // SCR Z
+ ROM_LOAD( "vt16.10a", 0x14000, 0x4000, CRC(14178237) SHA1(f896e71c7004349c9a46155edfd9f0aaa186065d) ) // SCR Z
+
+ ROM_REGION( 0x18000, "gfx3", 0 )
+ ROM_LOAD( "dx_vt05.7e", 0x00000, 0x4000, CRC(b1839dd4) SHA1(7172718a0a5f5ba1c6785545dea196e03d3c58c3) ) /* sprites */
+ ROM_LOAD( "vt06.8e", 0x04000, 0x4000, CRC(26fee521) SHA1(2fbfc73ee860f72a20229a01d4da9f5cc2e858d3) )
+ ROM_LOAD( "dx_vt07.9e", 0x08000, 0x4000, CRC(4cb1cd67) SHA1(317cfbbff00870b7f7d8023b135d3a96dc0e73fb) )
+ ROM_LOAD( "dx_vt08.7h", 0x0c000, 0x4000, CRC(42ff8a11) SHA1(94d0fdbb98670953e586f75030ec48b5af2138a9) )
+ ROM_LOAD( "vt09.8h", 0x10000, 0x4000, CRC(98703982) SHA1(ba9a9b0dcadd4f52502828408c4a19b0bd518351) )
+ ROM_LOAD( "dx_vt10.9h", 0x14000, 0x4000, CRC(7650a262) SHA1(e4d59c2dda161d49849b1d20782a2126fa0743c7) )
+
+ ROM_REGION( 0x600, "proms", 0 )
+ ROM_LOAD( "vtb1.1d", 0x0000, 0x0100, CRC(3aba15a1) SHA1(8b057f6e26155dd9e48bde182e680fce4519f600) ) /* red */
+ ROM_LOAD( "vtb2.2d", 0x0100, 0x0100, CRC(88865754) SHA1(ca6dddca98baf00a65b2fb70b69cf4704ef8c831) ) /* green */
+ ROM_LOAD( "vtb3.3d", 0x0200, 0x0100, CRC(4c14c3f6) SHA1(644ac17c7413f094ec9a15cba87bbd421b26321f) ) /* blue */
+ ROM_LOAD( "vtb4.1h", 0x0300, 0x0100, CRC(b388c246) SHA1(038f9851699331ad887b6281a9df053dca3db8fd) ) /* palette selector (not used) */
+ ROM_LOAD( "vtb5.6l", 0x0400, 0x0100, CRC(712ac508) SHA1(5349d722ab6733afdda65f6e0a98322f0d515e86) ) /* interrupt timing (not used) */
+ ROM_LOAD( "vtb6.6e", 0x0500, 0x0100, CRC(0eaf5158) SHA1(bafd4108708f66cd7b280e47152b108f3e254fc9) ) /* video timing (not used) */
+ROM_END
+
+ROM_START( comdlux1 )
+ ROM_REGION( 2*0x10000, "maincpu", 0 ) /* 64k for code + 64k for decrypted opcodes */
+ ROM_LOAD( "cm04.9m", 0x0000, 0x8000, CRC(8438b694) SHA1(e154478d8f1b635355bd777370acabe49cb9d309) )
+ ROM_LOAD( "cm03.8m", 0x8000, 0x4000, CRC(35486542) SHA1(531a85c9e03970ce037be84f2240c2df6f6e3ec1) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the audio CPU */
+ ROM_LOAD( "cm02.9f", 0x0000, 0x4000, CRC(f9cc4a74) SHA1(ee8dd73919c6f47f62cc6d999de9510db9f79b8f) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "vt01.5d", 0x0000, 0x4000, CRC(505726e0) SHA1(2435c87c9c9d78a6e703cf0e1f6a0288207fcd4c) ) // characters
+
+ ROM_REGION( 0x18000, "gfx2", 0 )
+ ROM_LOAD( "vt11.5a", 0x00000, 0x4000, CRC(7b2e1b48) SHA1(5d49e1d8146e4ef744445b68f35677302e875a85) ) // SCR X (tiles)
+ ROM_LOAD( "vt12.6a", 0x04000, 0x4000, CRC(81b417d3) SHA1(5ec7e3f0c8069384a5f6eb39232c228b9d7b8c0c) ) // SCR X
+ ROM_LOAD( "vt13.7a", 0x08000, 0x4000, CRC(5612dbd2) SHA1(9e4e1a22b6cbf60607b9a81dae34482ae55f7c47) ) // SCR Y
+ ROM_LOAD( "vt14.8a", 0x0c000, 0x4000, CRC(2b2dee36) SHA1(8792278464fa3da47176582025f6673a15a581e2) ) // SCR Y
+ ROM_LOAD( "vt15.9a", 0x10000, 0x4000, CRC(de70babf) SHA1(6717e23baf55f84d3143fb432140a7c3e102ac26) ) // SCR Z
+ ROM_LOAD( "vt16.10a", 0x14000, 0x4000, CRC(14178237) SHA1(f896e71c7004349c9a46155edfd9f0aaa186065d) ) // SCR Z
+
+ ROM_REGION( 0x18000, "gfx3", 0 )
+ ROM_LOAD( "dx1_vt05.7e", 0x00000, 0x4000, CRC(91865879) SHA1(151b3202ea16141f53bf7ae96ac2171b70564ee5) ) /* sprites */
+ ROM_LOAD( "vt06.8e", 0x04000, 0x4000, CRC(26fee521) SHA1(2fbfc73ee860f72a20229a01d4da9f5cc2e858d3) )
+ ROM_LOAD( "dx_vt07.9e", 0x08000, 0x4000, CRC(4cb1cd67) SHA1(317cfbbff00870b7f7d8023b135d3a96dc0e73fb) )
+ ROM_LOAD( "dx1_vt08.7h", 0x0c000, 0x4000, CRC(ba3a06f7) SHA1(9ae9fbd490308e27b71bc1dcd54f3e4e420feb3f) )
+ ROM_LOAD( "vt09.8h", 0x10000, 0x4000, CRC(98703982) SHA1(ba9a9b0dcadd4f52502828408c4a19b0bd518351) )
+ ROM_LOAD( "dx_vt10.9h", 0x14000, 0x4000, CRC(7650a262) SHA1(e4d59c2dda161d49849b1d20782a2126fa0743c7) )
+
+ ROM_REGION( 0x600, "proms", 0 )
+ ROM_LOAD( "vtb1.1d", 0x0000, 0x0100, CRC(3aba15a1) SHA1(8b057f6e26155dd9e48bde182e680fce4519f600) ) /* red */
+ ROM_LOAD( "vtb2.2d", 0x0100, 0x0100, CRC(88865754) SHA1(ca6dddca98baf00a65b2fb70b69cf4704ef8c831) ) /* green */
+ ROM_LOAD( "vtb3.3d", 0x0200, 0x0100, CRC(4c14c3f6) SHA1(644ac17c7413f094ec9a15cba87bbd421b26321f) ) /* blue */
+ ROM_LOAD( "vtb4.1h", 0x0300, 0x0100, CRC(b388c246) SHA1(038f9851699331ad887b6281a9df053dca3db8fd) ) /* palette selector (not used) */
+ ROM_LOAD( "vtb5.6l", 0x0400, 0x0100, CRC(712ac508) SHA1(5349d722ab6733afdda65f6e0a98322f0d515e86) ) /* interrupt timing (not used) */
+ ROM_LOAD( "vtb6.6e", 0x0500, 0x0100, CRC(0eaf5158) SHA1(bafd4108708f66cd7b280e47152b108f3e254fc9) ) /* video timing (not used) */
+ROM_END
+
+GAME( 2002, comdelux, commando, commando, commandou, commando_state, commando, ROT270, "Twisty", "Commando Deluxe", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, comdlux1, commando, commando, commandou, commando_state, commando, ROT270, "Twisty", "Commando Deluxe Again", MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/cps1.cpp b/src/hbmame/drivers/cps1.cpp
new file mode 100644
index 00000000000..14de0e39b6a
--- /dev/null
+++ b/src/hbmame/drivers/cps1.cpp
@@ -0,0 +1,12352 @@
+// license:BSD-3-Clause
+// copyright-holders:Paul Leaman
+/***************************************************************************
+
+Capcom System 1
+===============
+
+Driver provided by:
+Paul Leaman (paul@vortexcomputing.demon.co.uk)
+
+68000 for game, Z80, YM-2151 and OKIM6295 for sound.
+
+68000 clock speeds are unknown for all games (except where commented)
+
+todo: move the bootleg sets with modified hardware into their own
+ drivers, like fcrash.c
+
+
+Notes
+-----
+- All original PALs are protected. The images loaded in the ROM definitions are
+ logically equivalent replacements with a GAL16V8 target. The actual pld types
+ found on the boards can also be PAL16P8, PAL16L8 etc.
+
+- There are five PALs on the A-Board, they are the same across all A-Board
+ revisions, but their location varies.
+ The A-Boards are interchangeable, so the IC locations are not specified in
+ the ROM definitions and are listed here instead:
+
+ PAL ID 88617A 89626A
+ ------ ------ ------
+ PRG1 12H 9K
+ IOA1 12F 4A
+ BUF1 16H 13K
+ ROM1 15H 14K
+ SOU1 13E 10F
+
+ For Q-Sound games, the A-Board misses the Z80, Oki and amp, which are replaced
+ by the D-Board; the SOU1 PAL is missing as well, while PRG1 is replaced by
+ PRG2. The other PALs are the same.
+
+- The B-board usually has two PALs (later revisions have three). The first PAL
+ is used to map tile codes to the graphics ROMs, and changes from game to game.
+ The other doesn't change from game to game and there are only two versions,
+ called LWIO and IOB1, which are almost identical, the only difference being
+ that outputs o16 and o17 are R/W in IOB1 and Write only in LWIO. Since those
+ outputs are not used anyway except that in Forgotten Worlds, one wonders why
+ they were changed.
+
+ SF2 revision "E" World and USA 910228 maps CPS-B at 8001C0 instead of 800140
+ and seems to be the only one that uses the IOB2 and C632B PALs instead of the
+ IOB1 and C632, while STF29 PAL is confirmed to be the same as the other SF2 sets.
+
+ pin 1 CN2 D9 = /IOCS (i.e. address 8xxxxx)
+ pin 2 CN2 D7 = /RDB
+ pin 3 CN2 C6 = /UDSWR
+ pin 4 CN2 D6 = /LDSWR
+ pin 5 CN2 C19 = A8
+ pin 6 CN2 C20 = A7
+ pin 7 CN2 C21 = A6
+ pin 8 CN2 C22 = A5
+ pin 9 CN2 C23 = A4
+ pin 10 GND
+ pin 11 CN2 C24 = A3
+ pin 12 CN2 C25 = A2
+
+ LWIO:
+ /o19 = /i1 * /i2 * /i5 * /i6 * i7 * i8 * /i9 800060-80006f R not used
+ /o18 = /i1 * /i2 * /i5 * /i6 * i7 * /i8 * i9 800050-80005f R forgotten worlds dial (on 88618B & 88621B B-boards)
+ o17 = /i1 * /i4 * /i5 * /i6 * i7 * /i8 * /i9 * /i11 800040-800047 W forgotten worlds dial (on 88618B & 88621B B-boards)
+ o16 = /i1 * /i4 * /i5 * /i6 * i7 * /i8 * /i9 * i11 800048-80004f W forgotten worlds dial (on 88618B & 88621B B-boards)
+ /o15 = /i1 * i5 * /i6 * i7 800140-80017f R/W CPS-B
+ /o14 = /i1 * /i4 * /i5 * /i6 * /i7 * i8 * i9 * /i11 800030-800037 W not used (overlaps coinctrl on A-board)
+ /o13 = /i1 * /i2 * /i5 * /i6 * /i7 * /i8 * /i9 * i11 800008-80000f R not used
+ /o12 = /i1 * /i2 * /i5 * /i6 * /i7 * /i8 * i9 * i11 800018-80001f R not used (overlaps system/dsw inputs on A-board)
+
+ IOB1:
+ /o19 = /i1 * /i2 * /i5 * /i6 * i7 * i8 * /i9 800060-80006f R not used
+ /o18 = /i1 * /i2 * /i5 * /i6 * i7 * /i8 * i9 800050-80005f R not used
+ o17 = /i1 * /i5 * /i6 * i7 * /i8 * /i9 * /i11 800040-800047 R/W not used
+ o16 = /i1 * /i5 * /i6 * i7 * /i8 * /i9 * i11 800048-80004f R/W not used
+ /o15 = /i1 * i5 * /i6 * i7 800140-80017f R/W CPS-B
+ /o14 = /i1 * /i4 * /i5 * /i6 * /i7 * i8 * i9 * /i11 800030-800037 W not used (overlaps coinctrl on A-board)
+ /o13 = /i1 * /i2 * /i5 * /i6 * /i7 * /i8 * /i9 * i11 800008-80000f R not used
+ /o12 = /i1 * /i2 * /i5 * /i6 * /i7 * /i8 * i9 * i11 800018-80001f R not used (overlaps system/dsw inputs on A-board)
+
+
+
+Stephh's notes (based on the games M68000 code and some tests) :
+
+1) 'forgottn' and clones
+
+ - Keys in the "scroll 1 test" screen :
+ * P1 UP : char code += 0x0200
+ * P1 DOWN : char code -= 0x0200
+ * P1 RIGHT : attribute ^= 0x20 ; also affects Hflip
+ * P1 LEFT : attribute ^= 0x40 ; also affects Vflip
+ * P1 button 1 : (attribute++) & 0x1f ; also affects color
+ * P1 button 2 : (attribute--) & 0x1f ; also affects color
+
+2) 'ghouls' and clones
+
+2a) 'ghouls'
+
+ - NO debug features
+
+2b) 'ghoulsu'
+
+ - How to activate the debug features :
+ * set "Game Mode" Dip Switch to "Game"
+ * set both "Coin A" and "Coin B" Dip Switches to 1C_1C
+ * reset the game (F3 key)
+ * insert a coin
+ * set "Game Mode" Dip Switch to "Test"
+ * set the debug Dip Switches to what you want
+ * start a 1 player game
+ - Some debug features :
+ * "Armor on New Life" is effective at the beginning of a new life
+ Note that even when you start without armor, you need to be hit twice
+ * "Starting Weapon" is effective only when you start a new game
+ or when you continue play
+ * "Starting Level" is effective only when you start a new game
+ (you must NOT continue play !)
+ * "Slow Motion" and "Invulnerability" can be changed at any time
+
+2c) 'daimakai'
+
+ - NO debug features
+ - Different Dip Switches than in 'ghouls'
+
+3) 'strider' and clones
+
+ - TO DO !
+
+4) 'dynwar' and clones
+
+4a) 'dynwar'
+
+ - According to code at 0x0125fa and 0x012634, bits 0 and 1 of DSWC also affect the energy cost
+ (table at 0x012662) when you press button 3 ("tactics" in the manual) :
+
+ bit 0 bit 1 cost possible BCD values (based on kind of "tactics")
+ OFF OFF normal 0x10 (rockslide) 0x08 (ambush) 0x14 (flame) 0x12 (explosion)
+ ON OFF very low 0x03 0x02 0x05 0x04
+ OFF ON low 0x06 0x04 0x10 0x08
+ ON ON high 0x13 0x10 0x19 0x16
+
+ So IMO, there might be an ingame bug at 0x000c7e which should read bits 2 and 3 of DSWC
+ (instead of having them unused) :
+ 000C7E: 0240 0003 andi.w #$3, D0
+ should be
+ 000C7E: 0240 000c andi.w #$c, D0
+ However, only bits 4 to 7 are tested while you are in the "test mode".
+
+ Note that code at 0x000c7e is only executed once when you reset the machine;
+ this means that you can change the "Freeze" and "Turbo Mode" Dip Switches before
+ reseting the game to change the energy cost settings, then put them back to "Off"
+ after the startup routine (when screen is black) so you can play the game.
+ - Both "Coin A" and "Coin B" Dip Switches must be set to "2 Coins/1 Credit" to make
+ this mode available. If only one Dip Switch is set to it, it is the same as 2C_1C.
+
+4b) 'dynwarj'
+
+ - The "energy cost" bug also exists in this version as well as code at 0x000c7e;
+ in fact, only code that reads these settings is at a different address :
+ check code at 0x01267a and 0x0126b4 and table at 0x0126e2.
+ - Both "Coin A" and "Coin B" Dip Switches must be set to "2 Coins/1 Credit" to make
+ this mode available. If only one Dip Switch is set to it, it is the same as 2C_1C.
+
+5) 'willow' and clones
+
+ - How to activate the debug features :
+ * set "Game Mode" Dip Switch to "Game"
+ * set both "Coin A" and "Coin B" Dip Switches to 1C_1C
+ * reset the game (F3 key)
+ * insert a coin
+ * set "Game Mode" Dip Switch to "Test"
+ * set the debug Dip Switches to what you want
+ * start a 1 player game
+ - Some debug features :
+ * "Starting Level" is effective only when you start a new game
+ (you must NOT continue play !)
+ * Once you set "Maximum magic/sword power" to "On", setting it to "Off" won't have
+ any effect until you start a new game (you must NOT continue play !)
+ * "Slow Motion Delay" is effective only when "Slow Motion" is set to "On"
+ * Even if "Freeze" Dip Switch is set to "On" a message will be displayed to its end.
+ * I can't tell what kind of infos are displayed when "Display Debug Infos"
+ Dip Switch is sry to "On" :( Any hint about them are welcome !
+ - Both "Coin A" and "Coin B" Dip Switches must be set to "2 Coins/1 Credit" to make
+ this mode available. If only one Dip Switch is set to it, it is the same as 2C_1C.
+ - When the "Stage Magic Continue" Dip Switch is set to "On", your magic and sword power
+ will be increased at the end of the level if you haven't bought the magic/sword item.
+ But you won't notice this before you use the character again.
+ For example, magic power will be increased at the end of level 1 but you won't notice
+ it before level 3, and sword power will be increased at the end of level 2 but you
+ won't notice it before level 4.
+
+6) 'ganbare'
+
+ - Using the payout setting dip switch results in some occasional hopper errors, if this
+ happens, then the clear ram dip switch needs to be used. This needs to be resolved.
+
+TO DO (2006.09.20) :
+
+ - Check 'strider' and its clones and add debug features
+ - Check other games to see if there are some debug or hidden features
+ - Add addresses from routines with debug features in the notes
+ - Look at what IN2 and IN3 do for the following sets :
+ * 'cworld2j' (IN2 only)
+ * 'qad' and 'qadjr'
+ * 'qtono2j'
+ - Check daimakar dip switches. E.g. changing the number of lives also changes the
+ starting level.
+
+Stephh's log (2006.09.20) :
+
+ - Changed the "readinputport" reads by "readinputportbytag" reads.
+ This way, inputs and Dip Switch can be in any order
+ (and I don't have the nasty conditional Dip Switch bug).
+ BTW, I've slightly changed the read memory map :
+ * one handler for the 3 Dip Switches banks : cps1_dsw_r
+ * one handler for the system inputs (IN0) : cps1_in0_r
+ * one handler for the player inputs (IN1) : cps1_in1_r
+ * renamed cps1_input2_r to cps_in2_r
+ * renamed cps1_input3_r to cps_in3_r
+ - Applied these changes to src/drivers/fcrash.c as well.
+ - Added debug features in the following sets :
+ * 'ghoulsu'
+ * 'willowu', 'willowou' and 'willowj'
+ - Checked sets with no debug features :
+ * 'forgottnua' and 'lostwrld'
+ * 'ghouls' and 'daimakai'
+ * 'dynwar' and 'dynwarj'
+
+2008-07:
+ - replaced input read handler with direct AM_READ_PORT where suitable
+
+***************************************************************************/
+
+#include "emu.h"
+#include "cpu/z80/z80.h"
+#include "cpu/pic16c5x/pic16c5x.h"
+#include "cpu/m68000/m68000.h"
+#include "machine/eepromser.h"
+#include "sound/ym2151.h"
+#include "sound/okim6295.h"
+#include "sound/qsound.h"
+#include "machine/kabuki.h"
+#include "includes/cps1.h"
+
+
+
+READ16_MEMBER(cps_state::cps1_dsw_r)
+{
+ static const char *const dswname[] = { "IN0", "DSWA", "DSWB", "DSWC" };
+ int in = ioport(dswname[offset])->read();
+ return (in << 8) | 0xff;
+}
+
+READ16_MEMBER(cps_state::cps1_hack_dsw_r)
+{
+ static const char *const dswname[] = { "IN0", "DSWA", "DSWB", "DSWC" };
+ int in = ioport(dswname[offset])->read();
+ return (in << 8) | in;
+}
+
+READ16_MEMBER(cps_state::cps1_in1_r)
+{
+ int in = ioport("IN1")->read();
+ return (in << 8) | in;
+}
+
+READ16_MEMBER(cps_state::cps1_in2_r)
+{
+ int in = ioport("IN2")->read();
+ return (in << 8) | in;
+}
+
+READ16_MEMBER(cps_state::cps1_in3_r)
+{
+ int in = ioport("IN3")->read();
+ return (in << 8) | in;
+}
+
+READ16_MEMBER(cps_state::forgottn_dial_0_r)
+{
+ return ((ioport("DIAL0")->read() - m_dial[0]) >> (8 * offset)) & 0xff;
+}
+
+READ16_MEMBER(cps_state::forgottn_dial_1_r)
+{
+ return ((ioport("DIAL1")->read() - m_dial[1]) >> (8 * offset)) & 0xff;
+}
+
+WRITE16_MEMBER(cps_state::forgottn_dial_0_reset_w)
+{
+ m_dial[0] = ioport("DIAL0")->read();
+}
+
+WRITE16_MEMBER(cps_state::forgottn_dial_1_reset_w)
+{
+ m_dial[1] = ioport("DIAL1")->read();
+}
+
+
+WRITE8_MEMBER(cps_state::cps1_snd_bankswitch_w)
+{
+ membank("bank1")->set_entry(data & 0x01);
+}
+
+WRITE8_MEMBER(cps_state::cps1_oki_pin7_w)
+{
+ m_oki->set_pin7(data & 1);
+}
+
+WRITE16_MEMBER(cps_state::cps1_soundlatch_w)
+{
+ if (ACCESSING_BITS_0_7)
+ m_soundlatch->write(space, 0, data & 0xff);
+ else
+ m_soundlatch->write(space, 0, data >> 8);
+}
+
+WRITE16_MEMBER(cps_state::cps1_soundlatch2_w)
+{
+ if (ACCESSING_BITS_0_7)
+ m_soundlatch2->write(space, 0, data & 0xff);
+}
+
+WRITE16_MEMBER(cps_state::cps1_coinctrl_w)
+{
+ if (ACCESSING_BITS_8_15)
+ {
+ machine().bookkeeping().coin_counter_w(0, data & 0x0100);
+ machine().bookkeeping().coin_counter_w(1, data & 0x0200);
+ machine().bookkeeping().coin_lockout_w(0, ~data & 0x0400);
+ machine().bookkeeping().coin_lockout_w(1, ~data & 0x0800);
+
+ // bit 15 = CPS-A custom reset?
+ }
+}
+
+WRITE16_MEMBER(cps_state::cpsq_coinctrl2_w)
+{
+ if (ACCESSING_BITS_0_7)
+ {
+ machine().bookkeeping().coin_counter_w(2, data & 0x01);
+ machine().bookkeeping().coin_lockout_w(2, ~data & 0x02);
+ machine().bookkeeping().coin_counter_w(3, data & 0x04);
+ machine().bookkeeping().coin_lockout_w(3, ~data & 0x08);
+ }
+}
+
+INTERRUPT_GEN_MEMBER(cps_state::cps1_interrupt)
+{
+ /* Strider also has a IRQ4 handler. It is input port related, but the game */
+ /* works without it. It is the *only* CPS1 game to have that. */
+ /* ...until we found out that ganbare relies on it, see below */
+ device.execute().set_input_line(2, HOLD_LINE);
+}
+
+TIMER_DEVICE_CALLBACK_MEMBER(cps_state::ganbare_interrupt)
+{
+ /* not sure on the timing or source of this - the game needs it once per frame, */
+ /* otherwise you get a "HARD ERROR" after boot */
+ if (param == 0)
+ m_maincpu->set_input_line(4, HOLD_LINE);
+}
+
+
+/********************************************************************
+*
+* Q Sound
+* =======
+*
+********************************************************************/
+
+READ16_MEMBER(cps_state::qsound_rom_r)
+{
+ uint8_t *rom = memregion("user1")->base();
+
+ if (rom)
+ return rom[offset] | 0xff00;
+ else
+ {
+ popmessage("%06x: read sound ROM byte %04x", space.device().safe_pc(), offset);
+ return 0;
+ }
+}
+
+READ16_MEMBER(cps_state::qsound_sharedram1_r)
+{
+ return m_qsound_sharedram1[offset] | 0xff00;
+}
+
+WRITE16_MEMBER(cps_state::qsound_sharedram1_w)
+{
+ if (ACCESSING_BITS_0_7)
+ m_qsound_sharedram1[offset] = data;
+}
+
+READ16_MEMBER(cps_state::qsound_sharedram2_r)
+{
+ return m_qsound_sharedram2[offset] | 0xff00;
+}
+
+WRITE16_MEMBER(cps_state::qsound_sharedram2_w)
+{
+ if (ACCESSING_BITS_0_7)
+ m_qsound_sharedram2[offset] = data;
+}
+
+WRITE8_MEMBER(cps_state::qsound_banksw_w)
+{
+ /* Z80 bank register for music note data. It's odd that it isn't encrypted though. */
+ int bank = data & 0x0f;
+ if ((0x10000 + (bank * 0x4000)) >= memregion("audiocpu")->bytes())
+ {
+ logerror("WARNING: Q sound bank overflow (%02x)\n", data);
+ bank = 0;
+ }
+
+ membank("bank1")->set_entry(bank);
+}
+
+
+/********************************************************************
+*
+* EEPROM
+* ======
+*
+* The EEPROM is accessed by a serial protocol using the register
+* 0xf1c006
+*
+********************************************************************/
+
+/*
+PAL PRG1 (16P8B @ 12H):
+
+I0 = AS
+I1 = /BGACKB
+I2 = A23
+I3 = A22
+I4 = A21
+I5 = A20
+I6 = A19
+I7 = A18
+I8 = A17
+I9 = A16
+
+n.c. = pin19 = ( !I0 & I1 )
+n.c. = pin18 = ( !I0 & I1 )
+n.c. = pin17 = ! ( I0 & I1 & (!I2 | !I3 | !I4 | !I5 | !I6 | !I7) )
+n.c. = pin16 = ! ( I2 & I3 & I4 & I5 & I6 & I7 )
+/IOCS = pin15 = ! ( I0 & I1 & I2 & !I3 & !I4 & !I5 )
+/ONE WAIT = pin14 = ! ( I0 & I1 & ( I2 | !I3) )
+/databus = pin13 = ! ( I0 & I1 & (!I2 | !I3 | !I4 | !I5 | !I6 | !I7) )
+/workram = pin12 = ! ( I0 & I1 & I2 & I3 & I4 & I5 & I6 & I7 )
+
+
+In Q-Sound games, PRG1 is replaced by PRG2:
+
+/IOCS = pin 15 = ! ( I0 & I1 & I2 & !I3 & !I4 & !I5 )
+/ONE WAIT = pin 14 = ! ( I0 & I1 & (!I2 | !I3 | !I4 | !I5 | ( I6 & I7 & I8 & I9)) )
+/databus = pin 13 = ! ( I0 & I1 & (!I2 | !I3 | !I4 | !I5 | (!I6 & !I7 & !I8)) )
+/workram = pin 12 = ! ( I0 & I1 & I2 & I3 & I4 & I5 & I6 & I7 & I8 & I9 )
+
+
+
+
+
+PAL IOA1 (16P8B @ 12F):
+
+I0 = /IOCS
+I1 = /RDB
+I2 = /UDSWR
+I3 = /LDSWR
+I4 = AB8
+I5 = AB7
+I6 = AB6
+I7 = AB5
+I8 = AB4
+I9 = AB3
+
+player input = pin19 = ! ( !I0 & !I1 & !I4 & !I5 & !I6 & !I7 & !I8 & !I9 )
+system input/dips = pin18 = ! ( !I0 & !I1 & !I4 & !I5 & !I6 & !I7 & I8 & I9 )
+outputs = pin17 = ! ( !I0 & !I2 & !I4 & !I5 & !I6 & I7 & I8 & !I9 )
+sound 1B = pin16 = ! ( !I0 & !I3 & I4 & I5 & !I6 & !I7 & !I8 & I9 )
+sound 0B = pin15 = ! ( !I0 & !I3 & I4 & I5 & !I6 & !I7 & !I8 & !I9 )
+n.c. = pin14 = ( !I1 & !I2 )
+/PPU1 = pin13 = ! ( !I0 & I4 & !I5 & !I6 )
+n.c. = pin12 = ( !I1 & !I2 )
+
+
+PAL BUF1 (16P8B @ 16H):
+
+I0 = A23 (all address lines can come both from 68000 and CPS-A custom)
+I1 = A22
+I2 = A21
+I3 = A20
+I4 = A19
+I5 = A18
+I6 = A17
+I7 = A16
+I8 = ASB
+
+BUF0 = pin19 = ! ( I0 & !I1 & !I2 & I3 & !I4 & !I5 & !I6 & !I7 )
+BUF1 = pin18 = ! ( I0 & !I1 & !I2 & I3 & !I4 & !I5 & !I6 & I7 )
+BUF2 = pin17 = ! ( I0 & !I1 & !I2 & I3 & !I4 & !I5 & I6 & !I7 )
+BUF3 = pin16 = ! ( I0 & !I1 & !I2 & I3 & !I4 & !I5 & I6 & I7 )
+BUF4 = pin15 = ! ( I0 & !I1 & !I2 & I3 & !I4 & I5 & !I6 & !I7 )
+BUF5 = pin14 = ! ( I0 & !I1 & !I2 & I3 & !I4 & I5 & !I6 & I7 )
+BUF6 = pin13 = ! ( I0 & !I1 & !I2 & I3 & !I4 & I5 & I6 & !I7 )
+/RDB = pin12 = ( I0 & !I1 & !I2 & I3 & !I8 )
+
+BUF0-BUF2 are gfxram on A-board. BUF3-BUF6 go to B-board (provision for expansion, never used)
+
+
+PAL ROM1 (16P8B @ 15H):
+
+I0 = A23 (all address lines can come both from 68000 and CPS-A custom)
+I1 = A22
+I2 = A21
+I3 = A20
+I4 = A19
+I5 = A18
+I6 = A17
+I7 = A16
+I8 = ASB
+
+PRG0 = pin17 = ! ( !I8 & !I0 & !I1 & !I2 & !I3 & !I4 & !I5 )
+PRG1 = pin16 = ! ( !I8 & !I0 & !I1 & !I2 & !I3 & !I4 & I5 )
+PRG2 = pin15 = ! ( !I8 & !I0 & !I1 & !I2 & !I3 & I4 & !I5 )
+PRG3 = pin14 = ! ( !I8 & !I0 & !I1 & !I2 & !I3 & I4 & I5 )
+PRG4 = pin19 = ! ( !I8 & !I0 & !I1 & !I2 & I3 & !I4 )
+PRG5 = pin18 = ! ( !I8 & !I0 & !I1 & !I2 & I3 & I4 )
+PRG6 = pin13 = ! ( !I8 & !I0 & !I1 & I2 & !I3 & !I4 )
+/RDB = pin12 = ( !I8 & !I0 & !I1 )
+
+All PRGx go to B-board. Provision for up to 4MB of ROM space, which was never used in full.
+
+*/
+
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, cps_state )
+ AM_RANGE(0x000000, 0x3fffff) AM_ROM
+ AM_RANGE(0x800000, 0x800007) AM_READ_PORT("IN1") /* Player input ports */
+ /* forgottn, willow, cawing, nemo, varth read from 800010. Probably debug input leftover from development */
+ AM_RANGE(0x800018, 0x80001f) AM_READ(cps1_hack_dsw_r) // HBMAME /* System input ports / Dip Switches */
+ AM_RANGE(0x800020, 0x800021) AM_READNOP /* ? Used by Rockman ? not mapped according to PAL */
+ AM_RANGE(0x800030, 0x800037) AM_WRITE(cps1_coinctrl_w)
+ /* Forgotten Worlds has dial controls on B-board mapped at 800040-80005f. See DRIVER_INIT */
+ AM_RANGE(0x800100, 0x80013f) AM_WRITE(cps1_cps_a_w) AM_SHARE("cps_a_regs") /* CPS-A custom */
+ /* CPS-B custom is mapped by the PAL IOB2 on the B-board. SF2 revision "E" World and USA 910228 has it at a different
+ address, see DRIVER_INIT */
+ AM_RANGE(0x800140, 0x80017f) AM_READWRITE(cps1_cps_b_r, cps1_cps_b_w) AM_SHARE("cps_b_regs")
+ AM_RANGE(0x800180, 0x800187) AM_WRITE(cps1_soundlatch_w) /* Sound command */
+ AM_RANGE(0x800188, 0x80018f) AM_WRITE(cps1_soundlatch2_w) /* Sound timer fade */
+ AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram") /* SF2CE executes code from here */
+ AM_RANGE(0xf1c000, 0xf1c001) AM_READ(cps1_in2_r) /* Player 3 controls (later games) HBMAME */
+ AM_RANGE(0xff0000, 0xffffff) AM_RAM AM_SHARE("mainram")
+ADDRESS_MAP_END
+
+/*
+PAL SOU1 (16P8 @ 13E):
+
+I0 = /MREQ
+I1 = A15
+I2 = A14
+I3 = A13
+I4 = A12
+I5 = bank latch
+I6 = /RD
+I7 = /WR
+I8 = /BANK
+
+bank latch = pin19 = ! ( !I0 & !I7 & !I8 )
+/SWR = pin18 = ! ( !I0 & !I7 )
+/SRD = pin17 = ! ( !I0 & !I6 )
+ls138 = pin16 = ! ( !I0 & I1 & I2 & I3 & I4 )
+workram = pin15 = ! ( !I0 & I1 & I2 & !I3 & I4 )
+SOUNDA14 = pin14 = ! ( !I0 & ((!I1 & !I2) | ( I1 & !I2 & !I5)) )
+SOUNDA15 = pin13 = ( I1 )
+/SOUNDCE = pin12 = ! ( !I0 & (!I1 | ( I1 & !I2)) )
+*/
+
+static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 8, cps_state )
+ AM_RANGE(0x0000, 0x7fff) AM_ROM
+ AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
+ AM_RANGE(0xd000, 0xd7ff) AM_RAM
+ AM_RANGE(0xf000, 0xf001) AM_DEVREADWRITE("2151", ym2151_device, read, write)
+ AM_RANGE(0xf002, 0xf002) AM_DEVREADWRITE("oki", okim6295_device, read, write)
+ AM_RANGE(0xf004, 0xf004) AM_WRITE(cps1_snd_bankswitch_w)
+ AM_RANGE(0xf006, 0xf006) AM_WRITE(cps1_oki_pin7_w) /* controls pin 7 of OKI chip */
+ AM_RANGE(0xf008, 0xf008) AM_DEVREAD("soundlatch", generic_latch_8_device, read) /* Sound command */
+ AM_RANGE(0xf00a, 0xf00a) AM_DEVREAD("soundlatch2", generic_latch_8_device, read) /* Sound timer fade */
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( qsound_main_map, AS_PROGRAM, 16, cps_state )
+ AM_RANGE(0x000000, 0x3fffff) AM_ROM // HBMAME for dinoz
+ AM_RANGE(0x800000, 0x800007) AM_READ_PORT("IN1") /* Player input ports */
+ AM_RANGE(0x800018, 0x80001f) AM_READ(cps1_dsw_r) /* System input ports / Dip Switches */
+ AM_RANGE(0x800030, 0x800037) AM_WRITE(cps1_coinctrl_w)
+ AM_RANGE(0x800100, 0x80013f) AM_WRITE(cps1_cps_a_w) AM_SHARE("cps_a_regs") /* CPS-A custom */
+ AM_RANGE(0x800140, 0x80017f) AM_READWRITE(cps1_cps_b_r, cps1_cps_b_w) AM_SHARE("cps_b_regs") /* CPS-B custom (mapped by LWIO/IOB1 PAL on B-board) */
+ AM_RANGE(0x800180, 0x800187) AM_WRITE(cps1_soundlatch_w) /* Sound command HBMAME */
+ AM_RANGE(0x800188, 0x80018f) AM_WRITE(cps1_soundlatch2_w) /* Sound timer fade HBMAME */
+ AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram") /* SF2CE executes code from here */
+ AM_RANGE(0xf00000, 0xf0ffff) AM_READ(qsound_rom_r) /* Slammasters protection */
+ AM_RANGE(0xf18000, 0xf19fff) AM_READWRITE(qsound_sharedram1_r, qsound_sharedram1_w) /* Q RAM */
+ AM_RANGE(0xf1c000, 0xf1c001) AM_READ_PORT("IN2") /* Player 3 controls (later games) */
+ AM_RANGE(0xf1c002, 0xf1c003) AM_READ_PORT("IN3") /* Player 4 controls ("Muscle Bombers") */
+ AM_RANGE(0xf1c004, 0xf1c005) AM_WRITE(cpsq_coinctrl2_w) /* Coin control2 (later games) */
+ AM_RANGE(0xf1c006, 0xf1c007) AM_READ_PORT("EEPROMIN") AM_WRITE_PORT("EEPROMOUT")
+ AM_RANGE(0xf1e000, 0xf1ffff) AM_READWRITE(qsound_sharedram2_r, qsound_sharedram2_w) /* Q RAM */
+ AM_RANGE(0xff0000, 0xffffff) AM_RAM AM_SHARE("mainram")
+ADDRESS_MAP_END
+
+ADDRESS_MAP_START( qsound_sub_map, AS_PROGRAM, 8, cps_state ) // used by cps2.c too
+ AM_RANGE(0x0000, 0x7fff) AM_ROM
+ AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") /* banked (contains music data) */
+ AM_RANGE(0xc000, 0xcfff) AM_RAM AM_SHARE("qsound_ram1")
+ AM_RANGE(0xd000, 0xd002) AM_DEVWRITE("qsound", qsound_device, qsound_w)
+ AM_RANGE(0xd003, 0xd003) AM_WRITE(qsound_banksw_w)
+ AM_RANGE(0xd007, 0xd007) AM_DEVREAD("qsound", qsound_device, qsound_r)
+ AM_RANGE(0xf000, 0xffff) AM_RAM AM_SHARE("qsound_ram2")
+ADDRESS_MAP_END
+
+ADDRESS_MAP_START( qsound_decrypted_opcodes_map, AS_OPCODES, 8, cps_state )
+ AM_RANGE(0x0000, 0x7fff) AM_ROMBANK("decrypted")
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( sf2m3_map, AS_PROGRAM, 16, cps_state )
+ AM_RANGE(0x000000, 0x3fffff) AM_ROM
+ AM_RANGE(0x800010, 0x800011) AM_READ_PORT("IN1") /* Player input ports */
+ AM_RANGE(0x800028, 0x80002f) AM_READ(cps1_hack_dsw_r) /* System input ports / Dip Switches */
+ AM_RANGE(0x800030, 0x800037) AM_WRITE(cps1_coinctrl_w)
+ AM_RANGE(0x800100, 0x80013f) AM_WRITE(cps1_cps_a_w) AM_SHARE("cps_a_regs") /* CPS-A custom */
+ AM_RANGE(0x800140, 0x80017f) AM_READWRITE(cps1_cps_b_r, cps1_cps_b_w) AM_SHARE("cps_b_regs") /* CPS-B custom */
+ AM_RANGE(0x800186, 0x800187) AM_READ(cps1_in2_r) /* Buttons 4,5,6 for both players */
+ AM_RANGE(0x800190, 0x800197) AM_WRITE(cps1_soundlatch_w) /* Sound command */
+ AM_RANGE(0x800198, 0x80019f) AM_WRITE(cps1_soundlatch2_w) /* Sound timer fade */
+ AM_RANGE(0x8001a0, 0x8001c3) AM_WRITE(cps1_cps_a_w)
+ AM_RANGE(0x8001c4, 0x8001c5) AM_WRITE(sf2m3_layer_w)
+ AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram")
+ AM_RANGE(0xff0000, 0xffffff) AM_RAM
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( sf2m10_map, AS_PROGRAM, 16, cps_state )
+ AM_RANGE(0x000000, 0x3fffff) AM_ROM
+ AM_RANGE(0x800000, 0x800007) AM_READ_PORT("IN1")
+ AM_RANGE(0x800018, 0x80001f) AM_READ(cps1_hack_dsw_r)
+ AM_RANGE(0x800020, 0x800021) AM_READNOP
+ AM_RANGE(0x800030, 0x800037) AM_WRITE(cps1_coinctrl_w)
+ AM_RANGE(0x800100, 0x80013f) AM_WRITE(cps1_cps_a_w) AM_SHARE("cps_a_regs")
+ AM_RANGE(0x800140, 0x80017f) AM_READWRITE(cps1_cps_b_r, cps1_cps_b_w) AM_SHARE("cps_b_regs")
+ AM_RANGE(0x800180, 0x800187) AM_WRITE(cps1_soundlatch_w)
+ AM_RANGE(0x800188, 0x80018f) AM_WRITE(cps1_soundlatch2_w)
+ AM_RANGE(0x8001a2, 0x8001b3) AM_WRITE(cps1_cps_a_w) // make 8001b2 point at 800110
+ AM_RANGE(0x8001fe, 0x8001ff) AM_WRITENOP // writes FFFF here a lot
+ AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram")
+ AM_RANGE(0xe00000, 0xefffff) AM_RAM // it writes to the whole range at start
+ AM_RANGE(0xf1c000, 0xf1c001) AM_READ(cps1_in2_r)
+ AM_RANGE(0xfeff00, 0xfeffff) AM_RAM // fix stack crash at start
+ AM_RANGE(0xff0000, 0xffffff) AM_RAM AM_SHARE("mainram")
+ADDRESS_MAP_END
+
+/***********************************************************
+ INPUT PORTS, DIPs
+***********************************************************/
+
+#define CPS1_COINAGE_1(diploc) \
+ PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coin_A ) ) PORT_DIPLOCATION(diploc ":1,2,3") \
+ PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) \
+ PORT_DIPSETTING( 0x01, DEF_STR( 3C_1C ) ) \
+ PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) ) \
+ PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) ) \
+ PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) ) \
+ PORT_DIPSETTING( 0x05, DEF_STR( 1C_3C ) ) \
+ PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ) ) \
+ PORT_DIPSETTING( 0x03, DEF_STR( 1C_6C ) ) \
+ PORT_DIPNAME( 0x38, 0x38, DEF_STR( Coin_B ) ) PORT_DIPLOCATION(diploc ":4,5,6") \
+ PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) \
+ PORT_DIPSETTING( 0x08, DEF_STR( 3C_1C ) ) \
+ PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) \
+ PORT_DIPSETTING( 0x38, DEF_STR( 1C_1C ) ) \
+ PORT_DIPSETTING( 0x30, DEF_STR( 1C_2C ) ) \
+ PORT_DIPSETTING( 0x28, DEF_STR( 1C_3C ) ) \
+ PORT_DIPSETTING( 0x20, DEF_STR( 1C_4C ) ) \
+ PORT_DIPSETTING( 0x18, DEF_STR( 1C_6C ) )
+
+#define CPS1_COINAGE_2(diploc) \
+ PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coinage ) ) PORT_DIPLOCATION(diploc ":1,2,3") \
+ PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) \
+ PORT_DIPSETTING( 0x01, DEF_STR( 3C_1C ) ) \
+ PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) ) \
+ PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) ) \
+ PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) ) \
+ PORT_DIPSETTING( 0x05, DEF_STR( 1C_3C ) ) \
+ PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ) ) \
+ PORT_DIPSETTING( 0x03, DEF_STR( 1C_6C ) )
+
+#define CPS1_COINAGE_3(diploc) \
+ PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coin_A ) ) PORT_DIPLOCATION(diploc ":1,2,3") \
+ PORT_DIPSETTING( 0x01, DEF_STR( 4C_1C ) ) \
+ PORT_DIPSETTING( 0x02, DEF_STR( 3C_1C ) ) \
+ PORT_DIPSETTING( 0x03, DEF_STR( 2C_1C ) ) \
+ PORT_DIPSETTING( 0x00, "2 Coins/1 Credit (1 to continue)" ) \
+ PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) ) \
+ PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) ) \
+ PORT_DIPSETTING( 0x05, DEF_STR( 1C_3C ) ) \
+ PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ) ) \
+ PORT_DIPNAME( 0x38, 0x38, DEF_STR( Coin_B ) ) PORT_DIPLOCATION(diploc ":4,5,6") \
+ PORT_DIPSETTING( 0x08, DEF_STR( 4C_1C ) ) \
+ PORT_DIPSETTING( 0x10, DEF_STR( 3C_1C ) ) \
+ PORT_DIPSETTING( 0x18, DEF_STR( 2C_1C ) ) \
+ PORT_DIPSETTING( 0x00, "2 Coins/1 Credit (1 to continue)" ) \
+ PORT_DIPSETTING( 0x38, DEF_STR( 1C_1C ) ) \
+ PORT_DIPSETTING( 0x30, DEF_STR( 1C_2C ) ) \
+ PORT_DIPSETTING( 0x28, DEF_STR( 1C_3C ) ) \
+ PORT_DIPSETTING( 0x20, DEF_STR( 1C_4C ) )
+
+#define CPS1_DIFFICULTY_1(diploc) \
+ PORT_DIPNAME( 0x07, 0x04, DEF_STR( Difficulty ) ) PORT_DIPLOCATION(diploc ":1,2,3") \
+ PORT_DIPSETTING( 0x07, "0 (Easiest)" ) \
+ PORT_DIPSETTING( 0x06, "1" ) \
+ PORT_DIPSETTING( 0x05, "2" ) \
+ PORT_DIPSETTING( 0x04, "3 (Normal)" ) \
+ PORT_DIPSETTING( 0x03, "4" ) \
+ PORT_DIPSETTING( 0x02, "5" ) \
+ PORT_DIPSETTING( 0x01, "6" ) \
+ PORT_DIPSETTING( 0x00, "7 (Hardest)" )
+
+#define CPS1_DIFFICULTY_2(diploc) \
+ PORT_DIPNAME( 0x07, 0x07, DEF_STR( Difficulty ) ) PORT_DIPLOCATION(diploc ":1,2,3") \
+ PORT_DIPSETTING( 0x04, "1 (Easiest)" ) \
+ PORT_DIPSETTING( 0x05, "2" ) \
+ PORT_DIPSETTING( 0x06, "3" ) \
+ PORT_DIPSETTING( 0x07, "4 (Normal)" ) \
+ PORT_DIPSETTING( 0x03, "5" ) \
+ PORT_DIPSETTING( 0x02, "6" ) \
+ PORT_DIPSETTING( 0x01, "7" ) \
+ PORT_DIPSETTING( 0x00, "8 (Hardest)" )
+
+/* CPS1 games with 2 players and 3 buttons each */
+static INPUT_PORTS_START( cps1_3b )
+ PORT_START("IN0")
+ 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_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
+ PORT_SERVICE( 0x40, IP_ACTIVE_LOW )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("IN1")
+ PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) 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 )
+INPUT_PORTS_END
+
+/* CPS1 games with 2 players and 2 buttons each */
+static INPUT_PORTS_START( cps1_2b )
+ PORT_INCLUDE( cps1_3b )
+
+ PORT_MODIFY("IN1")
+ PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN ) // no button 3
+ PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) // no button 3
+INPUT_PORTS_END
+
+/* CPS1 games with 2 players and 1 button each */
+static INPUT_PORTS_START( cps1_1b )
+ PORT_INCLUDE( cps1_2b )
+
+ PORT_MODIFY("IN1")
+ PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN ) // no button 2
+ PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) // no button 2
+INPUT_PORTS_END
+
+/* CPS1 games with 3 players and 2 buttons each */
+static INPUT_PORTS_START( cps1_3players )
+ PORT_INCLUDE( cps1_2b )
+
+ PORT_START("IN2") /* Player 3 */
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3)
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3)
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN3 )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 )
+INPUT_PORTS_END
+
+/* CPS1 games with 4 players and 2 buttons each */
+static INPUT_PORTS_START( cps1_4players )
+ PORT_INCLUDE( cps1_3players )
+
+ PORT_START("IN3") /* Player 4 */
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(4)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(4)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(4)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(4)
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4)
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4)
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN4 )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START4 )
+INPUT_PORTS_END
+
+/* CPS1 games with 2 players and 6 buttons each */
+static INPUT_PORTS_START( cps1_6b)
+ PORT_INCLUDE( cps1_3b)
+
+ PORT_MODIFY("IN1")
+ PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P1 Jab Punch") PORT_PLAYER(1)
+ PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P1 Strong Punch") PORT_PLAYER(1)
+ PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("P1 Fierce Punch") PORT_PLAYER(1)
+ PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P2 Jab Punch") PORT_PLAYER(2)
+ PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P2 Strong Punch") PORT_PLAYER(2)
+ PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("P2 Fierce Punch") PORT_PLAYER(2)
+
+ PORT_START("IN2") /* Extra buttons */
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("P1 Short Kick") PORT_PLAYER(1)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("P1 Forward Kick") PORT_PLAYER(1)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("P1 Roundhouse Kick") PORT_PLAYER(1)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("P2 Short Kick") PORT_PLAYER(2)
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("P2 Forward Kick") PORT_PLAYER(2)
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("P2 Roundhouse Kick") PORT_PLAYER(2)
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
+INPUT_PORTS_END
+
+/* CPS1 quiz games */
+static INPUT_PORTS_START( cps1_quiz )
+ PORT_INCLUDE( cps1_3b )
+
+ PORT_MODIFY("IN1") /* no joystick and 4th button */
+ PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1)
+ 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( 0x8000, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2)
+INPUT_PORTS_END
+
+
+static INPUT_PORTS_START( forgottn )
+ PORT_INCLUDE( cps1_1b )
+
+ PORT_MODIFY("IN0")
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("DSWC") // The manual only mentions two DIP switch banks.
+ PORT_DIPUNUSED( 0x80, 0x80 ) // Is this port brought out to DIP switches or not?
+ PORT_DIPUNKNOWN( 0x40, 0x40 ) // Check code at 0x013c78 (0x013690 in 'lostwrld')
+ PORT_DIPUNUSED( 0x20, 0x20 )
+ PORT_DIPUNUSED( 0x10, 0x10 )
+ PORT_DIPUNUSED( 0x08, 0x08 )
+ PORT_DIPUNUSED( 0x04, 0x04 )
+ PORT_DIPUNUSED( 0x02, 0x02 )
+ PORT_DIPUNUSED( 0x01, 0x01 )
+
+ PORT_START("DSWB")
+ CPS1_DIFFICULTY_1( "DIP-B" )
+ PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "DIP-B:4" )
+ PORT_DIPUNUSED_DIPLOC( 0x10, 0x10, "DIP-B:5" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "DIP-B:6" ) // Check code at 0x00111c (0x00112c in 'lostwrld')
+ PORT_SERVICE_DIPLOC( 0x40, IP_ACTIVE_LOW, "DIP-B:7" )
+ PORT_DIPNAME( 0x80, 0x80, "Freeze" ) PORT_DIPLOCATION("DIP-B:8")
+ PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+
+ PORT_START("DSWA")
+ CPS1_COINAGE_1( "DIP-A" )
+ PORT_DIPNAME( 0x40, 0x40, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("DIP-A:7")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( On ) )
+ PORT_DIPNAME( 0x80, 0x80, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("DIP-A:8")
+ PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+
+ PORT_START("DIAL0")
+ PORT_BIT( 0x0fff, 0x0000, IPT_DIAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(20) PORT_CODE_DEC(KEYCODE_Z) PORT_CODE_INC(KEYCODE_X) PORT_PLAYER(1)
+
+ PORT_START("DIAL1")
+ PORT_BIT( 0x0fff, 0x0000, IPT_DIAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(20) PORT_CODE_DEC(KEYCODE_N) PORT_CODE_INC(KEYCODE_M) PORT_PLAYER(2)
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( ghouls )
+ PORT_INCLUDE( cps1_2b )
+ /* Service1 doesn't give any credit */
+
+ PORT_START("DSWC")
+ PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW(C):1,2")
+ PORT_DIPSETTING( 0x03, "3" )
+ PORT_DIPSETTING( 0x02, "4" )
+ PORT_DIPSETTING( 0x01, "5" )
+ PORT_DIPSETTING( 0x00, "6" )
+ PORT_DIPUNUSED_DIPLOC( 0x04, 0x04, "SW(C):3" )
+ PORT_DIPUNUSED_DIPLOC( 0x08, 0x08, "SW(C):4" )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW(C):6")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) // "Demo Sounds" in manual; doesn't work
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x40, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7")
+ PORT_DIPSETTING( 0x00, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( Yes ) )
+ PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8")
+ PORT_DIPSETTING( 0x80, "Game" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Test ) )
+
+ PORT_START("DSWB") /* Manual states default difficulty "B" (2) which differs from the normal macro */
+ PORT_DIPNAME( 0x07, 0x05, DEF_STR( Difficulty ) ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x80) PORT_DIPLOCATION("SW(B):1,2,3")
+ PORT_DIPSETTING( 0x04, "1 (Easiest)" )
+ PORT_DIPSETTING( 0x05, "2" )
+ PORT_DIPSETTING( 0x06, "3" )
+ PORT_DIPSETTING( 0x07, "4 (Normal)" )
+ PORT_DIPSETTING( 0x03, "5" )
+ PORT_DIPSETTING( 0x02, "6" )
+ PORT_DIPSETTING( 0x01, "7" )
+ PORT_DIPSETTING( 0x00, "8 (Hardest)" )
+ PORT_DIPUNUSED_DIPLOC( 0x08, 0x08, "SW(B):4" )
+ PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW(B):5,6")
+ PORT_DIPSETTING( 0x20, "10K, 30K and every 30K" )
+ PORT_DIPSETTING( 0x10, "20K, 50K and every 70K" )
+ PORT_DIPSETTING( 0x30, "30K, 60K and every 70K" )
+ PORT_DIPSETTING( 0x00, "40K, 70K and every 80K" )
+ PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW(B):7" )
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(B):8" )
+
+ PORT_START("DSWA")
+ CPS1_COINAGE_1( "SW(A)" )
+ PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW(A):7,8")
+ PORT_DIPSETTING( 0xc0, "Upright 1 Player" )
+ PORT_DIPSETTING( 0x80, "Upright 2 Players" )
+// PORT_DIPSETTING( 0x40, DEF_STR( Cocktail ) ) // Manual says these are both valid settings
+ PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) // for 2-player cocktail cabinet
+INPUT_PORTS_END
+
+/* Same as 'ghouls' but additional "Freeze" Dip Switch, different "Lives" Dip Switch,
+ and LOTS of "debug" features (read the notes to know how to activate them) */
+static INPUT_PORTS_START( ghoulsu )
+ PORT_INCLUDE( ghouls )
+
+ PORT_MODIFY("DSWC")
+ PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW(C):1,2")
+ PORT_DIPSETTING( 0x00, "2" )
+ PORT_DIPSETTING( 0x03, "3" )
+ PORT_DIPSETTING( 0x02, "4" )
+ PORT_DIPSETTING( 0x01, "5" )
+
+ PORT_MODIFY("DSWB")
+ /* Standard Dip Switches */
+ PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unused ) ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x80) PORT_DIPLOCATION("SW(B):4")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x30, 0x00, DEF_STR( Bonus_Life ) ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x80) PORT_DIPLOCATION("SW(B):5,6")
+ PORT_DIPSETTING( 0x20, "10K, 30K and every 30K" )
+ PORT_DIPSETTING( 0x10, "20K, 50K and every 70K" )
+ PORT_DIPSETTING( 0x30, "30K, 60K and every 70K" )
+ PORT_DIPSETTING( 0x00, "40K, 70K and every 80K" )
+/* Manuals states the following bonus settings
+ PORT_DIPSETTING( 0x20, "20K, 50K and every 70K" )
+ PORT_DIPSETTING( 0x10, "10K, 30K and every 30K" )
+ PORT_DIPSETTING( 0x30, "40K, 70K and every 80K" )
+ PORT_DIPSETTING( 0x00, "30K, 60K and every 70K" )
+*/
+ /* Debug Dip Switches */
+ PORT_DIPNAME( 0x07, 0x07, "Starting Weapon" ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x00) PORT_DIPLOCATION("SW(B):1,2,3")
+ PORT_DIPSETTING( 0x07, "Spear" )
+ PORT_DIPSETTING( 0x06, "Knife" )
+ PORT_DIPSETTING( 0x05, "Torch" )
+ PORT_DIPSETTING( 0x04, "Sword" )
+ PORT_DIPSETTING( 0x03, "Axe" )
+ PORT_DIPSETTING( 0x02, "Shield" )
+ PORT_DIPSETTING( 0x01, "Super Weapon" )
+// PORT_DIPSETTING( 0x00, "INVALID !" )
+ PORT_DIPNAME( 0x38, 0x30, "Armor on New Life" ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x00) PORT_DIPLOCATION("SW(B):4,5,6")
+// PORT_DIPSETTING( 0x38, "Silver Armor" )
+ PORT_DIPSETTING( 0x18, "Golden Armor" )
+ PORT_DIPSETTING( 0x30, "Silver Armor" )
+ PORT_DIPSETTING( 0x28, "None (young man)" )
+ PORT_DIPSETTING( 0x20, "None (old man)" )
+// PORT_DIPSETTING( 0x10, "INVALID !" )
+// PORT_DIPSETTING( 0x08, "INVALID !" )
+// PORT_DIPSETTING( 0x00, "INVALID !" )
+
+ PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW(B):7" )
+ PORT_DIPNAME( 0x80, 0x80, "Freeze" ) PORT_DIPLOCATION("SW(B):8")
+ PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+
+ PORT_MODIFY("DSWA")
+ /* Standard Dip Switches */
+ PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coin_A ) ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x80) PORT_DIPLOCATION("SW(A):1,2,3")
+ PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( 3C_1C ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) )
+ PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) )
+ PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) )
+ PORT_DIPSETTING( 0x05, DEF_STR( 1C_3C ) )
+ PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ) )
+ PORT_DIPSETTING( 0x03, DEF_STR( 1C_6C ) )
+ PORT_DIPNAME( 0x38, 0x38, DEF_STR( Coin_B ) ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x80) PORT_DIPLOCATION("SW(A):4,5,6")
+ PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) )
+ PORT_DIPSETTING( 0x08, DEF_STR( 3C_1C ) )
+ PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) )
+ PORT_DIPSETTING( 0x38, DEF_STR( 1C_1C ) )
+ PORT_DIPSETTING( 0x30, DEF_STR( 1C_2C ) )
+ PORT_DIPSETTING( 0x28, DEF_STR( 1C_3C ) )
+ PORT_DIPSETTING( 0x20, DEF_STR( 1C_4C ) )
+ PORT_DIPSETTING( 0x18, DEF_STR( 1C_6C ) )
+ /* Debug Dip Switches */
+ PORT_DIPNAME( 0x0f, 0x0f, "Starting Level" ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x00) PORT_DIPLOCATION("SW(A):1,2,3,4")
+ PORT_DIPSETTING( 0x0f, "Level 1 (1st half)" )
+ PORT_DIPSETTING( 0x0e, "Level 1 (2nd half)" )
+ PORT_DIPSETTING( 0x0d, "Level 2 (1st half)" )
+ PORT_DIPSETTING( 0x0c, "Level 2 (2nd half)" )
+ PORT_DIPSETTING( 0x0b, "Level 3 (1st half)" )
+ PORT_DIPSETTING( 0x0a, "Level 3 (2nd half)" )
+ PORT_DIPSETTING( 0x09, "Level 4 (1st half)" )
+ PORT_DIPSETTING( 0x08, "Level 4 (2nd half)" )
+ PORT_DIPSETTING( 0x07, "Level 5 (1st half)" )
+ PORT_DIPSETTING( 0x06, "Level 5 (2nd half)" )
+ PORT_DIPSETTING( 0x05, "Level 6" )
+// PORT_DIPSETTING( 0x04, "INVALID !" )
+// PORT_DIPSETTING( 0x03, "INVALID !" )
+// PORT_DIPSETTING( 0x02, "INVALID !" )
+// PORT_DIPSETTING( 0x01, "INVALID !" )
+// PORT_DIPSETTING( 0x00, "INVALID !" )
+ PORT_DIPNAME( 0x10, 0x10, "Invulnerability" ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x00) PORT_DIPLOCATION("SW(A):5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x20, "Slow Motion" ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x00) PORT_DIPLOCATION("SW(A):6")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+
+ PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW(A):7,8")
+ PORT_DIPSETTING( 0xc0, "Upright 1 Player" )
+ PORT_DIPSETTING( 0x80, "Upright 2 Players" )
+// PORT_DIPSETTING( 0x40, DEF_STR( Cocktail ) ) // Manual says these are both valid settings
+ PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) // for 2-player cocktail cabinet
+INPUT_PORTS_END
+
+/* Same as 'ghouls' but additional "Freeze" Dip Switch */
+static INPUT_PORTS_START( daimakai )
+ PORT_INCLUDE(ghouls)
+
+ PORT_MODIFY("DSWB")
+ PORT_DIPNAME( 0x80, 0x80, "Freeze" ) PORT_DIPLOCATION("SW(B):8")
+ PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) // This switch isn't documented in the manual
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+INPUT_PORTS_END
+
+/* "Debug" features to be implemented */
+static INPUT_PORTS_START( strider )
+ PORT_INCLUDE( cps1_3b )
+
+ PORT_START("DSWA")
+ CPS1_COINAGE_1( "SW(A)" )
+ PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW(A):7,8")
+ PORT_DIPSETTING( 0xc0, "Upright 1 Player" ) // These switches are not documented in the manual
+ PORT_DIPSETTING( 0x80, "Upright 2 Players" )
+// PORT_DIPSETTING( 0x40, DEF_STR( Cocktail ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
+
+ PORT_START("DSWB") /* Like Ghouls, Strider manual states "B" (or 2) as the recommended difficulty level. */
+ PORT_DIPNAME( 0x07, 0x05, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW(B):1,2,3")
+ PORT_DIPSETTING( 0x04, "1 (Easiest)" )
+ PORT_DIPSETTING( 0x05, "2" )
+ PORT_DIPSETTING( 0x06, "3" )
+ PORT_DIPSETTING( 0x07, "4 (Normal)" )
+ PORT_DIPSETTING( 0x03, "5" )
+ PORT_DIPSETTING( 0x02, "6" )
+ PORT_DIPSETTING( 0x01, "7" )
+ PORT_DIPSETTING( 0x00, "8 (Hardest)" )
+ /* In 'striderj', bit 3 is stored at 0xff8e77 ($e77,A5) via code at 0x000a2a,
+ but this address is never checked again.
+ In 'strider' and 'stridrjr', this code even doesn't exist ! */
+ PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW(B):4")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) // Manual says this is 2c start/1c continue but it
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) ) // doesn't work (see comment above)
+ PORT_DIPNAME( 0x30, 0x00, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW(B):5,6")
+/* These show in test mode */
+ PORT_DIPSETTING( 0x30, "20K, 40K then every 60K" )
+ PORT_DIPSETTING( 0x20, "30K, 50K then every 70K" )
+ PORT_DIPSETTING( 0x10, "20K & 60K only" )
+ PORT_DIPSETTING( 0x00, "30K & 60K only" )
+/* According to manual, these are the proper settings
+ PORT_DIPSETTING( 0x30, "40K, 70K then every 80K" )
+ PORT_DIPSETTING( 0x20, "20K, 50K then every 70K" )
+ PORT_DIPSETTING( 0x10, "10k, 30k then every 30k" )
+ PORT_DIPSETTING( 0x00, "30K, 60k then every 70k" )
+*/
+
+ PORT_DIPNAME( 0xc0, 0x80, "Internal Diff. on Life Loss" ) PORT_DIPLOCATION("SW(B):7,8")
+ PORT_DIPSETTING( 0xc0, "-3" ) // Check code at 0x00d15a
+// PORT_DIPSETTING( 0x40, "-1" ) // These switches are not documented in the manual
+ PORT_DIPSETTING( 0x00, "-1" )
+ PORT_DIPSETTING( 0x80, "Default" )
+
+ PORT_START("DSWC")
+ PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW(C):1,2")
+ PORT_DIPSETTING( 0x00, "2" ) // "6" in the "test mode" and manual
+ PORT_DIPSETTING( 0x03, "3" )
+ PORT_DIPSETTING( 0x02, "4" )
+ PORT_DIPSETTING( 0x01, "5" )
+ PORT_DIPNAME( 0x04, 0x04, "Freeze" ) PORT_DIPLOCATION("SW(C):3")
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x08, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW(C):4")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x20, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x20, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x40, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7")
+ PORT_DIPSETTING( 0x00, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( Yes ) )
+ PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8")
+ PORT_DIPSETTING( 0x80, "Game" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Test ) ) // To enable the "debug" features
+INPUT_PORTS_END
+
+/* Same as 'strider' but additional "2 Coins to Start, 1 to Continue" Dip Switch */
+/* "Debug" features to be implemented */
+static INPUT_PORTS_START( stridrua )
+ PORT_INCLUDE( strider )
+
+ PORT_MODIFY("DSWB")
+ /* In 'striderj', bit 3 is stored at 0xff8e77 ($e77,A5) via code at 0x000a2a,
+ but this address is never checked again.
+ In 'strider' and 'stridrjr', this code even doesn't exist ! */
+ PORT_DIPNAME( 0x08, 0x08, "2 Coins to Start, 1 to Continue" ) PORT_DIPLOCATION("SW(B):4")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) // This works in this revision
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( dynwar )
+ PORT_INCLUDE( cps1_3b )
+
+ PORT_START("DSWC")
+ PORT_DIPNAME( 0x01, 0x01, "Freeze" ) PORT_DIPLOCATION("SW(C):1")
+ PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) // Also affects energy cost - read notes
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) ) // This switch is not documented in the manual
+ PORT_DIPNAME( 0x02, 0x02, "Turbo Mode" ) PORT_DIPLOCATION("SW(C):2")
+ PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) // Also affects energy cost - read notes
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) ) // This switch is not documented in the manual
+ PORT_DIPUNUSED_DIPLOC( 0x04, 0x04, "SW(C):3" ) // This switch is not documented in the manual
+ PORT_DIPUNUSED_DIPLOC( 0x08, 0x08, "SW(C):4" ) // This switch is not documented in the manual
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x20, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) // "ON" in the "test mode"
+ PORT_DIPSETTING( 0x20, DEF_STR( On ) ) // "OFF" in the "test mode"
+ PORT_DIPNAME( 0x40, 0x40, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7")
+ PORT_DIPSETTING( 0x00, DEF_STR( No ) ) // "ON" in the "test mode"
+ PORT_DIPSETTING( 0x40, DEF_STR( Yes ) ) // "OFF" in the "test mode"
+ PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8")
+ PORT_DIPSETTING( 0x80, "Game" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Test ) )
+
+ PORT_START("DSWB")
+ CPS1_DIFFICULTY_2( "SW(B)" )
+ PORT_DIPUNUSED_DIPLOC( 0x08, 0x08, "SW(B):4" ) // These five switches are not documented in the
+ PORT_DIPUNUSED_DIPLOC( 0x10, 0x10, "SW(B):5" ) // manual
+ PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW(B):6" )
+ PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW(B):7" )
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(B):8" )
+
+ PORT_START("DSWA")
+ /* According to the manual, ALL switches 1 to 6 must be ON to have
+ "2 Coins/1 Credit (1 to continue)" for both coin slots */
+ CPS1_COINAGE_3( "SW(A)" )
+ PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW(A):7" ) // This switch is not documented in the manual
+ PORT_DIPNAME( 0x80, 0x80, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW(A):8")
+ PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) // This switch is not documented in the manual
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+INPUT_PORTS_END
+
+/* Read the notes to know how to activate the "debug" features */
+static INPUT_PORTS_START( willow )
+ PORT_INCLUDE( cps1_3b )
+
+ PORT_MODIFY("IN0")
+ PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW )
+
+ PORT_START("DSWC")
+ /* Standard Dip Switches */
+ PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x80) PORT_DIPLOCATION("SW(C):1,2")
+ PORT_DIPSETTING( 0x02, "1" )
+ PORT_DIPSETTING( 0x03, "2" )
+ PORT_DIPSETTING( 0x01, "3" )
+ PORT_DIPSETTING( 0x00, "4" )
+ PORT_DIPNAME( 0x0c, 0x08, "Vitality" ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x80) PORT_DIPLOCATION("SW(C):3,4")
+ PORT_DIPSETTING( 0x00, "2" )
+ PORT_DIPSETTING( 0x0c, "3" )
+ PORT_DIPSETTING( 0x08, "4" )
+ PORT_DIPSETTING( 0x04, "5" )
+ /* Debug Dip Switches */
+ PORT_DIPNAME( 0x01, 0x01, "Turbo Mode" ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x00) PORT_DIPLOCATION("SW(C):1")
+ PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x02, 0x02, "Freeze" ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x00) PORT_DIPLOCATION("SW(C):2")
+ PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x04, 0x04, "Slow Motion" ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x00) PORT_DIPLOCATION("SW(C):3")
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x08, "Invulnerability" ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x00) PORT_DIPLOCATION("SW(C):4")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+
+ /* Standard Dip Switches */
+ PORT_DIPNAME( 0x20, 0x20, DEF_STR( Demo_Sounds ) ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x80) PORT_DIPLOCATION("SW(C):6")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x20, DEF_STR( On ) )
+ /* Debug Dip Switches */
+ PORT_DIPNAME( 0x20, 0x20, "Display Debug Infos" ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x00) PORT_DIPLOCATION("SW(C):6")
+ PORT_DIPSETTING( 0x20, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
+
+ PORT_DIPNAME( 0x40, 0x40, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7")
+ PORT_DIPSETTING( 0x00, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( Yes ) )
+ PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8")
+ PORT_DIPSETTING( 0x80, "Game" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Test ) ) // To enable the "debug" features
+
+ PORT_START("DSWB")
+ /* Standard Dip Switches */
+ PORT_DIPNAME( 0x07, 0x07, DEF_STR( Difficulty ) ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x80) PORT_DIPLOCATION("SW(B):1,2,3")
+ PORT_DIPSETTING( 0x04, "1 (Easiest)" )
+ PORT_DIPSETTING( 0x05, "2" )
+ PORT_DIPSETTING( 0x06, "3" )
+ PORT_DIPSETTING( 0x07, "4 (Normal)" )
+ PORT_DIPSETTING( 0x03, "5" )
+ PORT_DIPSETTING( 0x02, "6" )
+ PORT_DIPSETTING( 0x01, "7" )
+ PORT_DIPSETTING( 0x00, "8 (Hardest)" )
+ PORT_DIPNAME( 0x18, 0x18, "Nando Speed" ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x80) PORT_DIPLOCATION("SW(B):4,5")
+ PORT_DIPSETTING( 0x10, "Slow" )
+ PORT_DIPSETTING( 0x18, DEF_STR( Normal ) )
+ PORT_DIPSETTING( 0x08, "Fast" )
+ PORT_DIPSETTING( 0x00, "Very Fast" )
+ PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unused ) ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x80) PORT_DIPLOCATION("SW(B):6")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x80) PORT_DIPLOCATION("SW(B):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x80, 0x80, "Stage Magic Continue" ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x80) PORT_DIPLOCATION("SW(B):8")
+ PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ /* Debug Dip Switches */
+ PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x00) PORT_DIPLOCATION("SW(B):1")
+ PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x1e, 0x1e, "Slow Motion Delay" ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x00) PORT_DIPLOCATION("SW(B):2,3,4,5")
+ PORT_DIPSETTING( 0x1e, "2 Frames" )
+ PORT_DIPSETTING( 0x1c, "3 Frames" )
+ PORT_DIPSETTING( 0x1a, "4 Frames" )
+ PORT_DIPSETTING( 0x18, "5 Frames" )
+ PORT_DIPSETTING( 0x16, "6 Frames" )
+ PORT_DIPSETTING( 0x14, "7 Frames" )
+ PORT_DIPSETTING( 0x12, "8 Frames" )
+ PORT_DIPSETTING( 0x10, "9 Frames" )
+ PORT_DIPSETTING( 0x0e, "10 Frames" )
+ PORT_DIPSETTING( 0x0c, "11 Frames" )
+ PORT_DIPSETTING( 0x0a, "12 Frames" )
+ PORT_DIPSETTING( 0x08, "13 Frames" )
+ PORT_DIPSETTING( 0x06, "14 Frames" )
+ PORT_DIPSETTING( 0x04, "15 Frames" )
+ PORT_DIPSETTING( 0x02, "16 Frames" )
+ PORT_DIPSETTING( 0x00, "17 Frames" )
+ PORT_DIPNAME( 0xe0, 0xe0, "Starting Level" ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x00) PORT_DIPLOCATION("SW(B):6,7,8")
+ PORT_DIPSETTING( 0xe0, "Level 1" )
+ PORT_DIPSETTING( 0xc0, "Level 2" )
+ PORT_DIPSETTING( 0xa0, "Level 3" )
+ PORT_DIPSETTING( 0x80, "Level 4" )
+ PORT_DIPSETTING( 0x60, "Level 5" )
+ PORT_DIPSETTING( 0x40, "Level 6" )
+// PORT_DIPSETTING( 0x20, "INVALID !" )
+// PORT_DIPSETTING( 0x00, "INVALID !" )
+
+ PORT_START("DSWA")
+ /* Standard Dip Switches */
+ PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coin_A ) ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x80) PORT_DIPLOCATION("SW(A):1,2,3")
+ PORT_DIPSETTING( 0x01, DEF_STR( 4C_1C ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( 3C_1C ) )
+ PORT_DIPSETTING( 0x03, DEF_STR( 2C_1C ) )
+ PORT_DIPSETTING( 0x00, "2 Coins/1 Credit (1 to continue)" )
+ PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) )
+ PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) )
+ PORT_DIPSETTING( 0x05, DEF_STR( 1C_3C ) )
+ PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ) )
+ PORT_DIPNAME( 0x38, 0x38, DEF_STR( Coin_B ) ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x80) PORT_DIPLOCATION("SW(A):4,5,6")
+ PORT_DIPSETTING( 0x08, DEF_STR( 4C_1C ) )
+ PORT_DIPSETTING( 0x10, DEF_STR( 3C_1C ) )
+ PORT_DIPSETTING( 0x18, DEF_STR( 2C_1C ) )
+ PORT_DIPSETTING( 0x00, "2 Coins/1 Credit (1 to continue)" )
+ PORT_DIPSETTING( 0x38, DEF_STR( 1C_1C ) )
+ PORT_DIPSETTING( 0x30, DEF_STR( 1C_2C ) )
+ PORT_DIPSETTING( 0x28, DEF_STR( 1C_3C ) )
+ PORT_DIPSETTING( 0x20, DEF_STR( 1C_4C ) )
+ PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Cabinet ) ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x80) PORT_DIPLOCATION("SW(A):7,8")
+ PORT_DIPSETTING( 0xc0, "Upright 1 Player" )
+ PORT_DIPSETTING( 0x80, "Upright 2 Players" )
+// PORT_DIPSETTING( 0x40, DEF_STR( Cocktail ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
+ /* Debug Dip Switches */
+ PORT_DIPNAME( 0x3f, 0x3f, DEF_STR( Free_Play ) ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x00) PORT_DIPLOCATION("SW(A):1,2,3,4,5,6")
+ PORT_DIPSETTING( 0x3f, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x38, DEF_STR( On ) )
+ /* Other values don't give free play */
+ PORT_DIPNAME( 0x40, 0x40, DEF_STR( Cabinet ) ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x00) PORT_DIPLOCATION("SW(A):7")
+ PORT_DIPSETTING( 0x40, "Upright 1 Player" )
+ PORT_DIPSETTING( 0x00, "Upright 2 Players" )
+ PORT_DIPNAME( 0x80, 0x80, "Maximum magic/sword power" ) PORT_CONDITION("DSWC", 0x80, EQUALS, 0x00) PORT_DIPLOCATION("SW(A):8")
+ PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+INPUT_PORTS_END
+
+/* To enable extra choices in the "test mode", you must press "Coin 1" ('5') AND "Service Mode" ('F2') */
+static INPUT_PORTS_START( unsquad )
+ PORT_INCLUDE( cps1_3b )
+
+ PORT_MODIFY("IN0")
+ PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW )
+
+ PORT_START("DSWA")
+ CPS1_COINAGE_3( "SW(A)" )
+ /* According to the manual, ALL bits 0 to 5 must be ON to have
+ "2 Coins/1 Credit (1 to continue)" for both coin slots */
+ PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW(A):7" )
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(A):8" )
+
+ PORT_START("DSWB")
+ CPS1_DIFFICULTY_1( "SW(B)" )
+ PORT_DIPNAME( 0x18, 0x18, "Damage" ) PORT_DIPLOCATION("SW(B):4,5")
+ PORT_DIPSETTING( 0x10, "Small" ) // Check code at 0x006f4e
+ PORT_DIPSETTING( 0x18, DEF_STR( Normal ) )
+ PORT_DIPSETTING( 0x08, "Big" )
+ PORT_DIPSETTING( 0x00, "Biggest" )
+ PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW(B):6" )
+ PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW(B):7" )
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(B):8" )
+
+ PORT_START("DSWC")
+ PORT_DIPUNUSED_DIPLOC( 0x01, 0x01, "SW(C):1" )
+ PORT_DIPUNUSED_DIPLOC( 0x02, 0x02, "SW(C):2" )
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW(C):3")
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x08, "Freeze" ) PORT_DIPLOCATION("SW(C):4")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
+ PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8")
+ PORT_DIPSETTING( 0x80, "Game" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Test ) )
+INPUT_PORTS_END
+
+/* To enable other choices in the "test mode", you must press ("P1 Button 1" ('Ctrl')
+ or "P1 Button 2" ('Alt')) when "Service Mode" is ON */
+static INPUT_PORTS_START( ffight )
+ PORT_INCLUDE( cps1_3b )
+
+ PORT_MODIFY("IN1")
+ PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) PORT_NAME ("P1 Button 3 (Cheat)")
+ PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) PORT_NAME ("P2 Button 3 (Cheat)")
+
+ PORT_START("DSWA")
+ CPS1_COINAGE_1( "SW(A)" )
+ PORT_DIPNAME( 0x40, 0x40, "2 Coins to Start, 1 to Continue" ) PORT_DIPLOCATION("SW(A):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(A):8" )
+
+ PORT_START("DSWB")
+ PORT_DIPNAME( 0x07, 0x04, "Difficulty Level 1" ) PORT_DIPLOCATION("SW(B):1,2,3")
+ PORT_DIPSETTING( 0x07, DEF_STR( Easiest ) ) // "01"
+ PORT_DIPSETTING( 0x06, DEF_STR( Easier ) ) // "02"
+ PORT_DIPSETTING( 0x05, DEF_STR( Easy ) ) // "03"
+ PORT_DIPSETTING( 0x04, DEF_STR( Normal ) ) // "04"
+ PORT_DIPSETTING( 0x03, DEF_STR( Medium ) ) // "05"
+ PORT_DIPSETTING( 0x02, DEF_STR( Hard ) ) // "06"
+ PORT_DIPSETTING( 0x01, DEF_STR( Harder ) ) // "07"
+ PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) // "08"
+ PORT_DIPNAME( 0x18, 0x10, "Difficulty Level 2" ) PORT_DIPLOCATION("SW(B):4,5")
+ PORT_DIPSETTING( 0x18, DEF_STR( Easy ) ) // "01"
+ PORT_DIPSETTING( 0x10, DEF_STR( Normal ) ) // "02"
+ PORT_DIPSETTING( 0x08, DEF_STR( Hard ) ) // "03"
+ PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) // "04"
+ PORT_DIPNAME( 0x60, 0x60, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW(B):6,7")
+ PORT_DIPSETTING( 0x60, "100k" )
+ PORT_DIPSETTING( 0x40, "200k" )
+ PORT_DIPSETTING( 0x20, "100k and every 200k" )
+ PORT_DIPSETTING( 0x00, DEF_STR( None ) )
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(B):8" )
+
+ PORT_START("DSWC")
+ PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW(C):1,2")
+ PORT_DIPSETTING( 0x00, "1" )
+ PORT_DIPSETTING( 0x03, "2" )
+ PORT_DIPSETTING( 0x02, "3" )
+ PORT_DIPSETTING( 0x01, "4" )
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW(C):3")
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x08, "Freeze" ) PORT_DIPLOCATION("SW(C):4")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
+ PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8")
+ PORT_DIPSETTING( 0x80, "Game" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Test ) )
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( 1941 )
+ PORT_INCLUDE( cps1_2b )
+
+ PORT_START("DSWA")
+ CPS1_COINAGE_1( "SW(A)" )
+ PORT_DIPNAME( 0x40, 0x40, "2 Coins to Start, 1 to Continue" ) PORT_DIPLOCATION("SW(A):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(A):8" )
+
+ PORT_START("DSWB")
+ CPS1_DIFFICULTY_1( "SW(B)" )
+ PORT_DIPNAME( 0x18, 0x18, "Level Up Timer" ) PORT_DIPLOCATION("SW(B):4,5")
+ PORT_DIPSETTING( 0x18, "More Slowly" )
+ PORT_DIPSETTING( 0x10, "Slowly" )
+ PORT_DIPSETTING( 0x08, "Quickly" )
+ PORT_DIPSETTING( 0x00, "More Quickly" )
+ PORT_DIPNAME( 0x60, 0x60, "Bullet's Speed" ) PORT_DIPLOCATION("SW(B):6,7")
+ PORT_DIPSETTING( 0x60, "Very Slow" )
+ PORT_DIPSETTING( 0x40, "Slow" )
+ PORT_DIPSETTING( 0x20, "Fast" )
+ PORT_DIPSETTING( 0x00, "Very Fast" )
+ PORT_DIPNAME( 0x80, 0x80, "Initial Vitality" ) PORT_DIPLOCATION("SW(B):8")
+ PORT_DIPSETTING( 0x80, "3 Bars" )
+ PORT_DIPSETTING( 0x00, "4 Bars" )
+
+ PORT_START("DSWC")
+ PORT_DIPNAME( 0x01, 0x01, "Throttle Game Speed" ) PORT_DIPLOCATION("SW(C):1")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) // turning this off will break the game
+ PORT_DIPSETTING( 0x01, DEF_STR( On ) )
+ PORT_DIPUNUSED_DIPLOC( 0x02, 0x02, "SW(C):2" )
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW(C):3")
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x08, "Freeze" ) PORT_DIPLOCATION("SW(C):4")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
+ PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8")
+ PORT_DIPSETTING( 0x80, "Game" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Test ) )
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( mercs )
+ PORT_INCLUDE( cps1_3players )
+
+ PORT_MODIFY("IN0")
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("DSWA")
+ CPS1_COINAGE_2( "SW(A)" )
+ PORT_DIPUNUSED_DIPLOC( 0x08, 0x08, "SW(A):4" ) // These three switches are not documented in
+ PORT_DIPUNUSED_DIPLOC( 0x10, 0x10, "SW(A):5" ) // the manual
+ PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW(A):6" )
+ PORT_DIPNAME( 0x40, 0x40, "2 Coins to Start, 1 to Continue" ) PORT_DIPLOCATION("SW(A):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(A):8" ) // This switch is not documented in the manual
+
+ PORT_START("DSWB")
+ CPS1_DIFFICULTY_1( "SW(B)" )
+ PORT_DIPNAME( 0x08, 0x08, "Coin Slots" ) PORT_DIPLOCATION("SW(B):4")
+ PORT_DIPSETTING( 0x00, "1" )
+ PORT_DIPSETTING( 0x08, "3" ) // This setting can't be used in two-player mode
+ PORT_DIPNAME( 0x10, 0x10, "Play Mode" ) PORT_DIPLOCATION("SW(B):5")
+ PORT_DIPSETTING( 0x00, "2 Players" )
+ PORT_DIPSETTING( 0x10, "3 Players" )
+ PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW(B):6" ) // These three switches are not documented in
+ PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW(B):7" ) // the manual
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(B):8" )
+
+ PORT_START("DSWC")
+ PORT_DIPUNUSED_DIPLOC( 0x01, 0x01, "SW(C):1" ) // These three switches are not documented in
+ PORT_DIPUNUSED_DIPLOC( 0x02, 0x02, "SW(C):2" ) // the manual
+ PORT_DIPUNUSED_DIPLOC( 0x04, 0x04, "SW(C):3" )
+ PORT_DIPNAME( 0x08, 0x08, "Freeze" ) PORT_DIPLOCATION("SW(C):4")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
+ PORT_SERVICE_DIPLOC( 0x80, IP_ACTIVE_LOW, "SW(C):8" )
+INPUT_PORTS_END
+
+/* According to code at 0x001c4e ('mtwins') or ('chikij') , ALL bits 0 to 5 of DSWA
+ must be ON to have "2 Coins/1 Credit (1 to continue)" for both coin slots.
+ But according to routine starting at 0x06b27c ('mtwins') or 0x06b4fa ('chikij'),
+ bit 6 of DSWA is tested to have the same "feature" in the "test mode".
+
+ Bits 3 and 4 of DSWB affect the number of lives AND the level of damage when you get hit.
+ When bit 5 of DSWB is ON you ALWAYS have 1 life but more energy (0x38 instead of 0x20).
+ Useful addresses to know :
+ - 0xff147b.b : lives (player 1)
+ - 0xff153b.b : lives (player 2)
+ - 0xff14ab.w : energy (player 1)
+ - 0xff156b.w : energy (player 2)
+*/
+static INPUT_PORTS_START( mtwins )
+ PORT_INCLUDE( cps1_3b )
+
+ PORT_MODIFY("IN0")
+ PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW )
+
+ PORT_START("DSWA")
+ CPS1_COINAGE_1( "SW(A)" )
+ PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW(A):7" )
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(A):8" )
+
+ PORT_START("DSWB")
+ CPS1_DIFFICULTY_1( "SW(B)" )
+ PORT_DIPNAME( 0x38, 0x18, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW(B):4,5,6")
+// PORT_DIPSETTING( 0x30, "1" ) // 0x38 energy, smallest damage
+// PORT_DIPSETTING( 0x38, "1" ) // 0x38 energy, small damage
+// PORT_DIPSETTING( 0x28, "1" ) // 0x38 energy, big damage
+// PORT_DIPSETTING( 0x20, "1" ) // 0x38 energy, biggest damage
+ PORT_DIPSETTING( 0x10, "1" ) // 0x20 energy, smallest damage
+ PORT_DIPSETTING( 0x18, "2" ) // 0x20 energy, small damage
+ PORT_DIPSETTING( 0x08, "3" ) // 0x20 energy, big damage
+ PORT_DIPSETTING( 0x00, "4" ) // 0x20 energy, biggest damage
+ PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW(B):7" )
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(B):8" )
+
+ PORT_START("DSWC")
+ PORT_DIPUNUSED_DIPLOC( 0x01, 0x01, "SW(C):1" )
+ PORT_DIPUNUSED_DIPLOC( 0x02, 0x02, "SW(C):2" )
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW(C):3")
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x08, "Freeze" ) PORT_DIPLOCATION("SW(C):4")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
+ PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8")
+ PORT_DIPSETTING( 0x80, "Game" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Test ) )
+INPUT_PORTS_END
+
+/* I guess that bit 8 of DSWB was used for debug purpose :
+ - code at 0x001094 : move players during "attract mode"
+ - code at 0x019b62 ('msword' and 'mswordr1'), 0x019bde ('mswordu') or 0x019c26 ('mswordj') : unknown effect
+ - code at 0x01c322 ('msword' and 'mswordr1'), 0x01c39e ('mswordu') or 0x01c3e0 ('mswordj') : unknown effect
+ These features are not available because of the 'bra' instruction after the test of bit 7. */
+static INPUT_PORTS_START( msword )
+ PORT_INCLUDE( cps1_3b )
+
+ PORT_MODIFY("IN0")
+ PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW )
+
+ PORT_START("DSWA")
+ CPS1_COINAGE_1( "SW(A)" )
+ PORT_DIPNAME( 0x40, 0x40, "2 Coins to Start, 1 to Continue" ) PORT_DIPLOCATION("SW(A):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(A):8" )
+
+ PORT_START("DSWB")
+ PORT_DIPNAME( 0x07, 0x04, "Player's vitality consumption" ) PORT_DIPLOCATION("SW(B):1,2,3") // "Level 1"
+ PORT_DIPSETTING( 0x07, "1 (Easiest)" ) // "Easy 3" (-1 every 28 frames)
+ PORT_DIPSETTING( 0x06, "2" ) // "Easy 2" (-1 every 24 frames)
+ PORT_DIPSETTING( 0x05, "3" ) // "Easy 1" (-1 every 20 frames)
+ PORT_DIPSETTING( 0x04, "4 (Normal)" ) // DEF_STR( Normal ) (-1 every 18 frames)
+ PORT_DIPSETTING( 0x03, "5" ) // "Difficult 1" (-1 every 16 frames)
+ PORT_DIPSETTING( 0x02, "6" ) // "Difficult 2" (-1 every 14 frames)
+ PORT_DIPSETTING( 0x01, "7" ) // "Difficult 3" (-1 every 12 frames)
+ PORT_DIPSETTING( 0x00, "8 (Hardest)" ) // "Difficult 4" (-1 every 8 frames)
+ PORT_DIPNAME( 0x38, 0x38, "Enemy's vitality and attacking power" ) PORT_DIPLOCATION("SW(B):4,5,6") // "Level 2"
+ PORT_DIPSETTING( 0x20, "1 (Easiest)" ) // "Easy 3"
+ PORT_DIPSETTING( 0x28, "2" ) // "Easy 2"
+ PORT_DIPSETTING( 0x30, "3" ) // "Easy 1"
+ PORT_DIPSETTING( 0x38, "4 (Normal)" ) // DEF_STR( Normal )
+ PORT_DIPSETTING( 0x18, "5" ) // "Difficult 1"
+ PORT_DIPSETTING( 0x10, "6" ) // "Difficult 2"
+ PORT_DIPSETTING( 0x08, "7" ) // "Difficult 3"
+ PORT_DIPSETTING( 0x00, "8 (Hardest)" ) // "Difficult 4"
+ PORT_DIPNAME( 0x40, 0x00, "Stage Select" ) PORT_DIPLOCATION("SW(B):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(B):8" )
+
+ PORT_START("DSWC")
+ PORT_DIPNAME( 0x03, 0x03, "Vitality Packs" ) PORT_DIPLOCATION("SW(C):1,2")
+ PORT_DIPSETTING( 0x00, "1" ) // 0x0320
+ PORT_DIPSETTING( 0x03, "2" ) // 0x0640
+ PORT_DIPSETTING( 0x02, "3 (2 when continue)" ) // 0x0960 (0x0640 when continue)
+ PORT_DIPSETTING( 0x01, "4 (3 when continue)" ) // 0x0c80 (0x0960 when continue)
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW(C):3")
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x08, "Freeze" ) PORT_DIPLOCATION("SW(C):4")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
+ PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8")
+ PORT_DIPSETTING( 0x80, "Game" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Test ) )
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( cawing )
+ PORT_INCLUDE( cps1_3b )
+
+ PORT_MODIFY("IN0")
+ PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW )
+
+ PORT_START("DSWA")
+ CPS1_COINAGE_1( "SW(A)" )
+ PORT_DIPNAME( 0x40, 0x40, "2 Coins to Start, 1 to Continue" ) PORT_DIPLOCATION("SW(A):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) // Overrides all other coinage settings
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) ) // according to manual
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(A):8" ) // This switch is not documented
+
+ PORT_START("DSWB")
+ PORT_DIPNAME( 0x07, 0x04, "Difficulty Level (Enemy's Strength)" ) PORT_DIPLOCATION("SW(B):1,2,3")
+ PORT_DIPSETTING( 0x07, "1 (Easiest)" )
+ PORT_DIPSETTING( 0x06, "2" )
+ PORT_DIPSETTING( 0x05, "3" )
+ PORT_DIPSETTING( 0x04, "4 (Normal)" )
+ PORT_DIPSETTING( 0x03, "5" )
+ PORT_DIPSETTING( 0x02, "6" )
+ PORT_DIPSETTING( 0x01, "7" )
+ PORT_DIPSETTING( 0x00, "8 (Hardest)" )
+ PORT_DIPNAME( 0x18, 0x18, "Difficulty Level (Player's Strength)" ) PORT_DIPLOCATION("SW(B):4,5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Easy ) )
+ PORT_DIPSETTING( 0x18, DEF_STR( Normal ) )
+ PORT_DIPSETTING( 0x08, DEF_STR( Hard ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) )
+ PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW(B):6" ) // This switch is not documented
+ PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW(B):7" ) // This switch is not documented
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(B):8" ) // This switch is not documented
+
+ PORT_START("DSWC")
+ PORT_DIPUNUSED_DIPLOC( 0x01, 0x01, "SW(C):1" ) // This switch is not documented
+ PORT_DIPUNUSED_DIPLOC( 0x02, 0x02, "SW(C):2" ) // This switch is not documented
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW(C):3")
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x08, "Freeze" ) PORT_DIPLOCATION("SW(C):4")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
+ PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8")
+ PORT_DIPSETTING( 0x80, "Game" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Test ) )
+INPUT_PORTS_END
+
+/* "Debug" features to be implemented */
+static INPUT_PORTS_START( nemo )
+ PORT_INCLUDE( cps1_3b )
+
+ PORT_MODIFY("IN0")
+ PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW )
+
+ PORT_START("DSWA")
+ CPS1_COINAGE_1( "SW(A)" )
+ PORT_DIPNAME( 0x40, 0x40, "2 Coins to Start, 1 to Continue" ) PORT_DIPLOCATION("SW(A):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(A):8" )
+
+ PORT_START("DSWB")
+ CPS1_DIFFICULTY_1( "SW(B)" )
+ PORT_DIPNAME( 0x18, 0x18, "Life Bar" ) PORT_DIPLOCATION("SW(B):4,5")
+ PORT_DIPSETTING( 0x00, "Minimun" )
+ PORT_DIPSETTING( 0x18, DEF_STR( Medium ) )
+// PORT_DIPSETTING( 0x10, DEF_STR( Medium ) )
+ PORT_DIPSETTING( 0x08, "Maximum" )
+ PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW(B):6" )
+ PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW(B):7" )
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(B):8" )
+
+ PORT_START("DSWC")
+ PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW(C):1,2")
+ PORT_DIPSETTING( 0x02, "1" )
+ PORT_DIPSETTING( 0x03, "2" )
+ PORT_DIPSETTING( 0x01, "3" )
+ PORT_DIPSETTING( 0x00, "4" )
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW(C):3")
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x08, "Freeze" ) PORT_DIPLOCATION("SW(C):4")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
+ PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8")
+ PORT_DIPSETTING( 0x80, "Game" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Test ) ) // To enable the "debug" features
+INPUT_PORTS_END
+
+INPUT_PORTS_START( sf2 )
+ PORT_INCLUDE( cps1_6b )
+
+ PORT_MODIFY("IN0")
+ PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW )
+
+ PORT_START("DSWA")
+ CPS1_COINAGE_1( "SW(A)" )
+ PORT_DIPNAME( 0x40, 0x40, "2 Coins to Start, 1 to Continue" ) PORT_DIPLOCATION("SW(A):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(A):8" )
+
+ PORT_START("DSWB")
+ CPS1_DIFFICULTY_1( "SW(B)" )
+ PORT_DIPUNUSED_DIPLOC( 0x08, 0x08, "SW(B):4" )
+ PORT_DIPUNUSED_DIPLOC( 0x10, 0x10, "SW(B):5" )
+ PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW(B):6" )
+ PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW(B):7" )
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(B):8" )
+
+ PORT_START("DSWC")
+ PORT_DIPUNUSED_DIPLOC( 0x01, 0x01, "SW(C):1" )
+ PORT_DIPUNUSED_DIPLOC( 0x02, 0x02, "SW(C):2" )
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW(C):3")
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x08, "Freeze" ) PORT_DIPLOCATION("SW(C):4")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
+ PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8")
+ PORT_DIPSETTING( 0x80, "Game" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Test ) )
+
+INPUT_PORTS_END
+
+/* Needs further checking */
+static INPUT_PORTS_START( sf2j )
+ PORT_INCLUDE( sf2 )
+
+ PORT_MODIFY("DSWB")
+ PORT_DIPNAME( 0x08, 0x00, "2 Players Game" ) PORT_DIPLOCATION("SW(B):4")
+ PORT_DIPSETTING( 0x08, "1 Credit/No Continue" )
+ PORT_DIPSETTING( 0x00, "2 Credits/Winner Continue" ) //Winner stays, loser pays, in other words.
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( sf2hack )
+ PORT_INCLUDE( sf2 )
+
+ PORT_MODIFY("IN2") /* Extra buttons */
+ PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("P1 Short Kick") PORT_PLAYER(1)
+ PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("P1 Forward Kick") PORT_PLAYER(1)
+ PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("P1 Roundhouse Kick") PORT_PLAYER(1)
+ PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("P2 Short Kick") PORT_PLAYER(2)
+ PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("P2 Forward Kick") PORT_PLAYER(2)
+ PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("P2 Roundhouse Kick") PORT_PLAYER(2)
+ PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( sf2m2 )
+ PORT_INCLUDE( sf2hack )
+
+ PORT_MODIFY("DSWB")
+ PORT_DIPNAME( 0x10, 0x00, "It needs to be High" ) PORT_DIPLOCATION("SW(B):5")
+ PORT_DIPSETTING( 0x10, DEF_STR ( Low ) )
+ PORT_DIPSETTING( 0x00, DEF_STR ( High ) )
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( sf2m4 )
+ PORT_INCLUDE( sf2hack )
+
+ PORT_MODIFY("DSWB")
+ PORT_DIPNAME( 0x08, 0x00, "2 Players Game" ) PORT_DIPLOCATION("SW(B):4")
+ PORT_DIPSETTING( 0x08, "1 Credit/No Continue" )
+ PORT_DIPSETTING( 0x00, "2 Credits/Winner Continue" ) //Winner stays, loser pays, in other words.
+INPUT_PORTS_END
+
+/* SWB.4, SWB.5 and SWB.6 need to be enabled simultaneously for turbo mode */
+static INPUT_PORTS_START( sf2amf )
+ PORT_INCLUDE( sf2hack )
+
+ PORT_MODIFY("DSWB")
+ PORT_DIPNAME( 0x08, 0x08, "Turbo Mode Switch 1 of 3" ) PORT_DIPLOCATION("SW(B):4")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, "Turbo Mode Switch 2 of 3" ) PORT_DIPLOCATION("SW(B):5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x20, "Turbo Mode Switch 3 of 3" ) PORT_DIPLOCATION("SW(B):6")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( 3wonders )
+ PORT_INCLUDE( cps1_3b )
+
+ PORT_MODIFY("IN0")
+ PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW )
+
+ PORT_START("DSWA")
+ CPS1_COINAGE_1( "SW(A)" )
+ PORT_DIPNAME( 0x40, 0x40, "2 Coins to Start, 1 to Continue" ) PORT_CONDITION("DSWA", 0x3f,NOTEQUALS,0x00) PORT_DIPLOCATION("SW(A):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x40, DEF_STR( Free_Play ) ) PORT_CONDITION("DSWA", 0x3f, EQUALS, 0x00) PORT_DIPLOCATION("SW(A):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ /* Free Play: ALL bits 0 to 7 must be ON ; 4C_1C, 4C_1C, 2 Coins to Start, 1 to Continue ON */
+ PORT_DIPNAME( 0x80, 0x80, "Freeze" ) PORT_DIPLOCATION("SW(A):8")
+ PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+
+ PORT_START("DSWB")
+ PORT_DIPNAME( 0x03, 0x02, "Lives (Midnight Wanderers)" ) PORT_DIPLOCATION("SW(B):1,2")
+ PORT_DIPSETTING( 0x03, "1" )
+ PORT_DIPSETTING( 0x02, "2" )
+ PORT_DIPSETTING( 0x01, "3" )
+ PORT_DIPSETTING( 0x00, "5" )
+ PORT_DIPNAME( 0x0c, 0x08, "Difficulty (Midnight Wanderers)" ) PORT_DIPLOCATION("SW(B):3,4")
+ PORT_DIPSETTING( 0x0c, DEF_STR( Easy ) )
+ PORT_DIPSETTING( 0x08, DEF_STR( Normal ) )
+ PORT_DIPSETTING( 0x04, DEF_STR( Hard ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) )
+ PORT_DIPNAME( 0x30, 0x10, "Lives (Chariot)" ) PORT_DIPLOCATION("SW(B):5,6")
+ PORT_DIPSETTING( 0x30, "1" )
+ PORT_DIPSETTING( 0x20, "2" )
+ PORT_DIPSETTING( 0x10, "3" )
+ PORT_DIPSETTING( 0x00, "5" )
+ PORT_DIPNAME( 0xc0, 0x80, "Difficulty (Chariot)" ) PORT_DIPLOCATION("SW(B):7,8")
+ PORT_DIPSETTING( 0xc0, DEF_STR( Easy ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( Normal ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( Hard ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) )
+
+ PORT_START("DSWC")
+ PORT_DIPNAME( 0x03, 0x01, "Lives (Don't Pull)" ) PORT_DIPLOCATION("SW(C):1,2")
+ PORT_DIPSETTING( 0x03, "1" )
+ PORT_DIPSETTING( 0x02, "2" )
+ PORT_DIPSETTING( 0x01, "3" )
+ PORT_DIPSETTING( 0x00, "5" )
+ PORT_DIPNAME( 0x0c, 0x08, "Difficulty (Don't Pull)" ) PORT_DIPLOCATION("SW(C):3,4")
+ PORT_DIPSETTING( 0x0c, DEF_STR( Easy ) )
+ PORT_DIPSETTING( 0x08, DEF_STR( Normal ) )
+ PORT_DIPSETTING( 0x04, DEF_STR( Hard ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
+ PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8")
+ PORT_DIPSETTING( 0x80, "Game" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Test ) )
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( kod )
+ PORT_INCLUDE( cps1_3players )
+
+ PORT_MODIFY("IN0")
+ PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW )
+
+ PORT_START("DSWA")
+ CPS1_COINAGE_2( "SW(A)" )
+ PORT_DIPNAME( 0x08, 0x08, "Coin Slots" ) PORT_DIPLOCATION("SW(A):4")
+ PORT_DIPSETTING( 0x00, "1" )
+ PORT_DIPSETTING( 0x08, "3" )
+ PORT_DIPNAME( 0x10, 0x10, "Play Mode" ) PORT_DIPLOCATION("SW(A):5")
+ PORT_DIPSETTING( 0x00, "2 Players" )
+ PORT_DIPSETTING( 0x10, "3 Players" )
+ PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW(A):6" )
+ PORT_DIPNAME( 0x40, 0x40, "2 Coins to Start, 1 to Continue" ) PORT_DIPLOCATION("SW(A):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(A):8" )
+
+ PORT_START("DSWB")
+ CPS1_DIFFICULTY_1( "SW(B)" )
+ PORT_DIPNAME( 0x38, 0x38, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW(B):4,5,6")
+ PORT_DIPSETTING( 0x30, "1" )
+ PORT_DIPSETTING( 0x38, "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, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW(B):7,8")
+ PORT_DIPSETTING( 0x80, "80k and every 400k" )
+ PORT_DIPSETTING( 0x40, "160k and every 450k" )
+ PORT_DIPSETTING( 0xc0, "200k and every 450k" )
+ PORT_DIPSETTING( 0x00, DEF_STR( None ) )
+
+ PORT_START("DSWC")
+ PORT_DIPUNUSED_DIPLOC( 0x01, 0x01, "SW(C):1" )
+ PORT_DIPUNUSED_DIPLOC( 0x02, 0x02, "SW(C):2" )
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW(C):3")
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x08, "Freeze" ) PORT_DIPLOCATION("SW(C):4")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
+ PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8")
+ PORT_DIPSETTING( 0x80, "Game" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Test ) )
+INPUT_PORTS_END
+
+/* Needs further checking
+ Same as kod but different "Bonus_life" values */
+static INPUT_PORTS_START( kodr1 )
+ PORT_INCLUDE( kod )
+
+ PORT_MODIFY("DSWB")
+ PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW(B):7,8")
+ PORT_DIPSETTING( 0x80, "80k and every 400k" )
+ PORT_DIPSETTING( 0xc0, "100k and every 450k" )
+ PORT_DIPSETTING( 0x40, "160k and every 450k" )
+ PORT_DIPSETTING( 0x00, DEF_STR( None ) )
+INPUT_PORTS_END
+
+
+INPUT_PORTS_START( captcomm ) // HBMAME
+ PORT_INCLUDE( cps1_4players )
+
+ PORT_MODIFY("IN0")
+ PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW )
+
+ PORT_START("DSWA")
+ CPS1_COINAGE_2( "SW(A)" )
+ PORT_DIPUNUSED_DIPLOC( 0x08, 0x08, "SW(A):4" ) // The manual says to leave these three
+ PORT_DIPUNUSED_DIPLOC( 0x10, 0x10, "SW(A):5" ) // switches off. Does turning them on cause
+ PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW(A):6" ) // any "undesirable" behaviour?
+ PORT_DIPNAME( 0x40, 0x40, "2 Coins to Start, 1 to Continue" ) PORT_DIPLOCATION("SW(A):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(A):8" ) // Unused according to manual
+
+ PORT_START("DSWB")
+ PORT_DIPNAME( 0x07, 0x04, "Difficulty 1" ) PORT_DIPLOCATION("SW(B):1,2,3")
+ PORT_DIPSETTING( 0x07, "1 (Easiest)" )
+ PORT_DIPSETTING( 0x06, "2" )
+ PORT_DIPSETTING( 0x05, "3" )
+ PORT_DIPSETTING( 0x04, "4 (Normal)" )
+ PORT_DIPSETTING( 0x03, "5" )
+ PORT_DIPSETTING( 0x02, "6" )
+ PORT_DIPSETTING( 0x01, "7" )
+ PORT_DIPSETTING( 0x00, "8 (Hardest)" )
+ PORT_DIPNAME( 0x18, 0x10, "Difficulty 2" ) PORT_DIPLOCATION("SW(B):4,5")
+ PORT_DIPSETTING( 0x18, DEF_STR( Easy ) )
+ PORT_DIPSETTING( 0x10, DEF_STR( Normal ) )
+ PORT_DIPSETTING( 0x08, DEF_STR( Hard ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) )
+ PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW(B):6" ) // Manual says to leave this switch off.
+ PORT_DIPNAME( 0xc0, 0xc0, "Play Mode" ) PORT_DIPLOCATION("SW(B):7,8")
+ PORT_DIPSETTING( 0x40, "1 Players" ) // Actual setting is 4 players
+ PORT_DIPSETTING( 0xc0, "2 Players" )
+ PORT_DIPSETTING( 0x80, "3 Players" )
+ PORT_DIPSETTING( 0x00, "4 Players" )
+
+ PORT_START("DSWC")
+ PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW(C):1,2")
+ PORT_DIPSETTING( 0x00, "1" )
+ PORT_DIPSETTING( 0x03, "2" )
+ PORT_DIPSETTING( 0x02, "3" )
+ PORT_DIPSETTING( 0x01, "4" )
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW(C):3")
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x08, "Freeze" ) PORT_DIPLOCATION("SW(C):4")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
+ PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8")
+ PORT_DIPSETTING( 0x80, "Game" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Test ) )
+INPUT_PORTS_END
+
+INPUT_PORTS_START( knights )
+ PORT_INCLUDE( cps1_3players )
+
+ PORT_MODIFY("IN0")
+ PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW )
+
+ PORT_START("DSWA")
+ CPS1_COINAGE_2( "SW(A)" )
+ PORT_DIPUNUSED_DIPLOC( 0x08, 0x08, "SW(A):4" )
+ PORT_DIPUNUSED_DIPLOC( 0x10, 0x10, "SW(A):5" )
+ PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW(A):6" )
+ PORT_DIPNAME( 0x40, 0x40, "2 Coins to Start, 1 to Continue" ) PORT_DIPLOCATION("SW(A):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(A):8" )
+
+ PORT_START("DSWB")
+ PORT_DIPNAME( 0x07, 0x04, "Enemy's attack frequency" ) PORT_DIPLOCATION("SW(B):1,2,3")
+ PORT_DIPSETTING( 0x07, "1 (Easiest)" )
+ PORT_DIPSETTING( 0x06, "2" )
+ PORT_DIPSETTING( 0x05, "3" )
+ PORT_DIPSETTING( 0x04, "4 (Normal)" )
+ PORT_DIPSETTING( 0x03, "5" )
+ PORT_DIPSETTING( 0x02, "6" )
+ PORT_DIPSETTING( 0x01, "7" )
+ PORT_DIPSETTING( 0x00, "8 (Hardest)" )
+ PORT_DIPNAME( 0x38, 0x38, "Enemy's attack power" ) PORT_DIPLOCATION("SW(B):4,5,6")
+ PORT_DIPSETTING( 0x00, "1 (Easiest)" )
+ PORT_DIPSETTING( 0x08, "2" )
+ PORT_DIPSETTING( 0x10, "3" )
+ PORT_DIPSETTING( 0x38, "4 (Normal)" )
+ PORT_DIPSETTING( 0x30, "5" )
+ PORT_DIPSETTING( 0x28, "6" )
+ PORT_DIPSETTING( 0x20, "7" )
+ PORT_DIPSETTING( 0x18, "8 (Hardest)" )
+ PORT_DIPNAME( 0x40, 0x40, "Coin Slots" ) PORT_DIPLOCATION("SW(B):7")
+ PORT_DIPSETTING( 0x00, "1" )
+ PORT_DIPSETTING( 0x40, "3" )
+ PORT_DIPNAME( 0x80, 0x80, "Play Mode" ) PORT_DIPLOCATION("SW(B):8")
+ PORT_DIPSETTING( 0x00, "2 Players" )
+ PORT_DIPSETTING( 0x80, "3 Players" )
+
+ PORT_START("DSWC")
+ PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW(C):1,2")
+ PORT_DIPSETTING( 0x00, "1" )
+ PORT_DIPSETTING( 0x03, "2" )
+ PORT_DIPSETTING( 0x02, "3" )
+ PORT_DIPSETTING( 0x01, "4" )
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW(C):3")
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x08, "Freeze" ) PORT_DIPLOCATION("SW(C):4")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
+ PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8")
+ PORT_DIPSETTING( 0x80, "Game" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Test ) )
+INPUT_PORTS_END
+
+INPUT_PORTS_START( varth )
+ PORT_INCLUDE( cps1_3b )
+
+ PORT_MODIFY("IN0")
+ PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW )
+
+ PORT_START("DSWA")
+ CPS1_COINAGE_1( "SW(A)" )
+ PORT_DIPNAME( 0x40, 0x40, "2 Coins to Start, 1 to Continue" ) PORT_DIPLOCATION("SW(A):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(A):8" )
+
+ PORT_START("DSWB")
+ CPS1_DIFFICULTY_1( "SW(B)" )
+ PORT_DIPNAME( 0x18, 0x10, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW(B):4,5")
+ PORT_DIPSETTING( 0x18, "600k and every 1.400k" )
+ PORT_DIPSETTING( 0x10, "600k 2.000k and 4500k" )
+ PORT_DIPSETTING( 0x08, "1.200k 3.500k" )
+ PORT_DIPSETTING( 0x00, "2000k only" )
+ PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW(B):6" )
+ PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW(B):7" )
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(B):8" )
+
+ PORT_START("DSWC")
+ PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW(C):1,2")
+ PORT_DIPSETTING( 0x02, "1" )
+ PORT_DIPSETTING( 0x01, "2" )
+ PORT_DIPSETTING( 0x03, "3" )
+ PORT_DIPSETTING( 0x00, "4" )
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW(C):3")
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x08, "Freeze" ) PORT_DIPLOCATION("SW(C):4")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
+ PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8")
+ PORT_DIPSETTING( 0x80, "Game" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Test ) )
+INPUT_PORTS_END
+
+/* Needs further checking */
+static INPUT_PORTS_START( cworld2j )
+ PORT_INCLUDE( cps1_quiz )
+
+ PORT_MODIFY("IN0")
+ PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW )
+
+ PORT_START("DSWA")
+ CPS1_COINAGE_2( "SW(A)" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SW(A):4" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW(A):5" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SW(A):6" )
+ PORT_DIPNAME( 0x40, 0x40, "2 Coins to Start, 1 to Continue" ) PORT_DIPLOCATION("SW(A):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x80, 0x80, "Extended Test Mode" ) PORT_DIPLOCATION("SW(A):8")
+ PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+
+ PORT_START("DSWB")
+ PORT_DIPNAME( 0x07, 0x06, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW(B):1,2,3")
+ PORT_DIPSETTING( 0x06, "0" )
+ PORT_DIPSETTING( 0x05, "1" )
+ PORT_DIPSETTING( 0x04, "2" )
+ PORT_DIPSETTING( 0x03, "3" )
+ PORT_DIPSETTING( 0x02, "4" )
+ PORT_DIPNAME( 0x18, 0x18, "Extend" ) PORT_DIPLOCATION("SW(B):4,5")
+ PORT_DIPSETTING( 0x18, "N" )
+ PORT_DIPSETTING( 0x10, "E" )
+ PORT_DIPSETTING( 0x00, "D" )
+ PORT_DIPNAME( 0xe0, 0xe0, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW(B):6,7,8")
+ PORT_DIPSETTING( 0x00, "1" )
+ PORT_DIPSETTING( 0x80, "2" )
+ PORT_DIPSETTING( 0xe0, "3" )
+ PORT_DIPSETTING( 0xa0, "4" )
+ PORT_DIPSETTING( 0xc0, "5" )
+
+ PORT_START("DSWC")
+ PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "SW(C):1" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x02, "SW(C):2" )
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW(C):3")
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x08, "Freeze" ) PORT_DIPLOCATION("SW(C):4")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x40, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7")
+ PORT_DIPSETTING( 0x00, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( Yes ) )
+ PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8")
+ PORT_DIPSETTING( 0x80, "Game" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Test ) )
+
+ PORT_START("IN2") /* check code at 0x000614, 0x0008ac and 0x000e36 */
+ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
+INPUT_PORTS_END
+
+/* Needs further checking */
+static INPUT_PORTS_START( wof )
+ PORT_INCLUDE( cps1_3players )
+
+ PORT_MODIFY("IN0")
+ PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW )
+
+ PORT_START("DSWA") /* (not used, EEPROM) */
+ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("DSWB") /* (not used, EEPROM) */
+ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("DSWC")
+ PORT_DIPNAME( 0x08, 0x08, "Freeze" )
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_BIT( 0xf7, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("IN3") /* Player 4 - not used */
+ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
+
+ PORT_START( "EEPROMIN" )
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, do_read)
+
+ PORT_START( "EEPROMOUT" )
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, di_write)
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, clk_write)
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, cs_write)
+INPUT_PORTS_END
+
+INPUT_PORTS_START( dino )
+ PORT_INCLUDE( cps1_3players )
+
+ PORT_MODIFY("IN0")
+ PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW )
+
+ PORT_START("DSWA") /* (not used, EEPROM) */
+ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("DSWB") /* (not used, EEPROM) */
+ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("DSWC")
+ PORT_DIPNAME( 0x08, 0x08, "Freeze" )
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_BIT( 0xf7, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("IN3") /* Player 4 - not used */
+ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
+
+ PORT_START( "EEPROMIN" )
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, do_read)
+
+ PORT_START( "EEPROMOUT" )
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, di_write)
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, clk_write)
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, cs_write)
+INPUT_PORTS_END
+
+
+static INPUT_PORTS_START( dinoh )
+ PORT_INCLUDE( dino )
+
+ PORT_MODIFY("DSWA")
+ CPS1_COINAGE_2( "SW(A)" )
+ PORT_DIPNAME( 0x08, 0x08, "Coin Slots" ) PORT_DIPLOCATION("SW(B):4")
+ PORT_DIPSETTING( 0x00, "1" )
+ PORT_DIPSETTING( 0x08, "3" ) // This setting can't be used in two-player mode
+ PORT_DIPNAME( 0x10, 0x10, "Play Mode" ) PORT_DIPLOCATION("SW(B):5")
+ PORT_DIPSETTING( 0x00, "2 Players" )
+ PORT_DIPSETTING( 0x10, "3 Players" )
+ PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW(A):6" ) // This switch is not documented in the manual
+ PORT_DIPNAME( 0x40, 0x40, "2 Coins to Start, 1 to Continue" ) PORT_DIPLOCATION("SW(A):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(A):8" ) // This switch is not documented in the manual
+
+ PORT_MODIFY("DSWB")
+ PORT_DIPNAME( 0x07, 0x04, "Difficulty Level 1" ) PORT_DIPLOCATION("SW(B):1,2,3")
+ PORT_DIPSETTING( 0x07, DEF_STR( Easiest ) ) // "01"
+ PORT_DIPSETTING( 0x06, DEF_STR( Easier ) ) // "02"
+ PORT_DIPSETTING( 0x05, DEF_STR( Easy ) ) // "03"
+ PORT_DIPSETTING( 0x04, DEF_STR( Normal ) ) // "04"
+ PORT_DIPSETTING( 0x03, DEF_STR( Medium ) ) // "05"
+ PORT_DIPSETTING( 0x02, DEF_STR( Hard ) ) // "06"
+ PORT_DIPSETTING( 0x01, DEF_STR( Harder ) ) // "07"
+ PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) // "08"
+ PORT_DIPNAME( 0x18, 0x10, "Difficulty Level 2" ) PORT_DIPLOCATION("SW(B):4,5")
+ PORT_DIPSETTING( 0x18, DEF_STR( Easy ) ) // "01"
+ PORT_DIPSETTING( 0x10, DEF_STR( Normal ) ) // "02"
+ PORT_DIPSETTING( 0x08, DEF_STR( Hard ) ) // "03"
+ PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) // "04"
+ PORT_DIPNAME( 0x60, 0x40, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW(B):6,7")
+ PORT_DIPSETTING( 0x60, "300k and 700k" )
+ PORT_DIPSETTING( 0x40, "500k and 1000k" )
+ PORT_DIPSETTING( 0x20, "1000k" )
+ PORT_DIPSETTING( 0x00, DEF_STR( None ) )
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(B):8" )
+
+ PORT_MODIFY("DSWC")
+ PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW(C):1,2")
+ PORT_DIPSETTING( 0x00, "4" )
+ PORT_DIPSETTING( 0x01, "3" )
+ PORT_DIPSETTING( 0x02, "2" )
+ PORT_DIPSETTING( 0x03, "1" )
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW(C):3")
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x08, "Freeze" ) PORT_DIPLOCATION("SW(C):4")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
+ PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8")
+ PORT_DIPSETTING( 0x80, "Game" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Test ) )
+
+ PORT_MODIFY("IN1")
+ PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) 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_MODIFY("IN2") /* Player 3 */
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3)
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3)
+// PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3)
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN3 )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 )
+INPUT_PORTS_END
+
+INPUT_PORTS_START( punisher )
+ PORT_INCLUDE( cps1_2b )
+
+ PORT_MODIFY("IN0")
+ PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW )
+
+ PORT_START("DSWA") /* (not used, EEPROM) */
+ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("DSWB") /* (not used, EEPROM) */
+ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("DSWC")
+ PORT_DIPNAME( 0x08, 0x08, "Freeze" )
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_BIT( 0xf7, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("IN2") /* Player 3 - not used */
+ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
+
+ PORT_START("IN3") /* Player 4 - not used */
+ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
+
+ PORT_START( "EEPROMIN" )
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, do_read)
+
+ PORT_START( "EEPROMOUT" )
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, di_write)
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, clk_write)
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, cs_write)
+INPUT_PORTS_END
+
+
+static INPUT_PORTS_START( punisherbz )
+ PORT_INCLUDE( punisher )
+
+ PORT_MODIFY("DSWA")
+ CPS1_COINAGE_2( "SW(A)" )
+ PORT_DIPNAME( 0x08, 0x08, "2 Coins to Start, 1 to Continue" ) PORT_DIPLOCATION("SW(A):4")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x30, 0x20, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW(A):5,6")
+ PORT_DIPSETTING( 0x30, "1" )
+ PORT_DIPSETTING( 0x20, "2" )
+ PORT_DIPSETTING( 0x10, "3" )
+ PORT_DIPSETTING( 0x00, "4" )
+ PORT_DIPNAME( 0x40, 0x40, "Sound" ) PORT_DIPLOCATION("SW(A):7")
+ PORT_DIPSETTING( 0x40, "Q Sound" )
+ PORT_DIPSETTING( 0x00, "Monaural" )
+ PORT_DIPNAME( 0x80, 0x80, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(A):8")
+ PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+
+ PORT_MODIFY("DSWB")
+ PORT_DIPNAME( 0x07, 0x04, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW(B):1,2,3")
+ PORT_DIPSETTING( 0x07, "Extra Easy" )
+ PORT_DIPSETTING( 0x06, DEF_STR( Very_Easy) )
+ PORT_DIPSETTING( 0x05, DEF_STR( Easy) )
+ PORT_DIPSETTING( 0x04, DEF_STR( Normal) )
+ PORT_DIPSETTING( 0x03, DEF_STR( Hard) )
+ PORT_DIPSETTING( 0x02, DEF_STR( Very_Hard) )
+ PORT_DIPSETTING( 0x01, "Extra Hard" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Hardest) )
+ PORT_DIPNAME( 0x18, 0x10, "Extend" ) PORT_DIPLOCATION("SW(B):4,5")
+ PORT_DIPSETTING( 0x18, "800000" )
+ PORT_DIPSETTING( 0x10, "1800000" )
+ PORT_DIPSETTING( 0x08, "2800000" )
+ PORT_DIPSETTING( 0x00, "No Extend" )
+ PORT_DIPNAME( 0x20, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(B):6")
+ PORT_DIPSETTING( 0x20, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
+ PORT_DIPNAME( 0x40, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(B):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPUNKNOWN_DIPLOC( 0x80, 0x80, "SW(B):8" )
+
+ PORT_MODIFY("DSWC")
+ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_MODIFY("IN1")
+ PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) 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 )
+INPUT_PORTS_END
+
+/* Needs further checking */
+INPUT_PORTS_START( slammast )
+ PORT_INCLUDE( cps1_4players )
+
+ PORT_MODIFY("IN0")
+ PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW )
+
+ PORT_MODIFY("IN1")
+ PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3)
+ PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
+ PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(4)
+
+ PORT_START("DSWA") /* (not used, EEPROM) */
+ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("DSWB") /* (not used, EEPROM) */
+ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("DSWC")
+ PORT_DIPNAME( 0x08, 0x08, "Freeze" )
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_BIT( 0xf7, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START( "EEPROMIN" )
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, do_read)
+
+ PORT_START( "EEPROMOUT" )
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, di_write)
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, clk_write)
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, cs_write)
+INPUT_PORTS_END
+
+/* Needs further checking */
+static INPUT_PORTS_START( pnickj )
+ PORT_INCLUDE( cps1_3b )
+
+ PORT_MODIFY("IN0")
+ PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW )
+
+ PORT_START("DSWA")
+ CPS1_COINAGE_2( "SW(A)" )
+ PORT_DIPNAME( 0x08, 0x08, "Coin Slots" ) PORT_DIPLOCATION("SW(A):4")
+ PORT_DIPSETTING( 0x08, "1" )
+ PORT_DIPSETTING( 0x00, "2" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW(A):5" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SW(A):6" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x40, 0x40, "SW(A):7" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x80, 0x80, "SW(A):8" )
+
+ PORT_START("DSWB")
+ CPS1_DIFFICULTY_1( "SW(B)" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SW(B):4" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW(B):5" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SW(B):6" )
+ PORT_DIPNAME( 0xc0, 0xc0, "Vs Play Mode" ) PORT_DIPLOCATION("SW(B):7,8")
+ PORT_DIPSETTING( 0xc0, "1 Game Match" )
+ PORT_DIPSETTING( 0x80, "3 Games Match" )
+ PORT_DIPSETTING( 0x40, "5 Games Match" )
+ PORT_DIPSETTING( 0x00, "7 Games Match" )
+
+ PORT_START("DSWC")
+ PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "SW(C):1" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x02, "SW(C):2" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x04, "SW(C):3" )
+ PORT_DIPNAME( 0x08, 0x08, "Freeze" ) PORT_DIPLOCATION("SW(C):4")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPUNKNOWN_DIPLOC( 0x40, 0x40, "SW(C):7" )
+ PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8")
+ PORT_DIPSETTING( 0x80, "Game" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Test ) )
+INPUT_PORTS_END
+
+/* Needs further checking */
+static INPUT_PORTS_START( qad )
+ PORT_INCLUDE( cps1_quiz )
+
+ PORT_MODIFY("IN0")
+ PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW )
+
+ PORT_START("DSWA")
+ CPS1_COINAGE_2( "SW(A)" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SW(A):4" ) // Manual says these are for coin 2, but they
+ PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW(A):5" ) // coin to setting, but they clearly don't do
+ PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SW(A):6" ) // that.
+ PORT_DIPNAME( 0x40, 0x40, "2 Coins to Start, 1 to Continue" ) PORT_DIPLOCATION("SW(A):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(A):8" )
+
+ PORT_START("DSWB")
+ PORT_DIPNAME( 0x07, 0x04, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW(B):1,2,3")
+// PORT_DIPSETTING( 0x07, DEF_STR( Easiest ) ) // Controls overall difficulty
+ PORT_DIPSETTING( 0x06, DEF_STR( Easiest ) ) // Manual documents duplicate settings
+ PORT_DIPSETTING( 0x05, DEF_STR( Easy ) )
+ PORT_DIPSETTING( 0x04, DEF_STR( Normal ) )
+ PORT_DIPSETTING( 0x03, DEF_STR( Hard ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( Hardest ) )
+// PORT_DIPSETTING( 0x01, DEF_STR( Hardest ) )
+// PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) )
+ PORT_DIPNAME( 0x18, 0x10, "Wisdom (questions to win game)" ) PORT_DIPLOCATION("SW(B):4,5")
+ PORT_DIPSETTING( 0x18, DEF_STR( Easy ) ) // Controls number of needed questions to finish
+ PORT_DIPSETTING( 0x10, DEF_STR( Normal ) )
+ PORT_DIPSETTING( 0x08, DEF_STR( Hard ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) )
+ PORT_DIPNAME( 0xe0, 0xe0, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW(B):6,7,8")
+ PORT_DIPSETTING( 0x60, "1" )
+ PORT_DIPSETTING( 0x80, "2" )
+ PORT_DIPSETTING( 0xa0, "3" )
+ PORT_DIPSETTING( 0xc0, "4" )
+ PORT_DIPSETTING( 0xe0, "5" )
+// PORT_DIPSETTING( 0x40, "1" ) // These three settings are not documented
+// PORT_DIPSETTING( 0x20, "1" )
+// PORT_DIPSETTING( 0x00, "1" )
+
+ PORT_START("DSWC")
+ PORT_DIPUNUSED_DIPLOC( 0x01, 0x01, "SW(C):1" )
+ PORT_DIPUNUSED_DIPLOC( 0x02, 0x02, "SW(C):2" )
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW(C):3")
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x08, "Freeze" ) PORT_DIPLOCATION("SW(C):4")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x20, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x20, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x40, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7")
+ PORT_DIPSETTING( 0x00, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( Yes ) )
+ PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8")
+ PORT_DIPSETTING( 0x80, "Game" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Test ) )
+
+ PORT_START("IN2") /* check code at 0x01d2d2 */
+ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
+INPUT_PORTS_END
+
+/* Needs further checking */
+static INPUT_PORTS_START( qadjr )
+ PORT_INCLUDE( qad )
+
+ PORT_MODIFY("DSWB")
+ PORT_DIPNAME( 0x07, 0x07, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW(B):1,2,3")
+ PORT_DIPSETTING( 0x07, "0" )
+ PORT_DIPSETTING( 0x06, "1" )
+ PORT_DIPSETTING( 0x05, "2" )
+ PORT_DIPSETTING( 0x04, "3" )
+ PORT_DIPSETTING( 0x03, "4" )
+// PORT_DIPSETTING( 0x02, "4" )
+// PORT_DIPSETTING( 0x01, "4" )
+// PORT_DIPSETTING( 0x00, "4" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SW(B):4" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW(B):5" )
+ PORT_DIPNAME( 0xe0, 0xe0, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW(B):6,7,8")
+ PORT_DIPSETTING( 0xa0, "1" )
+ PORT_DIPSETTING( 0xc0, "2" )
+ PORT_DIPSETTING( 0xe0, "3" )
+// PORT_DIPSETTING( 0x00, "1" )
+// PORT_DIPSETTING( 0x20, "1" )
+// PORT_DIPSETTING( 0x80, "1" )
+// PORT_DIPSETTING( 0x40, "2" )
+// PORT_DIPSETTING( 0x60, "3" )
+
+ PORT_MODIFY("IN2") /* check code at 0x000c48 */
+ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("IN3") /* check code at 0x000c3e */
+ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
+INPUT_PORTS_END
+
+/* Needs further checking */
+static INPUT_PORTS_START( qtono2j )
+ PORT_INCLUDE( cps1_quiz )
+
+ PORT_MODIFY("IN0")
+ PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW )
+
+ PORT_START("DSWA")
+ CPS1_COINAGE_2( "SW(A)" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SW(A):4" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW(A):5" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SW(A):6" )
+ PORT_DIPNAME( 0x40, 0x40, "2 Coins to Start, 1 to Continue" ) PORT_DIPLOCATION("SW(A):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPUNKNOWN_DIPLOC( 0x80, 0x80, "SW(A):8" )
+
+ PORT_START("DSWB")
+ CPS1_DIFFICULTY_1( "SW(B)" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SW(B):4" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW(B):5" )
+ PORT_DIPNAME( 0xe0, 0xe0, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW(B):6,7,8")
+ PORT_DIPSETTING( 0x60, "1" )
+ PORT_DIPSETTING( 0x80, "2" )
+ PORT_DIPSETTING( 0xe0, "3" )
+ PORT_DIPSETTING( 0xa0, "4" )
+ PORT_DIPSETTING( 0xc0, "5" )
+// PORT_DIPSETTING( 0x40, "?" )
+// PORT_DIPSETTING( 0x20, "?" )
+// PORT_DIPSETTING( 0x00, "?" )
+
+ PORT_START("DSWC")
+ PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "SW(C):1" )
+ PORT_DIPNAME( 0x02, 0x02, "Infinite Lives (Cheat)") PORT_DIPLOCATION("SW(C):2")
+ PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW(C):3")
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x08, "Freeze" ) PORT_DIPLOCATION("SW(C):4")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x40, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7")
+ PORT_DIPSETTING( 0x00, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( Yes ) )
+ PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8")
+ PORT_DIPSETTING( 0x80, "Game" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Test ) )
+
+ PORT_START("IN2") /* check code at 0x000f80 */
+ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("IN3") /* check code at 0x000f76 */
+ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
+INPUT_PORTS_END
+
+/* Needs further checking */
+static INPUT_PORTS_START( pang3 )
+ PORT_INCLUDE( cps1_3b )
+
+ PORT_MODIFY("IN0")
+ PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW )
+
+ PORT_START("DSWA") /* (not used, EEPROM) */
+ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("DSWB") /* (not used, EEPROM) */
+ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("DSWC")
+ PORT_DIPUNUSED( 0x01, 0x01 )
+ PORT_DIPUNUSED( 0x02, 0x02 )
+ PORT_DIPUNUSED( 0x04, 0x04 )
+ PORT_DIPUNUSED( 0x08, 0x08 )
+ PORT_DIPUNUSED( 0x10, 0x10 )
+ PORT_DIPUNUSED( 0x20, 0x20 )
+ PORT_DIPUNUSED( 0x40, 0x40 )
+ PORT_DIPUNUSED( 0x80, 0x80 ) /* doubles up as an extra service switch */
+
+ PORT_START( "EEPROMIN" )
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, do_read)
+
+ PORT_START( "EEPROMOUT" )
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, di_write)
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, clk_write)
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, cs_write)
+INPUT_PORTS_END
+
+/* Needs further checking */
+static INPUT_PORTS_START( pang3b )
+ PORT_INCLUDE( pang3 )
+
+ PORT_MODIFY("DSWC")
+ PORT_DIPUNUSED( 0x01, 0x01 )
+ PORT_DIPUNUSED( 0x02, 0x02 )
+ PORT_DIPUNUSED( 0x04, 0x04 )
+ PORT_DIPNAME( 0x08, 0x08, "Freeze" )
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPUNUSED( 0x10, 0x10 )
+ PORT_DIPUNUSED( 0x20, 0x20 )
+ PORT_DIPUNUSED( 0x40, 0x40 )
+ PORT_DIPUNUSED( 0x80, 0x80 )
+INPUT_PORTS_END
+
+/* Needs further checking */
+static INPUT_PORTS_START( megaman )
+ PORT_INCLUDE( cps1_3b )
+
+ PORT_MODIFY("IN0")
+ PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW )
+
+ PORT_START("DSWA")
+ PORT_DIPNAME( 0x1f, 0x1f, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW(A):1,2,3,4,5")
+ PORT_DIPSETTING( 0x0f, DEF_STR( 9C_1C ) )
+ PORT_DIPSETTING( 0x10, DEF_STR( 8C_1C ) )
+ PORT_DIPSETTING( 0x11, DEF_STR( 7C_1C ) )
+ PORT_DIPSETTING( 0x12, DEF_STR( 6C_1C ) )
+ PORT_DIPSETTING( 0x13, DEF_STR( 5C_1C ) )
+ PORT_DIPSETTING( 0x14, DEF_STR( 4C_1C ) )
+ PORT_DIPSETTING( 0x15, DEF_STR( 3C_1C ) )
+ PORT_DIPSETTING( 0x16, DEF_STR( 2C_1C ) )
+ PORT_DIPSETTING( 0x0e, "2 Coins to Start, 1 to Continue" )
+ PORT_DIPSETTING( 0x1f, DEF_STR( 1C_1C ) )
+ PORT_DIPSETTING( 0x1e, DEF_STR( 1C_2C ) )
+ PORT_DIPSETTING( 0x1d, DEF_STR( 1C_3C ) )
+ PORT_DIPSETTING( 0x1c, DEF_STR( 1C_4C ) )
+ PORT_DIPSETTING( 0x1b, DEF_STR( 1C_5C ) )
+ PORT_DIPSETTING( 0x1a, DEF_STR( 1C_6C ) )
+ PORT_DIPSETTING( 0x19, DEF_STR( 1C_7C ) )
+ PORT_DIPSETTING( 0x18, DEF_STR( 1C_8C ) )
+ PORT_DIPSETTING( 0x17, DEF_STR( 1C_9C ) )
+ PORT_DIPSETTING( 0x0d, DEF_STR( Free_Play ) )
+ /* 0x00 to 0x0c 1 Coin/1 Credit */
+ PORT_DIPNAME( 0x60, 0x60, "Coin slots" ) PORT_DIPLOCATION("SW(A):6,7")
+// PORT_DIPSETTING( 0x00, "Invalid" )
+ PORT_DIPSETTING( 0x20, "1, Common" )
+ PORT_DIPSETTING( 0x60, "2, Common" )
+ PORT_DIPSETTING( 0x40, "2, Individual" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x80, 0x80, "SW(A):8" )
+
+ PORT_START("DSWB")
+ PORT_DIPNAME( 0x03, 0x02, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW(B):1,2")
+ PORT_DIPSETTING( 0x03, DEF_STR( Easy ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( Normal ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( Hard ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) )
+ PORT_DIPNAME( 0x0c, 0x0c, "Time" ) PORT_DIPLOCATION("SW(B):3,4")
+ PORT_DIPSETTING( 0x0c, "100" )
+ PORT_DIPSETTING( 0x08, "90" )
+ PORT_DIPSETTING( 0x04, "70" )
+ PORT_DIPSETTING( 0x00, "60" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW(B):5" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SW(B):6" )
+ PORT_DIPNAME( 0x40, 0x40, "Voice" ) PORT_DIPLOCATION("SW(B):7")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( On ) )
+ PORT_DIPUNKNOWN_DIPLOC( 0x80, 0x80, "SW(B):8" )
+
+ PORT_START("DSWC")
+ PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):1")
+ PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x02, 0x02, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):2")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( On ) )
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):3")
+ PORT_DIPSETTING( 0x00, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x04, DEF_STR( Yes ) )
+ PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SW(C):4" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW(C):5" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SW(C):6" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x40, 0x40, "SW(C):7" )
+ PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8")
+ PORT_DIPSETTING( 0x80, "Game" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Test ) )
+INPUT_PORTS_END
+
+/* Needs further checking */
+/* Same as 'megaman' but no "Voice" Dip Switch */
+static INPUT_PORTS_START( rockmanj )
+ PORT_INCLUDE(megaman)
+
+ PORT_MODIFY("DSWB")
+ PORT_DIPUNKNOWN_DIPLOC( 0x40, 0x40, "SW(B):7" )
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( wofhfh )
+ PORT_INCLUDE( wof )
+
+ PORT_MODIFY("DSWA")
+ PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW(A):1,2")
+ PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( 1C_3C ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( 1C_4C ) )
+ PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_MODIFY("DSWB")
+ PORT_DIPNAME( 0x07, 0x04, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW(B):1,2,3")
+ PORT_DIPSETTING( 0x07, "Extra Easy" )
+ PORT_DIPSETTING( 0x06, DEF_STR( Very_Easy) )
+ PORT_DIPSETTING( 0x05, DEF_STR( Easy) )
+ PORT_DIPSETTING( 0x04, DEF_STR( Normal) )
+ PORT_DIPSETTING( 0x03, DEF_STR( Hard) )
+ PORT_DIPSETTING( 0x02, DEF_STR( Very_Hard) )
+ PORT_DIPSETTING( 0x01, "Extra Hard" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Hardest) )
+ PORT_DIPNAME( 0x70, 0x60, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW(B):4,5,6")
+ PORT_DIPSETTING( 0x00, "Start 4 Continue 5" )
+ PORT_DIPSETTING( 0x10, "Start 3 Continue 4" )
+ PORT_DIPSETTING( 0x20, "Start 2 Continue 3" )
+ PORT_DIPSETTING( 0x30, "Start 1 Continue 2" )
+ PORT_DIPSETTING( 0x40, "Start 4 Continue 4" )
+ PORT_DIPSETTING( 0x50, "Start 3 Continue 3" )
+ PORT_DIPSETTING( 0x60, "Start 2 Continue 2" )
+ PORT_DIPSETTING( 0x70, "Start 1 Continue 1" )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_MODIFY("DSWC")
+ PORT_DIPNAME( 0x03, 0x03, "Coin Slots" ) PORT_DIPLOCATION("SW(C):1,2")
+// PORT_DIPSETTING( 0x00, "2 Players 1 Shooter" )
+ PORT_DIPSETTING( 0x01, "2 Players 1 Shooter" )
+ PORT_DIPSETTING( 0x02, "3 Players 1 Shooter" )
+ PORT_DIPSETTING( 0x03, "3 Players 3 Shooters" )
+ PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_MODIFY("IN1")
+ PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
+ PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
+
+ PORT_MODIFY("IN2") /* Player 3 */
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN3 ) PORT_NAME("Coin 3 (P3 Button 3 in-game)")
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( ganbare )
+ PORT_START("IN0")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) /* definitely read here in test mode, coin lock prevents it though */
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
+ 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_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("IN1")
+ PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ 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("DSWA")
+ PORT_DIPNAME( 0x01, 0x01, "Medal Setup" ) PORT_DIPLOCATION("SW(A):1")
+ PORT_DIPSETTING( 0x01, "1 Medal 1 Credit" )
+ PORT_DIPSETTING( 0x00, "Don't use" )
+ PORT_DIPNAME( 0x02, 0x02, "Coin Setup" ) PORT_DIPLOCATION("SW(A):2")
+ PORT_DIPSETTING( 0x02, "100 Yen" )
+ PORT_DIPSETTING( 0x00, "10 Yen" )
+ PORT_DIPNAME( 0x1c, 0x1c, "Change Setup" ) PORT_DIPLOCATION("SW(A):3,4,5")
+ PORT_DIPSETTING( 0x04, "12" )
+ PORT_DIPSETTING( 0x00, "11" )
+ PORT_DIPSETTING( 0x1c, "10" )
+ PORT_DIPSETTING( 0x18, "8" )
+ PORT_DIPSETTING( 0x14, "7" )
+ PORT_DIPSETTING( 0x10, "6" )
+ PORT_DIPSETTING( 0x0c, "5" )
+ PORT_DIPSETTING( 0x08, "No change" )
+ PORT_DIPNAME( 0x60, 0x60, "10 Yen Setup" ) PORT_DIPLOCATION("SW(A):6,7")
+ PORT_DIPSETTING( 0x60, DEF_STR( 1C_1C ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( 2C_1C ) )
+ PORT_DIPSETTING( 0x20, DEF_STR( 3C_1C ) )
+ PORT_DIPSETTING( 0x00, "Don't use" )
+ PORT_DIPNAME( 0x80, 0x80, "Payout Setup" ) PORT_DIPLOCATION("SW(A):8")
+ PORT_DIPSETTING( 0x80, "Credit Mode" )
+ PORT_DIPSETTING( 0x00, "Payout Mode" )
+
+ PORT_START("DSWB")
+ PORT_DIPNAME( 0x07, 0x07, "Payout Rate Setup" ) PORT_DIPLOCATION("SW(B):1,2,3")
+ PORT_DIPSETTING( 0x01, "90%" )
+ PORT_DIPSETTING( 0x00, "85%" )
+ PORT_DIPSETTING( 0x07, "80%" )
+ PORT_DIPSETTING( 0x06, "75%" )
+ PORT_DIPSETTING( 0x05, "70%" )
+ PORT_DIPSETTING( 0x04, "65%" )
+ PORT_DIPSETTING( 0x03, "60%" )
+ PORT_DIPSETTING( 0x02, "55%" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SW(B):4" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW(B):5" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SW(B):6" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x40, 0x40, "SW(B):7" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x80, 0x80, "SW(B):8" )
+
+ PORT_START("DSWC")
+ PORT_DIPNAME( 0x03, 0x03, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):1,2")
+ PORT_DIPSETTING( 0x03, DEF_STR( On ) )
+ PORT_DIPSETTING( 0x02, "Every second sound" )
+ PORT_DIPSETTING( 0x01, "Every third sound" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x04, "SW(C):3" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SW(C):4" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW(C):5" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SW(C):6" )
+ PORT_DIPNAME( 0x40, 0x40, "Clear RAM" ) PORT_DIPLOCATION("SW(C):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
+ PORT_DIPNAME( 0x80, 0x80, "Tes Mode Display" ) PORT_DIPLOCATION("SW(C):8")
+ PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+INPUT_PORTS_END
+
+
+static INPUT_PORTS_START( sfzch )
+ PORT_START("IN0") /* IN0 */
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON5) PORT_PLAYER(1)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON5) PORT_PLAYER(2)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE) PORT_NAME(DEF_STR(Pause)) PORT_CODE(KEYCODE_F1) /* pause */
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE ) /* pause */
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1)
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2)
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON6) PORT_PLAYER(1)
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON6) PORT_PLAYER(2)
+
+ PORT_START("DSWA")
+ PORT_DIPNAME( 0xff, 0xff, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0xff, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+
+ PORT_START("DSWB")
+ PORT_DIPNAME( 0xff, 0xff, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0xff, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+
+ PORT_START("DSWC")
+ PORT_DIPNAME( 0xff, 0xff, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0xff, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+
+ 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
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP) PORT_PLAYER(1) PORT_8WAY
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1) PORT_PLAYER(1)
+ 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_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 )
+
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( wofch )
+ PORT_INCLUDE( sfzch )
+
+ PORT_START( "EEPROMIN" )
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, do_read)
+
+ PORT_START( "EEPROMOUT" )
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, di_write)
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, clk_write)
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, cs_write)
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( pokonyan )
+ PORT_INCLUDE( cps1_3b )
+
+ PORT_START("DSWA")
+ PORT_DIPNAME( 0x03, 0x02, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW(A):1,2")
+ PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( 3C_1C ) )
+ PORT_DIPSETTING( 0x03, DEF_STR( 2C_1C ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( 1C_1C ) )
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW(A):3")
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW(A):4")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW(A):5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW(A):6")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW(A):7") // not listed in service mode, but left/right don't seem to work otherwise? maybe tied to some cabinet sensor?
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW(A):8")
+ PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+
+ PORT_START("DSWB")
+ PORT_DIPNAME( 0x03, 0x03, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(B):1,2")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x01, "Every 4" )
+ PORT_DIPSETTING( 0x02, "Every 2" )
+ PORT_DIPSETTING( 0x03, DEF_STR( On ) )
+ PORT_DIPNAME( 0x04, 0x00, "Prize Mode" ) PORT_DIPLOCATION("SW(B):3")
+ PORT_DIPSETTING( 0x00, "Not Used" )
+ PORT_DIPSETTING( 0x04, "Used" )
+ PORT_DIPNAME( 0x08, 0x08, "Credit Mode" ) PORT_DIPLOCATION("SW(B):4")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, "Max Stage" ) PORT_DIPLOCATION("SW(B):5")
+ PORT_DIPSETTING( 0x00, "2" )
+ PORT_DIPSETTING( 0x10, "3" )
+ PORT_DIPNAME( 0x20, 0x20, "Card Check" ) PORT_DIPLOCATION("SW(B):6")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW(B):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW(B):8")
+ PORT_DIPSETTING( 0x00, "1.0 sec" )
+ PORT_DIPSETTING( 0x80, "1.2 sec" )
+
+ PORT_START("DSWC")
+ PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW(C):1")
+ PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x02, 0x02, "Body Check") PORT_DIPLOCATION("SW(C):2")
+ PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW(C):3")
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x08, "Screen Stop" ) PORT_DIPLOCATION("SW(C):4")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW(C):6")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW(C):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_SERVICE_DIPLOC( 0x80, IP_ACTIVE_LOW, "SW(C):8" )
+INPUT_PORTS_END
+
+/*
+A Final Fight board with mismatched USA and Japan GFX proves that the columns
+of the 8x8 tilemap alternate between sides of the 16x16 tile resulting
+in a corrupt WDUD screen. ffightub is now fixed since a genuine pcb surfaced.
+*/
+
+static const gfx_layout cps1_layout8x8 =
+{
+ 8,8,
+ RGN_FRAC(1,1),
+ 4,
+ { 24, 16, 8, 0 },
+ { STEP8(0, 1) },
+ { STEP8(0, 4*16) },
+ 64*8
+};
+
+static const gfx_layout cps1_layout8x8_2 =
+{
+ 8,8,
+ RGN_FRAC(1,1),
+ 4,
+ { 24, 16, 8, 0 },
+ { STEP8(32, 1) },
+ { STEP8(0, 4*16) },
+ 64*8
+};
+
+static const gfx_layout cps1_layout16x16 =
+{
+ 16,16,
+ RGN_FRAC(1,1),
+ 4,
+ { 24, 16, 8, 0 },
+ { STEP8(0, 1), STEP8(32, 1) },
+ { STEP16(0, 4*16) },
+ 4*16*16
+};
+
+static const gfx_layout cps1_layout32x32 =
+{
+ 32,32,
+ RGN_FRAC(1,1),
+ 4,
+ { 24, 16, 8, 0 },
+ { STEP8(0, 1), STEP8(32, 1), STEP8(64, 1), STEP8(96, 1) },
+ { STEP32(0, 4*32) },
+ 4*32*32
+};
+
+GFXDECODE_START( cps1 )
+ GFXDECODE_ENTRY( "gfx", 0, cps1_layout8x8, 0, 0x100 )
+ GFXDECODE_ENTRY( "gfx", 0, cps1_layout8x8_2, 0, 0x100 )
+ GFXDECODE_ENTRY( "gfx", 0, cps1_layout16x16, 0, 0x100 )
+ GFXDECODE_ENTRY( "gfx", 0, cps1_layout32x32, 0, 0x100 )
+GFXDECODE_END
+
+
+
+/********************************************************************
+*
+* Machine Driver macro
+* ====================
+*
+* Abusing the pre-processor.
+*
+********************************************************************/
+
+MACHINE_START_MEMBER(cps_state,common)
+{
+}
+
+MACHINE_START_MEMBER(cps_state,cps1)
+{
+ MACHINE_START_CALL_MEMBER(common);
+ membank("bank1")->configure_entries(0, 2, memregion("audiocpu")->base() + 0x10000, 0x4000);
+}
+
+MACHINE_START_MEMBER(cps_state,qsound)
+{
+ MACHINE_START_CALL_MEMBER(common);
+ membank("bank1")->configure_entries(0, 6, memregion("audiocpu")->base() + 0x10000, 0x4000);
+}
+
+static MACHINE_CONFIG_START( cps1_10MHz )
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", M68000, XTAL_10MHz ) /* verified on pcb */
+ MCFG_CPU_PROGRAM_MAP(main_map)
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", cps_state, cps1_interrupt)
+
+ MCFG_CPU_ADD("audiocpu", Z80, XTAL_3_579545MHz) /* verified on pcb */
+ MCFG_CPU_PROGRAM_MAP(sub_map)
+
+ MCFG_MACHINE_START_OVERRIDE(cps_state,cps1)
+
+ /* video hardware */
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_RAW_PARAMS(CPS_PIXEL_CLOCK, CPS_HTOTAL, CPS_HBEND, CPS_HBSTART, CPS_VTOTAL, CPS_VBEND, CPS_VBSTART)
+ MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_cps1)
+ MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(cps_state, screen_vblank_cps1))
+ MCFG_SCREEN_PALETTE("palette")
+
+ MCFG_GFXDECODE_ADD("gfxdecode", "palette", cps1)
+ MCFG_PALETTE_ADD("palette", 0xc00)
+
+ MCFG_VIDEO_START_OVERRIDE(cps_state, cps1)
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+
+ MCFG_GENERIC_LATCH_8_ADD("soundlatch")
+ MCFG_GENERIC_LATCH_8_ADD("soundlatch2")
+
+ MCFG_YM2151_ADD("2151", XTAL_3_579545MHz) /* verified on pcb */
+ MCFG_YM2151_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
+ MCFG_SOUND_ROUTE(0, "mono", 0.35)
+ MCFG_SOUND_ROUTE(1, "mono", 0.35)
+
+ /* CPS PPU is fed by a 16mhz clock,pin 117 outputs a 4mhz clock which is divided by 4 using 2 74ls74 */
+ MCFG_OKIM6295_ADD("oki", XTAL_16MHz/4/4, PIN7_HIGH) // pin 7 can be changed by the game code, see f006 on z80
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
+MACHINE_CONFIG_END
+
+MACHINE_CONFIG_DERIVED( cps1_12MHz, cps1_10MHz )
+
+ /* basic machine hardware */
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_CLOCK( XTAL_12MHz ) /* verified on pcb */
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( pang3, cps1_12MHz )
+
+ /* basic machine hardware */
+ MCFG_EEPROM_SERIAL_93C46_ADD("eeprom")
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( ganbare, cps1_10MHz )
+
+ /* basic machine hardware */
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", cps_state, ganbare_interrupt, "screen", 0, 1) // need to investigate more
+
+ MCFG_M48T35_ADD("m48t35")
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( qsound, cps1_12MHz )
+
+ /* basic machine hardware */
+ MCFG_CPU_REPLACE("maincpu", M68000, XTAL_12MHz ) /* verified on pcb */
+ MCFG_CPU_PROGRAM_MAP(qsound_main_map)
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", cps_state, cps1_interrupt)
+
+ MCFG_CPU_REPLACE("audiocpu", Z80, XTAL_8MHz) /* verified on pcb */
+ MCFG_CPU_PROGRAM_MAP(qsound_sub_map)
+ MCFG_CPU_DECRYPTED_OPCODES_MAP(qsound_decrypted_opcodes_map)
+ MCFG_CPU_PERIODIC_INT_DRIVER(cps_state, irq0_line_hold, 250) // measured (cps2.c)
+
+ MCFG_MACHINE_START_OVERRIDE(cps_state, qsound)
+
+ MCFG_EEPROM_SERIAL_93C46_8BIT_ADD("eeprom")
+
+ /* sound hardware */
+ MCFG_DEVICE_REMOVE("mono")
+ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
+
+ //MCFG_DEVICE_REMOVE("soundlatch") // HBMAME
+ //MCFG_DEVICE_REMOVE("soundlatch2") // HBMAME
+ MCFG_DEVICE_REMOVE("2151")
+ MCFG_DEVICE_REMOVE("oki")
+
+ MCFG_QSOUND_ADD("qsound", QSOUND_CLOCK)
+ MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
+ MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( wofhfh, cps1_12MHz )
+
+ /* basic machine hardware */
+ MCFG_EEPROM_SERIAL_93C46_8BIT_ADD("eeprom")
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( sf2m3, cps1_12MHz)
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(sf2m3_map)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( sf2m10, cps1_12MHz)
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(sf2m10_map)
+MACHINE_CONFIG_END
+
+
+/***************************************************************************
+
+ Game driver(s)
+
+***************************************************************************/
+
+#define CODE_SIZE 0x400000
+
+/* B-Board 88621B-2 */
+/*
+ There are 4 surface mounted ROMs each on it's own small 88621B-sub satellite board, type HN62404FP-18 package is QFP44.
+ The ROMs on the satellite boards are named and located as follows:
+
+ LW-02 @ 6B
+ LW-08 @ 9B
+ LW-06 @ 9D
+ LW-07 @ 10G
+
+ OTHER:
+ 2 PALs labeled LW621 (near LW_1.2A) and LWI0 (near LW_00.13C)
+ Custom chip - CAPCOM CPS-B-01 (QFP160)
+ NEC D4701AC
+*/
+/* Note that ROMs are labeled left to right, top to bottom, instead of top to bottom, left to right as usual. */
+ROM_START( forgottn )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "lw40.12f", 0x00000, 0x20000, CRC(73e920b7) SHA1(2df12fc1a66f488d06b0927db909da81466d7d07) ) /* Higher program numbers indicates a later revision */
+ ROM_LOAD16_BYTE( "lw41.12h", 0x00001, 0x20000, CRC(58210b9e) SHA1(416cb56a81e74fce6f86c2b2519ba620457b785a) ) /* 1 byte difference: 0x66D4 == 0x0C versus 0x04 in lw15.12h below */
+ ROM_LOAD16_BYTE( "lw42.13f", 0x40000, 0x20000, CRC(bea45994) SHA1(c419f65c5e0c11ae7508ec54412bf6b62fac4f72) )
+ ROM_LOAD16_BYTE( "lw43.13h", 0x40001, 0x20000, CRC(539b2339) SHA1(8a9e452ef8ed05e0b956d36990266657d3077470) )
+ ROM_LOAD16_WORD_SWAP( "lw-07.10g", 0x80000, 0x80000, CRC(fd252a26) SHA1(5cfb097984912a5167a8c7ec4c2e119b642f9970) ) // == lw-07.13e
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "lw_2.2b", 0x000000, 0x20000, CRC(4bd75fee) SHA1(c27bfba951a0dc4f493937ceca335c50a1afeddf) , ROM_SKIP(7) ) // == lw-01.9d
+ ROMX_LOAD( "lw_1.2a", 0x000001, 0x20000, CRC(65f41485) SHA1(fb05dffc87ee2f2b1b6646d54b13671f8eee0429) , ROM_SKIP(7) ) // == lw-01.9d
+ ROMX_LOAD( "lw-08.9b", 0x000002, 0x80000, CRC(25a8e43c) SHA1(d57cee1fc508db2677e84882fb814e4d9ad20543) , ROM_GROUPWORD | ROM_SKIP(6) ) // == lw-08.9f
+ ROMX_LOAD( "lw_18.5e", 0x000004, 0x20000, CRC(b4b6241b) SHA1(92b6b530e18ce27ba8739ebba0d8096b1551026c) , ROM_SKIP(7) )
+ ROMX_LOAD( "lw_17.5c", 0x000005, 0x20000, CRC(c5eea115) SHA1(22fe692eaf9dd00a56a76f46c19fb76bb5e5f0d6) , ROM_SKIP(7) )
+ ROMX_LOAD( "lw_30.8h", 0x000006, 0x20000, CRC(b385954e) SHA1(d33adb5842e7b85d304836bd92a7a96be4ff3694) , ROM_SKIP(7) ) // == lw-12.9g
+ ROMX_LOAD( "lw_29.8f", 0x000007, 0x20000, CRC(7bda1ac6) SHA1(5b8bd05f52798f98ae16efa2ff61c06e28a4e3a0) , ROM_SKIP(7) ) // == lw-12.9g
+ ROMX_LOAD( "lw_4.3b", 0x100000, 0x20000, CRC(50cf757f) SHA1(c70d7d34ac2d6671d40dd372e241ccb60bf3bf2b) , ROM_SKIP(7) ) // == lw-01.9d
+ ROMX_LOAD( "lw_3.3a", 0x100001, 0x20000, CRC(c03ef278) SHA1(ad33b01bd8194025a2ecf7755894d6d638da457a) , ROM_SKIP(7) ) // == lw-01.9d
+ ROMX_LOAD( "lw_20.7e", 0x100004, 0x20000, CRC(df1a3665) SHA1(7ba9c0edc64d4f9a8563533ce723a0a748352a15) , ROM_SKIP(7) )
+ ROMX_LOAD( "lw_19.7c", 0x100005, 0x20000, CRC(15af8440) SHA1(5afd0e833593f1a78487af489fe4384ab68f52b1) , ROM_SKIP(7) )
+ ROMX_LOAD( "lw_32.9h", 0x100006, 0x20000, CRC(30967a15) SHA1(6f6c6ca2f40aa9beec63ed64f0571bebc7c1aa50) , ROM_SKIP(7) ) // == lw-12.9g
+ ROMX_LOAD( "lw_31.9f", 0x100007, 0x20000, CRC(c49d37fb) SHA1(ce400261a0f8d5a9b95d3823f8f52de87b8007f1) , ROM_SKIP(7) ) // == lw-12.9g
+ ROMX_LOAD( "lw-02.6b", 0x200000, 0x80000, CRC(43e6c5c8) SHA1(d3e6c971de0477ec4e178adc82508208dd8b397f) , ROM_GROUPWORD | ROM_SKIP(6) ) // == lw-02.12d
+ ROMX_LOAD( "lw_14.10b", 0x200002, 0x20000, CRC(82862cce) SHA1(727ca4ee55e076185b071a49afc87533fde9ec27) , ROM_SKIP(7) ) // == lw-09.12f
+ ROMX_LOAD( "lw_13.10a", 0x200003, 0x20000, CRC(b81c0e96) SHA1(09f4235786b8ff92a57112669c0385b64477eb01) , ROM_SKIP(7) ) // == lw-09.12f
+ ROMX_LOAD( "lw-06.9d", 0x200004, 0x80000, CRC(5b9edffc) SHA1(6fd8f4a3ab070733b52365ab1945bf86acb2bf62) , ROM_GROUPWORD | ROM_SKIP(6) ) // == lw-06.12e
+ ROMX_LOAD( "lw_26.10e", 0x200006, 0x20000, CRC(57bcd032) SHA1(6db0f96fb909ed02fe4b7ee25fe662ea23f884d2) , ROM_SKIP(7) ) // == lw-13.12g
+ ROMX_LOAD( "lw_25.10c", 0x200007, 0x20000, CRC(bac91554) SHA1(52f5de144193e0f78b9824cc8fd6f934dc19bab0) , ROM_SKIP(7) ) // == lw-13.12g
+ ROMX_LOAD( "lw_16.11b", 0x300002, 0x20000, CRC(40b26554) SHA1(b4b27573d6c329bc2bc4c64fd857475bf2a10877) , ROM_SKIP(7) ) // == lw-09.12f
+ ROMX_LOAD( "lw_15.11a", 0x300003, 0x20000, CRC(1b7d2e07) SHA1(0edf4d4b314fd9c29e7915d5d1adef6f9617f921) , ROM_SKIP(7) ) // == lw-09.12f
+ ROMX_LOAD( "lw_28.11e", 0x300006, 0x20000, CRC(a805ad30) SHA1(baded4ab5fe4e87d53233b5df88edc693c292fc4) , ROM_SKIP(7) ) // == lw-13.12g
+ ROMX_LOAD( "lw_27.11c", 0x300007, 0x20000, CRC(103c1bd2) SHA1(fc7ce74e108c30554139e55651c5348b11e9e3bd) , ROM_SKIP(7) ) // == lw-13.12g
+
+ ROM_REGION( 0x8000, "stars", 0 )
+ ROM_COPY( "gfx", 0x200000, 0x000000, 0x8000 )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "lw_37.13c", 0x00000, 0x08000, CRC(59df2a63) SHA1(dfe1fffc7a17179a80a2ae623e93b30a7d6df20d) ) // == lw_00b.13c
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "lw-03u.12e", 0x00000, 0x20000, CRC(807d051f) SHA1(720e4733787b9b11f4d1cdce0892b69475802844) ) // == lw-03u.14c
+ ROM_LOAD( "lw-04u.13e", 0x20000, 0x20000, CRC(e6cd098e) SHA1(667f6e5736f76a1c4c450c4e2035574ea89d7910) ) // == lw-04u.13c
+
+ 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( "lw621.1a", 0x0000, 0x0117, CRC(5eec6ce9) SHA1(5ec8b60f1f1bdba865b1fa2387987ce99ff4093a) )
+ ROM_LOAD( "lwio.12b", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) )
+ROM_END
+
+/* B-Board 88621B-2 */
+/*
+ These ROMs read from a dead and very unique top board. All EPROMs are type 27C1000, except LW_00.13C which is a 27C512.
+ There are 5 surface mounted ROMs each on it's own small 88621B-sub satellite board, type HN62404FP-18 package is QFP44.
+ The ROMs on the satellite boards are named and located as follows:
+
+ LW-02 @ 6B
+ LW-05 @ 6D (instead of LW_17.5C, LW_18.5E, LW_19.7C & LW_20.7E as above)
+ LW-08 @ 9B
+ LW-06 @ 9D
+ LW-07 @ 10G
+
+ Also known to have LW-13 @ 10D instead of LW_25.10C, LW_26.10E, LW_27.11C & LW_28.11E
+
+ OTHER:
+ 2 PALs labeled LW621 (near LW_1.2A) and LWI0 (near LW_00.13C)
+ Custom chip - CAPCOM CPS-B-01 (QFP160)
+ NEC D4701AC
+*/
+/* Note that ROMs are labeled left to right, top to bottom, instead of top to bottom, left to right as usual. */
+ROM_START( forgottna )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "lw11.12f", 0x00000, 0x20000, CRC(73e920b7) SHA1(2df12fc1a66f488d06b0927db909da81466d7d07) )
+ ROM_LOAD16_BYTE( "lw15.12h", 0x00001, 0x20000, CRC(50d7012d) SHA1(f82a28a835f0a83b26c2c8170b824447b1d7409f) )
+ ROM_LOAD16_BYTE( "lw10.13f", 0x40000, 0x20000, CRC(bea45994) SHA1(c419f65c5e0c11ae7508ec54412bf6b62fac4f72) )
+ ROM_LOAD16_BYTE( "lw14.13h", 0x40001, 0x20000, CRC(539b2339) SHA1(8a9e452ef8ed05e0b956d36990266657d3077470) )
+ ROM_LOAD16_WORD_SWAP( "lw-07.10g", 0x80000, 0x80000, CRC(fd252a26) SHA1(5cfb097984912a5167a8c7ec4c2e119b642f9970) ) // == lw-07.13e
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "lw_2.2b", 0x000000, 0x20000, CRC(4bd75fee) SHA1(c27bfba951a0dc4f493937ceca335c50a1afeddf) , ROM_SKIP(7) ) // == lw-01.9d
+ ROMX_LOAD( "lw_1.2a", 0x000001, 0x20000, CRC(65f41485) SHA1(fb05dffc87ee2f2b1b6646d54b13671f8eee0429) , ROM_SKIP(7) ) // == lw-01.9d
+ ROMX_LOAD( "lw-08.9b", 0x000002, 0x80000, CRC(25a8e43c) SHA1(d57cee1fc508db2677e84882fb814e4d9ad20543) , ROM_GROUPWORD | ROM_SKIP(6) ) // == lw-08.9f
+ ROMX_LOAD( "lw-05.6d", 0x000004, 0x80000, CRC(e4552fd7) SHA1(11147afc475904848458425661473586dd6f60cc) , ROM_GROUPWORD | ROM_SKIP(6) ) // == lw-05.9e
+ ROMX_LOAD( "lw_30.8h", 0x000006, 0x20000, CRC(b385954e) SHA1(d33adb5842e7b85d304836bd92a7a96be4ff3694) , ROM_SKIP(7) ) // == lw-12.9g
+ ROMX_LOAD( "lw_29.8f", 0x000007, 0x20000, CRC(7bda1ac6) SHA1(5b8bd05f52798f98ae16efa2ff61c06e28a4e3a0) , ROM_SKIP(7) ) // == lw-12.9g
+ ROMX_LOAD( "lw_4.3b", 0x100000, 0x20000, CRC(50cf757f) SHA1(c70d7d34ac2d6671d40dd372e241ccb60bf3bf2b) , ROM_SKIP(7) ) // == lw-01.9d
+ ROMX_LOAD( "lw_3.3a", 0x100001, 0x20000, CRC(c03ef278) SHA1(ad33b01bd8194025a2ecf7755894d6d638da457a) , ROM_SKIP(7) ) // == lw-01.9d
+ ROMX_LOAD( "lw_32.9h", 0x100006, 0x20000, CRC(30967a15) SHA1(6f6c6ca2f40aa9beec63ed64f0571bebc7c1aa50) , ROM_SKIP(7) ) // == lw-12.9g
+ ROMX_LOAD( "lw_31.9f", 0x100007, 0x20000, CRC(c49d37fb) SHA1(ce400261a0f8d5a9b95d3823f8f52de87b8007f1) , ROM_SKIP(7) ) // == lw-12.9g
+ ROMX_LOAD( "lw-02.6b", 0x200000, 0x80000, CRC(43e6c5c8) SHA1(d3e6c971de0477ec4e178adc82508208dd8b397f) , ROM_GROUPWORD | ROM_SKIP(6) ) // == lw-02.12d
+ ROMX_LOAD( "lw_14.10b", 0x200002, 0x20000, CRC(82862cce) SHA1(727ca4ee55e076185b071a49afc87533fde9ec27) , ROM_SKIP(7) ) // == lw-09.12f
+ ROMX_LOAD( "lw_13.10a", 0x200003, 0x20000, CRC(b81c0e96) SHA1(09f4235786b8ff92a57112669c0385b64477eb01) , ROM_SKIP(7) ) // == lw-09.12f
+ ROMX_LOAD( "lw-06.9d", 0x200004, 0x80000, CRC(5b9edffc) SHA1(6fd8f4a3ab070733b52365ab1945bf86acb2bf62) , ROM_GROUPWORD | ROM_SKIP(6) ) // == lw-06.12e
+ ROMX_LOAD( "lw_26.10e", 0x200006, 0x20000, CRC(57bcd032) SHA1(6db0f96fb909ed02fe4b7ee25fe662ea23f884d2) , ROM_SKIP(7) ) // == lw-13.12g
+ ROMX_LOAD( "lw_25.10c", 0x200007, 0x20000, CRC(bac91554) SHA1(52f5de144193e0f78b9824cc8fd6f934dc19bab0) , ROM_SKIP(7) ) // == lw-13.12g
+ ROMX_LOAD( "lw_16.11b", 0x300002, 0x20000, CRC(40b26554) SHA1(b4b27573d6c329bc2bc4c64fd857475bf2a10877) , ROM_SKIP(7) ) // == lw-09.12f
+ ROMX_LOAD( "lw_15.11a", 0x300003, 0x20000, CRC(1b7d2e07) SHA1(0edf4d4b314fd9c29e7915d5d1adef6f9617f921) , ROM_SKIP(7) ) // == lw-09.12f
+ ROMX_LOAD( "lw_28.11e", 0x300006, 0x20000, CRC(a805ad30) SHA1(baded4ab5fe4e87d53233b5df88edc693c292fc4) , ROM_SKIP(7) ) // == lw-13.12g
+ ROMX_LOAD( "lw_27.11c", 0x300007, 0x20000, CRC(103c1bd2) SHA1(fc7ce74e108c30554139e55651c5348b11e9e3bd) , ROM_SKIP(7) ) // == lw-13.12g
+
+ ROM_REGION( 0x8000, "stars", 0 )
+ ROM_COPY( "gfx", 0x200000, 0x000000, 0x8000 )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "lw_00.13c", 0x00000, 0x08000, CRC(59df2a63) SHA1(dfe1fffc7a17179a80a2ae623e93b30a7d6df20d) ) // == lw_00b.14a
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "lw-03u.12e", 0x00000, 0x20000, CRC(807d051f) SHA1(720e4733787b9b11f4d1cdce0892b69475802844) ) // == lw-03u.14c
+ ROM_LOAD( "lw-04u.13e", 0x20000, 0x20000, CRC(e6cd098e) SHA1(667f6e5736f76a1c4c450c4e2035574ea89d7910) ) // == lw-04u.13c
+
+ 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( "lw621.1a", 0x0000, 0x0117, CRC(5eec6ce9) SHA1(5ec8b60f1f1bdba865b1fa2387987ce99ff4093a) )
+ ROM_LOAD( "lwio.12b", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) )
+ROM_END
+
+/* B-Board 88621B-2 */
+/* This set comes from a USA board with the same pcb layout of the parent forgottn, but uses one more surface mounted ROM
+ named LW-13 and located @ 10D instead of LW_25.10C, LW_26.10E, LW_27.11C, LW_28.11E EPROMs. */
+/* Note that ROMs are labeled left to right, top to bottom, instead of top to bottom, left to right as usual. */
+ROM_START( forgottnu )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "lw11c.12f", 0x00000, 0x20000, CRC(e62742b6) SHA1(39dd3bdd405a8217d8816567d4f2014fc77f5ce8) )
+ ROM_LOAD16_BYTE( "lw15c.12h", 0x00001, 0x20000, CRC(1b70f216) SHA1(f200f615dca8aa23d166e74b8baa9a8863ee7a95) )
+ ROM_LOAD16_BYTE( "lw10c.13f", 0x40000, 0x20000, CRC(8f5ea3f5) SHA1(c3e43659bd7e03ec3d5c79647db380bde391b0f1) )
+ ROM_LOAD16_BYTE( "lw14c.13h", 0x40001, 0x20000, CRC(708e7472) SHA1(44f82db41ffd1eece2d3f3c977f481fd84dfdbf3) )
+ ROM_LOAD16_WORD_SWAP( "lw-07.10g", 0x80000, 0x80000, CRC(fd252a26) SHA1(5cfb097984912a5167a8c7ec4c2e119b642f9970) ) // == lw-07.13e
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "lw_2.2b", 0x000000, 0x20000, CRC(4bd75fee) SHA1(c27bfba951a0dc4f493937ceca335c50a1afeddf) , ROM_SKIP(7) ) // == lw-01.9d
+ ROMX_LOAD( "lw_1.2a", 0x000001, 0x20000, CRC(65f41485) SHA1(fb05dffc87ee2f2b1b6646d54b13671f8eee0429) , ROM_SKIP(7) ) // == lw-01.9d
+ ROMX_LOAD( "lw-08.9b", 0x000002, 0x80000, CRC(25a8e43c) SHA1(d57cee1fc508db2677e84882fb814e4d9ad20543) , ROM_GROUPWORD | ROM_SKIP(6) ) // == lw-08.9f
+ ROMX_LOAD( "lw-05.6d", 0x000004, 0x80000, CRC(e4552fd7) SHA1(11147afc475904848458425661473586dd6f60cc) , ROM_GROUPWORD | ROM_SKIP(6) ) // == lw-05.9e
+ ROMX_LOAD( "lw_30.8h", 0x000006, 0x20000, CRC(b385954e) SHA1(d33adb5842e7b85d304836bd92a7a96be4ff3694) , ROM_SKIP(7) ) // == lw-12.9g
+ ROMX_LOAD( "lw_29.8f", 0x000007, 0x20000, CRC(7bda1ac6) SHA1(5b8bd05f52798f98ae16efa2ff61c06e28a4e3a0) , ROM_SKIP(7) ) // == lw-12.9g
+ ROMX_LOAD( "lw_4.3b", 0x100000, 0x20000, CRC(50cf757f) SHA1(c70d7d34ac2d6671d40dd372e241ccb60bf3bf2b) , ROM_SKIP(7) ) // == lw-01.9d
+ ROMX_LOAD( "lw_3.3a", 0x100001, 0x20000, CRC(c03ef278) SHA1(ad33b01bd8194025a2ecf7755894d6d638da457a) , ROM_SKIP(7) ) // == lw-01.9d
+ ROMX_LOAD( "lw_32.9h", 0x100006, 0x20000, CRC(30967a15) SHA1(6f6c6ca2f40aa9beec63ed64f0571bebc7c1aa50) , ROM_SKIP(7) ) // == lw-12.9g
+ ROMX_LOAD( "lw_31.9f", 0x100007, 0x20000, CRC(c49d37fb) SHA1(ce400261a0f8d5a9b95d3823f8f52de87b8007f1) , ROM_SKIP(7) ) // == lw-12.9g
+ ROMX_LOAD( "lw-02.6b", 0x200000, 0x80000, CRC(43e6c5c8) SHA1(d3e6c971de0477ec4e178adc82508208dd8b397f) , ROM_GROUPWORD | ROM_SKIP(6) ) // == lw-02.12d
+ ROMX_LOAD( "lw_14.10b", 0x200002, 0x20000, CRC(82862cce) SHA1(727ca4ee55e076185b071a49afc87533fde9ec27) , ROM_SKIP(7) ) // == lw-09.12f
+ ROMX_LOAD( "lw_13.10a", 0x200003, 0x20000, CRC(b81c0e96) SHA1(09f4235786b8ff92a57112669c0385b64477eb01) , ROM_SKIP(7) ) // == lw-09.12f
+ ROMX_LOAD( "lw-06.9d", 0x200004, 0x80000, CRC(5b9edffc) SHA1(6fd8f4a3ab070733b52365ab1945bf86acb2bf62) , ROM_GROUPWORD | ROM_SKIP(6) ) // == lw-06.12e
+ ROMX_LOAD( "lw-13.10d", 0x200006, 0x80000, CRC(8e058ef5) SHA1(00f2c0050fd106276ea5398511c5861ebfbc0d10) , ROM_GROUPWORD | ROM_SKIP(6) ) // == lw-13.12g
+ ROMX_LOAD( "lw_16.11b", 0x300002, 0x20000, CRC(40b26554) SHA1(b4b27573d6c329bc2bc4c64fd857475bf2a10877) , ROM_SKIP(7) ) // == lw-09.12f
+ ROMX_LOAD( "lw_15.11a", 0x300003, 0x20000, CRC(1b7d2e07) SHA1(0edf4d4b314fd9c29e7915d5d1adef6f9617f921) , ROM_SKIP(7) ) // == lw-09.12f
+
+ ROM_REGION( 0x8000, "stars", 0 )
+ ROM_COPY( "gfx", 0x200000, 0x000000, 0x8000 )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "lw_00.13c", 0x00000, 0x08000, CRC(59df2a63) SHA1(dfe1fffc7a17179a80a2ae623e93b30a7d6df20d) ) // == lw_00b.14a
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "lw-03u.12e", 0x00000, 0x20000, CRC(807d051f) SHA1(720e4733787b9b11f4d1cdce0892b69475802844) ) // == lw-03u.14c
+ ROM_LOAD( "lw-04u.13e", 0x20000, 0x20000, CRC(e6cd098e) SHA1(667f6e5736f76a1c4c450c4e2035574ea89d7910) ) // == lw-04u.13c
+
+ 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( "lw621.1a", 0x0000, 0x0117, CRC(5eec6ce9) SHA1(5ec8b60f1f1bdba865b1fa2387987ce99ff4093a) )
+ ROM_LOAD( "lwio.12b", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) )
+ROM_END
+
+/* B-Board 88618B-2 */
+/* Note that this set is equivalent to forgottnu, but ROMs use the 88618B-2 B-Board layout. */
+ROM_START( forgottnu1 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "lw11c.14f", 0x00000, 0x20000, CRC(e62742b6) SHA1(39dd3bdd405a8217d8816567d4f2014fc77f5ce8) )
+ ROM_LOAD16_BYTE( "lw15c.14g", 0x00001, 0x20000, CRC(1b70f216) SHA1(f200f615dca8aa23d166e74b8baa9a8863ee7a95) )
+ ROM_LOAD16_BYTE( "lw10c.13f", 0x40000, 0x20000, CRC(8f5ea3f5) SHA1(c3e43659bd7e03ec3d5c79647db380bde391b0f1) )
+ ROM_LOAD16_BYTE( "lw14c.13g", 0x40001, 0x20000, CRC(708e7472) SHA1(44f82db41ffd1eece2d3f3c977f481fd84dfdbf3) )
+ ROM_LOAD16_WORD_SWAP( "lw-07.13e", 0x80000, 0x80000, CRC(fd252a26) SHA1(5cfb097984912a5167a8c7ec4c2e119b642f9970) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "lw-01.9d", 0x000000, 0x80000, CRC(0318f298) SHA1(178ffd6da7bf845e30abf1bfc38a469cd319a73f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "lw-08.9f", 0x000002, 0x80000, CRC(25a8e43c) SHA1(d57cee1fc508db2677e84882fb814e4d9ad20543) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "lw-05.9e", 0x000004, 0x80000, CRC(e4552fd7) SHA1(11147afc475904848458425661473586dd6f60cc) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "lw-12.9g", 0x000006, 0x80000, CRC(8e6a832b) SHA1(d63a1331fda2365f090fa31950098f321a720ea8) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "lw-02.12d", 0x200000, 0x80000, CRC(43e6c5c8) SHA1(d3e6c971de0477ec4e178adc82508208dd8b397f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "lw-09.12f", 0x200002, 0x80000, CRC(899cb4ad) SHA1(95e61af338945e690f2a82746feba3871ea224eb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "lw-06.12e", 0x200004, 0x80000, CRC(5b9edffc) SHA1(6fd8f4a3ab070733b52365ab1945bf86acb2bf62) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "lw-13.12g", 0x200006, 0x80000, CRC(8e058ef5) SHA1(00f2c0050fd106276ea5398511c5861ebfbc0d10) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x8000, "stars", 0 )
+ ROM_COPY( "gfx", 0x200000, 0x000000, 0x8000 )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "lw_00.14a", 0x00000, 0x08000, CRC(59df2a63) SHA1(dfe1fffc7a17179a80a2ae623e93b30a7d6df20d) ) // == lw_00b.14a
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "lw-03u.14c", 0x00000, 0x20000, CRC(807d051f) SHA1(720e4733787b9b11f4d1cdce0892b69475802844) )
+ ROM_LOAD( "lw-04u.13c", 0x20000, 0x20000, CRC(e6cd098e) SHA1(667f6e5736f76a1c4c450c4e2035574ea89d7910) )
+
+ 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( "lwchr.3a", 0x0000, 0x0117, CRC(54ed4c39) SHA1(961309335dc1c84482ebe99ea938b32d3a6ae9a8) )
+ ROM_LOAD( "lwio.15e", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) )
+ROM_END
+
+/* B-Board 88618B-2 */
+ROM_START( forgottnua )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "lwu_11a.14f", 0x00000, 0x20000, CRC(ddf78831) SHA1(b9c815613efdfde933d4500b588798b7fb4c1854) )
+ ROM_LOAD16_BYTE( "lwu_15a.14g", 0x00001, 0x20000, CRC(f7ce2097) SHA1(44c06fabdb6de7d8afc2164458c90b0be9cf945d) )
+ ROM_LOAD16_BYTE( "lwu_10a.13f", 0x40000, 0x20000, CRC(8cb38c81) SHA1(1d36cab7d17ff778ee7dfcd9606a3a87f6906f21) )
+ ROM_LOAD16_BYTE( "lwu_14a.13g", 0x40001, 0x20000, CRC(d70ef9fd) SHA1(b393aa2a7bea440fdcf057ffc6ff233fc0d35d4b) )
+ ROM_LOAD16_WORD_SWAP( "lw-07.13e", 0x80000, 0x80000, CRC(fd252a26) SHA1(5cfb097984912a5167a8c7ec4c2e119b642f9970) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "lw-01.9d", 0x000000, 0x80000, CRC(0318f298) SHA1(178ffd6da7bf845e30abf1bfc38a469cd319a73f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "lw-08.9f", 0x000002, 0x80000, CRC(25a8e43c) SHA1(d57cee1fc508db2677e84882fb814e4d9ad20543) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "lw-05.9e", 0x000004, 0x80000, CRC(e4552fd7) SHA1(11147afc475904848458425661473586dd6f60cc) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "lw-12.9g", 0x000006, 0x80000, CRC(8e6a832b) SHA1(d63a1331fda2365f090fa31950098f321a720ea8) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "lw-02.12d", 0x200000, 0x80000, CRC(43e6c5c8) SHA1(d3e6c971de0477ec4e178adc82508208dd8b397f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "lw-09.12f", 0x200002, 0x80000, CRC(899cb4ad) SHA1(95e61af338945e690f2a82746feba3871ea224eb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "lw-06.12e", 0x200004, 0x80000, CRC(5b9edffc) SHA1(6fd8f4a3ab070733b52365ab1945bf86acb2bf62) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "lw-13.12g", 0x200006, 0x80000, CRC(8e058ef5) SHA1(00f2c0050fd106276ea5398511c5861ebfbc0d10) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x8000, "stars", 0 )
+ ROM_COPY( "gfx", 0x200000, 0x000000, 0x8000 )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "lwu_00.14a", 0x00000, 0x08000, CRC(59df2a63) SHA1(dfe1fffc7a17179a80a2ae623e93b30a7d6df20d) ) // == lw_00b.14a
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "lw-03u.14c", 0x00000, 0x20000, CRC(807d051f) SHA1(720e4733787b9b11f4d1cdce0892b69475802844) )
+ ROM_LOAD( "lw-04u.13c", 0x20000, 0x20000, CRC(e6cd098e) SHA1(667f6e5736f76a1c4c450c4e2035574ea89d7910) )
+
+ 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( "lwchr.3a", 0x0000, 0x0117, CRC(54ed4c39) SHA1(961309335dc1c84482ebe99ea938b32d3a6ae9a8) )
+ ROM_LOAD( "lwio.15e", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) )
+ROM_END
+
+/* B-Board 88618B-2 */
+ROM_START( forgottnuaa ) /* 1 byte difference to parent set. Region byte or pointer to the US "warning" screen at boot */
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "lwu_11aa.14f", 0x00000, 0x20000, CRC(73e920b7) SHA1(2df12fc1a66f488d06b0927db909da81466d7d07) ) // == lw11.12f
+ ROM_LOAD16_BYTE( "lwu_15aa.14g", 0x00001, 0x20000, CRC(e47524b9) SHA1(2fad1e59432cb63017caf691bb28eb7cbcecb3c6) ) // 1 byte difference to lw15.12h 0x8B6 == 0x07
+ ROM_LOAD16_BYTE( "lwu_10aa.13f", 0x40000, 0x20000, CRC(bea45994) SHA1(c419f65c5e0c11ae7508ec54412bf6b62fac4f72) ) // == lw10.13f
+ ROM_LOAD16_BYTE( "lwu_14aa.13g", 0x40001, 0x20000, CRC(539b2339) SHA1(8a9e452ef8ed05e0b956d36990266657d3077470) ) // == lw14.13h
+ ROM_LOAD16_WORD_SWAP( "lw-07.13e", 0x80000, 0x80000, CRC(fd252a26) SHA1(5cfb097984912a5167a8c7ec4c2e119b642f9970) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "lw-01.9d", 0x000000, 0x80000, CRC(0318f298) SHA1(178ffd6da7bf845e30abf1bfc38a469cd319a73f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "lw-08.9f", 0x000002, 0x80000, CRC(25a8e43c) SHA1(d57cee1fc508db2677e84882fb814e4d9ad20543) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "lw-05.9e", 0x000004, 0x80000, CRC(e4552fd7) SHA1(11147afc475904848458425661473586dd6f60cc) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "lw-12.9g", 0x000006, 0x80000, CRC(8e6a832b) SHA1(d63a1331fda2365f090fa31950098f321a720ea8) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "lw-02.12d", 0x200000, 0x80000, CRC(43e6c5c8) SHA1(d3e6c971de0477ec4e178adc82508208dd8b397f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "lw-09.12f", 0x200002, 0x80000, CRC(899cb4ad) SHA1(95e61af338945e690f2a82746feba3871ea224eb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "lw-06.12e", 0x200004, 0x80000, CRC(5b9edffc) SHA1(6fd8f4a3ab070733b52365ab1945bf86acb2bf62) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "lw-13.12g", 0x200006, 0x80000, CRC(8e058ef5) SHA1(00f2c0050fd106276ea5398511c5861ebfbc0d10) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x8000, "stars", 0 )
+ ROM_COPY( "gfx", 0x200000, 0x000000, 0x8000 )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "lwu_00.14a", 0x00000, 0x08000, CRC(59df2a63) SHA1(dfe1fffc7a17179a80a2ae623e93b30a7d6df20d) ) // == lw_00b.14a
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "lw-03u.14c", 0x00000, 0x20000, CRC(807d051f) SHA1(720e4733787b9b11f4d1cdce0892b69475802844) )
+ ROM_LOAD( "lw-04u.13c", 0x20000, 0x20000, CRC(e6cd098e) SHA1(667f6e5736f76a1c4c450c4e2035574ea89d7910) )
+
+ 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( "lwchr.3a", 0x0000, 0x0117, CRC(54ed4c39) SHA1(961309335dc1c84482ebe99ea938b32d3a6ae9a8) )
+ ROM_LOAD( "lwio.15e", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) )
+ROM_END
+
+/* B-Board 88618B-2 */
+ROM_START( lostwrld )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "lw_11c.14f", 0x00000, 0x20000, CRC(67e42546) SHA1(3e385661f71616180a26b74e443978077246fe66) )
+ ROM_LOAD16_BYTE( "lw_15c.14g", 0x00001, 0x20000, CRC(402e2a46) SHA1(cbb7017e75a425706505717bf83c2615f53309f9) )
+ ROM_LOAD16_BYTE( "lw_10c.13f", 0x40000, 0x20000, CRC(c46479d7) SHA1(84fd9ef33ae7d0af2110e8dc299de25c0f039cee) )
+ ROM_LOAD16_BYTE( "lw_14c.13g", 0x40001, 0x20000, CRC(97670f4a) SHA1(f249977c814abdff85007216d7fa57db5684be0f) )
+ ROM_LOAD16_WORD_SWAP( "lw-07.13e", 0x80000, 0x80000, CRC(fd252a26) SHA1(5cfb097984912a5167a8c7ec4c2e119b642f9970) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "lw-01.9d", 0x000000, 0x80000, CRC(0318f298) SHA1(178ffd6da7bf845e30abf1bfc38a469cd319a73f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "lw-08.9f", 0x000002, 0x80000, CRC(25a8e43c) SHA1(d57cee1fc508db2677e84882fb814e4d9ad20543) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "lw-05.9e", 0x000004, 0x80000, CRC(e4552fd7) SHA1(11147afc475904848458425661473586dd6f60cc) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "lw-12.9g", 0x000006, 0x80000, CRC(8e6a832b) SHA1(d63a1331fda2365f090fa31950098f321a720ea8) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "lw-02.12d", 0x200000, 0x80000, CRC(43e6c5c8) SHA1(d3e6c971de0477ec4e178adc82508208dd8b397f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "lw-09.12f", 0x200002, 0x80000, CRC(899cb4ad) SHA1(95e61af338945e690f2a82746feba3871ea224eb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "lw-06.12e", 0x200004, 0x80000, CRC(5b9edffc) SHA1(6fd8f4a3ab070733b52365ab1945bf86acb2bf62) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "lw-13.12g", 0x200006, 0x80000, CRC(8e058ef5) SHA1(00f2c0050fd106276ea5398511c5861ebfbc0d10) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x8000, "stars", 0 )
+ ROM_COPY( "gfx", 0x200000, 0x000000, 0x8000 )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "lw_00b.14a", 0x00000, 0x08000, CRC(59df2a63) SHA1(dfe1fffc7a17179a80a2ae623e93b30a7d6df20d) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "lw-03.14c", 0x00000, 0x20000, CRC(ce2159e7) SHA1(77d564f8b768c1cbd6e5b334f7ee86c4c3f9d62e) )
+ ROM_LOAD( "lw-04.13c", 0x20000, 0x20000, CRC(39305536) SHA1(ad24d7b6df2dc5e84a35aecb9ba9b0aaa27ab6e5) )
+
+ 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( "lwchr.3a", 0x0000, 0x0117, CRC(54ed4c39) SHA1(961309335dc1c84482ebe99ea938b32d3a6ae9a8) )
+ ROM_LOAD( "lwio.15e", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) )
+ROM_END
+
+/* B-Board 88618B-2 */
+ROM_START( lostwrldo )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "lw_11.14f", 0x00000, 0x20000, CRC(61e2cc56) SHA1(bc192e37806129dd00677ca2c2e4287aa670973d) )
+ ROM_LOAD16_BYTE( "lw_15.14g", 0x00001, 0x20000, CRC(8a0c18d3) SHA1(7a4d80cefa0c2be427de43fbbbb906880876ed1d) )
+ ROM_LOAD16_BYTE( "lw_10.13f", 0x40000, 0x20000, CRC(23bca4d5) SHA1(c9d356d052d82117b6c30e40aa02a5f1f5335a73) )
+ ROM_LOAD16_BYTE( "lw_14.13g", 0x40001, 0x20000, CRC(3a023771) SHA1(30de9b76e104e897ddce64615f24bba0aa270d14) )
+ ROM_LOAD16_WORD_SWAP( "lw-07.13e", 0x80000, 0x80000, CRC(fd252a26) SHA1(5cfb097984912a5167a8c7ec4c2e119b642f9970) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "lw-01.9d", 0x000000, 0x80000, CRC(0318f298) SHA1(178ffd6da7bf845e30abf1bfc38a469cd319a73f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "lw-08.9f", 0x000002, 0x80000, CRC(25a8e43c) SHA1(d57cee1fc508db2677e84882fb814e4d9ad20543) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "lw-05.9e", 0x000004, 0x80000, CRC(e4552fd7) SHA1(11147afc475904848458425661473586dd6f60cc) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "lw-12.9g", 0x000006, 0x80000, CRC(8e6a832b) SHA1(d63a1331fda2365f090fa31950098f321a720ea8) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "lw-02.12d", 0x200000, 0x80000, CRC(43e6c5c8) SHA1(d3e6c971de0477ec4e178adc82508208dd8b397f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "lw-09.12f", 0x200002, 0x80000, CRC(899cb4ad) SHA1(95e61af338945e690f2a82746feba3871ea224eb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "lw-06.12e", 0x200004, 0x80000, CRC(5b9edffc) SHA1(6fd8f4a3ab070733b52365ab1945bf86acb2bf62) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "lw-13.12g", 0x200006, 0x80000, CRC(8e058ef5) SHA1(00f2c0050fd106276ea5398511c5861ebfbc0d10) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x8000, "stars", 0 )
+ ROM_COPY( "gfx", 0x200000, 0x000000, 0x8000 )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "lw_00b.14a", 0x00000, 0x08000, CRC(59df2a63) SHA1(dfe1fffc7a17179a80a2ae623e93b30a7d6df20d) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "lw-03.14c", 0x00000, 0x20000, CRC(ce2159e7) SHA1(77d564f8b768c1cbd6e5b334f7ee86c4c3f9d62e) )
+ ROM_LOAD( "lw-04.13c", 0x20000, 0x20000, CRC(39305536) SHA1(ad24d7b6df2dc5e84a35aecb9ba9b0aaa27ab6e5) )
+
+ 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( "lwchr.3a", 0x0000, 0x0117, CRC(54ed4c39) SHA1(961309335dc1c84482ebe99ea938b32d3a6ae9a8) )
+ ROM_LOAD( "lwio.15e", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) )
+ROM_END
+
+/* B-Board 88620-B-? */
+/* Note that ROMs are labeled left to right, top to bottom, instead of top to bottom, left to right as usual. */
+ROM_START( ghouls )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "dme_29.10h", 0x00000, 0x20000, CRC(166a58a2) SHA1(f21fcf88d2ebb7bc9e8885fde760a5d82f295c1a) )
+ ROM_LOAD16_BYTE( "dme_30.10j", 0x00001, 0x20000, CRC(7ac8407a) SHA1(3613699213db47bfeabedf87f12eb0fa7e5973b6) )
+ ROM_LOAD16_BYTE( "dme_27.9h", 0x40000, 0x20000, CRC(f734b2be) SHA1(fa230bf5503487ec11d767485a18f0a55dcc13d2) )
+ ROM_LOAD16_BYTE( "dme_28.9j", 0x40001, 0x20000, CRC(03d3e714) SHA1(a07786062358c89f3b4634b8822173261802290b) )
+ ROM_LOAD16_WORD( "dm-17.7j", 0x80000, 0x80000, CRC(3ea1b0f2) SHA1(c51f1c38cdaed77ad715cedd845617a291ab2441) )
+
+ ROM_REGION( 0x300000, "gfx", 0 )
+ ROMX_LOAD( "dm-05.3a", 0x000000, 0x80000, CRC(0ba9c0b0) SHA1(c4945b603115f32b7346d72426571dc2d361159f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "dm-07.3f", 0x000002, 0x80000, CRC(5d760ab9) SHA1(212176947933fcfef991bc80ad5bd91718689ffe) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "dm-06.3c", 0x000004, 0x80000, CRC(4ba90b59) SHA1(35bc9dec5ddbf064c30c951627581c16764456ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "dm-08.3g", 0x000006, 0x80000, CRC(4bdee9de) SHA1(7d0c4736f16577afe9966447a18f039728f6fbdf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "09.4a", 0x200000, 0x10000, CRC(ae24bb19) SHA1(aa91c6ffe657b878e10e4e930457b530f7bb529b) , ROM_SKIP(7) )
+ ROMX_LOAD( "18.7a", 0x200001, 0x10000, CRC(d34e271a) SHA1(55211fc2861dce32951f41624c9c99c09bf3b184) , ROM_SKIP(7) )
+ ROMX_LOAD( "13.4e", 0x200002, 0x10000, CRC(3f70dd37) SHA1(9ecb4dec9d131e9fca15ded7d71986a9fcb62c19) , ROM_SKIP(7) )
+ ROMX_LOAD( "22.7e", 0x200003, 0x10000, CRC(7e69e2e6) SHA1(4e0b4d2474beaa5c869c8f1a91893c79ac6e7f39) , ROM_SKIP(7) )
+ ROMX_LOAD( "11.4c", 0x200004, 0x10000, CRC(37c9b6c6) SHA1(b2bb82537e335339846dbf9588cfacfdbdd75ee6) , ROM_SKIP(7) )
+ ROMX_LOAD( "20.7c", 0x200005, 0x10000, CRC(2f1345b4) SHA1(14c450abcf9defa29c6f48e5ffd0b9d1e4a66a1d) , ROM_SKIP(7) )
+ ROMX_LOAD( "15.4g", 0x200006, 0x10000, CRC(3c2a212a) SHA1(f8fa0e0e2d09ea37c54d1c2493752b4e97e3f534) , ROM_SKIP(7) )
+ ROMX_LOAD( "24.7g", 0x200007, 0x10000, CRC(889aac05) SHA1(9301dcecee699e7f7672bb498122e1f4831ce536) , ROM_SKIP(7) )
+ ROMX_LOAD( "10.4b", 0x280000, 0x10000, CRC(bcc0f28c) SHA1(02f587aa4ae71631f27b0e3aaf1829cdded1bdc2) , ROM_SKIP(7) )
+ ROMX_LOAD( "19.7b", 0x280001, 0x10000, CRC(2a40166a) SHA1(dc4e75d7ed87ae5386d721a09113bba364740465) , ROM_SKIP(7) )
+ ROMX_LOAD( "14.4f", 0x280002, 0x10000, CRC(20f85c03) SHA1(86385139a9b42270aade758bfe338525936f5671) , ROM_SKIP(7) )
+ ROMX_LOAD( "23.7f", 0x280003, 0x10000, CRC(8426144b) SHA1(2dbf9625413b302fcdad5bef8733a9dfbfaead52) , ROM_SKIP(7) )
+ ROMX_LOAD( "12.4d", 0x280004, 0x10000, CRC(da088d61) SHA1(67229eff2827a42af97a60ceb252e132e7f307bc) , ROM_SKIP(7) )
+ ROMX_LOAD( "21.7d", 0x280005, 0x10000, CRC(17e11df0) SHA1(42fb15e9300b07fc5f4bc21744484869859b130c) , ROM_SKIP(7) )
+ ROMX_LOAD( "16.4h", 0x280006, 0x10000, CRC(f187ba1c) SHA1(6d9441d04ecef2a9d9c7a2cc7781acd7904c2061) , ROM_SKIP(7) )
+ ROMX_LOAD( "25.7h", 0x280007, 0x10000, CRC(29f79c78) SHA1(26000a58454a06c3016f99ebc3a79c52911a7070) , ROM_SKIP(7) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "26.10a", 0x00000, 0x08000, CRC(3692f6e5) SHA1(61b8438d60a39b4cf5062dff0a53228e8a4e4b5f) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", ROMREGION_ERASEFF ) /* Samples (not present) */
+
+ 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( "dm620.2a", 0x0000, 0x0117, CRC(f6e5f727) SHA1(8d38c458721347272ccc14b2c0e9885c4f891477) )
+ ROM_LOAD( "lwio.8i", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) )
+ROM_END
+
+/* B-Board 88620-B-2 */
+/* Note that ROMs are labeled left to right, top to bottom, instead of top to bottom, left to right as usual. */
+ROM_START( ghoulsu )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "dmu_29.10h", 0x00000, 0x20000, CRC(334d85b2) SHA1(89bacc28b7c799c7568420e3de5a99060baa7b0f) )
+ ROM_LOAD16_BYTE( "dmu_30.10j", 0x00001, 0x20000, CRC(cee8ceb5) SHA1(fc8db1ce0c143dfda0b5989d02d5e5a872e27cd2) )
+ ROM_LOAD16_BYTE( "dmu_27.9h", 0x40000, 0x20000, CRC(4a524140) SHA1(cebd651293c3570912d5506c1c223c39bcccc802) )
+ ROM_LOAD16_BYTE( "dmu_28.9j", 0x40001, 0x20000, CRC(94aae205) SHA1(514b3c1b9b0b22300a94229825c3be66332ea5ed) )
+ ROM_LOAD16_WORD( "dm-17.7j", 0x80000, 0x80000, CRC(3ea1b0f2) SHA1(c51f1c38cdaed77ad715cedd845617a291ab2441) )
+
+ ROM_REGION( 0x300000, "gfx", 0 )
+ ROMX_LOAD( "dm-05.3a", 0x000000, 0x80000, CRC(0ba9c0b0) SHA1(c4945b603115f32b7346d72426571dc2d361159f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "dm-07.3f", 0x000002, 0x80000, CRC(5d760ab9) SHA1(212176947933fcfef991bc80ad5bd91718689ffe) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "dm-06.3c", 0x000004, 0x80000, CRC(4ba90b59) SHA1(35bc9dec5ddbf064c30c951627581c16764456ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "dm-08.3g", 0x000006, 0x80000, CRC(4bdee9de) SHA1(7d0c4736f16577afe9966447a18f039728f6fbdf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "09.4a", 0x200000, 0x10000, CRC(ae24bb19) SHA1(aa91c6ffe657b878e10e4e930457b530f7bb529b) , ROM_SKIP(7) )
+ ROMX_LOAD( "18.7a", 0x200001, 0x10000, CRC(d34e271a) SHA1(55211fc2861dce32951f41624c9c99c09bf3b184) , ROM_SKIP(7) )
+ ROMX_LOAD( "13.4e", 0x200002, 0x10000, CRC(3f70dd37) SHA1(9ecb4dec9d131e9fca15ded7d71986a9fcb62c19) , ROM_SKIP(7) )
+ ROMX_LOAD( "22.7e", 0x200003, 0x10000, CRC(7e69e2e6) SHA1(4e0b4d2474beaa5c869c8f1a91893c79ac6e7f39) , ROM_SKIP(7) )
+ ROMX_LOAD( "11.4c", 0x200004, 0x10000, CRC(37c9b6c6) SHA1(b2bb82537e335339846dbf9588cfacfdbdd75ee6) , ROM_SKIP(7) )
+ ROMX_LOAD( "20.7c", 0x200005, 0x10000, CRC(2f1345b4) SHA1(14c450abcf9defa29c6f48e5ffd0b9d1e4a66a1d) , ROM_SKIP(7) )
+ ROMX_LOAD( "15.4g", 0x200006, 0x10000, CRC(3c2a212a) SHA1(f8fa0e0e2d09ea37c54d1c2493752b4e97e3f534) , ROM_SKIP(7) )
+ ROMX_LOAD( "24.7g", 0x200007, 0x10000, CRC(889aac05) SHA1(9301dcecee699e7f7672bb498122e1f4831ce536) , ROM_SKIP(7) )
+ ROMX_LOAD( "10.4b", 0x280000, 0x10000, CRC(bcc0f28c) SHA1(02f587aa4ae71631f27b0e3aaf1829cdded1bdc2) , ROM_SKIP(7) )
+ ROMX_LOAD( "19.7b", 0x280001, 0x10000, CRC(2a40166a) SHA1(dc4e75d7ed87ae5386d721a09113bba364740465) , ROM_SKIP(7) )
+ ROMX_LOAD( "14.4f", 0x280002, 0x10000, CRC(20f85c03) SHA1(86385139a9b42270aade758bfe338525936f5671) , ROM_SKIP(7) )
+ ROMX_LOAD( "23.7f", 0x280003, 0x10000, CRC(8426144b) SHA1(2dbf9625413b302fcdad5bef8733a9dfbfaead52) , ROM_SKIP(7) )
+ ROMX_LOAD( "12.4d", 0x280004, 0x10000, CRC(da088d61) SHA1(67229eff2827a42af97a60ceb252e132e7f307bc) , ROM_SKIP(7) )
+ ROMX_LOAD( "21.7d", 0x280005, 0x10000, CRC(17e11df0) SHA1(42fb15e9300b07fc5f4bc21744484869859b130c) , ROM_SKIP(7) )
+ ROMX_LOAD( "16.4h", 0x280006, 0x10000, CRC(f187ba1c) SHA1(6d9441d04ecef2a9d9c7a2cc7781acd7904c2061) , ROM_SKIP(7) )
+ ROMX_LOAD( "25.7h", 0x280007, 0x10000, CRC(29f79c78) SHA1(26000a58454a06c3016f99ebc3a79c52911a7070) , ROM_SKIP(7) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "26.10a", 0x00000, 0x08000, CRC(3692f6e5) SHA1(61b8438d60a39b4cf5062dff0a53228e8a4e4b5f) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", ROMREGION_ERASEFF ) /* Samples (not present) */
+
+ 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( "dm620.2a", 0x0000, 0x0117, CRC(f6e5f727) SHA1(8d38c458721347272ccc14b2c0e9885c4f891477) )
+ ROM_LOAD( "lwio.8i", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) )
+ROM_END
+
+/* B-Board 88622B-2 */
+/* Note that ROMs are labeled left to right, top to bottom, instead of top to bottom, left to right as usual. */
+ROM_START( daimakai )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "dmj_38.12f", 0x00000, 0x20000, CRC(82fd1798) SHA1(7a199384659d8e6602384b1953339f221d61a9e6) )
+ ROM_LOAD16_BYTE( "dmj_39.12h", 0x00001, 0x20000, CRC(35366ccc) SHA1(42c7004a641f34b9dd1333be51b50639a97e2be9) )
+ ROM_LOAD16_BYTE( "dmj_40.13f", 0x40000, 0x20000, CRC(a17c170a) SHA1(62a9cb65df90827334d453a98e826dc1bfc27136) )
+ ROM_LOAD16_BYTE( "dmj_41.13h", 0x40001, 0x20000, CRC(6af0b391) SHA1(5a2d74d207c04e24bcea7eeffa1c8b96b6df77e1) )
+ ROM_LOAD16_BYTE( "dm_33.10f", 0x80000, 0x20000, CRC(384d60c4) SHA1(258f9e2334b7240cf665b530f2c69b8826850687) ) // == dm-17.7j
+ ROM_LOAD16_BYTE( "dm_34.10h", 0x80001, 0x20000, CRC(19abe30f) SHA1(aea7d5c8357201b68dec70d7cc8f87dfb8fce207) ) // == dm-17.7j
+ ROM_LOAD16_BYTE( "dm_35.11f", 0xc0000, 0x20000, CRC(c04b85c8) SHA1(f8659624bb9d418d02f63f43478d3b53cfe18718) ) // == dm-17.7j
+ ROM_LOAD16_BYTE( "dm_36.11h", 0xc0001, 0x20000, CRC(89be83de) SHA1(6dfd1380304a85dee7cac4d0b2cfd7625b9020bf) ) // == dm-17.7j
+
+ ROM_REGION( 0x300000, "gfx", 0 )
+ ROMX_LOAD( "dm_02.4b", 0x000000, 0x20000, CRC(8b98dc48) SHA1(e827881e2ba5cccd907d1692a1945c1b75d46f12) , ROM_SKIP(7) ) // == dm-05.3a
+ ROMX_LOAD( "dm_01.4a", 0x000001, 0x20000, CRC(80896c33) SHA1(20ffc427c596828005e34cdd8e4efa0d332262e9) , ROM_SKIP(7) ) // == dm-05.3a
+ ROMX_LOAD( "dm_10.9b", 0x000002, 0x20000, CRC(c2e7d9ef) SHA1(52aae6cf373f8c7150833047be28b74dd5eb5af6) , ROM_SKIP(7) ) // == dm-07.3f
+ ROMX_LOAD( "dm_09.9a", 0x000003, 0x20000, CRC(c9c4afa5) SHA1(34571e3e49c86b87fa34eefbc5f9fe258aba5f1a) , ROM_SKIP(7) ) // == dm-07.3f
+ ROMX_LOAD( "dm_18.5e", 0x000004, 0x20000, CRC(1aa0db99) SHA1(69ac302b2f6f0b96f78cb57b0b4cdae464086262) , ROM_SKIP(7) ) // == dm-06.3c
+ ROMX_LOAD( "dm_17.5c", 0x000005, 0x20000, CRC(dc6ed8ad) SHA1(1ffc4a48a7ff9b542ab6f63a60bea3c1a7a6e63b) , ROM_SKIP(7) ) // == dm-06.3c
+ ROMX_LOAD( "dm_30.8h", 0x000006, 0x20000, CRC(d9d3f8bd) SHA1(6c6853a384f8d60ca46a0607fd47c76a83700fba) , ROM_SKIP(7) ) // == dm-08.3g
+ ROMX_LOAD( "dm_29.8f", 0x000007, 0x20000, CRC(49a48796) SHA1(76c18c684dba4aa91ee6caae0f38fe3e1cc50832) , ROM_SKIP(7) ) // == dm-08.3g
+ ROMX_LOAD( "dm_04.5b", 0x100000, 0x20000, CRC(a4f4f8f0) SHA1(edca0f61b40a18afe279f7007c233064130cfb4f) , ROM_SKIP(7) ) // == dm-05.3a
+ ROMX_LOAD( "dm_03.5a", 0x100001, 0x20000, CRC(b1033e62) SHA1(547fc281dd9e7a74ac86c3692508c7bde9b6167b) , ROM_SKIP(7) ) // == dm-05.3a
+ ROMX_LOAD( "dm_12.10b", 0x100002, 0x20000, CRC(10fdd76a) SHA1(aee774d6323292799dff7a30ef9559c92fe5507a) , ROM_SKIP(7) ) // == dm-07.3f
+ ROMX_LOAD( "dm_11.10a", 0x100003, 0x20000, CRC(9040cb04) SHA1(b32e9056fc20a5162868eade10f3ef5efc167a28) , ROM_SKIP(7) ) // == dm-07.3f
+ ROMX_LOAD( "dm_20.7e", 0x100004, 0x20000, CRC(281d0b3e) SHA1(70e1813de184ad0ec164145b7b843b5e387494e3) , ROM_SKIP(7) ) // == dm-06.3c
+ ROMX_LOAD( "dm_19.7c", 0x100005, 0x20000, CRC(2623b52f) SHA1(fc4200924452bfbff687934782398ed345dc0aa0) , ROM_SKIP(7) ) // == dm-06.3c
+ ROMX_LOAD( "dm_32.9h", 0x100006, 0x20000, CRC(99692344) SHA1(67dc70618568b7c0adcb00a612aaf5501f6c8c0f) , ROM_SKIP(7) ) // == dm-08.3g
+ ROMX_LOAD( "dm_31.9f", 0x100007, 0x20000, CRC(54acb729) SHA1(d1fca43db36253fd19db4337c49272a6cadff597) , ROM_SKIP(7) ) // == dm-08.3g
+ ROMX_LOAD( "dm_06.7b", 0x200000, 0x10000, CRC(ae24bb19) SHA1(aa91c6ffe657b878e10e4e930457b530f7bb529b) , ROM_SKIP(7) ) // == 09.4a
+ ROMX_LOAD( "dm_05.7a", 0x200001, 0x10000, CRC(d34e271a) SHA1(55211fc2861dce32951f41624c9c99c09bf3b184) , ROM_SKIP(7) ) // == 18.7a
+ ROMX_LOAD( "dm_14.11b", 0x200002, 0x10000, CRC(3f70dd37) SHA1(9ecb4dec9d131e9fca15ded7d71986a9fcb62c19) , ROM_SKIP(7) ) // == 13.4e
+ ROMX_LOAD( "dm_13.11a", 0x200003, 0x10000, CRC(7e69e2e6) SHA1(4e0b4d2474beaa5c869c8f1a91893c79ac6e7f39) , ROM_SKIP(7) ) // == 22.7e
+ ROMX_LOAD( "dm_22.8e", 0x200004, 0x10000, CRC(37c9b6c6) SHA1(b2bb82537e335339846dbf9588cfacfdbdd75ee6) , ROM_SKIP(7) ) // == 11.4c
+ ROMX_LOAD( "dm_21.8c", 0x200005, 0x10000, CRC(2f1345b4) SHA1(14c450abcf9defa29c6f48e5ffd0b9d1e4a66a1d) , ROM_SKIP(7) ) // == 20.7c
+ ROMX_LOAD( "dm_26.10e", 0x200006, 0x10000, CRC(3c2a212a) SHA1(f8fa0e0e2d09ea37c54d1c2493752b4e97e3f534) , ROM_SKIP(7) ) // == 15.4g
+ ROMX_LOAD( "dm_25.10c", 0x200007, 0x10000, CRC(889aac05) SHA1(9301dcecee699e7f7672bb498122e1f4831ce536) , ROM_SKIP(7) ) // == 24.7g
+ ROMX_LOAD( "dm_08.8b", 0x280000, 0x10000, CRC(bcc0f28c) SHA1(02f587aa4ae71631f27b0e3aaf1829cdded1bdc2) , ROM_SKIP(7) ) // == 10.4b
+ ROMX_LOAD( "dm_07.8a", 0x280001, 0x10000, CRC(2a40166a) SHA1(dc4e75d7ed87ae5386d721a09113bba364740465) , ROM_SKIP(7) ) // == 19.7b
+ ROMX_LOAD( "dm_16.12b", 0x280002, 0x10000, CRC(20f85c03) SHA1(86385139a9b42270aade758bfe338525936f5671) , ROM_SKIP(7) ) // == 14.4f
+ ROMX_LOAD( "dm_15.12a", 0x280003, 0x10000, CRC(8426144b) SHA1(2dbf9625413b302fcdad5bef8733a9dfbfaead52) , ROM_SKIP(7) ) // == 23.7f
+ ROMX_LOAD( "dm_24.9e", 0x280004, 0x10000, CRC(da088d61) SHA1(67229eff2827a42af97a60ceb252e132e7f307bc) , ROM_SKIP(7) ) // == 12.4d
+ ROMX_LOAD( "dm_23.9c", 0x280005, 0x10000, CRC(17e11df0) SHA1(42fb15e9300b07fc5f4bc21744484869859b130c) , ROM_SKIP(7) ) // == 21.7d
+ ROMX_LOAD( "dm_28.11e", 0x280006, 0x10000, CRC(f187ba1c) SHA1(6d9441d04ecef2a9d9c7a2cc7781acd7904c2061) , ROM_SKIP(7) ) // == 16.4h
+ ROMX_LOAD( "dm_27.11c", 0x280007, 0x10000, CRC(29f79c78) SHA1(26000a58454a06c3016f99ebc3a79c52911a7070) , ROM_SKIP(7) ) // == 25.7h
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "37.13c", 0x00000, 0x08000, CRC(3692f6e5) SHA1(61b8438d60a39b4cf5062dff0a53228e8a4e4b5f) ) // == 26.10a
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", ROMREGION_ERASEFF ) /* Samples (not present) */
+
+ 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( "dm22a.1a", 0x0000, 0x0117, NO_DUMP )
+ ROM_LOAD( "lwio.12c", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) )
+ROM_END
+
+/* B-Board 91634B-2, Japan Resale Ver. */
+ROM_START( daimakair )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "damj_23.8f", 0x00000, 0x80000, CRC(c3b248ec) SHA1(5c016d2dcf882b2a9564e3c4502a0f51ee3d1803) )
+ ROM_LOAD16_WORD_SWAP( "damj_22.7f", 0x80000, 0x80000, CRC(595ff2f3) SHA1(ac14b81e15f2c340526a03acbb4c28181d94d5b9) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "dam_01.3a", 0x000000, 0x80000, CRC(0ba9c0b0) SHA1(c4945b603115f32b7346d72426571dc2d361159f) , ROM_GROUPWORD | ROM_SKIP(6) ) // == dm-05.3a
+ ROMX_LOAD( "dam_02.4a", 0x000002, 0x80000, CRC(5d760ab9) SHA1(212176947933fcfef991bc80ad5bd91718689ffe) , ROM_GROUPWORD | ROM_SKIP(6) ) // == dm-07.3f
+ ROMX_LOAD( "dam_03.5a", 0x000004, 0x80000, CRC(4ba90b59) SHA1(35bc9dec5ddbf064c30c951627581c16764456ac) , ROM_GROUPWORD | ROM_SKIP(6) ) // == dm-06.3c
+ ROMX_LOAD( "dam_04.6a", 0x000006, 0x80000, CRC(4bdee9de) SHA1(7d0c4736f16577afe9966447a18f039728f6fbdf) , ROM_GROUPWORD | ROM_SKIP(6) ) // == dm-08.3g
+ ROMX_LOAD( "dam_05.7a", 0x200000, 0x80000, CRC(7dc61b94) SHA1(7796bae7555c541b3c80aacfa24788aeb2ccdfd5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "dam_06.8a", 0x200002, 0x80000, CRC(fde89758) SHA1(9a6192f629cd1e74e225ef7426338c2816c6b977) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "dam_07.9a", 0x200004, 0x80000, CRC(ec351d78) SHA1(1005a83be4b5577612143ae7f64ca4a08aae7959) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "dam_08.10a", 0x200006, 0x80000, CRC(ee2acc1e) SHA1(4628a9b2447266349d97132003992a21e2bb423a) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "dam_09.12a", 0x00000, 0x08000, CRC(0656ff53) SHA1(063a8124dbe73d014b11f72007f1b877afd1a661) ) // == 26.10a + garbage
+ ROM_CONTINUE( 0x10000, 0x18000 ) // second half of ROM is unused, not mapped in memory
+
+ ROM_REGION( 0x40000, "oki", ROMREGION_ERASEFF ) /* Samples (not present) */
+
+ 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( "dam63b.1a", 0x0000, 0x0117, CRC(474b3c8a) SHA1(da364581685067fc955ed43b982a7aa7a2648286) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 89624B-2 */
+ROM_START( strider )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "30.11f", 0x00000, 0x20000, CRC(da997474) SHA1(3e4ac98f9a6967d61899281b31c7de779723397b) )
+ ROM_LOAD16_BYTE( "35.11h", 0x00001, 0x20000, CRC(5463aaa3) SHA1(e2d07ec2d818e9a2e2d7a77ff0309ae4011c0083) )
+ ROM_LOAD16_BYTE( "31.12f", 0x40000, 0x20000, CRC(d20786db) SHA1(c9c75488e6bb37cfd0d56073faf87ff5713bc9a0) )
+ ROM_LOAD16_BYTE( "36.12h", 0x40001, 0x20000, CRC(21aa2863) SHA1(446dc9280630318deb423531210a4eedfb4adfa6) )
+ ROM_LOAD16_WORD_SWAP( "st-14.8h", 0x80000, 0x80000, CRC(9b3cfc08) SHA1(a7d7f270a097437affa845d80bed82a1fa874878) ) // in "32" socket
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "st-2.8a", 0x000000, 0x80000, CRC(4eee9aea) SHA1(5e619fd5f3f1181e32a8fd9dbb4661d74ff8a484) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "6" socket
+ ROMX_LOAD( "st-11.10a", 0x000002, 0x80000, CRC(2d7f21e4) SHA1(593cec513de40ff802084d54313bb25a4561e25d) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "8" socket
+ ROMX_LOAD( "st-5.4a", 0x000004, 0x80000, CRC(7705aa46) SHA1(6cbfa30b2852fd117d117beefba434ce41d24c2f) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket
+ ROMX_LOAD( "st-9.6a", 0x000006, 0x80000, CRC(5b18b722) SHA1(cf71c62348ca6b404279e87a6686cb3a842eb381) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket
+ ROMX_LOAD( "st-1.7a", 0x200000, 0x80000, CRC(005f000b) SHA1(e6f65af7cc3295be9efaaded352e7ae6320b4133) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "5" socket
+ ROMX_LOAD( "st-10.9a", 0x200002, 0x80000, CRC(b9441519) SHA1(bb0926dc484dae4f64c5e5a6bce20afdc7aeba55) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "7" socket
+ ROMX_LOAD( "st-4.3a", 0x200004, 0x80000, CRC(b7d04e8b) SHA1(5c5a079baa694927c33d0e0c23e5ff09d6c9d985) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket
+ ROMX_LOAD( "st-8.5a", 0x200006, 0x80000, CRC(6b4713b4) SHA1(759b8b1fc7a5c4b00d74a27c2dd11667db44b09e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket
+
+ ROM_REGION( 0x8000, "stars", 0 )
+ ROM_COPY( "gfx", 0x000000, 0x000000, 0x8000 )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "09.12b", 0x00000, 0x08000, CRC(2ed403bc) SHA1(4ce863ea40d789db5a7cfce91d2c7c720deb9be5) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "18.11c", 0x00000, 0x20000, CRC(4386bc80) SHA1(fb2b261995aeacfa13e7ee40b1a973dfb178f015) )
+ ROM_LOAD( "19.12c", 0x20000, 0x20000, CRC(444536d7) SHA1(a14f5de2f6b5b29ae5161dca1f8c08c566301a91) )
+
+ 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( "st24m1.1a", 0x0000, 0x0117, CRC(a80d357e) SHA1(4cb79c99c62c8300e694f4cd26f41dab7818f17f) )
+ ROM_LOAD( "lwio.11e", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) )
+ROM_END
+
+/* B-Board 89624B-3 */
+ROM_START( striderua )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "30.11f", 0x00000, 0x20000, CRC(66aec273) SHA1(576b1e9062874e68d68f8725949c151509eb6d56) ) /* different CRC from strider, pcb verified */
+ ROM_LOAD16_BYTE( "35.11h", 0x00001, 0x20000, CRC(50e0e865) SHA1(201ef385c228c124ed9412002233a501ea514efd) ) /* different CRC from strider, pcb verified */
+ ROM_LOAD16_BYTE( "31.12f", 0x40000, 0x20000, CRC(eae93bd1) SHA1(b320a00b67ea3c7fffc6c37d57863163975f7b80) ) /* different CRC from strider, pcb verified */
+ ROM_LOAD16_BYTE( "36.12h", 0x40001, 0x20000, CRC(b904a31d) SHA1(5509d1024151eb8548fd1b29e6c0c95775c61364) ) /* different CRC from strider, pcb verified */
+ ROM_LOAD16_WORD_SWAP( "st-14.8h", 0x80000, 0x80000, CRC(9b3cfc08) SHA1(a7d7f270a097437affa845d80bed82a1fa874878) ) // in "32" socket
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "st-2.8a", 0x000000, 0x80000, CRC(4eee9aea) SHA1(5e619fd5f3f1181e32a8fd9dbb4661d74ff8a484) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "6" socket
+ ROMX_LOAD( "st-11.10a", 0x000002, 0x80000, CRC(2d7f21e4) SHA1(593cec513de40ff802084d54313bb25a4561e25d) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "8" socket
+ ROMX_LOAD( "st-5.4a", 0x000004, 0x80000, CRC(7705aa46) SHA1(6cbfa30b2852fd117d117beefba434ce41d24c2f) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket
+ ROMX_LOAD( "st-9.6a", 0x000006, 0x80000, CRC(5b18b722) SHA1(cf71c62348ca6b404279e87a6686cb3a842eb381) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket
+ ROMX_LOAD( "st-1.7a", 0x200000, 0x80000, CRC(005f000b) SHA1(e6f65af7cc3295be9efaaded352e7ae6320b4133) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "5" socket
+ ROMX_LOAD( "st-10.9a", 0x200002, 0x80000, CRC(b9441519) SHA1(bb0926dc484dae4f64c5e5a6bce20afdc7aeba55) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "7" socket
+ ROMX_LOAD( "st-4.3a", 0x200004, 0x80000, CRC(b7d04e8b) SHA1(5c5a079baa694927c33d0e0c23e5ff09d6c9d985) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket
+ ROMX_LOAD( "st-8.5a", 0x200006, 0x80000, CRC(6b4713b4) SHA1(759b8b1fc7a5c4b00d74a27c2dd11667db44b09e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket
+
+ ROM_REGION( 0x8000, "stars", 0 )
+ ROM_COPY( "gfx", 0x000000, 0x000000, 0x8000 )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "09.12b", 0x00000, 0x08000, CRC(08d63519) SHA1(c120ecfe25c3c50bc51bc7d5a9ef1c8ca6591240) ) /* different CRC from strider, pcb verified */
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "18.11c", 0x00000, 0x20000, CRC(4386bc80) SHA1(fb2b261995aeacfa13e7ee40b1a973dfb178f015) )
+ ROM_LOAD( "19.12c", 0x20000, 0x20000, CRC(444536d7) SHA1(a14f5de2f6b5b29ae5161dca1f8c08c566301a91) )
+
+ 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( "st24b2.1a", 0x0000, 0x0117, NO_DUMP )
+ ROM_LOAD( "lwio.11e", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) )
+ROM_END
+
+// 90629B-3 PCB - Converted from an SF2 'inhouse' (but with no official labels etc.)
+// actually an incomplete conversion, layer enables are wrong in a number of places which causes the game to break even on real hardware.
+// this is essentially a Capcom made bootleg of a Capcom game.
+ROM_START( strideruc )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "34.8f", 0x000000, 0x80000, CRC(e0fb5657) SHA1(6c7f668220de80169feea35371aff363f67f7b0c) )
+ ROM_LOAD16_WORD_SWAP( "33.6f", 0x080000, 0x80000, CRC(9b3cfc08) SHA1(a7d7f270a097437affa845d80bed82a1fa874878) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "6.8a", 0x000000, 0x80000, CRC(4eee9aea) SHA1(5e619fd5f3f1181e32a8fd9dbb4661d74ff8a484) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "8.10a", 0x000002, 0x80000, CRC(2d7f21e4) SHA1(593cec513de40ff802084d54313bb25a4561e25d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "5.7a", 0x000004, 0x80000, CRC(7705aa46) SHA1(6cbfa30b2852fd117d117beefba434ce41d24c2f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "7.9a", 0x000006, 0x80000, CRC(5b18b722) SHA1(cf71c62348ca6b404279e87a6686cb3a842eb381) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "15.8c", 0x200000, 0x80000, CRC(005f000b) SHA1(e6f65af7cc3295be9efaaded352e7ae6320b4133) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "17.10c", 0x200002, 0x80000, CRC(b9441519) SHA1(bb0926dc484dae4f64c5e5a6bce20afdc7aeba55) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "14.7c", 0x200004, 0x80000, CRC(b7d04e8b) SHA1(5c5a079baa694927c33d0e0c23e5ff09d6c9d985) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "16.9c", 0x200006, 0x80000, CRC(6b4713b4) SHA1(759b8b1fc7a5c4b00d74a27c2dd11667db44b09e) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "9.12a", 0x00000, 0x08000, CRC(08d63519) SHA1(c120ecfe25c3c50bc51bc7d5a9ef1c8ca6591240) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "18.11c", 0x00000, 0x20000, CRC(4386bc80) SHA1(fb2b261995aeacfa13e7ee40b1a973dfb178f015) )
+ ROM_LOAD( "19.12c", 0x20000, 0x20000, CRC(444536d7) SHA1(a14f5de2f6b5b29ae5161dca1f8c08c566301a91) )
+
+ // which of these should we be using?
+ /*
+ ROM_REGION( 0x0200, "aboardplds", ROMREGION_ERASE00 )
+ 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", ROMREGION_ERASE00 )
+ ROM_LOAD( "stf29.1a", 0x0000, 0x0117, CRC(043309c5) SHA1(f6b9610c9f896c495041ba56a654776a521c356b) )
+ ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+
+ ROM_REGION( 0x0200, "cboardplds", ROMREGION_ERASE00 )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ */
+ROM_END
+
+/* B-Board 88622B-3 */
+ROM_START( striderj )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "sth_36.12f", 0x00000, 0x20000, CRC(53c7b006) SHA1(30daa256a32b209b907e5d916a82068017862a01) )
+ ROM_LOAD16_BYTE( "sth_42.12h", 0x00001, 0x20000, CRC(4037f65f) SHA1(490b9fb15f80772316101ea15e61ab32f42feaec) )
+ ROM_LOAD16_BYTE( "sth_37.13f", 0x40000, 0x20000, CRC(80e8877d) SHA1(806a62c03007efe6d58fb24dac467d4fc39bb96a) )
+ ROM_LOAD16_BYTE( "sth_43.13h", 0x40001, 0x20000, CRC(6b3fa466) SHA1(6a3c9bd491eecf864971f7fdf02d01112d5ef7dd) )
+ ROM_LOAD16_BYTE( "sth_34.10f", 0x80000, 0x20000, CRC(bea770b5) SHA1(b1d3111c8878708b6d0589d6bdfd3b380842d98b) ) // == st-14.8h
+ ROM_LOAD16_BYTE( "sth_40.10h", 0x80001, 0x20000, CRC(43b922dc) SHA1(441c932080ae2b19e3834e7173d46be2e8762119) ) // == st-14.8h
+ ROM_LOAD16_BYTE( "sth_35.11f", 0xc0000, 0x20000, CRC(5cc429da) SHA1(1d3593444d556fcb7b209ef254b7733cb32dc502) ) // == st-14.8h
+ ROM_LOAD16_BYTE( "sth_41.11h", 0xc0001, 0x20000, CRC(50af457f) SHA1(fb7248e41c09f137c929a2bd9ef17591f48b7009) ) // == st-14.8h
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "sth_09.4b", 0x000000, 0x20000, CRC(1ef6bfbd) SHA1(5e66168e2526b4b4569d9dabacd5602181b23874) , ROM_SKIP(7) ) // == st-2.8a
+ ROMX_LOAD( "sth_01.4a", 0x000001, 0x20000, CRC(1e21b0c1) SHA1(2ac543dccefa7e2438d7eb53cdf2e6aff09c735b) , ROM_SKIP(7) ) // == st-2.8a
+ ROMX_LOAD( "sth_13.9b", 0x000002, 0x20000, CRC(063263ae) SHA1(38ea256f9a0f3fd6786d21c8b540030b73742971) , ROM_SKIP(7) ) // == st-11.10a
+ ROMX_LOAD( "sth_05.9a", 0x000003, 0x20000, CRC(ec9f8714) SHA1(8eb2b92ad576849b8049f9c90b850f74c2a5cba2) , ROM_SKIP(7) ) // == st-11.10a
+ ROMX_LOAD( "sth_24.5e", 0x000004, 0x20000, CRC(6356f4d2) SHA1(8d6786e07dba3e59a609c1a13be8685e4fdb8879) , ROM_SKIP(7) ) // == st-5.4a
+ ROMX_LOAD( "sth_17.5c", 0x000005, 0x20000, CRC(b4f73d86) SHA1(0ffbcc93ce7eadfd29255a15bc5cbd6e24f98759) , ROM_SKIP(7) ) // == st-5.4a
+ ROMX_LOAD( "sth_38.8h", 0x000006, 0x20000, CRC(ee5abfc2) SHA1(1c162bc09991f1082b4d9d22fbce13f2c08e0ceb) , ROM_SKIP(7) ) // == st-9.6a
+ ROMX_LOAD( "sth_32.8f", 0x000007, 0x20000, CRC(44a206a3) SHA1(67ec4b9cf3ff181c8c4c4751a1d2e8ee8e56278a) , ROM_SKIP(7) ) // == st-9.6a
+ ROMX_LOAD( "sth_10.5b", 0x100000, 0x20000, CRC(df3dd3bc) SHA1(648218f94ecda25873103ac4e2d7132c79f1c5b2) , ROM_SKIP(7) ) // == st-2.8a
+ ROMX_LOAD( "sth_02.5a", 0x100001, 0x20000, CRC(c75f9ea0) SHA1(e9268bfa6f5254935fda726ab4b5d9acb0f1942a) , ROM_SKIP(7) ) // == st-2.8a
+ ROMX_LOAD( "sth_14.10b", 0x100002, 0x20000, CRC(6c03e19d) SHA1(83f892df551ea79534288643b07613a3c595d526) , ROM_SKIP(7) ) // == st-11.10a
+ ROMX_LOAD( "sth_06.10a", 0x100003, 0x20000, CRC(d84f5478) SHA1(c3812056ff2563a43d11746ec8327700f370a053) , ROM_SKIP(7) ) // == st-11.10a
+ ROMX_LOAD( "sth_25.7e", 0x100004, 0x20000, CRC(921e506a) SHA1(fd2b5e2121c2adedcb0325b4159273506dab27e8) , ROM_SKIP(7) ) // == st-5.4a
+ ROMX_LOAD( "sth_18.7c", 0x100005, 0x20000, CRC(5b318956) SHA1(b1415472bf45787219b3b7680057910b210d57f5) , ROM_SKIP(7) ) // == st-5.4a
+ ROMX_LOAD( "sth_39.9h", 0x100006, 0x20000, CRC(9321d6aa) SHA1(acec3c880d29692cf010540c120b9092d7dd8ce9) , ROM_SKIP(7) ) // == st-9.6a
+ ROMX_LOAD( "sth_33.9f", 0x100007, 0x20000, CRC(b47ddfc7) SHA1(12388c37abdde85d63305f86244fc3c07f8b6b0c) , ROM_SKIP(7) ) // == st-9.6a
+ ROMX_LOAD( "sth_11.7b", 0x200000, 0x20000, CRC(2484f241) SHA1(28c48526ec2577119cc3207e92138749124b5959) , ROM_SKIP(7) ) // == st-1.7a
+ ROMX_LOAD( "sth_03.7a", 0x200001, 0x20000, CRC(aaa07245) SHA1(64a1b75b7613c1949eee6f9ba865dbdd7ec34413) , ROM_SKIP(7) ) // == st-1.7a
+ ROMX_LOAD( "sth_15.11b", 0x200002, 0x20000, CRC(e415d943) SHA1(12069d02d3a6afa9241222b48420daaf97874271) , ROM_SKIP(7) ) // == st-10.9a
+ ROMX_LOAD( "sth_07.11a", 0x200003, 0x20000, CRC(97d072d2) SHA1(fb0e10464a878ec6c0f3e6c6ddb0ea542bfb87a8) , ROM_SKIP(7) ) // == st-10.9a
+ ROMX_LOAD( "sth_26.8e", 0x200004, 0x20000, CRC(0ebfcb02) SHA1(a7238e1c76dbc2de1b7ae0d2cc532170cd1ab6c2) , ROM_SKIP(7) ) // == st-4.3a
+ ROMX_LOAD( "sth_19.8c", 0x200005, 0x20000, CRC(257ce683) SHA1(762f22b5ba24864d69dda303310a310d8dbfcc1c) , ROM_SKIP(7) ) // == st-4.3a
+ ROMX_LOAD( "sth_28.10e", 0x200006, 0x20000, CRC(98ac8cd1) SHA1(53dbe418d5cb7af5ef4be91e5e6bcd4474d2fdfe) , ROM_SKIP(7) ) // == st-8.5a
+ ROMX_LOAD( "sth_21.10c", 0x200007, 0x20000, CRC(538d9423) SHA1(418ea54d6582723d3e568364787862a6df2d1523) , ROM_SKIP(7) ) // == st-8.5a
+ ROMX_LOAD( "sth_12.8b", 0x300000, 0x20000, CRC(f670a477) SHA1(de5154ca093a9e5f9adb836d9a933d14e939180d) , ROM_SKIP(7) ) // == st-1.7a
+ ROMX_LOAD( "sth_04.8a", 0x300001, 0x20000, CRC(853d3e01) SHA1(422cc9f539e79c2a9b3bda47eb1fc714d79838d1) , ROM_SKIP(7) ) // == st-1.7a
+ ROMX_LOAD( "sth_16.12b", 0x300002, 0x20000, CRC(4092019f) SHA1(2173e72a8325d12da70666bdc279409b23fb7024) , ROM_SKIP(7) ) // == st-10.9a
+ ROMX_LOAD( "sth_08.12a", 0x300003, 0x20000, CRC(2ce9b4c7) SHA1(f267d323c9310433852e3308b36100440bee33d7) , ROM_SKIP(7) ) // == st-10.9a
+ ROMX_LOAD( "sth_27.9e", 0x300004, 0x20000, CRC(f82c88d9) SHA1(200bd025800eb20c4a15af17e7c3effbfa6f00fa) , ROM_SKIP(7) ) // == st-4.3a
+ ROMX_LOAD( "sth_20.9c", 0x300005, 0x20000, CRC(eb584dd4) SHA1(aeee39c0fc9f234249253b14de88a8da494b18d0) , ROM_SKIP(7) ) // == st-4.3a
+ ROMX_LOAD( "sth_29.11e", 0x300006, 0x20000, CRC(34ae2997) SHA1(9449eb9c85b7cb4a12aa06cb65a9d849a528e633) , ROM_SKIP(7) ) // == st-8.5a
+ ROMX_LOAD( "sth_22.11c", 0x300007, 0x20000, CRC(78dd9c48) SHA1(35fbf3ca21f56c9899283ba08c89c0faf7a8f717) , ROM_SKIP(7) ) // == st-8.5a
+
+ ROM_REGION( 0x8000, "stars", 0 )
+ ROM_COPY( "gfx", 0x000000, 0x000000, 0x8000 )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sth_23.13c", 0x00000, 0x08000, CRC(2ed403bc) SHA1(4ce863ea40d789db5a7cfce91d2c7c720deb9be5) ) // == 09.12b
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "sth_30.12e", 0x00000, 0x20000, CRC(4386bc80) SHA1(fb2b261995aeacfa13e7ee40b1a973dfb178f015) ) // == 18.11c
+ ROM_LOAD( "sth_31.13e", 0x20000, 0x20000, CRC(444536d7) SHA1(a14f5de2f6b5b29ae5161dca1f8c08c566301a91) ) // == 19.12c
+
+ 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( "st22b.1a", 0x0000, 0x0117, CRC(68fecc55) SHA1(238f6781f972e834f2c6054cfe925ffec579dec3) )
+ ROM_LOAD( "lwio.12c", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) )
+ROM_END
+
+/* B-Board 91634B-2, Japan Resale Ver. */
+ROM_START( striderjr )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "sthj_23.8f", 0x00000, 0x80000, CRC(046e7b12) SHA1(a5761f730f6844a7e93556a6aeae76240a99540c) )
+ ROM_LOAD16_WORD_SWAP( "sthj_22.7f", 0x80000, 0x80000, CRC(9b3cfc08) SHA1(a7d7f270a097437affa845d80bed82a1fa874878) ) // == st-14.8h
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "sth_01.3a", 0x000000, 0x80000, CRC(4eee9aea) SHA1(5e619fd5f3f1181e32a8fd9dbb4661d74ff8a484) , ROM_GROUPWORD | ROM_SKIP(6) ) // == st-2.8a
+ ROMX_LOAD( "sth_02.4a", 0x000002, 0x80000, CRC(2d7f21e4) SHA1(593cec513de40ff802084d54313bb25a4561e25d) , ROM_GROUPWORD | ROM_SKIP(6) ) // == st-11.10a
+ ROMX_LOAD( "sth_03.5a", 0x000004, 0x80000, CRC(7705aa46) SHA1(6cbfa30b2852fd117d117beefba434ce41d24c2f) , ROM_GROUPWORD | ROM_SKIP(6) ) // == st-5.4a
+ ROMX_LOAD( "sth_04.6a", 0x000006, 0x80000, CRC(5b18b722) SHA1(cf71c62348ca6b404279e87a6686cb3a842eb381) , ROM_GROUPWORD | ROM_SKIP(6) ) // == st-9.6a
+ ROMX_LOAD( "sth_05.7a", 0x200000, 0x80000, CRC(005f000b) SHA1(e6f65af7cc3295be9efaaded352e7ae6320b4133) , ROM_GROUPWORD | ROM_SKIP(6) ) // == st-1.7a
+ ROMX_LOAD( "sth_06.8a", 0x200002, 0x80000, CRC(b9441519) SHA1(bb0926dc484dae4f64c5e5a6bce20afdc7aeba55) , ROM_GROUPWORD | ROM_SKIP(6) ) // == st-10.9a
+ ROMX_LOAD( "sth_07.9a", 0x200004, 0x80000, CRC(b7d04e8b) SHA1(5c5a079baa694927c33d0e0c23e5ff09d6c9d985) , ROM_GROUPWORD | ROM_SKIP(6) ) // == st-4.3a
+ ROMX_LOAD( "sth_08.10a", 0x200006, 0x80000, CRC(6b4713b4) SHA1(759b8b1fc7a5c4b00d74a27c2dd11667db44b09e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == st-8.5a
+
+ ROM_REGION( 0x8000, "stars", 0 )
+ ROM_COPY( "gfx", 0x000000, 0x000000, 0x8000 )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sth_09.12a", 0x00000, 0x08000, CRC(08d63519) SHA1(c120ecfe25c3c50bc51bc7d5a9ef1c8ca6591240) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "sth_18.11c", 0x00000, 0x20000, CRC(4386bc80) SHA1(fb2b261995aeacfa13e7ee40b1a973dfb178f015) )
+ ROM_LOAD( "sth_19.12c", 0x20000, 0x20000, CRC(444536d7) SHA1(a14f5de2f6b5b29ae5161dca1f8c08c566301a91) )
+
+ 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( "sth63b.1a", 0x0000, 0x0117, BAD_DUMP CRC(c706b773) SHA1(ddfe2e747637eec081a5125cfefcb478a4ba9e76) ) /* Handcrafted but works on actual PCB. Redump needed */
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 89624B-? */
+ROM_START( dynwar )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "30.11f", 0x00000, 0x20000, CRC(f9ec6d68) SHA1(02912db2b48f77489b0b841c2a5414bfb49b93f4) )
+ ROM_LOAD16_BYTE( "35.11h", 0x00001, 0x20000, CRC(e41fff2f) SHA1(a960c39c69f97b46d5efcbcd3e2bc652888094c4) )
+ ROM_LOAD16_BYTE( "31.12f", 0x40000, 0x20000, CRC(e3de76ff) SHA1(fdc552312e10c91dd00bfa72e4e686ac356d2244) )
+ ROM_LOAD16_BYTE( "36.12h", 0x40001, 0x20000, CRC(7a13cfbf) SHA1(c6b4d775a2e507fdefbb895cc75bb5bdb442218d) )
+ ROM_LOAD16_WORD_SWAP( "tkm-9.8h", 0x80000, 0x80000, CRC(93654bcf) SHA1(c72daeb2a98d350568555059a3225343c219a1d2) ) // in "32" socket
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tkm-5.7a", 0x000000, 0x80000, CRC(f64bb6a0) SHA1(8c0ae0305704ad876bb1938e46550c68b0de8e8e), ROM_GROUPWORD | ROM_SKIP(6) ) // in "5" socket
+ ROMX_LOAD( "tkm-8.9a", 0x000002, 0x80000, CRC(21fe6274) SHA1(f92e509d88d5e264be9c7812966d64ad9ac518e7), ROM_GROUPWORD | ROM_SKIP(6) ) // in "7" socket
+ ROMX_LOAD( "tkm-6.3a", 0x000004, 0x80000, CRC(0bf228cb) SHA1(e72957155cb459c4dee50df2e53256f271528964), ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket
+ ROMX_LOAD( "tkm-7.5a", 0x000006, 0x80000, CRC(1255dfb1) SHA1(c943e3c989d5b20fbe24e38e54ee8ca294b3d182), ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket
+ ROMX_LOAD( "tkm-1.8a", 0x200000, 0x80000, CRC(44f7661e) SHA1(f29b5ad0c5dfd91a56a4a1084ce578cfe496dd6f), ROM_GROUPWORD | ROM_SKIP(6) ) // in "6" socket
+ ROMX_LOAD( "tkm-4.10a", 0x200002, 0x80000, CRC(a54c515d) SHA1(bfa457cef7e29ae56ee9b10f60e233d82b4efc61), ROM_GROUPWORD | ROM_SKIP(6) ) // in "8" socket
+ ROMX_LOAD( "tkm-2.4a", 0x200004, 0x80000, CRC(ca5c687c) SHA1(de47cb5a071ffb3ff408f60d45b79345032232a7), ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket
+ ROMX_LOAD( "tkm-3.6a", 0x200006, 0x80000, CRC(f9fe6591) SHA1(260da5f9e305cccd621b8b5b2073c79e161ddeb0), ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "tke_17.12b", 0x00000, 0x08000, CRC(b3b79d4f) SHA1(2b960545741d3b9a53ffbf3ed83030392aa02698) ) // in "9" socket
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "tke_18.11c", 0x00000, 0x20000, CRC(ac6e307d) SHA1(b490ce625bb7ce0904b0fd121fbfbd5252790f7a) )
+ ROM_LOAD( "tke_19.12c", 0x20000, 0x20000, CRC(068741db) SHA1(ab48aff639a7ac218b7d5304145e10e92d61fd9f) )
+
+ 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( "tk24b1.1a", 0x0000, 0x0117, CRC(ae4a7645) SHA1(593478a177ea1794c9dfff07c6c6d8624a883eae) )
+ ROM_LOAD( "lwio.11e", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) ) // pal verification required
+ROM_END
+
+/* B-Board 88622B-3 */
+ROM_START( dynwara )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "tke_36.12f", 0x00000, 0x20000, CRC(895991d1) SHA1(56b105b85ccab1c49c89ae8d4aa55c9374077df0) )
+ ROM_LOAD16_BYTE( "tke_42.12h", 0x00001, 0x20000, CRC(c898d2e8) SHA1(c8b10685681bf155ea44e30f3cb0574df7d4f984) )
+ ROM_LOAD16_BYTE( "tke_37.13f", 0x40000, 0x20000, CRC(b228d58c) SHA1(99a1f42d930f788c4f9b410addc95173fda801a2) )
+ ROM_LOAD16_BYTE( "tke_43.13h", 0x40001, 0x20000, CRC(1a14375a) SHA1(2b1a62f7961dceabf98461266da37abfec13aaa9) )
+ ROM_LOAD16_BYTE( "34.10f", 0x80000, 0x20000, CRC(8f663d00) SHA1(77811783c87c7aee058b8533e34049a01047258a) ) // == tkm-9.8h
+ ROM_LOAD16_BYTE( "40.10h", 0x80001, 0x20000, CRC(1586dbf3) SHA1(d9f03e001effdef021a9ceda512e73a24726fca1) ) // == tkm-9.8h
+ ROM_LOAD16_BYTE( "35.11f", 0xc0000, 0x20000, CRC(9db93d7a) SHA1(f75e3fb5273baef0cd5d8eea26f07d5acaa743ca) ) // == tkm-9.8h
+ ROM_LOAD16_BYTE( "41.11h", 0xc0001, 0x20000, CRC(1aae69a4) SHA1(56e4761818f7857bc7520f2b8de90eabd857c577) ) // == tkm-9.8h
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "09.4b", 0x000000, 0x20000, CRC(c3e83c69) SHA1(bd361a39dc6428fea8f56ebbe5cdcc4bf63a51f0) , ROM_SKIP(7) ) // == tkm-5.7a
+ ROMX_LOAD( "01.4a", 0x000001, 0x20000, CRC(187b2886) SHA1(b16121f57926d9fd2c3bc82ae6babf6a2297f140) , ROM_SKIP(7) ) // == tkm-5.7a
+ ROMX_LOAD( "13.9b", 0x000002, 0x20000, CRC(0273d87d) SHA1(7803b04d72eedb4c8b39f63fea458cfef0034813) , ROM_SKIP(7) ) // == tkm-8.9a
+ ROMX_LOAD( "05.9a", 0x000003, 0x20000, CRC(339378b8) SHA1(c3dfe7039e4572b9ef56166346f3cbc6f6ab07c1) , ROM_SKIP(7) ) // == tkm-8.9a
+ ROMX_LOAD( "24.5e", 0x000004, 0x20000, CRC(c6909b6f) SHA1(2828bd6bdc8e3f87a4a37d4e20bdff86cb6850c9) , ROM_SKIP(7) ) // == tkm-6.3a
+ ROMX_LOAD( "17.5c", 0x000005, 0x20000, CRC(2e2f8320) SHA1(7bcb80447d9ce7cc9a38e2506196acd6bf50b49f) , ROM_SKIP(7) ) // == tkm-6.3a
+ ROMX_LOAD( "38.8h", 0x000006, 0x20000, CRC(cd7923ed) SHA1(29187b99847a4b56f2f1763d086b8e7dc5cebed7) , ROM_SKIP(7) ) // == tkm-7.5a
+ ROMX_LOAD( "32.8f", 0x000007, 0x20000, CRC(21a0a453) SHA1(ace38c5943f9f744212cfdb7caa2caa43312e82c) , ROM_SKIP(7) ) // == tkm-7.5a
+ ROMX_LOAD( "10.5b", 0x100000, 0x20000, CRC(ff28f8d0) SHA1(c8c4851816f17a4a0494164f5e8cc910f16669e8) , ROM_SKIP(7) ) // == tkm-5.7a
+ ROMX_LOAD( "02.5a", 0x100001, 0x20000, CRC(cc83c02f) SHA1(915e9d7acec1ba7a2035ae140f576839eba8694f) , ROM_SKIP(7) ) // == tkm-5.7a
+ ROMX_LOAD( "14.10b", 0x100002, 0x20000, CRC(58d9b32f) SHA1(c13a12afcb83159b284b95053951dfa1841bb612) , ROM_SKIP(7) ) // == tkm-8.9a
+ ROMX_LOAD( "06.10a", 0x100003, 0x20000, CRC(6f9edd75) SHA1(e8d43c0ec2165e88aefbb5c92048fbcd06fe578b) , ROM_SKIP(7) ) // == tkm-8.9a
+ ROMX_LOAD( "25.7e", 0x100004, 0x20000, CRC(152ea74a) SHA1(c0c56b1bdfa0d7fdea040dbcc6ff871e5957a5b6) , ROM_SKIP(7) ) // == tkm-6.3a
+ ROMX_LOAD( "18.7c", 0x100005, 0x20000, CRC(1833f932) SHA1(81f94d26bdb6758736ca02d7b1772801be4da181) , ROM_SKIP(7) ) // == tkm-6.3a
+ ROMX_LOAD( "39.9h", 0x100006, 0x20000, CRC(bc09b360) SHA1(de2c9a42490db79c8e5fe57b9107f1adbe5dd241) , ROM_SKIP(7) ) // == tkm-7.5a
+ ROMX_LOAD( "33.9f", 0x100007, 0x20000, CRC(89de1533) SHA1(e48312e37c0f98faeec91546acde5daf0da8f6b3) , ROM_SKIP(7) ) // == tkm-7.5a
+ ROMX_LOAD( "11.7b", 0x200000, 0x20000, CRC(29eaf490) SHA1(42fcb67c7014e0ad62cde9e77c79e61268647528) , ROM_SKIP(7) ) // == tkm-1.8a
+ ROMX_LOAD( "03.7a", 0x200001, 0x20000, CRC(7bf51337) SHA1(c21938029641ebcbc484680cf8a57186cdde220f) , ROM_SKIP(7) ) // == tkm-1.8a
+ ROMX_LOAD( "15.11b", 0x200002, 0x20000, CRC(d36cdb91) SHA1(66ab873ce285e857f30294dd1c9b1dda0c6c6b76) , ROM_SKIP(7) ) // == tkm-4.10a
+ ROMX_LOAD( "07.11a", 0x200003, 0x20000, CRC(e04af054) SHA1(f227b8a0a3d8f41e1922d184eaec7a1243c7c3af) , ROM_SKIP(7) ) // == tkm-4.10a
+ ROMX_LOAD( "26.8e", 0x200004, 0x20000, CRC(07fc714b) SHA1(eda97a3c5596ebdfa61bdd01d39647c89b9a2f13) , ROM_SKIP(7) ) // == tkm-2.4a
+ ROMX_LOAD( "19.8c", 0x200005, 0x20000, CRC(7114e5c6) SHA1(2f2925b942af50781857f4fe74e9a58f2cf7b883) , ROM_SKIP(7) ) // == tkm-2.4a
+ ROMX_LOAD( "28.10e", 0x200006, 0x20000, CRC(af62bf07) SHA1(a6e0f598de1fa8a4960e89d655b7514572ed6310) , ROM_SKIP(7) ) // == tkm-3.6a
+ ROMX_LOAD( "21.10c", 0x200007, 0x20000, CRC(523f462a) SHA1(b0fc9e29d6ca44aafb20a62355bde9f4b4cf1e43) , ROM_SKIP(7) ) // == tkm-3.6a
+ ROMX_LOAD( "12.8b", 0x300000, 0x20000, CRC(38652339) SHA1(930a035bbe34c81c26d774d2ab45f53a3a9205fb) , ROM_SKIP(7) ) // == tkm-1.8a
+ ROMX_LOAD( "04.8a", 0x300001, 0x20000, CRC(4951bc0f) SHA1(07f424c147d787321b668d787216733c35e2cff9) , ROM_SKIP(7) ) // == tkm-1.8a
+ ROMX_LOAD( "16.12b", 0x300002, 0x20000, CRC(381608ae) SHA1(666e15e61c7c59df5a97bdc2d77db611d60b3ca8) , ROM_SKIP(7) ) // == tkm-4.10a
+ ROMX_LOAD( "08.12a", 0x300003, 0x20000, CRC(b475d4e9) SHA1(dc5d223bc2a27904e6e38b68507d2e87fbbde158) , ROM_SKIP(7) ) // == tkm-4.10a
+ ROMX_LOAD( "27.9e", 0x300004, 0x20000, CRC(a27e81fa) SHA1(b25854d4a7e52d500c19445badb4cfe745d88d23) , ROM_SKIP(7) ) // == tkm-2.4a
+ ROMX_LOAD( "20.9c", 0x300005, 0x20000, CRC(002796dc) SHA1(2dba0434916dd82c59a66e2f3ce8d3165713c308) , ROM_SKIP(7) ) // == tkm-2.4a
+ ROMX_LOAD( "29.11e", 0x300006, 0x20000, CRC(6b41f82d) SHA1(111af606d8107d377e3af618584a75ed6cfc9bbd) , ROM_SKIP(7) ) // == tkm-3.6a
+ ROMX_LOAD( "22.11c", 0x300007, 0x20000, CRC(52145369) SHA1(bd422f0c51cdd62b69229f926569ad05d430bd57) , ROM_SKIP(7) ) // == tkm-3.6a
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "23.13c", 0x00000, 0x08000, CRC(b3b79d4f) SHA1(2b960545741d3b9a53ffbf3ed83030392aa02698) ) // == tke_17.12b
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "tke_30.12e", 0x00000, 0x20000, CRC(ac6e307d) SHA1(b490ce625bb7ce0904b0fd121fbfbd5252790f7a) ) // == tke_18.11c
+ ROM_LOAD( "tke_31.13e", 0x20000, 0x20000, CRC(068741db) SHA1(ab48aff639a7ac218b7d5304145e10e92d61fd9f) ) // == tke_19.12c
+
+ 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( "tk22b.1a", 0x0000, 0x0117, CRC(1a1ab6d7) SHA1(eacd3a21a09683e1d8ad36215c1f8ea96a1f7c12) )
+ ROM_LOAD( "lwio.12c", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) )
+ROM_END
+
+/* B-Board 88622B-3 */
+ROM_START( dynwarj )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "36.12f", 0x00000, 0x20000, CRC(1a516657) SHA1(f5c7c3bfd482eb59221cfd3eec4d47e717b04efa) )
+ ROM_LOAD16_BYTE( "42.12h", 0x00001, 0x20000, CRC(12a290a0) SHA1(29fd3f77c497ef8db48121301beab2862ca380b4) )
+ ROM_LOAD16_BYTE( "37.13f", 0x40000, 0x20000, CRC(932fc943) SHA1(1bd1c696072e61db791c075fae8936dece73d1d8) )
+ ROM_LOAD16_BYTE( "43.13h", 0x40001, 0x20000, CRC(872ad76d) SHA1(77cfb380dd358eb9e65894a026e0718918c5b68f) )
+ ROM_LOAD16_BYTE( "34.10f", 0x80000, 0x20000, CRC(8f663d00) SHA1(77811783c87c7aee058b8533e34049a01047258a) ) // == tkm-9.8h
+ ROM_LOAD16_BYTE( "40.10h", 0x80001, 0x20000, CRC(1586dbf3) SHA1(d9f03e001effdef021a9ceda512e73a24726fca1) ) // == tkm-9.8h
+ ROM_LOAD16_BYTE( "35.11f", 0xc0000, 0x20000, CRC(9db93d7a) SHA1(f75e3fb5273baef0cd5d8eea26f07d5acaa743ca) ) // == tkm-9.8h
+ ROM_LOAD16_BYTE( "41.11h", 0xc0001, 0x20000, CRC(1aae69a4) SHA1(56e4761818f7857bc7520f2b8de90eabd857c577) ) // == tkm-9.8h
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "09.4b", 0x000000, 0x20000, CRC(c3e83c69) SHA1(bd361a39dc6428fea8f56ebbe5cdcc4bf63a51f0) , ROM_SKIP(7) ) // == tkm-5.7a
+ ROMX_LOAD( "01.4a", 0x000001, 0x20000, CRC(187b2886) SHA1(b16121f57926d9fd2c3bc82ae6babf6a2297f140) , ROM_SKIP(7) ) // == tkm-5.7a
+ ROMX_LOAD( "13.9b", 0x000002, 0x20000, CRC(0273d87d) SHA1(7803b04d72eedb4c8b39f63fea458cfef0034813) , ROM_SKIP(7) ) // == tkm-8.9a
+ ROMX_LOAD( "05.9a", 0x000003, 0x20000, CRC(339378b8) SHA1(c3dfe7039e4572b9ef56166346f3cbc6f6ab07c1) , ROM_SKIP(7) ) // == tkm-8.9a
+ ROMX_LOAD( "24.5e", 0x000004, 0x20000, CRC(c6909b6f) SHA1(2828bd6bdc8e3f87a4a37d4e20bdff86cb6850c9) , ROM_SKIP(7) ) // == tkm-6.3a
+ ROMX_LOAD( "17.5c", 0x000005, 0x20000, CRC(2e2f8320) SHA1(7bcb80447d9ce7cc9a38e2506196acd6bf50b49f) , ROM_SKIP(7) ) // == tkm-6.3a
+ ROMX_LOAD( "38.8h", 0x000006, 0x20000, CRC(cd7923ed) SHA1(29187b99847a4b56f2f1763d086b8e7dc5cebed7) , ROM_SKIP(7) ) // == tkm-7.5a
+ ROMX_LOAD( "32.8f", 0x000007, 0x20000, CRC(21a0a453) SHA1(ace38c5943f9f744212cfdb7caa2caa43312e82c) , ROM_SKIP(7) ) // == tkm-7.5a
+ ROMX_LOAD( "10.5b", 0x100000, 0x20000, CRC(ff28f8d0) SHA1(c8c4851816f17a4a0494164f5e8cc910f16669e8) , ROM_SKIP(7) ) // == tkm-5.7a
+ ROMX_LOAD( "02.5a", 0x100001, 0x20000, CRC(cc83c02f) SHA1(915e9d7acec1ba7a2035ae140f576839eba8694f) , ROM_SKIP(7) ) // == tkm-5.7a
+ ROMX_LOAD( "14.10b", 0x100002, 0x20000, CRC(18fb232c) SHA1(c690ca668a56c756c04ef5db4900eb3fd34897e7) , ROM_SKIP(7) ) /* 1 byte different from dynwara, pcb verified */
+ ROMX_LOAD( "06.10a", 0x100003, 0x20000, CRC(6f9edd75) SHA1(e8d43c0ec2165e88aefbb5c92048fbcd06fe578b) , ROM_SKIP(7) ) // == tkm-8.9a
+ ROMX_LOAD( "25.7e", 0x100004, 0x20000, CRC(152ea74a) SHA1(c0c56b1bdfa0d7fdea040dbcc6ff871e5957a5b6) , ROM_SKIP(7) ) // == tkm-6.3a
+ ROMX_LOAD( "18.7c", 0x100005, 0x20000, CRC(1833f932) SHA1(81f94d26bdb6758736ca02d7b1772801be4da181) , ROM_SKIP(7) ) // == tkm-6.3a
+ ROMX_LOAD( "39.9h", 0x100006, 0x20000, CRC(bc09b360) SHA1(de2c9a42490db79c8e5fe57b9107f1adbe5dd241) , ROM_SKIP(7) ) // == tkm-7.5a
+ ROMX_LOAD( "33.9f", 0x100007, 0x20000, CRC(89de1533) SHA1(e48312e37c0f98faeec91546acde5daf0da8f6b3) , ROM_SKIP(7) ) // == tkm-7.5a
+ ROMX_LOAD( "11.7b", 0x200000, 0x20000, CRC(29eaf490) SHA1(42fcb67c7014e0ad62cde9e77c79e61268647528) , ROM_SKIP(7) ) // == tkm-1.8a
+ ROMX_LOAD( "03.7a", 0x200001, 0x20000, CRC(7bf51337) SHA1(c21938029641ebcbc484680cf8a57186cdde220f) , ROM_SKIP(7) ) // == tkm-1.8a
+ ROMX_LOAD( "15.11b", 0x200002, 0x20000, CRC(d36cdb91) SHA1(66ab873ce285e857f30294dd1c9b1dda0c6c6b76) , ROM_SKIP(7) ) // == tkm-4.10a
+ ROMX_LOAD( "07.11a", 0x200003, 0x20000, CRC(e04af054) SHA1(f227b8a0a3d8f41e1922d184eaec7a1243c7c3af) , ROM_SKIP(7) ) // == tkm-4.10a
+ ROMX_LOAD( "26.8e", 0x200004, 0x20000, CRC(07fc714b) SHA1(eda97a3c5596ebdfa61bdd01d39647c89b9a2f13) , ROM_SKIP(7) ) // == tkm-2.4a
+ ROMX_LOAD( "19.8c", 0x200005, 0x20000, CRC(7114e5c6) SHA1(2f2925b942af50781857f4fe74e9a58f2cf7b883) , ROM_SKIP(7) ) // == tkm-2.4a
+ ROMX_LOAD( "28.10e", 0x200006, 0x20000, CRC(af62bf07) SHA1(a6e0f598de1fa8a4960e89d655b7514572ed6310) , ROM_SKIP(7) ) // == tkm-3.6a
+ ROMX_LOAD( "21.10c", 0x200007, 0x20000, CRC(523f462a) SHA1(b0fc9e29d6ca44aafb20a62355bde9f4b4cf1e43) , ROM_SKIP(7) ) // == tkm-3.6a
+ ROMX_LOAD( "12.8b", 0x300000, 0x20000, CRC(38652339) SHA1(930a035bbe34c81c26d774d2ab45f53a3a9205fb) , ROM_SKIP(7) ) // == tkm-1.8a
+ ROMX_LOAD( "04.8a", 0x300001, 0x20000, CRC(4951bc0f) SHA1(07f424c147d787321b668d787216733c35e2cff9) , ROM_SKIP(7) ) // == tkm-1.8a
+ ROMX_LOAD( "16.12b", 0x300002, 0x20000, CRC(381608ae) SHA1(666e15e61c7c59df5a97bdc2d77db611d60b3ca8) , ROM_SKIP(7) ) // == tkm-4.10a
+ ROMX_LOAD( "08.12a", 0x300003, 0x20000, CRC(b475d4e9) SHA1(dc5d223bc2a27904e6e38b68507d2e87fbbde158) , ROM_SKIP(7) ) // == tkm-4.10a
+ ROMX_LOAD( "27.9e", 0x300004, 0x20000, CRC(a27e81fa) SHA1(b25854d4a7e52d500c19445badb4cfe745d88d23) , ROM_SKIP(7) ) // == tkm-2.4a
+ ROMX_LOAD( "20.9c", 0x300005, 0x20000, CRC(002796dc) SHA1(2dba0434916dd82c59a66e2f3ce8d3165713c308) , ROM_SKIP(7) ) // == tkm-2.4a
+ ROMX_LOAD( "29.11e", 0x300006, 0x20000, CRC(6b41f82d) SHA1(111af606d8107d377e3af618584a75ed6cfc9bbd) , ROM_SKIP(7) ) // == tkm-3.6a
+ ROMX_LOAD( "22.11c", 0x300007, 0x20000, CRC(52145369) SHA1(bd422f0c51cdd62b69229f926569ad05d430bd57) , ROM_SKIP(7) ) // == tkm-3.6a
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "23.13c", 0x00000, 0x08000, CRC(b3b79d4f) SHA1(2b960545741d3b9a53ffbf3ed83030392aa02698) ) // == tke_17.12b
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "30.12e", 0x00000, 0x20000, CRC(7e5f6cb4) SHA1(c7b6b7d6dfe5f9f0e1521e7ce990229f480cf68d) )
+ ROM_LOAD( "31.13e", 0x20000, 0x20000, CRC(4a30c737) SHA1(426eb90f2edf73eb468c94b4a094da3d46acbab2) )
+
+ 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( "tk22b.1a", 0x0000, 0x0117, CRC(1a1ab6d7) SHA1(eacd3a21a09683e1d8ad36215c1f8ea96a1f7c12) )
+ ROM_LOAD( "lwio.12c", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) )
+ROM_END
+
+/* B-Board 91634B-2, Japan Resale Ver. */
+ROM_START( dynwarjr )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "tk1j_23.8f", 0x00000, 0x80000, CRC(088a3009) SHA1(d4c8273d19291d278d2ff895712dfbd8dfda6c84) )
+ ROM_LOAD16_WORD_SWAP( "tk1j_22.7f", 0x80000, 0x80000, CRC(93654bcf) SHA1(c72daeb2a98d350568555059a3225343c219a1d2) ) // == tkm-9.8h
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk1_01.3a", 0x000000, 0x80000, CRC(f64bb6a0) SHA1(8c0ae0305704ad876bb1938e46550c68b0de8e8e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tkm-5.7a
+ ROMX_LOAD( "tk1_02.4a", 0x000002, 0x80000, CRC(21fe6274) SHA1(f92e509d88d5e264be9c7812966d64ad9ac518e7) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tkm-8.9a
+ ROMX_LOAD( "tk1_03.5a", 0x000004, 0x80000, CRC(0bf228cb) SHA1(e72957155cb459c4dee50df2e53256f271528964) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tkm-6.3a
+ ROMX_LOAD( "tk1_04.6a", 0x000006, 0x80000, CRC(1255dfb1) SHA1(c943e3c989d5b20fbe24e38e54ee8ca294b3d182) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tkm-7.5a
+ ROMX_LOAD( "tk1_05.7a", 0x200000, 0x80000, CRC(44f7661e) SHA1(f29b5ad0c5dfd91a56a4a1084ce578cfe496dd6f) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tkm-1.8a
+ ROMX_LOAD( "tk1_06.8a", 0x200002, 0x80000, CRC(a54c515d) SHA1(bfa457cef7e29ae56ee9b10f60e233d82b4efc61) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tkm-4.10a
+ ROMX_LOAD( "tk1_07.9a", 0x200004, 0x80000, CRC(ca5c687c) SHA1(de47cb5a071ffb3ff408f60d45b79345032232a7) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tkm-2.4a
+ ROMX_LOAD( "tk1_08.10a", 0x200006, 0x80000, CRC(f9fe6591) SHA1(260da5f9e305cccd621b8b5b2073c79e161ddeb0) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tkm-3.6a
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "tk1_09.12a", 0x00000, 0x08000, CRC(db77d899) SHA1(314a8134ed15f603f1c7894fd50b14aef5c9fc7a) )
+ ROM_CONTINUE( 0x10000, 0x18000 ) // second half of ROM is empty, not mapped in memory
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "tk1_18.11c", 0x00000, 0x20000, CRC(7e5f6cb4) SHA1(c7b6b7d6dfe5f9f0e1521e7ce990229f480cf68d) )
+ ROM_LOAD( "tk1_19.12c", 0x20000, 0x20000, CRC(4a30c737) SHA1(426eb90f2edf73eb468c94b4a094da3d46acbab2) )
+
+ 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( "tk163b.1a", 0x0000, 0x0117, NO_DUMP )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 89624B-3 */
+ROM_START( willow )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "wle_30.11f", 0x00000, 0x20000, CRC(15372aa2) SHA1(ba8e1984180b0438255dfc68dc4eb560f3ecbe56) )
+ ROM_LOAD16_BYTE( "wle_35.11h", 0x00001, 0x20000, CRC(2e64623b) SHA1(473f6fd10b2456553f1cbf92fd9a61ce94b1c59f) )
+ ROM_LOAD16_BYTE( "wlu_31.12f", 0x40000, 0x20000, CRC(0eb48a83) SHA1(28c40c4b5d767f88922cd899e948abf11a85a864) )
+ ROM_LOAD16_BYTE( "wlu_36.12h", 0x40001, 0x20000, CRC(36100209) SHA1(63c9338e71dba8b52daffba50b4bca31aaa10d9e) )
+ ROM_LOAD16_WORD_SWAP( "wlm-32.8h", 0x80000, 0x80000, CRC(dfd9f643) SHA1(9c760c30af593a87e7fd39fb213a4c73c68ca440) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "wlm-7.7a", 0x000000, 0x80000, CRC(afa74b73) SHA1(09081926260c76986a13ac5351dddd2ea11d7a10) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "5" socket
+ ROMX_LOAD( "wlm-5.9a", 0x000002, 0x80000, CRC(12a0dc0b) SHA1(fea235ce9489f04919daf52f4d3f3bac9b558316) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "7" socket
+ ROMX_LOAD( "wlm-3.3a", 0x000004, 0x80000, CRC(c6f2abce) SHA1(ff5fcfe417c43b4747bbe12db6052fdb60f5f0e4) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket
+ ROMX_LOAD( "wlm-1.5a", 0x000006, 0x80000, CRC(4aa4c6d3) SHA1(7dd6f18f6126c380821a2ca8955439fd6864f4c6) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket
+ ROMX_LOAD( "wl_24.7d", 0x200000, 0x20000, CRC(6f0adee5) SHA1(07b18e51b376001f25173b78e0e816f252400210) , ROM_SKIP(7) )
+ ROMX_LOAD( "wl_14.7c", 0x200001, 0x20000, CRC(9cf3027d) SHA1(1e8eb20d51a54f6f756c0ab9395ac38b96e67fb2) , ROM_SKIP(7) )
+ ROMX_LOAD( "wl_26.9d", 0x200002, 0x20000, CRC(f09c8ecf) SHA1(b39f83e80af010d6481693d9ec8b1d7e258b531d) , ROM_SKIP(7) )
+ ROMX_LOAD( "wl_16.9c", 0x200003, 0x20000, CRC(e35407aa) SHA1(7ddae9cef96839da72488c1fe73268c50e0262ff) , ROM_SKIP(7) )
+ ROMX_LOAD( "wl_20.3d", 0x200004, 0x20000, CRC(84992350) SHA1(f0ebd810ce099337cda94222dccce8ab9b3c3281) , ROM_SKIP(7) )
+ ROMX_LOAD( "wl_10.3c", 0x200005, 0x20000, CRC(b87b5a36) SHA1(25fb8f9698142473233ee509d4146089920e94e1) , ROM_SKIP(7) )
+ ROMX_LOAD( "wl_22.5d", 0x200006, 0x20000, CRC(fd3f89f0) SHA1(51ff95cff56ac78682ea56401b35a0aa63cef8cb) , ROM_SKIP(7) )
+ ROMX_LOAD( "wl_12.5c", 0x200007, 0x20000, CRC(7da49d69) SHA1(b0ae7ac4f858ee8d72e6877c4275da7a631e2e4c) , ROM_SKIP(7) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "wl_09.12b", 0x00000, 0x08000, CRC(f6b3d060) SHA1(0ed2e2f64ba53ba2c371b66ab1e52e40b16d8baf) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "wl_18.11c", 0x00000, 0x20000, CRC(bde23d4d) SHA1(d1fee2f99c858dfb07edcd600da491c7b656afe0) )
+ ROM_LOAD( "wl_19.12c", 0x20000, 0x20000, CRC(683898f5) SHA1(316a77b663d78c8b9ff6d85756cb05aaaeef4003) )
+
+ 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( "wl24b.1a", 0x0000, 0x0117, CRC(7101cdf1) SHA1(c848f109d09641b3159dbbb2d2ee49cf30bc9e9c) )
+ ROM_LOAD( "lwio.11e", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) )
+ROM_END
+
+/* B-Board 89624B-3 */
+ROM_START( willowu )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "wlu_30.11f", 0x00000, 0x20000, CRC(d604dbb1) SHA1(b5d78871011ff11a67f1a0cad147cd4de8d67f35) )
+ ROM_LOAD16_BYTE( "35.11h", 0x00001, 0x20000, CRC(7a791e77) SHA1(fe1429588b7eceab1d369abe03f2cad8de727f71) )
+ ROM_LOAD16_BYTE( "wlu_31.12f", 0x40000, 0x20000, CRC(0eb48a83) SHA1(28c40c4b5d767f88922cd899e948abf11a85a864) )
+ ROM_LOAD16_BYTE( "wlu_36.12h", 0x40001, 0x20000, CRC(36100209) SHA1(63c9338e71dba8b52daffba50b4bca31aaa10d9e) ) /* seen the same pcb with WL_36.12H */
+ ROM_LOAD16_WORD_SWAP( "wlm-32.8h", 0x80000, 0x80000, CRC(dfd9f643) SHA1(9c760c30af593a87e7fd39fb213a4c73c68ca440) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "wlm-7.7a", 0x000000, 0x80000, CRC(afa74b73) SHA1(09081926260c76986a13ac5351dddd2ea11d7a10) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "5" socket
+ ROMX_LOAD( "wlm-5.9a", 0x000002, 0x80000, CRC(12a0dc0b) SHA1(fea235ce9489f04919daf52f4d3f3bac9b558316) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "7" socket
+ ROMX_LOAD( "wlm-3.3a", 0x000004, 0x80000, CRC(c6f2abce) SHA1(ff5fcfe417c43b4747bbe12db6052fdb60f5f0e4) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket
+ ROMX_LOAD( "wlm-1.5a", 0x000006, 0x80000, CRC(4aa4c6d3) SHA1(7dd6f18f6126c380821a2ca8955439fd6864f4c6) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket
+ ROMX_LOAD( "wl_24.7d", 0x200000, 0x20000, CRC(6f0adee5) SHA1(07b18e51b376001f25173b78e0e816f252400210) , ROM_SKIP(7) )
+ ROMX_LOAD( "wl_14.7c", 0x200001, 0x20000, CRC(9cf3027d) SHA1(1e8eb20d51a54f6f756c0ab9395ac38b96e67fb2) , ROM_SKIP(7) )
+ ROMX_LOAD( "wl_26.9d", 0x200002, 0x20000, CRC(f09c8ecf) SHA1(b39f83e80af010d6481693d9ec8b1d7e258b531d) , ROM_SKIP(7) )
+ ROMX_LOAD( "wl_16.9c", 0x200003, 0x20000, CRC(e35407aa) SHA1(7ddae9cef96839da72488c1fe73268c50e0262ff) , ROM_SKIP(7) )
+ ROMX_LOAD( "wl_20.3d", 0x200004, 0x20000, CRC(84992350) SHA1(f0ebd810ce099337cda94222dccce8ab9b3c3281) , ROM_SKIP(7) )
+ ROMX_LOAD( "wl_10.3c", 0x200005, 0x20000, CRC(b87b5a36) SHA1(25fb8f9698142473233ee509d4146089920e94e1) , ROM_SKIP(7) )
+ ROMX_LOAD( "wl_22.5d", 0x200006, 0x20000, CRC(fd3f89f0) SHA1(51ff95cff56ac78682ea56401b35a0aa63cef8cb) , ROM_SKIP(7) )
+ ROMX_LOAD( "wl_12.5c", 0x200007, 0x20000, CRC(7da49d69) SHA1(b0ae7ac4f858ee8d72e6877c4275da7a631e2e4c) , ROM_SKIP(7) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "wl_09.12b", 0x00000, 0x08000, CRC(f6b3d060) SHA1(0ed2e2f64ba53ba2c371b66ab1e52e40b16d8baf) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "wl_18.11c", 0x00000, 0x20000, CRC(bde23d4d) SHA1(d1fee2f99c858dfb07edcd600da491c7b656afe0) )
+ ROM_LOAD( "wl_19.12c", 0x20000, 0x20000, CRC(683898f5) SHA1(316a77b663d78c8b9ff6d85756cb05aaaeef4003) )
+
+ 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( "wl24b.1a", 0x0000, 0x0117, CRC(7101cdf1) SHA1(c848f109d09641b3159dbbb2d2ee49cf30bc9e9c) )
+ ROM_LOAD( "lwio.11e", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) )
+ROM_END
+
+/* B-Board 89624B-3 */
+/* Note that this set comes from a pcb running on an original Capcom USA Willow arcade cabinet, so even if there is
+ the Japan "warning" it's confirmed to be a genuine USA set and almost certainly the first USA release. Then Capcom
+ removed the incorrect "warning" releasing a new proper set of Willow (USA), as documented above. */
+ROM_START( willowuo )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "wlu_30.11f", 0x00000, 0x20000, CRC(d604dbb1) SHA1(b5d78871011ff11a67f1a0cad147cd4de8d67f35) )
+ ROM_LOAD16_BYTE( "wlu_35.11h", 0x00001, 0x20000, CRC(daee72fe) SHA1(2ec62f44394fac2887821881f56b6f24d05234b3) )
+ ROM_LOAD16_BYTE( "wlu_31.12f", 0x40000, 0x20000, CRC(0eb48a83) SHA1(28c40c4b5d767f88922cd899e948abf11a85a864) )
+ ROM_LOAD16_BYTE( "wlu_36.12h", 0x40001, 0x20000, CRC(36100209) SHA1(63c9338e71dba8b52daffba50b4bca31aaa10d9e) )
+ ROM_LOAD16_WORD_SWAP( "wlm-32.8h", 0x80000, 0x80000, CRC(dfd9f643) SHA1(9c760c30af593a87e7fd39fb213a4c73c68ca440) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "wlm-7.7a", 0x000000, 0x80000, CRC(afa74b73) SHA1(09081926260c76986a13ac5351dddd2ea11d7a10) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "5" socket
+ ROMX_LOAD( "wlm-5.9a", 0x000002, 0x80000, CRC(12a0dc0b) SHA1(fea235ce9489f04919daf52f4d3f3bac9b558316) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "7" socket
+ ROMX_LOAD( "wlm-3.3a", 0x000004, 0x80000, CRC(c6f2abce) SHA1(ff5fcfe417c43b4747bbe12db6052fdb60f5f0e4) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket
+ ROMX_LOAD( "wlm-1.5a", 0x000006, 0x80000, CRC(4aa4c6d3) SHA1(7dd6f18f6126c380821a2ca8955439fd6864f4c6) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket
+ ROMX_LOAD( "wl_24.7d", 0x200000, 0x20000, CRC(6f0adee5) SHA1(07b18e51b376001f25173b78e0e816f252400210) , ROM_SKIP(7) )
+ ROMX_LOAD( "wl_14.7c", 0x200001, 0x20000, CRC(9cf3027d) SHA1(1e8eb20d51a54f6f756c0ab9395ac38b96e67fb2) , ROM_SKIP(7) )
+ ROMX_LOAD( "wl_26.9d", 0x200002, 0x20000, CRC(f09c8ecf) SHA1(b39f83e80af010d6481693d9ec8b1d7e258b531d) , ROM_SKIP(7) )
+ ROMX_LOAD( "wl_16.9c", 0x200003, 0x20000, CRC(e35407aa) SHA1(7ddae9cef96839da72488c1fe73268c50e0262ff) , ROM_SKIP(7) )
+ ROMX_LOAD( "wl_20.3d", 0x200004, 0x20000, CRC(84992350) SHA1(f0ebd810ce099337cda94222dccce8ab9b3c3281) , ROM_SKIP(7) )
+ ROMX_LOAD( "wl_10.3c", 0x200005, 0x20000, CRC(b87b5a36) SHA1(25fb8f9698142473233ee509d4146089920e94e1) , ROM_SKIP(7) )
+ ROMX_LOAD( "wl_22.5d", 0x200006, 0x20000, CRC(fd3f89f0) SHA1(51ff95cff56ac78682ea56401b35a0aa63cef8cb) , ROM_SKIP(7) )
+ ROMX_LOAD( "wl_12.5c", 0x200007, 0x20000, CRC(7da49d69) SHA1(b0ae7ac4f858ee8d72e6877c4275da7a631e2e4c) , ROM_SKIP(7) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "wl_09.12b", 0x00000, 0x08000, CRC(f6b3d060) SHA1(0ed2e2f64ba53ba2c371b66ab1e52e40b16d8baf) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "wl_18.11c", 0x00000, 0x20000, CRC(bde23d4d) SHA1(d1fee2f99c858dfb07edcd600da491c7b656afe0) )
+ ROM_LOAD( "wl_19.12c", 0x20000, 0x20000, CRC(683898f5) SHA1(316a77b663d78c8b9ff6d85756cb05aaaeef4003) )
+
+ 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( "wl24b.1a", 0x0000, 0x0117, CRC(7101cdf1) SHA1(c848f109d09641b3159dbbb2d2ee49cf30bc9e9c) )
+ ROM_LOAD( "lwio.11e", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) )
+ROM_END
+
+/* B-Board 88622B-3 */
+ROM_START( willowj )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "wl_36.12f", 0x00000, 0x20000, CRC(2b0d7cbc) SHA1(58172b4fdf856efa8d77abbde76738de2424f712) )
+ ROM_LOAD16_BYTE( "wl_42.12h", 0x00001, 0x20000, CRC(1ac39615) SHA1(c9fa6d20418b9bdc5a08df1fb86368b40709280a) )
+ ROM_LOAD16_BYTE( "wl_37.13f", 0x40000, 0x20000, CRC(30a717fa) SHA1(cb815e9ee2691761925898e3932b502f8f399cb4) )
+ ROM_LOAD16_BYTE( "wl_43.13h", 0x40001, 0x20000, CRC(d0dddc9e) SHA1(1176b9a43b3355a5ba44e59abde01ee7eaa89c25) )
+ ROM_LOAD16_BYTE( "wl_34.10f", 0x80000, 0x20000, CRC(23a84f7a) SHA1(f7667ffc85e2dfb78f5ed8ea54b6223e7375433a) ) // == wlm-32.8h
+ ROM_LOAD16_BYTE( "wl_40.10h", 0x80001, 0x20000, CRC(c7a0ed21) SHA1(190aec48a8f528652b434425f64ea2e52029ad3d) ) // == wlm-32.8h
+ ROM_LOAD16_BYTE( "wl_35.11f", 0xc0000, 0x20000, CRC(5eff7951) SHA1(f336bfd07f3083e3b3e72c61d03abb52d443204d) ) // == wlm-32.8h
+ ROM_LOAD16_BYTE( "wl_41.11h", 0xc0001, 0x20000, CRC(8d6477a3) SHA1(1bdb98f89ec8c2dcd47ab90bdd1be862ea59a16b) ) // == wlm-32.8h
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "wl_09.4b", 0x000000, 0x20000, CRC(05aa71b4) SHA1(791f845928ff164eace07cfcc35d0bd9d7cbb2d0) , ROM_SKIP(7) ) // == wlm-7.7a
+ ROMX_LOAD( "wl_01.4a", 0x000001, 0x20000, CRC(08c2df12) SHA1(269ca05ff6f9928e3b46f43b262c03ac3dd768b8) , ROM_SKIP(7) ) // == wlm-7.7a
+ ROMX_LOAD( "wl_13.9b", 0x000002, 0x20000, CRC(1f7c87cd) SHA1(6817c8b42ef4e8183fc2fbd2765e49ac955cca80) , ROM_SKIP(7) ) // == wlm-5.9a
+ ROMX_LOAD( "wl_05.9a", 0x000003, 0x20000, CRC(f5254bf2) SHA1(a53973b98b8e8903c731eb2514cb9ce4060d5164) , ROM_SKIP(7) ) // == wlm-5.9a
+ ROMX_LOAD( "wl_24.5e", 0x000004, 0x20000, CRC(d9d73ba1) SHA1(5f7b5e7e6fe64106cd96a968a54556e4f5ad9387) , ROM_SKIP(7) ) // == wlm-3.3a
+ ROMX_LOAD( "wl_17.5c", 0x000005, 0x20000, CRC(a652f30c) SHA1(b150d8978d37907c6d17042476c4608c76c4ea3f) , ROM_SKIP(7) ) // == wlm-3.3a
+ ROMX_LOAD( "wl_38.8h", 0x000006, 0x20000, CRC(f6f9111b) SHA1(bd44d1b6084fe2c09cdd91b5ad6eff7a84f3e601) , ROM_SKIP(7) ) // == wlm-1.5a
+ ROMX_LOAD( "wl_32.8f", 0x000007, 0x20000, CRC(10f64027) SHA1(abf387ba7d8f0530a562a984c08345a149cfa226) , ROM_SKIP(7) ) // == wlm-1.5a
+ ROMX_LOAD( "wl_10.5b", 0x100000, 0x20000, CRC(dbba0a3f) SHA1(38c0cdd87e6631721f35a0b85fd5165940454603) , ROM_SKIP(7) ) // == wlm-7.7a
+ ROMX_LOAD( "wl_02.5a", 0x100001, 0x20000, CRC(86fba7a5) SHA1(9389ad4e0968b3edd4baeac8b29637618f49dbfb) , ROM_SKIP(7) ) // == wlm-7.7a
+ ROMX_LOAD( "wl_14.10b", 0x100002, 0x20000, CRC(7d5798b2) SHA1(7dfcc172e5df0e8f4b9188381463f9eca00945dc) , ROM_SKIP(7) ) // == wlm-5.9a
+ ROMX_LOAD( "wl_06.10a", 0x100003, 0x20000, CRC(1f052948) SHA1(ca3a6be94ae50fa50604ee52704792b22cbbc083) , ROM_SKIP(7) ) // == wlm-5.9a
+ ROMX_LOAD( "wl_25.7e", 0x100004, 0x20000, CRC(857d17d2) SHA1(e6b383df9571df6743a7aa3087f0632dc4e6143b) , ROM_SKIP(7) ) // == wlm-3.3a
+ ROMX_LOAD( "wl_18.7c", 0x100005, 0x20000, CRC(316c7fbc) SHA1(631682c7f14fa73f5f5a4fb747bfb45d9613e507) , ROM_SKIP(7) ) // == wlm-3.3a
+ ROMX_LOAD( "wl_39.9h", 0x100006, 0x20000, CRC(e6fce9b0) SHA1(46d50cf32c3518ab3dc717553c5375f3cb022cde) , ROM_SKIP(7) ) // == wlm-1.5a
+ ROMX_LOAD( "wl_33.9f", 0x100007, 0x20000, CRC(a15d5517) SHA1(03a30e216f8240383d5fa9736b4fe5119d231685) , ROM_SKIP(7) ) // == wlm-1.5a
+ ROMX_LOAD( "wl_11.7b", 0x200000, 0x20000, CRC(6f0adee5) SHA1(07b18e51b376001f25173b78e0e816f252400210) , ROM_SKIP(7) ) // == wl_24.7d
+ ROMX_LOAD( "wl_03.7a", 0x200001, 0x20000, CRC(9cf3027d) SHA1(1e8eb20d51a54f6f756c0ab9395ac38b96e67fb2) , ROM_SKIP(7) ) // == wl_14.7c
+ ROMX_LOAD( "wl_15.11b", 0x200002, 0x20000, CRC(f09c8ecf) SHA1(b39f83e80af010d6481693d9ec8b1d7e258b531d) , ROM_SKIP(7) ) // == wl_26.9d
+ ROMX_LOAD( "wl_07.11a", 0x200003, 0x20000, CRC(e35407aa) SHA1(7ddae9cef96839da72488c1fe73268c50e0262ff) , ROM_SKIP(7) ) // == wl_16.9c
+ ROMX_LOAD( "wl_26.8e", 0x200004, 0x20000, CRC(84992350) SHA1(f0ebd810ce099337cda94222dccce8ab9b3c3281) , ROM_SKIP(7) ) // == wl_20.3d
+ ROMX_LOAD( "wl_19.8c", 0x200005, 0x20000, CRC(b87b5a36) SHA1(25fb8f9698142473233ee509d4146089920e94e1) , ROM_SKIP(7) ) // == wl_10.3c
+ ROMX_LOAD( "wl_28.10e", 0x200006, 0x20000, CRC(fd3f89f0) SHA1(51ff95cff56ac78682ea56401b35a0aa63cef8cb) , ROM_SKIP(7) ) // == wl_22.5d
+ ROMX_LOAD( "wl_21.10c", 0x200007, 0x20000, CRC(7da49d69) SHA1(b0ae7ac4f858ee8d72e6877c4275da7a631e2e4c) , ROM_SKIP(7) ) // == wl_12.5c
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "wl_23.13c", 0x00000, 0x08000, CRC(f6b3d060) SHA1(0ed2e2f64ba53ba2c371b66ab1e52e40b16d8baf) ) // == wl_09.12b
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "wl_30.12e", 0x00000, 0x20000, CRC(bde23d4d) SHA1(d1fee2f99c858dfb07edcd600da491c7b656afe0) ) // == wl_18.11c
+ ROM_LOAD( "wl_31.13e", 0x20000, 0x20000, CRC(683898f5) SHA1(316a77b663d78c8b9ff6d85756cb05aaaeef4003) ) // == wl_19.12c
+
+ 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( "wl22b.1a", 0x0000, 0x0117, NO_DUMP )
+ ROM_LOAD( "lwio.12c", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) )
+ROM_END
+
+/* B-Board 89624B-2 */
+ROM_START( unsquad )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "aru_30.11f", 0x00000, 0x20000, CRC(24d8f88d) SHA1(9c39aa1140e92307d6d9c0ca198003282bf78c78) )
+ ROM_LOAD16_BYTE( "aru_35.11h", 0x00001, 0x20000, CRC(8b954b59) SHA1(33114f1417d48f60c6da3e14a094be7c0f0fd979) )
+ ROM_LOAD16_BYTE( "aru_31.12f", 0x40000, 0x20000, CRC(33e9694b) SHA1(90db3052ac2ff859ede8473dd13e0f5be148590c) )
+ ROM_LOAD16_BYTE( "aru_36.12h", 0x40001, 0x20000, CRC(7cc8fb9e) SHA1(f70118d1a368fd4795d9953c55d283305d1f9630) )
+ ROM_LOAD16_WORD_SWAP( "ar-32m.8h", 0x80000, 0x80000, CRC(ae1d7fb0) SHA1(bb51e77574db5e2d807c4ca8e85a5d9661f5d3b3) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "ar-5m.7a", 0x000000, 0x80000, CRC(bf4575d8) SHA1(1b268e1698be8ff9c16f80f7b9081b6be9f72601) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ar-7m.9a", 0x000002, 0x80000, CRC(a02945f4) SHA1(ff35cdbd6c1e43b16a906f68e416559cb3d5746b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ar-1m.3a", 0x000004, 0x80000, CRC(5965ca8d) SHA1(49abf80fc012a7f73306139a2871aeac7fd6a3d0) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ar-3m.5a", 0x000006, 0x80000, CRC(ac6db17d) SHA1(78eef9ba6a392859f70467f6d7cb5aa91964abed) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "ar_09.12b", 0x00000, 0x08000, CRC(f3dd1367) SHA1(09eef72e862ac6b1a5cce5a45938b45bf4e456ad) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "aru_18.11c", 0x00000, 0x20000, CRC(584b43a9) SHA1(7820815c8c67d484baf2fdad7e55d8c14b98b860) )
+ /* 20000-3ffff empty */
+
+ 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( "ar24b.1a", 0x0000, 0x0117, CRC(09a51271) SHA1(147f53f426f258ad127157967fa59d4098e5ed16) )
+ ROM_LOAD( "lwio.11e", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) )
+ROM_END
+
+/* B-Board 88622B-3 */
+ROM_START( area88 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "ar_36.12f", 0x00000, 0x20000, CRC(65030392) SHA1(d9dea5cfde28345716b0e519ee033c475be0454b) )
+ ROM_LOAD16_BYTE( "ar_42.12h", 0x00001, 0x20000, CRC(c48170de) SHA1(e968522dbdd217dd8e4cd6aaeaef801c63488c1d) )
+ ROM_LOAD16_BYTE( "ar_37.13f", 0x40000, 0x20000, CRC(33e9694b) SHA1(90db3052ac2ff859ede8473dd13e0f5be148590c) ) // == aru_31.12f
+ ROM_LOAD16_BYTE( "ar_43.13h", 0x40001, 0x20000, CRC(7cc8fb9e) SHA1(f70118d1a368fd4795d9953c55d283305d1f9630) ) // == aru_36.12h
+ ROM_LOAD16_BYTE( "ar_34.10f", 0x80000, 0x20000, CRC(f6e80386) SHA1(462c1e9981b733df03e4d084df2d1fc58cf2022c) ) // == ar-32m.8h
+ ROM_LOAD16_BYTE( "ar_40.10h", 0x80001, 0x20000, CRC(be36c145) SHA1(9ada7ac7361ff8871e2ae61f75e4e5d98936cdc3) ) // == ar-32m.8h
+ ROM_LOAD16_BYTE( "ar_35.11f", 0xc0000, 0x20000, CRC(86d98ff3) SHA1(18137974fb7812b45f0d93e584ed14d0af2e6a3e) ) // == ar-32m.8h
+ ROM_LOAD16_BYTE( "ar_41.11h", 0xc0001, 0x20000, CRC(758893d3) SHA1(1245bfd35b0f12bd701cd28c9ce2e85e166a4de2) ) // == ar-32m.8h
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "ar_09.4b", 0x000000, 0x20000, CRC(db9376f8) SHA1(501fc5543c66509f8fc1075c128fb01606ced2ad) , ROM_SKIP(7) ) // == ar-5m.7a
+ ROMX_LOAD( "ar_01.4a", 0x000001, 0x20000, CRC(392151b4) SHA1(ba3c69d852f750b43d8b4b2b58fcb7977cc0e5de) , ROM_SKIP(7) ) // == ar-5m.7a
+ ROMX_LOAD( "ar_13.9b", 0x000002, 0x20000, CRC(81436481) SHA1(85ceba63382959f7084bacb6aedcef80ddd8ad6b) , ROM_SKIP(7) ) // == ar-7m.9a
+ ROMX_LOAD( "ar_05.9a", 0x000003, 0x20000, CRC(e246ed9f) SHA1(aaaad5c81bf7c4ec4b2339fd8f0364096c86e903) , ROM_SKIP(7) ) // == ar-7m.9a
+ ROMX_LOAD( "ar_24.5e", 0x000004, 0x20000, CRC(9cd6e2a3) SHA1(186e756af496b0fb5b65cf7a106fe32c78d542c9) , ROM_SKIP(7) ) // == ar-1m.3a
+ ROMX_LOAD( "ar_17.5c", 0x000005, 0x20000, CRC(0b8e0df4) SHA1(ac8ab79e7237b72df9f42292a0c58aa56effe3a1) , ROM_SKIP(7) ) // == ar-1m.3a
+ ROMX_LOAD( "ar_38.8h", 0x000006, 0x20000, CRC(8b9e75b9) SHA1(eeeaa8f84167f7e8127b90318f052fe5e00c36ac) , ROM_SKIP(7) ) // == ar-3m.5a
+ ROMX_LOAD( "ar_32.8f", 0x000007, 0x20000, CRC(db6acdcf) SHA1(5842e29a0e29b4869b2c34a5f47f64c1a1f4609a) , ROM_SKIP(7) ) // == ar-3m.5a
+ ROMX_LOAD( "ar_10.5b", 0x100000, 0x20000, CRC(4219b622) SHA1(ecfc47687b466893b9c8587224830d600c754d17) , ROM_SKIP(7) ) // == ar-5m.7a
+ ROMX_LOAD( "ar_02.5a", 0x100001, 0x20000, CRC(bac5dec5) SHA1(e69f5c4e5c07db46f088d3eabfd394e7d639fea0) , ROM_SKIP(7) ) // == ar-5m.7a
+ ROMX_LOAD( "ar_14.10b", 0x100002, 0x20000, CRC(e6bae179) SHA1(31af958dedce5fcc1a7c159f96af4a3a1a4651fb) , ROM_SKIP(7) ) // == ar-7m.9a
+ ROMX_LOAD( "ar_06.10a", 0x100003, 0x20000, CRC(c8f04223) SHA1(c96eba0ce53e8505668dc646344e5b2456d60546) , ROM_SKIP(7) ) // == ar-7m.9a
+ ROMX_LOAD( "ar_25.7e", 0x100004, 0x20000, CRC(15ccf981) SHA1(2dd7a2d573089aa70b33586d6d9e6b8d816bd28e) , ROM_SKIP(7) ) // == ar-1m.3a
+ ROMX_LOAD( "ar_18.7c", 0x100005, 0x20000, CRC(9336db6a) SHA1(1704d6f0de08ed283c26ee0bcbb82a838060fe70) , ROM_SKIP(7) ) // == ar-1m.3a
+ ROMX_LOAD( "ar_39.9h", 0x100006, 0x20000, CRC(9b8e1363) SHA1(f830834305248446235cc6b17b17f7f0dd6baa03) , ROM_SKIP(7) ) // == ar-3m.5a
+ ROMX_LOAD( "ar_33.9f", 0x100007, 0x20000, CRC(3968f4b5) SHA1(42722c61c4b514b15f1594fdad688375e2c51e71) , ROM_SKIP(7) ) // == ar-3m.5a
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "ar_23.13c", 0x00000, 0x08000, CRC(f3dd1367) SHA1(09eef72e862ac6b1a5cce5a45938b45bf4e456ad) ) // == ar_09.12b
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "ar_30.12e", 0x00000, 0x20000, CRC(584b43a9) SHA1(7820815c8c67d484baf2fdad7e55d8c14b98b860) ) // == aru_18.11c
+ /* 20000-3ffff empty */
+
+ 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( "ar22b.1a", 0x0000, 0x0117, CRC(f1db9030) SHA1(85a6eefb93e7bf7c7d3980737365a425c5324c08) )
+ ROM_LOAD( "lwio.12c", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) )
+ROM_END
+
+/* B-Board 91634B-2, Japan Resale Ver. */
+ROM_START( area88r )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "araj_23.8f", 0x00000, 0x80000, CRC(7045d6cb) SHA1(5f8f3160e8e960ee67778232368d4f3430a0dade) )
+ ROM_LOAD16_WORD_SWAP( "araj_22.7f", 0x80000, 0x80000, CRC(9913002e) SHA1(b2da8ad34bf4ea51679d35d91601faa91ef40ae5) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "ara_01.3a", 0x000000, 0x80000, CRC(bf4575d8) SHA1(1b268e1698be8ff9c16f80f7b9081b6be9f72601) , ROM_GROUPWORD | ROM_SKIP(6) ) // == ar-5m.7a
+ ROMX_LOAD( "ara_02.4a", 0x000002, 0x80000, CRC(a02945f4) SHA1(ff35cdbd6c1e43b16a906f68e416559cb3d5746b) , ROM_GROUPWORD | ROM_SKIP(6) ) // == ar-7m.9a
+ ROMX_LOAD( "ara_03.5a", 0x000004, 0x80000, CRC(5965ca8d) SHA1(49abf80fc012a7f73306139a2871aeac7fd6a3d0) , ROM_GROUPWORD | ROM_SKIP(6) ) // == ar-1m.3a
+ ROMX_LOAD( "ara_04.6a", 0x000006, 0x80000, CRC(ac6db17d) SHA1(78eef9ba6a392859f70467f6d7cb5aa91964abed) , ROM_GROUPWORD | ROM_SKIP(6) ) // == ar-3m.5a
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "ara_09.12a", 0x00000, 0x08000, CRC(af88359c) SHA1(5b7d872700a074fe1a4e11722e73374a23fa5e99) ) // == ar_09.12b + garbage
+ ROM_CONTINUE( 0x10000, 0x18000 ) // second half of ROM is unused, not mapped in memory
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "ara_18.11c", 0x00000, 0x20000, CRC(584b43a9) SHA1(7820815c8c67d484baf2fdad7e55d8c14b98b860) ) // == aru_18.11c
+ /* 20000-3ffff empty */
+
+ 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( "ara63b.1a", 0x0000, 0x0117, BAD_DUMP CRC(f5569c93) SHA1(7db7cf23639036590eef1e5e309f08560859efaf) ) /* Handcrafted but works on actual PCB. Redump needed */
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 89624B-3 */
+ROM_START( ffight )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "ff_36.11f", 0x00000, 0x20000, CRC(f9a5ce83) SHA1(0756ae576a1f6d5b8b22f8630dca40ef38567ea6) ) // in "30" socket
+ ROM_LOAD16_BYTE( "ff_42.11h", 0x00001, 0x20000, CRC(65f11215) SHA1(5045a467f3e228c02b4a355b52f58263ffa90113) ) // in "35" socket
+ ROM_LOAD16_BYTE( "ff_37.12f", 0x40000, 0x20000, CRC(e1033784) SHA1(38f44434c8befd623953ae23d6e5ff4e201d6627) ) // in "31" socket
+ ROM_LOAD16_BYTE( "ffe_43.12h", 0x40001, 0x20000, CRC(995e968a) SHA1(de16873d1639ac1738be0937270b108a9914f263) ) // in "36" socket
+ 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) ) /* seen the same pcb with LWIO.11E */
+ROM_END
+
+/* B-Board 89624B-3 */
+ROM_START( ffighta )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "ffe_30.11f", 0x00000, 0x20000, CRC(2347bf51) SHA1(de05b347a8b4df4889d4e594e1abf741afdf0ab4) )
+ ROM_LOAD16_BYTE( "ffe_35.11h", 0x00001, 0x20000, CRC(5f694ecc) SHA1(57c45ffcada0cdaf1f97c7e33c8300539828a238) )
+ ROM_LOAD16_BYTE( "ffe_31.12f", 0x40000, 0x20000, CRC(6dc6b792) SHA1(553abebed2a1fa1ee2d85a4117f40d90e2321cea) )
+ ROM_LOAD16_BYTE( "ffe_36.12h", 0x40001, 0x20000, CRC(b36a0b99) SHA1(cfb27987ee3d54c83c6fb73437a79dcdd96df22f) )
+ 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( "ffe_23.12b", 0x00000, 0x08000, CRC(b8367eb5) SHA1(ec3db29fdd6200e9a8f4f8073a7e34aef731354f) ) // == ff_09.12b /* label is FFE_23, pcb verified */
+ 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( "lwio.11e", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) )
+ROM_END
+
+/* B-Board 89624B-3 */
+ROM_START( ffightu )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "ff_36.11f", 0x00000, 0x20000, CRC(f9a5ce83) SHA1(0756ae576a1f6d5b8b22f8630dca40ef38567ea6) ) // in "30" socket
+ ROM_LOAD16_BYTE( "ff_42.11h", 0x00001, 0x20000, CRC(65f11215) SHA1(5045a467f3e228c02b4a355b52f58263ffa90113) ) // in "35" socket
+ ROM_LOAD16_BYTE( "ff_37.12f", 0x40000, 0x20000, CRC(e1033784) SHA1(38f44434c8befd623953ae23d6e5ff4e201d6627) ) // in "31" socket
+ ROM_LOAD16_BYTE( "ffu_43.12h", 0x40001, 0x20000, CRC(4ca65947) SHA1(74ffe00df96273770a24d9a46f13e53ea8812670) ) // in "36" socket /* seen the same pcb with FF_43.12H */
+ 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) ) /* seen the same pcb with 23.12B */
+ 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 */
+/* Note that this set is equivalent to ffightu, but the 4Mbit MASK ROM FF-32M located @ 8H is replaced by 4 1Mbit EPROMs. */
+ROM_START( ffightu1 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "ff_36.11f", 0x00000, 0x20000, CRC(f9a5ce83) SHA1(0756ae576a1f6d5b8b22f8630dca40ef38567ea6) ) // in "30" socket
+ ROM_LOAD16_BYTE( "ff_42.11h", 0x00001, 0x20000, CRC(65f11215) SHA1(5045a467f3e228c02b4a355b52f58263ffa90113) ) // in "35" socket
+ ROM_LOAD16_BYTE( "ff_37.12f", 0x40000, 0x20000, CRC(e1033784) SHA1(38f44434c8befd623953ae23d6e5ff4e201d6627) ) // in "31" socket
+ ROM_LOAD16_BYTE( "ffu_43.12h", 0x40001, 0x20000, CRC(4ca65947) SHA1(74ffe00df96273770a24d9a46f13e53ea8812670) ) // in "36" socket
+ ROM_LOAD16_BYTE( "ff_34.9f", 0x80000, 0x20000, CRC(0c8dc3fc) SHA1(edcce3efd9cdd131ef0c96df15a68722d5c3498e) ) // in "28" socket // == ff-32m.8h
+ ROM_LOAD16_BYTE( "ff_40.9h", 0x80001, 0x20000, CRC(8075bab9) SHA1(f9c7405133f6fc5557c90e60e8ccc459e4f6fd7d) ) // in "33" socket // == ff-32m.8h
+ ROM_LOAD16_BYTE( "ff_35.10f", 0xc0000, 0x20000, CRC(4a934121) SHA1(3982c261582755a0eac340d6d7ed96e6c263c8b6) ) // in "29" socket // == ff-32m.8h
+ ROM_LOAD16_BYTE( "ff_41.10h", 0xc0001, 0x20000, CRC(2af68154) SHA1(7d549cb38650b4b79c68ad6d0dfcefdd62be4e99) ) // in "34" socket // == ff-32m.8h
+
+ 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( 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_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( 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) )
+ ROM_LOAD16_BYTE( "ffu_36.12h", 0x40001, 0x20000, CRC(4d89f542) SHA1(0b7d483a2c5759715f99f287cbd8a36165b59de7) )
+ 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_23.12b", 0x00000, 0x08000, CRC(b8367eb5) SHA1(ec3db29fdd6200e9a8f4f8073a7e34aef731354f) ) // == ff_09.12b /* label is FF_23, pcb verified */
+ 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
+
+/* FIXME B-Board uncertain but should be 88622B/89625B from the program ROM names */
+ROM_START( ffightj )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "ff36.bin", 0x00000, 0x20000, CRC(f9a5ce83) SHA1(0756ae576a1f6d5b8b22f8630dca40ef38567ea6) ) // == ff_36.11f
+ ROM_LOAD16_BYTE( "ff42.bin", 0x00001, 0x20000, CRC(65f11215) SHA1(5045a467f3e228c02b4a355b52f58263ffa90113) ) // == ff_42.11h
+ ROM_LOAD16_BYTE( "ff37.bin", 0x40000, 0x20000, CRC(e1033784) SHA1(38f44434c8befd623953ae23d6e5ff4e201d6627) ) // == ff_37.12f
+ ROM_LOAD16_BYTE( "ff43.bin", 0x40001, 0x20000, CRC(b6dee1c3) SHA1(3a85312a2e9d8e06259b73d91ccb5e66a6bad62d) )
+ ROM_LOAD16_BYTE( "ffj_34.10f", 0x80000, 0x20000, CRC(0c8dc3fc) SHA1(edcce3efd9cdd131ef0c96df15a68722d5c3498e) ) // == ff-32m.8h
+ ROM_LOAD16_BYTE( "ffj_40.10h", 0x80001, 0x20000, CRC(8075bab9) SHA1(f9c7405133f6fc5557c90e60e8ccc459e4f6fd7d) ) // == ff-32m.8h
+ ROM_LOAD16_BYTE( "ffj_35.11f", 0xc0000, 0x20000, CRC(4a934121) SHA1(3982c261582755a0eac340d6d7ed96e6c263c8b6) ) // == ff-32m.8h
+ ROM_LOAD16_BYTE( "ffj_41.11h", 0xc0001, 0x20000, CRC(2af68154) SHA1(7d549cb38650b4b79c68ad6d0dfcefdd62be4e99) ) // == ff-32m.8h
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "ffj_09.4b", 0x000000, 0x20000, CRC(5b116d0d) SHA1(a24e829fdfa043bd27b508d7cc0788ad80fd180e) , ROM_SKIP(7) )
+ ROMX_LOAD( "ffj_01.4a", 0x000001, 0x20000, CRC(815b1797) SHA1(549e5eefc8f607fec1c954ba715ff21b8e44a5aa) , ROM_SKIP(7) )
+ ROMX_LOAD( "ffj_13.9b", 0x000002, 0x20000, CRC(8721a7da) SHA1(39b2b324fd7810342503f23695e423f364a6294d) , ROM_SKIP(7) )
+ ROMX_LOAD( "ffj_05.9a", 0x000003, 0x20000, CRC(d0fcd4b5) SHA1(97ebcbead0cca7e425143c500c433dbcf9cadcc2) , ROM_SKIP(7) )
+ ROMX_LOAD( "ffj_24.5e", 0x000004, 0x20000, CRC(a1ab607a) SHA1(56784c028b82d9e2affd9610f56fde57063e4c28) , ROM_SKIP(7) )
+ ROMX_LOAD( "ffj_17.5c", 0x000005, 0x20000, CRC(2dc18cf4) SHA1(5e3bd895600cd30d561a75a2fcb6cc8bc84f4bd1) , ROM_SKIP(7) )
+ ROMX_LOAD( "ffj_38.8h", 0x000006, 0x20000, CRC(6535a57f) SHA1(f4da9ec13cad7e3287e34dcceb0eb2d20107bad6) , ROM_SKIP(7) )
+ ROMX_LOAD( "ffj_32.8f", 0x000007, 0x20000, CRC(c8bc4a57) SHA1(3eaf2b4e910fe1f79154020122d786d23a2e594a) , ROM_SKIP(7) )
+ ROMX_LOAD( "ffj_10.5b", 0x100000, 0x20000, CRC(624a924a) SHA1(48fd0498f9ed54003bf6578fbcbc8b7e90a195eb) , ROM_SKIP(7) )
+ ROMX_LOAD( "ffj_02.5a", 0x100001, 0x20000, CRC(5d91f694) SHA1(e0ea9ec82dec985d8bf5e7cebf5fe3d8ef7557b1) , ROM_SKIP(7) )
+ ROMX_LOAD( "ffj_14.10b", 0x100002, 0x20000, CRC(0a2e9101) SHA1(6c8d550d2066cd53355ccf14ac1fd35914982094) , ROM_SKIP(7) )
+ ROMX_LOAD( "ffj_06.10a", 0x100003, 0x20000, CRC(1c18f042) SHA1(f708296570fecad82a76dc59744873a2f5568ea1) , ROM_SKIP(7) )
+ ROMX_LOAD( "ffj_25.7e", 0x100004, 0x20000, CRC(6e8181ea) SHA1(2c32bc0364650ee6ca0d24754a7a3401295ffcd5) , ROM_SKIP(7) )
+ ROMX_LOAD( "ffj_18.7c", 0x100005, 0x20000, CRC(b19ede59) SHA1(7e79ad9f17b36e042d774bef3bbb44018332ca01) , ROM_SKIP(7) )
+ ROMX_LOAD( "ffj_39.9h", 0x100006, 0x20000, CRC(9416b477) SHA1(f2310dfcfe960e8b822c07849b594d54dfc2b2ca) , ROM_SKIP(7) )
+ ROMX_LOAD( "ffj_33.9f", 0x100007, 0x20000, CRC(7369fa07) SHA1(3b2750fe33729395217c96909b4b6c5f3d6e9943) , ROM_SKIP(7) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "ff_23.bin", 0x00000, 0x08000, CRC(b8367eb5) SHA1(ec3db29fdd6200e9a8f4f8073a7e34aef731354f) ) // == ff_09.12b
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "ffj_30.bin", 0x00000, 0x20000, CRC(375c66e7) SHA1(36189e23209ce4ae5d9cbabd1574540d0591e7b3) ) // == ff_18.11c
+ ROM_LOAD( "ffj_31.bin", 0x20000, 0x20000, CRC(1ef137f9) SHA1(974b5e72aa28b87ebfa7438efbdfeda769dedf5e) ) // == ff_19.12c
+
+ 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( "s222b.1a", 0x0000, 0x0117, CRC(6d86b45e) SHA1(2b27646adaf1ca2f58e14754d6f7ef4fdca77fbe) )
+ ROM_LOAD( "lwio.12c", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) ) // pal & position verification required
+ROM_END
+
+/* B-Board 89625B-1 */
+ROM_START( ffightj1 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "ffj_36.12f", 0x00000, 0x20000, CRC(e2a48af9) SHA1(11e06f95bdf575af396dded2b84d858f6c7388f1) ) // == ffu_36.11f
+ ROM_LOAD16_BYTE( "ffj_42.12h", 0x00001, 0x20000, CRC(f4bb480e) SHA1(32114df1d2f4f98a4a2280a330c7b6af8ab4d862) ) // == ffu_42.11h
+ ROM_LOAD16_BYTE( "ffj_37.13f", 0x40000, 0x20000, CRC(c371c667) SHA1(633977c91a8ff09b7fe83128eced7c4dee9aee1d) ) // == ffu_37.12f
+ ROM_LOAD16_BYTE( "ffj_43.13h", 0x40001, 0x20000, CRC(6f81f194) SHA1(2cddf75a0a607cf57395583876cf81bcca005871) )
+ ROM_LOAD16_BYTE( "ffj_34.10f", 0x80000, 0x20000, CRC(0c8dc3fc) SHA1(edcce3efd9cdd131ef0c96df15a68722d5c3498e) ) // == ff-32m.8h
+ ROM_LOAD16_BYTE( "ffj_40.10h", 0x80001, 0x20000, CRC(8075bab9) SHA1(f9c7405133f6fc5557c90e60e8ccc459e4f6fd7d) ) // == ff-32m.8h
+ ROM_LOAD16_BYTE( "ffj_35.11f", 0xc0000, 0x20000, CRC(4a934121) SHA1(3982c261582755a0eac340d6d7ed96e6c263c8b6) ) // == ff-32m.8h
+ ROM_LOAD16_BYTE( "ffj_41.11h", 0xc0001, 0x20000, CRC(2af68154) SHA1(7d549cb38650b4b79c68ad6d0dfcefdd62be4e99) ) // == ff-32m.8h
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "ffj_09.4b", 0x000000, 0x20000, CRC(5b116d0d) SHA1(a24e829fdfa043bd27b508d7cc0788ad80fd180e) , ROM_SKIP(7) )
+ ROMX_LOAD( "ffj_01.4a", 0x000001, 0x20000, CRC(815b1797) SHA1(549e5eefc8f607fec1c954ba715ff21b8e44a5aa) , ROM_SKIP(7) )
+ ROMX_LOAD( "ffj_13.9b", 0x000002, 0x20000, CRC(8721a7da) SHA1(39b2b324fd7810342503f23695e423f364a6294d) , ROM_SKIP(7) )
+ ROMX_LOAD( "ffj_05.9a", 0x000003, 0x20000, CRC(d0fcd4b5) SHA1(97ebcbead0cca7e425143c500c433dbcf9cadcc2) , ROM_SKIP(7) )
+ ROMX_LOAD( "ffj_24.5e", 0x000004, 0x20000, CRC(a1ab607a) SHA1(56784c028b82d9e2affd9610f56fde57063e4c28) , ROM_SKIP(7) )
+ ROMX_LOAD( "ffj_17.5c", 0x000005, 0x20000, CRC(2dc18cf4) SHA1(5e3bd895600cd30d561a75a2fcb6cc8bc84f4bd1) , ROM_SKIP(7) )
+ ROMX_LOAD( "ffj_38.8h", 0x000006, 0x20000, CRC(6535a57f) SHA1(f4da9ec13cad7e3287e34dcceb0eb2d20107bad6) , ROM_SKIP(7) )
+ ROMX_LOAD( "ffj_32.8f", 0x000007, 0x20000, CRC(c8bc4a57) SHA1(3eaf2b4e910fe1f79154020122d786d23a2e594a) , ROM_SKIP(7) )
+ ROMX_LOAD( "ffj_10.5b", 0x100000, 0x20000, CRC(624a924a) SHA1(48fd0498f9ed54003bf6578fbcbc8b7e90a195eb) , ROM_SKIP(7) )
+ ROMX_LOAD( "ffj_02.5a", 0x100001, 0x20000, CRC(5d91f694) SHA1(e0ea9ec82dec985d8bf5e7cebf5fe3d8ef7557b1) , ROM_SKIP(7) )
+ ROMX_LOAD( "ffj_14.10b", 0x100002, 0x20000, CRC(0a2e9101) SHA1(6c8d550d2066cd53355ccf14ac1fd35914982094) , ROM_SKIP(7) )
+ ROMX_LOAD( "ffj_06.10a", 0x100003, 0x20000, CRC(1c18f042) SHA1(f708296570fecad82a76dc59744873a2f5568ea1) , ROM_SKIP(7) )
+ ROMX_LOAD( "ffj_25.7e", 0x100004, 0x20000, CRC(6e8181ea) SHA1(2c32bc0364650ee6ca0d24754a7a3401295ffcd5) , ROM_SKIP(7) )
+ ROMX_LOAD( "ffj_18.7c", 0x100005, 0x20000, CRC(b19ede59) SHA1(7e79ad9f17b36e042d774bef3bbb44018332ca01) , ROM_SKIP(7) )
+ ROMX_LOAD( "ffj_39.9h", 0x100006, 0x20000, CRC(9416b477) SHA1(f2310dfcfe960e8b822c07849b594d54dfc2b2ca) , ROM_SKIP(7) )
+ ROMX_LOAD( "ffj_33.9f", 0x100007, 0x20000, CRC(7369fa07) SHA1(3b2750fe33729395217c96909b4b6c5f3d6e9943) , ROM_SKIP(7) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "ff_23.13b", 0x00000, 0x08000, CRC(b8367eb5) SHA1(ec3db29fdd6200e9a8f4f8073a7e34aef731354f) ) // == ff_09.12b
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "ffj_30.12c", 0x00000, 0x20000, CRC(375c66e7) SHA1(36189e23209ce4ae5d9cbabd1574540d0591e7b3) ) // == ff_18.11c
+ ROM_LOAD( "ffj_31.13c", 0x20000, 0x20000, CRC(1ef137f9) SHA1(974b5e72aa28b87ebfa7438efbdfeda769dedf5e) ) // == ff_19.12c
+
+ 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( "s222b.1a", 0x0000, 0x0117, CRC(6d86b45e) SHA1(2b27646adaf1ca2f58e14754d6f7ef4fdca77fbe) )
+ ROM_LOAD( "lwio.12e", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) )
+ROM_END
+
+
+/* B-Board 88622B-3 */
+ROM_START( ffightj2 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "ffj_36a.12f", 0x00000, 0x20000, CRC(088ed1c9) SHA1(7b96cd45f4d3d2c0fe94904882652814b7790869) )
+ ROM_LOAD16_BYTE( "ffj_42a.12h", 0x00001, 0x20000, CRC(c4c491e6) SHA1(d0e34d7b94f67c33615710ea721da8fefe832e3a) )
+ ROM_LOAD16_BYTE( "ffj_37a.13f", 0x40000, 0x20000, CRC(708557ff) SHA1(89e56bfd9486623a18fdbf984a72bb52054ca0e6) )
+ ROM_LOAD16_BYTE( "ffj_43a.13h", 0x40001, 0x20000, CRC(c004004a) SHA1(10ccf27972591f65645a8dd2bb65989176ac07d5) )
+ ROM_LOAD16_BYTE( "ff_34.10f", 0x80000, 0x20000, CRC(0c8dc3fc) SHA1(edcce3efd9cdd131ef0c96df15a68722d5c3498e) ) // == ff-32m.8h
+ ROM_LOAD16_BYTE( "ff_40.10h", 0x80001, 0x20000, CRC(8075bab9) SHA1(f9c7405133f6fc5557c90e60e8ccc459e4f6fd7d) ) // == ff-32m.8h
+ ROM_LOAD16_BYTE( "ff_35.11f", 0xc0000, 0x20000, CRC(4a934121) SHA1(3982c261582755a0eac340d6d7ed96e6c263c8b6) ) // == ff-32m.8h
+ ROM_LOAD16_BYTE( "ff_41.11h", 0xc0001, 0x20000, CRC(2af68154) SHA1(7d549cb38650b4b79c68ad6d0dfcefdd62be4e99) ) // == ff-32m.8h
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "ff_09.4b", 0x000000, 0x20000, CRC(5b116d0d) SHA1(a24e829fdfa043bd27b508d7cc0788ad80fd180e) , ROM_SKIP(7) )
+ ROMX_LOAD( "ff_01.4a", 0x000001, 0x20000, CRC(815b1797) SHA1(549e5eefc8f607fec1c954ba715ff21b8e44a5aa) , ROM_SKIP(7) )
+ ROMX_LOAD( "ff_13.9b", 0x000002, 0x20000, CRC(8721a7da) SHA1(39b2b324fd7810342503f23695e423f364a6294d) , ROM_SKIP(7) )
+ ROMX_LOAD( "ff_05.9a", 0x000003, 0x20000, CRC(d0fcd4b5) SHA1(97ebcbead0cca7e425143c500c433dbcf9cadcc2) , ROM_SKIP(7) )
+ ROMX_LOAD( "ff_24.5e", 0x000004, 0x20000, CRC(a1ab607a) SHA1(56784c028b82d9e2affd9610f56fde57063e4c28) , ROM_SKIP(7) )
+ ROMX_LOAD( "ff_17.5c", 0x000005, 0x20000, CRC(2dc18cf4) SHA1(5e3bd895600cd30d561a75a2fcb6cc8bc84f4bd1) , ROM_SKIP(7) )
+ ROMX_LOAD( "ff_38.8h", 0x000006, 0x20000, CRC(6535a57f) SHA1(f4da9ec13cad7e3287e34dcceb0eb2d20107bad6) , ROM_SKIP(7) )
+ ROMX_LOAD( "ff_32.8f", 0x000007, 0x20000, CRC(c8bc4a57) SHA1(3eaf2b4e910fe1f79154020122d786d23a2e594a) , ROM_SKIP(7) )
+ ROMX_LOAD( "ff_10.5b", 0x100000, 0x20000, CRC(624a924a) SHA1(48fd0498f9ed54003bf6578fbcbc8b7e90a195eb) , ROM_SKIP(7) )
+ ROMX_LOAD( "ff_02.5a", 0x100001, 0x20000, CRC(5d91f694) SHA1(e0ea9ec82dec985d8bf5e7cebf5fe3d8ef7557b1) , ROM_SKIP(7) )
+ ROMX_LOAD( "ff_14.10b", 0x100002, 0x20000, CRC(0a2e9101) SHA1(6c8d550d2066cd53355ccf14ac1fd35914982094) , ROM_SKIP(7) )
+ ROMX_LOAD( "ff_06.10a", 0x100003, 0x20000, CRC(1c18f042) SHA1(f708296570fecad82a76dc59744873a2f5568ea1) , ROM_SKIP(7) )
+ ROMX_LOAD( "ff_25.7e", 0x100004, 0x20000, CRC(6e8181ea) SHA1(2c32bc0364650ee6ca0d24754a7a3401295ffcd5) , ROM_SKIP(7) )
+ ROMX_LOAD( "ff_18.7c", 0x100005, 0x20000, CRC(b19ede59) SHA1(7e79ad9f17b36e042d774bef3bbb44018332ca01) , ROM_SKIP(7) )
+ ROMX_LOAD( "ff_39.9h", 0x100006, 0x20000, CRC(9416b477) SHA1(f2310dfcfe960e8b822c07849b594d54dfc2b2ca) , ROM_SKIP(7) )
+ ROMX_LOAD( "ff_33.9f", 0x100007, 0x20000, CRC(7369fa07) SHA1(3b2750fe33729395217c96909b4b6c5f3d6e9943) , ROM_SKIP(7) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "ff_23.13c", 0x00000, 0x08000, CRC(b8367eb5) SHA1(ec3db29fdd6200e9a8f4f8073a7e34aef731354f) ) // == ff_09.12b
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "ff_30.12e", 0x00000, 0x20000, CRC(375c66e7) SHA1(36189e23209ce4ae5d9cbabd1574540d0591e7b3) ) // == ff_18.11c
+ ROM_LOAD( "ff_31.13e", 0x20000, 0x20000, CRC(1ef137f9) SHA1(974b5e72aa28b87ebfa7438efbdfeda769dedf5e) ) // == ff_19.12c
+
+ 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( "s222b.1a", 0x0000, 0x0117, CRC(6d86b45e) SHA1(2b27646adaf1ca2f58e14754d6f7ef4fdca77fbe) )
+ ROM_LOAD( "lwio.12c", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) )
+ROM_END
+
+/* B-Board 89625B-1 */
+ROM_START( ffightj3 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "ff_36.12f", 0x00000, 0x20000, CRC(ed988977) SHA1(c718e989206bd2b68832c8fcb5667397d500ebac) ) // == ffu_30.11f
+ ROM_LOAD16_BYTE( "ffj_42.12h", 0x00001, 0x20000, CRC(07bf1c21) SHA1(f21a939fd92607c7f54816dedbcb3c5818cf4183) ) // sldh - == ffu_35.11h
+ ROM_LOAD16_BYTE( "ff_37.13f", 0x40000, 0x20000, CRC(dba5a476) SHA1(2f0176dd050f9630b914f1c1ca5d96215bcf567f) ) // == ffu_31.12f
+ ROM_LOAD16_BYTE( "ffj_43.13h", 0x40001, 0x20000, CRC(fbeca028) SHA1(85eeed6a25b401d73d12896ca1e2bf7402c921ee) ) // sldh
+ ROM_LOAD16_BYTE( "ff_34.10f", 0x80000, 0x20000, CRC(0c8dc3fc) SHA1(edcce3efd9cdd131ef0c96df15a68722d5c3498e) ) // == ff-32m.8h
+ ROM_LOAD16_BYTE( "ffj_40.10h", 0x80001, 0x20000, CRC(8075bab9) SHA1(f9c7405133f6fc5557c90e60e8ccc459e4f6fd7d) ) // == ff-32m.8h
+ ROM_LOAD16_BYTE( "ff_35.11f", 0xc0000, 0x20000, CRC(4a934121) SHA1(3982c261582755a0eac340d6d7ed96e6c263c8b6) ) // == ff-32m.8h
+ ROM_LOAD16_BYTE( "ffj_41.11h", 0xc0001, 0x20000, CRC(2af68154) SHA1(7d549cb38650b4b79c68ad6d0dfcefdd62be4e99) ) // == ff-32m.8h
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "ff_09.4b", 0x000000, 0x20000, CRC(5b116d0d) SHA1(a24e829fdfa043bd27b508d7cc0788ad80fd180e) , ROM_SKIP(7) )
+ ROMX_LOAD( "ff_01.4a", 0x000001, 0x20000, CRC(815b1797) SHA1(549e5eefc8f607fec1c954ba715ff21b8e44a5aa) , ROM_SKIP(7) )
+ ROMX_LOAD( "ff_13.9b", 0x000002, 0x20000, CRC(8721a7da) SHA1(39b2b324fd7810342503f23695e423f364a6294d) , ROM_SKIP(7) )
+ ROMX_LOAD( "ff_05.9a", 0x000003, 0x20000, CRC(d0fcd4b5) SHA1(97ebcbead0cca7e425143c500c433dbcf9cadcc2) , ROM_SKIP(7) )
+ ROMX_LOAD( "ff_24.5e", 0x000004, 0x20000, CRC(a1ab607a) SHA1(56784c028b82d9e2affd9610f56fde57063e4c28) , ROM_SKIP(7) )
+ ROMX_LOAD( "ff_17.5c", 0x000005, 0x20000, CRC(2dc18cf4) SHA1(5e3bd895600cd30d561a75a2fcb6cc8bc84f4bd1) , ROM_SKIP(7) )
+ ROMX_LOAD( "ffj_38.8h", 0x000006, 0x20000, CRC(6535a57f) SHA1(f4da9ec13cad7e3287e34dcceb0eb2d20107bad6) , ROM_SKIP(7) )
+ ROMX_LOAD( "ff_32.8f", 0x000007, 0x20000, CRC(c8bc4a57) SHA1(3eaf2b4e910fe1f79154020122d786d23a2e594a) , ROM_SKIP(7) )
+ ROMX_LOAD( "ff_10.5b", 0x100000, 0x20000, CRC(624a924a) SHA1(48fd0498f9ed54003bf6578fbcbc8b7e90a195eb) , ROM_SKIP(7) )
+ ROMX_LOAD( "ff_02.5a", 0x100001, 0x20000, CRC(5d91f694) SHA1(e0ea9ec82dec985d8bf5e7cebf5fe3d8ef7557b1) , ROM_SKIP(7) )
+ ROMX_LOAD( "ff_14.10b", 0x100002, 0x20000, CRC(0a2e9101) SHA1(6c8d550d2066cd53355ccf14ac1fd35914982094) , ROM_SKIP(7) )
+ ROMX_LOAD( "ff_06.10a", 0x100003, 0x20000, CRC(1c18f042) SHA1(f708296570fecad82a76dc59744873a2f5568ea1) , ROM_SKIP(7) )
+ ROMX_LOAD( "ff_25.7e", 0x100004, 0x20000, CRC(6e8181ea) SHA1(2c32bc0364650ee6ca0d24754a7a3401295ffcd5) , ROM_SKIP(7) )
+ ROMX_LOAD( "ff_18.7c", 0x100005, 0x20000, CRC(b19ede59) SHA1(7e79ad9f17b36e042d774bef3bbb44018332ca01) , ROM_SKIP(7) )
+ ROMX_LOAD( "ffj_39.9h", 0x100006, 0x20000, CRC(9416b477) SHA1(f2310dfcfe960e8b822c07849b594d54dfc2b2ca) , ROM_SKIP(7) )
+ ROMX_LOAD( "ff_33.9f", 0x100007, 0x20000, CRC(7369fa07) SHA1(3b2750fe33729395217c96909b4b6c5f3d6e9943) , ROM_SKIP(7) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "ff_23.13b", 0x00000, 0x08000, CRC(b8367eb5) SHA1(ec3db29fdd6200e9a8f4f8073a7e34aef731354f) ) // == ff_09.12b
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "ff_30.12c", 0x00000, 0x20000, CRC(375c66e7) SHA1(36189e23209ce4ae5d9cbabd1574540d0591e7b3) ) // == ff_18.11c
+ ROM_LOAD( "ff_31.13c", 0x20000, 0x20000, CRC(1ef137f9) SHA1(974b5e72aa28b87ebfa7438efbdfeda769dedf5e) ) // == ff_19.12c
+
+ 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( "s222b.1a", 0x0000, 0x0117, CRC(6d86b45e) SHA1(2b27646adaf1ca2f58e14754d6f7ef4fdca77fbe) )
+ ROM_LOAD( "lwio.12e", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) ) // pal verification required
+ROM_END
+
+/* B-Board 91634B-2 */
+/* This hack uses an official and original Final Fight JAP CPS-B-21 Board. The EPROMS have been modified and phoenixed.
+ The Board uses a GAL instead of the classic PAL located in position "1A". There is no ROM check at the start and no logo
+ Capcom (instead a chinese logo... maybe the bootleggers logo). Even if it's a JAP Board, the game intro is in english. */
+ROM_START( ffightjh )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "ff_23.8f", 0x00000, 0x80000, CRC(ae3dda7f) SHA1(5f08ce1e6b6b0d45994d3354d59ef79f489c7ad7) )
+ ROM_LOAD16_WORD_SWAP( "ff_22.7f", 0x80000, 0x80000, CRC(b2d5a3aa) SHA1(b60f7480d3d3ceebad4c21025394bacc154d7042) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "ff_1.3a", 0x000000, 0x80000, CRC(969d18e2) SHA1(7a30b7434e34ec98838a9ab8d953b2ef467d562e), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ff_2.4a", 0x000002, 0x80000, CRC(02b59f99) SHA1(c1cb2bbf95c2006baad58b0a5a7278f1a8999901), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ff_3.5a", 0x000004, 0x80000, CRC(01d507ae) SHA1(d7813daa5bd74bebdbbea578acb20ad3c8816997), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ff_4.6a", 0x000006, 0x80000, CRC(f7c4ceb0) SHA1(3e9cf6379f06c5a736b4a0aadb7fbda914b91190), ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "ff_9.12a", 0x00000, 0x08000, CRC(b8367eb5) SHA1(ec3db29fdd6200e9a8f4f8073a7e34aef731354f) ) // == ff_09.12b
+ 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( "gal16v8a-15lp.1a", 0x0000, 0x0117, NO_DUMP )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ROM_END
+
+/* B-Board 89624B-3 */
+ROM_START( 1941 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "41em_30.11f", 0x00000, 0x20000, CRC(4249ec61) SHA1(5323cfa6938e6d95db8469f09b2fb5b5c5068bfc) ) /* label is 41EM_30, pcb verified */
+ ROM_LOAD16_BYTE( "41em_35.11h", 0x00001, 0x20000, CRC(ddbee5eb) SHA1(0fef53398f4e2cd6ccc7bc122dd893e0a4e2e052) ) /* label is 41EM_35, pcb verified */
+ ROM_LOAD16_BYTE( "41em_31.12f", 0x40000, 0x20000, CRC(584e88e5) SHA1(af254408d939cc439b5653e60afbccdf59777085) ) /* label is 41EM_31, pcb verified */
+ ROM_LOAD16_BYTE( "41em_36.12h", 0x40001, 0x20000, CRC(3cfc31d0) SHA1(7c0614e4e25502ff2d18aa4a97c91bf05ead875f) ) /* label is 41EM_36, pcb verified */
+ ROM_LOAD16_WORD_SWAP( "41-32m.8h", 0x80000, 0x80000, CRC(4e9648ca) SHA1(d8e67e6e3a6dc79053e4f56cfd83431385ea7611) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "41-5m.7a", 0x000000, 0x80000, CRC(01d1cb11) SHA1(621e5377d1aaa9f7270d85bea1bdeef6721cdd05) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "41-7m.9a", 0x000002, 0x80000, CRC(aeaa3509) SHA1(6124ef06d9dfdd879181856bd49853f1800c3b87) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "41-1m.3a", 0x000004, 0x80000, CRC(ff77985a) SHA1(7e08df3a829bf9617470a46c79b713d4d9ebacae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "41-3m.5a", 0x000006, 0x80000, CRC(983be58f) SHA1(83a4decdd775f859240771269b8af3a5981b244c) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "41_9.12b", 0x00000, 0x08000, CRC(0f9d8527) SHA1(3a00dd5772f38081fde11d8d61ba467379e2a636) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "41_18.11c", 0x00000, 0x20000, CRC(d1f15aeb) SHA1(88089383f2d54fc97026a67f067d448eee5bd0c2) )
+ ROM_LOAD( "41_19.12c", 0x20000, 0x20000, CRC(15aec3a6) SHA1(8153c03aba005bab62bf0e8b3d15ec1c346326fd) )
+
+ 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( "yi24b.1a", 0x0000, 0x0117, CRC(3004dcdf) SHA1(a73d86d1545af1d99a03d88af83449ec82b03c5c) )
+ ROM_LOAD( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ROM_END
+
+/* B-Board 89624B-3 */
+ROM_START( 1941r1 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "41e_30.11f", 0x00000, 0x20000, CRC(9deb1e75) SHA1(68d9f91bef6a5c9e1bcbf286629aed6b37b4acb9) )
+ ROM_LOAD16_BYTE( "41e_35.11h", 0x00001, 0x20000, CRC(d63942b3) SHA1(b4bc7d06dcefbc075d316f2d31abbd4c7a99dbae) )
+ ROM_LOAD16_BYTE( "41e_31.12f", 0x40000, 0x20000, CRC(df201112) SHA1(d84f63bffeb9255cbabc02f23d7511f9b3c6a96c) )
+ ROM_LOAD16_BYTE( "41e_36.12h", 0x40001, 0x20000, CRC(816a818f) SHA1(3e491a30352b71ddd775142f3a80cdde480b669f) )
+ ROM_LOAD16_WORD_SWAP( "41-32m.8h", 0x80000, 0x80000, CRC(4e9648ca) SHA1(d8e67e6e3a6dc79053e4f56cfd83431385ea7611) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "41-5m.7a", 0x000000, 0x80000, CRC(01d1cb11) SHA1(621e5377d1aaa9f7270d85bea1bdeef6721cdd05) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "41-7m.9a", 0x000002, 0x80000, CRC(aeaa3509) SHA1(6124ef06d9dfdd879181856bd49853f1800c3b87) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "41-1m.3a", 0x000004, 0x80000, CRC(ff77985a) SHA1(7e08df3a829bf9617470a46c79b713d4d9ebacae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "41-3m.5a", 0x000006, 0x80000, CRC(983be58f) SHA1(83a4decdd775f859240771269b8af3a5981b244c) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "41_9.12b", 0x00000, 0x08000, CRC(0f9d8527) SHA1(3a00dd5772f38081fde11d8d61ba467379e2a636) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "41_18.11c", 0x00000, 0x20000, CRC(d1f15aeb) SHA1(88089383f2d54fc97026a67f067d448eee5bd0c2) )
+ ROM_LOAD( "41_19.12c", 0x20000, 0x20000, CRC(15aec3a6) SHA1(8153c03aba005bab62bf0e8b3d15ec1c346326fd) )
+
+ 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( "yi24b.1a", 0x0000, 0x0117, CRC(3004dcdf) SHA1(a73d86d1545af1d99a03d88af83449ec82b03c5c) )
+ ROM_LOAD( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ROM_END
+
+/* B-Board 89624B-3 */
+ROM_START( 1941u )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "41u_30.11f", 0x00000, 0x20000, CRC(be5439d0) SHA1(a62e0aa4f13f504c0eded99d731f7c820c51cb3d) )
+ ROM_LOAD16_BYTE( "41u_35.11h", 0x00001, 0x20000, CRC(6ac96595) SHA1(efff8185fd1aee29d9b5164a9aac61f77f769ae4) )
+ ROM_LOAD16_BYTE( "41u_31.12f", 0x40000, 0x20000, CRC(9811d6eb) SHA1(6dda86a3a726a2b5459f0b90f58343966e9783cc) )
+ ROM_LOAD16_BYTE( "41u_36.12h", 0x40001, 0x20000, CRC(a87e6137) SHA1(d4b63a0c14a35ebd61cddd01cdc6fc955d521ae2) )
+ ROM_LOAD16_WORD_SWAP( "41-32m.8h", 0x80000, 0x80000, CRC(4e9648ca) SHA1(d8e67e6e3a6dc79053e4f56cfd83431385ea7611) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "41-5m.7a", 0x000000, 0x80000, CRC(01d1cb11) SHA1(621e5377d1aaa9f7270d85bea1bdeef6721cdd05) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "41-7m.9a", 0x000002, 0x80000, CRC(aeaa3509) SHA1(6124ef06d9dfdd879181856bd49853f1800c3b87) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "41-1m.3a", 0x000004, 0x80000, CRC(ff77985a) SHA1(7e08df3a829bf9617470a46c79b713d4d9ebacae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "41-3m.5a", 0x000006, 0x80000, CRC(983be58f) SHA1(83a4decdd775f859240771269b8af3a5981b244c) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "41_9.12b", 0x00000, 0x08000, CRC(0f9d8527) SHA1(3a00dd5772f38081fde11d8d61ba467379e2a636) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "41e_18.11c", 0x00000, 0x20000, CRC(d1f15aeb) SHA1(88089383f2d54fc97026a67f067d448eee5bd0c2) ) // == 41_18.11c /* label is 41E_18, pcb verified */
+ ROM_LOAD( "41_19.12c", 0x20000, 0x20000, CRC(15aec3a6) SHA1(8153c03aba005bab62bf0e8b3d15ec1c346326fd) )
+
+ 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( "yi24b.1a", 0x0000, 0x0117, CRC(3004dcdf) SHA1(a73d86d1545af1d99a03d88af83449ec82b03c5c) )
+ ROM_LOAD( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ROM_END
+
+/* B-Board 89625B-1 */
+ROM_START( 1941j )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "41_36.12f", 0x00000, 0x20000, CRC(7fbd42ab) SHA1(4e52a599e3099bf3cccabb89152c69f216fde79e) )
+ ROM_LOAD16_BYTE( "41_42.12h", 0x00001, 0x20000, CRC(c7781f89) SHA1(7e99c433de0c903791ae153a3cc8632042b0a90d) )
+ ROM_LOAD16_BYTE( "41_37.13f", 0x40000, 0x20000, CRC(c6464b0b) SHA1(abef422d891d32334a858d49599f1ef7cf0db45d) )
+ ROM_LOAD16_BYTE( "41_43.13h", 0x40001, 0x20000, CRC(440fc0b5) SHA1(e725535533c25a2c80a45a2200bbfd0dcda5ed97) )
+ ROM_LOAD16_BYTE( "41_34.10f", 0x80000, 0x20000, CRC(b5f341ec) SHA1(95c740332e9e05250979a098e951600ca89cfde4) ) // == 41-32m.8h
+ ROM_LOAD16_BYTE( "41_40.10h", 0x80001, 0x20000, CRC(3979837d) SHA1(e35bca5cd6f7559447c553c7866a3934080ca018) ) // == 41-32m.8h
+ ROM_LOAD16_BYTE( "41_35.11f", 0xc0000, 0x20000, CRC(95cc979a) SHA1(96a22d2accdcd1ed3829ab0e1f17c1615f8bb2a9) ) // == 41-32m.8h
+ ROM_LOAD16_BYTE( "41_41.11h", 0xc0001, 0x20000, CRC(57496819) SHA1(fe705a25a2c6523c3bc0105f4b183931c5ffcc81) ) // == 41-32m.8h
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "41_09.4b", 0x000000, 0x20000, CRC(be1b6bc2) SHA1(0b11efb7adf6bb9c5fdef702171edd38c149e338) , ROM_SKIP(7) ) // == 41-5m.7a
+ ROMX_LOAD( "41_01.4a", 0x000001, 0x20000, CRC(d8946fc1) SHA1(e18d2bd5517a9a74973f5a505e59e400db3843e2) , ROM_SKIP(7) ) // == 41-5m.7a
+ ROMX_LOAD( "41_13.9b", 0x000002, 0x20000, CRC(2e06d0ec) SHA1(b7c886dce6bc5eefa34e39faec658dd9df34f82c) , ROM_SKIP(7) ) // == 41-7m.9a
+ ROMX_LOAD( "41_05.9a", 0x000003, 0x20000, CRC(d8ba28e0) SHA1(dd1908166b32cf3bb3222f6d3febc21371463395) , ROM_SKIP(7) ) // == 41-7m.9a
+ ROMX_LOAD( "41_24.5e", 0x000004, 0x20000, CRC(5aa43cee) SHA1(15e1aa2fee8deb25eefba067395961fee3e4c84d) , ROM_SKIP(7) ) // == 41-1m.3a
+ ROMX_LOAD( "41_17.5c", 0x000005, 0x20000, CRC(bbeff902) SHA1(1bf421072387ab7d59b57ecd33cb5ae6fd8ecd06) , ROM_SKIP(7) ) // == 41-1m.3a
+ ROMX_LOAD( "41_38.8h", 0x000006, 0x20000, CRC(8889c0aa) SHA1(23b74cc78fe1057c1776ea1f7371801441125a85) , ROM_SKIP(7) ) // == 41-3m.5a
+ ROMX_LOAD( "41_32.8f", 0x000007, 0x20000, CRC(f0168249) SHA1(1ce2330ea4460e7e72f16a1f7edbfa8abba6b5a0) , ROM_SKIP(7) ) // == 41-3m.5a
+ ROMX_LOAD( "41_10.5b", 0x100000, 0x20000, CRC(b7eb6a6d) SHA1(444b49e81cd46e90a9e1dfcf465f19c38189b2d7) , ROM_SKIP(7) ) // == 41-5m.7a
+ ROMX_LOAD( "41_02.5a", 0x100001, 0x20000, CRC(802e8153) SHA1(baf19220c53949dac0d0b75368d5f1ee6c32b619) , ROM_SKIP(7) ) // == 41-5m.7a
+ ROMX_LOAD( "41_14.10b", 0x100002, 0x20000, CRC(5a33f676) SHA1(96794463ddfae7ce4a7d7e6b65ff1b8da7b3dd74) , ROM_SKIP(7) ) // == 41-7m.9a
+ ROMX_LOAD( "41_06.10a", 0x100003, 0x20000, CRC(4e53650b) SHA1(a5b19b1ce38f04296dee38d35015869607ecc260) , ROM_SKIP(7) ) // == 41-7m.9a
+ ROMX_LOAD( "41_25.7e", 0x100004, 0x20000, CRC(94add360) SHA1(6f3542f028bdc453d0254de599b124240ea98259) , ROM_SKIP(7) ) // == 41-1m.3a
+ ROMX_LOAD( "41_18.7c", 0x100005, 0x20000, CRC(a5e1c1f3) SHA1(1961ad3c8965c51da8a19a7283333f3a19bb2030) , ROM_SKIP(7) ) // == 41-1m.3a
+ ROMX_LOAD( "41_39.9h", 0x100006, 0x20000, CRC(5b5c3949) SHA1(485b1baecee6bb9a6667baf404375fc758bdfb76) , ROM_SKIP(7) ) // == 41-3m.5a
+ ROMX_LOAD( "41_33.9f", 0x100007, 0x20000, CRC(7a31b0e2) SHA1(f2eca12f4e89266d923a94d0837c555bc1c6cb29) , ROM_SKIP(7) ) // == 41-3m.5a
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "41_23.13b", 0x00000, 0x08000, CRC(0f9d8527) SHA1(3a00dd5772f38081fde11d8d61ba467379e2a636) ) // == 41_9.12b
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "41_30.12c", 0x00000, 0x20000, CRC(d1f15aeb) SHA1(88089383f2d54fc97026a67f067d448eee5bd0c2) ) // == 41_18.11c
+ ROM_LOAD( "41_31.13c", 0x20000, 0x20000, CRC(15aec3a6) SHA1(8153c03aba005bab62bf0e8b3d15ec1c346326fd) ) // == 41_19.12c
+
+ 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( "yi22b.1a", 0x0000, 0x0117, NO_DUMP )
+ ROM_LOAD( "lwio.12e", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) ) // pal verification required
+ROM_END
+
+/* B-Board 89624B-3 */
+ROM_START( mercs )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "so2_30e.11f", 0x00000, 0x20000, CRC(e17f9bf7) SHA1(f44bb378de428b429c97a21f74829182d3187ace) )
+ ROM_LOAD16_BYTE( "so2_35e.11h", 0x00001, 0x20000, CRC(78e63575) SHA1(5776de0daaaedd0dec2cec8d088a0fd8bb3d4dbe) )
+ ROM_LOAD16_BYTE( "so2_31e.12f", 0x40000, 0x20000, CRC(51204d36) SHA1(af288fc369d092f38ea73be967705aacade06f28) )
+ ROM_LOAD16_BYTE( "so2_36e.12h", 0x40001, 0x20000, CRC(9cfba8b4) SHA1(df8ee5e3a68f056f68f096c46fdb548f63d29446) )
+ ROM_LOAD16_WORD_SWAP( "so2-32m.8h", 0x80000, 0x80000, CRC(2eb5cf0c) SHA1(e0d765fb6957d156ffd40cabf51ba6098cbbeb19) )
+
+ ROM_REGION( 0x300000, "gfx", 0 )
+ ROMX_LOAD( "so2-6m.8a", 0x000000, 0x80000, CRC(aa6102af) SHA1(4a45f3547a3640f256e5e20bfd72784f880f03f5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "so2-8m.10a", 0x000002, 0x80000, CRC(839e6869) SHA1(7741141a9f1b1e2956edc1d11f9cc3974390c4ed) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "so2-2m.4a", 0x000004, 0x80000, CRC(597c2875) SHA1(440bd04db2c121a6976e5e1027071d28812942d3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "so2-4m.6a", 0x000006, 0x80000, CRC(912a9ca0) SHA1(b226a4a388e57e23d7a7559773ebee434125a2e4) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "so2_24.7d", 0x200000, 0x20000, CRC(3f254efe) SHA1(5db36eb98a6d3c7acccb561d92c1988d1330cbbf) , ROM_SKIP(7) )
+ ROMX_LOAD( "so2_14.7c", 0x200001, 0x20000, CRC(f5a8905e) SHA1(fada8b635d490c06b75711ed505a025bb0aa4454) , ROM_SKIP(7) )
+ ROMX_LOAD( "so2_26.9d", 0x200002, 0x20000, CRC(f3aa5a4a) SHA1(bcb3396de5524fffd4110bfbeeeca1c936990eb3) , ROM_SKIP(7) )
+ ROMX_LOAD( "so2_16.9c", 0x200003, 0x20000, CRC(b43cd1a8) SHA1(01c2bb802469848a172968802a674c0045a8b8dc) , ROM_SKIP(7) )
+ ROMX_LOAD( "so2_20.3d", 0x200004, 0x20000, CRC(8ca751a3) SHA1(e93bbe7311f14e7e3cbfb42b83fd7fee4bb9cefc) , ROM_SKIP(7) )
+ ROMX_LOAD( "so2_10.3c", 0x200005, 0x20000, CRC(e9f569fd) SHA1(39ae9eacdf1f35ef90d131444c37958d7aaf7238) , ROM_SKIP(7) )
+ ROMX_LOAD( "so2_22.5d", 0x200006, 0x20000, CRC(fce9a377) SHA1(5de5f696f63326f2cb4c38bcb05e07bcf2246071) , ROM_SKIP(7) )
+ ROMX_LOAD( "so2_12.5c", 0x200007, 0x20000, CRC(b7df8a06) SHA1(b42cb0d3f55a1e8fe8afbbd9aeae50074cdc5f08) , ROM_SKIP(7) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "so2_09.12b", 0x00000, 0x08000, CRC(d09d7c7a) SHA1(8e8532be08818c855d9c3ce45716eb07cfab5767) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "so2_18.11c", 0x00000, 0x20000, CRC(bbea1643) SHA1(d43d68a120550067bf0b181f88687ad230cd7908) )
+ ROM_LOAD( "so2_19.12c", 0x20000, 0x20000, CRC(ac58aa71) SHA1(93102272e358bc49d3936302efdc5bb68df84d68) )
+
+ 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( "o224b.1a", 0x0000, 0x0117, CRC(c211c8cd) SHA1(d9464792e663549e6ad20aac6484622298f88a78) )
+ ROM_LOAD( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "c628", 0x0000, 0x0117, NO_DUMP )
+ROM_END
+
+/* B-Board 89624B-3 */
+ROM_START( mercsu )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "so2_30a.11f", 0x00000, 0x20000, CRC(e4e725d7) SHA1(b0454dedeb741a7dd4ceb18bac958417ca74a7e6) )
+ ROM_LOAD16_BYTE( "so2_35a.11h", 0x00001, 0x20000, CRC(e7843445) SHA1(192c85ced637e05b37ed889246ebb73e792e984b) )
+ ROM_LOAD16_BYTE( "so2_31a.12f", 0x40000, 0x20000, CRC(c0b91dea) SHA1(5c1d086ae09e4f66384a03994b3c5e12d80582ff) )
+ ROM_LOAD16_BYTE( "so2_36a.12h", 0x40001, 0x20000, CRC(591edf6c) SHA1(68d77e21fe32e0b95d2fabe40bc1cadd419ab0bd) )
+ ROM_LOAD16_WORD_SWAP( "so2-32m.8h", 0x80000, 0x80000, CRC(2eb5cf0c) SHA1(e0d765fb6957d156ffd40cabf51ba6098cbbeb19) )
+
+ ROM_REGION( 0x300000, "gfx", 0 )
+ ROMX_LOAD( "so2-6m.8a", 0x000000, 0x80000, CRC(aa6102af) SHA1(4a45f3547a3640f256e5e20bfd72784f880f03f5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "so2-8m.10a", 0x000002, 0x80000, CRC(839e6869) SHA1(7741141a9f1b1e2956edc1d11f9cc3974390c4ed) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "so2-2m.4a", 0x000004, 0x80000, CRC(597c2875) SHA1(440bd04db2c121a6976e5e1027071d28812942d3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "so2-4m.6a", 0x000006, 0x80000, CRC(912a9ca0) SHA1(b226a4a388e57e23d7a7559773ebee434125a2e4) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "so2_24.7d", 0x200000, 0x20000, CRC(3f254efe) SHA1(5db36eb98a6d3c7acccb561d92c1988d1330cbbf) , ROM_SKIP(7) )
+ ROMX_LOAD( "so2_14.7c", 0x200001, 0x20000, CRC(f5a8905e) SHA1(fada8b635d490c06b75711ed505a025bb0aa4454) , ROM_SKIP(7) )
+ ROMX_LOAD( "so2_26.9d", 0x200002, 0x20000, CRC(f3aa5a4a) SHA1(bcb3396de5524fffd4110bfbeeeca1c936990eb3) , ROM_SKIP(7) )
+ ROMX_LOAD( "so2_16.9c", 0x200003, 0x20000, CRC(b43cd1a8) SHA1(01c2bb802469848a172968802a674c0045a8b8dc) , ROM_SKIP(7) )
+ ROMX_LOAD( "so2_20.3d", 0x200004, 0x20000, CRC(8ca751a3) SHA1(e93bbe7311f14e7e3cbfb42b83fd7fee4bb9cefc) , ROM_SKIP(7) )
+ ROMX_LOAD( "so2_10.3c", 0x200005, 0x20000, CRC(e9f569fd) SHA1(39ae9eacdf1f35ef90d131444c37958d7aaf7238) , ROM_SKIP(7) )
+ ROMX_LOAD( "so2_22.5d", 0x200006, 0x20000, CRC(fce9a377) SHA1(5de5f696f63326f2cb4c38bcb05e07bcf2246071) , ROM_SKIP(7) )
+ ROMX_LOAD( "so2_12.5c", 0x200007, 0x20000, CRC(b7df8a06) SHA1(b42cb0d3f55a1e8fe8afbbd9aeae50074cdc5f08) , ROM_SKIP(7) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "so2_09.12b", 0x00000, 0x08000, CRC(d09d7c7a) SHA1(8e8532be08818c855d9c3ce45716eb07cfab5767) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "so2_18.11c", 0x00000, 0x20000, CRC(bbea1643) SHA1(d43d68a120550067bf0b181f88687ad230cd7908) )
+ ROM_LOAD( "so2_19.12c", 0x20000, 0x20000, CRC(ac58aa71) SHA1(93102272e358bc49d3936302efdc5bb68df84d68) )
+
+ 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( "o224b.1a", 0x0000, 0x0117, CRC(c211c8cd) SHA1(d9464792e663549e6ad20aac6484622298f88a78) )
+ ROM_LOAD( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "c628", 0x0000, 0x0117, NO_DUMP )
+ROM_END
+
+/* B-Board 89624B-3 */
+ROM_START( mercsur1 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "so2_30.11f", 0x00000, 0x20000, CRC(e17f9bf7) SHA1(f44bb378de428b429c97a21f74829182d3187ace) ) // == so2_30e.11f
+ ROM_LOAD16_BYTE( "so2_35.11h", 0x00001, 0x20000, CRC(4477df61) SHA1(e9b42357c7073c098e8fde7e7d0e4a6e3062fd0d) )
+ ROM_LOAD16_BYTE( "so2_31.12f", 0x40000, 0x20000, CRC(51204d36) SHA1(af288fc369d092f38ea73be967705aacade06f28) ) // == so2_31e.12f
+ ROM_LOAD16_BYTE( "so2_36.12h", 0x40001, 0x20000, CRC(9cfba8b4) SHA1(df8ee5e3a68f056f68f096c46fdb548f63d29446) ) // == so2_36e.12h
+ ROM_LOAD16_WORD_SWAP( "so2-32m.8h", 0x80000, 0x80000, CRC(2eb5cf0c) SHA1(e0d765fb6957d156ffd40cabf51ba6098cbbeb19) )
+
+ ROM_REGION( 0x300000, "gfx", 0 )
+ ROMX_LOAD( "so2-6m.8a", 0x000000, 0x80000, CRC(aa6102af) SHA1(4a45f3547a3640f256e5e20bfd72784f880f03f5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "so2-8m.10a", 0x000002, 0x80000, CRC(839e6869) SHA1(7741141a9f1b1e2956edc1d11f9cc3974390c4ed) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "so2-2m.4a", 0x000004, 0x80000, CRC(597c2875) SHA1(440bd04db2c121a6976e5e1027071d28812942d3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "so2-4m.6a", 0x000006, 0x80000, CRC(912a9ca0) SHA1(b226a4a388e57e23d7a7559773ebee434125a2e4) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "so2_24.7d", 0x200000, 0x20000, CRC(3f254efe) SHA1(5db36eb98a6d3c7acccb561d92c1988d1330cbbf) , ROM_SKIP(7) )
+ ROMX_LOAD( "so2_14.7c", 0x200001, 0x20000, CRC(f5a8905e) SHA1(fada8b635d490c06b75711ed505a025bb0aa4454) , ROM_SKIP(7) )
+ ROMX_LOAD( "so2_26.9d", 0x200002, 0x20000, CRC(f3aa5a4a) SHA1(bcb3396de5524fffd4110bfbeeeca1c936990eb3) , ROM_SKIP(7) )
+ ROMX_LOAD( "so2_16.9c", 0x200003, 0x20000, CRC(b43cd1a8) SHA1(01c2bb802469848a172968802a674c0045a8b8dc) , ROM_SKIP(7) )
+ ROMX_LOAD( "so2_20.3d", 0x200004, 0x20000, CRC(8ca751a3) SHA1(e93bbe7311f14e7e3cbfb42b83fd7fee4bb9cefc) , ROM_SKIP(7) )
+ ROMX_LOAD( "so2_10.3c", 0x200005, 0x20000, CRC(e9f569fd) SHA1(39ae9eacdf1f35ef90d131444c37958d7aaf7238) , ROM_SKIP(7) )
+ ROMX_LOAD( "so2_22.5d", 0x200006, 0x20000, CRC(fce9a377) SHA1(5de5f696f63326f2cb4c38bcb05e07bcf2246071) , ROM_SKIP(7) )
+ ROMX_LOAD( "so2_12.5c", 0x200007, 0x20000, CRC(b7df8a06) SHA1(b42cb0d3f55a1e8fe8afbbd9aeae50074cdc5f08) , ROM_SKIP(7) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "so2_09.12b", 0x00000, 0x08000, CRC(d09d7c7a) SHA1(8e8532be08818c855d9c3ce45716eb07cfab5767) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "so2_18.11c", 0x00000, 0x20000, CRC(bbea1643) SHA1(d43d68a120550067bf0b181f88687ad230cd7908) )
+ ROM_LOAD( "so2_19.12c", 0x20000, 0x20000, CRC(ac58aa71) SHA1(93102272e358bc49d3936302efdc5bb68df84d68) )
+
+ 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( "o224b.1a", 0x0000, 0x0117, CRC(c211c8cd) SHA1(d9464792e663549e6ad20aac6484622298f88a78) )
+ ROM_LOAD( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "c628", 0x0000, 0x0117, NO_DUMP )
+ROM_END
+
+/* B-Board 89625B-1 */
+ROM_START( mercsj )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "so2_36.12f", 0x00000, 0x20000, CRC(e17f9bf7) SHA1(f44bb378de428b429c97a21f74829182d3187ace) ) // == so2_30e.11f
+ ROM_LOAD16_BYTE( "so2_42.12h", 0x00001, 0x20000, CRC(2c3884c6) SHA1(98c3e93741d2344fe0a699aacdc5038bdd9007a0) )
+ ROM_LOAD16_BYTE( "so2_37.13f", 0x40000, 0x20000, CRC(51204d36) SHA1(af288fc369d092f38ea73be967705aacade06f28) ) // == so2_31e.12f
+ ROM_LOAD16_BYTE( "so2_43.13h", 0x40001, 0x20000, CRC(9cfba8b4) SHA1(df8ee5e3a68f056f68f096c46fdb548f63d29446) ) // == so2_36e.12h
+ ROM_LOAD16_BYTE( "so2_34.10f", 0x80000, 0x20000, CRC(b8dae95f) SHA1(2db4a20afd40b772a16f1bee999a0b82d3379ac7) ) // == so2-32m.8h
+ ROM_LOAD16_BYTE( "so2_40.10h", 0x80001, 0x20000, CRC(de37771c) SHA1(45e1e2ef4e46dbe8881e809d700fdd3d06a03c92) ) // == so2-32m.8h
+ ROM_LOAD16_BYTE( "so2_35.11f", 0xc0000, 0x20000, CRC(7d24394d) SHA1(2f4cf51fcfc1b960b68cfe3f1b75914402f2c702) ) // == so2-32m.8h
+ ROM_LOAD16_BYTE( "so2_41.11h", 0xc0001, 0x20000, CRC(914f85e0) SHA1(0b32adf2d3c83e187a5f670de18728726fabb731) ) // == so2-32m.8h
+
+ ROM_REGION( 0x300000, "gfx", 0 )
+ ROMX_LOAD( "so2_09.4b", 0x000000, 0x20000, CRC(690c261d) SHA1(27219101fb62a0c0378e6f5d2f9c0bb5c9397193) , ROM_SKIP(7) ) // == so2-6m.8a
+ ROMX_LOAD( "so2_01.4a", 0x000001, 0x20000, CRC(31fd2715) SHA1(d80b7a93c3b4e5e482fe6bb9ed9d261377980351) , ROM_SKIP(7) ) // == so2-6m.8a
+ ROMX_LOAD( "so2_13.9b", 0x000002, 0x20000, CRC(b5e48282) SHA1(5f387929b4f1ebb8cb8c24138317d4208e2cf7c2) , ROM_SKIP(7) ) // == so2-8m.10a
+ ROMX_LOAD( "so2_05.9a", 0x000003, 0x20000, CRC(54bed82c) SHA1(4a45ceaec3f6162443b2c62b816612c19a609341) , ROM_SKIP(7) ) // == so2-8m.10a
+ ROMX_LOAD( "so2_24.5e", 0x000004, 0x20000, CRC(78b6f0cb) SHA1(679c39d71d3b73db088d0ab017e80fd8316045b5) , ROM_SKIP(7) ) // == so2-2m.4a
+ ROMX_LOAD( "so2_17.5c", 0x000005, 0x20000, CRC(e78bb308) SHA1(7c0c2cf4c79e0bb3c401ba8fdcc88ccc3ed64246) , ROM_SKIP(7) ) // == so2-2m.4a
+ ROMX_LOAD( "so2_38.8h", 0x000006, 0x20000, CRC(0010a9a2) SHA1(03fedaaa939b56afb1b376243542e68da68e2690) , ROM_SKIP(7) ) // == so2-4m.6a
+ ROMX_LOAD( "so2_32.8f", 0x000007, 0x20000, CRC(75dffc9a) SHA1(ef296e1c0742e0b5a6e104032f0492151e631691) , ROM_SKIP(7) ) // == so2-4m.6a
+ ROMX_LOAD( "so2_10.5b", 0x100000, 0x20000, CRC(2f871714) SHA1(8a39f120e3f50fc9a7e6cee659260b2f823fb0e0) , ROM_SKIP(7) ) // == so2-6m.8a
+ ROMX_LOAD( "so2_02.5a", 0x100001, 0x20000, CRC(b4b2a0b7) SHA1(ee42ed3de9021e8d08d6c7115f2de73476b93452) , ROM_SKIP(7) ) // == so2-6m.8a
+ ROMX_LOAD( "so2_14.10b", 0x100002, 0x20000, CRC(737a744b) SHA1(8e1477a67862f7c0c598d3d1a1f633946e7ab31b) , ROM_SKIP(7) ) // == so2-8m.10a
+ ROMX_LOAD( "so2_06.10a", 0x100003, 0x20000, CRC(9d756f51) SHA1(4e9773ee25f6a952fb4f541d37e5e46e4089fd07) , ROM_SKIP(7) ) // == so2-8m.10a
+ ROMX_LOAD( "so2_25.7e", 0x100004, 0x20000, CRC(6d0e05d6) SHA1(47cbec235bd4b250db007218dc357101ae453d1a) , ROM_SKIP(7) ) // == so2-2m.4a
+ ROMX_LOAD( "so2_18.7c", 0x100005, 0x20000, CRC(96f61f4e) SHA1(954334bd8c2d2b02175de60d6a181a23e723d040) , ROM_SKIP(7) ) // == so2-2m.4a
+ ROMX_LOAD( "so2_39.9h", 0x100006, 0x20000, CRC(d52ba336) SHA1(49550d316e575a4e64ea6a5f769f3cd716be6df5) , ROM_SKIP(7) ) // == so2-4m.6a
+ ROMX_LOAD( "so2_33.9f", 0x100007, 0x20000, CRC(39b90d25) SHA1(1089cca168a4abeb398fa93eddd4d9fff70d5db5) , ROM_SKIP(7) ) // == so2-4m.6a
+ ROMX_LOAD( "so2_11.7b", 0x200000, 0x20000, CRC(3f254efe) SHA1(5db36eb98a6d3c7acccb561d92c1988d1330cbbf) , ROM_SKIP(7) ) // == so2_24.7d
+ ROMX_LOAD( "so2_03.7a", 0x200001, 0x20000, CRC(f5a8905e) SHA1(fada8b635d490c06b75711ed505a025bb0aa4454) , ROM_SKIP(7) ) // == so2_14.7c
+ ROMX_LOAD( "so2_15.11b", 0x200002, 0x20000, CRC(f3aa5a4a) SHA1(bcb3396de5524fffd4110bfbeeeca1c936990eb3) , ROM_SKIP(7) ) // == so2_26.9d
+ ROMX_LOAD( "so2_07.11a", 0x200003, 0x20000, CRC(b43cd1a8) SHA1(01c2bb802469848a172968802a674c0045a8b8dc) , ROM_SKIP(7) ) // == so2_16.9c
+ ROMX_LOAD( "so2_26.8e", 0x200004, 0x20000, CRC(8ca751a3) SHA1(e93bbe7311f14e7e3cbfb42b83fd7fee4bb9cefc) , ROM_SKIP(7) ) // == so2_20.3d
+ ROMX_LOAD( "so2_19.8c", 0x200005, 0x20000, CRC(e9f569fd) SHA1(39ae9eacdf1f35ef90d131444c37958d7aaf7238) , ROM_SKIP(7) ) // == so2_10.3c
+ ROMX_LOAD( "so2_28.10e", 0x200006, 0x20000, CRC(fce9a377) SHA1(5de5f696f63326f2cb4c38bcb05e07bcf2246071) , ROM_SKIP(7) ) // == so2_22.5d
+ ROMX_LOAD( "so2_21.10c", 0x200007, 0x20000, CRC(b7df8a06) SHA1(b42cb0d3f55a1e8fe8afbbd9aeae50074cdc5f08) , ROM_SKIP(7) ) // == so2_12.5c
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "so2_23.13b", 0x00000, 0x08000, CRC(d09d7c7a) SHA1(8e8532be08818c855d9c3ce45716eb07cfab5767) ) // == so2_09.12b
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "so2_30.12c", 0x00000, 0x20000, CRC(bbea1643) SHA1(d43d68a120550067bf0b181f88687ad230cd7908) ) // == so2_18.11c
+ ROM_LOAD( "so2_31.13c", 0x20000, 0x20000, CRC(ac58aa71) SHA1(93102272e358bc49d3936302efdc5bb68df84d68) ) // == so2_19.12c
+
+ 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( "o222b.1a", 0x0000, 0x0117, NO_DUMP )
+ ROM_LOAD( "lwio.12e", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) ) // pal verification required
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "c628", 0x0000, 0x0117, NO_DUMP )
+ROM_END
+
+/* B-Board 89624B-3 */
+ROM_START( mtwins )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "che_30.11f", 0x00000, 0x20000, CRC(9a2a2db1) SHA1(57524e76311afc8ab5d5affa76c85cb1be5a1faf) )
+ ROM_LOAD16_BYTE( "che_35.11h", 0x00001, 0x20000, CRC(a7f96b02) SHA1(b5fda02e5069f9e1cdafbacf98334510e9af8fcd) )
+ ROM_LOAD16_BYTE( "che_31.12f", 0x40000, 0x20000, CRC(bbff8a99) SHA1(1f931fad9f43a1494f3b8dbcf910156d5b0bd458) )
+ ROM_LOAD16_BYTE( "che_36.12h", 0x40001, 0x20000, CRC(0fa00c39) SHA1(6404d91590c5c521c8fe944a0aa7091e35b664ae) )
+ ROM_LOAD16_WORD_SWAP( "ck-32m.8h", 0x80000, 0x80000, CRC(9b70bd41) SHA1(28ec37d9d0ace5b9fd212fdc02e0f13dc280c068) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "ck-5m.7a", 0x000000, 0x80000, CRC(4ec75f15) SHA1(a4669e3864009b01894406db784116ad5cd2eced) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ck-7m.9a", 0x000002, 0x80000, CRC(d85d00d6) SHA1(ca6ddcbfbb0f9ad98dc19f09e879fdac5b62d168) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ck-1m.3a", 0x000004, 0x80000, CRC(f33ca9d4) SHA1(480d90ff16f27777cc7d7de6925ed6378b35dc27) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ck-3m.5a", 0x000006, 0x80000, CRC(0ba2047f) SHA1(efee13b955c2ded52700025cecbb9fb301098b61) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "ch_09.12b", 0x00000, 0x08000, CRC(4d4255b7) SHA1(81a76b58043af7252a854b7efc4109957ef0e679) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "ch_18.11c", 0x00000, 0x20000, CRC(f909e8de) SHA1(2dd5bd4076e7d5ded98b72919f868ea700df2e4f) )
+ ROM_LOAD( "ch_19.12c", 0x20000, 0x20000, CRC(fc158cf7) SHA1(294b93d0aea60663ffe96364671552e944a1264b) )
+
+ 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( "ck24b.1a", 0x0000, 0x0117, CRC(bd99c448) SHA1(2692c158f76769b0743103cc3a6d1c5d1f4f52ec) )
+ ROM_LOAD( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ROM_END
+
+/* B-Board 89625B-1 */
+ROM_START( chikij )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "chj_36a.12f", 0x00000, 0x20000, CRC(ec1328d8) SHA1(a7111f9c264c56d1c6474ec3ad90e394a32a86f6) )
+ ROM_LOAD16_BYTE( "chj_42a.12h", 0x00001, 0x20000, CRC(4ae13503) SHA1(c47db0445e107ad4fb62b74e277a7dc2b4d9b7ea) )
+ ROM_LOAD16_BYTE( "chj_37a.13f", 0x40000, 0x20000, CRC(46d2cf7b) SHA1(5cb7ed3003d89a08882d4dcd326c8fd9430f0eac) )
+ ROM_LOAD16_BYTE( "chj_43a.13h", 0x40001, 0x20000, CRC(8d387fe8) SHA1(7832ecd487b5ef4e49b5ea78e80e52f8e2dcaa17) )
+ ROM_LOAD16_BYTE( "ch_34.10f", 0x80000, 0x20000, CRC(609ed2f9) SHA1(869924ff1bc78ac4b50bcfd37a8e76820a9fddf1) ) // == ck-32m.8h
+ ROM_LOAD16_BYTE( "ch_40.10h", 0x80001, 0x20000, CRC(be0d8301) SHA1(28dbbb4176800b31068b1beecf54a78085092e5a) ) // == ck-32m.8h
+ ROM_LOAD16_BYTE( "ch_35.11f", 0xc0000, 0x20000, CRC(b810867f) SHA1(c971d286c60a9b61f42ea3b792cf59847aacb965) ) // == ck-32m.8h
+ ROM_LOAD16_BYTE( "ch_41.11h", 0xc0001, 0x20000, CRC(8ad96155) SHA1(673a5b5eb7330fbbc02aabcdb164efea193613a3) ) // == ck-32m.8h
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "ch_09.4b", 0x000000, 0x20000, CRC(567ab3ca) SHA1(b3d1531d9307285fcecff937dce0bed7ce9e4253) , ROM_SKIP(7) ) // == ck-5m.7a
+ ROMX_LOAD( "ch_01.4a", 0x000001, 0x20000, CRC(7f3b7b56) SHA1(cf78c3122628aa0e14f7b5017429aee35e9b266d) , ROM_SKIP(7) ) // == ck-5m.7a
+ ROMX_LOAD( "ch_13.9b", 0x000002, 0x20000, CRC(12a7a8ba) SHA1(22eaa1c667213a37b2c700c5c80dbf9cb81b9f5f) , ROM_SKIP(7) ) // == ck-7m.9a
+ ROMX_LOAD( "ch_05.9a", 0x000003, 0x20000, CRC(6c1afb9a) SHA1(cef28a63550c6ec3fe7cd7ec478a7fb726df4e27) , ROM_SKIP(7) ) // == ck-7m.9a
+ ROMX_LOAD( "ch_24.5e", 0x000004, 0x20000, CRC(9cb6e6bc) SHA1(af241438de5bd754e176eec8ad45941f9bf30523) , ROM_SKIP(7) ) // == ck-1m.3a
+ ROMX_LOAD( "ch_17.5c", 0x000005, 0x20000, CRC(fe490846) SHA1(0d1ddb79c1ee2a7ff4bcdb960e18fc3cfb115e75) , ROM_SKIP(7) ) // == ck-1m.3a
+ ROMX_LOAD( "ch_38.8h", 0x000006, 0x20000, CRC(6e5c8cb6) SHA1(438b897c14dccc0a185032b1ae2b93d71eed305a) , ROM_SKIP(7) ) // == ck-3m.5a
+ ROMX_LOAD( "ch_32.8f", 0x000007, 0x20000, CRC(317d27b0) SHA1(5d8a3ab24fcf65b30e1c0affd80301e29e3bf208) , ROM_SKIP(7) ) // == ck-3m.5a
+ ROMX_LOAD( "ch_10.5b", 0x100000, 0x20000, CRC(e8251a9b) SHA1(e0d5eaba20dc1132643b9ea334b36034ce97fc6d) , ROM_SKIP(7) ) // == ck-5m.7a
+ ROMX_LOAD( "ch_02.5a", 0x100001, 0x20000, CRC(7c8c88fb) SHA1(29d1e5d6780b7d6875efff6b086fd03bef779df7) , ROM_SKIP(7) ) // == ck-5m.7a
+ ROMX_LOAD( "ch_14.10b", 0x100002, 0x20000, CRC(4012ec4b) SHA1(041e08e1f407528da84b973d16c5f64f02bd14fe) , ROM_SKIP(7) ) // == ck-7m.9a
+ ROMX_LOAD( "ch_06.10a", 0x100003, 0x20000, CRC(81884b2b) SHA1(1e4682183c167c95b2fb3986887c31d3e8911484) , ROM_SKIP(7) ) // == ck-7m.9a
+ ROMX_LOAD( "ch_25.7e", 0x100004, 0x20000, CRC(1dfcbac5) SHA1(a7e419326a4bb7062c5bc7d0b3194b96e00a92d0) , ROM_SKIP(7) ) // == ck-1m.3a
+ ROMX_LOAD( "ch_18.7c", 0x100005, 0x20000, CRC(516a34d1) SHA1(6516fa19d251898c6f55ab0fda760fc5404bef06) , ROM_SKIP(7) ) // == ck-1m.3a
+ ROMX_LOAD( "ch_39.9h", 0x100006, 0x20000, CRC(872fb2a4) SHA1(1f5d12b78100dfba7f6c9a076f7923811467aa2b) , ROM_SKIP(7) ) // == ck-3m.5a
+ ROMX_LOAD( "ch_33.9f", 0x100007, 0x20000, CRC(30dc5ded) SHA1(34a7a6f9aa61ce47116d63c2feb7ea8a427b93e0) , ROM_SKIP(7) ) // == ck-3m.5a
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "ch_23.13b", 0x00000, 0x08000, CRC(4d4255b7) SHA1(81a76b58043af7252a854b7efc4109957ef0e679) ) // == ch_09.12b
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "ch_30.12c", 0x00000, 0x20000, CRC(f909e8de) SHA1(2dd5bd4076e7d5ded98b72919f868ea700df2e4f) ) // == ch_18.11c
+ ROM_LOAD( "ch_31.13c", 0x20000, 0x20000, CRC(fc158cf7) SHA1(294b93d0aea60663ffe96364671552e944a1264b) ) // == ch_19.12c
+
+ 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( "ck22b.1a", 0x0000, 0x0117, CRC(24fdfdeb) SHA1(850b760de694dc5455e63c89983266ecda836400) )
+ ROM_LOAD( "iob1.12e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) // pal verification required
+ROM_END
+
+/* B-Board 89624B-3 */
+ROM_START( msword )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "mse_30.11f", 0x00000, 0x20000, CRC(03fc8dbc) SHA1(a9e4e8a06e2d170faeae75a8b17fd65e6e5fecd4) )
+ ROM_LOAD16_BYTE( "mse_35.11h", 0x00001, 0x20000, CRC(d5bf66cd) SHA1(37c5bc4deafd7037ec5cf09c88bb89f35ea3d95c) )
+ ROM_LOAD16_BYTE( "mse_31.12f", 0x40000, 0x20000, CRC(30332bcf) SHA1(1c77c06028b77473276cb5dde5ecf414b43a7b78) )
+ ROM_LOAD16_BYTE( "mse_36.12h", 0x40001, 0x20000, CRC(8f7d6ce9) SHA1(7694c940023c12520663593f973ddb4168a6bfa5) )
+ ROM_LOAD16_WORD_SWAP( "ms-32m.8h", 0x80000, 0x80000, CRC(2475ddfc) SHA1(cc34dfae8124aa781320be6870a1929495eee456) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "ms-5m.7a", 0x000000, 0x80000, CRC(c00fe7e2) SHA1(1ce82ea36996908620d3ac8aabd3650118d6c255) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ms-7m.9a", 0x000002, 0x80000, CRC(4ccacac5) SHA1(f2e30edf6ad100da411584bb0b828420256a9d5c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ms-1m.3a", 0x000004, 0x80000, CRC(0d2bbe00) SHA1(dca13fc7ff63ad7fb175a71ada1ee22d21a8811d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ms-3m.5a", 0x000006, 0x80000, CRC(3a1a5bf4) SHA1(88a7cc0bf29b3516a97f661691500ff28e91a362) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "ms_09.12b", 0x00000, 0x08000, CRC(57b29519) SHA1(a6b4fc2b9595d1a49f2b93581f107b68d484d156) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "ms_18.11c", 0x00000, 0x20000, CRC(fb64e90d) SHA1(d1a596ce2f8ac14a80b34335b173369a14b45f55) )
+ ROM_LOAD( "ms_19.12c", 0x20000, 0x20000, CRC(74f892b9) SHA1(bf48db5c438154e7b96fd31fde1be4aad5cf25eb) )
+
+ 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( "ms24b.1a", 0x0000, 0x0117, CRC(636dbe6d) SHA1(6622a2294f82e70e9eb5ff24f84e0dc13e9168b5) )
+ ROM_LOAD( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ROM_END
+
+/* B-Board 89624B-3 */
+ROM_START( mswordr1 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "ms_30.11f", 0x00000, 0x20000, CRC(21c1f078) SHA1(f32bd3b462cc84466244b362a66510b9d40ac2fd) )
+ ROM_LOAD16_BYTE( "ms_35.11h", 0x00001, 0x20000, CRC(a540a73a) SHA1(1c91241ba0d17d13adaa68e231b95dfd49d93b6d) )
+ ROM_LOAD16_BYTE( "ms_31.12f", 0x40000, 0x20000, CRC(d7e762b5) SHA1(6977130e9c0cd36d8a67e242c132df38f7aea5b7) )
+ ROM_LOAD16_BYTE( "ms_36.12h", 0x40001, 0x20000, CRC(66f2dcdb) SHA1(287508b1c96762d0048a10272cf2cbd39a7fba5c) )
+ ROM_LOAD16_WORD_SWAP( "ms-32m.8h", 0x80000, 0x80000, CRC(2475ddfc) SHA1(cc34dfae8124aa781320be6870a1929495eee456) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "ms-5m.7a", 0x000000, 0x80000, CRC(c00fe7e2) SHA1(1ce82ea36996908620d3ac8aabd3650118d6c255) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ms-7m.9a", 0x000002, 0x80000, CRC(4ccacac5) SHA1(f2e30edf6ad100da411584bb0b828420256a9d5c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ms-1m.3a", 0x000004, 0x80000, CRC(0d2bbe00) SHA1(dca13fc7ff63ad7fb175a71ada1ee22d21a8811d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ms-3m.5a", 0x000006, 0x80000, CRC(3a1a5bf4) SHA1(88a7cc0bf29b3516a97f661691500ff28e91a362) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "ms_09.12b", 0x00000, 0x08000, CRC(57b29519) SHA1(a6b4fc2b9595d1a49f2b93581f107b68d484d156) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "ms_18.11c", 0x00000, 0x20000, CRC(fb64e90d) SHA1(d1a596ce2f8ac14a80b34335b173369a14b45f55) )
+ ROM_LOAD( "ms_19.12c", 0x20000, 0x20000, CRC(74f892b9) SHA1(bf48db5c438154e7b96fd31fde1be4aad5cf25eb) )
+
+ 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( "ms24b.1a", 0x0000, 0x0117, CRC(636dbe6d) SHA1(6622a2294f82e70e9eb5ff24f84e0dc13e9168b5) )
+ ROM_LOAD( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ROM_END
+
+/* B-Board 89624B-3 */
+ROM_START( mswordu )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "msu_30.11f", 0x00000, 0x20000, CRC(d963c816) SHA1(e23844a60ddfc0a8a98c0ada9c3d58fce71c5484) )
+ ROM_LOAD16_BYTE( "msu_35.11h", 0x00001, 0x20000, CRC(72f179b3) SHA1(8d31cdc84b02fc345fc78e8f231410adeb834c28) )
+ ROM_LOAD16_BYTE( "msu_31.12f", 0x40000, 0x20000, CRC(20cd7904) SHA1(cea2db01be97f69dc10e9da80f3b46f6ddaa953a) )
+ ROM_LOAD16_BYTE( "msu_36.12h", 0x40001, 0x20000, CRC(bf88c080) SHA1(b8cd0b127fd3e1afc45402e667ff4b4b01602384) )
+ ROM_LOAD16_WORD_SWAP( "ms-32m.8h", 0x80000, 0x80000, CRC(2475ddfc) SHA1(cc34dfae8124aa781320be6870a1929495eee456) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "ms-5m.7a", 0x000000, 0x80000, CRC(c00fe7e2) SHA1(1ce82ea36996908620d3ac8aabd3650118d6c255) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ms-7m.9a", 0x000002, 0x80000, CRC(4ccacac5) SHA1(f2e30edf6ad100da411584bb0b828420256a9d5c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ms-1m.3a", 0x000004, 0x80000, CRC(0d2bbe00) SHA1(dca13fc7ff63ad7fb175a71ada1ee22d21a8811d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ms-3m.5a", 0x000006, 0x80000, CRC(3a1a5bf4) SHA1(88a7cc0bf29b3516a97f661691500ff28e91a362) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "ms_09.12b", 0x00000, 0x08000, CRC(57b29519) SHA1(a6b4fc2b9595d1a49f2b93581f107b68d484d156) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "ms_18.11c", 0x00000, 0x20000, CRC(fb64e90d) SHA1(d1a596ce2f8ac14a80b34335b173369a14b45f55) )
+ ROM_LOAD( "ms_19.12c", 0x20000, 0x20000, CRC(74f892b9) SHA1(bf48db5c438154e7b96fd31fde1be4aad5cf25eb) )
+
+ 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( "ms24b.1a", 0x0000, 0x0117, CRC(636dbe6d) SHA1(6622a2294f82e70e9eb5ff24f84e0dc13e9168b5) )
+ ROM_LOAD( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ROM_END
+
+/* B-Board 89625B-1 */
+ROM_START( mswordj )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "msj_36.12f", 0x00000, 0x20000, CRC(04f0ef50) SHA1(76dac695732ade1873bb6da51834ef90c6595689) )
+ ROM_LOAD16_BYTE( "msj_42.12h", 0x00001, 0x20000, CRC(9fcbb9cd) SHA1(bfbf805ddecd3fa9e209a658526e1430ad9e459a) )
+ ROM_LOAD16_BYTE( "msj_37.13f", 0x40000, 0x20000, CRC(6c060d70) SHA1(7fe56f125bc11156955bf0defc956fe7c18a1c72) )
+ ROM_LOAD16_BYTE( "msj_43.13h", 0x40001, 0x20000, CRC(aec77787) SHA1(3260f9a80b67394dd90dbabdd544c9b8b31e5817) )
+ ROM_LOAD16_BYTE( "ms_34.10f", 0x80000, 0x20000, CRC(0e59a62d) SHA1(d109e5edfb32ce3dc7c32e10a78fc3e943029a73) ) // == ms-32m.8h
+ ROM_LOAD16_BYTE( "ms_40.10h", 0x80001, 0x20000, CRC(babade3a) SHA1(00acdcb5b316611a6df55e54f6ac4ec3503e1cac) ) // == ms-32m.8h
+ ROM_LOAD16_BYTE( "ms_35.11f", 0xc0000, 0x20000, CRC(03da99d1) SHA1(f21a27f1122e1ee237a53b06ecd24737ac0d2c0e) ) // == ms-32m.8h
+ ROM_LOAD16_BYTE( "ms_41.11h", 0xc0001, 0x20000, CRC(fadf99ea) SHA1(a3f3ef357f02c30b7f76941e5f854746774b0114) ) // == ms-32m.8h
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "ms_09.4b", 0x000000, 0x20000, CRC(4adee6f6) SHA1(3becf055313f2fb90c42b839124d8ba4ccc047e0) , ROM_SKIP(7) ) // == ms-5m.7a
+ ROMX_LOAD( "ms_01.4a", 0x000001, 0x20000, CRC(f7ab1b88) SHA1(9dae1c21c5379413e173fb13521821339ef0852e) , ROM_SKIP(7) ) // == ms-5m.7a
+ ROMX_LOAD( "ms_13.9b", 0x000002, 0x20000, CRC(e01adc4b) SHA1(1eaf3511a3ffbd4b26a755d5f818e604cfd7764a) , ROM_SKIP(7) ) // == ms-7m.9a
+ ROMX_LOAD( "ms_05.9a", 0x000003, 0x20000, CRC(f62c2369) SHA1(568d05c256889a2450b53373e68858ea6ae52007) , ROM_SKIP(7) ) // == ms-7m.9a
+ ROMX_LOAD( "ms_24.5e", 0x000004, 0x20000, CRC(be64a3a1) SHA1(92a8f44a7f141fa189543f7b2564b9c0e44fb44f) , ROM_SKIP(7) ) // == ms-1m.3a
+ ROMX_LOAD( "ms_17.5c", 0x000005, 0x20000, CRC(0bc1665f) SHA1(4b92e4f1f423964ece9d5ecbe960be3a06c42565) , ROM_SKIP(7) ) // == ms-1m.3a
+ ROMX_LOAD( "ms_38.8h", 0x000006, 0x20000, CRC(904a2ed5) SHA1(8954c13f5c008ab6f28fa3adfba811c1173a2d88) , ROM_SKIP(7) ) // == ms-3m.5a
+ ROMX_LOAD( "ms_32.8f", 0x000007, 0x20000, CRC(3d89c530) SHA1(7a9d82e1ccd0dd3b27d91013ef127233a0dd42a1) , ROM_SKIP(7) ) // == ms-3m.5a
+ ROMX_LOAD( "ms_10.5b", 0x100000, 0x20000, CRC(f02c0718) SHA1(6055673fff3b57b7ba69eea8b45d7df36dfc5ba7) , ROM_SKIP(7) ) // == ms-5m.7a
+ ROMX_LOAD( "ms_02.5a", 0x100001, 0x20000, CRC(d071a405) SHA1(205d706a992efa4bd772699472ab40eedd70f686) , ROM_SKIP(7) ) // == ms-5m.7a
+ ROMX_LOAD( "ms_14.10b", 0x100002, 0x20000, CRC(dfb2e4df) SHA1(371c2a8d97eb0592b7b8767c1b992b4375933ac4) , ROM_SKIP(7) ) // == ms-7m.9a
+ ROMX_LOAD( "ms_06.10a", 0x100003, 0x20000, CRC(d3ce2a91) SHA1(21ed0f7d4a1e9d0b1eb6a1cf4e5d082b773eb36c) , ROM_SKIP(7) ) // == ms-7m.9a
+ ROMX_LOAD( "ms_25.7e", 0x100004, 0x20000, CRC(0f199d56) SHA1(0df4eda96b3327bd1d1fe6416e75e8b76b6593ac) , ROM_SKIP(7) ) // == ms-1m.3a
+ ROMX_LOAD( "ms_18.7c", 0x100005, 0x20000, CRC(1ba76df2) SHA1(db7c16e6fde29c764278bdf76fc04c05567666e5) , ROM_SKIP(7) ) // == ms-1m.3a
+ ROMX_LOAD( "ms_39.9h", 0x100006, 0x20000, CRC(01efce86) SHA1(665182bb61b1efb300422f7076d8538d2ca514ce) , ROM_SKIP(7) ) // == ms-3m.5a
+ ROMX_LOAD( "ms_33.9f", 0x100007, 0x20000, CRC(ce25defc) SHA1(885eef9bac1d401f3e49c46294e573dd9cfad3a1) , ROM_SKIP(7) ) // == ms-3m.5a
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "ms_23.13b", 0x00000, 0x08000, CRC(57b29519) SHA1(a6b4fc2b9595d1a49f2b93581f107b68d484d156) ) // == ms_09.12b
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "ms_30.12c", 0x00000, 0x20000, CRC(fb64e90d) SHA1(d1a596ce2f8ac14a80b34335b173369a14b45f55) ) // == ms_18.11c
+ ROM_LOAD( "ms_31.13c", 0x20000, 0x20000, CRC(74f892b9) SHA1(bf48db5c438154e7b96fd31fde1be4aad5cf25eb) ) // == ms_19.12c
+
+ 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( "ms22b.1a", 0x0000, 0x0117, CRC(dde86cb0) SHA1(d0b93a0b62a7cc3c3473da31fc00043392bc8f75) )
+ ROM_LOAD( "iob1.12e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ROM_END
+
+/* B-Board 89624B-3 */
+ROM_START( cawing )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "cae_30a.11f", 0x00000, 0x20000, CRC(91fceacd) SHA1(4845999a96fee829264346ca399fdd64a8408001) )
+ ROM_LOAD16_BYTE( "cae_35a.11h", 0x00001, 0x20000, CRC(3ef03083) SHA1(297dfc9ec1e0f07d6083bf5efaa0de8d0fb361fa) )
+ ROM_LOAD16_BYTE( "cae_31a.12f", 0x40000, 0x20000, CRC(e5b75caf) SHA1(4d04220c78620867b7598deea5685bbe88298ae6) )
+ ROM_LOAD16_BYTE( "cae_36a.12h", 0x40001, 0x20000, CRC(c73fd713) SHA1(fa202c252b2cc5972d42d634c466d89cf8b5d178) )
+ ROM_LOAD16_WORD_SWAP( "ca-32m.8h", 0x80000, 0x80000, CRC(0c4837d4) SHA1(1c61958b43066b59d86eb4bae0b52c3109be4b07) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "ca-5m.7a", 0x000000, 0x80000, CRC(66d4cc37) SHA1(d355ea64ff29d228dcbfeee72bcf11882bf1cd9d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ca-7m.9a", 0x000002, 0x80000, CRC(b6f896f2) SHA1(bdb6820b81fbce77d7eacb01777af7c380490402) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ca-1m.3a", 0x000004, 0x80000, CRC(4d0620fd) SHA1(5f62cd551b6a230edefd81fa60c10c84186ca804) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ca-3m.5a", 0x000006, 0x80000, CRC(0b0341c3) SHA1(c31f0e78f49d94ea9dea20eb0cbd98a6c613bcbf) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "ca_9.12b", 0x00000, 0x08000, CRC(96fe7485) SHA1(10466889dfc6bc8afd3075385e241a16372efbeb) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "ca_18.11c", 0x00000, 0x20000, CRC(4a613a2c) SHA1(06e10644fc60925b85d2ca0888c9fa057bfe996a) )
+ ROM_LOAD( "ca_19.12c", 0x20000, 0x20000, CRC(74584493) SHA1(5cfb15f1b9729323707972646313aee8ab3ac4eb) )
+
+ 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( "ca24b.1a", 0x0000, 0x0117, CRC(76ec0b1c) SHA1(71a7e22613981182fd5b1156f4e495337ab8a172) )
+ ROM_LOAD( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ROM_END
+
+/* B-Board 89624B-3 */
+ROM_START( cawingr1 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "cae_30.11f", 0x00000, 0x20000, CRC(23305cd5) SHA1(59cbcb79c171b433f278e128c73cdd3635876370) )
+ ROM_LOAD16_BYTE( "cae_35.11h", 0x00001, 0x20000, CRC(69419113) SHA1(cfbb6dbbe224ffaf7747fd70b65a7dbd4f696fe9) )
+ ROM_LOAD16_BYTE( "cae_31.12f", 0x40000, 0x20000, CRC(9008dfb3) SHA1(81fdd21606caabe9e0df773fc33377c958ab80f6) )
+ ROM_LOAD16_BYTE( "cae_36.12h", 0x40001, 0x20000, CRC(4dbf6f8e) SHA1(a2da49dce72c2366381bd8bea8ce4eba0b70d78c) )
+ ROM_LOAD16_WORD_SWAP( "ca-32m.8h", 0x80000, 0x80000, CRC(0c4837d4) SHA1(1c61958b43066b59d86eb4bae0b52c3109be4b07) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "ca-5m.7a", 0x000000, 0x80000, CRC(66d4cc37) SHA1(d355ea64ff29d228dcbfeee72bcf11882bf1cd9d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ca-7m.9a", 0x000002, 0x80000, CRC(b6f896f2) SHA1(bdb6820b81fbce77d7eacb01777af7c380490402) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ca-1m.3a", 0x000004, 0x80000, CRC(4d0620fd) SHA1(5f62cd551b6a230edefd81fa60c10c84186ca804) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ca-3m.5a", 0x000006, 0x80000, CRC(0b0341c3) SHA1(c31f0e78f49d94ea9dea20eb0cbd98a6c613bcbf) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "cae_09.12b", 0x00000, 0x08000, CRC(96fe7485) SHA1(10466889dfc6bc8afd3075385e241a16372efbeb) ) // == ca_9.12b
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "cae_18.11c", 0x00000, 0x20000, CRC(4a613a2c) SHA1(06e10644fc60925b85d2ca0888c9fa057bfe996a) ) // == ca_18.11c
+ ROM_LOAD( "cae_19.12c", 0x20000, 0x20000, CRC(74584493) SHA1(5cfb15f1b9729323707972646313aee8ab3ac4eb) ) // == ca_19.12c
+
+ 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( "ca24b.1a", 0x0000, 0x0117, CRC(76ec0b1c) SHA1(71a7e22613981182fd5b1156f4e495337ab8a172) )
+ ROM_LOAD( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ROM_END
+
+/* B-Board 89624B-3 */
+ROM_START( cawingu )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "cau_30a.11f", 0x00000, 0x20000, CRC(91fceacd) SHA1(4845999a96fee829264346ca399fdd64a8408001) ) // == cae_30a.11f
+ ROM_LOAD16_BYTE( "cau_35a.11h", 0x00001, 0x20000, CRC(f090d9b2) SHA1(261dc4ac79507299a7f9a1ad5edb8425345db06c) )
+ ROM_LOAD16_BYTE( "cau_31a.12f", 0x40000, 0x20000, CRC(e5b75caf) SHA1(4d04220c78620867b7598deea5685bbe88298ae6) ) // == cae_31a.12f
+ ROM_LOAD16_BYTE( "cau_36a.12h", 0x40001, 0x20000, CRC(c73fd713) SHA1(fa202c252b2cc5972d42d634c466d89cf8b5d178) ) // == cae_36a.12h
+ ROM_LOAD16_WORD_SWAP( "ca-32m.8h", 0x80000, 0x80000, CRC(0c4837d4) SHA1(1c61958b43066b59d86eb4bae0b52c3109be4b07) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "ca-5m.7a", 0x000000, 0x80000, CRC(66d4cc37) SHA1(d355ea64ff29d228dcbfeee72bcf11882bf1cd9d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ca-7m.9a", 0x000002, 0x80000, CRC(b6f896f2) SHA1(bdb6820b81fbce77d7eacb01777af7c380490402) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ca-1m.3a", 0x000004, 0x80000, CRC(4d0620fd) SHA1(5f62cd551b6a230edefd81fa60c10c84186ca804) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ca-3m.5a", 0x000006, 0x80000, CRC(0b0341c3) SHA1(c31f0e78f49d94ea9dea20eb0cbd98a6c613bcbf) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "cau_09.12b", 0x00000, 0x08000, CRC(96fe7485) SHA1(10466889dfc6bc8afd3075385e241a16372efbeb) ) // == ca_9.12b
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "cau_18.11c", 0x00000, 0x20000, CRC(4a613a2c) SHA1(06e10644fc60925b85d2ca0888c9fa057bfe996a) ) // == ca_18.11c
+ ROM_LOAD( "cau_19.12c", 0x20000, 0x20000, CRC(74584493) SHA1(5cfb15f1b9729323707972646313aee8ab3ac4eb) ) // == ca_19.12c
+
+ 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( "ca24b.1a", 0x0000, 0x0117, CRC(76ec0b1c) SHA1(71a7e22613981182fd5b1156f4e495337ab8a172) )
+ ROM_LOAD( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ROM_END
+
+/* B-Board 89625B-1 */
+ROM_START( cawingj )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "caj_36a.12f", 0x00000, 0x20000, CRC(91fceacd) SHA1(4845999a96fee829264346ca399fdd64a8408001) ) // == cae_30a.11f
+ ROM_LOAD16_BYTE( "caj_42a.12h", 0x00001, 0x20000, CRC(039f8362) SHA1(3fc7a642ddeaf94abdfdd5788a4b3c3b1f1b4c5e) )
+ ROM_LOAD16_BYTE( "caj_37a.13f", 0x40000, 0x20000, CRC(e5b75caf) SHA1(4d04220c78620867b7598deea5685bbe88298ae6) ) // == cae_31a.12f
+ ROM_LOAD16_BYTE( "caj_43a.13h", 0x40001, 0x20000, CRC(c73fd713) SHA1(fa202c252b2cc5972d42d634c466d89cf8b5d178) ) // == cae_36a.12h
+ ROM_LOAD16_BYTE( "caj_34.10f", 0x80000, 0x20000, CRC(51ea57f4) SHA1(7d7080dbf4b6f9b801b796937e9c3c45afed602f) )
+ ROM_LOAD16_BYTE( "caj_40.10h", 0x80001, 0x20000, CRC(2ab71ae1) SHA1(23814b58322902b23c4bdd744e60d819811462cc) )
+ ROM_LOAD16_BYTE( "caj_35.11f", 0xc0000, 0x20000, CRC(01d71973) SHA1(1f5fc0d47f1456a6338284f883dabc89697f8aa5) )
+ ROM_LOAD16_BYTE( "caj_41.11h", 0xc0001, 0x20000, CRC(3a43b538) SHA1(474a701500632cbd395ae404ede1d10a9969b342) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "caj_09.4b", 0x000000, 0x20000, CRC(41b0f9a6) SHA1(5a59df64d0c665d5d479ef2d9e7ec191ca0e7a92) , ROM_SKIP(7) )
+ ROMX_LOAD( "caj_01.4a", 0x000001, 0x20000, CRC(1002d0b8) SHA1(896bec683c1164c6f1fa1d81cadb8a1c549d4a4e) , ROM_SKIP(7) )
+ ROMX_LOAD( "caj_13.9b", 0x000002, 0x20000, CRC(6f3948b2) SHA1(942d37b84c727074941316b042679110594ae249) , ROM_SKIP(7) )
+ ROMX_LOAD( "caj_05.9a", 0x000003, 0x20000, CRC(207373d7) SHA1(4fa67c847f65e2657900f4fc93f1d8a7b95c12e6) , ROM_SKIP(7) )
+ ROMX_LOAD( "caj_24.5e", 0x000004, 0x20000, CRC(e356aad7) SHA1(55f1489044e70a57ad15e1f2c20567bd6c770f71) , ROM_SKIP(7) )
+ ROMX_LOAD( "caj_17.5c", 0x000005, 0x20000, CRC(540f2fd8) SHA1(4f500c7795aa41d472c59d2594fc84f6b17ed137) , ROM_SKIP(7) )
+ ROMX_LOAD( "caj_38.8h", 0x000006, 0x20000, CRC(2464d4ab) SHA1(092864551e7c1c6adbeb901a556f650ccf6ca2f4) , ROM_SKIP(7) )
+ ROMX_LOAD( "caj_32.8f", 0x000007, 0x20000, CRC(9b5836b3) SHA1(3fda5409d99104f355fa42ec413ccb799d1506c9) , ROM_SKIP(7) )
+ ROMX_LOAD( "caj_10.5b", 0x100000, 0x20000, CRC(bf8a5f52) SHA1(8cdd31a58de560d282e708c57cda0fefa7d6c92f) , ROM_SKIP(7) )
+ ROMX_LOAD( "caj_02.5a", 0x100001, 0x20000, CRC(125b018d) SHA1(edb3271f668e0328efd59e0929ee86efd5aa7b1f) , ROM_SKIP(7) )
+ ROMX_LOAD( "caj_14.10b", 0x100002, 0x20000, CRC(8458e7d7) SHA1(7ebe0a3597a7d8482c2d33640ed1b994fd3a02b2) , ROM_SKIP(7) )
+ ROMX_LOAD( "caj_06.10a", 0x100003, 0x20000, CRC(cf80e164) SHA1(d83573947fec01a9814919df719474aa3e6ae9a0) , ROM_SKIP(7) )
+ ROMX_LOAD( "caj_25.7e", 0x100004, 0x20000, CRC(cdd0204d) SHA1(7cbc129bc148718f8c36e27f05583cdecc57b63e) , ROM_SKIP(7) )
+ ROMX_LOAD( "caj_18.7c", 0x100005, 0x20000, CRC(29c1d4b1) SHA1(d0109ab2f521786a64548910947ca24976ec1218) , ROM_SKIP(7) )
+ ROMX_LOAD( "caj_39.9h", 0x100006, 0x20000, CRC(eea23b67) SHA1(79d35c15b4b4430d90cd6c270cdd3a064bc2e1a3) , ROM_SKIP(7) )
+ ROMX_LOAD( "caj_33.9f", 0x100007, 0x20000, CRC(dde3891f) SHA1(25b8069a9c8615323b94157b1ce39805559b68f4) , ROM_SKIP(7) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "caj_23.13b", 0x00000, 0x08000, CRC(96fe7485) SHA1(10466889dfc6bc8afd3075385e241a16372efbeb) ) // == ca_9.12b
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "caj_30.12c", 0x00000, 0x20000, CRC(4a613a2c) SHA1(06e10644fc60925b85d2ca0888c9fa057bfe996a) ) // == ca_18.11c
+ ROM_LOAD( "caj_31.13c", 0x20000, 0x20000, CRC(74584493) SHA1(5cfb15f1b9729323707972646313aee8ab3ac4eb) ) // == ca_19.12c
+
+ 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( "ca22b.1a", 0x0000, 0x0117, CRC(5152e678) SHA1(ac61df30cd073b26f2145e3ea0c513ec804d047a) )
+ ROM_LOAD( "iob1.12e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) /* seen the same pcb with LWIO.12E */
+ROM_END
+
+/* B-Board 89624B-3 */
+ROM_START( nemo )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "nme_30a.11f", 0x00000, 0x20000, CRC(d2c03e56) SHA1(df468e3b5deba01a6825b742f1cc87bfb26c1981) )
+ ROM_LOAD16_BYTE( "nme_35a.11h", 0x00001, 0x20000, CRC(5fd31661) SHA1(12f92a7255e8cae6975452db956670cf72d51768) )
+ ROM_LOAD16_BYTE( "nme_31a.12f", 0x40000, 0x20000, CRC(b2bd4f6f) SHA1(82a59b5f36cb4c23dca05297e2a643842fc12609) )
+ ROM_LOAD16_BYTE( "nme_36a.12h", 0x40001, 0x20000, CRC(ee9450e3) SHA1(a5454268ef58533e71fe07167b4c3fd263363f77) )
+ ROM_LOAD16_WORD_SWAP( "nm-32m.8h", 0x80000, 0x80000, CRC(d6d1add3) SHA1(61c3013d322dbb7622cca032adcd020ba318e885) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "nm-5m.7a", 0x000000, 0x80000, CRC(487b8747) SHA1(f14339b02b8f7ec2002632349e88fed4afc30050) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "nm-7m.9a", 0x000002, 0x80000, CRC(203dc8c6) SHA1(d52577500e822b89904d1510d559f8575c2aaa78) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "nm-1m.3a", 0x000004, 0x80000, CRC(9e878024) SHA1(9a5ce3a6a7952a8954d0709b9473db9253793d70) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "nm-3m.5a", 0x000006, 0x80000, CRC(bb01e6b6) SHA1(3883e28f721d0278b2f4f877a804e95ee14f53e4) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "nme_09.12b", 0x00000, 0x08000, CRC(0f4b0581) SHA1(2e5a2885149c632abfaf4292a1bf032c13c8da6c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "nme_18.11c", 0x00000, 0x20000, CRC(bab333d4) SHA1(c1d0fb61ec46f17eb7edf69e1ad5ac91b5d51daa) )
+ ROM_LOAD( "nme_19.12c", 0x20000, 0x20000, CRC(2650a0a8) SHA1(e9e8cc1b27a2cb3e87124061fabcf42982f0611f) )
+
+ 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( "nm24b.1a", 0x0000, 0x0117, CRC(7b25bac6) SHA1(fa0083c59c8d6da07798cb3a4fc25d388065b7cd) )
+ ROM_LOAD( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ROM_END
+
+/* B-Board 89624B-3 */
+ROM_START( nemor1 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "nme_30.11f", 0x00000, 0x20000, CRC(71b333db) SHA1(8bd8b62d8fef2ad9d2788ccf46e89da953e5817c) )
+ ROM_LOAD16_BYTE( "nme_35.11h", 0x00001, 0x20000, CRC(d153bc18) SHA1(2b4a9a50081d403a6485b7311e179a31b659b74d) )
+ ROM_LOAD16_BYTE( "nme_31.12f", 0x40000, 0x20000, CRC(7e83dbd2) SHA1(d4c7e3786faab4dd9ded3c1a8f6fea114d423e64) )
+ ROM_LOAD16_BYTE( "nme_36.12h", 0x40001, 0x20000, CRC(6aeeec81) SHA1(d7dce52d0f2225d844d852d2c3e81a48cb53a43d) )
+ ROM_LOAD16_WORD_SWAP( "nm-32m.8h", 0x80000, 0x80000, CRC(d6d1add3) SHA1(61c3013d322dbb7622cca032adcd020ba318e885) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "nm-5m.7a", 0x000000, 0x80000, CRC(487b8747) SHA1(f14339b02b8f7ec2002632349e88fed4afc30050) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "nm-7m.9a", 0x000002, 0x80000, CRC(203dc8c6) SHA1(d52577500e822b89904d1510d559f8575c2aaa78) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "nm-1m.3a", 0x000004, 0x80000, CRC(9e878024) SHA1(9a5ce3a6a7952a8954d0709b9473db9253793d70) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "nm-3m.5a", 0x000006, 0x80000, CRC(bb01e6b6) SHA1(3883e28f721d0278b2f4f877a804e95ee14f53e4) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "nme_09.12b", 0x00000, 0x08000, CRC(0f4b0581) SHA1(2e5a2885149c632abfaf4292a1bf032c13c8da6c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "nme_18.11c", 0x00000, 0x20000, CRC(bab333d4) SHA1(c1d0fb61ec46f17eb7edf69e1ad5ac91b5d51daa) )
+ ROM_LOAD( "nme_19.12c", 0x20000, 0x20000, CRC(2650a0a8) SHA1(e9e8cc1b27a2cb3e87124061fabcf42982f0611f) )
+
+ 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( "nm24b.1a", 0x0000, 0x0117, CRC(7b25bac6) SHA1(fa0083c59c8d6da07798cb3a4fc25d388065b7cd) )
+ ROM_LOAD( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ROM_END
+
+/* B-Board 89625B-? */
+ROM_START( nemoj )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "nmj_36a.12f", 0x00000, 0x20000, CRC(daeceabb) SHA1(ebd44922be9d07a3d3411af52edee8a60cb11dad) )
+ ROM_LOAD16_BYTE( "nmj_42a.12h", 0x00001, 0x20000, CRC(55024740) SHA1(4bacbd191bb435de5dc548ac7fa16ed286bd2d3b) )
+ ROM_LOAD16_BYTE( "nmj_37a.13f", 0x40000, 0x20000, CRC(619068b6) SHA1(2507c6f77a06a80f913c848dcb6816bcbf4bba8a) )
+ ROM_LOAD16_BYTE( "nmj_43a.13h", 0x40001, 0x20000, CRC(a948a53b) SHA1(65c2abf321cf8b171bbfbb51ed57bc99eb552ca9) )
+ ROM_LOAD16_BYTE( "nm_34.10f", 0x80000, 0x20000, CRC(5737feed) SHA1(2635715cc21381e9f0a4ae4227eb5896886ee3e2) ) // == nm-32m.8h
+ ROM_LOAD16_BYTE( "nm_40.10h", 0x80001, 0x20000, CRC(8a4099f3) SHA1(d1af73d8992aa9ef6dcd729675a2fbea8c290311) ) // == nm-32m.8h
+ ROM_LOAD16_BYTE( "nm_35.11f", 0xc0000, 0x20000, CRC(bd11a7f8) SHA1(1c09db7cbd132866d4f08720cdd60707069f8580) ) // == nm-32m.8h
+ ROM_LOAD16_BYTE( "nm_41.11h", 0xc0001, 0x20000, CRC(6309603d) SHA1(51bee785ddb87340ad56960ad816c0513bc93eb8) ) // == nm-32m.8h
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "nm_09.4b", 0x000000, 0x20000, CRC(9d60d286) SHA1(69ea9d584d735c3629e1c017cbd966df264e4324) , ROM_SKIP(7) ) // == nm-5m.7a
+ ROMX_LOAD( "nm_01.4a", 0x000001, 0x20000, CRC(8a83f7c4) SHA1(ef24f47517d22dfecd3e6b5ef76e38073f6b81ba) , ROM_SKIP(7) ) // == nm-5m.7a
+ ROMX_LOAD( "nm_13.9b", 0x000002, 0x20000, CRC(a4909fe0) SHA1(6b1a0e8c2bd2979f7fcc363a86de28d3e365709c) , ROM_SKIP(7) ) // == nm-7m.9a
+ ROMX_LOAD( "nm_05.9a", 0x000003, 0x20000, CRC(16db1e61) SHA1(76ff93edd4d40a2527744585a87052a3fc0c77f6) , ROM_SKIP(7) ) // == nm-7m.9a
+ ROMX_LOAD( "nm_24.5e", 0x000004, 0x20000, CRC(3312c648) SHA1(9e4f584fa360de16d42d65619dbe9426d4322c00) , ROM_SKIP(7) ) // == nm-1m.3a
+ ROMX_LOAD( "nm_17.5c", 0x000005, 0x20000, CRC(ccfc50e2) SHA1(a238f050d11e925b1c0037bb860289ab746b7039) , ROM_SKIP(7) ) // == nm-1m.3a
+ ROMX_LOAD( "nm_38.8h", 0x000006, 0x20000, CRC(ae98a997) SHA1(d2d499395e43aa85d9098966d04fde6bd055900b) , ROM_SKIP(7) ) // == nm-3m.5a
+ ROMX_LOAD( "nm_32.8f", 0x000007, 0x20000, CRC(b3704dde) SHA1(d107fecb45f34e877faabffcdaba437935754906) , ROM_SKIP(7) ) // == nm-3m.5a
+ ROMX_LOAD( "nm_10.5b", 0x100000, 0x20000, CRC(33c1388c) SHA1(cd1ec3e8d6d2b5a65648c749426ec4e254f93d8c) , ROM_SKIP(7) ) // == nm-5m.7a
+ ROMX_LOAD( "nm_02.5a", 0x100001, 0x20000, CRC(84c69469) SHA1(700cf7be644056b1dbc5d8bed37caf6383a81cfe) , ROM_SKIP(7) ) // == nm-5m.7a
+ ROMX_LOAD( "nm_14.10b", 0x100002, 0x20000, CRC(66612270) SHA1(0c996571459ac44d5ca5683bdcb6a6f08dd83480) , ROM_SKIP(7) ) // == nm-7m.9a
+ ROMX_LOAD( "nm_06.10a", 0x100003, 0x20000, CRC(8b9bcf95) SHA1(e03c6dc4946a37bdab68d929722b1e10a2aca31a) , ROM_SKIP(7) ) // == nm-7m.9a
+ ROMX_LOAD( "nm_25.7e", 0x100004, 0x20000, CRC(acfc84d2) SHA1(4cd9f3bc32ef62cb3b414de68db34f950d10f406) , ROM_SKIP(7) ) // == nm-1m.3a
+ ROMX_LOAD( "nm_18.7c", 0x100005, 0x20000, CRC(4347deed) SHA1(fdd9b3f1ddad42464dcc7298e5b740ffe1622343) , ROM_SKIP(7) ) // == nm-1m.3a
+ ROMX_LOAD( "nm_39.9h", 0x100006, 0x20000, CRC(6a274ecd) SHA1(66259fd6e71cfdb618c189b7f18749a996aacfdf) , ROM_SKIP(7) ) // == nm-3m.5a
+ ROMX_LOAD( "nm_33.9f", 0x100007, 0x20000, CRC(c469dc74) SHA1(d06956eef5f9b31779f218d597a1a504c1e16bad) , ROM_SKIP(7) ) // == nm-3m.5a
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "nm_23.13b", 0x00000, 0x08000, CRC(8d3c5a42) SHA1(cc7477da80f3d08cf014379318e39cb75b5d3205) ) /* 1 byte different from nemo, pcb verified */
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "nm_30.12c", 0x00000, 0x20000, CRC(bab333d4) SHA1(c1d0fb61ec46f17eb7edf69e1ad5ac91b5d51daa) ) // == nme_18.11c
+ ROM_LOAD( "nm_31.13c", 0x20000, 0x20000, CRC(2650a0a8) SHA1(e9e8cc1b27a2cb3e87124061fabcf42982f0611f) ) // == nme_19.12c
+
+ 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( "nm22b.1a", 0x0000, 0x0117, NO_DUMP )
+ ROM_LOAD( "iob1.12e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) // pal verification required
+ROM_END
+
+/* B-Board 90629B-3 */
+ROM_START( sf2 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "sf2e_30g.11e", 0x00000, 0x20000, CRC(fe39ee33) SHA1(22558eb15e035b09b80935a32b8425d91cd79669) )
+ ROM_LOAD16_BYTE( "sf2e_37g.11f", 0x00001, 0x20000, CRC(fb92cd74) SHA1(bf1ccfe7cc1133f0f65556430311108722add1f2) )
+ ROM_LOAD16_BYTE( "sf2e_31g.12e", 0x40000, 0x20000, CRC(69a0a301) SHA1(86a3954335310865b14ce8b4e0e4499feb14fc12) )
+ ROM_LOAD16_BYTE( "sf2e_38g.12f", 0x40001, 0x20000, CRC(5e22db70) SHA1(6565946591a18eaf46f04c1aa449ee0ae9ac2901) )
+ ROM_LOAD16_BYTE( "sf2e_28g.9e", 0x80000, 0x20000, CRC(8bf9f1e5) SHA1(bbcef63f35e5bff3f373968ba1278dd6bd86b593) )
+ ROM_LOAD16_BYTE( "sf2e_35g.9f", 0x80001, 0x20000, CRC(626ef934) SHA1(507bda3e4519de237aca919cf72e543403ec9724) )
+ ROM_LOAD16_BYTE( "sf2_29b.10e", 0xc0000, 0x20000, CRC(bb4af315) SHA1(75f0827f4f7e9f292add46467f8d4fe19b2514c9) )
+ ROM_LOAD16_BYTE( "sf2_36b.10f", 0xc0001, 0x20000, CRC(c02a13eb) SHA1(b807cc495bff3f95d03b061fc629c95f965cb6d8) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "sf2-5m.4a", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket
+ ROMX_LOAD( "sf2-7m.6a", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket
+ ROMX_LOAD( "sf2-1m.3a", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket
+ ROMX_LOAD( "sf2-3m.5a", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket
+ ROMX_LOAD( "sf2-6m.4c", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "11" socket
+ ROMX_LOAD( "sf2-8m.6c", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "13" socket
+ ROMX_LOAD( "sf2-2m.3c", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "10" socket
+ ROMX_LOAD( "sf2-4m.5c", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "12" socket
+ ROMX_LOAD( "sf2-13m.4d", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "21" socket
+ ROMX_LOAD( "sf2-15m.6d", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "23" socket
+ ROMX_LOAD( "sf2-9m.3d", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "20" socket
+ ROMX_LOAD( "sf2-11m.5d", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "22" socket
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sf2_9.12a", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "sf2_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "sf2_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ 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( "stf29.1a", 0x0000, 0x0117, CRC(043309c5) SHA1(f6b9610c9f896c495041ba56a654776a521c356b) )
+ ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 90629B-2 */
+ROM_START( sf2eb )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "sf2e_30b.11e", 0x00000, 0x20000, CRC(57bd7051) SHA1(5e211e75b1649b07723cabc03cf15636dbbae595) )
+ ROM_LOAD16_BYTE( "sf2e_37b.11f", 0x00001, 0x20000, CRC(62691cdd) SHA1(328703c3e737ada544e67c36119eeb4a100ca740) )
+ ROM_LOAD16_BYTE( "sf2e_31b.12e", 0x40000, 0x20000, CRC(a673143d) SHA1(e565f0ec23d6deb543c72af5a83f070c07319477) )
+ ROM_LOAD16_BYTE( "sf2e_38b.12f", 0x40001, 0x20000, CRC(4c2ccef7) SHA1(77b119c70c255622b023de25d9af3b3aac52ea47) )
+ ROM_LOAD16_BYTE( "sf2_28b.9e", 0x80000, 0x20000, CRC(4009955e) SHA1(7842dbef7650485639fbae49b9f4db7494d4f73d) )
+ ROM_LOAD16_BYTE( "sf2_35b.9f", 0x80001, 0x20000, CRC(8c1f3994) SHA1(5e1d334399d05a837c2d80f79eada543e83afaf7) )
+ ROM_LOAD16_BYTE( "sf2_29b.10e", 0xc0000, 0x20000, CRC(bb4af315) SHA1(75f0827f4f7e9f292add46467f8d4fe19b2514c9) )
+ ROM_LOAD16_BYTE( "sf2_36b.10f", 0xc0001, 0x20000, CRC(c02a13eb) SHA1(b807cc495bff3f95d03b061fc629c95f965cb6d8) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "sf2-5m.4a", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket
+ ROMX_LOAD( "sf2-7m.6a", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket
+ ROMX_LOAD( "sf2-1m.3a", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket
+ ROMX_LOAD( "sf2-3m.5a", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket
+ ROMX_LOAD( "sf2-6m.4c", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "11" socket
+ ROMX_LOAD( "sf2-8m.6c", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "13" socket
+ ROMX_LOAD( "sf2-2m.3c", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "10" socket
+ ROMX_LOAD( "sf2-4m.5c", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "12" socket
+ ROMX_LOAD( "sf2-13m.4d", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "21" socket
+ ROMX_LOAD( "sf2-15m.6d", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "23" socket
+ ROMX_LOAD( "sf2-9m.3d", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "20" socket
+ ROMX_LOAD( "sf2-11m.5d", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "22" socket
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sf2_9.12a", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "sf2_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "sf2_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ 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( "stf29.1a", 0x0000, 0x0117, CRC(043309c5) SHA1(f6b9610c9f896c495041ba56a654776a521c356b) )
+ ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 90629B-3 */
+ROM_START( sf2ed )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "sf2e_30d.11e", 0x00000, 0x20000, CRC(4bb2657c) SHA1(b2d077296b77be7db371f953b7fc446a67d8a9d6) )
+ ROM_LOAD16_BYTE( "sf2e_37d.11f", 0x00001, 0x20000, CRC(102f4561) SHA1(2fc77cd3b2ecf8fadc4f8614cb200cf2cba4c616) ) //only rom different from sf2ud
+ ROM_LOAD16_BYTE( "sf2e_31d.12e", 0x40000, 0x20000, CRC(d57b67d7) SHA1(43d0b47c9fada8d9b445caa4b96ac8493061aa8b) )
+ ROM_LOAD16_BYTE( "sf2e_38d.12f", 0x40001, 0x20000, CRC(9c8916ef) SHA1(a4629356a816454bcc1d7b41e70e147d4769a682) )
+ ROM_LOAD16_BYTE( "sf2e_28d.9e", 0x80000, 0x20000, CRC(175819d1) SHA1(c98b6b7af4e57735dbfb3d1e61ba1bfb9f145d33) )
+ ROM_LOAD16_BYTE( "sf2e_35d.9f", 0x80001, 0x20000, CRC(82060da4) SHA1(7487cfc28cce3d76772ece657aef83b56034011e) )
+ ROM_LOAD16_BYTE( "sf2_29b.10e", 0xc0000, 0x20000, CRC(bb4af315) SHA1(75f0827f4f7e9f292add46467f8d4fe19b2514c9) )
+ ROM_LOAD16_BYTE( "sf2_36b.10f", 0xc0001, 0x20000, CRC(c02a13eb) SHA1(b807cc495bff3f95d03b061fc629c95f965cb6d8) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "sf2-5m.4a", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket
+ ROMX_LOAD( "sf2-7m.6a", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket
+ ROMX_LOAD( "sf2-1m.3a", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket
+ ROMX_LOAD( "sf2-3m.5a", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket
+ ROMX_LOAD( "sf2-6m.4c", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "11" socket
+ ROMX_LOAD( "sf2-8m.6c", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "13" socket
+ ROMX_LOAD( "sf2-2m.3c", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "10" socket
+ ROMX_LOAD( "sf2-4m.5c", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "12" socket
+ ROMX_LOAD( "sf2-13m.4d", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "21" socket
+ ROMX_LOAD( "sf2-15m.6d", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "23" socket
+ ROMX_LOAD( "sf2-9m.3d", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "20" socket
+ ROMX_LOAD( "sf2-11m.5d", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "22" socket
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sf2_9.12a", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "sf2_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "sf2_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ 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( "stf29.1a", 0x0000, 0x0117, CRC(043309c5) SHA1(f6b9610c9f896c495041ba56a654776a521c356b) )
+ ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 90629B-3 */
+/* Note that this revision seems to be the only one that uses the IOB2 and C632B PALs instead of the IOB1 and C632,
+ while STF29 PAL is confirmed to be the same as the other Street Fighter II: The World Warrior sets. */
+ROM_START( sf2ee )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "sf2e_30e.11e", 0x00000, 0x20000, CRC(f37cd088) SHA1(48b71e44ce88d5f682ed679c737e7ec5262bb0df) )
+ ROM_LOAD16_BYTE( "sf2e_37e.11f", 0x00001, 0x20000, CRC(c39468e6) SHA1(0b1ce83dbc4dcf9b205c67fa6a4b074570baf59b) )
+ ROM_LOAD16_BYTE( "sf2e_31e.12e", 0x40000, 0x20000, CRC(7c4771b4) SHA1(6637b24194c86ec72a1775d4e976891243cd66fd) )
+ ROM_LOAD16_BYTE( "sf2e_38e.12f", 0x40001, 0x20000, CRC(a4bd0cd9) SHA1(32a2bc18d1f860668141e53cbca862ceec238c19) )
+ ROM_LOAD16_BYTE( "sf2e_28e.9e", 0x80000, 0x20000, CRC(e3b95625) SHA1(f7277f9980040f96434d1bd162eaf9ba0dfbb005) )
+ ROM_LOAD16_BYTE( "sf2e_35e.9f", 0x80001, 0x20000, CRC(3648769a) SHA1(74e5934b0e3b4da35ff48086f41e7502b42731c6) )
+ ROM_LOAD16_BYTE( "sf2_29b.10e", 0xc0000, 0x20000, CRC(bb4af315) SHA1(75f0827f4f7e9f292add46467f8d4fe19b2514c9) )
+ ROM_LOAD16_BYTE( "sf2_36b.10f", 0xc0001, 0x20000, CRC(c02a13eb) SHA1(b807cc495bff3f95d03b061fc629c95f965cb6d8) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "sf2-5m.4a", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket
+ ROMX_LOAD( "sf2-7m.6a", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket
+ ROMX_LOAD( "sf2-1m.3a", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket
+ ROMX_LOAD( "sf2-3m.5a", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket
+ ROMX_LOAD( "sf2-6m.4c", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "11" socket
+ ROMX_LOAD( "sf2-8m.6c", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "13" socket
+ ROMX_LOAD( "sf2-2m.3c", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "10" socket
+ ROMX_LOAD( "sf2-4m.5c", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "12" socket
+ ROMX_LOAD( "sf2-13m.4d", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "21" socket
+ ROMX_LOAD( "sf2-15m.6d", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "23" socket
+ ROMX_LOAD( "sf2-9m.3d", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "20" socket
+ ROMX_LOAD( "sf2-11m.5d", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "22" socket
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sf2_9.12a", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "sf2_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "sf2_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ 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( "stf29.1a", 0x0000, 0x0117, CRC(043309c5) SHA1(f6b9610c9f896c495041ba56a654776a521c356b) )
+ ROM_LOAD( "iob2.11d", 0x0000, 0x0117, CRC(d26f0a27) SHA1(22bb5647ff98df22fd19ae079ff98b9d100855f9) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "c632b.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) // == c632.ic1
+ROM_END
+
+/* B-Board 90629B-2 */
+ROM_START( sf2ua )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "sf2u_30a.11e", 0x00000, 0x20000, CRC(08beb861) SHA1(d47f16d0d692dc6405df0aecd7d9fc3f9718c0d1) )
+ ROM_LOAD16_BYTE( "sf2u_37a.11f", 0x00001, 0x20000, CRC(b7638d69) SHA1(b615a2e0e8772462fd875b2e8d2ccba82a8b3c47) )
+ ROM_LOAD16_BYTE( "sf2u_31a.12e", 0x40000, 0x20000, CRC(0d5394e0) SHA1(e1d88ff3669f1dbe1e3fbdf8aa9e2c63adbbcb48) )
+ ROM_LOAD16_BYTE( "sf2u_38a.12f", 0x40001, 0x20000, CRC(42d6a79e) SHA1(5f1e2c176d065325883a60767d05b1a542372b6a) )
+ ROM_LOAD16_BYTE( "sf2u_28a.9e", 0x80000, 0x20000, CRC(387a175c) SHA1(2635bb82758cf217cee63b254a537b02275a6838) )
+ ROM_LOAD16_BYTE( "sf2u_35a.9f", 0x80001, 0x20000, CRC(a1a5adcc) SHA1(47874e6d403256d828474b29e3d93c92efd9e1ce) )
+ ROM_LOAD16_BYTE( "sf2_29b.10e", 0xc0000, 0x20000, CRC(bb4af315) SHA1(75f0827f4f7e9f292add46467f8d4fe19b2514c9) )
+ ROM_LOAD16_BYTE( "sf2_36b.10f", 0xc0001, 0x20000, CRC(c02a13eb) SHA1(b807cc495bff3f95d03b061fc629c95f965cb6d8) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "sf2-5m.4a", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket
+ ROMX_LOAD( "sf2-7m.6a", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket
+ ROMX_LOAD( "sf2-1m.3a", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket
+ ROMX_LOAD( "sf2-3m.5a", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket
+ ROMX_LOAD( "sf2-6m.4c", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "11" socket
+ ROMX_LOAD( "sf2-8m.6c", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "13" socket
+ ROMX_LOAD( "sf2-2m.3c", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "10" socket
+ ROMX_LOAD( "sf2-4m.5c", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "12" socket
+ ROMX_LOAD( "sf2-13m.4d", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "21" socket
+ ROMX_LOAD( "sf2-15m.6d", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "23" socket
+ ROMX_LOAD( "sf2-9m.3d", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "20" socket
+ ROMX_LOAD( "sf2-11m.5d", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "22" socket
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sf2_9.12a", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "sf2_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "sf2_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ 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( "stf29.1a", 0x0000, 0x0117, CRC(043309c5) SHA1(f6b9610c9f896c495041ba56a654776a521c356b) )
+ ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 90629B-3 */
+ROM_START( sf2ub )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "sf2u_30b.11e", 0x00000, 0x20000, CRC(57bd7051) SHA1(5e211e75b1649b07723cabc03cf15636dbbae595) ) // == sf2e_30b.11e
+ ROM_LOAD16_BYTE( "sf2u_37b.11f", 0x00001, 0x20000, CRC(4a54d479) SHA1(eaff7a0d3c858a567c02086fde163850f0f5631e) )
+ ROM_LOAD16_BYTE( "sf2u_31b.12e", 0x40000, 0x20000, CRC(a673143d) SHA1(e565f0ec23d6deb543c72af5a83f070c07319477) ) // == sf2e_31b.12e
+ ROM_LOAD16_BYTE( "sf2u_38b.12f", 0x40001, 0x20000, CRC(4c2ccef7) SHA1(77b119c70c255622b023de25d9af3b3aac52ea47) ) // == sf2e_38b.12f
+ ROM_LOAD16_BYTE( "sf2u_28b.9e", 0x80000, 0x20000, CRC(4009955e) SHA1(7842dbef7650485639fbae49b9f4db7494d4f73d) ) // == sf2_28b.9e
+ ROM_LOAD16_BYTE( "sf2u_35b.9f", 0x80001, 0x20000, CRC(8c1f3994) SHA1(5e1d334399d05a837c2d80f79eada543e83afaf7) ) // == sf2_35b.9f
+ ROM_LOAD16_BYTE( "sf2_29b.10e", 0xc0000, 0x20000, CRC(bb4af315) SHA1(75f0827f4f7e9f292add46467f8d4fe19b2514c9) )
+ ROM_LOAD16_BYTE( "sf2_36b.10f", 0xc0001, 0x20000, CRC(c02a13eb) SHA1(b807cc495bff3f95d03b061fc629c95f965cb6d8) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "sf2-5m.4a", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket
+ ROMX_LOAD( "sf2-7m.6a", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket
+ ROMX_LOAD( "sf2-1m.3a", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket
+ ROMX_LOAD( "sf2-3m.5a", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket
+ ROMX_LOAD( "sf2-6m.4c", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "11" socket
+ ROMX_LOAD( "sf2-8m.6c", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "13" socket
+ ROMX_LOAD( "sf2-2m.3c", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "10" socket
+ ROMX_LOAD( "sf2-4m.5c", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "12" socket
+ ROMX_LOAD( "sf2-13m.4d", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "21" socket
+ ROMX_LOAD( "sf2-15m.6d", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "23" socket
+ ROMX_LOAD( "sf2-9m.3d", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "20" socket
+ ROMX_LOAD( "sf2-11m.5d", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "22" socket
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sf2_9.12a", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "sf2_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "sf2_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ 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( "stf29.1a", 0x0000, 0x0117, CRC(043309c5) SHA1(f6b9610c9f896c495041ba56a654776a521c356b) )
+ ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 90629B-3 */
+ROM_START( sf2uc )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "sf2u_30c.11e", 0x00000, 0x20000, CRC(6cb59385) SHA1(37750e8369298b597590d956f5fb7319301e6c7d) )
+ ROM_LOAD16_BYTE( "sf2u_37c.11f", 0x00001, 0x20000, CRC(32e2c278) SHA1(6cc5e0a9179163136b8104a1583da85a53d537f4) )
+ ROM_LOAD16_BYTE( "sf2u_31c.12e", 0x40000, 0x20000, CRC(c4fff4a9) SHA1(4b593ace201fe7f5a00b5cd7f4e8fc3f8dd4ceed) )
+ ROM_LOAD16_BYTE( "sf2u_38c.12f", 0x40001, 0x20000, CRC(8210fc0e) SHA1(7d6cfb99afa89d0e6e991d9f7c1808b740def125) )
+ ROM_LOAD16_BYTE( "sf2u_28c.9e", 0x80000, 0x20000, CRC(6eddd5e8) SHA1(62bd1c2fc0321809421c9a592f691b5b1a1d8807) )
+ ROM_LOAD16_BYTE( "sf2u_35c.9f", 0x80001, 0x20000, CRC(6bcb404c) SHA1(b5f24556c633c521aadd94e016d78db6922e3dfa) )
+ ROM_LOAD16_BYTE( "sf2_29b.10e", 0xc0000, 0x20000, CRC(bb4af315) SHA1(75f0827f4f7e9f292add46467f8d4fe19b2514c9) )
+ ROM_LOAD16_BYTE( "sf2_36b.10f", 0xc0001, 0x20000, CRC(c02a13eb) SHA1(b807cc495bff3f95d03b061fc629c95f965cb6d8) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "sf2-5m.4a", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket
+ ROMX_LOAD( "sf2-7m.6a", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket
+ ROMX_LOAD( "sf2-1m.3a", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket
+ ROMX_LOAD( "sf2-3m.5a", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket
+ ROMX_LOAD( "sf2-6m.4c", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "11" socket
+ ROMX_LOAD( "sf2-8m.6c", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "13" socket
+ ROMX_LOAD( "sf2-2m.3c", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "10" socket
+ ROMX_LOAD( "sf2-4m.5c", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "12" socket
+ ROMX_LOAD( "sf2-13m.4d", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "21" socket
+ ROMX_LOAD( "sf2-15m.6d", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "23" socket
+ ROMX_LOAD( "sf2-9m.3d", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "20" socket
+ ROMX_LOAD( "sf2-11m.5d", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "22" socket
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sf2_9.12a", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) ) // could be sf2_09.12a
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "sf2_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "sf2_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ 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( "stf29.1a", 0x0000, 0x0117, CRC(043309c5) SHA1(f6b9610c9f896c495041ba56a654776a521c356b) )
+ ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 90629B-3 */
+ROM_START( sf2ud )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "sf2u_30d.11e", 0x00000, 0x20000, CRC(4bb2657c) SHA1(b2d077296b77be7db371f953b7fc446a67d8a9d6) ) // == sf2e_30d.11e
+ ROM_LOAD16_BYTE( "sf2u_37d.11f", 0x00001, 0x20000, CRC(b33b42f2) SHA1(2e0babc8734c79dc2b51a6be64433bb2411c3da5) )
+ ROM_LOAD16_BYTE( "sf2u_31d.12e", 0x40000, 0x20000, CRC(d57b67d7) SHA1(43d0b47c9fada8d9b445caa4b96ac8493061aa8b) ) // == sf2e_31d.12e
+ ROM_LOAD16_BYTE( "sf2u_38d.12f", 0x40001, 0x20000, CRC(9c8916ef) SHA1(a4629356a816454bcc1d7b41e70e147d4769a682) ) // == sf2e_38d.12f
+ ROM_LOAD16_BYTE( "sf2u_28d.9e", 0x80000, 0x20000, CRC(175819d1) SHA1(c98b6b7af4e57735dbfb3d1e61ba1bfb9f145d33) ) // == sf2e_28d.9e
+ ROM_LOAD16_BYTE( "sf2u_35d.9f", 0x80001, 0x20000, CRC(82060da4) SHA1(7487cfc28cce3d76772ece657aef83b56034011e) ) // == sf2e_35d.9f
+ ROM_LOAD16_BYTE( "sf2_29b.10e", 0xc0000, 0x20000, CRC(bb4af315) SHA1(75f0827f4f7e9f292add46467f8d4fe19b2514c9) )
+ ROM_LOAD16_BYTE( "sf2_36b.10f", 0xc0001, 0x20000, CRC(c02a13eb) SHA1(b807cc495bff3f95d03b061fc629c95f965cb6d8) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "sf2-5m.4a", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket
+ ROMX_LOAD( "sf2-7m.6a", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket
+ ROMX_LOAD( "sf2-1m.3a", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket
+ ROMX_LOAD( "sf2-3m.5a", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket
+ ROMX_LOAD( "sf2-6m.4c", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "11" socket
+ ROMX_LOAD( "sf2-8m.6c", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "13" socket
+ ROMX_LOAD( "sf2-2m.3c", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "10" socket
+ ROMX_LOAD( "sf2-4m.5c", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "12" socket
+ ROMX_LOAD( "sf2-13m.4d", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "21" socket
+ ROMX_LOAD( "sf2-15m.6d", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "23" socket
+ ROMX_LOAD( "sf2-9m.3d", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "20" socket
+ ROMX_LOAD( "sf2-11m.5d", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "22" socket
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sf2_9.12a", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "sf2_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "sf2_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ 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( "stf29.1a", 0x0000, 0x0117, CRC(043309c5) SHA1(f6b9610c9f896c495041ba56a654776a521c356b) )
+ ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 90629B-3 */
+/* Note that this revision seems to be the only one that uses the IOB2 and C632B PALs instead of the IOB1 and C632,
+ while STF29 PAL is confirmed to be the same as the other Street Fighter II: The World Warrior sets. */
+ROM_START( sf2ue )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "sf2u_30e.11e", 0x00000, 0x20000, CRC(f37cd088) SHA1(48b71e44ce88d5f682ed679c737e7ec5262bb0df) )
+ ROM_LOAD16_BYTE( "sf2u_37e.11f", 0x00001, 0x20000, CRC(6c61a513) SHA1(6dc9ccd58fd5ef15ff9df20c865ff6c850f2b7dc) )
+ ROM_LOAD16_BYTE( "sf2u_31e.12e", 0x40000, 0x20000, CRC(7c4771b4) SHA1(6637b24194c86ec72a1775d4e976891243cd66fd) )
+ ROM_LOAD16_BYTE( "sf2u_38e.12f", 0x40001, 0x20000, CRC(a4bd0cd9) SHA1(32a2bc18d1f860668141e53cbca862ceec238c19) )
+ ROM_LOAD16_BYTE( "sf2u_28e.9e", 0x80000, 0x20000, CRC(e3b95625) SHA1(f7277f9980040f96434d1bd162eaf9ba0dfbb005) )
+ ROM_LOAD16_BYTE( "sf2u_35e.9f", 0x80001, 0x20000, CRC(3648769a) SHA1(74e5934b0e3b4da35ff48086f41e7502b42731c6) )
+ ROM_LOAD16_BYTE( "sf2_29b.10e", 0xc0000, 0x20000, CRC(bb4af315) SHA1(75f0827f4f7e9f292add46467f8d4fe19b2514c9) )
+ ROM_LOAD16_BYTE( "sf2_36b.10f", 0xc0001, 0x20000, CRC(c02a13eb) SHA1(b807cc495bff3f95d03b061fc629c95f965cb6d8) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "sf2-5m.4a", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket
+ ROMX_LOAD( "sf2-7m.6a", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket
+ ROMX_LOAD( "sf2-1m.3a", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket
+ ROMX_LOAD( "sf2-3m.5a", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket
+ ROMX_LOAD( "sf2-6m.4c", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "11" socket
+ ROMX_LOAD( "sf2-8m.6c", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "13" socket
+ ROMX_LOAD( "sf2-2m.3c", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "10" socket
+ ROMX_LOAD( "sf2-4m.5c", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "12" socket
+ ROMX_LOAD( "sf2-13m.4d", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "21" socket
+ ROMX_LOAD( "sf2-15m.6d", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "23" socket
+ ROMX_LOAD( "sf2-9m.3d", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "20" socket
+ ROMX_LOAD( "sf2-11m.5d", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "22" socket
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sf2_9.12a", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "sf2_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "sf2_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ 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( "stf29.1a", 0x0000, 0x0117, CRC(043309c5) SHA1(f6b9610c9f896c495041ba56a654776a521c356b) )
+ ROM_LOAD( "iob2.11d", 0x0000, 0x0117, CRC(d26f0a27) SHA1(22bb5647ff98df22fd19ae079ff98b9d100855f9) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "c632b.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) // == c632.ic1
+ROM_END
+
+/* B-Board 90629B-3 */
+ROM_START( sf2uf )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "sf2u_30f.11e", 0x00000, 0x20000, CRC(fe39ee33) SHA1(22558eb15e035b09b80935a32b8425d91cd79669) ) // == sf2e_30g.11e
+ ROM_LOAD16_BYTE( "sf2u_37f.11f", 0x00001, 0x20000, CRC(169e7388) SHA1(c7cb2de529d94cea4a018ed3bd611037fe54abe7) )
+ ROM_LOAD16_BYTE( "sf2u_31f.12e", 0x40000, 0x20000, CRC(69a0a301) SHA1(86a3954335310865b14ce8b4e0e4499feb14fc12) ) // == sf2e_31g.12e
+ ROM_LOAD16_BYTE( "sf2u_38f.12f", 0x40001, 0x20000, CRC(1510e4e2) SHA1(fbfdd4e42c4bc894592dbe5a84c88d5f13d21da4) )
+ ROM_LOAD16_BYTE( "sf2u_28f.9e", 0x80000, 0x20000, CRC(acd8175b) SHA1(504991c46fa568d31ce69bd63e2a67926a06b5a9) )
+ ROM_LOAD16_BYTE( "sf2u_35f.9f", 0x80001, 0x20000, CRC(c0a80bd1) SHA1(ac25a9ed488e03baf4115541fdcce3973ce6a442) )
+ ROM_LOAD16_BYTE( "sf2_29b.10e", 0xc0000, 0x20000, CRC(bb4af315) SHA1(75f0827f4f7e9f292add46467f8d4fe19b2514c9) )
+ ROM_LOAD16_BYTE( "sf2_36b.10f", 0xc0001, 0x20000, CRC(c02a13eb) SHA1(b807cc495bff3f95d03b061fc629c95f965cb6d8) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "sf2-5m.4a", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket
+ ROMX_LOAD( "sf2-7m.6a", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket
+ ROMX_LOAD( "sf2-1m.3a", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket
+ ROMX_LOAD( "sf2-3m.5a", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket
+ ROMX_LOAD( "sf2-6m.4c", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "11" socket
+ ROMX_LOAD( "sf2-8m.6c", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "13" socket
+ ROMX_LOAD( "sf2-2m.3c", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "10" socket
+ ROMX_LOAD( "sf2-4m.5c", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "12" socket
+ ROMX_LOAD( "sf2-13m.4d", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "21" socket
+ ROMX_LOAD( "sf2-15m.6d", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "23" socket
+ ROMX_LOAD( "sf2-9m.3d", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "20" socket
+ ROMX_LOAD( "sf2-11m.5d", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "22" socket
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sf2_9.12a", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "sf2_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "sf2_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ 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( "stf29.1a", 0x0000, 0x0117, CRC(043309c5) SHA1(f6b9610c9f896c495041ba56a654776a521c356b) )
+ ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 90629B-3 */
+ROM_START( sf2ug )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "sf2u_30g.11e", 0x00000, 0x20000, CRC(fe39ee33) SHA1(22558eb15e035b09b80935a32b8425d91cd79669) ) // == sf2e_30g.11e
+ ROM_LOAD16_BYTE( "sf2u_37g.11f", 0x00001, 0x20000, CRC(5886cae7) SHA1(8a621d267dfcf5d214b1bbec12b98a06153c86d3) )
+ ROM_LOAD16_BYTE( "sf2u_31g.12e", 0x40000, 0x20000, CRC(69a0a301) SHA1(86a3954335310865b14ce8b4e0e4499feb14fc12) ) // == sf2e_31g.12e
+ ROM_LOAD16_BYTE( "sf2u_38g.12f", 0x40001, 0x20000, CRC(5e22db70) SHA1(6565946591a18eaf46f04c1aa449ee0ae9ac2901) ) // == sf2e_38g.12f
+ ROM_LOAD16_BYTE( "sf2u_28g.9e", 0x80000, 0x20000, CRC(8bf9f1e5) SHA1(bbcef63f35e5bff3f373968ba1278dd6bd86b593) ) // == sf2e_28g.9e
+ ROM_LOAD16_BYTE( "sf2u_35g.9f", 0x80001, 0x20000, CRC(626ef934) SHA1(507bda3e4519de237aca919cf72e543403ec9724) ) // == sf2e_35g.9f
+ ROM_LOAD16_BYTE( "sf2_29b.10e", 0xc0000, 0x20000, CRC(bb4af315) SHA1(75f0827f4f7e9f292add46467f8d4fe19b2514c9) )
+ ROM_LOAD16_BYTE( "sf2_36b.10f", 0xc0001, 0x20000, CRC(c02a13eb) SHA1(b807cc495bff3f95d03b061fc629c95f965cb6d8) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "sf2-5m.4a", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket
+ ROMX_LOAD( "sf2-7m.6a", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket
+ ROMX_LOAD( "sf2-1m.3a", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket
+ ROMX_LOAD( "sf2-3m.5a", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket
+ ROMX_LOAD( "sf2-6m.4c", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "11" socket
+ ROMX_LOAD( "sf2-8m.6c", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "13" socket
+ ROMX_LOAD( "sf2-2m.3c", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "10" socket
+ ROMX_LOAD( "sf2-4m.5c", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "12" socket
+ ROMX_LOAD( "sf2-13m.4d", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "21" socket
+ ROMX_LOAD( "sf2-15m.6d", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "23" socket
+ ROMX_LOAD( "sf2-9m.3d", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "20" socket
+ ROMX_LOAD( "sf2-11m.5d", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "22" socket
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sf2_9.12a", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "sf2_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "sf2_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ 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( "stf29.1a", 0x0000, 0x0117, CRC(043309c5) SHA1(f6b9610c9f896c495041ba56a654776a521c356b) )
+ ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 90629B-3 */
+ROM_START( sf2ui )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "sf2u_30i.11e", 0x00000, 0x20000, CRC(fe39ee33) SHA1(22558eb15e035b09b80935a32b8425d91cd79669) ) // == sf2e_30g.11e
+ ROM_LOAD16_BYTE( "sf2u_37i.11f", 0x00001, 0x20000, CRC(9df707dd) SHA1(b148ea450f9e96f3c20f487010a3c57f778e40c1) )
+ ROM_LOAD16_BYTE( "sf2u_31i.12e", 0x40000, 0x20000, CRC(69a0a301) SHA1(86a3954335310865b14ce8b4e0e4499feb14fc12) ) // == sf2e_31g.12e
+ ROM_LOAD16_BYTE( "sf2u_38i.12f", 0x40001, 0x20000, CRC(4cb46daf) SHA1(dee103ae1391cd9ac150f787187233cd8c06ea1e) )
+ ROM_LOAD16_BYTE( "sf2u_28i.9e", 0x80000, 0x20000, CRC(1580be4c) SHA1(d89ed0ff4bf14ff2eaae4609f55970b6b37c8e32) ) /* seen the same pcb with SF2_28I.9E */
+ ROM_LOAD16_BYTE( "sf2u_35i.9f", 0x80001, 0x20000, CRC(1468d185) SHA1(750de0cad3859e4917aebb02c2e137dea619f201) )
+ ROM_LOAD16_BYTE( "sf2_29b.10e", 0xc0000, 0x20000, CRC(bb4af315) SHA1(75f0827f4f7e9f292add46467f8d4fe19b2514c9) )
+ ROM_LOAD16_BYTE( "sf2_36b.10f", 0xc0001, 0x20000, CRC(c02a13eb) SHA1(b807cc495bff3f95d03b061fc629c95f965cb6d8) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "sf2-5m.4a", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket
+ ROMX_LOAD( "sf2-7m.6a", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket
+ ROMX_LOAD( "sf2-1m.3a", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket
+ ROMX_LOAD( "sf2-3m.5a", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket
+ ROMX_LOAD( "sf2-6m.4c", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "11" socket
+ ROMX_LOAD( "sf2-8m.6c", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "13" socket
+ ROMX_LOAD( "sf2-2m.3c", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "10" socket
+ ROMX_LOAD( "sf2-4m.5c", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "12" socket
+ ROMX_LOAD( "sf2-13m.4d", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "21" socket
+ ROMX_LOAD( "sf2-15m.6d", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "23" socket
+ ROMX_LOAD( "sf2-9m.3d", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "20" socket
+ ROMX_LOAD( "sf2-11m.5d", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "22" socket
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sf2_9.12a", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "sf2_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "sf2_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ 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( "stf29.1a", 0x0000, 0x0117, CRC(043309c5) SHA1(f6b9610c9f896c495041ba56a654776a521c356b) )
+ ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 90629B-3 */
+ROM_START( sf2uk )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "sf2u_30k.11e", 0x00000, 0x20000, CRC(8f66076c) SHA1(f9653b36bb5012e6bde5fe3bcade4a6a7a7e7def) )
+ ROM_LOAD16_BYTE( "sf2u_37k.11f", 0x00001, 0x20000, CRC(4e1f6a83) SHA1(ee679b79ff3c3165979d3de23e0f668839cf465f) )
+ ROM_LOAD16_BYTE( "sf2u_31k.12e", 0x40000, 0x20000, CRC(f9f89f60) SHA1(c3b71482b85c83576518f300be768655412276b0) )
+ ROM_LOAD16_BYTE( "sf2u_38k.12f", 0x40001, 0x20000, CRC(6ce0a85a) SHA1(567fd18cd626c94496d9123ecef87dc638f0041a) )
+ ROM_LOAD16_BYTE( "sf2u_28k.9e", 0x80000, 0x20000, CRC(8e958f31) SHA1(81359bc988c4e9e375b5bbd960921d425b77f706) )
+ ROM_LOAD16_BYTE( "sf2u_35k.9f", 0x80001, 0x20000, CRC(fce76fad) SHA1(66f881ba600c7e6bbe960cfd0772ed16208b79c8) )
+ ROM_LOAD16_BYTE( "sf2u_29a.10e", 0xc0000, 0x20000, CRC(bb4af315) SHA1(75f0827f4f7e9f292add46467f8d4fe19b2514c9) ) // == sf2_29b.10e
+ ROM_LOAD16_BYTE( "sf2u_36a.10f", 0xc0001, 0x20000, CRC(c02a13eb) SHA1(b807cc495bff3f95d03b061fc629c95f965cb6d8) ) // == sf2_36b.10f
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "sf2-5m.4a", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket
+ ROMX_LOAD( "sf2-7m.6a", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket
+ ROMX_LOAD( "sf2-1m.3a", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket
+ ROMX_LOAD( "sf2-3m.5a", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket
+ ROMX_LOAD( "sf2-6m.4c", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "11" socket
+ ROMX_LOAD( "sf2-8m.6c", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "13" socket
+ ROMX_LOAD( "sf2-2m.3c", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "10" socket
+ ROMX_LOAD( "sf2-4m.5c", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "12" socket
+ ROMX_LOAD( "sf2-13m.4d", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "21" socket
+ ROMX_LOAD( "sf2-15m.6d", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "23" socket
+ ROMX_LOAD( "sf2-9m.3d", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "20" socket
+ ROMX_LOAD( "sf2-11m.5d", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "22" socket
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sf2_09.12a", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) ) // == sf2_9.12a
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "sf2_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "sf2_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ 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( "stf29.1a", 0x0000, 0x0117, CRC(043309c5) SHA1(f6b9610c9f896c495041ba56a654776a521c356b) )
+ ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 90629B */
+ROM_START( sf2j )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "sf2j30.bin", 0x00000, 0x20000, CRC(79022b31) SHA1(b7cfe0498260cdd2779580c47829dd02435ffff4) )
+ ROM_LOAD16_BYTE( "sf2j37.bin", 0x00001, 0x20000, CRC(516776ec) SHA1(4f8b63c4d4265a105751fa72b50bd0fa538bf881) )
+ ROM_LOAD16_BYTE( "sf2j31.bin", 0x40000, 0x20000, CRC(fe15cb39) SHA1(383478524881ea70d9e04c9b6143b8735b637eee) )
+ ROM_LOAD16_BYTE( "sf2j38.bin", 0x40001, 0x20000, CRC(38614d70) SHA1(39c58096f3a8e01fb439639b742b83102bbaa7f6) )
+ ROM_LOAD16_BYTE( "sf2j28.bin", 0x80000, 0x20000, CRC(d283187a) SHA1(5ea83d2652e43e46b831b614d1fe06d465bac9a3) )
+ ROM_LOAD16_BYTE( "sf2j35.bin", 0x80001, 0x20000, CRC(d28158e4) SHA1(bf2bca6068e374011afa95e99809d262f522df18) )
+ ROM_LOAD16_BYTE( "sf2_29a.bin", 0xc0000, 0x20000, CRC(bb4af315) SHA1(75f0827f4f7e9f292add46467f8d4fe19b2514c9) )
+ ROM_LOAD16_BYTE( "sf2_36a.bin", 0xc0001, 0x20000, CRC(c02a13eb) SHA1(b807cc495bff3f95d03b061fc629c95f965cb6d8) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "sf2_06.8a", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-5m.4a
+ ROMX_LOAD( "sf2_08.10a", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-7m.6a
+ ROMX_LOAD( "sf2_05.7a", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-1m.3a
+ ROMX_LOAD( "sf2_07.9a", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-3m.5a
+ ROMX_LOAD( "sf2_15.8c", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-6m.4c
+ ROMX_LOAD( "sf2_17.10c", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-8m.6c
+ ROMX_LOAD( "sf2_14.7c", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-2m.3c
+ ROMX_LOAD( "sf2_16.9c", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-4m.5c
+ ROMX_LOAD( "sf2_25.8d", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-13m.4d
+ ROMX_LOAD( "sf2_27.10d", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-15m.6d
+ ROMX_LOAD( "sf2_24.7d", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-9m.3d
+ ROMX_LOAD( "sf2_26.9d", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-11m.5d
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sf2_09.bin", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "sf2_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "sf2_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ 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( "stf29.1a", 0x0000, 0x0117, CRC(043309c5) SHA1(f6b9610c9f896c495041ba56a654776a521c356b) )
+ ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 90629B-2 */
+ROM_START( sf2ja )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "sf2j_30a.11e", 0x00000, 0x20000, CRC(57bd7051) SHA1(5e211e75b1649b07723cabc03cf15636dbbae595) ) // == sf2e_30b.11e
+ ROM_LOAD16_BYTE( "sf2j_37a.11f", 0x00001, 0x20000, CRC(1e1f6844) SHA1(c80e5ac6a6cea39511c38e31ea55b6cd3888024f) )
+ ROM_LOAD16_BYTE( "sf2j_31a.12e", 0x40000, 0x20000, CRC(a673143d) SHA1(e565f0ec23d6deb543c72af5a83f070c07319477) ) // == sf2e_31b.12e
+ ROM_LOAD16_BYTE( "sf2j_38a.12f", 0x40001, 0x20000, CRC(4c2ccef7) SHA1(77b119c70c255622b023de25d9af3b3aac52ea47) ) // == sf2e_38b.12f
+ ROM_LOAD16_BYTE( "sf2j_28a.9e", 0x80000, 0x20000, CRC(4009955e) SHA1(7842dbef7650485639fbae49b9f4db7494d4f73d) ) // == sf2_28b.9e
+ ROM_LOAD16_BYTE( "sf2j_35a.9f", 0x80001, 0x20000, CRC(8c1f3994) SHA1(5e1d334399d05a837c2d80f79eada543e83afaf7) ) // == sf2_35b.9f
+ ROM_LOAD16_BYTE( "sf2j_29a.10e", 0xc0000, 0x20000, CRC(bb4af315) SHA1(75f0827f4f7e9f292add46467f8d4fe19b2514c9) ) // == sf2_29b.10e
+ ROM_LOAD16_BYTE( "sf2j_36a.10f", 0xc0001, 0x20000, CRC(c02a13eb) SHA1(b807cc495bff3f95d03b061fc629c95f965cb6d8) ) // == sf2_36b.10f
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "sf2_06.8a", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-5m.4a
+ ROMX_LOAD( "sf2_08.10a", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-7m.6a
+ ROMX_LOAD( "sf2_05.7a", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-1m.3a
+ ROMX_LOAD( "sf2_07.9a", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-3m.5a
+ ROMX_LOAD( "sf2_15.8c", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-6m.4c
+ ROMX_LOAD( "sf2_17.10c", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-8m.6c
+ ROMX_LOAD( "sf2_14.7c", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-2m.3c
+ ROMX_LOAD( "sf2_16.9c", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-4m.5c
+ ROMX_LOAD( "sf2_25.8d", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-13m.4d
+ ROMX_LOAD( "sf2_27.10d", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-15m.6d
+ ROMX_LOAD( "sf2_24.7d", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-9m.3d
+ ROMX_LOAD( "sf2_26.9d", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-11m.5d
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sf2j_09.12a", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) ) // == sf2_9.12a
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "sf2j_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) // == sf2_18.11c
+ ROM_LOAD( "sf2j_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) // == sf2_19.12c
+
+ 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( "stf29.1a", 0x0000, 0x0117, CRC(043309c5) SHA1(f6b9610c9f896c495041ba56a654776a521c356b) )
+ ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 90629B-3 */
+ROM_START( sf2jc )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "sf2j_30c.11e", 0x00000, 0x20000, CRC(8add35ec) SHA1(b08428ff262ca4feddd3c72058b4b674a5401aba) )
+ ROM_LOAD16_BYTE( "sf2j_37c.11f", 0x00001, 0x20000, CRC(0d74a256) SHA1(587fd0ee1c2ef54554237486eb5b0d1ec30c2868) )
+ ROM_LOAD16_BYTE( "sf2j_31c.12e", 0x40000, 0x20000, CRC(c4fff4a9) SHA1(4b593ace201fe7f5a00b5cd7f4e8fc3f8dd4ceed) ) // == sf2u_31c.12e
+ ROM_LOAD16_BYTE( "sf2j_38c.12f", 0x40001, 0x20000, CRC(8210fc0e) SHA1(7d6cfb99afa89d0e6e991d9f7c1808b740def125) ) // == sf2u_38c.12f
+ ROM_LOAD16_BYTE( "sf2j_28c.9e", 0x80000, 0x20000, CRC(6eddd5e8) SHA1(62bd1c2fc0321809421c9a592f691b5b1a1d8807) ) // == sf2u_28c.9e
+ ROM_LOAD16_BYTE( "sf2j_35c.9f", 0x80001, 0x20000, CRC(6bcb404c) SHA1(b5f24556c633c521aadd94e016d78db6922e3dfa) ) // == sf2u_35c.9f
+ ROM_LOAD16_BYTE( "sf2j_29a.10e", 0xc0000, 0x20000, CRC(bb4af315) SHA1(75f0827f4f7e9f292add46467f8d4fe19b2514c9) ) // == sf2_29b.10e
+ ROM_LOAD16_BYTE( "sf2j_36a.10f", 0xc0001, 0x20000, CRC(c02a13eb) SHA1(b807cc495bff3f95d03b061fc629c95f965cb6d8) ) // == sf2_36b.10f
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "sf2_06.8a", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-5m.4a
+ ROMX_LOAD( "sf2_08.10a", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-7m.6a
+ ROMX_LOAD( "sf2_05.7a", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-1m.3a
+ ROMX_LOAD( "sf2_07.9a", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-3m.5a
+ ROMX_LOAD( "sf2_15.8c", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-6m.4c
+ ROMX_LOAD( "sf2_17.10c", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-8m.6c
+ ROMX_LOAD( "sf2_14.7c", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-2m.3c
+ ROMX_LOAD( "sf2_16.9c", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-4m.5c
+ ROMX_LOAD( "sf2_25.8d", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-13m.4d
+ ROMX_LOAD( "sf2_27.10d", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-15m.6d
+ ROMX_LOAD( "sf2_24.7d", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-9m.3d
+ ROMX_LOAD( "sf2_26.9d", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-11m.5d
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sf2_09.12a", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) ) // == sf2_9.12a
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "sf2j_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) // == sf2_18.11c
+ ROM_LOAD( "sf2j_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) // == sf2_19.12c
+
+ 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( "stf29.1a", 0x0000, 0x0117, CRC(043309c5) SHA1(f6b9610c9f896c495041ba56a654776a521c356b) )
+ ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 90629B-3 */
+ROM_START( sf2jf )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "sf2j_30f.11e", 0x00000, 0x20000, CRC(fe39ee33) SHA1(22558eb15e035b09b80935a32b8425d91cd79669) ) // == sf2e_30g.11e
+ ROM_LOAD16_BYTE( "sf2j_37f.11f", 0x00001, 0x20000, CRC(c1428cc6) SHA1(6a3f21de57c3dd60a7c991ca667dc2a77d813039) )
+ ROM_LOAD16_BYTE( "sf2j_31f.12e", 0x40000, 0x20000, CRC(69a0a301) SHA1(86a3954335310865b14ce8b4e0e4499feb14fc12) ) // == sf2e_31g.12e
+ ROM_LOAD16_BYTE( "sf2j_38f.12f", 0x40001, 0x20000, CRC(1510e4e2) SHA1(fbfdd4e42c4bc894592dbe5a84c88d5f13d21da4) )
+ ROM_LOAD16_BYTE( "sf2j_28f.9e", 0x80000, 0x20000, CRC(acd8175b) SHA1(504991c46fa568d31ce69bd63e2a67926a06b5a9) )
+ ROM_LOAD16_BYTE( "sf2j_35f.9f", 0x80001, 0x20000, CRC(c0a80bd1) SHA1(ac25a9ed488e03baf4115541fdcce3973ce6a442) )
+ ROM_LOAD16_BYTE( "sf2j_29a.10e", 0xc0000, 0x20000, CRC(bb4af315) SHA1(75f0827f4f7e9f292add46467f8d4fe19b2514c9) ) // == sf2_29b.10e
+ ROM_LOAD16_BYTE( "sf2j_36a.10f", 0xc0001, 0x20000, CRC(c02a13eb) SHA1(b807cc495bff3f95d03b061fc629c95f965cb6d8) ) // == sf2_36b.10f
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "sf2_06.8a", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-5m.4a
+ ROMX_LOAD( "sf2_08.10a", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-7m.6a
+ ROMX_LOAD( "sf2_05.7a", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-1m.3a
+ ROMX_LOAD( "sf2_07.9a", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-3m.5a
+ ROMX_LOAD( "sf2_15.8c", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-6m.4c
+ ROMX_LOAD( "sf2_17.10c", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-8m.6c
+ ROMX_LOAD( "sf2_14.7c", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-2m.3c
+ ROMX_LOAD( "sf2_16.9c", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-4m.5c
+ ROMX_LOAD( "sf2_25.8d", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-13m.4d
+ ROMX_LOAD( "sf2_27.10d", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-15m.6d
+ ROMX_LOAD( "sf2_24.7d", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-9m.3d
+ ROMX_LOAD( "sf2_26.9d", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-11m.5d
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sf2_09.12a", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) ) // == sf2_9.12a
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "sf2_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "sf2_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ 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( "stf29.1a", 0x0000, 0x0117, CRC(043309c5) SHA1(f6b9610c9f896c495041ba56a654776a521c356b) )
+ ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 90629B-3 */
+ROM_START( sf2jh )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "sf2j_30h.11e", 0x00000, 0x20000, CRC(fe39ee33) SHA1(22558eb15e035b09b80935a32b8425d91cd79669) ) // == sf2e_30g.11e
+ ROM_LOAD16_BYTE( "sf2j_37h.11f", 0x00001, 0x20000, CRC(330304b0) SHA1(93bf761804228a79d16afa2fcfbe28e6942dff51) )
+ ROM_LOAD16_BYTE( "sf2j_31h.12e", 0x40000, 0x20000, CRC(69a0a301) SHA1(86a3954335310865b14ce8b4e0e4499feb14fc12) ) // == sf2e_31g.12e
+ ROM_LOAD16_BYTE( "sf2j_38h.12f", 0x40001, 0x20000, CRC(a659f678) SHA1(f3b99ebaa59edb889498cf5c9d7ceb939da1dedc) )
+ ROM_LOAD16_BYTE( "sf2j_28h.9e", 0x80000, 0x20000, CRC(8a5c8ee0) SHA1(a6df46e96bf7596665177b18213a3aee4cc7c378) )
+ ROM_LOAD16_BYTE( "sf2j_35h.9f", 0x80001, 0x20000, CRC(c828fc4d) SHA1(0025630bef45862d8b72a2d19a6c5adf96905bd5) )
+ ROM_LOAD16_BYTE( "sf2j_29a.10e", 0xc0000, 0x20000, CRC(bb4af315) SHA1(75f0827f4f7e9f292add46467f8d4fe19b2514c9) ) // == sf2_29b.10e
+ ROM_LOAD16_BYTE( "sf2j_36a.10f", 0xc0001, 0x20000, CRC(c02a13eb) SHA1(b807cc495bff3f95d03b061fc629c95f965cb6d8) ) // == sf2_36b.10f
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "sf2_06.8a", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-5m.4a
+ ROMX_LOAD( "sf2_08.10a", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-7m.6a
+ ROMX_LOAD( "sf2_05.7a", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-1m.3a
+ ROMX_LOAD( "sf2_07.9a", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-3m.5a
+ ROMX_LOAD( "sf2_15.8c", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-6m.4c
+ ROMX_LOAD( "sf2_17.10c", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-8m.6c
+ ROMX_LOAD( "sf2_14.7c", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-2m.3c
+ ROMX_LOAD( "sf2_16.9c", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-4m.5c
+ ROMX_LOAD( "sf2_25.8d", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-13m.4d
+ ROMX_LOAD( "sf2_27.10d", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-15m.6d
+ ROMX_LOAD( "sf2_24.7d", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-9m.3d
+ ROMX_LOAD( "sf2_26.9d", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-11m.5d
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sf2_09.12a", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) ) // == sf2_9.12a
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "sf2_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "sf2_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ 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( "stf29.1a", 0x0000, 0x0117, CRC(043309c5) SHA1(f6b9610c9f896c495041ba56a654776a521c356b) )
+ ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 90629B-2 */
+ROM_START( sf2jl )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "sf-2_30l.11e", 0x00000, 0x20000, CRC(34a1ce02) SHA1(6875813c49a92b8650f444c1857459adc86bc0d0) ) // These "L" revision roms are verified as being
+ ROM_LOAD16_BYTE( "sf-2_37l.11f", 0x00001, 0x20000, CRC(5b630ed2) SHA1(b14ef94b86f55c82391db8aca4d6f9487b9758a7) ) // labeled "SF-2" without "J" for Japan region
+ ROM_LOAD16_BYTE( "sf-2_31l.12e", 0x40000, 0x20000, CRC(64ebc8d2) SHA1(1817de5dcca47a1bb94838d26a9a3adf6b75c911) )
+ ROM_LOAD16_BYTE( "sf-2_38l.12f", 0x40001, 0x20000, CRC(73847443) SHA1(72fb5472a04061e4a50cb57e4f65ba8ec022a965) )
+ ROM_LOAD16_BYTE( "sf-2_28l.9e", 0x80000, 0x20000, CRC(eee2b426) SHA1(1d7b5073b9473d3c92fc95c0d0625716c82fc944) )
+ ROM_LOAD16_BYTE( "sf-2_35l.9f", 0x80001, 0x20000, CRC(eca8b452) SHA1(f3d06bd32ef2649a8278d8a0517372067e3f99b7) )
+ ROM_LOAD16_BYTE( "sf2j_29a.10e", 0xc0000, 0x20000, CRC(bb4af315) SHA1(75f0827f4f7e9f292add46467f8d4fe19b2514c9) ) // == sf2_29b.10e
+ ROM_LOAD16_BYTE( "sf2j_36a.10f", 0xc0001, 0x20000, CRC(c02a13eb) SHA1(b807cc495bff3f95d03b061fc629c95f965cb6d8) ) // == sf2_36b.10f
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "sf2_06.8a", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-5m.4a
+ ROMX_LOAD( "sf2_08.10a", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-7m.6a
+ ROMX_LOAD( "sf2_05.7a", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-1m.3a
+ ROMX_LOAD( "sf2_07.9a", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-3m.5a
+ ROMX_LOAD( "sf2_15.8c", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-6m.4c
+ ROMX_LOAD( "sf2_17.10c", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-8m.6c
+ ROMX_LOAD( "sf2_14.7c", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-2m.3c
+ ROMX_LOAD( "sf2_16.9c", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-4m.5c
+ ROMX_LOAD( "sf2_25.8d", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-13m.4d
+ ROMX_LOAD( "sf2_27.10d", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-15m.6d
+ ROMX_LOAD( "sf2_24.7d", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-9m.3d
+ ROMX_LOAD( "sf2_26.9d", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-11m.5d
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sf2j_09.12a", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) ) // == sf2_9.12a
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "sf2j_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) ) // == sf2_18.11c
+ ROM_LOAD( "sf2j_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) ) // == sf2_19.12c
+
+ 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( "stf29.1a", 0x0000, 0x0117, CRC(043309c5) SHA1(f6b9610c9f896c495041ba56a654776a521c356b) )
+ ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* Bootleg manufactured by TAB Austria
+
+ -------------------------------------------------------
+ | ROM1 *2 *3 ROM5 ROM9 |
+ | ROM2 ROM6 ROM8 |
+ | *1 1B 1D |
+ | 6295 1A 1C |
+ | YM ROM4 1F 1H |
+ | ROM3 1E 1G |
+-- Z80 1J 1L |
+-- 1I 1K |
+-- |
+-- |
+-- TAB |
+-- AUSTRIA |
+ | DIP8 6 |
+ | 8 ROM10 ROM9 |
+ | DIP8 0 ROM12 ROM11 |
+ | 0 |
+ | DIP8 0 |
+ |------------------------------------------------------
+
+ *1 = 12.000 Mhz
+ *2 = 3.579545 Mhz
+ *3 = 16.000 Mhz
+
+*/
+ROM_START( sf2ebbl )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "12.bin", 0x00000, 0x40000, CRC(a258b4d5) SHA1(3433b6493794c98bb35c1b27cc65bb5f13d52e9b) )
+ ROM_LOAD16_BYTE( "09.bin", 0x00001, 0x40000, CRC(59ccd474) SHA1(7bb28c28ee722435fdbb18eb73e52bd65b419103) )
+ ROM_LOAD16_BYTE( "11.bin", 0x80000, 0x40000, CRC(82097d63) SHA1(881e7ffb78197f6794b5d41f5c2c87da35e8cb15) )
+ ROM_LOAD16_BYTE( "10.bin", 0x80001, 0x40000, CRC(0c83844d) SHA1(4c25ba4a50d62c62789d026e3d304ed1dfb3c248) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ /* The 12 MASK roms on this PCB match the original roms exactly */
+ ROMX_LOAD( "1b_yf082.bin", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "1d_yf028.bin", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "1a_yf087.bin", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "1c_yf088.bin", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "1f_yf085.bin", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "1h_yf115.bin", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "1e_yf111.bin", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "1g_yf002.bin", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "1j_yf117.bin", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "1l_ye040.bin", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "1i_yf038.bin", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "1k_ye039.bin", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ /* These map over the MASK roms on this bootleg to get rid of the CAPCOM logo (wasteful, but correct) */
+ ROMX_LOAD( "05.bin", 0x400000, 0x10000, CRC(a505621e) SHA1(8ffa8cedad54948870bbd8f629d927332dc9fcf6) , ROM_SKIP(7) )
+ ROM_CONTINUE( 0x400004, 0x10000 )
+ ROMX_LOAD( "07.bin", 0x400002, 0x10000, CRC(de6271fb) SHA1(574ec5d9992941a405fd00abe52da41aba4b29a7) , ROM_SKIP(7) )
+ ROM_CONTINUE( 0x400006, 0x10000 )
+ ROMX_LOAD( "06.bin", 0x400001, 0x10000, CRC(23775344) SHA1(0d6b54f66cd64c3f48c88c8e17a19fdb2002afb0) , ROM_SKIP(7) )
+ ROM_CONTINUE( 0x400005, 0x10000 )
+ ROMX_LOAD( "08.bin", 0x400003, 0x10000, CRC(81c9550f) SHA1(2d75e329148caadfff35c8f2f91b352f14dbe08a) , ROM_SKIP(7) )
+ ROM_CONTINUE( 0x400007, 0x10000 )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "03.bin", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x20000, "user1", 0 ) /* unknown (bootleg priority?) */
+ ROM_LOAD( "04.bin", 0x00000, 0x10000, CRC(13ea1c44) SHA1(5b05fe4c3920e33d94fac5f59e09ff14b3e427fe) )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "02.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "01.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+ROM_END
+
+ROM_START( sf2ebbl2 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "27c020.7", 0x00000, 0x40000, CRC(a258b4d5) SHA1(3433b6493794c98bb35c1b27cc65bb5f13d52e9b) )
+ ROM_LOAD16_BYTE( "27c020.5", 0x00001, 0x40000, CRC(59ccd474) SHA1(7bb28c28ee722435fdbb18eb73e52bd65b419103) )
+ ROM_LOAD16_BYTE( "27c020.6", 0x80000, 0x40000, CRC(82097d63) SHA1(881e7ffb78197f6794b5d41f5c2c87da35e8cb15) )
+ ROM_LOAD16_BYTE( "27c020.4", 0x80001, 0x40000, CRC(0c83844d) SHA1(4c25ba4a50d62c62789d026e3d304ed1dfb3c248) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ /* 5 MASK roms on this PCB match the original roms exactly, */
+ ROMX_LOAD( "a-se235.bin", 0x000000, 0x80000, CRC(a258de13) SHA1(2e477948c4c8a2fb7cfdc4a739766bc4a4e01c49) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000004, 0x80000)
+ ROMX_LOAD( "c-se005.bin", 0x000002, 0x80000, CRC(c781bf87) SHA1(034baa9807c2ce8dc800200963a38cd9262b21fb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000006, 0x80000)
+ ROMX_LOAD( "b-se194.bin", 0x200000, 0x80000, CRC(5726cab8) SHA1(0b2243a9a7184d53d42ddab7a8c51b63001c2f56) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x200004, 0x80000)
+ ROMX_LOAD( "d-se064.bin", 0x200002, 0x80000, CRC(4dd24197) SHA1(548beaa0a6f1c3c88f4fc83169d1a3c86e0755d4) , ROM_GROUPWORD | ROM_SKIP(6) ) //sf2-8m.6c 99.999809%
+ ROM_CONTINUE( 0x200006, 0x80000)
+ ROMX_LOAD( "e-sf004.bin", 0x400000, 0x80000, CRC(187667cc) SHA1(fae65bf23f49a32903fda8080659ccf8d42b911f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x400004, 0x80000)
+ ROMX_LOAD( "f-sf001.bin", 0x400002, 0x80000, CRC(5b585071) SHA1(ad3371b1ba0441c67d9fcbb23b09464710e4e28a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x400006, 0x80000)
+
+ // These map over the MASK roms on this bootleg why? isn't it a waste of eprom?
+ ROMX_LOAD( "27c1024.10", 0x400000, 0x20000, CRC(84427d1b) SHA1(f988a2b53c8cc46eeb8032084f24966a539b3734) , ROM_GROUPWORD | ROM_SKIP(6) )//e-sf004.bin [1/8] IDENTICAL
+ ROMX_LOAD( "27c1024.12", 0x400002, 0x20000, CRC(55bc790c) SHA1(a1114b89f6fa4487210477676984c77ad94b5ef8) , ROM_GROUPWORD | ROM_SKIP(6) )//f-sf001.bin [1/8] IDENTICAL
+ ROMX_LOAD( "27c1024.9", 0x400004, 0x20000, CRC(f8725add) SHA1(fa3fcf6637ee4dd7667bd89766074b3c6ba4f166) , ROM_GROUPWORD | ROM_SKIP(6) )//e-sf004.bin [5/8] IDENTICAL
+ ROMX_LOAD( "27c1024.11", 0x400006, 0x20000, CRC(c2a5373e) SHA1(602b32e5ecc7007efe9ad30751040ee52b81f59a) , ROM_GROUPWORD | ROM_SKIP(6) )//f-sf001.bin [5/8] IDENTICAL
+
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "27c512.3", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x20000, "user1", 0 ) /* unknown (bootleg priority?) */
+ ROM_LOAD( "27c512.8", 0x00000, 0x10000, CRC(13ea1c44) SHA1(5b05fe4c3920e33d94fac5f59e09ff14b3e427fe) )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "27c010.2", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "27c010.1", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+ROM_END
+
+ROM_START( sf2ebbl3 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "ce91e-b.bin", 0x00000, 0x80000, CRC(963200d2) SHA1(3fa23fdee6d43f01066a94b4b01b1811168637a2) )
+ ROM_LOAD16_BYTE( "ce91e-a.bin", 0x00001, 0x80000, CRC(02e88ec7) SHA1(1898e110108301a08686945f449fd084e394fc17) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ /* There are 8 mask and 8 otp eprom on this board, data match sf2 set in the end */
+ ROMX_LOAD( "1-b-yf197.07", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "1-d-yf207.12", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "27020.1", 0x000004, 0x40000, CRC(84afb959) SHA1(ff8f3fb39203d229552649b09046a509aa399b7d) , ROM_SKIP(7) )
+ ROMX_LOAD( "27020.3", 0x000005, 0x40000, CRC(ab21635d) SHA1(c6294b06c482a43cc1736674b0c1bc790da8cc8c) , ROM_SKIP(7) )
+ ROMX_LOAD( "27020.5", 0x000006, 0x40000, CRC(2ce56f9f) SHA1(5bd23823df52aeff8e84a6eb3199a5e75f38cd42) , ROM_SKIP(7) )
+ ROMX_LOAD( "27020.7", 0x000007, 0x40000, CRC(0ad7fb2b) SHA1(51265b331cbbe9d133274bafdbf043151240a20d) , ROM_SKIP(7) )
+
+ ROMX_LOAD( "27020.2", 0x200000, 0x40000, CRC(031525cc) SHA1(65e280607c058cf9c005a6fc809ed375d379c0bf) , ROM_SKIP(7) )
+ ROMX_LOAD( "27020.4", 0x200001, 0x40000, CRC(c97046a5) SHA1(88c7becaa2713c85e22ddd3e2305770525a9132b) , ROM_SKIP(7) )
+ ROMX_LOAD( "1-h-yg010.10", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "1-e-yg003.02", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "27020.6", 0x200006, 0x40000, CRC(dbbfd400) SHA1(fc25928b6ed025fa2397d924bae93fd28a4e728f) , ROM_SKIP(7) )
+ ROMX_LOAD( "27020.8", 0x200007, 0x40000, CRC(37635e97) SHA1(b4e5dd6e93174af76aaeeb47471ded0d0bc253e2) , ROM_SKIP(7) )
+
+ ROMX_LOAD( "1-j-yf213.09", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "wm91m-11-yd025.11", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "1-i-yf224.03", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "1-k-yf036.06", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ /* These map over the MASK roms on this bootleg to get rid of the CAPCOM logo (wasteful, but correct) */
+ ROMX_LOAD( "27010.09hi", 0x400000, 0x10000, CRC(a505621e) SHA1(8ffa8cedad54948870bbd8f629d927332dc9fcf6) , ROM_SKIP(7) )
+ ROM_CONTINUE( 0x400004, 0x10000 )
+ ROMX_LOAD( "27010.11", 0x400002, 0x10000, CRC(de6271fb) SHA1(574ec5d9992941a405fd00abe52da41aba4b29a7) , ROM_SKIP(7) )
+ ROM_CONTINUE( 0x400006, 0x10000 )
+ ROMX_LOAD( "27010.09lo", 0x400001, 0x10000, CRC(23775344) SHA1(0d6b54f66cd64c3f48c88c8e17a19fdb2002afb0) , ROM_SKIP(7) )
+ ROM_CONTINUE( 0x400005, 0x10000 )
+ ROMX_LOAD( "27010.06", 0x400003, 0x10000, CRC(81c9550f) SHA1(2d75e329148caadfff35c8f2f91b352f14dbe08a) , ROM_SKIP(7) )
+ ROM_CONTINUE( 0x400007, 0x10000 )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "27512.3", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x20000, "user1", 0 ) /* unknown (bootleg priority?) */
+ ROM_LOAD( "27512.8", 0x00000, 0x10000, CRC(13ea1c44) SHA1(5b05fe4c3920e33d94fac5f59e09ff14b3e427fe) )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "27010.2", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "27010.1", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+ROM_END
+
+ROM_START( sf2stt )
+ /* the PCB is not working on real hardware */
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ /* do not move this outside comments, this is only for testing purpose
+ ROM_LOAD16_BYTE( "12.bin", 0x00000, 0x40000, CRC(a258b4d5) SHA1(3433b6493794c98bb35c1b27cc65bb5f13d52e9b) )
+ ROM_LOAD16_BYTE( "09.bin", 0x00001, 0x40000, CRC(59ccd474) SHA1(7bb28c28ee722435fdbb18eb73e52bd65b419103) )
+ */
+ ROM_LOAD16_BYTE( "prg part 1.stt", 0x00000, 0x40000, NO_DUMP )
+ ROM_LOAD16_BYTE( "prg part 2.stt", 0x00001, 0x40000, NO_DUMP )
+ /* missing first part of program roms, so it can not boot */
+ ROM_LOAD16_BYTE( "ce91e-b", 0x80000, 0x40000, CRC(0862386e) SHA1(9fcfbcbbc17529de75d5419018e7b1dd90b397c0) )
+ ROM_LOAD16_BYTE( "ce91e-a", 0x80001, 0x40000, CRC(0c83844d) SHA1(4c25ba4a50d62c62789d026e3d304ed1dfb3c248) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "stt-a", 0x000000, 0x80000, CRC(10a7036d) SHA1(5f7780154d12dc202ec4bf2f3666727820745ab0), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000002, 0x80000)
+ ROMX_LOAD( "stt-d", 0x000004, 0x80000, CRC(3580b124) SHA1(55b101e7be3d1244d0b9961ad3c6ff5d682214ce), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000006, 0x80000)
+ ROMX_LOAD( "stt-b", 0x200000, 0x80000, CRC(7a09224e) SHA1(77a95b931f0a1ebd38c9aaf51a3b59139e0aedeb), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x200002, 0x80000)
+ ROMX_LOAD( "stt-e", 0x200004, 0x80000, CRC(382a612c) SHA1(ecdcb66ed9d47d850501abc5f77eb5ad87b868d3), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x200006, 0x80000)
+ ROMX_LOAD( "stt-c", 0x400000, 0x80000, CRC(11701b8f) SHA1(4f0c897349a0f1701a144ec64a75fa23fec32ae5), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x400002, 0x80000)
+ ROMX_LOAD( "stt-f", 0x400004, 0x80000, CRC(101a0b72) SHA1(9e166a4110a583e722566852e27cb0b074ec97c6), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x400006, 0x80000)
+ /* extra gfx layer roms loaded over the former ones to remove the capcom copyright logo */
+ ROMX_LOAD( "5.stt", 0x400000, 0x10000, CRC(a505621e) SHA1(8ffa8cedad54948870bbd8f629d927332dc9fcf6), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x400004, 0x10000 )
+ ROMX_LOAD( "7.stt", 0x400002, 0x10000, CRC(de6271fb) SHA1(574ec5d9992941a405fd00abe52da41aba4b29a7), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x400006, 0x10000 )
+ ROMX_LOAD( "6.stt", 0x400001, 0x10000, CRC(23775344) SHA1(0d6b54f66cd64c3f48c88c8e17a19fdb2002afb0), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x400005, 0x10000 )
+ ROMX_LOAD( "8.stt", 0x400003, 0x10000, CRC(81c9550f) SHA1(2d75e329148caadfff35c8f2f91b352f14dbe08a), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x400007, 0x10000 )
+ /* end of extra gfx layer roms */
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "3.stt", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x20000, "user1", 0 ) /* unknown (bootleg priority?) */
+ ROM_LOAD( "4.stt", 0x00000, 0x10000, CRC(13ea1c44) SHA1(5b05fe4c3920e33d94fac5f59e09ff14b3e427fe) )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "2.stt", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "1.stt", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+ROM_END
+
+ROM_START( sf2rk ) /* unidentified bootleg, name based only on gfx chips label */
+ /* the PCB is not working on real hardware */
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ /* do not move this outside comments, this is only for testing purpose
+ ROM_LOAD16_BYTE( "12.bin", 0x000000, 0x40000, CRC(a258b4d5) SHA1(3433b6493794c98bb35c1b27cc65bb5f13d52e9b) )
+ ROM_LOAD16_BYTE( "09.bin", 0x000001, 0x40000, CRC(59ccd474) SHA1(7bb28c28ee722435fdbb18eb73e52bd65b419103) )
+ ROM_LOAD16_BYTE( "11.bin", 0x080000, 0x40000, CRC(82097d63) SHA1(881e7ffb78197f6794b5d41f5c2c87da35e8cb15) )
+ ROM_LOAD16_BYTE( "10.bin", 0x080001, 0x40000, CRC(0c83844d) SHA1(4c25ba4a50d62c62789d026e3d304ed1dfb3c248) )
+ */
+ ROM_LOAD16_BYTE( "prg part 1.rk", 0x00000, 0x80000, NO_DUMP )
+ ROM_LOAD16_BYTE( "prg part 2.rk", 0x00001, 0x80000, NO_DUMP )
+ /* missing first part of program roms, so it can not boot */
+ ROM_LOAD16_BYTE( "w-6", 0x100000, 0x20000, CRC(bb4af315) SHA1(75f0827f4f7e9f292add46467f8d4fe19b2514c9) )
+ ROM_LOAD16_BYTE( "w-5", 0x100001, 0x20000, CRC(c02a13eb) SHA1(b807cc495bff3f95d03b061fc629c95f965cb6d8) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "01 rk098", 0x000000, 0x80000, CRC(4296de4d) SHA1(2bd5a0ebe2a20c745b11da9c7dc4f13f20efdda7), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000002, 0x80000)
+ ROMX_LOAD( "03 rk097", 0x000004, 0x80000, CRC(16cf11d0) SHA1(e1adf34467e0a6902bcda63718885fe0bea831b1), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000006, 0x80000)
+ ROMX_LOAD( "02 rk037", 0x200000, 0x80000, CRC(68ca7fce) SHA1(f6a37e0ca4d9490f66c3d29308c531f2134fd7aa), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x200002, 0x80000)
+ ROMX_LOAD( "04 rk033", 0x200004, 0x80000, CRC(9f46f926) SHA1(f1ddf8ce6d895358979631fbdecbeff51376b604), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x200006, 0x80000)
+ ROMX_LOAD( "05 rk116", 0x400000, 0x80000, CRC(4c161fa9) SHA1(c3b2f642d3d3be5aab6ff1482d82c2858944d07a), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x400002, 0x80000)
+ ROMX_LOAD( "06 rk077", 0x400004, 0x80000, CRC(ec949f8c) SHA1(34ea3d6d85486a5ff25c774dbc6a4b16037a7347), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x400006, 0x80000)
+ /* extra gfx layer roms loaded over the former ones to remove the capcom copyright logo */
+ ROMX_LOAD( "w-1", 0x400000, 0x08000, CRC(124b9ffc) SHA1(299368e0f95475cf575bc3b041c6179d243b9b81), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x400004, 0x08000 )
+ ROMX_LOAD( "w-3", 0x400002, 0x08000, CRC(5992783a) SHA1(69c90621c72c7889978442009a4ddbbfb1f3444f), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x400006, 0x08000 )
+ ROMX_LOAD( "w-2", 0x400001, 0x08000, CRC(11d715f7) SHA1(cdec16ba16ca1ec6b0ab94addf4cfeeddeff5063), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x400005, 0x08000 )
+ ROMX_LOAD( "w-4", 0x400003, 0x08000, CRC(db0dd977) SHA1(c34ed40709001423325b7b7fad3f4ffeb38c3e7e), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x400007, 0x08000 )
+ /* end of extra gfx layer roms */
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "1.rk", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x20000, "user1", 0 ) /* unknown (bootleg priority?) */
+ ROM_LOAD( "2.rk", 0x00000, 0x10000, CRC(13ea1c44) SHA1(5b05fe4c3920e33d94fac5f59e09ff14b3e427fe) )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "sample part 1.rk", 0x20000, 0x20000, NO_DUMP )
+ /* do not move this outside comments, this is only for testing purpose
+ ROM_LOAD( "sf2_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ */
+ ROM_LOAD( "w-7", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+ROM_END
+
+ROM_START( sf2qp1 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "stfii-qkn-cps-17.33", 0x000000, 0x40000, CRC(3a9458ee) SHA1(cbf56115c22a45e5ce1cde313fa5a5ba496316eb) )
+ ROM_CONTINUE( 0xc0000, 0x40000 )
+ ROM_LOAD16_WORD_SWAP( "stfii-qkn-cps-17.34", 0x080000, 0x40000, CRC(4ed215d8) SHA1(b09075f883c3a4976ab47203acc04f8f993969a8) )
+ ROM_CONTINUE( 0x40000, 0x40000 )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "sf2_06.bin", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-5m.4a
+ ROMX_LOAD( "sf2_08.bin", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-7m.6a
+ ROMX_LOAD( "sf2_05.bin", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-1m.3a
+ ROMX_LOAD( "sf2_07.bin", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-3m.5a
+ ROMX_LOAD( "sf2_15.bin", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-6m.4c
+ ROMX_LOAD( "sf2_17.bin", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-8m.6c
+ ROMX_LOAD( "sf2_14.bin", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-2m.3c
+ ROMX_LOAD( "sf2_16.bin", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-4m.5c
+ ROMX_LOAD( "sf2_25.bin", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-13m.4d
+ ROMX_LOAD( "sf2_27.bin", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-15m.6d
+ ROMX_LOAD( "sf2_24.bin", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-9m.3d
+ ROMX_LOAD( "sf2_26.bin", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-11m.5d
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sf2_09.bin", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "sf2_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "sf2_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ 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_END
+
+ROM_START( sf2thndr )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "17_30.11e", 0x00000, 0x20000, CRC(d3cd6d18) SHA1(c7efe9e7a7dee29bfe40a571960145efa26ac22e) )
+ ROM_LOAD16_BYTE( "17_37.11f", 0x00001, 0x20000, CRC(e892716e) SHA1(b3836b33bc026a0bccc5ed7cdecf8d2ba2b5607a) )
+ ROM_LOAD16_BYTE( "sf2u_31b.12e", 0x40000, 0x20000, CRC(a673143d) SHA1(e565f0ec23d6deb543c72af5a83f070c07319477) )
+ ROM_LOAD16_BYTE( "sf2u_38b.12f", 0x40001, 0x20000, CRC(4c2ccef7) SHA1(77b119c70c255622b023de25d9af3b3aac52ea47) )
+ ROM_LOAD16_BYTE( "sf2u_28b.9e", 0x80000, 0x20000, CRC(4009955e) SHA1(7842dbef7650485639fbae49b9f4db7494d4f73d) )
+ ROM_LOAD16_BYTE( "sf2u_35b.9f", 0x80001, 0x20000, CRC(8c1f3994) SHA1(5e1d334399d05a837c2d80f79eada543e83afaf7) )
+ ROM_LOAD16_BYTE( "17_29.10e", 0xc0000, 0x20000, CRC(8830b54d) SHA1(fe5e958f69d52fa12c31c1a7ccf0dcfd340045cb) )
+ ROM_LOAD16_BYTE( "17_36.10f", 0xc0001, 0x20000, CRC(3f13ada3) SHA1(412572f220f64e5b0ee2cad0a9204142ae2f7c90) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "sf2_06.bin", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-5m.4a
+ ROMX_LOAD( "sf2_08.bin", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-7m.6a
+ ROMX_LOAD( "sf2_05.bin", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-1m.3a
+ ROMX_LOAD( "sf2_07.bin", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-3m.5a
+ ROMX_LOAD( "sf2_15.bin", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-6m.4c
+ ROMX_LOAD( "sf2_17.bin", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-8m.6c
+ ROMX_LOAD( "sf2_14.bin", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-2m.3c
+ ROMX_LOAD( "sf2_16.bin", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-4m.5c
+ ROMX_LOAD( "sf2_25.bin", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-13m.4d
+ ROMX_LOAD( "sf2_27.bin", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-15m.6d
+ ROMX_LOAD( "sf2_24.bin", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-9m.3d
+ ROMX_LOAD( "sf2_26.bin", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == sf2-11m.5d
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sf2_09.bin", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "sf2_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "sf2_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ 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_END
+
+/* B-Board 89624B-3 */
+ROM_START( 3wonders )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "rte_30a.11f", 0x00000, 0x20000, CRC(ef5b8b33) SHA1(2313168e5f10505ceece5fdaada0d30df3ca146c) )
+ ROM_LOAD16_BYTE( "rte_35a.11h", 0x00001, 0x20000, CRC(7d705529) SHA1(b456629b5755b701cca8a438d24957367a260ec5) )
+ ROM_LOAD16_BYTE( "rte_31a.12f", 0x40000, 0x20000, CRC(32835e5e) SHA1(9ec530561030a75a1283ff2aacc21e55613b682b) )
+ ROM_LOAD16_BYTE( "rte_36a.12h", 0x40001, 0x20000, CRC(7637975f) SHA1(56935032eebd3e1c5059f6842b97001dae0aa55f) )
+ ROM_LOAD16_BYTE( "rt_28a.9f", 0x80000, 0x20000, CRC(054137c8) SHA1(e4c406e0a32198323a5931093fbaa6836510b8ad) )
+ ROM_LOAD16_BYTE( "rt_33a.9h", 0x80001, 0x20000, CRC(7264cb1b) SHA1(b367acb9f6579569321ecaa98a14e29dd775b9db) )
+ ROM_LOAD16_BYTE( "rte_29a.10f", 0xc0000, 0x20000, CRC(cddaa919) SHA1(0c98e95ad5033d2c5ade7651243e7ccdb4e35463) )
+ ROM_LOAD16_BYTE( "rte_34a.10h", 0xc0001, 0x20000, CRC(ed52e7e5) SHA1(352433ae484967d26376141e3a8a0f968b98fde6) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "rt-5m.7a", 0x000000, 0x80000, CRC(86aef804) SHA1(723927ef3bf992d12395c52db051ece7bf57d5e5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rt-7m.9a", 0x000002, 0x80000, CRC(4f057110) SHA1(b7d35c883a74cf4bfb242d9f15a0e40ed1ec111f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rt-1m.3a", 0x000004, 0x80000, CRC(902489d0) SHA1(748ba416a8b9343059a3e7d8b93f02162feb1d0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rt-3m.5a", 0x000006, 0x80000, CRC(e35ce720) SHA1(6c1a87a1f819bdc20408b5a7823cf35a79d34110) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rt-6m.8a", 0x200000, 0x80000, CRC(13cb0e7c) SHA1(e429d594d9a7ff4cc6306e2796a9d6ad0fa25569) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rt-8m.10a", 0x200002, 0x80000, CRC(1f055014) SHA1(d64f5be9bb2ef761ca9b2e797dbc3554cf996a79) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rt-2m.4a", 0x200004, 0x80000, CRC(e9a034f4) SHA1(deb4cb5886705380b57d4fe9b9bf3c032e1d6227) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rt-4m.6a", 0x200006, 0x80000, CRC(df0eea8b) SHA1(5afa05654cccb0504bd44569d42fd68f08fd172f) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "rt_9.12b", 0x00000, 0x08000, CRC(abfca165) SHA1(428069d3bdc45775854cd0e8abe447f134fe5492) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "rt_18.11c", 0x00000, 0x20000, CRC(26b211ab) SHA1(0ea03fdd9edff41eacfc52aa9e0421c10968356b) )
+ ROM_LOAD( "rt_19.12c", 0x20000, 0x20000, CRC(dbe64ad0) SHA1(09f2ad522fe75d7bcca094b8c6696c3733b539d5) )
+
+ 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( "rt24b.1a", 0x0000, 0x0117, CRC(54b85159) SHA1(c6f4fb5d747a215f4f50e4f2258e35d3f9bdbb2e) )
+ ROM_LOAD( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) /* seen the same pcb with LWIO.11E */
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ROM_END
+
+/* B-Board 89624B-3 */
+ROM_START( 3wondersr1 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "rte_30.11f", 0x00000, 0x20000, CRC(0d541519) SHA1(ce0f9ebaea038c98f8866624d3061c65c84cf20d) )
+ ROM_LOAD16_BYTE( "rte_35.11h", 0x00001, 0x20000, CRC(73dd0e20) SHA1(b4f4086574176befa70863a85a3c0a8fd6e4bd90) )
+ ROM_LOAD16_BYTE( "rte_31.12f", 0x40000, 0x20000, CRC(33e0337d) SHA1(53e5795baf307a789b4337f081a932359e569a98) )
+ ROM_LOAD16_BYTE( "rte_36.12h", 0x40001, 0x20000, CRC(a8865243) SHA1(0a4d7e8e07d88104aa01457a10a8a9abd3ed4ce1) )
+ ROM_LOAD16_BYTE( "rte_28.9f", 0x80000, 0x20000, CRC(054137c8) SHA1(e4c406e0a32198323a5931093fbaa6836510b8ad) ) // == rt_28a.9f
+ ROM_LOAD16_BYTE( "rte_33.9h", 0x80001, 0x20000, CRC(7264cb1b) SHA1(b367acb9f6579569321ecaa98a14e29dd775b9db) ) // == rt_33a.9h
+ ROM_LOAD16_BYTE( "rte_29.10f", 0xc0000, 0x20000, CRC(9a8df1e4) SHA1(5b61d2d729145d524e23036bb27ba3ba75c208fe) )
+ ROM_LOAD16_BYTE( "rte_34.10h", 0xc0001, 0x20000, CRC(6348a79d) SHA1(2e4b58f9c6c1ad6a89c90d8ebb46cee2613f1397) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "rt-5m.7a", 0x000000, 0x80000, CRC(86aef804) SHA1(723927ef3bf992d12395c52db051ece7bf57d5e5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rt-7m.9a", 0x000002, 0x80000, CRC(4f057110) SHA1(b7d35c883a74cf4bfb242d9f15a0e40ed1ec111f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rt-1m.3a", 0x000004, 0x80000, CRC(902489d0) SHA1(748ba416a8b9343059a3e7d8b93f02162feb1d0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rt-3m.5a", 0x000006, 0x80000, CRC(e35ce720) SHA1(6c1a87a1f819bdc20408b5a7823cf35a79d34110) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rt-6m.8a", 0x200000, 0x80000, CRC(13cb0e7c) SHA1(e429d594d9a7ff4cc6306e2796a9d6ad0fa25569) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rt-8m.10a", 0x200002, 0x80000, CRC(1f055014) SHA1(d64f5be9bb2ef761ca9b2e797dbc3554cf996a79) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rt-2m.4a", 0x200004, 0x80000, CRC(e9a034f4) SHA1(deb4cb5886705380b57d4fe9b9bf3c032e1d6227) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rt-4m.6a", 0x200006, 0x80000, CRC(df0eea8b) SHA1(5afa05654cccb0504bd44569d42fd68f08fd172f) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "rt_9.12b", 0x00000, 0x08000, CRC(7d5a77a7) SHA1(4f2a6534d7a9e518061102c1dd7d7aca39600c33) ) /* 1 byte different from 3wonders, pcb verified */
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "rt_18.11c", 0x00000, 0x20000, CRC(f6dc0d3d) SHA1(9959fc3339613042c95b90aad2bc1c3dafdb605e) ) /* 6 bytes different from 3wonders, pcb verified */
+ ROM_LOAD( "rt_19.12c", 0x20000, 0x20000, CRC(dbe64ad0) SHA1(09f2ad522fe75d7bcca094b8c6696c3733b539d5) )
+
+ 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( "rt24b.1a", 0x0000, 0x0117, CRC(54b85159) SHA1(c6f4fb5d747a215f4f50e4f2258e35d3f9bdbb2e) )
+ ROM_LOAD( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ROM_END
+
+/* B-Board 89624B-3 */
+ROM_START( 3wondersu )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "rtu_30a.11f", 0x00000, 0x20000, CRC(0b156fd8) SHA1(1ec811cd7cbd12066f876db7255394e754ceb25e) )
+ ROM_LOAD16_BYTE( "rtu_35a.11h", 0x00001, 0x20000, CRC(57350bf4) SHA1(33e8685cce82eee7bcb7c2787318a130764e97e2) )
+ ROM_LOAD16_BYTE( "rtu_31a.12f", 0x40000, 0x20000, CRC(0e723fcc) SHA1(91eeab6376a5aa852152af9920aef60bc7c689dd) )
+ ROM_LOAD16_BYTE( "rtu_36a.12h", 0x40001, 0x20000, CRC(523a45dc) SHA1(6d6743803016fa5ba713e0d6f61affce8a3255ec) )
+ ROM_LOAD16_BYTE( "rt_28a.9f", 0x80000, 0x20000, CRC(054137c8) SHA1(e4c406e0a32198323a5931093fbaa6836510b8ad) )
+ ROM_LOAD16_BYTE( "rt_33a.9h", 0x80001, 0x20000, CRC(7264cb1b) SHA1(b367acb9f6579569321ecaa98a14e29dd775b9db) )
+ ROM_LOAD16_BYTE( "rtu_29a.10f", 0xc0000, 0x20000, CRC(37ba3e20) SHA1(a128b1a17639b06a4fd8acffe0357f1dbd1d4fe9) )
+ ROM_LOAD16_BYTE( "rtu_34a.10h", 0xc0001, 0x20000, CRC(f99f46c0) SHA1(cda24a6baa3f861e7078fb2fa91328cc1cddc866) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "rt-5m.7a", 0x000000, 0x80000, CRC(86aef804) SHA1(723927ef3bf992d12395c52db051ece7bf57d5e5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rt-7m.9a", 0x000002, 0x80000, CRC(4f057110) SHA1(b7d35c883a74cf4bfb242d9f15a0e40ed1ec111f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rt-1m.3a", 0x000004, 0x80000, CRC(902489d0) SHA1(748ba416a8b9343059a3e7d8b93f02162feb1d0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rt-3m.5a", 0x000006, 0x80000, CRC(e35ce720) SHA1(6c1a87a1f819bdc20408b5a7823cf35a79d34110) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rt-6m.8a", 0x200000, 0x80000, CRC(13cb0e7c) SHA1(e429d594d9a7ff4cc6306e2796a9d6ad0fa25569) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rt-8m.10a", 0x200002, 0x80000, CRC(1f055014) SHA1(d64f5be9bb2ef761ca9b2e797dbc3554cf996a79) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rt-2m.4a", 0x200004, 0x80000, CRC(e9a034f4) SHA1(deb4cb5886705380b57d4fe9b9bf3c032e1d6227) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rt-4m.6a", 0x200006, 0x80000, CRC(df0eea8b) SHA1(5afa05654cccb0504bd44569d42fd68f08fd172f) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "rt_9.12b", 0x00000, 0x08000, CRC(abfca165) SHA1(428069d3bdc45775854cd0e8abe447f134fe5492) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "rt_18.11c", 0x00000, 0x20000, CRC(26b211ab) SHA1(0ea03fdd9edff41eacfc52aa9e0421c10968356b) )
+ ROM_LOAD( "rt_19.12c", 0x20000, 0x20000, CRC(dbe64ad0) SHA1(09f2ad522fe75d7bcca094b8c6696c3733b539d5) )
+
+ 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( "rt24b.1a", 0x0000, 0x0117, CRC(54b85159) SHA1(c6f4fb5d747a215f4f50e4f2258e35d3f9bdbb2e) )
+ ROM_LOAD( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) /* seen the same pcb with LWIO.11E */
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ROM_END
+
+/* B-Board 89625B-1 */
+ROM_START( wonder3 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "rtj_36.12f", 0x00000, 0x20000, CRC(e3741247) SHA1(4deb0f667697631693fbefddaeb8cf98fd0b90ce) )
+ ROM_LOAD16_BYTE( "rtj_42.12h", 0x00001, 0x20000, CRC(b4baa117) SHA1(44486b3d50f9b0a8c32c2c2dc5f1a046aface7b6) )
+ ROM_LOAD16_BYTE( "rtj_37.13f", 0x40000, 0x20000, CRC(a1f677b0) SHA1(e1511ea0fa4a689d1355119ac37c075192880dde) )
+ ROM_LOAD16_BYTE( "rtj_43.13h", 0x40001, 0x20000, CRC(85337a47) SHA1(0a247aa56c5cc17b1e888df7b502f65e88715469) )
+ ROM_LOAD16_BYTE( "rt_34.10f", 0x80000, 0x20000, CRC(054137c8) SHA1(e4c406e0a32198323a5931093fbaa6836510b8ad) ) // == rt_28a.9f
+ ROM_LOAD16_BYTE( "rt_40.10h", 0x80001, 0x20000, CRC(7264cb1b) SHA1(b367acb9f6579569321ecaa98a14e29dd775b9db) ) // == rt_33a.9h
+ ROM_LOAD16_BYTE( "rtj_35.11f", 0xc0000, 0x20000, CRC(e72f9ea3) SHA1(c63df200416bd61af73e8589204f7daef743041e) )
+ ROM_LOAD16_BYTE( "rtj_41.11h", 0xc0001, 0x20000, CRC(a11ee998) SHA1(b892398e2ff4e40e51b858cfdbce866a75c670e6) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "rt_09.4b", 0x000000, 0x20000, CRC(2c40e480) SHA1(823a36aa6dba7a028d4da5faef752366aa18fe57) , ROM_SKIP(7) ) // == rt-5m.7a
+ ROMX_LOAD( "rt_01.4a", 0x000001, 0x20000, CRC(3e11f8cd) SHA1(88d7edd7102b1abec2b6f87029d39414f3ebc094) , ROM_SKIP(7) ) // == rt-5m.7a
+ ROMX_LOAD( "rt_13.9b", 0x000002, 0x20000, CRC(51009117) SHA1(55549a2bd1abb3aea5dc17f17a2bd4a46c6cf12a) , ROM_SKIP(7) ) // == rt-7m.9a
+ ROMX_LOAD( "rt_05.9a", 0x000003, 0x20000, CRC(283fd470) SHA1(2d7ff9c5a747565f2186b9252b703ebac3117beb) , ROM_SKIP(7) ) // == rt-7m.9a
+ ROMX_LOAD( "rt_24.5e", 0x000004, 0x20000, CRC(ee4484ce) SHA1(5bb27c119a4e69cb50425ca73556a2e4e4482728) , ROM_SKIP(7) ) // == rt-1m.3a
+ ROMX_LOAD( "rt_17.5c", 0x000005, 0x20000, CRC(e5dcddeb) SHA1(9a1c740cdd66ee2f58737eda613e79ff6357142a) , ROM_SKIP(7) ) // == rt-1m.3a
+ ROMX_LOAD( "rt_38.8h", 0x000006, 0x20000, CRC(b2940c2d) SHA1(62ea57fb0203dd8f0e123e55eef7637702f8466d) , ROM_SKIP(7) ) // == rt-3m.5a
+ ROMX_LOAD( "rt_32.8f", 0x000007, 0x20000, CRC(08e2b758) SHA1(f56a4f16454fe528c358fd212449a1ecb0f826e0) , ROM_SKIP(7) ) // == rt-3m.5a
+ ROMX_LOAD( "rt_10.5b", 0x100000, 0x20000, CRC(e3f3ff94) SHA1(d5e46da2d25ca5347037b9859227c949209b30a6) , ROM_SKIP(7) ) // == rt-5m.7a
+ ROMX_LOAD( "rt_02.5a", 0x100001, 0x20000, CRC(fcffd73c) SHA1(64830ffc053bd97f22b406f53b1e2e4a78db6a97) , ROM_SKIP(7) ) // == rt-5m.7a
+ ROMX_LOAD( "rt_14.10b", 0x100002, 0x20000, CRC(5c546d9a) SHA1(1e0d0451e83dddb3371bffae6af7e17908816aec) , ROM_SKIP(7) ) // == rt-7m.9a
+ ROMX_LOAD( "rt_06.10a", 0x100003, 0x20000, CRC(d9650bc4) SHA1(d28d85595bee9f6d4a697486a9db3a71ce60de50) , ROM_SKIP(7) ) // == rt-7m.9a
+ ROMX_LOAD( "rt_25.7e", 0x100004, 0x20000, CRC(11b28831) SHA1(bb8f97871ca15184dbed3a90f8968a40b83a4480) , ROM_SKIP(7) ) // == rt-1m.3a
+ ROMX_LOAD( "rt_18.7c", 0x100005, 0x20000, CRC(ce1afb7c) SHA1(50a330bb2d748f1a738fa7895aba81d9f0c14579) , ROM_SKIP(7) ) // == rt-1m.3a
+ ROMX_LOAD( "rt_39.9h", 0x100006, 0x20000, CRC(ea7ac9ee) SHA1(bc21d8e59eb190608a87072c22be9cb1cf1227cc) , ROM_SKIP(7) ) // == rt-3m.5a
+ ROMX_LOAD( "rt_33.9f", 0x100007, 0x20000, CRC(d6a99384) SHA1(552b012eb911b8739ee859af13e176a8396cecf2) , ROM_SKIP(7) ) // == rt-3m.5a
+ ROMX_LOAD( "rt_11.7b", 0x200000, 0x20000, CRC(04f3c298) SHA1(1f3f8713ed8a2ad2bf4afce4c733eb9cb850ca9f) , ROM_SKIP(7) ) // == rt-6m.8a
+ ROMX_LOAD( "rt_03.7a", 0x200001, 0x20000, CRC(98087e08) SHA1(6a13786a62e11d77c4da8469422e402df1299162) , ROM_SKIP(7) ) // == rt-6m.8a
+ ROMX_LOAD( "rt_15.11b", 0x200002, 0x20000, CRC(b6aba565) SHA1(a166c853a5b4bc2602ce14974c11f570ba29df6a) , ROM_SKIP(7) ) // == rt-8m.10a
+ ROMX_LOAD( "rt_07.11a", 0x200003, 0x20000, CRC(c62defa1) SHA1(2533f39251c99d5a184d72a5b96b5603466c0d11) , ROM_SKIP(7) ) // == rt-8m.10a
+ ROMX_LOAD( "rt_26.8e", 0x200004, 0x20000, CRC(532f542e) SHA1(c894b385aa10a5e80b548c01817958739e2afa89) , ROM_SKIP(7) ) // == rt-2m.4a
+ ROMX_LOAD( "rt_19.8c", 0x200005, 0x20000, CRC(1f0f72bd) SHA1(ad1afcde397a3273afc7c7a0b084a9b68e9e736e) , ROM_SKIP(7) ) // == rt-2m.4a
+ ROMX_LOAD( "rt_28.10e", 0x200006, 0x20000, CRC(6064e499) SHA1(3bc30b9d8dde5f5e8dda31afbdadb5b2e4d50932) , ROM_SKIP(7) ) // == rt-4m.6a
+ ROMX_LOAD( "rt_21.10c", 0x200007, 0x20000, CRC(20012ddc) SHA1(4389f2554c429f0a421425a6645dd8e719f4995f) , ROM_SKIP(7) ) // == rt-4m.6a
+ ROMX_LOAD( "rt_12.8b", 0x300000, 0x20000, CRC(e54664cc) SHA1(e3b5ff0e9af20580cb4228f644f23a05aad20478) , ROM_SKIP(7) ) // == rt-6m.8a
+ ROMX_LOAD( "rt_04.8a", 0x300001, 0x20000, CRC(4d7b9a1a) SHA1(1a9dd66bb97e2a02f3264d5766b674b588ad7dfc) , ROM_SKIP(7) ) // == rt-6m.8a
+ ROMX_LOAD( "rt_16.12b", 0x300002, 0x20000, CRC(37c96cfc) SHA1(270f824757c0f536b02fef147d8e0af07e8d7147) , ROM_SKIP(7) ) // == rt-8m.10a
+ ROMX_LOAD( "rt_08.12a", 0x300003, 0x20000, CRC(75f4975b) SHA1(1cd78828db97931ab0bfe0339e7051c58b3eff60) , ROM_SKIP(7) ) // == rt-8m.10a
+ ROMX_LOAD( "rt_27.9e", 0x300004, 0x20000, CRC(ec6edc0f) SHA1(6dc13d692ca7bc989cd9b40bab8a2943425b7d61) , ROM_SKIP(7) ) // == rt-2m.4a
+ ROMX_LOAD( "rt_20.9c", 0x300005, 0x20000, CRC(4fe52659) SHA1(1bf22ae192b57cd62e92f290313cc9d3234b2700) , ROM_SKIP(7) ) // == rt-2m.4a
+ ROMX_LOAD( "rt_29.11e", 0x300006, 0x20000, CRC(8fa77f9f) SHA1(2f6b37d8e5eed38a8847c9ad736a7cdbe9958a70) , ROM_SKIP(7) ) // == rt-4m.6a
+ ROMX_LOAD( "rt_22.11c", 0x300007, 0x20000, CRC(228a0d4a) SHA1(bcaf12d01abe1d3cd5731bd5341cb22c4ca6139e) , ROM_SKIP(7) ) // == rt-4m.6a
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "rt_23.13b", 0x00000, 0x08000, CRC(abfca165) SHA1(428069d3bdc45775854cd0e8abe447f134fe5492) ) // == rt_9.12b
+// ROM_LOAD( "rt_23.13b", 0x00000, 0x08000, CRC(7d5a77a7) SHA1(4f2a6534d7a9e518061102c1dd7d7aca39600c33) ) /* dumped from another board, 1 byte different, pcb verified */
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "rt_30.12c", 0x00000, 0x20000, CRC(26b211ab) SHA1(0ea03fdd9edff41eacfc52aa9e0421c10968356b) ) // == rt_18.11c
+ ROM_LOAD( "rt_31.13c", 0x20000, 0x20000, CRC(dbe64ad0) SHA1(09f2ad522fe75d7bcca094b8c6696c3733b539d5) ) // == rt_19.12c
+
+ 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( "rt22b.1a", 0x0000, 0x0117, CRC(89560d6a) SHA1(0f88920536eb131948339becb14557d77e02b9f8) )
+ ROM_LOAD( "iob1.12e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ROM_END
+
+/* Three Wonders (bootleg) */
+ROM_START( 3wondersb )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "274001.4", 0x00000, 0x80000, CRC(47887cf3) SHA1(cdb2df67c99fd698845484869608bfaafa782bd6) )
+ ROM_LOAD16_BYTE( "274001.3", 0x00001, 0x80000, CRC(e79eacb3) SHA1(cb2712b4e566d7d2ab5639f2e62f6e15244a7f09) )
+
+ // The remainder of the roms in this set have the same content as those from '3wondersh'.
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "274001.12", 0x000000, 0x80000, CRC(47cf8dfb) SHA1(05fed8e61d8f8c0382d820e7bdef36db85ad416b) , ROM_SKIP(7) )
+ ROMX_LOAD( "274001.8", 0x000001, 0x80000, CRC(3bc2ef5e) SHA1(6864838e8f116bc56e7d205674240763a55d7907) , ROM_SKIP(7) )
+ ROMX_LOAD( "274001.10", 0x000002, 0x80000, CRC(a0d27605) SHA1(7f2a7d3cc8802e778a98a29a4992a223932bff2c) , ROM_SKIP(7) )
+ ROMX_LOAD( "274001.6", 0x000003, 0x80000, CRC(312d790c) SHA1(8739ba0784447f4050da1e6de8e31df3537b307d) , ROM_SKIP(7) )
+ ROMX_LOAD( "274001.11", 0x000004, 0x80000, CRC(8112bbb4) SHA1(5a93cee8627afeb255eec1d26ec043cd2c4d2218) , ROM_SKIP(7) )
+ ROMX_LOAD( "274001.7", 0x000005, 0x80000, CRC(58307167) SHA1(e253b64e144ccf3c4a0268e4be68468f11b2b071) , ROM_SKIP(7) )
+ ROMX_LOAD( "274001.9", 0x000006, 0x80000, CRC(cb73759d) SHA1(e6fa263bcd7876f83f499fb95fbbc45ebce950fe) , ROM_SKIP(7) )
+ ROMX_LOAD( "274001.5", 0x000007, 0x80000, CRC(3f765ae8) SHA1(a37cccbf2212eaa38a77b2f712688ce45b17e3b5) , ROM_SKIP(7) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "27512.2", 0x00000, 0x08000, CRC(abfca165) SHA1(428069d3bdc45775854cd0e8abe447f134fe5492) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "27020.1", 0x00000, 0x40000, CRC(3c4348cf) SHA1(cfa9fd2f9692ddfef856106de191d3bdb5289297) )
+ROM_END
+
+/* Three Wonders (hack) */
+ROM_START( 3wondersh )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "22.bin", 0x00000, 0x20000, CRC(e6071884) SHA1(5cf1a859739cf98846cb049b64fd083733acb29c) )
+ ROM_LOAD16_BYTE( "26.bin", 0x00001, 0x20000, CRC(a28447b7) SHA1(e3f11911f1d3d115c03edf1bb6c8a68fccd9e9b3) )
+ ROM_LOAD16_BYTE( "23.bin", 0x40000, 0x20000, CRC(fd3d6509) SHA1(0824ec397d12c2b832c9e694c23b59c2e489ed3b) )
+ ROM_LOAD16_BYTE( "27.bin", 0x40001, 0x20000, CRC(999cba3d) SHA1(99dfb902c0c77f798a868eb13340eb54fb4a84d3) )
+ ROM_LOAD16_BYTE( "rt_28a.9f", 0x80000, 0x20000, CRC(054137c8) SHA1(e4c406e0a32198323a5931093fbaa6836510b8ad) )
+ ROM_LOAD16_BYTE( "rt_33a.9h", 0x80001, 0x20000, CRC(7264cb1b) SHA1(b367acb9f6579569321ecaa98a14e29dd775b9db) )
+ ROM_LOAD16_BYTE( "rte_29a.10f", 0xc0000, 0x20000, CRC(cddaa919) SHA1(0c98e95ad5033d2c5ade7651243e7ccdb4e35463) )
+ ROM_LOAD16_BYTE( "rte_34a.10h", 0xc0001, 0x20000, CRC(ed52e7e5) SHA1(352433ae484967d26376141e3a8a0f968b98fde6) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "16.bin", 0x000000, 0x40000, CRC(c997bca2) SHA1(6b6cd9c2fc56690c42a3368cd5e6c98d6bff5b5b) , ROM_SKIP(7) )
+ ROMX_LOAD( "6.bin", 0x000001, 0x40000, CRC(3eea321a) SHA1(4368aaf8a532c29f4b950adb2daedd3069d84cf1) , ROM_SKIP(7) )
+ ROMX_LOAD( "18.bin", 0x000002, 0x40000, CRC(98acdfd4) SHA1(910dfd6742e166530388c700c0797e692e501f97) , ROM_SKIP(7) )
+ ROMX_LOAD( "8.bin", 0x000003, 0x40000, CRC(dc9ca6f9) SHA1(77549e9a128d1b7ca0c4547cdc56f43450d426e0) , ROM_SKIP(7) )
+ ROMX_LOAD( "12.bin", 0x000004, 0x40000, CRC(0d8a6007) SHA1(48d61cbd91df01ba4b2f0e80e60375a50ddb065e) , ROM_SKIP(7) )
+ ROMX_LOAD( "2.bin", 0x000005, 0x40000, CRC(d75563b9) SHA1(7b7b105b84dc5d7b17838961fdd8be5bac90cbc6) , ROM_SKIP(7) )
+ ROMX_LOAD( "14.bin", 0x000006, 0x40000, CRC(84369a28) SHA1(3877186371fe289522133fd99be034b141a974ca) , ROM_SKIP(7) )
+ ROMX_LOAD( "4.bin", 0x000007, 0x40000, CRC(d4831578) SHA1(9ff5860f22976e9e4c023946f35e24fde84fe8ea) , ROM_SKIP(7) )
+ ROMX_LOAD( "17.bin", 0x200000, 0x40000, CRC(040edff5) SHA1(9747d67b980cc357c6fa732300a84ae55150bc51) , ROM_SKIP(7) )
+ ROMX_LOAD( "7.bin", 0x200001, 0x40000, CRC(c7c0468c) SHA1(e7a14cf579b023e8954b7e06aa2337db4f53bedc) , ROM_SKIP(7) )
+ ROMX_LOAD( "19.bin", 0x200002, 0x40000, CRC(9fef114f) SHA1(394afb083ce7c46d9a39097d0040f9e18aaab508) , ROM_SKIP(7) )
+ ROMX_LOAD( "9.bin", 0x200003, 0x40000, CRC(48cbfba5) SHA1(74047433e50795e29d8299526ae2c424610f0a5e) , ROM_SKIP(7) )
+ ROMX_LOAD( "13.bin", 0x200004, 0x40000, CRC(8fc3d7d1) SHA1(e2784e0fccfe062ea8dc440e4a884fc665f4a846) , ROM_SKIP(7) )
+ ROMX_LOAD( "3.bin", 0x200005, 0x40000, CRC(c65e9a86) SHA1(359ab1e2dd0fcf38ed9815a6a50294cbeca8223c) , ROM_SKIP(7) )
+ ROMX_LOAD( "15.bin", 0x200006, 0x40000, CRC(f239341a) SHA1(b1858f5f7a5d210c5327b84a797ed7e898250596) , ROM_SKIP(7) )
+ ROMX_LOAD( "5.bin", 0x200007, 0x40000, CRC(947ac944) SHA1(d962f49ba532fc60209bb3957ff8a456855ef67f) , ROM_SKIP(7) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "rt_9.12b", 0x00000, 0x08000, CRC(abfca165) SHA1(428069d3bdc45775854cd0e8abe447f134fe5492) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "rt_18.11c", 0x00000, 0x20000, CRC(26b211ab) SHA1(0ea03fdd9edff41eacfc52aa9e0421c10968356b) )
+ ROM_LOAD( "rt_19.12c", 0x20000, 0x20000, CRC(dbe64ad0) SHA1(09f2ad522fe75d7bcca094b8c6696c3733b539d5) )
+
+ 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( "rt24b.1a", 0x0000, 0x0117, CRC(54b85159) SHA1(c6f4fb5d747a215f4f50e4f2258e35d3f9bdbb2e) )
+ ROM_LOAD( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ROM_END
+
+/* B-Board 90629B-3 */
+ROM_START( kod )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "kde_30a.11e", 0x00000, 0x20000, CRC(fcb5efe2) SHA1(6122e4852633876ff2ccd4b72296fce96446b3ee) )
+ ROM_LOAD16_BYTE( "kde_37a.11f", 0x00001, 0x20000, CRC(f22e5266) SHA1(2fbadce701218f4a56bfd6dfd758abacb34a2181) )
+ ROM_LOAD16_BYTE( "kde_31a.12e", 0x40000, 0x20000, CRC(c710d722) SHA1(a2e9b84d3e7d835a910ab9f584bdc64c2559995a) )
+ ROM_LOAD16_BYTE( "kde_38a.12f", 0x40001, 0x20000, CRC(57d6ed3a) SHA1(a47da5068723c8e16ed458fbfa3e3db57b32d87d) )
+ ROM_LOAD16_BYTE( "kd_28.9e", 0x80000, 0x20000, CRC(9367bcd9) SHA1(8243b4b9bb9756f3fa726717e19a166cb2f5b50a) )
+ ROM_LOAD16_BYTE( "kd_35.9f", 0x80001, 0x20000, CRC(4ca6a48a) SHA1(9d440ecd8d2d0e293fecf64ca3915252b94e7aef) )
+ ROM_LOAD16_BYTE( "kd_29.10e", 0xc0000, 0x20000, CRC(0360fa72) SHA1(274769c8717a874397cf37369e3ef80a682d9ef2) )
+ ROM_LOAD16_BYTE( "kd_36a.10f", 0xc0001, 0x20000, CRC(95a3cef8) SHA1(9b75c1ed0eafacc230197ffd9b81e0c8f4f2c464) ) /* seen the same pcb with KDE_36A.10F */
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "kd-5m.4a", 0x000000, 0x80000, CRC(e45b8701) SHA1(604e39e455e81695ee4f899f102d0bcd789cedd0) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket
+ ROMX_LOAD( "kd-7m.6a", 0x000002, 0x80000, CRC(a7750322) SHA1(3c583496a53cd64edf377db35f7f40f02b59b7e7) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket
+ ROMX_LOAD( "kd-1m.3a", 0x000004, 0x80000, CRC(5f74bf78) SHA1(b7c43eea9bf77a0fb571dcd53f8be719e6655fd9) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket
+ ROMX_LOAD( "kd-3m.5a", 0x000006, 0x80000, CRC(5e5303bf) SHA1(d9f90b898ffdf4398b2bbeb48247f06f728e7c00) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket
+ ROMX_LOAD( "kd-6m.4c", 0x200000, 0x80000, CRC(113358f3) SHA1(9d98eafa74a046f65bf3847fe1d88ea1b0c82b0c) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "11" socket
+ ROMX_LOAD( "kd-8m.6c", 0x200002, 0x80000, CRC(38853c44) SHA1(a6e552fb0138a76a7878b90d202904e2b44ae7ec) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "13" socket
+ ROMX_LOAD( "kd-2m.3c", 0x200004, 0x80000, CRC(9ef36604) SHA1(b42ca0a910b65e1e7bb6e7d734e853ce67e821bf) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "10" socket
+ ROMX_LOAD( "kd-4m.5c", 0x200006, 0x80000, CRC(402b9b4f) SHA1(4c11976976eadf1ad293b31b0a4d047d05032b06) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "12" socket
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "kd_9.12a", 0x00000, 0x08000, CRC(bac6ec26) SHA1(6cbb6d55660150ae3f5270e023328275ee1bbf50) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "kd_18.11c", 0x00000, 0x20000, CRC(4c63181d) SHA1(270f27534a95cb0be3ff3f9ca71c502320d8090b) )
+ ROM_LOAD( "kd_19.12c", 0x20000, 0x20000, CRC(92941b80) SHA1(5fa7c2793e6febee54a83042d118ddd4f2b7d127) )
+
+ 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( "kd29b.1a", 0x0000, 0x0117, NO_DUMP )
+ ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 90629B-3 */
+ROM_START( kodr1 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "kde_30.11e", 0x00000, 0x20000, CRC(c7414fd4) SHA1(37d27fbe7c617a26b53bfdfcd532cf573d42f33b) )
+ ROM_LOAD16_BYTE( "kde_37.11f", 0x00001, 0x20000, CRC(a5bf40d2) SHA1(cd34dbeabd0974709411579e669f01d0d799c2a1) )
+ ROM_LOAD16_BYTE( "kde_31.12e", 0x40000, 0x20000, CRC(1fffc7bd) SHA1(822c9ad996ca51a99a2bb1fe08fa19e18413030d) )
+ ROM_LOAD16_BYTE( "kde_38.12f", 0x40001, 0x20000, CRC(89e57a82) SHA1(aad35f86a8b1b7e3a0b5f3e6efd0e844b3d3d82f) )
+ ROM_LOAD16_BYTE( "kde_28.9e", 0x80000, 0x20000, CRC(9367bcd9) SHA1(8243b4b9bb9756f3fa726717e19a166cb2f5b50a) ) // == kd_28.9e
+ ROM_LOAD16_BYTE( "kde_35.9f", 0x80001, 0x20000, CRC(4ca6a48a) SHA1(9d440ecd8d2d0e293fecf64ca3915252b94e7aef) ) // == kd_35.9f
+ ROM_LOAD16_BYTE( "kde_29.10e", 0xc0000, 0x20000, CRC(6a0ba878) SHA1(82e4037d73889a76b0cdc7a4f8e77e585d38e56e) )
+ ROM_LOAD16_BYTE( "kde_36.10f", 0xc0001, 0x20000, CRC(b509b39d) SHA1(6023855e54b170e55abf0f607600031e19e5e722) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "kd-5m.4a", 0x000000, 0x80000, CRC(e45b8701) SHA1(604e39e455e81695ee4f899f102d0bcd789cedd0) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket
+ ROMX_LOAD( "kd-7m.6a", 0x000002, 0x80000, CRC(a7750322) SHA1(3c583496a53cd64edf377db35f7f40f02b59b7e7) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket
+ ROMX_LOAD( "kd-1m.3a", 0x000004, 0x80000, CRC(5f74bf78) SHA1(b7c43eea9bf77a0fb571dcd53f8be719e6655fd9) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket
+ ROMX_LOAD( "kd-3m.5a", 0x000006, 0x80000, CRC(5e5303bf) SHA1(d9f90b898ffdf4398b2bbeb48247f06f728e7c00) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket
+ ROMX_LOAD( "kd-6m.4c", 0x200000, 0x80000, CRC(113358f3) SHA1(9d98eafa74a046f65bf3847fe1d88ea1b0c82b0c) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "11" socket
+ ROMX_LOAD( "kd-8m.6c", 0x200002, 0x80000, CRC(38853c44) SHA1(a6e552fb0138a76a7878b90d202904e2b44ae7ec) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "13" socket
+ ROMX_LOAD( "kd-2m.3c", 0x200004, 0x80000, CRC(9ef36604) SHA1(b42ca0a910b65e1e7bb6e7d734e853ce67e821bf) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "10" socket
+ ROMX_LOAD( "kd-4m.5c", 0x200006, 0x80000, CRC(402b9b4f) SHA1(4c11976976eadf1ad293b31b0a4d047d05032b06) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "12" socket
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "kd_9.12a", 0x00000, 0x08000, CRC(f5514510) SHA1(07e9c836adf9ef2f7e7729e99015f71e3b5f16e0) ) /* different CRC from kod, pcb verified */
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "kd_18.11c", 0x00000, 0x20000, CRC(69ecb2c8) SHA1(fadf266b6b20bd6329a3e638918c5a3106413476) ) /* different CRC from kod, pcb verified */
+ ROM_LOAD( "kd_19.12c", 0x20000, 0x20000, CRC(02d851c1) SHA1(c959a6fc3e7d893557f319debae91f28471f4be2) ) /* different CRC from kod, pcb verified */
+
+ 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( "kd29b.1a", 0x0000, 0x0117, NO_DUMP )
+ ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 90629B-3 */
+ROM_START( kodu )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "kdu_30b.11e", 0x00000, 0x20000, CRC(825817f9) SHA1(250f61effcbe59f8b70baaf26eb8aef419fed66b) )
+ ROM_LOAD16_BYTE( "kdu_37b.11f", 0x00001, 0x20000, CRC(d2422dfb) SHA1(6e369a62012f3c480755b700d4d4f4c112c79483) )
+ ROM_LOAD16_BYTE( "kdu_31b.12e", 0x40000, 0x20000, CRC(9af36039) SHA1(f2645178a042689a387f916b4ecd7d1d859d758a) )
+ ROM_LOAD16_BYTE( "kdu_38b.12f", 0x40001, 0x20000, CRC(be8405a1) SHA1(8d4f9a0489dc4b2971b20170713284151bc10eb7) )
+ ROM_LOAD16_BYTE( "kdu_28.9e", 0x80000, 0x20000, CRC(9367bcd9) SHA1(8243b4b9bb9756f3fa726717e19a166cb2f5b50a) ) // == kd_28.9e
+ ROM_LOAD16_BYTE( "kdu_35.9f", 0x80001, 0x20000, CRC(4ca6a48a) SHA1(9d440ecd8d2d0e293fecf64ca3915252b94e7aef) ) // == kd_35.9f
+ ROM_LOAD16_BYTE( "kdu_29.10e", 0xc0000, 0x20000, CRC(0360fa72) SHA1(274769c8717a874397cf37369e3ef80a682d9ef2) ) // == kd_29.10e
+ ROM_LOAD16_BYTE( "kdu_36a.10f", 0xc0001, 0x20000, CRC(95a3cef8) SHA1(9b75c1ed0eafacc230197ffd9b81e0c8f4f2c464) ) // == kd_36a.10f
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "kd-5m.4a", 0x000000, 0x80000, CRC(e45b8701) SHA1(604e39e455e81695ee4f899f102d0bcd789cedd0) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket
+ ROMX_LOAD( "kd-7m.6a", 0x000002, 0x80000, CRC(a7750322) SHA1(3c583496a53cd64edf377db35f7f40f02b59b7e7) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket
+ ROMX_LOAD( "kd-1m.3a", 0x000004, 0x80000, CRC(5f74bf78) SHA1(b7c43eea9bf77a0fb571dcd53f8be719e6655fd9) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket
+ ROMX_LOAD( "kd-3m.5a", 0x000006, 0x80000, CRC(5e5303bf) SHA1(d9f90b898ffdf4398b2bbeb48247f06f728e7c00) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket
+ ROMX_LOAD( "kd-6m.4c", 0x200000, 0x80000, CRC(113358f3) SHA1(9d98eafa74a046f65bf3847fe1d88ea1b0c82b0c) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "11" socket
+ ROMX_LOAD( "kd-8m.6c", 0x200002, 0x80000, CRC(38853c44) SHA1(a6e552fb0138a76a7878b90d202904e2b44ae7ec) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "13" socket
+ ROMX_LOAD( "kd-2m.3c", 0x200004, 0x80000, CRC(9ef36604) SHA1(b42ca0a910b65e1e7bb6e7d734e853ce67e821bf) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "10" socket
+ ROMX_LOAD( "kd-4m.5c", 0x200006, 0x80000, CRC(402b9b4f) SHA1(4c11976976eadf1ad293b31b0a4d047d05032b06) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "12" socket
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "kd_09.12a", 0x00000, 0x08000, CRC(bac6ec26) SHA1(6cbb6d55660150ae3f5270e023328275ee1bbf50) ) // == kd_9.12a
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "kd_18.11c", 0x00000, 0x20000, CRC(4c63181d) SHA1(270f27534a95cb0be3ff3f9ca71c502320d8090b) )
+ ROM_LOAD( "kd_19.12c", 0x20000, 0x20000, CRC(92941b80) SHA1(5fa7c2793e6febee54a83042d118ddd4f2b7d127) )
+
+ 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( "kd29b.1a", 0x0000, 0x0117, NO_DUMP )
+ ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 90629B-3 */
+ROM_START( kodj )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "kdj_30a.11e", 0x00000, 0x20000, CRC(ebc788ad) SHA1(f4a297e409fcdbb2c15a13b39a16e4a83e7e060b) )
+ ROM_LOAD16_BYTE( "kdj_37a.11f", 0x00001, 0x20000, CRC(e55c3529) SHA1(a5254895499a53b4fbaac6fd50464b9e08175b8d) )
+ ROM_LOAD16_BYTE( "kdj_31a.12e", 0x40000, 0x20000, CRC(c710d722) SHA1(a2e9b84d3e7d835a910ab9f584bdc64c2559995a) ) // == kde_31a.12e
+ ROM_LOAD16_BYTE( "kdj_38a.12f", 0x40001, 0x20000, CRC(57d6ed3a) SHA1(a47da5068723c8e16ed458fbfa3e3db57b32d87d) ) // == kde_38a.12f
+ ROM_LOAD16_WORD_SWAP("kd_33.6f", 0x80000, 0x80000, CRC(9bd7ad4b) SHA1(7bece5d408fd13116bd5518014b632ecc9a2feaa) ) // incorrect label, could be kdj_33a, kdj_33, kd_33a
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "kd_06.8a", 0x000000, 0x80000, CRC(e45b8701) SHA1(604e39e455e81695ee4f899f102d0bcd789cedd0) , ROM_GROUPWORD | ROM_SKIP(6) ) // == kd-5m.4a
+ ROMX_LOAD( "kd_08.10a", 0x000002, 0x80000, CRC(a7750322) SHA1(3c583496a53cd64edf377db35f7f40f02b59b7e7) , ROM_GROUPWORD | ROM_SKIP(6) ) // == kd-7m.6a
+ ROMX_LOAD( "kd_05.7a", 0x000004, 0x80000, CRC(5f74bf78) SHA1(b7c43eea9bf77a0fb571dcd53f8be719e6655fd9) , ROM_GROUPWORD | ROM_SKIP(6) ) // == kd-1m.3a
+ ROMX_LOAD( "kd_07.9a", 0x000006, 0x80000, CRC(5e5303bf) SHA1(d9f90b898ffdf4398b2bbeb48247f06f728e7c00) , ROM_GROUPWORD | ROM_SKIP(6) ) // == kd-3m.5a
+ ROMX_LOAD( "kd_15.8c", 0x200000, 0x80000, CRC(113358f3) SHA1(9d98eafa74a046f65bf3847fe1d88ea1b0c82b0c) , ROM_GROUPWORD | ROM_SKIP(6) ) // == kd-6m.4c
+ ROMX_LOAD( "kd_17.10c", 0x200002, 0x80000, CRC(38853c44) SHA1(a6e552fb0138a76a7878b90d202904e2b44ae7ec) , ROM_GROUPWORD | ROM_SKIP(6) ) // == kd-8m.6c
+ ROMX_LOAD( "kd_14.7c", 0x200004, 0x80000, CRC(9ef36604) SHA1(b42ca0a910b65e1e7bb6e7d734e853ce67e821bf) , ROM_GROUPWORD | ROM_SKIP(6) ) // == kd-2m.3c
+ ROMX_LOAD( "kd_16.9c", 0x200006, 0x80000, CRC(402b9b4f) SHA1(4c11976976eadf1ad293b31b0a4d047d05032b06) , ROM_GROUPWORD | ROM_SKIP(6) ) // == kd-4m.5c
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "kd_09.12a", 0x00000, 0x08000, CRC(bac6ec26) SHA1(6cbb6d55660150ae3f5270e023328275ee1bbf50) ) // == kd_9.12a
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "kd_18.11c", 0x00000, 0x20000, CRC(4c63181d) SHA1(270f27534a95cb0be3ff3f9ca71c502320d8090b) )
+ ROM_LOAD( "kd_19.12c", 0x20000, 0x20000, CRC(92941b80) SHA1(5fa7c2793e6febee54a83042d118ddd4f2b7d127) )
+
+ 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( "kd29b.1a", 0x0000, 0x0117, NO_DUMP )
+ ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 89625B-1 */
+/* Note that this set is equivalent to kodj, but each 4Mbit EPROM is replaced by 4 1Mbit EPROMs. */
+ROM_START( kodja )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "kdj_36a.12f", 0x00000, 0x20000, CRC(ebc788ad) SHA1(f4a297e409fcdbb2c15a13b39a16e4a83e7e060b) ) // == kdj_30a.11e
+ ROM_LOAD16_BYTE( "kdj_42a.12h", 0x00001, 0x20000, CRC(e55c3529) SHA1(a5254895499a53b4fbaac6fd50464b9e08175b8d) ) // == kdj_37a.11f
+ ROM_LOAD16_BYTE( "kdj_37a.13f", 0x40000, 0x20000, CRC(c710d722) SHA1(a2e9b84d3e7d835a910ab9f584bdc64c2559995a) ) // == kdj_31a.12e
+ ROM_LOAD16_BYTE( "kdj_43a.13h", 0x40001, 0x20000, CRC(57d6ed3a) SHA1(a47da5068723c8e16ed458fbfa3e3db57b32d87d) ) // == kdj_38a.12f
+ ROM_LOAD16_BYTE( "kd_34.10f", 0x80000, 0x20000, CRC(9367bcd9) SHA1(8243b4b9bb9756f3fa726717e19a166cb2f5b50a) ) // == kd_33.6f
+ ROM_LOAD16_BYTE( "kd_40.10h", 0x80001, 0x20000, CRC(4ca6a48a) SHA1(9d440ecd8d2d0e293fecf64ca3915252b94e7aef) ) // == kd_33.6f
+ ROM_LOAD16_BYTE( "kd_35.11f", 0xc0000, 0x20000, CRC(0360fa72) SHA1(274769c8717a874397cf37369e3ef80a682d9ef2) ) // == kd_33.6f
+ ROM_LOAD16_BYTE( "kd_41a.11h", 0xc0001, 0x20000, CRC(95a3cef8) SHA1(9b75c1ed0eafacc230197ffd9b81e0c8f4f2c464) ) // == kd_33.6f
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "kd_9.4b", 0x000000, 0x20000, CRC(401a98e3) SHA1(b762d0f0e38ad33b5135646a107c1d4279c02193) , ROM_SKIP(7) ) // == kd_06.8a
+ ROMX_LOAD( "kd_1.4a", 0x000001, 0x20000, CRC(5894399a) SHA1(ee0bff29d313b4d5a318bc7345cc356d6e7318fc) , ROM_SKIP(7) ) // == kd_06.8a
+ ROMX_LOAD( "kd_13.9b", 0x000002, 0x20000, CRC(b6685131) SHA1(c1fa66cb695cfcb61e8495031ce18e4c6736b561) , ROM_SKIP(7) ) // == kd_08.10a
+ ROMX_LOAD( "kd_5.9a", 0x000003, 0x20000, CRC(c29b9ab3) SHA1(3ffa906d22563c9ad29b9ba4cd22b4ce5605b66a) , ROM_SKIP(7) ) // == kd_08.10a
+ ROMX_LOAD( "kd_24.5e", 0x000004, 0x20000, CRC(97008fdb) SHA1(150a7907f48dede2de0c40f1bea46e95d2e31e9c) , ROM_SKIP(7) ) // == kd_05.7a
+ ROMX_LOAD( "kd_17.5c", 0x000005, 0x20000, CRC(dc9a83d3) SHA1(6ceb5e6b11e7a57933c03fb308e1c6a850cf5ac7) , ROM_SKIP(7) ) // == kd_05.7a
+ ROMX_LOAD( "kd_38.8h", 0x000006, 0x20000, CRC(9c3dd2d1) SHA1(3ab77954fbde45797fcb1c5d8a500b5ec2673e5f) , ROM_SKIP(7) ) // == kd_07.9a
+ ROMX_LOAD( "kd_32.8f", 0x000007, 0x20000, CRC(1b2a802a) SHA1(f9b9e6da6a49aaf7c88b7b806c273b464a584a7b) , ROM_SKIP(7) ) // == kd_07.9a
+ ROMX_LOAD( "kd_10.5b", 0x100000, 0x20000, CRC(e788ae96) SHA1(1c257a4c20842b8750e3ba3cf78adad0bc5e6f2c) , ROM_SKIP(7) ) // == kd_06.8a
+ ROMX_LOAD( "kd_2.5a", 0x100001, 0x20000, CRC(b022e3e3) SHA1(a1e3700638e99677d4ee9aea5a250eb2380413c2) , ROM_SKIP(7) ) // == kd_06.8a
+ ROMX_LOAD( "kd_14.10b", 0x100002, 0x20000, CRC(4840c5ef) SHA1(fcd7ee778ab4519887bd37ced5e04f7aa8748e5e) , ROM_SKIP(7) ) // == kd_08.10a
+ ROMX_LOAD( "kd_6.10a", 0x100003, 0x20000, CRC(519faee4) SHA1(038afb9d2df872a0b45a7a6a43f7bb1389e8539a) , ROM_SKIP(7) ) // == kd_08.10a
+ ROMX_LOAD( "kd_25.7e", 0x100004, 0x20000, CRC(5d0fa853) SHA1(81e69bfac5ad6909d47db0927b7387bd392b4ef3) , ROM_SKIP(7) ) // == kd_05.7a
+ ROMX_LOAD( "kd_18.7c", 0x100005, 0x20000, CRC(6ad3b2bb) SHA1(c8d3bd2ce6305772224b5419301b59b9e78e7d44) , ROM_SKIP(7) ) // == kd_05.7a
+ ROMX_LOAD( "kd_39.9h", 0x100006, 0x20000, CRC(d7920213) SHA1(ac7de3f6c8503e06ae27f7db43bf9884f244bf7a) , ROM_SKIP(7) ) // == kd_07.9a
+ ROMX_LOAD( "kd_33.9f", 0x100007, 0x20000, CRC(65c2bed6) SHA1(932be92a418a2d3960f0b071eb5ffe6dae60d933) , ROM_SKIP(7) ) // == kd_07.9a
+ ROMX_LOAD( "kd_11.7b", 0x200000, 0x20000, CRC(147e3310) SHA1(e371db6c6621d09c43325edf9e3e40777afb830c) , ROM_SKIP(7) ) // == kd_15.8c
+ ROMX_LOAD( "kd_3.7a", 0x200001, 0x20000, CRC(5d18bc83) SHA1(49191e1073cdfb32272e6daeddedc4b309cf9fe6) , ROM_SKIP(7) ) // == kd_15.8c
+ ROMX_LOAD( "kd_15.11b", 0x200002, 0x20000, CRC(57359746) SHA1(2f83b77e6ebbceffab10653018a1b54a91d39a3f) , ROM_SKIP(7) ) // == kd_17.10c
+ ROMX_LOAD( "kd_7.11a", 0x200003, 0x20000, CRC(7fe03079) SHA1(be3be96d63a53cd8b6dc67eadc718c4b3b182123) , ROM_SKIP(7) ) // == kd_17.10c
+ ROMX_LOAD( "kd_26.8e", 0x200004, 0x20000, CRC(57e5fab5) SHA1(e665ab581372b48b6a7a494fd65ed6c807b5c00a) , ROM_SKIP(7) ) // == kd_14.7c
+ ROMX_LOAD( "kd_19.8c", 0x200005, 0x20000, CRC(b1f30f7c) SHA1(80308091a0af6ca46011a9174838c4d9dbeb96ee) , ROM_SKIP(7) ) // == kd_14.7c
+ ROMX_LOAD( "kd_28.10e", 0x200006, 0x20000, CRC(3a424135) SHA1(05d77253f454d69553a39a5dca0798f6ccea6da0) , ROM_SKIP(7) ) // == kd_16.9c
+ ROMX_LOAD( "kd_21.10c", 0x200007, 0x20000, CRC(ce10d2c3) SHA1(b694325b370d451cb3bcfe7d753c53ef68b83276) , ROM_SKIP(7) ) // == kd_16.9c
+ ROMX_LOAD( "kd_12.8b", 0x300000, 0x20000, CRC(a6042aa2) SHA1(daa4e52574b53d125414401ad0fca6eea36abe64) , ROM_SKIP(7) ) // == kd_15.8c
+ ROMX_LOAD( "kd_4.8a", 0x300001, 0x20000, CRC(0ce0ba30) SHA1(a19049b5fc58921452bf7b69d2d86d0faa5362bf) , ROM_SKIP(7) ) // == kd_15.8c
+ ROMX_LOAD( "kd_16.12b", 0x300002, 0x20000, CRC(63dcb7e0) SHA1(1524321f31813452aabfef133fb64fd0cef165cf) , ROM_SKIP(7) ) // == kd_17.10c
+ ROMX_LOAD( "kd_8.12a", 0x300003, 0x20000, CRC(c69b77ae) SHA1(31cacace828d4e376347ecd896f3454f79285a8b) , ROM_SKIP(7) ) // == kd_17.10c
+ ROMX_LOAD( "kd_27.9e", 0x300004, 0x20000, CRC(40d7bfed) SHA1(924d3f981d85434d2a22d4ede45131720d7521c0) , ROM_SKIP(7) ) // == kd_14.7c
+ ROMX_LOAD( "kd_20.9c", 0x300005, 0x20000, CRC(01c1f399) SHA1(ea25d4efc9e538ee8ed09acb6e467c5b444bf728) , ROM_SKIP(7) ) // == kd_14.7c
+ ROMX_LOAD( "kd_29.11e", 0x300006, 0x20000, CRC(a1eeac03) SHA1(fdec33ec0becc4badf89c9019f3217c22e54e842) , ROM_SKIP(7) ) // == kd_16.9c
+ ROMX_LOAD( "kd_22.11c", 0x300007, 0x20000, CRC(5ade98eb) SHA1(5d2474864bf0e41e89fe44c69025101b8ef2b482) , ROM_SKIP(7) ) // == kd_16.9c
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "kd_23.13b", 0x00000, 0x08000, CRC(bac6ec26) SHA1(6cbb6d55660150ae3f5270e023328275ee1bbf50) ) // == kd_09.12a
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "kd_30.12c", 0x00000, 0x20000, CRC(4c63181d) SHA1(270f27534a95cb0be3ff3f9ca71c502320d8090b) ) // == kd_18.11c
+ ROM_LOAD( "kd_31.13c", 0x20000, 0x20000, CRC(92941b80) SHA1(5fa7c2793e6febee54a83042d118ddd4f2b7d127) ) // == kd_19.12c
+
+ 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( "kd22b.1a", 0x0000, 0x0117, NO_DUMP )
+ ROM_LOAD( "iob1.12e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 91635B-2 */
+ROM_START( captcomm )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "cce_23f.8f", 0x000000, 0x80000, CRC(42c814c5) SHA1(60e6ae6b8a89cdaa1abf1749c60a5e3b3972e1ab) )
+ ROM_LOAD16_WORD_SWAP( "cc_22f.7f", 0x080000, 0x80000, CRC(0fd34195) SHA1(fb2b9a53af43507f13c4f94eaebbf0b538b2e754) )
+ ROM_LOAD16_BYTE( "cc_24f.9e", 0x100000, 0x20000, CRC(3a794f25) SHA1(7f3722a4ef0c1d7acb73e6bac9dd6ae7b35e6374) )
+ ROM_LOAD16_BYTE( "cc_28f.9f", 0x100001, 0x20000, CRC(fc3c2906) SHA1(621c3b79b6fdea1665bb316eb539e5916e890656) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cc-5m.3a", 0x000000, 0x80000, CRC(7261d8ba) SHA1(4b66292e42d20d0b79a756f0e445492ddb9c6bbc) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket
+ ROMX_LOAD( "cc-7m.5a", 0x000002, 0x80000, CRC(6a60f949) SHA1(87391ff92abaf3e451f70d789a938cffbd1fd222) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket
+ ROMX_LOAD( "cc-1m.4a", 0x000004, 0x80000, CRC(00637302) SHA1(2c554b59cceec2de67a9a4bc6281fe846d3c8cd2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket
+ ROMX_LOAD( "cc-3m.6a", 0x000006, 0x80000, CRC(cc87cf61) SHA1(7fb1f49494cc1a08aded20754bb0cefb1c323198) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket
+ ROMX_LOAD( "cc-6m.7a", 0x200000, 0x80000, CRC(28718bed) SHA1(dfdc4dd14dc609783bad94d608a9e9b137dea944) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "5" socket
+ ROMX_LOAD( "cc-8m.9a", 0x200002, 0x80000, CRC(d4acc53a) SHA1(d03282ebbde362e679cc97f772aa9baf163d7606) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "7" socket
+ ROMX_LOAD( "cc-2m.8a", 0x200004, 0x80000, CRC(0c69f151) SHA1(a170b8e568439e4a26d84376d53560e4248e4e2f) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "6" socket
+ ROMX_LOAD( "cc-4m.10a", 0x200006, 0x80000, CRC(1f9ebb97) SHA1(023d00cb7b6a52d1b29e2052abe08ef34cb0c55c) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "8" socket
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "cc_09.11a", 0x00000, 0x08000, CRC(698e8b58) SHA1(b7a3d905a7ed2c430426ca2e185e3d7e75e752a1) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "cc_18.11c", 0x00000, 0x20000, CRC(6de2c2db) SHA1(9a1eaba8d104f59a5e61f89679bb5de0c0c64364) )
+ ROM_LOAD( "cc_19.12c", 0x20000, 0x20000, CRC(b99091ae) SHA1(b19197c7ad3aeaf5f41c26bf853b0c9b502ecfca) )
+
+ 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( "cc63b.1a", 0x0000, 0x0117, CRC(cae8f0f9) SHA1(eadbd45e184195b2d170cd71a68e5caed64b69f7) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "ccprg1.11d", 0x0000, 0x0117, CRC(e1c225c4) SHA1(97146451ca9aa3cecd443cc6881151ed8df47fbf) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632b.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 91635B-2 */
+ROM_START( captcommr1 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "cce_23d.8f", 0x000000, 0x80000, CRC(19c58ece) SHA1(6e23e87db29b2c5698b7cead99d1106a2e190648) )
+ ROM_LOAD16_WORD_SWAP( "cc_22d.7f", 0x080000, 0x80000, CRC(a91949b7) SHA1(c027af89cd8f6bd3aaed61114582322c42e0c74f) )
+ ROM_LOAD16_BYTE( "cc_24d.9e", 0x100000, 0x20000, CRC(680e543f) SHA1(cfa963ab6329f615807db213bf53841860ed3149) )
+ ROM_LOAD16_BYTE( "cc_28d.9f", 0x100001, 0x20000, CRC(8820039f) SHA1(d68ce0b34ade75b8c5214168b2b1e0cdff45cd52) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cc-5m.3a", 0x000000, 0x80000, CRC(7261d8ba) SHA1(4b66292e42d20d0b79a756f0e445492ddb9c6bbc) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket
+ ROMX_LOAD( "cc-7m.5a", 0x000002, 0x80000, CRC(6a60f949) SHA1(87391ff92abaf3e451f70d789a938cffbd1fd222) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket
+ ROMX_LOAD( "cc-1m.4a", 0x000004, 0x80000, CRC(00637302) SHA1(2c554b59cceec2de67a9a4bc6281fe846d3c8cd2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket
+ ROMX_LOAD( "cc-3m.6a", 0x000006, 0x80000, CRC(cc87cf61) SHA1(7fb1f49494cc1a08aded20754bb0cefb1c323198) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket
+ ROMX_LOAD( "cc-6m.7a", 0x200000, 0x80000, CRC(28718bed) SHA1(dfdc4dd14dc609783bad94d608a9e9b137dea944) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "5" socket
+ ROMX_LOAD( "cc-8m.9a", 0x200002, 0x80000, CRC(d4acc53a) SHA1(d03282ebbde362e679cc97f772aa9baf163d7606) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "7" socket
+ ROMX_LOAD( "cc-2m.8a", 0x200004, 0x80000, CRC(0c69f151) SHA1(a170b8e568439e4a26d84376d53560e4248e4e2f) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "6" socket
+ ROMX_LOAD( "cc-4m.10a", 0x200006, 0x80000, CRC(1f9ebb97) SHA1(023d00cb7b6a52d1b29e2052abe08ef34cb0c55c) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "8" socket
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "cc_09.11a", 0x00000, 0x08000, CRC(698e8b58) SHA1(b7a3d905a7ed2c430426ca2e185e3d7e75e752a1) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "cc_18.11c", 0x00000, 0x20000, CRC(6de2c2db) SHA1(9a1eaba8d104f59a5e61f89679bb5de0c0c64364) )
+ ROM_LOAD( "cc_19.12c", 0x20000, 0x20000, CRC(b99091ae) SHA1(b19197c7ad3aeaf5f41c26bf853b0c9b502ecfca) )
+
+ 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( "cc63b.1a", 0x0000, 0x0117, CRC(cae8f0f9) SHA1(eadbd45e184195b2d170cd71a68e5caed64b69f7) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "ccprg.11d", 0x0000, 0x0117, CRC(e1c225c4) SHA1(97146451ca9aa3cecd443cc6881151ed8df47fbf) ) // == ccprg1.11d
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) // == c632b.ic1
+ROM_END
+
+/* B-Board 91635B-2 */
+ROM_START( captcommu )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "ccu_23b.8f", 0x000000, 0x80000, CRC(03da44fd) SHA1(0bf382933b4b44082bbaf63e96acd83ab8808a34) )
+ ROM_LOAD16_WORD_SWAP( "ccu_22c.7f", 0x080000, 0x80000, CRC(9b82a052) SHA1(8247fe45fea8c47072a66d6707202bcdb8c62923) )
+ ROM_LOAD16_BYTE( "ccu_24b.9e", 0x100000, 0x20000, CRC(84ff99b2) SHA1(5b02c91f3d0f8fb46db9596136b683f5a22dc15f) )
+ ROM_LOAD16_BYTE( "ccu_28b.9f", 0x100001, 0x20000, CRC(fbcec223) SHA1(daf484baece5b3a11f3dcabb758b8bdd736a1fb6) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cc-5m.3a", 0x000000, 0x80000, CRC(7261d8ba) SHA1(4b66292e42d20d0b79a756f0e445492ddb9c6bbc) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket
+ ROMX_LOAD( "cc-7m.5a", 0x000002, 0x80000, CRC(6a60f949) SHA1(87391ff92abaf3e451f70d789a938cffbd1fd222) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket
+ ROMX_LOAD( "cc-1m.4a", 0x000004, 0x80000, CRC(00637302) SHA1(2c554b59cceec2de67a9a4bc6281fe846d3c8cd2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket
+ ROMX_LOAD( "cc-3m.6a", 0x000006, 0x80000, CRC(cc87cf61) SHA1(7fb1f49494cc1a08aded20754bb0cefb1c323198) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket
+ ROMX_LOAD( "cc-6m.7a", 0x200000, 0x80000, CRC(28718bed) SHA1(dfdc4dd14dc609783bad94d608a9e9b137dea944) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "5" socket
+ ROMX_LOAD( "cc-8m.9a", 0x200002, 0x80000, CRC(d4acc53a) SHA1(d03282ebbde362e679cc97f772aa9baf163d7606) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "7" socket
+ ROMX_LOAD( "cc-2m.8a", 0x200004, 0x80000, CRC(0c69f151) SHA1(a170b8e568439e4a26d84376d53560e4248e4e2f) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "6" socket
+ ROMX_LOAD( "cc-4m.10a", 0x200006, 0x80000, CRC(1f9ebb97) SHA1(023d00cb7b6a52d1b29e2052abe08ef34cb0c55c) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "8" socket
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "ccu_09.11a", 0x00000, 0x08000, CRC(698e8b58) SHA1(b7a3d905a7ed2c430426ca2e185e3d7e75e752a1) ) // == cc_09.11a
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "ccu_18.11c", 0x00000, 0x20000, CRC(6de2c2db) SHA1(9a1eaba8d104f59a5e61f89679bb5de0c0c64364) ) // == cc_18.11c
+ ROM_LOAD( "ccu_19.12c", 0x20000, 0x20000, CRC(b99091ae) SHA1(b19197c7ad3aeaf5f41c26bf853b0c9b502ecfca) ) // == cc_19.12c
+
+ 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( "cc63b.1a", 0x0000, 0x0117, CRC(cae8f0f9) SHA1(eadbd45e184195b2d170cd71a68e5caed64b69f7) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "ccprg1.11d", 0x0000, 0x0117, CRC(e1c225c4) SHA1(97146451ca9aa3cecd443cc6881151ed8df47fbf) ) /* seen the same pcb with CCPRG.11D */
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) // == c632b.ic1
+ROM_END
+
+/* B-Board 91634B-2 */
+ROM_START( captcommj )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "ccj_23f.8f", 0x000000, 0x80000, CRC(5b482b62) SHA1(c871aa1eb9ecc117c3079995d1f5212193bd2e12) )
+ ROM_LOAD16_WORD_SWAP( "ccj_22f.7f", 0x080000, 0x80000, CRC(0fd34195) SHA1(fb2b9a53af43507f13c4f94eaebbf0b538b2e754) ) // == cc_22f.7f
+ ROM_LOAD16_BYTE( "ccj_24f.9e", 0x100000, 0x20000, CRC(3a794f25) SHA1(7f3722a4ef0c1d7acb73e6bac9dd6ae7b35e6374) ) // == cc_24f.9e
+ ROM_LOAD16_BYTE( "ccj_28f.9f", 0x100001, 0x20000, CRC(fc3c2906) SHA1(621c3b79b6fdea1665bb316eb539e5916e890656) ) // == cc_28f.9f
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cc_01.3a", 0x000000, 0x80000, CRC(7261d8ba) SHA1(4b66292e42d20d0b79a756f0e445492ddb9c6bbc) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-5m.3a
+ ROMX_LOAD( "cc_02.4a", 0x000002, 0x80000, CRC(6a60f949) SHA1(87391ff92abaf3e451f70d789a938cffbd1fd222) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-7m.5a
+ ROMX_LOAD( "cc_03.5a", 0x000004, 0x80000, CRC(00637302) SHA1(2c554b59cceec2de67a9a4bc6281fe846d3c8cd2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-1m.4a
+ ROMX_LOAD( "cc_04.6a", 0x000006, 0x80000, CRC(cc87cf61) SHA1(7fb1f49494cc1a08aded20754bb0cefb1c323198) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-3m.6a
+ ROMX_LOAD( "cc_05.7a", 0x200000, 0x80000, CRC(28718bed) SHA1(dfdc4dd14dc609783bad94d608a9e9b137dea944) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-6m.7a
+ ROMX_LOAD( "cc_06.8a", 0x200002, 0x80000, CRC(d4acc53a) SHA1(d03282ebbde362e679cc97f772aa9baf163d7606) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-8m.9a
+ ROMX_LOAD( "cc_07.9a", 0x200004, 0x80000, CRC(0c69f151) SHA1(a170b8e568439e4a26d84376d53560e4248e4e2f) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-2m.8a
+ ROMX_LOAD( "cc_08.10a", 0x200006, 0x80000, CRC(1f9ebb97) SHA1(023d00cb7b6a52d1b29e2052abe08ef34cb0c55c) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-4m.10a
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "ccj_09.12a", 0x00000, 0x08000, CRC(698e8b58) SHA1(b7a3d905a7ed2c430426ca2e185e3d7e75e752a1) ) // == cc_09.11a
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "ccj_18.11c", 0x00000, 0x20000, CRC(6de2c2db) SHA1(9a1eaba8d104f59a5e61f89679bb5de0c0c64364) ) // == cc_18.11c
+ ROM_LOAD( "ccj_19.12c", 0x20000, 0x20000, CRC(b99091ae) SHA1(b19197c7ad3aeaf5f41c26bf853b0c9b502ecfca) ) // == cc_19.12c
+
+ 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( "cc63b.1a", 0x0000, 0x0117, CRC(cae8f0f9) SHA1(eadbd45e184195b2d170cd71a68e5caed64b69f7) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "ccprg1.11d", 0x0000, 0x0117, CRC(e1c225c4) SHA1(97146451ca9aa3cecd443cc6881151ed8df47fbf) ) /* seen the same pcb with CCPRG.11D */
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632b.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) /* seen the same pcb with C632.IC1 */
+ROM_END
+
+/* B-Board 91634B-2 */
+ROM_START( captcommjr1 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "ccj_23b.8f", 0x000000, 0x80000, CRC(e2a2d80e) SHA1(ec3c455974b77cd2e4357546aea4cb25690a041f) )
+ ROM_LOAD16_WORD_SWAP( "ccj_22c.7f", 0x080000, 0x80000, CRC(9b82a052) SHA1(8247fe45fea8c47072a66d6707202bcdb8c62923) ) // == ccu_22c.7f
+ ROM_LOAD16_BYTE( "ccj_24b.9e", 0x100000, 0x20000, CRC(84ff99b2) SHA1(5b02c91f3d0f8fb46db9596136b683f5a22dc15f) ) // == ccu_24b.9e
+ ROM_LOAD16_BYTE( "ccj_28b.9f", 0x100001, 0x20000, CRC(fbcec223) SHA1(daf484baece5b3a11f3dcabb758b8bdd736a1fb6) ) // == ccu_28b.9f
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cc_01.3a", 0x000000, 0x80000, CRC(7261d8ba) SHA1(4b66292e42d20d0b79a756f0e445492ddb9c6bbc) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-5m.3a
+ ROMX_LOAD( "cc_02.4a", 0x000002, 0x80000, CRC(6a60f949) SHA1(87391ff92abaf3e451f70d789a938cffbd1fd222) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-7m.5a
+ ROMX_LOAD( "cc_03.5a", 0x000004, 0x80000, CRC(00637302) SHA1(2c554b59cceec2de67a9a4bc6281fe846d3c8cd2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-1m.4a
+ ROMX_LOAD( "cc_04.6a", 0x000006, 0x80000, CRC(cc87cf61) SHA1(7fb1f49494cc1a08aded20754bb0cefb1c323198) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-3m.6a
+ ROMX_LOAD( "cc_05.7a", 0x200000, 0x80000, CRC(28718bed) SHA1(dfdc4dd14dc609783bad94d608a9e9b137dea944) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-6m.7a
+ ROMX_LOAD( "cc_06.8a", 0x200002, 0x80000, CRC(d4acc53a) SHA1(d03282ebbde362e679cc97f772aa9baf163d7606) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-8m.9a
+ ROMX_LOAD( "cc_07.9a", 0x200004, 0x80000, CRC(0c69f151) SHA1(a170b8e568439e4a26d84376d53560e4248e4e2f) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-2m.8a
+ ROMX_LOAD( "cc_08.10a", 0x200006, 0x80000, CRC(1f9ebb97) SHA1(023d00cb7b6a52d1b29e2052abe08ef34cb0c55c) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-4m.10a
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "ccj_09.12a", 0x00000, 0x08000, CRC(698e8b58) SHA1(b7a3d905a7ed2c430426ca2e185e3d7e75e752a1) ) // == cc_09.11a
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "ccj_18.11c", 0x00000, 0x20000, CRC(6de2c2db) SHA1(9a1eaba8d104f59a5e61f89679bb5de0c0c64364) ) // == cc_18.11c
+ ROM_LOAD( "ccj_19.12c", 0x20000, 0x20000, CRC(b99091ae) SHA1(b19197c7ad3aeaf5f41c26bf853b0c9b502ecfca) ) // == cc_19.12c
+
+ 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( "cc63b.1a", 0x0000, 0x0117, CRC(cae8f0f9) SHA1(eadbd45e184195b2d170cd71a68e5caed64b69f7) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "ccprg.11d", 0x0000, 0x0117, CRC(e1c225c4) SHA1(97146451ca9aa3cecd443cc6881151ed8df47fbf) ) // == ccprg1.11d
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) ) // == c632b.ic1
+ROM_END
+
+/* Captain Commando bootleg
+ - there are 2 dumps of this, one has bad (half size) gfx roms tho, otherwise identical
+
+ROMs from a Captain Commando bootleg PCB
+
+Large single PCB containing.....
+68000 @ 10MHz
+Z80 @ 3.579545MHz
+YM2151 @ 3.579545MHz
+M6295 @ 1MHz (16/16), pin 7 HIGH
+xtals 10MHz, 3.579545MHz, 16MHz
+8-position DSWs x3
+6116 (2kx8) SRAM x6
+62256 (32kx8) SRAM x6
+681000 (128kx8) SRAM x2
+a few PALs
+LOTS of logic
+no special chips
+no custom chips
+no PLD/CPLD/FPGA
+no PROMs
+
+*/
+
+ROM_START( captcommb )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "25.bin", 0x000000, 0x80000, CRC(cb71ed7a) SHA1(84f76b4861a3c7a59e67f38777f2d68749f19337) )
+ ROM_LOAD16_BYTE( "27.bin", 0x000001, 0x80000, CRC(47cb2e87) SHA1(8a990a3a122045b50dd73d2e7b02fe60ab9af0a3) )
+ ROM_LOAD16_BYTE( "24.bin", 0x100000, 0x40000, CRC(79794279) SHA1(5a43a4cef6653454ba9a81f2dd7f3f91c8a3354c) )
+ ROM_LOAD16_BYTE( "26.bin", 0x100001, 0x40000, CRC(b01077ba) SHA1(0698fbfca7beea8e6a676aa19fcbf5ddea3defb1) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "c91e-01.bin", 0x000000, 0x40000, CRC(f863071c) SHA1(c5154c4001f8e447623f9d71bf3e68a16f039e8f), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000004, 0x40000)
+ ROM_CONTINUE( 0x200000, 0x40000)
+ ROM_CONTINUE( 0x200004, 0x40000)
+ ROMX_LOAD( "c91e-02.bin", 0x000001, 0x40000, CRC(4b03c308) SHA1(d28d3ebba2571bea56b057cb3e09315a17d78b42), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000005, 0x40000)
+ ROM_CONTINUE( 0x200001, 0x40000)
+ ROM_CONTINUE( 0x200005, 0x40000)
+ ROMX_LOAD( "c91e-03.bin", 0x000002, 0x40000, CRC(3383ea96) SHA1(2a583d87c6d80919c97640f6f2e756cecc3e38ec), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000006, 0x40000)
+ ROM_CONTINUE( 0x200002, 0x40000)
+ ROM_CONTINUE( 0x200006, 0x40000)
+ ROMX_LOAD( "c91e-04.bin", 0x000003, 0x40000, CRC(b8e1f4cf) SHA1(6686df700c7ce49fe4ac7007aa4d622645e0e348), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000007, 0x40000)
+ ROM_CONTINUE( 0x200003, 0x40000)
+ ROM_CONTINUE( 0x200007, 0x40000)
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "l.bin", 0x00000, 0x08000, CRC(698e8b58) SHA1(b7a3d905a7ed2c430426ca2e185e3d7e75e752a1) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "c91e-05.bin", 0x00000, 0x40000, CRC(096115fb) SHA1(b496550f61b3d4b54ba43522d31efd0b09057493))
+ROM_END
+
+/* B-Board 91635B-2 */
+ROM_START( knights )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "kr_23e.8f", 0x00000, 0x80000, CRC(1b3997eb) SHA1(724b68eff319fcdf0dd3bc1eb6662996c1f6ecd9) )
+ ROM_LOAD16_WORD_SWAP( "kr_22.7f", 0x80000, 0x80000, CRC(d0b671a9) SHA1(9865472c5fc3f617345e23b5de5a9ba177945b5a) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "kr-5m.3a", 0x000000, 0x80000, CRC(9e36c1a4) SHA1(772daae74e119371dfb76fde9775bda78a8ba125) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket
+ ROMX_LOAD( "kr-7m.5a", 0x000002, 0x80000, CRC(c5832cae) SHA1(a188cf401cd3a2909b377d3059f14d22ec3b0643) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket
+ ROMX_LOAD( "kr-1m.4a", 0x000004, 0x80000, CRC(f095be2d) SHA1(0427d1574062f277a9d04440019d5638b05de561) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket
+ ROMX_LOAD( "kr-3m.6a", 0x000006, 0x80000, CRC(179dfd96) SHA1(b1844e69da7ab13474da569978d5b47deb8eb2be) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket
+ ROMX_LOAD( "kr-6m.7a", 0x200000, 0x80000, CRC(1f4298d2) SHA1(4b162a7f649b0bcd676f8ca0c5eee9a1250d6452) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "5" socket
+ ROMX_LOAD( "kr-8m.9a", 0x200002, 0x80000, CRC(37fa8751) SHA1(b88b39d1f08621f15a5620095aef998346fa9891) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "7" socket
+ ROMX_LOAD( "kr-2m.8a", 0x200004, 0x80000, CRC(0200bc3d) SHA1(c900b1be2b4e49b951e5c1e3fd1e19d21b82986e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "6" socket
+ ROMX_LOAD( "kr-4m.10a", 0x200006, 0x80000, CRC(0bb2b4e7) SHA1(983b800925d58e4aeb4e5105f93ed5faf66d009c) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "8" socket
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "kr_09.11a", 0x00000, 0x08000, CRC(5e44d9ee) SHA1(47a7503321be8d52b5c44af838e3bb82ee15a415) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "kr_18.11c", 0x00000, 0x20000, CRC(da69d15f) SHA1(9616207e693bae85705f786cef60b9f6951b5067) )
+ ROM_LOAD( "kr_19.12c", 0x20000, 0x20000, CRC(bfc654e9) SHA1(01b3d92e4dedf55ea3933d387c7ddb9ba2549773) )
+
+ 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( "kr63b.1a", 0x0000, 0x0117, CRC(fd5b6522) SHA1(5e6ebb2d736415402920a30d331d4b6dab557e5e) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 91635B-2 */
+ROM_START( knightsu )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "kr_23u.8f", 0x00000, 0x80000, CRC(252bc2ba) SHA1(4f4901c253bd64bbe68ea01994ae663fe2ccd056) )
+ ROM_LOAD16_WORD_SWAP( "kr_22.7f", 0x80000, 0x80000, CRC(d0b671a9) SHA1(9865472c5fc3f617345e23b5de5a9ba177945b5a) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "kr-5m.3a", 0x000000, 0x80000, CRC(9e36c1a4) SHA1(772daae74e119371dfb76fde9775bda78a8ba125) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket
+ ROMX_LOAD( "kr-7m.5a", 0x000002, 0x80000, CRC(c5832cae) SHA1(a188cf401cd3a2909b377d3059f14d22ec3b0643) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket
+ ROMX_LOAD( "kr-1m.4a", 0x000004, 0x80000, CRC(f095be2d) SHA1(0427d1574062f277a9d04440019d5638b05de561) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket
+ ROMX_LOAD( "kr-3m.6a", 0x000006, 0x80000, CRC(179dfd96) SHA1(b1844e69da7ab13474da569978d5b47deb8eb2be) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket
+ ROMX_LOAD( "kr-6m.7a", 0x200000, 0x80000, CRC(1f4298d2) SHA1(4b162a7f649b0bcd676f8ca0c5eee9a1250d6452) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "5" socket
+ ROMX_LOAD( "kr-8m.9a", 0x200002, 0x80000, CRC(37fa8751) SHA1(b88b39d1f08621f15a5620095aef998346fa9891) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "7" socket
+ ROMX_LOAD( "kr-2m.8a", 0x200004, 0x80000, CRC(0200bc3d) SHA1(c900b1be2b4e49b951e5c1e3fd1e19d21b82986e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "6" socket
+ ROMX_LOAD( "kr-4m.10a", 0x200006, 0x80000, CRC(0bb2b4e7) SHA1(983b800925d58e4aeb4e5105f93ed5faf66d009c) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "8" socket
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "kr_09.11a", 0x00000, 0x08000, CRC(5e44d9ee) SHA1(47a7503321be8d52b5c44af838e3bb82ee15a415) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "kr_18.11c", 0x00000, 0x20000, CRC(da69d15f) SHA1(9616207e693bae85705f786cef60b9f6951b5067) )
+ ROM_LOAD( "kr_19.12c", 0x20000, 0x20000, CRC(bfc654e9) SHA1(01b3d92e4dedf55ea3933d387c7ddb9ba2549773) )
+
+ 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( "kr63b.1a", 0x0000, 0x0117, CRC(fd5b6522) SHA1(5e6ebb2d736415402920a30d331d4b6dab557e5e) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 91634B-2 */
+ROM_START( knightsj )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "kr_23j.8f", 0x00000, 0x80000, CRC(eae7417f) SHA1(2ec808265a9a231922e2397d7e8f3c3841a90859) )
+ ROM_LOAD16_WORD_SWAP( "kr_22.7f", 0x80000, 0x80000, CRC(d0b671a9) SHA1(9865472c5fc3f617345e23b5de5a9ba177945b5a) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "kr_01.3a", 0x000000, 0x80000, CRC(9e36c1a4) SHA1(772daae74e119371dfb76fde9775bda78a8ba125) , ROM_GROUPWORD | ROM_SKIP(6) ) // == kr-5m.3a
+ ROMX_LOAD( "kr_02.4a", 0x000002, 0x80000, CRC(c5832cae) SHA1(a188cf401cd3a2909b377d3059f14d22ec3b0643) , ROM_GROUPWORD | ROM_SKIP(6) ) // == kr-7m.5a
+ ROMX_LOAD( "kr_03.5a", 0x000004, 0x80000, CRC(f095be2d) SHA1(0427d1574062f277a9d04440019d5638b05de561) , ROM_GROUPWORD | ROM_SKIP(6) ) // == kr-1m.4a
+ ROMX_LOAD( "kr_04.6a", 0x000006, 0x80000, CRC(179dfd96) SHA1(b1844e69da7ab13474da569978d5b47deb8eb2be) , ROM_GROUPWORD | ROM_SKIP(6) ) // == kr-3m.6a
+ ROMX_LOAD( "kr_05.7a", 0x200000, 0x80000, CRC(1f4298d2) SHA1(4b162a7f649b0bcd676f8ca0c5eee9a1250d6452) , ROM_GROUPWORD | ROM_SKIP(6) ) // == kr-6m.7a
+ ROMX_LOAD( "kr_06.8a", 0x200002, 0x80000, CRC(37fa8751) SHA1(b88b39d1f08621f15a5620095aef998346fa9891) , ROM_GROUPWORD | ROM_SKIP(6) ) // == kr-8m.9a
+ ROMX_LOAD( "kr_07.9a", 0x200004, 0x80000, CRC(0200bc3d) SHA1(c900b1be2b4e49b951e5c1e3fd1e19d21b82986e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == kr-2m.8a
+ ROMX_LOAD( "kr_08.10a", 0x200006, 0x80000, CRC(0bb2b4e7) SHA1(983b800925d58e4aeb4e5105f93ed5faf66d009c) , ROM_GROUPWORD | ROM_SKIP(6) ) // == kr-4m.10a
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "kr_09.12a", 0x00000, 0x08000, CRC(5e44d9ee) SHA1(47a7503321be8d52b5c44af838e3bb82ee15a415) ) // == kr_09.11a
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "kr_18.11c", 0x00000, 0x20000, CRC(da69d15f) SHA1(9616207e693bae85705f786cef60b9f6951b5067) )
+ ROM_LOAD( "kr_19.12c", 0x20000, 0x20000, CRC(bfc654e9) SHA1(01b3d92e4dedf55ea3933d387c7ddb9ba2549773) )
+
+ 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( "kr63b.1a", 0x0000, 0x0117, CRC(fd5b6522) SHA1(5e6ebb2d736415402920a30d331d4b6dab557e5e) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 89625B-1 */
+/* Note that this set is equivalent to knightsj, but each 4Mbit EPROM is replaced by 4 1Mbit EPROMs. */
+ROM_START( knightsja )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "krj_36.12f", 0x00000, 0x20000, CRC(ad3d1a8e) SHA1(327f9e818f1500836fc549afeffbb2a3c5aafe8c) ) // == kr_23j.8f
+ ROM_LOAD16_BYTE( "krj_42.12h", 0x00001, 0x20000, CRC(e694a491) SHA1(5a4d27c879c10032c49880019501de3e45ab1b35) ) // == kr_23j.8f
+ ROM_LOAD16_BYTE( "krj_37.13f", 0x40000, 0x20000, CRC(85596094) SHA1(74ad294de63aa6b60aa8b885c45c3d41a07ce19a) ) // == kr_23j.8f
+ ROM_LOAD16_BYTE( "krj_43.13h", 0x40001, 0x20000, CRC(9198bf8f) SHA1(aa3610600286ab25ce81705ea1319d42e7cc7f6c) ) // == kr_23j.8f
+ ROM_LOAD16_BYTE( "kr_34.10f", 0x80000, 0x20000, CRC(fe6eb08d) SHA1(a67ca33895ff7f41e8521ff7b39e629048d04d30) ) // == kr_22.7f
+ ROM_LOAD16_BYTE( "kr_40.10h", 0x80001, 0x20000, CRC(1172806d) SHA1(5ad08bf9bada036d89a55f5a542ee1db22df45b2) ) // == kr_22.7f
+ ROM_LOAD16_BYTE( "kr_35.11f", 0xc0000, 0x20000, CRC(f854b020) SHA1(3d8bd0ab5e0fa2da3c868b591edff5c66f1f08ed) ) // == kr_22.7f
+ ROM_LOAD16_BYTE( "kr_41.11h", 0xc0001, 0x20000, CRC(eb52e78d) SHA1(b9462c9d97848a6dc4d55475053824df8c9e7f02) ) // == kr_22.7f
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "kr_09.4b", 0x000000, 0x20000, CRC(08b76e10) SHA1(b18833c4794ef59f8eaf7aef4d62790c3fec9d4d) , ROM_SKIP(7) ) // == kr_01.3a
+ ROMX_LOAD( "kr_01.4a", 0x000001, 0x20000, CRC(40cecf5c) SHA1(a628199e1808664c403d0de183d1c6ae01670c57) , ROM_SKIP(7) ) // == kr_01.3a
+ ROMX_LOAD( "kr_13.9b", 0x000002, 0x20000, CRC(435aaa03) SHA1(60af266dccab12220d7efce68887b64826aba37d) , ROM_SKIP(7) ) // == kr_02.4a
+ ROMX_LOAD( "kr_05.9a", 0x000003, 0x20000, CRC(5b8a615b) SHA1(42aebdb7f338eac9a29380cb0b7553f0d3eaac04) , ROM_SKIP(7) ) // == kr_02.4a
+ ROMX_LOAD( "kr_24.5e", 0x000004, 0x20000, CRC(de65153e) SHA1(f28fcde0d08634d036d07c2a699026007d19718f) , ROM_SKIP(7) ) // == kr_03.5a
+ ROMX_LOAD( "kr_17.5c", 0x000005, 0x20000, CRC(b171c968) SHA1(cdbd7b0dc9fd2f3f027796d8f5cabf0a92a11941) , ROM_SKIP(7) ) // == kr_03.5a
+ ROMX_LOAD( "kr_38.8h", 0x000006, 0x20000, CRC(f4466bf4) SHA1(86e1ffc354b189504ca8f96143a62344a530d267) , ROM_SKIP(7) ) // == kr_04.6a
+ ROMX_LOAD( "kr_32.8f", 0x000007, 0x20000, CRC(87380ddd) SHA1(01e864060adcdafad987c5758db593525faed589) , ROM_SKIP(7) ) // == kr_04.6a
+ ROMX_LOAD( "kr_10.5b", 0x100000, 0x20000, CRC(37006d66) SHA1(0efec364ed5b0e121023bc3424d51241a4b208e0) , ROM_SKIP(7) ) // == kr_01.3a
+ ROMX_LOAD( "kr_02.5a", 0x100001, 0x20000, CRC(b54612e3) SHA1(1d33cf99fdaf3bf5c8d212d1a7c71f085c6c2cd4) , ROM_SKIP(7) ) // == kr_01.3a
+ ROMX_LOAD( "kr_14.10b", 0x100002, 0x20000, CRC(0ae88766) SHA1(5e3954b51b030d6e7cabd8f94cb849e963cc7d52) , ROM_SKIP(7) ) // == kr_02.4a
+ ROMX_LOAD( "kr_06.10a", 0x100003, 0x20000, CRC(ecb1a09a) SHA1(bbd96260774f52e50377ad020fc94d1b120f0a37) , ROM_SKIP(7) ) // == kr_02.4a
+ ROMX_LOAD( "kr_25.7e", 0x100004, 0x20000, CRC(9aace189) SHA1(95332a14dbe9d24a7e294a26530913b8cb5237f2) , ROM_SKIP(7) ) // == kr_03.5a
+ ROMX_LOAD( "kr_18.7c", 0x100005, 0x20000, CRC(09fa14a5) SHA1(36e7412a317d5f8b528d914d7e6c3c1872eb8533) , ROM_SKIP(7) ) // == kr_03.5a
+ ROMX_LOAD( "kr_39.9h", 0x100006, 0x20000, CRC(fd8a9aeb) SHA1(a38ea74de95a78fc72c6ad165157e4c22aaa5aed) , ROM_SKIP(7) ) // == kr_04.6a
+ ROMX_LOAD( "kr_33.9f", 0x100007, 0x20000, CRC(11803e95) SHA1(71603ba4a85967dd434d8499738014a9227d1d26) , ROM_SKIP(7) ) // == kr_04.6a
+ ROMX_LOAD( "kr_11.7b", 0x200000, 0x20000, CRC(a967ceb3) SHA1(43cdc0e0114f7ccedc7db5cd49b9041ed1a2614f) , ROM_SKIP(7) ) // == kr_05.7a
+ ROMX_LOAD( "kr_03.7a", 0x200001, 0x20000, CRC(ea10db07) SHA1(e537f3983ac32abcef06fa45afe51f82c87bfa86) , ROM_SKIP(7) ) // == kr_05.7a
+ ROMX_LOAD( "kr_15.11b", 0x200002, 0x20000, CRC(8140b83b) SHA1(e9cec517d84aa688d60f4201bcee00dbcdd44798) , ROM_SKIP(7) ) // == kr_06.8a
+ ROMX_LOAD( "kr_07.11a", 0x200003, 0x20000, CRC(6af10648) SHA1(b1d6c908496b1197e23571f5230f017502d5018c) , ROM_SKIP(7) ) // == kr_06.8a
+ ROMX_LOAD( "kr_26.8e", 0x200004, 0x20000, CRC(8865d86b) SHA1(a79b528d2f94ee350a39eb59860189809267cfad) , ROM_SKIP(7) ) // == kr_07.9a
+ ROMX_LOAD( "kr_19.8c", 0x200005, 0x20000, CRC(029f4abe) SHA1(e0f02d18e2a51eb02cabe507fbe77031ee3e67e7) , ROM_SKIP(7) ) // == kr_07.9a
+ ROMX_LOAD( "kr_28.10e", 0x200006, 0x20000, CRC(5f84f92f) SHA1(77b254e8159024490497533073fe302a82531835) , ROM_SKIP(7) ) // == kr_08.10a
+ ROMX_LOAD( "kr_21.10c", 0x200007, 0x20000, CRC(01b35065) SHA1(8a98860ec453ac88a3c0fc19c117bd4131d0c97c) , ROM_SKIP(7) ) // == kr_08.10a
+ ROMX_LOAD( "kr_12.8b", 0x300000, 0x20000, CRC(03d945b1) SHA1(88588891422247e6ab42f35a1b91a5801b8fd5b0) , ROM_SKIP(7) ) // == kr_05.7a
+ ROMX_LOAD( "kr_04.8a", 0x300001, 0x20000, CRC(e30c8388) SHA1(aa519f298f4156b339eb81767ca585e62dc9f4b5) , ROM_SKIP(7) ) // == kr_05.7a
+ ROMX_LOAD( "kr_16.12b", 0x300002, 0x20000, CRC(40c39d1b) SHA1(578d081f5e1bbfdc30b286cdd5165474b3ed79f7) , ROM_SKIP(7) ) // == kr_06.8a
+ ROMX_LOAD( "kr_08.12a", 0x300003, 0x20000, CRC(d310c9e8) SHA1(e23a4b318e7d3d6ea3bc6dd4509f49cd656d3d63) , ROM_SKIP(7) ) // == kr_06.8a
+ ROMX_LOAD( "kr_27.9e", 0x300004, 0x20000, CRC(3e041444) SHA1(7f84158bf2466625ff50befed7e3008b8fe09f70) , ROM_SKIP(7) ) // == kr_07.9a
+ ROMX_LOAD( "kr_20.9c", 0x300005, 0x20000, CRC(bd4bffb8) SHA1(b8f1162427a46ca9d2833390edc5723d28817a08) , ROM_SKIP(7) ) // == kr_07.9a
+ ROMX_LOAD( "kr_29.11e", 0x300006, 0x20000, CRC(1387a076) SHA1(5fe32ee8e8557c5bc6c865b2054f3c6c2a1eae7d) , ROM_SKIP(7) ) // == kr_08.10a
+ ROMX_LOAD( "kr_22.11c", 0x300007, 0x20000, CRC(fd351922) SHA1(7e08a9b23bf524d5fd566d81745aee1cd3a0f026) , ROM_SKIP(7) ) // == kr_08.10a
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "kr_23.13b", 0x00000, 0x08000, CRC(5e44d9ee) SHA1(47a7503321be8d52b5c44af838e3bb82ee15a415) ) // == kr_09.12a
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "kr_30.12c", 0x00000, 0x20000, CRC(da69d15f) SHA1(9616207e693bae85705f786cef60b9f6951b5067) ) // == kr_18.11c
+ ROM_LOAD( "kr_31.13c", 0x20000, 0x20000, CRC(bfc654e9) SHA1(01b3d92e4dedf55ea3933d387c7ddb9ba2549773) ) // == kr_19.12c
+
+ 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( "kr22b.1a", 0x0000, 0x0117, NO_DUMP )
+ ROM_LOAD( "lwio.12e", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 91635B-2 */
+ROM_START( sf2ce )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "s92e_23b.8f", 0x000000, 0x80000, CRC(0aaa1a3a) SHA1(774a2b52f7c1876c0e10d8d57a0850ad2d016cf6) )
+ ROM_LOAD16_WORD_SWAP( "s92_22b.7f", 0x080000, 0x80000, CRC(2bbe15ed) SHA1(a8e2edef62fa99c5ef701b28bfb6bc42f3af183d) )
+ ROM_LOAD16_WORD_SWAP( "s92_21a.6f", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ 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( "s9263b.1a", 0x0000, 0x0117, CRC(0a7ecfe0) SHA1(f75e7eed4604fcf68273197fe3dd7f0d7a313ada) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 91635B-2 */
+ROM_START( sf2ceea )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "s92e_23a.8f", 0x000000, 0x80000, CRC(3f846b74) SHA1(c8d7a01b626771870123f1663a01a81f9c8fe582) )
+ ROM_LOAD16_WORD_SWAP( "s92_22a.7f", 0x080000, 0x80000, CRC(99f1cca4) SHA1(64111eba81d743fc3fd51d7a89cd0b2eefcc900d) )
+ ROM_LOAD16_WORD_SWAP( "s92_21a.6f", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ 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( "s9263b.1a", 0x0000, 0x0117, CRC(0a7ecfe0) SHA1(f75e7eed4604fcf68273197fe3dd7f0d7a313ada) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 91635B-2 */
+ROM_START( sf2ceua )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "s92u_23a.8f", 0x000000, 0x80000, CRC(ac44415b) SHA1(218f8b1886eb72b8547127042b5ae47600e18944) )
+ ROM_LOAD16_WORD_SWAP( "s92_22a.7f", 0x080000, 0x80000, CRC(99f1cca4) SHA1(64111eba81d743fc3fd51d7a89cd0b2eefcc900d) )
+ ROM_LOAD16_WORD_SWAP( "s92_21a.6f", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ 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( "s9263b.1a", 0x0000, 0x0117, CRC(0a7ecfe0) SHA1(f75e7eed4604fcf68273197fe3dd7f0d7a313ada) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 91635B-2 */
+ROM_START( sf2ceub )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "s92u_23b.8f", 0x000000, 0x80000, CRC(996a3015) SHA1(fdf45da54b1c14478a60f2b86e37ffe32a98b135) )
+ ROM_LOAD16_WORD_SWAP( "s92_22b.7f", 0x080000, 0x80000, CRC(2bbe15ed) SHA1(a8e2edef62fa99c5ef701b28bfb6bc42f3af183d) )
+ ROM_LOAD16_WORD_SWAP( "s92_21a.6f", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ 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( "s9263b.1a", 0x0000, 0x0117, CRC(0a7ecfe0) SHA1(f75e7eed4604fcf68273197fe3dd7f0d7a313ada) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 91635B-2 */
+ROM_START( sf2ceuc )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "s92u_23c.8f", 0x000000, 0x80000, CRC(0a8b6aa2) SHA1(a19871271172119e1cf1ff47700bb1917b08514b) )
+ ROM_LOAD16_WORD_SWAP( "s92_22c.7f", 0x080000, 0x80000, CRC(5fd8630b) SHA1(f0ef9c5ab91a4b421fb4b1747eef99c964c15de3) )
+ ROM_LOAD16_WORD_SWAP( "s92_21a.6f", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ 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( "s9263b.1a", 0x0000, 0x0117, CRC(0a7ecfe0) SHA1(f75e7eed4604fcf68273197fe3dd7f0d7a313ada) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 91634B-2 */
+ROM_START( sf2ceja )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "s92j_23a.8f", 0x000000, 0x80000, CRC(4f42bb5a) SHA1(59d0587c554e06ea45d4092ea4299ff086509d4b) )
+ ROM_LOAD16_WORD_SWAP( "s92j_22a.7f", 0x080000, 0x80000, CRC(c4f64bcd) SHA1(262c0419bf727da80c2ac52b877a19276d9aac3c) )
+ ROM_LOAD16_WORD_SWAP( "s92_21a.6f", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92_01.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-1m.3a
+ ROMX_LOAD( "s92_02.4a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-3m.5a
+ ROMX_LOAD( "s92_03.5a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-2m.4a
+ ROMX_LOAD( "s92_04.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-4m.6a
+ ROMX_LOAD( "s92_05.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-5m.7a
+ ROMX_LOAD( "s92_06.8a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-7m.9a
+ ROMX_LOAD( "s92_07.9a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-6m.8a
+ ROMX_LOAD( "s92_08.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-8m.10a
+ ROMX_LOAD( "s92_10.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-10m.3c
+ ROMX_LOAD( "s92_11.4c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-12m.5c
+ ROMX_LOAD( "s92_12.5c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-11m.4c
+ ROMX_LOAD( "s92_13.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-13m.6c
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.12a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) ) // == s92_09.11a
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ 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( "s9263b.1a", 0x0000, 0x0117, CRC(0a7ecfe0) SHA1(f75e7eed4604fcf68273197fe3dd7f0d7a313ada) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 91634B-2 */
+ROM_START( sf2cejb )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "s92j_23b.8f", 0x000000, 0x80000, CRC(140876c5) SHA1(304630e6d8bae9f8d29090e05f7e013c7dafe9cc) )
+ ROM_LOAD16_WORD_SWAP( "s92j_22b.7f", 0x080000, 0x80000, CRC(2fbb3bfe) SHA1(e364564a12022730c2c0d0e8fd435e2c30ef9410) )
+ ROM_LOAD16_WORD_SWAP( "s92_21a.6f", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) ) // could be s92j_21a.6f
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92_01.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-1m.3a
+ ROMX_LOAD( "s92_02.4a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-3m.5a
+ ROMX_LOAD( "s92_03.5a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-2m.4a
+ ROMX_LOAD( "s92_04.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-4m.6a
+ ROMX_LOAD( "s92_05.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-5m.7a
+ ROMX_LOAD( "s92_06.8a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-7m.9a
+ ROMX_LOAD( "s92_07.9a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-6m.8a
+ ROMX_LOAD( "s92_08.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-8m.10a
+ ROMX_LOAD( "s92_10.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-10m.3c
+ ROMX_LOAD( "s92_11.4c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-12m.5c
+ ROMX_LOAD( "s92_12.5c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-11m.4c
+ ROMX_LOAD( "s92_13.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-13m.6c
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.12a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) ) // == s92_09.11a
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ 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( "s9263b.1a", 0x0000, 0x0117, CRC(0a7ecfe0) SHA1(f75e7eed4604fcf68273197fe3dd7f0d7a313ada) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 91634B-2 */
+ROM_START( sf2cejc )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "s92j_23c.8f", 0x000000, 0x80000, CRC(f0120635) SHA1(5e4a9a4b0f65c6139e76ee4ffa02b9db245b1858) )
+ ROM_LOAD16_WORD_SWAP( "s92j_22c.7f", 0x080000, 0x80000, CRC(8c0b2ed6) SHA1(408db039b4dad72b41458723575ed5352b71e10b) )
+ ROM_LOAD16_WORD_SWAP( "s92j_21a.6f", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) ) // == s92_21a.6f
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92_01.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-1m.3a
+ ROMX_LOAD( "s92_02.4a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-3m.5a
+ ROMX_LOAD( "s92_03.5a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-2m.4a
+ ROMX_LOAD( "s92_04.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-4m.6a
+ ROMX_LOAD( "s92_05.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-5m.7a
+ ROMX_LOAD( "s92_06.8a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-7m.9a
+ ROMX_LOAD( "s92_07.9a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-6m.8a
+ ROMX_LOAD( "s92_08.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-8m.10a
+ ROMX_LOAD( "s92_10.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-10m.3c
+ ROMX_LOAD( "s92_11.4c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-12m.5c
+ ROMX_LOAD( "s92_12.5c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-11m.4c
+ ROMX_LOAD( "s92_13.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-13m.6c
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.12a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) ) // == s92_09.11a
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ 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( "s9263b.1a", 0x0000, 0x0117, CRC(0a7ecfe0) SHA1(f75e7eed4604fcf68273197fe3dd7f0d7a313ada) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 91635B-2 */
+ROM_START( sf2bhh )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "23", 0x000000, 0x40000, CRC(5cf63a9e) SHA1(af26165cacb4838572ddf1cd7a2ff22a5dddbf3c) ) // sldh
+ ROM_CONTINUE( 0x0c0000, 0x40000 )
+ ROM_LOAD16_WORD_SWAP( "22", 0x080000, 0x40000, CRC(3ed72bca) SHA1(5565aee82e6b4734c4c0d06a73d8141abb1e4119) ) // sldh
+ ROM_CONTINUE( 0x040000, 0x40000 )
+ ROM_LOAD16_WORD_SWAP( "s92_21a.6f", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ 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( "s9263b.1a", 0x0000, 0x0117, CRC(0a7ecfe0) SHA1(f75e7eed4604fcf68273197fe3dd7f0d7a313ada) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+ROM_START( sf2rb )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD( "sf2d__23.rom", 0x000000, 0x80000, CRC(450532b0) SHA1(14d5ff44ce97247ef4c42147157856d16c5fb4b8) )
+ ROM_LOAD16_WORD( "sf2d__22.rom", 0x080000, 0x80000, CRC(fe9d9cf5) SHA1(91afb25d8c0fd1a721f982cebf8fdf563fe11760) )
+ ROM_LOAD16_WORD_SWAP( "s92_21a.bin", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_10.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_11.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_13.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+ROM_END
+
+ROM_START( sf2rb2 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "27.bin", 0x000000, 0x20000, CRC(40296ecd) SHA1(6006b9bc7e2e8ccec47f87b51791d3c0512620df) )
+ ROM_LOAD16_BYTE( "31.bin", 0x000001, 0x20000, CRC(87954a41) SHA1(67225f180e1f954f0bebba49b618f793a973af14) )
+ ROM_LOAD16_BYTE( "26.bin", 0x040000, 0x20000, CRC(a6974195) SHA1(f7e0fd43bd75229d49d5c330820bdc5c3b11ab03) )
+ ROM_LOAD16_BYTE( "30.bin", 0x040001, 0x20000, CRC(8141fe32) SHA1(e6ea1ee331f674c64e63a776ad4e428f6081c79c) )
+ ROM_LOAD16_BYTE( "25.bin", 0x080000, 0x20000, CRC(9ef8f772) SHA1(3ee271413521cc2d6ac9544e401ff38eff8a1347) )
+ ROM_LOAD16_BYTE( "29.bin", 0x080001, 0x20000, CRC(7d9c479c) SHA1(a1195444caac5230a1f74f3444b024ceaf1d0667) )
+ ROM_LOAD16_BYTE( "24.bin", 0x0c0000, 0x20000, CRC(93579684) SHA1(9052b46f635cae7843e9d37a601db0189a89e0f9) )
+ ROM_LOAD16_BYTE( "28.bin", 0x0c0001, 0x20000, CRC(ff728865) SHA1(ad4522294ff2e02b594d960b45940a3e57a5d1ec) )
+ ROM_LOAD16_WORD_SWAP( "s92_21a.bin", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_10.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_11.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_13.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+ROM_END
+
+/* this rainbow set DOES NOT require a custom PLD to work, runs on standard board with roms replaced */
+ROM_START( sf2rb3 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "sf2_ce_rb.23", 0x000000, 0x80000, CRC(202f9e50) SHA1(8f0259ade1bc4df65abf4ad0961db24ca27e3f4b) )
+ ROM_LOAD16_WORD_SWAP( "sf2_ce_rb.22", 0x080000, 0x80000, CRC(145e5219) SHA1(0b1251ad817a395f37f6c9acee393c3fce07777a) )
+ ROM_LOAD16_WORD_SWAP( "s92_21a.bin", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_10.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_11.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_13.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+ROM_END
+
+ROM_START( sf2red )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "sf2red.23", 0x000000, 0x80000, CRC(40276abb) SHA1(a991661f5a1a3116445594bcfed3150e36971dd7) )
+ ROM_LOAD16_WORD_SWAP( "sf2red.22", 0x080000, 0x80000, CRC(18daf387) SHA1(1a9e4c04ca54e8b33f19dd7bedbe05a200249701) )
+ ROM_LOAD16_WORD_SWAP( "sf2red.21", 0x100000, 0x80000, CRC(52c486bb) SHA1(b7df7b10faa4c9a2f86ebf64cd63ac148d62dd09) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_10.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_11.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_13.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+ROM_END
+
+ROM_START( sf2v004 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "sf2v004.23", 0x000000, 0x80000, CRC(52d19f2c) SHA1(6a77b9244dc9b7d9a0ca8a642d4257cc944ac566) )
+ ROM_LOAD16_WORD_SWAP( "sf2v004.22", 0x080000, 0x80000, CRC(4b26fde7) SHA1(48e3aacbf9147f2374a93e10f945291c87f24855) )
+ ROM_LOAD16_WORD_SWAP( "sf2red.21", 0x100000, 0x80000, CRC(52c486bb) SHA1(b7df7b10faa4c9a2f86ebf64cd63ac148d62dd09) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_10.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_11.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_13.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+ROM_END
+
+ROM_START( sf2acc )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "sf2ca_23-c.bin", 0x000000, 0x80000, CRC(e7c8c5a6) SHA1(247fb38c041f4d516899db32545d8b4d8debc4cf) )
+ ROM_LOAD16_WORD_SWAP( "sf2ca_22-c.bin", 0x080000, 0x80000, CRC(99f1cca4) SHA1(64111eba81d743fc3fd51d7a89cd0b2eefcc900d) )
+ ROM_LOAD16_WORD_SWAP( "sf2ca_21-c.bin", 0x100000, 0x40000, CRC(cf7fcc8c) SHA1(47d338634dd72d1ef912fbdb8c1a7ae945ca1a5f) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_10.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_11.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_13.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+ROM_END
+
+
+
+ROM_START( sf2acca )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "23-c.8f", 0x000000, 0x80000, CRC(35f9517b) SHA1(0976870c65d69a6d8ca0232a48e042588a9ec5d8) )
+ ROM_LOAD16_WORD_SWAP( "22-c.7f", 0x080000, 0x80000, CRC(99f1cca4) SHA1(64111eba81d743fc3fd51d7a89cd0b2eefcc900d) )
+ ROM_LOAD16_WORD_SWAP( "21-c.6f", 0x100000, 0x80000, CRC(2ab2034f) SHA1(4dc90ba524e76529700945605e02068d49b56aba) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_10.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_11.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_13.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+ROM_END
+
+ROM_START( sf2accp2 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "sf2ca-23.bin", 0x000000, 0x80000, CRC(36c3ba2f) SHA1(a3ddc479b725ddb3521757c8efa7aed125004997) )
+ ROM_LOAD16_WORD_SWAP( "sf2ca-22.bin", 0x080000, 0x80000, CRC(0550453d) SHA1(f9efed86528dd10f142636278f098584d33ccde6) )
+ ROM_LOAD16_WORD_SWAP( "sf2ca-21.bin", 0x100000, 0x40000, CRC(4c1c43ba) SHA1(16abce268373eddd7c3b93fe8d44b200a8c140fe) )
+ /* ROM space ends at 13ffff, but the code checks 180ca6 and */
+ /* crashes if it isn't 0 - protection? */
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_10.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_11.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_13.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+ROM_END
+
+
+/*
+SF2' CE "bootleg"
+
+CPS1 motherboard (no dash)
+Original 88622-c-2 C board
+
+Bootleg B board with
+ PIC16c55 near PRG roms seem protected
+ 8 dipswith near both sound roms and gfx roms
+ 1,4,5,8 ON
+ 2,3,6,7 OFF
+
+Sound rom match various romset
+*/
+
+ROM_START( sf2ceblp )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+
+ ROM_LOAD16_BYTE( "prg31.bin", 0x00000, 0x20000, CRC(ea78f9b4) SHA1(967f84615f6ef4d046df3593d5ffce0d43a3ac64) )
+ ROM_LOAD16_BYTE( "prg36.bin", 0x00001, 0x20000, CRC(d30c263e) SHA1(6d8b13f82dde3237115306d91f37ac95b8238e0a) )
+ ROM_LOAD16_BYTE( "prg30.bin", 0x40000, 0x20000, CRC(005b54cc) SHA1(3d3d7742c11f31cc62d81931dc970cd1f4a26835) )
+ ROM_LOAD16_BYTE( "prg35.bin", 0x40001, 0x20000, CRC(c184d26d) SHA1(b1011e869d0b84c1ab609fcf193b46c7d9cc3b28) )
+ ROM_LOAD16_BYTE( "prg29.bin", 0x80000, 0x20000, CRC(524f5c55) SHA1(67adfd36bb325c4a6d3e1e5b668c4dc983ac0a62) )
+ ROM_LOAD16_BYTE( "prg34.bin", 0x80001, 0x20000, CRC(f06a12f2) SHA1(ddc431ce01392d4a7562760743abd9ea73b06cf3) )
+ ROM_LOAD16_BYTE( "prg28.bin", 0xc0000, 0x40000, CRC(b7ad5214) SHA1(17b05e0aa9a4eb5f1aaafe35fa029d2a9aea530d) )
+ ROM_LOAD16_BYTE( "prg33.bin", 0xc0001, 0x40000, CRC(6340b914) SHA1(443e37a06058548c8ce7a15ecd10a6635e69d09f) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "24.bin", 0x000000, 0x40000, CRC(a8b5633a) SHA1(6548a89d616910d06db126eb1a9c6b5979baff03) , ROM_SKIP(7) ) // sldh
+ ROMX_LOAD( "14.bin", 0x000001, 0x40000, CRC(5db24ca7) SHA1(0543e89174fecc866a08e0ecc7c31a6efca15da5) , ROM_SKIP(7) )
+ ROMX_LOAD( "26.bin", 0x000002, 0x40000, CRC(82e8e384) SHA1(a8849bdb97c496777ba87e8f1942585c0fc9a29b) , ROM_SKIP(7) ) // sldh
+ ROMX_LOAD( "16.bin", 0x000003, 0x40000, CRC(1fd98ad0) SHA1(c0edf8ad305d5f8ba72498024cacf28b08491a57) , ROM_SKIP(7) )
+ ROMX_LOAD( "20.bin", 0x000004, 0x40000, CRC(8d5d0045) SHA1(74691132c740cc28585ebe9469fa36fea28c1cef) , ROM_SKIP(7) )
+ ROMX_LOAD( "10.bin", 0x000005, 0x40000, CRC(eb48f7f2) SHA1(f1d269949a8e06434e2206842535d86a70bcf58f) , ROM_SKIP(7) )
+ ROMX_LOAD( "22.bin", 0x000006, 0x40000, CRC(4109d637) SHA1(f7b0961ae3053a0751749ab77f27503e03ae1e5b) , ROM_SKIP(7) )
+ ROMX_LOAD( "12.bin", 0x000007, 0x40000, CRC(5d21d8b3) SHA1(1e75a4bf8d750e0858d70a489b59b50839b8c720) , ROM_SKIP(7) )
+
+ ROMX_LOAD( "25.bin", 0x200000, 0x40000, CRC(72e923df) SHA1(f8db61f8a768fbf99a0be54af712aa19161978d1) , ROM_SKIP(7) ) // sldh
+ ROMX_LOAD( "15.bin", 0x200001, 0x40000, CRC(9a96be48) SHA1(c0a46aefba442196ead30d4f5de2b0370b1c03f0) , ROM_SKIP(7) )
+ ROMX_LOAD( "27.bin", 0x200002, 0x40000, CRC(4a3a8d09) SHA1(eaa7307963c7a5381a4d84a4ebcc483b55cc1411) , ROM_SKIP(7) ) // sldh
+ ROMX_LOAD( "17.bin", 0x200003, 0x40000, CRC(a917a922) SHA1(2186095f8473538756ca22dbdb2c68d17cbf24ab) , ROM_SKIP(7) )
+ ROMX_LOAD( "21.bin", 0x200004, 0x40000, CRC(55c2b455) SHA1(677ac8f988ea3c0564b2dd178ee2ab7077aeafc8) , ROM_SKIP(7) )
+ ROMX_LOAD( "11.bin", 0x200005, 0x40000, CRC(ff36859e) SHA1(7f5ab9daacfdb338913d6bca723efe3128dc931f) , ROM_SKIP(7) )
+ ROMX_LOAD( "23.bin", 0x200006, 0x40000, CRC(ef9c2d4d) SHA1(35c3ab5a3cc3ce2219b596c4c3e97d28b9cc2297) , ROM_SKIP(7) )
+ ROMX_LOAD( "13.bin", 0x200007, 0x40000, CRC(bc937c96) SHA1(772ff4e06093043f693729d8e94e7f8e3f8e866f) , ROM_SKIP(7) )
+
+ ROMX_LOAD( "6.bin", 0x400000, 0x40000, CRC(023baa18) SHA1(671600e629aff1cc161567ee4a5ceb2228731a36) , ROM_SKIP(7) )
+ ROMX_LOAD( "5.bin", 0x400001, 0x40000, CRC(a6ad6ef3) SHA1(c670931a98dfc6ca39d54d8cb8848421232d8c8c) , ROM_SKIP(7) )
+ ROMX_LOAD( "8.bin", 0x400002, 0x40000, CRC(26fb340c) SHA1(270455c10a0c7e4ba95a38ab7d815faedfe51fde) , ROM_SKIP(7) )
+ ROMX_LOAD( "7.bin", 0x400003, 0x40000, CRC(f56085ba) SHA1(ce8c33d7be271a501e770da5249778f62ca0e0a1) , ROM_SKIP(7) )
+ ROMX_LOAD( "1.bin", 0x400004, 0x40000, CRC(877b2b18) SHA1(36ebef5b534d2449b163df38b9a98f769c1d85ed) , ROM_SKIP(7) )
+ ROMX_LOAD( "2.bin", 0x400005, 0x40000, CRC(144aa4c9) SHA1(f00bf10f04ae774dda7e3a1c862aba67f70d61c3) , ROM_SKIP(7) )
+ ROMX_LOAD( "4.bin", 0x400006, 0x40000, CRC(f2c400b4) SHA1(090ff7184cd2a1b992cc9f1f8c03f8832bc11416) , ROM_SKIP(7) )
+ ROMX_LOAD( "3.bin", 0x400007, 0x40000, CRC(8053335d) SHA1(c653cb249401162fbf39f293e1999fe5e09c35c4) , ROM_SKIP(7) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ ROM_REGION( 0x2000, "protectin_pic", 0 )
+ ROM_LOAD( "pic16c55", 0x00000, 0x2000, BAD_DUMP CRC(f22e2311) SHA1(320edfba140728599e91c01e863a8b6d071e4bbf) )
+ROM_END
+
+
+
+ROM_START( sf2cebltw )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "27.12e", 0x000000, 0x20000, CRC(035ee5d9) SHA1(9d268333db96dc6d1539ea938d3b213482e276c6) )
+ ROM_LOAD16_BYTE( "31.12f", 0x000001, 0x20000, CRC(353dbde1) SHA1(039785f8863fda945267fc8b9cf640d954ea9803) )
+ ROM_LOAD16_BYTE( "24.9e", 0x040000, 0x20000, CRC(005b54cc) SHA1(3d3d7742c11f31cc62d81931dc970cd1f4a26835) )
+ ROM_LOAD16_BYTE( "28.9f", 0x040001, 0x20000, CRC(c184d26d) SHA1(b1011e869d0b84c1ab609fcf193b46c7d9cc3b28) )
+ ROM_LOAD16_BYTE( "25.10e", 0x080000, 0x20000, CRC(524f5c55) SHA1(67adfd36bb325c4a6d3e1e5b668c4dc983ac0a62) )
+ ROM_LOAD16_BYTE( "29.10f", 0x080001, 0x20000, CRC(f06a12f2) SHA1(ddc431ce01392d4a7562760743abd9ea73b06cf3) )
+ ROM_LOAD16_BYTE( "26.11e", 0x0c0000, 0x20000, CRC(8312d055) SHA1(e36c23c197096d50d71ceefbf93205d5758153e0) )
+ ROM_LOAD16_BYTE( "30.11f", 0x0c0001, 0x20000, CRC(d0580ff2) SHA1(1b2e4c4abbe90a68283c86e7cb5328b242be5683) )
+ ROM_LOAD16_WORD_SWAP( "s92_21a.5f", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) )
+
+ ROM_REGION( 0x40000, "pal", 0 )
+ ROM_LOAD( "bruteforce.palce16v8h-25.11d", 0x00000, 0x40000, CRC(430f722d) SHA1(b0c0570057c782b1114819fae907f45a01c55065) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_10.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_11.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_13.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+ROM_END
+
+
+
+ROM_START( sf2amf )
+ /* the PCB is not working on real hardware */
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "5.amf", 0x000000, 0x80000, CRC(03991fba) SHA1(6c42bf15248640fdb3e98fb01b0a870649deb410) )
+ ROM_LOAD16_BYTE( "4.amf", 0x000001, 0x80000, CRC(39f15a1e) SHA1(901c4fea76bf5bff7330ed07ffde54cdccdaa680) )
+ /* missing last part(s) of program roms, some gfx loading instructions are missing */
+ ROM_LOAD16_BYTE( "prg part 3.amf", 0x100000, 0x40000, NO_DUMP )
+ ROM_LOAD16_BYTE( "prg part 4.amf", 0x100001, 0x40000, NO_DUMP )
+ /* do not move this outside comments, this is only for testing purpose
+ ROM_LOAD16_BYTE( "u221.rom", 0x100000, 0x20000, CRC(64e6e091) SHA1(32ec05db955e538d4ada26d19ee50926f74b684f) )
+ ROM_LOAD16_BYTE( "u195.rom", 0x100001, 0x20000, CRC(c95e4443) SHA1(28417dee9ccdfa65b0f4a92aa29b90279fe8cd85) )
+ */
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "y.c.e.c m.k.r-001", 0x000000, 0x80000, CRC(a258de13) SHA1(2e477948c4c8a2fb7cfdc4a739766bc4a4e01c49), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000004, 0x80000)
+ ROMX_LOAD( "y.c.e.c m.k.r-003", 0x000002, 0x80000, CRC(c781bf87) SHA1(034baa9807c2ce8dc800200963a38cd9262b21fb), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000006, 0x80000)
+ ROMX_LOAD( "y.c.e.c m.k.r-002", 0x200000, 0x80000, CRC(5726cab8) SHA1(0b2243a9a7184d53d42ddab7a8c51b63001c2f56), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x200004, 0x80000)
+ ROMX_LOAD( "y.c.e.c d.w.c-011", 0x200002, 0x80000, CRC(bc90c12f) SHA1(ecdb776239b22bd56b7c3a87c9e561f650a4dfea), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x200006, 0x80000)
+ ROMX_LOAD( "y.c.e.c d.w.c-012", 0x400000, 0x80000, CRC(187667cc) SHA1(fae65bf23f49a32903fda8080659ccf8d42b911f), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x400004, 0x80000)
+ ROMX_LOAD( "y.c.e.c d.w.c-013", 0x400002, 0x80000, CRC(5b585071) SHA1(ad3371b1ba0441c67d9fcbb23b09464710e4e28a), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x400006, 0x80000)
+ /* extra gfx layer roms loaded over the former ones to remove the capcom copyright logo */
+ ROMX_LOAD( "6.amf", 0x400000, 0x10000, CRC(3a85a275) SHA1(01907d69f912abffe3ad9745638ce3f282cfb2e8), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x400004, 0x10000 )
+ ROMX_LOAD( "9.amf", 0x400002, 0x10000, CRC(9156472f) SHA1(5db2acfc54308d4d26e0459f9486620a968c81d8), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x400006, 0x10000 )
+ ROMX_LOAD( "8.amf", 0x400001, 0x10000, CRC(ecdb083b) SHA1(899894c1db004e98f755ffbdf28d32296b9c0a86), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x400005, 0x10000 )
+ ROMX_LOAD( "10.amf", 0x400003, 0x10000, CRC(8fea8384) SHA1(8b31fd8d16cbafb5144f772653336b41db8f64fc), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x400007, 0x10000 )
+ /* end of extra gfx layer roms */
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "3.amf", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x20000, "user1", 0 ) /* unknown (bootleg priority?) */
+ ROM_LOAD( "7.amf", 0x00000, 0x10000, CRC(13ea1c44) SHA1(5b05fe4c3920e33d94fac5f59e09ff14b3e427fe) )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "2.amf", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "1.amf", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+ROM_END
+
+ROM_START( sf2amf2 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "m5m27c401.u222", 0x000000, 0x80000, CRC(03991fba) SHA1(6c42bf15248640fdb3e98fb01b0a870649deb410) ) // == 5.amf sf2amf
+ ROM_LOAD16_BYTE( "m5m27c401.u196", 0x000001, 0x80000, CRC(39f15a1e) SHA1(901c4fea76bf5bff7330ed07ffde54cdccdaa680) ) // == 4.amf sf2amf
+
+ ROM_LOAD16_BYTE( "27020.u221", 0x100000, 0x40000, CRC(aa4d55a6) SHA1(8fd1c21816886a7734aae42e9336d5f66ddab7bc) ) // different
+ ROM_LOAD16_BYTE( "27020.u195", 0x100001, 0x40000, CRC(2bffa6f9) SHA1(eb1222356d89849edb08ea1898399cf90cf127f5) ) // different
+
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "fun-u70.bin", 0x000004, 0x80000, CRC(a94a8b19) SHA1(49ba9e6032a0b33d7db9fe609710575f2f75e695), ROM_GROUPWORD | ROM_SKIP(6) ) // different
+ ROM_CONTINUE( 0x000000, 0x80000)
+ ROMX_LOAD( "fun-u68.bin", 0x000006, 0x80000, CRC(0405f21f) SHA1(dbebd2c2c46d5aae8db905f2eb51abd4a5c4ea97), ROM_GROUPWORD | ROM_SKIP(6) ) // different
+ ROM_CONTINUE( 0x000002, 0x80000)
+ ROMX_LOAD( "fun-u69.bin", 0x200004, 0x80000, CRC(05dc2043) SHA1(d16b89a48d2dd7cdfafc79567ce1e230d4bd41c1), ROM_GROUPWORD | ROM_SKIP(6) ) // different
+ ROM_CONTINUE( 0x200000, 0x80000)
+ ROMX_LOAD( "fun-u67.bin", 0x200006, 0x80000, CRC(055b64f1) SHA1(3dd68f52b81ed1b300b65c900ef6bfe435d41e4b), ROM_GROUPWORD | ROM_SKIP(6) ) // different
+ ROM_CONTINUE( 0x200002, 0x80000)
+ ROMX_LOAD( "fun-u19.bin", 0x400004, 0x80000, CRC(1a518609) SHA1(18ffca70d6cefb399ba6e3008e5c29dc37de52a0), ROM_GROUPWORD | ROM_SKIP(6) ) // different
+ ROM_CONTINUE( 0x400000, 0x80000)
+ ROMX_LOAD( "fun-u18.bin", 0x400006, 0x80000, CRC(84f9354f) SHA1(ecc190950b1f45b268da380c17859a8d0715b58f), ROM_GROUPWORD | ROM_SKIP(6) ) // different
+ ROM_CONTINUE( 0x400002, 0x80000)
+ /* extra gfx layer roms loaded over the former ones to remove the capcom copyright logo */
+ ROMX_LOAD( "grp1.u31", 0x400004, 0x10000, CRC(6de44671) SHA1(dc6abba639e0c27033e391c7438d88dc89a93351), ROM_SKIP(7) ) // different
+ ROM_CONTINUE( 0x400000, 0x10000 )
+ ROMX_LOAD( "grp3.u29", 0x400006, 0x10000, CRC(e8f14362) SHA1(a20eb75e322011e2a8d8bf2acebe713bef3d3941), ROM_SKIP(7) ) // different
+ ROM_CONTINUE( 0x400002, 0x10000 )
+ ROMX_LOAD( "grp2.u30", 0x400005, 0x10000, CRC(bf0cd819) SHA1(f04a098fce07949277268327871c5e5520e3bb3c), ROM_SKIP(7) ) // different
+ ROM_CONTINUE( 0x400001, 0x10000 )
+ ROMX_LOAD( "grp4.u28", 0x400007, 0x10000, CRC(76f9f91f) SHA1(58a34062d2c8378558a7f1629140330279af9a43), ROM_SKIP(7) ) // different
+ ROM_CONTINUE( 0x400003, 0x10000 )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "27512.u191", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x20000, "user1", 0 ) /* unknown (bootleg priority?) */
+ ROM_LOAD( "27512.u133", 0x00000, 0x10000, CRC(13ea1c44) SHA1(5b05fe4c3920e33d94fac5f59e09ff14b3e427fe) )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "fun-u210.bin", 0x00000, 0x40000, CRC(6cfffb11) SHA1(995526183ffd35f92e9096500a3fe6237faaa2dd) )
+ROM_END
+
+ROM_START( sf2dkot2 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ /* The game reads values from 0x201201 and 0x281201 (at PC=E5452) and uses their difference to form a jump offset. */
+ /* This arrangement seems to work */
+ ROM_LOAD16_WORD_SWAP( "turboii.23", 0x000000, 0x80000, CRC(9bbfe420) SHA1(299ab5625f2d4ebc89bcf19a2b2d88edc8054747) )
+ ROM_RELOAD( 0x280000, 0x80000 )
+ ROM_LOAD16_WORD_SWAP( "turboii.22", 0x080000, 0x80000, CRC(3e57ba19) SHA1(ae8170ac890c14ba7746e29c0f21dfb38c4c9837) )
+ ROM_RELOAD( 0x200000, 0x80000 )
+
+ ROM_LOAD16_WORD_SWAP( "turboii.21", 0x100000, 0x80000, CRC(ed4186bd) SHA1(f3dfe91d8f4384275190b0d86488843c1161d86f) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_10.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_11.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_13.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+ROM_END
+
+ROM_START( sf2m2 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "ch222esp", 0x000000, 0x80000, CRC(9e6d058a) SHA1(8c9adca7b65dc929c325c0a62304d24dc0902c08) )
+ ROM_LOAD16_BYTE( "ch196esp", 0x000001, 0x80000, CRC(ed2ff437) SHA1(e76fc2953b6c800d5955c8fb442b80142e40e375) )
+ ROM_LOAD16_WORD_SWAP( "s92_21a.bin", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_10.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_11.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_13.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+ROM_END
+
+ROM_START( sf2m3 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "u222chp", 0x000000, 0x80000, CRC(db567b66) SHA1(315bfbf2786ef67a95afb87de836ab348523dbbe) )
+ ROM_LOAD16_BYTE( "u196chp", 0x000001, 0x80000, CRC(95ea597e) SHA1(5eb82feaa1de5611a96888e4670744bbb7d90393) )
+ ROM_LOAD16_WORD_SWAP( "s92_21a.bin", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_10.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_11.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_13.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+ROM_END
+
+ROM_START( sf2m4 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "u222ne", 0x000000, 0x80000, CRC(7133489e) SHA1(036ef100c64c6e912c911340b32eea0da0b6f6d9) )
+ ROM_LOAD16_BYTE( "u196ne", 0x000001, 0x80000, CRC(b07a4f90) SHA1(7a4a800bddc43cfa60f9097723b44a05c9d290ae) )
+ ROM_LOAD16_WORD_SWAP( "s92_21a.bin", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_10.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_11.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_13.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+ROM_END
+
+ROM_START( sf2m5 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "u222", 0x000000, 0x80000, CRC(03991fba) SHA1(6c42bf15248640fdb3e98fb01b0a870649deb410) )
+ ROM_LOAD16_BYTE( "u196", 0x000001, 0x80000, CRC(39f15a1e) SHA1(901c4fea76bf5bff7330ed07ffde54cdccdaa680) )
+ ROM_LOAD16_WORD_SWAP( "s92_21a.bin", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_10.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_11.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_13.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+ROM_END
+
+ROM_START( sf2m6 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "u222-6b", 0x000000, 0x80000, CRC(0a3692be) SHA1(7b937b7b0130e460b5f12188b19f464c55b507c9) )
+ ROM_LOAD16_BYTE( "u196-6b", 0x000001, 0x80000, CRC(80454da7) SHA1(64f6dba14d342c9933ce632aa7ca126b34b4ee8b) )
+ ROM_LOAD16_WORD_SWAP( "s92_21a.bin", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_10.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_11.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_13.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+ROM_END
+
+ROM_START( sf2m7 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "u222-2i", 0x000000, 0x40000, CRC(1ca7adbd) SHA1(45e9dc05766ad156edcfc9e59a9804f74f90dc68) )
+ ROM_LOAD16_BYTE( "u196-2i", 0x000001, 0x40000, CRC(f758408c) SHA1(aac44a7287bb3b7ba35d68aff279e265dbd3f6d3) )
+ ROM_LOAD16_BYTE( "u222-2s", 0x080000, 0x40000, CRC(720cea3e) SHA1(ec4f22159d44a8abc40643b986b88a4f947d6aea) )
+ ROM_LOAD16_BYTE( "u196-2s", 0x080001, 0x40000, CRC(9932832c) SHA1(0da0f5ebab91b0759c5fc00902cfe4b12a856466) )
+ ROM_LOAD16_WORD_SWAP( "s92_21a.bin", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_10.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_11.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_13.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+ROM_END
+
+ROM_START( sf2m8 )
+/* unconfirmed if working on real hardware */
+ /* this board has unsupported pals */
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "yyc-2.2", 0x000000, 0x80000, CRC(db567b66) SHA1(315bfbf2786ef67a95afb87de836ab348523dbbe) )
+ ROM_LOAD16_BYTE( "yyc-3.4", 0x000001, 0x80000, CRC(95ea597e) SHA1(5eb82feaa1de5611a96888e4670744bbb7d90393) )
+ ROM_LOAD16_BYTE( "yyc-4.1", 0x100000, 0x20000, CRC(1073b7b6) SHA1(81ca1eab65ceac69520584bb23a684ccb9d92f89) )
+ ROM_LOAD16_BYTE( "yyc-5.3", 0x100001, 0x20000, CRC(924c6ce2) SHA1(676a912652bd75da5087f0c7eae047b7681a993c) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "yyc-a", 0x000000, 0x40000, CRC(8242621f) SHA1(9d566176462bd25f9a377104b0c78a962708bc2b), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000004, 0x40000)
+ ROM_CONTINUE( 0x200000, 0x40000)
+ ROM_CONTINUE( 0x200004, 0x40000)
+ ROMX_LOAD( "yyc-c", 0x000001, 0x40000, CRC(0793a960) SHA1(f351163dd1090f8cd8d4c77e2a29764fee627b13), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000005, 0x40000)
+ ROM_CONTINUE( 0x200001, 0x40000)
+ ROM_CONTINUE( 0x200005, 0x40000)
+ ROMX_LOAD( "yyc-b", 0x000002, 0x40000, CRC(b0159973) SHA1(2a236b9d98fa0acddd844aa94bc5118012a6fb2f), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000006, 0x40000)
+ ROM_CONTINUE( 0x200002, 0x40000)
+ ROM_CONTINUE( 0x200006, 0x40000)
+ ROMX_LOAD( "yyc-d", 0x000003, 0x40000, CRC(92a8b572) SHA1(cbad24e519f0152989764c054da914f55e2b118c), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000007, 0x40000)
+ ROM_CONTINUE( 0x200003, 0x40000)
+ ROM_CONTINUE( 0x200007, 0x40000)
+ /* extra gfx layer roms loaded over the former ones to remove the capcom copyright logo */
+ ROMX_LOAD( "yyc-6.1", 0x400000, 0x10000, CRC(94778332) SHA1(c0b9a05c710b89864ee5df1a53b39de30c994e2d), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x400004, 0x10000 )
+ ROMX_LOAD( "yyc-8.9", 0x400002, 0x10000, CRC(f95bc505) SHA1(385beb2f9f8a473d928d729d722372ae49f410e7), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x400006, 0x10000 )
+ ROMX_LOAD( "yyc-7.10", 0x400001, 0x10000, CRC(d1e452d3) SHA1(794f7ebf6c46c2938a5477451cf05f2e0c7b9049), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x400005, 0x10000 )
+ ROMX_LOAD( "yyc-9.8", 0x400003, 0x10000, CRC(155824a9) SHA1(74d7e86be22c11234f5d9d0b25fa709b59ef471b), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x400007, 0x10000 )
+ /* end of extra gfx layer roms */
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "a-15.5", 0x00000, 0x08000, CRC(6f07d2cb) SHA1(8ef1338d04c1a0b43e24303085105cfdced0bd5e) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x10000, "user1", 0 ) /* unknown (bootleg priority?) */
+ ROM_LOAD( "c-27.7", 0x00000, 0x10000, CRC(13ea1c44) SHA1(5b05fe4c3920e33d94fac5f59e09ff14b3e427fe) )
+
+ ROM_REGION( 0x200000, "user2", 0 )
+ ROM_LOAD( "yyc-e", 0x000000, 0x100000, CRC(61138469) SHA1(dec3b3af6e3f4fedf51600ddf0515f61b2122493) )
+ ROM_LOAD( "yyc-f", 0x100000, 0x100000, CRC(b800dcdb) SHA1(2ec3251b78159b15032d55a5ee5138f159e67190) )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "b-16.6", 0x00000, 0x40000, CRC(6cfffb11) SHA1(995526183ffd35f92e9096500a3fe6237faaa2dd) )
+ROM_END
+
+/* SF2M10
+ From HBMAME (SF2H14)
+ Same as sf2ebbl2, except it has program roms unique to sf2h14.
+
+ Using sf2ce gfx roms to get clean gfx (the board was a bodgy
+ half-done conversion attempt).
+
+** PCB DETAILS ***
+Street Fighter II Champion Edition (bootleg)
+
+PCB Layout
+----------
+
+|-----------------------------------------------------|
+|LM324 ROM1 3.579545MHz ROM10 ROM12|
+|LM324 ROM2 16MHz 2018 ROM9 ROM11|
+| M6295 12MHz 2018 SE235 SE005|
+| 2018 |
+|YM2151 2018 2018 ROM8 |
+| ROM3 SE194 SE064|
+|J Z80 SF004 SF001|
+|A 2018 2018 |
+|M 6116 6116 2018 2018 |
+|M |
+|A |--| |
+| |6 | 62256 |
+|DSWA(8)|8 |62256 62256 62256 |
+| |0 |ROM4 ROM6 |
+|DSWB(8)|0 |ROM5 ROM7 |
+| |0 | |
+|DSWC(8)|--| |
+|-----------------------------------------------------|
+Notes:
+ 68000 - Clock 12MHz
+ Z80 - Clock 3.579545MHz
+ M6295 - Clock 1.000MHz [16/16]. Pin 7 HIGH
+ YM2151 - Clock 3.579545MHz
+ 62256 - 32k x8 SRAM
+ 2018 - 2k x8 SRAM
+ 6116 - 2k x8 SRAM
+*/
+
+ROM_START( sf2m10 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "sf2h14.7", 0x000000, 0x80000, CRC(74803532) SHA1(c1f774bbc4c7b18fcac15417711a86eb852b9957) )
+ ROM_LOAD16_BYTE( "sf2h14.5", 0x000001, 0x80000, CRC(66c91972) SHA1(219aecad1feb60bb758190ea82223171075c858e) )
+ ROM_LOAD16_BYTE( "yyc-4.1", 0x100000, 0x20000, CRC(1073b7b6) SHA1(81ca1eab65ceac69520584bb23a684ccb9d92f89) )
+ ROM_LOAD16_BYTE( "yyc-5.3", 0x100001, 0x20000, CRC(924c6ce2) SHA1(676a912652bd75da5087f0c7eae047b7681a993c) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ // using the proper roms for this program
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+ // and overwrite some gfx with supplied extra roms
+ ROMX_LOAD( "27c1024.10", 0x400000, 0x20000, CRC(84427d1b) SHA1(f988a2b53c8cc46eeb8032084f24966a539b3734) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "27c1024.12", 0x400002, 0x20000, CRC(55bc790c) SHA1(a1114b89f6fa4487210477676984c77ad94b5ef8) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "27c1024.9", 0x400004, 0x20000, CRC(f8725add) SHA1(fa3fcf6637ee4dd7667bd89766074b3c6ba4f166) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "27c1024.11", 0x400006, 0x20000, CRC(c2a5373e) SHA1(602b32e5ecc7007efe9ad30751040ee52b81f59a) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "27c512.3", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x20000, "user1", 0 )
+ ROM_LOAD( "27c512.8", 0x00000, 0x10000, CRC(13ea1c44) SHA1(5b05fe4c3920e33d94fac5f59e09ff14b3e427fe) )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "27c010.2", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "27c010.1", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+ROM_END
+
+ROM_START( sf2yyc )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "b12.rom", 0x000000, 0x80000, CRC(8f742fd5) SHA1(a78a00e686856481011d8b5f5e60ed18197a5225) )
+ ROM_LOAD16_BYTE( "b14.rom", 0x000001, 0x80000, CRC(8831ec7f) SHA1(0293ff189cbacf90098e734fb31fcbf3c3165e6b) )
+ ROM_LOAD16_BYTE( "b11.rom", 0x100000, 0x20000, CRC(94a46525) SHA1(2712b979ce2bfd87e74da3369e0fceaae2a0654c) )
+ ROM_RELOAD( 0x140000, 0x20000 )
+ ROM_LOAD16_BYTE( "b13.rom", 0x100001, 0x20000, CRC(8fb3dd47) SHA1(ebf30ad7ae60eeda446e23bd74f6e2d98dde4158) )
+ ROM_RELOAD( 0x140001, 0x20000 )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_10.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_11.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_13.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+ROM_END
+
+ROM_START( sf2koryu )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "u222.rom", 0x000000, 0x80000, CRC(9236a79a) SHA1(39c47b0b0ca2f5f569ff07ebb91040b95d0cb43b) )
+ ROM_LOAD16_BYTE( "u196.rom", 0x000001, 0x80000, CRC(b23a869d) SHA1(24247d412f20d069919cc8a7fff208af3f7aa1d2) )
+ ROM_LOAD16_BYTE( "u221.rom", 0x100000, 0x20000, CRC(64e6e091) SHA1(32ec05db955e538d4ada26d19ee50926f74b684f) )
+ ROM_LOAD16_BYTE( "u195.rom", 0x100001, 0x20000, CRC(c95e4443) SHA1(28417dee9ccdfa65b0f4a92aa29b90279fe8cd85) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_10.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_11.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_13.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+ROM_END
+
+ROM_START( sf2dongb )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "1.8f", 0x000000, 0x80000, CRC(19fffa37) SHA1(db464c64de3aebe929c85ee167961de05d2c16be) )
+ ROM_LOAD16_WORD_SWAP( "1.7f", 0x080000, 0x80000, CRC(99f1cca4) SHA1(64111eba81d743fc3fd51d7a89cd0b2eefcc900d) ) // same as sf2ceea
+ ROM_LOAD16_WORD_SWAP( "1.6f", 0x100000, 0x80000, CRC(65c2c719) SHA1(d407cae5f04fc8d05776d478a6eb4363b3c36805) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+ROM_END
+
+
+/* B-Board 89625B-1 */
+ROM_START( cworld2j )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "q5_36.12f", 0x00000, 0x20000, CRC(38a08099) SHA1(961f733baa2bbf8419e4de70f18660098dba7d52) )
+ ROM_LOAD16_BYTE( "q5_42.12h", 0x00001, 0x20000, CRC(4d29b3a4) SHA1(bf40fc22c0161fe131ca69100b2a4d102e86bde6) )
+ ROM_LOAD16_BYTE( "q5_37.13f", 0x40000, 0x20000, CRC(eb547ebc) SHA1(fce470b05ce095badd180c3740677146f52f6080) )
+ ROM_LOAD16_BYTE( "q5_43.13h", 0x40001, 0x20000, CRC(3ef65ea8) SHA1(2348d84b380c0e8ebe270a37d4ff3ce5204abc8c) )
+ ROM_LOAD16_BYTE( "q5_34.10f", 0x80000, 0x20000, CRC(7fcc1317) SHA1(672ca45d3fad5eec4d65bbbbd1d21cbf6be4ec8b) )
+ ROM_LOAD16_BYTE( "q5_40.10h", 0x80001, 0x20000, CRC(7f14b7b4) SHA1(5564eb9f65dad76ebe40d12d5c39fec5e246adf0) )
+ ROM_LOAD16_BYTE( "q5_35.11f", 0xc0000, 0x20000, CRC(abacee26) SHA1(2f513c02f715ffeec12a6d1c292619e214155cbc) )
+// ROM_LOAD16_BYTE( "q5_35.11f", 0xc0000, 0x20000, CRC(59961612) SHA1(ded5144746dd9612f2db1415e96a826e215ad176) ) /* dumped from another board, 1 byte different, pcb verified */
+ ROM_LOAD16_BYTE( "q5_41.11h", 0xc0001, 0x20000, CRC(d3654067) SHA1(0b597483e136ff19b031171941cb8439bcd7f145) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "q5_09.4b", 0x000000, 0x20000, CRC(48496d80) SHA1(bdfaca6375c8275b06b2bc170a25ff6aa62394dc) , ROM_SKIP(7) )
+ ROMX_LOAD( "q5_01.4a", 0x000001, 0x20000, CRC(c5453f56) SHA1(113fe6cc6c830352df5992be9fa34c4d70bf32ed) , ROM_SKIP(7) )
+ ROMX_LOAD( "q5_13.9b", 0x000002, 0x20000, CRC(c741ac52) SHA1(d8b4aeacfd62586b98a1381da357dcc5ab16c1c6) , ROM_SKIP(7) )
+ ROMX_LOAD( "q5_05.9a", 0x000003, 0x20000, CRC(143e068f) SHA1(24cdc49c09a9f0c93e04b37cf7ebba09a929c9b0) , ROM_SKIP(7) )
+ ROMX_LOAD( "q5_24.5e", 0x000004, 0x20000, CRC(b419d139) SHA1(46cd97da2413eb5fbd38fa2c20914f3c5f1c6ec8) , ROM_SKIP(7) )
+ ROMX_LOAD( "q5_17.5c", 0x000005, 0x20000, CRC(bd3b4d11) SHA1(bb62169bc52562715878a33cc4f8558e05d581d3) , ROM_SKIP(7) )
+ ROMX_LOAD( "q5_38.8h", 0x000006, 0x20000, CRC(9c24670c) SHA1(3b98078b7360e21b3905fd973e01b88b02090759) , ROM_SKIP(7) )
+ ROMX_LOAD( "q5_32.8f", 0x000007, 0x20000, CRC(3ef9c7c2) SHA1(52a18d7b12f0c14c5cf68a3dd63571e955005f4c) , ROM_SKIP(7) )
+ ROMX_LOAD( "q5_10.5b", 0x100000, 0x20000, CRC(119e5e93) SHA1(b5b6c2e3516ebe555a26ecfb5934f3b65371bf36) , ROM_SKIP(7) )
+ ROMX_LOAD( "q5_02.5a", 0x100001, 0x20000, CRC(a2cadcbe) SHA1(3d1079f62cce628cbc5b810c0bd51c67c87f4eca) , ROM_SKIP(7) )
+ ROMX_LOAD( "q5_14.10b", 0x100002, 0x20000, CRC(a8755f82) SHA1(0a2fbc8b96651f9ab72eb451723e56ca0a859868) , ROM_SKIP(7) )
+ ROMX_LOAD( "q5_06.10a", 0x100003, 0x20000, CRC(c92a91fc) SHA1(dfe9682349cf94be414b7e1895b632de41729194) , ROM_SKIP(7) )
+ ROMX_LOAD( "q5_25.7e", 0x100004, 0x20000, CRC(979237cb) SHA1(9534b05523317a220b3b957a18fec51f1d4e37b3) , ROM_SKIP(7) )
+ ROMX_LOAD( "q5_18.7c", 0x100005, 0x20000, CRC(c57da03c) SHA1(ad7bce859f56d201d229032baf4fb9f65b54765b) , ROM_SKIP(7) )
+ ROMX_LOAD( "q5_39.9h", 0x100006, 0x20000, CRC(a5839b25) SHA1(20c4c4f24f21a325a03538306de799df2a89f6cb) , ROM_SKIP(7) )
+ ROMX_LOAD( "q5_33.9f", 0x100007, 0x20000, CRC(04d03930) SHA1(37f2556eeb52f8edfcddd3f3642fa24565d5a7bd) , ROM_SKIP(7) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "q5_23.13b", 0x00000, 0x08000, CRC(e14dc524) SHA1(0020a9002572002458fbfe45e8a959cb90de3f03) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "q5_30.12c", 0x00000, 0x20000, CRC(d10c1b68) SHA1(2423241f3340d8ab1b6bf9514ca8c3bba1273873) )
+ ROM_LOAD( "q5_31.13c", 0x20000, 0x20000, CRC(7d17e496) SHA1(a274b94ec4f042dddc239ecb9ac2e1e2375f5eb2) )
+
+ 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( "q522b.1a", 0x0000, 0x0117, NO_DUMP )
+ ROM_LOAD( "lwio.12e", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) ) /* seen the same pcb with IOB1.12E */
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ROM_END
+
+/* B-Board 90629B-3 - all roms have 90629B on the labels, no battery, possibly unofficial / desuicided with reproduction stickers */
+ROM_START( cworld2ja )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP("q5 - 34_90629b.8f", 0x00000, 0x80000, CRC(de54487f) SHA1(75b228a6c702c82d4d9a2a992933b5c3c420f6c2) )
+ ROM_LOAD16_WORD_SWAP("q5 - 33_90629b.6f", 0x80000, 0x80000, CRC(93248458) SHA1(9dcdc6838f52efc9a0a6333fd0d734946db12dbd) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "q5 - 06_90629b.8a", 0x000000, 0x80000, CRC(09d0e7ce) SHA1(ea502b975986222acce82ce8396348af72e1df72) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "q5 - 08_90629b.10a", 0x000002, 0x80000, CRC(22e4ce9a) SHA1(9e49aec8e1d6d15a68da63e69765b82fd53a9562) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "q5 - 05_90629b.7a", 0x000004, 0x80000, CRC(f7b3aed6) SHA1(bdfb4d5988307b07ad878ac9129954d14da8769b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "q5 - 07_90629b.9a", 0x000006, 0x80000, CRC(520c6c88) SHA1(19ba8ca3d75aae71cdf471e6307e86a5df8a2851) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "q5 - 09_90629b.12a", 0x00000, 0x08000, CRC(e14dc524) SHA1(0020a9002572002458fbfe45e8a959cb90de3f03) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "q5 - 18_90629b.11c", 0x00000, 0x20000, CRC(d10c1b68) SHA1(2423241f3340d8ab1b6bf9514ca8c3bba1273873) )
+ ROM_LOAD( "q5 - 19_90629b.12c", 0x20000, 0x20000, CRC(7d17e496) SHA1(a274b94ec4f042dddc239ecb9ac2e1e2375f5eb2) )
+
+ 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( "q529b.1a", 0x0000, 0x0117, NO_DUMP )
+ ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ROM_END
+
+/* B-Board 91634B-2 - all roms have 91634B on the labels */
+ROM_START( cworld2jb )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "q5 - 23_91634b.8f", 0x00000, 0x80000, CRC(709f577f) SHA1(3e0615d01f22eb1bf75cbd26dc80ca5a6d08120e) )
+ ROM_LOAD16_WORD_SWAP( "q5 - 22_91634b.7f", 0x80000, 0x80000, CRC(93248458) SHA1(9dcdc6838f52efc9a0a6333fd0d734946db12dbd) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "q5 - 01_91634b.3a", 0x000000, 0x80000, CRC(09d0e7ce) SHA1(ea502b975986222acce82ce8396348af72e1df72) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "q5 - 02_91634b.4a", 0x000002, 0x80000, CRC(22e4ce9a) SHA1(9e49aec8e1d6d15a68da63e69765b82fd53a9562) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "q5 - 03_91634b.5a", 0x000004, 0x80000, CRC(f7b3aed6) SHA1(bdfb4d5988307b07ad878ac9129954d14da8769b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "q5 - 04_91634b.6a", 0x000006, 0x80000, CRC(520c6c88) SHA1(19ba8ca3d75aae71cdf471e6307e86a5df8a2851) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "q5 - 09_91634b.12a", 0x00000, 0x08000, CRC(e14dc524) SHA1(0020a9002572002458fbfe45e8a959cb90de3f03) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "q5 - 18_91634b.11c", 0x00000, 0x20000, CRC(d10c1b68) SHA1(2423241f3340d8ab1b6bf9514ca8c3bba1273873) )
+ ROM_LOAD( "q5 - 19_91634b.12c", 0x20000, 0x20000, CRC(7d17e496) SHA1(a274b94ec4f042dddc239ecb9ac2e1e2375f5eb2) )
+
+ 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( "q563b.1a", 0x0000, 0x0117, NO_DUMP )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 ) // checkme
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 89624B-3 */
+ROM_START( varth )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "vae_30b.11f", 0x00000, 0x20000, CRC(adb8d391) SHA1(5e7160509e0315eb32cc390ddd7e4ef7a4a1a70a) )
+ ROM_LOAD16_BYTE( "vae_35b.11h", 0x00001, 0x20000, CRC(44e5548f) SHA1(17b4be1f4159f6b6803d8c2950823ece0bdde8b2) )
+ ROM_LOAD16_BYTE( "vae_31b.12f", 0x40000, 0x20000, CRC(1749a71c) SHA1(bd9bfd5bbe2d426c94df755c977faa92a28f16ab) )
+ ROM_LOAD16_BYTE( "vae_36b.12h", 0x40001, 0x20000, CRC(5f2e2450) SHA1(676e8d96406d81ceadd4a0a69959cdcb6d5d9ac8) )
+ ROM_LOAD16_BYTE( "vae_28b.9f", 0x80000, 0x20000, CRC(e524ca50) SHA1(487d5ddabe852872f331362034c4fa16e0926e3d) )
+ ROM_LOAD16_BYTE( "vae_33b.9h", 0x80001, 0x20000, CRC(c0bbf8c9) SHA1(447540b856776770af8022a291d46612c1bb5909) )
+ ROM_LOAD16_BYTE( "vae_29b.10f", 0xc0000, 0x20000, CRC(6640996a) SHA1(3ed7bd947dc8224435680dedf4955ed6041c6028) )
+ ROM_LOAD16_BYTE( "vae_34b.10h", 0xc0001, 0x20000, CRC(fa59be8a) SHA1(86a3d3a7126c021e2ca8ac20238695396367e098) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "va-5m.7a", 0x000000, 0x80000, CRC(b1fb726e) SHA1(5ac0876b6c49d0a99710dda68653664f4d8c1167) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "va-7m.9a", 0x000002, 0x80000, CRC(4c6588cd) SHA1(d14e8cf051ac934ccc989d8c571c6cc9eed34af5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "va-1m.3a", 0x000004, 0x80000, CRC(0b1ace37) SHA1(6f9493c22f667f683db2789972fd16bb94724679) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "va-3m.5a", 0x000006, 0x80000, CRC(44dfe706) SHA1(a013a434df3161a91aafbb35dc4e20dfb3f177f4) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "va_09.12b", 0x00000, 0x08000, CRC(7a99446e) SHA1(ca027f41e3e58be5abc33ad7380746658cb5380a) ) // missing sticker, could be va_9.12b
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "va_18.11c", 0x00000, 0x20000, CRC(de30510e) SHA1(8e878696192606b76a3a0e53553e638d9621cff7) )
+ ROM_LOAD( "va_19.12c", 0x20000, 0x20000, CRC(0610a4ac) SHA1(3da02ea6a7a56c85de898806d2a1cf6bc526c1b3) )
+
+ 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( "va24b.1a", 0x0000, 0x0117, CRC(cc476650) SHA1(a417f7971b8709023932fc2b68c9e3cd699ab6f2) )
+ ROM_LOAD( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ROM_END
+
+/* B-Board 89624B-? */
+ROM_START( varthr1 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "vae_30a.11f", 0x00000, 0x20000, CRC(7fcd0091) SHA1(7bed452736eda4a26c43c5dd54ec6799afa6e770) )
+ ROM_LOAD16_BYTE( "vae_35a.11h", 0x00001, 0x20000, CRC(35cf9509) SHA1(a189ca7740d77262413ec2891af034d0057892be) )
+ ROM_LOAD16_BYTE( "vae_31a.12f", 0x40000, 0x20000, CRC(15e5ee81) SHA1(6c6248b07f7e956a37d5dcb4b67d026f57fae13b) )
+ ROM_LOAD16_BYTE( "vae_36a.12h", 0x40001, 0x20000, CRC(153a201e) SHA1(5936e447d5cd02ff13802cf78393b521431ad06c) )
+ ROM_LOAD16_BYTE( "vae_28a.9f", 0x80000, 0x20000, CRC(7a0e0d25) SHA1(203692ef1daeef7ba08b154cf029cc07a2e0e23d) )
+ ROM_LOAD16_BYTE( "vae_33a.9h", 0x80001, 0x20000, CRC(f2365922) SHA1(efb2221033e4b46fedaf3d8c850e208f849e6af0) )
+ ROM_LOAD16_BYTE( "vae_29a.10f", 0xc0000, 0x20000, CRC(5e2cd2c3) SHA1(eff955c7dc0d8ae215e7188cc4865726104c7777) )
+ ROM_LOAD16_BYTE( "vae_34a.10h", 0xc0001, 0x20000, CRC(3d9bdf83) SHA1(d655803a6f07b90e44aacaa3e6059ac330ef2ec6) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "va-5m.7a", 0x000000, 0x80000, CRC(b1fb726e) SHA1(5ac0876b6c49d0a99710dda68653664f4d8c1167) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "va-7m.9a", 0x000002, 0x80000, CRC(4c6588cd) SHA1(d14e8cf051ac934ccc989d8c571c6cc9eed34af5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "va-1m.3a", 0x000004, 0x80000, CRC(0b1ace37) SHA1(6f9493c22f667f683db2789972fd16bb94724679) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "va-3m.5a", 0x000006, 0x80000, CRC(44dfe706) SHA1(a013a434df3161a91aafbb35dc4e20dfb3f177f4) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "va_09.12b", 0x00000, 0x08000, CRC(7a99446e) SHA1(ca027f41e3e58be5abc33ad7380746658cb5380a) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "va_18.11c", 0x00000, 0x20000, CRC(de30510e) SHA1(8e878696192606b76a3a0e53553e638d9621cff7) )
+ ROM_LOAD( "va_19.12c", 0x20000, 0x20000, CRC(0610a4ac) SHA1(3da02ea6a7a56c85de898806d2a1cf6bc526c1b3) )
+
+ 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( "va24b.1a", 0x0000, 0x0117, CRC(cc476650) SHA1(a417f7971b8709023932fc2b68c9e3cd699ab6f2) )
+ ROM_LOAD( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ROM_END
+
+/* B-Board 91635B-2 */
+ROM_START( varthu )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "vau_23a.8f", 0x00000, 0x80000, CRC(fbe68726) SHA1(68917d366551d2203400adc3261355dd3b332bcb) )
+ ROM_LOAD16_WORD_SWAP( "vau_22a.7f", 0x80000, 0x80000, CRC(0ed71bbd) SHA1(e7f0f0edf0936a774e122842b09f5c5ce25a96ad) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "va-5m.3a", 0x000000, 0x80000, CRC(b1fb726e) SHA1(5ac0876b6c49d0a99710dda68653664f4d8c1167) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket // == va-5m.7a
+ ROMX_LOAD( "va-7m.5a", 0x000002, 0x80000, CRC(4c6588cd) SHA1(d14e8cf051ac934ccc989d8c571c6cc9eed34af5) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket // == va-7m.9a
+ ROMX_LOAD( "va-1m.4a", 0x000004, 0x80000, CRC(0b1ace37) SHA1(6f9493c22f667f683db2789972fd16bb94724679) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket // == va-1m.3a
+ ROMX_LOAD( "va-3m.6a", 0x000006, 0x80000, CRC(44dfe706) SHA1(a013a434df3161a91aafbb35dc4e20dfb3f177f4) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket // == va-3m.5a
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "va_09.11a", 0x00000, 0x08000, CRC(7a99446e) SHA1(ca027f41e3e58be5abc33ad7380746658cb5380a) ) // == va_09.12b
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "va_18.11c", 0x00000, 0x20000, CRC(de30510e) SHA1(8e878696192606b76a3a0e53553e638d9621cff7) )
+ ROM_LOAD( "va_19.12c", 0x20000, 0x20000, CRC(0610a4ac) SHA1(3da02ea6a7a56c85de898806d2a1cf6bc526c1b3) )
+
+ 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( "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
+
+/* B-Board 88622B-3 */
+ROM_START( varthj )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "vaj_36b.12f", 0x00000, 0x20000, CRC(1d798d6a) SHA1(b12579e9dcb88416bc00653b143832d9347adbaf) )
+ ROM_LOAD16_BYTE( "vaj_42b.12h", 0x00001, 0x20000, CRC(0f720233) SHA1(2d9442ceafd5e2208aa8cd4bcb66861bff6aec47) )
+ ROM_LOAD16_BYTE( "vaj_37b.13f", 0x40000, 0x20000, CRC(24414b17) SHA1(6c0b24cf8045fc033217c737dba2c046d7d0a09a) )
+ ROM_LOAD16_BYTE( "vaj_43b.13h", 0x40001, 0x20000, CRC(34b4b06c) SHA1(3033d1d053ba97d6da17064d7b944a10817b93b1) )
+ ROM_LOAD16_BYTE( "vaj_34b.10f", 0x80000, 0x20000, CRC(87c79aed) SHA1(bb90720d1d04ed6ad276a5230cb078229aa8a40a) )
+ ROM_LOAD16_BYTE( "vaj_40b.10h", 0x80001, 0x20000, CRC(210b4bd0) SHA1(15771c32af9fb4760953ef5475de228200851b42) )
+ ROM_LOAD16_BYTE( "vaj_35b.11f", 0xc0000, 0x20000, CRC(6b0da69f) SHA1(5883bea31a22a44ad7494d6acd523c88b62f8743) )
+ ROM_LOAD16_BYTE( "vaj_41b.11h", 0xc0001, 0x20000, CRC(6542c8a4) SHA1(5f828cf28ef905e4701c92f317e1257a40964a65) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "va_09.4b", 0x000000, 0x20000, CRC(183dfaa8) SHA1(230c65c1b11b3a5d1733455e0130dad2740e2d2d) , ROM_SKIP(7) ) // == va-5m.7a
+ ROMX_LOAD( "va_01.4a", 0x000001, 0x20000, CRC(c41312b5) SHA1(4077cb8200fc403953a08d94652fa8f572dc202d) , ROM_SKIP(7) ) // == va-5m.7a
+ ROMX_LOAD( "va_13.9b", 0x000002, 0x20000, CRC(45537e69) SHA1(18581cbf09b1ec35ea388dce73db7099a1790f60) , ROM_SKIP(7) ) // == va-7m.9a
+ ROMX_LOAD( "va_05.9a", 0x000003, 0x20000, CRC(7065d4e9) SHA1(0e16b4ba2309cca609eaa906c99c61172ca273d0) , ROM_SKIP(7) ) // == va-7m.9a
+ ROMX_LOAD( "va_24.5e", 0x000004, 0x20000, CRC(57191ccf) SHA1(8247b6ca36dd114ea2d030141ce48ea881ea648c) , ROM_SKIP(7) ) // == va-1m.3a
+ ROMX_LOAD( "va_17.5c", 0x000005, 0x20000, CRC(054f5a5b) SHA1(28fc6ff2144daad18b5aed8c08d0b65e6fc2b06f) , ROM_SKIP(7) ) // == va-1m.3a
+ ROMX_LOAD( "va_38.8h", 0x000006, 0x20000, CRC(e117a17e) SHA1(576ec580050e9ce3e3be96b849247288411ff68c) , ROM_SKIP(7) ) // == va-3m.5a
+ ROMX_LOAD( "va_32.8f", 0x000007, 0x20000, CRC(3b4f40b2) SHA1(7033d0f754381fe8d5ed29b58ebbd665a0ba1725) , ROM_SKIP(7) ) // == va-3m.5a
+ ROMX_LOAD( "va_10.5b", 0x100000, 0x20000, CRC(d62750cd) SHA1(0b792f806ed5ab7f6ec0c53bb9bf9965d7ddc47e) , ROM_SKIP(7) ) // == va-5m.7a
+ ROMX_LOAD( "va_02.5a", 0x100001, 0x20000, CRC(11590325) SHA1(9d776f4008db76f8f141db5024a3eed78e364b6a) , ROM_SKIP(7) ) // == va-5m.7a
+ ROMX_LOAD( "va_14.10b", 0x100002, 0x20000, CRC(dc2f4783) SHA1(f9c274d1ab24159980f29db7da5bcc179761237f) , ROM_SKIP(7) ) // == va-7m.9a
+ ROMX_LOAD( "va_06.10a", 0x100003, 0x20000, CRC(06e833ac) SHA1(e8df6e2ef8300b5e412dd74cfe329b5535056e62) , ROM_SKIP(7) ) // == va-7m.9a
+ ROMX_LOAD( "va_25.7e", 0x100004, 0x20000, CRC(51d90690) SHA1(9079d56007aae257f56ce47bbb24873dc18c5bd6) , ROM_SKIP(7) ) // == va-1m.3a
+ ROMX_LOAD( "va_18.7c", 0x100005, 0x20000, CRC(a17817c0) SHA1(23d9ae2ae68e4c8be72da7013109ecdfc30d4b53) , ROM_SKIP(7) ) // == va-1m.3a
+ ROMX_LOAD( "va_39.9h", 0x100006, 0x20000, CRC(b0b12f51) SHA1(68a33736dcb0703e46ba48918a29ecd559575a97) , ROM_SKIP(7) ) // == va-3m.5a
+ ROMX_LOAD( "va_33.9f", 0x100007, 0x20000, CRC(4b003af7) SHA1(0c1d18a3ee7f3a48219f73eb21f88a260a9a001e) , ROM_SKIP(7) ) // == va-3m.5a
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "va_23.13c", 0x00000, 0x08000, CRC(7a99446e) SHA1(ca027f41e3e58be5abc33ad7380746658cb5380a) ) // == va_09.12b
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "va_30.12e", 0x00000, 0x20000, CRC(de30510e) SHA1(8e878696192606b76a3a0e53553e638d9621cff7) ) // == va_18.11c
+ ROM_LOAD( "va_31.13e", 0x20000, 0x20000, CRC(0610a4ac) SHA1(3da02ea6a7a56c85de898806d2a1cf6bc526c1b3) ) // == va_19.12c
+
+ 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( "va22b.1a", 0x0000, 0x0117, CRC(bd7cd574) SHA1(00e49631aceb2871e9313f40264fa55eaaa3538c) )
+ ROM_LOAD( "lwio.12c", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ROM_END
+
+/* B-Board 91634B-2, Japan Resale Ver. */
+ROM_START( varthjr )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "vaj_23b.8f", 0x00000, 0x80000, CRC(ad3d3522) SHA1(db627233f9d8a03c2d4bb31614951a0cdc81600d) )
+ ROM_LOAD16_WORD_SWAP( "vaj_22b.7f", 0x80000, 0x80000, CRC(034e3e55) SHA1(eeb85a827cf18dafbdf0a2828aa39128352857f3) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "va_01.3a", 0x000000, 0x80000, CRC(b1fb726e) SHA1(5ac0876b6c49d0a99710dda68653664f4d8c1167) , ROM_GROUPWORD | ROM_SKIP(6) ) // == va-5m.7a
+ ROMX_LOAD( "va_02.4a", 0x000002, 0x80000, CRC(4c6588cd) SHA1(d14e8cf051ac934ccc989d8c571c6cc9eed34af5) , ROM_GROUPWORD | ROM_SKIP(6) ) // == va-7m.9a
+ ROMX_LOAD( "va_03.5a", 0x000004, 0x80000, CRC(0b1ace37) SHA1(6f9493c22f667f683db2789972fd16bb94724679) , ROM_GROUPWORD | ROM_SKIP(6) ) // == va-1m.3a
+ ROMX_LOAD( "va_04.6a", 0x000006, 0x80000, CRC(44dfe706) SHA1(a013a434df3161a91aafbb35dc4e20dfb3f177f4) , ROM_GROUPWORD | ROM_SKIP(6) ) // == va-3m.5a
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "va_09.12a", 0x00000, 0x08000, CRC(7a99446e) SHA1(ca027f41e3e58be5abc33ad7380746658cb5380a) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "va_18.11c", 0x00000, 0x20000, CRC(de30510e) SHA1(8e878696192606b76a3a0e53553e638d9621cff7) )
+ ROM_LOAD( "va_19.12c", 0x20000, 0x20000, CRC(0610a4ac) SHA1(3da02ea6a7a56c85de898806d2a1cf6bc526c1b3) )
+
+ 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( "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_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ROM_END
+
+/* B-Board 89625B-1 */
+ROM_START( qad )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "qdu_36a.12f", 0x00000, 0x20000, CRC(de9c24a0) SHA1(458962943e8d97d1f4e5a15ac1c8d3bcaa32918b) )
+ ROM_LOAD16_BYTE( "qdu_42a.12h", 0x00001, 0x20000, CRC(cfe36f0c) SHA1(370a47461b2dbb7807f547f5b4b33296572c5d78) )
+ ROM_LOAD16_BYTE( "qdu_37a.13f", 0x40000, 0x20000, CRC(10d22320) SHA1(73b2876d5447f50a850c466789d9297269f732d6) )
+ ROM_LOAD16_BYTE( "qdu_43a.13h", 0x40001, 0x20000, CRC(15e6beb9) SHA1(68d11e9bdd82775060281c5880f249e3515dc235) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "qd_09.4b", 0x000000, 0x20000, CRC(8c3f9f44) SHA1(b5ab20515b7f3e7db023be42d4c7ed1941b37d9b) , ROM_SKIP(7) )
+ ROMX_LOAD( "qd_01.4a", 0x000001, 0x20000, CRC(f688cf8f) SHA1(1b20095e536a24406513715cded249c9be1aa1d2) , ROM_SKIP(7) )
+ ROMX_LOAD( "qd_13.9b", 0x000002, 0x20000, CRC(afbd551b) SHA1(02e2f12196c542a004325689bda8949213ef0333) , ROM_SKIP(7) )
+ ROMX_LOAD( "qd_05.9a", 0x000003, 0x20000, CRC(c3db0910) SHA1(cf3aa3d3b64031dea92a80e5650151315cf871bf) , ROM_SKIP(7) )
+ ROMX_LOAD( "qd_24.5e", 0x000004, 0x20000, CRC(2f1bd0ec) SHA1(017e0dc521bf402c700775ee06cbc124f7ce0e3f) , ROM_SKIP(7) )
+ ROMX_LOAD( "qd_17.5c", 0x000005, 0x20000, CRC(a812f9e2) SHA1(9b7ceb347fbe00c40338b97ee6e8e4d1db9e7cb3) , ROM_SKIP(7) )
+ ROMX_LOAD( "qd_38.8h", 0x000006, 0x20000, CRC(ccdddd1f) SHA1(8304c4cdfaa1ae6b37e2733e9a6ddce9252fd43a) , ROM_SKIP(7) )
+ ROMX_LOAD( "qd_32.8f", 0x000007, 0x20000, CRC(a8d295d3) SHA1(d4d0bdaeb40f652ef33b317cb2b566b4c3550242) , ROM_SKIP(7) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "qd_23.13b", 0x00000, 0x08000, CRC(cfb5264b) SHA1(e662ed5555d02ccf4e62cdbcfa0bbfc019734ee1) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "qdu_30.12c", 0x00000, 0x20000, CRC(f190da84) SHA1(d5cd4c69b5d135a2f2fea8ca9631251c9da79e70) )
+ ROM_LOAD( "qdu_31.13c", 0x20000, 0x20000, CRC(b7583f73) SHA1(3896e0fcf375e9e5d9ba70cc1ed001cd702f9ff7) )
+
+ 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( "qd22b.1a", 0x0000, 0x0117, CRC(783c53ab) SHA1(1bf87e5fe7e7cbcec0d76ed094dcac823e45af14) )
+ ROM_LOAD( "iob1.12e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) ) /* seen the same pcb with LWIO.12E */
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ROM_END
+
+/* B-Board 91634B-2, Japan Resale Ver. */
+ROM_START( qadjr )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "qad_23a.8f", 0x00000, 0x80000, CRC(4d3553de) SHA1(07eabcb02fbbe11397ce91405a2e6bb53b3d5d4f) )
+ ROM_LOAD16_WORD_SWAP( "qad_22a.7f", 0x80000, 0x80000, CRC(3191ddd0) SHA1(2806021a5dc809ca43692bbe9c4f5ef690c9ac14) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "qad_01.3a", 0x000000, 0x80000, CRC(9d853b57) SHA1(380b41a3eced1f4a5523999b63d80b7593a85eca) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "qad_02.4a", 0x000002, 0x80000, CRC(b35976c4) SHA1(3e128db89186c4e88c46be9da310b755ae5b816c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "qad_03.5a", 0x000004, 0x80000, CRC(cea4ca8c) SHA1(5c50758647419129f2b35ab4dc712796fa801c12) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "qad_04.6a", 0x000006, 0x80000, CRC(41b74d1b) SHA1(78aa2faec512c505f98b4e8053fc161941d41773) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "qad_09.12a", 0x00000, 0x08000, CRC(733161cc) SHA1(dfb8c5a1037bd3b2712fb327122ec39ceb993b8d) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "qad_18.11c", 0x00000, 0x20000, CRC(2bfe6f6a) SHA1(b2a98ac034c65b7ac8167431f05f35d4799032ea) )
+ ROM_LOAD( "qad_19.12c", 0x20000, 0x20000, CRC(13d3236b) SHA1(785d49de484e9ac6971eaceebebfecb8e58563f6) )
+
+ 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( "qad63b.1a", 0x0000, 0x0117, CRC(b3312b13) SHA1(24bd6235fe273a672de2d4749e57280994f11819) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 91635B-2 */
+ROM_START( wof )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "tk2e_23c.8f", 0x000000, 0x80000, CRC(0d708505) SHA1(10b8cb53a4600e3e76f471a3eee8a600e93096fc) )
+ ROM_LOAD16_WORD_SWAP( "tk2e_22c.7f", 0x080000, 0x80000, CRC(608c17e3) SHA1(52c2d05279623d93b27856e6b76830796a089eae) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-5m.7a", 0x200000, 0x80000, CRC(291f0f0b) SHA1(094baf0f960f25fc2525b3b1cc378a49d9a0955d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-7m.9a", 0x200002, 0x80000, CRC(3edeb949) SHA1(c155698dd9ee9eb24bbc97a21118ef2e897ea82f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-6m.8a", 0x200004, 0x80000, CRC(1abd14d6) SHA1(dffff3126f102b4ec028a81405fc5b9bd7bb65b3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-8m.10a", 0x200006, 0x80000, CRC(b27948e3) SHA1(870d5d23f56798831c641e877ea94217058b2ddc) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ 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( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) )
+ ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) )
+
+ ROM_REGION( 0x0200, "bboardplds", 0 )
+ ROM_LOAD( "tk263b.1a", 0x0000, 0x0117, CRC(c4b0349b) SHA1(b4873dd5ad8735048deb3475222dde3c0b67eaaf) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+
+ ROM_REGION( 0x0200, "dboardplds", 0 )
+ ROM_LOAD( "d7l1.7l", 0x0000, 0x0117, CRC(27b7410d) SHA1(06d0cba0226850f100ff1f539bd7d5db0f90c730) )
+ ROM_LOAD( "d8l1.8l", 0x0000, 0x0117, CRC(539fc7da) SHA1(cad5c91629c6247e49ccbbcbfe6b08229eafae07) )
+ ROM_LOAD( "d9k1.9k", 0x0000, 0x0117, NO_DUMP ) // pal verification required
+ ROM_LOAD( "d10f1.10f", 0x0000, 0x0117, CRC(6619c494) SHA1(3aef656c07182a2186f810f30e0d854dd5bd8d18) )
+ROM_END
+
+/* B-Board 91635B-2 */
+/* FIXME Probably this set uses a patched program ROM coming from a desuicided board, or simply the original C-Board
+ is not a 92641C-1. A verification and a new fresh dump are needed to confirm if it's genuine or not. */
+ROM_START( wofr1 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "tk2e_23b.8f", 0x000000, 0x80000, CRC(11fb2ed1) SHA1(19e09ad6f9edc7997b030cddfe1d9c96d88135f2) ) // patched?
+ ROM_LOAD16_WORD_SWAP( "tk2e_22b.7f", 0x080000, 0x80000, CRC(479b3f24) SHA1(9fb8ae06856fe115addfb6794c28978a4f6716ec) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-5m.7a", 0x200000, 0x80000, CRC(291f0f0b) SHA1(094baf0f960f25fc2525b3b1cc378a49d9a0955d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-7m.9a", 0x200002, 0x80000, CRC(3edeb949) SHA1(c155698dd9ee9eb24bbc97a21118ef2e897ea82f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-6m.8a", 0x200004, 0x80000, CRC(1abd14d6) SHA1(dffff3126f102b4ec028a81405fc5b9bd7bb65b3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-8m.10a", 0x200006, 0x80000, CRC(b27948e3) SHA1(870d5d23f56798831c641e877ea94217058b2ddc) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ 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( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) )
+ ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) )
+
+ ROM_REGION( 0x0200, "bboardplds", 0 )
+ ROM_LOAD( "tk263b.1a", 0x0000, 0x0117, CRC(c4b0349b) SHA1(b4873dd5ad8735048deb3475222dde3c0b67eaaf) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+
+ ROM_REGION( 0x0200, "dboardplds", 0 )
+ ROM_LOAD( "d7l1.7l", 0x0000, 0x0117, CRC(27b7410d) SHA1(06d0cba0226850f100ff1f539bd7d5db0f90c730) )
+ ROM_LOAD( "d8l1.8l", 0x0000, 0x0117, CRC(539fc7da) SHA1(cad5c91629c6247e49ccbbcbfe6b08229eafae07) )
+ ROM_LOAD( "d9k1.9k", 0x0000, 0x0117, NO_DUMP ) // pal verification required
+ ROM_LOAD( "d10f1.10f", 0x0000, 0x0117, CRC(6619c494) SHA1(3aef656c07182a2186f810f30e0d854dd5bd8d18) )
+ROM_END
+
+/* B-Board 91635B-2 */
+ROM_START( wofu )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "tk2u_23c.8f", 0x000000, 0x80000, CRC(29b89c12) SHA1(2b474b4f45a4ccb0db2a4d5e7ef30e28b5c6cc3a) )
+ ROM_LOAD16_WORD_SWAP( "tk2u_22c.7f", 0x080000, 0x80000, CRC(f5af4774) SHA1(f6d53cf5b330e6d68f84da3e8c831a475585b93e) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-5m.7a", 0x200000, 0x80000, CRC(291f0f0b) SHA1(094baf0f960f25fc2525b3b1cc378a49d9a0955d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-7m.9a", 0x200002, 0x80000, CRC(3edeb949) SHA1(c155698dd9ee9eb24bbc97a21118ef2e897ea82f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-6m.8a", 0x200004, 0x80000, CRC(1abd14d6) SHA1(dffff3126f102b4ec028a81405fc5b9bd7bb65b3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-8m.10a", 0x200006, 0x80000, CRC(b27948e3) SHA1(870d5d23f56798831c641e877ea94217058b2ddc) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ 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( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) )
+ ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) )
+
+ ROM_REGION( 0x0200, "bboardplds", 0 )
+ ROM_LOAD( "tk263b.1a", 0x0000, 0x0117, CRC(c4b0349b) SHA1(b4873dd5ad8735048deb3475222dde3c0b67eaaf) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+
+ ROM_REGION( 0x0200, "dboardplds", 0 )
+ ROM_LOAD( "d7l1.7l", 0x0000, 0x0117, CRC(27b7410d) SHA1(06d0cba0226850f100ff1f539bd7d5db0f90c730) )
+ ROM_LOAD( "d8l1.8l", 0x0000, 0x0117, CRC(539fc7da) SHA1(cad5c91629c6247e49ccbbcbfe6b08229eafae07) )
+ ROM_LOAD( "d9k1.9k", 0x0000, 0x0117, NO_DUMP )
+ ROM_LOAD( "d10f1.10f", 0x0000, 0x0117, CRC(6619c494) SHA1(3aef656c07182a2186f810f30e0d854dd5bd8d18) )
+ROM_END
+
+/* B-Board 91634B-2 */
+/* Note that this Asia set seems to be the only one where GFX are stored into MASK ROMs instead of the usual EPROMs. */
+/* FIXME Probably this set uses a patched program ROM coming from a desuicided board, or simply the original C-Board
+ is not a 92641C-1. A verification and a new fresh dump are needed to confirm if it's genuine or not. */
+ROM_START( wofa )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "tk2a_23c.8f", 0x000000, 0x80000, CRC(2e024628) SHA1(647f8700fe3b410d798a823bac2e4a89cc9ad8d5) ) // patched?
+ ROM_LOAD16_WORD_SWAP( "tk2a_22c.7f", 0x080000, 0x80000, CRC(900ad4cd) SHA1(988007447f93f3467029b9c29fd9670a7ecadaa3) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-5m.7a", 0x200000, 0x80000, CRC(291f0f0b) SHA1(094baf0f960f25fc2525b3b1cc378a49d9a0955d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-7m.9a", 0x200002, 0x80000, CRC(3edeb949) SHA1(c155698dd9ee9eb24bbc97a21118ef2e897ea82f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-6m.8a", 0x200004, 0x80000, CRC(1abd14d6) SHA1(dffff3126f102b4ec028a81405fc5b9bd7bb65b3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-8m.10a", 0x200006, 0x80000, CRC(b27948e3) SHA1(870d5d23f56798831c641e877ea94217058b2ddc) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ 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( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) )
+ ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) )
+
+ ROM_REGION( 0x0200, "bboardplds", 0 )
+ ROM_LOAD( "tk263b.1a", 0x0000, 0x0117, CRC(c4b0349b) SHA1(b4873dd5ad8735048deb3475222dde3c0b67eaaf) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+
+ ROM_REGION( 0x0200, "dboardplds", 0 )
+ ROM_LOAD( "d7l1.7l", 0x0000, 0x0117, CRC(27b7410d) SHA1(06d0cba0226850f100ff1f539bd7d5db0f90c730) )
+ ROM_LOAD( "d8l1.8l", 0x0000, 0x0117, CRC(539fc7da) SHA1(cad5c91629c6247e49ccbbcbfe6b08229eafae07) )
+ ROM_LOAD( "d9k1.9k", 0x0000, 0x0117, NO_DUMP )
+ ROM_LOAD( "d10f1.10f", 0x0000, 0x0117, CRC(6619c494) SHA1(3aef656c07182a2186f810f30e0d854dd5bd8d18) )
+ROM_END
+
+/* B-Board 91634B-2 */
+ROM_START( wofj )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "tk2j_23c.8f", 0x000000, 0x80000, CRC(9b215a68) SHA1(fc83ed26441fbfb15e21b093c7a6bed44b586e51) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2_01.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-1m.3a
+ ROMX_LOAD( "tk2_02.4a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-3m.5a
+ ROMX_LOAD( "tk2_03.5a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-2m.4a
+ ROMX_LOAD( "tk2_04.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-4m.6a
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ 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( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) )
+ ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) )
+
+ ROM_REGION( 0x0200, "bboardplds", 0 )
+ ROM_LOAD( "tk263b.1a", 0x0000, 0x0117, CRC(c4b0349b) SHA1(b4873dd5ad8735048deb3475222dde3c0b67eaaf) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+
+ ROM_REGION( 0x0200, "dboardplds", 0 )
+ ROM_LOAD( "d7l1.7l", 0x0000, 0x0117, CRC(27b7410d) SHA1(06d0cba0226850f100ff1f539bd7d5db0f90c730) )
+ ROM_LOAD( "d8l1.8l", 0x0000, 0x0117, CRC(539fc7da) SHA1(cad5c91629c6247e49ccbbcbfe6b08229eafae07) )
+ ROM_LOAD( "d9k1.9k", 0x0000, 0x0117, NO_DUMP ) // pal verification required
+ ROM_LOAD( "d10f1.10f", 0x0000, 0x0117, CRC(6619c494) SHA1(3aef656c07182a2186f810f30e0d854dd5bd8d18) )
+ROM_END
+
+/* Chinese bootleg board without QSound */
+ROM_START( wofhfh )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "23", 0x000000, 0x80000, CRC(6ae4b312) SHA1(fa39f69385d180d90bccd8c5dc9262edd04a6457) )
+ ROM_LOAD16_WORD_SWAP( "22", 0x080000, 0x80000, CRC(94e8d01a) SHA1(875763f6b22734c1a5a890e6c8063515c134045b) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "1", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "2", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "3", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "4", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "5", 0x200000, 0x80000, CRC(34949d7b) SHA1(90925a77b08c97cfdbf0dbfbdaa359d1b33b6ae4) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "6", 0x200002, 0x80000, CRC(dfa70971) SHA1(477b99687de38220f0aec9fbba44db03f72cb62a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "7", 0x200004, 0x80000, CRC(073686a6) SHA1(b774a8d4c6cdbedb123ac01455f718305f23b619) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "8", 0x200006, 0x80000, CRC(5300f8db) SHA1(b23a19910f680d60ff8afcbc15c471e74ee3569a) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* 128k for the audio CPU (+banks) */
+ ROM_LOAD( "9", 0x00000, 0x08000, CRC(86fe8a97) SHA1(cab82bcd0f49bcb40201b439cfdd10266f46752a) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* samples */
+ ROM_LOAD( "18", 0x00000, 0x20000, CRC(c04be720) SHA1(2e544e0a0358b6afbdf826d35d9c4c59e4787a93) )
+ ROM_LOAD( "19", 0x20000, 0x20000, CRC(fbb8d8c1) SHA1(8a7689bb7ed56243333133cbacf01a0ae825201e) )
+ROM_END
+
+/* B-Board 91635B-2 */
+ROM_START( sf2hf )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "s2te_23.8f", 0x000000, 0x80000, CRC(2dd72514) SHA1(4411353c389669299c27ac183c7e1caa3d4cec90) )
+ ROM_LOAD16_WORD_SWAP( "s2te_22.7f", 0x080000, 0x80000, CRC(aea6e035) SHA1(ce5fe961b2c1c95d231d1235bfc03b47de489f2a) )
+ ROM_LOAD16_WORD_SWAP( "s2te_21.6f", 0x100000, 0x80000, CRC(fd200288) SHA1(3817b67ab77c7b3d4a573a63f18671bea6905e26) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ 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( "s9263b.1a", 0x0000, 0x0117, CRC(0a7ecfe0) SHA1(f75e7eed4604fcf68273197fe3dd7f0d7a313ada) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 91635B-2 */
+ROM_START( sf2hfu )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "s2tu_23.8f", 0x000000, 0x80000, CRC(89a1fc38) SHA1(aafb40fc311e318250973be8c6aa0d3f7902cb3c) )
+ ROM_LOAD16_WORD_SWAP( "s2tu_22.7f", 0x080000, 0x80000, CRC(aea6e035) SHA1(ce5fe961b2c1c95d231d1235bfc03b47de489f2a) ) // == s2te_22.7f
+ ROM_LOAD16_WORD_SWAP( "s2tu_21.6f", 0x100000, 0x80000, CRC(fd200288) SHA1(3817b67ab77c7b3d4a573a63f18671bea6905e26) ) // == s2te_21.6f
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ 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( "s9263b.1a", 0x0000, 0x0117, CRC(0a7ecfe0) SHA1(f75e7eed4604fcf68273197fe3dd7f0d7a313ada) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 91634B-2 */
+ROM_START( sf2hfj )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "s2tj_23.8f", 0x000000, 0x80000, CRC(ea73b4dc) SHA1(efbc73277d00bac86505755db35225e14ea25a36) )
+ ROM_LOAD16_WORD_SWAP( "s2tj_22.7f", 0x080000, 0x80000, CRC(aea6e035) SHA1(ce5fe961b2c1c95d231d1235bfc03b47de489f2a) ) // == s2te_22.7f
+ ROM_LOAD16_WORD_SWAP( "s2tj_21.6f", 0x100000, 0x80000, CRC(fd200288) SHA1(3817b67ab77c7b3d4a573a63f18671bea6905e26) ) // == s2te_21.6f
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92_01.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-1m.3a
+ ROMX_LOAD( "s92_02.4a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-3m.5a
+ ROMX_LOAD( "s92_03.5a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-2m.4a
+ ROMX_LOAD( "s92_04.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-4m.6a
+ ROMX_LOAD( "s92_05.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-5m.7a
+ ROMX_LOAD( "s92_06.8a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-7m.9a
+ ROMX_LOAD( "s92_07.9a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-6m.8a
+ ROMX_LOAD( "s92_08.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) ) // == s92-8m.10a
+ ROMX_LOAD( "s2t_10.3c", 0x400000, 0x80000, CRC(3c042686) SHA1(307e1ca8ad0b11f3265b7e5467ba4c90f90ec97f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s2t_11.4c", 0x400002, 0x80000, CRC(8b7e7183) SHA1(c8eaedfbddbf0b83311d2dbb9e19a1efef0dffa9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s2t_12.5c", 0x400004, 0x80000, CRC(293c888c) SHA1(5992ea9aa90fdd8b9dacca9d2a1fdaf25ac2cb65) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s2t_13.6c", 0x400006, 0x80000, CRC(842b35a4) SHA1(35864a140a0c8d76501e69b2e01bc4ad76f27909) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.12a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) ) // == s92_09.11a
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ 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( "s9263b.1a", 0x0000, 0x0117, CRC(0a7ecfe0) SHA1(f75e7eed4604fcf68273197fe3dd7f0d7a313ada) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 91635B-2 */
+ROM_START( dino )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "cde_23a.8f", 0x000000, 0x80000, CRC(8f4e585e) SHA1(55ecba3652066cdafad140c4524b1fc81228e69b) )
+ ROM_LOAD16_WORD_SWAP( "cde_22a.7f", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) )
+ ROM_LOAD16_WORD_SWAP( "cde_21a.6f", 0x100000, 0x80000, CRC(66d23de2) SHA1(19b8a365f630411d524d055459020f4c8cf930f1) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ 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( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) )
+ ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) )
+
+ ROM_REGION( 0x0200, "bboardplds", 0 )
+ ROM_LOAD( "cd63b.1a", 0x0000, 0x0117, CRC(ef72e902) SHA1(82fea3f63869c245d0dce2809085208fe719b57a) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+
+ ROM_REGION( 0x0200, "dboardplds", 0 )
+ ROM_LOAD( "d7l1.7l", 0x0000, 0x0117, CRC(27b7410d) SHA1(06d0cba0226850f100ff1f539bd7d5db0f90c730) )
+ ROM_LOAD( "d8l1.8l", 0x0000, 0x0117, CRC(539fc7da) SHA1(cad5c91629c6247e49ccbbcbfe6b08229eafae07) )
+ ROM_LOAD( "d9k2.9k", 0x0000, 0x0117, CRC(cd85a156) SHA1(a88f8939c5d93e65d7bcc0eb3ee5b6f4f1114e3a) )
+ ROM_LOAD( "d10f1.10f", 0x0000, 0x0117, CRC(6619c494) SHA1(3aef656c07182a2186f810f30e0d854dd5bd8d18) )
+ROM_END
+
+/* B-Board 91635B-2 */
+ROM_START( dinou )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "cdu_23a.8f", 0x000000, 0x80000, CRC(7c2543cd) SHA1(6b7a90392fe4c31b2d57620b0ddcb3412401efc3) )
+ ROM_LOAD16_WORD_SWAP( "cdu_22a.7f", 0x080000, 0x80000, CRC(d19f981e) SHA1(acb951caba3867c21149286185b94beb37721bd2) )
+ ROM_LOAD16_WORD_SWAP( "cdu_21a.6f", 0x100000, 0x80000, CRC(66d23de2) SHA1(19b8a365f630411d524d055459020f4c8cf930f1) ) // == cde_21a.6f
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ 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( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) )
+ ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) )
+
+ ROM_REGION( 0x0200, "bboardplds", 0 )
+ ROM_LOAD( "cd63b.1a", 0x0000, 0x0117, CRC(ef72e902) SHA1(82fea3f63869c245d0dce2809085208fe719b57a) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+
+ ROM_REGION( 0x0200, "dboardplds", 0 )
+ ROM_LOAD( "d7l1.7l", 0x0000, 0x0117, CRC(27b7410d) SHA1(06d0cba0226850f100ff1f539bd7d5db0f90c730) )
+ ROM_LOAD( "d8l1.8l", 0x0000, 0x0117, CRC(539fc7da) SHA1(cad5c91629c6247e49ccbbcbfe6b08229eafae07) )
+ ROM_LOAD( "d9k2.9k", 0x0000, 0x0117, CRC(cd85a156) SHA1(a88f8939c5d93e65d7bcc0eb3ee5b6f4f1114e3a) )
+ ROM_LOAD( "d10f1.10f", 0x0000, 0x0117, CRC(6619c494) SHA1(3aef656c07182a2186f810f30e0d854dd5bd8d18) )
+ROM_END
+
+/* B-Board 91634B-2 */
+ROM_START( dinoj )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "cdj_23a.8f", 0x000000, 0x80000, CRC(5f3ece96) SHA1(33ffb08ff8c5d3bfb2fa17fa00f254da2fc61f44) )
+ ROM_LOAD16_WORD_SWAP( "cdj_22a.7f", 0x080000, 0x80000, CRC(a0d8de29) SHA1(79d916f181804b6176581efe2a1b7f210ec79c07) )
+ ROM_LOAD16_WORD_SWAP( "cdj_21a.6f", 0x100000, 0x80000, CRC(66d23de2) SHA1(19b8a365f630411d524d055459020f4c8cf930f1) ) // == cde_21a.6f
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd_01.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cd-1m.3a
+ ROMX_LOAD( "cd_02.4a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cd-3m.5a
+ ROMX_LOAD( "cd_03.5a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cd-2m.4a
+ ROMX_LOAD( "cd_04.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cd-4m.6a
+ ROMX_LOAD( "cd_05.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cd-5m.7a
+ ROMX_LOAD( "cd_06.8a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cd-7m.9a
+ ROMX_LOAD( "cd_07.9a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cd-6m.8a
+ ROMX_LOAD( "cd_08.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cd-8m.10a
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ 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( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) )
+ ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) )
+
+ ROM_REGION( 0x0200, "bboardplds", 0 )
+ ROM_LOAD( "cd63b.1a", 0x0000, 0x0117, CRC(ef72e902) SHA1(82fea3f63869c245d0dce2809085208fe719b57a) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+
+ ROM_REGION( 0x0200, "dboardplds", 0 )
+ ROM_LOAD( "d7l1.7l", 0x0000, 0x0117, CRC(27b7410d) SHA1(06d0cba0226850f100ff1f539bd7d5db0f90c730) )
+ ROM_LOAD( "d8l1.8l", 0x0000, 0x0117, CRC(539fc7da) SHA1(cad5c91629c6247e49ccbbcbfe6b08229eafae07) )
+ ROM_LOAD( "d9k2.9k", 0x0000, 0x0117, CRC(cd85a156) SHA1(a88f8939c5d93e65d7bcc0eb3ee5b6f4f1114e3a) )
+ ROM_LOAD( "d10f1.10f", 0x0000, 0x0117, CRC(6619c494) SHA1(3aef656c07182a2186f810f30e0d854dd5bd8d18) )
+ROM_END
+
+/* Chinese bootleg board */
+ROM_START( dinohunt )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "u23", 0x000000, 0x80000, CRC(8d5ddc5d) SHA1(3ed1da71d73425308d0c3ac1a01a7242e60b6677) )
+ ROM_LOAD16_WORD_SWAP( "u22", 0x080000, 0x80000, CRC(f72cd219) SHA1(a3f580bd328b54d2546ae7e94262c1a706d27172) )
+ ROM_LOAD16_WORD_SWAP( "u21", 0x100000, 0x80000, CRC(bc275b76) SHA1(1f7f7533b4ccb511dc479f531d9d6740d3ca6712) )
+ ROM_LOAD16_WORD_SWAP( "u20", 0x180000, 0x80000, CRC(8987c975) SHA1(3fd856805d627f855f72acc7aacc2e8ecf0f12bd) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "u1", 0x000000, 0x80000, CRC(a01a9fb5) SHA1(d1ab4c7ead04932c60923363a0a661d0d1472aaa) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "u2", 0x000002, 0x80000, CRC(bdf02c17) SHA1(046ba4c589a22a7ac65c86baaae18eff0bff6ecb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "u3", 0x000004, 0x80000, CRC(058beefa) SHA1(0d09ab5a200643b5a16e0313228f7ea243752bd0) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "u4", 0x000006, 0x80000, CRC(5028a9f1) SHA1(ff3a988153860e76beb79918ad896e702c3ecd3d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "u5", 0x200000, 0x80000, CRC(d77f89ea) SHA1(1dd8c2a18742fd8483ecade31aed384c686ed244) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "u6", 0x200002, 0x80000, CRC(bfbcb034) SHA1(c1eb4d420b10ffa05197d9a82c7adac4d265c546) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "u7", 0x200004, 0x80000, CRC(a2544d4e) SHA1(def704055e041bc7c3b8cf7977249b69aa7924a8) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "u8", 0x200006, 0x80000, CRC(8869bbb1) SHA1(e53f77baffb913bf3ef5396d84fbfbaec6a90ca2) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "u9", 0x00000, 0x08000, CRC(2eb16a83) SHA1(067ea0bfc2c1e73520d6b836c72fbb9da9998311) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* samples */
+ ROM_LOAD( "u18", 0x00000, 0x20000, CRC(8d2899ba) SHA1(0b3ac6cf2ce0323e3bfc9da3ebfcb0fd14bc405b) )
+ ROM_LOAD( "u19", 0x20000, 0x20000, CRC(b34a4b42) SHA1(3eeb9e33bb911359e03d44949ac58439a3d3d54b) )
+ROM_END
+
+/* B-Board 91635B-2 */
+ROM_START( punisher )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "pse_26.11e", 0x000000, 0x20000, CRC(389a99d2) SHA1(e97f4225554e4603cb0e3edd296a90bb2e467ca7) )
+ ROM_LOAD16_BYTE( "pse_30.11f", 0x000001, 0x20000, CRC(68fb06ac) SHA1(189e25ca7e4aaa80492c03ce06696952cc1b1553) )
+ ROM_LOAD16_BYTE( "pse_27.12e", 0x040000, 0x20000, CRC(3eb181c3) SHA1(a2442449f4bbe3be03d2be7d4e2cbb69f9741dac) )
+ ROM_LOAD16_BYTE( "pse_31.12f", 0x040001, 0x20000, CRC(37108e7b) SHA1(78aaa6e2913e6b1b852b39416557ac4a394d7d8b) )
+ ROM_LOAD16_BYTE( "pse_24.9e", 0x080000, 0x20000, CRC(0f434414) SHA1(aaacf835a93551fc792571d6e824a01f3c5d4469) )
+ ROM_LOAD16_BYTE( "pse_28.9f", 0x080001, 0x20000, CRC(b732345d) SHA1(472d84f846e9f73f129562d78352376194e0211e) )
+ ROM_LOAD16_BYTE( "pse_25.10e", 0x0c0000, 0x20000, CRC(b77102e2) SHA1(2e39b2c2c0eed5ca2320a57e69bcf377f809a20c) )
+ ROM_LOAD16_BYTE( "pse_29.10f", 0x0c0001, 0x20000, CRC(ec037bce) SHA1(f86e7feb63d7662a38048e6d51d7b5a69dafaffb) )
+ ROM_LOAD16_WORD_SWAP( "ps_21.6f", 0x100000, 0x80000, CRC(8affa5a9) SHA1(268760b83b1723ff50a019ec51ef7af2e49935bf) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "ps-1m.3a", 0x000000, 0x80000, CRC(77b7ccab) SHA1(e08e5d55a79e4c0c8ca819d6d7d2a14f753c6ec3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps-3m.5a", 0x000002, 0x80000, CRC(0122720b) SHA1(5f0d3097e097f64106048156fbb0d343fe78fffa) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps-2m.4a", 0x000004, 0x80000, CRC(64fa58d4) SHA1(d4a774285ed15273195b6b26d2965ce370e54e73) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps-4m.6a", 0x000006, 0x80000, CRC(60da42c8) SHA1(95eec4a58d9628a2d9764951dd8dc11e4860a899) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps-5m.7a", 0x200000, 0x80000, CRC(c54ea839) SHA1(0733f37329edd9d0cace1319a7544b40aa7ecb0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps-7m.9a", 0x200002, 0x80000, CRC(04c5acbd) SHA1(fddc94b0f36d4d22d7c357856ae15b7514c342d3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps-6m.8a", 0x200004, 0x80000, CRC(a544f4cc) SHA1(9552df8934ba25f19a22f2e07783712d8c8ef03c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps-8m.10a", 0x200006, 0x80000, CRC(8f02f436) SHA1(a2f0ebb7e9593469c7b843f8962a66f3d77f79e5) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "ps_q.5k", 0x00000, 0x08000, CRC(49ff4446) SHA1(87af12f87a940a6c5428b4574ad44a4b54867bc3) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "ps-q1.1k", 0x000000, 0x80000, CRC(31fd8726) SHA1(1d73a76682e9fb908db0c55b9a18163f7539fea1) )
+ ROM_LOAD( "ps-q2.2k", 0x080000, 0x80000, CRC(980a9eef) SHA1(36571381f349bc726508a7e618ba1c635ec9d271) )
+ ROM_LOAD( "ps-q3.3k", 0x100000, 0x80000, CRC(0dd44491) SHA1(903cea1d7f3120545ea3229d30fbd687d11ad68f) )
+ ROM_LOAD( "ps-q4.4k", 0x180000, 0x80000, CRC(bed42f03) SHA1(21302f7e75f9c795392a3b34e16a959fc5f6e4e9) )
+
+ 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( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) )
+ ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) )
+
+ ROM_REGION( 0x0200, "bboardplds", 0 )
+ ROM_LOAD( "ps63b.1a", 0x0000, 0x0117, NO_DUMP )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+
+ ROM_REGION( 0x0200, "dboardplds", 0 )
+ ROM_LOAD( "d7l1.7l", 0x0000, 0x0117, CRC(27b7410d) SHA1(06d0cba0226850f100ff1f539bd7d5db0f90c730) )
+ ROM_LOAD( "d8l1.8l", 0x0000, 0x0117, CRC(539fc7da) SHA1(cad5c91629c6247e49ccbbcbfe6b08229eafae07) )
+ ROM_LOAD( "d9k2.9k", 0x0000, 0x0117, CRC(cd85a156) SHA1(a88f8939c5d93e65d7bcc0eb3ee5b6f4f1114e3a) )
+ ROM_LOAD( "d10f1.10f", 0x0000, 0x0117, CRC(6619c494) SHA1(3aef656c07182a2186f810f30e0d854dd5bd8d18) )
+ROM_END
+
+/* B-Board 91635B-2 */
+ROM_START( punisheru )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE ( "psu_26.11e", 0x000000, 0x20000, CRC(9236d121) SHA1(52d5d00009f61089157319943cde8f1a1ed48ad4) )
+ ROM_LOAD16_BYTE ( "psu_30.11f", 0x000001, 0x20000, CRC(8320e501) SHA1(bb3b74135df9dd494a277a1bc3bef2917351203f) )
+ ROM_LOAD16_BYTE ( "psu_27.12e", 0x040000, 0x20000, CRC(61c960a1) SHA1(f8fe651283cc1f138d013cab65b833505de6df9f) )
+ ROM_LOAD16_BYTE ( "psu_31.12f", 0x040001, 0x20000, CRC(78d4c298) SHA1(6e7fbaed9ad9230a6e5035c6eda64b2f1f83048c) )
+ ROM_LOAD16_BYTE ( "psu_24.9e", 0x080000, 0x20000, CRC(1cfecad7) SHA1(f4dcf5066dc59507cece0c53ccc208e4323ae26f) )
+ ROM_LOAD16_BYTE ( "psu_28.9f", 0x080001, 0x20000, CRC(bdf921c1) SHA1(89a6709756c7c32e7c888806f983ce5af61cfcef) )
+ ROM_LOAD16_BYTE ( "psu_25.10e", 0x0c0000, 0x20000, CRC(c51acc94) SHA1(34ffd6392914e3e67d7d0804215bd1193846b554) )
+ ROM_LOAD16_BYTE ( "psu_29.10f", 0x0c0001, 0x20000, CRC(52dce1ca) SHA1(45277abe34feacdcaedaec56f513b7437d4260e9) )
+ ROM_LOAD16_WORD_SWAP( "ps_21.6f", 0x100000, 0x80000, CRC(8affa5a9) SHA1(268760b83b1723ff50a019ec51ef7af2e49935bf) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "ps-1m.3a", 0x000000, 0x80000, CRC(77b7ccab) SHA1(e08e5d55a79e4c0c8ca819d6d7d2a14f753c6ec3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps-3m.5a", 0x000002, 0x80000, CRC(0122720b) SHA1(5f0d3097e097f64106048156fbb0d343fe78fffa) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps-2m.4a", 0x000004, 0x80000, CRC(64fa58d4) SHA1(d4a774285ed15273195b6b26d2965ce370e54e73) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps-4m.6a", 0x000006, 0x80000, CRC(60da42c8) SHA1(95eec4a58d9628a2d9764951dd8dc11e4860a899) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps-5m.7a", 0x200000, 0x80000, CRC(c54ea839) SHA1(0733f37329edd9d0cace1319a7544b40aa7ecb0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps-7m.9a", 0x200002, 0x80000, CRC(04c5acbd) SHA1(fddc94b0f36d4d22d7c357856ae15b7514c342d3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps-6m.8a", 0x200004, 0x80000, CRC(a544f4cc) SHA1(9552df8934ba25f19a22f2e07783712d8c8ef03c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps-8m.10a", 0x200006, 0x80000, CRC(8f02f436) SHA1(a2f0ebb7e9593469c7b843f8962a66f3d77f79e5) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "ps_q.5k", 0x00000, 0x08000, CRC(49ff4446) SHA1(87af12f87a940a6c5428b4574ad44a4b54867bc3) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "ps-q1.1k", 0x000000, 0x80000, CRC(31fd8726) SHA1(1d73a76682e9fb908db0c55b9a18163f7539fea1) )
+ ROM_LOAD( "ps-q2.2k", 0x080000, 0x80000, CRC(980a9eef) SHA1(36571381f349bc726508a7e618ba1c635ec9d271) )
+ ROM_LOAD( "ps-q3.3k", 0x100000, 0x80000, CRC(0dd44491) SHA1(903cea1d7f3120545ea3229d30fbd687d11ad68f) )
+ ROM_LOAD( "ps-q4.4k", 0x180000, 0x80000, CRC(bed42f03) SHA1(21302f7e75f9c795392a3b34e16a959fc5f6e4e9) )
+
+ 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( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) )
+ ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) )
+
+ ROM_REGION( 0x0200, "bboardplds", 0 )
+ ROM_LOAD( "ps63b.1a", 0x0000, 0x0117, NO_DUMP )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+
+ ROM_REGION( 0x0200, "dboardplds", 0 )
+ ROM_LOAD( "d7l1.7l", 0x0000, 0x0117, CRC(27b7410d) SHA1(06d0cba0226850f100ff1f539bd7d5db0f90c730) )
+ ROM_LOAD( "d8l1.8l", 0x0000, 0x0117, CRC(539fc7da) SHA1(cad5c91629c6247e49ccbbcbfe6b08229eafae07) )
+ ROM_LOAD( "d9k2.9k", 0x0000, 0x0117, CRC(cd85a156) SHA1(a88f8939c5d93e65d7bcc0eb3ee5b6f4f1114e3a) )
+ ROM_LOAD( "d10f1.10f", 0x0000, 0x0117, CRC(6619c494) SHA1(3aef656c07182a2186f810f30e0d854dd5bd8d18) )
+ROM_END
+
+/* B-Board 91635B-2 */
+ROM_START( punisherh )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "psh_26.11e", 0x000000, 0x20000, CRC(6ad2bb83) SHA1(c1c5e8922af948955f53eb56d1b9902dd8944a71) )
+ ROM_LOAD16_BYTE( "psh_30.11f", 0x000001, 0x20000, CRC(058d3659) SHA1(b3fad151f80e0cc21afff3ec00b7871f21d40437) )
+ ROM_LOAD16_BYTE( "psh_27.12e", 0x040000, 0x20000, CRC(579f4fd3) SHA1(5459da68e844db6e6249186aa31fe71aa72d9ff4) )
+ ROM_LOAD16_BYTE( "psh_31.12f", 0x040001, 0x20000, CRC(2c9f70b5) SHA1(c5d89f37def4b9340a0325e616306f0e9e68ab13) )
+ ROM_LOAD16_BYTE( "psh_24.9e", 0x080000, 0x20000, CRC(faa14841) SHA1(d998f1cdfba3305eb1398909d4b07e7492dbdec0) )
+ ROM_LOAD16_BYTE( "psh_28.9f", 0x080001, 0x20000, CRC(5c5b1f20) SHA1(47ee27dc9849a69c54a5a0e269b20e61f17f34c0) )
+ ROM_LOAD16_BYTE( "psh_25.10e", 0x0c0000, 0x20000, CRC(724fdfda) SHA1(23d75e7864dfa0da8c2231785878fb05a5aac628) )
+ ROM_LOAD16_BYTE( "psh_29.10f", 0x0c0001, 0x20000, CRC(779cf901) SHA1(6761edcf26084e44783f3eecd5822e50f1a099bd) )
+ ROM_LOAD16_WORD_SWAP( "ps_21.6f", 0x100000, 0x80000, CRC(8affa5a9) SHA1(268760b83b1723ff50a019ec51ef7af2e49935bf) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "ps-1m.3a", 0x000000, 0x80000, CRC(77b7ccab) SHA1(e08e5d55a79e4c0c8ca819d6d7d2a14f753c6ec3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps-3m.5a", 0x000002, 0x80000, CRC(0122720b) SHA1(5f0d3097e097f64106048156fbb0d343fe78fffa) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps-2m.4a", 0x000004, 0x80000, CRC(64fa58d4) SHA1(d4a774285ed15273195b6b26d2965ce370e54e73) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps-4m.6a", 0x000006, 0x80000, CRC(60da42c8) SHA1(95eec4a58d9628a2d9764951dd8dc11e4860a899) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps-5m.7a", 0x200000, 0x80000, CRC(c54ea839) SHA1(0733f37329edd9d0cace1319a7544b40aa7ecb0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps-7m.9a", 0x200002, 0x80000, CRC(04c5acbd) SHA1(fddc94b0f36d4d22d7c357856ae15b7514c342d3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps-6m.8a", 0x200004, 0x80000, CRC(a544f4cc) SHA1(9552df8934ba25f19a22f2e07783712d8c8ef03c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps-8m.10a", 0x200006, 0x80000, CRC(8f02f436) SHA1(a2f0ebb7e9593469c7b843f8962a66f3d77f79e5) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "ps_q.5k", 0x00000, 0x08000, CRC(49ff4446) SHA1(87af12f87a940a6c5428b4574ad44a4b54867bc3) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "ps-q1.1k", 0x000000, 0x80000, CRC(31fd8726) SHA1(1d73a76682e9fb908db0c55b9a18163f7539fea1) )
+ ROM_LOAD( "ps-q2.2k", 0x080000, 0x80000, CRC(980a9eef) SHA1(36571381f349bc726508a7e618ba1c635ec9d271) )
+ ROM_LOAD( "ps-q3.3k", 0x100000, 0x80000, CRC(0dd44491) SHA1(903cea1d7f3120545ea3229d30fbd687d11ad68f) )
+ ROM_LOAD( "ps-q4.4k", 0x180000, 0x80000, CRC(bed42f03) SHA1(21302f7e75f9c795392a3b34e16a959fc5f6e4e9) )
+
+ 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( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) )
+ ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) )
+
+ ROM_REGION( 0x0200, "bboardplds", 0 )
+ ROM_LOAD( "ps63b.1a", 0x0000, 0x0117, NO_DUMP )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+
+ ROM_REGION( 0x0200, "dboardplds", 0 )
+ ROM_LOAD( "d7l1.7l", 0x0000, 0x0117, CRC(27b7410d) SHA1(06d0cba0226850f100ff1f539bd7d5db0f90c730) )
+ ROM_LOAD( "d8l1.8l", 0x0000, 0x0117, CRC(539fc7da) SHA1(cad5c91629c6247e49ccbbcbfe6b08229eafae07) )
+ ROM_LOAD( "d9k2.9k", 0x0000, 0x0117, CRC(cd85a156) SHA1(a88f8939c5d93e65d7bcc0eb3ee5b6f4f1114e3a) )
+ ROM_LOAD( "d10f1.10f", 0x0000, 0x0117, CRC(6619c494) SHA1(3aef656c07182a2186f810f30e0d854dd5bd8d18) )
+ROM_END
+
+/* B-Board 91634B-2 */
+ROM_START( punisherj )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "psj_23.8f", 0x000000, 0x80000, CRC(6b2fda52) SHA1(5f95a79b7b802609ae9ddd6641cc52610d428bf4) )
+ ROM_LOAD16_WORD_SWAP( "psj_22.7f", 0x080000, 0x80000, CRC(e01036bc) SHA1(a01886014dabe8f9ab45619865c6bd9f27472eae) )
+ ROM_LOAD16_WORD_SWAP( "psj_21.6f", 0x100000, 0x80000, CRC(8affa5a9) SHA1(268760b83b1723ff50a019ec51ef7af2e49935bf) ) // == ps_21.6f
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "ps_01.3a", 0x000000, 0x80000, CRC(77b7ccab) SHA1(e08e5d55a79e4c0c8ca819d6d7d2a14f753c6ec3) , ROM_GROUPWORD | ROM_SKIP(6) ) // == ps-1m.3a
+ ROMX_LOAD( "ps_02.4a", 0x000002, 0x80000, CRC(0122720b) SHA1(5f0d3097e097f64106048156fbb0d343fe78fffa) , ROM_GROUPWORD | ROM_SKIP(6) ) // == ps-3m.5a
+ ROMX_LOAD( "ps_03.5a", 0x000004, 0x80000, CRC(64fa58d4) SHA1(d4a774285ed15273195b6b26d2965ce370e54e73) , ROM_GROUPWORD | ROM_SKIP(6) ) // == ps-2m.4a
+ ROMX_LOAD( "ps_04.6a", 0x000006, 0x80000, CRC(60da42c8) SHA1(95eec4a58d9628a2d9764951dd8dc11e4860a899) , ROM_GROUPWORD | ROM_SKIP(6) ) // == ps-4m.6a
+ ROMX_LOAD( "ps_05.7a", 0x200000, 0x80000, CRC(c54ea839) SHA1(0733f37329edd9d0cace1319a7544b40aa7ecb0b) , ROM_GROUPWORD | ROM_SKIP(6) ) // == ps-5m.7a
+ ROMX_LOAD( "ps_06.8a", 0x200002, 0x80000, CRC(04c5acbd) SHA1(fddc94b0f36d4d22d7c357856ae15b7514c342d3) , ROM_GROUPWORD | ROM_SKIP(6) ) // == ps-7m.9a
+ ROMX_LOAD( "ps_07.9a", 0x200004, 0x80000, CRC(a544f4cc) SHA1(9552df8934ba25f19a22f2e07783712d8c8ef03c) , ROM_GROUPWORD | ROM_SKIP(6) ) // == ps-6m.8a
+ ROMX_LOAD( "ps_08.10a", 0x200006, 0x80000, CRC(8f02f436) SHA1(a2f0ebb7e9593469c7b843f8962a66f3d77f79e5) , ROM_GROUPWORD | ROM_SKIP(6) ) // == ps-8m.10a
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "ps_q.5k", 0x00000, 0x08000, CRC(49ff4446) SHA1(87af12f87a940a6c5428b4574ad44a4b54867bc3) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "ps-q1.1k", 0x000000, 0x80000, CRC(31fd8726) SHA1(1d73a76682e9fb908db0c55b9a18163f7539fea1) )
+ ROM_LOAD( "ps-q2.2k", 0x080000, 0x80000, CRC(980a9eef) SHA1(36571381f349bc726508a7e618ba1c635ec9d271) )
+ ROM_LOAD( "ps-q3.3k", 0x100000, 0x80000, CRC(0dd44491) SHA1(903cea1d7f3120545ea3229d30fbd687d11ad68f) )
+ ROM_LOAD( "ps-q4.4k", 0x180000, 0x80000, CRC(bed42f03) SHA1(21302f7e75f9c795392a3b34e16a959fc5f6e4e9) )
+
+ 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( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) )
+ ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) )
+
+ ROM_REGION( 0x0200, "bboardplds", 0 )
+ ROM_LOAD( "ps63b.1a", 0x0000, 0x0117, NO_DUMP )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+
+ ROM_REGION( 0x0200, "dboardplds", 0 )
+ ROM_LOAD( "d7l1.7l", 0x0000, 0x0117, CRC(27b7410d) SHA1(06d0cba0226850f100ff1f539bd7d5db0f90c730) )
+ ROM_LOAD( "d8l1.8l", 0x0000, 0x0117, CRC(539fc7da) SHA1(cad5c91629c6247e49ccbbcbfe6b08229eafae07) )
+ ROM_LOAD( "d9k2.9k", 0x0000, 0x0117, CRC(cd85a156) SHA1(a88f8939c5d93e65d7bcc0eb3ee5b6f4f1114e3a) )
+ ROM_LOAD( "d10f1.10f", 0x0000, 0x0117, CRC(6619c494) SHA1(3aef656c07182a2186f810f30e0d854dd5bd8d18) )
+ROM_END
+
+/* Chinese bootleg board */
+ROM_START( punisherbz )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "23.096", 0x000000, 0x80000, CRC(bfa45d23) SHA1(56d04d02c9b9b22603205b1ce9e376874d2eaa05) )
+ ROM_LOAD16_WORD_SWAP( "22.096", 0x080000, 0x80000, CRC(092578a4) SHA1(c3c8f98f8b8fc9c71b33fb906b4c591067b4355b) )
+ ROM_LOAD16_WORD_SWAP( "21.096", 0x100000, 0x80000, CRC(d21ccddb) SHA1(295c886cd14ee54e12acfe3f1e8f13513442c8c0) )
+ ROM_LOAD16_WORD_SWAP( "20.096", 0x180000, 0x80000, CRC(f9f334ce) SHA1(22e58ce5096b95138a30e9726e1169895118e990) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "1.096", 0x000000, 0x80000, CRC(ad468e07) SHA1(1ee8ecfd001b447982bc16972575eb2c5e01bc51) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "2.096", 0x000002, 0x80000, CRC(b9fdb6b5) SHA1(991fe0ded5c859f1e25766e9417e1ad691205e59) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "3.096", 0x000004, 0x80000, CRC(be0b1a78) SHA1(d002bd90d0f239d29f5ea481e455d85a1c088516) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "4.096", 0x000006, 0x80000, CRC(bba67a43) SHA1(9cd51a06a7661b2f78059ac392423f73de5cf56f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_gfx5.rom", 0x200000, 0x80000, CRC(c54ea839) SHA1(0733f37329edd9d0cace1319a7544b40aa7ecb0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_gfx7.rom", 0x200002, 0x80000, CRC(04c5acbd) SHA1(fddc94b0f36d4d22d7c357856ae15b7514c342d3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_gfx6.rom", 0x200004, 0x80000, CRC(a544f4cc) SHA1(9552df8934ba25f19a22f2e07783712d8c8ef03c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_gfx8.rom", 0x200006, 0x80000, CRC(8f02f436) SHA1(a2f0ebb7e9593469c7b843f8962a66f3d77f79e5) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "9.512", 0x00000, 0x08000, CRC(b8367eb5) SHA1(ec3db29fdd6200e9a8f4f8073a7e34aef731354f) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* samples */
+ ROM_LOAD( "18.010", 0x00000, 0x20000, CRC(375c66e7) SHA1(36189e23209ce4ae5d9cbabd1574540d0591e7b3) )
+ ROM_LOAD( "19.010", 0x20000, 0x20000, CRC(eb5ca884) SHA1(3592c69f77c7cd6ee241d6c1079c34a3e58abb5b) )
+ROM_END
+
+/* B-Board 91635B-2 */
+ROM_START( slammast )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "mbe_23e.8f", 0x000000, 0x80000, CRC(5394057a) SHA1(57f8b40c0a15e82c98ce5f0a8c4bdf60a1bc3107) )
+ ROM_LOAD16_BYTE( "mbe_24b.9e", 0x080000, 0x20000, CRC(95d5e729) SHA1(df3be896e55c92eb50887a4317178a3d11048433) )
+ ROM_LOAD16_BYTE( "mbe_28b.9f", 0x080001, 0x20000, CRC(b1c7cbcb) SHA1(cf5ad72be4a055db876e7347b1826325b9bf81d9) )
+ ROM_LOAD16_BYTE( "mbe_25b.10e", 0x0c0000, 0x20000, CRC(a50d3fd4) SHA1(dc3d108c3bc27f45b8b2e11919ba2a86e05b41d1) )
+ ROM_LOAD16_BYTE( "mbe_29b.10f", 0x0c0001, 0x20000, CRC(08e32e56) SHA1(70ad78b079f777ec02089f0df20ce2baad7adce5) )
+ ROM_LOAD16_WORD_SWAP( "mbe_21a.6f", 0x100000, 0x80000, CRC(d5007b05) SHA1(c55e55908aeda40ca2318c76ccbc05d333676875) )
+ ROM_LOAD16_WORD_SWAP( "mbe_20a.5f", 0x180000, 0x80000, CRC(aeb557b0) SHA1(530551942961d776f0a85852e02bb243840ca671) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "mb-1m.3a", 0x000000, 0x80000, CRC(41468e06) SHA1(fb365798f2889a20eebaea2393c9c2c8827003c4) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-3m.5a", 0x000002, 0x80000, CRC(f453aa9e) SHA1(24a103dc6f0dc96f8d0f6164ad732909c9cd2d6a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-2m.4a", 0x000004, 0x80000, CRC(2ffbfea8) SHA1(13e30133664a009686e1114c92b558bdbb91ea32) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-4m.6a", 0x000006, 0x80000, CRC(1eb9841d) SHA1(685da3e011a96b36be9f639a241b2f8f27da4629) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-5m.7a", 0x200000, 0x80000, CRC(506b9dc9) SHA1(933bf2fb9bcc1a408f961f0e7052da80144bddad) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-7m.9a", 0x200002, 0x80000, CRC(aff8c2fb) SHA1(ce37a6d5b1eb58c2d74f23f84ec824c214c93217) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-6m.8a", 0x200004, 0x80000, CRC(b76c70e9) SHA1(c21e255815ec9a985919dbd760ed266c28bd47cd) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-8m.10a", 0x200006, 0x80000, CRC(e60c9556) SHA1(b91c14092aa8dbb0922d96998123ef1970a658f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-10m.3c", 0x400000, 0x80000, CRC(97976ff5) SHA1(ec9d3460816ab971a02fbce42960283091777e47) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-12m.5c", 0x400002, 0x80000, CRC(b350a840) SHA1(2b8b996cd08051e7e8e134bff5448775d78058a0) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-11m.4c", 0x400004, 0x80000, CRC(8fb94743) SHA1(294f6182c8a41b640d1f57cb5e3a2abce3b06482) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-13m.6c", 0x400006, 0x80000, CRC(da810d5f) SHA1(392bbd405244b8c99024c9228cfec6a7ef0accdb) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "mb_qa.5k", 0x00000, 0x08000, CRC(e21a03c4) SHA1(98c03fd2c9b6bf8a4fc25a4edca87fff7c3c3819) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x8000, "user1", 0 )
+ ROM_COPY( "audiocpu", 0x000000, 0x00000, 0x8000 )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "mb-q1.1k", 0x000000, 0x80000, CRC(0630c3ce) SHA1(520fc74c5c3638f611fa2f1b5efb08b91747e29b) )
+ ROM_LOAD( "mb-q2.2k", 0x080000, 0x80000, CRC(354f9c21) SHA1(1dc6b39791fd0f760697f409a6b62361a7bf62e9) )
+ ROM_LOAD( "mb-q3.3k", 0x100000, 0x80000, CRC(7838487c) SHA1(056b7da05cfca46873edacd674ca25c70855c6db) )
+ ROM_LOAD( "mb-q4.4k", 0x180000, 0x80000, CRC(ab66e087) SHA1(066ea69a0157e8647eea3c44d0a1843898860678) )
+ ROM_LOAD( "mb-q5.1m", 0x200000, 0x80000, CRC(c789fef2) SHA1(10d1e3d92288fccd4e064a3716a788a165efc3c9) )
+ ROM_LOAD( "mb-q6.2m", 0x280000, 0x80000, CRC(ecb81b61) SHA1(e339f21ae47de4782f3b338befcdac659c3503f6) )
+ ROM_LOAD( "mb-q7.3m", 0x300000, 0x80000, CRC(041e49ba) SHA1(3220b033a5c0cfbbe75c0c113cf2db39fb093a7e) )
+ ROM_LOAD( "mb-q8.4m", 0x380000, 0x80000, CRC(59fe702a) SHA1(807178dfc6d864e49fd7aabb5c4895835cf0e85b) )
+
+ 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( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) )
+ ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) )
+
+ ROM_REGION( 0x0200, "bboardplds", 0 )
+ ROM_LOAD( "mb63b.1a", 0x0000, 0x0117, CRC(b8392f02) SHA1(8dedf9f43b30991694f8009302ca628cb50a0b1a) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+
+ ROM_REGION( 0x0200, "dboardplds", 0 )
+ ROM_LOAD( "d7l1.7l", 0x0000, 0x0117, CRC(27b7410d) SHA1(06d0cba0226850f100ff1f539bd7d5db0f90c730) )
+ ROM_LOAD( "d8l1.8l", 0x0000, 0x0117, CRC(539fc7da) SHA1(cad5c91629c6247e49ccbbcbfe6b08229eafae07) )
+ ROM_LOAD( "d9k2.9k", 0x0000, 0x0117, CRC(cd85a156) SHA1(a88f8939c5d93e65d7bcc0eb3ee5b6f4f1114e3a) )
+ ROM_LOAD( "d10f1.10f", 0x0000, 0x0117, CRC(6619c494) SHA1(3aef656c07182a2186f810f30e0d854dd5bd8d18) )
+ROM_END
+
+/* B-Board 91635B-2 */
+ROM_START( slammastu )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "mbu_23e.8f", 0x000000, 0x80000, CRC(224f0062) SHA1(d961f2e7db7acac576539c24a69e7dd9bf8fc406) )
+ ROM_LOAD16_BYTE( "mbu_24b.9e", 0x080000, 0x20000, CRC(95d5e729) SHA1(df3be896e55c92eb50887a4317178a3d11048433) ) // == mbe_24b.9e
+ ROM_LOAD16_BYTE( "mbu_28b.9f", 0x080001, 0x20000, CRC(b1c7cbcb) SHA1(cf5ad72be4a055db876e7347b1826325b9bf81d9) ) // == mbe_28b.9f
+ ROM_LOAD16_BYTE( "mbu_25b.10e", 0x0c0000, 0x20000, CRC(a50d3fd4) SHA1(dc3d108c3bc27f45b8b2e11919ba2a86e05b41d1) ) // == mbe_25b.10e
+ ROM_LOAD16_BYTE( "mbu_29b.10f", 0x0c0001, 0x20000, CRC(08e32e56) SHA1(70ad78b079f777ec02089f0df20ce2baad7adce5) ) // == mbe_29b.10f
+ ROM_LOAD16_WORD_SWAP( "mbu_21a.6f", 0x100000, 0x80000, CRC(d5007b05) SHA1(c55e55908aeda40ca2318c76ccbc05d333676875) ) // == mbe_21a.6f
+ ROM_LOAD16_WORD_SWAP( "mbu_20a.5f", 0x180000, 0x80000, CRC(fc848af5) SHA1(cd3f6e50779b89ee57a9d08bfa1d58dea286457c) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "mb-1m.3a", 0x000000, 0x80000, CRC(41468e06) SHA1(fb365798f2889a20eebaea2393c9c2c8827003c4) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-3m.5a", 0x000002, 0x80000, CRC(f453aa9e) SHA1(24a103dc6f0dc96f8d0f6164ad732909c9cd2d6a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-2m.4a", 0x000004, 0x80000, CRC(2ffbfea8) SHA1(13e30133664a009686e1114c92b558bdbb91ea32) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-4m.6a", 0x000006, 0x80000, CRC(1eb9841d) SHA1(685da3e011a96b36be9f639a241b2f8f27da4629) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-5m.7a", 0x200000, 0x80000, CRC(506b9dc9) SHA1(933bf2fb9bcc1a408f961f0e7052da80144bddad) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-7m.9a", 0x200002, 0x80000, CRC(aff8c2fb) SHA1(ce37a6d5b1eb58c2d74f23f84ec824c214c93217) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-6m.8a", 0x200004, 0x80000, CRC(b76c70e9) SHA1(c21e255815ec9a985919dbd760ed266c28bd47cd) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-8m.10a", 0x200006, 0x80000, CRC(e60c9556) SHA1(b91c14092aa8dbb0922d96998123ef1970a658f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-10m.3c", 0x400000, 0x80000, CRC(97976ff5) SHA1(ec9d3460816ab971a02fbce42960283091777e47) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-12m.5c", 0x400002, 0x80000, CRC(b350a840) SHA1(2b8b996cd08051e7e8e134bff5448775d78058a0) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-11m.4c", 0x400004, 0x80000, CRC(8fb94743) SHA1(294f6182c8a41b640d1f57cb5e3a2abce3b06482) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-13m.6c", 0x400006, 0x80000, CRC(da810d5f) SHA1(392bbd405244b8c99024c9228cfec6a7ef0accdb) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "mb_qa.5k", 0x00000, 0x08000, CRC(e21a03c4) SHA1(98c03fd2c9b6bf8a4fc25a4edca87fff7c3c3819) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x8000, "user1", 0 )
+ ROM_COPY( "audiocpu", 0x000000, 0x00000, 0x8000 )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "mb-q1.1k", 0x000000, 0x80000, CRC(0630c3ce) SHA1(520fc74c5c3638f611fa2f1b5efb08b91747e29b) )
+ ROM_LOAD( "mb-q2.2k", 0x080000, 0x80000, CRC(354f9c21) SHA1(1dc6b39791fd0f760697f409a6b62361a7bf62e9) )
+ ROM_LOAD( "mb-q3.3k", 0x100000, 0x80000, CRC(7838487c) SHA1(056b7da05cfca46873edacd674ca25c70855c6db) )
+ ROM_LOAD( "mb-q4.4k", 0x180000, 0x80000, CRC(ab66e087) SHA1(066ea69a0157e8647eea3c44d0a1843898860678) )
+ ROM_LOAD( "mb-q5.1m", 0x200000, 0x80000, CRC(c789fef2) SHA1(10d1e3d92288fccd4e064a3716a788a165efc3c9) )
+ ROM_LOAD( "mb-q6.2m", 0x280000, 0x80000, CRC(ecb81b61) SHA1(e339f21ae47de4782f3b338befcdac659c3503f6) )
+ ROM_LOAD( "mb-q7.3m", 0x300000, 0x80000, CRC(041e49ba) SHA1(3220b033a5c0cfbbe75c0c113cf2db39fb093a7e) )
+ ROM_LOAD( "mb-q8.4m", 0x380000, 0x80000, CRC(59fe702a) SHA1(807178dfc6d864e49fd7aabb5c4895835cf0e85b) )
+
+ 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( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) )
+ ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) )
+
+ ROM_REGION( 0x0200, "bboardplds", 0 )
+ ROM_LOAD( "mb63b.1a", 0x0000, 0x0117, CRC(b8392f02) SHA1(8dedf9f43b30991694f8009302ca628cb50a0b1a) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+
+ ROM_REGION( 0x0200, "dboardplds", 0 )
+ ROM_LOAD( "d7l1.7l", 0x0000, 0x0117, CRC(27b7410d) SHA1(06d0cba0226850f100ff1f539bd7d5db0f90c730) )
+ ROM_LOAD( "d8l1.8l", 0x0000, 0x0117, CRC(539fc7da) SHA1(cad5c91629c6247e49ccbbcbfe6b08229eafae07) )
+ ROM_LOAD( "d9k2.9k", 0x0000, 0x0117, CRC(cd85a156) SHA1(a88f8939c5d93e65d7bcc0eb3ee5b6f4f1114e3a) )
+ ROM_LOAD( "d10f1.10f", 0x0000, 0x0117, CRC(6619c494) SHA1(3aef656c07182a2186f810f30e0d854dd5bd8d18) )
+ROM_END
+
+/* B-Board 91634B-2 */
+ROM_START( mbomberj )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "mbj_23e.8f", 0x000000, 0x80000, CRC(0d06036a) SHA1(e1b102888038b4bb612a41ac94a43333d468a245) )
+ ROM_LOAD16_WORD_SWAP( "mbj_22b.7f", 0x080000, 0x80000, CRC(acd38478) SHA1(0bed74b52838006c6ec3661f92058dc2aa3e8193) )
+ ROM_LOAD16_WORD_SWAP( "mbj_21a.6f", 0x100000, 0x80000, CRC(d5007b05) SHA1(c55e55908aeda40ca2318c76ccbc05d333676875) ) // == mbe_21a.6f
+ ROM_LOAD16_WORD_SWAP( "mbj_20a.5f", 0x180000, 0x80000, CRC(aeb557b0) SHA1(530551942961d776f0a85852e02bb243840ca671) ) // == mbe_20a.5f
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "mb_01.3a", 0x000000, 0x80000, CRC(a53b1c81) SHA1(d1efb88eeaf6e30e51aaf1432078003e52454dd9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb_02.4a", 0x000002, 0x80000, CRC(23fe10f6) SHA1(deefa7cac4394b0642f7fb444f9374dbe0bc8843) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb_03.5a", 0x000004, 0x80000, CRC(cb866c2f) SHA1(b087f52e3b2a514a209612319d1d7c4f1c12b8bd) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb_04.6a", 0x000006, 0x80000, CRC(c9143e75) SHA1(e30090625ef6ac971a4f65d53f5458cebb5f146c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb_05.7a", 0x200000, 0x80000, CRC(506b9dc9) SHA1(933bf2fb9bcc1a408f961f0e7052da80144bddad) , ROM_GROUPWORD | ROM_SKIP(6) ) // == mb-5m.7a
+ ROMX_LOAD( "mb_06.8a", 0x200002, 0x80000, CRC(aff8c2fb) SHA1(ce37a6d5b1eb58c2d74f23f84ec824c214c93217) , ROM_GROUPWORD | ROM_SKIP(6) ) // == mb-7m.9a
+ ROMX_LOAD( "mb_07.9a", 0x200004, 0x80000, CRC(b76c70e9) SHA1(c21e255815ec9a985919dbd760ed266c28bd47cd) , ROM_GROUPWORD | ROM_SKIP(6) ) // == mb-6m.8a
+ ROMX_LOAD( "mb_08.10a", 0x200006, 0x80000, CRC(e60c9556) SHA1(b91c14092aa8dbb0922d96998123ef1970a658f6) , ROM_GROUPWORD | ROM_SKIP(6) ) // == mb-8m.10a
+ ROMX_LOAD( "mb_10.3c", 0x400000, 0x80000, CRC(97976ff5) SHA1(ec9d3460816ab971a02fbce42960283091777e47) , ROM_GROUPWORD | ROM_SKIP(6) ) // == mb-10m.3c
+ ROMX_LOAD( "mb_11.4c", 0x400002, 0x80000, CRC(b350a840) SHA1(2b8b996cd08051e7e8e134bff5448775d78058a0) , ROM_GROUPWORD | ROM_SKIP(6) ) // == mb-12m.5c
+ ROMX_LOAD( "mb_12.5c", 0x400004, 0x80000, CRC(8fb94743) SHA1(294f6182c8a41b640d1f57cb5e3a2abce3b06482) , ROM_GROUPWORD | ROM_SKIP(6) ) // == mb-11m.4c
+ ROMX_LOAD( "mb_13.6c", 0x400006, 0x80000, CRC(da810d5f) SHA1(392bbd405244b8c99024c9228cfec6a7ef0accdb) , ROM_GROUPWORD | ROM_SKIP(6) ) // == mb-13m.6c
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "mb_qa.5k", 0x00000, 0x08000, CRC(e21a03c4) SHA1(98c03fd2c9b6bf8a4fc25a4edca87fff7c3c3819) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x8000, "user1", 0 )
+ ROM_COPY( "audiocpu", 0x000000, 0x00000, 0x8000 )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "mb-q1.1k", 0x000000, 0x80000, CRC(0630c3ce) SHA1(520fc74c5c3638f611fa2f1b5efb08b91747e29b) )
+ ROM_LOAD( "mb-q2.2k", 0x080000, 0x80000, CRC(354f9c21) SHA1(1dc6b39791fd0f760697f409a6b62361a7bf62e9) )
+ ROM_LOAD( "mb-q3.3k", 0x100000, 0x80000, CRC(7838487c) SHA1(056b7da05cfca46873edacd674ca25c70855c6db) )
+ ROM_LOAD( "mb-q4.4k", 0x180000, 0x80000, CRC(ab66e087) SHA1(066ea69a0157e8647eea3c44d0a1843898860678) )
+ ROM_LOAD( "mb-q5.1m", 0x200000, 0x80000, CRC(c789fef2) SHA1(10d1e3d92288fccd4e064a3716a788a165efc3c9) )
+ ROM_LOAD( "mb-q6.2m", 0x280000, 0x80000, CRC(ecb81b61) SHA1(e339f21ae47de4782f3b338befcdac659c3503f6) )
+ ROM_LOAD( "mb-q7.3m", 0x300000, 0x80000, CRC(041e49ba) SHA1(3220b033a5c0cfbbe75c0c113cf2db39fb093a7e) )
+ ROM_LOAD( "mb-q8.4m", 0x380000, 0x80000, CRC(59fe702a) SHA1(807178dfc6d864e49fd7aabb5c4895835cf0e85b) )
+
+ 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( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) )
+ ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) )
+
+ ROM_REGION( 0x0200, "bboardplds", 0 )
+ ROM_LOAD( "mb63b.1a", 0x0000, 0x0117, CRC(b8392f02) SHA1(8dedf9f43b30991694f8009302ca628cb50a0b1a) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+
+ ROM_REGION( 0x0200, "dboardplds", 0 )
+ ROM_LOAD( "d7l1.7l", 0x0000, 0x0117, CRC(27b7410d) SHA1(06d0cba0226850f100ff1f539bd7d5db0f90c730) )
+ ROM_LOAD( "d8l1.8l", 0x0000, 0x0117, CRC(539fc7da) SHA1(cad5c91629c6247e49ccbbcbfe6b08229eafae07) )
+ ROM_LOAD( "d9k2.9k", 0x0000, 0x0117, CRC(cd85a156) SHA1(a88f8939c5d93e65d7bcc0eb3ee5b6f4f1114e3a) )
+ ROM_LOAD( "d10f1.10f", 0x0000, 0x0117, CRC(6619c494) SHA1(3aef656c07182a2186f810f30e0d854dd5bd8d18) )
+ROM_END
+
+/* FIXME B-Board uncertain but should be 91635B from the program ROM names */
+ROM_START( mbombrd )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "mbde_26.11e", 0x000000, 0x20000, CRC(72b7451c) SHA1(380ef57bb00f1c92d2f29e551b0a670eb5a56cb7) )
+ ROM_LOAD16_BYTE( "mbde_30.11f", 0x000001, 0x20000, CRC(a036dc16) SHA1(a68cf74976f482dbc581734e143669511a9a4bee) )
+ ROM_LOAD16_BYTE( "mbde_27.12e", 0x040000, 0x20000, CRC(4086f534) SHA1(a2b949f00035b06cb1cd01185902daca3d89d0e3) )
+ ROM_LOAD16_BYTE( "mbde_31.12f", 0x040001, 0x20000, CRC(085f47f0) SHA1(ac93a196faf17b7dbe7179ce1e850d9cd7293a21) )
+ ROM_LOAD16_BYTE( "mbde_24.9e", 0x080000, 0x20000, CRC(c20895a5) SHA1(35116f7ef8576753ec989647ca2f6a6131d6909f) )
+ ROM_LOAD16_BYTE( "mbde_28.9f", 0x080001, 0x20000, CRC(2618d5e1) SHA1(50797c6dda04df95267ff9ef08933c17c3ce7057) )
+ ROM_LOAD16_BYTE( "mbde_25.10e", 0x0c0000, 0x20000, CRC(9bdb6b11) SHA1(fbfbd6b5a72ca3237713ce43a798660f899b707d) )
+ ROM_LOAD16_BYTE( "mbde_29.10f", 0x0c0001, 0x20000, CRC(3f52d5e5) SHA1(0b1ed8e876a6ec2cfb83676afe43a81e8a033e52) )
+ ROM_LOAD16_WORD_SWAP( "mbde_21.6f", 0x100000, 0x80000, CRC(690c026a) SHA1(80ad780743b50750b6bfe1d4e28efe98e562233e) )
+ ROM_LOAD16_WORD_SWAP( "mbde_20.5f", 0x180000, 0x80000, CRC(b8b2139b) SHA1(88c9169a9979b711ab7afb8272df0a1c80bb357b) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "mb-1m.3a", 0x000000, 0x80000, CRC(41468e06) SHA1(fb365798f2889a20eebaea2393c9c2c8827003c4) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-3m.5a", 0x000002, 0x80000, CRC(f453aa9e) SHA1(24a103dc6f0dc96f8d0f6164ad732909c9cd2d6a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-2m.4a", 0x000004, 0x80000, CRC(2ffbfea8) SHA1(13e30133664a009686e1114c92b558bdbb91ea32) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-4m.6a", 0x000006, 0x80000, CRC(1eb9841d) SHA1(685da3e011a96b36be9f639a241b2f8f27da4629) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-5m.7a", 0x200000, 0x80000, CRC(506b9dc9) SHA1(933bf2fb9bcc1a408f961f0e7052da80144bddad) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-7m.9a", 0x200002, 0x80000, CRC(aff8c2fb) SHA1(ce37a6d5b1eb58c2d74f23f84ec824c214c93217) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-6m.8a", 0x200004, 0x80000, CRC(b76c70e9) SHA1(c21e255815ec9a985919dbd760ed266c28bd47cd) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-8m.10a", 0x200006, 0x80000, CRC(e60c9556) SHA1(b91c14092aa8dbb0922d96998123ef1970a658f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-10m.3c", 0x400000, 0x80000, CRC(97976ff5) SHA1(ec9d3460816ab971a02fbce42960283091777e47) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-12m.5c", 0x400002, 0x80000, CRC(b350a840) SHA1(2b8b996cd08051e7e8e134bff5448775d78058a0) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-11m.4c", 0x400004, 0x80000, CRC(8fb94743) SHA1(294f6182c8a41b640d1f57cb5e3a2abce3b06482) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-13m.6c", 0x400006, 0x80000, CRC(da810d5f) SHA1(392bbd405244b8c99024c9228cfec6a7ef0accdb) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "mb_q.5k", 0x00000, 0x08000, CRC(d6fa76d1) SHA1(3bfcb703e0e458ef1bb843230f8537167f1d4c3c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "mb-q1.1k", 0x000000, 0x80000, CRC(0630c3ce) SHA1(520fc74c5c3638f611fa2f1b5efb08b91747e29b) )
+ ROM_LOAD( "mb-q2.2k", 0x080000, 0x80000, CRC(354f9c21) SHA1(1dc6b39791fd0f760697f409a6b62361a7bf62e9) )
+ ROM_LOAD( "mb-q3.3k", 0x100000, 0x80000, CRC(7838487c) SHA1(056b7da05cfca46873edacd674ca25c70855c6db) )
+ ROM_LOAD( "mb-q4.4k", 0x180000, 0x80000, CRC(ab66e087) SHA1(066ea69a0157e8647eea3c44d0a1843898860678) )
+ ROM_LOAD( "mb-q5.1m", 0x200000, 0x80000, CRC(c789fef2) SHA1(10d1e3d92288fccd4e064a3716a788a165efc3c9) )
+ ROM_LOAD( "mb-q6.2m", 0x280000, 0x80000, CRC(ecb81b61) SHA1(e339f21ae47de4782f3b338befcdac659c3503f6) )
+ ROM_LOAD( "mb-q7.3m", 0x300000, 0x80000, CRC(041e49ba) SHA1(3220b033a5c0cfbbe75c0c113cf2db39fb093a7e) )
+ ROM_LOAD( "mb-q8.4m", 0x380000, 0x80000, CRC(59fe702a) SHA1(807178dfc6d864e49fd7aabb5c4895835cf0e85b) )
+
+ 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( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) )
+ ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) )
+
+ ROM_REGION( 0x0200, "bboardplds", 0 )
+ ROM_LOAD( "mb63b.1a", 0x0000, 0x0117, CRC(b8392f02) SHA1(8dedf9f43b30991694f8009302ca628cb50a0b1a) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+
+ ROM_REGION( 0x0200, "dboardplds", 0 )
+ ROM_LOAD( "d7l1.7l", 0x0000, 0x0117, CRC(27b7410d) SHA1(06d0cba0226850f100ff1f539bd7d5db0f90c730) )
+ ROM_LOAD( "d8l1.8l", 0x0000, 0x0117, CRC(539fc7da) SHA1(cad5c91629c6247e49ccbbcbfe6b08229eafae07) )
+ ROM_LOAD( "d9k2.9k", 0x0000, 0x0117, CRC(cd85a156) SHA1(a88f8939c5d93e65d7bcc0eb3ee5b6f4f1114e3a) ) // pal verification required
+ ROM_LOAD( "d10f1.10f", 0x0000, 0x0117, CRC(6619c494) SHA1(3aef656c07182a2186f810f30e0d854dd5bd8d18) )
+ROM_END
+
+/* B-Board 91634B-2 */
+ROM_START( mbombrdj )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "mbdj_26.11e", 0x000000, 0x20000, CRC(72b7451c) SHA1(380ef57bb00f1c92d2f29e551b0a670eb5a56cb7) ) // == mbde_26.11e
+ ROM_LOAD16_BYTE( "mbdj_30.11f", 0x000001, 0x20000, CRC(beff31cf) SHA1(8a3a1fa848fe8fad239d21aef1871e54bbcb582f) )
+ ROM_LOAD16_BYTE( "mbdj_27.12e", 0x040000, 0x20000, CRC(4086f534) SHA1(a2b949f00035b06cb1cd01185902daca3d89d0e3) ) // == mbde_27.12e
+ ROM_LOAD16_BYTE( "mbdj_31.12f", 0x040001, 0x20000, CRC(085f47f0) SHA1(ac93a196faf17b7dbe7179ce1e850d9cd7293a21) ) // == mbde_31.12f
+ ROM_LOAD16_BYTE( "mbdj_24.9e", 0x080000, 0x20000, CRC(c20895a5) SHA1(35116f7ef8576753ec989647ca2f6a6131d6909f) ) // == mbde_24.9e
+ ROM_LOAD16_BYTE( "mbdj_28.9f", 0x080001, 0x20000, CRC(2618d5e1) SHA1(50797c6dda04df95267ff9ef08933c17c3ce7057) ) // == mbde_28.9f
+ ROM_LOAD16_BYTE( "mbdj_25.10e", 0x0c0000, 0x20000, CRC(9bdb6b11) SHA1(fbfbd6b5a72ca3237713ce43a798660f899b707d) ) // == mbde_25.10e
+ ROM_LOAD16_BYTE( "mbdj_29.10f", 0x0c0001, 0x20000, CRC(3f52d5e5) SHA1(0b1ed8e876a6ec2cfb83676afe43a81e8a033e52) ) // == mbde_29.10f
+ ROM_LOAD16_WORD_SWAP( "mbdj_21.6f", 0x100000, 0x80000, CRC(690c026a) SHA1(80ad780743b50750b6bfe1d4e28efe98e562233e) ) // == mbde_21.6f
+ ROM_LOAD16_WORD_SWAP( "mbdj_20.5f", 0x180000, 0x80000, CRC(b8b2139b) SHA1(88c9169a9979b711ab7afb8272df0a1c80bb357b) ) // == mbde_20.5f
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "mb_01.3a", 0x000000, 0x80000, CRC(a53b1c81) SHA1(d1efb88eeaf6e30e51aaf1432078003e52454dd9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb_02.4a", 0x000002, 0x80000, CRC(23fe10f6) SHA1(deefa7cac4394b0642f7fb444f9374dbe0bc8843) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb_03.5a", 0x000004, 0x80000, CRC(cb866c2f) SHA1(b087f52e3b2a514a209612319d1d7c4f1c12b8bd) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb_04.6a", 0x000006, 0x80000, CRC(c9143e75) SHA1(e30090625ef6ac971a4f65d53f5458cebb5f146c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb_05.7a", 0x200000, 0x80000, CRC(506b9dc9) SHA1(933bf2fb9bcc1a408f961f0e7052da80144bddad) , ROM_GROUPWORD | ROM_SKIP(6) ) // == mb-5m.7a
+ ROMX_LOAD( "mb_06.8a", 0x200002, 0x80000, CRC(aff8c2fb) SHA1(ce37a6d5b1eb58c2d74f23f84ec824c214c93217) , ROM_GROUPWORD | ROM_SKIP(6) ) // == mb-7m.9a
+ ROMX_LOAD( "mb_07.9a", 0x200004, 0x80000, CRC(b76c70e9) SHA1(c21e255815ec9a985919dbd760ed266c28bd47cd) , ROM_GROUPWORD | ROM_SKIP(6) ) // == mb-6m.8a
+ ROMX_LOAD( "mb_08.10a", 0x200006, 0x80000, CRC(e60c9556) SHA1(b91c14092aa8dbb0922d96998123ef1970a658f6) , ROM_GROUPWORD | ROM_SKIP(6) ) // == mb-8m.10a
+ ROMX_LOAD( "mb_10.3c", 0x400000, 0x80000, CRC(97976ff5) SHA1(ec9d3460816ab971a02fbce42960283091777e47) , ROM_GROUPWORD | ROM_SKIP(6) ) // == mb-10m.3c
+ ROMX_LOAD( "mb_11.4c", 0x400002, 0x80000, CRC(b350a840) SHA1(2b8b996cd08051e7e8e134bff5448775d78058a0) , ROM_GROUPWORD | ROM_SKIP(6) ) // == mb-12m.5c
+ ROMX_LOAD( "mb_12.5c", 0x400004, 0x80000, CRC(8fb94743) SHA1(294f6182c8a41b640d1f57cb5e3a2abce3b06482) , ROM_GROUPWORD | ROM_SKIP(6) ) // == mb-11m.4c
+ ROMX_LOAD( "mb_13.6c", 0x400006, 0x80000, CRC(da810d5f) SHA1(392bbd405244b8c99024c9228cfec6a7ef0accdb) , ROM_GROUPWORD | ROM_SKIP(6) ) // == mb-13m.6c
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "mb_qa.5k", 0x00000, 0x08000, CRC(e21a03c4) SHA1(98c03fd2c9b6bf8a4fc25a4edca87fff7c3c3819) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "mb-q1.1k", 0x000000, 0x80000, CRC(0630c3ce) SHA1(520fc74c5c3638f611fa2f1b5efb08b91747e29b) )
+ ROM_LOAD( "mb-q2.2k", 0x080000, 0x80000, CRC(354f9c21) SHA1(1dc6b39791fd0f760697f409a6b62361a7bf62e9) )
+ ROM_LOAD( "mb-q3.3k", 0x100000, 0x80000, CRC(7838487c) SHA1(056b7da05cfca46873edacd674ca25c70855c6db) )
+ ROM_LOAD( "mb-q4.4k", 0x180000, 0x80000, CRC(ab66e087) SHA1(066ea69a0157e8647eea3c44d0a1843898860678) )
+ ROM_LOAD( "mb-q5.1m", 0x200000, 0x80000, CRC(c789fef2) SHA1(10d1e3d92288fccd4e064a3716a788a165efc3c9) )
+ ROM_LOAD( "mb-q6.2m", 0x280000, 0x80000, CRC(ecb81b61) SHA1(e339f21ae47de4782f3b338befcdac659c3503f6) )
+ ROM_LOAD( "mb-q7.3m", 0x300000, 0x80000, CRC(041e49ba) SHA1(3220b033a5c0cfbbe75c0c113cf2db39fb093a7e) )
+ ROM_LOAD( "mb-q8.4m", 0x380000, 0x80000, CRC(59fe702a) SHA1(807178dfc6d864e49fd7aabb5c4895835cf0e85b) )
+
+ 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( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) )
+ ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) )
+
+ ROM_REGION( 0x0200, "bboardplds", 0 )
+ ROM_LOAD( "mb63b.1a", 0x0000, 0x0117, CRC(b8392f02) SHA1(8dedf9f43b30991694f8009302ca628cb50a0b1a) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic1", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+
+ ROM_REGION( 0x0200, "dboardplds", 0 )
+ ROM_LOAD( "d7l1.7l", 0x0000, 0x0117, CRC(27b7410d) SHA1(06d0cba0226850f100ff1f539bd7d5db0f90c730) )
+ ROM_LOAD( "d8l1.8l", 0x0000, 0x0117, CRC(539fc7da) SHA1(cad5c91629c6247e49ccbbcbfe6b08229eafae07) )
+ ROM_LOAD( "d9k2.9k", 0x0000, 0x0117, CRC(cd85a156) SHA1(a88f8939c5d93e65d7bcc0eb3ee5b6f4f1114e3a) )
+ ROM_LOAD( "d10f1.10f", 0x0000, 0x0117, CRC(6619c494) SHA1(3aef656c07182a2186f810f30e0d854dd5bd8d18) )
+ROM_END
+
+/* B-Board 89625B-1 */
+ROM_START( pnickj )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "pnij_36.12f", 0x00000, 0x20000, CRC(2d4ffb2b) SHA1(6e49cf89a36834fd1de8b4b860fe66f3d7d67a84) )
+ ROM_LOAD16_BYTE( "pnij_42.12h", 0x00001, 0x20000, CRC(c085dfaf) SHA1(a31ededc3413ec4f3f5e3a1fb615b60c6197f4a5) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "pnij_09.4b", 0x000000, 0x20000, CRC(48177b0a) SHA1(eba5de6cd9bb0c4ad76a13bddc9cdeb2e4380122) , ROM_SKIP(7) )
+ ROMX_LOAD( "pnij_01.4a", 0x000001, 0x20000, CRC(01a0f311) SHA1(9bcd8716f90ccd410543ffcdc5c2916077b8d4c3) , ROM_SKIP(7) )
+ ROMX_LOAD( "pnij_13.9b", 0x000002, 0x20000, CRC(406451b0) SHA1(5a7a7fecba7de8b8cf4a284b2ae7adae901623f6) , ROM_SKIP(7) )
+ ROMX_LOAD( "pnij_05.9a", 0x000003, 0x20000, CRC(8c515dc0) SHA1(aa1e13cf9e7cf0458bb5c4332b1ea73034f9a874) , ROM_SKIP(7) )
+ ROMX_LOAD( "pnij_26.5e", 0x000004, 0x20000, CRC(e2af981e) SHA1(3c2b28b4a4d457aa94a760dfca0181a9f050c319) , ROM_SKIP(7) )
+ ROMX_LOAD( "pnij_18.5c", 0x000005, 0x20000, CRC(f17a0e56) SHA1(7c89aca230f176e12f995892f9d1bce22c57fbdf) , ROM_SKIP(7) )
+ ROMX_LOAD( "pnij_38.8h", 0x000006, 0x20000, CRC(eb75bd8c) SHA1(2129460e06eb64019fc5f7eab6334ff43229b995) , ROM_SKIP(7) )
+ ROMX_LOAD( "pnij_32.8f", 0x000007, 0x20000, CRC(84560bef) SHA1(9e94ae434b50ecf82781080e11d0c4741e992d0d) , ROM_SKIP(7) )
+ ROMX_LOAD( "pnij_10.5b", 0x100000, 0x20000, CRC(c2acc171) SHA1(7c86db3f2acca1252d403c5f12c871d0357fa109) , ROM_SKIP(7) )
+ ROMX_LOAD( "pnij_02.5a", 0x100001, 0x20000, CRC(0e21fc33) SHA1(c4a29d45c4257c8871038d3c9b13140e874db0c1) , ROM_SKIP(7) )
+ ROMX_LOAD( "pnij_14.10b", 0x100002, 0x20000, CRC(7fe59b19) SHA1(a273b8b8fbfd5d31d25479a9ede09ce35e1cc873) , ROM_SKIP(7) )
+ ROMX_LOAD( "pnij_06.10a", 0x100003, 0x20000, CRC(79f4bfe3) SHA1(bc17cc1c8535e3d202588893713926b6c06f92fd) , ROM_SKIP(7) )
+ ROMX_LOAD( "pnij_27.7e", 0x100004, 0x20000, CRC(83d5cb0e) SHA1(44c93fa5eedcafc8dc6d88ee827c6cadc9c671f0) , ROM_SKIP(7) )
+ ROMX_LOAD( "pnij_19.7c", 0x100005, 0x20000, CRC(af08b230) SHA1(a3b5b3013012efa1860699648518f8d8031c5f30) , ROM_SKIP(7) )
+ ROMX_LOAD( "pnij_39.9h", 0x100006, 0x20000, CRC(70fbe579) SHA1(b5b7ed5588ecd884b20dd50bfc5385a9af03c5d8) , ROM_SKIP(7) )
+ ROMX_LOAD( "pnij_33.9f", 0x100007, 0x20000, CRC(3ed2c680) SHA1(0afe84d8d89f8d45afc79f6172337e622e29a8a2) , ROM_SKIP(7) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "pnij_17.13b", 0x00000, 0x08000, CRC(e86f787a) SHA1(de04cbe89c655faf04afe169bfd9913049ccc4a8) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "pnij_24.12c", 0x00000, 0x20000, CRC(5092257d) SHA1(95dc9d10940653b2fb37baf5c1ed27145b02104e) )
+ ROM_LOAD( "pnij_25.13c", 0x20000, 0x20000, CRC(22109aaa) SHA1(cf21e75674d81b2daae2083d02f9f4b6e52722c6) )
+
+ 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( "pkb10b.1a", 0x0000, 0x0117, NO_DUMP )
+ ROM_LOAD( "iob1.12e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 90629B-3 */
+ROM_START( qtono2j )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "tn2j_30.11e", 0x00000, 0x20000, CRC(9226eb5e) SHA1(91649974f9652caed90eb28ec6caf4fe61f5d279) )
+ ROM_LOAD16_BYTE( "tn2j_37.11f", 0x00001, 0x20000, CRC(d1d30da1) SHA1(7ca1695ed804b5860d4c15964cdbb922db3918ee) )
+ ROM_LOAD16_BYTE( "tn2j_31.12e", 0x40000, 0x20000, CRC(015e6a8a) SHA1(0835bec4867438a167bd01e3550090c88e7ae779) )
+ ROM_LOAD16_BYTE( "tn2j_38.12f", 0x40001, 0x20000, CRC(1f139bcc) SHA1(ee907f1bfef1a887e2c768648fe811e0733eddf7) )
+ ROM_LOAD16_BYTE( "tn2j_28.9e", 0x80000, 0x20000, CRC(86d27f71) SHA1(89d6d18e05deaaa1ac7deb70ca03d051d2fde472) )
+ ROM_LOAD16_BYTE( "tn2j_35.9f", 0x80001, 0x20000, CRC(7a1ab87d) SHA1(f1729a8c0c82cf42f60644a7796dc8a39bf7c6fa) )
+ ROM_LOAD16_BYTE( "tn2j_29.10e", 0xc0000, 0x20000, CRC(9c384e99) SHA1(3d3961f625ccc4776531eff50fc1b4bee062370e) )
+ ROM_LOAD16_BYTE( "tn2j_36.10f", 0xc0001, 0x20000, CRC(4c4b2a0a) SHA1(9a25fcfb9358ea42d9bc662df2cafea08febb411) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tn2-02m.4a", 0x000000, 0x80000, CRC(f2016a34) SHA1(3862960fa14742547f6a6deacf0b9f409d08fee8) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tn2-04m.6a", 0x000002, 0x80000, CRC(094e0fb1) SHA1(7c9a9a7d03e226109002dd389c872e3d4be43287) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tn2-01m.3a", 0x000004, 0x80000, CRC(cb950cf9) SHA1(8337a500141c1aec82b6636ad79ecafbdbebd691) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tn2-03m.5a", 0x000006, 0x80000, CRC(18a5bf59) SHA1(afbfcb28c40551747bb5276aac2b9c15a24328e1) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tn2-11m.4c", 0x200000, 0x80000, CRC(d0edd30b) SHA1(a76d7f134f9e52f79a485402d17dcc7a1fe99f29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tn2-13m.6c", 0x200002, 0x80000, CRC(426621c3) SHA1(89156bc9d585f546cd619db419dd1f4d9871d930) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tn2-10m.3c", 0x200004, 0x80000, CRC(a34ece70) SHA1(15864d6b280f624245add8a611f1699da570392b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tn2-12m.5c", 0x200006, 0x80000, CRC(e04ff2f4) SHA1(774c19909a2ae2c691f5d3f15b6e19cc94baf799) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "tn2j_09.12a", 0x00000, 0x08000, CRC(e464b969) SHA1(18a0b9fd3a1eb4d1364b0e8601cd49a9574406c8) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "tn2j_18.11c", 0x00000, 0x20000, CRC(a40bf9a7) SHA1(07cb1076262a281e31a621cbcc10be0cae883175) )
+ ROM_LOAD( "tn2j_19.12c", 0x20000, 0x20000, CRC(5b3b931e) SHA1(cf28891f84814cbfaa3adaade8bb08b1e0546a3d) )
+
+ 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( "tn2292.1a", 0x0000, 0x0117, CRC(3d899539) SHA1(9ffa76229408a2d7438b1b3efa0ec7166bfcc751) )
+ ROM_LOAD( "iob1.11d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 94916-10 */
+ROM_START( pang3 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "pa3e_17a.11l", 0x00000, 0x80000, CRC(a213fa80) SHA1(fee6b0b21e2ef573ebfb35eaa1785533101c9170) )
+ ROM_LOAD16_WORD_SWAP( "pa3e_16a.10l", 0x80000, 0x80000, CRC(7169ea67) SHA1(1076afaff7b05c9009798a0cea13e71fa27f2b7e) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "pa3-01m.2c", 0x000000, 0x100000, CRC(068a152c) SHA1(fa491874068924c39bcc7de93dfda3b27f5d9613) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000004, 0x100000 )
+ ROMX_LOAD( "pa3-07m.2f", 0x000002, 0x100000, CRC(3a4a619d) SHA1(cfe68e24632b53fb6cd6d03b2166d6b5ba28b778) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000006, 0x100000 )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "pa3_11.11f", 0x00000, 0x08000, CRC(cb1423a2) SHA1(3191bf5d340168647881738cb2aed09b1d86146e) )
+ ROM_IGNORE( 0x18000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "pa3_05.10d", 0x00000, 0x20000, CRC(73a10d5d) SHA1(999465e4fbc35a34746d2db61ad49f61403d5af7) )
+ ROM_LOAD( "pa3_06.11d", 0x20000, 0x20000, CRC(affa4f82) SHA1(27b9292bbc121cf585f53297a79fe8f0d0a729ae) )
+
+ 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( "cp1b1f.1f", 0x0000, 0x0117, CRC(3979b8e3) SHA1(07c9819d68b4d93bc37b96bd15d689ce54fe034e) )
+ ROM_LOAD( "cp1b8k.8k", 0x0000, 0x0117, CRC(8a52ea7a) SHA1(47a59abc54a83292cfd6faa2d293c8f948c7ea03) )
+ ROM_LOAD( "cp1b9ka.9k", 0x0000, 0x0117, CRC(238d3ff4) SHA1(597f429d6a0ea485746322592604188c1ec87595) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 94916-10 */
+ROM_START( pang3r1 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "pa3e_17.11l", 0x00000, 0x80000, CRC(d7041d32) SHA1(b021f3defe7fc58030ba907125c713f987724187) )
+ ROM_LOAD16_WORD_SWAP( "pa3e_16.10l", 0x80000, 0x80000, CRC(1be9a483) SHA1(6cff1dd15ca163237bc82fb4a3e1d469d35e7be8) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "pa3-01m.2c", 0x000000, 0x100000, CRC(068a152c) SHA1(fa491874068924c39bcc7de93dfda3b27f5d9613) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000004, 0x100000 )
+ ROMX_LOAD( "pa3-07m.2f", 0x000002, 0x100000, CRC(3a4a619d) SHA1(cfe68e24632b53fb6cd6d03b2166d6b5ba28b778) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000006, 0x100000 )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "pa3_11.11f", 0x00000, 0x08000, CRC(cb1423a2) SHA1(3191bf5d340168647881738cb2aed09b1d86146e) )
+ ROM_IGNORE( 0x18000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "pa3_05.10d", 0x00000, 0x20000, CRC(73a10d5d) SHA1(999465e4fbc35a34746d2db61ad49f61403d5af7) )
+ ROM_LOAD( "pa3_06.11d", 0x20000, 0x20000, CRC(affa4f82) SHA1(27b9292bbc121cf585f53297a79fe8f0d0a729ae) )
+
+ 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( "cp1b1f.1f", 0x0000, 0x0117, CRC(3979b8e3) SHA1(07c9819d68b4d93bc37b96bd15d689ce54fe034e) )
+ ROM_LOAD( "cp1b8k.8k", 0x0000, 0x0117, CRC(8a52ea7a) SHA1(47a59abc54a83292cfd6faa2d293c8f948c7ea03) )
+ ROM_LOAD( "cp1b9k.9k", 0x0000, 0x0117, CRC(a754bdc3) SHA1(9267b24cbddee4858b219468cc92f9df8f5fd0ef) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 94916-10 */
+ROM_START( pang3j )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "pa3j_17.11l", 0x00000, 0x80000, CRC(21f6e51f) SHA1(b447e05261f59b3b2e89bbc0f606d7136b29cb56) )
+ ROM_LOAD16_WORD_SWAP( "pa3j_16.10l", 0x80000, 0x80000, CRC(ca1d7897) SHA1(46aa9232e81a838f3eff1e9b992492a264914fd5) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "pa3-01m.2c", 0x000000, 0x100000, CRC(068a152c) SHA1(fa491874068924c39bcc7de93dfda3b27f5d9613) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000004, 0x100000 )
+ ROMX_LOAD( "pa3-07m.2f", 0x000002, 0x100000, CRC(3a4a619d) SHA1(cfe68e24632b53fb6cd6d03b2166d6b5ba28b778) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000006, 0x100000 )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "pa3_11.11f", 0x00000, 0x08000, CRC(cb1423a2) SHA1(3191bf5d340168647881738cb2aed09b1d86146e) )
+ ROM_IGNORE( 0x18000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "pa3_05.10d", 0x00000, 0x20000, CRC(73a10d5d) SHA1(999465e4fbc35a34746d2db61ad49f61403d5af7) )
+ ROM_LOAD( "pa3_06.11d", 0x20000, 0x20000, CRC(affa4f82) SHA1(27b9292bbc121cf585f53297a79fe8f0d0a729ae) )
+
+ 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( "cp1b1f.1f", 0x0000, 0x0117, CRC(3979b8e3) SHA1(07c9819d68b4d93bc37b96bd15d689ce54fe034e) )
+ ROM_LOAD( "cp1b8k.8k", 0x0000, 0x0117, CRC(8a52ea7a) SHA1(47a59abc54a83292cfd6faa2d293c8f948c7ea03) )
+ ROM_LOAD( "cp1b9k.9k", 0x0000, 0x0117, CRC(a754bdc3) SHA1(9267b24cbddee4858b219468cc92f9df8f5fd0ef) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 94916-10 */
+/* This set comes from a not encrypted bootleg that uses a very well reproduced Mitchell 94916-10 B-Board surmounted by an
+ original Capcom 92631C-6 C-Board. Mitchell mark has been erased, original 32 pin EPROM PA3_11.11F resized and replaced by
+ one with 28 pin while the protection chip MACH215 mounted on the B-Board has been replaced by a 22 pin PAL. */
+ROM_START( pang3b )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "pa3w_17.11l", 0x00000, 0x80000, CRC(12138234) SHA1(956a2c847a3cfb94007d1a636167fd2bb9f826ec) )
+ ROM_LOAD16_WORD_SWAP( "pa3w_16.10l", 0x80000, 0x80000, CRC(d1ba585c) SHA1(c6d04441fe97abf0a72b23c917777a7b58e94a85) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "pa3-01m.2c", 0x000000, 0x100000, CRC(068a152c) SHA1(fa491874068924c39bcc7de93dfda3b27f5d9613) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000004, 0x100000 )
+ ROMX_LOAD( "pa3-07m.2f", 0x000002, 0x100000, CRC(3a4a619d) SHA1(cfe68e24632b53fb6cd6d03b2166d6b5ba28b778) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000006, 0x100000 )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "pa3_11.11f", 0x00000, 0x08000, CRC(90a08c46) SHA1(7544adab2d7e052e0d21c920bff7841d9d718345) ) // == pa3_11.11f but different size, resized by bootlegger
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "pa3_05.10d", 0x00000, 0x20000, CRC(73a10d5d) SHA1(999465e4fbc35a34746d2db61ad49f61403d5af7) )
+ ROM_LOAD( "pa3_06.11d", 0x20000, 0x20000, CRC(affa4f82) SHA1(27b9292bbc121cf585f53297a79fe8f0d0a729ae) )
+
+ 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( "cp1b1f.1f", 0x0000, 0x0117, CRC(3979b8e3) SHA1(07c9819d68b4d93bc37b96bd15d689ce54fe034e) )
+ ROM_LOAD( "cp1b8k.8k", 0x0000, 0x0117, CRC(8a52ea7a) SHA1(47a59abc54a83292cfd6faa2d293c8f948c7ea03) )
+ ROM_LOAD( "cp1b9k.9k", 0x0000, 0x0117, CRC(a754bdc3) SHA1(9267b24cbddee4858b219468cc92f9df8f5fd0ef) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 91635B-2 */
+/* Note that this USA set seems to be the only one where GFX are stored into EPROMs instead of the usual MASK ROMs. */
+ROM_START( megaman )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "rcmu_23b.8f", 0x000000, 0x80000, CRC(1cd33c7a) SHA1(687fb3b6d660d7350447193f1911c47972e7a020) )
+ ROM_LOAD16_WORD_SWAP( "rcmu_22b.7f", 0x080000, 0x80000, CRC(708268c4) SHA1(554e011cad285b95dd1b6aa19be61b2413662a3a) )
+ ROM_LOAD16_WORD_SWAP( "rcmu_21a.6f", 0x100000, 0x80000, CRC(4376ea95) SHA1(7370ceffca513aa9f68a74f6869d561476589200) )
+
+ ROM_REGION( 0x800000, "gfx", 0 )
+ ROMX_LOAD( "rcm_01.3a", 0x000000, 0x80000, CRC(6ecdf13f) SHA1(2a8fe06bf5011e3f990f90d9224f91d8631ec0cc) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_02.4a", 0x000002, 0x80000, CRC(944d4f0f) SHA1(665dc9a537e9c9b565f6136f939ff5c2861f875f) , ROM_GROUPWORD | ROM_SKIP(6) ) // Dumped as rcm_03.5a
+ ROMX_LOAD( "rcm_03.5a", 0x000004, 0x80000, CRC(36f3073c) SHA1(457d68e63599d06a136e152a9ad60adac1c91edd) , ROM_GROUPWORD | ROM_SKIP(6) ) // Dumped as rcm_02.4a
+ ROMX_LOAD( "rcm_04.6a", 0x000006, 0x80000, CRC(54e622ff) SHA1(36f6297e3d410f041be5e582919478b0d52520ca) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_05.7a", 0x200000, 0x80000, CRC(5dd131fd) SHA1(1a7fc8cf38901245d40901996e946e7ad9c0e0c5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_06.8a", 0x200002, 0x80000, CRC(f0faf813) SHA1(adff01c2ecc4c8ce6f8a50cbd07d8f8bb9f48168) , ROM_GROUPWORD | ROM_SKIP(6) ) // Dumped as rcm_07.9a
+ ROMX_LOAD( "rcm_07.9a", 0x200004, 0x80000, CRC(826de013) SHA1(47f36b1d92a487c43c8dadc8293b8e6f40649286) , ROM_GROUPWORD | ROM_SKIP(6) ) // Dumped as rcm_06.8a
+ ROMX_LOAD( "rcm_08.10a", 0x200006, 0x80000, CRC(fbff64cf) SHA1(f0cb531ef195dc1dcd224a208906a62fb5d199a1) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_10.3c", 0x400000, 0x80000, CRC(4dc8ada9) SHA1(776c2b3ef24c2b8f390c05a9c6728b14ceec696e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_11.4c", 0x400002, 0x80000, CRC(f2b9ee06) SHA1(db315b00d1caed1a8c0f6e0ae726e8fa05b011fa) , ROM_GROUPWORD | ROM_SKIP(6) ) // Dumped as rcm_12.5c
+ ROMX_LOAD( "rcm_12.5c", 0x400004, 0x80000, CRC(fed5f203) SHA1(23db14490519b5e2d0bb92ffe6e14540d1999e4b) , ROM_GROUPWORD | ROM_SKIP(6) ) // Dumped as rcm_11.4c
+ ROMX_LOAD( "rcm_13.6c", 0x400006, 0x80000, CRC(5069d4a9) SHA1(b832b98be94371af52bd4bb911e18ec57430a7db) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_14.7c", 0x600000, 0x80000, CRC(303be3bd) SHA1(1e5c3fd71966ea9f457840c40582795b501c323e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_15.8c", 0x600002, 0x80000, CRC(4f2d372f) SHA1(db6a94d1f92c1b96e404b38ebcb1eedbec3ae6cc) , ROM_GROUPWORD | ROM_SKIP(6) ) // Dumped as rcm_16.9c
+ ROMX_LOAD( "rcm_16.9c", 0x600004, 0x80000, CRC(93d97fde) SHA1(e4be5216f98ad08a9118d629d398be2bd54e2e2a) , ROM_GROUPWORD | ROM_SKIP(6) ) // Dumped as rcm_15.8c
+ ROMX_LOAD( "rcm_17.10c", 0x600006, 0x80000, CRC(92371042) SHA1(c55833cbaddcc986edd23c009a3e3c7ff09c2708) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "rcm_09.11a", 0x00000, 0x08000, CRC(22ac8f5f) SHA1(d1441d880f98034645cb4fcecd7bb746bde638af) ) /* different size from megamana, rockmanj but same label, pcb verified */
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "rcm_18.11c", 0x00000, 0x20000, CRC(80f1f8aa) SHA1(4a5b7b2a6941ad68da7472c63362c7bcd353fa54) )
+ ROM_LOAD( "rcm_19.12c", 0x20000, 0x20000, CRC(f257dbe1) SHA1(967def6b6f93039dbc46373caabeb3301577be75) )
+
+ 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( "rcm63b.1a", 0x0000, 0x0117, CRC(84acd494) SHA1(20c861714c8c68bc8cf3bde9d051969807e9b3a3) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 91634B-2 */
+ROM_START( megamana )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "rcma_23b.8f", 0x000000, 0x80000, CRC(61e4a397) SHA1(a90b1cbef4206a4554398bc458a4b3e2c46d4c4f) )
+ ROM_LOAD16_WORD_SWAP( "rcma_22b.7f", 0x080000, 0x80000, CRC(708268c4) SHA1(554e011cad285b95dd1b6aa19be61b2413662a3a) ) // == rcmu_22b.7f
+ ROM_LOAD16_WORD_SWAP( "rcma_21a.6f", 0x100000, 0x80000, CRC(4376ea95) SHA1(7370ceffca513aa9f68a74f6869d561476589200) ) // == rcmu_21a.6f
+
+ ROM_REGION( 0x800000, "gfx", 0 )
+ ROMX_LOAD( "rcm_01.3a", 0x000000, 0x80000, CRC(6ecdf13f) SHA1(2a8fe06bf5011e3f990f90d9224f91d8631ec0cc) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_02.4a", 0x000002, 0x80000, CRC(944d4f0f) SHA1(665dc9a537e9c9b565f6136f939ff5c2861f875f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_03.5a", 0x000004, 0x80000, CRC(36f3073c) SHA1(457d68e63599d06a136e152a9ad60adac1c91edd) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_04.6a", 0x000006, 0x80000, CRC(54e622ff) SHA1(36f6297e3d410f041be5e582919478b0d52520ca) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_05.7a", 0x200000, 0x80000, CRC(5dd131fd) SHA1(1a7fc8cf38901245d40901996e946e7ad9c0e0c5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_06.8a", 0x200002, 0x80000, CRC(f0faf813) SHA1(adff01c2ecc4c8ce6f8a50cbd07d8f8bb9f48168) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_07.9a", 0x200004, 0x80000, CRC(826de013) SHA1(47f36b1d92a487c43c8dadc8293b8e6f40649286) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_08.10a", 0x200006, 0x80000, CRC(fbff64cf) SHA1(f0cb531ef195dc1dcd224a208906a62fb5d199a1) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_10.3c", 0x400000, 0x80000, CRC(4dc8ada9) SHA1(776c2b3ef24c2b8f390c05a9c6728b14ceec696e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_11.4c", 0x400002, 0x80000, CRC(f2b9ee06) SHA1(db315b00d1caed1a8c0f6e0ae726e8fa05b011fa) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_12.5c", 0x400004, 0x80000, CRC(fed5f203) SHA1(23db14490519b5e2d0bb92ffe6e14540d1999e4b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_13.6c", 0x400006, 0x80000, CRC(5069d4a9) SHA1(b832b98be94371af52bd4bb911e18ec57430a7db) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_14.7c", 0x600000, 0x80000, CRC(303be3bd) SHA1(1e5c3fd71966ea9f457840c40582795b501c323e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_15.8c", 0x600002, 0x80000, CRC(4f2d372f) SHA1(db6a94d1f92c1b96e404b38ebcb1eedbec3ae6cc) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_16.9c", 0x600004, 0x80000, CRC(93d97fde) SHA1(e4be5216f98ad08a9118d629d398be2bd54e2e2a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_17.10c", 0x600006, 0x80000, CRC(92371042) SHA1(c55833cbaddcc986edd23c009a3e3c7ff09c2708) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "rcm_09.12a", 0x00000, 0x08000, CRC(9632d6ef) SHA1(2bcb6f17005ffbc9ef8fa4478a814f24b2e6e0b6) )
+ ROM_CONTINUE( 0x10000, 0x18000 ) // second half of ROM is empty, not mapped in memory
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "rcm_18.11c", 0x00000, 0x20000, CRC(80f1f8aa) SHA1(4a5b7b2a6941ad68da7472c63362c7bcd353fa54) )
+ ROM_LOAD( "rcm_19.12c", 0x20000, 0x20000, CRC(f257dbe1) SHA1(967def6b6f93039dbc46373caabeb3301577be75) )
+
+ 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( "rcm63b.1a", 0x0000, 0x0117, CRC(84acd494) SHA1(20c861714c8c68bc8cf3bde9d051969807e9b3a3) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 91634B-2 */
+ROM_START( rockmanj )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "rcm_23a.8f", 0x000000, 0x80000, CRC(efd96cb2) SHA1(cbe81554f60d0c897f3f2ebc5bc966bb03cc23fe) )
+ ROM_LOAD16_WORD_SWAP( "rcm_22a.7f", 0x080000, 0x80000, CRC(8729a689) SHA1(14ddb34d8201c544ea9d3d8c2cc52d380bc72930) )
+ ROM_LOAD16_WORD_SWAP( "rcm_21a.6f", 0x100000, 0x80000, CRC(517ccde2) SHA1(492256c192f0c4814efa1ee1dd390453dd2e5865) )
+
+ ROM_REGION( 0x800000, "gfx", 0 )
+ ROMX_LOAD( "rcm_01.3a", 0x000000, 0x80000, CRC(6ecdf13f) SHA1(2a8fe06bf5011e3f990f90d9224f91d8631ec0cc) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_02.4a", 0x000002, 0x80000, CRC(944d4f0f) SHA1(665dc9a537e9c9b565f6136f939ff5c2861f875f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_03.5a", 0x000004, 0x80000, CRC(36f3073c) SHA1(457d68e63599d06a136e152a9ad60adac1c91edd) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_04.6a", 0x000006, 0x80000, CRC(54e622ff) SHA1(36f6297e3d410f041be5e582919478b0d52520ca) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_05.7a", 0x200000, 0x80000, CRC(5dd131fd) SHA1(1a7fc8cf38901245d40901996e946e7ad9c0e0c5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_06.8a", 0x200002, 0x80000, CRC(f0faf813) SHA1(adff01c2ecc4c8ce6f8a50cbd07d8f8bb9f48168) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_07.9a", 0x200004, 0x80000, CRC(826de013) SHA1(47f36b1d92a487c43c8dadc8293b8e6f40649286) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_08.10a", 0x200006, 0x80000, CRC(fbff64cf) SHA1(f0cb531ef195dc1dcd224a208906a62fb5d199a1) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_10.3c", 0x400000, 0x80000, CRC(4dc8ada9) SHA1(776c2b3ef24c2b8f390c05a9c6728b14ceec696e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_11.4c", 0x400002, 0x80000, CRC(f2b9ee06) SHA1(db315b00d1caed1a8c0f6e0ae726e8fa05b011fa) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_12.5c", 0x400004, 0x80000, CRC(fed5f203) SHA1(23db14490519b5e2d0bb92ffe6e14540d1999e4b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_13.6c", 0x400006, 0x80000, CRC(5069d4a9) SHA1(b832b98be94371af52bd4bb911e18ec57430a7db) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_14.7c", 0x600000, 0x80000, CRC(303be3bd) SHA1(1e5c3fd71966ea9f457840c40582795b501c323e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_15.8c", 0x600002, 0x80000, CRC(4f2d372f) SHA1(db6a94d1f92c1b96e404b38ebcb1eedbec3ae6cc) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_16.9c", 0x600004, 0x80000, CRC(93d97fde) SHA1(e4be5216f98ad08a9118d629d398be2bd54e2e2a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_17.10c", 0x600006, 0x80000, CRC(92371042) SHA1(c55833cbaddcc986edd23c009a3e3c7ff09c2708) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "rcm_09.12a", 0x00000, 0x08000, CRC(9632d6ef) SHA1(2bcb6f17005ffbc9ef8fa4478a814f24b2e6e0b6) )
+ ROM_CONTINUE( 0x10000, 0x18000 ) // second half of ROM is empty, not mapped in memory
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "rcm_18.11c", 0x00000, 0x20000, CRC(80f1f8aa) SHA1(4a5b7b2a6941ad68da7472c63362c7bcd353fa54) )
+ ROM_LOAD( "rcm_19.12c", 0x20000, 0x20000, CRC(f257dbe1) SHA1(967def6b6f93039dbc46373caabeb3301577be75) )
+
+ 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( "rcm63b.1a", 0x0000, 0x0117, CRC(84acd494) SHA1(20c861714c8c68bc8cf3bde9d051969807e9b3a3) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+/* B-Board 91634B-2 */
+ROM_START( ganbare )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "mrnj_23d.8f", 0x00000, 0x80000, CRC(f929be72) SHA1(d175bdcace469277479ef85bf4e1b9d5a63cffde) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "mrnj_01.3a", 0x000000, 0x80000, CRC(3f878020) SHA1(b18faa50d88c76d19db1af73cf4b3095e928f51f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mrnj_02.4a", 0x000002, 0x80000, CRC(3e5624d8) SHA1(502e4897916af1c9e121b096de1369d06f1ffe87) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mrnj_03.5a", 0x000004, 0x80000, CRC(d1e61f96) SHA1(5f6dee8adbf83c697416e440fbdd3a84a6e698da) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mrnj_04.6a", 0x000006, 0x80000, CRC(d241971b) SHA1(b641740b40a043affbb79ea91ba12f821a259bad) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mrnj_05.7a", 0x200000, 0x80000, CRC(c0a14562) SHA1(2fb6cf98fed83ac92c33df9526102a101454e276) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mrnj_06.8a", 0x200002, 0x80000, CRC(e6a71dfc) SHA1(67178b020f87fb28ef35292d008ce9b80e02a2db) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mrnj_07.9a", 0x200004, 0x80000, CRC(99afb6c7) SHA1(5caead2b71cd54f6b53765f09829cc9e92e1e2d6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mrnj_08.10a", 0x200006, 0x80000, CRC(52882c20) SHA1(5e3fca6da3470aeb78534f01e1575d8c0e067c0e) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "mrnj_09.12a", 0x00000, 0x08000, CRC(62470d72) SHA1(1de357a20f794defb49ed01af5b95ad00e2aa1d9) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "mrnj_18.11c", 0x00000, 0x20000, CRC(08e13940) SHA1(5c7dd7ff6a66f100b59cf9244e78f2c8702faca1) )
+ ROM_LOAD( "mrnj_19.12c", 0x20000, 0x20000, CRC(5fa59927) SHA1(f05246cf566c214b008a91816c71e7c03b7cc218) )
+
+ ROM_REGION( 0x8000, "timekeeper", 0) /* Timekeeper internal RAM was dumped (but game overwrites it - should I keep this here or remove it?) */
+ ROM_LOAD( "m48t35y-70pc1.9n", 0x00000, 0x8000, CRC(96107b4a) SHA1(be9149736030e06c96083dcac73b5be3dbc318ac) )
+
+ 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( "gbpr2.1a", 0x0000, 0x0117, CRC(486e8ca0) SHA1(4554befd49ec322af7dadd198188255ae7c7c059) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+ROM_END
+
+
+ROM_START( pokonyan )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "xmqq-12f.bin", 0x00000, 0x20000, CRC(196297bf) SHA1(4724c4ccb755d3d457f5224d4c4ea860664d3b10) )
+ ROM_LOAD16_BYTE( "xmqq-12h.bin", 0x00001, 0x20000, CRC(2d7ee2e9) SHA1(af9f8c346e36b4bd6284913129782187e242aa3f) )
+ ROM_LOAD16_BYTE( "xmqq-13f.bin", 0x40000, 0x20000, CRC(8f6abf26) SHA1(e9918abc5ca02c8b3f3b5b2410aedc350dc12ec2) )
+ ROM_LOAD16_BYTE( "xmqq-13h.bin", 0x40001, 0x20000, CRC(3fefe432) SHA1(42763c047fd976c9a8fec3a38f2b132b6e2e15a9) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "xmqq-4b.bin", 0x000000, 0x20000, CRC(933ab76d) SHA1(a51536b0ad89e08356cbb500c60099bd2a192a76) , ROM_SKIP(7) )
+ ROMX_LOAD( "xmqq-4a.bin", 0x000001, 0x20000, CRC(b098e7a9) SHA1(c848ddc0e6559dac6ca23d29c12bc65ea19b7dc4) , ROM_SKIP(7) )
+ ROMX_LOAD( "xmqq-9b.bin", 0x000002, 0x20000, CRC(b66d62d4) SHA1(1be1b89aa24382b4a3d4585b22b83f35b2a27333) , ROM_SKIP(7) )
+ ROMX_LOAD( "xmqq-9a.bin", 0x000003, 0x20000, CRC(9c23e40b) SHA1(9b5de73c4c6679a53871a45743a60c7cdefc8aaa) , ROM_SKIP(7) )
+ ROMX_LOAD( "xmqq-5e.bin", 0x000004, 0x20000, CRC(63d06d6f) SHA1(364d81aafa4d97e8d709e13b481585f655924254) , ROM_SKIP(7) )
+ ROMX_LOAD( "xmqq-5c.bin", 0x000005, 0x20000, CRC(e2169bb5) SHA1(2ca3d6eeee27606af0b21c69491c3bfbe1f82ed6) , ROM_SKIP(7) )
+ ROMX_LOAD( "xmqq-8h.bin", 0x000006, 0x20000, CRC(113121f5) SHA1(d5b3c97e70c3f53d4d68ed56d98e84df59f42073) , ROM_SKIP(7) )
+ ROMX_LOAD( "xmqq-8f.bin", 0x000007, 0x20000, CRC(beb00e07) SHA1(ab0264cb98fe9d77c5acff86800273ed4bdf2e1f) , ROM_SKIP(7) )
+ ROMX_LOAD( "xmqq-5b.bin", 0x100000, 0x20000, CRC(05354905) SHA1(6a53c47c9d87f76bf73b8cab540910cdcfcb9133) , ROM_SKIP(7) )
+ ROMX_LOAD( "xmqq-5a.bin", 0x100001, 0x20000, CRC(bd40215e) SHA1(7350e56ecef8e87cf5a4d4f50231fada6fc5356b) , ROM_SKIP(7) )
+ ROMX_LOAD( "xmqq-10b.bin", 0x100002, 0x20000, CRC(9fa773ef) SHA1(4f0cf813cfe7fbdf20403cfab81b1c01907eb62f) , ROM_SKIP(7) )
+ ROMX_LOAD( "xmqq-10a.bin", 0x100003, 0x20000, CRC(638d4bc7) SHA1(fca924ad53ad1d00dc2e70436fd22de81c08115f) , ROM_SKIP(7) )
+ ROMX_LOAD( "xmqq-7e.bin", 0x100004, 0x20000, CRC(72c45858) SHA1(e1ea89568077739b891c95f57c867c02f6c109ff) , ROM_SKIP(7) )
+ ROMX_LOAD( "xmqq-7c.bin", 0x100005, 0x20000, CRC(d91cda18) SHA1(ef40cb78484355be74d2a08fdd870b49263ab57d) , ROM_SKIP(7) )
+ ROMX_LOAD( "xmqq-9h.bin", 0x100006, 0x20000, CRC(3cd8594b) SHA1(a099428d0f0231f91881beee0bd6a80ba2c3d693) , ROM_SKIP(7) )
+ ROMX_LOAD( "xmqq-9f.bin", 0x100007, 0x20000, CRC(1ec10bed) SHA1(139563c41450591b5674d885e3260cb99b206e25) , ROM_SKIP(7) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "xmqq-13b.bin", 0x00000, 0x08000, CRC(4e8b81a8) SHA1(4a837345223c51d668ec7f4d7460871c00f71482) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "xmqq-12c.bin", 0x00000, 0x20000, CRC(71ac69ad) SHA1(401fe0294c6b7bc79426ab1922e02a97415cd2ef) )
+ ROM_LOAD( "xmqq-13c.bin", 0x20000, 0x20000, CRC(71e29699) SHA1(8f19a925bbd47ef965c41af233359a1552c7f8b0) )
+
+ /*
+ 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) )
+ */
+
+ /* not sure
+ ROM_REGION( 0x0200, "bboardplds", 0 )
+ ROM_LOAD( "unknown.1a", 0x0000, 0x0117, NO_DUMP )
+ ROM_LOAD( "lwio.12e", 0x0000, 0x0117, CRC(ad52b90c) SHA1(f0fd6aeea515ee449320fe15684e6b3ab7f97bf4) )
+ */
+ROM_END
+
+/* Home 'CPS Changer' Unit - For MESS */
+
+/* B-Board 91635B-2 */
+ROM_START( wofch )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "tk2(ch)_23.8f", 0x000000, 0x80000, CRC(4e0b8dee) SHA1(d2fb716d62b7a259f46bbc74c1976a18d56696ea) )
+ ROM_LOAD16_WORD_SWAP( "tk2(ch)_22.7f", 0x080000, 0x80000, CRC(d0937a8d) SHA1(01d7be446e2e3ef8ca767f59c178240dfd52dd93) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2(ch)_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2_05.7a
+ ROMX_LOAD( "tk2(ch)_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2_06.8a
+ ROMX_LOAD( "tk2(ch)_07.9a", 0x200004, 0x80000, CRC(cc9006c9) SHA1(cfcbec3a67052268a7739538aa28a6391fe5400e) , ROM_GROUPWORD | ROM_SKIP(6) ) /* 1 byte different from wofj, pcb verified */
+ ROMX_LOAD( "tk2(ch)_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2_08.10a
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ 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( "prg2", 0x0000, 0x0117, CRC(4386879a) SHA1(c36896d169d8c78393609acbbe4397931292a033) )
+ 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( "tk263b.1a", 0x0000, 0x0117, CRC(c4b0349b) SHA1(b4873dd5ad8735048deb3475222dde3c0b67eaaf) )
+ ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
+
+ ROM_REGION( 0x0200, "cboardplds", 0 )
+ ROM_LOAD( "ioc1.ic7", 0x0000, 0x0117, CRC(0d182081) SHA1(475b3d417785da4bc512cce2b274bb00d4cc6792) )
+ ROM_LOAD( "c632.ic1", 0x0000, 0x0117, CRC(0fbd9270) SHA1(d7e737b20c44d41e29ca94be56114b31934dde81) )
+
+ ROM_REGION( 0x0200, "dboardplds", 0 )
+ ROM_LOAD( "d7l1.7l", 0x0000, 0x0117, CRC(27b7410d) SHA1(06d0cba0226850f100ff1f539bd7d5db0f90c730) )
+ ROM_LOAD( "d8l1.8l", 0x0000, 0x0117, CRC(539fc7da) SHA1(cad5c91629c6247e49ccbbcbfe6b08229eafae07) )
+ ROM_LOAD( "d9k1.9k", 0x0000, 0x0117, NO_DUMP )
+ ROM_LOAD( "d10f1.10f", 0x0000, 0x0117, CRC(6619c494) SHA1(3aef656c07182a2186f810f30e0d854dd5bd8d18) )
+ROM_END
+
+ROM_START( sfach )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "sfach23", 0x000000, 0x80000, CRC(02a1a853) SHA1(d92b9e774844fdcc9d9946b3e892b021e672d876) )
+ ROM_LOAD16_WORD_SWAP( "sfza22", 0x080000, 0x80000, CRC(8d9b2480) SHA1(405305c1572908d00eab735f28676fbbadb4fac6) )
+ ROM_LOAD16_WORD_SWAP( "sfzch21", 0x100000, 0x80000, CRC(5435225d) SHA1(6b1156fd82d0710e244ede39faaae0847c598376) )
+ ROM_LOAD16_WORD_SWAP( "sfza20", 0x180000, 0x80000, CRC(806e8f38) SHA1(b6d6912aa8f2f590335d7ff9a8214648e7131ebb) )
+
+ ROM_REGION( 0x800000, "gfx", 0 )
+ ROMX_LOAD( "sfz01", 0x000000, 0x80000, CRC(0dd53e62) SHA1(5f3bcf5ca0fd564d115fe5075a4163d3ee3226df) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz02", 0x000002, 0x80000, CRC(94c31e3f) SHA1(2187b3d4977514f2ae486eb33ed76c86121d5745) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz03", 0x000004, 0x80000, CRC(9584ac85) SHA1(bbd62d66b0f6909630e801ce5d6331d43f44d741) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz04", 0x000006, 0x80000, CRC(b983624c) SHA1(841106bb9453e3dfb7869c4b0e9149cc610d515a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz05", 0x200000, 0x80000, CRC(2b47b645) SHA1(bc6426eff5df9417f32666586744626fa544f7b5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz06", 0x200002, 0x80000, CRC(74fd9fb1) SHA1(7945472591f3c06970e96611a0363ed8f3d52c36) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz07", 0x200004, 0x80000, CRC(bb2c734d) SHA1(97a06935f86f31755d2ffdc5b56bef53944bdecd) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz08", 0x200006, 0x80000, CRC(454f7868) SHA1(eecccba7542d893bc41676246a20aa4914b79bbc) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz10", 0x400000, 0x80000, CRC(2a7d675e) SHA1(0144ba34a29fb08b41c780ce65bb06d25724e88f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz11", 0x400002, 0x80000, CRC(e35546c8) SHA1(7b08aa3413494d12c5c550263a5f00b64b98e6ab) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz12", 0x400004, 0x80000, CRC(f122693a) SHA1(71ce901d8d30207e506b6a8d6a4e0fcf3a1b0eac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz13", 0x400006, 0x80000, CRC(7cf942c8) SHA1(a7109facb97a8a11ddf1b4e07de6ff3164d713a1) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz14", 0x600000, 0x80000, CRC(09038c81) SHA1(3461d70902fbfb92ce40f804be6388276a01d153) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz15", 0x600002, 0x80000, CRC(1aa17391) SHA1(b4d0f760a430b7fc4443b6c94da2659315c5b926) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz16", 0x600004, 0x80000, CRC(19a5abd6) SHA1(73ba1de15c883fdc69fd7dccdb58d00ca512d4ea) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz17", 0x600006, 0x80000, CRC(248b3b73) SHA1(95810a17b1caf6372b33ed3e4ee8a7e51482c70d) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x8000, "stars", 0 )
+ ROM_COPY( "gfx", 0x000000, 0x000000, 0x8000 ) /* stars */
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sfz09", 0x00000, 0x08000, CRC(c772628b) SHA1(ebc5b7c173caf1e151f733f23c1b20abec24e16d) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "sfz18", 0x00000, 0x20000, CRC(61022b2d) SHA1(6369d0c1d08a30ee19b94e52ab1463a7784b9de5) )
+ ROM_LOAD( "sfz19", 0x20000, 0x20000, CRC(3b5886d5) SHA1(7e1b7d40ef77b5df628dd663d45a9a13c742cf58) )
+ROM_END
+
+/* FIXME B-Board uncertain but should be 91634B from the program ROM names */
+ROM_START( sfzch )
+ ROM_REGION( CODE_SIZE, "maincpu",0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "sfzch23", 0x000000, 0x80000, CRC(1140743f) SHA1(10bcedb5cca266f2aa3ed99ede6f9a64fc877539))
+ ROM_LOAD16_WORD_SWAP( "sfza22", 0x080000, 0x80000, CRC(8d9b2480) SHA1(405305c1572908d00eab735f28676fbbadb4fac6))
+ ROM_LOAD16_WORD_SWAP( "sfzch21", 0x100000, 0x80000, CRC(5435225d) SHA1(6b1156fd82d0710e244ede39faaae0847c598376))
+ ROM_LOAD16_WORD_SWAP( "sfza20", 0x180000, 0x80000, CRC(806e8f38) SHA1(b6d6912aa8f2f590335d7ff9a8214648e7131ebb))
+
+ ROM_REGION( 0x800000, "gfx", 0 )
+ ROMX_LOAD( "sfz_01.3a", 0x000000, 0x80000, CRC(0dd53e62) SHA1(5f3bcf5ca0fd564d115fe5075a4163d3ee3226df), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz_02.4a", 0x000002, 0x80000, CRC(94c31e3f) SHA1(2187b3d4977514f2ae486eb33ed76c86121d5745), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz_03.5a", 0x000004, 0x80000, CRC(9584ac85) SHA1(bbd62d66b0f6909630e801ce5d6331d43f44d741), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz_04.6a", 0x000006, 0x80000, CRC(b983624c) SHA1(841106bb9453e3dfb7869c4b0e9149cc610d515a), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz_05.7a", 0x200000, 0x80000, CRC(2b47b645) SHA1(bc6426eff5df9417f32666586744626fa544f7b5), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz_06.8a", 0x200002, 0x80000, CRC(74fd9fb1) SHA1(7945472591f3c06970e96611a0363ed8f3d52c36), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz_07.9a", 0x200004, 0x80000, CRC(bb2c734d) SHA1(97a06935f86f31755d2ffdc5b56bef53944bdecd), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz_08.10a", 0x200006, 0x80000, CRC(454f7868) SHA1(eecccba7542d893bc41676246a20aa4914b79bbc), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz_10.3c", 0x400000, 0x80000, CRC(2a7d675e) SHA1(0144ba34a29fb08b41c780ce65bb06d25724e88f), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz_11.4c", 0x400002, 0x80000, CRC(e35546c8) SHA1(7b08aa3413494d12c5c550263a5f00b64b98e6ab), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz_12.5c", 0x400004, 0x80000, CRC(f122693a) SHA1(71ce901d8d30207e506b6a8d6a4e0fcf3a1b0eac), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz_13.6c", 0x400006, 0x80000, CRC(7cf942c8) SHA1(a7109facb97a8a11ddf1b4e07de6ff3164d713a1), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz_14.7c", 0x600000, 0x80000, CRC(09038c81) SHA1(3461d70902fbfb92ce40f804be6388276a01d153), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz_15.8c", 0x600002, 0x80000, CRC(1aa17391) SHA1(b4d0f760a430b7fc4443b6c94da2659315c5b926), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz_16.9c", 0x600004, 0x80000, CRC(19a5abd6) SHA1(73ba1de15c883fdc69fd7dccdb58d00ca512d4ea), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz_17.10c", 0x600006, 0x80000, CRC(248b3b73) SHA1(95810a17b1caf6372b33ed3e4ee8a7e51482c70d), ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x8000, "stars", 0 )
+ ROM_COPY( "gfx", 0x000000, 0x000000, 0x8000 )
+
+ ROM_REGION( 0x18000, "audiocpu",0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sfz_09.12a", 0x00000, 0x08000, CRC(c772628b) SHA1(ebc5b7c173caf1e151f733f23c1b20abec24e16d))
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki",0 ) /* Samples */
+ ROM_LOAD( "sfz_18.11c", 0x00000, 0x20000, CRC(61022b2d) SHA1(6369d0c1d08a30ee19b94e52ab1463a7784b9de5))
+ ROM_LOAD( "sfz_19.12c", 0x20000, 0x20000, CRC(3b5886d5) SHA1(7e1b7d40ef77b5df628dd663d45a9a13c742cf58))
+ROM_END
+
+/* FIXME B-Board uncertain but should be 91634B from the program ROM names */
+ROM_START( sfzbch )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "sfzbch23", 0x000000, 0x80000, CRC(53699f68) SHA1(d7f132faf8c31b5e79c32e6b0cce45377ec8d474) )
+ ROM_LOAD16_WORD_SWAP( "sfza22", 0x080000, 0x80000, CRC(8d9b2480) SHA1(405305c1572908d00eab735f28676fbbadb4fac6) )
+ ROM_LOAD16_WORD_SWAP( "sfzch21", 0x100000, 0x80000, CRC(5435225d) SHA1(6b1156fd82d0710e244ede39faaae0847c598376) )
+ ROM_LOAD16_WORD_SWAP( "sfza20", 0x180000, 0x80000, CRC(806e8f38) SHA1(b6d6912aa8f2f590335d7ff9a8214648e7131ebb) )
+
+ ROM_REGION( 0x800000, "gfx", 0 )
+ ROMX_LOAD( "sfz_01.3a", 0x000000, 0x80000, CRC(0dd53e62) SHA1(5f3bcf5ca0fd564d115fe5075a4163d3ee3226df), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz_02.4a", 0x000002, 0x80000, CRC(94c31e3f) SHA1(2187b3d4977514f2ae486eb33ed76c86121d5745), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz_03.5a", 0x000004, 0x80000, CRC(9584ac85) SHA1(bbd62d66b0f6909630e801ce5d6331d43f44d741), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz_04.6a", 0x000006, 0x80000, CRC(b983624c) SHA1(841106bb9453e3dfb7869c4b0e9149cc610d515a), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz_05.7a", 0x200000, 0x80000, CRC(2b47b645) SHA1(bc6426eff5df9417f32666586744626fa544f7b5), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz_06.8a", 0x200002, 0x80000, CRC(74fd9fb1) SHA1(7945472591f3c06970e96611a0363ed8f3d52c36), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz_07.9a", 0x200004, 0x80000, CRC(bb2c734d) SHA1(97a06935f86f31755d2ffdc5b56bef53944bdecd), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz_08.10a", 0x200006, 0x80000, CRC(454f7868) SHA1(eecccba7542d893bc41676246a20aa4914b79bbc), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz_10.3c", 0x400000, 0x80000, CRC(2a7d675e) SHA1(0144ba34a29fb08b41c780ce65bb06d25724e88f), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz_11.4c", 0x400002, 0x80000, CRC(e35546c8) SHA1(7b08aa3413494d12c5c550263a5f00b64b98e6ab), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz_12.5c", 0x400004, 0x80000, CRC(f122693a) SHA1(71ce901d8d30207e506b6a8d6a4e0fcf3a1b0eac), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz_13.6c", 0x400006, 0x80000, CRC(7cf942c8) SHA1(a7109facb97a8a11ddf1b4e07de6ff3164d713a1), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz_14.7c", 0x600000, 0x80000, CRC(09038c81) SHA1(3461d70902fbfb92ce40f804be6388276a01d153), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz_15.8c", 0x600002, 0x80000, CRC(1aa17391) SHA1(b4d0f760a430b7fc4443b6c94da2659315c5b926), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz_16.9c", 0x600004, 0x80000, CRC(19a5abd6) SHA1(73ba1de15c883fdc69fd7dccdb58d00ca512d4ea), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz_17.10c", 0x600006, 0x80000, CRC(248b3b73) SHA1(95810a17b1caf6372b33ed3e4ee8a7e51482c70d), ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x8000, "stars", 0 )
+ ROM_COPY( "gfx", 0x000000, 0x000000, 0x8000 ) /* stars */
+
+ ROM_REGION( 0x18000, "audiocpu",0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sfz_09.12a", 0x00000, 0x08000, CRC(c772628b) SHA1(ebc5b7c173caf1e151f733f23c1b20abec24e16d))
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki",0 ) /* Samples */
+ ROM_LOAD( "sfz_18.11c", 0x00000, 0x20000, CRC(61022b2d) SHA1(6369d0c1d08a30ee19b94e52ab1463a7784b9de5))
+ ROM_LOAD( "sfz_19.12c", 0x20000, 0x20000, CRC(3b5886d5) SHA1(7e1b7d40ef77b5df628dd663d45a9a13c742cf58))
+ROM_END
+
+
+DRIVER_INIT_MEMBER(cps_state,forgottn)
+{
+ /* Forgotten Worlds has a NEC uPD4701AC on the B-board handling dial inputs from the CN-MOWS connector. */
+ /* The memory mapping is handled by PAL LWIO */
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x800040, 0x800041, write16_delegate(FUNC(cps_state::forgottn_dial_0_reset_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x800048, 0x800049, write16_delegate(FUNC(cps_state::forgottn_dial_1_reset_w),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x800052, 0x800055, read16_delegate(FUNC(cps_state::forgottn_dial_0_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x80005a, 0x80005d, read16_delegate(FUNC(cps_state::forgottn_dial_1_r),this));
+
+ save_item(NAME(m_dial));
+
+ m_dial[0] = 0;
+ m_dial[1] = 0;
+
+ DRIVER_INIT_CALL(cps1);
+}
+
+READ16_MEMBER(cps_state::sf2rb_prot_r)
+{
+ switch (offset)
+ {
+ case 0x01201/2:
+ return 0x0002;
+
+ case 0x81201/2:
+ return 0x0040;
+ }
+
+ return 0;
+}
+
+DRIVER_INIT_MEMBER(cps_state,sf2rb)
+{
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x200000, 0x2fffff, read16_delegate(FUNC(cps_state::sf2rb_prot_r),this));
+
+ DRIVER_INIT_CALL(cps1);
+}
+
+READ16_MEMBER(cps_state::sf2rb2_prot_r)
+{
+ switch (offset)
+ {
+ case 0x01201/2:
+ return 0x0000;
+
+ case 0x81201/2:
+ return 0x0040;
+ }
+
+ return 0;
+}
+
+DRIVER_INIT_MEMBER(cps_state,sf2rb2)
+{
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x200000, 0x2fffff, read16_delegate(FUNC(cps_state::sf2rb2_prot_r),this));
+
+ DRIVER_INIT_CALL(cps1);
+}
+
+DRIVER_INIT_MEMBER(cps_state,sf2ee)
+{
+ /* This specific revision of SF2 has the CPS-B custom mapped at a different address. */
+ /* The mapping is handled by the PAL IOB2 on the B-board */
+ m_maincpu->space(AS_PROGRAM).unmap_readwrite(0x800140, 0x80017f);
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x8001c0, 0x8001ff, read16_delegate(FUNC(cps_state::cps1_cps_b_r),this), write16_delegate(FUNC(cps_state::cps1_cps_b_w),this));
+
+ DRIVER_INIT_CALL(cps1);
+}
+
+DRIVER_INIT_MEMBER(cps_state,sf2thndr)
+{
+ /* This particular hack uses a modified B-board PAL which mirrors the CPS-B registers at an alternate address */
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x8001c0, 0x8001ff, read16_delegate(FUNC(cps_state::cps1_cps_b_r),this), write16_delegate(FUNC(cps_state::cps1_cps_b_w),this));
+
+ DRIVER_INIT_CALL(cps1);
+}
+
+DRIVER_INIT_MEMBER(cps_state,sf2hack)
+{
+ /* some SF2 hacks have some inputs wired to the LSB instead of MSB */
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x800018, 0x80001f, read16_delegate(FUNC(cps_state::cps1_hack_dsw_r),this));
+
+ DRIVER_INIT_CALL(cps1);
+}
+
+
+READ16_MEMBER(cps_state::sf2dongb_prot_r)
+{
+ switch (offset)
+ {
+ case 0x00000/2: // (ret & 0x0f00) == 0x0200
+ case 0x77040/2: // (ret & 0x0ff0) == 0x0210
+ return 0x0210;
+ }
+
+ return 0;
+}
+
+DRIVER_INIT_MEMBER(cps_state,sf2dongb)
+{
+ // There is a hacked up Altera EP910PC-30 DIP in the 5f socket instead of a 4th eprom
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x180000, 0x1fffff, read16_delegate(FUNC(cps_state::sf2dongb_prot_r),this));
+
+ DRIVER_INIT_CALL(cps1);
+}
+
+READ16_MEMBER(cps_state::sf2ceblp_prot_r)
+{
+ if (sf2ceblp_prot == 0x0)
+ return 0x1992;
+ if (sf2ceblp_prot == 0x04)
+ return 0x0408;
+ return 0xffff;
+}
+
+WRITE16_MEMBER(cps_state::sf2ceblp_prot_w)
+{
+ sf2ceblp_prot = data;
+}
+
+
+DRIVER_INIT_MEMBER( cps_state, sf2ceblp )
+{
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x5762b0, 0x5762b1, write16_delegate(FUNC(cps_state::sf2ceblp_prot_w),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x57A2b0, 0x57A2b1, read16_delegate(FUNC(cps_state::sf2ceblp_prot_r),this));
+
+ DRIVER_INIT_CALL(cps1);
+}
+
+DRIVER_INIT_MEMBER( cps_state, sf2m8 )
+{
+ // unscramble gfx
+ uint8_t *grom = memregion("gfx")->base();
+ uint8_t *urom = memregion("user2")->base();
+ int i = 0x480000, j = 0;
+
+ for (j = 0x20000; j < 0x80000; j+=2)
+ {
+ grom[i++] = urom[j];
+ grom[i++] = urom[j|0x100000];
+ grom[i++] = urom[j|0x000001];
+ grom[i++] = urom[j|0x100001];
+ grom[i++] = urom[j|0x080000];
+ grom[i++] = urom[j|0x180000];
+ grom[i++] = urom[j|0x080001];
+ grom[i++] = urom[j|0x180001];
+ }
+
+ DRIVER_INIT_CALL(cps1);
+}
+
+void cps_state::kabuki_setup(void (*decode)(uint8_t *src, uint8_t *dst))
+{
+ m_decrypt_kabuki = std::make_unique<uint8_t[]>(0x8000);
+ uint8_t *rom = memregion("audiocpu")->base();
+ decode(rom, m_decrypt_kabuki.get());
+ membank("decrypted")->set_base(m_decrypt_kabuki.get());
+}
+
+DRIVER_INIT_MEMBER(cps_state,wof)
+{
+ kabuki_setup(wof_decode);
+ DRIVER_INIT_CALL(cps1);
+}
+
+DRIVER_INIT_MEMBER(cps_state,dino)
+{
+ kabuki_setup(dino_decode);
+ DRIVER_INIT_CALL(cps1);
+}
+
+DRIVER_INIT_MEMBER(cps_state,punisher)
+{
+ kabuki_setup(punisher_decode);
+ DRIVER_INIT_CALL(cps1);
+}
+
+DRIVER_INIT_MEMBER(cps_state,slammast)
+{
+ kabuki_setup(slammast_decode);
+ DRIVER_INIT_CALL(cps1);
+}
+
+DRIVER_INIT_MEMBER(cps_state,pang3b)
+{
+ /* Pang 3 is the only non-QSound game to have an EEPROM. */
+ /* It is mapped in the CPS-B address range so probably is on the C-board. */
+ m_maincpu->space(AS_PROGRAM).install_readwrite_port(0x80017a, 0x80017b, "EEPROMIN", "EEPROMOUT");
+
+ DRIVER_INIT_CALL(cps1);
+}
+
+DRIVER_INIT_MEMBER(cps_state,pang3)
+{
+ uint16_t *rom = (uint16_t *)memregion("maincpu")->base();
+ int A, src, dst;
+
+ for (A = 0x80000; A < 0x100000; A += 2)
+ {
+ /* only the low 8 bits of each word are encrypted */
+ src = rom[A / 2];
+ dst = src & 0xff00;
+ if ( src & 0x01) dst ^= 0x04;
+ if ( src & 0x02) dst ^= 0x21;
+ if ( src & 0x04) dst ^= 0x01;
+ if (~src & 0x08) dst ^= 0x50;
+ if ( src & 0x10) dst ^= 0x40;
+ if ( src & 0x20) dst ^= 0x06;
+ if ( src & 0x40) dst ^= 0x08;
+ if (~src & 0x80) dst ^= 0x88;
+ rom[A/2] = dst;
+ }
+
+ DRIVER_INIT_CALL(pang3b);
+}
+
+READ16_MEMBER(cps_state::ganbare_ram_r)
+{
+ uint16_t result = 0xffff;
+
+ if (ACCESSING_BITS_0_7)
+ result = (result & ~0x00ff) | m_m48t35->read(space, offset, 0xff);
+ if (ACCESSING_BITS_8_15)
+ result = (result & ~0xff00) | (m_mainram[offset] & 0xff00);
+
+ return result;
+}
+
+WRITE16_MEMBER(cps_state::ganbare_ram_w)
+{
+ COMBINE_DATA(&m_mainram[offset]);
+
+ if (ACCESSING_BITS_0_7)
+ m_m48t35->write(space, offset, data & 0xff, 0xff);
+}
+
+DRIVER_INIT_MEMBER(cps_state, ganbare)
+{
+ DRIVER_INIT_CALL(cps1);
+
+ /* ram is shared between the CPS work ram and the timekeeper ram */
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xff0000, 0xffffff, read16_delegate(FUNC(cps_state::ganbare_ram_r),this), write16_delegate(FUNC(cps_state::ganbare_ram_w),this));
+}
+
+READ16_MEMBER(cps_state::dinohunt_sound_r)
+{
+ /*TODO: understand what's really going on here. According to MT05805;
+ "I think that the values written are only qsound leftovers (after a lot of 0xFF values,
+ there is the same qsound starting sequence, eg: 0x88, 0xFF, 0x0B, 0x00, 0x00, 0x00, ...)."*/
+ return 0xff;
+}
+
+DRIVER_INIT_MEMBER(cps_state,dinohunt)
+{
+ // is this shared with the new sound hw?
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xf18000, 0xf19fff, read16_delegate(FUNC(cps_state::dinohunt_sound_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_port(0xfc0000, 0xfc0001, "IN2"); ;
+ // the ym2151 doesn't seem to be used. Is it actually on the PCB?
+
+ DRIVER_INIT_CALL(cps1);
+}
+
+WRITE16_MEMBER( cps_state::sf2m3_layer_w )
+{
+ cps1_cps_b_w(space,0x0a,data);
+}
+
+
+
+/*************************************************** Game Macros *****************************************************/
+
+GAME( 1988, forgottn, 0, cps1_10MHz, forgottn, cps_state, forgottn, ROT0, "Capcom", "Forgotten Worlds (World, newer)", MACHINE_SUPPORTS_SAVE ) // (c) Capcom U.S.A. but World "warning"
+GAME( 1988, forgottna, forgottn, 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, strideruc, strider, cps1_10MHz, stridrua, cps_state, cps1, ROT0, "bootleg (Capcom)", "Strider (USA, B-Board 90629B-3, buggy Street Fighter II conversion)", MACHINE_SUPPORTS_SAVE ) // various bugs even on PCB, see rom load
+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, sf2cebltw, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "bootleg", "Street Fighter II': Champion Edition ('Taiwan' bootleg with PAL)", MACHINE_SUPPORTS_SAVE ) // 'Taiwan'
+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, sf2m10, sf2ce, sf2m10, sf2hack, cps_state, cps1, ROT0, "bootleg", "Street Fighter II': Champion Edition (M10, bootleg)", MACHINE_SUPPORTS_SAVE )
+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 )
+GAME( 1994, pokonyan, 0, cps1_10MHz, pokonyan, cps_state, cps1, ROT0, "Capcom", "Pokonyan! Balloon (Japan 940322)", MACHINE_SUPPORTS_SAVE ) // 2002-10-24 was on the ROM labels, 940322 on the startup screen... take your pick
+
+/* Games released on CPS-1 hardware by Mitchell */
+
+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 */
+
+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)", 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
+// HBMAME
+#include "cps1mis.cpp"
diff --git a/src/hbmame/drivers/cps1mis.cpp b/src/hbmame/drivers/cps1mis.cpp
new file mode 100644
index 00000000000..e682375575c
--- /dev/null
+++ b/src/hbmame/drivers/cps1mis.cpp
@@ -0,0 +1,10087 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+/*******************************************************************************************************************
+
+ CPS-1 driver for hacks and bootlegs
+
+Issues:
+
+- knightsh
+ the title screen is garbage.
+
+- kodh
+ title, problem with placement of the letters.
+
+- sk2h1, sk2h2, sk2h3, sk2h22, sk2h31, sk2h32, sk2h33, sk2h34
+ setup screen is blank.
+ map doesn't show first time around prior to demo 1, and never before demo 3.
+ priority issue, easily noticed on 3rd demo where actors are in the wagon instead of behind it.
+
+- sk2h22, sk2h31, sk2h32, sk2h33, sk2h34, sk2h35
+ coin 3, start 3, 3rd player not working.
+
+- wofjcn
+ chinese language rom isn't working. Whatever is tried breaks stuff.
+
+
+*******************************************************************************************************************/
+
+WRITE16_MEMBER( cps_state::dinoh_sound_command_w )
+{
+ /* Pass the Sound Code to the Q-Sound Shared Ram */
+ m_qsound_sharedram1[1] = data;
+}
+
+WRITE16_MEMBER( cps_state::daimakb_palctrl_w )
+{
+ m_cps_b_regs[0x30 / 2] = data;
+}
+
+WRITE16_MEMBER(cps_state::daimakb_layer_w)
+{
+ if (offset == 0x00)
+ m_cps_a_regs[0x0e / 2] = data; /* scroll 1y */
+ else
+ if (offset == 0x01)
+ m_cps_a_regs[0x0c / 2] = data - 0x40; /* scroll 1x */
+ else
+ if (offset == 0x02)
+ {
+ m_cps_a_regs[0x12 / 2] = data; /* scroll 2y */
+ m_cps_a_regs[0x20 / 2] = data; /* row scroll start */
+ }
+ else
+ if (offset == 0x03)
+ m_cps_a_regs[0x10 / 2] = data - 0x40; /* scroll 2x */
+ else
+ if (offset == 0x04)
+ m_cps_a_regs[0x16 / 2] = data; /* scroll 3y */
+ else
+ if (offset == 0x05)
+ m_cps_a_regs[0x14 / 2] = data - 0x40; /* scroll 3x */
+ else
+ if (offset == 0x06)
+ {
+ switch (data)
+ {
+ case 0x0000:
+ data = (1 << 12) | (2 << 8) | (3 << 6);
+ break;
+ case 0x0001:
+ data = (1 << 12) | (3 << 6);
+ break;
+ case 0x0002:
+ data = (3 << 12) | (1 << 6);
+ break;
+ case 0x0006:
+ data = 0;
+ break;
+ default:
+ data = 0;
+ printf ("Unknown control word = %X\n",data);
+ }
+ m_cps_b_regs[0x26 / 2] = data;
+ }
+}
+
+
+
+/**************************************************************************
+
+ Address Maps
+
+***************************************************************************/
+
+static ADDRESS_MAP_START( daimakb_map, AS_PROGRAM, 16, cps_state )
+ AM_RANGE(0x000000, 0x3fffff) AM_ROM
+ AM_RANGE(0x800000, 0x800001) AM_READ_PORT("IN1") /* Player input ports */
+ AM_RANGE(0x800006, 0x800007) AM_WRITE(cps1_soundlatch_w) /* Sound command */
+ AM_RANGE(0x800018, 0x80001f) AM_READ(cps1_hack_dsw_r) /* System input ports / Dip Switches */
+ AM_RANGE(0x800030, 0x800037) AM_WRITE(cps1_coinctrl_w)
+ AM_RANGE(0x800100, 0x80013f) AM_WRITE(cps1_cps_a_w) AM_SHARE("cps_a_regs") /* CPS-A custom */
+ AM_RANGE(0x800166, 0x800171) AM_WRITENOP // not used
+ AM_RANGE(0xe00000, 0xe0003f) AM_READWRITE(cps1_cps_b_r, cps1_cps_b_w) AM_SHARE("cps_b_regs") // dummy region
+ AM_RANGE(0x880000, 0x880001) AM_WRITE(daimakb_palctrl_w)
+ AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram")
+ AM_RANGE(0x980000, 0x98000d) AM_WRITE(daimakb_layer_w)
+ AM_RANGE(0x990000, 0x993fff) AM_WRITENOP // bootleg sprites, not needed
+ AM_RANGE(0xff0000, 0xffffff) AM_RAM
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( sk2h35_map, AS_PROGRAM, 16, cps_state )
+/* unknown addresses (all write): 930008-930807. No 3rd player controls. NVRAM doesn't work */
+ AM_RANGE(0x000000, 0x3fffff) AM_ROM
+ AM_RANGE(0x800000, 0x800001) AM_READ_PORT("IN1") /* Player input ports */
+ AM_RANGE(0x800018, 0x80001f) AM_READ(cps1_dsw_r) /* System input ports / Dip Switches */
+ AM_RANGE(0x80001c, 0x80001d) AM_READ_PORT("EEPROMIN") AM_WRITE_PORT("EEPROMOUT")
+ AM_RANGE(0x800030, 0x800037) AM_WRITE(cps1_coinctrl_w)
+ AM_RANGE(0x800100, 0x80013f) AM_WRITE(cps1_cps_a_w) AM_SHARE("cps_a_regs") /* CPS-A custom */
+ AM_RANGE(0x800140, 0x80017f) AM_READWRITE(cps1_cps_b_r, cps1_cps_b_w) AM_SHARE("cps_b_regs") /* CPS-B custom */
+ AM_RANGE(0x800180, 0x800187) AM_WRITE(cps1_soundlatch_w) /* Sound command */
+ AM_RANGE(0x800188, 0x80018f) AM_WRITE(cps1_soundlatch2_w) /* Sound timer fade */
+ AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram")
+ AM_RANGE(0x930008, 0x930807) AM_WRITENOP
+ AM_RANGE(0xf18000, 0xf19fff) AM_READWRITE(qsound_sharedram1_r, qsound_sharedram1_w) /* Q RAM */
+ AM_RANGE(0xf1ce74, 0xf1ce75) AM_WRITENOP
+ AM_RANGE(0xf1e000, 0xf1ffff) AM_READWRITE(qsound_sharedram2_r, qsound_sharedram2_w) /* Q RAM */
+ AM_RANGE(0xff0000, 0xffffff) AM_RAM
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( cps1frog_map, AS_PROGRAM, 16, cps_state )
+ AM_RANGE(0x000000, 0x3fffff) AM_ROM
+ AM_RANGE(0x800000, 0x800001) AM_READ_PORT("IN1") /* Player input ports */
+ AM_RANGE(0x800030, 0x800031) AM_WRITE(cps1_coinctrl_w)
+ AM_RANGE(0x800100, 0x80013f) AM_WRITE(cps1_cps_a_w) AM_SHARE("cps_a_regs") /* Output ports */
+ AM_RANGE(0x800140, 0x80017f) AM_READWRITE(cps1_cps_b_r, cps1_cps_b_w) AM_SHARE("cps_b_regs")
+ AM_RANGE(0x800180, 0x800187) AM_WRITE(cps1_soundlatch_w) /* Sound command */
+ AM_RANGE(0x800188, 0x80018f) AM_WRITE(cps1_soundlatch2_w) /* Sound timer fade */
+ AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram")
+ AM_RANGE(0xff0000, 0xffffff) AM_RAM
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( sk2h1q_map, AS_PROGRAM, 16, cps_state )
+ AM_RANGE(0x000000, 0x3fffff) AM_ROM
+ AM_RANGE(0x800030, 0x800031) AM_WRITE(cps1_coinctrl_w)
+ AM_RANGE(0x800100, 0x80013f) AM_RAM AM_SHARE("cps_a_regs") /* CPS-A custom */
+ AM_RANGE(0x800140, 0x80017f) AM_READWRITE(cps1_cps_b_r, cps1_cps_b_w) AM_SHARE("cps_b_regs")
+ AM_RANGE(0x880000, 0x880001) AM_READ_PORT("IN1") /* Player input ports */
+ AM_RANGE(0x880006, 0x88000d) AM_READ(cps1_dsw_r) /* System input ports / Dip Switches */
+ AM_RANGE(0x88000e, 0x88000f) AM_WRITENOP
+ AM_RANGE(0x880e78, 0x880e79) AM_READ(cps1_in2_r) /* Player 3 controls (later games) */
+ AM_RANGE(0x890000, 0x890001) AM_WRITENOP
+ AM_RANGE(0x8bfff6, 0x8bfff9) AM_READNOP /* unknown */
+ AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram")
+ AM_RANGE(0xf18000, 0xf19fff) AM_READWRITE(qsound_sharedram1_r, qsound_sharedram1_w) /* Q RAM */
+ AM_RANGE(0xf1c004, 0xf1c005) AM_WRITE(cpsq_coinctrl2_w) /* Coin control2 (later games) */
+ AM_RANGE(0xf1c006, 0xf1c007) AM_READ_PORT("EEPROMIN") AM_WRITE_PORT("EEPROMOUT")
+ AM_RANGE(0xf1e000, 0xf1ffff) AM_READWRITE(qsound_sharedram2_r, qsound_sharedram2_w) /* Q RAM */
+ AM_RANGE(0xff0000, 0xffffff) AM_RAM
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( sk2h3_map, AS_PROGRAM, 16, cps_state )
+ AM_RANGE(0x000000, 0x3fffff) AM_ROM
+ AM_RANGE(0x800030, 0x800031) AM_WRITE(cps1_coinctrl_w)
+ AM_RANGE(0x800100, 0x80013f) AM_RAM AM_SHARE("cps_a_regs") /* CPS-A custom */
+ AM_RANGE(0x800140, 0x80017f) AM_READWRITE(cps1_cps_b_r, cps1_cps_b_w) AM_SHARE("cps_b_regs")
+ AM_RANGE(0x880000, 0x880001) AM_READ_PORT("IN1") /* Player input ports */
+ AM_RANGE(0x880006, 0x88000d) AM_READ(cps1_dsw_r) /* System input ports / Dip Switches */
+ AM_RANGE(0x88000e, 0x88000f) AM_WRITE(cps1_soundlatch_w)
+ AM_RANGE(0x880e78, 0x880e79) AM_READ(cps1_in2_r) /* Player 3 controls (later games) */
+ AM_RANGE(0x890000, 0x890001) AM_WRITENOP
+ AM_RANGE(0x8bfff6, 0x8bfff9) AM_READNOP /* unknown */
+ AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram")
+ AM_RANGE(0xf1c004, 0xf1c005) AM_WRITE(cpsq_coinctrl2_w) /* Coin control2 (later games) */
+ AM_RANGE(0xf1c006, 0xf1c007) AM_READ_PORT("EEPROMIN") AM_WRITE_PORT("EEPROMOUT")
+ AM_RANGE(0xff0000, 0xffffff) AM_RAM
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( sk2h31q_map, AS_PROGRAM, 16, cps_state )
+ AM_RANGE(0x000000, 0x3fffff) AM_ROM
+ AM_RANGE(0x800030, 0x800031) AM_WRITE(cps1_coinctrl_w)
+ AM_RANGE(0x800100, 0x80013f) AM_WRITE(cps1_cps_a_w) AM_SHARE("cps_a_regs") /* Output ports */
+ AM_RANGE(0x800140, 0x80017f) AM_READWRITE(cps1_cps_b_r, cps1_cps_b_w) AM_SHARE("cps_b_regs")
+ AM_RANGE(0x880000, 0x880001) AM_READ_PORT("IN1") /* Player input ports */
+ AM_RANGE(0x880006, 0x880007) AM_WRITENOP // soundlatch on non-qsound hw
+ AM_RANGE(0x880008, 0x88000f) AM_READ(cps1_dsw_r) /* System input ports / Dip Switches */
+ AM_RANGE(0x880e7e, 0x880e7f) AM_READ(cps1_in2_r) /* Player 3 controls (later games) */
+ AM_RANGE(0x890000, 0x890001) AM_WRITENOP
+ AM_RANGE(0x8bfff6, 0x8bfff9) AM_READNOP /* unknown */
+ AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram")
+ AM_RANGE(0xf18000, 0xf19fff) AM_READWRITE(qsound_sharedram1_r, qsound_sharedram1_w) /* Q RAM */
+ AM_RANGE(0xf1c004, 0xf1c005) AM_WRITE(cpsq_coinctrl2_w) /* Coin control2 (later games) */
+ AM_RANGE(0xf1c006, 0xf1c007) AM_READ_PORT("EEPROMIN") AM_WRITE_PORT("EEPROMOUT")
+ AM_RANGE(0xf1e000, 0xf1ffff) AM_READWRITE(qsound_sharedram2_r, qsound_sharedram2_w) /* Q RAM */
+ AM_RANGE(0xff0000, 0xffffff) AM_RAM
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( sk2h31_map, AS_PROGRAM, 16, cps_state )
+ AM_RANGE(0x000000, 0x3fffff) AM_ROM
+ AM_RANGE(0x800030, 0x800031) AM_WRITE(cps1_coinctrl_w)
+ AM_RANGE(0x800100, 0x80013f) AM_WRITE(cps1_cps_a_w) AM_SHARE("cps_a_regs") /* Output ports */
+ AM_RANGE(0x800140, 0x80017f) AM_READWRITE(cps1_cps_b_r, cps1_cps_b_w) AM_SHARE("cps_b_regs")
+ AM_RANGE(0x880000, 0x880001) AM_READ_PORT("IN1") /* Player input ports */
+ AM_RANGE(0x880006, 0x880007) AM_WRITE(cps1_soundlatch_w)
+ AM_RANGE(0x880008, 0x88000f) AM_READ(cps1_dsw_r) /* System input ports / Dip Switches */
+ AM_RANGE(0x880e7e, 0x880e7f) AM_READ(cps1_in2_r) /* Player 3 controls (later games) */
+ AM_RANGE(0x890000, 0x890001) AM_WRITENOP
+ AM_RANGE(0x8bfff6, 0x8bfff9) AM_READNOP /* unknown */
+ AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram")
+ AM_RANGE(0xf1c004, 0xf1c005) AM_WRITE(cpsq_coinctrl2_w) /* Coin control2 (later games) */
+ AM_RANGE(0xf1c006, 0xf1c007) AM_READ_PORT("EEPROMIN") AM_WRITE_PORT("EEPROMOUT")
+ AM_RANGE(0xff0000, 0xffffff) AM_RAM
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( wofsf2_map, AS_PROGRAM, 16, cps_state )
+ AM_RANGE(0x000000, 0x3fffff) AM_ROM
+ AM_RANGE(0x800000, 0x800007) AM_READ_PORT("IN1")
+ AM_RANGE(0x800018, 0x80001f) AM_READ(cps1_hack_dsw_r)
+ AM_RANGE(0x800030, 0x800037) AM_WRITE(cps1_coinctrl_w)
+ AM_RANGE(0x800100, 0x80013f) AM_WRITE(cps1_cps_a_w) AM_SHARE("cps_a_regs") /* CPS-A custom */
+ AM_RANGE(0x800140, 0x80017f) AM_READWRITE(cps1_cps_b_r, cps1_cps_b_w) AM_SHARE("cps_b_regs")
+ AM_RANGE(0x800180, 0x800187) AM_WRITE(cps1_soundlatch_w) /* Sound command */
+ AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram")
+ AM_RANGE(0xf18000, 0xf19fff) AM_RAM
+ AM_RANGE(0xf1c000, 0xf1c001) AM_READ(cps1_in2_r) /* Player 3 controls */
+ AM_RANGE(0xf1c004, 0xf1c005) AM_WRITE(cpsq_coinctrl2_w) /* Coin control2 (later games) */
+ AM_RANGE(0xf1c006, 0xf1c007) AM_READ_PORT("EEPROMIN") AM_WRITE_PORT("EEPROMOUT")
+ AM_RANGE(0xff0000, 0xffffff) AM_RAM AM_SHARE("mainram")
+ADDRESS_MAP_END
+
+/********************************************************************
+
+ Inputs and dips
+
+*********************************************************************/
+
+static INPUT_PORTS_START( dinohz )
+ PORT_INCLUDE( dino )
+
+ PORT_MODIFY("IN1")
+ PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) 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_MODIFY("IN2") /* Player 3 */
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3)
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3)
+// PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3)
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN3 )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 )
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( knightsh )
+ PORT_INCLUDE( knights )
+
+ PORT_MODIFY("IN1")
+ PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) 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_MODIFY("IN2") /* Player 3 */
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3)
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3)
+// PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3)
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN3 )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 )
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( kodh )
+ PORT_INCLUDE( kod )
+
+ PORT_MODIFY("IN1")
+ PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) 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 )
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( pnicku )
+ PORT_INCLUDE( pnickj )
+ PORT_MODIFY("DSWA")
+ PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW(A):1,2,3")
+ PORT_DIPSETTING( 0x00, DEF_STR( 5C_1C ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( 4C_1C ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( 3C_1C ) )
+ PORT_DIPSETTING( 0x03, DEF_STR( 2C_1C ) )
+ PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) )
+ PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) )
+ PORT_DIPSETTING( 0x05, DEF_STR( 1C_3C ) )
+ PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ) )
+
+ PORT_DIPNAME( 0x10, 0x10, "Chuters" ) PORT_DIPLOCATION("SW(A):5")
+ PORT_DIPSETTING( 0x00, "2" )
+ PORT_DIPSETTING( 0x10, "1" )
+
+ PORT_MODIFY("DSWC")
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW(C):3")
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( sk2h3 )
+ PORT_START ("IN0")
+ 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_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
+ PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START ("DSWA")
+ PORT_DIPNAME( 0x03, 0x00, "Play Mode" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Normal ) )
+ PORT_DIPSETTING( 0x03, "Tournament" )
+ PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START ("DSWB")
+ PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coinage ) )
+ PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( 1C_3C ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( 1C_4C ) )
+ PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START ("DSWC")
+ PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNKNOWN )
+
+ PORT_START ("IN1")
+ PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) 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 ("IN2") /* Player 3 */
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3)
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3)
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN3 )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 )
+
+ PORT_START( "EEPROMIN" )
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, do_read)
+
+ PORT_START( "EEPROMOUT" )
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, di_write)
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, clk_write)
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, cs_write)
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( sk2h21 )
+ PORT_INCLUDE( wof )
+
+ PORT_MODIFY("IN1")
+ PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) 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_MODIFY("IN2") /* Player 3 */
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3)
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3)
+// PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(3)
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN3 )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 )
+INPUT_PORTS_END
+
+
+/***********************************************************
+ INPUT PORTS, DIPs
+***********************************************************/
+
+static INPUT_PORTS_START( cps1frog )
+ PORT_START ("IN0")
+ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START ("DSWA")
+ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START ("DSWB")
+ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START ("DSWC")
+ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START ("IN1")
+ PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
+ 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 INPUT_PORTS_START( sk2h1 )
+ PORT_START ("IN0")
+ 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_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
+ PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START ("DSWA")
+ PORT_DIPNAME( 0x03, 0x00, "Play Mode" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Normal ) )
+ PORT_DIPSETTING( 0x03, "Tournament" )
+ PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START ("DSWB")
+ PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coinage ) )
+ PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( 1C_3C ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( 1C_4C ) )
+ PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START ("DSWC")
+ PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNKNOWN )
+
+ PORT_START ("IN1")
+ PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) 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 ("IN2") /* Player 3 */
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3)
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3)
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN3 )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 )
+
+ PORT_START( "EEPROMIN" )
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, do_read)
+
+ PORT_START( "EEPROMOUT" )
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, di_write)
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, clk_write)
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, cs_write)
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( sk2h31 )
+ PORT_START ("IN0")
+ 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_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
+ PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START ("DSWA") /* there are lots of other combinations, but this covers the useful ones */
+ PORT_DIPNAME( 0xff, 0xff, DEF_STR( Coinage ) )
+ PORT_DIPSETTING( 0xde, DEF_STR( 2C_1C ) )
+ PORT_DIPSETTING( 0xff, DEF_STR( 1C_1C ) )
+ PORT_DIPSETTING( 0xfe, DEF_STR( 1C_2C ) )
+ PORT_DIPSETTING( 0xfd, DEF_STR( 1C_3C ) )
+ PORT_DIPSETTING( 0xfc, DEF_STR( 1C_4C ) )
+ PORT_DIPSETTING( 0x7f, DEF_STR( 1C_7C ) )
+ PORT_DIPSETTING( 0xdf, DEF_STR( 1C_8C ) )
+
+ PORT_START ("DSWB") /* (not used, EEPROM) */
+ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START ("DSWC") /* (not used, EEPROM) */
+ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START ("IN1")
+ PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) 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_UNKNOWN )
+ PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START ("IN2") /* Player 3 */
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3)
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3)
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN3 )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 )
+
+ PORT_START( "EEPROMIN" )
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, do_read)
+
+ PORT_START( "EEPROMOUT" )
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, di_write)
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, clk_write)
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, cs_write)
+INPUT_PORTS_END
+
+/********************************************************************
+*
+* Machine Driver macro
+* ====================
+*
+*
+********************************************************************/
+
+
+static MACHINE_CONFIG_DERIVED( wofsf2, wofhfh )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(wofsf2_map)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( daimakb, cps1_10MHz)
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(daimakb_map)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( sk2h3, wofhfh)
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(sk2h3_map)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( sk2h31, wofhfh)
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(sk2h31_map)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( sk2h35, qsound)
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(sk2h35_map)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_START( cps1frog )
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", M68000, XTAL_10MHz ) /* verified on pcb */
+ MCFG_CPU_PROGRAM_MAP(cps1frog_map)
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", cps_state, cps1_interrupt)
+
+ /* audio CPU */
+ MCFG_CPU_ADD("audiocpu", Z80, XTAL_3_579545MHz) /* verified on pcb */
+ MCFG_CPU_PROGRAM_MAP(sub_map)
+
+ MCFG_MACHINE_START_OVERRIDE(cps_state, cps1)
+
+ /* video hardware */
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_RAW_PARAMS(XTAL_16MHz/2, 518, 64, 448, 259, 16, 240) /* guess: assume that CPS-1 uses the same exact timings as CPS-2 */
+ MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_cps1)
+ MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(cps_state, screen_vblank_cps1))
+ MCFG_SCREEN_PALETTE("palette")
+ MCFG_GFXDECODE_ADD("gfxdecode", "palette", cps1)
+ MCFG_PALETTE_ADD("palette", 0xc00)
+ MCFG_VIDEO_START_OVERRIDE(cps_state, cps1)
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+ MCFG_GENERIC_LATCH_8_ADD("soundlatch")
+ MCFG_GENERIC_LATCH_8_ADD("soundlatch2")
+ MCFG_YM2151_ADD("2151", XTAL_3_579545MHz) /* verified on pcb */
+ MCFG_YM2151_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
+ MCFG_SOUND_ROUTE(0, "mono", 0.35)
+ MCFG_SOUND_ROUTE(1, "mono", 0.35)
+ MCFG_OKIM6295_ADD("oki", XTAL_16MHz/4/4, PIN7_HIGH) // pin 7 can be changed by the game code, see f006 on z80
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( sk2h1q, cps1frog )
+
+ /* basic machine hardware */
+ MCFG_CPU_REPLACE("maincpu", M68000, XTAL_12MHz ) /* verified on pcb */
+ MCFG_CPU_PROGRAM_MAP(sk2h1q_map)
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", cps_state, cps1_interrupt)
+
+ MCFG_CPU_REPLACE("audiocpu", Z80, XTAL_8MHz) /* verified on pcb */
+ MCFG_CPU_PROGRAM_MAP(qsound_sub_map)
+ MCFG_CPU_DECRYPTED_OPCODES_MAP(qsound_decrypted_opcodes_map)
+ MCFG_CPU_PERIODIC_INT_DRIVER(cps_state, irq0_line_hold, 250) /* ?? */
+
+ MCFG_MACHINE_START_OVERRIDE(cps_state, qsound)
+
+ MCFG_EEPROM_SERIAL_93C46_ADD("eeprom")
+
+ /* sound hardware */
+ MCFG_DEVICE_REMOVE("mono")
+ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
+
+ MCFG_DEVICE_REMOVE("2151")
+ MCFG_DEVICE_REMOVE("oki")
+
+ MCFG_QSOUND_ADD("qsound", QSOUND_CLOCK)
+ MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
+ MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( sk2h31q, sk2h1q )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(sk2h31q_map)
+MACHINE_CONFIG_END
+
+
+/**********************************************************************
+
+ Roms
+
+***********************************************************************/
+
+ROM_START( 3wondrud )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "3wondrud.30", 0x00000, 0x20000, CRC(b0953ff4) SHA1(79d0b68948a9b5be8eacd33810ddcf4fa08dbe71) )
+ ROM_LOAD16_BYTE( "3wondrud.35", 0x00001, 0x20000, CRC(7695e8c6) SHA1(f78e7cb1098d77ce84d58a0d4509a77f5c483a77) )
+ ROM_LOAD16_BYTE( "3wondrud.31", 0x40000, 0x20000, CRC(8cf00a3c) SHA1(dceb5bccf7c96802e7c228ea52f82fbb49388e0d) )
+ ROM_LOAD16_BYTE( "3wondrud.36", 0x40001, 0x20000, CRC(b649ad19) SHA1(f91dad60a583a46f80e71bb23bfd051b3ed3fbe5) )
+ ROM_LOAD16_BYTE( "rt_28a.9f", 0x80000, 0x20000, CRC(054137c8) SHA1(e4c406e0a32198323a5931093fbaa6836510b8ad) )
+ ROM_LOAD16_BYTE( "rt_33a.9h", 0x80001, 0x20000, CRC(7264cb1b) SHA1(b367acb9f6579569321ecaa98a14e29dd775b9db) )
+ ROM_LOAD16_BYTE( "rtu_29a.10f", 0xc0000, 0x20000, CRC(37ba3e20) SHA1(a128b1a17639b06a4fd8acffe0357f1dbd1d4fe9) )
+ ROM_LOAD16_BYTE( "rtu_34a.10h", 0xc0001, 0x20000, CRC(f99f46c0) SHA1(cda24a6baa3f861e7078fb2fa91328cc1cddc866) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "rt-5m.7a", 0x000000, 0x80000, CRC(86aef804) SHA1(723927ef3bf992d12395c52db051ece7bf57d5e5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rt-7m.9a", 0x000002, 0x80000, CRC(4f057110) SHA1(b7d35c883a74cf4bfb242d9f15a0e40ed1ec111f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rt-1m.3a", 0x000004, 0x80000, CRC(902489d0) SHA1(748ba416a8b9343059a3e7d8b93f02162feb1d0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rt-3m.5a", 0x000006, 0x80000, CRC(e35ce720) SHA1(6c1a87a1f819bdc20408b5a7823cf35a79d34110) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rt-6m.8a", 0x200000, 0x80000, CRC(13cb0e7c) SHA1(e429d594d9a7ff4cc6306e2796a9d6ad0fa25569) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rt-8m.10a", 0x200002, 0x80000, CRC(1f055014) SHA1(d64f5be9bb2ef761ca9b2e797dbc3554cf996a79) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rt-2m.4a", 0x200004, 0x80000, CRC(e9a034f4) SHA1(deb4cb5886705380b57d4fe9b9bf3c032e1d6227) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rt-4m.6a", 0x200006, 0x80000, CRC(df0eea8b) SHA1(5afa05654cccb0504bd44569d42fd68f08fd172f) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "rt_9.12b", 0x00000, 0x08000, CRC(abfca165) SHA1(428069d3bdc45775854cd0e8abe447f134fe5492) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "rt_18.11c", 0x00000, 0x20000, CRC(26b211ab) SHA1(0ea03fdd9edff41eacfc52aa9e0421c10968356b) )
+ ROM_LOAD( "rt_19.12c", 0x20000, 0x20000, CRC(dbe64ad0) SHA1(09f2ad522fe75d7bcca094b8c6696c3733b539d5) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "3wondrud.key", 0x000000, 0x000080, CRC(5066be6f) SHA1(a514ffb7561b1d563382c4c69e24c81574902081) )
+ROM_END
+
+
+ROM_START( captcocc )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP("captcocc.23", 0x000000, 0x80000, CRC(1e5c9f79) SHA1(09f7356b5badae26f24a2afac2cbe0d8e0c9481a) )
+ ROM_LOAD16_WORD_SWAP("captcocc.22", 0x080000, 0x80000, CRC(6ea50796) SHA1(62d0cd0203c2bb75bd0b69e3b25a492c37658da4) )
+ ROM_LOAD16_BYTE( "cc_24f.9e", 0x100000, 0x20000, CRC(3a794f25) SHA1(7f3722a4ef0c1d7acb73e6bac9dd6ae7b35e6374) )
+ ROM_LOAD16_BYTE( "cc_28f.9f", 0x100001, 0x20000, CRC(fc3c2906) SHA1(621c3b79b6fdea1665bb316eb539e5916e890656) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cc-5m.3a", 0x000000, 0x80000, CRC(7261d8ba) SHA1(4b66292e42d20d0b79a756f0e445492ddb9c6bbc) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-7m.5a", 0x000002, 0x80000, CRC(6a60f949) SHA1(87391ff92abaf3e451f70d789a938cffbd1fd222) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-1m.4a", 0x000004, 0x80000, CRC(00637302) SHA1(2c554b59cceec2de67a9a4bc6281fe846d3c8cd2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-3m.6a", 0x000006, 0x80000, CRC(cc87cf61) SHA1(7fb1f49494cc1a08aded20754bb0cefb1c323198) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-6m.7a", 0x200000, 0x80000, CRC(28718bed) SHA1(dfdc4dd14dc609783bad94d608a9e9b137dea944) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-8m.9a", 0x200002, 0x80000, CRC(d4acc53a) SHA1(d03282ebbde362e679cc97f772aa9baf163d7606) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-2m.8a", 0x200004, 0x80000, CRC(0c69f151) SHA1(a170b8e568439e4a26d84376d53560e4248e4e2f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-4m.10a", 0x200006, 0x80000, CRC(1f9ebb97) SHA1(023d00cb7b6a52d1b29e2052abe08ef34cb0c55c) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "cc_09.11a", 0x00000, 0x08000, CRC(698e8b58) SHA1(b7a3d905a7ed2c430426ca2e185e3d7e75e752a1) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "cc_18.11c", 0x00000, 0x20000, CRC(6de2c2db) SHA1(9a1eaba8d104f59a5e61f89679bb5de0c0c64364) )
+ ROM_LOAD( "cc_19.12c", 0x20000, 0x20000, CRC(b99091ae) SHA1(b19197c7ad3aeaf5f41c26bf853b0c9b502ecfca) )
+ROM_END
+
+ROM_START( captcomc )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "cc23", 0x000000, 0x80000, CRC(a5e73e49) SHA1(7bb75fa0e1122a85a421c50607c0ad57a387783e) )
+ ROM_LOAD16_WORD_SWAP( "cc22", 0x080000, 0x80000, CRC(919777c5) SHA1(2bd9b1527e8486ae89ddcdb0694c63c5859080b6) )
+ ROM_LOAD16_BYTE( "cc24", 0x100000, 0x20000, CRC(f3d6f147) SHA1(937822148c0f6f295d468024ce7887ee0353e669) )
+ ROM_LOAD16_BYTE( "cc28", 0x100001, 0x20000, CRC(f1c9bf8a) SHA1(545f494106ccce6ccbbe6fa042cf0ee6df03e8dc) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cc-5m.3a", 0x000000, 0x80000, CRC(7261d8ba) SHA1(4b66292e42d20d0b79a756f0e445492ddb9c6bbc) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-7m.5a", 0x000002, 0x80000, CRC(6a60f949) SHA1(87391ff92abaf3e451f70d789a938cffbd1fd222) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-1m.4a", 0x000004, 0x80000, CRC(00637302) SHA1(2c554b59cceec2de67a9a4bc6281fe846d3c8cd2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-3m.6a", 0x000006, 0x80000, CRC(cc87cf61) SHA1(7fb1f49494cc1a08aded20754bb0cefb1c323198) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "gfx_05.rom", 0x200000, 0x80000, CRC(e4282bc0) SHA1(fe6012a8afcaec5747194bedfa73284bb28300a4) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "gfx_07.rom", 0x200002, 0x80000, CRC(8b0ef34c) SHA1(13a696856432b2f345cd2b2059e95179c78bd70a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "gfx_06.rom", 0x200004, 0x80000, CRC(2d7bee50) SHA1(a25bcfa99c4dda52469f7dc8fec24287c97deb84) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "gfx_08.rom", 0x200006, 0x80000, CRC(0106bf6a) SHA1(8e23418c58c4ffb8dd4dac93b92b23c406d60a62) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "cc_09.11a", 0x00000, 0x08000, CRC(698e8b58) SHA1(b7a3d905a7ed2c430426ca2e185e3d7e75e752a1) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "cc_18.11c", 0x00000, 0x20000, CRC(6de2c2db) SHA1(9a1eaba8d104f59a5e61f89679bb5de0c0c64364) )
+ ROM_LOAD( "cc_19.12c", 0x20000, 0x20000, CRC(b99091ae) SHA1(b19197c7ad3aeaf5f41c26bf853b0c9b502ecfca) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "captcomm.key", 0x000000, 0x000080, CRC(3bd9c940) SHA1(8964479f402ce7e000f1da8b3f6386e6915269e1) )
+ROM_END
+
+ROM_START( captcomh )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "cce_23dh.rom", 0x000000, 0x80000, CRC(d97f921c) SHA1(451ab11ddd845ecddeaf60b3c46903d784c3389c) )
+ ROM_LOAD16_WORD_SWAP( "cc_22d.rom", 0x080000, 0x80000, CRC(a91949b7) SHA1(c027af89cd8f6bd3aaed61114582322c42e0c74f) )
+ ROM_LOAD16_BYTE( "cc_24d.rom", 0x100000, 0x20000, CRC(680e543f) SHA1(cfa963ab6329f615807db213bf53841860ed3149) )
+ ROM_LOAD16_BYTE( "cc_28d.rom", 0x100001, 0x20000, CRC(8820039f) SHA1(d68ce0b34ade75b8c5214168b2b1e0cdff45cd52) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cc-5m.3a", 0x000000, 0x80000, CRC(7261d8ba) SHA1(4b66292e42d20d0b79a756f0e445492ddb9c6bbc) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-7m.5a", 0x000002, 0x80000, CRC(6a60f949) SHA1(87391ff92abaf3e451f70d789a938cffbd1fd222) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-1m.4a", 0x000004, 0x80000, CRC(00637302) SHA1(2c554b59cceec2de67a9a4bc6281fe846d3c8cd2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-3m.6a", 0x000006, 0x80000, CRC(cc87cf61) SHA1(7fb1f49494cc1a08aded20754bb0cefb1c323198) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-6m.7a", 0x200000, 0x80000, CRC(28718bed) SHA1(dfdc4dd14dc609783bad94d608a9e9b137dea944) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-8m.9a", 0x200002, 0x80000, CRC(d4acc53a) SHA1(d03282ebbde362e679cc97f772aa9baf163d7606) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-2m.8a", 0x200004, 0x80000, CRC(0c69f151) SHA1(a170b8e568439e4a26d84376d53560e4248e4e2f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-4m.10a", 0x200006, 0x80000, CRC(1f9ebb97) SHA1(023d00cb7b6a52d1b29e2052abe08ef34cb0c55c) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "cc_09.11a", 0x00000, 0x08000, CRC(698e8b58) SHA1(b7a3d905a7ed2c430426ca2e185e3d7e75e752a1) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "cc_18.11c", 0x00000, 0x20000, CRC(6de2c2db) SHA1(9a1eaba8d104f59a5e61f89679bb5de0c0c64364) )
+ ROM_LOAD( "cc_19.12c", 0x20000, 0x20000, CRC(b99091ae) SHA1(b19197c7ad3aeaf5f41c26bf853b0c9b502ecfca) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "captcomm.key", 0x000000, 0x000080, CRC(3bd9c940) SHA1(8964479f402ce7e000f1da8b3f6386e6915269e1) )
+ROM_END
+
+ROM_START( captcoud )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP("captcoud.23", 0x000000, 0x80000, CRC(1d338c25) SHA1(4aba7e5a78bf20d887b3493e0d2a83098f877f9f) )
+ ROM_LOAD16_WORD_SWAP("captcoud.22", 0x080000, 0x80000, CRC(c5310f13) SHA1(97a3751630f10cf67515200ce435c34fda1d9a52) )
+ ROM_LOAD16_BYTE( "ccu_24b.9e", 0x100000, 0x20000, CRC(84ff99b2) SHA1(5b02c91f3d0f8fb46db9596136b683f5a22dc15f) )
+ ROM_LOAD16_BYTE( "ccu_28b.9f", 0x100001, 0x20000, CRC(fbcec223) SHA1(daf484baece5b3a11f3dcabb758b8bdd736a1fb6) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cc-5m.3a", 0x000000, 0x80000, CRC(7261d8ba) SHA1(4b66292e42d20d0b79a756f0e445492ddb9c6bbc) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-7m.5a", 0x000002, 0x80000, CRC(6a60f949) SHA1(87391ff92abaf3e451f70d789a938cffbd1fd222) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-1m.4a", 0x000004, 0x80000, CRC(00637302) SHA1(2c554b59cceec2de67a9a4bc6281fe846d3c8cd2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-3m.6a", 0x000006, 0x80000, CRC(cc87cf61) SHA1(7fb1f49494cc1a08aded20754bb0cefb1c323198) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-6m.7a", 0x200000, 0x80000, CRC(28718bed) SHA1(dfdc4dd14dc609783bad94d608a9e9b137dea944) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-8m.9a", 0x200002, 0x80000, CRC(d4acc53a) SHA1(d03282ebbde362e679cc97f772aa9baf163d7606) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-2m.8a", 0x200004, 0x80000, CRC(0c69f151) SHA1(a170b8e568439e4a26d84376d53560e4248e4e2f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-4m.10a", 0x200006, 0x80000, CRC(1f9ebb97) SHA1(023d00cb7b6a52d1b29e2052abe08ef34cb0c55c) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "cc_09.11a", 0x00000, 0x08000, CRC(698e8b58) SHA1(b7a3d905a7ed2c430426ca2e185e3d7e75e752a1) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "cc_18.11c", 0x00000, 0x20000, CRC(6de2c2db) SHA1(9a1eaba8d104f59a5e61f89679bb5de0c0c64364) )
+ ROM_LOAD( "cc_19.12c", 0x20000, 0x20000, CRC(b99091ae) SHA1(b19197c7ad3aeaf5f41c26bf853b0c9b502ecfca) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "captcoud.key", 0x000000, 0x000080, CRC(6a4c8ad9) SHA1(56912fc3387cf977e602d3e8dad31b64dadc6b4a) )
+ROM_END
+
+ROM_START( captcovs )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP("captcovs.23", 0x000000, 0x80000, CRC(c1ad4e2a) SHA1(0b7843fec92261b2e727147aa6df60f4b5fc8fc7) )
+ ROM_LOAD16_WORD_SWAP("captcovs.22", 0x080000, 0x80000, CRC(8e19a05a) SHA1(b60dd9b1693630e9e3fe73c1b3f8a026945fb23d) )
+ ROM_LOAD16_BYTE( "cc_24f.9e", 0x100000, 0x20000, CRC(3a794f25) SHA1(7f3722a4ef0c1d7acb73e6bac9dd6ae7b35e6374) )
+ ROM_LOAD16_BYTE( "cc_28f.9f", 0x100001, 0x20000, CRC(fc3c2906) SHA1(621c3b79b6fdea1665bb316eb539e5916e890656) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cc-5m.3a", 0x000000, 0x80000, CRC(7261d8ba) SHA1(4b66292e42d20d0b79a756f0e445492ddb9c6bbc) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-7m.5a", 0x000002, 0x80000, CRC(6a60f949) SHA1(87391ff92abaf3e451f70d789a938cffbd1fd222) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-1m.4a", 0x000004, 0x80000, CRC(00637302) SHA1(2c554b59cceec2de67a9a4bc6281fe846d3c8cd2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-3m.6a", 0x000006, 0x80000, CRC(cc87cf61) SHA1(7fb1f49494cc1a08aded20754bb0cefb1c323198) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-6m.7a", 0x200000, 0x80000, CRC(28718bed) SHA1(dfdc4dd14dc609783bad94d608a9e9b137dea944) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-8m.9a", 0x200002, 0x80000, CRC(d4acc53a) SHA1(d03282ebbde362e679cc97f772aa9baf163d7606) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-2m.8a", 0x200004, 0x80000, CRC(0c69f151) SHA1(a170b8e568439e4a26d84376d53560e4248e4e2f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cc-4m.10a", 0x200006, 0x80000, CRC(1f9ebb97) SHA1(023d00cb7b6a52d1b29e2052abe08ef34cb0c55c) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "cc_09.11a", 0x00000, 0x08000, CRC(698e8b58) SHA1(b7a3d905a7ed2c430426ca2e185e3d7e75e752a1) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "cc_18.11c", 0x00000, 0x20000, CRC(6de2c2db) SHA1(9a1eaba8d104f59a5e61f89679bb5de0c0c64364) )
+ ROM_LOAD( "cc_19.12c", 0x20000, 0x20000, CRC(b99091ae) SHA1(b19197c7ad3aeaf5f41c26bf853b0c9b502ecfca) )
+ROM_END
+
+
+ROM_START( cps1demo )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "cd30-36.bin", 0x00000, 0x20000, CRC(5eb617d6) SHA1(9d4656d2b29244eb2a01058f5b80752d94065a6e) )
+ ROM_LOAD16_BYTE( "cd35-42.bin", 0x00001, 0x20000, CRC(1f1c0a62) SHA1(12d1950921fff6d52ae969a4c7357f4e7bc28d1e) )
+ ROM_LOAD16_WORD_SWAP( "ff32-32m.bin", 0x80000, 0x80000, CRC(c747696e) SHA1(d3362dadded31ccb7eaf71ef282d698d18edd722) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "cd05-05m.bin", 0x000000, 0x80000, CRC(35dc6153) SHA1(7b7747d4e6a78c0933b6ea96fa6027c2c2c50682) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd07-07m.bin", 0x000002, 0x80000, CRC(baf08a38) SHA1(82559384399c5dfb8979a2e91d585549357ebb52) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd01-01m.bin", 0x000004, 0x80000, CRC(3ad8e790) SHA1(a371edc81a48903d13ed8938dca450dab986b413) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd03-03m.bin", 0x000006, 0x80000, CRC(fb5186f3) SHA1(b20031c01b6be2a4987553c0ab19105714bf9299) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "ff09-09.bin", 0x00000, 0x08000, CRC(b8367eb5) SHA1(ec3db29fdd6200e9a8f4f8073a7e34aef731354f) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "ff18-18.bin", 0x00000, 0x20000, CRC(375c66e7) SHA1(36189e23209ce4ae5d9cbabd1574540d0591e7b3) )
+ ROM_LOAD( "ff19-19.bin", 0x20000, 0x20000, CRC(1ef137f9) SHA1(974b5e72aa28b87ebfa7438efbdfeda769dedf5e) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "cps1demo.key", 0x000000, 0x000080, CRC(b0e5ee2d) SHA1(8189f48892fff7dc4fff4e765448e0ea2cfba4bc) )
+ROM_END
+
+ROM_START( cps1frog )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "frog30-36.bin", 0x00000, 0x20000, CRC(8eb8ddbe) SHA1(298c72b3eb6f2721f204cf80ec4a7c52dc8b23fd) )
+ ROM_LOAD16_BYTE( "frog35-42.bin", 0x00001, 0x20000, CRC(acb5a988) SHA1(7264bb94f7bacef9bf03713d0a6d32e81ca1f8e2) )
+ ROM_LOAD16_WORD_SWAP( "frog32-32m.bin", 0x80000, 0x80000, CRC(75660aac) SHA1(6a521e1d2a632c26e53b83d2cc4b0edecfc1e68c) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "frog05-05m.bin", 0x000000, 0x80000, CRC(7bbc4b54) SHA1(5a40bd85ce71dc733071732a8306d648b3e6dd39) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "frog07-07m.bin", 0x000002, 0x80000, CRC(0beadd80) SHA1(f43d6ad936b8ffa242c17d8da26bf2e2a12d85a8) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "frog01-01m.bin", 0x000004, 0x80000, CRC(f84d02bb) SHA1(b89322ab65a3b3e8202c27af62de2b182a4ed2e9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "frog03-03m.bin", 0x000006, 0x80000, CRC(d784a5b0) SHA1(8891bb8fc39f51db200c51e2a65961c351d655c2) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "frog09-09.bin", 0x00000, 0x08000, CRC(3ac7fb5c) SHA1(01057078b67dc82d80403533a3dca3deb95f166c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "frog18-18.bin", 0x00000, 0x20000, CRC(65d1ef07) SHA1(0bc2dbf5053430f659d64d1b287799bb5cc4db65) )
+ ROM_LOAD( "frog19-19.bin", 0x20000, 0x20000, CRC(7ee8cdcd) SHA1(67dfd19f3eb3649d6f3f6631e44d0bd36b8d8d19) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "cps1frog.key", 0x000000, 0x000080, CRC(3adeff30) SHA1(5d242a4e5edcf47905fb50d767d41c2977bfd78b) )
+ROM_END
+
+ROM_START( cps1tests )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "cps1tests.bin", 0x000000, 0x80000, CRC(938c72fe) SHA1(0a48661d5638ed6b841f646ebb9f948a01b8e2d3) )
+ ROM_LOAD16_WORD_SWAP( "s92_22b.7f", 0x080000, 0x80000, CRC(2bbe15ed) SHA1(a8e2edef62fa99c5ef701b28bfb6bc42f3af183d) )
+ ROM_LOAD16_WORD_SWAP( "s92_21a.6f", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sf2ce.key", 0x000000, 0x000080, CRC(35b37429) SHA1(b372cce106c0900554735c207fb333ac93554ec2) )
+ROM_END
+
+ROM_START( cps1testsa )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "cps1testsa.bin", 0x000000, 0x80000, CRC(8c24eb40) SHA1(0d9ebc078dd22e3b45eaf872d90eb973eb07aeeb) )
+ ROM_LOAD16_WORD_SWAP( "s92_22b.7f", 0x080000, 0x80000, CRC(2bbe15ed) SHA1(a8e2edef62fa99c5ef701b28bfb6bc42f3af183d) )
+ ROM_LOAD16_WORD_SWAP( "s92_21a.6f", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sf2ce.key", 0x000000, 0x000080, CRC(35b37429) SHA1(b372cce106c0900554735c207fb333ac93554ec2) )
+ROM_END
+
+ROM_START( cps1testm )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "cps1testm.bin", 0x000000, 0x80000, CRC(35a39adb) SHA1(dcb93102108a02f1f169833cfd355bd492cd9065) )
+ ROM_LOAD16_WORD_SWAP( "rcmu_22b.7f", 0x080000, 0x80000, CRC(708268c4) SHA1(554e011cad285b95dd1b6aa19be61b2413662a3a) )
+ ROM_LOAD16_WORD_SWAP( "rcmu_21a.6f", 0x100000, 0x80000, CRC(4376ea95) SHA1(7370ceffca513aa9f68a74f6869d561476589200) )
+
+ ROM_REGION( 0x800000, "gfx", 0 )
+ ROMX_LOAD( "rcm_01.3a", 0x000000, 0x80000, CRC(6ecdf13f) SHA1(2a8fe06bf5011e3f990f90d9224f91d8631ec0cc) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_02.4a", 0x000002, 0x80000, CRC(944d4f0f) SHA1(665dc9a537e9c9b565f6136f939ff5c2861f875f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_03.5a", 0x000004, 0x80000, CRC(36f3073c) SHA1(457d68e63599d06a136e152a9ad60adac1c91edd) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_04.6a", 0x000006, 0x80000, CRC(54e622ff) SHA1(36f6297e3d410f041be5e582919478b0d52520ca) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_05.7a", 0x200000, 0x80000, CRC(5dd131fd) SHA1(1a7fc8cf38901245d40901996e946e7ad9c0e0c5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_06.8a", 0x200002, 0x80000, CRC(f0faf813) SHA1(adff01c2ecc4c8ce6f8a50cbd07d8f8bb9f48168) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_07.9a", 0x200004, 0x80000, CRC(826de013) SHA1(47f36b1d92a487c43c8dadc8293b8e6f40649286) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_08.10a", 0x200006, 0x80000, CRC(fbff64cf) SHA1(f0cb531ef195dc1dcd224a208906a62fb5d199a1) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_10.3c", 0x400000, 0x80000, CRC(4dc8ada9) SHA1(776c2b3ef24c2b8f390c05a9c6728b14ceec696e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_11.4c", 0x400002, 0x80000, CRC(f2b9ee06) SHA1(db315b00d1caed1a8c0f6e0ae726e8fa05b011fa) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_12.5c", 0x400004, 0x80000, CRC(fed5f203) SHA1(23db14490519b5e2d0bb92ffe6e14540d1999e4b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_13.6c", 0x400006, 0x80000, CRC(5069d4a9) SHA1(b832b98be94371af52bd4bb911e18ec57430a7db) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_14.7c", 0x600000, 0x80000, CRC(303be3bd) SHA1(1e5c3fd71966ea9f457840c40582795b501c323e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_15.8c", 0x600002, 0x80000, CRC(4f2d372f) SHA1(db6a94d1f92c1b96e404b38ebcb1eedbec3ae6cc) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_16.9c", 0x600004, 0x80000, CRC(93d97fde) SHA1(e4be5216f98ad08a9118d629d398be2bd54e2e2a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_17.10c", 0x600006, 0x80000, CRC(92371042) SHA1(c55833cbaddcc986edd23c009a3e3c7ff09c2708) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "rcm_09.11a", 0x00000, 0x08000, CRC(22ac8f5f) SHA1(d1441d880f98034645cb4fcecd7bb746bde638af) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "rcm_18.11c", 0x00000, 0x20000, CRC(80f1f8aa) SHA1(4a5b7b2a6941ad68da7472c63362c7bcd353fa54) )
+ ROM_LOAD( "rcm_19.12c", 0x20000, 0x20000, CRC(f257dbe1) SHA1(967def6b6f93039dbc46373caabeb3301577be75) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "megaman.key", 0x000000, 0x000080, CRC(9c89eb62) SHA1(e67a3ed58f82875cff4861c14bd701b54dcc111f) )
+ROM_END
+
+ROM_START( cps1testma )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "cps1testma.bin", 0x000000, 0x80000, CRC(ca31eddc) SHA1(ee9841fc398de4d8dc083bfaf0d6e2b488fc8779) )
+ ROM_LOAD16_WORD_SWAP( "rcmu_22b.7f", 0x080000, 0x80000, CRC(708268c4) SHA1(554e011cad285b95dd1b6aa19be61b2413662a3a) )
+ ROM_LOAD16_WORD_SWAP( "rcmu_21a.6f", 0x100000, 0x80000, CRC(4376ea95) SHA1(7370ceffca513aa9f68a74f6869d561476589200) )
+
+ ROM_REGION( 0x800000, "gfx", 0 )
+ ROMX_LOAD( "rcm_01.3a", 0x000000, 0x80000, CRC(6ecdf13f) SHA1(2a8fe06bf5011e3f990f90d9224f91d8631ec0cc) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_02.4a", 0x000002, 0x80000, CRC(944d4f0f) SHA1(665dc9a537e9c9b565f6136f939ff5c2861f875f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_03.5a", 0x000004, 0x80000, CRC(36f3073c) SHA1(457d68e63599d06a136e152a9ad60adac1c91edd) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_04.6a", 0x000006, 0x80000, CRC(54e622ff) SHA1(36f6297e3d410f041be5e582919478b0d52520ca) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_05.7a", 0x200000, 0x80000, CRC(5dd131fd) SHA1(1a7fc8cf38901245d40901996e946e7ad9c0e0c5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_06.8a", 0x200002, 0x80000, CRC(f0faf813) SHA1(adff01c2ecc4c8ce6f8a50cbd07d8f8bb9f48168) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_07.9a", 0x200004, 0x80000, CRC(826de013) SHA1(47f36b1d92a487c43c8dadc8293b8e6f40649286) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_08.10a", 0x200006, 0x80000, CRC(fbff64cf) SHA1(f0cb531ef195dc1dcd224a208906a62fb5d199a1) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_10.3c", 0x400000, 0x80000, CRC(4dc8ada9) SHA1(776c2b3ef24c2b8f390c05a9c6728b14ceec696e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_11.4c", 0x400002, 0x80000, CRC(f2b9ee06) SHA1(db315b00d1caed1a8c0f6e0ae726e8fa05b011fa) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_12.5c", 0x400004, 0x80000, CRC(fed5f203) SHA1(23db14490519b5e2d0bb92ffe6e14540d1999e4b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_13.6c", 0x400006, 0x80000, CRC(5069d4a9) SHA1(b832b98be94371af52bd4bb911e18ec57430a7db) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_14.7c", 0x600000, 0x80000, CRC(303be3bd) SHA1(1e5c3fd71966ea9f457840c40582795b501c323e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_15.8c", 0x600002, 0x80000, CRC(4f2d372f) SHA1(db6a94d1f92c1b96e404b38ebcb1eedbec3ae6cc) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_16.9c", 0x600004, 0x80000, CRC(93d97fde) SHA1(e4be5216f98ad08a9118d629d398be2bd54e2e2a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "rcm_17.10c", 0x600006, 0x80000, CRC(92371042) SHA1(c55833cbaddcc986edd23c009a3e3c7ff09c2708) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "rcm_09.11a", 0x00000, 0x08000, CRC(22ac8f5f) SHA1(d1441d880f98034645cb4fcecd7bb746bde638af) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "rcm_18.11c", 0x00000, 0x20000, CRC(80f1f8aa) SHA1(4a5b7b2a6941ad68da7472c63362c7bcd353fa54) )
+ ROM_LOAD( "rcm_19.12c", 0x20000, 0x20000, CRC(f257dbe1) SHA1(967def6b6f93039dbc46373caabeb3301577be75) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "megaman.key", 0x000000, 0x000080, CRC(9c89eb62) SHA1(e67a3ed58f82875cff4861c14bd701b54dcc111f) )
+ROM_END
+
+
+ROM_START( daimakb )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "dmjb2.bin", 0x00000, 0x80000, CRC(7d5f9f84) SHA1(b334b3af610892ef4efe4764017659b8541a10c6) )
+ ROM_LOAD16_BYTE( "dmjb1.bin", 0x00001, 0x80000, CRC(9b945cc4) SHA1(dfdfabfd8ef06cee6be27350f79c5db4c6ace611) )
+
+ ROM_REGION( 0x300000, "gfx", 0 )
+ ROMX_LOAD( "dm_02.4b", 0x000000, 0x20000, CRC(8b98dc48) SHA1(e827881e2ba5cccd907d1692a1945c1b75d46f12) , ROM_SKIP(7) )
+ ROMX_LOAD( "dm_01.4a", 0x000001, 0x20000, CRC(80896c33) SHA1(20ffc427c596828005e34cdd8e4efa0d332262e9) , ROM_SKIP(7) )
+ ROMX_LOAD( "dm_10.9b", 0x000002, 0x20000, CRC(c2e7d9ef) SHA1(52aae6cf373f8c7150833047be28b74dd5eb5af6) , ROM_SKIP(7) )
+ ROMX_LOAD( "dm_09.9a", 0x000003, 0x20000, CRC(c9c4afa5) SHA1(34571e3e49c86b87fa34eefbc5f9fe258aba5f1a) , ROM_SKIP(7) )
+ ROMX_LOAD( "dm_18.5e", 0x000004, 0x20000, CRC(1aa0db99) SHA1(69ac302b2f6f0b96f78cb57b0b4cdae464086262) , ROM_SKIP(7) )
+ ROMX_LOAD( "dm_17.5c", 0x000005, 0x20000, CRC(dc6ed8ad) SHA1(1ffc4a48a7ff9b542ab6f63a60bea3c1a7a6e63b) , ROM_SKIP(7) )
+ ROMX_LOAD( "dm_30.8h", 0x000006, 0x20000, CRC(d9d3f8bd) SHA1(6c6853a384f8d60ca46a0607fd47c76a83700fba) , ROM_SKIP(7) )
+ ROMX_LOAD( "dm_29.8f", 0x000007, 0x20000, CRC(49a48796) SHA1(76c18c684dba4aa91ee6caae0f38fe3e1cc50832) , ROM_SKIP(7) )
+ ROMX_LOAD( "dm_04.5b", 0x100000, 0x20000, CRC(a4f4f8f0) SHA1(edca0f61b40a18afe279f7007c233064130cfb4f) , ROM_SKIP(7) )
+ ROMX_LOAD( "dm_03.5a", 0x100001, 0x20000, CRC(b1033e62) SHA1(547fc281dd9e7a74ac86c3692508c7bde9b6167b) , ROM_SKIP(7) )
+ ROMX_LOAD( "dm_12.10b", 0x100002, 0x20000, CRC(10fdd76a) SHA1(aee774d6323292799dff7a30ef9559c92fe5507a) , ROM_SKIP(7) )
+ ROMX_LOAD( "dm_11.10a", 0x100003, 0x20000, CRC(9040cb04) SHA1(b32e9056fc20a5162868eade10f3ef5efc167a28) , ROM_SKIP(7) )
+ ROMX_LOAD( "dm_20.7e", 0x100004, 0x20000, CRC(281d0b3e) SHA1(70e1813de184ad0ec164145b7b843b5e387494e3) , ROM_SKIP(7) )
+ ROMX_LOAD( "dm_19.7c", 0x100005, 0x20000, CRC(2623b52f) SHA1(fc4200924452bfbff687934782398ed345dc0aa0) , ROM_SKIP(7) )
+ ROMX_LOAD( "dm_32.9h", 0x100006, 0x20000, CRC(99692344) SHA1(67dc70618568b7c0adcb00a612aaf5501f6c8c0f) , ROM_SKIP(7) )
+ ROMX_LOAD( "dm_31.9f", 0x100007, 0x20000, CRC(54acb729) SHA1(d1fca43db36253fd19db4337c49272a6cadff597) , ROM_SKIP(7) )
+ ROMX_LOAD( "dm_06.7b", 0x200000, 0x10000, CRC(ae24bb19) SHA1(aa91c6ffe657b878e10e4e930457b530f7bb529b) , ROM_SKIP(7) )
+ ROMX_LOAD( "dm_05.7a", 0x200001, 0x10000, CRC(d34e271a) SHA1(55211fc2861dce32951f41624c9c99c09bf3b184) , ROM_SKIP(7) )
+ ROMX_LOAD( "dm_14.11b", 0x200002, 0x10000, CRC(3f70dd37) SHA1(9ecb4dec9d131e9fca15ded7d71986a9fcb62c19) , ROM_SKIP(7) )
+ ROMX_LOAD( "dm_13.11a", 0x200003, 0x10000, CRC(7e69e2e6) SHA1(4e0b4d2474beaa5c869c8f1a91893c79ac6e7f39) , ROM_SKIP(7) )
+ ROMX_LOAD( "dm_22.8e", 0x200004, 0x10000, CRC(37c9b6c6) SHA1(b2bb82537e335339846dbf9588cfacfdbdd75ee6) , ROM_SKIP(7) )
+ ROMX_LOAD( "dm_21.8c", 0x200005, 0x10000, CRC(2f1345b4) SHA1(14c450abcf9defa29c6f48e5ffd0b9d1e4a66a1d) , ROM_SKIP(7) )
+ ROMX_LOAD( "dm_26.10e", 0x200006, 0x10000, CRC(3c2a212a) SHA1(f8fa0e0e2d09ea37c54d1c2493752b4e97e3f534) , ROM_SKIP(7) )
+ ROMX_LOAD( "dm_25.10c", 0x200007, 0x10000, CRC(889aac05) SHA1(9301dcecee699e7f7672bb498122e1f4831ce536) , ROM_SKIP(7) )
+ ROMX_LOAD( "dm_08.8b", 0x280000, 0x10000, CRC(bcc0f28c) SHA1(02f587aa4ae71631f27b0e3aaf1829cdded1bdc2) , ROM_SKIP(7) )
+ ROMX_LOAD( "dm_07.8a", 0x280001, 0x10000, CRC(2a40166a) SHA1(dc4e75d7ed87ae5386d721a09113bba364740465) , ROM_SKIP(7) )
+ ROMX_LOAD( "dm_16.12b", 0x280002, 0x10000, CRC(20f85c03) SHA1(86385139a9b42270aade758bfe338525936f5671) , ROM_SKIP(7) )
+ ROMX_LOAD( "dm_15.12a", 0x280003, 0x10000, CRC(8426144b) SHA1(2dbf9625413b302fcdad5bef8733a9dfbfaead52) , ROM_SKIP(7) )
+ ROMX_LOAD( "dm_24.9e", 0x280004, 0x10000, CRC(da088d61) SHA1(67229eff2827a42af97a60ceb252e132e7f307bc) , ROM_SKIP(7) )
+ ROMX_LOAD( "dm_23.9c", 0x280005, 0x10000, CRC(17e11df0) SHA1(42fb15e9300b07fc5f4bc21744484869859b130c) , ROM_SKIP(7) )
+ ROMX_LOAD( "dm_28.11e", 0x280006, 0x10000, CRC(f187ba1c) SHA1(6d9441d04ecef2a9d9c7a2cc7781acd7904c2061) , ROM_SKIP(7) )
+ ROMX_LOAD( "dm_27.11c", 0x280007, 0x10000, CRC(29f79c78) SHA1(26000a58454a06c3016f99ebc3a79c52911a7070) , ROM_SKIP(7) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "dm_37.13c", 0x00000, 0x08000, CRC(3692f6e5) SHA1(61b8438d60a39b4cf5062dff0a53228e8a4e4b5f) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", ROMREGION_ERASEFF ) // to keep validation quiet
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "daimakb.key", 0x000000, 0x000080, CRC(c72cad61) SHA1(9036e06c84ff9189a83acd50a703fb6560ce5e98) )
+ROM_END
+
+
+ROM_START( dino08h2 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "dino08h2.23", 0x000000, 0x80000, CRC(39ebeee2) SHA1(b48c3174e4ca26517958b3e58a3a693ce4e9ee88) )
+ ROM_LOAD16_WORD_SWAP( "dino08h2.22", 0x080000, 0x80000, CRC(09307e79) SHA1(cff0af94c6118a852351a7b624db65963c91f577) )
+ ROM_LOAD16_WORD_SWAP( "dino08h2.21", 0x100000, 0x80000, CRC(c2a0f051) SHA1(57e4a569824fb2a9d726ba610d13e451ab0b36cb) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dino08h3 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "dino08h3.23", 0x000000, 0x80000, CRC(642a2380) SHA1(79d9f427740d7f86b81f560e71636097d10cccf1) )
+ ROM_LOAD16_WORD_SWAP( "dino08h3.22", 0x080000, 0x80000, CRC(7a3c6b73) SHA1(e7f75c286ced541d4d6e399a54fa39fc1a85773f) )
+ ROM_LOAD16_WORD_SWAP( "dino08h3.21", 0x100000, 0x80000, CRC(3383646e) SHA1(f3d220e79cb8f86ba799580541e790d9a1d2cdf5) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dino08hp )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "dino08hp.23", 0x000000, 0x80000, CRC(394826e3) SHA1(7b295e263ab7f38a57a118de0f4308debfe14591) )
+ ROM_LOAD16_WORD_SWAP( "dino08hp.22", 0x080000, 0x80000, CRC(a4894b10) SHA1(6c6d4319af544383007190cfe8835189089e4ac3) )
+ ROM_LOAD16_WORD_SWAP( "dino08h2.21", 0x100000, 0x80000, CRC(c2a0f051) SHA1(57e4a569824fb2a9d726ba610d13e451ab0b36cb) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinob ) // program same as dinopic in mame, but this one has working sound
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "3.bin", 0x000001, 0x80000, CRC(13dfeb08) SHA1(cd2f9dd64f4fabe93901247e36dff3763169716d) )
+ ROM_LOAD16_BYTE( "5.bin", 0x000000, 0x80000, CRC(96dfcbf1) SHA1(a8bda6edae2c1b79db7ae8a8976fd2457f874373) )
+ ROM_LOAD16_BYTE( "2.bin", 0x100001, 0x80000, CRC(0e4058ba) SHA1(346f9e34ea53dd1bf5cdafa1e38bf2edb09b9a7f) )
+ ROM_LOAD16_BYTE( "7.bin", 0x100000, 0x80000, CRC(6133f349) SHA1(d13af99910623f62c090d25372a2253dbc2f8cbe) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "4.bin", 0x000000, 0x40000, CRC(f3c2c98d) SHA1(98ae51a67fa4159456a4a205eebdd8d1775888d1), ROM_GROUPBYTE | ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000004, 0x40000 )
+ ROMX_LOAD( "8.bin", 0x000001, 0x40000, CRC(d574befc) SHA1(56482e7a9aa8439f30e3cf72311495ce677a083d), ROM_GROUPBYTE | ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000005, 0x40000 )
+ ROMX_LOAD( "9.bin", 0x000002, 0x40000, CRC(55ef0adc) SHA1(3b5551ae76ae80882d37fc70a1031a57885d6840), ROM_GROUPBYTE | ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000006, 0x40000 )
+ ROMX_LOAD( "6.bin", 0x000003, 0x40000, CRC(cc0805fc) SHA1(c512734c28b878a30a0de249929f69784d5d77a1), ROM_GROUPBYTE | ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000007, 0x40000 )
+ ROMX_LOAD( "13.bin", 0x200000, 0x40000, CRC(1371f714) SHA1(d2c98096fab08e3d4fd2482e6ebfc970ead656ee), ROM_GROUPBYTE | ROM_SKIP(7) )
+ ROM_CONTINUE( 0x200004, 0x40000 )
+ ROMX_LOAD( "12.bin", 0x200001, 0x40000, CRC(b284c4a7) SHA1(166f571e0afa115f8e38ba427b40e30abcfd70ee), ROM_GROUPBYTE | ROM_SKIP(7) )
+ ROM_CONTINUE( 0x200005, 0x40000 )
+ ROMX_LOAD( "11.bin", 0x200002, 0x40000, CRC(b7ad3394) SHA1(58dec34d9d991ff2817c8a7847749716abae6c77), ROM_GROUPBYTE | ROM_SKIP(7) )
+ ROM_CONTINUE( 0x200006, 0x40000 )
+ ROMX_LOAD( "10.bin", 0x200003, 0x40000, CRC(88847705) SHA1(05dc90067921960e417b7436056a5e1f86abaa1a), ROM_GROUPBYTE | ROM_SKIP(7) )
+ ROM_CONTINUE( 0x200007, 0x40000 )
+
+ ROM_REGION( 0x80000, "audiocpu", 0 ) /* QSound Z80 code + space for decrypted opcodes */
+ ROM_LOAD( "1.bin", 0x00000, 0x80000, CRC(7d921309) SHA1(d51e60e904d302c2516b734189e141aa171b2b82) )
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "dinob.key", 0x000000, 0x000080, CRC(171140c4) SHA1(d1db4e37e22fa6ae03c2bca4fdb698399d98c15f) )
+ROM_END
+
+ROM_START( dinobt )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "dinobt.23", 0x000000, 0x80000, CRC(3b1ed744) SHA1(7f9e062f97ef497c8993f574a3a51ae9e4e3e4f6) )
+ ROM_LOAD16_WORD_SWAP( "cde_22a.7f", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) )
+ ROM_LOAD16_WORD_SWAP( "cde_21a.6f", 0x100000, 0x80000, CRC(66d23de2) SHA1(19b8a365f630411d524d055459020f4c8cf930f1) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinobtpp )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "dinobtpp.23", 0x000000, 0x80000, CRC(41f954c9) SHA1(494ca6b9a5df7c9f491e54e45da41b2dcb4936a9) )
+ ROM_LOAD16_WORD_SWAP( "cde_22a.7f", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) )
+ ROM_LOAD16_WORD_SWAP( "cde_21a.6f", 0x100000, 0x80000, CRC(66d23de2) SHA1(19b8a365f630411d524d055459020f4c8cf930f1) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinocgba )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "dinocgba.23", 0x000000, 0x80000, CRC(7545d8b0) SHA1(b2400f558753e2c5d26a20ed94aff63d96424d1b) )
+ ROM_LOAD16_WORD_SWAP( "cde_22a.7f", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) )
+ ROM_LOAD16_WORD_SWAP( "dinoeh.21", 0x100000, 0x80000, CRC(b89a0548) SHA1(13b79e18c3cced34b28a34a591e2bd3bd18739be) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinocgbb )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "dinocgbb.23", 0x000000, 0x80000, CRC(2afc047c) SHA1(2d8831ae1faed2c8393db95835e157326a00f3f1) )
+ ROM_LOAD16_WORD_SWAP( "cde_22a.7f", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) )
+ ROM_LOAD16_WORD_SWAP( "dinoeh.21", 0x100000, 0x80000, CRC(b89a0548) SHA1(13b79e18c3cced34b28a34a591e2bd3bd18739be) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinocgbc )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "dinocgbc.23", 0x000000, 0x80000, CRC(d7be3ebd) SHA1(0af400aa73b93908efe7e81f187ad0809b36593b) )
+ ROM_LOAD16_WORD_SWAP( "cde_22a.7f", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) )
+ ROM_LOAD16_WORD_SWAP( "dinoeh.21", 0x100000, 0x80000, CRC(b89a0548) SHA1(13b79e18c3cced34b28a34a591e2bd3bd18739be) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinoeh )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "dinoeh.23", 0x000000, 0x80000, CRC(a6b88364) SHA1(71d2d66df77ba3cc856c2ecd317f4be122ed1feb) )
+ ROM_LOAD16_WORD_SWAP( "cde_22a.7f", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) )
+ ROM_LOAD16_WORD_SWAP( "dinoeh.21", 0x100000, 0x80000, CRC(b89a0548) SHA1(13b79e18c3cced34b28a34a591e2bd3bd18739be) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinoex )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "dinoex.23", 0x000000, 0x80000, CRC(c871b733) SHA1(0c2030a9ca0be8b14edbc4f2ae44184ab81b5e03) )
+ ROM_LOAD16_WORD_SWAP( "dinoex.22", 0x080000, 0x80000, CRC(b503e1ad) SHA1(73e53061b01940a9deb13c0ff5d874b4a8380f15) )
+ ROM_LOAD16_WORD_SWAP( "cde_21a.6f", 0x100000, 0x80000, CRC(66d23de2) SHA1(19b8a365f630411d524d055459020f4c8cf930f1) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "dinoex.key", 0x000000, 0x000080, CRC(6c097c88) SHA1(a8170ace800e96ec29fbef22f5fdc45c7f5b516b) )
+ROM_END
+
+ROM_START( dinoh )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "cda_23h.rom", 0x000000, 0x80000, CRC(8e2a9cf0) SHA1(01111582e579bd3b43b52d0e0c445c32fe5e053b) )
+ ROM_LOAD16_WORD_SWAP( "cda_22h.rom", 0x080000, 0x80000, CRC(f72cd219) SHA1(a3f580bd328b54d2546ae7e94262c1a706d27172) )
+ ROM_LOAD16_WORD_SWAP( "cda_21h.rom", 0x100000, 0x80000, CRC(bc275b76) SHA1(1f7f7533b4ccb511dc479f531d9d6740d3ca6712) )
+ ROM_LOAD16_WORD_SWAP( "cda_20h.rom", 0x180000, 0x80000, CRC(8987c975) SHA1(3fd856805d627f855f72acc7aacc2e8ecf0f12bd) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "dinoh.key", 0x000000, 0x000080, CRC(67862673) SHA1(9ae7446231da7fd6355e1f22ac3fb974c3775600) )
+ROM_END
+
+ROM_START( dinoha )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "kl2-r1.800", 0x080000, 0x080000, CRC(4c70dca7) SHA1(2e7a10c90924e0f87903eddb04313f61233a998f) )
+ ROM_CONTINUE( 0x000000, 0x080000 )
+ ROM_LOAD16_WORD_SWAP( "kl2-l2.800", 0x180000, 0x080000, CRC(c6ae7338) SHA1(4b8543cf1ac89ae95fe63e6d81c87d2bda52da69) )
+ ROM_CONTINUE( 0x100000, 0x080000 )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-a.160", 0x000000, 0x80000, CRC(7e4f9fb3) SHA1(b985d925e0fb799cdf0a671e4800961d9872cd8f), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000004, 0x80000 )
+ ROM_CONTINUE( 0x200000, 0x80000 )
+ ROM_CONTINUE( 0x200004, 0x80000 )
+ ROMX_LOAD( "cd-b.160", 0x000002, 0x80000, CRC(89532d85) SHA1(6743c4d9b4407421416c13878b8a1fae097dd7a7), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000006, 0x80000 )
+ ROM_CONTINUE( 0x200002, 0x80000 )
+ ROM_CONTINUE( 0x200006, 0x80000 )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "dinoh.key", 0x000000, 0x000080, CRC(67862673) SHA1(9ae7446231da7fd6355e1f22ac3fb974c3775600) )
+ROM_END
+
+ROM_START( dinohb )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "cd-d.800", 0x000000, 0x100000, CRC(2a7b2915) SHA1(817d24c5206a60c4d93affffc9bd5a72abccbb01) )
+ ROM_LOAD16_WORD_SWAP( "cd-e.800", 0x100000, 0x100000, CRC(e8370226) SHA1(9c6915ad9e48ccd2020fcad58ec56e6f7cd0c25c) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-a.160", 0x000000, 0x80000, CRC(7e4f9fb3) SHA1(b985d925e0fb799cdf0a671e4800961d9872cd8f), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000004, 0x80000 )
+ ROM_CONTINUE( 0x200000, 0x80000 )
+ ROM_CONTINUE( 0x200004, 0x80000 )
+ ROMX_LOAD( "cd-b.160", 0x000002, 0x80000, CRC(89532d85) SHA1(6743c4d9b4407421416c13878b8a1fae097dd7a7), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000006, 0x80000 )
+ ROM_CONTINUE( 0x200002, 0x80000 )
+ ROM_CONTINUE( 0x200006, 0x80000 )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "dinob.key", 0x000000, 0x000080, CRC(171140c4) SHA1(d1db4e37e22fa6ae03c2bca4fdb698399d98c15f) )
+ROM_END
+
+ROM_START( dinohp )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "dinohp.23", 0x000000, 0x80000, CRC(c96a1d20) SHA1(76d2ce4727ad6f546148cc3c7338a6243cecce2d) )
+ ROM_LOAD16_WORD_SWAP( "cde_22a.7f", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) )
+ ROM_LOAD16_WORD_SWAP( "cde_21a.6f", 0x100000, 0x80000, CRC(66d23de2) SHA1(19b8a365f630411d524d055459020f4c8cf930f1) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinohx )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "dinohx.23", 0x000000, 0x80000, CRC(a013a81f) SHA1(81c84ad76adfe1345d5e41bcddb47f2428de5006) )
+ ROM_LOAD16_WORD_SWAP( "cda_22h.rom", 0x080000, 0x80000, CRC(f72cd219) SHA1(a3f580bd328b54d2546ae7e94262c1a706d27172) )
+ ROM_LOAD16_WORD_SWAP( "cda_21h.rom", 0x100000, 0x80000, CRC(bc275b76) SHA1(1f7f7533b4ccb511dc479f531d9d6740d3ca6712) )
+ ROM_LOAD16_WORD_SWAP( "cda_20h.rom", 0x180000, 0x80000, CRC(8987c975) SHA1(3fd856805d627f855f72acc7aacc2e8ecf0f12bd) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "dino.key", 0x0000, 0x0080, CRC(61e30e5f) SHA1(994c97e38d1968530c572d9473ac033925dad99e) )
+ROM_END
+
+ROM_START( dinojp )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "cdjp-23a.8f", 0x000000, 0x80000, CRC(9cd746de) SHA1(d8b9c824e4b8adb66a273debce63128a16bb147a) )
+ ROM_LOAD16_WORD_SWAP( "cdjp-22a.7f", 0x080000, 0x80000, CRC(082f645d) SHA1(6865d6cf6464846b9aa423dc4e807932ae98a86d) )
+ ROM_LOAD16_WORD_SWAP( "cdep_21a.rom", 0x100000, 0x80000, CRC(95bd8020) SHA1(249746eb20483ec87b6ad5a74e8b790afdb389de) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinorp )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "dinorp.23", 0x000000, 0x80000, CRC(373282a0) SHA1(b02bf02c9ef21cfa2606f3c6e38542fcb0be45ab) )
+ ROM_LOAD16_WORD_SWAP( "cde_22a.7f", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) )
+ ROM_LOAD16_WORD_SWAP( "dinorp.21", 0x100000, 0x80000, CRC(d0d89d2c) SHA1(36f510ca6a2713518c3dba8fb49a314fd0de4d75) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinosf2 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "dinosf2.u23", 0x000000, 0x80000, CRC(ccdc80f3) SHA1(0cb34ac873a9c4cf7189c8d189bb9f96ec4f0721) )
+ ROM_LOAD16_WORD_SWAP( "dinosf2.u22", 0x080000, 0x80000, CRC(e8eb6500) SHA1(d062e31863c8a3d297aa9c32693b67921d9a9650) )
+ ROM_LOAD16_WORD_SWAP( "dinosf2.u21", 0x100000, 0x80000, CRC(8822a8ef) SHA1(3e345fad0331ce7a3ba742ed3a74abf8bb7e7a02) )
+ ROM_LOAD16_WORD_SWAP( "u20", 0x180000, 0x80000, CRC(8987c975) SHA1(3fd856805d627f855f72acc7aacc2e8ecf0f12bd) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "u9", 0x00000, 0x08000, CRC(2eb16a83) SHA1(067ea0bfc2c1e73520d6b836c72fbb9da9998311) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* samples */
+ ROM_LOAD( "u18", 0x00000, 0x20000, CRC(8d2899ba) SHA1(0b3ac6cf2ce0323e3bfc9da3ebfcb0fd14bc405b) )
+ ROM_LOAD( "u19", 0x20000, 0x20000, CRC(b34a4b42) SHA1(3eeb9e33bb911359e03d44949ac58439a3d3d54b) )
+ROM_END
+
+ROM_START( dinoslice )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "cdeslice.rom", 0x000000, 0x200000, CRC(9da95eab) SHA1(370bf3bbd76de5ae638c6fdab67c7cea98744e7b) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinouphp )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "dinouphp.23", 0x000000, 0x80000, CRC(1bf35c82) SHA1(82496d6c8fa853b0c28932f0f36e37219c0adfc8) )
+ ROM_LOAD16_WORD_SWAP( "cde_22a.7f", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) )
+ ROM_LOAD16_WORD_SWAP( "cde_21a.6f", 0x100000, 0x80000, CRC(66d23de2) SHA1(19b8a365f630411d524d055459020f4c8cf930f1) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinoz )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "dinoz_23a.8f", 0x000000, 0x80000, CRC(0129f422) SHA1(968e6d25a1aa2116f9e9a6b4b76c83bd63f4f477) )
+ ROM_LOAD16_WORD_SWAP( "dinoz_22a.7f", 0x080000, 0x80000, CRC(3861d9d8) SHA1(11dac49f09dfc325b9f529271dc5921d7aacb630) )
+ ROM_LOAD16_WORD_SWAP( "cde_21a.6f", 0x100000, 0x80000, CRC(66d23de2) SHA1(19b8a365f630411d524d055459020f4c8cf930f1) )
+ ROM_LOAD16_WORD_SWAP( "dinoz_20a.5f", 0x180000, 0x80000, CRC(8fc0ab46) SHA1(63abdc8edb06963366bb86a9f3388d1f94c6a7e8) )
+ ROM_LOAD16_WORD_SWAP( "dinoz_19a.4f", 0x200000, 0x80000, CRC(93eb9535) SHA1(c8296f7fd124beb786e6f36472948fdee6d1d21c) )
+ ROM_LOAD16_WORD_SWAP( "dinoz_18a.3f", 0x280000, 0x80000, CRC(51ba57fd) SHA1(6bb09f8ba10e6543540441d68c49a54188d8d8a0) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+
+ROM_START( ffightb )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "ffu_36b.11f", 0x00000, 0x20000, CRC(a9fa0174) SHA1(a6f669370f1f822b2988c297a8e26bcb6300692d) )
+ ROM_LOAD16_BYTE( "ffu_42b.11h", 0x00001, 0x20000, CRC(d47cb6b7) SHA1(26c94b0d91a4343b58a7cc542417d8d36e9f2e34) )
+ ROM_LOAD16_BYTE( "ffu_37b.12f", 0x40000, 0x20000, CRC(3fc9f9e3) SHA1(0982c40d5967e5068ec592db022eb16172f95005) )
+ ROM_LOAD16_BYTE( "ffu_43b.12h", 0x40001, 0x20000, CRC(5ef051fa) SHA1(f72d45f9d03f78de8d081658098decbadc9e7828) )
+ ROM_LOAD16_WORD_SWAP( "ff_22.7f", 0x80000, 0x80000, CRC(b2d5a3aa) SHA1(b60f7480d3d3ceebad4c21025394bacc154d7042) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "ff_1.3a", 0x000000, 0x80000, CRC(969d18e2) SHA1(7a30b7434e34ec98838a9ab8d953b2ef467d562e), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ff_2.4a", 0x000002, 0x80000, CRC(02b59f99) SHA1(c1cb2bbf95c2006baad58b0a5a7278f1a8999901), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ff_3.5a", 0x000004, 0x80000, CRC(01d507ae) SHA1(d7813daa5bd74bebdbbea578acb20ad3c8816997), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ff_4.6a", 0x000006, 0x80000, CRC(f7c4ceb0) SHA1(3e9cf6379f06c5a736b4a0aadb7fbda914b91190), ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "ff_09.12b", 0x00000, 0x08000, CRC(b8367eb5) SHA1(ec3db29fdd6200e9a8f4f8073a7e34aef731354f) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "ff_18.11c", 0x00000, 0x20000, CRC(375c66e7) SHA1(36189e23209ce4ae5d9cbabd1574540d0591e7b3) )
+ ROM_LOAD( "ff_19.12c", 0x20000, 0x20000, CRC(1ef137f9) SHA1(974b5e72aa28b87ebfa7438efbdfeda769dedf5e) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "ffightb.key", 0x000000, 0x000080, CRC(328f442c) SHA1(f58a07458f00ee7fdd0471fa03f7859ae9e2629b) )
+ROM_END
+
+
+ROM_START( knight21 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "kr_2321.8f",0x00000, 0x80000, CRC(aacaebcd) SHA1(3c243d59b86b2a51c219c296c12090058851c77d) )
+ ROM_LOAD16_WORD_SWAP( "kr_22.7f", 0x80000, 0x80000, CRC(d0b671a9) SHA1(9865472c5fc3f617345e23b5de5a9ba177945b5a) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "kr-5m.3a", 0x000000, 0x80000, CRC(9e36c1a4) SHA1(772daae74e119371dfb76fde9775bda78a8ba125) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-7m.5a", 0x000002, 0x80000, CRC(c5832cae) SHA1(a188cf401cd3a2909b377d3059f14d22ec3b0643) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-1m.4a", 0x000004, 0x80000, CRC(f095be2d) SHA1(0427d1574062f277a9d04440019d5638b05de561) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-3m.6a", 0x000006, 0x80000, CRC(179dfd96) SHA1(b1844e69da7ab13474da569978d5b47deb8eb2be) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-6m.7a", 0x200000, 0x80000, CRC(1f4298d2) SHA1(4b162a7f649b0bcd676f8ca0c5eee9a1250d6452) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-8m.9a", 0x200002, 0x80000, CRC(37fa8751) SHA1(b88b39d1f08621f15a5620095aef998346fa9891) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-2m.8a", 0x200004, 0x80000, CRC(0200bc3d) SHA1(c900b1be2b4e49b951e5c1e3fd1e19d21b82986e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-4m.10a", 0x200006, 0x80000, CRC(0bb2b4e7) SHA1(983b800925d58e4aeb4e5105f93ed5faf66d009c) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "kr_09.11a", 0x00000, 0x08000, CRC(5e44d9ee) SHA1(47a7503321be8d52b5c44af838e3bb82ee15a415) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "kr_18.11c", 0x00000, 0x20000, CRC(da69d15f) SHA1(9616207e693bae85705f786cef60b9f6951b5067) )
+ ROM_LOAD( "kr_19.12c", 0x20000, 0x20000, CRC(bfc654e9) SHA1(01b3d92e4dedf55ea3933d387c7ddb9ba2549773) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "knights.key", 0x000000, 0x000080, CRC(a4851689) SHA1(0a96f22a655c3ff9d09d7b84abd7ab5ac5f137e2) )
+ROM_END
+
+ROM_START( knightsa )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "kr_23h.rom", 0x00000, 0x80000, CRC(bc3b60f5) SHA1(f8c5e49535bb191d46f4c32e336b2ca92517109a) )
+ ROM_LOAD16_WORD_SWAP( "kr_22.7f", 0x80000, 0x80000, CRC(d0b671a9) SHA1(9865472c5fc3f617345e23b5de5a9ba177945b5a) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "kr-5m.3a", 0x000000, 0x80000, CRC(9e36c1a4) SHA1(772daae74e119371dfb76fde9775bda78a8ba125) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-7m.5a", 0x000002, 0x80000, CRC(c5832cae) SHA1(a188cf401cd3a2909b377d3059f14d22ec3b0643) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-1m.4a", 0x000004, 0x80000, CRC(f095be2d) SHA1(0427d1574062f277a9d04440019d5638b05de561) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-3m.6a", 0x000006, 0x80000, CRC(179dfd96) SHA1(b1844e69da7ab13474da569978d5b47deb8eb2be) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-6m.7a", 0x200000, 0x80000, CRC(1f4298d2) SHA1(4b162a7f649b0bcd676f8ca0c5eee9a1250d6452) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-8m.9a", 0x200002, 0x80000, CRC(37fa8751) SHA1(b88b39d1f08621f15a5620095aef998346fa9891) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-2m.8a", 0x200004, 0x80000, CRC(0200bc3d) SHA1(c900b1be2b4e49b951e5c1e3fd1e19d21b82986e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-4m.10a", 0x200006, 0x80000, CRC(0bb2b4e7) SHA1(983b800925d58e4aeb4e5105f93ed5faf66d009c) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "kr_09.11a", 0x00000, 0x08000, CRC(5e44d9ee) SHA1(47a7503321be8d52b5c44af838e3bb82ee15a415) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "kr_18.11c", 0x00000, 0x20000, CRC(da69d15f) SHA1(9616207e693bae85705f786cef60b9f6951b5067) )
+ ROM_LOAD( "kr_19.12c", 0x20000, 0x20000, CRC(bfc654e9) SHA1(01b3d92e4dedf55ea3933d387c7ddb9ba2549773) )
+ROM_END
+
+ROM_START( knightsb2 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "040-z.02", 0x00000, 0x80000, CRC(95d00a7e) SHA1(2da1c47aa15d44aa842a8d79e030e7e7b69bec19) )
+ ROM_LOAD16_BYTE( "040-r.02", 0x00001, 0x80000, CRC(5a9d0b64) SHA1(6ff312879c3d675ceee6fd3e262f797fabb9871e) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "kr-5m.3a", 0x000000, 0x80000, CRC(9e36c1a4) SHA1(772daae74e119371dfb76fde9775bda78a8ba125) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-7m.5a", 0x000002, 0x80000, CRC(c5832cae) SHA1(a188cf401cd3a2909b377d3059f14d22ec3b0643) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-1m.4a", 0x000004, 0x80000, CRC(f095be2d) SHA1(0427d1574062f277a9d04440019d5638b05de561) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-3m.6a", 0x000006, 0x80000, CRC(179dfd96) SHA1(b1844e69da7ab13474da569978d5b47deb8eb2be) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-6m.7a", 0x200000, 0x80000, CRC(1f4298d2) SHA1(4b162a7f649b0bcd676f8ca0c5eee9a1250d6452) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-8m.9a", 0x200002, 0x80000, CRC(37fa8751) SHA1(b88b39d1f08621f15a5620095aef998346fa9891) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-2m.8a", 0x200004, 0x80000, CRC(0200bc3d) SHA1(c900b1be2b4e49b951e5c1e3fd1e19d21b82986e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-4m.10a", 0x200006, 0x80000, CRC(0bb2b4e7) SHA1(983b800925d58e4aeb4e5105f93ed5faf66d009c) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "kr_09.11a", 0x00000, 0x08000, CRC(5e44d9ee) SHA1(47a7503321be8d52b5c44af838e3bb82ee15a415) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "kr_18.11c", 0x00000, 0x20000, CRC(da69d15f) SHA1(9616207e693bae85705f786cef60b9f6951b5067) )
+ ROM_LOAD( "kr_19.12c", 0x20000, 0x20000, CRC(bfc654e9) SHA1(01b3d92e4dedf55ea3933d387c7ddb9ba2549773) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "knightsb2.key", 0x000000, 0x000080, CRC(67017a7f) SHA1(d9db5b41b214539f71cc2f0d92a27285c27e38c4) )
+ROM_END
+
+ROM_START( knightsh )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "krh_23.rom", 0x00000, 0x80000, CRC(fa2ff63d) SHA1(f3800102aadeccd13ed49c88039732453266283a) )
+ ROM_LOAD16_WORD_SWAP( "krh_22.rom", 0x80000, 0x80000, CRC(1438d070) SHA1(4f6fad844c3e8eb960bb6cb85ac570979c0ae973) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "kr-5m.3a", 0x000000, 0x80000, CRC(9e36c1a4) SHA1(772daae74e119371dfb76fde9775bda78a8ba125) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-7m.5a", 0x000002, 0x80000, CRC(c5832cae) SHA1(a188cf401cd3a2909b377d3059f14d22ec3b0643) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-1m.4a", 0x000004, 0x80000, CRC(f095be2d) SHA1(0427d1574062f277a9d04440019d5638b05de561) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-3m.6a", 0x000006, 0x80000, CRC(179dfd96) SHA1(b1844e69da7ab13474da569978d5b47deb8eb2be) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-6m.7a", 0x200000, 0x80000, CRC(1f4298d2) SHA1(4b162a7f649b0bcd676f8ca0c5eee9a1250d6452) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-8m.9a", 0x200002, 0x80000, CRC(37fa8751) SHA1(b88b39d1f08621f15a5620095aef998346fa9891) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-2m.8a", 0x200004, 0x80000, CRC(0200bc3d) SHA1(c900b1be2b4e49b951e5c1e3fd1e19d21b82986e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-4m.10a", 0x200006, 0x80000, CRC(0bb2b4e7) SHA1(983b800925d58e4aeb4e5105f93ed5faf66d009c) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "kr_09.11a", 0x00000, 0x08000, CRC(5e44d9ee) SHA1(47a7503321be8d52b5c44af838e3bb82ee15a415) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "kr_18.11c", 0x00000, 0x20000, CRC(da69d15f) SHA1(9616207e693bae85705f786cef60b9f6951b5067) )
+ ROM_LOAD( "kr_19.12c", 0x20000, 0x20000, CRC(bfc654e9) SHA1(01b3d92e4dedf55ea3933d387c7ddb9ba2549773) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "knightsh.key", 0x000000, 0x000080, CRC(68d9786b) SHA1(8721cda836d88c48ab07b96d66015832b5e561f7) )
+ROM_END
+
+ROM_START( knightsha )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "krha_23.rom", 0x00000, 0x80000, CRC(a7fd309a) SHA1(b4f163d9588e9d8dd6f2ba6d6ae520efb620c1ac) )
+ ROM_LOAD16_WORD_SWAP( "krh_22.rom", 0x80000, 0x80000, CRC(1438d070) SHA1(4f6fad844c3e8eb960bb6cb85ac570979c0ae973) )
+ ROM_FILL(0xb7d,1,0x66)
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "kr-5m.3a", 0x000000, 0x80000, CRC(9e36c1a4) SHA1(772daae74e119371dfb76fde9775bda78a8ba125) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-7m.5a", 0x000002, 0x80000, CRC(c5832cae) SHA1(a188cf401cd3a2909b377d3059f14d22ec3b0643) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-1m.4a", 0x000004, 0x80000, CRC(f095be2d) SHA1(0427d1574062f277a9d04440019d5638b05de561) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-3m.6a", 0x000006, 0x80000, CRC(179dfd96) SHA1(b1844e69da7ab13474da569978d5b47deb8eb2be) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-6m.7a", 0x200000, 0x80000, CRC(1f4298d2) SHA1(4b162a7f649b0bcd676f8ca0c5eee9a1250d6452) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-8m.9a", 0x200002, 0x80000, CRC(37fa8751) SHA1(b88b39d1f08621f15a5620095aef998346fa9891) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-2m.8a", 0x200004, 0x80000, CRC(0200bc3d) SHA1(c900b1be2b4e49b951e5c1e3fd1e19d21b82986e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-4m.10a", 0x200006, 0x80000, CRC(0bb2b4e7) SHA1(983b800925d58e4aeb4e5105f93ed5faf66d009c) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "kr_09.11a", 0x00000, 0x08000, CRC(5e44d9ee) SHA1(47a7503321be8d52b5c44af838e3bb82ee15a415) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "kr_18.11c", 0x00000, 0x20000, CRC(da69d15f) SHA1(9616207e693bae85705f786cef60b9f6951b5067) )
+ ROM_LOAD( "kr_19.12c", 0x20000, 0x20000, CRC(bfc654e9) SHA1(01b3d92e4dedf55ea3933d387c7ddb9ba2549773) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "knightsha.key", 0x000000, 0x000080, CRC(ab2dff46) SHA1(9bc8ec843ec9e8522858df8fb72e8c0e3fa1f023) )
+ROM_END
+
+ROM_START( knightsjb )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "23.096", 0x00000, 0x80000, CRC(7733b8a6) SHA1(ecf1a0d2b4631b9d4ba46e4987d226d938ee6628) )
+ ROM_LOAD16_WORD_SWAP( "kr_22.7f", 0x80000, 0x80000, CRC(d0b671a9) SHA1(9865472c5fc3f617345e23b5de5a9ba177945b5a) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "1.096", 0x000000, 0x80000, CRC(91541596) SHA1(4aac23d826f64c6065271488e3b582b3c9e11703) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "2.096", 0x000002, 0x80000, CRC(5d332114) SHA1(d340be3aa93b2117bccc9b4a7088c65ca29925b1) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "3.096", 0x000004, 0x80000, CRC(60488eba) SHA1(2117db67ed5c5d3225c3ab3d90932b9786e8060d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "4.096", 0x000006, 0x80000, CRC(394bdd11) SHA1(9b15abccc8372c04469b5472bd36d368965d1161) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "5.096", 0x200000, 0x80000, CRC(b52af98b) SHA1(3fb9b8fab8dc925d3d17f1428467df513d475d3d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "6.096", 0x200002, 0x80000, CRC(e44e5eac) SHA1(329649d381f1e48fcc37f5d64eb869833a5e0e18) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-2m.8a", 0x200004, 0x80000, CRC(0200bc3d) SHA1(c900b1be2b4e49b951e5c1e3fd1e19d21b82986e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-4m.10a", 0x200006, 0x80000, CRC(0bb2b4e7) SHA1(983b800925d58e4aeb4e5105f93ed5faf66d009c) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "kr_09.11a", 0x00000, 0x08000, CRC(5e44d9ee) SHA1(47a7503321be8d52b5c44af838e3bb82ee15a415) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "18.010", 0x00000, 0x20000, CRC(9b9be3ab) SHA1(9a5283d71551e71660a4741a647f5aea7e5ba89b) )
+ ROM_LOAD( "kr_19.12c", 0x20000, 0x20000, CRC(bfc654e9) SHA1(01b3d92e4dedf55ea3933d387c7ddb9ba2549773) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "knightsh.key", 0x000000, 0x000080, CRC(68d9786b) SHA1(8721cda836d88c48ab07b96d66015832b5e561f7) )
+ROM_END
+
+ROM_START( knightsro )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "knightsro.8f", 0x00000, 0x80000, CRC(a1984e47) SHA1(2c9782c51931b9c365b001daa7c49671dd36147c) )
+ ROM_LOAD16_WORD_SWAP( "kr_22.7f", 0x80000, 0x80000, CRC(d0b671a9) SHA1(9865472c5fc3f617345e23b5de5a9ba177945b5a) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "kr-5m.3a", 0x000000, 0x80000, CRC(9e36c1a4) SHA1(772daae74e119371dfb76fde9775bda78a8ba125) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-7m.5a", 0x000002, 0x80000, CRC(c5832cae) SHA1(a188cf401cd3a2909b377d3059f14d22ec3b0643) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-1m.4a", 0x000004, 0x80000, CRC(f095be2d) SHA1(0427d1574062f277a9d04440019d5638b05de561) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-3m.6a", 0x000006, 0x80000, CRC(179dfd96) SHA1(b1844e69da7ab13474da569978d5b47deb8eb2be) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-6m.7a", 0x200000, 0x80000, CRC(1f4298d2) SHA1(4b162a7f649b0bcd676f8ca0c5eee9a1250d6452) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-8m.9a", 0x200002, 0x80000, CRC(37fa8751) SHA1(b88b39d1f08621f15a5620095aef998346fa9891) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-2m.8a", 0x200004, 0x80000, CRC(0200bc3d) SHA1(c900b1be2b4e49b951e5c1e3fd1e19d21b82986e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-4m.10a", 0x200006, 0x80000, CRC(0bb2b4e7) SHA1(983b800925d58e4aeb4e5105f93ed5faf66d009c) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "kr_09.11a", 0x00000, 0x08000, CRC(5e44d9ee) SHA1(47a7503321be8d52b5c44af838e3bb82ee15a415) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "kr_18.11c", 0x00000, 0x20000, CRC(da69d15f) SHA1(9616207e693bae85705f786cef60b9f6951b5067) )
+ ROM_LOAD( "kr_19.12c", 0x20000, 0x20000, CRC(bfc654e9) SHA1(01b3d92e4dedf55ea3933d387c7ddb9ba2549773) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "knights.key", 0x000000, 0x000080, CRC(a4851689) SHA1(0a96f22a655c3ff9d09d7b84abd7ab5ac5f137e2) )
+ROM_END
+
+ROM_START( knightud )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "knightud.23", 0x00000, 0x80000, CRC(5fe98e7f) SHA1(3e01b9e06663ade831750de3ecd0d3925889a5da) )
+ ROM_LOAD16_WORD_SWAP( "kr_22.7f", 0x80000, 0x80000, CRC(d0b671a9) SHA1(9865472c5fc3f617345e23b5de5a9ba177945b5a) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "kr-5m.3a", 0x000000, 0x80000, CRC(9e36c1a4) SHA1(772daae74e119371dfb76fde9775bda78a8ba125) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-7m.5a", 0x000002, 0x80000, CRC(c5832cae) SHA1(a188cf401cd3a2909b377d3059f14d22ec3b0643) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-1m.4a", 0x000004, 0x80000, CRC(f095be2d) SHA1(0427d1574062f277a9d04440019d5638b05de561) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-3m.6a", 0x000006, 0x80000, CRC(179dfd96) SHA1(b1844e69da7ab13474da569978d5b47deb8eb2be) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-6m.7a", 0x200000, 0x80000, CRC(1f4298d2) SHA1(4b162a7f649b0bcd676f8ca0c5eee9a1250d6452) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-8m.9a", 0x200002, 0x80000, CRC(37fa8751) SHA1(b88b39d1f08621f15a5620095aef998346fa9891) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-2m.8a", 0x200004, 0x80000, CRC(0200bc3d) SHA1(c900b1be2b4e49b951e5c1e3fd1e19d21b82986e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr-4m.10a", 0x200006, 0x80000, CRC(0bb2b4e7) SHA1(983b800925d58e4aeb4e5105f93ed5faf66d009c) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "kr_09.11a", 0x00000, 0x08000, CRC(5e44d9ee) SHA1(47a7503321be8d52b5c44af838e3bb82ee15a415) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "kr_18.11c", 0x00000, 0x20000, CRC(da69d15f) SHA1(9616207e693bae85705f786cef60b9f6951b5067) )
+ ROM_LOAD( "kr_19.12c", 0x20000, 0x20000, CRC(bfc654e9) SHA1(01b3d92e4dedf55ea3933d387c7ddb9ba2549773) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "knightsh.key", 0x000000, 0x000080, CRC(68d9786b) SHA1(8721cda836d88c48ab07b96d66015832b5e561f7) )
+ROM_END
+
+
+ROM_START( kodd )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "kodd.30", 0x00000, 0x20000, CRC(8eb281a4) SHA1(6e6e316321c500796bba6b888db8e0445b63bea3) )
+ ROM_LOAD16_BYTE( "kodd.37", 0x00001, 0x20000, CRC(9c16c2b9) SHA1(1c04419f1223b7a9a0ae2de8f11010b478d58c63) )
+ ROM_LOAD16_BYTE( "kodd.31", 0x40000, 0x20000, CRC(b4aeee54) SHA1(ed0b965b2f16a6aeb117e7b12ab10d7d0b87dcdf) )
+ ROM_LOAD16_BYTE( "kodd.38", 0x40001, 0x20000, CRC(534554bc) SHA1(c0b73e8a44b4a5b6679f39a146f01fd0f2c270c8) )
+ ROM_LOAD16_BYTE( "kd_28.9e", 0x80000, 0x20000, CRC(9367bcd9) SHA1(8243b4b9bb9756f3fa726717e19a166cb2f5b50a) )
+ ROM_LOAD16_BYTE( "kd_35.9f", 0x80001, 0x20000, CRC(4ca6a48a) SHA1(9d440ecd8d2d0e293fecf64ca3915252b94e7aef) )
+ ROM_LOAD16_BYTE( "kde_29.10e", 0xc0000, 0x20000, CRC(6a0ba878) SHA1(82e4037d73889a76b0cdc7a4f8e77e585d38e56e) )
+ ROM_LOAD16_BYTE( "kde_36.10f", 0xc0001, 0x20000, CRC(b509b39d) SHA1(6023855e54b170e55abf0f607600031e19e5e722) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "kd-5m.4a", 0x000000, 0x80000, CRC(e45b8701) SHA1(604e39e455e81695ee4f899f102d0bcd789cedd0) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kd-7m.6a", 0x000002, 0x80000, CRC(a7750322) SHA1(3c583496a53cd64edf377db35f7f40f02b59b7e7) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kd-1m.3a", 0x000004, 0x80000, CRC(5f74bf78) SHA1(b7c43eea9bf77a0fb571dcd53f8be719e6655fd9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kd-3m.5a", 0x000006, 0x80000, CRC(5e5303bf) SHA1(d9f90b898ffdf4398b2bbeb48247f06f728e7c00) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kd-6m.4c", 0x200000, 0x80000, CRC(113358f3) SHA1(9d98eafa74a046f65bf3847fe1d88ea1b0c82b0c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kd-8m.6c", 0x200002, 0x80000, CRC(38853c44) SHA1(a6e552fb0138a76a7878b90d202904e2b44ae7ec) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kd-2m.3c", 0x200004, 0x80000, CRC(9ef36604) SHA1(b42ca0a910b65e1e7bb6e7d734e853ce67e821bf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kd-4m.5c", 0x200006, 0x80000, CRC(402b9b4f) SHA1(4c11976976eadf1ad293b31b0a4d047d05032b06) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "kd_9.12a", 0x00000, 0x08000, CRC(f5514510) SHA1(07e9c836adf9ef2f7e7729e99015f71e3b5f16e0) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "kd_18.11c", 0x00000, 0x20000, CRC(69ecb2c8) SHA1(fadf266b6b20bd6329a3e638918c5a3106413476) )
+ ROM_LOAD( "kd_19.12c", 0x20000, 0x20000, CRC(02d851c1) SHA1(c959a6fc3e7d893557f319debae91f28471f4be2) )
+ROM_END
+
+// - Actor preview flickers instead of wriggling
+// - No music in attract mode
+ROM_START( kodh )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "23.096", 0x00000, 0x80000, CRC(daf89cfb) SHA1(de0944884d0e64c6b0410294d25308201508afbe) )
+ ROM_LOAD16_WORD_SWAP( "22.096", 0x80000, 0x80000, CRC(c83e19d8) SHA1(8c342818a1c5337ad4b259700e184972f821aca4) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "1.096", 0x000000, 0x80000, CRC(09261881) SHA1(e65abce3d39224c2c94673900291a210c1d949cb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "2.096", 0x000002, 0x80000, CRC(bc121ff2) SHA1(1f75f93652bb6c521bc538e7c2d10920a7897aa2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "3.096", 0x000004, 0x80000, CRC(f463ae22) SHA1(f8bc17814d38f3693a2a8dc64cc44e1f4fe3102c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "4.096", 0x000006, 0x80000, CRC(01308733) SHA1(8de29e7063d03493f197cee7a4e4edff3eee8e36) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kd-6m.4c", 0x200000, 0x80000, CRC(113358f3) SHA1(9d98eafa74a046f65bf3847fe1d88ea1b0c82b0c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kd-8m.6c", 0x200002, 0x80000, CRC(38853c44) SHA1(a6e552fb0138a76a7878b90d202904e2b44ae7ec) , ROM_GROUPWORD | ROM_SKIP(6) )
+ // Bad dump? Only 1 byte is different
+ ROMX_LOAD( "kr-2m.8a", 0x200004, 0x80000, CRC(c7ab4704) SHA1(180852c4d59359c2094feb8ad1f05d70eafe6c55) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kd-4m.5c", 0x200006, 0x80000, CRC(402b9b4f) SHA1(4c11976976eadf1ad293b31b0a4d047d05032b06) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "kd_9.12a", 0x00000, 0x08000, CRC(bac6ec26) SHA1(6cbb6d55660150ae3f5270e023328275ee1bbf50) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "kd_18.11c", 0x00000, 0x20000, CRC(4c63181d) SHA1(270f27534a95cb0be3ff3f9ca71c502320d8090b) )
+ ROM_LOAD( "kd_19.12c", 0x20000, 0x20000, CRC(92941b80) SHA1(5fa7c2793e6febee54a83042d118ddd4f2b7d127) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "kodh.key", 0x000000, 0x000080, CRC(9d65fe9c) SHA1(9671ee388d59a2d12cf38712620f5f598e93abfc) )
+ROM_END
+
+// - Actor preview flickers instead of wriggling
+// - No music in attract mode
+ROM_START( kodsp )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "kde_30.11e", 0x00000, 0x20000, CRC(c7414fd4) SHA1(37d27fbe7c617a26b53bfdfcd532cf573d42f33b) )
+ ROM_LOAD16_BYTE( "kde_37.11f", 0x00001, 0x20000, CRC(a5bf40d2) SHA1(cd34dbeabd0974709411579e669f01d0d799c2a1) )
+ ROM_LOAD16_BYTE( "kde_31.12e", 0x40000, 0x20000, CRC(1fffc7bd) SHA1(822c9ad996ca51a99a2bb1fe08fa19e18413030d) )
+ ROM_LOAD16_BYTE( "kde_38.12f", 0x40001, 0x20000, CRC(89e57a82) SHA1(aad35f86a8b1b7e3a0b5f3e6efd0e844b3d3d82f) )
+ ROM_LOAD16_BYTE( "kd_28.9e", 0x80000, 0x20000, CRC(9367bcd9) SHA1(8243b4b9bb9756f3fa726717e19a166cb2f5b50a) )
+ ROM_LOAD16_BYTE( "kd_35.9f", 0x80001, 0x20000, CRC(4ca6a48a) SHA1(9d440ecd8d2d0e293fecf64ca3915252b94e7aef) )
+ ROM_LOAD16_BYTE( "kde_29.10e", 0xc0000, 0x20000, CRC(6a0ba878) SHA1(82e4037d73889a76b0cdc7a4f8e77e585d38e56e) )
+ ROM_LOAD16_BYTE( "kde_36.10f", 0xc0001, 0x20000, CRC(b509b39d) SHA1(6023855e54b170e55abf0f607600031e19e5e722) )
+
+ ROM_REGION( 0x400000, "gfx", 0 ) // this set has new gfx roms
+ ROMX_LOAD( "kodsp.5", 0x000000, 0x80000, CRC(0aaa04b7) SHA1(14ab5944461cb7989659c31ea3be333c513284b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kodsp.7", 0x000002, 0x80000, CRC(28d6b2ff) SHA1(a0934eb3a15b5d21b816ffcdb4208322f0a480b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kodsp.1", 0x000004, 0x80000, CRC(8707e5ac) SHA1(36fd449595b8cd22a3e9a61b4941b0fde821b67a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kodsp.3", 0x000006, 0x80000, CRC(c115f6c6) SHA1(36b0d93b38a3f9c517ebf35bc3c7437794afe6f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kodsp.6", 0x200000, 0x80000, CRC(e8009e30) SHA1(2a1038f627edc5f7b89a5ac2000ba50ac015e29d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kodsp.8", 0x200002, 0x80000, CRC(c76b4156) SHA1(95606000fdd79c2c80082e368a5710087332c8c8) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kodsp.2", 0x200004, 0x80000, CRC(34b917e8) SHA1(7e1fb92539199f51f21b24c685fabb04c6a247a7) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kodsp.4", 0x200006, 0x80000, CRC(8faba58f) SHA1(9a77f7e69ccc796e09b0fe266b2af0c31fcd85ba) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "kodsp.12a", 0x00000, 0x08000, CRC(f5514510) SHA1(07e9c836adf9ef2f7e7729e99015f71e3b5f16e0) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "kodsp.11c", 0x00000, 0x20000, CRC(69ecb2c8) SHA1(fadf266b6b20bd6329a3e638918c5a3106413476) )
+ ROM_LOAD( "kodsp.12c", 0x20000, 0x20000, CRC(02d851c1) SHA1(c959a6fc3e7d893557f319debae91f28471f4be2) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "kod.key", 0x000000, 0x000080, CRC(b79ea9b9) SHA1(cefded329a6ccc34d3b68e614c8f3a2c174e3fdd) )
+ROM_END
+
+ROM_START( kodud )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "kodud.30", 0x00000, 0x20000, CRC(c5ada5eb) SHA1(c989c747abfc6f80871d0ee763d5573b321fb48e) )
+ ROM_LOAD16_BYTE( "kodud.37", 0x00001, 0x20000, CRC(b8169b17) SHA1(55176bb92fc422d4ce03a011190a7cc6caa082ff) )
+ ROM_LOAD16_BYTE( "kodud.31", 0x40000, 0x20000, CRC(72dd68a5) SHA1(db077c2c4716da59880e49af1d066b3c596143e1) )
+ ROM_LOAD16_BYTE( "kodud.38", 0x40001, 0x20000, CRC(0021a110) SHA1(0e15786d6e36a62f338dce8508cdd17a69511ed2) )
+ ROM_LOAD16_BYTE( "kd_28.9e", 0x80000, 0x20000, CRC(9367bcd9) SHA1(8243b4b9bb9756f3fa726717e19a166cb2f5b50a) )
+ ROM_LOAD16_BYTE( "kd_35.9f", 0x80001, 0x20000, CRC(4ca6a48a) SHA1(9d440ecd8d2d0e293fecf64ca3915252b94e7aef) )
+ ROM_LOAD16_BYTE( "kd_29.10e", 0xc0000, 0x20000, CRC(0360fa72) SHA1(274769c8717a874397cf37369e3ef80a682d9ef2) )
+ ROM_LOAD16_BYTE( "kd_36a.10f", 0xc0001, 0x20000, CRC(95a3cef8) SHA1(9b75c1ed0eafacc230197ffd9b81e0c8f4f2c464) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "kd-5m.4a", 0x000000, 0x80000, CRC(e45b8701) SHA1(604e39e455e81695ee4f899f102d0bcd789cedd0) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kd-7m.6a", 0x000002, 0x80000, CRC(a7750322) SHA1(3c583496a53cd64edf377db35f7f40f02b59b7e7) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kd-1m.3a", 0x000004, 0x80000, CRC(5f74bf78) SHA1(b7c43eea9bf77a0fb571dcd53f8be719e6655fd9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kd-3m.5a", 0x000006, 0x80000, CRC(5e5303bf) SHA1(d9f90b898ffdf4398b2bbeb48247f06f728e7c00) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kd-6m.4c", 0x200000, 0x80000, CRC(113358f3) SHA1(9d98eafa74a046f65bf3847fe1d88ea1b0c82b0c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kd-8m.6c", 0x200002, 0x80000, CRC(38853c44) SHA1(a6e552fb0138a76a7878b90d202904e2b44ae7ec) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kd-2m.3c", 0x200004, 0x80000, CRC(9ef36604) SHA1(b42ca0a910b65e1e7bb6e7d734e853ce67e821bf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kd-4m.5c", 0x200006, 0x80000, CRC(402b9b4f) SHA1(4c11976976eadf1ad293b31b0a4d047d05032b06) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "kd_9.12a", 0x00000, 0x08000, CRC(bac6ec26) SHA1(6cbb6d55660150ae3f5270e023328275ee1bbf50) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "kd_18.11c", 0x00000, 0x20000, CRC(4c63181d) SHA1(270f27534a95cb0be3ff3f9ca71c502320d8090b) )
+ ROM_LOAD( "kd_19.12c", 0x20000, 0x20000, CRC(92941b80) SHA1(5fa7c2793e6febee54a83042d118ddd4f2b7d127) )
+ROM_END
+
+
+ROM_START( pnicku )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "pnij36.bin", 0x00000, 0x20000, CRC(2d4ffb2b) SHA1(6e49cf89a36834fd1de8b4b860fe66f3d7d67a84) )
+ ROM_LOAD16_BYTE( "pniu42.bin", 0x00001, 0x20000, CRC(22d20227) SHA1(a103c9b1f6134c529405bd258da9f601c1459c47) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "pnij09.bin", 0x000000, 0x20000, CRC(48177b0a) SHA1(eba5de6cd9bb0c4ad76a13bddc9cdeb2e4380122) , ROM_SKIP(7) )
+ ROMX_LOAD( "pnij01.bin", 0x000001, 0x20000, CRC(01a0f311) SHA1(9bcd8716f90ccd410543ffcdc5c2916077b8d4c3) , ROM_SKIP(7) )
+ ROMX_LOAD( "pnij13.bin", 0x000002, 0x20000, CRC(406451b0) SHA1(5a7a7fecba7de8b8cf4a284b2ae7adae901623f6) , ROM_SKIP(7) )
+ ROMX_LOAD( "pnij05.bin", 0x000003, 0x20000, CRC(8c515dc0) SHA1(aa1e13cf9e7cf0458bb5c4332b1ea73034f9a874) , ROM_SKIP(7) )
+ ROMX_LOAD( "pnij26.bin", 0x000004, 0x20000, CRC(e2af981e) SHA1(3c2b28b4a4d457aa94a760dfca0181a9f050c319) , ROM_SKIP(7) )
+ ROMX_LOAD( "pnij18.bin", 0x000005, 0x20000, CRC(f17a0e56) SHA1(7c89aca230f176e12f995892f9d1bce22c57fbdf) , ROM_SKIP(7) )
+ ROMX_LOAD( "pnij38.bin", 0x000006, 0x20000, CRC(eb75bd8c) SHA1(2129460e06eb64019fc5f7eab6334ff43229b995) , ROM_SKIP(7) )
+ ROMX_LOAD( "pnij32.bin", 0x000007, 0x20000, CRC(84560bef) SHA1(9e94ae434b50ecf82781080e11d0c4741e992d0d) , ROM_SKIP(7) )
+ ROMX_LOAD( "pnij10.bin", 0x100000, 0x20000, CRC(c2acc171) SHA1(7c86db3f2acca1252d403c5f12c871d0357fa109) , ROM_SKIP(7) )
+ ROMX_LOAD( "pnij02.bin", 0x100001, 0x20000, CRC(0e21fc33) SHA1(c4a29d45c4257c8871038d3c9b13140e874db0c1) , ROM_SKIP(7) )
+ ROMX_LOAD( "pnij14.bin", 0x100002, 0x20000, CRC(7fe59b19) SHA1(a273b8b8fbfd5d31d25479a9ede09ce35e1cc873) , ROM_SKIP(7) )
+ ROMX_LOAD( "pnij06.bin", 0x100003, 0x20000, CRC(79f4bfe3) SHA1(bc17cc1c8535e3d202588893713926b6c06f92fd) , ROM_SKIP(7) )
+ ROMX_LOAD( "pnij27.bin", 0x100004, 0x20000, CRC(83d5cb0e) SHA1(44c93fa5eedcafc8dc6d88ee827c6cadc9c671f0) , ROM_SKIP(7) )
+ ROMX_LOAD( "pnij19.bin", 0x100005, 0x20000, CRC(af08b230) SHA1(a3b5b3013012efa1860699648518f8d8031c5f30) , ROM_SKIP(7) )
+ ROMX_LOAD( "pnij39.bin", 0x100006, 0x20000, CRC(70fbe579) SHA1(b5b7ed5588ecd884b20dd50bfc5385a9af03c5d8) , ROM_SKIP(7) )
+ ROMX_LOAD( "pnij33.bin", 0x100007, 0x20000, CRC(3ed2c680) SHA1(0afe84d8d89f8d45afc79f6172337e622e29a8a2) , ROM_SKIP(7) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "pnij17.bin", 0x00000, 0x08000, CRC(e86f787a) SHA1(de04cbe89c655faf04afe169bfd9913049ccc4a8) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "pnij24.bin", 0x00000, 0x20000, CRC(5092257d) SHA1(95dc9d10940653b2fb37baf5c1ed27145b02104e) )
+ ROM_LOAD( "pnij25.bin", 0x20000, 0x20000, CRC(22109aaa) SHA1(cf21e75674d81b2daae2083d02f9f4b6e52722c6) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "pnickj.key", 0x000000, 0x000080, CRC(38afadc4) SHA1(05b49635f99e7cb97a99b9666239d68154cb3641) )
+ROM_END
+
+
+ROM_START( punisherb ) // punipic in mame
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "3.bin", 0x000001, 0x80000, CRC(8c2593ac) SHA1(4261bc72b96c3a5690df35c5d8b71524765693d9) )
+ ROM_LOAD16_BYTE( "5.bin", 0x000000, 0x80000, CRC(c3151563) SHA1(61d3a20c25fea8a94ae6e473a87c21968867cba0) )
+ ROM_LOAD16_BYTE( "2.bin", 0x100001, 0x80000, CRC(d7b13f39) SHA1(eb7cd92b44fdef3b72672b0be6786c526421b627) )
+ ROM_LOAD16_BYTE( "4.bin", 0x100000, 0x80000, CRC(665a5485) SHA1(c07920d110ca9c35f6cbff94a6a889c17300f994) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "9.bin", 0x000000, 0x40000, CRC(9b9a887a) SHA1(8805b36fc18837bd7c64c751b435d72b763b2235), ROM_GROUPBYTE | ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000004, 0x40000 )
+ ROMX_LOAD( "8.bin", 0x000001, 0x40000, CRC(2b94287a) SHA1(815d88e66f537e17550fc0483616f02f7126bfb1), ROM_GROUPBYTE | ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000005, 0x40000 )
+ ROMX_LOAD( "7.bin", 0x000002, 0x40000, CRC(e9bd74f5) SHA1(8ed7098c69d1c70093c99956bf82e532bd6fc7ac), ROM_GROUPBYTE | ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000006, 0x40000 )
+ ROMX_LOAD( "6.bin", 0x000003, 0x40000, CRC(a5e1c8a4) SHA1(3596265a45cf6bbf16c623f0fce7cdc65f9338ad), ROM_GROUPBYTE | ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000007, 0x40000 )
+ ROMX_LOAD( "13.bin", 0x200000, 0x40000, CRC(6d75a193) SHA1(6c5a89517926d7ba4a925a3df800d4bdb8a6938d), ROM_GROUPBYTE | ROM_SKIP(7) )
+ ROM_CONTINUE( 0x200004, 0x40000 )
+ ROMX_LOAD( "12.bin", 0x200001, 0x40000, CRC(a3c205c1) SHA1(6317cc49434dbbb9a249ddd4b50bd791803b3ebe), ROM_GROUPBYTE | ROM_SKIP(7) )
+ ROM_CONTINUE( 0x200005, 0x40000 )
+ ROMX_LOAD( "11.bin", 0x200002, 0x40000, CRC(22f2ec92) SHA1(9186bfc5db71dc5b099c9a985e8fdd5710772d1c), ROM_GROUPBYTE | ROM_SKIP(7) )
+ ROM_CONTINUE( 0x200006, 0x40000 )
+ ROMX_LOAD( "10.bin", 0x200003, 0x40000, CRC(763974c9) SHA1(f9b93c7cf0cb8c212fc21c57c85459b7d2e4e2fd), ROM_GROUPBYTE | ROM_SKIP(7) )
+ ROM_CONTINUE( 0x200007, 0x40000 )
+
+ ROM_REGION( 0x80000, "user1", 0 ) // spare rom
+ ROM_LOAD_OPTIONAL( "1.bin", 0x00000, 0x80000, CRC(aeec9dc6) SHA1(56fd62e8db8aa96cdd242d8c705849a413567780) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "ps_q.rom", 0x00000, 0x08000, CRC(49ff4446) SHA1(87af12f87a940a6c5428b4574ad44a4b54867bc3) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "ps_q1.rom", 0x000000, 0x80000, CRC(31fd8726) SHA1(1d73a76682e9fb908db0c55b9a18163f7539fea1) )
+ ROM_LOAD( "ps_q2.rom", 0x080000, 0x80000, CRC(980a9eef) SHA1(36571381f349bc726508a7e618ba1c635ec9d271) )
+ ROM_LOAD( "ps_q3.rom", 0x100000, 0x80000, CRC(0dd44491) SHA1(903cea1d7f3120545ea3229d30fbd687d11ad68f) )
+ ROM_LOAD( "ps_q4.rom", 0x180000, 0x80000, CRC(bed42f03) SHA1(21302f7e75f9c795392a3b34e16a959fc5f6e4e9) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "punisherb.key", 0x000000, 0x000080, CRC(e1219963) SHA1(ba508a09095e9a37018a5a8c3a624713d7684582) )
+ROM_END
+
+ROM_START( punisherf )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "punisherf.23", 0x000000, 0x80000, CRC(ebab7576) SHA1(2a1664ebaf813a21986c97c16142ffd7c93c7a3b) )
+ ROM_LOAD16_WORD_SWAP( "psj22h.bin", 0x080000, 0x80000, CRC(84c5783e) SHA1(19571cdc4bf4cc1e59694fc8064cc88a49656449) )
+ ROM_LOAD16_WORD_SWAP( "punisherf.21", 0x100000, 0x80000, CRC(2bccb0ed) SHA1(44f45431d7ecca6eb8942be3d44b99cf856d12ab) )
+ ROM_FILL(0x9042A, 5, 0x4E) // remove jsr into the weeds (caused illegal instruction on stage 1)
+ ROM_FILL(0x9042B, 1, 0x71)
+ ROM_FILL(0x9042D, 1, 0x71)
+ ROM_FILL(0x9042F, 1, 0x71)
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "ps_gfx1.rom", 0x000000, 0x80000, CRC(77b7ccab) SHA1(e08e5d55a79e4c0c8ca819d6d7d2a14f753c6ec3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_gfx3.rom", 0x000002, 0x80000, CRC(0122720b) SHA1(5f0d3097e097f64106048156fbb0d343fe78fffa) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_gfx2.rom", 0x000004, 0x80000, CRC(64fa58d4) SHA1(d4a774285ed15273195b6b26d2965ce370e54e73) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_gfx4.rom", 0x000006, 0x80000, CRC(60da42c8) SHA1(95eec4a58d9628a2d9764951dd8dc11e4860a899) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_gfx5.rom", 0x200000, 0x80000, CRC(c54ea839) SHA1(0733f37329edd9d0cace1319a7544b40aa7ecb0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_gfx7.rom", 0x200002, 0x80000, CRC(04c5acbd) SHA1(fddc94b0f36d4d22d7c357856ae15b7514c342d3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_gfx6.rom", 0x200004, 0x80000, CRC(a544f4cc) SHA1(9552df8934ba25f19a22f2e07783712d8c8ef03c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_gfx8.rom", 0x200006, 0x80000, CRC(8f02f436) SHA1(a2f0ebb7e9593469c7b843f8962a66f3d77f79e5) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "ps_q.rom", 0x00000, 0x08000, CRC(49ff4446) SHA1(87af12f87a940a6c5428b4574ad44a4b54867bc3) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "ps_q1.rom", 0x000000, 0x80000, CRC(31fd8726) SHA1(1d73a76682e9fb908db0c55b9a18163f7539fea1) )
+ ROM_LOAD( "ps_q2.rom", 0x080000, 0x80000, CRC(980a9eef) SHA1(36571381f349bc726508a7e618ba1c635ec9d271) )
+ ROM_LOAD( "ps_q3.rom", 0x100000, 0x80000, CRC(0dd44491) SHA1(903cea1d7f3120545ea3229d30fbd687d11ad68f) )
+ ROM_LOAD( "ps_q4.rom", 0x180000, 0x80000, CRC(bed42f03) SHA1(21302f7e75f9c795392a3b34e16a959fc5f6e4e9) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "punisher.key", 0x000000, 0x000080, CRC(8e992ffa) SHA1(4f09427600cef4feb49a8a488caadaaa7b327484) )
+ROM_END
+
+ROM_START( punisherje1 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "psj23ex.bin", 0x000000, 0x80000, CRC(fa084bab) SHA1(af323e6399ab5d3091a57188d3cedc1d0600dd3d) )
+ ROM_LOAD16_WORD_SWAP( "psj22ex.bin", 0x080000, 0x80000, CRC(69433b02) SHA1(cc7127170fad47562aaded71a3c1e216084667f8) )
+ ROM_LOAD16_WORD_SWAP( "psje1.21", 0x100000, 0x80000, CRC(86aa8774) SHA1(501db3229c49ecd60eab72391f575f7df47e8782) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "ps_01.3a", 0x000000, 0x80000, CRC(77b7ccab) SHA1(e08e5d55a79e4c0c8ca819d6d7d2a14f753c6ec3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_02.4a", 0x000002, 0x80000, CRC(0122720b) SHA1(5f0d3097e097f64106048156fbb0d343fe78fffa) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_03.5a", 0x000004, 0x80000, CRC(64fa58d4) SHA1(d4a774285ed15273195b6b26d2965ce370e54e73) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_04.6a", 0x000006, 0x80000, CRC(60da42c8) SHA1(95eec4a58d9628a2d9764951dd8dc11e4860a899) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_05.7a", 0x200000, 0x80000, CRC(c54ea839) SHA1(0733f37329edd9d0cace1319a7544b40aa7ecb0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_06.8a", 0x200002, 0x80000, CRC(04c5acbd) SHA1(fddc94b0f36d4d22d7c357856ae15b7514c342d3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_07.9a", 0x200004, 0x80000, CRC(a544f4cc) SHA1(9552df8934ba25f19a22f2e07783712d8c8ef03c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_08.10a", 0x200006, 0x80000, CRC(8f02f436) SHA1(a2f0ebb7e9593469c7b843f8962a66f3d77f79e5) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "ps_q.5k", 0x00000, 0x08000, CRC(49ff4446) SHA1(87af12f87a940a6c5428b4574ad44a4b54867bc3) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "ps-q1.1k", 0x000000, 0x80000, CRC(31fd8726) SHA1(1d73a76682e9fb908db0c55b9a18163f7539fea1) )
+ ROM_LOAD( "ps-q2.2k", 0x080000, 0x80000, CRC(980a9eef) SHA1(36571381f349bc726508a7e618ba1c635ec9d271) )
+ ROM_LOAD( "ps-q3.3k", 0x100000, 0x80000, CRC(0dd44491) SHA1(903cea1d7f3120545ea3229d30fbd687d11ad68f) )
+ ROM_LOAD( "ps-q4.4k", 0x180000, 0x80000, CRC(bed42f03) SHA1(21302f7e75f9c795392a3b34e16a959fc5f6e4e9) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "punisher.key", 0x000000, 0x000080, CRC(8e992ffa) SHA1(4f09427600cef4feb49a8a488caadaaa7b327484) )
+ROM_END
+
+ROM_START( punisherjh )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "psj23h.bin", 0x000000, 0x80000, CRC(41cb77e9) SHA1(7e2a21bd217c976b448a51ba8bdbab820a30851a) )
+ ROM_LOAD16_WORD_SWAP( "psj22h.bin", 0x080000, 0x80000, CRC(84c5783e) SHA1(19571cdc4bf4cc1e59694fc8064cc88a49656449) )
+ ROM_LOAD16_WORD_SWAP( "ps_21.rom", 0x100000, 0x80000, CRC(8affa5a9) SHA1(268760b83b1723ff50a019ec51ef7af2e49935bf) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "ps_gfx1.rom", 0x000000, 0x80000, CRC(77b7ccab) SHA1(e08e5d55a79e4c0c8ca819d6d7d2a14f753c6ec3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_gfx3.rom", 0x000002, 0x80000, CRC(0122720b) SHA1(5f0d3097e097f64106048156fbb0d343fe78fffa) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_gfx2.rom", 0x000004, 0x80000, CRC(64fa58d4) SHA1(d4a774285ed15273195b6b26d2965ce370e54e73) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_gfx4.rom", 0x000006, 0x80000, CRC(60da42c8) SHA1(95eec4a58d9628a2d9764951dd8dc11e4860a899) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_gfx5.rom", 0x200000, 0x80000, CRC(c54ea839) SHA1(0733f37329edd9d0cace1319a7544b40aa7ecb0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_gfx7.rom", 0x200002, 0x80000, CRC(04c5acbd) SHA1(fddc94b0f36d4d22d7c357856ae15b7514c342d3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_gfx6.rom", 0x200004, 0x80000, CRC(a544f4cc) SHA1(9552df8934ba25f19a22f2e07783712d8c8ef03c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_gfx8.rom", 0x200006, 0x80000, CRC(8f02f436) SHA1(a2f0ebb7e9593469c7b843f8962a66f3d77f79e5) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "ps_q.rom", 0x00000, 0x08000, CRC(49ff4446) SHA1(87af12f87a940a6c5428b4574ad44a4b54867bc3) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "ps_q1.rom", 0x000000, 0x80000, CRC(31fd8726) SHA1(1d73a76682e9fb908db0c55b9a18163f7539fea1) )
+ ROM_LOAD( "ps_q2.rom", 0x080000, 0x80000, CRC(980a9eef) SHA1(36571381f349bc726508a7e618ba1c635ec9d271) )
+ ROM_LOAD( "ps_q3.rom", 0x100000, 0x80000, CRC(0dd44491) SHA1(903cea1d7f3120545ea3229d30fbd687d11ad68f) )
+ ROM_LOAD( "ps_q4.rom", 0x180000, 0x80000, CRC(bed42f03) SHA1(21302f7e75f9c795392a3b34e16a959fc5f6e4e9) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "punisher.key", 0x000000, 0x000080, CRC(8e992ffa) SHA1(4f09427600cef4feb49a8a488caadaaa7b327484) )
+ROM_END
+
+ROM_START( punisherjh1 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "psjh1.23", 0x000000, 0x80000, CRC(75ed76a4) SHA1(8ba66fd6a1912aae4c382ac8900f522474884771) )
+ ROM_LOAD16_WORD_SWAP( "psjh1.22", 0x080000, 0x80000, CRC(b17f61f0) SHA1(a5550bb359941bea96cefb818ccbb175a0b20687) )
+ ROM_LOAD16_WORD_SWAP( "ps_21.6f", 0x100000, 0x80000, CRC(8affa5a9) SHA1(268760b83b1723ff50a019ec51ef7af2e49935bf) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "ps_01.3a", 0x000000, 0x80000, CRC(77b7ccab) SHA1(e08e5d55a79e4c0c8ca819d6d7d2a14f753c6ec3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_02.4a", 0x000002, 0x80000, CRC(0122720b) SHA1(5f0d3097e097f64106048156fbb0d343fe78fffa) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_03.5a", 0x000004, 0x80000, CRC(64fa58d4) SHA1(d4a774285ed15273195b6b26d2965ce370e54e73) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_04.6a", 0x000006, 0x80000, CRC(60da42c8) SHA1(95eec4a58d9628a2d9764951dd8dc11e4860a899) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_05.7a", 0x200000, 0x80000, CRC(c54ea839) SHA1(0733f37329edd9d0cace1319a7544b40aa7ecb0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_06.8a", 0x200002, 0x80000, CRC(04c5acbd) SHA1(fddc94b0f36d4d22d7c357856ae15b7514c342d3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_07.9a", 0x200004, 0x80000, CRC(a544f4cc) SHA1(9552df8934ba25f19a22f2e07783712d8c8ef03c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_08.10a", 0x200006, 0x80000, CRC(8f02f436) SHA1(a2f0ebb7e9593469c7b843f8962a66f3d77f79e5) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "ps_q.5k", 0x00000, 0x08000, CRC(49ff4446) SHA1(87af12f87a940a6c5428b4574ad44a4b54867bc3) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "ps-q1.1k", 0x000000, 0x80000, CRC(31fd8726) SHA1(1d73a76682e9fb908db0c55b9a18163f7539fea1) )
+ ROM_LOAD( "ps-q2.2k", 0x080000, 0x80000, CRC(980a9eef) SHA1(36571381f349bc726508a7e618ba1c635ec9d271) )
+ ROM_LOAD( "ps-q3.3k", 0x100000, 0x80000, CRC(0dd44491) SHA1(903cea1d7f3120545ea3229d30fbd687d11ad68f) )
+ ROM_LOAD( "ps-q4.4k", 0x180000, 0x80000, CRC(bed42f03) SHA1(21302f7e75f9c795392a3b34e16a959fc5f6e4e9) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "punisher.key", 0x000000, 0x000080, CRC(8e992ffa) SHA1(4f09427600cef4feb49a8a488caadaaa7b327484) )
+ROM_END
+
+ROM_START( punisherjha ) // multijet:punishje2: The Punisher (SM Experience Edition hack by Zhyxxxx set 2 13/06/09)
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "psj23ex.bin", 0x000000, 0x80000, CRC(fa084bab) SHA1(af323e6399ab5d3091a57188d3cedc1d0600dd3d) )
+ ROM_LOAD16_WORD_SWAP( "psj22ex.bin", 0x080000, 0x80000, CRC(69433b02) SHA1(cc7127170fad47562aaded71a3c1e216084667f8) )
+ ROM_LOAD16_WORD_SWAP( "ps_21ex.rom", 0x100000, 0x80000, CRC(e4e15e4a) SHA1(405d57983ed33276e6fde155d4c78c2973466483) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "ps_01.3a", 0x000000, 0x80000, CRC(77b7ccab) SHA1(e08e5d55a79e4c0c8ca819d6d7d2a14f753c6ec3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_02.4a", 0x000002, 0x80000, CRC(0122720b) SHA1(5f0d3097e097f64106048156fbb0d343fe78fffa) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_03.5a", 0x000004, 0x80000, CRC(64fa58d4) SHA1(d4a774285ed15273195b6b26d2965ce370e54e73) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_04.6a", 0x000006, 0x80000, CRC(60da42c8) SHA1(95eec4a58d9628a2d9764951dd8dc11e4860a899) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_05.7a", 0x200000, 0x80000, CRC(c54ea839) SHA1(0733f37329edd9d0cace1319a7544b40aa7ecb0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_06.8a", 0x200002, 0x80000, CRC(04c5acbd) SHA1(fddc94b0f36d4d22d7c357856ae15b7514c342d3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_07.9a", 0x200004, 0x80000, CRC(a544f4cc) SHA1(9552df8934ba25f19a22f2e07783712d8c8ef03c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps_08.10a", 0x200006, 0x80000, CRC(8f02f436) SHA1(a2f0ebb7e9593469c7b843f8962a66f3d77f79e5) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "ps_q.5k", 0x00000, 0x08000, CRC(49ff4446) SHA1(87af12f87a940a6c5428b4574ad44a4b54867bc3) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "ps-q1.1k", 0x000000, 0x80000, CRC(31fd8726) SHA1(1d73a76682e9fb908db0c55b9a18163f7539fea1) )
+ ROM_LOAD( "ps-q2.2k", 0x080000, 0x80000, CRC(980a9eef) SHA1(36571381f349bc726508a7e618ba1c635ec9d271) )
+ ROM_LOAD( "ps-q3.3k", 0x100000, 0x80000, CRC(0dd44491) SHA1(903cea1d7f3120545ea3229d30fbd687d11ad68f) )
+ ROM_LOAD( "ps-q4.4k", 0x180000, 0x80000, CRC(bed42f03) SHA1(21302f7e75f9c795392a3b34e16a959fc5f6e4e9) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "punisher.key", 0x000000, 0x000080, CRC(8e992ffa) SHA1(4f09427600cef4feb49a8a488caadaaa7b327484) )
+ROM_END
+
+ROM_START( punisherud1 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE ( "psud1_26.11e", 0x000000, 0x20000, CRC(f820e620) SHA1(7c2e55b4dc7aaf27badceafd7bde483f33676351) )
+ ROM_LOAD16_BYTE ( "psud1_30.11f", 0x000001, 0x20000, CRC(90afc70a) SHA1(73d5325a482becf46ef75456134242db7f1a31f8) )
+ ROM_LOAD16_BYTE ( "psu_27.12e", 0x040000, 0x20000, CRC(61c960a1) SHA1(f8fe651283cc1f138d013cab65b833505de6df9f) )
+ ROM_LOAD16_BYTE ( "psud1_31.12f", 0x040001, 0x20000, CRC(e1239351) SHA1(7437a5e93ed72b8a52292aeb71c678e1462c8578) )
+ ROM_LOAD16_BYTE ( "psud1_24.9e", 0x080000, 0x20000, CRC(22ef4de9) SHA1(358acdce233182280e5eb77da178ec0f08beca7f) )
+ ROM_LOAD16_BYTE ( "psud1_28.9f", 0x080001, 0x20000, CRC(e45f5b6d) SHA1(daf25f24f8955387086acd337b19dfea5507adb8) )
+ ROM_LOAD16_BYTE ( "psu_25.10e", 0x0c0000, 0x20000, CRC(c51acc94) SHA1(34ffd6392914e3e67d7d0804215bd1193846b554) )
+ ROM_LOAD16_BYTE ( "psu_29.10f", 0x0c0001, 0x20000, CRC(52dce1ca) SHA1(45277abe34feacdcaedaec56f513b7437d4260e9) )
+ ROM_LOAD16_WORD_SWAP( "ps_21.6f", 0x100000, 0x80000, CRC(8affa5a9) SHA1(268760b83b1723ff50a019ec51ef7af2e49935bf) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "ps-1m.3a", 0x000000, 0x80000, CRC(77b7ccab) SHA1(e08e5d55a79e4c0c8ca819d6d7d2a14f753c6ec3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps-3m.5a", 0x000002, 0x80000, CRC(0122720b) SHA1(5f0d3097e097f64106048156fbb0d343fe78fffa) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps-2m.4a", 0x000004, 0x80000, CRC(64fa58d4) SHA1(d4a774285ed15273195b6b26d2965ce370e54e73) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps-4m.6a", 0x000006, 0x80000, CRC(60da42c8) SHA1(95eec4a58d9628a2d9764951dd8dc11e4860a899) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps-5m.7a", 0x200000, 0x80000, CRC(c54ea839) SHA1(0733f37329edd9d0cace1319a7544b40aa7ecb0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps-7m.9a", 0x200002, 0x80000, CRC(04c5acbd) SHA1(fddc94b0f36d4d22d7c357856ae15b7514c342d3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps-6m.8a", 0x200004, 0x80000, CRC(a544f4cc) SHA1(9552df8934ba25f19a22f2e07783712d8c8ef03c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps-8m.10a", 0x200006, 0x80000, CRC(8f02f436) SHA1(a2f0ebb7e9593469c7b843f8962a66f3d77f79e5) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "ps_q.5k", 0x00000, 0x08000, CRC(49ff4446) SHA1(87af12f87a940a6c5428b4574ad44a4b54867bc3) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "ps-q1.1k", 0x000000, 0x80000, CRC(31fd8726) SHA1(1d73a76682e9fb908db0c55b9a18163f7539fea1) )
+ ROM_LOAD( "ps-q2.2k", 0x080000, 0x80000, CRC(980a9eef) SHA1(36571381f349bc726508a7e618ba1c635ec9d271) )
+ ROM_LOAD( "ps-q3.3k", 0x100000, 0x80000, CRC(0dd44491) SHA1(903cea1d7f3120545ea3229d30fbd687d11ad68f) )
+ ROM_LOAD( "ps-q4.4k", 0x180000, 0x80000, CRC(bed42f03) SHA1(21302f7e75f9c795392a3b34e16a959fc5f6e4e9) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "punisherud1.key", 0x000000, 0x000080, CRC(c22c07f9) SHA1(b726dfed90c288ee71ab6d6035b0efcba1f18f6a) )
+ROM_END
+
+ROM_START( punisherud2 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "psud2.23", 0x000000, 0x80000, CRC(019efb28) SHA1(1790db51ce7cd1281932359de6e4e1e046db0369) )
+ ROM_LOAD16_WORD_SWAP( "psud2.22", 0x080000, 0x80000, CRC(c0110a4e) SHA1(43f6086634c332a58d95b0b51995ba1ab8ed1367) )
+ ROM_LOAD16_WORD_SWAP( "ps_21.6f", 0x100000, 0x80000, CRC(8affa5a9) SHA1(268760b83b1723ff50a019ec51ef7af2e49935bf) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "ps-1m.3a", 0x000000, 0x80000, CRC(77b7ccab) SHA1(e08e5d55a79e4c0c8ca819d6d7d2a14f753c6ec3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps-3m.5a", 0x000002, 0x80000, CRC(0122720b) SHA1(5f0d3097e097f64106048156fbb0d343fe78fffa) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps-2m.4a", 0x000004, 0x80000, CRC(64fa58d4) SHA1(d4a774285ed15273195b6b26d2965ce370e54e73) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps-4m.6a", 0x000006, 0x80000, CRC(60da42c8) SHA1(95eec4a58d9628a2d9764951dd8dc11e4860a899) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps-5m.7a", 0x200000, 0x80000, CRC(c54ea839) SHA1(0733f37329edd9d0cace1319a7544b40aa7ecb0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps-7m.9a", 0x200002, 0x80000, CRC(04c5acbd) SHA1(fddc94b0f36d4d22d7c357856ae15b7514c342d3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps-6m.8a", 0x200004, 0x80000, CRC(a544f4cc) SHA1(9552df8934ba25f19a22f2e07783712d8c8ef03c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ps-8m.10a", 0x200006, 0x80000, CRC(8f02f436) SHA1(a2f0ebb7e9593469c7b843f8962a66f3d77f79e5) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "ps_q.5k", 0x00000, 0x08000, CRC(49ff4446) SHA1(87af12f87a940a6c5428b4574ad44a4b54867bc3) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "ps-q1.1k", 0x000000, 0x80000, CRC(31fd8726) SHA1(1d73a76682e9fb908db0c55b9a18163f7539fea1) )
+ ROM_LOAD( "ps-q2.2k", 0x080000, 0x80000, CRC(980a9eef) SHA1(36571381f349bc726508a7e618ba1c635ec9d271) )
+ ROM_LOAD( "ps-q3.3k", 0x100000, 0x80000, CRC(0dd44491) SHA1(903cea1d7f3120545ea3229d30fbd687d11ad68f) )
+ ROM_LOAD( "ps-q4.4k", 0x180000, 0x80000, CRC(bed42f03) SHA1(21302f7e75f9c795392a3b34e16a959fc5f6e4e9) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "punisherud1.key", 0x000000, 0x000080, CRC(c22c07f9) SHA1(b726dfed90c288ee71ab6d6035b0efcba1f18f6a) )
+ROM_END
+
+
+// sf2uc with first 2 roms changed
+ROM_START( sf2bhj )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "sf2bhj.30", 0x00000, 0x20000, CRC(1699140f) SHA1(967f2a958ffe3886ce60568e2a63ee119757fa57) )
+ ROM_LOAD16_BYTE( "sf2bhj.37", 0x00001, 0x20000, CRC(4d563eb4) SHA1(a238129d867dc3f0b8b4e458d597b0d11bbeda05) )
+ ROM_LOAD16_BYTE( "sf2u_31c.12e", 0x40000, 0x20000, CRC(c4fff4a9) SHA1(4b593ace201fe7f5a00b5cd7f4e8fc3f8dd4ceed) )
+ ROM_LOAD16_BYTE( "sf2u_38c.12f", 0x40001, 0x20000, CRC(8210fc0e) SHA1(7d6cfb99afa89d0e6e991d9f7c1808b740def125) )
+ ROM_LOAD16_BYTE( "sf2u_28c.9e", 0x80000, 0x20000, CRC(6eddd5e8) SHA1(62bd1c2fc0321809421c9a592f691b5b1a1d8807) )
+ ROM_LOAD16_BYTE( "sf2u_35c.9f", 0x80001, 0x20000, CRC(6bcb404c) SHA1(b5f24556c633c521aadd94e016d78db6922e3dfa) )
+ ROM_LOAD16_BYTE( "sf2_29b.10e", 0xc0000, 0x20000, CRC(bb4af315) SHA1(75f0827f4f7e9f292add46467f8d4fe19b2514c9) )
+ ROM_LOAD16_BYTE( "sf2_36b.10f", 0xc0001, 0x20000, CRC(c02a13eb) SHA1(b807cc495bff3f95d03b061fc629c95f965cb6d8) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "sf2-5m.4a", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sf2-7m.6a", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sf2-1m.3a", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sf2-3m.5a", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sf2-6m.4c", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sf2-8m.6c", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sf2-2m.3c", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sf2-4m.5c", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sf2-13m.4d", 0x400000, 0x80000, CRC(994bfa58) SHA1(5669b845f624b10e7be56bfc89b76592258ce48b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sf2-15m.6d", 0x400002, 0x80000, CRC(3e66ad9d) SHA1(9af9df0826988872662753e9717c48d46f2974b0) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sf2-9m.3d", 0x400004, 0x80000, CRC(c1befaa8) SHA1(a6a7f4725e52678cbd8d557285c01cdccb2c2602) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sf2-11m.5d", 0x400006, 0x80000, CRC(0627c831) SHA1(f9a92d614e8877d648449de2612fc8b43c85e4c2) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sf2_9.12a", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "sf2_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "sf2_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sf2bhj.key", 0x000000, 0x000080, CRC(c62851af) SHA1(2ccc177c433e48e72e7f5dfeeffb65f54239bf12) )
+ROM_END
+
+ROM_START( sf2c )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "sf2j_30", 0x00000, 0x20000, CRC(70813e5e) SHA1(39219a98d368dcb67cbd0a756f3e1fab7b9352f4) )
+ ROM_LOAD16_BYTE( "sf2j_37", 0x00001, 0x20000, CRC(d0659611) SHA1(1368228cc2c41a361f0e8eb516610522a38394b2) )
+ ROM_LOAD16_BYTE( "sf2j31.bin", 0x40000, 0x20000, CRC(fe15cb39) SHA1(383478524881ea70d9e04c9b6143b8735b637eee) )
+ ROM_LOAD16_BYTE( "sf2j38.bin", 0x40001, 0x20000, CRC(38614d70) SHA1(39c58096f3a8e01fb439639b742b83102bbaa7f6) )
+ ROM_LOAD16_BYTE( "sf2j_28", 0x80000, 0x20000, CRC(2d4a1b8a) SHA1(9dce74c32fa9c63f38d33a03327b22e74d2118c1) )
+ ROM_LOAD16_BYTE( "sf2j_35", 0x80001, 0x20000, CRC(5f622bdb) SHA1(4fe5797acc2645a1bd27d247457b6f24bfd60f96) )
+ ROM_LOAD16_BYTE( "sf2_29b.10e", 0xc0000, 0x20000, CRC(bb4af315) SHA1(75f0827f4f7e9f292add46467f8d4fe19b2514c9) )
+ ROM_LOAD16_BYTE( "sf2_36b.10f", 0xc0001, 0x20000, CRC(c02a13eb) SHA1(b807cc495bff3f95d03b061fc629c95f965cb6d8) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "sf2_06", 0x000000, 0x80000, CRC(d3aab35d) SHA1(bc90464bc38b326b46f0da97008116ee639e2598) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sf2_08", 0x000002, 0x80000, CRC(f6a68d56) SHA1(4ef2668a245fb207c599f0e72e979f8c0191df25) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sf2_05", 0x000004, 0x80000, CRC(1ddcda55) SHA1(494338ac59e4253177b731bd6ad116a63f7ded8c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sf2_07", 0x000006, 0x80000, CRC(d3274004) SHA1(a278e0740806cf8098058d1c33eb0964cc130ded) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sf2_15", 0x200000, 0x80000, CRC(f8710c69) SHA1(a298117a7869b0891220c229d0dceba7ac6bf594) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sf2_17", 0x200002, 0x80000, CRC(dd376567) SHA1(a817c999098b0274ed2c052b96c562bed407b7b1) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sf2_14", 0x200004, 0x80000, CRC(c754e2c4) SHA1(7936eaa669c84742c1511768bb9039c26b2fb3c3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sf2_16", 0x200006, 0x80000, CRC(0d4799bd) SHA1(5e63e889cabc4436c2a49997c9d0a47529d264ad) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sf2_25", 0x400000, 0x80000, CRC(a6671144) SHA1(f4017ad15784078c00ef76220f4e5bdba61a6495) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sf2_27", 0x400002, 0x80000, CRC(008b2bdd) SHA1(a048a70fe3c752b79e14eadf2369f068fc831439) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sf2_24", 0x400004, 0x80000, CRC(0f8a9ec4) SHA1(cde0013df78333ebfbaacb9a9e212fbc0b2e04d3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sf2_26", 0x400006, 0x80000, CRC(0fb4241e) SHA1(f749daa6ecf018542ecf0f3711491eb85fac91b3) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "sf2_9.12a", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "sf2_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "sf2_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sf2c.key", 0x000000, 0x000080, CRC(fdc05d86) SHA1(f828e6171a271bc12a5c9ab5be237562e263ccdb) )
+ROM_END
+
+ROM_START( sf2cebr )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sf2cebr.23", 0x000000, 0x80000, CRC(74e848ee) SHA1(6DCE8D0C7D439E6D1D08C8169A3ECDF178E82C16) )
+ ROM_LOAD16_WORD_SWAP( "sf2cebr.22", 0x080000, 0x80000, CRC(c3c49626) SHA1(D0FAE1D2758360B56E6E583FEB4BDF7D4E2E1EBA) )
+ ROM_LOAD16_WORD_SWAP( "s92_21a.6f", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92br_10.bin", 0x400000, 0x80000, CRC(b3e1dd5f) SHA1(714BF1519CED85567D3D35FDF4AA9E4268CC9F0F) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92br_11.bin", 0x400002, 0x80000, CRC(f13af812) SHA1(E3711CBAA3169D0F48DF420953F1AFD0AB76EE08) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92br_12.bin", 0x400004, 0x80000, CRC(10ce42af) SHA1(530B2A6E2D13B2694BD611B31B056B7458FD1571) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92br_13.bin", 0x400006, 0x80000, CRC(32cf5af3) SHA1(43972C07F5CCF01B0CE0727541590C3C6B97C300) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sf2ce.key", 0x000000, 0x000080, CRC(35b37429) SHA1(b372cce106c0900554735c207fb333ac93554ec2) )
+ROM_END
+
+ROM_START( sf2ced ) // Drakon 7.1
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sf2ced_23b.8f", 0x000000, 0x80000, CRC(8628f0e2) SHA1(da1f89ccbfb175d39f7e5c69c1c7088205109187) )
+ ROM_LOAD16_WORD_SWAP( "sf2ced_22b.7f", 0x080000, 0x80000, CRC(b7b87a54) SHA1(ab441c30ba6b0e2e8b9785d77b96535357818e0b) )
+ ROM_LOAD16_WORD_SWAP( "sf2ced_21a.6f", 0x100000, 0x80000, CRC(b4f13bef) SHA1(5e6501c157890899848bccb34db06b3570e84c17) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sf2ce.key", 0x000000, 0x000080, CRC(35b37429) SHA1(b372cce106c0900554735c207fb333ac93554ec2) )
+ROM_END
+
+ROM_START( sf2ceda ) // Drakon unknown version
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sf2ceda_23b.8f", 0x000000, 0x80000, CRC(a8a81db7) SHA1(dd0d12ea049292bad48f1009419581695ea41618) )
+ ROM_LOAD16_WORD_SWAP( "sf2ceda_22b.7f", 0x080000, 0x80000, CRC(3c9ee969) SHA1(714fb726c336c5807a1b1d2112e89d3aa5c4af91) )
+ ROM_LOAD16_WORD_SWAP( "s92_21a.6f", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sf2ce.key", 0x000000, 0x000080, CRC(35b37429) SHA1(b372cce106c0900554735c207fb333ac93554ec2) )
+ROM_END
+
+ROM_START( sf2ceh )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sf2ceh.23", 0x000000, 0x80000, CRC(25dc14c8) SHA1(fc7b5de3a50d7d9ee977091bab5f82f824e386f2) )
+ ROM_LOAD16_WORD_SWAP( "sf2ceh.22", 0x080000, 0x80000, CRC(1c9dd91c) SHA1(66fbd10958d3b9f027bc3ba85c99b649cf866ab7) )
+ ROM_LOAD16_WORD_SWAP( "s92_21a.6f", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sf2ce.key", 0x000000, 0x000080, CRC(35b37429) SHA1(b372cce106c0900554735c207fb333ac93554ec2) )
+ROM_END
+
+// sf2ceea with one rom changed
+ROM_START( sf2cehk )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sf2cehk.23", 0x000000, 0x80000, CRC(a233c4c8) SHA1(0446ac1bcd9ded6951c6857600e5c30f56d8c430) )
+ ROM_LOAD16_WORD_SWAP( "s92_22a.7f", 0x080000, 0x80000, CRC(99f1cca4) SHA1(64111eba81d743fc3fd51d7a89cd0b2eefcc900d) )
+ ROM_LOAD16_WORD_SWAP( "s92_21a.6f", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sf2ce.key", 0x000000, 0x000080, CRC(35b37429) SHA1(b372cce106c0900554735c207fb333ac93554ec2) )
+ROM_END
+
+// sf2ceea with 2 roms changed
+ROM_START( sf2cehp )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sf2cehp.23", 0x000000, 0x80000, CRC(7796519f) SHA1(a420cdca5d5d7898a99afbc62cb33d17010f2def) )
+ ROM_LOAD16_WORD_SWAP( "sf2cehp.22", 0x080000, 0x80000, CRC(a99e9f23) SHA1(9c8a10d1382b289eb2fb0be73198c30e44e0c8af) )
+ ROM_LOAD16_WORD_SWAP( "s92_21a.6f", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sf2ce.key", 0x000000, 0x000080, CRC(35b37429) SHA1(b372cce106c0900554735c207fb333ac93554ec2) )
+ROM_END
+
+// sf2ceea with 2 roms changed
+ROM_START( sf2cejem )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sf2cejem.23", 0x000000, 0x80000, CRC(13310615) SHA1(6749c62d19fe554c521ca28e80175ec84450a45d) )
+ ROM_LOAD16_WORD_SWAP( "sf2cejem.22", 0x080000, 0x80000, CRC(d73ee1f8) SHA1(8d6083bf7487867146f091a1cb4bae8d539de46e) )
+ ROM_LOAD16_WORD_SWAP( "s92_21a.6f", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sf2ce.key", 0x000000, 0x000080, CRC(35b37429) SHA1(b372cce106c0900554735c207fb333ac93554ec2) )
+ROM_END
+
+ROM_START( sf2h9 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "sf3a-1.040", 0x000000, 0x80000, CRC(9e6d058a) SHA1(8c9adca7b65dc929c325c0a62304d24dc0902c08) )
+ ROM_LOAD16_BYTE( "sf3a-3.040", 0x000001, 0x80000, CRC(518d8404) SHA1(635d8ac07126caf3c623d1f28aad38c5bc4c4bae) )
+ ROM_LOAD16_BYTE( "sf3a-2", 0x100000, 0x20000, CRC(fca4fc1e) SHA1(2b05d67443af099f95ef50f5e25d7a74b957e7a5) )
+ ROM_LOAD16_BYTE( "sf3a-4", 0x100001, 0x20000, CRC(cfdd6f54) SHA1(2aa3f5a7b36930185382c64712cc0cfceb6f1ab3) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sf2th.key", 0x000000, 0x000080, CRC(67e80fca) SHA1(e937bc4cf0e05ba93c32bc47d65c5b027bc2b48e) )
+ROM_END
+
+ROM_START( sf2h10 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "sfu9-1.040", 0x000000, 0x80000, CRC(95306baf) SHA1(471d1578607ae1090aa46cb111a8c2745d1fd47b) )
+ ROM_LOAD16_BYTE( "sfu9-3.040", 0x000001, 0x80000, CRC(21024d5f) SHA1(986b3910ce749f4ad42e1f86537a8fc3f0f3f867) )
+ ROM_LOAD16_BYTE( "sfu9-2.020", 0x100000, 0x40000, CRC(0b3fe5dd) SHA1(9b66cb867da61595f53d1c9e6b48c6bb7e06e1e0) )
+ ROM_LOAD16_BYTE( "sfu9-4.020", 0x100001, 0x40000, CRC(dbee7b18) SHA1(e56af12fc9d30e92d37e688ff621ea09abb94b53) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sf2th.key", 0x000000, 0x000080, CRC(67e80fca) SHA1(e937bc4cf0e05ba93c32bc47d65c5b027bc2b48e) )
+ROM_END
+
+ROM_START( sf2h11 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "sfu7-1.040", 0x000000, 0x80000, CRC(866a9b31) SHA1(92f89084293b69a9d5cd8d282ffaaca0739f1b03) )
+ ROM_LOAD16_BYTE( "sfu7-3.040", 0x000001, 0x80000, CRC(f3a45593) SHA1(0ba0d05f904ac17cd34c0a7c9dd0a20759ff4e78) )
+ ROM_LOAD16_BYTE( "sfu7-2.010", 0x100000, 0x20000, CRC(d1707134) SHA1(5bfdf7bc57bdb85183647ebb175346070dd102ee) )
+ ROM_LOAD16_BYTE( "sfu7-4.010", 0x100001, 0x20000, CRC(cd1d5666) SHA1(8befd2c324eb29bdad6fc8fb2554cdfaf9808f9b) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sf2h11.key", 0x000000, 0x000080, CRC(822729a2) SHA1(acaadef38fd97dba215c13688061cee87d877c19) )
+ROM_END
+
+ROM_START( sf2h12 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "sfu8-1.040", 0x000000, 0x80000, CRC(10ec67fe) SHA1(9eb30a0f64bf29028f89f9af74cb9d840ed197e2) )
+ ROM_LOAD16_BYTE( "sfu8-3.040", 0x000001, 0x80000, CRC(92eb3a1c) SHA1(0ee294c8b82b100f98da697562f9644b71cabcdd) )
+ ROM_LOAD16_BYTE( "sfu8-2.010", 0x100000, 0x20000, CRC(1073b7b6) SHA1(81ca1eab65ceac69520584bb23a684ccb9d92f89) )
+ ROM_LOAD16_BYTE( "sfu8-4.010", 0x100001, 0x20000, CRC(924c6ce2) SHA1(676a912652bd75da5087f0c7eae047b7681a993c) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sf2h11.key", 0x000000, 0x000080, CRC(822729a2) SHA1(acaadef38fd97dba215c13688061cee87d877c19) )
+ROM_END
+
+ROM_START( sf2h13 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "222-040.13", 0x000000, 0x80000, CRC(ec6f5cb3) SHA1(24b3fc88a08a721985b053120997090bc394bc8e) )
+ ROM_LOAD16_BYTE( "196-040.13", 0x000001, 0x80000, CRC(0e9ac52b) SHA1(2c5faf7d8b598f2110f389aefa1a02e2281382ee) )
+ ROM_LOAD16_BYTE( "221-010.13", 0x100000, 0x20000, CRC(8226c11c) SHA1(9588bd64e338901394805aca8a234f880674dc60) )
+ ROM_LOAD16_BYTE( "sfu8-4.010", 0x100001, 0x20000, CRC(924c6ce2) SHA1(676a912652bd75da5087f0c7eae047b7681a993c) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s2t_10.bin", 0x400000, 0x80000, CRC(3c042686) SHA1(307e1ca8ad0b11f3265b7e5467ba4c90f90ec97f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s2t_11.bin", 0x400002, 0x80000, CRC(8b7e7183) SHA1(c8eaedfbddbf0b83311d2dbb9e19a1efef0dffa9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s2t_12.bin", 0x400004, 0x80000, CRC(293c888c) SHA1(5992ea9aa90fdd8b9dacca9d2a1fdaf25ac2cb65) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s2t_13.bin", 0x400006, 0x80000, CRC(842b35a4) SHA1(35864a140a0c8d76501e69b2e01bc4ad76f27909) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sf2th.key", 0x000000, 0x000080, CRC(67e80fca) SHA1(e937bc4cf0e05ba93c32bc47d65c5b027bc2b48e) )
+ROM_END
+
+ROM_START( sf2jbh )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "sf2jbh_30h.11e", 0x00000, 0x20000, CRC(021594e9) SHA1(59cddadc2c37665813b1868536fa297d3668ec8a) )
+ ROM_LOAD16_BYTE( "sf2jbh_37h.11f", 0x00001, 0x20000, CRC(92a5f669) SHA1(7fb4c7b6dd29148a9c2b5c49f29b763d45fa0973) )
+ ROM_LOAD16_BYTE( "sf2jbh_31h.12e", 0x40000, 0x20000, CRC(7e4af671) SHA1(86391415edc6d6669eec586be91d78e9c6ce6d34) )
+ ROM_LOAD16_BYTE( "sf2jbh_38h.12f", 0x40001, 0x20000, CRC(4723f268) SHA1(1e8d41a72f99de8eeca36c8894fa2b3ba450b83f) )
+ ROM_LOAD16_BYTE( "sf2jbh_28h.9e", 0x80000, 0x20000, CRC(3c33abd7) SHA1(4f6b6ac28a76f1e1a8de00dc0e8f789b648909a8) )
+ ROM_LOAD16_BYTE( "sf2jbh_35h.9f", 0x80001, 0x20000, CRC(6a6c2e9a) SHA1(ee41bc762fd487920ae18f82d7b259f0472fc73c) )
+ ROM_LOAD16_BYTE( "sf2jbh_29a.10e", 0xc0000, 0x20000, CRC(0bb77024) SHA1(71f501fd50a6658b1b2cb5f3c8d9961dce9beeb5) )
+ ROM_LOAD16_BYTE( "sf2jbh_36a.10f", 0xc0001, 0x20000, CRC(48256574) SHA1(bc9b151000fd75233129a3dd1140e224734cab49) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "sf2_06.8a", 0x000000, 0x80000, CRC(22c9cc8e) SHA1(b9194fb337b30502c1c9501cd6c64ae4035544d4) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sf2_08.10a", 0x000002, 0x80000, CRC(57213be8) SHA1(3759b851ac0904ec79cbb67a2264d384b6f2f9f9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sf2_05.7a", 0x000004, 0x80000, CRC(ba529b4f) SHA1(520840d727161cf09ca784919fa37bc9b54cc3ce) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sf2_07.9a", 0x000006, 0x80000, CRC(4b1b33a8) SHA1(2360cff890551f76775739e2d6563858bff80e41) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sf2_15.8c", 0x200000, 0x80000, CRC(2c7e2229) SHA1(357c2275af9133fd0bd6fbb1fa9ad5e0b490b3a2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sf2_17.10c", 0x200002, 0x80000, CRC(b5548f17) SHA1(baa92b91cf616bc9e2a8a66adc777ffbf962a51b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sf2_14.7c", 0x200004, 0x80000, CRC(14b84312) SHA1(2eea16673e60ba7a10bd4d8f6c217bb2441a5b0e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sf2_16.9c", 0x200006, 0x80000, CRC(5e9cd89a) SHA1(f787aab98668d4c2c54fc4ba677c0cb808e4f31e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sf2bh_25.8d", 0x400000, 0x80000, CRC(4267b696) SHA1(af65e3b2cc3b7a7f39d5e7e598da7f4c9d351eea) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sf2bh_27.10d", 0x400002, 0x80000, CRC(df9b9146) SHA1(2029aa59c1646af0fd7fa06f353edcbf7f7792de) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sf2bh_24.7d", 0x400004, 0x80000, CRC(a08a9786) SHA1(80a79e45c003fbc95cc5cd0d037b55f2f7fec64c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sf2bh_26.9d", 0x400006, 0x80000, CRC(80feac31) SHA1(f16ce88634d2328eae93f8128423bb311cac88e6) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "sf2_09.12a", 0x00000, 0x08000, CRC(a4823a1b) SHA1(7b6bf59dfd578bfbbdb64c27988796783442d659) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "sf2_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "sf2_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD( "sf2c.key", 0x000000, 0x000080, CRC(fdc05d86) SHA1(f828e6171a271bc12a5c9ab5be237562e263ccdb) )
+ROM_END
+
+ROM_START( sf2koryuh )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "u222.rom", 0x000000, 0x80000, CRC(9236a79a) SHA1(39c47b0b0ca2f5f569ff07ebb91040b95d0cb43b) )
+ ROM_LOAD16_BYTE( "u196.rom", 0x000001, 0x80000, CRC(2722741f) SHA1(d2a2ea29894fbf731f6c8573b85e046dd52e2c97) )
+ ROM_LOAD16_BYTE( "u221.rom", 0x100000, 0x20000, CRC(64e6e091) SHA1(32ec05db955e538d4ada26d19ee50926f74b684f) )
+ ROM_LOAD16_BYTE( "u195.rom", 0x100001, 0x20000, CRC(c95e4443) SHA1(28417dee9ccdfa65b0f4a92aa29b90279fe8cd85) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sf2th.key", 0x000000, 0x000080, CRC(67e80fca) SHA1(e937bc4cf0e05ba93c32bc47d65c5b027bc2b48e) )
+ROM_END
+
+ROM_START( sf2pun )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sf2pun.23", 0x000000, 0x80000, CRC(8c3bb8f8) SHA1(756ae3980c15d037ff6e70d0c309d9caed6bac4f) )
+ ROM_LOAD16_WORD_SWAP( "sf2pun.22", 0x080000, 0x80000, CRC(0786f114) SHA1(4a6b52c98c839fcde2b7f425739569abc74c91f4) )
+ ROM_LOAD16_WORD_SWAP( "sf2red.21", 0x100000, 0x80000, CRC(52c486bb) SHA1(b7df7b10faa4c9a2f86ebf64cd63ac148d62dd09) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sf2ce.key", 0x000000, 0x000080, CRC(35b37429) SHA1(b372cce106c0900554735c207fb333ac93554ec2) )
+ROM_END
+
+ROM_START( sf2sl73a )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sf2sl73a.23", 0x000000, 0x80000, CRC(190f5419) SHA1(7fc7f3b6788d25b190bda3b3b6cf76a396d7d586) )
+ ROM_LOAD16_WORD_SWAP( "sf2sl73a.22", 0x080000, 0x80000, CRC(2b329193) SHA1(b1576b610e384fbeaef7be711888fb3fa3f10b1a) )
+ ROM_LOAD16_WORD_SWAP( "sf2sl73a.21", 0x100000, 0x80000, CRC(b4f13bef) SHA1(5e6501c157890899848bccb34db06b3570e84c17) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sf2ce.key", 0x000000, 0x000080, CRC(35b37429) SHA1(b372cce106c0900554735c207fb333ac93554ec2) )
+ROM_END
+
+ROM_START( sf2th )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "u222", 0x000000, 0x80000, CRC(03991fba) SHA1(6c42bf15248640fdb3e98fb01b0a870649deb410) )
+ ROM_LOAD16_BYTE( "4.amf", 0x000001, 0x80000, CRC(39f15a1e) SHA1(901c4fea76bf5bff7330ed07ffde54cdccdaa680) )
+ ROM_LOAD16_BYTE( "u221.rom", 0x100000, 0x20000, CRC(64e6e091) SHA1(32ec05db955e538d4ada26d19ee50926f74b684f) )
+ ROM_LOAD16_BYTE( "stf2th-4.bin", 0x100001, 0x20000, CRC(c95e4443) SHA1(28417dee9ccdfa65b0f4a92aa29b90279fe8cd85) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+ // These map over the MASK roms on this bootleg
+ ROMX_LOAD( "stf2th-10.bin",0x400000, 0x20000, CRC(84427d1b) SHA1(f988a2b53c8cc46eeb8032084f24966a539b3734) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "stf2th-12.bin",0x400002, 0x20000, CRC(55bc790c) SHA1(a1114b89f6fa4487210477676984c77ad94b5ef8) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "stf2th-9.bin", 0x400004, 0x20000, CRC(f8725add) SHA1(fa3fcf6637ee4dd7667bd89766074b3c6ba4f166) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "stf2th-11.bin",0x400006, 0x20000, CRC(c2a5373e) SHA1(602b32e5ecc7007efe9ad30751040ee52b81f59a) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sf2th.key", 0x000000, 0x000080, CRC(67e80fca) SHA1(e937bc4cf0e05ba93c32bc47d65c5b027bc2b48e) )
+ROM_END
+
+ROM_START( sf2tha )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "t-2.u52", 0x000000, 0x80000, CRC(0d305e8b) SHA1(7094160abbf24c119a575d93e3fe1ab84b537de0) )
+ ROM_LOAD16_BYTE( "t-1.u36", 0x000001, 0x80000, CRC(137d8665) SHA1(cf4805a11ab614ce5b7e1302ac14ba50fb01e5f4) )
+ ROM_LOAD16_BYTE( "t-4.u54", 0x100000, 0x40000, CRC(0b3fe5dd) SHA1(9b66cb867da61595f53d1c9e6b48c6bb7e06e1e0) )
+ ROM_LOAD16_BYTE( "t-3.u38", 0x100001, 0x40000, CRC(dbee7b18) SHA1(e56af12fc9d30e92d37e688ff621ea09abb94b53) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+ // These map over the MASK roms on this bootleg
+ ROMX_LOAD( "r04.bin", 0x400000, 0x20000, CRC(84427d1b) SHA1(f988a2b53c8cc46eeb8032084f24966a539b3734) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "r06.bin", 0x400002, 0x20000, CRC(55bc790c) SHA1(a1114b89f6fa4487210477676984c77ad94b5ef8) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "r03.bin", 0x400004, 0x20000, CRC(f8725add) SHA1(fa3fcf6637ee4dd7667bd89766074b3c6ba4f166) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "r05.bin", 0x400006, 0x20000, CRC(c2a5373e) SHA1(602b32e5ecc7007efe9ad30751040ee52b81f59a) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sf2th.key", 0x000000, 0x000080, CRC(67e80fca) SHA1(e937bc4cf0e05ba93c32bc47d65c5b027bc2b48e) )
+ROM_END
+
+ROM_START( sf2tlona )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "tl4mt.1", 0x000000, 0x80000, CRC(158635ca) SHA1(878b56064861993ac92fbd88eb1117d3680fe7d7) )
+ ROM_LOAD16_BYTE( "tl4m.2", 0x000001, 0x80000, CRC(882cd1c4) SHA1(0cb971756352b1022ecd309b1bc3688c1f1acbd8) )
+ ROM_LOAD16_BYTE( "u221t.1m", 0x100000, 0x20000, CRC(1073b7b6) SHA1(81ca1eab65ceac69520584bb23a684ccb9d92f89) )
+ ROM_LOAD16_BYTE( "u195t.1m", 0x100001, 0x20000, CRC(db7e1f72) SHA1(1ca99a3b425ac137f3c104cf4deb50d9431dacdd) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sf2th.key", 0x000000, 0x000080, CRC(67e80fca) SHA1(e937bc4cf0e05ba93c32bc47d65c5b027bc2b48e) )
+ROM_END
+
+ROM_START( sf2tlonb )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "tl4m.1", 0x000000, 0x80000, CRC(afc7bd18) SHA1(ef7af7fb3563073b96563274ec48783feb2be757) )
+ ROM_LOAD16_BYTE( "tl4m.2", 0x000001, 0x80000, CRC(882cd1c4) SHA1(0cb971756352b1022ecd309b1bc3688c1f1acbd8) )
+ ROM_LOAD16_BYTE( "u221.1m", 0x100000, 0x20000, CRC(d1707134) SHA1(5bfdf7bc57bdb85183647ebb175346070dd102ee) )
+ ROM_LOAD16_BYTE( "u195.1m", 0x100001, 0x20000, CRC(cd1d5666) SHA1(8befd2c324eb29bdad6fc8fb2554cdfaf9808f9b) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sf2th.key", 0x000000, 0x000080, CRC(67e80fca) SHA1(e937bc4cf0e05ba93c32bc47d65c5b027bc2b48e) )
+ROM_END
+
+ROM_START( sf2tlonc )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "sf11-1.040", 0x000000, 0x80000, CRC(afc7bd18) SHA1(ef7af7fb3563073b96563274ec48783feb2be757) )
+ ROM_LOAD16_BYTE( "sf11-3.040", 0x000001, 0x80000, CRC(882cd1c4) SHA1(0cb971756352b1022ecd309b1bc3688c1f1acbd8) )
+ ROM_LOAD16_BYTE( "sf11-2.010", 0x100000, 0x20000, CRC(f8a5cd53) SHA1(f474e6d24f25ca9a126bd68b02089a0161e2cc0d) )
+ ROM_LOAD16_BYTE( "sf11-4.010", 0x100001, 0x20000, CRC(db7e1f72) SHA1(1ca99a3b425ac137f3c104cf4deb50d9431dacdd) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sf2th.key", 0x000000, 0x000080, CRC(67e80fca) SHA1(e937bc4cf0e05ba93c32bc47d65c5b027bc2b48e) )
+ROM_END
+
+ROM_START( sf2turyu )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "u222-f83.040", 0x000000, 0x100000, CRC(47468198) SHA1(D68D6342DA9B53163F36F44517F6DADF35E2A279) )
+ ROM_LOAD16_BYTE( "u196-99d.040", 0x000001, 0x100000, CRC(47d34191) SHA1(6718FDC8A0DAFEBCA7C35553CC270D16CE3F5D3E) )
+ ROM_LOAD16_BYTE( "u221-59e.010", 0x100000, 0x40000, CRC(5507bac9) SHA1(7797CA13CB02DB469DCBA00A07B1517C3586423E) )
+ ROM_LOAD16_BYTE( "u195-472.010", 0x100001, 0x40000, CRC(7755a20a) SHA1(60ED4009C9C767A375A754C06C124EF81BA45F5A) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sf2th.key", 0x000000, 0x000080, CRC(67e80fca) SHA1(e937bc4cf0e05ba93c32bc47d65c5b027bc2b48e) )
+ROM_END
+
+ROM_START( sf2yyc3d5 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "sf3d5-1040", 0x000000, 0x80000, CRC(bcdd2c3a) SHA1(eff98e425f283afc69064e8bc73f769e0aab93ed) )
+ ROM_LOAD16_BYTE( "sf3d5-3040", 0x000001, 0x80000, CRC(01965987) SHA1(42abce3aa983ac4143490c0ab2e772a154905860) )
+ ROM_LOAD16_BYTE( "sf3d5-2010", 0x100000, 0x20000, CRC(dd2e1d31) SHA1(22b341a7365ba4a52c9ee2244d68409c5e86bcf0) )
+ ROM_RELOAD( 0x140000, 0x20000 )
+ ROM_LOAD16_BYTE( "u195.rom", 0x100001, 0x20000, CRC(c95e4443) SHA1(28417dee9ccdfa65b0f4a92aa29b90279fe8cd85) )
+ ROM_RELOAD( 0x140001, 0x20000 )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sf2th.key", 0x000000, 0x000080, CRC(67e80fca) SHA1(e937bc4cf0e05ba93c32bc47d65c5b027bc2b48e) )
+ROM_END
+
+ROM_START( sf2yyc3g )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "sf3g-1040", 0x000000, 0x80000, CRC(c90559a5) SHA1(f45563c79cf5ce610f92ca84c96d337cf6c9a979) )
+ ROM_LOAD16_BYTE( "sf3g-3040", 0x000001, 0x80000, CRC(81f36682) SHA1(53776084c973c0b7aafb203e8efcfd5f5c659c93) )
+ ROM_LOAD16_BYTE( "sf3g-2010", 0x100000, 0x20000, CRC(9eee20a1) SHA1(a6769744094dc0e65f9f34ef36929e7e8ae6155b) )
+ ROM_RELOAD( 0x140000, 0x20000 )
+ ROM_LOAD16_BYTE( "sf3g-4010", 0x100001, 0x20000, CRC(6ac3d875) SHA1(ab4384d7a9194b2628836013d3d9f275d55c77bb) )
+ ROM_RELOAD( 0x140001, 0x20000 )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sf2th.key", 0x000000, 0x000080, CRC(67e80fca) SHA1(e937bc4cf0e05ba93c32bc47d65c5b027bc2b48e) )
+ROM_END
+
+ROM_START( sf2yyc6 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "sf6-1040", 0x000000, 0x80000, CRC(ccd74822) SHA1(5f64585335ccc0fb1a97339532a6694076e2b6f2) )
+ ROM_LOAD16_BYTE( "sf6-3040", 0x000001, 0x80000, CRC(2a48b557) SHA1(2e74925a925f86619d4f8e633af718a5eaa8c585) )
+ ROM_LOAD16_BYTE( "u221.rom", 0x100000, 0x20000, CRC(64e6e091) SHA1(32ec05db955e538d4ada26d19ee50926f74b684f) )
+ ROM_RELOAD( 0x140000, 0x20000 )
+ ROM_LOAD16_BYTE( "u195.rom", 0x100001, 0x20000, CRC(c95e4443) SHA1(28417dee9ccdfa65b0f4a92aa29b90279fe8cd85) )
+ ROM_RELOAD( 0x140001, 0x20000 )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92-1m.3a", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-3m.5a", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-2m.4a", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-4m.6a", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-5m.7a", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-7m.9a", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-6m.8a", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-8m.10a", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-10m.3c", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-12m.5c", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-11m.4c", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92-13m.6c", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "s92_09.11a", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "s92_18.11c", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.12c", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sf2th.key", 0x000000, 0x000080, CRC(67e80fca) SHA1(e937bc4cf0e05ba93c32bc47d65c5b027bc2b48e) )
+ROM_END
+
+
+ROM_START( sk2h1 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sgyx.800", 0x000000, 0x100000, CRC(3703a650) SHA1(6cb8d6f99df5e2e5cf04aee8737bb585f9328ffd) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD("sgyxz_gfx1.bin", 0x000000, 0x80000, CRC(a60be9f6) SHA1(2298a4b6a2c83b76dc106a1efa19606b298d378a), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000004, 0x80000 )
+ ROM_CONTINUE( 0x200000, 0x80000 )
+ ROM_CONTINUE( 0x200004, 0x80000 )
+ ROMX_LOAD("sgyxz_gfx2.bin", 0x000002, 0x80000, CRC(6ad9d048) SHA1(d47212d28d0a1ce349e4c59e5d0d99c541b3458e), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000006, 0x80000 )
+ ROM_CONTINUE( 0x200002, 0x80000 )
+ ROM_CONTINUE( 0x200006, 0x80000 )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "sgyxz_snd2.bin", 0x00000, 0x10000, CRC(210c376f) SHA1(0d937c86078d0a106f5636b7daf5fc0266c2c2ec) )
+ ROM_RELOAD( 0x8000, 0x10000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "sgyxz_snd1.bin", 0x00000, 0x40000, CRC(c15ac0f2) SHA1(8d9e5519d9820e4ac4f70555088c80e64d052c9d) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sk2h1.key", 0x000000, 0x000080, CRC(dccefd4d) SHA1(01050b7d1805503a5c7098dfb98d8afa79cf0fe0) )
+ROM_END
+
+ROM_START( sk2h1q )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sgyx.800", 0x000000, 0x100000, CRC(3703a650) SHA1(6cb8d6f99df5e2e5cf04aee8737bb585f9328ffd) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "sgyx-1.160", 0x000000, 0x80000, CRC(a60be9f6) SHA1(2298a4b6a2c83b76dc106a1efa19606b298d378a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000004, 0x80000 )
+ ROM_CONTINUE( 0x200000, 0x80000 )
+ ROM_CONTINUE( 0x200004, 0x80000 )
+ ROMX_LOAD( "sgyx-2.160", 0x000002, 0x80000, CRC(6ad9d048) SHA1(d47212d28d0a1ce349e4c59e5d0d99c541b3458e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000006, 0x80000 )
+ ROM_CONTINUE( 0x200002, 0x80000 )
+ ROM_CONTINUE( 0x200006, 0x80000 )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code + space for decrypted opcodes */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sk2h1.key", 0x000000, 0x000080, CRC(dccefd4d) SHA1(01050b7d1805503a5c7098dfb98d8afa79cf0fe0) )
+ROM_END
+
+ROM_START( sk2h2 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "fg-c.040", 0x000000, 0x80000, CRC(d046fc86) SHA1(0ae0b9310e3a122cb69df4bb23672149794242f0) )
+ ROM_LOAD16_BYTE( "fg-a.040", 0x000001, 0x80000, CRC(f176ee8f) SHA1(fba357c31774aeecef88f70df4294514585df3a0) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD("sgyxz_gfx1.bin", 0x000000, 0x80000, CRC(a60be9f6) SHA1(2298a4b6a2c83b76dc106a1efa19606b298d378a), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000004, 0x80000 )
+ ROM_CONTINUE( 0x200000, 0x80000 )
+ ROM_CONTINUE( 0x200004, 0x80000 )
+ ROMX_LOAD("sgyxz_gfx2.bin", 0x000002, 0x80000, CRC(6ad9d048) SHA1(d47212d28d0a1ce349e4c59e5d0d99c541b3458e), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000006, 0x80000 )
+ ROM_CONTINUE( 0x200002, 0x80000 )
+ ROM_CONTINUE( 0x200006, 0x80000 )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "sgyxz_snd2.bin", 0x00000, 0x10000, CRC(210c376f) SHA1(0d937c86078d0a106f5636b7daf5fc0266c2c2ec) )
+ ROM_RELOAD( 0x8000, 0x10000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "sgyxz_snd1.bin", 0x00000, 0x40000, CRC(c15ac0f2) SHA1(8d9e5519d9820e4ac4f70555088c80e64d052c9d) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sk2h1.key", 0x000000, 0x000080, CRC(dccefd4d) SHA1(01050b7d1805503a5c7098dfb98d8afa79cf0fe0) )
+ROM_END
+
+ROM_START( sk2h2q )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "fg-c.040", 0x000000, 0x80000, CRC(d046fc86) SHA1(0ae0b9310e3a122cb69df4bb23672149794242f0) )
+ ROM_LOAD16_BYTE( "fg-a.040", 0x000001, 0x80000, CRC(f176ee8f) SHA1(fba357c31774aeecef88f70df4294514585df3a0) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "sgyx-1.160", 0x000000, 0x80000, CRC(a60be9f6) SHA1(2298a4b6a2c83b76dc106a1efa19606b298d378a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000004, 0x80000 )
+ ROM_CONTINUE( 0x200000, 0x80000 )
+ ROM_CONTINUE( 0x200004, 0x80000 )
+ ROMX_LOAD( "sgyx-2.160", 0x000002, 0x80000, CRC(6ad9d048) SHA1(d47212d28d0a1ce349e4c59e5d0d99c541b3458e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000006, 0x80000 )
+ ROM_CONTINUE( 0x200002, 0x80000 )
+ ROM_CONTINUE( 0x200006, 0x80000 )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code + space for decrypted opcodes */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sk2h1.key", 0x000000, 0x000080, CRC(dccefd4d) SHA1(01050b7d1805503a5c7098dfb98d8afa79cf0fe0) )
+ROM_END
+
+ROM_START( sk2h3 ) // same as MAME sgyxz - here until it gets fixed
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "sgyxz_prg2.bin", 0x000000, 0x20000, CRC(95429c83) SHA1(e981624d018132e5625a66113b6ac4fc44e55cf7) )
+ ROM_CONTINUE( 0x80000, 0x20000 )
+ ROM_CONTINUE( 0x40000, 0x20000 )
+ ROM_CONTINUE( 0xc0000, 0x20000 )
+ ROM_LOAD16_BYTE( "sgyxz_prg1.bin", 0x000001, 0x20000, CRC(d8511929) SHA1(4de9263778f327693f4d1e21b48e43806f673487) )
+ ROM_CONTINUE( 0x80001, 0x20000 )
+ ROM_CONTINUE( 0x40001, 0x20000 )
+ ROM_CONTINUE( 0xc0001, 0x20000 )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD("sgyxz_gfx1.bin", 0x000000, 0x80000, CRC(a60be9f6) SHA1(2298a4b6a2c83b76dc106a1efa19606b298d378a), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000004, 0x80000 )
+ ROM_CONTINUE( 0x200000, 0x80000 )
+ ROM_CONTINUE( 0x200004, 0x80000 )
+ ROMX_LOAD("sgyxz_gfx2.bin", 0x000002, 0x80000, CRC(6ad9d048) SHA1(d47212d28d0a1ce349e4c59e5d0d99c541b3458e), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000006, 0x80000 )
+ ROM_CONTINUE( 0x200002, 0x80000 )
+ ROM_CONTINUE( 0x200006, 0x80000 )
+
+ ROM_REGION( 0x20000, "audiocpu", 0 )
+ ROM_LOAD( "sgyxz_snd2.bin", 0x00000, 0x10000, CRC(210c376f) SHA1(0d937c86078d0a106f5636b7daf5fc0266c2c2ec) )
+ ROM_RELOAD( 0x8000, 0x10000 )
+
+ ROM_REGION( 0x040000, "oki", 0 )
+ ROM_LOAD( "sgyxz_snd1.bin", 0x00000, 0x40000, CRC(c15ac0f2) SHA1(8d9e5519d9820e4ac4f70555088c80e64d052c9d) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sk2h1.key", 0x000000, 0x000080, CRC(dccefd4d) SHA1(01050b7d1805503a5c7098dfb98d8afa79cf0fe0) )
+ROM_END
+
+ROM_START( sk2h4q ) // wofjheo in mame++
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sk2h4q.23", 0x000000, 0x100000, CRC(03eeb1cf) SHA1(4adffc4eadc5174e2185e923021fa17b113c8a7e) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "sgyx-1.160", 0x000000, 0x80000, CRC(a60be9f6) SHA1(2298a4b6a2c83b76dc106a1efa19606b298d378a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000004, 0x80000 )
+ ROM_CONTINUE( 0x200000, 0x80000 )
+ ROM_CONTINUE( 0x200004, 0x80000 )
+ ROMX_LOAD( "sgyx-2.160", 0x000002, 0x80000, CRC(6ad9d048) SHA1(d47212d28d0a1ce349e4c59e5d0d99c541b3458e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000006, 0x80000 )
+ ROM_CONTINUE( 0x200002, 0x80000 )
+ ROM_CONTINUE( 0x200006, 0x80000 )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code + space for decrypted opcodes */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sk2h1.key", 0x000000, 0x000080, CRC(dccefd4d) SHA1(01050b7d1805503a5c7098dfb98d8afa79cf0fe0) )
+ROM_END
+
+ROM_START( sk2h5q ) // wofhrvwx in mame++
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sk2h5q.23", 0x000000, 0x100000, CRC(750dfc1d) SHA1(05967381446b54cea501c09ec033b16708f895e1) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "sgyx-1.160", 0x000000, 0x80000, CRC(a60be9f6) SHA1(2298a4b6a2c83b76dc106a1efa19606b298d378a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000004, 0x80000 )
+ ROM_CONTINUE( 0x200000, 0x80000 )
+ ROM_CONTINUE( 0x200004, 0x80000 )
+ ROMX_LOAD( "sgyx-2.160", 0x000002, 0x80000, CRC(6ad9d048) SHA1(d47212d28d0a1ce349e4c59e5d0d99c541b3458e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000006, 0x80000 )
+ ROM_CONTINUE( 0x200002, 0x80000 )
+ ROM_CONTINUE( 0x200006, 0x80000 )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code + space for decrypted opcodes */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sk2h1.key", 0x000000, 0x000080, CRC(dccefd4d) SHA1(01050b7d1805503a5c7098dfb98d8afa79cf0fe0) )
+ROM_END
+
+ROM_START( sk2h6q ) // wofhbw in mame++
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sk2h6q.23", 0x000000, 0x100000, CRC(8080acc7) SHA1(b9e9d126c4e63748bd77947e9c50888c701ea165) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "sgyx-1.160", 0x000000, 0x80000, CRC(a60be9f6) SHA1(2298a4b6a2c83b76dc106a1efa19606b298d378a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000004, 0x80000 )
+ ROM_CONTINUE( 0x200000, 0x80000 )
+ ROM_CONTINUE( 0x200004, 0x80000 )
+ ROMX_LOAD( "sgyx-2.160", 0x000002, 0x80000, CRC(6ad9d048) SHA1(d47212d28d0a1ce349e4c59e5d0d99c541b3458e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000006, 0x80000 )
+ ROM_CONTINUE( 0x200002, 0x80000 )
+ ROM_CONTINUE( 0x200006, 0x80000 )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code + space for decrypted opcodes */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sk2h1.key", 0x000000, 0x000080, CRC(dccefd4d) SHA1(01050b7d1805503a5c7098dfb98d8afa79cf0fe0) )
+ROM_END
+
+ROM_START( sk2h11 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "htk2a_23b.rom", 0x000000, 0x80000, CRC(1b17fc85) SHA1(d8c2bd31474dce2330adb05b859ce3fd13040d23) )
+ ROM_LOAD16_WORD_SWAP( "tk2a_22c.7f", 0x080000, 0x80000, CRC(900ad4cd) SHA1(988007447f93f3467029b9c29fd9670a7ecadaa3) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-5m.7a", 0x200000, 0x80000, CRC(291f0f0b) SHA1(094baf0f960f25fc2525b3b1cc378a49d9a0955d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-7m.9a", 0x200002, 0x80000, CRC(3edeb949) SHA1(c155698dd9ee9eb24bbc97a21118ef2e897ea82f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-6m.8a", 0x200004, 0x80000, CRC(1abd14d6) SHA1(dffff3126f102b4ec028a81405fc5b9bd7bb65b3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-8m.10a", 0x200006, 0x80000, CRC(b27948e3) SHA1(870d5d23f56798831c641e877ea94217058b2ddc) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wofch.key", 0x000000, 0x000080, CRC(23f2d0bb) SHA1(48ba9300bc2136e9583754a51d5ab2532eca85c6) )
+ROM_END
+
+ROM_START( sk2h12 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "htk2ah_23b.rom", 0x000000, 0x80000, CRC(6e3ff382) SHA1(14ef2c708da134f925efa0c3886a104c3ef9e5d7) )
+ ROM_LOAD16_WORD_SWAP( "tk2a_22c.7f", 0x080000, 0x80000, CRC(900ad4cd) SHA1(988007447f93f3467029b9c29fd9670a7ecadaa3) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-5m.7a", 0x200000, 0x80000, CRC(291f0f0b) SHA1(094baf0f960f25fc2525b3b1cc378a49d9a0955d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-7m.9a", 0x200002, 0x80000, CRC(3edeb949) SHA1(c155698dd9ee9eb24bbc97a21118ef2e897ea82f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-6m.8a", 0x200004, 0x80000, CRC(1abd14d6) SHA1(dffff3126f102b4ec028a81405fc5b9bd7bb65b3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-8m.10a", 0x200006, 0x80000, CRC(b27948e3) SHA1(870d5d23f56798831c641e877ea94217058b2ddc) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wofch.key", 0x000000, 0x000080, CRC(23f2d0bb) SHA1(48ba9300bc2136e9583754a51d5ab2532eca85c6) )
+ROM_END
+
+ROM_START( sk2h13 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2ah_23b.rom", 0x000000, 0x80000, CRC(48fd83c6) SHA1(8f33124979d7ca4c2af10f2a98b524e5463458cc) )
+ ROM_LOAD16_WORD_SWAP( "tk2a_22c.7f", 0x080000, 0x80000, CRC(900ad4cd) SHA1(988007447f93f3467029b9c29fd9670a7ecadaa3) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-5m.7a", 0x200000, 0x80000, CRC(291f0f0b) SHA1(094baf0f960f25fc2525b3b1cc378a49d9a0955d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-7m.9a", 0x200002, 0x80000, CRC(3edeb949) SHA1(c155698dd9ee9eb24bbc97a21118ef2e897ea82f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-6m.8a", 0x200004, 0x80000, CRC(1abd14d6) SHA1(dffff3126f102b4ec028a81405fc5b9bd7bb65b3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-8m.10a", 0x200006, 0x80000, CRC(b27948e3) SHA1(870d5d23f56798831c641e877ea94217058b2ddc) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wofch.key", 0x000000, 0x000080, CRC(23f2d0bb) SHA1(48ba9300bc2136e9583754a51d5ab2532eca85c6) )
+ROM_END
+
+ROM_START( sk2h14 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "wofchs.23", 0x000000, 0x80000, CRC(2d70231a) SHA1(57c05c5685e8b3b6de81ab4eed05bd2ad08dbe57) )
+ ROM_LOAD16_WORD_SWAP( "wofchs.22", 0x080000, 0x80000, CRC(5eac2794) SHA1(76c50ef1fea35f86122ede62acfcd56abb866608) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "wofchs.5", 0x200000, 0x80000, CRC(38a90eb1) SHA1(6a2d1fe437341e9339a21dc2a1746f35d8fe9a38) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "wofchs.7", 0x200002, 0x80000, CRC(fa1e10ca) SHA1(da0a81f470a48069ff4b595706d3d7ad2a6e3c37) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "wofchs.6", 0x200004, 0x80000, CRC(0b0b156c) SHA1(9301ab5480290057b151cc70a45cfa2a75b31f23) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "wofchs.8", 0x200006, 0x80000, CRC(76b9e160) SHA1(a8dfbd15488c18ca3730b9c493140f50ab89a64e) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wofch.key", 0x000000, 0x000080, CRC(23f2d0bb) SHA1(48ba9300bc2136e9583754a51d5ab2532eca85c6) )
+ROM_END
+
+ROM_START( sk2h15 ) // wofaehp
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sk2h15.8f", 0x000000, 0x80000, CRC(261766b2) SHA1(25cf51d0fb90e4a4e39492162f67de0defbc4285) )
+ ROM_LOAD16_WORD_SWAP( "tk2a_22c.7f", 0x080000, 0x80000, CRC(900ad4cd) SHA1(988007447f93f3467029b9c29fd9670a7ecadaa3) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-5m.7a", 0x200000, 0x80000, CRC(291f0f0b) SHA1(094baf0f960f25fc2525b3b1cc378a49d9a0955d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-7m.9a", 0x200002, 0x80000, CRC(3edeb949) SHA1(c155698dd9ee9eb24bbc97a21118ef2e897ea82f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-6m.8a", 0x200004, 0x80000, CRC(1abd14d6) SHA1(dffff3126f102b4ec028a81405fc5b9bd7bb65b3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-8m.10a", 0x200006, 0x80000, CRC(b27948e3) SHA1(870d5d23f56798831c641e877ea94217058b2ddc) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wofch.key", 0x000000, 0x000080, CRC(23f2d0bb) SHA1(48ba9300bc2136e9583754a51d5ab2532eca85c6) )
+ROM_END
+
+ROM_START( sk2h16 ) // wofahp2
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sk2h16.8f", 0x000000, 0x80000, CRC(7aed1751) SHA1(e5e10cae12a90c10831ad62669f8c2293a2ab263) )
+ ROM_LOAD16_WORD_SWAP( "sk2h16.7f", 0x080000, 0x80000, CRC(89483936) SHA1(8f5d19e9c9660908d2bc256418e63b2c89f64fc4) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-5m.7a", 0x200000, 0x80000, CRC(291f0f0b) SHA1(094baf0f960f25fc2525b3b1cc378a49d9a0955d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-7m.9a", 0x200002, 0x80000, CRC(3edeb949) SHA1(c155698dd9ee9eb24bbc97a21118ef2e897ea82f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-6m.8a", 0x200004, 0x80000, CRC(1abd14d6) SHA1(dffff3126f102b4ec028a81405fc5b9bd7bb65b3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-8m.10a", 0x200006, 0x80000, CRC(b27948e3) SHA1(870d5d23f56798831c641e877ea94217058b2ddc) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wofch.key", 0x000000, 0x000080, CRC(23f2d0bb) SHA1(48ba9300bc2136e9583754a51d5ab2532eca85c6) )
+ROM_END
+
+ROM_START( sk2h21 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "3js_23.rom", 0x000000, 0x80000, CRC(1ebb76da) SHA1(a3d9643a03e964477abd5164202566fe4a11b902) )
+ ROM_LOAD16_WORD_SWAP( "3js_22.rom", 0x080000, 0x80000, CRC(f41d6153) SHA1(a2cafea8402ab58e8022020242397e7cdce57aff) )
+ ROM_LOAD16_BYTE( "3js_24.rom", 0x0c0000, 0x20000, CRC(06ead409) SHA1(7289afd15fecd185350d2705476d74baa6909782) )
+ ROM_LOAD16_BYTE( "3js_28.rom", 0x0c0001, 0x20000, CRC(8ba934e6) SHA1(b9fb1d000a90cf2dbe2113130939c146f16a776e) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "3js_gfx5.rom", 0x200000, 0x80000, CRC(94b58f82) SHA1(937e7bb74e47f7ed670f63cdf7e502cf6ffe09c8), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "3js_gfx7.rom", 0x200002, 0x80000, CRC(df4fb386) SHA1(4eece42595084dbab1fa2c603f231fc67efb292d), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "3js_gfx6.rom", 0x200004, 0x80000, CRC(c22c5bd8) SHA1(4dd3598ca9cbbceabfb28b1b0d8a4879fcdb9a13), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "3js_gfx8.rom", 0x200006, 0x80000, CRC(f9cfd08b) SHA1(cd55ef014705d8b07c3eb9dafdbf2a831ea25b7c), ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "3js_09.rom", 0x00000, 0x08000, CRC(21ce044c) SHA1(425fd8d33d54f35ef90d68a7530db7a0eafb600d) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "3js_18.rom", 0x000000, 0x20000, CRC(ac6e307d) SHA1(b490ce625bb7ce0904b0fd121fbfbd5252790f7a) )
+ ROM_LOAD( "3js_19.rom", 0x020000, 0x20000, CRC(068741db) SHA1(ab48aff639a7ac218b7d5304145e10e92d61fd9f) )
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sk2h21.key", 0x000000, 0x000080, CRC(287d8a40) SHA1(46aa717f599f88d32afb5ecc0bf43c2cbe6892d0) )
+ROM_END
+
+ROM_START( sk2h22 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "cx2.040", 0x00000, 0x20000, CRC(c01a6d2f) SHA1(c1e69e075bb01141c026bf0722a64659e1802184) )
+ ROM_CONTINUE( 0x80000, 0x20000 )
+ ROM_CONTINUE( 0x40000, 0x20000 )
+ ROM_CONTINUE( 0xc0000, 0x20000 )
+ ROM_LOAD16_BYTE( "cx1.040", 0x00001, 0x20000, CRC(fd95e677) SHA1(42a10e73bd30498dc39cd66abf73680799ebe8b0) )
+ ROM_CONTINUE( 0x80001, 0x20000 )
+ ROM_CONTINUE( 0x40001, 0x20000 )
+ ROM_CONTINUE( 0xc0001, 0x20000 )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tx-a.160", 0x000000, 0x80000, CRC(ae348da2) SHA1(e86ab38e75c46ff2a4fa974fbbd3c2d2f67cef36), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000004, 0x80000 )
+ ROM_CONTINUE( 0x200000, 0x80000 )
+ ROM_CONTINUE( 0x200004, 0x80000 )
+ ROMX_LOAD( "tx-b.160", 0x000002, 0x80000, CRC(384a6db0) SHA1(57273edce545a7fb4026cb4c705d97d71f24ea6f), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000006, 0x80000 )
+ ROM_CONTINUE( 0x200002, 0x80000 )
+ ROM_CONTINUE( 0x200006, 0x80000 )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 )
+ ROM_LOAD( "9", 0x00000, 0x08000, CRC(86fe8a97) SHA1(cab82bcd0f49bcb40201b439cfdd10266f46752a) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "18", 0x00000, 0x20000, CRC(c04be720) SHA1(2e544e0a0358b6afbdf826d35d9c4c59e4787a93) )
+ ROM_LOAD( "19", 0x20000, 0x20000, CRC(fbb8d8c1) SHA1(8a7689bb7ed56243333133cbacf01a0ae825201e) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sk2h31.key", 0x000000, 0x000080, CRC(d741a7b6) SHA1(c7b64e8634945cc8e8f7f508b1bb7ad5ccf95c83) )
+ROM_END
+
+ROM_START( sk2h31 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "k6b.040", 0x000000, 0x80000, CRC(7b365108) SHA1(e4ef6e7267ecf36d8b15c7df0351b38777cd559d) )
+ ROM_LOAD16_BYTE( "k6a.040", 0x000001, 0x80000, CRC(10488a51) SHA1(061d5139f4289cbca9e0a743954d9c65a9384c06) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "k6a.160", 0x000000, 0x80000, CRC(a121180d) SHA1(9501399479a5892db0c818637459f77540794b85), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000004, 0x80000 )
+ ROM_CONTINUE( 0x200000, 0x80000 )
+ ROM_CONTINUE( 0x200004, 0x80000 )
+ ROMX_LOAD( "k6b.160", 0x000002, 0x80000, CRC(a4db96c4) SHA1(6798c0cbd9a1f8f4704c5cb9e19e8873149d3c33), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000006, 0x80000 )
+ ROM_CONTINUE( 0x200002, 0x80000 )
+ ROM_CONTINUE( 0x200006, 0x80000 )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 )
+ ROM_LOAD( "9", 0x00000, 0x08000, CRC(86fe8a97) SHA1(cab82bcd0f49bcb40201b439cfdd10266f46752a) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "18", 0x00000, 0x20000, CRC(c04be720) SHA1(2e544e0a0358b6afbdf826d35d9c4c59e4787a93) )
+ ROM_LOAD( "19", 0x20000, 0x20000, CRC(fbb8d8c1) SHA1(8a7689bb7ed56243333133cbacf01a0ae825201e) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sk2h31.key", 0x000000, 0x000080, CRC(d741a7b6) SHA1(c7b64e8634945cc8e8f7f508b1bb7ad5ccf95c83) )
+ROM_END
+
+ROM_START( sk2h31q )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "k6b.040", 0x000000, 0x80000, CRC(7b365108) SHA1(e4ef6e7267ecf36d8b15c7df0351b38777cd559d) )
+ ROM_LOAD16_BYTE( "k6a.040", 0x000001, 0x80000, CRC(10488a51) SHA1(061d5139f4289cbca9e0a743954d9c65a9384c06) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "k6a.160", 0x000000, 0x80000, CRC(a121180d) SHA1(9501399479a5892db0c818637459f77540794b85) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000004, 0x80000 )
+ ROM_CONTINUE( 0x200000, 0x80000 )
+ ROM_CONTINUE( 0x200004, 0x80000 )
+ ROMX_LOAD( "k6b.160", 0x000002, 0x80000, CRC(a4db96c4) SHA1(6798c0cbd9a1f8f4704c5cb9e19e8873149d3c33) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000006, 0x80000 )
+ ROM_CONTINUE( 0x200002, 0x80000 )
+ ROM_CONTINUE( 0x200006, 0x80000 )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sk2h31.key", 0x000000, 0x000080, CRC(d741a7b6) SHA1(c7b64e8634945cc8e8f7f508b1bb7ad5ccf95c83) )
+ROM_END
+
+ROM_START( sk2h32 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "3js.800", 0x000000, 0x100000, CRC(812f9200) SHA1(ddf4261c21762e8168d83393a59aa1450762a89a) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "k6a.160", 0x000000, 0x80000, CRC(a121180d) SHA1(9501399479a5892db0c818637459f77540794b85), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000004, 0x80000 )
+ ROM_CONTINUE( 0x200000, 0x80000 )
+ ROM_CONTINUE( 0x200004, 0x80000 )
+ ROMX_LOAD( "k6b.160", 0x000002, 0x80000, CRC(a4db96c4) SHA1(6798c0cbd9a1f8f4704c5cb9e19e8873149d3c33), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000006, 0x80000 )
+ ROM_CONTINUE( 0x200002, 0x80000 )
+ ROM_CONTINUE( 0x200006, 0x80000 )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 )
+ ROM_LOAD( "9", 0x00000, 0x08000, CRC(86fe8a97) SHA1(cab82bcd0f49bcb40201b439cfdd10266f46752a) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "18", 0x00000, 0x20000, CRC(c04be720) SHA1(2e544e0a0358b6afbdf826d35d9c4c59e4787a93) )
+ ROM_LOAD( "19", 0x20000, 0x20000, CRC(fbb8d8c1) SHA1(8a7689bb7ed56243333133cbacf01a0ae825201e) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sk2h31.key", 0x000000, 0x000080, CRC(d741a7b6) SHA1(c7b64e8634945cc8e8f7f508b1bb7ad5ccf95c83) )
+ROM_END
+
+ROM_START( sk2h32q )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "3js.800", 0x000000, 0x100000, CRC(812f9200) SHA1(ddf4261c21762e8168d83393a59aa1450762a89a) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "k6a.160", 0x000000, 0x80000, CRC(a121180d) SHA1(9501399479a5892db0c818637459f77540794b85) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000004, 0x80000 )
+ ROM_CONTINUE( 0x200000, 0x80000 )
+ ROM_CONTINUE( 0x200004, 0x80000 )
+ ROMX_LOAD( "k6b.160", 0x000002, 0x80000, CRC(a4db96c4) SHA1(6798c0cbd9a1f8f4704c5cb9e19e8873149d3c33) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000006, 0x80000 )
+ ROM_CONTINUE( 0x200002, 0x80000 )
+ ROM_CONTINUE( 0x200006, 0x80000 )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sk2h31.key", 0x000000, 0x000080, CRC(d741a7b6) SHA1(c7b64e8634945cc8e8f7f508b1bb7ad5ccf95c83) )
+ROM_END
+
+ROM_START( sk2h33 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "c-c47b.040", 0x000000, 0x80000, CRC(b1809761) SHA1(99a17ed193654f61622eb721e20b69894c96d3d8) )
+ ROM_LOAD16_BYTE( "a-2402.040", 0x000001, 0x80000, CRC(4fab4232) SHA1(d8ffd06cce73e1c4bc6abb69a2e81277ce901563) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-5m.7a", 0x200000, 0x80000, CRC(291f0f0b) SHA1(094baf0f960f25fc2525b3b1cc378a49d9a0955d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-7m.9a", 0x200002, 0x80000, CRC(3edeb949) SHA1(c155698dd9ee9eb24bbc97a21118ef2e897ea82f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-6m.8a", 0x200004, 0x80000, CRC(1abd14d6) SHA1(dffff3126f102b4ec028a81405fc5b9bd7bb65b3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-8m.10a", 0x200006, 0x80000, CRC(b27948e3) SHA1(870d5d23f56798831c641e877ea94217058b2ddc) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 )
+ ROM_LOAD( "9", 0x00000, 0x08000, CRC(86fe8a97) SHA1(cab82bcd0f49bcb40201b439cfdd10266f46752a) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "18", 0x00000, 0x20000, CRC(c04be720) SHA1(2e544e0a0358b6afbdf826d35d9c4c59e4787a93) )
+ ROM_LOAD( "19", 0x20000, 0x20000, CRC(fbb8d8c1) SHA1(8a7689bb7ed56243333133cbacf01a0ae825201e) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sk2h31.key", 0x000000, 0x000080, CRC(d741a7b6) SHA1(c7b64e8634945cc8e8f7f508b1bb7ad5ccf95c83) )
+ROM_END
+
+ROM_START( sk2h33q )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "c-c47b.040", 0x000000, 0x80000, CRC(b1809761) SHA1(99a17ed193654f61622eb721e20b69894c96d3d8) )
+ ROM_LOAD16_BYTE( "a-2402.040", 0x000001, 0x80000, CRC(4fab4232) SHA1(d8ffd06cce73e1c4bc6abb69a2e81277ce901563) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-5m.7a", 0x200000, 0x80000, CRC(291f0f0b) SHA1(094baf0f960f25fc2525b3b1cc378a49d9a0955d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-7m.9a", 0x200002, 0x80000, CRC(3edeb949) SHA1(c155698dd9ee9eb24bbc97a21118ef2e897ea82f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-6m.8a", 0x200004, 0x80000, CRC(1abd14d6) SHA1(dffff3126f102b4ec028a81405fc5b9bd7bb65b3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-8m.10a", 0x200006, 0x80000, CRC(b27948e3) SHA1(870d5d23f56798831c641e877ea94217058b2ddc) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sk2h31.key", 0x000000, 0x000080, CRC(d741a7b6) SHA1(c7b64e8634945cc8e8f7f508b1bb7ad5ccf95c83) )
+ROM_END
+
+ROM_START( sk2h34 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "one.800", 0x000000, 0x100000, CRC(0507584d) SHA1(5a9df64b7c2c54c5aa0d4c9486c7404157c6119e) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-5m.7a", 0x200000, 0x80000, CRC(291f0f0b) SHA1(094baf0f960f25fc2525b3b1cc378a49d9a0955d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-7m.9a", 0x200002, 0x80000, CRC(3edeb949) SHA1(c155698dd9ee9eb24bbc97a21118ef2e897ea82f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-6m.8a", 0x200004, 0x80000, CRC(1abd14d6) SHA1(dffff3126f102b4ec028a81405fc5b9bd7bb65b3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-8m.10a", 0x200006, 0x80000, CRC(b27948e3) SHA1(870d5d23f56798831c641e877ea94217058b2ddc) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 )
+ ROM_LOAD( "9", 0x00000, 0x08000, CRC(86fe8a97) SHA1(cab82bcd0f49bcb40201b439cfdd10266f46752a) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "18", 0x00000, 0x20000, CRC(c04be720) SHA1(2e544e0a0358b6afbdf826d35d9c4c59e4787a93) )
+ ROM_LOAD( "19", 0x20000, 0x20000, CRC(fbb8d8c1) SHA1(8a7689bb7ed56243333133cbacf01a0ae825201e) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sk2h31.key", 0x000000, 0x000080, CRC(d741a7b6) SHA1(c7b64e8634945cc8e8f7f508b1bb7ad5ccf95c83) )
+ROM_END
+
+ROM_START( sk2h34q )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "one.800", 0x000000, 0x100000, CRC(0507584d) SHA1(5a9df64b7c2c54c5aa0d4c9486c7404157c6119e) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-5m.7a", 0x200000, 0x80000, CRC(291f0f0b) SHA1(094baf0f960f25fc2525b3b1cc378a49d9a0955d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-7m.9a", 0x200002, 0x80000, CRC(3edeb949) SHA1(c155698dd9ee9eb24bbc97a21118ef2e897ea82f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-6m.8a", 0x200004, 0x80000, CRC(1abd14d6) SHA1(dffff3126f102b4ec028a81405fc5b9bd7bb65b3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-8m.10a", 0x200006, 0x80000, CRC(b27948e3) SHA1(870d5d23f56798831c641e877ea94217058b2ddc) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sk2h31.key", 0x000000, 0x000080, CRC(d741a7b6) SHA1(c7b64e8634945cc8e8f7f508b1bb7ad5ccf95c83) )
+ROM_END
+
+ROM_START( sk2h35 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "c-d140.040", 0x000000, 0x80000, CRC(e6d933a6) SHA1(c1f08bbbfc855bbc96b844eed7b1e4f9a0a07fbf) )
+ ROM_LOAD16_BYTE( "a-0050.040", 0x000001, 0x80000, CRC(403eaead) SHA1(ce6d061e5ee91de779c8d0c19bed273dc4769900) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-5m.7a", 0x200000, 0x80000, CRC(291f0f0b) SHA1(094baf0f960f25fc2525b3b1cc378a49d9a0955d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-7m.9a", 0x200002, 0x80000, CRC(3edeb949) SHA1(c155698dd9ee9eb24bbc97a21118ef2e897ea82f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-6m.8a", 0x200004, 0x80000, CRC(1abd14d6) SHA1(dffff3126f102b4ec028a81405fc5b9bd7bb65b3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-8m.10a", 0x200006, 0x80000, CRC(b27948e3) SHA1(870d5d23f56798831c641e877ea94217058b2ddc) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sk2h21.key", 0x000000, 0x000080, CRC(287d8a40) SHA1(46aa717f599f88d32afb5ecc0bf43c2cbe6892d0) )
+ROM_END
+
+
+ROM_START( sk3p1 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sk3p1.23", 0x000000, 0x80000, CRC(b5f70324) SHA1(9cd8ca9dab1b2642810f50534186b575b1378ab8) )
+ ROM_LOAD16_WORD_SWAP( "sk3p1.22", 0x080000, 0x80000, CRC(5c453e70) SHA1(0ffad50e2f93881c6e9848f707eec7d0ee18f688) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2(ch)_07.9a", 0x200004, 0x80000, CRC(cc9006c9) SHA1(cfcbec3a67052268a7739538aa28a6391fe5400e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sk3p1.key", 0x000000, 0x000080, CRC(8ac48367) SHA1(aeeab2c3436009d05dd9caa1b1929af4d7e607ae) )
+ROM_END
+
+ROM_START( sk3p2 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sk3p1.23", 0x000000, 0x80000, CRC(b5f70324) SHA1(9cd8ca9dab1b2642810f50534186b575b1378ab8) )
+ ROM_LOAD16_WORD_SWAP( "sk3p2.22", 0x080000, 0x80000, CRC(55ed1b42) SHA1(0ea12b9298721aac20f351a894b4e7587bb38f88) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2(ch)_07.9a", 0x200004, 0x80000, CRC(cc9006c9) SHA1(cfcbec3a67052268a7739538aa28a6391fe5400e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wofch.key", 0x000000, 0x000080, CRC(23f2d0bb) SHA1(48ba9300bc2136e9583754a51d5ab2532eca85c6) )
+ROM_END
+
+ROM_START( sk3p3 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sk3p3.23", 0x000000, 0x80000, CRC(29389b7d) SHA1(ccc4a7c4cb43abe9e8f9fd0d1a813f722473784f) )
+ ROM_LOAD16_WORD_SWAP( "sk3p3.22", 0x080000, 0x80000, CRC(a959df0c) SHA1(ec6d9f1f9363dee08ea267fab28d313e0b46d3da) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2(ch)_07.9a", 0x200004, 0x80000, CRC(cc9006c9) SHA1(cfcbec3a67052268a7739538aa28a6391fe5400e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wofch.key", 0x000000, 0x000080, CRC(23f2d0bb) SHA1(48ba9300bc2136e9583754a51d5ab2532eca85c6) )
+ROM_END
+
+
+ROM_START( slammastud )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "mbu_23ed.8f", 0x000000, 0x80000, CRC(7697273f) SHA1(d42ce6414b42db14305f0497fb760e8a3e868b9d) )
+ ROM_LOAD16_BYTE( "mbu_24b.9e", 0x080000, 0x20000, CRC(95d5e729) SHA1(df3be896e55c92eb50887a4317178a3d11048433) )
+ ROM_LOAD16_BYTE( "mbu_28b.9f", 0x080001, 0x20000, CRC(b1c7cbcb) SHA1(cf5ad72be4a055db876e7347b1826325b9bf81d9) )
+ ROM_LOAD16_BYTE( "mbu_25b.10e", 0x0c0000, 0x20000, CRC(a50d3fd4) SHA1(dc3d108c3bc27f45b8b2e11919ba2a86e05b41d1) )
+ ROM_LOAD16_BYTE( "mbu_29b.10f", 0x0c0001, 0x20000, CRC(08e32e56) SHA1(70ad78b079f777ec02089f0df20ce2baad7adce5) )
+ ROM_LOAD16_WORD_SWAP( "mbu_21a.6f", 0x100000, 0x80000, CRC(d5007b05) SHA1(c55e55908aeda40ca2318c76ccbc05d333676875) )
+ ROM_LOAD16_WORD_SWAP( "mbu_20a.5f", 0x180000, 0x80000, CRC(fc848af5) SHA1(cd3f6e50779b89ee57a9d08bfa1d58dea286457c) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "mb-1m.3a", 0x000000, 0x80000, CRC(41468e06) SHA1(fb365798f2889a20eebaea2393c9c2c8827003c4) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-3m.5a", 0x000002, 0x80000, CRC(f453aa9e) SHA1(24a103dc6f0dc96f8d0f6164ad732909c9cd2d6a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-2m.4a", 0x000004, 0x80000, CRC(2ffbfea8) SHA1(13e30133664a009686e1114c92b558bdbb91ea32) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-4m.6a", 0x000006, 0x80000, CRC(1eb9841d) SHA1(685da3e011a96b36be9f639a241b2f8f27da4629) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-5m.7a", 0x200000, 0x80000, CRC(506b9dc9) SHA1(933bf2fb9bcc1a408f961f0e7052da80144bddad) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-7m.9a", 0x200002, 0x80000, CRC(aff8c2fb) SHA1(ce37a6d5b1eb58c2d74f23f84ec824c214c93217) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-6m.8a", 0x200004, 0x80000, CRC(b76c70e9) SHA1(c21e255815ec9a985919dbd760ed266c28bd47cd) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-8m.10a", 0x200006, 0x80000, CRC(e60c9556) SHA1(b91c14092aa8dbb0922d96998123ef1970a658f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-10m.3c", 0x400000, 0x80000, CRC(97976ff5) SHA1(ec9d3460816ab971a02fbce42960283091777e47) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-12m.5c", 0x400002, 0x80000, CRC(b350a840) SHA1(2b8b996cd08051e7e8e134bff5448775d78058a0) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-11m.4c", 0x400004, 0x80000, CRC(8fb94743) SHA1(294f6182c8a41b640d1f57cb5e3a2abce3b06482) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mb-13m.6c", 0x400006, 0x80000, CRC(da810d5f) SHA1(392bbd405244b8c99024c9228cfec6a7ef0accdb) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "mb_qa.5k", 0x00000, 0x08000, CRC(e21a03c4) SHA1(98c03fd2c9b6bf8a4fc25a4edca87fff7c3c3819) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x8000, "user1", 0 )
+ ROM_COPY( "audiocpu", 0x00000, 0x00000, 0x8000 )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "mb-q1.1k", 0x000000, 0x80000, CRC(0630c3ce) SHA1(520fc74c5c3638f611fa2f1b5efb08b91747e29b) )
+ ROM_LOAD( "mb-q2.2k", 0x080000, 0x80000, CRC(354f9c21) SHA1(1dc6b39791fd0f760697f409a6b62361a7bf62e9) )
+ ROM_LOAD( "mb-q3.3k", 0x100000, 0x80000, CRC(7838487c) SHA1(056b7da05cfca46873edacd674ca25c70855c6db) )
+ ROM_LOAD( "mb-q4.4k", 0x180000, 0x80000, CRC(ab66e087) SHA1(066ea69a0157e8647eea3c44d0a1843898860678) )
+ ROM_LOAD( "mb-q5.1m", 0x200000, 0x80000, CRC(c789fef2) SHA1(10d1e3d92288fccd4e064a3716a788a165efc3c9) )
+ ROM_LOAD( "mb-q6.2m", 0x280000, 0x80000, CRC(ecb81b61) SHA1(e339f21ae47de4782f3b338befcdac659c3503f6) )
+ ROM_LOAD( "mb-q7.3m", 0x300000, 0x80000, CRC(041e49ba) SHA1(3220b033a5c0cfbbe75c0c113cf2db39fb093a7e) )
+ ROM_LOAD( "mb-q8.4m", 0x380000, 0x80000, CRC(59fe702a) SHA1(807178dfc6d864e49fd7aabb5c4895835cf0e85b) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "slammastud.key", 0x000000, 0x000080, CRC(ade2c2a3) SHA1(8d7a4249cf221ac24c4c66f7151a9edd7f263de5) )
+ROM_END
+
+
+ROM_START( stridergf )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "30.11f", 0x00000, 0x20000, CRC(da997474) SHA1(3e4ac98f9a6967d61899281b31c7de779723397b) )
+ ROM_LOAD16_BYTE( "35.11h", 0x00001, 0x20000, CRC(5463aaa3) SHA1(e2d07ec2d818e9a2e2d7a77ff0309ae4011c0083) )
+ ROM_LOAD16_BYTE( "31.12f", 0x40000, 0x20000, CRC(d20786db) SHA1(c9c75488e6bb37cfd0d56073faf87ff5713bc9a0) )
+ ROM_LOAD16_BYTE( "36.12h", 0x40001, 0x20000, CRC(21aa2863) SHA1(446dc9280630318deb423531210a4eedfb4adfa6) )
+ ROM_LOAD16_WORD_SWAP( "st-14.8h", 0x80000, 0x80000, CRC(9b3cfc08) SHA1(a7d7f270a097437affa845d80bed82a1fa874878) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "stridefgf.8a", 0x000000, 0x80000, CRC(f92cc010) SHA1(7cec7f7cdc7efce28fd49ae0220a41d2fa811fd0) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "stridergf.10a", 0x000002, 0x80000, CRC(9abd7b1e) SHA1(cb00c37ad5b53daee8a1d7bb949adc3559561d13) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "stridergf.4a", 0x000004, 0x80000, CRC(0dcc68b1) SHA1(9c3179082944a6ca105046a02cea38170e91696f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "stridergf.6a", 0x000006, 0x80000, CRC(77f5debd) SHA1(796a1b6cda78cb5612c494dff52c3ac12c1d6531) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "st-1.7a", 0x200000, 0x80000, CRC(005f000b) SHA1(e6f65af7cc3295be9efaaded352e7ae6320b4133) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "st-10.9a", 0x200002, 0x80000, CRC(b9441519) SHA1(bb0926dc484dae4f64c5e5a6bce20afdc7aeba55) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "st-4.3a", 0x200004, 0x80000, CRC(b7d04e8b) SHA1(5c5a079baa694927c33d0e0c23e5ff09d6c9d985) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "st-8.5a", 0x200006, 0x80000, CRC(6b4713b4) SHA1(759b8b1fc7a5c4b00d74a27c2dd11667db44b09e) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x8000, "stars", 0 )
+ ROM_COPY( "gfx", 0x000000, 0x000000, 0x8000 )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "09.12b", 0x00000, 0x08000, CRC(2ed403bc) SHA1(4ce863ea40d789db5a7cfce91d2c7c720deb9be5) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "18.11c", 0x00000, 0x20000, CRC(4386bc80) SHA1(fb2b261995aeacfa13e7ee40b1a973dfb178f015) )
+ ROM_LOAD( "19.12c", 0x20000, 0x20000, CRC(444536d7) SHA1(a14f5de2f6b5b29ae5161dca1f8c08c566301a91) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "strider.key", 0x000000, 0x000080, CRC(39065af5) SHA1(ffff84fd87e851718c564062564970677da923c9) )
+ROM_END
+
+ROM_START( stridergh )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "30.11f", 0x00000, 0x20000, CRC(da997474) SHA1(3e4ac98f9a6967d61899281b31c7de779723397b) )
+ ROM_LOAD16_BYTE( "35.11h", 0x00001, 0x20000, CRC(5463aaa3) SHA1(e2d07ec2d818e9a2e2d7a77ff0309ae4011c0083) )
+ ROM_LOAD16_BYTE( "31.12f", 0x40000, 0x20000, CRC(d20786db) SHA1(c9c75488e6bb37cfd0d56073faf87ff5713bc9a0) )
+ ROM_LOAD16_BYTE( "36.12h", 0x40001, 0x20000, CRC(21aa2863) SHA1(446dc9280630318deb423531210a4eedfb4adfa6) )
+ ROM_LOAD16_WORD_SWAP( "st-14.8h", 0x80000, 0x80000, CRC(9b3cfc08) SHA1(a7d7f270a097437affa845d80bed82a1fa874878) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "stridergh.8a", 0x000000, 0x80000, CRC(ea572e97) SHA1(60fed8d1375334a815e18365a626eece9d07b1cd) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "stridergh.10a", 0x000002, 0x80000, CRC(d0bb852f) SHA1(0079418eafd751cd7a47053ef30a2042626fea8f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "stridergh.4a", 0x000004, 0x80000, CRC(8c408787) SHA1(291c9bd8d73e3ed9913164a034098ba94da4c03a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "stridergh.6a", 0x000006, 0x80000, CRC(07ba4914) SHA1(007d978a0d100c6dc9d1942e5b641b3a4e8ad678) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "st-1.7a", 0x200000, 0x80000, CRC(005f000b) SHA1(e6f65af7cc3295be9efaaded352e7ae6320b4133) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "st-10.9a", 0x200002, 0x80000, CRC(b9441519) SHA1(bb0926dc484dae4f64c5e5a6bce20afdc7aeba55) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "st-4.3a", 0x200004, 0x80000, CRC(b7d04e8b) SHA1(5c5a079baa694927c33d0e0c23e5ff09d6c9d985) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "st-8.5a", 0x200006, 0x80000, CRC(6b4713b4) SHA1(759b8b1fc7a5c4b00d74a27c2dd11667db44b09e) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x8000, "stars", 0 )
+ ROM_COPY( "gfx", 0x000000, 0x000000, 0x8000 )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "09.12b", 0x00000, 0x08000, CRC(2ed403bc) SHA1(4ce863ea40d789db5a7cfce91d2c7c720deb9be5) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "18.11c", 0x00000, 0x20000, CRC(4386bc80) SHA1(fb2b261995aeacfa13e7ee40b1a973dfb178f015) )
+ ROM_LOAD( "19.12c", 0x20000, 0x20000, CRC(444536d7) SHA1(a14f5de2f6b5b29ae5161dca1f8c08c566301a91) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "strider.key", 0x000000, 0x000080, CRC(39065af5) SHA1(ffff84fd87e851718c564062564970677da923c9) )
+ROM_END
+
+
+ROM_START( tk2c1 ) // same as tk2h1 except for first rom
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2c1.23", 0x000000, 0x80000, CRC(9725b5f4) SHA1(28c72348769eac95753dd469859edb8ca1f0b120) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( tk2c2 ) // same as tk2h1 except for first rom
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2c2.23", 0x000000, 0x80000, CRC(eac7f675) SHA1(e5df8cfeb1ed32e7a8c5bb8e40035b6f8e5b6ec5) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( tk2c3 ) // same as tk2h1 except for first rom
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2c3.23", 0x000000, 0x80000, CRC(d3d14501) SHA1(700c41b9e03c8568291266e5b991dd34e1c6f9c2) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( tk2c4 ) // same as tk2h1 except for first rom
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2c4.23", 0x000000, 0x80000, CRC(f48bb903) SHA1(4aff9e8beb6a6bd32c9fdb83e28effa42234ab5c) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( tk2c5 ) // same as tk2h1 except for program roms
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2c5.23", 0x000000, 0x80000, CRC(e91705df) SHA1(8c6969aae190b9e99d0879a7159718d8c2e9523c) )
+ ROM_LOAD16_WORD_SWAP( "tk2c19.22", 0x080000, 0x80000, CRC(4b2591c4) SHA1(8ba8efa94057fd7d183b9266009051ac81fe0581) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( tk2c6 ) // same as tk2h1 except for program roms - colours are a bit weird
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2j_23c.8f", 0x000000, 0x80000, CRC(9b215a68) SHA1(fc83ed26441fbfb15e21b093c7a6bed44b586e51) ) // from wofj
+ ROM_LOAD16_WORD_SWAP( "tk2c6.22", 0x080000, 0x80000, CRC(9fe4adf4) SHA1(ff1713880ad8b81d23f40dc3842aabcf6f444d65) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( tk2c7 ) // same as tk2h1 except for first rom
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2c7.23", 0x000000, 0x80000, CRC(44d321f3) SHA1(abea7e417e05413ed41ab222d5ccbdf6dcbecc53) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( tk2c8 ) // same as tk2h1 except for first rom
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2c8.23", 0x000000, 0x80000, CRC(bba39347) SHA1(296f8d124bde76dc5114a6210ed618dfa4d07d57) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( tk2c9 ) // same as tk2h1 except for first rom
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2c9.23", 0x000000, 0x80000, CRC(4f480a16) SHA1(b000f1ec2742e9403943b95bdd890069378dc9ed) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( tk2c10 ) // same as tk2h1 except for first rom
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2c10.23", 0x000000, 0x80000, CRC(643f9ef9) SHA1(2fe32edd38c2380a0dd7f9fc9bc44c4049d84646) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( tk2c11 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2c11.23", 0x000000, 0x80000, CRC(58ea0ddc) SHA1(3510b09abd261a896fda855130fd867c92aa030b) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( tk2c12 ) // same as tk2h1 except for first rom
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2c12.23", 0x000000, 0x80000, CRC(98878d8d) SHA1(8a23813e0df0d9ef8fa2761ac355ef5da0f44021) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( tk2c13 ) // same as tk2h1 except for program roms
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2c13.23", 0x000000, 0x80000, CRC(c1c0192c) SHA1(501225c58e25aaea4c0a4bb348f6a0150a742762) )
+ ROM_LOAD16_WORD_SWAP( "tk2c19.22", 0x080000, 0x80000, CRC(4b2591c4) SHA1(8ba8efa94057fd7d183b9266009051ac81fe0581) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( tk2c14 ) // same as tk2h1 except for first rom
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2c14.23", 0x000000, 0x80000, CRC(5bd65308) SHA1(15065656433bbf582c1910180a04298c13ff0b60) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( tk2c15 ) // same as tk2h1 except for first rom
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2c15.23", 0x000000, 0x80000, CRC(86b71709) SHA1(7a5c12966520b48d23f6a7f5661746cb9d714939) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( tk2c16 ) // same as tk2h1 except for first rom
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2c16.23", 0x000000, 0x80000, CRC(49b3eaf1) SHA1(fc6c5b0efbb4776bdfb47097ac58a9f6b452b136) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( tk2c17 ) // same as tk2h1 except for first rom
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2c20.23", 0x000000, 0x80000, CRC(341aa13d) SHA1(eed3be83078a86675068c52ca835fc27136a746b) ) // from tk2c20
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( tk2c18 ) // same as tk2h1 except for program roms
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2c18.23", 0x000000, 0x80000, CRC(c6497c7d) SHA1(c6235edc15ccff4e8813690b1c4ea25de2b9858b) )
+ ROM_LOAD16_WORD_SWAP( "tk2c19.22", 0x080000, 0x80000, CRC(4b2591c4) SHA1(8ba8efa94057fd7d183b9266009051ac81fe0581) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( tk2c19 ) // same as tk2h1 except for program roms
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2j_23c.8f", 0x000000, 0x80000, CRC(9b215a68) SHA1(fc83ed26441fbfb15e21b093c7a6bed44b586e51) ) // from wofj
+ ROM_LOAD16_WORD_SWAP( "tk2c19.22", 0x080000, 0x80000, CRC(4b2591c4) SHA1(8ba8efa94057fd7d183b9266009051ac81fe0581) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( tk2c20 ) // same as tk2h1 except for program roms
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2c20.23", 0x000000, 0x80000, CRC(341aa13d) SHA1(eed3be83078a86675068c52ca835fc27136a746b) )
+ ROM_LOAD16_WORD_SWAP( "tk2c19.22", 0x080000, 0x80000, CRC(4b2591c4) SHA1(8ba8efa94057fd7d183b9266009051ac81fe0581) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( tk2c21 ) // same as tk2h1 except for first rom
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2c21.23", 0x000000, 0x80000, CRC(288ab565) SHA1(834e2d5cef1d0ae486e201bedf6281540c5ded13) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( tk2c22 ) // same as tk2h1 except for first rom
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2c22.23", 0x000000, 0x80000, CRC(420b3a40) SHA1(6d06b980f4afdcde5ff4cc2509e3ee398b79a19c) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( tk2c23 ) // same as tk2h1 except for first rom
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2c23.23", 0x000000, 0x80000, CRC(f46755f1) SHA1(f6efa2d886f89d6ab95f919356b574a9b87ba69b) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( tk2h1 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "xtk2j23h.bin", 0x000000, 0x80000, CRC(84d38575) SHA1(537f12180adfcea7bceb24b0fa9af9165dbbe2e4) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( tk2h2 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2j.23c", 0x00000, 0x80000, CRC(432a74ff) SHA1(5675970143134c0cc3ae4964a8817fafee7876fa) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( tk2h3 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2j2.23c", 0x00000, 0x80000, CRC(671b0c62) SHA1(7bba05e5e513edd878a30ef998b3beb4fd053cc6) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( tk2h4 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2h4.23", 0x000000, 0x80000, CRC(8fa725f0) SHA1(81c89f5bf1d180356a66d1cd216ea73c6e69f6df) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( tk2h5 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2h5_23c.8f", 0x000000, 0x80000, CRC(e1dd01d8) SHA1(2d243fa39c784ce5164c7a58ffd4884a60eac81c) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x480000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+ /// The load procedure for the chinese language is unknown
+ // These 2 roms have 0x10000 blank, then 0x9c00 data (chinese), then the remainder is blank
+ ROM_LOAD64_WORD( "tk2h5.gfx5", 0x400000, 0x10000, CRC(ec6e8689) SHA1(8e722292bfb5a4e8658bbd411a0ccce0956f9ad4))//, ROM_SKIP(1))// , ROM_GROUPWORD | ROM_SKIP(2) )
+ ROM_CONTINUE( 0x400000, 0x8000 )
+ ROM_CONTINUE( 0x400002, 0x8000 )
+ ROM_IGNORE(0x60000)
+ ROM_LOAD64_WORD( "tk2h5.gfx6", 0x400004, 0x10000, CRC(722787df) SHA1(31720e94195055a494bc923c75e20882b8b05f4a))//, ROM_SKIP(1))// , ROM_GROUPWORD | ROM_SKIP(2) )
+ ROM_CONTINUE( 0x400004, 0x8000 )
+ ROM_CONTINUE( 0x400006, 0x8000 )
+ ROM_IGNORE(0x60000)
+ //ROM_COPY( "gfx", 0x400000, 0x040000, 0x20000 ) // text on 3 intro screens
+ //ROM_COPY( "gfx", 0x400000, 0x380000, 0x20000 ) // text on actor descriptions
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( tk2h6 ) // same as tk2h1 except for first rom
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2h6.23", 0x000000, 0x80000, CRC(08631657) SHA1(2d2e0f302dbd64bb8a37577171e6e2194524abdf) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wofch.key", 0x000000, 0x000080, CRC(23f2d0bb) SHA1(48ba9300bc2136e9583754a51d5ab2532eca85c6) )
+ROM_END
+
+// same as tk2h1 except first rom
+ROM_START( tk2h7 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2h7.23", 0x000000, 0x80000, CRC(93347af2) SHA1(2b2f02e3529ebaa06ea55b5648aa988d0542f1c6) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+// same as tk2h1 except first rom
+ROM_START( tk2h8 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2h8.23", 0x000000, 0x80000, CRC(e5534d5a) SHA1(497abf790ad0450545f02a1614ef197492b71159) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+// same as tk2h1 except for the program roms
+ROM_START( tk2h9 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2h9.23", 0x000000, 0x80000, CRC(cfce0b11) SHA1(16f2376c8666cd48ea4b30711b0a3b1508a97482) )
+ ROM_LOAD16_WORD_SWAP( "tk2h9.22", 0x080000, 0x80000, CRC(ae09e457) SHA1(1feb645d2371b58613db8d2eb871448b4b20041d) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+// same as tk2h1 except first rom
+ROM_START( tk2h10 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2h10.23", 0x000000, 0x80000, CRC(6dba1d2f) SHA1(310e9472d4da8ed4bdccdcd52004030b8799693c) )
+ ROM_LOAD16_WORD_SWAP( "tk2h10.22", 0x080000, 0x80000, CRC(7630fd8a) SHA1(02c2164f191c2efb647b517ee2e8f46d870f9c93) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2(ch)_07.9a", 0x200004, 0x80000, CRC(cc9006c9) SHA1(cfcbec3a67052268a7739538aa28a6391fe5400e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+// same as tk2h1 except for the program roms
+ROM_START( tk2h11 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2h11.23", 0x000000, 0x80000, CRC(a6f22395) SHA1(d2d8a6156c44383c48e4caf97799e231158b7cf2) )
+ ROM_LOAD16_WORD_SWAP( "tk2h11.22", 0x080000, 0x80000, CRC(11bcbbb9) SHA1(bebef41b4ce27fef3f037d8188903334a41b35f4) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+// same as tk2h1 except for the program roms
+ROM_START( tk2h12 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2h12.23", 0x000000, 0x80000, CRC(6e392dd2) SHA1(b25f299dc7b8d87de1e42de97db04d3443eff167) )
+ ROM_LOAD16_WORD_SWAP( "tk2h12.22", 0x080000, 0x80000, CRC(838dff10) SHA1(56a9d5e2d9df843005f6bd0886f612a3c90b8e60) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+// same as tk2h1 except first rom
+ROM_START( tk2h13 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2h13.23", 0x000000, 0x80000, CRC(51979a5a) SHA1(9beaba7d06be4c2b893e6fd3a0dbc157537d9913) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+// same as tk2h1 except first rom
+ROM_START( tk2h14 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2h14.23", 0x000000, 0x80000, CRC(19f49030) SHA1(3e500db79361b747a75d7712f3367754ee8771c7) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( tk2h15 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2h15.23", 0x000000, 0x80000, CRC(6c1683ee) SHA1(f22df63cae994fca6955f72313dd204a4734aa94) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x0000, 0x0080, CRC(522c909c) SHA1(e0d40a36bec025402590caaffcbc4e718748348a) )
+ROM_END
+
+ROM_START( tk2h16 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2h16.23", 0x000000, 0x80000, CRC(86c23608) SHA1(0629d82779f6973514582e4a218f63429dccd080) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x0000, 0x0080, CRC(522c909c) SHA1(e0d40a36bec025402590caaffcbc4e718748348a) )
+ROM_END
+
+// same as tk2h1 except first rom
+ROM_START( tk2h17 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2h17.23", 0x000000, 0x80000, CRC(7df522ad) SHA1(dece17bd0c3a0a10bb3433fe878da4e66e84cc9f) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( tk2h18 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2h18.8f", 0x000000, 0x80000, CRC(7896998d) SHA1(7f59015ec00232f2b40836127f143415678f7058) )
+ ROM_LOAD16_WORD_SWAP( "tk2h18.7f", 0x080000, 0x80000, CRC(43e57b1a) SHA1(f7469eb77a74601f94488c23466a6648a91fcbfc) )
+ ROM_LOAD16_WORD_SWAP( "tk2h18.6f", 0x100000, 0x80000, CRC(7a5f60c0) SHA1(b4d864e39811d1407ce2ba9580bd1e230edf37ff) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2h18.7a", 0x200000, 0x80000, CRC(10d0e577) SHA1(fbf4f13a2fe64031dda5a27fdf6accfef12c1ce2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2h18.8a", 0x200002, 0x80000, CRC(e23dd70e) SHA1(58faf44c00667331c9f7980e803788e4deb1bc25) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2h18.9a", 0x200004, 0x80000, CRC(e1d7664e) SHA1(d8d6acf51f8beda71d1b8f5318cd02485bebf8b5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2h18.10a", 0x200006, 0x80000, CRC(c121ed0c) SHA1(4ad1f8f9684d5041f60a3eb9f5e9580b3daa403a) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( tk2p2 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2p2.23", 0x000000, 0x80000, CRC(898a4e67) SHA1(3f45cc2e15bd398bdc84303f6cde6322394f6456) )
+ ROM_LOAD16_WORD_SWAP( "tk2p2.22", 0x080000, 0x80000, CRC(e734ee51) SHA1(1dff1a6cccc1551a4489542ee1f5b38b2233349e) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2(ch)_07.9a", 0x200004, 0x80000, CRC(cc9006c9) SHA1(cfcbec3a67052268a7739538aa28a6391fe5400e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sk3p1.key", 0x000000, 0x000080, CRC(8ac48367) SHA1(aeeab2c3436009d05dd9caa1b1929af4d7e607ae) )
+ROM_END
+
+ROM_START( tk2p3 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2p3.8f", 0x000000, 0x80000, CRC(61cf24c1) SHA1(e075432449923e69310040a268f81b74c31f5bcc) )
+ ROM_LOAD16_WORD_SWAP( "tk2p3.7f", 0x080000, 0x80000, CRC(a3cd1c51) SHA1(459c90bea4045a8ad79a36529d169951ac802fc3) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2(ch)_07.9a", 0x200004, 0x80000, CRC(cc9006c9) SHA1(cfcbec3a67052268a7739538aa28a6391fe5400e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wofch.key", 0x000000, 0x000080, CRC(23f2d0bb) SHA1(48ba9300bc2136e9583754a51d5ab2532eca85c6) )
+ROM_END
+
+
+ROM_START( wofb )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "3-f2ab.040", 0x000000, 0x80000, CRC(61fd0a01) SHA1(a7b5bdddd7b31645e33314c1d3649e1506cecfea) )
+ ROM_LOAD16_BYTE( "1-9207.040", 0x000001, 0x80000, CRC(7f59e24c) SHA1(34c294328d00c65086622bd15e17210f07f37237) )
+ ROM_LOAD16_BYTE( "4-d4d2.010", 0x100000, 0x20000, CRC(fe5eee87) SHA1(be1230f64c1e59ae3ff3e58593070613966ac79d) )
+ ROM_LOAD16_BYTE( "2-6c41.010", 0x100001, 0x20000, CRC(739379be) SHA1(897f61527213902fda04bc28339f1f4278bf5ae9) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "5-caf3.040", 0x000000, 0x40000, CRC(c8dcaa95) SHA1(bcaeaefd40ffa1b32e80457cffcc1ceab461af1d), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000004, 0x40000 )
+ ROMX_LOAD( "6-034f.040", 0x000001, 0x40000, CRC(1ab0000c) SHA1(0d0004cc1725c38d140ecb8dc9666361b2d3e607), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000005, 0x40000 )
+ ROMX_LOAD( "7-b0fa.040", 0x000002, 0x40000, CRC(8425ff6b) SHA1(9a051089c2a492b8c63484582f95c578704b6820), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000006, 0x40000 )
+ ROMX_LOAD( "8-a6b7.040", 0x000003, 0x40000, CRC(24ce197b) SHA1(0ccdbd6f6a30e6d1479f8702c3e8561b16303550), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000007, 0x40000 )
+ ROMX_LOAD( "9-8a2c.040", 0x200000, 0x40000, CRC(9d20ef9b) SHA1(cbf3cb6bd7a73312e5061082554f2e17aae08621), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x200004, 0x40000 )
+ ROMX_LOAD( "10-7d24.040", 0x200001, 0x40000, CRC(90c93dd2) SHA1(d3d2b0bcbcbb21a41f986eb752ab114697eb9402), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x200005, 0x40000 )
+ ROMX_LOAD( "11-4171.040", 0x200002, 0x40000, CRC(219fd7e2) SHA1(af765eb7b275ed541c08e243b22b5c9f54c1a8ec), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x200006, 0x40000 )
+ ROMX_LOAD( "12-f56b.040", 0x200003, 0x40000, CRC(efc17c9a) SHA1(26429a9039bb249e17945508c16645c82f7f412a), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x200007, 0x40000 )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wofch.key", 0x000000, 0x000080, CRC(23f2d0bb) SHA1(48ba9300bc2136e9583754a51d5ab2532eca85c6) )
+ROM_END
+
+ROM_START( wofes )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "wofes.23", 0x000000, 0x80000, CRC(4935e2ce) SHA1(e6b6e6499738579b3c4f5dff44c8930257fe619b) )
+ ROM_LOAD16_WORD_SWAP( "tk2e_22b.rom", 0x080000, 0x80000, CRC(479b3f24) SHA1(9fb8ae06856fe115addfb6794c28978a4f6716ec) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-5m.7a", 0x200000, 0x80000, CRC(291f0f0b) SHA1(094baf0f960f25fc2525b3b1cc378a49d9a0955d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-7m.9a", 0x200002, 0x80000, CRC(3edeb949) SHA1(c155698dd9ee9eb24bbc97a21118ef2e897ea82f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-6m.8a", 0x200004, 0x80000, CRC(1abd14d6) SHA1(dffff3126f102b4ec028a81405fc5b9bd7bb65b3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-8m.10a", 0x200006, 0x80000, CRC(b27948e3) SHA1(870d5d23f56798831c641e877ea94217058b2ddc) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wofch.key", 0x000000, 0x000080, CRC(23f2d0bb) SHA1(48ba9300bc2136e9583754a51d5ab2532eca85c6) )
+ROM_END
+
+ROM_START( woffr )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2e_23bfr.rom", 0x000000, 0x80000, CRC(e006e81e) SHA1(dad6cd3a1175b6f366e8bf02d1af35af5f1b50cc) )
+ ROM_LOAD16_WORD_SWAP( "tk2e_22b.rom", 0x080000, 0x80000, CRC(479b3f24) SHA1(9fb8ae06856fe115addfb6794c28978a4f6716ec) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_gfx5fr.rom", 0x200000, 0x80000, CRC(1b6bc2b2) SHA1(3a5305d07271cffb9875fcbd2af52856a224548a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_gfx7fr.rom", 0x200002, 0x80000, CRC(3f1e5334) SHA1(a5c4795d65a916fc2d1a55153c4ca0ac5fbaf418) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_gfx6fr.rom", 0x200004, 0x80000, CRC(28c9d96f) SHA1(aa64a4572b10842b7f5f546e63493d501a16fd85) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_gfx8fr.rom", 0x200006, 0x80000, CRC(b3b9a29e) SHA1(fe425356545544a9cf50409972d2893999896191) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "sk3p1.key", 0x000000, 0x000080, CRC(8ac48367) SHA1(aeeab2c3436009d05dd9caa1b1929af4d7e607ae) )
+ROM_END
+
+ROM_START( wofr1h )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2e_23b.8f", 0x000000, 0x80000, CRC(0fc9e89c) SHA1(7e098ad77172a16dc234b144c98eb6be433df215) )
+ ROM_LOAD16_WORD_SWAP( "tk2e_22b.7f", 0x080000, 0x80000, CRC(e3f7cbf1) SHA1(f22d799d13eef6ef24db4689b7ddb1ce4eca505b) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-5m.7a", 0x200000, 0x80000, CRC(291f0f0b) SHA1(094baf0f960f25fc2525b3b1cc378a49d9a0955d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-7m.9a", 0x200002, 0x80000, CRC(3edeb949) SHA1(c155698dd9ee9eb24bbc97a21118ef2e897ea82f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-6m.8a", 0x200004, 0x80000, CRC(1abd14d6) SHA1(dffff3126f102b4ec028a81405fc5b9bd7bb65b3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-8m.10a", 0x200006, 0x80000, CRC(b27948e3) SHA1(870d5d23f56798831c641e877ea94217058b2ddc) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wofch.key", 0x000000, 0x000080, CRC(23f2d0bb) SHA1(48ba9300bc2136e9583754a51d5ab2532eca85c6) )
+ROM_END
+
+// This is a rom kit to convert SF2 to WOF. Demo sound doesn't work. You only get one life. To get in-game sound
+// you need to select MONO in the setup screen.
+ROM_START( wofsf2 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "wof_30.rom", 0x000000, 0x020000, CRC(15886428) SHA1(d528766346e52deb97b9f49f836064ab2891c6cd) )
+ ROM_LOAD16_BYTE( "wof_35.rom", 0x000001, 0x020000, CRC(2b9bd156) SHA1(ec12b4a5e0f257d852830a81d8a9ebe1aec12676) )
+ ROM_LOAD16_BYTE( "wof_31.rom", 0x040000, 0x020000, CRC(6dc0158b) SHA1(c148bea4b40b9a0c9bced022e42343973969cc20) )
+ ROM_LOAD16_BYTE( "wof_36.rom", 0x040001, 0x020000, CRC(8059bfaa) SHA1(64b81bd73ac908fe3d190593d3a274561c076708) )
+ ROM_LOAD16_BYTE( "wof_28.rom", 0x080000, 0x020000, CRC(ced09a8c) SHA1(9f4680aa702bbb435438dd09682008d1d8691763) )
+ ROM_LOAD16_BYTE( "wof_33.rom", 0x080001, 0x020000, CRC(2197546a) SHA1(0b47c97f6400bbf0ce44f44c611ce41030956bb1) )
+ ROM_LOAD16_BYTE( "wof_29.rom", 0x0c0000, 0x020000, CRC(8b9756cb) SHA1(28d86196640218d5a382421d109346ddf66f0cbf) )
+ ROM_LOAD16_BYTE( "wof_34.rom", 0x0c0001, 0x020000, CRC(80b129b4) SHA1(a7ef0160f2877e7ffb4b2ad74a80b2039fd7aa3d) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "wof_24.rom", 0x000000, 0x40000, CRC(4f5ac09b) SHA1(366c129f548cd2e7538e417e8e4cb95114c2b5d5) , ROM_SKIP(7) )
+ ROMX_LOAD( "wof_14.rom", 0x000001, 0x40000, CRC(b57ec247) SHA1(1b5716a00226aeb40f5a0259ed23b2d03e3c0cc0) , ROM_SKIP(7) )
+ ROMX_LOAD( "wof_26.rom", 0x000002, 0x40000, CRC(0b386f34) SHA1(828072969a2323aa57c51dac70a546029c48a96d) , ROM_SKIP(7) )
+ ROMX_LOAD( "wof_16.rom", 0x000003, 0x40000, CRC(e82ae539) SHA1(84d250a45b84a47ccc2e37438fb798fe034d4cd7) , ROM_SKIP(7) )
+ ROMX_LOAD( "wof_20.rom", 0x000004, 0x40000, CRC(81b9fb7a) SHA1(f248295c96b3debe27d418f47795359197df7238) , ROM_SKIP(7) )
+ ROMX_LOAD( "wof_10.rom", 0x000005, 0x40000, CRC(3ffbcb13) SHA1(cefb95ceaa9690a41186f6a5b88b89ed515f5f87) , ROM_SKIP(7) )
+ ROMX_LOAD( "wof_22.rom", 0x000006, 0x40000, CRC(cf2716d2) SHA1(74d74feee26c6bea0b09c4b7f91787bc2a38ef0d) , ROM_SKIP(7) )
+ ROMX_LOAD( "wof_12.rom", 0x000007, 0x40000, CRC(526d7a5b) SHA1(5a88173bba196ad79bf543b53772e1b4e49dedbc) , ROM_SKIP(7) )
+ ROMX_LOAD( "wof_25.rom", 0x200000, 0x40000, CRC(05bedaa0) SHA1(018c9ce5c36fd9a6f0c6331945449a95d72323f6) , ROM_SKIP(7) )
+ ROMX_LOAD( "wof_15.rom", 0x200001, 0x40000, CRC(2b19f8b8) SHA1(781faab68c330bfa17d04864c0611e6a3b1e571f) , ROM_SKIP(7) )
+ ROMX_LOAD( "wof_27.rom", 0x200002, 0x40000, CRC(cfef8c53) SHA1(ab6843ae95243c1fb81259f17681bfd30dff8d57) , ROM_SKIP(7) )
+ ROMX_LOAD( "wof_17.rom", 0x200003, 0x40000, CRC(1fb396cf) SHA1(1c09959d6a9f12037d0a8f87d5820c5e53412188) , ROM_SKIP(7) )
+ ROMX_LOAD( "wof_21.rom", 0x200004, 0x40000, CRC(8b484bc0) SHA1(393ea4b99ae1b0ed5c63e4ca7d2d6b504cf7da7e) , ROM_SKIP(7) )
+ ROMX_LOAD( "wof_11.rom", 0x200005, 0x40000, CRC(2bed2edc) SHA1(ac04e8713816dfd865ca0d54f9bf3c1891f4add3) , ROM_SKIP(7) )
+ ROMX_LOAD( "wof_23.rom", 0x200006, 0x40000, CRC(8afed1f9) SHA1(3a973e58a47558ec48e1fafb096c43dfaa247b58) , ROM_SKIP(7) )
+ ROMX_LOAD( "wof_13.rom", 0x200007, 0x40000, CRC(84030abe) SHA1(d67ed207a06c5a0b1db7f0b6da3088b3e45f23a4) , ROM_SKIP(7) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 )
+ ROM_LOAD( "3js_09.rom", 0x00000, 0x08000, CRC(21ce044c) SHA1(425fd8d33d54f35ef90d68a7530db7a0eafb600d) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "3js_18.rom", 0x000000, 0x20000, CRC(ac6e307d) SHA1(b490ce625bb7ce0904b0fd121fbfbd5252790f7a) )
+ ROM_LOAD( "3js_19.rom", 0x020000, 0x20000, CRC(068741db) SHA1(ab48aff639a7ac218b7d5304145e10e92d61fd9f) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wofsf2.key", 0x000000, 0x000080, CRC(e4071226) SHA1(a7930d4b069f9d0e6e8510ef394066af5ade6974) )
+ROM_END
+
+// same as wofu except first rom
+ROM_START( wofud )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "wofud.23", 0x000000, 0x80000, CRC(9bab998f) SHA1(6afe212d7816bde23aecb92f57d075c3e411d4c6) )
+ ROM_LOAD16_WORD_SWAP( "tk2u_22c.7f", 0x080000, 0x80000, CRC(f5af4774) SHA1(f6d53cf5b330e6d68f84da3e8c831a475585b93e) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-5m.7a", 0x200000, 0x80000, CRC(291f0f0b) SHA1(094baf0f960f25fc2525b3b1cc378a49d9a0955d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-7m.9a", 0x200002, 0x80000, CRC(3edeb949) SHA1(c155698dd9ee9eb24bbc97a21118ef2e897ea82f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-6m.8a", 0x200004, 0x80000, CRC(1abd14d6) SHA1(dffff3126f102b4ec028a81405fc5b9bd7bb65b3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-8m.10a", 0x200006, 0x80000, CRC(b27948e3) SHA1(870d5d23f56798831c641e877ea94217058b2ddc) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD ( "wofch.key", 0x000000, 0x000080, CRC(23f2d0bb) SHA1(48ba9300bc2136e9583754a51d5ab2532eca85c6) )
+ROM_END
+
+
+
+/***************************************************************************
+
+ Driver Macros for HBMAME
+
+***************************************************************************/
+
+GAME( 1991, 3wondrud, 3wonders, cps1_10MHz, 3wonders, cps_state, cps1, ROT0, "hack", "Three Wonders (US 910520 Phoenix Edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, captcocc, captcomm, cps1_10MHz, captcomm, cps_state, cps1, ROT0, "Pipi899", "Captain Commando (OTHER COUNTRY 911014)(Characters Change hack by Pipi899 2009-01-20)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1991, captcomc, captcomm, cps1_10MHz, captcomm, cps_state, cps1, ROT0, "hack", "Captain Commando (Chinese 911202)", MACHINE_SUPPORTS_SAVE ) // "OTHER COUNTRY"
+GAME( 1991, captcomh, captcomm, cps1_10MHz, captcomm, cps_state, cps1, ROT0, "Capcom", "Captain Commando (Shinwa Hack, World 911014)" , MACHINE_SUPPORTS_SAVE )
+GAME( 1991, captcoud, captcomm, cps1_10MHz, captcomm, cps_state, cps1, ROT0, "hack", "Captain Commando (US 910928 Phoenix Edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, captcovs, captcomm, cps1_10MHz, captcomm, cps_state, cps1, ROT0, "Pipi899", "Captain Commando (1vs4 hack by Pipi899, cheat by sssskkkk 2009-04-25)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 2000, cps1demo, 0, cps1frog, cps1frog, cps_state, cps1, ROT0, "Charles Doty", "Demo - CPS1", MACHINE_SUPPORTS_SAVE ) // no sound
+GAME( 2006, cps1frog, 0, cps1frog, cps1frog, cps_state, cps1, ROT0, "Rastersoft", "Frog Feast (CPS1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2012, cps1tests, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "Cal2", "CPS1 Diagnostic (for sf2ce 2012-10-30)", MACHINE_SUPPORTS_SAVE )
+GAME( 2012, cps1testsa, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "Cal2", "CPS1 Diagnostic (for sf2ce 2012-10-29)", MACHINE_SUPPORTS_SAVE )
+GAME( 2012, cps1testm, megaman, cps1_12MHz, megaman, cps_state, cps1, ROT0, "Cal2", "CPS1 Diagnostic (for megaman 2012-10-30)", MACHINE_SUPPORTS_SAVE )
+GAME( 2012, cps1testma, megaman, cps1_12MHz, megaman, cps_state, cps1, ROT0, "Cal2", "CPS1 Diagnostic (for megaman 2012-10-29)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, daimakb, ghouls, daimakb, daimakai, cps_state, cps1, ROT0, "hack", "Dai Makai-Mura (Japan, bootleg)" , MACHINE_SUPPORTS_SAVE )
+GAME( 2008, dino08h2, dino, qsound, dino, cps_state, dino, ROT0, "Pipi899", "Cadillacs and Dinosaurs (Enhanced Revision 2008 set 3 v2.0f by Pipi899 2008-10-17)", MACHINE_SUPPORTS_SAVE )
+GAME( 2008, dino08h3, dino, qsound, dino, cps_state, dino, ROT0, "Pipi899", "Cadillacs and Dinosaurs (Enhanced Revision 2008 set 1 v1.1 by Pipi899 2008-10-11)", MACHINE_SUPPORTS_SAVE )
+GAME( 2008, dino08hp, dino, qsound, dino, cps_state, dino, ROT0, "Pipi899", "Cadillacs and Dinosaurs (Enhanced Revision 2008 set 2 v1.1f by Pipi899 2008-10-17)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, dinob, dino, qsound, dino, cps_state, dinohb, ROT0, "hack", "Cadillacs and Dinosaurs (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, dinobt, dino, qsound, dino, cps_state, dino, ROT0, "hack", "Cadillacs and Dinosaurs (BT hack version)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, dinobtpp, dino, qsound, dino, cps_state, dino, ROT0, "Pipi899", "Cadillacs and Dinosaurs (BT Power hack by Pipi899 2009-01-15)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, dinocgba, dino, qsound, dino, cps_state, dino, ROT0, "Pipi899", "Cadillacs and Dinosaurs (Cngba hack Version set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, dinocgbb, dino, qsound, dino, cps_state, dino, ROT0, "Pipi899", "Cadillacs and Dinosaurs (Cngba hack Version set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, dinocgbc, dino, qsound, dino, cps_state, dino, ROT0, "Pipi899", "Cadillacs and Dinosaurs (Cngba hack Version set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, dinoeh, dino, qsound, dinohz, cps_state, dinoeh, ROT0, "hack", "Cadillacs and Dinosaurs (unknown hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, dinoex, dino, qsound, dinohz, cps_state, dinoeh, ROT0, "hack", "Cadillacs and Dinosaurs (unknown hack2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, dinoh, dino, qsound, dinohz, cps_state, dinoh, ROT0, "hack", "Cadillacs and Dinosaurs (hack set 1)" , MACHINE_SUPPORTS_SAVE )
+GAME( 1997, dinoha, dino, qsound, dinohz, cps_state, dinoh, ROT0, "hack", "Cadillacs and Dinosaurs (hack set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, dinohb, dino, qsound, dinohz, cps_state, dinohb, ROT0, "hack", "Cadillacs and Dinosaurs (hack set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, dinohp, dino, qsound, dino, cps_state, dino, ROT0, "Pipi899", "Cadillacs and Dinosaurs (Hack by Pipi899 set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, dinohx, dino, qsound, dinohz, cps_state, dinoh, ROT0, "Winuxx", "Cadillacs and Dinosaurs (Revised hack by Winuxx)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 2010, dinojp, dino, qsound, dino, cps_state, dino, ROT0, "Pipi899", "Cadillacs Kyouryuu-Shinseiki Plus (2010-02-10)", MACHINE_SUPPORTS_SAVE )
+GAME( 2008, dinorp, dino, qsound, dino, cps_state, dino, ROT0, "Pipi899", "Cadillacs and Dinosaurs (Hack by Pipi899 set 2 2008-08-05)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, dinosf2, dino, wofsf2, dino, cps_state, dinohunt, ROT0, "Arcadefixer", "Cadillacs and Dinosaurs (sf2 conversion)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1993, dinoslice, dino, qsound, dino, cps_state, dino, ROT0, "hack", "Cadillacs and Dinosaurs (hack set 4)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, dinouphp, dino, qsound, dino, cps_state, dino, ROT0, "Pipi899", "Cadillacs and Dinosaurs (Up Version hack by Pipi899 2009-01-15)", MACHINE_SUPPORTS_SAVE )
+GAME( 2012, dinoz, dino, qsound, dinohz, cps_state, dinoz, ROT0, "hack", "Cadillacs and Dinosaurs Z (Boss Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, ffightb, ffight, cps1_10MHz, ffight, cps_state, cps1, ROT0, "hack", "Final Fight (Boss Hack dumped by Bonky0013, modified by MPT)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, knight21, knights, cps1_10MHz, knights, cps_state, cps1, ROT0, "hack", "Knights of the Round (Japan, debug bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, knightsa, knights, cps1_10MHz, knights, cps_state, cps1, ROT0, "LB70", "Knights of the Round (AngryUpdate By EEZEZY(LB70))", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1991, knightsb2, knights, cps1_10MHz, knights, cps_state, cps1, ROT0, "hack", "Knights of the Round (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, knightsh, knights, cps1_10MHz, knightsh, cps_state, cps1, ROT0, "hack", "Knights of the Round (hack)" , MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1991, knightsha, knights, cps1_10MHz, knightsh, cps_state, cps1, ROT0, "hack", "Knights of the Round (Hack set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, knightsjb, knights, cps1_10MHz, knights, cps_state, cps1, ROT0, "hack", "Knights of the Round (Japan, bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 2015, knightsro, knights, cps1_10MHz, knights, cps_state, cps1, ROT0, "Sebastian Mihai", "Knights of the Round (Romanian)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, knightud, knights, cps1_10MHz, knights, cps_state, cps1, ROT0, "hack", "Knights of the Round (US 911127 Phoenix Edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kodd, kod, cps1_10MHz, kod, cps_state, cps1, ROT0, "hack", "The King of Dragons (World 910711 Phoenix Edition)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kodh, kod, cps1_10MHz, kodh, cps_state, cps1, ROT0, "Wangy2", "The King of Dragons (ETC 910711 hack)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kodsp, kod, cps1_10MHz, kod, cps_state, cps1, ROT0, "Bonusjz", "The King of Dragons (Remix Special hack by Bonusjz)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kodud, kod, cps1_10MHz, kod, cps_state, cps1, ROT0, "hack", "The King of Dragons (US 910910 Phoenix Edition (16b/40p))", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1994, pnicku, pnickj, cps1_10MHz, pnicku, cps_state, cps1, ROT0, "Capcom", "Pnickies (USA 940608)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, punisherb, punisher, qsound, punisher, cps_state, punisherb,ROT0, "hack", "The Punisher (Bootleg)", MACHINE_SUPPORTS_SAVE)
+GAME( 2007, punisherf, punisher, qsound, punisher, cps_state, punisherb,ROT0, "Zhyxxxx", "The Punisher (Flash version) 2007-09-24", MACHINE_SUPPORTS_SAVE)
+GAME( 2009, punisherje1, punisher, qsound, punisher, cps_state, punisher, ROT0, "Zhyxxxx", "The Punisher (SM Experience Edition hack by Zhyxxxx set 1 2009-06-12)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, punisherjh, punisher, qsound, punisher, cps_state, punisher, ROT0, "hack", "The Punisher (Shinwa Hack, Japan 930422)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, punisherjh1, punisher, qsound, punisher, cps_state, punisher, ROT0, "Zhyxxxx", "The Punisher (SQ Unlimited Version hack by Zhyxxxx 2009-06-08)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, punisherjha, punisher, qsound, punisher, cps_state, punisher, ROT0, "Zhyxxxx", "The Punisher (930422 Japan, SM Experience Edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, punisherud1, punisher, qsound, punisher, cps_state, punisher, ROT0, "hack", "The Punisher (US 930422 Phoenix Edition (8b/32p))", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, punisherud2, punisher, qsound, punisher, cps_state, punisher, ROT0, "hack", "The Punisher (US 930422 Phoenix Edition (16b/40p))", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, sf2bhj, sf2, cps1_10MHz, sf2j, cps_state, cps1, ROT0, "hack", "Street Fighter II: The World Warrior (Boss hack by Yumeji)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, sf2c, sf2, cps1_10MHz, sf2j, cps_state, cps1, ROT0, "hack", "Street Fighter II: The World Warrior (Chinese 911210)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, sf2cebr, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "Neogeo BR team", "Street Fighter II': Champion Edition (Brasil 920313)", MACHINE_SUPPORTS_SAVE )
+GAME( 2012, sf2ced, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "Drakon", "Street Fighter II': Champion Edition (Sheng Long Hack v7.1)", MACHINE_SUPPORTS_SAVE ) // "ETC"
+GAME( 2012, sf2ceda, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "Drakon", "Street Fighter II': Champion Edition (Hack)", MACHINE_SUPPORTS_SAVE ) // "ETC"
+GAME( 1999, sf2ceh, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "hack", "Street Fighter II': Champion Edition (Hispanic 990804)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, sf2cehk, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "Kawada7278", "Street Fighter II': Champion Edition (Hack Unknown by Kawada7278)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, sf2cehp, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "Pipi899", "Street Fighter II': Champion Edition (Moves hack by Pipi899 2009-01-10)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, sf2cejem, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "Blackheart", "Street Fighter II': Champion Edition (Easy Moves hack by Blackheart 2009-07-30)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, sf2jbh, sf2, cps1_10MHz, sf2j, cps_state, cps1, ROT0, "Yumeji", "Street Fighter II: The World Warrior (Japan 910522 Boss Hack 2014 Edition by Yumeji)", MACHINE_SUPPORTS_SAVE )
+GAME( 2013, sf2koryuh, sf2ce, cps1_12MHz, sf2hack, cps_state, cps1, ROT0, "TT", "Street Fighter II': Champion Edition (Hack by TT)", MACHINE_SUPPORTS_SAVE ) // 811102 !!! - based on World version
+GAME( 1992, sf2h9, sf2ce, cps1_12MHz, sf2, cps_state, sf2h9, ROT0, "Mega Co", "Street Fighter II: Champion Edition (H9, bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, sf2h10, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "hack", "Street Fighter II': Champion Edition (H10, bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, sf2h11, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "hack", "Street Fighter II': Champion Edition (H11, bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, sf2h12, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "hack", "Street Fighter II': Champion Edition (H12, bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, sf2h13, sf2ce, cps1_12MHz, sf2j, cps_state, sf2h13, ROT0, "hack", "Street Fighter II' Turbo: Hyper Fighting (H13, bootleg)", MACHINE_SUPPORTS_SAVE ) // bad tile for Blanka on player select screen
+GAME( 2012, sf2pun, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "Drakon", "Street Fighter II': Champion Edition (Punishment Edition v1 Final)", MACHINE_SUPPORTS_SAVE )
+GAME( 2013, sf2sl73a, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "Drakon", "Street Fighter II': Champion Edition (Sheng Long v7.3a)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, sf2th, sf2ce, cps1_12MHz, sf2hack, cps_state, sf2hack, ROT0, "hack", "Street Fighter II': Champion Edition (Turbo set 1, bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, sf2tha, sf2ce, cps1_12MHz, sf2hack, cps_state, sf2hack, ROT0, "hack", "Street Fighter II': Champion Edition (Turbo set 2, bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, sf2tlona, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "Tu Long", "Street Fighter II': Champion Edition (Slay the Dragon set 1)", MACHINE_SUPPORTS_SAVE ) // These 2 are Chinese bootlegs
+GAME( 1992, sf2tlonb, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "Tu Long", "Street Fighter II': Champion Edition (Slay the Dragon set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, sf2tlonc, sf2ce, cps1_12MHz, sf2hack, cps_state, sf2hack, ROT0, "Tu Long", "Street Fighter II': Champion Edition (Slay the Dragon set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, sf2turyu, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "hack", "Street Fighter II: Champion Edition (Tu Long prototype)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, sf2yyc3d5, sf2ce, cps1_12MHz, sf2hack, cps_state, sf2hack, ROT0, "hack", "Street Fighter II': Champion Edition (YYC, 3D5, bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, sf2yyc3g, sf2ce, cps1_12MHz, sf2hack, cps_state, sf2hack, ROT0, "hack", "Street Fighter II': Champion Edition (YYC, 3G, bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, sf2yyc6, sf2ce, cps1_12MHz, sf2hack, cps_state, sf2hack, ROT0, "hack", "Street Fighter II': Champion Edition (YYC, 6, bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, sk2h1, wof, sk2h3, sk2h1, cps_state, sk2h1, ROT0, "All-In Co Ltd", "Sangokushi II (Asia 921005) (set H1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, sk2h1q, wof, sk2h1q, sk2h1, cps_state, sk2h1q, ROT0, "All-In Co Ltd", "Sangokushi II (Asia 921005) (set H1Q)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, sk2h2, wof, sk2h3, sk2h1, cps_state, sk2h1, ROT0, "All-In Co Ltd", "Sangokushi II (Asia 921005) (set H2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, sk2h2q, wof, sk2h1q, sk2h1, cps_state, sk2h1q, ROT0, "All-In Co Ltd", "Sangokushi II (Asia 921005) (set H2Q)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, sk2h3, wof, sk2h3, sk2h3, cps_state, sk2h3, ROT0, "All-In Co Ltd", "Sangokushi II (Asia 921005) (set H3)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, sk2h4q, wof, sk2h1q, sk2h1, cps_state, sk2h1q, ROT0, "All-In Co Ltd", "Sangokushi II (Asia 921005) (set H4Q)(Chinese hack v2.0)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 2009, sk2h5q, wof, sk2h1q, sk2h1, cps_state, sk2h1q, ROT0, "Winuxx", "Sangokushi II (Asia 921005) (set H5Q)(Revised Version hack by Winuxx 2009-09-09)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, sk2h6q, wof, sk2h1q, sk2h1, cps_state, sk2h1q, ROT0, "Winuxx", "Sangokushi II (Asia 921005) (set H6Q)(Boss hack by Winuxx)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1992, sk2h11, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Sangokushi II (Asia 921005) (set H11)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, sk2h12, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Sangokushi II (Asia 921005) (set H12)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, sk2h13, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Sangokushi II (Asia 921005) (set H13)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, sk2h14, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Sangokushi II (Asia 921005) (set H14)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, sk2h15, wof, qsound, wof, cps_state, wof, ROT0, "Pipi899", "Sangokushi II (Hack by Pipi899 2009-01-02)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, sk2h16, wof, qsound, wof, cps_state, wof, ROT0, "Pipi899", "Sangokushi II (Easy Moves hack by Pipi899 2009-01-12)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, sk2h21, wof, qsound, sk2h21, cps_state, sk2h21, ROT0, "hack", "Sangokushi II (Asia 921005) (set H21)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, sk2h22, wof, sk2h3, sk2h21, cps_state, sk2h22, ROT0, "hack", "San Jian Sheng (Chinese bootleg of Sangokushi II, set H22)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1997, sk2h31, wof, sk2h31, sk2h31, cps_state, sk2h22, ROT0, "Gen Gan San Go", "Sangokushi II (Asia 921005) (set H31)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1997, sk2h31q, wof, sk2h31q, sk2h31, cps_state, sk2h31, ROT0, "Gen Gan San Go", "Sangokushi II (Asia 921005) (set H31Q)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1997, sk2h32, wof, sk2h31, sk2h31, cps_state, sk2h22, ROT0, "Gen Gan San Go", "Sangokushi II (Asia 921005) (set H32)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1997, sk2h32q, wof, sk2h31q, sk2h31, cps_state, sk2h31, ROT0, "Gen Gan San Go", "Sangokushi II (Asia 921005) (set H32Q)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1995, sk2h33, wof, sk2h31, sk2h31, cps_state, sk2h22, ROT0, "Gen Gan San Go", "Sangokushi II (Asia 921005) (set H33)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1995, sk2h33q, wof, sk2h31q, sk2h31, cps_state, sk2h31, ROT0, "Gen Gan San Go", "Sangokushi II (Asia 921005) (set H33Q)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1995, sk2h34, wof, sk2h31, sk2h31, cps_state, sk2h22, ROT0, "Gen Gan San Go", "Sangokushi II (Asia 921005) (set H34)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1995, sk2h34q, wof, sk2h31q, sk2h31, cps_state, sk2h31, ROT0, "Gen Gan San Go", "Sangokushi II (Asia 921005) (set H34Q)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1995, sk2h35, wof, sk2h35, wof, cps_state, sk2h35, ROT0, "Gen Gan San Go", "Sangokushi II (Asia 921005) (set H35)", MACHINE_SUPPORTS_SAVE )
+GAME( 2010, sk3p1, wofch, qsound, wofch, cps_state, wof, ROT0, "hack", "Sangokushi 3 Gaiden Kakou-on's Revenge DX (red)", MACHINE_SUPPORTS_SAVE )
+GAME( 2010, sk3p2, wofch, qsound, wofch, cps_state, wof, ROT0, "hack", "Sangokushi 3 Gaiden Kakou-on's Revenge DX (green set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2010, sk3p3, wofch, qsound, wofch, cps_state, wof, ROT0, "hack", "Sangokushi 3 Gaiden Kakou-on's Revenge DX (green set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, slammastud, slammast, qsound, slammast, cps_state, slammast, ROT0, "hack", "Saturday Night Slam Masters (USA 930713 Phoenix Edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, stridergf, strider, cps1_10MHz, stridrua, cps_state, cps1, ROT0, "Willkaotix", "Strider (Gfx fix)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, stridergh, strider, cps1_10MHz, stridrua, cps_state, cps1, ROT0, "Willkaotix", "Strider (gfx fix, uncensored)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, tk2c1, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II (Chinese hack: Boss Enhanced)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, tk2c2, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II (Chinese hack: Zhang Fei Enhanced)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, tk2c3, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II (Chinese hack: Cao Zhi Jian Enhanced)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, tk2c4, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II (Chinese hack: Di Yu Enhanced)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, tk2c5, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II (Chinese hack: Di Yi Guan Enhanced)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, tk2c6, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II (Chinese hack: Fen Hong Enhanced)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, tk2c7, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II (Chinese hack: Guan Yu Chi Tu Ma Enhanced)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, tk2c8, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II (Chinese hack: Guan Yu Enhanced Enhanced)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, tk2c9, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II (Chinese hack: Han Guang Zhan Enhanced)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, tk2c10, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II (Chinese hack: Huang Zhong Enhanced)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, tk2c11, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II (Chinese hack: Xue Xing Enhanced)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, tk2c12, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II (Chinese hack: Jian Qi Zong Heng Enhanced)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, tk2c13, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II (Chinese hack: Mei ren Guan Enhanced)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, tk2c14, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II (Chinese hack: Shen Bing Li Qi Enhanced)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, tk2c15, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II (Chinese hack: Shen Jian + Jian Qi Enhanced)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, tk2c16, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II (Chinese hack: Shao Zhu Enhanced)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, tk2c17, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II (Chinese hack: Yu Jian Shu Enhanced)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, tk2c18, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II (Chinese hack: Ying Xiong Guan Enhanced)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, tk2c19, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II (Chinese hack: Zhao Huan Shou Enhanced)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, tk2c20, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II (Chinese hack: Zhao Huan Shou + Yu Jian Shu Enhanced)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, tk2c21, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II (Chinese hack: Zhao Yun Lian Ti Enhanced)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, tk2c22, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II (Chinese hack: Zhao Yun Sheng Long Enhanced)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, tk2c23, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II (Chinese hack: Zhao Yun Bao Li Enhanced)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, tk2h1, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II (Japan 921031) (Hack set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, tk2h2, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II (Japan 921031) (Hack set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, tk2h3, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II (Japan 921031) (Hack set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, tk2h4, wof, qsound, wof, cps_state, wof, ROT0, "Shinwa", "Tenchi wo Kurau II (Hack by Shinwa)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, tk2h5, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II (Japan 921031) (Chinese)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1992, tk2h6, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II (Japan 921031 Phoenix Edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, tk2h7, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II (Hack by Pipi899 2009-01-02)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, tk2h8, wof, qsound, wof, cps_state, wof, ROT0, "Winuxx, Blackheart", "Tenchi wo Kurau II (Heaven and Earth Double Attack Test Version hack by Winuxx, Blackheart 2009-12-14)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, tk2h9, wof, qsound, wof, cps_state, wof, ROT0, "Pipi899", "Tenchi wo Kurau II (Easy Moves hack by Pipi899 2009-01-12)", MACHINE_SUPPORTS_SAVE )
+GAME( 2013, tk2h10, wof, qsound, wof, cps_state, wof, ROT0, "AXDX", "Tenchi wo Kurau 2 (Japan 921031)", MACHINE_SUPPORTS_SAVE )
+GAME( 2010, tk2h11, wof, qsound, wof, cps_state, wof, ROT0, "Pipi899", "Tenchi wo Kurau II (Modified SubVersion hack by Pipi899 2010-01-26)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, tk2h12, wof, qsound, wof, cps_state, wof, ROT0, "Rockywall", "Tenchi wo Kurau II (Playstation Version hack by Rockywall 2009-12-09)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, tk2h13, wof, qsound, wof, cps_state, wof, ROT0, "Blacheart", "Tenchi wo Kurau II (Revised Alternate hack by Blackheart 2009-12-17)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, tk2h14, wof, qsound, wof, cps_state, wof, ROT0, "LB70", "Tenchi wo Kurau II (Revised Version hack by Lb70 2009-03-21)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, tk2h15, wof, qsound, wof, cps_state, wof, ROT0, "Shinwa", "Tenchi wo Kurau II (Revised beta hack by Shinwa)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1992, tk2h16, wof, qsound, wof, cps_state, wof, ROT0, "Shinwa", "Tenchi wo Kurau II (Revised v1.0 hack by Shinwa)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 2009, tk2h17, wof, qsound, wof, cps_state, wof, ROT0, "Blackheart", "Tenchi wo Kurau II (Zhao Chain Revised v1.0 hack by Blackheart 2009-12-16)", MACHINE_SUPPORTS_SAVE )
+GAME( 2012, tk2h18, wof, qsound, wof, cps_state, wof, ROT0, "Zero", "Tenchi wo Kurau II (Power edition)(Japan 921031)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, tk2p2, wofch, qsound, wofch, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II: Sekiheki no Tatakai (CPS Changer, Japan 921031) (Set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2010, tk2p3, wofch, qsound, wofch, cps_state, wof, ROT0, "Pipi899", "Tenchi Wo Kurau II (CPS Changer, Super Jian Huang hack by Pipi899 2010-01-29)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, wofb, wof, qsound, wof, cps_state, wofb, ROT0, "hack", "Warriors of Fate (ETC 921002) (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, wofes, wof, qsound, wof, cps_state, wof, ROT0, "Chaihe", "Warriors of Fate (Enhanced Super Version hack by Chaihe)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, woffr, wof, qsound, wof, cps_state, wof, ROT0, "Arkatrad", "Warriors of Fate (France 030728)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, wofr1h, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Warriors of Fate (ETC 921002) hack", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, wofsf2, wof, wofsf2, wof, cps_state, cps1, ROT0, "hack", "Warriors of Fate (conversion for SF2 HW) (ETC 921031)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, wofud, wof, qsound, wof, cps_state, wof, ROT0, "hack", "Warriors of Fate (USA 921031 Phoenix Edition)", MACHINE_SUPPORTS_SAVE )
+
+/*************************************************************************************************************************/
+
+
+/***************************************************************************
+
+ Driver initialisation
+
+***************************************************************************/
+
+
+DRIVER_INIT_MEMBER( cps_state, dinoeh )
+{
+ machine().device("maincpu")->memory().space(AS_PROGRAM).install_write_handler(0x800180, 0x800181, write16_delegate(FUNC(cps_state::dinoh_sound_command_w),this));
+ kabuki_setup(dino_decode);
+ DRIVER_INIT_CALL(cps1);
+}
+
+DRIVER_INIT_MEMBER( cps_state, dinoh )
+{
+ /* Patch out Q-Sound test */
+ uint16_t *rom = (uint16_t *)memregion("maincpu")->base();
+ rom[0xaacf4/2] = 0x4e71;
+ DRIVER_INIT_CALL(dinoeh);
+}
+
+DRIVER_INIT_MEMBER( cps_state, dinoz )
+{
+ uint16_t *rom = (uint16_t *)memregion("maincpu")->base();
+ rom[0xaaa82/2] = 0x4e71; // Patch out Q-Sound test
+ rom[0x1cfb4/2] = 0x4e71; // patch out invalid instruction
+ DRIVER_INIT_CALL(dinoeh);
+}
+
+DRIVER_INIT_MEMBER( cps_state, dinohb )
+{
+ uint8_t *mem8 = memregion("maincpu")->base();
+ // Fix draw scroll
+// mem8[0x006c2] = 0xC0;
+// mem8[0x006c3] = 0xFF;
+ // Fix gfx
+ mem8[0x472] = 0xFC;
+ mem8[0x473] = 0x33;
+ mem8[0x474] = 0x0;
+ mem8[0x475] = 0x90;
+ mem8[0x476] = 0x80;
+ mem8[0x478] = 0x0;
+ mem8[0x479] = 0x1;
+ mem8[0x47A] = 0xFC;
+ mem8[0x47B] = 0x33;
+ mem8[0x47C] = 0x80;
+ mem8[0x47D] = 0x90;
+ mem8[0x47E] = 0x80;
+ mem8[0x480] = 0x2;
+ mem8[0x481] = 0x1;
+ mem8[0x482] = 0xFC;
+ mem8[0x483] = 0x33;
+ mem8[0x484] = 0xC0;
+ mem8[0x485] = 0x90;
+ mem8[0x486] = 0x80;
+ mem8[0x487] = 0x0;
+ mem8[0x488] = 0x4;
+ mem8[0x489] = 0x1;
+ mem8[0x48A] = 0xFC;
+ mem8[0x48B] = 0x33;
+ mem8[0x48C] = 0x0;
+ mem8[0x48D] = 0x91;
+ mem8[0x48E] = 0x80;
+ mem8[0x48F] = 0x0;
+ mem8[0x490] = 0x6;
+ mem8[0x491] = 0x1;
+ mem8[0x006cc] = 0x80;
+ mem8[0x006cd] = 0x00;
+ mem8[0x006ce] = 0x0C;
+ mem8[0x006cf] = 0x01;
+ mem8[0x006de] = 0x80;
+ mem8[0x006df] = 0x00;
+ mem8[0x006e0] = 0x10;
+ mem8[0x006e1] = 0x01;
+ mem8[0x006f0] = 0x80;
+ mem8[0x006f1] = 0x00;
+ mem8[0x006f2] = 0x14;
+ mem8[0x006f3] = 0x01;
+ mem8[0x00704] = 0x80;
+ mem8[0x00705] = 0x00;
+ mem8[0x00706] = 0x0E;
+ mem8[0x00707] = 0x01;
+ mem8[0x00718] = 0x80;
+ mem8[0x00719] = 0x00;
+ mem8[0x0071a] = 0x12;
+ mem8[0x0071b] = 0x01;
+ mem8[0x0072c] = 0x80;
+ mem8[0x0072d] = 0x00;
+ mem8[0x0072e] = 0x16;
+ mem8[0x0072f] = 0x01;
+ // Fix screen transitions
+ mem8[0x00b28] = 0x00;
+ mem8[0x00b29] = 0x70;
+ mem8[0x00b2a] = 0x00;
+ mem8[0x00b2b] = 0x72;
+ mem8[0x00b2c] = 0x3C;
+ mem8[0x00b2d] = 0x34;
+ mem8[0x00b32] = 0xC1;
+ mem8[0x00b33] = 0x20;
+ // Fix sound
+ mem8[0x00666] = 0xF1;
+ mem8[0x00667] = 0x00;
+ mem8[0x00668] = 0x02;
+ mem8[0x00669] = 0x80;
+ mem8[0xaaa6c] = 0xD8;
+ mem8[0xaaa6d] = 0x00;
+
+ kabuki_setup(dino_decode);
+ DRIVER_INIT_CALL(cps1);
+}
+
+DRIVER_INIT_MEMBER( cps_state, punisherb )
+{
+ // note: bytes are swapped around compared to rom_fill.
+ uint8_t *mem8 = memregion("maincpu")->base();
+ // Use standard ports
+ mem8[0xAB3] = 0x33;
+ mem8[0xAB4] = 0x30;
+ mem8[0xAB6] = 0x80;
+ mem8[0xAB7] = 0x0;
+ mem8[0xAB8] = 0x56;
+ mem8[0xAB9] = 0x1;
+ mem8[0xABA] = 0xED;
+ mem8[0xABB] = 0x33;
+ mem8[0xABC] = 0x32;
+ mem8[0xABD] = 0xDB;
+ mem8[0xABE] = 0x80;
+ mem8[0xABF] = 0x0;
+ mem8[0xAC0] = 0x48;
+ mem8[0xAC1] = 0x1;
+ mem8[0xAC2] = 0xED;
+ mem8[0xAC3] = 0x33;
+ mem8[0xAC4] = 0x34;
+ mem8[0xAC5] = 0xDB;
+ mem8[0xAC6] = 0x80;
+ mem8[0xAC7] = 0x0;
+ mem8[0xAC8] = 0x4A;
+ mem8[0xAC9] = 0x1;
+ mem8[0xACA] = 0xED;
+ mem8[0xACB] = 0x33;
+ mem8[0xACC] = 0x2E;
+ mem8[0xACD] = 0xDB;
+ mem8[0xACE] = 0x80;
+ mem8[0xAD0] = 0x52;
+ mem8[0xAD1] = 0x1;
+ mem8[0xAD2] = 0xED;
+ mem8[0xAD3] = 0x33;
+ mem8[0xAD4] = 0x88;
+ mem8[0xAD5] = 0xDB;
+ mem8[0xAD6] = 0x80;
+ mem8[0xAD7] = 0x0;
+ mem8[0xAD8] = 0x0;
+ mem8[0xAD9] = 0x1;
+ mem8[0xADA] = 0xED;
+ mem8[0xADB] = 0x33;
+ mem8[0xADC] = 0x8A;
+ mem8[0xADD] = 0xDB;
+ mem8[0xADE] = 0x80;
+ mem8[0xADF] = 0x0;
+ mem8[0xAE0] = 0x2;
+ mem8[0xAE1] = 0x1;
+ mem8[0xAE2] = 0xED;
+ mem8[0xAE3] = 0x33;
+ mem8[0xAE4] = 0x8C;
+ mem8[0xAE5] = 0xDB;
+ mem8[0xAE6] = 0x80;
+ mem8[0xAE7] = 0x0;
+ mem8[0xAE8] = 0x4;
+ mem8[0xAE9] = 0x1;
+ mem8[0xAEA] = 0xED;
+ mem8[0xAEB] = 0x33;
+ mem8[0xAEC] = 0x8E;
+ mem8[0xAED] = 0xDB;
+ mem8[0xAEE] = 0x80;
+ mem8[0xAEF] = 0x0;
+ mem8[0xAF0] = 0x6;
+ mem8[0xAF1] = 0x1;
+ mem8[0xAF2] = 0xED;
+ mem8[0xAF3] = 0x33;
+ mem8[0xAF4] = 0x90;
+ mem8[0xAF5] = 0xDB;
+ mem8[0xAF6] = 0x80;
+ mem8[0xAF7] = 0x0;
+ mem8[0xAF8] = 0x8;
+ mem8[0xAF9] = 0x1;
+ mem8[0xAFA] = 0xED;
+ mem8[0xAFB] = 0x50;
+ mem8[0xAFC] = 0x49;
+ mem8[0xAFD] = 0xDB;
+ mem8[0xAFE] = 0xFC;
+ mem8[0xAFF] = 0x33;
+ mem8[0xB00] = 0x3F;
+ mem8[0xB02] = 0x80;
+ mem8[0xB03] = 0x0;
+ mem8[0xB04] = 0x4C;
+ mem8[0xB05] = 0x1;
+ mem8[0xB06] = 0xFC;
+ mem8[0xB07] = 0x33;
+ mem8[0xB08] = 0x40;
+ mem8[0xB09] = 0x91;
+ mem8[0xB0A] = 0x80;
+ mem8[0xB0C] = 0xA;
+ mem8[0xB0D] = 0x1;
+ mem8[0xBA8] = 0x80;
+ mem8[0xBAA] = 0xC;
+ mem8[0xBAB] = 0x1;
+ mem8[0xBBA] = 0x80;
+ mem8[0xBBC] = 0x10;
+ mem8[0xBBD] = 0x1;
+ mem8[0xBCC] = 0x80;
+ mem8[0xBCE] = 0x14;
+ mem8[0xBCF] = 0x1;
+ mem8[0xBDA] = 0x80;
+ mem8[0xBDC] = 0xE;
+ mem8[0xBDD] = 0x1;
+ mem8[0xBEE] = 0x80;
+ mem8[0xBF0] = 0x12;
+ mem8[0xBF1] = 0x1;
+ mem8[0xC02] = 0x80;
+ mem8[0xC04] = 0x16;
+ mem8[0xC05] = 0x1;
+ // Transitions
+ mem8[0x42b5] = 0;
+ // Q sound
+ mem8[0x4DBC] = 0x0;
+ mem8[0x4DBE] = 0x58;
+ mem8[0x4DBF] = 0x0;
+ mem8[0x4DC0] = 0xF9;
+ mem8[0x4DC1] = 0x41;
+ mem8[0x4DC2] = 0xF1;
+ mem8[0x4DC3] = 0x0;
+ mem8[0x4DC4] = 0x0;
+ mem8[0x4DC5] = 0x80;
+ mem8[0x4DC6] = 0x28;
+ mem8[0x4DC7] = 0x4A;
+ mem8[0x4DC8] = 0x1F;
+ mem8[0x4DC9] = 0x0;
+ mem8[0x4DCA] = 0x0;
+ mem8[0x4DCB] = 0x6A;
+ mem8[0x4DCC] = 0x4A;
+ mem8[0x4DCD] = 0x0;
+ mem8[0x4DCE] = 0xED;
+ mem8[0x4DCF] = 0x49;
+ mem8[0x4DD0] = 0x96;
+ mem8[0x4DD1] = 0xE2;
+ mem8[0x4DD2] = 0xF4;
+ mem8[0x4DD3] = 0x49;
+ mem8[0x4DD4] = 0x0;
+ mem8[0x4DD5] = 0x0;
+ mem8[0x4DD6] = 0x40;
+ mem8[0x4DD7] = 0x6;
+ mem8[0x4DD8] = 0x10;
+ mem8[0x4DDA] = 0x40;
+ mem8[0x4DDB] = 0x2;
+ mem8[0x4DDC] = 0xFF;
+ mem8[0x4DDD] = 0xF;
+ mem8[0x4DDE] = 0x40;
+ mem8[0x4DDF] = 0x3B;
+ mem8[0x4DE0] = 0xE8;
+ mem8[0x4DE1] = 0xDA;
+ mem8[0x4DE2] = 0x5C;
+ mem8[0x4DE3] = 0x11;
+ mem8[0x4DE4] = 0x1;
+ mem8[0x4DE6] = 0x5C;
+ mem8[0x4DE7] = 0x11;
+ mem8[0x4DE8] = 0x3;
+ mem8[0x4DE9] = 0x0;
+ mem8[0x4DEA] = 0x5C;
+ mem8[0x4DEB] = 0x11;
+ mem8[0x4DEC] = 0x7;
+ mem8[0x4DED] = 0x0;
+ mem8[0x4DEE] = 0x5C;
+ mem8[0x4DEF] = 0x11;
+ mem8[0x4DF0] = 0x9;
+ mem8[0x4DF1] = 0x0;
+ mem8[0x4DF2] = 0x1C;
+ mem8[0x4DF3] = 0x30;
+ mem8[0x4DF4] = 0x40;
+ mem8[0x4DF5] = 0x11;
+ mem8[0x4DF6] = 0xD;
+ mem8[0x4DF7] = 0x0;
+ mem8[0x4DF8] = 0x5C;
+ mem8[0x4DF9] = 0x11;
+ mem8[0x4DFA] = 0xF;
+ mem8[0x4DFB] = 0x0;
+ mem8[0x4DFC] = 0x5C;
+ mem8[0x4DFD] = 0x11;
+ mem8[0x4DFE] = 0x11;
+ mem8[0x4E00] = 0x5C;
+ mem8[0x4E01] = 0x11;
+ mem8[0x4E02] = 0x17;
+ mem8[0x4E04] = 0x5C;
+ mem8[0x4E05] = 0x11;
+ mem8[0x4E06] = 0x19;
+ mem8[0x4E07] = 0x0;
+ mem8[0x4E08] = 0x5C;
+ mem8[0x4E09] = 0x11;
+ mem8[0x4E0A] = 0x13;
+ mem8[0x4E0B] = 0x0;
+ mem8[0x4E0C] = 0x5C;
+ mem8[0x4E0D] = 0x11;
+ mem8[0x4E0E] = 0x15;
+ mem8[0x4E0F] = 0x0;
+ mem8[0x4E10] = 0x7C;
+ mem8[0x4E11] = 0x11;
+ mem8[0x4E12] = 0x0;
+ mem8[0x4E14] = 0x1F;
+ mem8[0x4E16] = 0x75;
+ mem8[0x4E17] = 0x4E;
+ // Sprites
+ mem8[0x14CA0] = 0x90;
+ mem8[0x14CA3] = 0x0;
+ mem8[0x14CB0] = 0x90;
+ mem8[0x14CB3] = 0x40;
+ mem8[0x14F68] = 0xFC;
+ mem8[0x14F69] = 0x28;
+ mem8[0x14F6A] = 0x0;
+ mem8[0x14F6D] = 0x1;
+
+ kabuki_setup(punisher_decode);
+ DRIVER_INIT_CALL(cps1);
+}
+
+DRIVER_INIT_MEMBER( cps_state, sf2h9 )
+{
+ /* Patch out protection check */
+ uint16_t *rom = (uint16_t *)memregion("maincpu")->base();
+ rom[0xc0670/2] = 0x4e71;
+ DRIVER_INIT_CALL(cps1);
+}
+
+DRIVER_INIT_MEMBER( cps_state, sf2h13 )
+{
+ uint16_t *rom = (uint16_t *)memregion("maincpu")->base();
+
+ // Fix scroll
+ rom[0x1d22a/2] = 0x0120;
+ // Fix bg layer
+ rom[0x1d270/2] = 0x0166;
+ // Fix gfx
+ rom[0x1d470/2] = 0x0170;
+
+ // Fix title gfx
+ rom[0x21bec/2] = 0x0083;
+ rom[0x21cf8/2] = 0x828e;
+ rom[0x21cfa/2] = 0x829e;
+ rom[0x21cfc/2] = 0x82ae;
+ rom[0x21d06/2] = 0x827f;
+ rom[0x21d08/2] = 0x828f;
+ rom[0x21d0a/2] = 0x829f;
+ rom[0x21d0c/2] = 0x82af;
+ rom[0x21d16/2] = 0x827e;
+ rom[0x21d18/2] = 0x82a0;
+ rom[0x21d1a/2] = 0x822c;
+ rom[0x21d1c/2] = 0x823c;
+ rom[0x21d2a/2] = 0x822d;
+
+ DRIVER_INIT_CALL(cps1);
+}
+
+DRIVER_INIT_MEMBER( cps_state, wofb )
+{
+ uint8_t *mem8 = memregion("maincpu")->base();
+ // Fix gfx
+ mem8[0x506] = 0xE7;
+ mem8[0x507] = 0x48;
+ mem8[0x508] = 0xFE;
+ mem8[0x509] = 0xFF;
+ mem8[0x50A] = 0xF8;
+ mem8[0x50B] = 0x4B;
+ mem8[0x6ABC] = 0x6;
+ mem8[0x6ABD] = 0x1;
+ // Fix sound
+ mem8[0x764E] = 0x71;
+ mem8[0x7650] = 0x71;
+ mem8[0x7651] = 0x4E;
+ // Fix screen transitions
+ mem8[0x5D236] = 0xFC;
+ mem8[0x5D237] = 0x28;
+ mem8[0x5D238] = 0x0;
+ mem8[0x5D23B] = 0x1;
+
+ kabuki_setup(wof_decode);
+ DRIVER_INIT_CALL(cps1);
+}
+
+DRIVER_INIT_MEMBER( cps_state, sk2h35 )
+{
+ uint8_t *mem8 = memregion("maincpu")->base();
+ // Patch Q sound protection? check
+ mem8[0x5A1A] = 0x00;
+ mem8[0x5A1B] = 0x67;
+ mem8[0x5A1C] = 0x56;
+ mem8[0x5A1D] = 0x00;
+ mem8[0x5A1E] = 0x7C;
+ mem8[0x5A1F] = 0x20;
+ mem8[0x5A20] = 0xF1;
+ mem8[0x5A21] = 0x00;
+ mem8[0x5A22] = 0x00;
+ mem8[0x5A23] = 0x80;
+ mem8[0x5A24] = 0x28;
+ mem8[0x5A25] = 0x4A;
+ mem8[0x5A26] = 0x1F;
+ mem8[0x5A27] = 0x00;
+ mem8[0x5A28] = 0x00;
+ mem8[0x5A29] = 0x6A;
+ mem8[0x5A40] = 0x5C;
+ mem8[0x5A41] = 0x11;
+ mem8[0x5A42] = 0x01;
+ mem8[0x5A43] = 0x00;
+ mem8[0x5A44] = 0x5C;
+ mem8[0x5A45] = 0x11;
+ mem8[0x5A46] = 0x03;
+ mem8[0x5A47] = 0x00;
+ mem8[0x5A4A] = 0x07;
+ mem8[0x5A4B] = 0x00;
+ mem8[0x5A4C] = 0x5C;
+ mem8[0x5A4D] = 0x11;
+ mem8[0x5A4E] = 0x09;
+ mem8[0x5A4F] = 0x00;
+ mem8[0x5A50] = 0x5C;
+ mem8[0x5A51] = 0x31;
+ mem8[0x5A52] = 0x0C;
+ mem8[0x5A53] = 0x00;
+ mem8[0x5A54] = 0x5C;
+ mem8[0x5A55] = 0x11;
+ mem8[0x5A56] = 0x0F;
+ mem8[0x5A57] = 0x00;
+ mem8[0x5A58] = 0x5C;
+ mem8[0x5A59] = 0x11;
+ mem8[0x72A6] = 0x71;
+ mem8[0x72A7] = 0x4E;
+ mem8[0x72A8] = 0x71;
+ mem8[0x72A9] = 0x4E;
+ mem8[0x72AA] = 0x71;
+ mem8[0x72AB] = 0x4E;
+ mem8[0x72AC] = 0x71;
+ mem8[0x72AD] = 0x4E;
+ mem8[0x72AE] = 0x71;
+ mem8[0x72AF] = 0x4E;
+ mem8[0x72B0] = 0x71;
+ mem8[0x72B1] = 0x4E;
+ mem8[0x72B2] = 0x39;
+ mem8[0x72B3] = 0x30;
+ mem8[0x72B4] = 0xF1;
+ mem8[0x72B5] = 0x00;
+ mem8[0x72B6] = 0xFE;
+ mem8[0x72B7] = 0x9F;
+ mem8[0x72B8] = 0x00;
+ mem8[0x72B9] = 0x0C;
+ /* enable coin slots 1 and 2 */
+ mem8[0x71bc] = 0x0c;
+ kabuki_setup(wof_decode);
+ DRIVER_INIT_CALL(cps1);
+}
+
+DRIVER_INIT_MEMBER( cps_state, sk2h1q )
+{
+ uint8_t *mem8 = memregion("maincpu")->base();
+ // Stage Order
+ mem8[0x72a6] = 0x00;
+ // Disable Sprite Recoding
+ mem8[0x5d858] = 0x00;
+ mem8[0x5d859] = 0x61;
+ mem8[0x5d85a] = 0xe6;
+ mem8[0x5d85b] = 0x01;
+ mem8[0x5d890] = 0x6d;
+ mem8[0x5d891] = 0x0c;
+ mem8[0x5d892] = 0x00;
+ mem8[0x5d893] = 0x90;
+ mem8[0x5d894] = 0xd2;
+ mem8[0x5d895] = 0xe3;
+ mem8[0x5d8e8] = 0x90;
+ mem8[0x5d8e9] = 0x00;
+ mem8[0x5d8ea] = 0x00;
+ mem8[0x5d8eb] = 0x00;
+ mem8[0x5d8f8] = 0x90;
+ mem8[0x5d8f9] = 0x00;
+ mem8[0x5d8fa] = 0x00;
+ mem8[0x5d8fb] = 0x40;
+ // Patch protection? check
+ mem8[0xf11ec] = 0x71;
+ mem8[0xf11ed] = 0x4e;
+ mem8[0xf11ee] = 0x71;
+ mem8[0xf11ef] = 0x4e;
+ // Patch Q sound protection? check
+ mem8[0x5A0E] = 0x39;
+ mem8[0x5A0F] = 0x30;
+ mem8[0x5A10] = 0xF1;
+ mem8[0x5A12] = 0xFE;
+ mem8[0x5A13] = 0x9F;
+ mem8[0x5A14] = 0x00;
+ mem8[0x5A15] = 0x0C;
+ mem8[0x5A16] = 0x77;
+ mem8[0x5A17] = 0x00;
+ mem8[0x5A18] = 0xF4;
+ mem8[0x5A19] = 0x66;
+ mem8[0x5A1A] = 0xF9;
+ mem8[0x5A1B] = 0x4E;
+ mem8[0x5A1C] = 0x00;
+ mem8[0x5A1E] = 0xB2;
+ mem8[0x5A1F] = 0x72;
+ mem8[0x5A20] = 0x7C;
+ mem8[0x5A21] = 0x20;
+ mem8[0x5A22] = 0xF1;
+ mem8[0x5A23] = 0x00;
+ mem8[0x5A24] = 0x00;
+ mem8[0x5A25] = 0x80;
+ mem8[0x5A26] = 0x7C;
+ mem8[0x5A27] = 0x11;
+ mem8[0x5A29] = 0x00;
+ mem8[0x5A2A] = 0x01;
+ mem8[0x5A2C] = 0x7C;
+ mem8[0x5A2D] = 0x11;
+ mem8[0x5A2E] = 0x10;
+ mem8[0x5A2F] = 0x00;
+ mem8[0x5A30] = 0x0F;
+ mem8[0x5A31] = 0x00;
+ mem8[0x5A32] = 0x7C;
+ mem8[0x5A33] = 0x11;
+ mem8[0x5A34] = 0x00;
+ mem8[0x5A35] = 0x00;
+ mem8[0x5A36] = 0x07;
+ mem8[0x5A38] = 0x7C;
+ mem8[0x5A39] = 0x11;
+ mem8[0x5A3A] = 0x00;
+ mem8[0x5A3B] = 0x00;
+ mem8[0x5A3C] = 0x09;
+ mem8[0x5A3D] = 0x00;
+ mem8[0x5A3E] = 0x7C;
+ mem8[0x5A3F] = 0x11;
+ mem8[0x5A40] = 0x00;
+ mem8[0x5A41] = 0x00;
+ mem8[0x5A42] = 0x0C;
+ mem8[0x5A44] = 0x41;
+ mem8[0x5A48] = 0x7C;
+ mem8[0x5A4A] = 0x00;
+ mem8[0x5A4C] = 0x11;
+ mem8[0x5A4D] = 0x00;
+ mem8[0x5A4E] = 0x7C;
+ mem8[0x5A4F] = 0x11;
+ mem8[0x5A50] = 0x00;
+ mem8[0x5A51] = 0x00;
+ mem8[0x5A52] = 0x17;
+ mem8[0x5A54] = 0x7C;
+ mem8[0x5A56] = 0x00;
+ mem8[0x5A58] = 0x19;
+ mem8[0x5A59] = 0x00;
+ mem8[0x5A5A] = 0x7C;
+ mem8[0x5A5B] = 0x11;
+ mem8[0x5A5C] = 0x00;
+ mem8[0x5A5D] = 0x00;
+ mem8[0x5A5E] = 0x13;
+ mem8[0x5A60] = 0x7C;
+ mem8[0x5A62] = 0x00;
+ mem8[0x5A64] = 0x15;
+ mem8[0x5A65] = 0x00;
+ mem8[0x5A66] = 0x7C;
+ mem8[0x5A67] = 0x11;
+ mem8[0x5A68] = 0x00;
+ mem8[0x5A69] = 0x00;
+ mem8[0x5A6A] = 0x1F;
+ mem8[0x5A6C] = 0xF9;
+ mem8[0x5A6D] = 0x4E;
+ mem8[0x5A6E] = 0x05;
+ mem8[0x5A70] = 0x2C;
+ mem8[0x5A71] = 0xE8;
+ mem8[0x729A] = 0xF9;
+ mem8[0x729C] = 0x00;
+ mem8[0x729D] = 0x00;
+ mem8[0x729E] = 0x0E;
+ mem8[0x729F] = 0x5A;
+ mem8[0x5E826] = 0xF9;
+ mem8[0x5E827] = 0x4E;
+ mem8[0x5E828] = 0x00;
+ mem8[0x5E82A] = 0x20;
+ mem8[0x5E82B] = 0x5A;
+ kabuki_setup(wof_decode);
+ DRIVER_INIT_CALL(cps1);
+}
+
+DRIVER_INIT_MEMBER( cps_state, sk2h1 )
+{
+ uint8_t *mem8 = memregion("maincpu")->base();
+ // Stage Order
+ mem8[0x72a6] = 0x00;
+ // Disable Sprite Recoding
+ mem8[0x5d858] = 0x00;
+ mem8[0x5d859] = 0x61;
+ mem8[0x5d85a] = 0xe6;
+ mem8[0x5d85b] = 0x01;
+ mem8[0x5d890] = 0x6d;
+ mem8[0x5d891] = 0x0c;
+ mem8[0x5d892] = 0x00;
+ mem8[0x5d893] = 0x90;
+ mem8[0x5d894] = 0xd2;
+ mem8[0x5d895] = 0xe3;
+ mem8[0x5d8e8] = 0x90;
+ mem8[0x5d8e9] = 0x00;
+ mem8[0x5d8ea] = 0x00;
+ mem8[0x5d8eb] = 0x00;
+ mem8[0x5d8f8] = 0x90;
+ mem8[0x5d8f9] = 0x00;
+ mem8[0x5d8fa] = 0x00;
+ mem8[0x5d8fb] = 0x40;
+ // Patch protection? check
+ mem8[0xf11ec] = 0x71;
+ mem8[0xf11ed] = 0x4e;
+ mem8[0xf11ee] = 0x71;
+ mem8[0xf11ef] = 0x4e;
+ DRIVER_INIT_CALL(cps1);
+}
+
+DRIVER_INIT_MEMBER( cps_state, sk2h3 )
+{
+ uint8_t *mem8 = memregion("maincpu")->base();
+ // Disable Sprite Recoding
+ mem8[0x5d8e8] = 0x90;
+ mem8[0x5d8eb] = 0x00;
+ mem8[0x5d8f8] = 0x90;
+
+ mem8[0x5d858] = 0x00;
+ mem8[0x5d859] = 0x61;
+ mem8[0x5d85a] = 0xe6;
+ mem8[0x5d85b] = 0x01;
+
+ mem8[0x5d890] = 0x6d;
+ mem8[0x5d891] = 0x0c;
+ mem8[0x5d892] = 0x00;
+ mem8[0x5d893] = 0x90;
+ mem8[0x5d894] = 0xd2;
+ mem8[0x5d895] = 0xe3;
+
+ //Transitions
+ //mem8[0x02449] = 0x07; // fixed by above code
+
+ //Protections
+ mem8[0x708da] = 0xff;
+ mem8[0x708db] = 0xff;
+ mem8[0x708dc] = 0xff;
+ mem8[0x708dd] = 0xff;
+ mem8[0xf11eb] = 0x60;
+
+ DRIVER_INIT_CALL(cps1);
+}
+
+DRIVER_INIT_MEMBER( cps_state, sk2h21 )
+{
+ uint8_t *mem8 = memregion("maincpu")->base();
+ // Patch Q sound protection? check
+ mem8[0x0554] = 0xb4;
+ mem8[0x0555] = 0x54;
+ mem8[0x5A50] = 0x5c;
+ mem8[0x5A51] = 0x31;
+ mem8[0x5A52] = 0x0c;
+ mem8[0x5A53] = 0x00;
+ mem8[0x5A54] = 0x5c;
+ mem8[0x5A55] = 0x11;
+ mem8[0x5A56] = 0x0f;
+ mem8[0x5A58] = 0x5c;
+ mem8[0x5A59] = 0x11;
+ mem8[0x5A5A] = 0x11;
+ mem8[0x5A5B] = 0x00;
+ kabuki_setup(wof_decode);
+ DRIVER_INIT_CALL(cps1);
+}
+
+DRIVER_INIT_MEMBER( cps_state, sk2h22 )
+{
+ uint8_t *mem8 = memregion("maincpu")->base();
+ // Protection
+ mem8[0xE7AD0] = 0x71;
+ mem8[0xE7AD1] = 0x4E;
+
+ // Disable Sprite Recoding
+ mem8[0x5df26] = 0x90;
+ mem8[0x5df29] = 0x00;
+ mem8[0x5df36] = 0x90;
+
+ mem8[0x5de96] = 0x00;
+ mem8[0x5de97] = 0x61;
+ mem8[0x5de98] = 0xe6;
+ mem8[0x5de99] = 0x01;
+
+ mem8[0x5dece] = 0x6d;
+ mem8[0x5decf] = 0x0c;
+ mem8[0x5ded0] = 0x00;
+ mem8[0x5ded1] = 0x90;
+ mem8[0x5ded2] = 0xd2;
+ mem8[0x5ded3] = 0xe3;
+
+ DRIVER_INIT_CALL(cps1);
+}
+
+DRIVER_INIT_MEMBER( cps_state, sk2h31 )
+{
+ uint8_t *mem8 = memregion("maincpu")->base();
+ // Disable Sprite Recoding
+ mem8[0x5df26] = 0x90;
+ mem8[0x5df29] = 0x00;
+ mem8[0x5df36] = 0x90;
+
+ mem8[0x5de96] = 0x00;
+ mem8[0x5de97] = 0x61;
+ mem8[0x5de98] = 0xe6;
+ mem8[0x5de99] = 0x01;
+
+ mem8[0x5dece] = 0x6d;
+ mem8[0x5decf] = 0x0c;
+ mem8[0x5ded0] = 0x00;
+ mem8[0x5ded1] = 0x90;
+ mem8[0x5ded2] = 0xd2;
+ mem8[0x5ded3] = 0xe3;
+
+ // Patch Q sound protection? check
+ mem8[0x5A0E] = 0x39;
+ mem8[0x5A0F] = 0x30;
+ mem8[0x5A10] = 0xF1;
+ mem8[0x5A12] = 0xFE;
+ mem8[0x5A13] = 0x9F;
+ mem8[0x5A14] = 0x00;
+ mem8[0x5A15] = 0x0C;
+ mem8[0x5A16] = 0x77;
+ mem8[0x5A17] = 0x00;
+ mem8[0x5A18] = 0xF4;
+ mem8[0x5A19] = 0x66;
+ mem8[0x5A1A] = 0xF9;
+ mem8[0x5A1B] = 0x4E;
+ mem8[0x5A1C] = 0x00;
+ mem8[0x5A1E] = 0xBE;
+ mem8[0x5A1F] = 0x72;
+ mem8[0x5A20] = 0x7C;
+ mem8[0x5A21] = 0x20;
+ mem8[0x5A22] = 0xF1;
+ mem8[0x5A23] = 0x00;
+ mem8[0x5A24] = 0x00;
+ mem8[0x5A25] = 0x80;
+ mem8[0x5A26] = 0x7C;
+ mem8[0x5A27] = 0x11;
+ mem8[0x5A29] = 0x00;
+ mem8[0x5A2A] = 0x01;
+ mem8[0x5A2C] = 0x7C;
+ mem8[0x5A2D] = 0x11;
+ mem8[0x5A2E] = 0x10;
+ mem8[0x5A2F] = 0x00;
+ mem8[0x5A30] = 0x0F;
+ mem8[0x5A31] = 0x00;
+ mem8[0x5A32] = 0x7C;
+ mem8[0x5A33] = 0x11;
+ mem8[0x5A34] = 0x00;
+ mem8[0x5A35] = 0x00;
+ mem8[0x5A36] = 0x07;
+ mem8[0x5A38] = 0x7C;
+ mem8[0x5A39] = 0x11;
+ mem8[0x5A3A] = 0x00;
+ mem8[0x5A3B] = 0x00;
+ mem8[0x5A3C] = 0x09;
+ mem8[0x5A3D] = 0x00;
+ mem8[0x5A3E] = 0x7C;
+ mem8[0x5A3F] = 0x11;
+ mem8[0x5A40] = 0x00;
+ mem8[0x5A41] = 0x00;
+ mem8[0x5A42] = 0x0C;
+ mem8[0x5A44] = 0x41;
+ mem8[0x5A48] = 0x7C;
+ mem8[0x5A4A] = 0x00;
+ mem8[0x5A4C] = 0x11;
+ mem8[0x5A4D] = 0x00;
+ mem8[0x5A4E] = 0x7C;
+ mem8[0x5A4F] = 0x11;
+ mem8[0x5A50] = 0x00;
+ mem8[0x5A51] = 0x00;
+ mem8[0x5A52] = 0x17;
+ mem8[0x5A54] = 0x7C;
+ mem8[0x5A56] = 0x00;
+ mem8[0x5A58] = 0x19;
+ mem8[0x5A59] = 0x00;
+ mem8[0x5A5A] = 0x7C;
+ mem8[0x5A5B] = 0x11;
+ mem8[0x5A5C] = 0x00;
+ mem8[0x5A5D] = 0x00;
+ mem8[0x5A5E] = 0x13;
+ mem8[0x5A60] = 0x7C;
+ mem8[0x5A62] = 0x00;
+ mem8[0x5A64] = 0x15;
+ mem8[0x5A65] = 0x00;
+ mem8[0x5A66] = 0x7C;
+ mem8[0x5A67] = 0x11;
+ mem8[0x5A68] = 0x00;
+ mem8[0x5A69] = 0x00;
+ mem8[0x5A6A] = 0x1F;
+ mem8[0x5A6C] = 0xF9;
+ mem8[0x5A6D] = 0x4E;
+ mem8[0x5A6E] = 0x05;
+ mem8[0x5A70] = 0x6A;
+ mem8[0x5A71] = 0xEE;
+ mem8[0x72A6] = 0xF9;
+ mem8[0x72A8] = 0x00;
+ mem8[0x72A9] = 0x00;
+ mem8[0x72AA] = 0x0E;
+ mem8[0x72AB] = 0x5A;
+ mem8[0x5EE64] = 0xF9;
+ mem8[0x5EE65] = 0x4E;
+ mem8[0x5EE66] = 0x00;
+ mem8[0x5EE68] = 0x20;
+ mem8[0x5EE69] = 0x5A;
+ kabuki_setup(wof_decode);
+ DRIVER_INIT_CALL(cps1);
+}
+
+
+// PSmame (c) galston90 used with permission
+
+ /***************************************
+ Captain Commando
+***************************************/
+
+ROM_START( captcomms01 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "ce_23hc01.8f", 0x000000, 0x80000, CRC(1e5c9f79) SHA1(09f7356b5badae26f24a2afac2cbe0d8e0c9481a) )
+ ROM_LOAD16_WORD_SWAP( "cc_22hc01.7f", 0x080000, 0x80000, CRC(6ea50796) SHA1(62d0cd0203c2bb75bd0b69e3b25a492c37658da4) )
+ ROM_LOAD16_BYTE( "cc_24d.9e", 0x100000, 0x20000, CRC(680e543f) SHA1(cfa963ab6329f615807db213bf53841860ed3149) )
+ ROM_LOAD16_BYTE( "cc_28d.9f", 0x100001, 0x20000, CRC(8820039f) SHA1(d68ce0b34ade75b8c5214168b2b1e0cdff45cd52) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cc-5m.3a", 0x000000, 0x80000, CRC(7261d8ba) SHA1(4b66292e42d20d0b79a756f0e445492ddb9c6bbc) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket
+ ROMX_LOAD( "cc-7m.5a", 0x000002, 0x80000, CRC(6a60f949) SHA1(87391ff92abaf3e451f70d789a938cffbd1fd222) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket
+ ROMX_LOAD( "cc-1m.4a", 0x000004, 0x80000, CRC(00637302) SHA1(2c554b59cceec2de67a9a4bc6281fe846d3c8cd2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket
+ ROMX_LOAD( "cc-3m.6a", 0x000006, 0x80000, CRC(cc87cf61) SHA1(7fb1f49494cc1a08aded20754bb0cefb1c323198) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket
+ ROMX_LOAD( "cc-6m.7a", 0x200000, 0x80000, CRC(28718bed) SHA1(dfdc4dd14dc609783bad94d608a9e9b137dea944) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "5" socket
+ ROMX_LOAD( "cc-8m.9a", 0x200002, 0x80000, CRC(d4acc53a) SHA1(d03282ebbde362e679cc97f772aa9baf163d7606) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "7" socket
+ ROMX_LOAD( "cc-2m.8a", 0x200004, 0x80000, CRC(0c69f151) SHA1(a170b8e568439e4a26d84376d53560e4248e4e2f) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "6" socket
+ ROMX_LOAD( "cc-4m.10a", 0x200006, 0x80000, CRC(1f9ebb97) SHA1(023d00cb7b6a52d1b29e2052abe08ef34cb0c55c) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "8" socket
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "cc_09.11a", 0x00000, 0x08000, CRC(698e8b58) SHA1(b7a3d905a7ed2c430426ca2e185e3d7e75e752a1) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "cc_18.11c", 0x00000, 0x20000, CRC(6de2c2db) SHA1(9a1eaba8d104f59a5e61f89679bb5de0c0c64364) )
+ ROM_LOAD( "cc_19.12c", 0x20000, 0x20000, CRC(b99091ae) SHA1(b19197c7ad3aeaf5f41c26bf853b0c9b502ecfca) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "captcomm.key", 0x000000, 0x000080, CRC(3bd9c940) SHA1(8964479f402ce7e000f1da8b3f6386e6915269e1) )
+ROM_END
+
+
+ROM_START( captcomms02 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "ce_23hc02.8f", 0x000000, 0x80000, CRC(2a97e0bc) SHA1(09f7356b5badae26f24a2afac2cbe0d8e0c9481a) )
+ ROM_LOAD16_WORD_SWAP( "cc_22hc01.7f", 0x080000, 0x80000, CRC(6ea50796) SHA1(62d0cd0203c2bb75bd0b69e3b25a492c37658da4) )
+ ROM_LOAD16_BYTE( "cc_24d.9e", 0x100000, 0x20000, CRC(680e543f) SHA1(cfa963ab6329f615807db213bf53841860ed3149) )
+ ROM_LOAD16_BYTE( "cc_28d.9f", 0x100001, 0x20000, CRC(8820039f) SHA1(d68ce0b34ade75b8c5214168b2b1e0cdff45cd52) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cc-5m.3a", 0x000000, 0x80000, CRC(7261d8ba) SHA1(4b66292e42d20d0b79a756f0e445492ddb9c6bbc) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket
+ ROMX_LOAD( "cc-7m.5a", 0x000002, 0x80000, CRC(6a60f949) SHA1(87391ff92abaf3e451f70d789a938cffbd1fd222) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket
+ ROMX_LOAD( "cc-1m.4a", 0x000004, 0x80000, CRC(00637302) SHA1(2c554b59cceec2de67a9a4bc6281fe846d3c8cd2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket
+ ROMX_LOAD( "cc-3m.6a", 0x000006, 0x80000, CRC(cc87cf61) SHA1(7fb1f49494cc1a08aded20754bb0cefb1c323198) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket
+ ROMX_LOAD( "cc-6m.7a", 0x200000, 0x80000, CRC(28718bed) SHA1(dfdc4dd14dc609783bad94d608a9e9b137dea944) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "5" socket
+ ROMX_LOAD( "cc-8m.9a", 0x200002, 0x80000, CRC(d4acc53a) SHA1(d03282ebbde362e679cc97f772aa9baf163d7606) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "7" socket
+ ROMX_LOAD( "cc-2m.8a", 0x200004, 0x80000, CRC(0c69f151) SHA1(a170b8e568439e4a26d84376d53560e4248e4e2f) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "6" socket
+ ROMX_LOAD( "cc-4m.10a", 0x200006, 0x80000, CRC(1f9ebb97) SHA1(023d00cb7b6a52d1b29e2052abe08ef34cb0c55c) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "8" socket
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "cc_09.11a", 0x00000, 0x08000, CRC(698e8b58) SHA1(b7a3d905a7ed2c430426ca2e185e3d7e75e752a1) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "cc_18.11c", 0x00000, 0x20000, CRC(6de2c2db) SHA1(9a1eaba8d104f59a5e61f89679bb5de0c0c64364) )
+ ROM_LOAD( "cc_19.12c", 0x20000, 0x20000, CRC(b99091ae) SHA1(b19197c7ad3aeaf5f41c26bf853b0c9b502ecfca) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "captcomm.key", 0x000000, 0x000080, CRC(3bd9c940) SHA1(8964479f402ce7e000f1da8b3f6386e6915269e1) )
+ROM_END
+
+ROM_START( captcomms03 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "ce_23hc03.8f", 0x000000, 0x80000, CRC(19c58ece) SHA1(6e23e87db29b2c5698b7cead99d1106a2e190648) )
+ ROM_LOAD16_WORD_SWAP( "cc_22hc01.7f", 0x080000, 0x80000, CRC(6ea50796) SHA1(62d0cd0203c2bb75bd0b69e3b25a492c37658da4) )
+ ROM_LOAD16_BYTE( "cc_24d.9e", 0x100000, 0x20000, CRC(680e543f) SHA1(cfa963ab6329f615807db213bf53841860ed3149) )
+ ROM_LOAD16_BYTE( "cc_28d.9f", 0x100001, 0x20000, CRC(8820039f) SHA1(d68ce0b34ade75b8c5214168b2b1e0cdff45cd52) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cc-5m.3a", 0x000000, 0x80000, CRC(7261d8ba) SHA1(4b66292e42d20d0b79a756f0e445492ddb9c6bbc) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket
+ ROMX_LOAD( "cc-7m.5a", 0x000002, 0x80000, CRC(6a60f949) SHA1(87391ff92abaf3e451f70d789a938cffbd1fd222) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket
+ ROMX_LOAD( "cc-1m.4a", 0x000004, 0x80000, CRC(00637302) SHA1(2c554b59cceec2de67a9a4bc6281fe846d3c8cd2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket
+ ROMX_LOAD( "cc-3m.6a", 0x000006, 0x80000, CRC(cc87cf61) SHA1(7fb1f49494cc1a08aded20754bb0cefb1c323198) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket
+ ROMX_LOAD( "cc-6m.7a", 0x200000, 0x80000, CRC(28718bed) SHA1(dfdc4dd14dc609783bad94d608a9e9b137dea944) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "5" socket
+ ROMX_LOAD( "cc-8m.9a", 0x200002, 0x80000, CRC(d4acc53a) SHA1(d03282ebbde362e679cc97f772aa9baf163d7606) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "7" socket
+ ROMX_LOAD( "cc-2m.8a", 0x200004, 0x80000, CRC(0c69f151) SHA1(a170b8e568439e4a26d84376d53560e4248e4e2f) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "6" socket
+ ROMX_LOAD( "cc-4m.10a", 0x200006, 0x80000, CRC(1f9ebb97) SHA1(023d00cb7b6a52d1b29e2052abe08ef34cb0c55c) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "8" socket
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "cc_09.11a", 0x00000, 0x08000, CRC(698e8b58) SHA1(b7a3d905a7ed2c430426ca2e185e3d7e75e752a1) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "cc_18.11c", 0x00000, 0x20000, CRC(6de2c2db) SHA1(9a1eaba8d104f59a5e61f89679bb5de0c0c64364) )
+ ROM_LOAD( "cc_19.12c", 0x20000, 0x20000, CRC(b99091ae) SHA1(b19197c7ad3aeaf5f41c26bf853b0c9b502ecfca) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "captcomm.key", 0x000000, 0x000080, CRC(3bd9c940) SHA1(8964479f402ce7e000f1da8b3f6386e6915269e1) )
+ROM_END
+
+ROM_START( captcomms04 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "ce_23hc04.8f", 0x000000, 0x80000, CRC(c1ad4e2a) SHA1(0b7843fec92261b2e727147aa6df60f4b5fc8fc7) )
+ ROM_LOAD16_WORD_SWAP( "cc_22hc04.7f", 0x080000, 0x80000, CRC(8e19a05a) SHA1(b60dd9b1693630e9e3fe73c1b3f8a026945fb23d) )
+ ROM_LOAD16_BYTE( "cc_24d.9e", 0x100000, 0x20000, CRC(680e543f) SHA1(cfa963ab6329f615807db213bf53841860ed3149) )
+ ROM_LOAD16_BYTE( "cc_28d.9f", 0x100001, 0x20000, CRC(8820039f) SHA1(d68ce0b34ade75b8c5214168b2b1e0cdff45cd52) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cc-5m.3a", 0x000000, 0x80000, CRC(7261d8ba) SHA1(4b66292e42d20d0b79a756f0e445492ddb9c6bbc) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket
+ ROMX_LOAD( "cc-7m.5a", 0x000002, 0x80000, CRC(6a60f949) SHA1(87391ff92abaf3e451f70d789a938cffbd1fd222) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket
+ ROMX_LOAD( "cc-1m.4a", 0x000004, 0x80000, CRC(00637302) SHA1(2c554b59cceec2de67a9a4bc6281fe846d3c8cd2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket
+ ROMX_LOAD( "cc-3m.6a", 0x000006, 0x80000, CRC(cc87cf61) SHA1(7fb1f49494cc1a08aded20754bb0cefb1c323198) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket
+ ROMX_LOAD( "cc-6m.7a", 0x200000, 0x80000, CRC(28718bed) SHA1(dfdc4dd14dc609783bad94d608a9e9b137dea944) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "5" socket
+ ROMX_LOAD( "cc-8m.9a", 0x200002, 0x80000, CRC(d4acc53a) SHA1(d03282ebbde362e679cc97f772aa9baf163d7606) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "7" socket
+ ROMX_LOAD( "cc-2m.8a", 0x200004, 0x80000, CRC(0c69f151) SHA1(a170b8e568439e4a26d84376d53560e4248e4e2f) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "6" socket
+ ROMX_LOAD( "cc-4m.10a", 0x200006, 0x80000, CRC(1f9ebb97) SHA1(023d00cb7b6a52d1b29e2052abe08ef34cb0c55c) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "8" socket
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "cc_09.11a", 0x00000, 0x08000, CRC(698e8b58) SHA1(b7a3d905a7ed2c430426ca2e185e3d7e75e752a1) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "cc_18.11c", 0x00000, 0x20000, CRC(6de2c2db) SHA1(9a1eaba8d104f59a5e61f89679bb5de0c0c64364) )
+ ROM_LOAD( "cc_19.12c", 0x20000, 0x20000, CRC(b99091ae) SHA1(b19197c7ad3aeaf5f41c26bf853b0c9b502ecfca) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "captcomm.key", 0x000000, 0x000080, CRC(3bd9c940) SHA1(8964479f402ce7e000f1da8b3f6386e6915269e1) )
+ROM_END
+
+ROM_START( captcomms05 )
+ ROM_REGION( 0x868000, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "ce_23hc05.8f", 0x000000, 0x454F72, CRC(875448d8) SHA1(f1463b02d5dd17021a7cfcab182b6b4c21e88756) )
+ ROM_LOAD16_WORD_SWAP( "cc_22hc05.7f", 0x080000, 0x454F48, CRC(dffc2174) SHA1(353d76027667b75ac5593d88eaddf868df362165) )
+ ROM_LOAD16_BYTE( "cc_24d.9e", 0x100000, 0x20000, CRC(680e543f) SHA1(cfa963ab6329f615807db213bf53841860ed3149) )
+ ROM_LOAD16_BYTE( "cc_28d.9f", 0x100001, 0x20000, CRC(8820039f) SHA1(d68ce0b34ade75b8c5214168b2b1e0cdff45cd52) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cc-5m.3a", 0x000000, 0x80000, CRC(7261d8ba) SHA1(4b66292e42d20d0b79a756f0e445492ddb9c6bbc) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket
+ ROMX_LOAD( "cc-7m.5a", 0x000002, 0x80000, CRC(6a60f949) SHA1(87391ff92abaf3e451f70d789a938cffbd1fd222) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket
+ ROMX_LOAD( "cc-1m.4a", 0x000004, 0x80000, CRC(00637302) SHA1(2c554b59cceec2de67a9a4bc6281fe846d3c8cd2) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket
+ ROMX_LOAD( "cc-3m.6a", 0x000006, 0x80000, CRC(cc87cf61) SHA1(7fb1f49494cc1a08aded20754bb0cefb1c323198) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket
+ ROMX_LOAD( "cc-6m.7a", 0x200000, 0x80000, CRC(28718bed) SHA1(dfdc4dd14dc609783bad94d608a9e9b137dea944) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "5" socket
+ ROMX_LOAD( "cc-8m.9a", 0x200002, 0x80000, CRC(d4acc53a) SHA1(d03282ebbde362e679cc97f772aa9baf163d7606) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "7" socket
+ ROMX_LOAD( "cc-2m.8a", 0x200004, 0x80000, CRC(0c69f151) SHA1(a170b8e568439e4a26d84376d53560e4248e4e2f) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "6" socket
+ ROMX_LOAD( "cc-4m.10a", 0x200006, 0x80000, CRC(1f9ebb97) SHA1(023d00cb7b6a52d1b29e2052abe08ef34cb0c55c) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "8" socket
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "cc_09.11a", 0x00000, 0x08000, CRC(698e8b58) SHA1(b7a3d905a7ed2c430426ca2e185e3d7e75e752a1) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "cc_18.11c", 0x00000, 0x20000, CRC(6de2c2db) SHA1(9a1eaba8d104f59a5e61f89679bb5de0c0c64364) )
+ ROM_LOAD( "cc_19.12c", 0x20000, 0x20000, CRC(b99091ae) SHA1(b19197c7ad3aeaf5f41c26bf853b0c9b502ecfca) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "captcomm.key", 0x000000, 0x000080, CRC(3bd9c940) SHA1(8964479f402ce7e000f1da8b3f6386e6915269e1) )
+ROM_END
+
+/***************************************
+ Cadillacs and Dinosaurs
+***************************************/
+
+ROM_START( dinos01 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "cde_23hc01.8f", 0x000000, 0x80000, CRC(d1516cb6) SHA1(fa226c9233721bc058ffa2769aeaacca16b27b90) )
+ ROM_LOAD16_WORD_SWAP( "cde_22hc01.7f", 0x080000, 0x80000, CRC(2e452007) SHA1(08a478b5b0b1a6dbabfa0b5e41b9d916c2bb409c) )
+ ROM_LOAD16_WORD_SWAP( "cde_21hc01.6f", 0x100000, 0x80000, CRC(bdbff59c) SHA1(822e115b3fa8db035d2ab699125cf9f195c1efd5) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinos02 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "cde_23hc02.8f", 0x000000, 0x80000, CRC(4ce29595) SHA1(82469ab77250e7cd53c48b62503ea3be8f044cca) )
+ ROM_LOAD16_WORD_SWAP( "cde_22hc02.7f", 0x080000, 0x80000, CRC(1d594d87) SHA1(449ad15a61519fc20167d6c31d3831b21e41d578) )
+ ROM_LOAD16_WORD_SWAP( "cde_21hc02.6f", 0x100000, 0x80000, CRC(22cdce27) SHA1(ce454f55a96c340f13b0f07a1b6f2488777f40a1) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinos03 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "cde_23hc03.8f", 0x000000, 0x80000, CRC(a60068c8) SHA1(3457b7b833b51f2fd21397978564f6faeec79f03) )
+ ROM_LOAD16_WORD_SWAP( "cde_22a.7f", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) )
+ ROM_LOAD16_WORD_SWAP( "dinoeh.21", 0x100000, 0x80000, CRC(b89a0548) SHA1(13b79e18c3cced34b28a34a591e2bd3bd18739be) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinos04 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "cde_23hc04.8f", 0x000000, 0x80000, CRC(b6176346) SHA1(fe5769110fb8e9e777440411a508c78f0d3599c3) )
+ ROM_LOAD16_WORD_SWAP( "cde_22a.7f", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) )
+ ROM_LOAD16_WORD_SWAP( "dinoeh.21", 0x100000, 0x80000, CRC(b89a0548) SHA1(13b79e18c3cced34b28a34a591e2bd3bd18739be) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinos05 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "cde_23hc05.8f", 0x000000, 0x80000, CRC(b83efee3) SHA1(0571459561333b3829c7d749d24eda362720e12c) )
+ ROM_LOAD16_WORD_SWAP( "cde_22a.7f", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) )
+ ROM_LOAD16_WORD_SWAP( "dinoeh.21", 0x100000, 0x80000, CRC(b89a0548) SHA1(13b79e18c3cced34b28a34a591e2bd3bd18739be) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinos06 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "cde_23hc06.8f", 0x000000, 0x80000, CRC(6b7b4e9b) SHA1(903aae5223232bc6b4284ebd6ffd24cb20a4e63e) )
+ ROM_LOAD16_WORD_SWAP( "cde_22a.7f", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) )
+ ROM_LOAD16_WORD_SWAP( "dinoeh.21", 0x100000, 0x80000, CRC(b89a0548) SHA1(13b79e18c3cced34b28a34a591e2bd3bd18739be) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinos07 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "cde_23hc07.8f", 0x000000, 0x80000, CRC(54b0ab73) SHA1(0b50d719dcc879d11eecc95227a51e875038a15d) )
+ ROM_LOAD16_WORD_SWAP( "cde_22a.7f", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) )
+ ROM_LOAD16_WORD_SWAP( "dinoeh.21", 0x100000, 0x80000, CRC(b89a0548) SHA1(13b79e18c3cced34b28a34a591e2bd3bd18739be) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinos08 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "cde_23hc08.8f", 0x000000, 0x80000, CRC(b9e59a3c) SHA1(7714c4c7d83b13535541aeb2d5308a6a14316afc) )
+ ROM_LOAD16_WORD_SWAP( "cde_22a.7f", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) )
+ ROM_LOAD16_WORD_SWAP( "dinoeh.21", 0x100000, 0x80000, CRC(b89a0548) SHA1(13b79e18c3cced34b28a34a591e2bd3bd18739be) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinos09 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "cdjp-23a.8f", 0x000000, 0x80000, CRC(9cd746de) SHA1(d8b9c824e4b8adb66a273debce63128a16bb147a) )
+ ROM_LOAD16_WORD_SWAP( "cdjp-22hc09.7f", 0x080000, 0x80000, CRC(1a051a32) SHA1(8dea44d168e722ad571845c292ff60f2b594e4b8) )
+ ROM_LOAD16_WORD_SWAP( "cdep_21a.rom", 0x100000, 0x80000, CRC(95bd8020) SHA1(249746eb20483ec87b6ad5a74e8b790afdb389de) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinos10 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "cde_23hc10.8f", 0x000000, 0x80000, CRC(f862d0db) SHA1(8404d76fe70dcf18dd15e262b0d664d79abba31f) )
+ ROM_LOAD16_WORD_SWAP( "cde_22a.7f", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) )
+ ROM_LOAD16_WORD_SWAP( "dinoeh.21", 0x100000, 0x80000, CRC(b89a0548) SHA1(13b79e18c3cced34b28a34a591e2bd3bd18739be) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinos11 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "cde_23hc11.8f", 0x000000, 0x80000, CRC(c7a93533) SHA1(721ed175db20a6eae77d9a3ff28fa3658851c0b6) )
+ ROM_LOAD16_WORD_SWAP( "cde_22a.7f", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) )
+ ROM_LOAD16_WORD_SWAP( "dinoeh.21", 0x100000, 0x80000, CRC(b89a0548) SHA1(13b79e18c3cced34b28a34a591e2bd3bd18739be) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinos12 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "cde_23hc12.8f", 0x000000, 0x80000, CRC(5b425209) SHA1(8bf4f8f3c7747b5754fc2914a967a998e4f97b55) )
+ ROM_LOAD16_WORD_SWAP( "cde_22a.7f", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) )
+ ROM_LOAD16_WORD_SWAP( "dinoeh.21", 0x100000, 0x80000, CRC(b89a0548) SHA1(13b79e18c3cced34b28a34a591e2bd3bd18739be) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinos13 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "cde_23hc13.8f", 0x000000, 0x80000, CRC(e787222f) SHA1(3a85ac8d24d61d371df07cfecde5bf895036e8c9) )
+ ROM_LOAD16_WORD_SWAP( "cde_22a.7f", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) )
+ ROM_LOAD16_WORD_SWAP( "dinoeh.21", 0x100000, 0x80000, CRC(b89a0548) SHA1(13b79e18c3cced34b28a34a591e2bd3bd18739be) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinos14 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "cde_23hc14.8f", 0x000000, 0x80000, CRC(44a7a0fd) SHA1(eaf073580fb97db5d40ad98b22375d220fbec049) )
+ ROM_LOAD16_WORD_SWAP( "cde_22a.7f", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) )
+ ROM_LOAD16_WORD_SWAP( "dinoeh.21", 0x100000, 0x80000, CRC(b89a0548) SHA1(13b79e18c3cced34b28a34a591e2bd3bd18739be) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinos15 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "cde_23hc15.8f", 0x000000, 0x80000, CRC(0520ea1a) SHA1(c19568f06b87ec14b716d51d89ad77ad6aaa36f7) )
+ ROM_LOAD16_WORD_SWAP( "cde_22a.7f", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) )
+ ROM_LOAD16_WORD_SWAP( "dinoeh.21", 0x100000, 0x80000, CRC(b89a0548) SHA1(13b79e18c3cced34b28a34a591e2bd3bd18739be) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinos16 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "cde_23hc16.8f", 0x000000, 0x80000, CRC(c85bcc49) SHA1(79132929729861ef85c336bd529323973c7f8ed5) )
+ ROM_LOAD16_WORD_SWAP( "cde_22a.7f", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) )
+ ROM_LOAD16_WORD_SWAP( "dinoeh.21", 0x100000, 0x80000, CRC(b89a0548) SHA1(13b79e18c3cced34b28a34a591e2bd3bd18739be) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinos17 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "cde_23hc17.8f", 0x000000, 0x80000, CRC(0ad21360) SHA1(b43759fc43217f17ae76a64ca119a04d42deb821) )
+ ROM_LOAD16_WORD_SWAP( "cde_22a.7f", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) )
+ ROM_LOAD16_WORD_SWAP( "dinoeh.21", 0x100000, 0x80000, CRC(b89a0548) SHA1(13b79e18c3cced34b28a34a591e2bd3bd18739be) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinos18 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "cde_23hc18.8f", 0x000000, 0x80000, CRC(3519f688) SHA1(01ed71d175d12d2f2c336b61db48a905305fed76) )
+ ROM_LOAD16_WORD_SWAP( "cde_22a.7f", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) )
+ ROM_LOAD16_WORD_SWAP( "dinoeh.21", 0x100000, 0x80000, CRC(b89a0548) SHA1(13b79e18c3cced34b28a34a591e2bd3bd18739be) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinos19 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "cde_23hc19.8f", 0x000000, 0x80000, CRC(5cb3038a) SHA1(641ff3fd88f6c9709845b7508dbb672059b086d8) )
+ ROM_LOAD16_WORD_SWAP( "cde_22a.7f", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) )
+ ROM_LOAD16_WORD_SWAP( "dinoeh.21", 0x100000, 0x80000, CRC(b89a0548) SHA1(13b79e18c3cced34b28a34a591e2bd3bd18739be) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinos20 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "cde_23hc20.8f", 0x000000, 0x80000, CRC(14c00074) SHA1(7f722a7c27ef42002c7f6c12e75bf7bac638163f) )
+ ROM_LOAD16_WORD_SWAP( "cde_22a.7f", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) )
+ ROM_LOAD16_WORD_SWAP( "dinoeh.21", 0x100000, 0x80000, CRC(b89a0548) SHA1(13b79e18c3cced34b28a34a591e2bd3bd18739be) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinos21 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "cde_23hc21.8f", 0x000000, 0x80000, CRC(d1940be1) SHA1(2ba773885b1723a8053bc937ae7837d9ee0f89f3) )
+ ROM_LOAD16_WORD_SWAP( "cde_22a.7f", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) )
+ ROM_LOAD16_WORD_SWAP( "dinoeh.21", 0x100000, 0x80000, CRC(b89a0548) SHA1(13b79e18c3cced34b28a34a591e2bd3bd18739be) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinos22 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "cde_23hc22.8f", 0x000000, 0x80000, CRC(1cef2db2) SHA1(29b6ff63d46dcf0aadf4ca3838173467476ed3ea) )
+ ROM_LOAD16_WORD_SWAP( "cde_22a.7f", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) )
+ ROM_LOAD16_WORD_SWAP( "dinoeh.21", 0x100000, 0x80000, CRC(b89a0548) SHA1(13b79e18c3cced34b28a34a591e2bd3bd18739be) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinos23 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "cde_23hc23.8f", 0x000000, 0x80000, CRC(8ff6b3f2) SHA1(dd67620a27c9b8c42398e98628f3f18b2d480eb8) )
+ ROM_LOAD16_WORD_SWAP( "cde_22a.7f", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) )
+ ROM_LOAD16_WORD_SWAP( "dinoeh.21", 0x100000, 0x80000, CRC(b89a0548) SHA1(13b79e18c3cced34b28a34a591e2bd3bd18739be) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinos24 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "cde_23hc24.8f", 0x000000, 0x80000, CRC(fe48e587) SHA1(1cfec0dbac259e21f9e7444836d6a1e18f1a2efb) )
+ ROM_LOAD16_WORD_SWAP( "cde_22a.7f", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) )
+ ROM_LOAD16_WORD_SWAP( "dinoeh.21", 0x100000, 0x80000, CRC(b89a0548) SHA1(13b79e18c3cced34b28a34a591e2bd3bd18739be) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinos25 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "cde_23hc25.8f", 0x000000, 0x80000, CRC(9fe1b87c) SHA1(56e7b1dd0af7982432b406e707826c69d4a9ad3f) )
+ ROM_LOAD16_WORD_SWAP( "cde_22a.7f", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) )
+ ROM_LOAD16_WORD_SWAP( "cde_21a.6f", 0x100000, 0x80000, CRC(66d23de2) SHA1(19b8a365f630411d524d055459020f4c8cf930f1) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinos26 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "cde_23hc26.8f", 0x000000, 0x80000, CRC(230f774b) SHA1(6ef9416c161ab84788e990e1149d3a7ee6a370b1) )
+ ROM_LOAD16_WORD_SWAP( "cde_22a.7f", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) )
+ ROM_LOAD16_WORD_SWAP( "cde_21hc26.6f", 0x100000, 0x80000, CRC(416142c7) SHA1(afa21a433bcc86ad73eb1d079f0fded8d12c3bd2) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinos27 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "cde_23hc27.8f", 0x000000, 0x80000, CRC(a6bbf3d2) SHA1(d775be260e5229e42e4bb32e175acad3e0d8b476) )
+ ROM_LOAD16_WORD_SWAP( "cde_22a.7f", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) )
+ ROM_LOAD16_WORD_SWAP( "cde_21a.6f", 0x100000, 0x80000, CRC(66d23de2) SHA1(19b8a365f630411d524d055459020f4c8cf930f1) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinos28 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "cde_23hc28.8f", 0x000000, 0x80000, CRC(c82bfe69) SHA1(7dc24b17d8d11cfe84288e330bb841067f9071e9) )
+ ROM_LOAD16_WORD_SWAP( "cde_22a.7f", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) )
+ ROM_LOAD16_WORD_SWAP( "cde_21a.6f", 0x100000, 0x80000, CRC(66d23de2) SHA1(19b8a365f630411d524d055459020f4c8cf930f1) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinos29 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "cde_23hc29.8f", 0x000000, 0x80000, CRC(280bd132) SHA1(d6ddcc9ef9f416888f49dbd00545de1f4dcc4eb4) )
+ ROM_LOAD16_WORD_SWAP( "cde_22a.7f", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) )
+ ROM_LOAD16_WORD_SWAP( "cde_21a.6f", 0x100000, 0x80000, CRC(66d23de2) SHA1(19b8a365f630411d524d055459020f4c8cf930f1) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinos30 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "cde_23hc30.8f", 0x000000, 0x80000, CRC(e46e6b7c) SHA1(9935ae56359d27c0a26358928d5afbfd2027a2e5) )
+ ROM_LOAD16_WORD_SWAP( "cde_22a.7f", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) )
+ ROM_LOAD16_WORD_SWAP( "cde_21a.6f", 0x100000, 0x80000, CRC(66d23de2) SHA1(19b8a365f630411d524d055459020f4c8cf930f1) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinos31 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "cde_23hc31.8f", 0x000000, 0x80000, CRC(c85facdd) SHA1(2c5cf978fa92920ab8b6336c45de8765d0139c51) )
+ ROM_LOAD16_WORD_SWAP( "cde_22a.7f", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) )
+ ROM_LOAD16_WORD_SWAP( "cde_21a.6f", 0x100000, 0x80000, CRC(66d23de2) SHA1(19b8a365f630411d524d055459020f4c8cf930f1) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinos32 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "cde_23hc32.8f", 0x000000, 0x80000, CRC(8e7be9a3) SHA1(0692a458fd3c45196c0832757b877cec2ba39871) )
+ ROM_LOAD16_WORD_SWAP( "cde_22a.7f", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) )
+ ROM_LOAD16_WORD_SWAP( "cde_21a.6f", 0x100000, 0x80000, CRC(66d23de2) SHA1(19b8a365f630411d524d055459020f4c8cf930f1) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinos33 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "cde_23hc33.8f", 0x000000, 0x80000, CRC(9200e65b) SHA1(1c7873b1e41cd92a8e042ed5c70625e986c85151) )
+ ROM_LOAD16_WORD_SWAP( "cde_22a.7f", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) )
+ ROM_LOAD16_WORD_SWAP( "cde_21a.6f", 0x100000, 0x80000, CRC(66d23de2) SHA1(19b8a365f630411d524d055459020f4c8cf930f1) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinos34 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "cde_23hc34.8f", 0x000000, 0x80000, CRC(09114390) SHA1(5ea04910b342faaa67b7a4e00416bafeedb14f44) )
+ ROM_LOAD16_WORD_SWAP( "cde_22a.7f", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) )
+ ROM_LOAD16_WORD_SWAP( "cde_21a.6f", 0x100000, 0x80000, CRC(66d23de2) SHA1(19b8a365f630411d524d055459020f4c8cf930f1) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinos35 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "cde_23hc35.8f", 0x000000, 0x80000, CRC(94487bf3) SHA1(fac7a11b67bc1bdb50630ef4beb1da20c19ddf26) )
+ ROM_LOAD16_WORD_SWAP( "cde_22a.7f", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) )
+ ROM_LOAD16_WORD_SWAP( "cde_21hc35.6f", 0x100000, 0x80000, CRC(bb5f4200) SHA1(4aa5fb95babf544e903bf8bee970887df127342f) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinos36 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "cde_23hc36.8f", 0x000000, 0x80000, CRC(e1ad1773) SHA1(371eec23533d6034addcbff75a6a1d4a651e0140) )
+ ROM_LOAD16_WORD_SWAP( "cde_22a.7f", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) )
+ ROM_LOAD16_WORD_SWAP( "cde_21a.6f", 0x100000, 0x80000, CRC(66d23de2) SHA1(19b8a365f630411d524d055459020f4c8cf930f1) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinos37 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "cde_23hc37.8f", 0x000000, 0x80000, CRC(030adf46) SHA1(e16e641c453f288560f04f553e79e22fbbe4d784) )
+ ROM_LOAD16_WORD_SWAP( "cde_22a.7f", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) )
+ ROM_LOAD16_WORD_SWAP( "cde_21a.6f", 0x100000, 0x80000, CRC(66d23de2) SHA1(19b8a365f630411d524d055459020f4c8cf930f1) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinos38 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "cde_23hc38.8f", 0x000000, 0x80000, CRC(91c825d9) SHA1(ada3b1168ea39aaf9e4f241c3f931af52ba99f1e) )
+ ROM_LOAD16_WORD_SWAP( "cde_22a.7f", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) )
+ ROM_LOAD16_WORD_SWAP( "cde_21a.6f", 0x100000, 0x80000, CRC(66d23de2) SHA1(19b8a365f630411d524d055459020f4c8cf930f1) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinos39 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "cde_23hc39.8f", 0x000000, 0x80000, CRC(7d467049) SHA1(dda5d05c36c52f0e4f0db910e4a835762594c634) )
+ ROM_LOAD16_WORD_SWAP( "cde_22a.7f", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) )
+ ROM_LOAD16_WORD_SWAP( "cde_21a.6f", 0x100000, 0x80000, CRC(66d23de2) SHA1(19b8a365f630411d524d055459020f4c8cf930f1) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinos40 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "cde_23hc40.8f", 0x000000, 0x80000, CRC(2324c85a) SHA1(af716498af23e8dc3800b971ec108346fd4dcbcb) )
+ ROM_LOAD16_WORD_SWAP( "cde_22a.7f", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) )
+ ROM_LOAD16_WORD_SWAP( "cde_21a.6f", 0x100000, 0x80000, CRC(66d23de2) SHA1(19b8a365f630411d524d055459020f4c8cf930f1) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinos41 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "cde_23hc41.8f", 0x000000, 0x80000, CRC(fb443084) SHA1(e0c90fcf7ef55f2f444a37433fd2e44defa1bd2d) )
+ ROM_LOAD16_WORD_SWAP( "cde_22hc41.7f", 0x080000, 0x80000, CRC(8111b35c) SHA1(78c17659f7573e0292b7eb84bc97f0373119ca3a) )
+ ROM_LOAD16_WORD_SWAP( "cde_21hc41.6f", 0x100000, 0x80000, CRC(a0411261) SHA1(b807908f14ac9667ba2226e350f322ca73ecbb79) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinos42 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "dinobtpp.23", 0x000000, 0x80000, CRC(41f954c9) SHA1(494ca6b9a5df7c9f491e54e45da41b2dcb4936a9) )
+ ROM_LOAD16_WORD_SWAP( "cde_22hc41.7f", 0x080000, 0x80000, CRC(8111b35c) SHA1(78c17659f7573e0292b7eb84bc97f0373119ca3a) )
+ ROM_LOAD16_WORD_SWAP( "cde_21hc41.6f", 0x100000, 0x80000, CRC(a0411261) SHA1(b807908f14ac9667ba2226e350f322ca73ecbb79) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinos43 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "cde_23hc43.8f", 0x000000, 0x80000, CRC(8c90a1d4) SHA1(1733b05dc1b901bac03e6320716d09918c187d4f) )
+ ROM_LOAD16_WORD_SWAP( "cde_22hc43.7f", 0x080000, 0x80000, CRC(a4894b10) SHA1(6c6d4319af544383007190cfe8835189089e4ac3) )
+ ROM_LOAD16_WORD_SWAP( "dino08h2.21", 0x100000, 0x80000, CRC(c2a0f051) SHA1(57e4a569824fb2a9d726ba610d13e451ab0b36cb) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinos44 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "cde_23hc44.8f", 0x000000, 0x80000, CRC(a63dacaf) SHA1(1110096a83e7bd2040a132833395aad56f5fa09f) )
+ ROM_LOAD16_WORD_SWAP( "cde_22a.7f", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) )
+ ROM_LOAD16_WORD_SWAP( "cde_21a.6f", 0x100000, 0x80000, CRC(66d23de2) SHA1(19b8a365f630411d524d055459020f4c8cf930f1) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinos45 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "cde_23hc45.8f", 0x000000, 0x80000, CRC(6d517bc7) SHA1(58e46163e95cfa54365672c5751e624fe992aa22) )
+ ROM_LOAD16_WORD_SWAP( "cde_22a.7f", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) )
+ ROM_LOAD16_WORD_SWAP( "cde_21a.6f", 0x100000, 0x80000, CRC(66d23de2) SHA1(19b8a365f630411d524d055459020f4c8cf930f1) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinos46 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "cde_23hc46.8f", 0x000000, 0x80000, CRC(f0cefc30) SHA1(f3e73243ba6d830bdaf4f17ac14a0deb3e6f6684) )
+ ROM_LOAD16_WORD_SWAP( "cde_22a.7f", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) )
+ ROM_LOAD16_WORD_SWAP( "cde_21a.6f", 0x100000, 0x80000, CRC(66d23de2) SHA1(19b8a365f630411d524d055459020f4c8cf930f1) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinos47 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "cde_23hc47.8f", 0x000000, 0x80000, CRC(ee5fee09) SHA1(b7437cf038ab4256cf88b4000ff03874ccbf91fd) )
+ ROM_LOAD16_WORD_SWAP( "cde_22a.7f", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) )
+ ROM_LOAD16_WORD_SWAP( "cde_21a.6f", 0x100000, 0x80000, CRC(66d23de2) SHA1(19b8a365f630411d524d055459020f4c8cf930f1) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinos48 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "cde_23hc44.8f", 0x000000, 0x80000, CRC(a63dacaf) SHA1(1110096a83e7bd2040a132833395aad56f5fa09f) )
+ ROM_LOAD16_WORD_SWAP( "cde_22a.7f", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) )
+ ROM_LOAD16_WORD_SWAP( "cde_21a.6f", 0x100000, 0x80000, CRC(66d23de2) SHA1(19b8a365f630411d524d055459020f4c8cf930f1) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinos49 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "cde_23hc43.8f", 0x000000, 0x80000, CRC(8c90a1d4) SHA1(1733b05dc1b901bac03e6320716d09918c187d4f) )
+ ROM_LOAD16_WORD_SWAP( "cde_22hc49.7f", 0x080000, 0x80000, CRC(a4894b10) SHA1(6c6d4319af544383007190cfe8835189089e4ac3) )
+ ROM_LOAD16_WORD_SWAP( "dino08h2.21", 0x100000, 0x80000, CRC(c2a0f051) SHA1(57e4a569824fb2a9d726ba610d13e451ab0b36cb) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinos50 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "cde_23hc50.8f", 0x000000, 0x80000, CRC(2cd63120) SHA1(6e9c1f4ddfd57e29c82ae2f2c02b835d20d54a88) )
+ ROM_LOAD16_WORD_SWAP( "cde_22a.7f", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) )
+ ROM_LOAD16_WORD_SWAP( "cde_21a.6f", 0x100000, 0x80000, CRC(66d23de2) SHA1(19b8a365f630411d524d055459020f4c8cf930f1) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinos51 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "cde_23hc51.8f", 0x000000, 0x80000, CRC(49e16e4e) SHA1(df21eefa721cb3643e10d1832e1565b4ad276659) )
+ ROM_LOAD16_WORD_SWAP( "cde_22a.7f", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) )
+ ROM_LOAD16_WORD_SWAP( "cde_21a.6f", 0x100000, 0x80000, CRC(66d23de2) SHA1(19b8a365f630411d524d055459020f4c8cf930f1) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinos52 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "cde_23hc52.8f", 0x000000, 0x80000, CRC(72b48933) SHA1(0609dfa2c33f18d3f7a29a24eeff213f7230b5e2) )
+ ROM_LOAD16_WORD_SWAP( "cde_22a.7f", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) )
+ ROM_LOAD16_WORD_SWAP( "cde_21a.6f", 0x100000, 0x80000, CRC(66d23de2) SHA1(19b8a365f630411d524d055459020f4c8cf930f1) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinos53 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "cde_23hc53.8f", 0x000000, 0x80000, CRC(428d95a1) SHA1(1b122928a05c9fed85de8e0ec23d4665d4c2bda8) )
+ ROM_LOAD16_WORD_SWAP( "cde_22a.7f", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) )
+ ROM_LOAD16_WORD_SWAP( "cde_21a.6f", 0x100000, 0x80000, CRC(66d23de2) SHA1(19b8a365f630411d524d055459020f4c8cf930f1) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinos54 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "cde_23hc54.8f", 0x000000, 0x80000, CRC(ce71f915) SHA1(5d1cf0d7f42af9febf9a16ec6af9cbf1f70c9e04) )
+ ROM_LOAD16_WORD_SWAP( "cde_22a.7f", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) )
+ ROM_LOAD16_WORD_SWAP( "cde_21a.6f", 0x100000, 0x80000, CRC(66d23de2) SHA1(19b8a365f630411d524d055459020f4c8cf930f1) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( dinos55 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "cde_23hc55.8f", 0x000000, 0x80000, CRC(90134106) SHA1(9086294f6c6b6fc2cd434522d0b58ce724cdf91f) )
+ ROM_LOAD16_WORD_SWAP( "cde_22a.7f", 0x080000, 0x80000, CRC(9278aa12) SHA1(58cbbd53a98abe640ccb233f8dbd8ca6d63475e7) )
+ ROM_LOAD16_WORD_SWAP( "cde_21a.6f", 0x100000, 0x80000, CRC(66d23de2) SHA1(19b8a365f630411d524d055459020f4c8cf930f1) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cd-1m.3a", 0x000000, 0x80000, CRC(8da4f917) SHA1(4f7b2304b7d9b545d6707d7ec921d3e28200699d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-3m.5a", 0x000002, 0x80000, CRC(6c40f603) SHA1(cdbd11dfcec08e87355d7e21e9fd39f7eacab016) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-2m.4a", 0x000004, 0x80000, CRC(09c8fc2d) SHA1(d0c0a1258ec5dd484ab6ec1c5663425431f929ee) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-4m.6a", 0x000006, 0x80000, CRC(637ff38f) SHA1(859926b33b9955b3ed67471c61faa442d42b9696) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-5m.7a", 0x200000, 0x80000, CRC(470befee) SHA1(a42e38319e9b7424381352512f11bd8edf0bbb96) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-7m.9a", 0x200002, 0x80000, CRC(22bfb7a3) SHA1(c44959bd3d42b9fc8ecb482dfaf63fbd469d2c3e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-6m.8a", 0x200004, 0x80000, CRC(e7599ac4) SHA1(0e788a38547a8701115d01190ddeaca64388db4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "cd-8m.10a", 0x200006, 0x80000, CRC(211b4b15) SHA1(374f6b185faa0f14f5c45b9b1d60d0772d93fb17) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "cd_q.5k", 0x00000, 0x08000, CRC(605fdb0b) SHA1(9da90ddc6513aaaf2260f0c69719c6b0e585ba8c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "cd-q1.1k", 0x000000, 0x80000, CRC(60927775) SHA1(f8599bc84c38573ebbe8685822c58b6a38b50462) )
+ ROM_LOAD( "cd-q2.2k", 0x080000, 0x80000, CRC(770f4c47) SHA1(fec8ef00a6669d4d5e37787ecc7b58ee46709326) )
+ ROM_LOAD( "cd-q3.3k", 0x100000, 0x80000, CRC(2f273ffc) SHA1(f0de462f6c4d251911258e0ebd886152c14d1586) )
+ ROM_LOAD( "cd-q4.4k", 0x180000, 0x80000, CRC(2c67821d) SHA1(6e2528d0b22508300a6a142a796dd3bf53a66946) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "dino.key", 0x000000, 0x000080, CRC(230b6eb0) SHA1(240fdda90aecd62ce1f218e430b7ee6a464b8de8) )
+ROM_END
+
+ROM_START( koduhc01 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "kdu30bhc01.11e", 0x00000, 0x20000, CRC(825817f9) SHA1(250f61effcbe59f8b70baaf26eb8aef419fed66b) )
+ ROM_LOAD16_BYTE( "kdu37bhc01.11f", 0x00001, 0x20000, CRC(d2422dfb) SHA1(6e369a62012f3c480755b700d4d4f4c112c79483) )
+ ROM_LOAD16_BYTE( "kdu31bhc01.12e", 0x40000, 0x20000, CRC(9af36039) SHA1(f2645178a042689a387f916b4ecd7d1d859d758a) )
+ ROM_LOAD16_BYTE( "kdu38bhc01.12f", 0x40001, 0x20000, CRC(be8405a1) SHA1(8d4f9a0489dc4b2971b20170713284151bc10eb7) )
+ ROM_LOAD16_BYTE( "kdu_28.9e", 0x80000, 0x20000, CRC(9367bcd9) SHA1(8243b4b9bb9756f3fa726717e19a166cb2f5b50a) ) // == kd_28.9e
+ ROM_LOAD16_BYTE( "kdu_35.9f", 0x80001, 0x20000, CRC(4ca6a48a) SHA1(9d440ecd8d2d0e293fecf64ca3915252b94e7aef) ) // == kd_35.9f
+ ROM_LOAD16_BYTE( "kdu_29.10e", 0xc0000, 0x20000, CRC(0360fa72) SHA1(274769c8717a874397cf37369e3ef80a682d9ef2) ) // == kd_29.10e
+ ROM_LOAD16_BYTE( "kdu_36a.10f", 0xc0001, 0x20000, CRC(95a3cef8) SHA1(9b75c1ed0eafacc230197ffd9b81e0c8f4f2c464) ) // == kd_36a.10f
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "kd-5m.4a", 0x000000, 0x80000, CRC(e45b8701) SHA1(604e39e455e81695ee4f899f102d0bcd789cedd0) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket
+ ROMX_LOAD( "kd-7m.6a", 0x000002, 0x80000, CRC(a7750322) SHA1(3c583496a53cd64edf377db35f7f40f02b59b7e7) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket
+ ROMX_LOAD( "kd-1m.3a", 0x000004, 0x80000, CRC(5f74bf78) SHA1(b7c43eea9bf77a0fb571dcd53f8be719e6655fd9) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket
+ ROMX_LOAD( "kd-3m.5a", 0x000006, 0x80000, CRC(5e5303bf) SHA1(d9f90b898ffdf4398b2bbeb48247f06f728e7c00) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket
+ ROMX_LOAD( "kd-6m.4c", 0x200000, 0x80000, CRC(113358f3) SHA1(9d98eafa74a046f65bf3847fe1d88ea1b0c82b0c) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "11" socket
+ ROMX_LOAD( "kd-8m.6c", 0x200002, 0x80000, CRC(38853c44) SHA1(a6e552fb0138a76a7878b90d202904e2b44ae7ec) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "13" socket
+ ROMX_LOAD( "kd-2m.3c", 0x200004, 0x80000, CRC(9ef36604) SHA1(b42ca0a910b65e1e7bb6e7d734e853ce67e821bf) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "10" socket
+ ROMX_LOAD( "kd-4m.5c", 0x200006, 0x80000, CRC(402b9b4f) SHA1(4c11976976eadf1ad293b31b0a4d047d05032b06) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "12" socket
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "kd_09.12a", 0x00000, 0x08000, CRC(bac6ec26) SHA1(6cbb6d55660150ae3f5270e023328275ee1bbf50) ) // == kd_9.12a
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "kd_18.11c", 0x00000, 0x20000, CRC(4c63181d) SHA1(270f27534a95cb0be3ff3f9ca71c502320d8090b) )
+ ROM_LOAD( "kd_19.12c", 0x20000, 0x20000, CRC(92941b80) SHA1(5fa7c2793e6febee54a83042d118ddd4f2b7d127) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "kod.key", 0x000000, 0x000080, CRC(b79ea9b9) SHA1(cefded329a6ccc34d3b68e614c8f3a2c174e3fdd) )
+ROM_END
+
+
+ROM_START( knightsh01 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "krhc01.8f", 0x00000, 0x80000, CRC(00ffc784) SHA1(8494e9648137dd7f451871288bd7dda2db278185) )
+ ROM_LOAD16_WORD_SWAP( "kr_22.7f", 0x80000, 0x80000, CRC(d0b671a9) SHA1(9865472c5fc3f617345e23b5de5a9ba177945b5a) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "kr-5m.3a", 0x000000, 0x80000, CRC(9e36c1a4) SHA1(772daae74e119371dfb76fde9775bda78a8ba125) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket
+ ROMX_LOAD( "kr-7m.5a", 0x000002, 0x80000, CRC(c5832cae) SHA1(a188cf401cd3a2909b377d3059f14d22ec3b0643) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket
+ ROMX_LOAD( "kr-1m.4a", 0x000004, 0x80000, CRC(f095be2d) SHA1(0427d1574062f277a9d04440019d5638b05de561) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket
+ ROMX_LOAD( "kr-3m.6a", 0x000006, 0x80000, CRC(179dfd96) SHA1(b1844e69da7ab13474da569978d5b47deb8eb2be) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket
+ ROMX_LOAD( "kr-6m.7a", 0x200000, 0x80000, CRC(1f4298d2) SHA1(4b162a7f649b0bcd676f8ca0c5eee9a1250d6452) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "5" socket
+ ROMX_LOAD( "kr-8m.9a", 0x200002, 0x80000, CRC(37fa8751) SHA1(b88b39d1f08621f15a5620095aef998346fa9891) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "7" socket
+ ROMX_LOAD( "kr-2m.8a", 0x200004, 0x80000, CRC(0200bc3d) SHA1(c900b1be2b4e49b951e5c1e3fd1e19d21b82986e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "6" socket
+ ROMX_LOAD( "kr-4m.10a", 0x200006, 0x80000, CRC(0bb2b4e7) SHA1(983b800925d58e4aeb4e5105f93ed5faf66d009c) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "8" socket
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "kr_09.11a", 0x00000, 0x08000, CRC(5e44d9ee) SHA1(47a7503321be8d52b5c44af838e3bb82ee15a415) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "kr_18.11c", 0x00000, 0x20000, CRC(da69d15f) SHA1(9616207e693bae85705f786cef60b9f6951b5067) )
+ ROM_LOAD( "kr_19.12c", 0x20000, 0x20000, CRC(bfc654e9) SHA1(01b3d92e4dedf55ea3933d387c7ddb9ba2549773) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "knightsh.key", 0x000000, 0x000080, CRC(68d9786b) SHA1(8721cda836d88c48ab07b96d66015832b5e561f7) )
+ROM_END
+
+ROM_START( knightsh02 )
+ ROM_REGION( 0x868000, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "krhc02.8f", 0x00000, 0x454F93, CRC(2ad36ed1) SHA1(3d1169ee41b14232e74373ce93a93fd3b3c9fe35) )
+ ROM_LOAD16_WORD_SWAP( "kr_22.7f", 0x80000, 0x80000, CRC(d0b671a9) SHA1(9865472c5fc3f617345e23b5de5a9ba177945b5a) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "kr-5m.3a", 0x000000, 0x80000, CRC(9e36c1a4) SHA1(772daae74e119371dfb76fde9775bda78a8ba125) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "1" socket
+ ROMX_LOAD( "kr-7m.5a", 0x000002, 0x80000, CRC(c5832cae) SHA1(a188cf401cd3a2909b377d3059f14d22ec3b0643) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "3" socket
+ ROMX_LOAD( "kr-1m.4a", 0x000004, 0x80000, CRC(f095be2d) SHA1(0427d1574062f277a9d04440019d5638b05de561) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "2" socket
+ ROMX_LOAD( "kr-3m.6a", 0x000006, 0x80000, CRC(179dfd96) SHA1(b1844e69da7ab13474da569978d5b47deb8eb2be) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "4" socket
+ ROMX_LOAD( "kr-6m.7a", 0x200000, 0x80000, CRC(1f4298d2) SHA1(4b162a7f649b0bcd676f8ca0c5eee9a1250d6452) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "5" socket
+ ROMX_LOAD( "kr-8m.9a", 0x200002, 0x80000, CRC(37fa8751) SHA1(b88b39d1f08621f15a5620095aef998346fa9891) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "7" socket
+ ROMX_LOAD( "kr-2m.8a", 0x200004, 0x80000, CRC(0200bc3d) SHA1(c900b1be2b4e49b951e5c1e3fd1e19d21b82986e) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "6" socket
+ ROMX_LOAD( "kr-4m.10a", 0x200006, 0x80000, CRC(0bb2b4e7) SHA1(983b800925d58e4aeb4e5105f93ed5faf66d009c) , ROM_GROUPWORD | ROM_SKIP(6) ) // in "8" socket
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "kr_09.11a", 0x00000, 0x08000, CRC(5e44d9ee) SHA1(47a7503321be8d52b5c44af838e3bb82ee15a415) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "kr_18.11c", 0x00000, 0x20000, CRC(da69d15f) SHA1(9616207e693bae85705f786cef60b9f6951b5067) )
+ ROM_LOAD( "kr_19.12c", 0x20000, 0x20000, CRC(bfc654e9) SHA1(01b3d92e4dedf55ea3933d387c7ddb9ba2549773) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "knightsh.key", 0x000000, 0x000080, CRC(68d9786b) SHA1(8721cda836d88c48ab07b96d66015832b5e561f7) )
+ROM_END
+
+/***************************************
+ Warriors Of Fate
+***************************************/
+
+ROM_START( wofs01 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "tk2e_23hc01.8f", 0x000000, 0x80000, CRC(11fb2ed1) SHA1(19e09ad6f9edc7997b030cddfe1d9c96d88135f2) )
+ ROM_LOAD16_WORD_SWAP( "tk2e_22b.7f", 0x080000, 0x80000, CRC(479b3f24) SHA1(9fb8ae06856fe115addfb6794c28978a4f6716ec) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-5m.7a", 0x200000, 0x80000, CRC(291f0f0b) SHA1(094baf0f960f25fc2525b3b1cc378a49d9a0955d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-7m.9a", 0x200002, 0x80000, CRC(3edeb949) SHA1(c155698dd9ee9eb24bbc97a21118ef2e897ea82f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-6m.8a", 0x200004, 0x80000, CRC(1abd14d6) SHA1(dffff3126f102b4ec028a81405fc5b9bd7bb65b3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-8m.10a", 0x200006, 0x80000, CRC(b27948e3) SHA1(870d5d23f56798831c641e877ea94217058b2ddc) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( wofs02 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "tk2e_23hc02.8f", 0x000000, 0x80000, CRC(2e024628) SHA1(647f8700fe3b410d798a823bac2e4a89cc9ad8d5) )
+ ROM_LOAD16_WORD_SWAP( "tk2a_22c.7f", 0x080000, 0x80000, CRC(900ad4cd) SHA1(988007447f93f3467029b9c29fd9670a7ecadaa3) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-5m.7a", 0x200000, 0x80000, CRC(291f0f0b) SHA1(094baf0f960f25fc2525b3b1cc378a49d9a0955d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-7m.9a", 0x200002, 0x80000, CRC(3edeb949) SHA1(c155698dd9ee9eb24bbc97a21118ef2e897ea82f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-6m.8a", 0x200004, 0x80000, CRC(1abd14d6) SHA1(dffff3126f102b4ec028a81405fc5b9bd7bb65b3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-8m.10a", 0x200006, 0x80000, CRC(b27948e3) SHA1(870d5d23f56798831c641e877ea94217058b2ddc) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( wofs03 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "tk2j_23hc03.8f", 0x000000, 0x80000, CRC(4d3bc95f) SHA1(e960b03e93d213bc336a650f5336b20c263a74f9) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22hc03.7f", 0x080000, 0x80000, CRC(60a6702d) SHA1(a33b566f95f6241fb316a9ce87520a840e974b3a) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2_01.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-1m.3a
+ ROMX_LOAD( "tk2_02.4a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-3m.5a
+ ROMX_LOAD( "tk2_03.5a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-2m.4a
+ ROMX_LOAD( "tk2_04.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-4m.6a
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( wofs04 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "tk2j_23hc04.8f", 0x000000, 0x80000, CRC(717e93a9) SHA1(8adb8cc12d406d9f257969f2836f66a6ccfe08c8) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2_01.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-1m.3a
+ ROMX_LOAD( "tk2_02.4a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-3m.5a
+ ROMX_LOAD( "tk2_03.5a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-2m.4a
+ ROMX_LOAD( "tk2_04.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-4m.6a
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( wofs05 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "tk2j_23hc05.8f", 0x000000, 0x80000, CRC(6ae4b312) SHA1(fa39f69385d180d90bccd8c5dc9262edd04a6457) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22hc05.7f", 0x080000, 0x80000, CRC(94e8d01a) SHA1(875763f6b22734c1a5a890e6c8063515c134045b) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2_01.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-1m.3a
+ ROMX_LOAD( "tk2_02.4a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-3m.5a
+ ROMX_LOAD( "tk2_03.5a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-2m.4a
+ ROMX_LOAD( "tk2_04.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-4m.6a
+ ROMX_LOAD( "tk2_05hc05.7a", 0x200000, 0x80000, CRC(34949d7b) SHA1(90925a77b08c97cfdbf0dbfbdaa359d1b33b6ae4) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06hc05.8a", 0x200002, 0x80000, CRC(dfa70971) SHA1(477b99687de38220f0aec9fbba44db03f72cb62a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07hc05.9a", 0x200004, 0x80000, CRC(073686a6) SHA1(b774a8d4c6cdbedb123ac01455f718305f23b619) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08hc05.10a", 0x200006, 0x80000, CRC(5300f8db) SHA1(b23a19910f680d60ff8afcbc15c471e74ee3569a) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( wofs06 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "tk2j_23hc06.8f", 0x000000, 0x80000, CRC(b6538354) SHA1(9f4205f3951f652f84059b38482088d0a57e68ce) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2_01.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-1m.3a
+ ROMX_LOAD( "tk2_02.4a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-3m.5a
+ ROMX_LOAD( "tk2_03.5a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-2m.4a
+ ROMX_LOAD( "tk2_04.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-4m.6a
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( wofs07 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "tk2j_23hc07.8f", 0x000000, 0x80000, CRC(a8113500) SHA1(f59bf4108ab713e3d218c5469fbba7065ed472fb) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2_01.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-1m.3a
+ ROMX_LOAD( "tk2_02.4a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-3m.5a
+ ROMX_LOAD( "tk2_03.5a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-2m.4a
+ ROMX_LOAD( "tk2_04.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-4m.6a
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( wofs08 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "tk2j_23hc08.8f", 0x000000, 0x80000, CRC(e9843991) SHA1(7a2313fce5454d4d14f847b60ff84bf3daa2e724) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2_01.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-1m.3a
+ ROMX_LOAD( "tk2_02.4a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-3m.5a
+ ROMX_LOAD( "tk2_03.5a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-2m.4a
+ ROMX_LOAD( "tk2_04.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-4m.6a
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( wofs09 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "tk2u_23hc09.8f", 0x000000, 0x80000, CRC(29b89c12) SHA1(2b474b4f45a4ccb0db2a4d5e7ef30e28b5c6cc3a) )
+ ROM_LOAD16_WORD_SWAP( "tk2u_22c.7f", 0x080000, 0x80000, CRC(f5af4774) SHA1(f6d53cf5b330e6d68f84da3e8c831a475585b93e) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-5m.7a", 0x200000, 0x80000, CRC(291f0f0b) SHA1(094baf0f960f25fc2525b3b1cc378a49d9a0955d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-7m.9a", 0x200002, 0x80000, CRC(3edeb949) SHA1(c155698dd9ee9eb24bbc97a21118ef2e897ea82f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-6m.8a", 0x200004, 0x80000, CRC(1abd14d6) SHA1(dffff3126f102b4ec028a81405fc5b9bd7bb65b3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-8m.10a", 0x200006, 0x80000, CRC(b27948e3) SHA1(870d5d23f56798831c641e877ea94217058b2ddc) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( wofs10 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "tk2j_23hc10.8f", 0x000000, 0x80000, CRC(167b2d9b) SHA1(86f0acf3b66b8bb07aadf55cfeaa6c5fd5895a74) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2_01.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-1m.3a
+ ROMX_LOAD( "tk2_02.4a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-3m.5a
+ ROMX_LOAD( "tk2_03.5a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-2m.4a
+ ROMX_LOAD( "tk2_04.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-4m.6a
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( wofs11 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "tk2j_23hc11.8f", 0x000000, 0x80000, CRC(5be9e0de) SHA1(88e222a508fb7cce23f339c26852c3e75b1ec88e) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2_01.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-1m.3a
+ ROMX_LOAD( "tk2_02.4a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-3m.5a
+ ROMX_LOAD( "tk2_03.5a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-2m.4a
+ ROMX_LOAD( "tk2_04.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-4m.6a
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( wofs12 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "tk2a_23hc12.8f", 0x000000, 0x80000, CRC(d28f97a3) SHA1(327851c71992ef4f2529b9a89581175e5f76d533) ) // patched?
+ ROM_LOAD16_WORD_SWAP( "tk2a_22c.7f", 0x080000, 0x80000, CRC(900ad4cd) SHA1(988007447f93f3467029b9c29fd9670a7ecadaa3) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-5m.7a", 0x200000, 0x80000, CRC(291f0f0b) SHA1(094baf0f960f25fc2525b3b1cc378a49d9a0955d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-7m.9a", 0x200002, 0x80000, CRC(3edeb949) SHA1(c155698dd9ee9eb24bbc97a21118ef2e897ea82f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-6m.8a", 0x200004, 0x80000, CRC(1abd14d6) SHA1(dffff3126f102b4ec028a81405fc5b9bd7bb65b3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-8m.10a", 0x200006, 0x80000, CRC(b27948e3) SHA1(870d5d23f56798831c641e877ea94217058b2ddc) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( wofs13 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "tk2j_23hc13.8f", 0x000000, 0x80000, CRC(8c1f95b7) SHA1(c67ea2528d1116ccc5ca2d10d11bc23f310eb223) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2_01.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-1m.3a
+ ROMX_LOAD( "tk2_02.4a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-3m.5a
+ ROMX_LOAD( "tk2_03.5a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-2m.4a
+ ROMX_LOAD( "tk2_04.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-4m.6a
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( wofs14 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "tk2j_23hc14.8f", 0x000000, 0x80000, CRC(28f1ceba) SHA1(8844ce861d5bdd08d2fbc1282454cc4b35ca3771) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22hc14.7f", 0x080000, 0x80000, CRC(130b8903) SHA1(797ed2749f6d2a70dca29a911cc021564de8ec83) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2_01.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-1m.3a
+ ROMX_LOAD( "tk2_02.4a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-3m.5a
+ ROMX_LOAD( "tk2_03.5a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-2m.4a
+ ROMX_LOAD( "tk2_04.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-4m.6a
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( wofs15 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "tk2j_23hc15.8f", 0x000000, 0x80000, CRC(8c3772db) SHA1(a2ccd41a6c8f5e81dba6acad623ff381d5150e5b) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2_01.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-1m.3a
+ ROMX_LOAD( "tk2_02.4a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-3m.5a
+ ROMX_LOAD( "tk2_03.5a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-2m.4a
+ ROMX_LOAD( "tk2_04.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-4m.6a
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( wofs16 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "tk2u_23hc16.8f", 0x000000, 0x80000, CRC(2dab7e87) SHA1(1eaeab25713c2475ad117e9a3bf543afe44a120c) )
+ ROM_LOAD16_WORD_SWAP( "tk2u_22c.7f", 0x080000, 0x80000, CRC(f5af4774) SHA1(f6d53cf5b330e6d68f84da3e8c831a475585b93e) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-5m.7a", 0x200000, 0x80000, CRC(291f0f0b) SHA1(094baf0f960f25fc2525b3b1cc378a49d9a0955d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-7m.9a", 0x200002, 0x80000, CRC(3edeb949) SHA1(c155698dd9ee9eb24bbc97a21118ef2e897ea82f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-6m.8a", 0x200004, 0x80000, CRC(1abd14d6) SHA1(dffff3126f102b4ec028a81405fc5b9bd7bb65b3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-8m.10a", 0x200006, 0x80000, CRC(b27948e3) SHA1(870d5d23f56798831c641e877ea94217058b2ddc) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( wofs17 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "tk2a_23hc17.8f", 0x000000, 0x80000, CRC(8fc788b1) SHA1(d2d49622618f967fd9ab96a1b3555e4dbcb55cb5) ) // patched?
+ ROM_LOAD16_WORD_SWAP( "tk2a_22hc17.7f", 0x080000, 0x80000, CRC(fd8d3355) SHA1(4444cd93df492f779b721dd60ccf225af14229c7) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "3js_gfx5.rom", 0x200000, 0x80000, CRC(94b58f82) SHA1(937e7bb74e47f7ed670f63cdf7e502cf6ffe09c8), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "3js_gfx7.rom", 0x200002, 0x80000, CRC(df4fb386) SHA1(4eece42595084dbab1fa2c603f231fc67efb292d), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "3js_gfx6.rom", 0x200004, 0x80000, CRC(c22c5bd8) SHA1(4dd3598ca9cbbceabfb28b1b0d8a4879fcdb9a13), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "3js_gfx8.rom", 0x200006, 0x80000, CRC(f9cfd08b) SHA1(cd55ef014705d8b07c3eb9dafdbf2a831ea25b7c), ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( wofs18 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "tk2j_23hc18.8f", 0x000000, 0x80000, CRC(f437c25d) SHA1(ac8ab24800bf012fab571027a086000095eaa039) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2_01.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-1m.3a
+ ROMX_LOAD( "tk2_02.4a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-3m.5a
+ ROMX_LOAD( "tk2_03.5a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-2m.4a
+ ROMX_LOAD( "tk2_04.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-4m.6a
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( wofs19 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "tk2j_23hc19.8f", 0x000000, 0x80000, CRC(ae84e853) SHA1(14a731973e7c42deb128d1ec0e71ec4f92bd0298) )
+ ROM_LOAD16_WORD_SWAP( "tk2c19.22", 0x080000, 0x80000, CRC(4b2591c4) SHA1(8ba8efa94057fd7d183b9266009051ac81fe0581) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2_01.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-1m.3a
+ ROMX_LOAD( "tk2_02.4a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-3m.5a
+ ROMX_LOAD( "tk2_03.5a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-2m.4a
+ ROMX_LOAD( "tk2_04.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-4m.6a
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( wofs20 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "tk2j_23hc20.8f", 0x000000, 0x80000, CRC(56e48df0) SHA1(d44662abc1dfbe7b513daa08d052f5d8ff0d7fa8) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2_01.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-1m.3a
+ ROMX_LOAD( "tk2_02.4a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-3m.5a
+ ROMX_LOAD( "tk2_03.5a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-2m.4a
+ ROMX_LOAD( "tk2_04.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-4m.6a
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( wofs21 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "tk2j_23hc21.8f", 0x000000, 0x80000, CRC(47a6b064) SHA1(2369efe0f982899fb12df08c895251f0930b3460) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2_01.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-1m.3a
+ ROMX_LOAD( "tk2_02.4a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-3m.5a
+ ROMX_LOAD( "tk2_03.5a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-2m.4a
+ ROMX_LOAD( "tk2_04.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-4m.6a
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( wofs22 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "tk2j_23hc22.8f", 0x000000, 0x80000, CRC(882525ed) SHA1(209bd4df90b7e5f86986b6b14325e159bd729d3f) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22hc22.7f", 0x080000, 0x80000, CRC(fef38486) SHA1(f888c59aea10414a36062ffe3b580e55423df3e9) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2_01.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-1m.3a
+ ROMX_LOAD( "tk2_02.4a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-3m.5a
+ ROMX_LOAD( "tk2_03.5a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-2m.4a
+ ROMX_LOAD( "tk2_04.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-4m.6a
+ ROMX_LOAD( "tk2-5m.7a", 0x200000, 0x80000, CRC(291f0f0b) SHA1(094baf0f960f25fc2525b3b1cc378a49d9a0955d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-7m.9a", 0x200002, 0x80000, CRC(3edeb949) SHA1(c155698dd9ee9eb24bbc97a21118ef2e897ea82f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-6m.8a", 0x200004, 0x80000, CRC(1abd14d6) SHA1(dffff3126f102b4ec028a81405fc5b9bd7bb65b3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-8m.10a", 0x200006, 0x80000, CRC(b27948e3) SHA1(870d5d23f56798831c641e877ea94217058b2ddc) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( wofs23 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "tk2j_23hc23.8f", 0x000000, 0x80000, CRC(7cc14379) SHA1(45be8bef96cca7991422451bda70e08ecc96b5e1) )
+ ROM_LOAD16_WORD_SWAP( "tk2c19.22", 0x080000, 0x80000, CRC(4b2591c4) SHA1(8ba8efa94057fd7d183b9266009051ac81fe0581) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2_01.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-1m.3a
+ ROMX_LOAD( "tk2_02.4a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-3m.5a
+ ROMX_LOAD( "tk2_03.5a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-2m.4a
+ ROMX_LOAD( "tk2_04.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-4m.6a
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( wofs24 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "tk2j_23hc24.8f", 0x000000, 0x80000, CRC(6c1683ee) SHA1(f22df63cae994fca6955f72313dd204a4734aa94) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2_01.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-1m.3a
+ ROMX_LOAD( "tk2_02.4a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-3m.5a
+ ROMX_LOAD( "tk2_03.5a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-2m.4a
+ ROMX_LOAD( "tk2_04.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-4m.6a
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( wofs25 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "tk2j_23hc25.8f", 0x000000, 0x80000, CRC(13deebfd) SHA1(c05e3f48b7de0e7b0774fab90cf53dae8f0d6885) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2_01.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-1m.3a
+ ROMX_LOAD( "tk2_02.4a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-3m.5a
+ ROMX_LOAD( "tk2_03.5a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-2m.4a
+ ROMX_LOAD( "tk2_04.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-4m.6a
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( wofs26 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "tk2j_23hc26.8f", 0x000000, 0x80000, CRC(86c23608) SHA1(0629d82779f6973514582e4a218f63429dccd080) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22c.7f", 0x080000, 0x80000, CRC(b74b09ac) SHA1(3a44d6db5f51e1b5d2b43ef0ad1191da21e48427) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2_01.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-1m.3a
+ ROMX_LOAD( "tk2_02.4a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-3m.5a
+ ROMX_LOAD( "tk2_03.5a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-2m.4a
+ ROMX_LOAD( "tk2_04.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-4m.6a
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( wofs27 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "tk2u_23hc27.8f", 0x000000, 0x80000, CRC(9acb4db4) SHA1(c335c2c9a478dccc5e7efcff19a06127bd8d6c53) )
+ ROM_LOAD16_WORD_SWAP( "tk2u_22c.7f", 0x080000, 0x80000, CRC(f5af4774) SHA1(f6d53cf5b330e6d68f84da3e8c831a475585b93e) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-5m.7a", 0x200000, 0x80000, CRC(291f0f0b) SHA1(094baf0f960f25fc2525b3b1cc378a49d9a0955d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-7m.9a", 0x200002, 0x80000, CRC(3edeb949) SHA1(c155698dd9ee9eb24bbc97a21118ef2e897ea82f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-6m.8a", 0x200004, 0x80000, CRC(1abd14d6) SHA1(dffff3126f102b4ec028a81405fc5b9bd7bb65b3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-8m.10a", 0x200006, 0x80000, CRC(b27948e3) SHA1(870d5d23f56798831c641e877ea94217058b2ddc) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( wofs28 )
+ ROM_REGION( 0x868000, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "tk2j_23hc28.8f", 0x000000, 0x454F65, CRC(9b215a68) SHA1(09071a19c6d46006476b895cf147f985c76b7cdb) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22hc28.7f", 0x080000, 0x454F4B, CRC(b74b09ac) SHA1(932891fb6f2dd279319d5296b70217e25cf1f221) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2_01.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-1m.3a
+ ROMX_LOAD( "tk2_02.4a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-3m.5a
+ ROMX_LOAD( "tk2_03.5a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-2m.4a
+ ROMX_LOAD( "tk2_04.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-4m.6a
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( wofs29 )
+ ROM_REGION( 0x868000, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "tk2j_23hc29.8f", 0x000000, 0x454F61, CRC(1efb9db3) SHA1(f19fcb045b00713fcde235b5e1aae2ef3c1d9c4f) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22hc29.7f", 0x080000, 0x454F49, CRC(eaf087c7) SHA1(92cdc073c045e4944b493b70ef60a6fd34cb7e01) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2_01.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-1m.3a
+ ROMX_LOAD( "tk2_02.4a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-3m.5a
+ ROMX_LOAD( "tk2_03.5a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-2m.4a
+ ROMX_LOAD( "tk2_04.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-4m.6a
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( wofs30 )
+ ROM_REGION( 0x868000, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "tk2j_23hc30.8f", 0x000000, 0x454F4A, CRC(0cf3e51c) SHA1(55575f4e05b1bea92ab29a460ef8256971b459ea) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22hc30.7f", 0x080000, 0x454F96, CRC(4ae709b1) SHA1(202c161aa1f17b757292485fef8923dff73fead3) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2_01.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-1m.3a
+ ROMX_LOAD( "tk2_02.4a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-3m.5a
+ ROMX_LOAD( "tk2_03.5a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-2m.4a
+ ROMX_LOAD( "tk2_04.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-4m.6a
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( wofs31 )
+ ROM_REGION( 0x868000, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "tk2j_23hc31.8f", 0x000000, 0x454F69, CRC(c70a7931) SHA1(6c724f0d1821b35f6ec034bc25fce4afd2338462) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22hc31.7f", 0x080000, 0x454F68, CRC(b74b09ac) SHA1(4fed5f2a62351acb4f37a1cae215a22272bd7ad1) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2_01.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-1m.3a
+ ROMX_LOAD( "tk2_02.4a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-3m.5a
+ ROMX_LOAD( "tk2_03.5a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-2m.4a
+ ROMX_LOAD( "tk2_04.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-4m.6a
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( wofs32 )
+ROM_REGION( 0x868000, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "tk2j_23hc32.8f", 0x000000, 0x80004, CRC(9b215a68) SHA1(20149a01cce5254f260dfc7c1b6f89d372f69a5d) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22hc32.7f", 0x080000, 0x80004, CRC(b74b09ac) SHA1(20a4c54b09e04f0f2c660bde45a4e5ab22f7894e) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2_01.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-1m.3a
+ ROMX_LOAD( "tk2_02.4a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-3m.5a
+ ROMX_LOAD( "tk2_03.5a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-2m.4a
+ ROMX_LOAD( "tk2_04.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-4m.6a
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( wofs33 )
+ ROM_REGION( 0x868000, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "tk2j_23hc33.8f", 0x000000, 0x454F71, CRC(ca917791) SHA1(a96bee26aadca5943830b51442618b6998aaadf3) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22hc33.7f", 0x080000, 0x45505E, CRC(ebfd924c) SHA1(7aecac91d72ee307d9937885b2a0a123833ffac5) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2_01.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-1m.3a
+ ROMX_LOAD( "tk2_02.4a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-3m.5a
+ ROMX_LOAD( "tk2_03.5a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-2m.4a
+ ROMX_LOAD( "tk2_04.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-4m.6a
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( wofs34 )
+ ROM_REGION( 0x868000, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "tk2j_23hc34.8f", 0x000000, 0x454F47, CRC(9870f209) SHA1(741e43fa047607deeb6239971fe733cbfb999481) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22hc34.7f", 0x080000, 0x454F91, CRC(247bc32b) SHA1(da1419d1826263c8c7c244567c4e8f589914e793) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2_01.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-1m.3a
+ ROMX_LOAD( "tk2_02.4a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-3m.5a
+ ROMX_LOAD( "tk2_03.5a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-2m.4a
+ ROMX_LOAD( "tk2_04.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-4m.6a
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( wofs35 )
+ ROM_REGION( 0x868000, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "tk2j_23hc35.8f", 0x000000, 0x454F61, CRC(6e146c41) SHA1(9a51d530647aea94be1b8585bd822e27e5616c69) )
+ ROM_LOAD16_WORD_SWAP( "tk2j_22hc35.7f", 0x080000, 0x45505E, CRC(c7afcd0c) SHA1(8b5246a5f8593a4196c5107694fb9f4e2f2fe682) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2_01.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-1m.3a
+ ROMX_LOAD( "tk2_02.4a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-3m.5a
+ ROMX_LOAD( "tk2_03.5a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-2m.4a
+ ROMX_LOAD( "tk2_04.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-4m.6a
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( wofs36 )
+ ROM_REGION( 0x868000, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "tk2hc36_23c.8f", 0x000000, 0x454F48, CRC(73e0091e) SHA1(0c21af0e8c03d638070b1dc532e5357adf1f75d4) )
+ ROM_LOAD16_WORD_SWAP( "tk2hc36_22c.7f", 0x080000, 0x454F48, CRC(d0d7c9ee) SHA1(bf27b0ab6f721462730ed976de1a2f69f7e458f7) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2_01.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-1m.3a
+ ROMX_LOAD( "tk2_02.4a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-3m.5a
+ ROMX_LOAD( "tk2_03.5a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-2m.4a
+ ROMX_LOAD( "tk2_04.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-4m.6a
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( wofs37 )
+ ROM_REGION( 0x868000, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "tk2hc37_23c.8f", 0x000000, 0x454FE8, CRC(214b8367) SHA1(4c18766aa54fe15341fd30f6d23a71129854a7df) )
+ ROM_LOAD16_WORD_SWAP( "tk2hc37_22c.7f", 0x080000, 0x4551A0, CRC(c6dbedec) SHA1(13289a2b2ea4d4fd5ae92c596b8be77894b6b2fc) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2_01.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-1m.3a
+ ROMX_LOAD( "tk2_02.4a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-3m.5a
+ ROMX_LOAD( "tk2_03.5a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-2m.4a
+ ROMX_LOAD( "tk2_04.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-4m.6a
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( wofs38 )
+ ROM_REGION( 0x868000, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "tk2hc38_23c.8f", 0x000000, 0x454F4F, CRC(06c90133) SHA1(6b8e0334191358306633298563a87ccc7732ceb4) )
+ ROM_LOAD16_WORD_SWAP( "tk2hc38_22c.7f", 0x080000, 0x455072, CRC(bd03e00c) SHA1(694c9b0d9c90d487303834bfbafcbd080b7b2805) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2_01.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-1m.3a
+ ROMX_LOAD( "tk2_02.4a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-3m.5a
+ ROMX_LOAD( "tk2_03.5a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-2m.4a
+ ROMX_LOAD( "tk2_04.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2-4m.6a
+ ROMX_LOAD( "tk2_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_07.9a", 0x200004, 0x80000, CRC(d706568e) SHA1(7886414dc86c42e35d24b85c4bfa41a9f0c167ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "wof.key", 0x000000, 0x000080, CRC(ef8848dd) SHA1(e500a89ddb16abb31c7cb45f8dbea922d01fccc1) )
+ROM_END
+
+ROM_START( wofhl01 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "tk2(ch)_23hc01.8f", 0x000000, 0x80000, CRC(3af13d5a) SHA1(a33f73f7d2547c2b1e5cd72a355732fd981f675d) )
+ ROM_LOAD16_WORD_SWAP( "tk2(ch)_22hc01.7f", 0x080000, 0x80000, CRC(1ee37ef0) SHA1(5eccdfae38c67ff60d5329cbd1e0ded304f61537) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2(ch)_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2_05.7a
+ ROMX_LOAD( "tk2(ch)_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2_06.8a
+ ROMX_LOAD( "tk2(ch)_07.9a", 0x200004, 0x80000, CRC(cc9006c9) SHA1(cfcbec3a67052268a7739538aa28a6391fe5400e) , ROM_GROUPWORD | ROM_SKIP(6) ) /* 1 byte different from wofj, pcb verified */
+ ROMX_LOAD( "tk2(ch)_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2_08.10a
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "wofch.key", 0x000000, 0x000080, CRC(23f2d0bb) SHA1(48ba9300bc2136e9583754a51d5ab2532eca85c6) )
+ROM_END
+
+ROM_START( wofhl02 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "tk2(ch)_23hc02.8f", 0x000000, 0x80000, CRC(64b80f07) SHA1(7efd1636f875a8d029ae229d97b4e5d8f2065858) )
+ ROM_LOAD16_WORD_SWAP( "tk2(ch)_22hc02.7f", 0x080000, 0x80000, CRC(87b8f045) SHA1(83b8d261e993d7885ddd58282227b95a66e6f17f) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "tk2-1m.3a", 0x000000, 0x80000, CRC(0d9cb9bf) SHA1(cc7140e9a01a14b252cb1090bcea32b0de461928) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-3m.5a", 0x000002, 0x80000, CRC(45227027) SHA1(b21afc593f0d4d8909dfa621d659cbb40507d1b2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-2m.4a", 0x000004, 0x80000, CRC(c5ca2460) SHA1(cbe14867f7b94b638ca80db7c8e0c60881183469) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2-4m.6a", 0x000006, 0x80000, CRC(e349551c) SHA1(1d977bdf256accf750ad9930ec4a0a19bbf86964) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "tk2(ch)_05.7a", 0x200000, 0x80000, CRC(e4a44d53) SHA1(b747679f4d63e5e62d9fd81b3120fba0401fadfb) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2_05.7a
+ ROMX_LOAD( "tk2(ch)_06.8a", 0x200002, 0x80000, CRC(58066ba8) SHA1(c93af968e21094d020e4b2002e0c6fc0d746af0b) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2_06.8a
+ ROMX_LOAD( "tk2(ch)_07.9a", 0x200004, 0x80000, CRC(cc9006c9) SHA1(cfcbec3a67052268a7739538aa28a6391fe5400e) , ROM_GROUPWORD | ROM_SKIP(6) ) /* 1 byte different from wofj, pcb verified */
+ ROMX_LOAD( "tk2(ch)_08.10a", 0x200006, 0x80000, CRC(d4a19a02) SHA1(ff396b1d33d9b4842140f2c6d085fe05748e3244) , ROM_GROUPWORD | ROM_SKIP(6) ) // == tk2_08.10a
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "wofch.key", 0x000000, 0x000080, CRC(23f2d0bb) SHA1(48ba9300bc2136e9583754a51d5ab2532eca85c6) )
+ROM_END
+
+/***************************************
+ Sangokushi II
+***************************************/
+
+ROM_START( wofh01 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tk2_23hc01.23", 0x000000, 0x100000, CRC(885594f5) SHA1(e9b259c3544a58b6906814eead7d7ea2d817e0a6) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "sgyx-1.160", 0x000000, 0x80000, CRC(a60be9f6) SHA1(2298a4b6a2c83b76dc106a1efa19606b298d378a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000004, 0x80000 )
+ ROM_CONTINUE( 0x200000, 0x80000 )
+ ROM_CONTINUE( 0x200004, 0x80000 )
+ ROMX_LOAD( "sgyx-2.160", 0x000002, 0x80000, CRC(6ad9d048) SHA1(d47212d28d0a1ce349e4c59e5d0d99c541b3458e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000006, 0x80000 )
+ ROM_CONTINUE( 0x200002, 0x80000 )
+ ROM_CONTINUE( 0x200006, 0x80000 )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code + space for decrypted opcodes */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "sk2h1.key", 0x000000, 0x000080, CRC(dccefd4d) SHA1(01050b7d1805503a5c7098dfb98d8afa79cf0fe0) )
+ROM_END
+
+ROM_START( wofh02 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sgyxhc01.800", 0x000000, 0x100000, CRC(0882fd47) SHA1(683bef85c75d83731c31e2733bf0369f26414550) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "sgyx-1.160", 0x000000, 0x80000, CRC(a60be9f6) SHA1(2298a4b6a2c83b76dc106a1efa19606b298d378a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000004, 0x80000 )
+ ROM_CONTINUE( 0x200000, 0x80000 )
+ ROM_CONTINUE( 0x200004, 0x80000 )
+ ROMX_LOAD( "sgyx-2.160", 0x000002, 0x80000, CRC(6ad9d048) SHA1(d47212d28d0a1ce349e4c59e5d0d99c541b3458e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000006, 0x80000 )
+ ROM_CONTINUE( 0x200002, 0x80000 )
+ ROM_CONTINUE( 0x200006, 0x80000 )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code + space for decrypted opcodes */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "sk2h1.key", 0x000000, 0x000080, CRC(dccefd4d) SHA1(01050b7d1805503a5c7098dfb98d8afa79cf0fe0) )
+ROM_END
+
+ROM_START( wofh03 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sgyxhc02.800", 0x000000, 0x100000, CRC(fa96a53b) SHA1(c0d6194ecbab417c7ce83b1af0307ff12cf78404) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "sgyx-1.160", 0x000000, 0x80000, CRC(a60be9f6) SHA1(2298a4b6a2c83b76dc106a1efa19606b298d378a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000004, 0x80000 )
+ ROM_CONTINUE( 0x200000, 0x80000 )
+ ROM_CONTINUE( 0x200004, 0x80000 )
+ ROMX_LOAD( "sgyx-2.160", 0x000002, 0x80000, CRC(6ad9d048) SHA1(d47212d28d0a1ce349e4c59e5d0d99c541b3458e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000006, 0x80000 )
+ ROM_CONTINUE( 0x200002, 0x80000 )
+ ROM_CONTINUE( 0x200006, 0x80000 )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code + space for decrypted opcodes */
+ ROM_LOAD( "tk2_qa.5k", 0x00000, 0x08000, CRC(c9183a0d) SHA1(d8b1d41c572f08581f8ab9eb878de77d6ea8615d) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "tk2-q1.1k", 0x000000, 0x80000, CRC(611268cf) SHA1(83ab059f2110fb25fdcff928d56b790fc1f5c975) )
+ ROM_LOAD( "tk2-q2.2k", 0x080000, 0x80000, CRC(20f55ca9) SHA1(90134e9a9c4749bb65c728b66ea4dac1fd4d88a4) )
+ ROM_LOAD( "tk2-q3.3k", 0x100000, 0x80000, CRC(bfcf6f52) SHA1(2a85ff3fc89b4cbabd20779ec12da2e116333c7c) )
+ ROM_LOAD( "tk2-q4.4k", 0x180000, 0x80000, CRC(36642e88) SHA1(8ab25b19e2b67215a5cb1f3aa81b9d26009cfeb8) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "sk2h1.key", 0x000000, 0x000080, CRC(dccefd4d) SHA1(01050b7d1805503a5c7098dfb98d8afa79cf0fe0) )
+ROM_END
+
+/***************************************
+ The Punisher
+***************************************/
+
+ROM_START( punishers01 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "psj_23hc01.8f", 0x000000, 0x80000, CRC(6c072814) SHA1(455f124cccaaff37e4972bb78bb09a8f36e861c8) )
+ ROM_LOAD16_WORD_SWAP( "psj_22.7f", 0x080000, 0x80000, CRC(e01036bc) SHA1(a01886014dabe8f9ab45619865c6bd9f27472eae) )
+ ROM_LOAD16_WORD_SWAP( "psj_21.6f", 0x100000, 0x80000, CRC(8affa5a9) SHA1(268760b83b1723ff50a019ec51ef7af2e49935bf) ) // == ps_21.6f
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "ps_01.3a", 0x000000, 0x80000, CRC(77b7ccab) SHA1(e08e5d55a79e4c0c8ca819d6d7d2a14f753c6ec3) , ROM_GROUPWORD | ROM_SKIP(6) ) // == ps-1m.3a
+ ROMX_LOAD( "ps_02.4a", 0x000002, 0x80000, CRC(0122720b) SHA1(5f0d3097e097f64106048156fbb0d343fe78fffa) , ROM_GROUPWORD | ROM_SKIP(6) ) // == ps-3m.5a
+ ROMX_LOAD( "ps_03.5a", 0x000004, 0x80000, CRC(64fa58d4) SHA1(d4a774285ed15273195b6b26d2965ce370e54e73) , ROM_GROUPWORD | ROM_SKIP(6) ) // == ps-2m.4a
+ ROMX_LOAD( "ps_04.6a", 0x000006, 0x80000, CRC(60da42c8) SHA1(95eec4a58d9628a2d9764951dd8dc11e4860a899) , ROM_GROUPWORD | ROM_SKIP(6) ) // == ps-4m.6a
+ ROMX_LOAD( "ps_05.7a", 0x200000, 0x80000, CRC(c54ea839) SHA1(0733f37329edd9d0cace1319a7544b40aa7ecb0b) , ROM_GROUPWORD | ROM_SKIP(6) ) // == ps-5m.7a
+ ROMX_LOAD( "ps_06.8a", 0x200002, 0x80000, CRC(04c5acbd) SHA1(fddc94b0f36d4d22d7c357856ae15b7514c342d3) , ROM_GROUPWORD | ROM_SKIP(6) ) // == ps-7m.9a
+ ROMX_LOAD( "ps_07.9a", 0x200004, 0x80000, CRC(a544f4cc) SHA1(9552df8934ba25f19a22f2e07783712d8c8ef03c) , ROM_GROUPWORD | ROM_SKIP(6) ) // == ps-6m.8a
+ ROMX_LOAD( "ps_08.10a", 0x200006, 0x80000, CRC(8f02f436) SHA1(a2f0ebb7e9593469c7b843f8962a66f3d77f79e5) , ROM_GROUPWORD | ROM_SKIP(6) ) // == ps-8m.10a
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "ps_q.5k", 0x00000, 0x08000, CRC(49ff4446) SHA1(87af12f87a940a6c5428b4574ad44a4b54867bc3) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "ps-q1.1k", 0x000000, 0x80000, CRC(31fd8726) SHA1(1d73a76682e9fb908db0c55b9a18163f7539fea1) )
+ ROM_LOAD( "ps-q2.2k", 0x080000, 0x80000, CRC(980a9eef) SHA1(36571381f349bc726508a7e618ba1c635ec9d271) )
+ ROM_LOAD( "ps-q3.3k", 0x100000, 0x80000, CRC(0dd44491) SHA1(903cea1d7f3120545ea3229d30fbd687d11ad68f) )
+ ROM_LOAD( "ps-q4.4k", 0x180000, 0x80000, CRC(bed42f03) SHA1(21302f7e75f9c795392a3b34e16a959fc5f6e4e9) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "punisher.key", 0x000000, 0x000080, CRC(8e992ffa) SHA1(4f09427600cef4feb49a8a488caadaaa7b327484) )
+ROM_END
+
+ROM_START( punishers02 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "psj_23hc02.8f", 0x000000, 0x80000, CRC(476296eb) SHA1(296306b4ed6229f4e7704073ab59aeb17d692105) )
+ ROM_LOAD16_WORD_SWAP( "psj_22.7f", 0x080000, 0x80000, CRC(e01036bc) SHA1(a01886014dabe8f9ab45619865c6bd9f27472eae) )
+ ROM_LOAD16_WORD_SWAP( "psj_21.6f", 0x100000, 0x80000, CRC(8affa5a9) SHA1(268760b83b1723ff50a019ec51ef7af2e49935bf) ) // == ps_21.6f
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "ps_01.3a", 0x000000, 0x80000, CRC(77b7ccab) SHA1(e08e5d55a79e4c0c8ca819d6d7d2a14f753c6ec3) , ROM_GROUPWORD | ROM_SKIP(6) ) // == ps-1m.3a
+ ROMX_LOAD( "ps_02.4a", 0x000002, 0x80000, CRC(0122720b) SHA1(5f0d3097e097f64106048156fbb0d343fe78fffa) , ROM_GROUPWORD | ROM_SKIP(6) ) // == ps-3m.5a
+ ROMX_LOAD( "ps_03.5a", 0x000004, 0x80000, CRC(64fa58d4) SHA1(d4a774285ed15273195b6b26d2965ce370e54e73) , ROM_GROUPWORD | ROM_SKIP(6) ) // == ps-2m.4a
+ ROMX_LOAD( "ps_04.6a", 0x000006, 0x80000, CRC(60da42c8) SHA1(95eec4a58d9628a2d9764951dd8dc11e4860a899) , ROM_GROUPWORD | ROM_SKIP(6) ) // == ps-4m.6a
+ ROMX_LOAD( "ps_05.7a", 0x200000, 0x80000, CRC(c54ea839) SHA1(0733f37329edd9d0cace1319a7544b40aa7ecb0b) , ROM_GROUPWORD | ROM_SKIP(6) ) // == ps-5m.7a
+ ROMX_LOAD( "ps_06.8a", 0x200002, 0x80000, CRC(04c5acbd) SHA1(fddc94b0f36d4d22d7c357856ae15b7514c342d3) , ROM_GROUPWORD | ROM_SKIP(6) ) // == ps-7m.9a
+ ROMX_LOAD( "ps_07.9a", 0x200004, 0x80000, CRC(a544f4cc) SHA1(9552df8934ba25f19a22f2e07783712d8c8ef03c) , ROM_GROUPWORD | ROM_SKIP(6) ) // == ps-6m.8a
+ ROMX_LOAD( "ps_08.10a", 0x200006, 0x80000, CRC(8f02f436) SHA1(a2f0ebb7e9593469c7b843f8962a66f3d77f79e5) , ROM_GROUPWORD | ROM_SKIP(6) ) // == ps-8m.10a
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* QSound Z80 code */
+ ROM_LOAD( "ps_q.5k", 0x00000, 0x08000, CRC(49ff4446) SHA1(87af12f87a940a6c5428b4574ad44a4b54867bc3) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x200000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "ps-q1.1k", 0x000000, 0x80000, CRC(31fd8726) SHA1(1d73a76682e9fb908db0c55b9a18163f7539fea1) )
+ ROM_LOAD( "ps-q2.2k", 0x080000, 0x80000, CRC(980a9eef) SHA1(36571381f349bc726508a7e618ba1c635ec9d271) )
+ ROM_LOAD( "ps-q3.3k", 0x100000, 0x80000, CRC(0dd44491) SHA1(903cea1d7f3120545ea3229d30fbd687d11ad68f) )
+ ROM_LOAD( "ps-q4.4k", 0x180000, 0x80000, CRC(bed42f03) SHA1(21302f7e75f9c795392a3b34e16a959fc5f6e4e9) )
+
+ ROM_REGION( 0x80, "control", 0 )
+ ROM_LOAD_OPTIONAL( "punisher.key", 0x000000, 0x000080, CRC(8e992ffa) SHA1(4f09427600cef4feb49a8a488caadaaa7b327484) )
+ROM_END
+
+/*************************************
+ *
+ * Game driver(s)
+ *
+ *************************************/
+// Proyecto Shadows Mame Build Plus
+/* YEAR NAME PARENT MACHINE INPUT INIT MONITOR COMPANY FULLNAME FLAGS */
+// Captain Commando
+GAME( 1991, captcomms01, captcomm, cps1_10MHz, captcomm, cps_state, cps1, ROT0, "Hacks", "Captain Commando (Characters Change Hack By Pipi899 20/01/09)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, captcomms02, captcomm, cps1_10MHz, captcomm, cps_state, cps1, ROT0, "Hacks", "Captain Commando (Description Of Unknown Origin 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, captcomms03, captcomm, cps1_10MHz, captcomm, cps_state, cps1, ROT0, "Hacks", "Captain Commando (Description Of Unknown Origin 02)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, captcomms04, captcomm, cps1_10MHz, captcomm, cps_state, cps1, ROT0, "Hacks", "Captain Commando (1VS4 Hack By Pipi899, Cheat By sssskkkk 25/04/09)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, captcomms05, captcomm, cps1_10MHz, captcomm, cps_state, cps1, ROT0, "Hacks", "Captain Commando (Description Of Unknown Origin 03)", MACHINE_SUPPORTS_SAVE )
+// Cadillacs and Dinosaurs
+GAME( 1993, dinos01, dino, qsound, dino, cps_state, dino, ROT0, "Hacks", "Cadillacs and Dinosaurs (Shooting With The Footkl)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, dinos02, dino, qsound, dino, cps_state, dino, ROT0, "Hacks", "Cadillacs and Dinosaurs (Difficulty Very Hard)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, dinos03, dino, qsound, dino, cps_state, dino, ROT0, "Hacks", "Cadillacs and Dinosaurs (FireArms/Weapon Items Rifle/M-16A1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, dinos04, dino, qsound, dino, cps_state, dino, ROT0, "Hacks", "Cadillacs and Dinosaurs (FireArms/Weapon Items Guns)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, dinos05, dino, qsound, dino, cps_state, dino, ROT0, "Hacks", "Cadillacs and Dinosaurs (Vitality Restoring Food Items Cake)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, dinos06, dino, qsound, dino, cps_state, dino, ROT0, "Hacks", "Cadillacs and Dinosaurs (Vitality Restoring Food Items Steak)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, dinos07, dino, qsound, dino, cps_state, dino, ROT0, "Hacks", "Cadillacs and Dinosaurs (Bonus Point Items Gold Dust)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, dinos08, dino, qsound, dino, cps_state, dino, ROT0, "Hacks", "Cadillacs and Dinosaurs (Weapon Items Uzi)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, dinos09, dino, qsound, dino, cps_state, dino, ROT0, "Hacks", "Cadillacs and Dinosaurs (Cadillacs Kyouryuu-Shinseiki Plus (2010-02-10) Alternate Set 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, dinos10, dino, qsound, dino, cps_state, dino, ROT0, "Hacks", "Cadillacs and Dinosaurs (FireArms/Weapon Club)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, dinos11, dino, qsound, dino, cps_state, dino, ROT0, "Hacks", "Cadillacs and Dinosaurs (Vitality Restoring Food Items Lobster)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, dinos12, dino, qsound, dino, cps_state, dino, ROT0, "Hacks", "Cadillacs and Dinosaurs (FireArms/Weapon Items Rod)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, dinos13, dino, qsound, dino, cps_state, dino, ROT0, "Hacks", "Cadillacs and Dinosaurs (Vitality Restoring Food Items Sushi)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, dinos14, dino, qsound, dino, cps_state, dino, ROT0, "Hacks", "Cadillacs and Dinosaurs (FireArms/Weapon Items Grenade)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, dinos15, dino, qsound, dino, cps_state, dino, ROT0, "Hacks", "Cadillacs and Dinosaurs (Vitality Restoring Food Items Paffe)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, dinos16, dino, qsound, dino, cps_state, dino, ROT0, "Hacks", "Cadillacs and Dinosaurs (Bonus Point Items Ammonite)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, dinos17, dino, qsound, dino, cps_state, dino, ROT0, "Hacks", "Cadillacs and Dinosaurs (FireArms/Weapon Items Dynamite)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, dinos18, dino, qsound, dino, cps_state, dino, ROT0, "Hacks", "Cadillacs and Dinosaurs (FireArms/Weapon Items Grenade/Dynamite)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, dinos19, dino, qsound, dino, cps_state, dino, ROT0, "Hacks", "Cadillacs and Dinosaurs (FireArms/Weapon Bazooka)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, dinos20, dino, qsound, dino, cps_state, dino, ROT0, "Hacks", "Cadillacs and Dinosaurs (Description Of Unknown Origin 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, dinos21, dino, qsound, dino, cps_state, dino, ROT0, "Hacks", "Cadillacs and Dinosaurs (FireArms/Weapon Items Rod Alternate Set 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, dinos22, dino, qsound, dino, cps_state, dino, ROT0, "Hacks", "Cadillacs and Dinosaurs (FireArms/Weapon Items Grenade/Dynamite Alternate Set 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, dinos23, dino, qsound, dino, cps_state, dino, ROT0, "Hacks", "Cadillacs and Dinosaurs (FireArms/Weapon Items Rifle/M-16A1 Alternate Set 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, dinos24, dino, qsound, dino, cps_state, dino, ROT0, "Hacks", "Cadillacs and Dinosaurs (FireArms/Weapon Items Shot Gun)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, dinos25, dino, qsound, dino, cps_state, dino, ROT0, "Hacks", "Cadillacs and Dinosaurs (Kill Enemies To Get The Weapons (Gun))", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, dinos26, dino, qsound, dino, cps_state, dino, ROT0, "Hacks", "Cadillacs and Dinosaurs (Soldiers Modify / Alternative Enemies 5X)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, dinos27, dino, qsound, dino, cps_state, dino, ROT0, "Hacks", "Cadillacs and Dinosaurs (Alternative Modified / Put Insurance Can Not Afford To Lose Blood)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, dinos28, dino, qsound, dino, cps_state, dino, ROT0, "Hacks", "Cadillacs and Dinosaurs (Bullet Unlimited Series / Weapons Unlimited + Does Not Disappear)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, dinos29, dino, qsound, dino, cps_state, dino, ROT0, "Hacks", "Cadillacs and Dinosaurs (Bullets Unlimited Series / M-16A1 Edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, dinos30, dino, qsound, dino, cps_state, dino, ROT0, "Hacks", "Cadillacs and Dinosaurs (Alternative Modification / Selection Time Is Not Reduced)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, dinos31, dino, qsound, dino, cps_state, dino, ROT0, "Hacks", "Cadillacs and Dinosaurs (Bullet Unlimited Series / Shotgun Version)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, dinos32, dino, qsound, dino, cps_state, dino, ROT0, "Hacks", "Cadillacs and Dinosaurs (Bullet Unlimited Series / Uz Assault Gun Version)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, dinos33, dino, qsound, dino, cps_state, dino, ROT0, "Hacks", "Cadillacs and Dinosaurs (Alternative Changes / Self-Mutilation)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, dinos34, dino, qsound, dino, cps_state, dino, ROT0, "Hacks", "Cadillacs and Dinosaurs (Bullet Unlimited Series / Pistol To Change The Gun Version v1.0)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, dinos35, dino, qsound, dino, cps_state, dino, ROT0, "Hacks", "Cadillacs and Dinosaurs (Start Change Char V2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, dinos36, dino, qsound, dino, cps_state, dino, ROT0, "Hacks", "Cadillacs and Dinosaurs (Kill Enemies To get Food (Ammonite))", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, dinos37, dino, qsound, dino, cps_state, dino, ROT0, "Hacks", "Cadillacs and Dinosaurs (Kill Enemies To get Food (Barbecue))", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, dinos38, dino, qsound, dino, cps_state, dino, ROT0, "Hacks", "Cadillacs and Dinosaurs (Kill Enemies To Get Food (Cake))", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, dinos39, dino, qsound, dino, cps_state, dino, ROT0, "Hacks", "Cadillacs and Dinosaurs (Kill Enemies To Get Food (Dime And Golddust))", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, dinos40, dino, qsound, dino, cps_state, dino, ROT0, "Hacks", "Cadillacs and Dinosaurs (Kill Enemies To Get Food (Dynamite))", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, dinos41, dino, qsound, dino, cps_state, dino, ROT0, "Hacks", "Cadillacs and Dinosaurs (Overall Modified - Bloody Enhanced Version (Unparalleled Version Of The Amendment 1))", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, dinos42, dino, qsound, dino, cps_state, dino, ROT0, "Hacks", "Cadillacs and Dinosaurs (Overall Modified - Bloody Enhanced Version (Unparalleled Version Of The Amendment 2))", MACHINE_SUPPORTS_SAVE )
+// GAME( 1993, dinos43, dino, qsound, dino, cps_state, dino, ROT0, "Hacks", "Cadillacs and Dinosaurs (Overall Modification / Enhanced Revised 2008 v1.1f)", MACHINE_SUPPORTS_SAVE ) // Duplicado
+GAME( 1993, dinos44, dino, qsound, dino, cps_state, dino, ROT0, "Hacks", "Cadillacs and Dinosaurs (Bullet Unlimited Series / Pistol To Change The Gun Version v2.0)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, dinos45, dino, qsound, dino, cps_state, dino, ROT0, "Hacks", "Cadillacs and Dinosaurs (Kill Enemies To Get The Weapons (Grenade))", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, dinos46, dino, qsound, dino, cps_state, dino, ROT0, "Hacks", "Cadillacs and Dinosaurs (Bullet Unlimited Series / To The Rifle Version)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, dinos47, dino, qsound, dino, cps_state, dino, ROT0, "Hacks", "Cadillacs and Dinosaurs (Kill Enemies To Get Food (Lobster))", MACHINE_SUPPORTS_SAVE )
+// GAME( 1993, dinos48, dino, qsound, dino, cps_state, dino, ROT0, "Hacks", "Cadillacs and Dinosaurs (Bullet Unlimited Series / Pistol To Rocket Version)", MACHINE_SUPPORTS_SAVE ) // Duplicado
+GAME( 1993, dinos49, dino, qsound, dino, cps_state, dino, ROT0, "Hacks", "Cadillacs and Dinosaurs (Massive Mod/Plus 2008 v1.1f)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, dinos50, dino, qsound, dino, cps_state, dino, ROT0, "Hacks", "Cadillacs and Dinosaurs (Kill Enemies To Get Food (Paffe))", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, dinos51, dino, qsound, dino, cps_state, dino, ROT0, "Hacks", "Cadillacs and Dinosaurs (Alternative Modification / Iron Fist Invincible)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, dinos52, dino, qsound, dino, cps_state, dino, ROT0, "Hacks", "Cadillacs and Dinosaurs (Kill Enemies To Get The Weapons (Rod))", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, dinos53, dino, qsound, dino, cps_state, dino, ROT0, "Hacks", "Cadillacs and Dinosaurs (Kill Enemies To Get Food (Steak))", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, dinos54, dino, qsound, dino, cps_state, dino, ROT0, "Hacks", "Cadillacs and Dinosaurs (Kill Enemies To Get Food (Sushi))", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, dinos55, dino, qsound, dino, cps_state, dino, ROT0, "Hacks", "Cadillacs and Dinosaurs (Kill Enemies To Get The Weapons (Uzi))", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1991, koduhc01, kod, cps1_10MHz, kod, cps_state, cps1, ROT0, "Hacks", "The King of Dragons (US 910910 Phoenix Edition (16b/40p))", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1991, knightsh01, knights, cps1_10MHz, knights, cps_state, cps1, ROT0, "Capcom", "Knights of the Round (Description Of Unknown Origin 01)", MACHINE_SUPPORTS_SAVE )
+//GAME( 1991, knightsh02, knights, cps1_10MHz, knights, cps_state, cps1, ROT0, "Capcom", "Knights of the Round (Description Of Unknown Origin 02)", MACHINE_SUPPORTS_SAVE )
+// The Punisher
+GAME( 1993, punishers01, punisher, qsound, punisher, cps_state, punisher, ROT0, "Hacks", "The Punisher (HandGun Hack pipi899)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, punishers02, punisher, qsound, punisher, cps_state, punisher, ROT0, "Hacks", "The Punisher (AngryBoms hack LB70)", MACHINE_SUPPORTS_SAVE )
+// Warriors of Fate
+GAME( 1992, wofs01, wof, qsound, wof, cps_state, wof, ROT0, "Hacks", "Warriors of Fate (Enhanced Game Hacks)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, wofs02, wof, qsound, wof, cps_state, wof, ROT0, "Hacks", "Sangokushi II (Description Of Unknown Origin 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, wofs03, wof, qsound, wof, cps_state, wof, ROT0, "Hacks", "Tenchi wo Kurau III (Chinese hack: Gaiden Kakou-On S Revence Dx)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, wofs04, wof, qsound, wof, cps_state, wof, ROT0, "Hacks", "Tenchi wo Kurau II (Chinese hack: Max Power)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, wofs05, wof, qsound, wof, cps_state, wof, ROT0, "Hacks", "Sangokushi II (New Start)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1992, wofs06, wof, qsound, wof, cps_state, wof, ROT0, "Hacks", "Tenchi wo Kurau II (Chinese hack: Description Of Unknown Origin 02)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, wofs07, wof, qsound, wof, cps_state, wof, ROT0, "Hacks", "Tenchi wo Kurau II (Chinese hack: New Start Boss)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, wofs08, wof, qsound, wof, cps_state, wof, ROT0, "Hacks", "Tenchi wo Kurau II (Chinese hack: New Start Boss Alternate Set 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, wofs09, wof, qsound, wof, cps_state, wof, ROT0, "Hacks", "Warriors Of Fate (Description Of Unknown Origin 03)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, wofs10, wof, qsound, wof, cps_state, wof, ROT0, "Hacks", "Tenchi wo Kurau II (Chinese hack: Max Power Alternate Set 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, wofs11, wof, qsound, wof, cps_state, wof, ROT0, "Hacks", "Tenchi wo Kurau II (Chinese hack: Description Of Unknown Origin 04)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, wofs12, wof, qsound, wof, cps_state, wof, ROT0, "Hacks", "Sangokushi II (Description Of Unknown Origin 05)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, wofs13, wof, qsound, wof, cps_state, wof, ROT0, "Hacks", "Tenchi wo Kurau II (Chinese hack: Description Of Unknown Origin 06)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, wofs14, wof, qsound, wof, cps_state, wof, ROT0, "Hacks", "Tenchi wo Kurau II (Chinese hack: Subdue The Dragon Hack By Hzzong)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, wofs15, wof, qsound, wof, cps_state, wof, ROT0, "Hacks", "Tenchi wo Kurau II (Chinese hack: Description Of Unknown Origin 07)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, wofs16, wof, qsound, wof, cps_state, wof, ROT0, "Hacks", "Warriors Of Fate (Description Of Unknown Origin 08)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, wofs17, wof, qsound, wof, cps_state, wof, ROT0, "Hacks", "Sangokushi II (Enhanced Game By Bootleg V2.1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, wofs18, wof, qsound, wof, cps_state, wof, ROT0, "Hacks", "Tenchi wo Kurau II (Chinese hack: Description Of Unknown Origin 09)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, wofs19, wof, qsound, wof, cps_state, wof, ROT0, "Hacks", "Tenchi wo Kurau II (Chinese hack: Description Of Unknown Origin 10)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, wofs20, wof, qsound, wof, cps_state, wof, ROT0, "Hacks", "Tenchi wo Kurau II (Chinese hack: Endless Life)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, wofs21, wof, qsound, wof, cps_state, wof, ROT0, "Hacks", "Tenchi wo Kurau II (Chinese hack: Description Of Unknown Origin 11)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, wofs22, wof, qsound, wof, cps_state, wof, ROT0, "Hacks", "Tenchi wo Kurau II (Chinese hack: Subdue The Dragon Set Hack 01)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1992, wofs23, wof, qsound, wof, cps_state, wof, ROT0, "Hacks", "Tenchi wo Kurau II (Chinese hack: Description Of Unknown Origin 12)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, wofs24, wof, qsound, wof, cps_state, wof, ROT0, "Hacks", "Tenchi wo Kurau II (Chinese hack: Revised Beta Hack By Shinwa)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, wofs25, wof, qsound, wof, cps_state, wof, ROT0, "Hacks", "Tenchi wo Kurau II (Chinese hack: Description Of Unknown Origin 13)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, wofs26, wof, qsound, wof, cps_state, wof, ROT0, "Hacks", "Tenchi wo Kurau II (Chinese hack: Revised V1.0 Hack By Chinwa)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, wofs27, wof, qsound, wof, cps_state, wof, ROT0, "Hacks", "Tenchi wo Kurau II (Chinese hack: Description Of Unknown Origin 14)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, wofs28, wof, qsound, wof, cps_state, wof, ROT0, "Hacks", "Tenchi wo Kurau II (Chinese hack: BOSS Xu Huang Edition Warriors)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, wofs29, wof, qsound, wof, cps_state, wof, ROT0, "Hacks", "Tenchi wo Kurau II (Chinese hack: BOSS Yan Ming Unparalleled Edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, wofs30, wof, qsound, wof, cps_state, wof, ROT0, "Hacks", "Tenchi wo Kurau II (Chinese hack: BOSS Zhang Liao Unparalleled Edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, wofs31, wof, qsound, wof, cps_state, wof, ROT0, "Hacks", "Tenchi wo Kurau II (Chinese hack: BOSS Dian Unparalleled Edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, wofs32, wof, qsound, wof, cps_state, wof, ROT0, "Hacks", "Tenchi wo Kurau II (Chinese hack: BOSS Cho Unparalleled Edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, wofs34, wof, qsound, wof, cps_state, wof, ROT0, "Hacks", "Tenchi wo Kurau II (Chinese hack: Description Of Unknown Origin 21)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, wofs33, wof, qsound, wof, cps_state, wof, ROT0, "Hacks", "Tenchi wo Kurau II (Chinese hack: Bloody Plus Hack Zhanghw511)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, wofs35, wof, qsound, wof, cps_state, wof, ROT0, "Hacks", "Tenchi wo Kurau II (Chinese hack: BOSS Riboud Unparalleled Edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, wofs36, wof, qsound, wof, cps_state, wof, ROT0, "Hacks", "Tenchi wo Kurau II (Chinese hack: Description Of Unknown Origin 23)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, wofs37, wof, qsound, wof, cps_state, wof, ROT0, "Hacks", "Tenchi wo Kurau II (Chinese hack: Description Of Unknown Origin 24)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, wofs38, wof, qsound, wof, cps_state, wof, ROT0, "Hacks", "Tenchi wo Kurau II (Chinese hack: Description Of Unknown Origin 25)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, wofhl01, wofch, qsound, wofch, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II (Chinese hack: Description Of Unknown Origin H 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, wofhl02, wofch, qsound, wofch, cps_state, wof, ROT0, "hack", "Tenchi wo Kurau II (Chinese hack: Description Of Unknown Origin H 02)", MACHINE_SUPPORTS_SAVE )
+// Sangokushi II
+GAME( 1999, wofh01, wof, sk2h1q, sk2h1, cps_state, sk2h1q, ROT0, "Hacks", "Sangokushi II (Asia 921005)(Description Of Unknown Origin HH 01)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, wofh02, wof, sk2h1q, sk2h1, cps_state, sk2h1q, ROT0, "Hacks", "Sangokushi III Part 1 2010 (Tenchi wo Kurau II Hack)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, wofh03, wof, sk2h1q, sk2h1, cps_state, sk2h1q, ROT0, "Hacks", "Sangokushi II (Asia 921005)(Description Of Unknown Origin HH 02)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+
diff --git a/src/hbmame/drivers/cps2.cpp b/src/hbmame/drivers/cps2.cpp
new file mode 100644
index 00000000000..6c428536ca3
--- /dev/null
+++ b/src/hbmame/drivers/cps2.cpp
@@ -0,0 +1,2202 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/cps2.cpp"
+
+ROM_START( 1944da )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "nffu_da.03", 0x000000, 0x80000, CRC(78188e42) SHA1(add31daba3e6916a1facfaf32feeaba228e9a6ab) )
+ ROM_LOAD16_WORD_SWAP( "nff.04", 0x080000, 0x80000, CRC(dba1c66e) SHA1(4764e77d4da5d19d9acded27df1e1bcba06b0fcf) )
+ ROM_LOAD16_WORD_SWAP( "nffu.05", 0x100000, 0x80000, CRC(ea813eb7) SHA1(34e0175a5f22d08c3538369b4bfd077a7427a128) )
+
+ ROM_REGION( 0x2000000, "gfx", 0 )
+ ROMX_LOAD( "nff.13m", 0x0000000, 0x400000, CRC(c9fca741) SHA1(1781d4fc18b6d6f79b7b39d9bcace750fb61a5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "nff.15m", 0x0000002, 0x400000, CRC(f809d898) SHA1(a0b6af49e1780678d808c317b875161cedddb314) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "nff.17m", 0x0000004, 0x400000, CRC(15ba4507) SHA1(bed6a82bf1dc1aa501d4c2d098115a15e18d446a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "nff.19m", 0x0000006, 0x400000, CRC(3dd41b8c) SHA1(676078baad789e25f6e5a79de29672587be7ff00) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "nff.14m", 0x1000000, 0x100000, CRC(3fe3a54b) SHA1(0a8e5cae141d24fd8b3cb11796c44728b0acd69e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "nff.16m", 0x1000002, 0x100000, CRC(565cd231) SHA1(0aecd433fb4ca2de1aca9fbb1e314fb1f6979321) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "nff.18m", 0x1000004, 0x100000, CRC(63ca5988) SHA1(30137fa77573c84bcc24570bccb7dba61ddb413c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "nff.20m", 0x1000006, 0x100000, CRC(21eb8f3b) SHA1(efa69f19a958047dd91a294c88857ed3133fcbef) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "nff.01", 0x00000, 0x08000, CRC(d2e44318) SHA1(33e45f6fe9fed098a4c072b8c39406aef1a949b2) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "nff.11m", 0x000000, 0x400000, CRC(243e4e05) SHA1(83281f7290ac105a3f9a7507cbc11317d45ba706) )
+ ROM_LOAD16_WORD_SWAP( "nff.12m", 0x400000, 0x400000, CRC(4fcf1600) SHA1(36f18c5d92b79433bdf7088b29a244708929d48e) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "phoenix.key", 0x000000, 0x000014, CRC(2cf772b0) SHA1(eff33c65a4f3862c231f9e4d6fefa7b34398dbf2) )
+ROM_END
+
+ROM_START( 1944fp )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "nffu.03fp", 0x000000, 0x80000, CRC(3239f3a2) SHA1(22f6e5772c3f2f98db79c9ec6809cb0343b7c877) )
+ ROM_LOAD16_WORD_SWAP( "nff.04fp", 0x080000, 0x80000, CRC(91297ec9) SHA1(3ef111613e758540a3187d972018b100bcb1652a) )
+ ROM_LOAD16_WORD_SWAP( "nffu.05", 0x100000, 0x80000, CRC(ea813eb7) SHA1(34e0175a5f22d08c3538369b4bfd077a7427a128) )
+
+ ROM_REGION( 0x2000000, "gfx", 0 )
+ ROMX_LOAD( "nff.13m", 0x0000000, 0x400000, CRC(c9fca741) SHA1(1781d4fc18b6d6f79b7b39d9bcace750fb61a5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "nff.15m", 0x0000002, 0x400000, CRC(f809d898) SHA1(a0b6af49e1780678d808c317b875161cedddb314) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "nff.17m", 0x0000004, 0x400000, CRC(15ba4507) SHA1(bed6a82bf1dc1aa501d4c2d098115a15e18d446a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "nff.19m", 0x0000006, 0x400000, CRC(3dd41b8c) SHA1(676078baad789e25f6e5a79de29672587be7ff00) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "nff.14m", 0x1000000, 0x100000, CRC(3fe3a54b) SHA1(0a8e5cae141d24fd8b3cb11796c44728b0acd69e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "nff.16m", 0x1000002, 0x100000, CRC(565cd231) SHA1(0aecd433fb4ca2de1aca9fbb1e314fb1f6979321) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "nff.18m", 0x1000004, 0x100000, CRC(63ca5988) SHA1(30137fa77573c84bcc24570bccb7dba61ddb413c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "nff.20m", 0x1000006, 0x100000, CRC(21eb8f3b) SHA1(efa69f19a958047dd91a294c88857ed3133fcbef) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "nff.01", 0x00000, 0x08000, CRC(d2e44318) SHA1(33e45f6fe9fed098a4c072b8c39406aef1a949b2) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "nff.11m", 0x000000, 0x400000, CRC(243e4e05) SHA1(83281f7290ac105a3f9a7507cbc11317d45ba706) )
+ ROM_LOAD16_WORD_SWAP( "nff.12m", 0x400000, 0x400000, CRC(4fcf1600) SHA1(36f18c5d92b79433bdf7088b29a244708929d48e) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "1944fp.key", 0x000000, 0x000014, CRC(81b5e47e) SHA1(3dde33f070508859b04c4e4a393ea9548c48287c) )
+ROM_END
+
+
+ROM_START( ddsomavs )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "ddsomavs.03g", 0x000000, 0x80000, CRC(e28c61f2) SHA1(a15ba7e4d1c6e2e2c047e12edefc6b1564464496) )
+ ROM_LOAD16_WORD_SWAP( "ddsomavs.04g", 0x080000, 0x80000, CRC(145efa6f) SHA1(2da422bf43c4b4abd20ddcf7b0dd4a37f23d756a) )
+ ROM_LOAD16_WORD_SWAP( "dd2.05g", 0x100000, 0x80000, CRC(5eb1991c) SHA1(429a60b5396ff4192904867fbe0524268f0edbcb) )
+ ROM_LOAD16_WORD_SWAP( "dd2.06g", 0x180000, 0x80000, CRC(c26b5e55) SHA1(9590206f30459941880ff4b56c7f276cc78e3a22) )
+ ROM_LOAD16_WORD_SWAP( "dd2.07", 0x200000, 0x80000, CRC(909a0b8b) SHA1(58bda17c36063a79df8b5031755c7909a9bda221) )
+ ROM_LOAD16_WORD_SWAP( "dd2.08", 0x280000, 0x80000, CRC(e53c4d01) SHA1(bad872e4e793a39f68bc0e580772e982714b5876) )
+ ROM_LOAD16_WORD_SWAP( "dd2.09", 0x300000, 0x80000, CRC(5f86279f) SHA1(c2a454e5f821b1cdd49f2cf0602e9bfb7ba63340) )
+ ROM_LOAD16_WORD_SWAP( "dd2.10", 0x380000, 0x80000, CRC(ad954c26) SHA1(468c01735dbdb1114b37060546a660678290a97f) )
+
+ ROM_REGION( 0x1800000, "gfx", 0 )
+ ROMX_LOAD( "dd2.13m", 0x0000000, 0x400000, CRC(a46b4e6e) SHA1(fb90f42868c581c481b4ceff9f692753fb186b30) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "dd2.15m", 0x0000002, 0x400000, CRC(d5fc50fc) SHA1(bc692f17b18bb47a724cd5152377cd5ccd6e184a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "dd2.17m", 0x0000004, 0x400000, CRC(837c0867) SHA1(3d6db290a8f76299a23543f0ccf6a7905e1088ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "dd2.19m", 0x0000006, 0x400000, CRC(bb0ec21c) SHA1(e43ccc1cf63ccd2b504cc9fd701af849a7321914) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "dd2.14m", 0x1000000, 0x200000, CRC(6d824ce2) SHA1(0ccfe6c8a944937718e28a1a373b5822c7b7001b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "dd2.16m", 0x1000002, 0x200000, CRC(79682ae5) SHA1(ee84f4791c29ce9e2bae06ba3ec47ff4d2cd7054) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "dd2.18m", 0x1000004, 0x200000, CRC(acddd149) SHA1(7f50de9b2d1cc733594c642be1804190519caffa) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "dd2.20m", 0x1000006, 0x200000, CRC(117fb0c0) SHA1(15c01fa1a71b6469b0e1bde0ce5835c5ff9d938c) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "dd2.01", 0x00000, 0x08000, CRC(99d657e5) SHA1(1528dd6b07a0e79951a35c0457c8a9c9770e9c78) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "dd2.02", 0x28000, 0x20000, CRC(117a3824) SHA1(14f3a12170b601c5466c93af9d2f24e0b386b4e4) )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "dd2.11m", 0x000000, 0x200000, CRC(98d0c325) SHA1(7406e8d943d77c468eb418c4113261f4ab973bbf) )
+ ROM_LOAD16_WORD_SWAP( "dd2.12m", 0x200000, 0x200000, CRC(5ea2e7fa) SHA1(0e6a9fd007f637adcb2226c902394f07de45e803) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "ddsoma.key", 0x000000, 0x000014, CRC(8c3cc560) SHA1(ad19e78b938a67c9f5ed0dcd5c68b383e6ce0575) )
+ROM_END
+
+ROM_START( ddsomchs )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "dd2j.03g", 0x000000, 0x80000, CRC(e6c8c985) SHA1(0736a84d7d9d37d51826eac6826a7728260bc625) )
+ ROM_LOAD16_WORD_SWAP( "dd2j.04g", 0x080000, 0x80000, CRC(8386c0bd) SHA1(59bfc71914ec2bb7d1b9f327b25d2399181d4bb2) )
+ ROM_LOAD16_WORD_SWAP( "dd2.05g", 0x100000, 0x80000, CRC(5eb1991c) SHA1(429a60b5396ff4192904867fbe0524268f0edbcb) )
+ ROM_LOAD16_WORD_SWAP( "dd2.06g", 0x180000, 0x80000, CRC(c26b5e55) SHA1(9590206f30459941880ff4b56c7f276cc78e3a22) )
+ ROM_LOAD16_WORD_SWAP( "dd2.07", 0x200000, 0x80000, CRC(909a0b8b) SHA1(58bda17c36063a79df8b5031755c7909a9bda221) )
+ ROM_LOAD16_WORD_SWAP( "dd2.08", 0x280000, 0x80000, CRC(e53c4d01) SHA1(bad872e4e793a39f68bc0e580772e982714b5876) )
+ ROM_LOAD16_WORD_SWAP( "dd2.09", 0x300000, 0x80000, CRC(5f86279f) SHA1(c2a454e5f821b1cdd49f2cf0602e9bfb7ba63340) )
+ ROM_LOAD16_WORD_SWAP( "dd2.10", 0x380000, 0x80000, CRC(ad954c26) SHA1(468c01735dbdb1114b37060546a660678290a97f) )
+
+ ROM_REGION( 0x1800000, "gfx", 0 )
+ ROM_LOAD( "ddsomchs.13m", 0x0000000, 0x1000000, CRC(9b6a8bd7) SHA1(d6bf2c2c35904e0fe4c299a351c766b2e25e709c) )
+ ROM_LOAD( "ddsomchs.14m", 0x1000000, 0x800000, CRC(39b30ad6) SHA1(b2f0a1b97986484d449da9a4e85a13165002d6cc) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "dd2.01", 0x00000, 0x08000, CRC(99d657e5) SHA1(1528dd6b07a0e79951a35c0457c8a9c9770e9c78) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "dd2.02", 0x28000, 0x20000, CRC(117a3824) SHA1(14f3a12170b601c5466c93af9d2f24e0b386b4e4) )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "dd2.11m", 0x000000, 0x200000, CRC(98d0c325) SHA1(7406e8d943d77c468eb418c4113261f4ab973bbf) )
+ ROM_LOAD16_WORD_SWAP( "dd2.12m", 0x200000, 0x200000, CRC(5ea2e7fa) SHA1(0e6a9fd007f637adcb2226c902394f07de45e803) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "ddsomj.key", 0x000000, 0x000014, CRC(d8dadb22) SHA1(e07b50ae464c35439333dd983e2acac48a1ce529) )
+ROM_END
+
+ROM_START( ddsomhp )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "ddsomhp.03e", 0x000000, 0x80000, CRC(5a9574e5) SHA1(c810b9bf495d4cd44305e27992848aab207da922) )
+ ROM_LOAD16_WORD_SWAP( "dd2e.04e", 0x080000, 0x80000, CRC(5b7052b6) SHA1(8a5f069f450da939d0f02518751cd9815d621d81) )
+ ROM_LOAD16_WORD_SWAP( "ddsomhp.05e", 0x100000, 0x80000, CRC(554e9b24) SHA1(6b78662c0e377f5595cef9d2b49d6af0ece19fd1) )
+ ROM_LOAD16_WORD_SWAP( "dd2e.06e", 0x180000, 0x80000, CRC(e0807e1e) SHA1(4b978f5f647fff84d456eb14c9fd202d9a276997) )
+ ROM_LOAD16_WORD_SWAP( "dd2e.07", 0x200000, 0x80000, CRC(bb777a02) SHA1(4b2c65a9129fc2262b35be1c10d06f60f5108981) )
+ ROM_LOAD16_WORD_SWAP( "dd2e.08", 0x280000, 0x80000, CRC(30970890) SHA1(fd366a9323230f6997006ab4cc216f9a97865ebe) )
+ ROM_LOAD16_WORD_SWAP( "dd2e.09", 0x300000, 0x80000, CRC(99e2194d) SHA1(cbcecdf5beeac3eac6c2c3fa395710e1b8347531) )
+ ROM_LOAD16_WORD_SWAP( "dd2e.10", 0x380000, 0x80000, CRC(e198805e) SHA1(37ae9d88d98c59337b657cfa6feb56e4f9cae95f) )
+
+ ROM_REGION( 0x1800000, "gfx", 0 )
+ ROMX_LOAD( "dd2.13m", 0x0000000, 0x400000, CRC(a46b4e6e) SHA1(fb90f42868c581c481b4ceff9f692753fb186b30) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "dd2.15m", 0x0000002, 0x400000, CRC(d5fc50fc) SHA1(bc692f17b18bb47a724cd5152377cd5ccd6e184a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "dd2.17m", 0x0000004, 0x400000, CRC(837c0867) SHA1(3d6db290a8f76299a23543f0ccf6a7905e1088ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "dd2.19m", 0x0000006, 0x400000, CRC(bb0ec21c) SHA1(e43ccc1cf63ccd2b504cc9fd701af849a7321914) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "dd2.14m", 0x1000000, 0x200000, CRC(6d824ce2) SHA1(0ccfe6c8a944937718e28a1a373b5822c7b7001b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "dd2.16m", 0x1000002, 0x200000, CRC(79682ae5) SHA1(ee84f4791c29ce9e2bae06ba3ec47ff4d2cd7054) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "dd2.18m", 0x1000004, 0x200000, CRC(acddd149) SHA1(7f50de9b2d1cc733594c642be1804190519caffa) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "dd2.20m", 0x1000006, 0x200000, CRC(117fb0c0) SHA1(15c01fa1a71b6469b0e1bde0ce5835c5ff9d938c) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "dd2.01", 0x00000, 0x08000, CRC(99d657e5) SHA1(1528dd6b07a0e79951a35c0457c8a9c9770e9c78) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "dd2.02", 0x28000, 0x20000, CRC(117a3824) SHA1(14f3a12170b601c5466c93af9d2f24e0b386b4e4) )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "dd2.11m", 0x000000, 0x200000, CRC(98d0c325) SHA1(7406e8d943d77c468eb418c4113261f4ab973bbf) )
+ ROM_LOAD16_WORD_SWAP( "dd2.12m", 0x200000, 0x200000, CRC(5ea2e7fa) SHA1(0e6a9fd007f637adcb2226c902394f07de45e803) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "ddsom.key", 0x000000, 0x000014, CRC(541e425d) SHA1(9239f9ad7c2ed0d7d062da2db92b07104b5bb9a7) )
+ROM_END
+
+ROM_START( ddsomjfs )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "ddsomjfs.03g", 0x000000, 0x80000, CRC(cc650f5b) SHA1(b39dd217b8a4cf82f994e1657909ff001fc4721b) )
+ ROM_LOAD16_WORD_SWAP( "dd2j.04g", 0x080000, 0x80000, CRC(8386c0bd) SHA1(59bfc71914ec2bb7d1b9f327b25d2399181d4bb2) )
+ ROM_LOAD16_WORD_SWAP( "dd2.05g", 0x100000, 0x80000, CRC(5eb1991c) SHA1(429a60b5396ff4192904867fbe0524268f0edbcb) )
+ ROM_LOAD16_WORD_SWAP( "dd2.06g", 0x180000, 0x80000, CRC(c26b5e55) SHA1(9590206f30459941880ff4b56c7f276cc78e3a22) )
+ ROM_LOAD16_WORD_SWAP( "ddsomjfs.07", 0x200000, 0x80000, CRC(9c520a00) SHA1(7f801f86ebc725bbbeae9eb832b843b282428ec1) )
+ ROM_LOAD16_WORD_SWAP( "dd2.08", 0x280000, 0x80000, CRC(e53c4d01) SHA1(bad872e4e793a39f68bc0e580772e982714b5876) )
+ ROM_LOAD16_WORD_SWAP( "dd2.09", 0x300000, 0x80000, CRC(5f86279f) SHA1(c2a454e5f821b1cdd49f2cf0602e9bfb7ba63340) )
+ ROM_LOAD16_WORD_SWAP( "dd2.10", 0x380000, 0x80000, CRC(ad954c26) SHA1(468c01735dbdb1114b37060546a660678290a97f) )
+
+ ROM_REGION( 0x1800000, "gfx", 0 )
+ ROMX_LOAD( "dd2.13m", 0x0000000, 0x400000, CRC(a46b4e6e) SHA1(fb90f42868c581c481b4ceff9f692753fb186b30) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "dd2.15m", 0x0000002, 0x400000, CRC(d5fc50fc) SHA1(bc692f17b18bb47a724cd5152377cd5ccd6e184a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "dd2.17m", 0x0000004, 0x400000, CRC(837c0867) SHA1(3d6db290a8f76299a23543f0ccf6a7905e1088ac) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "dd2.19m", 0x0000006, 0x400000, CRC(bb0ec21c) SHA1(e43ccc1cf63ccd2b504cc9fd701af849a7321914) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "dd2.14m", 0x1000000, 0x200000, CRC(6d824ce2) SHA1(0ccfe6c8a944937718e28a1a373b5822c7b7001b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "dd2.16m", 0x1000002, 0x200000, CRC(79682ae5) SHA1(ee84f4791c29ce9e2bae06ba3ec47ff4d2cd7054) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "dd2.18m", 0x1000004, 0x200000, CRC(acddd149) SHA1(7f50de9b2d1cc733594c642be1804190519caffa) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "dd2.20m", 0x1000006, 0x200000, CRC(117fb0c0) SHA1(15c01fa1a71b6469b0e1bde0ce5835c5ff9d938c) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "dd2.01", 0x00000, 0x08000, CRC(99d657e5) SHA1(1528dd6b07a0e79951a35c0457c8a9c9770e9c78) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "dd2.02", 0x28000, 0x20000, CRC(117a3824) SHA1(14f3a12170b601c5466c93af9d2f24e0b386b4e4) )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "dd2.11m", 0x000000, 0x200000, CRC(98d0c325) SHA1(7406e8d943d77c468eb418c4113261f4ab973bbf) )
+ ROM_LOAD16_WORD_SWAP( "dd2.12m", 0x200000, 0x200000, CRC(5ea2e7fa) SHA1(0e6a9fd007f637adcb2226c902394f07de45e803) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "ddsomj.key", 0x000000, 0x000014, CRC(d8dadb22) SHA1(e07b50ae464c35439333dd983e2acac48a1ce529) )
+ROM_END
+
+
+ROM_START( halfway )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "halfway.03", 0x000000, 0x080000, CRC(55ce8d4a) SHA1(3b7342afbfa1244cb5cbf5be7391d3e1f8231822) )
+ ROM_LOAD16_WORD_SWAP( "tohell.04", 0x080000, 0x080000, CRC(71060b9e) SHA1(007a174ceca6ae080f19f088bf0fc6cd0fe2510c) )
+
+ ROM_REGION( 0x1000000, "gfx", 0 )
+ ROMX_LOAD( "pga.13m", 0x0000000, 0x400000, CRC(5194c198) SHA1(f9ae16cad8b30547b8dd3a1ea1d6e845d76ccefe) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "pga.15m", 0x0000002, 0x400000, CRC(b794e83f) SHA1(0332fa798b2955464ab336929866c9185bd4b520) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "pga.17m", 0x0000004, 0x400000, CRC(87f22918) SHA1(7f048d66593f385526bd2c669cf6b8ad58d12bbf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "pga.19m", 0x0000006, 0x400000, CRC(65ffb45b) SHA1(9c21187519c1ec95c5a960b2c815ee41ace4fa7e) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "pga.01", 0x00000, 0x08000, CRC(bdbfa992) SHA1(7c5496c1daaea6a7ab95c0b25625d325ec3427cc) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "redlabel.11m", 0x000000, 0x400000, CRC(33ebf625) SHA1(39e5f9afd37a258005b0143fa38b9c53b63f700d) )
+ ROM_LOAD16_WORD_SWAP( "redlabel.12m", 0x000000, 0x400000, CRC(47f25cf4) SHA1(714b5baf146d720cc86f77aeee5b1160f553d958) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "phoenix.key", 0x000000, 0x000014, CRC(2cf772b0) SHA1(eff33c65a4f3862c231f9e4d6fefa7b34398dbf2) )
+ROM_END
+
+
+ROM_START( mpangjd )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "mpnj_d.03a", 0x000000, 0x80000, CRC(dac63128) SHA1(e5ee8f6d698a28dbf54520473520e40efadf30e3) )
+ ROM_LOAD16_WORD_SWAP( "mpnj_d.04a", 0x080000, 0x80000, CRC(d0b2592b) SHA1(f18c026776326f9bab70d1a8f66dd5fffb115b1b) )
+
+ ROM_REGION( 0x1000000, "gfx", 0 )
+ ROMX_LOAD( "mpn-simm.01c", 0x0000000, 0x200000, CRC(388db66b) SHA1(7416cce3d0dbea71c92ea9f72f5536146f757b45) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm
+ ROMX_LOAD( "mpn-simm.01d", 0x0000001, 0x200000, CRC(aff1b494) SHA1(d376c02ce01e71a7707d3d3fe5b0ae59ce781686) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm
+ ROMX_LOAD( "mpn-simm.01a", 0x0000002, 0x200000, CRC(a9c4857b) SHA1(66f538105c710d1480141e48a15b1a760f5ce985) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm
+ ROMX_LOAD( "mpn-simm.01b", 0x0000003, 0x200000, CRC(f759df22) SHA1(1678e3e819dd808f3a6fdd52b7c933eac4777b5b) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm
+ ROMX_LOAD( "mpn-simm.03c", 0x0000004, 0x200000, CRC(dec6b720) SHA1(331776e1cba3fb82071e7c2195dc4ae27b3613a2) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm
+ ROMX_LOAD( "mpn-simm.03d", 0x0000005, 0x200000, CRC(f8774c18) SHA1(58e0ea4dd62e39bcfaa3a2be4ef08eb2f0bd3c00) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm
+ ROMX_LOAD( "mpn-simm.03a", 0x0000006, 0x200000, CRC(c2aea4ec) SHA1(f5e2a815fa802598611efa48e5de97e929155e77) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm
+ ROMX_LOAD( "mpn-simm.03b", 0x0000007, 0x200000, CRC(84d6dc33) SHA1(f5ababb479facc08c425381570644230c09334e7) , ROM_GROUPBYTE | ROM_SKIP(7) ) // ROM on a simm
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "mpn.01", 0x00000, 0x08000, CRC(90c7adb6) SHA1(a2653e977e5e0457b249e098e5ca0abc93dac336) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "mpn-simm.05a", 0x000000, 0x200000, CRC(318a2e21) SHA1(c573cd88f8279a062c73ef1d79cd8421dbdcd93e) ) // ROM on a simm
+ ROM_LOAD16_WORD_SWAP( "mpn-simm.05b", 0x200000, 0x200000, CRC(5462f4e8) SHA1(299fbdab700e735e6395c5d9e3f079bb2e3dbd73) ) // ROM on a simm
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "phoenix.key", 0x000000, 0x000014, CRC(2cf772b0) SHA1(eff33c65a4f3862c231f9e4d6fefa7b34398dbf2) )
+ROM_END
+
+
+ROM_START( mshjphp )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "mshjphp.03", 0x000000, 0x80000, CRC(31ae1efc) SHA1(02d3447edceb07ae4e40b068d8a5637547cbc17e) )
+ ROM_LOAD16_WORD_SWAP( "mshj.04g", 0x080000, 0x80000, CRC(61d791c6) SHA1(9f883bcc48058a99c4ba653d0855c58c5d081243) )
+ ROM_LOAD16_WORD_SWAP( "msh.05a", 0x100000, 0x80000, CRC(f37539e6) SHA1(770febc25ca5615b6c2023727edab3c68b15b2c4) )
+ ROM_LOAD16_WORD_SWAP( "msh.06b", 0x180000, 0x80000, CRC(803e3fa4) SHA1(0acdeda65002521bf24130cbf06f9faa1dcef9e5) )
+ ROM_LOAD16_WORD_SWAP( "msh.07a", 0x200000, 0x80000, CRC(c45f8e27) SHA1(4d28e0782c31ce56e728ac6ef5edd10437f00637) )
+ ROM_LOAD16_WORD_SWAP( "msh.08a", 0x280000, 0x80000, CRC(9ca6f12c) SHA1(26ad682667b983b805e1f577426e5fca8ee3c82b) )
+ ROM_LOAD16_WORD_SWAP( "msh.09a", 0x300000, 0x80000, CRC(82ec27af) SHA1(caf76268063ba91d28e8af684d60c2d71f29b9b9) )
+ ROM_LOAD16_WORD_SWAP( "msh.10b", 0x380000, 0x80000, CRC(8d931196) SHA1(983e62efcdb4c8db6bce6acf4f86acb9447b565d) )
+
+ ROM_REGION( 0x2000000, "gfx", 0 )
+ ROMX_LOAD( "msh.13m", 0x0000000, 0x400000, CRC(09d14566) SHA1(c96463654043f22da5e844c6da17aa9273dc3439) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "msh.15m", 0x0000002, 0x400000, CRC(ee962057) SHA1(24e359accb5f71a5863d7bad4088719fa547f88c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "msh.17m", 0x0000004, 0x400000, CRC(604ece14) SHA1(880fb62b33ba4cceb38635e4ec056fac11a3c70f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "msh.19m", 0x0000006, 0x400000, CRC(94a731e8) SHA1(1e784a3412e7361e3001494e1daf840ef8c20449) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "msh.14m", 0x1000000, 0x400000, CRC(4197973e) SHA1(93aeea1a480b5f452c8a40ae3fff956796b859fa) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "msh.16m", 0x1000002, 0x400000, CRC(438da4a0) SHA1(ca93b14c3a570f9dd582efbb3f0536a92e535042) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "msh.18m", 0x1000004, 0x400000, CRC(4db92d94) SHA1(f1b25ccc0627139ad5b287a8f2ab3b4a2fb8b8e4) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "msh.20m", 0x1000006, 0x400000, CRC(a2b0c6c0) SHA1(71016c01c1a706b73cf5b9ac7e384a030c6cf08d) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "msh.01", 0x00000, 0x08000, CRC(c976e6f9) SHA1(281025e5aaf97c0aeddc8bd0f737d092daadad9e) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "msh.02", 0x28000, 0x20000, CRC(ce67d0d9) SHA1(324226597cc5a11603f04085fef7715a314ecc05) )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "msh.11m", 0x000000, 0x200000, CRC(37ac6d30) SHA1(ec67421fbf4a08a686e76792cb35e9cbf04d022d) )
+ ROM_LOAD16_WORD_SWAP( "msh.12m", 0x200000, 0x200000, CRC(de092570) SHA1(a03d0df901f6ea79685eaed67db65bee14ec29c6) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "mshj.key", 0x000000, 0x000014, CRC(888761ac) SHA1(a1c72deedab2bafe5d594bba905a6274575b6e56) )
+ROM_END
+
+// mshvsfj with a rom changed
+ROM_START( mshvsemb )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "mshvsemb.03", 0x000000, 0x80000, CRC(86672cbb) SHA1(7dc683ed8cf5bc205851375deab0438a1105d581) )
+ ROM_LOAD16_WORD_SWAP( "mvsj.04i", 0x080000, 0x80000, CRC(32741ace) SHA1(36db3a3aeaf29369977593c051bf5665cffefb2d) )
+ ROM_LOAD16_WORD_SWAP( "mvs.05h", 0x100000, 0x80000, CRC(77870dc3) SHA1(924a7c82456bb44d7b0be65af11dbe1a2420a3f0) )
+ ROM_LOAD16_WORD_SWAP( "mvs.06a", 0x180000, 0x80000, CRC(959f3030) SHA1(fbbaa915324815246738f3426232e623f039ce26) )
+ ROM_LOAD16_WORD_SWAP( "mvs.07b", 0x200000, 0x80000, CRC(7f915bdb) SHA1(683da09c5ba55e31b59aa95a8e13c45dc574ab3c) )
+ ROM_LOAD16_WORD_SWAP( "mvs.08a", 0x280000, 0x80000, CRC(c2813884) SHA1(49e5d4bc48f90c8146cb6aafb9240aff0119f1a7) )
+ ROM_LOAD16_WORD_SWAP( "mvs.09b", 0x300000, 0x80000, CRC(3ba08818) SHA1(9ab132a3cac55fcccebe6c99b6fb0ba1305f8f6e) )
+ ROM_LOAD16_WORD_SWAP( "mvs.10b", 0x380000, 0x80000, CRC(cf0dba98) SHA1(f4c1f8a6e7a79ecc6241d5268b3039f8a09ea516) )
+
+ ROM_REGION( 0x2000000, "gfx", 0 )
+ ROMX_LOAD( "mvs.13m", 0x0000000, 0x400000, CRC(29b05fd9) SHA1(e8fdb1ee5515a560eb4256ae4fd99bb1192e1a87) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvs.15m", 0x0000002, 0x400000, CRC(faddccf1) SHA1(4ed03ea91883a0413325f57edcc1614120b5922c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvs.17m", 0x0000004, 0x400000, CRC(97aaf4c7) SHA1(6a054921cc14fe080cb3f62c391f8ae3cc7e8ba9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvs.19m", 0x0000006, 0x400000, CRC(cb70e915) SHA1(da4d2480d348ac6dfd01256a88f4f3db8357ae46) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvs.14m", 0x1000000, 0x400000, CRC(b3b1972d) SHA1(0f2c3fb7de014181ee481ec35d0578b2c116c2dc) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvs.16m", 0x1000002, 0x400000, CRC(08aadb5d) SHA1(3a2c222eca3e7df80ce69951b3db6442312751a4) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvs.18m", 0x1000004, 0x400000, CRC(c1228b35) SHA1(7afdfb552888c79d0fbb30242b3d917b87fad57a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvs.20m", 0x1000006, 0x400000, CRC(366cc6c2) SHA1(6f2a789087c8e404c5227b927fa8328c03593243) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "mvs.01", 0x00000, 0x08000, CRC(68252324) SHA1(138ef320ef27956b2ab5591d49a1315b7b0a194c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "mvs.02", 0x28000, 0x20000, CRC(b34e773d) SHA1(3bcf44bf06c35814cff29d244142db7abe05bd39) )
+
+ ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "mvs.11m", 0x000000, 0x400000, CRC(86219770) SHA1(4e5b68d382a5aa37f8b0b6434c53a2b95f5f9a4d) )
+ ROM_LOAD16_WORD_SWAP( "mvs.12m", 0x400000, 0x400000, CRC(f2fd7f68) SHA1(28a30d55d3eaf963006c7cbe7c288099cd3ba536) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "mshvsfj.key", 0x000000, 0x000014, CRC(565eeebb) SHA1(762844b59b2fcf529a26ad3dde8282415db926b3) )
+ROM_END
+
+// mshvsfj with 2 roms changed
+ROM_START( mshvsfjh )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "mshvsfjh.03", 0x000000, 0x80000, CRC(54ecd389) SHA1(be6d34587de852d93d575f7d1e5001e43f4be9e9) )
+ ROM_LOAD16_WORD_SWAP( "mshvsfjh.04", 0x080000, 0x80000, CRC(6031012f) SHA1(8905d52110f5c9da35ce4ec497c48ec73eb35e13) )
+ ROM_LOAD16_WORD_SWAP( "mvs.05h", 0x100000, 0x80000, CRC(77870dc3) SHA1(924a7c82456bb44d7b0be65af11dbe1a2420a3f0) )
+ ROM_LOAD16_WORD_SWAP( "mvs.06a", 0x180000, 0x80000, CRC(959f3030) SHA1(fbbaa915324815246738f3426232e623f039ce26) )
+ ROM_LOAD16_WORD_SWAP( "mvs.07b", 0x200000, 0x80000, CRC(7f915bdb) SHA1(683da09c5ba55e31b59aa95a8e13c45dc574ab3c) )
+ ROM_LOAD16_WORD_SWAP( "mvs.08a", 0x280000, 0x80000, CRC(c2813884) SHA1(49e5d4bc48f90c8146cb6aafb9240aff0119f1a7) )
+ ROM_LOAD16_WORD_SWAP( "mvs.09b", 0x300000, 0x80000, CRC(3ba08818) SHA1(9ab132a3cac55fcccebe6c99b6fb0ba1305f8f6e) )
+ ROM_LOAD16_WORD_SWAP( "mvs.10b", 0x380000, 0x80000, CRC(cf0dba98) SHA1(f4c1f8a6e7a79ecc6241d5268b3039f8a09ea516) )
+
+ ROM_REGION( 0x2000000, "gfx", 0 )
+ ROMX_LOAD( "mvs.13m", 0x0000000, 0x400000, CRC(29b05fd9) SHA1(e8fdb1ee5515a560eb4256ae4fd99bb1192e1a87) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvs.15m", 0x0000002, 0x400000, CRC(faddccf1) SHA1(4ed03ea91883a0413325f57edcc1614120b5922c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvs.17m", 0x0000004, 0x400000, CRC(97aaf4c7) SHA1(6a054921cc14fe080cb3f62c391f8ae3cc7e8ba9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvs.19m", 0x0000006, 0x400000, CRC(cb70e915) SHA1(da4d2480d348ac6dfd01256a88f4f3db8357ae46) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvs.14m", 0x1000000, 0x400000, CRC(b3b1972d) SHA1(0f2c3fb7de014181ee481ec35d0578b2c116c2dc) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvs.16m", 0x1000002, 0x400000, CRC(08aadb5d) SHA1(3a2c222eca3e7df80ce69951b3db6442312751a4) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvs.18m", 0x1000004, 0x400000, CRC(c1228b35) SHA1(7afdfb552888c79d0fbb30242b3d917b87fad57a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvs.20m", 0x1000006, 0x400000, CRC(366cc6c2) SHA1(6f2a789087c8e404c5227b927fa8328c03593243) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "mvs.01", 0x00000, 0x08000, CRC(68252324) SHA1(138ef320ef27956b2ab5591d49a1315b7b0a194c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "mvs.02", 0x28000, 0x20000, CRC(b34e773d) SHA1(3bcf44bf06c35814cff29d244142db7abe05bd39) )
+
+ ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "mvs.11m", 0x000000, 0x400000, CRC(86219770) SHA1(4e5b68d382a5aa37f8b0b6434c53a2b95f5f9a4d) )
+ ROM_LOAD16_WORD_SWAP( "mvs.12m", 0x400000, 0x400000, CRC(f2fd7f68) SHA1(28a30d55d3eaf963006c7cbe7c288099cd3ba536) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "mshvsfj.key", 0x000000, 0x000014, CRC(565eeebb) SHA1(762844b59b2fcf529a26ad3dde8282415db926b3) )
+ROM_END
+
+// mshvsfj with a rom changed
+ROM_START( mshvsfjphp )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "mshvsfjphp.03", 0x000000, 0x80000, CRC(4c50cabc) SHA1(6139e3974d83fb4220aca84fa0ac6adcf23f45a5) )
+ ROM_LOAD16_WORD_SWAP( "mvsj.04i", 0x080000, 0x80000, CRC(32741ace) SHA1(36db3a3aeaf29369977593c051bf5665cffefb2d) )
+ ROM_LOAD16_WORD_SWAP( "mvs.05h", 0x100000, 0x80000, CRC(77870dc3) SHA1(924a7c82456bb44d7b0be65af11dbe1a2420a3f0) )
+ ROM_LOAD16_WORD_SWAP( "mvs.06a", 0x180000, 0x80000, CRC(959f3030) SHA1(fbbaa915324815246738f3426232e623f039ce26) )
+ ROM_LOAD16_WORD_SWAP( "mvs.07b", 0x200000, 0x80000, CRC(7f915bdb) SHA1(683da09c5ba55e31b59aa95a8e13c45dc574ab3c) )
+ ROM_LOAD16_WORD_SWAP( "mvs.08a", 0x280000, 0x80000, CRC(c2813884) SHA1(49e5d4bc48f90c8146cb6aafb9240aff0119f1a7) )
+ ROM_LOAD16_WORD_SWAP( "mvs.09b", 0x300000, 0x80000, CRC(3ba08818) SHA1(9ab132a3cac55fcccebe6c99b6fb0ba1305f8f6e) )
+ ROM_LOAD16_WORD_SWAP( "mvs.10b", 0x380000, 0x80000, CRC(cf0dba98) SHA1(f4c1f8a6e7a79ecc6241d5268b3039f8a09ea516) )
+
+ ROM_REGION( 0x2000000, "gfx", 0 )
+ ROMX_LOAD( "mvs.13m", 0x0000000, 0x400000, CRC(29b05fd9) SHA1(e8fdb1ee5515a560eb4256ae4fd99bb1192e1a87) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvs.15m", 0x0000002, 0x400000, CRC(faddccf1) SHA1(4ed03ea91883a0413325f57edcc1614120b5922c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvs.17m", 0x0000004, 0x400000, CRC(97aaf4c7) SHA1(6a054921cc14fe080cb3f62c391f8ae3cc7e8ba9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvs.19m", 0x0000006, 0x400000, CRC(cb70e915) SHA1(da4d2480d348ac6dfd01256a88f4f3db8357ae46) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvs.14m", 0x1000000, 0x400000, CRC(b3b1972d) SHA1(0f2c3fb7de014181ee481ec35d0578b2c116c2dc) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvs.16m", 0x1000002, 0x400000, CRC(08aadb5d) SHA1(3a2c222eca3e7df80ce69951b3db6442312751a4) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvs.18m", 0x1000004, 0x400000, CRC(c1228b35) SHA1(7afdfb552888c79d0fbb30242b3d917b87fad57a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvs.20m", 0x1000006, 0x400000, CRC(366cc6c2) SHA1(6f2a789087c8e404c5227b927fa8328c03593243) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "mvs.01", 0x00000, 0x08000, CRC(68252324) SHA1(138ef320ef27956b2ab5591d49a1315b7b0a194c) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "mvs.02", 0x28000, 0x20000, CRC(b34e773d) SHA1(3bcf44bf06c35814cff29d244142db7abe05bd39) )
+
+ ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "mvs.11m", 0x000000, 0x400000, CRC(86219770) SHA1(4e5b68d382a5aa37f8b0b6434c53a2b95f5f9a4d) )
+ ROM_LOAD16_WORD_SWAP( "mvs.12m", 0x400000, 0x400000, CRC(f2fd7f68) SHA1(28a30d55d3eaf963006c7cbe7c288099cd3ba536) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "mshvsfj.key", 0x000000, 0x000014, CRC(565eeebb) SHA1(762844b59b2fcf529a26ad3dde8282415db926b3) )
+ROM_END
+
+ROM_START( mshyh )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "mshe.03e", 0x000000, 0x80000, CRC(bd951414) SHA1(5585bdd1484dc18c7630d689f60d91c068aafc97) )
+ ROM_LOAD16_WORD_SWAP( "mshyh.04", 0x080000, 0x80000, CRC(adbd5707) SHA1(79d56d5a28328ababec10e080e46d1bfa6d8cab7) )
+ ROM_LOAD16_WORD_SWAP( "msh.05", 0x100000, 0x80000, CRC(6a091b9e) SHA1(7fa54e69e1a1ca348cb08d892d55023e9a3ff4cb) )
+ ROM_LOAD16_WORD_SWAP( "msh.06b", 0x180000, 0x80000, CRC(803e3fa4) SHA1(0acdeda65002521bf24130cbf06f9faa1dcef9e5) )
+ ROM_LOAD16_WORD_SWAP( "msh.07a", 0x200000, 0x80000, CRC(c45f8e27) SHA1(4d28e0782c31ce56e728ac6ef5edd10437f00637) )
+ ROM_LOAD16_WORD_SWAP( "msh.08a", 0x280000, 0x80000, CRC(9ca6f12c) SHA1(26ad682667b983b805e1f577426e5fca8ee3c82b) )
+ ROM_LOAD16_WORD_SWAP( "msh.09a", 0x300000, 0x80000, CRC(82ec27af) SHA1(caf76268063ba91d28e8af684d60c2d71f29b9b9) )
+ ROM_LOAD16_WORD_SWAP( "msh.10b", 0x380000, 0x80000, CRC(8d931196) SHA1(983e62efcdb4c8db6bce6acf4f86acb9447b565d) )
+
+ ROM_REGION( 0x2000000, "gfx", 0 )
+ ROMX_LOAD( "msh.13m", 0x0000000, 0x400000, CRC(09d14566) SHA1(c96463654043f22da5e844c6da17aa9273dc3439) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "msh.15m", 0x0000002, 0x400000, CRC(ee962057) SHA1(24e359accb5f71a5863d7bad4088719fa547f88c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "msh.17m", 0x0000004, 0x400000, CRC(604ece14) SHA1(880fb62b33ba4cceb38635e4ec056fac11a3c70f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "msh.19m", 0x0000006, 0x400000, CRC(94a731e8) SHA1(1e784a3412e7361e3001494e1daf840ef8c20449) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "msh.14m", 0x1000000, 0x400000, CRC(4197973e) SHA1(93aeea1a480b5f452c8a40ae3fff956796b859fa) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "msh.16m", 0x1000002, 0x400000, CRC(438da4a0) SHA1(ca93b14c3a570f9dd582efbb3f0536a92e535042) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "msh.18m", 0x1000004, 0x400000, CRC(4db92d94) SHA1(f1b25ccc0627139ad5b287a8f2ab3b4a2fb8b8e4) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "msh.20m", 0x1000006, 0x400000, CRC(a2b0c6c0) SHA1(71016c01c1a706b73cf5b9ac7e384a030c6cf08d) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "msh.01", 0x00000, 0x08000, CRC(c976e6f9) SHA1(281025e5aaf97c0aeddc8bd0f737d092daadad9e) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "msh.02", 0x28000, 0x20000, CRC(ce67d0d9) SHA1(324226597cc5a11603f04085fef7715a314ecc05) )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "msh.11m", 0x000000, 0x200000, CRC(37ac6d30) SHA1(ec67421fbf4a08a686e76792cb35e9cbf04d022d) )
+ ROM_LOAD16_WORD_SWAP( "msh.12m", 0x200000, 0x200000, CRC(de092570) SHA1(a03d0df901f6ea79685eaed67db65bee14ec29c6) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "msh.key", 0x000000, 0x000014, CRC(b494368e) SHA1(8efc561cec2bcc17902d27ed4e27b7d2b9eccdbc) )
+ROM_END
+
+
+ROM_START( mvscjemb )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "mvscjemb.03", 0x000000, 0x80000, CRC(8a50f418) SHA1(17db6f6afbe7866a4803bf2a20fb9b01b2b80250) )
+ ROM_LOAD16_WORD_SWAP( "mvcj.04a", 0x080000, 0x80000, CRC(07d212e8) SHA1(c5420e9bd580910c1f1d0264240aeef20aac30a7) )
+ ROM_LOAD16_WORD_SWAP( "mvc.05a", 0x100000, 0x80000, CRC(2d8c8e86) SHA1(b07d640a734c5d336054ed05195786224c9a6cd4) )
+ ROM_LOAD16_WORD_SWAP( "mvc.06a", 0x180000, 0x80000, CRC(8528e1f5) SHA1(cd065c05268ab581b05676da544baf6af642acac) )
+ ROM_LOAD16_WORD_SWAP( "mvc.07", 0x200000, 0x80000, CRC(c3baa32b) SHA1(d35589847e0753e869ffcd7c3abed925bfdb0fa2) )
+ ROM_LOAD16_WORD_SWAP( "mvc.08", 0x280000, 0x80000, CRC(bc002fcd) SHA1(0b6735a071a9274f7ab25c743271fc30411fe819) )
+ ROM_LOAD16_WORD_SWAP( "mvc.09", 0x300000, 0x80000, CRC(c67b26df) SHA1(6e9969246c57269d7ba0992a5cc319c8910bf8a9) )
+ ROM_LOAD16_WORD_SWAP( "mvc.10", 0x380000, 0x80000, CRC(0fdd1e26) SHA1(5fa684d823b4f4eec61ed9e9b8938af5272ae1ed) )
+
+ ROM_REGION( 0x2000000, "gfx", 0 )
+ ROMX_LOAD( "mvc.13m", 0x0000000, 0x400000, CRC(fa5f74bc) SHA1(79a619248938a85ce4f7794a704647b9cf564fbc) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvc.15m", 0x0000002, 0x400000, CRC(71938a8f) SHA1(6982f7203458c1c46a1c1c13c0d0f2a5e109d271) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvc.17m", 0x0000004, 0x400000, CRC(92741d07) SHA1(ddfd70eab7c983ab452194b1860059f8ad694459) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvc.19m", 0x0000006, 0x400000, CRC(bcb72fc6) SHA1(46ab98dcdf6f5d611646a22a7355939ef5b2bbe5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvc.14m", 0x1000000, 0x400000, CRC(7f1df4e4) SHA1(ede92b31c1fe87f91b4fe74ac211f2fb5f863bc2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvc.16m", 0x1000002, 0x400000, CRC(90bd3203) SHA1(ed83208c486ea0f407b7e5d16a8cf242a6f73774) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvc.18m", 0x1000004, 0x400000, CRC(67aaf727) SHA1(e0e69104e31d2c41e18c0d24e9ab962406a7ca9a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvc.20m", 0x1000006, 0x400000, CRC(8b0bade8) SHA1(c5732361bb4bf284c4d12a82ac2c5750b1f9d441) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "mvc.01", 0x00000, 0x08000, CRC(41629e95) SHA1(36925c05b5fdcbe43283a882d021e5360c947061) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "mvc.02", 0x28000, 0x20000, CRC(963abf6b) SHA1(6b784870e338701cefabbbe4669984b5c4e8a9a5) )
+
+ ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "mvc.11m", 0x000000, 0x400000, CRC(850fe663) SHA1(81e519d05a08855f242ea2e17ee0859b449db895) )
+ ROM_LOAD16_WORD_SWAP( "mvc.12m", 0x400000, 0x400000, CRC(7ccb1896) SHA1(74caadf3282fcc6acffb1bbe3734106f81124121) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "mvscj.key", 0x000000, 0x000014, CRC(9dedbcaf) SHA1(6468dd20ba89e4f6dc03340d218694690151ebe0) )
+ROM_END
+
+ROM_START( mvscjphp )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "mvscjphp.03", 0x000000, 0x80000, CRC(8f886e52) SHA1(5fcd465361452b3b163cbd62b6cd73835e2f9f54) )
+ ROM_LOAD16_WORD_SWAP( "mvcj.04a", 0x080000, 0x80000, CRC(07d212e8) SHA1(c5420e9bd580910c1f1d0264240aeef20aac30a7) )
+ ROM_LOAD16_WORD_SWAP( "mvc.05a", 0x100000, 0x80000, CRC(2d8c8e86) SHA1(b07d640a734c5d336054ed05195786224c9a6cd4) )
+ ROM_LOAD16_WORD_SWAP( "mvc.06a", 0x180000, 0x80000, CRC(8528e1f5) SHA1(cd065c05268ab581b05676da544baf6af642acac) )
+ ROM_LOAD16_WORD_SWAP( "mvc.07", 0x200000, 0x80000, CRC(c3baa32b) SHA1(d35589847e0753e869ffcd7c3abed925bfdb0fa2) )
+ ROM_LOAD16_WORD_SWAP( "mvc.08", 0x280000, 0x80000, CRC(bc002fcd) SHA1(0b6735a071a9274f7ab25c743271fc30411fe819) )
+ ROM_LOAD16_WORD_SWAP( "mvc.09", 0x300000, 0x80000, CRC(c67b26df) SHA1(6e9969246c57269d7ba0992a5cc319c8910bf8a9) )
+ ROM_LOAD16_WORD_SWAP( "mvc.10", 0x380000, 0x80000, CRC(0fdd1e26) SHA1(5fa684d823b4f4eec61ed9e9b8938af5272ae1ed) )
+
+ ROM_REGION( 0x2000000, "gfx", 0 )
+ ROMX_LOAD( "mvc.13m", 0x0000000, 0x400000, CRC(fa5f74bc) SHA1(79a619248938a85ce4f7794a704647b9cf564fbc) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvc.15m", 0x0000002, 0x400000, CRC(71938a8f) SHA1(6982f7203458c1c46a1c1c13c0d0f2a5e109d271) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvc.17m", 0x0000004, 0x400000, CRC(92741d07) SHA1(ddfd70eab7c983ab452194b1860059f8ad694459) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvc.19m", 0x0000006, 0x400000, CRC(bcb72fc6) SHA1(46ab98dcdf6f5d611646a22a7355939ef5b2bbe5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvc.14m", 0x1000000, 0x400000, CRC(7f1df4e4) SHA1(ede92b31c1fe87f91b4fe74ac211f2fb5f863bc2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvc.16m", 0x1000002, 0x400000, CRC(90bd3203) SHA1(ed83208c486ea0f407b7e5d16a8cf242a6f73774) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvc.18m", 0x1000004, 0x400000, CRC(67aaf727) SHA1(e0e69104e31d2c41e18c0d24e9ab962406a7ca9a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvc.20m", 0x1000006, 0x400000, CRC(8b0bade8) SHA1(c5732361bb4bf284c4d12a82ac2c5750b1f9d441) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "mvc.01", 0x00000, 0x08000, CRC(41629e95) SHA1(36925c05b5fdcbe43283a882d021e5360c947061) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "mvc.02", 0x28000, 0x20000, CRC(963abf6b) SHA1(6b784870e338701cefabbbe4669984b5c4e8a9a5) )
+
+ ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "mvc.11m", 0x000000, 0x400000, CRC(850fe663) SHA1(81e519d05a08855f242ea2e17ee0859b449db895) )
+ ROM_LOAD16_WORD_SWAP( "mvc.12m", 0x400000, 0x400000, CRC(7ccb1896) SHA1(74caadf3282fcc6acffb1bbe3734106f81124121) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "mvscj.key", 0x000000, 0x000014, CRC(9dedbcaf) SHA1(6468dd20ba89e4f6dc03340d218694690151ebe0) )
+ROM_END
+
+ROM_START( mvscrcp ) // doesn't work
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "mvce.03a", 0x000000, 0x80000, CRC(824e4a90) SHA1(5c79c166d988d8a75d9941f4ee6fa4d6476e55e1) )
+ ROM_LOAD16_WORD_SWAP( "mvce.04a", 0x080000, 0x80000, CRC(436c5a4e) SHA1(82f4586e888f2550c53bfdc93a53791a595e05bd) )
+ ROM_LOAD16_WORD_SWAP( "mvc.05a", 0x100000, 0x80000, CRC(2d8c8e86) SHA1(b07d640a734c5d336054ed05195786224c9a6cd4) )
+ ROM_LOAD16_WORD_SWAP( "mvscrcp.06", 0x180000, 0x80000, CRC(57e2f6fd) SHA1(1c1b9992b411f45755cd2d70207511431603b4a8) )
+ ROM_LOAD16_WORD_SWAP( "mvc.07", 0x200000, 0x80000, CRC(c3baa32b) SHA1(d35589847e0753e869ffcd7c3abed925bfdb0fa2) )
+ ROM_LOAD16_WORD_SWAP( "mvc.08", 0x280000, 0x80000, CRC(bc002fcd) SHA1(0b6735a071a9274f7ab25c743271fc30411fe819) )
+ ROM_LOAD16_WORD_SWAP( "mvc.09", 0x300000, 0x80000, CRC(c67b26df) SHA1(6e9969246c57269d7ba0992a5cc319c8910bf8a9) )
+ ROM_LOAD16_WORD_SWAP( "mvc.10", 0x380000, 0x80000, CRC(0fdd1e26) SHA1(5fa684d823b4f4eec61ed9e9b8938af5272ae1ed) )
+
+ ROM_REGION( 0x2000000, "gfx", 0 )
+ ROMX_LOAD( "mvc.13m", 0x0000000, 0x400000, CRC(fa5f74bc) SHA1(79a619248938a85ce4f7794a704647b9cf564fbc) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvc.15m", 0x0000002, 0x400000, CRC(71938a8f) SHA1(6982f7203458c1c46a1c1c13c0d0f2a5e109d271) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvc.17m", 0x0000004, 0x400000, CRC(92741d07) SHA1(ddfd70eab7c983ab452194b1860059f8ad694459) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvc.19m", 0x0000006, 0x400000, CRC(bcb72fc6) SHA1(46ab98dcdf6f5d611646a22a7355939ef5b2bbe5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvc.14m", 0x1000000, 0x400000, CRC(7f1df4e4) SHA1(ede92b31c1fe87f91b4fe74ac211f2fb5f863bc2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvc.16m", 0x1000002, 0x400000, CRC(90bd3203) SHA1(ed83208c486ea0f407b7e5d16a8cf242a6f73774) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvc.18m", 0x1000004, 0x400000, CRC(67aaf727) SHA1(e0e69104e31d2c41e18c0d24e9ab962406a7ca9a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvc.20m", 0x1000006, 0x400000, CRC(8b0bade8) SHA1(c5732361bb4bf284c4d12a82ac2c5750b1f9d441) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "mvc.01", 0x00000, 0x08000, CRC(41629e95) SHA1(36925c05b5fdcbe43283a882d021e5360c947061) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "mvc.02", 0x28000, 0x20000, CRC(963abf6b) SHA1(6b784870e338701cefabbbe4669984b5c4e8a9a5) )
+
+ ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "mvc.11m", 0x000000, 0x400000, CRC(850fe663) SHA1(81e519d05a08855f242ea2e17ee0859b449db895) )
+ ROM_LOAD16_WORD_SWAP( "mvc.12m", 0x400000, 0x400000, CRC(7ccb1896) SHA1(74caadf3282fcc6acffb1bbe3734106f81124121) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "mvsc.key", 0x000000, 0x000014, CRC(7e101e09) SHA1(9d725a7c6bbc20e46f749eaec4bab15b0195077a) )
+ROM_END
+
+ROM_START( mvscuh ) // doesn't work
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "mvscuh.03", 0x000000, 0x80000, CRC(95eb2af9) SHA1(b5ba9ced0bb67783a00a07423b8b68bd3b89aaf9) )
+ ROM_LOAD16_WORD_SWAP( "mvscuh.04", 0x080000, 0x80000, CRC(05e4ba51) SHA1(21e7107d53c2416b215c9ff442a85e98489ac8ba) )
+ ROM_LOAD16_WORD_SWAP( "mvc.05a", 0x100000, 0x80000, CRC(2d8c8e86) SHA1(b07d640a734c5d336054ed05195786224c9a6cd4) )
+ ROM_LOAD16_WORD_SWAP( "mvc.06a", 0x180000, 0x80000, CRC(8528e1f5) SHA1(cd065c05268ab581b05676da544baf6af642acac) )
+ ROM_LOAD16_WORD_SWAP( "mvc.07", 0x200000, 0x80000, CRC(c3baa32b) SHA1(d35589847e0753e869ffcd7c3abed925bfdb0fa2) )
+ ROM_LOAD16_WORD_SWAP( "mvc.08", 0x280000, 0x80000, CRC(bc002fcd) SHA1(0b6735a071a9274f7ab25c743271fc30411fe819) )
+ ROM_LOAD16_WORD_SWAP( "mvc.09", 0x300000, 0x80000, CRC(c67b26df) SHA1(6e9969246c57269d7ba0992a5cc319c8910bf8a9) )
+ ROM_LOAD16_WORD_SWAP( "mvc.10", 0x380000, 0x80000, CRC(0fdd1e26) SHA1(5fa684d823b4f4eec61ed9e9b8938af5272ae1ed) )
+
+ ROM_REGION( 0x2000000, "gfx", 0 )
+ ROMX_LOAD( "mvc.13m", 0x0000000, 0x400000, CRC(fa5f74bc) SHA1(79a619248938a85ce4f7794a704647b9cf564fbc) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvc.15m", 0x0000002, 0x400000, CRC(71938a8f) SHA1(6982f7203458c1c46a1c1c13c0d0f2a5e109d271) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvc.17m", 0x0000004, 0x400000, CRC(92741d07) SHA1(ddfd70eab7c983ab452194b1860059f8ad694459) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvc.19m", 0x0000006, 0x400000, CRC(bcb72fc6) SHA1(46ab98dcdf6f5d611646a22a7355939ef5b2bbe5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvc.14m", 0x1000000, 0x400000, CRC(7f1df4e4) SHA1(ede92b31c1fe87f91b4fe74ac211f2fb5f863bc2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvc.16m", 0x1000002, 0x400000, CRC(90bd3203) SHA1(ed83208c486ea0f407b7e5d16a8cf242a6f73774) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvc.18m", 0x1000004, 0x400000, CRC(67aaf727) SHA1(e0e69104e31d2c41e18c0d24e9ab962406a7ca9a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvc.20m", 0x1000006, 0x400000, CRC(8b0bade8) SHA1(c5732361bb4bf284c4d12a82ac2c5750b1f9d441) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "mvc.01", 0x00000, 0x08000, CRC(41629e95) SHA1(36925c05b5fdcbe43283a882d021e5360c947061) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "mvc.02", 0x28000, 0x20000, CRC(963abf6b) SHA1(6b784870e338701cefabbbe4669984b5c4e8a9a5) )
+
+ ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "mvc.11m", 0x000000, 0x400000, CRC(850fe663) SHA1(81e519d05a08855f242ea2e17ee0859b449db895) )
+ ROM_LOAD16_WORD_SWAP( "mvc.12m", 0x400000, 0x400000, CRC(7ccb1896) SHA1(74caadf3282fcc6acffb1bbe3734106f81124121) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "mvscu.key", 0x000000, 0x000014, CRC(a83db333) SHA1(7f7288ceadf233d913728f7c4a8841adcb5994e8) )
+ROM_END
+
+ROM_START( pfghtjrm )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "pfghtjrm.03", 0x000000, 0x80000, CRC(5b91a900) SHA1(503fc8b5e687c11bfa5a3b55a7df8b22b8a02103) )
+ ROM_LOAD16_WORD_SWAP( "pcf.04", 0x080000, 0x80000, CRC(f4314c96) SHA1(c40ed74039bf0096eb3648b7243a8e697638e0a6) )
+ ROM_LOAD16_WORD_SWAP( "pcf.05", 0x100000, 0x80000, CRC(215655f6) SHA1(242c0f4401520f2a3b0deafc3a807b18b987e496) )
+ ROM_LOAD16_WORD_SWAP( "pcf.06", 0x180000, 0x80000, CRC(ea6f13ea) SHA1(1bc924a8a9da1d2ad7667685cdb92fe317a39aba) )
+ ROM_LOAD16_WORD_SWAP( "pcf.07", 0x200000, 0x80000, CRC(5ac6d5ea) SHA1(9ce8e4668b565658597a868830545fb75a5eeaa6) )
+
+ ROM_REGION( 0x1400000, "gfx", 0 )
+ ROMX_LOAD( "pcf.13m", 0x0000000, 0x400000, CRC(22d72ab9) SHA1(653efd95c34b4b9d2ab0d219f41a99ca84e12214) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "pcf.15m", 0x0000002, 0x400000, CRC(16a4813c) SHA1(bf5fce6008214f353414d1b64bea4ed0c7673670) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "pcf.17m", 0x0000004, 0x400000, CRC(1097e035) SHA1(4bd51e4e9447af27d2cac1f6d2201e37c949912b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "pcf.19m", 0x0000006, 0x400000, CRC(d362d874) SHA1(30c42af18440496cc05e4418e4efa41172ae4ced) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "pcf.14m", 0x1000000, 0x100000, CRC(0383897c) SHA1(aba14afa1d0c971afcee4317f480e88117d77b5e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "pcf.16m", 0x1000002, 0x100000, CRC(76f91084) SHA1(3d1e32467f2aa5dd6fb96bd5c866ecc9691660fc) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "pcf.18m", 0x1000004, 0x100000, CRC(756c3754) SHA1(be2f709b90222a567f198f851cf07ffb0ad433d7) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "pcf.20m", 0x1000006, 0x100000, CRC(9ec9277d) SHA1(b7ceeaca30dfcdf498b61a6961f0aa1a068b8ec4) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "pcf.01", 0x00000, 0x08000, CRC(254e5f33) SHA1(c413ec0630b9bdd15e64f42893eba8958a09b573) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "pcf.02", 0x28000, 0x20000, CRC(6902f4f9) SHA1(9bfe4ddade3c666076d26a2b545120f6d059fd7c) )
+
+ ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "pcf.11m", 0x000000, 0x400000, CRC(a5dea005) SHA1(3ae79baf6ff5bd527f82b26f164c7e3c65423ae2) )
+ ROM_LOAD16_WORD_SWAP( "pcf.12m", 0x400000, 0x400000, CRC(4ce235fe) SHA1(795b94557e954cc0e45fd3778b609064d57a34a2) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "pfghtj.key", 0x000000, 0x000014, CRC(62297638) SHA1(efe090ffa8992823cfd787ade736df5487d69ca7) )
+ROM_END
+
+
+ROM_START( sfa2h )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sz2eh.03", 0x000000, 0x80000, CRC(f24e7b3a) SHA1(0cf5169fcf46dcea5a100bf75a5dcd791c51b671) )
+ ROM_LOAD16_WORD_SWAP( "sz2e.04", 0x080000, 0x80000, CRC(22d17b26) SHA1(2d7a9cedae1bb2b7cfb80d2bfcf24cb7738df0bf) )
+ ROM_LOAD16_WORD_SWAP( "sz2.05", 0x100000, 0x80000, CRC(4b442a7c) SHA1(a0d7d229cff8efb2a253ff06270258b0b4d2761e) )
+ ROM_LOAD16_WORD_SWAP( "sz2.06", 0x180000, 0x80000, CRC(5b1d49c0) SHA1(f0a0c894c9cbe2b18e7f59058665949ee0025732) )
+ ROM_LOAD16_WORD_SWAP( "sz2.07", 0x200000, 0x80000, CRC(8e184246) SHA1(c51f6480cfa1dcec6c4713fd38c7a27338c3fa65) )
+ ROM_LOAD16_WORD_SWAP( "sz2.08", 0x280000, 0x80000, CRC(0fe8585d) SHA1(0cd5369a5aa90c98d8dc1ff3342cd4d990631cff) )
+
+ ROM_REGION( 0x1400000, "gfx", 0 )
+ ROMX_LOAD( "sz2.13m", 0x0000000, 0x400000, CRC(4d1f1f22) SHA1(659fb4305bcf0cbbbbec97ede6e68a8323b13308) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sz2.15m", 0x0000002, 0x400000, CRC(19cea680) SHA1(4cb88963a0fbcef191c8419b6379387c01b4c81e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sz2.17m", 0x0000004, 0x400000, CRC(e01b4588) SHA1(c2936608fd75ff6cd5fa94c6d6d6f0c77c44a450) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sz2.19m", 0x0000006, 0x400000, CRC(0feeda64) SHA1(f5b350601437bd94b70d97feb23d791df19da6b3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sz2.14m", 0x1000000, 0x100000, CRC(0560c6aa) SHA1(f2bed3a8efef18052b51a7f0f6a888a18db813a1) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sz2.16m", 0x1000002, 0x100000, CRC(ae940f87) SHA1(39ee26333abbe302ba76dced0196a2e6b3b1d02a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sz2.18m", 0x1000004, 0x100000, CRC(4bc3c8bc) SHA1(6256963c515bf56f39b6e559afefd653ead56c54) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sz2.20m", 0x1000006, 0x100000, CRC(39e674c0) SHA1(8e771a2d8c2accad0463bccd21d7b23af0c895a1) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sz2.01a", 0x00000, 0x08000, CRC(1bc323cf) SHA1(83fbd6e9b327700dc9f1c59700b7385bc3705749) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "sz2.02a", 0x28000, 0x20000, CRC(ba6a5013) SHA1(7814f3e56b69529b9860dd61c3b1e8d700244b03) )
+
+ 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) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "sfa2.key", 0x000000, 0x000014, CRC(1578dcb0) SHA1(a8bc83b341f9ea2bcc18861419bd574d159c6fcc) )
+ROM_END
+
+ROM_START( sfa3br )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sfa3br.03", 0x000000, 0x80000, CRC(b2a99137) SHA1(cba8777cd241e270c19fe375489efc421cc01549) )
+ ROM_LOAD16_WORD_SWAP( "sfa3br.04", 0x080000, 0x80000, CRC(3e5cefe6) SHA1(f889bc9f7212e27d5df50ebda909b60e85dbfe29) )
+ ROM_LOAD16_WORD_SWAP( "sz3.05c", 0x100000, 0x80000, CRC(57fd0a40) SHA1(bc2d5f4d57117bbf58b1adb088e00424ef489e92) )
+ ROM_LOAD16_WORD_SWAP( "sz3.06c", 0x180000, 0x80000, CRC(f6305f8b) SHA1(3fd1ebdbad96103aca604e950b488e52460a71ec) )
+ ROM_LOAD16_WORD_SWAP( "sz3.07c", 0x200000, 0x80000, CRC(6eab0f6f) SHA1(f8d093dda65cf4e8a3000dc1b96355bb03dcb495) )
+ ROM_LOAD16_WORD_SWAP( "sz3.08c", 0x280000, 0x80000, CRC(910c4a3b) SHA1(dbd41280f9b16ad6a5b8f12092549970349395f1) )
+ ROM_LOAD16_WORD_SWAP( "sz3.09c", 0x300000, 0x80000, CRC(b29e5199) SHA1(c6c215eb5aa37f678a9cafcbd8620969fb5ca12f) )
+ ROM_LOAD16_WORD_SWAP( "sz3.10b", 0x380000, 0x80000, CRC(deb2ff52) SHA1(0aa4722aad68a04164946c78bf05752f947b4322) )
+
+ ROM_REGION( 0x2000000, "gfx", 0 )
+ ROMX_LOAD( "sfa3br.13", 0x0000000, 0x400000, CRC(f18ffe2d) SHA1(3b7251f3027461a847749c8238ff9b0a9ab1c405) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfa3br.15", 0x0000002, 0x400000, CRC(3283878c) SHA1(e879ad81be09f73949c188e45506f63a114999c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfa3br.17", 0x0000004, 0x400000, CRC(869e0ae2) SHA1(30e018f3b38dbdac6cd1d228865627811886624f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfa3br.19", 0x0000006, 0x400000, CRC(81e0ebfa) SHA1(449b7afc0c88edbab51b27abef4be5ff3698470c) , 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.01", 0x00000, 0x08000, CRC(de810084) SHA1(fd0b969b732921ed8b40c16fbfa30ee09c7a7cbd) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "sz3.02", 0x28000, 0x20000, CRC(72445dc4) SHA1(14fca7596ac45ba655016eef5b6120f9f9671c23) )
+
+ 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) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "sfa3u.key", 0x000000, 0x000014, CRC(4a8f98c1) SHA1(11953de12ed8fbb6f60ad03b1ba5e22a429b7cfa) )
+ROM_END
+
+ROM_START( sfa3dp )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sfa3dp.03", 0x000000, 0x80000, CRC(9411ced4) SHA1(45c963125242eb78992d7d13c3f773f00115ba97) )
+ ROM_LOAD16_WORD_SWAP( "sfa3dp.04", 0x080000, 0x80000, CRC(01a7b266) SHA1(32bec1fa10641c6c155e71827aaa9853e946f8c6) )
+ ROM_LOAD16_WORD_SWAP( "sz3.05c", 0x100000, 0x80000, CRC(57fd0a40) SHA1(bc2d5f4d57117bbf58b1adb088e00424ef489e92) )
+ ROM_LOAD16_WORD_SWAP( "sz3.06c", 0x180000, 0x80000, CRC(f6305f8b) SHA1(3fd1ebdbad96103aca604e950b488e52460a71ec) )
+ ROM_LOAD16_WORD_SWAP( "sz3.07c", 0x200000, 0x80000, CRC(6eab0f6f) SHA1(f8d093dda65cf4e8a3000dc1b96355bb03dcb495) )
+ ROM_LOAD16_WORD_SWAP( "sz3.08c", 0x280000, 0x80000, CRC(910c4a3b) SHA1(dbd41280f9b16ad6a5b8f12092549970349395f1) )
+ ROM_LOAD16_WORD_SWAP( "sz3.09c", 0x300000, 0x80000, CRC(b29e5199) SHA1(c6c215eb5aa37f678a9cafcbd8620969fb5ca12f) )
+ ROM_LOAD16_WORD_SWAP( "sz3.10b", 0x380000, 0x80000, CRC(deb2ff52) SHA1(0aa4722aad68a04164946c78bf05752f947b4322) )
+
+ 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.01", 0x00000, 0x08000, CRC(de810084) SHA1(fd0b969b732921ed8b40c16fbfa30ee09c7a7cbd) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "sz3.02", 0x28000, 0x20000, CRC(72445dc4) SHA1(14fca7596ac45ba655016eef5b6120f9f9671c23) )
+
+ 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) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "sfa3.key", 0x000000, 0x000014, CRC(54fa39c6) SHA1(a0d2f8e697a7a4201762cb02842581840b2a7f78) )
+ROM_END
+
+ROM_START( sfa3nc )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sfa3nc.03", 0x000000, 0x80000, CRC(4773ce1b) SHA1(91c5be4c1053a07104f9c18e876d73406951e274) )
+ ROM_LOAD16_WORD_SWAP( "sfa3dp.04", 0x080000, 0x80000, CRC(01a7b266) SHA1(32bec1fa10641c6c155e71827aaa9853e946f8c6) )
+ ROM_LOAD16_WORD_SWAP( "sz3.05c", 0x100000, 0x80000, CRC(57fd0a40) SHA1(bc2d5f4d57117bbf58b1adb088e00424ef489e92) )
+ ROM_LOAD16_WORD_SWAP( "sz3.06c", 0x180000, 0x80000, CRC(f6305f8b) SHA1(3fd1ebdbad96103aca604e950b488e52460a71ec) )
+ ROM_LOAD16_WORD_SWAP( "sz3.07c", 0x200000, 0x80000, CRC(6eab0f6f) SHA1(f8d093dda65cf4e8a3000dc1b96355bb03dcb495) )
+ ROM_LOAD16_WORD_SWAP( "sz3.08c", 0x280000, 0x80000, CRC(910c4a3b) SHA1(dbd41280f9b16ad6a5b8f12092549970349395f1) )
+ ROM_LOAD16_WORD_SWAP( "sfa3.09c", 0x300000, 0x80000, CRC(8cf82012) SHA1(2e270ec70e55534e7c2ec2a011e4aeeecb94db03) )
+ ROM_LOAD16_WORD_SWAP( "sz3.10b", 0x380000, 0x80000, CRC(deb2ff52) SHA1(0aa4722aad68a04164946c78bf05752f947b4322) )
+
+ 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.01", 0x00000, 0x08000, CRC(de810084) SHA1(fd0b969b732921ed8b40c16fbfa30ee09c7a7cbd) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "sz3.02", 0x28000, 0x20000, CRC(72445dc4) SHA1(14fca7596ac45ba655016eef5b6120f9f9671c23) )
+
+ 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) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "sfa3.key", 0x000000, 0x000014, CRC(54fa39c6) SHA1(a0d2f8e697a7a4201762cb02842581840b2a7f78) )
+ROM_END
+
+ROM_START( sfa3nch )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sfa3nc.03", 0x000000, 0x80000, CRC(4773ce1b) SHA1(91c5be4c1053a07104f9c18e876d73406951e274) )
+ ROM_LOAD16_WORD_SWAP( "sfa3dp.04", 0x080000, 0x80000, CRC(01a7b266) SHA1(32bec1fa10641c6c155e71827aaa9853e946f8c6) )
+ ROM_LOAD16_WORD_SWAP( "sz3.05c", 0x100000, 0x80000, CRC(57fd0a40) SHA1(bc2d5f4d57117bbf58b1adb088e00424ef489e92) )
+ ROM_LOAD16_WORD_SWAP( "sz3.06c", 0x180000, 0x80000, CRC(f6305f8b) SHA1(3fd1ebdbad96103aca604e950b488e52460a71ec) )
+ ROM_LOAD16_WORD_SWAP( "sz3.07c", 0x200000, 0x80000, CRC(6eab0f6f) SHA1(f8d093dda65cf4e8a3000dc1b96355bb03dcb495) )
+ ROM_LOAD16_WORD_SWAP( "sz3.08c", 0x280000, 0x80000, CRC(910c4a3b) SHA1(dbd41280f9b16ad6a5b8f12092549970349395f1) )
+ ROM_LOAD16_WORD_SWAP( "sfa3nch.09c", 0x300000, 0x80000, CRC(6cf78cc3) SHA1(9a69c9c7f4a308c5c9aef1141f45298e288fc1c0) )
+ ROM_LOAD16_WORD_SWAP( "sz3.10b", 0x380000, 0x80000, CRC(deb2ff52) SHA1(0aa4722aad68a04164946c78bf05752f947b4322) )
+
+ 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.01", 0x00000, 0x08000, CRC(de810084) SHA1(fd0b969b732921ed8b40c16fbfa30ee09c7a7cbd) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "sz3.02", 0x28000, 0x20000, CRC(72445dc4) SHA1(14fca7596ac45ba655016eef5b6120f9f9671c23) )
+
+ 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) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "sfa3.key", 0x000000, 0x000014, CRC(54fa39c6) SHA1(a0d2f8e697a7a4201762cb02842581840b2a7f78) )
+ROM_END
+
+ROM_START( sfa3sp2 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sfa3sp2.03", 0x000000, 0x80000, CRC(41b961b4) SHA1(e2865fa71b647b4a8a86cc260b13d6f9616859fa) )
+ ROM_LOAD16_WORD_SWAP( "sz3e.04c", 0x080000, 0x80000, CRC(5ad3f721) SHA1(fec11cc5f63593f0181eb28ae85ad916686793eb) )
+ ROM_LOAD16_WORD_SWAP( "sz3.05c", 0x100000, 0x80000, CRC(57fd0a40) SHA1(bc2d5f4d57117bbf58b1adb088e00424ef489e92) )
+ ROM_LOAD16_WORD_SWAP( "sz3.06c", 0x180000, 0x80000, CRC(f6305f8b) SHA1(3fd1ebdbad96103aca604e950b488e52460a71ec) )
+ ROM_LOAD16_WORD_SWAP( "sz3.07c", 0x200000, 0x80000, CRC(6eab0f6f) SHA1(f8d093dda65cf4e8a3000dc1b96355bb03dcb495) )
+ ROM_LOAD16_WORD_SWAP( "sz3.08c", 0x280000, 0x80000, CRC(910c4a3b) SHA1(dbd41280f9b16ad6a5b8f12092549970349395f1) )
+ ROM_LOAD16_WORD_SWAP( "sz3.09c", 0x300000, 0x80000, CRC(b29e5199) SHA1(c6c215eb5aa37f678a9cafcbd8620969fb5ca12f) )
+ ROM_LOAD16_WORD_SWAP( "sz3.10b", 0x380000, 0x80000, CRC(deb2ff52) SHA1(0aa4722aad68a04164946c78bf05752f947b4322) )
+
+ 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.01", 0x00000, 0x08000, CRC(de810084) SHA1(fd0b969b732921ed8b40c16fbfa30ee09c7a7cbd) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "sz3.02", 0x28000, 0x20000, CRC(72445dc4) SHA1(14fca7596ac45ba655016eef5b6120f9f9671c23) )
+
+ 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) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "sfa3.key", 0x000000, 0x000014, CRC(54fa39c6) SHA1(a0d2f8e697a7a4201762cb02842581840b2a7f78) )
+ROM_END
+
+ROM_START( sfa3spp )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sfa3spp.03", 0x000000, 0x80000, CRC(8267ee23) SHA1(ff86b54bcc7bdfb95bd537a3be2c03093c6865e1) )
+ ROM_LOAD16_WORD_SWAP( "sz3e.04c", 0x080000, 0x80000, CRC(5ad3f721) SHA1(fec11cc5f63593f0181eb28ae85ad916686793eb) )
+ ROM_LOAD16_WORD_SWAP( "sz3.05c", 0x100000, 0x80000, CRC(57fd0a40) SHA1(bc2d5f4d57117bbf58b1adb088e00424ef489e92) )
+ ROM_LOAD16_WORD_SWAP( "sz3.06c", 0x180000, 0x80000, CRC(f6305f8b) SHA1(3fd1ebdbad96103aca604e950b488e52460a71ec) )
+ ROM_LOAD16_WORD_SWAP( "sz3.07c", 0x200000, 0x80000, CRC(6eab0f6f) SHA1(f8d093dda65cf4e8a3000dc1b96355bb03dcb495) )
+ ROM_LOAD16_WORD_SWAP( "sz3.08c", 0x280000, 0x80000, CRC(910c4a3b) SHA1(dbd41280f9b16ad6a5b8f12092549970349395f1) )
+ ROM_LOAD16_WORD_SWAP( "sz3.09c", 0x300000, 0x80000, CRC(b29e5199) SHA1(c6c215eb5aa37f678a9cafcbd8620969fb5ca12f) )
+ ROM_LOAD16_WORD_SWAP( "sz3.10b", 0x380000, 0x80000, CRC(deb2ff52) SHA1(0aa4722aad68a04164946c78bf05752f947b4322) )
+
+ 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.01", 0x00000, 0x08000, CRC(de810084) SHA1(fd0b969b732921ed8b40c16fbfa30ee09c7a7cbd) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "sz3.02", 0x28000, 0x20000, CRC(72445dc4) SHA1(14fca7596ac45ba655016eef5b6120f9f9671c23) )
+
+ 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) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "sfa3.key", 0x000000, 0x000014, CRC(54fa39c6) SHA1(a0d2f8e697a7a4201762cb02842581840b2a7f78) )
+ROM_END
+
+ROM_START( sfa3uhd )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sfa3uhd.03", 0x000000, 0x80000, CRC(eb1a8aeb) SHA1(fc6ae740eeeeb1c2a0e65b154f81904e59925a50) )
+ ROM_LOAD16_WORD_SWAP( "sz3u.04c", 0x080000, 0x80000, CRC(5f78f0e7) SHA1(f4df30fd3515fe9f1125f470b96028052c61f57b) )
+ ROM_LOAD16_WORD_SWAP( "sz3.05c", 0x100000, 0x80000, CRC(57fd0a40) SHA1(bc2d5f4d57117bbf58b1adb088e00424ef489e92) )
+ ROM_LOAD16_WORD_SWAP( "sz3.06c", 0x180000, 0x80000, CRC(f6305f8b) SHA1(3fd1ebdbad96103aca604e950b488e52460a71ec) )
+ ROM_LOAD16_WORD_SWAP( "sz3.07c", 0x200000, 0x80000, CRC(6eab0f6f) SHA1(f8d093dda65cf4e8a3000dc1b96355bb03dcb495) )
+ ROM_LOAD16_WORD_SWAP( "sz3.08c", 0x280000, 0x80000, CRC(910c4a3b) SHA1(dbd41280f9b16ad6a5b8f12092549970349395f1) )
+ ROM_LOAD16_WORD_SWAP( "sz3.09c", 0x300000, 0x80000, CRC(b29e5199) SHA1(c6c215eb5aa37f678a9cafcbd8620969fb5ca12f) )
+ ROM_LOAD16_WORD_SWAP( "sz3.10b", 0x380000, 0x80000, CRC(deb2ff52) SHA1(0aa4722aad68a04164946c78bf05752f947b4322) )
+
+ 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.01", 0x00000, 0x08000, CRC(de810084) SHA1(fd0b969b732921ed8b40c16fbfa30ee09c7a7cbd) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "sz3.02", 0x28000, 0x20000, CRC(72445dc4) SHA1(14fca7596ac45ba655016eef5b6120f9f9671c23) )
+
+ 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) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "sfa3u.key", 0x000000, 0x000014, CRC(4a8f98c1) SHA1(11953de12ed8fbb6f60ad03b1ba5e22a429b7cfa) )
+ROM_END
+
+ROM_START( sfaud )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sfzu_d.03d", 0x000000, 0x80000, CRC(9f2ff577) SHA1(e78d7e8e0a5703dea09aed2ac4055d45844cead5) )
+ ROM_LOAD16_WORD_SWAP( "sfz.04b", 0x080000, 0x80000, CRC(8b73b0e5) SHA1(5318761f615c21395366b5333e75eaaa73ef2073) )
+ ROM_LOAD16_WORD_SWAP( "sfz.05a", 0x100000, 0x80000, CRC(0810544d) SHA1(5f39bda3e7b16508eb58e5a2e0cc58c09cf428ce) )
+ ROM_LOAD16_WORD_SWAP( "sfz.06", 0x180000, 0x80000, CRC(806e8f38) SHA1(b6d6912aa8f2f590335d7ff9a8214648e7131ebb) )
+
+ ROM_REGION( 0x1000000, "gfx", 0 )
+ ROM_FILL( 0x000000, 0x800000, 0 )
+ ROMX_LOAD( "sfz.14m", 0x800000, 0x200000, CRC(90fefdb3) SHA1(5eb28c8de57acfeaefebdd01509c7d9ba5244705) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz.16m", 0x800002, 0x200000, CRC(5354c948) SHA1(07588f1ba6addc04fef3274c971174aaf3e632ab) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz.18m", 0x800004, 0x200000, CRC(41a1e790) SHA1(ce25dad542308691dbe9606b26279bbd59ea4b81) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz.20m", 0x800006, 0x200000, CRC(a549df98) SHA1(f054e95df650a891ef56da8bfb31cb2c945a9aed) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sfz.01", 0x00000, 0x08000, CRC(ffffec7d) SHA1(75b4aef001b72a0f571b51b2b97803facc1832dd) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "sfz.02", 0x28000, 0x20000, CRC(45f46a08) SHA1(e32dbd27b52ab708278045b5a829376e55a4ca81) )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "sfz.11m", 0x000000, 0x200000, CRC(c4b093cd) SHA1(256526bb693a0b72443f047e060304c9b739acd1) )
+ ROM_LOAD16_WORD_SWAP( "sfz.12m", 0x200000, 0x200000, CRC(8bdbc4b4) SHA1(0e21c9a75a17a7e7dfd8bb51098c2b9dc4c933ec) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "phoenix.key", 0x000000, 0x000014, CRC(2cf772b0) SHA1(eff33c65a4f3862c231f9e4d6fefa7b34398dbf2) )
+ROM_END
+
+
+ROM_START( sfz2abr )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "szabr.03", 0x000000, 0x80000, CRC(0e8e719b) SHA1(ef013adf386925c68f3d38159adfe447c8f259de) )
+ ROM_LOAD16_WORD_SWAP( "szabr.04", 0x080000, 0x80000, CRC(bc7271a0) SHA1(601a0e21926a1d9aebebf41e6dc08523b6773338) )
+ ROM_LOAD16_WORD_SWAP( "szabr.05", 0x100000, 0x80000, CRC(e19eee58) SHA1(f0a2f8606136450c375d9b43f182e4cee2ec1208) )
+ ROM_LOAD16_WORD_SWAP( "szaa.06", 0x180000, 0x80000, CRC(cfc0e7a8) SHA1(31ed58451c7a6ac88a8fccab369167694698f044) )
+ ROM_LOAD16_WORD_SWAP( "szaa.07", 0x200000, 0x80000, CRC(5feb8b20) SHA1(13c79c9b72c3abf0a0b75d507d91ece71e460c06) )
+ ROM_LOAD16_WORD_SWAP( "szaa.08", 0x280000, 0x80000, CRC(6eb6d412) SHA1(c858fec9c1dfea70dfcca629c1c24306f8ae6d81) )
+
+ ROM_REGION( 0x1400000, "gfx", 0 )
+ ROMX_LOAD( "sz2br.13m", 0x0000000, 0x400000, CRC(a3b979fe) SHA1(236378162562aea3e522a182bbf395b020452893) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sz2br.15m", 0x0000002, 0x400000, CRC(ab0e6693) SHA1(6f00bdf5064fb1cb2e152c2731d26a11cd8bf376) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sz2br.17m", 0x0000004, 0x400000, CRC(ce0913ba) SHA1(684c402c7ca1e50018ef439331b5bd002f573db8) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sz2br.19m", 0x0000006, 0x400000, CRC(3c8cffe6) SHA1(26d4ed4a20a4e84b8c87c7120b181371e428ad58) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sz2.14m", 0x1000000, 0x100000, CRC(0560c6aa) SHA1(f2bed3a8efef18052b51a7f0f6a888a18db813a1) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sz2.16m", 0x1000002, 0x100000, CRC(ae940f87) SHA1(39ee26333abbe302ba76dced0196a2e6b3b1d02a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sz2.18m", 0x1000004, 0x100000, CRC(4bc3c8bc) SHA1(6256963c515bf56f39b6e559afefd653ead56c54) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sz2.20m", 0x1000006, 0x100000, CRC(39e674c0) SHA1(8e771a2d8c2accad0463bccd21d7b23af0c895a1) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sz2.01a", 0x00000, 0x08000, CRC(1bc323cf) SHA1(83fbd6e9b327700dc9f1c59700b7385bc3705749) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "sz2.02a", 0x28000, 0x20000, CRC(ba6a5013) SHA1(7814f3e56b69529b9860dd61c3b1e8d700244b03) )
+
+ 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) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "sfz2al.key", 0x000000, 0x000014, CRC(2904963e) SHA1(f4fa44646746ab4c6f2e76eaba57a7aee32e2933) )
+ROM_END
+
+ROM_START( sfz2ajhp )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sfzajhp.03", 0x000000, 0x80000, CRC(b2d81a68) SHA1(f59d1417fed645d1b4edec47195cf2e85d1c4fc4) )
+ ROM_LOAD16_WORD_SWAP( "szaj.04a", 0x080000, 0x80000, CRC(e7ca87c7) SHA1(e44c930b27431dd2b983d93471a440d292e7a8bb) )
+ ROM_LOAD16_WORD_SWAP( "szaj.05a", 0x100000, 0x80000, CRC(c88ebf88) SHA1(e37cf232fc70b9a3254dea99754e288232f04e25) )
+ ROM_LOAD16_WORD_SWAP( "szaj.06a", 0x180000, 0x80000, CRC(35ed5b7a) SHA1(b03cb92f594eb35fa374445f74930e9040a2baff) )
+ ROM_LOAD16_WORD_SWAP( "szaj.07a", 0x200000, 0x80000, CRC(975dcb3e) SHA1(a2ca8e5a768e49cce9e2137ec0dcba9337ed2ad5) )
+ ROM_LOAD16_WORD_SWAP( "szaj.08a", 0x280000, 0x80000, CRC(dc73f2d7) SHA1(09fa10e7d1ff5f0dac87a6cf3d66730e3ab9ad25) )
+
+ ROM_REGION( 0x1400000, "gfx", 0 )
+ ROMX_LOAD( "sza.13m", 0x0000000, 0x400000, CRC(4d1f1f22) SHA1(659fb4305bcf0cbbbbec97ede6e68a8323b13308) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sza.15m", 0x0000002, 0x400000, CRC(19cea680) SHA1(4cb88963a0fbcef191c8419b6379387c01b4c81e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sza.17m", 0x0000004, 0x400000, CRC(e01b4588) SHA1(c2936608fd75ff6cd5fa94c6d6d6f0c77c44a450) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sza.19m", 0x0000006, 0x400000, CRC(0feeda64) SHA1(f5b350601437bd94b70d97feb23d791df19da6b3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sza.14m", 0x1000000, 0x100000, CRC(0560c6aa) SHA1(f2bed3a8efef18052b51a7f0f6a888a18db813a1) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sza.16m", 0x1000002, 0x100000, CRC(ae940f87) SHA1(39ee26333abbe302ba76dced0196a2e6b3b1d02a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sza.18m", 0x1000004, 0x100000, CRC(4bc3c8bc) SHA1(6256963c515bf56f39b6e559afefd653ead56c54) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sza.20m", 0x1000006, 0x100000, CRC(39e674c0) SHA1(8e771a2d8c2accad0463bccd21d7b23af0c895a1) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sza.01", 0x00000, 0x08000, CRC(1bc323cf) SHA1(83fbd6e9b327700dc9f1c59700b7385bc3705749) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "sza.02", 0x28000, 0x20000, CRC(ba6a5013) SHA1(7814f3e56b69529b9860dd61c3b1e8d700244b03) )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "sza.11m", 0x000000, 0x200000, CRC(aa47a601) SHA1(a4d1ee89c84a3b9db06469bb66e85293b5aa9ac9) )
+ ROM_LOAD16_WORD_SWAP( "sza.12m", 0x200000, 0x200000, CRC(2237bc53) SHA1(96d5693047e4cf1ed10a8ee1905cea267a278e92) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "sfz2alj.key", 0x000000, 0x000014, CRC(4c42320f) SHA1(0fabdab677416c5a8060526d997e6f80b26f9bb3) )
+ROM_END
+
+ROM_START( sfz2aldp )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sfzaldp.03", 0x000000, 0x80000, CRC(d6493cc5) SHA1(b7123783b9f77a0ec2e995b599a96f291b178c95) )
+ ROM_LOAD16_WORD_SWAP( "sfzaldp.04", 0x080000, 0x80000, CRC(a3f56672) SHA1(7351929b857b710a658a0be7c9fb82edca89ddfe) )
+ ROM_LOAD16_WORD_SWAP( "szaj.05a", 0x100000, 0x80000, CRC(c88ebf88) SHA1(e37cf232fc70b9a3254dea99754e288232f04e25) )
+ ROM_LOAD16_WORD_SWAP( "szaj.06a", 0x180000, 0x80000, CRC(35ed5b7a) SHA1(b03cb92f594eb35fa374445f74930e9040a2baff) )
+ ROM_LOAD16_WORD_SWAP( "szaj.07a", 0x200000, 0x80000, CRC(975dcb3e) SHA1(a2ca8e5a768e49cce9e2137ec0dcba9337ed2ad5) )
+ ROM_LOAD16_WORD_SWAP( "szaj.08a", 0x280000, 0x80000, CRC(dc73f2d7) SHA1(09fa10e7d1ff5f0dac87a6cf3d66730e3ab9ad25) )
+
+ ROM_REGION( 0x1400000, "gfx", 0 )
+ ROMX_LOAD( "sza.13m", 0x0000000, 0x400000, CRC(4d1f1f22) SHA1(659fb4305bcf0cbbbbec97ede6e68a8323b13308) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sza.15m", 0x0000002, 0x400000, CRC(19cea680) SHA1(4cb88963a0fbcef191c8419b6379387c01b4c81e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sza.17m", 0x0000004, 0x400000, CRC(e01b4588) SHA1(c2936608fd75ff6cd5fa94c6d6d6f0c77c44a450) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sza.19m", 0x0000006, 0x400000, CRC(0feeda64) SHA1(f5b350601437bd94b70d97feb23d791df19da6b3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sza.14m", 0x1000000, 0x100000, CRC(0560c6aa) SHA1(f2bed3a8efef18052b51a7f0f6a888a18db813a1) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sza.16m", 0x1000002, 0x100000, CRC(ae940f87) SHA1(39ee26333abbe302ba76dced0196a2e6b3b1d02a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sza.18m", 0x1000004, 0x100000, CRC(4bc3c8bc) SHA1(6256963c515bf56f39b6e559afefd653ead56c54) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sza.20m", 0x1000006, 0x100000, CRC(39e674c0) SHA1(8e771a2d8c2accad0463bccd21d7b23af0c895a1) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sza.01", 0x00000, 0x08000, CRC(1bc323cf) SHA1(83fbd6e9b327700dc9f1c59700b7385bc3705749) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "sza.02", 0x28000, 0x20000, CRC(ba6a5013) SHA1(7814f3e56b69529b9860dd61c3b1e8d700244b03) )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "sza.11m", 0x000000, 0x200000, CRC(aa47a601) SHA1(a4d1ee89c84a3b9db06469bb66e85293b5aa9ac9) )
+ ROM_LOAD16_WORD_SWAP( "sza.12m", 0x200000, 0x200000, CRC(2237bc53) SHA1(96d5693047e4cf1ed10a8ee1905cea267a278e92) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "sfz2alj.key", 0x000000, 0x000014, CRC(4c42320f) SHA1(0fabdab677416c5a8060526d997e6f80b26f9bb3) )
+ROM_END
+
+ROM_START( sfz2aldp2 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sfzaldp2.03", 0x000000, 0x80000, CRC(67bc6f45) SHA1(d810865d890fc7830078e5dc13002f4447a0b3ea) )
+ ROM_LOAD16_WORD_SWAP( "sfzaldp2.04", 0x080000, 0x80000, CRC(b124800a) SHA1(560e708e1296ac3e7e6b74bee99a152a0d1f6894) )
+ ROM_LOAD16_WORD_SWAP( "szaj.05a", 0x100000, 0x80000, CRC(c88ebf88) SHA1(e37cf232fc70b9a3254dea99754e288232f04e25) )
+ ROM_LOAD16_WORD_SWAP( "szaj.06a", 0x180000, 0x80000, CRC(35ed5b7a) SHA1(b03cb92f594eb35fa374445f74930e9040a2baff) )
+ ROM_LOAD16_WORD_SWAP( "szaj.07a", 0x200000, 0x80000, CRC(975dcb3e) SHA1(a2ca8e5a768e49cce9e2137ec0dcba9337ed2ad5) )
+ ROM_LOAD16_WORD_SWAP( "szaj.08a", 0x280000, 0x80000, CRC(dc73f2d7) SHA1(09fa10e7d1ff5f0dac87a6cf3d66730e3ab9ad25) )
+
+ ROM_REGION( 0x1400000, "gfx", 0 )
+ ROMX_LOAD( "sza.13m", 0x0000000, 0x400000, CRC(4d1f1f22) SHA1(659fb4305bcf0cbbbbec97ede6e68a8323b13308) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sza.15m", 0x0000002, 0x400000, CRC(19cea680) SHA1(4cb88963a0fbcef191c8419b6379387c01b4c81e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sza.17m", 0x0000004, 0x400000, CRC(e01b4588) SHA1(c2936608fd75ff6cd5fa94c6d6d6f0c77c44a450) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sza.19m", 0x0000006, 0x400000, CRC(0feeda64) SHA1(f5b350601437bd94b70d97feb23d791df19da6b3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sza.14m", 0x1000000, 0x100000, CRC(0560c6aa) SHA1(f2bed3a8efef18052b51a7f0f6a888a18db813a1) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sza.16m", 0x1000002, 0x100000, CRC(ae940f87) SHA1(39ee26333abbe302ba76dced0196a2e6b3b1d02a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sza.18m", 0x1000004, 0x100000, CRC(4bc3c8bc) SHA1(6256963c515bf56f39b6e559afefd653ead56c54) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sza.20m", 0x1000006, 0x100000, CRC(39e674c0) SHA1(8e771a2d8c2accad0463bccd21d7b23af0c895a1) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sza.01", 0x00000, 0x08000, CRC(1bc323cf) SHA1(83fbd6e9b327700dc9f1c59700b7385bc3705749) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "sza.02", 0x28000, 0x20000, CRC(ba6a5013) SHA1(7814f3e56b69529b9860dd61c3b1e8d700244b03) )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "sza.11m", 0x000000, 0x200000, CRC(aa47a601) SHA1(a4d1ee89c84a3b9db06469bb66e85293b5aa9ac9) )
+ ROM_LOAD16_WORD_SWAP( "sza.12m", 0x200000, 0x200000, CRC(2237bc53) SHA1(96d5693047e4cf1ed10a8ee1905cea267a278e92) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "sfz2alj.key", 0x000000, 0x000014, CRC(4c42320f) SHA1(0fabdab677416c5a8060526d997e6f80b26f9bb3) )
+ROM_END
+
+ROM_START( sfz2jyh )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sfz2jyh.03", 0x000000, 0x80000, CRC(4afbba27) SHA1(9bba80417763d3dd9614efc810908ef3d011c49d) )
+ ROM_LOAD16_WORD_SWAP( "sz2j.04a", 0x080000, 0x80000, CRC(ae4851a9) SHA1(4771bc22fe1b376b753a68506c012c52bd4b886d) )
+ ROM_LOAD16_WORD_SWAP( "sz2.05a", 0x100000, 0x80000, CRC(98e8e992) SHA1(41745b63e6b3888081d189b8315ed3b7526b3d20) )
+ ROM_LOAD16_WORD_SWAP( "sz2.06", 0x180000, 0x80000, CRC(5b1d49c0) SHA1(f0a0c894c9cbe2b18e7f59058665949ee0025732) )
+ ROM_LOAD16_WORD_SWAP( "sz2j.07a", 0x200000, 0x80000, CRC(d910b2a2) SHA1(aa201660caa9cef993c147a1077c9e7767b34a78) )
+ ROM_LOAD16_WORD_SWAP( "sz2.08", 0x280000, 0x80000, CRC(0fe8585d) SHA1(0cd5369a5aa90c98d8dc1ff3342cd4d990631cff) )
+
+ ROM_REGION( 0x1400000, "gfx", 0 )
+ ROMX_LOAD( "sz2.13m", 0x0000000, 0x400000, CRC(4d1f1f22) SHA1(659fb4305bcf0cbbbbec97ede6e68a8323b13308) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sz2.15m", 0x0000002, 0x400000, CRC(19cea680) SHA1(4cb88963a0fbcef191c8419b6379387c01b4c81e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sz2.17m", 0x0000004, 0x400000, CRC(e01b4588) SHA1(c2936608fd75ff6cd5fa94c6d6d6f0c77c44a450) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sz2.19m", 0x0000006, 0x400000, CRC(0feeda64) SHA1(f5b350601437bd94b70d97feb23d791df19da6b3) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sz2.14m", 0x1000000, 0x100000, CRC(0560c6aa) SHA1(f2bed3a8efef18052b51a7f0f6a888a18db813a1) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sz2.16m", 0x1000002, 0x100000, CRC(ae940f87) SHA1(39ee26333abbe302ba76dced0196a2e6b3b1d02a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sz2.18m", 0x1000004, 0x100000, CRC(4bc3c8bc) SHA1(6256963c515bf56f39b6e559afefd653ead56c54) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sz2.20m", 0x1000006, 0x100000, CRC(39e674c0) SHA1(8e771a2d8c2accad0463bccd21d7b23af0c895a1) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sz2.01a", 0x00000, 0x08000, CRC(1bc323cf) SHA1(83fbd6e9b327700dc9f1c59700b7385bc3705749) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "sz2.02a", 0x28000, 0x20000, CRC(ba6a5013) SHA1(7814f3e56b69529b9860dd61c3b1e8d700244b03) )
+
+ 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) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "sfz2j.key", 0x000000, 0x000014, CRC(455bd098) SHA1(6a928a2d44f416ccdb0c09a8dd7466ac12f38110) )
+ROM_END
+
+
+ROM_START( sfz3jb )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sfz3jb.03", 0x000000, 0x80000, CRC(d7eca311) SHA1(cb2156bb5b545782bf4c0387ba6995136d14452d) )
+ ROM_LOAD16_WORD_SWAP( "sfz3jb.04", 0x080000, 0x80000, CRC(ee836561) SHA1(9b3f6a7a7b11b76e4849698c7ce5f09c23bcdad0) )
+ ROM_LOAD16_WORD_SWAP( "sz3.05c", 0x100000, 0x80000, CRC(57fd0a40) SHA1(bc2d5f4d57117bbf58b1adb088e00424ef489e92) )
+ ROM_LOAD16_WORD_SWAP( "sz3.06c", 0x180000, 0x80000, CRC(f6305f8b) SHA1(3fd1ebdbad96103aca604e950b488e52460a71ec) )
+ ROM_LOAD16_WORD_SWAP( "sz3.07c", 0x200000, 0x80000, CRC(6eab0f6f) SHA1(f8d093dda65cf4e8a3000dc1b96355bb03dcb495) )
+ ROM_LOAD16_WORD_SWAP( "sz3.08c", 0x280000, 0x80000, CRC(910c4a3b) SHA1(dbd41280f9b16ad6a5b8f12092549970349395f1) )
+ ROM_LOAD16_WORD_SWAP( "sz3.09c", 0x300000, 0x80000, CRC(b29e5199) SHA1(c6c215eb5aa37f678a9cafcbd8620969fb5ca12f) )
+ ROM_LOAD16_WORD_SWAP( "sz3.10b", 0x380000, 0x80000, CRC(deb2ff52) SHA1(0aa4722aad68a04164946c78bf05752f947b4322) )
+
+ 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.01", 0x00000, 0x08000, CRC(de810084) SHA1(fd0b969b732921ed8b40c16fbfa30ee09c7a7cbd) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "sz3.02", 0x28000, 0x20000, CRC(72445dc4) SHA1(14fca7596ac45ba655016eef5b6120f9f9671c23) )
+
+ 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) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "sfz3j.key", 0x000000, 0x000014, CRC(d30cca8d) SHA1(b05869902d4d5968d5f79ed6165eb4b78e1ddcdd) )
+ROM_END
+
+ROM_START( sfz3jemb )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sfz3jemb.03", 0x000000, 0x80000, CRC(1e103c5e) SHA1(2a96b8f62f4dcefadb4485c60e40074a6357a22a) )
+ ROM_LOAD16_WORD_SWAP( "sz3j.04c", 0x080000, 0x80000, CRC(fcb31228) SHA1(093f40083b5a4e4cae433d5856c48014063fe6ad) )
+ ROM_LOAD16_WORD_SWAP( "sz3.05c", 0x100000, 0x80000, CRC(57fd0a40) SHA1(bc2d5f4d57117bbf58b1adb088e00424ef489e92) )
+ ROM_LOAD16_WORD_SWAP( "sz3.06c", 0x180000, 0x80000, CRC(f6305f8b) SHA1(3fd1ebdbad96103aca604e950b488e52460a71ec) )
+ ROM_LOAD16_WORD_SWAP( "sz3.07c", 0x200000, 0x80000, CRC(6eab0f6f) SHA1(f8d093dda65cf4e8a3000dc1b96355bb03dcb495) )
+ ROM_LOAD16_WORD_SWAP( "sz3.08c", 0x280000, 0x80000, CRC(910c4a3b) SHA1(dbd41280f9b16ad6a5b8f12092549970349395f1) )
+ ROM_LOAD16_WORD_SWAP( "sz3.09c", 0x300000, 0x80000, CRC(b29e5199) SHA1(c6c215eb5aa37f678a9cafcbd8620969fb5ca12f) )
+ ROM_LOAD16_WORD_SWAP( "sz3.10b", 0x380000, 0x80000, CRC(deb2ff52) SHA1(0aa4722aad68a04164946c78bf05752f947b4322) )
+
+ 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.01", 0x00000, 0x08000, CRC(de810084) SHA1(fd0b969b732921ed8b40c16fbfa30ee09c7a7cbd) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "sz3.02", 0x28000, 0x20000, CRC(72445dc4) SHA1(14fca7596ac45ba655016eef5b6120f9f9671c23) )
+
+ 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) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "sfz3j.key", 0x000000, 0x000014, CRC(d30cca8d) SHA1(b05869902d4d5968d5f79ed6165eb4b78e1ddcdd) )
+ROM_END
+
+ROM_START( sfz3jhp )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sfz3jhp.03", 0x000000, 0x80000, CRC(5719fd0c) SHA1(edfdbbc36173a00652ef136005e55171b446b6c2) )
+ ROM_LOAD16_WORD_SWAP( "sz3j.04c", 0x080000, 0x80000, CRC(fcb31228) SHA1(093f40083b5a4e4cae433d5856c48014063fe6ad) )
+ ROM_LOAD16_WORD_SWAP( "sz3.05c", 0x100000, 0x80000, CRC(57fd0a40) SHA1(bc2d5f4d57117bbf58b1adb088e00424ef489e92) )
+ ROM_LOAD16_WORD_SWAP( "sz3.06c", 0x180000, 0x80000, CRC(f6305f8b) SHA1(3fd1ebdbad96103aca604e950b488e52460a71ec) )
+ ROM_LOAD16_WORD_SWAP( "sz3.07c", 0x200000, 0x80000, CRC(6eab0f6f) SHA1(f8d093dda65cf4e8a3000dc1b96355bb03dcb495) )
+ ROM_LOAD16_WORD_SWAP( "sz3.08c", 0x280000, 0x80000, CRC(910c4a3b) SHA1(dbd41280f9b16ad6a5b8f12092549970349395f1) )
+ ROM_LOAD16_WORD_SWAP( "sz3.09c", 0x300000, 0x80000, CRC(b29e5199) SHA1(c6c215eb5aa37f678a9cafcbd8620969fb5ca12f) )
+ ROM_LOAD16_WORD_SWAP( "sz3.10b", 0x380000, 0x80000, CRC(deb2ff52) SHA1(0aa4722aad68a04164946c78bf05752f947b4322) )
+
+ 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.01", 0x00000, 0x08000, CRC(de810084) SHA1(fd0b969b732921ed8b40c16fbfa30ee09c7a7cbd) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "sz3.02", 0x28000, 0x20000, CRC(72445dc4) SHA1(14fca7596ac45ba655016eef5b6120f9f9671c23) )
+
+ 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) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "sfz3j.key", 0x000000, 0x000014, CRC(d30cca8d) SHA1(b05869902d4d5968d5f79ed6165eb4b78e1ddcdd) )
+ROM_END
+
+ROM_START( sfz3jsep )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sfz3jsep.03", 0x000000, 0x80000, CRC(248da619) SHA1(54155279822dc8f754d753c696eeec1fd0e90c18) )
+ ROM_LOAD16_WORD_SWAP( "sz3j.04c", 0x080000, 0x80000, CRC(fcb31228) SHA1(093f40083b5a4e4cae433d5856c48014063fe6ad) )
+ ROM_LOAD16_WORD_SWAP( "sz3.05c", 0x100000, 0x80000, CRC(57fd0a40) SHA1(bc2d5f4d57117bbf58b1adb088e00424ef489e92) )
+ ROM_LOAD16_WORD_SWAP( "sz3.06c", 0x180000, 0x80000, CRC(f6305f8b) SHA1(3fd1ebdbad96103aca604e950b488e52460a71ec) )
+ ROM_LOAD16_WORD_SWAP( "sz3.07c", 0x200000, 0x80000, CRC(6eab0f6f) SHA1(f8d093dda65cf4e8a3000dc1b96355bb03dcb495) )
+ ROM_LOAD16_WORD_SWAP( "sz3.08c", 0x280000, 0x80000, CRC(910c4a3b) SHA1(dbd41280f9b16ad6a5b8f12092549970349395f1) )
+ ROM_LOAD16_WORD_SWAP( "sz3.09c", 0x300000, 0x80000, CRC(b29e5199) SHA1(c6c215eb5aa37f678a9cafcbd8620969fb5ca12f) )
+ ROM_LOAD16_WORD_SWAP( "sz3.10b", 0x380000, 0x80000, CRC(deb2ff52) SHA1(0aa4722aad68a04164946c78bf05752f947b4322) )
+
+ 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.01", 0x00000, 0x08000, CRC(de810084) SHA1(fd0b969b732921ed8b40c16fbfa30ee09c7a7cbd) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "sz3.02", 0x28000, 0x20000, CRC(72445dc4) SHA1(14fca7596ac45ba655016eef5b6120f9f9671c23) )
+
+ 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) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "sfz3j.key", 0x000000, 0x000014, CRC(d30cca8d) SHA1(b05869902d4d5968d5f79ed6165eb4b78e1ddcdd) )
+ROM_END
+
+
+ROM_START( sfzjboss )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sfzjboss.03", 0x000000, 0x80000, CRC(0a2e2f39) SHA1(654e05c1598ec932de03fd1ff8b9fa66ec4ceb60) )
+ ROM_LOAD16_WORD_SWAP( "sfz.04b", 0x080000, 0x80000, CRC(8b73b0e5) SHA1(5318761f615c21395366b5333e75eaaa73ef2073) )
+ ROM_LOAD16_WORD_SWAP( "sfz.05a", 0x100000, 0x80000, CRC(0810544d) SHA1(5f39bda3e7b16508eb58e5a2e0cc58c09cf428ce) )
+ ROM_LOAD16_WORD_SWAP( "sfzjboss.06", 0x180000, 0x80000, CRC(b6c4fec7) SHA1(602c9acb8034219334df05ff4d5dc67514823182) )
+
+ ROM_REGION( 0x1000000, "gfx", 0 )
+ ROM_FILL( 0x000000, 0x800000, 0x00 )
+ ROMX_LOAD( "sfz.14m", 0x800000, 0x200000, CRC(90fefdb3) SHA1(5eb28c8de57acfeaefebdd01509c7d9ba5244705) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz.16m", 0x800002, 0x200000, CRC(5354c948) SHA1(07588f1ba6addc04fef3274c971174aaf3e632ab) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz.18m", 0x800004, 0x200000, CRC(41a1e790) SHA1(ce25dad542308691dbe9606b26279bbd59ea4b81) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz.20m", 0x800006, 0x200000, CRC(a549df98) SHA1(f054e95df650a891ef56da8bfb31cb2c945a9aed) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sfz.01", 0x00000, 0x08000, CRC(ffffec7d) SHA1(75b4aef001b72a0f571b51b2b97803facc1832dd) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "sfz.02", 0x28000, 0x20000, CRC(45f46a08) SHA1(e32dbd27b52ab708278045b5a829376e55a4ca81) )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "sfz.11m", 0x000000, 0x200000, CRC(c4b093cd) SHA1(256526bb693a0b72443f047e060304c9b739acd1) )
+ ROM_LOAD16_WORD_SWAP( "sfz.12m", 0x200000, 0x200000, CRC(8bdbc4b4) SHA1(0e21c9a75a17a7e7dfd8bb51098c2b9dc4c933ec) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "sfzj.key", 0x000000, 0x000014, CRC(355d85b8) SHA1(5da2c407852ce7b28153f3f94de8328802ff2f2d) )
+ROM_END
+
+ROM_START( sfzjyh )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sfzjyh.03", 0x000000, 0x80000, CRC(6b0366bf) SHA1(6138f48027beaba73cc744ffc75589fe26ec1339) )
+ ROM_LOAD16_WORD_SWAP( "sfz.04b", 0x080000, 0x80000, CRC(8b73b0e5) SHA1(5318761f615c21395366b5333e75eaaa73ef2073) )
+ ROM_LOAD16_WORD_SWAP( "sfz.05a", 0x100000, 0x80000, CRC(0810544d) SHA1(5f39bda3e7b16508eb58e5a2e0cc58c09cf428ce) )
+ ROM_LOAD16_WORD_SWAP( "sfzjyh.06", 0x180000, 0x80000, CRC(e7bb5d20) SHA1(0f2e4516ba93f02e6869b182d225718e845d1093) )
+
+ ROM_REGION( 0x1000000, "gfx", 0 )
+ ROM_FILL( 0x000000, 0x800000, 0x00 )
+ ROMX_LOAD( "sfz.14m", 0x800000, 0x200000, CRC(90fefdb3) SHA1(5eb28c8de57acfeaefebdd01509c7d9ba5244705) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz.16m", 0x800002, 0x200000, CRC(5354c948) SHA1(07588f1ba6addc04fef3274c971174aaf3e632ab) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz.18m", 0x800004, 0x200000, CRC(41a1e790) SHA1(ce25dad542308691dbe9606b26279bbd59ea4b81) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfz.20m", 0x800006, 0x200000, CRC(a549df98) SHA1(f054e95df650a891ef56da8bfb31cb2c945a9aed) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sfz.01", 0x00000, 0x08000, CRC(ffffec7d) SHA1(75b4aef001b72a0f571b51b2b97803facc1832dd) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "sfz.02", 0x28000, 0x20000, CRC(45f46a08) SHA1(e32dbd27b52ab708278045b5a829376e55a4ca81) )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "sfz.11m", 0x000000, 0x200000, CRC(c4b093cd) SHA1(256526bb693a0b72443f047e060304c9b739acd1) )
+ ROM_LOAD16_WORD_SWAP( "sfz.12m", 0x200000, 0x200000, CRC(8bdbc4b4) SHA1(0e21c9a75a17a7e7dfd8bb51098c2b9dc4c933ec) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "sfzj.key", 0x000000, 0x000014, CRC(355d85b8) SHA1(5da2c407852ce7b28153f3f94de8328802ff2f2d) )
+ROM_END
+
+
+ROM_START( sgemfch )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "pcfu.03", 0x000000, 0x80000, CRC(ac2e8566) SHA1(5975aae46bded231c0f478f40c7257434ade36b0) )
+ ROM_LOAD16_WORD_SWAP( "pcf.04", 0x080000, 0x80000, CRC(f4314c96) SHA1(c40ed74039bf0096eb3648b7243a8e697638e0a6) )
+ ROM_LOAD16_WORD_SWAP( "pcf.05", 0x100000, 0x80000, CRC(215655f6) SHA1(242c0f4401520f2a3b0deafc3a807b18b987e496) )
+ ROM_LOAD16_WORD_SWAP( "pcf.06", 0x180000, 0x80000, CRC(ea6f13ea) SHA1(1bc924a8a9da1d2ad7667685cdb92fe317a39aba) )
+ ROM_LOAD16_WORD_SWAP( "sgemfch.07", 0x200000, 0x80000, CRC(dcbe118c) SHA1(c571058180e1ad317eb3819a4701d4e40e7787f1) )
+
+ ROM_REGION( 0x1400000, "gfx", 0 )
+ ROMX_LOAD( "pcf.13m", 0x0000000, 0x400000, CRC(22d72ab9) SHA1(653efd95c34b4b9d2ab0d219f41a99ca84e12214) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "pcf.15m", 0x0000002, 0x400000, CRC(16a4813c) SHA1(bf5fce6008214f353414d1b64bea4ed0c7673670) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "pcf.17m", 0x0000004, 0x400000, CRC(1097e035) SHA1(4bd51e4e9447af27d2cac1f6d2201e37c949912b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "pcf.19m", 0x0000006, 0x400000, CRC(d362d874) SHA1(30c42af18440496cc05e4418e4efa41172ae4ced) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "pcf.14m", 0x1000000, 0x100000, CRC(0383897c) SHA1(aba14afa1d0c971afcee4317f480e88117d77b5e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "pcf.16m", 0x1000002, 0x100000, CRC(76f91084) SHA1(3d1e32467f2aa5dd6fb96bd5c866ecc9691660fc) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "pcf.18m", 0x1000004, 0x100000, CRC(756c3754) SHA1(be2f709b90222a567f198f851cf07ffb0ad433d7) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "pcf.20m", 0x1000006, 0x100000, CRC(9ec9277d) SHA1(b7ceeaca30dfcdf498b61a6961f0aa1a068b8ec4) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "pcf.01", 0x00000, 0x08000, CRC(254e5f33) SHA1(c413ec0630b9bdd15e64f42893eba8958a09b573) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "pcf.02", 0x28000, 0x20000, CRC(6902f4f9) SHA1(9bfe4ddade3c666076d26a2b545120f6d059fd7c) )
+
+ ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "pcf.11m", 0x000000, 0x400000, CRC(a5dea005) SHA1(3ae79baf6ff5bd527f82b26f164c7e3c65423ae2) )
+ ROM_LOAD16_WORD_SWAP( "pcf.12m", 0x400000, 0x400000, CRC(4ce235fe) SHA1(795b94557e954cc0e45fd3778b609064d57a34a2) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "sgemf.key", 0x000000, 0x000014, CRC(3d604021) SHA1(f6189a7dcdd110f4d624cddfe2e51e49c40a0fdb) )
+ROM_END
+
+
+ROM_START( spf2tb )
+ ROM_REGION(CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "pzfu_boss.03a", 0x000000, 0x80000, CRC(ca1f3e42) SHA1(784214517f3ac3f5f727a18f50992d4fa3417726) )
+ ROM_LOAD16_WORD_SWAP( "pzf.04", 0x080000, 0x80000, CRC(b80649e2) SHA1(5bfccd656aea7ff82e9a20bb5856f4ab99b5a007) )
+
+ ROM_REGION( 0xC00000, "gfx", 0 )
+ ROM_FILL( 0x000000, 0x800000, 0 )
+ ROMX_LOAD( "pzf.14m", 0x800000, 0x100000, CRC(2d4881cb) SHA1(fd3baa183c25bed153b19c251980e2fb761600e2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "pzf.16m", 0x800002, 0x100000, CRC(4b0fd1be) SHA1(377aafdcdb7a866b1c8487670e3598d8197976e4) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "pzf.18m", 0x800004, 0x100000, CRC(e43aac33) SHA1(d041e0688c3807d3363861a7f216de43b34d846c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "pzf.20m", 0x800006, 0x100000, CRC(7f536ff1) SHA1(905b9d62ef7bef47297c7f4a4dd697aed6df38a5) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION(QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "pzf.01", 0x00000, 0x08000, CRC(600fb2a3) SHA1(1fab1c2a23bf6ad8309d29ddbbc29435a8aeea13) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "pzf.02", 0x28000, 0x20000, CRC(496076e0) SHA1(1ee4e135140afd0e8e03231e570cd77d140f6367) )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "pzf.11m", 0x000000, 0x200000, CRC(78442743) SHA1(b61190bb586871de6d54af580e3e1d9cc0de0acb) )
+ ROM_LOAD16_WORD_SWAP( "pzf.12m", 0x200000, 0x200000, CRC(399d2c7b) SHA1(e849dea97b8d16540415c0d9bbc4f9f4eb755ec4) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "spf2tb.key", 0x000000, 0x000014, CRC(5d7b15e8) SHA1(c14c6b148761856bf83b31b52df83be461ac8d62) )
+ROM_END
+
+
+ROM_START( ssf2r1d )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "ssfud.03a", 0x000000, 0x80000, CRC(fad5daf8) SHA1(5bed5d5af8dffc54d3b3371274a3905f46384f79) )
+ ROM_LOAD16_WORD_SWAP( "ssfud.04a", 0x080000, 0x80000, CRC(0d31af65) SHA1(7e903e18cb899627fedd8ad92594b75b5d8ee8fd) )
+ ROM_LOAD16_WORD_SWAP( "ssfud.05", 0x100000, 0x80000, CRC(75c651ef) SHA1(8c6f60d3cf10d802190438c403a719bc30ccbeaa) )
+ ROM_LOAD16_WORD_SWAP( "ssfud.06", 0x180000, 0x80000, CRC(85c3ec00) SHA1(29ab3eccc5f9c0dd6bd19eaa83c72e1a1d44b320) )
+ ROM_LOAD16_WORD_SWAP( "ssf2r1d.07", 0x200000, 0x80000, CRC(9320e350) SHA1(bec5dcd85faf10c72cc79e5d5af311ffb5445c47) )
+
+ ROM_REGION( 0xc00000, "gfx", 0 )
+ ROMX_LOAD( "ssf.13m", 0x000000, 0x200000, CRC(cf94d275) SHA1(bf2a6d98a656d1cb5734da7836686242d3211137) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ssf.15m", 0x000002, 0x200000, CRC(5eb703af) SHA1(4b302dbb66e8a5c2ad92798699391e981bada427) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ssf.17m", 0x000004, 0x200000, CRC(ffa60e0f) SHA1(b21b1c749a8241440879bf8e7cb33968ccef97e5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ssf.19m", 0x000006, 0x200000, CRC(34e825c5) SHA1(4d320fc96d1ef0b9928a8ce801734245a4c097a5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ssf.14m", 0x800000, 0x100000, CRC(b7cc32e7) SHA1(0f4d26af338dab5dce5b7b34d32ad0c573434ace) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ssf.16m", 0x800002, 0x100000, CRC(8376ad18) SHA1(f4456833fb396e6501f4174c0fe5fd63ea40a188) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ssf.18m", 0x800004, 0x100000, CRC(f5b1b336) SHA1(4b060501e56b9d61294748da5387cdae5280ec4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ssf.20m", 0x800006, 0x100000, CRC(459d5c6b) SHA1(32b11ba7a12004aff810d719bff7508204c7b7c0) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "ssf.01", 0x00000, 0x08000, CRC(eb247e8c) SHA1(24296c18d9b1136d69712bf1c9d9d15463041e83) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "ssf.q01", 0x000000, 0x080000, CRC(a6f9da5c) SHA1(6d19f83a01bd25b838d5c2871f7964529d926c98) )
+ ROM_LOAD( "ssf.q02", 0x080000, 0x080000, CRC(8c66ae26) SHA1(32a82aee6ed4480e5a990f9af161734c7c0a1403) )
+ ROM_LOAD( "ssf.q03", 0x100000, 0x080000, CRC(695cc2ca) SHA1(c2675f0233608b76de528d2a6ef19846d1348060) )
+ ROM_LOAD( "ssf.q04", 0x180000, 0x080000, CRC(9d9ebe32) SHA1(9b26329370041374f1a90b479a172d2bc2801c4d) )
+ ROM_LOAD( "ssf.q05", 0x200000, 0x080000, CRC(4770e7b7) SHA1(0e764f0befb9227b0b36508d8ca8ec9be31bcb05) )
+ ROM_LOAD( "ssf.q06", 0x280000, 0x080000, CRC(4e79c951) SHA1(1144781d7dc57ef8a6458d982f5c91548ff59e27) )
+ ROM_LOAD( "ssf.q07", 0x300000, 0x080000, CRC(cdd14313) SHA1(ebe767a9d4b51dba4282fa0a36a546a88620dd59) )
+ ROM_LOAD( "ssf.q08", 0x380000, 0x080000, CRC(6f5a088c) SHA1(6c0b4690479647a99d76335f174be8455b4ff118) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "phoenix.key", 0x000000, 0x000014, CRC(2cf772b0) SHA1(eff33c65a4f3862c231f9e4d6fefa7b34398dbf2) )
+ROM_END
+
+ROM_START( ssf2td )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "sfxe_d.03c", 0x000000, 0x80000, CRC(ed99d850) SHA1(d2dcb8395d630fcd1776fd32a9c685646e1f18be) )
+ ROM_LOAD16_WORD_SWAP( "sfxe_d.04a", 0x080000, 0x80000, CRC(38d9b364) SHA1(814e67441a9d92ed89edf20dacb17a0f100020e3) )
+ ROM_LOAD16_WORD_SWAP( "sfxe_d.05", 0x100000, 0x80000, CRC(c63358d0) SHA1(dde4d9e9adce4dee02322c0fd71615eed0af62e6) )
+ ROM_LOAD16_WORD_SWAP( "sfxe_d.06a", 0x180000, 0x80000, CRC(ccb29808) SHA1(10e7b135a936409fe7c4d7959ea375634a8c68e4) )
+ ROM_LOAD16_WORD_SWAP( "sfxe_d.07", 0x200000, 0x80000, CRC(61f94982) SHA1(d2f22f50c21393deda7d5838dbd2b265722acd38) )
+ ROM_LOAD16_WORD_SWAP( "sfxe_d.08", 0x280000, 0x80000, CRC(d399c36c) SHA1(b4c4217843e5c3ef00ab04d58ca9368d2d734065) )
+ ROM_LOAD16_WORD_SWAP( "sfxe_d.09", 0x300000, 0x80000, CRC(317b5dbc) SHA1(1e1037b071251c28ed9cd5ccd6d52b72cc86396a) )
+
+ ROM_REGION( 0x1000000, "gfx", 0 )
+ ROMX_LOAD( "sfx.13m", 0x000000, 0x200000, CRC(cf94d275) SHA1(bf2a6d98a656d1cb5734da7836686242d3211137) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.15m", 0x000002, 0x200000, CRC(5eb703af) SHA1(4b302dbb66e8a5c2ad92798699391e981bada427) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.17m", 0x000004, 0x200000, CRC(ffa60e0f) SHA1(b21b1c749a8241440879bf8e7cb33968ccef97e5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.19m", 0x000006, 0x200000, CRC(34e825c5) SHA1(4d320fc96d1ef0b9928a8ce801734245a4c097a5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.14m", 0x800000, 0x100000, CRC(b7cc32e7) SHA1(0f4d26af338dab5dce5b7b34d32ad0c573434ace) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.16m", 0x800002, 0x100000, CRC(8376ad18) SHA1(f4456833fb396e6501f4174c0fe5fd63ea40a188) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.18m", 0x800004, 0x100000, CRC(f5b1b336) SHA1(4b060501e56b9d61294748da5387cdae5280ec4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.20m", 0x800006, 0x100000, CRC(459d5c6b) SHA1(32b11ba7a12004aff810d719bff7508204c7b7c0) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.21m", 0xc00000, 0x100000, CRC(e32854af) SHA1(1a5e11e9caa2b96108d89ae660ef1f6bcb469a74) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.23m", 0xc00002, 0x100000, CRC(760f2927) SHA1(491e28e14ee06821fc9e709efa7b91313bc0c2db) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.25m", 0xc00004, 0x100000, CRC(1ee90208) SHA1(83df1d9953560edddc2951ea426d29fb014e6a8a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.27m", 0xc00006, 0x100000, CRC(f814400f) SHA1(ad6921af36d0bd5dfb89b1fb53c3ca3fd92d7204) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sfx.01", 0x00000, 0x08000, CRC(b47b8835) SHA1(c8b2d50fe3a329bd0592ea160d505155d873dab1) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "sfx.02", 0x28000, 0x20000, CRC(0022633f) SHA1(cab3afc79da53e3887eb1ccd1f4d19790728e6cd) )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "sfx.11m", 0x000000, 0x200000, CRC(9bdbd476) SHA1(a8520f77f30b97aae36408e0c4ca1ebbde1808a5) )
+ ROM_LOAD16_WORD_SWAP( "sfx.12m", 0x200000, 0x200000, CRC(a05e3aab) SHA1(d4eb9cae66c74e956569fea8b815156fbd420f83) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "phoenix.key", 0x000000, 0x000014, CRC(2cf772b0) SHA1(eff33c65a4f3862c231f9e4d6fefa7b34398dbf2) )
+ROM_END
+
+ROM_START( ssf2tfp )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "ssf2tfp.03", 0x000000, 0x80000, CRC(8f7d4954) SHA1(ace9981370b8f6df3186c9d9a1d3a614cc519af1) )
+ ROM_LOAD16_WORD_SWAP( "sfxe.04a", 0x080000, 0x80000, CRC(d0bc29c6) SHA1(d9f89bcd79cba26db2100a00dd7bd8ee6ecb75f3) )
+ ROM_LOAD16_WORD_SWAP( "sfxe.05", 0x100000, 0x80000, CRC(65222964) SHA1(025bb708dc5b6365cc7fe60fc3f242511ad8f384) )
+ ROM_LOAD16_WORD_SWAP( "sfxe.06a", 0x180000, 0x80000, CRC(8fe9f531) SHA1(b5d9ed498f730fdb968992bdec33605db1a007f4) )
+ ROM_LOAD16_WORD_SWAP( "sfxe.07", 0x200000, 0x80000, CRC(8a7d0cb6) SHA1(27ea0cea73a93c27257bf2a170d1deaf938cc311) )
+ ROM_LOAD16_WORD_SWAP( "sfxe.08", 0x280000, 0x80000, CRC(74c24062) SHA1(f3eca09e0544c6aa46b0c4bead2246ab1e9a97d9) )
+ ROM_LOAD16_WORD_SWAP( "sfx.09", 0x300000, 0x80000, CRC(642fae3f) SHA1(746df99b826b9837bba267104132161153c1daff) )
+
+ ROM_REGION( 0x1000000, "gfx", 0 )
+ ROMX_LOAD( "sfx.13m", 0x000000, 0x200000, CRC(cf94d275) SHA1(bf2a6d98a656d1cb5734da7836686242d3211137) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.15m", 0x000002, 0x200000, CRC(5eb703af) SHA1(4b302dbb66e8a5c2ad92798699391e981bada427) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.17m", 0x000004, 0x200000, CRC(ffa60e0f) SHA1(b21b1c749a8241440879bf8e7cb33968ccef97e5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.19m", 0x000006, 0x200000, CRC(34e825c5) SHA1(4d320fc96d1ef0b9928a8ce801734245a4c097a5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.14m", 0x800000, 0x100000, CRC(b7cc32e7) SHA1(0f4d26af338dab5dce5b7b34d32ad0c573434ace) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.16m", 0x800002, 0x100000, CRC(8376ad18) SHA1(f4456833fb396e6501f4174c0fe5fd63ea40a188) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.18m", 0x800004, 0x100000, CRC(f5b1b336) SHA1(4b060501e56b9d61294748da5387cdae5280ec4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.20m", 0x800006, 0x100000, CRC(459d5c6b) SHA1(32b11ba7a12004aff810d719bff7508204c7b7c0) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.21m", 0xc00000, 0x100000, CRC(e32854af) SHA1(1a5e11e9caa2b96108d89ae660ef1f6bcb469a74) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.23m", 0xc00002, 0x100000, CRC(760f2927) SHA1(491e28e14ee06821fc9e709efa7b91313bc0c2db) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.25m", 0xc00004, 0x100000, CRC(1ee90208) SHA1(83df1d9953560edddc2951ea426d29fb014e6a8a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.27m", 0xc00006, 0x100000, CRC(f814400f) SHA1(ad6921af36d0bd5dfb89b1fb53c3ca3fd92d7204) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sfx.01", 0x00000, 0x08000, CRC(b47b8835) SHA1(c8b2d50fe3a329bd0592ea160d505155d873dab1) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "sfx.02", 0x28000, 0x20000, CRC(0022633f) SHA1(cab3afc79da53e3887eb1ccd1f4d19790728e6cd) )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "sfx.11m", 0x000000, 0x200000, CRC(9bdbd476) SHA1(a8520f77f30b97aae36408e0c4ca1ebbde1808a5) )
+ ROM_LOAD16_WORD_SWAP( "sfx.12m", 0x200000, 0x200000, CRC(a05e3aab) SHA1(d4eb9cae66c74e956569fea8b815156fbd420f83) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "ssf2t.key", 0x000000, 0x000014, CRC(524d608e) SHA1(fcd2b9a1a640a0dee4a674dc9cfb3975466f7757) )
+ROM_END
+
+ROM_START( ssf2tfr )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "ssf2tfr.03", 0x000000, 0x80000, CRC(c8c491d1) SHA1(5e12ccd36c8cd086d3d628e7f121aefcbc17340e) )
+ ROM_LOAD16_WORD_SWAP( "ssf2tfr.04", 0x080000, 0x80000, CRC(b018ceea) SHA1(75fa14f93c82ade94713556cffcfd17dfcef3e35) )
+ ROM_LOAD16_WORD_SWAP( "sfxe.05", 0x100000, 0x80000, CRC(65222964) SHA1(025bb708dc5b6365cc7fe60fc3f242511ad8f384) )
+ ROM_LOAD16_WORD_SWAP( "sfxe.06a", 0x180000, 0x80000, CRC(8fe9f531) SHA1(b5d9ed498f730fdb968992bdec33605db1a007f4) )
+ ROM_LOAD16_WORD_SWAP( "sfxe.07", 0x200000, 0x80000, CRC(8a7d0cb6) SHA1(27ea0cea73a93c27257bf2a170d1deaf938cc311) )
+ ROM_LOAD16_WORD_SWAP( "sfxe.08", 0x280000, 0x80000, CRC(74c24062) SHA1(f3eca09e0544c6aa46b0c4bead2246ab1e9a97d9) )
+ ROM_LOAD16_WORD_SWAP( "sfx.09", 0x300000, 0x80000, CRC(642fae3f) SHA1(746df99b826b9837bba267104132161153c1daff) )
+
+ ROM_REGION( 0x1000000, "gfx", 0 )
+ ROMX_LOAD( "sfx.13m", 0x000000, 0x200000, CRC(cf94d275) SHA1(bf2a6d98a656d1cb5734da7836686242d3211137) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.15m", 0x000002, 0x200000, CRC(5eb703af) SHA1(4b302dbb66e8a5c2ad92798699391e981bada427) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.17m", 0x000004, 0x200000, CRC(ffa60e0f) SHA1(b21b1c749a8241440879bf8e7cb33968ccef97e5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.19m", 0x000006, 0x200000, CRC(34e825c5) SHA1(4d320fc96d1ef0b9928a8ce801734245a4c097a5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.14m", 0x800000, 0x100000, CRC(b7cc32e7) SHA1(0f4d26af338dab5dce5b7b34d32ad0c573434ace) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.16m", 0x800002, 0x100000, CRC(8376ad18) SHA1(f4456833fb396e6501f4174c0fe5fd63ea40a188) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.18m", 0x800004, 0x100000, CRC(f5b1b336) SHA1(4b060501e56b9d61294748da5387cdae5280ec4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.20m", 0x800006, 0x100000, CRC(459d5c6b) SHA1(32b11ba7a12004aff810d719bff7508204c7b7c0) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.21m", 0xc00000, 0x100000, CRC(e32854af) SHA1(1a5e11e9caa2b96108d89ae660ef1f6bcb469a74) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.23m", 0xc00002, 0x100000, CRC(760f2927) SHA1(491e28e14ee06821fc9e709efa7b91313bc0c2db) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.25m", 0xc00004, 0x100000, CRC(1ee90208) SHA1(83df1d9953560edddc2951ea426d29fb014e6a8a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.27m", 0xc00006, 0x100000, CRC(f814400f) SHA1(ad6921af36d0bd5dfb89b1fb53c3ca3fd92d7204) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sfx.01", 0x00000, 0x08000, CRC(b47b8835) SHA1(c8b2d50fe3a329bd0592ea160d505155d873dab1) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "sfx.02", 0x28000, 0x20000, CRC(0022633f) SHA1(cab3afc79da53e3887eb1ccd1f4d19790728e6cd) )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "sfx.11m", 0x000000, 0x200000, CRC(9bdbd476) SHA1(a8520f77f30b97aae36408e0c4ca1ebbde1808a5) )
+ ROM_LOAD16_WORD_SWAP( "sfx.12m", 0x200000, 0x200000, CRC(a05e3aab) SHA1(d4eb9cae66c74e956569fea8b815156fbd420f83) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "ssf2t.key", 0x000000, 0x000014, CRC(524d608e) SHA1(fcd2b9a1a640a0dee4a674dc9cfb3975466f7757) )
+ROM_END
+
+ROM_START( ssf2tpls )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "ssf2tpls.03", 0x000000, 0x80000, CRC(abd7a3e0) SHA1(088166ab28e7a3abf90720c1c6108ff8946b6f7b) )
+ ROM_LOAD16_WORD_SWAP( "ssf2tpls.04", 0x080000, 0x80000, CRC(94a4434b) SHA1(1729bed0121995ddffc21b3d3841f6eaddab8064) )
+ ROM_LOAD16_WORD_SWAP( "sfxe.05", 0x100000, 0x80000, CRC(65222964) SHA1(025bb708dc5b6365cc7fe60fc3f242511ad8f384) )
+ ROM_LOAD16_WORD_SWAP( "sfxe.06a", 0x180000, 0x80000, CRC(8fe9f531) SHA1(b5d9ed498f730fdb968992bdec33605db1a007f4) )
+ ROM_LOAD16_WORD_SWAP( "sfxe.07", 0x200000, 0x80000, CRC(8a7d0cb6) SHA1(27ea0cea73a93c27257bf2a170d1deaf938cc311) )
+ ROM_LOAD16_WORD_SWAP( "sfxe.08", 0x280000, 0x80000, CRC(74c24062) SHA1(f3eca09e0544c6aa46b0c4bead2246ab1e9a97d9) )
+ ROM_LOAD16_WORD_SWAP( "sfx.09", 0x300000, 0x80000, CRC(642fae3f) SHA1(746df99b826b9837bba267104132161153c1daff) )
+
+ ROM_REGION( 0x1000000, "gfx", 0 )
+ ROMX_LOAD( "sfx.13m", 0x000000, 0x200000, CRC(cf94d275) SHA1(bf2a6d98a656d1cb5734da7836686242d3211137) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.15m", 0x000002, 0x200000, CRC(5eb703af) SHA1(4b302dbb66e8a5c2ad92798699391e981bada427) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.17m", 0x000004, 0x200000, CRC(ffa60e0f) SHA1(b21b1c749a8241440879bf8e7cb33968ccef97e5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.19m", 0x000006, 0x200000, CRC(34e825c5) SHA1(4d320fc96d1ef0b9928a8ce801734245a4c097a5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.14m", 0x800000, 0x100000, CRC(b7cc32e7) SHA1(0f4d26af338dab5dce5b7b34d32ad0c573434ace) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.16m", 0x800002, 0x100000, CRC(8376ad18) SHA1(f4456833fb396e6501f4174c0fe5fd63ea40a188) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.18m", 0x800004, 0x100000, CRC(f5b1b336) SHA1(4b060501e56b9d61294748da5387cdae5280ec4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.20m", 0x800006, 0x100000, CRC(459d5c6b) SHA1(32b11ba7a12004aff810d719bff7508204c7b7c0) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.21m", 0xc00000, 0x100000, CRC(e32854af) SHA1(1a5e11e9caa2b96108d89ae660ef1f6bcb469a74) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.23m", 0xc00002, 0x100000, CRC(760f2927) SHA1(491e28e14ee06821fc9e709efa7b91313bc0c2db) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.25m", 0xc00004, 0x100000, CRC(1ee90208) SHA1(83df1d9953560edddc2951ea426d29fb014e6a8a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.27m", 0xc00006, 0x100000, CRC(f814400f) SHA1(ad6921af36d0bd5dfb89b1fb53c3ca3fd92d7204) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sfx.01", 0x00000, 0x08000, CRC(b47b8835) SHA1(c8b2d50fe3a329bd0592ea160d505155d873dab1) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "sfx.02", 0x28000, 0x20000, CRC(0022633f) SHA1(cab3afc79da53e3887eb1ccd1f4d19790728e6cd) )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "sfx.11m", 0x000000, 0x200000, CRC(9bdbd476) SHA1(a8520f77f30b97aae36408e0c4ca1ebbde1808a5) )
+ ROM_LOAD16_WORD_SWAP( "sfx.12m", 0x200000, 0x200000, CRC(a05e3aab) SHA1(d4eb9cae66c74e956569fea8b815156fbd420f83) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "ssf2t.key", 0x000000, 0x000014, CRC(524d608e) SHA1(fcd2b9a1a640a0dee4a674dc9cfb3975466f7757) )
+ROM_END
+
+ROM_START( ssf2xjhy )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "ssf2xjhy.03", 0x000000, 0x80000, CRC(62b59bf0) SHA1(b8ef9a39dd594f243dab3b440c871730356403c8) )
+ ROM_LOAD16_WORD_SWAP( "sfxj.04a", 0x080000, 0x80000, CRC(af7767b4) SHA1(61e7364408bf07c01634913c112b6245acce48ab) )
+ ROM_LOAD16_WORD_SWAP( "sfxj.05", 0x100000, 0x80000, CRC(f4ff18f5) SHA1(aa713c9e1a2eba35bf1c9b40bb262ff7e46b9ce4) )
+ ROM_LOAD16_WORD_SWAP( "sfxj.06a", 0x180000, 0x80000, CRC(260d0370) SHA1(5339cf87000caef74d491815391be59cfd701c8b) )
+ ROM_LOAD16_WORD_SWAP( "sfxj.07", 0x200000, 0x80000, CRC(1324d02a) SHA1(c23a6ea09819bd33b6e2f58aa28c317ce53a46a0) )
+ ROM_LOAD16_WORD_SWAP( "sfxj.08", 0x280000, 0x80000, CRC(2de76f10) SHA1(8cbe96dfeaa41306caa2819b82272ce3b0b9f926) )
+ ROM_LOAD16_WORD_SWAP( "sfx.09", 0x300000, 0x80000, CRC(642fae3f) SHA1(746df99b826b9837bba267104132161153c1daff) )
+
+ ROM_REGION( 0x1000000, "gfx", 0 )
+ ROMX_LOAD( "sfx.13m", 0x000000, 0x200000, CRC(cf94d275) SHA1(bf2a6d98a656d1cb5734da7836686242d3211137) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.15m", 0x000002, 0x200000, CRC(5eb703af) SHA1(4b302dbb66e8a5c2ad92798699391e981bada427) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.17m", 0x000004, 0x200000, CRC(ffa60e0f) SHA1(b21b1c749a8241440879bf8e7cb33968ccef97e5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.19m", 0x000006, 0x200000, CRC(34e825c5) SHA1(4d320fc96d1ef0b9928a8ce801734245a4c097a5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.14m", 0x800000, 0x100000, CRC(b7cc32e7) SHA1(0f4d26af338dab5dce5b7b34d32ad0c573434ace) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.16m", 0x800002, 0x100000, CRC(8376ad18) SHA1(f4456833fb396e6501f4174c0fe5fd63ea40a188) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.18m", 0x800004, 0x100000, CRC(f5b1b336) SHA1(4b060501e56b9d61294748da5387cdae5280ec4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.20m", 0x800006, 0x100000, CRC(459d5c6b) SHA1(32b11ba7a12004aff810d719bff7508204c7b7c0) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.21m", 0xc00000, 0x100000, CRC(e32854af) SHA1(1a5e11e9caa2b96108d89ae660ef1f6bcb469a74) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.23m", 0xc00002, 0x100000, CRC(760f2927) SHA1(491e28e14ee06821fc9e709efa7b91313bc0c2db) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.25m", 0xc00004, 0x100000, CRC(1ee90208) SHA1(83df1d9953560edddc2951ea426d29fb014e6a8a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.27m", 0xc00006, 0x100000, CRC(f814400f) SHA1(ad6921af36d0bd5dfb89b1fb53c3ca3fd92d7204) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sfx.01", 0x00000, 0x08000, CRC(b47b8835) SHA1(c8b2d50fe3a329bd0592ea160d505155d873dab1) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "sfx.02", 0x28000, 0x20000, CRC(0022633f) SHA1(cab3afc79da53e3887eb1ccd1f4d19790728e6cd) )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "sfx.11m", 0x000000, 0x200000, CRC(9bdbd476) SHA1(a8520f77f30b97aae36408e0c4ca1ebbde1808a5) )
+ ROM_LOAD16_WORD_SWAP( "sfx.12m", 0x200000, 0x200000, CRC(a05e3aab) SHA1(d4eb9cae66c74e956569fea8b815156fbd420f83) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "ssf2xj.key", 0x000000, 0x000014, CRC(160d1424) SHA1(187baff83b54acfdcedd9b9222a4cc768040c622) )
+ROM_END
+
+ROM_START( ssf2xjjs )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "ssf2xjjs.03", 0x000000, 0x80000, CRC(183e95df) SHA1(009bfc636f67481ae0147a96e9a9b8eaa6137e52) )
+ ROM_LOAD16_WORD_SWAP( "ssf2xjjs.04", 0x080000, 0x80000, CRC(6ce1a901) SHA1(dd8d82b744bb40d1c07ad8feabfc02c62cd868aa) )
+ ROM_LOAD16_WORD_SWAP( "sfxj.05", 0x100000, 0x80000, CRC(f4ff18f5) SHA1(aa713c9e1a2eba35bf1c9b40bb262ff7e46b9ce4) )
+ ROM_LOAD16_WORD_SWAP( "sfxj.06a", 0x180000, 0x80000, CRC(260d0370) SHA1(5339cf87000caef74d491815391be59cfd701c8b) )
+ ROM_LOAD16_WORD_SWAP( "sfxj.07", 0x200000, 0x80000, CRC(1324d02a) SHA1(c23a6ea09819bd33b6e2f58aa28c317ce53a46a0) )
+ ROM_LOAD16_WORD_SWAP( "sfxj.08", 0x280000, 0x80000, CRC(2de76f10) SHA1(8cbe96dfeaa41306caa2819b82272ce3b0b9f926) )
+ ROM_LOAD16_WORD_SWAP( "sfx.09", 0x300000, 0x80000, CRC(642fae3f) SHA1(746df99b826b9837bba267104132161153c1daff) )
+
+ ROM_REGION( 0x1000000, "gfx", 0 )
+ ROMX_LOAD( "sfx.13m", 0x000000, 0x200000, CRC(cf94d275) SHA1(bf2a6d98a656d1cb5734da7836686242d3211137) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.15m", 0x000002, 0x200000, CRC(5eb703af) SHA1(4b302dbb66e8a5c2ad92798699391e981bada427) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.17m", 0x000004, 0x200000, CRC(ffa60e0f) SHA1(b21b1c749a8241440879bf8e7cb33968ccef97e5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.19m", 0x000006, 0x200000, CRC(34e825c5) SHA1(4d320fc96d1ef0b9928a8ce801734245a4c097a5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.14m", 0x800000, 0x100000, CRC(b7cc32e7) SHA1(0f4d26af338dab5dce5b7b34d32ad0c573434ace) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.16m", 0x800002, 0x100000, CRC(8376ad18) SHA1(f4456833fb396e6501f4174c0fe5fd63ea40a188) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.18m", 0x800004, 0x100000, CRC(f5b1b336) SHA1(4b060501e56b9d61294748da5387cdae5280ec4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.20m", 0x800006, 0x100000, CRC(459d5c6b) SHA1(32b11ba7a12004aff810d719bff7508204c7b7c0) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.21m", 0xc00000, 0x100000, CRC(e32854af) SHA1(1a5e11e9caa2b96108d89ae660ef1f6bcb469a74) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.23m", 0xc00002, 0x100000, CRC(760f2927) SHA1(491e28e14ee06821fc9e709efa7b91313bc0c2db) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.25m", 0xc00004, 0x100000, CRC(1ee90208) SHA1(83df1d9953560edddc2951ea426d29fb014e6a8a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.27m", 0xc00006, 0x100000, CRC(f814400f) SHA1(ad6921af36d0bd5dfb89b1fb53c3ca3fd92d7204) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sfx.01", 0x00000, 0x08000, CRC(b47b8835) SHA1(c8b2d50fe3a329bd0592ea160d505155d873dab1) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "sfx.02", 0x28000, 0x20000, CRC(0022633f) SHA1(cab3afc79da53e3887eb1ccd1f4d19790728e6cd) )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "sfx.11m", 0x000000, 0x200000, CRC(9bdbd476) SHA1(a8520f77f30b97aae36408e0c4ca1ebbde1808a5) )
+ ROM_LOAD16_WORD_SWAP( "sfx.12m", 0x200000, 0x200000, CRC(a05e3aab) SHA1(d4eb9cae66c74e956569fea8b815156fbd420f83) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "ssf2xj.key", 0x000000, 0x000014, CRC(160d1424) SHA1(187baff83b54acfdcedd9b9222a4cc768040c622) )
+ROM_END
+
+ROM_START( ssf2xjnc )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "ssf2xjnc.03", 0x000000, 0x80000, CRC(c0b5e5b8) SHA1(8cedb674aac5918dbb38d2efa4036ea602b92f8a) )
+ ROM_LOAD16_WORD_SWAP( "ssf2xjnc.04", 0x080000, 0x80000, CRC(4e17998f) SHA1(24b10b541191dfd522f024259d530451785abc2d) )
+ ROM_LOAD16_WORD_SWAP( "sfxj.05", 0x100000, 0x80000, CRC(f4ff18f5) SHA1(aa713c9e1a2eba35bf1c9b40bb262ff7e46b9ce4) )
+ ROM_LOAD16_WORD_SWAP( "sfxj.06a", 0x180000, 0x80000, CRC(260d0370) SHA1(5339cf87000caef74d491815391be59cfd701c8b) )
+ ROM_LOAD16_WORD_SWAP( "sfxj.07", 0x200000, 0x80000, CRC(1324d02a) SHA1(c23a6ea09819bd33b6e2f58aa28c317ce53a46a0) )
+ ROM_LOAD16_WORD_SWAP( "ssf2xjnc.08", 0x280000, 0x80000, CRC(6745612c) SHA1(d21b010d25d19b1c31b7f02d85978cd4a4444d60) )
+ ROM_LOAD16_WORD_SWAP( "sfx.09", 0x300000, 0x80000, CRC(642fae3f) SHA1(746df99b826b9837bba267104132161153c1daff) )
+
+ ROM_REGION( 0x1000000, "gfx", 0 )
+ ROMX_LOAD( "sfx.13m", 0x000000, 0x200000, CRC(cf94d275) SHA1(bf2a6d98a656d1cb5734da7836686242d3211137) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.15m", 0x000002, 0x200000, CRC(5eb703af) SHA1(4b302dbb66e8a5c2ad92798699391e981bada427) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.17m", 0x000004, 0x200000, CRC(ffa60e0f) SHA1(b21b1c749a8241440879bf8e7cb33968ccef97e5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.19m", 0x000006, 0x200000, CRC(34e825c5) SHA1(4d320fc96d1ef0b9928a8ce801734245a4c097a5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.14m", 0x800000, 0x100000, CRC(b7cc32e7) SHA1(0f4d26af338dab5dce5b7b34d32ad0c573434ace) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.16m", 0x800002, 0x100000, CRC(8376ad18) SHA1(f4456833fb396e6501f4174c0fe5fd63ea40a188) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.18m", 0x800004, 0x100000, CRC(f5b1b336) SHA1(4b060501e56b9d61294748da5387cdae5280ec4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.20m", 0x800006, 0x100000, CRC(459d5c6b) SHA1(32b11ba7a12004aff810d719bff7508204c7b7c0) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.21m", 0xc00000, 0x100000, CRC(e32854af) SHA1(1a5e11e9caa2b96108d89ae660ef1f6bcb469a74) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.23m", 0xc00002, 0x100000, CRC(760f2927) SHA1(491e28e14ee06821fc9e709efa7b91313bc0c2db) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.25m", 0xc00004, 0x100000, CRC(1ee90208) SHA1(83df1d9953560edddc2951ea426d29fb014e6a8a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.27m", 0xc00006, 0x100000, CRC(f814400f) SHA1(ad6921af36d0bd5dfb89b1fb53c3ca3fd92d7204) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sfx.01", 0x00000, 0x08000, CRC(b47b8835) SHA1(c8b2d50fe3a329bd0592ea160d505155d873dab1) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "sfx.02", 0x28000, 0x20000, CRC(0022633f) SHA1(cab3afc79da53e3887eb1ccd1f4d19790728e6cd) )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "sfx.11m", 0x000000, 0x200000, CRC(9bdbd476) SHA1(a8520f77f30b97aae36408e0c4ca1ebbde1808a5) )
+ ROM_LOAD16_WORD_SWAP( "sfx.12m", 0x200000, 0x200000, CRC(a05e3aab) SHA1(d4eb9cae66c74e956569fea8b815156fbd420f83) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "ssf2xj.key", 0x000000, 0x000014, CRC(160d1424) SHA1(187baff83b54acfdcedd9b9222a4cc768040c622) )
+ROM_END
+
+ROM_START( ssf2zhp )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "ssf2zhp.03", 0x000000, 0x80000, CRC(e7dcfc8d) SHA1(7a6e703a5cfd9fbdceab84e5f5e0d443e6c95dcc) )
+ ROM_LOAD16_WORD_SWAP( "ssfe.04", 0x080000, 0x80000, CRC(b082aa67) SHA1(ca26b4bb1947cb30eaf6b61f606b859d18da4c4c) )
+ ROM_LOAD16_WORD_SWAP( "ssfe.05", 0x100000, 0x80000, CRC(02b9c137) SHA1(ba624441e1b4bfb67c71f6a116fe43539eaa4a15) )
+ ROM_LOAD16_WORD_SWAP( "ssfe.06", 0x180000, 0x80000, CRC(70d470c5) SHA1(ba03c8f4c76f72f4483e91547e03d1a0cf6db485) )
+ ROM_LOAD16_WORD_SWAP( "ssfe.07", 0x200000, 0x80000, CRC(2409001d) SHA1(f532ebb2efbb8f8ba311d10ff897490352c87f97) )
+
+ ROM_REGION( 0xc00000, "gfx", 0 )
+ ROMX_LOAD( "ssf.13m", 0x000000, 0x200000, CRC(cf94d275) SHA1(bf2a6d98a656d1cb5734da7836686242d3211137) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ssf.15m", 0x000002, 0x200000, CRC(5eb703af) SHA1(4b302dbb66e8a5c2ad92798699391e981bada427) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ssf.17m", 0x000004, 0x200000, CRC(ffa60e0f) SHA1(b21b1c749a8241440879bf8e7cb33968ccef97e5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ssf.19m", 0x000006, 0x200000, CRC(34e825c5) SHA1(4d320fc96d1ef0b9928a8ce801734245a4c097a5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ssf.14m", 0x800000, 0x100000, CRC(b7cc32e7) SHA1(0f4d26af338dab5dce5b7b34d32ad0c573434ace) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ssf.16m", 0x800002, 0x100000, CRC(8376ad18) SHA1(f4456833fb396e6501f4174c0fe5fd63ea40a188) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ssf.18m", 0x800004, 0x100000, CRC(f5b1b336) SHA1(4b060501e56b9d61294748da5387cdae5280ec4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ssf.20m", 0x800006, 0x100000, CRC(459d5c6b) SHA1(32b11ba7a12004aff810d719bff7508204c7b7c0) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "ssf.01", 0x00000, 0x08000, CRC(eb247e8c) SHA1(24296c18d9b1136d69712bf1c9d9d15463041e83) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "ssf.q01", 0x000000, 0x080000, CRC(a6f9da5c) SHA1(6d19f83a01bd25b838d5c2871f7964529d926c98) )
+ ROM_LOAD( "ssf.q02", 0x080000, 0x080000, CRC(8c66ae26) SHA1(32a82aee6ed4480e5a990f9af161734c7c0a1403) )
+ ROM_LOAD( "ssf.q03", 0x100000, 0x080000, CRC(695cc2ca) SHA1(c2675f0233608b76de528d2a6ef19846d1348060) )
+ ROM_LOAD( "ssf.q04", 0x180000, 0x080000, CRC(9d9ebe32) SHA1(9b26329370041374f1a90b479a172d2bc2801c4d) )
+ ROM_LOAD( "ssf.q05", 0x200000, 0x080000, CRC(4770e7b7) SHA1(0e764f0befb9227b0b36508d8ca8ec9be31bcb05) )
+ ROM_LOAD( "ssf.q06", 0x280000, 0x080000, CRC(4e79c951) SHA1(1144781d7dc57ef8a6458d982f5c91548ff59e27) )
+ ROM_LOAD( "ssf.q07", 0x300000, 0x080000, CRC(cdd14313) SHA1(ebe767a9d4b51dba4282fa0a36a546a88620dd59) )
+ ROM_LOAD( "ssf.q08", 0x380000, 0x080000, CRC(6f5a088c) SHA1(6c0b4690479647a99d76335f174be8455b4ff118) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "ssf2.key", 0x000000, 0x000014, CRC(e469ccbb) SHA1(43d49107e96a4a14f1f25931ad3ae6065958150e) )
+ROM_END
+
+
+ROM_START( suicide )
+ ROM_REGION(CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "suicide.03", 0x000000, 0x80000, CRC(4d5eea90) SHA1(c6f6361650d64401354111bf111bd924126b7035) )
+
+ ROM_REGION( 0xC00000, "gfx", 0 )
+ ROM_FILL( 0x000000, 0x800000, 0 )
+ ROMX_LOAD( "pzf.14m", 0x800000, 0x100000, CRC(2d4881cb) SHA1(fd3baa183c25bed153b19c251980e2fb761600e2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "pzf.16m", 0x800002, 0x100000, CRC(4b0fd1be) SHA1(377aafdcdb7a866b1c8487670e3598d8197976e4) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "pzf.18m", 0x800004, 0x100000, CRC(e43aac33) SHA1(d041e0688c3807d3363861a7f216de43b34d846c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "pzf.20m", 0x800006, 0x100000, CRC(7f536ff1) SHA1(905b9d62ef7bef47297c7f4a4dd697aed6df38a5) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION(QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "pzf.01", 0x00000, 0x08000, CRC(600fb2a3) SHA1(1fab1c2a23bf6ad8309d29ddbbc29435a8aeea13) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "pzf.02", 0x28000, 0x20000, CRC(496076e0) SHA1(1ee4e135140afd0e8e03231e570cd77d140f6367) )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "pzf.11m", 0x000000, 0x200000, CRC(78442743) SHA1(b61190bb586871de6d54af580e3e1d9cc0de0acb) )
+ ROM_LOAD16_WORD_SWAP( "pzf.12m", 0x200000, 0x200000, CRC(399d2c7b) SHA1(e849dea97b8d16540415c0d9bbc4f9f4eb755ec4) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "phoenix.key", 0x000000, 0x000014, CRC(2cf772b0) SHA1(eff33c65a4f3862c231f9e4d6fefa7b34398dbf2) )
+ROM_END
+
+ROM_START( suicide2 )
+ ROM_REGION(CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "suicide2.03", 0x000000, 0x80000, CRC(d61ba7e3) SHA1(bde345a1d4643adc854d4c7e86c04f72fee1a07b) )
+
+ ROM_REGION( 0xC00000, "gfx", 0 )
+ ROM_FILL( 0x000000, 0x800000, 0 )
+ ROMX_LOAD( "pzf.14m", 0x800000, 0x100000, CRC(2d4881cb) SHA1(fd3baa183c25bed153b19c251980e2fb761600e2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "pzf.16m", 0x800002, 0x100000, CRC(4b0fd1be) SHA1(377aafdcdb7a866b1c8487670e3598d8197976e4) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "pzf.18m", 0x800004, 0x100000, CRC(e43aac33) SHA1(d041e0688c3807d3363861a7f216de43b34d846c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "pzf.20m", 0x800006, 0x100000, CRC(7f536ff1) SHA1(905b9d62ef7bef47297c7f4a4dd697aed6df38a5) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION(QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "pzf.01", 0x00000, 0x08000, CRC(600fb2a3) SHA1(1fab1c2a23bf6ad8309d29ddbbc29435a8aeea13) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "pzf.02", 0x28000, 0x20000, CRC(496076e0) SHA1(1ee4e135140afd0e8e03231e570cd77d140f6367) )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "pzf.11m", 0x000000, 0x200000, CRC(78442743) SHA1(b61190bb586871de6d54af580e3e1d9cc0de0acb) )
+ ROM_LOAD16_WORD_SWAP( "pzf.12m", 0x200000, 0x200000, CRC(399d2c7b) SHA1(e849dea97b8d16540415c0d9bbc4f9f4eb755ec4) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "phoenix.key", 0x000000, 0x000014, CRC(2cf772b0) SHA1(eff33c65a4f3862c231f9e4d6fefa7b34398dbf2) )
+ROM_END
+
+
+ROM_START( vampjb )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "vampjb.03a", 0x000000, 0x80000, CRC(55c1be82) SHA1(948e1e322945adc775da8b22165697b5c7999b1b) )
+ ROM_LOAD16_WORD_SWAP( "vampjb.04b", 0x080000, 0x80000, CRC(9c12017e) SHA1(0800802748ce61b01a18c06b61fcb8fd7bb34f62) )
+ ROM_LOAD16_WORD_SWAP( "vamj.05a", 0x100000, 0x80000, CRC(6c497e92) SHA1(7c1ccdfd77fb50afe024c8402376daaeab641a24) )
+ ROM_LOAD16_WORD_SWAP( "vamj.06a", 0x180000, 0x80000, CRC(f1bbecb6) SHA1(6adba89393e05f16f70b57085cabd6b4c20f53e8) )
+ ROM_LOAD16_WORD_SWAP( "vamj.07a", 0x200000, 0x80000, CRC(1067ad84) SHA1(5e4cc75cfdfd512b6230c656e7304262b5143aee) )
+ ROM_LOAD16_WORD_SWAP( "vamj.08a", 0x280000, 0x80000, CRC(4b89f41f) SHA1(bd78f33a6d448655eecf7448921d282b302fa4cb) )
+ ROM_LOAD16_WORD_SWAP( "vamj.09a", 0x300000, 0x80000, CRC(fc0a4aac) SHA1(a2c79eb4dc838c238e182a4da3567ac8db3488d8) )
+ ROM_LOAD16_WORD_SWAP( "vamj.10a", 0x380000, 0x80000, CRC(9270c26b) SHA1(c2a7e199a74c9f27704cf935483ebddc6da256a1) )
+
+ ROM_REGION( 0x1400000, "gfx", 0 )
+ ROMX_LOAD( "vam.13m", 0x0000000, 0x400000, CRC(c51baf99) SHA1(2fb6642908e542e404391eb17392f8270e87bf48) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "vam.15m", 0x0000002, 0x400000, CRC(3ce83c77) SHA1(93369b23c6d7d834297434691bb047ee3dd9539c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "vam.17m", 0x0000004, 0x400000, CRC(4f2408e0) SHA1(cd49c6b3c7e6470c6058f98ccc5210b052bb13e2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "vam.19m", 0x0000006, 0x400000, CRC(9ff60250) SHA1(d69ba4dc6bd37d003245f0cf3211d6e2623005b8) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "vam.14m", 0x1000000, 0x100000, CRC(bd87243c) SHA1(87b33aeb72514e1228ffc27ec6dd534f14882760) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "vam.16m", 0x1000002, 0x100000, CRC(afec855f) SHA1(cd117833b8d475489b90ff44b57e2c5cb1af3af5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "vam.18m", 0x1000004, 0x100000, CRC(3a033625) SHA1(294238f30cba5cf4f8f1de951d54c2077bd95de9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "vam.20m", 0x1000006, 0x100000, CRC(2bff6a89) SHA1(8f4e131e5ce0af48fb89f98026d9f0356c7c301f) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "vam.01", 0x00000, 0x08000, CRC(64b685d5) SHA1(6c180e7420db754eca5cad17a40f5a64f5c3bd15) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "vam.02", 0x28000, 0x20000, CRC(cf7c97c7) SHA1(109a4b56ecd59be9c3f5869de99d40619bdaef21) )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "vam.11m", 0x000000, 0x200000, CRC(4a39deb2) SHA1(7e63e615869958db66a4e52a0272afee5a10e446) )
+ ROM_LOAD16_WORD_SWAP( "vam.12m", 0x200000, 0x200000, CRC(1a3e5c03) SHA1(c5a556e125d6c3d68da745b4d56cd7a851f2a23d) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "vampj.key", 0x000000, 0x000014, CRC(8418cc6f) SHA1(e7128ac94fc7c37a64e4640db08f1769215769e5) )
+ROM_END
+
+
+ROM_START( vsav2emb )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "vsav2emb.03", 0x000000, 0x80000, CRC(31676894) SHA1(0cb25d691213accb43e81f284d29812de893b296) )
+ ROM_LOAD16_WORD_SWAP( "vs2j.04", 0x080000, 0x80000, CRC(107c091b) SHA1(bf5c2e4339e1a66b3c819900cc9b723a537adf6b) )
+ ROM_LOAD16_WORD_SWAP( "vs2j.05", 0x100000, 0x80000, CRC(61979638) SHA1(4d5625a9a06926c1a42c8f6e3a4c943f17750ec2) )
+ ROM_LOAD16_WORD_SWAP( "vs2j.06", 0x180000, 0x80000, CRC(f37c5bc2) SHA1(d8c1040a6ee6b9fc677a6a32b99bf02b6a707812) )
+ ROM_LOAD16_WORD_SWAP( "vs2j.07", 0x200000, 0x80000, CRC(8f885809) SHA1(69dac07e1f483b6478f792d20a137d6a081fbea3) )
+ ROM_LOAD16_WORD_SWAP( "vs2j.08", 0x280000, 0x80000, CRC(2018c120) SHA1(de1184ab771c6f075cdefa744a28b09f78d91643) )
+ ROM_LOAD16_WORD_SWAP( "vs2j.09", 0x300000, 0x80000, CRC(fac3c217) SHA1(0e9dd54e401e6d7c4fe81107ffd27e42ca810fcb) )
+ ROM_LOAD16_WORD_SWAP( "vs2j.10", 0x380000, 0x80000, CRC(eb490213) SHA1(bf0416df66a33c7a4678ab4a047de334dfd3b31e) )
+
+ ROM_REGION( 0x2000000, "gfx", 0 )
+ ROMX_LOAD( "vs2.13m", 0x0000000, 0x400000, CRC(5c852f52) SHA1(528ce7fc9a0451e2e2d221dbf5e4a5796584e053) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "vs2.15m", 0x0000002, 0x400000, CRC(a20f58af) SHA1(e873ad3e0fc8a06a5029113faf991f5c1b765316) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "vs2.17m", 0x0000004, 0x400000, CRC(39db59ad) SHA1(da94f1529da82a6bf2129f51548412e1ab2b001a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "vs2.19m", 0x0000006, 0x400000, CRC(00c763a7) SHA1(0ff528e12e255ebf699101ac71f05b1f6bef7165) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "vs2.14m", 0x1000000, 0x400000, CRC(cd09bd63) SHA1(e582b20a948ae54f52590496051688dbfae2bc9c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "vs2.16m", 0x1000002, 0x400000, CRC(e0182c15) SHA1(a924d53ab39f4d85173bdb92a197dde2db0dc3f7) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "vs2.18m", 0x1000004, 0x400000, CRC(778dc4f6) SHA1(8d0cd1c387b4b6ac7f92bb2e5a25983856328cdc) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "vs2.20m", 0x1000006, 0x400000, CRC(605d9d1d) SHA1(99bc27557741527ca678d7b6307164bc04ebedc6) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "vs2.01", 0x00000, 0x08000, CRC(35190139) SHA1(07f8e53ea398461de5dcda9814dde7c09faf9f65) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "vs2.02", 0x28000, 0x20000, CRC(c32dba09) SHA1(1fe337ff334fab79847f9677ba0e168e93daa1c8) )
+
+ ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "vs2.11m", 0x000000, 0x400000, CRC(d67e47b7) SHA1(15a3f6779eccb10551ed94edf7e6e406a79b3de7) )
+ ROM_LOAD16_WORD_SWAP( "vs2.12m", 0x400000, 0x400000, CRC(6d020a14) SHA1(e98f862fac1e357c90949768bb2646263d9981a0) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "vsav2.key", 0x000000, 0x000014, CRC(289028ce) SHA1(35779f0284dc15591493c8ec75ecda801148f3e0) )
+ROM_END
+
+
+ROM_START( xmcotajb )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "xmcotajb.03", 0x000000, 0x80000, CRC(bd2f0b84) SHA1(2b5c6deb2bb7e10a142a490781231d2ccfceee1c) )
+ ROM_LOAD16_WORD_SWAP( "xmnj.04b", 0x080000, 0x80000, CRC(54b3fba3) SHA1(47eaff5d36a45e4196f87ed3d02e54d5407e7962) ) // used in xmcotaj2
+ ROM_LOAD16_WORD_SWAP( "xmn.05", 0x100000, 0x80000, CRC(c3ed62a2) SHA1(4e3317d7ca981e33318822103a16e59f4ce20deb) )
+ ROM_LOAD16_WORD_SWAP( "xmn.06", 0x180000, 0x80000, CRC(f03c52e1) SHA1(904b2312ee594f5ece0484cad0eed25cc758185e) )
+ ROM_LOAD16_WORD_SWAP( "xmn.07", 0x200000, 0x80000, CRC(325626b1) SHA1(3f3a0aabbe5ffad8136ac91e0de785103b16059b) )
+ ROM_LOAD16_WORD_SWAP( "xmn.08", 0x280000, 0x80000, CRC(7194ea10) SHA1(40a5892d816f24cbfd4c310792eeabf689c6fa7e) )
+ ROM_LOAD16_WORD_SWAP( "xmn.09", 0x300000, 0x80000, CRC(ae946df3) SHA1(733671f76d766bda7110df9d338791cc5202b050) )
+ ROM_LOAD16_WORD_SWAP( "xmn.10", 0x380000, 0x80000, CRC(32a6be1d) SHA1(8f5fcb33b528abed670b4fc3fa62431a6e033c56) )
+
+ ROM_REGION( 0x2000000, "gfx", 0 )
+ ROMX_LOAD( "xmn.13m", 0x0000000, 0x400000, CRC(bf4df073) SHA1(4d2740c3a827f0ec2cf75ad99c65e393c6a11c23) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "xmn.15m", 0x0000002, 0x400000, CRC(4d7e4cef) SHA1(50b8797b8099a8d76ad063ba1201a13dbb88ae3a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "xmn.17m", 0x0000004, 0x400000, CRC(513eea17) SHA1(a497477ad9ac13180911d8745ef6ee1955c0b877) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "xmn.19m", 0x0000006, 0x400000, CRC(d23897fc) SHA1(1e31627999736652252164d32662779a1ac6ca29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "xmn.14m", 0x1000000, 0x400000, CRC(778237b7) SHA1(89a759ec383518ec52f5059d10ec342f2247aa20) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "xmn.16m", 0x1000002, 0x400000, CRC(67b36948) SHA1(692fb6e4096b880aa22996d554b160f664bbd907) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "xmn.18m", 0x1000004, 0x400000, CRC(015a7c4c) SHA1(cccc95dafd076a1a9fa004710006149c42d058ba) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "xmn.20m", 0x1000006, 0x400000, CRC(9dde2758) SHA1(17ba259cad03c7b5d56c0a5eda9ab53521665729) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "xmn.01a", 0x00000, 0x08000, CRC(40f479ea) SHA1(f29e15f537675305264ae2138a0a537fb9e2008b) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "xmn.02a", 0x28000, 0x20000, CRC(39d9b5ad) SHA1(af502debfd36100d4fc971ed25fdf9d7121d6f18) )
+
+ 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) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "xmcotaj.key", 0x000000, 0x000014, CRC(d278b4ac) SHA1(06d94e8a203172792f405c73f9cbb37f4738429f) )
+ROM_END
+
+ROM_START( xmcotajphp )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "xmcotajphp.03", 0x000000, 0x80000, CRC(654c6b83) SHA1(b61d8891edb105ad72a76ee0c1018bc5edc64b6c) )
+ ROM_LOAD16_WORD_SWAP( "xmnj.04d", 0x080000, 0x80000, CRC(38eed613) SHA1(86ecb58bf03adda705a39a9779862fe2c85cadad) )
+ ROM_LOAD16_WORD_SWAP( "xmn.05", 0x100000, 0x80000, CRC(c3ed62a2) SHA1(4e3317d7ca981e33318822103a16e59f4ce20deb) )
+ ROM_LOAD16_WORD_SWAP( "xmn.06", 0x180000, 0x80000, CRC(f03c52e1) SHA1(904b2312ee594f5ece0484cad0eed25cc758185e) )
+ ROM_LOAD16_WORD_SWAP( "xmn.07", 0x200000, 0x80000, CRC(325626b1) SHA1(3f3a0aabbe5ffad8136ac91e0de785103b16059b) )
+ ROM_LOAD16_WORD_SWAP( "xmn.08", 0x280000, 0x80000, CRC(7194ea10) SHA1(40a5892d816f24cbfd4c310792eeabf689c6fa7e) )
+ ROM_LOAD16_WORD_SWAP( "xmn.09", 0x300000, 0x80000, CRC(ae946df3) SHA1(733671f76d766bda7110df9d338791cc5202b050) )
+ ROM_LOAD16_WORD_SWAP( "xmn.10", 0x380000, 0x80000, CRC(32a6be1d) SHA1(8f5fcb33b528abed670b4fc3fa62431a6e033c56) )
+
+ ROM_REGION( 0x2000000, "gfx", 0 )
+ ROMX_LOAD( "xmn.13m", 0x0000000, 0x400000, CRC(bf4df073) SHA1(4d2740c3a827f0ec2cf75ad99c65e393c6a11c23) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "xmn.15m", 0x0000002, 0x400000, CRC(4d7e4cef) SHA1(50b8797b8099a8d76ad063ba1201a13dbb88ae3a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "xmn.17m", 0x0000004, 0x400000, CRC(513eea17) SHA1(a497477ad9ac13180911d8745ef6ee1955c0b877) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "xmn.19m", 0x0000006, 0x400000, CRC(d23897fc) SHA1(1e31627999736652252164d32662779a1ac6ca29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "xmn.14m", 0x1000000, 0x400000, CRC(778237b7) SHA1(89a759ec383518ec52f5059d10ec342f2247aa20) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "xmn.16m", 0x1000002, 0x400000, CRC(67b36948) SHA1(692fb6e4096b880aa22996d554b160f664bbd907) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "xmn.18m", 0x1000004, 0x400000, CRC(015a7c4c) SHA1(cccc95dafd076a1a9fa004710006149c42d058ba) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "xmn.20m", 0x1000006, 0x400000, CRC(9dde2758) SHA1(17ba259cad03c7b5d56c0a5eda9ab53521665729) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "xmn.01a", 0x00000, 0x08000, CRC(40f479ea) SHA1(f29e15f537675305264ae2138a0a537fb9e2008b) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "xmn.02a", 0x28000, 0x20000, CRC(39d9b5ad) SHA1(af502debfd36100d4fc971ed25fdf9d7121d6f18) )
+
+ 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) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "xmcotaj.key", 0x000000, 0x000014, CRC(d278b4ac) SHA1(06d94e8a203172792f405c73f9cbb37f4738429f) )
+ROM_END
+
+
+ROM_START( xmvsfjphp )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "xmvsfjphp.03", 0x000000, 0x80000, CRC(1d46fdba) SHA1(fceec89ca0fa163b0edc8e055a6c7198f3520851) )
+ ROM_LOAD16_WORD_SWAP( "xvsj.04", 0x080000, 0x80000, CRC(70a59b35) SHA1(786d9b243373024735848f785503c6aa883b1c2f) )
+ ROM_LOAD16_WORD_SWAP( "xvs.05a", 0x100000, 0x80000, CRC(7db6025d) SHA1(2d74f48f83f45359bfaca28ab686625766af12ee) )
+ ROM_LOAD16_WORD_SWAP( "xvs.06a", 0x180000, 0x80000, CRC(e8e2c75c) SHA1(929408cb5d98e95cec75ea58e4701b0cbdbcd016) )
+ ROM_LOAD16_WORD_SWAP( "xvs.07", 0x200000, 0x80000, CRC(08f0abed) SHA1(ef16c376232dba63b0b9bc3aa0640f9001ccb68a) )
+ ROM_LOAD16_WORD_SWAP( "xvs.08", 0x280000, 0x80000, CRC(81929675) SHA1(19cf7afbc1daaefec40195e40ba74970f3906a1c) )
+ ROM_LOAD16_WORD_SWAP( "xvs.09", 0x300000, 0x80000, CRC(9641f36b) SHA1(dcba3482d1ba37ccfb30d402793ee063c6621aed) )
+
+ ROM_REGION( 0x2000000, "gfx", 0 )
+ ROMX_LOAD( "xvs.13m", 0x0000000, 0x400000, CRC(f6684efd) SHA1(c0a2f3a9e82ab8b084a500aec71ac633e947328c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "xvs.15m", 0x0000002, 0x400000, CRC(29109221) SHA1(898b8f678fd03c462ce0d8eb7fb3441ef601085b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "xvs.17m", 0x0000004, 0x400000, CRC(92db3474) SHA1(7b6f4c8ebfdac167b25f35029068b6253c141fe6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "xvs.19m", 0x0000006, 0x400000, CRC(3733473c) SHA1(6579da7145c95b3ad00844a5fc8c2e22c23365e2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "xvs.14m", 0x1000000, 0x400000, CRC(bcac2e41) SHA1(838ff24f7e8543a787a55a5d592c9517ce3b8b93) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "xvs.16m", 0x1000002, 0x400000, CRC(ea04a272) SHA1(cd7c79037b5b4a39bef5156433e984dc4dc2c081) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "xvs.18m", 0x1000004, 0x400000, CRC(b0def86a) SHA1(da3a6705ea7050fc5c2c10d33400ed67be9f455d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "xvs.20m", 0x1000006, 0x400000, CRC(4b40ff9f) SHA1(9a981d442132efff09a27408d74646ba357c7357) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "xvs.01", 0x00000, 0x08000, CRC(3999e93a) SHA1(fefcff8a9a5c83df7655a16187cf9ba3e7efbb25) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "xvs.02", 0x28000, 0x20000, CRC(101bdee9) SHA1(75920e88bf46fcd33a7957777a1d799818ffb0d6) )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "xvs.11m", 0x000000, 0x200000, CRC(9cadcdbc) SHA1(64d3bd53b04daec84c9af4aa3ff010867b3d306d) )
+ ROM_LOAD16_WORD_SWAP( "xvs.12m", 0x200000, 0x200000, CRC(7b11e460) SHA1(a581c84acaaf0ce056841c15a6f36889e88be68d) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "xmvsfj.key", 0x000000, 0x000014, CRC(87576cda) SHA1(65905400f4462c175baa93b43e015e8596def31b) )
+ROM_END
+
+ROM_START( xmvsfrm )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "xmvsfrm.03", 0x000000, 0x80000, CRC(be94fd2b) SHA1(f668d8fe1932434dfb9aec865a79ddac6c6496ef) )
+ ROM_LOAD16_WORD_SWAP( "xvse.04d", 0x080000, 0x80000, CRC(5eb9c02e) SHA1(25a392913213b98ce1bbd463bf5e5e10729bde0c) )
+ ROM_LOAD16_WORD_SWAP( "xvs.05a", 0x100000, 0x80000, CRC(7db6025d) SHA1(2d74f48f83f45359bfaca28ab686625766af12ee) )
+ ROM_LOAD16_WORD_SWAP( "xvs.06a", 0x180000, 0x80000, CRC(e8e2c75c) SHA1(929408cb5d98e95cec75ea58e4701b0cbdbcd016) )
+ ROM_LOAD16_WORD_SWAP( "xvs.07", 0x200000, 0x80000, CRC(08f0abed) SHA1(ef16c376232dba63b0b9bc3aa0640f9001ccb68a) )
+ ROM_LOAD16_WORD_SWAP( "xvs.08", 0x280000, 0x80000, CRC(81929675) SHA1(19cf7afbc1daaefec40195e40ba74970f3906a1c) )
+ ROM_LOAD16_WORD_SWAP( "xvs.09", 0x300000, 0x80000, CRC(9641f36b) SHA1(dcba3482d1ba37ccfb30d402793ee063c6621aed) )
+
+ ROM_REGION( 0x2000000, "gfx", 0 )
+ ROMX_LOAD( "xvs.13m", 0x0000000, 0x400000, CRC(f6684efd) SHA1(c0a2f3a9e82ab8b084a500aec71ac633e947328c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "xvs.15m", 0x0000002, 0x400000, CRC(29109221) SHA1(898b8f678fd03c462ce0d8eb7fb3441ef601085b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "xvs.17m", 0x0000004, 0x400000, CRC(92db3474) SHA1(7b6f4c8ebfdac167b25f35029068b6253c141fe6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "xvs.19m", 0x0000006, 0x400000, CRC(3733473c) SHA1(6579da7145c95b3ad00844a5fc8c2e22c23365e2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "xvs.14m", 0x1000000, 0x400000, CRC(bcac2e41) SHA1(838ff24f7e8543a787a55a5d592c9517ce3b8b93) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "xvs.16m", 0x1000002, 0x400000, CRC(ea04a272) SHA1(cd7c79037b5b4a39bef5156433e984dc4dc2c081) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "xvs.18m", 0x1000004, 0x400000, CRC(b0def86a) SHA1(da3a6705ea7050fc5c2c10d33400ed67be9f455d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "xvs.20m", 0x1000006, 0x400000, CRC(4b40ff9f) SHA1(9a981d442132efff09a27408d74646ba357c7357) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "xvs.01", 0x00000, 0x08000, CRC(3999e93a) SHA1(fefcff8a9a5c83df7655a16187cf9ba3e7efbb25) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "xvs.02", 0x28000, 0x20000, CRC(101bdee9) SHA1(75920e88bf46fcd33a7957777a1d799818ffb0d6) )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "xvs.11m", 0x000000, 0x200000, CRC(9cadcdbc) SHA1(64d3bd53b04daec84c9af4aa3ff010867b3d306d) )
+ ROM_LOAD16_WORD_SWAP( "xvs.12m", 0x200000, 0x200000, CRC(7b11e460) SHA1(a581c84acaaf0ce056841c15a6f36889e88be68d) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "xmvsf.key", 0x000000, 0x000014, CRC(d5c07311) SHA1(1b401ffc241436c4869486c174774b67e3bf3df8) )
+ROM_END
+
+ROM_START( xmvsfryh )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "xmvsfryh.03", 0x000000, 0x80000, CRC(ed7c235a) SHA1(c49bfeef0351165ee30c8433feb026acebd7a36a) )
+ ROM_LOAD16_WORD_SWAP( "xmvsfryh.04", 0x080000, 0x80000, CRC(3a527f69) SHA1(72312d4aeaac07c4b4f91a0301948faf2f17d74d) )
+ ROM_LOAD16_WORD_SWAP( "xvs.05a", 0x100000, 0x80000, CRC(7db6025d) SHA1(2d74f48f83f45359bfaca28ab686625766af12ee) )
+ ROM_LOAD16_WORD_SWAP( "xvs.06a", 0x180000, 0x80000, CRC(e8e2c75c) SHA1(929408cb5d98e95cec75ea58e4701b0cbdbcd016) )
+ ROM_LOAD16_WORD_SWAP( "xvs.07", 0x200000, 0x80000, CRC(08f0abed) SHA1(ef16c376232dba63b0b9bc3aa0640f9001ccb68a) )
+ ROM_LOAD16_WORD_SWAP( "xvs.08", 0x280000, 0x80000, CRC(81929675) SHA1(19cf7afbc1daaefec40195e40ba74970f3906a1c) )
+ ROM_LOAD16_WORD_SWAP( "xvs.09", 0x300000, 0x80000, CRC(9641f36b) SHA1(dcba3482d1ba37ccfb30d402793ee063c6621aed) )
+
+ ROM_REGION( 0x2000000, "gfx", 0 )
+ ROMX_LOAD( "xvs.13m", 0x0000000, 0x400000, CRC(f6684efd) SHA1(c0a2f3a9e82ab8b084a500aec71ac633e947328c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "xvs.15m", 0x0000002, 0x400000, CRC(29109221) SHA1(898b8f678fd03c462ce0d8eb7fb3441ef601085b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "xvs.17m", 0x0000004, 0x400000, CRC(92db3474) SHA1(7b6f4c8ebfdac167b25f35029068b6253c141fe6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "xvs.19m", 0x0000006, 0x400000, CRC(3733473c) SHA1(6579da7145c95b3ad00844a5fc8c2e22c23365e2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "xvs.14m", 0x1000000, 0x400000, CRC(bcac2e41) SHA1(838ff24f7e8543a787a55a5d592c9517ce3b8b93) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "xvs.16m", 0x1000002, 0x400000, CRC(ea04a272) SHA1(cd7c79037b5b4a39bef5156433e984dc4dc2c081) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "xvs.18m", 0x1000004, 0x400000, CRC(b0def86a) SHA1(da3a6705ea7050fc5c2c10d33400ed67be9f455d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "xvs.20m", 0x1000006, 0x400000, CRC(4b40ff9f) SHA1(9a981d442132efff09a27408d74646ba357c7357) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "xvs.01", 0x00000, 0x08000, CRC(3999e93a) SHA1(fefcff8a9a5c83df7655a16187cf9ba3e7efbb25) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "xvs.02", 0x28000, 0x20000, CRC(101bdee9) SHA1(75920e88bf46fcd33a7957777a1d799818ffb0d6) )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "xvs.11m", 0x000000, 0x200000, CRC(9cadcdbc) SHA1(64d3bd53b04daec84c9af4aa3ff010867b3d306d) )
+ ROM_LOAD16_WORD_SWAP( "xvs.12m", 0x200000, 0x200000, CRC(7b11e460) SHA1(a581c84acaaf0ce056841c15a6f36889e88be68d) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "xmvsf.key", 0x000000, 0x000014, CRC(d5c07311) SHA1(1b401ffc241436c4869486c174774b67e3bf3df8) )
+ROM_END
+
+
+
+
+GAME( 2000, 1944da, 1944, dead_cps2, cps2_2p3b, cps_state, cps2, ROT0, "Razoola", "1944: The Loop Master (USA 000620 Phoenix Edition) (bootleg alt)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, 1944fp, 1944, cps2, cps2_2p2b, cps_state, cps2, ROT0, "Qxs8", "1944: The Loop Master (USA 000620) Fire Power Ver", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, ddsomavs, ddsom, cps2, cps2_4p4b, cps_state, cps2, ROT0, "Pipi899", "Dungeons & Dragons: Shadow over Mystara (1vs4 hack by Pipi899 2009-06-29)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, ddsomchs, ddsom, cps2, cps2_4p4b, cps_state, cps2, ROT0, "hack", "Dungeons & Dragons: Shadow over Mystara (chinese)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, ddsomhp, ddsom, cps2, cps2_4p4b, cps_state, cps2, ROT0, "Pipi899", "Dungeons & Dragons: Shadow over Mystara (HP Revision hack by Pipi899, cheat by sssskkkk 2009-06-15)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, ddsomjfs, ddsom, cps2, cps2_4p4b, cps_state, cps2, ROT0, "e107", "Dungeons & Dragons: Shadow over Mystara (Final Strike hack by e107 2009-07-17)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, halfway, progear, dead_cps2, cps2_2p3b, cps_state, cps2, ROT0, "Halfway House", "Halfway to Hell - Progear Red Label (2016-01-17)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mpangjd, mpang, dead_cps2, cps2_2p3b, cps_state, cps2, ROT0, "Razoola", "Mighty! Pang (Japan 001011 Phoenix Edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, mshjphp, msh, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Pipi899", "Marvel Super Heroes (Power hack by Pipi899)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, mshyh, msh, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Yumeji", "Marvel Super Heroes (Boss hack by Yumeji)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, mvscjemb, mvsc, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Blackheart", "Marvel Vs. Capcom: Clash of Super Heroes (Easy Moves hack by Blackheart 2009-04-24)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, mvscjphp, mvsc, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Pipi899", "Marvel Vs. Capcom: Clash of Super Heroes (Power hack by Pipi899)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mvscrcp, mvsc, cps2, cps2_2p6b, cps_state, cps2, ROT0, "CPS-2 Evolved", "Marvel Vs. Capcom RCP", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, mvscuh, mvsc, cps2, cps2_2p6b, cps_state, cps2, ROT0, "EGCG", "Marvel Vs. Capcom: Clash of Super Heroes (ExChar hack (EGCG))", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, mshvsemb, mshvsf, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Blackheart", "Marvel Super Heroes Vs. Street Fighter (Easy Moves hack by Blackheart 2009-04-23)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, mshvsfjh, mshvsf, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Yumeji", "Marvel Super Heroes Vs. Street Fighter (Boss hack by Yumeji)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, mshvsfjphp, mshvsf, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Pipi899", "Marvel Super Heroes Vs. Street Fighter (Power hack by Pipi899)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, pfghtjrm, sgemf, cps2, cps2_2p3b, cps_state, cps2, ROT0, "Blackheart", "Pocket Fighter (Easy Moves hack by Blackheart 2009-04-20)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, sfa2h, sfa2, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Pipi899", "Street Fighter Alpha 2 (Euro 960229) Boss Hack", MACHINE_SUPPORTS_SAVE )
+GAME( 2005, sfa3br, sfa3, cps2, cps2_2p6bt,cps_state, cps2, ROT0, "Neogeo BR team", "Street Fighter Alpha 3 (Brasil 050513)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, sfa3dp, sfa3, cps2, cps2_2p6bt,cps_state, cps2, ROT0, "Pipi899", "Street Fighter Alpha 3 (Dragon Edition hack by Pipi899 2009-05-10)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, sfa3nc, sfa3, cps2, cps2_2p6bt,cps_state, cps2, ROT0, "hack", "Street Fighter Alpha 3 (unknown hack NC)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, sfa3nch, sfa3, cps2, cps2_2p6bt,cps_state, cps2, ROT0, "hack", "Street Fighter Alpha 3 (unknown hack NCH)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, sfa3sp2, sfa3, cps2, cps2_2p6bt,cps_state, cps2, ROT0, "Pipi899", "Street Fighter Alpha 3 (Boss Special Fix hack by Pipi899 2009-09-27)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, sfa3spp, sfa3, cps2, cps2_2p6bt,cps_state, cps2, ROT0, "Pipi899", "Street Fighter Alpha 3 (Boss Special hack by Pipi899 2009-07-03)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, sfa3uhd, sfa3, cps2, cps2_2p6bt,cps_state, cps2, ROT0, "Dodowang", "Street Fighter Alpha 3 (Revision hack by Dodowang (ECGC))", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, sfaud, sfa, dead_cps2, cps2_2p6b, cps_state, cps2, ROT0, "Razoola", "Street Fighter Alpha: Warriors' Dreams (USA 950727 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, sfz2abr, sfa2, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Neogeo BR team", "Street Fighter Zero 2 Alpha (Brasil 061225)", MACHINE_SUPPORTS_SAVE ) // portuguese-brazilian hack fix
+GAME( 2008, sfz2ajhp, sfz2al, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Pipi899", "Street Fighter Zero 2 Alpha (Enhanced Dan Version hack by Pipi899 2008-12-11)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, sfz2aldp, sfz2al, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Pipi899", "Street Fighter Zero 2 Alpha (Dragon Edition v1.0 hack by Pipi899 2009-03-17)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, sfz2aldp2, sfz2al, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Pipi899", "Street Fighter Zero 2 Alpha (Dragon Edition v2.0 hack by Pipi899 2009-04-24)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, sfz2jyh, sfa2, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Yumeji", "Street Fighter Zero 2 (Boss hack by Yumeji)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, sfz3jb, sfa3, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Yumeji", "Street Fighter Zero 3 (Boss hack by Yumeji)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, sfz3jemb, sfa3, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Blacheart", "Street Fighter Zero 3 (Easy Moves hack by Blackheart 2009-05-01)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, sfz3jhp, sfa3, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Pipi899", "Street Fighter Zero 3 (Hack by Pipi899)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, sfz3jsep, sfa3, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Pipi899", "Street Fighter Zero 3 (Shin Edition hack by Pipi899 2009-01-01)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, sfzjboss, sfa, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Yumeji", "Street Fighter Zero (Boss hack set 2 by Yumeji)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, sfzjyh, sfa, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Yumeji", "Street Fighter Zero (Boss hack set 1 by Yumeji)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, sgemfch, sgemf, cps2, cps2_2p3b, cps_state, cps2, ROT0, "hack", "Super Gem Fighter Mini Mix (Color remix)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, ssf2r1d, ssf2, dead_cps2, cps2_2p6b, cps_state, cps2, ROT0, "Razoola", "Super Street Fighter II: The New Challengers (ETC 930911 Phoenix Edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, ssf2td, ssf2t, dead_cps2, cps2_2p6b, cps_state, cps2, ROT0, "Razoola", "Super Street Fighter II Turbo (World 940223 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, ssf2tfp, ssf2t, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Cigarette Patch", "Super Street Fighter II Turbo (French Parody by Cigarette Patch)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, ssf2tfr, ssf2t, cps2, cps2_2p6b, cps_state, cps2, ROT0, "NEOARC", "Super Street Fighter II Turbo (French by NEOARC Team)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, ssf2tpls, ssf2t, cps2, cps2_2p6b, cps_state, cps2, ROT0, "KrysoFun", "Super Street Fighter II Turbo (Plus v0.9 beta KrysoFun hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, ssf2xjhy, ssf2t, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Yumeji", "Super Street Fighter II X: Grand Master Challenge (Gouki Edition hack by Yumeji)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, ssf2xjjs, ssf2t, cps2, cps2_2p6b, cps_state, cps2, ROT0, "FGCH", "Super Street Fighter II X: Grand Master Challenge (Original Color FGCH hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, ssf2xjnc, ssf2t, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Shiro", "Super Street Fighter II X: Grand Master Challenge (Nude hack by Shiro)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, ssf2zhp, ssf2, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Pipi899", "Super Street Fighter II (Easy Move Zangief Edition hack by Pipi899 2009-01-05)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, spf2tb, spf2t, cps2, cps2_2p2b, cps_state, cps2, ROT0, "hack", "Super Puzzle Fighter II Turbo Boss Hack (USA 960620)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, suicide, 0, dead_cps2, cps2_2p2b, cps_state, cps2, ROT0, "Razoola", "Suicide Test", MACHINE_SUPPORTS_SAVE )
+GAME( 2015, suicide2, suicide, dead_cps2, cps2_2p2b, cps_state, cps2, ROT0, "Razoola", "Suicide Test v2", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, vampjb, dstlk, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Yumeji", "Vampire: The Night Warriors (Boss hack by Yumeji)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, vsav2emb, vsav2, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Blackheart", "Vampire Savior 2: The Lord of Vampire (Easy Moves hack by Blackheart 2009-04-30", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, xmcotajb, xmcota, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Yumeji", "X-Men: Children of the Atom (Boss hack by Yumeji)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, xmcotajphp, xmcota, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Pipi899", "X-Men: Children of the Atom (Power hack by Pipi899)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, xmvsfjphp, xmvsf, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Pipi899", "X-Men Vs. Street Fighter (Power hack by Pipi899)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, xmvsfrm, xmvsf, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Blackheart", "X-Men Vs. Street Fighter (Easy Moves hack by Blackheart 2009-04-22)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, xmvsfryh, xmvsf, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Ydmis", "X-Men Vs. Street Fighter (ST Char hack by Ydmis)", MACHINE_SUPPORTS_SAVE )
+
+
+//PSmame (c) galston90 used with permission
+
+ROM_START( ssf2e01 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "sfxehc01.03c", 0x000000, 0x80000, CRC(48556d57) SHA1(14ac258d6792827c20bc48b496cdaaf59db480e1) )
+ ROM_LOAD16_WORD_SWAP( "sfxehc01.04a", 0x080000, 0x80000, CRC(31dcd7fd) SHA1(39ec4397e4c798f6788b3fcd5289d89e47d43f6a) )
+ ROM_LOAD16_WORD_SWAP( "sfxe.05", 0x100000, 0x80000, CRC(65222964) SHA1(025bb708dc5b6365cc7fe60fc3f242511ad8f384) )
+ ROM_LOAD16_WORD_SWAP( "sfxe.06a", 0x180000, 0x80000, CRC(8fe9f531) SHA1(b5d9ed498f730fdb968992bdec33605db1a007f4) )
+ ROM_LOAD16_WORD_SWAP( "sfxe.07", 0x200000, 0x80000, CRC(8a7d0cb6) SHA1(27ea0cea73a93c27257bf2a170d1deaf938cc311) )
+ ROM_LOAD16_WORD_SWAP( "sfxehc01.08", 0x280000, 0x80000, CRC(3e604e5e) SHA1(809eef234d79d7b0b28bcfd3882c2a7c645adaef) )
+ ROM_LOAD16_WORD_SWAP( "sfx.09", 0x300000, 0x80000, CRC(642fae3f) SHA1(746df99b826b9837bba267104132161153c1daff) )
+
+ ROM_REGION( 0x1000000, "gfx", 0 )
+ ROMX_LOAD( "sfx.13m", 0x000000, 0x200000, CRC(cf94d275) SHA1(bf2a6d98a656d1cb5734da7836686242d3211137) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.15m", 0x000002, 0x200000, CRC(5eb703af) SHA1(4b302dbb66e8a5c2ad92798699391e981bada427) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.17m", 0x000004, 0x200000, CRC(ffa60e0f) SHA1(b21b1c749a8241440879bf8e7cb33968ccef97e5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.19m", 0x000006, 0x200000, CRC(34e825c5) SHA1(4d320fc96d1ef0b9928a8ce801734245a4c097a5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.14m", 0x800000, 0x100000, CRC(b7cc32e7) SHA1(0f4d26af338dab5dce5b7b34d32ad0c573434ace) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.16m", 0x800002, 0x100000, CRC(8376ad18) SHA1(f4456833fb396e6501f4174c0fe5fd63ea40a188) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.18m", 0x800004, 0x100000, CRC(f5b1b336) SHA1(4b060501e56b9d61294748da5387cdae5280ec4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.20m", 0x800006, 0x100000, CRC(459d5c6b) SHA1(32b11ba7a12004aff810d719bff7508204c7b7c0) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.21m", 0xc00000, 0x100000, CRC(e32854af) SHA1(1a5e11e9caa2b96108d89ae660ef1f6bcb469a74) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.23m", 0xc00002, 0x100000, CRC(760f2927) SHA1(491e28e14ee06821fc9e709efa7b91313bc0c2db) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.25m", 0xc00004, 0x100000, CRC(1ee90208) SHA1(83df1d9953560edddc2951ea426d29fb014e6a8a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.27m", 0xc00006, 0x100000, CRC(f814400f) SHA1(ad6921af36d0bd5dfb89b1fb53c3ca3fd92d7204) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sfx.01", 0x00000, 0x08000, CRC(b47b8835) SHA1(c8b2d50fe3a329bd0592ea160d505155d873dab1) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "sfx.02", 0x28000, 0x20000, CRC(0022633f) SHA1(cab3afc79da53e3887eb1ccd1f4d19790728e6cd) )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "sfx.11m", 0x000000, 0x200000, CRC(9bdbd476) SHA1(a8520f77f30b97aae36408e0c4ca1ebbde1808a5) )
+ ROM_LOAD16_WORD_SWAP( "sfx.12m", 0x200000, 0x200000, CRC(a05e3aab) SHA1(d4eb9cae66c74e956569fea8b815156fbd420f83) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "ssf2t.key", 0x000000, 0x000014, CRC(524d608e) SHA1(fcd2b9a1a640a0dee4a674dc9cfb3975466f7757) )
+ROM_END
+
+ROM_START( ssf2j01 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "sfxj01.03c", 0x000000, 0x80000, CRC(679ecca7) SHA1(5a670435dab5217c09cff192c51c64476a73e491) )
+ ROM_LOAD16_WORD_SWAP( "sfxj01.04a", 0x080000, 0x80000, CRC(02f8589d) SHA1(93ad353f209eef4a1aa728898435134ed0ac2122) )
+ ROM_LOAD16_WORD_SWAP( "sfxj.05", 0x100000, 0x80000, CRC(f4ff18f5) SHA1(aa713c9e1a2eba35bf1c9b40bb262ff7e46b9ce4) )
+ ROM_LOAD16_WORD_SWAP( "sfxj.06a", 0x180000, 0x80000, CRC(260d0370) SHA1(5339cf87000caef74d491815391be59cfd701c8b) )
+ ROM_LOAD16_WORD_SWAP( "sfxj.07", 0x200000, 0x80000, CRC(1324d02a) SHA1(c23a6ea09819bd33b6e2f58aa28c317ce53a46a0) )
+ ROM_LOAD16_WORD_SWAP( "sfxj01.08", 0x280000, 0x80000, CRC(4f318d71) SHA1(1563173536725bcb876a65262cf09f8d9ccc1e43) )
+ ROM_LOAD16_WORD_SWAP( "sfx.09", 0x300000, 0x80000, CRC(642fae3f) SHA1(746df99b826b9837bba267104132161153c1daff) )
+
+ ROM_REGION( 0x1000000, "gfx", 0 )
+ ROMX_LOAD( "sfx.13m", 0x000000, 0x200000, CRC(cf94d275) SHA1(bf2a6d98a656d1cb5734da7836686242d3211137) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.15m", 0x000002, 0x200000, CRC(5eb703af) SHA1(4b302dbb66e8a5c2ad92798699391e981bada427) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.17m", 0x000004, 0x200000, CRC(ffa60e0f) SHA1(b21b1c749a8241440879bf8e7cb33968ccef97e5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.19m", 0x000006, 0x200000, CRC(34e825c5) SHA1(4d320fc96d1ef0b9928a8ce801734245a4c097a5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.14m", 0x800000, 0x100000, CRC(b7cc32e7) SHA1(0f4d26af338dab5dce5b7b34d32ad0c573434ace) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.16m", 0x800002, 0x100000, CRC(8376ad18) SHA1(f4456833fb396e6501f4174c0fe5fd63ea40a188) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.18m", 0x800004, 0x100000, CRC(f5b1b336) SHA1(4b060501e56b9d61294748da5387cdae5280ec4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.20m", 0x800006, 0x100000, CRC(459d5c6b) SHA1(32b11ba7a12004aff810d719bff7508204c7b7c0) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.21m", 0xc00000, 0x100000, CRC(e32854af) SHA1(1a5e11e9caa2b96108d89ae660ef1f6bcb469a74) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.23m", 0xc00002, 0x100000, CRC(760f2927) SHA1(491e28e14ee06821fc9e709efa7b91313bc0c2db) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.25m", 0xc00004, 0x100000, CRC(1ee90208) SHA1(83df1d9953560edddc2951ea426d29fb014e6a8a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.27m", 0xc00006, 0x100000, CRC(f814400f) SHA1(ad6921af36d0bd5dfb89b1fb53c3ca3fd92d7204) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sfx.01", 0x00000, 0x08000, CRC(b47b8835) SHA1(c8b2d50fe3a329bd0592ea160d505155d873dab1) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "sfx.02", 0x28000, 0x20000, CRC(0022633f) SHA1(cab3afc79da53e3887eb1ccd1f4d19790728e6cd) )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "sfx.11m", 0x000000, 0x200000, CRC(9bdbd476) SHA1(a8520f77f30b97aae36408e0c4ca1ebbde1808a5) )
+ ROM_LOAD16_WORD_SWAP( "sfx.12m", 0x200000, 0x200000, CRC(a05e3aab) SHA1(d4eb9cae66c74e956569fea8b815156fbd420f83) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "ssf2xj.key", 0x000000, 0x000014, CRC(160d1424) SHA1(187baff83b54acfdcedd9b9222a4cc768040c622) )
+ROM_END
+
+ROM_START( ssf2j02 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "sfxjhc02.03c", 0x000000, 0x80000, CRC(9a208c88) SHA1(1499dfc1c2a9b7a1a69a4e214f0bb38f116d5121) )
+ ROM_LOAD16_WORD_SWAP( "sfxj.04a", 0x080000, 0x80000, CRC(af7767b4) SHA1(61e7364408bf07c01634913c112b6245acce48ab) )
+ ROM_LOAD16_WORD_SWAP( "sfxj.05", 0x100000, 0x80000, CRC(f4ff18f5) SHA1(aa713c9e1a2eba35bf1c9b40bb262ff7e46b9ce4) )
+ ROM_LOAD16_WORD_SWAP( "sfxj.06a", 0x180000, 0x80000, CRC(260d0370) SHA1(5339cf87000caef74d491815391be59cfd701c8b) )
+ ROM_LOAD16_WORD_SWAP( "sfxj.07", 0x200000, 0x80000, CRC(1324d02a) SHA1(c23a6ea09819bd33b6e2f58aa28c317ce53a46a0) )
+ ROM_LOAD16_WORD_SWAP( "sfxj.08", 0x280000, 0x80000, CRC(2de76f10) SHA1(8cbe96dfeaa41306caa2819b82272ce3b0b9f926) )
+ ROM_LOAD16_WORD_SWAP( "sfx.09", 0x300000, 0x80000, CRC(642fae3f) SHA1(746df99b826b9837bba267104132161153c1daff) )
+
+ ROM_REGION( 0x1000000, "gfx", 0 )
+ ROMX_LOAD( "sfx.13m", 0x000000, 0x200000, CRC(cf94d275) SHA1(bf2a6d98a656d1cb5734da7836686242d3211137) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.15m", 0x000002, 0x200000, CRC(5eb703af) SHA1(4b302dbb66e8a5c2ad92798699391e981bada427) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.17m", 0x000004, 0x200000, CRC(ffa60e0f) SHA1(b21b1c749a8241440879bf8e7cb33968ccef97e5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.19m", 0x000006, 0x200000, CRC(34e825c5) SHA1(4d320fc96d1ef0b9928a8ce801734245a4c097a5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.14m", 0x800000, 0x100000, CRC(b7cc32e7) SHA1(0f4d26af338dab5dce5b7b34d32ad0c573434ace) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.16m", 0x800002, 0x100000, CRC(8376ad18) SHA1(f4456833fb396e6501f4174c0fe5fd63ea40a188) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.18m", 0x800004, 0x100000, CRC(f5b1b336) SHA1(4b060501e56b9d61294748da5387cdae5280ec4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.20m", 0x800006, 0x100000, CRC(459d5c6b) SHA1(32b11ba7a12004aff810d719bff7508204c7b7c0) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.21m", 0xc00000, 0x100000, CRC(e32854af) SHA1(1a5e11e9caa2b96108d89ae660ef1f6bcb469a74) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.23m", 0xc00002, 0x100000, CRC(760f2927) SHA1(491e28e14ee06821fc9e709efa7b91313bc0c2db) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.25m", 0xc00004, 0x100000, CRC(1ee90208) SHA1(83df1d9953560edddc2951ea426d29fb014e6a8a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sfx.27m", 0xc00006, 0x100000, CRC(f814400f) SHA1(ad6921af36d0bd5dfb89b1fb53c3ca3fd92d7204) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sfx.01", 0x00000, 0x08000, CRC(b47b8835) SHA1(c8b2d50fe3a329bd0592ea160d505155d873dab1) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "sfx.02", 0x28000, 0x20000, CRC(0022633f) SHA1(cab3afc79da53e3887eb1ccd1f4d19790728e6cd) )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "sfx.11m", 0x000000, 0x200000, CRC(9bdbd476) SHA1(a8520f77f30b97aae36408e0c4ca1ebbde1808a5) )
+ ROM_LOAD16_WORD_SWAP( "sfx.12m", 0x200000, 0x200000, CRC(a05e3aab) SHA1(d4eb9cae66c74e956569fea8b815156fbd420f83) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "ssf2xjssf2xj.key", 0x000000, 0x000014, CRC(160d1424) SHA1(187baff83b54acfdcedd9b9222a4cc768040c622) )
+ROM_END
+
+ROM_START( ssf2j03 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "ssfjhc03.03b", 0x000000, 0x80000, CRC(ea1d3237) SHA1(f7a8dded94299b34657d066a89f55bfd91c7070c) )
+ ROM_LOAD16_WORD_SWAP( "ssfjhc03.04a", 0x080000, 0x80000, CRC(07a12776) SHA1(db22da16b038767a31a7dc7c04fd3071ae228fd3) )
+ ROM_LOAD16_WORD_SWAP( "ssfj.05", 0x100000, 0x80000, CRC(0918d19a) SHA1(c23be61dd193058eb1391d39fbc22fbcf0640ee0) )
+ ROM_LOAD16_WORD_SWAP( "ssfj.06b", 0x180000, 0x80000, CRC(014e0c6d) SHA1(4a5689a05900564c2544c95741cd450ce55da0a7) )
+ ROM_LOAD16_WORD_SWAP( "ssfj.07", 0x200000, 0x80000, CRC(eb6a9b1b) SHA1(daedb669b0025f6efb0f3302a40d88dcde2fc76f) )
+
+ ROM_REGION( 0xc00000, "gfx", 0 )
+ ROMX_LOAD( "ssf.13m", 0x000000, 0x200000, CRC(cf94d275) SHA1(bf2a6d98a656d1cb5734da7836686242d3211137) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ssf.15m", 0x000002, 0x200000, CRC(5eb703af) SHA1(4b302dbb66e8a5c2ad92798699391e981bada427) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ssf.17m", 0x000004, 0x200000, CRC(ffa60e0f) SHA1(b21b1c749a8241440879bf8e7cb33968ccef97e5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ssf.19m", 0x000006, 0x200000, CRC(34e825c5) SHA1(4d320fc96d1ef0b9928a8ce801734245a4c097a5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ssf.14m", 0x800000, 0x100000, CRC(b7cc32e7) SHA1(0f4d26af338dab5dce5b7b34d32ad0c573434ace) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ssf.16m", 0x800002, 0x100000, CRC(8376ad18) SHA1(f4456833fb396e6501f4174c0fe5fd63ea40a188) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ssf.18m", 0x800004, 0x100000, CRC(f5b1b336) SHA1(4b060501e56b9d61294748da5387cdae5280ec4d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ssf.20m", 0x800006, 0x100000, CRC(459d5c6b) SHA1(32b11ba7a12004aff810d719bff7508204c7b7c0) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "ssf.01", 0x00000, 0x08000, CRC(eb247e8c) SHA1(24296c18d9b1136d69712bf1c9d9d15463041e83) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD( "ssf.q01", 0x000000, 0x080000, CRC(a6f9da5c) SHA1(6d19f83a01bd25b838d5c2871f7964529d926c98) )
+ ROM_LOAD( "ssf.q02", 0x080000, 0x080000, CRC(8c66ae26) SHA1(32a82aee6ed4480e5a990f9af161734c7c0a1403) )
+ ROM_LOAD( "ssf.q03", 0x100000, 0x080000, CRC(695cc2ca) SHA1(c2675f0233608b76de528d2a6ef19846d1348060) )
+ ROM_LOAD( "ssf.q04", 0x180000, 0x080000, CRC(9d9ebe32) SHA1(9b26329370041374f1a90b479a172d2bc2801c4d) )
+ ROM_LOAD( "ssf.q05", 0x200000, 0x080000, CRC(4770e7b7) SHA1(0e764f0befb9227b0b36508d8ca8ec9be31bcb05) )
+ ROM_LOAD( "ssf.q06", 0x280000, 0x080000, CRC(4e79c951) SHA1(1144781d7dc57ef8a6458d982f5c91548ff59e27) )
+ ROM_LOAD( "ssf.q07", 0x300000, 0x080000, CRC(cdd14313) SHA1(ebe767a9d4b51dba4282fa0a36a546a88620dd59) )
+ ROM_LOAD( "ssf.q08", 0x380000, 0x080000, CRC(6f5a088c) SHA1(6c0b4690479647a99d76335f174be8455b4ff118) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "ssf2j.key", 0x000000, 0x000014, CRC(bca45cc2) SHA1(5e9ccfde4b476efdce4e4fcbaf8facefe41a4c89) )
+ROM_END
+
+ROM_START( mvsh01 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "mvchc01.03d", 0x000000, 0x80000, CRC(e557a885) SHA1(b7bf4e814660e7aaf1a8135ec70a43a6a6edb6bc) )
+ ROM_LOAD16_WORD_SWAP( "mvchc01.04d", 0x080000, 0x80000, CRC(05e4ba51) SHA1(21e7107d53c2416b215c9ff442a85e98489ac8ba) )
+ ROM_LOAD16_WORD_SWAP( "mvc.05a", 0x100000, 0x80000, CRC(2d8c8e86) SHA1(b07d640a734c5d336054ed05195786224c9a6cd4) )
+ ROM_LOAD16_WORD_SWAP( "mvc.06a", 0x180000, 0x80000, CRC(8528e1f5) SHA1(cd065c05268ab581b05676da544baf6af642acac) )
+ ROM_LOAD16_WORD_SWAP( "mvc.07", 0x200000, 0x80000, CRC(c3baa32b) SHA1(d35589847e0753e869ffcd7c3abed925bfdb0fa2) )
+ ROM_LOAD16_WORD_SWAP( "mvc.08", 0x280000, 0x80000, CRC(bc002fcd) SHA1(0b6735a071a9274f7ab25c743271fc30411fe819) )
+ ROM_LOAD16_WORD_SWAP( "mvc.09", 0x300000, 0x80000, CRC(c67b26df) SHA1(6e9969246c57269d7ba0992a5cc319c8910bf8a9) )
+ ROM_LOAD16_WORD_SWAP( "mvc.10", 0x380000, 0x80000, CRC(0fdd1e26) SHA1(5fa684d823b4f4eec61ed9e9b8938af5272ae1ed) )
+
+ ROM_REGION( 0x2000000, "gfx", 0 )
+ ROMX_LOAD( "mvc.13m", 0x0000000, 0x400000, CRC(fa5f74bc) SHA1(79a619248938a85ce4f7794a704647b9cf564fbc) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvc.15m", 0x0000002, 0x400000, CRC(71938a8f) SHA1(6982f7203458c1c46a1c1c13c0d0f2a5e109d271) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvc.17m", 0x0000004, 0x400000, CRC(92741d07) SHA1(ddfd70eab7c983ab452194b1860059f8ad694459) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvc.19m", 0x0000006, 0x400000, CRC(bcb72fc6) SHA1(46ab98dcdf6f5d611646a22a7355939ef5b2bbe5) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvc.14m", 0x1000000, 0x400000, CRC(7f1df4e4) SHA1(ede92b31c1fe87f91b4fe74ac211f2fb5f863bc2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvc.16m", 0x1000002, 0x400000, CRC(90bd3203) SHA1(ed83208c486ea0f407b7e5d16a8cf242a6f73774) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvc.18m", 0x1000004, 0x400000, CRC(67aaf727) SHA1(e0e69104e31d2c41e18c0d24e9ab962406a7ca9a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "mvc.20m", 0x1000006, 0x400000, CRC(8b0bade8) SHA1(c5732361bb4bf284c4d12a82ac2c5750b1f9d441) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "mvc.01", 0x00000, 0x08000, CRC(41629e95) SHA1(36925c05b5fdcbe43283a882d021e5360c947061) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "mvc.02", 0x28000, 0x20000, CRC(963abf6b) SHA1(6b784870e338701cefabbbe4669984b5c4e8a9a5) )
+
+ ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "mvc.11m", 0x000000, 0x400000, CRC(850fe663) SHA1(81e519d05a08855f242ea2e17ee0859b449db895) )
+ ROM_LOAD16_WORD_SWAP( "mvc.12m", 0x400000, 0x400000, CRC(7ccb1896) SHA1(74caadf3282fcc6acffb1bbe3734106f81124121) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "mvscu.key", 0x000000, 0x000014, CRC(a83db333) SHA1(7f7288ceadf233d913728f7c4a8841adcb5994e8) )
+ROM_END
+
+ROM_START( 1944jhc01 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "nffjhc01.03", 0x000000, 0x80000, CRC(d5ba6f69) SHA1(aa3d70d4772b6e93d9b5f529d6d2a01ef6c5b3a4) )
+ ROM_LOAD16_WORD_SWAP( "nff.04", 0x080000, 0x80000, CRC(dba1c66e) SHA1(4764e77d4da5d19d9acded27df1e1bcba06b0fcf) )
+ ROM_LOAD16_WORD_SWAP( "nffj.05", 0x100000, 0x80000, CRC(7f20c2ef) SHA1(380dc54d94c29c049a4c00ed58013e04eec87086) )
+
+ ROM_REGION( 0x1400000, "gfx", 0 )
+ ROMX_LOAD( "nff.13m", 0x0000000, 0x400000, CRC(c9fca741) SHA1(1781d4fc18b6d6f79b7b39d9bcace750fb61a5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "nff.15m", 0x0000002, 0x400000, CRC(f809d898) SHA1(a0b6af49e1780678d808c317b875161cedddb314) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "nff.17m", 0x0000004, 0x400000, CRC(15ba4507) SHA1(bed6a82bf1dc1aa501d4c2d098115a15e18d446a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "nff.19m", 0x0000006, 0x400000, CRC(3dd41b8c) SHA1(676078baad789e25f6e5a79de29672587be7ff00) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "nff.14m", 0x1000000, 0x100000, CRC(3fe3a54b) SHA1(0a8e5cae141d24fd8b3cb11796c44728b0acd69e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "nff.16m", 0x1000002, 0x100000, CRC(565cd231) SHA1(0aecd433fb4ca2de1aca9fbb1e314fb1f6979321) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "nff.18m", 0x1000004, 0x100000, CRC(63ca5988) SHA1(30137fa77573c84bcc24570bccb7dba61ddb413c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "nff.20m", 0x1000006, 0x100000, CRC(21eb8f3b) SHA1(efa69f19a958047dd91a294c88857ed3133fcbef) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "nff.01", 0x00000, 0x08000, CRC(d2e44318) SHA1(33e45f6fe9fed098a4c072b8c39406aef1a949b2) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+
+ ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "nff.11m", 0x000000, 0x400000, CRC(243e4e05) SHA1(83281f7290ac105a3f9a7507cbc11317d45ba706) )
+ ROM_LOAD16_WORD_SWAP( "nff.12m", 0x400000, 0x400000, CRC(4fcf1600) SHA1(36f18c5d92b79433bdf7088b29a244708929d48e) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "1944j.key", 0x000000, 0x000014, CRC(210202aa) SHA1(e3ba1d675b3e16e90b709c5aaf10bad7233c9ecb) )
+ROM_END
+
+/*************************************
+ *
+ * Game driver(s)
+ *
+ *************************************/
+// Proyecto Shadows Mame Build Plus
+/* YEAR NAME PARENT MACHINE INPUT INIT MONITOR COMPANY FULLNAME FLAGS */
+// Super Street Fighter II X: Grand Master Challenge
+GAME( 1994, ssf2e01, ssf2t, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Hacks", "Super Street Fighter II X: Grand Master Challenge (Description Of Unknown Origin 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, ssf2j01, ssf2t, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Hacks", "Super Street Fighter II X: Grand Master Challenge (Description Of Unknown Origin 02)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, ssf2j02, ssf2t, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Hacks", "Super Street Fighter II X: Grand Master Challenge (Description Of Unknown Origin 03)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, ssf2j03, ssf2t, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Hacks", "Super Street Fighter II X: Grand Master Challenge (Description Of Unknown Origin 04)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, mvsh01, mvsc, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Hacks", "Marvel Vs. Capcom (Description Of Unknown Origin 01)", MACHINE_SUPPORTS_SAVE )
+
diff --git a/src/hbmame/drivers/cps3.cpp b/src/hbmame/drivers/cps3.cpp
new file mode 100644
index 00000000000..8b71d0ac76e
--- /dev/null
+++ b/src/hbmame/drivers/cps3.cpp
@@ -0,0 +1,1618 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/cps3.cpp"
+
+class cps3_hbmame : public cps3_state
+{
+public:
+ cps3_hbmame(const machine_config &mconfig, device_type type, const char *tag)
+ : cps3_state(mconfig, type, tag)
+ { }
+
+ DECLARE_DRIVER_INIT(jojon);
+ DECLARE_DRIVER_INIT(jojoban);
+ DECLARE_DRIVER_INIT(redeartno);
+ DECLARE_DRIVER_INIT(sfiiin);
+ DECLARE_DRIVER_INIT(sfiii2n);
+ DECLARE_DRIVER_INIT(sfiii3n);
+ DECLARE_MACHINE_RESET(redeartn);
+ TIMER_CALLBACK_MEMBER(fastboot_timer_callback);
+
+private:
+ void hb_unscramble();
+ emu_timer* m_fastboot_timer;
+};
+
+TIMER_CALLBACK_MEMBER(cps3_hbmame::fastboot_timer_callback)
+{
+ uint32_t *rom = (uint32_t*)m_decrypted_gamerom;
+
+ m_maincpu->set_state_int(SH4_PC, rom[0]);
+ m_maincpu->set_state_int(SH4_R15, rom[1]);
+ m_maincpu->set_state_int(SH4_VBR, 0x6000000);
+}
+
+void cps3_hbmame::hb_unscramble()
+{
+ uint8_t *rom = memregion("old4")->base();
+ uint8_t *simm0 = memregion("simm1.0")->base();
+ uint8_t *simm1 = memregion("simm1.1")->base();
+ uint8_t *simm2 = memregion("simm1.2")->base();
+ uint8_t *simm3 = memregion("simm1.3")->base();
+ uint32_t i, j = 0;
+ for (i = 0; i < 0x200000; i++)
+ {
+ simm3[i] = rom[j++];
+ simm2[i] = rom[j++];
+ simm1[i] = rom[j++];
+ simm0[i] = rom[j++];
+ }
+
+ if (memregion("simm2.0"))
+ {
+ simm0 = memregion("simm2.0")->base();
+ simm1 = memregion("simm2.1")->base();
+ simm2 = memregion("simm2.2")->base();
+ simm3 = memregion("simm2.3")->base();
+ for (i = 0; i < 0x200000; i++)
+ {
+ simm3[i] = rom[j++];
+ simm2[i] = rom[j++];
+ simm1[i] = rom[j++];
+ simm0[i] = rom[j++];
+ }
+ }
+
+ j = 0;
+ rom = memregion("old5")->base();
+ simm0 = memregion("simm3.0")->base();
+ simm1 = memregion("simm3.1")->base();
+ for (i = 0; i < 0x200000; i++)
+ {
+ simm1[i] = rom[j++];
+ simm0[i] = rom[j++];
+ }
+ simm0 = memregion("simm3.2")->base();
+ simm1 = memregion("simm3.3")->base();
+ for (i = 0; i < 0x200000; i++)
+ {
+ simm1[i] = rom[j++];
+ simm0[i] = rom[j++];
+ }
+ simm0 = memregion("simm3.4")->base();
+ simm1 = memregion("simm3.5")->base();
+ for (i = 0; i < 0x200000; i++)
+ {
+ simm1[i] = rom[j++];
+ simm0[i] = rom[j++];
+ }
+ simm0 = memregion("simm3.6")->base();
+ simm1 = memregion("simm3.7")->base();
+ for (i = 0; i < 0x200000; i++)
+ {
+ simm1[i] = rom[j++];
+ simm0[i] = rom[j++];
+ }
+ simm0 = memregion("simm4.0")->base();
+ simm1 = memregion("simm4.1")->base();
+ for (i = 0; i < 0x200000; i++)
+ {
+ simm1[i] = rom[j++];
+ simm0[i] = rom[j++];
+ }
+ simm0 = memregion("simm4.2")->base();
+ simm1 = memregion("simm4.3")->base();
+ for (i = 0; i < 0x200000; i++)
+ {
+ simm1[i] = rom[j++];
+ simm0[i] = rom[j++];
+ }
+ simm0 = memregion("simm4.4")->base();
+ simm1 = memregion("simm4.5")->base();
+ for (i = 0; i < 0x200000; i++)
+ {
+ simm1[i] = rom[j++];
+ simm0[i] = rom[j++];
+ }
+ simm0 = memregion("simm4.6")->base();
+ simm1 = memregion("simm4.7")->base();
+ for (i = 0; i < 0x200000; i++)
+ {
+ simm1[i] = rom[j++];
+ simm0[i] = rom[j++];
+ }
+ simm0 = memregion("simm5.0")->base();
+ simm1 = memregion("simm5.1")->base();
+ for (i = 0; i < 0x200000; i++)
+ {
+ simm1[i] = rom[j++];
+ simm0[i] = rom[j++];
+ }
+
+ if (memregion("simm5.2"))
+ {
+ simm0 = memregion("simm5.2")->base();
+ simm1 = memregion("simm5.3")->base();
+ for (i = 0; i < 0x200000; i++)
+ {
+ simm1[i] = rom[j++];
+ simm0[i] = rom[j++];
+ }
+ }
+
+ if (memregion("simm5.4"))
+ {
+ simm0 = memregion("simm5.4")->base();
+ simm1 = memregion("simm5.5")->base();
+ for (i = 0; i < 0x200000; i++)
+ {
+ simm1[i] = rom[j++];
+ simm0[i] = rom[j++];
+ }
+ simm0 = memregion("simm5.6")->base();
+ simm1 = memregion("simm5.7")->base();
+ for (i = 0; i < 0x200000; i++)
+ {
+ simm1[i] = rom[j++];
+ simm0[i] = rom[j++];
+ }
+ }
+
+ if (memregion("simm6.0"))
+ {
+ simm0 = memregion("simm6.0")->base();
+ simm1 = memregion("simm6.1")->base();
+ for (i = 0; i < 0x200000; i++)
+ {
+ simm1[i] = rom[j++];
+ simm0[i] = rom[j++];
+ }
+ simm0 = memregion("simm6.2")->base();
+ simm1 = memregion("simm6.3")->base();
+ for (i = 0; i < 0x200000; i++)
+ {
+ simm1[i] = rom[j++];
+ simm0[i] = rom[j++];
+ }
+ simm0 = memregion("simm6.4")->base();
+ simm1 = memregion("simm6.5")->base();
+ for (i = 0; i < 0x200000; i++)
+ {
+ simm1[i] = rom[j++];
+ simm0[i] = rom[j++];
+ }
+ simm0 = memregion("simm6.6")->base();
+ simm1 = memregion("simm6.7")->base();
+ for (i = 0; i < 0x200000; i++)
+ {
+ simm1[i] = rom[j++];
+ simm0[i] = rom[j++];
+ }
+ }
+}
+
+DRIVER_INIT_MEMBER( cps3_hbmame, jojon )
+{
+ hb_unscramble();
+ DRIVER_INIT_CALL(jojo);
+}
+
+DRIVER_INIT_MEMBER( cps3_hbmame, jojoban )
+{
+ hb_unscramble();
+ DRIVER_INIT_CALL(jojoba);
+}
+
+DRIVER_INIT_MEMBER( cps3_hbmame, redeartno )
+{
+ hb_unscramble();
+ DRIVER_INIT_CALL(redearth);
+}
+
+DRIVER_INIT_MEMBER( cps3_hbmame, sfiiin )
+{
+ hb_unscramble();
+ DRIVER_INIT_CALL(sfiii);
+}
+
+DRIVER_INIT_MEMBER( cps3_hbmame, sfiii2n )
+{
+ hb_unscramble();
+ DRIVER_INIT_CALL(sfiii2);
+}
+
+DRIVER_INIT_MEMBER( cps3_hbmame, sfiii3n )
+{
+ hb_unscramble();
+ DRIVER_INIT_CALL(sfiii3);
+}
+
+MACHINE_RESET_MEMBER( cps3_hbmame, redeartn )
+{
+ m_current_table_address = -1;
+
+ m_fastboot_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(cps3_hbmame::fastboot_timer_callback),this));
+ m_fastboot_timer->adjust(attotime::zero);
+
+ // copy data from flashroms back into user regions + decrypt into regions we execute/draw from.
+ copy_from_nvram();
+}
+
+static MACHINE_CONFIG_DERIVED( redeartn, redearth )
+ MCFG_MACHINE_RESET_OVERRIDE(cps3_hbmame, redeartn)
+MACHINE_CONFIG_END
+
+static INPUT_PORTS_START ( cps3_ren )
+ PORT_INCLUDE ( cps3 )
+ PORT_MODIFY("INPUTS")
+ PORT_BIT( 0x10000000, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("P1 Start / Change Orb")
+ PORT_BIT( 0x20000000, IP_ACTIVE_LOW, IPT_START2 ) PORT_NAME("P2 Start / Change Orb")
+
+ PORT_START("REG")
+ PORT_DIPNAME( 0x0000000f, 0x00000000, DEF_STR( Region ) )
+ PORT_DIPSETTING( 0x00000000, "Default" )
+ // none of these do anything
+ //PORT_DIPSETTING( 0x00000001, DEF_STR( Japan ) )
+ //PORT_DIPSETTING( 0x00000002, DEF_STR( Asia ) )
+ //PORT_DIPSETTING( 0x00000003, DEF_STR( Europe ) )
+ //PORT_DIPSETTING( 0x00000004, DEF_STR( USA ) )
+ //PORT_DIPSETTING( 0x00000005, "Hispanic" )
+ //PORT_DIPSETTING( 0x00000006, "Brazil" )
+ //PORT_DIPSETTING( 0x00000007, "Oceania" )
+ //PORT_DIPSETTING( 0x00000008, "Asia NCD" )
+
+ PORT_START("VER")
+ PORT_DIPNAME( 0x000000f0, 0x00000060, DEF_STR( Version ) )
+ PORT_DIPSETTING( 0x00000060, DEF_STR( Normal ) )
+ // none of these do anything
+ //PORT_DIPSETTING( 0x00000010, "Character Check" )
+ //PORT_DIPSETTING( 0x00000020, "Publicity" )
+ //PORT_DIPSETTING( 0x00000030, "Location Test" )
+ //PORT_DIPSETTING( 0x00000040, "Show" )
+ //PORT_DIPSETTING( 0x00000050, "???" )
+INPUT_PORTS_END
+
+
+
+ROM_START( jojobbh2 )
+ ROM_REGION32_BE( 0x080000, "bios", 0 )
+ ROM_LOAD( "jojoba_euro_nocd.29f400.u2", 0x000000, 0x080000, CRC(1ee2d679) SHA1(9e129b454a376606b3f7e8aec64de425cf9c635c) )
+
+ ROM_REGION( 0x200000, "simm1.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.7", ROMREGION_ERASEFF )
+
+ ROM_REGION32_BE( USER4REGION_LENGTH, "old4", ROMREGION_ERASEFF )
+ ROM_LOAD( "10bh2", 0x000000, 0x800000, CRC(45e18e22) SHA1(e49fe9659852346ad36907b7ddd30b26ae44f309) )
+ ROM_LOAD( "20", 0x800000, 0x800000, CRC(1293892b) SHA1(b1beafac1a9c4b6d0640658af8a3eb359e76eb25) )
+ ROM_REGION16_BE( USER5REGION_LENGTH, "old5", ROMREGION_ERASEFF )
+ ROM_LOAD( "30", 0x0000000, 0x800000, CRC(d25c5005) SHA1(93a19a14783d604bb42feffbe23eb370d11281e8) )
+ ROM_LOAD( "31", 0x0800000, 0x800000, CRC(51bb3dba) SHA1(39e95a05882909820b3efa6a3b457b8574012638) )
+ ROM_LOAD( "40", 0x1000000, 0x800000, CRC(94dc26d4) SHA1(5ae2815142972f322886eea4885baf2b82563ab1) )
+ ROM_LOAD( "41", 0x1800000, 0x800000, CRC(1c53ee62) SHA1(e096bf3cb6fbc3d45955787b8f3213abcd76d120) )
+ ROM_LOAD( "50", 0x2000000, 0x800000, CRC(36e416ed) SHA1(58d0e95cc13f39bc171165468ce72f4f17b8d8d6) )
+ ROM_LOAD( "51", 0x2800000, 0x800000, CRC(eedf19ca) SHA1(a7660bf9ff87911afb4f83b64456245059986830) )
+ROM_END
+
+ROM_START( jojobbss )
+ ROM_REGION32_BE( 0x080000, "bios", 0 )
+ ROM_LOAD( "jojoba_japan_nocd.29f400.u2", 0x000000, 0x080000, CRC(4dab19f5) SHA1(ba07190e7662937fc267f07285c51e99a45c061e) )
+
+ ROM_REGION( 0x200000, "simm1.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.7", ROMREGION_ERASEFF )
+
+ ROM_REGION32_BE( USER4REGION_LENGTH, "old4", ROMREGION_ERASEFF )
+ ROM_LOAD( "10bbss", 0x000000, 0x800000, CRC(84f44fbc) SHA1(4727e24fe00e88a82b67f981643480e15224ae18) )
+ ROM_LOAD( "20", 0x800000, 0x800000, CRC(1293892b) SHA1(b1beafac1a9c4b6d0640658af8a3eb359e76eb25) )
+ ROM_REGION16_BE( USER5REGION_LENGTH, "old5", ROMREGION_ERASEFF )
+ ROM_LOAD( "30", 0x0000000, 0x800000, CRC(d25c5005) SHA1(93a19a14783d604bb42feffbe23eb370d11281e8) )
+ ROM_LOAD( "31", 0x0800000, 0x800000, CRC(51bb3dba) SHA1(39e95a05882909820b3efa6a3b457b8574012638) )
+ ROM_LOAD( "40", 0x1000000, 0x800000, CRC(94dc26d4) SHA1(5ae2815142972f322886eea4885baf2b82563ab1) )
+ ROM_LOAD( "41", 0x1800000, 0x800000, CRC(1c53ee62) SHA1(e096bf3cb6fbc3d45955787b8f3213abcd76d120) )
+ ROM_LOAD( "50", 0x2000000, 0x800000, CRC(36e416ed) SHA1(58d0e95cc13f39bc171165468ce72f4f17b8d8d6) )
+ ROM_LOAD( "51", 0x2800000, 0x800000, CRC(eedf19ca) SHA1(a7660bf9ff87911afb4f83b64456245059986830) )
+ROM_END
+
+ROM_START( jojobpow )
+ ROM_REGION32_BE( 0x080000, "bios", 0 )
+ ROM_LOAD( "jojoba_japan_nocd.29f400.u2", 0x000000, 0x080000, CRC(4dab19f5) SHA1(ba07190e7662937fc267f07285c51e99a45c061e) )
+
+ ROM_REGION( 0x200000, "simm1.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.7", ROMREGION_ERASEFF )
+
+ ROM_REGION32_BE( USER4REGION_LENGTH, "old4", ROMREGION_ERASEFF )
+ ROM_LOAD( "10bpow", 0x000000, 0x800000, CRC(d616f8d4) SHA1(665c353fd32183c0bf18b70a48f84f469c00fddc) )
+ ROM_LOAD( "20", 0x800000, 0x800000, CRC(1293892b) SHA1(b1beafac1a9c4b6d0640658af8a3eb359e76eb25) )
+ ROM_REGION16_BE( USER5REGION_LENGTH, "old5", ROMREGION_ERASEFF )
+ ROM_LOAD( "30", 0x0000000, 0x800000, CRC(d25c5005) SHA1(93a19a14783d604bb42feffbe23eb370d11281e8) )
+ ROM_LOAD( "31", 0x0800000, 0x800000, CRC(51bb3dba) SHA1(39e95a05882909820b3efa6a3b457b8574012638) )
+ ROM_LOAD( "40", 0x1000000, 0x800000, CRC(94dc26d4) SHA1(5ae2815142972f322886eea4885baf2b82563ab1) )
+ ROM_LOAD( "41", 0x1800000, 0x800000, CRC(1c53ee62) SHA1(e096bf3cb6fbc3d45955787b8f3213abcd76d120) )
+ ROM_LOAD( "50", 0x2000000, 0x800000, CRC(36e416ed) SHA1(58d0e95cc13f39bc171165468ce72f4f17b8d8d6) )
+ ROM_LOAD( "51", 0x2800000, 0x800000, CRC(eedf19ca) SHA1(a7660bf9ff87911afb4f83b64456245059986830) )
+ROM_END
+
+
+ROM_START( jojonbss )
+ ROM_REGION32_BE( 0x080000, "bios", 0 )
+ ROM_LOAD( "jojo_asia_nocd.29f400.u2", 0x000000, 0x080000, CRC(05b4f953) SHA1(c746c7bb5359acc9adced817cb4870b1912eaefd) )
+
+ ROM_REGION( 0x200000, "simm1.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.3", ROMREGION_ERASEFF )
+
+ ROM_REGION32_BE( USER4REGION_LENGTH, "old4", ROMREGION_ERASEFF )
+ ROM_LOAD( "10bss", 0x0000000, 0x800000, CRC(fccbce04) SHA1(cd4d429620afdd1924ceb33f1a435c9de91453c3) )
+ ROM_LOAD( "20", 0x0800000, 0x800000, CRC(0e1daddf) SHA1(34bb4e0fb86258095a7b20f60174453195f3735a) )
+ ROM_REGION16_BE( USER5REGION_LENGTH, "old5", ROMREGION_ERASEFF )
+ ROM_LOAD( "30", 0x0000000, 0x800000, CRC(1d99181b) SHA1(25c216de16cefac2d5892039ad23d07848a457e6) )
+ ROM_LOAD( "31", 0x0800000, 0x800000, CRC(6889fbda) SHA1(53a51b993d319d81a604cdf70b224955eacb617e) )
+ ROM_LOAD( "40", 0x1000000, 0x800000, CRC(8069f9de) SHA1(7862ee104a2e9034910dd592687b40ebe75fa9ce) )
+ ROM_LOAD( "41", 0x1800000, 0x800000, CRC(9c426823) SHA1(1839dccc7943a44063e8cb2376cd566b24e8b797) )
+ ROM_LOAD( "50", 0x2000000, 0x400000, CRC(1c749cc7) SHA1(23df741360476d8035c68247e645278fbab53b59) )
+ROM_END
+
+ROM_START( jojonpow )
+ ROM_REGION32_BE( 0x080000, "bios", 0 )
+ ROM_LOAD( "jojo_asia_nocd.29f400.u2", 0x000000, 0x080000, CRC(05b4f953) SHA1(c746c7bb5359acc9adced817cb4870b1912eaefd) )
+
+ ROM_REGION( 0x200000, "simm1.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.3", ROMREGION_ERASEFF )
+
+ ROM_REGION32_BE( USER4REGION_LENGTH, "old4", ROMREGION_ERASEFF )
+ ROM_LOAD( "10pow", 0x0000000, 0x800000, CRC(dd5723e1) SHA1(85adee2f633fd5438c00d2c8c9fde0c4d8a7282f) )
+ ROM_LOAD( "20", 0x0800000, 0x800000, CRC(0e1daddf) SHA1(34bb4e0fb86258095a7b20f60174453195f3735a) )
+ ROM_REGION16_BE( USER5REGION_LENGTH, "old5", ROMREGION_ERASEFF )
+ ROM_LOAD( "30", 0x0000000, 0x800000, CRC(1d99181b) SHA1(25c216de16cefac2d5892039ad23d07848a457e6) )
+ ROM_LOAD( "31", 0x0800000, 0x800000, CRC(6889fbda) SHA1(53a51b993d319d81a604cdf70b224955eacb617e) )
+ ROM_LOAD( "40", 0x1000000, 0x800000, CRC(8069f9de) SHA1(7862ee104a2e9034910dd592687b40ebe75fa9ce) )
+ ROM_LOAD( "41", 0x1800000, 0x800000, CRC(9c426823) SHA1(1839dccc7943a44063e8cb2376cd566b24e8b797) )
+ ROM_LOAD( "50", 0x2000000, 0x400000, CRC(1c749cc7) SHA1(23df741360476d8035c68247e645278fbab53b59) )
+ROM_END
+
+
+ROM_START( redeartn )
+ ROM_REGION32_BE( 0x080000, "bios", 0 )
+ ROM_LOAD( "redearthn_asia_nocd.29f400.u2", 0x000000, 0x080000, CRC(db09f27c) SHA1(f2d299cda7cda175b4218526a15f12560654d97f) )
+
+ ROM_REGION( 0x200000, "simm1.0", 0 )
+ ROM_LOAD( "redeartn-simm1.0", 0x00000, 0x200000, CRC(cad468f8) SHA1(b3aa4f7d3fae84e8821417ccde9528d3eda2b7a6) )
+ ROM_REGION( 0x200000, "simm1.1", 0 )
+ ROM_LOAD( "redeartn-simm1.1", 0x00000, 0x200000, CRC(e9721d89) SHA1(5c63d10bdbce52d50b6dde14d4a0f1369383d656) )
+ ROM_REGION( 0x200000, "simm1.2", 0 )
+ ROM_LOAD( "redeartn-simm1.2", 0x00000, 0x200000, CRC(2889ec98) SHA1(a94310eb4777f908d87e9d90969db8504b4140ff) )
+ ROM_REGION( 0x200000, "simm1.3", 0 )
+ ROM_LOAD( "redeartn-simm1.3", 0x00000, 0x200000, CRC(5a6cd148) SHA1(d65c6e8378a91828474a16a3bbcd13c4b3b15f13) )
+
+ ROM_REGION( 0x200000, "simm3.0", 0 )
+ ROM_LOAD( "redeartn-simm3.0", 0x00000, 0x200000, CRC(83350cc5) SHA1(922b1abf80a4a89f35279b66311a7369d3965bd0) )
+ ROM_REGION( 0x200000, "simm3.1", 0 )
+ ROM_LOAD( "redeartn-simm3.1", 0x00000, 0x200000, CRC(56734de6) SHA1(75699fa6efe5bec335e4b02e15b3c45726b68fa8) )
+ ROM_REGION( 0x200000, "simm3.2", 0 )
+ ROM_LOAD( "redeartn-simm3.2", 0x00000, 0x200000, CRC(800ea0f1) SHA1(33871ab56dc1cd24441389d53e43fb8e43b149d9) )
+ ROM_REGION( 0x200000, "simm3.3", 0 )
+ ROM_LOAD( "redeartn-simm3.3", 0x00000, 0x200000, CRC(97e9146c) SHA1(ab7744709615081440bee72f4080d6fd5b938668) )
+ ROM_REGION( 0x200000, "simm3.4", 0 )
+ ROM_LOAD( "redeartn-simm3.4", 0x00000, 0x200000, CRC(0cb1d648) SHA1(7042a590c2b7ec55323062127e254da3cdc790a1) )
+ ROM_REGION( 0x200000, "simm3.5", 0 )
+ ROM_LOAD( "redeartn-simm3.5", 0x00000, 0x200000, CRC(7a1099f0) SHA1(c6a92ec86eb24485f1db530e0e78f647e8432231) )
+ ROM_REGION( 0x200000, "simm3.6", 0 )
+ ROM_LOAD( "redeartn-simm3.6", 0x00000, 0x200000, CRC(aeff8f54) SHA1(fd760e237c2e5fb2da45e32a1c12fd3defb4c3e4) )
+ ROM_REGION( 0x200000, "simm3.7", 0 )
+ ROM_LOAD( "redeartn-simm3.7", 0x00000, 0x200000, CRC(f770acd0) SHA1(4b3ccb6f91568f95f04ede6c574144918d131201) )
+
+ ROM_REGION( 0x200000, "simm4.0", 0 )
+ ROM_LOAD( "redeartn-simm4.0", 0x00000, 0x200000, CRC(301e56f2) SHA1(4847d971bff70a2aeed4599e1201c7ec9677da60) )
+ ROM_REGION( 0x200000, "simm4.1", 0 )
+ ROM_LOAD( "redeartn-simm4.1", 0x00000, 0x200000, CRC(2048e103) SHA1(b21f95b05cd99749bd3f25cc71b2671c2026847b) )
+ ROM_REGION( 0x200000, "simm4.2", 0 )
+ ROM_LOAD( "redeartn-simm4.2", 0x00000, 0x200000, CRC(c9433455) SHA1(63a269d76bac332c2e991d0f6a20c35e0e88680a) )
+ ROM_REGION( 0x200000, "simm4.3", 0 )
+ ROM_LOAD( "redeartn-simm4.3", 0x00000, 0x200000, CRC(c02171a8) SHA1(2e9228729b27a6113d9f2e42af310a834979f714) )
+ ROM_REGION( 0x200000, "simm4.4", 0 )
+ ROM_LOAD( "redeartn-simm4.4", 0x00000, 0x200000, CRC(2ddbf276) SHA1(b232baaa8edc8db18f8a3bdcc2d38fe984a94a34) )
+ ROM_REGION( 0x200000, "simm4.5", 0 )
+ ROM_LOAD( "redeartn-simm4.5", 0x00000, 0x200000, CRC(fea820a6) SHA1(55ee8ef95751f5a509fb126513e1b2a70a3414e5) )
+ ROM_REGION( 0x200000, "simm4.6", 0 )
+ ROM_LOAD( "redeartn-simm4.6", 0x00000, 0x200000, CRC(c7528df1) SHA1(aa312f80c2d7759d18d1aa8d416cf932b2850824) )
+ ROM_REGION( 0x200000, "simm4.7", 0 )
+ ROM_LOAD( "redeartn-simm4.7", 0x00000, 0x200000, CRC(2449cf3b) SHA1(c60d8042136d74e547f668ad787cae529c42eed9) )
+
+ ROM_REGION( 0x200000, "simm5.0", 0 )
+ ROM_LOAD( "redeartn-simm5.0", 0x00000, 0x200000, CRC(424451b9) SHA1(250fb92254c9e7ff5bc8dbeea5872f8a771dc9bd) )
+ ROM_REGION( 0x200000, "simm5.1", 0 )
+ ROM_LOAD( "redeartn-simm5.1", 0x00000, 0x200000, CRC(9b8cb56b) SHA1(2ff1081dc99bb7c2f1e036f4c112137c96b83d23) )
+ROM_END
+
+ROM_START( redearex )
+ ROM_REGION32_BE( 0x080000, "bios", 0 )
+ ROM_LOAD( "redearth_euro.29f400.u2", 0x000000, 0x080000, CRC(02e0f336) SHA1(acc37e830dfeb9674f5a0fb24f4cc23217ae4ff5) )
+
+ ROM_REGION( 0x200000, "simm1.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.1", ROMREGION_ERASEFF )
+
+ ROM_REGION32_BE( USER4REGION_LENGTH, "old4", 0 )
+ ROM_LOAD( "10ex", 0x000000, 0x800000, CRC(e44131ad) SHA1(1b395edd8c0cb2705a1bdbb8df75e6d218d8e379) )
+ ROM_REGION16_BE( USER5REGION_LENGTH, "old5", 0 )
+ ROM_LOAD( "30", 0x0000000, 0x800000, CRC(074cab4d) SHA1(4cb6cc9cce3b1a932b07058a5d723b3effa23fcf) )
+ ROM_LOAD( "31", 0x0800000, 0x800000, CRC(14e2cad4) SHA1(9958a4e315e4476e4791a6219b93495413c7b751) )
+ ROM_LOAD( "40", 0x1000000, 0x800000, CRC(72d98890) SHA1(f40926c52cb7a71b0ef0027a0ea38bbc7e8b31b0) )
+ ROM_LOAD( "41", 0x1800000, 0x800000, CRC(88ccb33c) SHA1(1e7af35d186d0b4e45b6c27458ddb9cfddd7c9bc) )
+ ROM_LOAD( "50", 0x2000000, 0x400000, CRC(2f5b44bd) SHA1(7ffdbed5b6899b7e31414a0828e04543d07435e4) )
+ROM_END
+
+ROM_START( redeartno )
+ ROM_REGION32_BE( 0x080000, "bios", 0 )
+ ROM_LOAD( "redearth_euro.29f400.u2", 0x000000, 0x080000, CRC(02e0f336) SHA1(acc37e830dfeb9674f5a0fb24f4cc23217ae4ff5) )
+
+ ROM_REGION( 0x200000, "simm1.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.1", ROMREGION_ERASEFF )
+
+ ROM_REGION32_BE( USER4REGION_LENGTH, "old4", 0 )
+ ROM_LOAD( "10", 0x000000, 0x800000, CRC(68188016) SHA1(93aaac08cb5566c33aabc16457085b0a36048019) )
+ ROM_REGION16_BE( USER5REGION_LENGTH, "old5", 0 )
+ ROM_LOAD( "30", 0x0000000, 0x800000, CRC(074cab4d) SHA1(4cb6cc9cce3b1a932b07058a5d723b3effa23fcf) )
+ ROM_LOAD( "31", 0x0800000, 0x800000, CRC(14e2cad4) SHA1(9958a4e315e4476e4791a6219b93495413c7b751) )
+ ROM_LOAD( "40", 0x1000000, 0x800000, CRC(72d98890) SHA1(f40926c52cb7a71b0ef0027a0ea38bbc7e8b31b0) )
+ ROM_LOAD( "41", 0x1800000, 0x800000, CRC(88ccb33c) SHA1(1e7af35d186d0b4e45b6c27458ddb9cfddd7c9bc) )
+ ROM_LOAD( "50", 0x2000000, 0x400000, CRC(2f5b44bd) SHA1(7ffdbed5b6899b7e31414a0828e04543d07435e4) )
+ROM_END
+
+
+ROM_START( sfiiibhp )
+ ROM_REGION32_BE( 0x080000, "bios", 0 )
+ ROM_LOAD( "sfiii_asia_nocd.29f400.u2", 0x000000, 0x080000, CRC(73e32463) SHA1(45d144e533e4b20cc5a744ca4f618e288430c601) )
+
+ ROM_REGION( 0x200000, "simm1.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.1", ROMREGION_ERASEFF )
+
+ ROM_REGION32_BE( USER4REGION_LENGTH, "old4", 0 )
+ ROM_LOAD( "10bhp", 0x0000000, 0x800000, CRC(cebd13a2) SHA1(18017d798448f6271f5c7b07325e0410b5d55f0d) )
+ ROM_REGION16_BE( USER5REGION_LENGTH, "old5", 0 )
+ ROM_LOAD( "30", 0x0000000, 0x800000, CRC(98c2d07c) SHA1(604ce4a16170847c10bc233a47a47a119ce170f7) )
+ ROM_LOAD( "31", 0x0800000, 0x800000, CRC(7115a396) SHA1(b60a74259e3c223138e66e68a3f6457694a0c639) )
+ ROM_LOAD( "40", 0x1000000, 0x800000, CRC(839f0972) SHA1(844e43fcc157b7c774044408bfe918c49e174cdb) )
+ ROM_LOAD( "41", 0x1800000, 0x800000, CRC(8a8b252c) SHA1(9ead4028a212c689d7a25746fbd656dca6f938e8) )
+ ROM_LOAD( "50", 0x2000000, 0x400000, CRC(58933dc2) SHA1(1f1723be676a817237e96b6e20263b935c59daae) )
+ROM_END
+
+ROM_START( sfiiipmp )
+ ROM_REGION32_BE( 0x080000, "bios", 0 )
+ ROM_LOAD( "sfiii_asia_nocd.29f400.u2", 0x000000, 0x080000, CRC(73e32463) SHA1(45d144e533e4b20cc5a744ca4f618e288430c601) )
+
+ ROM_REGION( 0x200000, "simm1.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.1", ROMREGION_ERASEFF )
+
+ ROM_REGION32_BE( USER4REGION_LENGTH, "old4", 0 )
+ ROM_LOAD( "10pmp", 0x0000000, 0x800000, CRC(41ed9e7b) SHA1(91684a1ecada9971eddf5ca6ace95f7110ba165b) )
+ ROM_REGION16_BE( USER5REGION_LENGTH, "old5", 0 )
+ ROM_LOAD( "30", 0x0000000, 0x800000, CRC(98c2d07c) SHA1(604ce4a16170847c10bc233a47a47a119ce170f7) )
+ ROM_LOAD( "31", 0x0800000, 0x800000, CRC(7115a396) SHA1(b60a74259e3c223138e66e68a3f6457694a0c639) )
+ ROM_LOAD( "40", 0x1000000, 0x800000, CRC(839f0972) SHA1(844e43fcc157b7c774044408bfe918c49e174cdb) )
+ ROM_LOAD( "41", 0x1800000, 0x800000, CRC(8a8b252c) SHA1(9ead4028a212c689d7a25746fbd656dca6f938e8) )
+ ROM_LOAD( "50", 0x2000000, 0x400000, CRC(58933dc2) SHA1(1f1723be676a817237e96b6e20263b935c59daae) )
+ROM_END
+
+
+ROM_START( sfiii2bh )
+ ROM_REGION32_BE( 0x080000, "bios", 0 )
+ ROM_LOAD( "sfiii2_asia_nocd.29f400.u2", 0x000000, 0x080000, CRC(fd297c0d) SHA1(4323deda2789f104b53f32a663196ec16de73215) )
+
+ ROM_REGION( 0x200000, "simm1.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.7", ROMREGION_ERASEFF )
+
+ ROM_REGION32_BE( USER4REGION_LENGTH, "old4", 0 )
+ ROM_LOAD( "10bh", 0x0000000, 0x800000, CRC(503d6401) SHA1(bf352cada35fd5c9927d265fcc04a068ed015e57) )
+ ROM_LOAD( "20", 0x0800000, 0x800000, CRC(38090460) SHA1(aaade89b8ccdc9154f97442ca35703ec538fe8be) )
+ ROM_REGION16_BE( USER5REGION_LENGTH, "old5", 0 )
+ ROM_LOAD( "30", 0x0000000, 0x800000, CRC(77c197c0) SHA1(944381161462e65de7ae63a656658f3fbe44727a) )
+ ROM_LOAD( "31", 0x0800000, 0x800000, CRC(7470a6f2) SHA1(850b2e20afe8a5a1f0d212d9abe002cb5cf14d22) )
+ ROM_LOAD( "40", 0x1000000, 0x800000, CRC(01a85ced) SHA1(802df3274d5f767636b2785606e0558f6d3b9f13) )
+ ROM_LOAD( "41", 0x1800000, 0x800000, CRC(fb346d74) SHA1(57570f101a170aa7e83e84e4b7cbdc63a11a486a) )
+ ROM_LOAD( "50", 0x2000000, 0x800000, CRC(32f79449) SHA1(44b1f2a640ab4abc23ff47e0edd87fbd0b345c06) )
+ ROM_LOAD( "51", 0x2800000, 0x800000, CRC(1102b8eb) SHA1(c7dd2ee3a3214c6ec47a03fe3e8c941775d57f76) )
+ROM_END
+
+ROM_START( sfiii2np )
+ ROM_REGION32_BE( 0x080000, "bios", 0 )
+ ROM_LOAD( "sfiii2_asia_nocd.29f400.u2", 0x000000, 0x080000, CRC(fd297c0d) SHA1(4323deda2789f104b53f32a663196ec16de73215) )
+
+ ROM_REGION( 0x200000, "simm1.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.7", ROMREGION_ERASEFF )
+
+ ROM_REGION32_BE( USER4REGION_LENGTH, "old4", 0 )
+ ROM_LOAD( "10p", 0x0000000, 0x800000, CRC(ff5a016f) SHA1(0fef232f3ff9a0ef2225b934b283118b53b2f26e) )
+ ROM_LOAD( "20", 0x0800000, 0x800000, CRC(38090460) SHA1(aaade89b8ccdc9154f97442ca35703ec538fe8be) )
+ ROM_REGION16_BE( USER5REGION_LENGTH, "old5", 0 )
+ ROM_LOAD( "30", 0x0000000, 0x800000, CRC(77c197c0) SHA1(944381161462e65de7ae63a656658f3fbe44727a) )
+ ROM_LOAD( "31", 0x0800000, 0x800000, CRC(7470a6f2) SHA1(850b2e20afe8a5a1f0d212d9abe002cb5cf14d22) )
+ ROM_LOAD( "40", 0x1000000, 0x800000, CRC(01a85ced) SHA1(802df3274d5f767636b2785606e0558f6d3b9f13) )
+ ROM_LOAD( "41", 0x1800000, 0x800000, CRC(fb346d74) SHA1(57570f101a170aa7e83e84e4b7cbdc63a11a486a) )
+ ROM_LOAD( "50", 0x2000000, 0x800000, CRC(32f79449) SHA1(44b1f2a640ab4abc23ff47e0edd87fbd0b345c06) )
+ ROM_LOAD( "51", 0x2800000, 0x800000, CRC(1102b8eb) SHA1(c7dd2ee3a3214c6ec47a03fe3e8c941775d57f76) )
+ROM_END
+
+ROM_START( sfiii2pl )
+ ROM_REGION32_BE( 0x080000, "bios", 0 )
+ ROM_LOAD( "sfiii2_asia_nocd.29f400.u2", 0x000000, 0x080000, CRC(fd297c0d) SHA1(4323deda2789f104b53f32a663196ec16de73215) )
+
+ ROM_REGION( 0x200000, "simm1.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.7", ROMREGION_ERASEFF )
+
+ ROM_REGION32_BE( USER4REGION_LENGTH, "old4", 0 )
+ ROM_LOAD( "10pl", 0x0000000, 0x800000, CRC(beb7b483) SHA1(451e37490dccd7ae11c1bd6f7ba236af7d54b342) )
+ ROM_LOAD( "20", 0x0800000, 0x800000, CRC(38090460) SHA1(aaade89b8ccdc9154f97442ca35703ec538fe8be) )
+ ROM_REGION16_BE( USER5REGION_LENGTH, "old5", 0 )
+ ROM_LOAD( "30", 0x0000000, 0x800000, CRC(77c197c0) SHA1(944381161462e65de7ae63a656658f3fbe44727a) )
+ ROM_LOAD( "31", 0x0800000, 0x800000, CRC(7470a6f2) SHA1(850b2e20afe8a5a1f0d212d9abe002cb5cf14d22) )
+ ROM_LOAD( "40", 0x1000000, 0x800000, CRC(01a85ced) SHA1(802df3274d5f767636b2785606e0558f6d3b9f13) )
+ ROM_LOAD( "41", 0x1800000, 0x800000, CRC(fb346d74) SHA1(57570f101a170aa7e83e84e4b7cbdc63a11a486a) )
+ ROM_LOAD( "50", 0x2000000, 0x800000, CRC(32f79449) SHA1(44b1f2a640ab4abc23ff47e0edd87fbd0b345c06) )
+ ROM_LOAD( "51", 0x2800000, 0x800000, CRC(1102b8eb) SHA1(c7dd2ee3a3214c6ec47a03fe3e8c941775d57f76) )
+ROM_END
+
+
+ROM_START( sfiii3an )
+ ROM_REGION32_BE( 0x080000, "bios", 0 ) /* bios region */
+ ROM_LOAD( "sfiii3_japan_nocd.29f400.u2", 0x000000, 0x080000, CRC(1edc6366) SHA1(60b4b9adeb030a33059d74fdf03873029e465b52) )
+
+ ROM_REGION( 0x200000, "simm1.0", 0 )
+ ROM_LOAD( "sfiii3n-simm1.0", 0x000000, 0x200000, CRC(11dfd3cd) SHA1(dba1f77c46e80317e3279298411154dfb6db2309) )
+ ROM_REGION( 0x200000, "simm1.1", 0 )
+ ROM_LOAD( "sfiii3n-simm1.1", 0x000000, 0x200000, CRC(c50585e6) SHA1(a289237957ea1c7f58b1c65e24c54ceb34cb1712) )
+ ROM_REGION( 0x200000, "simm1.2", 0 )
+ ROM_LOAD( "sfiii3n-simm1.2", 0x000000, 0x200000, CRC(8e011d9b) SHA1(e0861bcd3c4f865474d7ce47aa9eeec7b3d28da6) )
+ ROM_REGION( 0x200000, "simm1.3", 0 )
+ ROM_LOAD( "sfiii3n-simm1.3", 0x000000, 0x200000, CRC(dca8d92f) SHA1(7cd241641c943df446e2c75b88b5cf2d2ebf7b2e) )
+
+ ROM_REGION( 0x200000, "simm2.0", 0 )
+ ROM_LOAD( "sfiii3-simm2.0", 0x00000, 0x200000, CRC(06eb969e) SHA1(d89f6a6585b76692d57d337f0f8186398fb056da) )
+ ROM_REGION( 0x200000, "simm2.1", 0 )
+ ROM_LOAD( "sfiii3-simm2.1", 0x00000, 0x200000, CRC(e7039f82) SHA1(8e81e66b5a4f45ae14b070a491bde47a6a74499f) )
+ ROM_REGION( 0x200000, "simm2.2", 0 )
+ ROM_LOAD( "sfiii3-simm2.2", 0x00000, 0x200000, CRC(645c96f7) SHA1(06d5a54874d4bf100b776131ec9060da209ad037) )
+ ROM_REGION( 0x200000, "simm2.3", 0 )
+ ROM_LOAD( "sfiii3-simm2.3", 0x00000, 0x200000, CRC(610efab1) SHA1(bbc21ed6ff6220ff6017a3f02ebd9a341fbc9040) )
+
+ ROM_REGION( 0x200000, "simm3.0", 0 )
+ ROM_LOAD( "sfiii3-simm3.0", 0x00000, 0x200000, CRC(7baa1f79) SHA1(3f409df28c24dd7221966b5340d59898ea756b6f) )
+ ROM_REGION( 0x200000, "simm3.1", 0 )
+ ROM_LOAD( "sfiii3-simm3.1", 0x00000, 0x200000, CRC(234bf8fe) SHA1(2191781ae4d726cab28de97f27efa4a13f3bdd69) )
+ ROM_REGION( 0x200000, "simm3.2", 0 )
+ ROM_LOAD( "sfiii3-simm3.2", 0x00000, 0x200000, CRC(d9ebc308) SHA1(af6a0dca77e5181c9f20533a06760a782c5fd51d) )
+ ROM_REGION( 0x200000, "simm3.3", 0 )
+ ROM_LOAD( "sfiii3-simm3.3", 0x00000, 0x200000, CRC(293cba77) SHA1(294604cacdc24261aec4d39e489de91c41fa1758) )
+ ROM_REGION( 0x200000, "simm3.4", 0 )
+ ROM_LOAD( "sfiii3-simm3.4", 0x00000, 0x200000, CRC(6055e747) SHA1(3813852c5a4a5355ef739ca8f0913bbd390b984b) )
+ ROM_REGION( 0x200000, "simm3.5", 0 )
+ ROM_LOAD( "sfiii3-simm3.5", 0x00000, 0x200000, CRC(499aa6fc) SHA1(5b9b6eab3e99ff3e1d7c1f50b9d8bc6a81f3f8a9) )
+ ROM_REGION( 0x200000, "simm3.6", 0 )
+ ROM_LOAD( "sfiii3-simm3.6", 0x00000, 0x200000, CRC(6c13879e) SHA1(de189b0b8f42bc7dd89983e62bc2ecb4237b3277) )
+ ROM_REGION( 0x200000, "simm3.7", 0 )
+ ROM_LOAD( "sfiii3-simm3.7", 0x00000, 0x200000, CRC(cf4f8ede) SHA1(e0fb68fcb0e445f824c62fa828d6e1dcd7e3683a) )
+
+ ROM_REGION( 0x200000, "simm4.0", 0 )
+ ROM_LOAD( "sfiii3-simm4.0", 0x00000, 0x200000, CRC(091fd5ba) SHA1(3327ad7c2623c119bf728af717ea2ce3b74673a9) )
+ ROM_REGION( 0x200000, "simm4.1", 0 )
+ ROM_LOAD( "sfiii3-simm4.1", 0x00000, 0x200000, CRC(0bca8917) SHA1(b7b284e2f16f46d46bcfaae779b232c5b980924f) )
+ ROM_REGION( 0x200000, "simm4.2", 0 )
+ ROM_LOAD( "sfiii3-simm4.2", 0x00000, 0x200000, CRC(a0fd578b) SHA1(100c9db9f00ecd88d518076f5a0822e6ac3695b3) )
+ ROM_REGION( 0x200000, "simm4.3", 0 )
+ ROM_LOAD( "sfiii3-simm4.3", 0x00000, 0x200000, CRC(4bf8c699) SHA1(2c0b4288b5ebc5e54d9e782dfc39eb8c78fd4c21) )
+ ROM_REGION( 0x200000, "simm4.4", 0 )
+ ROM_LOAD( "sfiii3-simm4.4", 0x00000, 0x200000, CRC(137b8785) SHA1(56a579520a8ce2abbf36be57777f024e80474eee) )
+ ROM_REGION( 0x200000, "simm4.5", 0 )
+ ROM_LOAD( "sfiii3-simm4.5", 0x00000, 0x200000, CRC(4fb70671) SHA1(9aba83c18cfc099a5ce18793119bff0c2b9c777f) )
+ ROM_REGION( 0x200000, "simm4.6", 0 )
+ ROM_LOAD( "sfiii3-simm4.6", 0x00000, 0x200000, CRC(832374a4) SHA1(c84629e32fbf47cb7b5b4ee7555bfc2ac9b3857f) )
+ ROM_REGION( 0x200000, "simm4.7", 0 )
+ ROM_LOAD( "sfiii3-simm4.7", 0x00000, 0x200000, CRC(1c88576d) SHA1(0f039944d0c2305999ed5dbd351c3eb87812dc3b) )
+
+ ROM_REGION( 0x200000, "simm5.0", 0 )
+ ROM_LOAD( "sfiii3-simm5.0", 0x00000, 0x200000, CRC(c67d9190) SHA1(d265475244099d0ec153059986f3445c7bd910a3) )
+ ROM_REGION( 0x200000, "simm5.1", 0 )
+ ROM_LOAD( "sfiii3-simm5.1", 0x00000, 0x200000, CRC(6cb79868) SHA1(c94237f30e05bfcb2e23945530c812d9e4c73416) )
+ ROM_REGION( 0x200000, "simm5.2", 0 )
+ ROM_LOAD( "sfiii3-simm5.2", 0x00000, 0x200000, CRC(df69930e) SHA1(c76b7c559a1d5558138afbc796249efa2f49f6a8) )
+ ROM_REGION( 0x200000, "simm5.3", 0 )
+ ROM_LOAD( "sfiii3-simm5.3", 0x00000, 0x200000, CRC(333754e0) SHA1(4c18a569c26524a492ecd6f4c8b3c8e803a077d3) )
+ ROM_REGION( 0x200000, "simm5.4", 0 )
+ ROM_LOAD( "sfiii3-simm5.4", 0x00000, 0x200000, CRC(78f6d417) SHA1(a69577cc5399fcf0a24548661168f27f3e7e8e40) )
+ ROM_REGION( 0x200000, "simm5.5", 0 )
+ ROM_LOAD( "sfiii3-simm5.5", 0x00000, 0x200000, CRC(8ccad9b1) SHA1(f8bda399f87be2497b7ac39e9661f9863bf4f873) )
+ ROM_REGION( 0x200000, "simm5.6", 0 )
+ ROM_LOAD( "sfiii3n-simm5.6", 0x000000, 0x200000, CRC(85de59e5) SHA1(748b5c91f15777b85d8c1d35b685cd90d3185ec6) )
+ ROM_REGION( 0x200000, "simm5.7", 0 )
+ ROM_LOAD( "sfiii3n-simm5.7", 0x000000, 0x200000, CRC(ee7e29b3) SHA1(63dc30c6904ca2f58d229249bee5eef51fafa158) )
+
+ ROM_REGION( 0x200000, "simm6.0", 0 )
+ ROM_LOAD( "sfiii3-simm6.0", 0x00000, 0x200000, CRC(8da69042) SHA1(fd3d08295342635b2136e48d543c9350d287bb22) )
+ ROM_REGION( 0x200000, "simm6.1", 0 )
+ ROM_LOAD( "sfiii3-simm6.1", 0x00000, 0x200000, CRC(1c8c7ac4) SHA1(ac9f8353a4c356ef98aa7c226baba00b01f5a80f) )
+ ROM_REGION( 0x200000, "simm6.2", 0 )
+ ROM_LOAD( "sfiii3-simm6.2", 0x00000, 0x200000, CRC(a671341d) SHA1(636f4c04962bc1e1ddb29d2e01244b00389b234f) )
+ ROM_REGION( 0x200000, "simm6.3", 0 )
+ ROM_LOAD( "sfiii3-simm6.3", 0x00000, 0x200000, CRC(1a990249) SHA1(2acc639e2c0c53bf24096b8620eab090bc25d03b) )
+ ROM_REGION( 0x200000, "simm6.4", 0 )
+ ROM_LOAD( "sfiii3-simm6.4", 0x00000, 0x200000, CRC(20cb39ac) SHA1(7d13a0fea1ef719dd2ff77dfb547d53c6023cc9e) )
+ ROM_REGION( 0x200000, "simm6.5", 0 )
+ ROM_LOAD( "sfiii3-simm6.5", 0x00000, 0x200000, CRC(5f844b2f) SHA1(564e4934f89ed3b92a4c4874519f8f00f3b48696) )
+ ROM_REGION( 0x200000, "simm6.6", 0 )
+ ROM_LOAD( "sfiii3-simm6.6", 0x00000, 0x200000, CRC(450e8d28) SHA1(885db658132aa27926df617ec2d2a1f38abdbb60) )
+ ROM_REGION( 0x200000, "simm6.7", 0 )
+ ROM_LOAD( "sfiii3-simm6.7", 0x00000, 0x200000, CRC(cc5f4187) SHA1(248ddace21ed4736a56e92f77cc6ad219d7fef0b) )
+ROM_END
+
+
+ROM_START( sfiii3bh )
+ ROM_REGION32_BE( 0x080000, "bios", 0 )
+ ROM_LOAD( "sfiii3_japan_nocd.29f400.u2", 0x000000, 0x080000, CRC(1edc6366) SHA1(60b4b9adeb030a33059d74fdf03873029e465b52) )
+
+ ROM_REGION( 0x200000, "simm1.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm6.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm6.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm6.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm6.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm6.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm6.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm6.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm6.7", ROMREGION_ERASEFF )
+
+ ROM_REGION32_BE( USER4REGION_LENGTH, "old4", ROMREGION_ERASEFF )
+ ROM_LOAD( "10bh", 0x0000000, 0x800000, CRC(b18be430) SHA1(0ede4ab7c950dc838e01b8df9b9ddd725ff640ee) )
+ ROM_LOAD( "20", 0x0800000, 0x800000, CRC(5ca8faba) SHA1(71c12638ae7fa38b362d68c3ccb4bb3ccd67f0e9) )
+ ROM_REGION16_BE( USER5REGION_LENGTH, "old5", ROMREGION_ERASEFF )
+ ROM_LOAD( "30", 0x0000000, 0x800000, CRC(b37cf960) SHA1(60310f95e4ecedee85846c08ccba71e286cda73b) )
+ ROM_LOAD( "31", 0x0800000, 0x800000, CRC(450ec982) SHA1(1cb3626b8479997c4f1b29c41c81cac038fac31b) )
+ ROM_LOAD( "40", 0x1000000, 0x800000, CRC(632c965f) SHA1(9a46b759f5dee35411fd6446c2457c084a6dfcd8) )
+ ROM_LOAD( "41", 0x1800000, 0x800000, CRC(7a4c5f33) SHA1(f33cdfe247c7caf9d3d394499712f72ca930705e) )
+ ROM_LOAD( "50", 0x2000000, 0x800000, CRC(8562358e) SHA1(8ed78f6b106659a3e4d94f38f8a354efcbdf3aa7) )
+ ROM_LOAD( "51", 0x2800000, 0x800000, CRC(7baf234b) SHA1(38feb45d6315d771de5f9ae965119cb25bae2a1e) )
+ ROM_LOAD( "60", 0x3000000, 0x800000, CRC(bc9487b7) SHA1(bc2cd2d3551cc20aa231bba425ff721570735eba) )
+ ROM_LOAD( "61", 0x3800000, 0x800000, CRC(b813a1b1) SHA1(16de0ee3dfd6bf33d07b0ff2e797ebe2cfe6589e) )
+ROM_END
+
+ROM_START( sfiii3mh )
+ ROM_REGION32_BE( 0x080000, "bios", 0 )
+ ROM_LOAD( "sfiii3_japan_nocd.29f400.u2", 0x000000, 0x080000, CRC(1edc6366) SHA1(60b4b9adeb030a33059d74fdf03873029e465b52) )
+
+ ROM_REGION( 0x200000, "simm1.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm6.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm6.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm6.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm6.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm6.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm6.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm6.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm6.7", ROMREGION_ERASEFF )
+
+ ROM_REGION32_BE( USER4REGION_LENGTH, "old4", ROMREGION_ERASEFF )
+ ROM_LOAD( "10", 0x0000000, 0x800000, CRC(ba7f76b2) SHA1(6b396596dea009b34af17484919ae37eda53ec65) )
+ ROM_LOAD( "20", 0x0800000, 0x800000, CRC(5ca8faba) SHA1(71c12638ae7fa38b362d68c3ccb4bb3ccd67f0e9) )
+ ROM_REGION16_BE( USER5REGION_LENGTH, "old5", ROMREGION_ERASEFF )
+ ROM_LOAD( "30", 0x0000000, 0x800000, CRC(b37cf960) SHA1(60310f95e4ecedee85846c08ccba71e286cda73b) )
+ ROM_LOAD( "31", 0x0800000, 0x800000, CRC(450ec982) SHA1(1cb3626b8479997c4f1b29c41c81cac038fac31b) )
+ ROM_LOAD( "40", 0x1000000, 0x800000, CRC(632c965f) SHA1(9a46b759f5dee35411fd6446c2457c084a6dfcd8) )
+ ROM_LOAD( "41", 0x1800000, 0x800000, CRC(7a4c5f33) SHA1(f33cdfe247c7caf9d3d394499712f72ca930705e) )
+ ROM_LOAD( "50", 0x2000000, 0x800000, CRC(8562358e) SHA1(8ed78f6b106659a3e4d94f38f8a354efcbdf3aa7) )
+ ROM_LOAD( "51mh", 0x2800000, 0x800000, CRC(798b8f73) SHA1(96e81538b72302d799353f5a2c18ac957727d822) )
+ ROM_LOAD( "60", 0x3000000, 0x800000, CRC(bc9487b7) SHA1(bc2cd2d3551cc20aa231bba425ff721570735eba) )
+ ROM_LOAD( "61", 0x3800000, 0x800000, CRC(b813a1b1) SHA1(16de0ee3dfd6bf33d07b0ff2e797ebe2cfe6589e) )
+ROM_END
+
+ROM_START( sfiii3ng )
+ ROM_REGION32_BE( 0x080000, "bios", 0 )
+ ROM_LOAD( "sfiii3_japan_nocd.29f400.u2", 0x000000, 0x080000, CRC(1edc6366) SHA1(60b4b9adeb030a33059d74fdf03873029e465b52) )
+
+ ROM_REGION( 0x200000, "simm1.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm6.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm6.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm6.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm6.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm6.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm6.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm6.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm6.7", ROMREGION_ERASEFF )
+
+ ROM_REGION32_BE( USER4REGION_LENGTH, "old4", ROMREGION_ERASEFF )
+ ROM_LOAD( "10g", 0x0000000, 0x800000, CRC(22cc7988) SHA1(35eedb2cea53d88a6212ecec9f9810c69736481e) )
+ ROM_LOAD( "20", 0x0800000, 0x800000, CRC(5ca8faba) SHA1(71c12638ae7fa38b362d68c3ccb4bb3ccd67f0e9) )
+ ROM_REGION16_BE( USER5REGION_LENGTH, "old5", ROMREGION_ERASEFF )
+ ROM_LOAD( "30", 0x0000000, 0x800000, CRC(b37cf960) SHA1(60310f95e4ecedee85846c08ccba71e286cda73b) )
+ ROM_LOAD( "31", 0x0800000, 0x800000, CRC(450ec982) SHA1(1cb3626b8479997c4f1b29c41c81cac038fac31b) )
+ ROM_LOAD( "40", 0x1000000, 0x800000, CRC(632c965f) SHA1(9a46b759f5dee35411fd6446c2457c084a6dfcd8) )
+ ROM_LOAD( "41", 0x1800000, 0x800000, CRC(7a4c5f33) SHA1(f33cdfe247c7caf9d3d394499712f72ca930705e) )
+ ROM_LOAD( "50", 0x2000000, 0x800000, CRC(8562358e) SHA1(8ed78f6b106659a3e4d94f38f8a354efcbdf3aa7) )
+ ROM_LOAD( "51", 0x2800000, 0x800000, CRC(7baf234b) SHA1(38feb45d6315d771de5f9ae965119cb25bae2a1e) )
+ ROM_LOAD( "60", 0x3000000, 0x800000, CRC(bc9487b7) SHA1(bc2cd2d3551cc20aa231bba425ff721570735eba) )
+ ROM_LOAD( "61", 0x3800000, 0x800000, CRC(b813a1b1) SHA1(16de0ee3dfd6bf33d07b0ff2e797ebe2cfe6589e) )
+ROM_END
+
+ROM_START( sfiii3np )
+ ROM_REGION32_BE( 0x080000, "bios", 0 )
+ ROM_LOAD( "sfiii3_japan_nocd.29f400.u2", 0x000000, 0x080000, CRC(1edc6366) SHA1(60b4b9adeb030a33059d74fdf03873029e465b52) )
+
+ ROM_REGION( 0x200000, "simm1.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm6.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm6.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm6.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm6.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm6.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm6.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm6.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm6.7", ROMREGION_ERASEFF )
+
+ ROM_REGION32_BE( USER4REGION_LENGTH, "old4", ROMREGION_ERASEFF )
+ ROM_LOAD( "10p", 0x0000000, 0x800000, CRC(b13c6fa5) SHA1(5e8e3a3bfb2f5a18cf14a04e75a6abb5ddc807be) )
+ ROM_LOAD( "20", 0x0800000, 0x800000, CRC(5ca8faba) SHA1(71c12638ae7fa38b362d68c3ccb4bb3ccd67f0e9) )
+ ROM_REGION16_BE( USER5REGION_LENGTH, "old5", ROMREGION_ERASEFF )
+ ROM_LOAD( "30", 0x0000000, 0x800000, CRC(b37cf960) SHA1(60310f95e4ecedee85846c08ccba71e286cda73b) )
+ ROM_LOAD( "31", 0x0800000, 0x800000, CRC(450ec982) SHA1(1cb3626b8479997c4f1b29c41c81cac038fac31b) )
+ ROM_LOAD( "40", 0x1000000, 0x800000, CRC(632c965f) SHA1(9a46b759f5dee35411fd6446c2457c084a6dfcd8) )
+ ROM_LOAD( "41", 0x1800000, 0x800000, CRC(7a4c5f33) SHA1(f33cdfe247c7caf9d3d394499712f72ca930705e) )
+ ROM_LOAD( "50", 0x2000000, 0x800000, CRC(8562358e) SHA1(8ed78f6b106659a3e4d94f38f8a354efcbdf3aa7) )
+ ROM_LOAD( "51", 0x2800000, 0x800000, CRC(7baf234b) SHA1(38feb45d6315d771de5f9ae965119cb25bae2a1e) )
+ ROM_LOAD( "60", 0x3000000, 0x800000, CRC(bc9487b7) SHA1(bc2cd2d3551cc20aa231bba425ff721570735eba) )
+ ROM_LOAD( "61", 0x3800000, 0x800000, CRC(b813a1b1) SHA1(16de0ee3dfd6bf33d07b0ff2e797ebe2cfe6589e) )
+ROM_END
+
+
+ROM_START( sfiii4rd )
+ ROM_REGION32_BE( 0x080000, "bios", 0 ) /* bios region */
+ ROM_LOAD( "sfiii3_japan_nocd.29f400.u2", 0x000000, 0x080000, CRC(1edc6366) SHA1(60b4b9adeb030a33059d74fdf03873029e465b52) )
+
+ ROM_REGION( 0x200000, "simm1.0", 0 )
+ ROM_LOAD( "4rd-simm1.0", 0x00000, 0x200000, CRC(6bef26b4) SHA1(fb643d5fc5be4464374773a651ab4b5c51826047) ) // sldh
+ ROM_REGION( 0x200000, "simm1.1", 0 )
+ ROM_LOAD( "4rd-simm1.1", 0x00000, 0x200000, CRC(37ee88ed) SHA1(180e5ee309ad3898ac385b9add38fbec80cc1dce) ) // sldh
+ ROM_REGION( 0x200000, "simm1.2", 0 )
+ ROM_LOAD( "4rd-simm1.2", 0x00000, 0x200000, CRC(120139f0) SHA1(a5365ac00c75ee0e20f6c7b5a0bcee543c8582be) ) // sldh
+ ROM_REGION( 0x200000, "simm1.3", 0 )
+ ROM_LOAD( "4rd-simm1.3", 0x00000, 0x200000, CRC(b32e4fcc) SHA1(32bd359ca1747fa92691bd5471ba767456cc4dbb) ) // sldh
+
+ ROM_REGION( 0x200000, "simm2.0", 0 )
+ ROM_LOAD( "sfiii3-simm2.0", 0x00000, 0x200000, CRC(06eb969e) SHA1(d89f6a6585b76692d57d337f0f8186398fb056da) )
+ ROM_REGION( 0x200000, "simm2.1", 0 )
+ ROM_LOAD( "sfiii3-simm2.1", 0x00000, 0x200000, CRC(e7039f82) SHA1(8e81e66b5a4f45ae14b070a491bde47a6a74499f) )
+ ROM_REGION( 0x200000, "simm2.2", 0 )
+ ROM_LOAD( "sfiii3-simm2.2", 0x00000, 0x200000, CRC(645c96f7) SHA1(06d5a54874d4bf100b776131ec9060da209ad037) )
+ ROM_REGION( 0x200000, "simm2.3", 0 )
+ ROM_LOAD( "sfiii3-simm2.3", 0x00000, 0x200000, CRC(610efab1) SHA1(bbc21ed6ff6220ff6017a3f02ebd9a341fbc9040) )
+
+ ROM_REGION( 0x200000, "simm3.0", 0 )
+ ROM_LOAD( "sfiii3-simm3.0", 0x00000, 0x200000, CRC(7baa1f79) SHA1(3f409df28c24dd7221966b5340d59898ea756b6f) )
+ ROM_REGION( 0x200000, "simm3.1", 0 )
+ ROM_LOAD( "sfiii3-simm3.1", 0x00000, 0x200000, CRC(234bf8fe) SHA1(2191781ae4d726cab28de97f27efa4a13f3bdd69) )
+ ROM_REGION( 0x200000, "simm3.2", 0 )
+ ROM_LOAD( "sfiii3-simm3.2", 0x00000, 0x200000, CRC(d9ebc308) SHA1(af6a0dca77e5181c9f20533a06760a782c5fd51d) )
+ ROM_REGION( 0x200000, "simm3.3", 0 )
+ ROM_LOAD( "sfiii3-simm3.3", 0x00000, 0x200000, CRC(293cba77) SHA1(294604cacdc24261aec4d39e489de91c41fa1758) )
+ ROM_REGION( 0x200000, "simm3.4", 0 )
+ ROM_LOAD( "sfiii3-simm3.4", 0x00000, 0x200000, CRC(6055e747) SHA1(3813852c5a4a5355ef739ca8f0913bbd390b984b) )
+ ROM_REGION( 0x200000, "simm3.5", 0 )
+ ROM_LOAD( "sfiii3-simm3.5", 0x00000, 0x200000, CRC(499aa6fc) SHA1(5b9b6eab3e99ff3e1d7c1f50b9d8bc6a81f3f8a9) )
+ ROM_REGION( 0x200000, "simm3.6", 0 )
+ ROM_LOAD( "sfiii3-simm3.6", 0x00000, 0x200000, CRC(6c13879e) SHA1(de189b0b8f42bc7dd89983e62bc2ecb4237b3277) )
+ ROM_REGION( 0x200000, "simm3.7", 0 )
+ ROM_LOAD( "sfiii3-simm3.7", 0x00000, 0x200000, CRC(cf4f8ede) SHA1(e0fb68fcb0e445f824c62fa828d6e1dcd7e3683a) )
+
+ ROM_REGION( 0x200000, "simm4.0", 0 )
+ ROM_LOAD( "sfiii3-simm4.0", 0x00000, 0x200000, CRC(091fd5ba) SHA1(3327ad7c2623c119bf728af717ea2ce3b74673a9) )
+ ROM_REGION( 0x200000, "simm4.1", 0 )
+ ROM_LOAD( "sfiii3-simm4.1", 0x00000, 0x200000, CRC(0bca8917) SHA1(b7b284e2f16f46d46bcfaae779b232c5b980924f) )
+ ROM_REGION( 0x200000, "simm4.2", 0 )
+ ROM_LOAD( "sfiii3-simm4.2", 0x00000, 0x200000, CRC(a0fd578b) SHA1(100c9db9f00ecd88d518076f5a0822e6ac3695b3) )
+ ROM_REGION( 0x200000, "simm4.3", 0 )
+ ROM_LOAD( "sfiii3-simm4.3", 0x00000, 0x200000, CRC(4bf8c699) SHA1(2c0b4288b5ebc5e54d9e782dfc39eb8c78fd4c21) )
+ ROM_REGION( 0x200000, "simm4.4", 0 )
+ ROM_LOAD( "sfiii3-simm4.4", 0x00000, 0x200000, CRC(137b8785) SHA1(56a579520a8ce2abbf36be57777f024e80474eee) )
+ ROM_REGION( 0x200000, "simm4.5", 0 )
+ ROM_LOAD( "sfiii3-simm4.5", 0x00000, 0x200000, CRC(4fb70671) SHA1(9aba83c18cfc099a5ce18793119bff0c2b9c777f) )
+ ROM_REGION( 0x200000, "simm4.6", 0 )
+ ROM_LOAD( "sfiii3-simm4.6", 0x00000, 0x200000, CRC(832374a4) SHA1(c84629e32fbf47cb7b5b4ee7555bfc2ac9b3857f) )
+ ROM_REGION( 0x200000, "simm4.7", 0 )
+ ROM_LOAD( "sfiii3-simm4.7", 0x00000, 0x200000, CRC(1c88576d) SHA1(0f039944d0c2305999ed5dbd351c3eb87812dc3b) )
+
+ ROM_REGION( 0x200000, "simm5.0", 0 )
+ ROM_LOAD( "sfiii3-simm5.0", 0x00000, 0x200000, CRC(c67d9190) SHA1(d265475244099d0ec153059986f3445c7bd910a3) )
+ ROM_REGION( 0x200000, "simm5.1", 0 )
+ ROM_LOAD( "sfiii3-simm5.1", 0x00000, 0x200000, CRC(6cb79868) SHA1(c94237f30e05bfcb2e23945530c812d9e4c73416) )
+ ROM_REGION( 0x200000, "simm5.2", 0 )
+ ROM_LOAD( "sfiii3-simm5.2", 0x00000, 0x200000, CRC(df69930e) SHA1(c76b7c559a1d5558138afbc796249efa2f49f6a8) )
+ ROM_REGION( 0x200000, "simm5.3", 0 )
+ ROM_LOAD( "sfiii3-simm5.3", 0x00000, 0x200000, CRC(333754e0) SHA1(4c18a569c26524a492ecd6f4c8b3c8e803a077d3) )
+ ROM_REGION( 0x200000, "simm5.4", 0 )
+ ROM_LOAD( "sfiii3-simm5.4", 0x00000, 0x200000, CRC(78f6d417) SHA1(a69577cc5399fcf0a24548661168f27f3e7e8e40) )
+ ROM_REGION( 0x200000, "simm5.5", 0 )
+ ROM_LOAD( "sfiii3-simm5.5", 0x00000, 0x200000, CRC(8ccad9b1) SHA1(f8bda399f87be2497b7ac39e9661f9863bf4f873) )
+ ROM_REGION( 0x200000, "simm5.6", 0 )
+ ROM_LOAD( "4rd-simm5.6", 0x00000, 0x200000, CRC(e9b61a56) SHA1(9277ac5da4715aa5325ae9f8c055f1e826b4ce54) )
+ ROM_REGION( 0x200000, "simm5.7", 0 )
+ ROM_LOAD( "4rd-simm5.7", 0x00000, 0x200000, CRC(8db3a249) SHA1(db38963ce011535a95f11426c17fb3eeda300917) )
+
+ ROM_REGION( 0x200000, "simm6.0", 0 )
+ ROM_LOAD( "sfiii3-simm6.0", 0x00000, 0x200000, CRC(8da69042) SHA1(fd3d08295342635b2136e48d543c9350d287bb22) )
+ ROM_REGION( 0x200000, "simm6.1", 0 )
+ ROM_LOAD( "sfiii3-simm6.1", 0x00000, 0x200000, CRC(1c8c7ac4) SHA1(ac9f8353a4c356ef98aa7c226baba00b01f5a80f) )
+ ROM_REGION( 0x200000, "simm6.2", 0 )
+ ROM_LOAD( "sfiii3-simm6.2", 0x00000, 0x200000, CRC(a671341d) SHA1(636f4c04962bc1e1ddb29d2e01244b00389b234f) )
+ ROM_REGION( 0x200000, "simm6.3", 0 )
+ ROM_LOAD( "sfiii3-simm6.3", 0x00000, 0x200000, CRC(1a990249) SHA1(2acc639e2c0c53bf24096b8620eab090bc25d03b) )
+ ROM_REGION( 0x200000, "simm6.4", 0 )
+ ROM_LOAD( "sfiii3-simm6.4", 0x00000, 0x200000, CRC(20cb39ac) SHA1(7d13a0fea1ef719dd2ff77dfb547d53c6023cc9e) )
+ ROM_REGION( 0x200000, "simm6.5", 0 )
+ ROM_LOAD( "sfiii3-simm6.5", 0x00000, 0x200000, CRC(5f844b2f) SHA1(564e4934f89ed3b92a4c4874519f8f00f3b48696) )
+ ROM_REGION( 0x200000, "simm6.6", 0 )
+ ROM_LOAD( "sfiii3-simm6.6", 0x00000, 0x200000, CRC(450e8d28) SHA1(885db658132aa27926df617ec2d2a1f38abdbb60) )
+ ROM_REGION( 0x200000, "simm6.7", 0 )
+ ROM_LOAD( "sfiii3-simm6.7", 0x00000, 0x200000, CRC(cc5f4187) SHA1(248ddace21ed4736a56e92f77cc6ad219d7fef0b) )
+ROM_END
+
+
+
+GAME( 2009, jojobbh2, jojoba, jojoba, cps3_jojo, cps3_hbmame, jojoban, ROT0, "Pipi899", "JoJo's Bizarre Adventure (Boss v2.0 hack by Pipi899 2009-08-08)", 0 )
+GAME( 2009, jojobbss, jojoba, jojoba, cps3_jojo, cps3_hbmame, jojoban, ROT0, "Pipi899", "JoJo's Bizarre Adventure (Boss hack by Pipi899 2009-07-15)", 0 )
+GAME( 2009, jojobpow, jojoba, jojoba, cps3_jojo, cps3_hbmame, jojoban, ROT0, "Pipi899", "JoJo's Bizarre Adventure (Power hack by Pipi899 2009-07-15)", 0 )
+GAME( 2009, jojonbss, jojo, jojo, cps3_jojo, cps3_hbmame, jojon, ROT0, "Pipi899", "JoJo's Venture (Boss hack by Pipi899 2009-07-09)", 0 )
+GAME( 2009, jojonpow, jojo, jojo, cps3_jojo, cps3_hbmame, jojon, ROT0, "Pipi899", "JoJo's Venture (Power hack by Pipi899 2009-07-11)", 0 )
+GAME( 1996, redeartn, redearth, redeartn, cps3_ren, cps3_hbmame, redearth, ROT0, "Capcom", "Red Earth (Asia 961121, NO CD)", 0 )
+GAME( 1996, redeartno, redearth, redeartn, cps3_ren, cps3_hbmame, redeartno, ROT0, "Capcom", "Red Earth (Euro 961121, NO CD)", 0 )
+GAME( 2009, redearex, redearth, redeartn, cps3_ren, cps3_hbmame, redeartno, ROT0, "Pipi899", "Red Earth (Ex Super Version hack by Pipi899 2009-09-08)", 0 )
+GAME( 2009, sfiiibhp, sfiii, sfiii, cps3, cps3_hbmame, sfiiin, ROT0, "Pipi899", "Street Fighter III: New Generation (Boss hack by Pipi899 2009-08-08)", 0 )
+GAME( 2009, sfiiipmp, sfiii, sfiii, cps3, cps3_hbmame, sfiiin, ROT0, "Pipi899", "Street Fighter III: New Generation (Power hack by Pipi899 2009-07-06)", 0 )
+GAMEL(1997, sfiii2bh, sfiii2, sfiii2, cps3, cps3_hbmame, sfiii2n, ROT0, "Yumeji", "Street Fighter III 2nd Impact: Giant Attack (Boss hack by Yumeji)", 0, layout_sfiii2 )
+GAMEL(2009, sfiii2np, sfiii2, sfiii2, cps3, cps3_hbmame, sfiii2n, ROT0, "Pipi899", "Street Fighter III 2nd Impact: Giant Attack (Power hack by Pipi899 2009-07-14)", 0, layout_sfiii2 )
+GAMEL(1997, sfiii2pl, sfiii2, sfiii2, cps3, cps3_hbmame, sfiii2n, ROT0, "Krysofun", "Street Fighter III 2nd Impact: Giant Attack (Plus v1.0 hack by Krysofun)", 0, layout_sfiii2 )
+GAME( 2013, sfiii3an, sfiii3, sfiii3, cps3, cps3_state, sfiii3, ROT0, "hack", "Street Fighter III 3rd Strike: Ford Strike (Japan 990608, NO CD)", 0 )
+GAME( 1999, sfiii3bh, sfiii3, sfiii3, cps3, cps3_hbmame, sfiii3n, ROT0, "Yumeji", "Street Fighter III 3rd Strike: Fight for the Future (Boss hack by Yumeji)", 0 )
+GAME( 1999, sfiii3mh, sfiii3, sfiii3, cps3, cps3_hbmame, sfiii3n, ROT0, "hack", "Street Fighter III 3rd Strike: Fight for the Future (Makoto Color hack)", 0 )
+GAME( 2009, sfiii3ng, sfiii3, sfiii3, cps3, cps3_hbmame, sfiii3n, ROT0, "Pipi899", "Street Fighter III 3rd Strike: Fight for the Future (Gill Unable Reactivating hack by Pipi899 2009-07-14)", 0 )
+GAME( 2009, sfiii3np, sfiii3, sfiii3, cps3, cps3_hbmame, sfiii3n, ROT0, "Pipi899", "Street Fighter III 3rd Strike: Fight for the Future (Power hack by Pipi899 2009-07-14)", 0 )
+GAME( 2013, sfiii4rd, sfiii3, sfiii3, cps3, cps3_state, sfiii3, ROT0, "hack", "Street Fighter III 3rd Strike: 4rd Arrange Edition (Japan 990608, NO CD)", 0 )
+
+
+//PSmame (c) galston90
+
+ROM_START( jojos01 )
+ ROM_REGION32_BE( 0x080000, "bios", 0 )
+ ROM_LOAD( "jojoba_brazil_nocd.29f400.u2", 0x000000, 0x080000, CRC(91d5aea7) SHA1(f33bb233b3be1f7ea63a14c849db8cdcf8710da1) )
+
+ ROM_REGION( 0x200000, "simm1.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.7", ROMREGION_ERASEFF )
+
+ ROM_REGION32_BE( USER4REGION_LENGTH, "old4", ROMREGION_ERASEFF )
+ ROM_LOAD( "10bpow", 0x000000, 0x800000, CRC(d616f8d4) SHA1(665c353fd32183c0bf18b70a48f84f469c00fddc) )
+ ROM_LOAD( "20", 0x800000, 0x800000, CRC(1293892b) SHA1(b1beafac1a9c4b6d0640658af8a3eb359e76eb25) )
+ ROM_REGION16_BE( USER5REGION_LENGTH, "old5", ROMREGION_ERASEFF )
+ ROM_LOAD( "30", 0x0000000, 0x800000, CRC(d25c5005) SHA1(93a19a14783d604bb42feffbe23eb370d11281e8) )
+ ROM_LOAD( "31", 0x0800000, 0x800000, CRC(51bb3dba) SHA1(39e95a05882909820b3efa6a3b457b8574012638) )
+ ROM_LOAD( "40", 0x1000000, 0x800000, CRC(94dc26d4) SHA1(5ae2815142972f322886eea4885baf2b82563ab1) )
+ ROM_LOAD( "41", 0x1800000, 0x800000, CRC(1c53ee62) SHA1(e096bf3cb6fbc3d45955787b8f3213abcd76d120) )
+ ROM_LOAD( "50", 0x2000000, 0x800000, CRC(36e416ed) SHA1(58d0e95cc13f39bc171165468ce72f4f17b8d8d6) )
+ ROM_LOAD( "51", 0x2800000, 0x800000, CRC(eedf19ca) SHA1(a7660bf9ff87911afb4f83b64456245059986830) )
+ROM_END
+
+ROM_START( jojos02 )
+ ROM_REGION32_BE( 0x080000, "bios", 0 )
+ ROM_LOAD( "jojoba_asia_nocd.29f400.u2", 0x000000, 0x080000, CRC(374631bf) SHA1(df7090aea24853668c57fd8385d6b63fcbab6c9a) )
+
+ ROM_REGION( 0x200000, "simm1.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.7", ROMREGION_ERASEFF )
+
+ ROM_REGION32_BE( USER4REGION_LENGTH, "old4", ROMREGION_ERASEFF )
+ ROM_LOAD( "10bpow", 0x000000, 0x800000, CRC(d616f8d4) SHA1(665c353fd32183c0bf18b70a48f84f469c00fddc) )
+ ROM_LOAD( "20", 0x800000, 0x800000, CRC(1293892b) SHA1(b1beafac1a9c4b6d0640658af8a3eb359e76eb25) )
+ ROM_REGION16_BE( USER5REGION_LENGTH, "old5", ROMREGION_ERASEFF )
+ ROM_LOAD( "30", 0x0000000, 0x800000, CRC(d25c5005) SHA1(93a19a14783d604bb42feffbe23eb370d11281e8) )
+ ROM_LOAD( "31", 0x0800000, 0x800000, CRC(51bb3dba) SHA1(39e95a05882909820b3efa6a3b457b8574012638) )
+ ROM_LOAD( "40", 0x1000000, 0x800000, CRC(94dc26d4) SHA1(5ae2815142972f322886eea4885baf2b82563ab1) )
+ ROM_LOAD( "41", 0x1800000, 0x800000, CRC(1c53ee62) SHA1(e096bf3cb6fbc3d45955787b8f3213abcd76d120) )
+ ROM_LOAD( "50", 0x2000000, 0x800000, CRC(36e416ed) SHA1(58d0e95cc13f39bc171165468ce72f4f17b8d8d6) )
+ ROM_LOAD( "51", 0x2800000, 0x800000, CRC(eedf19ca) SHA1(a7660bf9ff87911afb4f83b64456245059986830) )
+ROM_END
+
+ROM_START( jojos03 )
+ ROM_REGION32_BE( 0x080000, "bios", 0 )
+ ROM_LOAD( "jojoba_hispanic_nocd.29f400.u2", 0x000000, 0x080000, CRC(eb3886ed) SHA1(6de80ad634c6350d41a8d02dbcb29246f7abadae) )
+
+ ROM_REGION( 0x200000, "simm1.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.7", ROMREGION_ERASEFF )
+
+ ROM_REGION32_BE( USER4REGION_LENGTH, "old4", ROMREGION_ERASEFF )
+ ROM_LOAD( "10bpow", 0x000000, 0x800000, CRC(d616f8d4) SHA1(665c353fd32183c0bf18b70a48f84f469c00fddc) )
+ ROM_LOAD( "20", 0x800000, 0x800000, CRC(1293892b) SHA1(b1beafac1a9c4b6d0640658af8a3eb359e76eb25) )
+ ROM_REGION16_BE( USER5REGION_LENGTH, "old5", ROMREGION_ERASEFF )
+ ROM_LOAD( "30", 0x0000000, 0x800000, CRC(d25c5005) SHA1(93a19a14783d604bb42feffbe23eb370d11281e8) )
+ ROM_LOAD( "31", 0x0800000, 0x800000, CRC(51bb3dba) SHA1(39e95a05882909820b3efa6a3b457b8574012638) )
+ ROM_LOAD( "40", 0x1000000, 0x800000, CRC(94dc26d4) SHA1(5ae2815142972f322886eea4885baf2b82563ab1) )
+ ROM_LOAD( "41", 0x1800000, 0x800000, CRC(1c53ee62) SHA1(e096bf3cb6fbc3d45955787b8f3213abcd76d120) )
+ ROM_LOAD( "50", 0x2000000, 0x800000, CRC(36e416ed) SHA1(58d0e95cc13f39bc171165468ce72f4f17b8d8d6) )
+ ROM_LOAD( "51", 0x2800000, 0x800000, CRC(eedf19ca) SHA1(a7660bf9ff87911afb4f83b64456245059986830) )
+ROM_END
+
+ROM_START( jojos04 )
+ ROM_REGION32_BE( 0x080000, "bios", 0 )
+ ROM_LOAD( "jojoba_oceania_nocd.29f400.u2", 0x000000, 0x080000, CRC(b8714961) SHA1(6be0676ac339e55597de9c84aac934bad45cec91) )
+
+ ROM_REGION( 0x200000, "simm1.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.7", ROMREGION_ERASEFF )
+
+ ROM_REGION32_BE( USER4REGION_LENGTH, "old4", ROMREGION_ERASEFF )
+ ROM_LOAD( "10bpow", 0x000000, 0x800000, CRC(d616f8d4) SHA1(665c353fd32183c0bf18b70a48f84f469c00fddc) )
+ ROM_LOAD( "20", 0x800000, 0x800000, CRC(1293892b) SHA1(b1beafac1a9c4b6d0640658af8a3eb359e76eb25) )
+ ROM_REGION16_BE( USER5REGION_LENGTH, "old5", ROMREGION_ERASEFF )
+ ROM_LOAD( "30", 0x0000000, 0x800000, CRC(d25c5005) SHA1(93a19a14783d604bb42feffbe23eb370d11281e8) )
+ ROM_LOAD( "31", 0x0800000, 0x800000, CRC(51bb3dba) SHA1(39e95a05882909820b3efa6a3b457b8574012638) )
+ ROM_LOAD( "40", 0x1000000, 0x800000, CRC(94dc26d4) SHA1(5ae2815142972f322886eea4885baf2b82563ab1) )
+ ROM_LOAD( "41", 0x1800000, 0x800000, CRC(1c53ee62) SHA1(e096bf3cb6fbc3d45955787b8f3213abcd76d120) )
+ ROM_LOAD( "50", 0x2000000, 0x800000, CRC(36e416ed) SHA1(58d0e95cc13f39bc171165468ce72f4f17b8d8d6) )
+ ROM_LOAD( "51", 0x2800000, 0x800000, CRC(eedf19ca) SHA1(a7660bf9ff87911afb4f83b64456245059986830) )
+ROM_END
+
+ROM_START( jojos05 )
+ ROM_REGION32_BE( 0x080000, "bios", 0 )
+ ROM_LOAD( "jojoba_usa_nocd.29f400.u2", 0x000000, 0x080000, CRC(c29c612b) SHA1(4ec18f5a2cfff259385751738bc15e8b5fc52304) )
+
+ ROM_REGION( 0x200000, "simm1.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.7", ROMREGION_ERASEFF )
+
+ ROM_REGION32_BE( USER4REGION_LENGTH, "old4", ROMREGION_ERASEFF )
+ ROM_LOAD( "10bpow", 0x000000, 0x800000, CRC(d616f8d4) SHA1(665c353fd32183c0bf18b70a48f84f469c00fddc) )
+ ROM_LOAD( "20", 0x800000, 0x800000, CRC(1293892b) SHA1(b1beafac1a9c4b6d0640658af8a3eb359e76eb25) )
+ ROM_REGION16_BE( USER5REGION_LENGTH, "old5", ROMREGION_ERASEFF )
+ ROM_LOAD( "30", 0x0000000, 0x800000, CRC(d25c5005) SHA1(93a19a14783d604bb42feffbe23eb370d11281e8) )
+ ROM_LOAD( "31", 0x0800000, 0x800000, CRC(51bb3dba) SHA1(39e95a05882909820b3efa6a3b457b8574012638) )
+ ROM_LOAD( "40", 0x1000000, 0x800000, CRC(94dc26d4) SHA1(5ae2815142972f322886eea4885baf2b82563ab1) )
+ ROM_LOAD( "41", 0x1800000, 0x800000, CRC(1c53ee62) SHA1(e096bf3cb6fbc3d45955787b8f3213abcd76d120) )
+ ROM_LOAD( "50", 0x2000000, 0x800000, CRC(36e416ed) SHA1(58d0e95cc13f39bc171165468ce72f4f17b8d8d6) )
+ ROM_LOAD( "51", 0x2800000, 0x800000, CRC(eedf19ca) SHA1(a7660bf9ff87911afb4f83b64456245059986830) )
+ROM_END
+
+ROM_START( jojos06 )
+ ROM_REGION32_BE( 0x080000, "bios", 0 )
+ ROM_LOAD( "jojoba_japan_nocd.29f400.u2", 0x000000, 0x080000, CRC(4dab19f5) SHA1(ba07190e7662937fc267f07285c51e99a45c061e) )
+
+ ROM_REGION( 0x200000, "simm1.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm1.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm2.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm3.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm4.7", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.0", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.2", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.3", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.4", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.5", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.6", ROMREGION_ERASEFF )
+ ROM_REGION( 0x200000, "simm5.7", ROMREGION_ERASEFF )
+
+ ROM_REGION32_BE( USER4REGION_LENGTH, "old4", ROMREGION_ERASEFF )
+ ROM_LOAD( "10hc01", 0x000000, 0x800000, CRC(3cc6279e) SHA1(7b11edb96af41394fdb20774e2f16e0cc47f0a80) )
+ ROM_LOAD( "20", 0x800000, 0x800000, CRC(1293892b) SHA1(b1beafac1a9c4b6d0640658af8a3eb359e76eb25) )
+ ROM_REGION16_BE( USER5REGION_LENGTH, "old5", ROMREGION_ERASEFF )
+ ROM_LOAD( "30", 0x0000000, 0x800000, CRC(d25c5005) SHA1(93a19a14783d604bb42feffbe23eb370d11281e8) )
+ ROM_LOAD( "31", 0x0800000, 0x800000, CRC(51bb3dba) SHA1(39e95a05882909820b3efa6a3b457b8574012638) )
+ ROM_LOAD( "40", 0x1000000, 0x800000, CRC(94dc26d4) SHA1(5ae2815142972f322886eea4885baf2b82563ab1) )
+ ROM_LOAD( "41", 0x1800000, 0x800000, CRC(1c53ee62) SHA1(e096bf3cb6fbc3d45955787b8f3213abcd76d120) )
+ ROM_LOAD( "50", 0x2000000, 0x800000, CRC(36e416ed) SHA1(58d0e95cc13f39bc171165468ce72f4f17b8d8d6) )
+ ROM_LOAD( "51", 0x2800000, 0x800000, CRC(eedf19ca) SHA1(a7660bf9ff87911afb4f83b64456245059986830) )
+ROM_END
+
+/*************************************
+ *
+ * Game driver(s)
+ *
+ *************************************/
+// Proyecto Shadows Mame Build Plus
+/* YEAR NAME PARENT MACHINE INPUT INIT MONITOR COMPANY FULLNAME FLAGS */
+// JoJo's Bizarre Adventure
+GAME( 2009, jojos01, jojoba, jojoba, cps3_jojo, cps3_hbmame, jojoban, ROT0, "Hacks", "JoJo's Bizarre Adventure (Language Brazil + Power Set 01 )", 0 )
+GAME( 2009, jojos02, jojoba, jojoba, cps3_jojo, cps3_hbmame, jojoban, ROT0, "Hacks", "JoJo's Bizarre Adventure (Language Asia + Power Set 02 )", 0 )
+GAME( 2009, jojos03, jojoba, jojoba, cps3_jojo, cps3_hbmame, jojoban, ROT0, "Hacks", "JoJo's Bizarre Adventure (Language Hispanic + Power Set 03 )", 0 )
+GAME( 2009, jojos04, jojoba, jojoba, cps3_jojo, cps3_hbmame, jojoban, ROT0, "Hacks", "JoJo's Bizarre Adventure (Language Oceania + Power Set 04 )", 0 )
+GAME( 2009, jojos05, jojoba, jojoba, cps3_jojo, cps3_hbmame, jojoban, ROT0, "Hacks", "JoJo's Bizarre Adventure (Language U.S.A + Power Set 05 )", 0 )
+GAME( 2009, jojos06, jojoba, jojoba, cps3_jojo, cps3_hbmame, jojoban, ROT0, "Hacks", "JoJo's Bizarre Adventure (Max Power)", 0 )
+
diff --git a/src/hbmame/drivers/dec0.cpp b/src/hbmame/drivers/dec0.cpp
new file mode 100644
index 00000000000..606558a7e56
--- /dev/null
+++ b/src/hbmame/drivers/dec0.cpp
@@ -0,0 +1,106 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/dec0.cpp"
+
+ROM_START( baddudef )
+ ROM_REGION( 0x60000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "baddudef.4", 0x00000, 0x10000, CRC(1a0667ae) SHA1(a530bfe91aa8b489ef7c1368b81983e760d0d993) )
+ ROM_LOAD16_BYTE( "baddudef.1", 0x00001, 0x10000, CRC(14d71614) SHA1(282fe93c04791e48a963ee78e69753e54c51e779) )
+ ROM_LOAD16_BYTE( "ei06.6c", 0x40000, 0x10000, CRC(3ff8da57) SHA1(eea8125a3eac33d76d22e72b69633eaae138efe5) )
+ ROM_LOAD16_BYTE( "ei03.6a", 0x40001, 0x10000, CRC(f8f2bd94) SHA1(622c66fea00cabb2cce16bf621b07d38a660708d) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound CPU */
+ ROM_LOAD( "ei07.8a", 0x8000, 0x8000, CRC(9fb1ef4b) SHA1(f4dd0773be93c2ad8b0faacd12939c531b5aa130) )
+
+ ROM_REGION( 0x10000, "gfx1", 0 ) /* chars */
+ ROM_LOAD( "ei25.15j", 0x00000, 0x08000, CRC(bcf59a69) SHA1(486727e19c12ea55b47e2ef773d0d0471cf50083) )
+ ROM_LOAD( "baddudef.26", 0x08000, 0x08000, CRC(bb8d93d0) SHA1(64a462c86cf270b3aa3e359b0f423a816e9dafb6) )
+
+ ROM_REGION( 0x40000, "gfx2", 0 ) /* tiles */
+ ROM_LOAD( "ei18.14d", 0x00000, 0x10000, CRC(05cfc3e5) SHA1(a0163921c77dc9706463a402c3dd45ec4341cd21) )
+ ROM_LOAD( "ei20.17d", 0x10000, 0x10000, CRC(e11e988f) SHA1(0c59f0d8d1abe414c7e1ebd49d454179fed2cd00) )
+ ROM_LOAD( "ei22.14f", 0x20000, 0x10000, CRC(b893d880) SHA1(99e228174677f2e3e96154f77bfa9bf0f1c0a6a5) )
+ ROM_LOAD( "ei24.17f", 0x30000, 0x10000, CRC(6f226dda) SHA1(65ebb16a292c57d49c135fce7ed7537146226eb5) )
+
+ ROM_REGION( 0x20000, "gfx3", 0 ) /* tiles */
+ ROM_LOAD( "ei30.9j", 0x08000, 0x08000, CRC(982da0d1) SHA1(d819a587905624d793988f2ea726783da527d9f2) )
+ ROM_CONTINUE( 0x00000, 0x08000 ) /* the two halves are swapped */
+ ROM_LOAD( "ei28.9f", 0x18000, 0x08000, CRC(f01ebb3b) SHA1(1686690cb0c87d9e687b2abb4896cf285ab8378f) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x80000, "gfx4", 0 ) /* sprites */
+ ROM_LOAD( "ei15.16c", 0x00000, 0x10000, CRC(a38a7d30) SHA1(5cb1fb97605829fc733c79a7e169fa52adc6863b) )
+ ROM_LOAD( "ei16.17c", 0x10000, 0x08000, CRC(17e42633) SHA1(405f5296a741901677cca978a1b287d894eb1e54) )
+ ROM_LOAD( "ei11.16a", 0x20000, 0x10000, CRC(3a77326c) SHA1(4de81752329cde6210a9c250a9f8ebe3dad9fe92) )
+ ROM_LOAD( "ei12.17a", 0x30000, 0x08000, CRC(fea2a134) SHA1(525dd5f48993db1fe1e3c095442884178f75e8e0) )
+ ROM_LOAD( "ei13.13c", 0x40000, 0x10000, CRC(e5ae2751) SHA1(4e4a3c68b11e9b0c8da70121b23296128063d4e9) )
+ ROM_LOAD( "ei14.14c", 0x50000, 0x08000, CRC(e83c760a) SHA1(d08db381658b8b3288c5eaa9048a906126e0f712) )
+ ROM_LOAD( "ei09.13a", 0x60000, 0x10000, CRC(6901e628) SHA1(1162c8cee20450780774cad54a9af40ebf0f0826) )
+ ROM_LOAD( "ei10.14a", 0x70000, 0x08000, CRC(eeee8a1a) SHA1(2bf8378ff38f6a7c7cbd4cbd489de25cb1f0fe71) )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* ADPCM samples */
+ ROM_LOAD( "ei08.2c", 0x0000, 0x10000, CRC(3c87463e) SHA1(f17c98507b562e91e9b27599614b3249fe68ff7a) )
+
+ ROM_REGION( 0x1000, "mcu", 0 ) /* i8751 microcontroller */
+ ROM_LOAD( "ei31.9a", 0x0000, 0x1000, CRC(2a8745d2) SHA1(f15ab17b1e7836d603135f5c66ca2e3d72f6e4a2) )
+ROM_END
+
+// There are 3 screens. Press 1 very lightly to advance.
+// On first screen, press Left & Right to move 'CHAOS' around.
+ROM_START( decodemo )
+ ROM_REGION( 0x60000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "decodemo.4", 0x00000, 0x10000, CRC(7cb53ab2) SHA1(c06f8173f5b27b647b186e1c3a198ec22dab4950) )
+ ROM_LOAD16_BYTE( "decodemo.1", 0x00001, 0x10000, CRC(920dd0bf) SHA1(e69e60121812716b55f4e9c4b3f4993171c5296a) )
+ ROM_LOAD16_BYTE( "decodemo.6", 0x40000, 0x10000, CRC(d7978eeb) SHA1(1adc95bebe9eea8c112d40cd04ab7a8d75c4f961) )
+ ROM_LOAD16_BYTE( "decodemo.3", 0x40001, 0x10000, CRC(d7978eeb) SHA1(1adc95bebe9eea8c112d40cd04ab7a8d75c4f961) )
+
+ // The instruction [33C0 0030 C003] [move.w D0, $30C003.l] is considered illegal, we need to patch out all 3 occurrences
+ //ROM_FILL( 0x04ba, 1, 0x4e )
+ //ROM_FILL( 0x04bb, 1, 0x71 ) /* write a nop instruction [4e71] */
+ //ROM_COPY( "maincpu", 0x04ba, 0x04bc, 2 ) /* The faulty instruction is 6 bytes long, so we need 3 nops */
+ //ROM_COPY( "maincpu", 0x04ba, 0x04be, 2 )
+ //ROM_COPY( "maincpu", 0x04ba, 0x04e8, 6 ) /* copy the 3 nops to 0x4e8 */
+ //ROM_COPY( "maincpu", 0x04ba, 0x096e, 6 ) /* and 0x96e */
+
+ // Text stopped working when bac06 device was rewritten. We send a 1 to pf_control_0 to fix it.
+ ROM_FILL( 0x04d8, 1, 0x33 )
+ ROM_FILL( 0x04d9, 1, 0xfc )
+ ROM_FILL( 0x04da, 6, 0x00 )
+ ROM_FILL( 0x04db, 1, 0x01 )
+ ROM_FILL( 0x04dd, 1, 0x24 )
+ ROM_FILL( 0x04e0, 1, 0x67 )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound CPU */
+ ROM_LOAD( "ei07.8a", 0x8000, 0x8000, CRC(9fb1ef4b) SHA1(f4dd0773be93c2ad8b0faacd12939c531b5aa130) )
+
+ ROM_REGION( 0x10000, "gfx1", 0 ) /* chars */
+ ROM_LOAD( "decodemo.25", 0x00000, 0x08000, CRC(011ffca6) SHA1(5188431849b4613152fd7bdba6a3ff0a4fd6424b) )
+ ROM_LOAD( "decodemo.26", 0x08000, 0x08000, CRC(14b56f44) SHA1(66c294b27400d3f3cafd7b1f633681df7195a14b) )
+
+ ROM_REGION( 0x40000, "gfx2", 0 ) /* tiles */
+ ROM_LOAD( "decodemo.18", 0x00000, 0x10000, CRC(53ac4058) SHA1(b6bd668085a6f2c21c66f38955e27ab384a5ebf1) )
+ ROM_LOAD( "decodemo.20", 0x10000, 0x10000, CRC(64f1ca83) SHA1(a8922226dc4f67873c0eb32a0da5e920b9e08e49) )
+ ROM_LOAD( "decodemo.22", 0x20000, 0x10000, CRC(e93c5aef) SHA1(bd31b2418a3e3c76c0018d43e9b106895218dae7) )
+ ROM_LOAD( "decodemo.24", 0x30000, 0x10000, CRC(ae2556dc) SHA1(ffcc1f7e8ec25ba35d20cedb6cb4010ea9ff409d) )
+
+ ROM_REGION( 0x20000, "gfx3", 0 ) /* tiles */
+ ROM_LOAD( "decodemo.30", 0x08000, 0x08000, CRC(9b02b8f8) SHA1(665764ac534ad370545f33d210846e69db558f6f) )
+ ROM_CONTINUE( 0x00000, 0x08000 ) /* the two halves are swapped */
+ ROM_LOAD( "decodemo.28", 0x18000, 0x08000, CRC(596b92f2) SHA1(a15f4435a3dcfa7d6a45610fccb8607ae9b8fa19) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x80000, "gfx4", ROMREGION_ERASE00 ) /* sprites */
+ ROM_LOAD( "decodemo.15", 0x00000, 0x10000, CRC(4a051829) SHA1(ed560a3ffb9b1d83c3291145e0e938016dd1fa5a) )
+ ROM_LOAD( "decodemo.11", 0x20000, 0x10000, CRC(d7978eeb) SHA1(1adc95bebe9eea8c112d40cd04ab7a8d75c4f961) )
+ ROM_LOAD( "decodemo.13", 0x40000, 0x10000, CRC(a58d1d9e) SHA1(ebd22872e0230da23d0e63ef7fbe2b5988cd93bd) )
+ ROM_LOAD( "decodemo.9", 0x60000, 0x10000, CRC(4d1de58f) SHA1(1979fb6d9cdc25033c75fd3f0c30fb56e040ddc0) )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* ADPCM samples */
+ ROM_LOAD( "ei08.2c", 0x0000, 0x10000, CRC(3c87463e) SHA1(f17c98507b562e91e9b27599614b3249fe68ff7a) )
+
+ ROM_REGION( 0x1000, "mcu", 0 ) /* i8751 microcontroller */
+ ROM_LOAD( "ei31.9a", 0x0000, 0x1000, CRC(2a8745d2) SHA1(f15ab17b1e7836d603135f5c66ca2e3d72f6e4a2) )
+ROM_END
+
+GAME( 2007, baddudef, baddudes, baddudes, baddudes, dec0_state, hbarrel, ROT0, "Arkatrad", "Bad Dudes vs. Dragonninja (French)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, decodemo, baddudes, baddudes, baddudes, dec0_state, hbarrel, ROT0, "Charles Doty", "Demo - Data East", MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/dkong.cpp b/src/hbmame/drivers/dkong.cpp
new file mode 100644
index 00000000000..16b6eb51b72
--- /dev/null
+++ b/src/hbmame/drivers/dkong.cpp
@@ -0,0 +1,284 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/dkong.cpp"
+
+static INPUT_PORTS_START( dkongex )
+ PORT_INCLUDE( dkong )
+ PORT_MODIFY("DSW0")
+ PORT_DIPNAME( 0x70, 0x00, DEF_STR( Coinage ) )
+ PORT_DIPSETTING( 0x70, "Freeplay" )
+ PORT_DIPSETTING( 0x50, DEF_STR( 4C_1C ) )
+ PORT_DIPSETTING( 0x30, DEF_STR( 3C_1C ) )
+ PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
+ PORT_DIPSETTING( 0x20, DEF_STR( 1C_2C ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( 1C_3C ) )
+ PORT_DIPSETTING( 0x60, DEF_STR( 1C_4C ) )
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( dkrdemo )
+ PORT_INCLUDE( dkong )
+ PORT_MODIFY("DSW0")
+ PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) ) PORT_DIPLOCATION( "SW1:!1,!2" )
+ PORT_DIPSETTING( 0x00, "3" )
+ PORT_DIPSETTING( 0x01, "5" )
+ PORT_DIPSETTING( 0x02, "7" )
+ PORT_DIPSETTING( 0x03, "9" )
+ PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION( "SW1:!3,!4" )
+ PORT_DIPSETTING( 0x00, "10000" )
+ PORT_DIPSETTING( 0x04, "15000" ) // and each additional 150k
+ PORT_DIPSETTING( 0x08, "25000" ) // and each additional 250k
+ PORT_DIPSETTING( 0x0c, "35000" ) // and each additional 350k
+ PORT_DIPNAME( 0x30, 0x00, DEF_STR( Coinage ) ) PORT_DIPLOCATION( "SW1:!5,!6" )
+ PORT_DIPSETTING( 0x30, "Free Play" )
+ PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
+ PORT_DIPSETTING( 0x20, DEF_STR( 1C_2C ) )
+ PORT_DIPNAME( 0x40, 0x00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION( "SW1:!8" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Normal ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( Hard ) )
+ PORT_DIPNAME( 0x80, 0x80, DEF_STR( Cabinet ) ) PORT_DIPLOCATION( "SW1:!8" )
+ PORT_DIPSETTING( 0x80, DEF_STR( Upright ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
+INPUT_PORTS_END
+
+
+
+/* same as mame 'dkongf' except 4th rom is different */
+ROM_START( dkongex )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "dk_f.5et", 0x0000, 0x1000, CRC(00b7efaf) SHA1(97ed5930eb5d0cb98a9008b1d329ba7f3b8b8dbf) )
+ ROM_LOAD( "dk_f.5ct", 0x1000, 0x1000, CRC(88af9b69) SHA1(c5621dd8198c333b3fa32fdece60ee5a3d8b2276) )
+ ROM_LOAD( "dk_f.5bt", 0x2000, 0x1000, CRC(de74ad91) SHA1(c80227361bdbc565e9f5764e6364b52d40ca778a) )
+ ROM_LOAD( "dkongex.5at", 0x3000, 0x1000, CRC(9fa3e5b7) SHA1(5c34170f762a147d5285d17d6689fd64dab99ff2) )
+
+ ROM_REGION( 0x1800, "soundcpu", 0 )
+ ROM_LOAD( "s_3i_b.bin", 0x0000, 0x0800, CRC(45a4ed06) SHA1(144d24464c1f9f01894eb12f846952290e6e32ef) )
+ ROM_RELOAD( 0x0800, 0x0800 )
+ ROM_LOAD( "s_3j_b.bin", 0x1000, 0x0800, CRC(4743fe92) SHA1(6c82b57637c0212a580591397e6a5a1718f19fd2) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "v_5h_b.bin", 0x0000, 0x0800, CRC(12c8c95d) SHA1(a57ff5a231c45252a63b354137c920a1379b70a3) )
+ ROM_LOAD( "v_3pt.bin", 0x0800, 0x0800, CRC(15e9c5e9) SHA1(976eb1e18c74018193a35aa86cff482ebfc5cc4e) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "l_4m_b.bin", 0x0000, 0x0800, CRC(59f8054d) SHA1(793dba9bf5a5fe76328acdfb90815c243d2a65f1) )
+ ROM_LOAD( "l_4n_b.bin", 0x0800, 0x0800, CRC(672e4714) SHA1(92e5d379f4838ac1fa44d448ce7d142dae42102f) )
+ ROM_LOAD( "l_4r_b.bin", 0x1000, 0x0800, CRC(feaa59ee) SHA1(ecf95db5a20098804fc8bd59232c66e2e0ed3db4) )
+ ROM_LOAD( "l_4s_b.bin", 0x1800, 0x0800, CRC(20f2ef7e) SHA1(3bc482a38bf579033f50082748ee95205b0f673d) )
+
+ ROM_REGION( 0x0300, "proms", 0 )
+ ROM_LOAD( "c-2k.bpr", 0x0000, 0x0100, CRC(e273ede5) SHA1(b50ec9e1837c00c20fb2a4369ec7dd0358321127) )
+ ROM_LOAD( "c-2j.bpr", 0x0100, 0x0100, CRC(d6412358) SHA1(f9c872da2fe8e800574ae3bf483fb3ccacc92eb3) )
+ ROM_LOAD( "v-5e.bpr", 0x0200, 0x0100, CRC(b869b8f5) SHA1(c2bdccbf2654b64ea55cd589fd21323a9178a660) )
+ROM_END
+
+
+/* This set has the fixes proposed by Don Hodges at the page:
+ http://donhodges.com/how_high_can_you_get.htm */
+ROM_START( dkongp )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "dkongp_c_5et", 0x0000, 0x1000, CRC(2066139d) SHA1(2eaf4cd6eb18eacb210892a85147e70db58bee48) )
+ ROM_LOAD( "c_5ct_g.bin", 0x1000, 0x1000, CRC(5ec461ec) SHA1(acb11a8fbdbb3ab46068385fe465f681e3c824bd) )
+ ROM_LOAD( "c_5bt_g.bin", 0x2000, 0x1000, CRC(1c97d324) SHA1(c7966261f3a1d3296927e0b6ee1c58039fc53c1f) )
+ ROM_LOAD( "c_5at_g.bin", 0x3000, 0x1000, CRC(b9005ac0) SHA1(3fe3599f6fa7c496f782053ddf7bacb453d197c4) )
+
+ ROM_REGION( 0x1800, "soundcpu", 0 )
+ ROM_LOAD( "s_3i_b.bin", 0x0000, 0x0800, CRC(45a4ed06) SHA1(144d24464c1f9f01894eb12f846952290e6e32ef) )
+ ROM_RELOAD( 0x0800, 0x0800 )
+ ROM_LOAD( "s_3j_b.bin", 0x1000, 0x0800, CRC(4743fe92) SHA1(6c82b57637c0212a580591397e6a5a1718f19fd2) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "v_5h_b.bin", 0x0000, 0x0800, CRC(12c8c95d) SHA1(a57ff5a231c45252a63b354137c920a1379b70a3) )
+ ROM_LOAD( "v_3pt.bin", 0x0800, 0x0800, CRC(15e9c5e9) SHA1(976eb1e18c74018193a35aa86cff482ebfc5cc4e) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "l_4m_b.bin", 0x0000, 0x0800, CRC(59f8054d) SHA1(793dba9bf5a5fe76328acdfb90815c243d2a65f1) )
+ ROM_LOAD( "l_4n_b.bin", 0x0800, 0x0800, CRC(672e4714) SHA1(92e5d379f4838ac1fa44d448ce7d142dae42102f) )
+ ROM_LOAD( "l_4r_b.bin", 0x1000, 0x0800, CRC(feaa59ee) SHA1(ecf95db5a20098804fc8bd59232c66e2e0ed3db4) )
+ ROM_LOAD( "l_4s_b.bin", 0x1800, 0x0800, CRC(20f2ef7e) SHA1(3bc482a38bf579033f50082748ee95205b0f673d) )
+
+ ROM_REGION( 0x0300, "proms", 0 )
+ ROM_LOAD( "c-2k.bpr", 0x0000, 0x0100, CRC(e273ede5) SHA1(b50ec9e1837c00c20fb2a4369ec7dd0358321127) )
+ ROM_LOAD( "c-2j.bpr", 0x0100, 0x0100, CRC(d6412358) SHA1(f9c872da2fe8e800574ae3bf483fb3ccacc92eb3) )
+ ROM_LOAD( "v-5e.bpr", 0x0200, 0x0100, CRC(b869b8f5) SHA1(c2bdccbf2654b64ea55cd589fd21323a9178a660) )
+ROM_END
+
+ROM_START( dkrdemo )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "dkrdemo.5et", 0x0000, 0x1000, CRC(f9fdff29) SHA1(c2eb8f0ede8384369e17d8616f4ce063ae12b6c2) )
+ ROM_LOAD( "dkrdemo.5ct", 0x1000, 0x1000, CRC(f48cb898) SHA1(470b8bee7f55e1d828abc0b1ec4b423392c83a78) )
+ ROM_LOAD( "dkrdemo.5bt", 0x2000, 0x1000, CRC(660d43ec) SHA1(8bba334cec022ea851c4a82f6ecbc91c0708daea) )
+ ROM_LOAD( "dkrdemo.5at", 0x3000, 0x1000, CRC(e59d406c) SHA1(7698e319ae191bb8bf7deeea5c4f18da04d73f73) )
+
+ ROM_REGION( 0x1800, "soundcpu", 0 )
+ ROM_LOAD( "s_3i_b.bin", 0x0000, 0x0800, CRC(45a4ed06) SHA1(144d24464c1f9f01894eb12f846952290e6e32ef) )
+ ROM_RELOAD( 0x0800, 0x0800 )
+ ROM_LOAD( "s_3j_b.bin", 0x1000, 0x0800, CRC(4743fe92) SHA1(6c82b57637c0212a580591397e6a5a1718f19fd2) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "v_5h_b.bin", 0x0000, 0x0800, CRC(12c8c95d) SHA1(a57ff5a231c45252a63b354137c920a1379b70a3) )
+ ROM_LOAD( "v_3pt.bin", 0x0800, 0x0800, CRC(15e9c5e9) SHA1(976eb1e18c74018193a35aa86cff482ebfc5cc4e) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "l_4m_b.bin", 0x0000, 0x0800, CRC(59f8054d) SHA1(793dba9bf5a5fe76328acdfb90815c243d2a65f1) )
+ ROM_LOAD( "l_4n_b.bin", 0x0800, 0x0800, CRC(672e4714) SHA1(92e5d379f4838ac1fa44d448ce7d142dae42102f) )
+ ROM_LOAD( "l_4r_b.bin", 0x1000, 0x0800, CRC(feaa59ee) SHA1(ecf95db5a20098804fc8bd59232c66e2e0ed3db4) )
+ ROM_LOAD( "l_4s_b.bin", 0x1800, 0x0800, CRC(20f2ef7e) SHA1(3bc482a38bf579033f50082748ee95205b0f673d) )
+
+ ROM_REGION( 0x0300, "proms", 0 )
+ ROM_LOAD( "c-2k.bpr", 0x0000, 0x0100, CRC(e273ede5) SHA1(b50ec9e1837c00c20fb2a4369ec7dd0358321127) )
+ ROM_LOAD( "c-2j.bpr", 0x0100, 0x0100, CRC(d6412358) SHA1(f9c872da2fe8e800574ae3bf483fb3ccacc92eb3) )
+ ROM_LOAD( "v-5e.bpr", 0x0200, 0x0100, CRC(b869b8f5) SHA1(c2bdccbf2654b64ea55cd589fd21323a9178a660) )
+ROM_END
+
+ROM_START( kong2600 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "c_5et_g.bin", 0x0000, 0x1000, CRC(ba70b88b) SHA1(d76ebecfea1af098d843ee7e578e480cd658ac1a) )
+ ROM_LOAD( "c_5ct_g.bin", 0x1000, 0x1000, CRC(5ec461ec) SHA1(acb11a8fbdbb3ab46068385fe465f681e3c824bd) )
+ ROM_LOAD( "c_5bt_g.bin", 0x2000, 0x1000, CRC(1c97d324) SHA1(c7966261f3a1d3296927e0b6ee1c58039fc53c1f) )
+ ROM_LOAD( "c_5at_g.bin", 0x3000, 0x1000, CRC(b9005ac0) SHA1(3fe3599f6fa7c496f782053ddf7bacb453d197c4) )
+
+ ROM_REGION( 0x1800, "soundcpu", 0 )
+ ROM_LOAD( "s_3i_b.bin", 0x0000, 0x0800, CRC(45a4ed06) SHA1(144d24464c1f9f01894eb12f846952290e6e32ef) )
+ ROM_RELOAD( 0x0800, 0x0800 )
+ ROM_LOAD( "s_3j_b.bin", 0x1000, 0x0800, CRC(4743fe92) SHA1(6c82b57637c0212a580591397e6a5a1718f19fd2) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "k2600.3n", 0x0000, 0x0800, CRC(0e6a2a6d) SHA1(7ebbcb78b269184cf588b5ad0b90f449d6d4e299) )
+ ROM_LOAD( "k2600.3p", 0x0800, 0x0800, CRC(ca57e0f4) SHA1(12c7821fc9f7fee276f7aa27dd0421f565b0f469) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "k2600.7c", 0x0000, 0x0800, CRC(cf450a43) SHA1(efa772f92b890181c0823b8113e069b7c4400ede) )
+ ROM_LOAD( "k2600.7d", 0x0800, 0x0800, CRC(d5046907) SHA1(1eb08ed67f6de04c4f3cb8f449503bbedc6207bc) )
+ ROM_LOAD( "k2600.7e", 0x1000, 0x0800, CRC(1539fe2a) SHA1(ea599987a2d65ffe2d09ca0951529bde2d31b1be) )
+ ROM_LOAD( "k2600.7f", 0x1800, 0x0800, CRC(77cc00ab) SHA1(7560bf4fd65c03f28f015abf64f83fc4ad7ae512) )
+
+ ROM_REGION( 0x0300, "proms", 0 )
+ ROM_LOAD( "k2600.2k", 0x0000, 0x0100, CRC(1e82d375) SHA1(8f2da5cedd1f62be08555dd0eb929eb41da5079d) )
+ ROM_LOAD( "k2600.2j", 0x0100, 0x0100, CRC(2ab01dc8) SHA1(c25958d0706cabf997efe16fad71f454fc1ced0b) )
+ ROM_LOAD( "k2600.5f", 0x0200, 0x0100, CRC(44988665) SHA1(68c474fc81aff46eae6c9a7ac6ab80288303e291) )
+ROM_END
+
+ROM_START( nadkong )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "c_5et_g.bin", 0x0000, 0x1000, CRC(ba70b88b) SHA1(d76ebecfea1af098d843ee7e578e480cd658ac1a) )
+ ROM_LOAD( "c_5ct_g.bin", 0x1000, 0x1000, CRC(5ec461ec) SHA1(acb11a8fbdbb3ab46068385fe465f681e3c824bd) )
+ ROM_LOAD( "c_5bt_g.bin", 0x2000, 0x1000, CRC(1c97d324) SHA1(c7966261f3a1d3296927e0b6ee1c58039fc53c1f) )
+ ROM_LOAD( "c_5at_g.bin", 0x3000, 0x1000, CRC(b9005ac0) SHA1(3fe3599f6fa7c496f782053ddf7bacb453d197c4) )
+
+ ROM_REGION( 0x1800, "soundcpu", 0 )
+ ROM_LOAD( "s_3i_b.bin", 0x0000, 0x0800, CRC(45a4ed06) SHA1(144d24464c1f9f01894eb12f846952290e6e32ef) )
+ ROM_RELOAD( 0x0800, 0x0800 )
+ ROM_LOAD( "s_3j_b.bin", 0x1000, 0x0800, CRC(4743fe92) SHA1(6c82b57637c0212a580591397e6a5a1718f19fd2) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "nadkong.5h", 0x0000, 0x0800, CRC(88772f5b) SHA1(0fd6cbb593e87b863eb317b063151ef3b81565c2) )
+ ROM_LOAD( "nadkong.3p", 0x0800, 0x0800, CRC(4c8aa728) SHA1(a277988d48f0d2f5d7cf9ef05eef222a36248cd3) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "nadkong.4m", 0x0000, 0x0800, CRC(2afbf9e6) SHA1(51e4f2f67903158b77574d55fcd17f302bc04a52) )
+ ROM_LOAD( "nadkong.4n", 0x0800, 0x0800, CRC(4f077877) SHA1(4f2c2bc693b0e8d36114024b6eaeb37a3b5d853d) )
+ ROM_LOAD( "nadkong.4r", 0x1000, 0x0800, CRC(d868da93) SHA1(c1c5d21f8c6a057fd5f54cab1eb4dbef06120405) )
+ ROM_LOAD( "nadkong.4s", 0x1800, 0x0800, CRC(7ebfe9f3) SHA1(75bd16e9590ada93b061dee3ec7916e1e1f113c3) )
+
+ ROM_REGION( 0x0300, "proms", 0 )
+ ROM_LOAD( "c-2k.bpr", 0x0000, 0x0100, CRC(e273ede5) SHA1(b50ec9e1837c00c20fb2a4369ec7dd0358321127) )
+ ROM_LOAD( "c-2j.bpr", 0x0100, 0x0100, CRC(d6412358) SHA1(f9c872da2fe8e800574ae3bf483fb3ccacc92eb3) )
+ ROM_LOAD( "v-5e.bpr", 0x0200, 0x0100, CRC(b869b8f5) SHA1(c2bdccbf2654b64ea55cd589fd21323a9178a660) )
+ROM_END
+
+ROM_START( dkong2m )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "c_5et_g.bin", 0x0000, 0x1000, CRC(ba70b88b) SHA1(d76ebecfea1af098d843ee7e578e480cd658ac1a) )
+ ROM_LOAD( "c_5ct_g.bin", 0x1000, 0x1000, CRC(5ec461ec) SHA1(acb11a8fbdbb3ab46068385fe465f681e3c824bd) )
+ ROM_LOAD( "c_5bt_g.bin", 0x2000, 0x1000, CRC(1c97d324) SHA1(c7966261f3a1d3296927e0b6ee1c58039fc53c1f) )
+ ROM_LOAD( "c_5at_g.bin", 0x3000, 0x1000, CRC(b9005ac0) SHA1(3fe3599f6fa7c496f782053ddf7bacb453d197c4) )
+
+ ROM_REGION( 0x1800, "soundcpu", 0 )
+ ROM_LOAD( "s_3i_b.bin", 0x0000, 0x0800, CRC(45a4ed06) SHA1(144d24464c1f9f01894eb12f846952290e6e32ef) )
+ ROM_RELOAD( 0x0800, 0x0800 )
+ ROM_LOAD( "s_3j_b.bin", 0x1000, 0x0800, CRC(4743fe92) SHA1(6c82b57637c0212a580591397e6a5a1718f19fd2) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "v_5h_b.bin", 0x0000, 0x0800, CRC(12c8c95d) SHA1(a57ff5a231c45252a63b354137c920a1379b70a3) )
+ ROM_LOAD( "v_3pt.bin", 0x0800, 0x0800, CRC(15e9c5e9) SHA1(976eb1e18c74018193a35aa86cff482ebfc5cc4e) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "l_4m_bm.bin", 0x0000, 0x0800, CRC(4b67ccf9) SHA1(8206436a0e5d1f7d5569f918eb87102f03b6cea3) )
+ ROM_LOAD( "l_4n_bm.bin", 0x0800, 0x0800, CRC(32a708cb) SHA1(2c8b4d5179f10fb2e8e9da2012419bdfb436a545) )
+ ROM_LOAD( "l_4r_bm.bin", 0x1000, 0x0800, CRC(22b5d5c4) SHA1(6bf39a5766786023cc18620283f12dbb9194cbfd) )
+ ROM_LOAD( "l_4s_bm.bin", 0x1800, 0x0800, CRC(b212b185) SHA1(03d3586e80cafd2440d03d60b7a4c8808b0c6caa) )
+
+ ROM_REGION( 0x0300, "proms", 0 )
+ ROM_LOAD( "c-2k.bpr", 0x0000, 0x0100, CRC(e273ede5) SHA1(b50ec9e1837c00c20fb2a4369ec7dd0358321127) )
+ ROM_LOAD( "c-2j.bpr", 0x0100, 0x0100, CRC(d6412358) SHA1(f9c872da2fe8e800574ae3bf483fb3ccacc92eb3) )
+ ROM_LOAD( "v-5e.bpr", 0x0200, 0x0100, CRC(b869b8f5) SHA1(c2bdccbf2654b64ea55cd589fd21323a9178a660) )
+ROM_END
+
+ROM_START( dkongpac )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "c_5et_g.bin", 0x0000, 0x1000, CRC(ba70b88b) SHA1(d76ebecfea1af098d843ee7e578e480cd658ac1a) )
+ ROM_LOAD( "c_5ct_g.bin", 0x1000, 0x1000, CRC(5ec461ec) SHA1(acb11a8fbdbb3ab46068385fe465f681e3c824bd) )
+ ROM_LOAD( "c_5bt_g.bin", 0x2000, 0x1000, CRC(1c97d324) SHA1(c7966261f3a1d3296927e0b6ee1c58039fc53c1f) )
+ ROM_LOAD( "dkongpac.5a", 0x3000, 0x1000, CRC(56d28137) SHA1(62ad0783df4a4d8a7c45693966858b69343045ff) )
+
+ ROM_REGION( 0x1800, "soundcpu", 0 )
+ ROM_LOAD( "s_3i_b.bin", 0x0000, 0x0800, CRC(45a4ed06) SHA1(144d24464c1f9f01894eb12f846952290e6e32ef) )
+ ROM_RELOAD( 0x0800, 0x0800 )
+ ROM_LOAD( "s_3j_b.bin", 0x1000, 0x0800, CRC(4743fe92) SHA1(6c82b57637c0212a580591397e6a5a1718f19fd2) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "dkongpac.3n", 0x0000, 0x0800, CRC(1beba830) SHA1(04dce2464d0627b78d185924706f8ca38892d6d3) )
+ ROM_LOAD( "dkongpac.3p", 0x0800, 0x0800, CRC(94d61766) SHA1(f45f10d523fefe0581dde42450b713cb94ce2072) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "dkongpac.7c", 0x0000, 0x0800, CRC(065e2713) SHA1(a32d506a247a692a10962c9e47024d51bbb52d22) )
+ ROM_LOAD( "dkongpac.7d", 0x0800, 0x0800, CRC(a84b347d) SHA1(5a3e6fa3d520aef3c529e515d1e9fa464cbc6a78) )
+ ROM_LOAD( "dkongpac.7e", 0x1000, 0x0800, CRC(6ae6f476) SHA1(a79927a1c7511bf510107d9ba5fcc8f284541259) )
+ ROM_LOAD( "dkongpac.7f", 0x1800, 0x0800, CRC(9d293922) SHA1(14af1cd7f9854dec820c899d999be4623d0048b0) )
+
+ ROM_REGION( 0x0300, "proms", 0 )
+ ROM_LOAD( "k2600.2k", 0x0000, 0x0100, CRC(1e82d375) SHA1(8f2da5cedd1f62be08555dd0eb929eb41da5079d) )
+ ROM_LOAD( "k2600.2j", 0x0100, 0x0100, CRC(2ab01dc8) SHA1(c25958d0706cabf997efe16fad71f454fc1ced0b) )
+ ROM_LOAD( "k2600.5f", 0x0200, 0x0100, CRC(44988665) SHA1(68c474fc81aff46eae6c9a7ac6ab80288303e291) )
+ROM_END
+
+ROM_START( dkrainbow )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "c_5et_g.bin", 0x0000, 0x1000, CRC(ba70b88b) SHA1(d76ebecfea1af098d843ee7e578e480cd658ac1a) )
+ ROM_LOAD( "c_5ct_g.bin", 0x1000, 0x1000, CRC(5ec461ec) SHA1(acb11a8fbdbb3ab46068385fe465f681e3c824bd) )
+ ROM_LOAD( "c_5bt_g.bin", 0x2000, 0x1000, CRC(1c97d324) SHA1(c7966261f3a1d3296927e0b6ee1c58039fc53c1f) )
+ ROM_LOAD( "c_5at_g.bin", 0x3000, 0x1000, CRC(b9005ac0) SHA1(3fe3599f6fa7c496f782053ddf7bacb453d197c4) )
+
+ ROM_REGION( 0x1800, "soundcpu", 0 ) /* sound */
+ ROM_LOAD( "s_3i_b.bin", 0x0000, 0x0800, CRC(45a4ed06) SHA1(144d24464c1f9f01894eb12f846952290e6e32ef) )
+ ROM_RELOAD( 0x0800, 0x0800 )
+ ROM_LOAD( "s_3j_b.bin", 0x1000, 0x0800, CRC(4743fe92) SHA1(6c82b57637c0212a580591397e6a5a1718f19fd2) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "v_5h_b.bin", 0x0000, 0x0800, CRC(12c8c95d) SHA1(a57ff5a231c45252a63b354137c920a1379b70a3) )
+ ROM_LOAD( "v_3pt.bin", 0x0800, 0x0800, CRC(15e9c5e9) SHA1(976eb1e18c74018193a35aa86cff482ebfc5cc4e) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "l_4m_b.bin", 0x0000, 0x0800, CRC(59f8054d) SHA1(793dba9bf5a5fe76328acdfb90815c243d2a65f1) )
+ ROM_LOAD( "l_4n_b.bin", 0x0800, 0x0800, CRC(672e4714) SHA1(92e5d379f4838ac1fa44d448ce7d142dae42102f) )
+ ROM_LOAD( "l_4r_b.bin", 0x1000, 0x0800, CRC(feaa59ee) SHA1(ecf95db5a20098804fc8bd59232c66e2e0ed3db4) )
+ ROM_LOAD( "l_4s_b.bin", 0x1800, 0x0800, CRC(20f2ef7e) SHA1(3bc482a38bf579033f50082748ee95205b0f673d) )
+
+ ROM_REGION( 0x0300, "proms", 0 )
+ ROM_LOAD( "rainbow_c.2k", 0x0000, 0x0100, CRC(c0dce2f5) SHA1(d2195886f509359ac483fd6c96a0477eef514929) )
+ ROM_LOAD( "rainbow_c.2j", 0x0100, 0x0100, CRC(03c3153f) SHA1(611267c0a205c9fe258451b7b5545c7a3d2fb541) )
+ ROM_LOAD( "rainbow_v.5e", 0x0200, 0x0100, CRC(d9f3005a) SHA1(c4f09f27f5c78d95d31e6af1b8a977b86bbab9a4) )
+ROM_END
+
+
+
+GAME( 2013, dkong2m, dkong, dkong2b, dkong, dkong_state, 0, ROT90, "Hack", "Donkey Kong (2 marios)", MACHINE_SUPPORTS_SAVE )
+GAME( 2005, dkongex, dkong, dkong2b, dkongex, dkong_state, 0, ROT90, "Jeff Kulczycki", "Donkey Kong Foundry", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, dkongp, dkong, dkong2b, dkong, dkong_state, 0, ROT90, "Don Hodges", "Donkey Kong (patched)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, dkongpac, dkong, dkong2b, dkong, dkong_state, 0, ROT90, "Tim Appleton", "Donkey Kong (Pacman graphics)", MACHINE_SUPPORTS_SAVE )
+GAME( 2015, dkrainbow, dkong, dkong2b, dkong, dkong_state, 0, ROT90, "Sock Master", "Rainbow Donkey Kong", MACHINE_SUPPORTS_SAVE )
+GAME( 2015, dkrdemo, dkong, dkong2b, dkrdemo, dkong_state, 0, ROT90, "Sock Master", "Donkey Kong Remix demo 1.8", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kong2600, dkong, dkong2b, dkong, dkong_state, 0, ROT90, "Vic Twenty George", "Donkey Kong (2600 graphics)", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, nadkong, dkong, dkong2b, dkong, dkong_state, 0, ROT90, "Hack", "Naked Donkey Kong", MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/docastle.cpp b/src/hbmame/drivers/docastle.cpp
new file mode 100644
index 00000000000..e9dde71cc9f
--- /dev/null
+++ b/src/hbmame/drivers/docastle.cpp
@@ -0,0 +1,32 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/docastle.cpp"
+
+ROM_START( sdreturn )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "2764.p1", 0x0000, 0x2000, CRC(95c86f8e) SHA1(9fe44911e0aa8d4c7299472a31c401e064d63d17) )
+ ROM_LOAD( "2764.l1", 0x4000, 0x2000, CRC(e9a65ba7) SHA1(fbee57d68352fd4062aac55cd1070f001714d0a3) )
+ ROM_LOAD( "2764.k1", 0x6000, 0x2000, CRC(b1195d3d) SHA1(095ad2ee1f53be3203830263cb0c9efbe4710c56) )
+ ROM_LOAD( "2764.n1", 0x8000, 0x2000, CRC(6a8160d1) SHA1(12101c351bf800319172c459b5e7c69cb5603806) )
+
+ ROM_REGION( 0x10000, "slave", 0 )
+ ROM_LOAD( "27128.p7", 0x0000, 0x4000, CRC(8b06d461) SHA1(2434478810c6301197997be76505f5fc6beba5d3) )
+
+ ROM_REGION( 0x10000, "cpu3", 0 )
+ ROM_LOAD( "bprom2.bin", 0x0000, 0x0200, CRC(2747ca77) SHA1(abc0ca05925974c4b852827605ee2f1caefb8524) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "27128.a3", 0x0000, 0x4000, CRC(4be96dcf) SHA1(f9b45e6297cbbc4d1ee2df7ac377c5daf5181b0f) )
+
+ ROM_REGION( 0x8000, "gfx2", 0 )
+ ROM_LOAD( "sdreturn.m4", 0x0000, 0x2000, CRC(e8779d04) SHA1(f185efbdc7410e3adba85de482e1b06778b17fe9) )
+ ROM_LOAD( "sdreturn.l4", 0x2000, 0x2000, CRC(bc217d6c) SHA1(abeaea49aad85f62943d7a3c30c8655fb29d3e62) )
+ ROM_LOAD( "sdreturn.j4", 0x4000, 0x2000, CRC(04824549) SHA1(5056db06c06d76580a85fc65d1e473e77eb48ee9) )
+ ROM_LOAD( "sdreturn.h4", 0x6000, 0x2000, CRC(c23c36c2) SHA1(22461c04ea2cfd39c395ca7e42a50636fb1c3625) )
+
+ ROM_REGION( 0x0100, "proms", 0 )
+ ROM_LOAD( "dorunrun.clr", 0x0000, 0x0100, CRC(d5bab5d5) SHA1(7a465fe30b6008793d33f6e07086c89111e1e407) )
+ROM_END
+
+GAME( 2002, sdreturn, dorunrun, dorunrun, dorunrun, docastle_state, 0, ROT0, "Hack", "Sticky Do Returns", MACHINE_SUPPORTS_SAVE )
+
diff --git a/src/hbmame/drivers/dotrikun.cpp b/src/hbmame/drivers/dotrikun.cpp
new file mode 100644
index 00000000000..0ad044b8815
--- /dev/null
+++ b/src/hbmame/drivers/dotrikun.cpp
@@ -0,0 +1,198 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/dotrikun.cpp"
+#include "speaker.h"
+#include "machine/nvram.h"
+#include "sound/beep.h"
+
+
+/***************************************************************************
+
+Minesweeper driver, originally for Dotrikun hardware
+
+Driver by Robbbert - April 2007
+
+CPU : Z-80 (4MHz)
+SOUND : (none)
+
+****************************************************************************
+
+Notes from the Readme files
+
+MINE SWEEPER for SEGA's Dottorikun PCB
+
+Distributed by Arcade roms from Japan (j-rom)
+
+This game is the Dottorikun port of the Windows' Mine Sweeper.
+It has "Time Limit", "more Stage", etc...
+
+Usage:
+
+You must burn DT_MINEJ.BIN to 27128 and replace it to the ROM of
+Dottorikun's board. I assume you can find this board easily...
+
+Rules:
+
+* The timer limit is 999
+* If you hit a mine, many counts added to the timer
+* There are no mines at the start point and the corner
+
+Option:
+
+This game supports BACKUP and SOUND. If you want to play
+the sound correctly, you must modify the board. If not,
+some noise appears on the screen.
+
+* THIS MODIFY IS QUITE DIFFICULT, USE AT YOUR OWN RISK! *
+* AND DON'T ASK ABOUT THIS MODIFYING INFORMATION! *
+
+Backup Support:
+
+* You have to install the RESET-IC (PST518, etc.)
+* Check the power on/off
+* Install the Lithium battery or super capacity condensor
+* Connect the inverted RESET signal to RAM's 18pin (use 74HC04, etc.)
+ (You must backup both RAM and HC04)
+
+Sound Support:
+
+You must get the sound board of Wing War (Guns'n Wings).
+You can hear the sonic sound if you use this sound board!
+
+* Cut IC17's 10pin from the board
+* Use shielded cable, Connect CN2's 6pin on the sound board to the above pin
+* And the shield connects GND and CN2's 5pin
+* Connect IC17 10pin's board side to the GND
+* This sound board has 2 set of STEREO, you have to mix them
+
+Secrets:
+
+* Push start when the power on : RAM CLEAR
+* right+up lever and push 1 and 2 button : SOUND TEST
+
+* left+up and push 1, 2, COIN, START when the checking Backup RAM is
+ finished, you can see the Ending scene.
+
+* Push 1 and 2 when the Ending scene is changed, you can see the
+ secret picture (^^)
+
+Robbbert's notes:
+
+In the above, when they say 1 and 2, they mean Ctrl and Alt
+By using the debugger, you can see the sound test by setting the pc to 105F,
+and the ending scene by setting the pc to 0F30.
+
+- Backup nvram added (April 2007)
+- Hooked port 20 to the colour generator (July 2008)
+- Hooked up a sound click to port 20 (May 2010)
+- Merged back into dotrikun driver (August 2016)
+
+Colours:
+* White (normal play / attract mode)
+* Yellow (new record time)
+* Green (new record level - must be at least level 3)
+* Purple (stepped on a bomb)
+* Red (game over)
+
+***************************************************************************/
+
+class mineswp_state : public dotrikun_state
+{
+public:
+ mineswp_state(const machine_config &mconfig, device_type type, const char *tag)
+ : dotrikun_state(mconfig, type, tag)
+ , m_beep(*this, "beeper")
+ { }
+
+ DECLARE_WRITE8_MEMBER(mineswp_color_w);
+private:
+ virtual void machine_start() override;
+ required_device<beep_device> m_beep;
+};
+
+
+/*******************************************************************
+
+ Palette Setting.
+
+*******************************************************************/
+
+
+WRITE8_MEMBER( mineswp_state::mineswp_color_w )
+{
+ // d0-d2: fg palette
+ // d3: sound bit
+ // d4-d7: N/C
+ m_screen->update_now();
+ m_color = data & 7;
+ m_beep->set_state(BIT(data, 3));
+}
+
+
+
+/*******************************************************************
+
+ Address maps
+
+*******************************************************************/
+static ADDRESS_MAP_START( mineswp_map, AS_PROGRAM, 8, mineswp_state )
+ AM_RANGE(0x0000, 0x3fff) AM_ROM
+ AM_RANGE(0x8000, 0x85ff) AM_RAM_WRITE(vram_w) AM_SHARE("vram")
+ AM_RANGE(0x8600, 0x86df) AM_RAM
+ AM_RANGE(0x86e0, 0x86ff) AM_RAM AM_SHARE("nvram")
+ AM_RANGE(0x8700, 0x87ff) AM_RAM
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( mineswp_io, AS_IO, 8, mineswp_state )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
+ AM_RANGE(0x00, 0x00) AM_MIRROR(0xff) AM_READ_PORT("INPUTS") AM_WRITE(mineswp_color_w)
+ADDRESS_MAP_END
+
+
+
+
+/*******************************************************************
+
+ Machine driver
+
+*******************************************************************/
+void mineswp_state::machine_start()
+{
+ m_beep->set_state(0);
+}
+
+static MACHINE_CONFIG_DERIVED( mineswp, dotrikun )
+ /* basic machine hardware */
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(mineswp_map)
+ MCFG_CPU_IO_MAP(mineswp_io)
+
+ MCFG_NVRAM_ADD_1FILL("nvram")
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+ MCFG_SOUND_ADD("beeper", BEEP, 950) // guess
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40)
+MACHINE_CONFIG_END
+
+
+/***************************************************************************
+
+ Game driver(s)
+
+***************************************************************************/
+
+ROM_START( mineswp )
+ ROM_REGION( 0x4000, "maincpu", 0 )
+ ROM_LOAD( "mineswp.bin", 0x0000, 0x4000, CRC(1cece483) SHA1(c425a09b640721c9a5b499cdb79848dc18ee66b9) )
+ // fix programming error
+ ROM_FILL(0x0005, 1, 0x31)
+ ROM_FILL(0x0006, 1, 0x00)
+ ROM_FILL(0x0007, 1, 0x88)
+ ROM_FILL(0x0008, 1, 0xCD)
+ ROM_FILL(0x0009, 1, 0xA1)
+ ROM_FILL(0x000A, 1, 0x03)
+ROM_END
+
+
+GAMEL( 1998, mineswp, 0, mineswp, dotrikun, mineswp_state, 0, ROT0, "J-Rom", "Mine Sweeper [h]", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW, layout_dotrikun )
diff --git a/src/hbmame/drivers/ertictac.cpp b/src/hbmame/drivers/ertictac.cpp
new file mode 100644
index 00000000000..cc17f37901c
--- /dev/null
+++ b/src/hbmame/drivers/ertictac.cpp
@@ -0,0 +1,53 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/ertictac.cpp"
+
+// worked in 0.128, not now
+ROM_START( armdemo )
+ ROM_REGION(0x800000, "maincpu", 0 )
+ ROM_LOAD32_BYTE( "armdemo.01", 0x00000, 0x10000, CRC(62b840be) SHA1(148b30b1e851e1c012482dde27f4159d1ac56a15) )
+ ROM_LOAD32_BYTE( "armdemo.02", 0x00001, 0x10000, CRC(78d41ef7) SHA1(db7b33e91507314371e6b21a5b92bc259dc06559) )
+ ROM_LOAD32_BYTE( "armdemo.03", 0x00002, 0x10000, CRC(efd0057f) SHA1(61baccc350623aca6d8b940816459372368c31ef) )
+ ROM_LOAD32_BYTE( "armdemo.04", 0x00003, 0x10000, CRC(55eb17b2) SHA1(c55614124214a0ad5617bfbab419f340ee48e6ed) )
+ // note all instructions are 4 bytes, and the bytes are in reverse order to what you see in the debugger
+ ROM_FILL(0x423, 1, 0x03) // set up control (no video without this)
+ ROM_FILL(0x422, 1, 0x6E)
+ ROM_FILL(0x421, 1, 0x05)
+ ROM_FILL(0x420, 1, 0xA4)
+ ROM_FILL(0x427, 1, 0xE5)
+ ROM_FILL(0x426, 1, 0x1F)
+ ROM_FILL(0x425, 1, 0x00)
+ ROM_FILL(0x424, 1, 0x0C)
+ ROM_FILL(0x42B, 1, 0xE5)
+ ROM_FILL(0x42A, 1, 0x80)
+ ROM_FILL(0x428, 2, 0x00)
+ ROM_FILL(0x42F, 1, 0xE3) // i/o byte (has no effect)
+ ROM_FILL(0x42E, 1, 0xA0)
+ ROM_FILL(0x42D, 1, 0x06)
+ ROM_FILL(0x42C, 1, 0x33)
+ ROM_FILL(0x433, 1, 0xE2)
+ ROM_FILL(0x432, 1, 0x80)
+ ROM_FILL(0x431, 1, 0x08)
+ ROM_FILL(0x430, 1, 0x05)
+ ROM_FILL(0x437, 1, 0xE2)
+ ROM_FILL(0x436, 1, 0x80)
+ ROM_FILL(0x435, 1, 0x00)
+ ROM_FILL(0x434, 1, 0x18)
+ ROM_FILL(0x43B, 1, 0xE3)
+ ROM_FILL(0x43A, 1, 0xA0)
+ ROM_FILL(0x439, 1, 0x10)
+ ROM_FILL(0x438, 1, 0x00)
+ ROM_FILL(0x43F, 1, 0xE5)
+ ROM_FILL(0x43E, 1, 0xC0)
+ ROM_FILL(0x43D, 1, 0x10)
+ ROM_FILL(0x43C, 1, 0x00)
+ ROM_FILL(0x443, 1, 0xEA) // back to normal programming
+ ROM_FILL(0x442, 1, 0xFF)
+ ROM_FILL(0x441, 1, 0xFE)
+ ROM_FILL(0x440, 1, 0xF7)
+ ROM_FILL(0x001, 1, 0x01) // jump to this lot
+
+ ROM_REGION(0x200000, "vram", ROMREGION_ERASE00)
+ROM_END
+
+GAME( 1990, armdemo, 0, ertictac, ertictac, ertictac_state, 0, ROT0, "Charles Doty", "Demo - ARM" , MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW )
diff --git a/src/hbmame/drivers/exerion.cpp b/src/hbmame/drivers/exerion.cpp
new file mode 100644
index 00000000000..27e7adcdd15
--- /dev/null
+++ b/src/hbmame/drivers/exerion.cpp
@@ -0,0 +1,66 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/exerion.cpp"
+
+ROM_START( exeriongr )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "exriongr.07", 0x0000, 0x2000, CRC(0ade934a) SHA1(a949aa66f27876ca439b799a9918841f7d8d3115) )
+ ROM_LOAD( "exriongr.08", 0x2000, 0x2000, CRC(a469f93e) SHA1(7e800e4c0dce2b9c9525dc1667ca13f1b2844d9b) )
+ ROM_LOAD( "exriongr.09", 0x4000, 0x2000, CRC(f0a8d5db) SHA1(df0f18ebef27a70ef420903a02ec5ce3c43d1d8b) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "exerion.05", 0x0000, 0x2000, CRC(32f6bff5) SHA1(a4d0289f9d1d9eea7ca9a32a0616af48da74b401) )
+
+ ROM_REGION( 0x02000, "gfx1", 0 )
+ ROM_LOAD( "exriongr.06", 0x00000, 0x2000, CRC(e18dc7c6) SHA1(1ec9bb9aa1552e4d7dbe16435f98209813590211) )
+
+ ROM_REGION( 0x04000, "gfx2", 0 )
+ ROM_LOAD( "exerion.11", 0x00000, 0x2000, CRC(f0633a09) SHA1(8989bcb12abadde34777f7c189cfa6e2dfe92d62) )
+ ROM_LOAD( "exerion.10", 0x02000, 0x2000, CRC(80312de0) SHA1(4fa3bb9d5c62e41a54e8909f8d3b47637137e913) )
+
+ ROM_REGION( 0x08000, "gfx3", 0 )
+ ROM_LOAD( "exerion.03", 0x00000, 0x2000, CRC(790595b8) SHA1(8016ac2394b25db38e962bcff4805380082f6683) )
+ ROM_LOAD( "exerion.04", 0x02000, 0x2000, CRC(d7abd0b9) SHA1(ca6413ecd324cf84e11b703a4eda2c1e6d28ff15) )
+ ROM_LOAD( "exriongr.01", 0x04000, 0x2000, CRC(b18009ea) SHA1(6a7abbe60e493a125b5d0e4d7f114b15758e4c6e) )
+ ROM_LOAD( "exerion.02", 0x06000, 0x2000, CRC(a7ecbb70) SHA1(3c359d5bb21290a45d3eb18fea2b1f9439b931be) )
+
+ ROM_REGION( 0x0420, "proms", 0 )
+ ROM_LOAD( "exerion.e1", 0x0000, 0x0020, CRC(2befcc20) SHA1(a24d3f691413378fde545a6ddcef7e5118e74019) )
+ ROM_LOAD( "exerion.i8", 0x0020, 0x0100, CRC(31db0e08) SHA1(1041a778e86d3fe6f057cf40a0a08b30760f3887) )
+ ROM_LOAD( "exerion.h10", 0x0120, 0x0100, CRC(63b4c555) SHA1(30243041be4fa77ada71e8b29d721cad51640c29) )
+ ROM_LOAD( "exerion.i3", 0x0220, 0x0100, CRC(fe72ab79) SHA1(048a72e6db4768df687df927acaa70ef906b3dc0) )
+ ROM_LOAD( "exerion.k4", 0x0320, 0x0100, CRC(ffc2ba43) SHA1(03be1c41d6ac3fc11439caef04ef5ffa60d6aec4) )
+ROM_END
+
+ROM_START( exerionj )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "exerion.07", 0x0000, 0x2000, CRC(4c78d57d) SHA1(ac702e9ad2bc05493fb1355858667c31c36acfe4) )
+ ROM_LOAD( "exerion.08", 0x2000, 0x2000, CRC(dcadc1df) SHA1(91388f617cfaa4289ca1c84c697fcfdd8834ae15) )
+ ROM_LOAD( "exerion.09", 0x4000, 0x2000, CRC(34cc4d14) SHA1(511c9de038f7bcaf6f7c96f2cbbe50a80673fa72) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "exerion.05", 0x0000, 0x2000, CRC(32f6bff5) SHA1(a4d0289f9d1d9eea7ca9a32a0616af48da74b401) )
+
+ ROM_REGION( 0x02000, "gfx1", 0 )
+ ROM_LOAD( "exerion.06", 0x00000, 0x2000, CRC(435a85a4) SHA1(f6846bfee11df754405d4d796e7d8ac0321b6eb6) )
+
+ ROM_REGION( 0x04000, "gfx2", 0 )
+ ROM_LOAD( "exerion.11", 0x00000, 0x2000, CRC(f0633a09) SHA1(8989bcb12abadde34777f7c189cfa6e2dfe92d62) )
+ ROM_LOAD( "exerion.10", 0x02000, 0x2000, CRC(80312de0) SHA1(4fa3bb9d5c62e41a54e8909f8d3b47637137e913) )
+
+ ROM_REGION( 0x08000, "gfx3", 0 )
+ ROM_LOAD( "exerion.03", 0x00000, 0x2000, CRC(790595b8) SHA1(8016ac2394b25db38e962bcff4805380082f6683) )
+ ROM_LOAD( "exerion.04", 0x02000, 0x2000, CRC(d7abd0b9) SHA1(ca6413ecd324cf84e11b703a4eda2c1e6d28ff15) )
+ ROM_LOAD( "exerion.01", 0x04000, 0x2000, CRC(5bb755cb) SHA1(ec92c518c116a78dbb23381468cefb3f930212cc) )
+ ROM_LOAD( "exerion.02", 0x06000, 0x2000, CRC(a7ecbb70) SHA1(3c359d5bb21290a45d3eb18fea2b1f9439b931be) )
+
+ ROM_REGION( 0x0420, "proms", 0 )
+ ROM_LOAD( "exerionj.e1", 0x0000, 0x0020, CRC(60cec362) SHA1(2422e894e2def2ab31f4b6c14fabbe443bd495e6) )
+ ROM_LOAD( "exerion.i8", 0x0020, 0x0100, CRC(31db0e08) SHA1(1041a778e86d3fe6f057cf40a0a08b30760f3887) )
+ ROM_LOAD( "exerion.h10", 0x0120, 0x0100, CRC(63b4c555) SHA1(30243041be4fa77ada71e8b29d721cad51640c29) )
+ ROM_LOAD( "exerion.i3", 0x0220, 0x0100, CRC(fe72ab79) SHA1(048a72e6db4768df687df927acaa70ef906b3dc0) )
+ ROM_LOAD( "exerion.k4", 0x0320, 0x0100, CRC(ffc2ba43) SHA1(03be1c41d6ac3fc11439caef04ef5ffa60d6aec4) )
+ROM_END
+
+GAME( 2004, exeriongr, exerion, exerion, exerion, exerion_state, exerion, ROT90, "GreekRoms", "Exerion (Greek)", MACHINE_SUPPORTS_SAVE )
+GAME( 1983, exerionj, exerion, exerion, exerion, exerion_state, exerion, ROT90, "Jaleco", "Exerion (Japan)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/exidy.cpp b/src/hbmame/drivers/exidy.cpp
new file mode 100644
index 00000000000..6bc5c5da4f1
--- /dev/null
+++ b/src/hbmame/drivers/exidy.cpp
@@ -0,0 +1,71 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/exidy.cpp"
+
+
+
+/*********************
+ *
+ * Targ Test Rom
+ *
+ *********************/
+
+ROM_START( targtest )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "hrl10a-1", 0x1800, 0x0800, CRC(969744e1) SHA1(e123bdb02b3b5f6a59c1e7c9ef557fe6bb19c62c) )
+ ROM_LOAD( "hrl9a-1", 0x2000, 0x0800, CRC(a177a72d) SHA1(0e705e3e32021e55af4414fa0e2ccbc4980ee848) )
+ ROM_LOAD( "hrl8a-1", 0x2800, 0x0800, CRC(6e6928a5) SHA1(10c725b27225ac5aad8639b081df68dd61522cf2) )
+ ROM_LOAD( "targtest.bin", 0x3000, 0x0800, CRC(22ae0198) SHA1(0139e3c36e4e415641cefae900347dcf81f00716) )
+ ROM_LOAD( "hrl6a-1", 0x3800, 0x0800, CRC(a60a1bfc) SHA1(17c0e67e1a0b263b57d70a148cc5d5099fecbb40) )
+
+ ROM_REGION( 0x0400, "gfx1", 0 )
+ ROM_LOAD( "hrl11d-1", 0x0000, 0x0400, CRC(9f03513e) SHA1(aa4763e49df65e5686a96431543580b8d8285893) )
+
+ ROM_REGION( 0x0140, "proms", 0 )
+ ROM_LOAD( "hrl5c-1", 0x0000, 0x0100, CRC(a24290d0) SHA1(5f2888d168de874021b51c5d19a62fb8165e4454) )
+ ROM_LOAD( "stl6d-1", 0x0100, 0x0020, CRC(e26f9053) SHA1(eec35b6aa2c2d305418306bf4a1754a0583f109f) )
+ ROM_LOAD( "hrl14h-1", 0x0120, 0x0020, CRC(f76b4fcf) SHA1(197e0cc508ffeb5cefa4046bdfb158939d598225) )
+
+ ROM_REGION( 0x0020, "targ", 0 )
+ ROM_LOAD( "hra2b-1", 0x0000, 0x0020, CRC(38e8024b) SHA1(adf1c1770695f7614c95eceb803f662c5b096a76) )
+ROM_END
+
+/*************************************
+ *
+ * Teeter Torture free play hack
+ *
+ *************************************/
+ROM_START( teetertfp )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "teetertfp.11", 0xa000, 0x1000, CRC(550375ab) SHA1(ae262f30def469cd56fc2f10336b25f766fc1320) )
+ ROM_LOAD( "10a-cpu", 0xb000, 0x1000, CRC(3ae7e445) SHA1(e511ce4c553ac58e87b6ee623f8c42d7653de972) )
+ ROM_LOAD( "teetertfp.9", 0xc000, 0x1000, CRC(9fab266f) SHA1(b6ad26740f9c87c49b4df122819d1a335fe5545e) )
+ ROM_LOAD( "8a-cpu", 0xd000, 0x1000, CRC(68de66e7) SHA1(70a0cc950f16f2c408fae717e6fdb75eb0fd8039) )
+ ROM_LOAD( "7a-cpu", 0xe000, 0x1000, CRC(84491333) SHA1(db9f8e4c49057a4574a3784d71e627da7f7a4b44) )
+ ROM_LOAD( "6a-cpu", 0xf000, 0x1000, CRC(3600d465) SHA1(84d633e042f73bfd6bf4a4d0ffee1cd2027c65d2) )
+
+ ROM_REGION( 0x8000, "audiocpu", 0 )
+ ROM_LOAD( "3a-ac", 0x5800, 0x0800, CRC(83b8836f) SHA1(ec0e2de62caea61ceff56e924449213997bff8cd) )
+ ROM_LOAD( "4a-ac", 0x6000, 0x0800, CRC(5154c39e) SHA1(e6f011630eb1aa4116a0e5824ad6b65c1be2455f) )
+ ROM_LOAD( "5a-ac", 0x6800, 0x0800, CRC(1e1e3916) SHA1(867e586583e07cd01e0e852f6ea52a040995725d) )
+ ROM_LOAD( "6a-ac", 0x7000, 0x0800, CRC(80f3357a) SHA1(f1ee638251e8676a526e6367c11866b1d52f5910) )
+ ROM_LOAD( "7a-ac", 0x7800, 0x0800, CRC(466addc7) SHA1(0230b5365d6aeee3ca47666a9eadee4141de125b) )
+
+ ROM_REGION( 0x0800, "gfx1", 0 )
+ ROM_LOAD( "11d-cpu", 0x0000, 0x0800, CRC(0fe70b00) SHA1(6068be263d7a8e6b71af6f4dceec40bb8d246376) )
+
+ ROM_REGION( 0x140, "proms", 0 )
+ ROM_LOAD_OPTIONAL( "tt14h.123", 0x0000, 0x0020, CRC(f76b4fcf) SHA1(197e0cc508ffeb5cefa4046bdfb158939d598225) )
+ ROM_LOAD_OPTIONAL( "tt5c.129", 0x0020, 0x0100, CRC(43b35bb7) SHA1(0a0cecea8faff9f3ff4c2ceda0b5b25e8e1cd667) )
+ ROM_LOAD_OPTIONAL( "tt6d.123", 0x0120, 0x0020, CRC(e26f9053) SHA1(eec35b6aa2c2d305418306bf4a1754a0583f109f) )
+ROM_END
+
+
+/*************************************
+ *
+ * Game drivers
+ *
+ *************************************/
+
+GAME( 2008, targtest, targ, targ, targ, exidy_state, targ, ROT0, "Timothy Shiels", "Targ Test Rom V1.0", MACHINE_SUPPORTS_SAVE )
+GAME( 2013, teetertfp, teetert, teetert, teetert, exidy_state, teetert, ROT0, "DogP", "Teeter Torture (free play hack)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/fcrash.cpp b/src/hbmame/drivers/fcrash.cpp
new file mode 100644
index 00000000000..84b694748f9
--- /dev/null
+++ b/src/hbmame/drivers/fcrash.cpp
@@ -0,0 +1,3156 @@
+// license:BSD-3-Clause
+// copyright-holders:David Haywood
+/* Final Crash & other CPS1 bootlegs */
+
+/*
+
+Final Crash is a bootleg of Final Fight
+
+Final Fight is by Capcom and runs on CPS1 hardware
+The bootleg was manufactured by Playmark of Italy
+
+this driver depends heavily on cps1.c, but has been
+kept apart in an attempt to keep cps1.c clutter free
+
+Sound is very different from CPS1.
+
+---
+
+Final Crash (bootleg of final fight)
+
+1x 68k
+1x z80
+2x ym2203
+2x oki5205
+1x osc 10mhz
+1x osc 24mhz
+
+eproms:
+1.bin sound eprom
+from 2.bin to 9.bin program eproms
+10.bin to 25.bin gfx eproms
+
+---
+
+kodb has various graphical issues, mainly with old info not being cleared away.
+Also, it should be using a vblank irq value of 4. This triggers the following bootleg read/writes;
+ - IN1 is read at 0x992000
+ - IN0 is read of 0x992008
+ - dips continue to be read at 0x80001a
+ - sound command is wrote at 0x992006
+ - scroll 1Y is wrote at 0x980000
+ - scroll 1X is wrote at 0x980002
+ - scroll 2Y is wrote at 0x980004
+ - scroll 2X is wrote at 0x980006
+ - scroll 3Y is wrote at 0x980008
+ - scroll 3X is wrote at 0x98000a
+ - the layer enable and layer mask writes continue at 0x98000c and 0x980020-2
+
+These read/writes are identical to those used by a Knights of the Round bootleg which uses the all sf2mdt sound
+hardware. This set is currently non-working.
+
+This also prevents the game from toggling the sprite address at m_cps_a_regs[0], similar to other bootlegs.
+Currently the game is working somewhat, but only using the code left over from the original. If anyone wants to
+do any development work on the set, (eg, find the sprite clearing issue), then this should be changed as the game
+likely won't write any sprite clearing values otherwise.
+
+None of this is hooked up currently due to issues with row scroll on the scroll2 layer.
+
+
+
+Status of each game:
+--------------------
+cawingb2, cawingbl: ok
+
+dinopic: no sound
+
+dinopic2: no sound, one bad gfx rom. Copying 8.bin from dinopic fixes it.
+
+fcrash, kodb: old sprites show on next screen. Patch used.
+
+kodb: gems are missing.
+
+knightsb: sprites are entangled with the front layer.
+
+punipic, punipic2: no sound. Problems in Central Park. Patches used.
+
+punipic3: same as punipic, and doors are missing.
+
+sf2m1: crowd is missing. Plane's tail comes off a bit. Patch used.
+
+sf2mdt, sf2mdta: ok
+
+sgyxz: garbage left behind. A priority problem can be seen in 3rd demo where
+ the fighters walk through the crowd instead of behind.
+
+slampic: no sound. A priority problem between sprites and crowd.
+
+*/
+
+#include "emu.h"
+#include "cpu/z80/z80.h"
+#include "cpu/m68000/m68000.h"
+#include "includes/cps1.h"
+#include "sound/2203intf.h"
+#include "sound/msm5205.h"
+#include "sound/ym2151.h"
+#include "sound/okim6295.h"
+#include "machine/eepromser.h"
+
+WRITE16_MEMBER( cps_state::fcrash_soundlatch_w )
+{
+ if (ACCESSING_BITS_0_7)
+ {
+ m_soundlatch->write(space, 0, data & 0xff);
+ m_audiocpu->set_input_line(0, HOLD_LINE);
+ }
+}
+
+WRITE16_MEMBER(cps_state::cawingbl_soundlatch_w)
+{
+ if (ACCESSING_BITS_8_15)
+ {
+ m_soundlatch->write(space, 0, data >> 8);
+ m_audiocpu->set_input_line(0, HOLD_LINE);
+ machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(50)); /* boost the interleave or some voices get dropped */
+ }
+}
+
+WRITE8_MEMBER( cps_state::fcrash_snd_bankswitch_w )
+{
+ m_msm_1->set_output_gain(0, (data & 0x08) ? 0.0 : 1.0);
+ m_msm_2->set_output_gain(0, (data & 0x10) ? 0.0 : 1.0);
+
+ membank("bank1")->set_entry(data & 0x07);
+}
+
+WRITE8_MEMBER( cps_state::sf2mdt_snd_bankswitch_w )
+{
+ m_msm_1->set_output_gain(0, (data & 0x20) ? 0.0 : 1.0);
+ m_msm_2->set_output_gain(0, (data & 0x10) ? 0.0 : 1.0);
+
+ membank("bank1")->set_entry(data & 0x07);
+}
+
+WRITE8_MEMBER( cps_state::knightsb_snd_bankswitch_w )
+{
+ m_msm_1->set_output_gain(0, (data & 0x20) ? 0.0 : 1.0);
+ m_msm_2->set_output_gain(0, (data & 0x10) ? 0.0 : 1.0);
+
+ membank("bank1")->set_entry(data & 0x0f);
+}
+
+WRITE_LINE_MEMBER(cps_state::m5205_int1)
+{
+ m_msm_1->data_w(m_sample_buffer1 & 0x0f);
+ m_sample_buffer1 >>= 4;
+ m_sample_select1 ^= 1;
+ if (m_sample_select1 == 0)
+ m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
+}
+
+WRITE_LINE_MEMBER(cps_state::m5205_int2)
+{
+ m_msm_2->data_w(m_sample_buffer2 & 0x0f);
+ m_sample_buffer2 >>= 4;
+ m_sample_select2 ^= 1;
+}
+
+
+
+WRITE8_MEMBER( cps_state::fcrash_msm5205_0_data_w )
+{
+ m_sample_buffer1 = data;
+}
+
+WRITE8_MEMBER( cps_state::fcrash_msm5205_1_data_w )
+{
+ m_sample_buffer2 = data;
+}
+
+/* not verified */
+#define CPS1_ROWSCROLL_OFFS (0x20/2) /* base of row scroll offsets in other RAM */
+
+WRITE16_MEMBER(cps_state::dinopic_layer_w)
+{
+ switch (offset)
+ {
+ case 0x00:
+ m_cps_a_regs[0x0e / 2] = data;
+ break;
+ case 0x01:
+ m_cps_a_regs[0x0c / 2] = data;
+ break;
+ case 0x02:
+ m_cps_a_regs[0x12 / 2] = data;
+ m_cps_a_regs[CPS1_ROWSCROLL_OFFS] = data; /* row scroll start */
+ break;
+ case 0x03:
+ m_cps_a_regs[0x10 / 2] = data;
+ break;
+ case 0x04:
+ m_cps_a_regs[0x16 / 2] = data;
+ break;
+ case 0x05:
+ m_cps_a_regs[0x14 / 2] = data;
+ break;
+ default:
+ logerror("%s: Unknown layer cmd %X %X\n",machine().describe_context(),offset<<1,data);
+
+ }
+}
+
+WRITE16_MEMBER( cps_state::dinopic_layer2_w )
+{
+ m_cps_a_regs[0x06 / 2] = data;
+}
+
+WRITE16_MEMBER(cps_state::kodb_layer_w)
+{
+ /* layer enable and mask 1&2 registers are written here - passing them to m_cps_b_regs for now for drawing routines */
+ if (offset == 0x06)
+ m_cps_b_regs[m_layer_enable_reg / 2] = data;
+ else
+ if (offset == 0x10)
+ m_cps_b_regs[m_layer_mask_reg[1] / 2] = data;
+ else
+ if (offset == 0x11)
+ m_cps_b_regs[m_layer_mask_reg[2] / 2] = data;
+}
+
+WRITE16_MEMBER(cps_state::knightsb_layer_w)
+{
+ switch (offset)
+ {
+ case 0x00:
+ m_cps_a_regs[0x0e / 2] = data;
+ break;
+ case 0x01:
+ m_cps_a_regs[0x0c / 2] = data;
+ break;
+ case 0x02:
+ m_cps_a_regs[0x12 / 2] = data;
+ m_cps_a_regs[CPS1_ROWSCROLL_OFFS] = data; /* row scroll start */
+ break;
+ case 0x03:
+ m_cps_a_regs[0x10 / 2] = data;
+ break;
+ case 0x04:
+ m_cps_a_regs[0x16 / 2] = data;
+ break;
+ case 0x05:
+ m_cps_a_regs[0x14 / 2] = data;
+ break;
+ case 0x06:
+ {
+ switch (data)
+ {
+ case 0x0000:
+ case 0x001f:
+ case 0x00ff:
+ data = 0x12f2;
+ break;
+ case 0x2000:
+ data = 0x06f2;
+ break;
+ case 0xa000:
+ data = 0x24d0;
+ break;
+ default:
+ printf ("Unknown control word = %X\n",data);
+ data = 0x12c0;
+ }
+ m_cps_b_regs[m_layer_enable_reg / 2] = data;
+ break;
+ }
+ case 0x10:
+ m_cps_b_regs[m_layer_mask_reg[1] / 2] = data;
+ break;
+ case 0x11:
+ m_cps_b_regs[m_layer_mask_reg[2] / 2] = data;
+ break;
+ case 0x12:
+ m_cps_b_regs[m_layer_mask_reg[3] / 2] = data;
+ }
+}
+
+WRITE16_MEMBER(cps_state::punipic_layer_w)
+{
+ switch (offset)
+ {
+ case 0x00:
+ m_cps_a_regs[0x0e / 2] = data;
+ break;
+ case 0x01:
+ m_cps_a_regs[0x0c / 2] = data;
+ break;
+ case 0x02:
+ m_cps_a_regs[0x12 / 2] = data;
+ m_cps_a_regs[CPS1_ROWSCROLL_OFFS] = data; /* row scroll start */
+ break;
+ case 0x03:
+ m_cps_a_regs[0x10 / 2] = data + 0xffc0;
+ break;
+ case 0x04:
+ m_cps_a_regs[0x16 / 2] = data;
+ break;
+ case 0x05:
+ m_cps_a_regs[0x14 / 2] = data;
+ break;
+ case 0x06:
+ switch (data)
+ {
+ case 0x14:
+ case 0x54:
+ m_cps_a_regs[0x04 / 2] = 0x9100;
+ break;
+ case 0x24:
+ case 0x64:
+ m_cps_a_regs[0x04 / 2] = 0x90c0;
+ break;
+ case 0x3c:
+ case 0x7c:
+ m_cps_a_regs[0x04 / 2] = 0x9180;
+ break;
+ }
+
+ m_cps_a_regs[0x08 / 2] = m_mainram[0xdb90 / 2]; // fixes split objects
+ break;
+ case 0x07:
+ // unknown
+ break;
+ default:
+ logerror("%s: Unknown layer cmd %X %X\n",machine().describe_context(),offset<<1,data);
+
+ }
+}
+
+WRITE16_MEMBER(cps_state::sf2m1_layer_w)
+{
+ switch (offset)
+ {
+ case 0x00:
+ m_cps_a_regs[0x0e / 2] = data;
+ break;
+ case 0x01:
+ m_cps_a_regs[0x0c / 2] = data;
+ break;
+ case 0x02:
+ m_cps_a_regs[0x12 / 2] = data;
+ m_cps_a_regs[CPS1_ROWSCROLL_OFFS] = data; /* row scroll start */
+ break;
+ case 0x03:
+ m_cps_a_regs[0x10 / 2] = data;
+ break;
+ case 0x04:
+ m_cps_a_regs[0x16 / 2] = data;
+ break;
+ case 0x05:
+ m_cps_a_regs[0x14 / 2] = data;
+ break;
+ case 0x06:
+ switch (data)
+ {
+ case 0:
+ data = 0x078e;
+ break;
+ case 1:
+ data = 0x12c0;
+ break;
+ case 2:
+ data = 0x06ce;
+ break;
+ case 3:
+ data = 0x09ce;
+ break;
+ case 4:
+ data = 0x12ce;
+ break;
+ case 5:
+ data = 0x0b4e;
+ break;
+ }
+ case 0xb3:
+ m_cps_b_regs[m_layer_enable_reg / 2] = data;
+ break;
+ case 0x0b:
+ case 0x1b:
+ m_cps_a_regs[0x06 / 2] = data;
+ break;
+ default:
+ logerror("%s: Unknown layer cmd %X %X\n",machine().describe_context(),offset<<1,data);
+
+ }
+}
+
+WRITE16_MEMBER(cps_state::sf2mdt_layer_w)
+{
+ /* layer enable and scroll registers are written here - passing them to m_cps_b_regs and m_cps_a_regs for now for drawing routines
+ the scroll layers aren't buttery smooth, due to the lack of using the row scroll address tables in the rendering code, this is also
+ supported by the fact that the game doesn't write the table address anywhere */
+
+ switch (offset)
+ {
+ case 0x06:
+ m_cps_a_regs[0x14 / 2] = data + 0xffce; /* scroll 3x */
+ break;
+ case 0x07:
+ m_cps_a_regs[0x16 / 2] = data; /* scroll 3y */
+ break;
+ case 0x08:
+ m_cps_a_regs[0x10 / 2] = data + 0xffce; /* scroll 2x */
+ break;
+ case 0x09:
+ m_cps_a_regs[0x0c / 2] = data + 0xffca; /* scroll 1x */
+ break;
+ case 0x0a:
+ m_cps_a_regs[0x12 / 2] = data; /* scroll 2y */
+ m_cps_a_regs[CPS1_ROWSCROLL_OFFS] = data; /* row scroll start */
+ break;
+ case 0x0b:
+ m_cps_a_regs[0x0e / 2] = data; /* scroll 1y */
+ break;
+ case 0x26:
+ m_cps_b_regs[m_layer_enable_reg / 2] = data;
+ }
+}
+
+WRITE16_MEMBER(cps_state::sf2mdta_layer_w)
+{
+ /* layer enable and scroll registers are written here - passing them to m_cps_b_regs and m_cps_a_regs for now for drawing routines
+ the scroll layers aren't buttery smooth, due to the lack of using the row scroll address tables in the rendering code, this is also
+ supported by the fact that the game doesn't write the table address anywhere */
+
+ switch (offset)
+ {
+ case 0x06:
+ m_cps_a_regs[0x0c / 2] = data + 0xffbe; /* scroll 1x */
+ break;
+ case 0x07:
+ m_cps_a_regs[0x0e / 2] = data; /* scroll 1y */
+ break;
+ case 0x08:
+ m_cps_a_regs[0x14 / 2] = data + 0xffce; /* scroll 3x */
+ break;
+ case 0x09:
+ m_cps_a_regs[0x12 / 2] = data; /* scroll 2y */
+ m_cps_a_regs[CPS1_ROWSCROLL_OFFS] = data; /* row scroll start */
+ break;
+ case 0x0a:
+ m_cps_a_regs[0x10 / 2] = data + 0xffce; /* scroll 2x */
+ break;
+ case 0x0b:
+ m_cps_a_regs[0x16 / 2] = data; /* scroll 3y */
+ break;
+ case 0x26:
+ m_cps_b_regs[m_layer_enable_reg / 2] = data;
+ }
+}
+
+WRITE16_MEMBER(cps_state::slampic_layer_w)
+{
+ switch (offset)
+ {
+ case 0x00:
+ case 0x01:
+ case 0x02:
+ case 0x03:
+ case 0x04:
+ case 0x05:
+ dinopic_layer_w(space, offset, data);
+ break;
+ case 0x06: // scroll 2 base
+ m_cps_a_regs[0x04/2] = data << 4;
+ break;
+ }
+}
+
+
+void cps_state::fcrash_update_transmasks()
+{
+ int i;
+
+ for (i = 0; i < 4; i++)
+ {
+ int mask;
+
+ /* Get transparency registers */
+ if (m_layer_mask_reg[i])
+ mask = m_cps_b_regs[m_layer_mask_reg[i] / 2] ^ 0xffff;
+ else
+ mask = 0xffff; /* completely transparent if priority masks not defined (mercs, qad) */
+
+ m_bg_tilemap[0]->set_transmask(i, mask, 0x8000);
+ m_bg_tilemap[1]->set_transmask(i, mask, 0x8000);
+ m_bg_tilemap[2]->set_transmask(i, mask, 0x8000);
+ }
+}
+
+void cps_state::fcrash_render_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect )
+{
+ int pos;
+ int base = m_sprite_base / 2;
+ int num_sprites = m_gfxdecode->gfx(2)->elements();
+ int last_sprite_offset = 0x1ffc;
+ uint16_t *sprite_ram = m_gfxram;
+ uint16_t tileno,colour,xpos,ypos;
+ bool flipx, flipy;
+
+ /* if we have separate sprite ram, use it */
+ if (m_bootleg_sprite_ram) sprite_ram = m_bootleg_sprite_ram.get();
+
+ /* get end of sprite list marker */
+ for (pos = 0x1ffc - base; pos >= 0x0000; pos -= 4)
+ if (sprite_ram[base + pos - 1] == m_sprite_list_end_marker) last_sprite_offset = pos;
+
+ /* If we are using bootleg sprite ram, the index must be less than 0x2000 */
+ if (((base + last_sprite_offset) < 0x2000) || (!m_bootleg_sprite_ram))
+ {
+ for (pos = last_sprite_offset; pos >= 0x0000; pos -= 4)
+ {
+ tileno = sprite_ram[base + pos];
+ if (tileno >= num_sprites) continue; /* don't render anything outside our tiles */
+ xpos = sprite_ram[base + pos + 2] & 0x1ff;
+ ypos = sprite_ram[base + pos - 1] & 0x1ff;
+ flipx = BIT(sprite_ram[base + pos + 1], 5);
+ flipy = BIT(sprite_ram[base + pos + 1], 6);
+ colour = sprite_ram[base + pos + 1] & 0x1f;
+ ypos = 256 - ypos - 16;
+ xpos = xpos + m_sprite_x_offset + 49;
+
+ if (flip_screen())
+ m_gfxdecode->gfx(2)->prio_transpen(bitmap, cliprect, tileno, colour, !flipx, !flipy, 512-16-xpos, 256-16-ypos, screen.priority(), 2, 15);
+ else
+ m_gfxdecode->gfx(2)->prio_transpen(bitmap, cliprect, tileno, colour, flipx, flipy, xpos, ypos, screen.priority(), 2, 15);
+ }
+ }
+}
+
+void cps_state::fcrash_render_layer( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int primask )
+{
+ switch (layer)
+ {
+ case 0:
+ fcrash_render_sprites(screen, bitmap, cliprect);
+ break;
+ case 1:
+ case 2:
+ case 3:
+ m_bg_tilemap[layer - 1]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1, primask);
+ break;
+ }
+}
+
+void cps_state::fcrash_render_high_layer( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int layer )
+{
+ bitmap_ind16 dummy_bitmap;
+
+ switch (layer)
+ {
+ case 0:
+ /* there are no high priority sprites */
+ break;
+ case 1:
+ case 2:
+ case 3:
+ m_bg_tilemap[layer - 1]->draw(screen, dummy_bitmap, cliprect, TILEMAP_DRAW_LAYER0, 1);
+ break;
+ }
+}
+
+void cps_state::fcrash_build_palette()
+{
+ int offset;
+
+ // all the bootlegs seem to write the palette offset as usual
+ int palettebase = (m_cps_a_regs[0x0a / 2] << 8) & 0x1ffff;
+
+ for (offset = 0; offset < 32 * 6 * 16; offset++)
+ {
+ int palette = m_gfxram[palettebase / 2 + offset];
+ int r, g, b, bright;
+
+ // from my understanding of the schematics, when the 'brightness'
+ // component is set to 0 it should reduce brightness to 1/3
+
+ bright = 0x0f + ((palette >> 12) << 1);
+
+ r = ((palette >> 8) & 0x0f) * 0x11 * bright / 0x2d;
+ g = ((palette >> 4) & 0x0f) * 0x11 * bright / 0x2d;
+ b = ((palette >> 0) & 0x0f) * 0x11 * bright / 0x2d;
+
+ m_palette->set_pen_color (offset, rgb_t(r, g, b));
+ }
+}
+
+uint32_t cps_state::screen_update_fcrash(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+{
+ int layercontrol, l0, l1, l2, l3;
+ int videocontrol = m_cps_a_regs[0x22 / 2];
+
+ flip_screen_set(videocontrol & 0x8000);
+
+ layercontrol = m_cps_b_regs[m_layer_enable_reg / 2];
+
+ /* Get video memory base registers */
+ cps1_get_video_base();
+
+ /* Build palette */
+ fcrash_build_palette();
+
+ fcrash_update_transmasks();
+
+ m_bg_tilemap[0]->set_scrollx(0, m_scroll1x - m_layer_scroll1x_offset);
+ m_bg_tilemap[0]->set_scrolly(0, m_scroll1y);
+
+ if (videocontrol & 0x01) /* linescroll enable */
+ {
+ int scrly = -m_scroll2y;
+ int i;
+ int otheroffs;
+
+ m_bg_tilemap[1]->set_scroll_rows(1024);
+
+ otheroffs = m_cps_a_regs[CPS1_ROWSCROLL_OFFS];
+
+ for (i = 0; i < 256; i++)
+ m_bg_tilemap[1]->set_scrollx((i - scrly) & 0x3ff, m_scroll2x + m_other[(i + otheroffs) & 0x3ff]);
+ }
+ else
+ {
+ m_bg_tilemap[1]->set_scroll_rows(1);
+ m_bg_tilemap[1]->set_scrollx(0, m_scroll2x - m_layer_scroll2x_offset);
+ }
+ m_bg_tilemap[1]->set_scrolly(0, m_scroll2y);
+ m_bg_tilemap[2]->set_scrollx(0, m_scroll3x - m_layer_scroll3x_offset);
+ m_bg_tilemap[2]->set_scrolly(0, m_scroll3y);
+
+
+ /* turn all tilemaps on regardless of settings in get_video_base() */
+ /* write a custom get_video_base for this bootleg hardware? */
+ m_bg_tilemap[0]->enable(1);
+ m_bg_tilemap[1]->enable(1);
+ m_bg_tilemap[2]->enable(1);
+
+ /* Blank screen */
+ bitmap.fill(0xbff, cliprect);
+
+ screen.priority().fill(0, cliprect);
+ l0 = (layercontrol >> 0x06) & 03;
+ l1 = (layercontrol >> 0x08) & 03;
+ l2 = (layercontrol >> 0x0a) & 03;
+ l3 = (layercontrol >> 0x0c) & 03;
+
+ fcrash_render_layer(screen, bitmap, cliprect, l0, 0);
+
+ if (l1 == 0)
+ fcrash_render_high_layer(screen, bitmap, cliprect, l0);
+
+ fcrash_render_layer(screen, bitmap, cliprect, l1, 0);
+
+ if (l2 == 0)
+ fcrash_render_high_layer(screen, bitmap, cliprect, l1);
+
+ fcrash_render_layer(screen, bitmap, cliprect, l2, 0);
+
+ if (l3 == 0)
+ fcrash_render_high_layer(screen, bitmap, cliprect, l2);
+
+ fcrash_render_layer(screen, bitmap, cliprect, l3, 0);
+
+ return 0;
+}
+
+
+static ADDRESS_MAP_START( knightsb_map, AS_PROGRAM, 16, cps_state )
+ AM_RANGE(0x000000, 0x3fffff) AM_ROM
+ AM_RANGE(0x800000, 0x800001) AM_READ_PORT("IN1") /* Player input ports */
+ AM_RANGE(0x800002, 0x800003) AM_READ_PORT("IN2") /* Player 3 controls */
+ AM_RANGE(0x800004, 0x800005) AM_WRITENOP // writes 0000 here
+ AM_RANGE(0x800006, 0x800007) AM_WRITE(fcrash_soundlatch_w) /* Sound command */
+ AM_RANGE(0x800018, 0x80001f) AM_READ(cps1_dsw_r) /* System input ports / Dip Switches */
+ AM_RANGE(0x800030, 0x800037) AM_WRITENOP //AM_WRITE(cps1_coinctrl_w) only writes bit 15
+ AM_RANGE(0x800100, 0x80013f) AM_RAM AM_SHARE("cps_a_regs") /* CPS-A custom */
+ AM_RANGE(0x800140, 0x80017f) AM_RAM AM_SHARE("cps_b_regs") /* CPS-B custom */
+ AM_RANGE(0x800180, 0x800181) AM_WRITENOP //AM_WRITE(cps1_soundlatch2_w) /* Sound timer fade */
+ AM_RANGE(0x880000, 0x880001) AM_WRITENOP // unknown
+ AM_RANGE(0x900000, 0x93ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram")
+ AM_RANGE(0x980000, 0x98002f) AM_WRITE(knightsb_layer_w)
+ AM_RANGE(0x990000, 0x990001) AM_WRITENOP // same as 880000
+ AM_RANGE(0xff0000, 0xffffff) AM_RAM
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( dinopic_map, AS_PROGRAM, 16, cps_state )
+ AM_RANGE(0x000000, 0x3fffff) AM_ROM
+ AM_RANGE(0x800000, 0x800007) AM_READ_PORT("IN1") /* Player input ports */
+ AM_RANGE(0x800006, 0x800007) AM_WRITE(cps1_soundlatch_w) /* Sound command */
+ AM_RANGE(0x800018, 0x80001f) AM_READ(cps1_dsw_r) /* System input ports / Dip Switches */
+ AM_RANGE(0x800030, 0x800037) AM_WRITE(cps1_coinctrl_w)
+ AM_RANGE(0x800100, 0x80013f) AM_WRITE(cps1_cps_a_w) AM_SHARE("cps_a_regs") /* CPS-A custom */
+ AM_RANGE(0x800140, 0x80017f) AM_READWRITE(cps1_cps_b_r, cps1_cps_b_w) AM_SHARE("cps_b_regs")
+ AM_RANGE(0x800222, 0x800223) AM_WRITE(dinopic_layer2_w)
+ AM_RANGE(0x880000, 0x880001) AM_WRITENOP // always 0
+ AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram")
+ AM_RANGE(0x980000, 0x98000b) AM_WRITE(dinopic_layer_w)
+ AM_RANGE(0xf18000, 0xf19fff) AM_RAM
+ AM_RANGE(0xf1c000, 0xf1c001) AM_READ_PORT("IN2") /* Player 3 controls (later games) */
+ AM_RANGE(0xf1c004, 0xf1c005) AM_WRITE(cpsq_coinctrl2_w) /* Coin control2 (later games) */
+ AM_RANGE(0xf1c006, 0xf1c007) AM_READ_PORT("EEPROMIN") AM_WRITE_PORT("EEPROMOUT")
+ AM_RANGE(0xff0000, 0xffffff) AM_RAM
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( fcrash_map, AS_PROGRAM, 16, cps_state )
+ AM_RANGE(0x000000, 0x3fffff) AM_ROM
+ AM_RANGE(0x800030, 0x800031) AM_WRITE(cps1_coinctrl_w)
+ AM_RANGE(0x800100, 0x80013f) AM_RAM AM_SHARE("cps_a_regs") /* CPS-A custom */
+ AM_RANGE(0x800140, 0x80017f) AM_RAM AM_SHARE("cps_b_regs") /* CPS-B custom */
+ AM_RANGE(0x880000, 0x880001) AM_READ_PORT("IN1") /* Player input ports */
+ AM_RANGE(0x880006, 0x880007) AM_WRITE(fcrash_soundlatch_w) /* Sound command */
+ AM_RANGE(0x880008, 0x88000f) AM_READ(cps1_dsw_r) /* System input ports / Dip Switches */
+ AM_RANGE(0x890000, 0x890001) AM_WRITENOP // palette related?
+ AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram")
+ AM_RANGE(0xff0000, 0xffffff) AM_RAM
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( punipic_map, AS_PROGRAM, 16, cps_state )
+ AM_RANGE(0x000000, 0x3fffff) AM_ROM
+ AM_RANGE(0x800000, 0x800007) AM_READ_PORT("IN1") /* Player input ports */
+ AM_RANGE(0x800006, 0x800007) AM_WRITE(cps1_soundlatch_w) /* Sound command */
+ AM_RANGE(0x800018, 0x80001f) AM_READ(cps1_dsw_r) /* System input ports / Dip Switches */
+ AM_RANGE(0x800030, 0x800037) AM_WRITE(cps1_coinctrl_w)
+ AM_RANGE(0x800100, 0x80013f) AM_WRITE(cps1_cps_a_w) AM_SHARE("cps_a_regs") /* CPS-A custom */
+ AM_RANGE(0x800140, 0x80017f) AM_READWRITE(cps1_cps_b_r, cps1_cps_b_w) AM_SHARE("cps_b_regs")
+ AM_RANGE(0x880000, 0x880001) AM_WRITENOP // same as 98000C
+ AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram")
+ AM_RANGE(0x980000, 0x98000f) AM_WRITE(punipic_layer_w)
+ AM_RANGE(0x990000, 0x990001) AM_WRITENOP // unknown
+ AM_RANGE(0x991000, 0x991017) AM_WRITENOP // unknown
+ AM_RANGE(0xf18000, 0xf19fff) AM_RAM
+ AM_RANGE(0xf1c006, 0xf1c007) AM_READ_PORT("EEPROMIN") AM_WRITE_PORT("EEPROMOUT")
+ AM_RANGE(0xff0000, 0xffffff) AM_RAM AM_SHARE("mainram")
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( sf2m1_map, AS_PROGRAM, 16, cps_state )
+ AM_RANGE(0x000000, 0x3fffff) AM_ROM
+ AM_RANGE(0x800000, 0x800007) AM_READ_PORT("IN1") /* Player input ports */
+ AM_RANGE(0x800006, 0x800007) AM_WRITE(cps1_soundlatch_w) /* Sound command */
+ AM_RANGE(0x800012, 0x800013) AM_READ(cps1_in2_r) /* Buttons 4,5,6 for both players */
+ AM_RANGE(0x800018, 0x80001f) AM_READ(cps1_dsw_r) /* System input ports / Dip Switches */
+ AM_RANGE(0x800100, 0x80013f) AM_WRITE(cps1_cps_a_w) AM_SHARE("cps_a_regs") /* CPS-A custom */
+ AM_RANGE(0x800140, 0x80017f) AM_READWRITE(cps1_cps_b_r, cps1_cps_b_w) AM_SHARE("cps_b_regs")
+ AM_RANGE(0x800180, 0x800181) AM_WRITENOP // only once at boot, for 80010c
+ AM_RANGE(0x800188, 0x80018f) AM_WRITE(cps1_soundlatch2_w) /* Sound timer fade */
+ AM_RANGE(0x880000, 0x880001) AM_WRITENOP // unknown
+ AM_RANGE(0x900000, 0x93ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram")
+ AM_RANGE(0x980000, 0x9801ff) AM_WRITE(sf2m1_layer_w)
+ AM_RANGE(0x990000, 0x990001) AM_WRITENOP // same as 880000
+ AM_RANGE(0xff0000, 0xffffff) AM_RAM
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( sf2mdt_map, AS_PROGRAM, 16, cps_state )
+ AM_RANGE(0x000000, 0x3fffff) AM_ROM
+ AM_RANGE(0x708100, 0x7081ff) AM_WRITE(sf2mdta_layer_w)
+ AM_RANGE(0x70c000, 0x70c001) AM_READ_PORT("IN1")
+ AM_RANGE(0x70c008, 0x70c009) AM_READ_PORT("IN2")
+ AM_RANGE(0x70c018, 0x70c01f) AM_READ(cps1_hack_dsw_r)
+ AM_RANGE(0x70c106, 0x70c107) AM_WRITE(cawingbl_soundlatch_w)
+ AM_RANGE(0x70d000, 0x70d001) AM_WRITENOP // writes FFFF
+ //AM_RANGE(0x800030, 0x800031) AM_WRITE(cps1_coinctrl_w)
+ AM_RANGE(0x800100, 0x80013f) AM_RAM AM_SHARE("cps_a_regs") /* CPS-A custom */
+ AM_RANGE(0x800140, 0x80017f) AM_RAM AM_SHARE("cps_b_regs") /* CPS-B custom */
+ AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram")
+ AM_RANGE(0xff0000, 0xffffff) AM_RAM
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( sf2b_map, AS_PROGRAM, 16, cps_state )
+ AM_RANGE(0x000000, 0x3fffff) AM_ROM
+ AM_RANGE(0x708100, 0x7081ff) AM_WRITE(sf2mdta_layer_w)
+ AM_RANGE(0x70c000, 0x70c001) AM_READ_PORT("IN1")
+ AM_RANGE(0x70c008, 0x70c009) AM_READ_PORT("IN2")
+ AM_RANGE(0x70c018, 0x70c01f) AM_READ(cps1_hack_dsw_r)
+ AM_RANGE(0x70c106, 0x70c107) AM_WRITE(cawingbl_soundlatch_w)
+ AM_RANGE(0x70d000, 0x70d001) AM_WRITENOP // writes FFFF
+ //AM_RANGE(0x800030, 0x800031) AM_WRITE(cps1_coinctrl_w)
+ AM_RANGE(0x800100, 0x80013f) AM_RAM AM_SHARE("cps_a_regs") /* CPS-A custom */
+ AM_RANGE(0x800140, 0x80017f) AM_READWRITE(cps1_cps_b_r, cps1_cps_b_w) AM_SHARE("cps_b_regs") /* CPS-B custom */
+ AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram")
+ AM_RANGE(0xff0000, 0xffffff) AM_RAM
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( sgyxz_map, AS_PROGRAM, 16, cps_state )
+ AM_RANGE(0x000000, 0x3fffff) AM_ROM
+ AM_RANGE(0x800030, 0x800031) AM_WRITE(cps1_coinctrl_w)
+ AM_RANGE(0x800100, 0x80013f) AM_RAM AM_SHARE("cps_a_regs") /* CPS-A custom */
+ AM_RANGE(0x800140, 0x80017f) AM_RAM AM_SHARE("cps_b_regs") /* CPS-B custom */
+ AM_RANGE(0x880000, 0x880001) AM_READ_PORT("IN1") /* Player input ports */
+ AM_RANGE(0x880006, 0x88000d) AM_READ(cps1_dsw_r) /* System input ports / Dip Switches */
+ AM_RANGE(0x88000e, 0x88000f) AM_WRITE(cps1_soundlatch_w)
+ AM_RANGE(0x880e78, 0x880e79) AM_READ(cps1_in2_r) /* Player 3 controls (later games) */
+ AM_RANGE(0x890000, 0x890001) AM_WRITE(cps1_soundlatch2_w)
+ AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram")
+ AM_RANGE(0xf1c004, 0xf1c005) AM_WRITE(cpsq_coinctrl2_w) /* Coin control2 (later games) */
+ AM_RANGE(0xf1c006, 0xf1c007) AM_READ_PORT("EEPROMIN") AM_WRITE_PORT("EEPROMOUT")
+ AM_RANGE(0xff0000, 0xffffff) AM_RAM
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( slampic_map, AS_PROGRAM, 16, cps_state )
+ AM_RANGE(0x000000, 0x3fffff) AM_ROM
+ AM_RANGE(0x800006, 0x800007) AM_WRITENOP //AM_WRITE(cps1_soundlatch2_w)
+ AM_RANGE(0x800000, 0x800007) AM_READ_PORT("IN1") /* Player input ports */
+ AM_RANGE(0x800018, 0x80001f) AM_READ(cps1_dsw_r) /* System input ports / Dip Switches */
+ AM_RANGE(0x800030, 0x800037) AM_WRITE(cps1_coinctrl_w)
+ AM_RANGE(0x800100, 0x80013f) AM_WRITE(cps1_cps_a_w) AM_SHARE("cps_a_regs") /* CPS-A custom */
+ AM_RANGE(0x800140, 0x80017f) AM_READWRITE(cps1_cps_b_r, cps1_cps_b_w) AM_SHARE("cps_b_regs")
+ AM_RANGE(0x880000, 0x880001) AM_WRITENOP //AM_WRITE(cps1_soundlatch_w) /* Sound command */
+ AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram")
+ AM_RANGE(0x980000, 0x98000d) AM_WRITE(slampic_layer_w)
+ AM_RANGE(0xf00000, 0xf0ffff) AM_READ(qsound_rom_r) /* Slammasters protection */
+ AM_RANGE(0xf18000, 0xf19fff) AM_RAM
+ AM_RANGE(0xf1c000, 0xf1c001) AM_READ_PORT("IN2") /* Player 3 controls (later games) */
+ AM_RANGE(0xf1c004, 0xf1c005) AM_WRITE(cpsq_coinctrl2_w) /* Coin control2 (later games) */
+ AM_RANGE(0xf1c006, 0xf1c007) AM_READ_PORT("EEPROMIN") AM_WRITE_PORT("EEPROMOUT")
+ AM_RANGE(0xf1f000, 0xf1ffff) AM_NOP // writes 0 to range, then reads F1F6EC
+ AM_RANGE(0xff0000, 0xffffff) AM_RAM
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, cps_state )
+ AM_RANGE(0x0000, 0x7fff) AM_ROM
+ AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
+ AM_RANGE(0xd000, 0xd7ff) AM_RAM
+ AM_RANGE(0xd800, 0xd801) AM_DEVREADWRITE("ym1", ym2203_device, read, write)
+ AM_RANGE(0xdc00, 0xdc01) AM_DEVREADWRITE("ym2", ym2203_device, read, write)
+ AM_RANGE(0xe000, 0xe000) AM_WRITE(fcrash_snd_bankswitch_w)
+ AM_RANGE(0xe400, 0xe400) AM_DEVREAD("soundlatch", generic_latch_8_device, read)
+ AM_RANGE(0xe800, 0xe800) AM_WRITE(fcrash_msm5205_0_data_w)
+ AM_RANGE(0xec00, 0xec00) AM_WRITE(fcrash_msm5205_1_data_w)
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( kodb_sound_map, AS_PROGRAM, 8, cps_state )
+ AM_RANGE(0x0000, 0x7fff) AM_ROM
+ AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
+ AM_RANGE(0xd000, 0xd7ff) AM_RAM
+ AM_RANGE(0xe000, 0xe001) AM_DEVREADWRITE("2151", ym2151_device, read, write)
+ AM_RANGE(0xe400, 0xe400) AM_DEVREADWRITE("oki", okim6295_device, read, write)
+ AM_RANGE(0xe800, 0xe800) AM_DEVREAD("soundlatch", generic_latch_8_device, read)
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( sf2mdt_z80map, AS_PROGRAM, 8, cps_state )
+ AM_RANGE(0x0000, 0x7fff) AM_ROM
+ AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
+ AM_RANGE(0xd000, 0xd7ff) AM_RAM
+ AM_RANGE(0xd800, 0xd801) AM_DEVREADWRITE("2151", ym2151_device, read, write)
+ AM_RANGE(0xdc00, 0xdc00) AM_DEVREAD("soundlatch", generic_latch_8_device, read)
+ AM_RANGE(0xe000, 0xe000) AM_WRITE(sf2mdt_snd_bankswitch_w)
+ AM_RANGE(0xe400, 0xe400) AM_WRITE(fcrash_msm5205_0_data_w)
+ AM_RANGE(0xe800, 0xe800) AM_WRITE(fcrash_msm5205_1_data_w)
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( knightsb_z80map, AS_PROGRAM, 8, cps_state )
+ AM_RANGE(0x0000, 0x7fff) AM_ROM
+ AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
+ AM_RANGE(0xcffe, 0xcfff) AM_WRITENOP // writes lots of data
+ AM_RANGE(0xd000, 0xd7ff) AM_RAM
+ AM_RANGE(0xd800, 0xd801) AM_DEVREADWRITE("2151", ym2151_device, read, write)
+ AM_RANGE(0xdc00, 0xdc00) AM_DEVREAD("soundlatch", generic_latch_8_device, read)
+ AM_RANGE(0xe000, 0xe000) AM_WRITE(knightsb_snd_bankswitch_w)
+ AM_RANGE(0xe400, 0xe400) AM_WRITE(fcrash_msm5205_0_data_w)
+ AM_RANGE(0xe800, 0xe800) AM_WRITE(fcrash_msm5205_1_data_w)
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( sgyxz_sound_map, AS_PROGRAM, 8, cps_state )
+ AM_RANGE(0x0000, 0x7fff) AM_ROM
+ AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
+ AM_RANGE(0xd000, 0xd7ff) AM_RAM
+ AM_RANGE(0xf000, 0xf001) AM_DEVREADWRITE("2151", ym2151_device, read, write)
+ AM_RANGE(0xf002, 0xf002) AM_DEVREADWRITE("oki", okim6295_device, read, write)
+ AM_RANGE(0xf004, 0xf004) AM_WRITE(cps1_snd_bankswitch_w)
+ AM_RANGE(0xf006, 0xf006) AM_WRITE(cps1_oki_pin7_w) /* controls pin 7 of OKI chip */
+ AM_RANGE(0xf008, 0xf008) AM_DEVREAD("soundlatch", generic_latch_8_device, read)
+ AM_RANGE(0xf00a, 0xf00a) AM_DEVREAD("soundlatch2", generic_latch_8_device, read)
+ADDRESS_MAP_END
+
+
+#define CPS1_COINAGE_1 \
+ PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coin_A ) ) \
+ PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) \
+ PORT_DIPSETTING( 0x01, DEF_STR( 3C_1C ) ) \
+ PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) ) \
+ PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) ) \
+ PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) ) \
+ PORT_DIPSETTING( 0x05, DEF_STR( 1C_3C ) ) \
+ PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ) ) \
+ PORT_DIPSETTING( 0x03, DEF_STR( 1C_6C ) ) \
+ PORT_DIPNAME( 0x38, 0x38, DEF_STR( Coin_B ) ) \
+ PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) \
+ PORT_DIPSETTING( 0x08, DEF_STR( 3C_1C ) ) \
+ PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) \
+ PORT_DIPSETTING( 0x38, DEF_STR( 1C_1C ) ) \
+ PORT_DIPSETTING( 0x30, DEF_STR( 1C_2C ) ) \
+ PORT_DIPSETTING( 0x28, DEF_STR( 1C_3C ) ) \
+ PORT_DIPSETTING( 0x20, DEF_STR( 1C_4C ) ) \
+ PORT_DIPSETTING( 0x18, DEF_STR( 1C_6C ) )
+
+
+#define CPS1_COINAGE_2(diploc) \
+ PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coinage ) ) PORT_DIPLOCATION(diploc ":1,2,3") \
+ PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) \
+ PORT_DIPSETTING( 0x01, DEF_STR( 3C_1C ) ) \
+ PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) ) \
+ PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) ) \
+ PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) ) \
+ PORT_DIPSETTING( 0x05, DEF_STR( 1C_3C ) ) \
+ PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ) ) \
+ PORT_DIPSETTING( 0x03, DEF_STR( 1C_6C ) )
+
+#define CPS1_COINAGE_3(diploc) \
+ PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coin_A ) ) PORT_DIPLOCATION(diploc ":1,2,3") \
+ PORT_DIPSETTING( 0x01, DEF_STR( 4C_1C ) ) \
+ PORT_DIPSETTING( 0x02, DEF_STR( 3C_1C ) ) \
+ PORT_DIPSETTING( 0x03, DEF_STR( 2C_1C ) ) \
+ PORT_DIPSETTING( 0x00, "2 Coins/1 Credit (1 to continue)" ) \
+ PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) ) \
+ PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) ) \
+ PORT_DIPSETTING( 0x05, DEF_STR( 1C_3C ) ) \
+ PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ) ) \
+ PORT_DIPNAME( 0x38, 0x38, DEF_STR( Coin_B ) ) PORT_DIPLOCATION(diploc ":4,5,6") \
+ PORT_DIPSETTING( 0x08, DEF_STR( 4C_1C ) ) \
+ PORT_DIPSETTING( 0x10, DEF_STR( 3C_1C ) ) \
+ PORT_DIPSETTING( 0x18, DEF_STR( 2C_1C ) ) \
+ PORT_DIPSETTING( 0x00, "2 Coins/1 Credit (1 to continue)" ) \
+ PORT_DIPSETTING( 0x38, DEF_STR( 1C_1C ) ) \
+ PORT_DIPSETTING( 0x30, DEF_STR( 1C_2C ) ) \
+ PORT_DIPSETTING( 0x28, DEF_STR( 1C_3C ) ) \
+ PORT_DIPSETTING( 0x20, DEF_STR( 1C_4C ) )
+
+#define CPS1_DIFFICULTY_1(diploc) \
+ PORT_DIPNAME( 0x07, 0x04, DEF_STR( Difficulty ) ) PORT_DIPLOCATION(diploc ":1,2,3") \
+ PORT_DIPSETTING( 0x07, "1 (Easiest)" ) \
+ PORT_DIPSETTING( 0x06, "2" ) \
+ PORT_DIPSETTING( 0x05, "3" ) \
+ PORT_DIPSETTING( 0x04, "4 (Normal)" ) \
+ PORT_DIPSETTING( 0x03, "5" ) \
+ PORT_DIPSETTING( 0x02, "6" ) \
+ PORT_DIPSETTING( 0x01, "7" ) \
+ PORT_DIPSETTING( 0x00, "8 (Hardest)" )
+
+#define CPS1_DIFFICULTY_2(diploc) \
+ PORT_DIPNAME( 0x07, 0x07, DEF_STR( Difficulty ) ) PORT_DIPLOCATION(diploc ":1,2,3") \
+ PORT_DIPSETTING( 0x04, "1 (Easiest)" ) \
+ PORT_DIPSETTING( 0x05, "2" ) \
+ PORT_DIPSETTING( 0x06, "3" ) \
+ PORT_DIPSETTING( 0x07, "4 (Normal)" ) \
+ PORT_DIPSETTING( 0x03, "5" ) \
+ PORT_DIPSETTING( 0x02, "6" ) \
+ PORT_DIPSETTING( 0x01, "7" ) \
+ PORT_DIPSETTING( 0x00, "8 (Hardest)" )
+
+
+static INPUT_PORTS_START( fcrash )
+ PORT_START("IN0")
+ 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_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
+ PORT_SERVICE( 0x40, IP_ACTIVE_LOW )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("DSWA")
+ CPS1_COINAGE_1
+ PORT_DIPNAME( 0x40, 0x40, "2 Coins to Start, 1 to Continue" )
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPUNUSED( 0x80, IP_ACTIVE_LOW )
+
+ PORT_START("DSWB")
+ PORT_DIPNAME( 0x07, 0x04, "Difficulty Level 1" )
+ PORT_DIPSETTING( 0x07, DEF_STR( Easiest ) ) // "01"
+ PORT_DIPSETTING( 0x06, DEF_STR( Easier ) ) // "02"
+ PORT_DIPSETTING( 0x05, DEF_STR( Easy ) ) // "03"
+ PORT_DIPSETTING( 0x04, DEF_STR( Normal ) ) // "04"
+ PORT_DIPSETTING( 0x03, DEF_STR( Medium ) ) // "05"
+ PORT_DIPSETTING( 0x02, DEF_STR( Hard ) ) // "06"
+ PORT_DIPSETTING( 0x01, DEF_STR( Harder ) ) // "07"
+ PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) // "08"
+ PORT_DIPNAME( 0x18, 0x10, "Difficulty Level 2" )
+ PORT_DIPSETTING( 0x18, DEF_STR( Easy ) ) // "01"
+ PORT_DIPSETTING( 0x10, DEF_STR( Normal ) ) // "02"
+ PORT_DIPSETTING( 0x08, DEF_STR( Hard ) ) // "03"
+ PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) // "04"
+ PORT_DIPNAME( 0x60, 0x60, DEF_STR( Bonus_Life ) )
+ PORT_DIPSETTING( 0x60, "100k" )
+ PORT_DIPSETTING( 0x40, "200k" )
+ PORT_DIPSETTING( 0x20, "100k and every 200k" )
+ PORT_DIPSETTING( 0x00, DEF_STR( None ) )
+ PORT_DIPUNUSED( 0x80, IP_ACTIVE_LOW )
+
+ PORT_START("DSWC")
+ PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
+ PORT_DIPSETTING( 0x00, "1" )
+ PORT_DIPSETTING( 0x03, "2" )
+ PORT_DIPSETTING( 0x02, "3" )
+ PORT_DIPSETTING( 0x01, "4" )
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) )
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x08, "Freeze" )
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) )
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) )
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
+ PORT_DIPNAME( 0x80, 0x80, "Game Mode")
+ PORT_DIPSETTING( 0x80, "Game" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Test ) )
+
+ PORT_START("IN1")
+ PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) PORT_NAME ("P1 Button 3 (Cheat)")
+ PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) 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_NAME ("P2 Button 3 (Cheat)")
+ PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( cawingbl )
+ PORT_START("IN0")
+ 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_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
+ PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("IN1")
+ PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) 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("DSWA")
+ CPS1_COINAGE_1
+ PORT_DIPNAME( 0x40, 0x40, "2 Coins to Start, 1 to Continue" )
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) // Overrides all other coinage settings
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) ) // according to manual
+ PORT_DIPUNUSED( 0x80, IP_ACTIVE_LOW ) // This switch is not documented
+
+ PORT_START("DSWB")
+ PORT_DIPNAME( 0x07, 0x04, "Difficulty Level (Enemy's Strength)" ) PORT_DIPLOCATION("SW(B):1,2,3")
+ PORT_DIPSETTING( 0x07, "1 (Easiest)" )
+ PORT_DIPSETTING( 0x06, "2" )
+ PORT_DIPSETTING( 0x05, "3" )
+ PORT_DIPSETTING( 0x04, "4 (Normal)" )
+ PORT_DIPSETTING( 0x03, "5" )
+ PORT_DIPSETTING( 0x02, "6" )
+ PORT_DIPSETTING( 0x01, "7" )
+ PORT_DIPSETTING( 0x00, "8 (Hardest)" )
+ PORT_DIPNAME( 0x18, 0x18, "Difficulty Level (Player's Strength)" ) PORT_DIPLOCATION("SW(B):4,5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Easy ) )
+ PORT_DIPSETTING( 0x18, DEF_STR( Normal ) )
+ PORT_DIPSETTING( 0x08, DEF_STR( Hard ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) )
+ PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW(B):6" ) // This switch is not documented
+ PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW(B):7" ) // This switch is not documented
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(B):8" ) // This switch is not documented
+
+ PORT_START("DSWC")
+ PORT_DIPUNUSED_DIPLOC( 0x01, 0x01, "SW(C):1" ) // This switch is not documented
+ PORT_DIPUNUSED_DIPLOC( 0x02, 0x02, "SW(C):2" ) // This switch is not documented
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW(C):3")
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x08, "Freeze" ) PORT_DIPLOCATION("SW(C):4")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
+ PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8")
+ PORT_DIPSETTING( 0x80, "Game" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Test ) )
+INPUT_PORTS_END
+
+
+static INPUT_PORTS_START( kodb )
+ PORT_START("IN0")
+ 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_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
+ PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("DSWA")
+ CPS1_COINAGE_2( "SW(A)" )
+ PORT_DIPNAME( 0x08, 0x08, "Coin Slots" ) PORT_DIPLOCATION("SW(A):4")
+ PORT_DIPSETTING( 0x00, "1" )
+ PORT_DIPSETTING( 0x08, "3" )
+ PORT_DIPNAME( 0x10, 0x10, "Play Mode" ) PORT_DIPLOCATION("SW(A):5")
+ PORT_DIPSETTING( 0x00, "2 Players" )
+ PORT_DIPSETTING( 0x10, "3 Players" )
+ PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW(A):6" )
+ PORT_DIPNAME( 0x40, 0x40, "2 Coins to Start, 1 to Continue" ) PORT_DIPLOCATION("SW(A):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(A):8" )
+
+ PORT_START("DSWB")
+ CPS1_DIFFICULTY_1( "SW(B)" )
+ PORT_DIPNAME( 0x38, 0x38, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW(B):4,5,6")
+ PORT_DIPSETTING( 0x30, "1" )
+ PORT_DIPSETTING( 0x38, "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, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW(B):7,8")
+ PORT_DIPSETTING( 0x80, "80k and every 400k" )
+ PORT_DIPSETTING( 0xc0, "100k and every 450k" )
+ PORT_DIPSETTING( 0x40, "160k and every 450k" )
+ PORT_DIPSETTING( 0x00, DEF_STR( None ) )
+
+ PORT_START("DSWC")
+ PORT_DIPUNUSED_DIPLOC( 0x01, 0x01, "SW(C):1" )
+ PORT_DIPUNUSED_DIPLOC( 0x02, 0x02, "SW(C):2" )
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW(C):3")
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x08, "Freeze" ) PORT_DIPLOCATION("SW(C):4")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
+ PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8")
+ PORT_DIPSETTING( 0x80, "Game" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Test ) )
+
+ PORT_START("IN1")
+ PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) 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_UNKNOWN )
+ PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("IN2")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3)
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3)
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN3 )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 )
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( sf2mdt )
+ PORT_START("IN0")
+ 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_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
+ PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("IN1")
+ PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P1 Jab Punch") PORT_PLAYER(1)
+ PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P1 Strong Punch") PORT_PLAYER(1)
+ PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("P1 Fierce Punch") PORT_PLAYER(1)
+ PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P2 Jab Punch") PORT_PLAYER(2)
+ PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P2 Strong Punch") PORT_PLAYER(2)
+ PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("P2 Fierce Punch") PORT_PLAYER(2)
+ PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("IN2") /* Extra buttons */
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("P1 Short Kick") PORT_PLAYER(1)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("P1 Forward Kick") PORT_PLAYER(1)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("P1 Roundhouse Kick") PORT_PLAYER(1)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("P2 Short Kick") PORT_PLAYER(2)
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("P2 Forward Kick") PORT_PLAYER(2)
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("P2 Roundhouse Kick") PORT_PLAYER(2)
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("DSWA")
+ CPS1_COINAGE_1
+ PORT_DIPNAME( 0x40, 0x40, "2 Coins to Start, 1 to Continue" ) PORT_DIPLOCATION("SW(A):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(A):8" )
+
+ PORT_START("DSWB")
+ CPS1_DIFFICULTY_1( "SW(B)" )
+ PORT_DIPUNUSED_DIPLOC( 0x08, 0x08, "SW(B):4" )
+ PORT_DIPUNUSED_DIPLOC( 0x10, 0x10, "SW(B):5" )
+ PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW(B):6" )
+ PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW(B):7" )
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(B):8" )
+
+ PORT_START("DSWC")
+ PORT_DIPUNUSED_DIPLOC( 0x01, 0x01, "SW(C):1" )
+ PORT_DIPUNUSED_DIPLOC( 0x02, 0x02, "SW(C):2" )
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW(C):3")
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x08, "Freeze" ) PORT_DIPLOCATION("SW(C):4")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
+ PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8")
+ PORT_DIPSETTING( 0x80, "Game" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Test ) )
+INPUT_PORTS_END
+
+
+
+static INPUT_PORTS_START( sf2mdtb )
+ PORT_START("IN0")
+ 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_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
+ PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("IN1")
+ PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P1 Jab Punch") PORT_PLAYER(1)
+ PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P1 Strong Punch") PORT_PLAYER(1)
+ PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("P1 Fierce Punch") PORT_PLAYER(1)
+ PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P2 Jab Punch") PORT_PLAYER(2)
+ PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P2 Strong Punch") PORT_PLAYER(2)
+ PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("P2 Fierce Punch") PORT_PLAYER(2)
+ PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("IN2") /* Extra buttons */
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("P1 Short Kick") PORT_PLAYER(1)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("P1 Forward Kick") PORT_PLAYER(1)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("P1 Roundhouse Kick") PORT_PLAYER(1)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("P2 Short Kick") PORT_PLAYER(2)
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("P2 Forward Kick") PORT_PLAYER(2)
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("P2 Roundhouse Kick") PORT_PLAYER(2)
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("DSWA")
+ CPS1_COINAGE_1
+ PORT_DIPNAME( 0x40, 0x40, "2 Coins to Start, 1 to Continue" ) PORT_DIPLOCATION("SW(A):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(A):8" ) //sort of debug mode...
+ //depnding (???) of other DSW setting get different
+ //"game" mode, autoplay, bonus round, ecc...
+ PORT_START("DSWB")
+ CPS1_DIFFICULTY_1( "SW(B)" )
+ PORT_DIPUNUSED_DIPLOC( 0x08, 0x08, "SW(B):4" )
+ PORT_DIPUNUSED_DIPLOC( 0x10, 0x10, "SW(B):5" )
+ PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW(B):6" )
+ PORT_DIPUNUSED_DIPLOC( 0x40, 0x40, "SW(B):7" )
+ PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW(B):8" )
+
+ PORT_START("DSWC")
+ PORT_DIPUNUSED_DIPLOC( 0x01, 0x01, "SW(C):1" )
+ PORT_DIPUNUSED_DIPLOC( 0x02, 0x02, "SW(C):2" )
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW(C):3")
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x08, "Freeze" ) PORT_DIPLOCATION("SW(C):4")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW(C):5")
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW(C):6")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) ) PORT_DIPLOCATION("SW(C):7")
+ PORT_DIPSETTING( 0x40, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
+ PORT_DIPNAME( 0x80, 0x80, "Game Mode") PORT_DIPLOCATION("SW(C):8")
+ PORT_DIPSETTING( 0x80, "Game" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Test ) )
+INPUT_PORTS_END
+
+
+static INPUT_PORTS_START( sgyxz )
+ PORT_START ("IN0")
+ 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_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
+ PORT_SERVICE_NO_TOGGLE( 0x40, IP_ACTIVE_LOW )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START ("DSWA")
+ PORT_DIPNAME( 0x03, 0x00, "Play Mode" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Normal ) )
+ PORT_DIPSETTING( 0x03, "Tournament" )
+ PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START ("DSWB")
+ PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coinage ) )
+ PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( 1C_3C ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( 1C_4C ) )
+ PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START ("DSWC")
+ PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNKNOWN )
+
+ PORT_START ("IN1")
+ PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
+ PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) 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 ("IN2") /* Player 3 */
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3)
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3)
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3)
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN3 )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START3 )
+
+ PORT_START( "EEPROMIN" )
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, do_read)
+
+ PORT_START( "EEPROMOUT" )
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, di_write)
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, clk_write)
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, cs_write)
+INPUT_PORTS_END
+
+
+MACHINE_START_MEMBER(cps_state,fcrash)
+{
+ uint8_t *ROM = memregion("audiocpu")->base();
+
+ membank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x4000);
+
+ m_layer_enable_reg = 0x20;
+ m_layer_mask_reg[0] = 0x26;
+ m_layer_mask_reg[1] = 0x30;
+ m_layer_mask_reg[2] = 0x28;
+ m_layer_mask_reg[3] = 0x32;
+ m_layer_scroll1x_offset = 62;
+ m_layer_scroll2x_offset = 60;
+ m_layer_scroll3x_offset = 64;
+ m_sprite_base = 0x50c8;
+ m_sprite_list_end_marker = 0x8000;
+ m_sprite_x_offset = 0;
+
+ save_item(NAME(m_sample_buffer1));
+ save_item(NAME(m_sample_buffer2));
+ save_item(NAME(m_sample_select1));
+ save_item(NAME(m_sample_select2));
+}
+
+MACHINE_START_MEMBER(cps_state,sgyxz)
+{
+ MACHINE_START_CALL_MEMBER(kodb);
+ m_layer_scroll1x_offset = 0x40;
+ m_layer_scroll2x_offset = 0x40;
+ m_layer_scroll3x_offset = 0x40;
+ membank("bank1")->configure_entries(0, 2, memregion("audiocpu")->base() + 0x10000, 0x4000);
+}
+
+MACHINE_START_MEMBER(cps_state,kodb)
+{
+ m_layer_enable_reg = 0x20;
+ m_layer_mask_reg[0] = 0x2e;
+ m_layer_mask_reg[1] = 0x2c;
+ m_layer_mask_reg[2] = 0x2a;
+ m_layer_mask_reg[3] = 0x28;
+ m_layer_scroll1x_offset = 0;
+ m_layer_scroll2x_offset = 0;
+ m_layer_scroll3x_offset = 0;
+ m_sprite_base = 0x1000;
+ m_sprite_list_end_marker = 0xffff;
+ m_sprite_x_offset = 0;
+}
+
+MACHINE_START_MEMBER(cps_state, cawingbl)
+{
+ MACHINE_START_CALL_MEMBER(fcrash);
+
+ m_layer_enable_reg = 0x0c;
+ m_layer_mask_reg[0] = 0x0a;
+ m_layer_mask_reg[1] = 0x08;
+ m_layer_mask_reg[2] = 0x06;
+ m_layer_mask_reg[3] = 0x04;
+ m_layer_scroll1x_offset = 63;
+ m_layer_scroll2x_offset = 62;
+ m_layer_scroll3x_offset = 65;
+ m_sprite_base = 0x1000;
+}
+
+MACHINE_START_MEMBER(cps_state, sf2mdt)
+{
+ uint8_t *ROM = memregion("audiocpu")->base();
+
+ membank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x4000);
+
+ m_layer_enable_reg = 0x26;
+ m_layer_mask_reg[0] = 0x28;
+ m_layer_mask_reg[1] = 0x2a;
+ m_layer_mask_reg[2] = 0x2c;
+ m_layer_mask_reg[3] = 0x2e;
+ m_layer_scroll1x_offset = 0;
+ m_layer_scroll2x_offset = 0;
+ m_layer_scroll3x_offset = 0;
+ m_sprite_base = 0x1000;
+ m_sprite_list_end_marker = 0x8000;
+ m_sprite_x_offset = 2;
+
+ save_item(NAME(m_sample_buffer1));
+ save_item(NAME(m_sample_buffer2));
+ save_item(NAME(m_sample_select1));
+ save_item(NAME(m_sample_select2));
+}
+
+MACHINE_START_MEMBER(cps_state, knightsb)
+{
+ uint8_t *ROM = memregion("audiocpu")->base();
+
+ membank("bank1")->configure_entries(0, 16, &ROM[0x10000], 0x4000);
+
+ m_layer_enable_reg = 0x30;
+ m_layer_mask_reg[0] = 0x28;
+ m_layer_mask_reg[1] = 0x2a;
+ m_layer_mask_reg[2] = 0x2c;
+ m_layer_mask_reg[3] = 0x2e;
+ m_layer_scroll1x_offset = 0x3e; //text
+ m_layer_scroll2x_offset = 0x3c; //bricks around scores
+ m_layer_scroll3x_offset = 0x40; //hill with sword going in
+ m_sprite_base = 0x1000;
+ m_sprite_list_end_marker = 0x8000;
+ m_sprite_x_offset = 0;
+}
+
+MACHINE_START_MEMBER(cps_state, sf2m1)
+{
+ uint8_t *ROM = memregion("audiocpu")->base();
+
+ membank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x4000);
+
+ m_layer_enable_reg = 0x26;
+ m_layer_mask_reg[0] = 0x28;
+ m_layer_mask_reg[1] = 0x2a;
+ m_layer_mask_reg[2] = 0x2c;
+ m_layer_mask_reg[3] = 0x2e;
+ m_layer_scroll1x_offset = 0x3e;
+ m_layer_scroll2x_offset = 0x3c;
+ m_layer_scroll3x_offset = 0x40;
+ m_sprite_base = 0x1000;
+ m_sprite_list_end_marker = 0x8000;
+ m_sprite_x_offset = 0;
+}
+
+MACHINE_RESET_MEMBER(cps_state,fcrash)
+{
+ m_sample_buffer1 = 0;
+ m_sample_buffer2 = 0;
+ m_sample_select1 = 0;
+ m_sample_select2 = 0;
+}
+
+static MACHINE_CONFIG_START( fcrash )
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", M68000, 10000000)
+ MCFG_CPU_PROGRAM_MAP(fcrash_map)
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", cps_state, cps1_interrupt)
+
+ MCFG_CPU_ADD("audiocpu", Z80, 24000000/6) /* ? */
+ MCFG_CPU_PROGRAM_MAP(sound_map)
+
+ MCFG_MACHINE_START_OVERRIDE(cps_state,fcrash)
+ MCFG_MACHINE_RESET_OVERRIDE(cps_state,fcrash)
+
+ /* 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(8*8, (64-8)*8-1, 2*8, 30*8-1 )
+ MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_fcrash)
+ MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(cps_state, screen_vblank_cps1))
+ MCFG_SCREEN_PALETTE("palette")
+
+ MCFG_GFXDECODE_ADD("gfxdecode", "palette", cps1)
+ MCFG_PALETTE_ADD("palette", 4096)
+
+ MCFG_VIDEO_START_OVERRIDE(cps_state,cps1)
+
+ // sound hardware
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+ MCFG_GENERIC_LATCH_8_ADD("soundlatch")
+
+ MCFG_SOUND_ADD("ym1", YM2203, 24000000/6) /* ? */
+ MCFG_SOUND_ROUTE(0, "mono", 0.10)
+ MCFG_SOUND_ROUTE(1, "mono", 0.10)
+ MCFG_SOUND_ROUTE(2, "mono", 0.10)
+ MCFG_SOUND_ROUTE(3, "mono", 1.0)
+
+ MCFG_SOUND_ADD("ym2", YM2203, 24000000/6) /* ? */
+ MCFG_SOUND_ROUTE(0, "mono", 0.10)
+ MCFG_SOUND_ROUTE(1, "mono", 0.10)
+ MCFG_SOUND_ROUTE(2, "mono", 0.10)
+ MCFG_SOUND_ROUTE(3, "mono", 1.0)
+
+ MCFG_SOUND_ADD("msm1", MSM5205, 24000000/64) /* ? */
+ MCFG_MSM5205_VCLK_CB(WRITELINE(cps_state, m5205_int1)) /* interrupt function */
+ MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) /* 4KHz 4-bit */
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
+
+ MCFG_SOUND_ADD("msm2", MSM5205, 24000000/64) /* ? */
+ MCFG_MSM5205_VCLK_CB(WRITELINE(cps_state, m5205_int2)) /* interrupt function */
+ MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) /* 4KHz 4-bit */
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
+MACHINE_CONFIG_END
+
+// HBMAME start
+static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 8, cps_state )
+ AM_RANGE(0x0000, 0x7fff) AM_ROM
+ AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
+ AM_RANGE(0xd000, 0xd7ff) AM_RAM
+ AM_RANGE(0xf000, 0xf001) AM_DEVREADWRITE("2151", ym2151_device, read, write)
+ AM_RANGE(0xf002, 0xf002) AM_DEVREADWRITE("oki", okim6295_device, read, write)
+ AM_RANGE(0xf004, 0xf004) AM_WRITE(cps1_snd_bankswitch_w)
+ AM_RANGE(0xf006, 0xf006) AM_WRITE(cps1_oki_pin7_w) /* controls pin 7 of OKI chip */
+ AM_RANGE(0xf008, 0xf008) AM_DEVREAD("soundlatch", generic_latch_8_device, read) /* Sound command */
+ AM_RANGE(0xf00a, 0xf00a) AM_DEVREAD("soundlatch2", generic_latch_8_device, read) /* Sound timer fade */
+ADDRESS_MAP_END
+
+static MACHINE_CONFIG_START( cawingb )
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", M68000, XTAL_10MHz ) /* verified on pcb */
+ MCFG_CPU_PROGRAM_MAP(fcrash_map)
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", cps_state, cps1_interrupt)
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", cps_state, irq6_line_hold) /* needed to write to scroll values */
+
+ MCFG_CPU_ADD("audiocpu", Z80, XTAL_3_579545MHz) /* verified on pcb */
+ MCFG_CPU_PROGRAM_MAP(sub_map)
+
+ MCFG_MACHINE_START_OVERRIDE(cps_state, cawingbl)
+
+ /* video hardware */
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_RAW_PARAMS(XTAL_16MHz/2, 518, 64, 448, 259, 16, 240)
+ MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_fcrash)
+ MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(cps_state, screen_vblank_cps1))
+ MCFG_SCREEN_PALETTE("palette")
+ MCFG_GFXDECODE_ADD("gfxdecode", "palette", cps1)
+ MCFG_PALETTE_ADD("palette", 0xc00)
+
+ MCFG_VIDEO_START_OVERRIDE(cps_state,cps1)
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+ MCFG_GENERIC_LATCH_8_ADD("soundlatch")
+ MCFG_GENERIC_LATCH_8_ADD("soundlatch2")
+
+ MCFG_YM2151_ADD("2151", XTAL_3_579545MHz) /* verified on pcb */
+ MCFG_YM2151_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
+ MCFG_SOUND_ROUTE(0, "mono", 0.35)
+ MCFG_SOUND_ROUTE(1, "mono", 0.35)
+
+ MCFG_OKIM6295_ADD("oki", XTAL_16MHz/4/4, PIN7_HIGH)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
+MACHINE_CONFIG_END
+// HBMAME end
+static MACHINE_CONFIG_DERIVED( cawingbl, fcrash )
+ /* basic machine hardware */
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", cps_state, irq6_line_hold) /* needed to write to scroll values */
+
+ MCFG_MACHINE_START_OVERRIDE(cps_state, cawingbl)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_START( kodb )
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", M68000, 10000000)
+ MCFG_CPU_PROGRAM_MAP(fcrash_map)
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", cps_state, cps1_interrupt)
+
+ MCFG_CPU_ADD("audiocpu", Z80, 3579545)
+ MCFG_CPU_PROGRAM_MAP(kodb_sound_map)
+
+ MCFG_MACHINE_START_OVERRIDE(cps_state,kodb)
+
+ /* 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(8*8, (64-8)*8-1, 2*8, 30*8-1 )
+ MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_fcrash)
+ MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(cps_state, screen_vblank_cps1))
+ MCFG_SCREEN_PALETTE("palette")
+
+ MCFG_GFXDECODE_ADD("gfxdecode", "palette", cps1)
+ MCFG_PALETTE_ADD("palette", 0xc00)
+
+ MCFG_VIDEO_START_OVERRIDE(cps_state,cps1)
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+ MCFG_GENERIC_LATCH_8_ADD("soundlatch")
+
+ MCFG_YM2151_ADD("2151", XTAL_3_579545MHz) /* verified on pcb */
+ MCFG_YM2151_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
+ MCFG_SOUND_ROUTE(0, "mono", 0.35)
+ MCFG_SOUND_ROUTE(1, "mono", 0.35)
+
+ /* CPS PPU is fed by a 16mhz clock,pin 117 outputs a 4mhz clock which is divided by 4 using 2 74ls74 */
+ MCFG_OKIM6295_ADD("oki", XTAL_16MHz/4/4, PIN7_HIGH) // pin 7 can be changed by the game code, see f006 on z80
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_START( sf2mdt )
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", M68000, 12000000)
+ MCFG_CPU_PROGRAM_MAP(sf2mdt_map)
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", cps_state, irq4_line_hold) /* triggers the sprite ram and scroll writes */
+
+ MCFG_CPU_ADD("audiocpu", Z80, 3579545)
+ MCFG_CPU_PROGRAM_MAP(sf2mdt_z80map)
+
+ MCFG_MACHINE_START_OVERRIDE(cps_state, sf2mdt)
+ MCFG_MACHINE_RESET_OVERRIDE(cps_state,fcrash)
+
+ /* 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(8*8, (64-8)*8-1, 2*8, 30*8-1 )
+ MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_fcrash)
+ MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(cps_state, screen_vblank_cps1))
+ MCFG_SCREEN_PALETTE("palette")
+
+ MCFG_GFXDECODE_ADD("gfxdecode", "palette", cps1)
+ MCFG_PALETTE_ADD("palette", 4096)
+
+ MCFG_VIDEO_START_OVERRIDE(cps_state,cps1)
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+
+ MCFG_YM2151_ADD("2151", 3579545)
+ MCFG_SOUND_ROUTE(0, "mono", 0.35)
+ MCFG_SOUND_ROUTE(1, "mono", 0.35)
+
+ /* has 2x MSM5205 instead of OKI6295 */
+ MCFG_SOUND_ADD("msm1", MSM5205, 24000000/64) /* ? */
+ MCFG_MSM5205_VCLK_CB(WRITELINE(cps_state, m5205_int1)) /* interrupt function */
+ MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) /* 4KHz 4-bit */
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
+
+ MCFG_SOUND_ADD("msm2", MSM5205, 24000000/64) /* ? */
+ MCFG_MSM5205_VCLK_CB(WRITELINE(cps_state, m5205_int2)) /* interrupt function */
+ MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) /* 4KHz 4-bit */
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( sf2b, sf2mdt)
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(sf2b_map)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_START( knightsb )
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", M68000, 24000000 / 2)
+ MCFG_CPU_PROGRAM_MAP(knightsb_map)
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", cps_state, cps1_interrupt)
+
+ MCFG_CPU_ADD("audiocpu", Z80, 29821000 / 8)
+ MCFG_CPU_PROGRAM_MAP(knightsb_z80map)
+
+ MCFG_MACHINE_START_OVERRIDE(cps_state, knightsb)
+
+ /* 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(8*8, (64-8)*8-1, 2*8, 30*8-1 )
+ MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_fcrash)
+ MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(cps_state, screen_vblank_cps1))
+ MCFG_SCREEN_PALETTE("palette")
+
+ MCFG_GFXDECODE_ADD("gfxdecode", "palette", cps1)
+ MCFG_PALETTE_ADD("palette", 0xc00)
+
+ MCFG_VIDEO_START_OVERRIDE(cps_state,cps1)
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+
+ MCFG_YM2151_ADD("2151", 29821000 / 8)
+ MCFG_YM2151_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
+ MCFG_SOUND_ROUTE(0, "mono", 0.35)
+ MCFG_SOUND_ROUTE(1, "mono", 0.35)
+
+ /* has 2x MSM5205 instead of OKI6295 */
+ MCFG_SOUND_ADD("msm1", MSM5205, 24000000/64) /* ? */
+ MCFG_MSM5205_VCLK_CB(WRITELINE(cps_state, m5205_int1)) /* interrupt function */
+ MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) /* 4KHz 4-bit */
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
+
+ MCFG_SOUND_ADD("msm2", MSM5205, 24000000/64) /* ? */
+ MCFG_MSM5205_VCLK_CB(WRITELINE(cps_state, m5205_int2)) /* interrupt function */
+ MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) /* 4KHz 4-bit */
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
+MACHINE_CONFIG_END
+
+#define CODE_SIZE 0x400000
+
+// ************************************************************************* FCRASH
+
+ROM_START( fcrash )
+ 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) // fix transitions HBMAME
+
+ 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( "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) )
+ 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
+
+ROM_START( ffightbl )
+ ROM_REGION( 0x400000, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "fg-e.bin", 0x00000, 0x80000, CRC(f8ccf27e) SHA1(08ff445d946da81e7dc0cc021f686b5968fa34ab) )
+ ROM_LOAD16_BYTE( "fg-f.bin", 0x00001, 0x80000, CRC(d96c76b2) SHA1(3f9ca4625491cab07cf4a1bf001f1325dc3652a3) )
+ ROM_FILL(0x2610, 1, 7) // fix transitions HBMAME
+
+ 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( "fg-d.bin", 0x000000, 0x80000, CRC(4303f863) SHA1(72a3246e14f9c4d1fb4712bd67d087db42d722d9) , ROM_SKIP(3) )
+ ROMX_LOAD( "fg-c.bin", 0x000001, 0x80000, CRC(d1dfcd2d) SHA1(8796db70459e1e6232a75f5c3f4bf8b227b16f46) , ROM_SKIP(3) )
+ ROMX_LOAD( "fg-b.bin", 0x000002, 0x80000, CRC(22f2c097) SHA1(bbf2d30d31c5a7802b7f7f164dd51a4584511936) , ROM_SKIP(3) )
+ ROMX_LOAD( "fg-a.bin", 0x000003, 0x80000, CRC(16a89b2c) SHA1(4d0e1ec6ae9a2bd31fa77140532bbce64d3874e9) , ROM_SKIP(3) )
+
+ ROM_REGION( 0x8000, "gfx2", 0 )
+ 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) // fix transitions HBMAME
+
+ 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
+
+
+
+// ************************************************************************* KODB
+
+/*
+CPU
+
+1x TS68000CP12 (main)
+1x TPC1020AFN-084C
+1x Z8400BB1-Z80CPU (sound)
+1x YM2151 (sound)
+1x YM3012A (sound)
+1x OKI-M6295 (sound)
+2x LM324N (sound)
+1x TDA2003 (sound)
+1x oscillator 10.0 MHz
+1x oscillator 22.1184 MHz
+
+ROMs
+
+1x AM27C512 (1)(sound)
+1x AM27C020 (2)(sound)
+2x AM27C040 (3,4)(main)
+1x Am27C040 (bp)(gfx)
+7x maskrom (ai,bi,ci,di,ap,cp,dp)(gfx)
+1x GAL20V8A (not dumped)
+3x GAL16V8A (not dumped)
+1x PALCE20V8H (not dumped)
+1x GAL20V8S (not dumped)
+
+Note
+
+1x JAMMA edge connector
+1x trimmer (volume)
+3x 8 switches dip
+
+*/
+
+ROM_START( kodb )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "3.ic172", 0x00000, 0x080000, CRC(036dd74c) SHA1(489344e56863429e86b4c362b82d89819c1d6afb) )
+ ROM_LOAD16_BYTE( "4.ic171", 0x00001, 0x080000, CRC(3e4b7295) SHA1(3245640bae7d141238051dfe5c7683d05c6d3848) )
+ ROM_FILL( 0x952, 1, 7) // fix transitions HBMAME
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "1.ic28", 0x00000, 0x08000, CRC(01cae60c) SHA1(b2cdd883fd859f0b701230831aca1f1a74ad6087) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cp.ic90", 0x000000, 0x80000, CRC(e3b8589e) SHA1(775f97e43cb995b93da40063a1f1e4d73b34437c), ROM_SKIP(7) )
+ ROMX_LOAD( "dp.ic89", 0x000001, 0x80000, CRC(3eec9580) SHA1(3d8d0cfbeae077544e514a5eb96cc83f716e494f), ROM_SKIP(7) )
+ ROMX_LOAD( "ap.ic88", 0x000002, 0x80000, CRC(fdf5f163) SHA1(271ee96886c958accaca9a82484ab80fe32bd38e), ROM_SKIP(7) )
+ ROMX_LOAD( "bp.ic87", 0x000003, 0x80000, CRC(4e1c52b7) SHA1(74570e7d577c999c62203c97b3d449e3b61a678a), ROM_SKIP(7) )
+ ROMX_LOAD( "ci.ic91", 0x000004, 0x80000, CRC(22228bc5) SHA1(d48a09ee284d9e4b986f5c3c1c865930f76986e2), ROM_SKIP(7) )
+ ROMX_LOAD( "di.ic92", 0x000005, 0x80000, CRC(ab031763) SHA1(5bcd89b1debf029b779aa1bb73b3a572d27154ec), ROM_SKIP(7) )
+ ROMX_LOAD( "ai.ic93", 0x000006, 0x80000, CRC(cffbf4be) SHA1(f805bafc855d4a656c055a76eaeb26e36835541e), ROM_SKIP(7) )
+ ROMX_LOAD( "bi.ic94", 0x000007, 0x80000, CRC(4a1b43fe) SHA1(7957f45b2862825c9509043c63c7da7108bd251b), ROM_SKIP(7) )
+
+ ROM_REGION( 0x8000, "gfx2", 0 )
+ ROM_COPY( "gfx", 0x000000, 0x000000, 0x8000 ) /* stars */
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "2.ic19", 0x00000, 0x40000, CRC(a2db1575) SHA1(1a4a29e4b045af50700adf1665697feab12cc234) )
+ROM_END
+
+DRIVER_INIT_MEMBER(cps_state, kodb)
+{
+ m_maincpu->space(AS_PROGRAM).install_read_port(0x800000, 0x800007, "IN1");
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x800018, 0x80001f, read16_delegate(FUNC(cps_state::cps1_dsw_r),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x800180, 0x800187, write16_delegate(FUNC(cps_state::cps1_soundlatch_w),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x980000, 0x98002f, write16_delegate(FUNC(cps_state::kodb_layer_w),this));
+
+ /* the original game alternates between 2 sprite ram areas to achieve flashing sprites - the bootleg doesn't do the write to the register to achieve this
+ mapping both sprite ram areas to the same bootleg sprite ram - similar to how sf2mdt works */
+ m_bootleg_sprite_ram = std::make_unique<uint16_t[]>(0x2000);
+ m_maincpu->space(AS_PROGRAM).install_ram(0x900000, 0x903fff, m_bootleg_sprite_ram.get());
+ m_maincpu->space(AS_PROGRAM).install_ram(0x904000, 0x907fff, m_bootleg_sprite_ram.get()); /* both of these need to be mapped */
+
+ DRIVER_INIT_CALL(cps1);
+}
+
+
+
+// ************************************************************************* KNIGHTSB
+
+/*
+
+CPU:
+
+1x MC68000P12 ic65 main
+1x Z0840006PSC ic1 sound
+1x YM2151 ic29 sound
+1x YM3012 ic30 sound
+2x LM324 ic15,ic31 sound
+2x M5205 ic184,ic185 sound
+1x TDA2003 ic14 sound
+1x oscillator 24.000000MHz (close to main)
+1x oscillator 29.821000MHz (close to sound)
+
+ROMs
+
+5x M27C2001 1,2,3,4,5 dumped
+4x maskrom KA,KB,KC,KD not dumped
+
+RAMs:
+
+4x KM62256ALP ic112,ic113,ic168,ic170
+1x SYC6116L ic24
+1x MCM2018AN ic7,ic8,ic51,ic56,ic70,ic71,ic77,ic78
+
+PLDs:
+
+1x TPC1020AFN ic116 read protected
+3x GAL20V8A ic120,ic121,ic169 read protected
+3x GAL16V8A ic7,ic72,ic80 read protected
+
+Note:
+
+1x JAMMA edge connector
+2x 10 legs connector
+1x trimmer (volume)
+3x 8x2 switches DIP
+
+*/
+/* bootleg */
+/* FIXME - GFX ROMs are wrong, copied from the other version */
+/* ROMs missing are KA.IC91 KB.IC92 KC.IC93 KD.IC94 */
+ROM_START( knightsb )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "3.ic173", 0x00001, 0x40000, CRC(c9c6e720) SHA1(e8a1cd73458b548e88fc49d8f659e0dc33a8e756) )
+ ROM_LOAD16_BYTE( "5.ic172", 0x00000, 0x40000, CRC(7fd91118) SHA1(d2832b21309a467938891946d7af35d8095787a4) )
+ ROM_LOAD16_BYTE( "2.ic175", 0x80001, 0x40000, CRC(1eb91343) SHA1(e02cfbbd7689346f14f2e3455ed17e7f0b51bad0) )
+ ROM_LOAD16_BYTE( "4.ic176", 0x80000, 0x40000, CRC(af352703) SHA1(7855ac65752203f45af4ef41af8c291540a1c8a8) )
+
+ ROM_REGION( 0x400000, "gfx", 0 ) /* bootleg had 4x 1meg MASKroms, these need dumping so that the format is known */
+ ROMX_LOAD( "kr_gfx1.rom", 0x000000, 0x80000, BAD_DUMP CRC(9e36c1a4) SHA1(772daae74e119371dfb76fde9775bda78a8ba125) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr_gfx3.rom", 0x000002, 0x80000, BAD_DUMP CRC(c5832cae) SHA1(a188cf401cd3a2909b377d3059f14d22ec3b0643) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr_gfx2.rom", 0x000004, 0x80000, BAD_DUMP CRC(f095be2d) SHA1(0427d1574062f277a9d04440019d5638b05de561) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr_gfx4.rom", 0x000006, 0x80000, BAD_DUMP CRC(179dfd96) SHA1(b1844e69da7ab13474da569978d5b47deb8eb2be) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr_gfx5.rom", 0x200000, 0x80000, BAD_DUMP CRC(1f4298d2) SHA1(4b162a7f649b0bcd676f8ca0c5eee9a1250d6452) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr_gfx7.rom", 0x200002, 0x80000, BAD_DUMP CRC(37fa8751) SHA1(b88b39d1f08621f15a5620095aef998346fa9891) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr_gfx6.rom", 0x200004, 0x80000, BAD_DUMP CRC(0200bc3d) SHA1(c900b1be2b4e49b951e5c1e3fd1e19d21b82986e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "kr_gfx8.rom", 0x200006, 0x80000, BAD_DUMP CRC(0bb2b4e7) SHA1(983b800925d58e4aeb4e5105f93ed5faf66d009c) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x50000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "1.ic26", 0x00000, 0x40000, CRC(bd6f9cc1) SHA1(9f33cccef224d2204736a9eae761196866bd6e41) )
+ ROM_RELOAD( 0x10000, 0x40000 )
+ROM_END
+
+
+
+// ************************************************************************* CAWINGBL, CAWINGB2
+
+ROM_START( cawingbl )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "caw2.bin", 0x00000, 0x80000, CRC(8125d3f0) SHA1(a0e48c326c6164ca189c9372f5c38a7c103772c1) )
+ ROM_LOAD16_BYTE( "caw1.bin", 0x00001, 0x80000, CRC(b19b10ce) SHA1(3c71f1dc830d1e8b8ba26d8a71e12f477659480c) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "caw7.bin", 0x000000, 0x80000, CRC(a045c689) SHA1(8946c55635121282ea03586a278e50de20d92633) , ROM_SKIP(3) )
+ ROMX_LOAD( "caw6.bin", 0x000001, 0x80000, CRC(61192f7c) SHA1(86643c62653a62a5c7541d50cfdecae9b607440d) , ROM_SKIP(3) )
+ ROMX_LOAD( "caw5.bin", 0x000002, 0x80000, CRC(30dd78db) SHA1(e0295001d6f5fb4a9276c432f971e88f73c5e39a) , ROM_SKIP(3) )
+ ROMX_LOAD( "caw4.bin", 0x000003, 0x80000, CRC(4937fc41) SHA1(dac179715be483a521df8e515afc1fb7a2cd8f13) , ROM_SKIP(3) )
+
+ ROM_REGION( 0x30000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "caw3.bin", 0x00000, 0x20000, CRC(ffe16cdc) SHA1(8069ea69f0b89d61c35995c8040a4989d7be9c1f) )
+ ROM_RELOAD( 0x10000, 0x20000 )
+ROM_END
+
+ROM_START( cawingb2 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "8.8", 0x00000, 0x20000, CRC(f655708c) SHA1(9962a1c96ea08bc71b25d4f58e5d1fb1beebf0dc) )
+ ROM_LOAD16_BYTE( "4.4", 0x00001, 0x20000, CRC(a02fb5aa) SHA1(c9c064a83899c48f681ac803cfc5886503b9d992) )
+ ROM_LOAD16_BYTE( "7.7", 0x40000, 0x20000, CRC(8c6c7430) SHA1(3ed5713caf774b050b41a6adea026e1307b570df) )
+ ROM_LOAD16_BYTE( "3.3", 0x40001, 0x20000, CRC(f585bf2c) SHA1(3a3169791f8deace8d9bee1adb08f19fbcd309c6) )
+ ROM_LOAD16_BYTE( "6.6", 0x80000, 0x20000, CRC(5fda906e) SHA1(7b3ef17d494a2f92e58ab7e34a3beaad8c149fca) )
+ ROM_LOAD16_BYTE( "2.2", 0x80001, 0x20000, CRC(736c1835) SHA1(a91f479fab30603a111304adc0478d430faa80fc) )
+ ROM_LOAD16_BYTE( "5.5", 0xc0000, 0x20000, CRC(76458083) SHA1(cbb4ef5f7615c834b2ee1ad3c86e7262f2f62c01) )
+ ROM_LOAD16_BYTE( "1.1", 0xc0001, 0x20000, CRC(d3523f34) SHA1(005ea378c2b78782f85ecc591946c027ca2ca023) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "17.17", 0x000000, 0x20000, CRC(0b538062) SHA1(ac6e5dc82efdca311adfe6e6cdda160ad4a0d04d) , ROM_SKIP(3) )
+ ROMX_LOAD( "19.19", 0x000001, 0x20000, CRC(3ad62311) SHA1(1c132696b55191d16af30ebd36d2320d979eab36) , ROM_SKIP(3) )
+ ROMX_LOAD( "21.21", 0x000002, 0x20000, CRC(1b872a98) SHA1(7a3f72c6d384dfa8e224f93604997a7b6e5c8926) , ROM_SKIP(3) )
+ ROMX_LOAD( "23.23", 0x000003, 0x20000, CRC(ad49eecd) SHA1(39909996765391ed734a02c74f683e1bd9ce1561) , ROM_SKIP(3) )
+ ROMX_LOAD( "9.9", 0x080000, 0x20000, CRC(8cd4df5b) SHA1(771b6d6a6baa95a669335fe64e2219fe7226e140) , ROM_SKIP(3) )
+ ROMX_LOAD( "11.11", 0x080001, 0x20000, CRC(bf14418a) SHA1(7a0e1c65b8825a252338d6c1db59a88966ec6cfb) , ROM_SKIP(3) )
+ ROMX_LOAD( "13.13", 0x080002, 0x20000, CRC(cef1aab8) SHA1(677a889b939ff00e95737a4a53053744bb6744c0) , ROM_SKIP(3) )
+ ROMX_LOAD( "15.15", 0x080003, 0x20000, CRC(397725dc) SHA1(9450362bbf2f91b4225a088d6e283d7b16407b74) , ROM_SKIP(3) )
+ ROMX_LOAD( "18.18", 0x100000, 0x20000, CRC(9b14f7ed) SHA1(72b6e1174d4faab487261aa6739de842d2423e1a) , ROM_SKIP(3) )
+ ROMX_LOAD( "20.20", 0x100001, 0x20000, CRC(59bcc1bb) SHA1(c725060e068294dea1d962c54a9018050fa70297) , ROM_SKIP(3) )
+ ROMX_LOAD( "22.22", 0x100002, 0x20000, CRC(23dc647a) SHA1(2d8d4c4c7b2d0616430360d1639b07216dd731d6) , ROM_SKIP(3) )
+ ROMX_LOAD( "24.24", 0x100003, 0x20000, CRC(eda9fa6b) SHA1(4a3510ce71b015a1ea568fd0bbe61c5c093a2fbf) , ROM_SKIP(3) )
+ ROMX_LOAD( "10.10", 0x180000, 0x20000, CRC(17174249) SHA1(71c6424ab4629065dd6af8bb47b18f5b5d0fbe49) , ROM_SKIP(3) )
+ ROMX_LOAD( "12.12", 0x180001, 0x20000, CRC(490440b2) SHA1(2597bf16340308f84b32cfa048c426db571b4a35) , ROM_SKIP(3) )
+ ROMX_LOAD( "14.14", 0x180002, 0x20000, CRC(344a8270) SHA1(fdb588a7ba60783225e3b5c72446f79625de4f9c) , ROM_SKIP(3) )
+ ROMX_LOAD( "16.16", 0x180003, 0x20000, CRC(b991ad91) SHA1(5c59131ddf068cb54d23f8836293360fbc967d58) , ROM_SKIP(3) )
+
+ ROM_REGION( 0x30000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "5.a", 0x00000, 0x20000, CRC(ffe16cdc) SHA1(8069ea69f0b89d61c35995c8040a4989d7be9c1f) )
+ ROM_RELOAD( 0x10000, 0x20000 )
+ROM_END
+
+DRIVER_INIT_MEMBER(cps_state, cawingbl)
+{
+ m_maincpu->space(AS_PROGRAM).install_read_port(0x882000, 0x882001, "IN1");
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x882006, 0x882007, write16_delegate(FUNC(cps_state::cawingbl_soundlatch_w),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x882008, 0x88200f, read16_delegate(FUNC(cps_state::cps1_dsw_r),this));
+
+ DRIVER_INIT_CALL(cps1);
+}
+
+// HBMAME start
+ROM_START( cawingb )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "2.16d", 0x00000, 0x80000, CRC(8125d3f0) SHA1(a0e48c326c6164ca189c9372f5c38a7c103772c1) )
+ ROM_LOAD16_BYTE( "1.19d", 0x00001, 0x80000, CRC(b19b10ce) SHA1(3c71f1dc830d1e8b8ba26d8a71e12f477659480c) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "ca-5m.7a", 0x000000, 0x80000, CRC(66d4cc37) SHA1(d355ea64ff29d228dcbfeee72bcf11882bf1cd9d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ca-7m.9a", 0x000002, 0x80000, CRC(b6f896f2) SHA1(bdb6820b81fbce77d7eacb01777af7c380490402) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ca-1m.3a", 0x000004, 0x80000, CRC(4d0620fd) SHA1(5f62cd551b6a230edefd81fa60c10c84186ca804) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ca-3m.5a", 0x000006, 0x80000, CRC(0b0341c3) SHA1(c31f0e78f49d94ea9dea20eb0cbd98a6c613bcbf) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "ca_9.12b", 0x00000, 0x08000, CRC(96fe7485) SHA1(10466889dfc6bc8afd3075385e241a16372efbeb) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "ca_18.11c", 0x00000, 0x20000, CRC(4a613a2c) SHA1(06e10644fc60925b85d2ca0888c9fa057bfe996a) )
+ ROM_LOAD( "ca_19.12c", 0x20000, 0x20000, CRC(74584493) SHA1(5cfb15f1b9729323707972646313aee8ab3ac4eb) )
+ROM_END
+// HBMAME end
+
+
+// ************************************************************************* DINOPIC, DINOPIC2
+
+MACHINE_START_MEMBER(cps_state, dinopic)
+{
+ m_layer_enable_reg = 0x0a;
+ m_layer_mask_reg[0] = 0x0c;
+ m_layer_mask_reg[1] = 0x0e;
+ m_layer_mask_reg[2] = 0x00;
+ m_layer_mask_reg[3] = 0x02;
+ m_layer_scroll1x_offset = 0x40;
+ m_layer_scroll2x_offset = 0x40;
+ m_layer_scroll3x_offset = 0x40;
+ m_sprite_base = 0x1000;
+ m_sprite_list_end_marker = 0x8000;
+ m_sprite_x_offset = 0;
+}
+
+static MACHINE_CONFIG_START( dinopic )
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", M68000, 12000000)
+ MCFG_CPU_PROGRAM_MAP(dinopic_map)
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", cps_state, cps1_interrupt)
+
+ //MCFG_CPU_ADD("audiocpu", PIC16C57, 12000000)
+ //MCFG_DEVICE_DISABLE() /* no valid dumps .. */
+
+ MCFG_MACHINE_START_OVERRIDE(cps_state, dinopic)
+
+ MCFG_EEPROM_SERIAL_93C46_8BIT_ADD("eeprom")
+
+ /* 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(8*8, (64-8)*8-1, 2*8, 30*8-1 )
+ MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_fcrash)
+ MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(cps_state, screen_vblank_cps1))
+ MCFG_SCREEN_PALETTE("palette")
+
+ MCFG_GFXDECODE_ADD("gfxdecode", "palette", cps1)
+ MCFG_PALETTE_ADD("palette", 0xc00)
+
+ MCFG_VIDEO_START_OVERRIDE(cps_state,cps1)
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+
+ MCFG_OKIM6295_ADD("oki", 1000000, PIN7_HIGH)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
+MACHINE_CONFIG_END
+
+/*
+
+Cadillac Bootleg Hardware:
+
+1x 68000p10
+1x PIC16c57
+1x AD-65
+1x OSC 30mhz
+1x OSC 24mhz
+13x 27c4000 ROMS
+
+*/
+ROM_START( dinopic )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "3.bin", 0x000001, 0x80000, CRC(13dfeb08) SHA1(cd2f9dd64f4fabe93901247e36dff3763169716d) )
+ ROM_LOAD16_BYTE( "5.bin", 0x000000, 0x80000, CRC(96dfcbf1) SHA1(a8bda6edae2c1b79db7ae8a8976fd2457f874373) )
+ ROM_LOAD16_BYTE( "2.bin", 0x100001, 0x80000, CRC(0e4058ba) SHA1(346f9e34ea53dd1bf5cdafa1e38bf2edb09b9a7f) )
+ ROM_LOAD16_BYTE( "7.bin", 0x100000, 0x80000, CRC(6133f349) SHA1(d13af99910623f62c090d25372a2253dbc2f8cbe) )
+
+ ROM_REGION( 0x400000, "gfx", 0 ) // same data, different format, except for 8 which is a 99% match (bad rom?)
+ ROMX_LOAD( "4.bin", 0x000000, 0x40000, CRC(f3c2c98d) SHA1(98ae51a67fa4159456a4a205eebdd8d1775888d1), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000004, 0x40000)
+ ROMX_LOAD( "8.bin", 0x000001, 0x40000, CRC(d574befc) SHA1(56482e7a9aa8439f30e3cf72311495ce677a083d), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000005, 0x40000)
+ ROMX_LOAD( "9.bin", 0x000002, 0x40000, CRC(55ef0adc) SHA1(3b5551ae76ae80882d37fc70a1031a57885d6840), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000006, 0x40000)
+ ROMX_LOAD( "6.bin", 0x000003, 0x40000, CRC(cc0805fc) SHA1(c512734c28b878a30a0de249929f69784d5d77a1), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000007, 0x40000)
+ ROMX_LOAD( "13.bin", 0x200000, 0x40000, CRC(1371f714) SHA1(d2c98096fab08e3d4fd2482e6ebfc970ead656ee), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x200004, 0x40000)
+ ROMX_LOAD( "12.bin", 0x200001, 0x40000, CRC(b284c4a7) SHA1(166f571e0afa115f8e38ba427b40e30abcfd70ee), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x200005, 0x40000)
+ ROMX_LOAD( "11.bin", 0x200002, 0x40000, CRC(b7ad3394) SHA1(58dec34d9d991ff2817c8a7847749716abae6c77), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x200006, 0x40000)
+ ROMX_LOAD( "10.bin", 0x200003, 0x40000, CRC(88847705) SHA1(05dc90067921960e417b7436056a5e1f86abaa1a), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x200007, 0x40000)
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* PIC16c57 - protected, dump isn't valid */
+ ROM_LOAD( "pic16c57-rp", 0x00000, 0x2d4c, BAD_DUMP CRC(5a6d393c) SHA1(1391a1590aff5f75bb6fae1c83eddb796b53135d) )
+
+ ROM_REGION( 0x80000, "oki", 0 ) /* OKI6295 samples */
+ ROM_LOAD( "1.bin", 0x000000, 0x80000, CRC(7d921309) SHA1(d51e60e904d302c2516b734189e141aa171b2b82) )
+ROM_END
+
+/* this is basically the same set as above, from a different bootleg pcb, with a few extra pal dumps etc.
+ the first dump will probably be removed eventually
+
+ CPU
+ 1x TS68000CP10 (main)
+ 1x AD-65 (sound)(equivalent to M6295)
+ 1x PIC16C57-XT/P
+ 1x A1020B-PL84C
+ 1x oscillator 24.000MHz (close to main)
+ 1x oscillator 30.000MHz (close to sound)
+
+ ROMs
+ 13x 27C4000
+ 3x GAL20V8A
+ 3x PALCE16V8H (1 broken not dumped)
+ 1x CAT93C46P
+
+ Note
+ 1x JAMMA edge connector
+ 1x 10 legs connector
+ 1x trimmer (volume)
+*/
+
+ROM_START( dinopic2 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "27c4000-m12374r-2.bin", 0x000001, 0x80000, CRC(13dfeb08) SHA1(cd2f9dd64f4fabe93901247e36dff3763169716d) )
+ ROM_LOAD16_BYTE( "27c4000-m12481.bin", 0x000000, 0x80000, CRC(96dfcbf1) SHA1(a8bda6edae2c1b79db7ae8a8976fd2457f874373) )
+ ROM_LOAD16_BYTE( "27c4000-m12374r-1.bin", 0x100001, 0x80000, CRC(0e4058ba) SHA1(346f9e34ea53dd1bf5cdafa1e38bf2edb09b9a7f) )
+ ROM_LOAD16_BYTE( "27c4000-m12374r-3.bin", 0x100000, 0x80000, CRC(6133f349) SHA1(d13af99910623f62c090d25372a2253dbc2f8cbe) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "27c4000-m12481-4.bin", 0x000000, 0x40000, CRC(f3c2c98d) SHA1(98ae51a67fa4159456a4a205eebdd8d1775888d1), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000004, 0x40000)
+ ROMX_LOAD( "27c4000-m12481-3.bin", 0x000001, 0x40000, BAD_DUMP CRC(417a4816) SHA1(5268f6667ff550a949a08f94171966f5d841c6b2), ROM_SKIP(7) ) // this one is a perfect match, unlike dinopic set
+ ROM_CONTINUE( 0x000005, 0x40000)
+ ROMX_LOAD( "27c4000-m12481-2.bin", 0x000002, 0x40000, CRC(55ef0adc) SHA1(3b5551ae76ae80882d37fc70a1031a57885d6840), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000006, 0x40000)
+ ROMX_LOAD( "27c4000-m12481-1.bin", 0x000003, 0x40000, CRC(cc0805fc) SHA1(c512734c28b878a30a0de249929f69784d5d77a1), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000007, 0x40000)
+ ROMX_LOAD( "27c4000-m12481-8.bin", 0x200000, 0x40000, CRC(1371f714) SHA1(d2c98096fab08e3d4fd2482e6ebfc970ead656ee), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x200004, 0x40000)
+ ROMX_LOAD( "27c4000-m12481-7.bin", 0x200001, 0x40000, CRC(b284c4a7) SHA1(166f571e0afa115f8e38ba427b40e30abcfd70ee), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x200005, 0x40000)
+ ROMX_LOAD( "27c4000-m12481-6.bin", 0x200002, 0x40000, CRC(b7ad3394) SHA1(58dec34d9d991ff2817c8a7847749716abae6c77), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x200006, 0x40000)
+ ROMX_LOAD( "27c4000-m12481-5.bin", 0x200003, 0x40000, CRC(88847705) SHA1(05dc90067921960e417b7436056a5e1f86abaa1a), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x200007, 0x40000)
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* PIC16c57 - protected, dump isn't valid */
+ ROM_LOAD( "pic16c57-xt.hex", 0x00000, 0x26cc, BAD_DUMP CRC(a6a5eac4) SHA1(2039789084836769180f0bfd230c2553a37e2aaf) )
+
+ ROM_REGION( 0x80000, "oki", 0 ) /* OKI6295 samples */
+ ROM_LOAD( "27c4000-m12623.bin", 0x000000, 0x80000, CRC(7d921309) SHA1(d51e60e904d302c2516b734189e141aa171b2b82) )
+
+ ROM_REGION( 0xc00, "user1", 0 ) /* extra bits on this set */
+ ROM_LOAD( "cat93c46p.bin", 0x000, 0x080, CRC(d49fa351) SHA1(e6dfaff1c6aa962d34ae8e82b71e6f394d82e19c) )
+ ROM_LOAD( "gal20v8a-1.bin", 0x200, 0x157, CRC(cd99ca47) SHA1(ee1d990fd294aa46f56f31264134251569f6792e) )
+ ROM_LOAD( "gal20v8a-2.bin", 0x400, 0x157, CRC(60d016b9) SHA1(add42c763c819f3fe6d7cf3adc7123a52c2a3be9) )
+ ROM_LOAD( "gal20v8a-3.bin", 0x600, 0x157, CRC(049b7f4f) SHA1(6c6ea03d9a293db69a8bd10e042ee75e3c01313c) )
+ ROM_LOAD( "palce16v8h-1.bin", 0x800, 0x117, CRC(48253c66) SHA1(8c94e655b768c45c3edf6ef39e62e3b7a4e57530) )
+ ROM_LOAD( "palce16v8h-2.bin", 0xa00, 0x117, CRC(9ae375ba) SHA1(6f227c2a5b1170a41e6419f12d1e1f98edc6f8e5) )
+ROM_END
+
+DRIVER_INIT_MEMBER(cps_state, dinopic)
+{
+ m_bootleg_sprite_ram = std::make_unique<uint16_t[]>(0x2000);
+ m_maincpu->space(AS_PROGRAM).install_ram(0x990000, 0x993fff, m_bootleg_sprite_ram.get());
+ DRIVER_INIT_CALL(cps1);
+}
+
+
+
+// ************************************************************************* SGYXZ
+
+// 24mhz crystal (maincpu), 28.322 crystal (video), 3.579545 crystal (sound)
+// sound cpu is (239 V 249521 VC5006 KABUKI DL-030P-110V) - recycled Kabuki Z80 from genuine Capcom HW?
+// 3x8 dsws
+
+static MACHINE_CONFIG_START( sgyxz )
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", M68000, 12000000)
+ MCFG_CPU_PROGRAM_MAP(sgyxz_map)
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", cps_state, cps1_interrupt)
+
+ MCFG_CPU_ADD("audiocpu", Z80, 3579545)
+ MCFG_CPU_PROGRAM_MAP(sgyxz_sound_map)
+
+ MCFG_MACHINE_START_OVERRIDE(cps_state,sgyxz)
+
+ /* 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(8*8, (64-8)*8-1, 2*8, 30*8-1 )
+ MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_fcrash)
+ MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(cps_state, screen_vblank_cps1))
+ MCFG_SCREEN_PALETTE("palette")
+ MCFG_GFXDECODE_ADD("gfxdecode", "palette", cps1)
+ MCFG_PALETTE_ADD("palette", 0xc00)
+ MCFG_VIDEO_START_OVERRIDE(cps_state,cps1)
+
+ MCFG_EEPROM_SERIAL_93C46_8BIT_ADD("eeprom")
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+
+ MCFG_YM2151_ADD("2151", XTAL_3_579545MHz) /* verified on pcb */
+ MCFG_YM2151_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
+ MCFG_SOUND_ROUTE(0, "mono", 0.35)
+ MCFG_SOUND_ROUTE(1, "mono", 0.35)
+
+ /* CPS PPU is fed by a 16mhz clock,pin 117 outputs a 4mhz clock which is divided by 4 using 2 74ls74 */
+ MCFG_OKIM6295_ADD("oki", XTAL_16MHz/4/4, PIN7_HIGH) // pin 7 can be changed by the game code, see f006 on z80
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
+MACHINE_CONFIG_END
+
+ROM_START( sgyxz )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 Code */
+ ROM_LOAD16_BYTE( "sgyxz_prg1.bin", 0x000001, 0x20000, CRC(d8511929) SHA1(4de9263778f327693f4d1e21b48e43806f673487) )
+ ROM_CONTINUE( 0x80001, 0x20000 )
+ ROM_CONTINUE( 0x40001, 0x20000 )
+ ROM_CONTINUE( 0xc0001, 0x20000 )
+ ROM_LOAD16_BYTE( "sgyxz_prg2.bin", 0x000000, 0x20000, CRC(95429c83) SHA1(e981624d018132e5625a66113b6ac4fc44e55cf7) )
+ ROM_CONTINUE( 0x80000, 0x20000 )
+ ROM_CONTINUE( 0x40000, 0x20000 )
+ ROM_CONTINUE( 0xc0000, 0x20000 )
+ ROM_FILL(0x708da, 4, 0xff) // patch out protections
+ ROM_FILL(0xf11ea, 1, 0x60)
+ ROM_FILL(0x00007, 1, 0xa2) // start address
+ ROM_FILL(0x02448, 1, 0x07) // transitions
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD("sgyxz_gfx1.bin", 0x000000, 0x80000, CRC(a60be9f6) SHA1(2298a4b6a2c83b76dc106a1efa19606b298d378a), ROM_GROUPWORD | ROM_SKIP(6) ) // 'picture 1'
+ ROM_CONTINUE( 0x000004, 0x80000 )
+ ROM_CONTINUE( 0x200000, 0x80000 )
+ ROM_CONTINUE( 0x200004, 0x80000 )
+ ROMX_LOAD("sgyxz_gfx2.bin", 0x000002, 0x80000, CRC(6ad9d048) SHA1(d47212d28d0a1ce349e4c59e5d0d99c541b3458e), ROM_GROUPWORD | ROM_SKIP(6) ) // 'picture 2'
+ ROM_CONTINUE( 0x000006, 0x80000 )
+ ROM_CONTINUE( 0x200002, 0x80000 )
+ ROM_CONTINUE( 0x200006, 0x80000 )
+
+ ROM_REGION( 0x20000, "audiocpu", 0 ) /* Z80 code */
+ ROM_LOAD( "sgyxz_snd2.bin", 0x00000, 0x10000, CRC(210c376f) SHA1(0d937c86078d0a106f5636b7daf5fc0266c2c2ec) )
+ ROM_RELOAD( 0x8000, 0x10000 )
+
+ ROM_REGION( 0x040000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "sgyxz_snd1.bin", 0x00000, 0x40000, CRC(c15ac0f2) SHA1(8d9e5519d9820e4ac4f70555088c80e64d052c9d) )
+ROM_END
+
+
+
+// ************************************************************************* PUNIPIC, PUNIPIC2, PUNIPIC3
+
+MACHINE_START_MEMBER(cps_state, punipic)
+{
+ m_layer_enable_reg = 0x12;
+ m_layer_mask_reg[0] = 0x14;
+ m_layer_mask_reg[1] = 0x16;
+ m_layer_mask_reg[2] = 0x08;
+ m_layer_mask_reg[3] = 0x0a;
+ m_layer_scroll1x_offset = 0x46; // text
+ m_layer_scroll3x_offset = 0x46; // green patch in the park
+ m_sprite_base = 0x1000;
+ m_sprite_list_end_marker = 0x8000;
+ m_sprite_x_offset = 0;
+}
+
+static MACHINE_CONFIG_START( punipic )
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", M68000, 12000000)
+ MCFG_CPU_PROGRAM_MAP(punipic_map)
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", cps_state, cps1_interrupt)
+
+ //MCFG_CPU_ADD("audiocpu", PIC16C57, 12000000)
+ //MCFG_DEVICE_DISABLE() /* no valid dumps .. */
+
+ MCFG_MACHINE_START_OVERRIDE(cps_state, punipic)
+
+ MCFG_EEPROM_SERIAL_93C46_8BIT_ADD("eeprom")
+
+ /* 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(8*8, (64-8)*8-1, 2*8, 30*8-1 )
+ MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_fcrash)
+ MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(cps_state, screen_vblank_cps1))
+ MCFG_SCREEN_PALETTE("palette")
+
+ MCFG_GFXDECODE_ADD("gfxdecode", "palette", cps1)
+ MCFG_PALETTE_ADD("palette", 0xc00)
+
+ MCFG_VIDEO_START_OVERRIDE(cps_state,cps1)
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+
+ MCFG_OKIM6295_ADD("oki", 1000000, PIN7_HIGH)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
+MACHINE_CONFIG_END
+
+/* bootleg with pic, like dinopic / dinopic2 */
+ROM_START( punipic )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "cpu5.bin", 0x000000, 0x80000, CRC(c3151563) SHA1(61d3a20c25fea8a94ae6e473a87c21968867cba0) )
+ ROM_LOAD16_BYTE( "cpu3.bin", 0x000001, 0x80000, CRC(8c2593ac) SHA1(4261bc72b96c3a5690df35c5d8b71524765693d9) )
+ ROM_LOAD16_BYTE( "cpu4.bin", 0x100000, 0x80000, CRC(665a5485) SHA1(c07920d110ca9c35f6cbff94a6a889c17300f994) )
+ ROM_LOAD16_BYTE( "cpu2.bin", 0x100001, 0x80000, CRC(d7b13f39) SHA1(eb7cd92b44fdef3b72672b0be6786c526421b627) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "gfx9.bin", 0x000000, 0x40000, CRC(9b9a887a) SHA1(8805b36fc18837bd7c64c751b435d72b763b2235), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000004, 0x40000)
+ ROMX_LOAD( "gfx8.bin", 0x000001, 0x40000, CRC(2b94287a) SHA1(815d88e66f537e17550fc0483616f02f7126bfb1), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000005, 0x40000)
+ ROMX_LOAD( "gfx7.bin", 0x000002, 0x40000, CRC(e9bd74f5) SHA1(8ed7098c69d1c70093c99956bf82e532bd6fc7ac), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000006, 0x40000)
+ ROMX_LOAD( "gfx6.bin", 0x000003, 0x40000, CRC(a5e1c8a4) SHA1(3596265a45cf6bbf16c623f0fce7cdc65f9338ad), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000007, 0x40000)
+ ROMX_LOAD( "gfx13.bin", 0x200000, 0x40000, CRC(6d75a193) SHA1(6c5a89517926d7ba4a925a3df800d4bdb8a6938d), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x200004, 0x40000)
+ ROMX_LOAD( "gfx12.bin", 0x200001, 0x40000, CRC(a3c205c1) SHA1(6317cc49434dbbb9a249ddd4b50bd791803b3ebe), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x200005, 0x40000)
+ ROMX_LOAD( "gfx11.bin", 0x200002, 0x40000, CRC(22f2ec92) SHA1(9186bfc5db71dc5b099c9a985e8fdd5710772d1c), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x200006, 0x40000)
+ ROMX_LOAD( "gfx10.bin", 0x200003, 0x40000, CRC(763974c9) SHA1(f9b93c7cf0cb8c212fc21c57c85459b7d2e4e2fd), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x200007, 0x40000)
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* PIC16c57 - protected */
+ ROM_LOAD( "pic16c57", 0x00000, 0x4000, NO_DUMP )
+
+ ROM_REGION( 0x200000, "oki", 0 ) /* OKI6295 */
+ ROM_LOAD( "sound.bin", 0x000000, 0x80000, CRC(aeec9dc6) SHA1(56fd62e8db8aa96cdd242d8c705849a413567780) )
+ROM_END
+
+/* alt bootleg with PIC, same program roms as above, bigger GFX roms
+
+Punisher
+1993, Capcom
+
+This is a bootleg version running on a single PCB.
+
+PCB Layout
+----------
+
+|-----------------------------------------|
+| 93C46 SOUND 30MHz PAL |
+| M6295 PIC16C57 |
+| 6116 PAL 6116 |
+| 6116 6116 ACTEL |
+| 6116 A1020B |
+|J 6116 |
+|A TEST 6116 |
+|M 6116 |
+|M |
+|A |
+| 62256 62256 62256 PU13478 |
+| PRG1 PRG2 |
+| PRG3 PRG4 62256 PU11256 |
+| PAL|
+| 68000 24MHz PAL PAL |
+|-----------------------------------------|
+
+Notes:
+ Measured clocks
+ ---------------
+ 68000 clock: 12.000MHz (24 / 2)
+ M6295 clock: 937.5kHz (30 / 32), sample rate = 30000000 / 32 / 132
+ 16C57 clock: 3.75MHz (30 / 8) NOTE! 4096 bytes internal ROM is protected and can't be read out.
+ VSYNC : 60Hz
+
+ ROMs
+ ----
+ PRG* - 4M MASK ROM (read as 27C040)
+ SOUND - 4M MASK ROM (read as 27C040)
+ PU* - 16M MASK ROM (read as 27C160)
+
+*/
+
+ROM_START( punipic2 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "prg4.bin", 0x000000, 0x80000, CRC(c3151563) SHA1(61d3a20c25fea8a94ae6e473a87c21968867cba0) )
+ ROM_LOAD16_BYTE( "prg3.bin", 0x000001, 0x80000, CRC(8c2593ac) SHA1(4261bc72b96c3a5690df35c5d8b71524765693d9) )
+ ROM_LOAD16_BYTE( "prg2.bin", 0x100000, 0x80000, CRC(665a5485) SHA1(c07920d110ca9c35f6cbff94a6a889c17300f994) )
+ ROM_LOAD16_BYTE( "prg1.bin", 0x100001, 0x80000, CRC(d7b13f39) SHA1(eb7cd92b44fdef3b72672b0be6786c526421b627) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "pu11256.bin", 0x000000, 0x80000, CRC(6581faea) SHA1(2b0e96998002a1df96c7869ec965257d2ecfb531), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x200000, 0x80000 )
+ ROM_CONTINUE( 0x000004, 0x80000 )
+ ROM_CONTINUE( 0x200004, 0x80000 )
+ ROMX_LOAD( "pu13478.bin", 0x000002, 0x80000, CRC(61613de4) SHA1(8f8c46ce907be2b4c4715ad88bfd1456818bdd2c), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x200002, 0x80000 )
+ ROM_CONTINUE( 0x000006, 0x80000 )
+ ROM_CONTINUE( 0x200006, 0x80000 )
+
+ ROM_REGION( 0x28000, "audiocpu", 0 ) /* PIC16c57 - protected */
+ ROM_LOAD( "pic16c57", 0x00000, 0x4000, NO_DUMP )
+
+ ROM_REGION( 0x200000, "oki", 0 ) /* OKI6295 */
+ ROM_LOAD( "sound.bin", 0x000000, 0x80000, CRC(aeec9dc6) SHA1(56fd62e8db8aa96cdd242d8c705849a413567780) )
+
+ ROM_REGION( 0x200000, "user1", 0 ) /* other */
+ ROM_LOAD( "93c46.bin", 0x00, 0x80, CRC(36ab4e7d) SHA1(60bea43051d86d9aefcbb7a390cf0c7d8b905a4b) )
+ROM_END
+
+/* the readme doesn't actually state this has a PIC, and there's no sound rom
+ so it might be different */
+
+ROM_START( punipic3 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "psb5b.rom", 0x000000, 0x80000, CRC(58f42c05) SHA1(e243928f0bbecdf2a8d07cf4a6fdea4440e46c01) )
+ ROM_LOAD16_BYTE( "psb3b.rom", 0x000001, 0x80000, CRC(90113db4) SHA1(4decc203ae3ee4abcb2e017f11cd20eae2abf3f3) )
+ ROM_LOAD16_BYTE( "psb4a.rom", 0x100000, 0x80000, CRC(665a5485) SHA1(c07920d110ca9c35f6cbff94a6a889c17300f994) )
+ ROM_LOAD16_BYTE( "psb2a.rom", 0x100001, 0x80000, CRC(d7b13f39) SHA1(eb7cd92b44fdef3b72672b0be6786c526421b627) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "psb-a.rom", 0x000000, 0x80000, CRC(57f0f5e3) SHA1(130b6e92181994bbe874261e0895db65d4f3d5d1), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000004, 0x80000 )
+ ROM_CONTINUE( 0x200000, 0x80000 )
+ ROM_CONTINUE( 0x200004, 0x80000 )
+ ROMX_LOAD( "psb-b.rom", 0x000002, 0x80000, CRC(d9eb867e) SHA1(9b6eaa4a780da5c9cf09658fcab3a1a6f632c2f4), ROM_GROUPWORD | ROM_SKIP(6) )
+ ROM_CONTINUE( 0x000006, 0x80000 )
+ ROM_CONTINUE( 0x200002, 0x80000 )
+ ROM_CONTINUE( 0x200006, 0x80000 )
+
+ ROM_REGION( 0x28000, "audiocpu", ROMREGION_ERASE00 ) /* PIC16c57 (maybe, not listed in readme) */
+ //ROM_LOAD( "pic16c57", 0x00000, 0x4000, NO_DUMP )
+
+ ROM_REGION( 0x200000, "oki", ROMREGION_ERASE00 ) /* OKI6295 */
+ //ROM_LOAD( "sound.bin", 0x000000, 0x80000, CRC(aeec9dc6) SHA1(56fd62e8db8aa96cdd242d8c705849a413567780) )
+ROM_END
+
+DRIVER_INIT_MEMBER(cps_state, punipic)
+{
+ uint16_t *mem16 = (uint16_t *)memregion("maincpu")->base();
+ mem16[0x5A8/2] = 0x4E71; // set data pointers
+ mem16[0x4DF0/2] = 0x33ED;
+ mem16[0x4DF2/2] = 0xDB2E;
+ mem16[0x4DF4/2] = 0x0080;
+ mem16[0x4DF6/2] = 0x0152;
+ mem16[0x4DF8/2] = 0x4E75;
+
+ DRIVER_INIT_CALL(dinopic);
+}
+
+DRIVER_INIT_MEMBER(cps_state, punipic3)
+{
+ uint16_t *mem16 = (uint16_t *)memregion("maincpu")->base();
+ mem16[0x5A6/2] = 0x4E71; // set data pointers
+ mem16[0x5A8/2] = 0x4E71;
+
+ DRIVER_INIT_CALL(dinopic);
+}
+
+
+
+// ************************************************************************* SF2M1
+
+static MACHINE_CONFIG_START( sf2m1 )
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", M68000, XTAL_12MHz )
+ MCFG_CPU_PROGRAM_MAP(sf2m1_map)
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", cps_state, cps1_interrupt)
+
+ MCFG_CPU_ADD("audiocpu", Z80, XTAL_3_579545MHz)
+ MCFG_CPU_PROGRAM_MAP(sgyxz_sound_map)
+
+ MCFG_MACHINE_START_OVERRIDE(cps_state,sf2m1)
+
+ /* video hardware */
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_RAW_PARAMS(CPS_PIXEL_CLOCK, CPS_HTOTAL, CPS_HBEND, CPS_HBSTART, CPS_VTOTAL, CPS_VBEND, CPS_VBSTART)
+ MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_fcrash)
+ MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(cps_state, screen_vblank_cps1))
+ MCFG_SCREEN_PALETTE("palette")
+
+ MCFG_GFXDECODE_ADD("gfxdecode", "palette", cps1)
+ MCFG_PALETTE_ADD("palette", 0xc00)
+ MCFG_VIDEO_START_OVERRIDE(cps_state,cps1)
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+ MCFG_YM2151_ADD("2151", XTAL_3_579545MHz)
+ MCFG_YM2151_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
+ MCFG_SOUND_ROUTE(0, "mono", 0.35)
+ MCFG_SOUND_ROUTE(1, "mono", 0.35)
+ MCFG_OKIM6295_ADD("oki", XTAL_16MHz/4/4, PIN7_HIGH)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
+MACHINE_CONFIG_END
+
+ROM_START( sf2m1 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "222e", 0x000000, 0x80000, CRC(1e20d0a3) SHA1(5e05b52fd938aff5190bca7e178705d7236aef66) )
+ ROM_LOAD16_BYTE( "196e", 0x000001, 0x80000, CRC(88cc38a3) SHA1(6049962f943bd37748a9531cc3254e8b59326eac) )
+ ROM_LOAD16_WORD_SWAP( "s92_21a.bin", 0x100000, 0x80000, CRC(925a7877) SHA1(1960dca35f0ca6f2b399a9fccfbc0132ac6425d1) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "s92_01.bin", 0x000000, 0x80000, CRC(03b0d852) SHA1(f370f25c96ad2b94f8c53d6b7139100285a25bef) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_02.bin", 0x000002, 0x80000, CRC(840289ec) SHA1(2fb42a242f60ba7e74009b5a90eb26e035ba1e82) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_03.bin", 0x000004, 0x80000, CRC(cdb5f027) SHA1(4c7d944fef200fdfcaf57758b901b5511188ed2e) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_04.bin", 0x000006, 0x80000, CRC(e2799472) SHA1(27d3796429338d82a8de246a0ea06dd487a87768) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_05.bin", 0x200000, 0x80000, CRC(ba8a2761) SHA1(4b696d66c51611e43522bed752654314e76d33b6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_06.bin", 0x200002, 0x80000, CRC(e584bfb5) SHA1(ebdf1f5e2638eed3a65dda82b1ed9151a355f4c9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_07.bin", 0x200004, 0x80000, CRC(21e3f87d) SHA1(4a4961bb68c3a1ce15f9d393d9c03ecb2466cc29) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_08.bin", 0x200006, 0x80000, CRC(befc47df) SHA1(520390420da3a0271ba90b0a933e65143265e5cf) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_10.bin", 0x400000, 0x80000, CRC(960687d5) SHA1(2868c31121b1c7564e9767b9a19cdbf655c7ed1d) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_11.bin", 0x400002, 0x80000, CRC(978ecd18) SHA1(648a59706b93c84b4206a968ecbdc3e834c476f6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_12.bin", 0x400004, 0x80000, CRC(d6ec9a0a) SHA1(ed6143f8737013b6ef1684e37c05e037e7a80dae) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "s92_13.bin", 0x400006, 0x80000, CRC(ed2c67f6) SHA1(0083c0ffaf6fe7659ff0cf822be4346cd6e61329) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "s92_09.bin", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "s92_18.bin", 0x00000, 0x20000, CRC(7f162009) SHA1(346bf42992b4c36c593e21901e22c87ae4a7d86d) )
+ ROM_LOAD( "s92_19.bin", 0x20000, 0x20000, CRC(beade53f) SHA1(277c397dc12752719ec6b47d2224750bd1c07f79) )
+ROM_END
+
+DRIVER_INIT_MEMBER(cps_state, sf2m1)
+{
+ uint16_t *mem16 = (uint16_t *)memregion("maincpu")->base();
+ mem16[0x64E/2] = 0x6046; // fix priorities
+
+ DRIVER_INIT_CALL(dinopic);
+
+}
+
+
+
+// ************************************************************************* SF2MDT, SF2MDTA
+
+
+/*
+CPU
+
+1x MC68000P12 (main)
+1x TPC1020AFN-084C (main)
+1x Z0840006PSC-Z80CPU (sound)
+1x YM2151 (sound)
+1x YM3012 (sound)
+2x M5205 (sound)
+2x LM324N (sound)
+1x TDA2003 (sound)
+1x oscillator 24.000000MHz
+1x oscillator 30.000MHz
+ROMs
+
+14x AM27C040 (1,3,6,7,8,9,10,11,12,13,14,15,16,17)
+3x TMS27C010A (2,4,5)
+3x PAL 16S20 (ic7,ic72, ic80) (read protected, not dumped)
+3x GAL20V8A (ic120, ic121, ic169) (read protected, not dumped)
+
+Note
+
+1x JAMMA edge connector
+1x trimmer (volume)
+3x 8x2 switches dip
+*/
+
+ROM_START( sf2mdt )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "3.ic172", 0x000000, 0x80000, CRC(5301b41f) SHA1(6855a57b21e8c5d74e5cb18f9ce6af650d7fb422) )
+ ROM_LOAD16_BYTE( "1.ic171", 0x000001, 0x80000, CRC(c1c803f6) SHA1(9fe18ae2553a63d8e4dcc20bafd5a4634f8b93c4) )
+ ROM_LOAD16_BYTE( "4.ic176", 0x100000, 0x20000, CRC(1073b7b6) SHA1(81ca1eab65ceac69520584bb23a684ccb9d92f89) )
+ ROM_LOAD16_BYTE( "2.ic175", 0x100001, 0x20000, CRC(924c6ce2) SHA1(676a912652bd75da5087f0c7eae047b7681a993c) )
+
+ ROM_REGION( 0x600000, "gfx", 0 ) /* rearranged in init */
+ ROMX_LOAD( "7.ic90", 0x000000, 0x80000, CRC(896eaf48) SHA1(5a13ae8b554e05eed3d5749aaf5845d499bce45b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "10.ic88", 0x000002, 0x80000, CRC(ef3f5be8) SHA1(d4e1de7d7caf6977e48544d6701618ae70c717f9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "13.ic89", 0x000004, 0x80000, CRC(305dd72a) SHA1(c373b517c23f3b019abb06e21f6b9ab6e1e47909) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "16.ic87", 0x000006, 0x80000, CRC(e57f6db9) SHA1(b37f95737804002ec0e237472eaacf0bc1e868e8) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "6.ic91", 0x200000, 0x80000, CRC(054cd5c4) SHA1(07f275e118c141a84ca15a2e9edc81694af37cf2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "9.ic93", 0x200002, 0x80000, CRC(818ca33d) SHA1(dfb707e17c83216f8a62e905f8c7cd6d406b417b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "12.ic92", 0x200004, 0x80000, CRC(87e069e8) SHA1(cddd3be84f8379134590bfbbb080518f28120e49) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "15.ic94", 0x200006, 0x80000, CRC(5dfb44d1) SHA1(08e44b8efc84f9cfc829aabf704155ddc700de76) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "8.ic86", 0x400000, 0x80000, CRC(34bbb3fa) SHA1(7794e89258f12b17d38c3d302dc15c502a8c8eb6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "11.ic84", 0x400002, 0x80000, CRC(cea6d1d6) SHA1(9c953db42f0d877e43c0c239f69a00df39a18295) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "14.ic85", 0x400004, 0x80000, CRC(7d9f1a67) SHA1(6deb7fff867c42b13a32bb11eda798cfdb4cbaa8) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "17.ic83", 0x400006, 0x80000, CRC(91a9a05d) SHA1(5266ceddd2df925e79b4200843dec2f7aa9297b3) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x30000, "audiocpu", 0 ) /* Sound program + samples */
+ ROM_LOAD( "5.ic26", 0x00000, 0x20000, CRC(17d5ba8a) SHA1(6ff3b8860d7e1fdee3561846f645eb4d3a8965ec) )
+ ROM_RELOAD( 0x10000, 0x20000 )
+ROM_END
+
+ROM_START( sf2mdta )
+/* unconfirmed if working on real hardware, pf4 is a bad dump (bad pin) */
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "3.mdta", 0x000000, 0x80000, CRC(9f544ef4) SHA1(f784809e59a5fcabd6d15d3f1c36250a5528c9f8) )
+ ROM_LOAD16_BYTE( "5.mdta", 0x000001, 0x80000, CRC(d76d6621) SHA1(aa9cea9ddace212a7b3c535b8f6e3fbc50da1f94) )
+ ROM_LOAD16_BYTE( "2.mdta", 0x100000, 0x20000, CRC(74844192) SHA1(99cd546c78cce7f632007af454d8a55eddb6b19b) )
+ ROM_LOAD16_BYTE( "4.mdta", 0x100001, 0x20000, CRC(bd98ff15) SHA1(ed902d949b0b5c5beaaea78a4b418ffa6db9e1df) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "pf4 sh058.ic89", 0x000000, 0x100000, CRC(16289710) SHA1(4f3236712b979a1eb2fa97740e32d7913cee0d0d), ROM_GROUPWORD | ROM_SKIP(2) )
+ ROMX_LOAD( "pf7 sh072.ic92", 0x000002, 0x100000, CRC(fb78022e) SHA1(b8974387056dd52db96b01cc4648edc814398c7e), ROM_GROUPWORD | ROM_SKIP(2) )
+ ROMX_LOAD( "pf5 sh036.ic90", 0x200000, 0x100000, CRC(0a6be48b) SHA1(b7e72c94d4e3eb4a6bba6608d9b9a093c8901ad9), ROM_GROUPWORD | ROM_SKIP(2) )
+ ROMX_LOAD( "pf8 sh074.ic93", 0x200002, 0x100000, CRC(6258c7cf) SHA1(4cd7519245c0aa816934a43e6743160f715d7dc2), ROM_GROUPWORD | ROM_SKIP(2) )
+ ROMX_LOAD( "pf6 sh070.ic88", 0x400000, 0x100000, CRC(9b5b09d7) SHA1(698a6aab41e495bd0c37a19aee16a84f04d15797), ROM_GROUPWORD | ROM_SKIP(2) )
+ ROMX_LOAD( "pf9 sh001.ic91", 0x400002, 0x100000, CRC(9f25090e) SHA1(12ff0431ef6550db446985c8914ac7d78eec6b6d), ROM_GROUPWORD | ROM_SKIP(2) )
+
+ ROM_REGION( 0x30000, "audiocpu", 0 ) /* Sound program + samples */
+ ROM_LOAD( "1.ic28", 0x00000, 0x20000, CRC(d5bee9cc) SHA1(e638cb5ce7a22c18b60296a7defe8b03418da56c) )
+ ROM_RELOAD( 0x10000, 0x20000 )
+ROM_END
+
+ROM_START( sf2mdtb )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "3.ic172", 0x000000, 0x80000, CRC(0bdb9da2) SHA1(5224ee81d94be70a84ffaa3a56b8093aa36d6b4f) ) // sldh
+ ROM_LOAD16_BYTE( "1.ic171", 0x000001, 0x80000, CRC(d88abbce) SHA1(57667a92710bb1d37daed09262c3064d09cbf4af) ) // sldh
+ ROM_LOAD16_BYTE( "4.ic176", 0x100000, 0x20000, CRC(74844192) SHA1(99cd546c78cce7f632007af454d8a55eddb6b19b) ) // sldh
+ ROM_LOAD16_BYTE( "2.ic175", 0x100001, 0x20000, CRC(bd98ff15) SHA1(ed902d949b0b5c5beaaea78a4b418ffa6db9e1df) ) // sldh
+
+ ROM_REGION( 0x600000, "gfx", 0 ) /* rearranged in init */
+ ROMX_LOAD( "7.ic90", 0x000000, 0x80000, CRC(896eaf48) SHA1(5a13ae8b554e05eed3d5749aaf5845d499bce45b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "10.ic88", 0x000002, 0x80000, CRC(ef3f5be8) SHA1(d4e1de7d7caf6977e48544d6701618ae70c717f9) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "13.ic89", 0x000004, 0x80000, CRC(305dd72a) SHA1(c373b517c23f3b019abb06e21f6b9ab6e1e47909) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "16.ic87", 0x000006, 0x80000, CRC(e57f6db9) SHA1(b37f95737804002ec0e237472eaacf0bc1e868e8) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "6.ic91", 0x200000, 0x80000, CRC(054cd5c4) SHA1(07f275e118c141a84ca15a2e9edc81694af37cf2) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "9.ic93", 0x200002, 0x80000, CRC(818ca33d) SHA1(dfb707e17c83216f8a62e905f8c7cd6d406b417b) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "12.ic92", 0x200004, 0x80000, CRC(87e069e8) SHA1(cddd3be84f8379134590bfbbb080518f28120e49) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "15.ic94", 0x200006, 0x80000, CRC(5dfb44d1) SHA1(08e44b8efc84f9cfc829aabf704155ddc700de76) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "8.ic86", 0x400000, 0x80000, CRC(34bbb3fa) SHA1(7794e89258f12b17d38c3d302dc15c502a8c8eb6) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "11.ic84", 0x400002, 0x80000, CRC(cea6d1d6) SHA1(9c953db42f0d877e43c0c239f69a00df39a18295) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "14.ic85", 0x400004, 0x80000, CRC(7d9f1a67) SHA1(6deb7fff867c42b13a32bb11eda798cfdb4cbaa8) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "17.ic83", 0x400006, 0x80000, CRC(91a9a05d) SHA1(5266ceddd2df925e79b4200843dec2f7aa9297b3) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x30000, "audiocpu", 0 ) /* Sound program + samples */
+ ROM_LOAD( "5.ic28", 0x00000, 0x20000, CRC(d5bee9cc) SHA1(e638cb5ce7a22c18b60296a7defe8b03418da56c) )
+ ROM_RELOAD( 0x10000, 0x20000 )
+ROM_END
+
+ROM_START( sf2b )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "pf1-2-sg076.bin", 0x000000, 0x100000, CRC(1d15bc7a) SHA1(834627545f191f39de6beb008c89623f2b88c13b) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "pf4-sg072.bin", 0x000000, 0x100000, CRC(16289710) SHA1(4f3236712b979a1eb2fa97740e32d7913cee0d0d), ROM_GROUPWORD | ROM_SKIP(2) )
+ ROMX_LOAD( "pf7-sg103.bin", 0x000002, 0x100000, CRC(fb78022e) SHA1(b8974387056dd52db96b01cc4648edc814398c7e), ROM_GROUPWORD | ROM_SKIP(2) )
+ ROMX_LOAD( "pf5-sg095.bin", 0x200000, 0x100000, CRC(0a6be48b) SHA1(b7e72c94d4e3eb4a6bba6608d9b9a093c8901ad9), ROM_GROUPWORD | ROM_SKIP(2) )
+ ROMX_LOAD( "pf8-sg101.bin", 0x200002, 0x100000, CRC(6258c7cf) SHA1(4cd7519245c0aa816934a43e6743160f715d7dc2), ROM_GROUPWORD | ROM_SKIP(2) )
+ ROMX_LOAD( "pf6-sg068.bin", 0x400000, 0x100000, CRC(9b5b09d7) SHA1(698a6aab41e495bd0c37a19aee16a84f04d15797), ROM_GROUPWORD | ROM_SKIP(2) )
+ ROMX_LOAD( "pf9-sh001.bin", 0x400002, 0x100000, CRC(9f25090e) SHA1(12ff0431ef6550db446985c8914ac7d78eec6b6d), ROM_GROUPWORD | ROM_SKIP(2) )
+
+ ROM_REGION( 0x30000, "audiocpu", 0 ) /* Sound program + samples */
+ ROM_LOAD( "3snd.ic28", 0x00000, 0x20000, CRC(d5bee9cc) SHA1(e638cb5ce7a22c18b60296a7defe8b03418da56c) )
+ ROM_RELOAD( 0x10000, 0x20000 )
+ROM_END
+
+
+ROM_START( sf2m9 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "27040.6", 0x000000, 0x80000, CRC(16c6372e) SHA1(5d5a49392f2fb806e66e0ac137df00425ca52e7f) )
+ ROM_LOAD16_BYTE( "27040.5", 0x000001, 0x80000, CRC(137d5f2e) SHA1(835e9b767e6499f161c5c4fd9a31a9f54b3ee68f) )
+ ROM_LOAD16_BYTE( "27010.4", 0x100000, 0x20000, CRC(8226c11c) SHA1(9588bd64e338901394805aca8a234f880674dc60) )
+ ROM_LOAD16_BYTE( "27010.3", 0x100001, 0x20000, CRC(924c6ce2) SHA1(676a912652bd75da5087f0c7eae047b7681a993c) )
+
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "tat-01.bin", 0x000000, 0x40000, CRC(a887f7d4) SHA1(d7e0c46b3ab1c6352f45033cb9e610d9c34d51fb), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000004, 0x40000)
+ ROMX_LOAD( "tat-05.bin", 0x000001, 0x40000, CRC(9390ff23) SHA1(b234169615aa952e3b15c7b0dfb495e499ba49ef), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000005, 0x40000)
+ ROMX_LOAD( "tat-02.bin", 0x000002, 0x40000, CRC(afb3b589) SHA1(9721fa705d62814e416c38a6c3e698efb9385a98), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000006, 0x40000)
+ ROMX_LOAD( "tat-06.bin", 0x000003, 0x40000, CRC(90f2053e) SHA1(a78710421e702b410650c45c3dec21bf16799fb4), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000007, 0x40000)
+
+ ROMX_LOAD( "tat-03.bin", 0x200000, 0x40000, CRC(79fa8bf0) SHA1(9f8f7b8dc54a75226beb017b9ca9fd62a9e42f6b), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x200004, 0x40000)
+ ROMX_LOAD( "tat-07.bin", 0x200001, 0x40000, CRC(6a5f153c) SHA1(f3d82ad01e2e4bdb2039815747fa14399c69753a), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x200005, 0x40000)
+ ROMX_LOAD( "tat-04.bin", 0x200002, 0x40000, CRC(32518120) SHA1(56ffa5fffb714cff8be8be5a3675b8a5fa29b2bc), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x200006, 0x40000)
+ ROMX_LOAD( "tat-08.bin", 0x200003, 0x40000, CRC(c16579ae) SHA1(42c9d6df9f3b015f5d1ad4fa2b34ea90bb37bcae), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x200007, 0x40000)
+
+ ROMX_LOAD( "tat-09.bin", 0x400000, 0x40000, CRC(169d85a6) SHA1(dd98c8807e80465858b2eac10825e598c37e1a93), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x400004, 0x40000)
+ ROMX_LOAD( "tat-11.bin", 0x400001, 0x40000, CRC(32a3a841) SHA1(6f9a13b8828998d194dd3933b032c75efed9cab3), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x400005, 0x40000)
+ ROMX_LOAD( "tat-10.bin", 0x400002, 0x40000, CRC(0c638630) SHA1(709d183d181a0509c7ed839c59214851468d2bb8), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x400006, 0x40000)
+ ROMX_LOAD( "tat-12.bin", 0x400003, 0x40000, CRC(6ee19b94) SHA1(c45119d04879b6ca23a3f7749175c56b381b43f2), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x400007, 0x40000)
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "27512.1", 0x00000, 0x08000, CRC(08f6b60e) SHA1(8258fcaca4ac419312531eec67079b97f471179c) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "27020.2", 0x00000, 0x40000, CRC(6cfffb11) SHA1(995526183ffd35f92e9096500a3fe6237faaa2dd) )
+
+ ROM_REGION( 0x00c8d, "pld", 0 ) /* pal/gal */
+ ROM_LOAD( "gal20v8.68kadd", 0x00000, 0x00c8d, CRC(27cdd376) SHA1(9fb5844b33002bec80fb92d3e5d1bbc779087300) )//68k address decoder
+
+ROM_END
+
+DRIVER_INIT_MEMBER(cps_state, sf2mdt)
+{
+ int i;
+ uint32_t gfx_size = memregion( "gfx" )->bytes();
+ uint8_t *rom = memregion( "gfx" )->base();
+ uint8_t tmp;
+
+ for( i = 0; i < gfx_size; i += 8 )
+ {
+ tmp = rom[i + 1];
+ rom[i + 1] = rom[i + 4];
+ rom[i + 4] = tmp;
+ tmp = rom[i + 3];
+ rom[i + 3] = rom[i + 6];
+ rom[i + 6] = tmp;
+ }
+
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x708100, 0x7081ff, write16_delegate(FUNC(cps_state::sf2mdt_layer_w),this));
+ DRIVER_INIT_CALL(sf2mdta);
+}
+
+
+
+DRIVER_INIT_MEMBER(cps_state, sf2mdtb)
+{
+ int i;
+ uint32_t gfx_size = memregion( "gfx" )->bytes();
+ uint8_t *rom = memregion( "gfx" )->base();
+ uint8_t tmp;
+
+ for( i = 0; i < gfx_size; i += 8 )
+ {
+ tmp = rom[i + 1];
+ rom[i + 1] = rom[i + 4];
+ rom[i + 4] = tmp;
+ tmp = rom[i + 3];
+ rom[i + 3] = rom[i + 6];
+ rom[i + 6] = tmp;
+ }
+
+ /* bootleg sprite ram */
+ m_bootleg_sprite_ram = std::make_unique<uint16_t[]>(0x2000);
+ m_maincpu->space(AS_PROGRAM).install_ram(0x700000, 0x703fff, m_bootleg_sprite_ram.get());
+ m_maincpu->space(AS_PROGRAM).install_ram(0x704000, 0x707fff, m_bootleg_sprite_ram.get()); /* both of these need to be mapped */
+
+ DRIVER_INIT_CALL(cps1);
+}
+
+
+DRIVER_INIT_MEMBER(cps_state, sf2mdta)
+{
+ /* bootleg sprite ram */
+ m_bootleg_sprite_ram = std::make_unique<uint16_t[]>(0x2000);
+ m_maincpu->space(AS_PROGRAM).install_ram(0x700000, 0x703fff, m_bootleg_sprite_ram.get());
+ m_maincpu->space(AS_PROGRAM).install_ram(0x704000, 0x707fff, m_bootleg_sprite_ram.get()); /* both of these need to be mapped - see the "Magic Delta Turbo" text on the title screen */
+
+ m_bootleg_work_ram = std::make_unique<uint16_t[]>(0x8000);
+ m_maincpu->space(AS_PROGRAM).install_ram(0xfc0000, 0xfcffff, m_bootleg_work_ram.get()); /* this has moved */
+
+ DRIVER_INIT_CALL(cps1);
+}
+
+DRIVER_INIT_MEMBER(cps_state, sf2b)
+{
+ /* bootleg sprite ram */
+ m_bootleg_sprite_ram = std::make_unique<uint16_t[]>(0x2000);
+ m_maincpu->space(AS_PROGRAM).install_ram(0x700000, 0x703fff, m_bootleg_sprite_ram.get());
+ m_maincpu->space(AS_PROGRAM).install_ram(0x704000, 0x707fff, m_bootleg_sprite_ram.get());
+
+ DRIVER_INIT_CALL(cps1);
+}
+
+// ************************************************************************* SLAMPIC
+
+MACHINE_START_MEMBER(cps_state, slampic)
+{
+ m_layer_enable_reg = 0x16;
+ m_layer_mask_reg[0] = 0x00;
+ m_layer_mask_reg[1] = 0x02;
+ m_layer_mask_reg[2] = 0x28;
+ m_layer_mask_reg[3] = 0x2a;
+ m_layer_scroll1x_offset = 0x40;
+ m_layer_scroll2x_offset = 0x40;
+ m_layer_scroll3x_offset = 0x40;
+ m_sprite_base = 0x1000;
+ m_sprite_list_end_marker = 0x8000;
+ m_sprite_x_offset = 0;
+}
+
+static MACHINE_CONFIG_START( slampic )
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", M68000, 12000000)
+ MCFG_CPU_PROGRAM_MAP(slampic_map)
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", cps_state, cps1_interrupt)
+
+ //MCFG_CPU_ADD("audiocpu", PIC16C57, 12000000)
+ //MCFG_DEVICE_DISABLE() /* no valid dumps .. */
+
+ MCFG_MACHINE_START_OVERRIDE(cps_state, slampic)
+
+ MCFG_EEPROM_SERIAL_93C46_8BIT_ADD("eeprom")
+
+ /* 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(8*8, (64-8)*8-1, 2*8, 30*8-1 )
+ MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_fcrash)
+ MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(cps_state, screen_vblank_cps1))
+ MCFG_SCREEN_PALETTE("palette")
+
+ MCFG_GFXDECODE_ADD("gfxdecode", "palette", cps1)
+ MCFG_PALETTE_ADD("palette", 0xc00)
+
+ MCFG_VIDEO_START_OVERRIDE(cps_state,cps1)
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+
+ MCFG_OKIM6295_ADD("oki", 1000000, PIN7_HIGH)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
+MACHINE_CONFIG_END
+
+ROM_START( slampic )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "5.bin", 0x000000, 0x80000, CRC(7dba63cd) SHA1(222e781ffc40c5c23f5789c0682f549f00beeb8d) )
+ ROM_LOAD16_BYTE( "3.bin", 0x000001, 0x80000, CRC(d86671f3) SHA1(d95fae27b0f4d3688f1c2229c9d3780724a870a8) )
+ ROM_LOAD16_BYTE( "4.bin", 0x100000, 0x80000, CRC(d14d0e42) SHA1(b60c44193b247dc4856bd36d69cbbe9dcb2d21a7) )
+ ROM_LOAD16_BYTE( "2.bin", 0x100001, 0x80000, CRC(38063cd8) SHA1(e647433414ff4fdc0b2c4c7036b8995a95289efa) )
+
+ ROM_REGION( 0x600000, "gfx", 0 )
+ ROMX_LOAD( "9.bin", 0x000000, 0x40000, CRC(dc140351) SHA1(0e69e1c8ded85ba26eb8236449d38ead0243ae78), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000004, 0x40000)
+ ROMX_LOAD( "8.bin", 0x000001, 0x40000, CRC(9ae88035) SHA1(3329e9582ca052940e115e759bb3d96f4a9c87fa), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000005, 0x40000)
+ ROMX_LOAD( "7.bin", 0x000002, 0x40000, CRC(5321f759) SHA1(7538a6587cf1077921b938070185e0a0ce5ca922), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000006, 0x40000)
+ ROMX_LOAD( "6.bin", 0x000003, 0x40000, CRC(c8eb5f76) SHA1(a361d2d2dfe71789736666b744ae5f1e4bf7e1b2), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x000007, 0x40000)
+ ROMX_LOAD( "17.bin", 0x200000, 0x40000, CRC(21652214) SHA1(039335251f6553c4f36e2d33e8b43fb5726e833e), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x200004, 0x40000)
+ ROMX_LOAD( "16.bin", 0x200001, 0x40000, CRC(d49d2eb0) SHA1(1af01575340730166975be93bae438e2b0492f98), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x200005, 0x40000)
+ ROMX_LOAD( "15.bin", 0x200002, 0x40000, CRC(0d98bfd6) SHA1(c11fbf555880a933a4cbf6faa517f59f8443304f), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x200006, 0x40000)
+ ROMX_LOAD( "14.bin", 0x200003, 0x40000, CRC(807284f1) SHA1(c747c3eaade31c2633fb0a0682dbea900bf2b092), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x200007, 0x40000)
+ ROMX_LOAD( "13.bin", 0x400000, 0x40000, CRC(293579c5) SHA1(9adafe29664b20834365b339f7ae379cdb9ee138), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x400004, 0x40000)
+ ROMX_LOAD( "12.bin", 0x400001, 0x40000, CRC(c3727ce7) SHA1(c4abc2c59152c59a45f85393e9525505bc2c9e6e), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x400005, 0x40000)
+ ROMX_LOAD( "11.bin", 0x400002, 0x40000, CRC(2919883b) SHA1(44ad979daae673c77b3157d2b352797d4ad0ec24), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x400006, 0x40000)
+ ROMX_LOAD( "10.bin", 0x400003, 0x40000, CRC(f538e620) SHA1(354cd0548b067dfc8782bbe13b0a9c2083dbd290), ROM_SKIP(7) )
+ ROM_CONTINUE( 0x400007, 0x40000)
+
+ ROM_REGION( 0x2000, "audiocpu", 0 ) /* PIC16c57 - protected, dump isn't valid */
+ ROM_LOAD( "pic16c57-xt-p.bin", 0x00000, 0x2000, BAD_DUMP CRC(aeae5ccc) SHA1(553afb68f7bf130cdf34e24512f72b4ecef1576f) )
+
+ ROM_REGION( 0x80000, "oki", 0 ) /* OKI6295 samples */
+ ROM_LOAD( "18.bin", 0x00000, 0x80000, CRC(73a0c11c) SHA1(a66e1a964313e21c4436200d36c598dcb277cd34) )
+
+ ROM_REGION( 0x20000, "user1", 0 ) // not in the dump, but needed for protection
+ ROM_LOAD( "mb_qa.5k", 0x00000, 0x20000, CRC(e21a03c4) SHA1(98c03fd2c9b6bf8a4fc25a4edca87fff7c3c3819) )
+ROM_END
+
+
+// ************************************************************************* DRIVER MACROS
+
+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)", 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)", 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)", 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)", 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)", 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)", 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)", 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)", 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)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // 921005 - Sangokushi 2
+
+// HBMAME **********************************************/
+
+
+GAME( 1990, cawingb, cawing, cawingb, cawingbl, cps_state, cawingbl, ROT0, "bootleg", "Carrier Air Wing (bootleg)", MACHINE_SUPPORTS_SAVE )
+
+static ADDRESS_MAP_START( captcommb2_map, AS_PROGRAM, 16, cps_state )
+ AM_RANGE(0x000000, 0x1fffff) AM_ROM
+ AM_RANGE(0x800000, 0x800001) AM_READ_PORT("IN1") /* Player input ports */
+ AM_RANGE(0x800018, 0x80001f) AM_READ(cps1_dsw_r) /* System input ports / Dip Switches */
+ AM_RANGE(0x800030, 0x800037) AM_WRITE(cps1_coinctrl_w)
+ AM_RANGE(0x800100, 0x80013f) AM_WRITE(cps1_cps_a_w) AM_SHARE("cps_a_regs") /* CPS-A custom */
+ AM_RANGE(0x800140, 0x80017f) AM_READWRITE(cps1_cps_b_r, cps1_cps_b_w) AM_SHARE("cps_b_regs")
+ AM_RANGE(0x800180, 0x800181) AM_WRITE(fcrash_soundlatch_w) /* Sound command */
+ AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE(cps1_gfxram_w) AM_SHARE("gfxram")
+ AM_RANGE(0xff0000, 0xffffff) AM_RAM
+ADDRESS_MAP_END
+
+
+MACHINE_START_MEMBER(cps_state, captcommb2)
+{
+ uint8_t *ROM = memregion("audiocpu")->base();
+
+ membank("bank1")->configure_entries(0, 16, &ROM[0x10000], 0x4000);
+
+ save_item(NAME(m_sample_buffer1));
+ save_item(NAME(m_sample_buffer2));
+ save_item(NAME(m_sample_select1));
+ save_item(NAME(m_sample_select2));
+}
+
+static MACHINE_CONFIG_START( captcommb2 )
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", M68000, 10000000)
+ MCFG_CPU_PROGRAM_MAP(captcommb2_map)
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", cps_state, cps1_interrupt)
+
+ MCFG_CPU_ADD("audiocpu", Z80, 3579545)
+ MCFG_CPU_PROGRAM_MAP(sf2mdt_z80map)
+
+ MCFG_MACHINE_START_OVERRIDE(cps_state,captcommb2)
+ MCFG_MACHINE_RESET_OVERRIDE(cps_state,fcrash)
+
+ /* 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(8*8, (64-8)*8-1, 2*8, 30*8-1 )
+ MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_cps1)
+ MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(cps_state, screen_vblank_cps1))
+ MCFG_SCREEN_PALETTE("palette")
+
+ MCFG_GFXDECODE_ADD("gfxdecode", "palette", cps1)
+ MCFG_PALETTE_ADD("palette", 4096)
+
+ MCFG_VIDEO_START_OVERRIDE(cps_state,cps1)
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+ MCFG_GENERIC_LATCH_8_ADD("soundlatch")
+
+ MCFG_YM2151_ADD("2151", 3579545)
+ MCFG_SOUND_ROUTE(0, "mono", 0.35)
+ MCFG_SOUND_ROUTE(1, "mono", 0.35)
+
+ /* has 2x MSM5205 instead of OKI6295 */
+ MCFG_SOUND_ADD("msm1", MSM5205, 24000000/64) /* ? */
+ MCFG_MSM5205_VCLK_CB(WRITELINE(cps_state, m5205_int1)) /* interrupt function */
+ MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) /* 4KHz 4-bit */
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
+
+ MCFG_SOUND_ADD("msm2", MSM5205, 24000000/64) /* ? */
+ MCFG_MSM5205_VCLK_CB(WRITELINE(cps_state, m5205_int2)) /* interrupt function */
+ MCFG_MSM5205_PRESCALER_SELECTOR(S96_4B) /* 4KHz 4-bit */
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
+MACHINE_CONFIG_END
+
+
+ROM_START( captcommb2 )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "5.bin", 0x000000, 0x80000, CRC(c3a6ed28) SHA1(f79fed35f7b0dc383837a2ead846acc686dd3487) )
+ ROM_LOAD16_BYTE( "4.bin", 0x000001, 0x80000, CRC(28729335) SHA1(6dd23c2d41e4e182434fe80c03d5c90785e6c0ce) )
+ ROM_LOAD16_BYTE( "3.bin", 0x100000, 0x40000, CRC(1b526d73) SHA1(3dd8dec61db4f4f5546937602a8fb01c639d72f8) )
+ ROM_LOAD16_BYTE( "2.bin", 0x100001, 0x40000, CRC(73c99709) SHA1(e122e3771b698c44fb998589af0542b1f2a3876a) )
+
+ ROM_REGION( 0x400000, "gfx", 0 )
+ ROMX_LOAD( "cap.bin", 0x000000, 0x80000, CRC(7261d8ba) SHA1(4b66292e42d20d0b79a756f0e445492ddb9c6bbc) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-5m.3a
+ ROMX_LOAD( "cbp.bin", 0x000002, 0x80000, CRC(6a60f949) SHA1(87391ff92abaf3e451f70d789a938cffbd1fd222) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-7m.5a
+ ROMX_LOAD( "ccp.bin", 0x000004, 0x80000, CRC(00637302) SHA1(2c554b59cceec2de67a9a4bc6281fe846d3c8cd2) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-1m.4a
+ ROMX_LOAD( "cdp.bin", 0x000006, 0x80000, CRC(cc87cf61) SHA1(7fb1f49494cc1a08aded20754bb0cefb1c323198) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-3m.6a
+ ROMX_LOAD( "cai.bin", 0x200000, 0x80000, CRC(28718bed) SHA1(dfdc4dd14dc609783bad94d608a9e9b137dea944) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-6m.7a
+ ROMX_LOAD( "cbi.bin", 0x200002, 0x80000, CRC(d4acc53a) SHA1(d03282ebbde362e679cc97f772aa9baf163d7606) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-8m.9a
+ ROMX_LOAD( "cci.bin", 0x200004, 0x80000, CRC(0c69f151) SHA1(a170b8e568439e4a26d84376d53560e4248e4e2f) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-2m.8a
+ ROMX_LOAD( "cdi.bin", 0x200006, 0x80000, CRC(1f9ebb97) SHA1(023d00cb7b6a52d1b29e2052abe08ef34cb0c55c) , ROM_GROUPWORD | ROM_SKIP(6) ) // == cc-4m.10a
+
+ ROM_REGION( 0x50000, "audiocpu", 0 ) /* Sound program + samples */
+ ROM_LOAD( "1.bin", 0x00000, 0x40000, CRC(aed2f4bd) SHA1(3bd567dc350bf6ac3a349548790ad49eb5bd8307) )
+ ROM_RELOAD( 0x10000, 0x40000 )
+ROM_END
+
+
+GAME( 1991, captcommb2,captcomm, captcommb2,captcomm, cps_state, cps1, ROT0, "bootleg", "Captain Commando (bootleg with YM2151 + 2xMSM5205)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/galaga.cpp b/src/hbmame/drivers/galaga.cpp
new file mode 100644
index 00000000000..01d5a806d42
--- /dev/null
+++ b/src/hbmame/drivers/galaga.cpp
@@ -0,0 +1,1073 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/galaga.cpp"
+
+// Produce pacman death sound in galagost
+WRITE8_MEMBER( galaga_hbmame::galaga_sample_w )
+{
+ switch ( data )
+ {
+ case 0x20: /* loud bang */
+ m_samples->start(0, 0);
+ case 0x10: /* soft bang */
+ break;
+ default:
+ m_06xx->data_w ( space, offset, data );
+ }
+}
+
+static const char *const galagost_sample_names[] =
+{
+ "*galagost",
+ "bang",
+ 0 /* end of array */
+};
+
+static ADDRESS_MAP_START( galagost_map, AS_PROGRAM, 8, galaga_hbmame )
+ AM_RANGE(0x0000, 0x3fff) AM_ROM AM_WRITENOP /* the only area different for each CPU */
+ AM_RANGE(0x6800, 0x6807) AM_READ(bosco_dsw_r)
+ AM_RANGE(0x6800, 0x681f) AM_DEVWRITE("namco", namco_device, pacman_sound_w)
+ AM_RANGE(0x6820, 0x6827) AM_DEVWRITE("misclatch", ls259_device, write_d0)
+ AM_RANGE(0x6830, 0x6830) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
+ AM_RANGE(0x7000, 0x70ff) AM_DEVREAD("06xx", namco_06xx_device, data_r) AM_WRITE(galaga_sample_w)
+ AM_RANGE(0x7100, 0x7100) AM_DEVREADWRITE("06xx", namco_06xx_device, ctrl_r, ctrl_w)
+ AM_RANGE(0x8000, 0x87ff) AM_RAM_WRITE(galaga_videoram_w) AM_SHARE("videoram")
+ AM_RANGE(0x8800, 0x8bff) AM_RAM AM_SHARE("galaga_ram1")
+ AM_RANGE(0x9000, 0x93ff) AM_RAM AM_SHARE("galaga_ram2")
+ AM_RANGE(0x9800, 0x9bff) AM_RAM AM_SHARE("galaga_ram3")
+ AM_RANGE(0xa000, 0xa007) AM_DEVWRITE("videolatch", ls259_device, write_d0)
+ADDRESS_MAP_END
+
+static MACHINE_CONFIG_DERIVED( galagost, galaga )
+ MCFG_CPU_MODIFY( "maincpu" )
+ MCFG_CPU_PROGRAM_MAP(galagost_map)
+
+ /* sound hardware */
+ MCFG_SOUND_ADD("samples", SAMPLES, 0)
+ MCFG_SAMPLES_CHANNELS(1)
+ MCFG_SAMPLES_NAMES(galagost_sample_names)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75)
+MACHINE_CONFIG_END
+
+// galaga hacks
+
+ROM_START( galagabl )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "gg1-1", 0x0000, 0x1000, CRC(a3a0f743) SHA1(6907773db7c002ecde5e41853603d53387c5c7cd) )
+ ROM_LOAD( "galagabl.1_2", 0x1000, 0x1000, CRC(f1d87ec3) SHA1(44034b4f015d9e876253d2827e05f3d41133e097) )
+ ROM_LOAD( "gg1_3.2m", 0x2000, 0x1000, CRC(753ce503) SHA1(481f443aea3ed3504ec2f3a6bfcf3cd47e2f8f81) )
+ ROM_LOAD( "gg1-4", 0x3000, 0x1000, CRC(83874442) SHA1(366cb0dbd31b787e64f88d182108b670d03b393e) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "gg1-5", 0x0000, 0x1000, CRC(3102fccd) SHA1(d29b68d6aab3217fa2106b3507b9273ff3f927bf) )
+
+ ROM_REGION( 0x10000, "sub2", 0 )
+ ROM_LOAD( "gg1-7", 0x0000, 0x1000, CRC(8995088d) SHA1(d6cb439de0718826d1a0363c9d77de8740b18ecf) )
+
+ ROM_REGION( 0x10000, "sub3", 0 )
+ ROM_LOAD( "galagabl.1_6", 0x0000, 0x1000, CRC(001b70bc) SHA1(b465eee91e75257b7b049d49c0064ab5fd66c576) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "gg1_9.4l", 0x0000, 0x1000, CRC(58b2f47c) SHA1(62f1279a784ab2f8218c4137c7accda00e6a3490) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "gg1_11.4d", 0x0000, 0x1000, CRC(ad447c80) SHA1(e697c180178cabd1d32483c5d8889a40633f7857) )
+ ROM_LOAD( "gg1_10.4f", 0x1000, 0x1000, CRC(dd6f1afc) SHA1(c340ed8c25e0979629a9a1730edc762bd72d0cff) )
+
+ ROM_REGION( 0x0220, "proms", 0 )
+ ROM_LOAD( "prom-5.5n", 0x0000, 0x0020, CRC(54603c6b) SHA1(1a6dea13b4af155d9cb5b999a75d4f1eb9c71346) )
+ ROM_LOAD( "prom-4.2n", 0x0020, 0x0100, CRC(59b6edab) SHA1(0281de86c236c88739297ff712e0a4f5c8bf8ab9) )
+ ROM_LOAD( "prom-3.1c", 0x0120, 0x0100, CRC(4a04bb6b) SHA1(cdd4bc1013f5c11984fdc4fd10e2d2e27120c1e5) )
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "prom-1.1d", 0x0000, 0x0100, CRC(7a2815b4) SHA1(085ada18c498fdb18ecedef0ea8fe9217edb7b46) )
+ ROM_LOAD( "prom-2.5c", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) )
+ROM_END
+
+ROM_START( galagab2 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "gg1_1b.3p", 0x0000, 0x1000, CRC(ab036c9f) SHA1(ca7f5da42d4e76fd89bb0b35198a23c01462fbfe) )
+ ROM_LOAD( "gg1_2b.3m", 0x1000, 0x1000, CRC(d9232240) SHA1(ab202aa259c3d332ef13dfb8fc8580ce2a5a253d) )
+ ROM_LOAD( "gg1_3.2m", 0x2000, 0x1000, CRC(753ce503) SHA1(481f443aea3ed3504ec2f3a6bfcf3cd47e2f8f81) )
+ ROM_LOAD( "gg1_4b.2l", 0x3000, 0x1000, CRC(499fcc76) SHA1(ddb8b121903646c320939c7d13f4aa4ebb130378) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "gg1-5", 0x0000, 0x1000, CRC(3102fccd) SHA1(d29b68d6aab3217fa2106b3507b9273ff3f927bf) )
+
+ ROM_REGION( 0x10000, "sub2", 0 )
+ ROM_LOAD( "gg1-7", 0x0000, 0x1000, CRC(8995088d) SHA1(d6cb439de0718826d1a0363c9d77de8740b18ecf) )
+
+ ROM_REGION( 0x10000, "sub3", 0 )
+ ROM_LOAD( "10h_g07.bin", 0x0000, 0x1000, CRC(035e300c) SHA1(cfda2467e71c27381b7150ff8fc7b69d61df123a) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "gallag.8", 0x0000, 0x1000, CRC(169a98a4) SHA1(edbeb11076061e744ea88d9899dbdfe0964c7e78) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "gg1_11.4d", 0x0000, 0x1000, CRC(ad447c80) SHA1(e697c180178cabd1d32483c5d8889a40633f7857) )
+ ROM_LOAD( "gg1_10.4f", 0x1000, 0x1000, CRC(dd6f1afc) SHA1(c340ed8c25e0979629a9a1730edc762bd72d0cff) )
+
+ ROM_REGION( 0x0320, "proms", 0 )
+ ROM_LOAD( "prom-5.5n", 0x0000, 0x0020, CRC(54603c6b) SHA1(1a6dea13b4af155d9cb5b999a75d4f1eb9c71346) )
+ ROM_LOAD( "2n.bin", 0x0020, 0x0100, CRC(a547d33b) SHA1(7323084320bb61ae1530d916f5edd8835d4d2461) )
+ ROM_LOAD( "1c.bin", 0x0120, 0x0100, CRC(b6f585fb) SHA1(dd10147c4f05fede7ae6e7a760681700a660e87e) )
+ ROM_LOAD( "5c.bin", 0x0220, 0x0100, CRC(8bd565f6) SHA1(bedba65816abfc2ebeacac6ee335ca6f136e3e3d) )
+
+ ROM_REGION( 0x0100, "namco", 0 )
+ ROM_LOAD( "1d.bin", 0x0000, 0x0100, CRC(86d92b24) SHA1(6bef9102b97c83025a2cf84e89d95f2d44c3d2ed) )
+ROM_END
+
+ROM_START( galaga84 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "gg1_1b.3p", 0x0000, 0x1000, CRC(ab036c9f) SHA1(ca7f5da42d4e76fd89bb0b35198a23c01462fbfe) )
+ ROM_LOAD( "gal84_u2", 0x1000, 0x1000, CRC(4d832a30) SHA1(88ee11df88cf08005efccd6305f87fb3e2797db6) )
+ ROM_LOAD( "gg1_3.2m", 0x2000, 0x1000, CRC(753ce503) SHA1(481f443aea3ed3504ec2f3a6bfcf3cd47e2f8f81) )
+ ROM_LOAD( "gg1_4b.2l", 0x3000, 0x1000, CRC(499fcc76) SHA1(ddb8b121903646c320939c7d13f4aa4ebb130378) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "gg1_5b.3f", 0x0000, 0x1000, CRC(bb5caae3) SHA1(e957a581463caac27bc37ca2e2a90f27e4f62b6f) )
+
+ ROM_REGION( 0x10000, "sub2", 0 )
+ ROM_LOAD( "gg1-7", 0x0000, 0x1000, CRC(8995088d) SHA1(d6cb439de0718826d1a0363c9d77de8740b18ecf) )
+
+ ROM_REGION( 0x10000, "sub3", 0 )
+ ROM_LOAD( "10h_g07.bin", 0x0000, 0x1000, CRC(035e300c) SHA1(cfda2467e71c27381b7150ff8fc7b69d61df123a) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "gg1_9.4l", 0x0000, 0x1000, CRC(58b2f47c) SHA1(62f1279a784ab2f8218c4137c7accda00e6a3490) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "gal84u4d", 0x0000, 0x1000, CRC(22e339d5) SHA1(9ac2887ede802d28daa4ad0a0a54bcf7b1155a2e) )
+ ROM_LOAD( "gal84u4e", 0x1000, 0x1000, CRC(60dcf940) SHA1(6530aa5b4afef4a8422ece76a93d0c5b1d93355e) )
+
+ ROM_REGION( 0x0320, "proms", 0 )
+ ROM_LOAD( "prom-5.5n", 0x0000, 0x0020, CRC(54603c6b) SHA1(1a6dea13b4af155d9cb5b999a75d4f1eb9c71346) )
+ ROM_LOAD( "2n.bin", 0x0020, 0x0100, CRC(a547d33b) SHA1(7323084320bb61ae1530d916f5edd8835d4d2461) )
+ ROM_LOAD( "1c.bin", 0x0120, 0x0100, CRC(b6f585fb) SHA1(dd10147c4f05fede7ae6e7a760681700a660e87e) )
+ ROM_LOAD( "5c.bin", 0x0220, 0x0100, CRC(8bd565f6) SHA1(bedba65816abfc2ebeacac6ee335ca6f136e3e3d) )
+
+ ROM_REGION( 0x0100, "namco", 0 )
+ ROM_LOAD( "1d.bin", 0x0000, 0x0100, CRC(86d92b24) SHA1(6bef9102b97c83025a2cf84e89d95f2d44c3d2ed) )
+ROM_END
+
+ROM_START( galagads )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "3200a.bin", 0x0000, 0x1000, CRC(3ef0b053) SHA1(0c04a362b737998c0952a753fb3fd8c8a17e9b46) )
+ ROM_LOAD( "3300b.bin", 0x1000, 0x1000, CRC(1b280831) SHA1(f7ea12e61929717ebe43a4198a97f109845a2c62) )
+ ROM_LOAD( "3400c.bin", 0x2000, 0x1000, CRC(16233d33) SHA1(a7eb799be5e23058754a92b15e6527bfbb47a354) )
+ ROM_LOAD( "3500d.bin", 0x3000, 0x1000, CRC(0aaf5c23) SHA1(3f4b0bb960bf002261e9c1278c88f594c6aa8ab6) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "3600fast.bin", 0x0000, 0x1000, CRC(23d586e5) SHA1(43346c69385e9091e64cff6c027ac2689cafcbb9) )
+
+ ROM_REGION( 0x10000, "sub2", 0 )
+ ROM_LOAD( "3700g.bin", 0x0000, 0x1000, CRC(b07f0aa4) SHA1(7528644a8480d0be2d0d37069515ed319e94778f) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "gg1_9.4l", 0x0000, 0x1000, CRC(58b2f47c) SHA1(62f1279a784ab2f8218c4137c7accda00e6a3490) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "gg1_11.4d", 0x0000, 0x1000, CRC(ad447c80) SHA1(e697c180178cabd1d32483c5d8889a40633f7857) )
+ ROM_LOAD( "gg1_10.4f", 0x1000, 0x1000, CRC(dd6f1afc) SHA1(c340ed8c25e0979629a9a1730edc762bd72d0cff) )
+
+ ROM_REGION( 0x0320, "proms", 0 )
+ ROM_LOAD( "prom-5.5n", 0x0000, 0x0020, CRC(54603c6b) SHA1(1a6dea13b4af155d9cb5b999a75d4f1eb9c71346) )
+ ROM_LOAD( "2n.bin", 0x0020, 0x0100, CRC(a547d33b) SHA1(7323084320bb61ae1530d916f5edd8835d4d2461) )
+ ROM_LOAD( "1c.bin", 0x0120, 0x0100, CRC(b6f585fb) SHA1(dd10147c4f05fede7ae6e7a760681700a660e87e) )
+ ROM_LOAD( "5c.bin", 0x0220, 0x0100, CRC(8bd565f6) SHA1(bedba65816abfc2ebeacac6ee335ca6f136e3e3d) )
+
+ ROM_REGION( 0x0100, "namco", 0 )
+ ROM_LOAD( "1d.bin", 0x0000, 0x0100, CRC(86d92b24) SHA1(6bef9102b97c83025a2cf84e89d95f2d44c3d2ed) )
+ROM_END
+
+ROM_START( galaga99 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "gg1-1", 0x0000, 0x1000, CRC(a3a0f743) SHA1(6907773db7c002ecde5e41853603d53387c5c7cd) )
+ ROM_LOAD( "g99-04k_g02.bin", 0x1000, 0x1000, CRC(ab0df3ac) SHA1(29c5bce17baa6778fad5faff1a241021e143e29f) )
+ ROM_LOAD( "gg1_3.2m", 0x2000, 0x1000, CRC(753ce503) SHA1(481f443aea3ed3504ec2f3a6bfcf3cd47e2f8f81) )
+ ROM_LOAD( "g99-04h_g04.bin", 0x3000, 0x1000, CRC(b9a315fb) SHA1(3422dbd1fe116f9193dcccb1dba691eb98eab3aa) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "gg1-5", 0x0000, 0x1000, CRC(3102fccd) SHA1(d29b68d6aab3217fa2106b3507b9273ff3f927bf) )
+
+ ROM_REGION( 0x10000, "sub2", 0 )
+ ROM_LOAD( "gg1-7", 0x0000, 0x1000, CRC(8995088d) SHA1(d6cb439de0718826d1a0363c9d77de8740b18ecf) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "g99-07m_g08.bin", 0x0000, 0x1000, CRC(cc091e8b) SHA1(b71b962d5cd71fa78f0709b5cccf549cb7f4e9f0) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "g99-07e_g10.bin", 0x0000, 0x1000, CRC(2b493359) SHA1(e006ee999277120f01d1669ffe28df0b96415af5) )
+ ROM_LOAD( "g99-07h_g09.bin", 0x1000, 0x1000, CRC(cdbb428d) SHA1(6c8dfb5da2bee99f07585e23ecfa21c67218cddb) )
+
+ ROM_REGION( 0x0320, "proms", 0 )
+ ROM_LOAD( "prom-5.5n", 0x0000, 0x0020, CRC(54603c6b) SHA1(1a6dea13b4af155d9cb5b999a75d4f1eb9c71346) )
+ ROM_LOAD( "2n.bin", 0x0020, 0x0100, CRC(a547d33b) SHA1(7323084320bb61ae1530d916f5edd8835d4d2461) )
+ ROM_LOAD( "1c.bin", 0x0120, 0x0100, CRC(b6f585fb) SHA1(dd10147c4f05fede7ae6e7a760681700a660e87e) )
+ ROM_LOAD( "5c.bin", 0x0220, 0x0100, CRC(8bd565f6) SHA1(bedba65816abfc2ebeacac6ee335ca6f136e3e3d) )
+
+ ROM_REGION( 0x0100, "namco", 0 )
+ ROM_LOAD( "1d.bin", 0x0000, 0x0100, CRC(86d92b24) SHA1(6bef9102b97c83025a2cf84e89d95f2d44c3d2ed) )
+ROM_END
+
+ROM_START( galagaf )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "3200a.bin", 0x0000, 0x1000, CRC(3ef0b053) SHA1(0c04a362b737998c0952a753fb3fd8c8a17e9b46) )
+ ROM_LOAD( "3300b.bin", 0x1000, 0x1000, CRC(1b280831) SHA1(f7ea12e61929717ebe43a4198a97f109845a2c62) )
+ ROM_LOAD( "3400c.bin", 0x2000, 0x1000, CRC(16233d33) SHA1(a7eb799be5e23058754a92b15e6527bfbb47a354) )
+ ROM_LOAD( "3500d.bin", 0x3000, 0x1000, CRC(0aaf5c23) SHA1(3f4b0bb960bf002261e9c1278c88f594c6aa8ab6) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "gg_5fast.bin", 0x0000, 0x1000, CRC(ae82145e) SHA1(146bd848e9783f34b1a006d793ee3f36e53baad0) )
+
+ ROM_REGION( 0x10000, "sub2", 0 )
+ ROM_LOAD( "3700g.bin", 0x0000, 0x1000, CRC(b07f0aa4) SHA1(7528644a8480d0be2d0d37069515ed319e94778f) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "gg1_9.4l", 0x0000, 0x1000, CRC(58b2f47c) SHA1(62f1279a784ab2f8218c4137c7accda00e6a3490) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "gg1_11.4d", 0x0000, 0x1000, CRC(ad447c80) SHA1(e697c180178cabd1d32483c5d8889a40633f7857) )
+ ROM_LOAD( "gg1_10.4f", 0x1000, 0x1000, CRC(dd6f1afc) SHA1(c340ed8c25e0979629a9a1730edc762bd72d0cff) )
+
+ ROM_REGION( 0x0220, "proms", 0 )
+ ROM_LOAD( "prom-5.5n", 0x0000, 0x0020, CRC(54603c6b) SHA1(1a6dea13b4af155d9cb5b999a75d4f1eb9c71346) )
+ ROM_LOAD( "prom-4.2n", 0x0020, 0x0100, CRC(59b6edab) SHA1(0281de86c236c88739297ff712e0a4f5c8bf8ab9) )
+ ROM_LOAD( "prom-3.1c", 0x0120, 0x0100, CRC(4a04bb6b) SHA1(cdd4bc1013f5c11984fdc4fd10e2d2e27120c1e5) )
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "prom-1.1d", 0x0000, 0x0100, CRC(7a2815b4) SHA1(085ada18c498fdb18ecedef0ea8fe9217edb7b46) )
+ ROM_LOAD( "prom-2.5c", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) )
+ROM_END
+
+/* This set has the fix proposed by Don Hodges at the page:
+ http://donhodges.com/galaga_stage_256_fix.htm */
+ROM_START( galagap )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "gg1_1b.3p", 0x0000, 0x1000, CRC(ab036c9f) SHA1(ca7f5da42d4e76fd89bb0b35198a23c01462fbfe) )
+ ROM_LOAD( "gg1_2b.3m", 0x1000, 0x1000, CRC(d9232240) SHA1(ab202aa259c3d332ef13dfb8fc8580ce2a5a253d) )
+ ROM_LOAD( "gg1_3.2m", 0x2000, 0x1000, CRC(753ce503) SHA1(481f443aea3ed3504ec2f3a6bfcf3cd47e2f8f81) )
+ ROM_LOAD( "gg1_4b.2l", 0x3000, 0x1000, CRC(499fcc76) SHA1(ddb8b121903646c320939c7d13f4aa4ebb130378) )
+ ROM_FILL(0x25c4,1,0xa7)
+ ROM_FILL(0x25d0,1,0x00)
+ ROM_FILL(0x2fff,1,0xb2)
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "gg1_5b.3f", 0x0000, 0x1000, CRC(bb5caae3) SHA1(e957a581463caac27bc37ca2e2a90f27e4f62b6f) )
+
+ ROM_REGION( 0x10000, "sub2", 0 )
+ ROM_LOAD( "gg1_7b.2c", 0x0000, 0x1000, CRC(d016686b) SHA1(44c1a04fba3c7c826ff484185cb881b4b22e6657) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "gg1_9.4l", 0x0000, 0x1000, CRC(58b2f47c) SHA1(62f1279a784ab2f8218c4137c7accda00e6a3490) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "gg1_11.4d", 0x0000, 0x1000, CRC(ad447c80) SHA1(e697c180178cabd1d32483c5d8889a40633f7857) )
+ ROM_LOAD( "gg1_10.4f", 0x1000, 0x1000, CRC(dd6f1afc) SHA1(c340ed8c25e0979629a9a1730edc762bd72d0cff) )
+
+ ROM_REGION( 0x0220, "proms", 0 )
+ ROM_LOAD( "prom-5.5n", 0x0000, 0x0020, CRC(54603c6b) SHA1(1a6dea13b4af155d9cb5b999a75d4f1eb9c71346) )
+ ROM_LOAD( "prom-4.2n", 0x0020, 0x0100, CRC(59b6edab) SHA1(0281de86c236c88739297ff712e0a4f5c8bf8ab9) )
+ ROM_LOAD( "prom-3.1c", 0x0120, 0x0100, CRC(4a04bb6b) SHA1(cdd4bc1013f5c11984fdc4fd10e2d2e27120c1e5) )
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "prom-1.1d", 0x0000, 0x0100, CRC(7a2815b4) SHA1(085ada18c498fdb18ecedef0ea8fe9217edb7b46) )
+ ROM_LOAD( "prom-2.5c", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) )
+ROM_END
+
+ROM_START( galagix )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "gg1-1", 0x0000, 0x1000, CRC(a3a0f743) SHA1(6907773db7c002ecde5e41853603d53387c5c7cd) )
+ ROM_LOAD( "gg1-2", 0x1000, 0x1000, CRC(43bb0d5c) SHA1(666975aed5ce84f09794c54b550d64d95ab311f0) )
+ ROM_LOAD( "gg1_3.2m", 0x2000, 0x1000, CRC(753ce503) SHA1(481f443aea3ed3504ec2f3a6bfcf3cd47e2f8f81) )
+ ROM_LOAD( "gg1-4", 0x3000, 0x1000, CRC(83874442) SHA1(366cb0dbd31b787e64f88d182108b670d03b393e) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "gg1-5", 0x0000, 0x1000, CRC(3102fccd) SHA1(d29b68d6aab3217fa2106b3507b9273ff3f927bf) )
+
+ ROM_REGION( 0x10000, "sub2", 0 )
+ ROM_LOAD( "gg1-7", 0x0000, 0x1000, CRC(8995088d) SHA1(d6cb439de0718826d1a0363c9d77de8740b18ecf) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "gx_07m_g08.bin", 0x0000, 0x1000, CRC(4b0a6b29) SHA1(1707bdfab7a17579b4171417d86ae76e065299c5) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "gx_07e_g10.bin", 0x0000, 0x1000, CRC(b52a7dff) SHA1(1bf1cf9db72d16d1e6539d4fc05bbee071cc3420) )
+ ROM_LOAD( "gx_07h_g09.bin", 0x1000, 0x1000, CRC(ffd5c70e) SHA1(5eac91087129ec8038feabdb18cb3199e52cae23) )
+
+ ROM_REGION( 0x0320, "proms", 0 )
+ ROM_LOAD( "prom-5.5n", 0x0000, 0x0020, CRC(54603c6b) SHA1(1a6dea13b4af155d9cb5b999a75d4f1eb9c71346) )
+ ROM_LOAD( "2n.bin", 0x0020, 0x0100, CRC(a547d33b) SHA1(7323084320bb61ae1530d916f5edd8835d4d2461) )
+ ROM_LOAD( "1c.bin", 0x0120, 0x0100, CRC(b6f585fb) SHA1(dd10147c4f05fede7ae6e7a760681700a660e87e) )
+ ROM_LOAD( "5c.bin", 0x0220, 0x0100, CRC(8bd565f6) SHA1(bedba65816abfc2ebeacac6ee335ca6f136e3e3d) )
+
+ ROM_REGION( 0x0100, "namco", 0 )
+ ROM_LOAD( "1d.bin", 0x0000, 0x0100, CRC(86d92b24) SHA1(6bef9102b97c83025a2cf84e89d95f2d44c3d2ed) )
+ROM_END
+
+ROM_START( galagost )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "3200a.bin", 0x0000, 0x1000, CRC(3ef0b053) SHA1(0c04a362b737998c0952a753fb3fd8c8a17e9b46) )
+ ROM_LOAD( "3300b.bin", 0x1000, 0x1000, CRC(1b280831) SHA1(f7ea12e61929717ebe43a4198a97f109845a2c62) )
+ ROM_LOAD( "3400c.bin", 0x2000, 0x1000, CRC(16233d33) SHA1(a7eb799be5e23058754a92b15e6527bfbb47a354) )
+ ROM_LOAD( "3500d.bin", 0x3000, 0x1000, CRC(0aaf5c23) SHA1(3f4b0bb960bf002261e9c1278c88f594c6aa8ab6) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "3600fast.bin", 0x0000, 0x1000, CRC(23d586e5) SHA1(43346c69385e9091e64cff6c027ac2689cafcbb9) )
+
+ ROM_REGION( 0x10000, "sub2", 0 )
+ ROM_LOAD( "3700g.bin", 0x0000, 0x1000, CRC(b07f0aa4) SHA1(7528644a8480d0be2d0d37069515ed319e94778f) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "gost_07m_g08.bin", 0x0000, 0x1000, CRC(c7588555) SHA1(269362b7fe63007b317ee4b63ef7d09f24d9c362) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "gost_07e_g10.bin", 0x0000, 0x1000, CRC(0758b90f) SHA1(89cc8db9457fa5f56b49930590f32aba1bc55323) )
+ ROM_LOAD( "gost_07h_g09.bin", 0x1000, 0x1000, CRC(53f1332b) SHA1(04136e52008c4ad4813529d633fd9b8c71e6ccc0) )
+
+ ROM_REGION( 0x0320, "proms", 0 )
+ ROM_LOAD( "prom-5.5n", 0x0000, 0x0020, CRC(54603c6b) SHA1(1a6dea13b4af155d9cb5b999a75d4f1eb9c71346) )
+ ROM_LOAD( "2n.bin", 0x0020, 0x0100, CRC(a547d33b) SHA1(7323084320bb61ae1530d916f5edd8835d4d2461) )
+ ROM_LOAD( "1c.bin", 0x0120, 0x0100, CRC(b6f585fb) SHA1(dd10147c4f05fede7ae6e7a760681700a660e87e) )
+ ROM_LOAD( "5c.bin", 0x0220, 0x0100, CRC(8bd565f6) SHA1(bedba65816abfc2ebeacac6ee335ca6f136e3e3d) )
+
+ ROM_REGION( 0x0100, "namco", 0 )
+ ROM_LOAD( "1d.bin", 0x0000, 0x0100, CRC(86d92b24) SHA1(6bef9102b97c83025a2cf84e89d95f2d44c3d2ed) )
+ROM_END
+
+ROM_START( galagosb )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "3200a.bin", 0x0000, 0x1000, CRC(3ef0b053) SHA1(0c04a362b737998c0952a753fb3fd8c8a17e9b46) )
+ ROM_LOAD( "3300b.bin", 0x1000, 0x1000, CRC(1b280831) SHA1(f7ea12e61929717ebe43a4198a97f109845a2c62) )
+ ROM_LOAD( "3400c.bin", 0x2000, 0x1000, CRC(16233d33) SHA1(a7eb799be5e23058754a92b15e6527bfbb47a354) )
+ ROM_LOAD( "3500d.bin", 0x3000, 0x1000, CRC(0aaf5c23) SHA1(3f4b0bb960bf002261e9c1278c88f594c6aa8ab6) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "3600fast.bin", 0x0000, 0x1000, CRC(23d586e5) SHA1(43346c69385e9091e64cff6c027ac2689cafcbb9) )
+
+ ROM_REGION( 0x10000, "sub2", 0 )
+ ROM_LOAD( "3700g.bin", 0x0000, 0x1000, CRC(b07f0aa4) SHA1(7528644a8480d0be2d0d37069515ed319e94778f) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "gost_07m_g08.bin", 0x0000, 0x1000, CRC(c7588555) SHA1(269362b7fe63007b317ee4b63ef7d09f24d9c362) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "gost_07e_g10.bin", 0x0000, 0x1000, CRC(0758b90f) SHA1(89cc8db9457fa5f56b49930590f32aba1bc55323) )
+ ROM_LOAD( "gosb_07h_g09.bin", 0x1000, 0x1000, CRC(0339291c) SHA1(4958a78b6afb9f2b4f46d3c0f654843c077686a9) )
+
+ ROM_REGION( 0x0320, "proms", 0 )
+ ROM_LOAD( "prom-5.5n", 0x0000, 0x0020, CRC(54603c6b) SHA1(1a6dea13b4af155d9cb5b999a75d4f1eb9c71346) )
+ ROM_LOAD( "2n.bin", 0x0020, 0x0100, CRC(a547d33b) SHA1(7323084320bb61ae1530d916f5edd8835d4d2461) )
+ ROM_LOAD( "1c.bin", 0x0120, 0x0100, CRC(b6f585fb) SHA1(dd10147c4f05fede7ae6e7a760681700a660e87e) )
+ ROM_LOAD( "5c.bin", 0x0220, 0x0100, CRC(8bd565f6) SHA1(bedba65816abfc2ebeacac6ee335ca6f136e3e3d) )
+
+ ROM_REGION( 0x0100, "namco", 0 )
+ ROM_LOAD( "1d.bin", 0x0000, 0x0100, CRC(86d92b24) SHA1(6bef9102b97c83025a2cf84e89d95f2d44c3d2ed) )
+ROM_END
+
+ROM_START( galaped )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "3200a.bin", 0x0000, 0x1000, CRC(3ef0b053) SHA1(0c04a362b737998c0952a753fb3fd8c8a17e9b46) )
+ ROM_LOAD( "3300b.bin", 0x1000, 0x1000, CRC(1b280831) SHA1(f7ea12e61929717ebe43a4198a97f109845a2c62) )
+ ROM_LOAD( "3400c.bin", 0x2000, 0x1000, CRC(16233d33) SHA1(a7eb799be5e23058754a92b15e6527bfbb47a354) )
+ ROM_LOAD( "3500d.bin", 0x3000, 0x1000, CRC(0aaf5c23) SHA1(3f4b0bb960bf002261e9c1278c88f594c6aa8ab6) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "3600fast.bin", 0x0000, 0x1000, CRC(23d586e5) SHA1(43346c69385e9091e64cff6c027ac2689cafcbb9) )
+
+ ROM_REGION( 0x10000, "sub2", 0 )
+ ROM_LOAD( "3700g.bin", 0x0000, 0x1000, CRC(b07f0aa4) SHA1(7528644a8480d0be2d0d37069515ed319e94778f) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "ped_07m_g08.bin", 0x0000, 0x1000, CRC(d4fda6a5) SHA1(c1d39bfa2ad866e726b77f15ca22ef97ac3f51a4) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "ped_07e_g10.bin", 0x0000, 0x1000, CRC(1d0a2438) SHA1(66a4d7120f926a67dac0203b73c60917e5c140cf) )
+ ROM_LOAD( "ped_07h_g09.bin", 0x1000, 0x1000, CRC(11d9b093) SHA1(8f151f4813ca7a80a228f2123cc089de414bc3f9) )
+
+ ROM_REGION( 0x0320, "proms", 0 )
+ ROM_LOAD( "prom-5.5n", 0x0000, 0x0020, CRC(54603c6b) SHA1(1a6dea13b4af155d9cb5b999a75d4f1eb9c71346) )
+ ROM_LOAD( "2n.bin", 0x0020, 0x0100, CRC(a547d33b) SHA1(7323084320bb61ae1530d916f5edd8835d4d2461) )
+ ROM_LOAD( "1c.bin", 0x0120, 0x0100, CRC(b6f585fb) SHA1(dd10147c4f05fede7ae6e7a760681700a660e87e) )
+ ROM_LOAD( "5c.bin", 0x0220, 0x0100, CRC(8bd565f6) SHA1(bedba65816abfc2ebeacac6ee335ca6f136e3e3d) )
+
+ ROM_REGION( 0x0100, "namco", 0 )
+ ROM_LOAD( "1d.bin", 0x0000, 0x0100, CRC(86d92b24) SHA1(6bef9102b97c83025a2cf84e89d95f2d44c3d2ed) )
+ROM_END
+
+ROM_START( galgaxin )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "3200a.bin", 0x0000, 0x1000, CRC(3ef0b053) SHA1(0c04a362b737998c0952a753fb3fd8c8a17e9b46) )
+ ROM_LOAD( "3300b.bin", 0x1000, 0x1000, CRC(1b280831) SHA1(f7ea12e61929717ebe43a4198a97f109845a2c62) )
+ ROM_LOAD( "3400c.bin", 0x2000, 0x1000, CRC(16233d33) SHA1(a7eb799be5e23058754a92b15e6527bfbb47a354) )
+ ROM_LOAD( "3500d.bin", 0x3000, 0x1000, CRC(0aaf5c23) SHA1(3f4b0bb960bf002261e9c1278c88f594c6aa8ab6) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "3600e.bin", 0x0000, 0x1000, CRC(bc556e76) SHA1(0d3d68243c4571d985b4d8f7e0ea9f6fcffa2116) )
+
+ ROM_REGION( 0x10000, "sub2", 0 )
+ ROM_LOAD( "3700g.bin", 0x0000, 0x1000, CRC(b07f0aa4) SHA1(7528644a8480d0be2d0d37069515ed319e94778f) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "2600j_4l.bin", 0x0000, 0x1000, CRC(10fa1481) SHA1(09f56503251cc29cf2131d2a0c5bcca4ee276e70) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "2800l_4d.bin", 0x0000, 0x1000, CRC(bf803b06) SHA1(ab0051b3b08f03ad93d100f38b106e761d4c4607) )
+ ROM_LOAD( "2700k.bin", 0x1000, 0x1000, CRC(020906a3) SHA1(72e63918556ae366ede3ffad64a9d3ad4df1e514) )
+
+ ROM_REGION( 0x0320, "proms", 0 )
+ ROM_LOAD( "prom-5.5n", 0x0000, 0x0020, CRC(54603c6b) SHA1(1a6dea13b4af155d9cb5b999a75d4f1eb9c71346) )
+ ROM_LOAD( "2n.bin", 0x0020, 0x0100, CRC(a547d33b) SHA1(7323084320bb61ae1530d916f5edd8835d4d2461) )
+ ROM_LOAD( "1c.bin", 0x0120, 0x0100, CRC(b6f585fb) SHA1(dd10147c4f05fede7ae6e7a760681700a660e87e) )
+ ROM_LOAD( "5c.bin", 0x0220, 0x0100, CRC(8bd565f6) SHA1(bedba65816abfc2ebeacac6ee335ca6f136e3e3d) )
+
+ ROM_REGION( 0x0100, "namco", 0 )
+ ROM_LOAD( "1d.bin", 0x0000, 0x0100, CRC(86d92b24) SHA1(6bef9102b97c83025a2cf84e89d95f2d44c3d2ed) )
+ROM_END
+
+ROM_START( galagaef )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "3200a.bin", 0x0000, 0x1000, CRC(3ef0b053) SHA1(0c04a362b737998c0952a753fb3fd8c8a17e9b46) )
+ ROM_LOAD( "3300b.bin", 0x1000, 0x1000, CRC(1b280831) SHA1(f7ea12e61929717ebe43a4198a97f109845a2c62) )
+ ROM_LOAD( "3400c.bin", 0x2000, 0x1000, CRC(16233d33) SHA1(a7eb799be5e23058754a92b15e6527bfbb47a354) )
+ ROM_LOAD( "3500d.bin", 0x3000, 0x1000, CRC(0aaf5c23) SHA1(3f4b0bb960bf002261e9c1278c88f594c6aa8ab6) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "3600e.bin", 0x0000, 0x1000, CRC(bc556e76) SHA1(0d3d68243c4571d985b4d8f7e0ea9f6fcffa2116) )
+
+ ROM_REGION( 0x10000, "sub2", 0 )
+ ROM_LOAD( "3700g.bin", 0x0000, 0x1000, CRC(b07f0aa4) SHA1(7528644a8480d0be2d0d37069515ed319e94778f) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "gg1_9.4l", 0x0000, 0x1000, CRC(58b2f47c) SHA1(62f1279a784ab2f8218c4137c7accda00e6a3490) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "terror.bin", 0x0000, 0x1000, CRC(1b629f80) SHA1(6db66601fd357400edf3dc1d689255c64a46a72d) )
+ ROM_LOAD( "gg1_10.4f", 0x1000, 0x1000, CRC(dd6f1afc) SHA1(c340ed8c25e0979629a9a1730edc762bd72d0cff) )
+
+ ROM_REGION( 0x0220, "proms", 0 )
+ ROM_LOAD( "prom-5.5n", 0x0000, 0x0020, CRC(54603c6b) SHA1(1a6dea13b4af155d9cb5b999a75d4f1eb9c71346) )
+ ROM_LOAD( "prom-4.2n", 0x0020, 0x0100, CRC(59b6edab) SHA1(0281de86c236c88739297ff712e0a4f5c8bf8ab9) )
+ ROM_LOAD( "prom-3.1c", 0x0120, 0x0100, CRC(4a04bb6b) SHA1(cdd4bc1013f5c11984fdc4fd10e2d2e27120c1e5) )
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "prom-1.1d", 0x0000, 0x0100, CRC(7a2815b4) SHA1(085ada18c498fdb18ecedef0ea8fe9217edb7b46) )
+ ROM_LOAD( "prom-2.5c", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) )
+ROM_END
+
+ROM_START( terror )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "gg1-1", 0x0000, 0x1000, CRC(a3a0f743) SHA1(6907773db7c002ecde5e41853603d53387c5c7cd) )
+ ROM_LOAD( "gg1-2", 0x1000, 0x1000, CRC(43bb0d5c) SHA1(666975aed5ce84f09794c54b550d64d95ab311f0) )
+ ROM_LOAD( "gg1_3.2m", 0x2000, 0x1000, CRC(753ce503) SHA1(481f443aea3ed3504ec2f3a6bfcf3cd47e2f8f81) )
+ ROM_LOAD( "gg1-4", 0x3000, 0x1000, CRC(83874442) SHA1(366cb0dbd31b787e64f88d182108b670d03b393e) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "gg1-5", 0x0000, 0x1000, CRC(3102fccd) SHA1(d29b68d6aab3217fa2106b3507b9273ff3f927bf) )
+
+ ROM_REGION( 0x10000, "sub2", 0 )
+ ROM_LOAD( "gg1-7", 0x0000, 0x1000, CRC(8995088d) SHA1(d6cb439de0718826d1a0363c9d77de8740b18ecf) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "gg1_9.4l", 0x0000, 0x1000, CRC(58b2f47c) SHA1(62f1279a784ab2f8218c4137c7accda00e6a3490) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "terror.bin", 0x0000, 0x1000, CRC(1b629f80) SHA1(6db66601fd357400edf3dc1d689255c64a46a72d) )
+ ROM_LOAD( "gg1_10.4f", 0x1000, 0x1000, CRC(dd6f1afc) SHA1(c340ed8c25e0979629a9a1730edc762bd72d0cff) )
+
+ ROM_REGION( 0x0320, "proms", 0 )
+ ROM_LOAD( "prom-5.5n", 0x0000, 0x0020, CRC(54603c6b) SHA1(1a6dea13b4af155d9cb5b999a75d4f1eb9c71346) )
+ ROM_LOAD( "2n.bin", 0x0020, 0x0100, CRC(a547d33b) SHA1(7323084320bb61ae1530d916f5edd8835d4d2461) )
+ ROM_LOAD( "1c.bin", 0x0120, 0x0100, CRC(b6f585fb) SHA1(dd10147c4f05fede7ae6e7a760681700a660e87e) )
+ ROM_LOAD( "5c.bin", 0x0220, 0x0100, CRC(8bd565f6) SHA1(bedba65816abfc2ebeacac6ee335ca6f136e3e3d) )
+
+ ROM_REGION( 0x0100, "namco", 0 )
+ ROM_LOAD( "1d.bin", 0x0000, 0x0100, CRC(86d92b24) SHA1(6bef9102b97c83025a2cf84e89d95f2d44c3d2ed) )
+ROM_END
+
+ROM_START( vgalaga )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "3200a.bin", 0x0000, 0x1000, CRC(3ef0b053) SHA1(0c04a362b737998c0952a753fb3fd8c8a17e9b46) )
+ ROM_LOAD( "3300b.bin", 0x1000, 0x1000, CRC(1b280831) SHA1(f7ea12e61929717ebe43a4198a97f109845a2c62) )
+ ROM_LOAD( "3400c.bin", 0x2000, 0x1000, CRC(16233d33) SHA1(a7eb799be5e23058754a92b15e6527bfbb47a354) )
+ ROM_LOAD( "3500d.bin", 0x3000, 0x1000, CRC(0aaf5c23) SHA1(3f4b0bb960bf002261e9c1278c88f594c6aa8ab6) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "3600e.bin", 0x0000, 0x1000, CRC(bc556e76) SHA1(0d3d68243c4571d985b4d8f7e0ea9f6fcffa2116) )
+
+ ROM_REGION( 0x10000, "sub2", 0 )
+ ROM_LOAD( "3700g.bin", 0x0000, 0x1000, CRC(b07f0aa4) SHA1(7528644a8480d0be2d0d37069515ed319e94778f) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "v_07m_g08.bin", 0x0000, 0x1000, CRC(bf59992f) SHA1(78f1e01affca694693254ecfedebdb05cb8d3b82) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "v_07e_g10.bin", 0x0000, 0x1000, CRC(3cf64d44) SHA1(54035738c6b0eed3331f11c53477cf87f07a8422) )
+ ROM_LOAD( "v_07h_g09.bin", 0x1000, 0x1000, CRC(206bf7fc) SHA1(7510ed4a6c084f555cd5a6cd6fbc862f4797656f) )
+
+ ROM_REGION( 0x0320, "proms", 0 )
+ ROM_LOAD( "prom-5.5n", 0x0000, 0x0020, CRC(54603c6b) SHA1(1a6dea13b4af155d9cb5b999a75d4f1eb9c71346) )
+ ROM_LOAD( "2n.bin", 0x0020, 0x0100, CRC(a547d33b) SHA1(7323084320bb61ae1530d916f5edd8835d4d2461) )
+ ROM_LOAD( "1c.bin", 0x0120, 0x0100, CRC(b6f585fb) SHA1(dd10147c4f05fede7ae6e7a760681700a660e87e) )
+ ROM_LOAD( "5c.bin", 0x0220, 0x0100, CRC(8bd565f6) SHA1(bedba65816abfc2ebeacac6ee335ca6f136e3e3d) )
+
+ ROM_REGION( 0x0100, "namco", 0 )
+ ROM_LOAD( "1d.bin", 0x0000, 0x0100, CRC(86d92b24) SHA1(6bef9102b97c83025a2cf84e89d95f2d44c3d2ed) )
+ROM_END
+
+ROM_START( vgalagam )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "3200a.bin", 0x0000, 0x1000, CRC(3ef0b053) SHA1(0c04a362b737998c0952a753fb3fd8c8a17e9b46) )
+ ROM_LOAD( "3300b.bin", 0x1000, 0x1000, CRC(1b280831) SHA1(f7ea12e61929717ebe43a4198a97f109845a2c62) )
+ ROM_LOAD( "3400c.bin", 0x2000, 0x1000, CRC(16233d33) SHA1(a7eb799be5e23058754a92b15e6527bfbb47a354) )
+ ROM_LOAD( "3500d.bin", 0x3000, 0x1000, CRC(0aaf5c23) SHA1(3f4b0bb960bf002261e9c1278c88f594c6aa8ab6) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "3600e.bin", 0x0000, 0x1000, CRC(bc556e76) SHA1(0d3d68243c4571d985b4d8f7e0ea9f6fcffa2116) )
+
+ ROM_REGION( 0x10000, "sub2", 0 )
+ ROM_LOAD( "3700g.bin", 0x0000, 0x1000, CRC(b07f0aa4) SHA1(7528644a8480d0be2d0d37069515ed319e94778f) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "vgalagaf.08", 0x0000, 0x1000, CRC(c1bdeb1c) SHA1(7f07a9da708066401710b0b62b98e324ebbc2bca) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "vgalagaf.10", 0x0000, 0x1000, CRC(99367e04) SHA1(7e140e2b9dd4c6b0da41b21ed2cf1bf33f088a7e) )
+ ROM_LOAD( "vgalagaf.09", 0x1000, 0x1000, CRC(683585c4) SHA1(fdc89b72bf64e44c80f4ae601280fca9b0d1c18c) )
+
+ ROM_REGION( 0x0320, "proms", 0 )
+ ROM_LOAD( "prom-5.5n", 0x0000, 0x0020, CRC(54603c6b) SHA1(1a6dea13b4af155d9cb5b999a75d4f1eb9c71346) )
+ ROM_LOAD( "2n.bin", 0x0020, 0x0100, CRC(a547d33b) SHA1(7323084320bb61ae1530d916f5edd8835d4d2461) )
+ ROM_LOAD( "1c.bin", 0x0120, 0x0100, CRC(b6f585fb) SHA1(dd10147c4f05fede7ae6e7a760681700a660e87e) )
+ ROM_LOAD( "5c.bin", 0x0220, 0x0100, CRC(8bd565f6) SHA1(bedba65816abfc2ebeacac6ee335ca6f136e3e3d) )
+
+ ROM_REGION( 0x0100, "namco", 0 )
+ ROM_LOAD( "1d.bin", 0x0000, 0x0100, CRC(86d92b24) SHA1(6bef9102b97c83025a2cf84e89d95f2d44c3d2ed) )
+ROM_END
+
+ROM_START( vgalagaf )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "3200a.bin", 0x0000, 0x1000, CRC(3ef0b053) SHA1(0c04a362b737998c0952a753fb3fd8c8a17e9b46) )
+ ROM_LOAD( "3300b.bin", 0x1000, 0x1000, CRC(1b280831) SHA1(f7ea12e61929717ebe43a4198a97f109845a2c62) )
+ ROM_LOAD( "3400c.bin", 0x2000, 0x1000, CRC(16233d33) SHA1(a7eb799be5e23058754a92b15e6527bfbb47a354) )
+ ROM_LOAD( "3500d.bin", 0x3000, 0x1000, CRC(0aaf5c23) SHA1(3f4b0bb960bf002261e9c1278c88f594c6aa8ab6) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "3600fast.bin", 0x0000, 0x1000, CRC(23d586e5) SHA1(43346c69385e9091e64cff6c027ac2689cafcbb9) )
+
+ ROM_REGION( 0x10000, "sub2", 0 )
+ ROM_LOAD( "3700g.bin", 0x0000, 0x1000, CRC(b07f0aa4) SHA1(7528644a8480d0be2d0d37069515ed319e94778f) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "vgalagaf.08", 0x0000, 0x1000, CRC(c1bdeb1c) SHA1(7f07a9da708066401710b0b62b98e324ebbc2bca) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "vgalagaf.10", 0x0000, 0x1000, CRC(99367e04) SHA1(7e140e2b9dd4c6b0da41b21ed2cf1bf33f088a7e) )
+ ROM_LOAD( "vgalagaf.09", 0x1000, 0x1000, CRC(683585c4) SHA1(fdc89b72bf64e44c80f4ae601280fca9b0d1c18c) )
+
+ ROM_REGION( 0x0320, "proms", 0 )
+ ROM_LOAD( "prom-5.5n", 0x0000, 0x0020, CRC(54603c6b) SHA1(1a6dea13b4af155d9cb5b999a75d4f1eb9c71346) )
+ ROM_LOAD( "2n.bin", 0x0020, 0x0100, CRC(a547d33b) SHA1(7323084320bb61ae1530d916f5edd8835d4d2461) )
+ ROM_LOAD( "1c.bin", 0x0120, 0x0100, CRC(b6f585fb) SHA1(dd10147c4f05fede7ae6e7a760681700a660e87e) )
+ ROM_LOAD( "5c.bin", 0x0220, 0x0100, CRC(8bd565f6) SHA1(bedba65816abfc2ebeacac6ee335ca6f136e3e3d) )
+
+ ROM_REGION( 0x0100, "namco", 0 )
+ ROM_LOAD( "1d.bin", 0x0000, 0x0100, CRC(86d92b24) SHA1(6bef9102b97c83025a2cf84e89d95f2d44c3d2ed) )
+ROM_END
+
+// xevious hacks
+
+ROM_START( battlesh )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "b_1.bin", 0x0000, 0x2000, CRC(b6e4f4f3) SHA1(ceaaa63b50e75dcb05aeb68574336dfe56a8434a) )
+ ROM_LOAD( "b_2.bin", 0x2000, 0x2000, CRC(47017bc8) SHA1(0da73ae079fb6a64eed56197e2c88609ef34166c) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "b_3.bin", 0x0000, 0x2000, CRC(0ede5706) SHA1(65b235c5abe487612e11d0235410f1ca59b06e95) )
+
+ ROM_REGION( 0x10000, "sub2", 0 )
+ ROM_LOAD( "xvi_7.2c", 0x0000, 0x1000, CRC(dd35cf1c) SHA1(f8d1f8e019d8198308443c2e7e815d0d04b23d14) )
+
+ ROM_REGION( 0x10000, "sub3", 0 )
+ ROM_LOAD( "b_5.bin", 0x0000, 0x1000, CRC(23107dfb) SHA1(74c49a5648faab632ae5ed8dd18a1d8b39837e2d) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "b_9.bin", 0x0000, 0x1000, CRC(5bd6e9ae) SHA1(f16c7eec39fce856c775b2b81ab55fb42376850e) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "b_10.bin", 0x0000, 0x1000, CRC(b43ea55d) SHA1(06f4c4e7fc71b9e173c3bdf91c40f47750051b5e) )
+ ROM_LOAD( "b_11.bin", 0x1000, 0x1000, CRC(73603931) SHA1(1f7824b107a5a3d5c3434f02f17173a1f85fd29c) )
+
+ ROM_REGION( 0xa000, "gfx3", 0 )
+ ROM_LOAD( "xh_xvi_15.4m", 0x0000, 0x2000, CRC(308c5bad) SHA1(583a6c2b9a3c9fac6ed33de6ae5ee11543fe6164) )
+ ROM_LOAD( "xh_xvi_17.4p", 0x2000, 0x2000, CRC(b06b9ccb) SHA1(186442f0aa7bf0365adfb2da874110c01797b140) )
+ ROM_LOAD( "xh_xvi_16.4n", 0x4000, 0x1000, CRC(1cbbddce) SHA1(5fcf20b3ab335cfac01f1c2bcfca76b90c92618b) )
+ ROM_LOAD( "xh_xvi_18.4r", 0x5000, 0x2000, CRC(f56c3697) SHA1(4f5108a1bf6b828dbed4a34836c42fd359fb68c5) )
+ ROM_FILL( 0x9000, 0x1000, 0x00 )
+
+ ROM_REGION( 0x4000, "gfx4", 0 )
+ ROM_LOAD( "xvi_9.2a", 0x0000, 0x1000, CRC(57ed9879) SHA1(3106d1aacff06cf78371bd19967141072b32b7d7) )
+ ROM_LOAD( "xvi_10.2b", 0x1000, 0x2000, CRC(ae3ba9e5) SHA1(49064b25667ffcd81137cd5e800df4b78b182a46) )
+ ROM_LOAD( "xvi_11.2c", 0x3000, 0x1000, CRC(31e244dd) SHA1(3f7eac12863697a98e1122111801606759e44b2a) )
+
+ ROM_REGION( 0x1400, "proms", 0 )
+ ROM_LOAD( "xvi-8.6a", 0x0000, 0x0100, CRC(5cc2727f) SHA1(0dc1e63a47a4cb0ba75f6f1e0c15e408bb0ee2a1) )
+ ROM_LOAD( "xvi-9.6d", 0x0100, 0x0100, CRC(5c8796cc) SHA1(63015e3c0874afc6b1ca032f1ffb8f90562c77c8) )
+ ROM_LOAD( "xvi-10.6e", 0x0200, 0x0100, CRC(3cb60975) SHA1(c94d5a5dd4d8a08d6d39c051a4a722581b903f45) )
+ ROM_LOAD( "b_-bpr.bin", 0x0300, 0x0400, CRC(d2d208b1) SHA1(6c8d29912c03ee93759e24085bc66ab738768bcc) )
+ ROM_LOAD( "b_6bpr.bin", 0x0700, 0x0400, CRC(0260c041) SHA1(1a7516e8b18ffdd9789eec8b834c17b3ba312afe) )
+ ROM_LOAD( "b_4bpr.bin", 0x0b00, 0x0400, CRC(33764974) SHA1(567b048b8a93e30090ccee4f6aadc0353524d8d1) )
+ ROM_LOAD( "b_5bpr.bin", 0x0f00, 0x0400, CRC(43674c7e) SHA1(94c19a9da81839cb1dfde3f11b2fd82ffe45efb9) )
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "xvi-2.7n", 0x0000, 0x0100, CRC(550f06bc) SHA1(816a0fafa0b084ac11ae1af70a5186539376fc2a) )
+ ROM_LOAD( "xvi-1.5n", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) )
+ROM_END
+
+ROM_START( gaous )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "xvi_1.3p", 0x0000, 0x1000, CRC(09964dda) SHA1(4882b25b0938a903f3a367455ba788a30759b5b0) )
+ ROM_LOAD( "xvi_2.3m", 0x1000, 0x1000, CRC(60ecce84) SHA1(8adc60a5fcbca74092518dbc570ffff0f04c5b17) )
+ ROM_LOAD( "xvi_3.2m", 0x2000, 0x1000, CRC(79754b7d) SHA1(c6a154858716e1f073b476824b183de20e06d093) )
+ ROM_LOAD( "xvi_4.2l", 0x3000, 0x1000, CRC(c7d4bbf0) SHA1(4b846de204d08651253d3a141677c8a31626af07) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "xvi_5.3f", 0x0000, 0x1000, CRC(c85b703f) SHA1(15f1c005b9d806a384ab1f2240b9c580bfe83893) )
+ ROM_LOAD( "xvi_6.3j", 0x1000, 0x1000, CRC(e18cdaad) SHA1(6b79efee1a9642edb9f752101737132401248aed) )
+
+ ROM_REGION( 0x10000, "sub2", 0 )
+ ROM_LOAD( "xvi_7.2c", 0x0000, 0x1000, CRC(dd35cf1c) SHA1(f8d1f8e019d8198308443c2e7e815d0d04b23d14) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "gao_12.3b", 0x0000, 0x1000, CRC(e24d7e32) SHA1(c78798944f717d2b20ceb846e4f98966756b0964) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "gao_13.3c", 0x0000, 0x1000, CRC(43ed5c90) SHA1(15f541fb7314c59fe56245f4dbfe05fa35ee2396) )
+ ROM_LOAD( "gao_14.3d", 0x1000, 0x1000, CRC(f361bdd0) SHA1(0ebae760617e8ff29d3f33856094f511f7a06dfa) )
+
+ ROM_REGION( 0xa000, "gfx3", 0 )
+ ROM_LOAD( "gao_15.4m", 0x0000, 0x2000, CRC(ea41df4e) SHA1(8e7215654db77c7f8782dc4b909d1248952c10f0) )
+ ROM_LOAD( "gao_17.4p", 0x2000, 0x2000, CRC(79d65929) SHA1(ca60435cd4a64c82e4d263a57fe899e9e18b3389) )
+ ROM_LOAD( "gao_16.4n", 0x4000, 0x1000, CRC(ceb8a6f8) SHA1(5153cfe4aaeefd4f1faec133a120e8551c460d2f) )
+ ROM_LOAD( "gao_18.4r", 0x5000, 0x2000, CRC(2d95245d) SHA1(7e5409f1f787047d7825d59f1dfeefa26732d1cc) )
+ ROM_FILL( 0x9000, 0x1000, 0x00 )
+
+ ROM_REGION( 0x4000, "gfx4", 0 )
+ ROM_LOAD( "xvi_9.2a", 0x0000, 0x1000, CRC(57ed9879) SHA1(3106d1aacff06cf78371bd19967141072b32b7d7) )
+ ROM_LOAD( "xvi_10.2b", 0x1000, 0x2000, CRC(ae3ba9e5) SHA1(49064b25667ffcd81137cd5e800df4b78b182a46) )
+ ROM_LOAD( "xvi_11.2c", 0x3000, 0x1000, CRC(31e244dd) SHA1(3f7eac12863697a98e1122111801606759e44b2a) )
+
+ ROM_REGION( 0x0b00, "proms", 0 )
+ ROM_LOAD( "xvi-8.6a", 0x0000, 0x0100, CRC(5cc2727f) SHA1(0dc1e63a47a4cb0ba75f6f1e0c15e408bb0ee2a1) )
+ ROM_LOAD( "xvi-9.6d", 0x0100, 0x0100, CRC(5c8796cc) SHA1(63015e3c0874afc6b1ca032f1ffb8f90562c77c8) )
+ ROM_LOAD( "xvi-10.6e", 0x0200, 0x0100, CRC(3cb60975) SHA1(c94d5a5dd4d8a08d6d39c051a4a722581b903f45) )
+ ROM_LOAD( "xvi-7.4h", 0x0300, 0x0200, CRC(22d98032) SHA1(ec6626828c79350417d08b98e9631ad35edd4a41) )
+ ROM_LOAD( "xvi-6.4f", 0x0500, 0x0200, CRC(3a7599f0) SHA1(a4bdf58c190ca16fc7b976c97f41087a61fdb8b8) )
+ ROM_LOAD( "gao_4bpr.3l", 0x0700, 0x0200, CRC(bb0f377f) SHA1(451569602c83172132db76ee7652d174867639c0) )
+ ROM_LOAD( "gao_5bpr.3m", 0x0900, 0x0200, CRC(3fb201f3) SHA1(9e1c79c13bc285b7bff104c84baab9dd04fd42ab) )
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "xvi-2.7n", 0x0000, 0x0100, CRC(550f06bc) SHA1(816a0fafa0b084ac11ae1af70a5186539376fc2a) )
+ ROM_LOAD( "xvi-1.5n", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) )
+ROM_END
+
+ROM_START( sxvioush )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "cpu_3p.rom", 0x0000, 0x1000, CRC(1c8d27d5) SHA1(2c41303d8c74acb5840295a4b460a39a9a8e21bb) )
+ ROM_LOAD( "cpu_3m.rom", 0x1000, 0x1000, CRC(fd04e615) SHA1(7169e7f3bd1e9cfae9671b89f2a45f56b968e1ff) )
+ ROM_LOAD( "cpu_2m.rom", 0x2000, 0x1000, CRC(294d5404) SHA1(ecc39fb2c0065a36f20541747089b4e30dfb99b1) )
+ ROM_LOAD( "cpu_2l.rom", 0x3000, 0x1000, CRC(6a44bf92) SHA1(0ca726f7f9528789f2a718df55e59406a283cdfa) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "cpu_3f.rom", 0x0000, 0x1000, CRC(d4bd3d81) SHA1(5831bb306bd650779207936bfd00f25864733abb) )
+ ROM_LOAD( "cpu_3j.rom", 0x1000, 0x1000, CRC(af06be5f) SHA1(5a020822387ab8c69214db961180760fa9853e6e) )
+
+ ROM_REGION( 0x10000, "sub2", 0 )
+ ROM_LOAD( "xvi_7.2c", 0x0000, 0x1000, CRC(dd35cf1c) SHA1(f8d1f8e019d8198308443c2e7e815d0d04b23d14) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "xh_xvi_12.3b", 0x0000, 0x1000, CRC(9b8f4deb) SHA1(f6e1b557be3cbfc2d7755da8e48dc9a57f2cc2c0) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "xvi_13.3c", 0x0000, 0x1000, CRC(de60ba25) SHA1(32bc09be5ff8b52ee3a26e0ac3ebc2d4107badb7) )
+ ROM_LOAD( "xvi_14.3d", 0x1000, 0x1000, CRC(535cdbbc) SHA1(fb9ffe5fc43e0213231267e98d605d43c15f61e8) )
+
+ ROM_REGION( 0xa000, "gfx3", 0 )
+ ROM_LOAD( "xh_xvi_15.4m", 0x0000, 0x2000, CRC(308c5bad) SHA1(583a6c2b9a3c9fac6ed33de6ae5ee11543fe6164) )
+ ROM_LOAD( "xh_xvi_17.4p", 0x2000, 0x2000, CRC(b06b9ccb) SHA1(186442f0aa7bf0365adfb2da874110c01797b140) )
+ ROM_LOAD( "xh_xvi_16.4n", 0x4000, 0x1000, CRC(1cbbddce) SHA1(5fcf20b3ab335cfac01f1c2bcfca76b90c92618b) )
+ ROM_LOAD( "xh_xvi_18.4r", 0x5000, 0x2000, CRC(f56c3697) SHA1(4f5108a1bf6b828dbed4a34836c42fd359fb68c5) )
+ ROM_FILL( 0x9000, 0x1000, 0x00 )
+
+ ROM_REGION( 0x4000, "gfx4", 0 )
+ ROM_LOAD( "xvi_9.2a", 0x0000, 0x1000, CRC(57ed9879) SHA1(3106d1aacff06cf78371bd19967141072b32b7d7) )
+ ROM_LOAD( "xvi_10.2b", 0x1000, 0x2000, CRC(ae3ba9e5) SHA1(49064b25667ffcd81137cd5e800df4b78b182a46) )
+ ROM_LOAD( "xvi_11.2c", 0x3000, 0x1000, CRC(31e244dd) SHA1(3f7eac12863697a98e1122111801606759e44b2a) )
+
+ ROM_REGION( 0x0b00, "proms", 0 )
+ ROM_LOAD( "xvi-8.6a", 0x0000, 0x0100, CRC(5cc2727f) SHA1(0dc1e63a47a4cb0ba75f6f1e0c15e408bb0ee2a1) )
+ ROM_LOAD( "xvi-9.6d", 0x0100, 0x0100, CRC(5c8796cc) SHA1(63015e3c0874afc6b1ca032f1ffb8f90562c77c8) )
+ ROM_LOAD( "xvi-10.6e", 0x0200, 0x0100, CRC(3cb60975) SHA1(c94d5a5dd4d8a08d6d39c051a4a722581b903f45) )
+ ROM_LOAD( "xvi-7.4h", 0x0300, 0x0200, CRC(22d98032) SHA1(ec6626828c79350417d08b98e9631ad35edd4a41) )
+ ROM_LOAD( "xvi-6.4f", 0x0500, 0x0200, CRC(3a7599f0) SHA1(a4bdf58c190ca16fc7b976c97f41087a61fdb8b8) )
+ ROM_LOAD( "xvi-4.3l", 0x0700, 0x0200, CRC(fd8b9d91) SHA1(87ddf0b9d723aabb422d6d416aa9ec6bc246bf34) )
+ ROM_LOAD( "xvi-5.3m", 0x0900, 0x0200, CRC(bf906d82) SHA1(776168a73d3b9f0ce05610acc8a623deae0a572b) )
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "xvi-2.7n", 0x0000, 0x0100, CRC(550f06bc) SHA1(816a0fafa0b084ac11ae1af70a5186539376fc2a) )
+ ROM_LOAD( "xvi-1.5n", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) )
+ROM_END
+
+ROM_START( xviousah )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "xea-1m-a.bin", 0x0000, 0x2000, CRC(8c2b50ec) SHA1(f770873b711d838556dde67a8aac8a7f572fcc5b) )
+ ROM_LOAD( "xea-1l-a.bin", 0x2000, 0x2000, CRC(0821642b) SHA1(c6c322c61d0985a2ac59f5e92d4e351107afb9eb) )
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "xea-4c-a.bin", 0x0000, 0x2000, CRC(14d8fa03) SHA1(e8114141394adda86184b146f2497cfeef7fc2eb) )
+
+ ROM_REGION( 0x10000, "sub2", 0 )
+ ROM_LOAD( "xvi_7.2c", 0x0000, 0x1000, CRC(dd35cf1c) SHA1(f8d1f8e019d8198308443c2e7e815d0d04b23d14) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "xh_xvi_12.3b", 0x0000, 0x1000, CRC(9b8f4deb) SHA1(f6e1b557be3cbfc2d7755da8e48dc9a57f2cc2c0) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "xvi_13.3c", 0x0000, 0x1000, CRC(de60ba25) SHA1(32bc09be5ff8b52ee3a26e0ac3ebc2d4107badb7) )
+ ROM_LOAD( "xvi_14.3d", 0x1000, 0x1000, CRC(535cdbbc) SHA1(fb9ffe5fc43e0213231267e98d605d43c15f61e8) )
+
+ ROM_REGION( 0xa000, "gfx3", 0 )
+ ROM_LOAD( "xh_xvi_15.4m", 0x0000, 0x2000, CRC(308c5bad) SHA1(583a6c2b9a3c9fac6ed33de6ae5ee11543fe6164) )
+ ROM_LOAD( "xh_xvi_17.4p", 0x2000, 0x2000, CRC(b06b9ccb) SHA1(186442f0aa7bf0365adfb2da874110c01797b140) )
+ ROM_LOAD( "xh_xvi_16.4n", 0x4000, 0x1000, CRC(1cbbddce) SHA1(5fcf20b3ab335cfac01f1c2bcfca76b90c92618b) )
+ ROM_LOAD( "xh_xvi_18.4r", 0x5000, 0x2000, CRC(f56c3697) SHA1(4f5108a1bf6b828dbed4a34836c42fd359fb68c5) )
+ ROM_FILL( 0x9000, 0x1000, 0x00 )
+
+ ROM_REGION( 0x4000, "gfx4", 0 )
+ ROM_LOAD( "xvi_9.2a", 0x0000, 0x1000, CRC(57ed9879) SHA1(3106d1aacff06cf78371bd19967141072b32b7d7) )
+ ROM_LOAD( "xvi_10.2b", 0x1000, 0x2000, CRC(ae3ba9e5) SHA1(49064b25667ffcd81137cd5e800df4b78b182a46) )
+ ROM_LOAD( "xvi_11.2c", 0x3000, 0x1000, CRC(31e244dd) SHA1(3f7eac12863697a98e1122111801606759e44b2a) )
+
+ ROM_REGION( 0x0b00, "proms", 0 )
+ ROM_LOAD( "xvi-8.6a", 0x0000, 0x0100, CRC(5cc2727f) SHA1(0dc1e63a47a4cb0ba75f6f1e0c15e408bb0ee2a1) )
+ ROM_LOAD( "xvi-9.6d", 0x0100, 0x0100, CRC(5c8796cc) SHA1(63015e3c0874afc6b1ca032f1ffb8f90562c77c8) )
+ ROM_LOAD( "xvi-10.6e", 0x0200, 0x0100, CRC(3cb60975) SHA1(c94d5a5dd4d8a08d6d39c051a4a722581b903f45) )
+ ROM_LOAD( "xvi-7.4h", 0x0300, 0x0200, CRC(22d98032) SHA1(ec6626828c79350417d08b98e9631ad35edd4a41) )
+ ROM_LOAD( "xvi-6.4f", 0x0500, 0x0200, CRC(3a7599f0) SHA1(a4bdf58c190ca16fc7b976c97f41087a61fdb8b8) )
+ ROM_LOAD( "xvi-4.3l", 0x0700, 0x0200, CRC(fd8b9d91) SHA1(87ddf0b9d723aabb422d6d416aa9ec6bc246bf34) )
+ ROM_LOAD( "xvi-5.3m", 0x0900, 0x0200, CRC(bf906d82) SHA1(776168a73d3b9f0ce05610acc8a623deae0a572b) )
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "xvi-2.7n", 0x0000, 0x0100, CRC(550f06bc) SHA1(816a0fafa0b084ac11ae1af70a5186539376fc2a) )
+ ROM_LOAD( "xvi-1.5n", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) )
+ROM_END
+
+ROM_START( xevioush )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "xvi_1.3p", 0x0000, 0x1000, CRC(09964dda) SHA1(4882b25b0938a903f3a367455ba788a30759b5b0) )
+ ROM_LOAD( "xvi_2.3m", 0x1000, 0x1000, CRC(60ecce84) SHA1(8adc60a5fcbca74092518dbc570ffff0f04c5b17) )
+ ROM_LOAD( "xvi_3.2m", 0x2000, 0x1000, CRC(79754b7d) SHA1(c6a154858716e1f073b476824b183de20e06d093) )
+ ROM_LOAD( "xvi_4.2l", 0x3000, 0x1000, CRC(c7d4bbf0) SHA1(4b846de204d08651253d3a141677c8a31626af07) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "xvi_5.3f", 0x0000, 0x1000, CRC(c85b703f) SHA1(15f1c005b9d806a384ab1f2240b9c580bfe83893) )
+ ROM_LOAD( "xvi_6.3j", 0x1000, 0x1000, CRC(e18cdaad) SHA1(6b79efee1a9642edb9f752101737132401248aed) )
+
+ ROM_REGION( 0x10000, "sub2", 0 )
+ ROM_LOAD( "xvi_7.2c", 0x0000, 0x1000, CRC(dd35cf1c) SHA1(f8d1f8e019d8198308443c2e7e815d0d04b23d14) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "xh_xvi_12.3b", 0x0000, 0x1000, CRC(9b8f4deb) SHA1(f6e1b557be3cbfc2d7755da8e48dc9a57f2cc2c0) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "xvi_13.3c", 0x0000, 0x1000, CRC(de60ba25) SHA1(32bc09be5ff8b52ee3a26e0ac3ebc2d4107badb7) )
+ ROM_LOAD( "xvi_14.3d", 0x1000, 0x1000, CRC(535cdbbc) SHA1(fb9ffe5fc43e0213231267e98d605d43c15f61e8) )
+
+ ROM_REGION( 0xa000, "gfx3", 0 )
+ ROM_LOAD( "xh_xvi_15.4m", 0x0000, 0x2000, CRC(308c5bad) SHA1(583a6c2b9a3c9fac6ed33de6ae5ee11543fe6164) )
+ ROM_LOAD( "xh_xvi_17.4p", 0x2000, 0x2000, CRC(b06b9ccb) SHA1(186442f0aa7bf0365adfb2da874110c01797b140) )
+ ROM_LOAD( "xh_xvi_16.4n", 0x4000, 0x1000, CRC(1cbbddce) SHA1(5fcf20b3ab335cfac01f1c2bcfca76b90c92618b) )
+ ROM_LOAD( "xh_xvi_18.4r", 0x5000, 0x2000, CRC(f56c3697) SHA1(4f5108a1bf6b828dbed4a34836c42fd359fb68c5) )
+ ROM_FILL( 0x9000, 0x1000, 0x00 )
+
+ ROM_REGION( 0x4000, "gfx4", 0 )
+ ROM_LOAD( "xvi_9.2a", 0x0000, 0x1000, CRC(57ed9879) SHA1(3106d1aacff06cf78371bd19967141072b32b7d7) )
+ ROM_LOAD( "xvi_10.2b", 0x1000, 0x2000, CRC(ae3ba9e5) SHA1(49064b25667ffcd81137cd5e800df4b78b182a46) )
+ ROM_LOAD( "xvi_11.2c", 0x3000, 0x1000, CRC(31e244dd) SHA1(3f7eac12863697a98e1122111801606759e44b2a) )
+
+ ROM_REGION( 0x0b00, "proms", 0 )
+ ROM_LOAD( "xvi-8.6a", 0x0000, 0x0100, CRC(5cc2727f) SHA1(0dc1e63a47a4cb0ba75f6f1e0c15e408bb0ee2a1) )
+ ROM_LOAD( "xvi-9.6d", 0x0100, 0x0100, CRC(5c8796cc) SHA1(63015e3c0874afc6b1ca032f1ffb8f90562c77c8) )
+ ROM_LOAD( "xvi-10.6e", 0x0200, 0x0100, CRC(3cb60975) SHA1(c94d5a5dd4d8a08d6d39c051a4a722581b903f45) )
+ ROM_LOAD( "xvi-7.4h", 0x0300, 0x0200, CRC(22d98032) SHA1(ec6626828c79350417d08b98e9631ad35edd4a41) )
+ ROM_LOAD( "xvi-6.4f", 0x0500, 0x0200, CRC(3a7599f0) SHA1(a4bdf58c190ca16fc7b976c97f41087a61fdb8b8) )
+ ROM_LOAD( "xvi-4.3l", 0x0700, 0x0200, CRC(fd8b9d91) SHA1(87ddf0b9d723aabb422d6d416aa9ec6bc246bf34) )
+ ROM_LOAD( "xvi-5.3m", 0x0900, 0x0200, CRC(bf906d82) SHA1(776168a73d3b9f0ce05610acc8a623deae0a572b) )
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "xvi-2.7n", 0x0000, 0x0100, CRC(550f06bc) SHA1(816a0fafa0b084ac11ae1af70a5186539376fc2a) )
+ ROM_LOAD( "xvi-1.5n", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) )
+ROM_END
+
+ROM_START( xeviousp )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "xvip_1.3p", 0x0000, 0x1000, CRC(09c5fef9) SHA1(1111912763c818afc13e4dfd088877cf78bc30b4) )
+ ROM_LOAD( "xvip_2.3m", 0x1000, 0x1000, CRC(a2cf842d) SHA1(9bb24b3527f2cad8c9b916f9a815ea4f747dc337) )
+ ROM_LOAD( "xvip_3.2m", 0x2000, 0x1000, CRC(7ab657cd) SHA1(a27ad33b2808417dff8e27d0e2b503092f505bb0) )
+ ROM_LOAD( "xvip_4.2l", 0x3000, 0x1000, CRC(884837bd) SHA1(750b0b118a88ab09a0dcbdc10737910b2fc28a1a) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "xvip_5.3f", 0x0000, 0x1000, CRC(68c5268b) SHA1(265c86b2f547230d88276471864a45460198e129) )
+ ROM_LOAD( "xvip_6.3j", 0x1000, 0x1000, CRC(cafc97e6) SHA1(a3d8130b49fb941f6f05204793bf3226ca8eac5c) )
+
+ ROM_REGION( 0x10000, "sub2", 0 )
+ ROM_LOAD( "xvi_7.2c", 0x0000, 0x1000, CRC(dd35cf1c) SHA1(f8d1f8e019d8198308443c2e7e815d0d04b23d14) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "xvip_12.3b", 0x0000, 0x1000, CRC(08f184f1) SHA1(bcbf89b92c311a78db516b557b982ed51907c49d) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "xvi_13.3c", 0x0000, 0x1000, CRC(de60ba25) SHA1(32bc09be5ff8b52ee3a26e0ac3ebc2d4107badb7) )
+ ROM_LOAD( "xvi_14.3d", 0x1000, 0x1000, CRC(535cdbbc) SHA1(fb9ffe5fc43e0213231267e98d605d43c15f61e8) )
+
+ ROM_REGION( 0xa000, "gfx3", 0 )
+ ROM_LOAD( "xvi_15.4m", 0x0000, 0x2000, CRC(dc2c0ecb) SHA1(19ddbd9805f77f38c9a9a1bb30dba6c720b8609f) )
+ ROM_LOAD( "xvi_17.4p", 0x2000, 0x2000, CRC(dfb587ce) SHA1(acff2bf5cde85a16cdc98a52cdea11f77fadf25a) )
+ ROM_LOAD( "xvi_16.4n", 0x4000, 0x1000, CRC(605ca889) SHA1(3bf380ef76c03822a042ecc73b5edd4543c268ce) )
+ ROM_LOAD( "xvip_16.4n", 0x5000, 0x1000, CRC(00babaa1) SHA1(b946510a9c5b6c1dd6e6bab1ba3217a9d449a477) )
+ ROM_FILL( 0x9000, 0x1000, 0x00 )
+
+ ROM_REGION( 0x4000, "gfx4", 0 )
+ ROM_LOAD( "xvip_9.2a", 0x0000, 0x1000, CRC(529aecf0) SHA1(60c18f834933e01ecd22aa652d39a5d1a9a0fe0f) )
+ ROM_LOAD( "xvip_10.2b", 0x1000, 0x2000, CRC(f09eb6f9) SHA1(b189b4c23a2f9f185c75b096f44a083f8dbca3ae) )
+ ROM_LOAD( "xvi_11.2c", 0x3000, 0x1000, CRC(31e244dd) SHA1(3f7eac12863697a98e1122111801606759e44b2a) )
+
+ ROM_REGION( 0x0b00, "proms", 0 )
+ ROM_LOAD( "xvi-8.6a", 0x0000, 0x0100, CRC(5cc2727f) SHA1(0dc1e63a47a4cb0ba75f6f1e0c15e408bb0ee2a1) )
+ ROM_LOAD( "xvi-9.6d", 0x0100, 0x0100, CRC(5c8796cc) SHA1(63015e3c0874afc6b1ca032f1ffb8f90562c77c8) )
+ ROM_LOAD( "xvi-10.6e", 0x0200, 0x0100, CRC(3cb60975) SHA1(c94d5a5dd4d8a08d6d39c051a4a722581b903f45) )
+ ROM_LOAD( "xvi-7.4h", 0x0300, 0x0200, CRC(22d98032) SHA1(ec6626828c79350417d08b98e9631ad35edd4a41) )
+ ROM_LOAD( "xvi-6.4f", 0x0500, 0x0200, CRC(3a7599f0) SHA1(a4bdf58c190ca16fc7b976c97f41087a61fdb8b8) )
+ ROM_LOAD( "xvi-4.3l", 0x0700, 0x0200, CRC(fd8b9d91) SHA1(87ddf0b9d723aabb422d6d416aa9ec6bc246bf34) )
+ ROM_LOAD( "xvi-5.3m", 0x0900, 0x0200, CRC(bf906d82) SHA1(776168a73d3b9f0ce05610acc8a623deae0a572b) )
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "xvi-2.7n", 0x0000, 0x0100, CRC(550f06bc) SHA1(816a0fafa0b084ac11ae1af70a5186539376fc2a) )
+ ROM_LOAD( "xvi-1.5n", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) )
+ROM_END
+
+ROM_START( xevious3 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "xvi_1.3p", 0x0000, 0x1000, CRC(09964dda) SHA1(4882b25b0938a903f3a367455ba788a30759b5b0) )
+ ROM_LOAD( "xvi_2.3m", 0x1000, 0x1000, CRC(60ecce84) SHA1(8adc60a5fcbca74092518dbc570ffff0f04c5b17) )
+ ROM_LOAD( "xvi_3.2m", 0x2000, 0x1000, CRC(79754b7d) SHA1(c6a154858716e1f073b476824b183de20e06d093) )
+ ROM_LOAD( "xvi_4.2l", 0x3000, 0x1000, CRC(c7d4bbf0) SHA1(4b846de204d08651253d3a141677c8a31626af07) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "xvi_5.3f", 0x0000, 0x1000, CRC(c85b703f) SHA1(15f1c005b9d806a384ab1f2240b9c580bfe83893) )
+ ROM_LOAD( "xvi_6.3j", 0x1000, 0x1000, CRC(e18cdaad) SHA1(6b79efee1a9642edb9f752101737132401248aed) )
+
+ ROM_REGION( 0x10000, "sub2", 0 )
+ ROM_LOAD( "xvi_7.2c", 0x0000, 0x1000, CRC(dd35cf1c) SHA1(f8d1f8e019d8198308443c2e7e815d0d04b23d14) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "x3_xvi_12.3b", 0x0000, 0x1000, CRC(34f7940e) SHA1(6e289b36d14fea02f2fdf45caa4720ab05529fe2) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "x3_xvi_13.3c", 0x0000, 0x1000, CRC(6eab56b5) SHA1(00da56424e520c9de5967c1c233a20cb3ae037db) )
+ ROM_LOAD( "x3_xvi_14.3d", 0x1000, 0x1000, CRC(790b2f6c) SHA1(bc8e52d0ca4e97f38256ec3da1b23d266767ea9b) )
+
+ ROM_REGION( 0xa000, "gfx3", 0 )
+ ROM_LOAD( "x3_xvi_15.4m", 0x0000, 0x2000, CRC(4dfaf4e1) SHA1(26456dc6c75e1a02cfc9c07fedfb2b7ece8e1692) )
+ ROM_LOAD( "x3_xvi_17.4p", 0x2000, 0x2000, CRC(9a135fe7) SHA1(278ab8c2805d138a47dfc89db7016c7438142a4f) )
+ ROM_LOAD( "x3_xvi_16.4n", 0x4000, 0x1000, CRC(dd6f34c8) SHA1(9fcc194ea2ee94f8bdf4c46ff8dead113a99bdce) )
+ ROM_LOAD( "x3_xvi_18.4r", 0x5000, 0x2000, CRC(d5378335) SHA1(892a762a050c8f3ae21544392444b289583b8ca0) )
+ ROM_FILL( 0x9000, 0x1000, 0x00 )
+
+ ROM_REGION( 0x4000, "gfx4", 0 )
+ ROM_LOAD( "xvi_9.2a", 0x0000, 0x1000, CRC(57ed9879) SHA1(3106d1aacff06cf78371bd19967141072b32b7d7) )
+ ROM_LOAD( "xvi_10.2b", 0x1000, 0x2000, CRC(ae3ba9e5) SHA1(49064b25667ffcd81137cd5e800df4b78b182a46) )
+ ROM_LOAD( "xvi_11.2c", 0x3000, 0x1000, CRC(31e244dd) SHA1(3f7eac12863697a98e1122111801606759e44b2a) )
+
+ ROM_REGION( 0x0b00, "proms", 0 )
+ ROM_LOAD( "xvi-8.6a", 0x0000, 0x0100, CRC(5cc2727f) SHA1(0dc1e63a47a4cb0ba75f6f1e0c15e408bb0ee2a1) )
+ ROM_LOAD( "xvi-9.6d", 0x0100, 0x0100, CRC(5c8796cc) SHA1(63015e3c0874afc6b1ca032f1ffb8f90562c77c8) )
+ ROM_LOAD( "xvi-10.6e", 0x0200, 0x0100, CRC(3cb60975) SHA1(c94d5a5dd4d8a08d6d39c051a4a722581b903f45) )
+ ROM_LOAD( "xvi-7.4h", 0x0300, 0x0200, CRC(22d98032) SHA1(ec6626828c79350417d08b98e9631ad35edd4a41) )
+ ROM_LOAD( "xvi-6.4f", 0x0500, 0x0200, CRC(3a7599f0) SHA1(a4bdf58c190ca16fc7b976c97f41087a61fdb8b8) )
+ ROM_LOAD( "xvi-4.3l", 0x0700, 0x0200, CRC(fd8b9d91) SHA1(87ddf0b9d723aabb422d6d416aa9ec6bc246bf34) )
+ ROM_LOAD( "xvi-5.3m", 0x0900, 0x0200, CRC(bf906d82) SHA1(776168a73d3b9f0ce05610acc8a623deae0a572b) )
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "xvi-2.7n", 0x0000, 0x0100, CRC(550f06bc) SHA1(816a0fafa0b084ac11ae1af70a5186539376fc2a) )
+ ROM_LOAD( "xvi-1.5n", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) )
+ROM_END
+
+ROM_START( xevious4 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "xvi_1.3p", 0x0000, 0x1000, CRC(09964dda) SHA1(4882b25b0938a903f3a367455ba788a30759b5b0) )
+ ROM_LOAD( "xvi_2.3m", 0x1000, 0x1000, CRC(60ecce84) SHA1(8adc60a5fcbca74092518dbc570ffff0f04c5b17) )
+ ROM_LOAD( "xvi_3.2m", 0x2000, 0x1000, CRC(79754b7d) SHA1(c6a154858716e1f073b476824b183de20e06d093) )
+ ROM_LOAD( "xvi_4.2l", 0x3000, 0x1000, CRC(c7d4bbf0) SHA1(4b846de204d08651253d3a141677c8a31626af07) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "xvi_5.3f", 0x0000, 0x1000, CRC(c85b703f) SHA1(15f1c005b9d806a384ab1f2240b9c580bfe83893) )
+ ROM_LOAD( "xvi_6.3j", 0x1000, 0x1000, CRC(e18cdaad) SHA1(6b79efee1a9642edb9f752101737132401248aed) )
+
+ ROM_REGION( 0x10000, "sub2", 0 )
+ ROM_LOAD( "xvi_7.2c", 0x0000, 0x1000, CRC(dd35cf1c) SHA1(f8d1f8e019d8198308443c2e7e815d0d04b23d14) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "x4_xvi_12.3b", 0x0000, 0x1000, CRC(bdf15ccc) SHA1(0e6fba428cf56668e5c9218af3c6d58c8f261d32) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "x4_xvi_13.3c", 0x0000, 0x1000, CRC(b9832011) SHA1(ac7b266791fd39c17cf239405068e309478e6703) )
+ ROM_LOAD( "x4_xvi_14.3d", 0x1000, 0x1000, CRC(04677061) SHA1(3bf47661ddf1a8e98fcf8f7e46610e353483da9b) )
+
+ ROM_REGION( 0xa000, "gfx3", 0 )
+ ROM_LOAD( "x4_xvi_15.4m", 0x0000, 0x2000, CRC(6cdeae2d) SHA1(5d43b11655e2952cec3c4e5df5855805273b0cb8) )
+ ROM_LOAD( "x4_xvi_17.4p", 0x2000, 0x2000, CRC(28ac2e0a) SHA1(8f85656d60439abc507ec09e9dfda31dad3e4e04) )
+ ROM_LOAD( "x4_xvi_16.4n", 0x4000, 0x1000, CRC(400e2c3e) SHA1(d46fc7a40ad2b8f822db21e8af9ec29e21f7f093) )
+ ROM_LOAD( "x4_xvi_18.4r", 0x5000, 0x2000, CRC(45b2daaf) SHA1(8bda7ee9900a64c74996e5790832f11983caf31b) )
+ ROM_FILL( 0x9000, 0x1000, 0x00 )
+
+ ROM_REGION( 0x4000, "gfx4", 0 )
+ ROM_LOAD( "xvi_9.2a", 0x0000, 0x1000, CRC(57ed9879) SHA1(3106d1aacff06cf78371bd19967141072b32b7d7) )
+ ROM_LOAD( "xvi_10.2b", 0x1000, 0x2000, CRC(ae3ba9e5) SHA1(49064b25667ffcd81137cd5e800df4b78b182a46) )
+ ROM_LOAD( "xvi_11.2c", 0x3000, 0x1000, CRC(31e244dd) SHA1(3f7eac12863697a98e1122111801606759e44b2a) )
+
+ ROM_REGION( 0x0b00, "proms", 0 )
+ ROM_LOAD( "x4_xvi_8bpr.6a", 0x0000, 0x0100, CRC(0e572608) SHA1(580acf168d13e5ba4448c6dbd077fe035dd9df3a) )
+ ROM_LOAD( "x4_xvi_9bpr.6d", 0x0100, 0x0100, CRC(0e12c2bb) SHA1(829d14781e67268ceba5f771466584025894fd96) )
+ ROM_LOAD( "x4_xvi10bpr.6e", 0x0200, 0x0100, CRC(6e235d02) SHA1(08378c12dfe190d33caf7bb0916dcc336dca42cd) )
+ ROM_LOAD( "xvi-7.4h", 0x0300, 0x0200, CRC(22d98032) SHA1(ec6626828c79350417d08b98e9631ad35edd4a41) )
+ ROM_LOAD( "xvi-6.4f", 0x0500, 0x0200, CRC(3a7599f0) SHA1(a4bdf58c190ca16fc7b976c97f41087a61fdb8b8) )
+ ROM_LOAD( "x4_xvi_4bpr.3l", 0x0700, 0x0200, CRC(cce27181) SHA1(312d2f776f282354615f3a33a58a2744aafbc5a9) )
+ ROM_LOAD( "x4_xvi_5bpr.3m", 0x0900, 0x0200, CRC(e15ddec9) SHA1(531551ab5b0f0dc6c450e24ee973451ec0c21471) )
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "xvi-2.7n", 0x0000, 0x0100, CRC(550f06bc) SHA1(816a0fafa0b084ac11ae1af70a5186539376fc2a) )
+ ROM_LOAD( "xvi-1.5n", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) )
+ROM_END
+
+ROM_START( xevious5 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "xvi_1.3p", 0x0000, 0x1000, CRC(09964dda) SHA1(4882b25b0938a903f3a367455ba788a30759b5b0) )
+ ROM_LOAD( "xvi_2.3m", 0x1000, 0x1000, CRC(60ecce84) SHA1(8adc60a5fcbca74092518dbc570ffff0f04c5b17) )
+ ROM_LOAD( "xvi_3.2m", 0x2000, 0x1000, CRC(79754b7d) SHA1(c6a154858716e1f073b476824b183de20e06d093) )
+ ROM_LOAD( "xvi_4.2l", 0x3000, 0x1000, CRC(c7d4bbf0) SHA1(4b846de204d08651253d3a141677c8a31626af07) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "xvi_5.3f", 0x0000, 0x1000, CRC(c85b703f) SHA1(15f1c005b9d806a384ab1f2240b9c580bfe83893) )
+ ROM_LOAD( "xvi_6.3j", 0x1000, 0x1000, CRC(e18cdaad) SHA1(6b79efee1a9642edb9f752101737132401248aed) )
+
+ ROM_REGION( 0x10000, "sub2", 0 )
+ ROM_LOAD( "xvi_7.2c", 0x0000, 0x1000, CRC(dd35cf1c) SHA1(f8d1f8e019d8198308443c2e7e815d0d04b23d14) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "xvi24_12.3b", 0x0000, 0x1000, CRC(935cb02d) SHA1(0800e2a643b2bbeae0f337bfbdc88d2eab16ada4) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "xvi_13.3c", 0x0000, 0x1000, CRC(de60ba25) SHA1(32bc09be5ff8b52ee3a26e0ac3ebc2d4107badb7) )
+ ROM_LOAD( "xvi24_14.3d", 0x1000, 0x1000, CRC(e0fbfb86) SHA1(6e25609f2f70490d8f70a48e93b1abf9673b1d38) )
+
+ ROM_REGION( 0xa000, "gfx3", 0 )
+ ROM_LOAD( "xvi24_15.4m", 0x0000, 0x2000, CRC(51dcbd85) SHA1(a681000eb279d0f71da4ec4164f57e9877cb391f) )
+ ROM_LOAD( "xvi24_17.4p", 0x2000, 0x2000, CRC(b4753406) SHA1(404e911377614eda1e92093c5e3504216f16e143) )
+ ROM_LOAD( "xvi24_16.4n", 0x4000, 0x1000, CRC(eb0d690d) SHA1(1cc3a0e3647e36a925eab8e5aee73febeb41d4cc) )
+ ROM_LOAD( "xvi24_18.4r", 0x5000, 0x2000, CRC(490c1189) SHA1(a478d390a4931c43778cf24e5b01225c71dcac67) )
+ ROM_FILL( 0x9000, 0x1000, 0x00 )
+
+ ROM_REGION( 0x4000, "gfx4", 0 )
+ ROM_LOAD( "xvi_9.2a", 0x0000, 0x1000, CRC(57ed9879) SHA1(3106d1aacff06cf78371bd19967141072b32b7d7) )
+ ROM_LOAD( "xvi_10.2b", 0x1000, 0x2000, CRC(ae3ba9e5) SHA1(49064b25667ffcd81137cd5e800df4b78b182a46) )
+ ROM_LOAD( "xvi_11.2c", 0x3000, 0x1000, CRC(31e244dd) SHA1(3f7eac12863697a98e1122111801606759e44b2a) )
+
+ ROM_REGION( 0x0b00, "proms", 0 )
+ ROM_LOAD( "xvi-8.6a", 0x0000, 0x0100, CRC(5cc2727f) SHA1(0dc1e63a47a4cb0ba75f6f1e0c15e408bb0ee2a1) )
+ ROM_LOAD( "xvi-9.6d", 0x0100, 0x0100, CRC(5c8796cc) SHA1(63015e3c0874afc6b1ca032f1ffb8f90562c77c8) )
+ ROM_LOAD( "xvi-10.6e", 0x0200, 0x0100, CRC(3cb60975) SHA1(c94d5a5dd4d8a08d6d39c051a4a722581b903f45) )
+ ROM_LOAD( "xvi-7.4h", 0x0300, 0x0200, CRC(22d98032) SHA1(ec6626828c79350417d08b98e9631ad35edd4a41) )
+ ROM_LOAD( "xvi-6.4f", 0x0500, 0x0200, CRC(3a7599f0) SHA1(a4bdf58c190ca16fc7b976c97f41087a61fdb8b8) )
+ ROM_LOAD( "xvi-4.3l", 0x0700, 0x0200, CRC(fd8b9d91) SHA1(87ddf0b9d723aabb422d6d416aa9ec6bc246bf34) )
+ ROM_LOAD( "xvi-5.3m", 0x0900, 0x0200, CRC(bf906d82) SHA1(776168a73d3b9f0ce05610acc8a623deae0a572b) )
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "xvi-2.7n", 0x0000, 0x0100, CRC(550f06bc) SHA1(816a0fafa0b084ac11ae1af70a5186539376fc2a) )
+ ROM_LOAD( "xvi-1.5n", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) )
+ROM_END
+
+ROM_START( xeviblk )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "xvi_1.3p", 0x0000, 0x1000, CRC(09964dda) SHA1(4882b25b0938a903f3a367455ba788a30759b5b0) )
+ ROM_LOAD( "xvi_2.3m", 0x1000, 0x1000, CRC(60ecce84) SHA1(8adc60a5fcbca74092518dbc570ffff0f04c5b17) )
+ ROM_LOAD( "xvi_3.2m", 0x2000, 0x1000, CRC(79754b7d) SHA1(c6a154858716e1f073b476824b183de20e06d093) )
+ ROM_LOAD( "xvi_4.2l", 0x3000, 0x1000, CRC(c7d4bbf0) SHA1(4b846de204d08651253d3a141677c8a31626af07) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "xvi_5.3f", 0x0000, 0x1000, CRC(c85b703f) SHA1(15f1c005b9d806a384ab1f2240b9c580bfe83893) )
+ ROM_LOAD( "xvi_6.3j", 0x1000, 0x1000, CRC(e18cdaad) SHA1(6b79efee1a9642edb9f752101737132401248aed) )
+
+ ROM_REGION( 0x10000, "sub2", 0 )
+ ROM_LOAD( "xvi_7.2c", 0x0000, 0x1000, CRC(dd35cf1c) SHA1(f8d1f8e019d8198308443c2e7e815d0d04b23d14) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "xvi_12.3b", 0x0000, 0x1000, CRC(088c8b26) SHA1(9c3b61dfca2f84673a78f7f66e363777a8f47a59) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "xvi_13.3c", 0x0000, 0x1000, CRC(de60ba25) SHA1(32bc09be5ff8b52ee3a26e0ac3ebc2d4107badb7) )
+ ROM_LOAD( "xvi_14.3d", 0x1000, 0x1000, CRC(535cdbbc) SHA1(fb9ffe5fc43e0213231267e98d605d43c15f61e8) )
+
+ ROM_REGION( 0xa000, "gfx3", 0 )
+ ROM_LOAD( "xvi_15.4m", 0x0000, 0x2000, CRC(dc2c0ecb) SHA1(19ddbd9805f77f38c9a9a1bb30dba6c720b8609f) )
+ ROM_LOAD( "xvi_17.4p", 0x2000, 0x2000, CRC(dfb587ce) SHA1(acff2bf5cde85a16cdc98a52cdea11f77fadf25a) )
+ ROM_LOAD( "xvi_16.4n", 0x4000, 0x1000, CRC(605ca889) SHA1(3bf380ef76c03822a042ecc73b5edd4543c268ce) )
+ ROM_LOAD( "xvi_18.4r", 0x5000, 0x2000, CRC(02417d19) SHA1(b5f830dd2cf25cf154308d2e640f0ecdcda5d8cd) )
+ ROM_FILL( 0x9000, 0x1000, 0x00 )
+
+ ROM_REGION( 0x4000, "gfx4", 0 )
+ ROM_LOAD( "xvi_9.2a", 0x0000, 0x1000, CRC(57ed9879) SHA1(3106d1aacff06cf78371bd19967141072b32b7d7) )
+ ROM_LOAD( "xvi_10.2b", 0x1000, 0x2000, CRC(ae3ba9e5) SHA1(49064b25667ffcd81137cd5e800df4b78b182a46) )
+ ROM_LOAD( "xvi_11.2c", 0x3000, 0x1000, CRC(31e244dd) SHA1(3f7eac12863697a98e1122111801606759e44b2a) )
+
+ ROM_REGION( 0x0b00, "proms", 0 )
+ ROM_LOAD( "xvi-8.6a", 0x0000, 0x0100, CRC(5cc2727f) SHA1(0dc1e63a47a4cb0ba75f6f1e0c15e408bb0ee2a1) )
+ ROM_LOAD( "xvi-9.6d", 0x0100, 0x0100, CRC(5c8796cc) SHA1(63015e3c0874afc6b1ca032f1ffb8f90562c77c8) )
+ ROM_LOAD( "xvi-10.6e", 0x0200, 0x0100, CRC(3cb60975) SHA1(c94d5a5dd4d8a08d6d39c051a4a722581b903f45) )
+ ROM_LOAD( "xvi-7.4h", 0x0300, 0x0200, CRC(22d98032) SHA1(ec6626828c79350417d08b98e9631ad35edd4a41) )
+ ROM_LOAD( "xvi-6.4f", 0x0500, 0x0200, CRC(3a7599f0) SHA1(a4bdf58c190ca16fc7b976c97f41087a61fdb8b8) )
+ ROM_LOAD( "xvibl_4bpr.3l", 0x0700, 0x0200, CRC(83277522) SHA1(7c5edce9758fdb5aa2132da9d8aeb0f64d69d52e) )
+ ROM_LOAD( "xvibl_5bpr.3m", 0x0900, 0x0200, CRC(07b4bd0b) SHA1(36b467756c54120a20b82b4183a524b4867bc729) )
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "xvi-2.7n", 0x0000, 0x0100, CRC(550f06bc) SHA1(816a0fafa0b084ac11ae1af70a5186539376fc2a) )
+ ROM_LOAD( "xvi-1.5n", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) )
+ROM_END
+
+
+GAME( 1984, galaga84, galaga, galaga, galaga, galaga_state, galaga, ROT90, "hack", "Galaga '84", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, galaga99, galaga, galaga, galaga, galaga_state, galaga, ROT90, "Jerky and Sil", "Galaga '99", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, galagab2, galaga, galaga, galaga, galaga_state, galaga, ROT90, "bootleg", "Galaga (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1982, galagabl, galaga, galaga, galaga, galaga_state, galaga, ROT90, "bootleg", "Galaga (Namco 1982)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, galagads, galaga, galaga, galagamw, galaga_state, galaga, ROT90, "hack", "Galaga (fast shoot)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, galagaef, galaga, galaga, galagamw, galaga_state, galaga, ROT90, "hack", "Galaga (Enduring Freedom)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, galagaf, galaga, galaga, galaga, galaga_state, galaga, ROT90, "Namco", "Galaga (Fast Shoot Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, galagap, galaga, galaga, galaga, galaga_state, galaga, ROT90, "Don Hodges", "Galaga (patched)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, galagix, galaga, galaga, galaga, galaga_state, galaga, ROT90, "Grand Master Peter", "Galagix", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, galagost, galaga, galagost, galaga, galaga_hbmame, galaga, ROT90, "Twisty", "Galaga Ghost (Set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, galagosb, galaga, galagost, galaga, galaga_hbmame, galaga, ROT90, "Twisty", "Galaga Ghost (Set 2 - 2002-11-28)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, galaped, galaga, galaga, galaga, galaga_state, galaga, ROT90, "Cary Barnhard", "Galapede (Fast Shoot)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, galgaxin, galaga, galaga, galaga, galaga_state, galaga, ROT90, "T-Bone", "Galagalaxian", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, terror, galaga, galaga, galaga, galaga_state, galaga, ROT90, "Hack", "Terrorist", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, vgalaga, galaga, galaga, galaga, galaga_state, galaga, ROT90, "Hack", "Vector Galaga", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, vgalagam, galaga, galaga, galaga, galaga_state, galaga, ROT90, "Hack", "Vector Galaga Midway", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, vgalagaf, galaga, galaga, galaga, galaga_state, galaga, ROT90, "Hack", "Vector Galaga Fast Shoot", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, battlesh, xevious, battles, xevious, xevious_state, battles, ROT90, "bootleg", "Battles 2002", MACHINE_SUPPORTS_SAVE )
+GAME( 2005, gaous, xevious, xevious, xevious, xevious_state, xevious, ROT90, "Namco (Hack)", "Gaous", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, sxvioush, xevious, xevious, sxevious, xevious_state, xevious, ROT90, "Namco", "Super Xevious 2002", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, xeviblk, xevious, xevious, xevious, xevious_state, xevious, ROT90, "Namco", "Xevious Black", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, xevious3, xevious, xevious, xevious, xevious_state, xevious, ROT90, "Namco", "Xevious 2003", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, xevious4, xevious, xevious, xevious, xevious_state, xevious, ROT90, "Namco", "Xevious 2004", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, xevious5, xevious, xevious, xevious, xevious_state, xevious, ROT90, "Namco", "Xevious 2005", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, xevioush, xevious, xevious, xevious, xevious_state, xevious, ROT90, "Namco", "Xevious 2002", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, xeviousp, xevious, xevious, sxevious, xevious_state, xevious, ROT90, "bootleg", "Xevious Plus!", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, xviousah, xevious, xevious, xeviousa, xevious_state, xevious, ROT90, "Namco (Atari license)", "Xevious 2002 (Atari set 1)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/galaxian.cpp b/src/hbmame/drivers/galaxian.cpp
new file mode 100644
index 00000000000..454ac85e5f0
--- /dev/null
+++ b/src/hbmame/drivers/galaxian.cpp
@@ -0,0 +1,856 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/galaxian.cpp"
+
+
+/*************************************
+ *
+ * Four Play
+ *
+ *************************************/
+
+static ADDRESS_MAP_START( fourplay_map, AS_PROGRAM, 8, galaxian_state )
+ AM_RANGE(0x0000, 0x3fff) AM_ROMBANK("bank1")
+ AM_RANGE(0x4000, 0x47ff) AM_RAM
+ AM_RANGE(0x5000, 0x53ff) AM_MIRROR(0x0400) AM_RAM_WRITE(galaxian_videoram_w) AM_SHARE("videoram")
+ AM_RANGE(0x5800, 0x58ff) AM_MIRROR(0x0700) AM_RAM_WRITE(galaxian_objram_w) AM_SHARE("spriteram")
+ AM_RANGE(0x6000, 0x6000) AM_READ_PORT("IN0")
+ AM_RANGE(0x6800, 0x6800) AM_READ_PORT("IN1")
+ AM_RANGE(0x7000, 0x7000) AM_READ_PORT("IN2")
+ AM_RANGE(0x7800, 0x7fff) AM_DEVREAD("watchdog", watchdog_timer_device, reset_r)
+ AM_RANGE(0x6000, 0x6001) AM_WRITE(start_lamp_w)
+ AM_RANGE(0x6002, 0x6002) AM_WRITENOP // AM_WRITE(coin_lock_w)
+ AM_RANGE(0x6003, 0x6003) AM_WRITE(coin_count_0_w)
+ AM_RANGE(0x6004, 0x6007) AM_DEVWRITE("cust", galaxian_sound_device, lfo_freq_w)
+ AM_RANGE(0x6800, 0x6807) AM_DEVWRITE("cust", galaxian_sound_device, sound_w)
+ AM_RANGE(0x7001, 0x7001) AM_WRITE(irq_enable_w)
+ AM_RANGE(0x7002, 0x7003) AM_WRITE(fourplay_rombank_w)
+ AM_RANGE(0x7004, 0x7004) AM_WRITE(galaxian_stars_enable_w)
+ AM_RANGE(0x7005, 0x7005) AM_WRITENOP /* bit 3 of rombank select - always 0 */
+ AM_RANGE(0x7006, 0x7006) AM_WRITE(galaxian_flip_screen_x_w)
+ AM_RANGE(0x7007, 0x7007) AM_WRITE(galaxian_flip_screen_y_w)
+ AM_RANGE(0x7008, 0x7008) AM_WRITENOP /* bit 4 of rombank select - always 0 */
+ AM_RANGE(0x7800, 0x7800) AM_DEVWRITE("cust", galaxian_sound_device, pitch_w)
+ADDRESS_MAP_END
+
+static MACHINE_CONFIG_DERIVED( fourplay, galaxian )
+ /* info can be found at http://www.ionpool.net/arcade/galaxian_hacks/fourplay.htm */
+ /* basic machine hardware */
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(fourplay_map)
+
+ /* video hardware */
+ MCFG_GFXDECODE_MODIFY("gfxdecode", gmgalax)
+ MCFG_PALETTE_MODIFY("palette")
+ MCFG_PALETTE_ENTRIES(64)
+MACHINE_CONFIG_END
+
+DRIVER_INIT_MEMBER( galaxian_state, fourplay )
+{
+ membank("bank1")->configure_entries(0, 4, memregion("maincpu")->base() + 0x10000, 0x4000);
+ membank("bank1")->set_entry(0);
+
+ /* video extensions */
+ common_init(NULL, NULL, &galaxian_state::pisces_extend_tile_info, &galaxian_state::pisces_extend_sprite_info);
+}
+
+
+
+/*************************************
+ *
+ * Galaxiab
+ *
+ *************************************/
+
+static INPUT_PORTS_START( galaxiab )
+ PORT_INCLUDE(galaxian)
+
+ PORT_MODIFY("IN2")
+ PORT_DIPNAME( 0x03, 0x01, DEF_STR( Bonus_Life ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( None ) )
+ PORT_DIPSETTING( 0x01, "20000" )
+ PORT_DIPSETTING( 0x02, "40000" )
+ PORT_DIPSETTING( 0x03, "80000" )
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Lives ) )
+ PORT_DIPSETTING( 0x00, "2" )
+ PORT_DIPSETTING( 0x04, "3" )
+ PORT_BIT( 0xf8, IP_ACTIVE_HIGH, IPT_UNUSED )
+INPUT_PORTS_END
+
+
+
+/***********************************************************
+ *
+ * Jump Bug (with extra sounds via Galaxian sound board)
+ *
+ ***********************************************************/
+
+static ADDRESS_MAP_START( jumpbugx_map, AS_PROGRAM, 8, galaxian_state )
+ AM_IMPORT_FROM(jumpbug_map)
+/* HBMAME - added next lines */
+ AM_RANGE(0x6800, 0x6807) AM_MIRROR(0x07f8) AM_DEVWRITE("cust", galaxian_sound_device, sound_w)
+ AM_RANGE(0x7800, 0x7800) AM_MIRROR(0x07ff) AM_DEVWRITE("cust", galaxian_sound_device, pitch_w)
+ADDRESS_MAP_END
+
+static MACHINE_CONFIG_DERIVED( jumpbugx, jumpbug )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(jumpbugx_map)
+ MCFG_FRAGMENT_ADD(galaxian_audio)
+MACHINE_CONFIG_END
+
+
+/*************************************
+ *
+ * Mr. Do Nightmare
+ *
+ *************************************/
+
+static INPUT_PORTS_START( mrdonm )
+ PORT_START("IN0")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 )
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 )
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN1")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START1 )
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 )
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_DIPNAME( 0xc0, 0x00, DEF_STR( Coinage ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
+ PORT_DIPSETTING( 0xc0, DEF_STR( Free_Play ) )
+
+ PORT_START("IN2")
+ PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED )
+INPUT_PORTS_END
+
+/*************************************
+ *
+ * Trukker
+ *
+ *************************************/
+
+DRIVER_INIT_MEMBER( galaxian_state, trukker )
+{
+ uint16_t i;
+
+ /* video extensions */
+ common_init(NULL, &galaxian_state::frogger_draw_background, &galaxian_state::frogger_extend_tile_info, &galaxian_state::frogger_extend_sprite_info);
+ m_frogger_adjust = true;
+
+ /* the first ROM of the second CPU has data lines D0 and D1 swapped. Decode it. */
+ uint8_t *ROM = memregion("audiocpu")->base();
+ for (i = 0;i < 0x800;i++) ROM[i] = bitswap<8>(ROM[i],7,6,5,4,3,2,0,1);
+
+ /* fix gfx error in the alphabetic characters */
+ ROM = memregion("gfx1")->base();
+ for (i = 0;i < 0x160;i++) ROM[i] = bitswap<8>(ROM[i],7,6,5,4,3,2,0,1);
+
+ /* remove extraneous dot from steam rollers */
+ for (i = 0x1a0;i < 0x200;i++) ROM[i] = ROM[i] & 0xfc;
+
+ /* fix gfx error in sinking turtle */
+ for (i = 0x4c0;i < 0x4e0;i++) ROM[i] = bitswap<8>(ROM[i],7,6,5,4,3,2,0,1);
+
+ /* fix gfx error on left side of home bases */
+ ROM[0x234] = bitswap<8>(ROM[0x234],7,6,5,4,3,2,0,1);
+
+ /* fix gfx error in (c) sign and in square symbol */
+ for (i = 0x270;i < 0x27f;i++) ROM[i] = bitswap<8>(ROM[i],7,6,5,4,3,2,0,1);
+
+ /* fix gfx error in 200-point sign */
+ for (i = 0x330;i < 0x337;i++) ROM[i] = bitswap<8>(ROM[i],7,6,5,4,3,2,0,1);
+}
+
+
+
+/***************************************************************
+ *
+ * Frogger Sound Test rom - watchdog has been disabled.
+ * You can lengthen the time, but holding down an arrow key
+ * will still eventually trigger it.
+ *
+ ***************************************************************/
+
+static ADDRESS_MAP_START( tst_frog_map, AS_PROGRAM, 8, galaxian_state )
+ ADDRESS_MAP_UNMAP_HIGH
+ AM_RANGE(0x0000, 0x3fff) AM_ROM
+ AM_RANGE(0x8000, 0x87ff) AM_RAM
+ AM_RANGE(0x8800, 0x8800) AM_READNOP //AM_DEVREAD("watchdog", watchdog_timer_device, reset_r)
+ AM_RANGE(0xa800, 0xabff) AM_MIRROR(0x0400) AM_RAM_WRITE(galaxian_videoram_w) AM_SHARE("videoram")
+ AM_RANGE(0xb000, 0xb0ff) AM_MIRROR(0x0700) AM_RAM_WRITE(galaxian_objram_w) AM_SHARE("spriteram")
+ AM_RANGE(0xb808, 0xb808) AM_MIRROR(0x07e3) AM_WRITE(irq_enable_w)
+ AM_RANGE(0xb80c, 0xb80c) AM_MIRROR(0x07e3) AM_WRITE(galaxian_flip_screen_y_w)
+ AM_RANGE(0xb810, 0xb810) AM_MIRROR(0x07e3) AM_WRITE(galaxian_flip_screen_x_w)
+ AM_RANGE(0xb818, 0xb818) AM_MIRROR(0x07e3) AM_WRITE(coin_count_0_w) /* IOPC7 */
+ AM_RANGE(0xb81c, 0xb81c) AM_MIRROR(0x07e3) AM_WRITE(coin_count_1_w) /* POUT1 */
+ AM_RANGE(0xc000, 0xffff) AM_READWRITE(frogger_ppi8255_r, frogger_ppi8255_w)
+ADDRESS_MAP_END
+
+static MACHINE_CONFIG_DERIVED( tst_frog, frogger )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(tst_frog_map)
+ MCFG_DEVICE_REMOVE("watchdog")
+MACHINE_CONFIG_END
+
+
+
+/*************************************
+ *
+ * Video Eight
+ *
+ *************************************/
+
+static ADDRESS_MAP_START( videight_map, AS_PROGRAM, 8, galaxian_state )
+ AM_RANGE(0x0000, 0x3fff) AM_ROMBANK("bank1")
+ AM_RANGE(0x4000, 0x47ff) AM_RAM
+ AM_RANGE(0x5000, 0x53ff) AM_MIRROR(0x400) AM_RAM_WRITE(galaxian_videoram_w) AM_SHARE("videoram")
+ AM_RANGE(0x5800, 0x58ff) AM_MIRROR(0x700) AM_RAM_WRITE(galaxian_objram_w) AM_SHARE("spriteram")
+ AM_RANGE(0x6000, 0x6000) AM_READ_PORT("IN0")
+ AM_RANGE(0x6800, 0x6800) AM_READ_PORT("IN1")
+ AM_RANGE(0x7000, 0x7000) AM_READ_PORT("IN2")
+ AM_RANGE(0x7800, 0x7fff) AM_DEVREAD("watchdog", watchdog_timer_device, reset_r)
+ AM_RANGE(0x6000, 0x6002) AM_WRITE(videight_gfxbank_w)
+ AM_RANGE(0x6003, 0x6003) AM_WRITE(coin_count_0_w)
+ AM_RANGE(0x6004, 0x6007) AM_DEVWRITE("cust", galaxian_sound_device, lfo_freq_w)
+ AM_RANGE(0x6800, 0x6807) AM_DEVWRITE("cust", galaxian_sound_device, sound_w)
+ AM_RANGE(0x6808, 0x68ff) AM_WRITENOP
+ AM_RANGE(0x7001, 0x7001) AM_WRITE(irq_enable_w)
+ AM_RANGE(0x7002, 0x7005) AM_WRITE(videight_rombank_w)
+ AM_RANGE(0x7006, 0x7006) AM_WRITE(galaxian_flip_screen_x_w)
+ AM_RANGE(0x7007, 0x7007) AM_WRITE(galaxian_flip_screen_y_w)
+ AM_RANGE(0x7008, 0x7008) AM_WRITENOP /* bit 4 of rombank select - always 0 */
+ AM_RANGE(0x7800, 0x7800) AM_DEVWRITE("cust", galaxian_sound_device, pitch_w)
+ADDRESS_MAP_END
+
+static GFXDECODE_START( videight )
+ GFXDECODE_SCALE( "gfx1", 0x0000, galaxian_charlayout, 0, 8*32, GALAXIAN_XSCALE,1)
+ GFXDECODE_SCALE( "gfx1", 0x0000, galaxian_spritelayout, 0, 8*32, GALAXIAN_XSCALE,1)
+GFXDECODE_END
+
+static MACHINE_CONFIG_DERIVED( videight, galaxian )
+
+ /* basic machine hardware */
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(videight_map)
+
+ /* video hardware */
+ MCFG_GFXDECODE_MODIFY("gfxdecode", videight)
+ MCFG_PALETTE_MODIFY("palette")
+ MCFG_PALETTE_ENTRIES(8*32)
+MACHINE_CONFIG_END
+
+DRIVER_INIT_MEMBER( galaxian_state, videight )
+{
+ membank("bank1")->configure_entries(0, 8, memregion("maincpu")->base() + 0x10000, 0x4000);
+ membank("bank1")->set_entry(0);
+
+ /* video extensions */
+ common_init(NULL, NULL, &galaxian_state::videight_extend_tile_info, &galaxian_state::videight_extend_sprite_info);
+}
+
+
+/***************************************************************************
+
+ Game driver(s)
+
+***************************************************************************/
+
+
+
+
+/* this looks exactly like Galaxian, the word "Andromeda" never appears. The dipswitches are different. */
+ROM_START( andromd )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "and01", 0x0000, 0x0400, CRC(a0059ddd) SHA1(06bc3bd5eef9fea9e038ec08e5a228ab19f31a56) )
+ ROM_LOAD( "and02", 0x0400, 0x0400, CRC(da6421b8) SHA1(d3099d94d722e3e12ade712842261aac8b45f9f4) )
+ ROM_LOAD( "and03", 0x0800, 0x0400, CRC(30e28016) SHA1(07a621e5061d85a9559a920d76716ea4db61b674) )
+ ROM_LOAD( "and04", 0x0c00, 0x0400, CRC(de7e7770) SHA1(b06043a1d898eb323ddabffd3d2a3b1f63df0e5e) )
+ ROM_LOAD( "and05", 0x1000, 0x0400, CRC(a916c919) SHA1(b3e264ff92687022a0f2f551d5df36db848b48eb) )
+ ROM_LOAD( "and06", 0x1400, 0x0400, CRC(9175882b) SHA1(d9943efcb9245af7f01aecc533a699bdefc7d283) )
+ ROM_LOAD( "and07", 0x1800, 0x0400, CRC(1237b9da) SHA1(00e11532c599fca452a816683b361a24476b7100) )
+ ROM_LOAD( "and08", 0x1c00, 0x0400, CRC(8b181929) SHA1(c7e789d1a76e8db0251ac4c75aa85f0a4259fc81) )
+ ROM_LOAD( "and09", 0x2000, 0x0400, CRC(17fd5357) SHA1(abda92319f6851232a0dd26229fc55cf6d8361d8) )
+ ROM_LOAD( "and10", 0x2400, 0x0400, CRC(3032821c) SHA1(7ff45a9ddd86e77a550b10148147f44c4c934467) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "1h.bin", 0x0000, 0x0800, CRC(39fb43a4) SHA1(4755609bd974976f04855d51e08ec0d62ab4bc07) )
+ ROM_LOAD( "1k.bin", 0x0800, 0x0800, CRC(7e3f56a2) SHA1(a9795d8b7388f404f3b0e2c6ce15d713a4c5bafa) )
+
+ ROM_REGION( 0x0020, "proms", 0 )
+ ROM_LOAD( "6l.bpr", 0x0000, 0x0020, CRC(c3ac9467) SHA1(f382ad5a34d282056c78a5ec00c30ec43772bae2) )
+ROM_END
+
+
+#if 0
+/* From CloneMAME 0.101 - this is galapx with different gfx roms */
+ROM_START( galaxni )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "galx.u", 0x0000, 0x0800, CRC(79e4007d) SHA1(d55050498a670d1c022ba3caad34f8fcaccf4a30) )
+ ROM_LOAD( "galx.v", 0x0800, 0x0800, CRC(bc16064e) SHA1(4e3220fd63c8184bf9581a89dffb6944d8fae3bb) )
+ ROM_LOAD( "galx.w", 0x1000, 0x0800, CRC(72d2d3ee) SHA1(96e0c5824e46d7398c7e58dd6b75a9f4ead6f3f5) )
+ ROM_LOAD( "galx.y", 0x1800, 0x0800, CRC(afe397f3) SHA1(283c6f3b3f07581d88f7a6e11fc36947a9d90e2e) )
+ ROM_LOAD( "galx.z", 0x2000, 0x0800, CRC(778c0d3c) SHA1(6a81875abfea515d379c6212cb57f8e54573e943) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "galaxni.1h", 0x0000, 0x0800, CRC(1b13ca05) SHA1(6999068771dacc6bf6c17eb858af593a929d09af) )
+ ROM_LOAD( "galaxni.1k", 0x0800, 0x0800, CRC(5cd7df03) SHA1(77873408c89546a17b1da3f64b7e96e314fadb17) )
+
+ ROM_REGION( 0x0020, "proms", 0 )
+ ROM_LOAD( "6l.bpr", 0x0000, 0x0020, CRC(c3ac9467) SHA1(f382ad5a34d282056c78a5ec00c30ec43772bae2) )
+ROM_END
+#endif
+
+/* From CloneMAME 0.111 */
+ROM_START( galaxni )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "galaxni.u", 0x0000, 0x0800, CRC(0701fcff) SHA1(b4fbc864fb9d95af63c32427779aad05934d95d0) )
+ ROM_LOAD( "galaxni.v", 0x0800, 0x0800, CRC(cb1136d8) SHA1(7be8c50bbd1b891ca7ded597e55b481efa6ac9d5) )
+ ROM_LOAD( "galaxni.w", 0x1000, 0x0800, CRC(f45ef2c7) SHA1(6b50383d98360afee8137a94c4c91d4d10db9221) )
+ ROM_LOAD( "galaxni.y", 0x1800, 0x0800, CRC(3f5c8a62) SHA1(7bde7f712c2cb97d40467062390097707b2896ae) )
+ ROM_LOAD( "galaxni.z", 0x2000, 0x0800, CRC(2d897370) SHA1(21c108712e7c00bd0f30d1fdddfaa71eed84158c) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "galaxni.1h", 0x0000, 0x0800, CRC(6c14fa93) SHA1(0ac55adee875fde0488b4376c4ca5e0047d09fbf) )
+ ROM_LOAD( "galaxni.1k", 0x0800, 0x0800, CRC(2bd0ef95) SHA1(a17edda8940bca02820e270a3ec9e38666343b26) )
+
+ ROM_REGION( 0x0020, "proms", 0 )
+ ROM_LOAD( "galaxni.clr", 0x0000, 0x0020, CRC(5aa5c5dd) SHA1(be74103889248f24123d1df553da02586681835e) )
+ROM_END
+
+
+ROM_START( buglaxn )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "galmidw.u", 0x0000, 0x0800, CRC(745e2d61) SHA1(e65f74e35b1bfaccd407e168ea55678ae9b68edf) )
+ ROM_LOAD( "galmidw.v", 0x0800, 0x0800, CRC(9c999a40) SHA1(02fdcd95d8511e64c0d2b007b874112d53e41045) )
+ ROM_LOAD( "galmidw.w", 0x1000, 0x0800, CRC(b5894925) SHA1(0046b9ed697a34d088de1aead8bd7cbe526a2396) )
+ ROM_LOAD( "galmidw.y", 0x1800, 0x0800, CRC(6b3ca10b) SHA1(18d8714e5ef52f63ba8888ecc5a25b17b3bf17d1) )
+ ROM_LOAD( "galmidw.z", 0x2000, 0x0800, CRC(cb24f797) SHA1(e6bb977ded0654c2c7388aad188059e1e0647908) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "buglaxn.1j", 0x0000, 0x0800, CRC(b8d46e4b) SHA1(5fbf130912029fbe2aea5282b2201c6a17eae40b) )
+ ROM_LOAD( "buglaxn.1k", 0x0800, 0x0800, CRC(a00bde50) SHA1(c6519af48d2cf0a641b2f5aa327c3591f3184dbc) )
+
+ ROM_REGION( 0x0020, "proms", 0 )
+ ROM_LOAD( "6l.bpr", 0x0000, 0x0020, CRC(c3ac9467) SHA1(f382ad5a34d282056c78a5ec00c30ec43772bae2) )
+ROM_END
+
+/* This is a combination of 2 EMMA dumps. E48 contained all roms except for "y" - even though the web page said
+ it was there. E423 contained all roms except the prom, because this board had been hacked to work without it.
+
+ The prom is the same except that the last 2 bytes are zeroed. This causes the explosions to be mostly missing,
+ and since the last byte also controls the colour of the floating scores, these are blanked. */
+
+ROM_START( galaxiab )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "galaxiab.u", 0x0000, 0x0800, CRC(63e6d8ab) SHA1(ec2ade4d93903ba99bc9565b68328bd7d0830eac) )
+ ROM_LOAD( "galaxiab.v", 0x0800, 0x0800, CRC(f58283e3) SHA1(edc6e72516c50fd3402281d9936574d276581ce9) )
+ ROM_LOAD( "galaxiab.w", 0x1000, 0x0800, CRC(4c7031c0) SHA1(97f7ab0cedcd8eba1c8f6f516d84d672a2108258) )
+ ROM_LOAD( "galaxiab.y", 0x1800, 0x0800, CRC(faa0bd8c) SHA1(30dd130298609632212b34874a0819340b1c8037) )
+ ROM_LOAD( "galaxiab.z", 0x2000, 0x0800, CRC(5766c95b) SHA1(cf6c226df0cc9d088b04ade43d6db87d278f8b09) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "galaxiab.1h", 0x0000, 0x0800, CRC(977e37cf) SHA1(88ff1e4edadf5cfc83413a1fe999aecf4ba72232) )
+ ROM_LOAD( "galaxiab.1k", 0x0800, 0x0800, CRC(bc7d0985) SHA1(550a44c9ddc8da66a29405591a590f91d2675cdf) )
+
+ ROM_REGION( 0x0020, "proms", 0 )
+ ROM_LOAD( "galaxiab.6l", 0x0000, 0x0020, CRC(feea6525) SHA1(cdb207776f51411ed4e9536babff6050488d2808) )
+ ROM_FILL( 31,1,7 ) /* patch so floating scores can be seen, and explosions look better */
+ROM_END
+
+ROM_START( galaxkyo )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "galxk.u", 0x0000, 0x0800, CRC(acfde501) SHA1(4b72c1ffecaccadc541da2367f3ef70a2a9aed64) )
+ ROM_LOAD( "galxk.v", 0x0800, 0x0800, CRC(65cf3c77) SHA1(1c5249815816b395e1e04bf6a7dbb63e40faa0e3) )
+ ROM_LOAD( "galxk.w", 0x1000, 0x0800, CRC(9eef9ae6) SHA1(b2282e4edb8911e6aabfa936c3526f90381e1320) )
+ ROM_LOAD( "galxk.y", 0x1800, 0x0800, CRC(56a5ddd1) SHA1(1f87f647ebdffba28d5957f195448f6bce17f4d5) )
+ ROM_LOAD( "galxk.z", 0x2000, 0x0800, CRC(f4bc7262) SHA1(c4b70e474d49f45cec96f7c250bd77e01e18601a) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "galxk.1h", 0x0000, 0x0800, CRC(66a4335d) SHA1(0527a9ea99e525b3ba25c172034a61cde9307a9b) )
+ ROM_LOAD( "galxk.1k", 0x0800, 0x0800, CRC(2160265b) SHA1(97385e9c8012bc7fe85e29cfccefda72e4ca3320) )
+
+ ROM_REGION( 0x0020, "proms", 0 )
+ ROM_LOAD( "6l.bpr", 0x0000, 0x0020, CRC(c3ac9467) SHA1(f382ad5a34d282056c78a5ec00c30ec43772bae2) )
+ROM_END
+
+ROM_START( galinvad )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "galnamco.7f", 0x0000, 0x1000, CRC(b10533fd) SHA1(ea8653e80000d607cd37a41f2de27ffe6e190f0f) )
+ ROM_LOAD( "galnamco.7j", 0x1000, 0x1000, CRC(9163454d) SHA1(683ce43c0e24fd5110b860e424e5de30d59e5223) )
+ ROM_LOAD( "galnamco.7l", 0x2000, 0x1000, CRC(952c6135) SHA1(e0989d5dce37ae421c34833d48b09e76d178680d) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "galinv.1h", 0x0000, 0x0800, CRC(d3d42377) SHA1(4eae6b2b20cfb6841d679006f394c7081f8f426f) )
+ ROM_LOAD( "galinv.1k", 0x0800, 0x0800, CRC(7e515c84) SHA1(e15ff199f1db55e9abb30c403fc667a4e7143b4f) )
+
+ ROM_REGION( 0x0020, "proms", 0 )
+ ROM_LOAD( "6l.bpr", 0x0000, 0x0020, CRC(c3ac9467) SHA1(f382ad5a34d282056c78a5ec00c30ec43772bae2) )
+ROM_END
+
+ROM_START( galnamco )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "galnamco.7f", 0x0000, 0x1000, CRC(b10533fd) SHA1(ea8653e80000d607cd37a41f2de27ffe6e190f0f) )
+ ROM_LOAD( "galnamco.7j", 0x1000, 0x1000, CRC(9163454d) SHA1(683ce43c0e24fd5110b860e424e5de30d59e5223) )
+ ROM_LOAD( "galnamco.7l", 0x2000, 0x1000, CRC(952c6135) SHA1(e0989d5dce37ae421c34833d48b09e76d178680d) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "1h.bin", 0x0000, 0x0800, CRC(39fb43a4) SHA1(4755609bd974976f04855d51e08ec0d62ab4bc07) )
+ ROM_LOAD( "1k.bin", 0x0800, 0x0800, CRC(7e3f56a2) SHA1(a9795d8b7388f404f3b0e2c6ce15d713a4c5bafa) )
+
+ ROM_REGION( 0x0020, "proms", 0 )
+ ROM_LOAD( "6l.bpr", 0x0000, 0x0020, CRC(c3ac9467) SHA1(f382ad5a34d282056c78a5ec00c30ec43772bae2) )
+ROM_END
+
+ROM_START( gaylaxn )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "galx.u", 0x0000, 0x0800, CRC(79e4007d) SHA1(d55050498a670d1c022ba3caad34f8fcaccf4a30) )
+ ROM_LOAD( "galx.v", 0x0800, 0x0800, CRC(bc16064e) SHA1(4e3220fd63c8184bf9581a89dffb6944d8fae3bb) )
+ ROM_LOAD( "galx.w", 0x1000, 0x0800, CRC(72d2d3ee) SHA1(96e0c5824e46d7398c7e58dd6b75a9f4ead6f3f5) )
+ ROM_LOAD( "galx.y", 0x1800, 0x0800, CRC(afe397f3) SHA1(283c6f3b3f07581d88f7a6e11fc36947a9d90e2e) )
+ ROM_LOAD( "galx.z", 0x2000, 0x0800, CRC(778c0d3c) SHA1(6a81875abfea515d379c6212cb57f8e54573e943) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "galxn.1h", 0x0000, 0x0800, CRC(ce77d89b) SHA1(17de678c91e96bf3dc414cc2ad8631a8f617da3d) )
+ ROM_LOAD( "galxn.1k", 0x0800, 0x0800, CRC(08008d2c) SHA1(6600dbc42e5076f9ce3abe677134bf1677ae70ea) )
+
+ ROM_REGION( 0x0020, "proms", 0 )
+ ROM_LOAD( "6l.bpr", 0x0000, 0x0020, CRC(c3ac9467) SHA1(f382ad5a34d282056c78a5ec00c30ec43772bae2) )
+ROM_END
+
+ROM_START( gmunch )
+ /* There was gmunch and gmunch2, using same roms, different proms. But colours are completely wrong in either case
+ Both games have now been removed (replaced by ghostmun) */
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pac1.bin", 0x0000, 0x1000, CRC(19338c70) SHA1(cc2665b7d534d324627d12025ee099ff415d4214) )
+ ROM_LOAD( "pac2.bin", 0x1000, 0x1000, CRC(18db074d) SHA1(a70ed18f632e947493e648e6fc057dfb7a2a3322) )
+ ROM_LOAD( "pac3.bin", 0x2000, 0x1000, CRC(abb98b1d) SHA1(bb0109d353359bb192a3e6856a857c2f842838cb) )
+ ROM_LOAD( "pac4.bin", 0x3000, 0x1000, CRC(2403c78e) SHA1(52d8c8a4efcf47871485080ab217098a019e6579) )
+ /* this rom isn't loaded into rom space so what is it for? */
+ ROM_LOAD( "pac7.bin", 0x5000, 0x1000, CRC(6566c07b) SHA1(8047350e5f6a39d34dfc9242fa0747db9819fe99) )
+
+ ROM_REGION( 0x3000, "gfx1" , 0 )
+ ROM_LOAD( "pac5.bin", 0x0000, 0x1000, CRC(a5965fa6) SHA1(c746f90b4c4620ef6190f9ae85d5036bda3b81ae) )
+ ROM_LOAD( "pac8.bin", 0x1000, 0x1000, CRC(0491a967) SHA1(868f7c7efdbe40c8e0977557bc2cedefb9a3ea81) )
+ /* this rom contains gfx from uniwars and mame doesn't process it */
+ ROM_LOAD( "pac6.bin", 0x2000, 0x1000, CRC(2145e7ea) SHA1(a2e3a54fa25b030d72431f42e12783db08e95e2e) )
+
+ ROM_REGION( 0x0020, "proms", 0 )
+ ROM_LOAD( "sk.bpr", 0x0000, 0x0020, CRC(bce79607) SHA1(49d60fde149240bcd025f721b0fbbbdbc549a42f) ) /* gmunch */
+ ROM_LOAD( "6l.bpr", 0x0000, 0x0020, CRC(c3ac9467) SHA1(f382ad5a34d282056c78a5ec00c30ec43772bae2) ) /* gmunch2 */
+ROM_END
+
+ROM_START( mooncmst )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "mc1", 0x0000, 0x0800, CRC(7d954a7a) SHA1(a93ee403cfd7887538ad12d33f6dd6c71bea2a32) )
+ ROM_LOAD( "mc2", 0x0800, 0x0800, CRC(44bb7cfa) SHA1(349c2e23a9fce73f95bb8168d369082fa129fe3d) )
+ ROM_LOAD( "mc3", 0x1000, 0x0800, CRC(9c412104) SHA1(1b40054ebb1ace965a8522119bb23f09797bc5f6) )
+ ROM_LOAD( "mc4", 0x1800, 0x0800, CRC(7e9b1ab5) SHA1(435f603c0c3e788a509dd144a7916a34e791ae44) )
+ ROM_LOAD( "mc5.7r", 0x2000, 0x0800, CRC(16c759af) SHA1(3b48050411f65f9d3fb41ff22901e22d82bf1cf6) )
+ ROM_LOAD( "mc6.8d", 0x2800, 0x0800, CRC(69bcafdb) SHA1(939c8c6ed1cd4660a3d99b8f17ed99cbd7e1352a) )
+ ROM_LOAD( "mc7.8e", 0x3000, 0x0800, CRC(b50dbc46) SHA1(4fa084fd1ba5f78e7703e684c57af15ca7a844e4) )
+ ROM_LOAD( "mc8", 0x3800, 0x0800, CRC(18ca312b) SHA1(39219059003b949e38305553fea2d33071062c64) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "mmcs_b", 0x0000, 0x0800, CRC(94d69a79) SHA1(d984ce68046244589e94cb526dc2fa11a85077d9) )
+ ROM_LOAD( "mmcs_d", 0x0800, 0x0800, CRC(44a6c84a) SHA1(464dc9a11fdf3015ce9d4735c27c1d6eab51cecb) )
+ ROM_LOAD( "mmcs_a", 0x1000, 0x0800, CRC(d8c9713c) SHA1(13f514bed011bb7f420e99bd9caeca0f2a1012ff) )
+ ROM_LOAD( "mmcs_c", 0x1800, 0x0800, CRC(50e37124) SHA1(ae07715733e864eadc3b4586c3e9f1852a4cf127) )
+
+ ROM_REGION( 0x0020, "proms", 0 )
+ ROM_LOAD( "mmi6331.6l", 0x0000, 0x0020, CRC(6a0c7d87) SHA1(140335d85c67c75b65689d4e76d29863c209cf32) )
+ROM_END
+
+
+/* E78 - The dump was missing one rom (position "fake" below), I found that the equivalent code from fantazia
+ works perfectly well. The rom still fails the checksum test, which is why the test is patched. So
+ take note: It is a FAKE rom!!!
+
+ The colour prom supplied produced terrible colours, with most enemies barely visible. Substituting
+ the normal mooncrst prom fixes all the problems. */
+
+ROM_START( mooncrs5 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "mooncrs5.7k", 0x0000, 0x1000, CRC(d62875a5) SHA1(2e162bf559a72acb5d23434497a9377a302b0440) )
+ ROM_LOAD( "mooncrs5.7j", 0x1000, 0x1000, CRC(1683e74c) SHA1(5887ddeed7d3399e93bc3146f54c23e9f8893866) )
+ ROM_LOAD( "mooncrs5.7h", 0x2000, 0x1000, CRC(46921e92) SHA1(7a3cec261a9e0baf969bd356a0766b4b266eaa39) )
+ ROM_LOAD( "mooncrs5.7a", 0x3000, 0x0400, CRC(5318be0c) SHA1(cca73501da8783e47f3f3c7d8a795011d5fd91a3) )
+ ROM_LOAD( "mooncrs5.7b", 0x3400, 0x0400, CRC(aed8acb2) SHA1(a2429daba96e6c064f4bc65cab2df6b15a43bf44) )
+ ROM_LOAD( "mooncrs5.fake", 0x3800, 0x0400, CRC(76db94a5) SHA1(f7d9c81d5e09f7e42258caf265606b1ba32439dd) ) /* fake rom */
+ ROM_LOAD( "mooncrs5.7d", 0x3c00, 0x0400, CRC(db0528cf) SHA1(be06b78d890e07fcbbfd6931d1a59ab0fb8b7a53) )
+ ROM_FILL(0x3FF4,1,0x2c ) /* patch unused byte so checksum test can be passed */
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "mooncrs5.1h", 0x0800, 0x0800, CRC(60d783bc) SHA1(584a0600ef1c47fb8bce86f738af7691fdf91c9c) )
+ ROM_CONTINUE( 0x0000, 0x0800 )
+ ROM_LOAD( "mooncrs5.1k", 0x1800, 0x0800, CRC(bc25be88) SHA1(0e698a1e573f28e8aad07e79c11f38519d93286c) )
+ ROM_CONTINUE( 0x1000, 0x0800 )
+
+ ROM_REGION( 0x0020, "proms", 0 )
+// ROM_LOAD( "6l.bpr", 0x0000, 0x0020, CRC(c3ac9467) SHA1(f382ad5a34d282056c78a5ec00c30ec43772bae2) )
+ ROM_LOAD( "mmi6331.6l", 0x0000, 0x0020, CRC(6a0c7d87) SHA1(140335d85c67c75b65689d4e76d29863c209cf32) )
+ROM_END
+
+// Mr. Do. Nightmare
+ROM_START( mrdonm )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "mrdonm.u", 0x0000, 0x0800, CRC(197493a6) SHA1(f939fd712985db24dced4f7a66f4a804ca34ce60) )
+ ROM_LOAD( "mrdonm.v", 0x0800, 0x0800, CRC(b8ee84cf) SHA1(c5018f21da2f65fa573a2d5e9c8f96db1f0136e9) )
+ ROM_LOAD( "mrdonm.w", 0x1000, 0x0800, CRC(76879d31) SHA1(7aae5ee1eeaa5dacf4a232b3336f9e3df74018ca) )
+ ROM_LOAD( "mrdonm.y", 0x1800, 0x0800, CRC(d6d5e47e) SHA1(e5f41f90ca357f3e7ef1a6b055ca0cccc91ed391) )
+ ROM_LOAD( "mrdonm.z", 0x2000, 0x0800, CRC(34913886) SHA1(c1936ef6dc6080d080715d1c064513d581180fea) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "mrdonm.1h", 0x0000, 0x0800, CRC(f880af4b) SHA1(67d24ac48a6bd68de5b914675dc4cd5982d8ffc4) )
+ ROM_LOAD( "mrdonm.1k", 0x0800, 0x0800, CRC(40fd608a) SHA1(3a58d5ac17e98bea3d58d238d81bd6a5dd24bb81) )
+
+ ROM_REGION( 0x0020, "proms", 0 )
+ ROM_LOAD( "mrdonm.6l", 0x0000, 0x0020, CRC(77f95861) SHA1(2acb3021e31b3c91bbf48763d2504dfad0d87f38) )
+ROM_END
+
+
+/* StarFighter II - This set came with a1,a2,b2,c1,e2 only. The rest I've used from Pisces */
+ROM_START( starfgh2 )
+ ROM_REGION( 0x4000, "maincpu", 0 )
+ ROM_LOAD( "a1.bin", 0x0000, 0x0800, CRC(0d496c93) SHA1(c0f9a20d01a11045f6ad8a6c9c3980a52ba16495) )
+ ROM_LOAD( "a2.bin", 0x0800, 0x0800, CRC(4f0676eb) SHA1(7b4a230c723959261cb240fce52d378a01740942) )
+ ROM_LOAD( "b2.bin", 0x1000, 0x0800, CRC(1496a894) SHA1(d010cd02b1ffe351ef1abdd424cdefca44ea6b29) )
+ ROM_LOAD( "c1.bin", 0x1800, 0x0800, CRC(59820900) SHA1(d42b99573a44f76620d75647c1c253a869e9a403) )
+ ROM_LOAD( "p5.bin", 0x2000, 0x0800, CRC(fade512b) SHA1(ccef2650f1d9dc3fdde2d441774246d47febc2cc) )
+ ROM_LOAD( "e2.bin", 0x2800, 0x0800, CRC(153316b8) SHA1(c7de0c0f65723d3699e68f3b8b76cd1d69dbd0f3) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "g09.bin", 0x0000, 0x0800, CRC(9503a23a) SHA1(23848de56841dd1de9ef74d5a9c981c784098175) )
+ ROM_LOAD( "g11.bin", 0x0800, 0x0800, CRC(0adfc3fe) SHA1(a4da488632d9906066db45ae62747caf5ffbf2d8) )
+ ROM_LOAD( "g10.bin", 0x1000, 0x0800, CRC(3e61f849) SHA1(efa0059bc843af0c3bb94f4bc0a8286ca5069179) )
+ ROM_LOAD( "g12.bin", 0x1800, 0x0800, CRC(7130e9eb) SHA1(e6bb7a9b4f2fc001296e1060d0671b7a88599c8b) )
+
+ ROM_REGION( 0x0020, "proms", 0 )
+ ROM_LOAD( "colour.bin", 0x0000, 0x0020, CRC(57a45057) SHA1(d4ec6a54f72640e5b485aa59e206c090e67ff640) )
+ROM_END
+
+ROM_START( vectrgal )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "galnamco.7f", 0x0000, 0x1000, CRC(b10533fd) SHA1(ea8653e80000d607cd37a41f2de27ffe6e190f0f) )
+ ROM_LOAD( "galnamco.7j", 0x1000, 0x1000, CRC(9163454d) SHA1(683ce43c0e24fd5110b860e424e5de30d59e5223) )
+ ROM_LOAD( "galnamco.7l", 0x2000, 0x1000, CRC(952c6135) SHA1(e0989d5dce37ae421c34833d48b09e76d178680d) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "vecgal.1h", 0x0000, 0x0800, CRC(02815aec) SHA1(94975ee5eff84a3ae483dd3d5766384859402477) )
+ ROM_LOAD( "vecgal.1k", 0x0800, 0x0800, CRC(11c9898c) SHA1(fb6bac221b3984a70a775bccf06f6e2f17d447cf) )
+
+ ROM_REGION( 0x0020, "proms", 0 )
+ ROM_LOAD( "6l.bpr", 0x0000, 0x0020, CRC(c3ac9467) SHA1(f382ad5a34d282056c78a5ec00c30ec43772bae2) )
+ROM_END
+
+ROM_START( fourplay )
+ ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k for code & 64k for banked code */
+ ROM_LOAD( "fourplay.bin", 0x10000, 0x10000, CRC(b42b2c2c) SHA1(f3b6f136b39e7a6adadecb9acf906fcfe649f398) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "graph1.bin", 0x0000, 0x1000, CRC(359c0c1f) SHA1(9e39baae4ab5763db236d0a49a6665d2e69cba11) )
+ ROM_LOAD( "graph2.bin", 0x1000, 0x1000, CRC(b22a51c9) SHA1(cccfbab0c92dba81e3451de72d1f1899226e30e2) )
+
+ ROM_REGION( 0x0020, "proms", 0 )
+ ROM_LOAD( "6l.bpr", 0x0000, 0x0020, CRC(c3ac9467) SHA1(f382ad5a34d282056c78a5ec00c30ec43772bae2) )
+ROM_END
+
+ROM_START( videight )
+ ROM_REGION( 0x30000, "maincpu", 0 )
+ ROM_LOAD( "videight.bin", 0x10000, 0x20000, CRC(0601db09) SHA1(0c9cd1afb0034946261219bf42b2f9b1ed5bdb17) )
+
+ ROM_REGION( 0x10000, "gfx1", 0 )
+ ROM_LOAD( "v8g1.bin", 0x0000, 0x8000, CRC(af771e33) SHA1(cdc960c5f548e19da4eabdaf8b789ca8ffb6a29f) )
+ ROM_LOAD( "v8g2.bin", 0x8000, 0x8000, CRC(776c34e6) SHA1(de70a29f73469a58ab15acb95aaad1efeb4de08d) )
+
+ ROM_REGION( 0x0100, "proms", 0 )
+ ROM_LOAD( "v8c.bin", 0x0000, 0x0100, CRC(b35a6ca8) SHA1(d9195215bf2482a1b02a019bb708a9981eb0bdf8) )
+ROM_END
+
+ROM_START( offender )
+ ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */
+ ROM_LOAD( "off-2d", 0x0000, 0x0800, CRC(bb09d91e) SHA1(f47cd3fd91fc569c7a9bb6e485a3281b92656b7f) )
+ ROM_LOAD( "2e", 0x0800, 0x0800, CRC(e9b4b9eb) SHA1(a8ee9ddfadf5e9accedfaf81da757a88a2e55a0a) )
+ ROM_LOAD( "2f", 0x1000, 0x0800, CRC(a1f14f4c) SHA1(3eae2b3e4596505a8afb5c5cfb108e823c2c4319) )
+ ROM_LOAD( "2h", 0x1800, 0x0800, CRC(591bc0d9) SHA1(170f9e92f0a3bee04407be27210b4fa825367688) )
+ ROM_LOAD( "2j", 0x2000, 0x0800, CRC(22f11b6b) SHA1(e426ef6a7444a39a34d59799973b07d11b89f372) )
+ ROM_LOAD( "2l", 0x2800, 0x0800, CRC(705ffe49) SHA1(174df3f281068c767344f751daace646360e26d6) )
+ ROM_LOAD( "2m", 0x3000, 0x0800, CRC(ea26c35c) SHA1(a2f3380982d93a022f46756f974fd16c4cd617de) )
+ ROM_LOAD( "2p", 0x3800, 0x0800, CRC(94d8f5e3) SHA1(f3a9c4d1d91836476fcad87ea0d243dde7171e0a) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the audio CPU */
+ ROM_LOAD( "ot1.5c", 0x0000, 0x0800, CRC(bcd297f0) SHA1(8ed78487d76fd0a917ab7b258937a46e2cd9800c) )
+ ROM_LOAD( "ot2.5d", 0x0800, 0x0800, CRC(de7912da) SHA1(8558b4eff5d7e63029b325edef9914feda5834c3) )
+ ROM_LOAD( "ot3.5e", 0x1000, 0x0800, CRC(ba2fa933) SHA1(1f976d8595706730e29f93027e7ab4620075c078) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "off-5f", 0x0000, 0x0800, CRC(7015a2e1) SHA1(19bb4cb26c8b91cd79368e4ed48065df6fd6577e) )
+ ROM_LOAD( "off-5h", 0x0800, 0x0800, CRC(a36ac0fa) SHA1(b58412536833ab5ea705e919562b7b495ff3dff4) )
+
+ ROM_REGION( 0x0020, "proms", 0 )
+ ROM_LOAD( "c01s.6e", 0x0000, 0x0020, CRC(4e3caeab) SHA1(a25083c3e36d28afdefe4af6e6d4f3155e303625) )
+ROM_END
+
+ROM_START( superdog )
+ ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */
+ ROM_LOAD( "sdog-2d", 0x0000, 0x0800, CRC(99dc8bb5) SHA1(a7f533471df4482f67be0ed969e559f483fb147a) )
+ ROM_LOAD( "2e", 0x0800, 0x0800, CRC(e9b4b9eb) SHA1(a8ee9ddfadf5e9accedfaf81da757a88a2e55a0a) )
+ ROM_LOAD( "2f", 0x1000, 0x0800, CRC(a1f14f4c) SHA1(3eae2b3e4596505a8afb5c5cfb108e823c2c4319) )
+ ROM_LOAD( "2h", 0x1800, 0x0800, CRC(591bc0d9) SHA1(170f9e92f0a3bee04407be27210b4fa825367688) )
+ ROM_LOAD( "2j", 0x2000, 0x0800, CRC(22f11b6b) SHA1(e426ef6a7444a39a34d59799973b07d11b89f372) )
+ ROM_LOAD( "2l", 0x2800, 0x0800, CRC(705ffe49) SHA1(174df3f281068c767344f751daace646360e26d6) )
+ ROM_LOAD( "2m", 0x3000, 0x0800, CRC(ea26c35c) SHA1(a2f3380982d93a022f46756f974fd16c4cd617de) )
+ ROM_LOAD( "2p", 0x3800, 0x0800, CRC(94d8f5e3) SHA1(f3a9c4d1d91836476fcad87ea0d243dde7171e0a) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the audio CPU */
+ ROM_LOAD( "ot1.5c", 0x0000, 0x0800, CRC(bcd297f0) SHA1(8ed78487d76fd0a917ab7b258937a46e2cd9800c) )
+ ROM_LOAD( "ot2.5d", 0x0800, 0x0800, CRC(de7912da) SHA1(8558b4eff5d7e63029b325edef9914feda5834c3) )
+ ROM_LOAD( "ot3.5e", 0x1000, 0x0800, CRC(ba2fa933) SHA1(1f976d8595706730e29f93027e7ab4620075c078) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "sdog-5f", 0x0000, 0x0800, CRC(7edbc59c) SHA1(53c9a7f46a968b2f804243f661479918870756b5) )
+ ROM_LOAD( "sdog-5h", 0x0800, 0x0800, CRC(5b130bea) SHA1(269df1344414c0d517084a32a348a856c25d499c) )
+
+ ROM_REGION( 0x0020, "proms", 0 )
+ ROM_LOAD( "c01s.6e", 0x0000, 0x0020, CRC(4e3caeab) SHA1(a25083c3e36d28afdefe4af6e6d4f3155e303625) )
+ROM_END
+
+ROM_START( amidarf )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "amidar.2c", 0x0000, 0x1000, CRC(c294bf27) SHA1(399325bf1559e8cdbddf7cfbf0dc739f9ed72ef0) )
+ ROM_LOAD( "amidar.2e", 0x1000, 0x1000, CRC(e6e96826) SHA1(e9c4f8c594640424b456505e676352a98b758c03) )
+ ROM_LOAD( "amidarf.2f", 0x2000, 0x1000, CRC(45b24635) SHA1(0a6b004803e67ed536b3213cc58ae976e4dc24be) )
+ ROM_LOAD( "amidar.2h", 0x3000, 0x1000, CRC(1be170bd) SHA1(c047bc393b297c0d47668a5f6f4870e3fac937ef) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "amidar.5c", 0x0000, 0x1000, CRC(c4b66ae4) SHA1(9d09dbde4019f7be3abe0815b0e06d542c01c255) )
+ ROM_LOAD( "amidar.5d", 0x1000, 0x1000, CRC(806785af) SHA1(c8c85e3a6a204feccd7859b4527bd649e96134b4) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "amidar.5f", 0x0000, 0x0800, CRC(5e51e84d) SHA1(dfe84db7e2b1a45a1d484fcf37291f536bc5324c) )
+ ROM_LOAD( "amidar.5h", 0x0800, 0x0800, CRC(2f7f1c30) SHA1(83c330eca20dfcc6a4099001943b9ed7a7c3db5b) )
+
+ ROM_REGION( 0x0020, "proms", 0 )
+ ROM_LOAD( "amidar.clr", 0x0000, 0x0020, CRC(f940dcc3) SHA1(1015e56f37c244a850a8f4bf0e36668f047fd46d) )
+ROM_END
+
+ROM_START( amidargr )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "amidarg.2c", 0x0000, 0x1000, CRC(e9822709) SHA1(ce7c76607a512b9b092a8bf83bdf6744a92a519a) )
+ ROM_LOAD( "amidar.2e", 0x1000, 0x1000, CRC(e6e96826) SHA1(e9c4f8c594640424b456505e676352a98b758c03) )
+ ROM_LOAD( "amidarg.2f", 0x2000, 0x1000, CRC(fd81b040) SHA1(f710cb192a50514f55b4aec859fd9c298b0b90f8) )
+ ROM_LOAD( "amidar.2h", 0x3000, 0x1000, CRC(1be170bd) SHA1(c047bc393b297c0d47668a5f6f4870e3fac937ef) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "amidar.5c", 0x0000, 0x1000, CRC(c4b66ae4) SHA1(9d09dbde4019f7be3abe0815b0e06d542c01c255) )
+ ROM_LOAD( "amidar.5d", 0x1000, 0x1000, CRC(806785af) SHA1(c8c85e3a6a204feccd7859b4527bd649e96134b4) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "amidar.5f", 0x0000, 0x0800, CRC(5e51e84d) SHA1(dfe84db7e2b1a45a1d484fcf37291f536bc5324c) )
+ ROM_LOAD( "amidarg.5h", 0x0800, 0x0800, CRC(141f8dbe) SHA1(3a627f5dd072909177f50920271f0d8ffb8a09c0) )
+
+ ROM_REGION( 0x0020, "proms", 0 )
+ ROM_LOAD( "amidar.clr", 0x0000, 0x0020, CRC(f940dcc3) SHA1(1015e56f37c244a850a8f4bf0e36668f047fd46d) )
+ROM_END
+
+#define rom_jumpbugx rom_jumpbug
+
+
+ROM_START( kazzy )
+ ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */
+ ROM_LOAD( "frogger.26", 0x0000, 0x1000, CRC(597696d6) SHA1(e7e021776cad00f095a1ebbef407b7c0a8f5d835) )
+ ROM_LOAD( "frogger.27", 0x1000, 0x1000, CRC(b6e6fcc3) SHA1(5e8692f2b0c7f4b3642b3ee6670e1c3b20029cdc) )
+ ROM_LOAD( "frsm3.7", 0x2000, 0x1000, CRC(aca22ae0) SHA1(5a99060ea2506a3ac7d61ca5876ce5cb3e493565) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the audio CPU */
+ ROM_LOAD( "frogger.608", 0x0000, 0x0800, CRC(e8ab0256) SHA1(f090afcfacf5f13cdfa0dfda8e3feb868c6ce8bc) )
+ ROM_LOAD( "frogger.609", 0x0800, 0x0800, CRC(7380a48f) SHA1(75582a94b696062cbdb66a4c5cf0bc0bb94f81ee) )
+ ROM_LOAD( "frogger.610", 0x1000, 0x0800, CRC(31d7eb27) SHA1(2e1d34ae4da385fd7cac94707d25eeddf4604e1a) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "kazzy.607", 0x0000, 0x0800, CRC(86f041e6) SHA1(61dd02bb2dda15d2f47ecc878a9dd6aa3118687d) )
+ ROM_LOAD( "kazzy.606", 0x0800, 0x0800, CRC(9ea43774) SHA1(d96eae151580f6ccef78049a73ec1fc5fa90aa63) )
+
+ ROM_REGION( 0x0020, "proms", 0 )
+ ROM_LOAD( "pr-91.6l", 0x0000, 0x0020, CRC(413703bf) SHA1(66648b2b28d3dcbda5bdb2605d1977428939dd3c) )
+ROM_END
+
+ROM_START( trukker )
+ ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */
+ ROM_LOAD( "frogger.ic5", 0x0000, 0x1000, CRC(efab0c79) SHA1(68c99b6cdcb9396bb473739a62ffc009b4bf57d5) )
+ ROM_LOAD( "frogger.ic6", 0x1000, 0x1000, CRC(aeca9c13) SHA1(cdf560adbd7f2813e86e378da7781cccf7928a44) )
+ ROM_LOAD( "frogger.ic7", 0x2000, 0x1000, CRC(dd251066) SHA1(4612e1fe1ab7182a277140b1a1976cc17e0746a5) )
+ ROM_LOAD( "frogger.ic8", 0x3000, 0x1000, CRC(bf293a02) SHA1(be94e9f5caa74c3de6fd95bd20928f4a9c514227) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the audio CPU */
+ ROM_LOAD( "frogger.608", 0x0000, 0x0800, CRC(e8ab0256) SHA1(f090afcfacf5f13cdfa0dfda8e3feb868c6ce8bc) )
+ ROM_LOAD( "frogger.609", 0x0800, 0x0800, CRC(7380a48f) SHA1(75582a94b696062cbdb66a4c5cf0bc0bb94f81ee) )
+ ROM_LOAD( "frogger.610", 0x1000, 0x0800, CRC(31d7eb27) SHA1(2e1d34ae4da385fd7cac94707d25eeddf4604e1a) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "trukker.606", 0x0000, 0x0800, CRC(f0c49466) SHA1(f88d02ada32a9f1e10004785d17659279fd1d651) )
+ ROM_LOAD( "trukker.607", 0x0800, 0x0800, CRC(6ab5c2eb) SHA1(d13fcd5669bd0f8f76505684ba5e788b395aeef1) )
+
+ ROM_REGION( 0x0020, "proms", 0 )
+ ROM_LOAD( "pr-91.6l", 0x0000, 0x0020, CRC(413703bf) SHA1(66648b2b28d3dcbda5bdb2605d1977428939dd3c) )
+ROM_END
+
+ROM_START( tst_frog )
+ ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */
+ ROM_LOAD( "frogtest.bin", 0x0000, 0x0226, CRC(1f5a7f35) SHA1(608ad6ac8c34aea66b13aac7e45c298a2083d642) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the audio CPU */
+ ROM_LOAD( "frogger.608", 0x0000, 0x0800, CRC(e8ab0256) SHA1(f090afcfacf5f13cdfa0dfda8e3feb868c6ce8bc) )
+ ROM_LOAD( "frogger.609", 0x0800, 0x0800, CRC(7380a48f) SHA1(75582a94b696062cbdb66a4c5cf0bc0bb94f81ee) )
+ ROM_LOAD( "frogger.610", 0x1000, 0x0800, CRC(31d7eb27) SHA1(2e1d34ae4da385fd7cac94707d25eeddf4604e1a) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "frogger.607", 0x0000, 0x0800, CRC(05f7d883) SHA1(78831fd287da18928651a8adb7e578d291493eff) )
+ ROM_LOAD( "frogger.606", 0x0800, 0x0800, CRC(f524ee30) SHA1(dd768967add61467baa08d5929001f157d6cd911) )
+
+ ROM_REGION( 0x0020, "proms", 0 )
+ ROM_LOAD( "pr-91.6l", 0x0000, 0x0020, CRC(413703bf) SHA1(66648b2b28d3dcbda5bdb2605d1977428939dd3c) )
+ROM_END
+
+/* Wriggly Beasties - bootleg of WarOfBug */
+ROM_START( wbeast )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "wbeast.7f", 0x0000, 0x1000, CRC(967e92ee) SHA1(319953fda4bedd447e95f93cd800fc036ce6a8e4) )
+ ROM_LOAD( "wbeast.7j", 0x1000, 0x1000, CRC(72c70fff) SHA1(e0e2cfafdce4d027f89a32542cdc2d724da9f6b0) )
+ ROM_LOAD( "wbeast.7l", 0x2000, 0x1000, CRC(2486d3a6) SHA1(93ac6178303bf65175b8b0b889c1dae11da46d0e) )
+
+ /* These 2 roms are overdumped */
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "wbeast.1h", 0x0000, 0x1000, CRC(623bb742) SHA1(081cc0cc2f3133338495e61a8e904448521c6c9a) )
+ ROM_LOAD( "wbeast.1k", 0x1000, 0x1000, CRC(c1b1143f) SHA1(72436840ff72f7f6341b11c43e25107ecb3ebb73) )
+
+ /* No prom supplied - using the one from warofbug */
+ ROM_REGION( 0x0020, "proms", 0 )
+ ROM_LOAD( "warofbug.clr", 0x0000, 0x0020, CRC(8688e64b) SHA1(ed13414257f580b98b50c9892a14159c55e7838d) )
+ROM_END
+
+/* This is sort of playable - no sound, wrong colours. Reboots after defeating the boss. */
+ROM_START( monstrz )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "b-1e.a1", 0x0000, 0x1000, CRC(97886542) SHA1(01f4f9bd55f9eae28162cbb22a26f7cda22cd3f3) )
+ ROM_LOAD( "b-2e.c1", 0x1000, 0x1000, CRC(184ffcb4) SHA1(829d6ca13773aba7c3a81e122171befbe3666110) )
+ ROM_LOAD( "b-3e.d1", 0x2000, 0x1000, CRC(b7b10ac7) SHA1(51d544d4db456df756a95d7f1853fffed9259647) )
+ ROM_LOAD( "b-4e.e1", 0x3000, 0x1000, CRC(fb02c736) SHA1(24466116dd07b856b1afff62b8312c67ff466b95) )
+ ROM_LOAD( "b-5e.g1", 0xc000, 0x1000, CRC(b2788ab9) SHA1(eb1a6b41f4c7a243481bfccf2b068ce1bc292366) )
+ ROM_LOAD( "b-6e.h1", 0xd000, 0x1000, CRC(77d7aa8d) SHA1(62aaf582ba55f7b21f6cf13b4fb6c2c54bb729f5) )
+ // protection
+ ROM_FILL(0xc5d8,1,0)
+ ROM_FILL(0xc5fc,1,0)
+ ROM_FILL(0xc624,1,0)
+ ROM_FILL(0xc63c,1,0)
+ // fill the protection ram with RET so we don't run into the weeds.
+ ROM_FILL(0x3800,0x800,0xc9)
+ // enable attract mode
+ ROM_FILL(0x3918, 1, 0xC5)
+ ROM_FILL(0x3919, 1, 0xE5)
+ ROM_FILL(0x391A, 1, 0xF5)
+ ROM_FILL(0x391B, 1, 0x21)
+ ROM_FILL(0x391C, 1, 0x10)
+ ROM_FILL(0x391D, 1, 0x41)
+ ROM_FILL(0x391E, 1, 0xAF)
+ ROM_FILL(0x391F, 1, 0x06)
+ ROM_FILL(0x3920, 1, 0x08)
+ ROM_FILL(0x3921, 1, 0xAE)
+ ROM_FILL(0x3922, 1, 0x23)
+ ROM_FILL(0x3923, 1, 0x10)
+ ROM_FILL(0x3924, 1, 0xFC)
+ ROM_FILL(0x3925, 1, 0xFE)
+ ROM_FILL(0x3926, 1, 0x40)
+ ROM_FILL(0x3927, 1, 0x20)
+ ROM_FILL(0x3928, 1, 0x03)
+ ROM_FILL(0x3929, 1, 0x32)
+ ROM_FILL(0x392A, 1, 0x12)
+ ROM_FILL(0x392B, 1, 0x41)
+ ROM_FILL(0x392C, 1, 0xF1)
+ ROM_FILL(0x392D, 1, 0xE1)
+ ROM_FILL(0x392E, 1, 0xC1)
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "a-1e.k1", 0x0000, 0x1000, CRC(b88ba44e) SHA1(85c141fb411d541b1e20412f5fefd18395f635ae) )
+ ROM_LOAD( "a-2.k2", 0x1000, 0x1000, CRC(8913c94e) SHA1(6c4fe065217a234d45761f8ad4d2c4e7078a0abd) )
+ ROM_LOAD( "a-3e.k3", 0x2000, 0x1000, CRC(a8fa5095) SHA1(5cabe5497a79a0c43e78a84ae87c824af60a2a3f) )
+ ROM_LOAD( "a-4.k4", 0x3000, 0x1000, CRC(93f81317) SHA1(167708be94cb9a47290067a20bc5ff6f018b93b6) )
+
+ ROM_REGION( 0x10000, "audio2", 0 )
+ ROM_LOAD( "a-5e.k5", 0x0000, 0x1000, CRC(b5bcdb4e) SHA1(db0965e5636e0f4e9cd4f4a7d808c413ecf733db) )
+ ROM_LOAD( "a-6.k6", 0x1000, 0x1000, CRC(24832b2e) SHA1(2a67888e86ce1a3182303e841513ba2a07977359) )
+ ROM_LOAD( "a-7e.k7", 0x2000, 0x1000, CRC(20ebea81) SHA1(473c688365b256d8593663ff95768f4a5bb1289d) )
+ // 0x3000 empty ?
+ ROM_LOAD( "a-8.k8", 0x4000, 0x1000, CRC(b833a15b) SHA1(0d21aaa0ca5ccba89118b205a6b3b36b15663c47) )
+ ROM_LOAD( "a-9.k9", 0x5000, 0x1000, CRC(cbd76ec2) SHA1(9434350ee93ca71efe78018b69913386353306ff) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "b-7e.a5", 0x0000, 0x1000, CRC(ddd4158d) SHA1(9701e2d8a0226455dfbed650e58bb4be05918fe8) )
+ ROM_LOAD( "b-8e.c5", 0x1000, 0x1000, CRC(b1331b4c) SHA1(fa1af406ecd6919b4846aea68d3edb70106f9273) )
+
+ ROM_REGION( 0x0020, "proms", 0 )
+ ROM_LOAD( "prom.g9", 0x0000, 0x0020, CRC(b7ea00d7) SHA1(f658c6ac8123ae1e6b68ae513cc02c4d9d2b4e47) )
+ROM_END
+
+
+/***************************************************************************
+
+ Game driver(s)
+
+***************************************************************************/
+
+
+// Year romname parent machine inputs init rot
+
+/* Frogger */
+GAME( 1981, kazzy, frogger, frogger, frogger, galaxian_state, frogger, ROT90, "Kazzy", "K-azzy", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, trukker, frogger, frogger, frogger, galaxian_state, trukker, ROT90, "Grimlick","Trukker", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, tst_frog, frogger, tst_frog, frogger, galaxian_state, frogger, ROT90, "msmcdoug", "Test Rom - Frogger Sound Test", MACHINE_SUPPORTS_SAVE )
+
+
+/* Amidar */
+GAME( 2007, amidarf, amidar, turtles, amidar, galaxian_state, turtles, ROT90, "Arkatrad", "Amidar (French)", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, amidargr, amidar, turtles, amidar, galaxian_state, turtles, ROT90, "GreekRoms", "Amidar (Greek)", MACHINE_SUPPORTS_SAVE )
+
+
+/* Scramble */
+GAME( 1998, offender, scramble, scramble, scramble, galaxian_state, scramble, ROT90, "Chris Henry", "Offender", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, superdog, scramble, scramble, scramble, galaxian_state, scramble, ROT90, "Jerky", "Superdog", MACHINE_SUPPORTS_SAVE )
+
+
+/* Galaxian */
+GAME( 1979, andromd, galnamco, galaxian, superg, galaxian_state, galaxian, ROT90, "hack", "Andromeda", MACHINE_SUPPORTS_SAVE)
+GAME( 1998, buglaxn, galnamco, galaxian, galaxian, galaxian_state, galaxian, ROT90, "The Dog", "Galaxian (Bug sprites)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, galaxiab, galnamco, galaxian, galaxiab, galaxian_state, galaxian, ROT90, "bootleg", "Galaxian", MACHINE_SUPPORTS_SAVE )
+GAME( 1979, galaxkyo, galnamco, galaxian, superg, galaxian_state, galaxian, ROT90, "hack", "Galaxian (Kyoko)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, galaxni, galnamco, galaxian, superg, galaxian_state, galaxian, ROT90, "Petaco S.A.", "Galaxian (New Invasion)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, galinvad, galnamco, galaxian, galaxian, galaxian_state, galaxian, ROT90, "T-Bone", "Galaxian (Space Invaders sprites)", MACHINE_SUPPORTS_SAVE )
+GAME( 1979, galnamco, 0, galaxian, galaxian, galaxian_state, galaxian, ROT90, "Namco", "Galaxians", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, gaylaxn, galnamco, galaxian, superg, galaxian_state, galaxian, ROT90, "The Dog", "Gaylaxian", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, mrdonm, 0, galaxian, mrdonm, galaxian_state, galaxian, ROT90, "Krazy Ivan", "Mr. Do Nightmare", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, vectrgal, galnamco, galaxian, galaxian, galaxian_state, galaxian, ROT90, "T-Bone", "Galaxian (Vector Sim)", MACHINE_SUPPORTS_SAVE )
+
+
+/* Moon Cresta */
+GAME( 2000, mooncmst, mooncrst, mooncrst, mooncrst, galaxian_state, mooncrst, ROT90, "Kazzy", "Moon Creamsta", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, mooncrs5, mooncrst, mooncrst, mooncrst, galaxian_state, mooncrsu, ROT90, "bootleg", "Moon Cresta", MACHINE_SUPPORTS_SAVE )
+
+
+/* Multigames */
+GAME( 2002, fourplay, 0, fourplay, galaxian, galaxian_state, fourplay, ROT90, "Macro", "Four Play", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, videight, 0, videight, warofbug, galaxian_state, videight, ROT90, "Macro", "Video Eight", MACHINE_SUPPORTS_SAVE )
+
+
+/* Other */
+GAME( 1981, jumpbugx, 0, jumpbugx, jumpbug, galaxian_state, jumpbug, ROT90, "Rock-ola", "Jump Bug (Extra Sounds)", MACHINE_SUPPORTS_SAVE )
+GAME( 1982, monstrz, 0, sfx, sfx, galaxian_state, sfx, ORIENTATION_FLIP_X, "Nihon Game Co", "Monster Zero", MACHINE_UNEMULATED_PROTECTION | MACHINE_NO_SOUND | MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE )
+GAME( 19??, starfgh2, pisces, galaxian, piscesb, galaxian_state, pisces, ROT90, "bootleg", "Starfighter II", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, wbeast, 0, galaxian, warofbug, galaxian_state, nolock, ROT90, "Compost", "Wriggly Beasties", MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/gauntlet.cpp b/src/hbmame/drivers/gauntlet.cpp
new file mode 100644
index 00000000000..d70bc01cf75
--- /dev/null
+++ b/src/hbmame/drivers/gauntlet.cpp
@@ -0,0 +1,139 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/gauntlet.cpp"
+
+
+// There's some unknown hacks here. Need info on who the author is, and what the difference is.
+
+
+ROM_START( gaunt2s )
+ ROM_REGION( 0x80000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "136037-1307.9a", 0x000000, 0x008000, CRC(46fe8743) SHA1(d5fa19e028a2f43658330c67c10e0c811d332780) )
+ ROM_LOAD16_BYTE( "136037-1308.9b", 0x000001, 0x008000, CRC(276e15c4) SHA1(7467b2ec21b1b4fcc18ff9387ce891495f4b064c) )
+ ROM_LOAD16_BYTE( "136043-1105.10a", 0x038000, 0x004000, CRC(45dfda47) SHA1(a9a03150f5a0ad6ce62c5cfdffb4a9f54340590c) )
+ ROM_LOAD16_BYTE( "136043-1106.10b", 0x038001, 0x004000, CRC(343c029c) SHA1(d2df4e5b036500dcc537a1e0025abb2a8c730bdd) )
+ ROM_LOAD16_BYTE( "gaunt2s-1109.7a", 0x040000, 0x008000, CRC(32c909b4) SHA1(53c62d7a6660ccff4302ae9b8edcbe2949013e5e) )
+ ROM_LOAD16_BYTE( "gaunt2s-1110.7b", 0x040001, 0x008000, CRC(a1a2ac12) SHA1(bd939cf97f8c4d52bedc475ee1ce00c226aee234) )
+ ROM_LOAD16_BYTE( "136043-1121.6a", 0x050000, 0x008000, CRC(ae301bba) SHA1(3d93236aaffe6ef692e5073b1828633e8abf0ce4) )
+ ROM_LOAD16_BYTE( "136043-1122.6b", 0x050001, 0x008000, CRC(e94aaa8a) SHA1(378c582c360440b808820bcd3be78ec6e8800c34) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "136043-1120.16r", 0x004000, 0x004000, CRC(5c731006) SHA1(045ad571db34ef870b1bf003e77eea403204f55b) )
+ ROM_LOAD( "136043-1119.16s", 0x008000, 0x008000, CRC(dc3591e7) SHA1(6d0d8493609974bd5a63be858b045fe4db35d8df) )
+
+ ROM_REGION( 0x04000, "gfx1", 0 )
+ ROM_LOAD( "136043-1104.6p", 0x000000, 0x002000, CRC(1343cf6f) SHA1(4a9542bc8ede305e7e8f860eb4b47ca2f3017275) )
+
+ ROM_REGION( 0x60000, "gfx2", ROMREGION_INVERT )
+ ROM_LOAD( "136043-1111.1a", 0x000000, 0x008000, CRC(09df6e23) SHA1(726984275c6a338c12ec0c4cc449f92f4a7a138c) )
+ ROM_LOAD( "136037-112.1b", 0x008000, 0x008000, CRC(869330be) SHA1(5dfaaf54ee2b3c0eaf35e8c17558313db9791616) )
+ ROM_LOAD( "136043-1123.1c", 0x010000, 0x004000, CRC(e4c98f01) SHA1(a24bece3196d13c38e4acdbf62783860253ba67d) )
+ ROM_RELOAD( 0x014000, 0x004000 )
+ ROM_LOAD( "136043-1113.1l", 0x018000, 0x008000, CRC(33cb476e) SHA1(e0757ee0120de2d38be44f8dc8702972c35b87b3) )
+ ROM_LOAD( "136037-114.1mn", 0x020000, 0x008000, CRC(29ef9882) SHA1(91e1465af6505b35cd97434c13d2b4d40a085946) )
+ ROM_LOAD( "136043-1124.1p", 0x028000, 0x004000, CRC(c4857879) SHA1(3b4ce96da0d178b4bc2d05b5b51b42c7ec461113) )
+ ROM_RELOAD( 0x02c000, 0x004000 )
+ ROM_LOAD( "136043-1115.2a", 0x030000, 0x008000, CRC(f71e2503) SHA1(244e108668eaef6b64c6ff733b08b9ee6b7a2d2b) )
+ ROM_LOAD( "136037-116.2b", 0x038000, 0x008000, CRC(11e0ac5b) SHA1(729b7561d59d94ef33874a134b97bcd37573dfa6) )
+ ROM_LOAD( "136043-1125.2c", 0x040000, 0x004000, CRC(d9c2c2d1) SHA1(185e38c75c06b6ca131a17ee3a46098279bfe17e) )
+ ROM_RELOAD( 0x044000, 0x004000 )
+ ROM_LOAD( "136043-1117.2l", 0x048000, 0x008000, CRC(9e30b2e9) SHA1(e9b513089eaf3bec269058b437fefe7075a3fd6f) )
+ ROM_LOAD( "136037-118.2mn", 0x050000, 0x008000, CRC(8bf3b263) SHA1(683d900ab7591ee661218be2406fb375a12e435c) )
+ ROM_LOAD( "136043-1126.2p", 0x058000, 0x004000, CRC(a32c732a) SHA1(abe801dff7bb3f2712e2189c2b91f172d941fccd) )
+ ROM_RELOAD( 0x05c000, 0x004000 )
+
+ ROM_REGION( 0x500, "proms", 0 )
+ ROM_LOAD( "74s472-136037-101.7u", 0x000, 0x200, CRC(2964f76f) SHA1(da966c35557ec1b95e1c39cd950c38a19bce2d67) )
+ ROM_LOAD( "74s472-136037-102.5l", 0x200, 0x200, CRC(4d4fec6c) SHA1(3541b5c6405ad5742a3121dfd6acb227933de25a) )
+ ROM_LOAD( "74s287-136037-103.4r", 0x400, 0x100, CRC(6c5ccf08) SHA1(ff5dbadd85aa2e07b383a302fa399e875db8f84f) )
+ROM_END
+
+ROM_START( gaunt2ls )
+ ROM_REGION( 0x80000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "136037-1307.9a", 0x000000, 0x008000, CRC(46fe8743) SHA1(d5fa19e028a2f43658330c67c10e0c811d332780) )
+ ROM_LOAD16_BYTE( "136037-1308.9b", 0x000001, 0x008000, CRC(276e15c4) SHA1(7467b2ec21b1b4fcc18ff9387ce891495f4b064c) )
+ ROM_LOAD16_BYTE( "136043-1105ls.10a", 0x038000, 0x004000, CRC(5426ab98) SHA1(7894b0ca989428819a9ed3e9a218eb466c167ecf) )
+ ROM_LOAD16_BYTE( "136043-1106ls.10b", 0x038001, 0x004000, CRC(b53cd674) SHA1(9dfd2b2e384c2e4d2640852a05c07765cc2f246a) )
+ ROM_LOAD16_BYTE( "136043-1109.7a", 0x040000, 0x008000, CRC(58a0a9a3) SHA1(7f51184840e3c96574836b8a00bfb4a7a5f508d0) )
+ ROM_LOAD16_BYTE( "136043-1110.7b", 0x040001, 0x008000, CRC(658f0da8) SHA1(dfce027ea50188659907be698aeb26f9d8bfab23) )
+ ROM_LOAD16_BYTE( "136043-1121.6a", 0x050000, 0x008000, CRC(ae301bba) SHA1(3d93236aaffe6ef692e5073b1828633e8abf0ce4) )
+ ROM_LOAD16_BYTE( "136043-1122.6b", 0x050001, 0x008000, CRC(e94aaa8a) SHA1(378c582c360440b808820bcd3be78ec6e8800c34) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "136043-1120.16r", 0x004000, 0x004000, CRC(5c731006) SHA1(045ad571db34ef870b1bf003e77eea403204f55b) )
+ ROM_LOAD( "136043-1119.16s", 0x008000, 0x008000, CRC(dc3591e7) SHA1(6d0d8493609974bd5a63be858b045fe4db35d8df) )
+
+ ROM_REGION( 0x04000, "gfx1", 0 )
+ ROM_LOAD( "136043-1104.6p", 0x000000, 0x002000, CRC(1343cf6f) SHA1(4a9542bc8ede305e7e8f860eb4b47ca2f3017275) )
+
+ ROM_REGION( 0x60000, "gfx2", ROMREGION_INVERT )
+ ROM_LOAD( "136043-1111.1a", 0x000000, 0x008000, CRC(09df6e23) SHA1(726984275c6a338c12ec0c4cc449f92f4a7a138c) )
+ ROM_LOAD( "136037-112.1b", 0x008000, 0x008000, CRC(869330be) SHA1(5dfaaf54ee2b3c0eaf35e8c17558313db9791616) )
+ ROM_LOAD( "136043-1123.1c", 0x010000, 0x004000, CRC(e4c98f01) SHA1(a24bece3196d13c38e4acdbf62783860253ba67d) )
+ ROM_RELOAD( 0x014000, 0x004000 )
+ ROM_LOAD( "136043-1113.1l", 0x018000, 0x008000, CRC(33cb476e) SHA1(e0757ee0120de2d38be44f8dc8702972c35b87b3) )
+ ROM_LOAD( "136037-114.1mn", 0x020000, 0x008000, CRC(29ef9882) SHA1(91e1465af6505b35cd97434c13d2b4d40a085946) )
+ ROM_LOAD( "136043-1124.1p", 0x028000, 0x004000, CRC(c4857879) SHA1(3b4ce96da0d178b4bc2d05b5b51b42c7ec461113) )
+ ROM_RELOAD( 0x02c000, 0x004000 )
+ ROM_LOAD( "136043-1115.2a", 0x030000, 0x008000, CRC(f71e2503) SHA1(244e108668eaef6b64c6ff733b08b9ee6b7a2d2b) )
+ ROM_LOAD( "136037-116.2b", 0x038000, 0x008000, CRC(11e0ac5b) SHA1(729b7561d59d94ef33874a134b97bcd37573dfa6) )
+ ROM_LOAD( "136043-1125.2c", 0x040000, 0x004000, CRC(d9c2c2d1) SHA1(185e38c75c06b6ca131a17ee3a46098279bfe17e) )
+ ROM_RELOAD( 0x044000, 0x004000 )
+ ROM_LOAD( "136043-1117.2l", 0x048000, 0x008000, CRC(9e30b2e9) SHA1(e9b513089eaf3bec269058b437fefe7075a3fd6f) )
+ ROM_LOAD( "136037-118.2mn", 0x050000, 0x008000, CRC(8bf3b263) SHA1(683d900ab7591ee661218be2406fb375a12e435c) )
+ ROM_LOAD( "136043-1126.2p", 0x058000, 0x004000, CRC(a32c732a) SHA1(abe801dff7bb3f2712e2189c2b91f172d941fccd) )
+ ROM_RELOAD( 0x05c000, 0x004000 )
+
+ ROM_REGION( 0x500, "proms", 0 )
+ ROM_LOAD( "74s472-136037-101.7u", 0x000, 0x200, CRC(2964f76f) SHA1(da966c35557ec1b95e1c39cd950c38a19bce2d67) )
+ ROM_LOAD( "74s472-136037-102.5l", 0x200, 0x200, CRC(4d4fec6c) SHA1(3541b5c6405ad5742a3121dfd6acb227933de25a) )
+ ROM_LOAD( "74s287-136037-103.4r", 0x400, 0x100, CRC(6c5ccf08) SHA1(ff5dbadd85aa2e07b383a302fa399e875db8f84f) )
+ROM_END
+
+ROM_START( gaunt2f )
+ ROM_REGION( 0x80000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "136037-1307.9a", 0x000000, 0x008000, CRC(46fe8743) SHA1(d5fa19e028a2f43658330c67c10e0c811d332780) )
+ ROM_LOAD16_BYTE( "136037-1308.9b", 0x000001, 0x008000, CRC(276e15c4) SHA1(7467b2ec21b1b4fcc18ff9387ce891495f4b064c) )
+ ROM_LOAD16_BYTE( "136043-1105.10a", 0x038000, 0x004000, CRC(45dfda47) SHA1(a9a03150f5a0ad6ce62c5cfdffb4a9f54340590c) )
+ ROM_LOAD16_BYTE( "136043-1106.10b", 0x038001, 0x004000, CRC(343c029c) SHA1(d2df4e5b036500dcc537a1e0025abb2a8c730bdd) )
+ ROM_LOAD16_BYTE( "136043-1109.7a", 0x040000, 0x008000, CRC(58a0a9a3) SHA1(7f51184840e3c96574836b8a00bfb4a7a5f508d0) )
+ ROM_LOAD16_BYTE( "136043-1110.7b", 0x040001, 0x008000, CRC(658f0da8) SHA1(dfce027ea50188659907be698aeb26f9d8bfab23) )
+ ROM_LOAD16_BYTE( "136043-1121.6a", 0x050000, 0x008000, CRC(ae301bba) SHA1(3d93236aaffe6ef692e5073b1828633e8abf0ce4) )
+ ROM_LOAD16_BYTE( "136043-1122.6b", 0x050001, 0x008000, CRC(e94aaa8a) SHA1(378c582c360440b808820bcd3be78ec6e8800c34) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "136043-1120.16r", 0x004000, 0x004000, CRC(5c731006) SHA1(045ad571db34ef870b1bf003e77eea403204f55b) )
+ ROM_LOAD( "136043-1119.16s", 0x008000, 0x008000, CRC(dc3591e7) SHA1(6d0d8493609974bd5a63be858b045fe4db35d8df) )
+
+ ROM_REGION( 0x04000, "gfx1", 0 )
+ ROM_LOAD( "gaunt2f.6p", 0x000000, 0x004000, CRC(d101905d) SHA1(6f50a84f4d263a7a459b642fa49a619e877535b6) )
+
+ ROM_REGION( 0x60000, "gfx2", ROMREGION_INVERT )
+ ROM_LOAD( "136043-1111.1a", 0x000000, 0x008000, CRC(09df6e23) SHA1(726984275c6a338c12ec0c4cc449f92f4a7a138c) )
+ ROM_LOAD( "136037-112.1b", 0x008000, 0x008000, CRC(869330be) SHA1(5dfaaf54ee2b3c0eaf35e8c17558313db9791616) )
+ ROM_LOAD( "136043-1123.1c", 0x010000, 0x004000, CRC(e4c98f01) SHA1(a24bece3196d13c38e4acdbf62783860253ba67d) )
+ ROM_RELOAD( 0x014000, 0x004000 )
+ ROM_LOAD( "136043-1113.1l", 0x018000, 0x008000, CRC(33cb476e) SHA1(e0757ee0120de2d38be44f8dc8702972c35b87b3) )
+ ROM_LOAD( "136037-114.1mn", 0x020000, 0x008000, CRC(29ef9882) SHA1(91e1465af6505b35cd97434c13d2b4d40a085946) )
+ ROM_LOAD( "136043-1124.1p", 0x028000, 0x004000, CRC(c4857879) SHA1(3b4ce96da0d178b4bc2d05b5b51b42c7ec461113) )
+ ROM_RELOAD( 0x02c000, 0x004000 )
+ ROM_LOAD( "136043-1115.2a", 0x030000, 0x008000, CRC(f71e2503) SHA1(244e108668eaef6b64c6ff733b08b9ee6b7a2d2b) )
+ ROM_LOAD( "136037-116.2b", 0x038000, 0x008000, CRC(11e0ac5b) SHA1(729b7561d59d94ef33874a134b97bcd37573dfa6) )
+ ROM_LOAD( "136043-1125.2c", 0x040000, 0x004000, CRC(d9c2c2d1) SHA1(185e38c75c06b6ca131a17ee3a46098279bfe17e) )
+ ROM_RELOAD( 0x044000, 0x004000 )
+ ROM_LOAD( "136043-1117.2l", 0x048000, 0x008000, CRC(9e30b2e9) SHA1(e9b513089eaf3bec269058b437fefe7075a3fd6f) )
+ ROM_LOAD( "136037-118.2mn", 0x050000, 0x008000, CRC(8bf3b263) SHA1(683d900ab7591ee661218be2406fb375a12e435c) )
+ ROM_LOAD( "136043-1126.2p", 0x058000, 0x004000, CRC(a32c732a) SHA1(abe801dff7bb3f2712e2189c2b91f172d941fccd) )
+ ROM_RELOAD( 0x05c000, 0x004000 )
+
+ ROM_REGION( 0x500, "proms", 0 )
+ ROM_LOAD( "74s472-136037-101.7u", 0x000, 0x200, CRC(2964f76f) SHA1(da966c35557ec1b95e1c39cd950c38a19bce2d67) )
+ ROM_LOAD( "74s472-136037-102.5l", 0x200, 0x200, CRC(4d4fec6c) SHA1(3541b5c6405ad5742a3121dfd6acb227933de25a) )
+ ROM_LOAD( "gaunt2f.4r", 0x400, 0x100, CRC(32ae1fa9) SHA1(09eb56a0798456d73015909973ce2ba9660c1164) )
+ROM_END
+
+
+
+GAME( 1987, gaunt2s, gaunt2, gauntlet2, gauntlet, gauntlet_state, gauntlet, ROT0, "Todd Bordelon", "Gauntlet II Speed Hack", MACHINE_SUPPORTS_SAVE ) // http://www.ionpool.net/arcade/gauntlet/hacks.html
+GAME( 1988, gaunt2ls, gaunt2, gauntlet2, gauntlet, gauntlet_state, gauntlet, ROT0, "Carl Lloyd-Parker", "Gauntlet II New Levels", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, gaunt2f, gaunt2, gauntlet2, gauntlet, gauntlet_state, gauntlet, ROT0, "hack", "Gauntlet II (graphics hack)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/gottlieb.cpp b/src/hbmame/drivers/gottlieb.cpp
new file mode 100644
index 00000000000..bdc19e66bed
--- /dev/null
+++ b/src/hbmame/drivers/gottlieb.cpp
@@ -0,0 +1,99 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/gottlieb.cpp"
+
+ROM_START( 711qbert )
+ ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */
+ ROM_LOAD( "mqb-rom2.bin", 0xa000, 0x2000, CRC(6860f957) SHA1(ebd68aeb6d54868295bd20cf64ee0187a52df0e3) )
+ ROM_LOAD( "mqb-rom1.bin", 0xc000, 0x2000, CRC(11f0a4e4) SHA1(a805e51c40042fae209ace277abd9b35a990905b) )
+ ROM_LOAD( "mqb-rom0.bin", 0xe000, 0x2000, CRC(12a90cb2) SHA1(a33203aea79fe43d1233a16e3fdddaceac6e4a20) )
+
+ ROM_REGION( 0x10000, "r1sound:audiocpu", 0 ) /* 64k for sound cpu */
+ ROM_LOAD( "mqb-snd1.bin", 0xf000, 0x0800, CRC(e704b450) SHA1(d509f54658e9f0264b9ab865a6f36e5423a28904) )
+ ROM_RELOAD( 0x7000, 0x0800 ) /* A15 is not decoded */
+ ROM_LOAD( "mqb-snd2.bin", 0xf800, 0x0800, CRC(c6a98bf8) SHA1(cc5b5bb5966f5d79226f1f665a3f9fc934f4ef7f) )
+ ROM_RELOAD( 0x7800, 0x0800 ) /* A15 is not decoded */
+
+ ROM_REGION( 0x2000, "bgtiles", 0 )
+ ROM_LOAD( "qb-bg0.bin", 0x0000, 0x1000, CRC(7a9ba824) SHA1(12aa6df499eb6996ee35f56acac403ff6290f844) ) /* chars */
+ ROM_LOAD( "qb-bg1.bin", 0x1000, 0x1000, CRC(22e5b891) SHA1(5bb67e333255c0ea679ab4312256a8a71a950db8) )
+
+ ROM_REGION( 0x8000, "sprites", 0 )
+ ROM_LOAD( "mqb-fg3.bin", 0x0000, 0x2000, CRC(ee595eda) SHA1(11777d95ba79bd0ec7b964b76c1dc129db857816) ) /* sprites */
+ ROM_LOAD( "mqb-fg2.bin", 0x2000, 0x2000, CRC(59884c78) SHA1(5e77ef46ccd55f79a5fa90521baa7c22e3783fe5) )
+ ROM_LOAD( "mqb-fg1.bin", 0x4000, 0x2000, CRC(2a60e3ad) SHA1(9ed83017f6c8e44337ad76c68b095f2c3300aadb) )
+ ROM_LOAD( "mqb-fg0.bin", 0x6000, 0x2000, CRC(b11ad9d8) SHA1(5264598f33aa76455ae4107d0f265c2a372ed67a) )
+ROM_END
+
+ROM_START( pbert )
+ ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */
+ ROM_LOAD( "qb-rom2.bin", 0xa000, 0x2000, CRC(fe434526) SHA1(4cfc5d52dd6c82163e035af82d6112c0c93a3797) )
+ ROM_LOAD( "qb-rom1.bin", 0xc000, 0x2000, CRC(55635447) SHA1(ca6acdef1c9e06b33efe1f0a2df2dfb03723cfbe) )
+ ROM_LOAD( "qb-rom0.bin", 0xe000, 0x2000, CRC(8e318641) SHA1(7f8f66d1e6a7905e93cce07fc92e8801370b7194) )
+
+ ROM_REGION( 0x10000, "r1sound:audiocpu", 0 ) /* 64k for sound cpu */
+ ROM_LOAD( "qb-snd1.bin", 0xf000, 0x800, CRC(15787c07) SHA1(8b7d03fbf2ebaa71b3a7e2f636a0d1bb9b796e43) )
+ ROM_RELOAD( 0x7000, 0x800 ) /* A15 is not decoded */
+ ROM_LOAD( "qb-snd2.bin", 0xf800, 0x800, CRC(58437508) SHA1(09d8053e7e99679b602dcda230d64db7fe6cb7f5) )
+ ROM_RELOAD( 0x7800, 0x800 ) /* A15 is not decoded */
+
+ ROM_REGION( 0x2000, "bgtiles", 0 )
+ ROM_LOAD( "pb-bg0.bin", 0x0000, 0x1000, CRC(14e193e9) SHA1(5d67b3da848d4a90a4f9bf7f6145ce1aa33188f7) ) /* chars */
+ ROM_LOAD( "pb-bg1.bin", 0x1000, 0x1000, CRC(a91180f9) SHA1(c8a3ceae19afe9a0ad1e05bed99585e6bacbc09b) )
+
+ ROM_REGION( 0x8000, "sprites", 0 )
+ ROM_LOAD( "pb-fg3.bin", 0x0000, 0x2000, CRC(26def34c) SHA1(b36dd87e4c36d201aaec0c283e5f3d1ad4056d5d) ) /* sprites */
+ ROM_LOAD( "pb-fg2.bin", 0x2000, 0x2000, CRC(cf3309ca) SHA1(5be9a28b3681990729f0582f9d2c3dd0314bdd15) )
+ ROM_LOAD( "pb-fg1.bin", 0x4000, 0x2000, CRC(a5f3a203) SHA1(4d7d45e5ba87acd8c44421f2c7fb2129a1866f03) )
+ ROM_LOAD( "pb-fg0.bin", 0x6000, 0x2000, CRC(495d90e9) SHA1(d4d28c30901eb09da8933c03b2178152f0fc7b84) )
+ROM_END
+
+// E444
+ROM_START( qbertb )
+ ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */
+ ROM_LOAD( "qb-rom2.bin", 0xa000, 0x2000, CRC(fe434526) SHA1(4cfc5d52dd6c82163e035af82d6112c0c93a3797) )
+ ROM_LOAD( "qb-rom1.bin", 0xc000, 0x2000, CRC(55635447) SHA1(ca6acdef1c9e06b33efe1f0a2df2dfb03723cfbe) )
+ ROM_LOAD( "qbertb.rom0", 0xe000, 0x2000, CRC(415b4fc7) SHA1(e55fb1912260435be253597fd337e04219b7a034) )
+
+ ROM_REGION( 0x10000, "r1sound:audiocpu", 0 ) /* 64k for sound cpu */
+ ROM_LOAD( "qbertb.snd", 0xf000, 0x1000, CRC(ebcedba9) SHA1(94aee8e32bdc80bbc5dc1423ca97597bdb9d808c) )
+ ROM_RELOAD( 0x7000, 0x1000 ) /* A15 is not decoded */
+
+ ROM_REGION( 0x2000, "bgtiles", 0 )
+ ROM_LOAD( "qb-bg0.bin", 0x0000, 0x1000, CRC(7a9ba824) SHA1(12aa6df499eb6996ee35f56acac403ff6290f844) ) /* chars */
+ ROM_LOAD( "qb-bg1.bin", 0x1000, 0x1000, CRC(22e5b891) SHA1(5bb67e333255c0ea679ab4312256a8a71a950db8) )
+
+ ROM_REGION( 0x8000, "sprites", 0 )
+ ROM_LOAD( "qbertb.fg3", 0x1000, 0x1000, CRC(983e3e05) SHA1(14f21543c3301b15d179b3864676e76ad5dfcaf8) ) /* sprites */
+ ROM_LOAD( "qbertb.fg2", 0x3000, 0x1000, CRC(b3e6c7bc) SHA1(38e34e8712c5f677fa3fada68bc4c318e9bf7ca6) )
+ ROM_LOAD( "qbertb.fg1", 0x5000, 0x1000, CRC(6733d069) SHA1(3b4ac832f2475d51ae7586d3eb80e355afb64222) )
+ ROM_LOAD( "qbertb.fg0", 0x7000, 0x1000, CRC(3081c200) SHA1(137d95a2a58e2ed4da7145a539d1a1942c80674c) )
+ROM_END
+
+ROM_START( vbert )
+ ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */
+ ROM_LOAD( "qb-rom2.bin", 0xa000, 0x2000, CRC(fe434526) SHA1(4cfc5d52dd6c82163e035af82d6112c0c93a3797) )
+ ROM_LOAD( "qb-rom1.bin", 0xc000, 0x2000, CRC(55635447) SHA1(ca6acdef1c9e06b33efe1f0a2df2dfb03723cfbe) )
+ ROM_LOAD( "qb-rom0.bin", 0xe000, 0x2000, CRC(8e318641) SHA1(7f8f66d1e6a7905e93cce07fc92e8801370b7194) )
+
+ ROM_REGION( 0x10000, "r1sound:audiocpu", 0 ) /* 64k for sound cpu */
+ ROM_LOAD( "qb-snd1.bin", 0xf000, 0x800, CRC(15787c07) SHA1(8b7d03fbf2ebaa71b3a7e2f636a0d1bb9b796e43) )
+ ROM_RELOAD( 0x7000, 0x800 ) /* A15 is not decoded */
+ ROM_LOAD( "qb-snd2.bin", 0xf800, 0x800, CRC(58437508) SHA1(09d8053e7e99679b602dcda230d64db7fe6cb7f5) )
+ ROM_RELOAD( 0x7800, 0x800 ) /* A15 is not decoded */
+
+ ROM_REGION( 0x2000, "bgtiles", 0 )
+ ROM_LOAD( "vb-bg0.bin", 0x0000, 0x1000, CRC(8963b939) SHA1(1416f56938163b4cdc212758eb2c3f6b773c7e32) ) /* chars */
+ ROM_LOAD( "vb-bg1.bin", 0x1000, 0x1000, CRC(96033c96) SHA1(0a5780377bfd3baeeb2d899aa230e503539f7c92) )
+
+ ROM_REGION( 0x8000, "sprites", 0 )
+ ROM_LOAD( "vb-fg3.bin", 0x0000, 0x2000, CRC(8cb4bdb4) SHA1(7b9b626b93daa4d2639a1e87ace61b1d254af96c) ) /* sprites */
+ ROM_LOAD( "vb-fg2.bin", 0x2000, 0x2000, CRC(79883cc3) SHA1(01cfca389021747e2d750fc8bb251abb2d5fe7a8) )
+ ROM_LOAD( "vb-fg1.bin", 0x4000, 0x2000, CRC(b0fe9bd5) SHA1(be2990904efff19adbe18eb674727214ffae9ad3) )
+ ROM_LOAD( "vb-fg0.bin", 0x6000, 0x2000, CRC(4c3db270) SHA1(212f1c353511fb4166a7ad0135dd295a2a16af8d) )
+ROM_END
+
+GAME( 1982, 711qbert, qbert, qbert, qbert, gottlieb_state, qbert, ROT270, "Hack", "7-11 Q*bert", 0 )
+GAME( 2003, pbert, qbert, qbert, qbert, gottlieb_state, qbert, ROT270, "Grand Master Peter", "P*bert", 0 )
+GAME( 1982, qbertb, qbert, qbert, qbert, gottlieb_state, qbert, ROT270, "bootleg", "Q*bert", 0 )
+GAME( 2003, vbert, qbert, qbert, qbert, gottlieb_state, qbert, ROT270, "Grand Master Peter", "V*bert", 0 )
diff --git a/src/hbmame/drivers/ir.cpp b/src/hbmame/drivers/ir.cpp
new file mode 100644
index 00000000000..1258e4dc005
--- /dev/null
+++ b/src/hbmame/drivers/ir.cpp
@@ -0,0 +1,547 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+/****************************************************************************************
+
+ Invader's Revenge
+
+ October, 2008 by Robbbert
+
+ No diagram available, so I threw this together
+
+
+ Invader's Revenge was made by the English company, Zenitone-Microsec Ltd.
+ Distributed in Germany by Dutchford.
+ Also distributed in America by Americade Amusement, Inc., of New Jersey.
+
+ It's basically a hardware hack of the normal Taito Space Invaders machine.
+
+ Changes (start with a Space Invaders with a colour CRT):
+
+ 1. The sound board is replaced with another that makes different sounds.
+
+ 2. A sardine-can-shaped potted black epoxy block containing a 4mhz crystal,
+ two large 40-pin ICs, at least 2 roms, and a number of TTL-shaped chips.
+ My assumption is that one of the big chips is a (slave sound) CPU.
+
+ 3. New main roms
+
+ 4. A small card contains a colour PROM. There's no RAM for this, so the colours
+ must be quite simplistic.
+
+ The main CPU communicates to the slave by sending sound codes via port 3,
+ while port 5 controls various aspects of the screen display.
+
+ The method of enabling cocktail mode is the same as for Space Invaders, that is,
+ changing the positions of SW5,6,7; cutting a track; and adding some jumpers.
+ Obviously this is a once-off change for the table model.
+
+ Known bugs in the original roms:
+
+ 1. If you turn on the machine, start a 1-player game and just let it run to the
+ end, it will congratulate player 2 for getting a high score. Of course, zero
+ points is not a high score, and there wasn't a player 2.
+
+ 2. If you die just after killing the last enemy in the 8th level, the docking
+ stage uses the wrong colour map. I've added a fix for this.
+
+
+ Notes about colour proms:
+
+ 1. The proms from sets 'invrvnga' and 'invrvng3' are the correct ones. The prom
+ from 'invrvng3' is used for the other sets, as their proms haven't shown up yet.
+
+ 2. Real name for 'invrvnga' prom is '3r.bin' ; for 'invrvng3' is 'ir.clr'.
+
+ Todo:
+
+ 1. Identify the slave CPU and make it work.
+ 2. Get schematic diagrams, and design a discrete sound board.
+
+ Changes:
+
+ 1. Added above documentation (MAME doesn't have any)
+ 2. Identified all sound codes. (We only need good samples now)
+
+*******************************************************************************************/
+
+#include "emu.h"
+#include "cpu/i8085/i8085.h"
+#include "machine/mb14241.h"
+#include "sound/samples.h"
+#include "screen.h"
+#include "speaker.h"
+
+#define MW8080BW_MASTER_CLOCK (19968000.0)
+#define MW8080BW_CPU_CLOCK (MW8080BW_MASTER_CLOCK / 10)
+#define MW8080BW_PIXEL_CLOCK (MW8080BW_MASTER_CLOCK / 4)
+#define MW8080BW_HTOTAL (0x140)
+#define MW8080BW_HBEND (0x000)
+#define MW8080BW_HBSTART (0x100)
+#define MW8080BW_VTOTAL (0x106)
+#define MW8080BW_VBEND (0x000)
+#define MW8080BW_VBSTART (0x0e0)
+#define MW8080BW_VCOUNTER_START_NO_VBLANK (0x020)
+#define MW8080BW_VCOUNTER_START_VBLANK (0x0da)
+#define MW8080BW_INT_TRIGGER_COUNT_1 (0x080)
+#define MW8080BW_INT_TRIGGER_VBLANK_1 (0)
+#define MW8080BW_INT_TRIGGER_COUNT_2 MW8080BW_VCOUNTER_START_VBLANK
+#define MW8080BW_INT_TRIGGER_VBLANK_2 (1)
+#define MW8080BW_HPIXCOUNT MW8080BW_HBSTART
+
+class ir_state : public driver_device
+{
+public:
+ ir_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag)
+ , m_maincpu(*this,"maincpu")
+ , m_p_ram(*this, "ram")
+ , m_samples(*this, "samples")
+ , m_screen(*this, "screen")
+ { }
+
+ DECLARE_READ8_MEMBER(mw8080bw_shift_result_rev_r);
+ DECLARE_READ8_MEMBER(mw8080bw_reversable_shift_result_r);
+ DECLARE_WRITE8_MEMBER(mw8080bw_reversable_shift_count_w);
+ DECLARE_READ8_MEMBER(port02_r);
+ DECLARE_WRITE8_MEMBER(port03_w);
+ DECLARE_WRITE8_MEMBER(port05_w);
+ DECLARE_MACHINE_START(ir);
+ DECLARE_MACHINE_RESET(ir);
+ TIMER_CALLBACK_MEMBER(mw8080bw_interrupt_callback);
+ uint32_t screen_update_ir(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+
+private:
+
+ bool m_flip_screen;
+ bool m_screen_red;
+ emu_timer *m_interrupt_timer;
+ uint8_t vpos_to_vysnc_chain_counter( int vpos );
+ int vysnc_chain_counter_to_vpos( uint8_t counter, int vblank );
+ void mw8080bw_create_interrupt_timer( );
+ void mw8080bw_start_interrupt_timer( );
+
+ /* device/memory pointers */
+ required_device<cpu_device> m_maincpu;
+ required_shared_ptr<uint8_t> m_p_ram;
+ required_device<samples_device> m_samples;
+ required_device<screen_device> m_screen;
+};
+
+
+READ8_MEMBER(ir_state::port02_r)
+{
+ uint8_t data = ioport("IN2")->read();
+ if (m_flip_screen) return data;
+ return (data & 0x8f) | (ioport("IN1")->read() & 0x70);
+}
+
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, ir_state )
+ ADDRESS_MAP_GLOBAL_MASK(0x7fff)
+ AM_RANGE(0x0000, 0x1fff) AM_ROM AM_WRITENOP
+ AM_RANGE(0x2000, 0x3fff) AM_MIRROR(0x4000) AM_RAM AM_SHARE("ram")
+ AM_RANGE(0x4000, 0x5fff) AM_ROM AM_WRITENOP
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( invrvnge_io_map, AS_IO, 8, ir_state )
+ AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0")
+ AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
+ AM_RANGE(0x02, 0x02) AM_READ(port02_r) AM_DEVWRITE("mb14241", mb14241_device, shift_count_w)
+ AM_RANGE(0x03, 0x03) AM_DEVREAD("mb14241", mb14241_device, shift_result_r) AM_WRITE(port03_w)
+ AM_RANGE(0x04, 0x04) AM_DEVWRITE("mb14241", mb14241_device, shift_data_w)
+ AM_RANGE(0x05, 0x05) AM_WRITE(port05_w)
+ AM_RANGE(0x06, 0x06) AM_WRITENOP //(watchdog_reset_w)
+ADDRESS_MAP_END
+
+//static ADDRESS_MAP_START( invrvnge_sound_map, AS_PROGRAM, 8, ir_state )
+// ADDRESS_MAP_UNMAP_HIGH
+// AM_RANGE(0x0000, 0xffff) AM_ROM // dummy prg map, TODO: decrypt ROM
+//ADDRESS_MAP_END
+
+
+static INPUT_PORTS_START( ir )
+ PORT_START("IN0")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_DIPNAME( 0x06, 0x00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:5,6")
+ PORT_DIPSETTING( 0x00, DEF_STR( Easy ) ) // [code: 0x3b1-3b5]
+ PORT_DIPSETTING( 0x02, DEF_STR( Hard ) )
+ PORT_DIPSETTING( 0x04, DEF_STR( Harder ) )
+ PORT_DIPSETTING( 0x06, DEF_STR( Hardest ) )
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN ) // must be low or game won't boot [code: 0x1a9-1af]
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_DIPNAME( 0x80, 0x80, "Fuel Destroyed by Comet" ) PORT_DIPLOCATION("SW1:7")
+ PORT_DIPSETTING( 0x00, "3" )
+ PORT_DIPSETTING( 0x80, "6" )
+ //PORT_DIPNAME( 0x80, 0x00, "Fuel Usage" ) // [code: 0x1cb0-1cb6]
+ //PORT_DIPSETTING( 0x80, "Fast" )
+ //PORT_DIPSETTING( 0x00, "Slow" )
+
+ PORT_START("IN1")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 )
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 )
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 )
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) // [code: 0x750-75B] causes this switch to be ineffective
+
+ PORT_START("IN2")
+ PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:1,2")
+ PORT_DIPSETTING( 0x00, "3" )
+ PORT_DIPSETTING( 0x01, "4" )
+ PORT_DIPSETTING( 0x02, "5" )
+ PORT_DIPSETTING( 0x03, "6" )
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_TILT )
+ PORT_DIPNAME( 0x08, 0x08, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW1:4")
+ PORT_DIPSETTING( 0x00, "1500" ) // [code: 0x3b9-3c9]
+ PORT_DIPSETTING( 0x08, "2000" )
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2)
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(2)
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(2)
+ PORT_DIPNAME( 0x80, 0x00, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:8")
+ PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) ) // 1 play 10p, 2 play 20p, 6 play 50p
+ PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) ) // 1 play 20p, 2 play 40p, 3 play 50p
+
+ PORT_START("CAB")
+ PORT_CONFNAME( 0x01, 0x00, DEF_STR( Cabinet ) )
+ PORT_CONFSETTING( 0x00, DEF_STR( Upright ) )
+ PORT_CONFSETTING( 0x01, DEF_STR( Cocktail ) )
+INPUT_PORTS_END
+
+uint8_t ir_state::vpos_to_vysnc_chain_counter( int vpos )
+{
+ /* convert from a vertical position to the actual values on the vertical sync counters */
+ uint8_t counter;
+ int vblank = (vpos >= MW8080BW_VBSTART);
+
+ if (vblank)
+ counter = vpos - MW8080BW_VBSTART + MW8080BW_VCOUNTER_START_VBLANK;
+ else
+ counter = vpos + MW8080BW_VCOUNTER_START_NO_VBLANK;
+
+ return counter;
+}
+
+
+int ir_state::vysnc_chain_counter_to_vpos( uint8_t counter, int vblank )
+{
+ /* convert from the vertical sync counters to an actual vertical position */
+ int vpos;
+
+ if (vblank)
+ vpos = counter - MW8080BW_VCOUNTER_START_VBLANK + MW8080BW_VBSTART;
+ else
+ vpos = counter - MW8080BW_VCOUNTER_START_NO_VBLANK;
+
+ return vpos;
+}
+
+
+TIMER_CALLBACK_MEMBER(ir_state::mw8080bw_interrupt_callback)
+{
+ uint8_t next_counter;
+ int next_vpos;
+ int next_vblank;
+
+ /* compute vector and set the interrupt line */
+ int vpos = m_screen->vpos();
+ uint8_t counter = vpos_to_vysnc_chain_counter(vpos);
+ uint8_t vector = 0xc7 | ((counter & 0x40) >> 2) | ((~counter & 0x40) >> 3);
+ m_maincpu->set_input_line_and_vector(0, HOLD_LINE, vector);
+
+ /* set up for next interrupt */
+ if (counter == MW8080BW_INT_TRIGGER_COUNT_1)
+ {
+ next_counter = MW8080BW_INT_TRIGGER_COUNT_2;
+ next_vblank = MW8080BW_INT_TRIGGER_VBLANK_2;
+ }
+ else
+ {
+ next_counter = MW8080BW_INT_TRIGGER_COUNT_1;
+ next_vblank = MW8080BW_INT_TRIGGER_VBLANK_1;
+ }
+
+ next_vpos = vysnc_chain_counter_to_vpos(next_counter, next_vblank);
+ m_interrupt_timer->adjust(m_screen->time_until_pos(next_vpos));
+}
+
+
+void ir_state::mw8080bw_create_interrupt_timer( )
+{
+ m_interrupt_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(ir_state::mw8080bw_interrupt_callback),this));
+}
+
+
+void ir_state::mw8080bw_start_interrupt_timer( )
+{
+ int vpos = vysnc_chain_counter_to_vpos(MW8080BW_INT_TRIGGER_COUNT_1, MW8080BW_INT_TRIGGER_VBLANK_1);
+ m_interrupt_timer->adjust(m_screen->time_until_pos(vpos));
+}
+
+
+
+/*************************************
+ *
+ * Machine setup
+ *
+ *************************************/
+
+MACHINE_START_MEMBER( ir_state, ir )
+{
+ mw8080bw_create_interrupt_timer();
+}
+
+
+/*************************************
+ *
+ * Machine reset
+ *
+ *************************************/
+
+MACHINE_RESET_MEMBER( ir_state, ir )
+{
+ mw8080bw_start_interrupt_timer();
+}
+
+static const char *const ir_sample_names[] =
+{
+ "*invrvnge",
+ "02", /* insert coin */
+ "06", /* you shoot */
+ "14", /* hit alien */
+ "16", /* hit asteroid */
+ "18", /* low fuel */
+ "1a", /* successful docking */
+ "1e", /* die */
+ "22", /* start game */
+ "24", /* alien diving */
+ "26", /* alien steals fuel */
+ "28", /* background sound 1 */
+ "2a", /* background sound 2 */
+ "2c", /* background sound 3 */
+ "2e", /* background sound 4 */
+ "30", /* build up fuel */
+ "32", /* ufo fires */
+ "34", /* high score */
+ "36", /* docking stage */
+ "38", /* bonus ship */
+ "3a", /* thrust */
+ 0
+};
+
+
+/*************************************************************************************/
+/* Notes: */
+/* Init sequence: 0x01 (20 times), 0x40 (20 times), 0x4c, 0x40, 0x44, 0x40 (9 times).*/
+/* Player 1 start sequence: 0x0c, 0x20, 0x22. */
+/* Unknown codes: 0x0A, 0x0c */
+/*************************************************************************************/
+WRITE8_MEMBER(ir_state::port03_w)
+{
+ switch (data)
+ {
+ case 0x02: /* Coin */
+ machine().sound().system_enable(1); /* enable sound so we can hear coin drop */
+ m_samples->start(0, 0);
+ break;
+
+ case 0x04: /* Attract Mode */
+ machine().sound().system_enable(0); /* disable sound */
+ break;
+
+ case 0x06:
+ m_samples->start(1, 1); /* Shoot */
+ break;
+
+ case 0x14:
+ m_samples->start(2, 2); /* Hit Alien (0x0a happens at the same time) */
+ break;
+
+ case 0x16:
+ m_samples->start(2, 3); /* Hit Asteroid */
+ break;
+
+ case 0x18: /* Fuel Low */
+ m_samples->start(5, 4);
+ break;
+
+ case 0x1a: /* Successful docking */
+ m_samples->start(0, 5);
+ break;
+
+ case 0x1c: /* Finished fuelling */
+ m_samples->stop(0);
+ break;
+
+ case 0x1e:
+ m_samples->start(0, 6); /* Death */
+ break;
+
+ case 0x20:
+ machine().sound().system_enable(1); /* enable sound for game start */
+ case 0x22:
+ m_samples->start(0, 7); /* Start Game */
+ break;
+
+ case 0x24: /* Alien dropping to steal fuel */
+ m_samples->start(3, 8);
+ break;
+
+ case 0x26: /* Alien lifting with fuel */
+ m_samples->start(4, 9);
+ break;
+
+ case 0x28: /* background sound level 1 */
+ case 0x2a: /* background sound level 2 */
+ case 0x2c: /* background sound level 3 */
+ case 0x2e: /* background sound level 4 */
+ m_samples->start(0, data/2-10, 1);
+ break;
+
+ case 0x30: /* Fuel bar filling up */
+ m_samples->start(0, 14);
+ break;
+
+ case 0x32: /* UFO drops a bomb */
+ m_samples->start(6, 15);
+ break;
+
+ case 0x34: /* You got the highest score */
+ m_samples->start(0, 16);
+ break;
+
+ case 0x36: /* Docking stage */
+ m_screen_red = 0; /* fix bug (2) in documentation */
+ m_samples->start(0, 17);
+ break;
+
+ case 0x38: /* Bonus ship */
+ m_samples->start(8, 18);
+ break;
+
+ case 0x3a: /* Thrust */
+ m_samples->start(7, 19);
+ break;
+
+ case 0x4c:
+ m_samples->stop(0); // using this to stop sound if game tilted
+ case 0x01: /* These 3 play at boot time */
+ case 0x40: /* no idea if they are actual sounds */
+ case 0x44:
+
+ case 0x0a: /* with 0x14 */
+ case 0x0c: /* used a lot but for what? */
+ break;
+
+ default:
+ if (data) printf("Undefined sound code: %X\n",data);
+ }
+}
+
+WRITE8_MEMBER(ir_state::port05_w)
+{
+/*
+ 00 - normal play
+ 0A, 0E - alternate during play/attract at about once per second (invrvngegw only) purpose unknown
+ 01 - briefly at boot time
+ 10 - different colour map (or screen red) when you die
+ 20 - flip screen */
+
+ m_screen_red = BIT(data, 4);
+ m_flip_screen = BIT(data, 5) & ioport("CAB")->read();
+}
+
+uint32_t ir_state::screen_update_ir(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
+{
+ pen_t pens[8];
+ offs_t offs, color_address;
+ uint8_t *prom;
+ uint8_t *color_map_base;
+ uint8_t i, x, y, data, fore_color, color;
+
+ for (i = 0; i < 8; i++)
+ pens[i] = rgb_t(pal1bit(i >> 0), pal1bit(i >> 2), pal1bit(i >> 1));
+
+ prom = memregion("proms")->base();
+ color_map_base = &prom[0x0000];
+
+ for (offs = 0; offs < m_p_ram.bytes(); offs++)
+ {
+ y = offs >> 5;
+ x = offs << 3;
+
+ color_address = (offs >> 8 << 5) | (offs & 0x1f);
+
+ data = m_p_ram[offs];
+ fore_color = m_screen_red ? 1 : color_map_base[color_address] & 0x07;
+
+ for (i = 0; i < 8; i++)
+ {
+ color = BIT(data, i) ? fore_color : 0;
+
+ if (y >= MW8080BW_VCOUNTER_START_NO_VBLANK)
+ {
+ if (m_flip_screen)
+ bitmap.pix32(MW8080BW_VBSTART - 1 - (y - MW8080BW_VCOUNTER_START_NO_VBLANK), MW8080BW_HPIXCOUNT - 1 - x) = pens[color];
+ else
+ bitmap.pix32(y - MW8080BW_VCOUNTER_START_NO_VBLANK, x) = pens[color];
+ }
+
+ x++;
+ }
+ }
+
+ return 0;
+}
+
+static MACHINE_CONFIG_START( ir )
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu",I8080,MW8080BW_CPU_CLOCK)
+ MCFG_CPU_PROGRAM_MAP(main_map)
+ MCFG_CPU_IO_MAP(invrvnge_io_map)
+ MCFG_MACHINE_START_OVERRIDE(ir_state, ir)
+ MCFG_MACHINE_RESET_OVERRIDE(ir_state, ir)
+
+ /* video hardware */
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_RAW_PARAMS(MW8080BW_PIXEL_CLOCK, MW8080BW_HTOTAL, MW8080BW_HBEND, MW8080BW_HPIXCOUNT, MW8080BW_VTOTAL, MW8080BW_VBEND, MW8080BW_VBSTART)
+ MCFG_SCREEN_UPDATE_DRIVER(ir_state, screen_update_ir)
+
+ //MCFG_CPU_ADD("audiocpu", M6808, XTAL_4MHz/2) // MC6808P
+ //MCFG_CPU_PROGRAM_MAP(invrvnge_sound_map)
+
+ /* add shifter */
+ MCFG_MB14241_ADD("mb14241")
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+
+ //MCFG_SOUND_ADD("ay1", AY8910, XTAL_4MHz/2)
+ //MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5)
+
+ MCFG_SOUND_ADD("samples", SAMPLES, 0)
+ MCFG_SAMPLES_CHANNELS(9)
+ MCFG_SAMPLES_NAMES(ir_sample_names)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
+MACHINE_CONFIG_END
+
+ROM_START( ir )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "h.ic36", 0x0000, 0x0800, CRC(0e229b9f) SHA1(617197bf94e9700cbbb2f32487dc47b318d4f2af) )
+ ROM_LOAD( "g.ic35", 0x0800, 0x0800, CRC(26b38aa4) SHA1(f281c7ec47ce6ab61bfda2e7aa6a5b8a01f2c11e) )
+ ROM_LOAD( "f.ic34", 0x1000, 0x0800, CRC(b3b2749e) SHA1(4f854f981396e2d6a959dd48cff12234074fb69b) )
+ ROM_LOAD( "e.ic33", 0x1800, 0x0800, CRC(d8e75102) SHA1(86d5618944265947e3ce60fdf048d8fff4a55744) )
+
+ // not used
+ //ROM_REGION( 0x10000, "audiocpu", 0 ) // encrypted
+ //ROM_LOAD( "snd.2c", 0xf000, 0x0800, CRC(135f3b16) SHA1(d472a6ca32c4a16cc1faf09f4a4876d75cd4ba24) )
+ //ROM_LOAD( "snd.1c", 0xf800, 0x0800, CRC(152fc85e) SHA1(df207d6e690287a56e4e330deaa5ee40a179f1fc) )
+
+ ROM_REGION( 0x0800, "proms", 0 )
+ ROM_LOAD( "colour.bin", 0x0000, 0x0800, CRC(7de74988) SHA1(0b8c94b2bfdbc3921d60aad765df8af611f3fdd7) )
+ROM_END
+
+GAME( 1980?,ir, invrvnge, ir, ir, ir_state, 0, ROT270, "Zenitone-Microsec Ltd.", "Invader's Revenge (Extra Sounds)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/itech8.cpp b/src/hbmame/drivers/itech8.cpp
new file mode 100644
index 00000000000..d7641290107
--- /dev/null
+++ b/src/hbmame/drivers/itech8.cpp
@@ -0,0 +1,26 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/itech8.cpp"
+
+ROM_START( itecdemo )
+ ROM_REGION( 0x1c000, "maincpu", 0 )
+ ROM_LOAD( "itecdemo.u5", 0x04000, 0x4000, CRC(749a1336) SHA1(f3f1220fbb9b61214e7b4e675a6ab5bbe9db50af) )
+ //ROM_LOAD( "itecdemo.u5", 0x04000, 0x4000, CRC(d96cbf81) SHA1(c2631e6beaa478def680d08302c65dbb71730a31) ) // wrong colours
+ ROM_CONTINUE( 0x10000, 0xc000 )
+ ROM_COPY( "maincpu", 0x14000, 0x8000, 0x8000 )
+
+ ROM_REGION( 0x10000, "soundcpu", 0 )
+ ROM_LOAD( "itecdemo.u27", 0x08000, 0x8000, CRC(f0cd7332) SHA1(770b5d9b531495df0ff6350942cbd5147a875e9b) )
+
+ ROM_REGION( 0xc0000, "grom", 0 )
+ ROM_LOAD( "grom0d.bin", 0x00000, 0x20000, CRC(e4f9fe36) SHA1(ad8cb4eb1d5d685bb22ca6fee5f1efcd682f8b38) )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD_OPTIONAL( "srom0d.bin", 0x00000, 0x20000, CRC(7ee8cdcd) SHA1(67dfd19f3eb3649d6f3f6631e44d0bd36b8d8d19) )
+
+ ROM_REGION( 0x0300, "plds", 0 )
+ ROM_LOAD_OPTIONAL( "chaos.pal", 0x0000, 0x0300, CRC(2110ab0c) SHA1(f9db81bd6fdbaecca11ef2488fca885a00f8f2a2) )
+ROM_END
+
+
+GAME( 1989, itecdemo, 0, stratab_hi, gtg, itech8_state, 0, ROT0, "Charles Doty", "Demo - Itec", 0 )
diff --git a/src/hbmame/drivers/jrpacman.cpp b/src/hbmame/drivers/jrpacman.cpp
new file mode 100644
index 00000000000..b134b52b53f
--- /dev/null
+++ b/src/hbmame/drivers/jrpacman.cpp
@@ -0,0 +1,1217 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+/***************************************************************************
+
+ Bally/Midway Jr. Pac-Man
+
+ Games supported:
+ * Jr. Pac-Man
+
+ Known issues:
+ * none
+
+****************************************************************************
+
+ Jr. Pac Man memory map (preliminary)
+
+ 0000-3fff ROM
+ 4000-47ff Video RAM (also color RAM)
+ 4800-4fff RAM
+ 8000-dfff ROM
+
+ memory mapped ports:
+
+ read:
+ 5000 P1
+ 5040 P2
+ 5080 DSW
+
+ *
+ * IN0 (all bits are inverted)
+ * bit 7 : CREDIT
+ * bit 6 : COIN 2
+ * bit 5 : COIN 1
+ * bit 4 : RACK TEST
+ * bit 3 : DOWN player 1
+ * bit 2 : RIGHT player 1
+ * bit 1 : LEFT player 1
+ * bit 0 : UP player 1
+ *
+ *
+ * IN1 (all bits are inverted)
+ * bit 7 : TABLE or UPRIGHT cabinet select (1 = UPRIGHT)
+ * bit 6 : START 2
+ * bit 5 : START 1
+ * bit 4 : TEST SWITCH
+ * bit 3 : DOWN player 2 (TABLE only)
+ * bit 2 : RIGHT player 2 (TABLE only)
+ * bit 1 : LEFT player 2 (TABLE only)
+ * bit 0 : UP player 2 (TABLE only)
+ *
+ *
+ * DSW1 (all bits are inverted)
+ * bit 7 : ?
+ * bit 6 : difficulty level
+ * 1 = Normal 0 = Harder
+ * bit 5 :\ bonus pac at xx000 pts
+ * bit 4 :/ 00 = 10000 01 = 15000 10 = 20000 11 = 30000
+ * bit 3 :\ nr of lives
+ * bit 2 :/ 00 = 1 01 = 2 10 = 3 11 = 5
+ * bit 1 :\ play mode
+ * bit 0 :/ 00 = free play 01 = 1 coin 1 credit
+ * 10 = 1 coin 2 credits 11 = 2 coins 1 credit
+ *
+
+ write:
+ 4ff2-4ffd 6 pairs of two bytes:
+ the first byte contains the sprite image number (bits 2-7), Y flip (bit 0),
+ X flip (bit 1); the second byte the color
+ 5000 interrupt enable
+ 5001 sound enable
+ 5002 unused
+ 5003 flip screen
+ 5004 unused
+ 5005 unused
+ 5006 unused
+ 5007 coin counter
+ 5040-5044 sound voice 1 accumulator (nibbles) (used by the sound hardware only)
+ 5045 sound voice 1 waveform (nibble)
+ 5046-5049 sound voice 2 accumulator (nibbles) (used by the sound hardware only)
+ 504a sound voice 2 waveform (nibble)
+ 504b-504e sound voice 3 accumulator (nibbles) (used by the sound hardware only)
+ 504f sound voice 3 waveform (nibble)
+ 5050-5054 sound voice 1 frequency (nibbles)
+ 5055 sound voice 1 volume (nibble)
+ 5056-5059 sound voice 2 frequency (nibbles)
+ 505a sound voice 2 volume (nibble)
+ 505b-505e sound voice 3 frequency (nibbles)
+ 505f sound voice 3 volume (nibble)
+ 5062-506d Sprite coordinates, x/y pairs for 6 sprites
+ 5070 palette bank
+ 5071 colortable bank
+ 5073 background priority over sprites
+ 5074 char gfx bank
+ 5075 sprite gfx bank
+ 5080 scroll
+ 50c0 Watchdog reset
+
+ I/O ports:
+ OUT on port $0 sets the interrupt vector
+
+***************************************************************************/
+
+#include "emu.h"
+#include "cpu/z80/z80.h"
+#include "includes/pacman.h"
+#include "sound/namco.h"
+
+
+class jrpacman_state : public pacman_state
+{
+public:
+ jrpacman_state(const machine_config &mconfig, device_type type, const char *tag)
+ : pacman_state(mconfig, type, tag) { }
+ DECLARE_WRITE8_MEMBER(jrpacman_interrupt_vector_w);
+ DECLARE_WRITE_LINE_MEMBER(irq_mask_w);
+ DECLARE_DRIVER_INIT(jrpacman);
+ INTERRUPT_GEN_MEMBER(vblank_irq);
+};
+
+
+
+WRITE8_MEMBER(jrpacman_state::jrpacman_interrupt_vector_w)
+{
+ machine().device("maincpu")->execute().set_input_line_vector(0, data);
+ machine().device("maincpu")->execute().set_input_line(0, CLEAR_LINE);
+}
+
+WRITE_LINE_MEMBER(jrpacman_state::irq_mask_w)
+{
+ m_irq_mask = state;
+}
+
+/*************************************
+ *
+ * Main CPU memory handlers
+ *
+ *************************************/
+
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, jrpacman_state )
+ AM_RANGE(0x0000, 0x3fff) AM_ROM
+ AM_RANGE(0x4000, 0x47ff) AM_RAM_WRITE(jrpacman_videoram_w) AM_SHARE("videoram")
+ AM_RANGE(0x4800, 0x4fef) AM_RAM
+ AM_RANGE(0x4ff0, 0x4fff) AM_RAM AM_SHARE("spriteram")
+ AM_RANGE(0x5000, 0x503f) AM_READ_PORT("P1")
+ AM_RANGE(0x5000, 0x5007) AM_DEVWRITE("latch1", ls259_device, write_d0)
+ AM_RANGE(0x5040, 0x507f) AM_READ_PORT("P2")
+ AM_RANGE(0x5040, 0x505f) AM_DEVWRITE("namco", namco_device, pacman_sound_w)
+ AM_RANGE(0x5060, 0x506f) AM_WRITEONLY AM_SHARE("spriteram2")
+ AM_RANGE(0x5070, 0x5077) AM_DEVWRITE("latch2", ls259_device, write_d0)
+ AM_RANGE(0x5080, 0x50bf) AM_READ_PORT("DSW")
+ AM_RANGE(0x5080, 0x5080) AM_WRITE(jrpacman_scroll_w)
+ AM_RANGE(0x50c0, 0x50c0) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
+ AM_RANGE(0x8000, 0xdfff) AM_ROM
+// HBMAME extras
+ //AM_RANGE(0x5004, 0x5005) AM_WRITE(pacman_leds_w)
+ AM_RANGE(0x5078, 0x507f) AM_WRITENOP
+ AM_RANGE(0xfffc, 0xffff) AM_RAM /* for jrfast and fastjr */
+ADDRESS_MAP_END
+
+
+static ADDRESS_MAP_START( port_map, AS_IO, 8, jrpacman_state )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
+ AM_RANGE(0, 0) AM_WRITE(jrpacman_interrupt_vector_w)
+ADDRESS_MAP_END
+
+
+
+/*************************************
+ *
+ * Port definitions
+ *
+ *************************************/
+
+static INPUT_PORTS_START( jrpacman )
+ PORT_START("P1")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY
+ /* Press this to instantly finish the level - HBMAME */
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Finish Level (Cheat)") PORT_CODE(KEYCODE_8)
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN3 )
+
+ PORT_START("P2")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL
+ PORT_SERVICE( 0x10, IP_ACTIVE_LOW )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 )
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
+ PORT_DIPNAME( 0x80, 0x80, DEF_STR( Cabinet ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( Upright ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
+
+ PORT_START("DSW")
+ PORT_DIPNAME( 0x03, 0x01, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:1,2")
+ 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:3,4")
+ 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:5,6")
+ PORT_DIPSETTING( 0x00, "10000" )
+ PORT_DIPSETTING( 0x10, "15000" )
+ PORT_DIPSETTING( 0x20, "20000" )
+ PORT_DIPSETTING( 0x30, "30000" )
+ PORT_DIPNAME( 0x40, 0x40, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:7")
+ PORT_DIPSETTING( 0x40, DEF_STR( Normal ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Hard ) )
+ PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:8")
+ PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+
+// HBMAME extras
+ PORT_START ("FAKE")
+ /* This fake input port is used to get the status of the fire button */
+ /* and activate the speedup cheat. */
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME( "Speed (Cheat)" )
+ PORT_DIPNAME( 0x06, 0x02, "Speed Cheat" )
+ PORT_DIPSETTING( 0x00, "Disabled" )
+ PORT_DIPSETTING( 0x02, "Enabled with Button" )
+ PORT_DIPSETTING( 0x04, "Enabled Always" )
+
+ PORT_START ("CONFIG")
+ PORT_CONFNAME( 0x01, 0x01, "Level" )
+ PORT_CONFSETTING( 0x00, DEF_STR( Off ) )
+ PORT_CONFSETTING( 0x01, DEF_STR( On ) )
+INPUT_PORTS_END
+
+
+
+/*************************************
+ *
+ * Graphics layouts
+ *
+ *************************************/
+
+static const gfx_layout tilelayout =
+{
+ 8,8,
+ RGN_FRAC(1,2),
+ 2,
+ { 0, 4 },
+ { STEP4(8*8,1), STEP4(0*8,1) },
+ { STEP8(0*8,8) },
+ 16*8
+};
+
+
+static const gfx_layout spritelayout =
+{
+ 16,16,
+ RGN_FRAC(1,2),
+ 2,
+ { 0, 4 },
+ { STEP4(8*8,1), STEP4(16*8,1), STEP4(24*8,1), STEP4(0*8,1) },
+ { STEP8(0*8,8), STEP8(32*8,8) },
+ 64*8
+};
+
+
+static GFXDECODE_START( jrpacman )
+ GFXDECODE_ENTRY( "gfx1", 0x0000, tilelayout, 0, 128 )
+ GFXDECODE_ENTRY( "gfx1", 0x2000, spritelayout, 0, 128 )
+GFXDECODE_END
+
+
+
+/*************************************
+ *
+ * Machine drivers
+ *
+ *************************************/
+
+INTERRUPT_GEN_MEMBER(jrpacman_state::vblank_irq)
+{
+ if(m_irq_mask)
+ device.execute().set_input_line(0, HOLD_LINE);
+}
+
+static MACHINE_CONFIG_START( jrpacman )
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", Z80, 18432000/6) /* 3.072 MHz */
+ MCFG_CPU_PROGRAM_MAP(main_map)
+ MCFG_CPU_IO_MAP(port_map)
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", jrpacman_state, vblank_irq)
+// MCFG_CPU_VBLANK_INT_DRIVER("screen", pacman_state, vblank_irq) // HBMAME
+
+ MCFG_DEVICE_ADD("latch1", LS259, 0) // 5P
+ MCFG_ADDRESSABLE_LATCH_Q0_OUT_CB(WRITELINE(jrpacman_state, irq_mask_w))
+ MCFG_ADDRESSABLE_LATCH_Q1_OUT_CB(DEVWRITELINE("namco", namco_device, pacman_sound_enable_w))
+ MCFG_ADDRESSABLE_LATCH_Q3_OUT_CB(WRITELINE(jrpacman_state, flipscreen_w))
+ MCFG_ADDRESSABLE_LATCH_Q7_OUT_CB(WRITELINE(jrpacman_state, coin_counter_w))
+
+ MCFG_DEVICE_ADD("latch2", LS259, 0) // 1H
+ MCFG_ADDRESSABLE_LATCH_Q0_OUT_CB(WRITELINE(jrpacman_state, pengo_palettebank_w))
+ MCFG_ADDRESSABLE_LATCH_Q1_OUT_CB(WRITELINE(jrpacman_state, pengo_colortablebank_w))
+ MCFG_ADDRESSABLE_LATCH_Q3_OUT_CB(WRITELINE(jrpacman_state, jrpacman_bgpriority_w))
+ MCFG_ADDRESSABLE_LATCH_Q4_OUT_CB(WRITELINE(jrpacman_state, jrpacman_charbank_w))
+ MCFG_ADDRESSABLE_LATCH_Q5_OUT_CB(WRITELINE(jrpacman_state, jrpacman_spritebank_w))
+
+ MCFG_WATCHDOG_ADD("watchdog")
+
+ /* video hardware */
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_REFRESH_RATE(60.606060)
+ MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
+ MCFG_SCREEN_SIZE(36*8, 28*8)
+ MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1)
+ MCFG_SCREEN_UPDATE_DRIVER(jrpacman_state, screen_update_pacman)
+ MCFG_VIDEO_START_OVERRIDE(jrpacman_state,jrpacman)
+ MCFG_SCREEN_PALETTE("palette")
+ MCFG_GFXDECODE_ADD("gfxdecode", "palette", jrpacman)
+ MCFG_PALETTE_ADD("palette", 128*4)
+ MCFG_PALETTE_INDIRECT_ENTRIES(32)
+ MCFG_PALETTE_INIT_OWNER(jrpacman_state,pacman)
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+
+ MCFG_SOUND_ADD("namco", NAMCO, 3072000/32)
+ MCFG_NAMCO_AUDIO_VOICES(3)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
+MACHINE_CONFIG_END
+
+
+
+/*************************************
+ *
+ * ROM definitions
+ *
+ *************************************/
+
+ROM_START( jrpacman )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) )
+ ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) )
+ ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) )
+ ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) )
+ ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jrp2c.2c", 0x0000, 0x2000, CRC(0527ff9b) SHA1(37fe3176b0d125b7d629e108e7ebdc1196e4a132) ) /* tiles (bank 1 & 2) */
+ ROM_LOAD( "jrp2e.2e", 0x2000, 0x2000, CRC(73477193) SHA1(f00a488958ea0438642d345693787bdf771219ad) ) /* sprites (bank 1 & 2) */
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
+ROM_END
+
+ROM_START( jrpacmanf )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "fast_jr.8d", 0x0000, 0x2000, CRC(461e8b57) SHA1(42e25d384e653efb95a97bd64f55a8c3b3f71239) ) // only 1 byte difference
+ ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) )
+ ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) )
+ ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) )
+ ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jrp2c.2c", 0x0000, 0x2000, CRC(0527ff9b) SHA1(37fe3176b0d125b7d629e108e7ebdc1196e4a132) ) /* tiles (bank 1 & 2) */
+ ROM_LOAD( "jrp2e.2e", 0x2000, 0x2000, CRC(73477193) SHA1(f00a488958ea0438642d345693787bdf771219ad) ) /* sprites (bank 1 & 2) */
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
+ROM_END
+
+
+
+/*************************************
+ *
+ * Driver initialization
+ *
+ *************************************/
+
+DRIVER_INIT_MEMBER(jrpacman_state,jrpacman)
+{
+ /* The encryption PALs garble bits 0, 2 and 7 of the ROMs. The encryption */
+ /* scheme is complex (basically it's a state machine) and can only be */
+ /* faithfully emulated at run time. To avoid the performance hit that would */
+ /* cause, here we have a table of the values which must be XORed with */
+ /* each memory region to obtain the decrypted bytes. */
+ /* Decryption table provided by David Caldwell (david@indigita.com) */
+ /* For an accurate reproduction of the encryption, see jrcrypt.c */
+ static const struct {
+ int count;
+ int value;
+ } table[] =
+ {
+ { 0x00C1, 0x00 },{ 0x0002, 0x80 },{ 0x0004, 0x00 },{ 0x0006, 0x80 },
+ { 0x0003, 0x00 },{ 0x0002, 0x80 },{ 0x0009, 0x00 },{ 0x0004, 0x80 },
+ { 0x9968, 0x00 },{ 0x0001, 0x80 },{ 0x0002, 0x00 },{ 0x0001, 0x80 },
+ { 0x0009, 0x00 },{ 0x0002, 0x80 },{ 0x0009, 0x00 },{ 0x0001, 0x80 },
+ { 0x00AF, 0x00 },{ 0x000E, 0x04 },{ 0x0002, 0x00 },{ 0x0004, 0x04 },
+ { 0x001E, 0x00 },{ 0x0001, 0x80 },{ 0x0002, 0x00 },{ 0x0001, 0x80 },
+ { 0x0002, 0x00 },{ 0x0002, 0x80 },{ 0x0009, 0x00 },{ 0x0002, 0x80 },
+ { 0x0009, 0x00 },{ 0x0002, 0x80 },{ 0x0083, 0x00 },{ 0x0001, 0x04 },
+ { 0x0001, 0x01 },{ 0x0001, 0x00 },{ 0x0002, 0x05 },{ 0x0001, 0x00 },
+ { 0x0003, 0x04 },{ 0x0003, 0x01 },{ 0x0002, 0x00 },{ 0x0001, 0x04 },
+ { 0x0003, 0x01 },{ 0x0003, 0x00 },{ 0x0003, 0x04 },{ 0x0001, 0x01 },
+ { 0x002E, 0x00 },{ 0x0078, 0x01 },{ 0x0001, 0x04 },{ 0x0001, 0x05 },
+ { 0x0001, 0x00 },{ 0x0001, 0x01 },{ 0x0001, 0x04 },{ 0x0002, 0x00 },
+ { 0x0001, 0x01 },{ 0x0001, 0x04 },{ 0x0002, 0x00 },{ 0x0001, 0x01 },
+ { 0x0001, 0x04 },{ 0x0002, 0x00 },{ 0x0001, 0x01 },{ 0x0001, 0x04 },
+ { 0x0001, 0x05 },{ 0x0001, 0x00 },{ 0x0001, 0x01 },{ 0x0001, 0x04 },
+ { 0x0002, 0x00 },{ 0x0001, 0x01 },{ 0x0001, 0x04 },{ 0x0002, 0x00 },
+ { 0x0001, 0x01 },{ 0x0001, 0x04 },{ 0x0001, 0x05 },{ 0x0001, 0x00 },
+ { 0x01B0, 0x01 },{ 0x0001, 0x00 },{ 0x0002, 0x01 },{ 0x00AD, 0x00 },
+ { 0x0031, 0x01 },{ 0x005C, 0x00 },{ 0x0005, 0x01 },{ 0x604E, 0x00 },
+ { 0,0 }
+ };
+
+ uint8_t *RAM = machine().root_device().memregion("maincpu")->base();
+ int i, j, A;
+
+ for (i = A = 0; table[i].count; i++)
+ for (j = 0; j < table[i].count; j++)
+ RAM[A++] ^= table[i].value;
+}
+
+
+
+/*************************************
+ *
+ * Game drivers
+ *
+ *************************************/
+
+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 )
+
+
+// HBMAME roms
+
+ROM_START( jr1000 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) )
+ ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) )
+ ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) )
+ ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) )
+ ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jr1000.2c", 0x0000, 0x2000, CRC(8f93c273) SHA1(e672e0fdc8956967783110c0f36cfe0fd77cca90) )
+ ROM_LOAD( "jr1000.2e", 0x2000, 0x2000, CRC(eac97aec) SHA1(af5b88e1ce9d14851ae2db4e90cb6adb8df949c7) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) )
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) )
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) )
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) )
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) )
+ROM_END
+
+ROM_START( jr1000_2 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) )
+ ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) )
+ ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) )
+ ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) )
+ ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jr1000.2c", 0x0000, 0x2000, CRC(8f93c273) SHA1(e672e0fdc8956967783110c0f36cfe0fd77cca90) )
+ ROM_LOAD( "jr1000_2.2e", 0x2000, 0x2000, CRC(4f2010d4) SHA1(0835375487ccdb2ae77dd9e62229d0b6aeb9142a) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
+ROM_END
+
+ROM_START( jr2000 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) )
+ ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) )
+ ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) )
+ ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) )
+ ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jr2000.2c", 0x0000, 0x2000, CRC(2784936b) SHA1(31ceeaa0a6c2ca042d829b0baa7b5455c3942790) )
+ ROM_LOAD( "jr2000.2e", 0x2000, 0x2000, CRC(a26f1a49) SHA1(86d51269db2f7d8f6a7f12bd2bc1e2ab82f8be83) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
+ROM_END
+
+ROM_START( jr2001 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) )
+ ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) )
+ ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) )
+ ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) )
+ ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jr2001.2c", 0x0000, 0x2000, CRC(9171f08f) SHA1(d2af715feb9b5266edc24a0ea9eaecc456eb4fac) )
+ ROM_LOAD( "jr2001.2e", 0x2000, 0x2000, CRC(3164b853) SHA1(a3e23a902a9548a7025248a0e63fcbd4374de554) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
+ROM_END
+
+ROM_START( jr2001p)
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) )
+ ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) )
+ ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) )
+ ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) )
+ ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jr2001p.2c", 0x0000, 0x2000, CRC(d56cb9c5) SHA1(e598a28c0a4f1cdce2312a8dc418cfa441fc5fe8) )
+ ROM_LOAD( "jr2001p.2e", 0x2000, 0x2000, CRC(1b534804) SHA1(b93764b6d6aacdcb4a50fffec58cab7778ada3ab) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
+ROM_END
+
+ROM_START( jr2002 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) )
+ ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) )
+ ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) )
+ ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) )
+ ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jr2002.2c", 0x0000, 0x2000, CRC(e254096c) SHA1(f56127a6dcf8a6a5c916f33a29d761d36d55e543) )
+ ROM_LOAD( "jr2002.2e", 0x2000, 0x2000, CRC(e3240bec) SHA1(255669c33f88e39a5c5f041a800f14ec29d24f38) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
+ROM_END
+
+ROM_START( jr2002p )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) )
+ ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) )
+ ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) )
+ ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) )
+ ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jr2002p.2c", 0x0000, 0x2000, CRC(ad1d0360) SHA1(d401a4575899c64c35977c1c49dfe9ad38a804e7) )
+ ROM_LOAD( "jr2002p.2e", 0x2000, 0x2000, CRC(160321a1) SHA1(8e4ed3f8f5270fec8a00db92a6aebc9951074f33) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
+ROM_END
+
+ROM_START( jr2003 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) )
+ ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) )
+ ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) )
+ ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) )
+ ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jr2003.2c", 0x0000, 0x2000, CRC(0ffe21f5) SHA1(3a5503f46d4813ff77aaa633122346228bba659b) )
+ ROM_LOAD( "jr2003.2e", 0x2000, 0x2000, CRC(1fd35d7a) SHA1(b04e25c1fd0a148c4caae8ccb07fd2e3b4120325) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
+ROM_END
+
+ROM_START( jr2003p )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) )
+ ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) )
+ ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) )
+ ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) )
+ ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jr2003p.2c", 0x0000, 0x2000, CRC(b24e9383) SHA1(ba82f2e58e7ba1b64cf52c5da3bb8bf3fac7cea3) )
+ ROM_LOAD( "jr2003p.2e", 0x2000, 0x2000, CRC(65ba2fb7) SHA1(3a0ee8798c72d13300712a2537b3a44a13f9338f) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
+ROM_END
+
+ROM_START( jr2004 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) )
+ ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) )
+ ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) )
+ ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) )
+ ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jr2004.2c", 0x0000, 0x2000, CRC(3c20cf84) SHA1(8d34d50839b3f62bfbe9ee4ed633422be6459e73) )
+ ROM_LOAD( "jr2004.2e", 0x2000, 0x2000, CRC(f08575ab) SHA1(c5935f88fac7cc9f58e56d857e89c232582c1882) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
+ROM_END
+
+ROM_START( jr2004p )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) )
+ ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) )
+ ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) )
+ ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) )
+ ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jr2004p.2c", 0x0000, 0x2000, CRC(6e1db602) SHA1(27bf6776d044c602cf9da88cfd19e23d4771759d) )
+ ROM_LOAD( "jr2004p.2e", 0x2000, 0x2000, CRC(ab075ebe) SHA1(4cafb1019acf49111fdc5e695d95610219a0573d) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
+ROM_END
+
+ROM_START( jr2005 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) )
+ ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) )
+ ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) )
+ ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) )
+ ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jr2005.2c", 0x0000, 0x2000, CRC(42eb8848) SHA1(79ee37c77ec8374c568699c4161cd46ef8631a17) )
+ ROM_LOAD( "jr2005.2e", 0x2000, 0x2000, CRC(502d286c) SHA1(7fcf21d4037f7ffaf68be4c9089b3b3aa0ad59d3) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
+ROM_END
+
+ROM_START( jr2005p )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) )
+ ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) )
+ ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) )
+ ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) )
+ ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jr2005p.2c", 0x0000, 0x2000, CRC(4d03cd0a) SHA1(eb3c5ed5d0a5d4d67baae2ad629ffbfadbe2bea3) )
+ ROM_LOAD( "jr2005p.2e", 0x2000, 0x2000, CRC(51cbce81) SHA1(37129228e8e92dd2a500ac2653364506129b7a2e) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
+ROM_END
+
+ROM_START( jr3000p )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) )
+ ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) )
+ ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) )
+ ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) )
+ ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jr1000.2c", 0x0000, 0x2000, CRC(8f93c273) SHA1(e672e0fdc8956967783110c0f36cfe0fd77cca90) )
+ ROM_LOAD( "jr3000p.2e", 0x2000, 0x2000, CRC(0a8f7b5c) SHA1(2182b24330021faa447944e51bebc5159b2b4f0b) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
+ROM_END
+
+ROM_START( jr4000p )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) )
+ ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) )
+ ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) )
+ ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) )
+ ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jr4000p.2c", 0x0000, 0x2000, CRC(c5f05f11) SHA1(9fdafd46adebb709b2b897b0b53b05c4392239b2) )
+ ROM_LOAD( "jr4000p.2e", 0x2000, 0x2000, CRC(944add80) SHA1(c391a2bb0d655da87d13581b16d09fe896106efd) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
+ROM_END
+
+ROM_START( jr5000p )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) )
+ ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) )
+ ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) )
+ ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) )
+ ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jr5000p.2c", 0x0000, 0x2000, CRC(086979e1) SHA1(6c7fa4118fbb90417d3397c9f1f5eee14cb938de) )
+ ROM_LOAD( "jr5000p.2e", 0x2000, 0x2000, CRC(a0fce81b) SHA1(8704a18e43c5134fc758df3a443c3f0e6990c417) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
+ROM_END
+
+ROM_START( jr6000 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) )
+ ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) )
+ ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) )
+ ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) )
+ ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jr6000.2c", 0x0000, 0x2000, CRC(44bd3c24) SHA1(d0321f314f604bb268fd62fde2e6a536f2c735f2) )
+ ROM_LOAD( "jr6000.2e", 0x2000, 0x2000, CRC(83c8ff32) SHA1(ceae512347ca4c4aa1e88623894c3279281c0639) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
+ROM_END
+
+ROM_START( jr7000 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) )
+ ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) )
+ ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) )
+ ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) )
+ ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jr7000.2c", 0x0000, 0x2000, CRC(3dca34d5) SHA1(02b8ac91a683fa9688e5897ac206f344fbd71767) )
+ ROM_LOAD( "jr7000.2e", 0x2000, 0x2000, CRC(202f2f37) SHA1(337f7e7d123f914833115610a763fe7dc55c3d24) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
+ROM_END
+
+ROM_START( jr7000p )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) )
+ ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) )
+ ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) )
+ ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) )
+ ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jr7000p.2c", 0x0000, 0x2000, CRC(3b3e60fe) SHA1(26ff62f8aa655fa927694f791ae8a361dc438f3c) )
+ ROM_LOAD( "jr7000p.2e", 0x2000, 0x2000, CRC(89b17c92) SHA1(2fc39e05fc35a69a6d224b6024f978b7c15bfb80) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
+ROM_END
+
+ROM_START( jr8000 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) )
+ ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) )
+ ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) )
+ ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) )
+ ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jr8000.2c", 0x0000, 0x2000, CRC(9653f563) SHA1(0a71d70645a8cd2e407a638e934deda43b41e56c) )
+ ROM_LOAD( "jr8000.2e", 0x2000, 0x2000, CRC(0b1791f8) SHA1(1d6d494d8acfd57301fc01a86a27df2b7e697f1b) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
+ROM_END
+
+ROM_START( jr8000p )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) )
+ ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) )
+ ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) )
+ ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) )
+ ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jr8000p.2c", 0x0000, 0x2000, CRC(913a0bea) SHA1(005e3908956169648464dfdd6ae5e2b67ba2233f) )
+ ROM_LOAD( "jr8000p.2e", 0x2000, 0x2000, CRC(aed01226) SHA1(ae8022e36c7f7c083c1a697e54c7587044fcb491) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
+ROM_END
+
+ROM_START( jr9000p )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) )
+ ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) )
+ ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) )
+ ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) )
+ ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jr9000p.2c", 0x0000, 0x2000, CRC(b2653891) SHA1(e96ab61f58bb9b47751e7e9397f2d44ff35897e6) )
+ ROM_LOAD( "jr9000p.2e", 0x2000, 0x2000, CRC(87f45bd7) SHA1(7a45e0d5479de3d867518354f108e62f7e4d9877) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
+ROM_END
+
+ROM_START( jrcheat )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "cheat-8d.bin", 0x0000, 0x2000, CRC(8b5b8d72) SHA1(65af9245015480751b3714980caed81e421d102c) )
+ ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) )
+ ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) )
+ ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) )
+ ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jrp2c.2c", 0x0000, 0x2000, CRC(0527ff9b) SHA1(37fe3176b0d125b7d629e108e7ebdc1196e4a132) )
+ ROM_LOAD( "jrp2e.2e", 0x2000, 0x2000, CRC(73477193) SHA1(f00a488958ea0438642d345693787bdf771219ad) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
+ROM_END
+
+ROM_START( jrdeluxe )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) )
+ ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) )
+ ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) )
+ ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) )
+ ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jrdeluxe.2c", 0x0000, 0x2000, CRC(90517001) SHA1(cfb4a43bf9ef732a940b027de383e7a6ec0ec671) )
+ ROM_LOAD( "jrdeluxe.2e", 0x2000, 0x2000, CRC(ef042965) SHA1(8497d2c7fdae6b1903df421ae1358a3b41e78599) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
+ROM_END
+
+/* The first rom (jppac1.bin) contains hacked jrpacman in first half, and unhacked in 2nd half.
+ Therefore the 2nd half is not needed. The only byte changed in the hack is the speedup byte at 0x180d */
+
+ROM_START( jrfast )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "jppac1.bin", 0x0000, 0x2000, CRC(f3bcb240) SHA1(b1fbf28666d5f159daf8f6156e3e31c932bb4081) )
+ ROM_IGNORE (0x2000)
+ ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) )
+ ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) )
+ ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) )
+ ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jrp2c.2c", 0x0000, 0x2000, CRC(0527ff9b) SHA1(37fe3176b0d125b7d629e108e7ebdc1196e4a132) )
+ ROM_LOAD( "jrp2e.2e", 0x2000, 0x2000, CRC(73477193) SHA1(f00a488958ea0438642d345693787bdf771219ad) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
+ROM_END
+
+ROM_START( jrhearts )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) )
+ ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) )
+ ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) )
+ ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) )
+ ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jrhearts.2c", 0x0000, 0x2000, CRC(40cafa63) SHA1(c68a7eefabe4d8b008533abe3cf4b1a6512cd25e) )
+ ROM_LOAD( "jrp2e.2e", 0x2000, 0x2000, CRC(73477193) SHA1(f00a488958ea0438642d345693787bdf771219ad) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
+ROM_END
+
+ROM_START( jrpacad )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) )
+ ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) )
+ ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) )
+ ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) )
+ ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jrpacad.2c", 0x0000, 0x2000, CRC(1ecf940c) SHA1(035b1d44da3a010f8c158211d07f5c6e7d16b63d) )
+ ROM_LOAD( "jrvectr.2e", 0x2000, 0x2000, CRC(c0b35564) SHA1(c0c6de032023c301608c584489d564a61256345b) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
+ROM_END
+
+ROM_START( jrpacjr)
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) )
+ ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) )
+ ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) )
+ ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) )
+ ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jrpacjr.2c", 0x0000, 0x2000, CRC(54e6c297) SHA1(fa3c5240ca8a9e0c520864189c8b18105af629a7) )
+ ROM_LOAD( "jrpacjr.2e", 0x2000, 0x2000, CRC(5b34dd98) SHA1(342393af97e13fe32b684e467bf48019f7c0c1c3) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
+ROM_END
+
+ROM_START( jrpacjrp )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) )
+ ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) )
+ ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) )
+ ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) )
+ ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jrpacjr.2c", 0x0000, 0x2000, CRC(54e6c297) SHA1(fa3c5240ca8a9e0c520864189c8b18105af629a7) )
+ ROM_LOAD( "jrpacjrp.2e", 0x2000, 0x2000, CRC(1ee279ef) SHA1(ec26313fdf82ff7e4ff0acef28e2ce21a0539c1f) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
+ROM_END
+
+ROM_START( jrpacp )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) )
+ ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) )
+ ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) )
+ ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) )
+ ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jrpacp.2c", 0x0000, 0x2000, CRC(4fe4238e) SHA1(1175b3f9e3a9120a2149b124259097e8c574a76d) )
+ ROM_LOAD( "jrpacp.2e", 0x2000, 0x2000, CRC(5993c0fa) SHA1(d5eee63b06972b09668c3fd66e737668439e26b7) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
+ROM_END
+
+ROM_START( jrspeed )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "speed-8d.bin", 0x0000, 0x2000, CRC(461e8b57) SHA1(42e25d384e653efb95a97bd64f55a8c3b3f71239) )
+ ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) )
+ ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) )
+ ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) )
+ ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jrp2c.2c", 0x0000, 0x2000, CRC(0527ff9b) SHA1(37fe3176b0d125b7d629e108e7ebdc1196e4a132) )
+ ROM_LOAD( "jrp2e.2e", 0x2000, 0x2000, CRC(73477193) SHA1(f00a488958ea0438642d345693787bdf771219ad) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
+ROM_END
+
+ROM_START( jrvectr )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) )
+ ROM_LOAD( "jrp8e.8e", 0x2000, 0x2000, CRC(ec889e94) SHA1(8294e9e79f8fd19a419431fa690e6ac4a1302f58) )
+ ROM_LOAD( "jrp8h.8h", 0x8000, 0x2000, CRC(35f1fc6e) SHA1(b84b34560b9aae18b24274712b052283faa01730) )
+ ROM_LOAD( "jrp8j.8j", 0xa000, 0x2000, CRC(9737099e) SHA1(07d912a61824323c8fc1b8bd0da89172d4f70b91) )
+ ROM_LOAD( "jrp8k.8k", 0xc000, 0x2000, CRC(5252dd97) SHA1(18bd4d5381656120e4242811006c20776774de4d) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jrvectr.2c", 0x0000, 0x2000, CRC(4876ad83) SHA1(6ab405a622fe93bcea627635cb266712a4174ce5) )
+ ROM_LOAD( "jrvectr.2e", 0x2000, 0x2000, CRC(c0b35564) SHA1(c0c6de032023c301608c584489d564a61256345b) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) ) /* color palette (low bits) */
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) ) /* color palette (high bits) */
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) ) /* color lookup table */
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) /* waveform */
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
+ROM_END
+
+ROM_START( jryumyum )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "jrp8d.8d", 0x0000, 0x2000, CRC(e3fa972e) SHA1(5ea34621213c649ca2848ab31aab2cbe751723d4) )
+ ROM_LOAD( "jryumyum.8e", 0x2000, 0x2000, CRC(934f1d34) SHA1(1c502edea62ee7fca11d54cb8ff0ea6263828056) )
+ ROM_LOAD( "jryumyum.8h", 0x8000, 0x2000, CRC(d59cb636) SHA1(f2e9c0d4c62706a9d7ec68633ccb0edadf5e5439) )
+ ROM_LOAD( "jryumyum.8j", 0xa000, 0x2000, CRC(010fb8dd) SHA1(4c1193d3a1abde76f8c28245a451873162ec6848) )
+ ROM_LOAD( "jryumyum.8k", 0xc000, 0x2000, CRC(191a176c) SHA1(ae5e3c4bd788dd56e0da4130388ee841002cab6c) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "jryumyum.2c", 0x0000, 0x2000, CRC(f057d596) SHA1(66cbe2720ecc456e9cef5422cf060bd507967fc2) )
+ ROM_LOAD( "jryumyum.2e", 0x2000, 0x2000, CRC(e851bf29) SHA1(d31fd0bb3b0614a9750f07a55e93b94d16643899) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD_NIB_LOW ( "a290-27axv-bxhd.9e", 0x0000, 0x0100, CRC(029d35c4) SHA1(d9aa2dc442e9ac36cf3c346b9fb1aa745eaf3cb8) )
+ ROM_LOAD_NIB_HIGH( "a290-27axv-cxhd.9f", 0x0000, 0x0100, CRC(eee34a79) SHA1(7561f8ccab2af85c111af6a02af6986eb67503e5) )
+ ROM_LOAD( "a290-27axv-axhd.9p", 0x0020, 0x0100, CRC(9f6ea9d8) SHA1(62cf15513934d34641433c891a7f73bef82e2fb1) )
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "a290-27axv-dxhd.7p", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) )
+ ROM_LOAD( "a290-27axv-exhd.5s", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) )
+ROM_END
+
+
+
+GAME( 2000, jr1000, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man 1000", MACHINE_SUPPORTS_SAVE )
+GAME( 1983, jr1000_2, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Bally Midway", "Jr. Pac-Man 1000 (Alt)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, jr2000, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man 2000", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, jr2001, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man 2001", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, jr2001p, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man 2001 Plus", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, jr2002, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man 2002", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, jr2002p, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man 2002 Plus", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, jr2003, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man 2003", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, jr2003p, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man 2003 Plus", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, jr2004, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man 2004", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, jr2004p, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man 2004 Plus", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, jr2005, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man 2005", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, jr2005p, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man 2005 Plus", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, jr3000p, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man 3000 Plus", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, jr4000p, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man 4000 Plus", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, jr5000p, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man 5000 Plus", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, jr6000, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man 6000", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, jr7000, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man 7000", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, jr7000p, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man 7000 Plus", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, jr8000, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man 8000", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, jr8000p, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man 8000 Plus", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, jr9000p, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man 9000 Plus", MACHINE_SUPPORTS_SAVE )
+GAME( 1983, jrcheat, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Bally Midway", "Jr. Pac-Man Cheat [c]", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, jrdeluxe, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man Deluxe", MACHINE_SUPPORTS_SAVE )
+GAME( 1983, jrfast, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Bally Midway", "Jr. PacMan [f]", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, jrhearts, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Bally Midway", "Jr. Pac-Man Hearts", MACHINE_SUPPORTS_SAVE )
+GAME( 1983, jrpacad, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Bally Midway", "Jr. Pac-Man After Dark", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, jrpacjr, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man Junior", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, jrpacjrp, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man Junior Plus", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, jrpacp, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Blue Justice", "Jr. Pac-Man Plus", MACHINE_SUPPORTS_SAVE )
+GAME( 1983, jrspeed, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Bally Midway", "Jr. Pac-Man Speed [f]", MACHINE_SUPPORTS_SAVE )
+GAME( 1983, jrvectr, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Bally Midway", "Jr. Pac-Man Vector", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, jryumyum, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Tim Appleton", "Jr. Pac-Man Vs YumYum + Friends", MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/kaneko16.cpp b/src/hbmame/drivers/kaneko16.cpp
new file mode 100644
index 00000000000..7c7b6850e60
--- /dev/null
+++ b/src/hbmame/drivers/kaneko16.cpp
@@ -0,0 +1,66 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/kaneko16.cpp"
+
+ROM_START( fjbusterbh )
+ ROM_REGION( 0x040000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "fbbh030a.u61", 0x000000, 0x020000, CRC(c3a66037) SHA1(4ca1b440ca822d6c6adecb5c0a3d83126bc775a2) )
+ ROM_LOAD16_BYTE( "fbbh031j.u62", 0x000001, 0x020000, CRC(c104ca05) SHA1(6247ab05c6c88352a75d606961b98cd957709590) )
+
+ ROM_REGION( 0x020000, "calc3_rom", 0 )
+ ROM_LOAD( "fb040j.u33", 0x000000, 0x020000, CRC(299d0746) SHA1(67fe3a47ab01fa02ce2bb5836c2041986c19d875) )
+
+ ROM_REGION( 0x1000000, "gfx1", ROMREGION_ERASEFF )
+ ROM_LOAD( "fb-020a.u1", 0x000000, 0x100000, CRC(87e55c6d) SHA1(87886c045d7c30b8dee3c8fb0bf8f2cdbc5fd7fb) )
+ ROM_LOAD( "fb020b.u2", 0x100000, 0x100000, CRC(276b9d7b) SHA1(7a154f65b4737f2b6ac8effa3352711079f571dc) )
+ ROM_LOAD( "fb021a.u3", 0x200000, 0x100000, CRC(7da15d37) SHA1(345cf2242e8210a697294a45197f2b3b974de885) )
+ ROM_LOAD( "fb021b.u4", 0x300000, 0x100000, CRC(6a512d7b) SHA1(7fc3002d23262a9a590a283ea9e111e38d889ef2) )
+ ROM_LOAD( "fb-22a.u5", 0x400000, 0x100000, CRC(9039e5d3) SHA1(222452cd7947f7c99c68e495835cca62e0449b5c) )
+ ROM_LOAD( "fb-22b.u6", 0x500000, 0x100000, CRC(96ac9e54) SHA1(2b066375963dc57fe2ce89d65f6c0a9d183a838d) )
+ ROM_LOAD( "fb023.u7", 0x600000, 0x100000, CRC(132794bd) SHA1(bcc73c3183c59a4b66f79d04774773b8a9239501) )
+
+ ROM_REGION( 0x400000, "gfx2", 0 )
+ ROM_LOAD( "fb010.u65", 0x000000, 0x100000, CRC(296ffd92) SHA1(183a28e4594c428deb4726ed22d5166592b94b60) )
+ ROM_LOAD( "fb011.u66", 0x100000, 0x080000, CRC(500a0367) SHA1(6dc5190f81b21f59ee56a3b2332c8d86d6599782) )
+
+ ROM_REGION( 0x100000, "oki1", 0 )
+ ROM_LOAD( "fb000j.u43", 0x000000, 0x080000, CRC(a7522555) SHA1(ea88d90dda20bc309f98a1924c41551e7708e6af) )
+ ROM_LOAD( "fb001j_u.101", 0x080000, 0x080000, CRC(07d4e8e2) SHA1(0de911f452ddeb54b0b435b9c1cf5d5881175d44) )
+
+ ROM_REGION( 0x200000, "oki2", 0 )
+ ROM_LOAD( "fb-002.u45", 0x000000, 0x100000, CRC(010acc17) SHA1(2dc0897c7778eacf6bce12ff0adbadb307ea6c17) )
+ ROM_LOAD( "fb-003.u44", 0x100000, 0x100000, CRC(0aea4ac5) SHA1(8f3b30e505b0ba51c140a0a2c071680d4fa05db9) )
+ROM_END
+
+ROM_START( shogwarrbh )
+ ROM_REGION( 0x040000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "fbbh030a.u61", 0x000000, 0x020000, CRC(c3a66037) SHA1(4ca1b440ca822d6c6adecb5c0a3d83126bc775a2) )
+ ROM_LOAD16_BYTE( "fbbh031a.u62", 0x000001, 0x020000, CRC(e382acf8) SHA1(50177a525fb6138490c70e50f5b9ae476cb8d6de) )
+
+ ROM_REGION( 0x020000, "calc3_rom", 0 )
+ ROM_LOAD( "fb040a.u33", 0x000000, 0x020000, CRC(4b62c4d9) SHA1(35c943dde70438a411714070e42a84366db5ef83) )
+
+ ROM_REGION( 0x1000000, "gfx1", ROMREGION_ERASEFF )
+ ROM_LOAD( "fb-020a.u1", 0x000000, 0x100000, CRC(87e55c6d) SHA1(87886c045d7c30b8dee3c8fb0bf8f2cdbc5fd7fb) )
+ ROM_LOAD( "fb020b.u2", 0x100000, 0x100000, CRC(276b9d7b) SHA1(7a154f65b4737f2b6ac8effa3352711079f571dc) )
+ ROM_LOAD( "fb021a.u3", 0x200000, 0x100000, CRC(7da15d37) SHA1(345cf2242e8210a697294a45197f2b3b974de885) )
+ ROM_LOAD( "fb021b.u4", 0x300000, 0x100000, CRC(6a512d7b) SHA1(7fc3002d23262a9a590a283ea9e111e38d889ef2) )
+ ROM_LOAD( "fb-22a.u5", 0x400000, 0x100000, CRC(9039e5d3) SHA1(222452cd7947f7c99c68e495835cca62e0449b5c) )
+ ROM_LOAD( "fb-22b.u6", 0x500000, 0x100000, CRC(96ac9e54) SHA1(2b066375963dc57fe2ce89d65f6c0a9d183a838d) )
+ ROM_LOAD( "fb023.u7", 0x600000, 0x100000, CRC(132794bd) SHA1(bcc73c3183c59a4b66f79d04774773b8a9239501) )
+
+ ROM_REGION( 0x400000, "gfx2", 0 )
+ ROM_LOAD( "fb010.u65", 0x000000, 0x100000, CRC(296ffd92) SHA1(183a28e4594c428deb4726ed22d5166592b94b60) )
+ ROM_LOAD( "fb011.u66", 0x100000, 0x080000, CRC(500a0367) SHA1(6dc5190f81b21f59ee56a3b2332c8d86d6599782) )
+
+ ROM_REGION( 0x100000, "oki1", 0 )
+ ROM_LOAD( "fb001e.u43", 0x000000, 0x080000, CRC(f524aaa1) SHA1(006a886f9df2e57c51b61c6cea70a6574fc20304) )
+ ROM_LOAD( "fb000e.u42", 0x080000, 0x080000, CRC(969f1465) SHA1(4f56d1ad341b08f4db41b7ab2498740612ff7c3d) )
+
+ ROM_REGION( 0x200000, "oki2", 0 )
+ ROM_LOAD( "fb-002.u45", 0x000000, 0x100000, CRC(010acc17) SHA1(2dc0897c7778eacf6bce12ff0adbadb307ea6c17) )
+ ROM_LOAD( "fb-003.u44", 0x100000, 0x100000, CRC(0aea4ac5) SHA1(8f3b30e505b0ba51c140a0a2c071680d4fa05db9) )
+ROM_END
+
+GAME( 1992, fjbusterbh, shogwarr, shogwarr, shogwarr, kaneko16_shogwarr_state, shogwarr, ROT0, "e107", "Fujiyama Buster (Japan) Boss Hack by e107", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
+GAME( 1992, shogwarrbh, shogwarr, shogwarr, shogwarr, kaneko16_shogwarr_state, shogwarr, ROT0, "e107", "Shogun Warriors (World) Boss Hack by e107", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/kof2000.cpp b/src/hbmame/drivers/kof2000.cpp
new file mode 100644
index 00000000000..a4ceb7f840b
--- /dev/null
+++ b/src/hbmame/drivers/kof2000.cpp
@@ -0,0 +1,1204 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, kof2000d )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 2;
+ m_sma_prot->kof2000_decrypt_68k(cpuregion);
+ m_sma_prot->kof2000_install_protection(m_maincpu, m_banked_cart);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, kof2000h )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 2;
+ m_sma_prot->kof2000_install_protection(m_maincpu, m_banked_cart);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, kof2000m )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 2;
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, KOF2000_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, kof2kbsd )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 2;
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, kof2kxxx )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 2;
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, KOF2000_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, kof2knd )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 2;
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+
+ROM_START( kof2000d )
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "neo-sma", 0x0c0000, 0x040000, CRC(71c6e6bb) SHA1(1bd29ded4c6b29780db8e8b772c452189699ca89) )
+ ROM_LOAD16_WORD_SWAP( "257-p1.p1", 0x100000, 0x400000, CRC(60947b4c) SHA1(5faa0a7ac7734d6c8e276589bd12dd574264647d) )
+ ROM_LOAD16_WORD_SWAP( "257-p2.p2", 0x500000, 0x400000, CRC(1b7ec415) SHA1(f19fa44e9ee5b5a6eb4a051349d6bc4acc3bbbdb) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257d.c1", 0x0000000, 0x800000, CRC(abcdd424) SHA1(1d52aae8a7806d48c098c2a7a77dff6e02ac4870) )
+ ROM_LOAD16_BYTE( "257d.c2", 0x0000001, 0x800000, CRC(cda33778) SHA1(a619740364c952c443f27ed9b7c395610f2673c7) )
+ ROM_LOAD16_BYTE( "257d.c3", 0x1000000, 0x800000, CRC(087fb15b) SHA1(f77cb6e670cdf7709d84d770ecf28533cbfbe6de) )
+ ROM_LOAD16_BYTE( "257d.c4", 0x1000001, 0x800000, CRC(fe9dfde4) SHA1(23750ff0c4bc084d55eea66a5cdd0ef2d6c32cdc) )
+ ROM_LOAD16_BYTE( "257d.c5", 0x2000000, 0x800000, CRC(03ee4bf4) SHA1(8f26c5bc525a5786de8e25797e2875a1dfe527be) )
+ ROM_LOAD16_BYTE( "257d.c6", 0x2000001, 0x800000, CRC(8599cc5b) SHA1(9a05fc12273aebfbc4ac22e88b32ae9ecd269462) )
+ ROM_LOAD16_BYTE( "257d.c7", 0x3000000, 0x800000, CRC(71dfc3e2) SHA1(1889a8dc88993e35f9fd93ce2bee1de52995932d) )
+ ROM_LOAD16_BYTE( "257d.c8", 0x3000001, 0x800000, CRC(0fa30e5f) SHA1(0cb7fa6b0219e1af2df9b97786c677651a78f37a) )
+ROM_END
+
+ROM_START( kof2000ev ) // all confirmed (alt m1 = d404db70)
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "neo-sma.ev", 0x0c0000, 0x040000, CRC(329d80c9) SHA1(b1360c265a17a14b885dccfce67d14b3e5bc43a5) )
+ ROM_LOAD16_WORD_SWAP( "257ev.p1", 0x100000, 0x400000, CRC(70b76979) SHA1(d6543c5399f9064423923effe0558dbe2d46c1d7) )
+ ROM_LOAD16_WORD_SWAP( "257ev.p2", 0x500000, 0x400000, CRC(1ec748c2) SHA1(d2d9c78f35a148ed7629d6be02f4264956849beb) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_ENCRYPTED_256K( "257-m1.m1", CRC(4b749113) SHA1(2af2361146edd0ce3966614d90165a5c1afb8de4) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257ev.c1", 0x0000000, 0x800000, CRC(c89d1994) SHA1(2eb8a27f39dea743907b4be9e9d99f1858a30ba4) )
+ ROM_LOAD16_BYTE( "257ev.c2", 0x0000001, 0x800000, CRC(19754968) SHA1(ca9692d5eac8e6eef5e5dd9888c5e8edcc9a0a7a) )
+ ROM_LOAD16_BYTE( "257ev.c3", 0x1000000, 0x800000, CRC(c76b919b) SHA1(3f6245580e55c63d248478818005348f0cb92a6b) )
+ ROM_LOAD16_BYTE( "257ev.c4", 0x1000001, 0x800000, CRC(5e03f2af) SHA1(85b7ec527a70411ad27d32a1169915b62230a3a7) )
+ ROM_LOAD16_BYTE( "257ev.c5", 0x2000000, 0x800000, CRC(6a3b2fbd) SHA1(dbcf018f96767f753a2bab87f8d31fa6f6ef98d2) )
+ ROM_LOAD16_BYTE( "257ev.c6", 0x2000001, 0x800000, CRC(ac4a8edc) SHA1(a305c8c5df3c2191fcdb73d799074a4191f2a252) )
+ ROM_LOAD16_BYTE( "257ev.c7", 0x3000000, 0x800000, CRC(608ffca9) SHA1(0d3b184e44b9833f7338514e5633ccb3b3e39fb1) )
+ ROM_LOAD16_BYTE( "257ev.c8", 0x3000001, 0x800000, CRC(73280ea8) SHA1(76bad66577b6d9618f2a190d54259eb3b1082d69) )
+ROM_END
+
+ROM_START( kof2000r )
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257r.p3", 0x0c0000, 0x040000, CRC(11b98ae2) SHA1(fd901690334ccc26f0680427b05b5c4aad8b7e1a) )
+ ROM_LOAD16_WORD_SWAP( "257r.p1", 0x100000, 0x400000, CRC(a9f1fb34) SHA1(a09f2bac40f91fc6910edef9699b10197f08f589) )
+ ROM_LOAD16_WORD_SWAP( "257r.p2", 0x500000, 0x400000, CRC(9d26d55d) SHA1(ecb3b0bb98a24553d04c04c30f72f250ea86afeb) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_ENCRYPTED_256K( "257-m1.m1", CRC(4b749113) SHA1(2af2361146edd0ce3966614d90165a5c1afb8de4) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) )
+ ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) )
+ ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) )
+ ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) )
+ ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) )
+ ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) )
+ ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) )
+ ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) )
+ROM_END
+
+ROM_START( kof2kbh ) /* The King of Fighters 2000 - Hack by Dodowang - (AES mode: can choose Zero; Practice-can choose Zero - MVS mode: can choose Kula and Zero - Zero has icon) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257bh.p1", 0x000000, 0x100000, CRC(613d1fc2) SHA1(69a6d8add28291a14d69e9a098dd78a84f6c9b31) )
+ ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) )
+
+ NEO_SFIX_MT_512K
+ ROM_LOAD( "257bh.s1", 0x000000, 0x80000, CRC(36ae018e) SHA1(f06c3a6f8607b7cb689f3edacb37db6fe8b8f0b6) )
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257d.c1", 0x0000000, 0x800000, CRC(abcdd424) SHA1(1d52aae8a7806d48c098c2a7a77dff6e02ac4870) )
+ ROM_LOAD16_BYTE( "257d.c2", 0x0000001, 0x800000, CRC(cda33778) SHA1(a619740364c952c443f27ed9b7c395610f2673c7) )
+ ROM_LOAD16_BYTE( "257d.c3", 0x1000000, 0x800000, CRC(087fb15b) SHA1(f77cb6e670cdf7709d84d770ecf28533cbfbe6de) )
+ ROM_LOAD16_BYTE( "257d.c4", 0x1000001, 0x800000, CRC(fe9dfde4) SHA1(23750ff0c4bc084d55eea66a5cdd0ef2d6c32cdc) )
+ ROM_LOAD16_BYTE( "257d.c5", 0x2000000, 0x800000, CRC(03ee4bf4) SHA1(8f26c5bc525a5786de8e25797e2875a1dfe527be) )
+ ROM_LOAD16_BYTE( "257d.c6", 0x2000001, 0x800000, CRC(8599cc5b) SHA1(9a05fc12273aebfbc4ac22e88b32ae9ecd269462) )
+ ROM_LOAD16_BYTE( "257bh.c7", 0x3000000, 0x800000, CRC(f7636227) SHA1(a76b331c96a7bf6fb4123c88a15f565c82b13373) )
+ ROM_LOAD16_BYTE( "257bh.c8", 0x3000001, 0x800000, CRC(b887fe36) SHA1(d6fc2fba39c8f22ddbe911345ba1d21561cc4eb2) )
+ROM_END
+
+ROM_START( kof2kbj ) /* The King of Fighters 2000 - Hack by Jason/K3 - (AES mode: can choose Zero; Practice-can choose Zero - MVS mode: can choose Kula and Zero) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257bj.p1", 0x000000, 0x100000, CRC(fafe059e) SHA1(6167c6a2f8d8b2d08d8a2dfd26e1722bdca9c3f7) )
+ ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) )
+ ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) )
+ ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) )
+ ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) )
+ ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) )
+ ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) )
+ ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) )
+ ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) )
+ROM_END
+
+ROM_START( kof2kbsd )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257bsd.p1", 0x000000, 0x100000, CRC(391948a6) SHA1(a41759bdb587a8765e5f5cc7a4631e9b002d4cf4) )
+ ROM_LOAD16_WORD_SWAP( "257bsd.p2", 0x100000, 0x400000, CRC(7a6d80b8) SHA1(0a3bcf71a43b2b5dde0c33ed107c207a7c59e90c) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_ENCRYPTED_256K( "257-m1.m1", CRC(4b749113) SHA1(2af2361146edd0ce3966614d90165a5c1afb8de4) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257d.c1", 0x0000000, 0x800000, CRC(abcdd424) SHA1(1d52aae8a7806d48c098c2a7a77dff6e02ac4870) )
+ ROM_LOAD16_BYTE( "257d.c2", 0x0000001, 0x800000, CRC(cda33778) SHA1(a619740364c952c443f27ed9b7c395610f2673c7) )
+ ROM_LOAD16_BYTE( "257d.c3", 0x1000000, 0x800000, CRC(087fb15b) SHA1(f77cb6e670cdf7709d84d770ecf28533cbfbe6de) )
+ ROM_LOAD16_BYTE( "257d.c4", 0x1000001, 0x800000, CRC(fe9dfde4) SHA1(23750ff0c4bc084d55eea66a5cdd0ef2d6c32cdc) )
+ ROM_LOAD16_BYTE( "257d.c5", 0x2000000, 0x800000, CRC(03ee4bf4) SHA1(8f26c5bc525a5786de8e25797e2875a1dfe527be) )
+ ROM_LOAD16_BYTE( "257d.c6", 0x2000001, 0x800000, CRC(8599cc5b) SHA1(9a05fc12273aebfbc4ac22e88b32ae9ecd269462) )
+ ROM_LOAD16_BYTE( "257bsd.c7", 0x3000000, 0x800000, CRC(110f72a3) SHA1(7540aa2be692fbbcd887c8377ca6891d1ba1b6ed) )
+ ROM_LOAD16_BYTE( "257bsd.c8", 0x3000001, 0x800000, CRC(4347f6af) SHA1(fc744d68e04905af1fa8d39d8772fba67e14777f) )
+ROM_END
+
+ROM_START( kof2kce ) /* The King of Fighters 2000 - Colour fix by UNKNOWN - (Character colour change) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257-pg1.p1", 0x000000, 0x100000, CRC(5f809dbe) SHA1(2bc233dcff5622de86d01e3b74b840c7caf12982) )
+ ROM_LOAD16_WORD_SWAP( "257ce.p2", 0x100000, 0x400000, CRC(60b00b9b) SHA1(eb2ea3980dbd2fe4d15b9155d4de7593396f8555) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) )
+ ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) )
+ ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) )
+ ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) )
+ ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) )
+ ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) )
+ ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) )
+ ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) )
+ROM_END
+
+ROM_START( kof2kch ) /* The King of Fighters 2000 - Remix by Chase - (Character move change 20030503) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257ch.p1", 0x000000, 0x100000, CRC(6a4ac2cf) SHA1(0120d712439c909b96607b487bfbc93444e3da04) )
+ ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) )
+ ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) )
+ ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) )
+ ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) )
+ ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) )
+ ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) )
+ ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) )
+ ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) )
+ROM_END
+
+ROM_START( kof2kcp ) /* The King of Fighters 2000 - Colour fix by UNKNOWN - (Character colour change) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257-pg1.p1", 0x000000, 0x100000, CRC(5f809dbe) SHA1(2bc233dcff5622de86d01e3b74b840c7caf12982) )
+ ROM_LOAD16_WORD_SWAP( "257cp.p2", 0x100000, 0x400000, CRC(a73339fd) SHA1(cce171fdb4e3be4b8431eea60b0bea36630bd94f) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) )
+ ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) )
+ ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) )
+ ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) )
+ ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) )
+ ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) )
+ ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) )
+ ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) )
+ROM_END
+
+ROM_START( kof2keh ) /* The King of Fighters 2000 - Enhance by Ydmis - (Can choose Kula and Zero - ultra kill start is max) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257eh.p1", 0x000000, 0x100000, CRC(3a301e5b) SHA1(a8fe40cc1577bcf1503726cd38b502e8e5c4f621) )
+ ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) )
+ ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) )
+ ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) )
+ ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) )
+ ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) )
+ ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) )
+ ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) )
+ ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) )
+ROM_END
+
+ROM_START( kof2kehr ) /* The King of Fighters 2000 - Remix by Raymonose - (Character move change - can choose Kula and Zero - ultra power hack) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257ehr.p1", 0x000000, 0x100000, CRC(db0a8678) SHA1(d6f11011dfb9e7ee04cffbd9e1768a8fc9982fba) )
+ ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) )
+ ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) )
+ ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) )
+ ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) )
+ ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) )
+ ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) )
+ ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) )
+ ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) )
+ROM_END
+
+ROM_START( kof2kevo ) /* The King of Fighters 2000 - KOF2000 Evolution by Jason/K3 and Wesker - (KOF 2000 Evolution v1.2 - see readme for details) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257evo.p1", 0x000000, 0x100000, CRC(3107aa48) SHA1(e7240cc8697d63657ed59c8d2ea69e883d690d7d) )
+ ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) )
+ ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) )
+ ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) )
+ ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) )
+ ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) )
+ ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) )
+ ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) )
+ ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) )
+ROM_END
+
+ROM_START( kof2kevo1 ) /* [OLD] The King of Fighters 2000 N - (kof2kevo101) - KOF 2000 Evolution by Jason/K3 and Wesker - (KOF 2000 Evolution v1.01 - see readme for details) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257evo1.p1", 0x000000, 0x100000, CRC(ac684cce) SHA1(1fb72efd4fa0a4c40b0c16b913f5fa5fdd471d74) )
+ ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) )
+ ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) )
+ ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) )
+ ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) )
+ ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) )
+ ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) )
+ ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) )
+ ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) )
+ROM_END
+
+ROM_START( kof2kevo2 ) /* [OLD] The King of Fighters 2000 N - (kof2kevo10) - KOF 2000 Evolution by Jason/K3 and Wesker - (KOF 2000 Evolution v1.0 - see readme for details) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257evo2.p1", 0x000000, 0x100000, CRC(2331f409) SHA1(13344ccf1748be13e8605c8cd0f3e7786a0c250c) )
+ ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) )
+ ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) )
+ ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) )
+ ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) )
+ ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) )
+ ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) )
+ ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) )
+ ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) )
+ROM_END
+
+ROM_START( kof2kevo3 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257evo3.p1", 0x000000, 0x100000, CRC(93cc8aa5) SHA1(46226909fd182d9edefb529bfe4c91f8a5b02a9e) )
+ ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257d.c1", 0x0000000, 0x800000, CRC(abcdd424) SHA1(1d52aae8a7806d48c098c2a7a77dff6e02ac4870) )
+ ROM_LOAD16_BYTE( "257d.c2", 0x0000001, 0x800000, CRC(cda33778) SHA1(a619740364c952c443f27ed9b7c395610f2673c7) )
+ ROM_LOAD16_BYTE( "257d.c3", 0x1000000, 0x800000, CRC(087fb15b) SHA1(f77cb6e670cdf7709d84d770ecf28533cbfbe6de) )
+ ROM_LOAD16_BYTE( "257d.c4", 0x1000001, 0x800000, CRC(fe9dfde4) SHA1(23750ff0c4bc084d55eea66a5cdd0ef2d6c32cdc) )
+ ROM_LOAD16_BYTE( "257d.c5", 0x2000000, 0x800000, CRC(03ee4bf4) SHA1(8f26c5bc525a5786de8e25797e2875a1dfe527be) )
+ ROM_LOAD16_BYTE( "257d.c6", 0x2000001, 0x800000, CRC(8599cc5b) SHA1(9a05fc12273aebfbc4ac22e88b32ae9ecd269462) )
+ ROM_LOAD16_BYTE( "257d.c7", 0x3000000, 0x800000, CRC(71dfc3e2) SHA1(1889a8dc88993e35f9fd93ce2bee1de52995932d) )
+ ROM_LOAD16_BYTE( "257d.c8", 0x3000001, 0x800000, CRC(0fa30e5f) SHA1(0cb7fa6b0219e1af2df9b97786c677651a78f37a) )
+ROM_END
+
+ROM_START( kof2kgbh )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257gbh.p1", 0x000000, 0x100000, CRC(5527a8fb) SHA1(5c861ab496ab713d04fe26ad5e6f73c2bb52bf48) )
+ ROM_LOAD16_WORD_SWAP( "257gbh.p2", 0x100000, 0x400000, CRC(7992520d) SHA1(7718348355adbb05e64767ae5d075046ae9b5400) )
+
+ NEO_SFIX_MT_512K
+ // This came with the set but doesn't work
+ //NEO_SFIX_128K( "257gbh.s1", CRC(cabc287b) SHA1(dbf3adc0fe31d3c6c246ed4c996ca9b8c9bbfa4d) )
+
+ NEO_BIOS_AUDIO_256K( "257gbh.m1", CRC(a082f086) SHA1(809ef4a533cf541b86786f455a7f283a5acecd82) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257d.c1", 0x0000000, 0x800000, CRC(abcdd424) SHA1(1d52aae8a7806d48c098c2a7a77dff6e02ac4870) )
+ ROM_LOAD16_BYTE( "257d.c2", 0x0000001, 0x800000, CRC(cda33778) SHA1(a619740364c952c443f27ed9b7c395610f2673c7) )
+ ROM_LOAD16_BYTE( "257d.c3", 0x1000000, 0x800000, CRC(087fb15b) SHA1(f77cb6e670cdf7709d84d770ecf28533cbfbe6de) )
+ ROM_LOAD16_BYTE( "257d.c4", 0x1000001, 0x800000, CRC(fe9dfde4) SHA1(23750ff0c4bc084d55eea66a5cdd0ef2d6c32cdc) )
+ ROM_LOAD16_BYTE( "257d.c5", 0x2000000, 0x800000, CRC(03ee4bf4) SHA1(8f26c5bc525a5786de8e25797e2875a1dfe527be) )
+ ROM_LOAD16_BYTE( "257d.c6", 0x2000001, 0x800000, CRC(8599cc5b) SHA1(9a05fc12273aebfbc4ac22e88b32ae9ecd269462) )
+ ROM_LOAD16_BYTE( "257bh.c7", 0x3000000, 0x800000, CRC(f7636227) SHA1(a76b331c96a7bf6fb4123c88a15f565c82b13373) )
+ ROM_LOAD16_BYTE( "257bh.c8", 0x3000001, 0x800000, CRC(b887fe36) SHA1(d6fc2fba39c8f22ddbe911345ba1d21561cc4eb2) )
+ROM_END
+
+ROM_START( kof2kgold ) /* The King of Fighters 2000 - Colour fix by Anndy - (Character colour change - attack cremation gold) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257-pg1.p1", 0x000000, 0x100000, CRC(5f809dbe) SHA1(2bc233dcff5622de86d01e3b74b840c7caf12982) )
+ ROM_LOAD16_WORD_SWAP( "257gbh.p2", 0x100000, 0x400000, CRC(7992520d) SHA1(7718348355adbb05e64767ae5d075046ae9b5400) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) )
+ ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) )
+ ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) )
+ ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) )
+ ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) )
+ ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) )
+ ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) )
+ ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) )
+ROM_END
+
+ROM_START( kof2kice ) /* The King of Fighters 2000 - Colour fix by Zhangshee - (Character colour change - attack cremation ice blue) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257-pg1.p1", 0x000000, 0x100000, CRC(5f809dbe) SHA1(2bc233dcff5622de86d01e3b74b840c7caf12982) )
+ ROM_LOAD16_WORD_SWAP( "257ice.p2", 0x100000, 0x400000, CRC(95df1ddd) SHA1(faecf18584d5397a588a69d002968a341a12adcb) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) )
+ ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) )
+ ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) )
+ ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) )
+ ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) )
+ ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) )
+ ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) )
+ ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) )
+ROM_END
+
+ROM_START( kof2kiori )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257iori.p1", 0x000000, 0x100000, CRC(d7cdca85) SHA1(2cdc6f528512a8d8eff800602f00f75797e4a5f1) )
+ ROM_LOAD16_WORD_SWAP( "257iori.p2", 0x100000, 0x400000, CRC(ce947e0f) SHA1(0d86e181a1a6244fb61ac18d013352c3a9722ebd) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257d.c1", 0x0000000, 0x800000, CRC(abcdd424) SHA1(1d52aae8a7806d48c098c2a7a77dff6e02ac4870) )
+ ROM_LOAD16_BYTE( "257d.c2", 0x0000001, 0x800000, CRC(cda33778) SHA1(a619740364c952c443f27ed9b7c395610f2673c7) )
+ ROM_LOAD16_BYTE( "257d.c3", 0x1000000, 0x800000, CRC(087fb15b) SHA1(f77cb6e670cdf7709d84d770ecf28533cbfbe6de) )
+ ROM_LOAD16_BYTE( "257d.c4", 0x1000001, 0x800000, CRC(fe9dfde4) SHA1(23750ff0c4bc084d55eea66a5cdd0ef2d6c32cdc) )
+ ROM_LOAD16_BYTE( "257d.c5", 0x2000000, 0x800000, CRC(03ee4bf4) SHA1(8f26c5bc525a5786de8e25797e2875a1dfe527be) )
+ ROM_LOAD16_BYTE( "257d.c6", 0x2000001, 0x800000, CRC(8599cc5b) SHA1(9a05fc12273aebfbc4ac22e88b32ae9ecd269462) )
+ ROM_LOAD16_BYTE( "257iori.c7", 0x3000000, 0x800000, CRC(4230c654) SHA1(7e5cb48cbec8b27047e5642af58bebd71a9f986b) )
+ ROM_LOAD16_BYTE( "257iori.c8", 0x3000001, 0x800000, CRC(80aa8ac2) SHA1(7a828725e8442e19b1ad34327d9d9025d04f4853) )
+ROM_END
+
+ROM_START( kof2kjlc ) /* The King of Fighters 2000 - Colour fix by Jui Lee - (Character colour change for Athena 2P and Kula 2P) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257-pg1.p1", 0x000000, 0x100000, CRC(5f809dbe) SHA1(2bc233dcff5622de86d01e3b74b840c7caf12982) )
+ ROM_LOAD16_WORD_SWAP( "257jlc.p2", 0x100000, 0x400000, CRC(dc36885b) SHA1(b192edc43f598434877df3e2deddca53473bf537) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) )
+ ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) )
+ ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) )
+ ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) )
+ ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) )
+ ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) )
+ ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) )
+ ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) )
+ROM_END
+
+ROM_START( kof2kkf1 ) /* The King of Fighters 2000 - Hack by Kurouri - (MVS protection removed, can select Kula and Zero) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257kf1.p1", 0x000000, 0x100000, CRC(3a6bb418) SHA1(d794bf7ee14fcf3972360f7d47ed6cd08a3269d2) )
+ ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) )
+ ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) )
+ ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) )
+ ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) )
+ ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) )
+ ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) )
+ ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) )
+ ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) )
+ROM_END
+
+ROM_START( kof2kkvs ) /* The King of Fighters 2000 - Hack by KVS - (MVS protection removed - can select Kula and Zero) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257kvs.p1", 0x000000, 0x100000, CRC(de23e8a0) SHA1(737a3e9c7cac2338f382c3a55d5caa9810fb87ce) )
+ ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) )
+ ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) )
+ ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) )
+ ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) )
+ ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) )
+ ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) )
+ ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) )
+ ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) )
+ROM_END
+
+ROM_START( kof2kkzs ) /* The King of Fighters 2000 - Hack by UNKNOWN - (MVS protection removed - can choose Kula and Zero) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257kzs.p1", 0x000000, 0x100000, CRC(e41f350c) SHA1(d0d4feb6f91714abe11ec57ba9eecc7bb7f5b354) )
+ ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) )
+ ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) )
+ ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) )
+ ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) )
+ ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) )
+ ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) )
+ ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) )
+ ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) )
+ROM_END
+
+ROM_START( kof2knd )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257-pg1.p1", 0x000000, 0x100000, CRC(5f809dbe) SHA1(2bc233dcff5622de86d01e3b74b840c7caf12982) )
+ ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257d.c1", 0x0000000, 0x800000, CRC(abcdd424) SHA1(1d52aae8a7806d48c098c2a7a77dff6e02ac4870) )
+ ROM_LOAD16_BYTE( "257d.c2", 0x0000001, 0x800000, CRC(cda33778) SHA1(a619740364c952c443f27ed9b7c395610f2673c7) )
+ ROM_LOAD16_BYTE( "257d.c3", 0x1000000, 0x800000, CRC(087fb15b) SHA1(f77cb6e670cdf7709d84d770ecf28533cbfbe6de) )
+ ROM_LOAD16_BYTE( "257d.c4", 0x1000001, 0x800000, CRC(fe9dfde4) SHA1(23750ff0c4bc084d55eea66a5cdd0ef2d6c32cdc) )
+ ROM_LOAD16_BYTE( "257d.c5", 0x2000000, 0x800000, CRC(03ee4bf4) SHA1(8f26c5bc525a5786de8e25797e2875a1dfe527be) )
+ ROM_LOAD16_BYTE( "257d.c6", 0x2000001, 0x800000, CRC(8599cc5b) SHA1(9a05fc12273aebfbc4ac22e88b32ae9ecd269462) )
+ ROM_LOAD16_BYTE( "257d.c7", 0x3000000, 0x800000, CRC(71dfc3e2) SHA1(1889a8dc88993e35f9fd93ce2bee1de52995932d) )
+ ROM_LOAD16_BYTE( "257d.c8", 0x3000001, 0x800000, CRC(0fa30e5f) SHA1(0cb7fa6b0219e1af2df9b97786c677651a78f37a) )
+ROM_END
+
+ROM_START( kof2kpjc ) /* The King of Fighters 2000 - Colour fix by TcwLee - (Colour fix 20030720) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257-pg1.p1", 0x000000, 0x100000, CRC(5f809dbe) SHA1(2bc233dcff5622de86d01e3b74b840c7caf12982) )
+ ROM_LOAD16_WORD_SWAP( "257pjc.p2", 0x100000, 0x400000, CRC(3f94a4d3) SHA1(8fd23e05bde49e9ff25f070338b947c53bbf603f) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) )
+ ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) )
+ ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) )
+ ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) )
+ ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) )
+ ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) )
+ ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) )
+ ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) )
+ROM_END
+
+ROM_START( kof2kpjc1 ) /* [OLD] The King of Fighters 2000 N - (kof2kpjco) - Colour fix by TcwLee - (Colour fix - entire role change) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257-pg1.p1", 0x000000, 0x100000, CRC(5f809dbe) SHA1(2bc233dcff5622de86d01e3b74b840c7caf12982) )
+ ROM_LOAD16_WORD_SWAP( "257pjc1.p2", 0x100000, 0x400000, CRC(c954c944) SHA1(3ca35a5393351ee22ef651f8984067b18aa02144) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) )
+ ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) )
+ ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) )
+ ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) )
+ ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) )
+ ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) )
+ ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) )
+ ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) )
+ROM_END
+
+ROM_START( kof2kpjc2 ) /* [OLD] The King of Fighters 2000 N - (kof2kc2) - Colour fix by TcwLee - (Colour fix ver. 2) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257-pg1.p1", 0x000000, 0x100000, CRC(5f809dbe) SHA1(2bc233dcff5622de86d01e3b74b840c7caf12982) )
+ ROM_LOAD16_WORD_SWAP( "257pjc2.p2", 0x100000, 0x400000, CRC(136bd0a4) SHA1(5549ba017a9c633a3652ad3fc0d1c41bc247cdcd) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) )
+ ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) )
+ ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) )
+ ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) )
+ ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) )
+ ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) )
+ ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) )
+ ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) )
+ROM_END
+
+ROM_START( kof2kpjc3 ) /* [OLD] The King of Fighters 2000 N - (kof2kpjco2) - Colour fix by TcwLee - (Colour change - striker not perfect 20030302) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257-pg1.p1", 0x000000, 0x100000, CRC(5f809dbe) SHA1(2bc233dcff5622de86d01e3b74b840c7caf12982) )
+ ROM_LOAD16_WORD_SWAP( "257pjc3.p2", 0x100000, 0x400000, CRC(22bf407a) SHA1(dba889edbe0bd641ce678f0ffc79afed24659bde) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) )
+ ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) )
+ ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) )
+ ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) )
+ ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) )
+ ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) )
+ ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) )
+ ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) )
+ROM_END
+
+ROM_START( kof2kpls )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257pls.p1", 0x000000, 0x100000, CRC(052a5e17) SHA1(1f2c43981e1e762c0d0a81f23311e5d021e94472) )
+ ROM_LOAD16_WORD_SWAP( "257pls.p2", 0x100000, 0x400000, CRC(9d716a8b) SHA1(da32f57719155b8dfa86124312d03ee82fbc7151) )
+
+ NEO_SFIX_MT_512K
+ ROM_LOAD( "257pls.s1", 0x000000, 0x80000, CRC(5a8d9e10) SHA1(2eb244a28b891a6fadbbccf10afe47b78d7948f0) )
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257d.c1", 0x0000000, 0x800000, CRC(abcdd424) SHA1(1d52aae8a7806d48c098c2a7a77dff6e02ac4870) )
+ ROM_LOAD16_BYTE( "257d.c2", 0x0000001, 0x800000, CRC(cda33778) SHA1(a619740364c952c443f27ed9b7c395610f2673c7) )
+ ROM_LOAD16_BYTE( "257d.c3", 0x1000000, 0x800000, CRC(087fb15b) SHA1(f77cb6e670cdf7709d84d770ecf28533cbfbe6de) )
+ ROM_LOAD16_BYTE( "257d.c4", 0x1000001, 0x800000, CRC(fe9dfde4) SHA1(23750ff0c4bc084d55eea66a5cdd0ef2d6c32cdc) )
+ ROM_LOAD16_BYTE( "257d.c5", 0x2000000, 0x800000, CRC(03ee4bf4) SHA1(8f26c5bc525a5786de8e25797e2875a1dfe527be) )
+ ROM_LOAD16_BYTE( "257d.c6", 0x2000001, 0x800000, CRC(8599cc5b) SHA1(9a05fc12273aebfbc4ac22e88b32ae9ecd269462) )
+ ROM_LOAD16_BYTE( "257pls.c7", 0x3000000, 0x800000, CRC(eda5ea7f) SHA1(25e1d5279635eab65ba7b3f565d5cf0dd48ad201) )
+ ROM_LOAD16_BYTE( "257pls.c8", 0x3000001, 0x800000, CRC(6df754d8) SHA1(94469836ae8e08448a01f346a09e660ceed9371f) )
+ROM_END
+
+ROM_START( kof2krm ) /* The King of Fighters 2000 - Remix by Raymonose - (Character move change) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257rm.p1", 0x000000, 0x100000, CRC(597fdfc7) SHA1(10bb9e4ad0c3ff53336cc0e06303f83bcb5c94e4) )
+ ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) )
+ ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) )
+ ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) )
+ ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) )
+ ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) )
+ ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) )
+ ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) )
+ ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) )
+ROM_END
+
+ROM_START( kof2krp ) /* The King of Fighters 2000 - Remix PRO by FCHT - (Character move change v1.0a 20031103 - BETA) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257rp.p1", 0x000000, 0x100000, CRC(7c81d853) SHA1(b101b64a06ba6292d369d10f75a56de09b04823b) )
+ ROM_LOAD16_WORD_SWAP( "257rp.p2", 0x100000, 0x400000, CRC(82a6aeed) SHA1(36f369313999d23f50201c1e240736d00d4921da) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) )
+ ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) )
+ ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) )
+ ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) )
+ ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) )
+ ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) )
+ ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) )
+ ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) )
+ROM_END
+
+ROM_START( kof2kryu )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257ryu.p1", 0x000000, 0x100000, CRC(47806bd7) SHA1(fd61bd7c6758870c24446b07175537ed1c2135af) )
+ ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257d.c1", 0x0000000, 0x800000, CRC(abcdd424) SHA1(1d52aae8a7806d48c098c2a7a77dff6e02ac4870) )
+ ROM_LOAD16_BYTE( "257d.c2", 0x0000001, 0x800000, CRC(cda33778) SHA1(a619740364c952c443f27ed9b7c395610f2673c7) )
+ ROM_LOAD16_BYTE( "257d.c3", 0x1000000, 0x800000, CRC(087fb15b) SHA1(f77cb6e670cdf7709d84d770ecf28533cbfbe6de) )
+ ROM_LOAD16_BYTE( "257d.c4", 0x1000001, 0x800000, CRC(fe9dfde4) SHA1(23750ff0c4bc084d55eea66a5cdd0ef2d6c32cdc) )
+ ROM_LOAD16_BYTE( "257d.c5", 0x2000000, 0x800000, CRC(03ee4bf4) SHA1(8f26c5bc525a5786de8e25797e2875a1dfe527be) )
+ ROM_LOAD16_BYTE( "257d.c6", 0x2000001, 0x800000, CRC(8599cc5b) SHA1(9a05fc12273aebfbc4ac22e88b32ae9ecd269462) )
+ ROM_LOAD16_BYTE( "257d.c7", 0x3000000, 0x800000, CRC(71dfc3e2) SHA1(1889a8dc88993e35f9fd93ce2bee1de52995932d) )
+ ROM_LOAD16_BYTE( "257d.c8", 0x3000001, 0x800000, CRC(0fa30e5f) SHA1(0cb7fa6b0219e1af2df9b97786c677651a78f37a) )
+ROM_END
+
+ROM_START( kof2kseh ) /* The King of Fighters 2000 - Super Enhance Hack by Creamymami and Ydmis - (Can choose Kula and Zero - ultra kill start is max - super power hack) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257seh.p1", 0x000000, 0x100000, CRC(b84547e4) SHA1(1c01a764d5333d8acab392f24f9a2f8d00e257ca) )
+ ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) )
+ ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) )
+ ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) )
+ ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) )
+ ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) )
+ ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) )
+ ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) )
+ ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) )
+ROM_END
+
+ROM_START( kof2kst ) /* The King of Fighters 2000 N - Hack by KOF1995 - (Boss striker movement change - similar to kof2kevo from FGCH - can choose Kula and Zero) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257st.p1", 0x000000, 0x100000, CRC(e21736d5) SHA1(7ea8045775b5d9e111a94a641a372faaf2495a5e) )
+ ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) )
+ ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) )
+ ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) )
+ ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) )
+ ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) )
+ ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) )
+ ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) )
+ ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) )
+ROM_END
+
+ROM_START( kof2kwh ) /* The King of Fighters 2000 - Hack by Wesker - (Character move change for Takuma) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257wh.p1", 0x000000, 0x100000, CRC(5fa8d962) SHA1(8285b925c4edf3460ff5cf63fbcb7379568897ac) )
+ ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) )
+ ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) )
+ ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) )
+ ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) )
+ ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) )
+ ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) )
+ ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) )
+ ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) )
+ROM_END
+
+ROM_START( kof2kwh2 ) /* The King of Fighters 2000 - Hack by Wesker - (Character move change for Jhun) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257wh2.p1", 0x000000, 0x100000, CRC(06e47159) SHA1(45ae1f2c9c4393ff9cc0425a4a85c7bc1ad31c0e) )
+ ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) )
+ ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) )
+ ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) )
+ ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) )
+ ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) )
+ ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) )
+ ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) )
+ ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) )
+ROM_END
+
+ROM_START( kof2kxxx )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257xxx.p1", 0x000000, 0x100000, CRC(b88cd5eb) SHA1(81b5ef268991fe368c6efa836cb822fbcfe54920) )
+ ROM_LOAD16_WORD_SWAP( "257xxx.p2", 0x100000, 0x400000, CRC(1a10f2be) SHA1(67794176d3d834b85495fa653a8acd14901b1658) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_ENCRYPTED_256K( "257-m1.m1", CRC(4b749113) SHA1(2af2361146edd0ce3966614d90165a5c1afb8de4) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257xxx.c1", 0x0000000, 0x800000, CRC(3006a5e4) SHA1(e1fa9c32306a7501cb4789ec85521fd6fd7ad28c) )
+ ROM_LOAD16_BYTE( "257xxx.c2", 0x0000001, 0x800000, CRC(366fd118) SHA1(36abc1e8e48e47afdab9541a4612b346799693de) )
+ ROM_LOAD16_BYTE( "257xxx.c3", 0x1000000, 0x800000, CRC(5b16d7e3) SHA1(3a5cbfc47b7db0ee4f15232066c4f79544dee20f) )
+ ROM_LOAD16_BYTE( "257xxx.c4", 0x1000001, 0x800000, CRC(7e57dfc1) SHA1(7a07d1547306646538d29ba9bd3acdaca7c70907) )
+ ROM_LOAD16_BYTE( "257xxx.c5", 0x2000000, 0x800000, CRC(671904f4) SHA1(7bfd66b7f1866c06b161eb6cf594aa017b7088b2) )
+ ROM_LOAD16_BYTE( "257xxx.c6", 0x2000001, 0x800000, CRC(68adf255) SHA1(a60ad8adbec8c4e6ed85fd3b251a8f187aca85b1) )
+ ROM_LOAD16_BYTE( "257xxx.c7", 0x3000000, 0x800000, CRC(8c6b22b3) SHA1(7f4a204de276a9acae2c6d58b2b5c03f76bcab69) )
+ ROM_LOAD16_BYTE( "257xxx.c8", 0x3000001, 0x800000, CRC(6223bd1d) SHA1(94b512eb202aec084110e477b283591bad54d027) )
+ // Alternate (decrypted) roms
+ //NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+ //ROM_LOAD16_BYTE( "257d.c1", 0x0000000, 0x800000, CRC(abcdd424) SHA1(1d52aae8a7806d48c098c2a7a77dff6e02ac4870) )
+ //ROM_LOAD16_BYTE( "257d.c2", 0x0000001, 0x800000, CRC(cda33778) SHA1(a619740364c952c443f27ed9b7c395610f2673c7) )
+ //ROM_LOAD16_BYTE( "257d.c3", 0x1000000, 0x800000, CRC(087fb15b) SHA1(f77cb6e670cdf7709d84d770ecf28533cbfbe6de) )
+ //ROM_LOAD16_BYTE( "257d.c4", 0x1000001, 0x800000, CRC(fe9dfde4) SHA1(23750ff0c4bc084d55eea66a5cdd0ef2d6c32cdc) )
+ //ROM_LOAD16_BYTE( "257d.c5", 0x2000000, 0x800000, CRC(03ee4bf4) SHA1(8f26c5bc525a5786de8e25797e2875a1dfe527be) )
+ //ROM_LOAD16_BYTE( "257d.c6", 0x2000001, 0x800000, CRC(8599cc5b) SHA1(9a05fc12273aebfbc4ac22e88b32ae9ecd269462) )
+ //ROM_LOAD16_BYTE( "257xxx1.c7", 0x300000, 0x800000, CRC(05125a94) SHA1(cdd77c649945e15088dd07ba282e6dc9ef883a75) )
+ //ROM_LOAD16_BYTE( "257xxx1.c8", 0x300001, 0x800000, CRC(300eba2a) SHA1(42defa20e3a0760f64c4c0346ab48d664960c638) )
+ROM_END
+
+ROM_START( kof2ky ) /* The King of Fighters 2000 - Hack by Ydmis - (Can choose Kula) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257y.p1", 0x000000, 0x100000, CRC(ca715980) SHA1(869268d27fc2628ac1fe817b2d0491096821b8de) )
+ ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) )
+ ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) )
+ ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) )
+ ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) )
+ ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) )
+ ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) )
+ ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) )
+ ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) )
+ROM_END
+
+ROM_START( kof2kyd ) /* The King of Fighters 2000 - Revise by Dodowang and Ydmis - (Style change - can choose Kula and Zero) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257yd.p1", 0x000000, 0x100000, CRC(09c64b87) SHA1(8ad7a2c9cf0e360364ad5ee58ed514fbee015a65) )
+ ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) )
+ ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) )
+ ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) )
+ ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) )
+ ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) )
+ ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) )
+ ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) )
+ ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) )
+ROM_END
+
+ROM_START( kof2kyg ) /* The King of Fighters 2000 - Hack by Ydmis - (Can choose Kula and Zero) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257yg.p1", 0x000000, 0x100000, CRC(684f6f70) SHA1(660a35e8db9d44b246dfc788e5576fe8d138e580) )
+ ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) )
+ ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) )
+ ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) )
+ ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) )
+ ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) )
+ ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) )
+ ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) )
+ ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) )
+ROM_END
+
+ROM_START( kof2kz ) /* The King of Fighters 2000 - Hack by Ydmis - (Can choose Zero) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257z.p1", 0x000000, 0x100000, CRC(029a6b8a) SHA1(1179df1960dffc04860acb0a91c53e9c5cf7e107) )
+ ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) )
+ ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) )
+ ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) )
+ ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) )
+ ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) )
+ ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) )
+ ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) )
+ ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) )
+ROM_END
+
+ROM_START( kof2kzs ) /* The King of Fighters 2000 - Hack by UNKNOWN - (MVS protection removed - can choose Kula and Zero) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257zs.p1", 0x000000, 0x100000, CRC(ca73f3a5) SHA1(d083a47ff19317855da866e29eea3aa66a1ffb03) )
+ ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "257d.m1", CRC(d404db70) SHA1(8cd1f3e140a9a367de23544e76371b0491287909) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) )
+ ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) )
+ ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) )
+ ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) )
+ ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) )
+ ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) )
+ ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) )
+ ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) )
+ROM_END
+
+
+GAME( 2000, kof2000d, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000d, ROT0, "SNK", "Kof2000 (decrypted C)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2000ev, kof2000, neogeo_noslot, neogeo, neogeo_noslot_state, kof2000, ROT0, "hack", "Kof2000 (unknown ev)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2000r, kof2000, neogeo_noslot, neogeo, neogeo_noslot_state, kof2000, ROT0, "hack", "Kof2000 (KOF REMIX PRO)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2kbh, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000h, ROT0, "Dodowang","Kof2000 (Add Char - Zero has icon)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2kbj, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "Jason/K3", "Kof2000 (Add Char set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2kbsd, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2kbsd, ROT0, "Eddids / EGHT", "Kof2000 Boss Striker Pro ( Eddids, EGHT )", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2kce, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "hack", "Kof2000 (Char color changed set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2kch, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "Chase", "Kof2000 (Diff Moves 030503)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2kcp, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "hack", "Kof2000 (Char color changed set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2keh, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "Guangzhou Game Team", "Kof2000 (Add Char - Ultra kill start max)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2kehr, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "Raymonose", "Kof2000 (Add Char - Diff Moves - Ultra pow hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2kevo, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "Jason/K3 and Wesker", "Kof2000 EVOLUTION (v1.2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2kevo1, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "Jason/K3 and Wesker", "Kof2000 EVOLUTION (v1.01)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2kevo2, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "Jason/K3 and Wesker", "Kof2000 EVO (Evolution v1.0)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2kevo3, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2knd, ROT0, "FCHT-EGHT", "Kof2000 EVOLUTION (v1.3 by FCHT-EGHT)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2kgold, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "Anndy", "Kof2000 (Char color changed - Gold)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2kgbh, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, cmc50sfix, ROT0, "hack", "Kof2000 (Boss Hack - Gold Color Edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2kice, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "Zhangshee", "Kof2000 (Char color changed - Ice blue)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2kiori, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2knd, ROT0, "ZKW", "Kof2000 (Iori Orochi by ZKW)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2kjlc, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "Jui Lee", "Kof2000 (Char color changed for Athena 2P and Kula 2P)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2kkf1, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "Guangzhou Game Team", "Kof2000 (Add Char - MVS protection rem set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2kkvs, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "KVS", "Kof2000 (Add Char - MVS protection rem set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2kkzs, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "hack", "Kof2000 (Add Char - MVS protection rem set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2knd, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2knd, ROT0, "hack", "Kof2000 (non encrypted P,decrypted C)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2kpjc, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "TcwLee", "Kof2000 (Color Fix 030720)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2kpjc1, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "TcwLee", "Kof2000 (Color Fix - Entire role change)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2kpjc2, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "TcwLee", "Kof2000 (Color Fix v. 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2kpjc3, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "TcwLee", "Kof2000 (Color changed - Striker not Perfect 030302)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2kpls, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2knd, ROT0, "Guangzhou Game Team", "Kof2000 PLUS (by Guangzhou Game Team)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2krm, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "Raymonose", "Kof2000 (Diff Moves)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2krp, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "FCHT", "Kof2000 Remix Pro (Diff Moves v1.0a 031103 - Beta)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2kryu, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2knd, ROT0, "Iori Yagami", "Kof2000 EVX TION (Ryu Hack by Iori Yagami)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2kseh, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "Guangzhou Game Team", "Kof2000 (Add Char - Ultra kill start max - Super pow hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2kst, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "KOF1995", "Kof2000 (Add Char - Boss striker moves changed - Similar to kof2kevo from FGCH)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2kwh, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "Wesker", "Kof2000 (Diff Moves for Takuma)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2kwh2, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "Wesker", "Kof2000 (Diff Moves for Jhun)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2kxxx, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2kxxx, ROT0, "Crispy", "Kof2000 XXX (Crispy SP Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2ky, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "Ydmis", "Kof2000 (Add Kula)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2kyd, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "Dodowang and Ydmis", "Kof2000 (Style change - Select 2 Add Char)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2kyg, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "Guangzhou Game Team", "Kof2000 (Add Char set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2kz, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "Ydmis", "Kof2000 (Add Zero)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof2kzs, kof2000, neogeo_noslot, neogeo, neogeo_hbmame, kof2000m, ROT0, "hack", "Kof2000 (Add Char - MVS protection rem set 4)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/kof2001.cpp b/src/hbmame/drivers/kof2001.cpp
new file mode 100644
index 00000000000..62673ccfe35
--- /dev/null
+++ b/src/hbmame/drivers/kof2001.cpp
@@ -0,0 +1,2324 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+
+
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, kof2001d )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, kof2001m )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, KOF2001_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+// use this if the set has a s1 rom
+DRIVER_INIT_MEMBER( neogeo_hbmame, kf2k1pls )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, KOF2001_GFX_KEY);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, kf2k1pa )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, KOF2001_GFX_KEY);
+
+ int i, sx_size = memregion("fixed")->bytes();
+ uint8_t *rom = memregion("fixed")->base();
+
+ /* S-rom has its own unique encryption */
+ for( i = 0; i < sx_size; i++ )
+ rom[ i ] = bitswap<8>( rom[ i ], 3, 2, 4, 5, 1, 6, 0, 7 );
+}
+
+
+
+ROM_START( kof2001d )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) )
+ ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262d.c1", 0x0000000, 0x800000, CRC(103225b1) SHA1(41486C7BB421B6B54F3CA07621AABD907BF10E15) )
+ ROM_LOAD16_BYTE( "262d.c2", 0x0000001, 0x800000, CRC(f9d05d99) SHA1(C135DD3D5584DC58A46315D64F663E34BB64BEBF) )
+ ROM_LOAD16_BYTE( "262d.c3", 0x1000000, 0x800000, CRC(4c7ec427) SHA1(0156E2F79E7A62B15ACC2314AC6563A67AF0F256) )
+ ROM_LOAD16_BYTE( "262d.c4", 0x1000001, 0x800000, CRC(1d237aa6) SHA1(B007FE9F1F32F0FF947C6575741B47FB70976728) )
+ ROM_LOAD16_BYTE( "262d.c5", 0x2000000, 0x800000, CRC(c2256db5) SHA1(DAE6B7B0673B431F223D82F7C3A685DE70A1C035) )
+ ROM_LOAD16_BYTE( "262d.c6", 0x2000001, 0x800000, CRC(8d6565a9) SHA1(137C950D588D40C812C36967EC17D04D4FC56362) )
+ ROM_LOAD16_BYTE( "262d.c7", 0x3000000, 0x800000, CRC(d1408776) SHA1(E77C786070B2B851A8A36250722B4C902E7213ED) )
+ ROM_LOAD16_BYTE( "262d.c8", 0x3000001, 0x800000, CRC(954d0e16) SHA1(975803C130DF3A6E835B9BF0F8532D6586058C54) )
+ROM_END
+
+ROM_START( kof2001n )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262n.p1", 0x000000, 0x100000, CRC(eaf3acf1) SHA1 (d697b9820d4832b944def118c30c82bbb1495b97) )
+ ROM_LOAD16_WORD_SWAP( "262-pg2.sp2", 0x100000, 0x400000, CRC(91eea062) SHA1 (82bae42bbeedb9f3aa0c7c0b0a7a69be499cf98f) )
+
+ NEO_SFIX_128K( "262n.s1", CRC(de828076) SHA1 (7f79d0245b02e64bd4b50c103722f7e115d1e711) )
+
+ NEO_BIOS_AUDIO_256K( "262n.m1", CRC(4bcc537b) SHA1(9fcf1342bcd53d5eec12c46ee41a51bf543256c2) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262d.c1", 0x0000000, 0x800000, CRC(103225b1) SHA1(41486C7BB421B6B54F3CA07621AABD907BF10E15) )
+ ROM_LOAD16_BYTE( "262d.c2", 0x0000001, 0x800000, CRC(f9d05d99) SHA1(C135DD3D5584DC58A46315D64F663E34BB64BEBF) )
+ ROM_LOAD16_BYTE( "262d.c3", 0x1000000, 0x800000, CRC(4c7ec427) SHA1(0156E2F79E7A62B15ACC2314AC6563A67AF0F256) )
+ ROM_LOAD16_BYTE( "262d.c4", 0x1000001, 0x800000, CRC(1d237aa6) SHA1(B007FE9F1F32F0FF947C6575741B47FB70976728) )
+ ROM_LOAD16_BYTE( "262d.c5", 0x2000000, 0x800000, CRC(c2256db5) SHA1(DAE6B7B0673B431F223D82F7C3A685DE70A1C035) )
+ ROM_LOAD16_BYTE( "262d.c6", 0x2000001, 0x800000, CRC(8d6565a9) SHA1(137C950D588D40C812C36967EC17D04D4FC56362) )
+ ROM_LOAD16_BYTE( "262d.c7", 0x3000000, 0x800000, CRC(d1408776) SHA1(E77C786070B2B851A8A36250722B4C902E7213ED) )
+ ROM_LOAD16_BYTE( "262d.c8", 0x3000001, 0x800000, CRC(954d0e16) SHA1(975803C130DF3A6E835B9BF0F8532D6586058C54) )
+ROM_END
+
+ROM_START( kof2k1ay ) /* The King of Fighters 2001 - Revise by Kurouri and Ydmis - (Based on kof2001h - revise) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262ay.p1", 0x000000, 0x100000, CRC(069a0aa2) SHA1(3fd2218b8d94cff47e1e2369a163c82d1f3e5f41) )
+ ROM_LOAD16_WORD_SWAP( "262-pg2.sp2", 0x100000, 0x400000, CRC(91eea062) SHA1(82bae42bbeedb9f3aa0c7c0b0a7a69be499cf98f) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1b ) /* The King of Fighters 2001 - Hack by UNKNOWN - (Can choose Zero and Igniz) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262b.p1", 0x000000, 0x100000, CRC(376ea3fd) SHA1(9bb9ec73f1ee543ea0c2fd5ee73c487ea93de05e) )
+ ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1b1 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262b1.p1", 0x000000, 0x100000, CRC(832ff765) SHA1 (93bc612249ecbeddb12a80caed5cc6bb15ecac0a) )
+ ROM_LOAD16_WORD_SWAP( "262b1.p2", 0x100000, 0x400000, CRC(6762cf94) SHA1 (7444554b6de83b11a4c1ffc0230e646a6d5a7c75) )
+
+ NEO_SFIX_128K( "262st2.s1", CRC(2e3229a3) SHA1 (feb028bf43ae30e3091a67abc7c23a9816a3412e) )
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262d.c1", 0x0000000, 0x800000, CRC(103225b1) SHA1(41486C7BB421B6B54F3CA07621AABD907BF10E15) )
+ ROM_LOAD16_BYTE( "262d.c2", 0x0000001, 0x800000, CRC(f9d05d99) SHA1(C135DD3D5584DC58A46315D64F663E34BB64BEBF) )
+ ROM_LOAD16_BYTE( "262d.c3", 0x1000000, 0x800000, CRC(4c7ec427) SHA1(0156E2F79E7A62B15ACC2314AC6563A67AF0F256) )
+ ROM_LOAD16_BYTE( "262d.c4", 0x1000001, 0x800000, CRC(1d237aa6) SHA1(B007FE9F1F32F0FF947C6575741B47FB70976728) )
+ ROM_LOAD16_BYTE( "262d.c5", 0x2000000, 0x800000, CRC(c2256db5) SHA1(DAE6B7B0673B431F223D82F7C3A685DE70A1C035) )
+ ROM_LOAD16_BYTE( "262d.c6", 0x2000001, 0x800000, CRC(8d6565a9) SHA1(137C950D588D40C812C36967EC17D04D4FC56362) )
+ ROM_LOAD16_BYTE( "262b1.c7", 0x3000000, 0x800000, CRC(f9814461) SHA1(0d83d4e740f11d6216dc00c1515766e27625f2ea) )
+ ROM_LOAD16_BYTE( "262b1.c8", 0x3000001, 0x800000, CRC(94b8544b) SHA1(4a02c6013a24beffe3b5ccfcc5b321ccbf0186af) )
+ROM_END
+
+ROM_START( kof2k1b3 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262b3.p1", 0x000000, 0x100000, CRC(31b99298) SHA1(66bd449b0daee4d266b0c994fd87111ebbd5ce6c) )
+ ROM_LOAD16_WORD_SWAP( "262b3.p2", 0x100000, 0x400000, CRC(83cdd046) SHA1(0228f8b9b65fcefc27fb6e844e5d4d72cede8e74) )
+
+ NEO_SFIX_128K( "262b3.s1", CRC(6d209796) SHA1(95fdb865e47d37916573ba12e8ba4a4aaece1cba) )
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262d.c1", 0x0000000, 0x800000, CRC(103225b1) SHA1(41486C7BB421B6B54F3CA07621AABD907BF10E15) )
+ ROM_LOAD16_BYTE( "262d.c2", 0x0000001, 0x800000, CRC(f9d05d99) SHA1(C135DD3D5584DC58A46315D64F663E34BB64BEBF) )
+ ROM_LOAD16_BYTE( "262d.c3", 0x1000000, 0x800000, CRC(4c7ec427) SHA1(0156E2F79E7A62B15ACC2314AC6563A67AF0F256) )
+ ROM_LOAD16_BYTE( "262d.c4", 0x1000001, 0x800000, CRC(1d237aa6) SHA1(B007FE9F1F32F0FF947C6575741B47FB70976728) )
+ ROM_LOAD16_BYTE( "262d.c5", 0x2000000, 0x800000, CRC(c2256db5) SHA1(DAE6B7B0673B431F223D82F7C3A685DE70A1C035) )
+ ROM_LOAD16_BYTE( "262d.c6", 0x2000001, 0x800000, CRC(8d6565a9) SHA1(137C950D588D40C812C36967EC17D04D4FC56362) )
+ ROM_LOAD16_BYTE( "262d.c7", 0x3000000, 0x800000, CRC(d1408776) SHA1(E77C786070B2B851A8A36250722B4C902E7213ED) )
+ ROM_LOAD16_BYTE( "262d.c8", 0x3000001, 0x800000, CRC(954d0e16) SHA1(975803C130DF3A6E835B9BF0F8532D6586058C54) )
+ROM_END
+
+ROM_START( kof2k1b4 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262b4.p1", 0x000000, 0x100000, CRC(a63c2c82) SHA1(22ccf21f1c54d21a8dbe26668ef5f52b5273b611) )
+ ROM_LOAD16_WORD_SWAP( "262b4.p2", 0x100000, 0x400000, CRC(676da28e) SHA1(1ff9d9228ab07e981e703b635e1abf2a8e4ea450) )
+
+ NEO_SFIX_128K( "262b4.s1", CRC(8c5c479e) SHA1(89a04bd980c4b1702aacbb76a5505cdbcdd016d5) )
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262d.c1", 0x0000000, 0x800000, CRC(103225b1) SHA1(41486C7BB421B6B54F3CA07621AABD907BF10E15) )
+ ROM_LOAD16_BYTE( "262d.c2", 0x0000001, 0x800000, CRC(f9d05d99) SHA1(C135DD3D5584DC58A46315D64F663E34BB64BEBF) )
+ ROM_LOAD16_BYTE( "262d.c3", 0x1000000, 0x800000, CRC(4c7ec427) SHA1(0156E2F79E7A62B15ACC2314AC6563A67AF0F256) )
+ ROM_LOAD16_BYTE( "262d.c4", 0x1000001, 0x800000, CRC(1d237aa6) SHA1(B007FE9F1F32F0FF947C6575741B47FB70976728) )
+ ROM_LOAD16_BYTE( "262d.c5", 0x2000000, 0x800000, CRC(c2256db5) SHA1(DAE6B7B0673B431F223D82F7C3A685DE70A1C035) )
+ ROM_LOAD16_BYTE( "262d.c6", 0x2000001, 0x800000, CRC(8d6565a9) SHA1(137C950D588D40C812C36967EC17D04D4FC56362) )
+ ROM_LOAD16_BYTE( "262d.c7", 0x3000000, 0x800000, CRC(d1408776) SHA1(E77C786070B2B851A8A36250722B4C902E7213ED) )
+ ROM_LOAD16_BYTE( "262d.c8", 0x3000001, 0x800000, CRC(954d0e16) SHA1(975803C130DF3A6E835B9BF0F8532D6586058C54) )
+ROM_END
+
+ROM_START( kof2k1bd2 ) /* The King of Fighters 2001 - Colour Fix by Ayane - (Character colour change - attack cremation scarlet) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) )
+ ROM_LOAD16_WORD_SWAP( "262bd2.p2", 0x100000, 0x400000, CRC(13c14b1f) SHA1(c063e17f94994889ae6a576b7923eddabf3586a2) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1bh ) /* The King of Fighters 2001 - Hack by Dodowang - (Can choose Zero and Igniz) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262bh.p1", 0x000000, 0x100000, CRC(f91b5329) SHA1(9b5375090072e5ea8b97bf4ebb55787476ff964d) )
+ ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) )
+
+ NEO_SFIX_128K( "262bh.s1", CRC(e600c595) SHA1(7133d879bff4854bead500c0928e0f1d918b7bed) )
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1bh1 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262bh.p1", 0x000000, 0x100000, CRC(f91b5329) SHA1(9b5375090072e5ea8b97bf4ebb55787476ff964d) )
+ ROM_LOAD16_WORD_SWAP( "262-pg2.sp2", 0x100000, 0x400000, CRC(91eea062) SHA1 (82bae42bbeedb9f3aa0c7c0b0a7a69be499cf98f) )
+
+ NEO_SFIX_128K( "262bh.s1", CRC(e600c595) SHA1(7133d879bff4854bead500c0928e0f1d918b7bed) )
+
+ NEO_BIOS_AUDIO_256K( "262n.m1", CRC(4bcc537b) SHA1(9fcf1342bcd53d5eec12c46ee41a51bf543256c2) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262d.c1", 0x0000000, 0x800000, CRC(103225b1) SHA1(41486C7BB421B6B54F3CA07621AABD907BF10E15) )
+ ROM_LOAD16_BYTE( "262d.c2", 0x0000001, 0x800000, CRC(f9d05d99) SHA1(C135DD3D5584DC58A46315D64F663E34BB64BEBF) )
+ ROM_LOAD16_BYTE( "262d.c3", 0x1000000, 0x800000, CRC(4c7ec427) SHA1(0156E2F79E7A62B15ACC2314AC6563A67AF0F256) )
+ ROM_LOAD16_BYTE( "262d.c4", 0x1000001, 0x800000, CRC(1d237aa6) SHA1(B007FE9F1F32F0FF947C6575741B47FB70976728) )
+ ROM_LOAD16_BYTE( "262d.c5", 0x2000000, 0x800000, CRC(c2256db5) SHA1(DAE6B7B0673B431F223D82F7C3A685DE70A1C035) )
+ ROM_LOAD16_BYTE( "262d.c6", 0x2000001, 0x800000, CRC(8d6565a9) SHA1(137C950D588D40C812C36967EC17D04D4FC56362) )
+ ROM_LOAD16_BYTE( "262d.c7", 0x3000000, 0x800000, CRC(d1408776) SHA1(E77C786070B2B851A8A36250722B4C902E7213ED) )
+ ROM_LOAD16_BYTE( "262d.c8", 0x3000001, 0x800000, CRC(954d0e16) SHA1(975803C130DF3A6E835B9BF0F8532D6586058C54) )
+ROM_END
+
+
+ROM_START( kof2k1bs )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262bs.p1", 0x000000, 0x100000, CRC(b5becb3c) SHA1 (b3270392560205f321b58a5a5d0d6d9c7268242a) )
+ ROM_LOAD16_WORD_SWAP( "262bs.p2", 0x100000, 0x400000, CRC(295d0c5c) SHA1 (696aa96aeee38971015ddf4a1ed66ecf605a04c2) )
+
+ NEO_SFIX_128K( "262bs.s1", CRC(19b6587b) SHA1 (0d065d086a57c991ef90f24c5b44306463147294) )
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262d.c1", 0x0000000, 0x800000, CRC(103225b1) SHA1(41486C7BB421B6B54F3CA07621AABD907BF10E15) )
+ ROM_LOAD16_BYTE( "262d.c2", 0x0000001, 0x800000, CRC(f9d05d99) SHA1(C135DD3D5584DC58A46315D64F663E34BB64BEBF) )
+ ROM_LOAD16_BYTE( "262d.c3", 0x1000000, 0x800000, CRC(4c7ec427) SHA1(0156E2F79E7A62B15ACC2314AC6563A67AF0F256) )
+ ROM_LOAD16_BYTE( "262d.c4", 0x1000001, 0x800000, CRC(1d237aa6) SHA1(B007FE9F1F32F0FF947C6575741B47FB70976728) )
+ ROM_LOAD16_BYTE( "262d.c5", 0x2000000, 0x800000, CRC(c2256db5) SHA1(DAE6B7B0673B431F223D82F7C3A685DE70A1C035) )
+ ROM_LOAD16_BYTE( "262d.c6", 0x2000001, 0x800000, CRC(8d6565a9) SHA1(137C950D588D40C812C36967EC17D04D4FC56362) )
+ ROM_LOAD16_BYTE( "262bs.c7", 0x3000000, 0x800000, CRC(8d11aed2) SHA1(258d5c8bf229b9d1d4d4f1f766672c2b2bb6744b) )
+ ROM_LOAD16_BYTE( "262bs.c8", 0x3000001, 0x800000, CRC(9e7168f5) SHA1(5ce65e676d36a247f4d673f5e319e9b085c620be) )
+ROM_END
+
+ROM_START( kof2k1bs2 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262bh.p1", 0x000000, 0x100000, CRC(f91b5329) SHA1(9b5375090072e5ea8b97bf4ebb55787476ff964d) )
+ ROM_LOAD16_WORD_SWAP( "262rp.p2", 0x100000, 0x400000, CRC(91668d86) SHA1(3df31baaa1c87b040f88eeffff1a174960f9f1fc) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_ENCRYPTED_256K( "265-262-m1.m1", CRC(a7f8119f) SHA1(71805b39b8b09c32425cf39f9de59b2f755976c2) ) /* mask rom TC532000 */
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262bs2.c1", 0x0000000, 0x800000, CRC(634c374d) SHA1(d43086ef6e86ef39b2f9afda2aba47d17c55d943) ) /* Plane 0,1 */
+ ROM_LOAD16_BYTE( "262bs2.c2", 0x0000001, 0x800000, CRC(6b9534f9) SHA1(c52ab7a2ec7df788b03e5f5ff1e906e2d6512da7) ) /* Plane 2,3 */
+ ROM_LOAD16_BYTE( "262bs2.c3", 0x1000000, 0x800000, CRC(21d114db) SHA1(53789fae6cb07b7961f126e88fd2c97998885cd4) ) /* Plane 0,1 */
+ ROM_LOAD16_BYTE( "262bs2.c4", 0x1000001, 0x800000, CRC(7f4678f2) SHA1(3f36bbbe63cac787b551992e1e7f10e7ba8abe8d) ) /* Plane 2,3 */
+ ROM_LOAD16_BYTE( "262bs2.c5", 0x2000000, 0x800000, CRC(fe98132f) SHA1(1e21f3473d4786c44dcaa0018ad446ab50a86a3a) ) /* Plane 0,1 */
+ ROM_LOAD16_BYTE( "262bs2.c6", 0x2000001, 0x800000, CRC(91e3ed85) SHA1(14a72d05a8496826beb9e3b0e373c0038bd1d8e5) ) /* Plane 2,3 */
+ ROM_LOAD16_BYTE( "262bs2.c7", 0x3000000, 0x800000, CRC(e451915c) SHA1(9b4b2718e8ecf33c421a5b5363e7ff622bc3f4f2) ) /* Plane 0,1 */
+ ROM_LOAD16_BYTE( "262bs2.c8", 0x3000001, 0x800000, CRC(831943ba) SHA1(ae7c79d28edaaaf3f792a8317cceb4ad9264b2d1) ) /* Plane 2,3 */
+ROM_END
+
+ROM_START( kof2k1ce ) /* The King of Fighters 2001 - Colour fix by UNKNOWN - (Character colour change) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) )
+ ROM_LOAD16_WORD_SWAP( "262ce.p2", 0x100000, 0x400000, CRC(76d0b903) SHA1(a24a85defbbf282d2285e48119f42e3424a96e9d) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1cf1 ) /* [OLD] The King of Fighters 2001 - (kof2k1cfco) - Colour fix by C6F8 - (Character colour change for Iori p1 and p2) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) )
+ ROM_LOAD16_WORD_SWAP( "262cf1.p2", 0x100000, 0x400000, CRC(9060fc03) SHA1(cb831ff2e52087a551494772b1a0b4db83e23180) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1ch ) /* The King of Fighters 2001 - Remix by Chase - (Character move change - can choose Zero and Igniz) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262ch.p1", 0x000000, 0x100000, CRC(18ef4629) SHA1(d34be181230f703eb96d29d8641ca975a581e1eb) )
+ ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1cfc ) /* [OLD] The King of Fighters 2001 - (kof2k1cfco) - Colour fix by C6F8 - (Character colour change for Iori p1 and p2) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) )
+ ROM_LOAD16_WORD_SWAP( "262cfc.p2", 0x100000, 0x400000, CRC(3d91029f) SHA1(9024a521c519a9301cf4d041644cdf9406986184) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1clr ) /* The King of Fighters 2001 - Colour fix by UNKNOWN - (Character colour change) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) )
+ ROM_LOAD16_WORD_SWAP( "262clr.p2", 0x100000, 0x400000, CRC(bb8f76e5) SHA1(3f59ab1b19c12816fcec129ae71f4b5f1e7a1baa) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1cp ) /* The King of Fighters 2001 - Colour fix by UNKNOWN - (kof2k1cp) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) )
+ ROM_LOAD16_WORD_SWAP( "262cp.p2", 0x100000, 0x400000, CRC(827825f6) SHA1(e23c1f4fee1acf032cfa5245991610d48b946ccb) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1cp1 ) /* The King of Fighters 2001 - Colour fix by UNKNOWN - (kof2k1cp1) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) )
+ ROM_LOAD16_WORD_SWAP( "262cp1.p2", 0x100000, 0x400000, CRC(6fb2a367) SHA1(1cbe328e7e9f14445f0fa31b9ab19fc83ebab19a) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1cp2 ) /* The King of Fighters 2001 - Colour fix by UNKNOWN - (kof2k1cp2) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) )
+ ROM_LOAD16_WORD_SWAP( "262cp2.p2", 0x100000, 0x400000, CRC(ab26df49) SHA1(c918ab87bfa0db990bfeb35651ff5b3e4af990d8) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1cp3 ) /* The King of Fighters 2001 - Colour fix by UNKNOWN - (Character colour change) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) )
+ ROM_LOAD16_WORD_SWAP( "262cp3.p2", 0x100000, 0x400000, CRC(53f5cd5b) SHA1(6012b3f33d98c6fc647c362401bb536e721c0dfd) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1cp4 ) /* The King of Fighters 2001 - Colour fix by UNKNOWN - (Character colour change) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) )
+ ROM_LOAD16_WORD_SWAP( "262cp4.p2", 0x100000, 0x400000, CRC(91cb1f4a) SHA1(fbcdd53621cd596d91632e4ac3bb4b8d5b980aa1) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1cp5 ) /* The King of Fighters 2001 - Colour fix by UNKNOWN - (Character colour change) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) )
+ ROM_LOAD16_WORD_SWAP( "262cp5.p2", 0x100000, 0x400000, CRC(ce1a6381) SHA1(87ba0b1d761705a213d34987a49b1c3a5e4ecd66) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1cp6 ) /* The King of Fighters 2001 - Colour fix by UNKNOWN - (Character colour change) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) )
+ ROM_LOAD16_WORD_SWAP( "262cp6.p2", 0x100000, 0x400000, CRC(eb1b7410) SHA1(810f6ec155a549d401f68e98f571b73aefee5e21) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1cp7 ) /* The King of Fighters 2001 - Colour fix by UNKNOWN - (Character colour change - attack cremation ice blue) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) )
+ ROM_LOAD16_WORD_SWAP( "262cp7.p2", 0x100000, 0x400000, CRC(69629013) SHA1(041630bf4f6a8aa3f2a53beb683852b3fd0e3b7a) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1cr ) /* The King of Fighters 2001 - Revise by CrUmp - (Bases on kof2001h - revise) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262cr.p1", 0x000000, 0x100000, CRC(19f18567) SHA1(1dfb262d919107ef6173bfa5339fd2e39c1ca690) )
+ ROM_LOAD16_WORD_SWAP( "262-pg2.sp2", 0x100000, 0x400000, CRC(91eea062) SHA1(82bae42bbeedb9f3aa0c7c0b0a7a69be499cf98f) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1eh ) /* The King of Fighters 2001 - Enhance by Ydmis - (Bases on kof2001h - can choose Zero and Igniz - ultra kill start is max) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262eh.p1", 0x000000, 0x100000, CRC(32c4a98b) SHA1(a4142ae4ac4053af65efc815a29574a839bad0e3) )
+ ROM_LOAD16_WORD_SWAP( "262-pg2.sp2", 0x100000, 0x400000, CRC(91eea062) SHA1(82bae42bbeedb9f3aa0c7c0b0a7a69be499cf98f) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1ehc ) /* The King of Fighters 2001 - Enhance by Ydmis - (Bases on kof2001h - ultra kill start is max - ultra power hack) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262ehc.p1", 0x000000, 0x100000, CRC(1ebb4962) SHA1(8f80953ecf0053b735e80c77a9a3b51315c8538d) )
+ ROM_LOAD16_WORD_SWAP( "262-pg2.sp2", 0x100000, 0x400000, CRC(91eea062) SHA1(82bae42bbeedb9f3aa0c7c0b0a7a69be499cf98f) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1ehr ) /* The King of Fighters 2001 - Remix by Raymonose - (Bases on kof2001h - ultra kill start is max - ultra power hack - character move change) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262ehr.p1", 0x000000, 0x100000, CRC(afabe438) SHA1(3245650382a9f36cde7b66fe247bdd68b1adf30c) )
+ ROM_LOAD16_WORD_SWAP( "262-pg2.sp2", 0x100000, 0x400000, CRC(91eea062) SHA1(82bae42bbeedb9f3aa0c7c0b0a7a69be499cf98f) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1gm ) /* The King of Fighters 2001 - Colour fix by UNKNOWN - (Colour style remix) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) )
+ ROM_LOAD16_WORD_SWAP( "262gm.p2", 0x100000, 0x400000, CRC(888d765a) SHA1(95c31e720f415a5f46f4cdbeb8eb9d19dee85732) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1guan )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262guan.p1", 0x000000, 0x100000, CRC(8db710c2) SHA1(f54b78977fa55073715e438628a83f918d1371fa) )
+ ROM_LOAD16_WORD_SWAP( "262guan.p2", 0x100000, 0x400000, CRC(3e854c2c) SHA1(154871e713a7f142d445d2d8159895f1634528b8) )
+
+ NEO_SFIX_128K( "262guan.s1", CRC(25261ef4) SHA1(18d68f74ca566d2a966b27888ba17c99d35efb1d) )
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262d.c1", 0x0000000, 0x800000, CRC(103225b1) SHA1(41486C7BB421B6B54F3CA07621AABD907BF10E15) )
+ ROM_LOAD16_BYTE( "262d.c2", 0x0000001, 0x800000, CRC(f9d05d99) SHA1(C135DD3D5584DC58A46315D64F663E34BB64BEBF) )
+ ROM_LOAD16_BYTE( "262d.c3", 0x1000000, 0x800000, CRC(4c7ec427) SHA1(0156E2F79E7A62B15ACC2314AC6563A67AF0F256) )
+ ROM_LOAD16_BYTE( "262d.c4", 0x1000001, 0x800000, CRC(1d237aa6) SHA1(B007FE9F1F32F0FF947C6575741B47FB70976728) )
+ ROM_LOAD16_BYTE( "262d.c5", 0x2000000, 0x800000, CRC(c2256db5) SHA1(DAE6B7B0673B431F223D82F7C3A685DE70A1C035) )
+ ROM_LOAD16_BYTE( "262d.c6", 0x2000001, 0x800000, CRC(8d6565a9) SHA1(137C950D588D40C812C36967EC17D04D4FC56362) )
+ ROM_LOAD16_BYTE( "262d.c7", 0x3000000, 0x800000, CRC(d1408776) SHA1(E77C786070B2B851A8A36250722B4C902E7213ED) )
+ ROM_LOAD16_BYTE( "262d.c8", 0x3000001, 0x800000, CRC(954d0e16) SHA1(975803C130DF3A6E835B9BF0F8532D6586058C54) )
+ROM_END
+
+ROM_START( kof2k1ha ) /* The King of Fighters 2001 - (kof2k1ha) - Revise by UNKNOWN - (Alternate home version) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262ha.p1", 0x000000, 0x100000, CRC(b03df3de) SHA1(a56bb40e557e73d74a352884cabfbc5556fdca5b) )
+ ROM_LOAD16_WORD_SWAP( "262ha.p2", 0x100000, 0x400000, CRC(ccff204a) SHA1(251b32e2ce902bc6af001b14e6f04379ef52ab27) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262ha.m1", CRC(7f4d8a65) SHA1(c01b57d97079f86011ffdf9c52f7878ab5a9bed9) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1ha2 ) /* The King of Fighters 2001 - (kof2k1ha2) - Revise by UNKNOWN - (Alternate home version revision 2) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262ha2.p1", 0x000000, 0x100000, CRC(833b91f8) SHA1(cc9fe3efdfc67cb1bea3f36c9e59c0b0252dc58a) )
+ ROM_LOAD16_WORD_SWAP( "262ha2.p2", 0x100000, 0x400000, CRC(616179f9) SHA1(12e7d372a0d0bf3af1b41af19c3242748135370c) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262ha.m1", CRC(7f4d8a65) SHA1(c01b57d97079f86011ffdf9c52f7878ab5a9bed9) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1hao ) /* [OLD] The King of Fighters 2001 - (kof2k1hao) - Hack by UNKNOWN - (Alternate home version) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) )
+ ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) )
+
+ NEO_SFIX_MT_128K
+
+ // This set is all the original one except for this rom
+ NEO_BIOS_AUDIO_128K( "262hao.m1", CRC(c504deaf) SHA1(7b8146d7a4c645ea0eabb748da4878ed5748adae) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1hb ) /* The King of Fighters 2001 - Hack by Kurouri - (Bases on kof2001h - can choose Zero and Igniz) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262hb.p1", 0x000000, 0x100000, CRC(c17dddc5) SHA1(645c29343a56bc2de02ad913f7ebc74e5f496ee5) )
+ ROM_LOAD16_WORD_SWAP( "262-pg2.sp2", 0x100000, 0x400000, CRC(91eea062) SHA1(82bae42bbeedb9f3aa0c7c0b0a7a69be499cf98f) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1hgm ) /* The King of Fighters 2001 - Colour fix by UNKNOWN - (Colour style remix)? */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) )
+ ROM_LOAD16_WORD_SWAP( "262hgm.p2", 0x100000, 0x400000, CRC(26a89686) SHA1(4b8fc3dd0fbab61b9205a79939feba15582aa26e) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1ic2 ) /* The King of Fighters 2001 - Colour fix by Zhangshee - (Character colour change - attack cremation ice blue)? */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) )
+ ROM_LOAD16_WORD_SWAP( "262ic2.p2", 0x100000, 0x400000, CRC(8675134d) SHA1(cabd218f5531e4721eeb954ad8996836d01097c4) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1ice ) /* The King of Fighters 2001 - Colour fix by Zhangshee - (Character colour change - attack cremation ice blue) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) )
+ ROM_LOAD16_WORD_SWAP( "262ice.p2", 0x100000, 0x400000, CRC(99963006) SHA1(4ba2022bd429e4ce1a333712ef275d8d71ed7b44) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1k32 ) /* [OLD] The King of Fighters 2001 - (kof2k1k3r2) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k1k3r2.txt for more 20030714) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262k32.p1", 0x000000, 0x100000, CRC(7be1405a) SHA1(a85f6e6d360c2033abd8f36eb6bcc502a4e2a88e) )
+ ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1k33 ) /* [OLD] The King of Fighters 2001 - (kof2k1k3r3) - Remix by jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k1k3r3.txt for more 20030725) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262k33.p1", 0x000000, 0x100000, CRC(75f6e824) SHA1(f1731dcec65051b14d048df329e7bf637bfe87f3) )
+ ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1k34 ) /* [OLD] The King of Fighters 2001 - (kof2k1k3r4) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k1k3r4.txt for more 20030730) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262k34.p1", 0x000000, 0x100000, CRC(fef04a32) SHA1(efb5f70a722ed5825c8ad05456d0a98060af4430) )
+ ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1k35 ) /* [OLD] The King of Fighters 2001 - (kof2k1k3r5) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k1k3r5.txt for more 20030806) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262k35.p1", 0x000000, 0x100000, CRC(2978b172) SHA1(7d8a3494e76f617fc198e61a5663281c27588f87) )
+ ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1k36 ) /* [OLD] The King of Fighters 2001 - (kof2k1k3r6) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k1k3r5.txt for more 20030815) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262k36.p1", 0x000000, 0x100000, CRC(cfb88cd7) SHA1(5cbc2a0face3439c5c1f212fe6d93f18fb718942) )
+ ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1k37 ) /* [OLD] The King of Fighters 2001 - (kof2k1k3r7) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k1k3r7.txt for more 20030817) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262k37.p1", 0x000000, 0x100000, CRC(1d7b445a) SHA1(99dc9ceb2c68473c268ae142539038dff83458af) )
+ ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1k38 ) /* [OLD] The King of Fighters 2001 - (kof2k1k3r8) - Remix by jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k1k3r8.txt for more 20030823) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262k38.p1", 0x000000, 0x100000, CRC(8b513ac3) SHA1(0bb6e67d6b2924aec10a48dcc781a3e20bca8248) )
+ ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1k39 ) /* [OLD] The King of Fighters 2001 - (kof2k1k3r9) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k1k3r9.txt for more 20030826) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262k39.p1", 0x000000, 0x100000, CRC(28dfef34) SHA1(02a74b48d1c2f88c83e7249b7abce866fd7c9f8e) )
+ ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1k3a ) /* [OLD] The King of Fighters 2001 - (kof2k1k3r10) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k1k3r10.txt for more 20030907) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262k3a.p1", 0x000000, 0x100000, CRC(696ef78e) SHA1(c6c3bd3da1e839a676937027f948174cb2414530) )
+ ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1k3b ) /* [OLD] The King of Fighters 2001 - (kof2k1k3r11) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k1k3r11.txt for more 20031005) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262k3b.p1", 0x000000, 0x100000, CRC(27251457) SHA1(8a33cade6cc59b3e7407294faae692540721d4b6) )
+ ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1k3c ) /* [OLD] The King of Fighters 2001 - (kof2k1k3r12) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k1k3r12.txt for more 20031011) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262k3c.p1", 0x000000, 0x100000, CRC(720f4404) SHA1(59ea034c0b638dbc5da787738ac324c8ece36b08) )
+ ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1k3d ) /* [OLD] The King of Fighters 2001 - (kof2k1k3r13) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k1k3r13.txt for more 20031013) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262k3d.p1", 0x000000, 0x100000, CRC(bf7e6f7f) SHA1(a56927da0ff3bd914dbbc800faef4753c3fed1e6) )
+ ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1k3e ) /* [OLD] The King of Fighters 2001 - (kof2k1k3r14) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k1k3r14.txt for more 20031018) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262k3e.p1", 0x000000, 0x100000, CRC(531e2d77) SHA1(2b616c0ff7ca4612f5e639e27981d12d9b18f562) )
+ ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1k3f ) /* [OLD] The King of Fighters 2001 - (kof2k1k3r15) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k1k3r15.txt for more 20031019) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262k3f.p1", 0x000000, 0x100000, CRC(dcdcf815) SHA1(57f152496a5e847119e9eb399ba071db5b245a2d) )
+ ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1k3g ) /* [OLD] The King of Fighters 2001 - (kof2k1k3r16) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style - ultra revision, see kof2k1k3r16.htm for more 20031120) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262k3g.p1", 0x000000, 0x100000, CRC(fead4731) SHA1(387097c6839e45ccb07139f6b8d41064e780421f) )
+ ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1k3h ) /* [OLD] The King of Fighters 2001 - (kof2k1k3r17) - Remix by Jason/K3 - (Character move change ultra revision - can choose Igniz 20031202) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262k3h.p1", 0x000000, 0x100000, CRC(ac581390) SHA1(d3351eccee63292c01bb9fa338bfb6cb21421426) )
+ ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1k3o ) /* [OLD] The King of Fighters 2001 - (kof2k1k3o) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k1k3o.txt for more 20030629) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262k3o.p1", 0x000000, 0x100000, CRC(3531998e) SHA1(5682044819777b9dc2e26d1d3b5fbc07b7c81f2b) )
+ ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1ki )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262ki.p1", 0x000000, 0x100000, CRC(b6a4103e) SHA1(218e7d970810f30535980cca470811167978da97) )
+ ROM_LOAD16_WORD_SWAP( "262ki.p2", 0x100000, 0x400000, CRC(bb4b036f) SHA1(6f3bc151d24d90d5e22bcefca72874159e3bc525) )
+
+ NEO_SFIX_128K( "262ki.s1", CRC(290e8904) SHA1(0e5449e694a033309bee476b6481d0b5e0b84096) )
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262d.c1", 0x0000000, 0x800000, CRC(103225b1) SHA1(41486C7BB421B6B54F3CA07621AABD907BF10E15) )
+ ROM_LOAD16_BYTE( "262d.c2", 0x0000001, 0x800000, CRC(f9d05d99) SHA1(C135DD3D5584DC58A46315D64F663E34BB64BEBF) )
+ ROM_LOAD16_BYTE( "262d.c3", 0x1000000, 0x800000, CRC(4c7ec427) SHA1(0156E2F79E7A62B15ACC2314AC6563A67AF0F256) )
+ ROM_LOAD16_BYTE( "262d.c4", 0x1000001, 0x800000, CRC(1d237aa6) SHA1(B007FE9F1F32F0FF947C6575741B47FB70976728) )
+ ROM_LOAD16_BYTE( "262d.c5", 0x2000000, 0x800000, CRC(c2256db5) SHA1(DAE6B7B0673B431F223D82F7C3A685DE70A1C035) )
+ ROM_LOAD16_BYTE( "262d.c6", 0x2000001, 0x800000, CRC(8d6565a9) SHA1(137C950D588D40C812C36967EC17D04D4FC56362) )
+ ROM_LOAD16_BYTE( "262st.c7", 0x3000000, 0x800000, CRC(773f20e7) SHA1(fb01ac2c143583c12bb114c70f89b4d87528027d) )
+ ROM_LOAD16_BYTE( "262st.c8", 0x3000001, 0x800000, CRC(898fed6b) SHA1(47619d5aba883cd62d6a95cb8d1f07bb6672104c) )
+ROM_END
+
+ROM_START( kof2k1mk ) /* The King of Fighters 2001 - Revise by MasakiAnton - (Bases on kof2k1h - revise) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262mk.p1", 0x000000, 0x100000, CRC(97492f8e) SHA1(741f26907377aab55d16f34ec3e7906d59a087cc) )
+ ROM_LOAD16_WORD_SWAP( "262-pg2.sp2", 0x100000, 0x400000, CRC(91eea062) SHA1(82bae42bbeedb9f3aa0c7c0b0a7a69be499cf98f) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1mk2 ) /* The King of Fighters 2001 - Revise by MasakiAnton - (Bases on kof2001h - revise version 2.0) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262mk2.p1", 0x000000, 0x100000, CRC(e8e7d3b0) SHA1(11ab4f0fcf82fe72723e3a5e25561b89db1935c9) )
+ ROM_LOAD16_WORD_SWAP( "262-pg2.sp2", 0x100000, 0x400000, CRC(91eea062) SHA1(82bae42bbeedb9f3aa0c7c0b0a7a69be499cf98f) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1mke ) /* The King of Fighters 2001 - Revise by MasakiAnton - (Bases on kof2001h - revise) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262mke.p1", 0x000000, 0x100000, CRC(1d29382e) SHA1(a91929198fb6e16a5ccfac83a869d06afdff0bd8) )
+ ROM_LOAD16_WORD_SWAP( "262-pg2.sp2", 0x100000, 0x400000, CRC(91eea062) SHA1(82bae42bbeedb9f3aa0c7c0b0a7a69be499cf98f) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1lse ) /* The King of Fighters 2001 - Colour fix by CRC - LSE - (Character colour change for whip 2P, k'2P, VANESSA 2P, Angel 2P) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) )
+ ROM_LOAD16_WORD_SWAP( "262lse.p2", 0x100000, 0x400000, CRC(e9ba7d37) SHA1(6d9ec274391c0177abe0f570f826a82caff8eb30) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1pa )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262pa.p1", 0x000000, 0x100000, CRC(f8a71b6f) SHA1(e4cc249b36b8cb72aa162adff4cdb302ce220812) )
+ ROM_LOAD16_WORD_SWAP( "262-pg2.sp2", 0x100000, 0x400000, CRC(91eea062) SHA1(82bae42bbeedb9f3aa0c7c0b0a7a69be499cf98f) )
+
+ NEO_SFIX_128K( "262pa.s1", CRC(50986eeb) SHA1(cdca34ba5afdd7b56cd5430b3df80da53de9b990) )
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1pa2 ) // same as kof2k1pa except for s1
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262pa.p1", 0x000000, 0x100000, CRC(f8a71b6f) SHA1(e4cc249b36b8cb72aa162adff4cdb302ce220812) )
+ ROM_LOAD16_WORD_SWAP( "262-pg2.sp2", 0x100000, 0x400000, CRC(91eea062) SHA1(82bae42bbeedb9f3aa0c7c0b0a7a69be499cf98f) )
+
+ NEO_SFIX_128K( "262pa2.s1", CRC(a4da10fd) SHA1(3b5f73d284f0f912d96e07d7b30122eaa43a04a8) )
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262d.c1", 0x0000000, 0x800000, CRC(103225b1) SHA1(41486C7BB421B6B54F3CA07621AABD907BF10E15) )
+ ROM_LOAD16_BYTE( "262d.c2", 0x0000001, 0x800000, CRC(f9d05d99) SHA1(C135DD3D5584DC58A46315D64F663E34BB64BEBF) )
+ ROM_LOAD16_BYTE( "262d.c3", 0x1000000, 0x800000, CRC(4c7ec427) SHA1(0156E2F79E7A62B15ACC2314AC6563A67AF0F256) )
+ ROM_LOAD16_BYTE( "262d.c4", 0x1000001, 0x800000, CRC(1d237aa6) SHA1(B007FE9F1F32F0FF947C6575741B47FB70976728) )
+ ROM_LOAD16_BYTE( "262d.c5", 0x2000000, 0x800000, CRC(c2256db5) SHA1(DAE6B7B0673B431F223D82F7C3A685DE70A1C035) )
+ ROM_LOAD16_BYTE( "262d.c6", 0x2000001, 0x800000, CRC(8d6565a9) SHA1(137C950D588D40C812C36967EC17D04D4FC56362) )
+ ROM_LOAD16_BYTE( "262d.c7", 0x3000000, 0x800000, CRC(d1408776) SHA1(E77C786070B2B851A8A36250722B4C902E7213ED) )
+ ROM_LOAD16_BYTE( "262d.c8", 0x3000001, 0x800000, CRC(954d0e16) SHA1(975803C130DF3A6E835B9BF0F8532D6586058C54) )
+ROM_END
+
+ROM_START( kof2k1pjc ) /* The King of Fighters 2001 - Colour fix by TcwLee - (Colour fix 20030302) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) )
+ ROM_LOAD16_WORD_SWAP( "262pjc.p2", 0x100000, 0x400000, CRC(42a745a6) SHA1(c98c620ee41ba311b83d4484a2ec8c00f108524a) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1pjo ) /* [OLD] The King of Fighters 2001 - (kof2k1pjco) - Colour Fix by TcwLee - (Colour fix) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) )
+ ROM_LOAD16_WORD_SWAP( "262pjo.p2", 0x100000, 0x400000, CRC(1da00d8e) SHA1(a79535a963567ec2060dc2ca81ef2b9b5afcb21c) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1pj1 ) /* [OLD] The King of Fighters 2001 - (kof2k1c1) - Colour fix by TcwLee - (Character colour change ?? rev.2 ?? 1508) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) )
+ ROM_LOAD16_WORD_SWAP( "262pj1.p2", 0x100000, 0x400000, CRC(a287a90a) SHA1(dbccb523cba273d61b6a722d82e9013340c53d75) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1pj2 ) /* [OLD] The King of Fighters 2001 - (kof2k1c2) - Colour fix by TcwLee - (Character colour change - home use machine repair menue colour change) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) )
+ ROM_LOAD16_WORD_SWAP( "262pj2.p2", 0x100000, 0x400000, CRC(fb2387e0) SHA1(589c8cd61193f4a4319ec2b5551ed35fc51e6037) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1pj3 ) /* The King of Fighters 2001 - Colour fix by TcwLee - (Colour fix 20030720) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) )
+ ROM_LOAD16_WORD_SWAP( "262pj3.p2", 0x100000, 0x400000, CRC(8adb985a) SHA1(2f96d06c2924308e9e072f7f24f57a6c3525f9d4) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1pls )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262pls.p1", 0x000000, 0x100000, CRC(758529a7) SHA1(cefdc7049772dcb77d658ac8571a12eedabda3c9) )
+ ROM_LOAD16_WORD_SWAP( "262-pg2.sp2", 0x100000, 0x400000, CRC(91eea062) SHA1(82bae42bbeedb9f3aa0c7c0b0a7a69be499cf98f) )
+
+ NEO_SFIX_128K( "262pls.s1", CRC(088657e6) SHA1(7ab5eac3ff2a82e04fdc9dc8ee5d193db580e8d4) )
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1rm ) /* The King of Fighters 2001 - Remix by Raymonose - (Bases on kof2001h - character move change) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262rm.p1", 0x000000, 0x100000, CRC(9be74a1b) SHA1(4785e08ab499dabcd37312ca15c1b9e0d61b2f08) )
+ ROM_LOAD16_WORD_SWAP( "262-pg2.sp2", 0x100000, 0x400000, CRC(91eea062) SHA1(82bae42bbeedb9f3aa0c7c0b0a7a69be499cf98f) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1rp ) /* The King of Fighters 2001 - Remix PRO by Fighters Kim, Jason/K3 and Raymonose - (Remix PRO V1.02 final 2004.03.11) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262rp.p1", 0x000000, 0x100000, CRC(e9e42e55) SHA1(2a254d056ab046d2704e16ebbaa2b68c6e867dc7) )
+ ROM_LOAD16_WORD_SWAP( "262rp.p2", 0x100000, 0x400000, CRC(91668d86) SHA1(3df31baaa1c87b040f88eeffff1a174960f9f1fc) )
+
+ NEO_SFIX_128K( "262rp.s1", CRC(492f5efe) SHA1(e18895da5c294245b6e119421affbd4f0e168c7a) )
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1rp0 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262rp.p1", 0x000000, 0x100000, CRC(e9e42e55) SHA1(2a254d056ab046d2704e16ebbaa2b68c6e867dc7) )
+ ROM_LOAD16_WORD_SWAP( "262rp.p2", 0x100000, 0x400000, CRC(91668d86) SHA1(3df31baaa1c87b040f88eeffff1a174960f9f1fc) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_ENCRYPTED_256K( "265-262-m1.m1", CRC(a7f8119f) SHA1(71805b39b8b09c32425cf39f9de59b2f755976c2) ) /* mask rom TC532000 */
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262rp0.c1", 0x0000000, 0x800000, CRC(caeeb878) SHA1(233b5e1b864389e19fee16a1ab952c569dffc267) ) /* Plane 0,1 */
+ ROM_LOAD16_BYTE( "262rp0.c2", 0x0000001, 0x800000, CRC(278a8934) SHA1(c56f2cd6725c06bb4cfc79cdb03419b6392475fe) ) /* Plane 2,3 */
+ ROM_LOAD16_BYTE( "262rp0.c3", 0x1000000, 0x800000, CRC(ecfbe08f) SHA1(9459f62aaeb7b0187dbc33bd2e4bd116ef2ac425) ) /* Plane 0,1 */
+ ROM_LOAD16_BYTE( "262rp0.c4", 0x1000001, 0x800000, CRC(7ae95994) SHA1(d2e1e6606388a84875832e67f0190f94d7b74f55) ) /* Plane 2,3 */
+ ROM_LOAD16_BYTE( "262rp0.c5", 0x2000000, 0x800000, CRC(37f8e297) SHA1(4f40af3c55a9df3c252ac6e5ea466565cc254f8e) ) /* Plane 0,1 */
+ ROM_LOAD16_BYTE( "262rp0.c6", 0x2000001, 0x800000, CRC(34372229) SHA1(5e121ca6d02d96893c29a5ec0672fe7ab18d5d05) ) /* Plane 2,3 */
+ ROM_LOAD16_BYTE( "262rp0.c7", 0x3000000, 0x800000, CRC(713e7150) SHA1(4c16d7ad96237dc98eec684f1a3646a7da2771a2) ) /* Plane 0,1 */
+ ROM_LOAD16_BYTE( "262rp0.c8", 0x3000001, 0x800000, CRC(9aa68c3a) SHA1(6a21de5a1676fec157ad01246352ddd838842512) ) /* Plane 2,3 */
+ROM_END
+
+ROM_START( kof2k1rpo ) /* [OLD] The King of Fighters 2001 - (kof2k1rpo) - Remix PRO by Fighters Kim, Jason/K3 and Raymonose - (Remix Pro V1.0a 200311xx) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262rpo.p1", 0x000000, 0x100000, CRC(a749e1af) SHA1(b3d463c9868ca246bf6f84157815543ab637e1d4) )
+ ROM_LOAD16_WORD_SWAP( "262rpo.p2", 0x100000, 0x400000, CRC(72b2a025) SHA1(c8ff8ce42ec1f51931346367008a555198919658) )
+
+ NEO_SFIX_128K( "262rpo.s1", CRC(9ae95cb7) SHA1(a3402ec2cb9352ce635c138f678a1a0b047e5e0f) )
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1rp1 ) /* [OLD] The King of Fighters 2001 - kof2k1rpo1 - Remix PRO by Fighters Kim, Jason/K3 and Raymonose - (Remix Pro V1.01 final1 2003.12.06) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262rp1.p1", 0x000000, 0x100000, CRC(350f8571) SHA1(7ad5642b67b49025899ea925f96ddf910e9a5699) )
+ ROM_LOAD16_WORD_SWAP( "262rpo.p2", 0x100000, 0x400000, CRC(72b2a025) SHA1(c8ff8ce42ec1f51931346367008a555198919658) )
+
+ NEO_SFIX_128K( "262rpo.s1", CRC(9ae95cb7) SHA1(a3402ec2cb9352ce635c138f678a1a0b047e5e0f) )
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1ru ) /* The King of Fighters 2001 - Remix Ultra by Jason/K3 - (Character move change ultra revision - can choose Igniz 20040507 - v2.3) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262ru.p1", 0x000000, 0x100000, CRC(3377ebee) SHA1(52b70ba1bb0801db02be3862dde1fcaf8ae5075b) )
+ ROM_LOAD16_WORD_SWAP( "262ru.p2", 0x100000, 0x400000, CRC(394bcc59) SHA1(f08adf02bff87d7399e07f70acbecf1a3da3c731) )
+
+ NEO_SFIX_128K( "262ru.s1", CRC(a5d90035) SHA1(8c651aa58d135d4428f24cfc6b733b16812f33d6) )
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1ru0 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262ru.p1", 0x000000, 0x100000, CRC(3377ebee) SHA1(52b70ba1bb0801db02be3862dde1fcaf8ae5075b) )
+ ROM_LOAD16_WORD_SWAP( "262ru.p2", 0x100000, 0x400000, CRC(394bcc59) SHA1(f08adf02bff87d7399e07f70acbecf1a3da3c731) )
+
+ NEO_SFIX_128K( "262ru.s1", CRC(a5d90035) SHA1(8c651aa58d135d4428f24cfc6b733b16812f33d6) )
+
+ NEO_BIOS_AUDIO_256K( "262n.m1", CRC(4bcc537b) SHA1(9fcf1342bcd53d5eec12c46ee41a51bf543256c2) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262d.c1", 0x0000000, 0x800000, CRC(103225b1) SHA1(41486C7BB421B6B54F3CA07621AABD907BF10E15) )
+ ROM_LOAD16_BYTE( "262d.c2", 0x0000001, 0x800000, CRC(f9d05d99) SHA1(C135DD3D5584DC58A46315D64F663E34BB64BEBF) )
+ ROM_LOAD16_BYTE( "262d.c3", 0x1000000, 0x800000, CRC(4c7ec427) SHA1(0156E2F79E7A62B15ACC2314AC6563A67AF0F256) )
+ ROM_LOAD16_BYTE( "262d.c4", 0x1000001, 0x800000, CRC(1d237aa6) SHA1(B007FE9F1F32F0FF947C6575741B47FB70976728) )
+ ROM_LOAD16_BYTE( "262d.c5", 0x2000000, 0x800000, CRC(c2256db5) SHA1(DAE6B7B0673B431F223D82F7C3A685DE70A1C035) )
+ ROM_LOAD16_BYTE( "262d.c6", 0x2000001, 0x800000, CRC(8d6565a9) SHA1(137C950D588D40C812C36967EC17D04D4FC56362) )
+ ROM_LOAD16_BYTE( "262d.c7", 0x3000000, 0x800000, CRC(d1408776) SHA1(E77C786070B2B851A8A36250722B4C902E7213ED) )
+ ROM_LOAD16_BYTE( "262d.c8", 0x3000001, 0x800000, CRC(954d0e16) SHA1(975803C130DF3A6E835B9BF0F8532D6586058C54) )
+ROM_END
+
+ROM_START( kof2k1seh ) /* The King of Fighters 2001 - Super Enhance Hack by Ydmis - (Bases on kof2001h - can choose Zero and Igniz - ultra kill start is max - ultra power hack) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262seh.p1", 0x000000, 0x100000, CRC(bcc84782) SHA1(31164d1f7303f0dbca5c4c2c43d081bf1b5db7df) )
+ ROM_LOAD16_WORD_SWAP( "262-pg2.sp2", 0x100000, 0x400000, CRC(91eea062) SHA1(82bae42bbeedb9f3aa0c7c0b0a7a69be499cf98f) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1sob ) /* The King of Fighters 2001 - Colour fix by Ayane - (Character colour change - 1P character turns to a corpse - style remix) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) )
+ ROM_LOAD16_WORD_SWAP( "262sob.p2", 0x100000, 0x400000, CRC(e8f7eef2) SHA1(400a31d2b863cf0b100149ab254ac3b6d6158c0e) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1st )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262st.p1", 0x000000, 0x100000, CRC(87c5979b) SHA1 (53d7fbe3f4ed582abccd87ca966e430ac9766467) )
+ ROM_LOAD16_WORD_SWAP( "262st.p2", 0x100000, 0x400000, CRC(49d5112d) SHA1 (5ec0deec05f79878edbaa38107afcc0de17102fa) )
+
+ NEO_SFIX_128K( "262pls.s1", CRC(088657e6) SHA1(7ab5eac3ff2a82e04fdc9dc8ee5d193db580e8d4) )
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262d.c1", 0x0000000, 0x800000, CRC(103225b1) SHA1(41486C7BB421B6B54F3CA07621AABD907BF10E15) )
+ ROM_LOAD16_BYTE( "262d.c2", 0x0000001, 0x800000, CRC(f9d05d99) SHA1(C135DD3D5584DC58A46315D64F663E34BB64BEBF) )
+ ROM_LOAD16_BYTE( "262d.c3", 0x1000000, 0x800000, CRC(4c7ec427) SHA1(0156E2F79E7A62B15ACC2314AC6563A67AF0F256) )
+ ROM_LOAD16_BYTE( "262d.c4", 0x1000001, 0x800000, CRC(1d237aa6) SHA1(B007FE9F1F32F0FF947C6575741B47FB70976728) )
+ ROM_LOAD16_BYTE( "262d.c5", 0x2000000, 0x800000, CRC(c2256db5) SHA1(DAE6B7B0673B431F223D82F7C3A685DE70A1C035) )
+ ROM_LOAD16_BYTE( "262d.c6", 0x2000001, 0x800000, CRC(8d6565a9) SHA1(137C950D588D40C812C36967EC17D04D4FC56362) )
+ ROM_LOAD16_BYTE( "262st.c7", 0x3000000, 0x800000, CRC(773f20e7) SHA1(fb01ac2c143583c12bb114c70f89b4d87528027d) )
+ ROM_LOAD16_BYTE( "262st.c8", 0x3000001, 0x800000, CRC(898fed6b) SHA1(47619d5aba883cd62d6a95cb8d1f07bb6672104c) )
+ROM_END
+
+ROM_START( kof2k1st2 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262st2.p1", 0x000000, 0x100000, CRC(ce91a972) SHA1(2e2f42385a82b5f95ae461465c57890bf367f82d) )
+ ROM_LOAD16_WORD_SWAP( "262st2.p2", 0x100000, 0x400000, CRC(1420ef21) SHA1(af3d754a2d4d22d573a85bda5d8dda20f38fc369) )
+
+ NEO_SFIX_128K( "262st2.s1", CRC(2e3229a3) SHA1 (feb028bf43ae30e3091a67abc7c23a9816a3412e) )
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262d.c1", 0x0000000, 0x800000, CRC(103225b1) SHA1(41486C7BB421B6B54F3CA07621AABD907BF10E15) )
+ ROM_LOAD16_BYTE( "262d.c2", 0x0000001, 0x800000, CRC(f9d05d99) SHA1(C135DD3D5584DC58A46315D64F663E34BB64BEBF) )
+ ROM_LOAD16_BYTE( "262d.c3", 0x1000000, 0x800000, CRC(4c7ec427) SHA1(0156E2F79E7A62B15ACC2314AC6563A67AF0F256) )
+ ROM_LOAD16_BYTE( "262d.c4", 0x1000001, 0x800000, CRC(1d237aa6) SHA1(B007FE9F1F32F0FF947C6575741B47FB70976728) )
+ ROM_LOAD16_BYTE( "262d.c5", 0x2000000, 0x800000, CRC(c2256db5) SHA1(DAE6B7B0673B431F223D82F7C3A685DE70A1C035) )
+ ROM_LOAD16_BYTE( "262d.c6", 0x2000001, 0x800000, CRC(8d6565a9) SHA1(137C950D588D40C812C36967EC17D04D4FC56362) )
+ ROM_LOAD16_BYTE( "262st.c7", 0x3000000, 0x800000, CRC(773f20e7) SHA1(fb01ac2c143583c12bb114c70f89b4d87528027d) )
+ ROM_LOAD16_BYTE( "262st.c8", 0x3000001, 0x800000, CRC(898fed6b) SHA1(47619d5aba883cd62d6a95cb8d1f07bb6672104c) )
+ROM_END
+
+ROM_START( kof2k1wh ) /* The King of Fighters 2001 - Remix by Wesker - (Character move change) */
+ // there's a decrypted version of this set, using s1 and cx from kof2k1pa2
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262wh.p1", 0x000000, 0x100000, CRC(67788800) SHA1(be87196cee03a0ca209319d2fa577ddf61afcaf4) )
+ ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1z1 ) /* The King of Fighters 2001 - Hack by Zhangshee - (Can choose Zero and Igniz) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262z1.p1", 0x000000, 0x100000, CRC(d170a91d) SHA1(155e63a5af548f708228123f44c4c2776d470a1b) )
+ ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2k1z2 ) /* The King of Fighters 2001 - Hack by Zhangshee - (Can choose Zero and Igniz - ??) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262z2.p1", 0x000000, 0x100000, CRC(71b5d0ff) SHA1(78ad8da1c97883e8580137dcdc8538ce090b37c4) )
+ ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "262d.m1", CRC(2fb0a8a5) SHA1(9878370ff8cef3e9c9f307ad64c29522dd625c8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+
+
+GAME( 2001, kof2001d, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001d, ROT0, "Eolith / SNK", "Kof2001 (decrypted C)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2001n, kof2001, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof2001 (fully decrypted)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1ay, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Kurouri and Ydmis", "Kof2001 (Revised set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1b, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "hack", "Kof2001 (Add Char set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1b1, kof2001, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Kof1996 / KQZ / Zuojie", "Kof2001 (Boss Fixed Version by KOF1996, KQZ & ZUOJIE)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1b3, kof2001, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "NeHt", "Kof2001 (Bloodlust)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1b4, kof2001, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Katana", "Kof2001 (Bloodlust Reload hack by Katana)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1bd2, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Ayane", "Kof2001 (Char color changed - Attack cremation scarlet)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1bh, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kf2k1pls, ROT0, "Dodowang", "Kof2001 (Add Char set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1bh1, kof2001, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof2001 (Boss Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1bs, kof2001, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Eddids", "Kof2001 PS2 PLUS ( Eddids )", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1bs2, kof2001, neogeo_noslot, neogeo, neogeo_noslot_state, kof2001, ROT0, "EGCG / Dodowang", "Kof2001 Boss Enabler v2.0 by Dodowang [EGCG]", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1ce, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "hack", "Kof2001 (Char color changed set 9)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1cfc, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "C6F8", "Kof2001 (Char color changed set 9 - rel 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1cf1, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "C6F8", "Kof2001 (Iori p1 and p2 Color Changed)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1ch, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Chase", "Kof2001 (Add Char - Diff Moves)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1clr, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "hack", "Kof2001 (Char color changed set 8)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1cp, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "hack", "Kof2001 (Char color changed set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1cp1, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "hack", "Kof2001 (Char color changed set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1cp2, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "hack", "Kof2001 (Char color changed set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1cp3, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "hack", "Kof2001 (Char color changed set 4)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1cp4, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "hack", "Kof2001 (Char color changed set 5)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1cp5, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "hack", "Kof2001 (Char color changed set 6)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1cp6, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "hack", "Kof2001 (Char color changed set 7)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1cp7, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "hack", "Kof2001 (Char color changed - Attack cremation ice blue set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1cr, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "CrUmp", "Kof2001 (Revised set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1eh, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Ydmis", "Kof2001 (Add Char - Ultra kill start max)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1ehc, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Ydmis", "Kof2001 (Ultra kill start max - Ultra pow hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1ehr, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Raymonose", "Kof2001 (Ultra kill start max - Ultra pow hack - Diff Moves)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1gm, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "hack", "Kof2001 (Color style remix set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1guan, kof2001, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "NGRT", "Kof2001 (Guan Version (Remix by NGRT))", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1ha, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "hack", "Kof2001 (Alternate home ver)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1ha2, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "hack", "Kof2001 (Alternate home ver rev.2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1hao, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "hack", "Kof2001 (Alternate home ver old)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1hb, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Kurouri", "Kof2001 (Add Char set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1hgm, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "hack", "Kof2001 (Color style remix set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1ice, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Zhangshee", "Kof2001 (Char color changed - Attack cremation ice blue set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1ic2, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Zhangshee", "Kof2001 (Char color changed - Attack cremation ice blue set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k1k3o, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Jason/K3", "Kof2001 (Moves KOF 98 style - 030629)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k1k32, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Jason/K3", "Kof2001 (Moves KOF 98 style - 030714)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k1k33, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Jason/K3", "Kof2001 (Moves KOF 98 style - 030725)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k1k34, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Jason/K3", "Kof2001 (Moves KOF 98 style - 030730)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k1k35, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Jason/K3", "Kof2001 (Moves KOF 98 style - 030806)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k1k36, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Jason/K3", "Kof2001 (Moves KOF 98 style - 030815)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k1k37, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Jason/K3", "Kof2001 (Moves KOF 98 style - 030817)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k1k38, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Jason/K3", "Kof2001 (Moves KOF 98 style - 030823)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k1k39, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Jason/K3", "Kof2001 (Moves KOF 98 style - 030826)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k1k3a, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Jason/K3", "Kof2001 (Moves KOF 98 style - 030907)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k1k3b, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Jason/K3", "Kof2001 (Moves KOF 98 style - 031005)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k1k3c, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Jason/K3", "Kof2001 (Moves KOF 98 style - 031011)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k1k3d, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Jason/K3", "Kof2001 (Moves KOF 98 style - 031013)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k1k3e, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Jason/K3", "Kof2001 (Moves KOF 98 style - 031018)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k1k3f, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Jason/K3", "Kof2001 (Moves KOF 98 style - 031019)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k1k3g, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Jason/K3", "Kof2001 (Moves KOF 98 style - Ultra rev - 031120)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k1k3h, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Jason/K3", "Kof2001 (Moves KOF 98 style - Add Igniz - 031202)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1ki, kof2001, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Kalce", "Kof2001 PLUS (Special ST V0.5 by Kalce)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1lse, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "CRC-LSE", "Kof2001 (Char color changed for whip 2P, k'2P, VANESSA 2P, Angel 2P)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1mk, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "MasakiAnton", "Kof2001 (Revised set 3 Old)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1mk2, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "MasakiAnton", "Kof2001 (Revised set 3 v2.0)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1mke, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "MasakiAnton", "Kof2001 (Revised set 4)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k1pa, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kf2k1pa, ROT0, "bootleg", "Kof2001 Plus (set 2, bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k1pa2, kof2001, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof2001 PLUS (Other Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k1pjc, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "TcwLee", "Kof2001 (Color Fix 030302)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1pjo, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "TcwLee", "Kof2001 (Color Fix)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1pj1, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "TcwLee", "Kof2001 (Char color changed ?? rev.2 ?? 1508)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1pj2, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "TcwLee", "Kof2001 (Char color changed - Machine repair menu col changed)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k1pj3, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "TcwLee", "Kof2001 (Color Fix 030720)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k1pls, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kf2k1pls, ROT0, "bootleg", "Kof2001 Plus (set 1, bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1rm, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Raymonose", "Kof2001 (Diff Moves set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, kof2k1rp, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kf2k1pls, ROT0, "Fighters Kim, Jason/K3 and Raymonose", "Kof2001 Remix Pro (v1.02 final 040311)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1rp0, kof2001, neogeo_noslot, neogeo, neogeo_noslot_state, kof2001, ROT0, "FGCH / Jason / Kim / Raymonose", "Kof2001 REMIX PRO v1.02 Final by Jason, Kim & Raymonose [FGCH]", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k1rp1, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kf2k1pls, ROT0, "Fighters Kim, Jason/K3 and Raymonose", "Kof2001 Remix Pro (V1.01 final1 031206)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k1rpo, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kf2k1pls, ROT0, "Fighters Kim, Jason/K3 and Raymonose", "Kof2001 Remix Pro (V1.0a 0311xx)", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, kof2k1ru, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kf2k1pls, ROT0, "Jason/K3", "Kof2001 Remix Ultra (Diff Moves ultra rev - Add Igniz - 20040507 - v2.3)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1ru0, kof2001, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Jason", "Kof2001 REMIX ULTRA Ver 2.3 by Jason", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1seh, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Ydmis", "Kof2001 (Add Char - Ultra kill start max - Ultra pow hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1sob, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Ayane", "Kof2001 (Char color changed - 1P char corpse-style remix)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k1st, kof2001, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Kof1996", "Kof2001 Special ST Version (Hack by KOF1996)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1st2, kof2001, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Kof1996", "Kof2001 (Special ST Version hack by Kof1996)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1wh, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Wesker", "Kof2001 (Diff Moves set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1z1, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Zhangshee", "Kof2001 (Add Char set 4)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kof2k1z2, kof2001, neogeo_noslot, neogeo, neogeo_hbmame, kof2001m, ROT0, "Zhangshee", "Kof2001 (Add Char set 5)", MACHINE_SUPPORTS_SAVE )
+
+
+//PSmame
+
+ROM_START( kof2001hc01 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262hc01.p1", 0x000000, 0x100000, CRC(b5a8352e) SHA1(b5cf90090e089678aa3ddaef050708423da4c1ff) )
+ ROM_LOAD16_WORD_SWAP( "262hc01.sp2", 0x100000, 0x400000, CRC(c01720aa) SHA1(b4c3c0a91e0c37c9118453f3f99edd73a1dbee55) )
+
+ NEO_SFIX_MT_128K
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_128K( "265hc01.m1", CRC(73c1f5b0) SHA1(27975713e091ecc2a370061080d0920a3c4fde63) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262hc01.c1", 0x0000000, 0x800000, CRC(f298b87b) SHA1(fbbcb51a74af006cfa66925e61b410f4e7f71246) )
+ ROM_LOAD16_BYTE( "262d.c2", 0x0000001, 0x800000, CRC(f9d05d99) SHA1(C135DD3D5584DC58A46315D64F663E34BB64BEBF) )
+ ROM_LOAD16_BYTE( "262d.c3", 0x1000000, 0x800000, CRC(4c7ec427) SHA1(0156E2F79E7A62B15ACC2314AC6563A67AF0F256) )
+ ROM_LOAD16_BYTE( "262d.c4", 0x1000001, 0x800000, CRC(1d237aa6) SHA1(B007FE9F1F32F0FF947C6575741B47FB70976728) )
+ ROM_LOAD16_BYTE( "262d.c5", 0x2000000, 0x800000, CRC(c2256db5) SHA1(DAE6B7B0673B431F223D82F7C3A685DE70A1C035) )
+ ROM_LOAD16_BYTE( "262d.c6", 0x2000001, 0x800000, CRC(8d6565a9) SHA1(137C950D588D40C812C36967EC17D04D4FC56362) )
+ ROM_LOAD16_BYTE( "262hc01.c7", 0x3000000, 0x800000, CRC(ef682ed2) SHA1(5b0797c1ae5ed97209007375140c07441feb64bb) )
+ ROM_LOAD16_BYTE( "262d.c8", 0x3000001, 0x800000, CRC(954d0e16) SHA1(975803C130DF3A6E835B9BF0F8532D6586058C54) )
+ROM_END
+
+ROM_START( kof2k1s01 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262hc01.p1", 0x000000, 0x100000, CRC(b5a8352e) SHA1(b5cf90090e089678aa3ddaef050708423da4c1ff) )
+ ROM_LOAD16_WORD_SWAP( "262hc01.sp2", 0x100000, 0x400000, CRC(c01720aa) SHA1(b4c3c0a91e0c37c9118453f3f99edd73a1dbee55) )
+
+ NEO_SFIX_MT_128K
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_128K( "265hc01.m1", CRC(73c1f5b0) SHA1(27975713e091ecc2a370061080d0920a3c4fde63) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "262hc01.c1", 0x0000000, 0x800000, CRC(f298b87b) SHA1(fbbcb51a74af006cfa66925e61b410f4e7f71246) )
+ ROM_LOAD16_BYTE( "262d.c2", 0x0000001, 0x800000, CRC(f9d05d99) SHA1(C135DD3D5584DC58A46315D64F663E34BB64BEBF) )
+ ROM_LOAD16_BYTE( "262d.c3", 0x1000000, 0x800000, CRC(4c7ec427) SHA1(0156E2F79E7A62B15ACC2314AC6563A67AF0F256) )
+ ROM_LOAD16_BYTE( "262d.c4", 0x1000001, 0x800000, CRC(1d237aa6) SHA1(B007FE9F1F32F0FF947C6575741B47FB70976728) )
+ ROM_LOAD16_BYTE( "262d.c5", 0x2000000, 0x800000, CRC(c2256db5) SHA1(DAE6B7B0673B431F223D82F7C3A685DE70A1C035) )
+ ROM_LOAD16_BYTE( "262d.c6", 0x2000001, 0x800000, CRC(8d6565a9) SHA1(137C950D588D40C812C36967EC17D04D4FC56362) )
+ ROM_LOAD16_BYTE( "262hc02.c7", 0x3000000, 0x800000, CRC(b2b503ea) SHA1(2becf8a5462ff283fde76bec8137cdafe70cb7c6) )
+ ROM_LOAD16_BYTE( "262hc02.c8", 0x3000001, 0x800000, CRC(9c89c168) SHA1(ddc6a93c3ba766cfded63ee9355fa86835ead3b1) )
+ ROM_LOAD16_BYTE( "262hc02.c9", 0x4000000, 0x800000, CRC(773d08cc) SHA1(d38636baff48994f2c665874635c631be22ef440) )
+ ROM_LOAD16_BYTE( "262hc02.c10",0x4000001, 0x800000, CRC(8101701d) SHA1(6a7fea6b1206efc51a37f9c39d4db79eb9a33d74) )
+ROM_END
+
+GAME( 2001, kof2001hc01, kof2001, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof2001 (Boss hack bootleg)", MACHINE_SUPPORTS_SAVE )
+//GAME( 2001, kof2k1s01, kof2001, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof2001 (Description Of Unknown Origin 01)", MACHINE_SUPPORTS_SAVE )
+
+
diff --git a/src/hbmame/drivers/kof2002.cpp b/src/hbmame/drivers/kof2002.cpp
new file mode 100644
index 00000000000..a5ceb37bc1a
--- /dev/null
+++ b/src/hbmame/drivers/kof2002.cpp
@@ -0,0 +1,4576 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+
+
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, kof2002d )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_kof2002_prot->kof2002_decrypt_68k(cpuregion, cpuregion_size);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 0);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, kof2002m )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_kof2002_prot->kof2002_decrypt_68k(cpuregion, cpuregion_size);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 0);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, KOF2002_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+// S1-rom is scrambled. This code looks right but doesn't work.
+DRIVER_INIT_MEMBER( neogeo_hbmame, kof2k2bd )
+{
+ DRIVER_INIT_CALL(neogeo);
+#if 0
+ std::vector<UINT8> src( fix_region_size );
+ int i,j;
+ UINT8 *dst = fix_region;
+ memcpy (&src[0], &dst[0], fix_region_size);
+
+ for (i = 1; i < fix_region_size/0x80; i++)
+ {
+ j = BITSWAP16(i, 15, 14, 13, 12, 11, 10, 9, 7, 6, 2, 5, 4, 3, 1, 0, 8);
+ memcpy(&dst[i*0x80], &src[j*0x80], 0x80);
+ }
+#endif
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, kof2k2dbh )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_kof2002_prot->kof2002_decrypt_68k(cpuregion, cpuregion_size);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 0);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, KOF2002_GFX_KEY);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, kof2k2h )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 0);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, KOF2002_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, kof2k2lb )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, kof2k2ps2a )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 0);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, kof2k2pl17 )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 0);
+ uint32_t i;
+ uint16_t *rom = (uint16_t *)memregion("maincpu")->base();
+ for (i = 0; i < 0x100000/2; i++)
+ {
+ if (rom[i] == 0x4e7d) rom[i] = 0x4e71;
+ if (rom[i] == 0x4e7c) rom[i] = 0x4e75;
+ }
+ for (i = 0x700000/2; i < 0x720000/2; i++)
+ {
+ if (rom[i] == 0x4e7d) rom[i] = 0x4e71;
+ if (rom[i] == 0x4e7c) rom[i] = 0x4e75;
+ }
+ rom[0x700178/2] = 0x4e75;
+}
+
+
+
+ROM_START( kof200215 ) // all confirmed
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265_15.p1", 0x000000, 0x4551cc, CRC(d64def5c) SHA1(8a973b3dff88969fcd890fba321fc56382c08bf6) )
+ ROM_LOAD16_WORD_SWAP( "265_15.p2", 0x100000, 0x454f52, CRC(53317848) SHA1(3b24f3c9ab36c47609abbac66e5508e545646381) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_ENCRYPTED_128K( "265-m1.m1", CRC(85aaa632) SHA1(744fba4ca3bc3a5873838af886efb97a8a316104) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265_15.c1", 0x0000000, 0x800000, CRC(ede8dfa4) SHA1(bc33796215918832faac32adfc6a0a4b2a723760) )
+ ROM_LOAD16_BYTE( "265_15.c2", 0x0000001, 0x800000, CRC(98773563) SHA1(d64f31ccff699ee12554ed9a7c703a514bcfa054) )
+ ROM_LOAD16_BYTE( "265_15.c3", 0x1000000, 0x800000, CRC(5b8deef8) SHA1(55f78ae33bce5ca4886c620f02cef463d86f58f0) )
+ ROM_LOAD16_BYTE( "265_15.c4", 0x1000001, 0x800000, CRC(cb69cd39) SHA1(deaa9a5c5db75bd515fb6a532d5353207f763fbb) )
+ ROM_LOAD16_BYTE( "265_15.c5", 0x2000000, 0x800000, CRC(8e0937d8) SHA1(5ccd8a56bc6a1d646879f3a7d4992da11c44ee4c) )
+ ROM_LOAD16_BYTE( "265_15.c6", 0x2000001, 0x800000, CRC(42acb491) SHA1(d81bbbac95091e0a4ccf626c0d7f9ed870cd6600) )
+ ROM_LOAD16_BYTE( "265_15.c7", 0x3000000, 0x800000, CRC(f4b5e445) SHA1(dff6fe887cdf6d0eb758f891ede85ed31463c513) )
+ ROM_LOAD16_BYTE( "265_15.c8", 0x3000001, 0x800000, CRC(598d8826) SHA1(7432299d265af95835d82a43d0d4e322cd487c55) )
+ROM_END
+
+ROM_START( kof2002d )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265-p1.p1", 0x000000, 0x100000, CRC(9ede7323) SHA1(ad9d45498777fda9fa58e75781f48e09aee705a6) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) )
+ ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) )
+ROM_END
+
+ROM_START( kof2002x )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265x.p1", 0x000000, 0x100000, CRC(ec7402a2) SHA1(a3d94c709d4c23cc7d1502a9e92a34f49cbcc878) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_ENCRYPTED_128K( "265-m1.m1", CRC(85aaa632) SHA1(744fba4ca3bc3a5873838af886efb97a8a316104) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2ath )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265ath.p1", 0x000000, 0x100000, CRC(5bb7eedb) SHA1(5d2566ae008c34e91799e1cd5c771be6e4de02df) )
+ ROM_LOAD16_WORD_SWAP( "265ath.p2", 0x100000, 0x400000, CRC(4ecfc414) SHA1(e8b991f35d850e88f2f360438ba72748129342c9) )
+
+ NEO_SFIX_128K( "265ath.s1", CRC(df4ce33b) SHA1(1287c84c16e17df7d5887af57fc6657da452d0ae) )
+
+ NEO_BIOS_AUDIO_128K( "kf10-m1.bin", CRC(f6fab859) SHA1(0184aa1394b9f9946d610278b53b846020dd88dc) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) )
+ ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) )
+ROM_END
+
+ROM_START( kof2k2b ) /* The King of Fighters 2002 - Hack by Alphax2? - (Can choose Kusanagi and Rugal) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265b.p1", 0x000000, 0x100000, CRC(f03a9769) SHA1(558eaf60244b7b01588dc773a31d5e3f3ffdbb29) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2b1 ) /* The King of Fighters 2002 - Hack by Alphax2? - (Can choose Kusanagi and Rugal) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265b1.p1", 0x000000, 0x100000, CRC(9b5a47e3) SHA1(62609f623982cf6eecf855ebd1ad30e20e0846b8) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2bd )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265-p1.p1", 0x000000, 0x100000, CRC(9EDE7323) SHA1(AD9D45498777FDA9FA58E75781F48E09AEE705A6) )
+ ROM_LOAD16_WORD_SWAP( "265bd.p2", 0x100000, 0x400000, CRC(65DF650D) SHA1(C13E466E3FDB349BA2E0D3FE01DAEDE759130828) )
+
+ NEO_SFIX_128K( "265bld.s1", CRC(4c09cb82) SHA1(24c412d6bd11d16a9d6975f0eada776d1229ea4b) )
+ //NEO_SFIX_128K( "265bd.s1", CRC(2255f5bf) SHA1(8a82b3e9717df30b580b9d0bac0b403f8102a002) )
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265rm13.c4", 0x1000001, 0x800000, CRC(2558972F) SHA1(2E0627FC5D689BF64FE36F02A489408D103C4499) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) )
+ ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) )
+ROM_END
+
+ROM_START( kof2k2bh ) /* The King of Fighters 2002 - Hack by Aplhax2 - (Can choose Kusanagi and Rugal) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265bh.p1", 0x000000, 0x100000, CRC(ca96f87d) SHA1(b0daca398c5c67400540f774dbc2afe393e09fd6) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2bjh ) /* The King of Fighters 2002 - Remix by Ben Jeremy - (Character move change 20031025) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265bjh.p1", 0x000000, 0x100000, CRC(16554c00) SHA1(7915a667a9669fd3bf97d4cf1cf6a91e6965753f) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2bjo ) /* [OLD] The King of Fighters 2002 - (kof2k2bjho) - Remix by Ben Jeremy - (Character move change 20031013) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265bjo.p1", 0x000000, 0x100000, CRC(cc0be314) SHA1(72f0c36bcab70094a875c47f555a4d3ff6e3a491) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2bl3 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265bl3.p1", 0x000000, 0x100000, CRC(94a95838) SHA1(a872a92b828d976eabd332e8d22b451dd709eca6) )
+ ROM_LOAD16_WORD_SWAP( "265bl3.p2", 0x100000, 0x400000, CRC(2bada9e2) SHA1(48cdeb9d828d2be6e212f460ce5b1105802fd8e2) )
+
+ NEO_SFIX_128K( "265bl3.s1", CRC(9acd7f92) SHA1(827534f914b9cf91e907e8532c28abdcd8da71d7) )
+
+ NEO_BIOS_AUDIO_128K( "265ori.m1", CRC(AB9D360E) SHA1(a0c8a5aae387c4f0b72790211695da7df924c351) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265bl4.c1", 0x0000000, 0x800000, CRC(325399a6) SHA1(50a565941ac805759872176ebb1506a736c05917) )
+ ROM_LOAD16_BYTE( "265bl4.c2", 0x0000001, 0x800000, CRC(76374796) SHA1(d4adf26ed356d271838c40aea2a84f604da2f8cb) )
+ ROM_LOAD16_BYTE( "265ori.c3", 0x1000000, 0x800000, CRC(E5074EEA) SHA1(387ef21d58b416126b95843bac1a0b6cc346818f) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265ori.c7", 0x3000000, 0x800000, CRC(0E9F6ADB) SHA1(0e4cdbd3df2ef7b0c78c3275ee22684c67bf2d23) )
+ ROM_LOAD16_BYTE( "265ori.c8", 0x3000001, 0x800000, CRC(9961799E) SHA1(cf5d43bbd90269155ac41fe9a31328654784351f) )
+ROM_END
+
+ROM_START( kof2k2bl4 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265bl4.p1", 0x000000, 0x100000, CRC(938af736) SHA1(27b0301ed208c155b56a2775ad6d1b683ead667e) )
+ ROM_LOAD16_WORD_SWAP( "265bl4.p2", 0x100000, 0x400000, CRC(9ff989fb) SHA1(d17528aa2aacdbd731ec30edb17fcdb1ebe34e62) )
+
+ NEO_SFIX_128K( "265bl4.s1", CRC(2aacaf8e) SHA1(3b09ef3215180de70327313c573c870d33a54714) )
+
+ NEO_BIOS_AUDIO_128K( "265ori.m1", CRC(AB9D360E) SHA1(a0c8a5aae387c4f0b72790211695da7df924c351) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265bl4.c1", 0x0000000, 0x800000, CRC(325399a6) SHA1(50a565941ac805759872176ebb1506a736c05917) )
+ ROM_LOAD16_BYTE( "265bl4.c2", 0x0000001, 0x800000, CRC(76374796) SHA1(d4adf26ed356d271838c40aea2a84f604da2f8cb) )
+ ROM_LOAD16_BYTE( "265ori.c3", 0x1000000, 0x800000, CRC(E5074EEA) SHA1(387ef21d58b416126b95843bac1a0b6cc346818f) )
+ ROM_LOAD16_BYTE( "265ori.c4", 0x1000001, 0x800000, CRC(F6EB1FF2) SHA1(77cb493b9e75d42c204a9a6c052a813c2730e44f) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265ori.c7", 0x3000000, 0x800000, CRC(0E9F6ADB) SHA1(0e4cdbd3df2ef7b0c78c3275ee22684c67bf2d23) )
+ ROM_LOAD16_BYTE( "265ori.c8", 0x3000001, 0x800000, CRC(9961799E) SHA1(cf5d43bbd90269155ac41fe9a31328654784351f) )
+ROM_END
+
+ROM_START( kof2k2bld )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265bld.p1", 0x000000, 0x100000, CRC(0a6b5e22) SHA1(0db2c458e79a0380ccfa3e1772e42223f0edaaa9) )
+ ROM_LOAD16_WORD_SWAP( "265bld.p2", 0x100000, 0x400000, CRC(f951b913) SHA1(d1b2025d363b280f40c823d11c277c81d8087ee4) )
+
+ NEO_SFIX_128K( "265bld.s1", CRC(4c09cb82) SHA1(24c412d6bd11d16a9d6975f0eada776d1229ea4b) )
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265rm13.c4", 0x1000001, 0x800000, CRC(2558972F) SHA1(2E0627FC5D689BF64FE36F02A489408D103C4499) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) )
+ ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) )
+ROM_END
+
+ROM_START( kof2k2blood2 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265blood2.p1", 0x000000, 0x100000, CRC(9573364c) SHA1(1fcb64aa30ef3ee3519ca7b77318f6f87ea24c82) )
+ ROM_LOAD16_WORD_SWAP( "265blood2.p2", 0x100000, 0x400000, CRC(670a8b89) SHA1(090f80381cf5a02fc1eed25a781388e246d2fa10) )
+
+ NEO_SFIX_128K( "265blood2.s1", CRC(59bda320) SHA1(0d8846ad307d1ca778bdcc89c16efe766266f1b7) )
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) )
+ ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) )
+ROM_END
+
+ROM_START( kof2k2br ) /* KOF 2002 Portuguese */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265br.p1", 0x000000, 0x100000, CRC(0f6dbacc) SHA1(c28bff82dc1d802cb1c398f4aaac0d2052418b87) )
+ ROM_LOAD16_WORD_SWAP( "265br.p2", 0x100000, 0x400000, CRC(c7ca77ff) SHA1(1ac9b9a37ddb11979514eba1d67551dfa8e6bc36) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2br1 ) /* KOF 2002 Portuguese */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265br1.p1", 0x000000, 0x100000, CRC(b73033df) SHA1(c8e1ce1d35be1dd537709a533e7dac37e047f428) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2br2 ) /* KOF 2002 Portuguese */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265br2.p1", 0x000000, 0x100000, CRC(95986d7a) SHA1(3f9da8385c0c9bfbbe088860816c247696904c24) )
+ ROM_LOAD16_WORD_SWAP( "265br2.p2", 0x100000, 0x400000, CRC(9b4d2ba4) SHA1(7b07788be06031d7261b4f8d8e5a34c0536846ed) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2bs )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265bs.p1", 0x000000, 0x100000, CRC(d9ccb672) SHA1(9d24c9d27120c379e0ec9d3717a4bb40be2f7027) )
+ ROM_LOAD16_WORD_SWAP( "265bs.p2", 0x100000, 0x400000, CRC(96c45626) SHA1(57f58de4051b73848cb6622e223777030e4ef954) )
+
+ NEO_SFIX_128K( "265evo.s1", CRC(E0EAABA3) SHA1(831b642da9fe7617498cdb1c86475b3b3d3043bc) )
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265rs.c1", 0x0000000, 0x800000, CRC(c1a21b4c) SHA1(235938175d6011c5c8a37fc94f8fb604132d8038) )
+ ROM_LOAD16_BYTE( "265rs.c2", 0x0000001, 0x800000, CRC(9b3d7e8d) SHA1(38c16541862636934a456f23632f64ff0f5ae617) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) )
+ ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) )
+ROM_END
+
+ROM_START( kof2k2c2 ) // hack of kof2k2or
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265or.p1", 0x000000, 0x100000, CRC(eb84d68f) SHA1(8dccf250cf04e129529793abcc655f5fc7fb6629) )
+ ROM_LOAD16_WORD_SWAP( "265c2.p2", 0x100000, 0x400000, CRC(5b307583) SHA1(283dffc62c279e7b237da3a30a15e06cccda7a80) )
+
+ NEO_SFIX_128K( "265kc2.s1", CRC(67e7cbe1) SHA1(3582c2073f04e71a6d5a34145727d148a11ab375) )
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) )
+ ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265rm13.c4", 0x1000001, 0x800000, CRC(2558972F) SHA1(2e0627fc5d689bf64fe36f02a489408d103c4499) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265or.c7", 0x3000000, 0x800000, CRC(201e75e0) SHA1(7805d7a753df4d97bd73e05f22f31fe6440eaf6c) )
+ ROM_LOAD16_BYTE( "265or.c8", 0x3000001, 0x800000, CRC(ff0fd53b) SHA1(68289ab3f808b9c067a948948f48d5a3f1787e6c) )
+ROM_END
+
+ROM_START( kof2k2cf1 ) /* [OLD] The King of Fighters 2002 - (kof2k2cfco) - Colour fix by C6F8 - (Character colour change for Iori p3 and p4) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265-p1.p1", 0x000000, 0x100000, CRC(9ede7323) SHA1(ad9d45498777fda9fa58e75781f48e09aee705a6) )
+ ROM_LOAD16_WORD_SWAP( "265cf1.p2", 0x100000, 0x400000, CRC(7df52bd4) SHA1(37dddfca361012c8e04ad6fa45e8a56d80aa5f31) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2cf2 ) /* [OLD] The King of Fighters 2002 - (kof2k2cfco2) - Colour fix by C6F8 - (Character colour change - release 2 built 20030827) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265-p1.p1", 0x000000, 0x100000, CRC(9ede7323) SHA1(ad9d45498777fda9fa58e75781f48e09aee705a6) )
+ ROM_LOAD16_WORD_SWAP( "265cf2.p2", 0x100000, 0x400000, CRC(f65d9dd1) SHA1(81ca014633385bc1e4e13b962b8aa35b246f63a7) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2cf3 ) /* [OLD] The King of Fighters 2002 - (kof2k2cfco3) - Colour fix by C6F8 - (Character colour change - release 3 built 20030831) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265-p1.p1", 0x000000, 0x100000, CRC(9ede7323) SHA1(ad9d45498777fda9fa58e75781f48e09aee705a6) )
+ ROM_LOAD16_WORD_SWAP( "265cf3.p2", 0x100000, 0x400000, CRC(9b2be0af) SHA1(069ab514aceda7ba43c9557afef9320b84b7eb25) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2cfc ) /* The King of Fighters 2002 - Fix by C6F8 - (Character colour change release 4 built 20031017) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265-p1.p1", 0x000000, 0x100000, CRC(9ede7323) SHA1(ad9d45498777fda9fa58e75781f48e09aee705a6) )
+ ROM_LOAD16_WORD_SWAP( "265cfc.p2", 0x100000, 0x400000, CRC(e22d4ab6) SHA1(7ebab455645c428819d208d66b7b630c58d8f172) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2ch ) /* [OLD] The King of Fighters 2002 - (kof2k2ch) - Revise by Coolhot - (Fighter combat moves revision - bases on CHL´s and Riky´s work 2003/05) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265ch.p1", 0x000000, 0x100000, CRC(9bc19d92) SHA1(6535304911aad8901d13fa254369b0b0c726382f) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2chl ) /* [OLD] The King of Fighters 2002 - (kof2k2chl) - Revise by CHL - (Enhanced game play by chl 20030410) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265chl.p1", 0x000000, 0x100000, CRC(4824e27d) SHA1(038a109dda37fda2b43614cadabb1e1672f054c4) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2cl2 ) /* [OLD] The King of Fighters 2002 - (kof2k2chl2) - Revise by CHL - (Enhanced game play by chl revision 2 20030413) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265chl2.p1", 0x000000, 0x100000, CRC(6b9cdd9c) SHA1(8764ec6c56eea54c86acc3b80d3f8cae5941f1d6) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2cl3 ) /* [OLD] The King of Fighters 2002 - (kof2k2chl3) - Revise by CHL - (Enhanced game play by chl revision 3 20030413) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265chl3.p1", 0x000000, 0x100000, CRC(4ae81447) SHA1(add9e5a6737c4b00da326a947043e227d5dfcbb8) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2cn )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265cn.p1", 0x000000, 0x100000, CRC(07de031f) SHA1(6d2c6caea4d94388da597e89cde61ed6efba96fa) )
+ ROM_LOAD16_WORD_SWAP( "265cn.p2", 0x100000, 0x400000, CRC(9cb1dd35) SHA1(5e04716cf02e3321fac7bd4551fa352d8a54c7a3) )
+
+ NEO_SFIX_128K( "265cn.s1", CRC(a449f9ba) SHA1(f1744fd91d85a6391e3e5ff69d868ea9976f04c7) )
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) )
+ ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265cn.c1", 0x0000000, 0x800000, CRC(35b6ee83) SHA1(1ee4fdd0482ae391544535020c96dba1fd4fb9a4) )
+ ROM_LOAD16_BYTE( "265cn.c2", 0x0000001, 0x800000, CRC(9d4bd32f) SHA1(ed0dce5dd6cffce2c55a62559b368ccc46115497) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265cn.c7", 0x3000000, 0x800000, CRC(204c1b0e) SHA1(4e44371fc4d0abbd455554eb066ede07ab5f68f9) )
+ ROM_LOAD16_BYTE( "265cn.c8", 0x3000001, 0x800000, CRC(b44c1d54) SHA1(22f9fb31b4f36f5c4fce66b5bd64b45737db43d9) )
+ROM_END
+
+ROM_START( kof2k2cori )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265cori.p1", 0x000000, 0x100000, CRC(0a3a1f32) SHA1(1f53828a441e025ca5940ed54caa10eb1dde8b32) )
+ ROM_LOAD16_WORD_SWAP( "265cori.p2", 0x100000, 0x400000, CRC(7bf474a9) SHA1(8d836a408ae7c754dd7994ce329e649c3714ad6f) )
+
+ NEO_SFIX_128K( "265kc2.s1", CRC(67e7cbe1) SHA1(3582c2073f04e71a6d5a34145727d148a11ab375) )
+
+ NEO_BIOS_AUDIO_128K( "265cori.m1", CRC(4cd619bb) SHA1(5dc0d5e923985072e87b485dd8e5ef805f583e15) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265rs.c1", 0x0000000, 0x800000, CRC(c1a21b4c) SHA1(235938175d6011c5c8a37fc94f8fb604132d8038) )
+ ROM_LOAD16_BYTE( "265rs.c2", 0x0000001, 0x800000, CRC(9b3d7e8d) SHA1(38c16541862636934a456f23632f64ff0f5ae617) )
+ ROM_LOAD16_BYTE( "265ori.c3", 0x1000000, 0x800000, CRC(E5074EEA) SHA1(387ef21d58b416126b95843bac1a0b6cc346818f) )
+ ROM_LOAD16_BYTE( "265rm13.c4", 0x1000001, 0x800000, CRC(2558972F) SHA1(2e0627fc5d689bf64fe36f02a489408d103c4499) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265ori.c7", 0x3000000, 0x800000, CRC(0E9F6ADB) SHA1(0e4cdbd3df2ef7b0c78c3275ee22684c67bf2d23) )
+ ROM_LOAD16_BYTE( "265ori.c8", 0x3000001, 0x800000, CRC(9961799E) SHA1(cf5d43bbd90269155ac41fe9a31328654784351f) )
+ROM_END
+
+ROM_START( kof2k2dbh ) /* The King of Fighters 2002 - Hack by Dodowang - (Can choose Kusanagi and Rugal - when using NrX have icons in character select menu -> MVS timer flaw) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265dbh.p1", 0x000000, 0x100000, CRC(e9d96cf7) SHA1(fc9fe5ac13cf328867538a474171a6878a09a731) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_128K( "265dbh.s1", CRC(491510d1) SHA1(506fb00c1b1a0e8077bdeba9acee4245df918a98) )
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2e1 ) /* The King of Fighters 2002 - Hack by Kurouri - (Can choose Kusanagi and Rugal) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265e1.p1", 0x000000, 0x100000, CRC(b1ad673f) SHA1(013928acacb501384a597e9c5fce96e1745043b7) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2e2 ) /* The King of Fighters 2002 - Hack by Creamymami - (Can choose Kusanagi and Rugal) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265e2.p1", 0x000000, 0x100000, CRC(4a07c6be) SHA1(7f8558b1938f03d2f64034aefb774b4553863e45) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2e3 ) /* The King of Fighters 2002 - Enhance by Creamymami - (Can choose Kusanagi and Rugal - ultra kill start is max) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265e3.p1", 0x000000, 0x100000, CRC(7b560cdb) SHA1(6589a7e39d72bb87be62baa89f07a92bdaa6fc0a) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2ehr ) /* [OLD] The King of Fighters 2002 - (kof2k2ehr) - Remix by Raymonose - (Can choose 95-Kyo and Rugal - ultra kill start is max - style revision 33%) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265ehr.p1", 0x000000, 0x100000, CRC(526ab059) SHA1(526e1bbde1fb5425b780a6de2f5f9d7d843ca6be) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2er2 ) /* [OLD] The King of Fighters 2002 - (kof2k2ehr2) - Remix by Raymonose - (Can choose 95-Kyo and Rugal - ultra kill start is max - style revision 66%) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265er2.p1", 0x000000, 0x100000, CRC(d41c1a04) SHA1(60d222ede6d6815d504204711272b11238e402b2) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2er3 ) /* [OLD] The King of Fighters 2002 - (kof2k2ehr3) - Remix by Raymonose - (Can choose 95-Kyo and Rugal - ultra kill start is max - style revision 80% 20030414) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265er3.p1", 0x000000, 0x100000, CRC(f322ad04) SHA1(7bc2fb5e97742201877d2d980cc4801b69b6d3a2) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2er4 ) /* [OLD] The King of Fighters 2002 - (kof2k2ehr4) - Remix by Raymonose) - (Can choose 95-Kyo and Rugal - ultra kill start is max - style revision 89% 20030420) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265er4.p1", 0x000000, 0x100000, CRC(75e595b6) SHA1(2460216721a254dc941b4d00368d67e46ed4e551) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2erx ) /* [OLD] The King of Fighters 2002 - (kof2k2ehrx) - Remix by Raymonose - (Can choose 95-Kyo and Rugal - ultra kill start is max - style revision xx) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265erx.p1", 0x000000, 0x100000, CRC(5a6e94e5) SHA1(bbc7e2c9eaec287fc65a0dfb6d2c7934ec7afc4c) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2evo )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265evo.p1", 0x000000, 0x100000, CRC(60AF82AB) SHA1(dfa4b99f16ca3f7fbe06604788272acf82ba57fa) )
+ ROM_LOAD16_WORD_SWAP( "k2k2m2p2.bin", 0x100000, 0x400000, CRC(432fdf53) SHA1(d7e542cd84d948162c60768e40ee4ed33d8e7913) )
+
+ NEO_SFIX_128K( "265evo.s1", CRC(E0EAABA3) SHA1(831b642da9fe7617498cdb1c86475b3b3d3043bc) )
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) )
+ ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265evo.c7", 0x3000000, 0x800000, CRC(B4C87865) SHA1(8df7ac8bbf5f61d2fbca4cd7424074e95887ad3d) )
+ ROM_LOAD16_BYTE( "265evo.c8", 0x3000001, 0x800000, CRC(74C10CB6) SHA1(2979ab21e3632c478ad3f70148691a1a69abd378) )
+ROM_END
+
+ROM_START( kof2k2evo2 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265evo2.p1", 0x000000, 0x100000, CRC(6e886994) SHA1(e67764738a83b5f34fe0fc4a9e33f2c1d67507db) )
+ ROM_LOAD16_WORD_SWAP( "265evo2.p2", 0x100000, 0x400000, CRC(4c91603b) SHA1(f9db61348220a4a626dee5fbd0498b24aa74f77d) )
+
+ NEO_SFIX_128K( "265evo2.s1", CRC(ca56e755) SHA1(ee8b05164682baef782111996f18927683acf577) )
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) )
+ ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265xxx.c1", 0x0000000, 0x800000, CRC(745B343E) SHA1(ae8293b18cfb4c20e2915149872d9fa561a218bf) )
+ ROM_LOAD16_BYTE( "265xxx.c2", 0x0000001, 0x800000, CRC(2AAB7F98) SHA1(083c6e9162ab3bb49b365f91246cb39019dabe43) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265ibp.c7", 0x3000000, 0x800000, CRC(f501b9b2) SHA1(84e969243170382e3782cfe70ec0ad1b5638cb7b) )
+ ROM_LOAD16_BYTE( "265ibp.c8", 0x3000001, 0x800000, CRC(2ebcf142) SHA1(8129ed1aa7d201d4b9ed3447ffca829d07783571) )
+ ROM_LOAD16_BYTE( "265evo.c7", 0x3000000, 0x800000, CRC(B4C87865) SHA1(8df7ac8bbf5f61d2fbca4cd7424074e95887ad3d) )
+ ROM_LOAD16_BYTE( "265evo.c8", 0x3000001, 0x800000, CRC(74C10CB6) SHA1(2979ab21e3632c478ad3f70148691a1a69abd378) )
+ROM_END
+
+ROM_START( kof2k2fy ) /* The King of Fighters 2002 - Colour fix by UNKNOWN - (Lifebar + K', Vanessa, Iori, Kula and Angel colour change) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265-p1.p1", 0x000000, 0x100000, CRC(9ede7323) SHA1(ad9d45498777fda9fa58e75781f48e09aee705a6) )
+ ROM_LOAD16_WORD_SWAP( "265fy.p2", 0x100000, 0x400000, CRC(40bf4372) SHA1(d6bbf637ae064d5d9cfc1acc71ef69cb19b03062) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2gc ) /* The King of Fighters 2002 - Colour fix by Lewis67 - (Colour change) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265-p1.p1", 0x000000, 0x100000, CRC(9ede7323) SHA1(ad9d45498777fda9fa58e75781f48e09aee705a6) )
+ ROM_LOAD16_WORD_SWAP( "265gc.p2", 0x100000, 0x400000, CRC(c0ce3064) SHA1(14179ed2c851411710f391058c6d93d829f6a821) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2gc2 ) /* The King of Fighters 2002 - Colour fix by Lewis67 - (Colour change) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265-p1.p1", 0x000000, 0x100000, CRC(9ede7323) SHA1(ad9d45498777fda9fa58e75781f48e09aee705a6) )
+ ROM_LOAD16_WORD_SWAP( "265gc2.p2", 0x100000, 0x400000, CRC(ceb56128) SHA1(f29f37efe7d18cd18c2ebaaba57ee1cfc0ccb144) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2gf ) /* The King of Fighters 2002 - Colour fix by Kumagorou - (Colour change) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265-p1.p1", 0x000000, 0x100000, CRC(9ede7323) SHA1(ad9d45498777fda9fa58e75781f48e09aee705a6) )
+ ROM_LOAD16_WORD_SWAP( "265gf.p2", 0x100000, 0x400000, CRC(23850b59) SHA1(e8ef5c834e2ef20b877713ea99e357438eb55a40) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2green )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265-p1.p1", 0x000000, 0x100000, CRC(9ede7323) SHA1(ad9d45498777fda9fa58e75781f48e09aee705a6) )
+ ROM_LOAD16_WORD_SWAP( "265green.p2", 0x100000, 0x400000, CRC(74df4436) SHA1(266ccc13fe144403215527bfabbec14240f2bb33) )
+
+ NEO_SFIX_128K( "265evo.s1", CRC(E0EAABA3) SHA1(831b642da9fe7617498cdb1c86475b3b3d3043bc) )
+
+ NEO_BIOS_AUDIO_128K( "265ori.m1", CRC(AB9D360E) SHA1(a0c8a5aae387c4f0b72790211695da7df924c351) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) )
+ ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) )
+ROM_END
+
+ROM_START( kof2k2ht )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265ht.p1", 0x000000, 0x100000, CRC(3852f80e) SHA1(eca7670b368f9fbf2242f52a87fd18adf6afc24c) )
+ ROM_LOAD16_WORD_SWAP( "265ht.p2", 0x100000, 0x400000, CRC(dec98282) SHA1(8a3c055c6c728a77134bda1f379995ebca623654) )
+
+ NEO_SFIX_128K( "265ht.s1", CRC(8d2eb52e) SHA1(b3807f982e29da326c30147c2d73e1174082a05e) )
+
+ NEO_BIOS_AUDIO_128K( "265ori.m1", CRC(AB9D360E) SHA1(a0c8a5aae387c4f0b72790211695da7df924c351) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) )
+ ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) )
+ROM_END
+
+ROM_START( kof2k2ibp ) // A few bugs with the text caused by someone in KOFON team
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265ibp.p1", 0x000000, 0x100000, CRC(5133b7e4) SHA1(50ce61dd601d94dd3fd975aa0498dd082de74e82) )
+ ROM_LOAD16_WORD_SWAP( "265ibp.p2", 0x100000, 0x400000, CRC(63ec01c0) SHA1(e2557e67c2dca098e03635df84b8c17ec39cbd29) )
+ ROM_FILL(0xb1460,1,0x49)
+ ROM_FILL(0xb1461,1,0x4e) // Fix INSERT COIN // There's another bug if you insert 2 coins
+ ROM_FILL(0xb1462,1,0x53)
+
+ NEO_SFIX_128K( "265ibp.s1", CRC(00e7d96c) SHA1(b7c6141fa8cd55524725f55fa396f502de9e8be3) )
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265xxx.c1", 0x0000000, 0x800000, CRC(745B343E) SHA1(ae8293b18cfb4c20e2915149872d9fa561a218bf) )
+ ROM_LOAD16_BYTE( "265xxx.c2", 0x0000001, 0x800000, CRC(2AAB7F98) SHA1(083c6e9162ab3bb49b365f91246cb39019dabe43) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265ibp.c7", 0x3000000, 0x800000, CRC(f501b9b2) SHA1(84e969243170382e3782cfe70ec0ad1b5638cb7b) )
+ ROM_LOAD16_BYTE( "265ibp.c8", 0x3000001, 0x800000, CRC(2ebcf142) SHA1(8129ed1aa7d201d4b9ed3447ffca829d07783571) )
+ROM_END
+
+ROM_START( kof2k2ice ) /* The King of Fighters 2002 - Colour fix by Fighters Kim - (Colour change - attack cremation ice blue) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265-p1.p1", 0x000000, 0x100000, CRC(9ede7323) SHA1(ad9d45498777fda9fa58e75781f48e09aee705a6) )
+ ROM_LOAD16_WORD_SWAP( "265ice.p2", 0x100000, 0x400000, CRC(6319dd5a) SHA1(0dfb67938aab5e1aa1e27cd80f8448ac5f4b3237) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2ic1 ) /* [OLD] The King of Fighters 2002 - (kof2k2i) - Colour fix by Fighters Kim - (Colour change - attack cremation ice blue - 80%) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265-p1.p1", 0x000000, 0x100000, CRC(9ede7323) SHA1(ad9d45498777fda9fa58e75781f48e09aee705a6) )
+ ROM_LOAD16_WORD_SWAP( "265ic1.p2", 0x100000, 0x400000, CRC(cb07680b) SHA1(e6c9aae1fea99ade21a3bf97cd74b48128d78a43) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2ic2 ) /* [OLD] The King of Fighters 2002 - (kof2k2iceo) - Colour fix by Fighters Kim - (Colour change - attack cremation ice blue) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265-p1.p1", 0x000000, 0x100000, CRC(9ede7323) SHA1(ad9d45498777fda9fa58e75781f48e09aee705a6) )
+ ROM_LOAD16_WORD_SWAP( "265ic2.p2", 0x100000, 0x400000, CRC(dcbf29a9) SHA1(c48744476405c2b5a23e0c3b09c65e67487d81bb) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2jc ) /* The King of Fighters 2002 - Colour fix by Jui Lee - (Character colour change for Athena 3P, Kula 3P and Kula 4P) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265-p1.p1", 0x000000, 0x100000, CRC(9ede7323) SHA1(ad9d45498777fda9fa58e75781f48e09aee705a6) )
+ ROM_LOAD16_WORD_SWAP( "265jc.p2", 0x100000, 0x400000, CRC(3f515638) SHA1(e902c2d47486ad57928c60067ce24033e294f6bf) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2js )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265js.p1", 0x000000, 0x100000, CRC(b486fca8) SHA1(44aab663711c0591d5f93557ac9620853ca65e01) )
+ ROM_LOAD16_WORD_SWAP( "265js.p2", 0x100000, 0x400000, CRC(75185760) SHA1(5501d4d9ac7fcd83102f6fbee7d986006566bf9d) )
+
+ NEO_SFIX_128K( "265rm13.s1", CRC(BD19C308) SHA1(38a9055bbd981a794e1fd9065985b4c033b78e93) )
+
+ NEO_BIOS_AUDIO_128K( "265rm13.m1", CRC(9956CCD8) SHA1(ed0f5e87360dfa89a58e1b333f4a66e91c2faf56) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265js.v1", 0x000000, 0x400000, CRC(3961af5a) SHA1(483662b9ec1da54e6786a34327837a48eed3501f) )
+ ROM_LOAD( "265rm13.v2", 0x400000, 0x400000, CRC(0a1e505a) SHA1(62d128909b21cef4605ed35195e5503d1e056659) )
+ ROM_LOAD( "265rm13.v3", 0x800000, 0x400000, CRC(15bc1d92) SHA1(bc22e274f279a01518de8cd519847eb01ff675ef) )
+ ROM_LOAD( "265rm13.v4", 0xc00000, 0x400000, CRC(b5f43393) SHA1(7bbbff6aeb44e8964bbb46372b856ffe6c530076) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265js.c3", 0x1000000, 0x800000, CRC(ca656090) SHA1(ed7f79eeabb965f5cdfbdd1c2d137ef5db366e03) )
+ ROM_LOAD16_BYTE( "265js.c4", 0x1000001, 0x800000, CRC(eb898849) SHA1(eac79b04382fc20dd9f7b9345d929aff58889e8f) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265rm13.c7", 0x3000000, 0x800000, CRC(2A9D505C) SHA1(dcd3899aebc4602e4249b3e61299a0c8bf2e5e56) )
+ ROM_LOAD16_BYTE( "265rm13.c8", 0x3000001, 0x800000, CRC(93D8501F) SHA1(470f29de0bad8c15d924fffbbfa85926b551a8ae) )
+ROM_END
+
+ROM_START( kof2k2js2 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265js2.p1", 0x000000, 0x100000, CRC(8da72d5c) SHA1(315d104da120fe1df041221209dc609a2f1d41a8) )
+ ROM_LOAD16_WORD_SWAP( "265js.p2", 0x100000, 0x400000, CRC(75185760) SHA1(5501d4d9ac7fcd83102f6fbee7d986006566bf9d) )
+
+ NEO_SFIX_128K( "265rm13.s1", CRC(BD19C308) SHA1(38a9055bbd981a794e1fd9065985b4c033b78e93) )
+
+ NEO_BIOS_AUDIO_128K( "265rm13.m1", CRC(9956CCD8) SHA1(ed0f5e87360dfa89a58e1b333f4a66e91c2faf56) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265js2.v1", 0x000000, 0x800000, CRC(6e7e3508) SHA1(9d995fd9e9665da26153704a9fa539259759c105) )
+ ROM_LOAD( "265js2.v2", 0x800000, 0x800000, CRC(2157b90f) SHA1(407422df7a24530d21119ef9233b831fb0166661) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265js.c3", 0x1000000, 0x800000, CRC(ca656090) SHA1(ed7f79eeabb965f5cdfbdd1c2d137ef5db366e03) )
+ ROM_LOAD16_BYTE( "265js.c4", 0x1000001, 0x800000, CRC(eb898849) SHA1(eac79b04382fc20dd9f7b9345d929aff58889e8f) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265rm13.c7", 0x3000000, 0x800000, CRC(2A9D505C) SHA1(dcd3899aebc4602e4249b3e61299a0c8bf2e5e56) )
+ ROM_LOAD16_BYTE( "265rm13.c8", 0x3000001, 0x800000, CRC(93D8501F) SHA1(470f29de0bad8c15d924fffbbfa85926b551a8ae) )
+ROM_END
+
+ROM_START( kof2k2js4 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265js4.p1", 0x000000, 0x100000, CRC(1003a13b) SHA1(a4a722a5319be46c6b5ac735142f50aab75defff) )
+ ROM_LOAD16_WORD_SWAP( "265js4.p2", 0x100000, 0x400000, CRC(27b26aad) SHA1(12ab5034ab4bf302599ffe1bc1c841f56cc083f5) )
+
+ NEO_SFIX_128K( "265js4.s1", CRC(1ac24409) SHA1(6c294e4651c4fef66a68845d3281accf5afc2d84) )
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) )
+ ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) )
+ ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) )
+ROM_END
+
+ROM_START( kof2k2k2 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265chl3.p1", 0x000000, 0x100000, CRC(4ae81447) SHA1(add9e5a6737c4b00da326a947043e227d5dfcbb8) )
+ ROM_LOAD16_WORD_SWAP( "265k2.p2", 0x100000, 0x400000, CRC(7cc7cad3) SHA1(b09c628b0d4f177cd9ce8c51bcb4c68ca7afd26d) )
+
+ NEO_SFIX_128K( "265k2.s1", CRC(10de5d7c) SHA1(44f4f523a787cf3094923483b824d7795858aff6) )
+
+ NEO_BIOS_AUDIO_128K( "265ori.m1", CRC(AB9D360E) SHA1(a0c8a5aae387c4f0b72790211695da7df924c351) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) )
+ ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) )
+ROM_END
+
+ROM_START( kof2k2k3o ) /* [OLD] The King of Fighters 2002 - (kof2k2k3o) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k2k3o.txt for more 20030629) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265k3o.p1", 0x000000, 0x100000, CRC(3e63f35d) SHA1(1943c1b7619229c59802828543e2138d033e87a8) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2k32 ) /* [OLD] The King of Fighters 2002 - [OLD] The King of Fighters 2002 - (kof2k2k3r2) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k2k3r2.txt for more 20030725) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265k32.p1", 0x000000, 0x100000, CRC(06404013) SHA1(a0ea9b1bfcf3a046f9faa6e8fe4fdaa2eeae1c5a) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2k33 ) /* (kof2k2k3r3) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k2k3r3.txt for more 20030730) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265k33.p1", 0x000000, 0x100000, CRC(f1b0e086) SHA1(5c99e2f3c8297ff99aaadd0e677fda2d2d27a57c) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2k34 ) /* [OLD] The King of Fighters 2002 - (kof2k2k3r4) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k2k3r4.txt for more 20030805) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265k34.p1", 0x000000, 0x100000, CRC(8e696bc6) SHA1(85b7687c7609dddd6e8a4aa876b143804d2fca67) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2k35 ) /* [OLD] The King of Fighters 2002 - (kof2k2k3r5) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k2k3r5.txt for more 20030815) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265k35.p1", 0x000000, 0x100000, CRC(7be62755) SHA1(bc8c9fcfee147477065957f0e6d4c6e69d1979d9) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2k36 ) /* [OLD] The King of Fighters 2002 - (kof2k2k3r6) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k2k3r6.txt for more 20030818) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265k36.p1", 0x000000, 0x100000, CRC(ee866a5f) SHA1(2d4a37f874a6636948013eddde52d82a769c6111) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2k37 ) /* [OLD] The King of Fighters 2002 - (kof2k2k3r7) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k2k3r7.txt for more 20030823) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265k37.p1", 0x000000, 0x100000, CRC(b61f27ee) SHA1(8a74527696a6b019241fb0ad2468123cfbc09b79) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2k38 ) /* [OLD] The King of Fighters 2002 - (kof2k2k3r8) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k2k3r8.txt for more 20030824) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265k38.p1", 0x000000, 0x100000, CRC(7aab9c67) SHA1(4e6eb6acada027e91b943e359a291f1713f37ec8) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2k39 ) /* [OLD] The King of Fighters 2002 - (kof2k2k3r9) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k2k3r9.txt for more 20030829) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265k39.p1", 0x000000, 0x100000, CRC(7d6e0295) SHA1(d8cd5c9650858bc8af35cc31e932ae024af2963a) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2k3a ) /* [OLD] The King of Fighters 2002 - (kof2k2k3r10) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k2k3r10.txt for more 20030907) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265k3a.p1", 0x000000, 0x100000, CRC(aa2539b4) SHA1(b8ed72edc7811afd117ccf4db0ba05bb8f39862f) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2k3b ) /* [OLD] The King of Fighters 2002 - (kof2k2k3r11) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k2k3r11.txt for more 20030908) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265k3b.p1", 0x000000, 0x100000, CRC(88aad54e) SHA1(03aff6b613a6f1e5198803e4ee0c931b81940653) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2k3c ) /* [OLD] The King of Fighters 2002 - (kof2k2k3r12) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k2k3r12.txt for more 20031005) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265k3c.p1", 0x000000, 0x100000, CRC(a54ef179) SHA1(a6bc835b2803c26d915dbb6c5496997134fde085) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2k3d ) /* [OLD] The King of Fighters 2002 - (kof2k2k3r13) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k2k3r13.txt for more 20031009) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265k3d.p1", 0x000000, 0x100000, CRC(07ba5eaf) SHA1(f6e51f1240c38991886fd23185f45d72702aca07) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2k3e ) /* [OLD] The King of Fighters 2002 - (kof2k2k3r14) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof2k2k3r14.txt for more 20031016) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265k3e.p1", 0x000000, 0x100000, CRC(1fd40e4d) SHA1(b0f355c5b99d2f3a2281c63d3f3d23fa809ceb2e) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2k3f ) /* [OLD] The King of Fighters 2002 - (kof2k2k3r15) - Remix by Jason/K3 - (Character move change ultra revision - can choose Kusanagi and Rugal 20031202) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265k3f.p1", 0x000000, 0x100000, CRC(2d7cd2b8) SHA1(a7a6c23431d01a0a8d6d8d63b4dbae78e9a762cb) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2k3g ) /* [OLD] The King of Fighters 2002 - (kof2k2k3r16) - Remix by Jason/K3 - (Character move change ultra revision - can choose Kusanagi and Rugal 20040418) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265k3g.p1", 0x000000, 0x100000, CRC(035d16f9) SHA1(7472fe8887d4f88e85838913821aac7452391aef) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2kai )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265kai.p1", 0x000000, 0x100000, CRC(243bd906) SHA1(ec7c2034b050dbe93a2b3bc23a1e9dc22f5b1d40) )
+ ROM_LOAD16_WORD_SWAP( "265kai.p2", 0x100000, 0x400000, CRC(c1200d66) SHA1(73b6c449c5de4dae84f5a3bbad67799a39a6a5d5) )
+
+ NEO_SFIX_128K( "265rm13.s1", CRC(BD19C308) SHA1(38a9055bbd981a794e1fd9065985b4c033b78e93) )
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) )
+ ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265xxx.c1", 0x0000000, 0x800000, CRC(745B343E) SHA1(ae8293b18cfb4c20e2915149872d9fa561a218bf) )
+ ROM_LOAD16_BYTE( "265xxx.c2", 0x0000001, 0x800000, CRC(2AAB7F98) SHA1(083c6e9162ab3bb49b365f91246cb39019dabe43) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) )
+ ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) )
+ROM_END
+
+ROM_START( kof2k2kc ) /* The King of Fighters 2002 - Colour fix by Fighters Kim - (Colour change) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265-p1.p1", 0x000000, 0x100000, CRC(9ede7323) SHA1(ad9d45498777fda9fa58e75781f48e09aee705a6) )
+ ROM_LOAD16_WORD_SWAP( "265kc.p2", 0x100000, 0x400000, CRC(86b62f43) SHA1(f9afbce58843258d236144b4de8c3370a9185f1a) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2kc2 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265kc2.p1", 0x000000, 0x100000, CRC(811512bb) SHA1(510f5bb0ba8c72ca5377b18f75d71816e8eb79d1) )
+ ROM_LOAD16_WORD_SWAP( "265kc2.p2", 0x100000, 0x400000, CRC(7808c018) SHA1(2d671596de7a878b324d81ba464b58530088eb33) )
+
+ NEO_SFIX_128K( "265kc2.s1", CRC(67e7cbe1) SHA1(3582c2073f04e71a6d5a34145727d148a11ab375) )
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265rm13.c4", 0x1000001, 0x800000, CRC(2558972F) SHA1(2e0627fc5d689bf64fe36f02a489408d103c4499) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265kc2.c7", 0x3000000, 0x800000, CRC(54fa8789) SHA1(71311275bed0c47af2ddbcd1c5f77664c6a73a56) )
+ ROM_LOAD16_BYTE( "265kc2.c8", 0x3000001, 0x800000, CRC(ce62cb09) SHA1(30f17893ce6441bf41257ab93df5b99683098cfc) )
+ROM_END
+
+ROM_START( kof2k2kk )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265kk.p1", 0x000000, 0x100000, CRC(69301bc9) SHA1(6f5d0ebe12e88c98ec1f416d440ad7d569886966) )
+ ROM_LOAD16_WORD_SWAP( "265kk.p2", 0x100000, 0x400000, CRC(816c5aa2) SHA1(8821f91d4eeab58e3df669f3ab8817a94010f297) )
+
+ NEO_SFIX_128K( "265kk.s1", CRC(dd1dcb5b) SHA1(a24b4d725e1a3640f9a5cc46ed26192ffef79862) )
+
+ NEO_BIOS_AUDIO_128K( "265ori.m1", CRC(AB9D360E) SHA1(a0c8a5aae387c4f0b72790211695da7df924c351) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265smg.c7", 0x3000000, 0x800000, CRC(febfa475) SHA1(ed69f7536d39522b85bfaa512e75b85d08b439e9) )
+ ROM_LOAD16_BYTE( "265smg.c8", 0x3000001, 0x800000, CRC(8f9b7991) SHA1(9c6e6af48c18e81ecba68563f8fb9caa85899672) )
+ROM_END
+
+ROM_START( kof2k2lb )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265lb.p1", 0x000000, 0x100000, CRC(1602f059) SHA1(8a94d7f5efadd2a4e5a0bd360825746592e351b3) )
+ ROM_LOAD16_WORD_SWAP( "265lb.p2", 0x100000, 0x400000, CRC(7f8298fb) SHA1(b902d72793e0de74ed44b30475999ef0e3722394) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) )
+ ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) )
+ ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) )
+ROM_END
+
+ROM_START( kof2k2leon ) // Credit display is incorrect
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265leon.p1", 0x000000, 0x100000, CRC(eba68160) SHA1(1d226e00782df71556666222e20f48268c17968c) )
+ ROM_LOAD16_WORD_SWAP( "265leon.p2", 0x100000, 0x400000, CRC(952fae3d) SHA1(09f868eb02b8df425c80f59ad43adbc3107755ab) )
+
+ NEO_SFIX_128K( "265leon.s1", CRC(adf096e9) SHA1(812e321319d9426dbeeb55f14b2bf61bd9c2998e) )
+
+ NEO_BIOS_AUDIO_128K( "265ori.m1", CRC(AB9D360E) SHA1(a0c8a5aae387c4f0b72790211695da7df924c351) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265leon.c7", 0x3000000, 0x800000, CRC(c02c8a0c) SHA1(f757dc124d8375c47af05b650bfc69997a27c63b) )
+ ROM_LOAD16_BYTE( "265leon.c8", 0x3000001, 0x800000, CRC(45ac1284) SHA1(d59357d629557c09d559518d235c0379fa88dd70) )
+ROM_END
+
+ROM_START( kof2k2mcr )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265mcr.p1", 0x000000, 0x100000, CRC(1aeb806a) SHA1(a79d0021c4076efe4aae00994dfa7f3ddfd41bc5) )
+ ROM_LOAD16_WORD_SWAP( "265mcr.p2", 0x100000, 0x400000, CRC(4134dc22) SHA1(20d887b96957d5255f2b18950ea45b6ecd782b51) )
+
+ NEO_SFIX_128K( "265evo.s1", CRC(E0EAABA3) SHA1(831b642da9fe7617498cdb1c86475b3b3d3043bc) )
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) )
+ ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265spls.c7", 0x3000000, 0x800000, CRC(31e7aaa3) SHA1(733710493cd885701f5f34078a875bc77ed57442) )
+ ROM_LOAD16_BYTE( "265spls.c8", 0x3000001, 0x800000, CRC(f26a445b) SHA1(3fba6d95c1af77a6fe2e65af39eba0ce3e4134b7) )
+ROM_END
+
+ROM_START( kof2k2moi2 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265moi2.p1", 0x000000, 0x100000, CRC(0851940b) SHA1(5f374412c783b2d2392693d64c084dac4a7f3438) )
+ ROM_LOAD16_WORD_SWAP( "265moi2.p2", 0x100000, 0x400000, CRC(95c2783d) SHA1(49eb7ceba441988ff974bc5b9b935036b8701291) )
+
+ NEO_SFIX_128K( "265k2.s1", CRC(10de5d7c) SHA1(44f4f523a787cf3094923483b824d7795858aff6) )
+
+ NEO_BIOS_AUDIO_128K( "265ori.m1", CRC(AB9D360E) SHA1(a0c8a5aae387c4f0b72790211695da7df924c351) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265moi2.c1", 0x0000000, 0x800000, CRC(4d15a195) SHA1(68e4fd57a32e671f259ce1d3a98727af3d91d0ba) )
+ ROM_LOAD16_BYTE( "265moi2.c2", 0x0000001, 0x800000, CRC(4468df56) SHA1(979973716d75f319c265969555a939d15424b74e) )
+ ROM_LOAD16_BYTE( "265ori.c3", 0x1000000, 0x800000, CRC(E5074EEA) SHA1(387ef21d58b416126b95843bac1a0b6cc346818f) )
+ ROM_LOAD16_BYTE( "265ori.c4", 0x1000001, 0x800000, CRC(F6EB1FF2) SHA1(77cb493b9e75d42c204a9a6c052a813c2730e44f) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265ori.c7", 0x3000000, 0x800000, CRC(0E9F6ADB) SHA1(0e4cdbd3df2ef7b0c78c3275ee22684c67bf2d23) )
+ ROM_LOAD16_BYTE( "265ori.c8", 0x3000001, 0x800000, CRC(9961799E) SHA1(cf5d43bbd90269155ac41fe9a31328654784351f) )
+ROM_END
+
+ROM_START( kof2k2moir )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265moir.p1", 0x000000, 0x100000, CRC(adb10912) SHA1(1b352dc12010822b54893ae291b0cc19c20475f8) )
+ ROM_LOAD16_WORD_SWAP( "265moir.p2", 0x100000, 0x400000, CRC(e9204705) SHA1(421f50e90753c97a497172e655094871cd99b43c) )
+
+ NEO_SFIX_128K( "265moir.s1", CRC(627af296) SHA1(f2a24587896d05927456a35ef3e749505ac27dbb) )
+
+ NEO_BIOS_AUDIO_128K( "265ori.m1", CRC(AB9D360E) SHA1(a0c8a5aae387c4f0b72790211695da7df924c351) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) )
+ ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) )
+ROM_END
+
+ROM_START( kof2k2mp1 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265mp1.p1", 0x000000, 0x100000, CRC(aba169fe) SHA1(934dd20f6e3da261cb9f3587cdd8145ecdcdfa84) )
+ ROM_LOAD16_WORD_SWAP( "265ht.p2", 0x100000, 0x400000, CRC(dec98282) SHA1(8a3c055c6c728a77134bda1f379995ebca623654) )
+
+ NEO_SFIX_128K( "265mp1.s1", CRC(29c0693e) SHA1(a852d15a8558b4a1cadf1ed9ef357d765ff88d35) )
+
+ NEO_BIOS_AUDIO_128K( "265nu.m1", CRC(f80eb346) SHA1(7affe04a8e19c33ea99359ffe5f2936f7e724fa1) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) )
+ ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) )
+ROM_END
+
+ROM_START( kof2k2mp3 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265mp3.p1", 0x000000, 0x100000, CRC(0cdbe99c) SHA1(d1c0c953a1c313d10105a7882dadd5927bca3e4f) )
+ ROM_LOAD16_WORD_SWAP( "265ori.p2", 0x100000, 0x400000, CRC(DE6FFD21) SHA1(0f9108aae7541d0d754ce764b195c921c021c373) )
+
+ NEO_SFIX_128K( "265mp3.s1", CRC(4d0c4e77) SHA1(6e65b3e0ec2a04de4553f8ccf9c3197a0126e332) )
+
+ NEO_BIOS_AUDIO_128K( "265ori.m1", CRC(AB9D360E) SHA1(a0c8a5aae387c4f0b72790211695da7df924c351) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265rs.c1", 0x0000000, 0x800000, CRC(c1a21b4c) SHA1(235938175d6011c5c8a37fc94f8fb604132d8038) )
+ ROM_LOAD16_BYTE( "265rs.c2", 0x0000001, 0x800000, CRC(9b3d7e8d) SHA1(38c16541862636934a456f23632f64ff0f5ae617) )
+ ROM_LOAD16_BYTE( "265ori.c3", 0x1000000, 0x800000, CRC(E5074EEA) SHA1(387ef21d58b416126b95843bac1a0b6cc346818f) )
+ ROM_LOAD16_BYTE( "265ori.c4", 0x1000001, 0x800000, CRC(F6EB1FF2) SHA1(77cb493b9e75d42c204a9a6c052a813c2730e44f) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265ori.c7", 0x3000000, 0x800000, CRC(0E9F6ADB) SHA1(0e4cdbd3df2ef7b0c78c3275ee22684c67bf2d23) )
+ ROM_LOAD16_BYTE( "265ori.c8", 0x3000001, 0x800000, CRC(9961799E) SHA1(cf5d43bbd90269155ac41fe9a31328654784351f) )
+ROM_END
+
+ROM_START( kof2k2mpu )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265mpu.p1", 0x000000, 0x100000, CRC(96388f42) SHA1(4129ca8d2a3f6543303bafafef479a48460e58ec) )
+ ROM_LOAD16_WORD_SWAP( "265mpu.p2", 0x100000, 0x400000, CRC(d8a309e1) SHA1(a0625455f8d72bc9bcf1c880bf00e8d1814a830b) )
+
+ NEO_SFIX_128K( "265mpu.s1", CRC(561a7dd9) SHA1(5e57c6e670e2ecaaa0937a6bede9c391af8a38d4) )
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265rm13.c4", 0x1000001, 0x800000, CRC(2558972F) SHA1(2e0627fc5d689bf64fe36f02a489408d103c4499) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265or.c7", 0x3000000, 0x800000, CRC(201e75e0) SHA1(7805d7a753df4d97bd73e05f22f31fe6440eaf6c) )
+ ROM_LOAD16_BYTE( "265or.c8", 0x3000001, 0x800000, CRC(ff0fd53b) SHA1(68289ab3f808b9c067a948948f48d5a3f1787e6c) )
+ROM_END
+
+ROM_START( kof2k2ngp ) // colour change of kof2k2br1
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265br1.p1", 0x000000, 0x100000, CRC(b73033df) SHA1(c8e1ce1d35be1dd537709a533e7dac37e047f428) )
+ ROM_LOAD16_WORD_SWAP( "265ngp.p2", 0x100000, 0x400000, CRC(644fc435) SHA1(35de9b2db631a41d66dc7e141131d79b5fbeff42) )
+
+ NEO_SFIX_128K( "265evo.s1", CRC(E0EAABA3) SHA1(831b642da9fe7617498cdb1c86475b3b3d3043bc) )
+
+ NEO_BIOS_AUDIO_128K( "265ori.m1", CRC(AB9D360E) SHA1(a0c8a5aae387c4f0b72790211695da7df924c351) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) )
+ ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) )
+ROM_END
+
+ROM_START( kof2k2nu )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265nu.p1", 0x000000, 0x100000, CRC(ebedae17) SHA1(5f84562f9ef7a6b007290e59b31a62aca208f579) )
+ ROM_LOAD16_WORD_SWAP( "265nu.p2", 0x100000, 0x400000, CRC(2c4b2098) SHA1(8468149138c06cd98152c71d0064d04d9befc713) )
+
+ NEO_SFIX_128K( "265nu.s1", CRC(c401c4fd) SHA1(ff3289d9320fc461cd57dda847d98c8c22094368) )
+
+ NEO_BIOS_AUDIO_128K( "265nu.m1", CRC(f80eb346) SHA1(7affe04a8e19c33ea99359ffe5f2936f7e724fa1) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265nu.c3", 0x1000000, 0x800000, CRC(263c7a65) SHA1(9b7532c63aad57cd9c274e4b8ec857e9d695b2af) )
+ ROM_LOAD16_BYTE( "265nu.c4", 0x1000001, 0x800000, CRC(bdfd88a2) SHA1(a3ac23eeb883616d25207ad872cca8ae28b93292) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) )
+ ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) )
+ROM_END
+
+ROM_START( kof2k2olp )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265olp.p1", 0x000000, 0x100000, CRC(76bb0cfc) SHA1(243b6daeaf573e48cc99df343232cfb5e66de564) )
+ ROM_LOAD16_WORD_SWAP( "265olp.p2", 0x100000, 0x400000, CRC(9240c85c) SHA1(6ed323d31deaae3db6a4faa908b37a5b14440199) )
+
+ NEO_SFIX_128K( "265evo.s1", CRC(E0EAABA3) SHA1(831b642da9fe7617498cdb1c86475b3b3d3043bc) )
+
+ NEO_BIOS_AUDIO_128K( "265ori.m1", CRC(AB9D360E) SHA1(a0c8a5aae387c4f0b72790211695da7df924c351) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) )
+ ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) )
+ROM_END
+
+ROM_START( kof2k2omg ) // kof02omg
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265omg.p1", 0x000000, 0x100000, CRC(62174834) SHA1(7bdfa0260bba90b0325b90849fb8f9acef34c3f4) )
+ ROM_IGNORE( 0x2bd4c1 )
+ ROM_LOAD16_WORD_SWAP( "265omg.p2", 0x100000, 0x400000, CRC(6fadc5c3) SHA1(8336d339013d3357b11b8e0c1816b560a755f935) )
+
+ NEO_SFIX_128K( "265omg.s1", CRC(6145daf4) SHA1(81bf405e8862854f3ae003ca840c0de05326a54f) )
+
+ NEO_BIOS_AUDIO_128K( "265ori.m1", CRC(AB9D360E) SHA1(a0c8a5aae387c4f0b72790211695da7df924c351) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265xxx.c1", 0x0000000, 0x800000, CRC(745B343E) SHA1(ae8293b18cfb4c20e2915149872d9fa561a218bf) )
+ ROM_LOAD16_BYTE( "265xxx.c2", 0x0000001, 0x800000, CRC(2AAB7F98) SHA1(083c6e9162ab3bb49b365f91246cb39019dabe43) )
+ ROM_LOAD16_BYTE( "265ori.c3", 0x1000000, 0x800000, CRC(E5074EEA) SHA1(387ef21d58b416126b95843bac1a0b6cc346818f) )
+ ROM_LOAD16_BYTE( "265ori.c4", 0x1000001, 0x800000, CRC(F6EB1FF2) SHA1(77cb493b9e75d42c204a9a6c052a813c2730e44f) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265ori.c7", 0x3000000, 0x800000, CRC(0E9F6ADB) SHA1(0e4cdbd3df2ef7b0c78c3275ee22684c67bf2d23) )
+ ROM_LOAD16_BYTE( "265ori.c8", 0x3000001, 0x800000, CRC(9961799E) SHA1(cf5d43bbd90269155ac41fe9a31328654784351f) )
+ROM_END
+
+ROM_START( kof2k2omg8 ) // KOF-ON Team omega 0.8
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265omg8.p1", 0x000000, 0x100000, CRC(53086581) SHA1(a548625cfe62bc6f164276fda8e589a0e734af25) )
+ ROM_LOAD16_WORD_SWAP( "265omg8.p2", 0x100000, 0x400000, CRC(40228fe5) SHA1(6beb7be722c1b0da70f1127b262b1e8a737cb22c) )
+
+ NEO_SFIX_128K( "265omg8.s1", CRC(65351d40) SHA1(84035a80c1d0a35e487da831063cd4a77790a86f) )
+
+ NEO_BIOS_AUDIO_256K( "265omg8.m1", CRC(9a3d5c65) SHA1(382a104c1637622b6e1e44af2db331c5832cd09c) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) )
+ ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265omg8.c1", 0x0000000, 0x800000, CRC(e144302d) SHA1(8156a7f52b4c0f73d0f770314ccd8da07eab7266) )
+ ROM_LOAD16_BYTE( "265omg8.c2", 0x0000001, 0x800000, CRC(b10c6958) SHA1(e2112d1640cbcdeaaa0cb2bbf87d759184d4a6f0) )
+ ROM_LOAD16_BYTE( "265omg8.c3", 0x1000000, 0x800000, CRC(2367927c) SHA1(31a5b58feaeb2ecbde5573b48b50cdd8bcaa6ab4) )
+ ROM_LOAD16_BYTE( "265omg8.c4", 0x1000001, 0x800000, CRC(4ad48c29) SHA1(9908a7c2d579059a97927d58f4ea95b17deb9952) )
+ ROM_LOAD16_BYTE( "365ru.c5", 0x2000000, 0x800000, CRC(11126545) SHA1(4ae58848c8a6701c9cfcd60e6674e8fb7491c0c0) )
+ ROM_LOAD16_BYTE( "365ru.c6", 0x2000001, 0x800000, CRC(d225bb9b) SHA1(ee627dab6aeebfb1af9dbdc315a927245243817c) )
+ ROM_LOAD16_BYTE( "265omg8.c7", 0x3000000, 0x800000, CRC(890c2a4a) SHA1(04e8720ee62782b8fd6621ef4dc4e7469f57b10c) )
+ ROM_LOAD16_BYTE( "265omg8.c8", 0x3000001, 0x800000, CRC(b726009d) SHA1(29e84e7012cd5c109937ea2e6a455ed9829776ac) )
+ROM_END
+
+ROM_START( kof2k2omg9 ) // omega v9
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265-p1.p1", 0x000000, 0x100000, CRC(9ede7323) SHA1(ad9d45498777fda9fa58e75781f48e09aee705a6) )
+ ROM_LOAD16_WORD_SWAP( "265omg9.p2", 0x100000, 0x400000, CRC(cd503fcf) SHA1(8f83fd34f441d706fabac6eee1357e27cb55d60b) )
+
+ NEO_SFIX_128K( "265omg9.s1", CRC(4562fb20) SHA1(623bc397f5fa9e2686ea098d16e8c11215bfd61d) )
+
+ NEO_BIOS_AUDIO_128K( "265ori.m1", CRC(AB9D360E) SHA1(a0c8a5aae387c4f0b72790211695da7df924c351) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265omg9b.c1", 0x0000000, 0x800000, CRC(c8314ae2) SHA1(7d89b556de98e0d89448e5118ffeea4239461635) )
+ ROM_LOAD16_BYTE( "265omg9b.c2", 0x0000001, 0x800000, CRC(e0ddced5) SHA1(d8b5bd419bc825b99c206f54fbce97305839bcc9) )
+ ROM_LOAD16_BYTE( "265omg9b.c3", 0x1000000, 0x800000, CRC(6898f6e2) SHA1(4d8101534f85838eff3823ead72bdbcee57a3a50) )
+ ROM_LOAD16_BYTE( "265omg9b.c4", 0x1000001, 0x800000, CRC(9232e491) SHA1(e56b5657842d5e147e56c485dfa9a5a0a6ffba2d) )
+ ROM_LOAD16_BYTE( "365ru.c5", 0x2000000, 0x800000, CRC(11126545) SHA1(4ae58848c8a6701c9cfcd60e6674e8fb7491c0c0) )
+ ROM_LOAD16_BYTE( "365ru.c6", 0x2000001, 0x800000, CRC(d225bb9b) SHA1(ee627dab6aeebfb1af9dbdc315a927245243817c) )
+ ROM_LOAD16_BYTE( "265omg9b.c7", 0x3000000, 0x800000, CRC(6954ef57) SHA1(807f7bcdac379c5dce7745f10925e5c4a10c2c85) )
+ ROM_LOAD16_BYTE( "265omg9b.c8", 0x3000001, 0x800000, CRC(3e394883) SHA1(03e92267bdef8651bac6278c8068892dadba3ad8) )
+ROM_END
+
+ROM_START( kof2k2omg9b ) // omega v9 beta
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265-p1.p1", 0x000000, 0x100000, CRC(9ede7323) SHA1(ad9d45498777fda9fa58e75781f48e09aee705a6) )
+ ROM_LOAD16_WORD_SWAP( "265omg9b.p2", 0x100000, 0x400000, CRC(a171b684) SHA1(2b8ef67c0e2709e77a07d3c139cf411961470e49) )
+
+ NEO_SFIX_128K( "265omg9b.s1", CRC(7e3f391a) SHA1(2680cdf630f8c726d8efaee4b4108108028c4c38) )
+
+ NEO_BIOS_AUDIO_256K( "265omg8.m1", CRC(9a3d5c65) SHA1(382a104c1637622b6e1e44af2db331c5832cd09c) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265omg9b.c1", 0x0000000, 0x800000, CRC(c8314ae2) SHA1(7d89b556de98e0d89448e5118ffeea4239461635) )
+ ROM_LOAD16_BYTE( "265omg9b.c2", 0x0000001, 0x800000, CRC(e0ddced5) SHA1(d8b5bd419bc825b99c206f54fbce97305839bcc9) )
+ ROM_LOAD16_BYTE( "265omg9b.c3", 0x1000000, 0x800000, CRC(6898f6e2) SHA1(4d8101534f85838eff3823ead72bdbcee57a3a50) )
+ ROM_LOAD16_BYTE( "265omg9b.c4", 0x1000001, 0x800000, CRC(9232e491) SHA1(e56b5657842d5e147e56c485dfa9a5a0a6ffba2d) )
+ ROM_LOAD16_BYTE( "365ru.c5", 0x2000000, 0x800000, CRC(11126545) SHA1(4ae58848c8a6701c9cfcd60e6674e8fb7491c0c0) )
+ ROM_LOAD16_BYTE( "365ru.c6", 0x2000001, 0x800000, CRC(d225bb9b) SHA1(ee627dab6aeebfb1af9dbdc315a927245243817c) )
+ ROM_LOAD16_BYTE( "265omg9b.c7", 0x3000000, 0x800000, CRC(6954ef57) SHA1(807f7bcdac379c5dce7745f10925e5c4a10c2c85) )
+ ROM_LOAD16_BYTE( "265omg9b.c8", 0x3000001, 0x800000, CRC(3e394883) SHA1(03e92267bdef8651bac6278c8068892dadba3ad8) )
+ROM_END
+
+ROM_START( kof2k2on )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265on.p1", 0x000000, 0x100000, CRC(398ebaff) SHA1(6055bca69cd1cc922d269ff0c5a036e5482ca9b8) )
+ ROM_LOAD16_WORD_SWAP( "k2k2m2p2.bin", 0x100000, 0x400000, CRC(432fdf53) SHA1(d7e542cd84d948162c60768e40ee4ed33d8e7913) )
+
+ NEO_SFIX_128K( "265ori2.s1", CRC(99ca0abc) SHA1(cb0e5646590f1ed998e02a70a009c432fbaef2e2) )
+
+ NEO_BIOS_AUDIO_128K( "265ori.m1", CRC(AB9D360E) SHA1(a0c8a5aae387c4f0b72790211695da7df924c351) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265ori.c3", 0x1000000, 0x800000, CRC(E5074EEA) SHA1(387ef21d58b416126b95843bac1a0b6cc346818f) )
+ ROM_LOAD16_BYTE( "265ori.c4", 0x1000001, 0x800000, CRC(F6EB1FF2) SHA1(77cb493b9e75d42c204a9a6c052a813c2730e44f) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) )
+ ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) )
+ROM_END
+
+ROM_START( kof2k2or ) /* The King of Fighters 2002 - Third Strike of Orochi */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265or.p1", 0x000000, 0x100000, CRC(eb84d68f) SHA1(8dccf250cf04e129529793abcc655f5fc7fb6629) )
+ ROM_LOAD16_WORD_SWAP( "265or.p2", 0x100000, 0x400000, CRC(293bbf78) SHA1(647eea522d0a163675205aeab9b0b9ebb3a47eea) )
+
+ NEO_SFIX_128K( "265ps2.s1", CRC(714ade47) SHA1(a46115ed89454d8090fae59cfa4aea61a4a81ebf) )
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) )
+ ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265rm13.c4", 0x1000001, 0x800000, CRC(2558972F) SHA1(2e0627fc5d689bf64fe36f02a489408d103c4499) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265or.c7", 0x3000000, 0x800000, CRC(201e75e0) SHA1(7805d7a753df4d97bd73e05f22f31fe6440eaf6c) )
+ ROM_LOAD16_BYTE( "265or.c8", 0x3000001, 0x800000, CRC(ff0fd53b) SHA1(68289ab3f808b9c067a948948f48d5a3f1787e6c) )
+ROM_END
+
+ROM_START( kof2k2ori )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265ori.p1", 0x000000, 0x100000, CRC(081406DB) SHA1(3fbf24c222ebb5e4d6084f3664ab00caae24e156) )
+ ROM_LOAD16_WORD_SWAP( "265ori.p2", 0x100000, 0x400000, CRC(DE6FFD21) SHA1(0f9108aae7541d0d754ce764b195c921c021c373) )
+
+ NEO_SFIX_128K( "265ori.s1", CRC(98622D30) SHA1(dad20e619a3158b890e6b129179befc5770cf4c0) )
+
+ NEO_BIOS_AUDIO_128K( "265ori.m1", CRC(AB9D360E) SHA1(a0c8a5aae387c4f0b72790211695da7df924c351) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) )
+ ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265rs.c1", 0x0000000, 0x800000, CRC(c1a21b4c) SHA1(235938175d6011c5c8a37fc94f8fb604132d8038) )
+ ROM_LOAD16_BYTE( "265rs.c2", 0x0000001, 0x800000, CRC(9b3d7e8d) SHA1(38c16541862636934a456f23632f64ff0f5ae617) )
+ ROM_LOAD16_BYTE( "265ori.c3", 0x1000000, 0x800000, CRC(E5074EEA) SHA1(387ef21d58b416126b95843bac1a0b6cc346818f) )
+ ROM_LOAD16_BYTE( "265ori.c4", 0x1000001, 0x800000, CRC(F6EB1FF2) SHA1(77cb493b9e75d42c204a9a6c052a813c2730e44f) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265ori.c7", 0x3000000, 0x800000, CRC(0E9F6ADB) SHA1(0e4cdbd3df2ef7b0c78c3275ee22684c67bf2d23) )
+ ROM_LOAD16_BYTE( "265ori.c8", 0x3000001, 0x800000, CRC(9961799E) SHA1(cf5d43bbd90269155ac41fe9a31328654784351f) )
+ROM_END
+
+ROM_START( kof2k2ori2 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265ori2.p1", 0x000000, 0x100000, CRC(42a7a398) SHA1(355edf6c75a52c535118b1ed58c3eb348e0770ca) )
+ ROM_LOAD16_WORD_SWAP( "265ori.p2", 0x100000, 0x400000, CRC(DE6FFD21) SHA1(0f9108aae7541d0d754ce764b195c921c021c373) )
+
+ NEO_SFIX_128K( "265ori2.s1", CRC(99ca0abc) SHA1(cb0e5646590f1ed998e02a70a009c432fbaef2e2) )
+
+ NEO_BIOS_AUDIO_128K( "265ori.m1", CRC(AB9D360E) SHA1(a0c8a5aae387c4f0b72790211695da7df924c351) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) )
+ ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265rs.c1", 0x0000000, 0x800000, CRC(c1a21b4c) SHA1(235938175d6011c5c8a37fc94f8fb604132d8038) )
+ ROM_LOAD16_BYTE( "265rs.c2", 0x0000001, 0x800000, CRC(9b3d7e8d) SHA1(38c16541862636934a456f23632f64ff0f5ae617) )
+ ROM_LOAD16_BYTE( "265ori.c3", 0x1000000, 0x800000, CRC(E5074EEA) SHA1(387ef21d58b416126b95843bac1a0b6cc346818f) )
+ ROM_LOAD16_BYTE( "265ori.c4", 0x1000001, 0x800000, CRC(F6EB1FF2) SHA1(77cb493b9e75d42c204a9a6c052a813c2730e44f) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265ori.c7", 0x3000000, 0x800000, CRC(0E9F6ADB) SHA1(0e4cdbd3df2ef7b0c78c3275ee22684c67bf2d23) )
+ ROM_LOAD16_BYTE( "265ori.c8", 0x3000001, 0x800000, CRC(9961799E) SHA1(cf5d43bbd90269155ac41fe9a31328654784351f) )
+ROM_END
+
+ROM_START( kof2k2pa ) /* same as kof2k2plb except s1 from smg, p1 is new */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265pa.p1", 0x000000, 0x100000, CRC(6a3a02f3) SHA1(c9973b64e9a87fa38dde233ee3e9a73ba085b013) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_128K( "265smg.s1", CRC(1a3ed064) SHA1(9749bb55c750e6b65d651998c2649c5fb68db68e) )
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2pjw ) /* The King of Fighters 2002 - Enhance by Jason/K3 and Wesker - ('Plus' version by Jason/K3 and Wesker) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265pjw.p1", 0x000000, 0x100000, CRC(a87c318e) SHA1(58703a572cf37565e024dec570723b8e8f2c22e2) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2pl17 ) // KOF2k2plus2017
+ ROM_REGION( 0x720000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265pl17.p1", 0x000000, 0x100000, CRC(bd94702d) SHA1(85f1c0930ebf160eeb0995c00eab9bfd896b87e3) )
+ ROM_LOAD16_WORD_SWAP( "265pl17.p2", 0x100000, 0x500000, CRC(76e75315) SHA1(f95cc585676a3d2d49b4249fea3872fd7f4af5ef) )
+ ROM_LOAD16_WORD_SWAP( "265pl17.p3", 0x700000, 0x020000, CRC(6bfe80b0) SHA1(2ea3e2ed1bf5e20c256a41dd5c1160e945fa333e) )
+
+ NEO_SFIX_128K( "265pl17.s1", CRC(96bdd036) SHA1(62baba893e10dbed5c5099040b07432c0737be42) )
+
+ NEO_BIOS_AUDIO_ENCRYPTED_128K( "265-m1.m1", CRC(85aaa632) SHA1(744fba4ca3bc3a5873838af886efb97a8a316104) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265pl17.c1", 0x0000000, 0x800000, CRC(93cf6345) SHA1(1e4194556082ed29bab45a5ccf42022c9c9515b0) )
+ ROM_LOAD16_BYTE( "265pl17.c2", 0x0000001, 0x800000, CRC(d7373d66) SHA1(ed1040e2433480c89ffbae4dc854984cc734e15d) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) )
+ ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) )
+ROM_END
+
+ROM_START( kof2k2plb ) /* bootleg - same as MAME kf2k2pls except m1 & s1 are different */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "2k2-p1p.bin",0x000000, 0x100000, CRC(3ab03781) SHA1(86946c19f1c4d9ab5cde86688d698bf63118a39d) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_128K( "265plb.s1", CRC(2072d5e9) SHA1(45f9eb101f4b58ce40c307fd9fa8b1e95215a81b) )
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2pr ) /* [OLD] The King of Fighters 2002 - (kof2k2pr) - Remix by Raymonose - (Character move change 20% 20030607) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265pr.p1", 0x000000, 0x100000, CRC(a950f9e2) SHA1(769d4b4d8e8dd1cf8db95398534a1242ab12a0ae) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2pro ) /* [OLD] The King of Fighters 2002 - (kof2k2pre) - Remix by Raymonose - (Character move change 20% 20030607) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265pro.p1", 0x000000, 0x100000, CRC(76efe13e) SHA1(c280e942cfdae74da19dbb37e69f29a99fe5eed3) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2ps2 ) /* The King of Fighters 2002 - PS2 ver */
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265ps2.p1", 0x000000, 0x100000, CRC(5a8c7f2f) SHA1(c661a189b5e83c457135cb535c551f68afe82c0d) )
+ ROM_LOAD16_WORD_SWAP( "265ps2.p2", 0x100000, 0x500000, CRC(cb0032bf) SHA1(4bb3176f3a7f06871698b0493d9c3feb7f8f015c) )
+
+ NEO_SFIX_128K( "265ps2.s1", CRC(714ade47) SHA1(a46115ed89454d8090fae59cfa4aea61a4a81ebf) )
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) )
+ ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) )
+
+ ROM_REGION( 0x5000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265rm13.c4", 0x1000001, 0x800000, CRC(2558972F) SHA1(2e0627fc5d689bf64fe36f02a489408d103c4499) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265ps2.c7", 0x3000000, 0x800000, CRC(1b1d35fb) SHA1(474e956a627c90508fcda5c12de83743339814aa) )
+ ROM_LOAD16_BYTE( "265ps2.c8", 0x3000001, 0x800000, CRC(a5e35d11) SHA1(dccd445754a07e243f39d06b4b31cb9937f3b3bd) )
+ ROM_LOAD16_BYTE( "265ps2.c9", 0x4000000, 0x800000, CRC(aa8bbc97) SHA1(f0dde66eceb34609473d83e2514b7056a0a22851) )
+ ROM_LOAD16_BYTE( "265ps2.c10", 0x4000001, 0x800000, CRC(9832713d) SHA1(899c00ea88ef536441b9358b4620402ca9851cf5) )
+ROM_END
+
+ROM_START( kof2k2ps2a )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265ps2a.p1", 0x000000, 0x100000, CRC(336c4ca8) SHA1(132d6444d63c065205357adabd437adf9cdea585) )
+ ROM_LOAD16_WORD_SWAP( "265ps2.p2", 0x100000, 0x500000, CRC(cb0032bf) SHA1(4bb3176f3a7f06871698b0493d9c3feb7f8f015c) )
+
+ NEO_SFIX_128K( "265ps2.s1", CRC(714ade47) SHA1(a46115ed89454d8090fae59cfa4aea61a4a81ebf) )
+
+ NEO_BIOS_AUDIO_ENCRYPTED_128K( "265-m1.m1", CRC(85aaa632) SHA1(744fba4ca3bc3a5873838af886efb97a8a316104) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x5000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265ps2.c7", 0x3000000, 0x800000, CRC(1b1d35fb) SHA1(474e956a627c90508fcda5c12de83743339814aa) )
+ ROM_LOAD16_BYTE( "265ps2.c8", 0x3000001, 0x800000, CRC(a5e35d11) SHA1(dccd445754a07e243f39d06b4b31cb9937f3b3bd) )
+ ROM_LOAD16_BYTE( "265ps2.c9", 0x4000000, 0x800000, CRC(aa8bbc97) SHA1(f0dde66eceb34609473d83e2514b7056a0a22851) )
+ ROM_LOAD16_BYTE( "265ps2.c10", 0x4000001, 0x800000, CRC(9832713d) SHA1(899c00ea88ef536441b9358b4620402ca9851cf5) )
+ROM_END
+
+ROM_START( kof2k2ps2mp )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265ps2mp.p1", 0x000000, 0x100000, CRC(8c111128) SHA1(6a8017a236e331786a5eaaee50daf9a7d8d5f358) )
+ ROM_LOAD16_WORD_SWAP( "265ps2.p2", 0x100000, 0x500000, CRC(cb0032bf) SHA1(4bb3176f3a7f06871698b0493d9c3feb7f8f015c) )
+
+ NEO_SFIX_128K( "265ps2.s1", CRC(714ade47) SHA1(a46115ed89454d8090fae59cfa4aea61a4a81ebf) )
+
+ NEO_BIOS_AUDIO_128K( "265ori.m1", CRC(AB9D360E) SHA1(a0c8a5aae387c4f0b72790211695da7df924c351) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x5000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265rm13.c4", 0x1000001, 0x800000, CRC(2558972F) SHA1(2e0627fc5d689bf64fe36f02a489408d103c4499) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265ps2.c7", 0x3000000, 0x800000, CRC(1b1d35fb) SHA1(474e956a627c90508fcda5c12de83743339814aa) )
+ ROM_LOAD16_BYTE( "265ps2.c8", 0x3000001, 0x800000, CRC(a5e35d11) SHA1(dccd445754a07e243f39d06b4b31cb9937f3b3bd) )
+ ROM_LOAD16_BYTE( "265ps2.c9", 0x4000000, 0x800000, CRC(aa8bbc97) SHA1(f0dde66eceb34609473d83e2514b7056a0a22851) )
+ ROM_LOAD16_BYTE( "265ps2.c10", 0x4000001, 0x800000, CRC(9832713d) SHA1(899c00ea88ef536441b9358b4620402ca9851cf5) )
+ROM_END
+
+ROM_START( kof2k2pur )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265pur.p1", 0x000000, 0x100000, CRC(e3fbd156) SHA1(a71cdef591a7d15e40d05617fb73929607d1a895) )
+ ROM_LOAD16_WORD_SWAP( "265pur.p2", 0x100000, 0x400000, CRC(fd3c0e06) SHA1(50b10e7838c683852811dcdfb7d6b4297cd8597c) )
+
+ NEO_SFIX_128K( "265evo.s1", CRC(E0EAABA3) SHA1(831b642da9fe7617498cdb1c86475b3b3d3043bc) )
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) )
+ ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265rs.c1", 0x0000000, 0x800000, CRC(c1a21b4c) SHA1(235938175d6011c5c8a37fc94f8fb604132d8038) )
+ ROM_LOAD16_BYTE( "265rs.c2", 0x0000001, 0x800000, CRC(9b3d7e8d) SHA1(38c16541862636934a456f23632f64ff0f5ae617) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) )
+ ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) )
+ROM_END
+
+ROM_START( kof2k2ra ) /* [OLD] The King of Fighters 2002 - (kof2k2ra) - Revise by Ruin Angel - (Fighter combat moves revision - bases on CHL´s work 2003/04) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265ra.p1", 0x000000, 0x100000, CRC(e08d9418) SHA1(b99fd8cea5b0cb16c8b58f748898d6bdaf8035f1) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2rgl )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265rgl.p1", 0x000000, 0x100000, CRC(188d4288) SHA1(f745718329718852b42267cd9a17ea5cd107d0bf) )
+ ROM_LOAD16_WORD_SWAP( "265rgl.p2", 0x100000, 0x400000, CRC(f0a176a9) SHA1(5344fd686f03d4fc9c9aded4556b42ae5d5150c5) )
+
+ NEO_SFIX_128K( "265rgl.s1", CRC(ca827be9) SHA1(0f2acadb0f840809420e6f96f0f89d357815ef4c) )
+
+ NEO_BIOS_AUDIO_128K( "265ori.m1", CRC(AB9D360E) SHA1(a0c8a5aae387c4f0b72790211695da7df924c351) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265xxx.c1", 0x0000000, 0x800000, CRC(745B343E) SHA1(ae8293b18cfb4c20e2915149872d9fa561a218bf) )
+ ROM_LOAD16_BYTE( "265xxx.c2", 0x0000001, 0x800000, CRC(2AAB7F98) SHA1(083c6e9162ab3bb49b365f91246cb39019dabe43) )
+ ROM_LOAD16_BYTE( "265js.c3", 0x1000000, 0x800000, CRC(ca656090) SHA1(ed7f79eeabb965f5cdfbdd1c2d137ef5db366e03) )
+ ROM_LOAD16_BYTE( "265js.c4", 0x1000001, 0x800000, CRC(eb898849) SHA1(eac79b04382fc20dd9f7b9345d929aff58889e8f) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265rgl.c7", 0x3000000, 0x800000, CRC(0e13aace) SHA1(419eb29e3a479cb5dbd5d99f1d79e8846770d0cb) )
+ ROM_LOAD16_BYTE( "265rgl.c8", 0x3000001, 0x800000, CRC(986d4825) SHA1(558f929929c207207442798d72459baed837c1a3) )
+ROM_END
+
+ROM_START( kof2k2rm ) /* [OLD] The King of Fighters 2002 - (kof2k2rm) - Remix by Raymonose - (Remix 33%) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265rm.p1", 0x000000, 0x100000, CRC(8dd5a885) SHA1(80959a2909b499c61c815929b17df05efa59ba46) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2rma )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265rma.p1", 0x000000, 0x100000, CRC(b98ba35a) SHA1(14c3e255da8d1b75b9d47a1d5a8eb0172e35abf0) )
+ ROM_LOAD16_WORD_SWAP( "265rma.p2", 0x100000, 0x400000, CRC(26ea77d2) SHA1(4a63fd6296c9e0e3cb663602d478b3fde60ad9df) )
+
+ NEO_SFIX_128K( "265rma.s1", CRC(8544b8ea) SHA1(bb25fae3aedba6023ca6bfdc0dd3db0c57ad14d0) )
+
+ NEO_BIOS_AUDIO_128K( "265rm13.m1", CRC(9956CCD8) SHA1(ed0f5e87360dfa89a58e1b333f4a66e91c2faf56) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265js.v1", 0x000000, 0x400000, CRC(3961af5a) SHA1(483662b9ec1da54e6786a34327837a48eed3501f) )
+ ROM_LOAD( "265rm13.v2", 0x400000, 0x400000, CRC(0a1e505a) SHA1(62d128909b21cef4605ed35195e5503d1e056659) )
+ ROM_LOAD( "265rm13.v3", 0x800000, 0x400000, CRC(15bc1d92) SHA1(bc22e274f279a01518de8cd519847eb01ff675ef) )
+ ROM_LOAD( "265rm13.v4", 0xc00000, 0x400000, CRC(b5f43393) SHA1(7bbbff6aeb44e8964bbb46372b856ffe6c530076) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265rma.c7", 0x3000000, 0x800000, CRC(5e79a235) SHA1(610a8073c61c5346f23e95a79369ed7950a02d63) )
+ ROM_LOAD16_BYTE( "265rma.c8", 0x3000001, 0x800000, CRC(a2b54e2d) SHA1(3f534ac51f3c2b1efe8a76cabd7e154ea9f1f13e) )
+ROM_END
+
+ROM_START( kof2k2rmb )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265rma.p1", 0x000000, 0x100000, CRC(b98ba35a) SHA1(14c3e255da8d1b75b9d47a1d5a8eb0172e35abf0) )
+ ROM_LOAD16_WORD_SWAP( "265rmb.p2", 0x100000, 0x400000, CRC(8684acf0) SHA1(364cde00d3c35b3aca60fe5d0bf6ffa774898787) )
+
+ NEO_SFIX_128K( "265rm13.s1", CRC(BD19C308) SHA1(38a9055bbd981a794e1fd9065985b4c033b78e93) )
+
+ NEO_BIOS_AUDIO_128K( "265rm13.m1", CRC(9956CCD8) SHA1(ed0f5e87360dfa89a58e1b333f4a66e91c2faf56) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265js.v1", 0x000000, 0x400000, CRC(3961af5a) SHA1(483662b9ec1da54e6786a34327837a48eed3501f) )
+ ROM_LOAD( "265rm13.v2", 0x400000, 0x400000, CRC(0a1e505a) SHA1(62d128909b21cef4605ed35195e5503d1e056659) )
+ ROM_LOAD( "265rm13.v3", 0x800000, 0x400000, CRC(15bc1d92) SHA1(bc22e274f279a01518de8cd519847eb01ff675ef) )
+ ROM_LOAD( "265rm13.v4", 0xc00000, 0x400000, CRC(b5f43393) SHA1(7bbbff6aeb44e8964bbb46372b856ffe6c530076) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265rm13.c7", 0x3000000, 0x800000, CRC(2A9D505C) SHA1(dcd3899aebc4602e4249b3e61299a0c8bf2e5e56) )
+ ROM_LOAD16_BYTE( "265rm13.c8", 0x3000001, 0x800000, CRC(93D8501F) SHA1(470f29de0bad8c15d924fffbbfa85926b551a8ae) )
+ROM_END
+
+ROM_START( kof2k2rm1 ) /* [OLD] The King of Fighters 2002 - (kof2k2rm1) - Remix by Raymonose - (Remix revision 1 - 66%) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265rm1.p1", 0x000000, 0x100000, CRC(0ba302d8) SHA1(ce919c4acd305e8c5e0412fdc4fcb84ec2da9c9d) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2rm2 ) /* [OLD] The King of Fighters 2002 - (kof2k2rm2) - Remix by Raymonose - (Remix revision 2 - 80% 20030414) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265rm2.p1", 0x000000, 0x100000, CRC(2c9db5d8) SHA1(0ba62a1012114e40a30c7d437930397274e30920) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2rm3 ) /* [OLD] The King of Fighters 2002 - (kof2k2rm3) - Remix by Raymonose - (Remix revision 3 - 89% 20030420) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265rm3.p1", 0x000000, 0x100000, CRC(aa5a8d6a) SHA1(1bc7666d255c9c6e076b396030dff3b71dd7ca02) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2rm13 ) // kf2k2rm13 at gametroniks
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265rm13.p1", 0x000000, 0x100000, CRC(D4CA84AC) SHA1(df33693f980b1db4d2baef562364bf9d7172b53a) )
+ ROM_LOAD16_WORD_SWAP( "265rm13.p2", 0x100000, 0x400000, CRC(3CAA9FF2) SHA1(a55099baba9df85c45c1449289ffb89cd2a486d7) )
+
+ NEO_SFIX_128K( "265rm13.s1", CRC(BD19C308) SHA1(38a9055bbd981a794e1fd9065985b4c033b78e93) )
+
+ NEO_BIOS_AUDIO_128K( "265rm13.m1", CRC(9956CCD8) SHA1(ed0f5e87360dfa89a58e1b333f4a66e91c2faf56) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265rm13.v1", 0x000000, 0x400000, CRC(fbb908d7) SHA1(35805022a36a539033fa4ec07cfbebcaac4cb972) )
+ ROM_LOAD( "265rm13.v2", 0x400000, 0x400000, CRC(0a1e505a) SHA1(62d128909b21cef4605ed35195e5503d1e056659) )
+ ROM_LOAD( "265rm13.v3", 0x800000, 0x400000, CRC(15bc1d92) SHA1(bc22e274f279a01518de8cd519847eb01ff675ef) )
+ ROM_LOAD( "265rm13.v4", 0xc00000, 0x400000, CRC(b5f43393) SHA1(7bbbff6aeb44e8964bbb46372b856ffe6c530076) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265rm13.c4", 0x1000001, 0x800000, CRC(2558972F) SHA1(2e0627fc5d689bf64fe36f02a489408d103c4499) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265rm13.c7", 0x3000000, 0x800000, CRC(2A9D505C) SHA1(dcd3899aebc4602e4249b3e61299a0c8bf2e5e56) )
+ ROM_LOAD16_BYTE( "265rm13.c8", 0x3000001, 0x800000, CRC(93D8501F) SHA1(470f29de0bad8c15d924fffbbfa85926b551a8ae) )
+ROM_END
+
+ROM_START( kof2k2rr ) /* [OLD] The King of Fighters 2002 - (kof2k2rr) - Revise by Ricky - (Fighter combat moves revision - bases on CHL´s work 2003/05 - 2003/06) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265rr.p1", 0x000000, 0x100000, CRC(8c66baae) SHA1(bed090cf6b2a0ebfdde891ef2f319b9bb79236e1) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2rr1 ) /* [OLD] The King of Fighters 2002 - (kof2k2rr) - Revise by Ricky - (Fighter combat moves revision - bases on CHL´s work 2003/05 - 2003/06) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265rr1.p1", 0x000000, 0x100000, CRC(a0929b00) SHA1(0539553e9a8778ef0f1d613527b316b6f0e99a7c) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2rr2 ) /* [OLD] The King of Fighters 2002 - (kof2k2rr) - Revise by Ricky - (Fighter combat moves revision - bases on CHL´s work 2003/05 - 2003/06) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265rr2.p1", 0x000000, 0x100000, CRC(13b61d63) SHA1(0649f25bc6a64a8059b82d6b09e62eb1f2537e50) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2rr3 ) /* [OLD] The King of Fighters 2002 - (kof2k2rr) - Revise by Ricky - (Fighter combat moves revision - bases on CHL´s work 2003/05 - 2003/06) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265rr3.p1", 0x000000, 0x100000, CRC(67b64636) SHA1(d9537596bcbc86d9f5a162501829212ee9f941dd) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2rr4 ) /* [OLD] The King of Fighters 2002 - (kof2k2rr) - Revise by Ricky - (Fighter combat moves revision - bases on CHL´s work 2003/05 - 2003/06) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265rr4.p1", 0x000000, 0x100000, CRC(4a12ef24) SHA1(dfe2f34d4181643f3f06d8223fdf1e43dbe3110a) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2rr5 ) /* [OLD] The King of Fighters 2002 - (kof2k2rr) - Revise by Ricky - (Fighter combat moves revision - bases on CHL´s work 2003/05 - 2003/06) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265rr5.p1", 0x000000, 0x100000, CRC(aba2827f) SHA1(6477110e0649db35a0494f5f63b37626a5af6391) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2rr6 ) /* [OLD] The King of Fighters 2002 - (kof2k2rr) - Revise by Ricky - (Fighter combat moves revision - bases on CHL´s work 2003/05 - 2003/06) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265rr6.p1", 0x000000, 0x100000, CRC(c6b9d2c7) SHA1(d49613a2f9793ea684c9aa6af4685a4b25cab596) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2rr7 ) /* [OLD] The King of Fighters 2002 - (kof2k2rr) - Revise by Ricky - (Fighter combat moves revision - bases on CHL´s work 2003/05 - 2003/06) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265rr7.p1", 0x000000, 0x100000, CRC(56c9e089) SHA1(248b9c4c00179fbd6b877ba8df2b8acd45f71adf) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2rr8 ) /* [OLD] The King of Fighters 2002 - (kof2k2rr) - Revise by Ricky - (Fighter combat moves revision - bases on CHL´s work 2003/05 - 2003/06) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265rr8.p1", 0x000000, 0x100000, CRC(f0a14d18) SHA1(6b4e4ceda6d516966e02906b30e861508addc705) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2rs )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265rs.p1", 0x000000, 0x100000, CRC(fcd1b366) SHA1(403103f959ad36026924f62701f9ef465950215e) )
+ ROM_LOAD16_WORD_SWAP( "265rs.p2", 0x100000, 0x400000, CRC(346d0bae) SHA1(9c01a1767b3ba79cabcc7f86634d486a30c1cf62) )
+
+ NEO_SFIX_128K( "265rs.s1", CRC(914bd3f7) SHA1(b2db65fac73367b0f956bf5a0d80a9aaffd432f1) )
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) )
+ ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265rs.c1", 0x0000000, 0x800000, CRC(c1a21b4c) SHA1(235938175d6011c5c8a37fc94f8fb604132d8038) )
+ ROM_LOAD16_BYTE( "265rs.c2", 0x0000001, 0x800000, CRC(9b3d7e8d) SHA1(38c16541862636934a456f23632f64ff0f5ae617) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265rs.c7", 0x3000000, 0x800000, CRC(ea3405d4) SHA1(9d3291a2dd3b50f8f9a82ce1c56dd3695e32a7cc) )
+ ROM_LOAD16_BYTE( "265rs.c8", 0x3000001, 0x800000, CRC(41c547fa) SHA1(b08f86a56a78e7080275031da2c590417a21b2e9) )
+ROM_END
+
+ROM_START( kof2k2rs2 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265rs.p1", 0x000000, 0x100000, CRC(fcd1b366) SHA1(403103f959ad36026924f62701f9ef465950215e) )
+ ROM_LOAD16_WORD_SWAP( "265rs2.p2", 0x100000, 0x400000, CRC(4fc9c70c) SHA1(99c97634af60fc54318685f1a8e90e8c402195fd) )
+
+ NEO_SFIX_128K( "265rs.s1", CRC(914bd3f7) SHA1(b2db65fac73367b0f956bf5a0d80a9aaffd432f1) )
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) )
+ ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265rs.c1", 0x0000000, 0x800000, CRC(c1a21b4c) SHA1(235938175d6011c5c8a37fc94f8fb604132d8038) )
+ ROM_LOAD16_BYTE( "265rs.c2", 0x0000001, 0x800000, CRC(9b3d7e8d) SHA1(38c16541862636934a456f23632f64ff0f5ae617) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265rs.c7", 0x3000000, 0x800000, CRC(ea3405d4) SHA1(9d3291a2dd3b50f8f9a82ce1c56dd3695e32a7cc) )
+ ROM_LOAD16_BYTE( "265rs.c8", 0x3000001, 0x800000, CRC(41c547fa) SHA1(b08f86a56a78e7080275031da2c590417a21b2e9) )
+ROM_END
+
+ROM_START( kof2k2ru ) /* The King of Fighters 2002 - Remix Ultra by Jason/K3 - (Character move change ultra revision - can choose Kusanagi and Rugal 20040820 - v2.5) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265ru.p1", 0x000000, 0x100000, CRC(4455e4b3) SHA1(ac607cb5620f757e4707503e01582e6049212135) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2rw ) /* The King of Fighters 2002 - Remix by Wesker - (Character move change - can choose Kusanagi and Rugal 200310xx) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265rw.p1", 0x000000, 0x100000, CRC(4cb3582e) SHA1(e990d8159d4ab9d20ad563b144a5d789a2a25087) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2sb ) /* [OLD] The King of Fighters 2002 - (kof2k2sb) - Revise by Streetboy - (Fighter combat moves revision - bases on CHL´s work 2003/04) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265sb.p1", 0x000000, 0x100000, CRC(a3c73508) SHA1(b2ab64f8828bf2a1d94f129e2b8a911b2f3f461e) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2seh ) /* The King of Fighters 2002 - Super Enhance Hack by Creamymami - (Can choose Kusanagi and Rugal - ultra kill start is max - ultra power hack) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265seh.p1", 0x000000, 0x100000, CRC(41616bff) SHA1(cc75e2704a6058c4775978b58003d7b46a7f114c) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2se2 ) /* The King of Fighters 2002 - Super Enhance Hack by Creamymami - (Can select Rugal and Kusanagi - ultra kill start is max - ultra power hack - modif. kf2k2seh) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265se2.p1", 0x000000, 0x100000, CRC(c02f73c1) SHA1(e7c1d0c18f1f3ba4044aca4337ed1f9302f42909) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2sm ) // bad gfx on train scene
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265sm.p1", 0x000000, 0x100000, CRC(8599ad97) SHA1(d5d1225bcc57ae7bc980ab43072e66936367c419) )
+ ROM_LOAD16_WORD_SWAP( "265sm.p2", 0x100000, 0x400000, CRC(7633f140) SHA1(a6b1f582290b8212c6f74a4b944186b1bb0e0a01) )
+
+ NEO_SFIX_128K( "265sm.s1", CRC(f060242d) SHA1(4bc27e74f49ef924916de653c34339f77f648f35) )
+
+ NEO_BIOS_AUDIO_128K( "265nu.m1", CRC(f80eb346) SHA1(7affe04a8e19c33ea99359ffe5f2936f7e724fa1) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265sm.v1", 0x000000, 0x400000, CRC(8991f6e9) SHA1(ce5afc0169c142d7f98111afbc60b3a9a2e17256) )
+ ROM_LOAD( "265sm.v2", 0x400000, 0x400000, CRC(511e4d2f) SHA1(28190ec86ac2169ab6fad80635ed13cfcf430c65) )
+ ROM_LOAD( "265sm.v3", 0x800000, 0x400000, CRC(1dd8b53a) SHA1(9aa84f145ba07f5f3c3b3fb682eb8a8ab1500b4c) )
+ ROM_LOAD( "265sm.v4", 0xc00000, 0x400000, CRC(63bb5462) SHA1(afc6a085e25bd006f26e16beda4244bc8bc19bb8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265sm.c1", 0x0000000, 0x800000, CRC(2c6642dd) SHA1(19cf4a674b7f78e5639c9b5517242f20695c6713) )
+ ROM_LOAD16_BYTE( "265sm.c2", 0x0000001, 0x800000, CRC(1410aaa2) SHA1(2698ba6dd348feb0b7fc8e331e2e6a59f7fc6ef3) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265rm13.c4", 0x1000001, 0x800000, CRC(2558972F) SHA1(2e0627fc5d689bf64fe36f02a489408d103c4499) )
+ ROM_LOAD16_BYTE( "265sm.c5", 0x2000000, 0x800000, CRC(59ccfd5a) SHA1(b532a8a5ce96ab73cfc6b1e19144797a04837df6) )
+ ROM_LOAD16_BYTE( "265sm.c6", 0x2000001, 0x800000, CRC(2bfa516d) SHA1(89971bc824093684f3ac3f97e3c1b152f18f7502) )
+ ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) )
+ ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) )
+ROM_END
+
+ROM_START( kof2k2smf ) // kf2k2smf
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265smf.p1", 0x000000, 0x100000, CRC(d8010414) SHA1(4a6e509e25b819188181375238f5b086ee28ff6e) )
+ ROM_LOAD16_WORD_SWAP( "265smf.p2", 0x100000, 0x400000, CRC(1647a83a) SHA1(2415636880cfb5a65255d9248a3034d247eff8d4) )
+
+ NEO_SFIX_128K( "265smf.s1", CRC(c7282dbc) SHA1(7fd82850a35a6ea0c2877aaf39cc46d7dcbd939b) )
+
+ NEO_BIOS_AUDIO_128K( "265ori.m1", CRC(AB9D360E) SHA1(a0c8a5aae387c4f0b72790211695da7df924c351) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265smg.c7", 0x3000000, 0x800000, CRC(febfa475) SHA1(ed69f7536d39522b85bfaa512e75b85d08b439e9) )
+ ROM_LOAD16_BYTE( "265smg.c8", 0x3000001, 0x800000, CRC(8f9b7991) SHA1(9c6e6af48c18e81ecba68563f8fb9caa85899672) )
+ROM_END
+
+ROM_START( kof2k2smg )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265smg.p1", 0x000000, 0x100000, CRC(8c07ce4e) SHA1(754d588fb41cbaf9466c677e9daccac4e2025925) )
+ ROM_LOAD16_WORD_SWAP( "265smg.p2", 0x100000, 0x400000, CRC(dc836917) SHA1(b0d6701d07cadc7e202c7ef3755872f721dca679) )
+
+ NEO_SFIX_128K( "265smg.s1", CRC(1a3ed064) SHA1(9749bb55c750e6b65d651998c2649c5fb68db68e) )
+
+ NEO_BIOS_AUDIO_128K( "265ori.m1", CRC(AB9D360E) SHA1(a0c8a5aae387c4f0b72790211695da7df924c351) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265smg.c7", 0x3000000, 0x800000, CRC(febfa475) SHA1(ed69f7536d39522b85bfaa512e75b85d08b439e9) )
+ ROM_LOAD16_BYTE( "265smg.c8", 0x3000001, 0x800000, CRC(8f9b7991) SHA1(9c6e6af48c18e81ecba68563f8fb9caa85899672) )
+ROM_END
+
+ROM_START( kof2k2smg2 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265smg.p1", 0x000000, 0x100000, CRC(8c07ce4e) SHA1(754d588fb41cbaf9466c677e9daccac4e2025925) )
+ ROM_LOAD16_WORD_SWAP( "265smg2.p2", 0x100000, 0x400000, CRC(ba178ab6) SHA1(94dd06bbac4d38f78d186a02f0b808821b00a621) )
+
+ NEO_SFIX_128K( "265smg.s1", CRC(1a3ed064) SHA1(9749bb55c750e6b65d651998c2649c5fb68db68e) )
+
+ NEO_BIOS_AUDIO_128K( "265ori.m1", CRC(AB9D360E) SHA1(a0c8a5aae387c4f0b72790211695da7df924c351) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) )
+ ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) )
+ROM_END
+
+ROM_START( kof2k2soi )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265soi.p1", 0x000000, 0x100000, CRC(f4390d0f) SHA1(36cbb7bca856220667d42d94061d295cee655bf9) )
+ ROM_LOAD16_WORD_SWAP( "265soi.p2", 0x100000, 0x400000, CRC(5114896e) SHA1(c7e468ea8087b19bebf10ace9e57b28ec3888c43) )
+
+ NEO_SFIX_128K( "265soi.s1", CRC(5ea6a39b) SHA1(095d6bc61ca742db8553c441c97cb526acdd3f30) )
+
+ NEO_BIOS_AUDIO_128K( "kf10-m1.bin", CRC(f6fab859) SHA1(0184aa1394b9f9946d610278b53b846020dd88dc) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265rs.c1", 0x0000000, 0x800000, CRC(c1a21b4c) SHA1(235938175d6011c5c8a37fc94f8fb604132d8038) )
+ ROM_LOAD16_BYTE( "265rs.c2", 0x0000001, 0x800000, CRC(9b3d7e8d) SHA1(38c16541862636934a456f23632f64ff0f5ae617) )
+ ROM_LOAD16_BYTE( "265ori.c3", 0x1000000, 0x800000, CRC(E5074EEA) SHA1(387ef21d58b416126b95843bac1a0b6cc346818f) )
+ ROM_LOAD16_BYTE( "265ori.c4", 0x1000001, 0x800000, CRC(F6EB1FF2) SHA1(77cb493b9e75d42c204a9a6c052a813c2730e44f) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265ori.c7", 0x3000000, 0x800000, CRC(0E9F6ADB) SHA1(0e4cdbd3df2ef7b0c78c3275ee22684c67bf2d23) )
+ ROM_LOAD16_BYTE( "265ori.c8", 0x3000001, 0x800000, CRC(9961799E) SHA1(cf5d43bbd90269155ac41fe9a31328654784351f) )
+ROM_END
+
+ROM_START( kof2k2sp ) /* The King of Fighters 2002 - Remix by Wesker - (Character special move change - can choose Kusanagi and Rugal) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265sp.p1", 0x000000, 0x100000, CRC(22599a10) SHA1(93ffd9569179e176d7b2a532b47e6a6b806e6cb8) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2spl )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265spl.p1", 0x000000, 0x100000, CRC(ed966da6) SHA1(9e6a284da9605a6bb5816c85b9936ef620ef9087) )
+ ROM_LOAD16_WORD_SWAP( "265spl.p2", 0x100000, 0x400000, CRC(a871ab1e) SHA1(99d1e5805b194c179bb544d588eadd5174be897c) )
+
+ NEO_SFIX_128K( "265spl.s1", CRC(aeed9b6f) SHA1(afd41686b70e37149f5ae8ff956c9166ef481559) )
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) )
+ ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265xxx.c1", 0x0000000, 0x800000, CRC(745B343E) SHA1(ae8293b18cfb4c20e2915149872d9fa561a218bf) )
+ ROM_LOAD16_BYTE( "265xxx.c2", 0x0000001, 0x800000, CRC(2AAB7F98) SHA1(083c6e9162ab3bb49b365f91246cb39019dabe43) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265spl.c7", 0x3000000, 0x800000, CRC(d5c5712b) SHA1(ff1f32a44a2e42355d5148614771b52074dea672) )
+ ROM_LOAD16_BYTE( "265spl.c8", 0x3000001, 0x800000, CRC(7dfbea39) SHA1(f698308ef7d8a7019c21005089d7a5f801e3a07a) )
+ROM_END
+
+ROM_START( kof2k2spls )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265spls.p1", 0x000000, 0x100000, CRC(7481af02) SHA1(32561e4d6481123f580322c4e5d4b8f6a28258a5) )
+ ROM_LOAD16_WORD_SWAP( "265spls.p2", 0x100000, 0x400000, CRC(6578f2c6) SHA1(7881dd50fd1e613a9b448799e19257d57ff215ed) )
+
+ NEO_SFIX_128K( "265spls.s1", CRC(196592f6) SHA1(67f64aa251d65220ddaa69a10c526c1cd85540a6) )
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) )
+ ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265spls.c7", 0x3000000, 0x800000, CRC(31e7aaa3) SHA1(733710493cd885701f5f34078a875bc77ed57442) )
+ ROM_LOAD16_BYTE( "265spls.c8", 0x3000001, 0x800000, CRC(f26a445b) SHA1(3fba6d95c1af77a6fe2e65af39eba0ce3e4134b7) )
+ROM_END
+
+ROM_START( kof2k2spo ) /* [OLD] The King of Fighters 2002 - (kof2k2spo) - Remix by Wesker - (Character special move change - can choose Kusanagi and Rugal 20030830) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265spo.p1", 0x000000, 0x100000, CRC(546b71bb) SHA1(0fb3e5600a5ae07be3d7e736012163b66ab9800e) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2tc ) /* The King of Fighters 2002 - Colour fix by T.Com - (Character colour change - attack spark colour change for Iori and Orochi-Chris) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265-p1.p1", 0x000000, 0x100000, CRC(9ede7323) SHA1(ad9d45498777fda9fa58e75781f48e09aee705a6) )
+ ROM_LOAD16_WORD_SWAP( "265tc.p2", 0x100000, 0x400000, CRC(35186b8a) SHA1(d82a4a4d8fbb5a5725166756e11fc4c45b00c0b7) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2ul ) /* The King of Fighters 2002 - Remix Ultra by Raymonose - (Character move change 20030515) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265ul.p1", 0x000000, 0x100000, CRC(a54ef7f2) SHA1(16623a51f54b598b8fcdcfeda662c5482956df91) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2ule ) /* The King of Fighters 2002 - Remix Ultra by Raymonose - (Character move change - can choose Kusanagi and Rugal - ultra kill start is max - ultra power hack 20030515) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265ule.p1", 0x000000, 0x100000, CRC(7af1ef2e) SHA1(2ede44cf00b3ce23d891b03afd492c1ebdbf5f87) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2wuk ) /* The King of Fighters 2002 - Enhance by Wesker - (Ultra kill style revision max2 - perfect) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265wuk.p1", 0x000000, 0x100000, CRC(4d63b5fb) SHA1(f3409543c8a72a944cf26cdc91252096887835c0) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof2k2xxx )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265xxx.p1", 0x000000, 0x100000, CRC(E8E548B5) SHA1(77e13e4a8ec6031bd956378ab95913f91e35ded4) )
+ //ROM_LOAD16_WORD_SWAP( "265xxx.p2", 0x100000, 0x400000, CRC(5E7866B6) SHA1(da0c9d677f73661856d3ad294dc790fcbd8448d3) )
+ // alternate rom
+ ROM_LOAD16_WORD_SWAP( "265xxx.p2", 0x100000, 0x400000, CRC(51c6d9de) SHA1(e0ff1b78b159cc1afa6ed9b868697687ab3054e8) )
+
+ NEO_SFIX_128K( "265xxx.s1", CRC(0F78A636) SHA1(465d438e7edbb38ae5c29a59d4829a8e10c92321) )
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) )
+ ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265xxx.c1", 0x0000000, 0x800000, CRC(745B343E) SHA1(ae8293b18cfb4c20e2915149872d9fa561a218bf) )
+ ROM_LOAD16_BYTE( "265xxx.c2", 0x0000001, 0x800000, CRC(2AAB7F98) SHA1(083c6e9162ab3bb49b365f91246cb39019dabe43) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) )
+ ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) )
+ROM_END
+
+
+
+GAME( 2002, kof200215, kof2002, neogeo_noslot, neogeo, neogeo_noslot_state, kof2002, ROT0, "hack", "Kof2002 (MAGIC PLUS II)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2002d, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002d, ROT0, "Eolith / Playmore", "Kof2002 (decrypted C)", MACHINE_SUPPORTS_SAVE )
+GAME( 2005, kof2002x, kof2002, neogeo_noslot, neogeo, neogeo_noslot_state, kof2002, ROT0, "hack", "Kof2002 (Babel ice field remix)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2ath, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof2002 (Athena hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2b, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Alphax2?", "Kof2002 (Add Char set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2b1, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Alphax2?", "Kof2002 (Add Char set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2bd, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2k2bd, ROT0, "hack", "Kof2002 Challenge to Ultimate Battle (Bootleg, Decrypted)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2bh, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Alphax2", "Kof2002 (Add Char set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2bjh, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Ben Jeremy", "Kof2002 (Diff Moves 031025)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2bjo, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Ben Jeremy", "Kof2002 (Diff Moves 031013)", MACHINE_SUPPORTS_SAVE )
+GAME( 2011, kof2k2bl3, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Neo Nebuwaks/Ismamj", "Kof2002 BLOOD S.PLUS (BL3)", MACHINE_SUPPORTS_SAVE )
+GAME( 2011, kof2k2bl4, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Neo Nebuwaks/Ismamj", "Kof2002 BLOOD S.PLUS (BL4)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2bld, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof2002 BLOOD PLUS", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2blood2,kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof2002 BLOOD PLUS 2", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2br, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2k2h, ROT0, "hack", "Kof2002 (Portuguese set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2br1, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "hack", "Kof2002 (Portuguese set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2br2, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2k2h, ROT0, "hack", "Kof2002 (Portuguese set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2bs, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Dodowang", "Kof2002 (Boss Dodowang Hack (red flame))", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, kof2k2c2, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGCG / EGHT", "Kof2002 (3rd Strike of the Orochi)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2cf1, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2k2h, ROT0, "C6F8", "Kof2002 (Iori p3 and p4 Color Changed)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2cf2, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2k2h, ROT0, "C6F8", "Kof2002 (Char color changed - rel.2 030827)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2cf3, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2k2h, ROT0, "C6F8", "Kof2002 (Char color changed - rel.3 030831)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2cfc, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2k2h, ROT0, "C6F8", "Kof2002 (Char color changed - rel.4 031017)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2ch, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Coolhot", "Kof2002 (Move rev - Based on CHL and Ricky)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2chl, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "CHL", "Kof2002 (Enhanced gameplay - 030410)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2cl2, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "CHL", "Kof2002 (Enhanced gameplay - Rev.2 030413)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2cl3, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "CHL", "Kof2002 (Enhanced gameplay - Rev.3 030413)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2cn, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "FoxUU / ZUOJIE", "Kof2002 (Chinese Translation by FoxUU & ZUOJIE)", MACHINE_SUPPORTS_SAVE )
+GAME( 2010, kof2k2cori, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ismamj / EGCG / EGHT", "Kof2002 (3rd Strike By IsmaMj)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2dbh, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2k2dbh,ROT0, "Dodowang","Kof2002 (Add Char- MVS timer flaw)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2e1, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Kurouri", "Kof2002 (Add Char set 4)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2e2, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Creamymami", "Kof2002 (Add Char set 5)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2e3, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Creamymami", "Kof2002 (Add Char - Ultra kill start max)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2ehr, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Raymonose", "Kof2002 (Add Char - Ultra kill start max - Style rev. 33%)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2er2, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Raymonose", "Kof2002 (Add Char - Ultra kill start max - Style rev. 66%)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2er3, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Raymonose", "Kof2002 (Add Char - Ultra kill start max - Style rev. 80% 030414)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2er4, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Raymonose", "Kof2002 (Add Char - Ultra kill start max - Style rev. 89% 030420)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2erx, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Raymonose", "Kof2002 (Add Char - Ultra kill start max - Style rev. xx%)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2evo, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Jimmyi", "Kof2002 (Evolution)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2evo2, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "FCHT / EGHT", "Kof2002 (Evolution v1.3, by FCHT/EGHT)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2fy, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2k2h, ROT0, "Unk", "Kof2002 (Lifebar + K', Vanessa, Iori, Kula and Angel color changed)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2gc, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2k2h, ROT0, "Lewis67", "Kof2002 (Color changed set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2gc2, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2k2h, ROT0, "Lewis67", "Kof2002 (Color changed set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2gf, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2k2h, ROT0, "Kumagorou", "Kof2002 (Color changed set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2green, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "KOF-ON Team", "Kof2002 (Green colour hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2008, kof2k2ht, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "FMG CO", "Kof2002 (HT)", MACHINE_SUPPORTS_SAVE )
+GAME( 2010, kof2k2ibp, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ismamj", "Kof2002 (Ice Blue Perfect)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2ic1, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2k2h, ROT0, "Fighters Kim", "Kof2002 (Color changed - Attack cremation ice blue - 80%)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2ic2, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2k2h, ROT0, "Fighters Kim", "Kof2002 (Color changed - Attack cremation ice blue - Old)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2ice, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2k2h, ROT0, "Fighters Kim", "Kof2002 (Color changed - Attack cremation ice blue)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2jc, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2k2h, ROT0, "Jui Lee", "Kof2002 (Char color changed for Athena 3P, Kula 3P and Kula 4P)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2js, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Jason / FCHT", "Kof2002 KOF REMIX ULTRA (v3.0)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2js2, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Jason / FCHT", "Kof2002 KOF REMIX ULTRA (v3.5)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2js4, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Jason", "Kof2002 KOF REMIX ULTRA (v2.5 SDM)", MACHINE_SUPPORTS_SAVE )
+GAME( 2005, kof2k2k2, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof2002 10th Style", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2k3o, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Jason/K3", "Kof2002 (Moves KOF 98 style - 030629)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2k32, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Jason/K3", "Kof2002 (Moves KOF 98 style - 030725)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2k33, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Jason/K3", "Kof2002 (Moves KOF 98 style - 030730)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2k34, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Jason/K3", "Kof2002 (Moves KOF 98 style - 030805)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2k35, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Jason/K3", "Kof2002 (Moves KOF 98 style - 030815)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2k36, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Jason/K3", "Kof2002 (Moves KOF 98 style - 030818)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2k37, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Jason/K3", "Kof2002 (Moves KOF 98 style - 030823)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2k38, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Jason/K3","Kof2002 (Moves KOF 98 style - 030824)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2k39, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Jason/K3", "Kof2002 (Moves KOF 98 style - 030829)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2k3a, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Jason/K3","Kof2002 (Moves KOF 98 style - 030907)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2k3b, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Jason/K3", "Kof2002 (Moves KOF 98 style - 030908)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2k3c, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Jason/K3","Kof2002 (Moves KOF 98 style - 031005)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2k3d, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Jason/K3","Kof2002 (Moves KOF 98 style - 031009)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2k3e, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Jason/K3","Kof2002 (Moves KOF 98 style - 031016)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2k3f, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Jason/K3", "Kof2002 (Ultra - Add Char - Diff Moves 031202)", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, kof2k2k3g, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Jason/K3", "Kof2002 (Remix Ultra - Add Char - Diff Moves 040418)", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, kof2k2kai, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof2002 (Boss Hack Kai Version)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2kc, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2k2h, ROT0, "Fighters Kim", "Kof2002 (Color changed set 4)", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, kof2k2kc2, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGCG-EGHT / KOF-ON Team", "Kof2002 (3rd Strike Remixed by Kof ON Team)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2kk, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "KOF-ON Team", "Kof2002 (Hack Johnkof Remixed by KalcenTin)" , MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2lb, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2k2lb, ROT0, "LB70", "Kof2002 RETROPOKTER: VER 1.0", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2leon, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "KOF-ON Team", "Kof2002 (dedicated to Leon9000)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2mcr, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Neht", "Kof2002 MERRY X'MAS MIX", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2moi2, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Kof2002ex2", "Kof2002 2002EX 2(Magic Orochi Iori 2.0)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2moir, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "LB70", "Kof2002 (Retropokter Ver 1.0 - Magic Orochi Iori Remake)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2mp1, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof2002 (Magic Plus)" , MACHINE_SUPPORTS_SAVE )
+GAME( 2010, kof2k2mp3, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ismamj", "Kof2002 (Magic Plus III)" , MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2mpu, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker", "Kof2002 (Plus)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2ngp, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof2002 (Portuguese negative colour)", MACHINE_SUPPORTS_SAVE )
+GAME( 2012, kof2k2nu, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack by BXX", "Kof2002 (Super Black Nude Mix)" , MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2olp, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof2002 (Orochi Leona 97 color style)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2omg, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "KOF-ON Team", "Kof2002 (hack omg)", MACHINE_SUPPORTS_SAVE )
+GAME( 2010, kof2k2omg8, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "KOF-ON Team", "Kof2002 (Omega v0.8)", MACHINE_SUPPORTS_SAVE )
+GAME( 2012, kof2k2omg9, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "KOF-ON Team", "Kof2002 (Omega v0.9)", MACHINE_SUPPORTS_SAVE )
+GAME( 2011, kof2k2omg9b, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "KOF-ON Team", "Kof2002 (Omega v0.9 beta)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2on, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "KOF-ON Team", "Kof2002 ONTEAM", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, kof2k2or, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGCG-EGHT", "Kof2002 (3rd strike of Orochi)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2ori, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof2002 (Orochi's Iori Remixed)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2ori2, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "FCHT", "Kof2002 (Orochi's Iori by (FCHT) - Remixed by NEHT (Set 2))", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2pa, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2k2dbh,ROT0, "hack", "Kof2002 (Plus (hack 2))", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2pjw, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Jason/K3 and Wesker", "Kof2002 Plus (Jason/K3 and Wesker)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, kof2k2pl17, kof2002, lbsp, neogeo, neogeo_hbmame, kof2k2pl17, ROT0, "GSC2007", "Kof2002 Plus 2017 (2017-12-25)" , MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2plb, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2k2dbh,ROT0, "bootleg", "Kof2002 Plus (set 3, bootleg)" , MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2pr, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Raymonose", "Kof2002 (Diff Moves 20% - 030607)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2pro, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Raymonose", "Kof2002 (Diff Moves 20% - 030607 Older?)", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, kof2k2ps2, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGCG-EGHT", "Kof2002 (PS2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, kof2k2ps2a, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2k2ps2a, ROT0, "EGHT", "Kof2002 (PlayStation 2 ver 0.4, EGHT hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, kof2k2ps2mp, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGCG-EGHT", "Kof2002 (PlayStation 2 Beta (Magic Plus))", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2pur, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Kawada7278", "Kof2002 (Boss Purple Kawada7278 Hack)" , MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2ra, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Ruin Angel", "Kof2002 (Diff Moves - Based on CHL set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2rgl, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "KOF-ON Team", "Kof2002 Magic Unique Crazy Rugal Plus (Kof on Team)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2rm, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Raymonose", "Kof2002 (Remix 33%)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2rm1, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Raymonose", "Kof2002 (Remix rev.1 - 66%)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2rm2, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Raymonose", "Kof2002 (Remix rev.2 - 80% - 030414)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2rm3, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Raymonose", "Kof2002 (Remix rev.3 - 89% - 030420)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2rm13, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "FCHT", "Kof2002 KOF REMIX ULTRA (1.3)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2rma, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof2002 KOF REMIX ULTRA (2010-07-23)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2rmb, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof2002 KOF REMIX ULTRA", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2rr, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Ricky", "Kof2002 (Diff Moves - Based on CHL set 3 - 030430)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2rr1, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Ricky", "Kof2002 (Diff Moves - Based on CHL set 3 - 030508)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2rr2, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Ricky", "Kof2002 (Diff Moves - Based on CHL set 3 - 030508 Boss)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2rr3, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Ricky", "Kof2002 (Diff Moves - Based on CHL set 3 - 030509)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2rr4, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Ricky", "Kof2002 (Diff Moves - Based on CHL set 3 - 030509 Boss)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2rr5, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Ricky", "Kof2002 (Diff Moves - Based on CHL set 3 - 030517)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2rr6, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Ricky", "Kof2002 (Diff Moves - Based on CHL set 3 - 030610)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2rr7, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Ricky", "Kof2002 (Diff Moves - Based on CHL set 3 - rev.u)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2rr8, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Ricky", "Kof2002 (Diff Moves - Based on CHL set 3 - rev.u1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2rs, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Slovakia", "Kof2002 (Iori Special Remix)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2rs2, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Slovakia", "Kof2002 Super Plus (Ultimate Edition v2.0 by Slovakia)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2ru, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Jason/K3", "Kof2002 Remix Ultra v2.5 (Add Char - Diff Moves ultra rev - 040820)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2rw, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Wesker", "Kof2002 (Add Char - Diff Moves - 0310xx)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2sb, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Streetboy", "Kof2002 (Diff Moves - Based on CHL set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2se2, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Creamymami", "Kof2002 (Add Char - Ultra kill start max - Ultra pow hack set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2seh, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Creamymami", "Kof2002 (Add Char - Ultra kill start max - Ultra pow hack set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2013, kof2k2sm, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Maitry Maker", "Kof2002 (Super Mix)" , MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2smf, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "KOF-ON Team/Abbas", "Kof2002 (SMF)" , MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2smg, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker/Abbas", "Kof2002 (SMG by Abbas)" , MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2smg2, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Arn", "Kof2002 (Recompilation of SMG by Arn)" , MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2soi, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "ACM1PT", "Kof2002 Super Orochi Iori (by ADM1PT)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2sp, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Wesker", "Kof2002 (Add Char - Special move change)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2spl, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "NeHt", "Kof2002 Super Plus (Ultimate Edition by NeHt)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2spls, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "JasonK, Danpaji1, Marcochen", "Kof2002 Super Plus (JasonK, Danpaji1, Marcochen)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k2spo, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Wesker", "Kof2002 (Add Char - Special move change Old 030830)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2tc, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2k2h, ROT0, "T.Com", "Kof2002 (Char color changed - Attack spark color changed for Iori and Orochi-Chris)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2ul, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Raymonose", "Kof2002 (Diff Moves 030515)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2ule, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Raymonose", "Kof2002 (Add Char - Diff Move - Ultra kill start max - Ultra pow hack 030515)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2wuk, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof2002m, ROT0, "Wesker", "Kof2002 (Ultra kill style - rev max2 - perfect)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2xxx, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Peggy / Kim", "Kof2002 (Perfect revised edition)", MACHINE_SUPPORTS_SAVE )
+///GAME( 2002, kof2002d, kof2002, neogeo_noslot, neogeo, neogeo_state, kof2002d, ROT0, "hack", "Kof2002 (NGM-2650)(NGH-2650) (decrypted C)", MACHINE_SUPPORTS_SAVE )
+///GAME( 2002, kf2k2plb, kof2002, neogeo_noslot, neogeo, neogeo_state, kf2k2pls, ROT0, "bootleg", "Kof2002 Plus (set 3, bootleg / hack)", MACHINE_SUPPORTS_SAVE )
+///GAME( 2002, kf2k2plc, kof2002, neogeo_noslot, neogeo, neogeo_state, kf2k2plc, ROT0, "bootleg", "Kof2002 Super (set 4, bootleg / hack)", MACHINE_SUPPORTS_SAVE )
+
+
+//PSmame
+
+
+ROM_START( kof2k2s01 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265s01.p1", 0x000000, 0x100000, CRC(f13b09b6) SHA1(fe161bec624f81000300ad59a9e936330ca8de68) )
+ ROM_LOAD16_WORD_SWAP( "265nu.p2", 0x100000, 0x400000, CRC(2c4b2098) SHA1(8468149138c06cd98152c71d0064d04d9befc713) )
+
+ NEO_SFIX_128K( "265s01.s1", CRC(aec3715e) SHA1(cddb72d437a361b2ea41f0833ce115e7b790cf20) )
+
+ NEO_BIOS_AUDIO_128K( "265ori.m1", CRC(AB9D360E) SHA1(a0c8a5aae387c4f0b72790211695da7df924c351) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) )
+ ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) )
+ROM_END
+
+ROM_START( kof2k2s02 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265hc02.p1", 0x000000, 0x100000, CRC(a5138809) SHA1(0f77158c0d3bbcb58fd2aba5ecd4664cd497ed2f) )
+ ROM_LOAD16_WORD_SWAP( "265omg9b.p2", 0x100000, 0x400000, CRC(a171b684) SHA1(2b8ef67c0e2709e77a07d3c139cf411961470e49) )
+
+ NEO_SFIX_128K( "265hc02.s1", CRC(2a14c119) SHA1(8289ab75158a37d25131b9687e4c895699ec0081) )
+
+ NEO_BIOS_AUDIO_256K( "265omg8.m1", CRC(9a3d5c65) SHA1(382a104c1637622b6e1e44af2db331c5832cd09c) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265omg9b.c1", 0x0000000, 0x800000, CRC(c8314ae2) SHA1(7d89b556de98e0d89448e5118ffeea4239461635) )
+ ROM_LOAD16_BYTE( "265omg9b.c2", 0x0000001, 0x800000, CRC(e0ddced5) SHA1(d8b5bd419bc825b99c206f54fbce97305839bcc9) )
+ ROM_LOAD16_BYTE( "265omg9b.c3", 0x1000000, 0x800000, CRC(6898f6e2) SHA1(4d8101534f85838eff3823ead72bdbcee57a3a50) )
+ ROM_LOAD16_BYTE( "265omg9b.c4", 0x1000001, 0x800000, CRC(9232e491) SHA1(e56b5657842d5e147e56c485dfa9a5a0a6ffba2d) )
+ ROM_LOAD16_BYTE( "365ru.c5", 0x2000000, 0x800000, CRC(11126545) SHA1(4ae58848c8a6701c9cfcd60e6674e8fb7491c0c0) )
+ ROM_LOAD16_BYTE( "365ru.c6", 0x2000001, 0x800000, CRC(d225bb9b) SHA1(ee627dab6aeebfb1af9dbdc315a927245243817c) )
+ ROM_LOAD16_BYTE( "265omg9b.c7", 0x3000000, 0x800000, CRC(6954ef57) SHA1(807f7bcdac379c5dce7745f10925e5c4a10c2c85) )
+ ROM_LOAD16_BYTE( "265omg9b.c8", 0x3000001, 0x800000, CRC(3e394883) SHA1(03e92267bdef8651bac6278c8068892dadba3ad8) )
+ROM_END
+
+ROM_START( kof2k2s03 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265hc03.p1", 0x000000, 0x100000, CRC(e3afee9f) SHA1(e1a842a0431bd66839fcbd2106aff859e728935b) )
+ ROM_LOAD16_WORD_SWAP( "265omg8.p2", 0x100000, 0x400000, CRC(40228fe5) SHA1(6beb7be722c1b0da70f1127b262b1e8a737cb22c) )
+
+ NEO_SFIX_128K( "265omg8.s1", CRC(65351d40) SHA1(84035a80c1d0a35e487da831063cd4a77790a86f) )
+
+ NEO_BIOS_AUDIO_256K( "265omg8.m1", CRC(9a3d5c65) SHA1(382a104c1637622b6e1e44af2db331c5832cd09c) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265omg8.c1", 0x0000000, 0x800000, CRC(e144302d) SHA1(8156a7f52b4c0f73d0f770314ccd8da07eab7266) )
+ ROM_LOAD16_BYTE( "265omg8.c2", 0x0000001, 0x800000, CRC(b10c6958) SHA1(e2112d1640cbcdeaaa0cb2bbf87d759184d4a6f0) )
+ ROM_LOAD16_BYTE( "265omg8.c3", 0x1000000, 0x800000, CRC(2367927c) SHA1(31a5b58feaeb2ecbde5573b48b50cdd8bcaa6ab4) )
+ ROM_LOAD16_BYTE( "265omg8.c4", 0x1000001, 0x800000, CRC(4ad48c29) SHA1(9908a7c2d579059a97927d58f4ea95b17deb9952) )
+ ROM_LOAD16_BYTE( "365ru.c5", 0x2000000, 0x800000, CRC(11126545) SHA1(4ae58848c8a6701c9cfcd60e6674e8fb7491c0c0) )
+ ROM_LOAD16_BYTE( "365ru.c6", 0x2000001, 0x800000, CRC(d225bb9b) SHA1(ee627dab6aeebfb1af9dbdc315a927245243817c) )
+ ROM_LOAD16_BYTE( "265omg8.c7", 0x3000000, 0x800000, CRC(890c2a4a) SHA1(04e8720ee62782b8fd6621ef4dc4e7469f57b10c) )
+ ROM_LOAD16_BYTE( "265omg8.c8", 0x3000001, 0x800000, CRC(b726009d) SHA1(29e84e7012cd5c109937ea2e6a455ed9829776ac) )
+ROM_END
+
+ROM_START( kof2k2s04 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265hc05.p1", 0x000000, 0x100000, CRC(79bdb85a) SHA1(e81a97405f6bc92c6df065c749697a838b113056) )
+ ROM_LOAD16_WORD_SWAP( "265hc05.p2", 0x100000, 0x400000, CRC(55ec59c1) SHA1(38418a8c36a2a554492745da4be5c03c3da3692b) )
+
+ NEO_SFIX_128K( "265omg8.s1", CRC(65351d40) SHA1(84035a80c1d0a35e487da831063cd4a77790a86f) )
+
+ NEO_BIOS_AUDIO_256K( "265omg8.m1", CRC(9a3d5c65) SHA1(382a104c1637622b6e1e44af2db331c5832cd09c) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265omg8.c1", 0x0000000, 0x800000, CRC(e144302d) SHA1(8156a7f52b4c0f73d0f770314ccd8da07eab7266) )
+ ROM_LOAD16_BYTE( "265omg8.c2", 0x0000001, 0x800000, CRC(b10c6958) SHA1(e2112d1640cbcdeaaa0cb2bbf87d759184d4a6f0) )
+ ROM_LOAD16_BYTE( "265omg8.c3", 0x1000000, 0x800000, CRC(2367927c) SHA1(31a5b58feaeb2ecbde5573b48b50cdd8bcaa6ab4) )
+ ROM_LOAD16_BYTE( "265omg8.c4", 0x1000001, 0x800000, CRC(4ad48c29) SHA1(9908a7c2d579059a97927d58f4ea95b17deb9952) )
+ ROM_LOAD16_BYTE( "365ru.c5", 0x2000000, 0x800000, CRC(11126545) SHA1(4ae58848c8a6701c9cfcd60e6674e8fb7491c0c0) )
+ ROM_LOAD16_BYTE( "365ru.c6", 0x2000001, 0x800000, CRC(d225bb9b) SHA1(ee627dab6aeebfb1af9dbdc315a927245243817c) )
+ ROM_LOAD16_BYTE( "265omg8.c7", 0x3000000, 0x800000, CRC(890c2a4a) SHA1(04e8720ee62782b8fd6621ef4dc4e7469f57b10c) )
+ ROM_LOAD16_BYTE( "265omg8.c8", 0x3000001, 0x800000, CRC(b726009d) SHA1(29e84e7012cd5c109937ea2e6a455ed9829776ac) )
+ROM_END
+
+ROM_START( kof2k2s05 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265spl.p1", 0x000000, 0x100000, CRC(ed966da6) SHA1(9e6a284da9605a6bb5816c85b9936ef620ef9087) )
+ ROM_LOAD16_WORD_SWAP( "265hc05.sp2", 0x100000, 0x400000, CRC(869fb1ac) SHA1(8a60ca929680c9203071a16170ad830f8287d5d3) )
+
+ NEO_SFIX_128K( "265xxx.s1", CRC(0F78A636) SHA1(465d438e7edbb38ae5c29a59d4829a8e10c92321) )
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) )
+ ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265xxx.c1", 0x0000000, 0x800000, CRC(745B343E) SHA1(ae8293b18cfb4c20e2915149872d9fa561a218bf) )
+ ROM_LOAD16_BYTE( "265xxx.c2", 0x0000001, 0x800000, CRC(2AAB7F98) SHA1(083c6e9162ab3bb49b365f91246cb39019dabe43) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265spl.c7", 0x3000000, 0x800000, CRC(d5c5712b) SHA1(ff1f32a44a2e42355d5148614771b52074dea672) )
+ ROM_LOAD16_BYTE( "265spl.c8", 0x3000001, 0x800000, CRC(7dfbea39) SHA1(f698308ef7d8a7019c21005089d7a5f801e3a07a) )
+ROM_END
+
+ROM_START( kof2k2s06 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265spl.p1", 0x000000, 0x100000, CRC(ed966da6) SHA1(9e6a284da9605a6bb5816c85b9936ef620ef9087) )
+ ROM_LOAD16_WORD_SWAP( "265hc05.sp2", 0x100000, 0x400000, CRC(869fb1ac) SHA1(8a60ca929680c9203071a16170ad830f8287d5d3) )
+
+ NEO_SFIX_128K( "265xxx.s1", CRC(0F78A636) SHA1(465d438e7edbb38ae5c29a59d4829a8e10c92321) )
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) )
+ ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265xxx.c1", 0x0000000, 0x800000, CRC(745B343E) SHA1(ae8293b18cfb4c20e2915149872d9fa561a218bf) )
+ ROM_LOAD16_BYTE( "265xxx.c2", 0x0000001, 0x800000, CRC(2AAB7F98) SHA1(083c6e9162ab3bb49b365f91246cb39019dabe43) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265spl.c7", 0x3000000, 0x800000, CRC(d5c5712b) SHA1(ff1f32a44a2e42355d5148614771b52074dea672) )
+ ROM_LOAD16_BYTE( "265spl.c8", 0x3000001, 0x800000, CRC(7dfbea39) SHA1(f698308ef7d8a7019c21005089d7a5f801e3a07a) )
+ROM_END
+
+ROM_START( kof2k2s07 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265hc07.p1", 0x000000, 0x100000, CRC(37db2f18) SHA1(30bc4bb582a52b576869fe58c33708c2afe31fa4) )
+ ROM_LOAD16_WORD_SWAP( "265hc07.p2", 0x100000, 0x400000, CRC(68cc9a0b) SHA1(9c75649f7a6d0e4df10bfdcb858ed662f35126ce) )
+
+ NEO_SFIX_128K( "265hc07.s1", CRC(e11e0472) SHA1(5568b4ae7ba756842cbe49bd795e162af293c077) )
+
+ NEO_BIOS_AUDIO_128K( "265nu.m1", CRC(f80eb346) SHA1(7affe04a8e19c33ea99359ffe5f2936f7e724fa1) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265xxx.c1", 0x0000000, 0x800000, CRC(745B343E) SHA1(ae8293b18cfb4c20e2915149872d9fa561a218bf) )
+ ROM_LOAD16_BYTE( "265xxx.c2", 0x0000001, 0x800000, CRC(2AAB7F98) SHA1(083c6e9162ab3bb49b365f91246cb39019dabe43) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265hc07.c7", 0x3000000, 0x800000, CRC(a1218342) SHA1(d9a69cfc32f54a9b1b630003377eed0763cdcf75) )
+ ROM_LOAD16_BYTE( "265hc07.c8", 0x3000001, 0x800000, CRC(4c96f40b) SHA1(67d76a81c66ce72c860c101a51a81f2df98f098f) )
+ROM_END
+
+ROM_START( kof2k2s08 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265x.p1", 0x000000, 0x100000, CRC(ec7402a2) SHA1(a3d94c709d4c23cc7d1502a9e92a34f49cbcc878) )
+ ROM_LOAD16_WORD_SWAP( "265hc08.p2", 0x100000, 0x400000, CRC(b422c75f) SHA1(042ae258298de11815caca31ad2a1a1cf5269465) )
+
+ NEO_SFIX_128K( "265rs.s1", CRC(914bd3f7) SHA1(b2db65fac73367b0f956bf5a0d80a9aaffd432f1) )
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) )
+ ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) )
+ROM_END
+
+ROM_START( kof2k2s09 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265seh.p1", 0x000000, 0x100000, CRC(41616bff) SHA1(cc75e2704a6058c4775978b58003d7b46a7f114c) )
+ ROM_LOAD16_WORD_SWAP( "265hc09.p2", 0x100000, 0x400000, CRC(80ec4013) SHA1(9329b81540262f4359e2cb961a4dd9bfdd860e5a) )
+
+ NEO_SFIX_128K( "265rs.s1", CRC(914bd3f7) SHA1(b2db65fac73367b0f956bf5a0d80a9aaffd432f1) )
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265omg9b.c1", 0x0000000, 0x800000, CRC(c8314ae2) SHA1(7d89b556de98e0d89448e5118ffeea4239461635) )
+ ROM_LOAD16_BYTE( "265omg9b.c2", 0x0000001, 0x800000, CRC(e0ddced5) SHA1(d8b5bd419bc825b99c206f54fbce97305839bcc9) )
+ ROM_LOAD16_BYTE( "265omg9b.c3", 0x1000000, 0x800000, CRC(6898f6e2) SHA1(4d8101534f85838eff3823ead72bdbcee57a3a50) )
+ ROM_LOAD16_BYTE( "265omg9b.c4", 0x1000001, 0x800000, CRC(9232e491) SHA1(e56b5657842d5e147e56c485dfa9a5a0a6ffba2d) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265omg9b.c7", 0x3000000, 0x800000, CRC(6954ef57) SHA1(807f7bcdac379c5dce7745f10925e5c4a10c2c85) )
+ ROM_LOAD16_BYTE( "265omg9b.c8", 0x3000001, 0x800000, CRC(3e394883) SHA1(03e92267bdef8651bac6278c8068892dadba3ad8) )
+ROM_END
+
+ROM_START( kof2k2s10 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265hc10.p1", 0x000000, 0x100000, CRC(ed7211aa) SHA1(0ef56df12a629eac2639ca7d5945c6c6824370b4) )
+ ROM_LOAD16_WORD_SWAP( "265hc10.p2", 0x100000, 0x400000, CRC(6ddcf2d5) SHA1(73ed2ad018fe36f261bf2dde1c7d085638db4357) )
+
+ NEO_SFIX_128K( "265hc10.s1", CRC(14b08bd9) SHA1(3cabbf407e1035144a515d83fa94f93b7f63f162) )
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265hc10.c1", 0x0000000, 0x800000, CRC(48d434f4) SHA1(1af97af74f4cdec2bd56d99022878fe62921b4d8) )
+ ROM_LOAD16_BYTE( "265hc10.c2", 0x0000001, 0x800000, CRC(4d4fa9a5) SHA1(1a3f7d1c0600ac6d14f26e1ea692bc658fd90309) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265hc10.c7", 0x3000000, 0x800000, CRC(bd24f495) SHA1(baf6c6270c6a294ef7fdf5a5857f9d02270e9e39) )
+ ROM_LOAD16_BYTE( "265hc10.c8", 0x3000001, 0x800000, CRC(23746c53) SHA1(43a06f6e6314ae1aa7a90fdfcacca2c8097eebe0) )
+ROM_END
+
+ROM_START( kof2k2s11 )
+ ROM_REGION( 0xD00000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265hc11.p1", 0x000000, 0x454F47, CRC(641e8bb1) SHA1(74426027a071cc034957d037d42b38fb33134d67) )
+ ROM_LOAD16_WORD_SWAP( "265hc11.p2", 0x100000, 0x454F47, CRC(1900f24c) SHA1(419a0d49970d9d4456aa504774fbf77114b7466b) )
+
+ NEO_SFIX_128K( "265evo.s1", CRC(E0EAABA3) SHA1(831b642da9fe7617498cdb1c86475b3b3d3043bc) )
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) )
+ ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) )
+ROM_END
+
+ROM_START( kof2k2s12 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265hc12.p1", 0x000000, 0x100000, CRC(ad35fabb) SHA1(557a42433c0f682d39f9022e0e186ad2e85f3c7e) )
+ ROM_LOAD16_WORD_SWAP( "265hc16.p2", 0x100000, 0x400000, CRC(891732a7) SHA1(98587af49a06af576ae24901de4f0c4807e1fb84) )
+
+ NEO_SFIX_128K( "265hc12.s1", CRC(2b16c341) SHA1(e244ed186244b66decb47cfd4992a59f38235a46) )
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) )
+ ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) )
+ROM_END
+
+ROM_START( kof2k2s13 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265hc13.p1", 0x000000, 0x100000, CRC(48b3701c) SHA1(c582b114e21211ad13cbfa393595dd319ade6412) )
+ ROM_LOAD16_WORD_SWAP( "265gc2.p2", 0x100000, 0x400000, CRC(ceb56128) SHA1(f29f37efe7d18cd18c2ebaaba57ee1cfc0ccb144) )
+
+ NEO_SFIX_128K( "265mp1.s1", CRC(29c0693e) SHA1(a852d15a8558b4a1cadf1ed9ef357d765ff88d35) )
+
+ NEO_BIOS_AUDIO_128K( "265nu.m1", CRC(f80eb346) SHA1(7affe04a8e19c33ea99359ffe5f2936f7e724fa1) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) )
+ ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) )
+ROM_END
+
+ROM_START( kof2k2s14 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265hc14.p1", 0x000000, 0x100000, CRC(1c1ef8fe) SHA1(d41e007520db02c490872894308a09e81bbe54f3) )
+ ROM_LOAD16_WORD_SWAP( "265hc14.p2", 0x100000, 0x400000, CRC(509e298a) SHA1(f36dde3ae7abd36ba17f07353e6781cd4307b7f6) )
+
+ NEO_SFIX_128K( "265hc14.s1", CRC(dd9a4944) SHA1(d5ad56d138aad848fb30cda6e1dc5bcd7bc83921) )
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) )
+ ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) )
+ROM_END
+
+ROM_START( kof2k2s15 )
+ ROM_REGION( 0xD00000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265hc15.p1", 0x000000, 0x454F4E, CRC(c667179d) SHA1(f27a5caffe7f75495de9f30f33dcaab27551153b) )
+ ROM_LOAD16_WORD_SWAP( "265rgl.p2", 0x100000, 0x400000, CRC(f0a176a9) SHA1(5344fd686f03d4fc9c9aded4556b42ae5d5150c5) )
+
+ NEO_SFIX_128K( "265rgl.s1", CRC(ca827be9) SHA1(0f2acadb0f840809420e6f96f0f89d357815ef4c) )
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265rgl.c7", 0x3000000, 0x800000, CRC(0e13aace) SHA1(419eb29e3a479cb5dbd5d99f1d79e8846770d0cb) )
+ ROM_LOAD16_BYTE( "265rgl.c8", 0x3000001, 0x800000, CRC(986d4825) SHA1(558f929929c207207442798d72459baed837c1a3) )
+ROM_END
+
+ROM_START( kof2k2s16 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265chl3.p1", 0x000000, 0x100000, CRC(4ae81447) SHA1(add9e5a6737c4b00da326a947043e227d5dfcbb8) )
+ ROM_LOAD16_WORD_SWAP( "265hc16.p2", 0x100000, 0x400000, CRC(891732a7) SHA1(98587af49a06af576ae24901de4f0c4807e1fb84) )
+
+ NEO_SFIX_128K( "265evo.s1", CRC(E0EAABA3) SHA1(831b642da9fe7617498cdb1c86475b3b3d3043bc) )
+
+ NEO_BIOS_AUDIO_128K( "265nu.m1", CRC(f80eb346) SHA1(7affe04a8e19c33ea99359ffe5f2936f7e724fa1) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) )
+ ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) )
+ROM_END
+
+ROM_START( kof2k2s17 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265chl7.p1", 0x000000, 0x100000, CRC(d689ff9f) SHA1(9094a38cee90e3e3227336caca40b0d54f31dfd8) )
+ ROM_LOAD16_WORD_SWAP( "265mcr.p2", 0x100000, 0x400000, CRC(4134dc22) SHA1(20d887b96957d5255f2b18950ea45b6ecd782b51) )
+
+ NEO_SFIX_128K( "265hc17.s1", CRC(305be487) SHA1(62f0dac5eb07848bf058d7eb9b2cc96598d6bc98) )
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) )
+ ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) )
+ROM_END
+
+ROM_START( kof2k2s18 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265nu.p1", 0x000000, 0x100000, CRC(ebedae17) SHA1(5f84562f9ef7a6b007290e59b31a62aca208f579) )
+ ROM_LOAD16_WORD_SWAP( "265hc18.p2", 0x100000, 0x400000, CRC(ed7a9f7d) SHA1(1688c57fde5b242aeb9443da85da0d626d9a3e7d) )
+
+ NEO_SFIX_128K( "265nu.s1", CRC(c401c4fd) SHA1(ff3289d9320fc461cd57dda847d98c8c22094368) )
+
+ NEO_BIOS_AUDIO_128K( "265nu.m1", CRC(f80eb346) SHA1(7affe04a8e19c33ea99359ffe5f2936f7e724fa1) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) )
+ ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) )
+ROM_END
+
+ROM_START( kof2k2s19 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265hc19.p1", 0x000000, 0x100000, CRC(ef777721) SHA1(cf59b4a2a855a8449f1c877634bb686cced23a37) )
+ ROM_LOAD16_WORD_SWAP( "265k2.p2", 0x100000, 0x400000, CRC(7cc7cad3) SHA1(b09c628b0d4f177cd9ce8c51bcb4c68ca7afd26d) )
+
+ NEO_SFIX_128K( "265k2.s1", CRC(10de5d7c) SHA1(44f4f523a787cf3094923483b824d7795858aff6) )
+
+ NEO_BIOS_AUDIO_128K( "265nu.m1", CRC(f80eb346) SHA1(7affe04a8e19c33ea99359ffe5f2936f7e724fa1) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) )
+ ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) )
+ROM_END
+
+ROM_START( kof2k2s20 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265hc20.p1", 0x000000, 0x100000, CRC(ea5d79a1) SHA1(ccdc7509743f02fd53ee2b7a7cda6647e34315a5) )
+ ROM_LOAD16_WORD_SWAP( "265xxx.p2", 0x100000, 0x400000, CRC(51c6d9de) SHA1(e0ff1b78b159cc1afa6ed9b868697687ab3054e8) )
+
+ NEO_SFIX_128K( "265xxx.s1", CRC(0F78A636) SHA1(465d438e7edbb38ae5c29a59d4829a8e10c92321) )
+
+ NEO_BIOS_AUDIO_128K( "265nu.m1", CRC(f80eb346) SHA1(7affe04a8e19c33ea99359ffe5f2936f7e724fa1) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265xxx.c1", 0x0000000, 0x800000, CRC(745B343E) SHA1(ae8293b18cfb4c20e2915149872d9fa561a218bf) )
+ ROM_LOAD16_BYTE( "265xxx.c2", 0x0000001, 0x800000, CRC(2AAB7F98) SHA1(083c6e9162ab3bb49b365f91246cb39019dabe43) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) )
+ ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) )
+ROM_END
+
+ROM_START( kof2k2s21 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265hc21.p1", 0x000000, 0x100000, CRC(1a1da314) SHA1(70593999042fd6941ac4d25f77307c9a93cce95b) )
+ ROM_LOAD16_WORD_SWAP( "265ori.p2", 0x100000, 0x400000, CRC(DE6FFD21) SHA1(0f9108aae7541d0d754ce764b195c921c021c373) )
+
+ NEO_SFIX_128K( "265hc10.s1", CRC(14b08bd9) SHA1(3cabbf407e1035144a515d83fa94f93b7f63f162) )
+
+ NEO_BIOS_AUDIO_128K( "265d.m1", CRC(1c661a4b) SHA1(4e5aa862a0a182a806d538996ddc68d9f2dffaf7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265rs.c1", 0x0000000, 0x800000, CRC(c1a21b4c) SHA1(235938175d6011c5c8a37fc94f8fb604132d8038) )
+ ROM_LOAD16_BYTE( "265rs.c2", 0x0000001, 0x800000, CRC(9b3d7e8d) SHA1(38c16541862636934a456f23632f64ff0f5ae617) )
+ ROM_LOAD16_BYTE( "265ori.c3", 0x1000000, 0x800000, CRC(E5074EEA) SHA1(387ef21d58b416126b95843bac1a0b6cc346818f) )
+ ROM_LOAD16_BYTE( "265ori.c4", 0x1000001, 0x800000, CRC(F6EB1FF2) SHA1(77cb493b9e75d42c204a9a6c052a813c2730e44f) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265ori.c7", 0x3000000, 0x800000, CRC(0E9F6ADB) SHA1(0e4cdbd3df2ef7b0c78c3275ee22684c67bf2d23) )
+ ROM_LOAD16_BYTE( "265ori.c8", 0x3000001, 0x800000, CRC(9961799E) SHA1(cf5d43bbd90269155ac41fe9a31328654784351f) )
+ROM_END
+
+ROM_START( kof2k2s22 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265hc22.p1", 0x000000, 0x100000, CRC(ef777721) SHA1(cf59b4a2a855a8449f1c877634bb686cced23a37) )
+ ROM_LOAD16_WORD_SWAP( "265k2.p2", 0x100000, 0x400000, CRC(7cc7cad3) SHA1(b09c628b0d4f177cd9ce8c51bcb4c68ca7afd26d) )
+
+ NEO_SFIX_128K( "265k2.s1", CRC(10de5d7c) SHA1(44f4f523a787cf3094923483b824d7795858aff6) )
+
+ NEO_BIOS_AUDIO_128K( "265nu.m1", CRC(f80eb346) SHA1(7affe04a8e19c33ea99359ffe5f2936f7e724fa1) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) )
+ ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) )
+ROM_END
+
+ROM_START( kof2k2s23 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265hc23.p1", 0x000000, 0x100000, CRC(5a352885) SHA1(683af3a2a9fbf5ffdd93d23347d1b019801c835c) )
+ ROM_LOAD16_WORD_SWAP( "265hc23.p2", 0x100000, 0x400000, CRC(e46ee120) SHA1(1e307b81942204d53d7938453c604f94f36a863f) )
+
+ NEO_SFIX_128K( "265hc23.s1", CRC(10ba82e7) SHA1(f7d9b4fbb31b4cd64bac069f0a99553edb90e0d7) )
+
+ NEO_BIOS_AUDIO_128K( "265ori.m1", CRC(AB9D360E) SHA1(a0c8a5aae387c4f0b72790211695da7df924c351) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) )
+ ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) )
+ROM_END
+
+ROM_START( kof2k2s24 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265hc24.p1", 0x000000, 0x100000, CRC(28a42c3e) SHA1(f7b98285f1a545f50dc5fafffb888d371b911cf2) )
+ ROM_LOAD16_WORD_SWAP( "265cn.p2", 0x100000, 0x400000, CRC(9cb1dd35) SHA1(5e04716cf02e3321fac7bd4551fa352d8a54c7a3) )
+
+ NEO_SFIX_128K( "265hc24.s1", CRC(72c80024) SHA1(cbcf5a110e25af3360c4a4a3d3fb265057a33dc8) )
+
+ NEO_BIOS_AUDIO_128K( "265ori.m1", CRC(AB9D360E) SHA1(a0c8a5aae387c4f0b72790211695da7df924c351) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265cn.c1", 0x0000000, 0x800000, CRC(35b6ee83) SHA1(1ee4fdd0482ae391544535020c96dba1fd4fb9a4) )
+ ROM_LOAD16_BYTE( "265cn.c2", 0x0000001, 0x800000, CRC(9d4bd32f) SHA1(ed0dce5dd6cffce2c55a62559b368ccc46115497) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265rm13.c4", 0x1000001, 0x800000, CRC(2558972F) SHA1(2e0627fc5d689bf64fe36f02a489408d103c4499) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265cn.c7", 0x3000000, 0x800000, CRC(204c1b0e) SHA1(4e44371fc4d0abbd455554eb066ede07ab5f68f9) )
+ ROM_LOAD16_BYTE( "265cn.c8", 0x3000001, 0x800000, CRC(b44c1d54) SHA1(22f9fb31b4f36f5c4fce66b5bd64b45737db43d9) )
+ROM_END
+
+ROM_START( kof2k2s25 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265hc25.p1", 0x000000, 0x100000, CRC(052c62d5) SHA1(5ea19d1e6844ba21a2f712e74f91b6f0392b1619) )
+ ROM_LOAD16_WORD_SWAP( "265hc25.sp2", 0x100000, 0x400000, CRC(2906d3d1) SHA1(3a64ff8bada2842d07495ce120ce041948199d47) )
+
+ NEO_SFIX_128K( "265evo.s1", CRC(E0EAABA3) SHA1(831b642da9fe7617498cdb1c86475b3b3d3043bc) )
+
+ NEO_BIOS_AUDIO_128K( "265ori.m1", CRC(AB9D360E) SHA1(a0c8a5aae387c4f0b72790211695da7df924c351) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265xxx.c1", 0x0000000, 0x800000, CRC(745B343E) SHA1(ae8293b18cfb4c20e2915149872d9fa561a218bf) )
+ ROM_LOAD16_BYTE( "265xxx.c2", 0x0000001, 0x800000, CRC(2AAB7F98) SHA1(083c6e9162ab3bb49b365f91246cb39019dabe43) )
+ ROM_LOAD16_BYTE( "265ori.c3", 0x1000000, 0x800000, CRC(E5074EEA) SHA1(387ef21d58b416126b95843bac1a0b6cc346818f) )
+ ROM_LOAD16_BYTE( "265hc25.c4", 0x1000001, 0x800000, CRC(3c552cb5) SHA1(57ac9117158f1829154484ad8d835c96fd9ef3f3) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265ori.c7", 0x3000000, 0x800000, CRC(0E9F6ADB) SHA1(0e4cdbd3df2ef7b0c78c3275ee22684c67bf2d23) )
+ ROM_LOAD16_BYTE( "265ori.c8", 0x3000001, 0x800000, CRC(9961799E) SHA1(cf5d43bbd90269155ac41fe9a31328654784351f) )
+ROM_END
+
+ROM_START( kof2k2s26 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265hc26.p1", 0x000000, 0x100000, CRC(7d50fe59) SHA1(faa821592cefed5174dd8c5c2564cab95158490f) )
+ ROM_LOAD16_WORD_SWAP( "265hc26.sp2", 0x100000, 0x400000, CRC(995628d5) SHA1(c98be9325bf19df72e2469070e2ea5e9878b6f82) )
+
+ NEO_SFIX_128K( "265evo.s1", CRC(E0EAABA3) SHA1(831b642da9fe7617498cdb1c86475b3b3d3043bc) )
+
+ NEO_BIOS_AUDIO_128K( "265nu.m1", CRC(f80eb346) SHA1(7affe04a8e19c33ea99359ffe5f2936f7e724fa1) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265spls.c7", 0x3000000, 0x800000, CRC(31e7aaa3) SHA1(733710493cd885701f5f34078a875bc77ed57442) )
+ ROM_LOAD16_BYTE( "265spls.c8", 0x3000001, 0x800000, CRC(f26a445b) SHA1(3fba6d95c1af77a6fe2e65af39eba0ce3e4134b7) )
+ROM_END
+
+ROM_START( kof2k2s27 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265hc27.p1", 0x000000, 0x100000, CRC(416dd298) SHA1(e4181aecea6a988a6529f3f25d58b09f1c29f39f) )
+ ROM_LOAD16_WORD_SWAP( "265hc27.sp2", 0x100000, 0x400000, CRC(e7ea7bb9) SHA1(242ceefd7c83ecbb35e5497ee47812ea8b772a7a) )
+
+ NEO_SFIX_128K( "265evo.s1", CRC(E0EAABA3) SHA1(831b642da9fe7617498cdb1c86475b3b3d3043bc) )
+
+ NEO_BIOS_AUDIO_128K( "265nu.m1", CRC(f80eb346) SHA1(7affe04a8e19c33ea99359ffe5f2936f7e724fa1) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265evo.c7", 0x3000000, 0x800000, CRC(B4C87865) SHA1(8df7ac8bbf5f61d2fbca4cd7424074e95887ad3d) )
+ ROM_LOAD16_BYTE( "265evo.c8", 0x3000001, 0x800000, CRC(74C10CB6) SHA1(2979ab21e3632c478ad3f70148691a1a69abd378) )
+ROM_END
+
+ROM_START( kof2k2s28 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265hc28.p1", 0x000000, 0x100000, CRC(f1ccba4d) SHA1(1dc2e7afa920b15ef069bb1e482b19788445ce25) )
+ ROM_LOAD16_WORD_SWAP( "265hc28.sp2", 0x100000, 0x400000, CRC(f2c8373d) SHA1(ae8cb63d2faefecf63de15f1919aeb0d6c45f045) )
+
+ NEO_SFIX_128K( "265evo.s1", CRC(E0EAABA3) SHA1(831b642da9fe7617498cdb1c86475b3b3d3043bc) )
+
+ NEO_BIOS_AUDIO_128K( "265nu.m1", CRC(f80eb346) SHA1(7affe04a8e19c33ea99359ffe5f2936f7e724fa1) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) )
+ ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) )
+ROM_END
+
+ROM_START( kof2k2s29 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265hc29.p1", 0x000000, 0x100000, CRC(f0a19f59) SHA1(e3855c284381fdc7512be3540f8e759f05e261c0) )
+ ROM_LOAD16_WORD_SWAP( "265rma.p2", 0x100000, 0x400000, CRC(26ea77d2) SHA1(4a63fd6296c9e0e3cb663602d478b3fde60ad9df) )
+
+ NEO_SFIX_128K( "265rma.s1", CRC(8544b8ea) SHA1(bb25fae3aedba6023ca6bfdc0dd3db0c57ad14d0) )
+
+ NEO_BIOS_AUDIO_128K( "265rm13.m1", CRC(9956CCD8) SHA1(ed0f5e87360dfa89a58e1b333f4a66e91c2faf56) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265d.c1", 0x0000000, 0x800000, CRC(7efa6ef7) SHA1(71345A4202E7CC9239538FB978638141416C8893) )
+ ROM_LOAD16_BYTE( "265d.c2", 0x0000001, 0x800000, CRC(aa82948b) SHA1(B2A40797F68BDEB80BC54DCCC5495BE68934BF0E) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265rma.c7", 0x3000000, 0x800000, CRC(5e79a235) SHA1(610a8073c61c5346f23e95a79369ed7950a02d63) )
+ ROM_LOAD16_BYTE( "265rma.c8", 0x3000001, 0x800000, CRC(a2b54e2d) SHA1(3f534ac51f3c2b1efe8a76cabd7e154ea9f1f13e) )
+ROM_END
+
+ROM_START( kof2k2s30 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265hc30.p1", 0x000000, 0x100000, CRC(f05673d5) SHA1(a0991df623b096d896512cf2e466d17983a7e80e) )
+ ROM_LOAD16_WORD_SWAP( "265hc30.p2", 0x100000, 0x400000, CRC(f035d115) SHA1(d6988a8545c620358296e689d354dbd454782092) )
+
+ NEO_SFIX_128K( "265hc30.s1", CRC(76316dc7) SHA1(445a524be16b9352b3afb04b896e472fb6383761) )
+
+ NEO_BIOS_AUDIO_128K( "265ori.m1", CRC(AB9D360E) SHA1(a0c8a5aae387c4f0b72790211695da7df924c351) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265nu.v1", 0x000000, 0x400000, CRC(13d98607) SHA1(0f1a374247992d301bc26c0bab200631a13a9f4a) )
+ ROM_LOAD( "265nu.v2", 0x400000, 0x400000, CRC(9cf74677) SHA1(073e7cb00127690fdec05c19f00347ec449f15ac) )
+ ROM_LOAD( "265nu.v3", 0x800000, 0x400000, CRC(8e9448b5) SHA1(c22420649c7c68a172290548cab846345c861cb0) )
+ ROM_LOAD( "265nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "265xxx.c1", 0x0000000, 0x800000, CRC(745B343E) SHA1(ae8293b18cfb4c20e2915149872d9fa561a218bf) )
+ ROM_LOAD16_BYTE( "265xxx.c2", 0x0000001, 0x800000, CRC(2AAB7F98) SHA1(083c6e9162ab3bb49b365f91246cb39019dabe43) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265spl.c7", 0x3000000, 0x800000, CRC(d5c5712b) SHA1(ff1f32a44a2e42355d5148614771b52074dea672) )
+ ROM_LOAD16_BYTE( "265spl.c8", 0x3000001, 0x800000, CRC(7dfbea39) SHA1(f698308ef7d8a7019c21005089d7a5f801e3a07a) )
+ROM_END
+
+GAME( 2012, kof2k2s01, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof2002 (Description Of Unknown Origin 01)" , MACHINE_SUPPORTS_SAVE )
+GAME( 2012, kof2k2s02, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof2002 (Description Of Unknown Origin 02)" , MACHINE_SUPPORTS_SAVE )
+GAME( 2012, kof2k2s03, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof2002 (Description Of Unknown Origin 03)" , MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 2012, kof2k2s04, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof2002 (Description Of Unknown Origin 04)" , MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 2012, kof2k2s05, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof2002 (Super Plus Ultimate Edition Set 2 By NeHT Team)" , MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2s06, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof2002 (Description Of Unknown Origin 06)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2s07, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof2002 (Description Of Unknown Origin 07)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2s08, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof2002 (Description Of Unknown Origin 08)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2s09, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof2002 (Description Of Unknown Origin 09)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2s10, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof2002 (Description Of Unknown Origin 10)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2s11, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof2002 (Description Of Unknown Origin 11)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2s12, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof2002 (Description Of Unknown Origin 12)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2s13, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof2002 (Description Of Unknown Origin 13)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2s14, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof2002 (Description Of Unknown Origin 14)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2s15, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof2002 (Description Of Unknown Origin 15)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2s16, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof2002 (Description Of Unknown Origin 16)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2s17, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof2002 (Description Of Unknown Origin 17)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2s18, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof2002 (Description Of Unknown Origin 18)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2s19, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof2002 (Description Of Unknown Origin 19)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2s20, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof2002 (Description Of Unknown Origin 20)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2s21, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof2002 (Description Of Unknown Origin 21)", MACHINE_SUPPORTS_SAVE )
+// GAME( 2002, kof2k2s22, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof2002 (Description Of Unknown Origin 22)", MACHINE_SUPPORTS_SAVE ) // Duplicado
+GAME( 2002, kof2k2s23, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof2002 (Description Of Unknown Origin 23)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2s24, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof2002 (Description Of Unknown Origin 24)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2s25, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof2002 (Description Of Unknown Origin 25)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2s26, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof2002 (Description Of Unknown Origin 26)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2s27, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof2002 (Description Of Unknown Origin 27)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2s28, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof2002 (Description Of Unknown Origin 28)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2s29, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof2002 (Description Of Unknown Origin 29)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof2k2s30, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof2002 (Description Of Unknown Origin 30)", MACHINE_SUPPORTS_SAVE )
+
+
diff --git a/src/hbmame/drivers/kof2003.cpp b/src/hbmame/drivers/kof2003.cpp
new file mode 100644
index 00000000000..d0be280928b
--- /dev/null
+++ b/src/hbmame/drivers/kof2003.cpp
@@ -0,0 +1,958 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+
+
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, kof2003b ) // hacks of kf2k3bl
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_bootleg_prot->kf2k3bl_install_protection(m_maincpu, m_banked_cart, cpuregion, cpuregion_size);
+
+ // decrypt m1 if needed
+ if (memregion("audiocrypt"))
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size);
+
+ // decrypt v roms if needed
+ u8 *ram = memregion("ymsnd")->base();
+ if (ram[0x91] != 0x33)
+ {
+ //printf("ym=%X\n",ram[0x91]);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 5);
+ }
+
+ // decrypt c roms if needed
+ ram = memregion("sprites")->base();
+ if (ram[0] != 0)
+ {
+ //printf("Sprites=%X\n",ram[0]);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, KOF2003_GFX_KEY);
+ }
+
+ m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size, 1);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, kof2003hb ) // hacks of kof2003
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 2; // for those sets with 512k of s1
+
+ // decrypt p roms if needed
+ u8 *ram = memregion("maincpu")->base();
+ if (ram[0x100] != 0x45)
+ {
+ //printf("Maincpu=%X\n",ram[0x100]);fflush(stdout);
+ m_pvc_prot->kof2003_decrypt_68k(cpuregion, cpuregion_size);
+ m_pvc_prot->install_pvc_protection(m_maincpu, m_banked_cart);
+ }
+
+ // decrypt m1 if needed
+ if (memregion("audiocrypt"))
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size);
+
+ // decrypt v roms if needed
+ ram = memregion("ymsnd")->base();
+ if (ram[0x91] != 0x33)
+ {
+ //printf("ym=%X\n",ram[0x91]);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 5);
+ }
+
+ // decrypt c roms if needed
+ ram = memregion("sprites")->base();
+ if (ram[0] != 0)
+ {
+ //printf("Sprites=%X\n",ram[0]);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, KOF2003_GFX_KEY);
+ }
+
+ // if no s rom, copy info from end of c roms
+ ram = memregion("fixed")->base();
+ if (ram[0x100] == 0)
+ {
+ //printf("Fixed1=%X\n",ram[0x100]);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+ }
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, kof2k3hd )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 2;
+ m_pvc_prot->kof2003h_decrypt_68k(cpuregion, cpuregion_size); // different to kof2k3d
+ m_pvc_prot->install_pvc_protection(m_maincpu, m_banked_cart);
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 5);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, kof2k3pcd ) // decrypted C & decrypted Bios
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 2;
+ m_pvc_prot->kf2k3pcb_decrypt_68k(cpuregion, cpuregion_size);
+ m_pvc_prot->install_pvc_protection(m_maincpu, m_banked_cart);
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size);
+
+ // Extra m1 decryption
+ uint8_t* rom = memregion("audiocpu")->base();
+ for (int i = 0; i < 0x90000; i++)
+ rom[i] = bitswap<8>(rom[i], 5, 6, 1, 4, 3, 0, 7, 2);
+
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 5);
+ m_sma_prot->kf2k3pcb_decrypt_s1data(spr_region, spr_region_size, fix_region, fix_region_size);
+ m_maincpu->space(AS_PROGRAM).install_rom(0xc00000, 0xc7ffff, 0x080000, memregion("mainbios")->base()); // 512k bios
+}
+
+
+
+ROM_START( kof2003d )
+ ROM_REGION( 0x700000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "271d.p0", 0x000000, 0x100000, CRC(7c2aee16) SHA1(b4373569c4a26829a93759ba6917879518f2fb20) )
+ ROM_LOAD16_WORD_SWAP( "271b.p1", 0x100000, 0x400000, CRC(92ed6ee3) SHA1(5e7e21eb40dfcc453ba73808760d5ddedd49c58a) )
+ ROM_LOAD16_WORD_SWAP( "271d.p2", 0x500000, 0x200000, CRC(0d0a5861) SHA1(823dd3d11574a42f98588a6d1f9bb5d721f34be2) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "271-m1c.m1", CRC(f5515629) SHA1(7516bf1b0207a3c8d41dc30c478f8d8b1f71304b) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "271-v1c.v1", 0x000000, 0x800000, CRC(ffa3f8c7) SHA1(7cf4a933973ca23b7f87c81151d8659e6ec4bd20) )
+ ROM_LOAD( "271-v2c.v2", 0x800000, 0x800000, CRC(5382c7d1) SHA1(1bf999705eda80ba1e7b0d6bdd010d9bfb18bd76) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "271b.c1", 0x0000000, 0x800000, CRC(e42fc226) SHA1(1cd9364993e141facdcdd53ec2277df7b275d8a7) )
+ ROM_LOAD16_BYTE( "271b.c2", 0x0000001, 0x800000, CRC(1b5e3b58) SHA1(0eb254477a9479541291e43e415310852a0f0bed) )
+ ROM_LOAD16_BYTE( "271b.c3", 0x1000000, 0x800000, CRC(d334fdd9) SHA1(1efe30b4f56a55e25ab518cf6999de797b5e407c) )
+ ROM_LOAD16_BYTE( "271b.c4", 0x1000001, 0x800000, CRC(0d457699) SHA1(ec73d0c9fc7094d0ac6c0986a6e07cde25893e57) )
+ ROM_LOAD16_BYTE( "271b.c5", 0x2000000, 0x800000, CRC(8a91aae4) SHA1(802f4baacf801646be1ef686e105b2e867a6a5df) )
+ ROM_LOAD16_BYTE( "271b.c6", 0x2000001, 0x800000, CRC(9f8674b8) SHA1(65964f40b2227d020023fb436579927e65807dcd) )
+ ROM_LOAD16_BYTE( "271d.c7", 0x3000000, 0x800000, CRC(8ee6b43c) SHA1(c78b749c7c8e1d8ab8335b96da03764cc8e9eb21) )
+ ROM_LOAD16_BYTE( "271d.c8", 0x3000001, 0x800000, CRC(6d8d2d60) SHA1(841698eead0f7d422937ce2f2329e17c383d90a6) )
+ROM_END
+
+ROM_START( kof2003f )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "271f.p1", 0x000000, 0x400000, CRC(d29a0d06) SHA1(a5ba68ceac0b4bceb0c37d65844d96835eb244e4) )
+ ROM_LOAD16_WORD_SWAP( "271f.p2", 0x400000, 0x400000, CRC(95477dd4) SHA1(3a57befa3e0772b2989ba5b76afd95f3aed1936b) )
+
+ NEO_SFIX_128K( "271f.s1", CRC(7c7829aa) SHA1(22f8d38d1d0891295d0593741d9477fbe6b4f48c) )
+
+ NEO_BIOS_AUDIO_512K( "271br.m1", CRC(0e86af8f) SHA1(769102b67bb1a699cfa5674d66cdb46ae633cb65) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "271f.v1", 0x000000, 0x1000000, CRC(2964f36e) SHA1(bfc52f81354eb57e27acb3b80fe1547b9e070293) )
+
+ ROM_REGION( 0x6000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "271pcd.c1", 0x0000000, 0x1000000, CRC(c29acd28) SHA1(8a10409c5a9ad95fa9b56e94c14f1b96101fb179) )
+ ROM_LOAD16_BYTE( "271pcd.c2", 0x0000001, 0x1000000, CRC(328e80b1) SHA1(c7f8069488be1a88a2ea03718b6a131f5c96bd3f) )
+ ROM_LOAD16_BYTE( "271pcd.c3", 0x2000000, 0x1000000, CRC(020a11f1) SHA1(85cfae76234f72b0039ebc02f931bb2a9c10b1af) )
+ ROM_LOAD16_BYTE( "271pcd.c4", 0x2000001, 0x1000000, CRC(991b5ed2) SHA1(99c4c470bc9cb388773e27de6df4a16803fc7b45) )
+ ROM_LOAD16_BYTE( "271pcd.c5", 0x4000000, 0x1000000, CRC(c2de8b66) SHA1(40c2ea48fc20d470163a9dbb40c0276fc4cfceb9) )
+ ROM_LOAD16_BYTE( "271pcd.c6", 0x4000001, 0x1000000, CRC(3ff750db) SHA1(714f14a2eb2df6f25d10a6b6aff4b3adfbc7a5dc) )
+ROM_END
+
+ROM_START( kof2003rebh ) // no watchdog
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "271rebh.p1", 0x000000, 0x800000, CRC(cd7c9f42) SHA1(d99f25a0d7c640c8594aef25e818ee017845de90) )
+
+ NEO_SFIX_128K( "271rebh.s1", CRC(e146f5cc) SHA1(1ca3e36ec87b40c8eaa7c92d1bf7a066fdb0b26c) )
+
+ NEO_BIOS_AUDIO_128K( "271rebh.m1", CRC(396e17cd) SHA1(b2962aef711883402e67fcfb475265abe68e2cba) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "271b.v1", 0x000000, 0x400000, CRC(d2b8aa5e) SHA1(498f0556c1de56822141f8043f1ce20444f4ed0a) )
+ ROM_LOAD( "271b.v2", 0x400000, 0x400000, CRC(71956ee2) SHA1(a890941e60db358cf45b58909f4719f4826f3bb1) )
+ ROM_LOAD( "271b.v3", 0x800000, 0x400000, CRC(ddbbb199) SHA1(0eea4b064bdb8daa03c354fe0a0aa27c4c665bda) )
+ ROM_LOAD( "271b.v4", 0xc00000, 0x400000, CRC(01b90c4f) SHA1(387164aa1995d8c11ed939b3afbc294d86d2e27f) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "271b.c1", 0x0000000, 0x800000, CRC(e42fc226) SHA1(1cd9364993e141facdcdd53ec2277df7b275d8a7) )
+ ROM_LOAD16_BYTE( "271b.c2", 0x0000001, 0x800000, CRC(1b5e3b58) SHA1(0eb254477a9479541291e43e415310852a0f0bed) )
+ ROM_LOAD16_BYTE( "271b.c3", 0x1000000, 0x800000, CRC(d334fdd9) SHA1(1efe30b4f56a55e25ab518cf6999de797b5e407c) )
+ ROM_LOAD16_BYTE( "271b.c4", 0x1000001, 0x800000, CRC(0d457699) SHA1(ec73d0c9fc7094d0ac6c0986a6e07cde25893e57) )
+ ROM_LOAD16_BYTE( "271b.c5", 0x2000000, 0x800000, CRC(8a91aae4) SHA1(802f4baacf801646be1ef686e105b2e867a6a5df) )
+ ROM_LOAD16_BYTE( "271b.c6", 0x2000001, 0x800000, CRC(9f8674b8) SHA1(65964f40b2227d020023fb436579927e65807dcd) )
+ ROM_LOAD16_BYTE( "271b.c7", 0x3000000, 0x800000, CRC(374ea523) SHA1(613827d72c6181f3e08353750c9af0c4dbad020b) )
+ ROM_LOAD16_BYTE( "271b.c8", 0x3000001, 0x800000, CRC(75211f4d) SHA1(d82f044e816ee539ff131d9c931200c818d34cd0) )
+ROM_END
+
+ROM_START( kof2k3b ) /* The King of Fighters 2003 BOOTLEG - (kof2k3b) - Hack by Gledson01 - (Can choose Kusanagi, Chizuru, Maki, Mukai and Adelheid) */
+ ROM_REGION( 0x700000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "271b.p1", 0x100000, 0x400000, CRC(92ed6ee3) SHA1(5e7e21eb40dfcc453ba73808760d5ddedd49c58a) )
+ ROM_LOAD16_WORD_SWAP( "271b.p2", 0x500000, 0x200000, CRC(fb01a5b3) SHA1(3c8e92362f8169f5e64d6e1d1fea41edd2e7a6a3) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "271b.s1", CRC(482c48a5) SHA1(27e2f5295a9a838e112be28dafc111893a388a16) )
+
+ NEO_BIOS_AUDIO_128K( "271b.m1", CRC(3a4969ff) SHA1(2fc107a023a82053a8df63025829bcf12cee9610) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "271b.v1", 0x000000, 0x400000, CRC(d2b8aa5e) SHA1(498f0556c1de56822141f8043f1ce20444f4ed0a) )
+ ROM_LOAD( "271b.v2", 0x400000, 0x400000, CRC(71956ee2) SHA1(a890941e60db358cf45b58909f4719f4826f3bb1) )
+ ROM_LOAD( "271b.v3", 0x800000, 0x400000, CRC(ddbbb199) SHA1(0eea4b064bdb8daa03c354fe0a0aa27c4c665bda) )
+ ROM_LOAD( "271b.v4", 0xc00000, 0x400000, CRC(01b90c4f) SHA1(387164aa1995d8c11ed939b3afbc294d86d2e27f) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "271b.c1", 0x0000000, 0x800000, CRC(e42fc226) SHA1(1cd9364993e141facdcdd53ec2277df7b275d8a7) )
+ ROM_LOAD16_BYTE( "271b.c2", 0x0000001, 0x800000, CRC(1b5e3b58) SHA1(0eb254477a9479541291e43e415310852a0f0bed) )
+ ROM_LOAD16_BYTE( "271b.c3", 0x1000000, 0x800000, CRC(d334fdd9) SHA1(1efe30b4f56a55e25ab518cf6999de797b5e407c) )
+ ROM_LOAD16_BYTE( "271b.c4", 0x1000001, 0x800000, CRC(0d457699) SHA1(ec73d0c9fc7094d0ac6c0986a6e07cde25893e57) )
+ ROM_LOAD16_BYTE( "271b.c5", 0x2000000, 0x800000, CRC(8a91aae4) SHA1(802f4baacf801646be1ef686e105b2e867a6a5df) )
+ ROM_LOAD16_BYTE( "271b.c6", 0x2000001, 0x800000, CRC(9f8674b8) SHA1(65964f40b2227d020023fb436579927e65807dcd) )
+ ROM_LOAD16_BYTE( "271b.c7", 0x3000000, 0x800000, CRC(374ea523) SHA1(613827d72c6181f3e08353750c9af0c4dbad020b) )
+ ROM_LOAD16_BYTE( "271b.c8", 0x3000001, 0x800000, CRC(75211f4d) SHA1(d82f044e816ee539ff131d9c931200c818d34cd0) )
+ROM_END
+
+ROM_START( kof2k3bl2 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "271bl2.p1", 0x100000, 0x400000, CRC(8383c34b) SHA1(62cdc1d37e9b7385d83dda2e17fea6c0a16fee83) )
+ ROM_LOAD16_WORD_SWAP( "271bl2.p2", 0x500000, 0x200000, CRC(7ba616fe) SHA1(c613a5eb7db5dbfb58e9ccb7f46b948ed095b4a4) )
+ ROM_IGNORE( 0x100000 )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "271bl2.s1", CRC(c125df44) SHA1(9294a4da63fdbcd7dbac7a625d65c44884687eeb) )
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "271-m1c.m1", CRC(f5515629) SHA1(7516bf1b0207a3c8d41dc30c478f8d8b1f71304b) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "271-v1c.v1", 0x000000, 0x800000, CRC(ffa3f8c7) SHA1(7cf4a933973ca23b7f87c81151d8659e6ec4bd20) )
+ ROM_LOAD( "271-v2c.v2", 0x800000, 0x800000, CRC(5382c7d1) SHA1(1bf999705eda80ba1e7b0d6bdd010d9bfb18bd76) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "271-c1c.c1", 0x0000000, 0x800000, CRC(b1dc25d0) SHA1(50adc3c60d5b4b3abd10a49db2267306c6dbd772) )
+ ROM_LOAD16_BYTE( "271-c2c.c2", 0x0000001, 0x800000, CRC(d5362437) SHA1(66db36522dc09106388c707252df9fe1c88b4856) )
+ ROM_LOAD16_BYTE( "271-c3c.c3", 0x1000000, 0x800000, CRC(0a1fbeab) SHA1(9fe30d36ba98d00fda010832ff2f27783dd577c1) )
+ ROM_LOAD16_BYTE( "271-c4c.c4", 0x1000001, 0x800000, CRC(87b19a0c) SHA1(b72a8e7d9124ce859b5149bb4381ba481c161ea5) )
+ ROM_LOAD16_BYTE( "271-c5c.c5", 0x2000000, 0x800000, CRC(704ea371) SHA1(e75b80422f0d72eac826f8ffadf79efeccaab124) )
+ ROM_LOAD16_BYTE( "271-c6c.c6", 0x2000001, 0x800000, CRC(20a1164c) SHA1(c9843b37612a16fc95f6851793b1cfb5d49d811d) )
+ ROM_LOAD16_BYTE( "271-c7c.c7", 0x3000000, 0x800000, CRC(189aba7f) SHA1(7152195a57ad36b28290810fe87ed8c206262ba9) )
+ ROM_LOAD16_BYTE( "271-c8c.c8", 0x3000001, 0x800000, CRC(20ec4fdc) SHA1(deb5f7ec5a090e419b9d1a6a74877bee081198e2) )
+ROM_END
+
+ROM_START( kof2k3br )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "271br.p1", 0x000000, 0x800000, CRC(a131786e) SHA1(3754e6361063221138c95c52a3edb3e88a74048a) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "271br.m1", CRC(0e86af8f) SHA1(769102b67bb1a699cfa5674d66cdb46ae633cb65) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "271b.v1", 0x000000, 0x400000, CRC(d2b8aa5e) SHA1(498f0556c1de56822141f8043f1ce20444f4ed0a) )
+ ROM_LOAD( "271b.v2", 0x400000, 0x400000, CRC(71956ee2) SHA1(a890941e60db358cf45b58909f4719f4826f3bb1) )
+ ROM_LOAD( "271b.v3", 0x800000, 0x400000, CRC(ddbbb199) SHA1(0eea4b064bdb8daa03c354fe0a0aa27c4c665bda) )
+ ROM_LOAD( "271b.v4", 0xc00000, 0x400000, CRC(01b90c4f) SHA1(387164aa1995d8c11ed939b3afbc294d86d2e27f) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "271b.c1", 0x0000000, 0x800000, CRC(e42fc226) SHA1(1cd9364993e141facdcdd53ec2277df7b275d8a7) )
+ ROM_LOAD16_BYTE( "271b.c2", 0x0000001, 0x800000, CRC(1b5e3b58) SHA1(0eb254477a9479541291e43e415310852a0f0bed) )
+ ROM_LOAD16_BYTE( "271b.c3", 0x1000000, 0x800000, CRC(d334fdd9) SHA1(1efe30b4f56a55e25ab518cf6999de797b5e407c) )
+ ROM_LOAD16_BYTE( "271b.c4", 0x1000001, 0x800000, CRC(0d457699) SHA1(ec73d0c9fc7094d0ac6c0986a6e07cde25893e57) )
+ ROM_LOAD16_BYTE( "271b.c5", 0x2000000, 0x800000, CRC(8a91aae4) SHA1(802f4baacf801646be1ef686e105b2e867a6a5df) )
+ ROM_LOAD16_BYTE( "271b.c6", 0x2000001, 0x800000, CRC(9f8674b8) SHA1(65964f40b2227d020023fb436579927e65807dcd) )
+ ROM_LOAD16_BYTE( "271br.c7", 0x3000000, 0x800000, CRC(f3d81b6e) SHA1(62bf0c9d1d9f7a016d125df64c8328e01e003e43) )
+ ROM_LOAD16_BYTE( "271br.c8", 0x3000001, 0x800000, CRC(5310c6dc) SHA1(e9cb89392fa5604d3ac3ba58acdb1b739d1267be) )
+ROM_END
+
+ROM_START( kof2k3bs1 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "271bs1.p1", 0x000000, 0x800000, CRC(54f55bad) SHA1(b5005d6d8b6a6855fd5d244cc68774f8372fe5d4) )
+
+ NEO_SFIX_128K( "271bs1.s1", CRC(8b176a55) SHA1(600a0c9c2e5b17dc2c345756d71a08a9c4a3f26e) )
+
+ NEO_BIOS_AUDIO_512K( "271br.m1", CRC(0e86af8f) SHA1(769102b67bb1a699cfa5674d66cdb46ae633cb65) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "271bs1.v1", 0x000000, 0x800000, CRC(dd6c6a85) SHA1(e32b16d0b716a4f3b95868457347303d020147fb) )
+ ROM_LOAD( "271bs1.v2", 0x800000, 0x800000, CRC(0e84f8c1) SHA1(28c964fe89c800b445d3a65c965de32b4e504726) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "271b.c1", 0x0000000, 0x800000, CRC(e42fc226) SHA1(1cd9364993e141facdcdd53ec2277df7b275d8a7) )
+ ROM_LOAD16_BYTE( "271b.c2", 0x0000001, 0x800000, CRC(1b5e3b58) SHA1(0eb254477a9479541291e43e415310852a0f0bed) )
+ ROM_LOAD16_BYTE( "271b.c3", 0x1000000, 0x800000, CRC(d334fdd9) SHA1(1efe30b4f56a55e25ab518cf6999de797b5e407c) )
+ ROM_LOAD16_BYTE( "271b.c4", 0x1000001, 0x800000, CRC(0d457699) SHA1(ec73d0c9fc7094d0ac6c0986a6e07cde25893e57) )
+ ROM_LOAD16_BYTE( "271b.c5", 0x2000000, 0x800000, CRC(8a91aae4) SHA1(802f4baacf801646be1ef686e105b2e867a6a5df) )
+ ROM_LOAD16_BYTE( "271b.c6", 0x2000001, 0x800000, CRC(9f8674b8) SHA1(65964f40b2227d020023fb436579927e65807dcd) )
+ ROM_LOAD16_BYTE( "271bs1.c7", 0x3000000, 0x800000, CRC(0ff993d7) SHA1(c7d6ce90b84d566dcee85dba5591f8f394fcf032) )
+ ROM_LOAD16_BYTE( "271bs1.c8", 0x3000001, 0x800000, CRC(22e36002) SHA1(bb3a9e1ded0af2db058cfbe773ed5c1a1b4e888a) )
+ROM_END
+
+ROM_START( kof2k3bs2 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "271bs2.p1", 0x000000, 0x800000, CRC(d49993ec) SHA1(71454cd40715799b10fb21864507b7864917c1ad) )
+
+ NEO_SFIX_128K( "271bs1.s1", CRC(8b176a55) SHA1(600a0c9c2e5b17dc2c345756d71a08a9c4a3f26e) )
+
+ NEO_BIOS_AUDIO_512K( "271br.m1", CRC(0e86af8f) SHA1(769102b67bb1a699cfa5674d66cdb46ae633cb65) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "271bs1.v1", 0x000000, 0x800000, CRC(dd6c6a85) SHA1(e32b16d0b716a4f3b95868457347303d020147fb) )
+ ROM_LOAD( "271bs1.v2", 0x800000, 0x800000, CRC(0e84f8c1) SHA1(28c964fe89c800b445d3a65c965de32b4e504726) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "271b.c1", 0x0000000, 0x800000, CRC(e42fc226) SHA1(1cd9364993e141facdcdd53ec2277df7b275d8a7) )
+ ROM_LOAD16_BYTE( "271b.c2", 0x0000001, 0x800000, CRC(1b5e3b58) SHA1(0eb254477a9479541291e43e415310852a0f0bed) )
+ ROM_LOAD16_BYTE( "271b.c3", 0x1000000, 0x800000, CRC(d334fdd9) SHA1(1efe30b4f56a55e25ab518cf6999de797b5e407c) )
+ ROM_LOAD16_BYTE( "271b.c4", 0x1000001, 0x800000, CRC(0d457699) SHA1(ec73d0c9fc7094d0ac6c0986a6e07cde25893e57) )
+ ROM_LOAD16_BYTE( "271b.c5", 0x2000000, 0x800000, CRC(8a91aae4) SHA1(802f4baacf801646be1ef686e105b2e867a6a5df) )
+ ROM_LOAD16_BYTE( "271b.c6", 0x2000001, 0x800000, CRC(9f8674b8) SHA1(65964f40b2227d020023fb436579927e65807dcd) )
+ ROM_LOAD16_BYTE( "271bs1.c7", 0x3000000, 0x800000, CRC(0ff993d7) SHA1(c7d6ce90b84d566dcee85dba5591f8f394fcf032) )
+ ROM_LOAD16_BYTE( "271bs1.c8", 0x3000001, 0x800000, CRC(22e36002) SHA1(bb3a9e1ded0af2db058cfbe773ed5c1a1b4e888a) )
+ROM_END
+
+ROM_START( kof2k3bs3 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "271bs3.p1", 0x000000, 0x800000, CRC(16a09744) SHA1(dbdb7700fc7244ce295044eb0b473914749959d9) )
+
+ NEO_SFIX_128K( "271bs1.s1", CRC(8b176a55) SHA1(600a0c9c2e5b17dc2c345756d71a08a9c4a3f26e) )
+
+ NEO_BIOS_AUDIO_512K( "271br.m1", CRC(0e86af8f) SHA1(769102b67bb1a699cfa5674d66cdb46ae633cb65) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "271bs1.v1", 0x000000, 0x800000, CRC(dd6c6a85) SHA1(e32b16d0b716a4f3b95868457347303d020147fb) )
+ ROM_LOAD( "271bs1.v2", 0x800000, 0x800000, CRC(0e84f8c1) SHA1(28c964fe89c800b445d3a65c965de32b4e504726) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "271b.c1", 0x0000000, 0x800000, CRC(e42fc226) SHA1(1cd9364993e141facdcdd53ec2277df7b275d8a7) )
+ ROM_LOAD16_BYTE( "271b.c2", 0x0000001, 0x800000, CRC(1b5e3b58) SHA1(0eb254477a9479541291e43e415310852a0f0bed) )
+ ROM_LOAD16_BYTE( "271b.c3", 0x1000000, 0x800000, CRC(d334fdd9) SHA1(1efe30b4f56a55e25ab518cf6999de797b5e407c) )
+ ROM_LOAD16_BYTE( "271b.c4", 0x1000001, 0x800000, CRC(0d457699) SHA1(ec73d0c9fc7094d0ac6c0986a6e07cde25893e57) )
+ ROM_LOAD16_BYTE( "271b.c5", 0x2000000, 0x800000, CRC(8a91aae4) SHA1(802f4baacf801646be1ef686e105b2e867a6a5df) )
+ ROM_LOAD16_BYTE( "271b.c6", 0x2000001, 0x800000, CRC(9f8674b8) SHA1(65964f40b2227d020023fb436579927e65807dcd) )
+ ROM_LOAD16_BYTE( "271bs1.c7", 0x3000000, 0x800000, CRC(0ff993d7) SHA1(c7d6ce90b84d566dcee85dba5591f8f394fcf032) )
+ ROM_LOAD16_BYTE( "271bs1.c8", 0x3000001, 0x800000, CRC(22e36002) SHA1(bb3a9e1ded0af2db058cfbe773ed5c1a1b4e888a) )
+ROM_END
+
+ROM_START( kof2k3bs4 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "271bs4.p1", 0x000000, 0x800000, CRC(536d02e7) SHA1(5432c79d3808da3bbf47521a0e2f0ed3f9e7a435) )
+
+ NEO_SFIX_128K( "271bs1.s1", CRC(8b176a55) SHA1(600a0c9c2e5b17dc2c345756d71a08a9c4a3f26e) )
+
+ NEO_BIOS_AUDIO_512K( "271br.m1", CRC(0e86af8f) SHA1(769102b67bb1a699cfa5674d66cdb46ae633cb65) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "271bs1.v1", 0x000000, 0x800000, CRC(dd6c6a85) SHA1(e32b16d0b716a4f3b95868457347303d020147fb) )
+ ROM_LOAD( "271bs1.v2", 0x800000, 0x800000, CRC(0e84f8c1) SHA1(28c964fe89c800b445d3a65c965de32b4e504726) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "271b.c1", 0x0000000, 0x800000, CRC(e42fc226) SHA1(1cd9364993e141facdcdd53ec2277df7b275d8a7) )
+ ROM_LOAD16_BYTE( "271b.c2", 0x0000001, 0x800000, CRC(1b5e3b58) SHA1(0eb254477a9479541291e43e415310852a0f0bed) )
+ ROM_LOAD16_BYTE( "271b.c3", 0x1000000, 0x800000, CRC(d334fdd9) SHA1(1efe30b4f56a55e25ab518cf6999de797b5e407c) )
+ ROM_LOAD16_BYTE( "271b.c4", 0x1000001, 0x800000, CRC(0d457699) SHA1(ec73d0c9fc7094d0ac6c0986a6e07cde25893e57) )
+ ROM_LOAD16_BYTE( "271b.c5", 0x2000000, 0x800000, CRC(8a91aae4) SHA1(802f4baacf801646be1ef686e105b2e867a6a5df) )
+ ROM_LOAD16_BYTE( "271b.c6", 0x2000001, 0x800000, CRC(9f8674b8) SHA1(65964f40b2227d020023fb436579927e65807dcd) )
+ ROM_LOAD16_BYTE( "271bs1.c7", 0x3000000, 0x800000, CRC(0ff993d7) SHA1(c7d6ce90b84d566dcee85dba5591f8f394fcf032) )
+ ROM_LOAD16_BYTE( "271bs1.c8", 0x3000001, 0x800000, CRC(22e36002) SHA1(bb3a9e1ded0af2db058cfbe773ed5c1a1b4e888a) )
+ROM_END
+
+ROM_START( kof2k3d )
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD32_WORD_SWAP( "271-p1c.p1", 0x000000, 0x400000, CRC(530ecc14) SHA1(812cf7e9902af3f5e9e330b7c05c2171b139ad2b) )
+ ROM_LOAD32_WORD_SWAP( "271-p2c.p2", 0x000002, 0x400000, CRC(fd568da9) SHA1(46364906a1e81dc251117e91a1a7b43af1373ada) )
+ ROM_LOAD16_WORD_SWAP( "271-p3c.p3", 0x800000, 0x100000, CRC(aec5b4a9) SHA1(74087f785590eda5898ce146029818f86ced42b6) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "271-m1c.m1", CRC(f5515629) SHA1(7516bf1b0207a3c8d41dc30c478f8d8b1f71304b) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "271-v1c.v1", 0x000000, 0x800000, CRC(ffa3f8c7) SHA1(7cf4a933973ca23b7f87c81151d8659e6ec4bd20) )
+ ROM_LOAD( "271-v2c.v2", 0x800000, 0x800000, CRC(5382c7d1) SHA1(1bf999705eda80ba1e7b0d6bdd010d9bfb18bd76) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "271b.c1", 0x0000000, 0x800000, CRC(e42fc226) SHA1(1cd9364993e141facdcdd53ec2277df7b275d8a7) )
+ ROM_LOAD16_BYTE( "271b.c2", 0x0000001, 0x800000, CRC(1b5e3b58) SHA1(0eb254477a9479541291e43e415310852a0f0bed) )
+ ROM_LOAD16_BYTE( "271b.c3", 0x1000000, 0x800000, CRC(d334fdd9) SHA1(1efe30b4f56a55e25ab518cf6999de797b5e407c) )
+ ROM_LOAD16_BYTE( "271b.c4", 0x1000001, 0x800000, CRC(0d457699) SHA1(ec73d0c9fc7094d0ac6c0986a6e07cde25893e57) )
+ ROM_LOAD16_BYTE( "271b.c5", 0x2000000, 0x800000, CRC(8a91aae4) SHA1(802f4baacf801646be1ef686e105b2e867a6a5df) )
+ ROM_LOAD16_BYTE( "271b.c6", 0x2000001, 0x800000, CRC(9f8674b8) SHA1(65964f40b2227d020023fb436579927e65807dcd) )
+ ROM_LOAD16_BYTE( "271d.c7", 0x3000000, 0x800000, CRC(8ee6b43c) SHA1(c78b749c7c8e1d8ab8335b96da03764cc8e9eb21) )
+ ROM_LOAD16_BYTE( "271d.c8", 0x3000001, 0x800000, CRC(6d8d2d60) SHA1(841698eead0f7d422937ce2f2329e17c383d90a6) )
+ROM_END
+
+ROM_START( kof2k3evo )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "271evo.p1", 0x000000, 0x800000, CRC(ce221039) SHA1(755feabb4a3b2b02f72bd2747b13051fe3d0116c) )
+
+ NEO_SFIX_128K( "271evo.s1", CRC(2849fbfb) SHA1(1c46decf77c9802589bbd445344f6e3b9e82afd2) )
+
+ NEO_BIOS_AUDIO_128K( "271rebh.m1", CRC(396e17cd) SHA1(b2962aef711883402e67fcfb475265abe68e2cba) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "271b.v1", 0x000000, 0x400000, CRC(d2b8aa5e) SHA1(498f0556c1de56822141f8043f1ce20444f4ed0a) )
+ ROM_LOAD( "271b.v2", 0x400000, 0x400000, CRC(71956ee2) SHA1(a890941e60db358cf45b58909f4719f4826f3bb1) )
+ ROM_LOAD( "271b.v3", 0x800000, 0x400000, CRC(ddbbb199) SHA1(0eea4b064bdb8daa03c354fe0a0aa27c4c665bda) )
+ ROM_LOAD( "271b.v4", 0xc00000, 0x400000, CRC(01b90c4f) SHA1(387164aa1995d8c11ed939b3afbc294d86d2e27f) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "271b.c1", 0x0000000, 0x800000, CRC(e42fc226) SHA1(1cd9364993e141facdcdd53ec2277df7b275d8a7) )
+ ROM_LOAD16_BYTE( "271b.c2", 0x0000001, 0x800000, CRC(1b5e3b58) SHA1(0eb254477a9479541291e43e415310852a0f0bed) )
+ ROM_LOAD16_BYTE( "271b.c3", 0x1000000, 0x800000, CRC(d334fdd9) SHA1(1efe30b4f56a55e25ab518cf6999de797b5e407c) )
+ ROM_LOAD16_BYTE( "271b.c4", 0x1000001, 0x800000, CRC(0d457699) SHA1(ec73d0c9fc7094d0ac6c0986a6e07cde25893e57) )
+ ROM_LOAD16_BYTE( "271b.c5", 0x2000000, 0x800000, CRC(8a91aae4) SHA1(802f4baacf801646be1ef686e105b2e867a6a5df) )
+ ROM_LOAD16_BYTE( "271b.c6", 0x2000001, 0x800000, CRC(9f8674b8) SHA1(65964f40b2227d020023fb436579927e65807dcd) )
+ ROM_LOAD16_BYTE( "271b.c7", 0x3000000, 0x800000, CRC(374ea523) SHA1(613827d72c6181f3e08353750c9af0c4dbad020b) )
+ ROM_LOAD16_BYTE( "271b.c8", 0x3000001, 0x800000, CRC(75211f4d) SHA1(d82f044e816ee539ff131d9c931200c818d34cd0) )
+ROM_END
+
+ROM_START( kof2k3gc ) /* The King of Fighters 2003 BOOTLEG - (kof2k3gc) - Colour fix by Gledson01 - (Character colour change for Terry (4P), Athena (3P), Ash (3P), Leona (3P), K' (4P) and King (2P) ) */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "271gc.p1", 0x100000, 0x400000, CRC(ba621186) SHA1(061e072fb5baaf8454f362a9a81bf51a324cc73d) )
+ ROM_LOAD16_WORD_SWAP( "271gc.p2", 0x500000, 0x200000, CRC(5d3d8bb3) SHA1(7f2341f14ca12ff5721eb038b3496228a1f34b60) )
+ ROM_IGNORE( 0x100000 )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "271b.s1", CRC(482c48a5) SHA1(27e2f5295a9a838e112be28dafc111893a388a16) )
+
+ NEO_BIOS_AUDIO_128K( "271b.m1", CRC(3a4969ff) SHA1(2fc107a023a82053a8df63025829bcf12cee9610) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "271b.v1", 0x000000, 0x400000, CRC(d2b8aa5e) SHA1(498f0556c1de56822141f8043f1ce20444f4ed0a) )
+ ROM_LOAD( "271b.v2", 0x400000, 0x400000, CRC(71956ee2) SHA1(a890941e60db358cf45b58909f4719f4826f3bb1) )
+ ROM_LOAD( "271b.v3", 0x800000, 0x400000, CRC(ddbbb199) SHA1(0eea4b064bdb8daa03c354fe0a0aa27c4c665bda) )
+ ROM_LOAD( "271b.v4", 0xc00000, 0x400000, CRC(01b90c4f) SHA1(387164aa1995d8c11ed939b3afbc294d86d2e27f) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "271b.c1", 0x0000000, 0x800000, CRC(e42fc226) SHA1(1cd9364993e141facdcdd53ec2277df7b275d8a7) )
+ ROM_LOAD16_BYTE( "271b.c2", 0x0000001, 0x800000, CRC(1b5e3b58) SHA1(0eb254477a9479541291e43e415310852a0f0bed) )
+ ROM_LOAD16_BYTE( "271b.c3", 0x1000000, 0x800000, CRC(d334fdd9) SHA1(1efe30b4f56a55e25ab518cf6999de797b5e407c) )
+ ROM_LOAD16_BYTE( "271b.c4", 0x1000001, 0x800000, CRC(0d457699) SHA1(ec73d0c9fc7094d0ac6c0986a6e07cde25893e57) )
+ ROM_LOAD16_BYTE( "271b.c5", 0x2000000, 0x800000, CRC(8a91aae4) SHA1(802f4baacf801646be1ef686e105b2e867a6a5df) )
+ ROM_LOAD16_BYTE( "271b.c6", 0x2000001, 0x800000, CRC(9f8674b8) SHA1(65964f40b2227d020023fb436579927e65807dcd) )
+ ROM_LOAD16_BYTE( "271b.c7", 0x3000000, 0x800000, CRC(374ea523) SHA1(613827d72c6181f3e08353750c9af0c4dbad020b) )
+ ROM_LOAD16_BYTE( "271b.c8", 0x3000001, 0x800000, CRC(75211f4d) SHA1(d82f044e816ee539ff131d9c931200c818d34cd0) )
+ROM_END
+
+ROM_START( kof2k3hd ) // decrypted version of kof2003h
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD32_WORD_SWAP( "271-p1k.p1", 0x000000, 0x400000, CRC(d0d0ae3e) SHA1(538d054ac50c91694fbbfefcce548b063713e14e) )
+ ROM_LOAD32_WORD_SWAP( "271-p2k.p2", 0x000002, 0x400000, CRC(fb3f79d9) SHA1(f253d10e732d6e23ae82d74ac9269d21f69ddb4d) )
+ ROM_LOAD16_WORD_SWAP( "271-p3k.p3", 0x800000, 0x100000, CRC(232702ad) SHA1(6045046027dac1cbd4cbd14b5c1ece522bc6197f) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "271-m1k.m1", CRC(48d9affe) SHA1(68f01560b91bbada39001ce01bdeeed5c9bb29f2) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "271-v1c.v1", 0x000000, 0x800000, CRC(ffa3f8c7) SHA1(7cf4a933973ca23b7f87c81151d8659e6ec4bd20) )
+ ROM_LOAD( "271-v2c.v2", 0x800000, 0x800000, CRC(5382c7d1) SHA1(1bf999705eda80ba1e7b0d6bdd010d9bfb18bd76) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "271b.c1", 0x0000000, 0x800000, CRC(e42fc226) SHA1(1cd9364993e141facdcdd53ec2277df7b275d8a7) )
+ ROM_LOAD16_BYTE( "271b.c2", 0x0000001, 0x800000, CRC(1b5e3b58) SHA1(0eb254477a9479541291e43e415310852a0f0bed) )
+ ROM_LOAD16_BYTE( "271b.c3", 0x1000000, 0x800000, CRC(d334fdd9) SHA1(1efe30b4f56a55e25ab518cf6999de797b5e407c) )
+ ROM_LOAD16_BYTE( "271b.c4", 0x1000001, 0x800000, CRC(0d457699) SHA1(ec73d0c9fc7094d0ac6c0986a6e07cde25893e57) )
+ ROM_LOAD16_BYTE( "271b.c5", 0x2000000, 0x800000, CRC(8a91aae4) SHA1(802f4baacf801646be1ef686e105b2e867a6a5df) )
+ ROM_LOAD16_BYTE( "271b.c6", 0x2000001, 0x800000, CRC(9f8674b8) SHA1(65964f40b2227d020023fb436579927e65807dcd) )
+ ROM_LOAD16_BYTE( "271d.c7", 0x3000000, 0x800000, CRC(8ee6b43c) SHA1(c78b749c7c8e1d8ab8335b96da03764cc8e9eb21) )
+ ROM_LOAD16_BYTE( "271d.c8", 0x3000001, 0x800000, CRC(6d8d2d60) SHA1(841698eead0f7d422937ce2f2329e17c383d90a6) )
+ROM_END
+
+ROM_START( kof2k3nd )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "271nd.p1", 0x000000, 0x800000, CRC(11624854) SHA1(a7488a0f5d731656aa82cc51282adcfe6ad9f658) )
+
+ NEO_SFIX_128K( "271nrx.s1", CRC(df422440) SHA1(ed84dfd6cc5a73f3ef35db6616bcc3b45754aa4d) )
+
+ NEO_BIOS_AUDIO_512K( "271br.m1", CRC(0e86af8f) SHA1(769102b67bb1a699cfa5674d66cdb46ae633cb65) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "271f.v1", 0x000000, 0x1000000, CRC(2964f36e) SHA1(bfc52f81354eb57e27acb3b80fe1547b9e070293) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "271b.c1", 0x0000000, 0x800000, CRC(e42fc226) SHA1(1cd9364993e141facdcdd53ec2277df7b275d8a7) )
+ ROM_LOAD16_BYTE( "271b.c2", 0x0000001, 0x800000, CRC(1b5e3b58) SHA1(0eb254477a9479541291e43e415310852a0f0bed) )
+ ROM_LOAD16_BYTE( "271b.c3", 0x1000000, 0x800000, CRC(d334fdd9) SHA1(1efe30b4f56a55e25ab518cf6999de797b5e407c) )
+ ROM_LOAD16_BYTE( "271b.c4", 0x1000001, 0x800000, CRC(0d457699) SHA1(ec73d0c9fc7094d0ac6c0986a6e07cde25893e57) )
+ ROM_LOAD16_BYTE( "271b.c5", 0x2000000, 0x800000, CRC(8a91aae4) SHA1(802f4baacf801646be1ef686e105b2e867a6a5df) )
+ ROM_LOAD16_BYTE( "271b.c6", 0x2000001, 0x800000, CRC(9f8674b8) SHA1(65964f40b2227d020023fb436579927e65807dcd) )
+ ROM_LOAD16_BYTE( "271b.c7", 0x3000000, 0x800000, CRC(374ea523) SHA1(613827d72c6181f3e08353750c9af0c4dbad020b) )
+ ROM_LOAD16_BYTE( "271b.c8", 0x3000001, 0x800000, CRC(75211f4d) SHA1(d82f044e816ee539ff131d9c931200c818d34cd0) )
+ROM_END
+
+ROM_START( kof2k3nrx ) // first ever kof2003 set to run on an emulator (in this case, a special version of NeorageX)
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "271nrx.p1", 0x000000, 0x800000, CRC(57a1981d) SHA1(0bc21c09c127e9abb3b03924166c0065ddec2057) )
+
+ NEO_SFIX_128K( "271nrx.s1", CRC(df422440) SHA1(ed84dfd6cc5a73f3ef35db6616bcc3b45754aa4d) )
+
+ NEO_BIOS_AUDIO_512K( "271br.m1", CRC(0e86af8f) SHA1(769102b67bb1a699cfa5674d66cdb46ae633cb65) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "271nrx.v1", 0x000000, 0x1000000, CRC(2058ec5e) SHA1(567fdf328f87551a949dc601f4e71c55368debf0) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "271pcd.c1", 0x0000000, 0x1000000, CRC(c29acd28) SHA1(8a10409c5a9ad95fa9b56e94c14f1b96101fb179) )
+ ROM_LOAD16_BYTE( "271pcd.c2", 0x0000001, 0x1000000, CRC(328e80b1) SHA1(c7f8069488be1a88a2ea03718b6a131f5c96bd3f) )
+ ROM_LOAD16_BYTE( "271pcd.c3", 0x2000000, 0x1000000, CRC(020a11f1) SHA1(85cfae76234f72b0039ebc02f931bb2a9c10b1af) )
+ ROM_LOAD16_BYTE( "271pcd.c4", 0x2000001, 0x1000000, CRC(991b5ed2) SHA1(99c4c470bc9cb388773e27de6df4a16803fc7b45) )
+ROM_END
+
+ROM_START( kof2k3pcd )
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD32_WORD_SWAP( "271-p1.p1", 0x000000, 0x400000, CRC(b9da070c) SHA1(1a26325af142a4dd221c336061761468598c4634) )
+ ROM_LOAD32_WORD_SWAP( "271-p2.p2", 0x000002, 0x400000, CRC(da3118c4) SHA1(582e4f44f03276adecb7b2848d3b96bf6da57f1e) )
+ ROM_LOAD16_WORD_SWAP( "271-p3.p3", 0x800000, 0x100000, CRC(5cefd0d2) SHA1(cddc3164629fed4b6f715e12b109ad35d1009355) )
+
+ ROM_Y_ZOOM
+ ROM_REGION( 0x100000, "fixed", ROMREGION_ERASE00 )
+ ROM_REGION( 0x20000, "fixedbios", 0 )
+ ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) )
+
+ ROM_REGION16_BE( 0x80000, "mainbios", 0 )
+ ROM_LOAD16_WORD_SWAP( "271pcd.sp1", 0x00000, 0x080000, CRC(e873f1ef) SHA1(e7f7a6084b9d7f4b4f8819ea0fd115b1f2cac2c2) )
+
+ ROM_REGION( 0x80000, "audiocrypt", 0 )
+ ROM_LOAD( "271-m1.m1", 0x00000, 0x80000, CRC(d6bcf2bc) SHA1(df78bc95990eb8e8f3638dde6e1876354df7fe84) )
+ ROM_REGION( 0x90000, "audiocpu", ROMREGION_ERASEFF )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "271-v1.v1", 0x000000, 0x1000000, CRC(1d96154b) SHA1(1d4e262b0d30cee79a4edc83bb9706023c736668) )
+
+ ROM_REGION( 0x6000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "271pcd.c1", 0x0000000, 0x1000000, CRC(c29acd28) SHA1(8a10409c5a9ad95fa9b56e94c14f1b96101fb179) )
+ ROM_LOAD16_BYTE( "271pcd.c2", 0x0000001, 0x1000000, CRC(328e80b1) SHA1(c7f8069488be1a88a2ea03718b6a131f5c96bd3f) )
+ ROM_LOAD16_BYTE( "271pcd.c3", 0x2000000, 0x1000000, CRC(020a11f1) SHA1(85cfae76234f72b0039ebc02f931bb2a9c10b1af) )
+ ROM_LOAD16_BYTE( "271pcd.c4", 0x2000001, 0x1000000, CRC(991b5ed2) SHA1(99c4c470bc9cb388773e27de6df4a16803fc7b45) )
+ ROM_LOAD16_BYTE( "271pcd.c5", 0x4000000, 0x1000000, CRC(c2de8b66) SHA1(40c2ea48fc20d470163a9dbb40c0276fc4cfceb9) )
+ ROM_LOAD16_BYTE( "271pcd.c6", 0x4000001, 0x1000000, CRC(3ff750db) SHA1(714f14a2eb2df6f25d10a6b6aff4b3adfbc7a5dc) )
+ROM_END
+
+ROM_START( kof2k3pch )
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD32_WORD_SWAP( "271pch.p1", 0x000000, 0x400000, CRC(f2be8247) SHA1(50ce38027cca73420cd864681de6149c9ce69041) )
+ ROM_LOAD32_WORD_SWAP( "271pch.p2", 0x000002, 0x400000, CRC(56316905) SHA1(ce9bb7d872e44fcc887d08a5faa7a355a88f0830) )
+ ROM_LOAD16_WORD_SWAP( "271pch.p3", 0x800000, 0x100000, CRC(d9750d7b) SHA1(c5016de367800d3b0b277eff1da788209910cd82) )
+
+ ROM_Y_ZOOM
+ ROM_REGION( 0x100000, "fixed", ROMREGION_ERASE00 )
+ ROM_REGION( 0x20000, "fixedbios", 0 )
+ ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) )
+
+ ROM_REGION16_BE( 0x80000, "mainbios", 0 )
+ ROM_LOAD16_WORD_SWAP( "spj.sp1", 0x00000, 0x080000, CRC(148dd727) SHA1(2cf592a16c7157de02a989675d47965f2b3a44dd) )
+
+ ROM_REGION( 0x80000, "audiocrypt", 0 )
+ ROM_LOAD( "271-m1.m1", 0x00000, 0x80000, CRC(d6bcf2bc) SHA1(df78bc95990eb8e8f3638dde6e1876354df7fe84) )
+ ROM_REGION( 0x90000, "audiocpu", ROMREGION_ERASEFF )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "271-v1.v1", 0x000000, 0x1000000, CRC(1d96154b) SHA1(1d4e262b0d30cee79a4edc83bb9706023c736668) )
+
+ ROM_REGION( 0x6000000, "sprites", 0 )
+ ROM_LOAD32_WORD( "271-c1.c1", 0x0000000, 0x1000000, CRC(f5ebb327) SHA1(e4f799a54b09adcca13b1b0cf95971a1f4291b61) )
+ ROM_LOAD32_WORD( "271-c2.c2", 0x0000002, 0x1000000, CRC(2be21620) SHA1(872c658f53bbc558e90f18d5db9cbaa82e748a6a) )
+ ROM_LOAD32_WORD( "271-c3.c3", 0x2000000, 0x1000000, CRC(ddded4ff) SHA1(ff7b356125bc9e6637b164f5e81b13eabeb8d804) )
+ ROM_LOAD32_WORD( "271-c4.c4", 0x2000002, 0x1000000, CRC(d85521e6) SHA1(62278fa8690972ed32aca07a4f7f97e7203d9f3a) )
+ ROM_LOAD32_WORD( "271pch.c5", 0x4000000, 0x1000000, CRC(eadc4839) SHA1(f831d71c0f60556909a0aa918e0552a3cabb8b13) )
+ ROM_LOAD32_WORD( "271pch.c6", 0x4000002, 0x1000000, CRC(d873e0dd) SHA1(725421b1cb5578e3fa6488f2783369789b6a4f2e) )
+ROM_END
+
+ROM_START( kof2k3ps2 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "271ps2.p1", 0x000000, 0x800000, CRC(8e66056d) SHA1(8ddbbf66bdcefbae15e9c0597aea846bbcfccadd) )
+
+ NEO_SFIX_128K( "271ps2.s1", CRC(c2e48e98) SHA1(8734c3d1c936aff3d7d1f460b5d211e25a816cc5) )
+
+ NEO_BIOS_AUDIO_512K( "271ps2.m1", CRC(4374cb5c) SHA1(d245a09fcebc8fe59f4af2de2fc30a0871e56d68) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "271bs1.v1", 0x000000, 0x800000, CRC(dd6c6a85) SHA1(e32b16d0b716a4f3b95868457347303d020147fb) )
+ ROM_LOAD( "271bs1.v2", 0x800000, 0x800000, CRC(0e84f8c1) SHA1(28c964fe89c800b445d3a65c965de32b4e504726) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "271b.c1", 0x0000000, 0x800000, CRC(e42fc226) SHA1(1cd9364993e141facdcdd53ec2277df7b275d8a7) )
+ ROM_LOAD16_BYTE( "271b.c2", 0x0000001, 0x800000, CRC(1b5e3b58) SHA1(0eb254477a9479541291e43e415310852a0f0bed) )
+ ROM_LOAD16_BYTE( "271b.c3", 0x1000000, 0x800000, CRC(d334fdd9) SHA1(1efe30b4f56a55e25ab518cf6999de797b5e407c) )
+ ROM_LOAD16_BYTE( "271b.c4", 0x1000001, 0x800000, CRC(0d457699) SHA1(ec73d0c9fc7094d0ac6c0986a6e07cde25893e57) )
+ ROM_LOAD16_BYTE( "271b.c5", 0x2000000, 0x800000, CRC(8a91aae4) SHA1(802f4baacf801646be1ef686e105b2e867a6a5df) )
+ ROM_LOAD16_BYTE( "271b.c6", 0x2000001, 0x800000, CRC(9f8674b8) SHA1(65964f40b2227d020023fb436579927e65807dcd) )
+ ROM_LOAD16_BYTE( "271bs1.c7", 0x3000000, 0x800000, CRC(0ff993d7) SHA1(c7d6ce90b84d566dcee85dba5591f8f394fcf032) )
+ ROM_LOAD16_BYTE( "271bs1.c8", 0x3000001, 0x800000, CRC(22e36002) SHA1(bb3a9e1ded0af2db058cfbe773ed5c1a1b4e888a) )
+ROM_END
+
+ROM_START( kof2k3ps3 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "271ps3.p1", 0x000000, 0x800000, CRC(65a5e73d) SHA1(eec26ceedf67ee3ff0b6b192a7cb2978353c3bc3) )
+
+ NEO_SFIX_128K( "271ps2.s1", CRC(c2e48e98) SHA1(8734c3d1c936aff3d7d1f460b5d211e25a816cc5) )
+
+ NEO_BIOS_AUDIO_512K( "271br.m1", CRC(0e86af8f) SHA1(769102b67bb1a699cfa5674d66cdb46ae633cb65) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "271f.v1", 0x000000, 0x1000000, CRC(2964f36e) SHA1(bfc52f81354eb57e27acb3b80fe1547b9e070293) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "271b.c1", 0x0000000, 0x800000, CRC(e42fc226) SHA1(1cd9364993e141facdcdd53ec2277df7b275d8a7) )
+ ROM_LOAD16_BYTE( "271b.c2", 0x0000001, 0x800000, CRC(1b5e3b58) SHA1(0eb254477a9479541291e43e415310852a0f0bed) )
+ ROM_LOAD16_BYTE( "271b.c3", 0x1000000, 0x800000, CRC(d334fdd9) SHA1(1efe30b4f56a55e25ab518cf6999de797b5e407c) )
+ ROM_LOAD16_BYTE( "271b.c4", 0x1000001, 0x800000, CRC(0d457699) SHA1(ec73d0c9fc7094d0ac6c0986a6e07cde25893e57) )
+ ROM_LOAD16_BYTE( "271b.c5", 0x2000000, 0x800000, CRC(8a91aae4) SHA1(802f4baacf801646be1ef686e105b2e867a6a5df) )
+ ROM_LOAD16_BYTE( "271b.c6", 0x2000001, 0x800000, CRC(9f8674b8) SHA1(65964f40b2227d020023fb436579927e65807dcd) )
+ ROM_LOAD16_BYTE( "271ps3.c7", 0x3000000, 0x800000, CRC(18742a1e) SHA1(2a822c2a0698f7301e3d395fb9366593a64fbffe) )
+ ROM_LOAD16_BYTE( "271ps3.c8", 0x3000001, 0x800000, CRC(aa921e8e) SHA1(0c4d7fff4843d4d3498649b9de5bebfb67fe5312) )
+ROM_END
+
+ROM_START( kof2k3ryu )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "271ryu.p1", 0x000000, 0x800000, CRC(0e82da28) SHA1(61fd4cf63f804752095f47450e4aac10672bd53f) )
+
+ NEO_SFIX_128K( "271ryu.s1", CRC(d05be6db) SHA1(a523e6b7b8f07e6636043d13626a2286c79de930) )
+
+ NEO_BIOS_AUDIO_512K( "271br.m1", CRC(0e86af8f) SHA1(769102b67bb1a699cfa5674d66cdb46ae633cb65) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "271f.v1", 0x000000, 0x1000000, CRC(2964f36e) SHA1(bfc52f81354eb57e27acb3b80fe1547b9e070293) )
+
+ ROM_REGION( 0x6000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "271pcd.c1", 0x0000000, 0x1000000, CRC(c29acd28) SHA1(8a10409c5a9ad95fa9b56e94c14f1b96101fb179) )
+ ROM_LOAD16_BYTE( "271pcd.c2", 0x0000001, 0x1000000, CRC(328e80b1) SHA1(c7f8069488be1a88a2ea03718b6a131f5c96bd3f) )
+ ROM_LOAD16_BYTE( "271pcd.c3", 0x2000000, 0x1000000, CRC(020a11f1) SHA1(85cfae76234f72b0039ebc02f931bb2a9c10b1af) )
+ ROM_LOAD16_BYTE( "271pcd.c4", 0x2000001, 0x1000000, CRC(991b5ed2) SHA1(99c4c470bc9cb388773e27de6df4a16803fc7b45) )
+ ROM_LOAD16_BYTE( "271pcd.c5", 0x4000000, 0x1000000, CRC(c2de8b66) SHA1(40c2ea48fc20d470163a9dbb40c0276fc4cfceb9) )
+ ROM_LOAD16_BYTE( "271pcd.c6", 0x4000001, 0x1000000, CRC(3ff750db) SHA1(714f14a2eb2df6f25d10a6b6aff4b3adfbc7a5dc) )
+ROM_END
+
+ROM_START( kof2k3sc ) /* The King of Fighters 2003 BOOTLEG - (kof2k3sc) - Colour fix by SHIPDS - (Colour change) */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "271sc.p1", 0x100000, 0x400000, CRC(ef4ee94e) SHA1(f3b8b9e7279dfc4c04dc5971c323134d8db3b42c) )
+ ROM_LOAD16_WORD_SWAP( "271gc.p2", 0x500000, 0x200000, CRC(5d3d8bb3) SHA1(7f2341f14ca12ff5721eb038b3496228a1f34b60) )
+ ROM_IGNORE( 0x100000 )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "271b.s1", CRC(482c48a5) SHA1(27e2f5295a9a838e112be28dafc111893a388a16) )
+
+ NEO_BIOS_AUDIO_128K( "271b.m1", CRC(3a4969ff) SHA1(2fc107a023a82053a8df63025829bcf12cee9610) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "271b.v1", 0x000000, 0x400000, CRC(d2b8aa5e) SHA1(498f0556c1de56822141f8043f1ce20444f4ed0a) )
+ ROM_LOAD( "271b.v2", 0x400000, 0x400000, CRC(71956ee2) SHA1(a890941e60db358cf45b58909f4719f4826f3bb1) )
+ ROM_LOAD( "271b.v3", 0x800000, 0x400000, CRC(ddbbb199) SHA1(0eea4b064bdb8daa03c354fe0a0aa27c4c665bda) )
+ ROM_LOAD( "271b.v4", 0xc00000, 0x400000, CRC(01b90c4f) SHA1(387164aa1995d8c11ed939b3afbc294d86d2e27f) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "271b.c1", 0x0000000, 0x800000, CRC(e42fc226) SHA1(1cd9364993e141facdcdd53ec2277df7b275d8a7) )
+ ROM_LOAD16_BYTE( "271b.c2", 0x0000001, 0x800000, CRC(1b5e3b58) SHA1(0eb254477a9479541291e43e415310852a0f0bed) )
+ ROM_LOAD16_BYTE( "271b.c3", 0x1000000, 0x800000, CRC(d334fdd9) SHA1(1efe30b4f56a55e25ab518cf6999de797b5e407c) )
+ ROM_LOAD16_BYTE( "271b.c4", 0x1000001, 0x800000, CRC(0d457699) SHA1(ec73d0c9fc7094d0ac6c0986a6e07cde25893e57) )
+ ROM_LOAD16_BYTE( "271b.c5", 0x2000000, 0x800000, CRC(8a91aae4) SHA1(802f4baacf801646be1ef686e105b2e867a6a5df) )
+ ROM_LOAD16_BYTE( "271b.c6", 0x2000001, 0x800000, CRC(9f8674b8) SHA1(65964f40b2227d020023fb436579927e65807dcd) )
+ ROM_LOAD16_BYTE( "271b.c7", 0x3000000, 0x800000, CRC(374ea523) SHA1(613827d72c6181f3e08353750c9af0c4dbad020b) )
+ ROM_LOAD16_BYTE( "271b.c8", 0x3000001, 0x800000, CRC(75211f4d) SHA1(d82f044e816ee539ff131d9c931200c818d34cd0) )
+ROM_END
+
+ROM_START( kof2k3ss )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "271ss.p1", 0x100000, 0x400000, CRC(3b6ce72b) SHA1(9c44a4adb993a8fa63fc44b29ca0bfe8a166e049) )
+ ROM_LOAD16_WORD_SWAP( "271gc.p2", 0x500000, 0x200000, CRC(5d3d8bb3) SHA1(7f2341f14ca12ff5721eb038b3496228a1f34b60) )
+ ROM_IGNORE( 0x100000 )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "271b.s1", CRC(482c48a5) SHA1(27e2f5295a9a838e112be28dafc111893a388a16) )
+
+ NEO_BIOS_AUDIO_128K( "271b.m1", CRC(3a4969ff) SHA1(2fc107a023a82053a8df63025829bcf12cee9610) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "271-v1c.v1", 0x000000, 0x800000, CRC(ffa3f8c7) SHA1(7cf4a933973ca23b7f87c81151d8659e6ec4bd20) )
+ ROM_LOAD( "271-v2c.v2", 0x800000, 0x800000, CRC(5382c7d1) SHA1(1bf999705eda80ba1e7b0d6bdd010d9bfb18bd76) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "271-c1c.c1", 0x0000000, 0x800000, CRC(b1dc25d0) SHA1(50adc3c60d5b4b3abd10a49db2267306c6dbd772) )
+ ROM_LOAD16_BYTE( "271-c2c.c2", 0x0000001, 0x800000, CRC(d5362437) SHA1(66db36522dc09106388c707252df9fe1c88b4856) )
+ ROM_LOAD16_BYTE( "271-c3c.c3", 0x1000000, 0x800000, CRC(0a1fbeab) SHA1(9fe30d36ba98d00fda010832ff2f27783dd577c1) )
+ ROM_LOAD16_BYTE( "271-c4c.c4", 0x1000001, 0x800000, CRC(87b19a0c) SHA1(b72a8e7d9124ce859b5149bb4381ba481c161ea5) )
+ ROM_LOAD16_BYTE( "271-c5c.c5", 0x2000000, 0x800000, CRC(704ea371) SHA1(e75b80422f0d72eac826f8ffadf79efeccaab124) )
+ ROM_LOAD16_BYTE( "271-c6c.c6", 0x2000001, 0x800000, CRC(20a1164c) SHA1(c9843b37612a16fc95f6851793b1cfb5d49d811d) )
+ ROM_LOAD16_BYTE( "271-c7c.c7", 0x3000000, 0x800000, CRC(189aba7f) SHA1(7152195a57ad36b28290810fe87ed8c206262ba9) )
+ ROM_LOAD16_BYTE( "271-c8c.c8", 0x3000001, 0x800000, CRC(20ec4fdc) SHA1(deb5f7ec5a090e419b9d1a6a74877bee081198e2) )
+ROM_END
+
+ROM_START( kof2k3tc ) /* The King of Fighters 2003 BOOTLEG - (kof2k3tc) - Colour fix by T.Com - (Character colour change for Kyo (2P/4P), DUOLON (4P), K' (4P) ) */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "271tc.p1", 0x100000, 0x400000, CRC(0d1a1da9) SHA1(0ba0d11c3bb3c30bc95f9aae181769ea874da096) )
+ ROM_LOAD16_WORD_SWAP( "271gc.p2", 0x500000, 0x200000, CRC(5d3d8bb3) SHA1(7f2341f14ca12ff5721eb038b3496228a1f34b60) )
+ ROM_IGNORE( 0x100000 )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "271b.s1", CRC(482c48a5) SHA1(27e2f5295a9a838e112be28dafc111893a388a16) )
+
+ NEO_BIOS_AUDIO_128K( "271b.m1", CRC(3a4969ff) SHA1(2fc107a023a82053a8df63025829bcf12cee9610) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "271b.v1", 0x000000, 0x400000, CRC(d2b8aa5e) SHA1(498f0556c1de56822141f8043f1ce20444f4ed0a) )
+ ROM_LOAD( "271b.v2", 0x400000, 0x400000, CRC(71956ee2) SHA1(a890941e60db358cf45b58909f4719f4826f3bb1) )
+ ROM_LOAD( "271b.v3", 0x800000, 0x400000, CRC(ddbbb199) SHA1(0eea4b064bdb8daa03c354fe0a0aa27c4c665bda) )
+ ROM_LOAD( "271b.v4", 0xc00000, 0x400000, CRC(01b90c4f) SHA1(387164aa1995d8c11ed939b3afbc294d86d2e27f) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "271b.c1", 0x0000000, 0x800000, CRC(e42fc226) SHA1(1cd9364993e141facdcdd53ec2277df7b275d8a7) )
+ ROM_LOAD16_BYTE( "271b.c2", 0x0000001, 0x800000, CRC(1b5e3b58) SHA1(0eb254477a9479541291e43e415310852a0f0bed) )
+ ROM_LOAD16_BYTE( "271b.c3", 0x1000000, 0x800000, CRC(d334fdd9) SHA1(1efe30b4f56a55e25ab518cf6999de797b5e407c) )
+ ROM_LOAD16_BYTE( "271b.c4", 0x1000001, 0x800000, CRC(0d457699) SHA1(ec73d0c9fc7094d0ac6c0986a6e07cde25893e57) )
+ ROM_LOAD16_BYTE( "271b.c5", 0x2000000, 0x800000, CRC(8a91aae4) SHA1(802f4baacf801646be1ef686e105b2e867a6a5df) )
+ ROM_LOAD16_BYTE( "271b.c6", 0x2000001, 0x800000, CRC(9f8674b8) SHA1(65964f40b2227d020023fb436579927e65807dcd) )
+ ROM_LOAD16_BYTE( "271b.c7", 0x3000000, 0x800000, CRC(374ea523) SHA1(613827d72c6181f3e08353750c9af0c4dbad020b) )
+ ROM_LOAD16_BYTE( "271b.c8", 0x3000001, 0x800000, CRC(75211f4d) SHA1(d82f044e816ee539ff131d9c931200c818d34cd0) )
+ROM_END
+
+ROM_START( kof2k3zgf ) /* The King of Fighters 2003 BOOTLEG - (kof2k3zgf) - Colour fix by Zhaolu94 - (Attack cremation green) */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "271zgf.p1", 0x100000, 0x400000, CRC(9a76d66f) SHA1(4697b521105759d135f859e47940e3696f49506b) )
+ ROM_LOAD16_WORD_SWAP( "271gc.p2", 0x500000, 0x200000, CRC(5d3d8bb3) SHA1(7f2341f14ca12ff5721eb038b3496228a1f34b60) )
+ ROM_IGNORE( 0x100000 )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "271b.s1", CRC(482c48a5) SHA1(27e2f5295a9a838e112be28dafc111893a388a16) )
+
+ NEO_BIOS_AUDIO_128K( "271b.m1", CRC(3a4969ff) SHA1(2fc107a023a82053a8df63025829bcf12cee9610) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "271b.v1", 0x000000, 0x400000, CRC(d2b8aa5e) SHA1(498f0556c1de56822141f8043f1ce20444f4ed0a) )
+ ROM_LOAD( "271b.v2", 0x400000, 0x400000, CRC(71956ee2) SHA1(a890941e60db358cf45b58909f4719f4826f3bb1) )
+ ROM_LOAD( "271b.v3", 0x800000, 0x400000, CRC(ddbbb199) SHA1(0eea4b064bdb8daa03c354fe0a0aa27c4c665bda) )
+ ROM_LOAD( "271b.v4", 0xc00000, 0x400000, CRC(01b90c4f) SHA1(387164aa1995d8c11ed939b3afbc294d86d2e27f) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "271b.c1", 0x0000000, 0x800000, CRC(e42fc226) SHA1(1cd9364993e141facdcdd53ec2277df7b275d8a7) )
+ ROM_LOAD16_BYTE( "271b.c2", 0x0000001, 0x800000, CRC(1b5e3b58) SHA1(0eb254477a9479541291e43e415310852a0f0bed) )
+ ROM_LOAD16_BYTE( "271b.c3", 0x1000000, 0x800000, CRC(d334fdd9) SHA1(1efe30b4f56a55e25ab518cf6999de797b5e407c) )
+ ROM_LOAD16_BYTE( "271b.c4", 0x1000001, 0x800000, CRC(0d457699) SHA1(ec73d0c9fc7094d0ac6c0986a6e07cde25893e57) )
+ ROM_LOAD16_BYTE( "271b.c5", 0x2000000, 0x800000, CRC(8a91aae4) SHA1(802f4baacf801646be1ef686e105b2e867a6a5df) )
+ ROM_LOAD16_BYTE( "271b.c6", 0x2000001, 0x800000, CRC(9f8674b8) SHA1(65964f40b2227d020023fb436579927e65807dcd) )
+ ROM_LOAD16_BYTE( "271b.c7", 0x3000000, 0x800000, CRC(374ea523) SHA1(613827d72c6181f3e08353750c9af0c4dbad020b) )
+ ROM_LOAD16_BYTE( "271b.c8", 0x3000001, 0x800000, CRC(75211f4d) SHA1(d82f044e816ee539ff131d9c931200c818d34cd0) )
+ROM_END
+
+
+
+GAME( 2003, kof2003d, kof2003, neogeo_noslot, neogeo, neogeo_hbmame, kof2003hb, ROT0, "hack", "Kof2003 (Decrypted P&C)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2003f, kof2003, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof2003 Original (Fully Decrypted - Fixed)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2003rebh,kof2003, no_watchdog, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof2003 (hack rebh)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k3b, kof2003, neogeo_noslot, neogeo, neogeo_hbmame, kof2003b, ROT0, "Gledson01", "Kof2003 (Add Char)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k3bl2, kof2003, neogeo_noslot, neogeo, neogeo_hbmame, kof2003b, ROT0, "hack", "Kof2003 (Bootleg Boss hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k3br, kof2003, neogeo_noslot, neogeo, neogeo_hbmame, kof2003hb, ROT0, "Neogeo BR team", "Kof2003 Portuguese Brazilian Hack", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k3bs1, kof2003, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGCG / FCHT", "Kof2003 (Boss PS2 EGCG/FCHT Hack Set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k3bs2, kof2003, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGCG / FCHT", "Kof2003 (Boss PS2 EGCG/FCHT Hack Set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k3bs3, kof2003, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGCG / FCHT", "Kof2003 (Boss PS2 EGCG/FCHT Hack Set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k3bs4, kof2003, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGCG / FCHT", "Kof2003 (Boss PS2 EGCG/FCHT Hack Set 4)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k3d, kof2003, neogeo_noslot, neogeo, neogeo_hbmame, kof2003hb, ROT0, "hack", "Kof2003 (NGM-2710)(decrypted C)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k3evo, kof2003, no_watchdog, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof2003 (Evolution 1.4)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k3gc, kof2003, neogeo_noslot, neogeo, neogeo_hbmame, kof2003b, ROT0, "Gledson01", "Kof2003 (Char color changed for Terry (4P), Athena (3P), Ash (3P), Leona (3P), K' (4P) and King (2P) )", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k3hd, kof2003, neogeo_noslot, neogeo, neogeo_hbmame, kof2k3hd, ROT0, "hack", "Kof2003 (NGH-2710)(decrypted C)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k3nd, kof2003, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof2003 (Fully decrypted)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k3nrx, kof2003, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof2003 (Neoragex)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k3pcd, kf2k3pcb, neogeo_noslot, neogeo, neogeo_hbmame, kof2k3pcd, ROT0, "hack", "Kof2003 (Japan, JAMMA PCB / decrypted C&Bios)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k3pch, kf2k3pcb, neogeo_noslot, neogeo, neogeo_noslot_state, kf2k3pcb, ROT0, "ZKW", "Kof2003 (Boss hack remixed by ZKW japan jamma pcb)", MACHINE_SUPPORTS_SAVE )
+GAME( 2008, kof2k3ps2, kof2003, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGCG / FCHT", "Kof2003 (PS2 2008-03-03 beta 1.0 (EGCG/FCHT))", MACHINE_SUPPORTS_SAVE )
+GAME( 2008, kof2k3ps3, kof2003, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGCG / FCHT", "Kof2003 (PS2 2008-10-31 (EGCG/FCHT))", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k3ryu, kof2003, no_watchdog, neogeo, neogeo_state, neogeo, ROT0, "Iori Yagami", "Kof2003 (Ryu Hack by Iori Yagami)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k3sc, kof2003, neogeo_noslot, neogeo, neogeo_hbmame, kof2003b, ROT0, "SHIPDS", "Kof2003 (Color changed)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k3ss, kof2003, neogeo_noslot, neogeo, neogeo_hbmame, kof2003b, ROT0, "hack", "Kof2003 (Silver Style Edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k3tc, kof2003, neogeo_noslot, neogeo, neogeo_hbmame, kof2003b, ROT0, "T.Com", "Kof2003 (Char color changed for Kyo (2P/4P), DUOLON (4P), K' (4P) )", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k3zgf, kof2003, neogeo_noslot, neogeo, neogeo_hbmame, kof2003b, ROT0, "Zhaolu94", "Kof2003 (Attack cremation green)", MACHINE_SUPPORTS_SAVE )
+
+
+//PSmame
+
+ROM_START( kof2k3s01 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "271tc.p1", 0x100000, 0x400000, CRC(0d1a1da9) SHA1(0ba0d11c3bb3c30bc95f9aae181769ea874da096) )
+ ROM_LOAD16_WORD_SWAP( "271hc01.p2", 0x500000, 0x200000, CRC(93168b67) SHA1(e54bfbecee63478de63c838b9b1d34ea20f54d76) )
+ ROM_IGNORE( 0x100000 )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "271b.s1", CRC(482c48a5) SHA1(27e2f5295a9a838e112be28dafc111893a388a16) )
+
+ NEO_BIOS_AUDIO_128K( "271b.m1", CRC(3a4969ff) SHA1(2fc107a023a82053a8df63025829bcf12cee9610) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "271b.v1", 0x000000, 0x400000, CRC(d2b8aa5e) SHA1(498f0556c1de56822141f8043f1ce20444f4ed0a) )
+ ROM_LOAD( "271b.v2", 0x400000, 0x400000, CRC(71956ee2) SHA1(a890941e60db358cf45b58909f4719f4826f3bb1) )
+ ROM_LOAD( "271b.v3", 0x800000, 0x400000, CRC(ddbbb199) SHA1(0eea4b064bdb8daa03c354fe0a0aa27c4c665bda) )
+ ROM_LOAD( "271b.v4", 0xc00000, 0x400000, CRC(01b90c4f) SHA1(387164aa1995d8c11ed939b3afbc294d86d2e27f) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "271b.c1", 0x0000000, 0x800000, CRC(e42fc226) SHA1(1cd9364993e141facdcdd53ec2277df7b275d8a7) )
+ ROM_LOAD16_BYTE( "271b.c2", 0x0000001, 0x800000, CRC(1b5e3b58) SHA1(0eb254477a9479541291e43e415310852a0f0bed) )
+ ROM_LOAD16_BYTE( "271b.c3", 0x1000000, 0x800000, CRC(d334fdd9) SHA1(1efe30b4f56a55e25ab518cf6999de797b5e407c) )
+ ROM_LOAD16_BYTE( "271b.c4", 0x1000001, 0x800000, CRC(0d457699) SHA1(ec73d0c9fc7094d0ac6c0986a6e07cde25893e57) )
+ ROM_LOAD16_BYTE( "271b.c5", 0x2000000, 0x800000, CRC(8a91aae4) SHA1(802f4baacf801646be1ef686e105b2e867a6a5df) )
+ ROM_LOAD16_BYTE( "271b.c6", 0x2000001, 0x800000, CRC(9f8674b8) SHA1(65964f40b2227d020023fb436579927e65807dcd) )
+ ROM_LOAD16_BYTE( "271b.c7", 0x3000000, 0x800000, CRC(374ea523) SHA1(613827d72c6181f3e08353750c9af0c4dbad020b) )
+ ROM_LOAD16_BYTE( "271b.c8", 0x3000001, 0x800000, CRC(75211f4d) SHA1(d82f044e816ee539ff131d9c931200c818d34cd0) )
+ROM_END
+
+ROM_START( kof2k3s02 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "271tc.p1", 0x100000, 0x400000, CRC(0d1a1da9) SHA1(0ba0d11c3bb3c30bc95f9aae181769ea874da096) )
+ ROM_LOAD16_WORD_SWAP( "271hc02.p2", 0x500000, 0x200000, CRC(e4bdb07a) SHA1(6c69e2d0c73e72c488aef0fb7470256a2df064d5) )
+ ROM_IGNORE( 0x100000 )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "271b.s1", CRC(482c48a5) SHA1(27e2f5295a9a838e112be28dafc111893a388a16) )
+
+ NEO_BIOS_AUDIO_128K( "271b.m1", CRC(3a4969ff) SHA1(2fc107a023a82053a8df63025829bcf12cee9610) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "271b.v1", 0x000000, 0x400000, CRC(d2b8aa5e) SHA1(498f0556c1de56822141f8043f1ce20444f4ed0a) )
+ ROM_LOAD( "271b.v2", 0x400000, 0x400000, CRC(71956ee2) SHA1(a890941e60db358cf45b58909f4719f4826f3bb1) )
+ ROM_LOAD( "271b.v3", 0x800000, 0x400000, CRC(ddbbb199) SHA1(0eea4b064bdb8daa03c354fe0a0aa27c4c665bda) )
+ ROM_LOAD( "271b.v4", 0xc00000, 0x400000, CRC(01b90c4f) SHA1(387164aa1995d8c11ed939b3afbc294d86d2e27f) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "271b.c1", 0x0000000, 0x800000, CRC(e42fc226) SHA1(1cd9364993e141facdcdd53ec2277df7b275d8a7) )
+ ROM_LOAD16_BYTE( "271b.c2", 0x0000001, 0x800000, CRC(1b5e3b58) SHA1(0eb254477a9479541291e43e415310852a0f0bed) )
+ ROM_LOAD16_BYTE( "271b.c3", 0x1000000, 0x800000, CRC(d334fdd9) SHA1(1efe30b4f56a55e25ab518cf6999de797b5e407c) )
+ ROM_LOAD16_BYTE( "271b.c4", 0x1000001, 0x800000, CRC(0d457699) SHA1(ec73d0c9fc7094d0ac6c0986a6e07cde25893e57) )
+ ROM_LOAD16_BYTE( "271b.c5", 0x2000000, 0x800000, CRC(8a91aae4) SHA1(802f4baacf801646be1ef686e105b2e867a6a5df) )
+ ROM_LOAD16_BYTE( "271b.c6", 0x2000001, 0x800000, CRC(9f8674b8) SHA1(65964f40b2227d020023fb436579927e65807dcd) )
+ ROM_LOAD16_BYTE( "271b.c7", 0x3000000, 0x800000, CRC(374ea523) SHA1(613827d72c6181f3e08353750c9af0c4dbad020b) )
+ ROM_LOAD16_BYTE( "271b.c8", 0x3000001, 0x800000, CRC(75211f4d) SHA1(d82f044e816ee539ff131d9c931200c818d34cd0) )
+ROM_END
+
+ROM_START( kof2k3s03 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "271tc.p1", 0x100000, 0x400000, CRC(0d1a1da9) SHA1(0ba0d11c3bb3c30bc95f9aae181769ea874da096) )
+ ROM_LOAD16_WORD_SWAP( "271hc03.p2", 0x500000, 0x200000, CRC(d403312a) SHA1(28bb4259823835bf8dee377c42bdb414b7149aa4) )
+ ROM_IGNORE( 0x100000 )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "271b.s1", CRC(482c48a5) SHA1(27e2f5295a9a838e112be28dafc111893a388a16) )
+
+ NEO_BIOS_AUDIO_128K( "271b.m1", CRC(3a4969ff) SHA1(2fc107a023a82053a8df63025829bcf12cee9610) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "271b.v1", 0x000000, 0x400000, CRC(d2b8aa5e) SHA1(498f0556c1de56822141f8043f1ce20444f4ed0a) )
+ ROM_LOAD( "271b.v2", 0x400000, 0x400000, CRC(71956ee2) SHA1(a890941e60db358cf45b58909f4719f4826f3bb1) )
+ ROM_LOAD( "271b.v3", 0x800000, 0x400000, CRC(ddbbb199) SHA1(0eea4b064bdb8daa03c354fe0a0aa27c4c665bda) )
+ ROM_LOAD( "271b.v4", 0xc00000, 0x400000, CRC(01b90c4f) SHA1(387164aa1995d8c11ed939b3afbc294d86d2e27f) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "271b.c1", 0x0000000, 0x800000, CRC(e42fc226) SHA1(1cd9364993e141facdcdd53ec2277df7b275d8a7) )
+ ROM_LOAD16_BYTE( "271b.c2", 0x0000001, 0x800000, CRC(1b5e3b58) SHA1(0eb254477a9479541291e43e415310852a0f0bed) )
+ ROM_LOAD16_BYTE( "271b.c3", 0x1000000, 0x800000, CRC(d334fdd9) SHA1(1efe30b4f56a55e25ab518cf6999de797b5e407c) )
+ ROM_LOAD16_BYTE( "271b.c4", 0x1000001, 0x800000, CRC(0d457699) SHA1(ec73d0c9fc7094d0ac6c0986a6e07cde25893e57) )
+ ROM_LOAD16_BYTE( "271b.c5", 0x2000000, 0x800000, CRC(8a91aae4) SHA1(802f4baacf801646be1ef686e105b2e867a6a5df) )
+ ROM_LOAD16_BYTE( "271b.c6", 0x2000001, 0x800000, CRC(9f8674b8) SHA1(65964f40b2227d020023fb436579927e65807dcd) )
+ ROM_LOAD16_BYTE( "271b.c7", 0x3000000, 0x800000, CRC(374ea523) SHA1(613827d72c6181f3e08353750c9af0c4dbad020b) )
+ ROM_LOAD16_BYTE( "271b.c8", 0x3000001, 0x800000, CRC(75211f4d) SHA1(d82f044e816ee539ff131d9c931200c818d34cd0) )
+ROM_END
+
+ROM_START( kof2k3s04 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "271tc.p1", 0x100000, 0x400000, CRC(0d1a1da9) SHA1(0ba0d11c3bb3c30bc95f9aae181769ea874da096) )
+ ROM_LOAD16_WORD_SWAP( "271hc04.p2", 0x500000, 0x200000, CRC(b71023d2) SHA1(a37059c1509c5547a16d32fcaa509db19120da4f) )
+ ROM_IGNORE( 0x100000 )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "271b.s1", CRC(482c48a5) SHA1(27e2f5295a9a838e112be28dafc111893a388a16) )
+
+ NEO_BIOS_AUDIO_128K( "271b.m1", CRC(3a4969ff) SHA1(2fc107a023a82053a8df63025829bcf12cee9610) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "271b.v1", 0x000000, 0x400000, CRC(d2b8aa5e) SHA1(498f0556c1de56822141f8043f1ce20444f4ed0a) )
+ ROM_LOAD( "271b.v2", 0x400000, 0x400000, CRC(71956ee2) SHA1(a890941e60db358cf45b58909f4719f4826f3bb1) )
+ ROM_LOAD( "271b.v3", 0x800000, 0x400000, CRC(ddbbb199) SHA1(0eea4b064bdb8daa03c354fe0a0aa27c4c665bda) )
+ ROM_LOAD( "271b.v4", 0xc00000, 0x400000, CRC(01b90c4f) SHA1(387164aa1995d8c11ed939b3afbc294d86d2e27f) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "271b.c1", 0x0000000, 0x800000, CRC(e42fc226) SHA1(1cd9364993e141facdcdd53ec2277df7b275d8a7) )
+ ROM_LOAD16_BYTE( "271b.c2", 0x0000001, 0x800000, CRC(1b5e3b58) SHA1(0eb254477a9479541291e43e415310852a0f0bed) )
+ ROM_LOAD16_BYTE( "271b.c3", 0x1000000, 0x800000, CRC(d334fdd9) SHA1(1efe30b4f56a55e25ab518cf6999de797b5e407c) )
+ ROM_LOAD16_BYTE( "271b.c4", 0x1000001, 0x800000, CRC(0d457699) SHA1(ec73d0c9fc7094d0ac6c0986a6e07cde25893e57) )
+ ROM_LOAD16_BYTE( "271b.c5", 0x2000000, 0x800000, CRC(8a91aae4) SHA1(802f4baacf801646be1ef686e105b2e867a6a5df) )
+ ROM_LOAD16_BYTE( "271b.c6", 0x2000001, 0x800000, CRC(9f8674b8) SHA1(65964f40b2227d020023fb436579927e65807dcd) )
+ ROM_LOAD16_BYTE( "271b.c7", 0x3000000, 0x800000, CRC(374ea523) SHA1(613827d72c6181f3e08353750c9af0c4dbad020b) )
+ ROM_LOAD16_BYTE( "271b.c8", 0x3000001, 0x800000, CRC(75211f4d) SHA1(d82f044e816ee539ff131d9c931200c818d34cd0) )
+ROM_END
+
+ROM_START( kof2k3s05 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "271hc05.p1", 0x100000, 0x400000, CRC(fdb9c7fa) SHA1(e2f6123b1ba47bd8b7627215bc9ab74f00208299) )
+ ROM_LOAD16_WORD_SWAP( "271hc04.p2", 0x500000, 0x200000, CRC(b71023d2) SHA1(a37059c1509c5547a16d32fcaa509db19120da4f) )
+ ROM_IGNORE( 0x100000 )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "271b.s1", CRC(482c48a5) SHA1(27e2f5295a9a838e112be28dafc111893a388a16) )
+
+ NEO_BIOS_AUDIO_128K( "271b.m1", CRC(3a4969ff) SHA1(2fc107a023a82053a8df63025829bcf12cee9610) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "271b.v1", 0x000000, 0x400000, CRC(d2b8aa5e) SHA1(498f0556c1de56822141f8043f1ce20444f4ed0a) )
+ ROM_LOAD( "271b.v2", 0x400000, 0x400000, CRC(71956ee2) SHA1(a890941e60db358cf45b58909f4719f4826f3bb1) )
+ ROM_LOAD( "271b.v3", 0x800000, 0x400000, CRC(ddbbb199) SHA1(0eea4b064bdb8daa03c354fe0a0aa27c4c665bda) )
+ ROM_LOAD( "271b.v4", 0xc00000, 0x400000, CRC(01b90c4f) SHA1(387164aa1995d8c11ed939b3afbc294d86d2e27f) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "271b.c1", 0x0000000, 0x800000, CRC(e42fc226) SHA1(1cd9364993e141facdcdd53ec2277df7b275d8a7) )
+ ROM_LOAD16_BYTE( "271b.c2", 0x0000001, 0x800000, CRC(1b5e3b58) SHA1(0eb254477a9479541291e43e415310852a0f0bed) )
+ ROM_LOAD16_BYTE( "271b.c3", 0x1000000, 0x800000, CRC(d334fdd9) SHA1(1efe30b4f56a55e25ab518cf6999de797b5e407c) )
+ ROM_LOAD16_BYTE( "271b.c4", 0x1000001, 0x800000, CRC(0d457699) SHA1(ec73d0c9fc7094d0ac6c0986a6e07cde25893e57) )
+ ROM_LOAD16_BYTE( "271b.c5", 0x2000000, 0x800000, CRC(8a91aae4) SHA1(802f4baacf801646be1ef686e105b2e867a6a5df) )
+ ROM_LOAD16_BYTE( "271b.c6", 0x2000001, 0x800000, CRC(9f8674b8) SHA1(65964f40b2227d020023fb436579927e65807dcd) )
+ ROM_LOAD16_BYTE( "271b.c7", 0x3000000, 0x800000, CRC(374ea523) SHA1(613827d72c6181f3e08353750c9af0c4dbad020b) )
+ ROM_LOAD16_BYTE( "271b.c8", 0x3000001, 0x800000, CRC(75211f4d) SHA1(d82f044e816ee539ff131d9c931200c818d34cd0) )
+ROM_END
+
+ROM_START( kof2k3s06 )
+ ROM_REGION( 0x700000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "271b.p1", 0x100000, 0x400000, CRC(92ed6ee3) SHA1(5e7e21eb40dfcc453ba73808760d5ddedd49c58a) )
+ ROM_LOAD16_WORD_SWAP( "271hc06.p2", 0x500000, 0x200000, CRC(d66504f8) SHA1(f913dea0c4fc6cf8f2308fdbaa6977d86a4ab3b5) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "271b.s1", CRC(482c48a5) SHA1(27e2f5295a9a838e112be28dafc111893a388a16) )
+
+ NEO_BIOS_AUDIO_128K( "271b.m1", CRC(3a4969ff) SHA1(2fc107a023a82053a8df63025829bcf12cee9610) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "271b.v1", 0x000000, 0x400000, CRC(d2b8aa5e) SHA1(498f0556c1de56822141f8043f1ce20444f4ed0a) )
+ ROM_LOAD( "271b.v2", 0x400000, 0x400000, CRC(71956ee2) SHA1(a890941e60db358cf45b58909f4719f4826f3bb1) )
+ ROM_LOAD( "271b.v3", 0x800000, 0x400000, CRC(ddbbb199) SHA1(0eea4b064bdb8daa03c354fe0a0aa27c4c665bda) )
+ ROM_LOAD( "271b.v4", 0xc00000, 0x400000, CRC(01b90c4f) SHA1(387164aa1995d8c11ed939b3afbc294d86d2e27f) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "271b.c1", 0x0000000, 0x800000, CRC(e42fc226) SHA1(1cd9364993e141facdcdd53ec2277df7b275d8a7) )
+ ROM_LOAD16_BYTE( "271b.c2", 0x0000001, 0x800000, CRC(1b5e3b58) SHA1(0eb254477a9479541291e43e415310852a0f0bed) )
+ ROM_LOAD16_BYTE( "271b.c3", 0x1000000, 0x800000, CRC(d334fdd9) SHA1(1efe30b4f56a55e25ab518cf6999de797b5e407c) )
+ ROM_LOAD16_BYTE( "271b.c4", 0x1000001, 0x800000, CRC(0d457699) SHA1(ec73d0c9fc7094d0ac6c0986a6e07cde25893e57) )
+ ROM_LOAD16_BYTE( "271b.c5", 0x2000000, 0x800000, CRC(8a91aae4) SHA1(802f4baacf801646be1ef686e105b2e867a6a5df) )
+ ROM_LOAD16_BYTE( "271b.c6", 0x2000001, 0x800000, CRC(9f8674b8) SHA1(65964f40b2227d020023fb436579927e65807dcd) )
+ ROM_LOAD16_BYTE( "271b.c7", 0x3000000, 0x800000, CRC(374ea523) SHA1(613827d72c6181f3e08353750c9af0c4dbad020b) )
+ ROM_LOAD16_BYTE( "271b.c8", 0x3000001, 0x800000, CRC(75211f4d) SHA1(d82f044e816ee539ff131d9c931200c818d34cd0) )
+ROM_END
+
+ROM_START( kof2k3s07 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "271hc07.p1", 0x100000, 0x400000, CRC(d1ba8e70) SHA1(f8f39f17079beb39f1c8df556792c1be301402d9) )
+ ROM_LOAD16_WORD_SWAP( "271hc07.p2", 0x500000, 0x200000, CRC(54b010a0) SHA1(ca48c9d0a430716b376e81371d2cc7b530e487b9) )
+ ROM_IGNORE( 0x100000 )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "271bl2.s1", CRC(c125df44) SHA1(9294a4da63fdbcd7dbac7a625d65c44884687eeb) )
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "271-m1c.m1", CRC(f5515629) SHA1(7516bf1b0207a3c8d41dc30c478f8d8b1f71304b) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "271-v1c.v1", 0x000000, 0x800000, CRC(ffa3f8c7) SHA1(7cf4a933973ca23b7f87c81151d8659e6ec4bd20) )
+ ROM_LOAD( "271-v2c.v2", 0x800000, 0x800000, CRC(5382c7d1) SHA1(1bf999705eda80ba1e7b0d6bdd010d9bfb18bd76) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "271-c1c.c1", 0x0000000, 0x800000, CRC(b1dc25d0) SHA1(50adc3c60d5b4b3abd10a49db2267306c6dbd772) )
+ ROM_LOAD16_BYTE( "271-c2c.c2", 0x0000001, 0x800000, CRC(d5362437) SHA1(66db36522dc09106388c707252df9fe1c88b4856) )
+ ROM_LOAD16_BYTE( "271-c3c.c3", 0x1000000, 0x800000, CRC(0a1fbeab) SHA1(9fe30d36ba98d00fda010832ff2f27783dd577c1) )
+ ROM_LOAD16_BYTE( "271-c4c.c4", 0x1000001, 0x800000, CRC(87b19a0c) SHA1(b72a8e7d9124ce859b5149bb4381ba481c161ea5) )
+ ROM_LOAD16_BYTE( "271-c5c.c5", 0x2000000, 0x800000, CRC(704ea371) SHA1(e75b80422f0d72eac826f8ffadf79efeccaab124) )
+ ROM_LOAD16_BYTE( "271-c6c.c6", 0x2000001, 0x800000, CRC(20a1164c) SHA1(c9843b37612a16fc95f6851793b1cfb5d49d811d) )
+ ROM_LOAD16_BYTE( "271-c7c.c7", 0x3000000, 0x800000, CRC(189aba7f) SHA1(7152195a57ad36b28290810fe87ed8c206262ba9) )
+ ROM_LOAD16_BYTE( "271-c8c.c8", 0x3000001, 0x800000, CRC(20ec4fdc) SHA1(deb5f7ec5a090e419b9d1a6a74877bee081198e2) )
+ROM_END
+
+GAME( 2003, kof2k3s01, kof2003, neogeo_noslot, neogeo, neogeo_hbmame, kof2003b, ROT0, "Hacks", "Kof2003 ( Description Of Unknown Origin 01 )", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k3s02, kof2003, neogeo_noslot, neogeo, neogeo_hbmame, kof2003b, ROT0, "Hacks", "Kof2003 ( Description Of Unknown Origin 02 )", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k3s03, kof2003, neogeo_noslot, neogeo, neogeo_hbmame, kof2003b, ROT0, "Hacks", "Kof2003 ( Description Of Unknown Origin 03 )", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k3s04, kof2003, neogeo_noslot, neogeo, neogeo_hbmame, kof2003b, ROT0, "Hacks", "Kof2003 ( Description Of Unknown Origin 04 )", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k3s05, kof2003, neogeo_noslot, neogeo, neogeo_hbmame, kof2003b, ROT0, "Hacks", "Kof2003 ( Description Of Unknown Origin 05 )", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k3s06, kof2003, neogeo_noslot, neogeo, neogeo_hbmame, kof2003b, ROT0, "Hacks", "Kof2003 ( Description Of Unknown Origin 06 )", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2k3s07, kof2003, neogeo_noslot, neogeo, neogeo_hbmame, kof2003b, ROT0, "Hacks", "Kof2003 ( Description Of Unknown Origin 07 )", MACHINE_SUPPORTS_SAVE )
+
diff --git a/src/hbmame/drivers/kof94.cpp b/src/hbmame/drivers/kof94.cpp
new file mode 100644
index 00000000000..b68b9ad8e44
--- /dev/null
+++ b/src/hbmame/drivers/kof94.cpp
@@ -0,0 +1,896 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+
+
+
+ROM_START( kof94b ) /* The King of Fighters '94 - Hack by Ydmis - (Can choose Rugal) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "055b.p1", 0x100000, 0x100000, CRC(c4c1b20a) SHA1(963befa89ea08104cae0e195f9ed6b153af67f9c) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "055-s1.s1", CRC(825976c1) SHA1(cb6a70bdd95d449d25196ca269b621c362db6743) )
+
+ NEO_BIOS_AUDIO_128K( "055-m1.m1", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "055-v1.v1", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) )
+ ROM_LOAD( "055-v2.v2", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) )
+ ROM_LOAD( "055-v3.v3", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "055-c1.c1", 0x000000, 0x200000, CRC(b96ef460) SHA1(e52f5303c17b50ce165c008be2837336369c110b) )
+ ROM_LOAD16_BYTE( "055-c2.c2", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) )
+ ROM_LOAD16_BYTE( "055-c3.c3", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) )
+ ROM_LOAD16_BYTE( "055-c4.c4", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) )
+ ROM_LOAD16_BYTE( "055-c5.c5", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) )
+ ROM_LOAD16_BYTE( "055-c6.c6", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) )
+ ROM_LOAD16_BYTE( "055-c7.c7", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) )
+ ROM_LOAD16_BYTE( "055-c8.c8", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) )
+ROM_END
+
+ROM_START( kof94bc )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "055bc.p1", 0x100000, 0x100000, CRC(67ea805b) SHA1(56575a538dc030ce081c4ec98ac3f8fd3e97ad59) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "055-s1.s1", CRC(825976c1) SHA1(cb6a70bdd95d449d25196ca269b621c362db6743) )
+
+ NEO_BIOS_AUDIO_128K( "055-m1.m1", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "055-v1.v1", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) )
+ ROM_LOAD( "055-v2.v2", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) )
+ ROM_LOAD( "055-v3.v3", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "055-c1.c1", 0x000000, 0x200000, CRC(b96ef460) SHA1(e52f5303c17b50ce165c008be2837336369c110b) )
+ ROM_LOAD16_BYTE( "055-c2.c2", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) )
+ ROM_LOAD16_BYTE( "055-c3.c3", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) )
+ ROM_LOAD16_BYTE( "055-c4.c4", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) )
+ ROM_LOAD16_BYTE( "055-c5.c5", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) )
+ ROM_LOAD16_BYTE( "055-c6.c6", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) )
+ ROM_LOAD16_BYTE( "055-c7.c7", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) )
+ ROM_LOAD16_BYTE( "055-c8.c8", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) )
+ROM_END
+
+ROM_START( kof94blk )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "055blk.p1", 0x100000, 0x100000, CRC(b1107150) SHA1(b85edff511eb7d04c3c4a1f83f522e187033a130) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "055-s1.s1", CRC(825976c1) SHA1(cb6a70bdd95d449d25196ca269b621c362db6743) )
+
+ NEO_BIOS_AUDIO_128K( "055-m1.m1", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "055-v1.v1", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) )
+ ROM_LOAD( "055-v2.v2", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) )
+ ROM_LOAD( "055-v3.v3", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "055-c1.c1", 0x000000, 0x200000, CRC(b96ef460) SHA1(e52f5303c17b50ce165c008be2837336369c110b) )
+ ROM_LOAD16_BYTE( "055-c2.c2", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) )
+ ROM_LOAD16_BYTE( "055-c3.c3", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) )
+ ROM_LOAD16_BYTE( "055-c4.c4", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) )
+ ROM_LOAD16_BYTE( "055-c5.c5", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) )
+ ROM_LOAD16_BYTE( "055-c6.c6", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) )
+ ROM_LOAD16_BYTE( "055-c7.c7", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) )
+ ROM_LOAD16_BYTE( "055-c8.c8", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) )
+ROM_END
+
+ROM_START( kof94br )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "055br.p1", 0x100000, 0x100000, CRC(0138a992) SHA1(48c857ed371de236861d172552e3b5bf38def776) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "055-s1.s1", CRC(825976c1) SHA1(cb6a70bdd95d449d25196ca269b621c362db6743) )
+
+ NEO_BIOS_AUDIO_128K( "055-m1.m1", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "055-v1.v1", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) )
+ ROM_LOAD( "055-v2.v2", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) )
+ ROM_LOAD( "055-v3.v3", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "055br.c1", 0x000000, 0x200000, CRC(6fb14154) SHA1(bdc0e1933b9e903a69a2303c2e0e4243d3e1c95e) )
+ ROM_LOAD16_BYTE( "055-c2.c2", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) )
+ ROM_LOAD16_BYTE( "055-c3.c3", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) )
+ ROM_LOAD16_BYTE( "055-c4.c4", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) )
+ ROM_LOAD16_BYTE( "055-c5.c5", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) )
+ ROM_LOAD16_BYTE( "055-c6.c6", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) )
+ ROM_LOAD16_BYTE( "055-c7.c7", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) )
+ ROM_LOAD16_BYTE( "055-c8.c8", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) )
+ROM_END
+
+ROM_START( kof94cg )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "055cg.p1", 0x100000, 0x100000, CRC(d96b311e) SHA1(3879c3794a1cd156b73cb25d8584ee2717d1cbb7) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "055-s1.s1", CRC(825976c1) SHA1(cb6a70bdd95d449d25196ca269b621c362db6743) )
+
+ NEO_BIOS_AUDIO_128K( "055-m1.m1", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "055-v1.v1", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) )
+ ROM_LOAD( "055-v2.v2", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) )
+ ROM_LOAD( "055-v3.v3", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "055-c1.c1", 0x000000, 0x200000, CRC(b96ef460) SHA1(e52f5303c17b50ce165c008be2837336369c110b) )
+ ROM_LOAD16_BYTE( "055-c2.c2", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) )
+ ROM_LOAD16_BYTE( "055-c3.c3", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) )
+ ROM_LOAD16_BYTE( "055-c4.c4", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) )
+ ROM_LOAD16_BYTE( "055-c5.c5", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) )
+ ROM_LOAD16_BYTE( "055-c6.c6", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) )
+ ROM_LOAD16_BYTE( "055-c7.c7", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) )
+ ROM_LOAD16_BYTE( "055-c8.c8", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) )
+ROM_END
+
+ROM_START( kof94cn ) // some chinese text on player select screen
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "055-p1.p1", 0x100000, 0x100000, CRC(f10a2042) SHA1(d08a3f3c28be4b1793de7d362456281329fe1828) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "055cn.s1", CRC(80eeeaf6) SHA1(cfeb8cce91798f80f022c490cc983b67310da454) )
+
+ NEO_BIOS_AUDIO_128K( "055-m1.m1", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "055-v1.v1", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) )
+ ROM_LOAD( "055-v2.v2", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) )
+ ROM_LOAD( "055-v3.v3", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "055-c1.c1", 0x000000, 0x200000, CRC(b96ef460) SHA1(e52f5303c17b50ce165c008be2837336369c110b) )
+ ROM_LOAD16_BYTE( "055-c2.c2", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) )
+ ROM_LOAD16_BYTE( "055-c3.c3", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) )
+ ROM_LOAD16_BYTE( "055-c4.c4", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) )
+ ROM_LOAD16_BYTE( "055-c5.c5", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) )
+ ROM_LOAD16_BYTE( "055-c6.c6", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) )
+ ROM_LOAD16_BYTE( "055-c7.c7", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) )
+ ROM_LOAD16_BYTE( "055-c8.c8", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) )
+ROM_END
+
+ROM_START( kof94cyk )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "055cyk.p1", 0x100000, 0x100000, CRC(c66acf73) SHA1(a0fd5281362b00fe6891a6313c85c21e6c2a5d91) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "055-s1.s1", CRC(825976c1) SHA1(cb6a70bdd95d449d25196ca269b621c362db6743) )
+
+ NEO_BIOS_AUDIO_128K( "055-m1.m1", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "055-v1.v1", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) )
+ ROM_LOAD( "055-v2.v2", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) )
+ ROM_LOAD( "055-v3.v3", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "055-c1.c1", 0x000000, 0x200000, CRC(b96ef460) SHA1(e52f5303c17b50ce165c008be2837336369c110b) )
+ ROM_LOAD16_BYTE( "055-c2.c2", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) )
+ ROM_LOAD16_BYTE( "055-c3.c3", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) )
+ ROM_LOAD16_BYTE( "055-c4.c4", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) )
+ ROM_LOAD16_BYTE( "055-c5.c5", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) )
+ ROM_LOAD16_BYTE( "055-c6.c6", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) )
+ ROM_LOAD16_BYTE( "055-c7.c7", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) )
+ ROM_LOAD16_BYTE( "055-c8.c8", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) )
+ROM_END
+
+ROM_START( kof94eh ) /* The King of Fighters '94 - Enhance by Ydmis - (Can choose Rugal - power hack ABC) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "055eh.p1", 0x100000, 0x100000, CRC(255487ea) SHA1(49e26566b52cd8588b5e34d1c9a5d6803d3e809e) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "055-s1.s1", CRC(825976c1) SHA1(cb6a70bdd95d449d25196ca269b621c362db6743) )
+
+ NEO_BIOS_AUDIO_128K( "055-m1.m1", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "055-v1.v1", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) )
+ ROM_LOAD( "055-v2.v2", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) )
+ ROM_LOAD( "055-v3.v3", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "055-c1.c1", 0x000000, 0x200000, CRC(b96ef460) SHA1(e52f5303c17b50ce165c008be2837336369c110b) )
+ ROM_LOAD16_BYTE( "055-c2.c2", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) )
+ ROM_LOAD16_BYTE( "055-c3.c3", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) )
+ ROM_LOAD16_BYTE( "055-c4.c4", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) )
+ ROM_LOAD16_BYTE( "055-c5.c5", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) )
+ ROM_LOAD16_BYTE( "055-c6.c6", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) )
+ ROM_LOAD16_BYTE( "055-c7.c7", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) )
+ ROM_LOAD16_BYTE( "055-c8.c8", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) )
+ROM_END
+
+ROM_START( kof94h )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ // rom missing
+ ROM_LOAD16_WORD_SWAP( "055h.p1", 0x100000, 0x100000, CRC(2b0bc82d) SHA1(131906f00ed3c5854e251518c3074b3c19cb23d5) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "055-s1.s1", CRC(825976c1) SHA1(cb6a70bdd95d449d25196ca269b621c362db6743) )
+
+ NEO_BIOS_AUDIO_128K( "055-m1.m1", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "055-v1.v1", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) )
+ ROM_LOAD( "055-v2.v2", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) )
+ ROM_LOAD( "055-v3.v3", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "055-c1.c1", 0x000000, 0x200000, CRC(b96ef460) SHA1(e52f5303c17b50ce165c008be2837336369c110b) )
+ ROM_LOAD16_BYTE( "055-c2.c2", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) )
+ ROM_LOAD16_BYTE( "055-c3.c3", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) )
+ ROM_LOAD16_BYTE( "055-c4.c4", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) )
+ ROM_LOAD16_BYTE( "055-c5.c5", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) )
+ ROM_LOAD16_BYTE( "055-c6.c6", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) )
+ ROM_LOAD16_BYTE( "055-c7.c7", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) )
+ ROM_LOAD16_BYTE( "055-c8.c8", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) )
+ROM_END
+
+ROM_START( kof94k )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "055k.p1", 0x100000, 0x100000, CRC(7dff8b81) SHA1(86198059a921cb97646e2e39bf842e7b291c83a2) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "055-s1.s1", CRC(825976c1) SHA1(cb6a70bdd95d449d25196ca269b621c362db6743) )
+
+ NEO_BIOS_AUDIO_128K( "055-m1.m1", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "055-v1.v1", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) )
+ ROM_LOAD( "055-v2.v2", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) )
+ ROM_LOAD( "055-v3.v3", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "055k.c1", 0x000000, 0x200000, CRC(fcf9ac7c) SHA1(3ff7d34264188764f411168ef0aa2ad6174c2289) )
+ ROM_LOAD16_BYTE( "055-c2.c2", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) )
+ ROM_LOAD16_BYTE( "055-c3.c3", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) )
+ ROM_LOAD16_BYTE( "055-c4.c4", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) )
+ ROM_LOAD16_BYTE( "055-c5.c5", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) )
+ ROM_LOAD16_BYTE( "055-c6.c6", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) )
+ ROM_LOAD16_BYTE( "055-c7.c7", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) )
+ ROM_LOAD16_BYTE( "055-c8.c8", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) )
+ROM_END
+
+ROM_START( kof94kh )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "055kh.p1", 0x100000, 0x100000, CRC(dbecb405) SHA1(1829ce3dfce5e7fff115a0a71588613b75fed879) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "055-s1.s1", CRC(825976c1) SHA1(cb6a70bdd95d449d25196ca269b621c362db6743) )
+
+ NEO_BIOS_AUDIO_128K( "055-m1.m1", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "055-v1.v1", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) )
+ ROM_LOAD( "055-v2.v2", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) )
+ ROM_LOAD( "055-v3.v3", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "055kh.c1", 0x000000, 0x200000, CRC(bf987727) SHA1(d77dcc0f83e80d9b55a62269e13cc6e29c59c8f1) )
+ ROM_LOAD16_BYTE( "055-c2.c2", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) )
+ ROM_LOAD16_BYTE( "055-c3.c3", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) )
+ ROM_LOAD16_BYTE( "055-c4.c4", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) )
+ ROM_LOAD16_BYTE( "055-c5.c5", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) )
+ ROM_LOAD16_BYTE( "055-c6.c6", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) )
+ ROM_LOAD16_BYTE( "055-c7.c7", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) )
+ ROM_LOAD16_BYTE( "055-c8.c8", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) )
+ROM_END
+
+ROM_START( kof94qaq )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "055qaq.p1", 0x100000, 0x100000, CRC(c3dbc23e) SHA1(91cfd1e95df87ce2cff213bc4a0c846231c3cebd) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "055-s1.s1", CRC(825976c1) SHA1(cb6a70bdd95d449d25196ca269b621c362db6743) )
+
+ NEO_BIOS_AUDIO_128K( "055-m1.m1", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "055-v1.v1", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) )
+ ROM_LOAD( "055-v2.v2", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) )
+ ROM_LOAD( "055-v3.v3", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "055-c1.c1", 0x000000, 0x200000, CRC(b96ef460) SHA1(e52f5303c17b50ce165c008be2837336369c110b) )
+ ROM_LOAD16_BYTE( "055-c2.c2", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) )
+ ROM_LOAD16_BYTE( "055-c3.c3", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) )
+ ROM_LOAD16_BYTE( "055-c4.c4", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) )
+ ROM_LOAD16_BYTE( "055-c5.c5", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) )
+ ROM_LOAD16_BYTE( "055-c6.c6", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) )
+ ROM_LOAD16_BYTE( "055-c7.c7", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) )
+ ROM_LOAD16_BYTE( "055-c8.c8", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) )
+ROM_END
+
+ROM_START( kof94ru ) /* The King of Fighters '94 - Remix Ultra by Jason/K3 - (Character move change ultra revision v1.0) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "055ru.p1", 0x100000, 0x100000, CRC(DA5FA694) SHA1(9E937556F821477F6538A0785DF377A2DEA2831A) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "055-s1.s1", CRC(825976c1) SHA1(cb6a70bdd95d449d25196ca269b621c362db6743) )
+
+ NEO_BIOS_AUDIO_128K( "055-m1.m1", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "055-v1.v1", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) )
+ ROM_LOAD( "055-v2.v2", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) )
+ ROM_LOAD( "055-v3.v3", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "055-c1.c1", 0x000000, 0x200000, CRC(b96ef460) SHA1(e52f5303c17b50ce165c008be2837336369c110b) )
+ ROM_LOAD16_BYTE( "055-c2.c2", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) )
+ ROM_LOAD16_BYTE( "055-c3.c3", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) )
+ ROM_LOAD16_BYTE( "055-c4.c4", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) )
+ ROM_LOAD16_BYTE( "055-c5.c5", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) )
+ ROM_LOAD16_BYTE( "055-c6.c6", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) )
+ ROM_LOAD16_BYTE( "055-c7.c7", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) )
+ ROM_LOAD16_BYTE( "055-c8.c8", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) )
+ROM_END
+
+ROM_START( kof94ruj ) // Remix Ultra 1.0 by JasonK3
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "055ruj.p1", 0x100000, 0x100000, CRC(29c916b2) SHA1(6057aea20398e7e4849cf5bac942a02e244893d2) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "055-s1.s1", CRC(825976c1) SHA1(cb6a70bdd95d449d25196ca269b621c362db6743) )
+
+ NEO_BIOS_AUDIO_128K( "055-m1.m1", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "055-v1.v1", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) )
+ ROM_LOAD( "055-v2.v2", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) )
+ ROM_LOAD( "055-v3.v3", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "055-c1.c1", 0x000000, 0x200000, CRC(b96ef460) SHA1(e52f5303c17b50ce165c008be2837336369c110b) )
+ ROM_LOAD16_BYTE( "055-c2.c2", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) )
+ ROM_LOAD16_BYTE( "055-c3.c3", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) )
+ ROM_LOAD16_BYTE( "055-c4.c4", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) )
+ ROM_LOAD16_BYTE( "055-c5.c5", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) )
+ ROM_LOAD16_BYTE( "055-c6.c6", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) )
+ ROM_LOAD16_BYTE( "055-c7.c7", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) )
+ ROM_LOAD16_BYTE( "055-c8.c8", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) )
+ROM_END
+
+ROM_START( kof94rz ) // Hack Boss Remixed by ZKW
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "055rz.p1", 0x100000, 0x100000, CRC(38410fdf) SHA1(e4053b41afd8c8934b7b2977df6d64d8b6338370) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "055rz.s1", CRC(286ab67d) SHA1(c414c1543d13097c49090e46c474c5dd3c524c9c) )
+
+ NEO_BIOS_AUDIO_128K( "055-m1.m1", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "055-v1.v1", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) )
+ ROM_LOAD( "055-v2.v2", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) )
+ ROM_LOAD( "055-v3.v3", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "055-c1.c1", 0x000000, 0x200000, CRC(b96ef460) SHA1(e52f5303c17b50ce165c008be2837336369c110b) )
+ ROM_LOAD16_BYTE( "055-c2.c2", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) )
+ ROM_LOAD16_BYTE( "055-c3.c3", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) )
+ ROM_LOAD16_BYTE( "055-c4.c4", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) )
+ ROM_LOAD16_BYTE( "055-c5.c5", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) )
+ ROM_LOAD16_BYTE( "055-c6.c6", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) )
+ ROM_LOAD16_BYTE( "055-c7.c7", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) )
+ ROM_LOAD16_BYTE( "055-c8.c8", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) )
+ROM_END
+
+ROM_START( kof94seh ) /* The King of Fighters '94 - Super Enhance Hack by Creamymami and Ydmis - (Can choose Rugal - ultra power hack ABC) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "055seh.p1", 0x100000, 0x100000, CRC(3b29945c) SHA1(bac514690165a07886fce08680a26d75487f896c) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "055-s1.s1", CRC(825976c1) SHA1(cb6a70bdd95d449d25196ca269b621c362db6743) )
+
+ NEO_BIOS_AUDIO_128K( "055-m1.m1", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "055-v1.v1", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) )
+ ROM_LOAD( "055-v2.v2", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) )
+ ROM_LOAD( "055-v3.v3", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "055-c1.c1", 0x000000, 0x200000, CRC(b96ef460) SHA1(e52f5303c17b50ce165c008be2837336369c110b) )
+ ROM_LOAD16_BYTE( "055-c2.c2", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) )
+ ROM_LOAD16_BYTE( "055-c3.c3", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) )
+ ROM_LOAD16_BYTE( "055-c4.c4", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) )
+ ROM_LOAD16_BYTE( "055-c5.c5", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) )
+ ROM_LOAD16_BYTE( "055-c6.c6", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) )
+ ROM_LOAD16_BYTE( "055-c7.c7", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) )
+ ROM_LOAD16_BYTE( "055-c8.c8", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) )
+ROM_END
+
+ROM_START( kof94sri ) // Super Remixed By IsmaMj
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "055sri.p1", 0x100000, 0x100000, CRC(c689c85b) SHA1(00661821128225e0d5264d4b1e09fbc32bbe7ed9) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "055-s1.s1", CRC(825976c1) SHA1(cb6a70bdd95d449d25196ca269b621c362db6743) )
+
+ NEO_BIOS_AUDIO_128K( "055-m1.m1", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "055-v1.v1", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) )
+ ROM_LOAD( "055-v2.v2", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) )
+ ROM_LOAD( "055-v3.v3", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "055-c1.c1", 0x000000, 0x200000, CRC(b96ef460) SHA1(e52f5303c17b50ce165c008be2837336369c110b) )
+ ROM_LOAD16_BYTE( "055-c2.c2", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) )
+ ROM_LOAD16_BYTE( "055-c3.c3", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) )
+ ROM_LOAD16_BYTE( "055-c4.c4", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) )
+ ROM_LOAD16_BYTE( "055-c5.c5", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) )
+ ROM_LOAD16_BYTE( "055-c6.c6", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) )
+ ROM_LOAD16_BYTE( "055-c7.c7", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) )
+ ROM_LOAD16_BYTE( "055-c8.c8", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) )
+ROM_END
+
+ROM_START( kof94y ) // Hack Boss By Ydmis
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "055y.p1", 0x100000, 0x100000, CRC(3757022c) SHA1(2da01b9304cf470d8718f70e37ee448f1b31c864) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "055-s1.s1", CRC(825976c1) SHA1(cb6a70bdd95d449d25196ca269b621c362db6743) )
+
+ NEO_BIOS_AUDIO_128K( "055-m1.m1", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "055-v1.v1", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) )
+ ROM_LOAD( "055-v2.v2", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) )
+ ROM_LOAD( "055-v3.v3", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "055-c1.c1", 0x000000, 0x200000, CRC(b96ef460) SHA1(e52f5303c17b50ce165c008be2837336369c110b) )
+ ROM_LOAD16_BYTE( "055-c2.c2", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) )
+ ROM_LOAD16_BYTE( "055-c3.c3", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) )
+ ROM_LOAD16_BYTE( "055-c4.c4", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) )
+ ROM_LOAD16_BYTE( "055-c5.c5", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) )
+ ROM_LOAD16_BYTE( "055-c6.c6", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) )
+ ROM_LOAD16_BYTE( "055-c7.c7", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) )
+ ROM_LOAD16_BYTE( "055-c8.c8", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) )
+ROM_END
+
+
+
+GAME( 1994, kof94b, kof94, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Kof'94 (Add Char)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, kof94bc, kof94, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'94 (Boss Colour Remix)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, kof94blk, kof94, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "IsmaMj", "Kof'94 (Boss Fix Black Xtreme 0.8)", MACHINE_SUPPORTS_SAVE )
+GAME( 2006, kof94br, kof94, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Neogeo BR team", "Kof'94 (Portuguese Edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, kof94cg, kof94, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'94 (Colour Patch)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, kof94cn, kof94, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'94 (Chinese Version)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, kof94cyk, kof94, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yumeji & Kawada7278", "Kof'94 (Hack Boss and Color)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, kof94eh, kof94, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Kof'94 (Add Char - Pow hack ABC)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, kof94h, kof94, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Jason", "Kof'94 Remix Ultra", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, kof94k, kof94, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'94 (Korean Edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, kof94kh, kof94, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'94 (Korean Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, kof94qaq, kof94, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Xuyongsheng90", "Kof'94 (Power Enhanced hack by Xuyongsheng90)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, kof94ru, kof94, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Jason/K3", "Kof'94 KOF REMIX ULTRA (v1.0)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, kof94ruj, kof94, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Jason/K3", "Kof'94 KOF REMIX ULTRA (1.0)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, kof94rz, kof94, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "ZKW", "Kof'94 (Hack Boss Remixed)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, kof94seh, kof94, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami and Ydmis", "Kof'94 (Add Char - Ultra pow hack ABC)", MACHINE_SUPPORTS_SAVE ) // Rugal
+GAME( 1994, kof94sri, kof94, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "IsmaMj", "Kof'94 KOF REMIX ULTRA (Super Remixed)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, kof94y, kof94, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Kof'94 (Hack Boss)", MACHINE_SUPPORTS_SAVE )
+
+//PSmame
+
+ROM_START( kof94s01 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "055hc01.p1", 0x100000, 0x100000, CRC(f4a0c0c3) SHA1(65cf6e30169957a0a3cc3cca4fd06ca4decb58cb) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "055-s1.s1", CRC(825976c1) SHA1(cb6a70bdd95d449d25196ca269b621c362db6743) )
+
+ NEO_BIOS_AUDIO_128K( "055-m1.m1", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "055-v1.v1", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) )
+ ROM_LOAD( "055-v2.v2", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) )
+ ROM_LOAD( "055-v3.v3", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "055-c1.c1", 0x000000, 0x200000, CRC(b96ef460) SHA1(e52f5303c17b50ce165c008be2837336369c110b) )
+ ROM_LOAD16_BYTE( "055-c2.c2", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) )
+ ROM_LOAD16_BYTE( "055-c3.c3", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) )
+ ROM_LOAD16_BYTE( "055-c4.c4", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) )
+ ROM_LOAD16_BYTE( "055-c5.c5", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) )
+ ROM_LOAD16_BYTE( "055-c6.c6", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) )
+ ROM_LOAD16_BYTE( "055-c7.c7", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) )
+ ROM_LOAD16_BYTE( "055-c8.c8", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) )
+ROM_END
+
+ROM_START( kof94s02 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "055hc02.p1", 0x100000, 0x100000, CRC(f94c50ad) SHA1(677cd24dbb2c1a78c16043e8c71b4765efdd3c19) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "055-s1.s1", CRC(825976c1) SHA1(cb6a70bdd95d449d25196ca269b621c362db6743) )
+
+ NEO_BIOS_AUDIO_128K( "055-m1.m1", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "055-v1.v1", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) )
+ ROM_LOAD( "055-v2.v2", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) )
+ ROM_LOAD( "055-v3.v3", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "055-c1.c1", 0x000000, 0x200000, CRC(b96ef460) SHA1(e52f5303c17b50ce165c008be2837336369c110b) )
+ ROM_LOAD16_BYTE( "055-c2.c2", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) )
+ ROM_LOAD16_BYTE( "055-c3.c3", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) )
+ ROM_LOAD16_BYTE( "055-c4.c4", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) )
+ ROM_LOAD16_BYTE( "055-c5.c5", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) )
+ ROM_LOAD16_BYTE( "055-c6.c6", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) )
+ ROM_LOAD16_BYTE( "055-c7.c7", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) )
+ ROM_LOAD16_BYTE( "055-c8.c8", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) )
+ROM_END
+
+ROM_START( kof94s03 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "055hc03.p1", 0x100000, 0x100000, CRC(2499b4c1) SHA1(0a28bd16a263610db13b62dff00055d62b7991b3) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "055-s1.s1", CRC(825976c1) SHA1(cb6a70bdd95d449d25196ca269b621c362db6743) )
+
+ NEO_BIOS_AUDIO_128K( "055-m1.m1", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "055-v1.v1", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) )
+ ROM_LOAD( "055-v2.v2", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) )
+ ROM_LOAD( "055-v3.v3", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "055-c1.c1", 0x000000, 0x200000, CRC(b96ef460) SHA1(e52f5303c17b50ce165c008be2837336369c110b) )
+ ROM_LOAD16_BYTE( "055-c2.c2", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) )
+ ROM_LOAD16_BYTE( "055-c3.c3", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) )
+ ROM_LOAD16_BYTE( "055-c4.c4", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) )
+ ROM_LOAD16_BYTE( "055-c5.c5", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) )
+ ROM_LOAD16_BYTE( "055-c6.c6", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) )
+ ROM_LOAD16_BYTE( "055-c7.c7", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) )
+ ROM_LOAD16_BYTE( "055-c8.c8", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) )
+ROM_END
+
+ROM_START( kof94s04 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "055hc04.p1", 0x100000, 0x100000, CRC(845aca57) SHA1(e7e0ab45483cb79feca8cd518f3f06b6b3026549) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "055-s1.s1", CRC(825976c1) SHA1(cb6a70bdd95d449d25196ca269b621c362db6743) )
+
+ NEO_BIOS_AUDIO_128K( "055-m1.m1", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "055-v1.v1", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) )
+ ROM_LOAD( "055-v2.v2", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) )
+ ROM_LOAD( "055-v3.v3", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "055-c1.c1", 0x000000, 0x200000, CRC(b96ef460) SHA1(e52f5303c17b50ce165c008be2837336369c110b) )
+ ROM_LOAD16_BYTE( "055-c2.c2", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) )
+ ROM_LOAD16_BYTE( "055-c3.c3", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) )
+ ROM_LOAD16_BYTE( "055-c4.c4", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) )
+ ROM_LOAD16_BYTE( "055-c5.c5", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) )
+ ROM_LOAD16_BYTE( "055-c6.c6", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) )
+ ROM_LOAD16_BYTE( "055-c7.c7", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) )
+ ROM_LOAD16_BYTE( "055-c8.c8", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) )
+ROM_END
+
+ROM_START( kof94s05 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "055hc05.p1", 0x100000, 0x100000, CRC(71143c90) SHA1(22fbcf2fb4a879c4c143b56bf1ac5df4f15f33f8) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "055-s1.s1", CRC(825976c1) SHA1(cb6a70bdd95d449d25196ca269b621c362db6743) )
+
+ NEO_BIOS_AUDIO_128K( "055-m1.m1", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "055-v1.v1", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) )
+ ROM_LOAD( "055-v2.v2", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) )
+ ROM_LOAD( "055-v3.v3", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "055-c1.c1", 0x000000, 0x200000, CRC(b96ef460) SHA1(e52f5303c17b50ce165c008be2837336369c110b) )
+ ROM_LOAD16_BYTE( "055-c2.c2", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) )
+ ROM_LOAD16_BYTE( "055-c3.c3", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) )
+ ROM_LOAD16_BYTE( "055-c4.c4", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) )
+ ROM_LOAD16_BYTE( "055-c5.c5", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) )
+ ROM_LOAD16_BYTE( "055-c6.c6", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) )
+ ROM_LOAD16_BYTE( "055-c7.c7", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) )
+ ROM_LOAD16_BYTE( "055-c8.c8", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) )
+ROM_END
+
+ROM_START( kof94s06 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "055hc06.p1", 0x100000, 0x100000, CRC(02023949) SHA1(058ae6a6446fbe6ab77acfd705a8fd89dbec234e) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "055-s1.s1", CRC(825976c1) SHA1(cb6a70bdd95d449d25196ca269b621c362db6743) )
+
+ NEO_BIOS_AUDIO_128K( "055-m1.m1", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "055-v1.v1", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) )
+ ROM_LOAD( "055-v2.v2", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) )
+ ROM_LOAD( "055-v3.v3", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "055-c1.c1", 0x000000, 0x200000, CRC(b96ef460) SHA1(e52f5303c17b50ce165c008be2837336369c110b) )
+ ROM_LOAD16_BYTE( "055-c2.c2", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) )
+ ROM_LOAD16_BYTE( "055-c3.c3", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) )
+ ROM_LOAD16_BYTE( "055-c4.c4", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) )
+ ROM_LOAD16_BYTE( "055-c5.c5", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) )
+ ROM_LOAD16_BYTE( "055-c6.c6", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) )
+ ROM_LOAD16_BYTE( "055-c7.c7", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) )
+ ROM_LOAD16_BYTE( "055-c8.c8", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) )
+ROM_END
+
+ROM_START( kof94s07 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "055hc07.p1", 0x100000, 0x100000, CRC(04da7fa8) SHA1(d10861cb3dbdf10ff529b3c01b1adceacb8253ea) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "055-s1.s1", CRC(825976c1) SHA1(cb6a70bdd95d449d25196ca269b621c362db6743) )
+
+ NEO_BIOS_AUDIO_128K( "055-m1.m1", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "055-v1.v1", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) )
+ ROM_LOAD( "055-v2.v2", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) )
+ ROM_LOAD( "055-v3.v3", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "055-c1.c1", 0x000000, 0x200000, CRC(b96ef460) SHA1(e52f5303c17b50ce165c008be2837336369c110b) )
+ ROM_LOAD16_BYTE( "055-c2.c2", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) )
+ ROM_LOAD16_BYTE( "055-c3.c3", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) )
+ ROM_LOAD16_BYTE( "055-c4.c4", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) )
+ ROM_LOAD16_BYTE( "055-c5.c5", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) )
+ ROM_LOAD16_BYTE( "055-c6.c6", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) )
+ ROM_LOAD16_BYTE( "055-c7.c7", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) )
+ ROM_LOAD16_BYTE( "055-c8.c8", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) )
+ROM_END
+
+ROM_START( kof94s08 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "055hc08.p1", 0x100000, 0x100000, CRC(4bdcea96) SHA1(912ad4b9628b6003db7c8f42bdf2f1c6f0fcb06e) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "055-s1.s1", CRC(825976c1) SHA1(cb6a70bdd95d449d25196ca269b621c362db6743) )
+
+ NEO_BIOS_AUDIO_128K( "055-m1.m1", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "055-v1.v1", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) )
+ ROM_LOAD( "055-v2.v2", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) )
+ ROM_LOAD( "055-v3.v3", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "055-c1.c1", 0x000000, 0x200000, CRC(b96ef460) SHA1(e52f5303c17b50ce165c008be2837336369c110b) )
+ ROM_LOAD16_BYTE( "055-c2.c2", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) )
+ ROM_LOAD16_BYTE( "055-c3.c3", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) )
+ ROM_LOAD16_BYTE( "055-c4.c4", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) )
+ ROM_LOAD16_BYTE( "055-c5.c5", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) )
+ ROM_LOAD16_BYTE( "055-c6.c6", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) )
+ ROM_LOAD16_BYTE( "055-c7.c7", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) )
+ ROM_LOAD16_BYTE( "055-c8.c8", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) )
+ROM_END
+
+ROM_START( kof94s09 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "055hc09.p1", 0x100000, 0x100000, CRC(c2f37033) SHA1(53ddabd2c2bec9467962150eff7e441b375133bb) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "055-s1.s1", CRC(825976c1) SHA1(cb6a70bdd95d449d25196ca269b621c362db6743) )
+
+ NEO_BIOS_AUDIO_128K( "055-m1.m1", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "055-v1.v1", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) )
+ ROM_LOAD( "055-v2.v2", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) )
+ ROM_LOAD( "055-v3.v3", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "055-c1.c1", 0x000000, 0x200000, CRC(b96ef460) SHA1(e52f5303c17b50ce165c008be2837336369c110b) )
+ ROM_LOAD16_BYTE( "055-c2.c2", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) )
+ ROM_LOAD16_BYTE( "055-c3.c3", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) )
+ ROM_LOAD16_BYTE( "055-c4.c4", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) )
+ ROM_LOAD16_BYTE( "055-c5.c5", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) )
+ ROM_LOAD16_BYTE( "055-c6.c6", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) )
+ ROM_LOAD16_BYTE( "055-c7.c7", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) )
+ ROM_LOAD16_BYTE( "055-c8.c8", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) )
+ROM_END
+
+ROM_START( kof94s10 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "055hc10.p1", 0x100000, 0x100000, CRC(6bd67989) SHA1(c4149361a9170deb9649c7a4807dc1835a0767d2) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "055-s1.s1", CRC(825976c1) SHA1(cb6a70bdd95d449d25196ca269b621c362db6743) )
+
+ NEO_BIOS_AUDIO_128K( "055-m1.m1", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "055-v1.v1", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) )
+ ROM_LOAD( "055-v2.v2", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) )
+ ROM_LOAD( "055-v3.v3", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "055-c1.c1", 0x000000, 0x200000, CRC(b96ef460) SHA1(e52f5303c17b50ce165c008be2837336369c110b) )
+ ROM_LOAD16_BYTE( "055-c2.c2", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) )
+ ROM_LOAD16_BYTE( "055-c3.c3", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) )
+ ROM_LOAD16_BYTE( "055-c4.c4", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) )
+ ROM_LOAD16_BYTE( "055-c5.c5", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) )
+ ROM_LOAD16_BYTE( "055-c6.c6", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) )
+ ROM_LOAD16_BYTE( "055-c7.c7", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) )
+ ROM_LOAD16_BYTE( "055-c8.c8", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) )
+ROM_END
+
+ROM_START( kof94s11 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "055hc11.p1", 0x100000, 0x100000, CRC(9209c264) SHA1(9b4dcd9cb2235654f9c6934b919d202638b2483b) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "055-s1.s1", CRC(825976c1) SHA1(cb6a70bdd95d449d25196ca269b621c362db6743) )
+
+ NEO_BIOS_AUDIO_128K( "055-m1.m1", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "055-v1.v1", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) )
+ ROM_LOAD( "055-v2.v2", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) )
+ ROM_LOAD( "055-v3.v3", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "055hc11.c1", 0x000000, 0x200000, CRC(33dd36f5) SHA1(48255106273cc3f4ff64f2a957344122261021a6) )
+ ROM_LOAD16_BYTE( "055-c2.c2", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) )
+ ROM_LOAD16_BYTE( "055-c3.c3", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) )
+ ROM_LOAD16_BYTE( "055-c4.c4", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) )
+ ROM_LOAD16_BYTE( "055-c5.c5", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) )
+ ROM_LOAD16_BYTE( "055-c6.c6", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) )
+ ROM_LOAD16_BYTE( "055-c7.c7", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) )
+ ROM_LOAD16_BYTE( "055-c8.c8", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) )
+ROM_END
+
+ROM_START( kof94s12 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "055hc12.p1", 0x100000, 0x100000, CRC(8716feeb) SHA1(cad0d953b47ef654ad1e694b0b06d49e67dc969e) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "055-s1.s1", CRC(825976c1) SHA1(cb6a70bdd95d449d25196ca269b621c362db6743) )
+
+ NEO_BIOS_AUDIO_128K( "055-m1.m1", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "055-v1.v1", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) )
+ ROM_LOAD( "055-v2.v2", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) )
+ ROM_LOAD( "055-v3.v3", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "055-c1.c1", 0x000000, 0x200000, CRC(b96ef460) SHA1(e52f5303c17b50ce165c008be2837336369c110b) )
+ ROM_LOAD16_BYTE( "055-c2.c2", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) )
+ ROM_LOAD16_BYTE( "055-c3.c3", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) )
+ ROM_LOAD16_BYTE( "055-c4.c4", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) )
+ ROM_LOAD16_BYTE( "055-c5.c5", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) )
+ ROM_LOAD16_BYTE( "055-c6.c6", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) )
+ ROM_LOAD16_BYTE( "055-c7.c7", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) )
+ ROM_LOAD16_BYTE( "055-c8.c8", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) )
+ROM_END
+
+ROM_START( kof94s13 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "055hc13.p1", 0x100000, 0x100000, CRC(6f3ee071) SHA1(842b6929664138010a9c4fb24c15f3c51bc66529) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "055-s1.s1", CRC(825976c1) SHA1(cb6a70bdd95d449d25196ca269b621c362db6743) )
+
+ NEO_BIOS_AUDIO_128K( "055-m1.m1", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "055-v1.v1", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) )
+ ROM_LOAD( "055-v2.v2", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) )
+ ROM_LOAD( "055-v3.v3", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "055-c1.c1", 0x000000, 0x200000, CRC(b96ef460) SHA1(e52f5303c17b50ce165c008be2837336369c110b) )
+ ROM_LOAD16_BYTE( "055-c2.c2", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) )
+ ROM_LOAD16_BYTE( "055-c3.c3", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) )
+ ROM_LOAD16_BYTE( "055-c4.c4", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) )
+ ROM_LOAD16_BYTE( "055-c5.c5", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) )
+ ROM_LOAD16_BYTE( "055-c6.c6", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) )
+ ROM_LOAD16_BYTE( "055-c7.c7", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) )
+ ROM_LOAD16_BYTE( "055-c8.c8", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) )
+ROM_END
+
+ROM_START( kof94s14 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "055hc14.p1", 0x100000, 0x100000, CRC(035abbce) SHA1(80a16639cf3ebefc6b0a90ffdabde762438d0339) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "055-s1.s1", CRC(825976c1) SHA1(cb6a70bdd95d449d25196ca269b621c362db6743) )
+
+ NEO_BIOS_AUDIO_128K( "055-m1.m1", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "055-v1.v1", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) )
+ ROM_LOAD( "055-v2.v2", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) )
+ ROM_LOAD( "055-v3.v3", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "055-c1.c1", 0x000000, 0x200000, CRC(b96ef460) SHA1(e52f5303c17b50ce165c008be2837336369c110b) )
+ ROM_LOAD16_BYTE( "055-c2.c2", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) )
+ ROM_LOAD16_BYTE( "055-c3.c3", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) )
+ ROM_LOAD16_BYTE( "055-c4.c4", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) )
+ ROM_LOAD16_BYTE( "055-c5.c5", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) )
+ ROM_LOAD16_BYTE( "055-c6.c6", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) )
+ ROM_LOAD16_BYTE( "055-c7.c7", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) )
+ ROM_LOAD16_BYTE( "055-c8.c8", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) )
+ROM_END
+
+ROM_START( kof94s15 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "055hc15.p1", 0x100000, 0x100000, CRC(ef7733f4) SHA1(e69e918458e021397bd399b9bb305c136ad84fc7) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "055-s1.s1", CRC(825976c1) SHA1(cb6a70bdd95d449d25196ca269b621c362db6743) )
+
+ NEO_BIOS_AUDIO_128K( "055-m1.m1", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "055-v1.v1", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) )
+ ROM_LOAD( "055-v2.v2", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) )
+ ROM_LOAD( "055-v3.v3", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "055-c1.c1", 0x000000, 0x200000, CRC(b96ef460) SHA1(e52f5303c17b50ce165c008be2837336369c110b) )
+ ROM_LOAD16_BYTE( "055-c2.c2", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) )
+ ROM_LOAD16_BYTE( "055-c3.c3", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) )
+ ROM_LOAD16_BYTE( "055-c4.c4", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) )
+ ROM_LOAD16_BYTE( "055-c5.c5", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) )
+ ROM_LOAD16_BYTE( "055-c6.c6", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) )
+ ROM_LOAD16_BYTE( "055-c7.c7", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) )
+ ROM_LOAD16_BYTE( "055-c8.c8", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) )
+ROM_END
+
+ROM_START( kof94s16 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "055hc16.p1", 0x100000, 0x100000, CRC(029c9064) SHA1(2711fb318683c536a126fb466fb555dc5bafe89b) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "055-s1.s1", CRC(825976c1) SHA1(cb6a70bdd95d449d25196ca269b621c362db6743) )
+
+ NEO_BIOS_AUDIO_128K( "055-m1.m1", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "055-v1.v1", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) )
+ ROM_LOAD( "055-v2.v2", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) )
+ ROM_LOAD( "055-v3.v3", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "055-c1.c1", 0x000000, 0x200000, CRC(b96ef460) SHA1(e52f5303c17b50ce165c008be2837336369c110b) )
+ ROM_LOAD16_BYTE( "055-c2.c2", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) )
+ ROM_LOAD16_BYTE( "055-c3.c3", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) )
+ ROM_LOAD16_BYTE( "055-c4.c4", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) )
+ ROM_LOAD16_BYTE( "055-c5.c5", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) )
+ ROM_LOAD16_BYTE( "055-c6.c6", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) )
+ ROM_LOAD16_BYTE( "055-c7.c7", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) )
+ ROM_LOAD16_BYTE( "055-c8.c8", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) )
+ROM_END
+
+GAME( 2016, kof94s01, kof94, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'94 (Description Of Unknown Origin 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof94s02, kof94, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'94 (Power Maxs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof94s03, kof94, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'94 (Description Of Unknown Origin 02)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof94s04, kof94, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'94 (Color Fix)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof94s05, kof94, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'94 (Description Of Unknown Origin 03)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof94s06, kof94, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'94 (Description Of Unknown Origin 04)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof94s07, kof94, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'94 (Description Of Unknown Origin 05)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof94s08, kof94, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'94 (Description Of Unknown Origin 06)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof94s09, kof94, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'94 (Description Of Unknown Origin 07)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof94s10, kof94, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'94 (Description Of Unknown Origin 08)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof94s11, kof94, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'94 (Description Of Unknown Origin 09)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof94s12, kof94, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'94 (Description Of Unknown Origin 10)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof94s13, kof94, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'94 (Description Of Unknown Origin 11)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof94s14, kof94, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'94 (Description Of Unknown Origin 12)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof94s15, kof94, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'94 (Power Maxs Alternative Set)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof94s16, kof94, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'94 (Description Of Unknown Origin 13)", MACHINE_SUPPORTS_SAVE )
+
diff --git a/src/hbmame/drivers/kof95.cpp b/src/hbmame/drivers/kof95.cpp
new file mode 100644
index 00000000000..da0687c8e9a
--- /dev/null
+++ b/src/hbmame/drivers/kof95.cpp
@@ -0,0 +1,894 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+// The King of Fighters '95
+
+
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, kof95sp ) // thx FBA
+{
+ DRIVER_INIT_CALL(neogeo);
+ uint32_t i;
+ uint16_t *rom = (uint16_t *)memregion("maincpu")->base();
+ for (i = 0; i < 0x100000/2; i++)
+ {
+ if (rom[i] == 0x4e7d) rom[i] = 0x4e71;
+ if (rom[i] == 0x4e7c) rom[i] = 0x4e75;
+ }
+ for (i = 0x200000/2; i < 0x220000/2; i++)
+ {
+ if (rom[i] == 0x4e7d) rom[i] = 0x4e71;
+ if (rom[i] == 0x4e7c) rom[i] = 0x4e75;
+ }
+ rom[0x1f3a8] = 0x2b7c; // 4ef9
+ rom[0x1f3a9] = 0x0003; // 0090
+ rom[0x1f3aa] = 0xe7fa; // 16be
+}
+
+
+
+ROM_START( kof95b ) /* The King of Fighters '95 - Hack by UNKNOWN - (Can choose Kusanagi and Rugal) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "084b.p1", 0x100000, 0x100000, CRC(64d9aa39) SHA1(2f1f1adf33e4944bd4d1ae913bb48c73a97d6ea2) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "084-s1.s1", CRC(de716f8a) SHA1(f7386454a943ed5caf625f67ee1d0197b1c6fa13) )
+
+ NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) )
+
+ ROM_REGION( 0x900000, "ymsnd", 0 )
+ ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) )
+ ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) )
+ ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "084-c1.c1", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) )
+ ROM_LOAD16_BYTE( "084-c2.c2", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) )
+ ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) )
+ ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) )
+ ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) )
+ ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) )
+ ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) )
+ ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) )
+ROM_END
+
+ROM_START( kof95bln ) // Boss - Like NeogeoCD Version (Eddids hack)
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "084bln.p1", 0x100000, 0x100000, CRC(66f5db66) SHA1(742c8e1d8f6135004bd025ecccc0c61e14368d54) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "084-s1.s1", CRC(de716f8a) SHA1(f7386454a943ed5caf625f67ee1d0197b1c6fa13) )
+
+ NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) )
+
+ ROM_REGION( 0x900000, "ymsnd", 0 )
+ ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) )
+ ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) )
+ ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "084-c1.c1", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) )
+ ROM_LOAD16_BYTE( "084-c2.c2", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) )
+ ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) )
+ ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) )
+ ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) )
+ ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) )
+ ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) )
+ ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) )
+ROM_END
+
+ROM_START( kof95brz ) // Boss Remixed by ZKW
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "084brz.p1",0x100000, 0x100000, CRC(754261d7) SHA1(195d10c0748b1d4607e6ca2297c59893e978fc58) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "084brz.s1", CRC(4b7e9b31) SHA1(32d29be92881879ef5ce6ad74dc8640e6f70346e) )
+
+ NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) )
+
+ ROM_REGION( 0x900000, "ymsnd", 0 )
+ ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) )
+ ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) )
+ ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "084-c1.c1", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) )
+ ROM_LOAD16_BYTE( "084-c2.c2", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) )
+ ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) )
+ ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) )
+ ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) )
+ ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) )
+ ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) )
+ ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) )
+ROM_END
+
+ROM_START( kof95ce ) // Color Edit
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "084ce.p1",0x100000, 0x100000, CRC(86ffcab0) SHA1(124211a9a85f46cd14eb0b70783147ea9a216a24) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "084brz.s1", CRC(4b7e9b31) SHA1(32d29be92881879ef5ce6ad74dc8640e6f70346e) )
+
+ NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) )
+
+ ROM_REGION( 0x900000, "ymsnd", 0 )
+ ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) )
+ ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) )
+ ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "084-c1.c1", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) )
+ ROM_LOAD16_BYTE( "084-c2.c2", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) )
+ ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) )
+ ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) )
+ ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) )
+ ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) )
+ ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) )
+ ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) )
+ROM_END
+
+ROM_START( kof95d )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "084d.p1", 0x000000, 0x200000, CRC(467a442f) SHA1(d58a5a0b0ac253caf1186ee6a688b16154bf145d) )
+
+ NEO_SFIX_128K( "084-s1.s1", CRC(de716f8a) SHA1(f7386454a943ed5caf625f67ee1d0197b1c6fa13) )
+
+ NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) )
+
+ ROM_REGION( 0x900000, "ymsnd", 0 )
+ ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) )
+ ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) )
+ ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "084-c1.c1", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) )
+ ROM_LOAD16_BYTE( "084-c2.c2", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) )
+ ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) )
+ ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) )
+ ROM_LOAD16_BYTE( "084d.c5", 0x1000000, 0x400000, CRC(fd45472a) SHA1(e2d370bf629390e54c6c124570970ae7e568eee7) )
+ ROM_LOAD16_BYTE( "084d.c6", 0x1000001, 0x400000, CRC(5ab5ea75) SHA1(f68ce2f621e6b6c94080cad00e84e8b42d1d68a9) )
+ ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) )
+ ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) )
+ROM_END
+
+ROM_START( kof95eh ) /* The King of Fighters '95 - Enhance by Ydmis - (Can choose Kusanagi and Rugal - power hack ABC) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "084eh.p1", 0x100000, 0x100000, CRC(fe421168) SHA1(2970b26c851d486493eb5fd127d1ed5e42578816) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "084-s1.s1", CRC(de716f8a) SHA1(f7386454a943ed5caf625f67ee1d0197b1c6fa13) )
+
+ NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) )
+
+ ROM_REGION( 0x900000, "ymsnd", 0 )
+ ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) )
+ ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) )
+ ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "084-c1.c1", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) )
+ ROM_LOAD16_BYTE( "084-c2.c2", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) )
+ ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) )
+ ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) )
+ ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) )
+ ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) )
+ ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) )
+ ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) )
+ROM_END
+
+ROM_START( kof95hp ) /* The King of Fighters '95 - Hack by HackPlus - (Can choose Kusanagi and Rugal) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "084hp.p1", 0x100000, 0x100000, CRC(865642a4) SHA1(726d918b1f4a8e9b7dccd57944979d57448e9f3e) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "084-s1.s1", CRC(de716f8a) SHA1(f7386454a943ed5caf625f67ee1d0197b1c6fa13) )
+
+ NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) )
+
+ ROM_REGION( 0x900000, "ymsnd", 0 )
+ ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) )
+ ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) )
+ ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "084-c1.c1", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) )
+ ROM_LOAD16_BYTE( "084-c2.c2", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) )
+ ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) )
+ ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) )
+ ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) )
+ ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) )
+ ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) )
+ ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) )
+ROM_END
+
+ROM_START( kof95k ) // can't see any difference
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "084k.p1", 0x100000, 0x100000, CRC(a974521b) SHA1(053744af529dcebda83964efdf0bacad536971da) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "084k.s1", CRC(0d07a5ab) SHA1(d5426bb91fe31cbb1633d2ca90479869c8d2210d) )
+
+ NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) )
+
+ ROM_REGION( 0x900000, "ymsnd", 0 )
+ ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) )
+ ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) )
+ ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "084k.c1", 0x0000000, 0x400000, CRC(4bb4eb90) SHA1(b14ed655272a13cc189bc6bc3a5f327c55e2182b) )
+ ROM_LOAD16_BYTE( "084k.c2", 0x0000001, 0x400000, CRC(7e94c968) SHA1(e188e6c714ec7600f1275b01c56c8e836fc00a05) )
+ ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) )
+ ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) )
+ ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) )
+ ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) )
+ ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) )
+ ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) )
+ROM_END
+
+ROM_START( kof95neo )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "084neo.p1", 0x000000, 0x200000, CRC(77ae1281) SHA1(bbd8105a2ea0e1b9f42cbb2c6760a05dc37d4e67) )
+
+ NEO_SFIX_128K( "084-s1.s1", CRC(de716f8a) SHA1(f7386454a943ed5caf625f67ee1d0197b1c6fa13) )
+
+ NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) )
+
+ ROM_REGION( 0x900000, "ymsnd", 0 )
+ ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) )
+ ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) )
+ ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "084-c1.c1", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) )
+ ROM_LOAD16_BYTE( "084-c2.c2", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) )
+ ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) )
+ ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) )
+ ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) )
+ ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) )
+ ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) )
+ ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) )
+ROM_END
+
+ROM_START( kof95pjc ) /* The King of Fighters '95 - Colour fix by TcwLee - (Character colour change - can choose Kusanagi and Rugal) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "084pjc.p1", 0x100000, 0x100000, CRC(da14c25e) SHA1(03309a228783864bbb3cb70295c874812e63e959) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "084-s1.s1", CRC(de716f8a) SHA1(f7386454a943ed5caf625f67ee1d0197b1c6fa13) )
+
+ NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) )
+
+ ROM_REGION( 0x900000, "ymsnd", 0 )
+ ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) )
+ ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) )
+ ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "084-c1.c1", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) )
+ ROM_LOAD16_BYTE( "084-c2.c2", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) )
+ ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) )
+ ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) )
+ ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) )
+ ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) )
+ ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) )
+ ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) )
+ROM_END
+
+ROM_START( kof95ru ) /* The King of Fighters '95 - Remix Ultra by Jason/K3 - (Character move change ultra revision v1.0) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "084ru.p1", 0x100000, 0x100000, CRC(08492B09) SHA1(25AF69066E96958B25CCECE77013945E640F7B83) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "084-s1.s1", CRC(de716f8a) SHA1(f7386454a943ed5caf625f67ee1d0197b1c6fa13) )
+
+ NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) )
+
+ ROM_REGION( 0x900000, "ymsnd", 0 )
+ ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) )
+ ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) )
+ ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "084-c1.c1", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) )
+ ROM_LOAD16_BYTE( "084-c2.c2", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) )
+ ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) )
+ ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) )
+ ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) )
+ ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) )
+ ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) )
+ ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) )
+ROM_END
+
+ROM_START( kof95seh ) /* The King of Fighters '95 - Super Enhance Hack by Creamymami and Ydmis - (Can choose Kusanagi and Rugal - ultra power hack ABC) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "084seh.p1", 0x100000, 0x100000, CRC(7b39effe) SHA1(2d19defbb01f74d46d8d303705d6ff8b48c6391e) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "084-s1.s1", CRC(de716f8a) SHA1(f7386454a943ed5caf625f67ee1d0197b1c6fa13) )
+
+ NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) )
+
+ ROM_REGION( 0x900000, "ymsnd", 0 )
+ ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) )
+ ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) )
+ ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "084-c1.c1", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) )
+ ROM_LOAD16_BYTE( "084-c2.c2", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) )
+ ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) )
+ ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) )
+ ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) )
+ ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) )
+ ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) )
+ ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) )
+ROM_END
+
+ROM_START( kof95sp )
+ ROM_REGION( 0x220000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "084sp.p1",0x000000, 0x100000, CRC(8bcca012) SHA1(1174d613c24ef4bb284a6c3b5a756db812e6c356) )
+ ROM_LOAD16_WORD_SWAP( "084sp.p2",0x100000, 0x100000, CRC(5cb1af9e) SHA1(e4bea729569e7c1897182787d835188fdc6c2ef0) )
+ ROM_LOAD16_WORD_SWAP( "084sp.p3",0x200000, 0x020000, CRC(030e71cb) SHA1(387ee0e27c48c782b5b3bb43033ab7884b71bf24) )
+
+ NEO_SFIX_128K( "084sp.s1", CRC(83cbae60) SHA1(9e529c8811fa69a201e103c62e723427d578098b) )
+
+ NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) )
+
+ ROM_REGION( 0x900000, "ymsnd", 0 )
+ ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) )
+ ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) )
+ ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "084-c1.c1", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) )
+ ROM_LOAD16_BYTE( "084-c2.c2", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) )
+ ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) )
+ ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) )
+ ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) )
+ ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) )
+ ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) )
+ ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) )
+ROM_END
+
+ROM_START( kof95sp2 )
+ ROM_REGION( 0x220000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "084sp2.p1",0x000000, 0x100000, CRC(1dea5b42) SHA1(e7539db7a264f43956b27bce2053f66b772552bb) )
+ ROM_LOAD16_WORD_SWAP( "084sp.p2", 0x100000, 0x100000, CRC(5cb1af9e) SHA1(e4bea729569e7c1897182787d835188fdc6c2ef0) )
+ ROM_LOAD16_WORD_SWAP( "084sp2.p3",0x200000, 0x020000, CRC(46db6f4a) SHA1(482fe3d8ddc9f479f331edcb1fff4e3916fbb302) )
+
+ NEO_SFIX_128K( "084sp.s1", CRC(83cbae60) SHA1(9e529c8811fa69a201e103c62e723427d578098b) )
+
+ NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) )
+
+ ROM_REGION( 0x900000, "ymsnd", 0 )
+ ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) )
+ ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) )
+ ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "084-c1.c1", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) )
+ ROM_LOAD16_BYTE( "084-c2.c2", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) )
+ ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) )
+ ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) )
+ ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) )
+ ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) )
+ ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) )
+ ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) )
+ROM_END
+
+ROM_START( kof95xg )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "084xg.p1", 0x100000, 0x100000, CRC(2b54003a) SHA1(9def4100b72c50a8c9138f0ac7985bae85eae198) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "084-s1.s1", CRC(de716f8a) SHA1(f7386454a943ed5caf625f67ee1d0197b1c6fa13) )
+
+ NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) )
+
+ ROM_REGION( 0x900000, "ymsnd", 0 )
+ ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) )
+ ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) )
+ ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "084-c1.c1", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) )
+ ROM_LOAD16_BYTE( "084-c2.c2", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) )
+ ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) )
+ ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) )
+ ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) )
+ ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) )
+ ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) )
+ ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) )
+ROM_END
+
+ROM_START( kof95y ) /* The King of Fighters '95 - Hack by Ydmis - (Can choose Kusanagi and Rugal) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "084y.p1", 0x100000, 0x100000, CRC(c838b32b) SHA1(7fa1a21f4e3b975989eaa86cad4679bad579908d) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "084-s1.s1", CRC(de716f8a) SHA1(f7386454a943ed5caf625f67ee1d0197b1c6fa13) )
+
+ NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) )
+
+ ROM_REGION( 0x900000, "ymsnd", 0 )
+ ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) )
+ ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) )
+ ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "084-c1.c1", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) )
+ ROM_LOAD16_BYTE( "084-c2.c2", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) )
+ ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) )
+ ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) )
+ ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) )
+ ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) )
+ ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) )
+ ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) )
+ROM_END
+
+
+
+GAME( 1995, kof95b, kof95, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'95 (Add Char set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, kof95bln, kof95, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Eddids", "Kof'95 (Boss - Like NeogeoCD Version)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, kof95brz, kof95, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "ZKW", "Kof'95 (Boss Remixed)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, kof95ce, kof95, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'95 (Colour Edit)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, kof95d, kof95, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'95 (unknown d)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, kof95eh, kof95, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Kof'95 (Add Char - Pow hack ABC)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, kof95hp, kof95, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "HackPlus", "Kof'95 (Add Char set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, kof95k, kof95, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'95 (Korean Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, kof95neo, kof95, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'95 (Boss Like NGCD v1.1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, kof95pjc, kof95, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "TcwLee", "Kof'95 (Add Char - Char color changed)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, kof95ru, kof95, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Jason/K3", "Kof'95 KOF REMIX PRO (Diff Moves ultra rev v1.0)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, kof95seh, kof95, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami and Ydmis", "Kof'95 (Add Char - Ultra pow hack ABC)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, kof95sp, kof95, samsho2sp, neogeo, neogeo_hbmame, kof95sp, ROT0, "GSC2007", "Kof'95 (Special v1.0.0627)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, kof95sp2, kof95, samsho2sp, neogeo, neogeo_hbmame, kof95sp, ROT0, "GSC2007", "Kof'95 (Special v1.0.0613)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, kof95xg, kof95, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "PPX Hack Team", "Kof'95 (Boss)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, kof95y, kof95, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Kof'95 (Add Char set 1)", MACHINE_SUPPORTS_SAVE )
+
+
+//PSmame
+
+ROM_START( kof95s01 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "084hc01.p1", 0x100000, 0x100000, CRC(3a3b94b6) SHA1(8f45df019d0389c8531359adaf1add5d25acef38) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "084-s1.s1", CRC(de716f8a) SHA1(f7386454a943ed5caf625f67ee1d0197b1c6fa13) )
+
+ NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) )
+
+ ROM_REGION( 0x900000, "ymsnd", 0 )
+ ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) )
+ ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) )
+ ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "084-c1.c1", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) )
+ ROM_LOAD16_BYTE( "084-c2.c2", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) )
+ ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) )
+ ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) )
+ ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) )
+ ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) )
+ ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) )
+ ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) )
+ROM_END
+
+ROM_START( kof95s02 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "084hc02.p1", 0x100000, 0x100000, CRC(f6a92031) SHA1(c39323f600fd2ec1071a6cfc771adcf1854e3bd5) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "084-s1.s1", CRC(de716f8a) SHA1(f7386454a943ed5caf625f67ee1d0197b1c6fa13) )
+
+ NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) )
+
+ ROM_REGION( 0x900000, "ymsnd", 0 )
+ ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) )
+ ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) )
+ ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "084-c1.c1", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) )
+ ROM_LOAD16_BYTE( "084-c2.c2", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) )
+ ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) )
+ ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) )
+ ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) )
+ ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) )
+ ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) )
+ ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) )
+ROM_END
+
+ROM_START( kof95s03 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "084hc03.p1", 0x100000, 0x100000, CRC(daa532e8) SHA1(f716472d417074b6493cda68b5e084fdc0906423) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "084-s1.s1", CRC(de716f8a) SHA1(f7386454a943ed5caf625f67ee1d0197b1c6fa13) )
+
+ NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) )
+
+ ROM_REGION( 0x900000, "ymsnd", 0 )
+ ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) )
+ ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) )
+ ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "084-c1.c1", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) )
+ ROM_LOAD16_BYTE( "084-c2.c2", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) )
+ ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) )
+ ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) )
+ ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) )
+ ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) )
+ ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) )
+ ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) )
+ROM_END
+
+ROM_START( kof95s04 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "084hc04.p1", 0x100000, 0x100000, CRC(cc17014e) SHA1(e4793418dba7bbc9fe598cb577116eeaade7598d) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "084-s1.s1", CRC(de716f8a) SHA1(f7386454a943ed5caf625f67ee1d0197b1c6fa13) )
+
+ NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) )
+
+ ROM_REGION( 0x900000, "ymsnd", 0 )
+ ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) )
+ ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) )
+ ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "084-c1.c1", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) )
+ ROM_LOAD16_BYTE( "084-c2.c2", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) )
+ ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) )
+ ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) )
+ ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) )
+ ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) )
+ ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) )
+ ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) )
+ROM_END
+
+ROM_START( kof95s05 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "084hc05.p1", 0x100000, 0x100000, CRC(02164f6f) SHA1(74e507b22a3c4b9bebdfe50dd688ce8df4faaf85) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "084-s1.s1", CRC(de716f8a) SHA1(f7386454a943ed5caf625f67ee1d0197b1c6fa13) )
+
+ NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) )
+
+ ROM_REGION( 0x900000, "ymsnd", 0 )
+ ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) )
+ ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) )
+ ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "084-c1.c1", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) )
+ ROM_LOAD16_BYTE( "084-c2.c2", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) )
+ ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) )
+ ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) )
+ ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) )
+ ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) )
+ ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) )
+ ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) )
+ROM_END
+
+ROM_START( kof95s06 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "084hc06.p1", 0x100000, 0x100000, CRC(0724cd3b) SHA1(4eef56cd49ce3749c0d75d5e80702bdb3b13741c) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "084-s1.s1", CRC(de716f8a) SHA1(f7386454a943ed5caf625f67ee1d0197b1c6fa13) )
+
+ NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) )
+
+ ROM_REGION( 0x900000, "ymsnd", 0 )
+ ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) )
+ ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) )
+ ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "084-c1.c1", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) )
+ ROM_LOAD16_BYTE( "084-c2.c2", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) )
+ ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) )
+ ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) )
+ ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) )
+ ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) )
+ ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) )
+ ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) )
+ROM_END
+
+ROM_START( kof95s07 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "084hc07.p1", 0x100000, 0x100000, CRC(8bf4e563) SHA1(f55f7355875dc9be17272c2271027223a25fec9c) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "084-s1.s1", CRC(de716f8a) SHA1(f7386454a943ed5caf625f67ee1d0197b1c6fa13) )
+
+ NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) )
+
+ ROM_REGION( 0x900000, "ymsnd", 0 )
+ ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) )
+ ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) )
+ ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "084hc07.c1", 0x0000000, 0x400000, CRC(70eed68d) SHA1(b0368d8a78a62ba925fe77642225f42bf56b8e24) )
+ ROM_LOAD16_BYTE( "084hc07.c2", 0x0000001, 0x400000, CRC(0e32121f) SHA1(d04012f12bade32d6e5cb0e8fbfca18b30fb26f9) )
+ ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) )
+ ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) )
+ ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) )
+ ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) )
+ ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) )
+ ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) )
+ROM_END
+
+ROM_START( kof95s08 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "084hc08.p1", 0x100000, 0x100000, CRC(c91713c9) SHA1(d58939b806f18efe837d70b01278f1dd55ec89cc) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "084-s1.s1", CRC(de716f8a) SHA1(f7386454a943ed5caf625f67ee1d0197b1c6fa13) )
+
+ NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) )
+
+ ROM_REGION( 0x900000, "ymsnd", 0 )
+ ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) )
+ ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) )
+ ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "084-c1.c1", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) )
+ ROM_LOAD16_BYTE( "084-c2.c2", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) )
+ ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) )
+ ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) )
+ ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) )
+ ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) )
+ ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) )
+ ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) )
+ROM_END
+
+ROM_START( kof95s09 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "084hc09.p1", 0x100000, 0x100000, CRC(27243e65) SHA1(aa09c2d99339a0c621e2e98dc22fb6cb39498e23) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "084-s1.s1", CRC(de716f8a) SHA1(f7386454a943ed5caf625f67ee1d0197b1c6fa13) )
+
+ NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) )
+
+ ROM_REGION( 0x900000, "ymsnd", 0 )
+ ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) )
+ ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) )
+ ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "084-c1.c1", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) )
+ ROM_LOAD16_BYTE( "084-c2.c2", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) )
+ ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) )
+ ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) )
+ ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) )
+ ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) )
+ ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) )
+ ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) )
+ROM_END
+
+ROM_START( kof95s10 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "084hc10.p1", 0x100000, 0x100000, CRC(18a87211) SHA1(8589814838b8547c97dd69684a979fdc70cc0681) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "084-s1.s1", CRC(de716f8a) SHA1(f7386454a943ed5caf625f67ee1d0197b1c6fa13) )
+
+ NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) )
+
+ ROM_REGION( 0x900000, "ymsnd", 0 )
+ ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) )
+ ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) )
+ ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "084-c1.c1", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) )
+ ROM_LOAD16_BYTE( "084-c2.c2", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) )
+ ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) )
+ ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) )
+ ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) )
+ ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) )
+ ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) )
+ ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) )
+ROM_END
+
+ROM_START( kof95s11 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "084hc11.p1", 0x100000, 0x100000, CRC(c5e1d217) SHA1(8c536cbad03228d144b527b4ee45ed4a90c1f71b) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "084k.s1", CRC(0d07a5ab) SHA1(d5426bb91fe31cbb1633d2ca90479869c8d2210d) )
+
+ NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) )
+
+ ROM_REGION( 0x900000, "ymsnd", 0 )
+ ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) )
+ ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) )
+ ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "084k.c1", 0x0000000, 0x400000, CRC(4bb4eb90) SHA1(b14ed655272a13cc189bc6bc3a5f327c55e2182b) )
+ ROM_LOAD16_BYTE( "084k.c2", 0x0000001, 0x400000, CRC(7e94c968) SHA1(e188e6c714ec7600f1275b01c56c8e836fc00a05) )
+ ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) )
+ ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) )
+ ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) )
+ ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) )
+ ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) )
+ ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) )
+ROM_END
+
+ROM_START( kof95s12 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "084hc12.p1", 0x100000, 0x100000, CRC(ee8b67b3) SHA1(697500e10c91a633350ccf5032668ec388e35db0) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "084-s1.s1", CRC(de716f8a) SHA1(f7386454a943ed5caf625f67ee1d0197b1c6fa13) )
+
+ NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) )
+
+ ROM_REGION( 0x900000, "ymsnd", 0 )
+ ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) )
+ ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) )
+ ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "084-c1.c1", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) )
+ ROM_LOAD16_BYTE( "084-c2.c2", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) )
+ ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) )
+ ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) )
+ ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) )
+ ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) )
+ ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) )
+ ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) )
+ROM_END
+
+ROM_START( kof95s13 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "084hc13.p1", 0x100000, 0x100000, CRC(bf965616) SHA1(4fde27ea32430fec7cbe15f01fa4e9d469c647ef) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "084-s1.s1", CRC(de716f8a) SHA1(f7386454a943ed5caf625f67ee1d0197b1c6fa13) )
+
+ NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) )
+
+ ROM_REGION( 0x900000, "ymsnd", 0 )
+ ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) )
+ ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) )
+ ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "084-c1.c1", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) )
+ ROM_LOAD16_BYTE( "084-c2.c2", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) )
+ ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) )
+ ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) )
+ ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) )
+ ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) )
+ ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) )
+ ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) )
+ROM_END
+
+ROM_START( kof95s14 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "084hc14.p1", 0x100000, 0x100000, CRC(3b5b0bc4) SHA1(0c43d4399613bafa32ce8a7b9a0b500ff908aa5a) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "084-s1.s1", CRC(de716f8a) SHA1(f7386454a943ed5caf625f67ee1d0197b1c6fa13) )
+
+ NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) )
+
+ ROM_REGION( 0x900000, "ymsnd", 0 )
+ ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) )
+ ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) )
+ ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "084-c1.c1", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) )
+ ROM_LOAD16_BYTE( "084-c2.c2", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) )
+ ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) )
+ ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) )
+ ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) )
+ ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) )
+ ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) )
+ ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) )
+ROM_END
+
+ROM_START( kof95s15 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "084hc15.p1", 0x100000, 0x100000, CRC(f2eaacd3) SHA1(4e3de8a82b236a766feeb86d9a64d5316fe0043e) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "084-s1.s1", CRC(de716f8a) SHA1(f7386454a943ed5caf625f67ee1d0197b1c6fa13) )
+
+ NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) )
+
+ ROM_REGION( 0x900000, "ymsnd", 0 )
+ ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) )
+ ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) )
+ ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "084-c1.c1", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) )
+ ROM_LOAD16_BYTE( "084-c2.c2", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) )
+ ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) )
+ ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) )
+ ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) )
+ ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) )
+ ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) )
+ ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) )
+ROM_END
+
+ROM_START( kof95s16 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "084hc16.p1", 0x100000, 0x100000, CRC(52a0bbc8) SHA1(887b3dca85e70f776a114bc978318a5c965365b3) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "084-s1.s1", CRC(de716f8a) SHA1(f7386454a943ed5caf625f67ee1d0197b1c6fa13) )
+
+ NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) )
+
+ ROM_REGION( 0x900000, "ymsnd", 0 )
+ ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) )
+ ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) )
+ ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "084-c1.c1", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) )
+ ROM_LOAD16_BYTE( "084-c2.c2", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) )
+ ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) )
+ ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) )
+ ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) )
+ ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) )
+ ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) )
+ ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) )
+ROM_END
+
+ROM_START( kof95s17 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "084hc17.p1", 0x100000, 0x100000, CRC(5e54cf95) SHA1(41abe2042fdbb1526e92a0789976a9b1ac5e60f0) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "084-s1.s1", CRC(de716f8a) SHA1(f7386454a943ed5caf625f67ee1d0197b1c6fa13) )
+
+ NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) )
+
+ ROM_REGION( 0x900000, "ymsnd", 0 )
+ ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) )
+ ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) )
+ ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "084-c1.c1", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) )
+ ROM_LOAD16_BYTE( "084-c2.c2", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) )
+ ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) )
+ ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) )
+ ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) )
+ ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) )
+ ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) )
+ ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) )
+ROM_END
+
+GAME( 2016, kof95s01, kof95, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'95 (Description Of Unknown Origin 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof95s02, kof95, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'95 (Description Of Unknown Origin 02)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof95s03, kof95, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'95 (Description Of Unknown Origin 03)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof95s04, kof95, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'95 (Description Of Unknown Origin 04)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof95s05, kof95, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'95 (Description Of Unknown Origin 05)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof95s06, kof95, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'95 (Description Of Unknown Origin 06)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof95s07, kof95, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'95 (Description Of Unknown Origin 07)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof95s08, kof95, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'95 (Description Of Unknown Origin 08)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof95s09, kof95, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'95 (Description Of Unknown Origin 09)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof95s10, kof95, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'95 (Description Of Unknown Origin 11)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof95s11, kof95, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'95 (Description Of Unknown Origin 12)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof95s12, kof95, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'95 (Description Of Unknown Origin 13)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof95s13, kof95, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'95 (Description Of Unknown Origin 14)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof95s14, kof95, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'95 (Description Of Unknown Origin 15)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof95s15, kof95, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'95 (Description Of Unknown Origin 16)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof95s16, kof95, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'95 (Description Of Unknown Origin 17)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof95s17, kof95, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'95 (Description Of Unknown Origin 18)", MACHINE_SUPPORTS_SAVE )
+
+
diff --git a/src/hbmame/drivers/kof96.cpp b/src/hbmame/drivers/kof96.cpp
new file mode 100644
index 00000000000..961e6ea2f82
--- /dev/null
+++ b/src/hbmame/drivers/kof96.cpp
@@ -0,0 +1,3036 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+
+
+
+// kof96ep has an extra rom with crossed wires which overrides part of the
+// main p1 rom. This init unscrambles the extra rom and inserts the new
+// code into the correct place.
+DRIVER_INIT_MEMBER( neogeo_hbmame, kof96ep )
+{
+ DRIVER_INIT_CALL(neogeo);
+ int i,j;
+ uint8_t *rom = cpuregion;
+ for ( i=0; i < 0x080000; i++ )
+ {
+ j=i+0x300000;
+ if (rom[j] - rom[i] == 8) rom[j]=rom[i];
+ }
+ memcpy(rom, rom+0x300000, 0x080000);
+}
+
+
+
+ROM_START( kof96a )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214a.ep1", 0x000000, 0x080000, CRC(a6101486) SHA1(51357c216cc8e52fc4ecf5b2db4814e87d016132) )
+ ROM_LOAD16_WORD_SWAP( "214a.ep2", 0x080000, 0x080000, CRC(6abc7ae5) SHA1(1bcbed38ef1934a0701d1c95b30ffe63316f92a8) )
+ ROM_LOAD16_WORD_SWAP( "214a.ep3", 0x100000, 0x080000, CRC(a588dff4) SHA1(32d30bdf9b7bc9201b3930f5a0f126c79af97f3d) )
+ ROM_LOAD16_WORD_SWAP( "214a.ep4", 0x180000, 0x080000, CRC(6d6f17eb) SHA1(51f61c9a4215584493cf1dc37c4e307e1216626c) )
+ ROM_LOAD16_WORD_SWAP( "214a.p5", 0x200000, 0x100000, CRC(9f3c6bc9) SHA1(90370a2ad42421a533182569e63ab81822e37878) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96ae ) // 10th Anniversary 2009
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214ae.p1", 0x000000, 0x100000, CRC(c038e932) SHA1(ad9cbe9d82a07378d901323eb721ab171164286b) )
+ ROM_LOAD16_WORD_SWAP( "214ae.p2", 0x100000, 0x400000, CRC(66da868f) SHA1(8bada399828d0c55c82a00bfe605de95b8ca07f6) )
+
+ NEO_SFIX_128K( "214ae.s1", CRC(0f902790) SHA1(9f7d95299f828af7bd62cb18680c8127e0e10ecc) )
+
+ NEO_BIOS_AUDIO_128K( "214lx.m1", CRC(c9dd0348) SHA1(6b1003bb7ec01295c71d025c464f922bd555ba55) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214ae.v3", 0x800000, 0x400000, CRC(3cfd1295) SHA1(cfc6ed642ab736592673e96652232534b0e88080) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214ae.c1", 0x0000000, 0x400000, CRC(b308c1f9) SHA1(0c026b49ef45065c0691255a538921b0b4ad11dd) )
+ ROM_LOAD16_BYTE( "214ae.c2", 0x0000001, 0x400000, CRC(220a92b2) SHA1(4f33fc76a199aef2880b3ba1760f92973315edfa) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214ae.c5", 0x1000000, 0x400000, CRC(41dbd677) SHA1(447d081bd8c390df63b9800ef302d2ada660796a) )
+ ROM_LOAD16_BYTE( "214ae.c6", 0x1000001, 0x400000, CRC(1e6a3961) SHA1(ac09dc3e38209033e7797ec6896dd176f3ce6272) )
+ ROM_LOAD16_BYTE( "214ae.c7", 0x1800000, 0x400000, CRC(08021fd6) SHA1(77c8fed7ac39e6a1a24a294f95c095c098a85c11) )
+ ROM_LOAD16_BYTE( "214ae.c8", 0x1800001, 0x400000, CRC(bbd21b08) SHA1(4e060195b632e99634ca9c67fb2398c5a91c3341) )
+ ROM_LOAD16_BYTE( "214ae.c9", 0x2000000, 0x400000, CRC(2efceab8) SHA1(e38c4d2be4d1101d9463cb7c7295f42676cbedb9) )
+ ROM_LOAD16_BYTE( "214ae.c10", 0x2000001, 0x400000, CRC(9f7e1492) SHA1(11315f6ef47210b56004036162767d2e1f7b39b2) )
+ ROM_LOAD16_BYTE( "214ae.c11", 0x2800000, 0x400000, CRC(183cd8fd) SHA1(bd4d47780bf80e382759fd4bbe25fefd4a180610) )
+ ROM_LOAD16_BYTE( "214ae.c12", 0x2800001, 0x400000, CRC(b3d30499) SHA1(34e8009e05cdc8a2fc41e8551df4a5f681a329c1) )
+ROM_END
+
+ROM_START( kof96ae1 ) // 10th Anniversary 2007
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214lx.p1", 0x000000, 0x100000, CRC(47660e7c) SHA1(d6e4595c1c4cc14896bea187668580c73da6c1e7) )
+ ROM_LOAD16_WORD_SWAP( "214ae1.p2", 0x100000, 0x400000, CRC(824ff3eb) SHA1(c3efdcd7e72ac4164721f80b097e874b98539720) )
+
+ NEO_SFIX_128K( "214ae1.s1", CRC(203b3aaf) SHA1(5a82e9130c9218ca163e195863e3a759130a4594) )
+
+ NEO_BIOS_AUDIO_128K( "214lx.m1", CRC(c9dd0348) SHA1(6b1003bb7ec01295c71d025c464f922bd555ba55) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214lx.v3", 0x800000, 0x400000, CRC(143923a7) SHA1(1ba0fc91fd8bdf51c3cab6191ec275a3da5d75bb) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214ae.c1", 0x0000000, 0x400000, CRC(b308c1f9) SHA1(0c026b49ef45065c0691255a538921b0b4ad11dd) )
+ ROM_LOAD16_BYTE( "214ae.c2", 0x0000001, 0x400000, CRC(220a92b2) SHA1(4f33fc76a199aef2880b3ba1760f92973315edfa) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214ae1.c5", 0x1000000, 0x400000, CRC(6e03cb0c) SHA1(b75bef8025ab84e8b36404e94901092d19b3543a) )
+ ROM_LOAD16_BYTE( "214ae1.c6", 0x1000001, 0x400000, CRC(a90bc55d) SHA1(75e141fc9debe5cb1db3875094c51afc9d852fac) )
+ ROM_LOAD16_BYTE( "214ae.c7", 0x1800000, 0x400000, CRC(08021fd6) SHA1(77c8fed7ac39e6a1a24a294f95c095c098a85c11) )
+ ROM_LOAD16_BYTE( "214ae.c8", 0x1800001, 0x400000, CRC(bbd21b08) SHA1(4e060195b632e99634ca9c67fb2398c5a91c3341) )
+ ROM_LOAD16_BYTE( "214ae1.c9", 0x2000000, 0x400000, CRC(57e5bf80) SHA1(ef9a8f08ba094376257f29beb3fce04324edc4bf) )
+ ROM_LOAD16_BYTE( "214ae1.c10", 0x2000001, 0x400000, CRC(cbe44c81) SHA1(be87a92a1f8f1985b5441608db7329aabb745bbb) )
+ ROM_LOAD16_BYTE( "214ae1.c11", 0x2800000, 0x400000, CRC(5c7ddc8b) SHA1(34e0ae91968a58392db273f209dccfa11890fd26) )
+ ROM_LOAD16_BYTE( "214ae1.c12", 0x2800001, 0x400000, CRC(48d8b574) SHA1(fa9be64f0cde68b9685146d5768dc95ddf9d54b8) )
+ROM_END
+
+ROM_START( kof96ae1a ) // 10th Anniversary 2007, different gfx roms
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214lx.p1", 0x000000, 0x100000, CRC(47660e7c) SHA1(d6e4595c1c4cc14896bea187668580c73da6c1e7) )
+ ROM_LOAD16_WORD_SWAP( "214ae1.p2", 0x100000, 0x400000, CRC(824ff3eb) SHA1(c3efdcd7e72ac4164721f80b097e874b98539720) )
+
+ NEO_SFIX_128K( "214ae1.s1", CRC(203b3aaf) SHA1(5a82e9130c9218ca163e195863e3a759130a4594) )
+
+ NEO_BIOS_AUDIO_128K( "214lx.m1", CRC(c9dd0348) SHA1(6b1003bb7ec01295c71d025c464f922bd555ba55) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214lx.v3", 0x800000, 0x400000, CRC(143923a7) SHA1(1ba0fc91fd8bdf51c3cab6191ec275a3da5d75bb) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214ae1a.c1", 0x0000000, 0x1800000, CRC(c68508df) SHA1(f7e9ad7cfe506658a7aec51c79ebc119db456655) )
+ ROM_LOAD16_BYTE( "214ae1a.c2", 0x0000001, 0x1800000, CRC(078d9390) SHA1(ef78328ee7e663a38318bb4c20f4c9c3316536ea) )
+ROM_END
+
+ROM_START( kof96ae1b ) // 10th Anniversary 2007, different gfx roms
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214lx.p1", 0x000000, 0x100000, CRC(47660e7c) SHA1(d6e4595c1c4cc14896bea187668580c73da6c1e7) )
+ ROM_LOAD16_WORD_SWAP( "214ae1.p2", 0x100000, 0x400000, CRC(824ff3eb) SHA1(c3efdcd7e72ac4164721f80b097e874b98539720) )
+
+ NEO_SFIX_128K( "214ae1.s1", CRC(203b3aaf) SHA1(5a82e9130c9218ca163e195863e3a759130a4594) )
+
+ NEO_BIOS_AUDIO_128K( "214lx.m1", CRC(c9dd0348) SHA1(6b1003bb7ec01295c71d025c464f922bd555ba55) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214lx.v3", 0x800000, 0x400000, CRC(143923a7) SHA1(1ba0fc91fd8bdf51c3cab6191ec275a3da5d75bb) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214ae.c1", 0x0000000, 0x400000, CRC(b308c1f9) SHA1(0c026b49ef45065c0691255a538921b0b4ad11dd) )
+ ROM_LOAD16_BYTE( "214ae.c2", 0x0000001, 0x400000, CRC(220a92b2) SHA1(4f33fc76a199aef2880b3ba1760f92973315edfa) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214ae1.c5", 0x1000000, 0x400000, CRC(6e03cb0c) SHA1(b75bef8025ab84e8b36404e94901092d19b3543a) )
+ ROM_LOAD16_BYTE( "214ae1.c6", 0x1000001, 0x400000, CRC(a90bc55d) SHA1(75e141fc9debe5cb1db3875094c51afc9d852fac) )
+ ROM_LOAD16_BYTE( "214ae.c7", 0x1800000, 0x400000, CRC(08021fd6) SHA1(77c8fed7ac39e6a1a24a294f95c095c098a85c11) )
+ ROM_LOAD16_BYTE( "214ae.c8", 0x1800001, 0x400000, CRC(bbd21b08) SHA1(4e060195b632e99634ca9c67fb2398c5a91c3341) )
+ ROM_LOAD16_BYTE( "214ae1b.c9", 0x2000000, 0x800000, CRC(824f5fdd) SHA1(79664e30b01bb5f4b3aa6e73c8b785bc253101aa) )
+ ROM_LOAD16_BYTE( "214ae1b.c10", 0x2000001, 0x800000, CRC(850a1f6e) SHA1(7918a6ef11681a7d3b0f0a115d2138e89ca87346) )
+ROM_END
+
+ROM_START( kof96b ) /* The King of Fighters '96 - Hack by UNKNOWN - (Can choose Chizuru Kagura and Goenitz) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214b.p1", 0x000000, 0x100000, CRC(0b385fab) SHA1(ea544d95438b373e3f5f530528413ff583d2b329) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96b1 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214b1.p1", 0x000000, 0x100000, CRC(9ec8c837) SHA1(bcf2286fc8ba0128a3f597ae6411949d3dac1db7) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96bb )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214-p1.p1", 0x000000, 0x100000, CRC(52755d74) SHA1(4232d627f1d2e6ea9fc8cf01571d77d4d5b8a1bb) )
+ ROM_LOAD16_WORD_SWAP( "214bb.p2", 0x100000, 0x200000, CRC(6d4ca2ec) SHA1(9bac19d64e3fb058610df451622fcc927642006d) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96c ) /* The King of Fighters '96 - (kof96c) - Hack by Kyofun - (Chinese Ver.1.0) */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214c.p1", 0x000000, 0x800000, CRC(51990a7f) SHA1(eef003e5a7e43d670fe916c983c161d213337627) )
+
+ NEO_SFIX_128K( "214c.s1", CRC(f917527a) SHA1(8c4778f9dc5e0651042f8ff6f1a18e3f40d0bf7c) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214c.c1", 0x0000000, 0x1800000, CRC(a89789ba) SHA1(25632122b747eb97a4ffb94d8e0cd7c20940d118) )
+ ROM_LOAD16_BYTE( "214c.c2", 0x0000001, 0x1800000, CRC(e4a5e70d) SHA1(4f4691d386cfd63015812475bc58b1e8ae4b23ff) )
+ROM_END
+
+ROM_START( kof96cbi ) // Change Blood For Other Hack By IsmaMj (02-03-11)
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214cbi.p1", 0x000000, 0x100000, CRC(4110ab9f) SHA1(f45eb631ceccac6d7d94ad6d0bdb1bc1bc198246) )
+ ROM_LOAD16_WORD_SWAP( "214cbi.p2", 0x100000, 0x200000, CRC(2b5fa72a) SHA1(3b44765a3155cb830fdfb1d1ddc357405a42d1cf) )
+
+ NEO_SFIX_128K( "214cbi.s1", CRC(46a20a2c) SHA1(ef9584afee4cef53f166f247ec9e6b2ff0c29da8) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214cbi.c7", 0x1800000, 0x400000, CRC(e306d179) SHA1(dbacbb4a8417ca9cc3578a91121a8f98ce7c1974) )
+ ROM_LOAD16_BYTE( "214cbi.c8", 0x1800001, 0x400000, CRC(7a8cdac6) SHA1(59a61a5764859ea141d6caa9c10e9e8fed4be877) )
+ROM_END
+
+ROM_START( kof96ckvs ) /* The King of Fighters '96 - (kof96ckvs) - Hack by KVS - (Chinese Version) */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214ckvs.p1", 0x000000, 0x800000, CRC(802a8874) SHA1(c76857acf29366af9e3ac8bf07fad0976ec2607f) )
+
+ NEO_SFIX_128K( "214ckvs.s1", CRC(3e9c7f67) SHA1(8d08e7861fbc3c8305b7160b8856326d8d407237) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214ckvs.v1", 0x000000, 0xa00000, CRC(4f14a72b) SHA1(fb1105aa271ea14016f777017cf6079ff61e176f) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214ckvs.c1", 0x0000000, 0x1800000, CRC(252e41e9) SHA1(2844b65dce7a47c04da4473d5ef519cbbdab0e09) )
+ ROM_LOAD16_BYTE( "214c.c2", 0x0000001, 0x1800000, CRC(e4a5e70d) SHA1(4f4691d386cfd63015812475bc58b1e8ae4b23ff) )
+ROM_END
+
+ROM_START( kof96chj ) /* [OLD] The King of Fighters '96 - (kof96chj) - Remix by CHL and Jason/K3 - (Character move change - ultra kill style change) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214chj.p1", 0x000000, 0x100000, CRC(2a2a63ad) SHA1(92fca18b6bfc77569572262fcfbee732510dc3d6) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96cn )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214cn.p1", 0x000000, 0x100000, CRC(a8c25f0a) SHA1(f6b0f82ec7baa235fa68713bb1b12e3e83db8be5) )
+ ROM_LOAD16_WORD_SWAP( "214cn.p2", 0x100000, 0x200000, CRC(0edface5) SHA1(2fb7a3e84758a6ce3977b6a1f306867cb52fe0f5) )
+ ROM_LOAD16_WORD_SWAP( "214cn.p3", 0x300000, 0x500000, CRC(8724a441) SHA1(409a93e3bd7f40dfd623c2ed1f7173fa55f597b8) )
+
+ NEO_SFIX_128K( "214c.s1", CRC(f917527a) SHA1(8c4778f9dc5e0651042f8ff6f1a18e3f40d0bf7c) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ ROM_LOAD16_BYTE( "214cn.c9", 0x2000000, 0x400000, CRC(a9f811d2) SHA1(abd1bd95d2f44fc4b604294c12c5509b41509ed7) )
+ ROM_LOAD16_BYTE( "214cn.c10", 0x2000001, 0x400000, CRC(1147406a) SHA1(2bccbd2f38f15c13eb7d5a89fd9d85f595e23bc3) )
+ROM_END
+
+ROM_START( kof96cr ) /* The King of Fighters '96 - Remix by CHL - (Character move and behaviour change) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214cr.p1", 0x000000, 0x100000, CRC(7d07f47d) SHA1(bc539a4cd318a3d68e97a71ae572c53827bcfcd6) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96de ) // Dragon Edition set 2
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214de.p1", 0x000000, 0x100000, CRC(d2a9a727) SHA1(ecfcfc0a537827707cf7e4f4789c23b376362198) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96dr1 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214dr1.p1", 0x000000, 0x100000, CRC(23bca98e) SHA1(76182ebbcb4ae2c6e8e9248f0cc9af0f5befc00f) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96eh ) /* The King of Fighters '96 - Enhance by Ydmis - (Can choose Chizuru Kagura and Goenitz - power hack ABC) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214eh.p1", 0x000000, 0x100000, CRC(103ba0e4) SHA1(dd4964f2ad5f0c3540dff495d103890b9ecf0cbb) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96ep )
+ ROM_REGION( 0x380000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214-p1.p1", 0x000000, 0x100000, CRC(52755d74) SHA1(4232d627f1d2e6ea9fc8cf01571d77d4d5b8a1bb) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+ ROM_LOAD16_WORD_SWAP( "214ep.p1", 0x300000, 0x080000, CRC(e5f2fb43) SHA1(5efff9873b30679ea924b7770606c889a1076315) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96ep2 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214ep2.p1", 0x000000, 0x100000, CRC(8233b2cf) SHA1(14fd815d80ff6f719539f746e5bd041d4fe85ecb) )
+ ROM_LOAD16_WORD_SWAP( "214ep2.p2", 0x100000, 0x200000, CRC(9c57ae89) SHA1(65140219665938fe5365c2e4d1efd3424eaadd2f) )
+
+ NEO_SFIX_128K( "214ep2.s1", CRC(773aeb80) SHA1(04db79cba617b5c0634cb0f1cef6c9f1228eb31c) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214rf.c7", 0x1800000, 0x400000, CRC(3459297a) SHA1(cc839fdf327a7e3c107132d871d617d3cdef9f94) )
+ ROM_LOAD16_BYTE( "214rf.c8", 0x1800001, 0x400000, CRC(8266c111) SHA1(3b3046e896b2720f6a34c2091ce1d68e581cc44e) )
+ROM_END
+
+ROM_START( kof96ep3 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214ep3.p1", 0x000000, 0x100000, CRC(687f1ba8) SHA1(9734e1b7ad9e13c8d5a7fbe411aae338373acf4a) )
+ ROM_LOAD16_WORD_SWAP( "214ep2.p2", 0x100000, 0x200000, CRC(9c57ae89) SHA1(65140219665938fe5365c2e4d1efd3424eaadd2f) )
+
+ NEO_SFIX_128K( "214ep2.s1", CRC(773aeb80) SHA1(04db79cba617b5c0634cb0f1cef6c9f1228eb31c) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214rf.c7", 0x1800000, 0x400000, CRC(3459297a) SHA1(cc839fdf327a7e3c107132d871d617d3cdef9f94) )
+ ROM_LOAD16_BYTE( "214rf.c8", 0x1800001, 0x400000, CRC(8266c111) SHA1(3b3046e896b2720f6a34c2091ce1d68e581cc44e) )
+ROM_END
+
+ROM_START( kof96evo ) /* The King of Fighters '96 - KOF96 Evolution by Wesker - (Character move and style revision) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214evo.p1", 0x000000, 0x200000, CRC(6e10e1af) SHA1(f013e827e74a296d462bd00594b823dd02b4dc76) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96evoo ) /* [OLD] The King of Fighters '96 - (kof96evoo) - Remix by Wesker - (Character move change and style revision) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214evoo.p1", 0x000000, 0x200000, CRC(1e970d76) SHA1(2904241785c2544f270263f9203eef5207defef4) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96evsp )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214evsp.p1", 0x000000, 0x100000, CRC(61099e5a) SHA1(41fa30c070e28024b54793c4953959f4508f7f86) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96ey ) /* The King of Fighters '96 - Enhance by Ydmis - (Power hack ABC) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214ey.p1", 0x000000, 0x100000, CRC(2342fd92) SHA1(0901db47ff1f504d1635da0b2fdd417bbdd71839) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96hp ) /* The King of Fighters '96 - Hack by HackPlus - (Can choose Chizuru Kagura and Goenitz) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214hp.p1", 0x000000, 0x100000, CRC(fcf57652) SHA1(c423bf3ea2d02b3d8df338b69559861479360b02) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96hp1 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214hp1.p1", 0x000000, 0x100000, CRC(be961ca2) SHA1(21c431082fe8fdf242651efb12a30cf157c77e49) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96hpr ) /* The King of Fighters '96 - Hack by HackPlus - (Can choose Chizuru Kagura and Goenitz - revised) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214hpr.p1", 0x000000, 0x100000, CRC(92c9df44) SHA1(f9d42176858c7c466c6e34ca3b360cb87cbf131c) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96k ) /* The King of Fighters '96 -Hack by Kurouri - (Can choose Chizuru Kagura and Goenitz - power hack ABC) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214k.p1", 0x000000, 0x100000, CRC(e0256484) SHA1(3b7b281962665c6198329e64b4c5d9c4ef871a04) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96k1 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214-p1.p1", 0x000000, 0x100000, CRC(52755d74) SHA1(4232d627f1d2e6ea9fc8cf01571d77d4d5b8a1bb) )
+ ROM_LOAD16_WORD_SWAP( "214k1.p2", 0x100000, 0x200000, CRC(93ac7dff) SHA1(e8a8679c2b0860ace773eb48f021045d3ad02d1a) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96k3 ) /* The King of Fighters '96 - Remix by Jason/K3 - (Character move change to Kof98 style 20030725) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214k3.p1", 0x000000, 0x100000, CRC(800b8213) SHA1(06622e0bfa615195b888858c5806bd262434761b) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96k3o ) /* [OLD] The King of Fighters '96 - (kof96k3o) - Remix by Jason/K3 - (Changed move behaviour to KOF 98 style, see kof96k3o.txt for more 20030710) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214k3o.p1", 0x000000, 0x100000, CRC(09173d9f) SHA1(85d60c976d04468b7c9dc3247c00ff99ec6fd4cc) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96kt ) // Korean Translation
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214kt.p1", 0x000000, 0x100000, CRC(a54e1812) SHA1(46b6eee1303a8d0efdd4659080a30a53ae2aeb15) )
+ ROM_LOAD16_WORD_SWAP( "214kt.p2", 0x100000, 0x200000, CRC(2ad66289) SHA1(2d6be57436c84eadb0f1c59f0fa021c2799d1518) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214kt.c1", 0x0000000, 0x400000, CRC(0524e33e) SHA1(f844f2b075f1982ccb75691a422d957500ba8623) )
+ ROM_LOAD16_BYTE( "214kt.c2", 0x0000001, 0x400000, CRC(e1374ccc) SHA1(7bff6465c21b53fbe85ea49fdb1fe8ea4b77394d) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96lx ) /* The King of Fighters '96 - Hack by Luxo */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214lx.p1", 0x000000, 0x100000, CRC(47660e7c) SHA1(d6e4595c1c4cc14896bea187668580c73da6c1e7) )
+ ROM_LOAD16_WORD_SWAP( "214lx.p2", 0x100000, 0x400000, CRC(3cb8c583) SHA1(7863c1518fea1ef02e60d9456e68b4c2591b7716) )
+
+ NEO_SFIX_128K( "214lx.s1", CRC(f8984c6f) SHA1(f8aba219c2be132f21d9dbc4f13b127170a245e8) )
+
+ NEO_BIOS_AUDIO_128K( "214lx.m1", CRC(c9dd0348) SHA1(6b1003bb7ec01295c71d025c464f922bd555ba55) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214lx.v3", 0x800000, 0x400000, CRC(143923a7) SHA1(1ba0fc91fd8bdf51c3cab6191ec275a3da5d75bb) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214lx.c1", 0x000000, 0x1800000, CRC(c8dbad80) SHA1(8b18b5b6f91e7f47cc04f370ed6218c084df6575) )
+ ROM_LOAD16_BYTE( "214lx.c2", 0x000001, 0x1800000, CRC(8139ac33) SHA1(6200460abd7d00d7d85d00ffb8117dcf8a99016a) )
+ROM_END
+
+ROM_START( kof96ncd )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214ncd.p1", 0x000000, 0x100000, CRC(18acfd90) SHA1(3da8848dfb06602684ceb2da097568aaccb2e709) )
+ ROM_LOAD16_WORD_SWAP( "214ncd.p2", 0x100000, 0x200000, CRC(8dee366d) SHA1(bd05fb7a0481d2b6e64cd847239c39aad319fca8) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96oib )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214oib.p1", 0x000000, 0x100000, CRC(ab7e5fe8) SHA1(ce162e826d713ebe1743296889626c454ed81ba8) )
+ ROM_LOAD16_WORD_SWAP( "214oib.p2", 0x100000, 0x200000, CRC(229d74d4) SHA1(b1384c18bc07f30b7c082f5befde20b72a9c0818) )
+
+ NEO_SFIX_128K( "214oib.s1", CRC(794769b4) SHA1(45b74cc5f875ff2c95545a4a21599af4b3a54078) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214oib.c5", 0x1000000, 0x400000, CRC(5ad89fe4) SHA1(4e53740ebd0f87bf33947c4ca6f6b64f98f1846a) )
+ ROM_LOAD16_BYTE( "214oib.c6", 0x1000001, 0x400000, CRC(77dd026e) SHA1(410ddfd9901cdab8dfca1e44c1b583f218e208d9) )
+ ROM_LOAD16_BYTE( "214oib.c7", 0x1800000, 0x400000, CRC(5e690993) SHA1(9de1771f643a9c4f433c256b3a23d9d380ecc07b) )
+ ROM_LOAD16_BYTE( "214oib.c8", 0x1800001, 0x400000, CRC(ec6d3c59) SHA1(8387cc622b8e310c6d187f5e8ab42be31701017b) )
+ROM_END
+
+ROM_START( kof96oib2 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214oib.p1", 0x000000, 0x100000, CRC(ab7e5fe8) SHA1(ce162e826d713ebe1743296889626c454ed81ba8) )
+ ROM_LOAD16_WORD_SWAP( "214oib2.p2", 0x100000, 0x200000, CRC(2e6fe5e2) SHA1(cfd8e35201bff14a76cdfbec42ef01b7abad5a60) )
+
+ NEO_SFIX_128K( "214oib.s1", CRC(794769b4) SHA1(45b74cc5f875ff2c95545a4a21599af4b3a54078) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214oib.c5", 0x1000000, 0x400000, CRC(5ad89fe4) SHA1(4e53740ebd0f87bf33947c4ca6f6b64f98f1846a) )
+ ROM_LOAD16_BYTE( "214oib.c6", 0x1000001, 0x400000, CRC(77dd026e) SHA1(410ddfd9901cdab8dfca1e44c1b583f218e208d9) )
+ ROM_LOAD16_BYTE( "214oib2.c7", 0x1800000, 0x400000, CRC(87348536) SHA1(df871243a15e9fbe0e6c9c6210c83c4853aa11c8) )
+ ROM_LOAD16_BYTE( "214oib2.c8", 0x1800001, 0x400000, CRC(bee6c915) SHA1(884ff9f7b4262d55fdc8750de471a7067a17ea7d) )
+ROM_END
+
+ROM_START( kof96oih ) // Orochi Iori (unknown hack)
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214oih.p1", 0x000000, 0x100000, CRC(db7eb010) SHA1(d19336fffcc7df186416b90d783c984237226113) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96oir ) // Orochi Iori Remix by IsmaMj
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214oir.p1", 0x000000, 0x100000, CRC(da24ce88) SHA1(0e6d7b3b142dee026a41ca3a3996a6692bd10fdf) )
+ ROM_LOAD16_WORD_SWAP( "214rf.p2", 0x100000, 0x200000, CRC(3a7912f0) SHA1(27f2e82e543d5d8c66613babd0012e5bb2f3d0ec) )
+
+ NEO_SFIX_128K( "214oir.s1", CRC(39ef1161) SHA1(1366895edcc541091f2405d16ba99b16b72b6218) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96pch ) // All confirmed
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214pch.p1", 0x000000, 0x100000, CRC(71db3c3e) SHA1(39770e938067b7f4d434d7af93fbe77f0a3d9a3d) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96pjc ) /* The King of Fighters '96 - Colour fix by TcwLee - (Character colour change) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214-p1.p1", 0x000000, 0x100000, CRC(52755d74) SHA1(4232d627f1d2e6ea9fc8cf01571d77d4d5b8a1bb) )
+ ROM_LOAD16_WORD_SWAP( "214pjc.p2", 0x100000, 0x200000, CRC(fde97cb6) SHA1(676ca59ef75844d9b398126b352d82683d890867))
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96pm )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214pm.p1", 0x000000, 0x100000, CRC(f8cdadde) SHA1(efc37896946a445c7b86f0e14615634f960a2097) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96rcw) /* The King of Fighters '96 - Remix by CHL and Wesker - (Character move and ultra kill style change) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214rcw.p1", 0x000000, 0x200000, CRC(7b12a4f1) SHA1(f3bcf418d8ecd63d9373c70b138ea7ea391b0cb9) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96rf )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214rf.p1", 0x000000, 0x100000, CRC(3ef73a54) SHA1(e82dc88aeef611249ff4a39d61de23d961230f37) )
+ ROM_LOAD16_WORD_SWAP( "214rf.p2", 0x100000, 0x200000, CRC(3a7912f0) SHA1(27f2e82e543d5d8c66613babd0012e5bb2f3d0ec) )
+
+ NEO_SFIX_128K( "214rf.s1", CRC(d4899497) SHA1(d40c7f1d9b6e39d668cb635182b29f3ce03b802b) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214rf.c7", 0x1800000, 0x400000, CRC(3459297a) SHA1(cc839fdf327a7e3c107132d871d617d3cdef9f94) )
+ ROM_LOAD16_BYTE( "214rf.c8", 0x1800001, 0x400000, CRC(8266c111) SHA1(3b3046e896b2720f6a34c2091ce1d68e581cc44e) )
+ROM_END
+
+ROM_START( kof96rfs ) // Remix Final Standard
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214rfs.p1", 0x000000, 0x300000, CRC(8f9cf253) SHA1(e212ae9b092ebdf0435cc0f84bcb7bf43a0ffaf4) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214rfs.s1", CRC(08811ec1) SHA1(4a2f20999e8333763897b3b5d852b693a8c81c3e) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96rfsa )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214rfsa.p1", 0x000000, 0x100000, CRC(c36be9c7) SHA1(c8204c2b6044c009db9cb4afdc7aaaf4929f29b7) )
+ ROM_LOAD16_WORD_SWAP( "214rfsa.sp2", 0x100000, 0x200000, CRC(7ec1c31e) SHA1(4db183ef0a7df0aa0ad3c864d2787fc6c0acab4f) )
+
+ NEO_SFIX_128K( "214rfs.s1", CRC(08811ec1) SHA1(4a2f20999e8333763897b3b5d852b693a8c81c3e) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96ri ) /* [OLD] The King of Fighters '96 - (kof96ri) - Revision by Igniz - (Revise 20030601) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214ri.p1", 0x000000, 0x100000, CRC(b327398e) SHA1(698fbfd310994e5cc20001f28f5d327bf4a997f2) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96ri1 ) /* [OLD] The King of Fighters '96 - (kof96ri) - Revision by Igniz - (Revise 20030601) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214ri1.p1", 0x000000, 0x100000, CRC(1eb17023) SHA1(ceed639edfcc1b120c420f08aeb036d8912bbcb5) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96ri2 ) /* [OLD] The King of Fighters '96 - (kof96ri) - Revision by Igniz - (Revise 20030601) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214ri2.p1", 0x000000, 0x100000, CRC(abef3f56) SHA1(563f77eb86068ed70bc0484291499d220a07dd84) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96ri3 ) /* [OLD] The King of Fighters '96 - (kof96ri) - Revision by Igniz - (Revise 20030601) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214ri3.p1", 0x000000, 0x100000, CRC(c58d9eea) SHA1(287d679c0caf00e163ac2d55d17809e8d5e911a6) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96ri4 ) /* [OLD] The King of Fighters '96 - (kof96ri) - Revision by Igniz - (Revise 20030527) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214ri4.p1", 0x000000, 0x100000, CRC(ef2b1662) SHA1(eb23ea0875f6b19dcc400699fd9fb0e846caedf3) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96ri5 ) /* [OLD] The King of Fighters '96 - (kof96ri) - Revision by Igniz - (Revise 20030527) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214ri5.p1", 0x000000, 0x100000, CRC(386420b2) SHA1(7ce3eee22112f53d808cc798c0e15b16cc290a0b) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96rm ) // Remix 2.5 by Marcochen
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214rm.p1", 0x000000, 0x100000, CRC(76913b21) SHA1(265f233baf200e7e591e5e463a7bac45fb1aeb52) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96rp ) // Remix Pro 1
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214rp.p1", 0x000000, 0x100000, CRC(4f75f758) SHA1(81ff5ffb6f41c922fa25cd5eb720abdf44abd572) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96rp1 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214rp1.p1", 0x000000, 0x100000, CRC(e412a600) SHA1(3040b7704fd124725f38a1954914119cc09aa0e5) )
+ ROM_LOAD16_WORD_SWAP( "214rp1.p2", 0x100000, 0x200000, CRC(6bd3d75e) SHA1(c1e517f575d2dc4148360b27dee55fba2251e59e) )
+
+ NEO_SFIX_128K( "214rp1.s1", CRC(36a14c3b) SHA1(2ab1a75bc8ba6b69fd8f99ff31d8082ac3d50c34) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96rss ) // Remix Spring Special
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214rss.p1", 0x000000, 0x300000, CRC(93abe27c) SHA1(478032f51ebd0b6f22d9ce4cbe17a4808218dd70) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214rss.s1", CRC(f304df75) SHA1(f696aed96dba4a086415374c7bbdf8c3b4f5b457) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96ru ) /* The King of Fighters '96 - Remix Ultra by CHL and Jason/K3 - (Character move change - ultra kill style change - can choose Chizuru Kagura and Goenitz 20031203) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214ru.p1", 0x000000, 0x100000, CRC(620da697) SHA1(146d396903fed547f586f095d6b7b4ec519c1479) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96ru2 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214ru2.p1", 0x000000, 0x100000, CRC(f1e97d01) SHA1(ed5681dddd205f79c0011a2db46d1fbbc7263979) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96rw ) /* The King of Fighters '96 - Remix By Wesker - (Character move change) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214rw.p1", 0x000000, 0x100000, CRC(1de99755) SHA1(69740ffc88d287d6f2bc218665a3f1fa358e5fc3) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96ryu ) // Ryu Hack by Iori Yagami
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214ryu.p1", 0x000000, 0x100000, CRC(ff399656) SHA1(27895e26ac82461850a594e1384b994bfa3772e5) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96seh ) /* The King of Fighters '96 - Super Enhance Hack by Ydmis - (Can choose Chizuru Kagura and Goenitz - ultra power hack ABC) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214seh.p1", 0x000000, 0x100000, CRC(76fc560c) SHA1(618b01b00235e1ff3d083e5c077e43482864f774) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+
+
+GAME( 1996, kof96a, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'96 (set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, kof96ae, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGHT", "Kof'96 (10th Anniversary Edition set 4)", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, kof96ae1, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGHT", "Kof'96 (10th Anniversary Edition set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, kof96ae1a, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGHT", "Kof'96 (10th Anniversary Edition set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, kof96ae1b, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGHT", "Kof'96 (10th Anniversary Edition set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96b, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'96 (Add Char)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96b1, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'96 Boss Hack (set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96bb, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'96 Boss Hack (set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof96c, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Guangzhou Game Team", "Kof'96 (Chinese Ver.1.0)", MACHINE_SUPPORTS_SAVE )
+GAME( 2011, kof96cbi, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "IsmaMj", "Kof'96 (Change Blood For Other Hack (2011-03-02))", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96ckvs, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "KVS", "Kof'96 (Chinese ver)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96chj, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "CHL and Jason/K3", "Kof'96 (Diff Moves - Ultra kill style changed set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof96cn, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Guangzhou Game Team", "Kof'96 (CN)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96cr, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "CHL", "Kof'96 (Diff Moves and Style)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96de, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'96 (Dragon Edition set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96dr1, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'96 (Dragon Edition set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96eh, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Kof'96 (Add Char - Pow hack ABC set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96ep, kof96, neogeo_noslot, neogeo, neogeo_hbmame, kof96ep, ROT0, "bootleg", "Kof'96 (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96ep2, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'96 (Bootleg / Hack Set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96ep3, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'96 (Bootleg / Hack Set 3 All Boss)", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, kof96evo, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker, FGCH", "Kof'96 WESKER HACK (Evolution)", MACHINE_SUPPORTS_SAVE ) // Moves and style rev
+GAME( 2004, kof96evoo, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker, FGCH", "Kof'96 WESKER HACK (Evolution Old)", MACHINE_SUPPORTS_SAVE ) // Moves and style rev Old
+GAME( 2004, kof96evsp, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker, FGCH", "Kof'96 WESKER HACK (Evolution Special v1.2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96ey, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Kof'96 (Pow hack ABC)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96hp, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "HackPlus", "Kof'96 (Add Char set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, kof96hp1, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Pipi899", "Kof'96 (Hack by Pipi899 2007-08-31)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96hpr, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "HackPlus", "Kof'96 (Add Char set 2 - revised)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof96k, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Guangzhou Game Team", "Kof'96 (Add Char - Pow hack ABC set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96k1, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'96 (Korean Edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96k3, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Jason/K3", "Kof'96 Remix (Kof98 Moves 030725)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96k3o, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Jason/K3", "Kof'96 Remix (Kof98 Moves 030710)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96kt, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'96 (Korean Translation)", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, kof96lx, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGHT", "Kof'96 (10th Anniversary set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96ncd, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Eddids FCHT", "Kof'96 (Boss, Like NEOGEOCD Version)", MACHINE_SUPPORTS_SAVE )
+GAME( 2011, kof96oib, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "IsmaMj", "Kof'96 (Special Orochi Iori/Boss Hack v3.0)", MACHINE_SUPPORTS_SAVE )
+GAME( 2011, kof96oib2, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "IsmaMj", "Kof'96 (Special Orochi Iori/Boss Hack v3.0 alt)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96oih, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'96 (Orochi Iori (OIH))", MACHINE_SUPPORTS_SAVE )
+GAME( 2010, kof96oir, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "IsmaMj", "Kof'96 (Orochi Iori Remix)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96pjc, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "TcwLee", "Kof'96 (Char color changed)", MACHINE_SUPPORTS_SAVE )
+GAME( 2011, kof96pch, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "C-17", "Kof'96 (C-17 hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96pm, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "KOF1996", "Kof'96 Practice Mode (Hack by KOF1996)", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, kof96rcw, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker/Fight China", "Kof'96 (Diff Moves - Ultra kill style changed set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96rf, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK2003", "Kof'96 Remix Final (2007 Revised Version)", MACHINE_SUPPORTS_SAVE )
+GAME( 2005, kof96rfs, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK2003", "Kof'96 (Remix Final Standard v1.4 set 1 hack by SNK2003)", MACHINE_SUPPORTS_SAVE )
+GAME( 2005, kof96rfsa, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK2003", "Kof'96 (Remix Final Standard v1.4 set 2 hack by SNK2003)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96ri, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Igniz", "Kof'96 (Igniz rev 030601 set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96ri1, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Igniz", "Kof'96 (Igniz rev 030601 set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96ri2, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Igniz", "Kof'96 (Igniz rev 030601 set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96ri3, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Igniz", "Kof'96 (Igniz rev 030601 set 4)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96ri4, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Igniz", "Kof'96 (Igniz rev 030527 set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96ri5, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Igniz","Kof'96 (Igniz rev 030527 set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96rm, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Marcochen", "Kof'96 (Remix 2.5)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96rp, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'96 (Remix Pro 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2008, kof96rp1, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGHT", "Kof'96 Remix Plus 2008 SP", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96rss, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK2003", "Kof'96 (Remix Spring Special 1.5)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96ru, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "CHL, Jason/K3", "Kof'96 Remix Ultra (Diff Moves - Ultra kill style changed - Add Char 031203)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96ru2, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "CHL, Jason/K3", "Kof'96 (Remix Ultra v1.1 hack by CHL/Jason/K3)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96rw, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker", "Kof'96 (Diff Moves)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96ryu, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Iori Yagami", "Kof'96 (Ryu Hack by Iori Yagami)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96seh, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Kof'96 (Add Char - Ultra pow hack ABC)", MACHINE_SUPPORTS_SAVE )
+
+
+//PSmame
+
+ROM_START( kof96s01 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214hc01.p1", 0x000000, 0x100000, CRC(a12f28f6) SHA1(24b4afe335b60efc60536ea29900041032ff5b88) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96s02 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214hc02.p1", 0x000000, 0x100000, CRC(e18e2e9f) SHA1(58d7e25607660e874c3fc83b2dd11e6da4fc6984) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96s03 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214hc03.p1", 0x000000, 0x100000, CRC(1a9266fa) SHA1(65150d9a6a20920c0abacf252b1fa4e8b1f6a52d) )
+ ROM_LOAD16_WORD_SWAP( "214hc03.sp2", 0x100000, 0x200000, CRC(cc0b4c21) SHA1(3889c3f93584de1655248fa072a7241b9d4e9a92) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96s04 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214hc04.p1", 0x000000, 0x100000, CRC(1700ac97) SHA1(f83d5ecda85d013526335cf854ae8a4776dd9509) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96s05 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214hc05.p1", 0x000000, 0x100000, CRC(da09e005) SHA1(038db98ef3d7f6961956ba49ec29a1e390e1f1c6) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96s06 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214hc06.p1", 0x000000, 0x100000, CRC(598eff05) SHA1(e866408205513bc99b903df5ce802e6f8d148ef9) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96s07 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214hc07.p1", 0x000000, 0x100000, CRC(23bca98e) SHA1(76182ebbcb4ae2c6e8e9248f0cc9af0f5befc00f) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96s08 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214hc08.p1", 0x000000, 0x100000, CRC(510c4a26) SHA1(526c3d4108ae8deda082ac0429457d32d30d0d72) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96s09 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214hc09.p1", 0x000000, 0x100000, CRC(806e3336) SHA1(18da7c8a32f3716cf3a18c38b376bf2c74b417dc) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96s10 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214hc10.p1", 0x000000, 0x100000, CRC(0258acde) SHA1(3ddcc0532d575a02a3e4a3d6e34fbd3117e7b166) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96s11 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214hc11.p1", 0x000000, 0x100000, CRC(61099e5a) SHA1(41fa30c070e28024b54793c4953959f4508f7f86) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96s12 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214hc12.p1", 0x000000, 0x100000, CRC(b60b513e) SHA1(8f7cadf846b2fa36ec503ed0abf5363bf39a920f) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96s13 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214hc13.p1", 0x000000, 0x100000, CRC(aa228af9) SHA1(bd6c669e7e73a4ac44e6b73ae8bce93c08067c6f) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96s14 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214hc14.p1", 0x000000, 0x100000, CRC(b2d78213) SHA1(4beed129319f0faa3f576668ff9e1e88546d2d6f) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96s15 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214hc15.p1", 0x000000, 0x100000, CRC(be961ca2) SHA1(21c431082fe8fdf242651efb12a30cf157c77e49) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96s16 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214hc16.p1", 0x000000, 0x100000, CRC(8062ff71) SHA1(8ae80dc7b718957cff5173364f74c213b2bf326c) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96s17 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214hc17.p1", 0x000000, 0x100000, CRC(9c2b6672) SHA1(b527aadce6aa86a59bc386fe4a18e9949b1ce01d) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96s18 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214hc18.p1", 0x000000, 0x100000, CRC(eadf6196) SHA1(83bfa14bd7cc1a5e88c924c5426002a43e099ccb) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96s19 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214hc19.p1", 0x000000, 0x100000, CRC(960e6693) SHA1(675a26cae4f1de9d9d148bfc6dd8025d34becc51) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96s20 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214hc20.p1", 0x000000, 0x100000, CRC(0c64c797) SHA1(fc6fb4f18a64bc334a6a930069edd54f7cae2be1) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96s21 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214hc21.p1", 0x000000, 0x100000, CRC(9d6ec18e) SHA1(94583bad6fd02ad9619fd7068b000372687455f2) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96s22 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214hc22.p1", 0x000000, 0x100000, CRC(3ced483d) SHA1(9243d0a035b69e68f244f341c16f89780e764752) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96s23 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214hc23.p1", 0x000000, 0x100000, CRC(51db63ba) SHA1(a4d3e6c40dc35f369932a29f234f203d126a67e0) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96s24 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214hc24.p1", 0x000000, 0x100000, CRC(46bf3e96) SHA1(5cf40c3f3bb9f3644562fb4d592b096a57f2a157) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96s25 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214hc25.p1", 0x000000, 0x100000, CRC(1f219356) SHA1(68a7c2fb42a626eb9e2921e92b6a33ac146c15a4) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96s26 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214hc26.p1", 0x000000, 0x100000, CRC(514730ab) SHA1(04b6a1a45f73c5333755e88d215dce05c9f82cbc) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96s27 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214hc27.p1", 0x000000, 0x100000, CRC(78d4d1a9) SHA1(84c4ebace4696fee914a17c44dd723ed3dfac84a) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96s28 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214hc28.p1", 0x000000, 0x100000, CRC(8c72165b) SHA1(fe7e64ea2a3a8fbdafed30c8d0ff7d49302c12d7) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96s29 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214hc29.p1", 0x000000, 0x100000, CRC(dbaa2fd3) SHA1(46105395599e46653aa94418e32f0acebb5b62d5) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96s30 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214hc30.p1", 0x000000, 0x100000, CRC(271a6aa7) SHA1(7fcf8d28a39606389eb34639adba741f39f4b50b) )
+ ROM_LOAD16_WORD_SWAP( "214oib2.p2", 0x100000, 0x200000, CRC(2e6fe5e2) SHA1(cfd8e35201bff14a76cdfbec42ef01b7abad5a60) )
+
+ NEO_SFIX_128K( "214oib.s1", CRC(794769b4) SHA1(45b74cc5f875ff2c95545a4a21599af4b3a54078) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214oib.c5", 0x1000000, 0x400000, CRC(5ad89fe4) SHA1(4e53740ebd0f87bf33947c4ca6f6b64f98f1846a) )
+ ROM_LOAD16_BYTE( "214oib.c6", 0x1000001, 0x400000, CRC(77dd026e) SHA1(410ddfd9901cdab8dfca1e44c1b583f218e208d9) )
+ ROM_LOAD16_BYTE( "214oib2.c7", 0x1800000, 0x400000, CRC(87348536) SHA1(df871243a15e9fbe0e6c9c6210c83c4853aa11c8) )
+ ROM_LOAD16_BYTE( "214oib2.c8", 0x1800001, 0x400000, CRC(bee6c915) SHA1(884ff9f7b4262d55fdc8750de471a7067a17ea7d) )
+ROM_END
+
+ROM_START( kof96s31 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214hc31.p1", 0x000000, 0x100000, CRC(88dc17a5) SHA1(9fc01cb78ed507c0d6e162fe2f5ebccd7b7ae1e8) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96s32 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214hc32.p1", 0x000000, 0x100000, CRC(906da21f) SHA1(f7170720746744695baab75879500159ce8efdf9) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96s33 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214hc33.p1", 0x000000, 0x100000, CRC(caa9f327) SHA1(a0079d82275ae81c06b4f658b8636ed11154a823) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96s34 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214hc34.p1", 0x000000, 0x100000, CRC(285bf25e) SHA1(617267bdce30cc2f95e6aadbbe3ad2a19adf1ca4) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96s35 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214hc35.p1", 0x000000, 0x100000, CRC(de915e5f) SHA1(ea69e816b579e7f24830ed27c2e4d7ba47600aba) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96s36 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214hc36.p1", 0x000000, 0x100000, CRC(36296b0d) SHA1(93eec64e3fa81628dfbfaf5f3a607ca3dff45a25) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96s37 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214hc37.p1", 0x000000, 0x100000, CRC(f8d1ec12) SHA1(27b2f0f9add4bd24ae03098b7b99fc19bdb4c2aa) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96s38 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214hc38.p1", 0x000000, 0x100000, CRC(48bbda73) SHA1(6750456a4755d1b13818c0e74bccb80ceac3145c) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96s39 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214hc39.p1", 0x000000, 0x100000, CRC(fc04c9bb) SHA1(dfb41e292a90eff7856ec8cb5e8cd05b12fd6825) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96s40 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214hc40.p1", 0x000000, 0x100000, CRC(13028e27) SHA1(5036c69b0f72a35b83a8101f067528ca63de62a2) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96s41 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214hc41.p1", 0x000000, 0x100000, CRC(bf933a29) SHA1(d89f2dac784dd94e2926ad2eecb02ae7415d3115) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96s42 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214hc42.p1", 0x000000, 0x100000, CRC(5bb2c292) SHA1(cae154876b49eb6289fbeb7f9630be21fc8e2f32) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96s43 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214hc43.p1", 0x000000, 0x100000, CRC(69f14c21) SHA1(45662983ce3a4f2c45b9bbf73da7c5ea465eef9f) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96s44 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214hc44.p1", 0x000000, 0x100000, CRC(059bd21d) SHA1(b2f0ea397302cfd75f13c794f71f28cd0405da58) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96s45 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214hc45.p1", 0x000000, 0x100000, CRC(08921814) SHA1(40a348263ec469d25b1e1858e3e3cf4e314e3b9b) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96s47 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214hc47.p1", 0x000000, 0x100000, CRC(5343e1cd) SHA1(402aeabfdcb0ec4b75d5a5825ad03c137d69c163) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96s48 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214hc48.p1", 0x000000, 0x100000, CRC(db28c610) SHA1(9cd9119acdc54548413126e6e9d944fbe098fe40) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96s49 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214hc49.p1", 0x000000, 0x100000, CRC(78528cba) SHA1(e5314fc700645a8fcf9b3a0ba250e7aaade7186c) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96s50 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214hc50.p1", 0x000000, 0x100000, CRC(43859a40) SHA1(4ed6b66fe94e46ff7e1d3bbd526cf84cb1e4007b) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214rsc.s1", CRC(133bf9c6) SHA1(7c52137da4e79fd88e1864cac3a7db4bfe0ae0eb) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96s51 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214hc51.p1", 0x000000, 0x100000, CRC(72ace3c1) SHA1(e4dad1cdc231fbdf01d70a4df228ed3017d2d86a) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214rss.s1", CRC(f304df75) SHA1(f696aed96dba4a086415374c7bbdf8c3b4f5b457) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96s53 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214hc53.p1", 0x000000, 0x100000, CRC(0243c487) SHA1(3109394691dbae719f7966e38ea8156d928ccd54) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xE00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96s54 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214hc54.p1", 0x000000, 0x100000, CRC(23921c27) SHA1(dcc4acbe028702fbfadafde15c63621aa023329b) )
+ ROM_LOAD16_WORD_SWAP( "214hc54.sp2", 0x100000, 0x200000, CRC(44941a9d) SHA1(9beaebd001f01318e870ce7166d5bea33c699804) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96s55 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214hc54.p1", 0x000000, 0x100000, CRC(23921c27) SHA1(dcc4acbe028702fbfadafde15c63621aa023329b) )
+ ROM_LOAD16_WORD_SWAP( "214ep2.p2", 0x100000, 0x200000, CRC(9c57ae89) SHA1(65140219665938fe5365c2e4d1efd3424eaadd2f) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96s56 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214hc54.p1", 0x000000, 0x100000, CRC(23921c27) SHA1(dcc4acbe028702fbfadafde15c63621aa023329b) )
+ ROM_LOAD16_WORD_SWAP( "214hc56.sp2", 0x100000, 0x200000, CRC(d623011b) SHA1(c28adc2b13a4e88f433fdcd60d867b87f2acf591) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96s57 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214hc57.p1", 0x000000, 0x100000, CRC(908ccdd3) SHA1(a0675842fddd2389fedddcec9a29d6c3f4cc794c) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96s58 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214hc58.p1", 0x000000, 0x100000, CRC(e07d3b35) SHA1(52c1c9faffe6fc7b4f9abc7958c354c5662a1215) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+GAME( 2016, kof96s01, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'96 (Description Of Unknown Origin 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof96s02, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'96 (Description Of Unknown Origin 02)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof96s03, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'96 (Description Of Unknown Origin 03)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof96s04, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'96 (Description Of Unknown Origin 04)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof96s05, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'96 (Description Of Unknown Origin 05)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof96s06, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'96 (Description Of Unknown Origin 06)", MACHINE_SUPPORTS_SAVE )
+///GAME( 2016, kof96s07, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'96 (Description Of Unknown Origin XXXX)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof96s08, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'96 (Description Of Unknown Origin 07)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof96s09, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'96 (Description Of Unknown Origin 08)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof96s10, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'96 (Description Of Unknown Origin 09)", MACHINE_SUPPORTS_SAVE )
+///GAME( 2016, kof96s11, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'96 (Description Of Unknown Origin XXXX)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof96s12, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'96 (Description Of Unknown Origin 10)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof96s13, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'96 (Description Of Unknown Origin 11)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof96s14, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'96 (Description Of Unknown Origin 12)", MACHINE_SUPPORTS_SAVE )
+///GAME( 2016, kof96s15, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'96 (Description Of Unknown Origin XXXX)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof96s16, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'96 (Description Of Unknown Origin 13)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof96s17, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'96 (Description Of Unknown Origin 14)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof96s18, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'96 (Description Of Unknown Origin 15)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof96s19, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'96 (Description Of Unknown Origin 16)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof96s20, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'96 (Description Of Unknown Origin 17)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof96s21, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'96 (Description Of Unknown Origin 18)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof96s22, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'96 (Description Of Unknown Origin 19)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof96s23, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'96 (Description Of Unknown Origin 20)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof96s24, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'96 (Description Of Unknown Origin 21)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof96s25, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'96 (Description Of Unknown Origin 22)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof96s26, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'96 (Description Of Unknown Origin 23)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof96s27, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'96 (Description Of Unknown Origin 24)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof96s28, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'96 (Boss, Like NeogeoCD Version, Eddids Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof96s29, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'96 (Description Of Unknown Origin 26)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof96s30, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'96 (Special Orochi Iori/Boss Hack v3.0 alt 02)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof96s31, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'96 (Description Of Unknown Origin 28)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof96s32, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'96 (Description Of Unknown Origin 29)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof96s33, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'96 (Description Of Unknown Origin 30)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof96s34, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'96 (Description Of Unknown Origin 31)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof96s35, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'96 (Description Of Unknown Origin 32)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof96s36, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'96 (Description Of Unknown Origin 33)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof96s37, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'96 (Description Of Unknown Origin 34)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof96s38, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'96 (Description Of Unknown Origin 35)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof96s39, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'96 (Description Of Unknown Origin 36)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof96s40, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'96 (Description Of Unknown Origin 37)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof96s41, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'96 (Description Of Unknown Origin 38)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof96s42, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'96 (Description Of Unknown Origin 39)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof96s43, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'96 (Description Of Unknown Origin 40)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof96s44, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'96 (Description Of Unknown Origin 41)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof96s45, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'96 (Description Of Unknown Origin 42)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof96s47, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'96 (Description Of Unknown Origin 43)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof96s48, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'96 (Description Of Unknown Origin 44)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof96s49, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'96 (Description Of Unknown Origin 45)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof96s50, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'96 (Description Of Unknown Origin 46)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof96s51, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'96 (Description Of Unknown Origin 47)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof96s53, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'96 (Description Of Unknown Origin 48)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof96s54, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'96 (Description Of Unknown Origin 49)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof96s55, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'96 (Description Of Unknown Origin 50)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof96s56, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'96 (Description Of Unknown Origin 51)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof96s57, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'96 (Description Of Unknown Origin 52)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof96s58, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'96 (Description Of Unknown Origin 53)", MACHINE_SUPPORTS_SAVE )
+
+
diff --git a/src/hbmame/drivers/kof97.cpp b/src/hbmame/drivers/kof97.cpp
new file mode 100644
index 00000000000..ade5a960230
--- /dev/null
+++ b/src/hbmame/drivers/kof97.cpp
@@ -0,0 +1,5144 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+
+
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, kof97pla )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,1);
+ // The following was used in Ash build, purpose unknown:
+ //m_bootleg_prot->patch_kof97pla(cpuregion, cpuregion_size);
+ // This contains:
+ //void ngbootleg_prot_device::patch_kof97pla(UINT8* cpurom, UINT32 cpurom_size)
+ //cpurom[0x1394A] = 0x6C;
+ //cpurom[0x1394B] = 0xD1;
+ //cpurom[0x1394C] = 0x3A;
+ //cpurom[0x1394D] = 0x1;
+ //cpurom[0x1394E] = 0x6C;
+ //cpurom[0x1394F] = 0x91;
+}
+
+
+
+ROM_START( kof97aa )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232aa.p1", 0x000000, 0x100000, CRC(35a1a664) SHA1(5fc3835e5a3747f5e5d6bfe63e1562e33d26526e) )
+ ROM_LOAD16_WORD_SWAP( "232aa.p2", 0x100000, 0x400000, CRC(6a732dff) SHA1(c3199941b69db945a7d754c52261aa97d39bb316) )
+
+ NEO_SFIX_128K( "kf97-s1p.bin", CRC(73254270) SHA1(8d06305f9d8890da1327356272b88bdd0dc089f5) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97ae )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232ae.p1", 0x000000, 0x100000, CRC(02ac80f0) SHA1(3273b537f927ed819f39d13be37c40eea4cc5db0) )
+ ROM_LOAD16_WORD_SWAP( "232ae.p2", 0x100000, 0x400000, CRC(8cffe3f3) SHA1(c2dcac7d41576ddf97b585f515a9418f6b931e29) )
+
+ NEO_SFIX_128K( "232ae.s1", CRC(d4957067) SHA1(b756c97b050296db9b00e0bc6cdd79e4d2e2273e) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232ae.c1", 0x0000000, 0x800000, CRC(ea16b711) SHA1(e54d1a0b559f1ef326ee86bc89e9f1b399f08b32) )
+ ROM_LOAD16_BYTE( "232ae.c2", 0x0000001, 0x800000, CRC(b7bef674) SHA1(378a67dfa7dba03900dd7c70a3473c12f9879af1) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97ae1 )
+ ROM_REGION( 0x700000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232ae1.p1", 0x000000, 0x100000, CRC(49cfaded) SHA1(e42d4ccd8e91747e4f87799bb813a0e6382b79db) )
+ ROM_LOAD16_WORD_SWAP( "232ae1.p2", 0x100000, 0x600000, CRC(030a85fb) SHA1(afe2249bde61ef401c2cfae9dddb3a6b51c258d9) )
+
+ NEO_SFIX_128K( "232ae1.s1", CRC(67d4cd7a) SHA1(b4f7d6a10523aa1d6322a04dc755ed4258003de0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232ae1.c1", 0x0000000, 0x800000, CRC(bc35a6dc) SHA1(81d0b5a2c7fb6f5d0f19e3ab3ef2cc9d98806532) )
+ ROM_LOAD16_BYTE( "232ae1.c2", 0x0000001, 0x800000, CRC(66bf2938) SHA1(a45933a286cf6c1d4e63f687819262751650a9cd) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97aot ) // all confirmed
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232aot.p1", 0x000000, 0x100000, CRC(edd3bd8f) SHA1(7c422db860c9b8c8caf933bfabbc43b891fc0a5e) )
+ ROM_LOAD16_WORD_SWAP( "232zm.p2", 0x100000, 0x400000, CRC(ca11478d) SHA1(484533266ba677fa2930e977226c4b72a59de8e2) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97bh ) /* The King of Fighters '97 - Hack by Dodowang - (Can choose Orochi + add. Iori, Yashiro, Shermie, Chris and Leona - Orochi has icon in menue - extra stage select) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232bh.p1", 0x000000, 0x100000, CRC(b49a3fcf) SHA1(2dcb95e184b86a455ef23b70aca00bbcd28f23c5) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232bh.s1", CRC(71c426e6) SHA1(1fd4a2537daf6a26e1e2707183b0f1762d7a25ff) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97bng )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232bng.p1", 0x000000, 0x100000, CRC(8d699492) SHA1(a70958426a6de040f3af5a6050e6e8f82c016aa0) )
+ ROM_LOAD16_WORD_SWAP( "232bng.p2", 0x100000, 0x400000, CRC(d86d0095) SHA1(53d76659dacc6a7d3113fd51c29904e2ef0cf171) )
+
+ NEO_SFIX_128K( "232bng.s1", CRC(c24e2cb7) SHA1(79f298997b773ed869a49a897aa38b74a43b051c) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232yk.c1", 0x0000000, 0x800000, CRC(d504bf4a) SHA1(a58f6c07080c666ae1bb3e2dbab4790feab5ccc7) )
+ ROM_LOAD16_BYTE( "232yk.c2", 0x0000001, 0x800000, CRC(942ea708) SHA1(20389bdb253611745c5515206b1eb620a1574711) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232bng.c5", 0x2000000, 0x400000, CRC(e749d4d2) SHA1(8f4c54c0355decebfc47b8d11b863dcd84647688) )
+ ROM_LOAD16_BYTE( "232bng.c6", 0x2000001, 0x400000, CRC(dc7c5cd7) SHA1(f33b62a1ded71edf0b2bd8e6f2495da34c7b1984) )
+ROM_END
+
+ROM_START( kof97bs )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232bs.p1", 0x000000, 0x100000, CRC(6802a9d1) SHA1(e5ccd06e96a12133d5176f154209b4c766009cb0) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232bs.c1", 0x0000000, 0x800000, CRC(47932f00) SHA1(3dcedd194a2138cd8b006462a42b52e925f6b5ce) )
+ ROM_LOAD16_BYTE( "232bs.c2", 0x0000001, 0x800000, CRC(f87c3d84) SHA1(0de2dcb6a475ea6475d67c60a254e6b7cbcde951) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97cb2 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232cb2.p1", 0x000000, 0x100000, CRC(4fb095a5) SHA1(1d8ae617967c8d96aa219b674568063e5a0d9b27) )
+ ROM_LOAD16_WORD_SWAP( "232cb2.p2", 0x100000, 0x400000, CRC(203d656a) SHA1(e3ee823a881527483908d4466fefcd0875503193) )
+
+ NEO_SFIX_128K( "232cb2.s1", CRC(8fe6d842) SHA1(e209b7fca380093f711d3b3396f1160beb7b33bd) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97chl ) /* [OLD] The King of Fighters '97 - (kof97chl) - Revise by CHL - (Character move change by chl 20030325) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232chl.p1", 0x000000, 0x100000, CRC(ce99174b) SHA1(3ff2e0c71e24c55741c9718725d214368a144c53) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97chl2 ) /* [OLD] The King of Fighters '97 - (kof97chl2) - Revise by CHL - (Character move change by chl revision 2 20030409) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232chl2.p1", 0x000000, 0x100000, CRC(fd7efa7d) SHA1(383aa8054ec1a1b832983fbacfc93e6740712e18) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97chris )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232-p1.p1", 0x000000, 0x100000, CRC(7db81ad9) SHA1(8bc42be872fd497eb198ca13bf004852b88eb1dc) )
+ ROM_LOAD16_WORD_SWAP( "232chris.p2", 0x100000, 0x400000, CRC(2b43d718) SHA1(e932a7d5f215baaf799cfc64f80bb8a1312ab82a) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232chris.c5", 0x2000000, 0x800000, CRC(7a47b7c7) SHA1(a12a0cf57f5d81bb6d8eab0429f6204427c52c75) )
+ ROM_LOAD16_BYTE( "232chris.c6", 0x2000001, 0x800000, CRC(867c138b) SHA1(fa9c5237ed5d59aed23b8df5bb2504e629433e01) )
+ROM_END
+
+ROM_START( kof97cn )
+ ROM_REGION( 0x700000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232cn.p1", 0x000000, 0x100000, CRC(082933c8) SHA1(e6f8bc7eb0e4ed25b37cc9324ccf170c69331212) )
+ ROM_LOAD16_WORD_SWAP( "232cn.p2", 0x100000, 0x600000, CRC(d22d3ca3) SHA1(f7cb7cbd7dd043c5436030b8280456271a4d782a) )
+
+ NEO_SFIX_128K( "232cn.s1", CRC(de5ad278) SHA1(3d041c5e51b5076dacef235cd2847b09722e86a2) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232cn.c1", 0x0000000, 0x800000, CRC(8c3d2c0c) SHA1(e61e0e3620a35695a80403a91ba9b889e38c2581) )
+ ROM_LOAD16_BYTE( "232cn.c2", 0x0000001, 0x800000, CRC(43ce69ae) SHA1(16b65a55d4631602d751bd91ef9bdc49fedd41fe) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97co )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232co.p1", 0x000000, 0x100000, CRC(117cb452) SHA1(df7fad0484e486fe743899cc07ac2a9eb5e98ebd) )
+ ROM_LOAD16_WORD_SWAP( "232co.p2", 0x100000, 0x400000, CRC(4a97480c) SHA1(a12b05c4f8c4305d809fafe8d525cdb2ee0e0e7e) )
+
+ NEO_SFIX_128K( "232cb2.s1", CRC(8fe6d842) SHA1(e209b7fca380093f711d3b3396f1160beb7b33bd) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97co6 ) // Ivex's KOF97 COMBO 2006
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232co6.p1", 0x000000, 0x100000, CRC(9a8762e2) SHA1(c4b6c330acc9dfd1cb8bb3389dfe3881ed689cb4) )
+ ROM_LOAD16_WORD_SWAP( "232co6.p2", 0x100000, 0x400000, CRC(3586a046) SHA1(3eb354d929bbf36188a7e99798ee37ce18c4a377) )
+
+ NEO_SFIX_128K( "232co6.s1", CRC(e9960efa) SHA1(2af54d22368204e70ac7b6697ba4ad148271c08b) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97cr ) /* The King of Fighters '97 - Remix by CHL Hack by Leather - (Character move and behaviour change - extra stage select) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232cr.p1", 0x000000, 0x100000, CRC(76ec749d) SHA1(7b8c208eb6559f350a0fac031b936d6e04928ae6) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97cy ) // all confirmed
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232cy.p1", 0x000000, 0x4550c4, CRC(070d8bd6) SHA1(2565bd372bb2a1aa88b55b770e48e7bfc82823d8) )
+ ROM_LOAD16_WORD_SWAP( "232cy.p2", 0x100000, 0x400000, CRC(97fd8943) SHA1(2127846451507769d49747f42c97be5b1a82ad93) )
+
+ //NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+ NEO_SFIX_MT_128K
+ ROM_LOAD( "232cy.s1", 0x000000, 0x20000, CRC(aaef5283) SHA1(e2b3fcedebf22cc40e671a651678b5a68868f701) )
+ ROM_IGNORE( 0x434f55 )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232cy.c1", 0x0000000, 0x800000, CRC(503850f7) SHA1(004cc243a424bbe3b81c32ba513999c2fdd2b430) )
+ ROM_LOAD16_BYTE( "232cy.c2", 0x0000001, 0x800000, CRC(ce3b418b) SHA1(8f605f0ea992b954bd540435156ce0cafaa5abed) )
+ ROM_LOAD16_BYTE( "232cy.c3", 0x1000000, 0x800000, CRC(52e5f3a7) SHA1(bae549239b0422dfb26b24c6d4a1e501dbb00cf0) )
+ ROM_LOAD16_BYTE( "232cy.c4", 0x1000001, 0x800000, CRC(b97c21e3) SHA1(8d79460de1ac0cf147292b9018661a729140e3f9) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97dse ) // All confirmed
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232dse.p1", 0x000000, 0x100000, CRC(8f00511f) SHA1(7c04420f8d35034ac3995bc0764d444c843184f1) )
+ ROM_LOAD16_WORD_SWAP( "232dse.p2", 0x100000, 0x400000, CRC(0fa5639a) SHA1(ead4d2c4d6d13160170d121b9244eaf427637aaa) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97eh ) /* The King of Fighters '97 - Super Enhance Hack by Creamymami, Leather and Ydmis - (Can choose Orochi + 5 add. characters - ultra kill start is max in Advanced Mode - ultra power hack ABC - extra stage select) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232eh.p1", 0x000000, 0x100000, CRC(3d4eb515) SHA1(7d1ca643fb3872495fa681bc28a975d92822b7f0) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97eh2 ) /* The King of Fighters '97 - Super Enhance Hack by Leather and Ydmis - (Can choose Orochi + 5 add. characters - ultra kill start is max in Advanced Mode - power hack ABC - extra stage select) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232eh2.p1", 0x000000, 0x100000, CRC(dc81f242) SHA1(24457a3570b8ef802d90576f4e32f1701ebf2018) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97eho ) /* The King of Fighters '97 - Enhance by Ydmis - (Can choose Orochi + 5 add. characters - ultra kill start is max in Advanced Mode - power hack ABC) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232eho.p1", 0x000000, 0x100000, CRC(83caa31c) SHA1(8db7f86464b91a56a168ec3d639f4c1fbaaa0499) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97ei ) // all confirmed (diff colours of kof97co)
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232ei.p1", 0x000000, 0x100000, CRC(5d8e9114) SHA1(5d9262c17758d64524f1af8266d16f336df283f9) )
+ ROM_LOAD16_WORD_SWAP( "232ei.p2", 0x100000, 0x400000, CRC(39259db2) SHA1(741a9ab344f182c06806b1ee4d2e2b8f5521bf6e) )
+
+ NEO_SFIX_128K( "232ae.s1", CRC(d4957067) SHA1(b756c97b050296db9b00e0bc6cdd79e4d2e2273e) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232ae.c1", 0x0000000, 0x800000, CRC(ea16b711) SHA1(e54d1a0b559f1ef326ee86bc89e9f1b399f08b32) )
+ ROM_LOAD16_BYTE( "232ae.c2", 0x0000001, 0x800000, CRC(b7bef674) SHA1(378a67dfa7dba03900dd7c70a3473c12f9879af1) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97evo ) // Evolution
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232evo.p1", 0x000000, 0x100000, CRC(8ee0d743) SHA1(7bfd8428efb0a738decccf0f2120dac1c4bc3a6a) )
+ ROM_LOAD16_WORD_SWAP( "232evo.p2", 0x100000, 0x400000, CRC(5cbb2499) SHA1(58e21c1ff7afbfcca0a733e2b3e9f54b2317ed42) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97evoa ) // Old evolution
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232evoa.p1", 0x000000, 0x100000, CRC(d439c4ed) SHA1(67117ffce3c95615d75eb298c50224685df5f0b7) )
+ ROM_LOAD16_WORD_SWAP( "232evoa.p2", 0x100000, 0x400000, CRC(d7da3056) SHA1(85327e846a60dbe24d997fe2dc1714e884bb46d1) )
+
+ NEO_SFIX_128K( "232evoa.s1", CRC(f3c0e90a) SHA1(257f20127a39e8534fe84fbcf2565b162feef4a5) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97frb ) // all confirmed
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232frb.p1", 0x000000, 0x100000, CRC(3c5e84fc) SHA1(b71391369293a81cb22a849e1682e141e9d8c0b3) )
+ //ROM_LOAD16_WORD_SWAP( "232frb.pg1", 0x000000, 0x100000, CRC(5c2400b7) SHA1(49e23f80c012c62146a1bb8f254a7597823de430) ) // alternate rom in the set
+ ROM_LOAD16_WORD_SWAP( "232frb.p2", 0x100000, 0x400000, CRC(f7e09607) SHA1(f64d394226876e1d189549ba0fd7fb3c4fd9df82) )
+
+ NEO_SFIX_128K( "232frb.s1", CRC(3c9af3f7) SHA1(7320fa38fc6db4f3ab6077d2541bb16fa5fb31ef) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232frb.c1", 0x0000000, 0x800000, CRC(6f837a71) SHA1(dfc6dcb9e3def1c78fb43550a332657fae68650f) )
+ ROM_LOAD16_BYTE( "232frb.c2", 0x0000001, 0x800000, CRC(c1a51c17) SHA1(38b8862267daf7975a235dc72cf787256ca108fb) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97hk ) // Evolution Hakeshu
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232evoa.p1", 0x000000, 0x100000, CRC(d439c4ed) SHA1(67117ffce3c95615d75eb298c50224685df5f0b7) )
+ ROM_LOAD16_WORD_SWAP( "232hk.p2", 0x100000, 0x400000, CRC(e912c4b8) SHA1(78df184e5000f871e0188b1b7785291525ca11e6) )
+
+ NEO_SFIX_128K( "232evoa.s1", CRC(f3c0e90a) SHA1(257f20127a39e8534fe84fbcf2565b162feef4a5) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232xxx.c1", 0x0000000, 0x800000, CRC(91697765) SHA1(19ea6bf74da9dd4fed4213d82cb7d003a871599b) )
+ ROM_LOAD16_BYTE( "232xxx.c2", 0x0000001, 0x800000, CRC(0c069a41) SHA1(094f587325acc55b6663a17fce6ea0920331a3ff) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232hk.c5", 0x2000000, 0x800000, CRC(03aa727d) SHA1(e8e571fb00252dccc68ecfc9e20cf5e64491e6a4) )
+ ROM_LOAD16_BYTE( "232hk.c6", 0x2000001, 0x800000, CRC(d7663c50) SHA1(790c761a5fab033851700de3d63d7ab4257f6caf) )
+ROM_END
+
+ROM_START( kof97hl ) // Fall Ban Edition
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hl.p1", 0x000000, 0x100000, CRC(16767f2b) SHA1(84ee5c13d437611706a429635cb51fe61d477c02) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97hxd ) /* The King of Fighters '97 - Hack by Hxdhome - (Can choose Orochi + 5 add. characters) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hxd.p1", 0x000000, 0x100000, CRC(ec95b2cf) SHA1(0f5ac8bc9eaeb32441ee72a9ce93fbb9d9462359) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97ice ) /* The King of Fighters '97 - Colour fix by Cz-Kyo97 - (Colour change - ice) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232-p1.p1", 0x000000, 0x100000, CRC(7db81ad9) SHA1(8bc42be872fd497eb198ca13bf004852b88eb1dc) )
+ ROM_LOAD16_WORD_SWAP( "232ice.p2", 0x100000, 0x400000, CRC(b26e3767) SHA1(6b3d513b523d3513e9300db54891abd1079a5865) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97irgc ) // All confirmed
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232irgc.p1", 0x000000, 0x100000, CRC(fbc9341f) SHA1(fb9605f94a438aa79ad03fb9fd6f5fca7a6d1edb) )
+ ROM_LOAD16_WORD_SWAP( "232irgc.p2", 0x100000, 0x400000, CRC(6c9092ba) SHA1(d17d4349c799dcba22b383d36f0cfc8e2bac7adf) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232rev.c5", 0x2000000, 0x400000, CRC(9c543bc6) SHA1(cb227c71aca5e632a08fbd7f5af53581b5b28f93) )
+ ROM_LOAD16_BYTE( "232rev.c6", 0x2000001, 0x400000, CRC(e3feb991) SHA1(978b106bccd31c8229c9abcc6e682a7b5fc98154) )
+ROM_END
+
+ROM_START( kof97irgc2 ) // All confirmed (was "kof97yb" when found)
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232irgc2.p1", 0x000000, 0x100000, CRC(14532350) SHA1(093d1da101a39c371512416ee90cd2e15c92723a) )
+ ROM_LOAD16_WORD_SWAP( "232irgc2.p2", 0x100000, 0x400000, CRC(696ae4a5) SHA1(be8341ef598bd95c07a1218d1cfcc3f82bbbd6b7) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232rev.c5", 0x2000000, 0x400000, CRC(9c543bc6) SHA1(cb227c71aca5e632a08fbd7f5af53581b5b28f93) )
+ ROM_LOAD16_BYTE( "232rev.c6", 0x2000001, 0x400000, CRC(e3feb991) SHA1(978b106bccd31c8229c9abcc6e682a7b5fc98154) )
+ROM_END
+
+ROM_START( kof97kai )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232kai.p1", 0x000000, 0x100000, CRC(e96524fe) SHA1(e9a523233228ed57bdbc2b8eb620054cadb381f2) )
+ ROM_LOAD16_WORD_SWAP( "232kai.p2", 0x100000, 0x400000, CRC(839c4b8c) SHA1(23ae586feef65ab091fe02eb9d845cedfc4e00b1) )
+
+ NEO_SFIX_128K( "232kai.s1", CRC(1455f002) SHA1(6e164be5303e75f366eb1172423b8552a9257a9c) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97kp ) /* The King of Fighters '97 - Hack by KofPerfect - (Can choose Orochi) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232kp.p1", 0x000000, 0x100000, CRC(f29de6b6) SHA1(aafb7925df9fed83762ecf363855b971baaf614f) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97kp1 )
+ ROM_REGION( 0x700000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232kp1.p1", 0x000000, 0x100000, CRC(d0c63184) SHA1(71cc96a0388a09695cfa5b5f7c04dbb40ab49615) )
+ ROM_LOAD16_WORD_SWAP( "232kp1.p2", 0x100000, 0x600000, CRC(fddde211) SHA1(6e8280ad7a9dda204f30e40d9575e31d3e436ef2) )
+
+ NEO_SFIX_128K( "232yk1.s1", CRC(c7dbe270) SHA1(0b81b31da6c18dd02e8d0442100685d5ff61bece) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232yk1.c1", 0x0000000, 0x800000, CRC(f748da71) SHA1(5012e8537e7d16d365d9c088a70323b3b71cd6f5) )
+ ROM_LOAD16_BYTE( "232kp1.c2", 0x0000001, 0x800000, CRC(5869e4ad) SHA1(17b3d921ad0118e9fb61fd665639901c4b3bc2f5) )
+ ROM_LOAD16_BYTE( "232yk1.c3", 0x1000000, 0x800000, CRC(ffb025af) SHA1(64913b51b496a13a92317008d2a15543e6c89ba9) )
+ ROM_LOAD16_BYTE( "232yk1.c4", 0x1000001, 0x800000, CRC(7182157c) SHA1(306a968ae325d0b7d647e7fdb36a3a07bacda923) )
+ ROM_LOAD16_BYTE( "232yk1.c5", 0x2000000, 0x800000, CRC(00a77a26) SHA1(a86054fd3870be49ad6055a2fab663cb5ef27de2) )
+ ROM_LOAD16_BYTE( "232yk1.c6", 0x2000001, 0x800000, CRC(0b504e35) SHA1(597cabd5077670827ad3e809d6cd52c9c7f3013a) )
+ROM_END
+
+ROM_START( kof97lb ) // LB70's Quanhuang Shaman 3.0
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232lb.p1", 0x000000, 0x100000, CRC(2e88c8e6) SHA1(87b947e735b52803f87b77033471b156c2e83a4d) )
+ ROM_LOAD16_WORD_SWAP( "232lb.p2", 0x100000, 0x400000, CRC(76111847) SHA1(a7791f28d6f63379b03ea8af292524ffd7784872) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97lc ) /* The King of Fighters '97 - Colour fix by Liuzheng0131 - (Colour change) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232-p1.p1", 0x000000, 0x100000, CRC(7db81ad9) SHA1(8bc42be872fd497eb198ca13bf004852b88eb1dc) )
+ ROM_LOAD16_WORD_SWAP( "232lc.p2", 0x100000, 0x400000, CRC(852cfee6) SHA1(8db51a12a05f2312c2a241027c61711137a0ca94) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97lr )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232lr.p1", 0x000000, 0x100000, CRC(447e81b2) SHA1(26c1056488803782f49d4f8f4ae2df3c840fcf57) )
+ ROM_LOAD16_WORD_SWAP( "232lr.p2", 0x100000, 0x400000, CRC(a9ecc9d7) SHA1(5860da51bd304b2837d30aef698d498c12a13d20) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232lr.c1", 0x0000000, 0x800000, CRC(6c224c0b) SHA1(54ace1387646728ddd2fe3feea4b22c46e75fc7d) )
+ ROM_LOAD16_BYTE( "232lr.c2", 0x0000001, 0x800000, CRC(badf8fa5) SHA1(07381d1d64f5fd4cd11989a2f715298c6d4827cd) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97m )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232m.p1", 0x000000, 0x100000, CRC(eaea9193) SHA1(ca3d9216ae1e092f369f197335ae57fe40d5dcc0) )
+ ROM_LOAD16_WORD_SWAP( "232m.p2", 0x100000, 0x400000, CRC(a50f6113) SHA1(ebe5f66b482e3e3818de0c894cf4b1cb1c262ece) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97mit ) /* The King of Fighters '97 - Enhance by MIT - (Character style enhance, see kof97mit.txt for more 20050324) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232mit.p1", 0x000000, 0x100000, CRC(B96600CE) SHA1(260A42AAF117DE392A32A473E552E73253FC0EA7) )
+ ROM_LOAD16_WORD_SWAP( "232mit.p2", 0x100000, 0x400000, CRC(44FECE8E) SHA1(F1604613267297FF3B375DAD397CE6E1256078E6) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97mj )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232mj.p1", 0x000000, 0x100000, CRC(21f97218) SHA1(8433172fe2df08f608c54479671153803da9d8cf) )
+ ROM_LOAD16_WORD_SWAP( "232mj.p2", 0x100000, 0x400000, CRC(acfec2d1) SHA1(2bb218bcc1bbadb94af0ad2bda49b71cad8e5ef5) )
+
+ NEO_SFIX_128K( "232mj.s1", CRC(436a47bd) SHA1(051185a2ab766e7ab5e6e81628c478c3e89c70b2) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232mj.c1", 0x0000000, 0x800000, CRC(6099f8fa) SHA1(77df1bc28e983d485a92c44b290334052e096d58) )
+ ROM_LOAD16_BYTE( "232mj.c2", 0x0000001, 0x800000, CRC(c7440dfd) SHA1(83040bf02153de6529a163348e6b8aeceeb8799e) )
+ ROM_LOAD16_BYTE( "232yk1.c3", 0x1000000, 0x800000, CRC(ffb025af) SHA1(64913b51b496a13a92317008d2a15543e6c89ba9) )
+ ROM_LOAD16_BYTE( "232yk1.c4", 0x1000001, 0x800000, CRC(7182157c) SHA1(306a968ae325d0b7d647e7fdb36a3a07bacda923) )
+ ROM_LOAD16_BYTE( "232bng.c5", 0x2000000, 0x400000, CRC(e749d4d2) SHA1(8f4c54c0355decebfc47b8d11b863dcd84647688) )
+ ROM_LOAD16_BYTE( "232bng.c6", 0x2000001, 0x400000, CRC(dc7c5cd7) SHA1(f33b62a1ded71edf0b2bd8e6f2495da34c7b1984) )
+ROM_END
+
+ROM_START( kof97nd )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232nd.p1", 0x000000, 0x100000, CRC(fb677720) SHA1(a27205842835564b364f442fd21e95aa70ac0f89) )
+ ROM_LOAD16_WORD_SWAP( "232nd.p2", 0x100000, 0x400000, CRC(edd56448) SHA1(5ce8ac573ffffce0408c2a5f57d44eb9a0d63bd1) )
+
+ NEO_SFIX_128K( "232nd.s1", CRC(85cec2a2) SHA1(476ddddc7aafe0042f0fe07a95398ba1ca96e944) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232xxx.c1", 0x0000000, 0x800000, CRC(91697765) SHA1(19ea6bf74da9dd4fed4213d82cb7d003a871599b) )
+ ROM_LOAD16_BYTE( "232xxx.c2", 0x0000001, 0x800000, CRC(0c069a41) SHA1(094f587325acc55b6663a17fce6ea0920331a3ff) )
+ ROM_LOAD16_BYTE( "232yk.c3", 0x1000000, 0x800000, CRC(b092e64f) SHA1(7d809432d068db8f9056f5210570191416f1a53b) )
+ ROM_LOAD16_BYTE( "232yk.c4", 0x1000001, 0x800000, CRC(d25e8a04) SHA1(52227828e3fdd27399b4cd514551abf856293f47) )
+ ROM_LOAD16_BYTE( "232nd.c5", 0x2000000, 0x400000, CRC(07064635) SHA1(66608e7291c05a10d897c3c342b3a2d98c8cb0a6) )
+ ROM_LOAD16_BYTE( "232nd.c6", 0x2000001, 0x400000, CRC(0f33ade8) SHA1(1228c312d2a77f1678f14606289754a22ad8d03b) )
+ROM_END
+
+ROM_START( kof97ne )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232ne.p1", 0x000000, 0x100000, CRC(E742C038) SHA1(018a0273c959a7885bda850aade75e411c11c633) )
+ ROM_LOAD16_WORD_SWAP( "232ne.p2", 0x100000, 0x400000, CRC(A028904B) SHA1(f099a31d9f61fc9c63f8816f942c13fb67f56d52) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232ne.c5", 0x2000000, 0x400000, CRC(6FE02054) SHA1(47b3a6f0867e15900deb3ffd5f888cbcf6e2bbdd) )
+ ROM_LOAD16_BYTE( "232ne.c6", 0x2000001, 0x400000, CRC(0F96C84A) SHA1(79a8e1ff71051ece0ca6c8f75b0bd1cd567f2e33) )
+ROM_END
+
+ROM_START( kof97neo )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232neo.p1", 0x000000, 0x100000, CRC(676504e1) SHA1(0a802cf782a97a52251582ff35e70f16fb77fc44) )
+ ROM_LOAD16_WORD_SWAP( "232neo.p2", 0x100000, 0x400000, CRC(10f61d2a) SHA1(b687c3813fc262d351a37c6f47cc141a3f4fba00) )
+
+ NEO_SFIX_128K( "232neo.s1", CRC(7995d156) SHA1(d218dd4829b5c4891975a1da9c277a116ab6ecb4) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97nude )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232-p1.p1", 0x000000, 0x100000, CRC(7db81ad9) SHA1(8bc42be872fd497eb198ca13bf004852b88eb1dc) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232xxx.c1", 0x0000000, 0x800000, CRC(91697765) SHA1(19ea6bf74da9dd4fed4213d82cb7d003a871599b) )
+ ROM_LOAD16_BYTE( "232xxx.c2", 0x0000001, 0x800000, CRC(0c069a41) SHA1(094f587325acc55b6663a17fce6ea0920331a3ff) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232xxx.c5", 0x2000000, 0x400000, CRC(f0336a63) SHA1(aefb4ac0341d1b35d1b61395b3baf99af2e9ab98) )
+ ROM_LOAD16_BYTE( "232xxx.c6", 0x2000001, 0x400000, CRC(52968b9f) SHA1(9f3be2219e3c1a19626624ec16f175ac25723bce) )
+ROM_END
+
+ROM_START( kof97phl ) // Plus Hack by Liyang1983
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232phl.p1", 0x000000, 0x100000, CRC(195cb02f) SHA1(6ced6f7c94b0c8a850ee1ae4ffdf2ab5a3c4627f) )
+ ROM_LOAD16_WORD_SWAP( "232phl.p2", 0x100000, 0x400000, CRC(4cb23f07) SHA1(efd888c5cde03a687547e42e494aac2886198b00) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97pj ) /* The King of Fighters '97 - Hack by TcwLee - (A fixed HXD version - can choose Orochi + add. Iori, Yashiro, Shermie, Chris and Leona) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232pj.p1", 0x000000, 0x100000, CRC(91692771) SHA1(ef1c2d7be60798bd778785d6a8d4fd2250b64679) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97pjc ) /* The King of Fighters '97 - (kof97pjc) - Colour fix by TcwLee - (Character colour change) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232-p1.p1", 0x000000, 0x100000, CRC(7db81ad9) SHA1(8bc42be872fd497eb198ca13bf004852b88eb1dc) )
+ ROM_LOAD16_WORD_SWAP( "232pjc.p2", 0x100000, 0x400000, CRC(a42ff099) SHA1(498d14dbf18640e543cb417733c90e7d2f93d715) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97pl2 ) /* Plus hack set 2 */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232pl2.p1", 0x000000, 0x100000, CRC(1a20007a) SHA1 (70d92f1c848b4303d037423549c7b6d596680b23) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232bh.s1", CRC(71c426e6) SHA1(1fd4a2537daf6a26e1e2707183b0f1762d7a25ff) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97pl3 ) /* Plus hack set 3 */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232xxx.p1", 0x000000, 0x100000, CRC(d5d92967) SHA1(04079b92fe73ee8ee2c08f63388a74435e894945) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232pl3.s1", CRC(cf6afb00) SHA1(aca3d9f571af3195a96bf044f353b3f0bc4cfc3a) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97pla )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232pla.p1", 0x000000, 0x100000, CRC(035911c5) SHA1(3321862384ec91174f1822cfdbc2bf1d1407e775) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232pla.s1", CRC(4ee2149a) SHA1(180a1a90021031eac1a643b769d9cdeda56518f5) ) // scrambled
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97plc ) // Plus Black Edition by ZKW
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232plc.p1", 0x000000, 0x100000, CRC(1fc4c254) SHA1(77d6cca4f27c30965f44b39f38bc2cce471d0f92) )
+ ROM_LOAD16_WORD_SWAP( "232plc.p2", 0x100000, 0x400000, CRC(c6901879) SHA1(bcd2998750f89421bef0ae3bae401914cac973df) )
+
+ NEO_SFIX_128K( "232plc.s1", CRC(d8266286) SHA1(ce59a15ec4d8c8a8ae759c10d0ebb5df0bef85d9) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232plc.c5", 0x2000000, 0x400000, CRC(763040eb) SHA1(998df039fce45b13a1dbeecaf44e2f9e290141da) )
+ ROM_LOAD16_BYTE( "232plc.c6", 0x2000001, 0x400000, CRC(60b303b1) SHA1(5da1d5fcdd0dcdf1ff583378ac34a977273e4f2b) )
+ROM_END
+
+ROM_START( kof97plus )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232plus.p1", 0x000000, 0x100000, CRC(0b124634) SHA1(1c272a5601447ee26629eb99482c5de9148615a7) )
+ ROM_LOAD16_WORD_SWAP( "232plus.p2", 0x100000, 0x400000, CRC(1cb2023c) SHA1(6a81f7e7e8aa88e21f50fff1117a051056c90c41) )
+
+ NEO_SFIX_128K( "232kai.s1", CRC(1455f002) SHA1(6e164be5303e75f366eb1172423b8552a9257a9c) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232yk.c3", 0x1000000, 0x800000, CRC(b092e64f) SHA1(7d809432d068db8f9056f5210570191416f1a53b) )
+ ROM_LOAD16_BYTE( "232yk.c4", 0x1000001, 0x800000, CRC(d25e8a04) SHA1(52227828e3fdd27399b4cd514551abf856293f47) )
+ ROM_LOAD16_BYTE( "232z.c5", 0x2000000, 0x400000, CRC(9af776d3) SHA1(a054ca17e6b35c8743286a025488b04186eebdbe) )
+ ROM_LOAD16_BYTE( "232z.c6", 0x2000001, 0x400000, CRC(9428d70c) SHA1(c0122ef6f83645f57edef6956400fe49fd94dfca) )
+ROM_END
+
+ROM_START( kof97pm )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232pm.p1", 0x000000, 0x100000, CRC(34ccabae) SHA1(9d631b5dfac3d7564aa60a17bd15b565081bca02) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97ps ) // Playstation Hack
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232ps.p1", 0x000000, 0x100000, CRC(fc25feec) SHA1(5e2677ce1011789bd74c208cd6b1286f4ca8f4bd) )
+ ROM_LOAD16_WORD_SWAP( "232ps.p2", 0x100000, 0x400000, CRC(90723643) SHA1(62d95957ae51732de30af903dc8f07f5556d15f5) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232ps.c1", 0x0000000, 0x800000, CRC(748ade86) SHA1(3b4d84e978b03f8cd8f2155da524870096e3734f) )
+ ROM_LOAD16_BYTE( "232ps.c2", 0x0000001, 0x800000, CRC(3270fa6e) SHA1(16d6afdf0ed437303a069184bbbbcbc0719f3db6) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232ps.c5", 0x2000000, 0x400000, CRC(47711a8c) SHA1(4105b1326a83d042dd998431c7bea18ee08f124c) )
+ ROM_LOAD16_BYTE( "232ps.c6", 0x2000001, 0x400000, CRC(6703a48a) SHA1(ffdc3f8e65a0197d9fcb9bd0d1d945061bf9736e) )
+ROM_END
+
+ROM_START( kof97rev ) // KOF97 revival
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232rev.p1", 0x000000, 0x100000, CRC(565adea2) SHA1(fa179e2b958096033692bd523571e130f8f52b77) )
+ ROM_LOAD16_WORD_SWAP( "232rev.p2", 0x100000, 0x400000, CRC(96848312) SHA1(198ddbbbc0834b8cdabf1f765d6c82e382de95ff) )
+
+ NEO_SFIX_128K( "232rev.s1", CRC(61a87d84) SHA1(3e5c17c13eacf48c92fbb3863c0af89570e44b31) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232rev.c1", 0x0000000, 0x800000, CRC(ba114558) SHA1(8e66d600b3c65061f83622934585f58ba8809691) )
+ ROM_LOAD16_BYTE( "232rev.c2", 0x0000001, 0x800000, CRC(cb287153) SHA1(d08559131d0fc9900de12433733af176d698dff4) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232rev.c5", 0x2000000, 0x400000, CRC(9c543bc6) SHA1(cb227c71aca5e632a08fbd7f5af53581b5b28f93) )
+ ROM_LOAD16_BYTE( "232rev.c6", 0x2000001, 0x400000, CRC(e3feb991) SHA1(978b106bccd31c8229c9abcc6e682a7b5fc98154) )
+ROM_END
+
+ROM_START( kof97ribe ) // All confirmed
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232ribe.p1", 0x000000, 0x4551c6, CRC(21863b47) SHA1(e3e2b1f6818cd37d5482be9108269b4bbfd7d459) )
+ ROM_LOAD16_WORD_SWAP( "232ribe.p2", 0x100000, 0x400000, CRC(5ad1ecc6) SHA1(83ffffa98013ca8fcec9157846e272b0e1184968) )
+ ROM_IGNORE( 0x054f64 )
+
+ NEO_SFIX_MT_128K
+ ROM_LOAD( "232ribe.v1", 0x000000, 0x20000, CRC(dcefb4c5) SHA1(9d3aebf0af27bc8e148621e3da7b73994e0725a1) )
+ ROM_IGNORE( 0x434f50 )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97rk ) // Hack by Risko
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232rk.p1", 0x000000, 0x100000, CRC(940409b7) SHA1(94d1e0ec3460f5a2087f5fc1e1455df123f18c28) )
+ ROM_LOAD16_WORD_SWAP( "232rk.p2", 0x100000, 0x400000, CRC(b5cc5323) SHA1(30d156629a6cf69a2a9f6efb679c206e4ed9b2bf) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97rst ) // All confirmed
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232rst.p1", 0x000000, 0x100000, CRC(c20d3712) SHA1(f55f781f0affab4d78fa5484ec9ed4254f359c0e) )
+ ROM_LOAD16_WORD_SWAP( "232rst.p2", 0x100000, 0x400000, CRC(ca32e3d2) SHA1(a1c540f9a6e305c3d73b04117a630abe6ba6f0fc) )
+
+ NEO_SFIX_128K( "232rst.s1", CRC(caab5d72) SHA1(1c4f6c6dc30c5d8e2aac3a651913ca9a4742dab3) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232rst.c1", 0x0000000, 0x800000, CRC(ede4fff1) SHA1(7ddc48cd06a71fbc8bac9d9bc36bd0a8395a008e) )
+ ROM_LOAD16_BYTE( "232rst.c2", 0x0000001, 0x800000, CRC(d6957979) SHA1(13d0c0cb480ca4c3f3b96408af54c01c400f989f) )
+ ROM_LOAD16_BYTE( "232yk.c3", 0x1000000, 0x800000, CRC(b092e64f) SHA1(7d809432d068db8f9056f5210570191416f1a53b) )
+ ROM_LOAD16_BYTE( "232yk.c4", 0x1000001, 0x800000, CRC(d25e8a04) SHA1(52227828e3fdd27399b4cd514551abf856293f47) )
+ ROM_LOAD16_BYTE( "232rst.c5", 0x2000000, 0x400000, CRC(6eba5e06) SHA1(939ba1b47e69a3d578f17256dd97d2f4f9238ad4) )
+ ROM_LOAD16_BYTE( "232rst.c6", 0x2000001, 0x400000, CRC(168e4ac5) SHA1(437db7a1388cdd1ff80b703a64655a73443b438f) )
+ROM_END
+
+ROM_START( kof97rst2 ) // All confirmed
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232rst2.p1", 0x000000, 0x100000, CRC(7d6ad86d) SHA1(9b2e9430b11a7c29e547a5a2af5ba9f914925f95) )
+ ROM_LOAD16_WORD_SWAP( "232rst.p2", 0x100000, 0x400000, CRC(ca32e3d2) SHA1(a1c540f9a6e305c3d73b04117a630abe6ba6f0fc) )
+
+ NEO_SFIX_128K( "232rst.s1", CRC(caab5d72) SHA1(1c4f6c6dc30c5d8e2aac3a651913ca9a4742dab3) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232rst.c1", 0x0000000, 0x800000, CRC(ede4fff1) SHA1(7ddc48cd06a71fbc8bac9d9bc36bd0a8395a008e) )
+ ROM_LOAD16_BYTE( "232rst.c2", 0x0000001, 0x800000, CRC(d6957979) SHA1(13d0c0cb480ca4c3f3b96408af54c01c400f989f) )
+ ROM_LOAD16_BYTE( "232yk.c3", 0x1000000, 0x800000, CRC(b092e64f) SHA1(7d809432d068db8f9056f5210570191416f1a53b) )
+ ROM_LOAD16_BYTE( "232yk.c4", 0x1000001, 0x800000, CRC(d25e8a04) SHA1(52227828e3fdd27399b4cd514551abf856293f47) )
+ ROM_LOAD16_BYTE( "232rst.c5", 0x2000000, 0x400000, CRC(6eba5e06) SHA1(939ba1b47e69a3d578f17256dd97d2f4f9238ad4) )
+ ROM_LOAD16_BYTE( "232rst.c6", 0x2000001, 0x400000, CRC(168e4ac5) SHA1(437db7a1388cdd1ff80b703a64655a73443b438f) )
+ROM_END
+
+ROM_START( kof97rst3 ) // All confirmed
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232rst3.p1", 0x000000, 0x100000, CRC(b7e4b5bd) SHA1(1fe4d492492dd4716f1b31319ad68b757c7fab3a) )
+ ROM_LOAD16_WORD_SWAP( "232rst3.p2", 0x100000, 0x400000, CRC(620a63ed) SHA1(20fa7c8d694a7f15715840240192c8d6e34e68b4) )
+
+ NEO_SFIX_128K( "232rst.s1", CRC(caab5d72) SHA1(1c4f6c6dc30c5d8e2aac3a651913ca9a4742dab3) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232rst.c1", 0x0000000, 0x800000, CRC(ede4fff1) SHA1(7ddc48cd06a71fbc8bac9d9bc36bd0a8395a008e) )
+ ROM_LOAD16_BYTE( "232rst.c2", 0x0000001, 0x800000, CRC(d6957979) SHA1(13d0c0cb480ca4c3f3b96408af54c01c400f989f) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97rv )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232rv.p1", 0x000000, 0x100000, CRC(eff2926f) SHA1(d9a64806ace1d2b08d8a5b2092bbfeb93c3230fd) )
+ ROM_LOAD16_WORD_SWAP( "232rv.p2", 0x100000, 0x400000, CRC(478a61bd) SHA1(e826fcf4c3392a833045a285d354a72421a527bc) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232z.c5", 0x2000000, 0x400000, CRC(9af776d3) SHA1(a054ca17e6b35c8743286a025488b04186eebdbe) )
+ ROM_LOAD16_BYTE( "232z.c6", 0x2000001, 0x400000, CRC(9428d70c) SHA1(c0122ef6f83645f57edef6956400fe49fd94dfca) )
+ROM_END
+
+ROM_START( kof97saw ) /* The King of Fighters '97 - (kof97saw) - Hack by Wesker - (Shingo: The content must kill the technique entire flame special effect is the red flame) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232saw.p1", 0x000000, 0x100000, CRC(eb99d0d0) SHA1(43d7495ec873b3c1f9cc33ecdc124f020851e1f7) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97sex )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232-p1.p1", 0x000000, 0x100000, CRC(7db81ad9) SHA1(8bc42be872fd497eb198ca13bf004852b88eb1dc) )
+ ROM_LOAD16_WORD_SWAP( "232sex.p2", 0x100000, 0x400000, CRC(ca63e700) SHA1(1b6a4d3491e467eb3cb0d2d947707482cac3ea34) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232sex.c1", 0x0000000, 0x800000, CRC(085bcdfa) SHA1(042deb49b20763bbe0a3e8236a6d5798b3036536) )
+ ROM_LOAD16_BYTE( "232sex.c2", 0x0000001, 0x800000, CRC(78613707) SHA1(68f244a83e7314fe62a61bad0d0e5253a493da54) )
+ ROM_LOAD16_BYTE( "232sex.c3", 0x1000000, 0x800000, CRC(afde78ed) SHA1(2075d68980a867b498fe812f3265a36bddd57a81) )
+ ROM_LOAD16_BYTE( "232sex.c4", 0x1000001, 0x800000, CRC(9d61d6ca) SHA1(03d81bcda5d1d08fbe2eb2569937bcb0fdf83269) )
+ ROM_LOAD16_BYTE( "232sex.c5", 0x2000000, 0x400000, CRC(10ea56c6) SHA1(8324418820f88264c19be5fd73a0fe98fe5b0c0e) )
+ ROM_LOAD16_BYTE( "232sex.c6", 0x2000001, 0x400000, CRC(d48fe6c9) SHA1(6fec93dcc562b7243b2f550857073323f81d3db7) )
+ROM_END
+
+ROM_START( kof97shi ) // Evolution Shin Edition
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232shi.p1", 0x000000, 0x100000, CRC(dbcec604) SHA1(5bf014bad8ce228f9683151e2e4b0e359108c920) )
+ ROM_LOAD16_WORD_SWAP( "232shi.p2", 0x100000, 0x400000, CRC(5a500cf6) SHA1(3239e819cc68011e460160b534fb6c5c26604c8a) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97sm ) // Smoke Version
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232-p1.p1", 0x000000, 0x100000, CRC(7db81ad9) SHA1(8bc42be872fd497eb198ca13bf004852b88eb1dc) )
+ ROM_LOAD16_WORD_SWAP( "232sm.p2", 0x100000, 0x400000, CRC(d7e62250) SHA1(34d56d01e4e15a05ea7890bda0148994a7763c39) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97svs )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232svs.p1", 0x000000, 0x454fd8, CRC(8edbfb69) SHA1(1c5893f24d0cdb7fe275a7b14f844ef9e2296417) )
+ ROM_LOAD16_WORD_SWAP( "232svs.p2", 0x100000, 0x454f46, CRC(9deca038) SHA1(dbb756ad859e8ec4f7ed1400f5d839401068ee58) )
+
+ NEO_SFIX_128K( "232svs.s1", CRC(867a9aec) SHA1(9483eb67ce8bad9a5933554e25a34f68b1ad6f13) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232svs.c1", 0x0000000, 0x800000, CRC(7173901b) SHA1(a0eb2c269560baaabb083f733b7bea6aab954eae) )
+ ROM_LOAD16_BYTE( "232svs.c2", 0x0000001, 0x800000, CRC(404ef620) SHA1(e3ca4e677c6f76e467e482172d9acbb60cc819b8) )
+ ROM_LOAD16_BYTE( "232svs.c3", 0x1000000, 0x800000, CRC(27a27dd5) SHA1(658000df70768f3ca257d64eaedadad26e34fc95) )
+ ROM_LOAD16_BYTE( "232svs.c4", 0x1000001, 0x800000, CRC(e6a91916) SHA1(b21fda210dac93174585c70fd58735ed42a5b7f0) )
+ ROM_LOAD16_BYTE( "232svs.c5", 0x2000000, 0x800000, CRC(89dc1ee5) SHA1(4eda0211a3e59ca3c70cec294fa671c789ec905e) )
+ ROM_LOAD16_BYTE( "232svs.c6", 0x2000001, 0x800000, CRC(6f047b36) SHA1(9df4cb34f3b28a97c0b903394b3e2cdb79906582) )
+ROM_END
+
+ROM_START( kof97svsb2 ) // all confirmed
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232svsb2.p1", 0x000000, 0x454fd8, CRC(c9a489de) SHA1(b93dd3aa9e91456c7d92b81dc96d60c1c94797d3) )
+ ROM_LOAD16_WORD_SWAP( "232svsb2.p2", 0x100000, 0x400000, CRC(9f2c57dd) SHA1(3cf16a8b0d79f95279ca7ba19678c50499b470e4) )
+ ROM_IGNORE( 0x054f64 )
+
+ NEO_SFIX_128K( "232xt.s1", CRC(d6fe166f) SHA1(55e70395466ab68e7a170be3aa6f5978e704701b) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232yk.c1", 0x0000000, 0x800000, CRC(d504bf4a) SHA1(a58f6c07080c666ae1bb3e2dbab4790feab5ccc7) )
+ ROM_LOAD16_BYTE( "232yk.c2", 0x0000001, 0x800000, CRC(942ea708) SHA1(20389bdb253611745c5515206b1eb620a1574711) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232svsb2.c5", 0x2000000, 0x800000, CRC(2cb9f438) SHA1(a358f81e937504b6bc087bf0e40a17ac07a968b2) )
+ ROM_LOAD16_BYTE( "232svsb2.c6", 0x2000001, 0x800000, CRC(95029580) SHA1(51cc1186269da68c89af2e2f491477e0e2eb244f) )
+ROM_END
+
+ROM_START( kof97sw ) /* The King of Fighters '97 - (kof97sw) - Hack by Wesker - (Shingo: 26a\c the 623a\c special effect is the red flame) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232sw.p1", 0x000000, 0x100000, CRC(b4378ad4) SHA1(18210a5259f1499123277532dabb00b0c7bee50e) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97tse ) // All confirmed
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232tse.p1", 0x000000, 0x454f50, CRC(30408a6a) SHA1(71fee1b90a6e19baa98b6bb3c9a34034fbfe132c) )
+ ROM_LOAD16_WORD_SWAP( "232tse.p2", 0x100000, 0x400000, CRC(b157888a) SHA1(fa791e9abb7f6f8ac1497888f720bf62ad907949) )
+ ROM_IGNORE( 0x54f64 )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97wh ) /* The King of Fighters '97 - (kof97wh) - Hack by Wesker - (Style change for Kyo to 95' Kyo) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232wh.p1", 0x000000, 0x100000, CRC(a2534a20) SHA1(5717e30eeac96de6e23e0e5d4e9b1792362c8ae3) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97wpls ) /* The King of Fighters '97 - (kof97wpls) - Hack by Wesker - ('PLUS' version by Wesker) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232wpls.p1", 0x000000, 0x100000, CRC(036c885d) SHA1(7c5b1c2901a11f627c3552c6846a2aca35397eaf) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97xbt )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232xbt.p1", 0x000000, 0x100000, CRC(518416bd) SHA1(db1f1f739ddb182d4215482a41ecf177909fe2c5) )
+ ROM_LOAD16_WORD_SWAP( "232xbt.p2", 0x100000, 0x400000, CRC(3a1f7c4e) SHA1(a4f2059543e0d31b6e7e27775966955a9a41e049) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232ne.c5", 0x2000000, 0x400000, CRC(6fe02054) SHA1(47b3a6f0867e15900deb3ffd5f888cbcf6e2bbdd) )
+ ROM_LOAD16_BYTE( "232ne.c6", 0x2000001, 0x400000, CRC(0f96c84a) SHA1(79a8e1ff71051ece0ca6c8f75b0bd1cd567f2e33) )
+ROM_END
+
+ROM_START( kof97xi )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232xi.p1", 0x000000, 0x100000, CRC(acc7bfb2) SHA1(64e0b8897a7f80627ac020452daaa1aa2a073ffe) )
+ ROM_LOAD16_WORD_SWAP( "232xi.p2", 0x100000, 0x400000, CRC(098f4871) SHA1(d4e7bfe953f6602b71ccb69bb91fc8e78d911467) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232bs.c1", 0x0000000, 0x800000, CRC(47932f00) SHA1(3dcedd194a2138cd8b006462a42b52e925f6b5ce) )
+ ROM_LOAD16_BYTE( "232bs.c2", 0x0000001, 0x800000, CRC(f87c3d84) SHA1(0de2dcb6a475ea6475d67c60a254e6b7cbcde951) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232xi.c5", 0x2000000, 0x800000, CRC(1e441dd9) SHA1(5ae1973f87abec4b84ab76a64dd30c56d8a535ac) )
+ ROM_LOAD16_BYTE( "232xi.c6", 0x2000001, 0x800000, CRC(69d1435a) SHA1(21a1f739dd77ea6d4112896608cde0158c2adf6b) )
+ROM_END
+
+ROM_START( kof97xp )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232xp.p1", 0x000000, 0x100000, CRC(265396cd) SHA1(aac58b1582bef6de401f70455da26b835e6fd0af) )
+ ROM_LOAD16_WORD_SWAP( "232xp.p2", 0x100000, 0x400000, CRC(da48eb75) SHA1(da516b2fe5de0b740b9126302528805b433335ea) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232lr.c1", 0x0000000, 0x800000, CRC(6c224c0b) SHA1(54ace1387646728ddd2fe3feea4b22c46e75fc7d) )
+ ROM_LOAD16_BYTE( "232lr.c2", 0x0000001, 0x800000, CRC(badf8fa5) SHA1(07381d1d64f5fd4cd11989a2f715298c6d4827cd) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97xt )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232xt.p1", 0x000000, 0x100000, CRC(2e4f4e3b) SHA1(122b749fe68057fa030d4f0af270883e99246a31) )
+ ROM_LOAD16_WORD_SWAP( "232xt.p2", 0x100000, 0x400000, CRC(6d4503ce) SHA1(95217d0b8f51a92cb98eb17d4a9c106a1a0a7920) )
+
+ NEO_SFIX_128K( "232xt.s1", CRC(d6fe166f) SHA1(55e70395466ab68e7a170be3aa6f5978e704701b) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232yk.c1", 0x0000000, 0x800000, CRC(d504bf4a) SHA1(a58f6c07080c666ae1bb3e2dbab4790feab5ccc7) )
+ ROM_LOAD16_BYTE( "232yk.c2", 0x0000001, 0x800000, CRC(942ea708) SHA1(20389bdb253611745c5515206b1eb620a1574711) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232xt.c5", 0x2000000, 0x800000, CRC(c1bd2375) SHA1(1fbd0e714d5e0e61b90a7a04c5eab3fa4652dfe5) )
+ ROM_LOAD16_BYTE( "232xt.c6", 0x2000001, 0x800000, CRC(a7c8506a) SHA1(c545b5ca9a8559caa17593c5dc137f939f4f42e7) )
+ROM_END
+
+ROM_START( kof97xt1 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232xt1.p1", 0x000000, 0x100000, CRC(a6cd80ee) SHA1(948f977b19f05a971bb54a7c416a05c05b31caaa) )
+ ROM_LOAD16_WORD_SWAP( "232xt1.p2", 0x100000, 0x400000, CRC(541fdd36) SHA1(64ce02fd84b326bdf1e5857374441ff1dba0976b) )
+
+ NEO_SFIX_128K( "232xt.s1", CRC(d6fe166f) SHA1(55e70395466ab68e7a170be3aa6f5978e704701b) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232xt1.c1", 0x0000000, 0x800000, CRC(e6ad03e0) SHA1(18caab6d6c4d1f26b5f7cca9fc5f715d82086dac) )
+ ROM_LOAD16_BYTE( "232xt1.c2", 0x0000001, 0x800000, CRC(ca25742c) SHA1(69dd52092baf917d00ab7f16235780cbb9f8bfa1) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232xt1.c5", 0x2000000, 0x800000, CRC(780bdd4b) SHA1(f44c3da9f0938a9bcc3ea78a044511e8a5e3fd9f) )
+ ROM_LOAD16_BYTE( "232xt1.c6", 0x2000001, 0x800000, CRC(9e68846d) SHA1(1d389b48d7be965ac7ee7b97f49aace372f266c8) )
+ROM_END
+
+ROM_START( kof97xxx )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232xxx.p1", 0x000000, 0x100000, CRC(d5d92967) SHA1(04079b92fe73ee8ee2c08f63388a74435e894945) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232xxx.c1", 0x0000000, 0x800000, CRC(91697765) SHA1(19ea6bf74da9dd4fed4213d82cb7d003a871599b) )
+ ROM_LOAD16_BYTE( "232xxx.c2", 0x0000001, 0x800000, CRC(0c069a41) SHA1(094f587325acc55b6663a17fce6ea0920331a3ff) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232xxx.c5", 0x2000000, 0x400000, CRC(f0336a63) SHA1(aefb4ac0341d1b35d1b61395b3baf99af2e9ab98) )
+ ROM_LOAD16_BYTE( "232xxx.c6", 0x2000001, 0x400000, CRC(52968b9f) SHA1(9f3be2219e3c1a19626624ec16f175ac25723bce) )
+ROM_END
+
+ROM_START( kof97y ) /* The King of Fighters '97 - Hack by Ydmis - (Can choose add. Iori, Yashiro, Shermie, Chris and Leona) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232y.p1", 0x000000, 0x100000, CRC(d1893f4e) SHA1(64258216d12cd7445062574c4e6690a6bf5b1541) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97ya ) /* The King of Fighters '97 - Hack by Ydmis - (Can choose Orochi) (set 1) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232ya.p1", 0x000000, 0x100000, CRC(36a82fb7) SHA1(5f45d51b0e28d3b0cc71388934d8cd6830654f53) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97yb ) /* The King of Fighters '97 - Hack by Ydmis - (Can choose Orochi) (set 2) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232yb.p1", 0x000000, 0x100000, CRC(55557bf2) SHA1(46f681a86b6f0e70d2a177e346937e9ef8d33fc9) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97ye ) /* The King of Fighters '97 - Enhance by Ydmis - (Can choose add. Iori, Yashiro, Shermie, Chris and Leona - power hack ABC in Extra Mode) (set 1) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232ye.p1", 0x000000, 0x100000, CRC(35e1bbab) SHA1(beb43970025e9e04eae52386c93621feb4373d7f) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97yg ) /* The King of Fighters '97 - Enhance by Ydmis - (Can choose Orochi + add. Iori, Yashiro, Shermie, Chris and Leona - power hack ABC in Extra Mode) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232yg.p1", 0x000000, 0x100000, CRC(2ef7c10d) SHA1(b223ddad9547f2899885cd7306bb2baa188c64f2) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97yh ) /* The King of Fighters '97 - Enhance by Ydmis - (Can choose add. Iori, Yashiro, Shermie, Chris and Leona - power hack ABC in Extra Mode) (set 2) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232yh.p1", 0x000000, 0x100000, CRC(a1d23d62) SHA1(3ddb3a5f917c2b4ed3505fd13b1e8c4d0bfdaaa6) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97yk )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232yk.p1", 0x000000, 0x100000, CRC(e10200f8) SHA1(9a224395b601c2df6616f888ab6b69e2039fd19f) )
+ ROM_LOAD16_WORD_SWAP( "232yk.p2", 0x100000, 0x400000, CRC(e6bfaee4) SHA1(36ddfabe092aaa0604d34838785624857d7ff5ef) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232yk.c1", 0x0000000, 0x800000, CRC(d504bf4a) SHA1(a58f6c07080c666ae1bb3e2dbab4790feab5ccc7) )
+ ROM_LOAD16_BYTE( "232yk.c2", 0x0000001, 0x800000, CRC(942ea708) SHA1(20389bdb253611745c5515206b1eb620a1574711) )
+ ROM_LOAD16_BYTE( "232yk.c3", 0x1000000, 0x800000, CRC(b092e64f) SHA1(7d809432d068db8f9056f5210570191416f1a53b) )
+ ROM_LOAD16_BYTE( "232yk.c4", 0x1000001, 0x800000, CRC(d25e8a04) SHA1(52227828e3fdd27399b4cd514551abf856293f47) )
+ ROM_LOAD16_BYTE( "232yk.c5", 0x2000000, 0x800000, CRC(94f234e1) SHA1(0eb67d21572fa1e7b0503d88f526caac65e23a78) )
+ ROM_LOAD16_BYTE( "232yk.c6", 0x2000001, 0x800000, CRC(c794f747) SHA1(242fe9b75f86719dc02493ea6f295cf3b3d7fc7e) )
+ROM_END
+
+ROM_START( kof97yk1 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232yk1.p1", 0x000000, 0x100000, CRC(cdbcdf48) SHA1(4ac5649955afcbf06a44c4a265db9e6262f00f82) )
+ ROM_LOAD16_WORD_SWAP( "232yk1.p2", 0x100000, 0x400000, CRC(89716899) SHA1(55c3bd5f12dbaf4e6f11582986d8f8e73fbe3c4b) )
+
+ NEO_SFIX_128K( "232yk1.s1", CRC(c7dbe270) SHA1(0b81b31da6c18dd02e8d0442100685d5ff61bece) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232yk1.c1", 0x0000000, 0x800000, CRC(f748da71) SHA1(5012e8537e7d16d365d9c088a70323b3b71cd6f5) )
+ ROM_LOAD16_BYTE( "232yk1.c2", 0x0000001, 0x800000, CRC(6b77e767) SHA1(7f625fa348754a248d9b58bd2f085c47142faf91) )
+ ROM_LOAD16_BYTE( "232yk1.c3", 0x1000000, 0x800000, CRC(ffb025af) SHA1(64913b51b496a13a92317008d2a15543e6c89ba9) )
+ ROM_LOAD16_BYTE( "232yk1.c4", 0x1000001, 0x800000, CRC(7182157c) SHA1(306a968ae325d0b7d647e7fdb36a3a07bacda923) )
+ ROM_LOAD16_BYTE( "232yk1.c5", 0x2000000, 0x800000, CRC(00a77a26) SHA1(a86054fd3870be49ad6055a2fab663cb5ef27de2) )
+ ROM_LOAD16_BYTE( "232yk1.c6", 0x2000001, 0x800000, CRC(0b504e35) SHA1(597cabd5077670827ad3e809d6cd52c9c7f3013a) )
+ROM_END
+
+ROM_START( kof97yk2 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232yk2.p1", 0x000000, 0x100000, CRC(03086c94) SHA1(52fe6701f215b60d4fc1771b7c06474ff6d2cfbc) )
+ ROM_LOAD16_WORD_SWAP( "232yk2.p2", 0x100000, 0x400000, CRC(387561f1) SHA1(d03da7857a2d379e899f9556d05eb7d79f49b2c9) )
+
+ NEO_SFIX_128K( "232evoa.s1", CRC(f3c0e90a) SHA1(257f20127a39e8534fe84fbcf2565b162feef4a5) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232yk.c1", 0x0000000, 0x800000, CRC(d504bf4a) SHA1(a58f6c07080c666ae1bb3e2dbab4790feab5ccc7) )
+ ROM_LOAD16_BYTE( "232yk.c2", 0x0000001, 0x800000, CRC(942ea708) SHA1(20389bdb253611745c5515206b1eb620a1574711) )
+ ROM_LOAD16_BYTE( "232yk1.c3", 0x1000000, 0x800000, CRC(ffb025af) SHA1(64913b51b496a13a92317008d2a15543e6c89ba9) )
+ ROM_LOAD16_BYTE( "232yk1.c4", 0x1000001, 0x800000, CRC(7182157c) SHA1(306a968ae325d0b7d647e7fdb36a3a07bacda923) )
+ ROM_LOAD16_BYTE( "232yk2.c5", 0x2000000, 0x800000, CRC(d82772b2) SHA1(87626ad6ab30063e9784a1b2748c510219c17fcc) )
+ ROM_LOAD16_BYTE( "232yk2.c6", 0x2000001, 0x800000, CRC(0b06fba8) SHA1(528b66d6d53682316dd1f33d1cf8b689b3642364) )
+ROM_END
+
+ROM_START( kof97yk83 ) // all confirmed
+ ROM_REGION( 0x700000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232kp83.p1", 0x000000, 0x100000, CRC(b983abb8) SHA1(e3d3f222b883b82c686b52b7042401ac8a922992) )
+ ROM_LOAD16_WORD_SWAP( "232kp1.p2", 0x100000, 0x600000, CRC(fddde211) SHA1(6e8280ad7a9dda204f30e40d9575e31d3e436ef2) )
+
+ NEO_SFIX_128K( "232yk1.s1", CRC(c7dbe270) SHA1(0b81b31da6c18dd02e8d0442100685d5ff61bece) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232yk1.c1", 0x0000000, 0x800000, CRC(f748da71) SHA1(5012e8537e7d16d365d9c088a70323b3b71cd6f5) )
+ ROM_LOAD16_BYTE( "232yk1.c2", 0x0000001, 0x800000, CRC(6b77e767) SHA1(7f625fa348754a248d9b58bd2f085c47142faf91) )
+ ROM_LOAD16_BYTE( "232yk1.c3", 0x1000000, 0x800000, CRC(ffb025af) SHA1(64913b51b496a13a92317008d2a15543e6c89ba9) )
+ ROM_LOAD16_BYTE( "232yk1.c4", 0x1000001, 0x800000, CRC(7182157c) SHA1(306a968ae325d0b7d647e7fdb36a3a07bacda923) )
+ ROM_LOAD16_BYTE( "232yk1.c5", 0x2000000, 0x800000, CRC(00a77a26) SHA1(a86054fd3870be49ad6055a2fab663cb5ef27de2) )
+ ROM_LOAD16_BYTE( "232yk1.c6", 0x2000001, 0x800000, CRC(0b504e35) SHA1(597cabd5077670827ad3e809d6cd52c9c7f3013a) )
+ROM_END
+
+ROM_START( kof97yk85 )
+ ROM_REGION( 0x700000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232yk85.p1", 0x000000, 0x100000, CRC(821b0dc4) SHA1(402488249d4e2984fb5c42f0bb4c00b179ea4d12) )
+ ROM_IGNORE( 0x354f67 )
+ ROM_LOAD16_WORD_SWAP( "232yk85.p2", 0x100000, 0x600000, CRC(170e7302) SHA1(3952ca4fbf8aa71e372372881efc4f4aafa9562c) )
+
+ NEO_SFIX_128K( "232yk85.s1", CRC(d8826314) SHA1(5d3ffdf709ee8f84e451464866d0ddcaf98bdb89) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+ //ROM_LOAD( "265-nu.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) ) in romset but m1 is not changed so i doubt it is used
+
+ ROM_REGION( 0x5000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232yk85.c1", 0x0000000, 0x800000, CRC(e47371bb) SHA1(e0e107f4edfbac0a7638b240405745bf31dbadf9) )
+ ROM_LOAD16_BYTE( "232yk85.c2", 0x0000001, 0x800000, CRC(e09108b0) SHA1(b19e0101ed500dec65156a6c19334125a4012521) )
+ ROM_LOAD16_BYTE( "232yk1.c3", 0x1000000, 0x800000, CRC(ffb025af) SHA1(64913b51b496a13a92317008d2a15543e6c89ba9) )
+ ROM_LOAD16_BYTE( "232yk1.c4", 0x1000001, 0x800000, CRC(7182157c) SHA1(306a968ae325d0b7d647e7fdb36a3a07bacda923) )
+ ROM_LOAD16_BYTE( "232yk85.c5", 0x2000000, 0x800000, CRC(c61653cc) SHA1(05674fb5b0007f200b090e93863335fdf474fa64) )
+ ROM_LOAD16_BYTE( "232yk85.c6", 0x2000001, 0x800000, CRC(a01a762f) SHA1(68df7a1753745b9468c4f464779c2c5033f16458) )
+ ROM_LOAD16_BYTE( "232yk85.c7", 0x3000000, 0x800000, CRC(52ac1bcf) SHA1(51f026db5bac479b82297260b55575f8a60306c7) )
+ ROM_LOAD16_BYTE( "232yk85.c8", 0x3000001, 0x800000, CRC(76de561d) SHA1(8f27e746372daf77ff41c4ee431fa36ae22c7b8d) )
+ ROM_LOAD16_BYTE( "232yk85.c9", 0x4000000, 0x800000, CRC(46eb506a) SHA1(1b64fb31dfdc95b901b2e3d359bdee38f764358f) )
+ ROM_LOAD16_BYTE( "232yk85.c10", 0x4000001, 0x800000, CRC(33595746) SHA1(1532ce71b27beace35f359568d506eaf75ad578d) )
+ROM_END
+
+ROM_START( kof97yl ) /* The King of Fighters '97 - Hack by Leather and Ydmis - (Can choose Orochi + 5 add. characters - extra stage select) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232yl.p1", 0x000000, 0x100000, CRC(b74278b8) SHA1(5fe72fa346c54229b3b80121720af624a7eca95c) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97yl2 ) /* The King of Fighters '97 - Hack by Leather and Ydmis - (Can choose Orochi + 5 add. characters - extra stage select - based on kof97eh/eh2) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232yl2.p1", 0x000000, 0x100000, CRC(ce22762f) SHA1(1be39a25a51db1f50633412aec35db79846938ee) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97yo )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232yo.p1", 0x000000, 0x100000, CRC(3aeeba44) SHA1(71329e0b141bd1507f750a046b9e718abd653840) )
+ ROM_LOAD16_WORD_SWAP( "232yo.p2", 0x100000, 0x400000, CRC(1bb72a6e) SHA1(7edc3f44619c72debeba7d4cd2965ad27b5f0a90) )
+
+ NEO_SFIX_128K( "kf97-s1p.bin", CRC(73254270) SHA1(8d06305f9d8890da1327356272b88bdd0dc089f5) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232yo.c5", 0x2000000, 0x800000, CRC(10475333) SHA1(244f209925525fe9f9aca2a57e3e8d10ea28c7a3) )
+ ROM_LOAD16_BYTE( "232yo.c6", 0x2000001, 0x800000, CRC(1d8a90fe) SHA1(5ee10a7d5fbf3f31e5efc02177a1111aaafa361e) )
+ROM_END
+
+ROM_START( kof97z ) // Hack by Zuojie
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232z.p1", 0x000000, 0x100000, CRC(2d0d243d) SHA1(96234897b91a90cbdee0ead735a00615dffa4ca1) )
+ ROM_LOAD16_WORD_SWAP( "232z.p2", 0x100000, 0x400000, CRC(505e3981) SHA1(a8bcddcffc5e6a3f1879e91fc07ea5c9177b8f37) )
+
+ NEO_SFIX_128K( "232z.s1", CRC(ece9abba) SHA1(608ea08ef8fd5f32e97a99df4edf285eb9f2e108) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232z.c1", 0x0000000, 0x800000, CRC(972bea52) SHA1(236d70abceb993d340a89cfa0cd0bd5f2c5753b1) )
+ ROM_LOAD16_BYTE( "232z.c2", 0x0000001, 0x800000, CRC(301a1328) SHA1(2b30a2576a663e01f34aca3b1136ae870108f8c1) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232z.c5", 0x2000000, 0x400000, CRC(9af776d3) SHA1(a054ca17e6b35c8743286a025488b04186eebdbe) )
+ ROM_LOAD16_BYTE( "232z.c6", 0x2000001, 0x400000, CRC(9428d70c) SHA1(c0122ef6f83645f57edef6956400fe49fd94dfca) )
+ROM_END
+
+ROM_START( kof97zm )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232zm.p1", 0x000000, 0x100000, CRC(a2c45045) SHA1(511c96507c39e4c58543caf56dbe40f40c821b19) )
+ ROM_LOAD16_WORD_SWAP( "232zm.p2", 0x100000, 0x400000, CRC(ca11478d) SHA1(484533266ba677fa2930e977226c4b72a59de8e2) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+
+
+GAME( 1997, kof97aa, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Simaguang", "Kof'97 (Plus Athena)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97ae, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex, EGHT", "Kof'97 10TH ANNIVERSARY (set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97ae1, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex, EGHT", "Kof'97 10TH ANNIVERSARY (set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97aot, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 RISK01983 (AOT)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97bh, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Dodowang", "Kof'97 (Add Char - Orochi icon - Extra stage select)", MACHINE_SUPPORTS_SAVE )
+GAME( 2006, kof97bng, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'97 COMBO 2006 set 1", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97bs, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "0-DAY", "Kof'97 (Boss Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2006, kof97cb2, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'97 COMBO 2006 set 2", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97cr, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "CHL and Leather", "Kof'97 (Moves and Style changed - Extra stage select)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97chl, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "CHL", "Kof'97 (Diff Moves - 030325)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97chl2, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "CHL", "Kof'97 (Diff Moves rev.2 - 030409)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97chris,kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 (Chris Like 2k2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, kof97cn, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGHT", "Kof'97 (10th Anniversary Chinese Edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 2010, kof97co, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'97 COMBO 2010-02-07", MACHINE_SUPPORTS_SAVE )
+GAME( 2006, kof97co6, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'97 COMBO 2006", MACHINE_SUPPORTS_SAVE )
+GAME( 2015, kof97cy, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Emu_Max", "Kof'97 (CY)", MACHINE_SUPPORTS_SAVE )
+GAME( 2012, kof97dse, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Maerd", "Kof'97 MAERD 2012-06-28 (DSE)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97eh, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami, Leather and Ydmis", "Kof'97 (Add Char - Ultra kill start max in Adv Mode - Ultra pow hack ABC - Extra stage select)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97eh2, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Leather and Ydmis", "Kof'97 (Add Char - Ultra kill start max in Adv Mode - Pow hack ABC - Extra stage select)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97eho, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Kof'97 (Add Char - Ultra kill start max in Adv Mode - Pow hack ABC)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97ei, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 COMBO 2010-02-07 (EI)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97evo, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "Kof'97 EVOLUTION", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97evoa, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 EVOLUTION (Old)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97frb, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 (FRB)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97hk, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 EVOLUTION (Hakeshu)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97hl, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 (Fall Ban Edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97hxd, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hxdhome", "Kof'97 (Add Char)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97ice, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Cz-Kyo97", "Kof'97 Ice", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97irgc, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 (IRGC)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97irgc2,kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 (IRGC2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97kai, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Kai", "Kof'97 PLUS", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97kp, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "KofPerfect", "Kof'97 (Add Orochi set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kof97kp1, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yukimura", "Kof'97 (KP 2000)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97lb, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "LB70", "Kof'97 (Quanhuang Shaman 3.0)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97lc, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Liuzheng0131", "Kof'97 (Color changed)", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, kof97lr, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 (Lover Red)", MACHINE_SUPPORTS_SAVE )
+GAME( 2012, kof97m, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Maerd", "Kof'97 KOF97 MAERD 2012-06-28", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97mit, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "MIT", "Kof'97 (Char style enhanced 050324)", MACHINE_SUPPORTS_SAVE )
+GAME( 2010, kof97mj, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 SHION EDITION HACK", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97nd, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Baidu", "Kof'97 (Baidu)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97ne, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "NeHt", "Kof'97 (Remixed)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97neo, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Neo Charity Team", "Kof'97 (hack by Neo Charity Team)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97nude, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 Nude", MACHINE_SUPPORTS_SAVE ) // no nudes here??
+GAME( 1997, kof97pj, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "TcwLee", "Kof'97 (hxd fixed ver - Add Char)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97pjc, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "TcwLee", "Kof'97 (Char color changed)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97phl, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Liyang1983", "Kof'97 (Plus Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97pl2, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "Kof'97 PLUS set 2", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof97pl3, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "Kof'97 PLUS set 3", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof97pla, kof97, neogeo_noslot, neogeo, neogeo_hbmame,kof97pla, ROT0, "bootleg", "Kof'97 PLUS set 1", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof97plc, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "ZKW", "Kof'97 PLUS (Black Edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 2006, kof97plus, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 PLUS 2006", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97pm, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "KOF1996", "Kof'97 Practice Mode", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97ps, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 (Playstation Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97rev, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "BisMill Hassan", "Kof'97 (The Revival 2016)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof97ribe, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 PLUS (RIBE)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97rk, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Risko", "Kof'97 (Hack by Risko)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof97rst, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 PLUS (RST)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof97rst2, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 PLUS (RST2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof97rst3, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 PLUS (RISK012003)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97rv, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 (revised edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97saw, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker", "Kof'97 (Kill red flame special effect)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97sex, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Katana", "Kof'97 (Extra/Sexy Edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97shi, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "Kof'97 (Evolution Shin Edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97sm, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 (Smoke Version)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97svs, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 (SVS)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97svsb2,kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 (SVSB2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97sw, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker", "Kof'97 (26a-c and 623a-c red flame special effect)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97tse, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 (TSE)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97wh, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker", "Kof'97 (Style Kyo to 95' Kyo)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97wpls, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker", "Kof'97 Plus", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97xbt, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 BT X Version", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97xi, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Jacky", "Kof'97 XI Flash Version", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, kof97xp, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Xuhui", "Kof'97 (Xuhui plus)", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, kof97xt, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 Final Battle", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97xt1, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Chris Love", "Kof'97 (Unfinished version by Cross Love)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97xxx, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 (Nude mix)", MACHINE_SUPPORTS_SAVE ) // no nudes here??
+GAME( 1997, kof97y, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Kof'97 (Add Char - no Orochi)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97ya, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Kof'97 (Add Orochi set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97yb, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Kof'97 (Add Orochi set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97ye, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Kof'97 (Add Char - no Orochi - Pow hack ABC in Extra Mode set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97yg, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Kof'97 (Add Char - Pow hack ABC in Extra Mode)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97yh, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Kof'97 (Add Char - no Orochi - Pow hack ABC in Extra Mode set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, kof97yk, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yukimura", "Kof'97 (Yukimura Hack YK)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97yk1, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yukimura", "Kof'97 (Yukimura Hack YK1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97yk2, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yukimura", "Kof'97 (Yukimura Hack YK2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97yk83, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yukimura", "Kof'97 (Yukimura Hack YK83)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97yk85, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yukimura", "Kof'97 (Yukimura Hack YK85)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97yl, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Leather and Ydmis", "Kof'97 (Add Char - Extra stage select set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97yl2, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Leather and Ydmis", "Kof'97 (Add Char - Extra stage select set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97yo, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'97 Seven Yoga Community Imitation 98", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97z, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Zuojie", "Kof'97 (Hack by Zoujie)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97zm, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "LB70", "Kof'97 RISK01983 ZMonanger", MACHINE_SUPPORTS_SAVE )
+
+
+//PSmame
+
+ROM_START( kof97s01 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc01.p1", 0x000000, 0x100000, CRC(4f0e0a5f) SHA1(c12bde7bdd0f78ba6287410d792edcbc7a95ab94) )
+ ROM_LOAD16_WORD_SWAP( "232hc01.sp2", 0x100000, 0x400000, CRC(c2bb41a0) SHA1(924423f5688b8492e5d9cf8cef3d29bdc3a65865) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s02 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc02.p1", 0x000000, 0x100000, CRC(bfc34bb7) SHA1(d897c455d1d75ab6e6866e64cec8a0cdeb52da3b) )
+ ROM_LOAD16_WORD_SWAP( "232hc02.sp2", 0x100000, 0x400000, CRC(1e8350d7) SHA1(5f836e5b0a4c9b91b27e04f6a91917270638f983) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s03 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc03.p1", 0x000000, 0x100000, CRC(18ab1a58) SHA1(ea269667c56184197421ce5998d561f40bbe660d) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s04 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc04.p1", 0x000000, 0x100000, CRC(3de5e458) SHA1(56227cca79e52288f08282306a09175f960e6e7f) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s05 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc05.p1", 0x000000, 0x100000, CRC(e609bc51) SHA1(940c30a69281e9da358bb85091d23f015af992cc) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s06 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc06.p1", 0x000000, 0x100000, CRC(1dd1c2c0) SHA1(3b3002f9b1b93f760b756b19f340714d36b5662c) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s07 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc07.p1", 0x000000, 0x100000, CRC(36a1ba35) SHA1(35b5756abe01f484b1e4b8a5acf325c605e9d421) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s08 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc08.p1", 0x000000, 0x100000, CRC(543a76f4) SHA1(ad642930863d4e6b9f48756cf0da39383cd88ebd) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s09 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc09.p1", 0x000000, 0x100000, CRC(23d605ee) SHA1(280c8bf54c37ce14543af6b16bef5ded58af80af) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s10 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc10.p1", 0x000000, 0x100000, CRC(7a75228b) SHA1(7ab1ef130482d229f8236eb0a4c30c3d6372094d) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s11 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc11.p1", 0x000000, 0x100000, CRC(b27dfe89) SHA1(a96dc67173fb921e2ae8fb437430d261facbe06a) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s12 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc12.p1", 0x000000, 0x100000, CRC(2ff578ac) SHA1(05ec87c0bfeaf4415defc990abe3c86afcea2a82) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s13 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc13.p1", 0x000000, 0x100000, CRC(bf62bf21) SHA1(fcb93826b312189bc25e677ac89e38d7f7575609) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s14 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc14.p1", 0x000000, 0x100000, CRC(8085e0aa) SHA1(8a98e5112e77af0f901efc93ecf5e4f40edc485a) )
+ ROM_LOAD16_WORD_SWAP( "232hc14.sp2", 0x100000, 0x400000, CRC(0ee9b669) SHA1(5aab892d243c1a7487532bcdb66229179de7aa9e) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s15 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc15.p1", 0x000000, 0x100000, CRC(ff005e64) SHA1(d3c6aece17851717f4f96582fb68ad374ea445f8) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s16 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc16.p1", 0x000000, 0x100000, CRC(a4678e34) SHA1(a7554e20f6ae776625f47e3951b76115f0af16be) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s17 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc19.p1", 0x000000, 0x100000, CRC(87de6227) SHA1(81b8b253ba1aa1958efcbbb4f1df85a12bef7dbd) )
+ ROM_LOAD16_WORD_SWAP( "232hc17.sp2", 0x100000, 0x400000, CRC(cceac96a) SHA1(25f889add1cb314cedd55dee43754b85d81b7eeb) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s18 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc19.p1", 0x000000, 0x100000, CRC(87de6227) SHA1(81b8b253ba1aa1958efcbbb4f1df85a12bef7dbd) )
+ ROM_LOAD16_WORD_SWAP( "232hc18.sp2", 0x100000, 0x400000, CRC(9dafe23a) SHA1(02497c8ae9f26dbf562d3c558f6ba571abed9b51) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s19 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc19.p1", 0x000000, 0x100000, CRC(87de6227) SHA1(81b8b253ba1aa1958efcbbb4f1df85a12bef7dbd) )
+ ROM_LOAD16_WORD_SWAP( "232hc19.sp2", 0x100000, 0x400000, CRC(75e908de) SHA1(ebd45ad90266a3c9e53d6af549f1816e62201284) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s20 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc19.p1", 0x000000, 0x100000, CRC(87de6227) SHA1(81b8b253ba1aa1958efcbbb4f1df85a12bef7dbd) )
+ ROM_LOAD16_WORD_SWAP( "232hc24.sp2", 0x100000, 0x400000, CRC(130e8120) SHA1(986ff6a64acc48f3e008f57ee36c5696b77dce07) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s21 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc23.p1", 0x000000, 0x100000, CRC(0b0a598c) SHA1(2cd6c0af3fa04d73ae272587bbd1a6991dc2a6d8) )
+ ROM_LOAD16_WORD_SWAP( "232hc17.sp2", 0x100000, 0x400000, CRC(cceac96a) SHA1(25f889add1cb314cedd55dee43754b85d81b7eeb) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s22 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc23.p1", 0x000000, 0x100000, CRC(0b0a598c) SHA1(2cd6c0af3fa04d73ae272587bbd1a6991dc2a6d8) )
+ ROM_LOAD16_WORD_SWAP( "232hc18.sp2", 0x100000, 0x400000, CRC(9dafe23a) SHA1(02497c8ae9f26dbf562d3c558f6ba571abed9b51) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s23 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc23.p1", 0x000000, 0x100000, CRC(0b0a598c) SHA1(2cd6c0af3fa04d73ae272587bbd1a6991dc2a6d8) )
+ ROM_LOAD16_WORD_SWAP( "232hc19.sp2", 0x100000, 0x400000, CRC(75e908de) SHA1(ebd45ad90266a3c9e53d6af549f1816e62201284) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s24 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc25.p1", 0x000000, 0x100000, CRC(f3ece29b) SHA1(3ab314e8dea7997dd8e0cb7084e040f992a921e3) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s25 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc23.p1", 0x000000, 0x100000, CRC(0b0a598c) SHA1(2cd6c0af3fa04d73ae272587bbd1a6991dc2a6d8) )
+ ROM_LOAD16_WORD_SWAP( "232hc24.sp2", 0x100000, 0x400000, CRC(130e8120) SHA1(986ff6a64acc48f3e008f57ee36c5696b77dce07) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s26 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc26.p1", 0x000000, 0x100000, CRC(45ca8751) SHA1(a5113b6915d1193ab4192e83323d4a2e5f9e81b1) )
+ ROM_LOAD16_WORD_SWAP( "232hc26.p2", 0x100000, 0x400000, CRC(d18434ff) SHA1(88967833f392dde6c51505e6cb411b9b92e06df4) )
+
+ NEO_SFIX_128K( "232hc26.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232hc26.m1", CRC(9795c117) SHA1(411db1b4e547efd05160427ce4e935b5de1a04d2) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+ ROM_LOAD( "232-v4.v4", 0xc00000, 0x400000, CRC(b62911b2) SHA1(5b2840fe657c10185243538a436c79ec6f415956) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232hc26.c5", 0x2000000, 0x800000, CRC(121b3b5f) SHA1(8f9b2ee2df7ec834907c653bd433d6894fe1b3ea) )
+ ROM_LOAD16_BYTE( "232hc26.c6", 0x2000001, 0x800000, CRC(4d4e145c) SHA1(5aacbe71c62e0177b3874902d51e609430d674fc) )
+ROM_END
+
+ROM_START( kof97s27 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc27.p1", 0x000000, 0x100000, CRC(3b945e97) SHA1(4c9ce3895e76a898330971d040903b8d43fa8bb8) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s28 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc28.p1", 0x000000, 0x100000, CRC(53df12c4) SHA1(211d71126be980d6813cb372b40b9da7970069ae) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s29 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc29.p1", 0x000000, 0x100000, CRC(38e6b9c2) SHA1(158bae5fd39a9197111a381ec62ee857373d6065) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232ne.c5", 0x2000000, 0x400000, CRC(6fe02054) SHA1(47b3a6f0867e15900deb3ffd5f888cbcf6e2bbdd) )
+ ROM_LOAD16_BYTE( "232ne.c6", 0x2000001, 0x400000, CRC(0f96c84a) SHA1(79a8e1ff71051ece0ca6c8f75b0bd1cd567f2e33) )
+ROM_END
+
+ROM_START( kof97s30 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc30.p1", 0x000000, 0x100000, CRC(bbba7747) SHA1(6ce0b4e9c03d786e5182adeb6be8f4678c64dbf7) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s31 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc31.p1", 0x000000, 0x100000, CRC(b73b1159) SHA1(03e43d7b6d6c705485cdd531190758e2817e2c37) )
+ ROM_LOAD16_WORD_SWAP( "232hc31.sp2", 0x100000, 0x400000, CRC(e2ca5b77) SHA1(aa42f30ac801fc8064cc2677bf9e5b538f1fbe15) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232rev.c5", 0x2000000, 0x400000, CRC(9c543bc6) SHA1(cb227c71aca5e632a08fbd7f5af53581b5b28f93) )
+ ROM_LOAD16_BYTE( "232rev.c6", 0x2000001, 0x400000, CRC(e3feb991) SHA1(978b106bccd31c8229c9abcc6e682a7b5fc98154) )
+ROM_END
+
+ROM_START( kof97s32 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc32.p1", 0x000000, 0x100000, CRC(ff4ff390) SHA1(962f3b6b3e34360a3ed729afffe81f4f3d821158) )
+ ROM_LOAD16_WORD_SWAP( "232hc32.sp2", 0x100000, 0x400000, CRC(094d7b74) SHA1(9ca953f0d2c05855f3323f5dd830ab24249ccae7) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s33 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc33.p1", 0x000000, 0x100000, CRC(46d57fad) SHA1(4cae2a2d4d26babd5f35be04ac69c970bae12e7d) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s34 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc34.p1", 0x000000, 0x100000, CRC(8a5572d9) SHA1(46fe3061bcb9723cbc3bbafc83d4082a54eccb1f) )
+ ROM_LOAD16_WORD_SWAP( "232hc32.sp2", 0x100000, 0x400000, CRC(094d7b74) SHA1(9ca953f0d2c05855f3323f5dd830ab24249ccae7) )
+
+ NEO_SFIX_128K( "232hc34.s1", CRC(f406e80d) SHA1(e2f322ede979d026bb29d83144ed53bf3508ce89) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s35 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc35.p1", 0x000000, 0x100000, CRC(4718eee7) SHA1(14fc54cab4cf881f74b525998e27e194833f8aa1) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s36 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc36.p1", 0x000000, 0x100000, CRC(380c74ce) SHA1(5ed3449589d091e983ea7afe480dd46ff057d806) )
+ ROM_LOAD16_WORD_SWAP( "232hc36.sp2", 0x100000, 0x400000, CRC(91c0cfdb) SHA1(13c815f91b271316c4650d322077808428003562) )
+
+ NEO_SFIX_128K( "232ae.s1", CRC(d4957067) SHA1(b756c97b050296db9b00e0bc6cdd79e4d2e2273e) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232ae.c1", 0x0000000, 0x800000, CRC(ea16b711) SHA1(e54d1a0b559f1ef326ee86bc89e9f1b399f08b32) )
+ ROM_LOAD16_BYTE( "232ae.c2", 0x0000001, 0x800000, CRC(b7bef674) SHA1(378a67dfa7dba03900dd7c70a3473c12f9879af1) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s37 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc37.p1", 0x000000, 0x100000, CRC(01d71c59) SHA1(b7e5f0f2795526a886431e4c6cd72146e79e8c34) )
+ ROM_LOAD16_WORD_SWAP( "232hc37.sp2", 0x100000, 0x400000, CRC(6ef82655) SHA1(267aef872a084d3a055b4f2c0d8a5f038a62f855) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s38 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc38.p1", 0x000000, 0x200000, CRC(5f157e5d) SHA1(52fa83abf66a7595152fe3e778fd7c40c489af9b) )
+ ROM_LOAD16_WORD_SWAP( "232hc32.sp2", 0x100000, 0x400000, CRC(094d7b74) SHA1(9ca953f0d2c05855f3323f5dd830ab24249ccae7) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s39 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc39.p1", 0x000000, 0x100000, CRC(5f577f87) SHA1(129b63ab3d7513fc8f8e95038b14dc31533d1651) )
+ ROM_LOAD16_WORD_SWAP( "232hc39.sp2", 0x100000, 0x400000, CRC(8a56a9c4) SHA1(7b5ec3e7cfaf7ef2e8de6a0042929281f9ba7a16) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s40 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc40.p1", 0x000000, 0x100000, CRC(73e73949) SHA1(3137ab8a7666b087848b8f22b2cc1c04df570bc6) )
+ ROM_LOAD16_WORD_SWAP( "232hc40.sp2", 0x100000, 0x400000, CRC(0ff4b779) SHA1(062fa495c414958244b283e050212ee847a8e578) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s41 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc41.p1", 0x000000, 0x100000, CRC(eadd2a7d) SHA1(4480f5dd2c932c560d0f87d6100880d51991f5c3) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s42 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc42.p1", 0x000000, 0x100000, CRC(fe290661) SHA1(766321b44b998511e103061305dc454f6eaa466f) )
+ ROM_LOAD16_WORD_SWAP( "232hc42.sp2", 0x100000, 0x400000, CRC(708b2378) SHA1(671f7fc0fd3eca89a436cc2123a6021d5e734967) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s43 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc43.p1", 0x000000, 0x100000, CRC(75078a31) SHA1(18cc324fd2733784e4191209b5cabdb0201268c9) )
+ ROM_LOAD16_WORD_SWAP( "232hc43.sp2", 0x100000, 0x400000, CRC(2e80c3dc) SHA1(8be2a05670ecb30fe29428d131b2d7dc6b449d49) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s44 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc44.p1", 0x000000, 0x100000, CRC(471a2b6d) SHA1(c299bc8290cdc7916668691f97bdaaecda56c2cf) )
+ ROM_LOAD16_WORD_SWAP( "232hc44.sp2", 0x100000, 0x400000, CRC(29190fac) SHA1(43ca683bef0bf50e3eb89e0881c7f25e30d06e26) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s45 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc45.p1", 0x000000, 0x100000, CRC(39b6d8b8) SHA1(dac3b44a3bc8a7d4446566249effd1ed4e96d214) )
+ ROM_LOAD16_WORD_SWAP( "232hc45.sp2", 0x100000, 0x400000, CRC(cd00a83a) SHA1(3ee17b3d56aa3242abaa78652b119219311c5444) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s46 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc46.p1", 0x000000, 0x100000, CRC(2b2385e1) SHA1(fd780334201e22779a99a87b34de88608868020c) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s47 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc47.p1", 0x000000, 0x100000, CRC(9dccfb05) SHA1(b26a38cd0b749c746d444b4db86b4e60c327e284) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s48 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc48.p1", 0x000000, 0x100000, CRC(af39dd49) SHA1(6d48899f0b976fabc6ca20dbee8f0d9dc07eafa3) )
+ ROM_LOAD16_WORD_SWAP( "232hc48.sp2", 0x100000, 0x400000, CRC(7bfb252e) SHA1(62a0a87c7c1b5a6536224d400c6cf3472c16bb7b) )
+
+ NEO_SFIX_128K( "232z.s1", CRC(ece9abba) SHA1(608ea08ef8fd5f32e97a99df4edf285eb9f2e108) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232yk.c3", 0x1000000, 0x800000, CRC(b092e64f) SHA1(7d809432d068db8f9056f5210570191416f1a53b) )
+ ROM_LOAD16_BYTE( "232yk.c4", 0x1000001, 0x800000, CRC(d25e8a04) SHA1(52227828e3fdd27399b4cd514551abf856293f47) )
+ ROM_LOAD16_BYTE( "232z.c5", 0x2000000, 0x400000, CRC(9af776d3) SHA1(a054ca17e6b35c8743286a025488b04186eebdbe) )
+ ROM_LOAD16_BYTE( "232z.c6", 0x2000001, 0x400000, CRC(9428d70c) SHA1(c0122ef6f83645f57edef6956400fe49fd94dfca) )
+ROM_END
+
+ROM_START( kof97s49 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc49.p1", 0x000000, 0x100000, CRC(384e0464) SHA1(71bcd0723e61128294199fbee92f885b886be513) )
+ ROM_LOAD16_WORD_SWAP( "232hc49.sp2", 0x100000, 0x400000, CRC(bbcb581e) SHA1(fcdfda0d8e34c992f2cdd069acd5ddb765733176) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s50 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc50.p1", 0x000000, 0x100000, CRC(da076273) SHA1(42389a8cea6b6ee2ce939f9e2ed63c0b473195e0) )
+ ROM_LOAD16_WORD_SWAP( "232hc50.sp2", 0x100000, 0x400000, CRC(417f8331) SHA1(6bc9f1cdfdd259d736ef55e756be25b6e4d600cc) )
+
+ NEO_SFIX_128K( "232yk2.s1", CRC(a3cf11c6) SHA1(b6bf9ba59d3ec953f068d922562e6ce62bae517a) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+ //ROM_LOAD( "232hc50.v4", 0xc00000, 0x400000, CRC(067271b5) SHA1(36e07da78aaf634824c98023053bef802be4e218) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232yk1.c1", 0x0000000, 0x800000, CRC(f748da71) SHA1(5012e8537e7d16d365d9c088a70323b3b71cd6f5) )
+ ROM_LOAD16_BYTE( "232kp1.c2", 0x0000001, 0x800000, CRC(5869e4ad) SHA1(17b3d921ad0118e9fb61fd665639901c4b3bc2f5) )
+ ROM_LOAD16_BYTE( "232yk1.c3", 0x1000000, 0x800000, CRC(ffb025af) SHA1(64913b51b496a13a92317008d2a15543e6c89ba9) )
+ ROM_LOAD16_BYTE( "232yk1.c4", 0x1000001, 0x800000, CRC(7182157c) SHA1(306a968ae325d0b7d647e7fdb36a3a07bacda923) )
+ ROM_LOAD16_BYTE( "232yk1.c5", 0x2000000, 0x800000, CRC(00a77a26) SHA1(a86054fd3870be49ad6055a2fab663cb5ef27de2) )
+ ROM_LOAD16_BYTE( "232yk1.c6", 0x2000001, 0x800000, CRC(0b504e35) SHA1(597cabd5077670827ad3e809d6cd52c9c7f3013a) )
+ROM_END
+
+ROM_START( kof97s51 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc51.p1", 0x000000, 0x100000, CRC(051a39bd) SHA1(f76c1a95fe83a90a53f834f42780199c7b3513af) )
+ ROM_LOAD16_WORD_SWAP( "232hc51.sp2", 0x100000, 0x400000, CRC(8256887e) SHA1(347e1e92aee5e290adc2a97061e73d0338d098bc) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s52 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc52.p1", 0x000000, 0x100000, CRC(c62d95c5) SHA1(ba2257dc28d943398841077eed6eaf288138eb92) )
+ ROM_LOAD16_WORD_SWAP( "232hc53.sp2", 0x100000, 0x400000, CRC(eb0103c6) SHA1(95eb98374c1d8e08bc13a51d01f6fb9de6a8a996) )
+
+ NEO_SFIX_128K( "232hc52.s1", CRC(6976f2a0) SHA1(403d03d3d3bf9534a0a7113bc5c16a10e653f80e) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s53 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc53.p1", 0x000000, 0x100000, CRC(91231a46) SHA1(c4f21f6d2cfeb1d83c916f4987e8e6eab40d8a6c) )
+ ROM_LOAD16_WORD_SWAP( "232hc53.sp2", 0x100000, 0x400000, CRC(eb0103c6) SHA1(95eb98374c1d8e08bc13a51d01f6fb9de6a8a996) )
+
+ NEO_SFIX_128K( "232hc52.s1", CRC(6976f2a0) SHA1(403d03d3d3bf9534a0a7113bc5c16a10e653f80e) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s54 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc54.p1", 0x000000, 0x100000, CRC(82d8ddc7) SHA1(967e24d1225fd557e1f69fc3c5796290571d3293) )
+ ROM_LOAD16_WORD_SWAP( "232hc54.sp2", 0x100000, 0x400000, CRC(4a9bf2d2) SHA1(97da01e7f3c07e77a28603ca1085d4a058d8b503) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s55 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc55.p1", 0x000000, 0x100000, CRC(75b3cb36) SHA1(e921574d592e25040ac70dac2a0016aeade7e85f) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s56 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc56.p1", 0x000000, 0x100000, CRC(4756695c) SHA1(c7fdf93d8b6175194533e41d16aa1740cb37f3e1) )
+ ROM_LOAD16_WORD_SWAP( "232hc56.sp2", 0x100000, 0x400000, CRC(3c9aa01c) SHA1(68c004861c991c1d8449c839e282a9bdf7db8d9d) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232hc56.c1", 0x0000000, 0x800000, CRC(63e04fd2) SHA1(3b1e157c27e8f116ccdf940b5e86fea47586a4da) )
+ ROM_LOAD16_BYTE( "232hc56.c2", 0x0000001, 0x800000, CRC(c3e5db31) SHA1(4c69e9f5b3dc24b80350b45b847ee526fad2538d) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s57 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc57.p1", 0x000000, 0x100000, CRC(4ea3ab7d) SHA1(035d8a63d91d9fb1b6517d34d0d863e3568f980a) )
+ ROM_LOAD16_WORD_SWAP( "232hc57.sp2", 0x100000, 0x400000, CRC(72b8a4df) SHA1(7ffc08bcaa7fbc1dcad102172b298c03ffb95658) )
+
+ NEO_SFIX_128K( "232hc57.s1", CRC(c698743b) SHA1(82fdd4b84bb794aa7d37e9c4943d16f3e79648a4) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232ae.c1", 0x0000000, 0x800000, CRC(ea16b711) SHA1(e54d1a0b559f1ef326ee86bc89e9f1b399f08b32) )
+ ROM_LOAD16_BYTE( "232ae.c2", 0x0000001, 0x800000, CRC(b7bef674) SHA1(378a67dfa7dba03900dd7c70a3473c12f9879af1) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s58 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc58.p1", 0x000000, 0x100000, CRC(74ea505f) SHA1(8c8fa0be06e77e37db08f87c0b6bf6ce1d99887d) )
+ ROM_LOAD16_WORD_SWAP( "232hc58.sp2", 0x100000, 0x400000, CRC(c5eab722) SHA1(104b18792ae3a2ccd6d43ad39f7829e86d782790) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s59 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc59.p1", 0x000000, 0x100000, CRC(2e019c5e) SHA1(9314dcca12203f3482beeb8dd3a58b0bb1ba82f3) )
+ ROM_LOAD16_WORD_SWAP( "232hc59.sp2", 0x100000, 0x400000, CRC(5ca28fd9) SHA1(01464ef12f22afb53005c4c9a767948aa1d19c40) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s60 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc60.p1", 0x000000, 0x100000, CRC(8b8fd4b6) SHA1(0772c5204ab828bd7baa0e713788135b0b0291dc) )
+ ROM_LOAD16_WORD_SWAP( "232hc60.sp2", 0x100000, 0x400000, CRC(4406d4ed) SHA1(6a9caa6e70a6b67cd7e69012e5a2bff28157b0a1) )
+
+ NEO_SFIX_128K( "232hc60.s1", CRC(f9b2857b) SHA1(fad514e4350f8cac31152aa314f4251b4ac3ee5f) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232hc60.c1", 0x0000000, 0x800000, CRC(8acfba3c) SHA1(6ad085dbfcc5a961702d4da23c1d1bd09d3e8a57) )
+ ROM_LOAD16_BYTE( "232hc60.c2", 0x0000001, 0x800000, CRC(8337fff9) SHA1(df633690ea2f60e86ec696e6c9f69eeba4368833) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232hc60.c5", 0x2000000, 0x400000, CRC(e552d859) SHA1(f71063dc77e5a06e85dac5a6f3f89f8519c0f1bb) )
+ ROM_LOAD16_BYTE( "232hc60.c6", 0x2000001, 0x400000, CRC(41f68027) SHA1(666031591b677a99195b9475f8b2df463455c8fb) )
+ROM_END
+
+ROM_START( kof97s61 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc61.p1", 0x000000, 0x100000, CRC(3dfd4fe6) SHA1(0b6a562d44a674cae2e54d31be8acfdb9f106662) )
+ ROM_LOAD16_WORD_SWAP( "232hc61.sp2", 0x100000, 0x400000, CRC(225f50a5) SHA1(9b32d9cbce31acfa42d97a1dfcd70445dbd6d16b) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s62 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc62.p1", 0x000000, 0x100000, CRC(b2e07665) SHA1(70219c277292e3942153b138a2ed52b883f5c3b9) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s63 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc63.p1", 0x000000, 0x100000, CRC(326bd4c1) SHA1(a74302c5e26f9592cd7dca9b2079a500941dbbf2) )
+ ROM_LOAD16_WORD_SWAP( "232hc63.sp2", 0x100000, 0x400000, CRC(a3ad39c5) SHA1(29c6e963aa113b84358b08554a7e4f35ff639702) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232hc63.c1", 0x0000000, 0x800000, CRC(93415994) SHA1(b0473816e3ff82d68e66be3722ac39af19e05d7d) )
+ ROM_LOAD16_BYTE( "232hc63.c2", 0x0000001, 0x800000, CRC(65b3b5b0) SHA1(076d640b71103c6fe1cf3ffd001eaa78e3da178d) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232hc63.c5", 0x2000000, 0x800000, CRC(0a3dff27) SHA1(673cbd73a565c42ab0cdfda05c9ba9749f2ecf53) )
+ ROM_LOAD16_BYTE( "232hc63.c6", 0x2000001, 0x800000, CRC(0a9d4eb1) SHA1(4fea45adc8cb3445cf2b6cd28f448fff7c4e215b) )
+ROM_END
+
+ROM_START( kof97s64 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc64.p1", 0x000000, 0x100000, CRC(d7e8c1bc) SHA1(1c934245db75b68e717ddcd4146cc72f60c389bd) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s65 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc65.p1", 0x000000, 0x100000, CRC(ae27702c) SHA1(70bc4bf6f104ce696946f8ebf7935f992c4f67ee) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s66 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc66.p1", 0x000000, 0x100000, CRC(6a5a06ce) SHA1(be1e494aa85f7e6b04018a0d56925a12eb4c2ac4) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s67 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc67.p1", 0x000000, 0x100000, CRC(ae73ba57) SHA1(d93ca0f7883ce9a977faf2a7ee1a1bd18269111c) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s68 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc68.p1", 0x000000, 0x100000, CRC(af5fed01) SHA1(2affcecae2307516f723d41dbb71f525ec5725f8) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s69 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc69.p1", 0x000000, 0x100000, CRC(7cb5038f) SHA1(755d7129f19c5d8efbffe9737d929d23f0294058) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s70 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc70.p1", 0x000000, 0x100000, CRC(5aaa900f) SHA1(c05a7da49a47c57e6229f238ab12178e467ae792) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s71 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc71.p1", 0x000000, 0x100000, CRC(dd912533) SHA1(9fbe717e0a18dfab7722971d29c2e51f0e9d2215) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s72 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc72.p1", 0x000000, 0x100000, CRC(13e896f1) SHA1(9e4b4b3a9077aef6c65d492fcc8fbb9d6eeb4184) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s73 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc73.p1", 0x000000, 0x100000, CRC(cf073846) SHA1(3ae23fdbe797913cb8f055849ee8ff304f661705) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s74 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc74.p1", 0x000000, 0x100000, CRC(a34ef720) SHA1(9f321027768d6582294a9d859704f9e5e3441d0a) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s75 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc75.p1", 0x000000, 0x100000, CRC(1e48df3d) SHA1(0c7ca4501a79b0cf9876ca27fb97ed821a5fac74) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s76 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc76.p1", 0x000000, 0x100000, CRC(4a7a297d) SHA1(984b721a704c22208518e74416cb34410ef29b82) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s77 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc77.p1", 0x000000, 0x100000, CRC(9d698d1d) SHA1(2df6fd7da32bf3b9901a8a6ca11d2c1a61d2a444) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s78 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc78.p1", 0x000000, 0x100000, CRC(4e840d68) SHA1(8fbc41392c04916295511fa7f23f8cc771a7adc5) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s79 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc79.p1", 0x000000, 0x100000, CRC(6cdf8ca0) SHA1(a305a9eeb493f3436d960e9ff5f718e1472626b7) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s80 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc80.p1", 0x000000, 0x100000, CRC(cbce0a7f) SHA1(b9758e840f293bba663a5e44a67b266ae59da33f) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s81 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc81.p1", 0x000000, 0x100000, CRC(d40e414c) SHA1(e48de85e2fc5533dc754b4a4b22397afc0a6d2f8) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s82 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc82.p1", 0x000000, 0x100000, CRC(7de80120) SHA1(0bf31edc6955eb2e4889fa77ec545d6f416ce06e) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s83 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc83.p1", 0x000000, 0x100000, CRC(6ce98040) SHA1(1f211076c89eb7749cd590ac0252f6f059a3e3b5) )
+ ROM_LOAD16_WORD_SWAP( "232hc83.sp2", 0x100000, 0x400000, CRC(46ac674d) SHA1(c1ded3509c0803f4adefe0692c1c5081c3fee66d) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s84 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc84.p1", 0x000000, 0x100000, CRC(e7f0100e) SHA1(c5a42e7e5bdc043263508f3638a26358344c90ef) )
+ ROM_LOAD16_WORD_SWAP( "232hc84.sp2", 0x100000, 0x400000, CRC(d4c24154) SHA1(304c166b0b47e421169a6da67e7b4aea6acf40cc) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s85 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc85.p1", 0x000000, 0x100000, CRC(4f913f23) SHA1(0b0ea3096b6b9842c60c3432171309a636459619) )
+ ROM_LOAD16_WORD_SWAP( "232hc85.sp2", 0x100000, 0x400000, CRC(84927734) SHA1(2ec1c383933f45560c944bc5d979d4a03b42e2b6) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s86 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc86.p1", 0x000000, 0x100000, CRC(94051dc1) SHA1(3bd8b3f36ace3436e88c50e2dd14c1d55623c764) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s87 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc87.p1", 0x000000, 0x100000, CRC(ab079c62) SHA1(f7e5a8ff83aa8de446936c8462bb9c989ce1d0d1) )
+ ROM_LOAD16_WORD_SWAP( "232hc87.sp2", 0x100000, 0x400000, CRC(7056d6b0) SHA1(de1d93876377f72d9dfef35b41c58fbda2335fb7) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232hc87.c1", 0x0000000, 0x800000, CRC(abb47074) SHA1(a5cddc78d9483bb1c6ba54c1d238754844ca2bef) )
+ ROM_LOAD16_BYTE( "232hc87.c2", 0x0000001, 0x800000, CRC(6a313504) SHA1(35458b96ff308804dc524b6564197f44c46d67f9) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232hc87.c5", 0x2000000, 0x400000, CRC(9975e5e6) SHA1(b5423083b6456c9dfd406168790be82865bd668b) )
+ ROM_LOAD16_BYTE( "232hc87.c6", 0x2000001, 0x400000, CRC(f035c701) SHA1(7d4d1878376149f596930dfcab8a0cbfdca89709) )
+ROM_END
+
+ROM_START( kof97s88 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc88.p1", 0x000000, 0x100000, CRC(9d8aa0b1) SHA1(36a3e56f09f0f2c4c5665fdf8bdbeca0f3a6597c) )
+ ROM_LOAD16_WORD_SWAP( "232hc88.sp2", 0x100000, 0x400000, CRC(c3237b73) SHA1(f4b533cec3c5a5129d1ed203efeaa948c4146b05) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s89 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc89.p1", 0x000000, 0x100000, CRC(5d279e62) SHA1(0805f45494572f6743443e404c977ee11352c85a) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s90 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc90.p1", 0x000000, 0x100000, CRC(782bbec6) SHA1(a4a02a1097bd69989f01f7bd83ad167b2aad7181) )
+ ROM_LOAD16_WORD_SWAP( "232hc90.sp2", 0x100000, 0x400000, CRC(3ee0cac0) SHA1(edf001cc7f99064b605dc661b27acba9c4b42b3f) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s91 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc91.p1", 0x000000, 0x100000, CRC(4b25d696) SHA1(76d378deb35d169e17e33aa76f1d0dc26c9a765e) )
+ ROM_LOAD16_WORD_SWAP( "232hc91.sp2", 0x100000, 0x400000, CRC(91634136) SHA1(e6c2eb622202dd7b345b40f294662e07fe8098cf) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232hc91.c1", 0x0000000, 0x800000, CRC(648cd702) SHA1(85ee1e6b132df89f35cad700f49b378d024ab555) )
+ ROM_LOAD16_BYTE( "232hc91.c2", 0x0000001, 0x800000, CRC(4f9a364d) SHA1(539481fb23cca90aa89dc329a7582c0e1844cdde) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232hc91.c5", 0x2000000, 0x400000, CRC(5a6408d1) SHA1(3be70e9e855c09f9371c7a443f5f20bbd7e52175) )
+ ROM_LOAD16_BYTE( "232hc91.c6", 0x2000001, 0x400000, CRC(65e57e20) SHA1(1a30f797d7c4e0482c186b92cf27d439c012e75d) )
+ROM_END
+
+ROM_START( kof97s92 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc92.p1", 0x000000, 0x100000, CRC(a2859848) SHA1(64b8e4c3086927f0d2d787ee0c92dea6bc184c20) )
+ ROM_LOAD16_WORD_SWAP( "232hc92.sp2", 0x100000, 0x400000, CRC(8c635abc) SHA1(dc3bb0574163bcce6620b454a021fdc53ddc5279) )
+
+ NEO_SFIX_128K( "232hc92.s1", CRC(e4ea4d90) SHA1(04ad6e39e871770f063d1bcc519f5913e769ca8e) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232hc92.c1", 0x0000000, 0x800000, CRC(b73a0baf) SHA1(cc549320b96bbb8cc1ad21154ce01fd7fc85af3d) )
+ ROM_LOAD16_BYTE( "232hc92.c2", 0x0000001, 0x800000, CRC(e8800362) SHA1(64de5e714d02ba34ca2086129d12ace21f11c3d2) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232hc92.c5", 0x2000000, 0x400000, CRC(c3c96207) SHA1(22b60d0dd2cbecf3f985043f7f2500d90c59633c) )
+ ROM_LOAD16_BYTE( "232hc92.c6", 0x2000001, 0x400000, CRC(1251f20c) SHA1(ae67c597f59090a984c2a3df216cb9b191b6cb60) )
+ROM_END
+
+ROM_START( kof97s93 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc93.p1", 0x000000, 0x100000, CRC(fe7329bc) SHA1(8b31614386c4109e9708511a23af7334b2598d10) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232sex.c1", 0x0000000, 0x800000, CRC(085bcdfa) SHA1(042deb49b20763bbe0a3e8236a6d5798b3036536) )
+ ROM_LOAD16_BYTE( "232sex.c2", 0x0000001, 0x800000, CRC(78613707) SHA1(68f244a83e7314fe62a61bad0d0e5253a493da54) )
+ ROM_LOAD16_BYTE( "232sex.c3", 0x1000000, 0x800000, CRC(afde78ed) SHA1(2075d68980a867b498fe812f3265a36bddd57a81) )
+ ROM_LOAD16_BYTE( "232sex.c4", 0x1000001, 0x800000, CRC(9d61d6ca) SHA1(03d81bcda5d1d08fbe2eb2569937bcb0fdf83269) )
+ ROM_LOAD16_BYTE( "232sex.c5", 0x2000000, 0x400000, CRC(10ea56c6) SHA1(8324418820f88264c19be5fd73a0fe98fe5b0c0e) )
+ ROM_LOAD16_BYTE( "232sex.c6", 0x2000001, 0x400000, CRC(d48fe6c9) SHA1(6fec93dcc562b7243b2f550857073323f81d3db7) )
+ROM_END
+
+ROM_START( kof97s94 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc94.p1", 0x000000, 0x100000, CRC(b8cfac77) SHA1(e166033c9a9948a7baa5c06ae341b857820e161b) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s95 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc95.p1", 0x000000, 0x454fd8, CRC(318b7989) SHA1(6ef83cdfc193dd783eee1615d521da8b97b98b21) )
+ ROM_LOAD16_WORD_SWAP( "232svs.p2", 0x100000, 0x454f46, CRC(9deca038) SHA1(dbb756ad859e8ec4f7ed1400f5d839401068ee58) )
+
+ NEO_SFIX_128K( "232svs.s1", CRC(867a9aec) SHA1(9483eb67ce8bad9a5933554e25a34f68b1ad6f13) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232svs.c1", 0x0000000, 0x800000, CRC(7173901b) SHA1(a0eb2c269560baaabb083f733b7bea6aab954eae) )
+ ROM_LOAD16_BYTE( "232svs.c2", 0x0000001, 0x800000, CRC(404ef620) SHA1(e3ca4e677c6f76e467e482172d9acbb60cc819b8) )
+ ROM_LOAD16_BYTE( "232svs.c3", 0x1000000, 0x800000, CRC(27a27dd5) SHA1(658000df70768f3ca257d64eaedadad26e34fc95) )
+ ROM_LOAD16_BYTE( "232svs.c4", 0x1000001, 0x800000, CRC(e6a91916) SHA1(b21fda210dac93174585c70fd58735ed42a5b7f0) )
+ ROM_LOAD16_BYTE( "232kha.c5", 0x2000000, 0x800000, CRC(283c1207) SHA1(62b35d06ed13c2eaafc0fca1048df706dd39de41) )
+ ROM_LOAD16_BYTE( "232kha.c6", 0x2000001, 0x800000, CRC(b23d66c3) SHA1(e59dcccd376510567c076002bd7de8b9401bf233) )
+ROM_END
+
+ROM_START( kof97s96 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232-p1hc96.p1", 0x000000, 0x100000, CRC(a4b7ff62) SHA1(7a814d2aced43d2025a3faffa6548be5091d69c6) )
+ ROM_LOAD16_WORD_SWAP( "232-p2hc96.sp2", 0x100000, 0x400000, CRC(bfd1b88d) SHA1(687498480efaddb07d4b04f30aaa4374a8ce1143) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x3800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232hc96.c5", 0x2000000, 0x812400, CRC(645e9b2f) SHA1(c95aaf2de7aaa4cef995cb71751421f6b06b6331) )
+ ROM_LOAD16_BYTE( "232hc96.c6", 0x2000001, 0x812400, CRC(d8532c1c) SHA1(20e163a2925c2295c9f815184a35c2ba66a719e6) )
+ROM_END
+
+ROM_START( kof97s97 )
+ ROM_REGION( 0x700000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc97.p1", 0x000000, 0x100000, CRC(894026a1) SHA1(e45e4b914b94f02fa6276b62058a576a0f0870e2) )
+ ROM_LOAD16_WORD_SWAP( "232hc97.sp2", 0x100000, 0x600000, CRC(323b0c6c) SHA1(df5d11c55bded48578054f489297a05427e0b20e) )
+
+ NEO_SFIX_128K( "232cn.s1", CRC(de5ad278) SHA1(3d041c5e51b5076dacef235cd2847b09722e86a2) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232hc92.c1", 0x0000000, 0x800000, CRC(b73a0baf) SHA1(cc549320b96bbb8cc1ad21154ce01fd7fc85af3d) )
+ ROM_LOAD16_BYTE( "232hc92.c2", 0x0000001, 0x800000, CRC(e8800362) SHA1(64de5e714d02ba34ca2086129d12ace21f11c3d2) )
+ ROM_LOAD16_BYTE( "232yk.c3", 0x1000000, 0x800000, CRC(b092e64f) SHA1(7d809432d068db8f9056f5210570191416f1a53b) )
+ ROM_LOAD16_BYTE( "232yk.c4", 0x1000001, 0x800000, CRC(d25e8a04) SHA1(52227828e3fdd27399b4cd514551abf856293f47) )
+ ROM_LOAD16_BYTE( "232hc92.c5", 0x2000000, 0x400000, CRC(c3c96207) SHA1(22b60d0dd2cbecf3f985043f7f2500d90c59633c) )
+ ROM_LOAD16_BYTE( "232hc92.c6", 0x2000001, 0x400000, CRC(1251f20c) SHA1(ae67c597f59090a984c2a3df216cb9b191b6cb60) )
+ROM_END
+
+ROM_START( kof97s98 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc98.p1", 0x000000, 0x100000, CRC(b440237d) SHA1(ae81a85a33534310ce468a893da373f623ecad9a) )
+ ROM_LOAD16_WORD_SWAP( "232evo.p2", 0x100000, 0x400000, CRC(5cbb2499) SHA1(58e21c1ff7afbfcca0a733e2b3e9f54b2317ed42) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97s99 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hc99.p1", 0x000000, 0x100000, CRC(e6559ea2) SHA1(23a5dacc5829fea987a88bc4bdc182066110691e) )
+ ROM_LOAD16_WORD_SWAP( "232hc99.p2", 0x100000, 0x400000, CRC(b57fb96c) SHA1(b16bd0a89cb785f07e0d6ffa1dcb51892c478aca) )
+
+ NEO_SFIX_128K( "232hc99.s1", CRC(34165805) SHA1(85550b3adce3484ae56dce3ad3e2b0d337db2d03) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97h01 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hh01.p1", 0x000000, 0x100000, CRC(49fed5ed) SHA1(6617e51ffce680ce52525eb803da90977df21fec) )
+ ROM_LOAD16_WORD_SWAP( "232ne.p2", 0x100000, 0x400000, CRC(A028904B) SHA1(f099a31d9f61fc9c63f8816f942c13fb67f56d52) )
+
+ NEO_SFIX_128K( "232hc99.s1", CRC(34165805) SHA1(85550b3adce3484ae56dce3ad3e2b0d337db2d03) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232ne.c5", 0x2000000, 0x400000, CRC(6FE02054) SHA1(47b3a6f0867e15900deb3ffd5f888cbcf6e2bbdd) )
+ ROM_LOAD16_BYTE( "232ne.c6", 0x2000001, 0x400000, CRC(0F96C84A) SHA1(79a8e1ff71051ece0ca6c8f75b0bd1cd567f2e33) )
+ROM_END
+
+ROM_START( kof97h02 )
+ ROM_REGION( 0xD00000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hh02.p1", 0x000000, 0x100000, CRC(47d9f5d9) SHA1(de1e1002f9c727b50e4726aafed65ffca4ed9548) )
+ ROM_LOAD16_WORD_SWAP( "232yk85.p2", 0x100000, 0x600000, CRC(170e7302) SHA1(3952ca4fbf8aa71e372372881efc4f4aafa9562c) )
+
+ NEO_SFIX_128K( "232yk85.s1", CRC(d8826314) SHA1(5d3ffdf709ee8f84e451464866d0ddcaf98bdb89) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x5000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232yk85.c1", 0x0000000, 0x800000, CRC(e47371bb) SHA1(e0e107f4edfbac0a7638b240405745bf31dbadf9) )
+ ROM_LOAD16_BYTE( "232yk85.c2", 0x0000001, 0x800000, CRC(e09108b0) SHA1(b19e0101ed500dec65156a6c19334125a4012521) )
+ ROM_LOAD16_BYTE( "232yk1.c3", 0x1000000, 0x800000, CRC(ffb025af) SHA1(64913b51b496a13a92317008d2a15543e6c89ba9) )
+ ROM_LOAD16_BYTE( "232yk1.c4", 0x1000001, 0x800000, CRC(7182157c) SHA1(306a968ae325d0b7d647e7fdb36a3a07bacda923) )
+ ROM_LOAD16_BYTE( "232yk85.c5", 0x2000000, 0x800000, CRC(c61653cc) SHA1(05674fb5b0007f200b090e93863335fdf474fa64) )
+ ROM_LOAD16_BYTE( "232yk85.c6", 0x2000001, 0x800000, CRC(a01a762f) SHA1(68df7a1753745b9468c4f464779c2c5033f16458) )
+ ROM_LOAD16_BYTE( "232yk85.c7", 0x3000000, 0x800000, CRC(52ac1bcf) SHA1(51f026db5bac479b82297260b55575f8a60306c7) )
+ ROM_LOAD16_BYTE( "232yk85.c8", 0x3000001, 0x800000, CRC(76de561d) SHA1(8f27e746372daf77ff41c4ee431fa36ae22c7b8d) )
+ ROM_LOAD16_BYTE( "232yk85.c9", 0x4000000, 0x800000, CRC(46eb506a) SHA1(1b64fb31dfdc95b901b2e3d359bdee38f764358f) )
+ ROM_LOAD16_BYTE( "232yk85.c10", 0x4000001, 0x800000, CRC(33595746) SHA1(1532ce71b27beace35f359568d506eaf75ad578d) )
+ROM_END
+
+ROM_START( kof97h03 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hh03.p1", 0x000000, 0x100000, CRC(d8295229) SHA1(395d5e02a8978e36e8e41c3c9bba69433ac1359c) )
+ ROM_LOAD16_WORD_SWAP( "232hh03.p2", 0x100000, 0x400000, CRC(3ccd9cf3) SHA1(d9d80e03afdf81b39aad2b01847e2f91338e1280) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97h04 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hh04.p1", 0x000000, 0x100000, CRC(d8295229) SHA1(395d5e02a8978e36e8e41c3c9bba69433ac1359c) )
+ ROM_LOAD16_WORD_SWAP( "232hh04.p2", 0x100000, 0x400000, CRC(3ccd9cf3) SHA1(d9d80e03afdf81b39aad2b01847e2f91338e1280) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97h05 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hh05.p1", 0x000000, 0x100000, CRC(0290962e) SHA1(d26956eafa7dce7e0e7bd99d6bc767da7d48e9a5) )
+ ROM_LOAD16_WORD_SWAP( "232hh05.p2", 0x100000, 0x400000, CRC(0410b42e) SHA1(f430a631ba9cd03861b34ad79cbcc1f1d54d1fb4) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232hh05.c1", 0x0000000, 0x800000, CRC(57633aca) SHA1(f5d82441d3a3f42e900a29684ff2e5e8ff8288f9) )
+ ROM_LOAD16_BYTE( "232hh05.c2", 0x0000001, 0x800000, CRC(831ec266) SHA1(0286ad4f8b0341d55718b3a0a9bdb8d384b2c5c9) )
+ ROM_LOAD16_BYTE( "232yk.c3", 0x1000000, 0x800000, CRC(b092e64f) SHA1(7d809432d068db8f9056f5210570191416f1a53b) )
+ ROM_LOAD16_BYTE( "232yk.c4", 0x1000001, 0x800000, CRC(d25e8a04) SHA1(52227828e3fdd27399b4cd514551abf856293f47) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97h06 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232-p1.p1", 0x000000, 0x100000, CRC(7db81ad9) SHA1(8bc42be872fd497eb198ca13bf004852b88eb1dc) )
+ ROM_LOAD16_WORD_SWAP( "232hh06.sp2", 0x100000, 0x400000, CRC(6a311b90) SHA1(fdfa84c9eccf43bea6d8bb6cf65839645be1bab5) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97h07 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232-p1.p1", 0x000000, 0x100000, CRC(7db81ad9) SHA1(8bc42be872fd497eb198ca13bf004852b88eb1dc) )
+ ROM_LOAD16_WORD_SWAP( "232hh07.sp2", 0x100000, 0x400000, CRC(e50b662d) SHA1(07a3431a6c86df679f83c37300367cfe4ca7bc42) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97h08 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232-p1.p1", 0x000000, 0x100000, CRC(7db81ad9) SHA1(8bc42be872fd497eb198ca13bf004852b88eb1dc) )
+ ROM_LOAD16_WORD_SWAP( "232hh08.sp2", 0x100000, 0x400000, CRC(965123c7) SHA1(46e2ac7b9adf04acbf6c798e6498793395949fef) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97h09 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232-p1.p1", 0x000000, 0x100000, CRC(7db81ad9) SHA1(8bc42be872fd497eb198ca13bf004852b88eb1dc) )
+ ROM_LOAD16_WORD_SWAP( "232hh09.sp2", 0x100000, 0x400000, CRC(b337c87d) SHA1(11568e405e85940128dff567f17e8a7db0588c4a) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97h10 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232-p1.p1", 0x000000, 0x100000, CRC(7db81ad9) SHA1(8bc42be872fd497eb198ca13bf004852b88eb1dc) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232hh10.m1", CRC(62e411e0) SHA1(0f91abd23b3f1275ac2f763712b66751fcf6f4f6) )
+
+ ROM_REGION( 0x1400000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+ ROM_LOAD( "232hh10.v4", 0x800000, 0x400000, CRC(38ab9647) SHA1(e0ac665009e52b224838d706a01c38bd2e99a60c) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97h11 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hh11.p1", 0x000000, 0x100000, CRC(b4db7d17) SHA1(d0a057adfcf9b6a456c7b5889a49de8efbacb329) )
+ ROM_LOAD16_WORD_SWAP( "232hh11.sp2", 0x100000, 0x400000, CRC(7534fc57) SHA1(510401987d25d28ff81266ee591a16972958938b) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97h12 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hh12.p1", 0x000000, 0x100000, CRC(96b064e7) SHA1(d8a8e32293b5a16c0545725d1952578c1f181d7b) )
+ ROM_LOAD16_WORD_SWAP( "232hh12.sp2", 0x100000, 0x400000, CRC(ee4a2db4) SHA1(c790bdb9b255788df9c99aacf3861ee380eb2df4) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97h13 )
+ ROM_REGION( 0xD00000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hh13.p1", 0x000000, 0x100000, CRC(01bcd35c) SHA1(4967fafb4fd8ef38f55d66a8ef74dda407e9371c) )
+ ROM_LOAD16_WORD_SWAP( "232hh13.sp2", 0x100000, 0x600000, CRC(8dff13d2) SHA1(1660de3d94a0872cb68fbf553bab34556db47f58) )
+
+ NEO_SFIX_128K( "232yk1.s1", CRC(c7dbe270) SHA1(0b81b31da6c18dd02e8d0442100685d5ff61bece) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232yk1.c1", 0x0000000, 0x800000, CRC(f748da71) SHA1(5012e8537e7d16d365d9c088a70323b3b71cd6f5) )
+ ROM_LOAD16_BYTE( "232kp1.c2", 0x0000001, 0x800000, CRC(5869e4ad) SHA1(17b3d921ad0118e9fb61fd665639901c4b3bc2f5) )
+ ROM_LOAD16_BYTE( "232yk1.c3", 0x1000000, 0x800000, CRC(ffb025af) SHA1(64913b51b496a13a92317008d2a15543e6c89ba9) )
+ ROM_LOAD16_BYTE( "232yk1.c4", 0x1000001, 0x800000, CRC(7182157c) SHA1(306a968ae325d0b7d647e7fdb36a3a07bacda923) )
+ ROM_LOAD16_BYTE( "232yk1.c5", 0x2000000, 0x800000, CRC(00a77a26) SHA1(a86054fd3870be49ad6055a2fab663cb5ef27de2) )
+ ROM_LOAD16_BYTE( "232yk1.c6", 0x2000001, 0x800000, CRC(0b504e35) SHA1(597cabd5077670827ad3e809d6cd52c9c7f3013a) )
+ROM_END
+
+ROM_START( kof97h14 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hh14.p1", 0x000000, 0x100000, CRC(49fed5ed) SHA1(6617e51ffce680ce52525eb803da90977df21fec) )
+ ROM_LOAD16_WORD_SWAP( "232ne.p2", 0x100000, 0x400000, CRC(A028904B) SHA1(f099a31d9f61fc9c63f8816f942c13fb67f56d52) )
+
+ NEO_SFIX_128K( "232hc99.s1", CRC(34165805) SHA1(85550b3adce3484ae56dce3ad3e2b0d337db2d03) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232ne.c5", 0x2000000, 0x400000, CRC(6FE02054) SHA1(47b3a6f0867e15900deb3ffd5f888cbcf6e2bbdd) )
+ ROM_LOAD16_BYTE( "232ne.c6", 0x2000001, 0x400000, CRC(0F96C84A) SHA1(79a8e1ff71051ece0ca6c8f75b0bd1cd567f2e33) )
+ROM_END
+
+ROM_START( kof97h15 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hh15.p1", 0x000000, 0x100000, CRC(8bca8a2b) SHA1(ca35074e44bed428f760b30279fd2c05feece752) )
+ ROM_LOAD16_WORD_SWAP( "232hh12.sp2", 0x100000, 0x400000, CRC(ee4a2db4) SHA1(c790bdb9b255788df9c99aacf3861ee380eb2df4) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232ne.c5", 0x2000000, 0x400000, CRC(6FE02054) SHA1(47b3a6f0867e15900deb3ffd5f888cbcf6e2bbdd) )
+ ROM_LOAD16_BYTE( "232ne.c6", 0x2000001, 0x400000, CRC(0F96C84A) SHA1(79a8e1ff71051ece0ca6c8f75b0bd1cd567f2e33) )
+ROM_END
+
+ROM_START( kof97h16 )
+ ROM_REGION( 0xD00000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hh16.p1", 0x000000, 0x454FD8, CRC(54585ca7) SHA1(6329613d94534f656c1531cd86e4e834911f583b) )
+ ROM_LOAD16_WORD_SWAP( "232hh16.sp2", 0x100000, 0x454F46, CRC(9e2b32ef) SHA1(4bfbe21fd49276c4ecd6030a35faaf93d12b5286) )
+
+ NEO_SFIX_128K( "232xt.s1", CRC(d6fe166f) SHA1(55e70395466ab68e7a170be3aa6f5978e704701b) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232hh15.c1", 0x0000000, 0x800000, CRC(847d3871) SHA1(78bd208880060e11c476223eb62d6f0a747dd3d9) )
+ ROM_LOAD16_BYTE( "232hh15.c2", 0x0000001, 0x800000, CRC(9e6550cb) SHA1(06e1db5bbea1baccded72db2d67316aa4a42fa86) )
+ ROM_LOAD16_BYTE( "232hh15.c3", 0x1000000, 0x800000, CRC(f5ae8989) SHA1(a5e4bcc50dcb9587069d2182af9f6ae921bc92ed) )
+ ROM_LOAD16_BYTE( "232hh15.c4", 0x1000001, 0x800000, CRC(cc0c3735) SHA1(077554a8071494b2bf8da2de585f4d1d0d873a79) )
+ ROM_LOAD16_BYTE( "232svsb2.c5", 0x2000000, 0x800000, CRC(2cb9f438) SHA1(a358f81e937504b6bc087bf0e40a17ac07a968b2) )
+ ROM_LOAD16_BYTE( "232svsb2.c6", 0x2000001, 0x800000, CRC(95029580) SHA1(51cc1186269da68c89af2e2f491477e0e2eb244f) )
+ROM_END
+
+ROM_START( kof97h17 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hh17.p1", 0x000000, 0x100000, CRC(c01fda46) SHA1(bc6402f5082efc80a8936364c657165f19b49415) )
+ ROM_LOAD16_WORD_SWAP( "kf97-p2p.bin", 0x100000, 0x400000, CRC(5502b020) SHA1(37c48198d8b3798910a44075782cd1a20b687b4a) )
+
+ NEO_SFIX_128K( "kf97-s1p.bin", CRC(73254270) SHA1(8d06305f9d8890da1327356272b88bdd0dc089f5) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97h18 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hh18.p1", 0x000000, 0x100000, CRC(55b6784f) SHA1(5620198f079588be8300aa3fde11b7cad6bbd447) )
+ ROM_LOAD16_WORD_SWAP( "232hh18.sp2", 0x100000, 0x400000, CRC(37ed4161) SHA1(22cd2560c78b94cd554c76d4f1e5a6edc973c05d) )
+
+ NEO_SFIX_128K( "232hh18.s1", CRC(8bbdf800) SHA1(6f6ad58210660c9a58a1e4576b47ed3fa3aeee82) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97h19 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hh19.p1", 0x000000, 0x100000, CRC(dbf2f4ed) SHA1(56af787bc00a994c0575f4bcd24e58218c0db55c) )
+ ROM_LOAD16_WORD_SWAP( "232hh19.sp2", 0x100000, 0x400000, CRC(e6a75819) SHA1(123b5711d7cef14ba71d93e349bc8f1bb27549f8) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232hh19.c1", 0x0000000, 0x800000, CRC(53256410) SHA1(d584c85013c34a971338b08858b3e4349c926249) )
+ ROM_LOAD16_BYTE( "232hh19.c2", 0x0000001, 0x800000, CRC(44a8091f) SHA1(bdb1d7a73a4e32fc86d191babf264a48bdf7df32) )
+ ROM_LOAD16_BYTE( "232hh19.c3", 0x1000000, 0x800000, CRC(749d229d) SHA1(6ea1b0c274983f3a1901d6bca10242fa06a9c7de) )
+ ROM_LOAD16_BYTE( "232hh19.c4", 0x1000001, 0x800000, CRC(0588c550) SHA1(7b1825b4f54c2b2dc38b88821afeb46721e96de2) )
+ ROM_LOAD16_BYTE( "232svsb2.c5", 0x2000000, 0x800000, CRC(2cb9f438) SHA1(a358f81e937504b6bc087bf0e40a17ac07a968b2) )
+ ROM_LOAD16_BYTE( "232svsb2.c6", 0x2000001, 0x800000, CRC(95029580) SHA1(51cc1186269da68c89af2e2f491477e0e2eb244f) )
+ROM_END
+
+ROM_START( kof97h20 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hh20.p1", 0x000000, 0x100000, CRC(124fda48) SHA1(db40b295e73062d3edc8e6f48cd0fdb9fbda92f7) )
+ ROM_LOAD16_WORD_SWAP( "232hh20.sp2", 0x100000, 0x400000, CRC(83173c53) SHA1(881f2b26fdeb26a4f66f4a71d4460c8035ed2132) )
+
+ NEO_SFIX_128K( "232hh20.s1", CRC(e338d57f) SHA1(4a914bcf0ffd011d4062e0bda9b47cb725324ff0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x5000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232hc63.c1", 0x0000000, 0x800000, CRC(93415994) SHA1(b0473816e3ff82d68e66be3722ac39af19e05d7d) )
+ ROM_LOAD16_BYTE( "232hc63.c2", 0x0000001, 0x800000, CRC(65b3b5b0) SHA1(076d640b71103c6fe1cf3ffd001eaa78e3da178d) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232hh20.c5", 0x2000000, 0x800000, CRC(46fc8247) SHA1(c959868338d35fcc2c4ed7066040bfe00e9999e5) )
+ ROM_LOAD16_BYTE( "232hh20.c6", 0x2000001, 0x800000, CRC(0d39f4a8) SHA1(5f0119907d1991d9ccb41b44adf9b6b1cee05267) )
+ ROM_LOAD16_BYTE( "232hh20.c7", 0x3000000, 0x800000, CRC(9a0a273e) SHA1(0ff61b3e740d86e3c2870b8f4b9f3920bb680b5d) )
+ ROM_LOAD16_BYTE( "232hh20.c8", 0x3000001, 0x800000, CRC(e52514d5) SHA1(5c07fcfff411251088d76b429226b242355d7ede) )
+ROM_END
+
+ROM_START( kof97h21 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232hh21.p1", 0x000000, 0x100000, CRC(8365eeb1) SHA1(b319fed83aff43f28591bd39855d7134401d9efc) )
+ ROM_LOAD16_WORD_SWAP( "232hh21.sp2", 0x100000, 0x400000, CRC(d754a5e1) SHA1(a20bcafc0966b78a8c400a4557c2003203b3c172) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232hh21.c5", 0x2000000, 0x800000, CRC(d076402d) SHA1(7db6a528f9c5fcb0d731b221a0664b4c87d9a087) )
+ ROM_LOAD16_BYTE( "232hh21.c6", 0x2000001, 0x800000, CRC(9f3b86cd) SHA1(322f146edfebe4b741f6411b8cfa92fe962b9f6f) )
+ROM_END
+
+GAME( 2016, kof97s01, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s02, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 02)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s03, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 03)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s04, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 04)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s05, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 05)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s06, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 06)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s07, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 07)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s08, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 08)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s09, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 09)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s10, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 10)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s11, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 11)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s12, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 12)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s13, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 13)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s14, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 14)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s15, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 15)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s16, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 16)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s17, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 17)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s18, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 18)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s19, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 19)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s20, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 20)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s21, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 21)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s22, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 22)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s23, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 23)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s24, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 24)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s25, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 25)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s26, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 26)", MACHINE_SUPPORTS_SAVE )// Falta Archivo
+GAME( 2016, kof97s27, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 27)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s28, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 28)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s29, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Boss PS Special Blue Version)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s30, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 30)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s31, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Heaven Edition Hack By Zhyxxxx 15/04/09)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s32, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (BT Version V1.1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s33, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (BT Version v2.0)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s34, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 34)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s35, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Blocking Version Hack By Ivex 07/02/10)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s36, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (10TH ANNIVERSARY (set 3))", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s37, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Boss Hack By Chl)", MACHINE_SUPPORTS_SAVE )
+//GAME( 2016, kof97s38, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 38)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s39, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 39)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s40, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 40)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s41, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 41)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s42, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 42)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s43, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 43)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s44, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 44)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s45, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 45)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s46, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 46)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s47, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 47)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s48, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Hyper Plus Hack By LRHT)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s49, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 49)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s50, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 50)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s51, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 51)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s52, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 52)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s53, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 53)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s54, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 54)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s55, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Magic Fking Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s56, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Korean Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s57, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 57)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s58, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Plus Quanhuang Shaman V2.0 Hack By Lb70)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s59, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 59)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s60, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Plus 2009 (MHT))", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s61, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 61)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s62, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 62)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s63, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 63)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s64, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 64)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s65, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 65)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s66, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 66)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s67, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 67)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s68, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 68)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s69, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 69)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s70, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 70)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s71, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 71)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s72, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 72)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s73, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 73)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s74, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 74)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s75, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 75)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s76, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 76)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s77, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 77)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s78, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 78)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s79, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 79)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s80, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 80)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s81, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 81)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s82, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 82)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s83, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 83)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s84, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 84)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s85, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 85)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s86, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 86)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s87, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 87)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s88, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Perfect Edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s89, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 89)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s90, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 90)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s91, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 91)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s92, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 92)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s93, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Extra/Sexy Edition/Dragon Edition/Set)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s94, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 94)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s95, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 95)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s96, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 96)", MACHINE_SUPPORTS_SAVE ) //Le Falta El Parche Memoria Region
+GAME( 2016, kof97s97, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 97)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s98, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Evolution Hack By Yashional 19/12/08)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97s99, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin 99)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97h01, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Remixed By NEHT V1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97h02, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin H 02)", MACHINE_SUPPORTS_SAVE )// No funciona Archivo Corrupto
+// GAME( 2016, kof97h03, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin H 03)", MACHINE_SUPPORTS_SAVE ) // Duplicado
+GAME( 2016, kof97h04, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin H 04)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97h05, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Unfinished Colors Revision)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97h06, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Golden Blood Version)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97h07, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Purple Green Remix)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97h08, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Rainbow Style set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97h09, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Rainbow Style set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97h10, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Sound Effect Revision)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97h11, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Unknow Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97h12, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (BT Version X Set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97h13, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Yukimura Hack 27/01/08)", MACHINE_SUPPORTS_SAVE )
+// GAME( 2016, kof97h14, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Super Plus v1.2 Hack By Wanglins)", MACHINE_SUPPORTS_SAVE ) // Duplicado
+GAME( 2016, kof97h15, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin H 05)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97h16, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin H 06)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97h17, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin H 07)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97h18, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin H 08)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97h19, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin H 09)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97h20, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin H 10)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof97h21, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'97 (Description Of Unknown Origin H 11)", MACHINE_SUPPORTS_SAVE )
+
+
diff --git a/src/hbmame/drivers/kof98.cpp b/src/hbmame/drivers/kof98.cpp
new file mode 100644
index 00000000000..dc8065d71d0
--- /dev/null
+++ b/src/hbmame/drivers/kof98.cpp
@@ -0,0 +1,5470 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+
+
+
+ROM_START( kof98aas ) // Asamiya Athena 99 Style by Ivex
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242-pn1.p1", 0x000000, 0x100000, CRC(61ac868a) SHA1(26577264aa72d6af272952a876fcd3775f53e3fa) )
+ ROM_LOAD16_WORD_SWAP( "242aas.p2", 0x100000, 0x400000, CRC(c42a4608) SHA1(8cb95c85e0590400645b771352f6c361055269f6) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242aas.c3", 0x1000000, 0x800000, CRC(39c4210d) SHA1(aca8198441acbe3d8b4680b1446bd5616355c4b2) )
+ ROM_LOAD16_BYTE( "242aas.c4", 0x1000001, 0x800000, CRC(9089241f) SHA1(ec9845914f8f817bbe92ce20a1c72a65ba0701ee) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98ae ) // not used, for experimentation
+ ROM_REGION( 0x700000, "maincpu", 0 )
+ // These are corrupt during attract mode fight (where cars are driving past), do not use
+ //ROM_LOAD16_WORD_SWAP( "242ae.p1", 0x000000, 0x100000, CRC(c9188c66) SHA1(9b248df5438cd555314ec71e52e7da6cfb192219) )
+ //ROM_LOAD16_WORD_SWAP( "242ae.p1", 0x000000, 0x100000, CRC(74e20ae9) SHA1(84d17fb0ee462fe491e3220e935cb588f8121611) )
+ //ROM_LOAD16_WORD_SWAP( "242ae.p1", 0x000000, 0x100000, CRC(23a80b3e) SHA1(b1afaf382ffd5a1d72ae5ca18c11a751a11d7654) )
+ ROM_LOAD16_WORD_SWAP( "242ae.p2", 0x100000, 0x600000, CRC(609fac6b) SHA1(8010f4f5bd70308d027c1c5ae672117ab76f8d89) )
+
+ NEO_SFIX_128K( "242ae.s1", CRC(f1fee5c0) SHA1(e0d7b6c3c4a1c24003f25de6a5238e0a8ad32269) )
+
+ NEO_BIOS_AUDIO_256K( "242ae.m1", CRC(9ade0528) SHA1(67d0c3b146d369416b84c081544fe51fc6c2a140) )
+
+ ROM_REGION( 0x1400000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+ ROM_LOAD( "242ae.v5", 0x1000000, 0x400000, CRC(afdd9660) SHA1(0d67fb61111256c0d74d4f2b473ab5a42d1909b9) )
+
+ ROM_REGION( 0x6000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242ae.c1", 0x0000000, 0x800000, CRC(0319cfc9) SHA1(f275015d6bddf392936b35cd7399f929a6d63d29) )
+ ROM_LOAD16_BYTE( "242ae.c2", 0x0000001, 0x800000, CRC(553f6714) SHA1(9c14963ce9ac0cfd125defe2fe80206deb1bc896) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242ae.c5", 0x2000000, 0x800000, CRC(71641718) SHA1(b88a00aca2fc34230d2d2da0b235195a5eb1ecf0) )
+ ROM_LOAD16_BYTE( "242ae.c6", 0x2000001, 0x800000, CRC(982ba2b3) SHA1(232ce3be7beaad13b35865da770157ef4b29a7a9) )
+ ROM_LOAD16_BYTE( "242ae.c7", 0x3000000, 0x800000, CRC(8d495552) SHA1(20ff76b681b2e544c5a57060bb98ab6bb91bea3c) )
+ ROM_LOAD16_BYTE( "242ae.c8", 0x3000001, 0x800000, CRC(8bfc3417) SHA1(38bb85563d0a7f008a64cf76d71d82b935cd98e5) )
+ ROM_LOAD16_BYTE( "242ae.c9", 0x4000000, 0x800000, CRC(128256d1) SHA1(948af62545756165890e950fcd67bbd6304b3366) )
+ ROM_LOAD16_BYTE( "242ae.c10", 0x4000001, 0x800000, CRC(4bd8412d) SHA1(72e9cc6e3df8000d0a7fc7a89257dd0ce56fc909) )
+ ROM_LOAD16_BYTE( "242ae.c11", 0x5000000, 0x800000, CRC(e893277f) SHA1(a87db547821c63d162aac3ad178c8f794ef6a060) )
+ ROM_LOAD16_BYTE( "242ae.c12", 0x5000001, 0x800000, CRC(f165589e) SHA1(6bdcb1dd9ce507fcae40d0aba42a2c1300987479) )
+ROM_END
+
+ROM_START( kof98ae0 ) // Anniversary Edition
+ ROM_REGION( 0x700000, "maincpu", 0 )
+ // These are corrupt during attract mode fight (where cars are driving past), do not use
+ ROM_LOAD16_WORD_SWAP( "242ae0.p1", 0x000000, 0x100000, CRC(23a80b3e) SHA1(b1afaf382ffd5a1d72ae5ca18c11a751a11d7654) )
+ ROM_LOAD16_WORD_SWAP( "242ae.p2", 0x100000, 0x600000, CRC(609fac6b) SHA1(8010f4f5bd70308d027c1c5ae672117ab76f8d89) )
+
+ NEO_SFIX_128K( "242ae.s1", CRC(f1fee5c0) SHA1(e0d7b6c3c4a1c24003f25de6a5238e0a8ad32269) )
+
+ NEO_BIOS_AUDIO_256K( "242ae.m1", CRC(9ade0528) SHA1(67d0c3b146d369416b84c081544fe51fc6c2a140) )
+
+ ROM_REGION( 0x1400000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+ ROM_LOAD( "242ae.v5", 0x1000000, 0x400000, CRC(afdd9660) SHA1(0d67fb61111256c0d74d4f2b473ab5a42d1909b9) )
+
+ ROM_REGION( 0x6000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242ae.c1", 0x0000000, 0x800000, CRC(0319cfc9) SHA1(f275015d6bddf392936b35cd7399f929a6d63d29) )
+ ROM_LOAD16_BYTE( "242ae.c2", 0x0000001, 0x800000, CRC(553f6714) SHA1(9c14963ce9ac0cfd125defe2fe80206deb1bc896) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242ae.c5", 0x2000000, 0x800000, CRC(71641718) SHA1(b88a00aca2fc34230d2d2da0b235195a5eb1ecf0) )
+ ROM_LOAD16_BYTE( "242ae.c6", 0x2000001, 0x800000, CRC(982ba2b3) SHA1(232ce3be7beaad13b35865da770157ef4b29a7a9) )
+ ROM_LOAD16_BYTE( "242ae.c7", 0x3000000, 0x800000, CRC(8d495552) SHA1(20ff76b681b2e544c5a57060bb98ab6bb91bea3c) )
+ ROM_LOAD16_BYTE( "242ae.c8", 0x3000001, 0x800000, CRC(8bfc3417) SHA1(38bb85563d0a7f008a64cf76d71d82b935cd98e5) )
+ ROM_LOAD16_BYTE( "242ae.c9", 0x4000000, 0x800000, CRC(128256d1) SHA1(948af62545756165890e950fcd67bbd6304b3366) )
+ ROM_LOAD16_BYTE( "242ae.c10", 0x4000001, 0x800000, CRC(4bd8412d) SHA1(72e9cc6e3df8000d0a7fc7a89257dd0ce56fc909) )
+ ROM_LOAD16_BYTE( "242ae.c11", 0x5000000, 0x800000, CRC(e893277f) SHA1(a87db547821c63d162aac3ad178c8f794ef6a060) )
+ ROM_LOAD16_BYTE( "242ae.c12", 0x5000001, 0x800000, CRC(f165589e) SHA1(6bdcb1dd9ce507fcae40d0aba42a2c1300987479) )
+ROM_END
+
+ROM_START( kof98ae1 ) // Anniversary Edition
+ ROM_REGION( 0x700000, "maincpu", 0 )
+ // These are corrupt during attract mode fight (where cars are driving past), do not use
+ ROM_LOAD16_WORD_SWAP( "242ae1.p1", 0x000000, 0x100000, CRC(c9188c66) SHA1(9b248df5438cd555314ec71e52e7da6cfb192219) )
+ ROM_LOAD16_WORD_SWAP( "242ae.p2", 0x100000, 0x600000, CRC(609fac6b) SHA1(8010f4f5bd70308d027c1c5ae672117ab76f8d89) )
+
+ NEO_SFIX_128K( "242ae.s1", CRC(f1fee5c0) SHA1(e0d7b6c3c4a1c24003f25de6a5238e0a8ad32269) )
+
+ NEO_BIOS_AUDIO_256K( "242ae.m1", CRC(9ade0528) SHA1(67d0c3b146d369416b84c081544fe51fc6c2a140) )
+
+ ROM_REGION( 0x1400000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+ ROM_LOAD( "242ae.v5", 0x1000000, 0x400000, CRC(afdd9660) SHA1(0d67fb61111256c0d74d4f2b473ab5a42d1909b9) )
+
+ ROM_REGION( 0x6000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242ae.c1", 0x0000000, 0x800000, CRC(0319cfc9) SHA1(f275015d6bddf392936b35cd7399f929a6d63d29) )
+ ROM_LOAD16_BYTE( "242ae.c2", 0x0000001, 0x800000, CRC(553f6714) SHA1(9c14963ce9ac0cfd125defe2fe80206deb1bc896) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242ae.c5", 0x2000000, 0x800000, CRC(71641718) SHA1(b88a00aca2fc34230d2d2da0b235195a5eb1ecf0) )
+ ROM_LOAD16_BYTE( "242ae.c6", 0x2000001, 0x800000, CRC(982ba2b3) SHA1(232ce3be7beaad13b35865da770157ef4b29a7a9) )
+ ROM_LOAD16_BYTE( "242ae.c7", 0x3000000, 0x800000, CRC(8d495552) SHA1(20ff76b681b2e544c5a57060bb98ab6bb91bea3c) )
+ ROM_LOAD16_BYTE( "242ae.c8", 0x3000001, 0x800000, CRC(8bfc3417) SHA1(38bb85563d0a7f008a64cf76d71d82b935cd98e5) )
+ ROM_LOAD16_BYTE( "242ae.c9", 0x4000000, 0x800000, CRC(128256d1) SHA1(948af62545756165890e950fcd67bbd6304b3366) )
+ ROM_LOAD16_BYTE( "242ae.c10", 0x4000001, 0x800000, CRC(4bd8412d) SHA1(72e9cc6e3df8000d0a7fc7a89257dd0ce56fc909) )
+ ROM_LOAD16_BYTE( "242ae.c11", 0x5000000, 0x800000, CRC(e893277f) SHA1(a87db547821c63d162aac3ad178c8f794ef6a060) )
+ ROM_LOAD16_BYTE( "242ae.c12", 0x5000001, 0x800000, CRC(f165589e) SHA1(6bdcb1dd9ce507fcae40d0aba42a2c1300987479) )
+ROM_END
+
+ROM_START( kof98ae2 ) // Anniversary Edition
+ ROM_REGION( 0x700000, "maincpu", 0 )
+ // These are corrupt during attract mode fight (where cars are driving past), do not use
+ ROM_LOAD16_WORD_SWAP( "242ae2.p1", 0x000000, 0x100000, CRC(74e20ae9) SHA1(84d17fb0ee462fe491e3220e935cb588f8121611) )
+ ROM_LOAD16_WORD_SWAP( "242ae.p2", 0x100000, 0x600000, CRC(609fac6b) SHA1(8010f4f5bd70308d027c1c5ae672117ab76f8d89) )
+
+ NEO_SFIX_128K( "242ae.s1", CRC(f1fee5c0) SHA1(e0d7b6c3c4a1c24003f25de6a5238e0a8ad32269) )
+
+ NEO_BIOS_AUDIO_256K( "242ae.m1", CRC(9ade0528) SHA1(67d0c3b146d369416b84c081544fe51fc6c2a140) )
+
+ ROM_REGION( 0x1400000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+ ROM_LOAD( "242ae.v5", 0x1000000, 0x400000, CRC(afdd9660) SHA1(0d67fb61111256c0d74d4f2b473ab5a42d1909b9) )
+
+ ROM_REGION( 0x6000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242ae.c1", 0x0000000, 0x800000, CRC(0319cfc9) SHA1(f275015d6bddf392936b35cd7399f929a6d63d29) )
+ ROM_LOAD16_BYTE( "242ae.c2", 0x0000001, 0x800000, CRC(553f6714) SHA1(9c14963ce9ac0cfd125defe2fe80206deb1bc896) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242ae.c5", 0x2000000, 0x800000, CRC(71641718) SHA1(b88a00aca2fc34230d2d2da0b235195a5eb1ecf0) )
+ ROM_LOAD16_BYTE( "242ae.c6", 0x2000001, 0x800000, CRC(982ba2b3) SHA1(232ce3be7beaad13b35865da770157ef4b29a7a9) )
+ ROM_LOAD16_BYTE( "242ae.c7", 0x3000000, 0x800000, CRC(8d495552) SHA1(20ff76b681b2e544c5a57060bb98ab6bb91bea3c) )
+ ROM_LOAD16_BYTE( "242ae.c8", 0x3000001, 0x800000, CRC(8bfc3417) SHA1(38bb85563d0a7f008a64cf76d71d82b935cd98e5) )
+ ROM_LOAD16_BYTE( "242ae.c9", 0x4000000, 0x800000, CRC(128256d1) SHA1(948af62545756165890e950fcd67bbd6304b3366) )
+ ROM_LOAD16_BYTE( "242ae.c10", 0x4000001, 0x800000, CRC(4bd8412d) SHA1(72e9cc6e3df8000d0a7fc7a89257dd0ce56fc909) )
+ ROM_LOAD16_BYTE( "242ae.c11", 0x5000000, 0x800000, CRC(e893277f) SHA1(a87db547821c63d162aac3ad178c8f794ef6a060) )
+ ROM_LOAD16_BYTE( "242ae.c12", 0x5000001, 0x800000, CRC(f165589e) SHA1(6bdcb1dd9ce507fcae40d0aba42a2c1300987479) )
+ROM_END
+
+ROM_START( kof98ae3 ) // All confirmed: kof98ae2 with new p roms
+ ROM_REGION( 0x700000, "maincpu", 0 )
+ // These are corrupt during attract mode fight (where cars are driving past), do not use
+ ROM_LOAD16_WORD_SWAP( "242ae3.p1", 0x000000, 0x100000, CRC(ad987ba2) SHA1(aa7803e3193f551171f908650cab921b9daf7ab9) )
+ ROM_LOAD16_WORD_SWAP( "242ae3.p2", 0x100000, 0x600000, CRC(0409fb1e) SHA1(8e73ea6a68503b6bd434f9b044bd454fb7e371df) )
+
+ NEO_SFIX_128K( "242ae.s1", CRC(f1fee5c0) SHA1(e0d7b6c3c4a1c24003f25de6a5238e0a8ad32269) )
+
+ NEO_BIOS_AUDIO_256K( "242ae.m1", CRC(9ade0528) SHA1(67d0c3b146d369416b84c081544fe51fc6c2a140) )
+
+ ROM_REGION( 0x1400000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+ ROM_LOAD( "242ae.v5", 0x1000000, 0x400000, CRC(afdd9660) SHA1(0d67fb61111256c0d74d4f2b473ab5a42d1909b9) )
+
+ ROM_REGION( 0x6000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242ae.c1", 0x0000000, 0x800000, CRC(0319cfc9) SHA1(f275015d6bddf392936b35cd7399f929a6d63d29) )
+ ROM_LOAD16_BYTE( "242ae.c2", 0x0000001, 0x800000, CRC(553f6714) SHA1(9c14963ce9ac0cfd125defe2fe80206deb1bc896) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242ae.c5", 0x2000000, 0x800000, CRC(71641718) SHA1(b88a00aca2fc34230d2d2da0b235195a5eb1ecf0) )
+ ROM_LOAD16_BYTE( "242ae.c6", 0x2000001, 0x800000, CRC(982ba2b3) SHA1(232ce3be7beaad13b35865da770157ef4b29a7a9) )
+ ROM_LOAD16_BYTE( "242ae.c7", 0x3000000, 0x800000, CRC(8d495552) SHA1(20ff76b681b2e544c5a57060bb98ab6bb91bea3c) )
+ ROM_LOAD16_BYTE( "242ae.c8", 0x3000001, 0x800000, CRC(8bfc3417) SHA1(38bb85563d0a7f008a64cf76d71d82b935cd98e5) )
+ ROM_LOAD16_BYTE( "242ae.c9", 0x4000000, 0x800000, CRC(128256d1) SHA1(948af62545756165890e950fcd67bbd6304b3366) )
+ ROM_LOAD16_BYTE( "242ae.c10", 0x4000001, 0x800000, CRC(4bd8412d) SHA1(72e9cc6e3df8000d0a7fc7a89257dd0ce56fc909) )
+ ROM_LOAD16_BYTE( "242ae.c11", 0x5000000, 0x800000, CRC(e893277f) SHA1(a87db547821c63d162aac3ad178c8f794ef6a060) )
+ ROM_LOAD16_BYTE( "242ae.c12", 0x5000001, 0x800000, CRC(f165589e) SHA1(6bdcb1dd9ce507fcae40d0aba42a2c1300987479) )
+ROM_END
+
+ROM_START( kof98ae20160308 ) // Anniversary Edition, all confirmed.
+ ROM_REGION( 0x700000, "maincpu", 0 )
+ // These are corrupt during attract mode fight (where cars are driving past), do not use
+ ROM_LOAD16_WORD_SWAP( "242aea.p1", 0x000000, 0x100000, CRC(c7fddbd8) SHA1(b9ded8cd3414a5f11e41436ee3aa79515e33a8d9) )
+ ROM_LOAD16_WORD_SWAP( "242aea.p2", 0x100000, 0x600000, CRC(d84dbe5b) SHA1(76f08aa5c15b654b5d080c5537cb91be1f16555c) )
+
+ NEO_SFIX( 0x40000, "242aea.s1", CRC(345c20b0) SHA1(ff844e47667297f09f8b49ae19987542e253095e) )
+
+ NEO_BIOS_AUDIO_256K( "242ae.m1", CRC(9ade0528) SHA1(67d0c3b146d369416b84c081544fe51fc6c2a140) )
+
+ ROM_REGION( 0x1400000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+ ROM_LOAD( "242ae.v5", 0x1000000, 0x400000, CRC(afdd9660) SHA1(0d67fb61111256c0d74d4f2b473ab5a42d1909b9) )
+
+ ROM_REGION( 0x6000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242aea.c1", 0x0000000, 0x800000, CRC(086ec060) SHA1(dace47c251e5c9bea771e221bf550e1b4af5212d) )
+ ROM_LOAD16_BYTE( "242aea.c2", 0x0000001, 0x800000, CRC(16b9a9a2) SHA1(c8b757e6a84bae33caab07de27ca6c3d84d1893a) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242ae.c5", 0x2000000, 0x800000, CRC(71641718) SHA1(b88a00aca2fc34230d2d2da0b235195a5eb1ecf0) )
+ ROM_LOAD16_BYTE( "242ae.c6", 0x2000001, 0x800000, CRC(982ba2b3) SHA1(232ce3be7beaad13b35865da770157ef4b29a7a9) )
+ ROM_LOAD16_BYTE( "242ae.c7", 0x3000000, 0x800000, CRC(8d495552) SHA1(20ff76b681b2e544c5a57060bb98ab6bb91bea3c) )
+ ROM_LOAD16_BYTE( "242ae.c8", 0x3000001, 0x800000, CRC(8bfc3417) SHA1(38bb85563d0a7f008a64cf76d71d82b935cd98e5) )
+ ROM_LOAD16_BYTE( "242ae.c9", 0x4000000, 0x800000, CRC(128256d1) SHA1(948af62545756165890e950fcd67bbd6304b3366) )
+ ROM_LOAD16_BYTE( "242ae.c10", 0x4000001, 0x800000, CRC(4bd8412d) SHA1(72e9cc6e3df8000d0a7fc7a89257dd0ce56fc909) )
+ ROM_LOAD16_BYTE( "242aea.c11", 0x5000000, 0x800000, CRC(56d361cb) SHA1(594826cf58b7cd3b0bee05cdab1265d03c057b58) )
+ ROM_LOAD16_BYTE( "242aea.c12", 0x5000001, 0x800000, CRC(f8cb115b) SHA1(ba8a152a59acfcf72c73c6e29cd6e133630e100d) )
+ROM_END
+
+ROM_START( kof98ae20160827 ) // all confirmed. Same as 20160308 except p roms.
+ ROM_REGION( 0x700000, "maincpu", 0 )
+ // These are corrupt during attract mode fight (where cars are driving past), do not use
+ ROM_LOAD16_WORD_SWAP( "242aeb.p1", 0x000000, 0x100000, CRC(d69ecaa9) SHA1(924741bfab19a43d14704aeb305970de616788e4) )
+ ROM_LOAD16_WORD_SWAP( "242aeb.p2", 0x100000, 0x600000, CRC(ac1e9e79) SHA1(95caf44bb771a7ce5663f60127cf5ae798f7dd4c) )
+
+ NEO_SFIX( 0x40000, "242aea.s1", CRC(345c20b0) SHA1(ff844e47667297f09f8b49ae19987542e253095e) )
+
+ NEO_BIOS_AUDIO_256K( "242ae.m1", CRC(9ade0528) SHA1(67d0c3b146d369416b84c081544fe51fc6c2a140) )
+
+ ROM_REGION( 0x1400000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+ ROM_LOAD( "242ae.v5", 0x1000000, 0x400000, CRC(afdd9660) SHA1(0d67fb61111256c0d74d4f2b473ab5a42d1909b9) )
+
+ ROM_REGION( 0x6000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242aea.c1", 0x0000000, 0x800000, CRC(086ec060) SHA1(dace47c251e5c9bea771e221bf550e1b4af5212d) )
+ ROM_LOAD16_BYTE( "242aea.c2", 0x0000001, 0x800000, CRC(16b9a9a2) SHA1(c8b757e6a84bae33caab07de27ca6c3d84d1893a) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242ae.c5", 0x2000000, 0x800000, CRC(71641718) SHA1(b88a00aca2fc34230d2d2da0b235195a5eb1ecf0) )
+ ROM_LOAD16_BYTE( "242ae.c6", 0x2000001, 0x800000, CRC(982ba2b3) SHA1(232ce3be7beaad13b35865da770157ef4b29a7a9) )
+ ROM_LOAD16_BYTE( "242ae.c7", 0x3000000, 0x800000, CRC(8d495552) SHA1(20ff76b681b2e544c5a57060bb98ab6bb91bea3c) )
+ ROM_LOAD16_BYTE( "242ae.c8", 0x3000001, 0x800000, CRC(8bfc3417) SHA1(38bb85563d0a7f008a64cf76d71d82b935cd98e5) )
+ ROM_LOAD16_BYTE( "242ae.c9", 0x4000000, 0x800000, CRC(128256d1) SHA1(948af62545756165890e950fcd67bbd6304b3366) )
+ ROM_LOAD16_BYTE( "242ae.c10", 0x4000001, 0x800000, CRC(4bd8412d) SHA1(72e9cc6e3df8000d0a7fc7a89257dd0ce56fc909) )
+ ROM_LOAD16_BYTE( "242aea.c11", 0x5000000, 0x800000, CRC(56d361cb) SHA1(594826cf58b7cd3b0bee05cdab1265d03c057b58) )
+ ROM_LOAD16_BYTE( "242aea.c12", 0x5000001, 0x800000, CRC(f8cb115b) SHA1(ba8a152a59acfcf72c73c6e29cd6e133630e100d) )
+ROM_END
+
+ROM_START( kof98bge ) // multijet
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242bge.p1", 0x000000, 0x200000, CRC(3d0e3c74) SHA1(4b7bf2deb96592990cb79ed4dc70a1d2dc2d787e) )
+ ROM_LOAD16_WORD_SWAP( "242gold.p2", 0x200000, 0x400000, CRC(c0f6802d) SHA1(f86c141efe454e949cb28585f1e88088b3894b16) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98bh ) // Boss Hack 2006
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242bh.p1", 0x000000, 0x100000, CRC(5b5c822b) SHA1(0c4652630ff2122167f2defe4edff2a4e97f0ce0) )
+ ROM_LOAD16_WORD_SWAP( "242bh.p2", 0x100000, 0x400000, CRC(289b09d7) SHA1(25f14caf6b57c516c484e50ddee6867de4513406) )
+
+ NEO_SFIX_128K( "242cos.s1", CRC(554c4b66) SHA1(0fa53c7433ed4b66515890ad0526f292ae88c7ad) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cd.c1", 0x0000000, 0x800000, CRC(05edf0ff) SHA1(99afddc2d59ba274f2d9d9f5ef86c925518b8278) )
+ ROM_LOAD16_BYTE( "242cd.c2", 0x0000001, 0x800000, CRC(3723515e) SHA1(a2f0ae12cdd10e74a19188d774e833eb8501f20c) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98bvi ) // multijet
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242bvi.p1", 0x000000, 0x200000, CRC(822038a7) SHA1(193382395b60b310851fd33761951843cbcd373e) )
+ ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x200000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c2006 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242c2006.p1", 0x000000, 0x100000, CRC(68dbd3ca) SHA1(839d8ed003351809b1d8b8a4529b29a57af23333) )
+ ROM_LOAD16_WORD_SWAP( "242c2006.p2", 0x100000, 0x400000, CRC(4fc4544c) SHA1(b8912e61b26813237c46ca6511a6c88f5c5e511e) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242c2006.c1", 0x0000000, 0x800000, CRC(efc547b0) SHA1(badb1147729e187cc395ade357b49444e27810e5) )
+ ROM_LOAD16_BYTE( "242c2006.c2", 0x0000001, 0x800000, CRC(395ed6af) SHA1(543286e4f346f38c4866ab9a84080b6839d53412) )
+ ROM_LOAD16_BYTE( "242c2006.c3", 0x1000000, 0x800000, CRC(882e5246) SHA1(6cf81cd540a1511e085f2534511f8fa93f44d51f) )
+ ROM_LOAD16_BYTE( "242c2006.c4", 0x1000001, 0x800000, CRC(4f3f2123) SHA1(5cc61e82b0c7ee3d162c89262379f36f21ee5311) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20060214 ) // multijet kof98co2
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cfb14.p1", 0x000000, 0x100000, CRC(3c803e5d) SHA1(9da1b6a8c7c85d0c4cae780af157c85c587d99a9) )
+ ROM_LOAD16_WORD_SWAP( "242cfb14.p2", 0x100000, 0x400000, CRC(d3a9d5a6) SHA1(af02622494db4ebb7e1916ba0016412dafab1c23) )
+
+ NEO_SFIX_128K( "242cfb14.s1", CRC(e19b7e13) SHA1(4c8e85ffb8e2f9dcc10e946a53ff84494950aed7) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20070720 ) // kof98co
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cgg20.p1", 0x000000, 0x100000, CRC(549b46bf) SHA1(bbed5b2a131ba4ed9161aa5c246cf7d324aacf3d) )
+ ROM_LOAD16_WORD_SWAP( "242cgg20.p2", 0x100000, 0x400000, CRC(d256446d) SHA1(821365a7e7fe65488171633b8218207b70dcd0f6) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242co.c1", 0x0000000, 0x800000, CRC(2a4eea4f) SHA1(dd29f64715392ed44507849c25dbcf7a30547899) )
+ ROM_LOAD16_BYTE( "242co.c2", 0x0000001, 0x800000, CRC(76368d7d) SHA1(aa7d7313985bcc275520aedfa451f99545dd1927) )
+ ROM_LOAD16_BYTE( "242co.c3", 0x1000000, 0x800000, CRC(93f80804) SHA1(b320b6b5222801ffbc55b8b0862fb5386520817f) )
+ ROM_LOAD16_BYTE( "242co.c4", 0x1000001, 0x800000, CRC(d4f9a578) SHA1(86f2d4f2fb60259d84a31af40cb0074930a37476) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20070923 ) // no idea what other roms go with this, using ones from kof98co
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cgi23.p1", 0x000000, 0x100000, CRC(07c7e389) SHA1(e0df96dd1dc3459d3017a6b3b53c25d89431abc0) )
+ ROM_LOAD16_WORD_SWAP( "242cgi23.p2", 0x100000, 0x400000, CRC(45c64fc4) SHA1(922fee0ab1377123acde003cb96b5790c90ca84c) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242co.c1", 0x0000000, 0x800000, CRC(2a4eea4f) SHA1(dd29f64715392ed44507849c25dbcf7a30547899) )
+ ROM_LOAD16_BYTE( "242co.c2", 0x0000001, 0x800000, CRC(76368d7d) SHA1(aa7d7313985bcc275520aedfa451f99545dd1927) )
+ ROM_LOAD16_BYTE( "242co.c3", 0x1000000, 0x800000, CRC(93f80804) SHA1(b320b6b5222801ffbc55b8b0862fb5386520817f) )
+ ROM_LOAD16_BYTE( "242co.c4", 0x1000001, 0x800000, CRC(d4f9a578) SHA1(86f2d4f2fb60259d84a31af40cb0074930a37476) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20080330 ) // multijet kof98co3
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242chc30.p1", 0x000000, 0x100000, CRC(a606b28c) SHA1(a9c93234742107a0274ae48b3b7b63fc985e47b8) )
+ ROM_LOAD16_WORD_SWAP( "242chc30.p2", 0x100000, 0x400000, CRC(baac7267) SHA1(8124d82169830c4493655a0a440e7430d67f47e8) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242co.c1", 0x0000000, 0x800000, CRC(2a4eea4f) SHA1(dd29f64715392ed44507849c25dbcf7a30547899) )
+ ROM_LOAD16_BYTE( "242co.c2", 0x0000001, 0x800000, CRC(76368d7d) SHA1(aa7d7313985bcc275520aedfa451f99545dd1927) )
+ ROM_LOAD16_BYTE( "242co.c3", 0x1000000, 0x800000, CRC(93f80804) SHA1(b320b6b5222801ffbc55b8b0862fb5386520817f) )
+ ROM_LOAD16_BYTE( "242co.c4", 0x1000001, 0x800000, CRC(d4f9a578) SHA1(86f2d4f2fb60259d84a31af40cb0074930a37476) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20080524 ) // no idea what other roms go with this, using ones from kof98co
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242che24.p1", 0x000000, 0x100000, CRC(f2dc0ec8) SHA1(90901c20f56d08ef05da66ec7cba327820909f9a) )
+ ROM_LOAD16_WORD_SWAP( "242che24.p2", 0x100000, 0x400000, CRC(e2149cc5) SHA1(7d66bdf54b4bbf7f0aa163287a526cf48502bc3b) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242co.c1", 0x0000000, 0x800000, CRC(2a4eea4f) SHA1(dd29f64715392ed44507849c25dbcf7a30547899) )
+ ROM_LOAD16_BYTE( "242co.c2", 0x0000001, 0x800000, CRC(76368d7d) SHA1(aa7d7313985bcc275520aedfa451f99545dd1927) )
+ ROM_LOAD16_BYTE( "242co.c3", 0x1000000, 0x800000, CRC(93f80804) SHA1(b320b6b5222801ffbc55b8b0862fb5386520817f) )
+ ROM_LOAD16_BYTE( "242co.c4", 0x1000001, 0x800000, CRC(d4f9a578) SHA1(86f2d4f2fb60259d84a31af40cb0074930a37476) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20080616 ) // no idea what other roms go with this, using ones from kof98co
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242chf16.p1", 0x000000, 0x100000, CRC(de3c91fe) SHA1(706a75fe92780ea68707b37e42b1f70d507bb1c7) )
+ ROM_LOAD16_WORD_SWAP( "242chf16.p2", 0x100000, 0x400000, CRC(52314cc5) SHA1(83416affb1a789647647992ea8492a55c0a62b8d) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242co.c1", 0x0000000, 0x800000, CRC(2a4eea4f) SHA1(dd29f64715392ed44507849c25dbcf7a30547899) )
+ ROM_LOAD16_BYTE( "242co.c2", 0x0000001, 0x800000, CRC(76368d7d) SHA1(aa7d7313985bcc275520aedfa451f99545dd1927) )
+ ROM_LOAD16_BYTE( "242co.c3", 0x1000000, 0x800000, CRC(93f80804) SHA1(b320b6b5222801ffbc55b8b0862fb5386520817f) )
+ ROM_LOAD16_BYTE( "242co.c4", 0x1000001, 0x800000, CRC(d4f9a578) SHA1(86f2d4f2fb60259d84a31af40cb0074930a37476) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20080712 ) // no idea what other roms go with this, using ones from kof98co
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242chg12.p1", 0x000000, 0x100000, CRC(c0b4095a) SHA1(b8c027ccf3bdda62e8bb21766ac1ad716b7cdb9a) )
+ ROM_LOAD16_WORD_SWAP( "242chg12.p2", 0x100000, 0x400000, CRC(7e8d3bd3) SHA1(811c563146c1827a6322a61090570c956cdb4df0) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242co.c1", 0x0000000, 0x800000, CRC(2a4eea4f) SHA1(dd29f64715392ed44507849c25dbcf7a30547899) )
+ ROM_LOAD16_BYTE( "242co.c2", 0x0000001, 0x800000, CRC(76368d7d) SHA1(aa7d7313985bcc275520aedfa451f99545dd1927) )
+ ROM_LOAD16_BYTE( "242co.c3", 0x1000000, 0x800000, CRC(93f80804) SHA1(b320b6b5222801ffbc55b8b0862fb5386520817f) )
+ ROM_LOAD16_BYTE( "242co.c4", 0x1000001, 0x800000, CRC(d4f9a578) SHA1(86f2d4f2fb60259d84a31af40cb0074930a37476) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98cta ) // Combo 10th Anniversary - this is kof98c20080801
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cta.p1", 0x000000, 0x100000, CRC(d5646ed9) SHA1(9c0f7eb5b27f0787d6390dcde9c1566a83232890) )
+ ROM_LOAD16_WORD_SWAP( "242cta.p2", 0x100000, 0x400000, CRC(2b78c216) SHA1(4e47d9ef6dd8b82c652688ca7fb3d51c869a55e1) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242co.c1", 0x0000000, 0x800000, CRC(2a4eea4f) SHA1(dd29f64715392ed44507849c25dbcf7a30547899) )
+ ROM_LOAD16_BYTE( "242co.c2", 0x0000001, 0x800000, CRC(76368d7d) SHA1(aa7d7313985bcc275520aedfa451f99545dd1927) )
+ ROM_LOAD16_BYTE( "242co.c3", 0x1000000, 0x800000, CRC(93f80804) SHA1(b320b6b5222801ffbc55b8b0862fb5386520817f) )
+ ROM_LOAD16_BYTE( "242co.c4", 0x1000001, 0x800000, CRC(d4f9a578) SHA1(86f2d4f2fb60259d84a31af40cb0074930a37476) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20090620 ) // no idea what other roms go with this, using ones from kof98co
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cif20.p1", 0x000000, 0x100000, CRC(fc3a3397) SHA1(538e04ce5bf495374e9bf3af5bd18efb3d7dabe7) )
+ ROM_LOAD16_WORD_SWAP( "242cif20.p2", 0x100000, 0x400000, CRC(c2e6e6c7) SHA1(f2217bda316986a3c5730dd7927b472f20094952) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242co.c1", 0x0000000, 0x800000, CRC(2a4eea4f) SHA1(dd29f64715392ed44507849c25dbcf7a30547899) )
+ ROM_LOAD16_BYTE( "242co.c2", 0x0000001, 0x800000, CRC(76368d7d) SHA1(aa7d7313985bcc275520aedfa451f99545dd1927) )
+ ROM_LOAD16_BYTE( "242co.c3", 0x1000000, 0x800000, CRC(93f80804) SHA1(b320b6b5222801ffbc55b8b0862fb5386520817f) )
+ ROM_LOAD16_BYTE( "242co.c4", 0x1000001, 0x800000, CRC(d4f9a578) SHA1(86f2d4f2fb60259d84a31af40cb0074930a37476) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20090923 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cii23.p1", 0x000000, 0x100000, CRC(35cbbaa7) SHA1(e9d773b24d999ad55c3813e627836e4d91f239f6) )
+ ROM_LOAD16_WORD_SWAP( "242cii23.p2", 0x100000, 0x400000, CRC(658e3940) SHA1(b71f08491db50aeb8e0b20541808f3c31e9c598c) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242co.c1", 0x0000000, 0x800000, CRC(2a4eea4f) SHA1(dd29f64715392ed44507849c25dbcf7a30547899) )
+ ROM_LOAD16_BYTE( "242co.c2", 0x0000001, 0x800000, CRC(76368d7d) SHA1(aa7d7313985bcc275520aedfa451f99545dd1927) )
+ ROM_LOAD16_BYTE( "242co.c3", 0x1000000, 0x800000, CRC(93f80804) SHA1(b320b6b5222801ffbc55b8b0862fb5386520817f) )
+ ROM_LOAD16_BYTE( "242co.c4", 0x1000001, 0x800000, CRC(d4f9a578) SHA1(86f2d4f2fb60259d84a31af40cb0074930a37476) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20100214 ) // no idea what other roms go with this, using ones from kof98co
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cjb14.p1", 0x000000, 0x100000, CRC(eb02e1d2) SHA1(9217827f905580851343b78e26c1494e76584454) )
+ ROM_LOAD16_WORD_SWAP( "242cjb14.p2", 0x100000, 0x400000, CRC(9afe10b6) SHA1(1c5fb7e099c8790b44313a9b412a93bc80421791) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242co.c1", 0x0000000, 0x800000, CRC(2a4eea4f) SHA1(dd29f64715392ed44507849c25dbcf7a30547899) )
+ ROM_LOAD16_BYTE( "242co.c2", 0x0000001, 0x800000, CRC(76368d7d) SHA1(aa7d7313985bcc275520aedfa451f99545dd1927) )
+ ROM_LOAD16_BYTE( "242co.c3", 0x1000000, 0x800000, CRC(93f80804) SHA1(b320b6b5222801ffbc55b8b0862fb5386520817f) )
+ ROM_LOAD16_BYTE( "242co.c4", 0x1000001, 0x800000, CRC(d4f9a578) SHA1(86f2d4f2fb60259d84a31af40cb0074930a37476) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20100304 ) // multijet kof98co
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cjc04.p1", 0x000000, 0x100000, CRC(6ad285ae) SHA1(80caa8d0a169bbd0a4eb2b1441bd2033fae231fd) )
+ ROM_LOAD16_WORD_SWAP( "242cjc04.p2", 0x100000, 0x400000, CRC(2359f183) SHA1(da687d5723a7c39b2c60d01f316a1005196ec46d) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242co.c1", 0x0000000, 0x800000, CRC(2a4eea4f) SHA1(dd29f64715392ed44507849c25dbcf7a30547899) )
+ ROM_LOAD16_BYTE( "242co.c2", 0x0000001, 0x800000, CRC(76368d7d) SHA1(aa7d7313985bcc275520aedfa451f99545dd1927) )
+ ROM_LOAD16_BYTE( "242co.c3", 0x1000000, 0x800000, CRC(93f80804) SHA1(b320b6b5222801ffbc55b8b0862fb5386520817f) )
+ ROM_LOAD16_BYTE( "242co.c4", 0x1000001, 0x800000, CRC(d4f9a578) SHA1(86f2d4f2fb60259d84a31af40cb0074930a37476) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20110114 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cka14.p1", 0x000000, 0x100000, CRC(8b520854) SHA1(2e6d8677b343abb6d85b62a1996fc3cec2d86477) )
+ ROM_LOAD16_WORD_SWAP( "242cka14.p2", 0x100000, 0x400000, CRC(bbfa3154) SHA1(7dbe0d6eb3850c6f8c30a5e49e5bf914d0f23b7f) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) )
+ ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20110314 ) // all confirmed
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242ckc14.p1", 0x000000, 0x100000, CRC(e997a3e9) SHA1(c53d09931a1f2f97623cbfd390b703412dfde535) )
+ ROM_LOAD16_WORD_SWAP( "242ckc14.p2", 0x100000, 0x400000, CRC(3f2266bf) SHA1(f4fbdde4c2b9cd9f12b3f6942926993ca56fed3b) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) )
+ ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20120116 ) // no idea what other roms go with this, using ones from kof98co
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cla16.p1", 0x000000, 0x100000, CRC(99255778) SHA1(d6eb448f06cebabff3aea71cade6c7b742bad337) )
+ ROM_LOAD16_WORD_SWAP( "242cla16.p2", 0x100000, 0x400000, CRC(fc1582fb) SHA1(6be894251c7a91cf1821a48a5f2d9e1bea6251ec) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242co.c1", 0x0000000, 0x800000, CRC(2a4eea4f) SHA1(dd29f64715392ed44507849c25dbcf7a30547899) )
+ ROM_LOAD16_BYTE( "242co.c2", 0x0000001, 0x800000, CRC(76368d7d) SHA1(aa7d7313985bcc275520aedfa451f99545dd1927) )
+ ROM_LOAD16_BYTE( "242co.c3", 0x1000000, 0x800000, CRC(93f80804) SHA1(b320b6b5222801ffbc55b8b0862fb5386520817f) )
+ ROM_LOAD16_BYTE( "242co.c4", 0x1000001, 0x800000, CRC(d4f9a578) SHA1(86f2d4f2fb60259d84a31af40cb0074930a37476) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20120915 ) // no idea what other roms go with this, using ones from kof98co
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cli15.p1", 0x000000, 0x100000, CRC(9e86180d) SHA1(67772aa99452a8b8ace0a770c09d2ae503ac298f) )
+ ROM_LOAD16_WORD_SWAP( "242cli15.p2", 0x100000, 0x400000, CRC(e88dfce2) SHA1(e16e98eec8d27a1f125fd69b58108d7621bff968) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) )
+ ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20130213 ) // no idea what other roms go with this, using ones from kof98c20120915
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cmb13.p1", 0x000000, 0x100000, CRC(1192b05d) SHA1(a5bfb8f303d0c59897d18695344c6d643aca0992) )
+ ROM_LOAD16_WORD_SWAP( "242cmb13.p2", 0x100000, 0x400000, CRC(44d6f231) SHA1(f23aa553d2ce326fdd87c6a0de61c0f8a190a5d6) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) )
+ ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20130311 ) // no idea what other roms go with this, using ones from kof98c20120915
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cmc11.p1", 0x000000, 0x100000, CRC(a840d48e) SHA1(f95246ea20174bfb6ffa1421d5e3691d5a4d57ac) )
+ ROM_LOAD16_WORD_SWAP( "242cmc11.p2", 0x100000, 0x400000, CRC(a125307b) SHA1(fea9a7d945d51bdc137a7a5cc47009f77d1b2f11) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) )
+ ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20130509 ) // no idea what other roms go with this, using ones from kof98c20120915
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cme09.p1", 0x000000, 0x100000, CRC(04f0ee1b) SHA1(6b0c61bf769e3a1f8e16bf80f998a16231b1d37f) )
+ ROM_LOAD16_WORD_SWAP( "242cme09.p2", 0x100000, 0x400000, CRC(7a3d7339) SHA1(68e6d693e1010c75e235cb732c186edfcf5ee121) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) )
+ ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20130528 ) // no idea what other roms go with this, using ones from kof98c20120915
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cme28.p1", 0x000000, 0x100000, CRC(3a2c9ecf) SHA1(f18534a4332d6162d1d7c0797c2aabafe9b3ae8d) )
+ ROM_LOAD16_WORD_SWAP( "242cme28.p2", 0x100000, 0x400000, CRC(d1f608a3) SHA1(20f0ac8a696f47fc122a876b5892b7982f643101) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) )
+ ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20130617 ) // no idea what other roms go with this, using ones from kof98c20120915
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cmf17.p1", 0x000000, 0x100000, CRC(871c1400) SHA1(7c543dfe62151eea0479b0d6685ff99a79d7b99d) )
+ ROM_LOAD16_WORD_SWAP( "242cmf17.p2", 0x100000, 0x400000, CRC(5f6a6827) SHA1(df507f8367bb03bb404a7c978123fccf2cfee2bf) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) )
+ ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20130808 ) // no idea what other roms go with this, using ones from kof98c20120915
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cmh08.p1", 0x000000, 0x100000, CRC(5c45d223) SHA1(04617aaea513e5c7e8cf014e89945aa2eb5948e2) )
+ ROM_LOAD16_WORD_SWAP( "242cmh08.p2", 0x100000, 0x400000, CRC(ae323e72) SHA1(fe204f78faef8be01e8664a57f4cec380457cea6) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) )
+ ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20130820 ) // no idea what other roms go with this, using ones from kof98c20120915
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cmh20.p1", 0x000000, 0x100000, CRC(f17061ad) SHA1(2b99224bc32526e811fa46b934531ecc25bb5f48) )
+ ROM_LOAD16_WORD_SWAP( "242cmh20.p2", 0x100000, 0x400000, CRC(8b7afee8) SHA1(88080f59588b2e8360af126519e547bbf55f80fb) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) )
+ ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20131113 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cmk13.p1", 0x000000, 0x100000, CRC(6c60a3ef) SHA1(d9437ee77ad3ff38a56c2d90b8c0334fb3404342) )
+ ROM_LOAD16_WORD_SWAP( "242cmk13.p2", 0x100000, 0x400000, CRC(fe685f71) SHA1(aaf84b3f6c44662b8a6696cf1a48ead10eae7e30) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) )
+ ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20140101 ) // no idea what other roms go with this, using ones from kof98c20120915
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cna01.p1", 0x000000, 0x100000, CRC(fc6edddc) SHA1(06096bf35bd19aa816541a0db2e517ab9ea6f108) )
+ ROM_LOAD16_WORD_SWAP( "242cna01.p2", 0x100000, 0x400000, CRC(ae9cc41b) SHA1(2b3b433eca1da8836ccdae4648af9f742abb3c3a) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) )
+ ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20140110 ) // no idea what other roms go with this, using ones from kof98c20120915
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cna10.p1", 0x000000, 0x100000, CRC(f5173db2) SHA1(3ed5de29fe05bd42f1e61db99bb62a21dd18ee45) )
+ ROM_LOAD16_WORD_SWAP( "242cna10.p2", 0x100000, 0x400000, CRC(277c46ad) SHA1(3d718bb9b6a616c912d0b61bf04c25acf9edd19b) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) )
+ ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20140118 ) // no idea what other roms go with this, using ones from kof98c20120915
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cna18.p1", 0x000000, 0x100000, CRC(d0e11829) SHA1(a1ad8372e24315e4e5d7a2e2b730065d3e63419d) )
+ ROM_LOAD16_WORD_SWAP( "242cna18.p2", 0x100000, 0x400000, CRC(57710699) SHA1(c1dd6677b61b3bced57441160560ef52636e43a6) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) )
+ ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20140204 ) // no idea what other roms go with this, using ones from kof98c20120915
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cnb04.p1", 0x000000, 0x100000, CRC(281a0134) SHA1(23231f74c82a2c130e5323338f5b85e61e464f52) )
+ ROM_LOAD16_WORD_SWAP( "242cnb04.p2", 0x100000, 0x400000, CRC(5c0b42ed) SHA1(835c075fb30f96b69eec89980279a9fa516bf839) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) )
+ ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20140213 ) // no idea what other roms go with this, using ones from kof98c20120915
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cnb13.p1", 0x000000, 0x100000, CRC(338fe20c) SHA1(149dd81dc7dda509ace4fadf796908a9af0b2111) )
+ ROM_LOAD16_WORD_SWAP( "242cnb13.p2", 0x100000, 0x400000, CRC(138577d5) SHA1(97592df7350f9741b0b2b686a136f62cae650d5c) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) )
+ ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20140217 ) // no idea what other roms go with this, using ones from kof98c20120915
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cnb17.p1", 0x000000, 0x100000, CRC(52ef6564) SHA1(46a9ada52dd44db8697f118a1e7b43e11d9878c5) )
+ ROM_LOAD16_WORD_SWAP( "242cnb17.p2", 0x100000, 0x400000, CRC(a31b7b2a) SHA1(a5324f49f19850cd6bcc8d3e66edf0dda220bd41) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) )
+ ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20140228 ) // no idea what other roms go with this, using ones from kof98c20120915
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cnb28.p1", 0x000000, 0x100000, CRC(97e9c8cc) SHA1(b38ef0f8e55f24e96c09cf5f28954661cd8ea8b8) )
+ ROM_LOAD16_WORD_SWAP( "242cnb28.p2", 0x100000, 0x400000, CRC(7b99f052) SHA1(ea204a7a14b6620e64a5ac0b34d048ccd0c6fc0e) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) )
+ ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20140302 ) // no idea what other roms go with this, using ones from kof98c20120915
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cnc02.p1", 0x000000, 0x100000, CRC(c478dd93) SHA1(759311b986b9606acc9e735f83cc33e6c4cfe151) )
+ ROM_LOAD16_WORD_SWAP( "242cnc02.p2", 0x100000, 0x400000, CRC(5b81a4f0) SHA1(f0dd68bb17fa76671a08ee77a22bda773c93e810) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) )
+ ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20140310 ) // no idea what other roms go with this, using ones from kof98c20120915
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cnc10.p1", 0x000000, 0x100000, CRC(25d26cd5) SHA1(65e301dbc2d57ba657eae49edeb53ef07a21b85e) )
+ ROM_LOAD16_WORD_SWAP( "242cnc10.p2", 0x100000, 0x400000, CRC(f109629f) SHA1(827f3f6a0f66a0741c72ebc85ea5b203acb56ae0) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) )
+ ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20140317 ) // no idea what other roms go with this, using ones from kof98c20120915
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cnc17.p1", 0x000000, 0x100000, CRC(952efa43) SHA1(2cc2a1c9b4e7159f6b42bcd7c7d4215de046dd71) )
+ ROM_LOAD16_WORD_SWAP( "242cnc17.p2", 0x100000, 0x400000, CRC(43dfe9b0) SHA1(128c0d18d1d71a01ba2f8a66b9432dbbe0b58f8a) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) )
+ ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20140403 ) // no idea what other roms go with this, using ones from kof98c20120915
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cnd03.p1", 0x000000, 0x100000, CRC(57fe473e) SHA1(d83eef73825611abaac1df9ecc81a85a910e6a23) )
+ ROM_LOAD16_WORD_SWAP( "242cnd03.p2", 0x100000, 0x400000, CRC(96f73721) SHA1(fc910b437eb527244a063b519776ae54af31db77) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) )
+ ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20140412 ) // no idea what other roms go with this, using ones from kof98c20120915
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cnd12.p1", 0x000000, 0x100000, CRC(4cb73079) SHA1(db5d0663f91936bfa68d389766ad1d2849cee300) )
+ ROM_LOAD16_WORD_SWAP( "242cnd12.p2", 0x100000, 0x400000, CRC(3d30dad4) SHA1(097ead60f133fa00f7d5a903cff6c10915b1ba0b) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) )
+ ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20140416 ) // no idea what other roms go with this, using ones from kof98c20120915
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cnd16.p1", 0x000000, 0x100000, CRC(25783b16) SHA1(e3748583ab2e4fa934f489e6a46a8725ae8dda35) )
+ ROM_LOAD16_WORD_SWAP( "242cnd16.p2", 0x100000, 0x400000, CRC(23f70495) SHA1(73975803d48cc37b92153dc3519d9efb4a86df49) )
+
+ NEO_SFIX_128K( "242cnd16.s1", CRC(06186f52) SHA1(714415c30626fd4cd2eed80b0af32a4a1d8db19f) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) )
+ ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20140419 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cnd19.p1", 0x000000, 0x100000, CRC(95853626) SHA1(7db1ab39ff7c908c81c915c587247b9f101b28dc) )
+ ROM_LOAD16_WORD_SWAP( "242cnd19.p2", 0x100000, 0x400000, CRC(43475633) SHA1(f57f9744e7d041a9428602b82335038ec3d85f6d) )
+
+ NEO_SFIX_128K( "242cnd19.s1", CRC(75e932d8) SHA1(d8ebd9ecab29fb52994d1fdd5fbeceba3213620a) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) )
+ ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20140428 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cnd28.p1", 0x000000, 0x100000, CRC(9ff156f0) SHA1(18879b3a82172613ef3e744303b00560bac27dda) )
+ ROM_LOAD16_WORD_SWAP( "242cnd28.p2", 0x100000, 0x400000, CRC(ee298a6b) SHA1(5c556142abb0ddd57db33f6dac5675ca5a8e8f8c) )
+
+ NEO_SFIX_128K( "242cnd28.s1", CRC(8e37c589) SHA1(44b9f1cd06cd029fcc39bf29724b03e021974c20) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) )
+ ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20140504 ) // no idea what other roms go with this, using ones from kof98c20140428
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cne04.p1", 0x000000, 0x100000, CRC(d965cbf5) SHA1(e87ceb1ffe9b0757d2d9a5af970ea0f5f416767a) )
+ ROM_LOAD16_WORD_SWAP( "242cne04.p2", 0x100000, 0x400000, CRC(6e96ab13) SHA1(19800094015ed659023d49dfd8b63c0578ea2952) )
+
+ NEO_SFIX_128K( "242cnd28.s1", CRC(8e37c589) SHA1(44b9f1cd06cd029fcc39bf29724b03e021974c20) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) )
+ ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20140524 ) // no idea what other roms go with this, using ones from kof98c20140428
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cne24.p1", 0x000000, 0x100000, CRC(f97629ad) SHA1(8fb4329907780f8508c39f6463d7a2447f81ca08) )
+ ROM_LOAD16_WORD_SWAP( "242cne24.p2", 0x100000, 0x400000, CRC(89f1bf6c) SHA1(01e09eaf7a288652eef26054ddfeb3d2148265ee) )
+
+ NEO_SFIX_128K( "242cnd28.s1", CRC(8e37c589) SHA1(44b9f1cd06cd029fcc39bf29724b03e021974c20) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) )
+ ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20140606 ) // no idea what other roms go with this, using ones from kof98c20140428
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cnf06.p1", 0x000000, 0x100000, CRC(b030bd09) SHA1(254aa86a78af1f893efda3db151dee32c9aa6b1a) )
+ ROM_LOAD16_WORD_SWAP( "242cnf06.p2", 0x100000, 0x400000, CRC(0178de06) SHA1(69bab33a6e1e2c5f7d1dd13e863aed3d77e42a2a) )
+
+ NEO_SFIX_128K( "242cnf06.s1", CRC(7333d8b0) SHA1(43d441133d572f65e9e19839ae2557ad86e393a1) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) )
+ ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20140620 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cnf20.p1", 0x000000, 0x100000, CRC(da4e1cc5) SHA1(d139cf4dd437c5c39385e6cd199ccc71a1ea919e) )
+ ROM_LOAD16_WORD_SWAP( "242cnf20.p2", 0x100000, 0x400000, CRC(a21eb0fc) SHA1(adb826e45128bd24d1d65ead2e85483fe3b79257) )
+
+ NEO_SFIX_128K( "242cnf06.s1", CRC(7333d8b0) SHA1(43d441133d572f65e9e19839ae2557ad86e393a1) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) )
+ ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20140717 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cng17.p1", 0x000000, 0x100000, CRC(7048bed4) SHA1(1a8704d6d993c45f623352821ff7c7718a73197c) )
+ ROM_LOAD16_WORD_SWAP( "242cng17.p2", 0x100000, 0x400000, CRC(8435b965) SHA1(f4da383de4d13636b4b26ce1674f8ef7f7245e89) )
+
+ NEO_SFIX_128K( "242cnf06.s1", CRC(7333d8b0) SHA1(43d441133d572f65e9e19839ae2557ad86e393a1) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) )
+ ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20140809 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cnh09.p1", 0x000000, 0x100000, CRC(0d88b29e) SHA1(c3232ab3abf7fbb51bebac652b8eed6fec2c12d9) )
+ ROM_LOAD16_WORD_SWAP( "242cnh09.p2", 0x100000, 0x400000, CRC(b42ebf83) SHA1(c4405f07b8ef96eb5d9b624bc518171b5de1c546) )
+
+ NEO_SFIX_128K( "242cnf06.s1", CRC(7333d8b0) SHA1(43d441133d572f65e9e19839ae2557ad86e393a1) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) )
+ ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20140816 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cnh16.p1", 0x000000, 0x100000, CRC(59ae0525) SHA1(da283d53479973202046929f47b78d3a378eeb74) )
+ ROM_LOAD16_WORD_SWAP( "242cnh16.p2", 0x100000, 0x400000, CRC(cfff4986) SHA1(2434b58db6e6acb87799888cee12cd7eadafb46c) )
+
+ NEO_SFIX_128K( "242cnf06.s1", CRC(7333d8b0) SHA1(43d441133d572f65e9e19839ae2557ad86e393a1) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) )
+ ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20140824 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cnh24.p1", 0x000000, 0x100000, CRC(ac02f016) SHA1(ce8a4c5d4adb77ceaa2c4fb02ecae639a58b1e11) )
+ ROM_LOAD16_WORD_SWAP( "242cnh24.p2", 0x100000, 0x400000, CRC(224ef92b) SHA1(e104f085eb7f090c49c7fb6270d8d0cf20e26858) )
+
+ NEO_SFIX_128K( "242cnf06.s1", CRC(7333d8b0) SHA1(43d441133d572f65e9e19839ae2557ad86e393a1) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) )
+ ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20140906 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cni06.p1", 0x000000, 0x100000, CRC(2b67d1fd) SHA1(b00d1cde6e70f0800722e3f676b419a24dc730a5) )
+ ROM_LOAD16_WORD_SWAP( "242cni06.p2", 0x100000, 0x400000, CRC(1d935839) SHA1(eaf2c03dda42f00d1346108dda593ba669da15de) )
+
+ NEO_SFIX_128K( "242cnf06.s1", CRC(7333d8b0) SHA1(43d441133d572f65e9e19839ae2557ad86e393a1) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) )
+ ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20140924 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cni24.p1", 0x000000, 0x100000, CRC(37fa2233) SHA1(0e84d11835d4a6516dec82e56dc1075a19c50697) )
+ ROM_LOAD16_WORD_SWAP( "242cni24.p2", 0x100000, 0x400000, CRC(eaa3890e) SHA1(b8f783a5ce948b69bd98f6f0514714cf9a592378) )
+
+ NEO_SFIX_128K( "242cnf06.s1", CRC(7333d8b0) SHA1(43d441133d572f65e9e19839ae2557ad86e393a1) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) )
+ ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20141002 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cnj02.p1", 0x000000, 0x100000, CRC(d1085e45) SHA1(c718cc7bf444c240d114e286f7c4d864ffc774dd) )
+ ROM_LOAD16_WORD_SWAP( "242cnj02.p2", 0x100000, 0x400000, CRC(80511be2) SHA1(4e2922f92f3d0ef7c13c50419c57d4fb7878a9e4) )
+
+ NEO_SFIX_128K( "242cnf06.s1", CRC(7333d8b0) SHA1(43d441133d572f65e9e19839ae2557ad86e393a1) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) )
+ ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20141020 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cnj20.p1", 0x000000, 0x100000, CRC(93cae16e) SHA1(1445a267a299b733bd0c67d79b197fa55ac6d95a) )
+ ROM_LOAD16_WORD_SWAP( "242cnj20.p2", 0x100000, 0x400000, CRC(e3c2e36d) SHA1(bf9b7b830f24e4682b0e6abe431e96103372d7e6) )
+
+ NEO_SFIX_128K( "242cnf06.s1", CRC(7333d8b0) SHA1(43d441133d572f65e9e19839ae2557ad86e393a1) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) )
+ ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20150201 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cob01.p1", 0x000000, 0x100000, CRC(b127666b) SHA1(3d852d55dc728622e31b160ac178a5efb9c86d8c) )
+ ROM_LOAD16_WORD_SWAP( "242cob01.p2", 0x100000, 0x400000, CRC(745606f4) SHA1(2d50a6b42365b02248c286f39293e760ae68381a) )
+
+ NEO_SFIX_128K( "242cnf06.s1", CRC(7333d8b0) SHA1(43d441133d572f65e9e19839ae2557ad86e393a1) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) )
+ ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20150228 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cob28.p1", 0x000000, 0x100000, CRC(385de2db) SHA1(f07e764595a4da02a4517e2e244aeb6d4dd68049) )
+ ROM_LOAD16_WORD_SWAP( "242cob28.p2", 0x100000, 0x400000, CRC(e68be25d) SHA1(44170fc9ebed30d2a8cac44210692b4693224ad0) )
+
+ NEO_SFIX_128K( "242cnf06.s1", CRC(7333d8b0) SHA1(43d441133d572f65e9e19839ae2557ad86e393a1) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) )
+ ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20150302 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242coc02.p1", 0x000000, 0x100000, CRC(803afe36) SHA1(78b0787eeffb4f53decf0f6eee2fdce93dafc6d9) )
+ ROM_LOAD16_WORD_SWAP( "242coc02.p2", 0x100000, 0x400000, CRC(7e76f991) SHA1(fab7479337e00c93f75cb9a613b18a5c81513d91) )
+
+ NEO_SFIX_128K( "242cnf06.s1", CRC(7333d8b0) SHA1(43d441133d572f65e9e19839ae2557ad86e393a1) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) )
+ ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20150310 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242coc10.p1", 0x000000, 0x100000, CRC(e7b69efe) SHA1(d641b7419d18ffca5dba199af7d6197fa824a238) )
+ ROM_LOAD16_WORD_SWAP( "242coc10.p2", 0x100000, 0x400000, CRC(b4e8d712) SHA1(62d437d6c4aec43f50959d121ffb99293c68099f) )
+
+ NEO_SFIX_128K( "242cnf06.s1", CRC(7333d8b0) SHA1(43d441133d572f65e9e19839ae2557ad86e393a1) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) )
+ ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20150330 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242coc30.p1", 0x000000, 0x100000, CRC(7693c342) SHA1(a78907075247a4aad74060025f179ed0ac522cdf) )
+ ROM_LOAD16_WORD_SWAP( "242coc30.p2", 0x100000, 0x400000, CRC(0d03f931) SHA1(bc2694d653ad28310de2ecb321b815e8f85dd1de) )
+
+ NEO_SFIX_128K( "242cnf06.s1", CRC(7333d8b0) SHA1(43d441133d572f65e9e19839ae2557ad86e393a1) )
+
+ NEO_BIOS_AUDIO_256K( "242coc30.m1", CRC(db046fc4) SHA1(4b793a125bade067ef0fdcd1775d135c646c6b94) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) )
+ ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20150528 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242coe28.p1", 0x000000, 0x100000, CRC(82a247f9) SHA1(e472633878a993e5ada4a78b654e775dc5647544) )
+ ROM_LOAD16_WORD_SWAP( "242coc30.p2", 0x100000, 0x400000, CRC(0d03f931) SHA1(bc2694d653ad28310de2ecb321b815e8f85dd1de) )
+
+ NEO_SFIX_128K( "242cnf06.s1", CRC(7333d8b0) SHA1(43d441133d572f65e9e19839ae2557ad86e393a1) )
+
+ NEO_BIOS_AUDIO_256K( "242coc30.m1", CRC(db046fc4) SHA1(4b793a125bade067ef0fdcd1775d135c646c6b94) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) )
+ ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20150614 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cof14.p1", 0x000000, 0x100000, CRC(1df50acf) SHA1(4a13e5e92781b42d91da8c6b3c625715213f0bfe) )
+ ROM_LOAD16_WORD_SWAP( "242cof14.p2", 0x100000, 0x400000, CRC(0e4c921c) SHA1(a0879fc90051111dec8e2bcc0f7177b892661b03) )
+
+ NEO_SFIX_128K( "242cnf06.s1", CRC(7333d8b0) SHA1(43d441133d572f65e9e19839ae2557ad86e393a1) )
+
+ NEO_BIOS_AUDIO_256K( "242coc30.m1", CRC(db046fc4) SHA1(4b793a125bade067ef0fdcd1775d135c646c6b94) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) )
+ ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20150705 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cog05.p1", 0x000000, 0x100000, CRC(fe8c3218) SHA1(0426ba382e1207dd517a2f950651b383c786564d) )
+ ROM_LOAD16_WORD_SWAP( "242cog05.p2", 0x100000, 0x400000, CRC(30477896) SHA1(d3834c7353e4b3781874742fc0a0154656806cef) )
+
+ NEO_SFIX_128K( "242cnf06.s1", CRC(7333d8b0) SHA1(43d441133d572f65e9e19839ae2557ad86e393a1) )
+
+ NEO_BIOS_AUDIO_256K( "242coc30.m1", CRC(db046fc4) SHA1(4b793a125bade067ef0fdcd1775d135c646c6b94) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) )
+ ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20150729 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cog29.p1", 0x000000, 0x100000, CRC(9c485873) SHA1(bdbd18de319723f4a6730236f5b22b54489fce09) )
+ ROM_LOAD16_WORD_SWAP( "242cog29.p2", 0x100000, 0x400000, CRC(8ab6db32) SHA1(fa8d317a5e4185343f91c8dd2a84d3e375b1ec4b) )
+
+ NEO_SFIX_128K( "242cnf06.s1", CRC(7333d8b0) SHA1(43d441133d572f65e9e19839ae2557ad86e393a1) )
+
+ NEO_BIOS_AUDIO_256K( "242coc30.m1", CRC(db046fc4) SHA1(4b793a125bade067ef0fdcd1775d135c646c6b94) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) )
+ ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20150827 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242coh27.p1", 0x000000, 0x100000, CRC(4cb8bd3d) SHA1(968f859f48f8893e9376d9777022ffc5cd56ea3b) )
+ ROM_LOAD16_WORD_SWAP( "242coh27.p2", 0x100000, 0x400000, CRC(83590f75) SHA1(808b13f90a437651372872fd47d921854555c4ca) )
+
+ NEO_SFIX_128K( "242cnf06.s1", CRC(7333d8b0) SHA1(43d441133d572f65e9e19839ae2557ad86e393a1) )
+
+ NEO_BIOS_AUDIO_256K( "242coc30.m1", CRC(db046fc4) SHA1(4b793a125bade067ef0fdcd1775d135c646c6b94) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) )
+ ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20151103 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cok03.p1", 0x000000, 0x100000, CRC(e5d553c0) SHA1(bee0d432276a534e1ba511a2c1eb73722079b42f) )
+ ROM_LOAD16_WORD_SWAP( "242cok03.p2", 0x100000, 0x400000, CRC(0bba8a3e) SHA1(9f8278b5c9b61e4ecc7849efedfbdc8692fbc9be) )
+
+ NEO_SFIX_128K( "242cnd28.s1", CRC(8e37c589) SHA1(44b9f1cd06cd029fcc39bf29724b03e021974c20) )
+
+ NEO_BIOS_AUDIO_256K( "242coc30.m1", CRC(db046fc4) SHA1(4b793a125bade067ef0fdcd1775d135c646c6b94) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) )
+ ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20151108 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cok08.p1", 0x000000, 0x100000, CRC(971bae37) SHA1(9b66bd0d893eae0cf6d17d7c4ff3d5f6f7a3d83a) )
+ ROM_LOAD16_WORD_SWAP( "242cok08.p2", 0x100000, 0x400000, CRC(9cdd6455) SHA1(24014e66b5e773456987acef055f8307f731874e) )
+
+ NEO_SFIX_128K( "242cnd28.s1", CRC(8e37c589) SHA1(44b9f1cd06cd029fcc39bf29724b03e021974c20) )
+
+ NEO_BIOS_AUDIO_256K( "242coc30.m1", CRC(db046fc4) SHA1(4b793a125bade067ef0fdcd1775d135c646c6b94) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) )
+ ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20151110 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cok10.p1", 0x000000, 0x100000, CRC(4d1ffdf4) SHA1(9630499b8f88d332bbfea965b55854fd6d40c134) )
+ ROM_LOAD16_WORD_SWAP( "242cok10.p2", 0x100000, 0x400000, CRC(064a18c9) SHA1(cc68ee70f738365674c63cc31954c994a6b2aeba) )
+
+ NEO_SFIX_128K( "242cnd28.s1", CRC(8e37c589) SHA1(44b9f1cd06cd029fcc39bf29724b03e021974c20) )
+
+ NEO_BIOS_AUDIO_256K( "242coc30.m1", CRC(db046fc4) SHA1(4b793a125bade067ef0fdcd1775d135c646c6b94) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) )
+ ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20151223 ) // only p1,p2 are confirmed
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242col23.p1", 0x000000, 0x100000, CRC(7549069f) SHA1(3c083f77f4598c1525fc327f41dbd25a89a66723) )
+ ROM_LOAD16_WORD_SWAP( "242col23.p2", 0x100000, 0x400000, CRC(c53f8c35) SHA1(005b52da53dd57053d0123febfd004c2137cbace) )
+
+ NEO_SFIX_128K( "242cnd28.s1", CRC(8e37c589) SHA1(44b9f1cd06cd029fcc39bf29724b03e021974c20) )
+
+ NEO_BIOS_AUDIO_256K( "242coc30.m1", CRC(db046fc4) SHA1(4b793a125bade067ef0fdcd1775d135c646c6b94) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) )
+ ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20160320 ) // all confirmed
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cpc20.p1", 0x000000, 0x100000, CRC(3a6baeb5) SHA1(100cfaf7f8478ef0f480c1453d268aef6758952a) )
+ ROM_LOAD16_WORD_SWAP( "242cpc20.p2", 0x100000, 0x400000, CRC(d6c78a73) SHA1(6ec63abaf39c1c7ddf4830a9a0e71618b539ea05) )
+
+ NEO_SFIX_128K( "242cnf06.s1", CRC(7333d8b0) SHA1(43d441133d572f65e9e19839ae2557ad86e393a1) )
+
+ NEO_BIOS_AUDIO_256K( "242coc30.m1", CRC(db046fc4) SHA1(4b793a125bade067ef0fdcd1775d135c646c6b94) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) )
+ ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98c20160907 ) // all confirmed
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cpi07.p1", 0x000000, 0x100000, CRC(eb7e9f57) SHA1(085881730d6f4565e5a67ffc8b4293ba624932bb) )
+ ROM_LOAD16_WORD_SWAP( "242cpi07.p2", 0x100000, 0x400000, CRC(919807ea) SHA1(bdb42da3b13aa68c785d5f50c14fc96c0d8b60e7) )
+
+ NEO_SFIX_128K( "242cnf06.s1", CRC(7333d8b0) SHA1(43d441133d572f65e9e19839ae2557ad86e393a1) )
+
+ NEO_BIOS_AUDIO_256K( "242coc30.m1", CRC(db046fc4) SHA1(4b793a125bade067ef0fdcd1775d135c646c6b94) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) )
+ ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98cd )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cd.p1", 0x000000, 0x100000, CRC(1a748f96) SHA1(bddb07fa6dc59ae547aed32218a6601b8b80816e) )
+ ROM_LOAD16_WORD_SWAP( "242cd.p2", 0x100000, 0x400000, CRC(5e4405b2) SHA1(f503c52c1ddec204c498351aae52528ccfe6ab6c) )
+
+ NEO_SFIX_128K( "242cd.s1", CRC(53f14b31) SHA1(c9aa1627bd4d55196dc2efa72c2b3bea1d90e699) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cd.c1", 0x0000000, 0x800000, CRC(05edf0ff) SHA1(99afddc2d59ba274f2d9d9f5ef86c925518b8278) )
+ ROM_LOAD16_BYTE( "242cd.c2", 0x0000001, 0x800000, CRC(3723515e) SHA1(a2f0ae12cdd10e74a19188d774e833eb8501f20c) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98cd1 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cd1.p1", 0x000000, 0x100000, CRC(0a411dda) SHA1(7c45fb93b9285d1bd63ab79576392205d6f2b2c5) )
+ ROM_LOAD16_WORD_SWAP( "242cd.p2", 0x100000, 0x400000, CRC(5e4405b2) SHA1(f503c52c1ddec204c498351aae52528ccfe6ab6c) )
+
+ NEO_SFIX_128K( "242sp.s1", CRC(9ccbae05) SHA1(f89dcce6a804b86e0f7362df7c16c7a4a978ee62) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242nc.c1", 0x0000000, 0x800000, CRC(6b458741) SHA1(a2157247763fae325ef0fcd93bc72df6dfd4fa33) )
+ ROM_LOAD16_BYTE( "242cd.c2", 0x0000001, 0x800000, CRC(3723515e) SHA1(a2f0ae12cdd10e74a19188d774e833eb8501f20c) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98cd2 ) // multijet
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cd2.p1", 0x000000, 0x100000, CRC(8a7094e2) SHA1(0d2692c136976266145925b7cda5c75b821b7055) )
+ ROM_LOAD16_WORD_SWAP( "242cd.p2", 0x100000, 0x400000, CRC(5e4405b2) SHA1(f503c52c1ddec204c498351aae52528ccfe6ab6c) )
+
+ NEO_SFIX_128K( "242sp.s1", CRC(9ccbae05) SHA1(f89dcce6a804b86e0f7362df7c16c7a4a978ee62) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242nc.c1", 0x0000000, 0x800000, CRC(6b458741) SHA1(a2157247763fae325ef0fcd93bc72df6dfd4fa33) )
+ ROM_LOAD16_BYTE( "242cd.c2", 0x0000001, 0x800000, CRC(3723515e) SHA1(a2f0ae12cdd10e74a19188d774e833eb8501f20c) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98ch ) /* The King of Fighters '98 - Remix by Chase - (Character move change 20030503) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242ch.p1", 0x000000, 0x100000, CRC(c6244126) SHA1(c99b20917c5ad2780f7ecabe95f6aded6a7f0038) )
+ ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98ch1 ) // multijet kof98ch, looks like a hack of kof98cn
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cn.p1", 0x000000, 0x100000, CRC(9f8cb001) SHA1(0d159627815175a25e39b2d84aa0f9c7afb16b68) )
+ ROM_LOAD16_WORD_SWAP( "242ch1.p2", 0x100000, 0x400000, CRC(8a167905) SHA1(b6487e2df6450b8c192a7782d4514c1f740df41a) )
+
+ NEO_SFIX_128K( "242ch1.s1", CRC(c045e32a) SHA1(496f9123a50840064a1bf2d5dc8e768bc10aded1) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cn.c1", 0x0000000, 0x800000, CRC(40aceac9) SHA1(c9b7aee462e47bb70dc3644aa20b0698e7841ac1) )
+ ROM_LOAD16_BYTE( "242cn.c2", 0x0000001, 0x800000, CRC(3aa0b16b) SHA1(fbc063e85a6fa33ae189fe0e74ad53c6b29e3dd9) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98chl ) /* [OLD] The King of Fighters '98 - Revise by CHL - (Character move change 20030320) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242chl.p1", 0x000000, 0x100000, CRC(8dff0265) SHA1(9a1ffaf13ed95dcb035e081f93b8eb461212c713) )
+ ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98chris ) // Chris 2k2 Style
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242-pn1.p1", 0x000000, 0x100000, CRC(61ac868a) SHA1(26577264aa72d6af272952a876fcd3775f53e3fa) )
+ ROM_LOAD16_WORD_SWAP( "242chris.p2", 0x100000, 0x400000, CRC(99adc897) SHA1(4f8b3e58c8509a765536fb1f4895e8594c2237c2) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242chris.c7", 0x3000000, 0x800000, CRC(5ef4d3c3) SHA1(312cc9aa1c4657b7bc745348f3bac7476ef3c894) )
+ ROM_LOAD16_BYTE( "242chris.c8", 0x3000001, 0x800000, CRC(d8b5d903) SHA1(3c5f0cf4b7cec79a81ad3af8cafeca2a14509995) )
+ROM_END
+
+ROM_START( kof98cn )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cn.p1", 0x000000, 0x100000, CRC(9f8cb001) SHA1(0d159627815175a25e39b2d84aa0f9c7afb16b68) )
+ ROM_LOAD16_WORD_SWAP( "242cn.p2", 0x100000, 0x400000, CRC(d7d3ad2c) SHA1(f344a6093dc0ed08b77c786c4272be065039cf67) )
+
+ NEO_SFIX_128K( "242cn.s1", CRC(65080259) SHA1(6c531bb975ab338981db8337fd787b53ac48ece6) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cn.c1", 0x0000000, 0x800000, CRC(40aceac9) SHA1(c9b7aee462e47bb70dc3644aa20b0698e7841ac1) )
+ ROM_LOAD16_BYTE( "242cn.c2", 0x0000001, 0x800000, CRC(3aa0b16b) SHA1(fbc063e85a6fa33ae189fe0e74ad53c6b29e3dd9) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98cn1 ) // hack of kof98y
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242y.p1", 0x000000, 0x100000, CRC(20848b37) SHA1(eb44baa6f273d6ab596204f89427078343c0ace5) )
+ ROM_LOAD16_WORD_SWAP( "242cn.p2", 0x100000, 0x400000, CRC(d7d3ad2c) SHA1(f344a6093dc0ed08b77c786c4272be065039cf67) )
+
+ NEO_SFIX_128K( "242cn1.s1", CRC(3b054e79) SHA1(4a56fa412065efb159f283f2bbab9f76e4160d85) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cn.c1", 0x0000000, 0x800000, CRC(40aceac9) SHA1(c9b7aee462e47bb70dc3644aa20b0698e7841ac1) )
+ ROM_LOAD16_BYTE( "242cn.c2", 0x0000001, 0x800000, CRC(3aa0b16b) SHA1(fbc063e85a6fa33ae189fe0e74ad53c6b29e3dd9) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98cos )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cos.p1", 0x000000, 0x100000, CRC(1db1c200) SHA1(2fcac911720ecfc878c0d47b2a4c8ca17eec5588) )
+ ROM_LOAD16_WORD_SWAP( "242cos.p2", 0x100000, 0x400000, CRC(48c87162) SHA1(e29d90f101a4b585d98cd51a941e876356cc77f0) )
+
+ NEO_SFIX_128K( "242cos.s1", CRC(554c4b66) SHA1(0fa53c7433ed4b66515890ad0526f292ae88c7ad) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cos.c1", 0x0000000, 0x800000, CRC(9f8b0ee6) SHA1(a13b07a2cfdb5e318a11cdd054d0f3ec612cbc15) )
+ ROM_LOAD16_BYTE( "242cos.c2", 0x0000001, 0x800000, CRC(2e21efeb) SHA1(35eeb1657fc62c1298c019f16978e3108c25d068) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98cos1 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cos1.p1", 0x000000, 0x100000, CRC(fb883c88) SHA1(6136a051afc714f3e190f05dcf35b77e06151c66) )
+ ROM_LOAD16_WORD_SWAP( "242cos1.p2", 0x100000, 0x400000, CRC(8b303816) SHA1(63501eb059bd0afe4a77b891cb8eabfefd344648) )
+
+ NEO_SFIX_128K( "242cos.s1", CRC(554c4b66) SHA1(0fa53c7433ed4b66515890ad0526f292ae88c7ad) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cos1.c1", 0x0000000, 0x800000, CRC(8dd08778) SHA1(1e7ab8b8111d7584789781f6b8d9949f85b601bc) )
+ ROM_LOAD16_BYTE( "242cos1.c2", 0x0000001, 0x800000, CRC(c2618f28) SHA1(085b39c5eb730df8a9e4d5fe439098c5bc000ac3) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98cos2 ) // Cosmic 2.0
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cos2.p1", 0x000000, 0x100000, CRC(ab79dd93) SHA1(3b59df27be009dd19508cdd028bf260c6141c2ad) )
+ ROM_LOAD16_WORD_SWAP( "242cos2.p2", 0x100000, 0x400000, CRC(6df5820b) SHA1(608c4f4987d8174dd8b60b274b773e6978fdbc92) )
+
+ NEO_SFIX_128K( "242cos.s1", CRC(554c4b66) SHA1(0fa53c7433ed4b66515890ad0526f292ae88c7ad) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cos2.c1", 0x0000000, 0x800000, CRC(96762b9a) SHA1(5d62188c1a4816b6cd5001b618d695597c9b61a6) )
+ ROM_LOAD16_BYTE( "242cos2.c2", 0x0000001, 0x800000, CRC(e7617290) SHA1(371441d1f204e83783a2a5c0e86d1a3968e0892d) )
+ ROM_LOAD16_BYTE( "242cos2.c3", 0x1000000, 0x800000, CRC(21a545b4) SHA1(90e29b07034fa7c03ec366fd716bc6e60849102f) )
+ ROM_LOAD16_BYTE( "242cos2.c4", 0x1000001, 0x800000, CRC(21adcb7b) SHA1(70c6ccef09349747a751da2e74700cc54ba9741f) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98dc ) /* The King of Fighters '98 - Colour fix by Dodowang - (character colour change - the "negative colour style */
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242-p1.p1", 0x000000, 0x200000, CRC(8893df89) SHA1(0452828785110601c65f667209fc2d2926cd3751) )
+ ROM_LOAD16_WORD_SWAP( "242dc.p2", 0x200000, 0x400000, CRC(4bce4de3) SHA1(5c210782853250772cf27c1492f018d92a5357fc) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98ecm ) // multijet
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242ecm.p1", 0x000000, 0x100000, CRC(c84c975a) SHA1(0abcb78eb1f3970bfcb5f55cbbf1d4d9174311db) )
+ ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98ehr ) /* The King of Fighters '98 - Remix by Raymonose - (Character move change - ultra kill start is max in Advanced Mode - ultra power hack ABC - bases on kof98eh) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242ehr.p1", 0x000000, 0x100000, CRC(451acfca) SHA1(2d0ec5f999c54749b39dd2a03fedf62f4bf79cd4) )
+ ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98evl ) // Ultra Evolution Lite
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242evl.p1", 0x000000, 0x100000, CRC(91fec4c3) SHA1(4a0a4c340f67d8f11fee1d2851b6aec0b1feae08) )
+ ROM_LOAD16_WORD_SWAP( "242evl.p2", 0x100000, 0x400000, CRC(3c76d7cc) SHA1(0385bd3860add3431097ed207d9de80491482fa0) )
+
+ NEO_SFIX_128K( "242evl.s1", CRC(33429d5b) SHA1(68e0c1a6408029b034b7f7936bbb12152aa6d5bc) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242evl.c1", 0x0000000, 0x800000, CRC(e7f6e015) SHA1(c7efac1dee18e1f29a1d80ef5be5574cb12c2d6c) )
+ ROM_LOAD16_BYTE( "242evl.c2", 0x0000001, 0x800000, CRC(8c2dfa52) SHA1(2ba4235abf78e360129b6d5643889ccb3155cb30) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242sp.c7", 0x3000000, 0x800000, CRC(35839069) SHA1(830dcc84f91ef5498019604fecd9a8db1e3e22a9 ) )
+ ROM_LOAD16_BYTE( "242sp.c8", 0x3000001, 0x800000, CRC(9744d47f) SHA1(8a7057a99f6cbc9707f10feb64192716cf6df151 ) )
+ROM_END
+
+ROM_START( kof98evo ) // Evolution
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242new.p1", 0x000000, 0x100000, CRC(f9a22b2f) SHA1(730e9ae8391d8fa70141c5d73479cf9cff91a672) )
+ ROM_LOAD16_WORD_SWAP( "242evo.p2", 0x100000, 0x400000, CRC(65547465) SHA1(6f3d8bc995e2ef195e682885c050715a274913e7) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242sp.c7", 0x3000000, 0x800000, CRC(35839069) SHA1(830dcc84f91ef5498019604fecd9a8db1e3e22a9 ) )
+ ROM_LOAD16_BYTE( "242sp.c8", 0x3000001, 0x800000, CRC(9744d47f) SHA1(8a7057a99f6cbc9707f10feb64192716cf6df151 ) )
+ROM_END
+
+ROM_START( kof98evo2 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242evo2.p1", 0x000000, 0x100000, CRC(39ef1761) SHA1(5e4267ae5d63b44ff18ec26117d779eb9b2b7613) )
+ ROM_LOAD16_WORD_SWAP( "242evo2.p2", 0x100000, 0x400000, CRC(230faff7) SHA1(8df8a15c09adf7fad96204567e848ac0f7afcdc0) )
+
+ NEO_SFIX_128K( "242evo2.s1", CRC(536defd3) SHA1(dda5e94531f8009013185a243227f775a574c6c2) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242sp2.c1", 0x0000000, 0x800000, CRC(3c4458cc) SHA1(0869f72a9d7226b19ffea5108f618d0f62c01291) )
+ ROM_LOAD16_BYTE( "242sp2.c2", 0x0000001, 0x800000, CRC(f060b0f4) SHA1(b4230c5c8dd35c0907b7c7d23f964051e6c24723) )
+ ROM_LOAD16_BYTE( "242new.c3", 0x1000000, 0x800000, CRC(3e554882) SHA1(c2a0dd3621180e9aae0f41adb46ea7fcce0764e8) )
+ ROM_LOAD16_BYTE( "242new.c4", 0x1000001, 0x800000, CRC(e9e0f676) SHA1(4b46dc18b9ce502097e615c9c236ca0ac5b280e0) )
+ ROM_LOAD16_BYTE( "242sp2.c5", 0x2000000, 0x800000, CRC(7e98340a) SHA1(35881c2a3e4025a7a18d85d80ba5ec91e33cddc7) )
+ ROM_LOAD16_BYTE( "242sp2.c6", 0x2000001, 0x800000, CRC(4adce5a2) SHA1(a6d4549db97584c529ac728e1f239f6168b77c6b) )
+ ROM_LOAD16_BYTE( "242sp.c7", 0x3000000, 0x800000, CRC(35839069) SHA1(830dcc84f91ef5498019604fecd9a8db1e3e22a9) )
+ ROM_LOAD16_BYTE( "242sp.c8", 0x3000001, 0x800000, CRC(9744d47f) SHA1(8a7057a99f6cbc9707f10feb64192716cf6df151) )
+ROM_END
+
+ROM_START( kof98evr ) // all confirmed
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242evr.p1", 0x000000, 0x100000, CRC(2cd3d8e9) SHA1(81014dd7e4ac6bd4d2f155dcee3930e1eb5174a1) )
+ ROM_LOAD16_WORD_SWAP( "242evr.p2", 0x100000, 0x400000, CRC(c1e80581) SHA1(466d41a3390bf655e2dba5a42c566ec5bcd626a6) )
+
+ NEO_SFIX_128K( "242evr.s1", CRC(88355acf) SHA1(bbcb0d7c5f6ad73d049a94f03d5ee1af23b99754) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cn.c1", 0x0000000, 0x800000, CRC(40aceac9) SHA1(c9b7aee462e47bb70dc3644aa20b0698e7841ac1) )
+ ROM_LOAD16_BYTE( "242cn.c2", 0x0000001, 0x800000, CRC(3aa0b16b) SHA1(fbc063e85a6fa33ae189fe0e74ad53c6b29e3dd9) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242evr.c7", 0x3000000, 0x800000, CRC(737249a8) SHA1(4ced30143182bd09596697600b2c4801cd66d274) )
+ ROM_LOAD16_BYTE( "242evr.c8", 0x3000001, 0x800000, CRC(3489c788) SHA1(b47ba5d64e7aad2d3f263f9fd659c1ae83b06284) )
+ROM_END
+
+ROM_START( kof98f )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242f.p1", 0x000000, 0x100000, CRC(c17a0ace) SHA1(b5496062954bdc3ab45a9b4e7787ab3426ff7404) )
+ ROM_LOAD16_WORD_SWAP( "242f.p2", 0x100000, 0x400000, CRC(d7477a42) SHA1(f20980ab53ebc36907712b0e0b8db18c42d1198c) )
+ ROM_FILL(0x182,1,0x00)
+ ROM_FILL(0x183,1,0x0A)
+
+ NEO_SFIX_128K( "242f.s1", CRC(bdd8c78e) SHA1(2df58aad109ac3012f7814f873d8c966faef8aa1) )
+
+ NEO_BIOS_AUDIO_256K( "242f.m1", CRC(d73ccd25) SHA1(54dfdf4baf8efb621e234f602939929b17330bfc) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242f.v1", 0x000000, 0x400000, CRC(5c6d6b00) SHA1(ef87aa9573d66e3ee35d7fa0bb680dfea52da144) )
+ ROM_LOAD( "242f.v2", 0x400000, 0x400000, CRC(392953d5) SHA1(53468da327e64cb471fb3f0ea71977ec2bfb31f7) )
+ ROM_LOAD( "242f.v3", 0x800000, 0x400000, CRC(a2e57162) SHA1(6c3f010035d6426a420dbbfbe8d3cecc879e8ee7) )
+ ROM_LOAD( "242f.v4", 0xc00000, 0x400000, CRC(91c353c5) SHA1(58f1fb75191b662f087929f8a401719375274d1f) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242f.c1", 0x0000000, 0x800000, CRC(69a77e68) SHA1(4b0a0d6b52b1136b2c0ce237536532e9333f918a) )
+ ROM_LOAD16_BYTE( "242f.c2", 0x0000001, 0x800000, CRC(315609de) SHA1(44d92b59e93f8340b27bbd91b6a6ed74c1e88cf4) )
+ ROM_LOAD16_BYTE( "242f.c3", 0x1000000, 0x800000, CRC(bd6ba838) SHA1(5142ca697b2b6e203df7737e6a4ada126706bac3) )
+ ROM_LOAD16_BYTE( "242f.c4", 0x1000001, 0x800000, CRC(ad1a89a2) SHA1(ab470673d561955c9d0640c06c5d6b931f2d095c) )
+ ROM_LOAD16_BYTE( "242f.c5", 0x2000000, 0x800000, CRC(6cb4a77c) SHA1(73bcefd2e090db70d9bc693d6086cf6ab2af049b) )
+ ROM_LOAD16_BYTE( "242f.c6", 0x2000001, 0x800000, CRC(7bf63b7d) SHA1(6e5c38dc450272d4410c150d5906b0870e753480) )
+ ROM_LOAD16_BYTE( "242f.c7", 0x3000000, 0x800000, CRC(c4a3ef6b) SHA1(28fc5b7d1e0bf641483190ff27f30e4b9f48d80a) )
+ ROM_LOAD16_BYTE( "242f.c8", 0x3000001, 0x800000, CRC(1c506f21) SHA1(5a96a8649c1027fdcbdd34be6176c3110271f74d) )
+ROM_END
+
+ROM_START( kof98fr ) /* The King of Fighters '98 - Translation Hack by NEO-ARC - (French translation) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242fr.p1", 0x000000, 0x100000, CRC(2f29984c) SHA1(6feb8412d335e8b38a0d7231f51af91251901dd4) )
+ ROM_LOAD16_WORD_SWAP( "242fr.p2", 0x100000, 0x400000, CRC(c2fc3506) SHA1(ddcedbc30474d2e1db70d640a6a258171ecb900c) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242fr.c1", 0x0000000, 0x800000, CRC(07bd2146) SHA1(124c580667887d9f027b3fb2dbb6db39b346359c) )
+ ROM_LOAD16_BYTE( "242fr.c2", 0x0000001, 0x800000, CRC(c935e740) SHA1(375624da3f24ea3b752c0cc3d9b75457e27c31d0) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98fro ) /* [OLD] The King of Fighters '98 - Translation Hack by NEO-ARC - (French translation) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242fro.p1", 0x000000, 0x100000, CRC(6500efce) SHA1(933de9a1b3ee32ac0043179448b4dda776eb86ba) )
+ ROM_LOAD16_WORD_SWAP( "242fro.p2", 0x100000, 0x400000, CRC(c7fa95ee) SHA1(4de91d9151fbc510751f2c5277da7c8f49872c26) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242fro.c1", 0x0000000, 0x800000, CRC(bae65fc5) SHA1(933f587955ee29f3beca9be495a35331530e7206) )
+ ROM_LOAD16_BYTE( "242fr.c2", 0x0000001, 0x800000, CRC(c935e740) SHA1(375624da3f24ea3b752c0cc3d9b75457e27c31d0) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98fro2 ) /* [OLD] The King of Fighters '98 - Translation Hack by NEO-ARC - (French translation) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242fro2.p1", 0x000000, 0x100000, CRC(71d4650f) SHA1(d0719d54070c3dea1d72b95c1fc830bd911ea49c) )
+ ROM_LOAD16_WORD_SWAP( "242fro.p2", 0x100000, 0x400000, CRC(c7fa95ee) SHA1(4de91d9151fbc510751f2c5277da7c8f49872c26) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98frp ) // The Slutfest: French satire by Cigarette Patch
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242frp.p1", 0x000000, 0x100000, CRC(b9d5d3a5) SHA1(f58e1bae237c271e9f3e0c081b89118e5f910f94) )
+ ROM_LOAD16_WORD_SWAP( "242frp.p2", 0x100000, 0x400000, CRC(dccb944f) SHA1(9bd4fe01c44ddfd74583f9f46dd3342aef1bae68) )
+
+ NEO_SFIX_128K( "242frp.s1", CRC(6db59470) SHA1(e4333cd4dac667779958a72249202082df74b00f) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242frp.c1", 0x0000000, 0x800000, CRC(3833c1aa) SHA1(4e4f1c3c932b0da708d48af0ce0473ac51d0908d) )
+ ROM_LOAD16_BYTE( "242frp.c2", 0x0000001, 0x800000, CRC(c3a8234f) SHA1(ba55e5c0cc61e828a71f9dcdba4c4b6ea40beab2) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98fv )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242fv.p1", 0x000000, 0x100000, CRC(81ddbea9) SHA1(5e805944372bbb10801836da50bcd03a2879287e) )
+ ROM_LOAD16_WORD_SWAP( "242fv.p2", 0x100000, 0x400000, CRC(0bb089f2) SHA1(6a96300699d50d15f4579a9d6f64bd4a0f08ff79) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242evr.c7", 0x3000000, 0x800000, CRC(737249a8) SHA1(4ced30143182bd09596697600b2c4801cd66d274) )
+ ROM_LOAD16_BYTE( "242evr.c8", 0x3000001, 0x800000, CRC(3489c788) SHA1(b47ba5d64e7aad2d3f263f9fd659c1ae83b06284) )
+ROM_END
+
+ROM_START( kof98fv2 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242fv2.p1", 0x000000, 0x100000, CRC(027b7cfb) SHA1(f51bc40a82dbbc47d3bc60cdfc80db391003fca8) )
+ ROM_LOAD16_WORD_SWAP( "242fv.p2", 0x100000, 0x400000, CRC(0bb089f2) SHA1(6a96300699d50d15f4579a9d6f64bd4a0f08ff79) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242evr.c7", 0x3000000, 0x800000, CRC(737249a8) SHA1(4ced30143182bd09596697600b2c4801cd66d274) )
+ ROM_LOAD16_BYTE( "242evr.c8", 0x3000001, 0x800000, CRC(3489c788) SHA1(b47ba5d64e7aad2d3f263f9fd659c1ae83b06284) )
+ROM_END
+
+ROM_START( kof98gold ) // Gold Color Hack
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242-pn1.p1", 0x000000, 0x100000, CRC(61ac868a) SHA1(26577264aa72d6af272952a876fcd3775f53e3fa) )
+ ROM_LOAD16_WORD_SWAP( "242gold.p2", 0x100000, 0x400000, CRC(c0f6802d) SHA1(f86c141efe454e949cb28585f1e88088b3894b16) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98hk ) // Hakeshu
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242hk.p1", 0x000000, 0x100000, CRC(701423b1) SHA1(3f062282ef119800ee7e0a7dc8e7fdbc1de69edb) )
+ ROM_LOAD16_WORD_SWAP( "242hk.p2", 0x100000, 0x400000, CRC(8fe4e5ae) SHA1(247c5eded83c1b59ec601a4be98fd88edc1ae4ac) )
+
+ NEO_SFIX_128K( "242cos.s1", CRC(554c4b66) SHA1(0fa53c7433ed4b66515890ad0526f292ae88c7ad) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cos2.c1", 0x0000000, 0x800000, CRC(96762b9a) SHA1(5d62188c1a4816b6cd5001b618d695597c9b61a6) )
+ ROM_LOAD16_BYTE( "242cos2.c2", 0x0000001, 0x800000, CRC(e7617290) SHA1(371441d1f204e83783a2a5c0e86d1a3968e0892d) )
+ ROM_LOAD16_BYTE( "242hk.c3", 0x1000000, 0x800000, CRC(3a731ff6) SHA1(bf1dedd95b4f387f474b38118763722f1e45a135) )
+ ROM_LOAD16_BYTE( "242hk.c4", 0x1000001, 0x800000, CRC(ba6b4f20) SHA1(adfca3d095a0d5f25f223263c9c241d029ba000f) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242chris.c7", 0x3000000, 0x800000, CRC(5ef4d3c3) SHA1(312cc9aa1c4657b7bc745348f3bac7476ef3c894) )
+ ROM_LOAD16_BYTE( "242chris.c8", 0x3000001, 0x800000, CRC(d8b5d903) SHA1(3c5f0cf4b7cec79a81ad3af8cafeca2a14509995) )
+ROM_END
+
+ROM_START( kof98ice ) /* The King of Fighters '98 - Colour fix by Diablo_Hu - (Colour change - ice) */
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242-p1.p1", 0x000000, 0x200000, CRC(8893df89) SHA1(0452828785110601c65f667209fc2d2926cd3751) )
+ ROM_LOAD16_WORD_SWAP( "242ice.p2", 0x200000, 0x400000, CRC(43449225) SHA1(0ac7154ecee354e9c9a3fde27ec195062e6f3cee) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98ico ) /* [OLD] The King of Fighters '98 - Colour fix by Diablo_Hu - (Colour change - ice) */
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242-p1.p1", 0x000000, 0x200000, CRC(8893df89) SHA1(0452828785110601c65f667209fc2d2926cd3751) )
+ ROM_LOAD16_WORD_SWAP( "242ico.p2", 0x200000, 0x400000, CRC(7d018eab) SHA1(cea90992777ffe43d3921a4c0151b371c63bc204) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98iori ) // Iori Special Hack by Qiou2719 (13-02-10)
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242iori.p1", 0x000000, 0x100000, CRC(ba59819e) SHA1(afcc1dadec63563d0c4de20871d972d251fbbaba) )
+ ROM_LOAD16_WORD_SWAP( "242iori.p2", 0x100000, 0x400000, CRC(273e2232) SHA1(123c5541b21fcbaa85f3a687d9c738b083ab7b9e) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242evl.c1", 0x0000000, 0x800000, CRC(e7f6e015) SHA1(c7efac1dee18e1f29a1d80ef5be5574cb12c2d6c) )
+ ROM_LOAD16_BYTE( "242evl.c2", 0x0000001, 0x800000, CRC(8c2dfa52) SHA1(2ba4235abf78e360129b6d5643889ccb3155cb30) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242sp2.c5", 0x2000000, 0x800000, CRC(7e98340a) SHA1(35881c2a3e4025a7a18d85d80ba5ec91e33cddc7) )
+ ROM_LOAD16_BYTE( "242sp2.c6", 0x2000001, 0x800000, CRC(4adce5a2) SHA1(a6d4549db97584c529ac728e1f239f6168b77c6b) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98izh ) // multijet
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242-p1.p1", 0x000000, 0x200000, CRC(8893df89) SHA1(0452828785110601c65f667209fc2d2926cd3751) )
+ ROM_LOAD16_WORD_SWAP( "242izh.p2", 0x200000, 0x400000, CRC(a1dc47bf) SHA1(5cab964df8ac80ee0f78daa0a9f5835fe2fb542c) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98jh ) /* The King of Fighters '98 - Enhance by Jason/K3 and Ydmis - (Secret character enable for Rugal - Athena style change) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242jh.p1", 0x000000, 0x100000, CRC(238ed528) SHA1(9f0155cf298886842cd20d5a797a057889e65e04) )
+ ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98k95 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242k95.p1", 0x000000, 0x100000, CRC(f3e75f06) SHA1(ac5c848030a50da9d96f2e974f50f6fb6e7152ba) )
+ ROM_LOAD16_WORD_SWAP( "242k95.p2", 0x100000, 0x400000, CRC(417e154f) SHA1(6dfad87d49ea14a25844746179e82bd47bca6a8d) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242k95.c7", 0x3000000, 0x800000, CRC(936ee534) SHA1(f447da4b0dc2f36ee72305a9cdd6726b87b819b5) )
+ ROM_LOAD16_BYTE( "242k95.c8", 0x3000001, 0x800000, CRC(b874ead0) SHA1(0f16e017fcb05a6cc4ffd18c50a857bd31e71cc4) )
+ROM_END
+
+ROM_START( kof98klc ) // Hack of Ivex combo 20090923
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242cii23.p1", 0x000000, 0x100000, CRC(35cbbaa7) SHA1(e9d773b24d999ad55c3813e627836e4d91f239f6) )
+ ROM_LOAD16_WORD_SWAP( "242klc.p2", 0x100000, 0x400000, CRC(5d10ed32) SHA1(974622115a7d157259b5e4f2a18ede14ebe6c5e4) )
+
+ NEO_SFIX_128K( "242klc.s1", CRC(30441357) SHA1(87e4a0e003092044a13a84b18a7a25026aca4d43) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242co.c1", 0x0000000, 0x800000, CRC(2a4eea4f) SHA1(dd29f64715392ed44507849c25dbcf7a30547899) )
+ ROM_LOAD16_BYTE( "242co.c2", 0x0000001, 0x800000, CRC(76368d7d) SHA1(aa7d7313985bcc275520aedfa451f99545dd1927) )
+ ROM_LOAD16_BYTE( "242co.c3", 0x1000000, 0x800000, CRC(93f80804) SHA1(b320b6b5222801ffbc55b8b0862fb5386520817f) )
+ ROM_LOAD16_BYTE( "242co.c4", 0x1000001, 0x800000, CRC(d4f9a578) SHA1(86f2d4f2fb60259d84a31af40cb0074930a37476) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98lb )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242lb.p1", 0x000000, 0x100000, CRC(da7c4acc) SHA1(a99133c37ceb07c7fe5f0d821488b26d85351bc8) )
+ ROM_LOAD16_WORD_SWAP( "242lb.p2", 0x100000, 0x400000, CRC(ec048f7b) SHA1(9af19079461c8a05817de064b13801e79c7f528b) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242sp.c7", 0x3000000, 0x800000, CRC(35839069) SHA1(830dcc84f91ef5498019604fecd9a8db1e3e22a9) )
+ ROM_LOAD16_BYTE( "242sp.c8", 0x3000001, 0x800000, CRC(9744d47f) SHA1(8a7057a99f6cbc9707f10feb64192716cf6df151) )
+ROM_END
+
+ROM_START( kof98lv )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242lv.p1", 0x000000, 0x100000, CRC(bf81f196) SHA1(e92b86844b0c5f77327b0f51b24c60db664bf70d) )
+ ROM_LOAD16_WORD_SWAP( "242lv.p2", 0x100000, 0x400000, CRC(c9ade63f) SHA1(bf4cc7dd3cff29d8b3bd5b5bf1cdcd42021233e3) )
+
+ NEO_SFIX_128K( "242lv.s1", CRC(c6d05b6b) SHA1(787e4f8db203ce380d4ec5e911ac438f356e8c31) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242lv.c1", 0x0000000, 0x800000, CRC(835fa4e1) SHA1(72fdbc671204b46b90254c6d106d37c4ebaa0281) )
+ ROM_LOAD16_BYTE( "242lv.c2", 0x0000001, 0x800000, CRC(e2ef9582) SHA1(3b53d7137b461019a7ff0b0646130e8c49b752f7) )
+ ROM_LOAD16_BYTE( "242cos2.c3", 0x1000000, 0x800000, CRC(21a545b4) SHA1(90e29b07034fa7c03ec366fd716bc6e60849102f) )
+ ROM_LOAD16_BYTE( "242cos2.c4", 0x1000001, 0x800000, CRC(21adcb7b) SHA1(70c6ccef09349747a751da2e74700cc54ba9741f) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242lv.c7", 0x3000000, 0x800000, CRC(7786c5bf) SHA1(baad4060949a886e89502ea1711cf1739071dc17) )
+ ROM_LOAD16_BYTE( "242lv.c8", 0x3000001, 0x800000, CRC(5f8a130b) SHA1(3e93a22f165dc3bd2cc02abb19951117f45d6022) )
+ROM_END
+
+ROM_START( kof98m )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242m.p1", 0x000000, 0x100000, CRC(4ebfc026) SHA1(70dfe1522d8f6aa64ba0ec1ce5021db40fe67403) )
+ ROM_LOAD16_WORD_SWAP( "242m.p2", 0x100000, 0x400000, CRC(45430595) SHA1(523218c133eabba081ff1aed59860addf9ebc009) )
+
+ NEO_SFIX_128K( "242-s1.bin", CRC(935d55a4) SHA1(5bca2169dd64e4f4d71220ac59f0d5be50e35e0b) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x5000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242m.c7", 0x3000000, 0x800000, CRC(924a1e4b) SHA1(6de2c48b63cab647bca5d554a01d6a39c24924dc) )
+ ROM_LOAD16_BYTE( "242m.c8", 0x3000001, 0x800000, CRC(fa1cfd45) SHA1(1922cf380f8d61770080cc0d7bc7727b78509384) )
+ ROM_LOAD16_BYTE( "242m.c9", 0x4000000, 0x800000, CRC(cad3eae8) SHA1(39557e0f559761b60e03062d99251b1056ecd8db) )
+ ROM_LOAD16_BYTE( "242m.c10", 0x4000001, 0x800000, CRC(930f41f8) SHA1(6e0349f9fe622890bc0111c8a554f67909cd810f) )
+ROM_END
+
+ROM_START( kof98mev ) // all confirmed
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242mev.p1", 0x000000, 0x100000, CRC(d1a6a8be) SHA1(0197f00b5ac2452e8b8b5597c4edf98509ae14be) )
+ ROM_LOAD16_WORD_SWAP( "242mev.p2", 0x100000, 0x400000, CRC(73d3505d) SHA1(74f581aa2fdc968b403fc19c2b719aa12177ba42) )
+
+ NEO_SFIX_128K( "242mev.s1", CRC(9acd571d) SHA1(a3520208766e65ae8e0c7cd0977794098974ff18) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x5000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242mix.c7", 0x3000000, 0x800000, CRC(374eb904) SHA1(060ccdca943b6493890c9e42eacf943cf4acc100) )
+ ROM_LOAD16_BYTE( "242mix.c8", 0x3000001, 0x800000, CRC(eddd2789) SHA1(e1fe8238ed51ee328d8c7eebb58fa6230b9e48c5) )
+ ROM_LOAD16_BYTE( "242mev.c9", 0x4000000, 0x800000, CRC(1823dfa3) SHA1(f9f16465ec7564a812fb093d12adcba5f4660d85) )
+ ROM_LOAD16_BYTE( "242mev.c10", 0x4000001, 0x800000, CRC(6a04ab8c) SHA1(4c000e595cab2749bbee26b45527f5a7b573dfbc) )
+ROM_END
+
+ROM_START( kof98mix ) // 2011-10-01 version
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242mix.p1", 0x000000, 0x100000, CRC(4a0525b1) SHA1(14c0356fd63ba55040b1f744f3b4450bfbf32a93) )
+ ROM_LOAD16_WORD_SWAP( "242mix.p2", 0x100000, 0x400000, CRC(75aeef82) SHA1(5fdd52b88160ef670e1e5b592967db4e1ae8f407) )
+
+ NEO_SFIX_128K( "242mix.s1", CRC(07999beb) SHA1(e72372ca3c43083f39a9e0279af0f64d0994e9ba) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x5000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242mix.c7", 0x3000000, 0x800000, CRC(374eb904) SHA1(060ccdca943b6493890c9e42eacf943cf4acc100) )
+ ROM_LOAD16_BYTE( "242mix.c8", 0x3000001, 0x800000, CRC(eddd2789) SHA1(e1fe8238ed51ee328d8c7eebb58fa6230b9e48c5) )
+ ROM_LOAD16_BYTE( "242mix.c9", 0x4000000, 0x800000, CRC(83ef6611) SHA1(c65415d1933e6d2c19265047a22172d46484d900) )
+ ROM_LOAD16_BYTE( "242mix.c10", 0x4000001, 0x800000, CRC(c22c67f8) SHA1(4f4bc61af37a2a14fa059785a0de0e82078b89e5) )
+ROM_END
+
+ROM_START( kof98nc )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242nc.p1", 0x000000, 0x100000, CRC(a9ebe406) SHA1(7c72271ae2da41547d06fb244c245760c32c0259) )
+ ROM_LOAD16_WORD_SWAP( "242cd.p2", 0x100000, 0x400000, CRC(5e4405b2) SHA1(f503c52c1ddec204c498351aae52528ccfe6ab6c) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242nc.c1", 0x0000000, 0x800000, CRC(6b458741) SHA1(a2157247763fae325ef0fcd93bc72df6dfd4fa33) )
+ ROM_LOAD16_BYTE( "242cd.c2", 0x0000001, 0x800000, CRC(3723515e) SHA1(a2f0ae12cdd10e74a19188d774e833eb8501f20c) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98ncdh )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242ncdh.p1", 0x000000, 0x100000, CRC(6cd3c533) SHA1(5d7b223e394930345f3988e13dd268233ab43b70) )
+ ROM_LOAD16_WORD_SWAP( "242ncdh.p2", 0x100000, 0x400000, CRC(5e05df14) SHA1(1bd1729d15a29f9cfba79d90b690d53467cec790) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242ncdh.c7", 0x3000000, 0x800000, CRC(a5747386) SHA1(2e0dc5f1edef45bd1028c02d1b2882102fb3c454) )
+ ROM_LOAD16_BYTE( "242ncdh.c8", 0x3000001, 0x800000, CRC(80bb019f) SHA1(5beff8332b9ba4b839da0e07e992caab84df5d9e) )
+ROM_END
+
+ROM_START( kof98new )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242new.p1", 0x000000, 0x100000, CRC(f9a22b2f) SHA1(730e9ae8391d8fa70141c5d73479cf9cff91a672) )
+ ROM_LOAD16_WORD_SWAP( "242new.p2", 0x100000, 0x400000, CRC(5c650818) SHA1(7b3a0d5a4448de3d3e010e7ce5b521d3bf008a08) )
+
+ NEO_SFIX_128K( "242cos.s1", CRC(554c4b66) SHA1(0fa53c7433ed4b66515890ad0526f292ae88c7ad) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242new.c3", 0x1000000, 0x800000, CRC(3e554882) SHA1(c2a0dd3621180e9aae0f41adb46ea7fcce0764e8) )
+ ROM_LOAD16_BYTE( "242new.c4", 0x1000001, 0x800000, CRC(e9e0f676) SHA1(4b46dc18b9ce502097e615c9c236ca0ac5b280e0) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242sp.c7", 0x3000000, 0x800000, CRC(35839069) SHA1(830dcc84f91ef5498019604fecd9a8db1e3e22a9) )
+ ROM_LOAD16_BYTE( "242sp.c8", 0x3000001, 0x800000, CRC(9744d47f) SHA1(8a7057a99f6cbc9707f10feb64192716cf6df151) )
+ROM_END
+
+ROM_START( kof98pjc ) /* The King of Fighters '98 - Colour fix by TcwLee - (Character colour change) */
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242-p1.p1", 0x000000, 0x200000, CRC(8893df89) SHA1(0452828785110601c65f667209fc2d2926cd3751) )
+ ROM_LOAD16_WORD_SWAP( "242pjc.p2", 0x200000, 0x400000, CRC(d7e4ca54) SHA1(b325f46494b31ce5a1ad7cdfae6c25ad7d061d23) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98rh ) /* The King of Fighters '98 - Hack by Raymonose - (Style change) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242rh.p1", 0x000000, 0x100000, CRC(f3cf5e74) SHA1(aac4a1f355bb2b0f45030fafd8e0360b7990540a) )
+ ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98rh1 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242rh1.p1", 0x000000, 0x100000, CRC(87e30f4e) SHA1(68d776bfb8b4a017d9853ead31b643930cb0486a) )
+ ROM_LOAD16_WORD_SWAP( "242rh1.p2", 0x100000, 0x400000, CRC(8196b644) SHA1(b0c2fbe2874c58eb8d5955faa0f6c1b26390666b) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98rl )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242rl.p1", 0x000000, 0x100000, CRC(cb209c51) SHA1(62023af00595e1921ff2e076ec6b39226e094a14) )
+ ROM_LOAD16_WORD_SWAP( "242rl.p2", 0x100000, 0x400000, CRC(404ef576) SHA1(ab0d85d033f4102f7b5181661cc08d676173fc14) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242sp.c7", 0x3000000, 0x800000, CRC(35839069) SHA1(830dcc84f91ef5498019604fecd9a8db1e3e22a9 ) )
+ ROM_LOAD16_BYTE( "242sp.c8", 0x3000001, 0x800000, CRC(9744d47f) SHA1(8a7057a99f6cbc9707f10feb64192716cf6df151 ) )
+ROM_END
+
+ROM_START( kof98rm ) /* The King of Fighters '98 - Remix by Raymonose - (Character move change) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242rm.p1", 0x000000, 0x100000, CRC(6232a4e8) SHA1(56f1e69f3e16992d956f33b48478af3e56cb8c96) )
+ ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98rsa ) // multijet
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242rsa.p1", 0x000000, 0x200000, CRC(7ccbd666) SHA1(4d338cd055893234040b550c17ddca465239e849) )
+ ROM_LOAD16_WORD_SWAP( "242rsa.p2", 0x200000, 0x400000, CRC(bb80b351) SHA1(da0f7d9b021269064c82fd6c06e66e8202f47862) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98rup ) // multijet
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242rup.p1", 0x000000, 0x100000, CRC(daeeae3c) SHA1(a24c87b414b1ba34227b939f5eeaee34ea5a6393) )
+ ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98seh ) /* The King of Fighters '98 - Super Enhance Hack by Creamymami and Ydmis - (Ultra kill start is max in Advanced Mode - ultra power hack ABC) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242seh.p1", 0x000000, 0x100000, CRC(4684eda8) SHA1(0987bd16a9246a34046183cc06d543224aaf2e31) )
+ ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98seho ) /* The King of Fighters '98 - Super Enhance Hack by Ydmis - (Ultra kill start is max in Advanced Mode - power hack ABC) (Old) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242seho.p1", 0x000000, 0x100000, CRC(86c9d1e6) SHA1(cfd987ee06e07528ad53f4107f3cf6771f401a5a) )
+ ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98sof )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242sof.p1", 0x000000, 0x115470, CRC(b1619062) SHA1(ddf3d90e6484c33b86cc5eb0c96e989bc9a75dcc) )
+ ROM_LOAD16_WORD_SWAP( "242sof.p2", 0x100000, 0x400000, CRC(d3b724e0) SHA1(8fe6b39abb3300ab17ef00c7e2093e9a7cabd31d) )
+
+ NEO_SFIX_128K( "242sof.s1", CRC(7cfe20af) SHA1(80e23884e0e30a990da73853eaf6570cdf4b611f) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242evl.c1", 0x0000000, 0x800000, CRC(e7f6e015) SHA1(c7efac1dee18e1f29a1d80ef5be5574cb12c2d6c) )
+ ROM_LOAD16_BYTE( "242evl.c2", 0x0000001, 0x800000, CRC(8c2dfa52) SHA1(2ba4235abf78e360129b6d5643889ccb3155cb30) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98sp )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242sp.p1", 0x000000, 0x100000, CRC(058127d8) SHA1(9dd6e5a34d69670ef84fa6186e0001c7adb05a52) )
+ ROM_LOAD16_WORD_SWAP( "242sp.p2", 0x100000, 0x400000, CRC(c3dd89f7) SHA1(6aef3c92688a2af4e63165a92555258954a9da94) )
+
+ NEO_SFIX_128K( "242sp.s1", CRC(9ccbae05) SHA1(f89dcce6a804b86e0f7362df7c16c7a4a978ee62) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242sp.c7", 0x3000000, 0x800000, CRC(35839069) SHA1(830dcc84f91ef5498019604fecd9a8db1e3e22a9 ) )
+ ROM_LOAD16_BYTE( "242sp.c8", 0x3000001, 0x800000, CRC(9744d47f) SHA1(8a7057a99f6cbc9707f10feb64192716cf6df151 ) )
+ROM_END
+
+ROM_START( kof98sp2 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242sp2.p1", 0x000000, 0x100000, CRC(ce56bf36) SHA1(2f8b28b4e35c74f6ce9976186fe004a4daf0def2) )
+ ROM_LOAD16_WORD_SWAP( "242sp2.p2", 0x100000, 0x400000, CRC(bec83808) SHA1(bcdae4c9493ce7595fa3315cc02e2da7e434a14f) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242sp2.c1", 0x0000000, 0x800000, CRC(3c4458cc) SHA1(0869f72a9d7226b19ffea5108f618d0f62c01291) )
+ ROM_LOAD16_BYTE( "242sp2.c2", 0x0000001, 0x800000, CRC(f060b0f4) SHA1(b4230c5c8dd35c0907b7c7d23f964051e6c24723) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242sp2.c5", 0x2000000, 0x800000, CRC(7e98340a) SHA1(35881c2a3e4025a7a18d85d80ba5ec91e33cddc7) )
+ ROM_LOAD16_BYTE( "242sp2.c6", 0x2000001, 0x800000, CRC(4adce5a2) SHA1(a6d4549db97584c529ac728e1f239f6168b77c6b) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98sr )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242sr.p1", 0x000000, 0x100000, CRC(63ee75b8) SHA1(d4443b97bbbae428992b8577369c9b82e008b95c) )
+ ROM_LOAD16_WORD_SWAP( "242sr.p2", 0x100000, 0x400000, CRC(44695e4d) SHA1(4194e9da6a93192c26b32532252e5bd5275b8a10) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242nc.c1", 0x0000000, 0x800000, CRC(6b458741) SHA1(a2157247763fae325ef0fcd93bc72df6dfd4fa33) )
+ ROM_LOAD16_BYTE( "242cd.c2", 0x0000001, 0x800000, CRC(3723515e) SHA1(a2f0ae12cdd10e74a19188d774e833eb8501f20c) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242sr.c7", 0x3000000, 0x800000, CRC(bf1810e5) SHA1(03eed63bad855b00a666332982e2933685eaf740) )
+ ROM_LOAD16_BYTE( "242sr.c8", 0x3000001, 0x800000, CRC(7919b330) SHA1(fd7cc8360307ba8527e3c596c4412df5eed42b3f) )
+ROM_END
+
+ROM_START( kof98sv ) // multijet
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242-p1.p1", 0x000000, 0x200000, CRC(8893df89) SHA1(0452828785110601c65f667209fc2d2926cd3751) )
+ ROM_LOAD16_WORD_SWAP( "242sv.p2", 0x200000, 0x400000, CRC(a7854dbd) SHA1(db414679899e6b45db54c4b24ffa688fa01eac22) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98tim )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242tim.p1", 0x000000, 0x100000, CRC(dbd6ab5a) SHA1(b4f1fe9feebc063c90ebc2b401d1590ddeb6fe3d) )
+ ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98ul )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242ul.p1", 0x000000, 0x100000, CRC(4a4cf2f4) SHA1(7bf35c9cbb86d4335902abd6606c48eed8813f5c) )
+ ROM_LOAD16_WORD_SWAP( "242ul.p2", 0x100000, 0x400000, CRC(b821e275) SHA1(89df56bcd5da6a75f4e2c7fc8d859994933d26db) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98ur )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242ur.p1", 0x000000, 0x100000, CRC(8c41b391) SHA1(fef64fc10d95c5e4eeeac758f3f2d3ccacb3899b) )
+ ROM_LOAD16_WORD_SWAP( "242ur.p2", 0x100000, 0x400000, CRC(6a48c7bc) SHA1(0791092ecf87678758549e49f8d5d53a5e66eeb4) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98urf )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242urf.p1", 0x000000, 0x100000, CRC(e1960b0f) SHA1(ea6516a0e93d35c63f3dabdb8b785531304ad807) )
+ ROM_LOAD16_WORD_SWAP( "242urf.p2", 0x100000, 0x400000, CRC(cde0fa91) SHA1(da56d2e6e2095a0c3d3682acebef9a4790828424) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98wh ) /* The King of Fighters '98 - Hack by Wesker - (Style change for Kyo to 95' Kyo) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242wh.p1", 0x000000, 0x100000, CRC(0c24ce14) SHA1(8bc889b16803c912640c39305a95812aed4e4323) )
+ ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98wh1 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242wh1.p1", 0x000000, 0x100000, CRC(676650af) SHA1(7f7650c83a46625d34654f303b17aaa43032c225) )
+ ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98wh2 ) /* The King of Fighters '98 N - (kof98wh2) - Hack by Wesker - (Style change for Kyo to 95' Kyo, Iori and Rugal) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242wh2.p1", 0x000000, 0x100000, CRC(63267ea9) SHA1(fb82a8519cf5d164a9456f9f11aca36243b76f62) )
+ ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98xi )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242xi.p1", 0x000000, 0x100000, CRC(8cd47f05) SHA1(db19d8457d4ac250b102d8af50d1d1b676997c60) )
+ ROM_LOAD16_WORD_SWAP( "242xi.p2", 0x100000, 0x400000, CRC(8dcf495d) SHA1(9cafdaaad215f8f912b93a0ba7fa1fb8a4d20ece) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242xi.c5", 0x2000000, 0x800000, CRC(d4e28d5f) SHA1(bd93278bb610565f24d468f596121ae1dd7d2686) )
+ ROM_LOAD16_BYTE( "242xi.c6", 0x2000001, 0x800000, CRC(fcfa6e58) SHA1(14da7d42692da09ed4d489459270bd83fe83cf4a) )
+ ROM_LOAD16_BYTE( "242xi.c7", 0x3000000, 0x800000, CRC(960f0df4) SHA1(0bf8381d14be1fe16ffc122df0f49a425cfef9bc) )
+ ROM_LOAD16_BYTE( "242xi.c8", 0x3000001, 0x800000, CRC(f1eab90b) SHA1(224f829bbc75d51f1152e16e60e58951c62d188c) )
+ROM_END
+
+ROM_START( kof98y ) /* The King of Fighters '98 - Hack by Ydmis - (Secret character enable for Rugal) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242y.p1", 0x000000, 0x100000, CRC(20848b37) SHA1(eb44baa6f273d6ab596204f89427078343c0ace5) )
+ ROM_LOAD16_WORD_SWAP( "242y.p2", 0x100000, 0x400000, CRC(3ae6a0b6) SHA1(d3fb3d24da69d590095b183ce5eb5715e0d46e96) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98yh ) /* The King of Fighters '98 - Enhance by Ydmis - (Secret character enable for Rugal - power hack ABC in Extra Mode) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242yh.p1", 0x000000, 0x100000, CRC(4ee6f162) SHA1(66036540d459268198c556397db3ab3c175165a4) )
+ ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98zy ) // multijet
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242-p1.p1", 0x000000, 0x200000, CRC(8893df89) SHA1(0452828785110601c65f667209fc2d2926cd3751) )
+ ROM_LOAD16_WORD_SWAP( "242zy.p2", 0x200000, 0x400000, CRC(b258c011) SHA1(77045b46b079099d84eeb0b2ea518fa7988bde2f) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+
+
+GAME( 1998, kof98aas, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 (Asamiya Athena 99 Style)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, kof98ae, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 Anniversary Edition", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 2009, kof98ae0, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 Anniversary Edition (set 0)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 2009, kof98ae1, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGHT", "Kof'98 Anniversary Edition (set 1)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 2009, kof98ae2, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGHT", "Kof'98 Anniversary Edition (set 2)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 2009, kof98ae3, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGHT", "Kof'98 Anniversary Edition (set 3)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof98ae20160308,kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGHT", "Kof'98 Anniversary Edition (2016-03-08)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof98ae20160827,kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGHT", "Kof'98 Anniversary Edition (2016-08-27)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98bge, kof98, neogeo_noslot, neogeo, neogeo_noslot_state, kof98, ROT0, "hack", "Kof'98 (Boss Gold Edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 2006, kof98bh, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 (Boss Hack 2006)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, kof98bvi, kof98, neogeo_noslot, neogeo, neogeo_noslot_state, kof98, ROT0, "hack", "Kof'98 (Blocking Version hack by Ivex 2009-05-31)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // crashes in first demo
+GAME( 2006, kof98c2006, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo 2006", MACHINE_SUPPORTS_SAVE )
+GAME( 2006, kof98c20060214, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2006-02-14)", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, kof98c20070720, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2007-07-20)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // sometimes reboots itself
+GAME( 2007, kof98c20070923, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2007-09-23)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // sometimes reboots itself
+GAME( 2008, kof98c20080330, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2008-03-30)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // sometimes reboots itself
+GAME( 2008, kof98c20080524, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2008-05-24)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // sometimes reboots itself
+GAME( 2008, kof98c20080616, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2008-06-16)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // sometimes reboots itself
+GAME( 2008, kof98c20080712, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2008-07-12)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // sometimes reboots itself
+GAME( 2009, kof98c20090620, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2009-06-20)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // sometimes reboots itself
+GAME( 2009, kof98c20090923, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2009-09-23)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // sometimes reboots itself
+GAME( 2010, kof98c20100214, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2010-02-14)", MACHINE_SUPPORTS_SAVE )
+GAME( 2010, kof98c20100304, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2010-03-04)", MACHINE_SUPPORTS_SAVE )
+GAME( 2011, kof98c20110114, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2011-01-14)", MACHINE_SUPPORTS_SAVE )
+GAME( 2011, kof98c20110314, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2011-03-14)", MACHINE_SUPPORTS_SAVE )
+GAME( 2012, kof98c20120116, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2012-01-16)", MACHINE_SUPPORTS_SAVE )
+GAME( 2012, kof98c20120915, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2012-09-15)", MACHINE_SUPPORTS_SAVE )
+GAME( 2013, kof98c20130213, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2013-02-13)", MACHINE_SUPPORTS_SAVE )
+GAME( 2013, kof98c20130311, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2013-03-19)", MACHINE_SUPPORTS_SAVE )
+GAME( 2013, kof98c20130509, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2013-05-09)", MACHINE_SUPPORTS_SAVE )
+GAME( 2013, kof98c20130528, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2013-05-30)", MACHINE_SUPPORTS_SAVE )
+GAME( 2013, kof98c20130617, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2013-06-17)", MACHINE_SUPPORTS_SAVE )
+GAME( 2013, kof98c20130808, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2013-08-08)", MACHINE_SUPPORTS_SAVE )
+GAME( 2013, kof98c20130820, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2013-08-20)", MACHINE_SUPPORTS_SAVE )
+GAME( 2013, kof98c20131113, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2013-11-13)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, kof98c20140101, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-01-01)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, kof98c20140110, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-01-10)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, kof98c20140118, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-01-18)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, kof98c20140204, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-02-04)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, kof98c20140213, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-02-13)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, kof98c20140217, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-02-17)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, kof98c20140228, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-02-28)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, kof98c20140302, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-03-02)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, kof98c20140310, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-03-10)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, kof98c20140317, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-03-17)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, kof98c20140403, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-04-03)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, kof98c20140412, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-04-12)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, kof98c20140416, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-04-16)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, kof98c20140419, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-04-19)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, kof98c20140428, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-04-28)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, kof98c20140504, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-05-04)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, kof98c20140524, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-05-24)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, kof98c20140606, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-06-06)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, kof98c20140620, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-06-20)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, kof98c20140717, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-07-17)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, kof98c20140809, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-08-09)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, kof98c20140816, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-08-16)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, kof98c20140824, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-08-24)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, kof98c20140906, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-09-06)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, kof98c20140924, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-09-24)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, kof98c20141002, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-10-02)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, kof98c20141020, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2014-10-20)", MACHINE_SUPPORTS_SAVE )
+GAME( 2015, kof98c20150201, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2015-02-01)", MACHINE_SUPPORTS_SAVE )
+GAME( 2015, kof98c20150228, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2015-02-28)", MACHINE_SUPPORTS_SAVE )
+GAME( 2015, kof98c20150302, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2015-03-02)", MACHINE_SUPPORTS_SAVE )
+GAME( 2015, kof98c20150310, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2015-03-10)", MACHINE_SUPPORTS_SAVE )
+GAME( 2015, kof98c20150330, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2015-03-30)", MACHINE_SUPPORTS_SAVE )
+GAME( 2015, kof98c20150528, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2015-05-28)", MACHINE_SUPPORTS_SAVE )
+GAME( 2015, kof98c20150614, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2015-06-14)", MACHINE_SUPPORTS_SAVE )
+GAME( 2015, kof98c20150705, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2015-07-05)", MACHINE_SUPPORTS_SAVE )
+GAME( 2015, kof98c20150729, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2015-07-29)", MACHINE_SUPPORTS_SAVE )
+GAME( 2015, kof98c20150827, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2015-08-27)", MACHINE_SUPPORTS_SAVE )
+GAME( 2015, kof98c20151103, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2015-11-03)", MACHINE_SUPPORTS_SAVE )
+GAME( 2015, kof98c20151108, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2015-11-08)", MACHINE_SUPPORTS_SAVE )
+GAME( 2015, kof98c20151110, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2015-11-10)", MACHINE_SUPPORTS_SAVE )
+GAME( 2015, kof98c20151223, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2015-12-23)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof98c20160320, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2016-03-20)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof98c20160907, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2016-09-07)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98cd, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 (CD conversion)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98cd1, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGHT", "Kof'98 (NGCD v1.04f [EGHT])", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98cd2, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGHT", "Kof'98 (NGCD v1.04 (EGHT))", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof98ch, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Chase", "Kof'98 (Diff Moves 2003-05-03)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98ch1, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 (Chinese Translation hack set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof98chl, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "CHL", "Kof'98 (Diff Moves 2003-03-20)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98chris,kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 (Chris 2k2 Style)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98cn, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "FoxUU, Zuojie", "Kof'98 (Chinese Translation)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98cn1, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "FoxUU, Zuojie", "Kof'98 (Chinese Translation, hack of kof98y)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98cos, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Qiou2719", "Kof'98 (Cosmic)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98cos1, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Qiou2719", "Kof'98 (Cosmic 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98cos2, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Qiou2719", "Kof'98 (Cosmic 2.0)", MACHINE_SUPPORTS_SAVE )
+GAME( 2008, kof98cta, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo 10th Anniversary", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // sometimes reboots itself
+GAME( 1998, kof98dc, kof98, neogeo_noslot, neogeo, neogeo_noslot_state, kof98, ROT0, "Dodowang", "Kof'98 (Char color changed - Negative style)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98ecm, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 (Enhanced Chris Moves hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98ehr, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Raymonose", "Kof'98 (Diff Moves - Ultra kill start max in Adv Mode - Ultra pow hack ABC)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98evl, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 (Ultra Evolution Lite)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98evo, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 (Evolution)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98evo2, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 (Evolution Orochi Baozou Hack Set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98evr, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 (EVR)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98f, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 ('fake')", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, kof98fr, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Arkatrad", "Kof'98 (French 2004)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof98fro, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Arkatrad", "Kof'98 (French 2003)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof98fro2, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Arkatrad", "Kof'98 (French 2002)", MACHINE_SUPPORTS_SAVE )
+GAME( 2006, kof98frp, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Cigarette Patch", "Kof'98 Slutfest (French parody)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98fv, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 (Flash Revision)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98fv2, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 (Flash Version UK)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98gold, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 (Gold Color Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98hk, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 (Hakeshu)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98ice, kof98, neogeo_noslot, neogeo, neogeo_noslot_state, kof98, ROT0, "Diablo_Hu", "Kof'98 Ice", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98ico, kof98, neogeo_noslot, neogeo, neogeo_noslot_state, kof98, ROT0, "Diablo_Hu", "Kof'98 Ice (Old)", MACHINE_SUPPORTS_SAVE )
+GAME( 2010, kof98iori, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Qiou2719", "Kof'98 (Iori Special Hack by Qiou2719 (2010-02-13))", MACHINE_SUPPORTS_SAVE )
+GAME( 2008, kof98izh, kof98, neogeo_noslot, neogeo, neogeo_noslot_state, kof98, ROT0, "hack", "Kof'98 (Imitates Kof2002 Attacks Version hack by Zuojie 2008-12-24)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98jh, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Jason/K3 and Ydmis", "Kof'98 (Add Rugal - Athena style changed)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98k95, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 (EX KYO SP)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, kof98klc, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'98 Combo (2009-09-23)(Kalce combo mix)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // sometimes reboots itself
+GAME( 1998, kof98lb, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "LB70", "Kof'98 (hack by lb70)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, kof98lv, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 (Love Edition (2009-12-27))", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98m, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 MIX", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98mev, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 (MEV)", MACHINE_SUPPORTS_SAVE )
+GAME( 2011, kof98mix, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 Mix (2011-10-01)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98nc, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "FCHT", "Kof'98 (Neo-Geo CD 1.2 by Eddids from FCHT)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98ncdh, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Kof1996", "Kof'98 (CD to MVS Conversion hack by Kof1996)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98new, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 New Version", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98pjc, kof98, neogeo_noslot, neogeo, neogeo_noslot_state, kof98, ROT0, "TcwLee", "Kof'98 (Char color changed)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98rh, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Raymonose", "Kof'98 (Style changed)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98rh1, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "Kof'98 (Real Rugal Hack - Yashional)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98rl, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Risko", "Kof'98 (Relive by Risko)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98rm, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Raymonose", "Kof'98 (Diff Moves)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98rsa, kof98, neogeo_noslot, neogeo, neogeo_noslot_state, kof98, ROT0, "Wanglins", "Kof'98 (Ralf Special Attack hack by Wanglins)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98rup, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 (Ultimate Edition v1.0)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98seh, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami and Ydmis", "Kof'98 (Ultra kill start max in Adv Mode - Ultra pow hack ABC)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98seho, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Kof'98 (Ultra kill start max in Adv Mode - Pow hack ABC)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98sof, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 (Silver Omega Tributo a Fliperman)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98sp, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "ZWJ", "Kof'98 Super Plus (Hack by ZWJ)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98sp2, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "ZWJ", "Kof'98 Super Plus (Alternate Set, Hack by ZWJ)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98sr, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGHT", "Kof'98 SR ( EGHT )", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98sv, kof98, neogeo_noslot, neogeo, neogeo_noslot_state, kof98, ROT0, "hack", "Kof'98 (Silver Style Edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98tim, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGHT, Creamymami, Raymonose", "Kof'98 (Triple Impact Remix)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98ul, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 (Ultra Leona)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98ur, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "Kof'98 (Ultra Rugal)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98urf, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "Kof'98 (Ultra Rugal Final Version)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98wh, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker", "Kof'98 (Style changes for Kyo to 95' Kyo)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98wh1, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 (Remix BT Version)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98wh2, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker", "Kof'98 (Style changes for Kyo to 95' Kyo, Iori and Rugal)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98xi, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'98 (XI Flash Version (Jacky hack))", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98y, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Kof'98 (Add Rugal)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98yh, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Kof'98 (Add Rugal - Pow hack ABC in Extra Mode)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98zy, kof98, neogeo_noslot, neogeo, neogeo_noslot_state, kof98, ROT0, "hack", "Kof'98 (Purple Remix)", MACHINE_SUPPORTS_SAVE )
+
+
+ROM_START( kof98s01 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242hc01.p1", 0x000000, 0x100000, CRC(38318207) SHA1(c8735c09764ebde80acc687540f06a04bbfeeb7b) )
+ ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98s02 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242hc02.p1", 0x000000, 0x100000, CRC(13e5c878) SHA1(d7d7e43cc801bd50d69ac54242030e2dfc55bf57) )
+ ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98s03 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242hc03.p1", 0x000000, 0x100000, CRC(33b9016d) SHA1(cc6fc834aaef455369c03e13bf569f591e96f7aa) )
+ ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98s04 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242hc04.p1", 0x000000, 0x100000, CRC(a152e5e5) SHA1(1f5923ab218a44bd4fd483a5fc1c206c691b241e) )
+ ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98s05 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242hc05.p1", 0x000000, 0x100000, CRC(243cfbcf) SHA1(1f9a345dfc4177f882525636d07ec1d9aecdf969) )
+ ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98s06 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242hc06.p1", 0x000000, 0x100000, CRC(d9b45935) SHA1(2cb04513b713d9feaf52d36c212553c5dbf68756) )
+ ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98s07 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242hc07.p1", 0x000000, 0x100000, CRC(35c17143) SHA1(8c6475c9c5232717337fa5a5da849a3f60165c08) )
+ ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98s08 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242hc08.p1", 0x000000, 0x100000, CRC(fed35b63) SHA1(aa66beb0bd9c2926455603d17f9c24a6d8870ac3) )
+ ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98s09 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242hc09.p1", 0x000000, 0x100000, CRC(f4a03f55) SHA1(e5db0f35fe0d8c99b8bb4a2e077f585ce1c6467d) )
+ ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98s10 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242hc10.p1", 0x000000, 0x100000, CRC(4b4fe879) SHA1(6df485bd945d7b07661923a1fb15fcdfa6e45c35) )
+ ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98s11 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242hc11.p1", 0x000000, 0x100000, CRC(a1e1bac4) SHA1(47abaf15cbb4c1c8c8b57398e0dabc80d867a7da) )
+ ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98s12 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242hc12.p1", 0x000000, 0x100000, CRC(f468697c) SHA1(80ccee9798828258ae73f6ee9cb10882a64e4377) )
+ ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242hc12.c1", 0x0000000, 0x800000, CRC(94e42759) SHA1(f762b2cc6dd57073e558c7adbc4e1c7c7b663e9b) )
+ ROM_LOAD16_BYTE( "242hc12.c2", 0x0000001, 0x800000, CRC(d6d913a2) SHA1(ebdd2ca788f98c6b943923ea0350294e543d304d) )
+ ROM_LOAD16_BYTE( "242cos2.c3", 0x1000000, 0x800000, CRC(21a545b4) SHA1(90e29b07034fa7c03ec366fd716bc6e60849102f) )
+ ROM_LOAD16_BYTE( "242cos2.c4", 0x1000001, 0x800000, CRC(21adcb7b) SHA1(70c6ccef09349747a751da2e74700cc54ba9741f) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98s13 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242hc13.p1", 0x000000, 0x100000, CRC(78efe378) SHA1(5a5ccc425c248cc757aad36feeb5cb4d20d804fd) )
+ ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98s14 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242hc14.p1", 0x000000, 0x100000, CRC(c6c1cb51) SHA1(e40af64a3988a181b82220d32743f2071c4382d9) )
+ ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98s15 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242hc15.p1", 0x000000, 0x100000, CRC(4890b33d) SHA1(f3ddc3b435646537a8b0d030f847dfe3a7977810) )
+ ROM_LOAD16_WORD_SWAP( "242hc15.sp2", 0x100000, 0x400000, CRC(72db2bb5) SHA1(8bac5068ef6f243677248d702fd2926273b44c8e) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242hc12.c1", 0x0000000, 0x800000, CRC(94e42759) SHA1(f762b2cc6dd57073e558c7adbc4e1c7c7b663e9b) )
+ ROM_LOAD16_BYTE( "242hc12.c2", 0x0000001, 0x800000, CRC(d6d913a2) SHA1(ebdd2ca788f98c6b943923ea0350294e543d304d) )
+ ROM_LOAD16_BYTE( "242hc12.c3", 0x1000000, 0x800000, CRC(21a545b4) SHA1(90e29b07034fa7c03ec366fd716bc6e60849102f) )
+ ROM_LOAD16_BYTE( "242hc12.c4", 0x1000001, 0x800000, CRC(21adcb7b) SHA1(70c6ccef09349747a751da2e74700cc54ba9741f) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98s16 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242hc16.p1", 0x000000, 0x100000, CRC(237f3f5a) SHA1(5bb2d70a6c5db042df3ede7d12f2606afa66231e) )
+ ROM_LOAD16_WORD_SWAP( "242hc16.sp2", 0x100000, 0x400000, CRC(c1a1f82a) SHA1(76081ca0744e9ecc6c4f3617a4a7bc23ef8e9639) )
+
+ NEO_SFIX_128K( "242ldx.s1", CRC(d4a53f94) SHA1(8a9ead3cfd6a37f930a8a9bab3c9031d19f2810a) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98s17 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242hc17.p1", 0x000000, 0x100000, CRC(959e43cf) SHA1(bf4cd61f751208eb2cf5ac7bb2e67d971a51882f) )
+ ROM_LOAD16_WORD_SWAP( "242hc17.sp2", 0x100000, 0x400000, CRC(1ac1150e) SHA1(9affb39a68c6dbf65c6211457472ea552d56321e) )
+
+ NEO_SFIX_128K( "242co.s1", CRC(6017cf97) SHA1(6cb5267f3c4ea99f56154e2f5b6d961f1f7f58f6) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242co.c1", 0x0000000, 0x800000, CRC(2a4eea4f) SHA1(dd29f64715392ed44507849c25dbcf7a30547899) )
+ ROM_LOAD16_BYTE( "242co.c2", 0x0000001, 0x800000, CRC(76368d7d) SHA1(aa7d7313985bcc275520aedfa451f99545dd1927) )
+ ROM_LOAD16_BYTE( "242co.c3", 0x1000000, 0x800000, CRC(93f80804) SHA1(b320b6b5222801ffbc55b8b0862fb5386520817f) )
+ ROM_LOAD16_BYTE( "242co.c4", 0x1000001, 0x800000, CRC(d4f9a578) SHA1(86f2d4f2fb60259d84a31af40cb0074930a37476) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98s18 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242hc18.p1", 0x000000, 0x100000, CRC(6cc4f7cd) SHA1(9ffebea11d0b29fb3252c454e01ceb39449c72de) )
+ ROM_LOAD16_WORD_SWAP( "242cd.p2", 0x100000, 0x400000, CRC(5e4405b2) SHA1(f503c52c1ddec204c498351aae52528ccfe6ab6c) )
+
+ NEO_SFIX_128K( "242cos.s1", CRC(554c4b66) SHA1(0fa53c7433ed4b66515890ad0526f292ae88c7ad) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98s19 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242hc19.p1", 0x000000, 0x100000, CRC(8a7094e2) SHA1(0d2692c136976266145925b7cda5c75b821b7055) )
+ ROM_LOAD16_WORD_SWAP( "242hc15.sp2", 0x100000, 0x400000, CRC(72db2bb5) SHA1(8bac5068ef6f243677248d702fd2926273b44c8e) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98s20 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242hc20.p1", 0x000000, 0x100000, CRC(0ab6f9cb) SHA1(f5d6efbdbcf4fbbba0ec0dc180d0a1a1571ed7f3) )
+ ROM_LOAD16_WORD_SWAP( "242hc20.sp2", 0x100000, 0x400000, CRC(09e2d965) SHA1(2d9ce7664c5da3290574f524be5bb8524909e546) )
+
+ NEO_SFIX_128K( "242ldx.s1", CRC(d4a53f94) SHA1(8a9ead3cfd6a37f930a8a9bab3c9031d19f2810a) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242c2006.c1", 0x0000000, 0x800000, CRC(efc547b0) SHA1(badb1147729e187cc395ade357b49444e27810e5) )
+ ROM_LOAD16_BYTE( "242c2006.c2", 0x0000001, 0x800000, CRC(395ed6af) SHA1(543286e4f346f38c4866ab9a84080b6839d53412) )
+ ROM_LOAD16_BYTE( "242c2006.c3", 0x1000000, 0x800000, CRC(882e5246) SHA1(6cf81cd540a1511e085f2534511f8fa93f44d51f) )
+ ROM_LOAD16_BYTE( "242c2006.c4", 0x1000001, 0x800000, CRC(4f3f2123) SHA1(5cc61e82b0c7ee3d162c89262379f36f21ee5311) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98s21 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242hc21.p1", 0x000000, 0x100000, CRC(332a8f97) SHA1(28516c04769809df447b43b43bc07dc8fa316ca9) )
+ ROM_LOAD16_WORD_SWAP( "242hc21.sp2", 0x100000, 0x400000, CRC(1a499d32) SHA1(734b69cb80d4fd2af63a17cc7d73cc6792f0e4e0) )
+
+ NEO_SFIX_128K( "242cn1.s1", CRC(3b054e79) SHA1(4a56fa412065efb159f283f2bbab9f76e4160d85) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cn.c1", 0x0000000, 0x800000, CRC(40aceac9) SHA1(c9b7aee462e47bb70dc3644aa20b0698e7841ac1) )
+ ROM_LOAD16_BYTE( "242cn.c2", 0x0000001, 0x800000, CRC(3aa0b16b) SHA1(fbc063e85a6fa33ae189fe0e74ad53c6b29e3dd9) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98s22 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242hc22.p1", 0x000000, 0x100000, CRC(51c5c062) SHA1(2d62823294ed5cc0379bc56c58536cc9ec97be47) )
+ ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98s23 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242hc23.p1", 0x000000, 0x100000, CRC(756abacc) SHA1(58635190d33466de923ad547b6ca1d6bd30744e3) )
+ ROM_LOAD16_WORD_SWAP( "242hc23.sp2", 0x100000, 0x400000, CRC(8cef29c7) SHA1(4a5aa98dfb805cc48f2b36c0e4351d9eee219db4) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98s24 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242hc24.p1", 0x000000, 0x100000, CRC(549ffbc5) SHA1(3ba82d5effa58e547679f0b37062df34fd2b3a5d) )
+ ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98s25 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242hc25.p1", 0x000000, 0x100000, CRC(98ccf42c) SHA1(8bba1962617514af69b424ebbcfd1dbc434d6432) )
+ ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) )
+
+ NEO_SFIX_128K( "242ldx.s1", CRC(d4a53f94) SHA1(8a9ead3cfd6a37f930a8a9bab3c9031d19f2810a) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98s27 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242hc27.p1", 0x000000, 0x100000, CRC(7a30a5dd) SHA1(d51a04c732c03cedc0b8fe97f638782ea1702357) )
+ ROM_LOAD16_WORD_SWAP( "242hc27.sp2", 0x100000, 0x400000, CRC(030c2f56) SHA1(920785829b591bcb2e4b40deb06042bd40976df2) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242cli15.c1", 0x0000000, 0x800000, CRC(066db0a6) SHA1(ea200b79bf60d2d9a025da873173cc4704d254b0) )
+ ROM_LOAD16_BYTE( "242cli15.c2", 0x0000001, 0x800000, CRC(99d0b0fa) SHA1(b56813917de0c19858c13e51888b6af2030bc324) )
+ ROM_LOAD16_BYTE( "242cli15.c3", 0x1000000, 0x800000, CRC(35800c82) SHA1(8dc25967a2c9d21d4f6f34a40507f8d9e7f14d9f) )
+ ROM_LOAD16_BYTE( "242cli15.c4", 0x1000001, 0x800000, CRC(499e6d69) SHA1(728bb3a505e22df096a05dd978fff7702928eb83) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98s28 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242hc28.p1", 0x000000, 0x100000, CRC(655761ef) SHA1(df3486158b36053d04775aa51d28865dc6a50d18) )
+ ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98s29 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242hc29.p1", 0x000000, 0x100000, CRC(fb70481b) SHA1(a9c81380e91abd50e6ecc48d42a04eb4665853de) )
+ ROM_LOAD16_WORD_SWAP( "242hc38.sp2", 0x100000, 0x400000, CRC(e6f8851a) SHA1(a04261c2c765aefd7606905528b895ca86a34dcb) )
+
+ NEO_SFIX_128K( "242cfb14.s1", CRC(e19b7e13) SHA1(4c8e85ffb8e2f9dcc10e946a53ff84494950aed7) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98s30 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242hc30.p1", 0x000000, 0x100000, CRC(f83a8fa1) SHA1(4cf6dc8b11b40f1a081890181303334f0ceee438) )
+ ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98s31 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242hc31.p1", 0x000000, 0x100000, CRC(dd12f350) SHA1(1cc90ecad0786ebbf1f6249a02912153ad06144e) )
+ ROM_LOAD16_WORD_SWAP( "242evo.p2", 0x100000, 0x400000, CRC(65547465) SHA1(6f3d8bc995e2ef195e682885c050715a274913e7) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242sp.c7", 0x3000000, 0x800000, CRC(35839069) SHA1(830dcc84f91ef5498019604fecd9a8db1e3e22a9 ) )
+ ROM_LOAD16_BYTE( "242sp.c8", 0x3000001, 0x800000, CRC(9744d47f) SHA1(8a7057a99f6cbc9707f10feb64192716cf6df151 ) )
+ROM_END
+
+ROM_START( kof98s32 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242hc32.p1", 0x000000, 0x100000, CRC(bb1295cf) SHA1(3fffddc2e963780808a32ad5b69997b8a54017b8) )
+ ROM_LOAD16_WORD_SWAP( "242evo.p2", 0x100000, 0x400000, CRC(65547465) SHA1(6f3d8bc995e2ef195e682885c050715a274913e7) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242sp.c7", 0x3000000, 0x800000, CRC(35839069) SHA1(830dcc84f91ef5498019604fecd9a8db1e3e22a9 ) )
+ ROM_LOAD16_BYTE( "242sp.c8", 0x3000001, 0x800000, CRC(9744d47f) SHA1(8a7057a99f6cbc9707f10feb64192716cf6df151 ) )
+ROM_END
+
+ROM_START( kof98s33 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242hc33.p1", 0x000000, 0x100000, CRC(d2df15b6) SHA1(80396ce13474b9d426a3415ac9a82d815faa5485) )
+ ROM_LOAD16_WORD_SWAP( "242hc33.p2", 0x100000, 0x400000, CRC(d3806f71) SHA1(de7ab2965fff16c21461749d9dfa77d4e01fb37e) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242lv.c1", 0x0000000, 0x800000, CRC(835fa4e1) SHA1(72fdbc671204b46b90254c6d106d37c4ebaa0281) )
+ ROM_LOAD16_BYTE( "242lv.c2", 0x0000001, 0x800000, CRC(e2ef9582) SHA1(3b53d7137b461019a7ff0b0646130e8c49b752f7) )
+ ROM_LOAD16_BYTE( "242cos2.c3", 0x1000000, 0x800000, CRC(21a545b4) SHA1(90e29b07034fa7c03ec366fd716bc6e60849102f) )
+ ROM_LOAD16_BYTE( "242cos2.c4", 0x1000001, 0x800000, CRC(21adcb7b) SHA1(70c6ccef09349747a751da2e74700cc54ba9741f) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242lv.c7", 0x3000000, 0x800000, CRC(7786c5bf) SHA1(baad4060949a886e89502ea1711cf1739071dc17) )
+ ROM_LOAD16_BYTE( "242lv.c8", 0x3000001, 0x800000, CRC(5f8a130b) SHA1(3e93a22f165dc3bd2cc02abb19951117f45d6022) )
+ROM_END
+
+ROM_START( kof98s34 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242hc34.p1", 0x000000, 0x100000, CRC(cd36c4cb) SHA1(ce2961e376550caf48276b68dfa2966853d00d2e) )
+ ROM_LOAD16_WORD_SWAP( "242hc34.p2", 0x100000, 0x400000, CRC(389197d8) SHA1(d2d5691b8c7b00522f76d4e2fd88bf965b4e6e81) )
+
+ NEO_SFIX_128K( "242mix.s1", CRC(07999beb) SHA1(e72372ca3c43083f39a9e0279af0f64d0994e9ba) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x5000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242mix.c7", 0x3000000, 0x800000, CRC(374eb904) SHA1(060ccdca943b6493890c9e42eacf943cf4acc100) )
+ ROM_LOAD16_BYTE( "242mix.c8", 0x3000001, 0x800000, CRC(eddd2789) SHA1(e1fe8238ed51ee328d8c7eebb58fa6230b9e48c5) )
+ ROM_LOAD16_BYTE( "242mix.c9", 0x4000000, 0x800000, CRC(83ef6611) SHA1(c65415d1933e6d2c19265047a22172d46484d900) )
+ ROM_LOAD16_BYTE( "242mix.c10", 0x4000001, 0x800000, CRC(c22c67f8) SHA1(4f4bc61af37a2a14fa059785a0de0e82078b89e5) )
+ROM_END
+
+ROM_START( kof98s35 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242hc35.p1", 0x000000, 0x100000, CRC(c59f5cf6) SHA1(2d97d5db0b56dca532a9d890947a196146cc979f) )
+ ROM_LOAD16_WORD_SWAP( "242hc35.sp2", 0x100000, 0x400000, CRC(c2010764) SHA1(5199baff72f6a749b27de5dc74d766f2f03b1b33) )
+
+ NEO_SFIX_128K( "242hc35.s1", CRC(a9c64bf0) SHA1(20d77c784ed904f6891c70fb5fb5a454fa8ef058) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242hc35.c1", 0x0000000, 0x800000, CRC(cac877ab) SHA1(3f22c0993237d73205a75e55633a000c75219b0b) )
+ ROM_LOAD16_BYTE( "242hc35.c2", 0x0000001, 0x800000, CRC(d42d17ec) SHA1(679d2e748fce60cb1394b5026a17e09d0154bf41) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242hc35.c7", 0x3000000, 0x800000, CRC(9b33b5af) SHA1(6356a7dbb567ebb45f380f389050cc9bba0d5f36) )
+ ROM_LOAD16_BYTE( "242hc35.c8", 0x3000001, 0x800000, CRC(97e884ae) SHA1(3fa2d883a7e97aef3f9cc6bf5033355704abe939) )
+ROM_END
+
+ROM_START( kof98s36 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242hc36.p1", 0x000000, 0x100000, CRC(61429e3e) SHA1(dfdf32ad30ad5fa06174c4e626d054298fe5b333) )
+ ROM_LOAD16_WORD_SWAP( "242hc36.sp2", 0x100000, 0x400000, CRC(29039af7) SHA1(1eef6baa7b5417c9e39450af1bbf52ee4ad5279f) )
+
+ NEO_SFIX_128K( "242hc36.s1", CRC(6389fb37) SHA1(1cf12cf7c2b3dfdd6ee94c60aaafd036272f1389) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242hc36.c1", 0x0000000, 0x800000, CRC(770043c3) SHA1(26280de47ba656d8871ba4aef995bb35b3ac8174) )
+ ROM_LOAD16_BYTE( "242hc36.c2", 0x0000001, 0x800000, CRC(dce7ed5b) SHA1(0aebdf1f9895f82a5940627d894a70abe586148b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98s37 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242hc37.p1", 0x000000, 0x100000, CRC(668c452f) SHA1(c9bc7369f24cc81af45a245f038e19460079646f) )
+ ROM_LOAD16_WORD_SWAP( "242y.p2", 0x100000, 0x400000, CRC(3ae6a0b6) SHA1(d3fb3d24da69d590095b183ce5eb5715e0d46e96) )
+
+ NEO_SFIX_128K( "242ldx.s1", CRC(d4a53f94) SHA1(8a9ead3cfd6a37f930a8a9bab3c9031d19f2810a) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98s38 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242-pn1.p1", 0x000000, 0x100000, CRC(61ac868a) SHA1(26577264aa72d6af272952a876fcd3775f53e3fa) )
+ ROM_LOAD16_WORD_SWAP( "242hc38.sp2", 0x100000, 0x400000, CRC(e6f8851a) SHA1(a04261c2c765aefd7606905528b895ca86a34dcb) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98s39 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242-pn1.p1", 0x000000, 0x100000, CRC(61ac868a) SHA1(26577264aa72d6af272952a876fcd3775f53e3fa) )
+ ROM_LOAD16_WORD_SWAP( "242hc39.sp2", 0x100000, 0x400000, CRC(db23cd57) SHA1(e59bdf2281e5210aa03600bce7f488e72ea725d7) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98s40 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242hc40.p1", 0x000000, 0x100000, CRC(b9764d97) SHA1(18a02058dec8d1c75ebd5d4a45661a0a4a333ede) )
+ ROM_LOAD16_WORD_SWAP( "242ul.p2", 0x100000, 0x400000, CRC(b821e275) SHA1(89df56bcd5da6a75f4e2c7fc8d859994933d26db) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98s41 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242hc41.p1", 0x000000, 0x100000, CRC(008c23b0) SHA1(a9efa61e5fbce96f31dbdb82994e6df300bde407) )
+ ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98s42 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242hc42.p1", 0x000000, 0x100000, CRC(d61ca50e) SHA1(94a374fde8ddaf6540a1bce3ecf4d006a4c37f95) )
+ ROM_LOAD16_WORD_SWAP( "242urf.p2", 0x100000, 0x400000, CRC(cde0fa91) SHA1(da56d2e6e2095a0c3d3682acebef9a4790828424) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98s43 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242hc43.p1", 0x000000, 0x100000, CRC(d61ca50e) SHA1(94a374fde8ddaf6540a1bce3ecf4d006a4c37f95) )
+ ROM_LOAD16_WORD_SWAP( "242urf.p2", 0x100000, 0x400000, CRC(cde0fa91) SHA1(da56d2e6e2095a0c3d3682acebef9a4790828424) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98s44 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242hc44.p1", 0x000000, 0x100000, CRC(cd9f7588) SHA1(787aa16ce113edf57973deff0a5d550f1cce524b) )
+ ROM_LOAD16_WORD_SWAP( "242xi.p2", 0x100000, 0x400000, CRC(8dcf495d) SHA1(9cafdaaad215f8f912b93a0ba7fa1fb8a4d20ece) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242xi.c5", 0x2000000, 0x800000, CRC(d4e28d5f) SHA1(bd93278bb610565f24d468f596121ae1dd7d2686) )
+ ROM_LOAD16_BYTE( "242xi.c6", 0x2000001, 0x800000, CRC(fcfa6e58) SHA1(14da7d42692da09ed4d489459270bd83fe83cf4a) )
+ ROM_LOAD16_BYTE( "242xi.c7", 0x3000000, 0x800000, CRC(960f0df4) SHA1(0bf8381d14be1fe16ffc122df0f49a425cfef9bc) )
+ ROM_LOAD16_BYTE( "242xi.c8", 0x3000001, 0x800000, CRC(f1eab90b) SHA1(224f829bbc75d51f1152e16e60e58951c62d188c) )
+ROM_END
+
+ROM_START( kof98s45 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242hc45.p1", 0x000000, 0x100000, CRC(9f9b521b) SHA1(5628faa17636f1838fc59209d19e61828eae96b3) )
+ ROM_LOAD16_WORD_SWAP( "242hc45.sp2", 0x100000, 0x400000, CRC(33f7a7df) SHA1(1428154c0f28e6efb159e9ab7ec63828de517508) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98s46 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242hc46.p1", 0x000000, 0x100000, CRC(12c9193f) SHA1(ccd8354d2ab9750a98f2a141f1aae1db187d56a0) )
+ ROM_LOAD16_WORD_SWAP( "242hc45.sp2", 0x100000, 0x400000, CRC(33f7a7df) SHA1(1428154c0f28e6efb159e9ab7ec63828de517508) )
+
+ NEO_SFIX_128K( "242ldx.s1", CRC(d4a53f94) SHA1(8a9ead3cfd6a37f930a8a9bab3c9031d19f2810a) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98s47 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242hc47.p1", 0x000000, 0x100000, CRC(e38262c9) SHA1(d1ef2aacd62a7df8d50177a3c481cd67ebcd1b19) )
+ ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98s48 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242hc48.p1", 0x000000, 0x100000, CRC(fb128b13) SHA1(69744a179685c4e7efafcfa936068290d701aeb3) )
+ ROM_LOAD16_WORD_SWAP( "242iori.p2", 0x100000, 0x400000, CRC(273e2232) SHA1(123c5541b21fcbaa85f3a687d9c738b083ab7b9e) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242evl.c1", 0x0000000, 0x800000, CRC(e7f6e015) SHA1(c7efac1dee18e1f29a1d80ef5be5574cb12c2d6c) )
+ ROM_LOAD16_BYTE( "242evl.c2", 0x0000001, 0x800000, CRC(8c2dfa52) SHA1(2ba4235abf78e360129b6d5643889ccb3155cb30) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242sp.c7", 0x3000000, 0x800000, CRC(35839069) SHA1(830dcc84f91ef5498019604fecd9a8db1e3e22a9 ) )
+ ROM_LOAD16_BYTE( "242sp.c8", 0x3000001, 0x800000, CRC(9744d47f) SHA1(8a7057a99f6cbc9707f10feb64192716cf6df151 ) )
+ROM_END
+
+ROM_START( kof98s49 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242hc49.p1", 0x000000, 0x100000, CRC(57bdcc1a) SHA1(fdd2475ed55ac50f14001eba1b9b0f497eec1bf6) )
+ ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98s50 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242hc50.p1", 0x000000, 0x100000, CRC(5162ee94) SHA1(1cbc8bc0f394649634102c573918ec9213e92f8a) )
+ ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98s51 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242yh.p1", 0x000000, 0x100000, CRC(4ee6f162) SHA1(66036540d459268198c556397db3ab3c175165a4) )
+ ROM_LOAD16_WORD_SWAP( "242hc51.sp2", 0x100000, 0x400000, CRC(8c78d759) SHA1(2ef3ec8686d78aefe5f7bcaf07f6e356b63cdd73) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98s52 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242hc52.p1", 0x000000, 0x100000, CRC(71fe56a4) SHA1(63810c8cdeba676bc08e3d3249a798c2ab3edc24) )
+ ROM_LOAD16_WORD_SWAP( "242hc35.sp2", 0x100000, 0x400000, CRC(c2010764) SHA1(5199baff72f6a749b27de5dc74d766f2f03b1b33) )
+
+ NEO_SFIX_128K( "242hc35.s1", CRC(a9c64bf0) SHA1(20d77c784ed904f6891c70fb5fb5a454fa8ef058) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242hc35.c1", 0x0000000, 0x800000, CRC(cac877ab) SHA1(3f22c0993237d73205a75e55633a000c75219b0b) )
+ ROM_LOAD16_BYTE( "242hc35.c2", 0x0000001, 0x800000, CRC(d42d17ec) SHA1(679d2e748fce60cb1394b5026a17e09d0154bf41) )
+ ROM_LOAD16_BYTE( "242cnd19.c3", 0x1000000, 0x800000, CRC(ea84bdae) SHA1(27108247ed7406060f0b149a9dfa64869a6bbcf2) )
+ ROM_LOAD16_BYTE( "242cnd19.c4", 0x1000001, 0x800000, CRC(2c17ac8e) SHA1(fc704f5cf358df81a88d20932be3edffe202dea9) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242hc35.c7", 0x3000000, 0x800000, CRC(9b33b5af) SHA1(6356a7dbb567ebb45f380f389050cc9bba0d5f36) )
+ ROM_LOAD16_BYTE( "242hc35.c8", 0x3000001, 0x800000, CRC(97e884ae) SHA1(3fa2d883a7e97aef3f9cc6bf5033355704abe939) )
+ROM_END
+
+ROM_START( kof98s53 )
+ ROM_REGION( 0xD00000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242hc53.p1", 0x000000, 0x100000, CRC(22f56f06) SHA1(4ca83867924ce2a85f65f09ca94868f5b13d513f) )
+ ROM_LOAD16_WORD_SWAP( "242hc53.sp2", 0x100000, 0x600000, CRC(8f2eb07b) SHA1(391b22a2e3aadc0efbbf7ac51c6cc631309d09b4) )
+
+ NEO_SFIX_128K( "242ae.s1", CRC(f1fee5c0) SHA1(e0d7b6c3c4a1c24003f25de6a5238e0a8ad32269) )
+
+ NEO_BIOS_AUDIO_256K( "242ae.m1", CRC(9ade0528) SHA1(67d0c3b146d369416b84c081544fe51fc6c2a140) )
+
+ ROM_REGION( 0x1400000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+ ROM_LOAD( "242ae.v5", 0x1000000, 0x400000, CRC(afdd9660) SHA1(0d67fb61111256c0d74d4f2b473ab5a42d1909b9) )
+
+ ROM_REGION( 0x6000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242ae.c1", 0x0000000, 0x800000, CRC(0319cfc9) SHA1(f275015d6bddf392936b35cd7399f929a6d63d29) )
+ ROM_LOAD16_BYTE( "242ae.c2", 0x0000001, 0x800000, CRC(553f6714) SHA1(9c14963ce9ac0cfd125defe2fe80206deb1bc896) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242ae.c5", 0x2000000, 0x800000, CRC(71641718) SHA1(b88a00aca2fc34230d2d2da0b235195a5eb1ecf0) )
+ ROM_LOAD16_BYTE( "242ae.c6", 0x2000001, 0x800000, CRC(982ba2b3) SHA1(232ce3be7beaad13b35865da770157ef4b29a7a9) )
+ ROM_LOAD16_BYTE( "242ae.c7", 0x3000000, 0x800000, CRC(8d495552) SHA1(20ff76b681b2e544c5a57060bb98ab6bb91bea3c) )
+ ROM_LOAD16_BYTE( "242ae.c8", 0x3000001, 0x800000, CRC(8bfc3417) SHA1(38bb85563d0a7f008a64cf76d71d82b935cd98e5) )
+ ROM_LOAD16_BYTE( "242ae.c9", 0x4000000, 0x800000, CRC(128256d1) SHA1(948af62545756165890e950fcd67bbd6304b3366) )
+ ROM_LOAD16_BYTE( "242ae.c10", 0x4000001, 0x800000, CRC(4bd8412d) SHA1(72e9cc6e3df8000d0a7fc7a89257dd0ce56fc909) )
+ ROM_LOAD16_BYTE( "242hc53.c11", 0x5000000, 0x800000, CRC(d29699b9) SHA1(4641d727299b75e81f7c8fc1d59c60ccd614d5c9) )
+ ROM_LOAD16_BYTE( "242hc53.c12", 0x5000001, 0x800000, CRC(40173bcd) SHA1(db36058abdc07430e8cf4c404ed612e7ae652142) )
+ROM_END
+
+ROM_START( kof98s54 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242hc54.p1", 0x000000, 0x200000, CRC(032a0764) SHA1(40a852a3721c9cd2ef3fbe074b8531de1c329d4b) )
+ ROM_LOAD16_WORD_SWAP( "242urf.p2", 0x200000, 0x400000, CRC(cde0fa91) SHA1(da56d2e6e2095a0c3d3682acebef9a4790828424) )
+
+ NEO_SFIX_128K( "242hc54.s1", CRC(810cba2e) SHA1(2e25fa445e429a6000147c57b6f39c372457173d) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242new.c3", 0x1000000, 0x800000, CRC(3e554882) SHA1(c2a0dd3621180e9aae0f41adb46ea7fcce0764e8) )
+ ROM_LOAD16_BYTE( "242new.c4", 0x1000001, 0x800000, CRC(e9e0f676) SHA1(4b46dc18b9ce502097e615c9c236ca0ac5b280e0) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+GAME( 1998, kof98s01, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'98 (Rugal Ray)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98s02, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'98 (Description Of Unknown Origin 02)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98s03, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'98 (Description Of Unknown Origin 03)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98s04, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'98 (Description Of Unknown Origin 04)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98s05, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'98 (Description Of Unknown Origin 05)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98s06, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'98 (Description Of Unknown Origin 06)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98s07, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'98 (Description Of Unknown Origin 07)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98s08, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'98 (Description Of Unknown Origin 08)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98s09, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'98 (Description Of Unknown Origin 09)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98s10, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'98 (Description Of Unknown Origin 10)", MACHINE_SUPPORTS_SAVE )
+///GAME( 1998, kof98s11, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'98 (Description Of Unknown Origin 11)", MACHINE_SUPPORTS_SAVE )// Falta Archivo
+GAME( 1998, kof98s12, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'98 (Description Of Unknown Origin 12)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98s13, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'98 (Description Of Unknown Origin 13)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98s14, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'98 (Description Of Unknown Origin 14)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98s15, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'98 (Description Of Unknown Origin 15)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98s16, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'98 (Description Of Unknown Origin 16)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98s17, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'98 (Description Of Unknown Origin 17)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98s18, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'98 (Description Of Unknown Origin 18)", MACHINE_SUPPORTS_SAVE )
+///GAME( 1998, kof98s19, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'98 (Description Of Unknown Origin XXXX)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98s20, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'98 (Description Of Unknown Origin 20)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98s21, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'98 (Chinese Translation, Hack Of Kof98y Set 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98s22, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'98 (Description Of Unknown Origin 22)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98s23, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'98 (Description Of Unknown Origin 23)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98s24, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'98 (Description Of Unknown Origin 24)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98s25, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'98 (Description Of Unknown Origin 25)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98s27, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'98 (Description Of Unknown Origin 27)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98s28, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'98 (Description Of Unknown Origin 28)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98s29, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'98 (Description Of Unknown Origin XXXX)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98s30, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'98 (Description Of Unknown Origin 30)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98s31, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'98 (Description Of Unknown Origin 31)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98s32, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'98 (Description Of Unknown Origin 32)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98s33, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'98 (Description Of Unknown Origin 33)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98s34, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'98 (Description Of Unknown Origin 34)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98s35, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'98 (Description Of Unknown Origin 35)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98s36, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'98 (Description Of Unknown Origin 36)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98s37, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'98 (Description Of Unknown Origin 37)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98s38, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'98 (Description Of Unknown Origin 38)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98s39, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'98 (Description Of Unknown Origin 39)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98s40, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'98 (Description Of Unknown Origin 40)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98s41, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'98 (Description Of Unknown Origin 41)", MACHINE_SUPPORTS_SAVE )
+// GAME( 1998, kof98s42, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'98 (Description Of Unknown Origin 42)", MACHINE_SUPPORTS_SAVE ) // Duplicado
+GAME( 1998, kof98s43, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'98 (Description Of Unknown Origin 43)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98s44, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'98 (Description Of Unknown Origin 44)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98s45, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'98 (Description Of Unknown Origin 45)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98s46, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'98 (Description Of Unknown Origin 46)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98s47, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'98 (Description Of Unknown Origin 47)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98s48, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'98 (Description Of Unknown Origin 48)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98s49, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'98 (Description Of Unknown Origin 49)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98s50, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'98 (Description Of Unknown Origin 50)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98s51, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'98 (Description Of Unknown Origin 51)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98s52, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'98 (Description Of Unknown Origin 52)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98s53, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'98 (Description Of Unknown Origin 53)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98s54, kof98, neogeo_noslot, neogeo, neogeo_noslot_state, kof98, ROT0, "Hacks", "Kof'98 (Description Of Unknown Origin 54)", MACHINE_SUPPORTS_SAVE )
+
+
diff --git a/src/hbmame/drivers/kof99.cpp b/src/hbmame/drivers/kof99.cpp
new file mode 100644
index 00000000000..8f49aa4c29f
--- /dev/null
+++ b/src/hbmame/drivers/kof99.cpp
@@ -0,0 +1,3641 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+
+
+
+// Rules: no encryption, has s1 rom -> neogeo_state,neogeo
+// no s1 rom -> neogeo_hbmame,cmc42sfix
+// encrypted gfx -> m_cmc_prot->cmc42_neogeo_gfx_decrypt(spr_region, spr_region_size, KOF99_GFX_KEY);
+// encrypted gfx and no s1 rom -> above plus m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, KOF99_GFX_KEY);
+
+// encrypted gfx and has s1 rom
+DRIVER_INIT_MEMBER( neogeo_hbmame, kof99bh )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_cmc_prot->cmc42_neogeo_gfx_decrypt(spr_region, spr_region_size, KOF99_GFX_KEY);
+}
+
+// encrypted except for cx roms
+DRIVER_INIT_MEMBER( neogeo_hbmame, kof99d )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sma_prot->kof99_decrypt_68k(cpuregion);
+ m_sma_prot->kof99_install_protection(m_maincpu, m_banked_cart);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+
+
+ROM_START( kof99ab ) /* The King of Fighters '99 - Hack by Marcochen/PPX Hack Team - (Rolls moves sideways version) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251ab.p1", 0x000000, 0x100000, CRC(8ABC720E) SHA1(3D8FDC2F3AE1F4F1DC121587EF37240C15548280) )
+ ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+/* The King of Fighters '99 - Anniversary Edition.
+ Unfortunately Yashional does not put revision dates in his games,
+ so we've had to guess which roms to use.
+ For the name, we go by the date on the zipfile (if provided). */
+ROM_START( kof99ae )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251ae.p1", 0x000000, 0x100000, CRC(67f52d45) SHA1(cadf1c5c8c3e234204c8b32677f347e66d0373e5) )
+ ROM_LOAD16_WORD_SWAP( "251ae.p2", 0x100000, 0x400000, CRC(67134a67) SHA1(c853f67ec66b0f01273c3ce1e1003262cbca0a60) )
+
+ NEO_SFIX_128K( "251ae.s1", CRC(6243a70b) SHA1(452371f20e31c4d79022a128fc5335e951a6af1e) )
+
+ NEO_BIOS_AUDIO_128K( "251ae.m1", CRC(f847e188) SHA1(0b98595a457292b04f518afcc82c2d6b8f249a7b) )
+
+ ROM_REGION( 0xe00000, "ymsnd", 0 )
+ ROM_LOAD( "251ae.v1", 0x000000, 0x400000, CRC(4ae46226) SHA1(77dbd53772e1e5000a091b9ff4b3cdc14b62ab0b) )
+ ROM_LOAD( "251ae.v2", 0x400000, 0x400000, CRC(07d70650) SHA1(70d274771c07215268292f91517ec61634e32611) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x6000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251ae.c1", 0x0000000, 0x800000, CRC(d0048356) SHA1(3a5a381f531751c8469d74b59e9e668d21cbc06b) )
+ ROM_LOAD16_BYTE( "251ae.c2", 0x0000001, 0x800000, CRC(1d405bb0) SHA1(76c4b1d6e5ff0d5814b19203fbdd1f02d663de3e) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251ae.c7", 0x3000000, 0x800000, CRC(f22760ad) SHA1(a503898d9b6141c76f63b7c505ac78d3575530b2) )
+ ROM_LOAD16_BYTE( "251ae.c8", 0x3000001, 0x800000, CRC(396c3a70) SHA1(6cd0acd05c138ac85ad63a04dfc015a3e70fa572) )
+ ROM_LOAD16_BYTE( "251ae.c9", 0x4000000, 0x800000, CRC(7d90d06d) SHA1(a72e91d689ef23b4bab43266c4360f663fc7836f) )
+ ROM_LOAD16_BYTE( "251ae.c10", 0x4000001, 0x800000, CRC(3e2bf178) SHA1(e606e69595c0e9601c1dea142f0fcf77c2964347) )
+ ROM_LOAD16_BYTE( "251ae.c11", 0x5000000, 0x800000, CRC(90016920) SHA1(6686e98a25d906131f73ed83c712096a6946c62e) )
+ ROM_LOAD16_BYTE( "251ae.c12", 0x5000001, 0x800000, CRC(49cfed23) SHA1(63fa8682b86802967b36489c7483c59039f35aa5) )
+ROM_END
+
+ROM_START( kof99ae0 ) /* Original Version - Decrypted GFX */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251ae0.p1", 0x000000, 0x100000, CRC(17aec0ae) SHA1(ca88256c9dc118667165ae66fae34ee49bfa1b09) )
+ ROM_LOAD16_WORD_SWAP( "251ae0.p2", 0x100000, 0x400000, CRC(e9630204) SHA1(f5f88eaf4563163c5ddeb39223f1dc5d56658987) )
+
+ NEO_SFIX_128K( "251ae0.s1", CRC(9f515051) SHA1(c5d6553b7c84db3c72b3d2feb9b0a580afa35382) )
+
+ NEO_BIOS_AUDIO_128K( "251ae.m1", CRC(f847e188) SHA1(0b98595a457292b04f518afcc82c2d6b8f249a7b) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251ae.v1", 0x000000, 0x400000, CRC(4ae46226) SHA1(77dbd53772e1e5000a091b9ff4b3cdc14b62ab0b) )
+ ROM_LOAD( "251ae.v2", 0x400000, 0x400000, CRC(07d70650) SHA1(70d274771c07215268292f91517ec61634e32611) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x6000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251ae.c1", 0x0000000, 0x800000, CRC(d0048356) SHA1(3a5a381f531751c8469d74b59e9e668d21cbc06b) )
+ ROM_LOAD16_BYTE( "251ae.c2", 0x0000001, 0x800000, CRC(1d405bb0) SHA1(76c4b1d6e5ff0d5814b19203fbdd1f02d663de3e) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251ae.c7", 0x3000000, 0x800000, CRC(f22760ad) SHA1(a503898d9b6141c76f63b7c505ac78d3575530b2) )
+ ROM_LOAD16_BYTE( "251ae.c8", 0x3000001, 0x800000, CRC(396c3a70) SHA1(6cd0acd05c138ac85ad63a04dfc015a3e70fa572) )
+ ROM_LOAD16_BYTE( "251ae.c9", 0x4000000, 0x800000, CRC(7d90d06d) SHA1(a72e91d689ef23b4bab43266c4360f663fc7836f) )
+ ROM_LOAD16_BYTE( "251ae.c10", 0x4000001, 0x800000, CRC(3e2bf178) SHA1(e606e69595c0e9601c1dea142f0fcf77c2964347) )
+ ROM_LOAD16_BYTE( "251ae.c11", 0x5000000, 0x800000, CRC(90016920) SHA1(6686e98a25d906131f73ed83c712096a6946c62e) )
+ ROM_LOAD16_BYTE( "251ae.c12", 0x5000001, 0x800000, CRC(49cfed23) SHA1(63fa8682b86802967b36489c7483c59039f35aa5) )
+ROM_END
+
+ROM_START( kof99ae20140408 ) // latest date on the roms
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251aend.p1", 0x000000, 0x100000, CRC(8913d6e4) SHA1(2cd0d9db1b521f123c20105dc95d3319e39c60ce) )
+ ROM_LOAD16_WORD_SWAP( "251aend.p2", 0x100000, 0x400000, CRC(9c458ee5) SHA1(c2bd37c6d53e2119724160c9626e38f7138f6c8b) )
+ ROM_LOAD16_WORD_SWAP( "251aend.p3", 0x500000, 0x400000, CRC(64979453) SHA1(730ad832959cc9eab8fb30fd1266f4ed8902ae03) )
+
+ NEO_SFIX_128K( "251ae.s1", CRC(6243a70b) SHA1(452371f20e31c4d79022a128fc5335e951a6af1e) )
+
+ NEO_BIOS_AUDIO_128K( "251ae.m1", CRC(f847e188) SHA1(0b98595a457292b04f518afcc82c2d6b8f249a7b) )
+
+ ROM_REGION( 0xe00000, "ymsnd", 0 )
+ ROM_LOAD( "251ae.v1", 0x000000, 0x400000, CRC(4ae46226) SHA1(77dbd53772e1e5000a091b9ff4b3cdc14b62ab0b) )
+ ROM_LOAD( "251ae.v2", 0x400000, 0x400000, CRC(07d70650) SHA1(70d274771c07215268292f91517ec61634e32611) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x6000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251aex.c1.bin", 0x000000, 0x800000, CRC(497c2e83) SHA1(379887e839dd4e33b41ab634a54789621bdfea98) )
+ ROM_LOAD16_BYTE( "251aex.c2.bin", 0x000001, 0x800000, CRC(0a13eeb7) SHA1(2cb196a955a3472f922d0085cee2ddc0111fdbd3) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251ae.c7", 0x3000000, 0x800000, CRC(f22760ad) SHA1(a503898d9b6141c76f63b7c505ac78d3575530b2) )
+ ROM_LOAD16_BYTE( "251ae.c8", 0x3000001, 0x800000, CRC(396c3a70) SHA1(6cd0acd05c138ac85ad63a04dfc015a3e70fa572) )
+ ROM_LOAD16_BYTE( "251aend.c9", 0x4000000, 0x800000, CRC(0b7a7f25) SHA1(1582f85ce96b74b361565408cccf35815267ac52) )
+ ROM_LOAD16_BYTE( "251aend.c10", 0x4000001, 0x800000, CRC(4b840d63) SHA1(4cb4c5cb34aef6f1e188f08984e870a50b41b9f2) )
+ ROM_LOAD16_BYTE( "251ae.c11", 0x5000000, 0x800000, CRC(90016920) SHA1(6686e98a25d906131f73ed83c712096a6946c62e) )
+ ROM_LOAD16_BYTE( "251ae.c12", 0x5000001, 0x800000, CRC(49cfed23) SHA1(63fa8682b86802967b36489c7483c59039f35aa5) )
+ROM_END
+
+ROM_START( kof99ae20140624 ) /* The King of Fighters '99 - Anniversary Edition */
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251aenf.p1", 0x000000, 0x100000, CRC(924122bc) SHA1(5240c2317e79ee27abcdb484800c569e78a1172f) )
+ ROM_LOAD16_WORD_SWAP( "251aenf.p2", 0x100000, 0x400000, CRC(6ba36969) SHA1(18cb69260f5592a4279f07bfd0d3af2f3e7ff288) )
+ ROM_LOAD16_WORD_SWAP( "251aenf.p3", 0x500000, 0x400000, CRC(99697d6e) SHA1(c505afdfb7ea506c30d2d581d166f49f7fd7c88c) )
+
+ NEO_BIOS_AUDIO_128K( "251ae.m1", CRC(f847e188) SHA1(0b98595a457292b04f518afcc82c2d6b8f249a7b) )
+
+ NEO_SFIX_128K( "251aenf.s1", CRC(18c1562d) SHA1(afeaa541998a3c23a0ecb87da0231370f08213f2) )
+
+ ROM_REGION( 0xe00000, "ymsnd", 0 )
+ ROM_LOAD( "251ae.v1", 0x000000, 0x400000, CRC(4ae46226) SHA1(77dbd53772e1e5000a091b9ff4b3cdc14b62ab0b) )
+ ROM_LOAD( "251ae.v2", 0x400000, 0x400000, CRC(07d70650) SHA1(70d274771c07215268292f91517ec61634e32611) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x6000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251aex.c1.bin", 0x000000, 0x800000, CRC(497c2e83) SHA1(379887e839dd4e33b41ab634a54789621bdfea98) )
+ ROM_LOAD16_BYTE( "251aex.c2.bin", 0x000001, 0x800000, CRC(0a13eeb7) SHA1(2cb196a955a3472f922d0085cee2ddc0111fdbd3) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251ae.c7", 0x3000000, 0x800000, CRC(f22760ad) SHA1(a503898d9b6141c76f63b7c505ac78d3575530b2) )
+ ROM_LOAD16_BYTE( "251ae.c8", 0x3000001, 0x800000, CRC(396c3a70) SHA1(6cd0acd05c138ac85ad63a04dfc015a3e70fa572) )
+ ROM_LOAD16_BYTE( "251aenf.c9", 0x4000000, 0x800000, CRC(53d028c0) SHA1(be59fc381e3b9c3bc42a5ca691b3dfa05e1f2b1c) )
+ ROM_LOAD16_BYTE( "251aenf.c10", 0x4000001, 0x800000, CRC(707ce1a7) SHA1(afc41c9ee37eca8f2a77b2b40a120bb01d8eb4bd) )
+ ROM_LOAD16_BYTE( "251ae.c11", 0x5000000, 0x800000, CRC(90016920) SHA1(6686e98a25d906131f73ed83c712096a6946c62e) )
+ ROM_LOAD16_BYTE( "251ae.c12", 0x5000001, 0x800000, CRC(49cfed23) SHA1(63fa8682b86802967b36489c7483c59039f35aa5) )
+ROM_END
+
+ROM_START( kof99ae20150121 ) /* The King of Fighters '99 - Anniversary Edition */
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251aeoa.p1", 0x000000, 0x100000, CRC(110a01b4) SHA1(df16c7c0e79717d939f594e80469a525eed62b07) )
+ ROM_LOAD16_WORD_SWAP( "251aeoa.p2", 0x100000, 0x400000, CRC(0f8e548a) SHA1(f195d02793f3f139975bc8789ec288438622abdb) )
+ ROM_LOAD16_WORD_SWAP( "251aeoa.p3", 0x500000, 0x400000, CRC(84280fed) SHA1(06f8afac0dcaff5b9ec7d5fd36a88760f329c482) )
+
+ NEO_BIOS_AUDIO_128K( "251ae.m1", CRC(f847e188) SHA1(0b98595a457292b04f518afcc82c2d6b8f249a7b) )
+
+ NEO_SFIX_128K( "251aenf.s1", CRC(18c1562d) SHA1(afeaa541998a3c23a0ecb87da0231370f08213f2) )
+
+ ROM_REGION( 0xe00000, "ymsnd", 0 )
+ ROM_LOAD( "251aex.v1", 0x000000, 0x400000, CRC(ceaa3bae) SHA1(ec598f92e7d3b41f38448fee2dd2ee599a482f8f) )
+ ROM_LOAD( "251ae.v2", 0x400000, 0x400000, CRC(07d70650) SHA1(70d274771c07215268292f91517ec61634e32611) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x6000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251aex.c1.bin", 0x000000, 0x800000, CRC(497c2e83) SHA1(379887e839dd4e33b41ab634a54789621bdfea98) )
+ ROM_LOAD16_BYTE( "251aex.c2.bin", 0x000001, 0x800000, CRC(0a13eeb7) SHA1(2cb196a955a3472f922d0085cee2ddc0111fdbd3) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251ae.c7", 0x3000000, 0x800000, CRC(f22760ad) SHA1(a503898d9b6141c76f63b7c505ac78d3575530b2) )
+ ROM_LOAD16_BYTE( "251ae.c8", 0x3000001, 0x800000, CRC(396c3a70) SHA1(6cd0acd05c138ac85ad63a04dfc015a3e70fa572) )
+ ROM_LOAD16_BYTE( "251aeoa.c9", 0x4000000, 0x800000, CRC(cd0911ba) SHA1(01a2e644532bc483ce8ee2f9ea7cba2fa7492cd1) )
+ ROM_LOAD16_BYTE( "251aeoa.c10", 0x4000001, 0x800000, CRC(a910b5bb) SHA1(976686caec9727fd0e028bd7007806d2962af2cd) )
+ ROM_LOAD16_BYTE( "251aex.c11", 0x5000000, 0x800000, CRC(7fe785c2) SHA1(b49c3ab1ebf89090388c4757f24d1c02c730cc99) )
+ ROM_LOAD16_BYTE( "251aex.c12", 0x5000001, 0x800000, CRC(a7541483) SHA1(3b3f0e67acfae1c3b6c5549ac350d855482f285f) )
+ROM_END
+
+ROM_START( kof99ae20150520 ) /* The King of Fighters '99 - Anniversary Edition */
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251aeoe.p1", 0x000000, 0x100000, CRC(149bd289) SHA1(c1818ce416c7036b8cc51d6ec752b2a612b7d2b1) )
+ ROM_LOAD16_WORD_SWAP( "251aeoe.p2", 0x100000, 0x400000, CRC(86658d87) SHA1(d3d8a2f596b145a1bc98d65fcf3715d86b7a6dd6) )
+ ROM_LOAD16_WORD_SWAP( "251aeoe.p3", 0x500000, 0x400000, CRC(e66a79c0) SHA1(a13bf66ceb15a4d42855c539a658427845c7d148) )
+
+ NEO_BIOS_AUDIO_128K( "251ae.m1", CRC(f847e188) SHA1(0b98595a457292b04f518afcc82c2d6b8f249a7b) )
+
+ NEO_SFIX_128K( "251aex.s1", CRC(3c31ee43) SHA1(f3bf265ad41037c2317702818136eb08e3ade3a2) )
+
+ ROM_REGION( 0xe00000, "ymsnd", 0 )
+ ROM_LOAD( "251aex.v1", 0x000000, 0x400000, CRC(ceaa3bae) SHA1(ec598f92e7d3b41f38448fee2dd2ee599a482f8f) )
+ ROM_LOAD( "251ae.v2", 0x400000, 0x400000, CRC(07d70650) SHA1(70d274771c07215268292f91517ec61634e32611) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x6000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251aex.c1.bin", 0x000000, 0x800000, CRC(497c2e83) SHA1(379887e839dd4e33b41ab634a54789621bdfea98) )
+ ROM_LOAD16_BYTE( "251aex.c2.bin", 0x000001, 0x800000, CRC(0a13eeb7) SHA1(2cb196a955a3472f922d0085cee2ddc0111fdbd3) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251ae.c7", 0x3000000, 0x800000, CRC(f22760ad) SHA1(a503898d9b6141c76f63b7c505ac78d3575530b2) )
+ ROM_LOAD16_BYTE( "251ae.c8", 0x3000001, 0x800000, CRC(396c3a70) SHA1(6cd0acd05c138ac85ad63a04dfc015a3e70fa572) )
+ ROM_LOAD16_BYTE( "251aex.c9", 0x4000000, 0x800000, CRC(f33d51d5) SHA1(b7d95afc0e85fec3c3279a766e22227cce91f3f4) )
+ ROM_LOAD16_BYTE( "251aex.c10", 0x4000001, 0x800000, CRC(852770d7) SHA1(734520728d7e8162021fd1cc93f2fe2f8bd02e75) )
+ ROM_LOAD16_BYTE( "251aex.c11", 0x5000000, 0x800000, CRC(7fe785c2) SHA1(b49c3ab1ebf89090388c4757f24d1c02c730cc99) )
+ ROM_LOAD16_BYTE( "251aex.c12", 0x5000001, 0x800000, CRC(a7541483) SHA1(3b3f0e67acfae1c3b6c5549ac350d855482f285f) )
+ROM_END
+
+ROM_START( kof99ae20150711 ) /* The King of Fighters '99 - Anniversary Edition */
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251aeog.p1", 0x000000, 0x100000, CRC(78057e71) SHA1(f027654620c2490ef834713265deec1ada542e9b) )
+ ROM_LOAD16_WORD_SWAP( "251aeog.p2", 0x100000, 0x800000, CRC(b7e50e35) SHA1(9706fe6bce816d75893ee8882eb4e9cd0590daac) )
+
+ NEO_BIOS_AUDIO_128K( "251ae.m1", CRC(f847e188) SHA1(0b98595a457292b04f518afcc82c2d6b8f249a7b) )
+
+ NEO_SFIX_128K( "251aex.s1", CRC(3c31ee43) SHA1(f3bf265ad41037c2317702818136eb08e3ade3a2) )
+
+ ROM_REGION( 0xe00000, "ymsnd", 0 )
+ ROM_LOAD( "251aex.v1", 0x000000, 0x400000, CRC(ceaa3bae) SHA1(ec598f92e7d3b41f38448fee2dd2ee599a482f8f) )
+ ROM_LOAD( "251ae.v2", 0x400000, 0x400000, CRC(07d70650) SHA1(70d274771c07215268292f91517ec61634e32611) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x6000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251aex.c1.bin", 0x000000, 0x800000, CRC(497c2e83) SHA1(379887e839dd4e33b41ab634a54789621bdfea98) )
+ ROM_LOAD16_BYTE( "251aex.c2.bin", 0x000001, 0x800000, CRC(0a13eeb7) SHA1(2cb196a955a3472f922d0085cee2ddc0111fdbd3) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251ae.c7", 0x3000000, 0x800000, CRC(f22760ad) SHA1(a503898d9b6141c76f63b7c505ac78d3575530b2) )
+ ROM_LOAD16_BYTE( "251ae.c8", 0x3000001, 0x800000, CRC(396c3a70) SHA1(6cd0acd05c138ac85ad63a04dfc015a3e70fa572) )
+ ROM_LOAD16_BYTE( "251aeog.c9", 0x4000000, 0x800000, CRC(86a3550d) SHA1(ec74bcadb315a004297dc9e02c72efe5f2e2c5b0) )
+ ROM_LOAD16_BYTE( "251aeog.c10", 0x4000001, 0x800000, CRC(986bb897) SHA1(14572621122e97c3ae96a3b85069b9cde062ef19) )
+ ROM_LOAD16_BYTE( "251aex.c11", 0x5000000, 0x800000, CRC(7fe785c2) SHA1(b49c3ab1ebf89090388c4757f24d1c02c730cc99) )
+ ROM_LOAD16_BYTE( "251aex.c12", 0x5000001, 0x800000, CRC(a7541483) SHA1(3b3f0e67acfae1c3b6c5549ac350d855482f285f) )
+ROM_END
+
+ROM_START( kof99ae20160411 ) // all confirmed
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251aepc.p1", 0x000000, 0x100000, CRC(5cbb24fd) SHA1(082bdbce405138ef08ccb274d48de2272494b62a) )
+ ROM_LOAD16_WORD_SWAP( "251aepc.p2", 0x100000, 0x800000, CRC(55418995) SHA1(419258fc68ae35cde605cc3f89ff05d426299d27) )
+
+ NEO_BIOS_AUDIO_128K( "251ae.m1", CRC(f847e188) SHA1(0b98595a457292b04f518afcc82c2d6b8f249a7b) )
+
+ NEO_SFIX_128K( "251aex.s1", CRC(3c31ee43) SHA1(f3bf265ad41037c2317702818136eb08e3ade3a2) )
+
+ ROM_REGION( 0xe00000, "ymsnd", 0 )
+ ROM_LOAD( "251aex.v1", 0x000000, 0x400000, CRC(ceaa3bae) SHA1(ec598f92e7d3b41f38448fee2dd2ee599a482f8f) )
+ ROM_LOAD( "251ae.v2", 0x400000, 0x400000, CRC(07d70650) SHA1(70d274771c07215268292f91517ec61634e32611) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x6000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251aex.c1.bin", 0x000000, 0x800000, CRC(497c2e83) SHA1(379887e839dd4e33b41ab634a54789621bdfea98) )
+ ROM_LOAD16_BYTE( "251aex.c2.bin", 0x000001, 0x800000, CRC(0a13eeb7) SHA1(2cb196a955a3472f922d0085cee2ddc0111fdbd3) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251ae.c7", 0x3000000, 0x800000, CRC(f22760ad) SHA1(a503898d9b6141c76f63b7c505ac78d3575530b2) )
+ ROM_LOAD16_BYTE( "251ae.c8", 0x3000001, 0x800000, CRC(396c3a70) SHA1(6cd0acd05c138ac85ad63a04dfc015a3e70fa572) )
+ ROM_LOAD16_BYTE( "251aeog.c9", 0x4000000, 0x800000, CRC(86a3550d) SHA1(ec74bcadb315a004297dc9e02c72efe5f2e2c5b0) )
+ ROM_LOAD16_BYTE( "251aeog.c10", 0x4000001, 0x800000, CRC(986bb897) SHA1(14572621122e97c3ae96a3b85069b9cde062ef19) )
+ ROM_LOAD16_BYTE( "251aex.c11", 0x5000000, 0x800000, CRC(7fe785c2) SHA1(b49c3ab1ebf89090388c4757f24d1c02c730cc99) )
+ ROM_LOAD16_BYTE( "251aex.c12", 0x5000001, 0x800000, CRC(a7541483) SHA1(3b3f0e67acfae1c3b6c5549ac350d855482f285f) )
+ROM_END
+
+ROM_START( kof99ae20160419 ) // all confirmed
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251aepd.p1", 0x000000, 0x100000, CRC(c19447eb) SHA1(45c25eaaf1a03a5756e2df4a54abf2f7ebfab45a) )
+ ROM_LOAD16_WORD_SWAP( "251aepc.p2", 0x100000, 0x800000, CRC(55418995) SHA1(419258fc68ae35cde605cc3f89ff05d426299d27) )
+
+ NEO_BIOS_AUDIO_128K( "251ae.m1", CRC(f847e188) SHA1(0b98595a457292b04f518afcc82c2d6b8f249a7b) )
+
+ NEO_SFIX_128K( "251aex.s1", CRC(3c31ee43) SHA1(f3bf265ad41037c2317702818136eb08e3ade3a2) )
+
+ ROM_REGION( 0xe00000, "ymsnd", 0 )
+ ROM_LOAD( "251aex.v1", 0x000000, 0x400000, CRC(ceaa3bae) SHA1(ec598f92e7d3b41f38448fee2dd2ee599a482f8f) )
+ ROM_LOAD( "251ae.v2", 0x400000, 0x400000, CRC(07d70650) SHA1(70d274771c07215268292f91517ec61634e32611) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x6000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251aex.c1.bin", 0x000000, 0x800000, CRC(497c2e83) SHA1(379887e839dd4e33b41ab634a54789621bdfea98) )
+ ROM_LOAD16_BYTE( "251aex.c2.bin", 0x000001, 0x800000, CRC(0a13eeb7) SHA1(2cb196a955a3472f922d0085cee2ddc0111fdbd3) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251ae.c7", 0x3000000, 0x800000, CRC(f22760ad) SHA1(a503898d9b6141c76f63b7c505ac78d3575530b2) )
+ ROM_LOAD16_BYTE( "251ae.c8", 0x3000001, 0x800000, CRC(396c3a70) SHA1(6cd0acd05c138ac85ad63a04dfc015a3e70fa572) )
+ ROM_LOAD16_BYTE( "251aeog.c9", 0x4000000, 0x800000, CRC(86a3550d) SHA1(ec74bcadb315a004297dc9e02c72efe5f2e2c5b0) )
+ ROM_LOAD16_BYTE( "251aeog.c10", 0x4000001, 0x800000, CRC(986bb897) SHA1(14572621122e97c3ae96a3b85069b9cde062ef19) )
+ ROM_LOAD16_BYTE( "251aex.c11", 0x5000000, 0x800000, CRC(7fe785c2) SHA1(b49c3ab1ebf89090388c4757f24d1c02c730cc99) )
+ ROM_LOAD16_BYTE( "251aex.c12", 0x5000001, 0x800000, CRC(a7541483) SHA1(3b3f0e67acfae1c3b6c5549ac350d855482f285f) )
+ROM_END
+
+ROM_START( kof99aes ) // all confirmed
+ ROM_REGION( 0xd00000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251aes.p1", 0x000000, 0x100000, CRC(5dfe36ed) SHA1(d27a2abf3aa7e8a87faf55ff15e4b87905fa0061) )
+ ROM_LOAD16_WORD_SWAP( "251aepc.p2", 0x100000, 0x800000, CRC(55418995) SHA1(419258fc68ae35cde605cc3f89ff05d426299d27) )
+ ROM_LOAD16_WORD_SWAP( "251aes.p3", 0x900000, 0x400000, CRC(de66edce) SHA1(57d773552cfd22e6d301aa5350dd4d049ef247ac) )
+
+ NEO_BIOS_AUDIO_128K( "251ae.m1", CRC(f847e188) SHA1(0b98595a457292b04f518afcc82c2d6b8f249a7b) )
+
+ NEO_SFIX_128K( "251aex.s1", CRC(3c31ee43) SHA1(f3bf265ad41037c2317702818136eb08e3ade3a2) )
+
+ ROM_REGION( 0xe00000, "ymsnd", 0 )
+ ROM_LOAD( "251aex.v1", 0x000000, 0x400000, CRC(ceaa3bae) SHA1(ec598f92e7d3b41f38448fee2dd2ee599a482f8f) )
+ ROM_LOAD( "251ae.v2", 0x400000, 0x400000, CRC(07d70650) SHA1(70d274771c07215268292f91517ec61634e32611) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x6000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251aex.c1.bin", 0x000000, 0x800000, CRC(497c2e83) SHA1(379887e839dd4e33b41ab634a54789621bdfea98) )
+ ROM_LOAD16_BYTE( "251aex.c2.bin", 0x000001, 0x800000, CRC(0a13eeb7) SHA1(2cb196a955a3472f922d0085cee2ddc0111fdbd3) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251ae.c7", 0x3000000, 0x800000, CRC(f22760ad) SHA1(a503898d9b6141c76f63b7c505ac78d3575530b2) )
+ ROM_LOAD16_BYTE( "251ae.c8", 0x3000001, 0x800000, CRC(396c3a70) SHA1(6cd0acd05c138ac85ad63a04dfc015a3e70fa572) )
+ ROM_LOAD16_BYTE( "251aeog.c9", 0x4000000, 0x800000, CRC(86a3550d) SHA1(ec74bcadb315a004297dc9e02c72efe5f2e2c5b0) )
+ ROM_LOAD16_BYTE( "251aeog.c10", 0x4000001, 0x800000, CRC(986bb897) SHA1(14572621122e97c3ae96a3b85069b9cde062ef19) )
+ ROM_LOAD16_BYTE( "251aex.c11", 0x5000000, 0x800000, CRC(7fe785c2) SHA1(b49c3ab1ebf89090388c4757f24d1c02c730cc99) )
+ ROM_LOAD16_BYTE( "251aex.c12", 0x5000001, 0x800000, CRC(a7541483) SHA1(3b3f0e67acfae1c3b6c5549ac350d855482f285f) )
+ROM_END
+
+ROM_START( kof99bh ) /* The King of Fighters '99 - Hack by Dodowang - (Can choose Krizalid and Krizalid' - have icons in character select menu) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251ndh.p1", 0x000000, 0x100000, CRC(eedcc5bd) SHA1(8280c4329d666b4831c766853f5334355dc40cc9) )
+ ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) )
+
+ NEO_SFIX_128K( "251bh.s1", CRC(b696a8c9) SHA1(3388feab11374a6eca6f1615fdfd93464f86dcee) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99bhp2 ) // multijet
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251bhp2.p1", 0x000000, 0x100000, CRC(a4deff9a) SHA1(a445cd48bc0a8b386cd232bcc5b0d82c9d757c6d) )
+ ROM_LOAD16_WORD_SWAP( "251bhp2.p2", 0x100000, 0x400000, CRC(23339a53) SHA1(e76564ae5464abf06235f813b70b38c492c2f7dc) )
+
+ NEO_SFIX_128K( "251pb.s1", CRC(0b3d79d3) SHA1(2647c617c52d9955ee29520c416b59febfe7c0db) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) )
+ ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251bhp2.c7", 0x3000000, 0x800000, CRC(a0fb0a24) SHA1(89b01efb4b5352efd3e1483e424e319d5a1f1451) )
+ ROM_LOAD16_BYTE( "251bhp2.c8", 0x3000001, 0x800000, CRC(fbc1112c) SHA1(3f3789b8bbc335a4f9b66fc66a350767ec7bc32c) )
+ROM_END
+
+ROM_START( kof99bhs )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251bhs.p1", 0x000000, 0x100000, CRC(c2d1b2fc) SHA1(016f168e5d657abbfb1b81389b1b1613a225d1ad) )
+ ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) )
+
+ NEO_SFIX_128K( "251bh.s1", CRC(b696a8c9) SHA1(3388feab11374a6eca6f1615fdfd93464f86dcee) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) )
+ ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251d.c7", 0x3000000, 0x800000, CRC(2f68fdeb) SHA1(37167c84a39141c179f94800f207dac3aabc5478) )
+ ROM_LOAD16_BYTE( "251d.c8", 0x3000001, 0x800000, CRC(4c2fad1e) SHA1(26779e79296eb1988a8c4d60d2e1baf041f2c0cf) )
+ROM_END
+
+ROM_START( kof99bs )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251bs.p1", 0x000000, 0x100000, CRC(43ce0028) SHA1(7f6ee38c5eb89410f56907f66e6c45f38384da2c) )
+ ROM_LOAD16_WORD_SWAP( "251bs.p2", 0x100000, 0x400000, CRC(e20677c4) SHA1(3ada6a734a5ec274f96b012146ca3416b66b6865) )
+
+ NEO_SFIX_128K( "251bs.s1", CRC(697c1f85) SHA1(117d12908b060db62716a8ac8a155c8303287746) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251bs.c1", 0x0000000, 0x800000, CRC(a472f1db) SHA1(f941f39e95da3a866e5b05e61fffabe7731bdfcf) )
+ ROM_LOAD16_BYTE( "251bs.c2", 0x0000001, 0x800000, CRC(11037779) SHA1(93a9c5031844aa8a13e758283621bf32cf41bb5b) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251bs.c7", 0x3000000, 0x800000, CRC(165607a2) SHA1(7899a0cff743a942fa3af7def57dac6684e76231) )
+ ROM_LOAD16_BYTE( "251bs.c8", 0x3000001, 0x800000, CRC(720c9304) SHA1(ecd5813bd0ab8df55191b21c9f425176945726c3) )
+ROM_END
+
+ROM_START( kof99bs2 ) // multijet
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251bs2.p1", 0x000000, 0x100000, CRC(3adcedbb) SHA1(ce21a4d981354303031fee17e8db9f9961ebe5c9) )
+ ROM_LOAD16_WORD_SWAP( "251bs2.p2", 0x100000, 0x400000, CRC(62b11826) SHA1(13113692b43c3d1b5c8572d2024777e6a1a15e2b) )
+
+ NEO_SFIX_128K( "251bs.s1", CRC(697c1f85) SHA1(117d12908b060db62716a8ac8a155c8303287746) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251bs2.c1", 0x0000000, 0x800000, CRC(598cc558) SHA1(451d3f9fadb1810e383057591c46b736b6f595cb) )
+ ROM_LOAD16_BYTE( "251bs2.c2", 0x0000001, 0x800000, CRC(5b4c297b) SHA1(147342a115b0237d1cb55eceae093a7ee4a3c438) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251bs2.c7", 0x3000000, 0x800000, CRC(3ac342ad) SHA1(325d0c407129a2cbf30c52e5317bbeb8fc056448) )
+ ROM_LOAD16_BYTE( "251bs2.c8", 0x3000001, 0x800000, CRC(500aea52) SHA1(a0c03d1c27c0f5013aff713b53e4e61bc76ff748) )
+ROM_END
+
+ROM_START( kof99ch ) /* The King of Fighters '99 - Remix by Chase - (Character move change) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251ch.p1", 0x000000, 0x100000, CRC(6efd349b) SHA1(f876df9137801125b8f142102d4165295607ba02) )
+ ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99chf ) /* The King of Fighters '99 - Remix by Chase - (Character move change - fixed) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251chf.p1", 0x000000, 0x100000, CRC(34387e01) SHA1(cc56d936d931d793a7d02dddf4a4521ed09e1e52) )
+ ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99co ) // combo
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251co.p1", 0x000000, 0x100000, CRC(99242c0c) SHA1(11d9d52783e4958a53f12469a75a784846d7ba49) )
+ ROM_LOAD16_WORD_SWAP( "251co.p2", 0x100000, 0x400000, CRC(c3ddba7b) SHA1(1890a3cbf33b76d532b4d31eb602698dbff840ea) )
+
+ NEO_SFIX_128K( "251co.s1", CRC(6c36e84f) SHA1(80052ce8e9f09c4e2f7edf5c6423f3b5588eb33b) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) )
+ ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251d.c7", 0x3000000, 0x800000, CRC(2f68fdeb) SHA1(37167c84a39141c179f94800f207dac3aabc5478) )
+ ROM_LOAD16_BYTE( "251d.c8", 0x3000001, 0x800000, CRC(4c2fad1e) SHA1(26779e79296eb1988a8c4d60d2e1baf041f2c0cf) )
+ROM_END
+
+ROM_START( kof99co2 ) // combo
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251co2.p1", 0x000000, 0x100000, CRC(857276bd) SHA1(722ab77fea24a0db8691e64c4c3ed098d1dc5360) )
+ ROM_LOAD16_WORD_SWAP( "251co2.p2", 0x100000, 0x400000, CRC(c79df28d) SHA1(352edc22d5b5ecb84748cb703135de5c2a7a0032) )
+
+ NEO_SFIX_128K( "251co2.s1", CRC(10b87e35) SHA1(f466e9b3ecc7b14cde42a767c3fac73a9eed282b) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) )
+ ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251d.c7", 0x3000000, 0x800000, CRC(2f68fdeb) SHA1(37167c84a39141c179f94800f207dac3aabc5478) )
+ ROM_LOAD16_BYTE( "251d.c8", 0x3000001, 0x800000, CRC(4c2fad1e) SHA1(26779e79296eb1988a8c4d60d2e1baf041f2c0cf) )
+ROM_END
+
+ROM_START( kof99d )
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "kc.neo-sma", 0x0c0000, 0x040000, CRC(6c9d0647) SHA1(2a0ce62ca6c18007e8fbe1b60475c7874ab79389) )
+ ROM_LOAD16_WORD_SWAP( "251-p1.p1", 0x100000, 0x400000, CRC(006e4532) SHA1(47791ab4044ad55988b1d3412d95b65b91a163c8) )
+ ROM_LOAD16_WORD_SWAP( "251-pg2.p2", 0x500000, 0x400000, CRC(d9057f51) SHA1(8d365b4dd40351495df99d6c765df1434b0b0548) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) )
+ ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251d.c7", 0x3000000, 0x800000, CRC(2f68fdeb) SHA1(37167c84a39141c179f94800f207dac3aabc5478) )
+ ROM_LOAD16_BYTE( "251d.c8", 0x3000001, 0x800000, CRC(4c2fad1e) SHA1(26779e79296eb1988a8c4d60d2e1baf041f2c0cf) )
+ROM_END
+
+ROM_START( kof99eh ) /* The King of Fighters '99 - Enhance by Ydmis - (Can choose Krizalid, Krizalid', Kyo and Iori - ultra kill start is max) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251eh.p1", 0x000000, 0x100000, CRC(93f05c57) SHA1(e92e18e0572ae313952b2416c76d06c86202f755) )
+ ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99ehr ) /* The King of Fighters '99 - Remix by Raymonose - (Can choose Krizalid, Krizalid', Kyo and Iori - ultra kill start is max - ultra power hack) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251ehr.p1", 0x000000, 0x100000, CRC(08dfc6cb) SHA1(5f3fed5e1c598c580aa33b66aeb92d5d95d2b2e6) )
+ ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99eur )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251eur.p1", 0x000000, 0x100000, CRC(66fa20fd) SHA1(6fbda6db41558e4d7a073c7d5fc568f7cc57df2d) )
+ ROM_LOAD16_WORD_SWAP( "251eur.p2", 0x100000, 0x400000, CRC(aec93904) SHA1(9270e1a920c6f99dc2b716fc1d3536ce7783cd74) )
+
+ NEO_SFIX_128K( "251eur.s1", CRC(a6747969) SHA1(6577c00aceb0d612819c703b3334ebb6c760e126) )
+
+ NEO_BIOS_AUDIO_128K( "251ae.m1", CRC(f847e188) SHA1(0b98595a457292b04f518afcc82c2d6b8f249a7b) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251ae.v1", 0x000000, 0x400000, CRC(4ae46226) SHA1(77dbd53772e1e5000a091b9ff4b3cdc14b62ab0b) )
+ ROM_LOAD( "251ae.v2", 0x400000, 0x400000, CRC(07d70650) SHA1(70d274771c07215268292f91517ec61634e32611) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251eur.c1", 0x0000000, 0x800000, CRC(c7e8bf32) SHA1(ede68ac10356f6824fa6b30e558038e78b604caf) )
+ ROM_LOAD16_BYTE( "251eur.c2", 0x0000001, 0x800000, CRC(4e8f9f7d) SHA1(3a60df66bb24702041facb71025241483e5a1832) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251eur.c7", 0x3000000, 0x800000, CRC(f0b5ff02) SHA1(b9a25e6dad48547acce8edb5623be9d35bff1b4c) )
+ ROM_LOAD16_BYTE( "251eur.c8", 0x3000001, 0x800000, CRC(7107b8d5) SHA1(6754113de3eb6a34c1913bb5117dd12d705b961c) )
+ROM_END
+
+ROM_START( kof99eur1 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251eur1.p1", 0x000000, 0x100000, CRC(a10ddd49) SHA1(0d524db74f414d2ac5694b9f0fd8a39e1bc41322) )
+ ROM_LOAD16_WORD_SWAP( "251eur1.p2", 0x100000, 0x400000, CRC(cbb73011) SHA1(984a0581a146bde46834ea3672c6003c5eb4539a) )
+
+ NEO_SFIX_128K( "251eur1.s1", CRC(f0c559ea) SHA1(43f7409fa56a851e621d42d76c7be440427c6ad3) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251eur.c1", 0x0000000, 0x800000, CRC(c7e8bf32) SHA1(ede68ac10356f6824fa6b30e558038e78b604caf) )
+ ROM_LOAD16_BYTE( "251eur.c2", 0x0000001, 0x800000, CRC(4e8f9f7d) SHA1(3a60df66bb24702041facb71025241483e5a1832) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251eur1.c7", 0x3000000, 0x800000, CRC(295e8e9c) SHA1(26c6df1ec94b0c524b2477223b645dc797e1e198) )
+ ROM_LOAD16_BYTE( "251eur1.c8", 0x3000001, 0x800000, CRC(638614a6) SHA1(8a9d8fee7272e13eb500faefc5125ed0844acf07) )
+ROM_END
+
+ROM_START( kof99eur2 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251eur2.p1", 0x000000, 0x100000, CRC(df07d4f6) SHA1(b14c6449bffcb3b6719408e5ea48a18b43536f64) )
+ ROM_LOAD16_WORD_SWAP( "251eur2.p2", 0x100000, 0x400000, CRC(4b6fdd2b) SHA1(2321c4e0f8da21fc47b3db782c50598810ebae9a) )
+
+ NEO_SFIX_128K( "251sr.s1", CRC(08055c7a) SHA1(682e0084e62b547482929babe828027fdd64cde0) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251eur.c1", 0x0000000, 0x800000, CRC(c7e8bf32) SHA1(ede68ac10356f6824fa6b30e558038e78b604caf) )
+ ROM_LOAD16_BYTE( "251eur.c2", 0x0000001, 0x800000, CRC(4e8f9f7d) SHA1(3a60df66bb24702041facb71025241483e5a1832) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251eur2.c7", 0x3000000, 0x800000, CRC(52da5196) SHA1(956fc48d62f397c45b576f08003c1360ecd7f9ed) )
+ ROM_LOAD16_BYTE( "251eur2.c8", 0x3000001, 0x800000, CRC(f5276981) SHA1(0a70429be7a8488f73b4f2d071ccfe9c24c9cdb4) )
+ROM_END
+
+ROM_START( kof99eur3 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251eur3.p1", 0x000000, 0x100000, CRC(31ebbcd6) SHA1(236dc2b5b53bbde0e0fb3fe5101341dd1ffee1cd) )
+ ROM_LOAD16_WORD_SWAP( "251eur3.p2", 0x100000, 0x400000, CRC(b777285d) SHA1(ed613324ded46983dd3a40bd3f00c34b37166c31) )
+
+ NEO_SFIX_128K( "251eur.s1", CRC(a6747969) SHA1(6577c00aceb0d612819c703b3334ebb6c760e126) )
+
+ NEO_BIOS_AUDIO_128K( "251ae.m1", CRC(f847e188) SHA1(0b98595a457292b04f518afcc82c2d6b8f249a7b) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251ae.v1", 0x000000, 0x400000, CRC(4ae46226) SHA1(77dbd53772e1e5000a091b9ff4b3cdc14b62ab0b) )
+ ROM_LOAD( "251ae.v2", 0x400000, 0x400000, CRC(07d70650) SHA1(70d274771c07215268292f91517ec61634e32611) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251eur.c1", 0x0000000, 0x800000, CRC(c7e8bf32) SHA1(ede68ac10356f6824fa6b30e558038e78b604caf) )
+ ROM_LOAD16_BYTE( "251eur.c2", 0x0000001, 0x800000, CRC(4e8f9f7d) SHA1(3a60df66bb24702041facb71025241483e5a1832) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251eur.c7", 0x3000000, 0x800000, CRC(f0b5ff02) SHA1(b9a25e6dad48547acce8edb5623be9d35bff1b4c) )
+ ROM_LOAD16_BYTE( "251eur.c8", 0x3000001, 0x800000, CRC(7107b8d5) SHA1(6754113de3eb6a34c1913bb5117dd12d705b961c) )
+ROM_END
+
+ROM_START( kof99eur4 ) // multijet kof99eur
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251eur4.p1", 0x000000, 0x100000, CRC(327b963c) SHA1(c6a61f2d1ab7339d6b56d5f88575c4d8e1b8f261) )
+ ROM_LOAD16_WORD_SWAP( "251eur4.p2", 0x100000, 0x400000, CRC(09d34c25) SHA1(40de394d28b86b63382226cc8943e06740d0eaf5) )
+
+ NEO_SFIX_128K( "251eur1.s1", CRC(f0c559ea) SHA1(43f7409fa56a851e621d42d76c7be440427c6ad3) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251eur.c1", 0x0000000, 0x800000, CRC(c7e8bf32) SHA1(ede68ac10356f6824fa6b30e558038e78b604caf) )
+ ROM_LOAD16_BYTE( "251eur.c2", 0x0000001, 0x800000, CRC(4e8f9f7d) SHA1(3a60df66bb24702041facb71025241483e5a1832) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251eur2.c7", 0x3000000, 0x800000, CRC(52da5196) SHA1(956fc48d62f397c45b576f08003c1360ecd7f9ed) )
+ ROM_LOAD16_BYTE( "251eur2.c8", 0x3000001, 0x800000, CRC(f5276981) SHA1(0a70429be7a8488f73b4f2d071ccfe9c24c9cdb4) )
+ROM_END
+
+ROM_START( kof99ev2 ) // multijet
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251ev2.p1", 0x000000, 0x100000, CRC(e97d9d67) SHA1(bcb77706868757de09c74a0af664747e7e8c412a) )
+ ROM_LOAD16_WORD_SWAP( "251ev2.p2", 0x100000, 0x400000, CRC(947241fa) SHA1(66aac76cfe54e7aa874bb2b2e10de2eee2952400) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99evo )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251evo.p1", 0x000000, 0x100000, CRC(18960f8b) SHA1(41dae74f7d429873946752b28527655466dd38c9) )
+ ROM_LOAD16_WORD_SWAP( "251evo.p2", 0x100000, 0x400000, CRC(c6431b4a) SHA1(cd30903f200428b9ea6901aab1bd7fdd1672713f) )
+
+ NEO_SFIX_128K( "251revo.s1", CRC(1b0133fe) SHA1(7f8e743bc0c8384dec12ca7007d32b23fef8875d) )
+
+ NEO_BIOS_AUDIO_128K( "251wet.m1", CRC(8c96b012) SHA1(8ae72cd0d88c742791b1f1f1d2af2253bf4f762d) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) )
+ ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251d.c7", 0x3000000, 0x800000, CRC(2f68fdeb) SHA1(37167c84a39141c179f94800f207dac3aabc5478) )
+ ROM_LOAD16_BYTE( "251d.c8", 0x3000001, 0x800000, CRC(4c2fad1e) SHA1(26779e79296eb1988a8c4d60d2e1baf041f2c0cf) )
+ROM_END
+
+ROM_START( kof99fc ) /* The King of Fighters '99 - Remix Pro200 Final - FCHT */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251fc.p1", 0x000000, 0x100000, CRC(6d3d14c4) SHA1(f40784505b82f59d289ce45e3de8f7fb8e87069b) )
+ ROM_LOAD16_WORD_SWAP( "251fc.p2", 0x100000, 0x400000, CRC(01e111b3) SHA1(4ae2fbd552246779146684d2191a7bc9a3554c59) )
+
+ NEO_SFIX_128K( "251fc.s1", CRC(ca942904) SHA1(f84b79282bb2de61d24faacca1feda0187e42dcd) )
+
+ NEO_BIOS_AUDIO_128K( "251fc.m1", CRC(0cb24d46) SHA1(7e6f41c093e2cc7353592cfda53e855b5e03c4e3) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251fc.v3", 0x800000, 0x400000, CRC(403628da) SHA1(e9fddfbedfdb70ba345820d95b154c1c73101a1c) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251fc.c1", 0x0000000, 0x800000, CRC(f0409101) SHA1(419ca1ea525f76d92b562e30bb043d39bd9a6c41) )
+ ROM_LOAD16_BYTE( "251fc.c2", 0x0000001, 0x800000, CRC(3a9eff54) SHA1(8eb1918e7d6f823c8965546cd064f44b1b6982f2) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251fc.c5", 0x2000000, 0x800000, CRC(dd023649) SHA1(e65c3e82a66553a4f87277984e630ec7e288626a) )
+ ROM_LOAD16_BYTE( "251fc.c6", 0x2000001, 0x800000, CRC(b8f60a8c) SHA1(f6a31066ffbf87937701df80abed8d9603629a5d) )
+ ROM_LOAD16_BYTE( "251fc.c7", 0x3000000, 0x800000, CRC(1dfd5103) SHA1(edbe56d9434abdff58e7e9ceed7ea3d7975c40d2) )
+ ROM_LOAD16_BYTE( "251fc.c8", 0x3000001, 0x800000, CRC(23fe3c43) SHA1(b601a14cd023b28f8e8eed8afd6a05d2c3df115a) )
+ROM_END
+
+ROM_START( kof99fc1 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251fc1.p1", 0x000000, 0x100000, CRC(48b8641d) SHA1(cb8e9992762d00cdb04f019398975d8d3b0cf1eb) )
+ ROM_LOAD16_WORD_SWAP( "251fc1.p2", 0x100000, 0x400000, CRC(143a7080) SHA1(29007713d2f1298e890d82d8a11c5700a6e680e6) )
+
+ NEO_SFIX_128K( "251fc.s1", CRC(ca942904) SHA1(f84b79282bb2de61d24faacca1feda0187e42dcd) )
+
+ NEO_BIOS_AUDIO_128K( "251fc.m1", CRC(0cb24d46) SHA1(7e6f41c093e2cc7353592cfda53e855b5e03c4e3) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251fc.v3", 0x800000, 0x400000, CRC(403628da) SHA1(e9fddfbedfdb70ba345820d95b154c1c73101a1c) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251fc.c1", 0x0000000, 0x800000, CRC(f0409101) SHA1(419ca1ea525f76d92b562e30bb043d39bd9a6c41) )
+ ROM_LOAD16_BYTE( "251fc.c2", 0x0000001, 0x800000, CRC(3a9eff54) SHA1(8eb1918e7d6f823c8965546cd064f44b1b6982f2) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251fc.c5", 0x2000000, 0x800000, CRC(dd023649) SHA1(e65c3e82a66553a4f87277984e630ec7e288626a) )
+ ROM_LOAD16_BYTE( "251fc.c6", 0x2000001, 0x800000, CRC(b8f60a8c) SHA1(f6a31066ffbf87937701df80abed8d9603629a5d) )
+ ROM_LOAD16_BYTE( "251fc.c7", 0x3000000, 0x800000, CRC(1dfd5103) SHA1(edbe56d9434abdff58e7e9ceed7ea3d7975c40d2) )
+ ROM_LOAD16_BYTE( "251fc.c8", 0x3000001, 0x800000, CRC(23fe3c43) SHA1(b601a14cd023b28f8e8eed8afd6a05d2c3df115a) )
+ROM_END
+
+ROM_START( kof99fc2 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251fc2.p1", 0x000000, 0x100000, CRC(7f14f664) SHA1(0f17b6fbe919b78f63de4e10fc95c6e7e688206d) )
+ ROM_LOAD16_WORD_SWAP( "251fc.p2", 0x100000, 0x400000, CRC(01e111b3) SHA1(4ae2fbd552246779146684d2191a7bc9a3554c59) )
+
+ NEO_SFIX_128K( "251fc.s1", CRC(ca942904) SHA1(f84b79282bb2de61d24faacca1feda0187e42dcd) )
+
+ NEO_BIOS_AUDIO_128K( "251fc.m1", CRC(0cb24d46) SHA1(7e6f41c093e2cc7353592cfda53e855b5e03c4e3) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251fc.v3", 0x800000, 0x400000, CRC(403628da) SHA1(e9fddfbedfdb70ba345820d95b154c1c73101a1c) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251fc.c1", 0x0000000, 0x800000, CRC(f0409101) SHA1(419ca1ea525f76d92b562e30bb043d39bd9a6c41) )
+ ROM_LOAD16_BYTE( "251fc.c2", 0x0000001, 0x800000, CRC(3a9eff54) SHA1(8eb1918e7d6f823c8965546cd064f44b1b6982f2) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251fc.c5", 0x2000000, 0x800000, CRC(dd023649) SHA1(e65c3e82a66553a4f87277984e630ec7e288626a) )
+ ROM_LOAD16_BYTE( "251fc.c6", 0x2000001, 0x800000, CRC(b8f60a8c) SHA1(f6a31066ffbf87937701df80abed8d9603629a5d) )
+ ROM_LOAD16_BYTE( "251fc.c7", 0x3000000, 0x800000, CRC(1dfd5103) SHA1(edbe56d9434abdff58e7e9ceed7ea3d7975c40d2) )
+ ROM_LOAD16_BYTE( "251fc.c8", 0x3000001, 0x800000, CRC(23fe3c43) SHA1(b601a14cd023b28f8e8eed8afd6a05d2c3df115a) )
+ROM_END
+
+ROM_START( kof99fmi )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251fmi.p1", 0x000000, 0x100000, CRC(ac853905) SHA1(e72abc420f3213ca90a60e46674ced48b0ef2f30) )
+ ROM_LOAD16_WORD_SWAP( "251fmi.p2", 0x100000, 0x400000, CRC(abbc9bf3) SHA1(72ac57e9b12f1533712379d1d33b6a80bcd7a4e1) )
+
+ NEO_SFIX_128K( "251bh.s1", CRC(b696a8c9) SHA1(3388feab11374a6eca6f1615fdfd93464f86dcee) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) )
+ ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251xxx.c7", 0x3000000, 0x800000, CRC(a02acaf8) SHA1(4136b4bedf51e02f0e22488bf8ca21847ad63f93) )
+ ROM_LOAD16_BYTE( "251xxx.c8", 0x3000001, 0x800000, CRC(e3cee593) SHA1(1ea4b9f13344b33348ef3fb95b325509399ef756) )
+ROM_END
+
+ROM_START( kof99hbi )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251hbi.p1", 0x000000, 0x100000, CRC(0b17b5fb) SHA1(72e0ad53fa4081df04c5aec193caf83c5baaaa7b) )
+ ROM_LOAD16_WORD_SWAP( "251hbi.p2", 0x100000, 0x400000, CRC(b73cabf7) SHA1(8c2e387c8f66ca6f710be5acf21bf56284f1bbda) )
+
+ NEO_SFIX_128K( "251revo.s1", CRC(1b0133fe) SHA1(7f8e743bc0c8384dec12ca7007d32b23fef8875d) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) )
+ ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251hbi.c7", 0x3000000, 0x800000, CRC(0e12697e) SHA1(65a8d5666d98ba53c3d3e5b29f24f4306c32534c) )
+ ROM_LOAD16_BYTE( "251hbi.c8", 0x3000001, 0x800000, CRC(ca3b76c8) SHA1(d28c818f6561b06c2ac2d95b76f704d566549caa) )
+ROM_END
+
+ROM_START( kof99iori ) /* The King of Fighters '99 - iori */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251iori.p1", 0x000000, 0x100000, CRC(6140956d) SHA1(e4dabd3b134701459c1360fffec4bcb27a48dac0) )
+ ROM_LOAD16_WORD_SWAP( "251iori.p2", 0x100000, 0x400000, CRC(d31111e3) SHA1(c6396c0eefd464320b0c3d68f7bcfaddb31b63ba) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99jh ) /* The King of Fighters '99 - Hack by Jason/K3 - (Simple move revision - Athena style change - can choose Krizalid - can choose Kyo and Iori in MVS mode 20031018) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251jh.p1", 0x000000, 0x100000, CRC(855936ca) SHA1(bf788fa7c49cf3365e1e859df3811a5ca0ff69cc) )
+ ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99jho ) /* [OLD] The King of Fighters '99 N - Hack by Jason/K3 - (Simple move revision - Athena style change - can choose Krizalid - can choose Kyo and Iori in MVS mode 20030924) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251jho.p1", 0x000000, 0x100000, CRC(690ea82d) SHA1(2938738e57514a672c79abe1d3696c51f9fdc04d) )
+ ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99lb ) /* The King of Fighters '99 - Hack by lb70 */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251lb.p1", 0x000000, 0x100000, CRC(38d49ceb) SHA1(474e5bca53cfb78727fbe17577fbd7f710b78c9b) )
+ ROM_LOAD16_WORD_SWAP( "251lb.p2", 0x100000, 0x400000, CRC(095524ce) SHA1(59009b5f74d0c02f85bf2e59f2833d65863ba8c3) )
+
+ NEO_SFIX_128K( "251bh.s1", CRC(b696a8c9) SHA1(3388feab11374a6eca6f1615fdfd93464f86dcee) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) )
+ ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251lb.c7", 0x3000000, 0x800000, CRC(c5a4d2e6) SHA1(ca0e8b45b126bc091242ad62c846c1b2a685b396) )
+ ROM_LOAD16_BYTE( "251lb.c8", 0x3000001, 0x800000, CRC(7160d0dd) SHA1(37a3fb72a32bcfdd2ba3ae7a957c4b3ba593b528) )
+ROM_END
+
+ROM_START( kof99m ) /* The King of Fighters '99 - Hack by MasakiAnton - (Can choose Krizalid and Krizalid') */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251m.p1", 0x000000, 0x100000, CRC(e056b767) SHA1(86cc38fa6158aa6b72fe0cb74a43f98ef4b285c6) )
+ ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99nd )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "152-p1.p1", 0x000000, 0x100000, CRC(f2c7ddfa) SHA1(d592eecc53d442c55c2f26a6a721fdf2924d2a5b) )
+ ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) )
+ ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251d.c7", 0x3000000, 0x800000, CRC(2f68fdeb) SHA1(37167c84a39141c179f94800f207dac3aabc5478) )
+ ROM_LOAD16_BYTE( "251d.c8", 0x3000001, 0x800000, CRC(4c2fad1e) SHA1(26779e79296eb1988a8c4d60d2e1baf041f2c0cf) )
+ROM_END
+
+ROM_START( kof99ndh )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251ndh.p1", 0x000000, 0x100000, CRC(eedcc5bd) SHA1(8280c4329d666b4831c766853f5334355dc40cc9) )
+ ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) )
+
+ NEO_SFIX_128K( "251bh.s1", CRC(b696a8c9) SHA1(3388feab11374a6eca6f1615fdfd93464f86dcee) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) )
+ ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251d.c7", 0x3000000, 0x800000, CRC(2f68fdeb) SHA1(37167c84a39141c179f94800f207dac3aabc5478) )
+ ROM_LOAD16_BYTE( "251d.c8", 0x3000001, 0x800000, CRC(4c2fad1e) SHA1(26779e79296eb1988a8c4d60d2e1baf041f2c0cf) )
+ROM_END
+
+ROM_START( kof99ndis ) // all complete
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251ndis.p1", 0x000000, 0x4550f6, CRC(0ca863be) SHA1(4da27476f81fd1d10ff2ba8fc7d12b662804cc5d) )
+ ROM_LOAD16_WORD_SWAP( "251ndis.p2", 0x100000, 0x400000, CRC(c012ff9f) SHA1(ef53386e34464eaaed1fcba3d4d1dcfb269f995c) )
+
+ NEO_SFIX_128K( "251ndis.s1", CRC(16edaa55) SHA1(d8601a14c703e56c0635e2f7540492b164447d6b) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) )
+ ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251d.c7", 0x3000000, 0x800000, CRC(2f68fdeb) SHA1(37167c84a39141c179f94800f207dac3aabc5478) )
+ ROM_LOAD16_BYTE( "251d.c8", 0x3000001, 0x800000, CRC(4c2fad1e) SHA1(26779e79296eb1988a8c4d60d2e1baf041f2c0cf) )
+ROM_END
+
+ROM_START( kof99nevo ) // multijet
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251nevo.p1", 0x000000, 0x100000, CRC(1afba5f1) SHA1(646c04030f85e1b1e06d830379f6c9b6b3bca505) )
+ ROM_LOAD16_WORD_SWAP( "251nevo.p2", 0x100000, 0x400000, CRC(7f86d784) SHA1(a2ca66b5f04ed9855c6fff8d5b1e9c426df8aa3d) )
+
+ NEO_SFIX_128K( "251revo.s1", CRC(1b0133fe) SHA1(7f8e743bc0c8384dec12ca7007d32b23fef8875d) )
+
+ NEO_BIOS_AUDIO_128K( "251wet.m1", CRC(8c96b012) SHA1(8ae72cd0d88c742791b1f1f1d2af2253bf4f762d) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) )
+ ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251d.c7", 0x3000000, 0x800000, CRC(2f68fdeb) SHA1(37167c84a39141c179f94800f207dac3aabc5478) )
+ ROM_LOAD16_BYTE( "251d.c8", 0x3000001, 0x800000, CRC(4c2fad1e) SHA1(26779e79296eb1988a8c4d60d2e1baf041f2c0cf) )
+ROM_END
+
+ROM_START( kof99ob )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251ob.p1", 0x000000, 0x100000, CRC(b6147b23) SHA1(921dad6a2f1011ad67a82a6f9874b30658f233b0) )
+ ROM_LOAD16_WORD_SWAP( "251ob.p2", 0x100000, 0x400000, CRC(f88a4970) SHA1(6cce092f0d60aff7c0fcad796e9604cdf440219f) )
+
+ NEO_SFIX_128K( "251revo.s1", CRC(1b0133fe) SHA1(7f8e743bc0c8384dec12ca7007d32b23fef8875d) )
+
+ NEO_BIOS_AUDIO_128K( "251ob.s1", CRC(151c7a8d) SHA1(ccf557d1818edb579aa72e05f494305e5449d5ee) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251ob.v1", 0x000000, 0x400000, CRC(33d2e8b4) SHA1(f1ff9facc59eadc257edc06ba6bb3dddf27cfae2) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) )
+ ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251ob.c7", 0x3000000, 0x800000, CRC(f3b25375) SHA1(80d6b06adce5190bb71f2f0233db60008a33c51e) )
+ ROM_LOAD16_BYTE( "251ob.c8", 0x3000001, 0x800000, CRC(d2d0041a) SHA1(02283e2ac22e2f0521c3b2d126aff624ac820b63) )
+ROM_END
+
+ROM_START( kof99ob2 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251ob2.p1", 0x000000, 0x100000, CRC(13f57712) SHA1(d08cc331049950d19e59a6016a2dcd8cdc733a14) )
+ ROM_LOAD16_WORD_SWAP( "251ob2.p2", 0x100000, 0x400000, CRC(7a747b84) SHA1(dd38867d055d51465630254dcff32e9fdc9f523e) )
+
+ NEO_SFIX_128K( "251sr.s1", CRC(08055c7a) SHA1(682e0084e62b547482929babe828027fdd64cde0) )
+
+ NEO_BIOS_AUDIO_128K( "251ob.s1", CRC(151c7a8d) SHA1(ccf557d1818edb579aa72e05f494305e5449d5ee) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251ob.v1", 0x000000, 0x400000, CRC(33d2e8b4) SHA1(f1ff9facc59eadc257edc06ba6bb3dddf27cfae2) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) )
+ ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251ob2.c7", 0x3000000, 0x800000, CRC(b9123865) SHA1(1f99321a2695a8be372c27bd012b5d476fbef318) )
+ ROM_LOAD16_BYTE( "251ob2.c8", 0x3000001, 0x800000, CRC(f34606e5) SHA1(7ba4b28afda82383361e935dd83dc9d158fc2e5e) )
+ROM_END
+
+ROM_START( kof99pb )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251pb.p1", 0x000000, 0x100000, CRC(1cdf4d3e) SHA1(2019ffe300651d9faabc65e53e95d4dc98bba6bf) )
+ ROM_LOAD16_WORD_SWAP( "251pb.p2", 0x100000, 0x400000, CRC(e0a0100a) SHA1(21a723818faa1bfbeff850caa1837f1ad566adda) )
+
+ NEO_SFIX_128K( "251pb.s1", CRC(0b3d79d3) SHA1(2647c617c52d9955ee29520c416b59febfe7c0db) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) )
+ ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251pb.c7", 0x3000000, 0x800000, CRC(65c896fb) SHA1(7d673bca1b38438f7ceb7aab26fe2beb452c74e7) )
+ ROM_LOAD16_BYTE( "251pb.c8", 0x3000001, 0x800000, CRC(6db9afe1) SHA1(beeed20292320e2a742d31c2a3ad05ffeb0d6f61) )
+ROM_END
+
+ROM_START( kof99pjc1 ) /* The King of Fighters '99 - Colour fix by TcwLee - (Character colour change revision 1 200209xx) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "152-p1.p1", 0x000000, 0x100000, CRC(f2c7ddfa) SHA1(d592eecc53d442c55c2f26a6a721fdf2924d2a5b) )
+ ROM_LOAD16_WORD_SWAP( "251pjc1.p2", 0x100000, 0x400000, CRC(79aa31b0) SHA1(04a15e211b4453cb4e249f8cbd175ce09136d92a) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99pjc2 ) /* The King of Fighters '99 - Colour fix by TcwLee - (Character colour change revision 2 20030302) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "152-p1.p1", 0x000000, 0x100000, CRC(f2c7ddfa) SHA1(d592eecc53d442c55c2f26a6a721fdf2924d2a5b) )
+ ROM_LOAD16_WORD_SWAP( "251pjc2.p2", 0x100000, 0x400000, CRC(024c5b3f) SHA1(e52b9035c5853027b37534c97872fdd1dd0a2791) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99pjc3 ) /* The King of Fighters '99 N - (kof99pjcr3) - Colour fix by TcwLee - (Character colour change revision 3 20030720) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "152-p1.p1", 0x000000, 0x100000, CRC(f2c7ddfa) SHA1(d592eecc53d442c55c2f26a6a721fdf2924d2a5b) )
+ ROM_LOAD16_WORD_SWAP( "251pjc3.p2", 0x100000, 0x400000, CRC(8054a5d5) SHA1(b240d427baf1c68cdc4ce2ab9e8d93471afa701a) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99pjco ) /* [OLD] The King of Fighters '99 N - Colour fix by TcwLee - (Character colour change) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "152-p1.p1", 0x000000, 0x100000, CRC(f2c7ddfa) SHA1(d592eecc53d442c55c2f26a6a721fdf2924d2a5b) )
+ ROM_LOAD16_WORD_SWAP( "251pjco.p2", 0x100000, 0x400000, CRC(4b08d6b3) SHA1(481b740bde2141abbdc6c516d27564d9ffa03662) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99pt ) /* The King of Fighters '99 - Hack by Creamymami - (Ultra kill hack) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251pt.p1", 0x000000, 0x100000, CRC(c14497cc) SHA1(ce275b3c146b48b40ded3a7754c71b722d6eab67) )
+ ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99r ) /* The King of Fighters '99 - Hack by Raymonose - (General character move change 200310xx) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251r.p1", 0x000000, 0x100000, CRC(7374f261) SHA1(1277e33d4ae4e40b0dbb49c9ac156cd132b6d890) )
+ ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99rd ) // multijet
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "152-p1.p1", 0x000000, 0x100000, CRC(f2c7ddfa) SHA1(d592eecc53d442c55c2f26a6a721fdf2924d2a5b) )
+ ROM_LOAD16_WORD_SWAP( "251rd.p2", 0x100000, 0x400000, CRC(316672c6) SHA1(a8738e8ee3f4618e313a978f831483bb45329c04) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99rev ) // multijet
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251rev.p1", 0x000000, 0x100000, CRC(b53286e7) SHA1(f0d143f21a679943caa6b94645210fd4c332c1eb) )
+ ROM_LOAD16_WORD_SWAP( "251rev.p2", 0x100000, 0x400000, CRC(7a7dcf34) SHA1(df424b6b44f007721bb1cf3fee00f4bedb5a63e6) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99revo )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251revo.p1", 0x000000, 0x100000, CRC(38FD8609) SHA1(fded1624a670835ae107dc19707c2fa8b06d6cea) )
+ ROM_LOAD16_WORD_SWAP( "251revo.p2", 0x100000, 0x400000, CRC(361F64DB) SHA1(a789df74ff197f2c552a87be4db8d321603d404e) )
+
+ NEO_SFIX_128K( "251revo.s1", CRC(1b0133fe) SHA1(7f8e743bc0c8384dec12ca7007d32b23fef8875d) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) )
+ ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251revo.c7", 0x3000000, 0x800000, CRC(4E8865B2) SHA1(8d7283d3782278b4fd5344a8986b1c9611118c32) )
+ ROM_LOAD16_BYTE( "251revo.c8", 0x3000001, 0x800000, CRC(040FCFCB) SHA1(27cb93f13ffa6f1ef97d2b967ffd4b4d757b1ca0) )
+ROM_END
+
+ROM_START( kof99roll )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251roll.p1", 0x000000, 0x100000, CRC(4afaaadc) SHA1(afb68252a57f4e67aadf7a9eb1b289d1e5d3dc8a) )
+ ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) )
+ ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251d.c7", 0x3000000, 0x800000, CRC(2f68fdeb) SHA1(37167c84a39141c179f94800f207dac3aabc5478) )
+ ROM_LOAD16_BYTE( "251d.c8", 0x3000001, 0x800000, CRC(4c2fad1e) SHA1(26779e79296eb1988a8c4d60d2e1baf041f2c0cf) )
+ROM_END
+
+ROM_START( kof99rp ) /* The King of Fighters '99 - KOF Remix PRO by FCHT - (Character move change v1.07a 20041224) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251rp.p1", 0x000000, 0x100000, CRC(5806CDD2) SHA1(279A8181374ECF77DA4605D1CBE1152324784B97) )
+ ROM_LOAD16_WORD_SWAP( "251rp.p2", 0x100000, 0x400000, CRC(C923EE2B) SHA1(98B4F40812D5479F7D6E683E5EF4002F4C86785C) )
+
+ NEO_SFIX_128K( "251rp.s1", CRC(963D51B3) SHA1(B50A585E1CF7B47052A3D6FD85F47EA739B08BA8) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99rp0 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251rp0.p1", 0x000000, 0x100000, CRC(0570df7e) SHA1(f6a66cf39e8aff68b2962115aa65c79ca222cc74) )
+ ROM_LOAD16_WORD_SWAP( "251rp.p2", 0x100000, 0x400000, CRC(c923ee2b) SHA1(98b4f40812d5479f7d6e683e5ef4002f4c86785c) )
+
+ NEO_SFIX_128K( "251rp.s1", CRC(963d51b3) SHA1(b50a585e1cf7b47052a3d6fd85f47ea739b08ba8) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) )
+ ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251d.c7", 0x3000000, 0x800000, CRC(2f68fdeb) SHA1(37167c84a39141c179f94800f207dac3aabc5478) )
+ ROM_LOAD16_BYTE( "251d.c8", 0x3000001, 0x800000, CRC(4c2fad1e) SHA1(26779e79296eb1988a8c4d60d2e1baf041f2c0cf) )
+ROM_END
+
+ROM_START( kof99rp1 ) /* [OLD] The King of Fighters '99 N - KOF Remix PRO by FCHT - (Character move change v1.02 final1 20031010) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251rp1.p1", 0x000000, 0x100000, CRC(c21d1580) SHA1(a81380d9f2e66036f92e02fe5b3b54741f2e59fc) )
+ ROM_LOAD16_WORD_SWAP( "251rp.p2", 0x100000, 0x400000, CRC(C923EE2B) SHA1(98B4F40812D5479F7D6E683E5EF4002F4C86785C) )
+
+ NEO_SFIX_128K( "251rp.s1", CRC(963D51B3) SHA1(B50A585E1CF7B47052A3D6FD85F47EA739B08BA8) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99rp2 ) /* [OLD][BETA] The King of Fighters '99 N - (kof99rp101c-b) - Remix PRO by FCHT - (Remix pro 1.01c by FCHT Built 0309h 200309xx) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251rp2.p1", 0x000000, 0x100000, CRC(07c52235) SHA1(2ca600d7c0d4bf2780c1313f31e23ec767d1f636) )
+ ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) )
+
+ NEO_SFIX_128K( "251rp.s1", CRC(963D51B3) SHA1(B50A585E1CF7B47052A3D6FD85F47EA739B08BA8) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99rp3 ) /* [OLD][BETA] The King of Fighters '99 N - (kof99rp101b-b) - Remix PRO by FCHT - (Remix pro 1.01b by FCHT Built 0309e 200309xx) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251rp3.p1", 0x000000, 0x100000, CRC(7e2da123) SHA1(4a5275ccce118244fb02416ef1cca72b71a55b1a) )
+ ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) )
+
+ NEO_SFIX_128K( "251rp.s1", CRC(963D51B3) SHA1(B50A585E1CF7B47052A3D6FD85F47EA739B08BA8) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99rp4 ) /* [OLD][BETA] The King of Fighters '99 N - (kof99rp101a2-b) - Remix PRO by FCHT - (Remix pro 1.01a2 by FCHT 200309xx) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251rp4.p1", 0x000000, 0x100000, CRC(0758dfef) SHA1(3a3254a2dcb073da00351921291fb9595a504a3c) )
+ ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) )
+
+ NEO_SFIX_128K( "251rp.s1", CRC(963D51B3) SHA1(B50A585E1CF7B47052A3D6FD85F47EA739B08BA8) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99rp5 ) /* [OLD][BETA] The King of Fighters '99 N - (kof99rp101a-b) - Remix PRO by FCHT - (Remix pro 1.01a by FCHT 200309xx) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251rp5.p1", 0x000000, 0x100000, CRC(b00aa815) SHA1(bf199a9977d542b38d953cf9c9347e22f8c31fbb) )
+ ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) )
+
+ NEO_SFIX_128K( "251rp.s1", CRC(963D51B3) SHA1(B50A585E1CF7B47052A3D6FD85F47EA739B08BA8) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99rp6 ) /* [OLD][BETA] The King of Fighters '99 N - (kof99rp101-b) - Remix PRO by FCHT - (Remix pro 1.01 by FCHT Built 0308b 200309xx) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251rp6.p1", 0x000000, 0x100000, CRC(9c3308e7) SHA1(e443a8bd184f6fc49f9d288b2884d95a5c7bca63) )
+ ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) )
+
+ NEO_SFIX_128K( "251rp.s1", CRC(963D51B3) SHA1(B50A585E1CF7B47052A3D6FD85F47EA739B08BA8) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99rp7 ) /* [OLD][BETA] The King of Fighters '99 N - (kof99rpcex-b) - Remix PRO by FCHT - (Remix pro 1.00c by FCHT Built 0308e EX-Version) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251rp7.p1", 0x000000, 0x100000, CRC(da91f15c) SHA1(64e2b0bc6592b5ca148ccec9f4ccfa0d6ac4aaf7) )
+ ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) )
+
+ NEO_SFIX_128K( "251rp.s1", CRC(963D51B3) SHA1(B50A585E1CF7B47052A3D6FD85F47EA739B08BA8) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99rp8 ) /* [OLD][BETA] The King of Fighters '99 N - (kof99rpc-b) - Remix PRO by FCHT - (Remix pro 1.00c by FCHT Built 0308e) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251rp8.p1", 0x000000, 0x100000, CRC(55d97c9a) SHA1(35b176cc4005c07478df1dc99fe40344210e690b) )
+ ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) )
+
+ NEO_SFIX_128K( "251rp.s1", CRC(963D51B3) SHA1(B50A585E1CF7B47052A3D6FD85F47EA739B08BA8) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99rp9 ) /* [OLD][BETA] The King of Fighters '99 N - (kof99rse-b) - Remix PRO by FCHT - (Remix pro 1.00b by FCHT - Enhance) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251rp9.p1", 0x000000, 0x100000, CRC(9ef748b0) SHA1(8f2cccc36d2ce019f8d0e69dec267240978bef4e) )
+ ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) )
+
+ NEO_SFIX_128K( "251rp.s1", CRC(963D51B3) SHA1(B50A585E1CF7B47052A3D6FD85F47EA739B08BA8) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99rpa ) /* [OLD][BETA] The King of Fighters '99 N - (kof99rps-b) - Remix PRO by FCHT - (Remix pro 1.00b by FCHT) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251rpa.p1", 0x000000, 0x100000, CRC(e390960c) SHA1(992f9ca6bffb34d589287ed1ab3c7a53d5940078) )
+ ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) )
+
+ NEO_SFIX_128K( "251rp.s1", CRC(963D51B3) SHA1(B50A585E1CF7B47052A3D6FD85F47EA739B08BA8) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99rpb ) /* [OLD][BETA] The King of Fighters '99 N - (kof99rpe-b) - Remix PRO by FCHT - (Remix pro 1.00a by FCHT - Enhance) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251rpb.p1", 0x000000, 0x100000, CRC(69f172ce) SHA1(c40f72d58331cd416154eef6f58d5398effe75ef) )
+ ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) )
+
+ NEO_SFIX_128K( "251rp.s1", CRC(963D51B3) SHA1(B50A585E1CF7B47052A3D6FD85F47EA739B08BA8) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99rpc ) /* [OLD][BETA] The King of Fighters '99 N - (kof99rp-b) - Remix PRO by FCHT - (Remix pro 1.00a by FCHT) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251rpc.p1", 0x000000, 0x100000, CRC(1496ac72) SHA1(60b4cb55ad8cfa27342b489fd2b53c5d41feea18) )
+ ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) )
+
+ NEO_SFIX_128K( "251rp.s1", CRC(963D51B3) SHA1(B50A585E1CF7B47052A3D6FD85F47EA739B08BA8) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99rpp ) /* [OLD] The King of Fighters '99 N - KOF Remix PRO PLUS by FCHT - (Character move change v1.02 FINAL PRO PLUS 20040327) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251rpp.p1", 0x000000, 0x100000, CRC(f954fc44) SHA1(654d1252dec3dfcf3fd3b8b19689bc68cd221e39) )
+ ROM_LOAD16_WORD_SWAP( "251rp.p2", 0x100000, 0x400000, CRC(C923EE2B) SHA1(98B4F40812D5479F7D6E683E5EF4002F4C86785C) )
+
+ NEO_SFIX_128K( "251rp.s1", CRC(963D51B3) SHA1(B50A585E1CF7B47052A3D6FD85F47EA739B08BA8) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99rr ) /* The King of Fighters '99 - Remix by Raymonose - (Character move change) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251rr.p1", 0x000000, 0x100000, CRC(fd7399b5) SHA1(bac6892fec986942bb02c00fe96d00fc11a0ddda) )
+ ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99seh ) /* The King of Fighters '99 - Super Enhance Hack by Creamymami and Ydmis - (Can choose Krizalid, Krizalid', Kyo and Iori - ultra power hack - ultra kill start is max) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251seh.p1", 0x000000, 0x100000, CRC(3dd574cf) SHA1(9005041b52e196639f70675abbc8949f3f52e6af) )
+ ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99sp )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251sp.p1", 0x000000, 0x100000, CRC(48017E49) SHA1(67b84e227a1b8389b660008d326cd2b4c2830101) )
+ ROM_LOAD16_WORD_SWAP( "251sp.p2", 0x100000, 0x400000, CRC(0B1396A9) SHA1(dbd0d462a0a7558dc35d8cfd01359e6fbf6e1f68) )
+
+ NEO_SFIX_128K( "251sp.s1", CRC(C72989A5) SHA1(c23bc663610340259a29aeaf536f90c244e218f8) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) )
+ ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) )
+ ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) )
+ ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) )
+ ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) )
+ ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) )
+ ROM_LOAD16_BYTE( "251sp.c7", 0x3000000, 0x800000, CRC(4E8BB555) SHA1(f68c597c1f10fb0f756e8252fa83de41ded27417) )
+ ROM_LOAD16_BYTE( "251sp.c8", 0x3000001, 0x800000, CRC(D79A6E0D) SHA1(f6b1b930a62982ef20d1374b213d246f6352d558) )
+ROM_END
+
+ROM_START( kof99spd ) // multijet
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "kc.neo-sma", 0x0c0000, 0x040000, CRC(6c9d0647) SHA1(2a0ce62ca6c18007e8fbe1b60475c7874ab79389) )
+ ROM_LOAD16_WORD_SWAP( "251spd.p1", 0x100000, 0x400000, CRC(11b8a2b5) SHA1(89f95746b76b4f730080921292970898dc296051) )
+ ROM_LOAD16_WORD_SWAP( "251-pg2.p2", 0x500000, 0x400000, CRC(d9057f51) SHA1(8d365b4dd40351495df99d6c765df1434b0b0548) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99sr )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251sr.p1", 0x000000, 0x100000, CRC(b96da0bf) SHA1(260b8fd7888b54f5f61fa07175dacd1743f1c6bb) )
+ ROM_LOAD16_WORD_SWAP( "251sr.p2", 0x100000, 0x400000, CRC(9f1d1660) SHA1(d23466a5aac70c69d10c6bec59f019419940d914) )
+
+ NEO_SFIX_128K( "251sr.s1", CRC(08055c7a) SHA1(682e0084e62b547482929babe828027fdd64cde0) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) )
+ ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251sr.c7", 0x3000000, 0x800000, CRC(65de862c) SHA1(83c0446f19ca567cd7664956f617f4f7625422b7) )
+ ROM_LOAD16_BYTE( "251sr.c8", 0x3000001, 0x800000, CRC(3ff457fe) SHA1(1838de77ceaf78cb75604f227ffdf59311c0bbe5) )
+ROM_END
+
+ROM_START( kof99srr ) /* The King of Fighters '99 - Remix by Raymonose - (Character move change) Super Remix Red */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251srr.p1", 0x000000, 0x100000, CRC(c7cd6ffe) SHA1(f0130b9bd80b4b9d452f53fac85853d9fa563144) )
+ ROM_LOAD16_WORD_SWAP( "251srr.p2", 0x100000, 0x400000, CRC(a7f4ed1d) SHA1(5f3024c66370c8b4be3a1b7bbe7225574c19fc4c) )
+
+ NEO_SFIX_128K( "251revo.s1", CRC(1b0133fe) SHA1(7f8e743bc0c8384dec12ca7007d32b23fef8875d) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) )
+ ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251d.c7", 0x3000000, 0x800000, CRC(2f68fdeb) SHA1(37167c84a39141c179f94800f207dac3aabc5478) )
+ ROM_LOAD16_BYTE( "251d.c8", 0x3000001, 0x800000, CRC(4c2fad1e) SHA1(26779e79296eb1988a8c4d60d2e1baf041f2c0cf) )
+ROM_END
+
+ROM_START( kof99srr1 ) // multijet kof99srr
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251srr.p1", 0x000000, 0x100000, CRC(c7cd6ffe) SHA1(f0130b9bd80b4b9d452f53fac85853d9fa563144) )
+ ROM_LOAD16_WORD_SWAP( "251rd.p2", 0x100000, 0x400000, CRC(316672c6) SHA1(a8738e8ee3f4618e313a978f831483bb45329c04) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) )
+ ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251d.c7", 0x3000000, 0x800000, CRC(2f68fdeb) SHA1(37167c84a39141c179f94800f207dac3aabc5478) )
+ ROM_LOAD16_BYTE( "251d.c8", 0x3000001, 0x800000, CRC(4c2fad1e) SHA1(26779e79296eb1988a8c4d60d2e1baf041f2c0cf) )
+ROM_END
+
+ROM_START( kof99the4 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251the4.p1", 0x000000, 0x100000, CRC(6055c72c) SHA1(45089a3e17e6476113f2c471632b3029b3344743) )
+ ROM_LOAD16_WORD_SWAP( "251the4.p2", 0x100000, 0x400000, CRC(62757ec3) SHA1(ad1d1f5b341e08ebb17a247c42b3e28dde989f12) )
+
+ NEO_SFIX_128K( "251revo.s1", CRC(1b0133fe) SHA1(7f8e743bc0c8384dec12ca7007d32b23fef8875d) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) )
+ ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251d.c7", 0x3000000, 0x800000, CRC(2f68fdeb) SHA1(37167c84a39141c179f94800f207dac3aabc5478) )
+ ROM_LOAD16_BYTE( "251d.c8", 0x3000001, 0x800000, CRC(4c2fad1e) SHA1(26779e79296eb1988a8c4d60d2e1baf041f2c0cf) )
+ROM_END
+
+ROM_START( kof99the42 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251the42.p1", 0x000000, 0x100000, CRC(d7d0b651) SHA1(de739b9f9ba5816a12ce7936d3f285d3ec8fc1f7) )
+ ROM_LOAD16_WORD_SWAP( "251the4.p2", 0x100000, 0x400000, CRC(62757ec3) SHA1(ad1d1f5b341e08ebb17a247c42b3e28dde989f12) )
+
+ NEO_SFIX_128K( "251revo.s1", CRC(1b0133fe) SHA1(7f8e743bc0c8384dec12ca7007d32b23fef8875d) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) )
+ ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251d.c7", 0x3000000, 0x800000, CRC(2f68fdeb) SHA1(37167c84a39141c179f94800f207dac3aabc5478) )
+ ROM_LOAD16_BYTE( "251d.c8", 0x3000001, 0x800000, CRC(4c2fad1e) SHA1(26779e79296eb1988a8c4d60d2e1baf041f2c0cf) )
+ROM_END
+
+ROM_START( kof99vor ) // all confirmed
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "vor.ka.neo-sma", 0x0c0000, 0x040000, CRC(ca267237) SHA1(9f7c3fbef8e9ae3a9e8990b93589b1d3325468f5) )
+ ROM_LOAD16_WORD_SWAP( "251vor.p1", 0x100000, 0x400000, CRC(a466e66d) SHA1(41653d6ca325d084cda851fecb677976f469978a) )
+ ROM_LOAD16_WORD_SWAP( "251vor.p2", 0x500000, 0x400000, CRC(2bf8ac94) SHA1(d6a9a9740819b91d01990ab999f41eef84361760) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251vor.c1", 0x000000, 0x800000, CRC(4b3b9454) SHA1(ee0178c9f90d43c704450ef3e39861826e9d3dad) )
+ ROM_LOAD16_BYTE( "251vor.c2", 0x000001, 0x800000, CRC(74f028c4) SHA1(2d1e1768a5d842292c5367c861e093f6cae02379) )
+ ROM_LOAD16_BYTE( "251vor.c3", 0x100000, 0x800000, CRC(51ecbae7) SHA1(2cf2e2ae3856a7e5d77af7f97d9dc3532d396b27) )
+ ROM_LOAD16_BYTE( "251vor.c4", 0x100001, 0x800000, CRC(96c0594b) SHA1(503844cc4c937caa6fe4a0a76f13cc6fbb47e94f) )
+ ROM_LOAD16_BYTE( "251vor.c5", 0x200000, 0x800000, CRC(8875aee9) SHA1(29e79c3a2f40ddcdd2d5432e37c5629cbbecd37f) )
+ ROM_LOAD16_BYTE( "251vor.c6", 0x200001, 0x800000, CRC(585786b7) SHA1(acfb462d467e914f165f67b8cc2be56937c0feaa) )
+ ROM_LOAD16_BYTE( "251vor.c7", 0x300000, 0x800000, CRC(a25152d1) SHA1(bb1dc7d5bff9a599e7ed234abd199c26d8103bbd) )
+ ROM_LOAD16_BYTE( "251vor.c8", 0x300001, 0x800000, CRC(2d8a1014) SHA1(dc729bc19b775bb62301d7f98cc9566b9aa8bf7a) )
+ROM_END
+
+ROM_START( kof99wet )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251ndh.p1", 0x000000, 0x100000, CRC(eedcc5bd) SHA1(8280c4329d666b4831c766853f5334355dc40cc9) )
+ ROM_LOAD16_WORD_SWAP( "251wet.p2", 0x100000, 0x400000, CRC(bdb6e48c) SHA1(af0ce253e48df64693c45a123c3ddb03e5679cba) )
+
+ NEO_SFIX_128K( "251revo.s1", CRC(1b0133fe) SHA1(7f8e743bc0c8384dec12ca7007d32b23fef8875d) )
+
+ NEO_BIOS_AUDIO_128K( "251wet.m1", CRC(8c96b012) SHA1(8ae72cd0d88c742791b1f1f1d2af2253bf4f762d) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) )
+ ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251d.c7", 0x3000000, 0x800000, CRC(2f68fdeb) SHA1(37167c84a39141c179f94800f207dac3aabc5478) )
+ ROM_LOAD16_BYTE( "251d.c8", 0x3000001, 0x800000, CRC(4c2fad1e) SHA1(26779e79296eb1988a8c4d60d2e1baf041f2c0cf) )
+ROM_END
+
+ROM_START( kof99xxx )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251xxx.p1", 0x000000, 0x100000, CRC(29ac1595) SHA1(db2452de23dfbbb27c06c4d9abc9da4c9f3adacb) )
+ ROM_LOAD16_WORD_SWAP( "251xxx.p2", 0x100000, 0x400000, CRC(3d930046) SHA1(1f04c000f1b16b334240f88bea386a8435185989) )
+
+ NEO_SFIX_128K( "251xxx.s1", CRC(d55f8b72) SHA1(6843e41836611fcdb5db084047ab35a4606999c3) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) )
+ ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251xxx.c7", 0x3000000, 0x800000, CRC(a02acaf8) SHA1(4136b4bedf51e02f0e22488bf8ca21847ad63f93) )
+ ROM_LOAD16_BYTE( "251xxx.c8", 0x3000001, 0x800000, CRC(e3cee593) SHA1(1ea4b9f13344b33348ef3fb95b325509399ef756) )
+ROM_END
+
+ROM_START( kof99y ) /* The King of Fighters '99 - Hack by Ydmis - (Can choose Krizalid, Krizalid', Kyo and Iori) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251y.p1", 0x000000, 0x100000, CRC(17a293ae) SHA1(b0f84a6c7688995eb93e5a4a13a4ca2a4e3645eb) )
+ ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99yd ) /* The King of Fighters '99 - Hack by Ydmis - (Ultra kill start is max) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251yd.p1", 0x000000, 0x100000, CRC(9caffc4d) SHA1(100bb80ffc9f938b107dbd7994a2b6febd7b3a9c) )
+ ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+/* Hacks of the Prototype */
+
+ROM_START( kof99evos ) // multijet
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251evos.p1", 0x000000, 0x100000, CRC(a40dbe6d) SHA1(a1db02bd804edcbee32bb38edc416e1b81a9073c) )
+ ROM_LOAD16_WORD_SWAP( "251evos.p2", 0x100000, 0x400000, CRC(f5831e0e) SHA1(ce8a34584b075d2568344e5ecb669bfff3d0d0f4) )
+
+ NEO_SFIX_128K( "251revo.s1", CRC(1b0133fe) SHA1(7f8e743bc0c8384dec12ca7007d32b23fef8875d) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) )
+ ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) )
+ ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) )
+ ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) )
+ ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) )
+ ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) )
+ ROM_LOAD16_BYTE( "proto_251-c7.c7", 0x3000000, 0x800000, CRC(a4479a58) SHA1(d50e6cc9ccfe1ddbc6d90d46b8ca2cb0304edd8c) )
+ ROM_LOAD16_BYTE( "proto_251-c8.c8", 0x3000001, 0x800000, CRC(ead513ce) SHA1(e9b07a0b01fdeb3004755a479df059c81b4d0ed6) )
+ROM_END
+
+ROM_START( kof99fc0 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251fc0.p1", 0x000000, 0x100000, CRC(ab81c822) SHA1(6091c9018b9384c34fd87bcad03e3e17d984bc56) )
+ ROM_LOAD16_WORD_SWAP( "251rp.p2", 0x100000, 0x400000, CRC(C923EE2B) SHA1(98B4F40812D5479F7D6E683E5EF4002F4C86785C) )
+
+ NEO_SFIX_128K( "251rp.s1", CRC(963D51B3) SHA1(B50A585E1CF7B47052A3D6FD85F47EA739B08BA8) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) )
+ ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) )
+ ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) )
+ ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) )
+ ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) )
+ ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) )
+ ROM_LOAD16_BYTE( "proto_251-c7.c7", 0x3000000, 0x800000, CRC(a4479a58) SHA1(d50e6cc9ccfe1ddbc6d90d46b8ca2cb0304edd8c) )
+ ROM_LOAD16_BYTE( "proto_251-c8.c8", 0x3000001, 0x800000, CRC(ead513ce) SHA1(e9b07a0b01fdeb3004755a479df059c81b4d0ed6) )
+ROM_END
+
+ROM_START( kof99fix )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251fix.p1", 0x000000, 0x100000, CRC(a71a0541) SHA1(49cac7ceedd6ef986987b2efed32f93a983d2319) )
+ ROM_LOAD16_WORD_SWAP( "251fix.p2", 0x100000, 0x400000, CRC(e45ffa4f) SHA1(1ee1956eaba2283ffadfd7fd70618e9fcbeda7a8) )
+
+ NEO_SFIX_128K( "251fix.s1", CRC(1d264e1b) SHA1(6e694465c31b75a8d75711abf653c2d878927f25) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) )
+ ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) )
+ ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) )
+ ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) )
+ ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) )
+ ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) )
+ ROM_LOAD16_BYTE( "251sp.c7", 0x3000000, 0x800000, CRC(4e8bb555) SHA1(f68c597c1f10fb0f756e8252fa83de41ded27417) )
+ ROM_LOAD16_BYTE( "251sp.c8", 0x3000001, 0x800000, CRC(d79a6e0d) SHA1(f6b1b930a62982ef20d1374b213d246f6352d558) )
+ROM_END
+
+ROM_START( kof99fix1 ) // multijet kof99fix
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251fix1.p1", 0x000000, 0x100000, CRC(62bcb221) SHA1(956e245cdbf8afa11f85017225ed303a40218959) )
+ ROM_LOAD16_WORD_SWAP( "251fix1.p2", 0x100000, 0x400000, CRC(84519898) SHA1(acba79a5d6dfcfc9e68ba3b27b12d5608e76c819) )
+
+ NEO_SFIX_128K( "251bh.s1", CRC(b696a8c9) SHA1(3388feab11374a6eca6f1615fdfd93464f86dcee) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) )
+ ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) )
+ ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) )
+ ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) )
+ ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) )
+ ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) )
+ ROM_LOAD16_BYTE( "proto_251-c7.c7", 0x3000000, 0x800000, CRC(a4479a58) SHA1(d50e6cc9ccfe1ddbc6d90d46b8ca2cb0304edd8c) )
+ ROM_LOAD16_BYTE( "proto_251-c8.c8", 0x3000001, 0x800000, CRC(ead513ce) SHA1(e9b07a0b01fdeb3004755a479df059c81b4d0ed6) )
+ROM_END
+
+ROM_START( kof99fix2 ) // multijet kof99fx2
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251fix2.p1", 0x000000, 0x100000, CRC(e62d039d) SHA1(e358707e6954c07bf6b53b877463d1d8e6e973c2) )
+ ROM_LOAD16_WORD_SWAP( "251fix.p2", 0x100000, 0x400000, CRC(e45ffa4f) SHA1(1ee1956eaba2283ffadfd7fd70618e9fcbeda7a8) )
+
+ NEO_SFIX_128K( "251fix2.s1", CRC(7fbf6061) SHA1(c4af13c28b1aaa198d117debedee1896b13a9e5d) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) )
+ ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) )
+ ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) )
+ ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) )
+ ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) )
+ ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) )
+ ROM_LOAD16_BYTE( "251sp.c7", 0x3000000, 0x800000, CRC(4e8bb555) SHA1(f68c597c1f10fb0f756e8252fa83de41ded27417) )
+ ROM_LOAD16_BYTE( "251sp.c8", 0x3000001, 0x800000, CRC(d79a6e0d) SHA1(f6b1b930a62982ef20d1374b213d246f6352d558) )
+ROM_END
+
+ROM_START( kof99hp ) /* The King of Fighters '99 PROTOTYPE - Hack by HackPlus - (Can choose Krizalid and Krizalid') */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251hp.p1", 0x000000, 0x100000, CRC(15c044a1) SHA1(c78b627e7667952094066fbdb4dbb5ecd0032af3) )
+ ROM_LOAD16_WORD_SWAP( "proto_251-p2.p2", 0x100000, 0x400000, CRC(739742ad) SHA1(31acaf05a9bf186305888d3db7e4e8a83f7bb0a4) )
+
+ NEO_SFIX_128K( "proto_251-s1.s1", CRC(fb1498ed) SHA1(d40060b31b6f217a4abdf3b336439fcd7bd7aaef) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) )
+ ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) )
+ ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) )
+ ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) )
+ ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) )
+ ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) )
+ ROM_LOAD16_BYTE( "proto_251-c7.c7", 0x3000000, 0x800000, CRC(a4479a58) SHA1(d50e6cc9ccfe1ddbc6d90d46b8ca2cb0304edd8c) )
+ ROM_LOAD16_BYTE( "proto_251-c8.c8", 0x3000001, 0x800000, CRC(ead513ce) SHA1(e9b07a0b01fdeb3004755a479df059c81b4d0ed6) )
+ROM_END
+
+ROM_START( kof99kp ) /* The King of Fighters '99 PROTOTYPE - Colour fix by Fighters Kim - (Colour change - 10%) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "proto_251-p1.p1", 0x000000, 0x100000, CRC(f37929c4) SHA1(226e7e3d629568399b88275e5bcd4e5b3839be95) )
+ ROM_LOAD16_WORD_SWAP( "251kp.p2", 0x100000, 0x400000, CRC(b3aff1ed) SHA1(683561e36417152386317c30629732a1d718e188) )
+
+ NEO_SFIX_128K( "proto_251-s1.s1", CRC(fb1498ed) SHA1(d40060b31b6f217a4abdf3b336439fcd7bd7aaef) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) )
+ ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) )
+ ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) )
+ ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) )
+ ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) )
+ ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) )
+ ROM_LOAD16_BYTE( "proto_251-c7.c7", 0x3000000, 0x800000, CRC(a4479a58) SHA1(d50e6cc9ccfe1ddbc6d90d46b8ca2cb0304edd8c) )
+ ROM_LOAD16_BYTE( "proto_251-c8.c8", 0x3000001, 0x800000, CRC(ead513ce) SHA1(e9b07a0b01fdeb3004755a479df059c81b4d0ed6) )
+ROM_END
+
+ROM_START( kof99phl ) // multijet
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251phl.p1", 0x000000, 0x100000, CRC(e3923237) SHA1(356c036c9ffc903ba1663ce687b3fc7ec6afdfe3) )
+ ROM_LOAD16_WORD_SWAP( "251phl.p2", 0x100000, 0x400000, CRC(58e3b94a) SHA1(010024bb779d5d346879c4d03857936c3a0b103b) )
+
+ NEO_SFIX_128K( "251revo.s1", CRC(1b0133fe) SHA1(7f8e743bc0c8384dec12ca7007d32b23fef8875d) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) )
+ ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) )
+ ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) )
+ ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) )
+ ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) )
+ ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) )
+ ROM_LOAD16_BYTE( "proto_251-c7.c7", 0x3000000, 0x800000, CRC(a4479a58) SHA1(d50e6cc9ccfe1ddbc6d90d46b8ca2cb0304edd8c) )
+ ROM_LOAD16_BYTE( "proto_251-c8.c8", 0x3000001, 0x800000, CRC(ead513ce) SHA1(e9b07a0b01fdeb3004755a479df059c81b4d0ed6) )
+ROM_END
+
+ROM_START( kof99pk ) /* The King of Fighters '99 PROTOTYPE - Hack by Kryso Fun - (Can choose Krizalid and Krizalid´ - bases on RS - Version + fix? data) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251pk.p1", 0x000000, 0x100000, CRC(9006f3a3) SHA1(1f09da2e94afd7f44087174a19ba4c74ea2a3d86) )
+ ROM_LOAD16_WORD_SWAP( "proto_251-p2.p2", 0x100000, 0x400000, CRC(739742ad) SHA1(31acaf05a9bf186305888d3db7e4e8a83f7bb0a4) )
+
+ NEO_SFIX_128K( "proto_251-s1.s1", CRC(fb1498ed) SHA1(d40060b31b6f217a4abdf3b336439fcd7bd7aaef) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) )
+ ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) )
+ ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) )
+ ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) )
+ ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) )
+ ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) )
+ ROM_LOAD16_BYTE( "proto_251-c7.c7", 0x3000000, 0x800000, CRC(a4479a58) SHA1(d50e6cc9ccfe1ddbc6d90d46b8ca2cb0304edd8c) )
+ ROM_LOAD16_BYTE( "proto_251-c8.c8", 0x3000001, 0x800000, CRC(ead513ce) SHA1(e9b07a0b01fdeb3004755a479df059c81b4d0ed6) )
+ROM_END
+
+ROM_START( kof99pko ) /* The King of Fighters '99 PROTOTYPE - Hack by Kryso Fun - (Can choose Krizalid and Krizalid´ - bases on RS - Version without fix? data */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251pko.p1", 0x000000, 0x100000, CRC(f7a95104) SHA1(51fd3befe4e439d9a5a17d99efa439d5f2091ed0) )
+ ROM_LOAD16_WORD_SWAP( "proto_251-p2.p2", 0x100000, 0x400000, CRC(739742ad) SHA1(31acaf05a9bf186305888d3db7e4e8a83f7bb0a4) )
+
+ NEO_SFIX_128K( "proto_251-s1.s1", CRC(fb1498ed) SHA1(d40060b31b6f217a4abdf3b336439fcd7bd7aaef) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) )
+ ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) )
+ ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) )
+ ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) )
+ ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) )
+ ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) )
+ ROM_LOAD16_BYTE( "proto_251-c7.c7", 0x3000000, 0x800000, CRC(a4479a58) SHA1(d50e6cc9ccfe1ddbc6d90d46b8ca2cb0304edd8c) )
+ ROM_LOAD16_BYTE( "proto_251-c8.c8", 0x3000001, 0x800000, CRC(ead513ce) SHA1(e9b07a0b01fdeb3004755a479df059c81b4d0ed6) )
+ROM_END
+
+ROM_START( kof99pm ) /* The King of Fighters '99 PROTOTYPE - Fix by UNKNOWN - (Mengele Fix) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251pm.p1", 0x000000, 0x100000, CRC(ed68b5f5) SHA1(5a7ec30350dcba08f7617f6c53a051b5284bc00a) )
+ ROM_LOAD16_WORD_SWAP( "251pm.p2", 0x100000, 0x400000, CRC(dc81f711) SHA1(2a00f9301e0e81ec00bc5eee5d39faeefa0eba8a) )
+
+ NEO_SFIX_128K( "251pm.s1", CRC(841a498c) SHA1(b9bb31dd9638bad0304e16f2de268e8c1cc4adb1) )
+
+ NEO_BIOS_AUDIO_128K( "251pm.m1", CRC(0659d262) SHA1(cea6c861a15025ad2bc1ad6b787534cfdd5bab53) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) )
+ ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) )
+ ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) )
+ ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) )
+ ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) )
+ ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) )
+ ROM_LOAD16_BYTE( "proto_251-c7.c7", 0x3000000, 0x800000, CRC(a4479a58) SHA1(d50e6cc9ccfe1ddbc6d90d46b8ca2cb0304edd8c) )
+ ROM_LOAD16_BYTE( "proto_251-c8.c8", 0x3000001, 0x800000, CRC(ead513ce) SHA1(e9b07a0b01fdeb3004755a479df059c81b4d0ed6) )
+ROM_END
+
+ROM_START( kof99py ) /* The King of Fighters '99 PROTOTYPE - Hack by Ydmis - (Can choose Kyo and Iori - ultra kill start is max) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251py.p1", 0x000000, 0x100000, CRC(4db24015) SHA1(1103eb498eb54e4787ed4da84a99978803041366) )
+ ROM_LOAD16_WORD_SWAP( "proto_251-p2.p2", 0x100000, 0x400000, CRC(739742ad) SHA1(31acaf05a9bf186305888d3db7e4e8a83f7bb0a4) )
+
+ NEO_SFIX_128K( "proto_251-s1.s1", CRC(fb1498ed) SHA1(d40060b31b6f217a4abdf3b336439fcd7bd7aaef) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) )
+ ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) )
+ ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) )
+ ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) )
+ ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) )
+ ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) )
+ ROM_LOAD16_BYTE( "proto_251-c7.c7", 0x3000000, 0x800000, CRC(a4479a58) SHA1(d50e6cc9ccfe1ddbc6d90d46b8ca2cb0304edd8c) )
+ ROM_LOAD16_BYTE( "proto_251-c8.c8", 0x3000001, 0x800000, CRC(ead513ce) SHA1(e9b07a0b01fdeb3004755a479df059c81b4d0ed6) )
+ROM_END
+
+ROM_START( kof99rs ) /* The King of Fighters '99 PROTOTYPE - (Prototype RS-Version) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251rs.p1", 0x000000, 0x100000, CRC(9ae7ab90) SHA1(4783042353b2bc796b4e3f8545308fe406019eb2) )
+ ROM_LOAD16_WORD_SWAP( "251rs.p2", 0x100000, 0x400000, CRC(838e9331) SHA1(f009382b5a99f6818f83f37f76af2d14f006237f) )
+
+ NEO_SFIX_128K( "proto_251-s1.s1", CRC(fb1498ed) SHA1(d40060b31b6f217a4abdf3b336439fcd7bd7aaef) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) )
+ ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) )
+ ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) )
+ ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) )
+ ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) )
+ ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) )
+ ROM_LOAD16_BYTE( "proto_251-c7.c7", 0x3000000, 0x800000, CRC(a4479a58) SHA1(d50e6cc9ccfe1ddbc6d90d46b8ca2cb0304edd8c) )
+ ROM_LOAD16_BYTE( "proto_251-c8.c8", 0x3000001, 0x800000, CRC(ead513ce) SHA1(e9b07a0b01fdeb3004755a479df059c81b4d0ed6) )
+ROM_END
+
+ROM_START( kof99rsm ) /* The King of Fighters '99 PROTOTYPE - Fix by UNKNOWN - (Mengele fix for RS-Version) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251rsm.p1", 0x000000, 0x100000, CRC(788ebe35) SHA1(760d50701b8cd9a824b2b8e3e12b045bd0c0eaf1) )
+ ROM_LOAD16_WORD_SWAP( "251rsm.p2", 0x100000, 0x400000, CRC(2c98268d) SHA1(552388a4ecb5318bdf654c0fac7ccac77795e760) )
+
+ NEO_SFIX_128K( "251pm.s1", CRC(841a498c) SHA1(b9bb31dd9638bad0304e16f2de268e8c1cc4adb1) )
+
+ NEO_BIOS_AUDIO_128K( "251pm.m1", CRC(0659d262) SHA1(cea6c861a15025ad2bc1ad6b787534cfdd5bab53) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) )
+ ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) )
+ ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) )
+ ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) )
+ ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) )
+ ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) )
+ ROM_LOAD16_BYTE( "proto_251-c7.c7", 0x3000000, 0x800000, CRC(a4479a58) SHA1(d50e6cc9ccfe1ddbc6d90d46b8ca2cb0304edd8c) )
+ ROM_LOAD16_BYTE( "proto_251-c8.c8", 0x3000001, 0x800000, CRC(ead513ce) SHA1(e9b07a0b01fdeb3004755a479df059c81b4d0ed6) )
+ROM_END
+
+ROM_START( kof99rsp ) /* The King of Fighters '99 PROTOTYPE- Fix by UNKNOWN - (Bug Fix for Prototype RS-Version) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251rsp.p1", 0x000000, 0x100000, CRC(4827d835) SHA1(aac22e61c2b2e9e4ae8f6a19ed52020c42351271) )
+ ROM_LOAD16_WORD_SWAP( "251rsp.p2", 0x100000, 0x400000, CRC(b09c980d) SHA1(df6d30f01056695de4214c8273a35794faa1652a) )
+
+ NEO_SFIX_128K( "251rsp.s1", CRC(ee8f28a5) SHA1(b6531e6ee6bdd38f7d1f7f682dddff5426250015) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) )
+ ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) )
+ ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) )
+ ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) )
+ ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) )
+ ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) )
+ ROM_LOAD16_BYTE( "proto_251-c7.c7", 0x3000000, 0x800000, CRC(a4479a58) SHA1(d50e6cc9ccfe1ddbc6d90d46b8ca2cb0304edd8c) )
+ ROM_LOAD16_BYTE( "proto_251-c8.c8", 0x3000001, 0x800000, CRC(ead513ce) SHA1(e9b07a0b01fdeb3004755a479df059c81b4d0ed6) )
+ROM_END
+
+ROM_START( kof99wh1 ) /* [OLD][BETA] The King of Fighters '99 PROTOTYPE - (kof99wh-b) - Remix by Wesker - (Character move change) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251wh1.p1", 0x000000, 0x100000, CRC(9e492265) SHA1(2448485e59ae2f921089f03be77a17bb32d0dd9d) )
+ ROM_LOAD16_WORD_SWAP( "proto_251-p2.p2", 0x100000, 0x400000, CRC(739742ad) SHA1(31acaf05a9bf186305888d3db7e4e8a83f7bb0a4) )
+
+ NEO_SFIX_128K( "proto_251-s1.s1", CRC(fb1498ed) SHA1(d40060b31b6f217a4abdf3b336439fcd7bd7aaef) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) )
+ ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) )
+ ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) )
+ ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) )
+ ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) )
+ ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) )
+ ROM_LOAD16_BYTE( "proto_251-c7.c7", 0x3000000, 0x800000, CRC(a4479a58) SHA1(d50e6cc9ccfe1ddbc6d90d46b8ca2cb0304edd8c) )
+ ROM_LOAD16_BYTE( "proto_251-c8.c8", 0x3000001, 0x800000, CRC(ead513ce) SHA1(e9b07a0b01fdeb3004755a479df059c81b4d0ed6) )
+ROM_END
+
+ROM_START( kof99wh2 ) /* [OLD][BETA] The King of Fighters '99 PROTOTYPE - (kof99wh-b) - Remix by Wesker - (Character move change Ver. 0.02) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251wh2.p1", 0x000000, 0x100000, CRC(505a8ded) SHA1(cd939b018c43712e69aa9f3de8975a8df310503e) )
+ ROM_LOAD16_WORD_SWAP( "proto_251-p2.p2", 0x100000, 0x400000, CRC(739742ad) SHA1(31acaf05a9bf186305888d3db7e4e8a83f7bb0a4) )
+
+ NEO_SFIX_128K( "proto_251-s1.s1", CRC(fb1498ed) SHA1(d40060b31b6f217a4abdf3b336439fcd7bd7aaef) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) )
+ ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) )
+ ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) )
+ ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) )
+ ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) )
+ ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) )
+ ROM_LOAD16_BYTE( "proto_251-c7.c7", 0x3000000, 0x800000, CRC(a4479a58) SHA1(d50e6cc9ccfe1ddbc6d90d46b8ca2cb0304edd8c) )
+ ROM_LOAD16_BYTE( "proto_251-c8.c8", 0x3000001, 0x800000, CRC(ead513ce) SHA1(e9b07a0b01fdeb3004755a479df059c81b4d0ed6) )
+ROM_END
+
+ROM_START( kof99wh3 ) /* [OLD][BETA] The King of Fighters '99 PROTOTYPE - (kof99wh-b) - Remix by Wesker - (Character move change Ver. 0.03) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251wh3.p1", 0x000000, 0x100000, CRC(9a312383) SHA1(29eba75aac66c5fec8ab5937312dc41155f243f8) )
+ ROM_LOAD16_WORD_SWAP( "proto_251-p2.p2", 0x100000, 0x400000, CRC(739742ad) SHA1(31acaf05a9bf186305888d3db7e4e8a83f7bb0a4) )
+
+ NEO_SFIX_128K( "proto_251-s1.s1", CRC(fb1498ed) SHA1(d40060b31b6f217a4abdf3b336439fcd7bd7aaef) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) )
+ ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) )
+ ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) )
+ ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) )
+ ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) )
+ ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) )
+ ROM_LOAD16_BYTE( "proto_251-c7.c7", 0x3000000, 0x800000, CRC(a4479a58) SHA1(d50e6cc9ccfe1ddbc6d90d46b8ca2cb0304edd8c) )
+ ROM_LOAD16_BYTE( "proto_251-c8.c8", 0x3000001, 0x800000, CRC(ead513ce) SHA1(e9b07a0b01fdeb3004755a479df059c81b4d0ed6) )
+ROM_END
+
+ROM_START( kof99wh4 ) /* [OLD][BETA] The King of Fighters '99 PROTOTYPE - (kof99wh-b) - Remix by Wesker - (Character move change Ver. 0.04) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251wh4.p1", 0x000000, 0x100000, CRC(5092e49f) SHA1(09bd471e0c0951677bf76e7fc69cda8dc751e06b) )
+ ROM_LOAD16_WORD_SWAP( "proto_251-p2.p2", 0x100000, 0x400000, CRC(739742ad) SHA1(31acaf05a9bf186305888d3db7e4e8a83f7bb0a4) )
+
+ NEO_SFIX_128K( "proto_251-s1.s1", CRC(fb1498ed) SHA1(d40060b31b6f217a4abdf3b336439fcd7bd7aaef) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) )
+ ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) )
+ ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) )
+ ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) )
+ ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) )
+ ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) )
+ ROM_LOAD16_BYTE( "proto_251-c7.c7", 0x3000000, 0x800000, CRC(a4479a58) SHA1(d50e6cc9ccfe1ddbc6d90d46b8ca2cb0304edd8c) )
+ ROM_LOAD16_BYTE( "proto_251-c8.c8", 0x3000001, 0x800000, CRC(ead513ce) SHA1(e9b07a0b01fdeb3004755a479df059c81b4d0ed6) )
+ROM_END
+
+ROM_START( kof99xpsa ) /* The King of Fighters '99 PROTOTYPE - (kof99xpsa) - Fix by XPS - (00409 XPSLibrary alternate Andy striker voice fix) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251xpsa.p1", 0x000000, 0x100000, CRC(5d4be286) SHA1(5052c6852cd02452ca4e103b5ef214120aae0452) )
+ ROM_LOAD16_WORD_SWAP( "251xpsf.p2", 0x100000, 0x400000, CRC(6533070c) SHA1(1eff1d11ab1463bd9578055f43684949ac6602e4) )
+
+ NEO_SFIX_128K( "251xpsf.s1", CRC(56bc7e7a) SHA1(c6b642243148ac89e2cfc1863edd369828a0ffb2) )
+
+ NEO_BIOS_AUDIO_128K( "251pm.m1", CRC(0659d262) SHA1(cea6c861a15025ad2bc1ad6b787534cfdd5bab53) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) )
+ ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) )
+ ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) )
+ ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) )
+ ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) )
+ ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) )
+ ROM_LOAD16_BYTE( "proto_251-c7.c7", 0x3000000, 0x800000, CRC(a4479a58) SHA1(d50e6cc9ccfe1ddbc6d90d46b8ca2cb0304edd8c) )
+ ROM_LOAD16_BYTE( "proto_251-c8.c8", 0x3000001, 0x800000, CRC(ead513ce) SHA1(e9b07a0b01fdeb3004755a479df059c81b4d0ed6) )
+ROM_END
+
+ROM_START( kof99xpsf ) /* The King of Fighters '99 PROTOTYPE - Fix by XPS - (00731 XPSLibrary final fix 20000409 - RS-Version) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251xpsf.p1", 0x000000, 0x100000, CRC(51dd4482) SHA1(71200ca31bb6fc0ac045f303c15a096fc1848901) )
+ ROM_LOAD16_WORD_SWAP( "251xpsf.p2", 0x100000, 0x400000, CRC(6533070c) SHA1(1eff1d11ab1463bd9578055f43684949ac6602e4) )
+
+ NEO_SFIX_128K( "251xpsf.s1", CRC(56bc7e7a) SHA1(c6b642243148ac89e2cfc1863edd369828a0ffb2) )
+
+ NEO_BIOS_AUDIO_128K( "251pm.m1", CRC(0659d262) SHA1(cea6c861a15025ad2bc1ad6b787534cfdd5bab53) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) )
+ ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) )
+ ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) )
+ ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) )
+ ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) )
+ ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) )
+ ROM_LOAD16_BYTE( "proto_251-c7.c7", 0x3000000, 0x800000, CRC(a4479a58) SHA1(d50e6cc9ccfe1ddbc6d90d46b8ca2cb0304edd8c) )
+ ROM_LOAD16_BYTE( "proto_251-c8.c8", 0x3000001, 0x800000, CRC(ead513ce) SHA1(e9b07a0b01fdeb3004755a479df059c81b4d0ed6) )
+ROM_END
+
+ROM_START( kof99xpsp ) /* The King of Fighters '99 PROTOTYPE - Fix by XPS - (00731 XPSLibrary final fix 20000409) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251xpsp.p1", 0x000000, 0x100000, CRC(6fad557f) SHA1(a647d8faf44a0ae6d600c1fb2d0b5f5cd63dc854) )
+ ROM_LOAD16_WORD_SWAP( "251xpsp.p2", 0x100000, 0x400000, CRC(952ad690) SHA1(c0aa19462f3451f355b36793a95009b808914329) )
+
+ NEO_SFIX_128K( "251xpsf.s1", CRC(56bc7e7a) SHA1(c6b642243148ac89e2cfc1863edd369828a0ffb2) )
+
+ NEO_BIOS_AUDIO_128K( "251pm.m1", CRC(0659d262) SHA1(cea6c861a15025ad2bc1ad6b787534cfdd5bab53) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) )
+ ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) )
+ ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) )
+ ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) )
+ ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) )
+ ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) )
+ ROM_LOAD16_BYTE( "proto_251-c7.c7", 0x3000000, 0x800000, CRC(a4479a58) SHA1(d50e6cc9ccfe1ddbc6d90d46b8ca2cb0304edd8c) )
+ ROM_LOAD16_BYTE( "proto_251-c8.c8", 0x3000001, 0x800000, CRC(ead513ce) SHA1(e9b07a0b01fdeb3004755a479df059c81b4d0ed6) )
+ROM_END
+
+ROM_START( kof99yb ) /* The King of Fighters '99 PROTOTYPE - Hack by Ydmis - (Can choose Kyo and Iori) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251yb.p1", 0x000000, 0x100000, CRC(fd2eaf53) SHA1(10dcb41674d236be9560ab442d3e3a8c542ab5f1) )
+ ROM_LOAD16_WORD_SWAP( "proto_251-p2.p2", 0x100000, 0x400000, CRC(739742ad) SHA1(31acaf05a9bf186305888d3db7e4e8a83f7bb0a4) )
+
+ NEO_SFIX_128K( "proto_251-s1.s1", CRC(fb1498ed) SHA1(d40060b31b6f217a4abdf3b336439fcd7bd7aaef) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) )
+ ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) )
+ ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) )
+ ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) )
+ ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) )
+ ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) )
+ ROM_LOAD16_BYTE( "proto_251-c7.c7", 0x3000000, 0x800000, CRC(a4479a58) SHA1(d50e6cc9ccfe1ddbc6d90d46b8ca2cb0304edd8c) )
+ ROM_LOAD16_BYTE( "proto_251-c8.c8", 0x3000001, 0x800000, CRC(ead513ce) SHA1(e9b07a0b01fdeb3004755a479df059c81b4d0ed6) )
+ROM_END
+
+
+
+GAME( 1999, kof99ab, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99k, ROT0, "Marcochen/PPX Hack Team", "Kof'99 (Rolls moves sideways ver)", MACHINE_SUPPORTS_SAVE )
+GAME( 2013, kof99ae, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "Kof'99 Anniversary Edition", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99ae0, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "Kof'99 Anniversary Edition (unknown date)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 2014, kof99ae20140408, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "Kof'99 Anniversary Edition (2014-04-08)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, kof99ae20140624, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "Kof'99 Anniversary Edition (2014-06-24)", MACHINE_SUPPORTS_SAVE )
+GAME( 2015, kof99ae20150121, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "Kof'99 Anniversary Edition (2015-01-21)", MACHINE_SUPPORTS_SAVE )
+GAME( 2015, kof99ae20150520, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "Kof'99 Anniversary Edition (2015-05-20)", MACHINE_SUPPORTS_SAVE )
+GAME( 2015, kof99ae20150711, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "Kof'99 Anniversary Edition (2015-07-11)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof99ae20160411, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "Kof'99 Anniversary Edition (2016-04-11)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof99ae20160419, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "Kof'99 Anniversary Edition (2016-04-19)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, kof99aes, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "Kof'99 Anniversary Edition Special", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99bh, kof99, neogeo_noslot, neogeo, neogeo_hbmame, kof99bh, ROT0, "Dodowang", "Kof'99 (2 Add Char with Icons)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, kof99bhp2, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Kof1996", "Kof'99 (Perfect Boss Edition hack by Kof1996 2009-10-08)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99bhs, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'99 (Boss Striker Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99bs, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "FCHT", "Kof'99 (Boss Hack - DC version by FightChina KOF Hackteamwork)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99bs2, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "FCHT", "Kof'99 (Boss Like DC v1.2f (KOF hackteamwork))", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99ch, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99k, ROT0, "Chase", "Kof'99 (Diff Moves set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99chf, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99k, ROT0, "Chase", "Kof'99 (Diff Moves set 3 - Fixed)", MACHINE_SUPPORTS_SAVE )
+GAME( 2006, kof99co, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'99 COMBO 2006 (set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2006, kof99co2, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ivex", "Kof'99 COMBO 2006 (set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99d, kof99, neogeo_noslot, neogeo, neogeo_hbmame, kof99d, ROT0, "SNK", "Kof'99 Millennium Battle (decrypted C)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99eh, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99k, ROT0, "Ydmis", "Kof'99 (4 Add Char - Ultra kill start max set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99ehr, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99k, ROT0, "Raymonose", "Kof'99 (4 Add Char - Ultra kill start max - Ultra pow hack set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99eur, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "Kof'99 Evolution Ultra Remix (Yashional)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99eur1, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "Kof'99 Evolution Ultra Remix (old)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99eur2, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "Kof'99 Evolution Ultra Remix", MACHINE_SUPPORTS_SAVE )
+GAME( 2011, kof99eur3, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "Kof'99 Evolution Ultra Remix (2011-02-25)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, kof99eur4, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "Kof'99 (Evolution Ultra Remix hack by Yashional 2009-07-17)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99ev2, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99k, ROT0, "hack", "Kof'99 (Evolution Special)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99evo, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'99 Evolution", MACHINE_SUPPORTS_SAVE )
+GAME( 2006, kof99fc, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "FCHT", "Kof'99 REMIX PRO (Pro200 Final)", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, kof99fc0, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "FCGH", "Kof'99 REMIX PRO (1.07A)", MACHINE_SUPPORTS_SAVE )
+GAME( 2006, kof99fc1, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "FCHT", "Kof'99 REMIX PRO (2.00B)", MACHINE_SUPPORTS_SAVE )
+GAME( 2006, kof99fc2, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "FCHT", "Kof'99 REMIX PRO (2.00F)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99fmi, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Marcochen", "Kof'99 Orochi Iori (Hack by marcochen)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99hbi, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Okukochi", "Kof'99 (Happy Birthday to Iori)", MACHINE_SUPPORTS_SAVE )
+GAME( 2006, kof99iori, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99k, ROT0, "hack", "Kof'99 (hack 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof99jh, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99k, ROT0, "Jason/K3", "Kof'99 (3 Add Char - Simple moves rev - Athena style changed 2003-10-18)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof99jho, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99k, ROT0, "Jason/K3", "Kof'99 (3 Add Char - Simple moves rev - Athena style changed 2003-09-24)", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, kof99lb, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "lb70", "Kof'99 (Hack by lb70)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99m, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99k, ROT0, "MasakiAnton", "Kof'99 (2 Add Char)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99nd, kof99, neogeo_noslot, neogeo, neogeo_hbmame, cmc42sfix,ROT0, "SNK", "Kof'99 (non encrypted P,decrypted C)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99ndh, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'99 (Boss Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99ndis, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'99 REMIX PRO (ndis)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99nevo, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Chl, Robert", "Kof'99 (Evolution Revision hack by Chl, Robert)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99ob, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'99 Orochi's Blood-Another part of Leona & Iori", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99ob2, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "Kof'99 Orochi's Blood (set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99pb, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'99 Perfect Boss", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kof99pjc1, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99k, ROT0, "TcwLee", "Kof'99 (Char color changed rev 1 2002-09-xx)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof99pjc2, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99k, ROT0, "TcwLee", "Kof'99 (Char color changed rev 2 2003-03-02)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof99pjc3, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99k, ROT0, "TcwLee", "Kof'99 (Char color changed rev 3 2003-07-20)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99pjco, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99k, ROT0, "TcwLee", "Kof'99 (Char color changed old)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99pt, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99k, ROT0, "Creamymami", "Kof'99 (Ultra kill hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99r, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99k, ROT0, "Raymonose", "Kof'99 (Moves changed 0310xx)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99rd, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99k, ROT0, "hack", "Kof'99 (Red Evil Edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99rev, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99k, ROT0, "hack", "Kof'99 OKUHOSHI HACK (Revolution Merry Christmas set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99revo, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Okuhoshi", "Kof'99 (Christmas Revolution v1.2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99roll, kof99, neogeo_noslot, neogeo, neogeo_hbmame, cmc42sfix,ROT0, "KofOnTeam", "Kof'99 (Advanced Roll (KOFONTEAM))", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, kof99rp, kof99, neogeo_noslot, neogeo, neogeo_hbmame, kof99bh, ROT0, "FCHT", "Kof'99 Remix PRO (Diff Moves - v1.07a 2004-12-24)", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, kof99rp0, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "FGCH", "Kof'99 REMIX PRO (Edition v1.07a)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof99rp1, kof99, neogeo_noslot, neogeo, neogeo_hbmame, kof99bh, ROT0, "FCHT", "Kof'99 Remix PRO (Diff Moves - v1.02 final1 2003-10-10)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof99rp2, kof99, neogeo_noslot, neogeo, neogeo_hbmame, kof99bh, ROT0, "FCHT", "Kof'99 Remix PRO (Diff Moves - Beta v1.01c 2003-09-xx)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof99rp3, kof99, neogeo_noslot, neogeo, neogeo_hbmame, kof99bh, ROT0, "FCHT", "Kof'99 Remix PRO (Diff Moves - Beta v1.01b 2003-09-xx)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof99rp4, kof99, neogeo_noslot, neogeo, neogeo_hbmame, kof99bh, ROT0, "FCHT", "Kof'99 Remix PRO (Diff Moves - Beta v1.01a2 2003-09-xx)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof99rp5, kof99, neogeo_noslot, neogeo, neogeo_hbmame, kof99bh, ROT0, "FCHT", "Kof'99 Remix PRO (Diff Moves - Beta v1.01a 2003-09-xx)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof99rp6, kof99, neogeo_noslot, neogeo, neogeo_hbmame, kof99bh, ROT0, "FCHT", "Kof'99 Remix PRO (Diff Moves - Beta v1.01 2003-09-xx)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof99rp7, kof99, neogeo_noslot, neogeo, neogeo_hbmame, kof99bh, ROT0, "FCHT", "Kof'99 Remix PRO (Diff Moves - Beta v1.00c built 0308e - EX ver.)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof99rp8, kof99, neogeo_noslot, neogeo, neogeo_hbmame, kof99bh, ROT0, "FCHT", "Kof'99 Remix PRO (Diff Moves - Beta v1.00c built 0308e)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof99rp9, kof99, neogeo_noslot, neogeo, neogeo_hbmame, kof99bh, ROT0, "FCHT", "Kof'99 Remix PRO (Diff Moves - Beta v1.00b enhanced)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof99rpa, kof99, neogeo_noslot, neogeo, neogeo_hbmame, kof99bh, ROT0, "FCHT", "Kof'99 Remix PRO (Diff Moves - Beta v1.00b)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof99rpb, kof99, neogeo_noslot, neogeo, neogeo_hbmame, kof99bh, ROT0, "FCHT", "Kof'99 Remix PRO (Diff Moves - Beta v1.00a enhanced)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof99rpc, kof99, neogeo_noslot, neogeo, neogeo_hbmame, kof99bh, ROT0, "FCHT", "Kof'99 Remix PRO (Diff Moves - Beta v1.00a)", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, kof99rpp, kof99, neogeo_noslot, neogeo, neogeo_hbmame, kof99bh, ROT0, "FCHT", "Kof'99 Remix PRO PLUS (Diff Moves v1.02 final 2004-03-27)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99rr, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99k, ROT0, "Raymonose", "Kof'99 (Diff Moves set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99seh, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99k, ROT0, "Creamymami and Ydmis", "Kof'99 (4 Add Char - Ultra kill start max - Ultra pow hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99sp, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "ZKW", "Kof'99 (Super Plus)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99spd, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99, ROT0, "Star07", "Kof'99 (Special Dialogue hack by Star07)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99sr, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "FCHT", "Kof'99 (Summer Revolution)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99srr, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Raymonose", "Kof'99 (Super Remix Red)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99srr1, kof99, neogeo_noslot, neogeo, neogeo_hbmame, cmc42sfix,ROT0, "hack", "Kof'99 (Super Remix Red Version)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99the4, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "Kof'99 The 4 Flame Manipulators (set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99the42, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "Kof'99 The 4 Flame Manipulators (set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99vor, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99, ROT0, "hack", "Kof'99 (hack vor)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99wet, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'99 (hack colour wet)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99xxx, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'99 (Special Boss)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99y, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99k, ROT0, "Ydmis", "Kof'99 (4 Add Char", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99yd, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99k, ROT0, "Ydmis", "Kof'99 (Ultra kill start max)", MACHINE_SUPPORTS_SAVE )
+
+/* Hacks of the Prototype */
+GAME( 1999, kof99evos, kof99hp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'99 (proto)(Evolution Balanced)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99hp, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "HackPlus", "Kof'99 (proto)(2 Add Char set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, kof99fix, kof99hp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'99 (Happy birthday to Iori special 2009)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99fix1, kof99hp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'99 (proto)(Happy Birthday to Iori Special set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99fix2, kof99hp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'99 (proto)(Happy Birthday to Iori Special set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99kp, kof99hp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Fighters Kim", "Kof'99 (proto)(Color changed - 10%)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99phl, kof99hp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Liyang1983", "Kof'99 (proto)(Plus hack by Liyang1983)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99pk, kof99hp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "KrysoFun", "Kof'99 (proto)(2 Add Char - Based on RS - ver + Fix? data)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99pko, kof99hp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "KrysoFun", "Kof'99 (proto)(2 Add Char - Based on RS - ver without Fix? data)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99pm, kof99hp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Unk", "Kof'99 (proto)(Mengele Fix)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99py, kof99hp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis","Kof'99 (proto)(2 Add Char - Ultra kill start max)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99rs, kof99hp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof'99 (proto)(Proto RS-ver)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99rsm, kof99hp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Unk", "Kof'99 (proto)(Mengele Fix for RS-ver)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99rsp, kof99hp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Unk", "Kof'99 (proto)(Bug Fix for RS-ver)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99wh1, kof99hp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker", "Kof'99 (proto)(Diff Moves)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99wh2, kof99hp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker", "Kof'99 (proto)(Diff Moves - v.02)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99wh3, kof99hp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker", "Kof'99 (proto)(Diff Moves - v.03)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99wh4, kof99hp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker", "Kof'99 (proto)(Diff Moves - v.04)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99xpsa, kof99hp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "XPS", "Kof'99 (proto)(00409 XPSLibrary alternate Andy striker voice Fix)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99xpsf, kof99hp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "XPS", "Kof'99 (proto)(00731 XPSLibrary final Fix 000409 - RS-ver)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99xpsp, kof99hp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "XPS", "Kof'99 (proto)(00731 XPSLibrary final Fix 000409)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99yb, kof99hp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Kof'99 (proto)(2 Add Char set 1)", MACHINE_SUPPORTS_SAVE )
+
+
+
+//PSmame
+
+
+ROM_START( kof99s01 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "152s00.p1", 0x000000, 0x100000, CRC(ae0b3fac) SHA1(2c381fe892e7daa0eeb5207d39b26466d95497c9) )
+ ROM_LOAD16_WORD_SWAP( "152s00.sp2", 0x100000, 0x400000, CRC(695b4619) SHA1(993f350908b103ce0d40d3484bab4539dba9c12f) )
+
+ NEO_SFIX_128K( "251ndis.s1", CRC(16edaa55) SHA1(d8601a14c703e56c0635e2f7540492b164447d6b) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) )
+ ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251d.c7", 0x3000000, 0x800000, CRC(2f68fdeb) SHA1(37167c84a39141c179f94800f207dac3aabc5478) )
+ ROM_LOAD16_BYTE( "251d.c8", 0x3000001, 0x800000, CRC(4c2fad1e) SHA1(26779e79296eb1988a8c4d60d2e1baf041f2c0cf) )
+ROM_END
+
+ROM_START( kof99s02 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "152s02.p1", 0x000000, 0x100000, CRC(e93422cf) SHA1(1c98bfb5d0fccdaedb737d51a686c889ba969af4) )
+ ROM_LOAD16_WORD_SWAP( "152s02.sp2", 0x100000, 0x400000, CRC(ee264700) SHA1(efd797907a1ea8e65bdeb86d20f0b91435c89bc7) )
+
+ NEO_SFIX_128K( "251s02.s1", CRC(2c0a314a) SHA1(2ca439e6c2798864d9bade7753d512b64ed34f50) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+
+ ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) )
+ ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251d.c7", 0x3000000, 0x800000, CRC(2f68fdeb) SHA1(37167c84a39141c179f94800f207dac3aabc5478) )
+ ROM_LOAD16_BYTE( "251d.c8", 0x3000001, 0x800000, CRC(4c2fad1e) SHA1(26779e79296eb1988a8c4d60d2e1baf041f2c0cf) )
+ROM_END
+
+ROM_START( kof99s03 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "152s03.p1", 0x000000, 0x100000, CRC(2d553276) SHA1(84a858f702374736e1349b879a5a58e5580ffff6) )
+ ROM_LOAD16_WORD_SWAP( "251ob.p2", 0x100000, 0x400000, CRC(f88a4970) SHA1(6cce092f0d60aff7c0fcad796e9604cdf440219f) )
+
+ NEO_SFIX_128K( "251ndis.s1", CRC(16edaa55) SHA1(d8601a14c703e56c0635e2f7540492b164447d6b) )
+
+ NEO_BIOS_AUDIO_128K( "251ob.s1", CRC(151c7a8d) SHA1(ccf557d1818edb579aa72e05f494305e5449d5ee) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251ob.v1", 0x000000, 0x400000, CRC(33d2e8b4) SHA1(f1ff9facc59eadc257edc06ba6bb3dddf27cfae2) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+
+ ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) )
+ ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251ob.c7", 0x3000000, 0x800000, CRC(f3b25375) SHA1(80d6b06adce5190bb71f2f0233db60008a33c51e) )
+ ROM_LOAD16_BYTE( "251ob.c8", 0x3000001, 0x800000, CRC(d2d0041a) SHA1(02283e2ac22e2f0521c3b2d126aff624ac820b63) )
+ROM_END
+
+ROM_START( kof99s04 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "152s04.p1", 0x000000, 0x100000, CRC(014acf56) SHA1(a461860e0587505e2ff15201831f7b8597a8268e) )
+ ROM_LOAD16_WORD_SWAP( "152s04.p2", 0x100000, 0x400000, CRC(5f433cab) SHA1(2066babb1f03a8b5369e9c898fcc301d23629a35) )
+
+ NEO_SFIX_128K( "251revo.s1", CRC(1b0133fe) SHA1(7f8e743bc0c8384dec12ca7007d32b23fef8875d) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) )
+ ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "152s04.c7", 0x3000000, 0x800000, CRC(ae9c1b04) SHA1(28aace5ca28345647cb58231dc6d9fcc6ed07eba) )
+ ROM_LOAD16_BYTE( "152s04.c8", 0x3000001, 0x800000, CRC(92f1b4f8) SHA1(57c0e7703bbcbdef62e2cb0bbba8bb7a08f846d6) )
+ROM_END
+
+ROM_START( kof99s05 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "152s05.p1", 0x000000, 0x100000, CRC(3dff0380) SHA1(6d9b9ee2e40f8c20e6e9a0069f1bc1d18bc38579) )
+ ROM_LOAD16_WORD_SWAP( "152s05.p2", 0x100000, 0x400000, CRC(da68e5be) SHA1(d955f6186df89bdbb8eb16b7ea86815874ee5e40) )
+
+ NEO_SFIX_128K( "251eur.s1", CRC(a6747969) SHA1(6577c00aceb0d612819c703b3334ebb6c760e126) )
+
+ NEO_BIOS_AUDIO_128K( "251ae.m1", CRC(f847e188) SHA1(0b98595a457292b04f518afcc82c2d6b8f249a7b) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251ae.v1", 0x000000, 0x400000, CRC(4ae46226) SHA1(77dbd53772e1e5000a091b9ff4b3cdc14b62ab0b) )
+ ROM_LOAD( "251ae.v2", 0x400000, 0x400000, CRC(07d70650) SHA1(70d274771c07215268292f91517ec61634e32611) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251eur.c1", 0x0000000, 0x800000, CRC(c7e8bf32) SHA1(ede68ac10356f6824fa6b30e558038e78b604caf) )
+ ROM_LOAD16_BYTE( "251eur.c2", 0x0000001, 0x800000, CRC(4e8f9f7d) SHA1(3a60df66bb24702041facb71025241483e5a1832) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251eur.c7", 0x3000000, 0x800000, CRC(f0b5ff02) SHA1(b9a25e6dad48547acce8edb5623be9d35bff1b4c) )
+ ROM_LOAD16_BYTE( "251eur.c8", 0x3000001, 0x800000, CRC(7107b8d5) SHA1(6754113de3eb6a34c1913bb5117dd12d705b961c) )
+ROM_END
+
+ROM_START( kof99s06 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251bs2.p1", 0x000000, 0x100000, CRC(3adcedbb) SHA1(ce21a4d981354303031fee17e8db9f9961ebe5c9) )
+ ROM_LOAD16_WORD_SWAP( "251bs2.p2", 0x100000, 0x400000, CRC(62b11826) SHA1(13113692b43c3d1b5c8572d2024777e6a1a15e2b) )
+
+ NEO_SFIX_128K( "251hc06.s1", CRC(8969b496) SHA1(2cbff513ce629437013ee6fbe42bcb3bd9a7b478) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251hc06.c1", 0x0000000, 0x800000, CRC(0f8cbfba) SHA1(464dff49f1379ac4ba6fc8f8fbe307f82f7ee6e4) )
+ ROM_LOAD16_BYTE( "251hc06.c2", 0x0000001, 0x800000, CRC(1232d8c0) SHA1(c9e29a696fa6b2a195ec7f0fca84c34e7a451891) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251hc06.c7", 0x3000000, 0x800000, CRC(0ac9f02e) SHA1(f6eb1d6c8a2aab26876f0526cb68f11607bdcc3a) )
+ ROM_LOAD16_BYTE( "251hc06.c8", 0x3000001, 0x800000, CRC(a7e77d95) SHA1(70b3706d3371c7e07ae2b8ca1499eb35e4f95030) )
+ROM_END
+
+ROM_START( kof99s07 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251hc07.p1", 0x000000, 0x100000, CRC(a31973d7) SHA1(2e0cc954aba90952cd1f452a35c5d5a2506cd373) )
+ ROM_LOAD16_WORD_SWAP( "251hc07.sp2", 0x100000, 0x400000, CRC(71e60a1f) SHA1(fe039350109fafcc7eda2668d3758dee3dda0ff2) )
+
+ NEO_SFIX_128K( "251ndis.s1", CRC(16edaa55) SHA1(d8601a14c703e56c0635e2f7540492b164447d6b) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) )
+ ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251d.c7", 0x3000000, 0x800000, CRC(2f68fdeb) SHA1(37167c84a39141c179f94800f207dac3aabc5478) )
+ ROM_LOAD16_BYTE( "251d.c8", 0x3000001, 0x800000, CRC(4c2fad1e) SHA1(26779e79296eb1988a8c4d60d2e1baf041f2c0cf) )
+ROM_END
+
+ROM_START( kof99s08 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251hc09.p1", 0x000000, 0x100000, CRC(43263e84) SHA1(865ea330380f29aea309d1fff87216735958dd5c) )
+ ROM_LOAD16_WORD_SWAP( "251hc08.sp2", 0x100000, 0x400000, CRC(ba3e05a7) SHA1(61c086de8b8d783c5ca3e8a970c9214b19f22d46) )
+
+ NEO_SFIX_128K( "251hc08.s1", CRC(141c3221) SHA1(f54ad0ce87cd3fa273be770647d2dcce05d96876) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) )
+ ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251d.c7", 0x3000000, 0x800000, CRC(2f68fdeb) SHA1(37167c84a39141c179f94800f207dac3aabc5478) )
+ ROM_LOAD16_BYTE( "251d.c8", 0x3000001, 0x800000, CRC(4c2fad1e) SHA1(26779e79296eb1988a8c4d60d2e1baf041f2c0cf) )
+ROM_END
+
+ROM_START( kof99s09 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251hc09.p1", 0x000000, 0x100000, CRC(43263e84) SHA1(865ea330380f29aea309d1fff87216735958dd5c) )
+ ROM_LOAD16_WORD_SWAP( "251rp.p2", 0x100000, 0x400000, CRC(C923EE2B) SHA1(98B4F40812D5479F7D6E683E5EF4002F4C86785C) )
+
+ NEO_SFIX_128K( "251hc08.s1", CRC(141c3221) SHA1(f54ad0ce87cd3fa273be770647d2dcce05d96876) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) )
+ ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251d.c7", 0x3000000, 0x800000, CRC(2f68fdeb) SHA1(37167c84a39141c179f94800f207dac3aabc5478) )
+ ROM_LOAD16_BYTE( "251d.c8", 0x3000001, 0x800000, CRC(4c2fad1e) SHA1(26779e79296eb1988a8c4d60d2e1baf041f2c0cf) )
+ROM_END
+
+ROM_START( kof99s10 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251hc10.p1", 0x000000, 0x100000, CRC(b5058c20) SHA1(aa0fb295af195e2ef231bcddbb1240e53e41ee69) )
+ ROM_LOAD16_WORD_SWAP( "251hc08.sp2", 0x100000, 0x400000, CRC(ba3e05a7) SHA1(61c086de8b8d783c5ca3e8a970c9214b19f22d46) )
+
+ NEO_SFIX_128K( "251rp.s1", CRC(963D51B3) SHA1(B50A585E1CF7B47052A3D6FD85F47EA739B08BA8) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) )
+ ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251d.c7", 0x3000000, 0x800000, CRC(2f68fdeb) SHA1(37167c84a39141c179f94800f207dac3aabc5478) )
+ ROM_LOAD16_BYTE( "251d.c8", 0x3000001, 0x800000, CRC(4c2fad1e) SHA1(26779e79296eb1988a8c4d60d2e1baf041f2c0cf) )
+ROM_END
+
+ROM_START( kof99s11 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251hc11.p1", 0x000000, 0x100000, CRC(cf1e98e7) SHA1(ec22ff296a3034d9227ccb95900136a93bd19bad) )
+ ROM_LOAD16_WORD_SWAP( "251hc11.p2", 0x100000, 0x400000, CRC(f38fe174) SHA1(3d4bdd76d137fbec18e5e14ba22eb5a95abaddef) )
+
+ NEO_SFIX_128K( "251revo.s1", CRC(1b0133fe) SHA1(7f8e743bc0c8384dec12ca7007d32b23fef8875d) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) )
+ ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251d.c7", 0x3000000, 0x800000, CRC(2f68fdeb) SHA1(37167c84a39141c179f94800f207dac3aabc5478) )
+ ROM_LOAD16_BYTE( "251d.c8", 0x3000001, 0x800000, CRC(4c2fad1e) SHA1(26779e79296eb1988a8c4d60d2e1baf041f2c0cf) )
+ROM_END
+
+ROM_START( kof99s12 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251hc12.p1", 0x000000, 0x100000, CRC(bd40389d) SHA1(8b6ae1d46feeae7044acc1b4ff61cc0d7c0d59e3) )
+ ROM_LOAD16_WORD_SWAP( "251hc12.p2", 0x100000, 0x400000, CRC(18f8e9b5) SHA1(450d174378be6bd351cf151ec3ddc51e7d0862a6) )
+
+ NEO_SFIX_128K( "251hc12.s1", CRC(cf570e5e) SHA1(7196f8334242ac38f34145a370e7889e4e9f14ff) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251hc06.c1", 0x0000000, 0x800000, CRC(0f8cbfba) SHA1(464dff49f1379ac4ba6fc8f8fbe307f82f7ee6e4) )
+ ROM_LOAD16_BYTE( "251hc06.c2", 0x0000001, 0x800000, CRC(1232d8c0) SHA1(c9e29a696fa6b2a195ec7f0fca84c34e7a451891) )
+ ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) )
+ ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) )
+ ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) )
+ ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) )
+ ROM_LOAD16_BYTE( "251hc12.c7", 0x3000000, 0x800000, CRC(f9f17f45) SHA1(cec906600e31ac9a207f601c2751a36096ee0fe3) )
+ ROM_LOAD16_BYTE( "251hc12.c8", 0x3000001, 0x800000, CRC(aa894237) SHA1(efe635c35a7f442d48ca5a8406984d673d3bd816) )
+ROM_END
+
+ROM_START( kof99s13 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251hc13.p1", 0x000000, 0x100000, CRC(6806bb9a) SHA1(83f52e72ea678d0d84f399a65211987a342c442f) )
+ ROM_LOAD16_WORD_SWAP( "251hc13.p2", 0x100000, 0x400000, CRC(d8d74ec0) SHA1(769df8b5eb9ae648dc68d6bb84d8b52c2622a1e1) )
+
+ NEO_SFIX_128K( "251hc13.s1", CRC(b676c8fe) SHA1(b15223fc44e93bde5bfbfa3bef978b05a7117b2b) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) )
+ ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251d.c7", 0x3000000, 0x800000, CRC(2f68fdeb) SHA1(37167c84a39141c179f94800f207dac3aabc5478) )
+ ROM_LOAD16_BYTE( "251d.c8", 0x3000001, 0x800000, CRC(4c2fad1e) SHA1(26779e79296eb1988a8c4d60d2e1baf041f2c0cf) )
+ROM_END
+
+ROM_START( kof99s14 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251hc14.p1", 0x000000, 0x100000, CRC(6806bb9a) SHA1(83f52e72ea678d0d84f399a65211987a342c442f) )
+ ROM_LOAD16_WORD_SWAP( "251hc14.p2", 0x100000, 0x400000, CRC(d8d74ec0) SHA1(769df8b5eb9ae648dc68d6bb84d8b52c2622a1e1) )
+
+ NEO_SFIX_128K( "251hc13.s1", CRC(b676c8fe) SHA1(b15223fc44e93bde5bfbfa3bef978b05a7117b2b) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) )
+ ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251d.c7", 0x3000000, 0x800000, CRC(2f68fdeb) SHA1(37167c84a39141c179f94800f207dac3aabc5478) )
+ ROM_LOAD16_BYTE( "251d.c8", 0x3000001, 0x800000, CRC(4c2fad1e) SHA1(26779e79296eb1988a8c4d60d2e1baf041f2c0cf) )
+ROM_END
+
+ROM_START( kof99s15 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251hc15.p1", 0x000000, 0x100000, CRC(3f6791d4) SHA1(84aff0e973b72cefd345c25f06062f5d5861db6d) )
+ ROM_LOAD16_WORD_SWAP( "251hc14.p2", 0x100000, 0x400000, CRC(d8d74ec0) SHA1(769df8b5eb9ae648dc68d6bb84d8b52c2622a1e1) )
+
+ NEO_SFIX_128K( "251hc14.s1", CRC(b676c8fe) SHA1(b15223fc44e93bde5bfbfa3bef978b05a7117b2b) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) )
+ ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251d.c7", 0x3000000, 0x800000, CRC(2f68fdeb) SHA1(37167c84a39141c179f94800f207dac3aabc5478) )
+ ROM_LOAD16_BYTE( "251d.c8", 0x3000001, 0x800000, CRC(4c2fad1e) SHA1(26779e79296eb1988a8c4d60d2e1baf041f2c0cf) )
+ROM_END
+
+ROM_START( kof99s16 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251hc16.p1", 0x000000, 0x100000, CRC(d02b17c6) SHA1(2041d5b5835878e3ee80903fa3077bea479b6d43) )
+ ROM_LOAD16_WORD_SWAP( "251ndis.p2", 0x100000, 0x400000, CRC(c012ff9f) SHA1(ef53386e34464eaaed1fcba3d4d1dcfb269f995c) )
+
+ NEO_SFIX_128K( "251s02.s1", CRC(2c0a314a) SHA1(2ca439e6c2798864d9bade7753d512b64ed34f50) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) )
+ ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251d.c7", 0x3000000, 0x800000, CRC(2f68fdeb) SHA1(37167c84a39141c179f94800f207dac3aabc5478) )
+ ROM_LOAD16_BYTE( "251d.c8", 0x3000001, 0x800000, CRC(4c2fad1e) SHA1(26779e79296eb1988a8c4d60d2e1baf041f2c0cf) )
+ROM_END
+
+ROM_START( kof99s17 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251hc17.p1", 0x000000, 0x100000, CRC(fa5cf0a7) SHA1(86bdde3a8c08e43b69cc28eee7f0b34ecfd78b76) )
+ ROM_LOAD16_WORD_SWAP( "251ndis.p2", 0x100000, 0x400000, CRC(c012ff9f) SHA1(ef53386e34464eaaed1fcba3d4d1dcfb269f995c) )
+
+ NEO_SFIX_128K( "251s02.s1", CRC(2c0a314a) SHA1(2ca439e6c2798864d9bade7753d512b64ed34f50) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) )
+ ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251d.c7", 0x3000000, 0x800000, CRC(2f68fdeb) SHA1(37167c84a39141c179f94800f207dac3aabc5478) )
+ ROM_LOAD16_BYTE( "251d.c8", 0x3000001, 0x800000, CRC(4c2fad1e) SHA1(26779e79296eb1988a8c4d60d2e1baf041f2c0cf) )
+ROM_END
+
+ROM_START( kof99s18 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251hc18.p1", 0x000000, 0x100000, CRC(04f962cc) SHA1(c44847199baae551111efa32a0b3d886f864305b) )
+ ROM_LOAD16_WORD_SWAP( "251hc18.p2", 0x100000, 0x400000, CRC(86c53edc) SHA1(13b4c435459553312bcf8cb30270ca10c6968265) )
+
+ NEO_SFIX_128K( "251bs.s1", CRC(697c1f85) SHA1(117d12908b060db62716a8ac8a155c8303287746) )
+
+ NEO_BIOS_AUDIO_128K( "251hc18.m1", CRC(1c78d81d) SHA1(f9252a27000b5235153df87ab8f02799b894d821) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251hc18.v1", 0x000000, 0x400000, CRC(5cd53b2d) SHA1(915c01401e1965fe32a0eb893cae057058754e28) )
+ ROM_LOAD( "251hc18.v2", 0x400000, 0x400000, CRC(5ec6f579) SHA1(e4ea7cef986b24e576df1e8aea56276be05bc8b2) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x6000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251ae.c1", 0x0000000, 0x800000, CRC(d0048356) SHA1(3a5a381f531751c8469d74b59e9e668d21cbc06b) )
+ ROM_LOAD16_BYTE( "251ae.c2", 0x0000001, 0x800000, CRC(1d405bb0) SHA1(76c4b1d6e5ff0d5814b19203fbdd1f02d663de3e) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251hc18.c7", 0x3000000, 0x800000, CRC(1f67c92e) SHA1(a0299f26a2a6a026525040ec6546e4b054fde64a) )
+ ROM_LOAD16_BYTE( "251hc18.c8", 0x3000001, 0x800000, CRC(9f8d41ed) SHA1(f8d30e89f7f2295329abb431a143b764655cc948) )
+ ROM_LOAD16_BYTE( "251hc18.c9", 0x4000000, 0x800000, CRC(c44d430d) SHA1(54082189818ddb51356f60b4212f1de5177b3239) )
+ ROM_LOAD16_BYTE( "251hc18.c10", 0x4000001, 0x800000, CRC(0e5ae418) SHA1(9f1811db741f1b063fb73f5e64ef4e56acd0b25c) )
+ ROM_LOAD16_BYTE( "251aex.c11", 0x5000000, 0x800000, CRC(7fe785c2) SHA1(b49c3ab1ebf89090388c4757f24d1c02c730cc99) )
+ ROM_LOAD16_BYTE( "251aex.c12", 0x5000001, 0x800000, CRC(a7541483) SHA1(3b3f0e67acfae1c3b6c5549ac350d855482f285f) )
+ROM_END
+
+ROM_START( kof99s19 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251hc19.p1", 0x000000, 0x100000, CRC(e7692e5c) SHA1(7cbff47c4dbcd8e979170c8a56e4d57bd0602e67) )
+ ROM_LOAD16_WORD_SWAP( "251hc19.p2", 0x100000, 0x400000, CRC(86c0e2df) SHA1(68210da594aee37981a474ab801201d2533a0225) )
+
+ NEO_SFIX_128K( "251bs.s1", CRC(697c1f85) SHA1(117d12908b060db62716a8ac8a155c8303287746) )
+
+ NEO_BIOS_AUDIO_128K( "251hc18.m1", CRC(1c78d81d) SHA1(f9252a27000b5235153df87ab8f02799b894d821) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251hc18.v1", 0x000000, 0x400000, CRC(5cd53b2d) SHA1(915c01401e1965fe32a0eb893cae057058754e28) )
+ ROM_LOAD( "251hc18.v2", 0x400000, 0x400000, CRC(5ec6f579) SHA1(e4ea7cef986b24e576df1e8aea56276be05bc8b2) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x6000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251ae.c1", 0x0000000, 0x800000, CRC(d0048356) SHA1(3a5a381f531751c8469d74b59e9e668d21cbc06b) )
+ ROM_LOAD16_BYTE( "251ae.c2", 0x0000001, 0x800000, CRC(1d405bb0) SHA1(76c4b1d6e5ff0d5814b19203fbdd1f02d663de3e) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251hc18.c7", 0x3000000, 0x800000, CRC(1f67c92e) SHA1(a0299f26a2a6a026525040ec6546e4b054fde64a) )
+ ROM_LOAD16_BYTE( "251hc18.c8", 0x3000001, 0x800000, CRC(9f8d41ed) SHA1(f8d30e89f7f2295329abb431a143b764655cc948) )
+ ROM_LOAD16_BYTE( "251hc18.c9", 0x4000000, 0x800000, CRC(c44d430d) SHA1(54082189818ddb51356f60b4212f1de5177b3239) )
+ ROM_LOAD16_BYTE( "251hc18.c10", 0x4000001, 0x800000, CRC(0e5ae418) SHA1(9f1811db741f1b063fb73f5e64ef4e56acd0b25c) )
+ ROM_LOAD16_BYTE( "251aex.c11", 0x5000000, 0x800000, CRC(7fe785c2) SHA1(b49c3ab1ebf89090388c4757f24d1c02c730cc99) )
+ ROM_LOAD16_BYTE( "251aex.c12", 0x5000001, 0x800000, CRC(a7541483) SHA1(3b3f0e67acfae1c3b6c5549ac350d855482f285f) )
+ROM_END
+
+ROM_START( kof99s20 )
+ ROM_REGION( 0xD00000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "152s20.p1", 0x000000, 0x454F49, CRC(84583b25) SHA1(98da9e5209bed220c98d1b77ed4fbc2585aea0df) )
+ ROM_LOAD16_WORD_SWAP( "152s20.sp2", 0x100000, 0x454F4A, CRC(9cda859f) SHA1(f51708be33dca1046bcae900c8b4bb03135b662a) )
+
+ NEO_SFIX_128K( "251revo.s1", CRC(1b0133fe) SHA1(7f8e743bc0c8384dec12ca7007d32b23fef8875d) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) )
+ ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251d.c7", 0x3000000, 0x800000, CRC(2f68fdeb) SHA1(37167c84a39141c179f94800f207dac3aabc5478) )
+ ROM_LOAD16_BYTE( "251d.c8", 0x3000001, 0x800000, CRC(4c2fad1e) SHA1(26779e79296eb1988a8c4d60d2e1baf041f2c0cf) )
+ROM_END
+
+ROM_START( kof99s21 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "152s21.p1", 0x000000, 0x100000, CRC(ae257f76) SHA1(f9d8f7de03d934a50c88b598a7f05b83d3b9c30d) )
+ ROM_LOAD16_WORD_SWAP( "251rp.p2", 0x100000, 0x400000, CRC(C923EE2B) SHA1(98B4F40812D5479F7D6E683E5EF4002F4C86785C) )
+
+ NEO_SFIX_128K( "251rp.s1", CRC(963D51B3) SHA1(B50A585E1CF7B47052A3D6FD85F47EA739B08BA8) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "251d.c1", 0x0000000, 0x800000, CRC(b3d88546) SHA1(c277525f3db5b4cb07e9842605c7c40e6c203ad9) )
+ ROM_LOAD16_BYTE( "251d.c2", 0x0000001, 0x800000, CRC(915c8634) SHA1(685ecb4271edf61f6a28a2235de11dd219b999d6) )
+ ROM_LOAD16_BYTE( "251d.c3", 0x1000000, 0x800000, CRC(b047c9d5) SHA1(b840eab2208e6c0a1db0cdb28df46ba07da2ddca) )
+ ROM_LOAD16_BYTE( "251d.c4", 0x1000001, 0x800000, CRC(6bc8e4b1) SHA1(674cb8145aeada1683a70beb02ed4ea028f5bdf8) )
+ ROM_LOAD16_BYTE( "251d.c5", 0x2000000, 0x800000, CRC(9746268c) SHA1(59d839f01f4827377a752679922bc7281099430d) )
+ ROM_LOAD16_BYTE( "251d.c6", 0x2000001, 0x800000, CRC(238b3e71) SHA1(f929c942972f768e68a5a009a3d174d203029160) )
+ ROM_LOAD16_BYTE( "251d.c7", 0x3000000, 0x800000, CRC(2f68fdeb) SHA1(37167c84a39141c179f94800f207dac3aabc5478) )
+ ROM_LOAD16_BYTE( "251d.c8", 0x3000001, 0x800000, CRC(4c2fad1e) SHA1(26779e79296eb1988a8c4d60d2e1baf041f2c0cf) )
+ROM_END
+
+ROM_START( kof99s22 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "251hc22.p1", 0x000000, 0x100000, CRC(cf1e98e7) SHA1(ec22ff296a3034d9227ccb95900136a93bd19bad) )
+ ROM_LOAD16_WORD_SWAP( "251hc22.p2", 0x100000, 0x400000, CRC(f38fe174) SHA1(3d4bdd76d137fbec18e5e14ba22eb5a95abaddef) )
+
+ NEO_SFIX_128K( "proto_251-s1.s1", CRC(fb1498ed) SHA1(d40060b31b6f217a4abdf3b336439fcd7bd7aaef) )
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) )
+ ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) )
+ ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) )
+ ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) )
+ ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) )
+ ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) )
+ ROM_LOAD16_BYTE( "proto_251-c7.c7", 0x3000000, 0x800000, CRC(a4479a58) SHA1(d50e6cc9ccfe1ddbc6d90d46b8ca2cb0304edd8c) )
+ ROM_LOAD16_BYTE( "proto_251-c8.c8", 0x3000001, 0x800000, CRC(ead513ce) SHA1(e9b07a0b01fdeb3004755a479df059c81b4d0ed6) )
+ROM_END
+
+GAME( 1999, kof99s01, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'99 (Description Of Unknown Origin 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99s02, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'99 (Description Of Unknown Origin 02)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99s03, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'99 (Description Of Unknown Origin 03)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99s04, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'99 (Description Of Unknown Origin 04)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99s05, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'99 (Description Of Unknown Origin 05)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99s06, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'99 (Description Of Unknown Origin 06)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99s07, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'99 (Description Of Unknown Origin 07)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99s08, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'99 (Description Of Unknown Origin 08)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99s09, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'99 (Description Of Unknown Origin 09)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99s10, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'99 (Description Of Unknown Origin 10)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99s11, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'99 (Description Of Unknown Origin 11)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99s12, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'99 (Description Of Unknown Origin 12)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99s13, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'99 (Description Of Unknown Origin 13)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+// GAME( 1999, kof99s14, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'99 (Description Of Unknown Origin 14)", MACHINE_SUPPORTS_SAVE ) // Duplicado
+GAME( 1999, kof99s15, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'99 (Description Of Unknown Origin 15)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99s16, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'99 (Description Of Unknown Origin 16)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99s17, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'99 (Description Of Unknown Origin 17)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99s18, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'99 (Description Of Unknown Origin 18)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99s19, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'99 (Description Of Unknown Origin 19)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99s20, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'99 (Description Of Unknown Origin 20)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99s21, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'99 (Description Of Unknown Origin 21)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+//GAME( 1999, kof99s22, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Kof'99 (Description Of Unknown Origin 22)", MACHINE_SUPPORTS_SAVE )//Duplicado
+
+
diff --git a/src/hbmame/drivers/kyugo.cpp b/src/hbmame/drivers/kyugo.cpp
new file mode 100644
index 00000000000..96f621f8a05
--- /dev/null
+++ b/src/hbmame/drivers/kyugo.cpp
@@ -0,0 +1,46 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/kyugo.cpp"
+
+ROM_START( airwolffr )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "bfr.2s", 0x0000, 0x8000, CRC(ccf90d88) SHA1(6f88c0c4f5985d8033efdbc5e5516552007b7bdf) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "a.7s", 0x0000, 0x8000, CRC(a3c7af5c) SHA1(0f70ca94f3d168d38e0e93252e9441973f72441a) )
+
+ ROM_REGION( 0x01000, "gfx1", 0 )
+ ROM_LOAD( "f.4a", 0x00000, 0x1000, CRC(4df44ce9) SHA1(145986009d4ae6f7dd98ce715838d0331dea005d) ) /* chars */
+
+ ROM_REGION( 0x06000, "gfx2", 0 )
+ ROM_LOAD( "09h_14.bin", 0x00000, 0x2000, CRC(25e57e1f) SHA1(bef24bced102cd470e10bd4aa19da3c608211258) )
+ ROM_LOAD( "10h_13.bin", 0x02000, 0x2000, CRC(cf0de5e9) SHA1(32f3eb4c9298d59aca1dc2530b0e92f64311946d) )
+ ROM_LOAD( "11h_12.bin", 0x04000, 0x2000, CRC(4050c048) SHA1(ca21e0750f01342d9791067160339eec436c9458) )
+
+ ROM_REGION( 0x18000, "gfx3", 0 )
+ ROM_LOAD( "e.6a", 0x00000, 0x2000, CRC(e8fbc7d2) SHA1(a9a651b4a714f490a051a89fd0327a665353d64b) )
+ ROM_CONTINUE( 0x04000, 0x2000 )
+ ROM_CONTINUE( 0x02000, 0x2000 )
+ ROM_CONTINUE( 0x06000, 0x2000 )
+ ROM_LOAD( "d.8a", 0x08000, 0x2000, CRC(c5d4156b) SHA1(f66ec33b67e39f3df016231b00e48c9757e322f3) )
+ ROM_CONTINUE( 0x0c000, 0x2000 )
+ ROM_CONTINUE( 0x0a000, 0x2000 )
+ ROM_CONTINUE( 0x0e000, 0x2000 )
+ ROM_LOAD( "c.10a", 0x10000, 0x2000, CRC(de91dfb1) SHA1(9f338542f44905d0b895d99510475113eb860f0d) )
+ ROM_CONTINUE( 0x14000, 0x2000 )
+ ROM_CONTINUE( 0x12000, 0x2000 )
+ ROM_CONTINUE( 0x16000, 0x2000 )
+
+ ROM_REGION( 0x0340, "proms", 0 )
+ ROM_LOAD( "01j.bin", 0x0000, 0x0100, CRC(6a94b2a3) SHA1(b1f9bd97aa26c9fb6377ef32d5dd125583361f48) )
+ ROM_LOAD( "01h.bin", 0x0100, 0x0100, CRC(ec0923d3) SHA1(26f9eda4260a8b767893b8dea42819f192ef0b20) )
+ ROM_LOAD( "01f.bin", 0x0200, 0x0100, CRC(ade97052) SHA1(cc1b4cd57d7bc55ce44de6b89a322ff08eabb1a0) )
+ ROM_LOAD( "m1.2c", 0x0320, 0x0020, CRC(83a39201) SHA1(4fdc722c9e20ee152c890342ef0dce18e35e2ef8) )
+
+ ROM_REGION( 0x0400, "plds", 0 )
+ ROM_LOAD_OPTIONAL( "pal16l8a.2j", 0x0000, 0x0104, NO_DUMP )
+ ROM_LOAD_OPTIONAL( "epl12p6a.9j", 0x0200, 0x0034, CRC(19808f14) SHA1(d5043237be8857d2cecaf7dec079461f6b53efa9) )
+ ROM_LOAD_OPTIONAL( "epl12p6a.9k", 0x0300, 0x0034, CRC(f5acad85) SHA1(ee3caeedf3e91793b12895f109eae5417f5c7631) )
+ROM_END
+
+GAME( 2007, airwolffr, airwolf, srdmissn, airwolf, kyugo_state, srdmissn, ROT0, "Arkatrad", "Airwolf (French)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/m52.cpp b/src/hbmame/drivers/m52.cpp
new file mode 100644
index 00000000000..00bc8cc1b7e
--- /dev/null
+++ b/src/hbmame/drivers/m52.cpp
@@ -0,0 +1,39 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/m52.cpp"
+
+ROM_START( spatrol )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "mpa-1.3m", 0x0000, 0x1000, CRC(5873a860) SHA1(8c03726d6e049c3edbc277440184e31679f78258) )
+ ROM_LOAD( "mpa-2.3l", 0x1000, 0x1000, CRC(f4b85974) SHA1(dfb2efb57378a20af6f20569f4360cde95596f93) )
+ 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, "irem_audio:iremsound", 0 )
+ ROM_LOAD( "mp-s1.1a", 0x7000, 0x1000, CRC(561d3108) SHA1(4998c68a9e9a8002251fa8f07aa1082444a9dc80) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "spatrol.3e", 0x0000, 0x1000, CRC(130709e8) SHA1(fa3d0aca3179073c92a39c50f535d945f9b58725) )
+ ROM_LOAD( "spatrol.3f", 0x1000, 0x1000, CRC(1ac58abc) SHA1(1a945c4efa6ef4a7d68cb6cb7b91a76be956837e) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "spatrol.3m", 0x0000, 0x1000, CRC(09e18f9a) SHA1(9f41aacbc5352b8783422fdffef949426bada588) )
+ ROM_LOAD( "spatrol.3n", 0x1000, 0x1000, CRC(36b1891e) SHA1(e204c259ca9c37d0843b5c877debf2171c40249a) )
+
+ ROM_REGION( 0x1000, "gfx3", 0 )
+ ROM_LOAD( "spatrol.3l", 0x0000, 0x1000, CRC(49877023) SHA1(a76b18afb20ab416318812f66bfdd57733441cb5) )
+
+ ROM_REGION( 0x1000, "gfx4", 0 )
+ ROM_LOAD( "mpe-2.3k", 0x0000, 0x1000, CRC(c7aa1fb0) SHA1(14c6c76e1d0db2c0745e5d6d33ea6945fac8e9ee) )
+
+ ROM_REGION( 0x1000, "gfx5", 0 )
+ ROM_LOAD( "spatrol.3h", 0x0000, 0x1000, CRC(091045ad) SHA1(715b5b964fe06ab015e30ce6e38d6737f0033510) )
+
+ ROM_REGION( 0x0340, "proms", 0 )
+ ROM_LOAD( "mpc-4.2a", 0x0000, 0x0200, CRC(07f99284) SHA1(dfc52958f2520e1ce4446dd4c84c91413bbacf76) )
+ ROM_LOAD( "mpc-3.1m", 0x0200, 0x0020, CRC(6a57eff2) SHA1(2d1c12dab5915da2ccd466e39436c88be434d634) )
+ ROM_LOAD( "mpc-1.1f", 0x0220, 0x0020, CRC(26979b13) SHA1(8c41a8cce4f3384c392a9f7a223a50d7be0e14a5) )
+ ROM_LOAD( "mpc-2.2h", 0x0240, 0x0100, CRC(7ae4cd97) SHA1(bc0662fac82ffe65f02092d912b2c2b0c7a8ac2b) )
+ROM_END
+
+GAME( 2008, spatrol, mpatrol, m52, mpatrol, m52_state, 0, ROT0, "Gatinho", "Sponge Patrol", MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/maketrax.cpp b/src/hbmame/drivers/maketrax.cpp
new file mode 100644
index 00000000000..c431318c79a
--- /dev/null
+++ b/src/hbmame/drivers/maketrax.cpp
@@ -0,0 +1,857 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+/*************************************
+ *
+ * Make Trax input handlers
+ *
+ *************************************/
+
+WRITE8_MEMBER(pacman_state::maketrax_protection_w)
+{
+ if (data == 0) // disable protection / reset?
+ {
+ m_maketrax_counter = 0;
+ m_maketrax_offset = 0;
+ m_maketrax_disable_protection = 1;
+ return;
+ }
+
+ if (data == 1)
+ {
+ m_maketrax_disable_protection = 0;
+
+ m_maketrax_counter++;
+ if (m_maketrax_counter == 0x3c)
+ {
+ m_maketrax_counter = 0;
+ m_maketrax_offset++;
+
+ if (m_maketrax_offset == 0x1e)
+ m_maketrax_offset = 0;
+ }
+ }
+}
+
+READ8_MEMBER(pacman_state::maketrax_special_port2_r)
+{
+ uint8_t data = ioport("DSW1")->read() & 0x3f;
+
+ if (m_maketrax_disable_protection == 0)
+ return m_p_maincpu[0xebe + m_maketrax_offset*2] | data;
+
+ switch (offset)
+ {
+ case 0x01:
+ case 0x04:
+ data |= 0x40; break;
+ case 0x05:
+ data |= 0xc0; break;
+ default:
+ break;
+ }
+
+ return data;
+}
+
+READ8_MEMBER(pacman_state::maketrax_special_port3_r)
+{
+
+ if (m_maketrax_disable_protection == 0)
+ return m_p_maincpu[0xebd + m_maketrax_offset*2];
+
+ switch (offset)
+ {
+ case 0x00:
+ return 0x1f;
+ case 0x09:
+ return 0x30;
+ case 0x0c:
+ return 0x00;
+ default:
+ return 0x20;
+ }
+}
+
+WRITE8_MEMBER(pacman_state::piranha_interrupt_vector_w)
+{
+ if (data == 0xfa)
+ data = 0x78;
+
+ m_maincpu->set_input_line_vector(0, data );
+}
+
+
+
+/*************************************
+ *
+ * Main CPU memory handlers
+ *
+ *************************************/
+
+/*************************************
+ *
+ * Main CPU port handlers
+ *
+ *************************************/
+
+static ADDRESS_MAP_START( piranha_writeport, AS_IO, 8, pacman_state )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
+ AM_RANGE(0x00, 0x00) AM_WRITE(piranha_interrupt_vector_w)
+ADDRESS_MAP_END
+
+
+/*************************************
+ *
+ * Port definitions
+ *
+ *************************************/
+
+static INPUT_PORTS_START( eyes )
+ PORT_START ("IN0")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY
+ PORT_SERVICE( 0x10, IP_ACTIVE_LOW )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_TILT )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 )
+
+ PORT_START ("IN1")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 )
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
+
+ PORT_START ("DSW1")
+ PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coinage ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( 2C_1C ) )
+ PORT_DIPSETTING( 0x03, 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_DIPSETTING( 0x0c, "2" )
+ PORT_DIPSETTING( 0x08, "3" )
+ PORT_DIPSETTING( 0x04, "4" )
+ PORT_DIPSETTING( 0x00, "5" )
+ PORT_DIPNAME( 0x30, 0x30, DEF_STR( Bonus_Life ) )
+ PORT_DIPSETTING( 0x30, "50000" )
+ PORT_DIPSETTING( 0x20, "75000" )
+ PORT_DIPSETTING( 0x10, "100000" )
+ PORT_DIPSETTING( 0x00, "125000" )
+ PORT_DIPNAME( 0x40, 0x40, DEF_STR( Cabinet ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( Upright ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
+ PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) /* Not accessed */
+ PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+
+ PORT_START ("DSW2")
+ PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED )
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( maketrax )
+ PORT_START ("IN0")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY
+ PORT_DIPNAME( 0x10, 0x00, DEF_STR( Cabinet ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
+ PORT_DIPSETTING( 0x10, DEF_STR( Cocktail ) )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE1 )
+
+ PORT_START ("IN1")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED ) /* Protection */
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 )
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED ) /* Protection */
+
+ PORT_START ("DSW1")
+ PORT_DIPNAME( 0x03, 0x01, DEF_STR( Coinage ) )
+ 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, 0x00, DEF_STR( Lives ) )
+ PORT_DIPSETTING( 0x00, "3" )
+ PORT_DIPSETTING( 0x04, "4" )
+ PORT_DIPSETTING( 0x08, "5" )
+ PORT_DIPSETTING( 0x0c, "6" )
+ PORT_DIPNAME( 0x10, 0x10, "First Pattern" )
+ PORT_DIPSETTING( 0x10, DEF_STR( Easy ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Hard ) )
+ PORT_DIPNAME( 0x20, 0x20, "Teleport Holes" )
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_UNUSED ) /* Protection */
+
+ PORT_START ("DSW2")
+ PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED )
+INPUT_PORTS_END
+
+
+
+/*************************************
+ *
+ * Graphics layouts
+ *
+ *************************************/
+
+/*************************************
+ *
+ * Machine drivers
+ *
+ *************************************/
+
+static MACHINE_CONFIG_DERIVED( maketrax, pacman )
+ MCFG_MACHINE_RESET_OVERRIDE(pacman_state,maketrax)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( piranha, pacman )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_IO_MAP(piranha_writeport)
+MACHINE_CONFIG_END
+
+
+/*************************************
+ *
+ * Driver initialization
+ *
+ *************************************/
+
+MACHINE_RESET_MEMBER(pacman_state,maketrax)
+{
+ m_maketrax_counter = 0;
+ m_maketrax_offset = 0;
+ m_maketrax_disable_protection = 0;
+}
+
+DRIVER_INIT_MEMBER(pacman_state,maketrax)
+{
+ /* set up protection handlers */
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x5004, 0x5004, write8_delegate(FUNC(pacman_state::maketrax_protection_w),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x5080, 0x50bf, read8_delegate(FUNC(pacman_state::maketrax_special_port2_r),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x50c0, 0x50ff, read8_delegate(FUNC(pacman_state::maketrax_special_port3_r),this));
+
+ save_item(NAME(m_maketrax_disable_protection));
+ save_item(NAME(m_maketrax_offset));
+ save_item(NAME(m_maketrax_counter));
+}
+
+/*************************************
+ *
+ * ROM definitions
+ *
+ *************************************/
+
+ROM_START( aa )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "aa.1", 0x0000, 0x1000, CRC(7b73ff28) SHA1(3b05c9ecaa418291b9b3501fbfd4a1e48be7281e) )
+ ROM_LOAD( "aa.2", 0x1000, 0x1000, CRC(848ca2fa) SHA1(d11e874a0bd0dcf88ed0781d7dc7b7d98b4ac1e8) )
+ ROM_LOAD( "aa.3", 0x2000, 0x1000, CRC(b3d3ff37) SHA1(0df28470eb70f4a84f24c2a86b4b9d338b9b6a76) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "aa.5e", 0x0000, 0x1000, CRC(e69596af) SHA1(b53ef6fce2d9fa1163f722a1a6be56085bde415c) )
+ ROM_LOAD( "aa.5f", 0x1000, 0x1000, CRC(c26ecd63) SHA1(40d618b171c7ea164384c2ded098520c77941cbc) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( abscam )
+ ROM_REGION( 0x10000, "maincpu",0 )
+ ROM_LOAD( "as0.bin", 0x0000, 0x0800, CRC(0b102302) SHA1(97f6399182db4f84efe482bf3a710aa45ca104ec) )
+ ROM_LOAD( "as4.bin", 0x0800, 0x0800, CRC(3116a8ec) SHA1(259169bcc8fbe9fc73ca5100c3835a233351f530) )
+ ROM_LOAD( "as1.bin", 0x1000, 0x0800, CRC(bc0281e0) SHA1(bcc6d63ede728d9b29f903489bfa80d94ec5cc00) )
+ ROM_LOAD( "as5.bin", 0x1800, 0x0800, CRC(428ee2e8) SHA1(1477d1a86b32483ac0fdeea93512f517c9f66ce2) )
+ ROM_LOAD( "as2.bin", 0x2000, 0x0800, CRC(e05d46ad) SHA1(87da57dbbe6ab5e1dd005fd68a982f1df917459c) )
+ ROM_LOAD( "as6.bin", 0x2800, 0x0800, CRC(3ae9a8cb) SHA1(72896ad32cbdde90793788182958a943e35672f9) )
+ ROM_LOAD( "as3.bin", 0x3000, 0x0800, CRC(b39eb940) SHA1(e144a1553c76ddee1c22ad1ed0cca241c2d03998) )
+ ROM_LOAD( "as7.bin", 0x3800, 0x0800, CRC(16cf1c67) SHA1(0015fe64d476de87f1a030e7f2e735380dfcfd41) )
+
+ ROM_REGION( 0x2000, "gfx1" , 0)
+ ROM_LOAD( "as8.bin", 0x0000, 0x0800, CRC(61daabe5) SHA1(00503916d1d1011afe68898e3416718c0e63a298) )
+ ROM_LOAD( "as10.bin", 0x0800, 0x0800, CRC(81d50c98) SHA1(6b61c666f68b5948e4facb8bac1378f986f993a7) )
+ ROM_LOAD( "as9.bin", 0x1000, 0x0800, CRC(a3bd1613) SHA1(c59bb0a4d1fa5cbe596f41ee7b1a4a661ab5614b) )
+ ROM_LOAD( "as11.bin", 0x1800, 0x0800, CRC(9d802b68) SHA1(4e8f37c2faedcfce91221a34c14f6490d578c80a) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD( "82s123.7f", 0x0000, 0x0020, CRC(2fc650bd) SHA1(8d0268dee78e47c712202b0ec4f1f51109b1f2a5) )
+ ROM_LOAD( "as4a.bin", 0x0020, 0x0100, CRC(1605b324) SHA1(336fce22caedbe69bcba9cea2b43e00f6f8e8067) )
+
+ PACMAN_SOUND_PROMS
+ROM_END
+
+/* This game is not complete. Should a better version emerge, it will replace this one */
+/* QuadBlok works, you need to move joystick to select it, then insert coin */
+/* No sound */
+ROM_START( absurd )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "absurd.1", 0x0000, 0x1000, CRC(cbda6dcb) SHA1(e17628ecc06b8877c6c9e55e2c8983272dd38e1e) )
+ ROM_LOAD( "absurd.2", 0x1000, 0x1000, CRC(3b669ec6) SHA1(94db6cb04f74384a2ef1830e48b9fb79e1636739) )
+ ROM_LOAD( "absurd.3", 0x2000, 0x1000, CRC(beb9024b) SHA1(9fb296e6f27373a1364a7ef439e36276e19e09f6) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "absurd.5e", 0x0000, 0x1000, CRC(0a4f5731) SHA1(0023b3175da4f25b5c59550c20b0435ac85cec2f) )
+ ROM_LOAD( "absurd.5f", 0x1000, 0x1000, CRC(ae9805ee) SHA1(fd90b8bb2492a39f27216e0cda09f9594a9dada7) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD( "glob.7f", 0x0000, 0x0020, CRC(1f617527) SHA1(448845cab63800a05fcb106897503d994377f78f) )
+ ROM_LOAD( "absurd.4a", 0x0020, 0x0100, CRC(9379a246) SHA1(88c84668f67afc4a5ff12e794ac37a0636bd7153) )
+
+ PACMAN_SOUND_PROMS
+ROM_END
+
+ROM_START( alpaca7 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "alpaca7.6e", 0x0000, 0x1000, CRC(AF4AFCBF) SHA1(F11E2FE309818B41CB2A28408B06D18419879C09) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "alpaca.5e", 0x0000, 0x1000, CRC(3E879F02) SHA1(0B084DD449E57476231E59F15F85A209A919959C) )
+ ROM_LOAD( "alpaca7.5f", 0x1000, 0x1000, CRC(A6103847) SHA1(4376996FF8C19AFD65F1757CE159B70071A4BD3B) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( alpaca8 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "alpaca8.6e", 0x0000, 0x1000, CRC(86027944) SHA1(C47FC62522A3BAE0D49F4B68C218F73C43ED19B5) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "alpaca.5e", 0x0000, 0x1000, CRC(3E879F02) SHA1(0B084DD449E57476231E59F15F85A209A919959C) )
+ ROM_LOAD( "alpaca8.5f", 0x1000, 0x1000, CRC(856E53AE) SHA1(95460212107B3371600569DBD4DA482EC631ABDB) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD( "82s123.7f", 0x0000, 0x0020, CRC(2FC650BD) SHA1(8D0268DEE78E47C712202B0EC4F1F51109B1F2A5) )
+ ROM_LOAD( "crush.4a", 0x0020, 0x0100, CRC(2BC5D339) SHA1(446E234DF94D9EF34C3191877BB33DD775ACFDF5) )
+
+ PACMAN_SOUND_PROMS
+ROM_END
+
+ROM_START( bace )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "bace.1", 0x0000, 0x1000, CRC(8b60ff7c) SHA1(c787246f0ae080fc9088631acb923a2df37c14b2) )
+ ROM_LOAD( "bace.2", 0x1000, 0x1000, CRC(25d8361a) SHA1(20792c3d4c583dfc0297c6b5db1c14194e053088) )
+ ROM_LOAD( "bace.3", 0x2000, 0x1000, CRC(fc38d994) SHA1(319691caf79292f21282006337df3c637c033602) )
+ ROM_LOAD( "bace.4", 0x3000, 0x1000, CRC(5853f341) SHA1(0794324ee1bab92baaa6f5bf2cd647ce10614200) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "bace.5e", 0x0000, 0x1000, CRC(6da99c7b) SHA1(dcd488e0117662caf77f453b73330740ae34ca55) )
+ ROM_LOAD( "bace.5f", 0x1000, 0x1000, CRC(b81cdc64) SHA1(67f4cde661dbcdcf0192289e31ee80cbd0dc9dc5) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( crashh )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "crashh.1", 0x0000, 0x1000, CRC(04353b41) SHA1(28b774fd5b429569f44651cfe4df6a9929310190) )
+ ROM_LOAD( "crashh.2", 0x1000, 0x1000, CRC(e03205c0) SHA1(8c5ae42a9e2d551f9184e952723a750abc3dfb52) )
+ ROM_LOAD( "crashh.3", 0x2000, 0x1000, CRC(b0fa8e46) SHA1(2caf94d1a14d96ddc401375b54bf2b1edb13c68b) )
+ ROM_LOAD( "crashh.4", 0x3000, 0x1000, CRC(bfa4d2fe) SHA1(76ef449173c01f8943049330dba9c6a54a5e760a) )
+ ROM_LOAD( "crashh.5", 0x8000, 0x1000, CRC(12f2f224) SHA1(95528aaef908173e1374a7c6ed1a9cda4b685a20) )
+ ROM_LOAD( "pacman.6j", 0x9000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "crashh.5e", 0x0000, 0x1000, CRC(0a25969b) SHA1(2cd54477a5cc15f91ae2cba3c4270002ac15967e) )
+ ROM_LOAD( "crashh.5f", 0x1000, 0x1000, CRC(447ea79c) SHA1(886d0113608616b01e4395485c6106586adcb65a) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD( "82s123.7f", 0x0000, 0x0020, CRC(2fc650bd) SHA1(8d0268dee78e47c712202b0ec4f1f51109b1f2a5) )
+ ROM_LOAD( "crush.4a", 0x0020, 0x0100, CRC(2bc5d339) SHA1(446e234df94d9ef34c3191877bb33dd775acfdf5) )
+
+ PACMAN_SOUND_PROMS
+ROM_END
+
+ROM_START( dderby )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "dderby.6e", 0x0000, 0x1000, CRC(6f373bd4) SHA1(e2c4f9def801c5664cf2b9684a36f762e97d12d6) )
+ ROM_LOAD( "dderby.6f", 0x1000, 0x1000, CRC(2fbf16bf) SHA1(9f3714ecc40707cfa4ff1942d5fe87a03888f548) )
+ ROM_LOAD( "dderby.6h", 0x2000, 0x1000, CRC(6e16cd16) SHA1(7f13a2b181e4a62d7d71294cac8fe09fd9ac64a9) )
+ ROM_LOAD( "dderby.6j", 0x3000, 0x1000, CRC(f7e09874) SHA1(7080aaa47e0bc893cd8bd038de7af769ef4eddf6) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "dderby.5e", 0x0000, 0x1000, CRC(7e2c0a53) SHA1(c3c62b32927ac3c5948faeff28d4c2148fe18d0b) )
+ ROM_LOAD( "dderby.5f", 0x1000, 0x1000, CRC(cb2dd072) SHA1(e5813cc4247b9799e9513ff1a624fabc066582e3) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( deathstar ) // No text, no scores. From level 3, you need to use a 2nd joystick (RDFG keys).
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "deathstar.1", 0x0000, 0x1000, CRC(decc3963) SHA1(cbc291c767def5c92b82d6e00ebb5e61e45cbc41) )
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "puckman.5e", 0x0000, 0x0800, CRC(2066a0b7) SHA1(6d4ccc27d6be185589e08aa9f18702b679e49a4a) )
+ ROM_LOAD( "puckman.5h", 0x0800, 0x0800, CRC(3591b89d) SHA1(79bb456be6c39c1ccd7d077fbe181523131fb300) )
+ ROM_LOAD( "puckman.5f", 0x1000, 0x0800, CRC(9e39323a) SHA1(be933e691df4dbe7d12123913c3b7b7b585b7a35) )
+ ROM_LOAD( "puckman.5j", 0x1800, 0x0800, CRC(1b1d9096) SHA1(53771c573051db43e7185b1d188533056290a620) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( eyes )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "eyes.7d", 0x0000, 0x1000, CRC(3b09ac89) SHA1(a8f1c918da74495bb73172f39364dada38ae4713) )
+ ROM_LOAD( "eyes.7f", 0x1000, 0x1000, CRC(97096855) SHA1(10d3b164bbbe5eee86e881a1434f0c114ee8adff) )
+ ROM_LOAD( "eyes.7h", 0x2000, 0x1000, CRC(731e294e) SHA1(96c0308c146dbd85e244c4530af9ae8df78c86de) )
+ ROM_LOAD( "eyes.7j", 0x3000, 0x1000, CRC(22f7a719) SHA1(eb000b606ecedd52bebbb232e661fb1ef205f8b0) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "eyes.5d", 0x0000, 0x1000, CRC(d6af0030) SHA1(652b779533e3f00e81cc102b78d367d503b06f33) )
+ ROM_LOAD( "eyes.5e", 0x1000, 0x1000, CRC(a42b5201) SHA1(2e5cede3b6039c7bd5230de27d02aaa3f35a7b64) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD( "82s123.7f", 0x0000, 0x0020, CRC(2fc650bd) SHA1(8d0268dee78e47c712202b0ec4f1f51109b1f2a5) )
+ ROM_LOAD( "82s129.4a", 0x0020, 0x0100, CRC(d8d78829) SHA1(19820d1651423210083a087fb70ebea73ad34951) )
+
+ PACMAN_SOUND_PROMS
+ROM_END
+
+/* E204 - Rockola presents and copyright notice are all removed. Where it should say "EYES" on title screen,
+ it has some corrupt gfx instead. The rest is fine. */
+ROM_START( eyesb )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "eyesb.7d", 0x0000, 0x1000, CRC(7e7dd02d) SHA1(a0026fec57c089dd500efa107b0e884ed9edd4d6) )
+ ROM_LOAD( "eyesb.7f", 0x1000, 0x1000, CRC(d6d73eb5) SHA1(b0c51afc09dd62bdda70710d57ae5b90a5e981ac) )
+ ROM_LOAD( "eyesb.7h", 0x2000, 0x1000, CRC(951ad5dd) SHA1(9aed1044256070ae6555d561856d0bea454f97a8) )
+ ROM_LOAD( "eyesb.7j", 0x3000, 0x1000, CRC(acc9cd8b) SHA1(d7fcf1b4b3466ee2187f82080634346a5427385e) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "eyes.5d", 0x0000, 0x1000, CRC(d6af0030) SHA1(652b779533e3f00e81cc102b78d367d503b06f33) )
+ ROM_LOAD( "eyes.5e", 0x1000, 0x1000, CRC(a42b5201) SHA1(2e5cede3b6039c7bd5230de27d02aaa3f35a7b64) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD( "82s123.7f", 0x0000, 0x0020, CRC(2fc650bd) SHA1(8d0268dee78e47c712202b0ec4f1f51109b1f2a5) )
+ ROM_LOAD( "82s129.4a", 0x0020, 0x0100, CRC(d8d78829) SHA1(19820d1651423210083a087fb70ebea73ad34951) )
+
+ PACMAN_SOUND_PROMS
+ROM_END
+
+ROM_START( ghohunt )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "ghohunt.6e", 0x0000, 0x1000, CRC(b9e9965c) SHA1(8026e792fd474c2cc8ad8917da4d57a7930d30b4) )
+ ROM_LOAD( "ghohunt.6f", 0x1000, 0x1000, CRC(9da32395) SHA1(8b4d7309de9dab4f58fcdbb29d98ca6c03a2b6fe) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "ghohunt.5e", 0x0000, 0x1000, CRC(c69b5669) SHA1(c4f641ff218aee92dd784968b3e1a030c85d61f6) )
+ ROM_LOAD( "ghohunt.5f", 0x1000, 0x1000, CRC(3ad83b13) SHA1(d2ce7ab45cb540f35cb23264e7628ac0ee6b8559) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( kangaroh )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "kangaroh.1", 0x0000, 0x1000, CRC(bcdd9dff) SHA1(0243d9aaeaa82afb04d40eee192fdd65197fb87e) )
+ ROM_LOAD( "kangaroh.2", 0x1000, 0x1000, CRC(1a381ee4) SHA1(04c6ceb5baa9f94cfd7235a89adf0bc0dbc8b4d1) )
+ ROM_LOAD( "kangaroh.3", 0x2000, 0x1000, CRC(d4018655) SHA1(fb1720045c7c7ab58af894a5d2b86d289a6cd32d) )
+ ROM_LOAD( "kangaroh.4", 0x3000, 0x1000, CRC(6c3f60eb) SHA1(51fc5df0ea3effdff765ea20d69f9f14575794cf) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "kangaroh.5e", 0x0000, 0x1000, CRC(c2afaa18) SHA1(138321b5efca381fb6be053aa76b37fdc7ad6afb) )
+ ROM_LOAD( "kangaroh.5f", 0x1000, 0x1000, CRC(dd792694) SHA1(ded7dd8e5d184ec09d25aa3429c29e9a4ead6e92) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD( "82s123.7f", 0x0000, 0x0020, CRC(2fc650bd) SHA1(8d0268dee78e47c712202b0ec4f1f51109b1f2a5) )
+ ROM_LOAD( "crush.4a", 0x0020, 0x0100, CRC(2bc5d339) SHA1(446e234df94d9ef34c3191877bb33dd775acfdf5) )
+
+ PACMAN_SOUND_PROMS
+ROM_END
+
+ROM_START( ladybugh )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "lazybug.1", 0x0000, 0x1000, CRC(8cee62ee) SHA1(f33b114f3c133cb62f962ca1b2586314b73c8270) )
+ ROM_LOAD( "lazybug.2", 0x1000, 0x1000, CRC(c17a5571) SHA1(24bae96cf95f009825fd06916eeae8a06e2e35ae) )
+ ROM_LOAD( "lazybug.3", 0x2000, 0x1000, CRC(ac53ee82) SHA1(a69a71ee936ae73d5a27025528ff2c666893866d) )
+ ROM_LOAD( "ladybugh.4", 0x3000, 0x1000, CRC(4ac90450) SHA1(7777777777777777777777777777777777777777) ) /* unavailable */
+ ROM_LOAD( "lazybug.5", 0x8000, 0x1000, CRC(ba11a997) SHA1(8dde84e9071bfa3e60d522a02ae5bf4464e730cf) )
+ ROM_LOAD( "lazybug.6", 0x9000, 0x1000, CRC(c8b79a5b) SHA1(abaa9c585da1ee62d4b79968bedb429a5bbb739b) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "lazybug.5e", 0x0000, 0x1000, CRC(4e72e4f5) SHA1(05188aa854034e5cd9779d4b7034ec0658ccc805) )
+ ROM_LOAD( "lazybug.5f", 0x1000, 0x1000, CRC(35eaf3a5) SHA1(6a0e5a5289003b0d8ccb9dd585a1e12a4486977c) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( lazybug )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "lazybug.1", 0x0000, 0x1000, CRC(8cee62ee) SHA1(f33b114f3c133cb62f962ca1b2586314b73c8270) )
+ ROM_LOAD( "lazybug.2", 0x1000, 0x1000, CRC(c17a5571) SHA1(24bae96cf95f009825fd06916eeae8a06e2e35ae) )
+ ROM_LOAD( "lazybug.3", 0x2000, 0x1000, CRC(ac53ee82) SHA1(a69a71ee936ae73d5a27025528ff2c666893866d) )
+ ROM_LOAD( "lazybug.4", 0x3000, 0x1000, CRC(22a4e136) SHA1(e41e4d3cc0b3ca29ae8cb9591bf36e009c76f2b2) )
+ ROM_LOAD( "lazybug.5", 0x8000, 0x1000, CRC(ba11a997) SHA1(8dde84e9071bfa3e60d522a02ae5bf4464e730cf) )
+ ROM_LOAD( "lazybug.6", 0x9000, 0x1000, CRC(c8b79a5b) SHA1(abaa9c585da1ee62d4b79968bedb429a5bbb739b) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "lazybug.5e", 0x0000, 0x1000, CRC(4e72e4f5) SHA1(05188aa854034e5cd9779d4b7034ec0658ccc805) )
+ ROM_LOAD( "lazybug.5f", 0x1000, 0x1000, CRC(35eaf3a5) SHA1(6a0e5a5289003b0d8ccb9dd585a1e12a4486977c) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( lazybug1 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "lazybug.1", 0x0000, 0x1000, CRC(8cee62ee) SHA1(f33b114f3c133cb62f962ca1b2586314b73c8270) )
+ ROM_LOAD( "lazyalt.2", 0x1000, 0x1000, CRC(3df8767b) SHA1(67ee2c2357a9a6e1f4d6ab95427d0c44dc3ebc1f) )
+ ROM_LOAD( "lazybug.3", 0x2000, 0x1000, CRC(ac53ee82) SHA1(a69a71ee936ae73d5a27025528ff2c666893866d) )
+ ROM_LOAD( "lazybug.4", 0x3000, 0x1000, CRC(22a4e136) SHA1(e41e4d3cc0b3ca29ae8cb9591bf36e009c76f2b2) )
+ ROM_LOAD( "lazybug.5", 0x8000, 0x1000, CRC(ba11a997) SHA1(8dde84e9071bfa3e60d522a02ae5bf4464e730cf) )
+ ROM_LOAD( "lazybug.6", 0x9000, 0x1000, CRC(c8b79a5b) SHA1(abaa9c585da1ee62d4b79968bedb429a5bbb739b) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "lazybug.5e", 0x0000, 0x1000, CRC(4e72e4f5) SHA1(05188aa854034e5cd9779d4b7034ec0658ccc805) )
+ ROM_LOAD( "lazybug.5f", 0x1000, 0x1000, CRC(35eaf3a5) SHA1(6a0e5a5289003b0d8ccb9dd585a1e12a4486977c) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mtturbo )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "maketrax.6e", 0x0000, 0x1000, CRC(0150fb4a) SHA1(ba41582d5432670654479b4bf6d938d2168858af) )
+ ROM_LOAD( "maketrax.6f", 0x1000, 0x1000, CRC(77531691) SHA1(68a450bcc8d832368d0f1cb2815cb5c03451796e) )
+ ROM_LOAD( "mtturbo.6h", 0x2000, 0x1000, CRC(77e0e153) SHA1(8be5cf8c0337e05eaf4635f19580d6c1477e6bcc) )
+ ROM_LOAD( "maketrax.6j", 0x3000, 0x1000, CRC(0b4b5e0a) SHA1(621aece612df612065f776696956ef3671421fac) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "maketrax.5e", 0x0000, 0x1000, CRC(91bad2da) SHA1(096197d0cb6d55bf72b5be045224f4bd6a9cfa1b) )
+ ROM_LOAD( "maketrax.5f", 0x1000, 0x1000, CRC(aea79f55) SHA1(279021e6771dfa5bd0b7c557aae44434286d91b7) )
+
+ 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) )
+
+ PACMAN_SOUND_PROMS
+ROM_END
+
+ROM_START( pachello )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pachello.6e", 0x0000, 0x1000, CRC(A8227949) SHA1(793B7BA579C7E4771094D281C2589435A1BF2FDA) )
+ ROM_LOAD( "pachello.6f", 0x1000, 0x1000, CRC(D5690D97) SHA1(51A4D63265F1D848359CA8C78BA111D72A3BC2CF) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "at.5e", 0x0000, 0x1000, CRC(EEB359BF) SHA1(36F153B5CE53475FD144AF50E4BD67B0E0B3A01F) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958FEDF9) SHA1(4A937AC02216EA8C96477D4A15522070507FB599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacmatri )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacmatri.6e", 0x0000, 0x1000, CRC(29B0497E) SHA1(E45B225AABDF2F0549718885C02AE8A8EEF3BAEB) )
+ ROM_LOAD( "pacmatri.6f", 0x1000, 0x1000, CRC(EAA7B145) SHA1(4C0ABF30F2C962B6EB2BDDA833236B9D58544A89) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "at.5e", 0x0000, 0x1000, CRC(EEB359BF) SHA1(36F153B5CE53475FD144AF50E4BD67B0E0B3A01F) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958FEDF9) SHA1(4A937AC02216EA8C96477D4A15522070507FB599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pactest )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pactest.1", 0x0000, 0x1000, CRC(c0423406) SHA1(51630780dd7fa32a827d81a060906130fbe57345) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "ptest.5e", 0x0000, 0x1000, CRC(a650e73e) SHA1(e51df8e976259ea8b431dd13b6bc4728ba213d19) )
+ ROM_LOAD( "ptest.5f", 0x1000, 0x1000, CRC(51aa0303) SHA1(59fdfc5393e883d65bf00f8b3bbfb7173440dec3) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pactetris ) // No text, no scores. When the game ends, it goes crazy.
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pactetris.1", 0x0000, 0x1929, CRC(f67b4604) SHA1(21dfb16e524734cf180b7a3c514575dfc9cb8bbc) )
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "puckman.5e", 0x0000, 0x0800, CRC(2066a0b7) SHA1(6d4ccc27d6be185589e08aa9f18702b679e49a4a) )
+ ROM_LOAD( "puckman.5h", 0x0800, 0x0800, CRC(3591b89d) SHA1(79bb456be6c39c1ccd7d077fbe181523131fb300) )
+ ROM_LOAD( "puckman.5f", 0x1000, 0x0800, CRC(9e39323a) SHA1(be933e691df4dbe7d12123913c3b7b7b585b7a35) )
+ ROM_LOAD( "puckman.5j", 0x1800, 0x0800, CRC(1b1d9096) SHA1(53771c573051db43e7185b1d188533056290a620) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( piranha )
+ ROM_REGION( 0x10000, "maincpu",0 )
+ ROM_LOAD( "pir1.bin", 0x0000, 0x0800, CRC(69a3e6ea) SHA1(c54e5d039a03d3cbee7a5e21bf1e23f4fd913ea6) )
+ ROM_LOAD( "pir5.bin", 0x0800, 0x0800, CRC(245e753f) SHA1(4c1183b8449e4e7995f81079953fe0e251251c60) )
+ ROM_LOAD( "pir2.bin", 0x1000, 0x0800, CRC(62cb6954) SHA1(0e01c8463b130ab5518ce23368ad028c86cd0a32) )
+ ROM_LOAD( "pir6.bin", 0x1800, 0x0800, CRC(cb0700bc) SHA1(1f5e91791ea25eb58d26b9627e98e0b6c1d9becf) )
+ ROM_LOAD( "pir3.bin", 0x2000, 0x0800, CRC(843fbfe5) SHA1(6671a3c55ef70447f2a127438e0c39857f8bf6b1) )
+ ROM_LOAD( "pir7.bin", 0x2800, 0x0800, CRC(73084d5e) SHA1(cb04a4c9dbf1672ddf478d2fe92b0ffd0159bb9e) )
+ ROM_LOAD( "pir4.bin", 0x3000, 0x0800, CRC(4cdf6704) SHA1(97af8bbd08896dffd73e359ec46843dd673c4c9c) )
+ ROM_LOAD( "pir8.bin", 0x3800, 0x0800, CRC(b86fedb3) SHA1(f5eaf7ccc1ecaa2417bcc077561efca8e7cb691a) )
+
+ ROM_REGION( 0x2000, "gfx1" , 0)
+ ROM_LOAD( "pir9.bin", 0x0000, 0x0800, CRC(0f19eb28) SHA1(0335189a06be01b97ca376d3682ed54df9b121e8) )
+ ROM_LOAD( "pir11.bin", 0x0800, 0x0800, CRC(5f8bdabe) SHA1(eb6a0515a381a885b087d165aaefb0277a223715) )
+ ROM_LOAD( "pir10.bin", 0x1000, 0x0800, CRC(d19399fb) SHA1(c0a75a08f77adb9d0010511c4b6ea99324c33c50) )
+ ROM_LOAD( "pir12.bin", 0x1800, 0x0800, CRC(cfb4403d) SHA1(1642a4917be0621ebf5f705c7f68a2b75d1c78d3) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD( "82s123.7f", 0x0000, 0x0020, CRC(2fc650bd) SHA1(8d0268dee78e47c712202b0ec4f1f51109b1f2a5) )
+ ROM_LOAD( "piranha.4a", 0x0020, 0x0100, CRC(08c9447b) SHA1(5e4fbfcc7179fc4b1436af9bb709ffc381479315) )
+
+ PACMAN_SOUND_PROMS
+ROM_END
+
+ROM_START( piranhah )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pr1.cpu", 0x0000, 0x1000, CRC(bc5ad024) SHA1(a3ed781b514a1068b24a7146a28f0a2adfaa2719) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pr3.cpu", 0x2000, 0x1000, CRC(473c379d) SHA1(6e7985367c3e544b4cb98ba8291908df88eafe7f) )
+ ROM_LOAD( "pr4.cpu", 0x3000, 0x1000, CRC(63fbf895) SHA1(d328bf3b8f307fb774614834edec211117148e64) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pr5.cpu", 0x0000, 0x0800, CRC(3fc4030c) SHA1(5e45f0c19cf96daa17afd2fa1c628d7ac7f4a79c) )
+ ROM_LOAD( "pr7.cpu", 0x0800, 0x0800, CRC(30b9a010) SHA1(b0ba8b6cd430feb32d11d092e1959b9f5d240f1b) )
+ ROM_LOAD( "pr6.cpu", 0x1000, 0x0800, CRC(f3e9c9d5) SHA1(709a75b2457f21f0f1a3d9e7f4c8579468ee5cad) )
+ ROM_LOAD( "pr8.cpu", 0x1800, 0x0800, CRC(133d720d) SHA1(8af75ed9e115a996379acedd44d0c09332ec5a03) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( piranhao )
+ ROM_REGION( 0x10000, "maincpu",0 )
+ ROM_LOAD( "p1.bin", 0x0000, 0x0800, CRC(c6ce1bfc) SHA1(da145d67331cee292654a185fb09e773dd9d40cd) )
+ ROM_LOAD( "p5.bin", 0x0800, 0x0800, CRC(a2655a33) SHA1(2253dcf5c8cbe278118aa1569cf456b13d8cf029) )
+ ROM_LOAD( "pir2.bin", 0x1000, 0x0800, CRC(62cb6954) SHA1(0e01c8463b130ab5518ce23368ad028c86cd0a32) )
+ ROM_LOAD( "pir6.bin", 0x1800, 0x0800, CRC(cb0700bc) SHA1(1f5e91791ea25eb58d26b9627e98e0b6c1d9becf) )
+ ROM_LOAD( "pir3.bin", 0x2000, 0x0800, CRC(843fbfe5) SHA1(6671a3c55ef70447f2a127438e0c39857f8bf6b1) )
+ ROM_LOAD( "pir7.bin", 0x2800, 0x0800, CRC(73084d5e) SHA1(cb04a4c9dbf1672ddf478d2fe92b0ffd0159bb9e) )
+ ROM_LOAD( "p4.bin", 0x3000, 0x0800, CRC(9363a4d1) SHA1(4cb4a86d92a1f9bf233cac01aa266485a8bb7a34) )
+ ROM_LOAD( "p8.bin", 0x3800, 0x0800, CRC(2769979c) SHA1(581592da26199b325de51791ddab66b474ab0413) )
+
+ ROM_REGION( 0x2000, "gfx1" , 0 )
+ ROM_LOAD( "p9.bin", 0x0000, 0x0800, CRC(94eb7563) SHA1(c99741ce1aebdfb89628fbfaecf5ae6b2719a0ca) )
+ ROM_LOAD( "p11.bin", 0x0800, 0x0800, CRC(a3606973) SHA1(72297e1a33102c6a48b4c65f2a0b9bfc75a2df36) )
+ ROM_LOAD( "p10.bin", 0x1000, 0x0800, CRC(84165a2c) SHA1(95b24620fbf9bd0ec4dd2aeeb6d9305bd475dce2) )
+ ROM_LOAD( "p12.bin", 0x1800, 0x0800, CRC(2699ba9e) SHA1(b91ff586defe65b200bea5ade7374c2c7579cd80) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD( "82s123.7f", 0x0000, 0x0020, CRC(2fc650bd) SHA1(8d0268dee78e47c712202b0ec4f1f51109b1f2a5) )
+ ROM_LOAD( "piranha.4a", 0x0020, 0x0100, CRC(08c9447b) SHA1(5e4fbfcc7179fc4b1436af9bb709ffc381479315) )
+
+ PACMAN_SOUND_PROMS
+ROM_END
+
+ROM_START( ppong )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "ppong.1", 0x0000, 0x1000, CRC(abf90af3) SHA1(785059f68b69d031e8017fc5c6f44d22208ba1d1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "ppong.5e", 0x0000, 0x1000, CRC(57fe0ace) SHA1(87b9e980c8c30b73ebf7c2750dd40806754bed51) )
+ ROM_LOAD( "ppong.5f", 0x1000, 0x1000, CRC(8bbd8de5) SHA1(feec6c9d413c6767edf2a521da439b21ccdf3d9a) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( ppong2 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "ppong2.1", 0x0000, 0x1000, CRC(b0d6d512) SHA1(1d1ccc0cf0436680fc3b2bbd1a77292506b7514b) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "ppong.5e", 0x0000, 0x1000, CRC(57fe0ace) SHA1(87b9e980c8c30b73ebf7c2750dd40806754bed51) )
+ ROM_LOAD( "ppong.5f", 0x1000, 0x1000, CRC(8bbd8de5) SHA1(feec6c9d413c6767edf2a521da439b21ccdf3d9a) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD( "ppong2.7f", 0x0000, 0x0020, CRC(e3a96194) SHA1(6eb54a64e9d1df6052fecb754852bd44dd9ed69e) )
+ ROM_LOAD( "ppong2.4a", 0x0020, 0x0100, CRC(dbd17cc2) SHA1(072e20975ae0453df57cfc54c344238aa311c373) )
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "ppong2.1m", 0x0000, 0x0100, CRC(0d968558) SHA1(b376885ac8452b6cbf9ced81b1080bfd570d9b91) )
+ ROM_LOAD( "82s126.3m", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) )
+ROM_END
+
+ROM_START( rainboh )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "rainboh.1", 0x0000, 0x1000, CRC(676b742e) SHA1(0ec4bd459533f3f66782d0b978a0972c66b69ed4) )
+ ROM_LOAD( "rainboh.2", 0x1000, 0x1000, CRC(3c9f1ada) SHA1(8951170cf75e5397136193ed69d920d2b9744f29) )
+ ROM_LOAD( "rainboh.3", 0x2000, 0x1000, CRC(fbad5604) SHA1(4cdc2a87712471ed2bba7dc215b584e9e2c37c39) )
+ ROM_LOAD( "rainboh.4", 0x3000, 0x1000, CRC(1af32a9b) SHA1(9830816c11342b40c056d555d6208ef1c6537557) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "rainboh.5e", 0x0000, 0x1000, CRC(c3292da2) SHA1(11d2b8cb36dfa86c08f6072e603f18074d56c2c2) )
+ ROM_LOAD( "rainboh.5f", 0x1000, 0x1000, CRC(2b7455d8) SHA1(9decb7671a97e7fd248cc05798119d82b7830097) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( scroller )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "scroller.6e", 0x0000, 0x1000, CRC(081b47c5) SHA1(dc3d1ae904dc56b31b585ac1022b46633c00b016) )
+ ROM_LOAD( "scroller.6f", 0x1000, 0x1000, CRC(93ef7735) SHA1(9ea39352dc658cd6f40f9df0d3aca7cb411f86cf) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "scroller.5e", 0x0000, 0x1000, CRC(14473363) SHA1(2e8b73fc4737ac81e66f92ec2dd34eab8e2d6fe6) )
+ ROM_LOAD( "scroller.5f", 0x1000, 0x1000, CRC(47e8e97e) SHA1(51904ab4d5c92870996e6f575f67778cab206c3d) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( seq1 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "seq1.6e", 0x0000, 0x1000, CRC(7063B724) SHA1(3A291D26BDFBF5C895D5F6AA70FC164299E8D9F1) )
+ ROM_LOAD( "seq1.6f", 0x1000, 0x1000, CRC(95DB4723) SHA1(A0C47EA05E14CEBC6493705CD2D46D1E3D12B23A) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "at.5e", 0x0000, 0x1000, CRC(EEB359BF) SHA1(36F153B5CE53475FD144AF50E4BD67B0E0B3A01F) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958FEDF9) SHA1(4A937AC02216EA8C96477D4A15522070507FB599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( seq2 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "seq2.6e", 0x0000, 0x1000, CRC(0EC135BE) SHA1(F2BA6F8EE4256420E6149853A34A2B11A3545EEA) )
+ ROM_LOAD( "seq2.6f", 0x1000, 0x1000, CRC(1B95F321) SHA1(F9D76544CCE43CE779A1BF59A01AC00297BAA82C) )
+ ROM_LOAD( "seq2.6h", 0x2000, 0x1000, CRC(5892650A) SHA1(7C63F42EA3F75FAA15C6F5864569CB6A8F8C7C79) )
+ ROM_LOAD( "seq2.6j", 0x3000, 0x1000, CRC(8612016A) SHA1(4E144069F194D240E503B24DF9B10BCDE68B2C6C) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "at.5e", 0x0000, 0x1000, CRC(EEB359BF) SHA1(36F153B5CE53475FD144AF50E4BD67B0E0B3A01F) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958FEDF9) SHA1(4A937AC02216EA8C96477D4A15522070507FB599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( snakes ) // No text, no scores. Need 2 joysticks (2nd stick is RDFG keys). If you run the snake next to an edge, gfx break.
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "snakes.1", 0x0000, 0x1000, CRC(5cba3718) SHA1(c093acd0f38e24d68c5dd618b742360976f1a3fa) )
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "puckman.5e", 0x0000, 0x0800, CRC(2066a0b7) SHA1(6d4ccc27d6be185589e08aa9f18702b679e49a4a) )
+ ROM_LOAD( "puckman.5h", 0x0800, 0x0800, CRC(3591b89d) SHA1(79bb456be6c39c1ccd7d077fbe181523131fb300) )
+ ROM_LOAD( "puckman.5f", 0x1000, 0x0800, CRC(9e39323a) SHA1(be933e691df4dbe7d12123913c3b7b7b585b7a35) )
+ ROM_LOAD( "puckman.5j", 0x1800, 0x0800, CRC(1b1d9096) SHA1(53771c573051db43e7185b1d188533056290a620) )
+
+ PACMAN_PROMS
+ROM_END
+
+/* No sound */
+ROM_START( tinyworld )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "tinyworld.1", 0x0000, 0x1000, CRC(b485503b) SHA1(c868587529f73b4e52a9a20bc04fd8a9a9543a1e) )
+ ROM_LOAD( "tinyworld.2", 0x1000, 0x1000, CRC(37862299) SHA1(bfaec22fcb6c59b0e26980b68936ae2bf2312b40) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "tinyworld.5e", 0x0000, 0x1000, CRC(38db47a4) SHA1(ae85b7d39d36b92d519653d65132ff213f6caecc) )
+ ROM_LOAD( "absurd.5f", 0x1000, 0x1000, CRC(ae9805ee) SHA1(fd90b8bb2492a39f27216e0cda09f9594a9dada7) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD( "glob.7f", 0x0000, 0x0020, CRC(1f617527) SHA1(448845cab63800a05fcb106897503d994377f78f) )
+ ROM_LOAD( "absurd.4a", 0x0020, 0x0100, CRC(9379a246) SHA1(88c84668f67afc4a5ff12e794ac37a0636bd7153) )
+
+ PACMAN_SOUND_PROMS
+ROM_END
+
+/* note: the original rom was only 3154 bytes with a CRC of 0E67D062 - the one here is padded out to normal size */
+ROM_START( tst_pacm )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "test.6e", 0x0000, 0x1000, CRC(fb645998) SHA1(ff57155533e1ec0fdc5c407dce8d270e86d33882) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( wavybug )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "lazybug.1", 0x0000, 0x1000, CRC(8cee62ee) SHA1(f33b114f3c133cb62f962ca1b2586314b73c8270) )
+ ROM_LOAD( "lazybug.2", 0x1000, 0x1000, CRC(c17a5571) SHA1(24bae96cf95f009825fd06916eeae8a06e2e35ae) )
+ ROM_LOAD( "lazybug.3", 0x2000, 0x1000, CRC(ac53ee82) SHA1(a69a71ee936ae73d5a27025528ff2c666893866d) )
+ ROM_LOAD( "wavybug.4", 0x3000, 0x1000, CRC(830c47fc) SHA1(bc802de8c89417c4df91c26c2f365e471ea5efaf) )
+ ROM_LOAD( "lazybug.5", 0x8000, 0x1000, CRC(ba11a997) SHA1(8dde84e9071bfa3e60d522a02ae5bf4464e730cf) )
+ ROM_LOAD( "lazybug.6", 0x9000, 0x1000, CRC(c8b79a5b) SHA1(abaa9c585da1ee62d4b79968bedb429a5bbb739b) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "lazybug.5e", 0x0000, 0x1000, CRC(4e72e4f5) SHA1(05188aa854034e5cd9779d4b7034ec0658ccc805) )
+ ROM_LOAD( "lazybug.5f", 0x1000, 0x1000, CRC(35eaf3a5) SHA1(6a0e5a5289003b0d8ccb9dd585a1e12a4486977c) )
+
+ PACMAN_PROMS
+ROM_END
+
+/* No sound */
+ROM_START( zap )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "zap.1", 0x0000, 0x1000, CRC(74e6e3a0) SHA1(3d953bfd57aa56f8fe61d1abd01db84d027df3bb) )
+ ROM_LOAD( "zap.2", 0x1000, 0x1000, CRC(40e1884b) SHA1(ce303b6a6c9e765c256997c19f64e9ebfd8f435e) )
+ ROM_LOAD( "zap.4", 0x3000, 0x1000, CRC(17c357e6) SHA1(6486f58592b784d53a5c14f59b25c8cd513b2a0d) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "zap.5e", 0x0000, 0x1000, CRC(a0578404) SHA1(329f3e869eecff96191642e54dbfc7b6b268f026) )
+ ROM_LOAD( "zap.5f", 0x1000, 0x1000, CRC(039b5c78) SHA1(36a96c996f20d1b5fb4f674393a03d10cdf4a091) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD( "82s123.7f", 0x0000, 0x0020, CRC(2fc650bd) SHA1(8d0268dee78e47c712202b0ec4f1f51109b1f2a5) )
+ ROM_LOAD( "crush.4a", 0x0020, 0x0100, CRC(2bc5d339) SHA1(446e234df94d9ef34c3191877bb33dd775acfdf5) )
+
+ PACMAN_SOUND_PROMS
+ROM_END
+
+/*************************************
+ *
+ * Game drivers
+ *
+ *************************************/
+
+/* Official MAME */
+
+/* rom parent machine inp init */
+GAME( 1981, abscam, puckman, piranha, mspacman, pacman_state, eyes, ROT90, "GL (US Billiards License)", "Abscam", MACHINE_SUPPORTS_SAVE )
+GAME( 1982, eyes, 0, pacman, eyes, pacman_state, eyes, ROT90, "Digitrex Techstar (Rock-ola license)", "Eyes (Digitrex Techstar)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, piranha, puckman, piranha, mspacman, pacman_state, eyes, ROT90, "GL (US Billiards License)", "Piranha", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, piranhah, puckman, pacman, mspacman, pacman_state, 0, ROT90, "hack", "Piranha (hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, piranhao, puckman, piranha, mspacman, pacman_state, eyes, ROT90, "GL (US Billiards License)", "Piranha (older)", MACHINE_SUPPORTS_SAVE )
+
+
+/* Dave Widel's Games - http://www.widel.com */
+
+GAME( 2003, aa, 0, widel, mspacpls, pacman_state, 0, ROT90, "David Widel", "Alien Armada", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, bace, 0, widel, mspacpls, pacman_state, 0, ROT90, "David Widel", "Balloon Ace", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, dderby, 0, widel, mspacpls, pacman_state, 0, ROT90, "David Widel", "Death Derby", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kangaroh, 0, woodpek, mspacpls, pacman_state, 0, ROT90, "David Widel", "Kagaroo (Qbertish) (incomplete)", MACHINE_IS_INCOMPLETE | MACHINE_SUPPORTS_SAVE )
+GAME( 2003, ladybugh, lazybug, woodpek, mspacpls, pacman_state, 0, ROT90, "David Widel", "Ladybug on Pacman Hardware", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, lazybug, 0, woodpek, mspacpls, pacman_state, 0, ROT90, "David Widel", "Lazy Bug", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, lazybug1, lazybug, woodpek, mspacpls, pacman_state, 0, ROT90, "David Widel", "Lazy Bug (Slower)", MACHINE_SUPPORTS_SAVE )
+GAME( 19??, pactest, 0, woodpek, mspacpls, pacman_state, 0, ROT90, "David Widel", "Test - Pacman board test", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, ppong, 0, woodpek, mspacpls, pacman_state, 0, ROT90, "David Widel", "Pong (Pacman Hardware)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, ppong2, ppong, woodpek, mspacpls, pacman_state, 0, ROT90, "David Widel", "Pong (Pacman Hardware) v2", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, rainboh, 0, pacman, mspacpls, pacman_state, 0, ROT90, "David Widel", "Rainbow (Incomplete)", MACHINE_IS_INCOMPLETE | MACHINE_SUPPORTS_SAVE )
+GAME( 1981, wavybug, lazybug, woodpek, mspacpls, pacman_state, 0, ROT90, "David Widel", "Wavy Bug", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, zap, 0, woodpek, mspacpls, pacman_state, 0, ROT90, "David Widel", "Space Zap Tribute", MACHINE_SUPPORTS_SAVE )
+
+/* Jerronimo's Progs - www.umlautllama.com */
+
+GAME( 2006, absurd, 0, pacman, mspacman, pacman_state, 0, ROT90, "Scott Lawrence", "Absurd!/QuadBlok (non-working alpha ver 3)", MACHINE_IS_INCOMPLETE | MACHINE_SUPPORTS_SAVE )
+GAME( 2003, alpaca7, alpaca8, pacman, pacman0, pacman_state, 0, ROT90, "Scott Lawrence", "Alpaca v0.7 (Pacman Hardware)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, alpaca8, 0, pacman, pacman0, pacman_state, 0, ROT90, "Scott Lawrence", "Alpaca v0.8 (Pacman Hardware)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, pachello, 0, pachack, pacman0, pacman_state, 0, ROT90, "Scott Lawrence", "Hello, World!", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, pacmatri, 0, pachack, pacman0, pacman_state, 0, ROT90, "Scott Lawrence", "Matrix Effect", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, seq1, 0, pachack, pacman0, pacman_state, 0, ROT90, "Scott Lawrence", "16 Step Simple Sequencer", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, seq2, seq1, pachack, pacman0, pacman_state, 0, ROT90, "Scott Lawrence", "Sequencer and Music Player", MACHINE_SUPPORTS_SAVE )
+GAME( 2012, tinyworld, 0, pacman, mspacman, pacman_state, 0, ROT90, "Scott Lawrence", "Tiny World 82 (demo)", MACHINE_IS_INCOMPLETE | MACHINE_SUPPORTS_SAVE )
+
+/* Other Misc Hacks */
+
+GAME( 2002, crashh, 0, woodpek, mspacpls, pacman_state, 0, ROT90, "hack", "Crash", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, mtturbo, 0, maketrax, maketrax, pacman_state, maketrax, ROT270, "Tim Arcadecollecting", "Make Trax (Turbo Hack)", MACHINE_SUPPORTS_SAVE ) // http://www.arcadecollecting.com/hacks/maketrax
+GAME( 1999, tst_pacm, 0, pacman, mspacpls, pacman_state, 0, ROT90, "David Caldwell", "Test - Pacman Hardware", MACHINE_SUPPORTS_SAVE ) // http://www.porkrind.org/arcade/
+GAME( 1982, eyesb, eyes, pacman, eyes, pacman_state, eyes, ROT90, "bootleg", "Eyes (unknown bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, ghohunt, puckman, pacman, pacman0, pacman_state, 0, ROT90, "Hurray Banana", "Ghost Hunt", MACHINE_SUPPORTS_SAVE )
+GAME( 2012, pactetris, puckman, pacman, pacman0, pacman_state, 0, ROT90, "Ben Leperchey", "Tetris on Pacman hardware (incomplete)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, deathstar, puckman, pacman, pacman0, pacman_state, 0, ROT90, "Stefano Bodrato", "Death Star", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, scroller, puckman, pacman, pacman0, pacman_state, 0, ROT90, "Hurray Banana", "Scroller", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, snakes, puckman, pacman, pacman0, pacman_state, 0, ROT90, "Stefano Bodrato", "Snakes", MACHINE_SUPPORTS_SAVE )
+
+
+/*************************************************************************************************************************/
diff --git a/src/hbmame/drivers/mappy.cpp b/src/hbmame/drivers/mappy.cpp
new file mode 100644
index 00000000000..3de7db0bdf9
--- /dev/null
+++ b/src/hbmame/drivers/mappy.cpp
@@ -0,0 +1,202 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/mappy.cpp"
+
+ROM_START( crackhea )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "mpx_3.1d", 0xa000, 0x2000, CRC(52e6c708) SHA1(b9722941438e93325e84691ada4e95620bec73b2) )
+ ROM_LOAD( "mp1_2.1c", 0xc000, 0x2000, CRC(a958a61c) SHA1(e5198703cdf47b2cd7fc9f2a5fde7bf4ab2275db) )
+ ROM_LOAD( "mpx_1.1b", 0xe000, 0x2000, CRC(203766d4) SHA1(1dbc4f42d4c16a08240a221bec27dcc3a8dd7461) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "mp1_4.1k", 0xe000, 0x2000, CRC(8182dd5b) SHA1(f36b57f7f1e79f00b3f07afe1960bca5f5325ee2) )
+
+ ROM_REGION( 0x1000, "gfx1", ROMREGION_INVERT )
+ ROM_LOAD( "crackh3b.32", 0x0000, 0x1000, CRC(912ffa7e) SHA1(e2fc4992ef7214e62acdcda6605a1e27b2739cbf) )
+
+ ROM_REGION( 0x4000, "gfx2", 0 )
+ ROM_LOAD( "crackh3m.64", 0x0000, 0x2000, CRC(a263d078) SHA1(344fae10fab0f9646f5a2b39cac09faa9745ec9b) )
+ ROM_LOAD( "crackh3n.64", 0x2000, 0x2000, CRC(3758ceb2) SHA1(152ba5a14514c0c160886d5c9a1296dea7a298aa) )
+
+ ROM_REGION( 0x0220, "proms", 0 )
+ ROM_LOAD( "mp1-5.5b", 0x0000, 0x0020, CRC(56531268) SHA1(2e356706c07f43eeb67783fb122bdc7fed1b3589) )
+ ROM_LOAD( "mp1-6.4c", 0x0020, 0x0100, CRC(50765082) SHA1(f578e14f15783acb2073644db4a2f0d196cc0957) )
+ ROM_LOAD( "mp1-7.5k", 0x0120, 0x0100, CRC(5396bd78) SHA1(2e387e5d8b8cab005f67f821b4db65d0ae8bd362) )
+
+ ROM_REGION( 0x0100, "namco", 0 )
+ ROM_LOAD( "mp1-3.3m", 0x0000, 0x0100, CRC(16a9166a) SHA1(847cbaf7c88616576c410177e066ae1d792ac0ba) )
+ROM_END
+
+ROM_START( housepty )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "housep1d.64", 0xa000, 0x2000, CRC(6f778a5d) SHA1(afe1a317f8f355ad2e83d13835c2e28137d5a5e5) )
+ ROM_LOAD( "mp1_2.1c", 0xc000, 0x2000, CRC(a958a61c) SHA1(e5198703cdf47b2cd7fc9f2a5fde7bf4ab2275db) )
+ ROM_LOAD( "housep1b.64", 0xe000, 0x2000, CRC(41a0c5b4) SHA1(74f74d679b42d51b8c850daaadc9df8889403712) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "mp1_4.1k", 0xe000, 0x2000, CRC(8182dd5b) SHA1(f36b57f7f1e79f00b3f07afe1960bca5f5325ee2) )
+
+ ROM_REGION( 0x1000, "gfx1", ROMREGION_INVERT )
+ ROM_LOAD( "housep3b.32", 0x0000, 0x1000, CRC(8d565a7e) SHA1(b2730de5ea2d19ba1e2851c27a73c6b03225a479) )
+
+ ROM_REGION( 0x4000, "gfx2", 0 )
+ ROM_LOAD( "housep3m.64", 0x0000, 0x2000, CRC(23a3c108) SHA1(266e7ca7db5f7d481f99fd295b6bdb2da3b34b93) )
+ ROM_LOAD( "housep3n.64", 0x2000, 0x2000, CRC(c6822529) SHA1(1d8658a0e014d67b5b84f33cb19a9bdd8a88f623) )
+
+ ROM_REGION( 0x0220, "proms", 0 )
+ ROM_LOAD( "mp1-5.5b", 0x0000, 0x0020, CRC(56531268) SHA1(2e356706c07f43eeb67783fb122bdc7fed1b3589) )
+ ROM_LOAD( "mp1-6.4c", 0x0020, 0x0100, CRC(50765082) SHA1(f578e14f15783acb2073644db4a2f0d196cc0957) )
+ ROM_LOAD( "mp1-7.5k", 0x0120, 0x0100, CRC(5396bd78) SHA1(2e387e5d8b8cab005f67f821b4db65d0ae8bd362) )
+
+ ROM_REGION( 0x0100, "namco", 0 )
+ ROM_LOAD( "mp1-3.3m", 0x0000, 0x0100, CRC(16a9166a) SHA1(847cbaf7c88616576c410177e066ae1d792ac0ba) )
+ROM_END
+
+ROM_START( marpy )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "mpx_3.1d", 0xa000, 0x2000, CRC(52e6c708) SHA1(b9722941438e93325e84691ada4e95620bec73b2) )
+ ROM_LOAD( "mp1_2.1c", 0xc000, 0x2000, CRC(a958a61c) SHA1(e5198703cdf47b2cd7fc9f2a5fde7bf4ab2275db) )
+ ROM_LOAD( "mpx_1.1b", 0xe000, 0x2000, CRC(203766d4) SHA1(1dbc4f42d4c16a08240a221bec27dcc3a8dd7461) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "mp1_4.1k", 0xe000, 0x2000, CRC(8182dd5b) SHA1(f36b57f7f1e79f00b3f07afe1960bca5f5325ee2) )
+
+ ROM_REGION( 0x1000, "gfx1", ROMREGION_INVERT )
+ ROM_LOAD( "marpy3b.32", 0x0000, 0x1000, CRC(2aa99047) SHA1(1ad2488066e433f2833b179b16d6500dd68ebecd) )
+
+ ROM_REGION( 0x4000, "gfx2", 0 )
+ ROM_LOAD( "marpy3m.64", 0x0000, 0x2000, CRC(ce61b84d) SHA1(33ff0ca22f347aceda084b4b8c3444a18b3d27e6) )
+ ROM_LOAD( "marpy3n.64", 0x2000, 0x2000, CRC(5d0572a7) SHA1(9afecab321dd4558efe27b00dc95a5e22154eb68) )
+
+ ROM_REGION( 0x0220, "proms", 0 )
+ ROM_LOAD( "mp1-5.5b", 0x0000, 0x0020, CRC(56531268) SHA1(2e356706c07f43eeb67783fb122bdc7fed1b3589) )
+ ROM_LOAD( "mp1-6.4c", 0x0020, 0x0100, CRC(50765082) SHA1(f578e14f15783acb2073644db4a2f0d196cc0957) )
+ ROM_LOAD( "mp1-7.5k", 0x0120, 0x0100, CRC(5396bd78) SHA1(2e387e5d8b8cab005f67f821b4db65d0ae8bd362) )
+
+ ROM_REGION( 0x0100, "namco", 0 )
+ ROM_LOAD( "mp1-3.3m", 0x0000, 0x0100, CRC(16a9166a) SHA1(847cbaf7c88616576c410177e066ae1d792ac0ba) )
+ROM_END
+
+ROM_START( superpc1 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "sp1-2.1c", 0xc000, 0x2000, CRC(4bb33d9c) SHA1(dd87f71b4db090a32a6b791079eedd17580cc741) )
+ ROM_LOAD( "superpc1.1b", 0xe000, 0x2000, CRC(cec50857) SHA1(d8470064bf8a334accedcb767f5da05d5dce00a1) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "spc-3.1k", 0xf000, 0x1000, CRC(04445ddb) SHA1(ce7d14963d5ddaefdeaf433a6f82c43cd1611d9b) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "superpc1.3c", 0x0000, 0x1000, CRC(1c72ed9e) SHA1(31833bd244ff0b61419566eae4f53bdd76a5a0e8) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "superpc1.3f", 0x0000, 0x2000, CRC(89f07757) SHA1(642ca413cf27496322e4840998cdb711e3c682e0) )
+
+ ROM_REGION( 0x0220, "proms", 0 )
+ ROM_LOAD( "superpac.4c", 0x0000, 0x0020, CRC(9ce22c46) SHA1(d97f53ef4c5ef26659a22ed0de4ce7ef3758c924) )
+ ROM_LOAD( "superpac.4e", 0x0020, 0x0100, CRC(1253c5c1) SHA1(df46a90170e9761d45c90fbd04ef2aa1e8c9944b) )
+ ROM_LOAD( "superpac.3l", 0x0120, 0x0100, CRC(d4d7026f) SHA1(a486573437c54bfb503424574ad82655491e85e1) )
+
+ ROM_REGION( 0x0100, "namco", 0 )
+ ROM_LOAD( "superpc1.3m", 0x0000, 0x0100, CRC(e35238c7) SHA1(c55bd51a44b4c9899ca65f47ede952ca2714ce8e) )
+ROM_END
+
+ROM_START( superpcn )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "spc-2.1c", 0xc000, 0x2000, CRC(1a38c30e) SHA1(ae0ee9f3df0991a80698fe745a7a853a4bb60710) )
+ ROM_LOAD( "spc-1.1b", 0xe000, 0x2000, CRC(730e95a9) SHA1(ca73c8bcb03c2f5c05968c707a5d3f7f9956b886) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "spc-3.1k", 0xf000, 0x1000, CRC(04445ddb) SHA1(ce7d14963d5ddaefdeaf433a6f82c43cd1611d9b) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "sp1-6.3c", 0x0000, 0x1000, CRC(91c5935c) SHA1(10579edabc26a0910253fab7d41b4c19ecdaaa09) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "spv-2.3f", 0x0000, 0x2000, CRC(670a42f2) SHA1(9171922df07e31fd1dc415766f7d2cc50a9d10dc) )
+
+ ROM_REGION( 0x0220, "proms", 0 )
+ ROM_LOAD( "superpac.4c", 0x0000, 0x0020, CRC(9ce22c46) SHA1(d97f53ef4c5ef26659a22ed0de4ce7ef3758c924) )
+ ROM_LOAD( "superpac.4e", 0x0020, 0x0100, CRC(1253c5c1) SHA1(df46a90170e9761d45c90fbd04ef2aa1e8c9944b) )
+ ROM_LOAD( "superpac.3l", 0x0120, 0x0100, CRC(d4d7026f) SHA1(a486573437c54bfb503424574ad82655491e85e1) )
+
+ ROM_REGION( 0x0100, "namco", 0 )
+ ROM_LOAD( "superpac.3m", 0x0000, 0x0100, CRC(ad43688f) SHA1(072f427453efb1dda8147da61804fff06e1bc4d5) )
+ROM_END
+
+ROM_START( superpcp )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "spc-2.1c", 0xc000, 0x2000, CRC(1a38c30e) SHA1(ae0ee9f3df0991a80698fe745a7a853a4bb60710) )
+ ROM_LOAD( "spc-1.1b", 0xe000, 0x2000, CRC(730e95a9) SHA1(ca73c8bcb03c2f5c05968c707a5d3f7f9956b886) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "spc-3.1k", 0xf000, 0x1000, CRC(04445ddb) SHA1(ce7d14963d5ddaefdeaf433a6f82c43cd1611d9b) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "spv-1.3c", 0x0000, 0x1000, CRC(78337e74) SHA1(11222adb55e6bce508896ccb1f6dbab0c1d44e5b) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "spcp-2.3f", 0x0000, 0x2000, CRC(0d52ef4d) SHA1(9db8d36d80db8622dd129e8db01ef507f0e5e926) )
+
+ ROM_REGION( 0x0220, "proms", 0 )
+ ROM_LOAD( "superpac.4c", 0x0000, 0x0020, CRC(9ce22c46) SHA1(d97f53ef4c5ef26659a22ed0de4ce7ef3758c924) )
+ ROM_LOAD( "superpac.4e", 0x0020, 0x0100, CRC(1253c5c1) SHA1(df46a90170e9761d45c90fbd04ef2aa1e8c9944b) )
+ ROM_LOAD( "superpac.3l", 0x0120, 0x0100, CRC(d4d7026f) SHA1(a486573437c54bfb503424574ad82655491e85e1) )
+
+ ROM_REGION( 0x0100, "namco", 0 )
+ ROM_LOAD( "superpac.3m", 0x0000, 0x0100, CRC(ad43688f) SHA1(072f427453efb1dda8147da61804fff06e1bc4d5) )
+ROM_END
+
+ROM_START( superpcs )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "sp1-2.1c", 0xc000, 0x2000, CRC(4bb33d9c) SHA1(dd87f71b4db090a32a6b791079eedd17580cc741) )
+ ROM_LOAD( "superpcs.1b", 0xe000, 0x2000, CRC(8df321c2) SHA1(f8e0a004042be3003534b226a80ab7104f684e26) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "spc-3.1k", 0xf000, 0x1000, CRC(04445ddb) SHA1(ce7d14963d5ddaefdeaf433a6f82c43cd1611d9b) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "superpcs.3c", 0x0000, 0x1000, CRC(3a4f438d) SHA1(ca333d02c94380d4fc4b56c8cc5f7269157ac371) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "superpcs.3f", 0x0000, 0x2000, CRC(d477484e) SHA1(edf724a3a53c0bfd18aaa55e452b47c8b54b223e) )
+
+ ROM_REGION( 0x0220, "proms", 0 )
+ ROM_LOAD( "superpcs.4c", 0x0000, 0x0020, CRC(5508bfda) SHA1(29aaf77e2a1dda241da31ad83e43186b9ec491f1) )
+ ROM_LOAD( "superpac.4e", 0x0020, 0x0100, CRC(1253c5c1) SHA1(df46a90170e9761d45c90fbd04ef2aa1e8c9944b) )
+ ROM_LOAD( "superpac.3l", 0x0120, 0x0100, CRC(d4d7026f) SHA1(a486573437c54bfb503424574ad82655491e85e1) )
+
+ ROM_REGION( 0x0100, "namco", 0 )
+ ROM_LOAD( "superpcs.3m", 0x0000, 0x0100, CRC(06acd480) SHA1(4963bd69e8718cf3fd08f06a5f03fe153c380af4) )
+ROM_END
+
+ROM_START( vectrsup )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "spc-2.1c", 0xc000, 0x2000, CRC(1a38c30e) SHA1(ae0ee9f3df0991a80698fe745a7a853a4bb60710) )
+ ROM_LOAD( "spc-1.1b", 0xe000, 0x2000, CRC(730e95a9) SHA1(ca73c8bcb03c2f5c05968c707a5d3f7f9956b886) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "spc-3.1k", 0xf000, 0x1000, CRC(04445ddb) SHA1(ce7d14963d5ddaefdeaf433a6f82c43cd1611d9b) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "vecsup-1.3c", 0x0000, 0x1000, CRC(618db633) SHA1(3930a12c0d76d55b3ff40cc9deca20b01c6c9f9b) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "vecsup-2.3f", 0x0000, 0x2000, CRC(62c09c6c) SHA1(f1c65b594c293b6a4eb459eac80fe28929c64eb6) )
+
+ ROM_REGION( 0x0220, "proms", 0 )
+ ROM_LOAD( "superpac.4c", 0x0000, 0x0020, CRC(9ce22c46) SHA1(d97f53ef4c5ef26659a22ed0de4ce7ef3758c924) )
+ ROM_LOAD( "superpac.4e", 0x0020, 0x0100, CRC(1253c5c1) SHA1(df46a90170e9761d45c90fbd04ef2aa1e8c9944b) )
+ ROM_LOAD( "superpac.3l", 0x0120, 0x0100, CRC(d4d7026f) SHA1(a486573437c54bfb503424574ad82655491e85e1) )
+
+ ROM_REGION( 0x0100, "namco", 0 )
+ ROM_LOAD( "superpac.3m", 0x0000, 0x0100, CRC(ad43688f) SHA1(072f427453efb1dda8147da61804fff06e1bc4d5) )
+ROM_END
+
+GAME( 1998, crackhea, mappy, mappy, mappy, mappy_state, 0, ROT90, "Cary Barnhard", "Crackhead", MACHINE_SUPPORTS_SAVE ) // transparency error
+GAME( 1998, housepty, mappy, mappy, mappy, mappy_state, 0, ROT90, "Jerky", "House Party", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, marpy, mappy, mappy, mappy, mappy_state, 0, ROT90, "Marks Hacks", "Marpy", MACHINE_SUPPORTS_SAVE ) // transparency error
+GAME( 2011, superpc1, superpac, superpac, superpac, mappy_state, 0, ROT90, "Paul Smith", "Super Pac-Man (Super Locksmith sound and gfx hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, superpcn, superpac, superpac, superpac, mappy_state, 0, ROT90, "Namco", "Super Pac-Man (Namco)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, superpcp, superpac, superpac, superpac, mappy_state, 0, ROT90, "Blue Justice", "Super Pac-Man Plus", MACHINE_SUPPORTS_SAVE )
+GAME( 2011, superpcs, superpac, superpac, superpac, mappy_state, 0, ROT90, "Paul Smith", "Super Pac-Man (always small)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, vectrsup, superpac, superpac, superpac, mappy_state, 0, ROT90, "T-Bone", "Super Pac-Man (Vector sim)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/mario.cpp b/src/hbmame/drivers/mario.cpp
new file mode 100644
index 00000000000..daa7a00c18d
--- /dev/null
+++ b/src/hbmame/drivers/mario.cpp
@@ -0,0 +1,32 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/mario.cpp"
+
+ROM_START( cenmario )
+ ROM_REGION( 0x10000, "maincpu", 0 ) // cpu roms from marioj
+ ROM_LOAD( "tma1c-a1.7f", 0x0000, 0x2000, CRC(b64b6330) SHA1(f7084251ac325bbfa3fb804da16a50622e1fd213) )
+ ROM_LOAD( "tma1c-a2.7e", 0x2000, 0x2000, CRC(290c4977) SHA1(5af266be0ddc883c6548c90e4a9084024a1e91a0) )
+ ROM_LOAD( "tma1c-a1.7d", 0x4000, 0x2000, CRC(f8575f31) SHA1(710d0e72fcfce700ed2a22fb9c7c392cc76b250b) )
+ ROM_LOAD( "tma1c-a2.7c", 0xf000, 0x1000, CRC(a3c11e9e) SHA1(d0612b0f8c2ea4e798f551922a04a324f4ed5f3d) )
+
+ ROM_REGION( 0x1800, "audiocpu", ROMREGION_ERASE00 )
+ ROM_LOAD( "tma1-c-6k_e.6k", 0x1000, 0x0800, CRC(06b9ff85) SHA1(111a29bcb9cda0d935675fa26eca6b099a88427f) )
+ ROM_CONTINUE( 0x0800, 0x0800)
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "cenmario.3f", 0x0000, 0x1000, CRC(27bcd321) SHA1(d8f1fc65dc17af2f80d67f3e2f3edabc79eba1b3) )
+ ROM_LOAD( "cenmario.3j", 0x1000, 0x1000, CRC(de1c6962) SHA1(2779715d62981baf2ea3a3f501128deb0f5559ab) )
+
+ ROM_REGION( 0x6000, "gfx2", 0 )
+ ROM_LOAD( "cenmario.7m", 0x0000, 0x1000, CRC(41c78d70) SHA1(f5ad2b84439a9c2e7aed0a38a507bb714ad6eb3a) )
+ ROM_LOAD( "cenmario.7n", 0x1000, 0x1000, CRC(659341a4) SHA1(77207279ebe9c5e33f8bfa4cdbbc7a04d0198c84) )
+ ROM_LOAD( "cenmario.7p", 0x2000, 0x1000, CRC(b9e32b12) SHA1(c8c8491c3724dc10f91100299347753bdc16a091) )
+ ROM_LOAD( "cenmario.7s", 0x3000, 0x1000, CRC(a5cc7370) SHA1(ac81cd6193207670ffbfdc4b2e9c15805c0eecee) )
+ ROM_LOAD( "cenmario.7t", 0x4000, 0x1000, CRC(e416cbea) SHA1(ffce92c8ce25d5086379ec1245ae11c64b7719f4) )
+ ROM_LOAD( "cenmario.7u", 0x5000, 0x1000, CRC(19eef39f) SHA1(41ee5184eeee10d7b502f5a06a3b006242756e57) )
+
+ ROM_REGION( 0x0200, "proms", 0 )
+ ROM_LOAD( "tma1-c-4p.4p", 0x0000, 0x0200, CRC(afc9bd41) SHA1(90b739c4c7f24a88b6ac5ca29b06c032906a2801) )
+ROM_END
+
+GAME( 2002, cenmario, mario, mario, marioj, mario_state, 0, ROT0, "Marks Hacks", "Censored Mario Bros.", MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/mcr.cpp b/src/hbmame/drivers/mcr.cpp
new file mode 100644
index 00000000000..7c952f62cb9
--- /dev/null
+++ b/src/hbmame/drivers/mcr.cpp
@@ -0,0 +1,114 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/mcr.cpp"
+
+ROM_START( handiman ) // all roms from tron2 except gfx2
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "scpu_pga.d2", 0x0000, 0x2000, CRC(5151770b) SHA1(26f4d830de7be228528e462dd628f439629a2641) )
+ ROM_LOAD( "scpu_pgb.d3", 0x2000, 0x2000, CRC(8ddf8717) SHA1(e0c294afa8ba0b0ba89e3e0fb3ff6d8fc4398e32) )
+ ROM_LOAD( "scpu_pgc.d4", 0x4000, 0x2000, CRC(4241e3a0) SHA1(24c1bd2f31e194542571c391c5dccf21354115c2) )
+ ROM_LOAD( "scpu_pgd.d5", 0x6000, 0x2000, CRC(035d2fe7) SHA1(1b827ca30a439d2f4cc94fcc0e90ee0cf87e018c) )
+ ROM_LOAD( "scpu_pge.d6", 0x8000, 0x2000, CRC(24c185d8) SHA1(45ac7c53f6f4eba5c7bf3fc6559cddd3821eddad) )
+ ROM_LOAD( "scpu_pgf.d7", 0xa000, 0x2000, CRC(38c4bbaf) SHA1(a7cd496ce75199b8279ea963520cf70d5f562bb2) )
+
+ ROM_REGION( 0x10000, "ssio:cpu", 0 )
+ ROM_LOAD( "ssi_0a.a7", 0x0000, 0x1000, CRC(765e6eba) SHA1(42efeefc8571dfc237c0be3368248f1e56add92e) )
+ ROM_LOAD( "ssi_0b.a8", 0x1000, 0x1000, CRC(1b90ccdd) SHA1(0876e5eeaa63bb8cc97f3634a6ddd8a29a9b012f) )
+ ROM_LOAD( "ssi_0c.a9", 0x2000, 0x1000, CRC(3a4bc629) SHA1(ce8452a99a313ae7429de471bbea39de08c9fd4b) )
+
+ ROM_REGION( 0x04000, "gfx1", 0 )
+ ROM_LOAD( "scpu_bgg.g3", 0x0000, 0x2000, CRC(1a9ed2f5) SHA1(b0d85b47873ac8ad475da18b9540d37232cb2b7c) )
+ ROM_LOAD( "scpu_bgh.g4", 0x2000, 0x2000, CRC(3220f974) SHA1(a38ea5f1db27f05d9689db838ce7a8de98f34837) )
+
+ ROM_REGION( 0x10000, "gfx2", 0 )
+ ROM_LOAD( "handiman.e1", 0x00000, 0x2000, CRC(8fb79ed7) SHA1(70e5f2aecda3d055eaedf2039128e549a94bd2cd) )
+ ROM_LOAD( "handiman.d1", 0x04000, 0x2000, CRC(c0b2b28e) SHA1(3d9d2c1b7a136f02e5c5595d52add03892cb0db1) )
+ ROM_LOAD( "handiman.c1", 0x08000, 0x2000, CRC(ee776741) SHA1(02ea99dd02cd469d1425a958202efe28dc202291) )
+ ROM_LOAD( "handiman.a1", 0x0c000, 0x2000, CRC(e17ec630) SHA1(7929bfeea0e5e47d412619f08ca09a31618b96da) )
+ROM_END
+
+ROM_START( shtron )
+ ROM_REGION( 0x10000, "maincpu", 0 ) // same as shollow2 except for 2 cpu roms
+ ROM_LOAD( "shtron.00", 0x0000, 0x2000, CRC(9AEC754C) SHA1(D17A221CEB8AF59D9087AE63A73026C0BD1D58CB) )
+ ROM_LOAD( "sh-pro.01", 0x2000, 0x2000, CRC(b99f6ff8) SHA1(575cdba5bf9965c7765ce913a3376c7ba36b8291) )
+ ROM_LOAD( "shtron.02", 0x4000, 0x2000, CRC(621AD715) SHA1(8CD34D33C86D10142E0503994A0666AC77C08D4B) )
+ ROM_LOAD( "sh-pro.03", 0x6000, 0x2000, CRC(0a64afb9) SHA1(3ac6660d2b0166c58ec4fecfe37ce36e545064df) )
+ ROM_LOAD( "sh-pro.04", 0x8000, 0x2000, CRC(22fa9175) SHA1(fd8ea76b3a7ffaf48fc11dd3b7c58e548e3e57c5) )
+ ROM_LOAD( "sh-pro.05", 0xa000, 0x2000, CRC(1716e2bb) SHA1(771e4c20d63e4e1d99723e6355db67064a278ae5) )
+
+ ROM_REGION( 0x10000, "ssio:cpu", 0 )
+ ROM_LOAD( "snd-0.a7", 0x0000, 0x1000, CRC(9d815bb3) SHA1(51af797e08dbe3921e11ce70c3d0da50979336a4) )
+ ROM_LOAD( "snd-1.a8", 0x1000, 0x1000, CRC(9f253412) SHA1(a526e864073a2f9e67e2cbe53ab17fe726336241) )
+ ROM_LOAD( "snd-2.a9", 0x2000, 0x1000, CRC(7783d6c6) SHA1(1fb2117532e7da28afdb9837bcb6848165cf8173) )
+
+ ROM_REGION( 0x04000, "gfx1", 0 )
+ ROM_LOAD( "sh-bg.00", 0x0000, 0x2000, CRC(3e2b333c) SHA1(b4347d0b3d6149e94da4a38684c0fab931e76cc5) )
+ ROM_LOAD( "sh-bg.01", 0x2000, 0x2000, CRC(d1d70cc4) SHA1(550e2e8c0bcbf7913b218fe48cd3324622c8d0f4) )
+
+ ROM_REGION( 0x08000, "gfx2", 0 )
+ ROM_LOAD( "sh-fg.00", 0x0000, 0x2000, CRC(33f4554e) SHA1(88dd803158d3c65429b79d2aaf8334130315aa93) )
+ ROM_LOAD( "sh-fg.01", 0x2000, 0x2000, CRC(ba1a38b4) SHA1(cee5f0a66e40c779f1bfbb4bfafe5301385e7dae) )
+ ROM_LOAD( "sh-fg.02", 0x4000, 0x2000, CRC(6b57f6da) SHA1(71165df59dd5ca037116dc0f46fd4f6aac6dbfd1) )
+ ROM_LOAD( "sh-fg.03", 0x6000, 0x2000, CRC(37ea9d07) SHA1(82e006b01ee12390308be530d4b68fc2404b6b91) )
+ROM_END
+
+ROM_START( stapper ) // cpu roms from tapper
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "tappg0.bin", 0x00000, 0x4000, CRC(127171d1) SHA1(373e9a9d73b71e100c02862662d025f5ead2f94d) )
+ ROM_LOAD( "tappg1.bin", 0x04000, 0x4000, CRC(9d6a47f7) SHA1(e493e46fc70a765e54bfdd7ba7ca570e6a5c79d6) )
+ ROM_LOAD( "tappg2.bin", 0x08000, 0x4000, CRC(3a1f8778) SHA1(cb46a2248289ced7282b1463f433dcb970c42c1a) )
+ ROM_LOAD( "tappg3.bin", 0x0c000, 0x2000, CRC(e8dcdaa4) SHA1(45bf1571a2418c7dc00ccc7061a3e04e65cb6bff) )
+
+ ROM_REGION( 0x10000, "ssio:cpu", 0 )
+ ROM_LOAD( "tapsnda7.bin", 0x0000, 0x1000, CRC(0e8bb9d5) SHA1(9e281c340b7702523c86d56317efad9e3688e585) )
+ ROM_LOAD( "tapsnda8.bin", 0x1000, 0x1000, CRC(0cf0e29b) SHA1(14334b9d2bfece3fe5bda0cbd53158ead8d27e53) )
+ ROM_LOAD( "tapsnda9.bin", 0x2000, 0x1000, CRC(31eb6dc6) SHA1(b38bba5f12516d899e023f99147868e3402fbd7b) )
+ ROM_LOAD( "tapsda10.bin", 0x3000, 0x1000, CRC(01a9be6a) SHA1(0011407c1e886071282808c0a561789b1245a789) )
+
+ ROM_REGION( 0x08000, "gfx1", 0 )
+ ROM_LOAD( "stapper.bg1", 0x00000, 0x4000, CRC(1326da21) SHA1(6886cbb83372ee4c53e19325a1552d312ce5de69) )
+ ROM_LOAD( "stapper.bg0", 0x04000, 0x4000, CRC(539b93c3) SHA1(6196516940893fd72d0c0f18efa7584a2df44833) )
+
+ ROM_REGION( 0x20000, "gfx2", 0 )
+ ROM_LOAD( "stapper.fg1", 0x00000, 0x4000, CRC(29dd8e85) SHA1(f7f7e8a3aebf075fb9a2508ce438ed3bbfdcddba) )
+ ROM_LOAD( "stapper.fg0", 0x04000, 0x4000, CRC(a8ba850f) SHA1(e143dab595e129936a4744266788542422e3c503) )
+ ROM_LOAD( "stapper.fg3", 0x08000, 0x4000, CRC(3d9133e4) SHA1(3ca946aee704d59a150a9cd8ea02edf5204022e3) )
+ ROM_LOAD( "stapper.fg2", 0x0c000, 0x4000, CRC(9254d87c) SHA1(084f71436c984cb0c42cd0d07ce47ab0959b64e1) )
+ ROM_LOAD( "stapper.fg5", 0x10000, 0x4000, CRC(5ec2544f) SHA1(1a919b0a80417c0f0e22bac2ab6932411bd4ad55) )
+ ROM_LOAD( "stapper.fg4", 0x14000, 0x4000, CRC(9b970c4b) SHA1(f690708107c4923db5ffe344015388199c7e879a) )
+ ROM_LOAD( "stapper.fg7", 0x18000, 0x4000, CRC(a2ef5c06) SHA1(cce74ff117921eb0438524e7f598fd2117044b1c) )
+ ROM_LOAD( "stapper.fg6", 0x1c000, 0x4000, CRC(1baca746) SHA1(3c7015e63ab1a3f98485415e212a4b80f648dcae) )
+ROM_END
+
+ROM_START( stapper1 )
+ ROM_REGION( 0x10000, "maincpu", 0 ) // same as stapper except 2 of the cpu roms
+ ROM_LOAD( "stapper1.pg0", 0x00000, 0x4000, CRC(c915f608) SHA1(aad2f1944334a7cdb0483613fdad40caab720259) )
+ ROM_LOAD( "tappg1.bin", 0x04000, 0x4000, CRC(9d6a47f7) SHA1(e493e46fc70a765e54bfdd7ba7ca570e6a5c79d6) )
+ ROM_LOAD( "tappg2.bin", 0x08000, 0x4000, CRC(3a1f8778) SHA1(cb46a2248289ced7282b1463f433dcb970c42c1a) )
+ ROM_LOAD( "stapper1.pg3", 0x0c000, 0x2000, CRC(dd4c785f) SHA1(6e19e77a0af6073c3955c61cf741b13921ce6bf0) )
+
+ ROM_REGION( 0x10000, "ssio:cpu", 0 )
+ ROM_LOAD( "tapsnda7.bin", 0x0000, 0x1000, CRC(0e8bb9d5) SHA1(9e281c340b7702523c86d56317efad9e3688e585) )
+ ROM_LOAD( "tapsnda8.bin", 0x1000, 0x1000, CRC(0cf0e29b) SHA1(14334b9d2bfece3fe5bda0cbd53158ead8d27e53) )
+ ROM_LOAD( "tapsnda9.bin", 0x2000, 0x1000, CRC(31eb6dc6) SHA1(b38bba5f12516d899e023f99147868e3402fbd7b) )
+ ROM_LOAD( "tapsda10.bin", 0x3000, 0x1000, CRC(01a9be6a) SHA1(0011407c1e886071282808c0a561789b1245a789) )
+
+ ROM_REGION( 0x08000, "gfx1", 0 )
+ ROM_LOAD( "stapper.bg1", 0x00000, 0x4000, CRC(1326da21) SHA1(6886cbb83372ee4c53e19325a1552d312ce5de69) )
+ ROM_LOAD( "stapper.bg0", 0x04000, 0x4000, CRC(539b93c3) SHA1(6196516940893fd72d0c0f18efa7584a2df44833) )
+
+ ROM_REGION( 0x20000, "gfx2", 0 )
+ ROM_LOAD( "stapper.fg1", 0x00000, 0x4000, CRC(29dd8e85) SHA1(f7f7e8a3aebf075fb9a2508ce438ed3bbfdcddba) )
+ ROM_LOAD( "stapper.fg0", 0x04000, 0x4000, CRC(a8ba850f) SHA1(e143dab595e129936a4744266788542422e3c503) )
+ ROM_LOAD( "stapper.fg3", 0x08000, 0x4000, CRC(3d9133e4) SHA1(3ca946aee704d59a150a9cd8ea02edf5204022e3) )
+ ROM_LOAD( "stapper.fg2", 0x0c000, 0x4000, CRC(9254d87c) SHA1(084f71436c984cb0c42cd0d07ce47ab0959b64e1) )
+ ROM_LOAD( "stapper.fg5", 0x10000, 0x4000, CRC(5ec2544f) SHA1(1a919b0a80417c0f0e22bac2ab6932411bd4ad55) )
+ ROM_LOAD( "stapper.fg4", 0x14000, 0x4000, CRC(9b970c4b) SHA1(f690708107c4923db5ffe344015388199c7e879a) )
+ ROM_LOAD( "stapper.fg7", 0x18000, 0x4000, CRC(a2ef5c06) SHA1(cce74ff117921eb0438524e7f598fd2117044b1c) )
+ ROM_LOAD( "stapper.fg6", 0x1c000, 0x4000, CRC(1baca746) SHA1(3c7015e63ab1a3f98485415e212a4b80f648dcae) )
+ROM_END
+
+GAME( 1998, handiman, tron, mcr_90010, tron, mcr_state, mcr_90010, ROT90, "Bobby Tribble", "Handi-Man in Cyberworld", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, shtron, shollow, mcr_90010, tron, mcr_state, mcr_90010, ROT90, "Scott Lawrence", "Satan's Hollow (Tron Hardware)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, stapper, tapper, mcr_91490, tapper, mcr_state, mcr_91490, ROT0, "DC", "Tapper (Simpsons Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, stapper1, tapper, mcr_91490, tapper, mcr_state, mcr_91490, ROT0, "DC", "Tapper (Simpsons Hack ver.81)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/mcr3.cpp b/src/hbmame/drivers/mcr3.cpp
new file mode 100644
index 00000000000..1f3b2072b15
--- /dev/null
+++ b/src/hbmame/drivers/mcr3.cpp
@@ -0,0 +1,26 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/mcr3.cpp"
+
+ROM_START( sargex )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "cpu_3b.bin", 0x00000, 0x8000, CRC(da31a58f) SHA1(29b97caf61f8f59042519a6b501cd1d15099dd59) )
+ ROM_LOAD( "cpu_5b.bin", 0x08000, 0x8000, CRC(6800e746) SHA1(018c2b622b3654530ebc2c299b3f745777163d4b) )
+ ROM_FILL( 0x0e000, 0x2000, 0xff )
+
+ ROM_REGION( 0x10000, "tcs:cpu", 0 )
+ ROM_LOAD( "tcs_u5.bin", 0x0c000, 0x2000, CRC(a894ef8a) SHA1(7f53927fc185fff8ba1b1747f0d565e089d879e6) )
+ ROM_LOAD( "tcs_u4.bin", 0x0e000, 0x2000, CRC(6ca6faf3) SHA1(4647e633dd11f55a65c3acf81adeb3af93624991) )
+
+ ROM_REGION( 0x04000, "gfx1", ROMREGION_INVERT )
+ ROM_LOAD( "til_15a.bin", 0x00000, 0x2000, CRC(685001b8) SHA1(300abd808efe5b44b022082eebc591c7c255697c) )
+ ROM_LOAD( "til_14b.bin", 0x02000, 0x2000, CRC(8449eb45) SHA1(6cc43639998d55fe7ffac7e9b091d35ea169e048) )
+
+ ROM_REGION( 0x20000, "gfx2", 0 )
+ ROM_LOAD( "sargex.8", 0x00000, 0x8000, CRC(9c0a3000) SHA1(e6f7cc05163a6eba9faa5811ed1fcd261ed400d6) )
+ ROM_LOAD( "sargex.6", 0x08000, 0x8000, CRC(da7e3dbf) SHA1(20179d03746098d6a7d3d50fbf4d470bef07467f) )
+ ROM_LOAD( "sargex.5", 0x10000, 0x8000, CRC(2effe749) SHA1(5c3f2da367b32c1272c51555f7d94d2dee3bcf93) )
+ ROM_LOAD( "sargex.4", 0x18000, 0x8000, CRC(66149219) SHA1(2dcd43de7fa674add94b2584e6795460f486a943) )
+ROM_END
+
+GAME( 2009, sargex, sarge, mono_tcs, sarge, mcr3_state, sarge, ROT0, "Gatinho", "Sarge Exposed", MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/mgd2.cpp b/src/hbmame/drivers/mgd2.cpp
new file mode 100644
index 00000000000..b0a84225e67
--- /dev/null
+++ b/src/hbmame/drivers/mgd2.cpp
@@ -0,0 +1,1189 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+/* These sets were dumped with the Mega Game Doctor 2
+ They are reputed to be bad dumps although I have not observed any problems.
+
+ Due to the dumping process, the P roms have the 2 halves swapped around,
+ and the C roms are split 32-byte-wise.
+
+ Each rom is named thus: nxxx001z.vvv, where:
+ xxx = the neogeo game number
+ z = a/b/c/d, indicates the loading order
+ vvv = 038 (P rom), 378 or 3f8 (S rom), 478 or 4f8 (M rom), 178, 1f8 (V rom, region 1),
+ 278, 2f8 (V rom, region 2), 538, 638, 53c, 63c (C rom)
+
+ if more than 2 V roms (or 4 C roms) are used, then z increases by a letter.
+
+ These games run the same as the usual MAME ones, except for alpham2 which has extra sound
+ roms. This produces extra sounds, such as the ticking sound as soon as the game starts. */
+
+
+ROM_START( 2020bbd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE ( "n030001a.038", 0x000001, 0x040000, CRC(efb016a2) SHA1(6bac3f89124e9af5c04e7e5b110e467a4ed85771) )
+ ROM_CONTINUE ( 0x000000, 0x040000 )
+
+ NEO_SFIX_128K( "030-s1.s1", CRC(7015b8fc) SHA1(8c09bc3e6c62e0f7c9557c1e10c901be325bae7f) ) // n030001a.378
+
+ NEO_BIOS_AUDIO_128K( "n030001a.4f8", CRC(bf755068) SHA1(7f624a691f7e51481949462141778da3e1eb0b91) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "n030001a.1f8", 0x000000, 0x080000, CRC(33e7886e) SHA1(78bd48fea1e2b1595661c8b957fe489c11e50b92) )
+ ROM_LOAD( "n030001a.1fc", 0x080000, 0x080000, CRC(e7ca3882) SHA1(40fb282ad0560d5933badd03da927d395d2a70b5) )
+ ROM_LOAD( "n030001b.1f8", 0x100000, 0x080000, CRC(3cf9a433) SHA1(3065079247f1f4a44452a9bb84c9a969fbd3773b) )
+ ROM_LOAD( "n030001b.1fc", 0x180000, 0x080000, CRC(88b10192) SHA1(ef486cc57a9cba6c4382b9fd8839e3beb57e916d) )
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "n030001a.538", 0x000000, 0x40000, CRC(746bf48a) SHA1(93006169cb4e26bf72372c5354e60f814f39df3a) )
+ ROM_CONTINUE( 0x000002, 0x40000 )
+ ROM_LOAD32_BYTE( "n030001a.638", 0x000001, 0x40000, CRC(5c123d9c) SHA1(98ce390641ad11823db5de779e01bf06c2eabb8a) )
+ ROM_CONTINUE( 0x000003, 0x40000 )
+ ROM_LOAD32_BYTE( "n030001a.53c", 0x100000, 0x40000, CRC(57bdcec0) SHA1(6a0cfc50386dff079be93a9ee96722ea1b3df9fc) )
+ ROM_CONTINUE( 0x100002, 0x40000 )
+ ROM_LOAD32_BYTE( "n030001a.63c", 0x100001, 0x40000, CRC(2f4bb615) SHA1(5cfda589291579edbabfc84894e1b9a8875588f2) )
+ ROM_CONTINUE( 0x100003, 0x40000 )
+ ROM_LOAD32_BYTE( "n030001b.538", 0x200000, 0x40000, CRC(0b054a38) SHA1(4a917b0dcbe4b270eadc4b99532d6912b3d3117f) )
+ ROM_CONTINUE( 0x200002, 0x40000 )
+ ROM_LOAD32_BYTE( "n030001b.638", 0x200001, 0x40000, CRC(b2a86447) SHA1(d7048c283853cbe52ef6733aed1f9a3bf22d70ec) )
+ ROM_CONTINUE( 0x200003, 0x40000 )
+ROM_END
+
+ROM_START( 3countbd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE ( "n043001a.038", 0x000001, 0x040000, CRC(10dbe66a) SHA1(b3a50100f0d41f2cc9ad92687aaba52340b6d67d) )
+ ROM_CONTINUE ( 0x000000, 0x040000 )
+ ROM_LOAD16_BYTE ( "n043001a.03c", 0x080001, 0x040000, CRC(6d5bfb61) SHA1(8ba73917d8c29a5400fcc3b58e0cbbd100dd3182) )
+ ROM_CONTINUE ( 0x080000, 0x040000 )
+
+ NEO_SFIX_128K( "043-s1.s1", CRC(c362d484) SHA1(a3c029292572842feabe9aa8c3372628fb63978d) ) // n043001a.378
+
+ NEO_BIOS_AUDIO_128K( "n043001a.4f8", CRC(3377cda3) SHA1(5712cd0717585914120ebf307391e1e3171f5396) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "n043001a.1f8", 0x000000, 0x080000, CRC(2abe6ab0) SHA1(9d717d52889c9af76fc6790a0e97c54eabd3b931) )
+ ROM_LOAD( "n043001a.1fc", 0x080000, 0x080000, CRC(d3fa2743) SHA1(9f065d708cad0b98e7b7b4c4e96a2a4f8da76e7e) )
+ ROM_LOAD( "n043001b.1f8", 0x100000, 0x080000, CRC(f591b0a1) SHA1(68bcac77543eca84232f1628a32828cc9c4081bb) )
+ ROM_LOAD( "n043001b.1fc", 0x180000, 0x080000, CRC(01f3999e) SHA1(4f9ec67e52aabe6a0d2e2210824349e25dd9269d) )
+ ROM_LOAD( "n043001c.1f8", 0x200000, 0x080000, CRC(f76aa00e) SHA1(6dbde96b083c34ee77ce512edaa2284061172df5) )
+ ROM_LOAD( "n043001c.1fc", 0x280000, 0x080000, CRC(851ce851) SHA1(58d2c904224c50cd9c2b5c5710bb8539b94af604) )
+ ROM_LOAD( "n043001d.1f8", 0x300000, 0x080000, CRC(9e2c8366) SHA1(89ababf09a578750fed508475bcfb562bc9116a6) )
+ ROM_LOAD( "n043001d.1fc", 0x380000, 0x080000, CRC(b1a0ccb0) SHA1(ccadb887818477906071edf85408bfe5d74e919a) )
+
+ ROM_REGION( 0x800000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "n043001a.538", 0x000000, 0x40000, CRC(be0d2fe0) SHA1(6c59673b5b7c362596374f45b0fc739e5608d4d2) )
+ ROM_CONTINUE( 0x000002, 0x40000 )
+ ROM_LOAD32_BYTE( "n043001a.638", 0x000001, 0x40000, CRC(f56dafa5) SHA1(2b9b1a1ed0a00b1bf3c7e490ac0995836c263dba) )
+ ROM_CONTINUE( 0x000003, 0x40000 )
+ ROM_LOAD32_BYTE( "n043001a.53c", 0x100000, 0x40000, CRC(fdb4df65) SHA1(ac59c3aaa5f794a21942015a41c3daa6a94d564c) )
+ ROM_CONTINUE( 0x100002, 0x40000 )
+ ROM_LOAD32_BYTE( "n043001a.63c", 0x100001, 0x40000, CRC(f2f68b2a) SHA1(3cd321ee4699be888a4c380a3202a2c4932cc240) )
+ ROM_CONTINUE( 0x100003, 0x40000 )
+ ROM_LOAD32_BYTE( "n043001b.538", 0x200000, 0x40000, CRC(714c2c01) SHA1(2a5e612807a6000824cc0ae848774c5e5bdcb572) )
+ ROM_CONTINUE( 0x200002, 0x40000 )
+ ROM_LOAD32_BYTE( "n043001b.638", 0x200001, 0x40000, CRC(b15a7f25) SHA1(c5488becc87fe5be5a402f5358cd4c6c7e7e0474) )
+ ROM_CONTINUE( 0x200003, 0x40000 )
+ ROM_LOAD32_BYTE( "n043001b.53c", 0x300000, 0x40000, CRC(c57ce8b0) SHA1(241d98fdf2cfb33321387c396b98011744b472c4) )
+ ROM_CONTINUE( 0x300002, 0x40000 )
+ ROM_LOAD32_BYTE( "n043001b.63c", 0x300001, 0x40000, CRC(25f00cd3) SHA1(55f51d80efab87ea1ea2bdcb92b97eeab3097b93) )
+ ROM_CONTINUE( 0x300003, 0x40000 )
+ ROM_LOAD32_BYTE( "n043001c.538", 0x400000, 0x40000, CRC(2e7e59df) SHA1(a0a5afd8259eff487d80a43405b6368bfb8a7862) )
+ ROM_CONTINUE( 0x400002, 0x40000 )
+ ROM_LOAD32_BYTE( "n043001c.638", 0x400001, 0x40000, CRC(341438e4) SHA1(233703b8ecd61ba173bf6636677f4f8e8972e8f4) )
+ ROM_CONTINUE( 0x400003, 0x40000 )
+ ROM_LOAD32_BYTE( "n043001c.53c", 0x500000, 0x40000, CRC(a93185ce) SHA1(8b979391f3dba5ee4869bbe8417cbe04f781a3bd) )
+ ROM_CONTINUE( 0x500002, 0x40000 )
+ ROM_LOAD32_BYTE( "n043001c.63c", 0x500001, 0x40000, CRC(fb8adce8) SHA1(e7a269db6b1f03cab4535b41caaae27e7d98dd4b) )
+ ROM_CONTINUE( 0x500003, 0x40000 )
+ ROM_LOAD32_BYTE( "n043001d.538", 0x600000, 0x40000, CRC(410938c5) SHA1(230e4c466a38fee7432be7352b99b9331c227532) )
+ ROM_CONTINUE( 0x600002, 0x40000 )
+ ROM_LOAD32_BYTE( "n043001d.638", 0x600001, 0x40000, CRC(74d995c5) SHA1(fd269844104c598cda96cc8823c0acdbddeaa9ba) )
+ ROM_CONTINUE( 0x600003, 0x40000 )
+ ROM_LOAD32_BYTE( "n043001d.53c", 0x700000, 0x40000, CRC(50d66909) SHA1(4458e59e7fdddd8c2383d4f0edd025a08eaa1222) )
+ ROM_CONTINUE( 0x700002, 0x40000 )
+ ROM_LOAD32_BYTE( "n043001d.63c", 0x700001, 0x40000, CRC(521b6df1) SHA1(aa8a072f1abe4a0bb62a917dd2662dfdbaef0faa) )
+ ROM_CONTINUE( 0x700003, 0x40000 )
+ROM_END
+
+ROM_START( alpham2d )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE ( "n007001a.038", 0x000001, 0x040000, CRC(4400b34c) SHA1(99cd25c0383e8ffba2d83f2d9c5c6452fe69c362) )
+ ROM_CONTINUE ( 0x000000, 0x040000 )
+ ROM_LOAD16_BYTE ( "n007001a.03c", 0x080001, 0x040000, CRC(b0366875) SHA1(591a02a5cef01e190eaed922894920571f4f6bdb) )
+ ROM_CONTINUE ( 0x080000, 0x040000 )
+
+ NEO_SFIX_128K( "007-s1.s1", CRC(85ec9acf) SHA1(39a11974438ad36a2cc84307151b31474c3c5518) ) // n007001a.378
+
+ NEO_BIOS_AUDIO_64K( "n007001a.478", CRC(0449acf5) SHA1(1275ba5dad1c5123f727dd4193b8ee2cb910760d) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "n007001a.178", 0x000000, 0x080000, CRC(7ec0e76d) SHA1(5f84f0a236b5cb7dd02b588806bc7f6e35eb515d) )
+ ROM_LOAD( "n007001a.17c", 0x080000, 0x080000, CRC(7a796ead) SHA1(0a5b2683acc680edef3d3aa44681e0d648dce53f) )
+ ROM_LOAD( "n007001b.178", 0x100000, 0x080000, CRC(70bc86a5) SHA1(00ef9faf9b094bca2fd654b26eb03e6e40bd6f80) )
+ ROM_LOAD( "n007001b.17c", 0x180000, 0x080000, CRC(29963a92) SHA1(fb2ff29e48cfee33c0f8c12f849b35bd5be27ec9) )
+
+ ROM_REGION( 0x400000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "n007001a.278", 0x000000, 0x080000, CRC(45f5e914) SHA1(d89d9917a0aaf1c662d5633a52a29bd670577830) )
+ ROM_LOAD( "n007001a.27c", 0x080000, 0x080000, CRC(07524063) SHA1(559c3f1b33cfb112dd8d70726be07cac1cafd72f) )
+ ROM_LOAD( "n007001b.278", 0x100000, 0x080000, CRC(c3178623) SHA1(687e63943a22cfff9778cb41ef6c9b9ac6f43334) )
+ ROM_LOAD( "n007001b.27c", 0x180000, 0x080000, CRC(65bca6b7) SHA1(8c96d98e86799f1a47b5a66d439e01d7935c213c) )
+ ROM_LOAD( "n007001c.278", 0x200000, 0x080000, CRC(27cd2250) SHA1(ab5af5762f48f670b2d0a31fdd38539956681035) )
+ ROM_LOAD( "n007001c.27c", 0x280000, 0x080000, CRC(43025293) SHA1(c8b612f4bead98d6e06dcf6cb8254fc8487e2c06) )
+ ROM_LOAD( "n007001d.278", 0x300000, 0x080000, CRC(ae0a679a) SHA1(7fd81af67238eae3dba64502eeff41933de795e8) )
+ ROM_LOAD( "n007001d.27c", 0x380000, 0x080000, CRC(6a2e400d) SHA1(656b026767596a6395f3e30f97140884cb0da5a0) )
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "n007001a.538", 0x000000, 0x40000, CRC(c516b09e) SHA1(910b6197fef78138da2c5b18507d12d841a518e5) )
+ ROM_CONTINUE( 0x000002, 0x40000 )
+ ROM_LOAD32_BYTE( "n007001a.638", 0x000001, 0x40000, CRC(6b674581) SHA1(3cbf29302c2677abe79ae10ef95097c6d62ca88c) )
+ ROM_CONTINUE( 0x000003, 0x40000 )
+ ROM_LOAD32_BYTE( "n007001a.53c", 0x100000, 0x40000, CRC(d9a0ff6c) SHA1(f2577736d516471a6757a8134916fbf7316a9809) )
+ ROM_CONTINUE( 0x100002, 0x40000 )
+ ROM_LOAD32_BYTE( "n007001a.63c", 0x100001, 0x40000, CRC(4ff21008) SHA1(496a27d902342dbb3685ad8354981e76dc839f47) )
+ ROM_CONTINUE( 0x100003, 0x40000 )
+ ROM_LOAD32_BYTE( "n007001b.538", 0x200000, 0x40000, CRC(3a7fe4fd) SHA1(ad4d93ed7d472579b6ba5fd4809a96762f0c0c2e) )
+ ROM_CONTINUE( 0x200002, 0x40000 )
+ ROM_LOAD32_BYTE( "n007001b.638", 0x200001, 0x40000, CRC(d0e8eef3) SHA1(560594bf1ec6ca32b38d0fe73b4cb5b5ecb56d56) )
+ ROM_CONTINUE( 0x200003, 0x40000 )
+ROM_END
+
+ROM_START( androdund )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE ( "n049001a.038", 0x000001, 0x040000, CRC(4639b419) SHA1(617765aea2cb26ae52b25b2f7a541caf14effac9) )
+ ROM_CONTINUE ( 0x000000, 0x040000 )
+ ROM_LOAD16_BYTE ( "n049001a.03c", 0x080001, 0x040000, CRC(11beb098) SHA1(8c8fafba019e94fcf56643fbeeae161840e4263d) )
+ ROM_CONTINUE ( 0x080000, 0x040000 )
+
+ NEO_SFIX_128K( "049-s1.s1", CRC(6349de5d) SHA1(bcc44b9576d7bedd9a39294530bb66f707690c72) ) // n049001a.378
+
+ NEO_BIOS_AUDIO_128K( "n049001a.4f8", CRC(1a009f8c) SHA1(7782dfe48e143417f34fba5353e6deb63efeaa8a) )
+
+ ROM_REGION( 0x100000, "ymsnd", 0 )
+ ROM_LOAD( "n049001a.1f8", 0x000000, 0x080000, CRC(577c85b3) SHA1(2c3072401fe73497dca0e9009ae2ba4053fe936d) )
+ ROM_LOAD( "n049001a.1fc", 0x080000, 0x080000, CRC(e14551c4) SHA1(763a9912b9df55defb190af3f29ae034f6dd78d6) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "n049001a.538", 0x000000, 0x40000, CRC(ca08e432) SHA1(4202685ea0eaa29772d3d451ed9240202e4626a4) )
+ ROM_CONTINUE( 0x000002, 0x40000 )
+ ROM_LOAD32_BYTE( "n049001a.638", 0x000001, 0x40000, CRC(7a0deb9e) SHA1(50953e69b8462d4b981c91c74c307bcb539b0ceb) )
+ ROM_CONTINUE( 0x000003, 0x40000 )
+ ROM_LOAD32_BYTE( "n049001a.53c", 0x100000, 0x40000, CRC(fcbcb305) SHA1(42fe48127593e7714f7675506de8d0ae08a70164) )
+ ROM_CONTINUE( 0x100002, 0x40000 )
+ ROM_LOAD32_BYTE( "n049001a.63c", 0x100001, 0x40000, CRC(b1c640f5) SHA1(6e667f4c197243f6389c952229efa90bd3a66b50) )
+ ROM_CONTINUE( 0x100003, 0x40000 )
+ ROM_LOAD32_BYTE( "n049001b.538", 0x200000, 0x40000, CRC(806ab937) SHA1(78867c587420b938be1a76f0b87dea4d21fbe1b0) )
+ ROM_CONTINUE( 0x200002, 0x40000 )
+ ROM_LOAD32_BYTE( "n049001b.638", 0x200001, 0x40000, CRC(33bee10f) SHA1(3e01859e6455c9e941f9afcf31d62a4de4806eca) )
+ ROM_CONTINUE( 0x200003, 0x40000 )
+ ROM_LOAD32_BYTE( "n049001b.53c", 0x300000, 0x40000, CRC(e7e1a2be) SHA1(91a68ed46975811f1abaf4d1d912f514328c7189) )
+ ROM_CONTINUE( 0x300002, 0x40000 )
+ ROM_LOAD32_BYTE( "n049001b.63c", 0x300001, 0x40000, CRC(70f0d263) SHA1(fccb548d4b1754c475ceb46f3e49e4e9607e6651) )
+ ROM_CONTINUE( 0x300003, 0x40000 )
+ROM_END
+
+ROM_START( aofd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE ( "n044001a.038", 0x000001, 0x040000, CRC(95102254) SHA1(b4b9a0b35c2fab78fa9fd590f0f22da4e4153ac2) )
+ ROM_CONTINUE ( 0x000000, 0x040000 )
+
+ NEO_SFIX_128K( "044-s1.s1", CRC(89903f39) SHA1(a04a0c244a5d5c7a595fcf649107969635a6a8b6) ) // n044001a.378
+
+ NEO_BIOS_AUDIO_128K( "044001a.4f8", CRC(981345f8) SHA1(5eb6a5a3f633d74a48555808e2562a0ba16d8675) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "n044001a.1f8", 0x000000, 0x080000, CRC(a4d8747f) SHA1(d9963375edd22d194c17e50fa398b12bbe2a777f) )
+ ROM_LOAD( "n044001a.1fc", 0x080000, 0x080000, CRC(55219d13) SHA1(97fa9b1461e9dbf6c1580e1f814df68c79b61016) )
+ ROM_LOAD( "n044001b.1f8", 0x100000, 0x080000, CRC(6eae81fa) SHA1(37d5ea320913b77a3fcdd2e1db1447a9cd77d094) )
+ ROM_LOAD( "n044001b.1fc", 0x180000, 0x080000, CRC(f91676e9) SHA1(5c3e8f4230a2b18af8cea4ee32c23408de575c0c) )
+ ROM_LOAD( "n044001c.1f8", 0x200000, 0x080000, CRC(d0c8bcd2) SHA1(126d56214a51027a340153b0dc29268ef7d36256) )
+ ROM_LOAD( "n044001c.1fc", 0x280000, 0x080000, CRC(167db9b2) SHA1(960c32b4163d7cadba26d4f64627bce08d4da65b) )
+ ROM_LOAD( "n044001d.1f8", 0x300000, 0x080000, CRC(f03969fe) SHA1(5e30c9162bdb8236ccd7ec1e99107da656764fe8) )
+ ROM_LOAD( "n044001d.1fc", 0x380000, 0x080000, CRC(a823a19a) SHA1(5662874b80b9df94c60f7100eefa229e95bd91d5) )
+
+ ROM_REGION( 0x800000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "n044001a.538", 0x000000, 0x40000, CRC(a2e4a168) SHA1(7a0090f85235ae2a50498ab3538fef2f8afa7242) )
+ ROM_CONTINUE( 0x000002, 0x40000 )
+ ROM_LOAD32_BYTE( "n044001a.638", 0x000001, 0x40000, CRC(ca12c80f) SHA1(c7e4b241719f04860abf5fbb6e1712a802e43dee) )
+ ROM_CONTINUE( 0x000003, 0x40000 )
+ ROM_LOAD32_BYTE( "n044001a.53c", 0x100000, 0x40000, CRC(da389ef7) SHA1(b3c6ec60c5bdb63943a23eed028d9c952b11fc24) )
+ ROM_CONTINUE( 0x100002, 0x40000 )
+ ROM_LOAD32_BYTE( "n044001a.63c", 0x100001, 0x40000, CRC(d59746b0) SHA1(4d66e8384be5ce2917cf7db099000c229fb2d767) )
+ ROM_CONTINUE( 0x100003, 0x40000 )
+ ROM_LOAD32_BYTE( "n044001b.538", 0x200000, 0x40000, CRC(2a0c385b) SHA1(7d8e20a81e15f6806af43edb7d35e65052c32cbd) )
+ ROM_CONTINUE( 0x200002, 0x40000 )
+ ROM_LOAD32_BYTE( "n044001b.638", 0x200001, 0x40000, CRC(8b73b3da) SHA1(046e4a02f2c305ded91b22e09bf421d4f3d84f0c) )
+ ROM_CONTINUE( 0x200003, 0x40000 )
+ ROM_LOAD32_BYTE( "n044001b.53c", 0x300000, 0x40000, CRC(4a4317bf) SHA1(805405d440e4dba2cdc8b89629b0ab9616b5d357) )
+ ROM_CONTINUE( 0x300002, 0x40000 )
+ ROM_LOAD32_BYTE( "n044001b.63c", 0x300001, 0x40000, CRC(9fc3f8ea) SHA1(5a0520980b69724cdd011841844545dafc259ff9) )
+ ROM_CONTINUE( 0x300003, 0x40000 )
+ ROM_LOAD32_BYTE( "n044001c.538", 0x400000, 0x40000, CRC(471d9e57) SHA1(54200bd380f8f6b19f64768033b97a96aa8a8640) )
+ ROM_CONTINUE( 0x400002, 0x40000 )
+ ROM_LOAD32_BYTE( "n044001c.638", 0x400001, 0x40000, CRC(cbf8a72e) SHA1(182b7f98f414533f1ea294f3ea8b25e98857e0cd) )
+ ROM_CONTINUE( 0x400003, 0x40000 )
+ ROM_LOAD32_BYTE( "n044001c.53c", 0x500000, 0x40000, CRC(23fe5675) SHA1(a03b0739c3b98150a610aada2c945165a58a56d7) )
+ ROM_CONTINUE( 0x500002, 0x40000 )
+ ROM_LOAD32_BYTE( "n044001c.63c", 0x500001, 0x40000, CRC(5ec93c96) SHA1(6a5869fe778774ef1a641068e65e33a1ea2bd15b) )
+ ROM_CONTINUE( 0x500003, 0x40000 )
+ ROM_LOAD32_BYTE( "n044001d.538", 0x600000, 0x40000, CRC(204e7b29) SHA1(944865fb04e554f217dbaa2259834e1c413afe50) )
+ ROM_CONTINUE( 0x600002, 0x40000 )
+ ROM_LOAD32_BYTE( "n044001d.638", 0x600001, 0x40000, CRC(47763b6d) SHA1(b7e6cb423e3c49bca60ff190ff105001e3579701) )
+ ROM_CONTINUE( 0x600003, 0x40000 )
+ ROM_LOAD32_BYTE( "n044001d.53c", 0x700000, 0x40000, CRC(7f6d5144) SHA1(8f39666259d8fe187ae6da532372b6c606737246) )
+ ROM_CONTINUE( 0x700002, 0x40000 )
+ ROM_LOAD32_BYTE( "n044001d.63c", 0x700001, 0x40000, CRC(4408f4eb) SHA1(dc045494f6865def21448caab13b2ad6ee520f37) )
+ ROM_CONTINUE( 0x700003, 0x40000 )
+ROM_END
+
+ROM_START( bakatonod )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE ( "n036001a.038", 0x000001, 0x040000, CRC(083ca651) SHA1(8d947e5de3db3a8cf4195de3b149d4a7994704c1) )
+ ROM_CONTINUE ( 0x000000, 0x040000 )
+ ROM_LOAD16_BYTE ( "n036001a.03c", 0x080001, 0x040000, CRC(b3bc26ae) SHA1(c0a741198627a78f7a100ee406d994b50e63012f) )
+ ROM_CONTINUE ( 0x080000, 0x040000 )
+
+ NEO_SFIX_128K( "036-s1.s1", CRC(f3ef4485) SHA1(c30bfceed7e669e4c97b0b3ec2e9f4271e5b6662) ) // n036001a.378
+
+ NEO_BIOS_AUDIO_64K( "n036001a.4f8", CRC(a5e05789) SHA1(63985ed5b3491d0f7b0e2f59785f590bfe122330) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "n036001a.1f8", 0x000000, 0x080000, CRC(d3edbde6) SHA1(c8628a47e275137e340f2005775272a58a594d81) )
+ ROM_LOAD( "n036001a.1fc", 0x080000, 0x080000, CRC(cc487705) SHA1(3bc30dc485917a01756ed33b3507133549e3c1f8) )
+ ROM_LOAD( "n036001b.1f8", 0x100000, 0x080000, CRC(e28cf9b3) SHA1(6c0bc9f5f496edb89dd8dc7acbec3c361bcef0f3) )
+ ROM_LOAD( "n036001b.1fc", 0x180000, 0x080000, CRC(96c3ece9) SHA1(357ed280157897e26eeecce080da9757f1c03b35) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "n036001a.538", 0x000000, 0x40000, CRC(acb82025) SHA1(6bc9b61fdbcb04a1acc0c692a066791bf412d814) )
+ ROM_CONTINUE( 0x000002, 0x40000 )
+ ROM_LOAD32_BYTE( "n036001a.638", 0x000001, 0x40000, CRC(647ba28f) SHA1(761884eabcf3be81614ee1d2cf6a86515b3fb628) )
+ ROM_CONTINUE( 0x000003, 0x40000 )
+ ROM_LOAD32_BYTE( "n036001a.53c", 0x100000, 0x40000, CRC(c6954f8e) SHA1(b7f09c1d5800ea82abee8f0b00d0c9395882fe00) )
+ ROM_CONTINUE( 0x100002, 0x40000 )
+ ROM_LOAD32_BYTE( "n036001a.63c", 0x100001, 0x40000, CRC(dffefa4f) SHA1(bdc9bd4d09808a51d8fb27c337f0382d5ddd58df) )
+ ROM_CONTINUE( 0x100003, 0x40000 )
+ ROM_LOAD32_BYTE( "n036001b.538", 0x200000, 0x40000, CRC(eb751be8) SHA1(50db6c2055160396f7a6e4ada9fa52a458046ad2) )
+ ROM_CONTINUE( 0x200002, 0x40000 )
+ ROM_LOAD32_BYTE( "n036001b.638", 0x200001, 0x40000, CRC(6135247a) SHA1(0c23a0894484689124873cfc37a4e0a05e226f2d) )
+ ROM_CONTINUE( 0x200003, 0x40000 )
+ ROM_LOAD32_BYTE( "n036001b.53c", 0x300000, 0x40000, CRC(1d39bad6) SHA1(8f275cc73844760725b476264db0543a1327fb21) )
+ ROM_CONTINUE( 0x300002, 0x40000 )
+ ROM_LOAD32_BYTE( "n036001b.63c", 0x300001, 0x40000, CRC(0d40c953) SHA1(f77d84cb6b9bfe580f69a319d4f4fd98389e6d49) )
+ ROM_CONTINUE( 0x300003, 0x40000 )
+ROM_END
+
+ROM_START( bstarsd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE ( "n002001a.038", 0x000001, 0x040000, CRC(68ce5b06) SHA1(cab050a4efcf346463609910b367f7f6c1c0158b) )
+ ROM_CONTINUE ( 0x000000, 0x040000 )
+
+ NEO_SFIX_128K( "002-s1.s1", CRC(1a7fd0c6) SHA1(3fc701b7afddab369ddf9dedfbc5e1aaf80b8af3) ) // n002001a.378
+
+ NEO_BIOS_AUDIO_64K( "n002001a.478", CRC(79a8f4c2) SHA1(08ca2b72fd9b0ed068dc918ecda51d13203a3481) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "002-v11.v11", 0x000000, 0x080000, CRC(b7b925bd) SHA1(644c92fa90e74998e73714f74b1e0680ee372a07) ) // n002001a.178
+ ROM_LOAD( "002-v12.v12", 0x080000, 0x080000, CRC(329f26fc) SHA1(2c8009edc88c6b26f7be5beb2b8d260aac394ee1) ) // n002001a.17c
+ ROM_LOAD( "002-v13.v13", 0x100000, 0x080000, CRC(0c39f3c8) SHA1(db8f8670639601215707d918d4fb93221460446a) ) // n002001b.178
+ ROM_LOAD( "002-v14.v14", 0x180000, 0x080000, CRC(c7e11c38) SHA1(5abf2a7877e0162c758a4dcf09f183930fa7ef24) ) // n002001b.17c
+
+ ROM_REGION( 0x080000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "002-v21.v21", 0x000000, 0x080000, CRC(04a733d1) SHA1(84159368c0f6de2c3b8121227201cd3422455cf6) ) // n002001a.278
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "n002001a.538", 0x000000, 0x40000, CRC(c55a7229) SHA1(23a28f8ba6c1339dde4f674bbca6e6cffafabcc7) )
+ ROM_CONTINUE( 0x000002, 0x40000 )
+ ROM_LOAD32_BYTE( "n002001a.638", 0x000001, 0x40000, CRC(cd3eeb2d) SHA1(3997788c063cea48a901ff6033574d2c8a9e0516) )
+ ROM_CONTINUE( 0x000003, 0x40000 )
+ ROM_LOAD32_BYTE( "n002001a.53c", 0x100000, 0x40000, CRC(a0074bd9) SHA1(f1b1ba3630befd595d141bfc580b1bbe01bee324) )
+ ROM_CONTINUE( 0x100002, 0x40000 )
+ ROM_LOAD32_BYTE( "n002001a.63c", 0x100001, 0x40000, CRC(d651fecf) SHA1(3e7bbda2ecd487e568f8e8eb9b141941d6a761b9) )
+ ROM_CONTINUE( 0x100003, 0x40000 )
+ ROM_LOAD32_BYTE( "n002001b.538", 0x200000, 0x40000, CRC(d57767e6) SHA1(cf18dd9cf6f9da09af7be5e0c9f7f12eaa61c129) )
+ ROM_CONTINUE( 0x200002, 0x40000 )
+ ROM_LOAD32_BYTE( "n002001b.638", 0x200001, 0x40000, CRC(5d0a8692) SHA1(1a0f767d11f73fd41aa2f1840fc300fb23b8d262) )
+ ROM_CONTINUE( 0x200003, 0x40000 )
+ROM_END
+
+ROM_START( burningfd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE ( "n018001a.038", 0x000001, 0x040000, CRC(188c5e11) SHA1(0f82b0e6fd93f43579f7cb2871e6840c738696af) )
+ ROM_CONTINUE ( 0x000000, 0x040000 )
+
+ NEO_SFIX_128K( "018-s1.s1", CRC(6799ea0d) SHA1(ec75ef9dfdcb0b123574fc6d81ebaaadfba32fb5) ) // n018001a.378
+
+ NEO_BIOS_AUDIO_128K( "n018001a.4f8", CRC(58d10c2b) SHA1(5f1f01af284f6520d09ae1c5f6f176153a013f90) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "n018001a.1f8", 0x000000, 0x080000, CRC(b55b9670) SHA1(b0ff38b2dca1361ad155e90be3674dbea1c0a53c) )
+ ROM_LOAD( "n018001a.1fc", 0x080000, 0x080000, CRC(a0bcf260) SHA1(5d1f2613cf4a292557f37e6f44a90b20d11ed8cd) )
+ ROM_LOAD( "n018001b.1f8", 0x100000, 0x080000, CRC(270f4707) SHA1(29e763acc9fd4b94d8b5d0ad917e20d8a66bbe49) )
+ ROM_LOAD( "n018001b.1fc", 0x180000, 0x080000, CRC(924e3d69) SHA1(927091f9a098f00eb303f5567f4ee926bcb170e3) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "n018001a.538", 0x000000, 0x40000, CRC(4ddc137b) SHA1(02add8810ed4df43feda93dd61c308bf1752e1dc) )
+ ROM_CONTINUE( 0x000002, 0x40000 )
+ ROM_LOAD32_BYTE( "n018001a.638", 0x000001, 0x40000, CRC(7d7d87dc) SHA1(efd24a8b6112c38e7d4bca46dfae227a80883be7) )
+ ROM_CONTINUE( 0x000003, 0x40000 )
+ ROM_LOAD32_BYTE( "n018001a.53c", 0x100000, 0x40000, CRC(896d8545) SHA1(415e5982275d43666d5b33c1a599e5fe073e0ab1) )
+ ROM_CONTINUE( 0x100002, 0x40000 )
+ ROM_LOAD32_BYTE( "n018001a.63c", 0x100001, 0x40000, CRC(39fe5307) SHA1(6be6306324ff63715e5ddb33c9565a538472e014) )
+ ROM_CONTINUE( 0x100003, 0x40000 )
+ ROM_LOAD32_BYTE( "n018001b.538", 0x200000, 0x40000, CRC(2b2cb196) SHA1(2826b07d72adb0c83cd84dbfc3d9a6eae93bd3b7) )
+ ROM_CONTINUE( 0x200002, 0x40000 )
+ ROM_LOAD32_BYTE( "n018001b.638", 0x200001, 0x40000, CRC(03aa8a36) SHA1(e68f12e869b0c947a0b2a0dd591edbe995e95775) )
+ ROM_CONTINUE( 0x200003, 0x40000 )
+ ROM_LOAD32_BYTE( "n018001b.53c", 0x300000, 0x40000, CRC(0f49caa9) SHA1(5a86c3b2a29b1bee10a2649c0106e0a4948f5ecf) )
+ ROM_CONTINUE( 0x300002, 0x40000 )
+ ROM_LOAD32_BYTE( "n018001b.63c", 0x300001, 0x40000, CRC(f759626e) SHA1(29e123c8d40334a53fceae33308d92a0dd3ac80d) )
+ ROM_CONTINUE( 0x300003, 0x40000 )
+ROM_END
+
+ROM_START( crswordd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE ( "n037001a.038", 0x000001, 0x040000, CRC(42c78fe1) SHA1(4e680092f87baa8ce1ec375bedfd393b553bad11) )
+ ROM_CONTINUE ( 0x000000, 0x040000 )
+
+ NEO_SFIX_128K( "037-s1.s1", CRC(74651f27) SHA1(bff7ff2429d2be82c1647abac2ee45b339b3b310) ) // n037001a.378
+
+ NEO_BIOS_AUDIO_64K( "n037001a.4f8", CRC(66633e5e) SHA1(24611f084643c36069c2e48dac86413a18f9663b) )
+
+ ROM_REGION( 0x100000, "ymsnd", 0 )
+ ROM_LOAD( "n037001a.1f8", 0x000000, 0x080000, CRC(525df5c8) SHA1(de8802aa515de5b552df87ba4eb3aa27c12105c9) )
+ ROM_LOAD( "n037001a.1fc", 0x080000, 0x080000, CRC(a11ecaf4) SHA1(214ef018628a6acf2464fdd98afadb02e4f609eb) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "n037001a.538", 0x000000, 0x40000, CRC(4b373de7) SHA1(4a3cd07cb2b029c28bdea9918d839fa308324921) )
+ ROM_CONTINUE( 0x000002, 0x40000 )
+ ROM_LOAD32_BYTE( "n037001a.638", 0x000001, 0x40000, CRC(e05f5f33) SHA1(af11079524edf2db79efd8ab25b33689a0d1080b) )
+ ROM_CONTINUE( 0x000003, 0x40000 )
+ ROM_LOAD32_BYTE( "n037001a.53c", 0x100000, 0x40000, CRC(cddf6d69) SHA1(04f002d6648af24ca5c887bcd8b73d3a59becd2c) )
+ ROM_CONTINUE( 0x100002, 0x40000 )
+ ROM_LOAD32_BYTE( "n037001a.63c", 0x100001, 0x40000, CRC(91ab11a4) SHA1(b063bf2ab89382014159fbe5372a0893782fa510) )
+ ROM_CONTINUE( 0x100003, 0x40000 )
+ ROM_LOAD32_BYTE( "n037001b.538", 0x200000, 0x40000, CRC(61d25cb3) SHA1(fde39e2a3cc920772981afb6843f69c6b7b55f2d) )
+ ROM_CONTINUE( 0x200002, 0x40000 )
+ ROM_LOAD32_BYTE( "n037001b.638", 0x200001, 0x40000, CRC(01357559) SHA1(898db3366147e4c8920de9efb52b9d852dded010) )
+ ROM_CONTINUE( 0x200003, 0x40000 )
+ ROM_LOAD32_BYTE( "n037001b.53c", 0x300000, 0x40000, CRC(00bc3d84) SHA1(9eab28250902748563bc6a0dc4bd0ea66126a767) )
+ ROM_CONTINUE( 0x300002, 0x40000 )
+ ROM_LOAD32_BYTE( "n037001b.63c", 0x300001, 0x40000, CRC(28c6d19a) SHA1(96aa762ec26a6b954ec7414b74febf6b88e272aa) )
+ ROM_CONTINUE( 0x300003, 0x40000 )
+ROM_END
+
+ROM_START( cyberlipd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE ( "n010001a.038", 0x000001, 0x040000, CRC(4012e465) SHA1(81caac2b559183f5a87980b6f1ca7e42d5338962) )
+ ROM_CONTINUE ( 0x000000, 0x040000 )
+ ROM_LOAD16_BYTE ( "n010001a.03c", 0x080001, 0x040000, CRC(ee899b19) SHA1(3d0369ad2496e8622fb5a11f751056a2c5fad7bf) )
+ ROM_CONTINUE ( 0x080000, 0x040000 )
+
+ NEO_SFIX_128K( "010-s1.s1", CRC(79a35264) SHA1(c2819a82adbe1f5e489496e0e03477863a5b7665) ) // n010001a.378
+
+ NEO_BIOS_AUDIO_128K( "010-m1.m1", CRC(8be3a078) SHA1(054ec6a061fcc88df1ecbb0a01611a31f37a7709) ) // n010001a.478
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "010-v11.v11", 0x000000, 0x080000, CRC(90224d22) SHA1(5443ee6f90d80d43194cb4b4f0e08851a59e7784) ) // n010001a.178
+ ROM_LOAD( "010-v12.v12", 0x080000, 0x080000, CRC(a0cf1834) SHA1(8df57a7941bdae7e446a6056039adb012cdde246) ) // n010001a.17c
+ ROM_LOAD( "010-v13.v13", 0x100000, 0x080000, CRC(ae38bc84) SHA1(c0937b4f89b8b26c8a0e747b234f44ad6a3bf2ba) ) // n010001b.178
+ ROM_LOAD( "010-v14.v14", 0x180000, 0x080000, CRC(70899bd2) SHA1(8cf01144f0bcf59f09777175ae6b71846b09f3a1) ) // n010001b.17c
+
+ ROM_REGION( 0x080000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "010-v21.v21", 0x000000, 0x080000, CRC(586f4cb2) SHA1(588460031d84c308e3353ecf714db9986425c21c) ) // n010001a.278
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "n010001a.538", 0x000000, 0x40000, CRC(0239fc08) SHA1(27c2a68103ca6898780d72ded57f4447cf5f7f80) )
+ ROM_CONTINUE( 0x000002, 0x40000 )
+ ROM_LOAD32_BYTE( "n010001a.638", 0x000001, 0x40000, CRC(e102a1bd) SHA1(89ffd05845b452423b4cd69c4420eafa0c168507) )
+ ROM_CONTINUE( 0x000003, 0x40000 )
+ ROM_LOAD32_BYTE( "n010001a.53c", 0x100000, 0x40000, CRC(23f03b97) SHA1(f5a2b3c0cf039a84cf78223f089f9fa3a7d9f01a) )
+ ROM_CONTINUE( 0x100002, 0x40000 )
+ ROM_LOAD32_BYTE( "n010001a.63c", 0x100001, 0x40000, CRC(520571d2) SHA1(4be129b679d3962a95ce32f462c58aa08c43b1cd) )
+ ROM_CONTINUE( 0x100003, 0x40000 )
+ ROM_LOAD32_BYTE( "n010001b.538", 0x200000, 0x40000, CRC(065061ed) SHA1(5c1e48e31cc6b5bbc50085abc8102ab436885b23) )
+ ROM_CONTINUE( 0x200002, 0x40000 )
+ ROM_LOAD32_BYTE( "n010001b.638", 0x200001, 0x40000, CRC(2e31e2d2) SHA1(29c88296d10b6b716ab753d2692267e0619d6193) )
+ ROM_CONTINUE( 0x200003, 0x40000 )
+ ROM_LOAD32_BYTE( "n010001b.53c", 0x300000, 0x40000, CRC(e485e72d) SHA1(1fb160f403b6ec1ff28408d141dfe31245dbfb58) )
+ ROM_CONTINUE( 0x300002, 0x40000 )
+ ROM_LOAD32_BYTE( "n010001b.63c", 0x300001, 0x40000, CRC(9e2af4db) SHA1(0089d1a66fa40a25ea78c6da24b4872b4fd12782) )
+ ROM_CONTINUE( 0x300003, 0x40000 )
+ROM_END
+
+ROM_START( eightmand )
+ ROM_REGION(0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE ( "n025001a.038", 0x000001, 0x040000, CRC(e23e2631) SHA1(ddc9efe6e386aa89aca052f004492caf39a84d68) )
+ ROM_CONTINUE ( 0x000000, 0x040000 )
+
+ NEO_SFIX_128K( "025-s1.s1", CRC(a402202b) SHA1(75c44e1af459af155f5b892fd18706268dd5e602) ) // n025001a.378
+
+ NEO_BIOS_AUDIO_128K( "n025001a.4f8", CRC(68b6e0ef) SHA1(8a6c221460454d15c3d72dd66a2318be0a3d5072) )
+
+ ROM_REGION(0x200000, "ymsnd", 0)
+ ROM_LOAD( "n025001a.1f8", 0x000000, 0x080000, CRC(0a2299b4) SHA1(96087ec57bca13a7394566c87310cd5a05eae62a) )
+ ROM_LOAD( "n025001a.1fc", 0x080000, 0x080000, CRC(b695e254) SHA1(ca752c4834dcdd8c2829e336abf135e584ade603) )
+ ROM_LOAD( "n025001b.1f8", 0x100000, 0x080000, CRC(6c3c3fec) SHA1(69f7cb9a4c39b651898383ec9ee6891565e93baf) )
+ ROM_LOAD( "n025001b.1fc", 0x180000, 0x080000, CRC(375764df) SHA1(7288befc006bd10030911efecfbf78146ed5f781) )
+
+ ROM_REGION(0x300000, "sprites", 0)
+ ROM_LOAD32_BYTE( "n025001a.538", 0x000000, 0x40000, CRC(c916c9bf) SHA1(ac56aa28b163d21af80f355011112c1921a6797b) )
+ ROM_CONTINUE( 0x000002, 0x40000 )
+ ROM_LOAD32_BYTE( "n025001a.638", 0x000001, 0x40000, CRC(7114bce3) SHA1(a74abb92ec513250abea7487fd49ec2282a6531f) )
+ ROM_CONTINUE( 0x000003, 0x40000 )
+ ROM_LOAD32_BYTE( "n025001a.53c", 0x100000, 0x40000, CRC(4b057b13) SHA1(1d06edc938d8c618847853ae58de9a6e8dd6521f) )
+ ROM_CONTINUE( 0x100002, 0x40000 )
+ ROM_LOAD32_BYTE( "n025001a.63c", 0x100001, 0x40000, CRC(51da9a34) SHA1(850275621db0372839db334161c167c0df0915ac) )
+ ROM_CONTINUE( 0x100003, 0x40000 )
+ ROM_LOAD32_BYTE( "n025001b.538", 0x200000, 0x40000, CRC(12d53af0) SHA1(69bc5c1f6aa4386e851d2d0db04b5a9246257a90) )
+ ROM_CONTINUE( 0x200002, 0x40000 )
+ ROM_LOAD32_BYTE( "n025001b.638", 0x200001, 0x40000, CRC(43cf58f9) SHA1(72b4f27b66d45155aa98d65457c4fdd3b09d08e9) )
+ ROM_CONTINUE( 0x200003, 0x40000 )
+ROM_END
+
+ROM_START( fatfury1d )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE ( "n033001a.038", 0x000001, 0x040000, CRC(47e51379) SHA1(bb1558765f55e0b8e3e0c1c5c79db8cec8b51085) )
+ ROM_CONTINUE ( 0x000000, 0x040000 )
+ ROM_LOAD16_BYTE ( "n033001a.03c", 0x080001, 0x040000, CRC(19d36805) SHA1(6b2d5326a08b06a9152d80a8de054ad9f159a453) )
+ ROM_CONTINUE ( 0x080000, 0x040000 )
+
+ NEO_SFIX_128K( "033-s1.s1", CRC(3c3bdf8c) SHA1(2f3e5feed6c27850b2a0f6fae0b97041690e944c) ) // n033001a.378
+
+ NEO_BIOS_AUDIO_128K( "n033001a.4f8", CRC(a8603979) SHA1(512f2280a43892d4ca003ac63945ce86c5211b97) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "n033001a.1f8", 0x000000, 0x080000, CRC(86fabf00) SHA1(df087f58c689128f7696b91e2fcb600ccac017af) )
+ ROM_LOAD( "n033001a.1fc", 0x080000, 0x080000, CRC(ead1467b) SHA1(6f4381d7a0625f5d02739a9813ff593c2dc99dde) )
+ ROM_LOAD( "n033001b.1f8", 0x100000, 0x080000, CRC(fc3bd6f7) SHA1(8d3094ecd8d5cfe3f58be9ac6d76a2bb65eb1d00) )
+ ROM_LOAD( "n033001b.1fc", 0x180000, 0x080000, CRC(d312f6c0) SHA1(3fae32af628ed8d0176a7f6668ff4f2d898c9f7a) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "n033001a.538", 0x000000, 0x40000, CRC(9aaa6d73) SHA1(345ed4b75a6459cd0b8fc8f71d58f4951296177f) )
+ ROM_CONTINUE( 0x000002, 0x40000 )
+ ROM_LOAD32_BYTE( "n033001a.638", 0x000001, 0x40000, CRC(9cae3703) SHA1(1144ccf448ea7c00ca425fe54f2ce84b8fdb3c78) )
+ ROM_CONTINUE( 0x000003, 0x40000 )
+ ROM_LOAD32_BYTE( "n033001a.53c", 0x100000, 0x40000, CRC(a986f4a9) SHA1(a45cc6b5902333d6614b7a2018ebd5ada7c5f075) )
+ ROM_CONTINUE( 0x100002, 0x40000 )
+ ROM_LOAD32_BYTE( "n033001a.63c", 0x100001, 0x40000, CRC(308b619f) SHA1(384efb66633a888d7c48d2ab0e918d823178b382) )
+ ROM_CONTINUE( 0x100003, 0x40000 )
+ ROM_LOAD32_BYTE( "n033001b.538", 0x200000, 0x40000, CRC(7aefe57d) SHA1(ab97881ff620ab7130d9ce1527c23bcfc0b21a5e) )
+ ROM_CONTINUE( 0x200002, 0x40000 )
+ ROM_LOAD32_BYTE( "n033001b.638", 0x200001, 0x40000, CRC(b39a0cde) SHA1(e5829525bc2ffe489ebb0ec4ab0094417f141027) )
+ ROM_CONTINUE( 0x200003, 0x40000 )
+ ROM_LOAD32_BYTE( "n033001b.53c", 0x300000, 0x40000, CRC(e3057c96) SHA1(b6a2e55633db0aad7f1ca4e8b42c2a327f772add) )
+ ROM_CONTINUE( 0x300002, 0x40000 )
+ ROM_LOAD32_BYTE( "n033001b.63c", 0x300001, 0x40000, CRC(737bc030) SHA1(03ceeabb84dac6f27c6f6ba2b7097b756f411270) )
+ ROM_CONTINUE( 0x300003, 0x40000 )
+ROM_END
+
+ROM_START( fbfrenzyd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE ( "n034001a.038", 0x000001, 0x040000, CRC(c9fc879c) SHA1(24b8be60a434c3f4944f060607756a830f9365fd) )
+ ROM_CONTINUE ( 0x000000, 0x040000 )
+
+ NEO_SFIX_128K( "034-s1.s1", CRC(8472ed44) CRC(8472ed44) SHA1(42e1a9671dddd090d2a634cff986f6c73ba08b70) ) // n034001a.378
+
+ NEO_BIOS_AUDIO_128K( "n034001a.4f8", CRC(079a203c) SHA1(b0e818400c46331ec42f9bb8fa3feacb6c69006a) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "n034001a.1f8", 0x000000, 0x080000, CRC(d295da77) SHA1(3015a07236714af87928a9bff1a9505a9ee9b419) )
+ ROM_LOAD( "n034001a.1fc", 0x080000, 0x080000, CRC(249b7f52) SHA1(4aa1e7f73c37ecdd09098a3943c8ff3e919788be) )
+ ROM_LOAD( "n034001b.1f8", 0x100000, 0x080000, CRC(e438fb9d) SHA1(0403345549e618a3161c74a37ecae894b6e8d1e0) )
+ ROM_LOAD( "n034001b.1fc", 0x180000, 0x080000, CRC(4f9bc109) SHA1(05f47d9b7de8a4f51fce43c14a2f5e7d616058a3) )
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "n034001a.538", 0x000000, 0x40000, CRC(cd377680) SHA1(0ba533dc644b4111361e6f0ef31b2a92bc974efb) )
+ ROM_CONTINUE( 0x000002, 0x40000 )
+ ROM_LOAD32_BYTE( "n034001a.638", 0x000001, 0x40000, CRC(8b76358f) SHA1(ba908221daa9bfe7eaf03e370329fdb4a015da5f) )
+ ROM_CONTINUE( 0x000003, 0x40000 )
+ ROM_LOAD32_BYTE( "n034001a.53c", 0x100000, 0x40000, CRC(2f6d09c2) SHA1(5afffa37d5782c21e0d673ebfaf03f92fb5b91e4) )
+ ROM_CONTINUE( 0x100002, 0x40000 )
+ ROM_LOAD32_BYTE( "n034001a.63c", 0x100001, 0x40000, CRC(77e45dd2) SHA1(a4412ddfde175405c85eba2e56eec3d9878575d3) )
+ ROM_CONTINUE( 0x100003, 0x40000 )
+ ROM_LOAD32_BYTE( "n034001b.538", 0x200000, 0x40000, CRC(9abe41c8) SHA1(ab350c65258e5d229ab317d45580ae4cbbcd1478) )
+ ROM_CONTINUE( 0x200002, 0x40000 )
+ ROM_LOAD32_BYTE( "n034001b.638", 0x200001, 0x40000, CRC(336540a8) SHA1(7be473063680987560a188e59f477c8ff9b96b01) )
+ ROM_CONTINUE( 0x200003, 0x40000 )
+ROM_END
+
+ROM_START( gpilotsd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE ( "n020001a.038", 0x000001, 0x040000, CRC(fc5837c0) SHA1(1eb46c21b17130238a1453c219e006ea150370ee) )
+ ROM_CONTINUE ( 0x000000, 0x040000 )
+ ROM_LOAD16_BYTE ( "n020001a.03c", 0x080001, 0x040000, CRC(47a641da) SHA1(d369ee64fd70d705355df71766b72c402a236e24) )
+ ROM_CONTINUE ( 0x080000, 0x040000 )
+
+ NEO_SFIX_128K( "020-s1.s1", CRC(a6d83d53) SHA1(9a8c092f89521cc0b27a385aa72e29cbaca926c5) ) // n020001a.378
+
+ NEO_BIOS_AUDIO_64K( "n020001a.478", CRC(fc05fb8b) SHA1(bab6e6af4a60ffebff25951eca4177ece68875a4) )
+
+ ROM_REGION( 0x180000, "ymsnd", 0 )
+ ROM_LOAD( "n020001a.178", 0x000000, 0x080000, CRC(8cc44140) SHA1(0a88d8962e057bf0cabd4819d4ba67e093c49b82) )
+ ROM_LOAD( "n020001a.17c", 0x080000, 0x080000, CRC(415c61cd) SHA1(638e5fd9b02b4553df42f00188a7ac52a5a7bf84) )
+ ROM_LOAD( "020-v12.v12", 0x100000, 0x080000, CRC(4a9e6f03) SHA1(d3ac11f333b03d8a318921bdaefb14598e289a14) ) // n020001b.178
+
+ ROM_REGION( 0x080000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "020-v21.v21", 0x000000, 0x080000, CRC(7abf113d) SHA1(5b2a0e70f2eaf4638b44702dacd4cb17838fb1d5) ) // n020001a.278
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "n020001a.538", 0x000000, 0x40000, CRC(92b8ee5f) SHA1(ff45ca2eed87863f3725d5dadd5f55ac39af033e) )
+ ROM_CONTINUE( 0x000002, 0x40000 )
+ ROM_LOAD32_BYTE( "n020001a.638", 0x000001, 0x40000, CRC(05733639) SHA1(a5f2639853ea53ec3ff91fe37fdb9e628a497883) )
+ ROM_CONTINUE( 0x000003, 0x40000 )
+ ROM_LOAD32_BYTE( "n020001a.53c", 0x100000, 0x40000, CRC(8c8e42e9) SHA1(9aa2abd11358933d72dc52ae8d0214e3b350c83b) )
+ ROM_CONTINUE( 0x100002, 0x40000 )
+ ROM_LOAD32_BYTE( "n020001a.63c", 0x100001, 0x40000, CRC(347fef2b) SHA1(8b4c7ab7d9cfda8e588d8e0f4796ce163b468407) )
+ ROM_CONTINUE( 0x100003, 0x40000 )
+ ROM_LOAD32_BYTE( "n020001b.538", 0x200000, 0x40000, CRC(4f12268b) SHA1(fa531734c9dbba62e35cb29eb40d80a219d87c54) )
+ ROM_CONTINUE( 0x200002, 0x40000 )
+ ROM_LOAD32_BYTE( "n020001b.638", 0x200001, 0x40000, CRC(2c586176) SHA1(0e28a27d59ae2ec6a9d1ff822244bfa4f960f338) )
+ ROM_CONTINUE( 0x200003, 0x40000 )
+ ROM_LOAD32_BYTE( "n020001b.53c", 0x300000, 0x40000, CRC(7c3c9c7e) SHA1(43a15669788384024ac173e1f89e53a2bdd630d2) )
+ ROM_CONTINUE( 0x300002, 0x40000 )
+ ROM_LOAD32_BYTE( "n020001b.63c", 0x300001, 0x40000, CRC(9b2eee8b) SHA1(420156256d5b628a62ea612edd526d293d2c7abc) )
+ ROM_CONTINUE( 0x300003, 0x40000 )
+ROM_END
+
+ROM_START( joyjoyd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE ( "n021001a.038", 0x000001, 0x040000, CRC(ea512c9f) SHA1(094d8c06a1038dd38b74ced3d213a52b340062a6) )
+ ROM_CONTINUE ( 0x000000, 0x040000 )
+
+ NEO_SFIX_128K( "021-s1.s1", CRC(6956d778) SHA1(e3757776d60dc07d8e07c9ca61b223b14732f860) ) // n021001a.378
+
+ NEO_BIOS_AUDIO_64K( "n021001a.478", CRC(058683ec) SHA1(2aff3dc18d078911ed3a09d48664faf5958b4ab5) )
+
+ ROM_REGION( 0x080000, "ymsnd", 0 )
+ ROM_LOAD( "021-v11.v11", 0x000000, 0x080000, CRC(66c1e5c4) SHA1(7e85420021d4c39c36ed75a1cec567c5610ffce0) ) // n021001a.178
+
+ ROM_REGION( 0x080000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "021-v21.v21", 0x000000, 0x080000, CRC(8ed20a86) SHA1(d15cba5eac19ea56fdd4877541f1bb3eb755ebba) ) // n021001a.278
+
+ ROM_REGION( 0x100000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "n021001a.538", 0x000000, 0x40000, CRC(cb27be65) SHA1(bdadc0da89026af3ed0dc6a18f2449c0cb24ee0c) )
+ ROM_CONTINUE( 0x000002, 0x40000 )
+ ROM_LOAD32_BYTE( "n021001a.638", 0x000001, 0x40000, CRC(7e134979) SHA1(e33b30e39283963e8e806ccd12d9559de27c8bbe) )
+ ROM_CONTINUE( 0x000003, 0x40000 )
+ROM_END
+
+ROM_START( kotmd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE ( "n016001a.038", 0x000001, 0x040000, CRC(d239c184) SHA1(feb139ce089385b6b1bc95970c4d7ae4fd8a7c7f) )
+ ROM_CONTINUE ( 0x000000, 0x040000 )
+ ROM_LOAD16_BYTE ( "n016001a.03c", 0x080001, 0x040000, CRC(7291a388) SHA1(16e22a8eef5391fa43d92d702f14a746dedf292b) )
+ ROM_CONTINUE ( 0x080000, 0x040000 )
+
+ NEO_SFIX_128K( "016-s1.s1", CRC(1a2eeeb3) SHA1(8d2b96d395020197bc59294b6b0c8d62b1d8d4dd) ) // n016001a.378
+
+ NEO_BIOS_AUDIO_128K( "n016001a.4f8", CRC(40797389) SHA1(12ca00ba1d2d66d79bc64969661a52205cc98d66) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "n016001a.1f8", 0x000000, 0x080000, CRC(c3df83ba) SHA1(2f015ccf99de241861e05e81ad47faf02aec3290) )
+ ROM_LOAD( "n016001a.1fc", 0x080000, 0x080000, CRC(22aa6096) SHA1(c98fdc9fa589907cae1f7a2814fa32913d6c8648) )
+ ROM_LOAD( "n016001b.1f8", 0x100000, 0x080000, CRC(df9a4854) SHA1(f9612d82ce476f8c973ce60a982ae8007bd051a1) )
+ ROM_LOAD( "n016001b.1fc", 0x180000, 0x080000, CRC(71f53a38) SHA1(0fa03a2c719cc413ab163d166f93fcdc89646066) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "n016001a.538", 0x000000, 0x40000, CRC(493db90e) SHA1(fb22e4f5437d9402c531779215cf675daa35401f) )
+ ROM_CONTINUE( 0x000002, 0x40000 )
+ ROM_LOAD32_BYTE( "n016001a.638", 0x000001, 0x40000, CRC(8bc1c3a0) SHA1(789f990b2b12bff7335a40a0ca6e64824dd6d4e2) )
+ ROM_CONTINUE( 0x000003, 0x40000 )
+ ROM_LOAD32_BYTE( "n016001a.53c", 0x100000, 0x40000, CRC(0d211945) SHA1(4edef3bdd73e402ab606ac27013a2b8c1467667c) )
+ ROM_CONTINUE( 0x100002, 0x40000 )
+ ROM_LOAD32_BYTE( "n016001a.63c", 0x100001, 0x40000, CRC(cc793bbf) SHA1(b88075e388d68601bb0e56f621a22abaf90ef39c) )
+ ROM_CONTINUE( 0x100003, 0x40000 )
+ ROM_LOAD32_BYTE( "n016001b.538", 0x200000, 0x40000, CRC(cabb7b58) SHA1(e7be9c459c17dddc3a812981e14fc2e0a3fb5ec3) )
+ ROM_CONTINUE( 0x200002, 0x40000 )
+ ROM_LOAD32_BYTE( "n016001b.638", 0x200001, 0x40000, CRC(fde45b59) SHA1(72ddca41b6cd595246eb8c8bb0c2e614c53e828c) )
+ ROM_CONTINUE( 0x200003, 0x40000 )
+ ROM_LOAD32_BYTE( "n016001b.53c", 0x300000, 0x40000, CRC(c7c20718) SHA1(52a2d7f4f8baede451959a351d2badf080b1e20e) )
+ ROM_CONTINUE( 0x300002, 0x40000 )
+ ROM_LOAD32_BYTE( "n016001b.63c", 0x300001, 0x40000, CRC(b89b4201) SHA1(74322700b9e8cf30b7d025be3909e93e1bfdaaf9) )
+ ROM_CONTINUE( 0x300003, 0x40000 )
+ROM_END
+
+ROM_START( lbowlingd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE ( "n019001a.038", 0x000001, 0x040000, CRC(380e358d) SHA1(2f9683ca65abb2d046277a7642877f66a29d08f6) )
+ ROM_CONTINUE ( 0x000000, 0x040000 )
+
+ NEO_SFIX_128K( "019-s1.s1", CRC(5fcdc0ed) SHA1(86415077e7adc3ba6153eeb4fb0c62cf36e903fa) ) // n019001a.378
+
+ NEO_BIOS_AUDIO_64K( "n019001a.478", CRC(535ec016) SHA1(301733768d2b962f58fc372e54f9d7bfd6615c21) )
+
+ ROM_REGION( 0x100000, "ymsnd", 0 )
+ ROM_LOAD( "019-v11.v11", 0x000000, 0x080000, CRC(0fb74872) SHA1(38c555926c77576d63472bc075210c42e9ce13a3) ) // n019001a.178
+ ROM_LOAD( "019-v12.v12", 0x080000, 0x080000, CRC(029faa57) SHA1(7bbaa87e38929ab1e32df5f6a2ec0fd5001e7cdb) ) // n019001a.17c
+
+ ROM_REGION( 0x080000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "019-v21.v21", 0x000000, 0x080000, CRC(2efd5ada) SHA1(8ba70f5f665d566824333075227d9bce1253b8d8) ) // n019001a.278
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "n019001a.538", 0x000000, 0x40000, CRC(17df7955) SHA1(992558200cbe7c0f9fc96cb6b1adb63ded28b833) )
+ ROM_CONTINUE( 0x000002, 0x40000 )
+ ROM_LOAD32_BYTE( "n019001a.638", 0x000001, 0x40000, CRC(84fd2c90) SHA1(b0ce2ba62d682f847f238eb5196340f466e6bcda) )
+ ROM_CONTINUE( 0x000003, 0x40000 )
+ ROM_LOAD32_BYTE( "n019001a.53c", 0x100000, 0x40000, CRC(67bf2d89) SHA1(282a29425eed00a85f88c332112bd9e0a95770cf) )
+ ROM_CONTINUE( 0x100002, 0x40000 )
+ ROM_LOAD32_BYTE( "n019001a.63c", 0x100001, 0x40000, CRC(cb4fbeb0) SHA1(a9a985ef66fe39111ccd37a4c1a26707d3bf3045) )
+ ROM_CONTINUE( 0x100003, 0x40000 )
+ ROM_LOAD32_BYTE( "n019001b.538", 0x200000, 0x40000, CRC(00d36f90) SHA1(8d47ea266dd2bf3ccbb9fb21ba860d9e9ec22db0) )
+ ROM_CONTINUE( 0x200002, 0x40000 )
+ ROM_LOAD32_BYTE( "n019001b.638", 0x200001, 0x40000, CRC(c2ddf431) SHA1(2ffbea4164f3099bdf8162c6ecc782d8badfab25) )
+ ROM_CONTINUE( 0x200003, 0x40000 )
+ ROM_LOAD32_BYTE( "n019001b.53c", 0x300000, 0x40000, CRC(4e971be9) SHA1(f137ad0eb9da8c4fffb5893ed694d97647f7e77b) )
+ ROM_CONTINUE( 0x300002, 0x40000 )
+ ROM_LOAD32_BYTE( "n019001b.63c", 0x300001, 0x40000, CRC(e67f8c81) SHA1(e0e8b24171a61dfe14649e7cff6f95d0a510cb55) )
+ ROM_CONTINUE( 0x300003, 0x40000 )
+ROM_END
+
+ROM_START( lresortd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE ( "n024001a.038", 0x000001, 0x040000, CRC(5f0a5a4b) SHA1(69e33ed94f533528038fb157529b44dc940ab231) )
+ ROM_CONTINUE ( 0x000000, 0x040000 )
+
+ NEO_SFIX_128K( "024-s1.s1", CRC(5cef5cc6) SHA1(9ec305007bdb356e9f8f279beae5e2bcb3f2cf7b) ) // n024001a.378
+
+ NEO_BIOS_AUDIO_128K( "n024001a.4f8", CRC(3d40a1c6) SHA1(d98b2b2893274db0cadc9c9718349086afadadc7) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "n024001a.1f8", 0x000000, 0x080000, CRC(0722da38) SHA1(66a9b463d5277908b3a01c03de82b3de9118f2cb) )
+ ROM_LOAD( "n024001a.1fc", 0x080000, 0x080000, CRC(670ce3ec) SHA1(9004aa85d4a9b0ecf9cf9357b073ed55a98fdb02) )
+ ROM_LOAD( "n024001b.1f8", 0x100000, 0x080000, CRC(2e39462b) SHA1(b0a9b1a3377bf0369f3020192505c46ca52927d6) )
+ ROM_LOAD( "n024001b.1fc", 0x180000, 0x080000, CRC(7944754f) SHA1(d42a46c5127c6c62041ebffb0007af8a24abd360) )
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "n024001a.538", 0x000000, 0x40000, CRC(9f7995a9) SHA1(e3efdef66f5a6136ebe8fa9e3ff917323ab3fc5e) )
+ ROM_CONTINUE( 0x000002, 0x40000 )
+ ROM_LOAD32_BYTE( "n024001a.638", 0x000001, 0x40000, CRC(68c70bac) SHA1(7a6ddb1beb8cb6f6991d675affeb78226c18180e) )
+ ROM_CONTINUE( 0x000003, 0x40000 )
+ ROM_LOAD32_BYTE( "n024001a.53c", 0x100000, 0x40000, CRC(e122b155) SHA1(c9e759302fcf5aaf989463bf94157e45d76e68ea) )
+ ROM_CONTINUE( 0x100002, 0x40000 )
+ ROM_LOAD32_BYTE( "n024001a.63c", 0x100001, 0x40000, CRC(f18a9b02) SHA1(5cb9cf37de1b97ef680411beeff9ca262e77b067) )
+ ROM_CONTINUE( 0x100003, 0x40000 )
+ ROM_LOAD32_BYTE( "n024001b.538", 0x200000, 0x40000, CRC(e7138cb9) SHA1(d65c9e4f305cec30264355dd46a8ab413221dd82) )
+ ROM_CONTINUE( 0x200002, 0x40000 )
+ ROM_LOAD32_BYTE( "n024001b.638", 0x200001, 0x40000, CRC(08178e27) SHA1(e03137bf8e5bcd3c000113ec49da36f7100727e9) )
+ ROM_CONTINUE( 0x200003, 0x40000 )
+ROM_END
+
+ROM_START( maglordd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE ( "n005001a.038", 0x000001, 0x040000, CRC(e51c3815) SHA1(19f36c8393191caf95a254ca52ce9e0012e6947a) )
+ ROM_CONTINUE ( 0x000000, 0x040000 )
+
+ NEO_SFIX_128K( "005-s1.s1", CRC(1c5369a2) SHA1(db0dba0a7dced6c9ca929c5abda491b05d84199c) ) // n005001a.378
+
+ NEO_BIOS_AUDIO_64K( "n005001a.478", CRC(91ee1f73) SHA1(f060728543333a99216cc2879f7666a1f4235068) )
+
+ ROM_REGION( 0x080000, "ymsnd", 0 )
+ ROM_LOAD( "005-v11.v11", 0x000000, 0x080000, CRC(cc0455fd) SHA1(a8ff4270e7705e263d25ff0b301f503bccea7e59) ) // n005001a.178
+
+ ROM_REGION( 0x100000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "005-v21.v21", 0x000000, 0x080000, CRC(f94ab5b7) SHA1(2c16985102e3585e08622d8c54ac5c60425b9ff8) ) // n005001a.278
+ ROM_LOAD( "005-v22.v22", 0x080000, 0x080000, CRC(232cfd04) SHA1(61b66a9decbbd1f500a8c186615e7fd077c6861e) ) // n005001a.27c
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "n005001a.538", 0x000000, 0x40000, CRC(86aacd0d) SHA1(ee36e015908a7c087ace6cea0650822681066c94) )
+ ROM_CONTINUE( 0x000002, 0x40000 )
+ ROM_LOAD32_BYTE( "n005001a.638", 0x000001, 0x40000, CRC(b62658b5) SHA1(21a1d1f9ebe8c7a442c0b0a96f12af8047b8dbf3) )
+ ROM_CONTINUE( 0x000003, 0x40000 )
+ ROM_LOAD32_BYTE( "n005001a.53c", 0x100000, 0x40000, CRC(3997403e) SHA1(95e8375c897953055c952fd1fd3ff282fdc68928) )
+ ROM_CONTINUE( 0x100002, 0x40000 )
+ ROM_LOAD32_BYTE( "n005001a.63c", 0x100001, 0x40000, CRC(bd534fe2) SHA1(eebafc4a1daf650a6e7c3a64b2628e160e130b59) )
+ ROM_CONTINUE( 0x100003, 0x40000 )
+ ROM_LOAD32_BYTE( "n005001b.538", 0x200000, 0x40000, CRC(fbd1e9f1) SHA1(4faa14c164000e5581bb47788d2e8e1ee74ca0c6) )
+ ROM_CONTINUE( 0x200002, 0x40000 )
+ ROM_LOAD32_BYTE( "n005001b.638", 0x200001, 0x40000, CRC(a6461283) SHA1(a3eb28e584b0b91a0b5b372c932815cf4047d5bd) )
+ ROM_CONTINUE( 0x200003, 0x40000 )
+ROM_END
+
+ROM_START( minasand )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE ( "n027001a.038", 0x000001, 0x040000, CRC(86805d5a) SHA1(9f9e300f4d4aef1bddb239580e8e5e3087957a50) )
+ ROM_CONTINUE ( 0x000000, 0x040000 )
+
+ NEO_SFIX_128K( "027-s1.s1", CRC(e5824baa) SHA1(8230ff7fe3cabeacecc762d90a084e893db84906) ) // n027001a.378
+
+ NEO_BIOS_AUDIO_64K( "n027001a.478", CRC(19ef88ea) SHA1(8eca1a342d506e97dd116ce8ffe2242895b04c7a) )
+
+ ROM_REGION( 0x100000, "ymsnd", 0 )
+ ROM_LOAD( "n027001a.178", 0x000000, 0x080000, CRC(79d65e8e) SHA1(8e5d8608e43564e5ce1d458a9e09b2c8100e3f4f) )
+ ROM_LOAD( "n027001a.17c", 0x080000, 0x080000, CRC(0b3854d5) SHA1(27e951b47c0ab96f3c64704f913400020156895a) )
+
+ ROM_REGION( 0x100000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "n027001a.278", 0x000000, 0x080000, CRC(0100e548) SHA1(627d16aba58602d28c865e93894f8d00d4815779) )
+ ROM_LOAD( "n027001a.27c", 0x080000, 0x080000, CRC(0c31c5b0) SHA1(372168e5e6845eb5e2450a6f6daec26429b446c0) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "n027001a.538", 0x000000, 0x40000, CRC(43f48265) SHA1(05500d56c808123b803be0efa71dd233a55793d1) )
+ ROM_CONTINUE( 0x000002, 0x40000 )
+ ROM_LOAD32_BYTE( "n027001a.638", 0x000001, 0x40000, CRC(f774d850) SHA1(5b63b4893b5b86b5c2ecf3e0be6d83d9b92e754c) )
+ ROM_CONTINUE( 0x000003, 0x40000 )
+ ROM_LOAD32_BYTE( "n027001a.53c", 0x100000, 0x40000, CRC(cbf9eef8) SHA1(6baf6c5f4fc52fc48d0e43014b11fdfe26e6db70) )
+ ROM_CONTINUE( 0x100002, 0x40000 )
+ ROM_LOAD32_BYTE( "n027001a.63c", 0x100001, 0x40000, CRC(14a81e58) SHA1(53216ad674e553829db3cc23d1e827c18d70c04e) )
+ ROM_CONTINUE( 0x100003, 0x40000 )
+ ROM_LOAD32_BYTE( "n027001b.538", 0x200000, 0x40000, CRC(3dae0a05) SHA1(0bf63e5676e3caab6f9d4895c9cbeb600bb6a8a1) )
+ ROM_CONTINUE( 0x200002, 0x40000 )
+ ROM_LOAD32_BYTE( "n027001b.638", 0x200001, 0x40000, CRC(0fb30b5b) SHA1(89f1176a55040d7ca0246231a9a0b027d2e0c304) )
+ ROM_CONTINUE( 0x200003, 0x40000 )
+ ROM_LOAD32_BYTE( "n027001b.53c", 0x300000, 0x40000, CRC(6979368e) SHA1(d1faae6fafbb7de21e7ee56356c30f18b7c4a130) )
+ ROM_CONTINUE( 0x300002, 0x40000 )
+ ROM_LOAD32_BYTE( "n027001b.63c", 0x300001, 0x40000, CRC(cfa90d59) SHA1(3185e00a030ace45f543b3a4ab6c101107727d01) )
+ ROM_CONTINUE( 0x300003, 0x40000 )
+ROM_END
+
+ROM_START( mutnatd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE ( "n014001a.038", 0x000001, 0x040000, CRC(30cbd46b) SHA1(48357c8b704526da7101c06a120b096ec160a7bb) )
+ ROM_CONTINUE ( 0x000000, 0x040000 )
+
+ NEO_SFIX_128K( "014-s1.s1", CRC(99419733) SHA1(b2524af8704941acc72282aa1d62fd4c93e3e822) ) // n014001a.378
+
+ NEO_BIOS_AUDIO_128K( "n014001a.4f8", CRC(2db6862d) SHA1(35cfe136edb09f0b13d312527dd71b4250c04383) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "n014001a.1f8", 0x000000, 0x080000, CRC(8db2effe) SHA1(4bdfc36ed3c986ef153e03efbc581536876a3ebb) )
+ ROM_LOAD( "n014001a.1fc", 0x080000, 0x080000, CRC(a49fe238) SHA1(378842d7fa93496ee103be3a0996c6943d285274) )
+ ROM_LOAD( "n014001b.1f8", 0x100000, 0x080000, CRC(2ba17cb7) SHA1(99fa247c003b74b5da56631d11a63045dd5ef0d5) )
+ ROM_LOAD( "n014001b.1fc", 0x180000, 0x080000, CRC(42419a29) SHA1(5185c978edb89a1764ee0b874be980b61280c822) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "n014001a.538", 0x000000, 0x40000, CRC(83d59ccf) SHA1(90daecf9594715ac33c4a6294f481914351c702f) )
+ ROM_CONTINUE( 0x000002, 0x40000 )
+ ROM_LOAD32_BYTE( "n014001a.638", 0x000001, 0x40000, CRC(9e115a04) SHA1(16f04c7b3c5f6888591e9c2e385efb984e393571) )
+ ROM_CONTINUE( 0x000003, 0x40000 )
+ ROM_LOAD32_BYTE( "n014001a.53c", 0x100000, 0x40000, CRC(b2f1409d) SHA1(ab3af0fb4f4ca4afba098a6f8e9926b530a279df) )
+ ROM_CONTINUE( 0x100002, 0x40000 )
+ ROM_LOAD32_BYTE( "n014001a.63c", 0x100001, 0x40000, CRC(1bb648c1) SHA1(21afaf1e5ea541d5ac9bb273887baf662c52dfab) )
+ ROM_CONTINUE( 0x100003, 0x40000 )
+ ROM_LOAD32_BYTE( "n014001b.538", 0x200000, 0x40000, CRC(eaa2801a) SHA1(fec321bc839e5eeb4bfc88785276ee7af345f6c0) )
+ ROM_CONTINUE( 0x200002, 0x40000 )
+ ROM_LOAD32_BYTE( "n014001b.638", 0x200001, 0x40000, CRC(32bf4a2d) SHA1(f68419c9414dfbcc67c3a4b8cbef42b0b5fda0bc) )
+ ROM_CONTINUE( 0x200003, 0x40000 )
+ ROM_LOAD32_BYTE( "n014001b.53c", 0x300000, 0x40000, CRC(c718b731) SHA1(37eb725d43ecda891f67b607b5d5f039fc81a8cb) )
+ ROM_CONTINUE( 0x300002, 0x40000 )
+ ROM_LOAD32_BYTE( "n014001b.63c", 0x300001, 0x40000, CRC(7d120067) SHA1(d0e4f0f8c1455a51b5d769fa4bcd5f29bd894c13) )
+ ROM_CONTINUE( 0x300003, 0x40000 )
+ROM_END
+
+ROM_START( ncombatd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE ( "n009001a.038", 0x000001, 0x040000, CRC(89660a31) SHA1(ac37a1060ee82733d8efef8c50f79672fe312097) )
+ ROM_CONTINUE ( 0x000000, 0x040000 )
+
+ NEO_SFIX_128K( "009-s1.s1", CRC(d49afee8) SHA1(77615f12edf08ae8f1353f7a056a8f3a50d3ebdc) ) // n009001a.378
+
+ NEO_BIOS_AUDIO_64K( "n009001a.478", CRC(83821d6e) SHA1(687ad38aa20a113c4f59e7ebc1c911bb8e635ad7) )
+
+ ROM_REGION( 0x180000, "ymsnd", 0 )
+ ROM_LOAD( "009-v11.v11", 0x000000, 0x080000, CRC(cf32a59c) SHA1(af5b7fcd8a4aff1307c0a1d937e5f0460c32de79) ) // n009001a.178
+ ROM_LOAD( "009-v12.v12", 0x080000, 0x080000, CRC(7b3588b7) SHA1(a4e6d9d4113ff4ce48b371f65e9187d551821d3b) ) // n009001a.17c
+ ROM_LOAD( "009-v13.v13", 0x100000, 0x080000, CRC(505a01b5) SHA1(9426a4f5b31e16f74e72e61951c189a878f211c5) ) // n009001b.178
+
+ ROM_REGION( 0x080000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "009-v21.v21", 0x000000, 0x080000, CRC(365f9011) SHA1(aebd292214ab280b05ee9e759b7e9a681a099c4a) ) // n009001a.278
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "n009001a.538", 0x000000, 0x40000, CRC(0147a4b5) SHA1(0a2f60bb7166bd5a2ad669820b0f26d630e94958) )
+ ROM_CONTINUE( 0x000002, 0x40000 )
+ ROM_LOAD32_BYTE( "n009001a.638", 0x000001, 0x40000, CRC(e3d367f8) SHA1(8129c6845b8969f26c7cfe8761bb2bb07e5dc549) )
+ ROM_CONTINUE( 0x000003, 0x40000 )
+ ROM_LOAD32_BYTE( "n009001a.53c", 0x100000, 0x40000, CRC(4df6123a) SHA1(53970d86a848f498ebd5676c0a9d6fe8e026def8) )
+ ROM_CONTINUE( 0x100002, 0x40000 )
+ ROM_LOAD32_BYTE( "n009001a.63c", 0x100001, 0x40000, CRC(1c1f6101) SHA1(9594d199bafa9317bcf8b7447442171ea9b1056d) )
+ ROM_CONTINUE( 0x100003, 0x40000 )
+ ROM_LOAD32_BYTE( "n009001b.538", 0x200000, 0x40000, CRC(19441c78) SHA1(6355039f445456ffe32a512b635e365c5519d0c7) )
+ ROM_CONTINUE( 0x200002, 0x40000 )
+ ROM_LOAD32_BYTE( "n009001b.638", 0x200001, 0x40000, CRC(f417f9ac) SHA1(438e76b54bb82517a57cb3405a99dda0b3d66dc0) )
+ ROM_CONTINUE( 0x200003, 0x40000 )
+ROM_END
+
+ROM_START( ncommandd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE ( "n050001a.038", 0x000001, 0x040000, CRC(fdaaca42) SHA1(aa32936bbe8ee53e717a3582847af89d1e160ff4) )
+ ROM_CONTINUE ( 0x000000, 0x040000 )
+ ROM_LOAD16_BYTE ( "n050001a.03c", 0x080001, 0x040000, CRC(b34e91fe) SHA1(3fbf40b9473bc6b0633c62fffdebc43d86785c7d) )
+ ROM_CONTINUE ( 0x080000, 0x040000 )
+
+ NEO_SFIX_128K( "050-s1.s1", CRC(db8f9c8e) SHA1(11cb82cf3c4d0fc2da5df0c26410a64808093610) ) // n050001a.378
+
+ NEO_BIOS_AUDIO_64K( "n050001a.4f8", CRC(26e93026) SHA1(ea38754748ee2a9250864cd1836db463a1b29b1e) )
+
+ ROM_REGION( 0x180000, "ymsnd", 0 )
+ ROM_LOAD( "n050001a.1f8", 0x000000, 0x080000, CRC(222e71c8) SHA1(5a598414b859ae6fbe4fb1b4bf622b1198232864) )
+ ROM_LOAD( "n050001a.1fc", 0x080000, 0x080000, CRC(12acd064) SHA1(c2d7f55df6e49c54c0cab6d5db4cb82f97c6bab9) )
+ ROM_LOAD( "050-v2.v2", 0x100000, 0x080000, CRC(80b8a984) SHA1(950cf0e78ceffa4037663f1086fbbc88588f49f2) ) // n050001b.1f8
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "n050001a.538", 0x000000, 0x40000, CRC(73acaa79) SHA1(1394c93132337469e283053f34c83658a9df771e) )
+ ROM_CONTINUE( 0x000002, 0x40000 )
+ ROM_LOAD32_BYTE( "n050001a.638", 0x000001, 0x40000, CRC(7b24359f) SHA1(99c5f59d479afbbc6ab8ef9dc4f90b9b5d42a199) )
+ ROM_CONTINUE( 0x000003, 0x40000 )
+ ROM_LOAD32_BYTE( "n050001a.53c", 0x100000, 0x40000, CRC(ad56623d) SHA1(afeaeed8917f259905a5cb46deb42bf6b0e7fd35) )
+ ROM_CONTINUE( 0x100002, 0x40000 )
+ ROM_LOAD32_BYTE( "n050001a.63c", 0x100001, 0x40000, CRC(0913a784) SHA1(5cee03ff0b41c58ad0b663c4bf100ae4a2152ee1) )
+ ROM_CONTINUE( 0x100003, 0x40000 )
+ ROM_LOAD32_BYTE( "n050001b.538", 0x200000, 0x40000, CRC(c8d763cd) SHA1(1d489c22bedd324d19cb02bed874e986f2627152) )
+ ROM_CONTINUE( 0x200002, 0x40000 )
+ ROM_LOAD32_BYTE( "n050001b.638", 0x200001, 0x40000, CRC(574612ec) SHA1(6c5863f2fc7b63808e8762aa839614919034aaa8) )
+ ROM_CONTINUE( 0x200003, 0x40000 )
+ ROM_LOAD32_BYTE( "n050001b.53c", 0x300000, 0x40000, CRC(63829529) SHA1(132f835fc2a6ca073700b1935ce3ebd32ba37f3e) )
+ ROM_CONTINUE( 0x300002, 0x40000 )
+ ROM_LOAD32_BYTE( "n050001b.63c", 0x300001, 0x40000, CRC(990d302a) SHA1(e0d07eb287b2ad143c72eeef39a3455d9d802a4a) )
+ ROM_CONTINUE( 0x300003, 0x40000 )
+ROM_END
+
+ROM_START( ridherod )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE ( "n006001a.038", 0x000001, 0x040000, CRC(dabfac95) SHA1(234750f08954a94b2846f7ab79b67d6db2b67f6e) )
+ ROM_CONTINUE ( 0x000000, 0x040000 )
+
+ NEO_SFIX_64K( "n006001a.378", CRC(197d1a28) SHA1(3f6ec453ebdead50c9fabd71071817b699a8a82c) )
+
+ NEO_BIOS_AUDIO_64K( "n006001a.478", CRC(f7196558) SHA1(88c9183db5cb24849a8a548cd48d0732ee1e6219) )
+
+ ROM_REGION( 0x100000, "ymsnd", 0 )
+ ROM_LOAD( "006-v11.v11", 0x000000, 0x080000, CRC(cdf74a42) SHA1(a17106cc3f9e5c5d52b4def861c0545a98151da2) ) // n006001a.178
+ ROM_LOAD( "006-v12.v12", 0x080000, 0x080000, CRC(e2fd2371) SHA1(cc95297bee7ffbdcb24ac4daeb5307cb39a52067) ) // n006001a.17c
+
+ ROM_REGION( 0x200000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "006-v21.v21", 0x000000, 0x080000, CRC(94092bce) SHA1(1a2906271fe6bc396898a756153629a5862930eb) ) // n006001a.278
+ ROM_LOAD( "006-v22.v22", 0x080000, 0x080000, CRC(4e2cd7c3) SHA1(72fb215a4f208a22a764e801186d1643d3d840ca) ) // n006001a.27c
+ ROM_LOAD( "006-v23.v23", 0x100000, 0x080000, CRC(069c71ed) SHA1(f450e9f60cd6ef846dbc77993159ec6157fb64e7) ) // n006001b.278
+ ROM_LOAD( "006-v24.v24", 0x180000, 0x080000, CRC(89fbb825) SHA1(656a97c6a8832dab3a5e1577d9cd257b561cc356) ) // n006001b.27c
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "n006001a.538", 0x000000, 0x40000, CRC(24096241) SHA1(60a3dd2400be7208c7a471a813621a778f083240) )
+ ROM_CONTINUE( 0x000002, 0x40000 )
+ ROM_LOAD32_BYTE( "n006001a.638", 0x000001, 0x40000, CRC(df6a5b00) SHA1(ffd55c36847b0caa7b94b102ef3409d89e0d66c7) )
+ ROM_CONTINUE( 0x000003, 0x40000 )
+ ROM_LOAD32_BYTE( "n006001a.53c", 0x100000, 0x40000, CRC(7026a3a2) SHA1(55f70d2604832125c06742d75ce8ccf5c047d580) )
+ ROM_CONTINUE( 0x100002, 0x40000 )
+ ROM_LOAD32_BYTE( "n006001a.63c", 0x100001, 0x40000, CRC(15220d51) SHA1(72ad9e0381f84a33219255d42223bca01a23927c) )
+ ROM_CONTINUE( 0x100003, 0x40000 )
+ROM_END
+
+ROM_START( roboarmyd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE ( "n032001a.038", 0x000001, 0x040000, CRC(99c7b4fc) SHA1(06a5bd4dd8f6db81eb36d0a8f0612caa1c917325) )
+ ROM_CONTINUE ( 0x000000, 0x040000 )
+
+ NEO_SFIX_128K( "032-s1.s1", CRC(ac0daa1b) SHA1(93bae4697dc403fce19422752a514326ccf66a91) ) // n032001a.378
+
+ NEO_BIOS_AUDIO_128K( "n032001a.4f8", CRC(98edc671) SHA1(04ed65ccaa1197fa55fcefe2caed2772e7040bdb) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "n032001a.1f8", 0x000000, 0x080000, CRC(daff9896) SHA1(2f8a39b98ff2f4a0c8901b1befcc69e0cc5f5aed) )
+ ROM_LOAD( "n032001a.1fc", 0x080000, 0x080000, CRC(8781b1bc) SHA1(4e3cc22ac0acd4033cd4a327269c68b5f56bbe34) )
+ ROM_LOAD( "n032001b.1f8", 0x100000, 0x080000, CRC(b69c1da5) SHA1(7d5ea49338aeef711fc64755abed51fcdd939d48) )
+ ROM_LOAD( "n032001b.1fc", 0x180000, 0x080000, CRC(2c929c17) SHA1(7e053035573de9f601de80d200d09ed4844506fe) )
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "n032001a.538", 0x000000, 0x40000, CRC(e3afaf17) SHA1(b11a45e77f10764f8c845a258d4add74146f1ffe) )
+ ROM_CONTINUE( 0x000002, 0x40000 )
+ ROM_LOAD32_BYTE( "n032001a.638", 0x000001, 0x40000, CRC(3a098b3b) SHA1(93520f664a76de7fac0baeb81daae8943aef0749) )
+ ROM_CONTINUE( 0x000003, 0x40000 )
+ ROM_LOAD32_BYTE( "n032001a.53c", 0x100000, 0x40000, CRC(17098f54) SHA1(69c775685f29e6b6af4f2bed1570bdd7a9c20cec) )
+ ROM_CONTINUE( 0x100002, 0x40000 )
+ ROM_LOAD32_BYTE( "n032001a.63c", 0x100001, 0x40000, CRC(8e3b2b88) SHA1(3ae3c3a5b64a523b294f1166f5506c850edc7f15) )
+ ROM_CONTINUE( 0x100003, 0x40000 )
+ ROM_LOAD32_BYTE( "n032001b.538", 0x200000, 0x40000, CRC(13cbb7c5) SHA1(2f3a92dccd440a5dd9542f423ac74ee3f4255066) )
+ ROM_CONTINUE( 0x200002, 0x40000 )
+ ROM_LOAD32_BYTE( "n032001b.638", 0x200001, 0x40000, CRC(b6f5fc62) SHA1(5d520d2cdd2d99e7d1c9f3c20448464318c8a03c) )
+ ROM_CONTINUE( 0x200003, 0x40000 )
+ROM_END
+
+ROM_START( sengokud )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE ( "n017001a.038", 0x000001, 0x040000, CRC(4483bae1) SHA1(ca5f41be42cd9ce1a2c5007f068514500849a7f4) )
+ ROM_CONTINUE ( 0x000000, 0x040000 )
+ ROM_LOAD16_BYTE ( "n017001a.03c", 0x080001, 0x040000, CRC(d0d55b2a) SHA1(3800154495fbc2f62a539604bf6e5f156316dccd) )
+ ROM_CONTINUE ( 0x080000, 0x040000 )
+
+ NEO_SFIX_128K( "017-s1.s1", CRC(b246204d) SHA1(73dce64c61fb5bb7e836a8e60f081bb77d80d281) ) // n017001a.378
+
+ NEO_BIOS_AUDIO_128K( "n017001a.4f8", CRC(e7bc4a94) SHA1(236d8dddafe5215558f3b0fbb2de3d6c39dd622b) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "n017001a.1f8", 0x000000, 0x080000, CRC(205258a7) SHA1(4cd463a78575d7e74c871660588dc0fe17cce07d) )
+ ROM_LOAD( "n017001a.1fc", 0x080000, 0x080000, CRC(6fbe52c8) SHA1(487f07968854ba3238ba2c612c8b20196f94cab2) )
+ ROM_LOAD( "n017001b.1f8", 0x100000, 0x080000, CRC(6421bdf3) SHA1(823ffcbb9fc8b1219857b8cb6e089e2e21144ab3) )
+ ROM_LOAD( "n017001b.1fc", 0x180000, 0x080000, CRC(1f9578fb) SHA1(7ccdb0e960d6e425e773a99208180dcf5ee7856f) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "n017001a.538", 0x000000, 0x40000, CRC(e834b925) SHA1(08cfdcf232f3319f62b00cfec5c02b55d7c3405e) )
+ ROM_CONTINUE( 0x000002, 0x40000 )
+ ROM_LOAD32_BYTE( "n017001a.638", 0x000001, 0x40000, CRC(96de5eb9) SHA1(a70dfbffb109ddec5b4a2c6f60756d6717fce03b) )
+ ROM_CONTINUE( 0x000003, 0x40000 )
+ ROM_LOAD32_BYTE( "n017001a.53c", 0x100000, 0x40000, CRC(66be6d46) SHA1(3cd5bf09f994159caff23ba01700e7531ebc5b57) )
+ ROM_CONTINUE( 0x100002, 0x40000 )
+ ROM_LOAD32_BYTE( "n017001a.63c", 0x100001, 0x40000, CRC(25f5fd7b) SHA1(f1b2d58c6b73f3001751bf4c81f3d8664c96091c) )
+ ROM_CONTINUE( 0x100003, 0x40000 )
+ ROM_LOAD32_BYTE( "n017001b.538", 0x200000, 0x40000, CRC(443c552c) SHA1(75203f58935eb6a554542bb6ece457f8a2b51adb) )
+ ROM_CONTINUE( 0x200002, 0x40000 )
+ ROM_LOAD32_BYTE( "n017001b.638", 0x200001, 0x40000, CRC(afbd5b0b) SHA1(639fecb5afd5fb31ba169149d61830330169d7df) )
+ ROM_CONTINUE( 0x200003, 0x40000 )
+ ROM_LOAD32_BYTE( "n017001b.53c", 0x300000, 0x40000, CRC(ecb41adc) SHA1(741ddfdb8cbfacd95c37243dbf098a09ad6d6f0b) )
+ ROM_CONTINUE( 0x300002, 0x40000 )
+ ROM_LOAD32_BYTE( "n017001b.63c", 0x300001, 0x40000, CRC(78b25278) SHA1(c1ed3be0e0bc5c6bebaee1bb851cfb9c0b8b243f) )
+ ROM_CONTINUE( 0x300003, 0x40000 )
+ROM_END
+
+ROM_START( sengoku2d )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE ( "n040001a.038", 0x000001, 0x040000, CRC(d1bf3fa5) SHA1(4a6c82d9294980eca6f9311d62f4d683baca173e) )
+ ROM_CONTINUE ( 0x000000, 0x040000 )
+ ROM_LOAD16_BYTE ( "n040001a.03c", 0x080001, 0x040000, CRC(ee9d0bb4) SHA1(27748b3a1b2e59cda29a85a6a467e1a46be3fe60) )
+ ROM_CONTINUE ( 0x080000, 0x040000 )
+
+ NEO_SFIX_128K( "040-s1.s1", CRC(cd9802a3) SHA1(f685d4638f4f68e7e3f101c0c39128454536721b) ) // n040001a.378
+
+ NEO_BIOS_AUDIO_128K( "n040001a.4f8", CRC(9902dfa2) SHA1(af6284c5298328156726b76b968995ad25fdf4de) )
+
+ ROM_REGION( 0x300000, "ymsnd", 0 )
+ ROM_LOAD( "n040001a.1f8", 0x000000, 0x080000, CRC(e6e9d82f) SHA1(a4691ef7719c55fa665dbe8f4420008cf6f23ae2) )
+ ROM_LOAD( "n040001a.1fc", 0x080000, 0x080000, CRC(0504e71e) SHA1(856a200e2e4c39c0985d10b1dcd75e89e69b6f5d) )
+ ROM_LOAD( "n040001b.1f8", 0x100000, 0x080000, CRC(e6c57d21) SHA1(e1f1403c3340be1ab66f027b2678bee3267b9f3c) )
+ ROM_LOAD( "n040001b.1fc", 0x180000, 0x080000, CRC(000d319d) SHA1(88424ceca50e03ed41bad0493461bccfee519ec5) )
+ ROM_LOAD( "n040001c.1f8", 0x200000, 0x080000, CRC(6650bc9a) SHA1(43e9da8176b9c282eaaaf8963fd7c7bd83d61953) )
+ ROM_LOAD( "n040001c.1fc", 0x280000, 0x080000, CRC(c6358d62) SHA1(ca1d72a8a3ea9a2b5a800aeb091098d723eef963) )
+
+ ROM_REGION( 0x600000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "n040001a.538", 0x000000, 0x40000, CRC(da18aaed) SHA1(926500715ba30a5fad128ba877ca5f59bd98399b) )
+ ROM_CONTINUE( 0x000002, 0x40000 )
+ ROM_LOAD32_BYTE( "n040001a.638", 0x000001, 0x40000, CRC(5b27c829) SHA1(166ff9359b819a068763e868da69cf67976ec8c8) )
+ ROM_CONTINUE( 0x000003, 0x40000 )
+ ROM_LOAD32_BYTE( "n040001a.53c", 0x100000, 0x40000, CRC(19796c4f) SHA1(cf15a65c6bc5243978df6c91b3dce120e4b6db4a) )
+ ROM_CONTINUE( 0x100002, 0x40000 )
+ ROM_LOAD32_BYTE( "n040001a.63c", 0x100001, 0x40000, CRC(e8b46e26) SHA1(5b47903fd7b9783e6e18bbff33e0d7747305bda9) )
+ ROM_CONTINUE( 0x100003, 0x40000 )
+ ROM_LOAD32_BYTE( "n040001b.538", 0x200000, 0x40000, CRC(891b6386) SHA1(9d5e3b2fb6c2247712637f0f7b647042e0485eb6) )
+ ROM_CONTINUE( 0x200002, 0x40000 )
+ ROM_LOAD32_BYTE( "n040001b.638", 0x200001, 0x40000, CRC(93d25955) SHA1(039567a2426794bac9a502d7a46ed13bcc804764) )
+ ROM_CONTINUE( 0x200003, 0x40000 )
+ // These probably not used. 3xxxxx same roms as 2xxxxx
+ ROM_LOAD32_BYTE( "n040001c.538", 0x400000, 0x40000, CRC(c5eaabe8) SHA1(724f0b47e7e166b65b5e5fee790850aed15d2885) )
+ ROM_CONTINUE( 0x400002, 0x40000 )
+ ROM_LOAD32_BYTE( "n040001c.638", 0x400001, 0x40000, CRC(432bd7d0) SHA1(662179ed7c82f9f825b89650761db093ef9f7467) )
+ ROM_CONTINUE( 0x400003, 0x40000 )
+ ROM_LOAD32_BYTE( "n040001c.53c", 0x500000, 0x40000, CRC(22633905) SHA1(3afcf2bf752afa1593f144a8a9749736a09f6738) )
+ ROM_CONTINUE( 0x500002, 0x40000 )
+ ROM_LOAD32_BYTE( "n040001c.63c", 0x500001, 0x40000, CRC(ba3f54b2) SHA1(796ac0d021552b2ed1b95f11cad1e5e1530abcc7) )
+ ROM_CONTINUE( 0x500003, 0x40000 )
+ROM_END
+
+ROM_START( socbrawld )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE ( "n031001a.038", 0x000001, 0x040000, CRC(9fa17911) SHA1(b5a86cc8c8b6e44e392deb6e975ee59076c4392a) )
+ ROM_CONTINUE ( 0x000000, 0x040000 )
+
+ NEO_SFIX_128K( "031-s1.s1", CRC(4c117174) SHA1(26e52c4f628338a9aa1c159517cdf873f738fb98) ) // n031001a.378
+
+ NEO_BIOS_AUDIO_128K( "n031001a.4f8", CRC(bc45269b) SHA1(19b82e7174a6fe5caaec35c0603944a090a43b65) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "n031001a.1f8", 0x000000, 0x080000, CRC(670dc165) SHA1(f75d174cfc0d4c16375c58069b923380ae8c6923) )
+ ROM_LOAD( "n031001a.1fc", 0x080000, 0x080000, CRC(abb9537b) SHA1(0f272ef6bfdb1b5b0580fe9d01070e4f60b383ff) )
+ ROM_LOAD( "n031001b.1f8", 0x100000, 0x080000, CRC(600be43e) SHA1(5639e239910f0fb07f26e4f9816efd77b04f6152) )
+ ROM_LOAD( "n031001b.1fc", 0x180000, 0x080000, CRC(88d30359) SHA1(884cabd8a6ccbdd470aab3b7325fdeade01679f0) )
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "n031001a.538", 0x000000, 0x40000, CRC(945bf77c) SHA1(0f971d5c21c051d2298866b69c96715f583fe521) )
+ ROM_CONTINUE( 0x000002, 0x40000 )
+ ROM_LOAD32_BYTE( "n031001a.638", 0x000001, 0x40000, CRC(6708fc58) SHA1(230253fbe761cb1164efb9a3c91ac1f24f57295b) )
+ ROM_CONTINUE( 0x000003, 0x40000 )
+ ROM_LOAD32_BYTE( "n031001a.53c", 0x100000, 0x40000, CRC(9a210d0d) SHA1(be9b9587c138679e2fb299455d98e2ac6ffad63b) )
+ ROM_CONTINUE( 0x100002, 0x40000 )
+ ROM_LOAD32_BYTE( "n031001a.63c", 0x100001, 0x40000, CRC(9a97c680) SHA1(746a5cb5bf713c806cef24d21347f5b96c86ccab) )
+ ROM_CONTINUE( 0x100003, 0x40000 )
+ ROM_LOAD32_BYTE( "n031001b.538", 0x200000, 0x40000, CRC(057dbb51) SHA1(cab14d98cbbfc0e5714082fd2db8c73e9c6cd684) )
+ ROM_CONTINUE( 0x200002, 0x40000 )
+ ROM_LOAD32_BYTE( "n031001b.638", 0x200001, 0x40000, CRC(434c17c8) SHA1(629dc40ab09ac0a2f55234bc34c4ba63c0b8912f) )
+ ROM_CONTINUE( 0x200003, 0x40000 )
+ROM_END
+
+ROM_START( superspyd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE ( "n011001a.038", 0x000001, 0x040000, CRC(2e949e32) SHA1(c5a5bb996c5c0224b27813a76223c56860ddb399) )
+ ROM_CONTINUE ( 0x000000, 0x040000 )
+ ROM_LOAD16_BYTE ( "n011001a.03c", 0x080001, 0x040000, CRC(54443d72) SHA1(5cb78d50996c1f9a182e9350d94ba2953463ed4b) )
+ ROM_CONTINUE ( 0x080000, 0x040000 )
+
+ NEO_SFIX_128K( "011-s1.s1", CRC(ec5fdb96) SHA1(8003028025ac7bf531e568add6ba66c02d0b7e84) ) // n011001a.378
+
+ NEO_BIOS_AUDIO_64K( "n011001a.478", CRC(64455806) SHA1(454e95503be8ec5dd2332da1ce08c832a2ab81b8) )
+
+ ROM_REGION( 0x180000, "ymsnd", 0 )
+ ROM_LOAD( "n011001a.178", 0x000000, 0x080000, CRC(b993bc83) SHA1(b7689a57120b9eb3d23b6675f8791c117360a267) )
+ ROM_LOAD( "n011001a.17c", 0x080000, 0x080000, CRC(d7a059b1) SHA1(b13c1c674f66cb6852f0a206554e4616f5fde236) )
+ ROM_LOAD( "011-v12.v12", 0x100000, 0x080000, CRC(9f513d5a) SHA1(37b04962f0b8e2a74abd35c407337a6151dc4e95) ) // n011001b.178
+
+ ROM_REGION( 0x080000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "011-v21.v21", 0x000000, 0x080000, CRC(426cd040) SHA1(b2b45189837c8287223c2b8bd4df9525b72a3f16) ) // n011001a.278
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "n011001a.538", 0x000000, 0x40000, CRC(239f22c4) SHA1(91f985fb9acb36ab5f8877f62c0476a291f3b591) )
+ ROM_CONTINUE( 0x000002, 0x40000 )
+ ROM_LOAD32_BYTE( "n011001a.638", 0x000001, 0x40000, CRC(5f2e5184) SHA1(b2704eff6815da611f0f2ad15f2a85d482a111d3) )
+ ROM_CONTINUE( 0x000003, 0x40000 )
+ ROM_LOAD32_BYTE( "n011001a.53c", 0x100000, 0x40000, CRC(ce80c326) SHA1(3f1f72d923dde87e87bc74080cc1858f42413ab2) )
+ ROM_CONTINUE( 0x100002, 0x40000 )
+ ROM_LOAD32_BYTE( "n011001a.63c", 0x100001, 0x40000, CRC(79b3e0b1) SHA1(1f627f7b8d86292d4f4cdc0f15782d060a91b551) )
+ ROM_CONTINUE( 0x100003, 0x40000 )
+ ROM_LOAD32_BYTE( "n011001b.538", 0x200000, 0x40000, CRC(1edcf268) SHA1(a691f76980e7a0da63948a5d75f32afa6c92c9c3) )
+ ROM_CONTINUE( 0x200002, 0x40000 )
+ ROM_LOAD32_BYTE( "n011001b.638", 0x200001, 0x40000, CRC(b2afe822) SHA1(56d623e4a468ac88c6bbc54ff6f640a7aa5f93f5) )
+ ROM_CONTINUE( 0x200003, 0x40000 )
+ ROM_LOAD32_BYTE( "n011001b.53c", 0x300000, 0x40000, CRC(a41602a0) SHA1(95ee2162de50be72982edcecb437995a43d39a07) )
+ ROM_CONTINUE( 0x300002, 0x40000 )
+ ROM_LOAD32_BYTE( "n011001b.63c", 0x300001, 0x40000, CRC(d425f967) SHA1(4085782d440ad265ae45f43c83b1d1fa96d15524) )
+ ROM_CONTINUE( 0x300003, 0x40000 )
+ROM_END
+
+ROM_START( tpgolfd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE ( "n003001a.038", 0x000001, 0x040000, CRC(542e93d9) SHA1(530d8e344481ae98edd4ca8b86146c44f587228f) )
+ ROM_CONTINUE ( 0x000000, 0x040000 )
+ ROM_LOAD16_BYTE ( "n003001a.03c", 0x080001, 0x040000, CRC(03f1bead) SHA1(b2e40d936636e5d2108fcdf4f440095b3e6da9b5) )
+ ROM_CONTINUE ( 0x080000, 0x040000 )
+
+ NEO_SFIX_128K( "003-s1.s1", CRC(7b3eb9b1) SHA1(39cd8bad9f8bfdeb8ac681b5b79ae5aa81c8dd5f) ) // n003001a.378
+
+ NEO_BIOS_AUDIO_64K( "003cd.m1", CRC(7851d0d9) SHA1(d021cef958cc37ab170b78d7a4b3ae94947e4d13) ) // n003001a.478
+
+ ROM_REGION( 0x080000, "ymsnd", 0 )
+ ROM_LOAD( "003-v11.v11", 0x000000, 0x080000, CRC(ff97f1cb) SHA1(defa249d46ae220f7bfa70746f5202bbbcc3e5fe) ) // n003001a.178
+
+ ROM_REGION( 0x100000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "003-v21.v21", 0x000000, 0x080000, CRC(d34960c6) SHA1(36d5877d5e42aab943f4d693159f4f3ad8b0addc) ) // n003001a.278
+ ROM_LOAD( "003-v22.v22", 0x080000, 0x080000, CRC(9a5f58d4) SHA1(2b580595e1820430a36f06fd3e0e0b8f7d686889) ) // n003001a.27c
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "n003001a.538", 0x000000, 0x40000, CRC(67633f80) SHA1(951e11f5f74434a3ce9b11bf75b822b2ffbf2c8f) )
+ ROM_CONTINUE( 0x000002, 0x40000 )
+ ROM_LOAD32_BYTE( "n003001a.638", 0x000001, 0x40000, CRC(ba49936b) SHA1(c5eb478da0dc409bc5853438387a93d9a2ecdd04) )
+ ROM_CONTINUE( 0x000003, 0x40000 )
+ ROM_LOAD32_BYTE( "n003001a.53c", 0x100000, 0x40000, CRC(bed644d0) SHA1(687ebf0928983e6e795619124a90696c3de3d55d) )
+ ROM_CONTINUE( 0x100002, 0x40000 )
+ ROM_LOAD32_BYTE( "n003001a.63c", 0x100001, 0x40000, CRC(7fc96498) SHA1(f97da62165388d321ef6e31b3121b14e17fa9a5f) )
+ ROM_CONTINUE( 0x100003, 0x40000 )
+ ROM_LOAD32_BYTE( "n003001b.538", 0x200000, 0x40000, CRC(977a0ea9) SHA1(a2704d9a4a576058feacd237bb7ba28508df0207) )
+ ROM_CONTINUE( 0x200002, 0x40000 )
+ ROM_LOAD32_BYTE( "n003001b.638", 0x200001, 0x40000, CRC(a56853ec) SHA1(242e65c73b63adc0cd527bcdb03ac82fde5be5ef) )
+ ROM_CONTINUE( 0x200003, 0x40000 )
+ ROM_LOAD32_BYTE( "n003001b.53c", 0x300000, 0x40000, CRC(bc0ebc0e) SHA1(ed6c4b8b126ea66e75666358c02cbfe2e90985fe) )
+ ROM_CONTINUE( 0x300002, 0x40000 )
+ ROM_LOAD32_BYTE( "n003001b.63c", 0x300001, 0x40000, CRC(81347ea7) SHA1(8f7b78c91f449ba8e8d449ad436dd5421b6f12a6) )
+ ROM_CONTINUE( 0x300003, 0x40000 )
+ROM_END
+
+ROM_START( trallyd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE ( "n038001a.038", 0x000001, 0x040000, CRC(400bed38) SHA1(9ccc6a505e98e964db9253b50ae549a8d13beffb) )
+ ROM_CONTINUE ( 0x000000, 0x040000 )
+ ROM_LOAD16_BYTE ( "n038001a.03c", 0x080001, 0x040000, CRC(77196e9a) SHA1(31490ce2b97f67e9571ace32d97217232113fb72) )
+ ROM_CONTINUE ( 0x080000, 0x040000 )
+
+ NEO_SFIX_128K( "038-s1.s1", CRC(fff62ae3) SHA1(6510a762ea41557a8938cbfc0557cd5921306061) ) // n038001a.378
+
+ NEO_BIOS_AUDIO_64K( "n038001a.4f8", CRC(308c4a8d) SHA1(6b1e5790442bcf4e3a9fb896bbd293eb33fb4990) )
+
+ ROM_REGION( 0x180000, "ymsnd", 0 )
+ ROM_LOAD( "n038001a.1f8", 0x000000, 0x080000, CRC(1c93fb89) SHA1(a5056e33552e3e6fc3570d41e893a73d78086077) )
+ ROM_LOAD( "n038001a.1fc", 0x080000, 0x080000, CRC(39f18253) SHA1(97622e15ebc180dc24d5b9049d6603cbe039dc81) )
+ ROM_LOAD( "038-v2.v2", 0x100000, 0x080000, CRC(ddd8d1e6) SHA1(65c819fa2392f264f5a1a0a4967c96775732500b) ) // n038001b.1f8
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "n038001a.538", 0x000000, 0x40000, CRC(4d002ecb) SHA1(07330d6cbcd126bd67c702cc351ac4f668108e55) )
+ ROM_CONTINUE( 0x000002, 0x40000 )
+ ROM_LOAD32_BYTE( "n038001a.638", 0x000001, 0x40000, CRC(6b2f79de) SHA1(7725b9b66738a6f9fe9456cc6aadd4fa98d50bff) )
+ ROM_CONTINUE( 0x000003, 0x40000 )
+ ROM_LOAD32_BYTE( "n038001a.53c", 0x100000, 0x40000, CRC(b0be56db) SHA1(f511e1ef9074eec9bff37f22607cd5b491860ee7) )
+ ROM_CONTINUE( 0x100002, 0x40000 )
+ ROM_LOAD32_BYTE( "n038001a.63c", 0x100001, 0x40000, CRC(091f38b4) SHA1(0e579029524f004370d1c93d7b14ad47243bee66) )
+ ROM_CONTINUE( 0x100003, 0x40000 )
+ ROM_LOAD32_BYTE( "n038001b.538", 0x200000, 0x40000, CRC(2f213750) SHA1(fe5a8cd26b52928afeece5504ecca7ec452b7027) )
+ ROM_CONTINUE( 0x200002, 0x40000 )
+ ROM_LOAD32_BYTE( "n038001b.638", 0x200001, 0x40000, CRC(268be38b) SHA1(98f9dfee915ddf8d858297075c7b7d6731527aa3) )
+ ROM_CONTINUE( 0x200003, 0x40000 )
+ROM_END
+
+ROM_START( wh1d )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE ( "n053001a.038", 0x000001, 0x040000, CRC(ab39923d) SHA1(be9fc3c89a452e64d02231d531bb298d201ef002) )
+ ROM_CONTINUE ( 0x000000, 0x040000 )
+ ROM_LOAD16_BYTE ( "n053001a.03c", 0x080001, 0x040000, CRC(5adc98ef) SHA1(0c87725b343f7705f974de71c4bc46afdc75c80b) )
+ ROM_CONTINUE ( 0x080000, 0x040000 )
+
+ NEO_SFIX_128K( "053-s1.s1", CRC(8c2c2d6b) SHA1(87fa79611c6f8886dcc8766814829c669c65b40f) ) // n053001a.378
+
+ NEO_BIOS_AUDIO_128K( "053-m1.m1", CRC(1bd9d04b) SHA1(65cd7b002123ed1a3111e3d942608d0082799ff3) ) // n053001a.4f8
+
+ ROM_REGION( 0x300000, "ymsnd", 0 )
+ ROM_LOAD( "n053001a.1f8", 0x000000, 0x080000, CRC(77994663) SHA1(7adaddf13177b1d18604611dfae7fc43b35a0766) )
+ ROM_LOAD( "n053001a.1fc", 0x080000, 0x080000, CRC(d74ad0da) SHA1(fe71db5808d46f7b56ea7603e500534cd8ab8beb) )
+ ROM_LOAD( "n053001b.1f8", 0x100000, 0x080000, CRC(9d5fe808) SHA1(825eb3727d67e1cf8d8e254576de52952a35c25c) )
+ ROM_LOAD( "n053001b.1fc", 0x180000, 0x080000, CRC(883fb383) SHA1(ceef987b5e8ce9c0201eb0c66628456b99b41fd2) )
+ ROM_LOAD( "n053001c.1f8", 0x200000, 0x080000, CRC(b4ff60d7) SHA1(a1615ec7b309839fd0e690e57d19ab5a857eef1d) )
+ ROM_LOAD( "n053001c.1fc", 0x280000, 0x080000, CRC(b358e4f5) SHA1(6b74306beb801f9e35e1a948b2508a38facb2080) )
+
+ ROM_REGION( 0x600000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "n053001a.538", 0x000000, 0x40000, CRC(ad8fcc5d) SHA1(67683d40fa438032a3e9f5997c7ca5b798f50325) )
+ ROM_CONTINUE( 0x000002, 0x40000 )
+ ROM_LOAD32_BYTE( "n053001a.638", 0x000001, 0x40000, CRC(3182b4db) SHA1(371f898f5ef28b1efe8129fa6837ee31452e0881) )
+ ROM_CONTINUE( 0x000003, 0x40000 )
+ ROM_LOAD32_BYTE( "n053001a.53c", 0x100000, 0x40000, CRC(0dca726e) SHA1(9c9ea623102818b0c551a998be8b909c16967896) )
+ ROM_CONTINUE( 0x100002, 0x40000 )
+ ROM_LOAD32_BYTE( "n053001a.63c", 0x100001, 0x40000, CRC(1cb0a840) SHA1(c52b1dd8b4860d1bcff207f0f7c2278dfa195219) )
+ ROM_CONTINUE( 0x100003, 0x40000 )
+ ROM_LOAD32_BYTE( "n053001b.538", 0x200000, 0x40000, CRC(bb807a43) SHA1(f0583c2bd3ad69f12d3635edece4480414497395) )
+ ROM_CONTINUE( 0x200002, 0x40000 )
+ ROM_LOAD32_BYTE( "n053001b.638", 0x200001, 0x40000, CRC(c9f439f8) SHA1(be7ba30e5cfe22341f61ea2571cec551a5793bf3) )
+ ROM_CONTINUE( 0x200003, 0x40000 )
+ ROM_LOAD32_BYTE( "n053001b.53c", 0x300000, 0x40000, CRC(e913f93c) SHA1(af17419e46aa4f4809fc2f620a6e2d109fe17197) )
+ ROM_CONTINUE( 0x300002, 0x40000 )
+ ROM_LOAD32_BYTE( "n053001b.63c", 0x300001, 0x40000, CRC(80441c48) SHA1(fdfab6abd4e2212635c47270df27108c1904a15b) )
+ ROM_CONTINUE( 0x300003, 0x40000 )
+ ROM_LOAD32_BYTE( "n053001c.538", 0x400000, 0x40000, CRC(3c359a14) SHA1(3415bc48511d57bb54f926df1e282ee02787776d) )
+ ROM_CONTINUE( 0x400002, 0x40000 )
+ ROM_LOAD32_BYTE( "n053001c.638", 0x400001, 0x40000, CRC(7c4b85b4) SHA1(ae7b199f6e59b1b697c36e21ddfc525d6ad77c83) )
+ ROM_CONTINUE( 0x400003, 0x40000 )
+ ROM_LOAD32_BYTE( "n053001c.53c", 0x500000, 0x40000, CRC(b1327d84) SHA1(02f58cb1a18448f1f3c3752bb802b6f737151b9d) )
+ ROM_CONTINUE( 0x500002, 0x40000 )
+ ROM_LOAD32_BYTE( "n053001c.63c", 0x500001, 0x40000, CRC(959f29db) SHA1(f1126098840fb602c8b3349111e5954b73a66934) )
+ ROM_CONTINUE( 0x500003, 0x40000 )
+ROM_END
+
+
+GAME( 1993, 3countbd, 3countb, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "3 Count Bout (MGD2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, 2020bbd, 2020bb, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK / Pallas", "2020 Super Baseball (MGD2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, alpham2d, alpham2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Alpha Mission II (MGD2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, androdund, androdun, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Visco", "Andro Dunos (MGD2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, aofd, aof, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Art of Fighting (MGD2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, bakatonod, bakatono, neogeo_mj, neogeo, neogeo_state, neogeo, ROT0, "Monolith Corp.", "Bakatonosama Mahjong Manyuki (MGD2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, bstarsd, bstars, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Baseball Stars Professional (MGD2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, burningfd, burningf, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Burning Fight (MGD2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, crswordd, crsword, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "Crossed Swords (MGD2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, cyberlipd, cyberlip, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Cyber-Lip (MGD2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, eightmand, eightman, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK / Pallas", "Eight Man (MGD2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, fatfury1d, fatfury1, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Fatal Fury - King of Fighters (MGD2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, fbfrenzyd, fbfrenzy, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Football Frenzy (MGD2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, gpilotsd, gpilots, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Ghost Pilots (MGD2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, joyjoyd, joyjoy, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Puzzled (MGD2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, kotmd, kotm, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "King of the Monsters (MGD2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, lbowlingd, lbowling, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "League Bowling (MGD2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, lresortd, lresort, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Last Resort (MGD2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, maglordd, maglord, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "Magician Lord (MGD2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, minasand, minasan, neogeo_mj, neogeo, neogeo_state, neogeo, ROT0, "Monolith Corp.", "Minnasanno Okagesamadesu (MGD2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, mutnatd, mutnat, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Mutation Nation (MGD2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, ncombatd, ncombat, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "Ninja Combat (MGD2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, ncommandd, ncommand, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co", "Ninja Commando (MGD2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, ridherod, ridhero, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Riding Hero (MGD2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, roboarmyd, roboarmy, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Robo Army (MGD2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, sengokud, sengoku, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Sengoku (MGD2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, sengoku2d, sengoku2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Sengoku 2 (MGD2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, socbrawld, socbrawl, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Soccer Brawl (MGD2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, superspyd, superspy, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The Super Spy (MGD2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, tpgolfd, tpgolf, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Top Player's Golf (MGD2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, trallyd, trally, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "Thrash Rally (MGD2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, wh1d, wh1, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "World Heroes (MGD2)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/midtunit.cpp b/src/hbmame/drivers/midtunit.cpp
new file mode 100644
index 00000000000..565aa6907ec
--- /dev/null
+++ b/src/hbmame/drivers/midtunit.cpp
@@ -0,0 +1,519 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/midtunit.cpp"
+
+ROM_START( mkturbod )
+ ROM_REGION( 0x50000, "adpcm:cpu", 0 )
+ ROM_LOAD( "mks-u3.rom", 0x10000, 0x40000, CRC(c615844c) SHA1(5732f9053a5f73b0cc3b0166d7dc4430829d5bc7) )
+
+ ROM_REGION( 0x200000, "adpcm:oki", 0 ) /* ADPCM */
+ ROM_LOAD( "mks-u12.rom", 0x00000, 0x40000, CRC(258bd7f9) SHA1(463890b23f17350fb9b8a85897b0777c45bc2d54) )
+ ROM_RELOAD( 0x40000, 0x40000 )
+ ROM_LOAD( "mks-u13.rom", 0x80000, 0x40000, CRC(7b7ec3b6) SHA1(6eec1b90d4a4855f34a7ebfbf93f3358d5627db4) )
+ ROM_RELOAD( 0xc0000, 0x40000 )
+
+ ROM_REGION16_LE( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "kombo-rom-uj-12.bin", 0x00000, 0x80000, CRC(7a441f2d) SHA1(3b731bcbd73721ea0cc20157ec5181d25922523c) )
+ ROM_LOAD16_BYTE( "kombo-hacked-ug-12.bin", 0x00001, 0x80000, CRC(bfab4bb6) SHA1(fc48b4b1fd4f32d9a597e292a1121916c98968d1) )
+
+ ROM_REGION( 0xc00000, "gfxrom", 0 )
+ ROM_LOAD32_BYTE( "mkt-ug14.bin", 0x000000, 0x80000, CRC(9e00834e) SHA1(2b97b63f52ba1dba6af6ae56c223519a52b2ab9d) )
+ ROM_LOAD32_BYTE( "mkt-uj14.bin", 0x000001, 0x80000, CRC(f4b0aaa7) SHA1(4cc6ee34c89e3cde325ad24b29511f70ae6a5a72) )
+ ROM_LOAD32_BYTE( "mkt-ug19.bin", 0x000002, 0x80000, CRC(2d8c7ba1) SHA1(f891d6eb618dbf3e77f02e0f93da216e20571905) )
+ ROM_LOAD32_BYTE( "mkt-uj19.bin", 0x000003, 0x80000, CRC(33b9b7a4) SHA1(e8ceca4c049e1f55d480a03ff793b595bd04d344) )
+
+ ROM_LOAD32_BYTE( "mkt-ug16.bin", 0x200000, 0x80000, CRC(52c9d1e5) SHA1(7b1880fca0a11544782b70365c7dd96381ac48e7) )
+ ROM_LOAD32_BYTE( "mkt-uj16.bin", 0x200001, 0x80000, CRC(c94c58cf) SHA1(974d75667eee779497325d5be8df937f15417edf) )
+ ROM_LOAD32_BYTE( "mkt-ug20.bin", 0x200002, 0x80000, CRC(2f7e55d3) SHA1(bda6892ee6fcb46959e4d0892bbe7d9fc6072dd3) )
+ ROM_LOAD32_BYTE( "mkt-uj20.bin", 0x200003, 0x80000, CRC(eae96df0) SHA1(b40532312ba61e4065abfd733dd0c93eecad48e9) )
+
+ ROM_LOAD32_BYTE( "mkt-ug17.bin", 0x400000, 0x80000, CRC(e34fe253) SHA1(6b010bee795c1770297c9557ded1fe83425857f2) )
+ ROM_LOAD32_BYTE( "mkt-uj17.bin", 0x400001, 0x80000, CRC(a56e12f5) SHA1(5db637c4710990cd06bb0069714b19621532e431) )
+ ROM_LOAD32_BYTE( "mkt-ug22.bin", 0x400002, 0x80000, CRC(b537bb4e) SHA1(05a447deee2e89b49bdb3ca2161a021d7ec5f11e) )
+ ROM_LOAD32_BYTE( "mkt-uj22.bin", 0x400003, 0x80000, CRC(5e12523b) SHA1(468f93ef9bb6addb45c1c939d24b6511f255426a) )
+ROM_END
+
+ROM_START( mktturboen )
+ ROM_REGION( 0x50000, "adpcm:cpu", 0 )
+ ROM_LOAD( "mks-u3.rom", 0x10000, 0x40000, CRC(c615844c) SHA1(5732f9053a5f73b0cc3b0166d7dc4430829d5bc7) )
+
+ ROM_REGION( 0x100000, "adpcm:oki", 0 )
+ ROM_LOAD( "mks-u12.rom", 0x00000, 0x40000, CRC(258bd7f9) SHA1(463890b23f17350fb9b8a85897b0777c45bc2d54) )
+ ROM_RELOAD( 0x40000, 0x40000 )
+ ROM_LOAD( "mks-u13.rom", 0x80000, 0x40000, CRC(7b7ec3b6) SHA1(6eec1b90d4a4855f34a7ebfbf93f3358d5627db4) )
+ ROM_RELOAD( 0xc0000, 0x40000 )
+
+ ROM_REGION16_LE( 0x100000, "maincpu", 0 ) /* 34010 code */
+ ROM_LOAD16_BYTE( "kombo-romen-uj-12.bin", 0x00000, 0x80000, CRC(53069455) SHA1(f86da6036844b3e996fa9b3769e4f9979a920b28) )
+ ROM_LOAD16_BYTE( "kombo-rom-ug-12.bin", 0x00001, 0x80000, CRC(45bed5a1) SHA1(dba2c21878925afdcaf61520c18ebefd5e9617db) )
+ ROM_FILL(0xF7914, 1, 0x60)
+ ROM_FILL(0xF7915, 1, 0x09)
+
+ ROM_REGION( 0xc00000, "gfxrom", 0 )
+ ROM_LOAD32_BYTE( "mkt-ug14.bin", 0x000000, 0x80000, CRC(9e00834e) SHA1(2b97b63f52ba1dba6af6ae56c223519a52b2ab9d) )
+ ROM_LOAD32_BYTE( "mkt-uj14.bin", 0x000001, 0x80000, CRC(f4b0aaa7) SHA1(4cc6ee34c89e3cde325ad24b29511f70ae6a5a72) )
+ ROM_LOAD32_BYTE( "mkt-ug19.bin", 0x000002, 0x80000, CRC(2d8c7ba1) SHA1(f891d6eb618dbf3e77f02e0f93da216e20571905) )
+ ROM_LOAD32_BYTE( "mkt-uj19.bin", 0x000003, 0x80000, CRC(33b9b7a4) SHA1(e8ceca4c049e1f55d480a03ff793b595bd04d344) )
+
+ ROM_LOAD32_BYTE( "mkt-ug16.bin", 0x200000, 0x80000, CRC(52c9d1e5) SHA1(7b1880fca0a11544782b70365c7dd96381ac48e7) )
+ ROM_LOAD32_BYTE( "mkt-uj16.bin", 0x200001, 0x80000, CRC(c94c58cf) SHA1(974d75667eee779497325d5be8df937f15417edf) )
+ ROM_LOAD32_BYTE( "mkt-ug20.bin", 0x200002, 0x80000, CRC(2f7e55d3) SHA1(bda6892ee6fcb46959e4d0892bbe7d9fc6072dd3) )
+ ROM_LOAD32_BYTE( "mkt-uj20.bin", 0x200003, 0x80000, CRC(eae96df0) SHA1(b40532312ba61e4065abfd733dd0c93eecad48e9) )
+
+ ROM_LOAD32_BYTE( "mkt-ug17.bin", 0x400000, 0x80000, CRC(e34fe253) SHA1(6b010bee795c1770297c9557ded1fe83425857f2) )
+ ROM_LOAD32_BYTE( "mkt-uj17.bin", 0x400001, 0x80000, CRC(a56e12f5) SHA1(5db637c4710990cd06bb0069714b19621532e431) )
+ ROM_LOAD32_BYTE( "mkt-ug22.bin", 0x400002, 0x80000, CRC(b537bb4e) SHA1(05a447deee2e89b49bdb3ca2161a021d7ec5f11e) )
+ ROM_LOAD32_BYTE( "mkt-uj22.bin", 0x400003, 0x80000, CRC(5e12523b) SHA1(468f93ef9bb6addb45c1c939d24b6511f255426a) )
+ROM_END
+
+ROM_START( mktturbopi )
+ ROM_REGION( 0x50000, "adpcm:cpu", 0 )
+ ROM_LOAD( "mks-u3.rom", 0x10000, 0x40000, CRC(c615844c) SHA1(5732f9053a5f73b0cc3b0166d7dc4430829d5bc7) )
+
+ ROM_REGION( 0x100000, "adpcm:oki", 0 )
+ ROM_LOAD( "mks-u12.rom", 0x00000, 0x40000, CRC(258bd7f9) SHA1(463890b23f17350fb9b8a85897b0777c45bc2d54) )
+ ROM_RELOAD( 0x40000, 0x40000 )
+ ROM_LOAD( "mks-u13.rom", 0x80000, 0x40000, CRC(7b7ec3b6) SHA1(6eec1b90d4a4855f34a7ebfbf93f3358d5627db4) )
+ ROM_RELOAD( 0xc0000, 0x40000 )
+
+ ROM_REGION16_LE( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "kombo-rompi-uj-12.bin", 0x00000, 0x80000, CRC(f4a9a289) SHA1(a94b0a5796457c6f2789e9fd5a1cb80fd6dcf22b) )
+ ROM_LOAD16_BYTE( "kombo-rom-ug-12.bin", 0x00001, 0x80000, CRC(45bed5a1) SHA1(dba2c21878925afdcaf61520c18ebefd5e9617db) )
+ ROM_FILL(0xF7914, 1, 0x60)
+ ROM_FILL(0xF7915, 1, 0x09)
+
+ ROM_REGION( 0xc00000, "gfxrom", 0 )
+ ROM_LOAD32_BYTE( "mkt-ug14.bin", 0x000000, 0x80000, CRC(9e00834e) SHA1(2b97b63f52ba1dba6af6ae56c223519a52b2ab9d) )
+ ROM_LOAD32_BYTE( "mkt-uj14.bin", 0x000001, 0x80000, CRC(f4b0aaa7) SHA1(4cc6ee34c89e3cde325ad24b29511f70ae6a5a72) )
+ ROM_LOAD32_BYTE( "mkt-ug19.bin", 0x000002, 0x80000, CRC(2d8c7ba1) SHA1(f891d6eb618dbf3e77f02e0f93da216e20571905) )
+ ROM_LOAD32_BYTE( "mkt-uj19.bin", 0x000003, 0x80000, CRC(33b9b7a4) SHA1(e8ceca4c049e1f55d480a03ff793b595bd04d344) )
+
+ ROM_LOAD32_BYTE( "mkt-ug16.bin", 0x200000, 0x80000, CRC(52c9d1e5) SHA1(7b1880fca0a11544782b70365c7dd96381ac48e7) )
+ ROM_LOAD32_BYTE( "mkt-uj16.bin", 0x200001, 0x80000, CRC(c94c58cf) SHA1(974d75667eee779497325d5be8df937f15417edf) )
+ ROM_LOAD32_BYTE( "mkt-ug20.bin", 0x200002, 0x80000, CRC(2f7e55d3) SHA1(bda6892ee6fcb46959e4d0892bbe7d9fc6072dd3) )
+ ROM_LOAD32_BYTE( "mkt-uj20.bin", 0x200003, 0x80000, CRC(eae96df0) SHA1(b40532312ba61e4065abfd733dd0c93eecad48e9) )
+
+ ROM_LOAD32_BYTE( "mkt-ug17.bin", 0x400000, 0x80000, CRC(e34fe253) SHA1(6b010bee795c1770297c9557ded1fe83425857f2) )
+ ROM_LOAD32_BYTE( "mkt-uj17.bin", 0x400001, 0x80000, CRC(a56e12f5) SHA1(5db637c4710990cd06bb0069714b19621532e431) )
+ ROM_LOAD32_BYTE( "mkt-ug22.bin", 0x400002, 0x80000, CRC(b537bb4e) SHA1(05a447deee2e89b49bdb3ca2161a021d7ec5f11e) )
+ ROM_LOAD32_BYTE( "mkt-uj22.bin", 0x400003, 0x80000, CRC(5e12523b) SHA1(468f93ef9bb6addb45c1c939d24b6511f255426a) )
+ROM_END
+
+ROM_START( mk2r33 )
+ ROM_REGION16_LE( 0xc00000, "dcs", ROMREGION_ERASEFF )
+ ROM_LOAD16_BYTE( "su2.l1", 0x000000, 0x80000, CRC(5f23d71d) SHA1(54c2afef243759e0f3dbe2907edbc4302f5c8bad) )
+ ROM_RELOAD( 0x100000, 0x80000 )
+ ROM_LOAD16_BYTE( "su3.l1", 0x200000, 0x80000, CRC(d6d92bf9) SHA1(397351c6b707f2595e36360471015f9fa494e894) )
+ ROM_RELOAD( 0x300000, 0x80000 )
+ ROM_LOAD16_BYTE( "su4.l1", 0x400000, 0x80000, CRC(eebc8e0f) SHA1(705ab63ff7672a4857d546afda6dca4973cce1ad) )
+ ROM_RELOAD( 0x500000, 0x80000 )
+ ROM_LOAD16_BYTE( "su5.l1", 0x600000, 0x80000, CRC(2b0b7961) SHA1(1cdc64aab74d14afbd8c3531e3d0bd49271a281f) )
+ ROM_RELOAD( 0x700000, 0x80000 )
+ ROM_LOAD16_BYTE( "su6.l1", 0x800000, 0x80000, CRC(f694b27f) SHA1(d43e38a124665f49ebb4ffc5a55e8f19a1a64686) )
+ ROM_RELOAD( 0x900000, 0x80000 )
+ ROM_LOAD16_BYTE( "su7.l1", 0xa00000, 0x80000, CRC(20387e0a) SHA1(505d05173b2a1f1ee3ebc2898ccd3a95c98dd04a) )
+ ROM_RELOAD( 0xb00000, 0x80000 )
+
+ ROM_REGION16_LE( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "uj12.l33", 0x00000, 0x80000, CRC(84cb0bf4) SHA1(098e0b5be75c60733f3a63893431506cb99f0981) )
+ ROM_LOAD16_BYTE( "ug12.l33", 0x00001, 0x80000, CRC(2021ec4f) SHA1(7f357abd7ae66eda8eae2b318426da668cfe1deb) )
+
+ ROM_REGION( 0xc00000, "gfxrom", 0 )
+ ROM_LOAD32_BYTE( "ug14-vid", 0x000000, 0x100000, CRC(01e73af6) SHA1(6598cfd704cc92a7f358a0e1f1c973ab79dcc493) )
+ ROM_LOAD32_BYTE( "uj14-vid", 0x000001, 0x100000, CRC(d4985cbb) SHA1(367865da7efae38d83de3c0868d02a705177ae63) )
+ ROM_LOAD32_BYTE( "ug19-vid", 0x000002, 0x100000, CRC(fec137be) SHA1(f11ecb8a7993f5c4f4449564b4911f69bd6e9bf8) )
+ ROM_LOAD32_BYTE( "uj19-vid", 0x000003, 0x100000, CRC(2d763156) SHA1(06536006da49ab5fb6b75b25f801b83fad000ff5) )
+
+ ROM_LOAD32_BYTE( "ug16-vid", 0x400000, 0x100000, CRC(8ba6ae18) SHA1(465fe907de4a1e502180c4e41642998dd3abc8e6) )
+ ROM_LOAD32_BYTE( "uj16-vid", 0x400001, 0x100000, CRC(39d885b4) SHA1(2251826d247c3c6df421124718401fb35a672f83) )
+ ROM_LOAD32_BYTE( "ug20-vid", 0x400002, 0x100000, CRC(809118c1) SHA1(86153e648834c749e34573151cd4fee403a81962) )
+ ROM_LOAD32_BYTE( "uj20-vid", 0x400003, 0x100000, CRC(b96824f0) SHA1(d42b122f9a57da330192abc7e5f97abc4065d718) )
+
+ ROM_LOAD32_BYTE( "ug17-vid", 0x800000, 0x100000, CRC(937d8620) SHA1(8b9f80a460b124a747a6d1495b53f01f580e28f1) )
+ ROM_LOAD32_BYTE( "uj17-vid", 0x800001, 0x100000, CRC(218de160) SHA1(87aea173720d2a33d8183903f4fe8ba1d47e3348) )
+ ROM_LOAD32_BYTE( "ug22-vid", 0x800002, 0x100000, CRC(154d53b1) SHA1(58ff0aa59101f40a9a3b5fbae1c904d0b0b31612) )
+ ROM_LOAD32_BYTE( "uj22-vid", 0x800003, 0x100000, CRC(8891d785) SHA1(fd460df1ef8f4306ea42f7dc41488a80fd2c8f53) )
+ROM_END
+
+ROM_START( mk2v28b1 )
+ ROM_REGION16_LE( 0xc00000, "dcs", ROMREGION_ERASEFF )
+ ROM_LOAD16_BYTE( "su2.l1", 0x000000, 0x80000, CRC(5f23d71d) SHA1(54c2afef243759e0f3dbe2907edbc4302f5c8bad) )
+ ROM_RELOAD( 0x100000, 0x80000 )
+ ROM_LOAD16_BYTE( "su3.l1", 0x200000, 0x80000, CRC(d6d92bf9) SHA1(397351c6b707f2595e36360471015f9fa494e894) )
+ ROM_RELOAD( 0x300000, 0x80000 )
+ ROM_LOAD16_BYTE( "su4.l1", 0x400000, 0x80000, CRC(eebc8e0f) SHA1(705ab63ff7672a4857d546afda6dca4973cce1ad) )
+ ROM_RELOAD( 0x500000, 0x80000 )
+ ROM_LOAD16_BYTE( "su5.l1", 0x600000, 0x80000, CRC(2b0b7961) SHA1(1cdc64aab74d14afbd8c3531e3d0bd49271a281f) )
+ ROM_RELOAD( 0x700000, 0x80000 )
+ ROM_LOAD16_BYTE( "su6.l1", 0x800000, 0x80000, CRC(f694b27f) SHA1(d43e38a124665f49ebb4ffc5a55e8f19a1a64686) )
+ ROM_RELOAD( 0x900000, 0x80000 )
+ ROM_LOAD16_BYTE( "su7.l1", 0xa00000, 0x80000, CRC(20387e0a) SHA1(505d05173b2a1f1ee3ebc2898ccd3a95c98dd04a) )
+ ROM_RELOAD( 0xb00000, 0x80000 )
+
+ ROM_REGION16_LE( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "uj12.v28", 0x00000, 0x80000, CRC(87a755b5) SHA1(d1796dfae89ca1163cb3db3638066d4bd54d32a8) )
+ ROM_LOAD16_BYTE( "ug12.v28", 0x00001, 0x80000, CRC(b59368c4) SHA1(987ff2ee0944955289b6b156c375b183819072bd) )
+
+ ROM_REGION( 0xc00000, "gfxrom", 0 )
+ ROM_LOAD32_BYTE( "ug14-vid", 0x000000, 0x100000, CRC(01e73af6) SHA1(6598cfd704cc92a7f358a0e1f1c973ab79dcc493) )
+ ROM_LOAD32_BYTE( "uj14-vid", 0x000001, 0x100000, CRC(d4985cbb) SHA1(367865da7efae38d83de3c0868d02a705177ae63) )
+ ROM_LOAD32_BYTE( "ug19-vid", 0x000002, 0x100000, CRC(fec137be) SHA1(f11ecb8a7993f5c4f4449564b4911f69bd6e9bf8) )
+ ROM_LOAD32_BYTE( "uj19-vid", 0x000003, 0x100000, CRC(2d763156) SHA1(06536006da49ab5fb6b75b25f801b83fad000ff5) )
+
+ ROM_LOAD32_BYTE( "ug16-vid", 0x400000, 0x100000, CRC(8ba6ae18) SHA1(465fe907de4a1e502180c4e41642998dd3abc8e6) )
+ ROM_LOAD32_BYTE( "uj16-vid", 0x400001, 0x100000, CRC(39d885b4) SHA1(2251826d247c3c6df421124718401fb35a672f83) )
+ ROM_LOAD32_BYTE( "ug20-vid", 0x400002, 0x100000, CRC(809118c1) SHA1(86153e648834c749e34573151cd4fee403a81962) )
+ ROM_LOAD32_BYTE( "uj20-vid", 0x400003, 0x100000, CRC(b96824f0) SHA1(d42b122f9a57da330192abc7e5f97abc4065d718) )
+
+ ROM_LOAD32_BYTE( "ug17-vid", 0x800000, 0x100000, CRC(937d8620) SHA1(8b9f80a460b124a747a6d1495b53f01f580e28f1) )
+ ROM_LOAD32_BYTE( "uj17-vid", 0x800001, 0x100000, CRC(218de160) SHA1(87aea173720d2a33d8183903f4fe8ba1d47e3348) )
+ ROM_LOAD32_BYTE( "ug22-vid", 0x800002, 0x100000, CRC(154d53b1) SHA1(58ff0aa59101f40a9a3b5fbae1c904d0b0b31612) )
+ ROM_LOAD32_BYTE( "uj22-vid", 0x800003, 0x100000, CRC(8891d785) SHA1(fd460df1ef8f4306ea42f7dc41488a80fd2c8f53) )
+ROM_END
+
+ROM_START( umk2te50 )
+ ROM_REGION16_LE( 0xc00000, "dcs", ROMREGION_ERASEFF )
+ ROM_LOAD16_BYTE( "su2.l1", 0x000000, 0x80000, CRC(5f23d71d) SHA1(54c2afef243759e0f3dbe2907edbc4302f5c8bad) )
+ ROM_RELOAD( 0x100000, 0x80000 )
+ ROM_LOAD16_BYTE( "su3.l1", 0x200000, 0x80000, CRC(d6d92bf9) SHA1(397351c6b707f2595e36360471015f9fa494e894) )
+ ROM_RELOAD( 0x300000, 0x80000 )
+ ROM_LOAD16_BYTE( "su4.l1", 0x400000, 0x80000, CRC(eebc8e0f) SHA1(705ab63ff7672a4857d546afda6dca4973cce1ad) )
+ ROM_RELOAD( 0x500000, 0x80000 )
+ ROM_LOAD16_BYTE( "su5.l1", 0x600000, 0x80000, CRC(2b0b7961) SHA1(1cdc64aab74d14afbd8c3531e3d0bd49271a281f) )
+ ROM_RELOAD( 0x700000, 0x80000 )
+ ROM_LOAD16_BYTE( "su6.l1", 0x800000, 0x80000, CRC(f694b27f) SHA1(d43e38a124665f49ebb4ffc5a55e8f19a1a64686) )
+ ROM_RELOAD( 0x900000, 0x80000 )
+ ROM_LOAD16_BYTE( "su7.l1", 0xa00000, 0x80000, CRC(20387e0a) SHA1(505d05173b2a1f1ee3ebc2898ccd3a95c98dd04a) )
+ ROM_RELOAD( 0xb00000, 0x80000 )
+
+ ROM_REGION16_LE( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "uj12.l50", 0x00000, 0x80000, CRC(62ef20f8) SHA1(0e0392bb4b59fb4e01369f533fdcfa6ee5fb6939) )
+ ROM_LOAD16_BYTE( "ug12.l50", 0x00001, 0x80000, CRC(8c66e999) SHA1(ddb9f39149a7ded105f2e993a4c39c473067adf6) )
+
+ ROM_REGION( 0xc00000, "gfxrom", 0 )
+ ROM_LOAD32_BYTE( "ug14-vid", 0x000000, 0x100000, CRC(01e73af6) SHA1(6598cfd704cc92a7f358a0e1f1c973ab79dcc493) )
+ ROM_LOAD32_BYTE( "uj14-vid", 0x000001, 0x100000, CRC(d4985cbb) SHA1(367865da7efae38d83de3c0868d02a705177ae63) )
+ ROM_LOAD32_BYTE( "ug19-vid", 0x000002, 0x100000, CRC(fec137be) SHA1(f11ecb8a7993f5c4f4449564b4911f69bd6e9bf8) )
+ ROM_LOAD32_BYTE( "uj19-vid", 0x000003, 0x100000, CRC(2d763156) SHA1(06536006da49ab5fb6b75b25f801b83fad000ff5) )
+
+ ROM_LOAD32_BYTE( "ug16-vid", 0x400000, 0x100000, CRC(8ba6ae18) SHA1(465fe907de4a1e502180c4e41642998dd3abc8e6) )
+ ROM_LOAD32_BYTE( "uj16-vid", 0x400001, 0x100000, CRC(39d885b4) SHA1(2251826d247c3c6df421124718401fb35a672f83) )
+ ROM_LOAD32_BYTE( "ug20-vid", 0x400002, 0x100000, CRC(809118c1) SHA1(86153e648834c749e34573151cd4fee403a81962) )
+ ROM_LOAD32_BYTE( "uj20-vid", 0x400003, 0x100000, CRC(b96824f0) SHA1(d42b122f9a57da330192abc7e5f97abc4065d718) )
+
+ ROM_LOAD32_BYTE( "ug17-vid", 0x800000, 0x100000, CRC(937d8620) SHA1(8b9f80a460b124a747a6d1495b53f01f580e28f1) )
+ ROM_LOAD32_BYTE( "uj17-vid", 0x800001, 0x100000, CRC(218de160) SHA1(87aea173720d2a33d8183903f4fe8ba1d47e3348) )
+ ROM_LOAD32_BYTE( "ug22-vid", 0x800002, 0x100000, CRC(154d53b1) SHA1(58ff0aa59101f40a9a3b5fbae1c904d0b0b31612) )
+ ROM_LOAD32_BYTE( "uj22-vid", 0x800003, 0x100000, CRC(8891d785) SHA1(fd460df1ef8f4306ea42f7dc41488a80fd2c8f53) )
+ROM_END
+
+ROM_START( umk2te51 )
+ ROM_REGION16_LE( 0xc00000, "dcs", ROMREGION_ERASEFF )
+ ROM_LOAD16_BYTE( "su2.l1", 0x000000, 0x80000, CRC(5f23d71d) SHA1(54c2afef243759e0f3dbe2907edbc4302f5c8bad) )
+ ROM_RELOAD( 0x100000, 0x80000 )
+ ROM_LOAD16_BYTE( "su3.l1", 0x200000, 0x80000, CRC(d6d92bf9) SHA1(397351c6b707f2595e36360471015f9fa494e894) )
+ ROM_RELOAD( 0x300000, 0x80000 )
+ ROM_LOAD16_BYTE( "su4.l1", 0x400000, 0x80000, CRC(eebc8e0f) SHA1(705ab63ff7672a4857d546afda6dca4973cce1ad) )
+ ROM_RELOAD( 0x500000, 0x80000 )
+ ROM_LOAD16_BYTE( "su5.l1", 0x600000, 0x80000, CRC(2b0b7961) SHA1(1cdc64aab74d14afbd8c3531e3d0bd49271a281f) )
+ ROM_RELOAD( 0x700000, 0x80000 )
+ ROM_LOAD16_BYTE( "su6.l1", 0x800000, 0x80000, CRC(f694b27f) SHA1(d43e38a124665f49ebb4ffc5a55e8f19a1a64686) )
+ ROM_RELOAD( 0x900000, 0x80000 )
+ ROM_LOAD16_BYTE( "su7.l1", 0xa00000, 0x80000, CRC(20387e0a) SHA1(505d05173b2a1f1ee3ebc2898ccd3a95c98dd04a) )
+ ROM_RELOAD( 0xb00000, 0x80000 )
+
+ ROM_REGION16_LE( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "uj12.l51", 0x00000, 0x80000, CRC(fbf97b24) SHA1(902614ce3a4527d1a78e148a876cd321ea221e8f) )
+ ROM_LOAD16_BYTE( "ug12.l51", 0x00001, 0x80000, CRC(8d67c168) SHA1(699bf8e6924429221ace092fb66ae4c85eede8d2) )
+
+ ROM_REGION( 0xc00000, "gfxrom", 0 )
+ ROM_LOAD32_BYTE( "ug14-vid", 0x000000, 0x100000, CRC(01e73af6) SHA1(6598cfd704cc92a7f358a0e1f1c973ab79dcc493) )
+ ROM_LOAD32_BYTE( "uj14-vid", 0x000001, 0x100000, CRC(d4985cbb) SHA1(367865da7efae38d83de3c0868d02a705177ae63) )
+ ROM_LOAD32_BYTE( "ug19-vid", 0x000002, 0x100000, CRC(fec137be) SHA1(f11ecb8a7993f5c4f4449564b4911f69bd6e9bf8) )
+ ROM_LOAD32_BYTE( "uj19-vid", 0x000003, 0x100000, CRC(2d763156) SHA1(06536006da49ab5fb6b75b25f801b83fad000ff5) )
+
+ ROM_LOAD32_BYTE( "ug16-vid", 0x400000, 0x100000, CRC(8ba6ae18) SHA1(465fe907de4a1e502180c4e41642998dd3abc8e6) )
+ ROM_LOAD32_BYTE( "uj16-vid", 0x400001, 0x100000, CRC(39d885b4) SHA1(2251826d247c3c6df421124718401fb35a672f83) )
+ ROM_LOAD32_BYTE( "ug20-vid", 0x400002, 0x100000, CRC(809118c1) SHA1(86153e648834c749e34573151cd4fee403a81962) )
+ ROM_LOAD32_BYTE( "uj20-vid", 0x400003, 0x100000, CRC(b96824f0) SHA1(d42b122f9a57da330192abc7e5f97abc4065d718) )
+
+ ROM_LOAD32_BYTE( "ug17-vid", 0x800000, 0x100000, CRC(937d8620) SHA1(8b9f80a460b124a747a6d1495b53f01f580e28f1) )
+ ROM_LOAD32_BYTE( "uj17-vid", 0x800001, 0x100000, CRC(218de160) SHA1(87aea173720d2a33d8183903f4fe8ba1d47e3348) )
+ ROM_LOAD32_BYTE( "ug22-vid", 0x800002, 0x100000, CRC(154d53b1) SHA1(58ff0aa59101f40a9a3b5fbae1c904d0b0b31612) )
+ ROM_LOAD32_BYTE( "uj22-vid", 0x800003, 0x100000, CRC(8891d785) SHA1(fd460df1ef8f4306ea42f7dc41488a80fd2c8f53) )
+ROM_END
+
+ROM_START( umk2te52 )
+ ROM_REGION16_LE( 0xc00000, "dcs", ROMREGION_ERASEFF )
+ ROM_LOAD16_BYTE( "su2.l1", 0x000000, 0x80000, CRC(5f23d71d) SHA1(54c2afef243759e0f3dbe2907edbc4302f5c8bad) )
+ ROM_RELOAD( 0x100000, 0x80000 )
+ ROM_LOAD16_BYTE( "su3.l1", 0x200000, 0x80000, CRC(d6d92bf9) SHA1(397351c6b707f2595e36360471015f9fa494e894) )
+ ROM_RELOAD( 0x300000, 0x80000 )
+ ROM_LOAD16_BYTE( "su4.l1", 0x400000, 0x80000, CRC(eebc8e0f) SHA1(705ab63ff7672a4857d546afda6dca4973cce1ad) )
+ ROM_RELOAD( 0x500000, 0x80000 )
+ ROM_LOAD16_BYTE( "su5.l1", 0x600000, 0x80000, CRC(2b0b7961) SHA1(1cdc64aab74d14afbd8c3531e3d0bd49271a281f) )
+ ROM_RELOAD( 0x700000, 0x80000 )
+ ROM_LOAD16_BYTE( "su6.l1", 0x800000, 0x80000, CRC(f694b27f) SHA1(d43e38a124665f49ebb4ffc5a55e8f19a1a64686) )
+ ROM_RELOAD( 0x900000, 0x80000 )
+ ROM_LOAD16_BYTE( "su7.l1", 0xa00000, 0x80000, CRC(20387e0a) SHA1(505d05173b2a1f1ee3ebc2898ccd3a95c98dd04a) )
+ ROM_RELOAD( 0xb00000, 0x80000 )
+ /* su8 and su9 are unpopulated */
+
+ ROM_REGION16_LE( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "uj12.l52", 0x00000, 0x80000, CRC(a027088c) SHA1(10aced067d8e3a5fe905c07e2ee27904e3dd8855) )
+ ROM_LOAD16_BYTE( "ug12.l52", 0x00001, 0x80000, CRC(474cf238) SHA1(fee96dc9390ade206be3768812040f3bb4ea1e2c) )
+
+ ROM_REGION( 0xc00000, "gfxrom", 0 )
+ ROM_LOAD32_BYTE( "ug14-vid", 0x000000, 0x100000, CRC(01e73af6) SHA1(6598cfd704cc92a7f358a0e1f1c973ab79dcc493) )
+ ROM_LOAD32_BYTE( "uj14-vid", 0x000001, 0x100000, CRC(d4985cbb) SHA1(367865da7efae38d83de3c0868d02a705177ae63) )
+ ROM_LOAD32_BYTE( "ug19-vid", 0x000002, 0x100000, CRC(fec137be) SHA1(f11ecb8a7993f5c4f4449564b4911f69bd6e9bf8) )
+ ROM_LOAD32_BYTE( "uj19-vid", 0x000003, 0x100000, CRC(2d763156) SHA1(06536006da49ab5fb6b75b25f801b83fad000ff5) )
+
+ ROM_LOAD32_BYTE( "ug16-vid", 0x400000, 0x100000, CRC(8ba6ae18) SHA1(465fe907de4a1e502180c4e41642998dd3abc8e6) )
+ ROM_LOAD32_BYTE( "uj16-vid", 0x400001, 0x100000, CRC(39d885b4) SHA1(2251826d247c3c6df421124718401fb35a672f83) )
+ ROM_LOAD32_BYTE( "ug20-vid", 0x400002, 0x100000, CRC(809118c1) SHA1(86153e648834c749e34573151cd4fee403a81962) )
+ ROM_LOAD32_BYTE( "uj20-vid", 0x400003, 0x100000, CRC(b96824f0) SHA1(d42b122f9a57da330192abc7e5f97abc4065d718) )
+
+ ROM_LOAD32_BYTE( "ug17-vid", 0x800000, 0x100000, CRC(937d8620) SHA1(8b9f80a460b124a747a6d1495b53f01f580e28f1) )
+ ROM_LOAD32_BYTE( "uj17-vid", 0x800001, 0x100000, CRC(218de160) SHA1(87aea173720d2a33d8183903f4fe8ba1d47e3348) )
+ ROM_LOAD32_BYTE( "ug22-vid", 0x800002, 0x100000, CRC(154d53b1) SHA1(58ff0aa59101f40a9a3b5fbae1c904d0b0b31612) )
+ ROM_LOAD32_BYTE( "uj22-vid", 0x800003, 0x100000, CRC(8891d785) SHA1(fd460df1ef8f4306ea42f7dc41488a80fd2c8f53) )
+ROM_END
+
+ROM_START( mkfr )
+ ROM_REGION( 0x50000, "adpcm:cpu", 0 )
+ ROM_LOAD( "mks-u3.rom", 0x10000, 0x40000, CRC(c615844c) SHA1(5732f9053a5f73b0cc3b0166d7dc4430829d5bc7) )
+
+ ROM_REGION( 0x100000, "adpcm:oki", 0 )
+ ROM_LOAD( "mks-u12.rom", 0x00000, 0x40000, CRC(258bd7f9) SHA1(463890b23f17350fb9b8a85897b0777c45bc2d54) )
+ ROM_RELOAD( 0x40000, 0x40000 )
+ ROM_LOAD( "mks-u13.rom", 0x80000, 0x40000, CRC(7b7ec3b6) SHA1(6eec1b90d4a4855f34a7ebfbf93f3358d5627db4) )
+ ROM_RELOAD( 0xc0000, 0x40000 )
+
+ ROM_REGION16_LE( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "mkt-uj12f.bin", 0x00000, 0x80000, CRC(4192e38f) SHA1(abe2e6f643a36df48a23aaa2f9027c78c6078d2d) )
+ ROM_LOAD16_BYTE( "mkt-ug12f.bin", 0x00001, 0x80000, CRC(8799979d) SHA1(4f094540e68c03fbd03cd8731797c55e455f61e6) )
+
+ ROM_REGION( 0xc00000, "gfxrom", 0 )
+ ROM_LOAD32_BYTE( "mkt-ug14.bin", 0x000000, 0x80000, CRC(9e00834e) SHA1(2b97b63f52ba1dba6af6ae56c223519a52b2ab9d) )
+ ROM_LOAD32_BYTE( "mkt-uj14.bin", 0x000001, 0x80000, CRC(f4b0aaa7) SHA1(4cc6ee34c89e3cde325ad24b29511f70ae6a5a72) )
+ ROM_LOAD32_BYTE( "mkt-ug19.bin", 0x000002, 0x80000, CRC(2d8c7ba1) SHA1(f891d6eb618dbf3e77f02e0f93da216e20571905) )
+ ROM_LOAD32_BYTE( "mkt-uj19.bin", 0x000003, 0x80000, CRC(33b9b7a4) SHA1(e8ceca4c049e1f55d480a03ff793b595bd04d344) )
+
+ ROM_LOAD32_BYTE( "mkt-ug16.bin", 0x200000, 0x80000, CRC(52c9d1e5) SHA1(7b1880fca0a11544782b70365c7dd96381ac48e7) )
+ ROM_LOAD32_BYTE( "mkt-uj16.bin", 0x200001, 0x80000, CRC(c94c58cf) SHA1(974d75667eee779497325d5be8df937f15417edf) )
+ ROM_LOAD32_BYTE( "mkt-ug20.bin", 0x200002, 0x80000, CRC(2f7e55d3) SHA1(bda6892ee6fcb46959e4d0892bbe7d9fc6072dd3) )
+ ROM_LOAD32_BYTE( "mkt-uj20.bin", 0x200003, 0x80000, CRC(eae96df0) SHA1(b40532312ba61e4065abfd733dd0c93eecad48e9) )
+
+ ROM_LOAD32_BYTE( "mkt-ug17.bin", 0x400000, 0x80000, CRC(e34fe253) SHA1(6b010bee795c1770297c9557ded1fe83425857f2) )
+ ROM_LOAD32_BYTE( "mkt-uj17.bin", 0x400001, 0x80000, CRC(a56e12f5) SHA1(5db637c4710990cd06bb0069714b19621532e431) )
+ ROM_LOAD32_BYTE( "mkt-ug22.bin", 0x400002, 0x80000, CRC(b537bb4e) SHA1(05a447deee2e89b49bdb3ca2161a021d7ec5f11e) )
+ ROM_LOAD32_BYTE( "mkt-uj22.bin", 0x400003, 0x80000, CRC(5e12523b) SHA1(468f93ef9bb6addb45c1c939d24b6511f255426a) )
+ROM_END
+
+ROM_START( mk2fr )
+ ROM_REGION16_LE( 0xc00000, "dcs", ROMREGION_ERASEFF )
+ ROM_LOAD16_BYTE( "su2.l1", 0x000000, 0x80000, CRC(5f23d71d) SHA1(54c2afef243759e0f3dbe2907edbc4302f5c8bad) )
+ ROM_RELOAD( 0x100000, 0x80000 )
+ ROM_LOAD16_BYTE( "su3.l1", 0x200000, 0x80000, CRC(d6d92bf9) SHA1(397351c6b707f2595e36360471015f9fa494e894) )
+ ROM_RELOAD( 0x300000, 0x80000 )
+ ROM_LOAD16_BYTE( "su4.l1", 0x400000, 0x80000, CRC(eebc8e0f) SHA1(705ab63ff7672a4857d546afda6dca4973cce1ad) )
+ ROM_RELOAD( 0x500000, 0x80000 )
+ ROM_LOAD16_BYTE( "su5.l1", 0x600000, 0x80000, CRC(2b0b7961) SHA1(1cdc64aab74d14afbd8c3531e3d0bd49271a281f) )
+ ROM_RELOAD( 0x700000, 0x80000 )
+ ROM_LOAD16_BYTE( "su6.l1", 0x800000, 0x80000, CRC(f694b27f) SHA1(d43e38a124665f49ebb4ffc5a55e8f19a1a64686) )
+ ROM_RELOAD( 0x900000, 0x80000 )
+ ROM_LOAD16_BYTE( "su7.l1", 0xa00000, 0x80000, CRC(20387e0a) SHA1(505d05173b2a1f1ee3ebc2898ccd3a95c98dd04a) )
+ ROM_RELOAD( 0xb00000, 0x80000 )
+
+ ROM_REGION16_LE( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "uj12fr.l31", 0x00000, 0x80000, CRC(0f801e9b) SHA1(b0dc620e1be6b89ff0a1dcd64eec678e81a2ea69) )
+ ROM_LOAD16_BYTE( "ug12fr.l31", 0x00001, 0x80000, CRC(d896c9b6) SHA1(61e26c6acaf810e0788aef31000056e524b87b06) )
+
+ ROM_REGION( 0xc00000, "gfxrom", 0 )
+ ROM_LOAD32_BYTE( "ug14-vid", 0x000000, 0x100000, CRC(01e73af6) SHA1(6598cfd704cc92a7f358a0e1f1c973ab79dcc493) )
+ ROM_LOAD32_BYTE( "uj14-vid", 0x000001, 0x100000, CRC(d4985cbb) SHA1(367865da7efae38d83de3c0868d02a705177ae63) )
+ ROM_LOAD32_BYTE( "ug19-vid", 0x000002, 0x100000, CRC(fec137be) SHA1(f11ecb8a7993f5c4f4449564b4911f69bd6e9bf8) )
+ ROM_LOAD32_BYTE( "uj19-vid", 0x000003, 0x100000, CRC(2d763156) SHA1(06536006da49ab5fb6b75b25f801b83fad000ff5) )
+
+ ROM_LOAD32_BYTE( "ug16-vid", 0x400000, 0x100000, CRC(8ba6ae18) SHA1(465fe907de4a1e502180c4e41642998dd3abc8e6) )
+ ROM_LOAD32_BYTE( "uj16-vid", 0x400001, 0x100000, CRC(39d885b4) SHA1(2251826d247c3c6df421124718401fb35a672f83) )
+ ROM_LOAD32_BYTE( "ug20-vid", 0x400002, 0x100000, CRC(809118c1) SHA1(86153e648834c749e34573151cd4fee403a81962) )
+ ROM_LOAD32_BYTE( "uj20-vid", 0x400003, 0x100000, CRC(b96824f0) SHA1(d42b122f9a57da330192abc7e5f97abc4065d718) )
+
+ ROM_LOAD32_BYTE( "ug17-vid", 0x800000, 0x100000, CRC(937d8620) SHA1(8b9f80a460b124a747a6d1495b53f01f580e28f1) )
+ ROM_LOAD32_BYTE( "uj17-vid", 0x800001, 0x100000, CRC(218de160) SHA1(87aea173720d2a33d8183903f4fe8ba1d47e3348) )
+ ROM_LOAD32_BYTE( "ug22-vid", 0x800002, 0x100000, CRC(154d53b1) SHA1(58ff0aa59101f40a9a3b5fbae1c904d0b0b31612) )
+ ROM_LOAD32_BYTE( "uj22-vid", 0x800003, 0x100000, CRC(8891d785) SHA1(fd460df1ef8f4306ea42f7dc41488a80fd2c8f53) )
+ROM_END
+
+
+GAME( 1992, mkturbod, mk, tunit_adpcm, mk, midtunit_state, mktunit, ROT0, "hack", "Mortal Kombat (Turbo Ninja T-Unit 03/19/93, hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2012, mktturboen, mk, tunit_adpcm, mk, midtunit_state, mktunit, ROT0, "Zenomorp", "Mortal Kombat (Turbo Endurance)", MACHINE_SUPPORTS_SAVE )
+GAME( 2012, mktturbopi, mk, tunit_adpcm, mk, midtunit_state, mktunit, ROT0, "Zenomorp", "Mortal Kombat (Projectile Insanity)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, mk2r33, mk2, tunit_dcs, mk2, midtunit_state, mk2, ROT0, "Midway", "Mortal Kombat II (rev L3.3 (prototype))", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, umk2te50, mk2, tunit_dcs, mk2, midtunit_state, mk2, ROT0, "SK", "Ultimate Mortal Kombat II Tournament Edition r5.0.050)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, umk2te51, mk2, tunit_dcs, mk2, midtunit_state, mk2, ROT0, "SK", "Ultimate Mortal Kombat II Tournament Edition r5.0.051)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, umk2te52, mk2, tunit_dcs, mk2, midtunit_state, mk2, ROT0, "SK", "Ultimate Mortal Kombat II Tournament Edition r5.0.052)", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, mkfr, mk, tunit_adpcm, mk, midtunit_state, mktunit, ROT0, "Arkatrad", "Mortal Kombat (French)", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, mk2fr, mk2, tunit_dcs, mk2, midtunit_state, mk2, ROT0, "Arkatrad", "Mortal Kombat II (French)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mk2v28b1, mk2, tunit_dcs, mk2, midtunit_state, mk2, ROT0, "hack", "Mortal Kombat II v2.8 beta 1", MACHINE_SUPPORTS_SAVE )
+
+//PSmame (c) galston90
+
+ROM_START( mk2fr01 )
+ ROM_REGION16_LE( 0xc00000, "dcs", ROMREGION_ERASEFF )
+ ROM_LOAD16_BYTE( "su2.l1", 0x000000, 0x80000, CRC(5f23d71d) SHA1(54c2afef243759e0f3dbe2907edbc4302f5c8bad) )
+ ROM_RELOAD( 0x100000, 0x80000 )
+ ROM_LOAD16_BYTE( "su3.l1", 0x200000, 0x80000, CRC(d6d92bf9) SHA1(397351c6b707f2595e36360471015f9fa494e894) )
+ ROM_RELOAD( 0x300000, 0x80000 )
+ ROM_LOAD16_BYTE( "su4.l1", 0x400000, 0x80000, CRC(eebc8e0f) SHA1(705ab63ff7672a4857d546afda6dca4973cce1ad) )
+ ROM_RELOAD( 0x500000, 0x80000 )
+ ROM_LOAD16_BYTE( "su5.l1", 0x600000, 0x80000, CRC(2b0b7961) SHA1(1cdc64aab74d14afbd8c3531e3d0bd49271a281f) )
+ ROM_RELOAD( 0x700000, 0x80000 )
+ ROM_LOAD16_BYTE( "su6.l1", 0x800000, 0x80000, CRC(f694b27f) SHA1(d43e38a124665f49ebb4ffc5a55e8f19a1a64686) )
+ ROM_RELOAD( 0x900000, 0x80000 )
+ ROM_LOAD16_BYTE( "su7.l1", 0xa00000, 0x80000, CRC(20387e0a) SHA1(505d05173b2a1f1ee3ebc2898ccd3a95c98dd04a) )
+ ROM_RELOAD( 0xb00000, 0x80000 )
+
+ ROM_REGION16_LE( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "uj12hc01.l31", 0x00000, 0x80000, CRC(a80ca0a6) SHA1(2695e8394b99df89b03c52988e58a95ec37b0cc9) )
+ ROM_LOAD16_BYTE( "ug12hc91.l31", 0x00001, 0x80000, CRC(d70f3631) SHA1(414fb8cc30b96ca77b2a65cfdfcf73e0d9953e48) )
+
+ ROM_REGION( 0xc00000, "gfxrom", 0 )
+ ROM_LOAD32_BYTE( "ug14-vid", 0x000000, 0x100000, CRC(01e73af6) SHA1(6598cfd704cc92a7f358a0e1f1c973ab79dcc493) )
+ ROM_LOAD32_BYTE( "uj14-vid", 0x000001, 0x100000, CRC(d4985cbb) SHA1(367865da7efae38d83de3c0868d02a705177ae63) )
+ ROM_LOAD32_BYTE( "ug19-vid", 0x000002, 0x100000, CRC(fec137be) SHA1(f11ecb8a7993f5c4f4449564b4911f69bd6e9bf8) )
+ ROM_LOAD32_BYTE( "uj19-vid", 0x000003, 0x100000, CRC(2d763156) SHA1(06536006da49ab5fb6b75b25f801b83fad000ff5) )
+
+ ROM_LOAD32_BYTE( "ug16-vid", 0x400000, 0x100000, CRC(8ba6ae18) SHA1(465fe907de4a1e502180c4e41642998dd3abc8e6) )
+ ROM_LOAD32_BYTE( "uj16-vid", 0x400001, 0x100000, CRC(39d885b4) SHA1(2251826d247c3c6df421124718401fb35a672f83) )
+ ROM_LOAD32_BYTE( "ug20-vid", 0x400002, 0x100000, CRC(809118c1) SHA1(86153e648834c749e34573151cd4fee403a81962) )
+ ROM_LOAD32_BYTE( "uj20-vid", 0x400003, 0x100000, CRC(b96824f0) SHA1(d42b122f9a57da330192abc7e5f97abc4065d718) )
+
+ ROM_LOAD32_BYTE( "ug17-vid", 0x800000, 0x100000, CRC(937d8620) SHA1(8b9f80a460b124a747a6d1495b53f01f580e28f1) )
+ ROM_LOAD32_BYTE( "uj17-vid", 0x800001, 0x100000, CRC(218de160) SHA1(87aea173720d2a33d8183903f4fe8ba1d47e3348) )
+ ROM_LOAD32_BYTE( "ug22-vid", 0x800002, 0x100000, CRC(154d53b1) SHA1(58ff0aa59101f40a9a3b5fbae1c904d0b0b31612) )
+ ROM_LOAD32_BYTE( "uj22-vid", 0x800003, 0x100000, CRC(8891d785) SHA1(fd460df1ef8f4306ea42f7dc41488a80fd2c8f53) )
+ROM_END
+
+ROM_START( mk2fr02 )
+ ROM_REGION16_LE( 0xc00000, "dcs", ROMREGION_ERASEFF )
+ ROM_LOAD16_BYTE( "su2.l1", 0x000000, 0x80000, CRC(5f23d71d) SHA1(54c2afef243759e0f3dbe2907edbc4302f5c8bad) )
+ ROM_RELOAD( 0x100000, 0x80000 )
+ ROM_LOAD16_BYTE( "su3.l1", 0x200000, 0x80000, CRC(d6d92bf9) SHA1(397351c6b707f2595e36360471015f9fa494e894) )
+ ROM_RELOAD( 0x300000, 0x80000 )
+ ROM_LOAD16_BYTE( "su4.l1", 0x400000, 0x80000, CRC(eebc8e0f) SHA1(705ab63ff7672a4857d546afda6dca4973cce1ad) )
+ ROM_RELOAD( 0x500000, 0x80000 )
+ ROM_LOAD16_BYTE( "su5.l1", 0x600000, 0x80000, CRC(2b0b7961) SHA1(1cdc64aab74d14afbd8c3531e3d0bd49271a281f) )
+ ROM_RELOAD( 0x700000, 0x80000 )
+ ROM_LOAD16_BYTE( "su6.l1", 0x800000, 0x80000, CRC(f694b27f) SHA1(d43e38a124665f49ebb4ffc5a55e8f19a1a64686) )
+ ROM_RELOAD( 0x900000, 0x80000 )
+ ROM_LOAD16_BYTE( "su7.l1", 0xa00000, 0x80000, CRC(20387e0a) SHA1(505d05173b2a1f1ee3ebc2898ccd3a95c98dd04a) )
+ ROM_RELOAD( 0xb00000, 0x80000 )
+
+ ROM_REGION16_LE( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "uj12hc02.l31", 0x00000, 0x80000, CRC(a7e402a2) SHA1(bb0a9d9460db4e6af87164aac5f9ed74ba2ed741) )
+ ROM_LOAD16_BYTE( "ug12hc92.l31", 0x00001, 0x80000, CRC(12a18f0e) SHA1(1b996e39b009b93d2e3845b2f8c5368b785b239d) )
+
+ ROM_REGION( 0xc00000, "gfxrom", 0 )
+ ROM_LOAD32_BYTE( "ug14-vid", 0x000000, 0x100000, CRC(01e73af6) SHA1(6598cfd704cc92a7f358a0e1f1c973ab79dcc493) )
+ ROM_LOAD32_BYTE( "uj14-vid", 0x000001, 0x100000, CRC(d4985cbb) SHA1(367865da7efae38d83de3c0868d02a705177ae63) )
+ ROM_LOAD32_BYTE( "ug19-vid", 0x000002, 0x100000, CRC(fec137be) SHA1(f11ecb8a7993f5c4f4449564b4911f69bd6e9bf8) )
+ ROM_LOAD32_BYTE( "uj19-vid", 0x000003, 0x100000, CRC(2d763156) SHA1(06536006da49ab5fb6b75b25f801b83fad000ff5) )
+
+ ROM_LOAD32_BYTE( "ug16-vid", 0x400000, 0x100000, CRC(8ba6ae18) SHA1(465fe907de4a1e502180c4e41642998dd3abc8e6) )
+ ROM_LOAD32_BYTE( "uj16-vid", 0x400001, 0x100000, CRC(39d885b4) SHA1(2251826d247c3c6df421124718401fb35a672f83) )
+ ROM_LOAD32_BYTE( "ug20-vid", 0x400002, 0x100000, CRC(809118c1) SHA1(86153e648834c749e34573151cd4fee403a81962) )
+ ROM_LOAD32_BYTE( "uj20-vid", 0x400003, 0x100000, CRC(b96824f0) SHA1(d42b122f9a57da330192abc7e5f97abc4065d718) )
+
+ ROM_LOAD32_BYTE( "ug17-vid", 0x800000, 0x100000, CRC(937d8620) SHA1(8b9f80a460b124a747a6d1495b53f01f580e28f1) )
+ ROM_LOAD32_BYTE( "uj17-vid", 0x800001, 0x100000, CRC(218de160) SHA1(87aea173720d2a33d8183903f4fe8ba1d47e3348) )
+ ROM_LOAD32_BYTE( "ug22-vid", 0x800002, 0x100000, CRC(154d53b1) SHA1(58ff0aa59101f40a9a3b5fbae1c904d0b0b31612) )
+ ROM_LOAD32_BYTE( "uj22-vid", 0x800003, 0x100000, CRC(8891d785) SHA1(fd460df1ef8f4306ea42f7dc41488a80fd2c8f53) )
+ROM_END
+
+ROM_START( mk2fr03 )
+ ROM_REGION16_LE( 0xc00000, "dcs", ROMREGION_ERASEFF )
+ ROM_LOAD16_BYTE( "su2.l1", 0x000000, 0x80000, CRC(5f23d71d) SHA1(54c2afef243759e0f3dbe2907edbc4302f5c8bad) )
+ ROM_RELOAD( 0x100000, 0x80000 )
+ ROM_LOAD16_BYTE( "su3.l1", 0x200000, 0x80000, CRC(d6d92bf9) SHA1(397351c6b707f2595e36360471015f9fa494e894) )
+ ROM_RELOAD( 0x300000, 0x80000 )
+ ROM_LOAD16_BYTE( "su4.l1", 0x400000, 0x80000, CRC(eebc8e0f) SHA1(705ab63ff7672a4857d546afda6dca4973cce1ad) )
+ ROM_RELOAD( 0x500000, 0x80000 )
+ ROM_LOAD16_BYTE( "su5.l1", 0x600000, 0x80000, CRC(2b0b7961) SHA1(1cdc64aab74d14afbd8c3531e3d0bd49271a281f) )
+ ROM_RELOAD( 0x700000, 0x80000 )
+ ROM_LOAD16_BYTE( "su6.l1", 0x800000, 0x80000, CRC(f694b27f) SHA1(d43e38a124665f49ebb4ffc5a55e8f19a1a64686) )
+ ROM_RELOAD( 0x900000, 0x80000 )
+ ROM_LOAD16_BYTE( "su7.l1", 0xa00000, 0x80000, CRC(20387e0a) SHA1(505d05173b2a1f1ee3ebc2898ccd3a95c98dd04a) )
+ ROM_RELOAD( 0xb00000, 0x80000 )
+
+ ROM_REGION16_LE( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "uj12hc03.l31", 0x00000, 0x80000, CRC(ed8ea298) SHA1(aaf31bd70f1fdffd68b675467f1c98afb09508be) )
+ ROM_LOAD16_BYTE( "ug12hc93.l31", 0x00001, 0x80000, CRC(ed87b26b) SHA1(dc15ac14b332899e73d578f4b4844c727257505a) )
+
+ ROM_REGION( 0xc00000, "gfxrom", 0 )
+ ROM_LOAD32_BYTE( "ug14-vid", 0x000000, 0x100000, CRC(01e73af6) SHA1(6598cfd704cc92a7f358a0e1f1c973ab79dcc493) )
+ ROM_LOAD32_BYTE( "uj14-vid", 0x000001, 0x100000, CRC(d4985cbb) SHA1(367865da7efae38d83de3c0868d02a705177ae63) )
+ ROM_LOAD32_BYTE( "ug19-vid", 0x000002, 0x100000, CRC(fec137be) SHA1(f11ecb8a7993f5c4f4449564b4911f69bd6e9bf8) )
+ ROM_LOAD32_BYTE( "uj19-vid", 0x000003, 0x100000, CRC(2d763156) SHA1(06536006da49ab5fb6b75b25f801b83fad000ff5) )
+
+ ROM_LOAD32_BYTE( "ug16-vid", 0x400000, 0x100000, CRC(8ba6ae18) SHA1(465fe907de4a1e502180c4e41642998dd3abc8e6) )
+ ROM_LOAD32_BYTE( "uj16-vid", 0x400001, 0x100000, CRC(39d885b4) SHA1(2251826d247c3c6df421124718401fb35a672f83) )
+ ROM_LOAD32_BYTE( "ug20-vid", 0x400002, 0x100000, CRC(809118c1) SHA1(86153e648834c749e34573151cd4fee403a81962) )
+ ROM_LOAD32_BYTE( "uj20-vid", 0x400003, 0x100000, CRC(b96824f0) SHA1(d42b122f9a57da330192abc7e5f97abc4065d718) )
+
+ ROM_LOAD32_BYTE( "ug17-vid", 0x800000, 0x100000, CRC(937d8620) SHA1(8b9f80a460b124a747a6d1495b53f01f580e28f1) )
+ ROM_LOAD32_BYTE( "uj17-vid", 0x800001, 0x100000, CRC(218de160) SHA1(87aea173720d2a33d8183903f4fe8ba1d47e3348) )
+ ROM_LOAD32_BYTE( "ug22-vid", 0x800002, 0x100000, CRC(154d53b1) SHA1(58ff0aa59101f40a9a3b5fbae1c904d0b0b31612) )
+ ROM_LOAD32_BYTE( "uj22-vid", 0x800003, 0x100000, CRC(8891d785) SHA1(fd460df1ef8f4306ea42f7dc41488a80fd2c8f53) )
+ROM_END
+
+ROM_START( mk2fr04 )
+ ROM_REGION16_LE( 0xc00000, "dcs", ROMREGION_ERASEFF )
+ ROM_LOAD16_BYTE( "su2.l1", 0x000000, 0x80000, CRC(5f23d71d) SHA1(54c2afef243759e0f3dbe2907edbc4302f5c8bad) )
+ ROM_RELOAD( 0x100000, 0x80000 )
+ ROM_LOAD16_BYTE( "su3.l1", 0x200000, 0x80000, CRC(d6d92bf9) SHA1(397351c6b707f2595e36360471015f9fa494e894) )
+ ROM_RELOAD( 0x300000, 0x80000 )
+ ROM_LOAD16_BYTE( "su4.l1", 0x400000, 0x80000, CRC(eebc8e0f) SHA1(705ab63ff7672a4857d546afda6dca4973cce1ad) )
+ ROM_RELOAD( 0x500000, 0x80000 )
+ ROM_LOAD16_BYTE( "su5.l1", 0x600000, 0x80000, CRC(2b0b7961) SHA1(1cdc64aab74d14afbd8c3531e3d0bd49271a281f) )
+ ROM_RELOAD( 0x700000, 0x80000 )
+ ROM_LOAD16_BYTE( "su6.l1", 0x800000, 0x80000, CRC(f694b27f) SHA1(d43e38a124665f49ebb4ffc5a55e8f19a1a64686) )
+ ROM_RELOAD( 0x900000, 0x80000 )
+ ROM_LOAD16_BYTE( "su7.l1", 0xa00000, 0x80000, CRC(20387e0a) SHA1(505d05173b2a1f1ee3ebc2898ccd3a95c98dd04a) )
+ ROM_RELOAD( 0xb00000, 0x80000 )
+
+ ROM_REGION16_LE( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "uj12hc04.l31", 0x00000, 0x80000, CRC(0068bc9f) SHA1(6bdd7a01a029ea859e201cc7743e5dddea78741f) )
+ ROM_LOAD16_BYTE( "ug12hc94.l31", 0x00001, 0x80000, CRC(1d387089) SHA1(bad95dde2f15f4807ec5a399dde93a8858f87fa0) )
+
+ ROM_REGION( 0xc00000, "gfxrom", 0 )
+ ROM_LOAD32_BYTE( "ug14-vid", 0x000000, 0x100000, CRC(01e73af6) SHA1(6598cfd704cc92a7f358a0e1f1c973ab79dcc493) )
+ ROM_LOAD32_BYTE( "uj14-vid", 0x000001, 0x100000, CRC(d4985cbb) SHA1(367865da7efae38d83de3c0868d02a705177ae63) )
+ ROM_LOAD32_BYTE( "ug19-vid", 0x000002, 0x100000, CRC(fec137be) SHA1(f11ecb8a7993f5c4f4449564b4911f69bd6e9bf8) )
+ ROM_LOAD32_BYTE( "uj19-vid", 0x000003, 0x100000, CRC(2d763156) SHA1(06536006da49ab5fb6b75b25f801b83fad000ff5) )
+
+ ROM_LOAD32_BYTE( "ug16-vid", 0x400000, 0x100000, CRC(8ba6ae18) SHA1(465fe907de4a1e502180c4e41642998dd3abc8e6) )
+ ROM_LOAD32_BYTE( "uj16-vid", 0x400001, 0x100000, CRC(39d885b4) SHA1(2251826d247c3c6df421124718401fb35a672f83) )
+ ROM_LOAD32_BYTE( "ug20-vid", 0x400002, 0x100000, CRC(809118c1) SHA1(86153e648834c749e34573151cd4fee403a81962) )
+ ROM_LOAD32_BYTE( "uj20-vid", 0x400003, 0x100000, CRC(b96824f0) SHA1(d42b122f9a57da330192abc7e5f97abc4065d718) )
+
+ ROM_LOAD32_BYTE( "ug17-vid", 0x800000, 0x100000, CRC(937d8620) SHA1(8b9f80a460b124a747a6d1495b53f01f580e28f1) )
+ ROM_LOAD32_BYTE( "uj17-vid", 0x800001, 0x100000, CRC(218de160) SHA1(87aea173720d2a33d8183903f4fe8ba1d47e3348) )
+ ROM_LOAD32_BYTE( "ug22-vid", 0x800002, 0x100000, CRC(154d53b1) SHA1(58ff0aa59101f40a9a3b5fbae1c904d0b0b31612) )
+ ROM_LOAD32_BYTE( "uj22-vid", 0x800003, 0x100000, CRC(8891d785) SHA1(fd460df1ef8f4306ea42f7dc41488a80fd2c8f53) )
+ROM_END
+
+/*************************************
+ *
+ * Game driver(s)
+ *
+ *************************************/
+// Proyecto Shadows Mame Build Plus
+/* YEAR NAME PARENT MACHINE INPUT INIT MONITOR COMPANY FULLNAME FLAGS */
+GAME( 2007, mk2fr01, mk2, tunit_dcs, mk2, midtunit_state, mk2, ROT0, "Hacks", "Mortal Kombat II (NEO ARC French Traduction Set 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, mk2fr02, mk2, tunit_dcs, mk2, midtunit_state, mk2, ROT0, "Hacks", "Mortal Kombat II (NEO ARC French Traduction Set 02)", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, mk2fr03, mk2, tunit_dcs, mk2, midtunit_state, mk2, ROT0, "Hacks", "Mortal Kombat II (NEO ARC French Traduction Set 03)", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, mk2fr04, mk2, tunit_dcs, mk2, midtunit_state, mk2, ROT0, "Hacks", "Mortal Kombat II (NEO ARC French Traduction Set 04)", MACHINE_SUPPORTS_SAVE )
+
diff --git a/src/hbmame/drivers/midwunit.cpp b/src/hbmame/drivers/midwunit.cpp
new file mode 100644
index 00000000000..aeca34df25d
--- /dev/null
+++ b/src/hbmame/drivers/midwunit.cpp
@@ -0,0 +1,258 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/midwunit.cpp"
+
+ROM_START( umk3j )
+ ROM_REGION16_LE( 0x800000, "dcs", ROMREGION_ERASEFF )
+ ROM_LOAD16_BYTE( "l2.0_mortal_kombat_3_u2_ultimate.u2", 0x000000, 0x100000, CRC(3838cfe5) SHA1(e3d2901f3bae1362742fc6ee0aa31c9f63b4dfa3) )
+ ROM_LOAD16_BYTE( "l1_mortal_kombat_3_u3_music_spch.u3", 0x200000, 0x100000, CRC(856fe411) SHA1(6165ebecfce7500e948d84492ffa19eed7f47091) )
+ ROM_LOAD16_BYTE( "l1_mortal_kombat_3_u4_music_spch.u4", 0x400000, 0x100000, CRC(428a406f) SHA1(e70ec83cd054de0da1e178720ed0035b8887f797) )
+ ROM_LOAD16_BYTE( "l1_mortal_kombat_3_u5_music_spch.u5", 0x600000, 0x100000, CRC(3b98a09f) SHA1(edf1d02a56dcf3349e6b4bb4097acfe7592305f4) )
+
+ ROM_REGION16_LE( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "umk3j-u54.bin", 0x00000, 0x80000, CRC(7bd7de7b) SHA1(b1787f732c15ff217bdc9ed5f83dbf2589e32cfb) )
+ ROM_LOAD16_BYTE( "umk3j-u63.bin", 0x00001, 0x80000, CRC(03ba8907) SHA1(8cf79dc054fe40bc28dbd74a6198468c9ae8c948) )
+
+ ROM_REGION( 0x1009, "serial_security:pic", 0 ) /* security PIC (provides game ID code and serial number) */
+ ROM_LOAD( "463_MK3_Ultimate.u64", 0x0000, 0x1009, CRC(4f425218) SHA1(7f26045ed2c9ca94fadcb673ce10f28208aa720e) )
+
+ ROM_REGION( 0x2000000, "gfxrom", 0 )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u133_game_rom.u133", 0x0000000, 0x100000, CRC(79b94667) SHA1(31bba640c351fdccc6685cadb74dd79a3f910ce8) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u132_game_rom.u132", 0x0000001, 0x100000, CRC(13e95228) SHA1(405b05f5a5a55667c2be17d4b399129bdacefd90) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u131_game_rom.u131", 0x0000002, 0x100000, CRC(41001e30) SHA1(2cec91116771951c0380cec5debf4cbb40c14c61) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u130_game_rom.u130", 0x0000003, 0x100000, CRC(49379dd7) SHA1(e6dfab4e23d9cc38ae56c1bbf10ccd160e8fad5e) )
+
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u129_game_rom.u129", 0x0400000, 0x100000, CRC(a8b41803) SHA1(9697e35e8bb51d6d36b1d7ae47377b446e57682f) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u128_game_rom.u128", 0x0400001, 0x100000, CRC(b410d72f) SHA1(ac5c1c6f744186540f4ab100d9bd4ce6007e600b) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u127_game_rom.u127", 0x0400002, 0x100000, CRC(bd985be7) SHA1(f5183abea2e5eb2c2c8cefa72c9ed321679f5128) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u126_game_rom.u126", 0x0400003, 0x100000, CRC(e7c32cf4) SHA1(94ea7b2eed7dae66f5dd676c20d6b360140e3e0e) )
+
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u125_game_rom.u125", 0x0800000, 0x100000, CRC(9a52227e) SHA1(0474a14fa8dbfea0b0889c1d1756b86391683558) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u124_game_rom.u124", 0x0800001, 0x100000, CRC(5c750ebc) SHA1(45d68af1a56994376e086d840502453c8d6be700) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u123_game_rom.u123", 0x0800002, 0x100000, CRC(f0ab88a8) SHA1(cdc9dc12e162255845c6627b1e35182b7e8502d0) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u122_game_rom.u122", 0x0800003, 0x100000, CRC(9b87cdac) SHA1(a5f8db559293978f23e6f105543d8b2e170a2e0d) )
+
+ ROM_LOAD32_BYTE( "umk3j-u121.bin", 0x0c00000, 0x100000, CRC(d17b30f3) SHA1(d9f65a475bea10aca7aae29dd32fc4b3fdd43aca) )
+ ROM_LOAD32_BYTE( "umk3j-u120.bin", 0x0c00001, 0x100000, CRC(c80dbff9) SHA1(e8f903f276487b8aec899d5726b04bef38baf521) )
+ ROM_LOAD32_BYTE( "umk3j-u119.bin", 0x0c00002, 0x100000, CRC(518f8083) SHA1(7e2f8e8a40224db00a658dc121df686492bd5d81) )
+ ROM_LOAD32_BYTE( "umk3j-u118.bin", 0x0c00003, 0x100000, CRC(bbc57990) SHA1(fcf1a90a607d2a054aa633578671c688a8df580c) )
+
+ ROM_LOAD32_BYTE( "umk-u113.bin", 0x1400000, 0x100000, CRC(99d74a1e) SHA1(ed3068afa98287ea290d1f537f5009d3b6d683da) )
+ ROM_LOAD32_BYTE( "umk-u112.bin", 0x1400001, 0x100000, CRC(b5a46488) SHA1(dbf22e55d200eb9ff550f48b223cf0c6114a9357) )
+ ROM_LOAD32_BYTE( "umk-u111.bin", 0x1400002, 0x100000, CRC(a87523c8) SHA1(e70b7599fef82001f762fc2c48f7b85474431ccc) )
+ ROM_LOAD32_BYTE( "umk-u110.bin", 0x1400003, 0x100000, CRC(0038f205) SHA1(059c1c71a2d92ee6db36c09831d213a48a7e81d0) )
+ROM_END
+
+ROM_START( umk3z )
+ ROM_REGION16_LE( 0x800000, "dcs", ROMREGION_ERASEFF )
+ ROM_LOAD16_BYTE( "l2.0_mortal_kombat_3_u2_ultimate.u2", 0x000000, 0x100000, CRC(3838cfe5) SHA1(e3d2901f3bae1362742fc6ee0aa31c9f63b4dfa3) )
+ ROM_LOAD16_BYTE( "l1_mortal_kombat_3_u3_music_spch.u3", 0x200000, 0x100000, CRC(856fe411) SHA1(6165ebecfce7500e948d84492ffa19eed7f47091) )
+ ROM_LOAD16_BYTE( "l1_mortal_kombat_3_u4_music_spch.u4", 0x400000, 0x100000, CRC(428a406f) SHA1(e70ec83cd054de0da1e178720ed0035b8887f797) )
+ ROM_LOAD16_BYTE( "l1_mortal_kombat_3_u5_music_spch.u5", 0x600000, 0x100000, CRC(3b98a09f) SHA1(edf1d02a56dcf3349e6b4bb4097acfe7592305f4) )
+
+ ROM_REGION16_LE( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "umk3z-u54.bin", 0x00000, 0x80000, CRC(7ea6c327) SHA1(266f67302c8a98e96d077ba42bba47dbe5127882) )
+ ROM_LOAD16_BYTE( "umk3z-u63.bin", 0x00001, 0x80000, CRC(51f66368) SHA1(a1e0142e39e123df0e4de525f62328d3c9049244) )
+
+ ROM_REGION( 0x1009, "serial_security:pic", 0 ) /* security PIC (provides game ID code and serial number) */
+ ROM_LOAD( "463_MK3_Ultimate.u64", 0x0000, 0x1009, CRC(4f425218) SHA1(7f26045ed2c9ca94fadcb673ce10f28208aa720e) )
+
+ ROM_REGION( 0x2000000, "gfxrom", 0 )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u133_game_rom.u133", 0x0000000, 0x100000, CRC(79b94667) SHA1(31bba640c351fdccc6685cadb74dd79a3f910ce8) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u132_game_rom.u132", 0x0000001, 0x100000, CRC(13e95228) SHA1(405b05f5a5a55667c2be17d4b399129bdacefd90) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u131_game_rom.u131", 0x0000002, 0x100000, CRC(41001e30) SHA1(2cec91116771951c0380cec5debf4cbb40c14c61) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u130_game_rom.u130", 0x0000003, 0x100000, CRC(49379dd7) SHA1(e6dfab4e23d9cc38ae56c1bbf10ccd160e8fad5e) )
+
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u129_game_rom.u129", 0x0400000, 0x100000, CRC(a8b41803) SHA1(9697e35e8bb51d6d36b1d7ae47377b446e57682f) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u128_game_rom.u128", 0x0400001, 0x100000, CRC(b410d72f) SHA1(ac5c1c6f744186540f4ab100d9bd4ce6007e600b) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u127_game_rom.u127", 0x0400002, 0x100000, CRC(bd985be7) SHA1(f5183abea2e5eb2c2c8cefa72c9ed321679f5128) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u126_game_rom.u126", 0x0400003, 0x100000, CRC(e7c32cf4) SHA1(94ea7b2eed7dae66f5dd676c20d6b360140e3e0e) )
+
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u125_game_rom.u125", 0x0800000, 0x100000, CRC(9a52227e) SHA1(0474a14fa8dbfea0b0889c1d1756b86391683558) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u124_game_rom.u124", 0x0800001, 0x100000, CRC(5c750ebc) SHA1(45d68af1a56994376e086d840502453c8d6be700) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u123_game_rom.u123", 0x0800002, 0x100000, CRC(f0ab88a8) SHA1(cdc9dc12e162255845c6627b1e35182b7e8502d0) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u122_game_rom.u122", 0x0800003, 0x100000, CRC(9b87cdac) SHA1(a5f8db559293978f23e6f105543d8b2e170a2e0d) )
+
+ ROM_LOAD32_BYTE( "umk-u121.bin", 0x0c00000, 0x100000, CRC(cc4b95db) SHA1(3d53180eec649e9616c4b87db55573f12d9bfee3) )
+ ROM_LOAD32_BYTE( "umk-u120.bin", 0x0c00001, 0x100000, CRC(1c8144cd) SHA1(77cdc1eaf630ccb7233f5532f8b08191d00f0816) )
+ ROM_LOAD32_BYTE( "umk-u119.bin", 0x0c00002, 0x100000, CRC(5f10c543) SHA1(24dc83b7aa531ebd399258ffa7b2e028f1c4a28e) )
+ ROM_LOAD32_BYTE( "umk-u118.bin", 0x0c00003, 0x100000, CRC(de0c4488) SHA1(227cab34798c440b2a45223567113df5f17d913f) )
+
+ ROM_LOAD32_BYTE( "umk-u113.bin", 0x1400000, 0x100000, CRC(99d74a1e) SHA1(ed3068afa98287ea290d1f537f5009d3b6d683da) )
+ ROM_LOAD32_BYTE( "umk-u112.bin", 0x1400001, 0x100000, CRC(b5a46488) SHA1(dbf22e55d200eb9ff550f48b223cf0c6114a9357) )
+ ROM_LOAD32_BYTE( "umk-u111.bin", 0x1400002, 0x100000, CRC(a87523c8) SHA1(e70b7599fef82001f762fc2c48f7b85474431ccc) )
+ ROM_LOAD32_BYTE( "umk-u110.bin", 0x1400003, 0x100000, CRC(0038f205) SHA1(059c1c71a2d92ee6db36c09831d213a48a7e81d0) )
+ROM_END
+
+ROM_START( umk3ze )
+ ROM_REGION16_LE( 0x800000, "dcs", ROMREGION_ERASEFF )
+ ROM_LOAD16_BYTE( "l2.0_mortal_kombat_3_u2_ultimate.u2", 0x000000, 0x100000, CRC(3838cfe5) SHA1(e3d2901f3bae1362742fc6ee0aa31c9f63b4dfa3) )
+ ROM_LOAD16_BYTE( "l1_mortal_kombat_3_u3_music_spch.u3", 0x200000, 0x100000, CRC(856fe411) SHA1(6165ebecfce7500e948d84492ffa19eed7f47091) )
+ ROM_LOAD16_BYTE( "l1_mortal_kombat_3_u4_music_spch.u4", 0x400000, 0x100000, CRC(428a406f) SHA1(e70ec83cd054de0da1e178720ed0035b8887f797) )
+ ROM_LOAD16_BYTE( "l1_mortal_kombat_3_u5_music_spch.u5", 0x600000, 0x100000, CRC(3b98a09f) SHA1(edf1d02a56dcf3349e6b4bb4097acfe7592305f4) )
+
+ ROM_REGION16_LE( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "umk3ze-u54.bin", 0x00000, 0x80000, CRC(68b81ec1) SHA1(a37dc345a41d9b6cba69688ba16e021e58c9b24b) )
+ ROM_LOAD16_BYTE( "umk3z-u63.bin", 0x00001, 0x80000, CRC(51f66368) SHA1(a1e0142e39e123df0e4de525f62328d3c9049244) )
+
+ ROM_REGION( 0x1009, "serial_security:pic", 0 ) /* security PIC (provides game ID code and serial number) */
+ ROM_LOAD( "463_MK3_Ultimate.u64", 0x0000, 0x1009, CRC(4f425218) SHA1(7f26045ed2c9ca94fadcb673ce10f28208aa720e) )
+
+ ROM_REGION( 0x2000000, "gfxrom", 0 )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u133_game_rom.u133", 0x0000000, 0x100000, CRC(79b94667) SHA1(31bba640c351fdccc6685cadb74dd79a3f910ce8) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u132_game_rom.u132", 0x0000001, 0x100000, CRC(13e95228) SHA1(405b05f5a5a55667c2be17d4b399129bdacefd90) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u131_game_rom.u131", 0x0000002, 0x100000, CRC(41001e30) SHA1(2cec91116771951c0380cec5debf4cbb40c14c61) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u130_game_rom.u130", 0x0000003, 0x100000, CRC(49379dd7) SHA1(e6dfab4e23d9cc38ae56c1bbf10ccd160e8fad5e) )
+
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u129_game_rom.u129", 0x0400000, 0x100000, CRC(a8b41803) SHA1(9697e35e8bb51d6d36b1d7ae47377b446e57682f) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u128_game_rom.u128", 0x0400001, 0x100000, CRC(b410d72f) SHA1(ac5c1c6f744186540f4ab100d9bd4ce6007e600b) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u127_game_rom.u127", 0x0400002, 0x100000, CRC(bd985be7) SHA1(f5183abea2e5eb2c2c8cefa72c9ed321679f5128) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u126_game_rom.u126", 0x0400003, 0x100000, CRC(e7c32cf4) SHA1(94ea7b2eed7dae66f5dd676c20d6b360140e3e0e) )
+
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u125_game_rom.u125", 0x0800000, 0x100000, CRC(9a52227e) SHA1(0474a14fa8dbfea0b0889c1d1756b86391683558) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u124_game_rom.u124", 0x0800001, 0x100000, CRC(5c750ebc) SHA1(45d68af1a56994376e086d840502453c8d6be700) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u123_game_rom.u123", 0x0800002, 0x100000, CRC(f0ab88a8) SHA1(cdc9dc12e162255845c6627b1e35182b7e8502d0) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u122_game_rom.u122", 0x0800003, 0x100000, CRC(9b87cdac) SHA1(a5f8db559293978f23e6f105543d8b2e170a2e0d) )
+
+ ROM_LOAD32_BYTE( "umk-u121.bin", 0x0c00000, 0x100000, CRC(cc4b95db) SHA1(3d53180eec649e9616c4b87db55573f12d9bfee3) )
+ ROM_LOAD32_BYTE( "umk-u120.bin", 0x0c00001, 0x100000, CRC(1c8144cd) SHA1(77cdc1eaf630ccb7233f5532f8b08191d00f0816) )
+ ROM_LOAD32_BYTE( "umk-u119.bin", 0x0c00002, 0x100000, CRC(5f10c543) SHA1(24dc83b7aa531ebd399258ffa7b2e028f1c4a28e) )
+ ROM_LOAD32_BYTE( "umk-u118.bin", 0x0c00003, 0x100000, CRC(de0c4488) SHA1(227cab34798c440b2a45223567113df5f17d913f) )
+
+ ROM_LOAD32_BYTE( "umk-u113.bin", 0x1400000, 0x100000, CRC(99d74a1e) SHA1(ed3068afa98287ea290d1f537f5009d3b6d683da) )
+ ROM_LOAD32_BYTE( "umk-u112.bin", 0x1400001, 0x100000, CRC(b5a46488) SHA1(dbf22e55d200eb9ff550f48b223cf0c6114a9357) )
+ ROM_LOAD32_BYTE( "umk-u111.bin", 0x1400002, 0x100000, CRC(a87523c8) SHA1(e70b7599fef82001f762fc2c48f7b85474431ccc) )
+ ROM_LOAD32_BYTE( "umk-u110.bin", 0x1400003, 0x100000, CRC(0038f205) SHA1(059c1c71a2d92ee6db36c09831d213a48a7e81d0) )
+ROM_END
+
+ROM_START( umk3te )
+ ROM_REGION16_LE( 0x800000, "dcs", ROMREGION_ERASEFF )
+ ROM_LOAD16_BYTE( "l2.0_mortal_kombat_3_u2_ultimate.u2", 0x000000, 0x100000, CRC(3838cfe5) SHA1(e3d2901f3bae1362742fc6ee0aa31c9f63b4dfa3) )
+ ROM_LOAD16_BYTE( "l1_mortal_kombat_3_u3_music_spch.u3", 0x200000, 0x100000, CRC(856fe411) SHA1(6165ebecfce7500e948d84492ffa19eed7f47091) )
+ ROM_LOAD16_BYTE( "l1_mortal_kombat_3_u4_music_spch.u4", 0x400000, 0x100000, CRC(428a406f) SHA1(e70ec83cd054de0da1e178720ed0035b8887f797) )
+ ROM_LOAD16_BYTE( "l1_mortal_kombat_3_u5_music_spch.u5", 0x600000, 0x100000, CRC(3b98a09f) SHA1(edf1d02a56dcf3349e6b4bb4097acfe7592305f4) )
+
+ ROM_REGION16_LE( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "um312te.u54", 0x00000, 0x80000, CRC(6ff000b4) SHA1(4953bf5275e3bbabbd20c3114e8a0be5d10a0176) )
+ ROM_LOAD16_BYTE( "um312te.u63", 0x00001, 0x80000, CRC(524b4033) SHA1(c3c16dbc83dfa49a80aa440ec6a4f121371bccd6) )
+
+ ROM_REGION( 0x1009, "serial_security:pic", 0 ) /* security PIC (provides game ID code and serial number) */
+ ROM_LOAD( "463_MK3_Ultimate.u64", 0x0000, 0x1009, CRC(4f425218) SHA1(7f26045ed2c9ca94fadcb673ce10f28208aa720e) )
+
+ ROM_REGION( 0x2000000, "gfxrom", 0 )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u133_game_rom.u133", 0x0000000, 0x100000, CRC(79b94667) SHA1(31bba640c351fdccc6685cadb74dd79a3f910ce8) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u132_game_rom.u132", 0x0000001, 0x100000, CRC(13e95228) SHA1(405b05f5a5a55667c2be17d4b399129bdacefd90) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u131_game_rom.u131", 0x0000002, 0x100000, CRC(41001e30) SHA1(2cec91116771951c0380cec5debf4cbb40c14c61) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u130_game_rom.u130", 0x0000003, 0x100000, CRC(49379dd7) SHA1(e6dfab4e23d9cc38ae56c1bbf10ccd160e8fad5e) )
+
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u129_game_rom.u129", 0x0400000, 0x100000, CRC(a8b41803) SHA1(9697e35e8bb51d6d36b1d7ae47377b446e57682f) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u128_game_rom.u128", 0x0400001, 0x100000, CRC(b410d72f) SHA1(ac5c1c6f744186540f4ab100d9bd4ce6007e600b) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u127_game_rom.u127", 0x0400002, 0x100000, CRC(bd985be7) SHA1(f5183abea2e5eb2c2c8cefa72c9ed321679f5128) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u126_game_rom.u126", 0x0400003, 0x100000, CRC(e7c32cf4) SHA1(94ea7b2eed7dae66f5dd676c20d6b360140e3e0e) )
+
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u125_game_rom.u125", 0x0800000, 0x100000, CRC(9a52227e) SHA1(0474a14fa8dbfea0b0889c1d1756b86391683558) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u124_game_rom.u124", 0x0800001, 0x100000, CRC(5c750ebc) SHA1(45d68af1a56994376e086d840502453c8d6be700) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u123_game_rom.u123", 0x0800002, 0x100000, CRC(f0ab88a8) SHA1(cdc9dc12e162255845c6627b1e35182b7e8502d0) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u122_game_rom.u122", 0x0800003, 0x100000, CRC(9b87cdac) SHA1(a5f8db559293978f23e6f105543d8b2e170a2e0d) )
+
+ ROM_LOAD32_BYTE( "umk-u121.bin", 0x0c00000, 0x100000, CRC(cc4b95db) SHA1(3d53180eec649e9616c4b87db55573f12d9bfee3) )
+ ROM_LOAD32_BYTE( "umk-u120.bin", 0x0c00001, 0x100000, CRC(1c8144cd) SHA1(77cdc1eaf630ccb7233f5532f8b08191d00f0816) )
+ ROM_LOAD32_BYTE( "umk-u119.bin", 0x0c00002, 0x100000, CRC(5f10c543) SHA1(24dc83b7aa531ebd399258ffa7b2e028f1c4a28e) )
+ ROM_LOAD32_BYTE( "umk-u118.bin", 0x0c00003, 0x100000, CRC(de0c4488) SHA1(227cab34798c440b2a45223567113df5f17d913f) )
+
+ ROM_LOAD32_BYTE( "umk-u113.bin", 0x1400000, 0x100000, CRC(99d74a1e) SHA1(ed3068afa98287ea290d1f537f5009d3b6d683da) )
+ ROM_LOAD32_BYTE( "umk-u112.bin", 0x1400001, 0x100000, CRC(b5a46488) SHA1(dbf22e55d200eb9ff550f48b223cf0c6114a9357) )
+ ROM_LOAD32_BYTE( "umk-u111.bin", 0x1400002, 0x100000, CRC(a87523c8) SHA1(e70b7599fef82001f762fc2c48f7b85474431ccc) )
+ ROM_LOAD32_BYTE( "umk-u110.bin", 0x1400003, 0x100000, CRC(0038f205) SHA1(059c1c71a2d92ee6db36c09831d213a48a7e81d0) )
+ROM_END
+
+ROM_START( umk3te2 )
+ ROM_REGION16_LE( 0x800000, "dcs", ROMREGION_ERASEFF )
+ ROM_LOAD16_BYTE( "l2.0_mortal_kombat_3_u2_ultimate.u2", 0x000000, 0x100000, CRC(3838cfe5) SHA1(e3d2901f3bae1362742fc6ee0aa31c9f63b4dfa3) )
+ ROM_LOAD16_BYTE( "l1_mortal_kombat_3_u3_music_spch.u3", 0x200000, 0x100000, CRC(856fe411) SHA1(6165ebecfce7500e948d84492ffa19eed7f47091) )
+ ROM_LOAD16_BYTE( "l1_mortal_kombat_3_u4_music_spch.u4", 0x400000, 0x100000, CRC(428a406f) SHA1(e70ec83cd054de0da1e178720ed0035b8887f797) )
+ ROM_LOAD16_BYTE( "l1_mortal_kombat_3_u5_music_spch.u5", 0x600000, 0x100000, CRC(3b98a09f) SHA1(edf1d02a56dcf3349e6b4bb4097acfe7592305f4) )
+
+ ROM_REGION16_LE( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "um312te2.u54", 0x00000, 0x80000, CRC(5b6264e5) SHA1(b2c06a729d4cf70e8f5a2721b66e3e2da4a4ca7c) )
+ ROM_LOAD16_BYTE( "um312te2.u63", 0x00001, 0x80000, CRC(1ba096e0) SHA1(75aa60c75856e98f99d90c1978429fab1509eae8) )
+
+ ROM_REGION( 0x1009, "serial_security:pic", 0 ) /* security PIC (provides game ID code and serial number) */
+ ROM_LOAD( "463_MK3_Ultimate.u64", 0x0000, 0x1009, CRC(4f425218) SHA1(7f26045ed2c9ca94fadcb673ce10f28208aa720e) )
+
+ ROM_REGION( 0x2000000, "gfxrom", 0 )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u133_game_rom.u133", 0x0000000, 0x100000, CRC(79b94667) SHA1(31bba640c351fdccc6685cadb74dd79a3f910ce8) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u132_game_rom.u132", 0x0000001, 0x100000, CRC(13e95228) SHA1(405b05f5a5a55667c2be17d4b399129bdacefd90) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u131_game_rom.u131", 0x0000002, 0x100000, CRC(41001e30) SHA1(2cec91116771951c0380cec5debf4cbb40c14c61) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u130_game_rom.u130", 0x0000003, 0x100000, CRC(49379dd7) SHA1(e6dfab4e23d9cc38ae56c1bbf10ccd160e8fad5e) )
+
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u129_game_rom.u129", 0x0400000, 0x100000, CRC(a8b41803) SHA1(9697e35e8bb51d6d36b1d7ae47377b446e57682f) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u128_game_rom.u128", 0x0400001, 0x100000, CRC(b410d72f) SHA1(ac5c1c6f744186540f4ab100d9bd4ce6007e600b) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u127_game_rom.u127", 0x0400002, 0x100000, CRC(bd985be7) SHA1(f5183abea2e5eb2c2c8cefa72c9ed321679f5128) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u126_game_rom.u126", 0x0400003, 0x100000, CRC(e7c32cf4) SHA1(94ea7b2eed7dae66f5dd676c20d6b360140e3e0e) )
+
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u125_game_rom.u125", 0x0800000, 0x100000, CRC(9a52227e) SHA1(0474a14fa8dbfea0b0889c1d1756b86391683558) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u124_game_rom.u124", 0x0800001, 0x100000, CRC(5c750ebc) SHA1(45d68af1a56994376e086d840502453c8d6be700) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u123_game_rom.u123", 0x0800002, 0x100000, CRC(f0ab88a8) SHA1(cdc9dc12e162255845c6627b1e35182b7e8502d0) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u122_game_rom.u122", 0x0800003, 0x100000, CRC(9b87cdac) SHA1(a5f8db559293978f23e6f105543d8b2e170a2e0d) )
+
+ ROM_LOAD32_BYTE( "umk-u121.bin", 0x0c00000, 0x100000, CRC(cc4b95db) SHA1(3d53180eec649e9616c4b87db55573f12d9bfee3) )
+ ROM_LOAD32_BYTE( "umk-u120.bin", 0x0c00001, 0x100000, CRC(1c8144cd) SHA1(77cdc1eaf630ccb7233f5532f8b08191d00f0816) )
+ ROM_LOAD32_BYTE( "umk-u119.bin", 0x0c00002, 0x100000, CRC(5f10c543) SHA1(24dc83b7aa531ebd399258ffa7b2e028f1c4a28e) )
+ ROM_LOAD32_BYTE( "umk-u118.bin", 0x0c00003, 0x100000, CRC(de0c4488) SHA1(227cab34798c440b2a45223567113df5f17d913f) )
+
+ ROM_LOAD32_BYTE( "umk-u113.bin", 0x1400000, 0x100000, CRC(99d74a1e) SHA1(ed3068afa98287ea290d1f537f5009d3b6d683da) )
+ ROM_LOAD32_BYTE( "umk-u112.bin", 0x1400001, 0x100000, CRC(b5a46488) SHA1(dbf22e55d200eb9ff550f48b223cf0c6114a9357) )
+ ROM_LOAD32_BYTE( "umk-u111.bin", 0x1400002, 0x100000, CRC(a87523c8) SHA1(e70b7599fef82001f762fc2c48f7b85474431ccc) )
+ ROM_LOAD32_BYTE( "umk-u110.bin", 0x1400003, 0x100000, CRC(0038f205) SHA1(059c1c71a2d92ee6db36c09831d213a48a7e81d0) )
+ROM_END
+
+ROM_START( umk3r13b1 )
+ ROM_REGION16_LE( 0x800000, "dcs", ROMREGION_ERASEFF )
+ ROM_LOAD16_BYTE( "l2.0_mortal_kombat_3_u2_ultimate.u2", 0x000000, 0x100000, CRC(3838cfe5) SHA1(e3d2901f3bae1362742fc6ee0aa31c9f63b4dfa3) )
+ ROM_LOAD16_BYTE( "l1_mortal_kombat_3_u3_music_spch.u3", 0x200000, 0x100000, CRC(856fe411) SHA1(6165ebecfce7500e948d84492ffa19eed7f47091) )
+ ROM_LOAD16_BYTE( "l1_mortal_kombat_3_u4_music_spch.u4", 0x400000, 0x100000, CRC(428a406f) SHA1(e70ec83cd054de0da1e178720ed0035b8887f797) )
+ ROM_LOAD16_BYTE( "l1_mortal_kombat_3_u5_music_spch.u5", 0x600000, 0x100000, CRC(3b98a09f) SHA1(edf1d02a56dcf3349e6b4bb4097acfe7592305f4) )
+
+ ROM_REGION16_LE( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "um312r13b1.u54", 0x00000, 0x80000, CRC(dcbd5a61) SHA1(0b9394fb859654d605092dddcf3fc0e88a849615) )
+ ROM_LOAD16_BYTE( "um312r13b1.u63", 0x00001, 0x80000, CRC(fb56eb10) SHA1(70d25a0de7dbb690358bca70695145085084036c) )
+
+ ROM_REGION( 0x1009, "serial_security:pic", 0 ) /* security PIC (provides game ID code and serial number) */
+ ROM_LOAD( "463_MK3_Ultimate.u64", 0x0000, 0x1009, CRC(4f425218) SHA1(7f26045ed2c9ca94fadcb673ce10f28208aa720e) )
+
+ ROM_REGION( 0x2000000, "gfxrom", 0 )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u133_game_rom.u133", 0x0000000, 0x100000, CRC(79b94667) SHA1(31bba640c351fdccc6685cadb74dd79a3f910ce8) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u132_game_rom.u132", 0x0000001, 0x100000, CRC(13e95228) SHA1(405b05f5a5a55667c2be17d4b399129bdacefd90) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u131_game_rom.u131", 0x0000002, 0x100000, CRC(41001e30) SHA1(2cec91116771951c0380cec5debf4cbb40c14c61) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u130_game_rom.u130", 0x0000003, 0x100000, CRC(49379dd7) SHA1(e6dfab4e23d9cc38ae56c1bbf10ccd160e8fad5e) )
+
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u129_game_rom.u129", 0x0400000, 0x100000, CRC(a8b41803) SHA1(9697e35e8bb51d6d36b1d7ae47377b446e57682f) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u128_game_rom.u128", 0x0400001, 0x100000, CRC(b410d72f) SHA1(ac5c1c6f744186540f4ab100d9bd4ce6007e600b) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u127_game_rom.u127", 0x0400002, 0x100000, CRC(bd985be7) SHA1(f5183abea2e5eb2c2c8cefa72c9ed321679f5128) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u126_game_rom.u126", 0x0400003, 0x100000, CRC(e7c32cf4) SHA1(94ea7b2eed7dae66f5dd676c20d6b360140e3e0e) )
+
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u125_game_rom.u125", 0x0800000, 0x100000, CRC(9a52227e) SHA1(0474a14fa8dbfea0b0889c1d1756b86391683558) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u124_game_rom.u124", 0x0800001, 0x100000, CRC(5c750ebc) SHA1(45d68af1a56994376e086d840502453c8d6be700) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u123_game_rom.u123", 0x0800002, 0x100000, CRC(f0ab88a8) SHA1(cdc9dc12e162255845c6627b1e35182b7e8502d0) )
+ ROM_LOAD32_BYTE( "l1_mortal_kombat_3_u122_game_rom.u122", 0x0800003, 0x100000, CRC(9b87cdac) SHA1(a5f8db559293978f23e6f105543d8b2e170a2e0d) )
+
+ ROM_LOAD32_BYTE( "umk-u121.bin", 0x0c00000, 0x100000, CRC(cc4b95db) SHA1(3d53180eec649e9616c4b87db55573f12d9bfee3) )
+ ROM_LOAD32_BYTE( "umk-u120.bin", 0x0c00001, 0x100000, CRC(1c8144cd) SHA1(77cdc1eaf630ccb7233f5532f8b08191d00f0816) )
+ ROM_LOAD32_BYTE( "umk-u119.bin", 0x0c00002, 0x100000, CRC(5f10c543) SHA1(24dc83b7aa531ebd399258ffa7b2e028f1c4a28e) )
+ ROM_LOAD32_BYTE( "umk-u118.bin", 0x0c00003, 0x100000, CRC(de0c4488) SHA1(227cab34798c440b2a45223567113df5f17d913f) )
+
+ ROM_LOAD32_BYTE( "umk-u113.bin", 0x1400000, 0x100000, CRC(99d74a1e) SHA1(ed3068afa98287ea290d1f537f5009d3b6d683da) )
+ ROM_LOAD32_BYTE( "umk-u112.bin", 0x1400001, 0x100000, CRC(b5a46488) SHA1(dbf22e55d200eb9ff550f48b223cf0c6114a9357) )
+ ROM_LOAD32_BYTE( "umk-u111.bin", 0x1400002, 0x100000, CRC(a87523c8) SHA1(e70b7599fef82001f762fc2c48f7b85474431ccc) )
+ ROM_LOAD32_BYTE( "umk-u110.bin", 0x1400003, 0x100000, CRC(0038f205) SHA1(059c1c71a2d92ee6db36c09831d213a48a7e81d0) )
+ROM_END
+
+
+
+GAME( 2010, umk3j, umk3, wunit_picemu, mk3, midwunit_state, umk3, ROT0, "Midway", "Ultimate Mortal Kombat 3 (rev 1.2) Juggernauts Hack v1.0", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, umk3z, umk3, wunit_picemu, mk3, midwunit_state, umk3, ROT0, "Midway", "Ultimate Mortal Kombat 3 (rev 1.2) Zeus hack", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, umk3ze, umk3, wunit_picemu, mk3, midwunit_state, umk3, ROT0, "Midway", "Ultimate Mortal Kombat 3 (rev 1.2) Zeus hack (set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, umk3te, umk3, wunit_picemu, mk3, midwunit_state, umk3, ROT0, "Midway", "Ultimate Mortal Kombat 3 Tournament Edition (2.0.032b8)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, umk3te2, umk3, wunit_picemu, mk3, midwunit_state, umk3, ROT0, "Midway", "Ultimate Mortal Kombat 3 Tournament Edition (2.0.035)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, umk3r13b1, umk3, wunit_picemu, mk3, midwunit_state, umk3, ROT0, "Midway", "Ultimate Mortal Kombat 3 (rev 1.3 beta 1)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/midyunit.cpp b/src/hbmame/drivers/midyunit.cpp
new file mode 100644
index 00000000000..24e9735d9a7
--- /dev/null
+++ b/src/hbmame/drivers/midyunit.cpp
@@ -0,0 +1,36 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/midyunit.cpp"
+
+ROM_START( mkla4d )
+ ROM_REGION( 0x50000, "adpcm:cpu", 0 )
+ ROM_LOAD ( "mks-u3.rom", 0x10000, 0x40000, CRC(c615844c) SHA1(5732f9053a5f73b0cc3b0166d7dc4430829d5bc7) )
+
+ ROM_REGION( 0x200000, "adpcm:oki", 0 )
+ ROM_LOAD ( "mks-u12.rom", 0x00000, 0x40000, CRC(258bd7f9) SHA1(463890b23f17350fb9b8a85897b0777c45bc2d54) )
+ ROM_RELOAD( 0x40000, 0x40000 )
+ ROM_LOAD ( "mks-u13.rom", 0x80000, 0x40000, CRC(7b7ec3b6) SHA1(6eec1b90d4a4855f34a7ebfbf93f3358d5627db4) )
+ ROM_RELOAD( 0xc0000, 0x40000 )
+
+ ROM_REGION16_LE( 0x100000, "user1", 0 )
+ ROM_LOAD16_BYTE( "mkg-hacked-u105.la4", 0x00000, 0x80000, CRC(80d5618c) SHA1(9bdfddbc70b61c94c1871abac1de153b8b728761) )
+ ROM_LOAD16_BYTE( "mkg-hacked-u89.la4", 0x00001, 0x80000, CRC(0478ae60) SHA1(186243cacc4d83070ef53b47f19668ca4c08474a) )
+
+ ROM_REGION( 0x800000, "gfx1", 0 )
+ ROM_LOAD ( "mkg-u111.rom", 0x000000, 0x80000, CRC(d17096c4) SHA1(01ef390a372c9d94adf138f9543ebb88b89f4c38) )
+ ROM_LOAD ( "mkg-u112.rom", 0x080000, 0x80000, CRC(993bc2e4) SHA1(7791edbec2b4b8971a3e790346dd7564ecf16d5c) )
+ ROM_LOAD ( "mkg-u113.rom", 0x100000, 0x80000, CRC(6fb91ede) SHA1(a3735b49f93b08c44fbc97e2b5aad394628fbe90) )
+ ROM_LOAD ( "mkg-u114.rom", 0x180000, 0x80000, CRC(ed1ff88a) SHA1(6b090b658ee6148af953bd0c9216f37162b6460f) )
+
+ ROM_LOAD ( "mkg-u95.rom", 0x200000, 0x80000, CRC(a002a155) SHA1(3cf7909e92bcd428063596fc5b9953e0000d6eca) )
+ ROM_LOAD ( "mkg-u96.rom", 0x280000, 0x80000, CRC(dcee8492) SHA1(a912b74d3b26ebd1b1613cc631080f83ececeaf8) )
+ ROM_LOAD ( "mkg-u97.rom", 0x300000, 0x80000, CRC(de88caef) SHA1(a7927b504dc56ca5c9048373977fe5743b0a3f0b) )
+ ROM_LOAD ( "mkg-u98.rom", 0x380000, 0x80000, CRC(37eb01b4) SHA1(06092460bd137e08d0f8df8560942ed877d40e09) )
+
+ ROM_LOAD ( "mkg-u106.rom", 0x400000, 0x80000, CRC(45acaf21) SHA1(5edd36c55f4e5d3c74fb85171728ec0a58284b12) )
+ ROM_LOAD ( "mkg-u107.rom", 0x480000, 0x80000, CRC(2a6c10a0) SHA1(cc90923c44f2961b945a0fd0f85ecc2ba04af2cb) )
+ ROM_LOAD ( "mkg-u108.rom", 0x500000, 0x80000, CRC(23308979) SHA1(0b36788624a1cf0d3f4c895be5ba967b8dfcf85e) )
+ ROM_LOAD ( "mkg-u109.rom", 0x580000, 0x80000, CRC(cafc47bb) SHA1(8610af6e52f7089ff4acd850c53ab8b4119e4445) )
+ROM_END
+
+GAME( 1992, mkla4d, mk, yunit_adpcm_6bit_fast, mkla4, midyunit_state, mkyunit, ROT0, "Midway", "Mortal Kombat (rev 4.0 09/28/92)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/mitchell.cpp b/src/hbmame/drivers/mitchell.cpp
new file mode 100644
index 00000000000..bd488127a70
--- /dev/null
+++ b/src/hbmame/drivers/mitchell.cpp
@@ -0,0 +1,24 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/mitchell.cpp"
+
+ROM_START( mitcdemo )
+ ROM_REGION( 0xa0000, "maincpu", 0 )
+ ROM_LOAD( "md_04.bin", 0x50000, 0x08000, CRC(f0ed5c22) SHA1(b8e26a09fca279d627bd700c31a82ffc18483192) )
+ ROM_CONTINUE( 0x00000, 0x08000 )
+ ROM_LOAD_OPTIONAL( "pang_02.bin", 0x60000, 0x20000, CRC(3f15bb61) SHA1(4f74ee25f32a201482840158b4d4c7aca1cda684) )
+ ROM_LOAD_OPTIONAL( "pang_03.bin", 0x10000, 0x20000, CRC(0c8477ae) SHA1(a31a8c00407dfc3017d56e29fac6114b73248030) )
+
+ ROM_REGION( 0x100000, "gfx1", 0 )
+ ROM_LOAD( "md_09.bin", 0x00000, 0x20000, CRC(f76acc9a) SHA1(31004f441fc56efb692e2e52c4ecc44748185d0a) )
+ ROM_LOAD( "md_11.bin", 0x80000, 0x20000, CRC(48f92e6f) SHA1(6c51cccf5bcf7b3bfe6579a95516a850e99c9b76) )
+
+ ROM_REGION( 0x040000, "gfx2", 0 )
+ ROM_LOAD( "md10.bin", 0x00000, 0x20000, CRC(709a27b6) SHA1(b7e8d124ee207e75c420762d336a97f4cf4054f6) )
+ ROM_LOAD( "md9.bin", 0x20000, 0x20000, CRC(47de1ec7) SHA1(45bff13a6cdf58bc425fdc3cd2ae22d40d69a2c2) )
+
+ ROM_REGION( 0x80000, "oki", 0 )
+ ROM_LOAD_OPTIONAL( "bb1.bin", 0x00000, 0x20000, CRC(c52e5b8e) SHA1(933b954bfdd2d67e28b032ffabde192531249c1f) )
+ROM_END
+
+GAME( 1989, mitcdemo, 0, pang, pang, mitchell_state, pangb, ROT0, "Charles Doty", "Demo - Mitchell", MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/model2.cpp b/src/hbmame/drivers/model2.cpp
new file mode 100644
index 00000000000..3e7488fcf06
--- /dev/null
+++ b/src/hbmame/drivers/model2.cpp
@@ -0,0 +1,53 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/model2.cpp"
+
+ROM_START( srallyp )
+ ROM_REGION( 0x200000, "maincpu", 0 ) // i960 program
+ ROM_LOAD32_WORD( "srallyp.ic12", 0x000000, 0x080000, CRC(926632ab) SHA1(7a37813f3d59b8e6e68220aa3120460b1ce5b33d) )
+ ROM_LOAD32_WORD( "srallyp.ic13", 0x000002, 0x080000, CRC(c93b33f1) SHA1(8477a05e44c1c9ee5e99eaa9d31cd9905ebf8c26) )
+
+ ROM_REGION32_LE( 0x2400000, "user1", 0 ) // Data
+ ROM_LOAD32_WORD( "mpr-17746.10", 0x000000, 0x200000, CRC(8fe311f4) SHA1(f4ada8e5c906fc384bed1b96f09cdf313f89e825) )
+ ROM_LOAD32_WORD( "mpr-17747.11", 0x000002, 0x200000, CRC(543593fd) SHA1(5ba63a77e9fc70569af21d50b3171bc8ff4522b8) )
+ ROM_LOAD32_WORD( "mpr-17744.8", 0x400000, 0x200000, CRC(71fed098) SHA1(1d187cad375121a45348d640edd3cc7dce658d28) )
+ ROM_LOAD32_WORD( "mpr-17745.9", 0x400002, 0x200000, CRC(8ecca705) SHA1(ed2b3298aad6f4e52dc672a0168183e457564b43) )
+ ROM_LOAD32_WORD( "mpr-17884.6", 0x800000, 0x200000, CRC(4cfc95e1) SHA1(81d927b8c4f9d0c4c5e29d676b30f30f83751fdc) )
+ ROM_LOAD32_WORD( "mpr-17885.7", 0x800002, 0x200000, CRC(a08d2467) SHA1(9449ac8f8f9ce8d8e536b05a91e46841fed7f2d0) )
+
+ ROM_REGION( 0x800000, "tgp", 0 ) // TGP program? (COPRO socket)
+ ROM_LOAD32_WORD( "mpr-17754.28", 0x000000, 0x200000, CRC(81a84f67) SHA1(c0a9b690523a529e4015e9af10dc3fb2a1726f08) )
+ ROM_LOAD32_WORD( "mpr-17755.29", 0x000002, 0x200000, CRC(2a6e7da4) SHA1(e60803ae951489fe47d66731d15c32249ca547b4) )
+
+ ROM_REGION( 0x010000, "drivecpu", 0 ) // Drive I/O program
+ ROM_LOAD( "epr-17891.ic12", 0x000000, 0x010000, CRC(9a33b437) SHA1(3e8f210aa5159e78f640126cb5ce7f05f22560f2) )
+
+ ROM_REGION( 0x2000000, "user2", 0 ) // Models
+ ROM_LOAD32_WORD( "mpr-17748.16", 0x000000, 0x200000, CRC(3148a2b2) SHA1(283cc49bfb6c6381a7ead9273fd097dca5b981b6) )
+ ROM_LOAD32_WORD( "mpr-17750.20", 0x000002, 0x200000, CRC(232aec29) SHA1(4d470e71df61298282c356814e2d151fda323fb6) )
+ ROM_LOAD32_WORD( "mpr-17749.17", 0x400000, 0x200000, CRC(0838d184) SHA1(704175c8b29e4c989afcb7be42e7e0e096740eaf) )
+ ROM_LOAD32_WORD( "mpr-17751.21", 0x400002, 0x200000, CRC(ed87ac62) SHA1(601542149d33ca52a47536b4b0af47bf1fd87eb2) )
+
+ ROM_REGION( 0x1000000, "user3", 0 ) // Textures
+ ROM_LOAD32_WORD( "mpr-17753.25", 0x000000, 0x200000, CRC(6db0eb36) SHA1(dd5fd3c9592360d3e95623ac2491e6faabe9dbcb) )
+ ROM_LOAD32_WORD( "mpr-17752.24", 0x000002, 0x200000, CRC(d6aa86ce) SHA1(1d342f87d1af1e5438d1ae818b1b14268e765897) )
+
+ ROM_REGION( 0x20000, "cpu4", 0) // Communication program
+ ROM_LOAD( "epr-16726.bin", 0x000000, 0x020000, CRC(c179b8c7) SHA1(86d3e65c77fb53b1d380b629348f4ab5b3d39228) )
+
+ ROM_REGION( 0x100000, "audiocpu", 0 ) // Sound program
+ ROM_LOAD16_WORD_SWAP( "epr-17890a.30", 0x080000, 0x040000, CRC(5bac3fa1) SHA1(3635333d36463b6fab25560ed918e05138f964dc) )
+
+ ROM_REGION( 0x800000, "scsp", 0 ) // Samples
+ ROM_LOAD( "mpr-17756.31", 0x000000, 0x200000, CRC(7725f111) SHA1(1f1ee3f19a6bcf57bc5a1c7dd64ee83f8b81f084) )
+ ROM_LOAD( "mpr-17757.32", 0x200000, 0x200000, CRC(1616e649) SHA1(1d3a0e441d150ada0535a9d50e2f69dd4b99c584) )
+ ROM_LOAD( "mpr-17886.36", 0x400000, 0x200000, CRC(54a72923) SHA1(103c4838b27378c834c08d29d6fb6ba95e7f9d03) )
+ ROM_LOAD( "mpr-17887.37", 0x600000, 0x200000, CRC(38c31fdd) SHA1(a85f05160b060d9d4a431aaa73cfc03f24214fb9) )
+
+ MODEL2_CPU_BOARD
+ MODEL2A_VID_BOARD
+ROM_END
+
+
+
+GAME( 2000?, srallyp, srallyc, srallyc, srallyc, model2_state, srallyc, ROT0, "Kyle Hodgetts", "Sega Rally Pro Drivin'", 0 )
diff --git a/src/hbmame/drivers/monaco.cpp b/src/hbmame/drivers/monaco.cpp
new file mode 100644
index 00000000000..cbfcff1d19c
--- /dev/null
+++ b/src/hbmame/drivers/monaco.cpp
@@ -0,0 +1,2250 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+/*
+Monaco GP Simulator v0.1
+http://www.jps.net/camilty/monman.htm
+Phil Stroffolino
+
+To Do:
+- abstract and externalize in-game parameters (speeds,accel,timing)
+- fix distribution of computer car
+- computer cars should avoid rescue car lane when present
+- computer cars should move to center in bridge zone
+- player lives not hooked up
+- high score tracking
+- extended play colors
+
+General:
+ Score Increases as a function of the player's speed.
+ Speed of Terrain scrolling is independent.
+
+Computer Cars:
+ The bridge section is different from the others (besides all the cars going
+ faster after so many points(6K and 8K).
+
+Display Panel:
+ The cockpit model displays TIME (2 digit), top 5 scores (4 digits each),
+ your Score (4 digits), Players to Date (3 digits)(daily), and
+ Ranking (3 digits) (this is final score ranking, not position during the game).
+
+ The top 999 high scores are internally recorded in a RAM.
+ The player's ranking is updated only after gamplay is finished (during the
+ fanfare).
+
+Timed Play:
+ X000-X295 A-Smooth Zone
+ X295-X450 B-Slip Zone
+ X450-X795 A-Smooth Zone
+ X795-X000 C-Tunnel
+
+Extended Play:
+ X000-X095 A-Smooth Zone
+ X095-X150 D-Gravel Zone
+ X150-X295 A-Smooth Zone
+ X295-X475 B-Slip Zone
+ X475-X595 A-Smooth Zone
+ X595-X635 E-Bridge Zone
+ X635-X795 A-Smooth Zone
+ X795-X000 C-Tunnel Zone
+
+Oil Slicks (pool):
+ X185 (during zone A)
+ X685 (during zone A)
+ After 8000 points, two pools come out in succession
+ (the second about 20-30 points from the first).
+
+Rescue Car (firetruck)
+ The rescue car only appears during Extended play. Tolerance -50 (not+)
+ X000
+ X075
+ X125
+ X250
+ X500
+
+ The rescue car appears in a mid-right lane. It does not move side to side,
+ it just moves slowly up the screen until it goes off the screen.
+
+ In extended play, the rescue car was observed to come out AT LEAST ONCE
+ during each 1000 points cycle. I have observed the rescue car coming
+ out as much a 3 TIMES in one 1000 point cycle.
+ I could not find a pattern in the time or count interval between the
+ rescue cars. However, 72% were between 750 and 1250 point intervals
+ (most around 875) while the remaining 28% were 500 point intervals or
+ lower. Therfore, we can narrow down WHERE the rescue cars appear, but
+ IF it is going to appear seems to have some randomness to it.
+
+
+notes:
+ when the player first appears (game start, after a spinout, after
+ a crash), the player's car shows up on the extreme right of the
+ screen and is totally invulnerable (even if over water on the
+ bridge scene!). The road doesn't scroll at all until you give the
+ car some gas. Note that once you start moving, you can never
+ completely come to a stop.
+
+ Once you move to left onto the center part of the
+ road, normal collision behavior takes over. You earn no points
+ while in the invulnerable state. The player can remain in this
+ state forever during timed play (until time runs out). In extended
+ play, the player's car will explode after several seconds of driving.
+
+---------------------------------------------------------------------------
+
+Board 96598-P is an oscillator board that generates the game sounds.
+It is activated by outputs from Board Assy A (96577X).
+
+Board Assy's A (96577X) and B (96578X) are the main guts of the gameplay
+and contain the sprite roms.
+
+Board Assy A
+- accepts all of the game inputs
+- sends the signals for the sounds to the Oscillator board
+- outputs to the L.E.D. score display board
+- directly interacts with Board Assy B
+ Components:
+ Start Timer Control
+ Player Control (pedal, steering, shifter)
+ My Car light control, explosion, and pool (oil slick) skid
+ Other Car Control
+
+Board Assy B
+- outputs the video
+- outputs to the L.E.D. score display board
+- directly interacts with Board Assy A.
+ Components:
+ Display of Letter
+ Road Movement Horizontal
+ Road Movement Vertical (Right and Left)
+ Background (sprite) coloring
+ Road Object (tunnel, bridge, water) control
+ Signal Sync
+ Rescue Car, Player Car, Bridge--Video and Control
+
+ (On the second set, boards A and B have different part numbers
+ (97091X and 97092X) and two less roms. These boards were made
+ later then the first set. I have interchanged these boards with
+ each other, and they seem to be interchangable, the only
+ difference seems to be the rom size, which only 2 of the roms
+ utilize the full 1024 bytes (second set).)
+
+Oscillator Board 96598
+ROM ID IC#
+PRm-40 IC21 PRm-40 <both type 6331-1, 16 pin>
+ engine (constant; pitch varies with speed)
+ passing (two variations)
+ bonus (chimes)
+ fanfare
+ explosion
+ slip zone
+ siren (rescue car)
+*/
+
+/* The following changes were done by Robbbert on 2007-Dec-08:
+
+1. Add siren sound for ambulance
+2. Add slip sound for puddle
+3. Save and display high scores, score, number of games played, and ranking
+4. Play fanfare sound if high score exceeded
+5. Fix the gears so that each has its own max speed and acceleration rates
+6. Keep track of extra lives (er, cars).
+7. In extended play, you lose a life. When they are all gone, the game ends
+8. When game ends, all sounds are turned off, except Crash sound is allowed to finish, and fanfare can play.
+9. When you crash, you nearly stop, instead of continuing at full speed.
+10. Once you start moving, you cannot completely stop (as documented above)
+11. Sound volume adjustment confined to the machine driver.
+12. Volume adjusted so the sound is no longer grossly overdriven.
+13. Add the overlay file (it was always compiled but never used), and activated the LEDs.
+14. Add support for Mr.Do artwork.
+15. Add speedometer
+
+There is a bunch more things to be done
+
+1. Don't get points while not on the track
+2. Fall in the water if you don't line up for the bridge
+3. Show the bridge warning before you reach the bridge
+4. Different engine sounds depending on the speed
+5. Add sounds when passing other cars
+6. Plus some of what's listed above by the original author
+*/
+
+#include "emu.h"
+#include "cpu/z80/z80.h"
+#include "sound/samples.h"
+#include "screen.h"
+#include "speaker.h"
+#include "monaco.lh"
+
+
+#define kRESCUE_CAR_SPEED (1.75)
+#define SCREEN_WIDTH 384 /* 12 car lengths */
+#define SCREEN_HEIGHT 240 /* 15 car widths */
+#define BRIDGE_YPOS ((SCREEN_HEIGHT-16)/2-8)
+#define PAGE_SIZE (14*32)
+#define NUM_COMPUTER_CARS 4
+
+/* red */
+#define TEXT_GAMEOVER 2
+#define TEXT_EXTENDEDPLAY 0
+
+/* blue */
+#define TEXT_DEPOSITCOIN 3
+#define TEXT_START 1
+
+enum
+{
+ GFX_UNKNOWN,GFX_EXPLOSION,GFX_PLAYER,GFX_SHAKE,GFX_SPINOUT1,GFX_SPINOUT2,
+ GFX_SPRAY,GFX_COMPUTER,GFX_TEXT,
+ GFX_TREE,GFX_GRASS,GFX_SHRUB,GFX_HOUSE,
+ GFX_TUNNEL,GFX_POOL,GFX_BELT,
+ GFX_RESCUE_CAR,GFX_SIGNAL,GFX_DUMMY,
+ GFX_BRIDGE1,GFX_BRIDGE2
+};
+
+enum
+{
+ CYAN_PEN = 0x91,
+ BLACK_PEN = 0x94,
+ YELLOW_PEN = 0x95,
+ GREY_PEN = 0x96
+};
+
+enum
+{
+ RESCUE_CLUT = 0x50,
+ HOUSE_CLUT = 0x60,
+ WATER_CLUT = 0x70,
+ PLAYER_CLUT = 0x80,
+ TREE_CLUT = 0x84,
+ SHRUB_CLUT = 0x88,
+ GRASS_CLUT = 0x8c,
+ CYAN_CLUT = 0x90,
+ RED_CLUT = 0x92,
+ YELLOW_CLUT = 0x94
+};
+
+enum
+{
+ GREEN_CAR, YELLOW_CAR, /* slow */
+ CYAN_CAR, PURPLE_CAR, /* medium */
+ BLUE_CAR, /* fast */
+ NUM_COMPUTER_CAR_TYPES
+};
+
+enum
+{
+ PAGE_SMOOTH,
+ PAGE_SLIP,
+ PAGE_TUNNEL,
+ PAGE_GRAVEL,
+ PAGE_BRIDGE
+};
+
+enum
+{
+ COLLISION_CRASH,
+ COLLISION_POOL
+};
+
+enum monaco_mode
+{
+ MODE_ATTRACT,
+ /* cars zoom up the screen (max 2 on the screen at a time)
+ * player's car is not visible
+ * "GAME OVER" is centered near the middle-top
+ * "DEPOSIT COIN" is centered near the bottom
+ */
+ MODE_START,
+ MODE_INVULNERABLE,
+ MODE_NORMAL, /* driving */
+ MODE_GRAVEL,
+ MODE_SLIP1, /* skidding */
+ MODE_SLIP2,
+ MODE_SPINOUT1,
+ MODE_SPINOUT2,
+ MODE_SPINOUT3,
+ MODE_SPINOUT4,
+ MODE_CRASH1,
+ MODE_CRASH2,
+ MODE_CRASH3,
+ MODE_CRASH4
+};
+
+class monaco_state : public driver_device
+{
+public:
+ monaco_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag)
+ , m_samples(*this, "samples")
+ , m_p_ram(*this, "ram")
+ , m_gfxdecode(*this, "gfxdecode")
+ , m_palette(*this, "palette")
+ { }
+
+ DECLARE_READ8_MEMBER(monaco_ram_r);
+ DECLARE_WRITE8_MEMBER(monaco_ram_w);
+ DECLARE_DRIVER_INIT(monaco);
+ INTERRUPT_GEN_MEMBER(monaco_interrupt);
+ DECLARE_MACHINE_RESET(monaco);
+ DECLARE_VIDEO_START(monaco);
+ uint32_t screen_update_monaco(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+private:
+ struct monaco_gfx *m_monaco_gfx;
+ enum monaco_mode m_monaco_mode;
+ uint32_t monaco_word_r (uint16_t offset);
+ void monaco_word_w (uint16_t offset, uint32_t data);
+ int get_player_xpos( void );
+ void handle_collision( int sx, int sy, int width, int height, int type );
+ int read_coin();
+ void update_player_speed();
+ double get_player_delta( void );
+ void HandlePlayer();
+ void update_computer_cars( void );
+ void HandleRescue( void );
+ void HandlePool( void );
+ void GameOver();
+ void HandleEvents();
+ void draw_computer( bitmap_ind16 &bitmap, const rectangle clip);
+ void draw_pool( bitmap_ind16 &bitmap, const rectangle clip);
+ void draw_player( bitmap_ind16 &bitmap, const rectangle clip);
+ void draw_strip( bitmap_ind16 &bitmap, int sy, int x0, int x1, int xpos, int pen);
+ void DrawSmoothZone( bitmap_ind16 &bitmap, const rectangle clip, int xpos);
+ void DrawSlipZone( bitmap_ind16 &bitmap, const rectangle clip, int xpos);
+ void DrawGravelZone( bitmap_ind16 &bitmap, const rectangle clip, int xpos);
+ void DrawBridgeZone( bitmap_ind16 &bitmap, const rectangle clip, int xpos);
+ void DrawTunnelZone( bitmap_ind16 &bitmap, int xpos);
+ void DrawTunnelWall( bitmap_ind16 &bitmap, const rectangle clip, int xpos);
+ void draw_light_helper( bitmap_ind16 &bitmap, int xpos);
+ void draw_wall( bitmap_ind16 &bitmap, const rectangle clip);
+ void draw_light( bitmap_ind16 &bitmap);
+ void draw_page( bitmap_ind16 &bitmap, const rectangle clip, int which, int xpos);
+ void draw_background( bitmap_ind16 &bitmap, const rectangle clip);
+ void draw_text( bitmap_ind16 &bitmap, const rectangle clip);
+ void draw_leds( bitmap_ind16 &bitmap);
+ void draw_signal( bitmap_ind16 &bitmap);
+ int m_anim_timer;
+
+ /* LED display */
+ uint16_t m_plays;
+ uint16_t m_rank;
+ uint16_t m_rank_display; // shows 0 until game ends
+ uint32_t m_score;
+ uint32_t m_bonus_score;
+ uint8_t m_in_ext_play;
+ uint8_t m_gear;
+ uint16_t m_time;
+ uint8_t m_lives;
+ int m_bShaking;
+ double m_speed;
+ double m_player_ypos;
+ double m_computer_speed;
+ double m_xpos[NUM_COMPUTER_CARS];
+ double m_ypos[NUM_COMPUTER_CARS];
+ double m_dy[NUM_COMPUTER_CARS];
+ double m_rescue_xpos;
+ double m_pool_xpos;
+ double m_scroll;
+ double m_distance;
+ int m_ticks;
+ int m_page_current;
+ int m_page_next;
+ int m_page_next2;
+
+ double m_track_bottom_inset;
+ double m_track_top_inset;
+ double m_track_bottom_delta;
+ double m_track_top_delta;
+ int m_bSignalVisible;
+ int m_left_text;
+ int m_right_text;
+ int m_bExtendedPlay;
+ int m_left_page, m_right_page;
+ int m_top_inset, m_bottom_inset;
+ int m_player_x, m_player_y, m_player_tile, m_player_splash;
+ int m_pool_x, m_pool_y;
+ int m_rescue_x, m_rescue_y, m_rescue_tile;
+ int m_x[NUM_COMPUTER_CARS];
+ int m_y[NUM_COMPUTER_CARS];
+ int m_tile[NUM_COMPUTER_CARS];
+ int m_color[NUM_COMPUTER_CARS];
+ uint32_t m_led_high1;
+ uint32_t m_led_high2;
+ uint32_t m_led_high3;
+ uint32_t m_led_high4;
+ uint32_t m_led_high5;
+ uint32_t m_led_score;
+ uint16_t m_led_time;
+ uint16_t m_led_rank;
+ uint16_t m_led_plays;
+ uint16_t m_led_lives;
+ uint16_t m_led_gear;
+ uint16_t m_led_speed;
+ required_device<samples_device> m_samples;
+ required_shared_ptr<uint8_t> m_p_ram;
+ required_device<gfxdecode_device> m_gfxdecode;
+ required_device<palette_device> m_palette;
+};
+
+
+enum
+{
+ eSAMPLE_PASS1,
+ eSAMPLE_PASS2,
+ eSAMPLE_CRASH,
+ eSAMPLE_ENGINE,
+ eSAMPLE_EXTEND,
+ eSAMPLE_FANFARE,
+ eSAMPLE_SIREN,
+ eSAMPLE_SLIP,
+// eSAMPLE_GRAVEL
+};
+
+#define DOWN 0x01
+#define UP 0x02
+#define RIGHT 0x04
+#define LEFT 0x08
+#define COIN 0x10
+#define ACCEL1 0x20
+#define ACCEL2 0x40
+#define ACCEL3 0x80
+
+#define IS_PRESSED(key) (ioport("IN0")->read() & key)
+
+#define EXT_SCORE (2000<<8) // number of points needed to get extended play, 2000
+#define FIRST_TIME (90<<8) // number of seconds when coin inserted, 90
+
+
+READ8_MEMBER( monaco_state::monaco_ram_r )
+{
+ return m_p_ram[offset];
+}
+
+WRITE8_MEMBER( monaco_state::monaco_ram_w )
+{
+ m_p_ram[offset] = data;
+}
+
+uint32_t monaco_state::monaco_word_r (uint16_t offset)
+{
+ address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM);
+ uint8_t byte0 = monaco_ram_r (space, (offset << 2));
+ uint8_t byte1 = monaco_ram_r (space, (offset << 2) + 1);
+ uint8_t byte2 = monaco_ram_r (space, (offset << 2) + 2);
+ uint8_t byte3 = monaco_ram_r (space, (offset << 2) + 3);
+ return (byte3<<24) | (byte2<<16) | (byte1<<8) | byte0;
+}
+
+void monaco_state::monaco_word_w (uint16_t offset, uint32_t data)
+{
+ address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM);
+ uint8_t byte0 = data & 0xff;
+ uint8_t byte1 = (data & 0xff00) >> 8;
+ uint8_t byte2 = (data & 0xff0000) >> 16;
+ uint8_t byte3 = (data & 0xff000000) >> 24;
+ monaco_ram_w (space, (offset << 2), byte0);
+ monaco_ram_w (space, (offset << 2) + 1, byte1);
+ monaco_ram_w (space, (offset << 2) + 2, byte2);
+ monaco_ram_w (space, (offset << 2) + 3, byte3);
+}
+
+int monaco_state::get_player_xpos( void )
+{
+ return SCREEN_WIDTH-32-m_speed;
+}
+
+void monaco_state::handle_collision( int sx, int sy, int width, int height, int type )
+{
+ int px, py;
+
+ if( m_monaco_mode == MODE_NORMAL )
+ {
+ px = get_player_xpos();
+ py = m_player_ypos + 8;
+
+ if( px < sx + width &&
+ sx < px + 32 &&
+ py < sy + height &&
+ sy < py + 16 )
+ {
+ m_samples->start( 3, eSAMPLE_CRASH );
+ m_anim_timer = 0;
+ m_speed = 15; /* you almost stop when you crash */
+ if( type == COLLISION_CRASH )
+ {
+ if( !m_in_ext_play )
+ {
+ m_monaco_mode = MODE_SPINOUT1;
+ }
+ else
+ {
+ m_monaco_mode = MODE_CRASH1;
+ m_lives--;
+ }
+ }
+ else if( type == COLLISION_POOL )
+ {
+ m_pool_xpos = 512;
+ m_monaco_mode = MODE_SLIP1;
+ }
+ }
+ }
+}
+
+/*****************************************************************/
+
+int monaco_state::read_coin()
+{
+ static int old_trigger;
+ if( IS_PRESSED(COIN) )
+ {
+ old_trigger = 1;
+ }
+ else {
+ if( old_trigger ){
+ old_trigger = 0;
+ return 1;
+ }
+ old_trigger = 0;
+ }
+ return 0;
+}
+
+void monaco_state::update_player_speed()
+{
+ double desired_speed, min_speed, max_speed = 44;
+ int accel = 0;
+
+ if( IS_PRESSED(ACCEL1) ) accel = 1;
+ if( IS_PRESSED(ACCEL2) ) accel = 2;
+ if( IS_PRESSED(ACCEL3) ) accel = 3;
+
+ /* gearstick is a mechanical device which can be moved anytime */
+ if( IS_PRESSED(UP) )
+ m_gear = 1;
+ else
+ if( IS_PRESSED(DOWN) )
+ m_gear = 0;
+
+ if (m_monaco_mode == MODE_ATTRACT)
+ {
+ m_speed = 0;
+ m_in_ext_play = 0;
+ return;
+ }
+ else
+ if( m_monaco_mode == MODE_START )
+ {
+ if( accel ) m_monaco_mode = MODE_INVULNERABLE;
+ else return;
+ }
+
+ if (m_speed)
+ min_speed = m_gear?0.5:0.25;
+ else
+ min_speed = 0;
+
+ if (m_gear)
+ {
+ max_speed = 125;
+ if (m_score > 6000<<8) max_speed = 152;
+ if (m_score > 8000<<8) max_speed = 180;
+ }
+
+ /* min: 0; max: 6 */
+ /* 30 is derived by absolute maximum speed (above) divided by 6 */
+ desired_speed = 30*(accel?(m_gear*3+accel):min_speed);
+
+ /* 1st gear */
+ if (!m_gear)
+ {
+ if (desired_speed > m_speed) m_speed += 1;
+
+ if (desired_speed < m_speed) m_speed -= 4;
+ }
+ else
+ {
+ if (desired_speed > m_speed) m_speed += 0.4;
+
+ if (desired_speed < m_speed) m_speed -= 2;
+ }
+
+ if (m_speed < min_speed) m_speed = min_speed;
+
+ if (m_speed > max_speed) m_speed = max_speed;
+}
+
+double monaco_state::get_player_delta( void )
+{
+ if( m_monaco_mode == MODE_ATTRACT || m_monaco_mode == MODE_START ) return 0;
+ return m_speed/16.0;
+}
+
+void monaco_state::HandlePlayer()
+{
+ double dy = 0;
+ int sy = m_player_ypos;
+ update_player_speed();
+ if( IS_PRESSED(RIGHT) && sy>0 ) dy-=1.0;
+ if( IS_PRESSED(LEFT) && sy<SCREEN_HEIGHT-32 ) dy+=1.0;
+ if( m_page_current == PAGE_SLIP ) dy = dy*0.5;
+ m_player_ypos += dy;
+}
+
+/*****************************************************************/
+
+void monaco_state::update_computer_cars( void )
+{
+ int i;
+ int delta = get_player_delta();
+ for( i=0; i<NUM_COMPUTER_CARS; i++ )
+ {
+ int top_inset = m_track_top_inset;
+ int bottom_inset = m_track_bottom_inset;
+ int sx,sy;
+ m_xpos[i] += delta-m_computer_speed;
+ if( m_xpos[i] < -256 )
+ m_xpos[i] += SCREEN_WIDTH*2;
+ else
+ if( m_xpos[i] > SCREEN_WIDTH + 256 )
+ m_xpos[i] -= SCREEN_WIDTH*2;
+
+ m_ypos[i] += m_dy[i];
+
+ sx = m_xpos[i];
+ sy = m_ypos[i];
+
+ if( ( m_dy[i]<0 && sy<top_inset ) ||
+ ( m_dy[i]>0 && sy+16>SCREEN_HEIGHT-bottom_inset ) )
+ {
+ m_dy[i] *= -1;
+ }
+
+ handle_collision( sx-32, sy, 32, 16, COLLISION_CRASH );
+ }
+}
+
+#define DELTA_TIME (256.0/60)
+
+void monaco_state::HandleRescue( void )
+{
+ if( m_rescue_xpos > -64 )
+ {
+ m_rescue_xpos -= kRESCUE_CAR_SPEED;
+ handle_collision(
+ m_rescue_xpos,
+ (SCREEN_HEIGHT-32)/2,
+ 64,
+ 32,
+ COLLISION_CRASH );
+ }
+}
+
+void monaco_state::HandlePool( void )
+{
+ if( m_pool_xpos < SCREEN_WIDTH )
+ {
+ m_pool_xpos += get_player_delta();
+ handle_collision(
+ m_pool_xpos,
+ (SCREEN_HEIGHT-32)/2,
+ 32,
+ 32,
+ COLLISION_POOL );
+ }
+}
+
+void monaco_state::GameOver()
+{
+ m_monaco_mode = MODE_ATTRACT; /* this causes speed to be zero */
+ m_rank_display = m_rank; /* show rank on led display */
+ monaco_word_w (m_rank, m_score); /* save players score in RAM */
+ m_led_high1 = monaco_word_r(1);
+ m_led_high2 = monaco_word_r(2);
+ m_led_high3 = monaco_word_r(3); /* show the 5 highest scores on led display */
+ m_led_high4 = monaco_word_r(4);
+ m_led_high5 = monaco_word_r(5);
+ m_samples->stop(0); /* turn off engine sounds */
+ m_samples->stop(1);
+ m_samples->stop(2);
+}
+
+void monaco_state::HandleEvents()
+{
+ int score = m_score>>8;
+ int event = (score)%1000;
+
+ if (m_monaco_mode == MODE_ATTRACT) return;
+
+ if( m_page_current == PAGE_SMOOTH &&
+ (score == 8000 || score == 8030 || event == 185 || event == 685) )
+ {
+ m_pool_xpos = -32<<8;
+ }
+
+ if( m_in_ext_play )
+ {
+ /* Extended Play */
+ if( m_rescue_xpos<= -64 &&
+ (machine().rand()&3) == 0 &&
+ (event == 0 || event == 75 || event == 125 || event == 250 || event == 500) )
+ {
+ m_rescue_xpos = SCREEN_WIDTH;
+ m_samples->start( 1, eSAMPLE_SIREN );
+ }
+
+ if( event == 0 ) m_page_next2 = PAGE_SMOOTH;
+ else if( event == 95 ) m_page_next2 = PAGE_GRAVEL;
+ else if( event == 150 ) m_page_next2 = PAGE_SMOOTH;
+ else if( event == 295 ) m_page_next2 = PAGE_SLIP;
+ else if( event == 475 ) m_page_next2 = PAGE_SMOOTH;
+ else if( event == 595 ) m_page_next2 = PAGE_BRIDGE;
+ else if( event == 635 ) m_page_next2 = PAGE_SMOOTH;
+ else if( event == 795 ) m_page_next2 = PAGE_TUNNEL;
+ }
+ else
+ {
+ /* Timed Play */
+ if( event == 0 ) m_page_next2 = PAGE_SMOOTH;
+ else if( event == 295 ) m_page_next2 = PAGE_SLIP;
+ else if( event == 450 ) m_page_next2 = PAGE_SMOOTH;
+ else if( event == 795 ) m_page_next2 = PAGE_TUNNEL;
+ }
+
+ if ((!m_time) && (!m_in_ext_play))
+ {
+ if (m_score > EXT_SCORE)
+ {
+ /* Turn On Extended Play */
+ m_in_ext_play = 1;
+// m_samples->start( 2, eSAMPLE_EXTEND );
+ }
+ else
+ m_lives = 0;
+ }
+
+ if ((!m_lives) && (m_monaco_mode != MODE_ATTRACT))
+ {
+ /* Game Over */
+ if (m_rank == 1) m_samples->start (4, eSAMPLE_FANFARE);
+
+ GameOver();
+ }
+}
+
+INTERRUPT_GEN_MEMBER( monaco_state::monaco_interrupt )
+{
+ int i;
+ double delta = get_player_delta();
+
+ HandleRescue();
+ HandlePool();
+ HandlePlayer();
+ /* increase score */
+ m_score += m_speed;
+ /* cap the score at 9999 */
+ if ( m_score > (9999<<8 | 255)) m_score = (9999<<8 | 255);
+
+ /* Bonus car at 2000, 4000, 6000, 8000 points */
+
+ if ( m_score < 9000<<8) m_bonus_score += m_speed;
+
+ if ( m_bonus_score > 2000<<8 )
+ {
+ m_lives++;
+ m_bonus_score -= 2000<<8;
+ m_samples->start( 2, eSAMPLE_EXTEND );
+ }
+ /* decrease time remaining */
+ if( m_time>0 )
+ {
+ if( m_monaco_mode != MODE_ATTRACT && m_monaco_mode != MODE_START )
+ {
+ if( m_time<DELTA_TIME ) m_time = 0;
+ else m_time -= DELTA_TIME;
+ }
+ }
+ /* adjust ranking if a score is passed */
+ if (m_rank > 1)
+ {
+ if (m_score > monaco_word_r (m_rank - 1))
+ {
+ monaco_word_w ( m_rank , monaco_word_r (m_rank - 1));
+ m_rank--;
+ }
+ }
+
+ HandleEvents();
+
+ switch( m_monaco_mode )
+ {
+ case MODE_ATTRACT:
+ m_pool_xpos = SCREEN_WIDTH;
+ m_rescue_xpos = -64;
+
+ if( read_coin() )
+ {
+ m_samples->start( 0, eSAMPLE_ENGINE, 1/*loop*/ );
+ m_score = 0;
+ m_bonus_score = 0;
+ m_rank_display = 0xffff; /* rank is blank till game ends */
+ m_lives = 1;
+ if (m_plays < 999) m_plays++;
+ m_rank = m_plays;
+ m_time = FIRST_TIME;
+ m_monaco_mode = MODE_START;
+ m_anim_timer = 0;
+ m_player_ypos = 0;//32;
+ }
+ default:
+ break;
+ }
+
+ m_scroll += delta;
+ if( m_scroll>=14*32 )
+ {
+ m_scroll -= 14*32;
+ m_page_current = m_page_next;
+ m_page_next = m_page_next2;
+ }
+
+ m_ticks++; /* for animation */
+
+ if( m_page_next != PAGE_TUNNEL && m_page_current != PAGE_TUNNEL &&
+ m_page_next != PAGE_BRIDGE && m_page_current != PAGE_BRIDGE )
+ {
+ /* delta: player speed */
+ m_track_bottom_inset += m_track_bottom_delta*delta/8;
+ m_track_top_inset += m_track_top_delta*delta/8;
+
+ if( m_track_bottom_inset <= 32 )
+ {
+ m_track_bottom_delta = 1;
+ }
+ else if( m_track_bottom_inset >= 96 )
+ {
+ m_track_bottom_delta = -1;
+ }
+
+ if( m_track_top_inset <= 32 )
+ {
+ m_track_top_delta = 1;
+ }
+ else if( m_track_top_inset >= 64 )
+ {
+ m_track_top_delta = -1;
+ }
+ }
+
+ switch( m_monaco_mode )
+ {
+ case MODE_ATTRACT:
+ break;
+ case MODE_START:
+ if( m_speed )
+ {
+ m_monaco_mode = MODE_INVULNERABLE;
+ m_anim_timer = 0;
+ }
+ break;
+
+ case MODE_INVULNERABLE:
+ m_anim_timer++;
+ if( m_anim_timer > 60*2 )
+ {
+ m_monaco_mode = MODE_NORMAL;
+ m_anim_timer = 0;
+ }
+ break;
+
+ case MODE_NORMAL:
+ break;
+
+ case MODE_GRAVEL:
+// m_samples->start (1, eSAMPLE_GRAVEL); There is no code to make this mode occur
+ break;
+
+ case MODE_SLIP1:
+ case MODE_SLIP2:
+ m_anim_timer++;
+ if( m_anim_timer>16 )
+ {
+ m_anim_timer = 0;
+ if( m_monaco_mode!=MODE_SLIP2 )
+ {
+ m_monaco_mode = MODE_SLIP2;
+ }
+ else
+ {
+ m_monaco_mode = MODE_NORMAL;
+ }
+ }
+ m_samples->start( 1, eSAMPLE_SLIP );
+ break;
+
+ case MODE_SPINOUT1:
+ case MODE_SPINOUT2:
+ case MODE_SPINOUT3:
+ case MODE_SPINOUT4:
+ if( m_player_ypos > 0 )
+ {
+ uint8_t temp = (m_anim_timer/2)&3;
+ if (temp == 0) m_monaco_mode = MODE_SPINOUT1;
+ else if (temp == 1) m_monaco_mode = MODE_SPINOUT2;
+ else if (temp == 2) m_monaco_mode = MODE_SPINOUT3;
+ else if (temp == 3) m_monaco_mode = MODE_SPINOUT4;
+ m_anim_timer++;
+ m_player_ypos-=2.0;
+ }
+ else
+ {
+ m_player_ypos = 0;
+ m_monaco_mode = MODE_INVULNERABLE;
+ m_anim_timer = 0;
+ }
+ if( m_speed > 40 )
+ {
+ m_speed-= 1.0;
+ }
+ break;
+
+ case MODE_CRASH1:
+ case MODE_CRASH2:
+ case MODE_CRASH3:
+ case MODE_CRASH4:
+ m_anim_timer++;
+ if( m_anim_timer>8 )
+ {
+ m_anim_timer = 0;
+ if( m_monaco_mode == MODE_CRASH1 ) m_monaco_mode = MODE_CRASH2;
+ else
+ if( m_monaco_mode == MODE_CRASH2 ) m_monaco_mode = MODE_CRASH3;
+ else
+ if( m_monaco_mode == MODE_CRASH3 ) m_monaco_mode = MODE_CRASH4;
+ else
+ {
+ m_monaco_mode = MODE_INVULNERABLE;
+ m_player_ypos = 0;
+ }
+ }
+ break;
+ default:
+ break;
+ }
+
+ if( m_monaco_mode == MODE_NORMAL )
+ {
+ if( m_player_ypos+16 > m_track_top_inset+8 &&
+ m_player_ypos+16 < SCREEN_HEIGHT - (m_track_bottom_inset+8) )
+ {
+ m_bShaking = 0;
+ }
+ else if( m_player_ypos+16 > m_track_top_inset+8 - 16 &&
+ m_player_ypos+16 < SCREEN_HEIGHT - (m_track_bottom_inset+8 - 16) )
+ {
+ /* brush roadside */
+ m_bShaking = 1;
+ }
+ else
+ {
+ /* crash wall */
+ m_monaco_mode = MODE_SPINOUT1;
+ m_anim_timer = 0;
+ m_bShaking = 1;
+ }
+ }
+ else
+ {
+ m_bShaking = 0;
+ }
+
+ update_computer_cars();
+
+ for( i=0; i<NUM_COMPUTER_CARS; i++ )
+ {
+ m_x[i] = m_xpos[i] - 32;
+ m_y[i] = m_ypos[i];
+ m_tile[i] = (m_ticks&2)>>1;
+ m_color[i] = i; /* hack */
+ }
+ m_rescue_x = m_rescue_xpos;
+ m_rescue_y = BRIDGE_YPOS;
+ m_rescue_tile = (m_ticks&2)>>1;
+ m_pool_x = m_pool_xpos;
+ m_pool_y = (SCREEN_HEIGHT-32)/2;
+ m_top_inset = m_track_top_inset;
+ m_bottom_inset = m_track_bottom_inset;
+ m_bSignalVisible = (m_page_next == PAGE_BRIDGE || m_page_next == PAGE_BRIDGE );
+ m_led_score = m_score;
+ m_led_gear = m_gear;
+ m_led_lives = m_lives;
+ m_led_time = m_time;
+ m_led_rank = m_rank_display;
+ // m_led_rank = m_rank; /* test to display real-time ranking */
+ m_led_plays = m_plays;
+ m_led_speed = m_speed;
+ m_right_page = m_page_current;
+ m_left_page = m_page_next;
+ m_left_text = -1;
+ m_right_text = -1;
+
+ /* we stretch the text so that it is proportioned correctly
+ ** compared to the rest of the in-game graphics
+ */
+
+ switch( m_monaco_mode )
+ {
+ case MODE_ATTRACT:
+ m_left_text = TEXT_GAMEOVER;
+ m_right_text = TEXT_DEPOSITCOIN;
+ break;
+
+ case MODE_START:
+ m_right_text = TEXT_START;
+ break;
+
+ default:
+ break;
+ }
+
+ if (m_in_ext_play) m_left_text = TEXT_EXTENDEDPLAY;
+
+ m_player_x = get_player_xpos();
+ m_player_y = m_player_ypos;
+ m_player_tile = -1;
+ m_player_splash = -1;
+ switch( m_monaco_mode )
+ {
+ case MODE_ATTRACT:
+ break;
+
+ case MODE_SLIP1:
+ m_player_splash = 0;
+ m_player_tile = (m_ticks&2)>>1;
+ break;
+
+ case MODE_SLIP2:
+ m_player_splash = 1;
+ m_player_tile = (m_ticks&2)>>1;
+ break;
+
+ case MODE_SPINOUT1:
+ m_player_tile = 2;
+ break;
+
+ case MODE_SPINOUT2:
+ m_player_tile = 3;
+ break;
+
+ case MODE_SPINOUT3:
+ m_player_tile = 4;
+ break;
+ case MODE_SPINOUT4:
+ m_player_tile = 5;
+ break;
+
+ case MODE_CRASH1:
+ case MODE_CRASH2:
+ case MODE_CRASH3:
+ case MODE_CRASH4:
+ m_player_tile = m_monaco_mode-MODE_CRASH1 + 6;
+ break;
+
+ default:
+ if( m_bShaking )
+ {
+ m_player_tile = 10+((m_ticks&4)>>2);
+ }
+ else
+ {
+ m_player_tile = (m_ticks&2)>>1;
+ }
+ break;
+ }
+
+ return;
+}
+
+/*********************************************/
+
+static ADDRESS_MAP_START( monaco_map, AS_PROGRAM, 8, monaco_state )/* fake */
+ AM_RANGE(0x0000, 0xefff) AM_ROM
+ AM_RANGE(0xf000, 0xffff) AM_READWRITE(monaco_ram_r,monaco_ram_w) AM_SHARE("ram") /* scores need 4000 bytes */
+ADDRESS_MAP_END
+
+static INPUT_PORTS_START( monaco )
+ PORT_START("IN0") /* fake */
+ PORT_BIT( DOWN, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY
+ PORT_BIT( UP, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY
+ PORT_BIT( RIGHT, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY
+ PORT_BIT( LEFT, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY
+ PORT_BIT( COIN, IP_ACTIVE_HIGH, IPT_COIN1 )
+ PORT_BIT( ACCEL1, IP_ACTIVE_HIGH, IPT_BUTTON1 )
+ PORT_BIT( ACCEL2, IP_ACTIVE_HIGH, IPT_BUTTON2 )
+ PORT_BIT( ACCEL3, IP_ACTIVE_HIGH, IPT_BUTTON3 )
+INPUT_PORTS_END
+
+/***************************************************************************/
+
+static gfx_layout tree_layout =
+{
+ 32,32,
+ 1, /* number of characters */
+ 2, /* number of bitplanes */
+ { 0,4 },
+ {
+ 0x003,0x002,0x001,0x000,0x103,0x102,0x101,0x100,
+ 0x203,0x202,0x201,0x200,0x303,0x302,0x301,0x300,
+ 0x403,0x402,0x401,0x400,0x503,0x502,0x501,0x500,
+ 0x603,0x602,0x601,0x600,0x703,0x702,0x701,0x700
+ },
+ {
+ 0x00,0x08,0x10,0x18,0x20,0x28,0x30,0x38,
+ 0x40,0x48,0x50,0x58,0x60,0x68,0x70,0x78,
+ 0x80,0x88,0x90,0x98,0xa0,0xa8,0xb0,0xb8,
+ 0xc0,0xc8,0xd0,0xd8,0xe0,0xe8,0xf0,0xf8
+ },
+ 0
+};
+
+static gfx_layout pool_layout =
+{
+ 32,32,
+ 1, /* number of characters */
+ 1, /* number of bitplanes */
+ { 0 },
+ {
+ 0x003,0x002,0x001,0x000,0x103,0x102,0x101,0x100,
+ 0x203,0x202,0x201,0x200,0x303,0x302,0x301,0x300,
+ 0x403,0x402,0x401,0x400,0x503,0x502,0x501,0x500,
+ 0x603,0x602,0x601,0x600,0x703,0x702,0x701,0x700
+ },
+ {
+ 0x00,0x08,0x10,0x18,0x20,0x28,0x30,0x38,
+ 0x40,0x48,0x50,0x58,0x60,0x68,0x70,0x78,
+ 0x80,0x88,0x90,0x98,0xa0,0xa8,0xb0,0xb8,
+ 0xc0,0xc8,0xd0,0xd8,0xe0,0xe8,0xf0,0xf8
+ },
+ 4
+};
+
+static gfx_layout player_layout =
+{
+ 32,32,
+ 2, /* number of characters */
+ 2, /* number of bitplanes */
+ { 0,4 },
+ {
+ 0x003,0x002,0x001,0x000,0x103,0x102,0x101,0x100,
+ 0x203,0x202,0x201,0x200,0x303,0x302,0x301,0x300,
+ 0x403,0x402,0x401,0x400,0x503,0x502,0x501,0x500,
+ 0x603,0x602,0x601,0x600,0x703,0x702,0x701,0x700
+ },
+ {
+ 0x80,0x88,0x90,0x98,0xa0,0xa8,0xb0,0xb8,
+ 0xc0,0xc8,0xd0,0xd8,0xe0,0xe8,0xf0,0xf8,
+ 0x00,0x08,0x10,0x18,0x20,0x28,0x30,0x38,
+ 0x40,0x48,0x50,0x58,0x60,0x68,0x70,0x78
+ },
+ 0x800
+};
+
+static gfx_layout text_layout =
+{
+ 16,64,
+ 4, /* number of characters */
+ 1, /* number of bitplanes */
+ { 0 },
+ {
+ 0x007,0x006,0x005,0x004,0x003,0x002,0x001,0x000,
+ 0x207,0x206,0x205,0x204,0x203,0x202,0x201,0x200,
+ },
+ {
+ 0x100,0x108,0x110,0x118,0x120,0x128,0x130,0x138,
+ 0x140,0x148,0x150,0x158,0x160,0x168,0x170,0x178,
+ 0x180,0x188,0x190,0x198,0x1a0,0x1a8,0x1b0,0x1b8,
+ 0x1c0,0x1c8,0x1d0,0x1d8,0x1e0,0x1e8,0x1f0,0x1f8,
+ 0x000,0x008,0x010,0x018,0x020,0x028,0x030,0x038,
+ 0x040,0x048,0x050,0x058,0x060,0x068,0x070,0x078,
+ 0x080,0x088,0x090,0x098,0x0a0,0x0a8,0x0b0,0x0b8,
+ 0x0c0,0x0c8,0x0d0,0x0d8,0x0e0,0x0e8,0x0f0,0x0f8,
+ },
+ 0x400
+};
+
+static gfx_layout house_layout =
+{
+ 32,32,
+ 1, /* number of characters */
+ 4, /* number of bitplanes */
+ { 0,2,4,6 },
+ {
+ 0x001,0x000,0x101,0x100,0x201,0x200,0x301,0x300,
+ 0x401,0x400,0x501,0x500,0x601,0x600,0x701,0x700,
+ 0x801,0x800,0x901,0x900,0xa01,0xa00,0xb01,0xb00,
+ 0xc01,0xc00,0xd01,0xd00,0xe01,0xe00,0xf01,0xf00
+ },
+ {
+ 0x00,0x08,0x10,0x18,0x20,0x28,0x30,0x38,
+ 0x40,0x48,0x50,0x58,0x60,0x68,0x70,0x78,
+ 0x80,0x88,0x90,0x98,0xa0,0xa8,0xb0,0xb8,
+ 0xc0,0xc8,0xd0,0xd8,0xe0,0xe8,0xf0,0xf8
+ },
+ 4
+};
+
+static gfx_layout signal_layout =
+{
+ 32,32,
+ 1, /* number of characters */
+ 1, /* number of bitplanes */
+ { 0 },
+ {
+ 0x001,0x000,0x101,0x100,0x201,0x200,0x301,0x300,
+ 0x401,0x400,0x501,0x500,0x601,0x600,0x701,0x700,
+ 0x801,0x800,0x901,0x900,0xa01,0xa00,0xb01,0xb00,
+ 0xc01,0xc00,0xd01,0xd00,0xe01,0xe00,0xf01,0xf00
+ },
+ {
+ 0x00,0x08,0x10,0x18,0x20,0x28,0x30,0x38,
+ 0x40,0x48,0x50,0x58,0x60,0x68,0x70,0x78,
+ 0x80,0x88,0x90,0x98,0xa0,0xa8,0xb0,0xb8,
+ 0xc0,0xc8,0xd0,0xd8,0xe0,0xe8,0xf0,0xf8,
+ },
+ 0
+};
+
+static gfx_layout dummy_layout =
+{
+ 32,16,
+ 2, /* number of characters */
+ 2, /* number of bitplanes */
+ { 4,6 },
+ {
+ 0x001,0x000,0x101,0x100,0x201,0x200,0x301,0x300,
+ 0x401,0x400,0x501,0x500,0x601,0x600,0x701,0x700,
+ 0x801,0x800,0x901,0x900,0xa01,0xa00,0xb01,0xb00,
+ 0xc01,0xc00,0xd01,0xd00,0xe01,0xe00,0xf01,0xf00
+ },
+ {
+ 0x00,0x08,0x10,0x18,0x20,0x28,0x30,0x38,
+ 0x40,0x48,0x50,0x58,0x60,0x68,0x70,0x78
+ },
+ 0x80
+};
+
+static gfx_layout computer_layout =
+{
+ 32,16,
+ 2, /* number of characters */
+ 4, /* number of bitplanes */
+ { 0,2,4,6 },
+ {
+ 0x001,0x000,0x081,0x080,0x101,0x100,0x181,0x180,
+ 0x201,0x200,0x281,0x280,0x301,0x300,0x381,0x380,
+ 0x401,0x400,0x481,0x480,0x501,0x500,0x581,0x580,
+ 0x601,0x600,0x681,0x680,0x701,0x700,0x781,0x780
+ },
+ {
+ 0x00,0x08,0x10,0x18,0x20,0x28,0x30,0x38,
+ 0x40,0x48,0x50,0x58,0x60,0x68,0x70,0x78
+ },
+ 0x800
+};
+
+static gfx_layout rescue_layout =
+{
+ 64,16,
+ 2, /* number of characters */
+ 4, /* number of bitplanes */
+ { 0,2,4,6 },
+ {
+ 0x001,0x001,0x000,0x000,0x081,0x081,0x080,0x080,
+ 0x101,0x101,0x100,0x100,0x181,0x181,0x180,0x180,
+ 0x201,0x201,0x200,0x200,0x281,0x281,0x280,0x280,
+ 0x301,0x301,0x300,0x300,0x381,0x381,0x380,0x380,
+ 0x401,0x401,0x400,0x400,0x481,0x481,0x480,0x480,
+ 0x501,0x501,0x500,0x500,0x581,0x581,0x580,0x580,
+ 0x601,0x601,0x600,0x600,0x681,0x681,0x680,0x680,
+ 0x701,0x701,0x700,0x700,0x781,0x781,0x780,0x780
+ },
+ {
+ 0x00,0x08,0x10,0x18,0x20,0x28,0x30,0x38,
+ 0x40,0x48,0x50,0x58,0x60,0x68,0x70,0x78
+ },
+ 0x800
+};
+
+static gfx_layout explode_layout =
+{
+ 32,32,
+ 4, /* number of characters */
+ 1, /* number of bitplanes */
+ { 0 },
+ {
+ 0x007,0x006,0x005,0x004,0x003,0x002,0x001,0x000,
+ 0x107,0x106,0x105,0x104,0x103,0x102,0x101,0x100,
+ 0x207,0x206,0x205,0x204,0x203,0x202,0x201,0x200,
+ 0x307,0x306,0x305,0x304,0x303,0x302,0x301,0x300,
+ },
+ {
+ 0x80,0x88,0x90,0x98,0xa0,0xa8,0xb0,0xb8,
+ 0xc0,0xc8,0xd0,0xd8,0xe0,0xe8,0xf0,0xf8,
+ 0x00,0x08,0x10,0x18,0x20,0x28,0x30,0x38,
+ 0x40,0x48,0x50,0x58,0x60,0x68,0x70,0x78
+ },
+ 0x400
+};
+
+static gfx_layout bridge_layout =
+{
+ 32,16,
+ 2, /* number of characters */
+ 4, /* number of bitplanes */
+ { 0,1,2,3 },
+ {
+ 0x004,0x000,0x104,0x100,0x204,0x200,0x304,0x300,
+ 0x404,0x400,0x504,0x500,0x604,0x600,0x704,0x700,
+ 0x804,0x800,0x904,0x900,0xa04,0xa00,0xb04,0xb00,
+ 0xc04,0xc00,0xd04,0xd00,0xe04,0xe00,0xf04,0xf00
+ },
+ {
+ 0x00,0x08,0x10,0x18,0x20,0x28,0x30,0x38,
+ 0x40,0x48,0x50,0x58,0x60,0x68,0x70,0x78
+ },
+ 0x80
+};
+
+static gfx_layout unknown_layout =
+{ /* police car? */
+ 32,32,
+ 2, /* number of characters */
+ 1, /* number of bitplanes */
+ { 0 },
+ {
+ 0x307,0x306,0x305,0x304,0x303,0x302,0x301,0x300,
+ 0x207,0x206,0x205,0x204,0x203,0x202,0x201,0x200,
+ 0x107,0x106,0x105,0x104,0x103,0x102,0x101,0x100,
+ 0x007,0x006,0x005,0x004,0x003,0x002,0x001,0x000,
+ },
+ {
+ 0x80,0x88,0x90,0x98,0xa0,0xa8,0xb0,0xb8,
+ 0xc0,0xc8,0xd0,0xd8,0xe0,0xe8,0xf0,0xf8,
+ 0x00,0x08,0x10,0x18,0x20,0x28,0x30,0x38,
+ 0x40,0x48,0x50,0x58,0x60,0x68,0x70,0x78
+ },
+ 0x400
+};
+
+
+static gfx_layout tunnel_layout =
+{
+ 32,32,
+ 2, /* number of characters */
+ 1, /* number of bitplanes */
+ { 0 },
+ {
+ 0x003,0x002,0x001,0x000,0x103,0x102,0x101,0x100,
+ 0x203,0x202,0x201,0x200,0x303,0x302,0x301,0x300,
+ 0x403,0x402,0x401,0x400,0x503,0x502,0x501,0x500,
+ 0x603,0x602,0x601,0x600,0x703,0x702,0x701,0x700
+ },
+ {
+ 0x00,0x08,0x10,0x18,0x20,0x28,0x30,0x38,
+ 0x40,0x48,0x50,0x58,0x60,0x68,0x70,0x78,
+ 0x80,0x88,0x90,0x98,0xa0,0xa8,0xb0,0xb8,
+ 0xc0,0xc8,0xd0,0xd8,0xe0,0xe8,0xf0,0xf8
+ },
+ 4
+};
+
+static gfx_layout belt_layout = {
+ 32,16,
+ 2, /* number of characters */
+ 1, /* number of bitplanes */
+ { 4 },
+ {
+ 0x003,0x002,0x001,0x000,0x103,0x102,0x101,0x100,
+ 0x203,0x202,0x201,0x200,0x303,0x302,0x301,0x300,
+ 0x403,0x402,0x401,0x400,0x503,0x502,0x501,0x500,
+ 0x603,0x602,0x601,0x600,0x703,0x702,0x701,0x700
+ },
+ {
+ 0x00,0x08,0x10,0x18,0x20,0x28,0x30,0x38,
+ 0x40,0x48,0x50,0x58,0x60,0x68,0x70,0x78,
+ 0x80,0x88,0x90,0x98,0xa0,0xa8,0xb0,0xb8,
+ 0xc0,0xc8,0xd0,0xd8,0xe0,0xe8,0xf0,0xf8
+ },
+ 0x80
+};
+
+static GFXDECODE_START( monaco )
+ GFXDECODE_ENTRY( "gfx1", 0x0100, unknown_layout, 0x00, 1) /* PR125: unused; police car? */
+ GFXDECODE_ENTRY( "gfx1", 0x0200, explode_layout, RED_CLUT, 2) /* PR126: explosion */
+ GFXDECODE_ENTRY( "gfx1", 0x0400, player_layout, PLAYER_CLUT, 1) /* PR127: player's car */
+ GFXDECODE_ENTRY( "gfx1", 0x0600, player_layout, PLAYER_CLUT, 1) /* PR128: swerving (rough road) */
+ GFXDECODE_ENTRY( "gfx1", 0x0800, player_layout, PLAYER_CLUT, 1) /* PR129: spinout1 */
+ GFXDECODE_ENTRY( "gfx1", 0x0a00, player_layout, PLAYER_CLUT, 1) /* PR130: spinout2 */
+ GFXDECODE_ENTRY( "gfx1", 0x0c00, explode_layout, CYAN_CLUT, 1) /* PR131: spray */
+ GFXDECODE_ENTRY( "gfx1", 0x0e00, computer_layout, 0x00, 5) /* PR132: computer car A,B */
+ GFXDECODE_ENTRY( "gfx1", 0x1000, text_layout, CYAN_CLUT, 2) /* PR133: text */
+ GFXDECODE_ENTRY( "gfx1", 0x1200, tree_layout, TREE_CLUT, 1) /* PR134: tree */
+ GFXDECODE_ENTRY( "gfx1", 0x1300, tree_layout, TREE_CLUT, 1) /* PR134: grass */
+ GFXDECODE_ENTRY( "gfx1", 0x1400, tree_layout, SHRUB_CLUT, 1) /* PR135: shrub */
+ GFXDECODE_ENTRY( "gfx1", 0x1600, house_layout, HOUSE_CLUT, 1) /* PR136: house */
+ GFXDECODE_ENTRY( "gfx1", 0x1800, tunnel_layout, RED_CLUT, 1) /* PR137: tunnel */
+ GFXDECODE_ENTRY( "gfx1", 0x1900, pool_layout, CYAN_CLUT, 1) /* PR137: pool (oil slick) */
+ GFXDECODE_ENTRY( "gfx1", 0x1900, belt_layout, GRASS_CLUT, 2) /* PR137: red/green belt */
+ GFXDECODE_ENTRY( "gfx1", 0x1a00, rescue_layout, RESCUE_CLUT, 1) /* PR138: rescue car */
+ GFXDECODE_ENTRY( "gfx1", 0x1c00, signal_layout, YELLOW_CLUT, 1) /* PR139: bridge signal (yellow on black)*/
+ GFXDECODE_ENTRY( "gfx1", 0x1c00, dummy_layout, PLAYER_CLUT, 1) /* PR139: dummy car */
+ GFXDECODE_ENTRY( "gfx1", 0x1e00, bridge_layout, WATER_CLUT, 1) /* PR140: bridge-water */
+ GFXDECODE_ENTRY( "gfx1", 0x2000, bridge_layout, WATER_CLUT, 1) /* PR141: bridge-pillar */
+GFXDECODE_END
+
+static const char *const monaco_sample_names[] =
+{
+ "*monaco",
+ "6car1",
+ "6car2",
+ "6crash",
+ "6engine",
+ "6extend",
+ "6fanfare",
+ "6siren",
+ "6slip",
+// "gravel",
+ 0
+};
+
+/* ch 0 = engine; ch 1 = ambulance, puddle; ch 2 = extra car; ch 3 = crash; ch 4 = fanfare */
+
+MACHINE_RESET_MEMBER( monaco_state, monaco )
+{
+ uint16_t i;
+ m_time = 0; /* time remaining = 0 */
+ m_score = 0; /* player score = 0 */
+ m_gear = 0; /* low gear */
+ m_plays = 0; /* no games played */
+ for (i = 0;i < 1000;i++)
+ monaco_word_w (i, 0); /* delete all scores from RAM */
+ GameOver();
+}
+
+static MACHINE_CONFIG_START( monaco )
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD ("maincpu", Z80, 200) /* fake */
+ MCFG_CPU_PROGRAM_MAP(monaco_map)
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", monaco_state, monaco_interrupt)
+ MCFG_MACHINE_RESET_OVERRIDE(monaco_state, monaco)
+
+ /* video hardware */
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_REFRESH_RATE(60)
+ MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(4368))
+ MCFG_SCREEN_SIZE(SCREEN_WIDTH, SCREEN_HEIGHT)
+ MCFG_SCREEN_VISIBLE_AREA(0, SCREEN_WIDTH-1, 0, SCREEN_HEIGHT-1)
+ MCFG_VIDEO_START_OVERRIDE(monaco_state, monaco)
+ MCFG_SCREEN_UPDATE_DRIVER(monaco_state, screen_update_monaco)
+ MCFG_SCREEN_PALETTE("palette")
+ MCFG_GFXDECODE_ADD("gfxdecode", "palette", monaco)
+ MCFG_PALETTE_ADD("palette", 160)
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+ MCFG_SOUND_ADD("samples", SAMPLES, 0)
+ MCFG_SAMPLES_CHANNELS(5)
+ MCFG_SAMPLES_NAMES(monaco_sample_names)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90)
+MACHINE_CONFIG_END
+
+/*****************************************************************/
+
+ROM_START( monaco )
+ ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00 ) /* fake */
+
+ ROM_REGION( 0x3000, "gfx1", 0 )
+ ROM_LOAD( "pr125", 512*0, 512, CRC(7a66ed4c) SHA1(514e129c334a551b931c90b063b073a9b4bdffc3) ) /* light data */
+ ROM_LOAD( "pr126", 512*1, 512, CRC(5d7a8f12) SHA1(b4f0d21b91a7cf7002f99c08788669c7c38be51d) ) /* explosion */
+ ROM_LOAD( "pr127", 512*2, 512, CRC(8ffdc2f0) SHA1(05cc3330c067965b8b90b5d27119fe9f26580a13) ) /* car(2)main */
+ ROM_LOAD( "pr128", 512*3, 512, CRC(dde29dea) SHA1(34c413edff991297471bd0bc193c4bd8ede4e468) ) /* car(2)rotated */
+ ROM_LOAD( "pr129", 512*4, 512, CRC(7b18af26) SHA1(3d1ff2610813544c3b9b65182f081272a9537640) ) /* car(2)rotated */
+ ROM_LOAD( "pr130", 512*5, 512, CRC(9ef1913b) SHA1(58830121781b8a13532eaf8ea13ec07f10522320) ) /* car(2) spinout */
+ ROM_LOAD( "pr131", 512*6, 512, CRC(ff31eb01) SHA1(fd6bcd92c4bd919bb1a96ca97688d46cb310b39d) ) /* splash */
+ ROM_LOAD( "pr132", 512*7, 512, CRC(6b8ad9bc) SHA1(be36e3b6b647d3a9565bc45903027c791dc889e5) ) /* car(2)(other) */
+ ROM_LOAD( "pr133", 512*8, 512, CRC(d50641d9) SHA1(bf399e9830c88e4d8f8fb386305f54ef766946d9) ) /* text(4) */
+ ROM_LOAD( "pr134", 512*9, 512, CRC(8ebd50bb) SHA1(98d51f503753d4d7191a09b509d26c1e049e981a) ) /* tree, grass */
+ ROM_LOAD( "pr135", 512*10, 512, CRC(986eda32) SHA1(73fa539d4c83748952d9339985208520fec955f3) ) /* shrub */
+ ROM_LOAD( "pr136", 512*11, 512, CRC(ecc5d1a2) SHA1(33bff7381785557a85e4c8bdd74679b59e0ed9d5) ) /* house */
+ ROM_LOAD( "pr137", 512*12, 512, CRC(ddd9004e) SHA1(5229c34578e66d9c51a05439a516513946ba69ed) ) /* tunnel, oil slip */
+ ROM_LOAD( "pr138", 512*13, 512, CRC(058e53cf) SHA1(7c3aaaca5a9e9ce3a3badd0dcc8360342673a397) ) /* firetruck */
+ ROM_LOAD( "pr139", 512*14, 512, CRC(e8ba0794) SHA1(eadd7425134f26b1c126bbcd3d3dabf4b2e1fe70) ) /* car, bridge symbol */
+ ROM_LOAD( "pr140", 512*15, 512, CRC(48e9971b) SHA1(c0c265cdc08727e3caaf49cdfe728a91c4c46ba2) ) /* bridge-water */
+ ROM_LOAD( "pr141", 512*16, 512, CRC(99934236) SHA1(ec271f3e690d5c57ead9132b22b9b1b966e4d170) ) /* bridge-pillar */
+
+ ROM_REGION( 32*3, "proms", 0 )
+ ROM_LOAD( "prm38", 0*32, 32, CRC(82dd0a0f) SHA1(3e7e475c3270853d70c1fe90a773172532b60cfb) ) /* acceleration related */
+ ROM_LOAD( "prm39", 1*32, 32, CRC(6acfa0da) SHA1(1e56da4cdf71a095eac29878969b831babac222b) ) /* regulates opponent car speed */
+
+// ROM_LOAD( "prm-40", 2*32, 32, CRC(8030dac8) )
+/* PR40 is in the Fanfare sound circuit and seems to access the particular
+ * notes for the fanfare sound (so PR40 may contain timing and pointer info
+ * on the melody).  The switch (SW1) I mentioned before that helped in tuning
+ * the fanfare sound with the 6 pots seems to help in making the tuning of each
+ * pot for output of one of three audio frequencies (262, 330, 392 Hz),
+ * instead of having to tune to 6 different frequencies (a production/test
+ * equipment issue).
+ * In any case, if we get a good sample of this fanfare sound, we will not
+ * need to bother with this circuit or PR40.  As far a I have seen, the
+ * fanfare sound only comes up at the end of the game if you have a top five
+ * score and possibly when you plug in the game.
+ */
+ROM_END
+
+DRIVER_INIT_MEMBER( monaco_state, monaco )
+{
+ int i;
+ const double dy_table[5] =
+ {
+ 0.75,
+ 1.25,
+ 1.75,
+ 2.00,
+ 2.50
+ };
+
+ m_computer_speed = 52*16/256.0;
+ m_track_bottom_inset = 32;
+ m_track_top_inset = 32;
+ m_track_bottom_delta = 1;
+ m_track_top_delta = 1;
+
+ /* computer car */
+ for( i=0; i<NUM_COMPUTER_CARS; i++ )
+ {
+ m_xpos[i] = i*32*3 + ((i>1)?192:0);
+ m_ypos[i] = (SCREEN_HEIGHT-16)/2;
+ m_dy[i] = dy_table[i];
+ }
+}
+
+/* rom parent machine inp init */
+GAMEL( 1979, monaco, 0, monaco, monaco, monaco_state, monaco, ROT90, "Sega", "Monaco GP", 0, layout_monaco )
+
+
+
+
+/* Monaco GP video hardware simulation */
+
+
+#define plot_pixel(bitmap,x,y,col) do { bitmap.pix16(y, x) = col; } while (0)
+
+void monaco_state::draw_computer( bitmap_ind16 &bitmap, const rectangle clip )
+{
+ int i;
+
+ for( i=0; i<NUM_COMPUTER_CARS; i++ )
+ {
+ m_gfxdecode->gfx(GFX_COMPUTER)->transpen(
+ bitmap, clip,
+ m_tile[i],
+ m_color[i],
+ 0,0,
+ m_x[i],
+ m_y[i],
+ 0 );
+ }
+
+ m_gfxdecode->gfx(GFX_RESCUE_CAR)->transpen(
+ bitmap, clip,
+ m_rescue_tile,
+ 0, /* color */
+ 0,0,
+ m_rescue_x,
+ m_rescue_y,
+ 0 );
+}
+
+void monaco_state::draw_pool( bitmap_ind16 &bitmap, const rectangle clip )
+{
+ m_gfxdecode->gfx(GFX_POOL)->transpen(
+ bitmap, clip,
+ 0,0, /* tile,color */
+ 0,0, /* flip */
+ m_pool_x,
+ m_pool_y,
+ 0 );
+}
+
+void monaco_state::draw_player( bitmap_ind16 &bitmap, const rectangle clip )
+{
+ int gfx;
+ int tile;
+
+ switch( m_player_splash )
+ {
+ case 0:
+ m_gfxdecode->gfx(GFX_SPRAY)->transpen( bitmap, clip,
+ 2,0,0,0,
+ m_player_x,
+ m_player_y+32-8,
+ 0);
+ m_gfxdecode->gfx(GFX_SPRAY)->transpen( bitmap, clip,
+ 0,0,0,0,
+ m_player_x,
+ m_player_y-32+8,
+ 0);
+ break;
+ case 1:
+ m_gfxdecode->gfx(GFX_SPRAY)->transpen( bitmap, clip,
+ 3,0,0,0,
+ m_player_x,
+ m_player_y+32-8,
+ 0);
+ m_gfxdecode->gfx(GFX_SPRAY)->transpen( bitmap, clip,
+ 1,0,0,0,
+ m_player_x,
+ m_player_y-32+8,
+ 0);
+ break;
+ }
+
+ tile = m_player_tile;
+ gfx = 0;
+ if( tile>=0 )
+ {
+ switch( tile )
+ {
+ case 0:
+ case 1: gfx = GFX_PLAYER; break;
+
+ case 2:
+ case 3: gfx = GFX_SPINOUT1; tile -= 2; break;
+
+ case 4:
+ case 5: gfx = GFX_SPINOUT2; tile -= 4; break;
+
+ case 6:
+ case 7:
+ case 8:
+ case 9: gfx = GFX_EXPLOSION; tile -= 6; break;
+
+ case 10:
+ case 11: gfx = GFX_SHAKE; tile -= 10; break;
+ }
+
+ m_gfxdecode->gfx(gfx)->transpen( bitmap, clip,
+ tile,0,
+ 0,0,
+ m_player_x,
+ m_player_y,
+ 0);
+ }
+}
+
+/*****************************************************************/
+
+void monaco_state::draw_strip( bitmap_ind16 &bitmap, int sy, int x0, int x1, int xpos, int pen )
+{
+ int sx;
+ if( x0<xpos ) x0 = xpos;
+ if( x1>xpos+PAGE_SIZE ) x1 = xpos+PAGE_SIZE;
+ if( x0<0 ) x0 = 0;
+ if( x1>SCREEN_WIDTH ) x1 = SCREEN_WIDTH;
+ for( sx=x0; sx<x1; sx++ ) plot_pixel( bitmap,sx,sy,pen );
+}
+
+void monaco_state::DrawSmoothZone( bitmap_ind16 &bitmap, const rectangle clip, int xpos )
+{
+ const uint8_t data[14] =
+ {
+ GFX_GRASS,GFX_GRASS,GFX_GRASS,
+ GFX_TREE,GFX_GRASS,GFX_TREE,
+ GFX_GRASS,GFX_HOUSE,GFX_GRASS,
+ GFX_SHRUB,GFX_SHRUB,
+ GFX_GRASS,GFX_GRASS,GFX_GRASS
+ };
+ int top_inset = m_top_inset;
+ int bottom_inset = m_bottom_inset;
+ int i;
+
+ draw_strip( bitmap, top_inset, xpos, xpos+PAGE_SIZE, xpos, YELLOW_PEN );
+ draw_strip( bitmap, SCREEN_HEIGHT-1 - bottom_inset, xpos, xpos+PAGE_SIZE, xpos, YELLOW_PEN );
+
+ for( i=0; i<14; i++ )
+ {
+ int code = data[i];
+ gfx_element *gfx = m_gfxdecode->gfx(code);
+ gfx_element *belt = m_gfxdecode->gfx((code==GFX_HOUSE)?GFX_DUMMY:GFX_BELT);
+ int j;
+
+ for( j=0; j<3; j++ )
+ {
+ gfx->opaque( bitmap, clip,
+ 0,0, /* number, color */
+ 0,0, /* no flip */
+ xpos, m_top_inset-32-16-j*32 );
+
+ gfx->opaque( bitmap, clip,
+ 0,0, /* number, color */
+ 0,0, /* no flip */
+ xpos,SCREEN_HEIGHT-m_bottom_inset+j*32+16-8 );
+ }
+ belt->opaque( bitmap, clip,
+ 0,0, /* number, color */
+ 0,0, /* no flip */
+ xpos, m_top_inset-16 );
+
+ belt->opaque( bitmap, clip,
+ 0,0, /* number, color */
+ 0,0, /* no flip */
+ xpos,SCREEN_HEIGHT-m_bottom_inset );
+
+ xpos += 32;
+ }
+}
+
+void monaco_state::DrawSlipZone( bitmap_ind16 &bitmap, const rectangle clip, int xpos )
+{
+ const uint8_t data[14] =
+ {
+ GFX_SHRUB,GFX_SHRUB,GFX_SHRUB,
+ GFX_SHRUB,GFX_SHRUB,GFX_SHRUB,
+ GFX_SHRUB,GFX_HOUSE,
+ GFX_SHRUB,GFX_SHRUB,GFX_SHRUB,
+ GFX_SHRUB,/* start */GFX_SHRUB,GFX_SHRUB
+ };
+
+ int top_inset = m_top_inset;
+ int bottom_inset = m_bottom_inset;
+ int i;
+
+ draw_strip( bitmap, top_inset, xpos, xpos+PAGE_SIZE, xpos, YELLOW_PEN );
+ draw_strip( bitmap, SCREEN_HEIGHT-1 - bottom_inset, xpos, xpos+PAGE_SIZE, xpos, YELLOW_PEN );
+
+ for( i=0; i<14; i++ ){
+ int code = data[i];
+ gfx_element *gfx = m_gfxdecode->gfx(code);
+ gfx_element *belt = m_gfxdecode->gfx((code==GFX_HOUSE)?GFX_DUMMY:GFX_BELT);
+ int j;
+
+ for( j=0; j<3; j++ ){
+ gfx->opaque( bitmap, clip,
+ 0,0, /* number, color */
+ 0,0, /* no flip */
+ xpos, top_inset-32-j*32-16 );
+
+ gfx->opaque( bitmap, clip,
+ 0,0, /* number, color */
+ 0,0, /* no flip */
+ xpos,SCREEN_HEIGHT-bottom_inset+j*32+16-8 );
+ }
+
+ belt->opaque( bitmap, clip,
+ 0,0, /* number, color */
+ 0,0, /* no flip */
+ xpos, top_inset-16 );
+
+ belt->opaque( bitmap, clip,
+ 0,0, /* number, color */
+ 0,0, /* no flip */
+ xpos,SCREEN_HEIGHT-bottom_inset );
+
+ xpos += 32;
+ }
+}
+
+void monaco_state::DrawGravelZone( bitmap_ind16 &bitmap, const rectangle clip, int xpos )
+{
+ const uint8_t data[14] = {
+ GFX_SHRUB,GFX_SHRUB,GFX_SHRUB,
+ GFX_SHRUB,GFX_SHRUB,GFX_SHRUB,
+ GFX_SHRUB,GFX_HOUSE,
+ GFX_SHRUB,GFX_SHRUB,GFX_SHRUB,
+ GFX_SHRUB,GFX_SHRUB,GFX_SHRUB
+ };
+ int top_inset = m_top_inset;
+ int bottom_inset = m_bottom_inset;
+ int i;
+ int xpos0 = xpos;
+
+ for( i=0; i<14; i++ )
+ {
+ int code = data[i];
+ gfx_element *gfx = m_gfxdecode->gfx(code);
+ gfx_element *belt = m_gfxdecode->gfx((code==GFX_HOUSE)?GFX_DUMMY:GFX_BELT);
+ int j;
+ int ypos;
+
+ /* draw gravel */
+ if( data[i]!=GFX_HOUSE )
+ {
+ ypos = SCREEN_HEIGHT-bottom_inset-32;
+ m_gfxdecode->gfx(GFX_BELT)->opaque( bitmap, clip,
+ 1,1, /* number, color */
+ 0,0, /* no flip */
+ xpos, ypos+32-8 );
+ ypos-=24;
+ while( ypos>0 ){
+ m_gfxdecode->gfx(GFX_BELT)->opaque( bitmap, clip,
+ 1,1, /* number, color */
+ 0,0, /* no flip */
+ xpos, ypos );
+ ypos -= 16;
+ }
+ }
+
+ for( j=0; j<3; j++ )
+ {
+ ypos = SCREEN_HEIGHT-bottom_inset+16+j*32-8;
+ gfx->opaque( bitmap, clip,
+ 0,0, /* number, color */
+ 0,0, /* no flip */
+ xpos, ypos );
+ }
+
+ for( j=0; j<3; j++ )
+ {
+ ypos = top_inset-32-16-j*32;
+ gfx->opaque( bitmap, clip,
+ 0,0, /* number, color */
+ 0,0, /* no flip */
+ xpos, ypos );
+ }
+
+ belt->opaque( bitmap, clip,
+ 0,0, /* number, color */
+ 0,0, /* no flip */
+ xpos, top_inset-16 );
+
+ belt->opaque( bitmap, clip,
+ 0,0, /* number, color */
+ 0,0, /* no flip */
+ xpos,SCREEN_HEIGHT-bottom_inset );
+
+
+ xpos += 32;
+ }
+ draw_strip( bitmap, top_inset, xpos0, xpos0+PAGE_SIZE, xpos0, YELLOW_PEN );
+ draw_strip( bitmap, SCREEN_HEIGHT-1 - bottom_inset, xpos0, xpos0+PAGE_SIZE, xpos0, YELLOW_PEN );
+}
+
+void monaco_state::DrawBridgeZone( bitmap_ind16 &bitmap, const rectangle clip, int xpos )
+{
+ gfx_element *gfx1 = m_gfxdecode->gfx(GFX_BRIDGE1);
+ gfx_element *gfx2 = m_gfxdecode->gfx(GFX_BRIDGE2);
+
+ int i;
+ for( i=0; i<14; i++ )
+ {
+ int j;
+ gfx_element *gfx = (i==0)?gfx2:gfx1;
+ for( j=0; j<7; j++ )
+ {
+ int flip;
+ for( flip=0; flip<=1; flip++ )
+ {
+ int ypos = flip?(SCREEN_HEIGHT-16-j*16)+8:j*16-8;
+ if( j<5 )
+ { /* water */
+ gfx1->opaque( bitmap, clip,
+ 0,0, /* number, color */
+ 0,flip,
+ xpos, ypos );
+ }
+ else
+ { /* edge of bridge */
+ gfx->opaque( bitmap, clip,
+ j-5,0, /* number, color */
+ 0,flip,
+ xpos, ypos );
+ }
+ }
+ }
+ xpos += 32;
+ }
+}
+
+void monaco_state::DrawTunnelZone( bitmap_ind16 &bitmap, int xpos )
+{
+ int pen = YELLOW_PEN;
+ int top_inset = m_top_inset;
+ int bottom_inset = m_bottom_inset;
+ draw_strip( bitmap, top_inset, xpos, xpos+PAGE_SIZE, xpos, pen );
+ draw_strip( bitmap, SCREEN_HEIGHT-1 - bottom_inset, xpos, xpos+PAGE_SIZE, xpos, pen );
+}
+
+void monaco_state::DrawTunnelWall( bitmap_ind16 &bitmap, const rectangle clip, int xpos )
+{
+ rectangle clip2;
+ gfx_element *gfx = m_gfxdecode->gfx(GFX_TUNNEL);
+ int top_inset = m_top_inset - 16;
+ int bottom_inset = m_bottom_inset - 16;
+ int i;
+
+ clip2.min_x = clip.min_x;
+ clip2.max_x = clip.max_x;
+ clip2.max_y = clip.max_y;
+ clip2.min_y = SCREEN_HEIGHT-bottom_inset;
+
+ for( i=0; i<14; i++ )
+ {
+ int j;
+ for( j=0; j<2; j++ )
+ {
+ gfx->transpen( bitmap, clip,
+ 1,0, /* number, color */
+ 0,0, /* no flip */
+ xpos, top_inset-32-j*32, 0 );
+
+ gfx->transpen( bitmap, clip,
+ 1,0, /* number, color */
+ 0,0, /* no flip */
+ xpos, SCREEN_HEIGHT-bottom_inset+j*32 - 8, 0 );
+ }
+ xpos += 32;
+ }
+}
+
+void monaco_state::draw_light_helper( bitmap_ind16 &bitmap, int xpos )
+{
+ int pen = BLACK_PEN;
+ const unsigned char *source = memregion( "gfx1" )->base();
+ int x0 = m_player_x-128;
+ int y0 = m_player_y-48;
+ int sy;
+ for( sy=0; sy<SCREEN_HEIGHT; sy++ )
+ {
+ int i = sy-y0;
+ if( i<0 || i>=128 )
+ {
+ draw_strip( bitmap, sy, xpos, xpos+PAGE_SIZE, xpos, pen );
+ }
+ else
+ {
+ int left = x0+source[i];
+ int right = x0+source[i+128];
+ draw_strip( bitmap, sy, xpos, left, xpos, pen );
+ draw_strip( bitmap, sy, right, xpos+PAGE_SIZE, xpos, pen );
+ }
+ }
+}
+
+void monaco_state::draw_wall( bitmap_ind16 &bitmap, const rectangle clip )
+{
+ if( m_right_page == PAGE_TUNNEL )
+ DrawTunnelWall( bitmap, clip, SCREEN_WIDTH-14*32+m_scroll );
+
+ if( m_left_page == PAGE_TUNNEL )
+ DrawTunnelWall( bitmap, clip, SCREEN_WIDTH-14*32*2+m_scroll );
+}
+
+void monaco_state::draw_light( bitmap_ind16 &bitmap )
+{
+ if( m_right_page == PAGE_TUNNEL )
+ draw_light_helper( bitmap, SCREEN_WIDTH-14*32+m_scroll );
+
+ if( m_left_page == PAGE_TUNNEL )
+ draw_light_helper( bitmap, SCREEN_WIDTH-14*32*2+m_scroll );
+}
+
+void monaco_state::draw_page( bitmap_ind16 &bitmap, const rectangle clip, int which, int xpos )
+{
+ rectangle r;
+ r.min_x = xpos;
+ r.max_x = xpos+PAGE_SIZE-1;
+ r.min_y = 0;
+ r.max_y = SCREEN_HEIGHT-1;
+ bitmap.fill( (which!=PAGE_SLIP)?GREY_PEN:CYAN_PEN,r );
+ switch( which )
+ {
+ case PAGE_SMOOTH:
+ DrawSmoothZone( bitmap, clip, xpos );
+ break;
+
+ case PAGE_SLIP:
+ DrawSlipZone( bitmap, clip, xpos );
+ break;
+
+ case PAGE_TUNNEL:
+ DrawTunnelZone( bitmap, xpos );
+ break;
+
+ case PAGE_GRAVEL:
+ DrawGravelZone( bitmap, clip, xpos );
+ break;
+
+ case PAGE_BRIDGE:
+ DrawBridgeZone( bitmap, clip, xpos );
+ break;
+ }
+}
+
+void monaco_state::draw_background( bitmap_ind16 &bitmap, const rectangle clip )
+{
+ draw_page(bitmap, clip,
+ m_right_page,
+ SCREEN_WIDTH-14*32+m_scroll );
+
+ draw_page(bitmap, clip,
+ m_left_page,
+ SCREEN_WIDTH-14*32*2+m_scroll );
+}
+
+void monaco_state::draw_text( bitmap_ind16 &bitmap, const rectangle clip )
+{
+ int sx = (SCREEN_WIDTH-8)/2;
+ int sy = (SCREEN_HEIGHT-128)/2;
+
+ if( m_left_text != -1 )
+ {
+ m_gfxdecode->gfx(GFX_TEXT)->zoom_transpen( bitmap, clip,
+ m_left_text,0,
+ 0,0, /* flip */
+ sx-96,sy,
+ 1<<16, 2<<16, 0
+ );
+ }
+
+ if( m_right_text != -1 )
+ {
+ m_gfxdecode->gfx(GFX_TEXT)->zoom_transpen( bitmap, clip,
+ m_right_text,1,
+ 0,0, /* flip */
+ SCREEN_WIDTH-32,sy,
+ 1<<16, 2<<16, 0
+ );
+ }
+}
+
+/* last two values are L and H used to display in gear field (not supported officially)*/
+static const uint8_t led_map[12] = { 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x38,0x76 };
+
+/* following outputs LED's for bezel. also displays time,score&speed text versions (text version disabled here) */
+
+void monaco_state::draw_leds( bitmap_ind16 &bitmap )
+{
+ int i;
+ uint32_t data;
+
+// data = m_speed;
+// for( i=2; i>=0; i-- )
+// {
+// drawgfx_transpen( bitmap, led_font,
+// data%10,0, /* number, color */
+// 0,1, /* no flip */
+// 9,SCREEN_HEIGHT-6-i*6,
+// NULL, TRANSPARENCY_NONE,0 );
+//
+// data = data/10;
+// }
+
+ data = m_led_high1>>8;
+ for( i=3; i>=0; i-- )
+ {
+ output().set_digit_value(i+10, led_map[data%10]);
+ data = data/10;
+ }
+
+ data = m_led_high2>>8;
+ for( i=3; i>=0; i-- )
+ {
+ output().set_digit_value(i+20, led_map[data%10]);
+ data = data/10;
+ }
+
+ data = m_led_high3>>8;
+ for( i=3; i>=0; i-- )
+ {
+ output().set_digit_value(i+30, led_map[data%10]);
+ data = data/10;
+ }
+
+ data = m_led_high4>>8;
+ for( i=3; i>=0; i-- )
+ {
+ output().set_digit_value(i+40, led_map[data%10]);
+ data = data/10;
+ }
+
+ data = m_led_high5>>8;
+ for( i=3; i>=0; i-- )
+ {
+ output().set_digit_value(i+50, led_map[data%10]);
+ data = data/10;
+ }
+
+ data = m_led_score>>8;
+ for( i=3; i>=0; i-- )
+ {
+// drawgfx_transpen( bitmap, led_font,
+// data%10,0, /* number, color */
+// 0,1, /* no flip */
+// 0,SCREEN_HEIGHT-6-i*6,
+// NULL, TRANSPARENCY_NONE,0 );
+
+ output().set_digit_value(i, led_map[data%10]);
+
+ data = data/10;
+ }
+
+ data = m_led_plays;
+ for( i=2; i>=0; i-- )
+ {
+ output().set_digit_value(i+60, led_map[data%10]);
+ data = data/10;
+ }
+
+ data = m_led_rank;
+ for( i=2; i>=0; i-- )
+ {
+ if (data == 0xffff)
+ {
+ output().set_digit_value(i+70, 0); /* make it blank */
+ }
+ else
+ {
+ output().set_digit_value(i+70, led_map[data%10]);
+ data = data/10;
+ }
+ }
+
+ data = m_led_speed;
+ for( i=2; i>=0; i-- )
+ {
+// drawgfx_transpen( bitmap, led_font,
+// data%10,0, /* number, color */
+// 0,1, /* no flip */
+// 9,SCREEN_HEIGHT-6-i*6,
+// NULL, TRANSPARENCY_NONE,0 );
+//
+ output().set_digit_value(i+80, led_map[data%10]);
+ data = data/10;
+ }
+
+ data = m_led_gear;
+ for( i=0; i>=0; i-- )
+ {
+ output().set_digit_value(i+90, led_map[10+data%10]);
+ data = data/10;
+ }
+
+ data = m_led_lives;
+ for( i=0; i>=0; i-- )
+ {
+ output().set_digit_value(i+100, led_map[data%10]);
+ data = data/10;
+ }
+
+ data = m_led_time>>8;
+ for( i=1; i>=0; i-- )
+ {
+// drawgfx_opaque( bitmap, NULL, led_font,
+// data%10,0, /* number, color */
+// 0,1, /* no flip */
+// 18,SCREEN_HEIGHT-6-i*6 );
+
+ output().set_digit_value(i+4, led_map[data%10]);
+
+ data = data/10;
+ }
+}
+
+void monaco_state::draw_signal( bitmap_ind16 &bitmap )
+{
+ if( m_bSignalVisible )
+ {
+// drawgfx_opaque(
+// bitmap, NULL, machine().gfx[GFX_SIGNAL],
+// 0,0, /* number, color */
+// 0,0, /* no flip */
+// 32,(SCREEN_HEIGHT - 32)/2 );
+ }
+}
+
+uint32_t monaco_state::screen_update_monaco(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+{
+ const rectangle &visarea = screen.visible_area();
+ draw_background( bitmap, visarea );
+ draw_pool( bitmap, visarea );
+ draw_computer( bitmap, visarea );
+ draw_light( bitmap );
+ draw_wall( bitmap, visarea );
+ draw_text( bitmap, visarea );
+ draw_player( bitmap, visarea );
+ draw_signal( bitmap );
+ draw_leds( bitmap );
+ return 0;
+}
+
+VIDEO_START_MEMBER( monaco_state, monaco )
+{
+ int i;
+
+ m_palette->set_pen_color( 0, 0x00,0x00,0x00 ); /* black (tire) */
+ m_palette->set_pen_color( 1, 0xff,0xff,0xff ); /* white (trim) */
+ /* computer car */
+ for( i=0; i<NUM_COMPUTER_CAR_TYPES; i++ )
+ {
+ const unsigned char clut[3*NUM_COMPUTER_CAR_TYPES] =
+ {
+ 0x00,0xff,0x00, /* green car */
+ 0xff,0xff,0x00, /* yellow car */
+ 0x00,0xff,0xff, /* cyan car */
+ 0xff,0x00,0xff, /* purple car */
+ 0x00,0x00,0xff /* blue car */
+ };
+
+ m_palette->set_pen_color( 16*i+0x8, 0x00,0x00,0x00 ); /* black (tire) */
+ m_palette->set_pen_color( 16*i+0xa, 0xff,0xff,0xff ); /* white (trim) */
+ m_palette->set_pen_color( 16*i+0xc, clut[i*3+0],clut[i*3+1],clut[i*3+2] );
+ }
+ /* rescue car */
+ m_palette->set_pen_color( 0x50+0x8, 0x00,0x00,0x00 ); // black
+ m_palette->set_pen_color( 0x50+0x9, 0xff,0xff,0x00 ); // yellow
+ m_palette->set_pen_color( 0x50+0xa, 0xff,0xff,0xff ); // white
+ m_palette->set_pen_color( 0x50+0xc, 0xff,0x00,0x00 ); // red (light)
+ /* house */
+ m_palette->set_pen_color( 0x60+0x0, 0x00,0x00,0x00 ); // ground
+ m_palette->set_pen_color( 0x60+0x9, 0xff,0x00,0x00 ); // right roof
+ m_palette->set_pen_color( 0x60+0xa, 0xff,0x00,231 ); // left roof
+ m_palette->set_pen_color( 0x60+0xb, 0x00,198,255 ); // front
+ m_palette->set_pen_color( 0x60+0xc, 0xff,0xff,0xff ); // trim
+ /* water */
+ m_palette->set_pen_color( 0x70, 0x00,0x00,0xff );//l.blue
+ m_palette->set_pen_color( 0x71, 0xff,0x00,0x00 );//red
+ m_palette->set_pen_color( 0x72, 0xff,0xff,0x00 );//yellow
+ m_palette->set_pen_color( 0x73, 0x00,0x00,0x00 );//black
+ m_palette->set_pen_color( 0x74, 0x00,0x00,0x00 );//N/A
+ m_palette->set_pen_color( 0x75, 0xff,0xff,0xff );//white
+ m_palette->set_pen_color( 0x76, 0x9f,0x9f,0x9f );//grey (road)
+ m_palette->set_pen_color( 0x77, 0x00,0x00,0x9f );//d.blue
+ /* player car */
+ m_palette->set_pen_color( 0x80, 0x00,0x00,0x00 );
+ m_palette->set_pen_color( 0x81, 0xff,0x00,0x00 ); // red (car body)
+ m_palette->set_pen_color( 0x82, 0xff,0xff,0xff ); // white (trim)
+ m_palette->set_pen_color( 0x83, 0x00,0x00,0x00 ); // black (tire)
+ /* tree */
+ m_palette->set_pen_color( 0x84, 0xff,0xff,0x00 ); // yellow
+ m_palette->set_pen_color( 0x85, 0x00,0x00,0x00 ); // dark green
+ m_palette->set_pen_color( 0x86, 0x00,165,0x00 ); // light green
+ m_palette->set_pen_color( 0x87, 0x00,0x00,0x00 ); // black?
+ /* shrub */
+ m_palette->set_pen_color( 0x88, 0x00,0x00,0x00 );
+ m_palette->set_pen_color( 0x89, 0x00,0xff,0x00 );
+ m_palette->set_pen_color( 0x8a, 0x00,0x00,0xff );
+ m_palette->set_pen_color( 0x8b, 0xff,0xff,0xff );
+ /* grass */
+ m_palette->set_pen_color( 0x8c, 0x00,0x00,0x00 );
+ m_palette->set_pen_color( 0x8d, 0x00,0x9f,0x00 ); // dark green
+ m_palette->set_pen_color( 0x8e, 0x00,0x00,0x00 );
+ m_palette->set_pen_color( 0x8f, 0x00,0x00,0x9f ); // dark blue
+ m_palette->set_pen_color( 0x90, 0x00,0x00,0x00 ); // black
+ m_palette->set_pen_color( 0x91, 0x00,0xff,0xff ); // cyan
+ m_palette->set_pen_color( 0x92, 0x00,0x00,0x00 ); // grey
+ m_palette->set_pen_color( 0x93, 0xff,0x00,0x00 ); // red
+ m_palette->set_pen_color( 0x94, 0x00,0x00,0x00 ); // black
+ m_palette->set_pen_color( 0x95, 255,215,0 ); // yellow trim
+ m_palette->set_pen_color( 0x96, 132,132,132 ); // grey (road)
+// 0,198,255: wet road
+// 255,215,0: yellow trim
+}
diff --git a/src/hbmame/drivers/mrdo.cpp b/src/hbmame/drivers/mrdo.cpp
new file mode 100644
index 00000000000..81d50526135
--- /dev/null
+++ b/src/hbmame/drivers/mrdo.cpp
@@ -0,0 +1,166 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/mrdo.cpp"
+
+ROM_START( mrdigdo )
+ ROM_REGION( 0x10000, "maincpu", 0 ) // from mrdot
+ ROM_LOAD( "d1", 0x0000, 0x2000, CRC(3dcd9359) SHA1(bfe00450ee8822f437d87514f051ad1be6de9463) )
+ ROM_LOAD( "d2", 0x2000, 0x2000, CRC(710058d8) SHA1(168cc179f2266bbf9437445bef9ff7d3358a8e6b) )
+ ROM_LOAD( "d3", 0x4000, 0x2000, CRC(467d12d8) SHA1(7bb85e6a780de1c0c224229ee571cab39098f78d) )
+ ROM_LOAD( "d4", 0x6000, 0x2000, CRC(fce9afeb) SHA1(26236a42c1c620975d4480c4315d0c6f112429b6) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "mrdigdo.d9", 0x0000, 0x1000, CRC(b83b8a84) SHA1(138a4fd1b7470def1b4e8aa4cfcf4c4b6bebf35b) )
+ ROM_LOAD( "mrdigdo.d10", 0x1000, 0x1000, CRC(061cabb9) SHA1(cdc8876f1c402565835db01a78906200430bcf72) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 ) // from mrdot
+ ROM_LOAD( "r8-08.bin", 0x0000, 0x1000, CRC(dbdc9ffa) SHA1(93f29fc106283eecbba3fd69cf3c4658aa38ab9f) )
+ ROM_LOAD( "n8-07.bin", 0x1000, 0x1000, CRC(4b9973db) SHA1(8766c51a345a5e63446e65614c6f665ab5fbe0d7) )
+
+ ROM_REGION( 0x2000, "gfx3", 0 )
+ ROM_LOAD( "mrdigdo.d5", 0x0000, 0x1000, CRC(401f9fa5) SHA1(7483150ae429c9841d04ec4d79eda59bf1db8330) )
+ ROM_LOAD( "mrdigdo.d6", 0x1000, 0x1000, CRC(ff401f59) SHA1(5f34363ffb5e470470c3a0d9ff704f4d9b814ecd) )
+
+ ROM_REGION( 0x0080, "proms", 0 ) // from mrdot
+ ROM_LOAD( "u02--2.bin", 0x0000, 0x0020, CRC(238a65d7) SHA1(a5b20184a1989db23544296331462ec4d7be7516) )
+ ROM_LOAD( "t02--3.bin", 0x0020, 0x0020, CRC(ae263dc0) SHA1(7072c100b9d692f5bb12b0c9e304425f534481e2) )
+ ROM_LOAD( "f10--1.bin", 0x0040, 0x0020, CRC(16ee4ca2) SHA1(fcba4d103708b9711452009cd29c4f88d2f64cd3) )
+ ROM_LOAD( "j10--4.bin", 0x0060, 0x0020, CRC(ff7fe284) SHA1(3ac8e30011c1fcba0ee8f4dc932f82296c3ba143) )
+ROM_END
+
+ROM_START( mrdofast )
+ ROM_REGION( 0x10000, "maincpu", 0 ) // same as mrdo except 1 rom
+ ROM_LOAD( "a4-01.bin", 0x0000, 0x2000, CRC(03dcfba2) SHA1(c15e3d0c4225e0ca120bcd28aca39632575f8e11) )
+ ROM_LOAD( "mrdofast.02", 0x2000, 0x2000, CRC(894d12e4) SHA1(ff89eca0506727f1973b14a13d848799e7ada7ec) )
+ ROM_LOAD( "e4-03.bin", 0x4000, 0x2000, CRC(358f5dc2) SHA1(9fed1f5d1d04935d1b77687c8b2f3bfce970dc08) )
+ ROM_LOAD( "f4-04.bin", 0x6000, 0x2000, CRC(f4190cfc) SHA1(24f5125d900f944294d4eda068b710c8f1c6d39f) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "s8-09.bin", 0x0000, 0x1000, CRC(aa80c5b6) SHA1(76f9f90deb74598470e7ed565237da38dd07e4e9) )
+ ROM_LOAD( "u8-10.bin", 0x1000, 0x1000, CRC(d20ec85b) SHA1(9762bbe34d3fa209ea719807c723f57cb6bf4e01) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "r8-08.bin", 0x0000, 0x1000, CRC(dbdc9ffa) SHA1(93f29fc106283eecbba3fd69cf3c4658aa38ab9f) )
+ ROM_LOAD( "n8-07.bin", 0x1000, 0x1000, CRC(4b9973db) SHA1(8766c51a345a5e63446e65614c6f665ab5fbe0d7) )
+
+ ROM_REGION( 0x2000, "gfx3", 0 )
+ ROM_LOAD( "h5-05.bin", 0x0000, 0x1000, CRC(e1218cc5) SHA1(d946613a1cf1c97f7533a4f8c2d0078d1b7daaa8) )
+ ROM_LOAD( "k5-06.bin", 0x1000, 0x1000, CRC(b1f68b04) SHA1(25709cd81c03df51f27cd730fecf86a1daa9e27e) )
+
+ ROM_REGION( 0x0080, "proms", 0 )
+ ROM_LOAD( "u02--2.bin", 0x0000, 0x0020, CRC(238a65d7) SHA1(a5b20184a1989db23544296331462ec4d7be7516) )
+ ROM_LOAD( "t02--3.bin", 0x0020, 0x0020, CRC(ae263dc0) SHA1(7072c100b9d692f5bb12b0c9e304425f534481e2) )
+ ROM_LOAD( "f10--1.bin", 0x0040, 0x0020, CRC(16ee4ca2) SHA1(fcba4d103708b9711452009cd29c4f88d2f64cd3) )
+ ROM_LOAD( "j10--4.bin", 0x0060, 0x0020, CRC(ff7fe284) SHA1(3ac8e30011c1fcba0ee8f4dc932f82296c3ba143) )
+ROM_END
+
+ROM_START( mrpac )
+ ROM_REGION( 0x10000, "maincpu", 0 ) // from mrdo
+ ROM_LOAD( "a4-01.bin", 0x0000, 0x2000, CRC(03dcfba2) SHA1(c15e3d0c4225e0ca120bcd28aca39632575f8e11) )
+ ROM_LOAD( "c4-02.bin", 0x2000, 0x2000, CRC(0ecdd39c) SHA1(c64b3363593911a676c647bf3dba8fe063fcb0de) )
+ ROM_LOAD( "e4-03.bin", 0x4000, 0x2000, CRC(358f5dc2) SHA1(9fed1f5d1d04935d1b77687c8b2f3bfce970dc08) )
+ ROM_LOAD( "f4-04.bin", 0x6000, 0x2000, CRC(f4190cfc) SHA1(24f5125d900f944294d4eda068b710c8f1c6d39f) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "mrpac-s8-09", 0x0000, 0x1000, CRC(930908e5) SHA1(13666166bb6a38c0b7a8d4133a0fb6fdd7aee372) )
+ ROM_LOAD( "mrpac-u8-10", 0x1000, 0x1000, CRC(ead6d3d6) SHA1(2dc959ca1e9e2cbdc0098ce92b9a11dc24643a38) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 ) // from mrdo
+ ROM_LOAD( "r8-08.bin", 0x0000, 0x1000, CRC(dbdc9ffa) SHA1(93f29fc106283eecbba3fd69cf3c4658aa38ab9f) )
+ ROM_LOAD( "n8-07.bin", 0x1000, 0x1000, CRC(4b9973db) SHA1(8766c51a345a5e63446e65614c6f665ab5fbe0d7) )
+
+ ROM_REGION( 0x2000, "gfx3", 0 )
+ ROM_LOAD( "mrpac-h5-05", 0x0000, 0x1000, CRC(de213e01) SHA1(61f3d3081dded0cc753640632127e52e4ddf0a75) )
+ ROM_LOAD( "mrpac-k5-06", 0x1000, 0x1000, CRC(c2e376a4) SHA1(d7e5fbdcd2b66ec56524e37eee18f91af96443dd) )
+
+ ROM_REGION( 0x0080, "proms", 0 ) // from mrdo
+ ROM_LOAD( "u02--2.bin", 0x0000, 0x0020, CRC(238a65d7) SHA1(a5b20184a1989db23544296331462ec4d7be7516) )
+ ROM_LOAD( "t02--3.bin", 0x0020, 0x0020, CRC(ae263dc0) SHA1(7072c100b9d692f5bb12b0c9e304425f534481e2) )
+ ROM_LOAD( "f10--1.bin", 0x0040, 0x0020, CRC(16ee4ca2) SHA1(fcba4d103708b9711452009cd29c4f88d2f64cd3) )
+ ROM_LOAD( "j10--4.bin", 0x0060, 0x0020, CRC(ff7fe284) SHA1(3ac8e30011c1fcba0ee8f4dc932f82296c3ba143) )
+ROM_END
+
+ROM_START( mrpacb ) // same as mrpac except for gfx1 roms
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "a4-01.bin", 0x0000, 0x2000, CRC(03dcfba2) SHA1(c15e3d0c4225e0ca120bcd28aca39632575f8e11) )
+ ROM_LOAD( "c4-02.bin", 0x2000, 0x2000, CRC(0ecdd39c) SHA1(c64b3363593911a676c647bf3dba8fe063fcb0de) )
+ ROM_LOAD( "e4-03.bin", 0x4000, 0x2000, CRC(358f5dc2) SHA1(9fed1f5d1d04935d1b77687c8b2f3bfce970dc08) )
+ ROM_LOAD( "f4-04.bin", 0x6000, 0x2000, CRC(f4190cfc) SHA1(24f5125d900f944294d4eda068b710c8f1c6d39f) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "mrpacb-s8-09", 0x0000, 0x1000, CRC(ff01d8a0) SHA1(d3d674d8e5bfc6a133fc047bbfb21d179a322c07) )
+ ROM_LOAD( "mrpacb-u8-10", 0x1000, 0x1000, CRC(c1e9b7e8) SHA1(ea455a616597c58bfa88b5ba1069b3fb33d84a7f) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "r8-08.bin", 0x0000, 0x1000, CRC(dbdc9ffa) SHA1(93f29fc106283eecbba3fd69cf3c4658aa38ab9f) )
+ ROM_LOAD( "n8-07.bin", 0x1000, 0x1000, CRC(4b9973db) SHA1(8766c51a345a5e63446e65614c6f665ab5fbe0d7) )
+
+ ROM_REGION( 0x2000, "gfx3", 0 )
+ ROM_LOAD( "mrpac-h5-05", 0x0000, 0x1000, CRC(de213e01) SHA1(61f3d3081dded0cc753640632127e52e4ddf0a75) )
+ ROM_LOAD( "mrpac-k5-06", 0x1000, 0x1000, CRC(c2e376a4) SHA1(d7e5fbdcd2b66ec56524e37eee18f91af96443dd) )
+
+ ROM_REGION( 0x0080, "proms", 0 )
+ ROM_LOAD( "u02--2.bin", 0x0000, 0x0020, CRC(238a65d7) SHA1(a5b20184a1989db23544296331462ec4d7be7516) )
+ ROM_LOAD( "t02--3.bin", 0x0020, 0x0020, CRC(ae263dc0) SHA1(7072c100b9d692f5bb12b0c9e304425f534481e2) )
+ ROM_LOAD( "f10--1.bin", 0x0040, 0x0020, CRC(16ee4ca2) SHA1(fcba4d103708b9711452009cd29c4f88d2f64cd3) )
+ ROM_LOAD( "j10--4.bin", 0x0060, 0x0020, CRC(ff7fe284) SHA1(3ac8e30011c1fcba0ee8f4dc932f82296c3ba143) )
+ROM_END
+
+ROM_START( newdigdo )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "a4-01.bin", 0x0000, 0x2000, CRC(03dcfba2) SHA1(c15e3d0c4225e0ca120bcd28aca39632575f8e11) )
+ ROM_LOAD( "c4-02.bin", 0x2000, 0x2000, CRC(0ecdd39c) SHA1(c64b3363593911a676c647bf3dba8fe063fcb0de) )
+ ROM_LOAD( "e4-03.bin", 0x4000, 0x2000, CRC(358f5dc2) SHA1(9fed1f5d1d04935d1b77687c8b2f3bfce970dc08) )
+ ROM_LOAD( "f4-04.bin", 0x6000, 0x2000, CRC(f4190cfc) SHA1(24f5125d900f944294d4eda068b710c8f1c6d39f) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "nd-s8-09", 0x0000, 0x1000, CRC(48f2bd6d) SHA1(d741f58d5b7e74c498eee11cb8b959f7eec73671) )
+ ROM_LOAD( "nd-u8-10", 0x1000, 0x1000, CRC(7be2fc3e) SHA1(763f95812e35671b3815385cec5ccdaeca4b2b2a) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "nd-r8-08", 0x0000, 0x1000, CRC(069a3e35) SHA1(09a361baed6417fdb4ecc1d8dd09ae9b2ccdef99) )
+ ROM_LOAD( "nd-n8-07", 0x1000, 0x1000, CRC(7ef6f5e4) SHA1(8839f6670010c0249b19f306c200c29775dc0351) )
+
+ ROM_REGION( 0x2000, "gfx3", 0 )
+ ROM_LOAD( "nd-h5-05", 0x0000, 0x1000, CRC(4c8f6cf8) SHA1(92a0a5b8178fec5f7c4214c03d7d691872fed59a) )
+ ROM_LOAD( "nd-k5-06", 0x1000, 0x1000, CRC(1a5f18fc) SHA1(58cbad50c1001dfcb302c28db183e511907e6f86) )
+
+ ROM_REGION( 0x0080, "proms", 0 )
+ ROM_LOAD( "u02--2.bin", 0x0000, 0x0020, CRC(238a65d7) SHA1(a5b20184a1989db23544296331462ec4d7be7516) )
+ ROM_LOAD( "t02--3.bin", 0x0020, 0x0020, CRC(ae263dc0) SHA1(7072c100b9d692f5bb12b0c9e304425f534481e2) )
+ ROM_LOAD( "f10--1.bin", 0x0040, 0x0020, CRC(16ee4ca2) SHA1(fcba4d103708b9711452009cd29c4f88d2f64cd3) )
+ ROM_LOAD( "j10--4.bin", 0x0060, 0x0020, CRC(ff7fe284) SHA1(3ac8e30011c1fcba0ee8f4dc932f82296c3ba143) )
+ROM_END
+
+ROM_START( stickydo )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "a4-01.bin", 0x0000, 0x2000, CRC(03dcfba2) SHA1(c15e3d0c4225e0ca120bcd28aca39632575f8e11) )
+ ROM_LOAD( "c4-02.bin", 0x2000, 0x2000, CRC(0ecdd39c) SHA1(c64b3363593911a676c647bf3dba8fe063fcb0de) )
+ ROM_LOAD( "e4-03.bin", 0x4000, 0x2000, CRC(358f5dc2) SHA1(9fed1f5d1d04935d1b77687c8b2f3bfce970dc08) )
+ ROM_LOAD( "f4-04.bin", 0x6000, 0x2000, CRC(f4190cfc) SHA1(24f5125d900f944294d4eda068b710c8f1c6d39f) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "st-s8-09", 0x0000, 0x1000, CRC(0becc7bc) SHA1(d5ef21aa6f8daaf98f4c6c809504edea4fde35a1) )
+ ROM_LOAD( "st-u8-10", 0x1000, 0x1000, CRC(fc08364e) SHA1(69edf2405836511035f46cddb339e57b4eb5b2fe) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "nd-r8-08", 0x0000, 0x1000, CRC(069a3e35) SHA1(09a361baed6417fdb4ecc1d8dd09ae9b2ccdef99) )
+ ROM_LOAD( "nd-n8-07", 0x1000, 0x1000, CRC(7ef6f5e4) SHA1(8839f6670010c0249b19f306c200c29775dc0351) )
+
+ ROM_REGION( 0x2000, "gfx3", 0 )
+ ROM_LOAD( "st-h5-05", 0x0000, 0x1000, CRC(64d2f54f) SHA1(f301c0190f780bc60d03e5b752bde5e81ce5e93c) )
+ ROM_LOAD( "st-k5-06", 0x1000, 0x1000, CRC(af9b0d35) SHA1(da2d469514a3b95362dace2f48d320234a695e28) )
+
+ ROM_REGION( 0x0080, "proms", 0 )
+ ROM_LOAD( "u02--2.bin", 0x0000, 0x0020, CRC(238a65d7) SHA1(a5b20184a1989db23544296331462ec4d7be7516) )
+ ROM_LOAD( "t02--3.bin", 0x0020, 0x0020, CRC(ae263dc0) SHA1(7072c100b9d692f5bb12b0c9e304425f534481e2) )
+ ROM_LOAD( "f10--1.bin", 0x0040, 0x0020, CRC(16ee4ca2) SHA1(fcba4d103708b9711452009cd29c4f88d2f64cd3) )
+ ROM_LOAD( "j10--4.bin", 0x0060, 0x0020, CRC(ff7fe284) SHA1(3ac8e30011c1fcba0ee8f4dc932f82296c3ba143) )
+ROM_END
+
+GAME( 1998, mrdigdo, mrdo, mrdo, mrdo, mrdo_state, 0, ROT270, "Justin Clark", "Mr. Do! (Dig Dug sprites)", MACHINE_SUPPORTS_SAVE )
+GAME( 1982, mrdofast, mrdo, mrdo, mrdo, mrdo_state, 0, ROT270, "Evil Exidy Dump", "Mr. Do! (Speedup Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, mrpac, mrdo, mrdo, mrdo, mrdo_state, 0, ROT270, "Twisty", "Mr. Pac! (Set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, mrpacb, mrdo, mrdo, mrdo, mrdo_state, 0, ROT270, "Twisty", "Mr. Pac! (Set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, newdigdo, mrdo, mrdo, mrdo, mrdo_state, 0, ROT270, "Vic Twenty George, Jerky, Justin Clark", "Mr. Do! (Dig Dug sprites, new version)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, stickydo, mrdo, mrdo, mrdo, mrdo_state, 0, ROT270, "Marks Hacks", "Mr. Sticky Do!", MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/mslug.cpp b/src/hbmame/drivers/mslug.cpp
new file mode 100644
index 00000000000..a729473877e
--- /dev/null
+++ b/src/hbmame/drivers/mslug.cpp
@@ -0,0 +1,24726 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#if 0
+DRIVER_INIT_MEMBER( neogeo_hbmame, mslugx )
+{
+ mslugx_install_protection();
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, mslug3 )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sma_prot->mslug3_decrypt_68k(cpuregion);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->cmc42_neogeo_gfx_decrypt(spr_region, spr_region_size, MSLUG3_GFX_KEY);
+ m_sma_prot->mslug3_install_protection(m_maincpu, m_banked_cart);
+
+#endif
+DRIVER_INIT_MEMBER( neogeo_hbmame, mslug3n ) // decrypt gfx and extract sx
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->cmc42_neogeo_gfx_decrypt(spr_region, spr_region_size, MSLUG3_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, mslug3d )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sma_prot->mslug3_decrypt_68k(cpuregion);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_sma_prot->mslug3_install_protection(m_maincpu, m_banked_cart);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, mslug3fr )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_sma_prot->mslug3_install_protection(m_maincpu, m_banked_cart);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, mslug4d )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+ m_pcm2_prot->neo_pcm2_snk_1999(ym_region, ym_region_size, 8);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, mslug4dh )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, mslug4it )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, MSLUG4_GFX_KEY);
+ m_pcm2_prot->neo_pcm2_snk_1999(ym_region, ym_region_size, 8);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, mslug4m )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, MSLUG4_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+ m_pcm2_prot->neo_pcm2_snk_1999(ym_region, ym_region_size, 8);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, mslug5b )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, MSLUG5_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 2);
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size);
+ m_pvc_prot->install_pvc_protection(m_maincpu, m_banked_cart);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, mslug5d )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_pvc_prot->mslug5_decrypt_68k(cpuregion, cpuregion_size);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 2);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+ m_pvc_prot->install_pvc_protection(m_maincpu, m_banked_cart);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, mslug5hd )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 2;
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 2);
+ m_pvc_prot->mslug5_decrypt_68k(cpuregion, cpuregion_size);
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size);
+ m_pvc_prot->install_pvc_protection(m_maincpu, m_banked_cart);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, mslug5d1 )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 2);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, mslug5fr1 )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 2);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, ms5boot )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 2;
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, mslug5nd )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, ms5pcbd )
+{
+ DRIVER_INIT_CALL(neogeo);
+
+ m_pvc_prot->mslug5_decrypt_68k(cpuregion, cpuregion_size);
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+ m_sprgen->m_fixed_layer_bank_type = 2;
+ m_sma_prot->svcpcb_s1data_decrypt(fix_region, fix_region_size);
+ m_pvc_prot->install_pvc_protection(m_maincpu, m_banked_cart);
+ install_banked_bios();
+}
+
+
+
+#if 0
+ROM_START( mslug )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "201-p1.p1", 0x100000, 0x100000, CRC(08d8daa5) SHA1(b888993dbb7e9f0a28a01d7d2e1da00ef9cf6f38) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "201-s1.s1", CRC(2f55958d) SHA1(550b53628daec9f1e1e11a398854092d90f9505a) )
+
+ NEO_BIOS_AUDIO_128K( "201-m1.m1", CRC(c28b3253) SHA1(fd75bd15aed30266a8b3775f276f997af57d1c06) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "201-v1.v1", 0x000000, 0x400000, CRC(23d22ed1) SHA1(cd076928468ad6bcc5f19f88cb843ecb5e660681) )
+ ROM_LOAD( "201-v2.v2", 0x400000, 0x400000, CRC(472cf9db) SHA1(5f79ea9286d22ed208128f9c31ca75552ce08b57) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "201-c1.c1", 0x000000, 0x400000, CRC(72813676) SHA1(7b045d1a48980cb1a140699011cb1a3d4acdc4d1) )
+ ROM_LOAD16_BYTE( "201-c2.c2", 0x000001, 0x400000, CRC(96f62574) SHA1(cb7254b885989223bba597b8ff0972dfa5957816) )
+ ROM_LOAD16_BYTE( "201-c3.c3", 0x800000, 0x400000, CRC(5121456a) SHA1(0a7a27d603d1bb2520b5570ebf5b34a106e255a6) )
+ ROM_LOAD16_BYTE( "201-c4.c4", 0x800001, 0x400000, CRC(f4ad59a3) SHA1(4e94fda8ee63abf0f92afe08060a488546e5c280) )
+ROM_END
+#endif
+ROM_START( msboot )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "201-p1.p1", 0x100000, 0x100000, CRC(08d8daa5) SHA1(b888993dbb7e9f0a28a01d7d2e1da00ef9cf6f38) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "201-s1.s1", CRC(2f55958d) SHA1(550b53628daec9f1e1e11a398854092d90f9505a) )
+
+ NEO_BIOS_AUDIO_128K( "201-m1.m1", CRC(c28b3253) SHA1(fd75bd15aed30266a8b3775f276f997af57d1c06) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "201boot.v1", 0x000000, 0x200000, CRC(2C05FD7C) SHA1(4f28bc799da0e27b2f3cde364d8c9822468abb8f) )
+ ROM_LOAD( "201boot.v2", 0x200000, 0x200000, CRC(752DE272) SHA1(1e9ffb296a1089e15b23455841ad91e8a565ba62) )
+ ROM_LOAD( "201boot.v3", 0x400000, 0x200000, CRC(AA48FAA6) SHA1(4695b9dafdc13997410cbd7954c2a7f1b5e4649d) )
+ ROM_LOAD( "201boot.v4", 0x600000, 0x200000, CRC(4264444B) SHA1(7c248e8e559c67d6e8474ec6ce5cf2e3e41235e4) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "201-c1.c1", 0x000000, 0x400000, CRC(72813676) SHA1(7b045d1a48980cb1a140699011cb1a3d4acdc4d1) )
+ ROM_LOAD16_BYTE( "201-c2.c2", 0x000001, 0x400000, CRC(96f62574) SHA1(cb7254b885989223bba597b8ff0972dfa5957816) )
+ ROM_LOAD16_BYTE( "201-c3.c3", 0x800000, 0x400000, CRC(5121456a) SHA1(0a7a27d603d1bb2520b5570ebf5b34a106e255a6) )
+ ROM_LOAD16_BYTE( "201-c4.c4", 0x800001, 0x400000, CRC(f4ad59a3) SHA1(4e94fda8ee63abf0f92afe08060a488546e5c280) )
+ROM_END
+
+ROM_START( mslugeh ) /* Metal Slug - Enhance by Ydmis - (New standard weapon shotgun - 20 bombs instead of 10) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "201eh.p1", 0x100000, 0x100000, CRC(20bb97f7) SHA1(1444cad0262883b9e6c581387634d4e82a33c6bb) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "201-s1.s1", CRC(2f55958d) SHA1(550b53628daec9f1e1e11a398854092d90f9505a) )
+
+ NEO_BIOS_AUDIO_128K( "201-m1.m1", CRC(c28b3253) SHA1(fd75bd15aed30266a8b3775f276f997af57d1c06) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "201-v1.v1", 0x000000, 0x400000, CRC(23d22ed1) SHA1(cd076928468ad6bcc5f19f88cb843ecb5e660681) )
+ ROM_LOAD( "201-v2.v2", 0x400000, 0x400000, CRC(472cf9db) SHA1(5f79ea9286d22ed208128f9c31ca75552ce08b57) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "201-c1.c1", 0x000000, 0x400000, CRC(72813676) SHA1(7b045d1a48980cb1a140699011cb1a3d4acdc4d1) )
+ ROM_LOAD16_BYTE( "201-c2.c2", 0x000001, 0x400000, CRC(96f62574) SHA1(cb7254b885989223bba597b8ff0972dfa5957816) )
+ ROM_LOAD16_BYTE( "201-c3.c3", 0x800000, 0x400000, CRC(5121456a) SHA1(0a7a27d603d1bb2520b5570ebf5b34a106e255a6) )
+ ROM_LOAD16_BYTE( "201-c4.c4", 0x800001, 0x400000, CRC(f4ad59a3) SHA1(4e94fda8ee63abf0f92afe08060a488546e5c280) )
+ROM_END
+
+
+
+#if 0
+ROM_START( mslug2 ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "241-p1.p1", 0x000000, 0x100000, CRC(2a53c5da) SHA1(5a6aba482cac588a6c2c51179c95b487c6e11899) )
+ ROM_LOAD16_WORD_SWAP( "241-p2.sp2", 0x100000, 0x200000, CRC(38883f44) SHA1(fcf34b8c6e37774741542393b963635412484a27) )
+
+ NEO_SFIX_128K( "241-s1.s1", CRC(f3d32f0f) SHA1(2dc38b7dfd3ff14f64d5c0733c510b6bb8c692d0) )
+
+ NEO_BIOS_AUDIO_128K( "241-m1.m1", CRC(94520ebd) SHA1(f8a1551cebcb91e416f30f50581feed7f72899e9) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "241-v1.v1", 0x000000, 0x400000, CRC(99ec20e8) SHA1(80597707f1fe115eed1941bb0701fc00790ad504) )
+ ROM_LOAD( "241-v2.v2", 0x400000, 0x400000, CRC(ecb16799) SHA1(b4b4ddc680836ed55942c66d7dfe756314e02211) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "241-c1.c1", 0x0000000, 0x800000, CRC(394b5e0d) SHA1(4549926f5054ee6aa7689cf920be0327e3908a50) )
+ ROM_LOAD16_BYTE( "241-c2.c2", 0x0000001, 0x800000, CRC(e5806221) SHA1(1e5475cfab129c77acc610f09369ca42ba5aafa5) )
+ ROM_LOAD16_BYTE( "241-c3.c3", 0x1000000, 0x800000, CRC(9f6bfa6f) SHA1(a4319b48004e723f81a980887678e3e296049a53) )
+ ROM_LOAD16_BYTE( "241-c4.c4", 0x1000001, 0x800000, CRC(7d3e306f) SHA1(1499316fb381775218d897b81a6a0c3465d1a37c) )
+ROM_END
+#endif
+ROM_START( mslug2eh ) /* Metal Slug 2 - Enhance by Ydmis - (Style remix) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "241eh.p1", 0x000000, 0x100000, CRC(82cdf18b) SHA1(4a51e4973f7ff5d7149763502e07cf2fc8ec9f43) )
+ ROM_LOAD16_WORD_SWAP( "241-p2.sp2", 0x100000, 0x200000, CRC(38883f44) SHA1(fcf34b8c6e37774741542393b963635412484a27) )
+
+ NEO_SFIX_128K( "241-s1.s1", CRC(f3d32f0f) SHA1(2dc38b7dfd3ff14f64d5c0733c510b6bb8c692d0) )
+
+ NEO_BIOS_AUDIO_128K( "241-m1.m1", CRC(94520ebd) SHA1(f8a1551cebcb91e416f30f50581feed7f72899e9) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "241-v1.v1", 0x000000, 0x400000, CRC(99ec20e8) SHA1(80597707f1fe115eed1941bb0701fc00790ad504) )
+ ROM_LOAD( "241-v2.v2", 0x400000, 0x400000, CRC(ecb16799) SHA1(b4b4ddc680836ed55942c66d7dfe756314e02211) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "241-c1.c1", 0x0000000, 0x800000, CRC(394b5e0d) SHA1(4549926f5054ee6aa7689cf920be0327e3908a50) )
+ ROM_LOAD16_BYTE( "241-c2.c2", 0x0000001, 0x800000, CRC(e5806221) SHA1(1e5475cfab129c77acc610f09369ca42ba5aafa5) )
+ ROM_LOAD16_BYTE( "241-c3.c3", 0x1000000, 0x800000, CRC(9f6bfa6f) SHA1(a4319b48004e723f81a980887678e3e296049a53) )
+ ROM_LOAD16_BYTE( "241-c4.c4", 0x1000001, 0x800000, CRC(7d3e306f) SHA1(1499316fb381775218d897b81a6a0c3465d1a37c) )
+ROM_END
+
+ROM_START( mslug2eh0 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "241eh0.p1", 0x000000, 0x100000, CRC(d2dbae34) SHA1(6bd86bd6b3f4a08d0586efccdef457499bb53d8f) )
+ ROM_LOAD16_WORD_SWAP( "241-p2.sp2", 0x100000, 0x200000, CRC(38883f44) SHA1(fcf34b8c6e37774741542393b963635412484a27) )
+
+ NEO_SFIX_128K( "241-s1.s1", CRC(f3d32f0f) SHA1(2dc38b7dfd3ff14f64d5c0733c510b6bb8c692d0) )
+
+ NEO_BIOS_AUDIO_128K( "241-m1.m1", CRC(94520ebd) SHA1(f8a1551cebcb91e416f30f50581feed7f72899e9) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "241-v1.v1", 0x000000, 0x400000, CRC(99ec20e8) SHA1(80597707f1fe115eed1941bb0701fc00790ad504) )
+ ROM_LOAD( "241-v2.v2", 0x400000, 0x400000, CRC(ecb16799) SHA1(b4b4ddc680836ed55942c66d7dfe756314e02211) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "241-c1.c1", 0x0000000, 0x800000, CRC(394b5e0d) SHA1(4549926f5054ee6aa7689cf920be0327e3908a50) )
+ ROM_LOAD16_BYTE( "241-c2.c2", 0x0000001, 0x800000, CRC(e5806221) SHA1(1e5475cfab129c77acc610f09369ca42ba5aafa5) )
+ ROM_LOAD16_BYTE( "241-c3.c3", 0x1000000, 0x800000, CRC(9f6bfa6f) SHA1(a4319b48004e723f81a980887678e3e296049a53) )
+ ROM_LOAD16_BYTE( "241-c4.c4", 0x1000001, 0x800000, CRC(7d3e306f) SHA1(1499316fb381775218d897b81a6a0c3465d1a37c) )
+ROM_END
+
+ROM_START( mslug2eh1 ) /* Metal Slug 2 - Enhance by Ydmis - (Style remix) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "241eh1.p1", 0x000000, 0x100000, CRC(e8646c37) SHA1(f3d02a16ec6106e6c20d8c519893d532764420a6) )
+ ROM_LOAD16_WORD_SWAP( "241-p2.sp2", 0x100000, 0x200000, CRC(38883f44) SHA1(fcf34b8c6e37774741542393b963635412484a27) )
+
+ NEO_SFIX_128K( "241-s1.s1", CRC(f3d32f0f) SHA1(2dc38b7dfd3ff14f64d5c0733c510b6bb8c692d0) )
+
+ NEO_BIOS_AUDIO_128K( "241-m1.m1", CRC(94520ebd) SHA1(f8a1551cebcb91e416f30f50581feed7f72899e9) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "241-v1.v1", 0x000000, 0x400000, CRC(99ec20e8) SHA1(80597707f1fe115eed1941bb0701fc00790ad504) )
+ ROM_LOAD( "241-v2.v2", 0x400000, 0x400000, CRC(ecb16799) SHA1(b4b4ddc680836ed55942c66d7dfe756314e02211) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "241-c1.c1", 0x0000000, 0x800000, CRC(394b5e0d) SHA1(4549926f5054ee6aa7689cf920be0327e3908a50) )
+ ROM_LOAD16_BYTE( "241-c2.c2", 0x0000001, 0x800000, CRC(e5806221) SHA1(1e5475cfab129c77acc610f09369ca42ba5aafa5) )
+ ROM_LOAD16_BYTE( "241-c3.c3", 0x1000000, 0x800000, CRC(9f6bfa6f) SHA1(a4319b48004e723f81a980887678e3e296049a53) )
+ ROM_LOAD16_BYTE( "241-c4.c4", 0x1000001, 0x800000, CRC(7d3e306f) SHA1(1499316fb381775218d897b81a6a0c3465d1a37c) )
+ROM_END
+
+ROM_START( mslug2eh2 ) /* Metal Slug 2 - Enhance by Ydmis - (Style remix) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "241eh2.p1", 0x000000, 0x100000, CRC(579ecaf3) SHA1(e437ae08b265202635c963f10e497ed1788b75fa) )
+ ROM_LOAD16_WORD_SWAP( "241-p2.sp2", 0x100000, 0x200000, CRC(38883f44) SHA1(fcf34b8c6e37774741542393b963635412484a27) )
+
+ NEO_SFIX_128K( "241-s1.s1", CRC(f3d32f0f) SHA1(2dc38b7dfd3ff14f64d5c0733c510b6bb8c692d0) )
+
+ NEO_BIOS_AUDIO_128K( "241-m1.m1", CRC(94520ebd) SHA1(f8a1551cebcb91e416f30f50581feed7f72899e9) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "241-v1.v1", 0x000000, 0x400000, CRC(99ec20e8) SHA1(80597707f1fe115eed1941bb0701fc00790ad504) )
+ ROM_LOAD( "241-v2.v2", 0x400000, 0x400000, CRC(ecb16799) SHA1(b4b4ddc680836ed55942c66d7dfe756314e02211) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "241-c1.c1", 0x0000000, 0x800000, CRC(394b5e0d) SHA1(4549926f5054ee6aa7689cf920be0327e3908a50) )
+ ROM_LOAD16_BYTE( "241-c2.c2", 0x0000001, 0x800000, CRC(e5806221) SHA1(1e5475cfab129c77acc610f09369ca42ba5aafa5) )
+ ROM_LOAD16_BYTE( "241-c3.c3", 0x1000000, 0x800000, CRC(9f6bfa6f) SHA1(a4319b48004e723f81a980887678e3e296049a53) )
+ ROM_LOAD16_BYTE( "241-c4.c4", 0x1000001, 0x800000, CRC(7d3e306f) SHA1(1499316fb381775218d897b81a6a0c3465d1a37c) )
+ROM_END
+
+ROM_START( mslug2eh3 ) /* Metal Slug 2 - Enhance by Ydmis - (Style remix) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "241eh3.p1", 0x000000, 0x100000, CRC(3d37574f) SHA1(431e80d8689cdba27726265a7dab2ac7a5db71e2) )
+ ROM_LOAD16_WORD_SWAP( "241-p2.sp2", 0x100000, 0x200000, CRC(38883f44) SHA1(fcf34b8c6e37774741542393b963635412484a27) )
+
+ NEO_SFIX_128K( "241-s1.s1", CRC(f3d32f0f) SHA1(2dc38b7dfd3ff14f64d5c0733c510b6bb8c692d0) )
+
+ NEO_BIOS_AUDIO_128K( "241-m1.m1", CRC(94520ebd) SHA1(f8a1551cebcb91e416f30f50581feed7f72899e9) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "241-v1.v1", 0x000000, 0x400000, CRC(99ec20e8) SHA1(80597707f1fe115eed1941bb0701fc00790ad504) )
+ ROM_LOAD( "241-v2.v2", 0x400000, 0x400000, CRC(ecb16799) SHA1(b4b4ddc680836ed55942c66d7dfe756314e02211) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "241-c1.c1", 0x0000000, 0x800000, CRC(394b5e0d) SHA1(4549926f5054ee6aa7689cf920be0327e3908a50) )
+ ROM_LOAD16_BYTE( "241-c2.c2", 0x0000001, 0x800000, CRC(e5806221) SHA1(1e5475cfab129c77acc610f09369ca42ba5aafa5) )
+ ROM_LOAD16_BYTE( "241-c3.c3", 0x1000000, 0x800000, CRC(9f6bfa6f) SHA1(a4319b48004e723f81a980887678e3e296049a53) )
+ ROM_LOAD16_BYTE( "241-c4.c4", 0x1000001, 0x800000, CRC(7d3e306f) SHA1(1499316fb381775218d897b81a6a0c3465d1a37c) )
+ROM_END
+
+ROM_START( mslug2eh4 ) /* Metal Slug 2 - Enhance by Ydmis - (Style remix) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "241eh4.p1", 0x000000, 0x100000, CRC(f31a813a) SHA1(a0024fc378b7e7daa4f48049042ecb8b2551e71a) )
+ ROM_LOAD16_WORD_SWAP( "241-p2.sp2", 0x100000, 0x200000, CRC(38883f44) SHA1(fcf34b8c6e37774741542393b963635412484a27) )
+
+ NEO_SFIX_128K( "241-s1.s1", CRC(f3d32f0f) SHA1(2dc38b7dfd3ff14f64d5c0733c510b6bb8c692d0) )
+
+ NEO_BIOS_AUDIO_128K( "241-m1.m1", CRC(94520ebd) SHA1(f8a1551cebcb91e416f30f50581feed7f72899e9) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "241-v1.v1", 0x000000, 0x400000, CRC(99ec20e8) SHA1(80597707f1fe115eed1941bb0701fc00790ad504) )
+ ROM_LOAD( "241-v2.v2", 0x400000, 0x400000, CRC(ecb16799) SHA1(b4b4ddc680836ed55942c66d7dfe756314e02211) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "241-c1.c1", 0x0000000, 0x800000, CRC(394b5e0d) SHA1(4549926f5054ee6aa7689cf920be0327e3908a50) )
+ ROM_LOAD16_BYTE( "241-c2.c2", 0x0000001, 0x800000, CRC(e5806221) SHA1(1e5475cfab129c77acc610f09369ca42ba5aafa5) )
+ ROM_LOAD16_BYTE( "241-c3.c3", 0x1000000, 0x800000, CRC(9f6bfa6f) SHA1(a4319b48004e723f81a980887678e3e296049a53) )
+ ROM_LOAD16_BYTE( "241-c4.c4", 0x1000001, 0x800000, CRC(7d3e306f) SHA1(1499316fb381775218d897b81a6a0c3465d1a37c) )
+ROM_END
+
+ROM_START( mslug2fr ) /* Metal Slug 2 - Translation Hack by NEO-ARC - (French translation) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "241fr.p1", 0x000000, 0x100000, CRC(ad0de810) SHA1(69c56326b555fb2c18228794e1a2bfd11652ec16) )
+ ROM_LOAD16_WORD_SWAP( "241-p2.sp2", 0x100000, 0x200000, CRC(38883f44) SHA1(fcf34b8c6e37774741542393b963635412484a27) )
+
+ NEO_SFIX_128K( "241-s1.s1", CRC(f3d32f0f) SHA1(2dc38b7dfd3ff14f64d5c0733c510b6bb8c692d0) )
+
+ NEO_BIOS_AUDIO_128K( "241-m1.m1", CRC(94520ebd) SHA1(f8a1551cebcb91e416f30f50581feed7f72899e9) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "241-v1.v1", 0x000000, 0x400000, CRC(99ec20e8) SHA1(80597707f1fe115eed1941bb0701fc00790ad504) )
+ ROM_LOAD( "241-v2.v2", 0x400000, 0x400000, CRC(ecb16799) SHA1(b4b4ddc680836ed55942c66d7dfe756314e02211) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "241fr.c1", 0x0000000, 0x800000, CRC(7df74035) SHA1(08322a2f4e87cd125ebc5b7a98754c7a5b8e91d2) )
+ ROM_LOAD16_BYTE( "241fr.c2", 0x0000001, 0x800000, CRC(97d9525d) SHA1(451a5bdafe1f2de63b76efb7d4afab454abdfff0) )
+ ROM_LOAD16_BYTE( "241-c3.c3", 0x1000000, 0x800000, CRC(9f6bfa6f) SHA1(a4319b48004e723f81a980887678e3e296049a53) )
+ ROM_LOAD16_BYTE( "241-c4.c4", 0x1000001, 0x800000, CRC(7d3e306f) SHA1(1499316fb381775218d897b81a6a0c3465d1a37c) )
+ROM_END
+
+ROM_START( mslug2fro ) /* [OLD] Metal Slug 2 - (mslug2fro) - Translation Hack by NEO-ARC - (French translation) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "241fro.p1", 0x000000, 0x100000, CRC(b0fe22b3) SHA1(9b2d19694165d1f5e20da70b645e55294a10ef51) )
+ ROM_LOAD16_WORD_SWAP( "241-p2.sp2", 0x100000, 0x200000, CRC(38883f44) SHA1(fcf34b8c6e37774741542393b963635412484a27) )
+
+ NEO_SFIX_128K( "241-s1.s1", CRC(f3d32f0f) SHA1(2dc38b7dfd3ff14f64d5c0733c510b6bb8c692d0) )
+
+ NEO_BIOS_AUDIO_128K( "241-m1.m1", CRC(94520ebd) SHA1(f8a1551cebcb91e416f30f50581feed7f72899e9) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "241-v1.v1", 0x000000, 0x400000, CRC(99ec20e8) SHA1(80597707f1fe115eed1941bb0701fc00790ad504) )
+ ROM_LOAD( "241-v2.v2", 0x400000, 0x400000, CRC(ecb16799) SHA1(b4b4ddc680836ed55942c66d7dfe756314e02211) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "241fro.c1", 0x0000000, 0x800000, CRC(44da3c4a) SHA1(72ea1c469b332d8c60816e4c965d4f46a5090baa) )
+ ROM_LOAD16_BYTE( "241fro.c2", 0x0000001, 0x800000, CRC(07c20fad) SHA1(8664950aa7569cd6594b8964f053b19a18c2d5a9) )
+ ROM_LOAD16_BYTE( "241-c3.c3", 0x1000000, 0x800000, CRC(9f6bfa6f) SHA1(a4319b48004e723f81a980887678e3e296049a53) )
+ ROM_LOAD16_BYTE( "241-c4.c4", 0x1000001, 0x800000, CRC(7d3e306f) SHA1(1499316fb381775218d897b81a6a0c3465d1a37c) )
+ROM_END
+
+ROM_START( mslug2sh )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "241sh.p1", 0x000000, 0x100000, CRC(4e4c8d1d) SHA1(bdb30f68fa1345511cbe1afcdf04c5f59d8965a1) )
+ ROM_LOAD16_WORD_SWAP( "241-p2.sp2", 0x100000, 0x200000, CRC(38883f44) SHA1(fcf34b8c6e37774741542393b963635412484a27) )
+
+ NEO_SFIX_128K( "241-s1.s1", CRC(f3d32f0f) SHA1(2dc38b7dfd3ff14f64d5c0733c510b6bb8c692d0) )
+
+ NEO_BIOS_AUDIO_128K( "241-m1.m1", CRC(94520ebd) SHA1(f8a1551cebcb91e416f30f50581feed7f72899e9) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "241-v1.v1", 0x000000, 0x400000, CRC(99ec20e8) SHA1(80597707f1fe115eed1941bb0701fc00790ad504) )
+ ROM_LOAD( "241-v2.v2", 0x400000, 0x400000, CRC(ecb16799) SHA1(b4b4ddc680836ed55942c66d7dfe756314e02211) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "241-c1.c1", 0x0000000, 0x800000, CRC(394b5e0d) SHA1(4549926f5054ee6aa7689cf920be0327e3908a50) )
+ ROM_LOAD16_BYTE( "241-c2.c2", 0x0000001, 0x800000, CRC(e5806221) SHA1(1e5475cfab129c77acc610f09369ca42ba5aafa5) )
+ ROM_LOAD16_BYTE( "241-c3.c3", 0x1000000, 0x800000, CRC(9f6bfa6f) SHA1(a4319b48004e723f81a980887678e3e296049a53) )
+ ROM_LOAD16_BYTE( "241-c4.c4", 0x1000001, 0x800000, CRC(7d3e306f) SHA1(1499316fb381775218d897b81a6a0c3465d1a37c) )
+ROM_END
+
+ROM_START( mslug2t ) /* System11 - Metal Slug 2 Turbo - hack to remove slowdowns in gameplay */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "241t.p1", 0x000000, 0x100000, CRC(df5d6fbc) SHA1(b9cc3e29afc12dc98daac9afb4f94e2cdd8b455c) )
+ ROM_LOAD16_WORD_SWAP( "241-p2.sp2", 0x100000, 0x200000, CRC(38883f44) SHA1(fcf34b8c6e37774741542393b963635412484a27) )
+
+ NEO_SFIX_128K( "241-s1.s1", CRC(f3d32f0f) SHA1(2dc38b7dfd3ff14f64d5c0733c510b6bb8c692d0) )
+
+ NEO_BIOS_AUDIO_128K( "241-m1.m1", CRC(94520ebd) SHA1(f8a1551cebcb91e416f30f50581feed7f72899e9) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "241-v1.v1", 0x000000, 0x400000, CRC(99ec20e8) SHA1(80597707f1fe115eed1941bb0701fc00790ad504) )
+ ROM_LOAD( "241-v2.v2", 0x400000, 0x400000, CRC(ecb16799) SHA1(b4b4ddc680836ed55942c66d7dfe756314e02211) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "241-c1.c1", 0x0000000, 0x800000, CRC(394b5e0d) SHA1(4549926f5054ee6aa7689cf920be0327e3908a50) )
+ ROM_LOAD16_BYTE( "241-c2.c2", 0x0000001, 0x800000, CRC(e5806221) SHA1(1e5475cfab129c77acc610f09369ca42ba5aafa5) )
+ ROM_LOAD16_BYTE( "241-c3.c3", 0x1000000, 0x800000, CRC(9f6bfa6f) SHA1(a4319b48004e723f81a980887678e3e296049a53) )
+ ROM_LOAD16_BYTE( "241-c4.c4", 0x1000001, 0x800000, CRC(7d3e306f) SHA1(1499316fb381775218d897b81a6a0c3465d1a37c) )
+ROM_END
+
+
+
+#if 0
+ROM_START( mslugx ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250-p1.p1", 0x000000, 0x100000, CRC(81f1f60b) SHA1(4c19f2e9824e606178ac1c9d4b0516fbaa625035) )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+#endif
+ROM_START( mslugxce )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250ce.p1", 0x000000, 0x100000, CRC(e75a6d64) SHA1(529130f7ebb43231e6bf1b1703266b6c09356f9c) )
+ ROM_LOAD16_WORD_SWAP( "250ce.p2", 0x100000, 0x400000, CRC(5d1c52cd) SHA1(b2b131fa845b0098cbf0750fee20b402e276483b) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxeb )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250eb.p1", 0x000000, 0x100000, CRC(c41c7ddb) SHA1(1662a1fd1c35511b3091e979b55e940a9f887143) )
+ ROM_CONTINUE (0x000000, 0x100000)
+ ROM_LOAD16_WORD_SWAP( "250eb.p2", 0x100000, 0x400000, CRC(a51363d1) SHA1(7b6b3490a975ac1e549df60b9d70ccd6d2f2ba6e) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxeh ) /* Metal Slug X - Enhance by KrysoFun/KVS - (Style remix) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250eh.p1", 0x000000, 0x100000, CRC(2e110dd7) SHA1(4ce18a726103bc7c1972125806b2c89332338050) )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxeh1 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250eh1.p1", 0x000000, 0x100000, CRC(2b016e87) SHA1(ab99da64a084f5fef75d9647182a42d7e72bd4c4) )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxex )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250ex.p1", 0x000000, 0x100000, CRC(7b751398) SHA1(6149b81b5fb4e9b501a7b119b030df432985b409) )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxfe )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fe.p1", 0x000000, 0x100000, CRC(5a8b3db8) SHA1(7324aad0cc33f6b11b0350ca9d80246a412994d4) )
+ ROM_IGNORE( 0x354f47 )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxfr ) /* Metal Slug X - Translation Hack by NEO-ARC - (French translation) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr.p1", 0x000000, 0x100000, CRC(58a64443) SHA1(ab07993de04eb65f89bab5d4b6e473d7ecbc8ff1) )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxfro ) /* [OLD] Metal Slug X - (mslugxfro) - Translation Hack by NEO-ARC - (French translation) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fro.p1", 0x000000, 0x100000, CRC(4dadf4f3) SHA1(e37e53370cd6b03bb0e2b8266f635ce7980de45b) )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxhp )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250-p1.p1", 0x000000, 0x100000, CRC(81f1f60b) SHA1(4c19f2e9824e606178ac1c9d4b0516fbaa625035) )
+ ROM_LOAD16_WORD_SWAP( "250hp.p2", 0x100000, 0x400000, CRC(eac6830a) SHA1(27927f5341c128f93d74113514f2d099d01acbdf) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxit )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250it.p1", 0x000000, 0x100000, CRC(f3e154ea) SHA1(bb8260deefa7b048772625085e6f41cab717a147) )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjdkj )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jdkj.p1", 0x000000, 0x100000, CRC(4c1b90b1) SHA1(6127e60a6ef0daf82506c46e8344e1a4064b5186) )
+ ROM_IGNORE( 0x354f47 )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxmfb )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250mfb.p1", 0x000000, 0x100000, CRC(bd3611dc) SHA1(9c27f8a10f0a0da051b15cf42e6aed8f60abd309) )
+ ROM_LOAD16_WORD_SWAP( "250mfb.p2", 0x100000, 0x400000, CRC(7b47677c) SHA1(af42d01b6fb3c288b1750b9960c11020bc12b7b4) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxp )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250p.p1", 0x000000, 0x100000, CRC(e65937fc) SHA1(128af1815a23962de02384d61ff52869ae14cea1) )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxr )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250r.p1", 0x000000, 0x100000, CRC(e74f36c2) SHA1(b17d66f36e6ac31433179566ea07a0ed8790b161) )
+ ROM_LOAD16_WORD_SWAP( "250r.p2", 0x100000, 0x400000, CRC(e954b8aa) SHA1(b339b1fd05d50ac3a9d3992bb0fc8e3fd1a95557) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxres )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250res.p1", 0x000000, 0x100000, CRC(d69fb994) SHA1(2cbffae29b92ef4b8f90e01488f89654a42a8596) )
+ ROM_LOAD16_WORD_SWAP( "250ce.p2", 0x100000, 0x400000, CRC(5d1c52cd) SHA1(b2b131fa845b0098cbf0750fee20b402e276483b) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxsef )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250sef.p1", 0x000000, 0x100000, CRC(aae5130c) SHA1(08b5fde0b809d0e68e89e6ef07fc83d7aedc8593) )
+ ROM_LOAD16_WORD_SWAP( "250mfb.p2", 0x100000, 0x400000, CRC(7b47677c) SHA1(af42d01b6fb3c288b1750b9960c11020bc12b7b4) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxst )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250st.p1", 0x000000, 0x100000, CRC(db88d115) SHA1(627d01c4d4bd6c4cfeac5f14859fe9a7026370b0) )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxsvb )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250svb.p1", 0x000000, 0x100000, CRC(4619b7de) SHA1(b1b1875f15528a12408ad477a9b1759ba74ec0d2) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+
+
+#if 0
+ROM_START( mslug3 ) /* Original Version - Encrypted Code & GFX */ /* revision 2000.4.1 */ /* MVS VERSION */
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "neo-sma", 0x0c0000, 0x040000, CRC(9cd55736) SHA1(d6efb2b313127c2911d47d9324626b3f1e7c6ccb) )
+ ROM_LOAD16_WORD_SWAP( "256-pg1.p1", 0x100000, 0x400000, CRC(b07edfd5) SHA1(dcbd9e500bfae98d754e55cdbbbbf9401013f8ee) )
+ ROM_LOAD16_WORD_SWAP( "256-pg2.p2", 0x500000, 0x400000, CRC(6097c26b) SHA1(248ec29d21216f29dc6f5f3f0e1ad1601b3501b6) )
+
+ ROM_Y_ZOOM
+
+ /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */
+ ROM_REGION( 0x80000, "fixed", 0 ) /* larger char set */
+ ROM_FILL( 0x000000, 0x20000, 0 )
+ ROM_REGION( 0x20000, "fixedbios", 0 )
+ ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) )
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+#endif
+ROM_START( mslug3d )
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "neo-sma", 0x0c0000, 0x040000, CRC(9cd55736) SHA1(d6efb2b313127c2911d47d9324626b3f1e7c6ccb) )
+ ROM_LOAD16_WORD_SWAP( "256-pg1.p1", 0x100000, 0x400000, CRC(b07edfd5) SHA1(dcbd9e500bfae98d754e55cdbbbbf9401013f8ee) )
+ ROM_LOAD16_WORD_SWAP( "256-pg2.p2", 0x500000, 0x400000, CRC(6097c26b) SHA1(248ec29d21216f29dc6f5f3f0e1ad1601b3501b6) )
+
+ //NEO_SFIX_128K( "256d.s1", CRC(6d9d4d0a) SHA1(4237247494aa0d734ffc728c7fc2808aca42539e) )
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256d.c1", 0x0000000, 0x800000, CRC(3540398c) SHA1(0a96f2360eb26c66bf02bbc6f52230b55cc95e4e) )
+ ROM_LOAD16_BYTE( "256d.c2", 0x0000001, 0x800000, CRC(bdd220f0) SHA1(f52851023f3bc120b05f622af0e0ab1bedc41604) )
+ ROM_LOAD16_BYTE( "256d.c3", 0x1000000, 0x800000, CRC(bfaade82) SHA1(66b07e592c9a9b35567fe463496f8f75c32a7db9) )
+ ROM_LOAD16_BYTE( "256d.c4", 0x1000001, 0x800000, CRC(1463add6) SHA1(4db91b46d6430da272d27d00a6dc0eb25949bea1) )
+ ROM_LOAD16_BYTE( "256d.c5", 0x2000000, 0x800000, CRC(48ca7f28) SHA1(e903876be5fb4fa582c988d74c6bef1c3b9c7083) )
+ ROM_LOAD16_BYTE( "256d.c6", 0x2000001, 0x800000, CRC(806eb36f) SHA1(a412a9cab80c326733dde7652d1db2a46afb3ebb) )
+ ROM_LOAD16_BYTE( "256d.c7", 0x3000000, 0x800000, CRC(9395b809) SHA1(ca9ac9832017094eee3623f0b6c4c4b7b4f1374d) )
+ ROM_LOAD16_BYTE( "256d.c8", 0x3000001, 0x800000, CRC(a369f9d4) SHA1(f8146ea80a1a23da7e7e04c88f778ee9abdfeb5c) )
+ROM_END
+
+ROM_START( mslug3e02 ) /* Metal Slug 3 - Super Enhance by Ydmis - (Style remix) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256e02.p1", 0x000000, 0x100000, CRC(c9cf4ef8) SHA1(e1e10dcea6ce0c8b6939250adaa167e950069760) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3e03 ) /* Metal Slug 3 - Super Enhance by Ydmis - (Style remix) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256e03.p1", 0x000000, 0x100000, CRC(77f64aa6) SHA1(8aa93f67e55461019dc677cb6f96ead3771232d1) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3e04 ) /* Metal Slug 3 - Super Enhance by Ydmis - (Style remix) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256e04.p1", 0x000000, 0x100000, CRC(09e9fe91) SHA1(573bd25c77e79de85396812bb7632be8d93bdaa6) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3e05 ) /* Metal Slug 3 - Super Enhance by Ydmis - (Style remix) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256e05.p1", 0x000000, 0x100000, CRC(c1a91748) SHA1(07227283b7fe0e040962a84bc345b231fe6417e3) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3e06 ) /* Metal Slug 3 - Super Enhance by Ydmis - (Style remix) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256e06.p1", 0x000000, 0x100000, CRC(812cdce7) SHA1(5249bc026471c1abb2d37b2ac03267b3349a6345) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3e07 ) /* Metal Slug 3 - Super Enhance by Ydmis - (Style remix) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256e07.p1", 0x000000, 0x100000, CRC(bb123461) SHA1(26a8fbb7792ebbd1052a09a78a38a72901644902) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3e08 ) /* Metal Slug 3 - Super Enhance by Ydmis - (Style remix) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256e08.p1", 0x000000, 0x100000, CRC(7666aad5) SHA1(3d55be31a158501d74994a5abf31d6928626d7e3) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3e09 ) /* Metal Slug 3 - Super Enhance by Ydmis - (Style remix) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256e09.p1", 0x000000, 0x100000, CRC(be26430c) SHA1(ee4d070885032bc5c2699d8c0b5abe7d1d7bc6cc) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3e10 ) /* Metal Slug 3 - Super Enhance by Ydmis - (Style remix) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256e10.p1", 0x000000, 0x100000, CRC(e510ae7e) SHA1(35183a58c11e78c9da08643853c2b06eed74b87c) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3e11 ) /* Metal Slug 3 - Super Enhance by Ydmis - (Style remix) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256e11.p1", 0x000000, 0x100000, CRC(2d5047a7) SHA1(89e720e8ccddbbc81c923ad8f7e5a371f9f0ecfc) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3e12 ) /* Metal Slug 3 - Super Enhance by Ydmis - (Style remix) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256e12.p1", 0x000000, 0x100000, CRC(410a6c8e) SHA1(d89aaa1a6fa46c20a84b8fafd83c66fe43a93e86) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3e13 ) /* Metal Slug 3 - Super Enhance by Ydmis - (Style remix) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256e13.p1", 0x000000, 0x100000, CRC(642335cb) SHA1(a17e7a48759a7589a3baf5ff4f69c937954de44c) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3e14 ) /* Metal Slug 3 - Super Enhance by Ydmis - (Style remix) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256e14.p1", 0x000000, 0x100000, CRC(3e8538ca) SHA1(148732165a081bec2f7bdefc79ce7a2db6a2998d) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3e15 ) /* Metal Slug 3 - Super Enhance by Ydmis - (Style remix) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256e15.p1", 0x000000, 0x100000, CRC(f6c5d113) SHA1(555ce0ea6c7d3003c9239de8b7a580295096e9ff) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3e16 ) /* Metal Slug 3 - Super Enhance by Ydmis - (Style remix) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256e16.p1", 0x000000, 0x100000, CRC(52df13e3) SHA1(9e24404b687284540d21b3be512108da1f1e2bbf) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3e17 ) /* Metal Slug 3 - Super Enhance by Ydmis - (Style remix) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256e17.p1", 0x000000, 0x100000, CRC(9a9ffa3a) SHA1(3ce3ba9048aa94543a03798c710c4bea4075a072) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3e18 ) /* Metal Slug 3 - Super Enhance by Ydmis - (Style remix) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256e18.p1", 0x000000, 0x100000, CRC(1a3c81fc) SHA1(b6f2ed4cb2b7f3f3dd3ef1bc97780ef136b2a82c) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3e19 ) /* Metal Slug 3 - Super Enhance by Ydmis - (Style remix) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256e19.p1", 0x000000, 0x100000, CRC(d27c6825) SHA1(d58d0db2378f0541c18dd60fc933614537572dc7) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3e20 ) /* Metal Slug 3 - Super Enhance by Ydmis - (Style remix) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256e20.p1", 0x000000, 0x100000, CRC(e4804e0d) SHA1(9d47e69e8ff737a977c9470a59024da7af35db9c) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3e21 ) /* Metal Slug 3 - Super Enhance by Ydmis - (Style remix) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256e21.p1", 0x000000, 0x100000, CRC(2cc0a7d4) SHA1(7f640067d653c8c0b66ba3c33d0e948497786acf) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3e22 ) /* Metal Slug 3 - Super Enhance by Ydmis - (Style remix) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256e22.p1", 0x000000, 0x100000, CRC(7d648368) SHA1(d637a17d777f59596ad1b67b7898f182f8f4d577) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3eb )
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "mslug3eb.sma", 0x0c0000, 0x040000, CRC(2a9935c2) SHA1(f39d47b0b6fbe0e741777d47fbaf37008c4e0599) )
+ ROM_LOAD16_WORD_SWAP( "256eb.p1", 0x100000, 0x400000, CRC(6ec2e58d) SHA1(d83dd522a5c8a8b4bd32722967e3d934d2e73e08) )
+ ROM_LOAD16_WORD_SWAP( "256eb.p2", 0x500000, 0x400000, CRC(ca4eb0d3) SHA1(eafd000ae27c0b904aea50f681f98ab67068da20) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3eha ) /* Metal Slug 3 - Super Enhance by HappyAsr - (Style remix 20030826) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256eha.p1", 0x000000, 0x100000, CRC(e04c6624) SHA1(de684f346ab9a2e5730a6753de6d53801a702cc8) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3ehs ) /* Metal Slug 3 - Super Enhance by Ydmis - (Style remix) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256ehs.p1", 0x000000, 0x100000, CRC(bfb6a37f) SHA1(2ed7fc7936d732ff55f629612434f1d72c09976e) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3fr ) /* [OLD] Metal Slug 3 N - (mslug3fro) - Translation Hack by NEO-ARC - (French translation) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256fr.p1", 0x000000, 0x100000, CRC(1f5fcb35) SHA1(387e0e0121a26254991b446d6bbdf755cf2e3ad2) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256fr.c1", 0x0000000, 0x800000, CRC(6ac28a9f) SHA1(9dae9703d20af3644456eda228ea7fb52fe67bd7) )
+ ROM_LOAD16_BYTE( "256fr.c2", 0x0000001, 0x800000, CRC(C9725CD0) SHA1(59A0A2778AE35DDCAC17FBA05A81F3DA5EACA1F1) )
+ ROM_LOAD16_BYTE( "256d.c3", 0x1000000, 0x800000, CRC(bfaade82) SHA1(66b07e592c9a9b35567fe463496f8f75c32a7db9) )
+ ROM_LOAD16_BYTE( "256d.c4", 0x1000001, 0x800000, CRC(1463add6) SHA1(4db91b46d6430da272d27d00a6dc0eb25949bea1) )
+ ROM_LOAD16_BYTE( "256d.c5", 0x2000000, 0x800000, CRC(48ca7f28) SHA1(e903876be5fb4fa582c988d74c6bef1c3b9c7083) )
+ ROM_LOAD16_BYTE( "256d.c6", 0x2000001, 0x800000, CRC(806eb36f) SHA1(a412a9cab80c326733dde7652d1db2a46afb3ebb) )
+ ROM_LOAD16_BYTE( "256d.c7", 0x3000000, 0x800000, CRC(9395b809) SHA1(ca9ac9832017094eee3623f0b6c4c4b7b4f1374d) )
+ ROM_LOAD16_BYTE( "256d.c8", 0x3000001, 0x800000, CRC(a369f9d4) SHA1(f8146ea80a1a23da7e7e04c88f778ee9abdfeb5c) )
+ROM_END
+
+ROM_START( mslug3fro ) /* Metal Slug 3 - Translation Hack by NEO-ARC - (French translation) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256fro.p1", 0x000000, 0x100000, CRC(ce3f408b) SHA1(c2752af1dd4373c37e90b2e718ab7ae038535ea1) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256fro.c1", 0x0000000, 0x800000, CRC(d799f41c) SHA1(d87cda305d054c56197112ba515299883d419bb4) )
+ ROM_LOAD16_BYTE( "256fr.c2", 0x0000001, 0x800000, CRC(C9725CD0) SHA1(59A0A2778AE35DDCAC17FBA05A81F3DA5EACA1F1) )
+ ROM_LOAD16_BYTE( "256d.c3", 0x1000000, 0x800000, CRC(bfaade82) SHA1(66b07e592c9a9b35567fe463496f8f75c32a7db9) )
+ ROM_LOAD16_BYTE( "256d.c4", 0x1000001, 0x800000, CRC(1463add6) SHA1(4db91b46d6430da272d27d00a6dc0eb25949bea1) )
+ ROM_LOAD16_BYTE( "256d.c5", 0x2000000, 0x800000, CRC(48ca7f28) SHA1(e903876be5fb4fa582c988d74c6bef1c3b9c7083) )
+ ROM_LOAD16_BYTE( "256d.c6", 0x2000001, 0x800000, CRC(806eb36f) SHA1(a412a9cab80c326733dde7652d1db2a46afb3ebb) )
+ ROM_LOAD16_BYTE( "256d.c7", 0x3000000, 0x800000, CRC(9395b809) SHA1(ca9ac9832017094eee3623f0b6c4c4b7b4f1374d) )
+ ROM_LOAD16_BYTE( "256d.c8", 0x3000001, 0x800000, CRC(a369f9d4) SHA1(f8146ea80a1a23da7e7e04c88f778ee9abdfeb5c) )
+ROM_END
+
+ROM_START( mslug3hev ) // all confirmed: mslug3ehs with new p1
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256hev.p1", 0x000000, 0x100000, CRC(c824bccc) SHA1(cfe0caff7eedd33e98cdb66d3104b11597f62089) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3kh ) /* Metal Slug 3 - Enhance by Fighters Kim and Ydmis - (Style remix 20030801) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256kh.p1", 0x000000, 0x100000, CRC(696aa1b4) SHA1(2e72191f12f4cbbddda1350fbe859e8bc70be62f) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3kho ) /* [OLD] Metal Slug 3 - Enhance by Fighters Kim and Ydmis - (See mslug3kho.txt for info 20030728) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256kho.p1", 0x000000, 0x100000, CRC(820567e4) SHA1(c23d58e3c5c185715bb65839f4a6a04767992f3d) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3nd ) // all confirmed
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256nd.p1", 0x000000, 0x100000, CRC(9c42ca85) SHA1(7a8f77a89867b889295ae9b9dfd4ba28f02d234d) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+ //NEO_SFIX_MSLUG( "256nd.s1", CRC(6d9d4d0a) SHA1(4237247494aa0d734ffc728c7fc2808aca42539e) ) // this is missing the high score text
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256d.c1", 0x0000000, 0x800000, CRC(3540398c) SHA1(0a96f2360eb26c66bf02bbc6f52230b55cc95e4e) )
+ ROM_LOAD16_BYTE( "256d.c2", 0x0000001, 0x800000, CRC(bdd220f0) SHA1(f52851023f3bc120b05f622af0e0ab1bedc41604) )
+ ROM_LOAD16_BYTE( "256d.c3", 0x1000000, 0x800000, CRC(bfaade82) SHA1(66b07e592c9a9b35567fe463496f8f75c32a7db9) )
+ ROM_LOAD16_BYTE( "256d.c4", 0x1000001, 0x800000, CRC(1463add6) SHA1(4db91b46d6430da272d27d00a6dc0eb25949bea1) )
+ ROM_LOAD16_BYTE( "256d.c5", 0x2000000, 0x800000, CRC(48ca7f28) SHA1(e903876be5fb4fa582c988d74c6bef1c3b9c7083) )
+ ROM_LOAD16_BYTE( "256d.c6", 0x2000001, 0x800000, CRC(806eb36f) SHA1(a412a9cab80c326733dde7652d1db2a46afb3ebb) )
+ ROM_LOAD16_BYTE( "256d.c7", 0x3000000, 0x800000, CRC(9395b809) SHA1(ca9ac9832017094eee3623f0b6c4c4b7b4f1374d) )
+ ROM_LOAD16_BYTE( "256d.c8", 0x3000001, 0x800000, CRC(a369f9d4) SHA1(f8146ea80a1a23da7e7e04c88f778ee9abdfeb5c) )
+ROM_END
+
+ROM_START( mslug3v ) // extreme violence
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256v.p1", 0x000000, 0x100000, CRC(47f9aeea) SHA1(db1c65681ac12b146e2fa21a8f28000f41a11fe2) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MSLUG( "256v.s1", CRC(6f8b9635) SHA1(86b0c8c0ccac913c6192ed6a96c35d4e1a5e8061) )
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+
+
+#if 0
+ROM_START( mslug4 ) /* Original Version - Encrypted GFX */ /* MVS VERSION */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263-p1.p1", 0x000000, 0x100000, CRC(27e4def3) SHA1(a08785e8145981bb6b5332a3b2df7eb321253cca) )
+ ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+
+ ROM_Y_ZOOM
+
+ /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */
+ ROM_REGION( 0x80000, "fixed", 0 ) /* larger char set */
+ ROM_FILL( 0x000000, 0x20000, 0 )
+ ROM_REGION( 0x20000, "fixedbios", 0 )
+ ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) )
+
+ NEO_BIOS_AUDIO_ENCRYPTED_128K( "263-m1.m1", CRC(46ac8228) SHA1(5aeea221050c98e4bb0f16489ce772bf1c80f787) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) )
+ ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) )
+ ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) )
+ ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) )
+ ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) )
+ ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) )
+ ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) )
+ROM_END
+#endif
+ROM_START( mslug4d )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263-p1.p1", 0x000000, 0x100000, CRC(27e4def3) SHA1(a08785e8145981bb6b5332a3b2df7eb321253cca) )
+ ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) )
+ ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "263d.c1", 0x0000000, 0x800000, CRC(a75ffcde) SHA1(97f405a95a56615ae49f79e1a69f98cc2f2434ef) )
+ ROM_LOAD16_BYTE( "263d.c2", 0x0000001, 0x800000, CRC(5ab0d12b) SHA1(8a3d95dd2e9cc1b6dcf6a957fed43ee390248307) )
+ ROM_LOAD16_BYTE( "263d.c3", 0x1000000, 0x800000, CRC(61af560c) SHA1(aa7bc45e03a6bbd18eb56d118d4932102ccb196a) )
+ ROM_LOAD16_BYTE( "263d.c4", 0x1000001, 0x800000, CRC(f2c544fd) SHA1(179b064f81b49f5808d7a7a5bce28e95b09e5abe) )
+ ROM_LOAD16_BYTE( "263d.c5", 0x2000000, 0x800000, CRC(84c66c44) SHA1(9273f44bf11891aa04ddd2cbb6442d084c2a2e04) )
+ ROM_LOAD16_BYTE( "263d.c6", 0x2000001, 0x800000, CRC(5ed018ab) SHA1(e78501fa8a80960093a4d54ce952681a98300148) )
+ROM_END
+
+ROM_START( mslug4dh ) // Super D Version
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263dh.p1", 0x000000, 0x100000, CRC(af69d959) SHA1(2bc9796003c8742d681e11ad842978d918fbae40) )
+ ROM_LOAD16_WORD_SWAP( "263dh.p2", 0x100000, 0x400000, CRC(2b863b30) SHA1(b5edc43d87faf6540e3154fcbab42efb148cbd04) )
+
+ NEO_SFIX_MSLUG( "263dh.s1", CRC(c4f4ed0e) SHA1(bbf31c879d72cc843229b03db01399af98e02f01) )
+
+ NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "263dh.v1", 0x000000, 0x800000, CRC(fd6b982e) SHA1(100313166c9ec57f1c540de05625c506b30ad13c) )
+ ROM_LOAD( "263dh.v2", 0x800000, 0x800000, CRC(20125227) SHA1(2e350c0c580e87445bf103c01fc62b14f0c19216) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "263d.c1", 0x0000000, 0x800000, CRC(a75ffcde) SHA1(97f405a95a56615ae49f79e1a69f98cc2f2434ef) )
+ ROM_LOAD16_BYTE( "263d.c2", 0x0000001, 0x800000, CRC(5ab0d12b) SHA1(8a3d95dd2e9cc1b6dcf6a957fed43ee390248307) )
+ ROM_LOAD16_BYTE( "263d.c3", 0x1000000, 0x800000, CRC(61af560c) SHA1(aa7bc45e03a6bbd18eb56d118d4932102ccb196a) )
+ ROM_LOAD16_BYTE( "263d.c4", 0x1000001, 0x800000, CRC(f2c544fd) SHA1(179b064f81b49f5808d7a7a5bce28e95b09e5abe) )
+ ROM_LOAD16_BYTE( "263d.c5", 0x2000000, 0x800000, CRC(84c66c44) SHA1(9273f44bf11891aa04ddd2cbb6442d084c2a2e04) )
+ ROM_LOAD16_BYTE( "263d.c6", 0x2000001, 0x800000, CRC(5ed018ab) SHA1(e78501fa8a80960093a4d54ce952681a98300148) )
+ROM_END
+
+ROM_START( mslug4dh1 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263dh.p1", 0x000000, 0x100000, CRC(af69d959) SHA1(2bc9796003c8742d681e11ad842978d918fbae40) )
+ ROM_LOAD16_WORD_SWAP( "263dh.p2", 0x100000, 0x400000, CRC(2b863b30) SHA1(b5edc43d87faf6540e3154fcbab42efb148cbd04) )
+
+ NEO_SFIX_128K( "263-s1.s1", CRC(a9446774) SHA1(c5a309fd8ee6d6750a15c82e710218a3755e38b2) )
+
+ NEO_BIOS_AUDIO_128K( "263nd.m1", CRC(ef5db532) SHA1(4aeba9e206b8f309610eb7e1891644f39aa61830) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "263nd.v1", 0x000000, 0x400000, CRC(c1b2af81) SHA1(532dca0a2b2e03d50c6ac3adc9ebceb413f61690) )
+ ROM_LOAD( "263nd.v2", 0x400000, 0x400000, CRC(cbbdc6fa) SHA1(06abb738cf198804248ecfc92adea38f7f86f612) )
+ ROM_LOAD( "263nd.v3", 0x800000, 0x400000, CRC(c4f1a3cc) SHA1(109e8db93875e1b1f3db293d1756b2bbebe63a28) )
+ ROM_LOAD( "263nd.v4", 0xC00000, 0x400000, CRC(40126a0a) SHA1(4234e0f4d9a9dc486d7af1eec91a17840a57976d) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "263nd.c1", 0x0000000, 0x800000, CRC(361ddda6) SHA1(95f329019660f1ec7f15f6ea1e0c2bfc84b02ca8) )
+ ROM_LOAD16_BYTE( "263nd.c2", 0x0000001, 0x800000, CRC(15d192c4) SHA1(0b9afb62a1d4d764d616408b09e17a05fc4a87e7) )
+ ROM_LOAD16_BYTE( "263nd.c3", 0x1000000, 0x800000, CRC(63fb79ff) SHA1(a7da0a554034792721abda4369a71b0c8045f334) )
+ ROM_LOAD16_BYTE( "263nd.c4", 0x1000001, 0x800000, CRC(e8623126) SHA1(66c2b874cd55c628e7e6768d6f31180c29a734e7) )
+ ROM_LOAD16_BYTE( "263nd.c5", 0x2000000, 0x400000, CRC(3348DC5D) SHA1(a119e80aa2b36a7d8c7e8debd0eb13441a19adff) )
+ ROM_LOAD16_BYTE( "263nd.c6", 0x2000001, 0x400000, CRC(D90FC1A0) SHA1(0eaf5f658212c19a4cdbcdbff3b04389a2be76bb) )
+ROM_END
+
+ROM_START( mslug4eh ) /* Metal Slug 4 - Enhance by Creamymami - (Style remix 20030414) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263eh.p1", 0x000000, 0x100000, CRC(42866fc5) SHA1(0ef57352b28fae2b884dfc021a2fd0bdf36456cb) )
+ ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) )
+ ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) )
+ ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) )
+ ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) )
+ ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) )
+ ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) )
+ ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) )
+ROM_END
+
+ROM_START( mslug4eh2 ) /* Metal Slug 4 - Enhance by Creamymami - (Style remix 20030414) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263eh2.p1", 0x000000, 0x100000, CRC(2cb01721) SHA1(9a7e3a28f9f26848f36fa19d66ae9b7588e8dd7e) )
+ ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) )
+ ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) )
+ ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) )
+ ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) )
+ ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) )
+ ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) )
+ ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) )
+ROM_END
+
+ROM_START( mslug4eh3 ) /* Metal Slug 4 - Enhance by Creamymami - (Style remix 20030414) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263eh3.p1", 0x000000, 0x100000, CRC(628f101f) SHA1(fc787b550c788dd8d8207927d679dd8ad7b50eb1) )
+ ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) )
+ ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) )
+ ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) )
+ ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) )
+ ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) )
+ ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) )
+ ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) )
+ROM_END
+
+ROM_START( mslug4eh4 ) /* Metal Slug 4 - Enhance by Creamymami - (Style remix 20030414) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263eh4.p1", 0x000000, 0x100000, CRC(3d08cdbd) SHA1(b311a52c794e3ffc623dff6ead91ccd79c2f2af9) )
+ ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) )
+ ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) )
+ ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) )
+ ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) )
+ ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) )
+ ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) )
+ ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) )
+ROM_END
+
+ROM_START( mslug4eh5 ) /* Metal Slug 4 - Enhance by Creamymami - (Style remix 20030414) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263eh5.p1", 0x000000, 0x100000, CRC(35d4a0f3) SHA1(94c55dfe8d00c1920b14fc1770a626fd4bdec325) )
+ ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) )
+ ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) )
+ ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) )
+ ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) )
+ ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) )
+ ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) )
+ ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) )
+ROM_END
+
+ROM_START( mslug4eh6 ) /* Metal Slug 4 - Enhance by Creamymami - (Style remix 20030414) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263eh6.p1", 0x000000, 0x100000, CRC(246c7a6f) SHA1(46607bbd256b3af5092526f8dd57e0b211e55d88) )
+ ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) )
+ ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) )
+ ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) )
+ ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) )
+ ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) )
+ ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) )
+ ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) )
+ROM_END
+
+ROM_START( mslug4eho ) /* [OLD] Metal Slug 4 - Enhance by Creamymami - (Style remix 20030414) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263eho.p1", 0x000000, 0x100000, CRC(41fea527) SHA1(17a8cf630b2ad6e58c51a2f1d01ceff2d1ef970e) )
+ ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) )
+ ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) )
+ ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) )
+ ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) )
+ ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) )
+ ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) )
+ ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) )
+ROM_END
+
+ROM_START( mslug4fr ) /* Metal Slug 4 - Translation Hack by NEO-ARC - (French translation) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263fr.p1", 0x000000, 0x100000, CRC(a1343a37) SHA1(23ead1154427c67881b4670fd8ecf5089e32ac0b) )
+ ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) )
+ ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) )
+ ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) )
+ ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) )
+ ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) )
+ ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) )
+ ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) )
+ROM_END
+
+ROM_START( mslug4i ) /* NeoArc Italian translation */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263i.p1", 0x000000, 0x100000, CRC(ffb20602) SHA1(4d3103d613a2452c95ae15b70670664354dce67b) )
+ ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+
+ NEO_SFIX_MSLUG( "263i.s1", CRC(1f67801e) SHA1(87c33e74599ca063da459f3c8562447bccc104e3) )
+
+ NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) )
+ ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) )
+ ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) )
+ ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) )
+ ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) )
+ ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) )
+ ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) )
+ROM_END
+
+ROM_START( mslug4i1 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263i.p1", 0x000000, 0x100000, CRC(ffb20602) SHA1(4d3103d613a2452c95ae15b70670664354dce67b) )
+ ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+
+ NEO_SFIX_128K( "263i.s1", CRC(1f67801e) SHA1(87c33e74599ca063da459f3c8562447bccc104e3) )
+
+ NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "263nd.v1", 0x000000, 0x400000, CRC(c1b2af81) SHA1(532dca0a2b2e03d50c6ac3adc9ebceb413f61690) )
+ ROM_LOAD( "263nd.v2", 0x400000, 0x400000, CRC(cbbdc6fa) SHA1(06abb738cf198804248ecfc92adea38f7f86f612) )
+ ROM_LOAD( "263nd.v3", 0x800000, 0x400000, CRC(c4f1a3cc) SHA1(109e8db93875e1b1f3db293d1756b2bbebe63a28) )
+ ROM_LOAD( "263nd.v4", 0xC00000, 0x400000, CRC(40126a0a) SHA1(4234e0f4d9a9dc486d7af1eec91a17840a57976d) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "263nd.c1", 0x0000000, 0x800000, CRC(361ddda6) SHA1(95f329019660f1ec7f15f6ea1e0c2bfc84b02ca8) )
+ ROM_LOAD16_BYTE( "263nd.c2", 0x0000001, 0x800000, CRC(15d192c4) SHA1(0b9afb62a1d4d764d616408b09e17a05fc4a87e7) )
+ ROM_LOAD16_BYTE( "263nd.c3", 0x1000000, 0x800000, CRC(63fb79ff) SHA1(a7da0a554034792721abda4369a71b0c8045f334) )
+ ROM_LOAD16_BYTE( "263nd.c4", 0x1000001, 0x800000, CRC(e8623126) SHA1(66c2b874cd55c628e7e6768d6f31180c29a734e7) )
+ ROM_LOAD16_BYTE( "263nd.c5", 0x2000000, 0x400000, CRC(3348DC5D) SHA1(a119e80aa2b36a7d8c7e8debd0eb13441a19adff) )
+ ROM_LOAD16_BYTE( "263nd.c6", 0x2000001, 0x400000, CRC(D90FC1A0) SHA1(0eaf5f658212c19a4cdbcdbff3b04389a2be76bb) )
+ROM_END
+
+ROM_START( mslug4kh ) /* Metal Slug 4 - Enhance by Creamymami and Fighters Kim - (Style remix 20030731) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263kh.p1", 0x000000, 0x100000, CRC(883680c2) SHA1(9ba71d9cf4eb8615cf6fe94b74c6436876dcb0b2) )
+ ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) )
+ ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) )
+ ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) )
+ ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) )
+ ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) )
+ ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) )
+ ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) )
+ROM_END
+
+ROM_START( mslug4lw )
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263lw.p1", 0x000000, 0x100000, CRC(783438fa) SHA1(7c15f902a319fb7c769c21bb1a860216a9691354) )
+ ROM_LOAD16_WORD_SWAP( "263lw.p2", 0x100000, 0x800000, CRC(5c897ae8) SHA1(d92739fc76b156447ffb3c18a93481d7f036d228) )
+
+ NEO_SFIX_128K( "263-s1.s1", CRC(a9446774) SHA1(c5a309fd8ee6d6750a15c82e710218a3755e38b2) )
+
+ NEO_BIOS_AUDIO_128K( "263nd.m1", CRC(ef5db532) SHA1(4aeba9e206b8f309610eb7e1891644f39aa61830) )
+
+ ROM_REGION( 0x1400000, "ymsnd", 0 )
+ ROM_LOAD( "263lw.v1", 0x000000, 0x400000, CRC(8cb5a9ef) SHA1(272ad312f8694acf9190ebf48d1c8a5fec73c130) )
+ ROM_LOAD( "263lw.v2", 0x400000, 0x400000, CRC(94217b1e) SHA1(c468a192e2ec0952a20cfd9e391cf6c12346efb3) )
+ ROM_LOAD( "263lw.v3", 0x800000, 0x400000, CRC(7616fcec) SHA1(83006094379d0373b967603dcaa1cec69c2f746f) )
+ ROM_LOAD( "263lw.v4", 0xC00000, 0x800000, CRC(6ac7ed2f) SHA1(4beb76d149e9e3d8b2c760a468d47fca260b2842) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "263nd.c1", 0x0000000, 0x800000, CRC(361ddda6) SHA1(95f329019660f1ec7f15f6ea1e0c2bfc84b02ca8) )
+ ROM_LOAD16_BYTE( "263nd.c2", 0x0000001, 0x800000, CRC(15d192c4) SHA1(0b9afb62a1d4d764d616408b09e17a05fc4a87e7) )
+ ROM_LOAD16_BYTE( "263lw.c3", 0x1000000, 0x800000, CRC(e296612c) SHA1(57eb1861b738247aaf0643641268f676b71ed025) )
+ ROM_LOAD16_BYTE( "263lw.c4", 0x1000001, 0x800000, CRC(c22e3ad0) SHA1(11ce301d4e5b4b1b76e2b82d18c4a9b8b56eeb20) )
+ ROM_LOAD16_BYTE( "263lw.c5", 0x2000000, 0x400000, CRC(288cd91f) SHA1(a195be13d4ef19705cd3f08be1ec8cdacb29f159) )
+ ROM_LOAD16_BYTE( "263lw.c6", 0x2000001, 0x400000, CRC(b015aeee) SHA1(24e12e72b82eea9e52a4cefc774efb3bd7db822f) )
+ROM_END
+
+ROM_START( mslug4nd )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263nd.p1", 0x000000, 0x100000, CRC(4D7E6624) SHA1(125d5203e89cce23a851fa74cc8cbe003ef978f3) )
+ ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+
+ NEO_SFIX_128K( "263-s1.s1", CRC(a9446774) SHA1(c5a309fd8ee6d6750a15c82e710218a3755e38b2) )
+
+ NEO_BIOS_AUDIO_128K( "263nd.m1", CRC(ef5db532) SHA1(4aeba9e206b8f309610eb7e1891644f39aa61830) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "263nd.v1", 0x000000, 0x400000, CRC(c1b2af81) SHA1(532dca0a2b2e03d50c6ac3adc9ebceb413f61690) )
+ ROM_LOAD( "263nd.v2", 0x400000, 0x400000, CRC(cbbdc6fa) SHA1(06abb738cf198804248ecfc92adea38f7f86f612) )
+ ROM_LOAD( "263nd.v3", 0x800000, 0x400000, CRC(c4f1a3cc) SHA1(109e8db93875e1b1f3db293d1756b2bbebe63a28) )
+ ROM_LOAD( "263nd.v4", 0xC00000, 0x400000, CRC(40126a0a) SHA1(4234e0f4d9a9dc486d7af1eec91a17840a57976d) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "263nd.c1", 0x0000000, 0x800000, CRC(361ddda6) SHA1(95f329019660f1ec7f15f6ea1e0c2bfc84b02ca8) )
+ ROM_LOAD16_BYTE( "263nd.c2", 0x0000001, 0x800000, CRC(15d192c4) SHA1(0b9afb62a1d4d764d616408b09e17a05fc4a87e7) )
+ ROM_LOAD16_BYTE( "263nd.c3", 0x1000000, 0x800000, CRC(63fb79ff) SHA1(a7da0a554034792721abda4369a71b0c8045f334) )
+ ROM_LOAD16_BYTE( "263nd.c4", 0x1000001, 0x800000, CRC(e8623126) SHA1(66c2b874cd55c628e7e6768d6f31180c29a734e7) )
+ ROM_LOAD16_BYTE( "263nd.c5", 0x2000000, 0x400000, CRC(3348DC5D) SHA1(a119e80aa2b36a7d8c7e8debd0eb13441a19adff) )
+ ROM_LOAD16_BYTE( "263nd.c6", 0x2000001, 0x400000, CRC(D90FC1A0) SHA1(0eaf5f658212c19a4cdbcdbff3b04389a2be76bb) )
+ROM_END
+
+ROM_START( mslug4sp ) // all confirmed: same as mslug4 except p roms
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263sp.p1", 0x000000, 0x100000, CRC(44b6f3d7) SHA1(d6c9b84e1758f731be21c7506ffb5c8837fbc19c) )
+ ROM_LOAD16_WORD_SWAP( "263dh.p2", 0x100000, 0x400000, CRC(2b863b30) SHA1(b5edc43d87faf6540e3154fcbab42efb148cbd04) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_ENCRYPTED_128K( "263-m1.m1", CRC(46ac8228) SHA1(5aeea221050c98e4bb0f16489ce772bf1c80f787) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) )
+ ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) )
+ ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) )
+ ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) )
+ ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) )
+ ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) )
+ ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) )
+ROM_END
+
+
+
+#if 0
+ROM_START( mslug5 ) /* Encrypted Set */ /* MVS VERSION */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD32_WORD_SWAP( "268-p1cr.p1", 0x000000, 0x400000, CRC(d0466792) SHA1(880819933d997fab398f91061e9dbccb959ae8a1) )
+ ROM_LOAD32_WORD_SWAP( "268-p2cr.p2", 0x000002, 0x400000, CRC(fbf6b61e) SHA1(9ec743d5988b5e3183f37f8edf45c72a8c0c893e) )
+
+ ROM_Y_ZOOM
+
+ /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */
+ ROM_REGION( 0x20000, "fixed", 0 )
+ ROM_FILL( 0x000000, 0x20000, 0 )
+ ROM_REGION( 0x20000, "fixedbios", 0 )
+ ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) )
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "268-m1.m1", CRC(4a5a6e0e) SHA1(df0f660f2465e1db7be5adfcaf5e88ad61a74a42) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) )
+ ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "268-c1c.c1", 0x0000000, 0x800000, CRC(ab7c389a) SHA1(025a188de589500bf7637fa8e7a37ab24bf4312e) )
+ ROM_LOAD16_BYTE( "268-c2c.c2", 0x0000001, 0x800000, CRC(3560881b) SHA1(493d218c92290b4770024d6ee2917c4022753b07) )
+ ROM_LOAD16_BYTE( "268-c3c.c3", 0x1000000, 0x800000, CRC(3af955ea) SHA1(cf36b6ae9b0d12744b17cb7a928399214de894be) )
+ ROM_LOAD16_BYTE( "268-c4c.c4", 0x1000001, 0x800000, CRC(c329c373) SHA1(5073d4079958a0ef5426885af2c9e3178f37d5e0) )
+ ROM_LOAD16_BYTE( "268-c5c.c5", 0x2000000, 0x800000, CRC(959c8177) SHA1(889bda7c65d71172e7d89194d1269561888fe789) )
+ ROM_LOAD16_BYTE( "268-c6c.c6", 0x2000001, 0x800000, CRC(010a831b) SHA1(aec140661e3ae35d264df416478ba15188544d91) )
+ ROM_LOAD16_BYTE( "268-c7c.c7", 0x3000000, 0x800000, CRC(6d72a969) SHA1(968dd9a4d1209b770b9b85ea6532fa24d262a262) )
+ ROM_LOAD16_BYTE( "268-c8c.c8", 0x3000001, 0x800000, CRC(551d720e) SHA1(ebf69e334fcaba0fda6fd432fd0970283a365d12) )
+ROM_END
+#endif
+ROM_START( ms5boot ) /* Bootleg / Hack of Metal Slug 5 */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ // not sure if it's actually bad, or some weird protection
+ ROM_LOAD16_WORD_SWAP( "268boot.p1", 0x000000, 0x100000, BAD_DUMP CRC(e6d297af) SHA1(5bb3f72ce26e3f46c523b955f425056eb246e855) )
+ // this one fixes all the issues
+ ROM_LOAD16_WORD_SWAP( "268nd.p1", 0x000000, 0x100000, CRC(ca50afdf) SHA1(e3780b77f20d139a0dcaa2ded2c6ee323b8b4279) )
+ ROM_LOAD16_WORD_SWAP( "268boot.p2", 0x100000, 0x100000, CRC(3fc46cfa) SHA1(f20d3d359f6cdbf6aabb6920020621b02bafee91) )
+ ROM_CONTINUE(0x300000, 0x100000 )
+ ROM_LOAD16_WORD_SWAP( "268boot.p3", 0x200000, 0x100000, CRC(742c955a) SHA1(96c0f08b1f2f6877f5169a96c13b67f3be6082c6) )
+ ROM_CONTINUE(0x400000, 0x100000 )
+
+ NEO_SFIX_MT_512K
+ //NEO_SFIX_MSLUG( "268boot.s1", CRC(52a8c09b) SHA1(3a90d8e44aa7cbc79945f8ece0e2fb9ce3e5a4c7) ) // corrupt?
+
+ NEO_BIOS_AUDIO_256K( "268boot.m1", CRC(792e07c1) SHA1(117516e8ec9026c7682ab27857aab6639bef5835) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "268boot.v1", 0x000000, 0x400000, CRC(c3540e0d) SHA1(bf7ca3abe291b28a4cfaef791f0c556cc98ad8d8) )
+ ROM_LOAD( "268boot.v2", 0x400000, 0x400000, CRC(077bd2f4) SHA1(1699959d17f8c7113cebdb9da2e1cd18ce48486c) )
+ ROM_LOAD( "268boot.v3", 0x800000, 0x400000, CRC(39b14567) SHA1(1658612a93ba30130f9260bc41d3f18f6b90c1e7) )
+ ROM_LOAD( "268boot.v4", 0xc00000, 0x400000, CRC(969ff3b2) SHA1(50feceb741a1c08b000b077a33151ab1352eb798) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "268d.c1", 0x0000000, 0x800000, CRC(969c0d62) SHA1(DE3C5CFA980CCA2FAB0416AC0D292948B5D4C9C3) )
+ ROM_LOAD16_BYTE( "268d.c2", 0x0000001, 0x800000, CRC(c69ae867) SHA1(3198EE5C7C2C7563B49EBD9F7BA95D9B0B303F6C) )
+ ROM_LOAD16_BYTE( "268d.c3", 0x1000000, 0x800000, CRC(d7beaeaf) SHA1(99443EA4C1BAB45F1977A390EB7E1A0163915110) )
+ ROM_LOAD16_BYTE( "268nd.c4", 0x1000001, 0x800000, CRC(E1B1131B) SHA1(68A36D336582069E79AD481638D92F57C4CD6523) )
+ ROM_LOAD16_BYTE( "268d.c5", 0x2000000, 0x800000, CRC(2fa1a5ad) SHA1(4AE15D29BA979601598EDDF8905072FE1D9E0A98) )
+ ROM_LOAD16_BYTE( "268d.c6", 0x2000001, 0x800000, CRC(6de89589) SHA1(86A6C036BF51AF516FEA83A30874026EC1586A83) )
+ ROM_LOAD16_BYTE( "268d.c7", 0x3000000, 0x800000, CRC(97bd0c0a) SHA1(30F3280FE527098ECF46541CC645A59B366105EA) )
+ ROM_LOAD16_BYTE( "268d.c8", 0x3000001, 0x800000, CRC(c0d5bc20) SHA1(B5D0D81D5CC624538B0651C568295E578A1330D1) )
+ROM_END
+
+ROM_START( ms5pcbd )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD32_WORD_SWAP( "268-p1r.p1", 0x000000, 0x400000, CRC(d0466792) SHA1(880819933d997fab398f91061e9dbccb959ae8a1) )
+ ROM_LOAD32_WORD_SWAP( "268-p2r.p2", 0x000002, 0x400000, CRC(fbf6b61e) SHA1(9ec743d5988b5e3183f37f8edf45c72a8c0c893e) )
+
+ NEO_SFIX_MT_512K
+
+ ROM_REGION16_BE( 0x80000, "mainbios", 0 )
+ /* this contains both an ASIA and JAPAN bios, HARDDIP3 on the PCB selects which to use */
+ ROM_LOAD16_WORD_SWAP( "sp-4x.sp1", 0x00000, 0x80000, CRC(b4590283) SHA1(47047ed5b6062babc0a0bebcc30e4b3f021e115a) )
+
+ /* Encrypted, we load it here for reference and replace with decrypted ROM */
+ // ROM_LOAD( "268-m1.bin", 0x00000, 0x10000, CRC(58b107d0) SHA1(cc7fe66ff4f9c026cde4df06f86c848eb21f7af8) )
+ //NEO_BIOS_AUDIO_64K( "268d.m1", CRC(3c0655a7) SHA1(ae839d4c2b87a7aa3dd8e5caddc43eb75ee9b732) )
+ ROM_REGION( 0x80000, "audiocrypt", 0 )
+ ROM_LOAD( "268-m1.m1", 0x00000, 0x80000, CRC(4a5a6e0e) SHA1(df0f660f2465e1db7be5adfcaf5e88ad61a74a42) ) /* mask rom TC534000 */
+ ROM_REGION( 0x90000, "audiocpu", ROMREGION_ERASEFF )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "268pcbd.v1", 0x000000, 0x1000000, CRC(4182838b) SHA1(03e58b6709db467e92397b26b84658f5adb0ff92) )
+// ROM_LOAD( "268-v1.v1", 0x000000, 0x1000000, CRC(8458afe5) SHA1(62b4c6e7db763e9ff2697bbcdb43dc5a56b48c68) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "268pcbd.c1", 0x0000000, 0x1000000, CRC(996debed) SHA1(ec6965a24862541f337a1b7e259038b9b40ad1d2) )
+ ROM_LOAD16_BYTE( "268pcbd.c2", 0x0000001, 0x1000000, CRC(960a9764) SHA1(687cf957d91ef9da219b573f444e668209dcea41) )
+ ROM_LOAD16_BYTE( "268pcbd.c3", 0x2000000, 0x1000000, CRC(f699994f) SHA1(ff079d3c126e9611760956d51c5df66d8013dd78) )
+ ROM_LOAD16_BYTE( "268pcbd.c4", 0x2000001, 0x1000000, CRC(49e902e8) SHA1(289a560ffe3d50abd773c61fa2df3c1f18d7e803) )
+ROM_END
+
+ROM_START( ms5sp ) // all confirmed: ms5plus with p1 changed
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "268sp.p1", 0x000000, 0x100000, CRC(540cd43f) SHA1(29378262a40e09f21dc6f033b8a97463caf5f1a9) )
+ ROM_LOAD16_WORD_SWAP( "ms5-p2p.bin", 0x100000, 0x200000, CRC(d6a458e8) SHA1(c0a8bdae06d62859fb6734766ccc190eb2a809a4) )
+ ROM_LOAD16_WORD_SWAP( "ms5-p3p.bin", 0x300000, 0x200000, CRC(439ec031) SHA1(f0ad8f9be7d26bc504593c1321bd23c286a221f0) )
+
+ NEO_SFIX_128K( "ms5-s1p.bin", CRC(21e04432) SHA1(10057a2aa487087f7143d1d69fdad978a6bef0f7) )
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "268-m1.m1", CRC(4a5a6e0e) SHA1(df0f660f2465e1db7be5adfcaf5e88ad61a74a42) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) )
+ ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "268-c1c.c1", 0x0000000, 0x800000, CRC(ab7c389a) SHA1(025a188de589500bf7637fa8e7a37ab24bf4312e) )
+ ROM_LOAD16_BYTE( "268-c2c.c2", 0x0000001, 0x800000, CRC(3560881b) SHA1(493d218c92290b4770024d6ee2917c4022753b07) )
+ ROM_LOAD16_BYTE( "268-c3c.c3", 0x1000000, 0x800000, CRC(3af955ea) SHA1(cf36b6ae9b0d12744b17cb7a928399214de894be) )
+ ROM_LOAD16_BYTE( "268-c4c.c4", 0x1000001, 0x800000, CRC(c329c373) SHA1(5073d4079958a0ef5426885af2c9e3178f37d5e0) )
+ ROM_LOAD16_BYTE( "268-c5c.c5", 0x2000000, 0x800000, CRC(959c8177) SHA1(889bda7c65d71172e7d89194d1269561888fe789) )
+ ROM_LOAD16_BYTE( "268-c6c.c6", 0x2000001, 0x800000, CRC(010a831b) SHA1(aec140661e3ae35d264df416478ba15188544d91) )
+ ROM_LOAD16_BYTE( "268-c7c.c7", 0x3000000, 0x800000, CRC(6d72a969) SHA1(968dd9a4d1209b770b9b85ea6532fa24d262a262) )
+ ROM_LOAD16_BYTE( "268-c8c.c8", 0x3000001, 0x800000, CRC(551d720e) SHA1(ebf69e334fcaba0fda6fd432fd0970283a365d12) )
+ROM_END
+
+ROM_START( mslug5b )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "268b.p1", 0x000000, 0x100000, CRC(d05853ea) SHA1(8bb284d8f937b1b50d28d207f5fd262e4ed1d96c) )
+ ROM_CONTINUE( 0x200000, 0x100000 )
+ ROM_CONTINUE( 0x400000, 0x100000 )
+ ROM_CONTINUE( 0x300000, 0x100000 )
+ ROM_CONTINUE( 0x500000, 0x100000 )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "268-m1.m1", CRC(4a5a6e0e) SHA1(df0f660f2465e1db7be5adfcaf5e88ad61a74a42) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) )
+ ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "268-c1c.c1", 0x0000000, 0x800000, CRC(ab7c389a) SHA1(025a188de589500bf7637fa8e7a37ab24bf4312e) )
+ ROM_LOAD16_BYTE( "268-c2c.c2", 0x0000001, 0x800000, CRC(3560881b) SHA1(493d218c92290b4770024d6ee2917c4022753b07) )
+ ROM_LOAD16_BYTE( "268-c3c.c3", 0x1000000, 0x800000, CRC(3af955ea) SHA1(cf36b6ae9b0d12744b17cb7a928399214de894be) )
+ ROM_LOAD16_BYTE( "268-c4c.c4", 0x1000001, 0x800000, CRC(c329c373) SHA1(5073d4079958a0ef5426885af2c9e3178f37d5e0) )
+ ROM_LOAD16_BYTE( "268-c5c.c5", 0x2000000, 0x800000, CRC(959c8177) SHA1(889bda7c65d71172e7d89194d1269561888fe789) )
+ ROM_LOAD16_BYTE( "268-c6c.c6", 0x2000001, 0x800000, CRC(010a831b) SHA1(aec140661e3ae35d264df416478ba15188544d91) )
+ ROM_LOAD16_BYTE( "268-c7c.c7", 0x3000000, 0x800000, CRC(6d72a969) SHA1(968dd9a4d1209b770b9b85ea6532fa24d262a262) )
+ ROM_LOAD16_BYTE( "268-c8c.c8", 0x3000001, 0x800000, CRC(551d720e) SHA1(ebf69e334fcaba0fda6fd432fd0970283a365d12) )
+ROM_END
+
+ROM_START( mslug5d )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD32_WORD_SWAP( "268-p1cr.p1", 0x000000, 0x400000, CRC(d0466792) SHA1(880819933d997fab398f91061e9dbccb959ae8a1) )
+ ROM_LOAD32_WORD_SWAP( "268-p2cr.p2", 0x000002, 0x400000, CRC(fbf6b61e) SHA1(9ec743d5988b5e3183f37f8edf45c72a8c0c893e) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "268d.m1", CRC(3c0655a7) SHA1(ae839d4c2b87a7aa3dd8e5caddc43eb75ee9b732) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) )
+ ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "268d.c1", 0x0000000, 0x800000, CRC(969c0d62) SHA1(DE3C5CFA980CCA2FAB0416AC0D292948B5D4C9C3) )
+ ROM_LOAD16_BYTE( "268d.c2", 0x0000001, 0x800000, CRC(c69ae867) SHA1(3198EE5C7C2C7563B49EBD9F7BA95D9B0B303F6C) )
+ ROM_LOAD16_BYTE( "268d.c3", 0x1000000, 0x800000, CRC(d7beaeaf) SHA1(99443EA4C1BAB45F1977A390EB7E1A0163915110) )
+ ROM_LOAD16_BYTE( "268d.c4", 0x1000001, 0x800000, CRC(899fb2af) SHA1(A06A424C813C1B4F922C5404405779F605C90A06) )
+ ROM_LOAD16_BYTE( "268d.c5", 0x2000000, 0x800000, CRC(2fa1a5ad) SHA1(4AE15D29BA979601598EDDF8905072FE1D9E0A98) )
+ ROM_LOAD16_BYTE( "268d.c6", 0x2000001, 0x800000, CRC(6de89589) SHA1(86A6C036BF51AF516FEA83A30874026EC1586A83) )
+ ROM_LOAD16_BYTE( "268d.c7", 0x3000000, 0x800000, CRC(97bd0c0a) SHA1(30F3280FE527098ECF46541CC645A59B366105EA) )
+ ROM_LOAD16_BYTE( "268d.c8", 0x3000001, 0x800000, CRC(c0d5bc20) SHA1(B5D0D81D5CC624538B0651C568295E578A1330D1) )
+ROM_END
+
+ROM_START( mslug5d1 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "268nd.p1", 0x000000, 0x100000, CRC(ca50afdf) SHA1(e3780b77f20d139a0dcaa2ded2c6ee323b8b4279) )
+ ROM_LOAD16_WORD_SWAP( "268nd.p2", 0x100000, 0x400000, CRC(768ee64a) SHA1(76a65a69aee749758a2101aabdd44f3404838b54) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "268-m1.m1", CRC(4a5a6e0e) SHA1(df0f660f2465e1db7be5adfcaf5e88ad61a74a42) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) )
+ ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "268hd.c1", 0x0000000, 0x800000, CRC(e8239365) SHA1(E0A75902A783110049730B66AD3CBCCDD804BF62) )
+ ROM_LOAD16_BYTE( "268hd.c2", 0x0000001, 0x800000, CRC(89b21d4c) SHA1(862AC31CE9570529B33E6F58ADA0AC867A442679) )
+ ROM_LOAD16_BYTE( "268hd.c3", 0x1000000, 0x800000, CRC(3cda13a0) SHA1(5D029C92688384EAFD65AD711A2954D0B86A3163) )
+ ROM_LOAD16_BYTE( "268hd.c4", 0x1000001, 0x800000, CRC(9c00160d) SHA1(C612102F9CD288BBA4C245B5855D795E4362B217) )
+ ROM_LOAD16_BYTE( "268hd.c5", 0x2000000, 0x800000, CRC(38754256) SHA1(744D91D041998CA27EE2781188746797C65377BD) )
+ ROM_LOAD16_BYTE( "268hd.c6", 0x2000001, 0x800000, CRC(59d33e9c) SHA1(ED7F5C7DB4C35EC5A7DB0AD5436110B3FE80B89A) )
+ ROM_LOAD16_BYTE( "268hd.c7", 0x3000000, 0x800000, CRC(c9f8c357) SHA1(7064224AFA887F57245F5479B0B46228539A131B) )
+ ROM_LOAD16_BYTE( "268hd.c8", 0x3000001, 0x800000, CRC(fafc3eb9) SHA1(F4F73194CC7FD151BE3CA2561F993B5BE7628369) )
+ROM_END
+
+ROM_START( mslug5f ) // all confirmed: mslug5lvf with different p1 rom
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "268f.p1", 0x000000, 0x100000, CRC(6be7043d) SHA1(caaf24cc653abbd435de7732f6489c613f3911ac) )
+ ROM_LOAD16_WORD_SWAP( "268lvf.p2", 0x100000, 0x400000, CRC(f06c589a) SHA1(0882ee5221ab873f87a719e34bd5250b79b82730) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_512K( "268l9a.m1", CRC(464c72ad) SHA1(9e8a01c2bad897e2bbf32563a30f0474f8fcd2b5) )
+
+ ROM_REGION( 0x1037510, "ymsnd", 0 )
+ ROM_LOAD( "268l9b.v1", 0x000000, 0x400000, CRC(fcc8ba01) SHA1(c187c318c65f6aefae05e6cef9f17492edf2e4db) )
+ ROM_LOAD( "268l9b.v2", 0x400000, 0x400000, CRC(386f32bd) SHA1(d49fc812c442563b9e82da43bf5c6b9deea0f687) )
+ ROM_LOAD( "268l9b.v3", 0x800000, 0x400000, CRC(dc737e12) SHA1(f940ea767404f6a15dea526eda56ad66517ba79e) )
+ ROM_LOAD( "268l9b.v4", 0xc00000, 0x437510, CRC(2b310542) SHA1(5f0050d36cd1f722d78d9ae98db537eacc4d8548) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "268l9b.c1", 0x0000000, 0x800000, CRC(aad8ff17) SHA1(f8c5f7bd9aa4b930ceb38b25934650ac810563df) )
+ ROM_LOAD16_BYTE( "268l9b.c2", 0x0000001, 0x800000, CRC(b0404dd4) SHA1(0ab1f81072dac777c3269811dfb69cb40bd7a245) )
+ ROM_LOAD16_BYTE( "268l9b.c3", 0x1000000, 0x800000, CRC(95dda158) SHA1(7ec4625a17f815e8d7e690cb01f3c9dbce75e39b) )
+ ROM_LOAD16_BYTE( "268l9b.c4", 0x1000001, 0x800000, CRC(c052cf1f) SHA1(198041e813914570b943fc1927e986e5553c6bd4) )
+ ROM_LOAD16_BYTE( "268l9b.c5", 0x2000000, 0x800000, CRC(8b9f7e21) SHA1(0dcefc5efc67d520a880b3da6122c342ebdc5e2f) )
+ ROM_LOAD16_BYTE( "268l9b.c6", 0x2000001, 0x800000, CRC(4a0693cf) SHA1(c4bdf72754f85250dfccdd4444941931a6596569) )
+ ROM_LOAD16_BYTE( "268l9b.c7", 0x3000000, 0x800000, CRC(3ad5eaf4) SHA1(b4c4cf0425d42bd47bc85acfab93006c003af341) )
+ ROM_LOAD16_BYTE( "268l9b.c8", 0x3000001, 0x800000, CRC(3e7c670d) SHA1(166eda40c01d01b1d8ec82f2482e8cb4e5ca0e79) )
+ROM_END
+
+ROM_START( mslug5fr ) /* Metal Slug 5 - French translation - NeoArc */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "268fr.p1", 0x000000, 0x100000, CRC(63cc3c2d) SHA1(b4543c65427d15f784641617dcab53663031a9f3) )
+ ROM_LOAD16_WORD_SWAP( "268nd.p2", 0x100000, 0x400000, CRC(768ee64a) SHA1(76a65a69aee749758a2101aabdd44f3404838b54) )
+
+ NEO_SFIX_128K( "268fr.s1", CRC(77b18feb) SHA1(2d7cb5838730bfcb45eceeef11557cbcab8aa9da) )
+
+ NEO_BIOS_AUDIO_64K( "268d.m1", CRC(3c0655a7) SHA1(ae839d4c2b87a7aa3dd8e5caddc43eb75ee9b732) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "268fr.v1", 0x000000, 0x800000, CRC(7ff6ca47) SHA1(e36c4e6a349dd9fd38d1a36b6760bbd943c2a42f) )
+ ROM_LOAD( "268fr.v2", 0x800000, 0x800000, CRC(696cce3b) SHA1(538d4a25befa4ffd25a48df97380469c13980f7a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "268fr.c1", 0x0000000, 0x800000, CRC(c115bcbd) SHA1(241b71cb442844df0f1c7005955c5ae85b95a0b9) )
+ ROM_LOAD16_BYTE( "268fr.c2", 0x0000001, 0x800000, CRC(a95f284f) SHA1(db6b18b15f871ac17e88d2eec72b95c8a63be959) )
+ ROM_LOAD16_BYTE( "268hd.c3", 0x1000000, 0x800000, CRC(3cda13a0) SHA1(5d029c92688384eafd65ad711a2954d0b86a3163) )
+ ROM_LOAD16_BYTE( "268hd.c4", 0x1000001, 0x800000, CRC(9c00160d) SHA1(c612102f9cd288bba4c245b5855d795e4362b217) )
+ ROM_LOAD16_BYTE( "268fr.c5", 0x2000000, 0x800000, CRC(dae4bdba) SHA1(c7da602cc59296fd264fd2f97b29bc242340760f) )
+ ROM_LOAD16_BYTE( "268fr.c6", 0x2000001, 0x800000, CRC(731a14ce) SHA1(2363d3f0f2e2a621051de0db6e465f7b1a387ef9) )
+ ROM_LOAD16_BYTE( "268fr.c7", 0x3000000, 0x800000, CRC(bc8296af) SHA1(4309d093c09219fb90104d30211c204a2abcf82e) )
+ ROM_LOAD16_BYTE( "268fr.c8", 0x3000001, 0x800000, CRC(6fabe6d5) SHA1(12c23b85de985b4daba7def1d9d9d9b4c050ab63) )
+ROM_END
+
+ROM_START( mslug5fr1 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "268fr1.p1", 0x000000, 0x100000, CRC(0ee0d5c7) SHA1(10209cd9757b212708c569656d5c935c7bd4a5b3) )
+ ROM_LOAD16_WORD_SWAP( "268nd.p2", 0x100000, 0x400000, CRC(768ee64a) SHA1(76a65a69aee749758a2101aabdd44f3404838b54) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "268d.m1", CRC(3c0655a7) SHA1(ae839d4c2b87a7aa3dd8e5caddc43eb75ee9b732) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) )
+ ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "268hd.c1", 0x0000000, 0x800000, CRC(e8239365) SHA1(E0A75902A783110049730B66AD3CBCCDD804BF62) )
+ ROM_LOAD16_BYTE( "268hd.c2", 0x0000001, 0x800000, CRC(89b21d4c) SHA1(862AC31CE9570529B33E6F58ADA0AC867A442679) )
+ ROM_LOAD16_BYTE( "268hd.c3", 0x1000000, 0x800000, CRC(3cda13a0) SHA1(5D029C92688384EAFD65AD711A2954D0B86A3163) )
+ ROM_LOAD16_BYTE( "268hd.c4", 0x1000001, 0x800000, CRC(9c00160d) SHA1(C612102F9CD288BBA4C245B5855D795E4362B217) )
+ ROM_LOAD16_BYTE( "268hd.c5", 0x2000000, 0x800000, CRC(38754256) SHA1(744D91D041998CA27EE2781188746797C65377BD) )
+ ROM_LOAD16_BYTE( "268hd.c6", 0x2000001, 0x800000, CRC(59d33e9c) SHA1(ED7F5C7DB4C35EC5A7DB0AD5436110B3FE80B89A) )
+ ROM_LOAD16_BYTE( "268hd.c7", 0x3000000, 0x800000, CRC(c9f8c357) SHA1(7064224AFA887F57245F5479B0B46228539A131B) )
+ ROM_LOAD16_BYTE( "268hd.c8", 0x3000001, 0x800000, CRC(fafc3eb9) SHA1(F4F73194CC7FD151BE3CA2561F993B5BE7628369) )
+ROM_END
+
+ROM_START( mslug5fu ) // all confirmed
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "268fu.p1", 0x000000, 0x100000, CRC(d1b04ae1) SHA1(b1ab15336bf6bec9dc8cfdbf2a07c6017e3e7ae4) )
+ ROM_LOAD16_WORD_SWAP( "268fu.p2", 0x100000, 0x400000, CRC(6357efbf) SHA1(d1b19bb18e2836d352e8a8d6700d4a0b83227fdb) )
+
+ NEO_SFIX_128K( "268fu.s1", CRC(64952683) SHA1(88ec728c2fe18a11fdd218bed5d73bb3affe2ec1) )
+
+ NEO_BIOS_AUDIO_512K( "268l9a.m1", CRC(464c72ad) SHA1(9e8a01c2bad897e2bbf32563a30f0474f8fcd2b5) )
+
+ ROM_REGION( 0x1037510, "ymsnd", 0 )
+ ROM_LOAD( "268l9b.v1", 0x000000, 0x400000, CRC(fcc8ba01) SHA1(c187c318c65f6aefae05e6cef9f17492edf2e4db) )
+ ROM_LOAD( "268l9b.v2", 0x400000, 0x400000, CRC(386f32bd) SHA1(d49fc812c442563b9e82da43bf5c6b9deea0f687) )
+ ROM_LOAD( "268l9b.v3", 0x800000, 0x400000, CRC(dc737e12) SHA1(f940ea767404f6a15dea526eda56ad66517ba79e) )
+ ROM_LOAD( "268l9b.v4", 0xc00000, 0x437510, CRC(2b310542) SHA1(5f0050d36cd1f722d78d9ae98db537eacc4d8548) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "268hd.c1", 0x0000000, 0x800000, CRC(e8239365) SHA1(E0A75902A783110049730B66AD3CBCCDD804BF62) )
+ ROM_LOAD16_BYTE( "268hd.c2", 0x0000001, 0x800000, CRC(89b21d4c) SHA1(862AC31CE9570529B33E6F58ADA0AC867A442679) )
+ ROM_LOAD16_BYTE( "268hd.c3", 0x1000000, 0x800000, CRC(3cda13a0) SHA1(5D029C92688384EAFD65AD711A2954D0B86A3163) )
+ ROM_LOAD16_BYTE( "268hd.c4", 0x1000001, 0x800000, CRC(9c00160d) SHA1(C612102F9CD288BBA4C245B5855D795E4362B217) )
+ ROM_LOAD16_BYTE( "268fu.c5", 0x2000000, 0x800000, CRC(3bc09dbf) SHA1(a47954a3295dc21e7db7dedc03ab789f8005eed5) )
+ ROM_LOAD16_BYTE( "268fu.c6", 0x2000001, 0x800000, CRC(0db5ce14) SHA1(aa2c4bb143e3bba18523df645c5be249eb9fc147) )
+ ROM_LOAD16_BYTE( "268fu.c7", 0x3000000, 0x800000, CRC(aa4f3214) SHA1(dc3a8fac2cc81e60abafc209eb4bcccdaafde380) )
+ ROM_LOAD16_BYTE( "268fu.c8", 0x3000001, 0x800000, CRC(c86d0d81) SHA1(1a00aa65481410c0b64fe971e547638c05c5a0ce) )
+ROM_END
+
+ROM_START( mslug5hd )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD32_WORD_SWAP( "268-p1c.p1", 0x000000, 0x400000, CRC(3636690a) SHA1(e0da714b4bdc6efffe1250ded02ebddb3ab6d7b3) )
+ ROM_LOAD32_WORD_SWAP( "268-p2c.p2", 0x000002, 0x400000, CRC(8dfc47a2) SHA1(27d618cfbd0107a4d2a836797e967b39d2eb4851) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "268-m1.m1", CRC(4a5a6e0e) SHA1(df0f660f2465e1db7be5adfcaf5e88ad61a74a42) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) )
+ ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "268hd.c1", 0x0000000, 0x800000, CRC(e8239365) SHA1(E0A75902A783110049730B66AD3CBCCDD804BF62) )
+ ROM_LOAD16_BYTE( "268hd.c2", 0x0000001, 0x800000, CRC(89b21d4c) SHA1(862AC31CE9570529B33E6F58ADA0AC867A442679) )
+ ROM_LOAD16_BYTE( "268hd.c3", 0x1000000, 0x800000, CRC(3cda13a0) SHA1(5D029C92688384EAFD65AD711A2954D0B86A3163) )
+ ROM_LOAD16_BYTE( "268hd.c4", 0x1000001, 0x800000, CRC(9c00160d) SHA1(C612102F9CD288BBA4C245B5855D795E4362B217) )
+ ROM_LOAD16_BYTE( "268hd.c5", 0x2000000, 0x800000, CRC(38754256) SHA1(744D91D041998CA27EE2781188746797C65377BD) )
+ ROM_LOAD16_BYTE( "268hd.c6", 0x2000001, 0x800000, CRC(59d33e9c) SHA1(ED7F5C7DB4C35EC5A7DB0AD5436110B3FE80B89A) )
+ ROM_LOAD16_BYTE( "268hd.c7", 0x3000000, 0x800000, CRC(c9f8c357) SHA1(7064224AFA887F57245F5479B0B46228539A131B) )
+ ROM_LOAD16_BYTE( "268hd.c8", 0x3000001, 0x800000, CRC(fafc3eb9) SHA1(F4F73194CC7FD151BE3CA2561F993B5BE7628369) )
+ROM_END
+
+ROM_START( mslug5l9a )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "268l9a.p1", 0x000000, 0x100000, CRC(96aa148d) SHA1(b2487a29d6a96435cfe220cb78f74bc2a9ccc6b3) )
+ ROM_LOAD16_WORD_SWAP( "268l9a.p2", 0x100000, 0x400000, CRC(f5bf2c6b) SHA1(99fdc44aba8b2f30d14a1975052811567ea8f05a) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_512K( "268l9a.m1", CRC(464c72ad) SHA1(9e8a01c2bad897e2bbf32563a30f0474f8fcd2b5) )
+
+ ROM_REGION( 0x10002f0, "ymsnd", 0 )
+ ROM_LOAD( "268l9a.v1", 0x000000, 0x400000, CRC(a8e12a92) SHA1(b23d80d131649c1d243bb30cf5b2141354a7ac55) )
+ ROM_LOAD( "268l9a.v2", 0x400000, 0x400000, CRC(c40fa69b) SHA1(3c1ff87a2174a92d9f457a6932b53534ed410dc2) )
+ ROM_LOAD( "268l9a.v3", 0x800000, 0x400000, CRC(aeff1982) SHA1(ac777a12639e21f0f227be84a59c7bb543c6ddd9) )
+ ROM_LOAD( "268l9a.v4", 0xc00000, 0x4002f0, CRC(179cbca3) SHA1(fdcb0df0c2f73d11cd32a8625ad6fa24cedb9dc9) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "268l9a.c1", 0x0000000, 0x800000, CRC(5e2e9087) SHA1(2366df8b0ee03e8938dcae571dccf32cfcfd685b) )
+ ROM_LOAD16_BYTE( "268l9a.c2", 0x0000001, 0x800000, CRC(d15770e3) SHA1(162c166c3fdc2a29af88dfea8a10138284029e36) )
+ ROM_LOAD16_BYTE( "268l9a.c3", 0x1000000, 0x800000, CRC(3e104b8f) SHA1(ee8467e07f27fbcad35a239b45e1e7e5aed79a25) )
+ ROM_LOAD16_BYTE( "268l9a.c4", 0x1000001, 0x800000, CRC(03f32dda) SHA1(64bc08dce4a8188878d683a6290e370e4d3488a1) )
+ ROM_LOAD16_BYTE( "268l9a.c5", 0x2000000, 0x800000, CRC(fd3e0f24) SHA1(5143c521c79a011465c93717171bb24b550bdc1f) )
+ ROM_LOAD16_BYTE( "268l9a.c6", 0x2000001, 0x800000, CRC(3c873aba) SHA1(b1c882f7c228046929f82a24d9f635c1b6443a94) )
+ ROM_LOAD16_BYTE( "268l9a.c7", 0x3000000, 0x800000, CRC(0d070c3b) SHA1(2d785bd095726b4e48aa65578b9694372f4c46c3) )
+ ROM_LOAD16_BYTE( "268l9a.c8", 0x3000001, 0x800000, CRC(09751dd8) SHA1(5a1378faa3bd3ebb6573d7c171639df153b5202b) )
+ROM_END
+
+ROM_START( mslug5l9b )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "268l9a.p1", 0x000000, 0x100000, CRC(96aa148d) SHA1(b2487a29d6a96435cfe220cb78f74bc2a9ccc6b3) )
+ ROM_LOAD16_WORD_SWAP( "268l9b.p2", 0x100000, 0x400000, CRC(35982b98) SHA1(069f5f7fe6d2278b6bdeb1f5bd87818b868ed41b) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_512K( "268l9a.m1", CRC(464c72ad) SHA1(9e8a01c2bad897e2bbf32563a30f0474f8fcd2b5) )
+
+ ROM_REGION( 0x1037510, "ymsnd", 0 )
+ ROM_LOAD( "268l9b.v1", 0x000000, 0x400000, CRC(fcc8ba01) SHA1(c187c318c65f6aefae05e6cef9f17492edf2e4db) )
+ ROM_LOAD( "268l9b.v2", 0x400000, 0x400000, CRC(386f32bd) SHA1(d49fc812c442563b9e82da43bf5c6b9deea0f687) )
+ ROM_LOAD( "268l9b.v3", 0x800000, 0x400000, CRC(dc737e12) SHA1(f940ea767404f6a15dea526eda56ad66517ba79e) )
+ ROM_LOAD( "268l9b.v4", 0xc00000, 0x437510, CRC(2b310542) SHA1(5f0050d36cd1f722d78d9ae98db537eacc4d8548) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "268l9b.c1", 0x0000000, 0x800000, CRC(aad8ff17) SHA1(f8c5f7bd9aa4b930ceb38b25934650ac810563df) )
+ ROM_LOAD16_BYTE( "268l9b.c2", 0x0000001, 0x800000, CRC(b0404dd4) SHA1(0ab1f81072dac777c3269811dfb69cb40bd7a245) )
+ ROM_LOAD16_BYTE( "268l9b.c3", 0x1000000, 0x800000, CRC(95dda158) SHA1(7ec4625a17f815e8d7e690cb01f3c9dbce75e39b) )
+ ROM_LOAD16_BYTE( "268l9b.c4", 0x1000001, 0x800000, CRC(c052cf1f) SHA1(198041e813914570b943fc1927e986e5553c6bd4) )
+ ROM_LOAD16_BYTE( "268l9b.c5", 0x2000000, 0x800000, CRC(8b9f7e21) SHA1(0dcefc5efc67d520a880b3da6122c342ebdc5e2f) )
+ ROM_LOAD16_BYTE( "268l9b.c6", 0x2000001, 0x800000, CRC(4a0693cf) SHA1(c4bdf72754f85250dfccdd4444941931a6596569) )
+ ROM_LOAD16_BYTE( "268l9b.c7", 0x3000000, 0x800000, CRC(3ad5eaf4) SHA1(b4c4cf0425d42bd47bc85acfab93006c003af341) )
+ ROM_LOAD16_BYTE( "268l9b.c8", 0x3000001, 0x800000, CRC(3e7c670d) SHA1(166eda40c01d01b1d8ec82f2482e8cb4e5ca0e79) )
+ROM_END
+
+ROM_START( mslug5lvf ) // all confirmed: mslug5l9b with different p roms
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "268lvf.p1", 0x000000, 0x100000, CRC(18763285) SHA1(53947549729d6522f7b0858c968a1df19ab82f76) )
+ ROM_LOAD16_WORD_SWAP( "268lvf.p2", 0x100000, 0x400000, CRC(f06c589a) SHA1(0882ee5221ab873f87a719e34bd5250b79b82730) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_512K( "268l9a.m1", CRC(464c72ad) SHA1(9e8a01c2bad897e2bbf32563a30f0474f8fcd2b5) )
+
+ ROM_REGION( 0x1037510, "ymsnd", 0 )
+ ROM_LOAD( "268l9b.v1", 0x000000, 0x400000, CRC(fcc8ba01) SHA1(c187c318c65f6aefae05e6cef9f17492edf2e4db) )
+ ROM_LOAD( "268l9b.v2", 0x400000, 0x400000, CRC(386f32bd) SHA1(d49fc812c442563b9e82da43bf5c6b9deea0f687) )
+ ROM_LOAD( "268l9b.v3", 0x800000, 0x400000, CRC(dc737e12) SHA1(f940ea767404f6a15dea526eda56ad66517ba79e) )
+ ROM_LOAD( "268l9b.v4", 0xc00000, 0x437510, CRC(2b310542) SHA1(5f0050d36cd1f722d78d9ae98db537eacc4d8548) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "268l9b.c1", 0x0000000, 0x800000, CRC(aad8ff17) SHA1(f8c5f7bd9aa4b930ceb38b25934650ac810563df) )
+ ROM_LOAD16_BYTE( "268l9b.c2", 0x0000001, 0x800000, CRC(b0404dd4) SHA1(0ab1f81072dac777c3269811dfb69cb40bd7a245) )
+ ROM_LOAD16_BYTE( "268l9b.c3", 0x1000000, 0x800000, CRC(95dda158) SHA1(7ec4625a17f815e8d7e690cb01f3c9dbce75e39b) )
+ ROM_LOAD16_BYTE( "268l9b.c4", 0x1000001, 0x800000, CRC(c052cf1f) SHA1(198041e813914570b943fc1927e986e5553c6bd4) )
+ ROM_LOAD16_BYTE( "268l9b.c5", 0x2000000, 0x800000, CRC(8b9f7e21) SHA1(0dcefc5efc67d520a880b3da6122c342ebdc5e2f) )
+ ROM_LOAD16_BYTE( "268l9b.c6", 0x2000001, 0x800000, CRC(4a0693cf) SHA1(c4bdf72754f85250dfccdd4444941931a6596569) )
+ ROM_LOAD16_BYTE( "268l9b.c7", 0x3000000, 0x800000, CRC(3ad5eaf4) SHA1(b4c4cf0425d42bd47bc85acfab93006c003af341) )
+ ROM_LOAD16_BYTE( "268l9b.c8", 0x3000001, 0x800000, CRC(3e7c670d) SHA1(166eda40c01d01b1d8ec82f2482e8cb4e5ca0e79) )
+ROM_END
+
+ROM_START( mslug5lvnc )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "268lvf.p1", 0x000000, 0x100000, CRC(18763285) SHA1(53947549729d6522f7b0858c968a1df19ab82f76) )
+ ROM_LOAD16_WORD_SWAP( "268lvf.p2", 0x100000, 0x400000, CRC(f06c589a) SHA1(0882ee5221ab873f87a719e34bd5250b79b82730) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_512K( "268l9a.m1", CRC(464c72ad) SHA1(9e8a01c2bad897e2bbf32563a30f0474f8fcd2b5) )
+
+ ROM_REGION( 0x10002f0, "ymsnd", 0 )
+ ROM_LOAD( "268l9a.v1", 0x000000, 0x400000, CRC(a8e12a92) SHA1(b23d80d131649c1d243bb30cf5b2141354a7ac55) )
+ ROM_LOAD( "268lvnc.v2", 0x400000, 0x400000, CRC(0608cba3) SHA1(ad7c985a25abd68c58e502c008b45e0b14422829) )
+ ROM_LOAD( "268l9a.v3", 0x800000, 0x400000, CRC(aeff1982) SHA1(ac777a12639e21f0f227be84a59c7bb543c6ddd9) )
+ ROM_LOAD( "268l9a.v4", 0xc00000, 0x4002f0, CRC(179cbca3) SHA1(fdcb0df0c2f73d11cd32a8625ad6fa24cedb9dc9) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "268l9a.c1", 0x0000000, 0x800000, CRC(5e2e9087) SHA1(2366df8b0ee03e8938dcae571dccf32cfcfd685b) )
+ ROM_LOAD16_BYTE( "268l9a.c2", 0x0000001, 0x800000, CRC(d15770e3) SHA1(162c166c3fdc2a29af88dfea8a10138284029e36) )
+ ROM_LOAD16_BYTE( "268l9a.c3", 0x1000000, 0x800000, CRC(3e104b8f) SHA1(ee8467e07f27fbcad35a239b45e1e7e5aed79a25) )
+ ROM_LOAD16_BYTE( "268l9a.c4", 0x1000001, 0x800000, CRC(03f32dda) SHA1(64bc08dce4a8188878d683a6290e370e4d3488a1) )
+ ROM_LOAD16_BYTE( "268l9a.c5", 0x2000000, 0x800000, CRC(fd3e0f24) SHA1(5143c521c79a011465c93717171bb24b550bdc1f) )
+ ROM_LOAD16_BYTE( "268l9a.c6", 0x2000001, 0x800000, CRC(3c873aba) SHA1(b1c882f7c228046929f82a24d9f635c1b6443a94) )
+ ROM_LOAD16_BYTE( "268l9a.c7", 0x3000000, 0x800000, CRC(0d070c3b) SHA1(2d785bd095726b4e48aa65578b9694372f4c46c3) )
+ ROM_LOAD16_BYTE( "268l9a.c8", 0x3000001, 0x800000, CRC(09751dd8) SHA1(5a1378faa3bd3ebb6573d7c171639df153b5202b) )
+ROM_END
+
+ROM_START( mslug5w )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "268w.p1", 0x000000, 0x100000, CRC(b0c126da) SHA1(9081ec2c3cfc27baf759417b24f2ebc07ceffab0) )
+ ROM_LOAD16_WORD_SWAP( "268lvf.p2", 0x100000, 0x400000, CRC(f06c589a) SHA1(0882ee5221ab873f87a719e34bd5250b79b82730) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_512K( "268l9a.m1", CRC(464c72ad) SHA1(9e8a01c2bad897e2bbf32563a30f0474f8fcd2b5) )
+
+ ROM_REGION( 0x10002f0, "ymsnd", 0 )
+ ROM_LOAD( "268l9a.v1", 0x000000, 0x400000, CRC(a8e12a92) SHA1(b23d80d131649c1d243bb30cf5b2141354a7ac55) )
+ ROM_LOAD( "268lvnc.v2", 0x400000, 0x400000, CRC(0608cba3) SHA1(ad7c985a25abd68c58e502c008b45e0b14422829) )
+ ROM_LOAD( "268nd.v3", 0x800000, 0x400000, CRC(02fd519e) SHA1(6fbda5bf8dbf52bc110aba7b9d20b24bdc2fe0d7) )
+ ROM_LOAD( "268l9a.v4", 0xc00000, 0x4002f0, CRC(179cbca3) SHA1(fdcb0df0c2f73d11cd32a8625ad6fa24cedb9dc9) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "268l9a.c1", 0x0000000, 0x800000, CRC(5e2e9087) SHA1(2366df8b0ee03e8938dcae571dccf32cfcfd685b) )
+ ROM_LOAD16_BYTE( "268l9a.c2", 0x0000001, 0x800000, CRC(d15770e3) SHA1(162c166c3fdc2a29af88dfea8a10138284029e36) )
+ ROM_LOAD16_BYTE( "268l9a.c3", 0x1000000, 0x800000, CRC(3e104b8f) SHA1(ee8467e07f27fbcad35a239b45e1e7e5aed79a25) )
+ ROM_LOAD16_BYTE( "268l9a.c4", 0x1000001, 0x800000, CRC(03f32dda) SHA1(64bc08dce4a8188878d683a6290e370e4d3488a1) )
+ ROM_LOAD16_BYTE( "268l9a.c5", 0x2000000, 0x800000, CRC(fd3e0f24) SHA1(5143c521c79a011465c93717171bb24b550bdc1f) )
+ ROM_LOAD16_BYTE( "268l9a.c6", 0x2000001, 0x800000, CRC(3c873aba) SHA1(b1c882f7c228046929f82a24d9f635c1b6443a94) )
+ ROM_LOAD16_BYTE( "268l9a.c7", 0x3000000, 0x800000, CRC(0d070c3b) SHA1(2d785bd095726b4e48aa65578b9694372f4c46c3) )
+ ROM_LOAD16_BYTE( "268l9a.c8", 0x3000001, 0x800000, CRC(09751dd8) SHA1(5a1378faa3bd3ebb6573d7c171639df153b5202b) )
+ROM_END
+
+ROM_START( mslug5nd )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "268nd.p1", 0x000000, 0x100000, CRC(ca50afdf) SHA1(e3780b77f20d139a0dcaa2ded2c6ee323b8b4279) ) // this rom is watermarked by HappyASR (24/12/03)
+ ROM_LOAD16_WORD_SWAP( "268nd.p2", 0x100000, 0x400000, CRC(768ee64a) SHA1(76a65a69aee749758a2101aabdd44f3404838b54) )
+// ROM_LOAD16_WORD_SWAP( "268boot.p1", 0x000000, 0x100000, CRC(e6d297af) SHA1(5bb3f72ce26e3f46c523b955f425056eb246e855) )
+// ROM_LOAD16_WORD_SWAP( "268-p2n.bin", 0x100000, 0x400000, CRC(84def63e) SHA1(fddd68e8879d6f5c1aac42997ff2245ea54d5869) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "268nd.m1", CRC(6FA01C9A) SHA1(3DAB7593BFCCE318D22EC3DF672EE3B4AB73DCF5) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+// ROM_LOAD( "268-v1c.bin", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) )
+// ROM_LOAD( "268-v2c.bin", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) )
+ ROM_LOAD( "268nd.v1", 0x000000, 0x400000, CRC(dc7f03f0) SHA1(e1e31dcaff1f8d2c4b2d657aa856a60771d82c26) )
+ ROM_LOAD( "268nd.v2", 0x400000, 0x400000, CRC(eeb7c926) SHA1(4d71f59948bdc5ed2e6daf101f16fd979e1ab193) )
+ ROM_LOAD( "268nd.v3", 0x800000, 0x400000, CRC(02fd519e) SHA1(6fbda5bf8dbf52bc110aba7b9d20b24bdc2fe0d7) )
+ ROM_LOAD( "268nd.v4", 0xc00000, 0x400000, CRC(d7c67794) SHA1(345dcbf76b25b2fbd10bcaf08ee395da0a52c5ce) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "268d.c1", 0x0000000, 0x800000, CRC(969c0d62) SHA1(DE3C5CFA980CCA2FAB0416AC0D292948B5D4C9C3) )
+ ROM_LOAD16_BYTE( "268d.c2", 0x0000001, 0x800000, CRC(c69ae867) SHA1(3198EE5C7C2C7563B49EBD9F7BA95D9B0B303F6C) )
+ ROM_LOAD16_BYTE( "268d.c3", 0x1000000, 0x800000, CRC(d7beaeaf) SHA1(99443EA4C1BAB45F1977A390EB7E1A0163915110) )
+ ROM_LOAD16_BYTE( "268nd.c4", 0x1000001, 0x800000, CRC(E1B1131B) SHA1(68A36D336582069E79AD481638D92F57C4CD6523) )
+ ROM_LOAD16_BYTE( "268d.c5", 0x2000000, 0x800000, CRC(2fa1a5ad) SHA1(4AE15D29BA979601598EDDF8905072FE1D9E0A98) )
+ ROM_LOAD16_BYTE( "268d.c6", 0x2000001, 0x800000, CRC(6de89589) SHA1(86A6C036BF51AF516FEA83A30874026EC1586A83) )
+ ROM_LOAD16_BYTE( "268d.c7", 0x3000000, 0x800000, CRC(97bd0c0a) SHA1(30F3280FE527098ECF46541CC645A59B366105EA) )
+ ROM_LOAD16_BYTE( "268d.c8", 0x3000001, 0x800000, CRC(c0d5bc20) SHA1(B5D0D81D5CC624538B0651C568295E578A1330D1) )
+ROM_END
+
+// Metal Slug
+GAME( 2005, msboot, mslug, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Nazca", "Metal Slug (Bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, mslugeh, mslug, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Metal Slug Enhanced", MACHINE_SUPPORTS_SAVE ) // New standard weapon shotgun - 20 bombs instead of 10
+// Metal Slug 2
+GAME( 1998, mslug2eh, mslug2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Metal Slug 2 (Style remix set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, mslug2eh0, mslug2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Metal Slug 2 (Enhanced Revised Version, hack by Ydmis)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, mslug2eh1, mslug2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Metal Slug 2 (Style remix set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, mslug2eh2, mslug2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Metal Slug 2 (Style remix set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, mslug2eh3, mslug2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Metal Slug 2 (Style remix set 4)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, mslug2eh4, mslug2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Metal Slug 2 (Style remix set 5)", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, mslug2fr, mslug2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Arkatrad", "Metal Slug 2 (French)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, mslug2fro, mslug2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Arkatrad", "Metal Slug 2 (French) (Old)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, mslug2sh, mslug2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Metal Slug 2 (hybrid Bullets version, Shinwa hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2015, mslug2t, mslug2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "System11", "Metal Slug 2 Turbo", MACHINE_SUPPORTS_SAVE )
+// Metal Slug X
+GAME( 1999, mslugxce, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "hack", "Metal Slug X (CE)", MACHINE_SUPPORTS_SAVE )
+GAME( 2013, mslugxeb, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "PlayerX China", "Metal Slug X (EB)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, mslugxeh, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "KrysoFun/KVS", "Metal Slug X (Style remix)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, mslugxeh1, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "hack", "Metal Slug X (Super Revised Version by KrysoFun)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, mslugxex, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "hack", "Metal Slug X (Excel version by PlayerX)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, mslugxfe, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "hack", "Metal Slug X (FE)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, mslugxfr, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Arkatrad", "Metal Slug X (French)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, mslugxfro, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Arkatrad", "Metal Slug X (French) (Old)", MACHINE_SUPPORTS_SAVE )
+GAME( 2013, mslugxhp, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "hack", "Metal Slug X (Enemy Heavy Plate 2013-06-18)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, mslugxit, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Clomax & Ombra", "Metal Slug X (Italian - Beta)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, mslugxjdkj,mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "hack", "Metal Slug X (JDKJ)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, mslugxmfb, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "hack", "Metal Slug X (MFB)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, mslugxp, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Player-X", "Metal Slug X Plus (Hack by Player-X)", MACHINE_SUPPORTS_SAVE )
+GAME( 2013, mslugxr, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "hack", "Metal Slug X (Reset Version 2013-05-28)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, mslugxres, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "hack", "Metal Slug X (RES)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, mslugxsef, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "hack", "Metal Slug X (SEF)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, mslugxst, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "EGCG / Stark", "Metal Slug X (Enhanced Version by STARK) [EGCG]", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, mslugxsvb, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "hack", "Metal Slug X (SVB)", MACHINE_SUPPORTS_SAVE )
+// Metal Slug 3
+GAME( 2000, mslug3d, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3d, ROT0, "SNK", "Metal Slug 3 (decrypted C)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mslug3e02, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Ydmis", "Metal Slug 3 (Style remix set 02)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mslug3e03, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Ydmis", "Metal Slug 3 (Style remix set 03)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mslug3e04, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Ydmis", "Metal Slug 3 (Style remix set 04)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mslug3e05, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Ydmis", "Metal Slug 3 (Style remix set 05)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mslug3e06, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Ydmis", "Metal Slug 3 (Style remix set 06)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mslug3e07, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Ydmis", "Metal Slug 3 (Style remix set 07)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mslug3e08, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Ydmis", "Metal Slug 3 (Style remix set 08)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mslug3e09, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Ydmis", "Metal Slug 3 (Style remix set 09)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mslug3e10, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Ydmis", "Metal Slug 3 (Style remix set 10)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mslug3e11, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Ydmis", "Metal Slug 3 (Style remix set 11)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mslug3e12, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Ydmis", "Metal Slug 3 (Style remix set 12)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mslug3e13, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Ydmis", "Metal Slug 3 (Style remix set 13)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mslug3e14, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Ydmis", "Metal Slug 3 (Style remix set 14)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mslug3e15, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Ydmis", "Metal Slug 3 (Style remix set 15)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mslug3e16, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Ydmis", "Metal Slug 3 (Style remix set 16)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mslug3e17, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Ydmis", "Metal Slug 3 (Style remix set 17)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mslug3e18, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Ydmis", "Metal Slug 3 (Style remix set 18)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mslug3e19, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Ydmis", "Metal Slug 3 (Style remix set 19)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mslug3e20, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Ydmis", "Metal Slug 3 (Style remix set 20)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mslug3e21, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Ydmis", "Metal Slug 3 (Style remix set 21)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mslug3e22, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Ydmis", "Metal Slug 3 (Style remix set 22)", MACHINE_SUPPORTS_SAVE )
+GAME( 2013, mslug3eb, mslug3, neogeo_noslot, neogeo, neogeo_noslot_state, mslug3, ROT0, "PlayerX China", "Metal Slug 3 (EB)" , MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mslug3eha, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "HappyAsr", "Metal Slug 3 (Style remix 030826)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mslug3ehs, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Ydmis", "Metal Slug 3 (Style remix set 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, mslug3fr, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3fr, ROT0, "Arkatrad", "Metal Slug 3 (French)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, mslug3fro, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3fr, ROT0, "Arkatrad", "Metal Slug 3 (French) (Old)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mslug3hev, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "hack", "Metal Slug 3 (unknown hev)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mslug3kh, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Fighters Kim and Ydmis", "Metal Slug 3 (Style remix 030801)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mslug3kho, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Fighters Kim and Ydmis", "Metal Slug 3 (Style remix 030728)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mslug3nd, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, cmc42sfix,ROT0, "SNK", "Metal Slug 3 (NGH-2560)(Fully Decrypted C)", MACHINE_SUPPORTS_SAVE )
+GAME( 2012, mslug3v, mslug3, neogeo_noslot, neogeo, neogeo_noslot_state, mslug3b6, ROT0, "Eezezy", "Metal Slug 3 (Violence Edition)", MACHINE_SUPPORTS_SAVE )
+// Metal Slug 4
+GAME( 2002, mslug4d, mslug4, neogeo_noslot, neogeo, neogeo_hbmame, mslug4d, ROT0, "Mega", "Metal Slug 4 (decrypted C)", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, mslug4dh, mslug4, neogeo_noslot, neogeo, neogeo_hbmame, mslug4dh, ROT0, "HappyASR [EGCG]", "Metal Slug 4 Super D Version", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, mslug4dh1, mslug4, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Metal Slug 4 Super D Version (Hack by HappyASR [EGCG])", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, mslug4eh, mslug4, neogeo_noslot, neogeo, neogeo_hbmame, mslug4m, ROT0, "Creamymami", "Metal Slug 4 (Style remix 030414 set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, mslug4eh2, mslug4, neogeo_noslot, neogeo, neogeo_hbmame, mslug4m, ROT0, "Creamymami", "Metal Slug 4 (Style remix 030414 set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, mslug4eh3, mslug4, neogeo_noslot, neogeo, neogeo_hbmame, mslug4m, ROT0, "Creamymami", "Metal Slug 4 (Style remix 030414 set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, mslug4eh4, mslug4, neogeo_noslot, neogeo, neogeo_hbmame, mslug4m, ROT0, "Creamymami", "Metal Slug 4 (Style remix 030414 set 4)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, mslug4eh5, mslug4, neogeo_noslot, neogeo, neogeo_hbmame, mslug4m, ROT0, "Creamymami", "Metal Slug 4 (Style remix 030414 set 5)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, mslug4eh6, mslug4, neogeo_noslot, neogeo, neogeo_hbmame, mslug4m, ROT0, "Creamymami", "Metal Slug 4 (Style remix 030414 set 6)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, mslug4eho, mslug4, neogeo_noslot, neogeo, neogeo_hbmame, mslug4m, ROT0, "Creamymami", "Metal Slug 4 (Style remix Old)", MACHINE_SUPPORTS_SAVE )
+GAME( 2005, mslug4fr, mslug4, neogeo_noslot, neogeo, neogeo_hbmame, mslug4m, ROT0, "Arkatrad", "Metal Slug 4 (French)", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, mslug4i, mslug4, neogeo_noslot, neogeo, neogeo_hbmame, mslug4it, ROT0, "Evoboy", "Metal Slug 4 (Italian)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, mslug4i1, mslug4, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Metal Slug 4 (Italian)2", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, mslug4kh, mslug4, neogeo_noslot, neogeo, neogeo_hbmame, mslug4m, ROT0, "Creamymami and Fighters Kim", "Metal Slug 4 (Style remix 030731)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, mslug4lw, mslug4, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Metal Slug 4 (LW)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 2002, mslug4nd, mslug4, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Mega Enterprise / Playmore Corporation", "Metal Slug 4 (fully decrypted)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, mslug4sp, mslug4, neogeo_noslot, neogeo, neogeo_noslot_state, mslug4, ROT0, "hack", "Metal Slug 4 (SP)", MACHINE_SUPPORTS_SAVE )
+// Metal Slug 5
+GAME( 2003, mslug5b, mslug5, neogeo_noslot, neogeo, neogeo_hbmame, mslug5b, ROT0, "bootleg", "Metal Slug 5 (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, mslug5d, mslug5, neogeo_noslot, neogeo, neogeo_hbmame, mslug5d, ROT0, "hack", "Metal Slug 5 (decrypted C)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, mslug5d1, mslug5, neogeo_noslot, neogeo, neogeo_hbmame, mslug5d1, ROT0, "hack", "Metal Slug 5 (NGM-2680) (fully decrypted)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, mslug5f, mslug5, neogeo_noslot, neogeo, neogeo_noslot_state, s1945p, ROT0, "C.B", "Metal Slug 5 (F)", MACHINE_SUPPORTS_SAVE )
+GAME( 2006, mslug5fr, mslug5, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Arkatrad", "Metal Slug 5 (French)", MACHINE_SUPPORTS_SAVE )
+GAME( 2006, mslug5fr1, mslug5, neogeo_noslot, neogeo, neogeo_hbmame, mslug5fr1,ROT0, "NEO-ARC", "Metal Slug 5 (French Edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, mslug5fu, mslug5, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Metal Slug 5 (FU)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 2003, mslug5hd, mslug5, neogeo_noslot, neogeo, neogeo_hbmame, mslug5hd, ROT0, "hack", "Metal Slug 5 (NGH-2680) (Decrypted C)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, mslug5l9a, mslug5, neogeo_noslot, neogeo, neogeo_noslot_state, s1945p, ROT0, "C.B", "Metal Slug 5 Level 9 Hack (Ver A)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, mslug5l9b, mslug5, neogeo_noslot, neogeo, neogeo_noslot_state, s1945p, ROT0, "C.B", "Metal Slug 5 Level 9 Hack (Ver B)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, mslug5lvf, mslug5, neogeo_noslot, neogeo, neogeo_noslot_state, s1945p, ROT0, "C.B", "Metal Slug 5 (LVF)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, mslug5lvnc,mslug5, neogeo_noslot, neogeo, neogeo_noslot_state, s1945p, ROT0, "C.B", "Metal Slug 5 (LVNC)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, mslug5nd, mslug5, neogeo_noslot, neogeo, neogeo_hbmame, mslug5nd, ROT0, "hack", "Metal Slug 5 (decrypted)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, mslug5w, mslug5, neogeo_noslot, neogeo, neogeo_noslot_state, s1945p, ROT0, "C.B", "Metal Slug 5 (W)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, ms5boot, mslug5, neogeo_noslot, neogeo, neogeo_hbmame, ms5boot, ROT0, "bootleg", "Metal Slug 5 (Bootleg Set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, ms5pcbd, ms5pcb, neogeo_noslot, dualbios, neogeo_hbmame, ms5pcbd, ROT0, "hack", "Metal Slug 5 (JAMMA PCB) decrypted", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, ms5sp, mslug5, neogeo_noslot, neogeo, neogeo_noslot_state, ms5plus, ROT0, "hack", "Metal Slug 5 PLUS (SP)", MACHINE_SUPPORTS_SAVE )
+
+
+//PSmame (c) galston90 used with permission
+
+ROM_START( mslugs01 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "201hc01.p1", 0x100000, 0x100000, CRC(4d65ad07) SHA1(82b2e589255acb316992e8e41b5835545a0444a5) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "201-s1.s1", CRC(2f55958d) SHA1(550b53628daec9f1e1e11a398854092d90f9505a) )
+
+ NEO_BIOS_AUDIO_128K( "201-m1.m1", CRC(c28b3253) SHA1(fd75bd15aed30266a8b3775f276f997af57d1c06) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "201-v1.v1", 0x000000, 0x400000, CRC(23d22ed1) SHA1(cd076928468ad6bcc5f19f88cb843ecb5e660681) )
+ ROM_LOAD( "201-v2.v2", 0x400000, 0x400000, CRC(472cf9db) SHA1(5f79ea9286d22ed208128f9c31ca75552ce08b57) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "201-c1.c1", 0x000000, 0x400000, CRC(72813676) SHA1(7b045d1a48980cb1a140699011cb1a3d4acdc4d1) )
+ ROM_LOAD16_BYTE( "201-c2.c2", 0x000001, 0x400000, CRC(96f62574) SHA1(cb7254b885989223bba597b8ff0972dfa5957816) )
+ ROM_LOAD16_BYTE( "201-c3.c3", 0x800000, 0x400000, CRC(5121456a) SHA1(0a7a27d603d1bb2520b5570ebf5b34a106e255a6) )
+ ROM_LOAD16_BYTE( "201-c4.c4", 0x800001, 0x400000, CRC(f4ad59a3) SHA1(4e94fda8ee63abf0f92afe08060a488546e5c280) )
+ROM_END
+
+ROM_START( mslugs02 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "201hc02.p1", 0x100000, 0x100000, CRC(c8d201d2) SHA1(67a35e7fda851a2742a3cf6e853c89a4e17061d0) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "201-s1.s1", CRC(2f55958d) SHA1(550b53628daec9f1e1e11a398854092d90f9505a) )
+
+ NEO_BIOS_AUDIO_128K( "201-m1.m1", CRC(c28b3253) SHA1(fd75bd15aed30266a8b3775f276f997af57d1c06) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "201-v1.v1", 0x000000, 0x400000, CRC(23d22ed1) SHA1(cd076928468ad6bcc5f19f88cb843ecb5e660681) )
+ ROM_LOAD( "201-v2.v2", 0x400000, 0x400000, CRC(472cf9db) SHA1(5f79ea9286d22ed208128f9c31ca75552ce08b57) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "201-c1.c1", 0x000000, 0x400000, CRC(72813676) SHA1(7b045d1a48980cb1a140699011cb1a3d4acdc4d1) )
+ ROM_LOAD16_BYTE( "201-c2.c2", 0x000001, 0x400000, CRC(96f62574) SHA1(cb7254b885989223bba597b8ff0972dfa5957816) )
+ ROM_LOAD16_BYTE( "201-c3.c3", 0x800000, 0x400000, CRC(5121456a) SHA1(0a7a27d603d1bb2520b5570ebf5b34a106e255a6) )
+ ROM_LOAD16_BYTE( "201-c4.c4", 0x800001, 0x400000, CRC(f4ad59a3) SHA1(4e94fda8ee63abf0f92afe08060a488546e5c280) )
+ROM_END
+
+ROM_START( mslugs03 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "201hc03.p1", 0x100000, 0x100000, CRC(1dc910bb) SHA1(1668bfd0b0c488c0f7d01b241e7a6d6ca650ca30) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "201-s1.s1", CRC(2f55958d) SHA1(550b53628daec9f1e1e11a398854092d90f9505a) )
+
+ NEO_BIOS_AUDIO_128K( "201-m1.m1", CRC(c28b3253) SHA1(fd75bd15aed30266a8b3775f276f997af57d1c06) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "201-v1.v1", 0x000000, 0x400000, CRC(23d22ed1) SHA1(cd076928468ad6bcc5f19f88cb843ecb5e660681) )
+ ROM_LOAD( "201-v2.v2", 0x400000, 0x400000, CRC(472cf9db) SHA1(5f79ea9286d22ed208128f9c31ca75552ce08b57) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "201-c1.c1", 0x000000, 0x400000, CRC(72813676) SHA1(7b045d1a48980cb1a140699011cb1a3d4acdc4d1) )
+ ROM_LOAD16_BYTE( "201-c2.c2", 0x000001, 0x400000, CRC(96f62574) SHA1(cb7254b885989223bba597b8ff0972dfa5957816) )
+ ROM_LOAD16_BYTE( "201-c3.c3", 0x800000, 0x400000, CRC(5121456a) SHA1(0a7a27d603d1bb2520b5570ebf5b34a106e255a6) )
+ ROM_LOAD16_BYTE( "201-c4.c4", 0x800001, 0x400000, CRC(f4ad59a3) SHA1(4e94fda8ee63abf0f92afe08060a488546e5c280) )
+ROM_END
+
+ROM_START( mslugs04 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "201hc04.p1", 0x100000, 0x100000, CRC(2200702d) SHA1(a02153a9ad55c1ba41275a18bf2d1ac1ea998d07) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "201-s1.s1", CRC(2f55958d) SHA1(550b53628daec9f1e1e11a398854092d90f9505a) )
+
+ NEO_BIOS_AUDIO_128K( "201-m1.m1", CRC(c28b3253) SHA1(fd75bd15aed30266a8b3775f276f997af57d1c06) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "201-v1.v1", 0x000000, 0x400000, CRC(23d22ed1) SHA1(cd076928468ad6bcc5f19f88cb843ecb5e660681) )
+ ROM_LOAD( "201-v2.v2", 0x400000, 0x400000, CRC(472cf9db) SHA1(5f79ea9286d22ed208128f9c31ca75552ce08b57) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "201-c1.c1", 0x000000, 0x400000, CRC(72813676) SHA1(7b045d1a48980cb1a140699011cb1a3d4acdc4d1) )
+ ROM_LOAD16_BYTE( "201-c2.c2", 0x000001, 0x400000, CRC(96f62574) SHA1(cb7254b885989223bba597b8ff0972dfa5957816) )
+ ROM_LOAD16_BYTE( "201-c3.c3", 0x800000, 0x400000, CRC(5121456a) SHA1(0a7a27d603d1bb2520b5570ebf5b34a106e255a6) )
+ ROM_LOAD16_BYTE( "201-c4.c4", 0x800001, 0x400000, CRC(f4ad59a3) SHA1(4e94fda8ee63abf0f92afe08060a488546e5c280) )
+ROM_END
+
+ROM_START( mslugs05 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "201hc05.p1", 0x100000, 0x100000, CRC(25eb1969) SHA1(6b97ebd2e22f96dfd738b31e5d820e75419e7cb2) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "201-s1.s1", CRC(2f55958d) SHA1(550b53628daec9f1e1e11a398854092d90f9505a) )
+
+ NEO_BIOS_AUDIO_128K( "201-m1.m1", CRC(c28b3253) SHA1(fd75bd15aed30266a8b3775f276f997af57d1c06) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "201-v1.v1", 0x000000, 0x400000, CRC(23d22ed1) SHA1(cd076928468ad6bcc5f19f88cb843ecb5e660681) )
+ ROM_LOAD( "201-v2.v2", 0x400000, 0x400000, CRC(472cf9db) SHA1(5f79ea9286d22ed208128f9c31ca75552ce08b57) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "201-c1.c1", 0x000000, 0x400000, CRC(72813676) SHA1(7b045d1a48980cb1a140699011cb1a3d4acdc4d1) )
+ ROM_LOAD16_BYTE( "201-c2.c2", 0x000001, 0x400000, CRC(96f62574) SHA1(cb7254b885989223bba597b8ff0972dfa5957816) )
+ ROM_LOAD16_BYTE( "201-c3.c3", 0x800000, 0x400000, CRC(5121456a) SHA1(0a7a27d603d1bb2520b5570ebf5b34a106e255a6) )
+ ROM_LOAD16_BYTE( "201-c4.c4", 0x800001, 0x400000, CRC(f4ad59a3) SHA1(4e94fda8ee63abf0f92afe08060a488546e5c280) )
+ROM_END
+
+ROM_START( mslugs06 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "201hc06.p1", 0x100000, 0x100000, CRC(e5d81e7d) SHA1(43c375e6f4dad00b02e80c570f00469038b76679) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "201-s1.s1", CRC(2f55958d) SHA1(550b53628daec9f1e1e11a398854092d90f9505a) )
+
+ NEO_BIOS_AUDIO_128K( "201-m1.m1", CRC(c28b3253) SHA1(fd75bd15aed30266a8b3775f276f997af57d1c06) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "201-v1.v1", 0x000000, 0x400000, CRC(23d22ed1) SHA1(cd076928468ad6bcc5f19f88cb843ecb5e660681) )
+ ROM_LOAD( "201-v2.v2", 0x400000, 0x400000, CRC(472cf9db) SHA1(5f79ea9286d22ed208128f9c31ca75552ce08b57) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "201-c1.c1", 0x000000, 0x400000, CRC(72813676) SHA1(7b045d1a48980cb1a140699011cb1a3d4acdc4d1) )
+ ROM_LOAD16_BYTE( "201-c2.c2", 0x000001, 0x400000, CRC(96f62574) SHA1(cb7254b885989223bba597b8ff0972dfa5957816) )
+ ROM_LOAD16_BYTE( "201-c3.c3", 0x800000, 0x400000, CRC(5121456a) SHA1(0a7a27d603d1bb2520b5570ebf5b34a106e255a6) )
+ ROM_LOAD16_BYTE( "201-c4.c4", 0x800001, 0x400000, CRC(f4ad59a3) SHA1(4e94fda8ee63abf0f92afe08060a488546e5c280) )
+ROM_END
+
+ROM_START( mslugs07 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "201hc07.p1", 0x100000, 0x100000, CRC(53f60eaf) SHA1(71d2fd848930280af7ea62f73fb6899db5d5a94d) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "201-s1.s1", CRC(2f55958d) SHA1(550b53628daec9f1e1e11a398854092d90f9505a) )
+
+ NEO_BIOS_AUDIO_128K( "201-m1.m1", CRC(c28b3253) SHA1(fd75bd15aed30266a8b3775f276f997af57d1c06) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "201-v1.v1", 0x000000, 0x400000, CRC(23d22ed1) SHA1(cd076928468ad6bcc5f19f88cb843ecb5e660681) )
+ ROM_LOAD( "201-v2.v2", 0x400000, 0x400000, CRC(472cf9db) SHA1(5f79ea9286d22ed208128f9c31ca75552ce08b57) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "201-c1.c1", 0x000000, 0x400000, CRC(72813676) SHA1(7b045d1a48980cb1a140699011cb1a3d4acdc4d1) )
+ ROM_LOAD16_BYTE( "201-c2.c2", 0x000001, 0x400000, CRC(96f62574) SHA1(cb7254b885989223bba597b8ff0972dfa5957816) )
+ ROM_LOAD16_BYTE( "201-c3.c3", 0x800000, 0x400000, CRC(5121456a) SHA1(0a7a27d603d1bb2520b5570ebf5b34a106e255a6) )
+ ROM_LOAD16_BYTE( "201-c4.c4", 0x800001, 0x400000, CRC(f4ad59a3) SHA1(4e94fda8ee63abf0f92afe08060a488546e5c280) )
+ROM_END
+
+ROM_START( mslugs08 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "201hc08.p1", 0x100000, 0x100000, CRC(becf1614) SHA1(73a9aa84c6d6deb19031af5d892d4d23fc85b9f1) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "201-s1.s1", CRC(2f55958d) SHA1(550b53628daec9f1e1e11a398854092d90f9505a) )
+
+ NEO_BIOS_AUDIO_128K( "201-m1.m1", CRC(c28b3253) SHA1(fd75bd15aed30266a8b3775f276f997af57d1c06) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "201-v1.v1", 0x000000, 0x400000, CRC(23d22ed1) SHA1(cd076928468ad6bcc5f19f88cb843ecb5e660681) )
+ ROM_LOAD( "201-v2.v2", 0x400000, 0x400000, CRC(472cf9db) SHA1(5f79ea9286d22ed208128f9c31ca75552ce08b57) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "201-c1.c1", 0x000000, 0x400000, CRC(72813676) SHA1(7b045d1a48980cb1a140699011cb1a3d4acdc4d1) )
+ ROM_LOAD16_BYTE( "201-c2.c2", 0x000001, 0x400000, CRC(96f62574) SHA1(cb7254b885989223bba597b8ff0972dfa5957816) )
+ ROM_LOAD16_BYTE( "201-c3.c3", 0x800000, 0x400000, CRC(5121456a) SHA1(0a7a27d603d1bb2520b5570ebf5b34a106e255a6) )
+ ROM_LOAD16_BYTE( "201-c4.c4", 0x800001, 0x400000, CRC(f4ad59a3) SHA1(4e94fda8ee63abf0f92afe08060a488546e5c280) )
+ROM_END
+
+ROM_START( mslugs09 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "201hc09.p1", 0x100000, 0x100000, CRC(ebf57a57) SHA1(ace0b3d4ce08a58f520ea6d52e12eaadac413974) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "201-s1.s1", CRC(2f55958d) SHA1(550b53628daec9f1e1e11a398854092d90f9505a) )
+
+ NEO_BIOS_AUDIO_128K( "201-m1.m1", CRC(c28b3253) SHA1(fd75bd15aed30266a8b3775f276f997af57d1c06) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "201-v1.v1", 0x000000, 0x400000, CRC(23d22ed1) SHA1(cd076928468ad6bcc5f19f88cb843ecb5e660681) )
+ ROM_LOAD( "201-v2.v2", 0x400000, 0x400000, CRC(472cf9db) SHA1(5f79ea9286d22ed208128f9c31ca75552ce08b57) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "201-c1.c1", 0x000000, 0x400000, CRC(72813676) SHA1(7b045d1a48980cb1a140699011cb1a3d4acdc4d1) )
+ ROM_LOAD16_BYTE( "201-c2.c2", 0x000001, 0x400000, CRC(96f62574) SHA1(cb7254b885989223bba597b8ff0972dfa5957816) )
+ ROM_LOAD16_BYTE( "201-c3.c3", 0x800000, 0x400000, CRC(5121456a) SHA1(0a7a27d603d1bb2520b5570ebf5b34a106e255a6) )
+ ROM_LOAD16_BYTE( "201-c4.c4", 0x800001, 0x400000, CRC(f4ad59a3) SHA1(4e94fda8ee63abf0f92afe08060a488546e5c280) )
+ROM_END
+
+ROM_START( mslugs10 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "201hc10.p1", 0x100000, 0x100000, CRC(4d36bbbb) SHA1(9a2e8545a6c095f78b931a1a08a64fd16a808f82) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "201-s1.s1", CRC(2f55958d) SHA1(550b53628daec9f1e1e11a398854092d90f9505a) )
+
+ NEO_BIOS_AUDIO_128K( "201-m1.m1", CRC(c28b3253) SHA1(fd75bd15aed30266a8b3775f276f997af57d1c06) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "201-v1.v1", 0x000000, 0x400000, CRC(23d22ed1) SHA1(cd076928468ad6bcc5f19f88cb843ecb5e660681) )
+ ROM_LOAD( "201-v2.v2", 0x400000, 0x400000, CRC(472cf9db) SHA1(5f79ea9286d22ed208128f9c31ca75552ce08b57) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "201-c1.c1", 0x000000, 0x400000, CRC(72813676) SHA1(7b045d1a48980cb1a140699011cb1a3d4acdc4d1) )
+ ROM_LOAD16_BYTE( "201-c2.c2", 0x000001, 0x400000, CRC(96f62574) SHA1(cb7254b885989223bba597b8ff0972dfa5957816) )
+ ROM_LOAD16_BYTE( "201-c3.c3", 0x800000, 0x400000, CRC(5121456a) SHA1(0a7a27d603d1bb2520b5570ebf5b34a106e255a6) )
+ ROM_LOAD16_BYTE( "201-c4.c4", 0x800001, 0x400000, CRC(f4ad59a3) SHA1(4e94fda8ee63abf0f92afe08060a488546e5c280) )
+ROM_END
+
+ROM_START( mslugs11 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "201hc11.p1", 0x100000, 0x100000, CRC(ae480df5) SHA1(72c28e1a87c47438f0ef7269f4d3a91baf885f45) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "201-s1.s1", CRC(2f55958d) SHA1(550b53628daec9f1e1e11a398854092d90f9505a) )
+
+ NEO_BIOS_AUDIO_128K( "201-m1.m1", CRC(c28b3253) SHA1(fd75bd15aed30266a8b3775f276f997af57d1c06) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "201-v1.v1", 0x000000, 0x400000, CRC(23d22ed1) SHA1(cd076928468ad6bcc5f19f88cb843ecb5e660681) )
+ ROM_LOAD( "201-v2.v2", 0x400000, 0x400000, CRC(472cf9db) SHA1(5f79ea9286d22ed208128f9c31ca75552ce08b57) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "201-c1.c1", 0x000000, 0x400000, CRC(72813676) SHA1(7b045d1a48980cb1a140699011cb1a3d4acdc4d1) )
+ ROM_LOAD16_BYTE( "201-c2.c2", 0x000001, 0x400000, CRC(96f62574) SHA1(cb7254b885989223bba597b8ff0972dfa5957816) )
+ ROM_LOAD16_BYTE( "201-c3.c3", 0x800000, 0x400000, CRC(5121456a) SHA1(0a7a27d603d1bb2520b5570ebf5b34a106e255a6) )
+ ROM_LOAD16_BYTE( "201-c4.c4", 0x800001, 0x400000, CRC(f4ad59a3) SHA1(4e94fda8ee63abf0f92afe08060a488546e5c280) )
+ROM_END
+
+ /********************************************
+ Metal Slug 2
+**********************************************/
+ROM_START( mslug2s01 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "241hc01.p1", 0x000000, 0x100000, CRC(f882d50d) SHA1(03daed714e694a1007bed78bb624dd5f6feeac8d) )
+ ROM_LOAD16_WORD_SWAP( "241-p2.sp2", 0x100000, 0x200000, CRC(38883f44) SHA1(fcf34b8c6e37774741542393b963635412484a27) )
+
+ NEO_SFIX_128K( "241-s1.s1", CRC(f3d32f0f) SHA1(2dc38b7dfd3ff14f64d5c0733c510b6bb8c692d0) )
+
+ NEO_BIOS_AUDIO_128K( "241-m1.m1", CRC(94520ebd) SHA1(f8a1551cebcb91e416f30f50581feed7f72899e9) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "241-v1.v1", 0x000000, 0x400000, CRC(99ec20e8) SHA1(80597707f1fe115eed1941bb0701fc00790ad504) )
+ ROM_LOAD( "241-v2.v2", 0x400000, 0x400000, CRC(ecb16799) SHA1(b4b4ddc680836ed55942c66d7dfe756314e02211) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "241-c1.c1", 0x0000000, 0x800000, CRC(394b5e0d) SHA1(4549926f5054ee6aa7689cf920be0327e3908a50) )
+ ROM_LOAD16_BYTE( "241-c2.c2", 0x0000001, 0x800000, CRC(e5806221) SHA1(1e5475cfab129c77acc610f09369ca42ba5aafa5) )
+ ROM_LOAD16_BYTE( "241-c3.c3", 0x1000000, 0x800000, CRC(9f6bfa6f) SHA1(a4319b48004e723f81a980887678e3e296049a53) )
+ ROM_LOAD16_BYTE( "241-c4.c4", 0x1000001, 0x800000, CRC(7d3e306f) SHA1(1499316fb381775218d897b81a6a0c3465d1a37c) )
+ROM_END
+
+ROM_START( mslug2s02 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "241hc02.p1", 0x000000, 0x100000, CRC(fe803784) SHA1(1966f8c896d564570cceb108617021849a418484) )
+ ROM_LOAD16_WORD_SWAP( "241-p2.sp2", 0x100000, 0x200000, CRC(38883f44) SHA1(fcf34b8c6e37774741542393b963635412484a27) )
+
+ NEO_SFIX_128K( "241-s1.s1", CRC(f3d32f0f) SHA1(2dc38b7dfd3ff14f64d5c0733c510b6bb8c692d0) )
+
+ NEO_BIOS_AUDIO_128K( "241-m1.m1", CRC(94520ebd) SHA1(f8a1551cebcb91e416f30f50581feed7f72899e9) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "241-v1.v1", 0x000000, 0x400000, CRC(99ec20e8) SHA1(80597707f1fe115eed1941bb0701fc00790ad504) )
+ ROM_LOAD( "241-v2.v2", 0x400000, 0x400000, CRC(ecb16799) SHA1(b4b4ddc680836ed55942c66d7dfe756314e02211) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "241-c1.c1", 0x0000000, 0x800000, CRC(394b5e0d) SHA1(4549926f5054ee6aa7689cf920be0327e3908a50) )
+ ROM_LOAD16_BYTE( "241-c2.c2", 0x0000001, 0x800000, CRC(e5806221) SHA1(1e5475cfab129c77acc610f09369ca42ba5aafa5) )
+ ROM_LOAD16_BYTE( "241-c3.c3", 0x1000000, 0x800000, CRC(9f6bfa6f) SHA1(a4319b48004e723f81a980887678e3e296049a53) )
+ ROM_LOAD16_BYTE( "241-c4.c4", 0x1000001, 0x800000, CRC(7d3e306f) SHA1(1499316fb381775218d897b81a6a0c3465d1a37c) )
+ROM_END
+
+ROM_START( mslug2s03 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "241hc03.p1", 0x000000, 0x100000, CRC(59dfb95f) SHA1(0479d5372d5951f326500fbe74eb5405794636cf) )
+ ROM_LOAD16_WORD_SWAP( "241-p2.sp2", 0x100000, 0x200000, CRC(38883f44) SHA1(fcf34b8c6e37774741542393b963635412484a27) )
+
+ NEO_SFIX_128K( "241-s1.s1", CRC(f3d32f0f) SHA1(2dc38b7dfd3ff14f64d5c0733c510b6bb8c692d0) )
+
+ NEO_BIOS_AUDIO_128K( "241-m1.m1", CRC(94520ebd) SHA1(f8a1551cebcb91e416f30f50581feed7f72899e9) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "241-v1.v1", 0x000000, 0x400000, CRC(99ec20e8) SHA1(80597707f1fe115eed1941bb0701fc00790ad504) )
+ ROM_LOAD( "241-v2.v2", 0x400000, 0x400000, CRC(ecb16799) SHA1(b4b4ddc680836ed55942c66d7dfe756314e02211) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "241-c1.c1", 0x0000000, 0x800000, CRC(394b5e0d) SHA1(4549926f5054ee6aa7689cf920be0327e3908a50) )
+ ROM_LOAD16_BYTE( "241-c2.c2", 0x0000001, 0x800000, CRC(e5806221) SHA1(1e5475cfab129c77acc610f09369ca42ba5aafa5) )
+ ROM_LOAD16_BYTE( "241-c3.c3", 0x1000000, 0x800000, CRC(9f6bfa6f) SHA1(a4319b48004e723f81a980887678e3e296049a53) )
+ ROM_LOAD16_BYTE( "241-c4.c4", 0x1000001, 0x800000, CRC(7d3e306f) SHA1(1499316fb381775218d897b81a6a0c3465d1a37c) )
+ROM_END
+
+ROM_START( mslug2s04 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "241hc04.p1", 0x000000, 0x100000, CRC(a1691aa2) SHA1(e0632a2d0f5b104b875558c53c671ec7d34af572) )
+ ROM_LOAD16_WORD_SWAP( "241-p2.sp2", 0x100000, 0x200000, CRC(38883f44) SHA1(fcf34b8c6e37774741542393b963635412484a27) )
+
+ NEO_SFIX_128K( "241-s1.s1", CRC(f3d32f0f) SHA1(2dc38b7dfd3ff14f64d5c0733c510b6bb8c692d0) )
+
+ NEO_BIOS_AUDIO_128K( "241-m1.m1", CRC(94520ebd) SHA1(f8a1551cebcb91e416f30f50581feed7f72899e9) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "241-v1.v1", 0x000000, 0x400000, CRC(99ec20e8) SHA1(80597707f1fe115eed1941bb0701fc00790ad504) )
+ ROM_LOAD( "241-v2.v2", 0x400000, 0x400000, CRC(ecb16799) SHA1(b4b4ddc680836ed55942c66d7dfe756314e02211) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "241-c1.c1", 0x0000000, 0x800000, CRC(394b5e0d) SHA1(4549926f5054ee6aa7689cf920be0327e3908a50) )
+ ROM_LOAD16_BYTE( "241-c2.c2", 0x0000001, 0x800000, CRC(e5806221) SHA1(1e5475cfab129c77acc610f09369ca42ba5aafa5) )
+ ROM_LOAD16_BYTE( "241-c3.c3", 0x1000000, 0x800000, CRC(9f6bfa6f) SHA1(a4319b48004e723f81a980887678e3e296049a53) )
+ ROM_LOAD16_BYTE( "241-c4.c4", 0x1000001, 0x800000, CRC(7d3e306f) SHA1(1499316fb381775218d897b81a6a0c3465d1a37c) )
+ROM_END
+
+ROM_START( mslug2s05 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "241hc05.p1", 0x000000, 0x100000, CRC(44142578) SHA1(236f5049d9ef545a89f4739adc1651dccdecc1e1) )
+ ROM_LOAD16_WORD_SWAP( "241-p2.sp2", 0x100000, 0x200000, CRC(38883f44) SHA1(fcf34b8c6e37774741542393b963635412484a27) )
+
+ NEO_SFIX_128K( "241-s1.s1", CRC(f3d32f0f) SHA1(2dc38b7dfd3ff14f64d5c0733c510b6bb8c692d0) )
+
+ NEO_BIOS_AUDIO_128K( "241-m1.m1", CRC(94520ebd) SHA1(f8a1551cebcb91e416f30f50581feed7f72899e9) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "241-v1.v1", 0x000000, 0x400000, CRC(99ec20e8) SHA1(80597707f1fe115eed1941bb0701fc00790ad504) )
+ ROM_LOAD( "241-v2.v2", 0x400000, 0x400000, CRC(ecb16799) SHA1(b4b4ddc680836ed55942c66d7dfe756314e02211) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "241-c1.c1", 0x0000000, 0x800000, CRC(394b5e0d) SHA1(4549926f5054ee6aa7689cf920be0327e3908a50) )
+ ROM_LOAD16_BYTE( "241-c2.c2", 0x0000001, 0x800000, CRC(e5806221) SHA1(1e5475cfab129c77acc610f09369ca42ba5aafa5) )
+ ROM_LOAD16_BYTE( "241-c3.c3", 0x1000000, 0x800000, CRC(9f6bfa6f) SHA1(a4319b48004e723f81a980887678e3e296049a53) )
+ ROM_LOAD16_BYTE( "241-c4.c4", 0x1000001, 0x800000, CRC(7d3e306f) SHA1(1499316fb381775218d897b81a6a0c3465d1a37c) )
+ROM_END
+
+ROM_START( mslug2s06 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "241hc06.p1", 0x000000, 0x100000, CRC(743a21da) SHA1(9691351b3b74ca88183c85d46e7f04e0f6535c86) )
+ ROM_LOAD16_WORD_SWAP( "241-p2.sp2", 0x100000, 0x200000, CRC(38883f44) SHA1(fcf34b8c6e37774741542393b963635412484a27) )
+
+ NEO_SFIX_128K( "241-s1.s1", CRC(f3d32f0f) SHA1(2dc38b7dfd3ff14f64d5c0733c510b6bb8c692d0) )
+
+ NEO_BIOS_AUDIO_128K( "241-m1.m1", CRC(94520ebd) SHA1(f8a1551cebcb91e416f30f50581feed7f72899e9) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "241-v1.v1", 0x000000, 0x400000, CRC(99ec20e8) SHA1(80597707f1fe115eed1941bb0701fc00790ad504) )
+ ROM_LOAD( "241-v2.v2", 0x400000, 0x400000, CRC(ecb16799) SHA1(b4b4ddc680836ed55942c66d7dfe756314e02211) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "241-c1.c1", 0x0000000, 0x800000, CRC(394b5e0d) SHA1(4549926f5054ee6aa7689cf920be0327e3908a50) )
+ ROM_LOAD16_BYTE( "241-c2.c2", 0x0000001, 0x800000, CRC(e5806221) SHA1(1e5475cfab129c77acc610f09369ca42ba5aafa5) )
+ ROM_LOAD16_BYTE( "241-c3.c3", 0x1000000, 0x800000, CRC(9f6bfa6f) SHA1(a4319b48004e723f81a980887678e3e296049a53) )
+ ROM_LOAD16_BYTE( "241-c4.c4", 0x1000001, 0x800000, CRC(7d3e306f) SHA1(1499316fb381775218d897b81a6a0c3465d1a37c) )
+ROM_END
+
+ROM_START( mslug2s07 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "241hc07.p1", 0x000000, 0x100000, CRC(1e93bc66) SHA1(d74d6dc150a7147dcc13b20d6888b6374b9f10ae) )
+ ROM_LOAD16_WORD_SWAP( "241-p2.sp2", 0x100000, 0x200000, CRC(38883f44) SHA1(fcf34b8c6e37774741542393b963635412484a27) )
+
+ NEO_SFIX_128K( "241-s1.s1", CRC(f3d32f0f) SHA1(2dc38b7dfd3ff14f64d5c0733c510b6bb8c692d0) )
+
+ NEO_BIOS_AUDIO_128K( "241-m1.m1", CRC(94520ebd) SHA1(f8a1551cebcb91e416f30f50581feed7f72899e9) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "241-v1.v1", 0x000000, 0x400000, CRC(99ec20e8) SHA1(80597707f1fe115eed1941bb0701fc00790ad504) )
+ ROM_LOAD( "241-v2.v2", 0x400000, 0x400000, CRC(ecb16799) SHA1(b4b4ddc680836ed55942c66d7dfe756314e02211) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "241-c1.c1", 0x0000000, 0x800000, CRC(394b5e0d) SHA1(4549926f5054ee6aa7689cf920be0327e3908a50) )
+ ROM_LOAD16_BYTE( "241-c2.c2", 0x0000001, 0x800000, CRC(e5806221) SHA1(1e5475cfab129c77acc610f09369ca42ba5aafa5) )
+ ROM_LOAD16_BYTE( "241-c3.c3", 0x1000000, 0x800000, CRC(9f6bfa6f) SHA1(a4319b48004e723f81a980887678e3e296049a53) )
+ ROM_LOAD16_BYTE( "241-c4.c4", 0x1000001, 0x800000, CRC(7d3e306f) SHA1(1499316fb381775218d897b81a6a0c3465d1a37c) )
+ROM_END
+
+ROM_START( mslug2s08 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "241hc08.p1", 0x000000, 0x100000, CRC(d1b10ed0) SHA1(db992fa93d1afb4adea30d63903fcd7d0e6ce9dd) )
+ ROM_LOAD16_WORD_SWAP( "241-p2.sp2", 0x100000, 0x200000, CRC(38883f44) SHA1(fcf34b8c6e37774741542393b963635412484a27) )
+
+ NEO_SFIX_128K( "241hc08.s1", CRC(e22801a7) SHA1(24120adfbc5e35efcea98cfb30a936b6630da7c5) )
+
+ NEO_BIOS_AUDIO_128K( "241-m1.m1", CRC(94520ebd) SHA1(f8a1551cebcb91e416f30f50581feed7f72899e9) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "241-v1.v1", 0x000000, 0x400000, CRC(99ec20e8) SHA1(80597707f1fe115eed1941bb0701fc00790ad504) )
+ ROM_LOAD( "241-v2.v2", 0x400000, 0x400000, CRC(ecb16799) SHA1(b4b4ddc680836ed55942c66d7dfe756314e02211) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "241fr.c1", 0x0000000, 0x800000, CRC(7df74035) SHA1(08322a2f4e87cd125ebc5b7a98754c7a5b8e91d2) )
+ ROM_LOAD16_BYTE( "241fr.c2", 0x0000001, 0x800000, CRC(97d9525d) SHA1(451a5bdafe1f2de63b76efb7d4afab454abdfff0) )
+ ROM_LOAD16_BYTE( "241-c3.c3", 0x1000000, 0x800000, CRC(9f6bfa6f) SHA1(a4319b48004e723f81a980887678e3e296049a53) )
+ ROM_LOAD16_BYTE( "241-c4.c4", 0x1000001, 0x800000, CRC(7d3e306f) SHA1(1499316fb381775218d897b81a6a0c3465d1a37c) )
+ROM_END
+
+ROM_START( mslug2s09 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "241hc09.p1", 0x000000, 0x100000, CRC(79d10528) SHA1(57f10863a533b388f6cfbcbd6a7852d4135c0a7a) )
+ ROM_LOAD16_WORD_SWAP( "241-p2.sp2", 0x100000, 0x200000, CRC(38883f44) SHA1(fcf34b8c6e37774741542393b963635412484a27) )
+
+ NEO_SFIX_128K( "241-s1.s1", CRC(f3d32f0f) SHA1(2dc38b7dfd3ff14f64d5c0733c510b6bb8c692d0) )
+
+ NEO_BIOS_AUDIO_128K( "241-m1.m1", CRC(94520ebd) SHA1(f8a1551cebcb91e416f30f50581feed7f72899e9) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "241-v1.v1", 0x000000, 0x400000, CRC(99ec20e8) SHA1(80597707f1fe115eed1941bb0701fc00790ad504) )
+ ROM_LOAD( "241-v2.v2", 0x400000, 0x400000, CRC(ecb16799) SHA1(b4b4ddc680836ed55942c66d7dfe756314e02211) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "241-c1.c1", 0x0000000, 0x800000, CRC(394b5e0d) SHA1(4549926f5054ee6aa7689cf920be0327e3908a50) )
+ ROM_LOAD16_BYTE( "241-c2.c2", 0x0000001, 0x800000, CRC(e5806221) SHA1(1e5475cfab129c77acc610f09369ca42ba5aafa5) )
+ ROM_LOAD16_BYTE( "241-c3.c3", 0x1000000, 0x800000, CRC(9f6bfa6f) SHA1(a4319b48004e723f81a980887678e3e296049a53) )
+ ROM_LOAD16_BYTE( "241-c4.c4", 0x1000001, 0x800000, CRC(7d3e306f) SHA1(1499316fb381775218d897b81a6a0c3465d1a37c) )
+ROM_END
+
+ROM_START( mslug2s10 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "241hc10.p1", 0x000000, 0x100000, CRC(addcde79) SHA1(7a62d92ed66d3fae7bcaf2a095a023b69c5fb6bf) )
+ ROM_LOAD16_WORD_SWAP( "241-p2.sp2", 0x100000, 0x200000, CRC(38883f44) SHA1(fcf34b8c6e37774741542393b963635412484a27) )
+
+ NEO_SFIX_128K( "241-s1.s1", CRC(f3d32f0f) SHA1(2dc38b7dfd3ff14f64d5c0733c510b6bb8c692d0) )
+
+ NEO_BIOS_AUDIO_128K( "241-m1.m1", CRC(94520ebd) SHA1(f8a1551cebcb91e416f30f50581feed7f72899e9) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "241-v1.v1", 0x000000, 0x400000, CRC(99ec20e8) SHA1(80597707f1fe115eed1941bb0701fc00790ad504) )
+ ROM_LOAD( "241-v2.v2", 0x400000, 0x400000, CRC(ecb16799) SHA1(b4b4ddc680836ed55942c66d7dfe756314e02211) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "241-c1.c1", 0x0000000, 0x800000, CRC(394b5e0d) SHA1(4549926f5054ee6aa7689cf920be0327e3908a50) )
+ ROM_LOAD16_BYTE( "241-c2.c2", 0x0000001, 0x800000, CRC(e5806221) SHA1(1e5475cfab129c77acc610f09369ca42ba5aafa5) )
+ ROM_LOAD16_BYTE( "241-c3.c3", 0x1000000, 0x800000, CRC(9f6bfa6f) SHA1(a4319b48004e723f81a980887678e3e296049a53) )
+ ROM_LOAD16_BYTE( "241-c4.c4", 0x1000001, 0x800000, CRC(7d3e306f) SHA1(1499316fb381775218d897b81a6a0c3465d1a37c) )
+ROM_END
+
+ROM_START( mslug2s11 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "241hc11.p1", 0x000000, 0x100000, CRC(7a189802) SHA1(e7853bcf39a51897a5a65adf0a309d4b4dd6cada) )
+ ROM_LOAD16_WORD_SWAP( "241-p2.sp2", 0x100000, 0x200000, CRC(38883f44) SHA1(fcf34b8c6e37774741542393b963635412484a27) )
+
+ NEO_SFIX_128K( "241-s1.s1", CRC(f3d32f0f) SHA1(2dc38b7dfd3ff14f64d5c0733c510b6bb8c692d0) )
+
+ NEO_BIOS_AUDIO_128K( "241-m1.m1", CRC(94520ebd) SHA1(f8a1551cebcb91e416f30f50581feed7f72899e9) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "241-v1.v1", 0x000000, 0x400000, CRC(99ec20e8) SHA1(80597707f1fe115eed1941bb0701fc00790ad504) )
+ ROM_LOAD( "241-v2.v2", 0x400000, 0x400000, CRC(ecb16799) SHA1(b4b4ddc680836ed55942c66d7dfe756314e02211) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "241-c1.c1", 0x0000000, 0x800000, CRC(394b5e0d) SHA1(4549926f5054ee6aa7689cf920be0327e3908a50) )
+ ROM_LOAD16_BYTE( "241-c2.c2", 0x0000001, 0x800000, CRC(e5806221) SHA1(1e5475cfab129c77acc610f09369ca42ba5aafa5) )
+ ROM_LOAD16_BYTE( "241-c3.c3", 0x1000000, 0x800000, CRC(9f6bfa6f) SHA1(a4319b48004e723f81a980887678e3e296049a53) )
+ ROM_LOAD16_BYTE( "241-c4.c4", 0x1000001, 0x800000, CRC(7d3e306f) SHA1(1499316fb381775218d897b81a6a0c3465d1a37c) )
+ROM_END
+
+ROM_START( mslug2s12 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "241hc12.p1", 0x000000, 0x100000, CRC(0f8960d4) SHA1(3b522cf437e65736e9d7ef3acf4381d399236eab) )
+ ROM_LOAD16_WORD_SWAP( "241-p2.sp2", 0x100000, 0x200000, CRC(38883f44) SHA1(fcf34b8c6e37774741542393b963635412484a27) )
+
+ NEO_SFIX_128K( "241-s1.s1", CRC(f3d32f0f) SHA1(2dc38b7dfd3ff14f64d5c0733c510b6bb8c692d0) )
+
+ NEO_BIOS_AUDIO_128K( "241-m1.m1", CRC(94520ebd) SHA1(f8a1551cebcb91e416f30f50581feed7f72899e9) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "241-v1.v1", 0x000000, 0x400000, CRC(99ec20e8) SHA1(80597707f1fe115eed1941bb0701fc00790ad504) )
+ ROM_LOAD( "241-v2.v2", 0x400000, 0x400000, CRC(ecb16799) SHA1(b4b4ddc680836ed55942c66d7dfe756314e02211) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "241-c1.c1", 0x0000000, 0x800000, CRC(394b5e0d) SHA1(4549926f5054ee6aa7689cf920be0327e3908a50) )
+ ROM_LOAD16_BYTE( "241-c2.c2", 0x0000001, 0x800000, CRC(e5806221) SHA1(1e5475cfab129c77acc610f09369ca42ba5aafa5) )
+ ROM_LOAD16_BYTE( "241-c3.c3", 0x1000000, 0x800000, CRC(9f6bfa6f) SHA1(a4319b48004e723f81a980887678e3e296049a53) )
+ ROM_LOAD16_BYTE( "241-c4.c4", 0x1000001, 0x800000, CRC(7d3e306f) SHA1(1499316fb381775218d897b81a6a0c3465d1a37c) )
+ROM_END
+
+ROM_START( mslug2s13 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "241hc13.p1", 0x000000, 0x100000, CRC(514871ad) SHA1(8ec3ee9538f2871e93c2bb8413e11e15cdcfa22d) )
+ ROM_LOAD16_WORD_SWAP( "241-p2.sp2", 0x100000, 0x200000, CRC(38883f44) SHA1(fcf34b8c6e37774741542393b963635412484a27) )
+
+ NEO_SFIX_128K( "241-s1.s1", CRC(f3d32f0f) SHA1(2dc38b7dfd3ff14f64d5c0733c510b6bb8c692d0) )
+
+ NEO_BIOS_AUDIO_128K( "241-m1.m1", CRC(94520ebd) SHA1(f8a1551cebcb91e416f30f50581feed7f72899e9) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "241-v1.v1", 0x000000, 0x400000, CRC(99ec20e8) SHA1(80597707f1fe115eed1941bb0701fc00790ad504) )
+ ROM_LOAD( "241-v2.v2", 0x400000, 0x400000, CRC(ecb16799) SHA1(b4b4ddc680836ed55942c66d7dfe756314e02211) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "241-c1.c1", 0x0000000, 0x800000, CRC(394b5e0d) SHA1(4549926f5054ee6aa7689cf920be0327e3908a50) )
+ ROM_LOAD16_BYTE( "241-c2.c2", 0x0000001, 0x800000, CRC(e5806221) SHA1(1e5475cfab129c77acc610f09369ca42ba5aafa5) )
+ ROM_LOAD16_BYTE( "241-c3.c3", 0x1000000, 0x800000, CRC(9f6bfa6f) SHA1(a4319b48004e723f81a980887678e3e296049a53) )
+ ROM_LOAD16_BYTE( "241-c4.c4", 0x1000001, 0x800000, CRC(7d3e306f) SHA1(1499316fb381775218d897b81a6a0c3465d1a37c) )
+ROM_END
+
+ROM_START( mslug2s14 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "241hc14.p1", 0x000000, 0x100000, CRC(6f44ccd7) SHA1(6d5f1f35b16628c09e37790d4b588ef9c7ec40e3) )
+ ROM_LOAD16_WORD_SWAP( "241-p2.sp2", 0x100000, 0x200000, CRC(38883f44) SHA1(fcf34b8c6e37774741542393b963635412484a27) )
+
+ NEO_SFIX_128K( "241-s1.s1", CRC(f3d32f0f) SHA1(2dc38b7dfd3ff14f64d5c0733c510b6bb8c692d0) )
+
+ NEO_BIOS_AUDIO_128K( "241-m1.m1", CRC(94520ebd) SHA1(f8a1551cebcb91e416f30f50581feed7f72899e9) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "241-v1.v1", 0x000000, 0x400000, CRC(99ec20e8) SHA1(80597707f1fe115eed1941bb0701fc00790ad504) )
+ ROM_LOAD( "241-v2.v2", 0x400000, 0x400000, CRC(ecb16799) SHA1(b4b4ddc680836ed55942c66d7dfe756314e02211) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "241-c1.c1", 0x0000000, 0x800000, CRC(394b5e0d) SHA1(4549926f5054ee6aa7689cf920be0327e3908a50) )
+ ROM_LOAD16_BYTE( "241-c2.c2", 0x0000001, 0x800000, CRC(e5806221) SHA1(1e5475cfab129c77acc610f09369ca42ba5aafa5) )
+ ROM_LOAD16_BYTE( "241-c3.c3", 0x1000000, 0x800000, CRC(9f6bfa6f) SHA1(a4319b48004e723f81a980887678e3e296049a53) )
+ ROM_LOAD16_BYTE( "241-c4.c4", 0x1000001, 0x800000, CRC(7d3e306f) SHA1(1499316fb381775218d897b81a6a0c3465d1a37c) )
+ROM_END
+
+ROM_START( mslug2s15 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "241hc15.p1", 0x000000, 0x100000, CRC(f172d6d5) SHA1(0747c7932d75c8e1487a53bf319952e70ee6b911) )
+ ROM_LOAD16_WORD_SWAP( "241-p2.sp2", 0x100000, 0x200000, CRC(38883f44) SHA1(fcf34b8c6e37774741542393b963635412484a27) )
+
+ NEO_SFIX_128K( "241-s1.s1", CRC(f3d32f0f) SHA1(2dc38b7dfd3ff14f64d5c0733c510b6bb8c692d0) )
+
+ NEO_BIOS_AUDIO_128K( "241-m1.m1", CRC(94520ebd) SHA1(f8a1551cebcb91e416f30f50581feed7f72899e9) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "241-v1.v1", 0x000000, 0x400000, CRC(99ec20e8) SHA1(80597707f1fe115eed1941bb0701fc00790ad504) )
+ ROM_LOAD( "241-v2.v2", 0x400000, 0x400000, CRC(ecb16799) SHA1(b4b4ddc680836ed55942c66d7dfe756314e02211) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "241-c1.c1", 0x0000000, 0x800000, CRC(394b5e0d) SHA1(4549926f5054ee6aa7689cf920be0327e3908a50) )
+ ROM_LOAD16_BYTE( "241-c2.c2", 0x0000001, 0x800000, CRC(e5806221) SHA1(1e5475cfab129c77acc610f09369ca42ba5aafa5) )
+ ROM_LOAD16_BYTE( "241-c3.c3", 0x1000000, 0x800000, CRC(9f6bfa6f) SHA1(a4319b48004e723f81a980887678e3e296049a53) )
+ ROM_LOAD16_BYTE( "241-c4.c4", 0x1000001, 0x800000, CRC(7d3e306f) SHA1(1499316fb381775218d897b81a6a0c3465d1a37c) )
+ROM_END
+
+ /********************************************
+ Metal Slug X - Super Vehicle-001
+**********************************************/
+
+ROM_START( mslugxs01 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc01.p1", 0x000000, 0x100000, CRC(d81fd813) SHA1(ef811548802f514d9cc5b848343ce092928ec475) )
+ ROM_LOAD16_WORD_SWAP( "250ce.p2", 0x100000, 0x400000, CRC(5d1c52cd) SHA1(b2b131fa845b0098cbf0750fee20b402e276483b) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1fr.c1", 0x0000000, 0x800000, CRC(56279f7c) SHA1(35e2986acd5271b89dc047e59943c3a643c7ef89) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxs02 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc20.p1", 0x000000, 0x100000, CRC(d8834fcc) SHA1(2391af1873d33b49452fa5178c568bbd7154aaef) )
+ ROM_LOAD16_WORD_SWAP( "250ce.p2", 0x100000, 0x400000, CRC(5d1c52cd) SHA1(b2b131fa845b0098cbf0750fee20b402e276483b) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxs03 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250eh.p1", 0x000000, 0x100000, CRC(2e110dd7) SHA1(4ce18a726103bc7c1972125806b2c89332338050) )
+ ROM_LOAD16_WORD_SWAP( "250ce.p2", 0x100000, 0x400000, CRC(5d1c52cd) SHA1(b2b131fa845b0098cbf0750fee20b402e276483b) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxs04 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc22.p1", 0x000000, 0x100000, CRC(d611f53f) SHA1(99c51db8b89af5f4e8a188d18356213b81ef131c) )
+ ROM_LOAD16_WORD_SWAP( "250ce.p2", 0x100000, 0x400000, CRC(5d1c52cd) SHA1(b2b131fa845b0098cbf0750fee20b402e276483b) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxs05 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250it.p1", 0x000000, 0x100000, CRC(f3e154ea) SHA1(bb8260deefa7b048772625085e6f41cab717a147) )
+ ROM_LOAD16_WORD_SWAP( "250ce.p2", 0x100000, 0x400000, CRC(5d1c52cd) SHA1(b2b131fa845b0098cbf0750fee20b402e276483b) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxs06 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250p.p1", 0x000000, 0x100000, CRC(e65937fc) SHA1(128af1815a23962de02384d61ff52869ae14cea1) )
+ ROM_LOAD16_WORD_SWAP( "250ce.p2", 0x100000, 0x400000, CRC(5d1c52cd) SHA1(b2b131fa845b0098cbf0750fee20b402e276483b) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxs07 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc23.p1", 0x000000, 0x100000, CRC(f6da7742) SHA1(d3df1e11f14fcdbc8f73b947a4fe89df48da84a8) )
+ ROM_LOAD16_WORD_SWAP( "250ce.p2", 0x100000, 0x400000, CRC(5d1c52cd) SHA1(b2b131fa845b0098cbf0750fee20b402e276483b) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxs08 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc02.p1", 0x000000, 0x100000, CRC(44d477ad) SHA1(787147edf88a2ae293f410620f9f6c9c46b017b2) )
+ ROM_LOAD16_WORD_SWAP( "250ce.p2", 0x100000, 0x400000, CRC(5d1c52cd) SHA1(b2b131fa845b0098cbf0750fee20b402e276483b) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxs09 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc03.p1", 0x000000, 0x100000, CRC(6d13f5ba) SHA1(d4daacaafc4f7d08858c220e494b24a4bf84ca2e) )
+ ROM_LOAD16_WORD_SWAP( "250ce.p2", 0x100000, 0x400000, CRC(5d1c52cd) SHA1(b2b131fa845b0098cbf0750fee20b402e276483b) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxs10 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc04.p1", 0x000000, 0x100000, CRC(f25375fa) SHA1(6b498edad294a700cc295c574fc4d96e8aad28fb) )
+ ROM_LOAD16_WORD_SWAP( "250ce.p2", 0x100000, 0x400000, CRC(5d1c52cd) SHA1(b2b131fa845b0098cbf0750fee20b402e276483b) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxs11 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc05.p1", 0x000000, 0x100000, CRC(4b8b1580) SHA1(570207e6fd4e461b4e2c585184cd395db1c14fee) )
+ ROM_LOAD16_WORD_SWAP( "250ce.p2", 0x100000, 0x400000, CRC(5d1c52cd) SHA1(b2b131fa845b0098cbf0750fee20b402e276483b) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxs12 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc06.p1", 0x000000, 0x100000, CRC(7a0309b1) SHA1(49272808139da2bc8c54b88cdc7f786f6d337374) )
+ ROM_LOAD16_WORD_SWAP( "250ce.p2", 0x100000, 0x400000, CRC(5d1c52cd) SHA1(b2b131fa845b0098cbf0750fee20b402e276483b) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxs13 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc07.p1", 0x000000, 0x100000, CRC(20dad938) SHA1(623404702d56f14a8a4faf981da74d22cf837ee4) )
+ ROM_LOAD16_WORD_SWAP( "250ce.p2", 0x100000, 0x400000, CRC(5d1c52cd) SHA1(b2b131fa845b0098cbf0750fee20b402e276483b) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxs14 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc08.p1", 0x000000, 0x100000, CRC(38079437) SHA1(7ab0de50831b60d3b47ef885eee43bed3c085e5b) )
+ ROM_LOAD16_WORD_SWAP( "250ce.p2", 0x100000, 0x400000, CRC(5d1c52cd) SHA1(b2b131fa845b0098cbf0750fee20b402e276483b) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxs15 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc09.p1", 0x000000, 0x100000, CRC(834c510a) SHA1(33a3bd671d695f6f482d8306acff18e038f848fa) )
+ ROM_LOAD16_WORD_SWAP( "250ce.p2", 0x100000, 0x400000, CRC(5d1c52cd) SHA1(b2b131fa845b0098cbf0750fee20b402e276483b) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxs16 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc10.p1", 0x000000, 0x100000, CRC(544e1af9) SHA1(df6e5c1a95fb0eec9a2f7916b2979f48c3dbcc29) )
+ ROM_LOAD16_WORD_SWAP( "250ce.p2", 0x100000, 0x400000, CRC(5d1c52cd) SHA1(b2b131fa845b0098cbf0750fee20b402e276483b) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxs17 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc11.p1", 0x000000, 0x100000, CRC(dc1e66b2) SHA1(a55641afef1e2ac28990b23813e0a7ed2d25d40b) )
+ ROM_LOAD16_WORD_SWAP( "250ce.p2", 0x100000, 0x400000, CRC(5d1c52cd) SHA1(b2b131fa845b0098cbf0750fee20b402e276483b) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxs18 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc12.p1", 0x000000, 0x100000, CRC(3fc17d34) SHA1(0d128bcd7795f604dfec1c7efce9a262be0c52af) )
+ ROM_LOAD16_WORD_SWAP( "250ce.p2", 0x100000, 0x400000, CRC(5d1c52cd) SHA1(b2b131fa845b0098cbf0750fee20b402e276483b) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxs19 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc13.p1", 0x000000, 0x100000, CRC(3d7cda35) SHA1(dc039b226a48da1abcd1d2dd0de28b0149ffa427) )
+ ROM_LOAD16_WORD_SWAP( "250ce.p2", 0x100000, 0x400000, CRC(5d1c52cd) SHA1(b2b131fa845b0098cbf0750fee20b402e276483b) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxs20 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc14.p1", 0x000000, 0x100000, CRC(f8a5e9fe) SHA1(d01d790b2beabc92668dd62a6933f32355aa60c1) )
+ ROM_LOAD16_WORD_SWAP( "250ce.p2", 0x100000, 0x400000, CRC(5d1c52cd) SHA1(b2b131fa845b0098cbf0750fee20b402e276483b) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxs21 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc15.p1", 0x000000, 0x100000, CRC(3e9ac95b) SHA1(ee0a0781c44ef94ec68264db01773981938f3896) )
+ ROM_LOAD16_WORD_SWAP( "250ce.p2", 0x100000, 0x400000, CRC(5d1c52cd) SHA1(b2b131fa845b0098cbf0750fee20b402e276483b) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxs22 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc16.p1", 0x000000, 0x100000, CRC(32f10833) SHA1(2ffbd0d402eca9705685b2521192216be0d3968f) )
+ ROM_LOAD16_WORD_SWAP( "250ce.p2", 0x100000, 0x400000, CRC(5d1c52cd) SHA1(b2b131fa845b0098cbf0750fee20b402e276483b) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxs23 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc17.p1", 0x000000, 0x100000, CRC(dbd88fb1) SHA1(85a18a4f70b0681a5c6ae205366bc03ac0718670) )
+ ROM_LOAD16_WORD_SWAP( "250ce.p2", 0x100000, 0x400000, CRC(5d1c52cd) SHA1(b2b131fa845b0098cbf0750fee20b402e276483b) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxs24 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc18.p1", 0x000000, 0x100000, CRC(304caf32) SHA1(91466a1b6c5f2856b103f34d54aa8f30537b9999) )
+ ROM_LOAD16_WORD_SWAP( "250ce.p2", 0x100000, 0x400000, CRC(5d1c52cd) SHA1(b2b131fa845b0098cbf0750fee20b402e276483b) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxs25 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc19.p1", 0x000000, 0x100000, CRC(868c9175) SHA1(17fae04c15bdbf50ab2219adf32b78d3042fea22) )
+ ROM_LOAD16_WORD_SWAP( "250ce.p2", 0x100000, 0x400000, CRC(5d1c52cd) SHA1(b2b131fa845b0098cbf0750fee20b402e276483b) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxs26 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250z03.p1", 0x000000, 0x100000, CRC(3aba1c04) SHA1(88018994abb0bdcbce2ba3627670ca9aca5da340) )
+ ROM_LOAD16_WORD_SWAP( "250ce.p2", 0x100000, 0x400000, CRC(5d1c52cd) SHA1(b2b131fa845b0098cbf0750fee20b402e276483b) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxs27 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250z08.p1", 0x000000, 0x100000, CRC(c47a1d13) SHA1(cc240efea252c6fb1f1bdb763b4e645c3a8134af) )
+ ROM_LOAD16_WORD_SWAP( "250ce.p2", 0x100000, 0x400000, CRC(5d1c52cd) SHA1(b2b131fa845b0098cbf0750fee20b402e276483b) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxs28 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250z09.p1", 0x000000, 0x100000, CRC(30fc5fe1) SHA1(aae87d45e4a5e0ba2c3b56fc529d9b5edeeeca92) )
+ ROM_LOAD16_WORD_SWAP( "250ce.p2", 0x100000, 0x400000, CRC(5d1c52cd) SHA1(b2b131fa845b0098cbf0750fee20b402e276483b) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxs29 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250z22.p1", 0x000000, 0x100000, CRC(378a4631) SHA1(b6d35ca6c57c9112626bae11ad5649ba62640a49) )
+ ROM_LOAD16_WORD_SWAP( "250ce.p2", 0x100000, 0x400000, CRC(5d1c52cd) SHA1(b2b131fa845b0098cbf0750fee20b402e276483b) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxs30 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250z23.p1", 0x000000, 0x100000, CRC(fb7d7871) SHA1(0130f226a3366a1e021c6434110016879133975e) )
+ ROM_LOAD16_WORD_SWAP( "250ce.p2", 0x100000, 0x400000, CRC(5d1c52cd) SHA1(b2b131fa845b0098cbf0750fee20b402e276483b) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxs31 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250z24.p1", 0x000000, 0x100000, CRC(cc5bd3c5) SHA1(781cc7562e99af6ddd4ae04ba66bc5ff012d28d1) )
+ ROM_LOAD16_WORD_SWAP( "250ce.p2", 0x100000, 0x400000, CRC(5d1c52cd) SHA1(b2b131fa845b0098cbf0750fee20b402e276483b) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxs32 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250z25.p1", 0x000000, 0x100000, CRC(6b3d96ce) SHA1(f8dd470ddb32fed3eaebf2d72ed087b714851319) )
+ ROM_LOAD16_WORD_SWAP( "250ce.p2", 0x100000, 0x400000, CRC(5d1c52cd) SHA1(b2b131fa845b0098cbf0750fee20b402e276483b) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxs33 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250z27.p1", 0x000000, 0x100000, CRC(60002aca) SHA1(55c28cc02ddc6e7134dd0cf3f721deaafe21e0e6) )
+ ROM_LOAD16_WORD_SWAP( "250ce.p2", 0x100000, 0x400000, CRC(5d1c52cd) SHA1(b2b131fa845b0098cbf0750fee20b402e276483b) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxs34 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250z28.p1", 0x000000, 0x100000, CRC(3418902f) SHA1(9fbb3b758301c5546ee50b51ba888a2c59118d43) )
+ ROM_LOAD16_WORD_SWAP( "250ce.p2", 0x100000, 0x400000, CRC(5d1c52cd) SHA1(b2b131fa845b0098cbf0750fee20b402e276483b) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxs35 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250z29.p1", 0x000000, 0x100000, CRC(c405753d) SHA1(bed7426145fd15e972334d7ef04759edcccd8864) )
+ ROM_LOAD16_WORD_SWAP( "250ce.p2", 0x100000, 0x400000, CRC(5d1c52cd) SHA1(b2b131fa845b0098cbf0750fee20b402e276483b) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxs36 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250res.p1", 0x000000, 0x100000, CRC(d69fb994) SHA1(2cbffae29b92ef4b8f90e01488f89654a42a8596) )
+ ROM_LOAD16_WORD_SWAP( "250ce.p2", 0x100000, 0x400000, CRC(5d1c52cd) SHA1(b2b131fa845b0098cbf0750fee20b402e276483b) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxh01 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc01.p1", 0x000000, 0x100000, CRC(d81fd813) SHA1(ef811548802f514d9cc5b848343ce092928ec475) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1fr.c1", 0x0000000, 0x800000, CRC(56279f7c) SHA1(35e2986acd5271b89dc047e59943c3a643c7ef89) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxh02 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc20.p1", 0x000000, 0x100000, CRC(d8834fcc) SHA1(2391af1873d33b49452fa5178c568bbd7154aaef) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxh03 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250eh.p1", 0x000000, 0x100000, CRC(2e110dd7) SHA1(4ce18a726103bc7c1972125806b2c89332338050) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxh04 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc22.p1", 0x000000, 0x100000, CRC(d611f53f) SHA1(99c51db8b89af5f4e8a188d18356213b81ef131c) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxh05 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250it.p1", 0x000000, 0x100000, CRC(f3e154ea) SHA1(bb8260deefa7b048772625085e6f41cab717a147) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxh06 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250p.p1", 0x000000, 0x100000, CRC(e65937fc) SHA1(128af1815a23962de02384d61ff52869ae14cea1) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxh07 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc23.p1", 0x000000, 0x100000, CRC(f6da7742) SHA1(d3df1e11f14fcdbc8f73b947a4fe89df48da84a8) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxh08 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc02.p1", 0x000000, 0x100000, CRC(44d477ad) SHA1(787147edf88a2ae293f410620f9f6c9c46b017b2) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxh09 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc03.p1", 0x000000, 0x100000, CRC(6d13f5ba) SHA1(d4daacaafc4f7d08858c220e494b24a4bf84ca2e) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxh10 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc04.p1", 0x000000, 0x100000, CRC(f25375fa) SHA1(6b498edad294a700cc295c574fc4d96e8aad28fb) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxh11 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc05.p1", 0x000000, 0x100000, CRC(4b8b1580) SHA1(570207e6fd4e461b4e2c585184cd395db1c14fee) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxh12 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc06.p1", 0x000000, 0x100000, CRC(7a0309b1) SHA1(49272808139da2bc8c54b88cdc7f786f6d337374) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxh13 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc07.p1", 0x000000, 0x100000, CRC(20dad938) SHA1(623404702d56f14a8a4faf981da74d22cf837ee4) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxh14 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc08.p1", 0x000000, 0x100000, CRC(38079437) SHA1(7ab0de50831b60d3b47ef885eee43bed3c085e5b) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxh15 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc09.p1", 0x000000, 0x100000, CRC(834c510a) SHA1(33a3bd671d695f6f482d8306acff18e038f848fa) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxh16 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc10.p1", 0x000000, 0x100000, CRC(544e1af9) SHA1(df6e5c1a95fb0eec9a2f7916b2979f48c3dbcc29) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxh17 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc11.p1", 0x000000, 0x100000, CRC(dc1e66b2) SHA1(a55641afef1e2ac28990b23813e0a7ed2d25d40b) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxh18 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc12.p1", 0x000000, 0x100000, CRC(3fc17d34) SHA1(0d128bcd7795f604dfec1c7efce9a262be0c52af) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxh19 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc13.p1", 0x000000, 0x100000, CRC(3d7cda35) SHA1(dc039b226a48da1abcd1d2dd0de28b0149ffa427) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxh20 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc14.p1", 0x000000, 0x100000, CRC(f8a5e9fe) SHA1(d01d790b2beabc92668dd62a6933f32355aa60c1) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxh21 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc15.p1", 0x000000, 0x100000, CRC(3e9ac95b) SHA1(ee0a0781c44ef94ec68264db01773981938f3896) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxh22 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc16.p1", 0x000000, 0x100000, CRC(32f10833) SHA1(2ffbd0d402eca9705685b2521192216be0d3968f) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxh23 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc17.p1", 0x000000, 0x100000, CRC(dbd88fb1) SHA1(85a18a4f70b0681a5c6ae205366bc03ac0718670) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxh24 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc18.p1", 0x000000, 0x100000, CRC(304caf32) SHA1(91466a1b6c5f2856b103f34d54aa8f30537b9999) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxh25 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc19.p1", 0x000000, 0x100000, CRC(868c9175) SHA1(17fae04c15bdbf50ab2219adf32b78d3042fea22) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxh26 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250z03.p1", 0x000000, 0x100000, CRC(3aba1c04) SHA1(88018994abb0bdcbce2ba3627670ca9aca5da340) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxh27 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250ce.p1", 0x000000, 0x100000, CRC(e75a6d64) SHA1(529130f7ebb43231e6bf1b1703266b6c09356f9c) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxh28 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250z08.p1", 0x000000, 0x100000, CRC(c47a1d13) SHA1(cc240efea252c6fb1f1bdb763b4e645c3a8134af) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxh29 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250z09.p1", 0x000000, 0x100000, CRC(30fc5fe1) SHA1(aae87d45e4a5e0ba2c3b56fc529d9b5edeeeca92) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxh30 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250z22.p1", 0x000000, 0x100000, CRC(378a4631) SHA1(b6d35ca6c57c9112626bae11ad5649ba62640a49) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxh31 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250z23.p1", 0x000000, 0x100000, CRC(fb7d7871) SHA1(0130f226a3366a1e021c6434110016879133975e) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxh32 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250z24.p1", 0x000000, 0x100000, CRC(cc5bd3c5) SHA1(781cc7562e99af6ddd4ae04ba66bc5ff012d28d1) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxh33 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250z25.p1", 0x000000, 0x100000, CRC(6b3d96ce) SHA1(f8dd470ddb32fed3eaebf2d72ed087b714851319) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxh34 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250z27.p1", 0x000000, 0x100000, CRC(60002aca) SHA1(55c28cc02ddc6e7134dd0cf3f721deaafe21e0e6) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxh35 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250z28.p1", 0x000000, 0x100000, CRC(3418902f) SHA1(9fbb3b758301c5546ee50b51ba888a2c59118d43) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxh36 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250z29.p1", 0x000000, 0x100000, CRC(c405753d) SHA1(bed7426145fd15e972334d7ef04759edcccd8864) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxh37 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250res.p1", 0x000000, 0x100000, CRC(d69fb994) SHA1(2cbffae29b92ef4b8f90e01488f89654a42a8596) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj01 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j01.p1", 0x000000, 0x454F47, CRC(dabe52f0) SHA1(539e6d42e46c009ec231a35c9c60dfe05d572272) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj02 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j02.p1", 0x000000, 0x454F47, CRC(4d97d194) SHA1(10b365d8f87f69fc6c7a99d8d3574017b6f21ea4) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj03 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j03.p1", 0x000000, 0x454F47, CRC(42f4a817) SHA1(7f4fc33ed8e41a47750ff6d73fa9d7df0767fb30) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj04 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j04.p1", 0x000000, 0x454F47, CRC(19282f4e) SHA1(7fb8260ac4ea4b0e1797f3621c795f17c4eb01f3) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj05 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j05.p1", 0x000000, 0x454F47, CRC(d25c5117) SHA1(c13343c7ced42f1da23a5e2d677a9ebaf5a58863) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj06 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j06.p1", 0x000000, 0x454F47, CRC(fb35f57f) SHA1(abb72e8e8a06a606d50fc2b14fcd48fb05006132) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj07 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j07.p1", 0x000000, 0x454F47, CRC(4575d273) SHA1(8426ad46a176bde3ece105f3e2c91d56127e2229) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj08 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j08.p1", 0x000000, 0x454F47, CRC(c4192cbd) SHA1(5b88aa38d4b170a2dff30dfbca3d23574e54afbd) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj09 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j09.p1", 0x000000, 0x454F47, CRC(8ef74a1d) SHA1(39a8798167f3e7c19fc403fcb08d0701c6261c50) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj10 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j10.p1", 0x000000, 0x454F47, CRC(45833444) SHA1(c9f2d15d9a1ef61350b432d5dd873f30339f4eb8) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj11 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j11.p1", 0x000000, 0x454F47, CRC(01826a42) SHA1(3e03ff773e0f978474abeff456de041a479b7cff) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj12 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j12.p1", 0x000000, 0x454F47, CRC(8194339e) SHA1(6cb8c9fee3d48b30335fe78be7ba833141651f75) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj13 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j13.p1", 0x000000, 0x454F47, CRC(ec5f1ab9) SHA1(89228ff93a0309213e589af7db9ce873aa04c1c6) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj14 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j14.p1", 0x000000, 0x454F47, CRC(7b5013d5) SHA1(6fe9e860b933fb9ec921f57081f1a9f1d19dc570) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj15 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j15.p1", 0x000000, 0x454F47, CRC(ec7990b1) SHA1(6d5ddfff6f9d179d5d3c36d500d37d35b1891378) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj16 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j16.p1", 0x000000, 0x454F47, CRC(e31ae932) SHA1(9b300e82d9e41b408fdf09a549f3c0da6281470b) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj17 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j17.p1", 0x000000, 0x454F47, CRC(b8c66e6b) SHA1(b5b53ef5eb9d8cb85ae9ca24d407fc04d1f08646) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj18 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j18.p1", 0x000000, 0x454F47, CRC(73b21032) SHA1(8662aba5081ca895b2f6c68803ba563473fbe61c) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj19 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j19.p1", 0x000000, 0x454F47, CRC(5adbb45a) SHA1(8a0d43189484c9224efc1b046e28ca2a97ada051) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj20 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j20.p1", 0x000000, 0x454F47, CRC(e49b9356) SHA1(62933ff3d29b112b4bac591e698c49a95992c159) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj21 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j21.p1", 0x000000, 0x454F47, CRC(65f76d98) SHA1(1c96cf140b46a16bf844374d8005424c753e6bbd) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj22 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j22.p1", 0x000000, 0x454F47, CRC(2f190b38) SHA1(7a7547427e2c424f3df7ceb3abe2943900001bed) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj23 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j23.p1", 0x000000, 0x454F47, CRC(e46d7561) SHA1(cfa8a5b1a8e270594fca1ff9cf1afeee39469340) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj24 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j24.p1", 0x000000, 0x454F47, CRC(a06c2b67) SHA1(22cbe4f2ea99b8c68fff7325c1a93162ffcdc14f) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj25 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j25.p1", 0x000000, 0x454F47, CRC(207a72bb) SHA1(272f5810d2338f03d0b18bf396fcf7aa88be66f4) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj26 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j26.p1", 0x000000, 0x454F47, CRC(4db15b9c) SHA1(f9c2d2067d19f3b7cdaf3eb5997e506a646fa6c3) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj27 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j27.p1", 0x000000, 0x454F47, CRC(db1499dd) SHA1(a050da0e6023d6a02d29f7250fbe59da060ae7e4) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj28 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j28.p1", 0x000000, 0x454F47, CRC(4c3d1ab9) SHA1(be9f3e3048498dda33cfb065f3cb8edbe31bea96) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj29 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j29.p1", 0x000000, 0x454F47, CRC(435e633a) SHA1(d0bc109452025be30aca3ff4c085d03337d63d07) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj30 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j30.p1", 0x000000, 0x454F47, CRC(1882e463) SHA1(a8afb9dd362a8d52c2b413aac5ce6566254b7699) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj31 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j31.p1", 0x000000, 0x454F47, CRC(d3f69a3a) SHA1(11f3921d964f33a8a6dffcf1d725f29703236127) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj32 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j32.p1", 0x000000, 0x454F47, CRC(fa9f3e52) SHA1(6303388a2b1b584aa5d578d31e1c96dfe474997c) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj33 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j33.p1", 0x000000, 0x454F47, CRC(44df195e) SHA1(56b33980ddc20f2df532e3e4a5bd2a3e6ff9672b) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj34 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j34.p1", 0x000000, 0x454F47, CRC(c5b3e790) SHA1(9eadd047bb39595b8d76fcd20c6708eb7f20a3c2) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj35 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j35.p1", 0x000000, 0x454F47, CRC(8f5d8130) SHA1(ef3823e9f3e6685a09d923a671857df177ac3309) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj36 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j36.p1", 0x000000, 0x454F47, CRC(4429ff69) SHA1(5c7b1c3642a60b3283277a1b0ef9dc714175f291) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj37 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j37.p1", 0x000000, 0x454F47, CRC(0028a16f) SHA1(d7e947fee0c45b1c3fd680695056877c318657ba) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj38 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j38.p1", 0x000000, 0x454F47, CRC(803ef8b3) SHA1(6cb7d4f0a38dd5856be7d040eb0e7e8072f96841) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj39 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j39.p1", 0x000000, 0x454F47, CRC(4db15b9c) SHA1(f9c2d2067d19f3b7cdaf3eb5997e506a646fa6c3) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj40 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j40.p1", 0x000000, 0x454F47, CRC(fd2e4397) SHA1(86d193a8abc15634a2fd79c94caad3d3863ca8b0) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj41 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j41.p1", 0x000000, 0x454F47, CRC(6a07c0f3) SHA1(2a3bed004cbaa5ca00d18d4c9111db33e4501245) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj42 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j42.p1", 0x000000, 0x454F47, CRC(6564b970) SHA1(b26b58eba0dca2427fc1dbf224f7e3be16dcc9d1) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj43 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j43.p1", 0x000000, 0x454F47, CRC(3eb83e29) SHA1(9fa0ae542e13eb5b06cd2a309eff90c11c701a2a) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj44 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j44.p1", 0x000000, 0x454F47, CRC(f5cc4070) SHA1(524012bca6ada22fb061e5d9c4da59a834856438) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj45 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j45.p1", 0x000000, 0x454F47, CRC(dca5e418) SHA1(2aad337e06f47ac6da2870a4df393c6a51e12da3) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj46 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j46.p1", 0x000000, 0x454F47, CRC(62e5c314) SHA1(9030dd44cc99f1cbb0d8f07690da51a6a0a80ed3) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj47 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j47.p1", 0x000000, 0x454F47, CRC(e3893dda) SHA1(f9defa31fbaaf1fe94e25aa7eaf7ba18ae2af9c0) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj48 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j48.p1", 0x000000, 0x454F47, CRC(a9675b7a) SHA1(52f9af970de5dec26647ec4e13e9574a4c2f9852) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj49 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j49.p1", 0x000000, 0x454F47, CRC(62132523) SHA1(00d724c16ffefcd67c8b8be4c3b8200cedf5df76) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj50 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j50.p1", 0x000000, 0x454F47, CRC(26127b25) SHA1(5f114f67dad12b32a8c4a7971c1bac09369c930f) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj51 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j51.p1", 0x000000, 0x454F47, CRC(a60422f9) SHA1(93e34329ea0ff3629336fb6a626885aafb495119) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj52 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j52.p1", 0x000000, 0x454F47, CRC(cbcf0bde) SHA1(4ab50d311e57c76f13db6066fce698caaeb66ac5) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj53 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j53.p1", 0x000000, 0x454F47, CRC(5cc002b2) SHA1(196c5c9e4858ec7ec6d313e6f7bacfb5a17072ef) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj54 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j54.p1", 0x000000, 0x454F47, CRC(cbe981d6) SHA1(7b290f4f73599363cde8abafdd2e2ce6bd816cfc) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj55 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j55.p1", 0x000000, 0x454F47, CRC(c48af855) SHA1(1b9ec490ae199336083a919fcb8d209991f06fce) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj56 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j56.p1", 0x000000, 0x454F47, CRC(9f567f0c) SHA1(854b6c25d633acc84155c2bf2c09a654895747db) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj57 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j57.p1", 0x000000, 0x454F47, CRC(54220155) SHA1(f9f68f9421d65da1848a0b07a5429e8f3e2e58d1) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj58 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j58.p1", 0x000000, 0x454F47, CRC(7d4ba53d) SHA1(949214801a2ea511aff7404a830eb239a2e7a526) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj59 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j59.p1", 0x000000, 0x454F47, CRC(c30b8231) SHA1(ffb92b6bdc2d918f71ac532f14a1f6b3fc590f3b) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj60 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j60.p1", 0x000000, 0x454F47, CRC(42677cff) SHA1(040b0a7f7f7619b1fc3e2711fabd009509256588) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj61 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j61.p1", 0x000000, 0x454F47, CRC(08891a5f) SHA1(9bfc668917ac5b6f2986af383857f3c441b260a9) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj62 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j62.p1", 0x000000, 0x454F47, CRC(c3fd6406) SHA1(6b6041f2a7abb067c6582b550cd38b5299ce194d) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj63 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j63.p1", 0x000000, 0x454F47, CRC(87fc3a00) SHA1(33d5ac48ff3ecb10521eb435e20d0f40ed208005) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj64 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j64.p1", 0x000000, 0x454F47, CRC(07ea63dc) SHA1(dbd21b9b56718e2f53d6aca0c33f945e2d28eadc) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj65 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j65.p1", 0x000000, 0x454F47, CRC(6a214afb) SHA1(955abaf2736082cf3257a9f13a7ebab979c7655a) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj66 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j66.p1", 0x000000, 0x454F47, CRC(fc8488ba) SHA1(656a96fd573d25f0269281b993a4084c279c994d) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj67 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j67.p1", 0x000000, 0x454F47, CRC(6bad0bde) SHA1(87e3bba9cd6b3a2eb184127f5b2c15d7184ef92d) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj68 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j68.p1", 0x000000, 0x454F47, CRC(64ce725d) SHA1(21ebdbec9ec6fc67cf20b750b80da3c632aa5606) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj69 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j69.p1", 0x000000, 0x454F47, CRC(3f12f504) SHA1(81a88cac6eb1d601ea77ee47f7f80a2410f5f2dd) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj70 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j70.p1", 0x000000, 0x454F47, CRC(f4668b5d) SHA1(b0388db32cd92487f05af589648222e7541f15f5) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj71 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j71.p1", 0x000000, 0x454F47, CRC(dd0f2f35) SHA1(4b53689dd0706a62b3f026992333e83fac482935) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj72 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j72.p1", 0x000000, 0x454F47, CRC(634f0839) SHA1(23ab69092ac7368a307abe37cfd07c445d9b4234) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj73 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j73.p1", 0x000000, 0x454F47, CRC(e223f6f7) SHA1(e795ec1d9003c40057d11431d79d760abfb55132) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj74 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j74.p1", 0x000000, 0x454F47, CRC(a8cd9057) SHA1(55f2d293aae941518405a62f1d18c9c0a42a6f87) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj75 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j75.p1", 0x000000, 0x454F47, CRC(63b9ee0e) SHA1(4fd15c8001130abe8418124948a13e68b75ab483) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj76 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j76.p1", 0x000000, 0x454F47, CRC(27b8b008) SHA1(be0aea082b0a42972a588590665e4f90250b3f6a) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj77 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j77.p1", 0x000000, 0x454F47, CRC(a7aee9d4) SHA1(e3117b0d016abfde8d710455d97212e750f270ad) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj78 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j78.p1", 0x000000, 0x454F47, CRC(6a214afb) SHA1(955abaf2736082cf3257a9f13a7ebab979c7655a) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj79 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j79.p1", 0x000000, 0x454F47, CRC(5d6ac99f) SHA1(5fa93801d10a82cb1b546df98a1cefaa5b7ce064) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj80 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j80.p1", 0x000000, 0x454F47, CRC(ca434afb) SHA1(7b390acd96909cc986453a1159771031f1820a93) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj81 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j81.p1", 0x000000, 0x454F47, CRC(c5203378) SHA1(d9a0760d0d45d9c25cddf46fc7435fc550696018) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj82 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j82.p1", 0x000000, 0x454F47, CRC(9efcb421) SHA1(ac204c8d223bdce53b222efa7e57b352f0c01720) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj83 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j83.p1", 0x000000, 0x454F47, CRC(5588ca78) SHA1(6d2faecdcaf26ff1cd169ceca65027e9dee12a7e) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj84 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j84.p1", 0x000000, 0x454F47, CRC(7ce16e10) SHA1(2821d41326c896aa4d3418b7429cd39c01ee6f91) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj85 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j85.p1", 0x000000, 0x454F47, CRC(c2a1491c) SHA1(0dee632b87e36ba67dc490c061043cc772891c8d) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj86 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j86.p1", 0x000000, 0x454F47, CRC(43cdb7d2) SHA1(24ef14c1305e64baf29f88b8c786d585e0cba9b2) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj87 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j87.p1", 0x000000, 0x454F47, CRC(0923d172) SHA1(a11b77334eb4462e45ea076f7cac0bbefc41def1) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj88 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j88.p1", 0x000000, 0x454F47, CRC(c257af2b) SHA1(cbda0e5f2b4f65014762b48c5c7ee0cf222b3440) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj89 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j89.p1", 0x000000, 0x454F47, CRC(8656f12d) SHA1(c91d1c188650dfcc5099986841b6c56988e61d77) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj90 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j90.p1", 0x000000, 0x454F47, CRC(0640a8f1) SHA1(f448d5f98ee8a2fdd8e32e94173682d64aa880b7) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj91 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j91.p1", 0x000000, 0x454F47, CRC(7afad8f8) SHA1(10d5037f7eb0f627b678bdd4195db90389298975) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj92 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j92.p1", 0x000000, 0x454F47, CRC(edd35b9c) SHA1(3e23cf29aab9440d54cae0c8d64ade2decbab6e5) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj93 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j93.p1", 0x000000, 0x454F47, CRC(e2b0221f) SHA1(93207510452461c9473f4e4976ef6e3c654105de) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj94 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j94.p1", 0x000000, 0x454F47, CRC(b96ca546) SHA1(47208dcef231f143258a2d3fc596220b3a5bf39f) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj95 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j95.p1", 0x000000, 0x454F47, CRC(7218db1f) SHA1(4c485d4ab0d7edfa25010379b2cd40ea0ccbfa2a) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj96 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j96.p1", 0x000000, 0x454F47, CRC(5b717f77) SHA1(04154ef79fa48db6e195d3031547be65b0cba99f) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj97 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j97.p1", 0x000000, 0x454F47, CRC(e531587b) SHA1(9af73dbddb4e39cd938631e945268842dfd49aed) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj98 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j98.p1", 0x000000, 0x454F47, CRC(645da6b5) SHA1(44520b0fec45010fa18f26e0b84471dad72c7947) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj99 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j99.p1", 0x000000, 0x454F47, CRC(2eb3c015) SHA1(0e8883276f851ca10e249537bc2ee79cb5a768cf) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj100 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j100.p1", 0x000000, 0x454F47, CRC(e5c7be4c) SHA1(06f58f908d6785b6e448f443b3e70a6e53bcd5ab) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj101 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j101.p1", 0x000000, 0x454F47, CRC(a1c6e04a) SHA1(213ae0bdd24910e9f99a86053d80d827c9ae1032) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxj102 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250j102.p1", 0x000000, 0x454F47, CRC(21d0b996) SHA1(25ae4309872108595ea1b8b1bda36ba22da5cddd) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx01 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx01.p1", 0x000000, 0x454F47, CRC(9cea20b7) SHA1(4bf7b3174205223d73bfa55f4397b75a578db2cd) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx02 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx02.p1", 0x000000, 0x454F47, CRC(0bc3a3d3) SHA1(b22d0ac99951c7044e4fd44b197ab83752069ec9) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx03 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx03.p1", 0x000000, 0x454F47, CRC(04a0da50) SHA1(457b052991d29859de124c5335ce1895ab007169) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx04 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx04.p1", 0x000000, 0x454F47, CRC(5f7c5d09) SHA1(d2d5d3f2bfe1a195be833bf1224f421d6af8f9b6) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx05 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx05.p1", 0x000000, 0x454F47, CRC(94082350) SHA1(fcc3d5c0f105c54a36257895b2befc3f2b52fea1) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx06 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx06.p1", 0x000000, 0x454F47, CRC(bd618738) SHA1(83b5effcf7c770db30455824641c058818a557b9) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx07 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx07.p1", 0x000000, 0x454F47, CRC(0321a034) SHA1(7cdbe7fabfd1592dc19f43805008995c88110135) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx08 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx08.p1", 0x000000, 0x454F47, CRC(824d5efa) SHA1(f288864a4a2ab2256cdd35f893d9357fe408ae20) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx09 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx09.p1", 0x000000, 0x454F47, CRC(c8a3385a) SHA1(773a26219f2c4347e4275c6b7614e699fabdbbd9) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx10 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx10.p1", 0x000000, 0x454F47, CRC(03d74603) SHA1(6f695a41d754ac7dbf7fe08aeaf4a3cbac8013d0) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx11 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx11.p1", 0x000000, 0x454F47, CRC(47d61805) SHA1(052dc3cbef50d02e3390aa839b9002e125976fc6) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx12 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx12.p1", 0x000000, 0x454F47, CRC(c7c041d9) SHA1(b32fa6e3c4a70113f08ef533136cc073dbede039) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx13 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx13.p1", 0x000000, 0x454F47, CRC(aa0b68fe) SHA1(dd3c3abc5dc89a455d1be0fb62284e1fe88bc29b) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx14 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx14.p1", 0x000000, 0x454F47, CRC(3d046192) SHA1(b677a4ea185c3df2a1774c722b222f1e2d339bd9) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx15 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx15.p1", 0x000000, 0x454F47, CRC(aa2de2f6) SHA1(83a4f3cf4bd95e8e3f279f01425abea968657dae) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx16 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx16.p1", 0x000000, 0x454F47, CRC(a54e9b75) SHA1(aed5572607f0c5e89ca385ae5a7bc2460a0465be) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx17 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx17.p1", 0x000000, 0x454F47, CRC(fe921c2c) SHA1(47150046f9fd22c682e0bffa4504cd957037b091) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx18 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx18.p1", 0x000000, 0x454F47, CRC(35e66275) SHA1(c351888428c8221f4816072b79127802cc16b92b) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx19 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx19.p1", 0x000000, 0x454F47, CRC(1c8fc61d) SHA1(0edbb1a912d9f228fd92c9c415c47c60835a845f) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx20 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx20.p1", 0x000000, 0x454F47, CRC(a2cfe111) SHA1(5b37f2de226167602c93f7c6e7adb081609b4fba) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx21 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx21.p1", 0x000000, 0x454F47, CRC(23a31fdf) SHA1(4f2c0b46f90533d6725fcc83fc239f7f73101873) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx22 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx22.p1", 0x000000, 0x454F47, CRC(694d797f) SHA1(162efbaa04a9d3726f65ad94de461a9c0a6bcc9b) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx23 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx23.p1", 0x000000, 0x454F47, CRC(a2390726) SHA1(be40ea0de010f1d1d35073446a0a9ae6a063ccda) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx24 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx24.p1", 0x000000, 0x454F47, CRC(e6385920) SHA1(feeb93e030db793622d72851c26fb3a5c0561b57) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx25 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx25.p1", 0x000000, 0x454F47, CRC(662e00fc) SHA1(37985be242965e2851ee44c8e3b23d2b41462e86) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx26 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx26.p1", 0x000000, 0x454F47, CRC(0be529db) SHA1(cc0104c1a66365e9800efa81774519d00a4c8df2) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx27 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx27.p1", 0x000000, 0x454F47, CRC(9d40eb9a) SHA1(25eb22b7238db1eea0810b5960fc439766fafaea) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx28 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx28.p1", 0x000000, 0x454F47, CRC(0a6968fe) SHA1(9dbb5d0fc0724e5bca3178a9fe5959cf62a77289) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx29 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx29.p1", 0x000000, 0x454F47, CRC(050a117d) SHA1(196c85224ac0d458af00cdbfeb71d35afe7666f7) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx30 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx30.p1", 0x000000, 0x454F47, CRC(5ed69624) SHA1(de9dfe06e84974e8df608f4e649c8922cbaf6d8f) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx31 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx31.p1", 0x000000, 0x454F47, CRC(95a2e87d) SHA1(24d564951c4f6222d719d5883051fc769a559e99) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx32 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx32.p1", 0x000000, 0x454F47, CRC(bccb4c15) SHA1(8029f3b5ef00ba5fb40962e8373dadf178bbf7e5) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx33 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx33.p1", 0x000000, 0x454F47, CRC(028b6b19) SHA1(d1058903bd1dcb0419e47d6f416f052b268d8338) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx34 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx34.p1", 0x000000, 0x454F47, CRC(83e795d7) SHA1(f1e4049ee82911234cf0dd1e70e8e777230b8827) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx35 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx35.p1", 0x000000, 0x454F47, CRC(c909f377) SHA1(804e5cef6af3bdaa282668bd10266658a90dde14) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx36 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx36.p1", 0x000000, 0x454F47, CRC(027d8d2e) SHA1(6f341eedccdb4e0dc418d4b9136d09da4e78ac77) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx37 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx37.p1", 0x000000, 0x454F47, CRC(467cd328) SHA1(24b31dd623772b2f7c92431af37cf4d1f2e8490d) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx38 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx38.p1", 0x000000, 0x454F47, CRC(c66a8af4) SHA1(0f18f0b4fa3deab1f7ab84c7f429922a12afcc9a) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx39 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx39.p1", 0x000000, 0x454F47, CRC(bb7a31d0) SHA1(b91b0e5e516b3c41d5140b4ae7907f0647e9c134) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx40 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx40.p1", 0x000000, 0x454F47, CRC(2c53b2b4) SHA1(2187decf1794db8a45af4a67f4653a0d1d1ff70e) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx41 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx41.p1", 0x000000, 0x454F47, CRC(2330cb37) SHA1(7444a16e7966071c6895d8f94212f89c6e04c8c3) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx42 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx42.p1", 0x000000, 0x454F47, CRC(78ec4c6e) SHA1(2477fa6b0b91564ce0878c949cbada74595e4ff5) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx43 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx43.p1", 0x000000, 0x454F47, CRC(b3983237) SHA1(96fc29dd9a3243ede866b88ee617557a707ea497) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx44 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx44.p1", 0x000000, 0x454F47, CRC(9af1965f) SHA1(d9d9915cb6b24e903f4d0baa3a89855a13d32528) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx45 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx45.p1", 0x000000, 0x454F47, CRC(24b1b153) SHA1(b9ac9ec307997e4e7bbf8fe39eea46a80d743407) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx46 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx46.p1", 0x000000, 0x454F47, CRC(a5dd4f9d) SHA1(ebf408da7af70927ba9a9971be3bc753dedd6f37) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx47 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx47.p1", 0x000000, 0x454F47, CRC(ef33293d) SHA1(fd8dd86f04af1b3811d5052f6e6e287bd3998891) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx48 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx48.p1", 0x000000, 0x454F47, CRC(24475764) SHA1(2caa40f247e045e5885d8a9b78f0f2299ecf6e56) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx49 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx49.p1", 0x000000, 0x454F47, CRC(60460962) SHA1(a47a7955808c8053b3dd6da5d3e532a9099e34fe) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx50 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx50.p1", 0x000000, 0x454F47, CRC(e05050be) SHA1(c8b4ffb722a9aa99da962f6e30a382c1c82a3072) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx51 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx51.p1", 0x000000, 0x454F47, CRC(8d9b7999) SHA1(b591a079d9ff696e2ef510c83b2655589480bb8a) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx52 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx52.p1", 0x000000, 0x454F47, CRC(1a9470f5) SHA1(4fe2a89ab74d2a6b96f023c20d08bce6334a7a85) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx53 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx53.p1", 0x000000, 0x454F47, CRC(8dbdf391) SHA1(3c718328338bf367f3bc04c20827cab3882248b0) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx54 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx54.p1", 0x000000, 0x454F47, CRC(82de8a12) SHA1(01c653fcd1f1e703981f4c04d6d53756f016eaad) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx55 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx55.p1", 0x000000, 0x454F47, CRC(d9020d4b) SHA1(d831e4d39dbe95256ea798fc8dfe8ee714079a65) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx56 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx56.p1", 0x000000, 0x454F47, CRC(12767312) SHA1(ff41c35026d4b9170742214f2f686ddec623cb44) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx57 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx57.p1", 0x000000, 0x454F47, CRC(3b1fd77a) SHA1(1f9e324eea256ff5820b224ba70d609e680966ff) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx58 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx58.p1", 0x000000, 0x454F47, CRC(855ff076) SHA1(4a4186677bd32b671e86e40845f4a2cf1d904b74) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx59 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx59.p1", 0x000000, 0x454F47, CRC(04330eb8) SHA1(23563d6060498b06b772205e742c5a97be5d6296) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx60 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx60.p1", 0x000000, 0x454F47, CRC(4edd6818) SHA1(7cd7e1409f97165acac647083cf6c82c8d840d72) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx61 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx61.p1", 0x000000, 0x454F47, CRC(85a91641) SHA1(cfb0dbdb0de4084f4e9e5e53c7b4b7d1e77f7f1e) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx62 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx62.p1", 0x000000, 0x454F47, CRC(c1a84847) SHA1(6cf97ac2dcc9e160a91b6c9c2827c64de3bb10c8) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx63 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx63.p1", 0x000000, 0x454F47, CRC(41be119b) SHA1(d9dfe9198b85581ee0b9d7692e9c823a4662f1da) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx64 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx64.p1", 0x000000, 0x454F47, CRC(2c7538bc) SHA1(af5498bfc67f64fbe2fa13b44967c5c21a31aeae) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx65 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx65.p1", 0x000000, 0x454F47, CRC(bad0fafd) SHA1(7f4c55a30d7b8c7a197e72c0e6ef433970dfcadd) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx66 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx66.p1", 0x000000, 0x454F47, CRC(2df97999) SHA1(2b415d30d6030f5359705c6b97b6598499de0da4) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx67 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx67.p1", 0x000000, 0x454F47, CRC(229a001a) SHA1(5d357b81a0af0c872d1723b15c68584159ba37e0) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx68 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx68.p1", 0x000000, 0x454F47, CRC(79468743) SHA1(7cc04d87ae7c00f25b39dd62bfc219edf52781a9) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx69 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx69.p1", 0x000000, 0x454F47, CRC(b232f91a) SHA1(4c6fbd50dd03b5b2878e4f24df524e2b0471a2d9) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx70 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx70.p1", 0x000000, 0x454F47, CRC(9b5b5d72) SHA1(ad05357397029e513e29ae2d1d4356d6c39459e8) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx71 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx71.p1", 0x000000, 0x454F47, CRC(251b7a7e) SHA1(45353623c453432696deaf3cedfb8278f0ec068e) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx72 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx72.p1", 0x000000, 0x454F47, CRC(a47784b0) SHA1(9cc7d30f82067145d4538edca48dbd1fa6dbc827) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx73 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx73.p1", 0x000000, 0x454F47, CRC(ee99e210) SHA1(7b6b66ed6c64f3557911b2db75674f1dc5cb4230) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx74 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx74.p1", 0x000000, 0x454F47, CRC(25ed9c49) SHA1(8b44e01dbc4793fd620423afcdd5b76ebcb7696d) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx75 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx75.p1", 0x000000, 0x454F47, CRC(61ecc24f) SHA1(d2dc9e6798aa45c8f1588441091a5b241eb4d5ef) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx76 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx76.p1", 0x000000, 0x454F47, CRC(e1fa9b93) SHA1(e528f95fb38c40bc170749d8dcb738ea39383133) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx77 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx77.p1", 0x000000, 0x454F47, CRC(2c7538bc) SHA1(af5498bfc67f64fbe2fa13b44967c5c21a31aeae) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx78 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx78.p1", 0x000000, 0x454F47, CRC(1b3ebbd8) SHA1(51da8e2ebb4afd234f60a95e57c76a43c3d15d5e) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx79 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx79.p1", 0x000000, 0x454F47, CRC(8c1738bc) SHA1(33c53e273020fe3874a30580b37ace4f4565775d) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx80 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx80.p1", 0x000000, 0x454F47, CRC(8374413f) SHA1(e42f8317bc4c87f401824e313cca025793eb07b9) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx81 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx81.p1", 0x000000, 0x454F47, CRC(d8a8c666) SHA1(ba6be14c96790d6edeaeb82386da2f154fe295ed) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx82 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx82.p1", 0x000000, 0x454F47, CRC(13dcb83f) SHA1(863482f254325361f5aaa0ca9fa6849ee5eb9d5d) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx83 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx83.p1", 0x000000, 0x454F47, CRC(3ab51c57) SHA1(40f1dcc42edc2d12fbdd3b9e16d51c993abf5709) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx84 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx84.p1", 0x000000, 0x454F47, CRC(84f53b5b) SHA1(7d7348022eb21d97dfeca2c8312051ac0fadad81) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx85 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx85.p1", 0x000000, 0x454F47, CRC(0599c595) SHA1(a5e1c6e85940961de6af0c7d3f107d4b20d78f5b) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx86 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx86.p1", 0x000000, 0x454F47, CRC(4f77a335) SHA1(b6ebb1a9617a6862c80d4c17916188826ab33a85) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx87 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx87.p1", 0x000000, 0x454F47, CRC(8403dd6c) SHA1(737bcc91d49df59287288ae8beec42078c0c0f7d) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx88 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx88.p1", 0x000000, 0x454F47, CRC(c002836a) SHA1(a4e6f18c0acc4a18e6aee41c6edfb03112ab9fb2) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx89 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx89.p1", 0x000000, 0x454F47, CRC(4014dab6) SHA1(100f21bb195fb6d1cc6747aa5dbba9425c97ba54) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx90 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx90.p1", 0x000000, 0x454F47, CRC(3caeaabf) SHA1(8182282948d04bf5c8ba3d0ddcc02e36039e780f) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx91 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx91.p1", 0x000000, 0x454F47, CRC(ab8729db) SHA1(db9c80170bb815756d4b08525c8e91fbc21a9274) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx92 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx92.p1", 0x000000, 0x454F47, CRC(a4e45058) SHA1(23f11c4fa075d4ae765c056a4d2885a51d720af1) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx93 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx93.p1", 0x000000, 0x454F47, CRC(ff38d701) SHA1(d8e3ff13b871c1615fe9ca469d686eca6d80d0e5) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx94 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx94.p1", 0x000000, 0x454F47, CRC(344ca958) SHA1(dd81e9cad8bc00704e1ac52c0c8272c877b77426) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx95 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx95.p1", 0x000000, 0x454F47, CRC(1d250d30) SHA1(3fa4bf47e8ad3d1e4913597a1ed06d2023759b21) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx96 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx96.p1", 0x000000, 0x454F47, CRC(a3652a3c) SHA1(b87e8f8be9261d82f75f4a85cb8a0afa881b48d0) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx97 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx97.p1", 0x000000, 0x454F47, CRC(2209d4f2) SHA1(2cf71a0e903edd5c407548af653e0f1b811e93a7) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx98 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx98.p1", 0x000000, 0x454F47, CRC(68e7b252) SHA1(9a059ea14615030c9b6789d5a0dcc235a75df7fb) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx99 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx99.p1", 0x000000, 0x454F47, CRC(a393cc0b) SHA1(99066f49ed5717dddd4238ee32f163926ba31b00) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx100 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx100.p1", 0x000000, 0x454F47, CRC(e792920d) SHA1(ef938677ea40ffa5d6c16e0c2db004f0027c748f) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjx101 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jx101.p1", 0x000000, 0x454F47, CRC(6784cbd1) SHA1(f557dfa17cb1c0d094062d062fb3d221b768765c) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy01 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy01.p1", 0x000000, 0x454F47, CRC(a1260e8a) SHA1(f2be0db5916e0b196211de1a05ffb10f94a4ecfa) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy02 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy02.p1", 0x000000, 0x454F47, CRC(360f8dee) SHA1(74d0205a6db680e67f03ccd5a9335039a4f5a2c3) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy03 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy03.p1", 0x000000, 0x454F47, CRC(396cf46d) SHA1(ea8cd845e08e02d3b73c22a788c5b4108c757588) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy04 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy04.p1", 0x000000, 0x454F47, CRC(62b07334) SHA1(92bd2149de13d42a8518f2c1382ad0d3b2b390e5) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy05 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy05.p1", 0x000000, 0x454F47, CRC(a9c40d6d) SHA1(e49b188b1cfe6ffd3636bd67e29d79d2a0b2b844) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy06 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy06.p1", 0x000000, 0x454F47, CRC(80ada905) SHA1(be7d7e5b8c5ddcfbc273725dcac86394959fb013) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy07 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy07.p1", 0x000000, 0x454F47, CRC(3eed8e09) SHA1(08f8d63d373d1ec28344ea2871014959f009c4f2) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy08 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy08.p1", 0x000000, 0x454F47, CRC(bf8170c7) SHA1(eda33ff2d4156314e8a0147d9caf5e7dfe8ccdf7) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy09 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy09.p1", 0x000000, 0x454F47, CRC(f56f1667) SHA1(2ad13029af49188f6fb79ce029619963fe3fc4b4) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy10 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy10.p1", 0x000000, 0x454F47, CRC(3e1b683e) SHA1(c8b1fa593307d5d833140e4dd886c6ace0728d3c) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy11 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy11.p1", 0x000000, 0x454F47, CRC(7a1a3638) SHA1(d045446bfc9817a4f473e87b08871e7af8005a36) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy12 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy12.p1", 0x000000, 0x454F47, CRC(fa0c6fe4) SHA1(975620bb1355b31ab9035f40af8d3fc562822eae) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy13 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy13.p1", 0x000000, 0x454F47, CRC(97c746c3) SHA1(cab0a6f4cda0908308266961a0ac396e4d9cff20) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy14 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy14.p1", 0x000000, 0x454F47, CRC(00c84faf) SHA1(e26888849b526631a5431e79e096404df6809148) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy15 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy15.p1", 0x000000, 0x454F47, CRC(97e1cccb) SHA1(eff803cf25411db546a1ca2832db829d9d03f6b7) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy16 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy16.p1", 0x000000, 0x454F47, CRC(9882b548) SHA1(6101bdbb517c9164ee3bdde746eb921032639b38) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy17 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy17.p1", 0x000000, 0x454F47, CRC(72cf5103) SHA1(a63585cd016a96b419ef76db182f5c1bcf75ad6d) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy18 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy18.p1", 0x000000, 0x454F47, CRC(082a4c48) SHA1(4e9decb612f4acdf50593b3c05c5905d5521e2ab) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy19 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy19.p1", 0x000000, 0x454F47, CRC(2143e820) SHA1(90ede0e44aab5a83686d53294524976157d0a85e) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy20 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy20.p1", 0x000000, 0x454F47, CRC(9f03cf2c) SHA1(88fa02680f890f198ddbc035d251eda7c0cacb09) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy21 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy21.p1", 0x000000, 0x454F47, CRC(1e6f31e2) SHA1(53426f75ca7d79bd698cbe877eb575d336ce169d) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy22 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy22.p1", 0x000000, 0x454F47, CRC(54815742) SHA1(5a0b9537aa5966551284b0468dd4a30729ad8d32) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy23 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy23.p1", 0x000000, 0x454F47, CRC(9ff5291b) SHA1(fefd1981d1f43a8bea6a631f279f5317c17627c2) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy24 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy24.p1", 0x000000, 0x454F47, CRC(dbf4771d) SHA1(dd592df3f39fee0494481d351cb521089956e498) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy25 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy25.p1", 0x000000, 0x454F47, CRC(5be22ec1) SHA1(49c7248aae669fbafcfce9c77a287d020c2e1720) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy26 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy26.p1", 0x000000, 0x454F47, CRC(362907e6) SHA1(902191dadbcdb503c721112bf66601e91720d2e3) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy27 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy27.p1", 0x000000, 0x454F47, CRC(a08cc5a7) SHA1(18f2ab63bc234394d6f2f1ed99d9b3b775c85485) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy28 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy28.p1", 0x000000, 0x454F47, CRC(37a546c3) SHA1(f241a2fb80a239c9fa04c7b7dae8eda17d1f2afb) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy29 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy29.p1", 0x000000, 0x454F47, CRC(38c63f40) SHA1(8544d203ffe4cfbc005bd2a4321bfe0cce521b33) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy30 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy30.p1", 0x000000, 0x454F47, CRC(631ab819) SHA1(03ad5387ac477e8e4e260dcbe3262ee5411f1d91) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy31 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy31.p1", 0x000000, 0x454F47, CRC(a86ec640) SHA1(1648a9a9349cf023f03580c4243d7d330d16c23f) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy32 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy32.p1", 0x000000, 0x454F47, CRC(81076228) SHA1(1846215fa758e8374d23afb3b2a7a3c7f098943f) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy33 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy33.p1", 0x000000, 0x454F47, CRC(3f474524) SHA1(d8d348ab030fb51d2fe36bab6de6111306d0687f) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy34 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy34.p1", 0x000000, 0x454F47, CRC(be2bbbea) SHA1(8c12e2b1f087992d87d8b17d049091db371511bf) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy35 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy35.p1", 0x000000, 0x454F47, CRC(f4c5dd4a) SHA1(c5c6989f49dd2aad668fd8121a1e4bb12f81a84a) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy36 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy36.p1", 0x000000, 0x454F47, CRC(3fb1a313) SHA1(d43084aca3d874b9b319386e541b21e5db24bdd0) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy37 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy37.p1", 0x000000, 0x454F47, CRC(7bb0fd15) SHA1(bf99ba9c725e2d646962766985331fdfd094feb8) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy38 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy38.p1", 0x000000, 0x454F47, CRC(fba6a4c9) SHA1(10320e647eb04364aaed002b5fd9e58500ea040e) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy39 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy39.p1", 0x000000, 0x454F47, CRC(362907e6) SHA1(902191dadbcdb503c721112bf66601e91720d2e3) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy40 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy40.p1", 0x000000, 0x454F47, CRC(86b61fed) SHA1(c42eebe8ed4dded53cce6d68ac9f54bcd0a1eba7) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy41 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy41.p1", 0x000000, 0x454F47, CRC(119f9c89) SHA1(68139f3c4f698344ae225d5d846345f2d931cbc5) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy42 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy42.p1", 0x000000, 0x454F47, CRC(1efce50a) SHA1(984c7db12f299ecfd239f592a14c278b5669fc48) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy43 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy43.p1", 0x000000, 0x454F47, CRC(45206253) SHA1(01fa1864bc55e02aaa23bd77505826ef070f23a6) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy44 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy44.p1", 0x000000, 0x454F47, CRC(8e541c0a) SHA1(7a29e03e1f09c2010161d4548a90798dd86d76f6) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy45 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy45.p1", 0x000000, 0x454F47, CRC(a73db862) SHA1(0cee4aae86052d1904faa30ab30c0ce18daa6b51) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy46 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy46.p1", 0x000000, 0x454F47, CRC(197d9f6e) SHA1(378b73495cfbb116d66ec0f9ff640412a09bc9a1) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy47 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy47.p1", 0x000000, 0x454F47, CRC(981161a0) SHA1(4e621b052122ef011bf279e376bcd86e14266d62) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy48 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy48.p1", 0x000000, 0x454F47, CRC(d2ff0700) SHA1(0a2ad7d41608e8ef88e112192e7a34a643a50914) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy49 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy49.p1", 0x000000, 0x454F47, CRC(198b7959) SHA1(bc1c68d0562cdc5e63be7b5e199b196ef3665921) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy50 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy50.p1", 0x000000, 0x454F47, CRC(5d8a275f) SHA1(ff9f076c1ddbbc15d6d5ddc678bb003830245ef5) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy51 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy51.p1", 0x000000, 0x454F47, CRC(dd9c7e83) SHA1(b804221455357be31ded3dfa4b65e683e130e8ff) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy52 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy52.p1", 0x000000, 0x454F47, CRC(b05757a4) SHA1(1417ddce726fe46c16c4ad408e41ec44925cc69a) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy53 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy53.p1", 0x000000, 0x454F47, CRC(27585ec8) SHA1(feb59c5e08a3cca526dfe1de6b6c9a820424e05c) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy54 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy54.p1", 0x000000, 0x454F47, CRC(b071ddac) SHA1(d21a40a36016dc845446d28841ee9a4f0c78a571) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy55 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy55.p1", 0x000000, 0x454F47, CRC(bf12a42f) SHA1(2b27508da950a846f3dd5d34ce36ebbf84576149) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy56 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy56.p1", 0x000000, 0x454F47, CRC(e4ce2376) SHA1(d9ed308d97b0fa3da0696d81ede86f654a253cfe) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy57 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy57.p1", 0x000000, 0x454F47, CRC(2fba5d2f) SHA1(40efed09cb32caf5e426359042722588aa78889c) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy58 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy58.p1", 0x000000, 0x454F47, CRC(06d3f947) SHA1(bc3379ee576076ef66831baaecad47eb9d4c95c6) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy59 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy59.p1", 0x000000, 0x454F47, CRC(b893de4b) SHA1(7680a1fef7de75211e3ad4b02dc067c04b68740e) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy60 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy60.p1", 0x000000, 0x454F47, CRC(39ff2085) SHA1(c254486bee210f6e95a29d1d987d7e2e0803282c) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy61 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy61.p1", 0x000000, 0x454F47, CRC(73114625) SHA1(c51bf8beb293b591c4d7248c12f2ee20afe66480) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy62 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy62.p1", 0x000000, 0x454F47, CRC(b865387c) SHA1(ab1f61b1f41b595440d36af84ce6132c2257f9ed) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy63 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy63.p1", 0x000000, 0x454F47, CRC(fc64667a) SHA1(6058a9c967c505934b57b7189b4a84217ac2d623) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy64 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy64.p1", 0x000000, 0x454F47, CRC(7c723fa6) SHA1(9340ce8354b92fcb8af4fed34d43e8b27b0729f6) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy65 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy65.p1", 0x000000, 0x454F47, CRC(11b91681) SHA1(41f19b763660861e6e6230cbb74eeb7eea9e6246) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy66 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy66.p1", 0x000000, 0x454F47, CRC(871cd4c0) SHA1(3203eafa48ed2ad35e376dc0afc5a104555403e4) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy67 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy67.p1", 0x000000, 0x454F47, CRC(103557a4) SHA1(90dbe97506ea4fb3cf79ae5178ff8b3a54077878) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy68 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy68.p1", 0x000000, 0x454F47, CRC(1f562e27) SHA1(890c0f2cc0f85231d402f532897723cefdb8416d) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy69 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy69.p1", 0x000000, 0x454F47, CRC(448aa97e) SHA1(ea3fff86f1a7aa1102345fcefde17161d8572206) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy70 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy70.p1", 0x000000, 0x454F47, CRC(8ffed727) SHA1(a24e6c4c0c5cc6e95d583642919cd2f20b035aaf) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy71 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy71.p1", 0x000000, 0x454F47, CRC(a697734f) SHA1(1ced6227238e284378d38f25cb998855966f812b) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy72 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy72.p1", 0x000000, 0x454F47, CRC(18d75443) SHA1(2c065282bb178e7ca2e4664a97fb4b603d747d1d) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy73 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy73.p1", 0x000000, 0x454F47, CRC(99bbaa8d) SHA1(89d89fb36d273a6758468bbeb421baae030fe2c2) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy74 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy74.p1", 0x000000, 0x454F47, CRC(d355cc2d) SHA1(94a9aeb5de8176fc42dc52b3df909afa51a61c51) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy75 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy75.p1", 0x000000, 0x454F47, CRC(1821b274) SHA1(84db44f0a4ebf54637fbf08f01e2fdc8ca1c1418) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy76 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy76.p1", 0x000000, 0x454F47, CRC(5c20ec72) SHA1(3c49a8891048545f98f1999dd33fbbc8c385b27a) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy77 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy77.p1", 0x000000, 0x454F47, CRC(dc36b5ae) SHA1(20626f22f17c1667dec690239fbb1bfeea61362c) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy78 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy78.p1", 0x000000, 0x454F47, CRC(11b91681) SHA1(41f19b763660861e6e6230cbb74eeb7eea9e6246) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy79 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy79.p1", 0x000000, 0x454F47, CRC(26f295e5) SHA1(4e7954441fc367cc06c6c986f90f78dddd867652) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy80 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy80.p1", 0x000000, 0x454F47, CRC(b1db1681) SHA1(ad2ea20f6d4de446f1bc3d6afb477bbe4ce7cbc8) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy81 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy81.p1", 0x000000, 0x454F47, CRC(beb86f02) SHA1(c3308069c4b10313e1a98db3c995f5d3ea23e9f4) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy82 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy82.p1", 0x000000, 0x454F47, CRC(e564e85b) SHA1(bb8fd5e6ae8a7090ca637f98dea1075a8ead23d1) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy83 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy83.p1", 0x000000, 0x454F47, CRC(2e109602) SHA1(4abfa4e6d85142b31e56684459d1eec1f15a11fd) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy84 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy84.p1", 0x000000, 0x454F47, CRC(0779326a) SHA1(e2daf7eb27433133e3e0f958e205f1140848a8df) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy85 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy85.p1", 0x000000, 0x454F47, CRC(b9391566) SHA1(55b7b673fcbbb301d439654388103b3b699d158d) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy86 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy86.p1", 0x000000, 0x454F47, CRC(3855eba8) SHA1(475fe6601c2d5eb90c8edc897f0eb291891cba99) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy87 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy87.p1", 0x000000, 0x454F47, CRC(72bb8d08) SHA1(72de88fac8f19d629b2e6395ffaa6f235a40720f) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy88 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy88.p1", 0x000000, 0x454F47, CRC(b9cff351) SHA1(86ae3cc9fb9d584286109be2fe983238ab1d8cb1) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy89 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy89.p1", 0x000000, 0x454F47, CRC(fdcead57) SHA1(fb4158cf81c47d6f04b84a6bc7413a9c2feff4f3) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy90 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy90.p1", 0x000000, 0x454F47, CRC(7dd8f48b) SHA1(18d7922d81e9542c67500acd9765bf5cc64af175) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy91 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy91.p1", 0x000000, 0x454F47, CRC(01628482) SHA1(c43cf595926ffcd829b4162188d9a5f5f6b19db1) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy92 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy92.p1", 0x000000, 0x454F47, CRC(964b07e6) SHA1(fad175dc85f23b55c205e88b03df9cf41db07f70) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy93 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy93.p1", 0x000000, 0x454F47, CRC(99287e65) SHA1(4e5c2e64f0a2271ed9cbdab1fef851753da4c61a) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy94 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy94.p1", 0x000000, 0x454F47, CRC(c2f4f93c) SHA1(bb539ca707a5c6d01fd413121c6f0841eabe93bc) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy95 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy95.p1", 0x000000, 0x454F47, CRC(09808765) SHA1(ac944e6ff1473dc2869d38acb5810c4be1bc8c5f) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy96 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy96.p1", 0x000000, 0x454F47, CRC(20e9230d) SHA1(9161636210e2da2cc839707b246e0461471f19f1) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy97 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy97.p1", 0x000000, 0x454F47, CRC(9ea90401) SHA1(e048672e1793e1b2198f18178829f767a2a94719) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy98 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy98.p1", 0x000000, 0x454F47, CRC(1fc5facf) SHA1(b098ee3b0524b183a20ec32e796b9a98d3a524b9) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy99 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy99.p1", 0x000000, 0x454F47, CRC(552b9c6f) SHA1(83d0dcbaa801019ae9315dc69f21b44931d60474) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy100 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy100.p1", 0x000000, 0x454F47, CRC(9e5fe236) SHA1(6547ba3194196d78d441916a5707e54d1d96ef9f) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy101 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy101.p1", 0x000000, 0x454F47, CRC(da5ebc30) SHA1(15d0a1e5daaaf026b5bbcdeff9f1689523fa4c93) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjy102 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250jy102.p1", 0x000000, 0x454F47, CRC(5a48e5ec) SHA1(24f577b795c752be61191ac588827ac4acc2e530) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr01 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr01.p1", 0x000000, 0x454F47, CRC(6b2f31e2) SHA1(3d199e28c96f6f675e262409d7f099da6d2fe5b5) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr02 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr02.p1", 0x000000, 0x454F47, CRC(fc06b286) SHA1(7ef36937e95edcb739d993e58d36ea2670eb6862) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr03 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr03.p1", 0x000000, 0x454F47, CRC(f365cb05) SHA1(adc2aeaacce0fc1103c696579e1c654095a0f5a3) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr04 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr04.p1", 0x000000, 0x454F47, CRC(a8b94c5c) SHA1(d7cfce7597e1c044395a13944783d98ae3b05283) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr05 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr05.p1", 0x000000, 0x454F47, CRC(63cd3205) SHA1(c0d66dd78696a10178c0578049a885b998799cc1) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr06 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr06.p1", 0x000000, 0x454F47, CRC(4aa4966d) SHA1(0a902d801b006bc8c9ab75365fbd5d2e8c5d8f0f) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr07 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr07.p1", 0x000000, 0x454F47, CRC(f4e4b161) SHA1(df1d2d3e7edf4b33e189070d4cbd1ffc9eefa887) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr08 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr08.p1", 0x000000, 0x454F47, CRC(75884faf) SHA1(19740012023896970c4545c2cdedf658156c8446) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr09 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr09.p1", 0x000000, 0x454F47, CRC(3f66290f) SHA1(4e3733c93855e7e867c3085c30b2314eab85321c) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr10 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr10.p1", 0x000000, 0x454F47, CRC(f4125756) SHA1(d6b3b6d08c7f66486ccf7d383d8f43e8b04fb75b) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr11 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr11.p1", 0x000000, 0x454F47, CRC(b0130950) SHA1(354716c6da6496d411305840a7d7dac885585220) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr12 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr12.p1", 0x000000, 0x454F47, CRC(3005508c) SHA1(aa2416aad2367515abc6f54ca0f13bcd85a86614) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr13 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr13.p1", 0x000000, 0x454F47, CRC(5dce79ab) SHA1(bf48bea523f971b06b66328da4373fc941485f50) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr14 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr14.p1", 0x000000, 0x454F47, CRC(cac170c7) SHA1(95555d3e9c0b4beb3484acac40111f8226a94a7f) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr15 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr15.p1", 0x000000, 0x454F47, CRC(5de8f3a3) SHA1(b5256bb89fd94208e0a56823a0de7a2f9ae9e45a) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr16 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr16.p1", 0x000000, 0x454F47, CRC(528b8a20) SHA1(17c9dbf1cca128e8447e8e139936870d0ecfa1f1) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr17 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr17.p1", 0x000000, 0x454F47, CRC(09570d79) SHA1(d5e3ea8b19b2b2b8a1abe6f160f543aefa144801) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr18 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr18.p1", 0x000000, 0x454F47, CRC(c2237320) SHA1(b333e60a34389fa44cd39368242ca7220d59e730) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr19 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr19.p1", 0x000000, 0x454F47, CRC(eb4ad748) SHA1(b3744944dc788de914d6bb2da9467d2b8a86bf51) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr20 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr20.p1", 0x000000, 0x454F47, CRC(550af044) SHA1(b1fa38261f65d6cfc7bdc6e1329837cc04c170fb) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr21 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr21.p1", 0x000000, 0x454F47, CRC(d4660e8a) SHA1(7130839210a47bb4eb3c0ca69ff22890b53f2a87) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr22 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr22.p1", 0x000000, 0x454F47, CRC(9e88682a) SHA1(762e3cf8c7eec4abf458aef90191358f8c740049) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr23 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr23.p1", 0x000000, 0x454F47, CRC(55fc1673) SHA1(3e562e9da0c2e7336ae66018e41d70cb294e83a6) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr24 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr24.p1", 0x000000, 0x454F47, CRC(11fd4875) SHA1(4cd0c569637569bc6b3450fdfd26dc327fa5440a) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr25 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr25.p1", 0x000000, 0x454F47, CRC(91eb11a9) SHA1(2978e702f60228da88d0dd6a9955c9b6e353c07d) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr26 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr26.p1", 0x000000, 0x454F47, CRC(fc20388e) SHA1(b06a0e3f2d116da50e1012e2a0dcabbd77d9b891) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr27 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr27.p1", 0x000000, 0x454F47, CRC(6a85facf) SHA1(f3f05a066c881c83204b5327dd7ac78eff0b2634) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr28 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr28.p1", 0x000000, 0x454F47, CRC(fdac79ab) SHA1(6f3ce5816127a9708ebe58c5954ac4f6b1773e3e) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr29 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr29.p1", 0x000000, 0x454F47, CRC(f2cf0028) SHA1(e2191ec4e9a3a05c4174de0688685aa80b5cb369) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr30 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr30.p1", 0x000000, 0x454F47, CRC(a9138771) SHA1(3f3dceea49a6f69aefa9552f129b0c1d306e369d) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr31 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr31.p1", 0x000000, 0x454F47, CRC(6267f928) SHA1(637a3334a71db2d7d5d628a8e619c6394f0b82c5) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr32 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr32.p1", 0x000000, 0x454F47, CRC(4b0e5d40) SHA1(567e866eb3f28a73d7e0514e6b6a43792744d116) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr33 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr33.p1", 0x000000, 0x454F47, CRC(f54e7a4c) SHA1(2860e5756e4c449bf46818e90f96688e7b132070) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr34 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr34.p1", 0x000000, 0x454F47, CRC(74228482) SHA1(adc598819c45ab8938e9511b3c21bee24fc43581) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr35 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr35.p1", 0x000000, 0x454F47, CRC(3ecce222) SHA1(60bb553dac7eadc835849afa3cde977ca362f787) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr36 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr36.p1", 0x000000, 0x454F47, CRC(f5b89c7b) SHA1(b3adb05f73314377371689dbc0b21f1160cf0ab0) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr37 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr37.p1", 0x000000, 0x454F47, CRC(b1b9c27d) SHA1(c8fd7a6d01a989b22d101fb8c52656b379e5c6c4) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr38 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr38.p1", 0x000000, 0x454F47, CRC(31af9ba1) SHA1(433a7aeb195839c5b723286843479dbb2198b61e) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr39 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr39.p1", 0x000000, 0x454F47, CRC(fc20388e) SHA1(b06a0e3f2d116da50e1012e2a0dcabbd77d9b891) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr40 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr40.p1", 0x000000, 0x454F47, CRC(4cbf2085) SHA1(c3bf7f3f5801ecf58b644b62fde0e75b3fb40e92) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr41 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr41.p1", 0x000000, 0x454F47, CRC(db96a3e1) SHA1(b65b5c7da4888d449e3806330e43003969fb8ef4) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr42 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr42.p1", 0x000000, 0x454F47, CRC(d4f5da62) SHA1(69a25e23564d14a46f970dfd7dcbeadbf0624516) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr43 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr43.p1", 0x000000, 0x454F47, CRC(8f295d3b) SHA1(95921c21e2cc4f88f8eed38ab6eaf8f4197b0862) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr44 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr44.p1", 0x000000, 0x454F47, CRC(445d2362) SHA1(b3e2499305778807dfbbb5db32b154eb28e82f80) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr45 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr45.p1", 0x000000, 0x454F47, CRC(6d34870a) SHA1(f15615c199b06860fd4f962948746f087184ffc3) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr46 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr46.p1", 0x000000, 0x454F47, CRC(d374a006) SHA1(af7b8265eb4f8074894a4e7efb9522fad93e7129) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr47 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr47.p1", 0x000000, 0x454F47, CRC(52185ec8) SHA1(a64bf517540e0b719d4c9b8b865c851e0e63cb70) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr48 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr48.p1", 0x000000, 0x454F47, CRC(18f63868) SHA1(2d0be2668f0945f082ce4f683ec8b42191c44dd1) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr49 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr49.p1", 0x000000, 0x454F47, CRC(d3824631) SHA1(4feadce786f158ccf1d9b6384b2aeb9d150f8980) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr50 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr50.p1", 0x000000, 0x454F47, CRC(97831837) SHA1(341eced7228efa92e982fbd64faf846ecc7b1c21) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr51 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr51.p1", 0x000000, 0x454F47, CRC(179541eb) SHA1(ea9010d6abc9a91598b5aa54b44ac9870730a422) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr52 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr52.p1", 0x000000, 0x454F47, CRC(7a5e68cc) SHA1(aca8427d7b368a9f1ad2025131d3afb2bc938d69) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr53 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr53.p1", 0x000000, 0x454F47, CRC(ed5161a0) SHA1(c2188f7e38368de875411b2f34091137199f218b) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr54 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr54.p1", 0x000000, 0x454F47, CRC(7a78e2c4) SHA1(676d69ba4f3b8fbbb928473283cd55ddba086b0f) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr55 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr55.p1", 0x000000, 0x454F47, CRC(751b9b47) SHA1(83565cca6988eea989667115714063867e560e67) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr56 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr56.p1", 0x000000, 0x454F47, CRC(2ec71c1e) SHA1(b38705e06d761d33f211bbf94dbc62c92e83412b) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr57 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr57.p1", 0x000000, 0x454F47, CRC(e5b36247) SHA1(2b8888e1cec8c54140415ab163e410dfe0cf2271) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr58 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr58.p1", 0x000000, 0x454F47, CRC(ccdac62f) SHA1(207cf03c91afa3c158b845ddfaa76bb1359f1526) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr59 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr59.p1", 0x000000, 0x454F47, CRC(729ae123) SHA1(5635528b62860c0b248add16146073d269b5f3d6) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr60 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr60.p1", 0x000000, 0x454F47, CRC(f3f61fed) SHA1(c2a8e0be98e4566f25f4642371c9062de4a8afb0) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr61 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr61.p1", 0x000000, 0x454F47, CRC(b918794d) SHA1(4f174784a05d4da4f56a5b88a97da9111b96c4c7) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr62 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr62.p1", 0x000000, 0x454F47, CRC(726c0714) SHA1(1b751749f10a97df1cfbadeaef9df076d228ecc9) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr63 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr63.p1", 0x000000, 0x454F47, CRC(366d5912) SHA1(f3f54cd00e793525700d1e865ce81bbbefcea7e6) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr64 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr64.p1", 0x000000, 0x454F47, CRC(b67b00ce) SHA1(a95360efe7542040792010c8dbe006c3d8e08d39) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr65 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr65.p1", 0x000000, 0x454F47, CRC(dbb029e9) SHA1(0399cb1f8c08ce8e0c7d5df060e9eece7757b978) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr66 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr66.p1", 0x000000, 0x454F47, CRC(ecfbaa8d) SHA1(563ee12f439e5c2db54e434df6931604257914f2) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr67 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr67.p1", 0x000000, 0x454F47, CRC(7bd229e9) SHA1(6e760a3de22ddbe896c843f7640fc3aaea42c459) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr68 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr68.p1", 0x000000, 0x454F47, CRC(74b1506a) SHA1(40a1710703625c2ad3d08e722b4cb9da60a3658f) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr69 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr69.p1", 0x000000, 0x454F47, CRC(2f6dd733) SHA1(758a24a737ef19d58b74e7dbf9e3ccb05504c694) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr70 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr70.p1", 0x000000, 0x454F47, CRC(e419a96a) SHA1(281a73bda7c49e8c82f61dd13f287f036268ce11) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr71 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr71.p1", 0x000000, 0x454F47, CRC(cd700d02) SHA1(b269d69bf84fb8985772ce03c2dca50872b785eb) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr72 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr72.p1", 0x000000, 0x454F47, CRC(73302a0e) SHA1(424ded9a38705026eb98dd99bc6ccf753638c5f3) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr73 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr73.p1", 0x000000, 0x454F47, CRC(f25cd4c0) SHA1(2f3998ff63420d705c7f3c1e1456607c39f340ea) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr74 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr74.p1", 0x000000, 0x454F47, CRC(b8b2b260) SHA1(6e20583dafa1a31fb96eedb4df1e08f8e904b4b1) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr75 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr75.p1", 0x000000, 0x454F47, CRC(73c6cc39) SHA1(a997fbd1956371329b3fbc8674486d3ee3e14dfb) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr76 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr76.p1", 0x000000, 0x454F47, CRC(37c7923f) SHA1(e5b763ab5d5f8d08bb020a17f0d402b385302474) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr77 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr77.p1", 0x000000, 0x454F47, CRC(b7d1cbe3) SHA1(c94d25cdb3a4ffb12fabde26a8718f4b2605f7ed) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr78 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr78.p1", 0x000000, 0x454F47, CRC(7a5e68cc) SHA1(aca8427d7b368a9f1ad2025131d3afb2bc938d69) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr79 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr79.p1", 0x000000, 0x454F47, CRC(4d15eba8) SHA1(22b8446b05c7a3ede6e6bf805e7bf7535caa9c30) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr80 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr80.p1", 0x000000, 0x454F47, CRC(da3c68cc) SHA1(6cc5974e16589d8d69afa4ee0d4cf9e631802976) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr81 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr81.p1", 0x000000, 0x454F47, CRC(d55f114f) SHA1(3b654af41d1be389a4a792249f43bafc537fc052) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr82 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr82.p1", 0x000000, 0x454F47, CRC(8e839616) SHA1(e2de4a38b730925e8c1a40011d6591eb2151b07d) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr83 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr83.p1", 0x000000, 0x454F47, CRC(45f7e84f) SHA1(3d54aef403a983af95a7f9dcd94f880026a4c2c4) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr84 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr84.p1", 0x000000, 0x454F47, CRC(6c9e4c27) SHA1(e0ac8e59c9e49543155b76ed2cc95728bab0fd3d) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr85 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr85.p1", 0x000000, 0x454F47, CRC(d2de6b2b) SHA1(fdcf7ff198bda91897996f050a1d369e5e873e9a) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr86 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr86.p1", 0x000000, 0x454F47, CRC(53b295e5) SHA1(4c4d4c0b3b55c973718c43a5ad413ac52538a862) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr87 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr87.p1", 0x000000, 0x454F47, CRC(195cf345) SHA1(4ae8da3994f4f256b7ed26fa2c06f488d64d6b40) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr88 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr88.p1", 0x000000, 0x454F47, CRC(d2288d1c) SHA1(67e15987f9838fbba45553b7ec728df84cbc2bb5) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr89 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr89.p1", 0x000000, 0x454F47, CRC(9629d31a) SHA1(9631fac3cb674c6a5ae10f73dac5acadb3c77c84) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr90 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr90.p1", 0x000000, 0x454F47, CRC(163f8ac6) SHA1(1f9364aa97fb0a13f1f05d6111e83fc204d43ab0) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr91 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr91.p1", 0x000000, 0x454F47, CRC(dbb029e9) SHA1(0399cb1f8c08ce8e0c7d5df060e9eece7757b978) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr92 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr92.p1", 0x000000, 0x454F47, CRC(cb6bbbea) SHA1(5010be3b04ee7f4b556a2e0c7bd4436f842bad52) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr93 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr93.p1", 0x000000, 0x454F47, CRC(5c42388e) SHA1(ef355a5da6e71085a6e2d106380381fe56fb738f) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr94 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr94.p1", 0x000000, 0x454F47, CRC(5321410d) SHA1(5c18779e83ed12030c15285bf8091e278b3083d5) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr95 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr95.p1", 0x000000, 0x454F47, CRC(08fdc654) SHA1(912e9c33ed92ddebbe4147dda17d710edeb833b7) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr96 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr96.p1", 0x000000, 0x454F47, CRC(c389b80d) SHA1(aa04cd9a98835cd3e3cd8b9a85dc15bb5fc98f64) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr97 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr97.p1", 0x000000, 0x454F47, CRC(eae01c65) SHA1(62754c988f7d0ed67bcfd789210efe8e9f80c0ce) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr98 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr98.p1", 0x000000, 0x454F47, CRC(54a03b69) SHA1(7fe26843d49b408ce491105c199ea97b34fd0a95) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr99 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr99.p1", 0x000000, 0x454F47, CRC(d5ccc5a7) SHA1(d33ed41448d9b801248c413ca16a0df93124e6e2) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr100 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr100.p1", 0x000000, 0x454F47, CRC(9f22a307) SHA1(374ca8bb6fcde396c76f83303b6bfefeb05a0278) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr101 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr101.p1", 0x000000, 0x454F47, CRC(5456dd5e) SHA1(b1efc4db1ff697289a378e37536c51f3d04d3680) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr102 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr102.p1", 0x000000, 0x454F47, CRC(10578358) SHA1(7787dfa40c526e84dca3e6a4a0386783664b23b6) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfr103 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fr103.p1", 0x000000, 0x454F47, CRC(9041da84) SHA1(bc81d3e36ed62749162c6a69b92ce3dd09bd5b98) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx01 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx01.p1", 0x000000, 0x454F47, CRC(2d7b43a5) SHA1(ca50c78b060af414b467753738241f212ec799d0) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx02 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx02.p1", 0x000000, 0x454F47, CRC(ba52c0c1) SHA1(cb38e9d210ad36e94303ca6351bbb598ac7a0478) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx03 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx03.p1", 0x000000, 0x454F47, CRC(b531b942) SHA1(bdade913fa50c6fba88ea59fd714a850d0606071) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx04 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx04.p1", 0x000000, 0x454F47, CRC(eeed3e1b) SHA1(15a74ffffc8357f2df0e3e03e75d1497eec493ab) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx05 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx05.p1", 0x000000, 0x454F47, CRC(25994042) SHA1(1d6e8a38612f59968d9ff83d140a8a60f598cfa5) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx06 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx06.p1", 0x000000, 0x454F47, CRC(0cf0e42a) SHA1(825657dde86ad736e6a790bbe5b42d53167133fd) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx07 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx07.p1", 0x000000, 0x454F47, CRC(b2b0c326) SHA1(59a2bf962b4966428d64464f646ebd026ead7eb9) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx08 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx08.p1", 0x000000, 0x454F47, CRC(33dc3de8) SHA1(35fbe2b06493186203cd4277b2d1dab68a83d9d5) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx09 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx09.p1", 0x000000, 0x454F47, CRC(79325b48) SHA1(b4a053b830a6778d2da0c6df7f3857c11d120a36) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx10 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx10.p1", 0x000000, 0x454F47, CRC(b2462511) SHA1(7ac0672772f24a4ec6cb2509458cc221b53379cd) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx11 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx11.p1", 0x000000, 0x454F47, CRC(f6477b17) SHA1(388cca6bbc258a5025bad61ef7a8b28a25ed5efd) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx12 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx12.p1", 0x000000, 0x454F47, CRC(765122cb) SHA1(abe936b0c6617769acc6e82b222a2768e95cc085) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx13 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx13.p1", 0x000000, 0x454F47, CRC(1b9a0bec) SHA1(dca4470052673717f03a58d27d8ae6cf9f908538) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx14 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx14.p1", 0x000000, 0x454F47, CRC(8c950280) SHA1(4ab380053cf2f22b399819b69283ffb5965c9f2f) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx15 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx15.p1", 0x000000, 0x454F47, CRC(1bbc81e4) SHA1(86fc8e18eef970e4aed89e61b10e3447ff91f976) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx16 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx16.p1", 0x000000, 0x454F47, CRC(14dff867) SHA1(d83a6b55c11c79a08f7fed093c527b0eea55d998) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx17 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx17.p1", 0x000000, 0x454F47, CRC(4f037f3e) SHA1(b0cb443b48869878d646c78e8467df7195dba0e6) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx18 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx18.p1", 0x000000, 0x454F47, CRC(84770167) SHA1(33f40335485bfe535298f758809dfbaa51fceebd) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx19 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx19.p1", 0x000000, 0x454F47, CRC(ad1ea50f) SHA1(3a467a9b55c1f5f608ef32f1af7925d504a14e2d) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx20 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx20.p1", 0x000000, 0x454F47, CRC(135e8203) SHA1(f065339bf01e565c31510fe9654e1366bfb47e3a) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx21 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx21.p1", 0x000000, 0x454F47, CRC(92327ccd) SHA1(481b99dfd04594bc5508098cd3de84a292f44ee0) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx22 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx22.p1", 0x000000, 0x454F47, CRC(d8dc1a6d) SHA1(267f88e8243356614c0b1f93c91e6cae24fde19f) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx23 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx23.p1", 0x000000, 0x454F47, CRC(13a86434) SHA1(b03deb16724528b601a78406658da7c367f46d79) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx24 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx24.p1", 0x000000, 0x454F47, CRC(57a93a32) SHA1(5e7b02a4f9e89a5600831bdd977584a3541b2a27) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx25 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx25.p1", 0x000000, 0x454F47, CRC(d7bf63ee) SHA1(aab9fbfc7972f0021803e822378878d4fd61afe8) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx26 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx26.p1", 0x000000, 0x454F47, CRC(ba744ac9) SHA1(768aca4b7671daedbc8b0636e2821679239adcf1) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx27 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx27.p1", 0x000000, 0x454F47, CRC(2cd18888) SHA1(21590c1278bf986df731bb18088ef5ae0b80d783) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx28 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx28.p1", 0x000000, 0x454F47, CRC(bbf80bec) SHA1(ff551f8704730a53ee14ad6864d70b9e3bf62ba6) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx29 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx29.p1", 0x000000, 0x454F47, CRC(b49b726f) SHA1(29faf2c514f419cfbf73b177c95571e746694ff7) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx30 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx30.p1", 0x000000, 0x454F47, CRC(ef47f536) SHA1(670703693f8a50887bd0a0a0a7673bc3521c8426) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx31 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx31.p1", 0x000000, 0x454F47, CRC(24338b6f) SHA1(16292ffd4b730d99fb4e380d71f39ad3a72f1e60) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx32 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx32.p1", 0x000000, 0x454F47, CRC(0d5a2f07) SHA1(ff7b8326171e4177028fba27041d9b09c4433a15) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx33 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx33.p1", 0x000000, 0x454F47, CRC(b31a080b) SHA1(b5183089d03563548f32f44d082516862f72ebc2) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx34 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx34.p1", 0x000000, 0x454F47, CRC(3276f6c5) SHA1(c27896b7c99a03e671c86d243495c9ee47ba4d3d) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx35 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx35.p1", 0x000000, 0x454F47, CRC(78989065) SHA1(445469f36e673567ee3902c55c07c54226a84693) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx36 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx36.p1", 0x000000, 0x454F47, CRC(b3ecee3c) SHA1(2906d95e2dd7a174cd686accecc037d1bdc303be) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx37 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx37.p1", 0x000000, 0x454F47, CRC(f7edb03a) SHA1(c4798334e95a540a7026b8f5a2dd3b3dc49715ae) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx38 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx38.p1", 0x000000, 0x454F47, CRC(77fbe9e6) SHA1(affb7c84df78db50a7cbeb20e1b067a460d0b807) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx39 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx39.p1", 0x000000, 0x454F47, CRC(ba744ac9) SHA1(768aca4b7671daedbc8b0636e2821679239adcf1) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx40 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx40.p1", 0x000000, 0x454F47, CRC(0aeb52c2) SHA1(53e10dbab2241cef91a74073671c6bf97fc21c19) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx41 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx41.p1", 0x000000, 0x454F47, CRC(9dc2d1a6) SHA1(a903ad559f896f9f70e48c90b48d2a46656057d8) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx42 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx42.p1", 0x000000, 0x454F47, CRC(92a1a825) SHA1(83d2dd7a02d8a9d057fd9a7cc7f93c25def00165) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx43 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx43.p1", 0x000000, 0x454F47, CRC(c97d2f7c) SHA1(44833ded4f1ead76b58792b13def3a1b968e6cfd) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx44 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx44.p1", 0x000000, 0x454F47, CRC(02095125) SHA1(655b0827969936110c12db1d08a4d4b4f30ed6e2) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx45 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx45.p1", 0x000000, 0x454F47, CRC(2b60f54d) SHA1(91fbf43caff92902d87bee0ce9969c7d0d100c1a) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx46 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx46.p1", 0x000000, 0x454F47, CRC(9520d241) SHA1(3e0e2f71f863db0f2ceb330a57c0dd9ee82d8274) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx47 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx47.p1", 0x000000, 0x454F47, CRC(144c2c8f) SHA1(385b809af058e2612dc1612f534fc6a3cf574e53) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx48 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx48.p1", 0x000000, 0x454F47, CRC(5ea24a2f) SHA1(5fe7836b4d7a0a7cb0b253883e097620bd338a3b) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx49 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx49.p1", 0x000000, 0x454F47, CRC(95d63476) SHA1(5adf8491a3ce2e190841713e797e44ecad98fbb6) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx50 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx50.p1", 0x000000, 0x454F47, CRC(d1d76a70) SHA1(d2d9d35fda1778e1d776662a772e8ca80a278f9c) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx51 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx51.p1", 0x000000, 0x454F47, CRC(51c133ac) SHA1(404f11f1416b887f86c655e5e7905c9b43b61371) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx52 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx52.p1", 0x000000, 0x454F47, CRC(3c0a1a8b) SHA1(6dba21179c9ecb5bb7c7866877253511b61a491b) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx53 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx53.p1", 0x000000, 0x454F47, CRC(ab0513e7) SHA1(2b6a5956f9550924c67fb6880de821fe94e0b41d) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx54 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx54.p1", 0x000000, 0x454F47, CRC(3c2c9083) SHA1(da46d9906b010d7ac7d778e3bc61d78fd3aa3579) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx55 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx55.p1", 0x000000, 0x454F47, CRC(334fe900) SHA1(1652477ac52af625a83d6fc106be183aa4c0164d) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx56 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx56.p1", 0x000000, 0x454F47, CRC(68936e59) SHA1(85192f65629441321fab7e1f655f89737ecbea21) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx57 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx57.p1", 0x000000, 0x454F47, CRC(a3e71000) SHA1(818de4d10a851cb88533839de4173395339b9cb8) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx58 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx58.p1", 0x000000, 0x454F47, CRC(8a8eb468) SHA1(79004c8097edd592ceb30369be45b7745bdbd46b) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx59 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx59.p1", 0x000000, 0x454F47, CRC(34ce9364) SHA1(8f2ef6e17840bfc660f5ca5a0b092627cf71cef2) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx60 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx60.p1", 0x000000, 0x454F47, CRC(b5a26daa) SHA1(ff361bbd6f04ded1cf55b756742a195a50037b33) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx61 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx61.p1", 0x000000, 0x454F47, CRC(ff4c0b0a) SHA1(2ed93ef67f178e99a8e689c48acf1b767d62a893) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx62 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx62.p1", 0x000000, 0x454F47, CRC(34387553) SHA1(d299dfb25776b65c2a0e728c6a5a3527ab242840) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx63 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx63.p1", 0x000000, 0x454F47, CRC(70392b55) SHA1(fbe85324790379ef167d2f54335cb2b64f45744f) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx64 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx64.p1", 0x000000, 0x454F47, CRC(f02f7289) SHA1(33f36ef4d72ae7e4488556b5968265eb32d9b55a) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx65 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx65.p1", 0x000000, 0x454F47, CRC(9de45bae) SHA1(7b997160a8fb6e00ba206e39eb701eb75d160c0a) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx66 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx66.p1", 0x000000, 0x454F47, CRC(aaafd8ca) SHA1(072363aca7eb44422e7e1140d2688b4b2fedc789) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx67 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx67.p1", 0x000000, 0x454F47, CRC(3d865bae) SHA1(0e36eedcedd91596108666e0338c5876e86c3ecb) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx68 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx68.p1", 0x000000, 0x454F47, CRC(32e5222d) SHA1(af1aa878fa7d9e9c091801cd39612a3c7a62404a) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx69 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx69.p1", 0x000000, 0x454F47, CRC(6939a574) SHA1(56998a1d3a14fbc0134f50811a2bb0b4ce9dc73b) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx70 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx70.p1", 0x000000, 0x454F47, CRC(a24ddb2d) SHA1(ad74ac3d6356a2267ecde2e5fe12c9714539f9c7) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx71 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx71.p1", 0x000000, 0x454F47, CRC(8b247f45) SHA1(2cff5b0889767dad920ea3c350af12cf8ef23cd1) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx72 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx72.p1", 0x000000, 0x454F47, CRC(35645849) SHA1(a910fc0e6f0cc172fbf02154bd98f0cb1da995d5) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx73 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx73.p1", 0x000000, 0x454F47, CRC(b408a687) SHA1(7ed22075aa371861451a82b8b2b8fdcdc15cbae1) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx74 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx74.p1", 0x000000, 0x454F47, CRC(fee6c027) SHA1(4ff94462773fb611663210526083277a4fc298e0) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx75 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx75.p1", 0x000000, 0x454F47, CRC(3592be7e) SHA1(57c8ce3471d0f7398143fa3a136bc795b7bcf6bc) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx76 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx76.p1", 0x000000, 0x454F47, CRC(7193e078) SHA1(5695189a6e8ece984df7e9a957125f16240d4729) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx77 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx77.p1", 0x000000, 0x454F47, CRC(f185b9a4) SHA1(af2e6c573d2e919236a99d78c7d33676914fb2b7) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx78 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx78.p1", 0x000000, 0x454F47, CRC(3c0a1a8b) SHA1(6dba21179c9ecb5bb7c7866877253511b61a491b) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx79 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx79.p1", 0x000000, 0x454F47, CRC(0b4199ef) SHA1(ef3a932772089de83775b4ea5be8f3b13e57a6ca) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx80 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx80.p1", 0x000000, 0x454F47, CRC(9c681a8b) SHA1(d78d7e938b019ba9300ac97dff056e10d9c362df) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx81 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx81.p1", 0x000000, 0x454F47, CRC(930b6308) SHA1(7e81908b51bfaffce520e24f5408ab4a941374a2) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx82 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx82.p1", 0x000000, 0x454F47, CRC(c8d7e451) SHA1(ca83c95145b44c888f2152a2652171e941443c83) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx83 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx83.p1", 0x000000, 0x454F47, CRC(03a39a08) SHA1(71c9557e4d62c37d9c04716d3eb54975778e47e3) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx84 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx84.p1", 0x000000, 0x454F47, CRC(2aca3e60) SHA1(4f33381a9dcc2dd474350fb9d60d63e8b5abaa10) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx85 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx85.p1", 0x000000, 0x454F47, CRC(948a196c) SHA1(7c7b8f80f64963fc06c2e89bacf6491a822e1154) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx86 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx86.p1", 0x000000, 0x454F47, CRC(15e6e7a2) SHA1(c2c1392ea179a42a5f75f76af83cec7f317c99be) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx87 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx87.p1", 0x000000, 0x454F47, CRC(5f088102) SHA1(ec2bc09b1c78da6af14d1b8f4264009bda68100d) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx88 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx88.p1", 0x000000, 0x454F47, CRC(947cff5b) SHA1(ff47dd5a683c7f5244f84543f0693afcd4a08299) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx89 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx89.p1", 0x000000, 0x454F47, CRC(d07da15d) SHA1(a5b3809155cef26357d2e216373c964bcd0b990a) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx90 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx90.p1", 0x000000, 0x454F47, CRC(506bf881) SHA1(c80ec6b45b2e7fc327af9a5016b766cec5976287) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx91 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx91.p1", 0x000000, 0x454F47, CRC(8d3fc9ad) SHA1(7e1671dfc5b27c124f762c2cb72c0771b38c6f9a) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx92 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx92.p1", 0x000000, 0x454F47, CRC(1a164ac9) SHA1(c5efaf48af4ff35e490ea1e4be2e9ffebe6c5b32) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx93 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx93.p1", 0x000000, 0x454F47, CRC(1575334a) SHA1(e0bcd9cc12f3e2fcb797bc6339aa7457f0d5862d) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx94 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx94.p1", 0x000000, 0x454F47, CRC(4ea9b413) SHA1(af853fac41c45bfe98524c42b1a7deb5781c0cd9) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx95 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx95.p1", 0x000000, 0x454F47, CRC(85ddca4a) SHA1(62786c3b60ea810b0945ad9c6db0a006b47934de) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx96 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx96.p1", 0x000000, 0x454F47, CRC(acb46e22) SHA1(323142f072075a099af9d46369ad8f13af236568) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx97 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx97.p1", 0x000000, 0x454F47, CRC(12f4492e) SHA1(f6ab9d1ee134f6875f12a9ac20197d46b1d7c76f) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx98 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx98.p1", 0x000000, 0x454F47, CRC(9398b7e0) SHA1(37ece5e6463aa8e16a663ce07b6f84b4c5cc9c22) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx99 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx99.p1", 0x000000, 0x454F47, CRC(d976d140) SHA1(78d64f8e07136df30995770f62b05af76d31a413) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx100 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx100.p1", 0x000000, 0x454F47, CRC(1202af19) SHA1(1e784c3c5a0a589cdd96b5f59bd432ff4cdad77d) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx101 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx101.p1", 0x000000, 0x454F47, CRC(5603f11f) SHA1(d27d3fbfee5c352d673fbc3e89b3b52baa1c3551) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfrx102 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250frx102.p1", 0x000000, 0x454F47, CRC(d615a8c3) SHA1(6628daebf7a1290a828326a9266b5535c023e6b1) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry01 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry01.p1", 0x000000, 0x454F47, CRC(10b76d98) SHA1(cefb17ffa63f6f36da4f90e9b204261c8ed96a68) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry02 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry02.p1", 0x000000, 0x454F47, CRC(879eeefc) SHA1(ca368eb6f9e2dfcf3c1bcc8bccb78c6034a9227e) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry03 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry03.p1", 0x000000, 0x454F47, CRC(88fd977f) SHA1(7193bd373edd1bf62e3b0415de840913144b9903) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry04 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry04.p1", 0x000000, 0x454F47, CRC(d3211026) SHA1(9377f64997c9f182d2ca83b1e5146f70fa45a940) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry05 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry05.p1", 0x000000, 0x454F47, CRC(18556e7f) SHA1(79d37fddee2317e9099c4fae48c869d6a8d0b873) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry06 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry06.p1", 0x000000, 0x454F47, CRC(313cca17) SHA1(7b498b96fcb68fd23818de6782016818b392643f) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry07 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry07.p1", 0x000000, 0x454F47, CRC(8f7ced1b) SHA1(e8f93fcb39ddbd9e8582d9c038462a70c0e70f74) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry08 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry08.p1", 0x000000, 0x454F47, CRC(0e1013d5) SHA1(607203aeeb4b9e730c2cc38ecaee4a8f5b9278e4) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry09 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry09.p1", 0x000000, 0x454F47, CRC(44fe7575) SHA1(05b309930d8d6594aa21b529c800bee310ee7331) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry10 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry10.p1", 0x000000, 0x454F47, CRC(8f8a0b2c) SHA1(d01bb0c67ddfbb57deab08d9483a24ce2ba5fa9d) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry11 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry11.p1", 0x000000, 0x454F47, CRC(cb8b552a) SHA1(47637aac1c493c0cf324e2ef458e77fedf62b7cd) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry12 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry12.p1", 0x000000, 0x454F47, CRC(4b9d0cf6) SHA1(e3e909d8fdc994bdc8c0663b84757ef4835d3954) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry13 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry13.p1", 0x000000, 0x454F47, CRC(265625d1) SHA1(3aa5b4fad61d9ab4e4ec2b91b25e2109ea152b12) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry14 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry14.p1", 0x000000, 0x454F47, CRC(b1592cbd) SHA1(ba631cf20badac95de1e2be374e6122665438243) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry15 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry15.p1", 0x000000, 0x454F47, CRC(2670afd9) SHA1(96d375e43acd689782b945f801b0708620f73427) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry16 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry16.p1", 0x000000, 0x454F47, CRC(2913d65a) SHA1(82465e062c5ca32b84112243af2b39f53d4dc346) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry17 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry17.p1", 0x000000, 0x454F47, CRC(72cf5103) SHA1(a63585cd016a96b419ef76db182f5c1bcf75ad6d) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry18 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry18.p1", 0x000000, 0x454F47, CRC(b9bb2f5a) SHA1(f77bcef0cade4b40cc3040477fbfeb755af8f34b) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry19 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry19.p1", 0x000000, 0x454F47, CRC(90d28b32) SHA1(c37ba970157c6e91b2d34b6116fc42dc15988ab4) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry20 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry20.p1", 0x000000, 0x454F47, CRC(2e92ac3e) SHA1(5edd4afcf5a940821409786c4ab3909073f4bcb8) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry21 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry21.p1", 0x000000, 0x454F47, CRC(affe52f0) SHA1(f4e9287484c98301aec79dde17652e848dfd5039) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry22 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry22.p1", 0x000000, 0x454F47, CRC(e5103450) SHA1(ed917f7e8c14b4c0a97eba8730451d42e1a5edef) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry23 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry23.p1", 0x000000, 0x454F47, CRC(2e644a09) SHA1(e4f906315b46600d5b983afa0da492df6252c943) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry24 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry24.p1", 0x000000, 0x454F47, CRC(6a65140f) SHA1(ed0bb03cc5d60ae2dab2260920e0d3b8afffba82) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry25 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry25.p1", 0x000000, 0x454F47, CRC(ea734dd3) SHA1(d3c0a7d5012113e3a57f3afe296996b246e6bc17) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry26 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry26.p1", 0x000000, 0x454F47, CRC(87b864f4) SHA1(3d5be2c9934956ab9b45e319ec091ac75dc628b5) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry27 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry27.p1", 0x000000, 0x454F47, CRC(111da6b5) SHA1(89df6f7bc27defebbe0ec2874b8e506c47d9c46c) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry28 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry28.p1", 0x000000, 0x454F47, CRC(863425d1) SHA1(8ee58a757784dcd0fea72a22b6dbdc0ec78a1363) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry29 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry29.p1", 0x000000, 0x454F47, CRC(89575c52) SHA1(a3032aea32ef4e0355208d3d061fc184ac2d73ec) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry30 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry30.p1", 0x000000, 0x454F47, CRC(d28bdb0b) SHA1(52b8e22fd69d1ca2480e0858e70eddb2e3e66f68) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry31 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry31.p1", 0x000000, 0x454F47, CRC(19ffa552) SHA1(1b60a32531def98e7eb8fa73f11adf148f31ad48) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry32 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry32.p1", 0x000000, 0x454F47, CRC(3096013a) SHA1(0ff270c5c82bb5a46d36b19c803ba4f5b4308a0f) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry33 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry33.p1", 0x000000, 0x454F47, CRC(8ed62636) SHA1(8aaab692d3510e0e30ff27aef0afd467588289ed) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry34 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry34.p1", 0x000000, 0x454F47, CRC(0fbad8f8) SHA1(e4307b2fbc30ac0231815153a104b420bbcb7f32) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry35 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry35.p1", 0x000000, 0x454F47, CRC(4554be58) SHA1(83c001beec58e847e155197cb16839bacb51b201) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry36 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry36.p1", 0x000000, 0x454F47, CRC(8e20c001) SHA1(73f9df94ceaa146c352ff22af322d1dcf12de6d2) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry37 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry37.p1", 0x000000, 0x454F47, CRC(ca219e07) SHA1(ec5e114a58374039fb738900556fac9ca547abfc) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry38 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry38.p1", 0x000000, 0x454F47, CRC(4a37c7db) SHA1(220e3f1e6bda59f751a5f336c589e8c46f2488c2) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry39 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry39.p1", 0x000000, 0x454F47, CRC(87b864f4) SHA1(3d5be2c9934956ab9b45e319ec091ac75dc628b5) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry40 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry40.p1", 0x000000, 0x454F47, CRC(37277cff) SHA1(6308b613d8572dc7d4755753f53ce94a34c010df) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry41 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry41.p1", 0x000000, 0x454F47, CRC(a00eff9b) SHA1(53ba4e269d7cdfed0dc28769336a850e1162dd1c) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry42 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry42.p1", 0x000000, 0x454F47, CRC(af6d8618) SHA1(14b1a1ad2f62328f7c8575dc173d8a350f19f8c0) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry43 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry43.p1", 0x000000, 0x454F47, CRC(f4b10141) SHA1(1ac3119a72ca4f8d7605ba03e242590095073ddd) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry44 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry44.p1", 0x000000, 0x454F47, CRC(3fc57f18) SHA1(1ca5ecb69864d8eaf6f41ac9d573d9d23884b87a) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry45 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry45.p1", 0x000000, 0x454F47, CRC(16acdb70) SHA1(5a6c074e084170031f8784ece68b7495d9636740) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry46 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry46.p1", 0x000000, 0x454F47, CRC(a8ecfc7c) SHA1(d6a390e0b6b3b282d3b4e43b5ff725f3fc5f9bb3) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry47 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry47.p1", 0x000000, 0x454F47, CRC(298002b2) SHA1(1c6d242057e49da22fae6210716a5cc9a2bc50cb) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry48 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry48.p1", 0x000000, 0x454F47, CRC(636e6412) SHA1(658de44b830f97e2627e319b62654d92d8bbf984) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry49 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry49.p1", 0x000000, 0x454F47, CRC(a81a1a4b) SHA1(6bb253462add458185c50b14669261c2c13eafd2) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry50 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry50.p1", 0x000000, 0x454F47, CRC(ec1b444d) SHA1(2e3b749da5b64539154c94bb582e99547865d6df) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry51 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry51.p1", 0x000000, 0x454F47, CRC(6c0d1d91) SHA1(f7d0f7dbbe5487c4755ccbed33f5a53a99bf9b94) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry52 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry52.p1", 0x000000, 0x454F47, CRC(01c634b6) SHA1(f728f7b408f2b67081771fe06be87b08662a154c) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry53 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry53.p1", 0x000000, 0x454F47, CRC(96c93dda) SHA1(a19a514854cedc9bc72ca091bafbe5f01d5c424b) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry54 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry54.p1", 0x000000, 0x454F47, CRC(01e0bebe) SHA1(a34dbb5d588be03d1999078605a4a6d19b05f384) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry55 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry55.p1", 0x000000, 0x454F47, CRC(0e83c73d) SHA1(1c3c1a6499a828415ec0be729cec131f45228479) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry56 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry56.p1", 0x000000, 0x454F47, CRC(555f4064) SHA1(51b9d355b0ce1efe422e1ad6306f5cc4bf9cf354) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry57 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry57.p1", 0x000000, 0x454F47, CRC(9e2b3e3d) SHA1(52777e8bc1106b2034c231aab00dab37988d4cb6) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry58 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry58.p1", 0x000000, 0x454F47, CRC(b7429a55) SHA1(757c636e3f9ad18fb0782f81784dff8041964a7e) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry59 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry59.p1", 0x000000, 0x454F47, CRC(0902bd59) SHA1(c4577df2800bdbfbeec139a2962e73b1a30d3e4f) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry60 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry60.p1", 0x000000, 0x454F47, CRC(886e4397) SHA1(a9f8c3a8fa852ca5ee0194bde786a3234dc220bf) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry61 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry61.p1", 0x000000, 0x454F47, CRC(c2802537) SHA1(378cb762a4a7962282d95c33a7a68a5f8b526c83) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry62 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry62.p1", 0x000000, 0x454F47, CRC(09f45b6e) SHA1(7d9931be7c937f3cb8f605a555b8f6f2de8046a0) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry63 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry63.p1", 0x000000, 0x454F47, CRC(4df50568) SHA1(de2487c5872b105368b1875be24033e2e85024f7) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry64 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry64.p1", 0x000000, 0x454F47, CRC(cde35cb4) SHA1(d3c53f7b0572a68fe1d0c2cc071f55983ae54d96) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry65 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry65.p1", 0x000000, 0x454F47, CRC(a0287593) SHA1(96f70ee1fb2451ae7df89314f798651ff8ab6240) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry66 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry66.p1", 0x000000, 0x454F47, CRC(9763f6f7) SHA1(6baafb302c5fe9e4584af5ff9104bd05bdf58cb2) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry67 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry67.p1", 0x000000, 0x454F47, CRC(004a7593) SHA1(fd447e6c3914354020f26bae040a81530012e087) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry68 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry68.p1", 0x000000, 0x454F47, CRC(0f290c10) SHA1(884bf74b700937b987ca7c6d982ab794d34166bf) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry69 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry69.p1", 0x000000, 0x454F47, CRC(54f58b49) SHA1(aff88f723c6a340cde8169632677e495a1e1d200) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry70 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry70.p1", 0x000000, 0x454F47, CRC(9f81f510) SHA1(99dc393dce5c9f808c2501acbc9eeca71b4be14c) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry71 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry71.p1", 0x000000, 0x454F47, CRC(b6e85178) SHA1(9de8627cd27145fa6e0da91ebaa72fe4588baa67) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry72 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry72.p1", 0x000000, 0x454F47, CRC(08a87674) SHA1(015f52c56c156dc84b50e0812107dfceda23a693) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry73 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry73.p1", 0x000000, 0x454F47, CRC(89c488ba) SHA1(6607ab140ff7b57d0758a2c5b5143ba52c99d0ba) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry74 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry74.p1", 0x000000, 0x454F47, CRC(c32aee1a) SHA1(744298a2959f81b874d62ff0df28fa8a94c16a19) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry75 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry75.p1", 0x000000, 0x454F47, CRC(085e9043) SHA1(8c255a556f5334f90d9234a5d8ec87e5b984b4b7) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry76 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry76.p1", 0x000000, 0x454F47, CRC(4c5fce45) SHA1(a1662e672ab49a0cb925228c6b05820fed0be7f2) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry77 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry77.p1", 0x000000, 0x454F47, CRC(cc499799) SHA1(a834384f595823e8b746e3754c35b9670d2a5f3c) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry78 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry78.p1", 0x000000, 0x454F47, CRC(368db7d2) SHA1(869f3f953b23184352c6e0bd5c047321626313f9) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry79 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry79.p1", 0x000000, 0x454F47, CRC(a1a434b6) SHA1(f2c72f0e5a0eb44d999103b84e968d9128c5541c) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry80 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry80.p1", 0x000000, 0x454F47, CRC(aec74d35) SHA1(ef807dd6a26976548386d39c7e9a69d05a09443e) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry81 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry81.p1", 0x000000, 0x454F47, CRC(f51bca6c) SHA1(e191a04320db888ffde25b2a5bd86558f28c6e2c) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry82 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry82.p1", 0x000000, 0x454F47, CRC(3e6fb435) SHA1(79f31d4ce505ad7ed3bc198e8c45f583c43bd5fa) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry83 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry83.p1", 0x000000, 0x454F47, CRC(1706105d) SHA1(0a1488cedf3cad28b7a62c86caf1f24256930d0d) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry84 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry84.p1", 0x000000, 0x454F47, CRC(a9463751) SHA1(b98dfe90040c6994e33f3f4a3c10dae234d49403) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry85 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry85.p1", 0x000000, 0x454F47, CRC(282ac99f) SHA1(a6b7bf450aa326319fc79fd62317dd4322308064) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry86 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry86.p1", 0x000000, 0x454F47, CRC(62c4af3f) SHA1(5a3d6674d5c39a7b72edd769f48492134e4b0b60) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry87 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry87.p1", 0x000000, 0x454F47, CRC(a9b0d166) SHA1(dbab7906a7e3befef921f6791a8792ba41e2e152) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry88 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry88.p1", 0x000000, 0x454F47, CRC(edb18f60) SHA1(fda9a6f69f2d801c914c7db6761d9396598f67b6) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry89 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry89.p1", 0x000000, 0x454F47, CRC(6da7d6bc) SHA1(447b36942a4be8b00feed558c46d6d714ca7d1a6) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry90 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry90.p1", 0x000000, 0x454F47, CRC(b0f3e790) SHA1(a42281ed47b796970cf5df574c6590fcc59dcd4b) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry91 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry91.p1", 0x000000, 0x454F47, CRC(27da64f4) SHA1(5e53ef65ea029ff7da804a21053e44ff481bdb74) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry92 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry92.p1", 0x000000, 0x454F47, CRC(28b91d77) SHA1(619b301f34a78af837bbfed788af07400ab8b0b8) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry93 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry93.p1", 0x000000, 0x454F47, CRC(73659a2e) SHA1(7071ec6122e3bb1823125782c89aca83f2fb446b) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry94 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry94.p1", 0x000000, 0x454F47, CRC(b811e477) SHA1(8d680c3913711906dbe71490e3fd50bc5c47b839) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry95 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry95.p1", 0x000000, 0x454F47, CRC(9178401f) SHA1(5cce07b0700c0f75115221286c885e64bd651b8c) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry96 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry96.p1", 0x000000, 0x454F47, CRC(2f386713) SHA1(a523f51a77b4bac74413844e9b250a94f25ff6ea) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry97 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry97.p1", 0x000000, 0x454F47, CRC(ae5499dd) SHA1(f1170accb40145b2f44d5e56906b233a83a04172) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry98 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry98.p1", 0x000000, 0x454F47, CRC(e4baff7d) SHA1(df472ca0aa98edb8aaa2c1e21b721069aa95254d) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry99 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry99.p1", 0x000000, 0x454F47, CRC(2fce8124) SHA1(bdd7f12ab4a686c6049483760cccc51b61dc4354) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry100 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry100.p1", 0x000000, 0x454F47, CRC(6bcfdf22) SHA1(1170b937f8545b158c523c74fe5609639b15fff8) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxjfry101 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250fry101.p1", 0x000000, 0x454F47, CRC(ebd986fe) SHA1(b3026eb2a94ed93034e713d73be20d9bd1e6bd63) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxw01 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc01.p1", 0x000000, 0x100000, CRC(d81fd813) SHA1(ef811548802f514d9cc5b848343ce092928ec475) )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1fr.c1", 0x0000000, 0x800000, CRC(56279f7c) SHA1(35e2986acd5271b89dc047e59943c3a643c7ef89) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxw02 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc20.p1", 0x000000, 0x100000, CRC(d8834fcc) SHA1(2391af1873d33b49452fa5178c568bbd7154aaef) )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxw03 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc22.p1", 0x000000, 0x100000, CRC(d611f53f) SHA1(99c51db8b89af5f4e8a188d18356213b81ef131c) )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxw04 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250p.p1", 0x000000, 0x100000, CRC(e65937fc) SHA1(128af1815a23962de02384d61ff52869ae14cea1) )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxw05 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc23.p1", 0x000000, 0x100000, CRC(f6da7742) SHA1(d3df1e11f14fcdbc8f73b947a4fe89df48da84a8) )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxw06 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc02.p1", 0x000000, 0x100000, CRC(44d477ad) SHA1(787147edf88a2ae293f410620f9f6c9c46b017b2) )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxw07 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc03.p1", 0x000000, 0x100000, CRC(6d13f5ba) SHA1(d4daacaafc4f7d08858c220e494b24a4bf84ca2e) )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxw08 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc04.p1", 0x000000, 0x100000, CRC(f25375fa) SHA1(6b498edad294a700cc295c574fc4d96e8aad28fb) )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxw09 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc05.p1", 0x000000, 0x100000, CRC(4b8b1580) SHA1(570207e6fd4e461b4e2c585184cd395db1c14fee) )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxw10 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc06.p1", 0x000000, 0x100000, CRC(7a0309b1) SHA1(49272808139da2bc8c54b88cdc7f786f6d337374) )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxw11 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc07.p1", 0x000000, 0x100000, CRC(20dad938) SHA1(623404702d56f14a8a4faf981da74d22cf837ee4) )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxw12 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc08.p1", 0x000000, 0x100000, CRC(38079437) SHA1(7ab0de50831b60d3b47ef885eee43bed3c085e5b) )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxw13 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc09.p1", 0x000000, 0x100000, CRC(834c510a) SHA1(33a3bd671d695f6f482d8306acff18e038f848fa) )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxw14 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc10.p1", 0x000000, 0x100000, CRC(544e1af9) SHA1(df6e5c1a95fb0eec9a2f7916b2979f48c3dbcc29) )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxw15 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc11.p1", 0x000000, 0x100000, CRC(dc1e66b2) SHA1(a55641afef1e2ac28990b23813e0a7ed2d25d40b) )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxw16 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc12.p1", 0x000000, 0x100000, CRC(3fc17d34) SHA1(0d128bcd7795f604dfec1c7efce9a262be0c52af) )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxw17 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc13.p1", 0x000000, 0x100000, CRC(3d7cda35) SHA1(dc039b226a48da1abcd1d2dd0de28b0149ffa427) )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxw18 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc14.p1", 0x000000, 0x100000, CRC(f8a5e9fe) SHA1(d01d790b2beabc92668dd62a6933f32355aa60c1) )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxw19 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc15.p1", 0x000000, 0x100000, CRC(3e9ac95b) SHA1(ee0a0781c44ef94ec68264db01773981938f3896) )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxw20 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc16.p1", 0x000000, 0x100000, CRC(32f10833) SHA1(2ffbd0d402eca9705685b2521192216be0d3968f) )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxw21 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc17.p1", 0x000000, 0x100000, CRC(dbd88fb1) SHA1(85a18a4f70b0681a5c6ae205366bc03ac0718670) )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxw22 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc18.p1", 0x000000, 0x100000, CRC(304caf32) SHA1(91466a1b6c5f2856b103f34d54aa8f30537b9999) )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxw23 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc19.p1", 0x000000, 0x100000, CRC(868c9175) SHA1(17fae04c15bdbf50ab2219adf32b78d3042fea22) )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxz01 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250z01.p1", 0x000000, 0x100000, CRC(130a8483) SHA1(8c99e61598942e536e91bb46296f6b13d2d537f7) )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxz02 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250z02.p1", 0x000000, 0x100000, CRC(89ed05b3) SHA1(4fe9a8acbdde949be14c6a3a506ef0ed40718c25) )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxw24 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250z03.p1", 0x000000, 0x100000, CRC(3aba1c04) SHA1(88018994abb0bdcbce2ba3627670ca9aca5da340) )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxz04 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250z04.p1", 0x000000, 0x100000, CRC(77c9046a) SHA1(7424f5271a445d60e75262dbbc101a17ec1135e5) )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxz05 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250z05.p1", 0x000000, 0x100000, CRC(e4415756) SHA1(9ae22e07c0b9bc32b02b6001c38ab1ca142e04c3) )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxz06 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250z06.p1", 0x000000, 0x100000, CRC(9b950d1e) SHA1(57f0d8cb186db926782ced10f88017300c99dc52) )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxz07 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250z07.p1", 0x000000, 0x100000, CRC(60c33b1a) SHA1(8999bfc42b233cdb58778857c87d9f3187c61025) )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxz08 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250z08.p1", 0x000000, 0x100000, CRC(c47a1d13) SHA1(cc240efea252c6fb1f1bdb763b4e645c3a8134af) )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxz09 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250z09.p1", 0x000000, 0x100000, CRC(30fc5fe1) SHA1(aae87d45e4a5e0ba2c3b56fc529d9b5edeeeca92) )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxz10 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250z10.p1", 0x000000, 0x100000, CRC(149575e9) SHA1(76da66dd527a1d1e1c12fc54d6ef2944bf265a81) )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxz11 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250z11.p1", 0x000000, 0x100000, CRC(63dd21dc) SHA1(04b447099976e563a184810f2ae35633d96a1e9d) )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxz12 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250z12.p1", 0x000000, 0x100000, CRC(78f5d38d) SHA1(c0fa3a01af83a724ea316e476321edc146eaf490) )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxz13 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250z13.p1", 0x000000, 0x100000, CRC(2ed40be3) SHA1(5235cd189e75a778ca8b8b249ca6eb79fce1c85e) )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxz14 )
+ ROM_REGION( 0xD00000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250z14.p1", 0x000000, 0x1E435E, CRC(b5bba099) SHA1(530eda9ad10cb1065daa60c33bbc16e81621483a) )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxz15 )
+ ROM_REGION( 0xD00000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250z15.p1", 0x000000, 0x20396A, CRC(cc395dac) SHA1(53110e1206e529734956167953e579143545871a) )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxz16 )
+ ROM_REGION( 0xD00000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250z16.p1", 0x000000, 0x1E1917, CRC(01189497) SHA1(162c4e3263d783299257f97cc51ceeeb85744e77) )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxz17 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250r.p1", 0x000000, 0x100000, CRC(e74f36c2) SHA1(b17d66f36e6ac31433179566ea07a0ed8790b161) )
+ ROM_LOAD16_WORD_SWAP( "250z17.ep1", 0x100000, 0x400000, CRC(c36967a5) SHA1(1029f194c4564dad2381e4b349fc58f9fda25f88) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxz18 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250z18.p1", 0x000000, 0x100000, CRC(a3764c51) SHA1(791e23b6953aba236fe18182efa7445291c991ba) )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxz19 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250z19.p1", 0x000000, 0x100000, CRC(1177f841) SHA1(5dae13235944f68a252175e3eb6ed33e31ebc5a5) )
+ ROM_LOAD16_WORD_SWAP( "250svb.p2", 0x100000, 0x400000, CRC(6a114e1a) SHA1(3da62274252d36226dcccda0e05593f7f18c7193) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxz20 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250z20.p1", 0x000000, 0x100000, CRC(9e856e4e) SHA1(1017f40bfa9f93d49bcd3ce9ead34380361934e9) )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxz21 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250z21.p1", 0x000000, 0x100000, CRC(3d22adfa) SHA1(5c2da50bbe5ec5b2303fb1e074f8071bc5995e52) )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxz22 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250z22.p1", 0x000000, 0x100000, CRC(378a4631) SHA1(b6d35ca6c57c9112626bae11ad5649ba62640a49) )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxz23 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250z23.p1", 0x000000, 0x100000, CRC(fb7d7871) SHA1(0130f226a3366a1e021c6434110016879133975e) )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxz24 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250z24.p1", 0x000000, 0x100000, CRC(cc5bd3c5) SHA1(781cc7562e99af6ddd4ae04ba66bc5ff012d28d1) )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxz25 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250z25.p1", 0x000000, 0x100000, CRC(6b3d96ce) SHA1(f8dd470ddb32fed3eaebf2d72ed087b714851319) )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxz26 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250z26.p1", 0x000000, 0x100000, CRC(151f6a6d) SHA1(6d564714cdefe711fe7470d9c1cea901913e2592) )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxz27 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250z27.p1", 0x000000, 0x100000, CRC(60002aca) SHA1(55c28cc02ddc6e7134dd0cf3f721deaafe21e0e6) )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxz28 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250z28.p1", 0x000000, 0x100000, CRC(3418902f) SHA1(9fbb3b758301c5546ee50b51ba888a2c59118d43) )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxz29 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250z29.p1", 0x000000, 0x100000, CRC(c405753d) SHA1(bed7426145fd15e972334d7ef04759edcccd8864) )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxe01 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc01.p1", 0x000000, 0x100000, CRC(d81fd813) SHA1(ef811548802f514d9cc5b848343ce092928ec475) )
+ ROM_LOAD16_WORD_SWAP( "250hp.p2", 0x100000, 0x400000, CRC(eac6830a) SHA1(27927f5341c128f93d74113514f2d099d01acbdf) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1fr.c1", 0x0000000, 0x800000, CRC(56279f7c) SHA1(35e2986acd5271b89dc047e59943c3a643c7ef89) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxe02 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc20.p1", 0x000000, 0x100000, CRC(d8834fcc) SHA1(2391af1873d33b49452fa5178c568bbd7154aaef) )
+ ROM_LOAD16_WORD_SWAP( "250hp.p2", 0x100000, 0x400000, CRC(eac6830a) SHA1(27927f5341c128f93d74113514f2d099d01acbdf) )
+
+ NEO_SFIX_128K( "250-s1fr.s1", CRC(a2bb2551) SHA1(fa22568bf15ac41afdf5e2bd7dc2dec4fe813f02) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250fr.c1", 0x0000000, 0x800000, CRC(eb7ce1ff) SHA1(e519b53c6938451f9bfb4d15c10baa7f152ecfcd) )
+ ROM_LOAD16_BYTE( "250fr.c2", 0x0000001, 0x800000, CRC(45c7e401) SHA1(b71754cc746631f1a70c09ef564c7be11aa577e9) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxe03 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250eh.p1", 0x000000, 0x100000, CRC(2e110dd7) SHA1(4ce18a726103bc7c1972125806b2c89332338050) )
+ ROM_LOAD16_WORD_SWAP( "250hp.p2", 0x100000, 0x400000, CRC(eac6830a) SHA1(27927f5341c128f93d74113514f2d099d01acbdf) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxe04 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc22.p1", 0x000000, 0x100000, CRC(d611f53f) SHA1(99c51db8b89af5f4e8a188d18356213b81ef131c) )
+ ROM_LOAD16_WORD_SWAP( "250hp.p2", 0x100000, 0x400000, CRC(eac6830a) SHA1(27927f5341c128f93d74113514f2d099d01acbdf) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxe05 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250it.p1", 0x000000, 0x100000, CRC(f3e154ea) SHA1(bb8260deefa7b048772625085e6f41cab717a147) )
+ ROM_LOAD16_WORD_SWAP( "250hp.p2", 0x100000, 0x400000, CRC(eac6830a) SHA1(27927f5341c128f93d74113514f2d099d01acbdf) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxe06 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250p.p1", 0x000000, 0x100000, CRC(e65937fc) SHA1(128af1815a23962de02384d61ff52869ae14cea1) )
+ ROM_LOAD16_WORD_SWAP( "250hp.p2", 0x100000, 0x400000, CRC(eac6830a) SHA1(27927f5341c128f93d74113514f2d099d01acbdf) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxe07 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc23.p1", 0x000000, 0x100000, CRC(f6da7742) SHA1(d3df1e11f14fcdbc8f73b947a4fe89df48da84a8) )
+ ROM_LOAD16_WORD_SWAP( "250hp.p2", 0x100000, 0x400000, CRC(eac6830a) SHA1(27927f5341c128f93d74113514f2d099d01acbdf) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxe08 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc02.p1", 0x000000, 0x100000, CRC(44d477ad) SHA1(787147edf88a2ae293f410620f9f6c9c46b017b2) )
+ ROM_LOAD16_WORD_SWAP( "250hp.p2", 0x100000, 0x400000, CRC(eac6830a) SHA1(27927f5341c128f93d74113514f2d099d01acbdf) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxe09 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc03.p1", 0x000000, 0x100000, CRC(6d13f5ba) SHA1(d4daacaafc4f7d08858c220e494b24a4bf84ca2e) )
+ ROM_LOAD16_WORD_SWAP( "250hp.p2", 0x100000, 0x400000, CRC(eac6830a) SHA1(27927f5341c128f93d74113514f2d099d01acbdf) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxe10 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc04.p1", 0x000000, 0x100000, CRC(f25375fa) SHA1(6b498edad294a700cc295c574fc4d96e8aad28fb) )
+ ROM_LOAD16_WORD_SWAP( "250hp.p2", 0x100000, 0x400000, CRC(eac6830a) SHA1(27927f5341c128f93d74113514f2d099d01acbdf) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxe11 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc05.p1", 0x000000, 0x100000, CRC(4b8b1580) SHA1(570207e6fd4e461b4e2c585184cd395db1c14fee) )
+ ROM_LOAD16_WORD_SWAP( "250hp.p2", 0x100000, 0x400000, CRC(eac6830a) SHA1(27927f5341c128f93d74113514f2d099d01acbdf) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxe12 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc06.p1", 0x000000, 0x100000, CRC(7a0309b1) SHA1(49272808139da2bc8c54b88cdc7f786f6d337374) )
+ ROM_LOAD16_WORD_SWAP( "250hp.p2", 0x100000, 0x400000, CRC(eac6830a) SHA1(27927f5341c128f93d74113514f2d099d01acbdf) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxe13 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc07.p1", 0x000000, 0x100000, CRC(20dad938) SHA1(623404702d56f14a8a4faf981da74d22cf837ee4) )
+ ROM_LOAD16_WORD_SWAP( "250hp.p2", 0x100000, 0x400000, CRC(eac6830a) SHA1(27927f5341c128f93d74113514f2d099d01acbdf) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxe14 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc08.p1", 0x000000, 0x100000, CRC(38079437) SHA1(7ab0de50831b60d3b47ef885eee43bed3c085e5b) )
+ ROM_LOAD16_WORD_SWAP( "250hp.p2", 0x100000, 0x400000, CRC(eac6830a) SHA1(27927f5341c128f93d74113514f2d099d01acbdf) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxe15 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc09.p1", 0x000000, 0x100000, CRC(834c510a) SHA1(33a3bd671d695f6f482d8306acff18e038f848fa) )
+ ROM_LOAD16_WORD_SWAP( "250hp.p2", 0x100000, 0x400000, CRC(eac6830a) SHA1(27927f5341c128f93d74113514f2d099d01acbdf) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxe16 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc10.p1", 0x000000, 0x100000, CRC(544e1af9) SHA1(df6e5c1a95fb0eec9a2f7916b2979f48c3dbcc29) )
+ ROM_LOAD16_WORD_SWAP( "250hp.p2", 0x100000, 0x400000, CRC(eac6830a) SHA1(27927f5341c128f93d74113514f2d099d01acbdf) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxe17 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc11.p1", 0x000000, 0x100000, CRC(dc1e66b2) SHA1(a55641afef1e2ac28990b23813e0a7ed2d25d40b) )
+ ROM_LOAD16_WORD_SWAP( "250hp.p2", 0x100000, 0x400000, CRC(eac6830a) SHA1(27927f5341c128f93d74113514f2d099d01acbdf) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxe18 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc12.p1", 0x000000, 0x100000, CRC(3fc17d34) SHA1(0d128bcd7795f604dfec1c7efce9a262be0c52af) )
+ ROM_LOAD16_WORD_SWAP( "250hp.p2", 0x100000, 0x400000, CRC(eac6830a) SHA1(27927f5341c128f93d74113514f2d099d01acbdf) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxe19 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc13.p1", 0x000000, 0x100000, CRC(3d7cda35) SHA1(dc039b226a48da1abcd1d2dd0de28b0149ffa427) )
+ ROM_LOAD16_WORD_SWAP( "250hp.p2", 0x100000, 0x400000, CRC(eac6830a) SHA1(27927f5341c128f93d74113514f2d099d01acbdf) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxe20 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc14.p1", 0x000000, 0x100000, CRC(f8a5e9fe) SHA1(d01d790b2beabc92668dd62a6933f32355aa60c1) )
+ ROM_LOAD16_WORD_SWAP( "250hp.p2", 0x100000, 0x400000, CRC(eac6830a) SHA1(27927f5341c128f93d74113514f2d099d01acbdf) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxe21 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc15.p1", 0x000000, 0x100000, CRC(3e9ac95b) SHA1(ee0a0781c44ef94ec68264db01773981938f3896) )
+ ROM_LOAD16_WORD_SWAP( "250hp.p2", 0x100000, 0x400000, CRC(eac6830a) SHA1(27927f5341c128f93d74113514f2d099d01acbdf) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxe22 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc16.p1", 0x000000, 0x100000, CRC(32f10833) SHA1(2ffbd0d402eca9705685b2521192216be0d3968f) )
+ ROM_LOAD16_WORD_SWAP( "250hp.p2", 0x100000, 0x400000, CRC(eac6830a) SHA1(27927f5341c128f93d74113514f2d099d01acbdf) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxe23 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc17.p1", 0x000000, 0x100000, CRC(dbd88fb1) SHA1(85a18a4f70b0681a5c6ae205366bc03ac0718670) )
+ ROM_LOAD16_WORD_SWAP( "250hp.p2", 0x100000, 0x400000, CRC(eac6830a) SHA1(27927f5341c128f93d74113514f2d099d01acbdf) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxe24 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc18.p1", 0x000000, 0x100000, CRC(304caf32) SHA1(91466a1b6c5f2856b103f34d54aa8f30537b9999) )
+ ROM_LOAD16_WORD_SWAP( "250hp.p2", 0x100000, 0x400000, CRC(eac6830a) SHA1(27927f5341c128f93d74113514f2d099d01acbdf) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxe25 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250hc19.p1", 0x000000, 0x100000, CRC(868c9175) SHA1(17fae04c15bdbf50ab2219adf32b78d3042fea22) )
+ ROM_LOAD16_WORD_SWAP( "250hp.p2", 0x100000, 0x400000, CRC(eac6830a) SHA1(27927f5341c128f93d74113514f2d099d01acbdf) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxe26 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250z03.p1", 0x000000, 0x100000, CRC(3aba1c04) SHA1(88018994abb0bdcbce2ba3627670ca9aca5da340) )
+ ROM_LOAD16_WORD_SWAP( "250hp.p2", 0x100000, 0x400000, CRC(eac6830a) SHA1(27927f5341c128f93d74113514f2d099d01acbdf) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxe27 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250ce.p1", 0x000000, 0x100000, CRC(e75a6d64) SHA1(529130f7ebb43231e6bf1b1703266b6c09356f9c) )
+ ROM_LOAD16_WORD_SWAP( "250hp.p2", 0x100000, 0x400000, CRC(eac6830a) SHA1(27927f5341c128f93d74113514f2d099d01acbdf) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxe28 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250z08.p1", 0x000000, 0x100000, CRC(c47a1d13) SHA1(cc240efea252c6fb1f1bdb763b4e645c3a8134af) )
+ ROM_LOAD16_WORD_SWAP( "250hp.p2", 0x100000, 0x400000, CRC(eac6830a) SHA1(27927f5341c128f93d74113514f2d099d01acbdf) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxe29 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250z09.p1", 0x000000, 0x100000, CRC(30fc5fe1) SHA1(aae87d45e4a5e0ba2c3b56fc529d9b5edeeeca92) )
+ ROM_LOAD16_WORD_SWAP( "250hp.p2", 0x100000, 0x400000, CRC(eac6830a) SHA1(27927f5341c128f93d74113514f2d099d01acbdf) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxe30 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250z22.p1", 0x000000, 0x100000, CRC(378a4631) SHA1(b6d35ca6c57c9112626bae11ad5649ba62640a49) )
+ ROM_LOAD16_WORD_SWAP( "250hp.p2", 0x100000, 0x400000, CRC(eac6830a) SHA1(27927f5341c128f93d74113514f2d099d01acbdf) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxe31 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250z23.p1", 0x000000, 0x100000, CRC(fb7d7871) SHA1(0130f226a3366a1e021c6434110016879133975e) )
+ ROM_LOAD16_WORD_SWAP( "250hp.p2", 0x100000, 0x400000, CRC(eac6830a) SHA1(27927f5341c128f93d74113514f2d099d01acbdf) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxe32 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250z24.p1", 0x000000, 0x100000, CRC(cc5bd3c5) SHA1(781cc7562e99af6ddd4ae04ba66bc5ff012d28d1) )
+ ROM_LOAD16_WORD_SWAP( "250hp.p2", 0x100000, 0x400000, CRC(eac6830a) SHA1(27927f5341c128f93d74113514f2d099d01acbdf) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxe33 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250z25.p1", 0x000000, 0x100000, CRC(6b3d96ce) SHA1(f8dd470ddb32fed3eaebf2d72ed087b714851319) )
+ ROM_LOAD16_WORD_SWAP( "250hp.p2", 0x100000, 0x400000, CRC(eac6830a) SHA1(27927f5341c128f93d74113514f2d099d01acbdf) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxe34 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250z27.p1", 0x000000, 0x100000, CRC(60002aca) SHA1(55c28cc02ddc6e7134dd0cf3f721deaafe21e0e6) )
+ ROM_LOAD16_WORD_SWAP( "250hp.p2", 0x100000, 0x400000, CRC(eac6830a) SHA1(27927f5341c128f93d74113514f2d099d01acbdf) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxe35 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250z28.p1", 0x000000, 0x100000, CRC(3418902f) SHA1(9fbb3b758301c5546ee50b51ba888a2c59118d43) )
+ ROM_LOAD16_WORD_SWAP( "250hp.p2", 0x100000, 0x400000, CRC(eac6830a) SHA1(27927f5341c128f93d74113514f2d099d01acbdf) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxe36 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250z29.p1", 0x000000, 0x100000, CRC(c405753d) SHA1(bed7426145fd15e972334d7ef04759edcccd8864) )
+ ROM_LOAD16_WORD_SWAP( "250hp.p2", 0x100000, 0x400000, CRC(eac6830a) SHA1(27927f5341c128f93d74113514f2d099d01acbdf) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslugxe37 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250res.p1", 0x000000, 0x100000, CRC(d69fb994) SHA1(2cbffae29b92ef4b8f90e01488f89654a42a8596) )
+ ROM_LOAD16_WORD_SWAP( "250hp.p2", 0x100000, 0x400000, CRC(eac6830a) SHA1(27927f5341c128f93d74113514f2d099d01acbdf) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+ROM_START( mslug3s01 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256hc01.p1", 0x000000, 0x100000, CRC(b2088d99) SHA1(884525eb82ed8954edcba0511a5ccbccc11ebee0) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3s02 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256hc02.p1", 0x000000, 0x100000, CRC(9ef3ea10) SHA1(0127bdad946a2fd64a59999ae21ee23d81b622db) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START(mslug3s03)
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256hc03.p1", 0x000000, 0x100000, CRC(a4a54919) SHA1(4f40d1e358bc93331c606837985e79d2a559d460) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3s04 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256hc04.p1", 0x000000, 0x100000, CRC(c1ade224) SHA1(21bdea721f53f9830560b0086c2b773ab52f6964) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3s05 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256hc05.p1", 0x000000, 0x100000, CRC(1f1079a2) SHA1(5d99358f0e513e2087c7594bab09c8d33db40f1f) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3s06 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256hc06.p1", 0x000000, 0x100000, CRC(a406ce23) SHA1(d41dee4f103d3ea1e3b88fd7e5ee8f221579d28e) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3s08 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256hc08.p1", 0x000000, 0x100000, CRC(ac2fd576) SHA1(f605e6f900aadac0c8637c1b4890f9e0da04309c) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256fro.c1", 0x0000000, 0x800000, CRC(d799f41c) SHA1(d87cda305d054c56197112ba515299883d419bb4) )
+ ROM_LOAD16_BYTE( "256fr.c2", 0x0000001, 0x800000, CRC(C9725CD0) SHA1(59A0A2778AE35DDCAC17FBA05A81F3DA5EACA1F1) )
+ ROM_LOAD16_BYTE( "256d.c3", 0x1000000, 0x800000, CRC(bfaade82) SHA1(66b07e592c9a9b35567fe463496f8f75c32a7db9) )
+ ROM_LOAD16_BYTE( "256d.c4", 0x1000001, 0x800000, CRC(1463add6) SHA1(4db91b46d6430da272d27d00a6dc0eb25949bea1) )
+ ROM_LOAD16_BYTE( "256d.c5", 0x2000000, 0x800000, CRC(48ca7f28) SHA1(e903876be5fb4fa582c988d74c6bef1c3b9c7083) )
+ ROM_LOAD16_BYTE( "256d.c6", 0x2000001, 0x800000, CRC(806eb36f) SHA1(a412a9cab80c326733dde7652d1db2a46afb3ebb) )
+ ROM_LOAD16_BYTE( "256hc08.c7", 0x3000000, 0x800000, CRC(82097fdb) SHA1(04ff6755087df0995c196e8817827fda3b9f9d08) )
+ ROM_LOAD16_BYTE( "256hc08.c8", 0x3000001, 0x800000, CRC(aa7ca14d) SHA1(876ed262200535b82f74e56b64128df23140338b) )
+ROM_END
+
+ROM_START( mslug3s09 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256hc09.p1", 0x000000, 0x100000, CRC(5716aac8) SHA1(749cec11d0e8cb8406afc386f97af101947b7389) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256fro.c1", 0x0000000, 0x800000, CRC(d799f41c) SHA1(d87cda305d054c56197112ba515299883d419bb4) )
+ ROM_LOAD16_BYTE( "256fr.c2", 0x0000001, 0x800000, CRC(C9725CD0) SHA1(59A0A2778AE35DDCAC17FBA05A81F3DA5EACA1F1) )
+ ROM_LOAD16_BYTE( "256d.c3", 0x1000000, 0x800000, CRC(bfaade82) SHA1(66b07e592c9a9b35567fe463496f8f75c32a7db9) )
+ ROM_LOAD16_BYTE( "256d.c4", 0x1000001, 0x800000, CRC(1463add6) SHA1(4db91b46d6430da272d27d00a6dc0eb25949bea1) )
+ ROM_LOAD16_BYTE( "256d.c5", 0x2000000, 0x800000, CRC(48ca7f28) SHA1(e903876be5fb4fa582c988d74c6bef1c3b9c7083) )
+ ROM_LOAD16_BYTE( "256d.c6", 0x2000001, 0x800000, CRC(806eb36f) SHA1(a412a9cab80c326733dde7652d1db2a46afb3ebb) )
+ ROM_LOAD16_BYTE( "256hc08.c7", 0x3000000, 0x800000, CRC(82097fdb) SHA1(04ff6755087df0995c196e8817827fda3b9f9d08) )
+ ROM_LOAD16_BYTE( "256hc08.c8", 0x3000001, 0x800000, CRC(aa7ca14d) SHA1(876ed262200535b82f74e56b64128df23140338b) )
+ROM_END
+
+ROM_START( mslug3s10 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256hc10.p1", 0x000000, 0x100000, CRC(a92df7c4) SHA1(19ed3ee71e63d8648c057718c38654a064f8942d) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3s11 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256hc11.p1", 0x000000, 0x200000, CRC(90d5bcff) SHA1(e81d4abf7f4629f3756fadd6d8343568d6ce65d1) )
+ ROM_LOAD16_WORD_SWAP( "299-p2.bin", 0x100000, 0x400000, CRC(193fa835) SHA1(fb1f26db7998b0bb6b1c8b92500c1596ec5dfc71) )
+
+ NEO_SFIX_128K( "299-s1.bin", CRC(6f8b9635) SHA1(86b0c8c0ccac913c6192ed6a96c35d4e1a5e8061) )
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3s12 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256hc12.p1", 0x000000, 0x100000, CRC(2b8d7718) SHA1(337d93e37b2c1962e8401d9e358edfe96aaea5af) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3s13 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256hc13.p1", 0x000000, 0x100000, CRC(ef03489c) SHA1(0bd71b57983fd53ca91ceef724f6748f7b7390cd) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3s14 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256hc14.p1", 0x000000, 0x100000, CRC(b8fb73b3) SHA1(ff058b1afa17fd90ebf1e338ca4e45fc7bd1fdae) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3s15 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256hc15.p1", 0x000000, 0x100000, CRC(2a1d976b) SHA1(6ce9a8ae644c22b25e746b33fc283cc21f3ed923) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3s16 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256hc16.p1", 0x000000, 0x100000, CRC(8c3b6831) SHA1(a382ffda2e95184c10fa741a91f79a8c00aae6f4) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3s17 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256hc17.p1", 0x000000, 0x100000, CRC(248123f3) SHA1(0a99b5f69766240883a98cef00a6f917462eaf9f) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3s18 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256hc18.p1", 0x000000, 0x100000, CRC(636ee507) SHA1(9ced2f5c2242d4da26df5a97deb3d134405d9a05) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3s19 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256hc19.p1", 0x000000, 0x100000, CRC(d531b8e9) SHA1(9c972a0bcc75431dee7dc0870b58f2412603a5c7) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3s20 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256hc20.p1", 0x000000, 0x100000, CRC(18c5c6f0) SHA1(4ac2bd2aa9183aaf95991fa9a2a7b2245ff4c9ce) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3s21 )
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "neo-sma", 0x0c0000, 0x040000, CRC(9cd55736) SHA1(d6efb2b313127c2911d47d9324626b3f1e7c6ccb) )
+ ROM_LOAD16_WORD_SWAP( "256-pg1.p1", 0x100000, 0x400000, CRC(b07edfd5) SHA1(dcbd9e500bfae98d754e55cdbbbbf9401013f8ee) )
+ ROM_LOAD16_WORD_SWAP( "256hc00.p2", 0x500000, 0x400000, CRC(704e76d1) SHA1(f94997ee8dc068f033131aee2a0c14bf56da541b) )
+
+ //NEO_SFIX_128K( "256d.s1", CRC(6d9d4d0a) SHA1(4237247494aa0d734ffc728c7fc2808aca42539e) )
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256d.c1", 0x0000000, 0x800000, CRC(3540398c) SHA1(0a96f2360eb26c66bf02bbc6f52230b55cc95e4e) )
+ ROM_LOAD16_BYTE( "256d.c2", 0x0000001, 0x800000, CRC(bdd220f0) SHA1(f52851023f3bc120b05f622af0e0ab1bedc41604) )
+ ROM_LOAD16_BYTE( "256d.c3", 0x1000000, 0x800000, CRC(bfaade82) SHA1(66b07e592c9a9b35567fe463496f8f75c32a7db9) )
+ ROM_LOAD16_BYTE( "256d.c4", 0x1000001, 0x800000, CRC(1463add6) SHA1(4db91b46d6430da272d27d00a6dc0eb25949bea1) )
+ ROM_LOAD16_BYTE( "256d.c5", 0x2000000, 0x800000, CRC(48ca7f28) SHA1(e903876be5fb4fa582c988d74c6bef1c3b9c7083) )
+ ROM_LOAD16_BYTE( "256d.c6", 0x2000001, 0x800000, CRC(806eb36f) SHA1(a412a9cab80c326733dde7652d1db2a46afb3ebb) )
+ ROM_LOAD16_BYTE( "256d.c7", 0x3000000, 0x800000, CRC(9395b809) SHA1(ca9ac9832017094eee3623f0b6c4c4b7b4f1374d) )
+ ROM_LOAD16_BYTE( "256d.c8", 0x3000001, 0x800000, CRC(a369f9d4) SHA1(f8146ea80a1a23da7e7e04c88f778ee9abdfeb5c) )
+ROM_END
+
+ROM_START( mslug3s22 )
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "neo-sma", 0x0c0000, 0x040000, CRC(9cd55736) SHA1(d6efb2b313127c2911d47d9324626b3f1e7c6ccb) )
+ ROM_LOAD16_WORD_SWAP( "256-pg1.p1", 0x100000, 0x400000, CRC(b07edfd5) SHA1(dcbd9e500bfae98d754e55cdbbbbf9401013f8ee) )
+ ROM_LOAD16_WORD_SWAP( "256hc01.p2", 0x500000, 0x400000, CRC(63ce96ad) SHA1(790bbf82175dfd14df499e1a54225c4052c6d7fe) )
+
+ //NEO_SFIX_128K( "256d.s1", CRC(6d9d4d0a) SHA1(4237247494aa0d734ffc728c7fc2808aca42539e) )
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256d.c1", 0x0000000, 0x800000, CRC(3540398c) SHA1(0a96f2360eb26c66bf02bbc6f52230b55cc95e4e) )
+ ROM_LOAD16_BYTE( "256d.c2", 0x0000001, 0x800000, CRC(bdd220f0) SHA1(f52851023f3bc120b05f622af0e0ab1bedc41604) )
+ ROM_LOAD16_BYTE( "256d.c3", 0x1000000, 0x800000, CRC(bfaade82) SHA1(66b07e592c9a9b35567fe463496f8f75c32a7db9) )
+ ROM_LOAD16_BYTE( "256d.c4", 0x1000001, 0x800000, CRC(1463add6) SHA1(4db91b46d6430da272d27d00a6dc0eb25949bea1) )
+ ROM_LOAD16_BYTE( "256d.c5", 0x2000000, 0x800000, CRC(48ca7f28) SHA1(e903876be5fb4fa582c988d74c6bef1c3b9c7083) )
+ ROM_LOAD16_BYTE( "256d.c6", 0x2000001, 0x800000, CRC(806eb36f) SHA1(a412a9cab80c326733dde7652d1db2a46afb3ebb) )
+ ROM_LOAD16_BYTE( "256d.c7", 0x3000000, 0x800000, CRC(9395b809) SHA1(ca9ac9832017094eee3623f0b6c4c4b7b4f1374d) )
+ ROM_LOAD16_BYTE( "256d.c8", 0x3000001, 0x800000, CRC(a369f9d4) SHA1(f8146ea80a1a23da7e7e04c88f778ee9abdfeb5c) )
+ROM_END
+
+ROM_START( mslug3s23 )
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "neo-sma", 0x0c0000, 0x040000, CRC(9cd55736) SHA1(d6efb2b313127c2911d47d9324626b3f1e7c6ccb) )
+ ROM_LOAD16_WORD_SWAP( "256-pg1.p1", 0x100000, 0x400000, CRC(b07edfd5) SHA1(dcbd9e500bfae98d754e55cdbbbbf9401013f8ee) )
+ ROM_LOAD16_WORD_SWAP( "256hc02.p2", 0x500000, 0x400000, CRC(7126480b) SHA1(015591af3ebff7a09e3800de748167cdde558c81) )
+
+ //NEO_SFIX_128K( "256d.s1", CRC(6d9d4d0a) SHA1(4237247494aa0d734ffc728c7fc2808aca42539e) )
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256d.c1", 0x0000000, 0x800000, CRC(3540398c) SHA1(0a96f2360eb26c66bf02bbc6f52230b55cc95e4e) )
+ ROM_LOAD16_BYTE( "256d.c2", 0x0000001, 0x800000, CRC(bdd220f0) SHA1(f52851023f3bc120b05f622af0e0ab1bedc41604) )
+ ROM_LOAD16_BYTE( "256d.c3", 0x1000000, 0x800000, CRC(bfaade82) SHA1(66b07e592c9a9b35567fe463496f8f75c32a7db9) )
+ ROM_LOAD16_BYTE( "256d.c4", 0x1000001, 0x800000, CRC(1463add6) SHA1(4db91b46d6430da272d27d00a6dc0eb25949bea1) )
+ ROM_LOAD16_BYTE( "256d.c5", 0x2000000, 0x800000, CRC(48ca7f28) SHA1(e903876be5fb4fa582c988d74c6bef1c3b9c7083) )
+ ROM_LOAD16_BYTE( "256d.c6", 0x2000001, 0x800000, CRC(806eb36f) SHA1(a412a9cab80c326733dde7652d1db2a46afb3ebb) )
+ ROM_LOAD16_BYTE( "256d.c7", 0x3000000, 0x800000, CRC(9395b809) SHA1(ca9ac9832017094eee3623f0b6c4c4b7b4f1374d) )
+ ROM_LOAD16_BYTE( "256d.c8", 0x3000001, 0x800000, CRC(a369f9d4) SHA1(f8146ea80a1a23da7e7e04c88f778ee9abdfeb5c) )
+ROM_END
+
+ROM_START( mslug3s24 )
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "neo-sma", 0x0c0000, 0x040000, CRC(9cd55736) SHA1(d6efb2b313127c2911d47d9324626b3f1e7c6ccb) )
+ ROM_LOAD16_WORD_SWAP( "256-pg1.p1", 0x100000, 0x400000, CRC(b07edfd5) SHA1(dcbd9e500bfae98d754e55cdbbbbf9401013f8ee) )
+ ROM_LOAD16_WORD_SWAP( "256hc03.p2", 0x500000, 0x400000, CRC(3a065faf) SHA1(a6ed53557d66639fbb316facc8c8665eb4828d47) )
+
+ //NEO_SFIX_128K( "256d.s1", CRC(6d9d4d0a) SHA1(4237247494aa0d734ffc728c7fc2808aca42539e) )
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256d.c1", 0x0000000, 0x800000, CRC(3540398c) SHA1(0a96f2360eb26c66bf02bbc6f52230b55cc95e4e) )
+ ROM_LOAD16_BYTE( "256d.c2", 0x0000001, 0x800000, CRC(bdd220f0) SHA1(f52851023f3bc120b05f622af0e0ab1bedc41604) )
+ ROM_LOAD16_BYTE( "256d.c3", 0x1000000, 0x800000, CRC(bfaade82) SHA1(66b07e592c9a9b35567fe463496f8f75c32a7db9) )
+ ROM_LOAD16_BYTE( "256d.c4", 0x1000001, 0x800000, CRC(1463add6) SHA1(4db91b46d6430da272d27d00a6dc0eb25949bea1) )
+ ROM_LOAD16_BYTE( "256d.c5", 0x2000000, 0x800000, CRC(48ca7f28) SHA1(e903876be5fb4fa582c988d74c6bef1c3b9c7083) )
+ ROM_LOAD16_BYTE( "256d.c6", 0x2000001, 0x800000, CRC(806eb36f) SHA1(a412a9cab80c326733dde7652d1db2a46afb3ebb) )
+ ROM_LOAD16_BYTE( "256d.c7", 0x3000000, 0x800000, CRC(9395b809) SHA1(ca9ac9832017094eee3623f0b6c4c4b7b4f1374d) )
+ ROM_LOAD16_BYTE( "256d.c8", 0x3000001, 0x800000, CRC(a369f9d4) SHA1(f8146ea80a1a23da7e7e04c88f778ee9abdfeb5c) )
+ROM_END
+
+ROM_START( mslug3s25 )
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "neo-sma", 0x0c0000, 0x040000, CRC(9cd55736) SHA1(d6efb2b313127c2911d47d9324626b3f1e7c6ccb) )
+ ROM_LOAD16_WORD_SWAP( "256-pg1.p1", 0x100000, 0x400000, CRC(b07edfd5) SHA1(dcbd9e500bfae98d754e55cdbbbbf9401013f8ee) )
+ ROM_LOAD16_WORD_SWAP( "256hc04.p2", 0x500000, 0x400000, CRC(94520784) SHA1(ddee74078fa2c4f63cf60cc42f5d0eb62c879071) )
+
+ //NEO_SFIX_128K( "256d.s1", CRC(6d9d4d0a) SHA1(4237247494aa0d734ffc728c7fc2808aca42539e) )
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "256d.c1", 0x0000000, 0x800000, CRC(3540398c) SHA1(0a96f2360eb26c66bf02bbc6f52230b55cc95e4e) )
+ ROM_LOAD16_BYTE( "256d.c2", 0x0000001, 0x800000, CRC(bdd220f0) SHA1(f52851023f3bc120b05f622af0e0ab1bedc41604) )
+ ROM_LOAD16_BYTE( "256d.c3", 0x1000000, 0x800000, CRC(bfaade82) SHA1(66b07e592c9a9b35567fe463496f8f75c32a7db9) )
+ ROM_LOAD16_BYTE( "256d.c4", 0x1000001, 0x800000, CRC(1463add6) SHA1(4db91b46d6430da272d27d00a6dc0eb25949bea1) )
+ ROM_LOAD16_BYTE( "256d.c5", 0x2000000, 0x800000, CRC(48ca7f28) SHA1(e903876be5fb4fa582c988d74c6bef1c3b9c7083) )
+ ROM_LOAD16_BYTE( "256d.c6", 0x2000001, 0x800000, CRC(806eb36f) SHA1(a412a9cab80c326733dde7652d1db2a46afb3ebb) )
+ ROM_LOAD16_BYTE( "256d.c7", 0x3000000, 0x800000, CRC(9395b809) SHA1(ca9ac9832017094eee3623f0b6c4c4b7b4f1374d) )
+ ROM_LOAD16_BYTE( "256d.c8", 0x3000001, 0x800000, CRC(a369f9d4) SHA1(f8146ea80a1a23da7e7e04c88f778ee9abdfeb5c) )
+ROM_END
+
+ /********************************************
+ Metal Slug 4
+**********************************************/
+
+ROM_START( mslug4s01 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263hc01.p1", 0x000000, 0x100000, CRC(365c046f) SHA1(62a27ff36238a5e138e2d09a7d868985dacb6004) )
+ ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) )
+ ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) )
+ ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) )
+ ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) )
+ ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) )
+ ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) )
+ ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) )
+ROM_END
+
+ROM_START( mslug4s02 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263hc02.p1", 0x000000, 0x100000, CRC(8f163185) SHA1(4c792a50705bd5afe0e0874a52d84305ed06b8cf) )
+ ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) )
+ ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) )
+ ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) )
+ ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) )
+ ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) )
+ ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) )
+ ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) )
+ROM_END
+
+ROM_START( mslug4s03 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263hc03.p1", 0x000000, 0x100000, CRC(5a6c5175) SHA1(468dcdcc55c8f6f4b7bc3fa02f8063f2d73c9c23) )
+ ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) )
+ ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) )
+ ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) )
+ ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) )
+ ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) )
+ ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) )
+ ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) )
+ROM_END
+
+ROM_START( mslug4s04 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263hc04.p1", 0x000000, 0x100000, CRC(2fd934ef) SHA1(d50cc8612414a6aa263bc14c18175b52000b44fa) )
+ ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) )
+ ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) )
+ ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) )
+ ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) )
+ ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) )
+ ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) )
+ ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) )
+ROM_END
+
+ROM_START( mslug4s05 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263hc05.p1", 0x000000, 0x100000, CRC(71142bf7) SHA1(441cb7c611854c0c560782fd3e1fa0a6e596d395) )
+ ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) )
+ ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) )
+ ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) )
+ ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) )
+ ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) )
+ ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) )
+ ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) )
+ROM_END
+
+ROM_START( mslug4s06 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263hc06.p1", 0x000000, 0x100000, CRC(70bf6e1f) SHA1(1c41a663bd124ccd9a1186254ca6fca30b7eec12) )
+ ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) )
+ ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) )
+ ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) )
+ ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) )
+ ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) )
+ ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) )
+ ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) )
+ROM_END
+
+ROM_START( mslug4s07 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263hc07.p1", 0x000000, 0x100000, CRC(6107b483) SHA1(90e076c7fc4eab4ed0ec9777770d8f528718fcd5) )
+ ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) )
+ ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) )
+ ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) )
+ ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) )
+ ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) )
+ ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) )
+ ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) )
+ROM_END
+
+ROM_START( mslug4s08 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263hc08.p1", 0x000000, 0x100000, CRC(1df1dc19) SHA1(efce926dacf17a18a5e16be125fb759b057e69a3) )
+ ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) )
+ ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) )
+ ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) )
+ ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) )
+ ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) )
+ ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) )
+ ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) )
+ROM_END
+
+ROM_START( mslug4s09 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263hc09.p1", 0x000000, 0x100000, CRC(53cedb27) SHA1(b5f4303eb87caa8c89e5b47cbd3a2e825e57d295) )
+ ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) )
+ ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) )
+ ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) )
+ ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) )
+ ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) )
+ ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) )
+ ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) )
+ROM_END
+
+ROM_START( mslug4s10 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263hc10.p1", 0x000000, 0x100000, CRC(427601bb) SHA1(55297f5f528d245f046a03f541045658a699b033) )
+ ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) )
+ ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) )
+ ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) )
+ ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) )
+ ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) )
+ ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) )
+ ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) )
+ROM_END
+
+ROM_START( mslug4s11 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263hc11.p1", 0x000000, 0x100000, CRC(04956bcb) SHA1(100350cf0498526fdce849aa62d584e33d638809) )
+ ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) )
+ ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) )
+ ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) )
+ ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) )
+ ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) )
+ ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) )
+ ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) )
+ROM_END
+
+ROM_START( mslug4s12 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263hc12.p1", 0x000000, 0x100000, CRC(0c490685) SHA1(b8a5c45d04f9f07de2e0c098381b7e014038977a) )
+ ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) )
+ ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) )
+ ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) )
+ ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) )
+ ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) )
+ ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) )
+ ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) )
+ROM_END
+
+ROM_START( mslug4s13 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263hc13.p1", 0x000000, 0x100000, CRC(4aaa6cf5) SHA1(731621013f81c5acb21b22cbc98b32f974a7ef8a) )
+ ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) )
+ ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) )
+ ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) )
+ ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) )
+ ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) )
+ ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) )
+ ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) )
+ROM_END
+
+ROM_START( mslug4s14 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263hc14.p1", 0x000000, 0x100000, CRC(152db157) SHA1(13d864be8241e99fb7eb3435316e46b52e788f4a) )
+ ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) )
+ ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) )
+ ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) )
+ ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) )
+ ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) )
+ ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) )
+ ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) )
+ROM_END
+
+ROM_START( mslug4s15 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263hc15.p1", 0x000000, 0x100000, CRC(3e806921) SHA1(b7f216650c8ebb4a36cd81638f9c5dd7c0c0f148) )
+ ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) )
+ ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) )
+ ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) )
+ ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) )
+ ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) )
+ ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) )
+ ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) )
+ROM_END
+
+ROM_START( mslug4s16 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263hc16.p1", 0x000000, 0x100000, CRC(aa220a13) SHA1(9b6b2d841c04ecf0efaf3dcf1fbea0173e09f3bd) )
+ ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) )
+ ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) )
+ ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) )
+ ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) )
+ ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) )
+ ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) )
+ ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) )
+ROM_END
+
+ROM_START( mslug4s17 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263hc17.p1", 0x000000, 0x100000, CRC(a2fe675d) SHA1(9167a1298a2d937e76f748c7a8553797ee2120fa) )
+ ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) )
+ ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) )
+ ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) )
+ ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) )
+ ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) )
+ ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) )
+ ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) )
+ROM_END
+
+ROM_START( mslug4s18 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263hc18.p1", 0x000000, 0x100000, CRC(8901649d) SHA1(fa7f9a7166668c3e4f2dbcc0989eb966757ca05d) )
+ ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) )
+ ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) )
+ ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) )
+ ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) )
+ ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) )
+ ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) )
+ ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) )
+ROM_END
+
+ROM_START( mslug4s19 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263hc19.p1", 0x000000, 0x100000, CRC(a3ceab91) SHA1(f0e125e708bb466308e6846bb943022f4b5785a3) )
+ ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) )
+ ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) )
+ ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) )
+ ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) )
+ ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) )
+ ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) )
+ ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) )
+ROM_END
+
+ROM_START( mslug4s21 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263hc21.p1", 0x000000, 0x100000, CRC(784b7f81) SHA1(be4fff5b047e6d44866cbc015a7e2b52715b5bb0) )
+ ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) )
+ ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) )
+ ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) )
+ ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) )
+ ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) )
+ ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) )
+ ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) )
+ROM_END
+
+ROM_START( mslug4s22 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263hc22.p1", 0x000000, 0x100000, CRC(8e5c3ae8) SHA1(d2abb6ceb1adee3d0e9cda8ac886368b3b691cf4) )
+ ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) )
+ ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) )
+ ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) )
+ ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) )
+ ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) )
+ ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) )
+ ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) )
+ROM_END
+
+ROM_START( mslug4s23 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263hc23.p1", 0x000000, 0x100000, CRC(14ca6f38) SHA1(1147971d1d815f41e275cc06cb9e139727bd1964) )
+ ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) )
+ ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) )
+ ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) )
+ ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) )
+ ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) )
+ ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) )
+ ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) )
+ROM_END
+
+ROM_START( mslug4s24 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263hc24.p1", 0x000000, 0x100000, CRC(358a28ce) SHA1(b998a77f73cbc42e8ee1f580bd3780c675197b8e) )
+ ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) )
+ ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) )
+ ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) )
+ ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) )
+ ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) )
+ ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) )
+ ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) )
+ROM_END
+
+ROM_START( mslug4s25 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263hc25.p1", 0x000000, 0x100000, CRC(e2ac3815) SHA1(5c2b7a1ebb6e4b5a371feaa1a17f1ac4c4bdfb51) )
+ ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) )
+ ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) )
+ ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) )
+ ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) )
+ ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) )
+ ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) )
+ ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) )
+ROM_END
+
+ROM_START( mslug4s26 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263hc26.p1", 0x000000, 0x100000, CRC(dda4d1c9) SHA1(084900b70e94236c3b2340d61c3aa633c2a59425) )
+ ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) )
+ ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) )
+ ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) )
+ ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) )
+ ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) )
+ ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) )
+ ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) )
+ROM_END
+
+ROM_START( mslug4s27 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263hc27.p1", 0x000000, 0x100000, CRC(a8acb911) SHA1(654b14e307426d5f009e7147c7108734c09ca7bc) )
+ ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) )
+ ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) )
+ ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) )
+ ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) )
+ ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) )
+ ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) )
+ ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) )
+ROM_END
+
+ROM_START( mslug4s28 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263hc28.bin", 0x000000, 0x100000, CRC(29d28a1f) SHA1(ab73edaea5859b161c6440f03b1f9b1e946f6812) )
+ ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+
+ NEO_SFIX_128K( "ms4-s1p.bin", CRC(07ff87ce) SHA1(96ddb439de2a26bf9869015d7fb19129d40f3fd9) )
+
+ NEO_BIOS_AUDIO_ENCRYPTED_128K( "263-m1.m1", CRC(46ac8228) SHA1(5aeea221050c98e4bb0f16489ce772bf1c80f787) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+
+ ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) )
+ ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+
+ ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) )
+ ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) )
+ ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) )
+ ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) )
+ ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) )
+ ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) )
+ROM_END
+
+ROM_START( mslug4s29 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263hc29.p1", 0x000000, 0x100000, CRC(69dbd9cd) SHA1(8697079f3577d1d31e87a7cd88567e5a52a6bb61) )
+ ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) )
+ ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) )
+ ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) )
+ ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) )
+ ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) )
+ ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) )
+ ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) )
+ROM_END
+
+ROM_START( mslug4s30 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263hc30.p1", 0x000000, 0x100000, CRC(78630351) SHA1(7ed651cac59e1c56fc0a499e84b9a68201fb80e7) )
+ ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) )
+ ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) )
+ ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) )
+ ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) )
+ ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) )
+ ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) )
+ ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) )
+ROM_END
+
+ROM_START( mslug4s31 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263hc31.p1", 0x000000, 0x100000, CRC(2f38b3bd) SHA1(5e22a36e5eec12e6eb645a565f5162131f4fd64f) )
+ ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) )
+ ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) )
+ ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) )
+ ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) )
+ ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) )
+ ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) )
+ ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) )
+ROM_END
+
+ROM_START( mslug4s32 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263hc32.p1", 0x000000, 0x100000, CRC(bb9ad08f) SHA1(98c7a9ef799c05d7583aae975a9334eb235028c5) )
+ ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) )
+ ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) )
+ ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) )
+ ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) )
+ ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) )
+ ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) )
+ ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) )
+ROM_END
+
+ROM_START( mslug4s33 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263hc33.p1", 0x000000, 0x100000, CRC(69462d71) SHA1(95cb3e7a39a1663876c7844e0b5e2f059b62a2e8) )
+ ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_128K( "263nd.m1", CRC(ef5db532) SHA1(4aeba9e206b8f309610eb7e1891644f39aa61830) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) )
+ ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) )
+ ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) )
+ ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) )
+ ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) )
+ ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) )
+ ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) )
+ROM_END
+
+ROM_START( mslug4s34 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263hc34.p1", 0x000000, 0x100000, CRC(5b12b669) SHA1(a75ca7b3ebab67d9207fcd1280f2d616e442efb0) )
+ ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) )
+ ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) )
+ ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) )
+ ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) )
+ ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) )
+ ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) )
+ ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) )
+ROM_END
+
+ROM_START( mslug4s35 )
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263hc35.p1", 0x000000, 0x100000, CRC(417b7738) SHA1(2b55c0a19a85a72aaf745aef16fb796eb9e5c482) )
+ ROM_LOAD16_WORD_SWAP( "263hc35.p2", 0x100000, 0x800000, CRC(37bce641) SHA1(74344b36f980beaceb225cc5cd5afaec9b05ded6) )
+
+ NEO_SFIX_128K( "263-s1.s1", CRC(a9446774) SHA1(c5a309fd8ee6d6750a15c82e710218a3755e38b2) )
+
+ NEO_BIOS_AUDIO_128K( "263nd.m1", CRC(ef5db532) SHA1(4aeba9e206b8f309610eb7e1891644f39aa61830) )
+
+ ROM_REGION( 0x1400000, "ymsnd", 0 )
+ ROM_LOAD( "263hc35.v1", 0x000000, 0x400000, CRC(8cb5a9ef) SHA1(272ad312f8694acf9190ebf48d1c8a5fec73c130) )
+ ROM_LOAD( "263hc35.v2", 0x400000, 0x400000, CRC(94217b1e) SHA1(c468a192e2ec0952a20cfd9e391cf6c12346efb3) )
+ ROM_LOAD( "263hc35.v3", 0x800000, 0x400000, CRC(7616fcec) SHA1(83006094379d0373b967603dcaa1cec69c2f746f) )
+ ROM_LOAD( "263hc35.v4", 0xC00000, 0x800000, CRC(35e79379) SHA1(7db3ccc72e008976a238af7ec3880969ed5dc893) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "263nd.c1", 0x0000000, 0x800000, CRC(361ddda6) SHA1(95f329019660f1ec7f15f6ea1e0c2bfc84b02ca8) )
+ ROM_LOAD16_BYTE( "263nd.c2", 0x0000001, 0x800000, CRC(15d192c4) SHA1(0b9afb62a1d4d764d616408b09e17a05fc4a87e7) )
+ ROM_LOAD16_BYTE( "263hc35.c3", 0x1000000, 0x800000, CRC(e296612c) SHA1(57eb1861b738247aaf0643641268f676b71ed025) )
+ ROM_LOAD16_BYTE( "263hc35.c4", 0x1000001, 0x800000, CRC(c22e3ad0) SHA1(11ce301d4e5b4b1b76e2b82d18c4a9b8b56eeb20) )
+ ROM_LOAD16_BYTE( "263hc35.c5", 0x2000000, 0x400000, CRC(288cd91f) SHA1(a195be13d4ef19705cd3f08be1ec8cdacb29f159) )
+ ROM_LOAD16_BYTE( "263hc35.c6", 0x2000001, 0x400000, CRC(b015aeee) SHA1(24e12e72b82eea9e52a4cefc774efb3bd7db822f) )
+ROM_END
+
+ROM_START( mslug4s36 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263hc36.p1", 0x000000, 0x100000, CRC(e5c2a680) SHA1(ffc9652f9aacff7571f8aa0e154caf3d87344581) )
+ ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_64K( "263d.m1", CRC(0c4c42f8) SHA1(b7be47d909f5e4fcfe769ead0653d40e1e708d36) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) )
+ ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "263d.c1", 0x0000000, 0x800000, CRC(a75ffcde) SHA1(97f405a95a56615ae49f79e1a69f98cc2f2434ef) )
+ ROM_LOAD16_BYTE( "263d.c2", 0x0000001, 0x800000, CRC(5ab0d12b) SHA1(8a3d95dd2e9cc1b6dcf6a957fed43ee390248307) )
+ ROM_LOAD16_BYTE( "263d.c3", 0x1000000, 0x800000, CRC(61af560c) SHA1(aa7bc45e03a6bbd18eb56d118d4932102ccb196a) )
+ ROM_LOAD16_BYTE( "263d.c4", 0x1000001, 0x800000, CRC(f2c544fd) SHA1(179b064f81b49f5808d7a7a5bce28e95b09e5abe) )
+ ROM_LOAD16_BYTE( "263d.c5", 0x2000000, 0x800000, CRC(84c66c44) SHA1(9273f44bf11891aa04ddd2cbb6442d084c2a2e04) )
+ ROM_LOAD16_BYTE( "263d.c6", 0x2000001, 0x800000, CRC(5ed018ab) SHA1(e78501fa8a80960093a4d54ce952681a98300148) )
+ROM_END
+
+ROM_START( mslug4s37 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263hc37.p1", 0x000000, 0x100000, CRC(89694a20) SHA1(34cd2e89c48d3d14db6534cf7fbfea15faf52b17) )
+ ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+
+ NEO_SFIX_128K( "ms4-s1p.bin", CRC(07ff87ce) SHA1(96ddb439de2a26bf9869015d7fb19129d40f3fd9) )
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_128K( "263-m1.m1", CRC(46ac8228) SHA1(5aeea221050c98e4bb0f16489ce772bf1c80f787) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) )
+ ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) )
+ ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) )
+ ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) )
+ ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) )
+ ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) )
+ ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) )
+ROM_END
+
+ROM_START( mslug4s38 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263hc38.p1", 0x000000, 0x100000, CRC(ce15b634) SHA1(d4d73a1d464c472fc0961f6e62b21f52c19a3ba5) )
+ ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+
+ NEO_SFIX_128K( "ms4-s1p.bin", CRC(07ff87ce) SHA1(96ddb439de2a26bf9869015d7fb19129d40f3fd9) )
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_128K( "263-m1.m1", CRC(46ac8228) SHA1(5aeea221050c98e4bb0f16489ce772bf1c80f787) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) )
+ ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) )
+ ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) )
+ ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) )
+ ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) )
+ ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) )
+ ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) )
+ROM_END
+
+ROM_START( mslug4s39 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263hc39.p1", 0x000000, 0x100000, CRC(a7f7c401) SHA1(e23db81d6b4315a472d7c384ad7e7438dd69e83d) )
+ ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+
+ NEO_SFIX_128K( "ms4-s1p.bin", CRC(07ff87ce) SHA1(96ddb439de2a26bf9869015d7fb19129d40f3fd9) )
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_128K( "263-m1.m1", CRC(46ac8228) SHA1(5aeea221050c98e4bb0f16489ce772bf1c80f787) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) )
+ ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) )
+ ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) )
+ ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) )
+ ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) )
+ ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) )
+ ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) )
+ROM_END
+
+ /****************************************
+ Metal Slug 5
+*****************************************/
+
+ROM_START( mslug5s01 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD32_WORD_SWAP( "268hc01.p1", 0x000000, 0x400000, CRC(6bb6bf3a) SHA1(ccd0c1d48cf67fa508dced7702c2dbfaa6690fc3) )
+ ROM_LOAD32_WORD_SWAP( "268hc01.p2", 0x000002, 0x400000, CRC(106b44aa) SHA1(b46520c4cfa41059128323f65fa50983f79960de) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "268d.m1", CRC(3c0655a7) SHA1(ae839d4c2b87a7aa3dd8e5caddc43eb75ee9b732) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) )
+ ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "268d.c1", 0x0000000, 0x800000, CRC(969c0d62) SHA1(DE3C5CFA980CCA2FAB0416AC0D292948B5D4C9C3) )
+ ROM_LOAD16_BYTE( "268d.c2", 0x0000001, 0x800000, CRC(c69ae867) SHA1(3198EE5C7C2C7563B49EBD9F7BA95D9B0B303F6C) )
+ ROM_LOAD16_BYTE( "268d.c3", 0x1000000, 0x800000, CRC(d7beaeaf) SHA1(99443EA4C1BAB45F1977A390EB7E1A0163915110) )
+ ROM_LOAD16_BYTE( "268d.c4", 0x1000001, 0x800000, CRC(899fb2af) SHA1(A06A424C813C1B4F922C5404405779F605C90A06) )
+ ROM_LOAD16_BYTE( "268d.c5", 0x2000000, 0x800000, CRC(2fa1a5ad) SHA1(4AE15D29BA979601598EDDF8905072FE1D9E0A98) )
+ ROM_LOAD16_BYTE( "268d.c6", 0x2000001, 0x800000, CRC(6de89589) SHA1(86A6C036BF51AF516FEA83A30874026EC1586A83) )
+ ROM_LOAD16_BYTE( "268d.c7", 0x3000000, 0x800000, CRC(97bd0c0a) SHA1(30F3280FE527098ECF46541CC645A59B366105EA) )
+ ROM_LOAD16_BYTE( "268d.c8", 0x3000001, 0x800000, CRC(c0d5bc20) SHA1(B5D0D81D5CC624538B0651C568295E578A1330D1) )
+ROM_END
+
+ROM_START( mslug5s02 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD32_WORD_SWAP( "268hc02.p1", 0x000000, 0x400000, CRC(dfdd2334) SHA1(1caab23f124f54e236141c40090d4b34c14aa161) )
+ ROM_LOAD32_WORD_SWAP( "268hc02.p2", 0x000002, 0x400000, CRC(fcb20cbb) SHA1(6b82bea5550e1f5ea02a28453f7e6913d6c6e26f) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "268d.m1", CRC(3c0655a7) SHA1(ae839d4c2b87a7aa3dd8e5caddc43eb75ee9b732) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) )
+ ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "268d.c1", 0x0000000, 0x800000, CRC(969c0d62) SHA1(DE3C5CFA980CCA2FAB0416AC0D292948B5D4C9C3) )
+ ROM_LOAD16_BYTE( "268d.c2", 0x0000001, 0x800000, CRC(c69ae867) SHA1(3198EE5C7C2C7563B49EBD9F7BA95D9B0B303F6C) )
+ ROM_LOAD16_BYTE( "268d.c3", 0x1000000, 0x800000, CRC(d7beaeaf) SHA1(99443EA4C1BAB45F1977A390EB7E1A0163915110) )
+ ROM_LOAD16_BYTE( "268d.c4", 0x1000001, 0x800000, CRC(899fb2af) SHA1(A06A424C813C1B4F922C5404405779F605C90A06) )
+ ROM_LOAD16_BYTE( "268d.c5", 0x2000000, 0x800000, CRC(2fa1a5ad) SHA1(4AE15D29BA979601598EDDF8905072FE1D9E0A98) )
+ ROM_LOAD16_BYTE( "268d.c6", 0x2000001, 0x800000, CRC(6de89589) SHA1(86A6C036BF51AF516FEA83A30874026EC1586A83) )
+ ROM_LOAD16_BYTE( "268d.c7", 0x3000000, 0x800000, CRC(97bd0c0a) SHA1(30F3280FE527098ECF46541CC645A59B366105EA) )
+ ROM_LOAD16_BYTE( "268d.c8", 0x3000001, 0x800000, CRC(c0d5bc20) SHA1(B5D0D81D5CC624538B0651C568295E578A1330D1) )
+ROM_END
+
+ROM_START( mslug5s03 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD32_WORD_SWAP( "268hc03.p1", 0x000000, 0x400000, CRC(b3fba8ce) SHA1(57d66ffcb67f10d7e9f2c6cb03049db12f0d0d0b) )
+ ROM_LOAD32_WORD_SWAP( "268hc03.p2", 0x000002, 0x400000, CRC(a70534b4) SHA1(af16b68403da3a7779a85013391c157174088253) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "268d.m1", CRC(3c0655a7) SHA1(ae839d4c2b87a7aa3dd8e5caddc43eb75ee9b732) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) )
+ ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "268d.c1", 0x0000000, 0x800000, CRC(969c0d62) SHA1(DE3C5CFA980CCA2FAB0416AC0D292948B5D4C9C3) )
+ ROM_LOAD16_BYTE( "268d.c2", 0x0000001, 0x800000, CRC(c69ae867) SHA1(3198EE5C7C2C7563B49EBD9F7BA95D9B0B303F6C) )
+ ROM_LOAD16_BYTE( "268d.c3", 0x1000000, 0x800000, CRC(d7beaeaf) SHA1(99443EA4C1BAB45F1977A390EB7E1A0163915110) )
+ ROM_LOAD16_BYTE( "268d.c4", 0x1000001, 0x800000, CRC(899fb2af) SHA1(A06A424C813C1B4F922C5404405779F605C90A06) )
+ ROM_LOAD16_BYTE( "268d.c5", 0x2000000, 0x800000, CRC(2fa1a5ad) SHA1(4AE15D29BA979601598EDDF8905072FE1D9E0A98) )
+ ROM_LOAD16_BYTE( "268d.c6", 0x2000001, 0x800000, CRC(6de89589) SHA1(86A6C036BF51AF516FEA83A30874026EC1586A83) )
+ ROM_LOAD16_BYTE( "268d.c7", 0x3000000, 0x800000, CRC(97bd0c0a) SHA1(30F3280FE527098ECF46541CC645A59B366105EA) )
+ ROM_LOAD16_BYTE( "268d.c8", 0x3000001, 0x800000, CRC(c0d5bc20) SHA1(B5D0D81D5CC624538B0651C568295E578A1330D1) )
+ROM_END
+
+ROM_START( mslug5s04 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD32_WORD_SWAP( "268hc04.p1", 0x000000, 0x400000, CRC(079034c0) SHA1(170ba24e123f23819b7599dd309d23328283596a) )
+ ROM_LOAD32_WORD_SWAP( "268hc04.p2", 0x000002, 0x400000, CRC(4bdc7ca5) SHA1(a0511bb868bd88b2722dd00c4c59409c96df13d4) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "268d.m1", CRC(3c0655a7) SHA1(ae839d4c2b87a7aa3dd8e5caddc43eb75ee9b732) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) )
+ ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "268d.c1", 0x0000000, 0x800000, CRC(969c0d62) SHA1(DE3C5CFA980CCA2FAB0416AC0D292948B5D4C9C3) )
+ ROM_LOAD16_BYTE( "268d.c2", 0x0000001, 0x800000, CRC(c69ae867) SHA1(3198EE5C7C2C7563B49EBD9F7BA95D9B0B303F6C) )
+ ROM_LOAD16_BYTE( "268d.c3", 0x1000000, 0x800000, CRC(d7beaeaf) SHA1(99443EA4C1BAB45F1977A390EB7E1A0163915110) )
+ ROM_LOAD16_BYTE( "268d.c4", 0x1000001, 0x800000, CRC(899fb2af) SHA1(A06A424C813C1B4F922C5404405779F605C90A06) )
+ ROM_LOAD16_BYTE( "268d.c5", 0x2000000, 0x800000, CRC(2fa1a5ad) SHA1(4AE15D29BA979601598EDDF8905072FE1D9E0A98) )
+ ROM_LOAD16_BYTE( "268d.c6", 0x2000001, 0x800000, CRC(6de89589) SHA1(86A6C036BF51AF516FEA83A30874026EC1586A83) )
+ ROM_LOAD16_BYTE( "268d.c7", 0x3000000, 0x800000, CRC(97bd0c0a) SHA1(30F3280FE527098ECF46541CC645A59B366105EA) )
+ ROM_LOAD16_BYTE( "268d.c8", 0x3000001, 0x800000, CRC(c0d5bc20) SHA1(B5D0D81D5CC624538B0651C568295E578A1330D1) )
+ROM_END
+
+ROM_START( mslug5s05 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD32_WORD_SWAP( "268hc05.p1", 0x000000, 0x400000, CRC(0fc6d235) SHA1(0156e1ef860bb3491c6a18abe691cb3f4346190c) )
+ ROM_LOAD32_WORD_SWAP( "268hc05.p2", 0x000002, 0x400000, CRC(a2821872) SHA1(78c1dc6d2abf88fc279936a346c5a2915d5667ad) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "268d.m1", CRC(3c0655a7) SHA1(ae839d4c2b87a7aa3dd8e5caddc43eb75ee9b732) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) )
+ ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "268d.c1", 0x0000000, 0x800000, CRC(969c0d62) SHA1(DE3C5CFA980CCA2FAB0416AC0D292948B5D4C9C3) )
+ ROM_LOAD16_BYTE( "268d.c2", 0x0000001, 0x800000, CRC(c69ae867) SHA1(3198EE5C7C2C7563B49EBD9F7BA95D9B0B303F6C) )
+ ROM_LOAD16_BYTE( "268d.c3", 0x1000000, 0x800000, CRC(d7beaeaf) SHA1(99443EA4C1BAB45F1977A390EB7E1A0163915110) )
+ ROM_LOAD16_BYTE( "268d.c4", 0x1000001, 0x800000, CRC(899fb2af) SHA1(A06A424C813C1B4F922C5404405779F605C90A06) )
+ ROM_LOAD16_BYTE( "268d.c5", 0x2000000, 0x800000, CRC(2fa1a5ad) SHA1(4AE15D29BA979601598EDDF8905072FE1D9E0A98) )
+ ROM_LOAD16_BYTE( "268d.c6", 0x2000001, 0x800000, CRC(6de89589) SHA1(86A6C036BF51AF516FEA83A30874026EC1586A83) )
+ ROM_LOAD16_BYTE( "268d.c7", 0x3000000, 0x800000, CRC(97bd0c0a) SHA1(30F3280FE527098ECF46541CC645A59B366105EA) )
+ ROM_LOAD16_BYTE( "268d.c8", 0x3000001, 0x800000, CRC(c0d5bc20) SHA1(B5D0D81D5CC624538B0651C568295E578A1330D1) )
+ROM_END
+
+ROM_START( mslug5s06 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD32_WORD_SWAP( "268hc06.p1", 0x000000, 0x400000, CRC(b4360a9d) SHA1(8ae9813c75af595b8792d8fb1523ae2feb19faf2) )
+ ROM_LOAD32_WORD_SWAP( "268hc06.p2", 0x000002, 0x400000, CRC(491feac6) SHA1(0a400c55e3905702386cf4c3a44e956ed1e72010) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "268d.m1", CRC(3c0655a7) SHA1(ae839d4c2b87a7aa3dd8e5caddc43eb75ee9b732) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) )
+ ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "268d.c1", 0x0000000, 0x800000, CRC(969c0d62) SHA1(DE3C5CFA980CCA2FAB0416AC0D292948B5D4C9C3) )
+ ROM_LOAD16_BYTE( "268d.c2", 0x0000001, 0x800000, CRC(c69ae867) SHA1(3198EE5C7C2C7563B49EBD9F7BA95D9B0B303F6C) )
+ ROM_LOAD16_BYTE( "268d.c3", 0x1000000, 0x800000, CRC(d7beaeaf) SHA1(99443EA4C1BAB45F1977A390EB7E1A0163915110) )
+ ROM_LOAD16_BYTE( "268d.c4", 0x1000001, 0x800000, CRC(899fb2af) SHA1(A06A424C813C1B4F922C5404405779F605C90A06) )
+ ROM_LOAD16_BYTE( "268d.c5", 0x2000000, 0x800000, CRC(2fa1a5ad) SHA1(4AE15D29BA979601598EDDF8905072FE1D9E0A98) )
+ ROM_LOAD16_BYTE( "268d.c6", 0x2000001, 0x800000, CRC(6de89589) SHA1(86A6C036BF51AF516FEA83A30874026EC1586A83) )
+ ROM_LOAD16_BYTE( "268d.c7", 0x3000000, 0x800000, CRC(97bd0c0a) SHA1(30F3280FE527098ECF46541CC645A59B366105EA) )
+ ROM_LOAD16_BYTE( "268d.c8", 0x3000001, 0x800000, CRC(c0d5bc20) SHA1(B5D0D81D5CC624538B0651C568295E578A1330D1) )
+ROM_END
+
+ROM_START( mslug5s07 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD32_WORD_SWAP( "268hc07.p1", 0x000000, 0x400000, CRC(6c7b1d69) SHA1(ad42bd90e4b9bd99777b2bf7b9e453d78f91689f) )
+ ROM_LOAD32_WORD_SWAP( "268hc07.p2", 0x000002, 0x400000, CRC(fe719ad8) SHA1(6209b505cff8e5e76b74e936d805b80dad87f480) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "268d.m1", CRC(3c0655a7) SHA1(ae839d4c2b87a7aa3dd8e5caddc43eb75ee9b732) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) )
+ ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "268d.c1", 0x0000000, 0x800000, CRC(969c0d62) SHA1(DE3C5CFA980CCA2FAB0416AC0D292948B5D4C9C3) )
+ ROM_LOAD16_BYTE( "268d.c2", 0x0000001, 0x800000, CRC(c69ae867) SHA1(3198EE5C7C2C7563B49EBD9F7BA95D9B0B303F6C) )
+ ROM_LOAD16_BYTE( "268d.c3", 0x1000000, 0x800000, CRC(d7beaeaf) SHA1(99443EA4C1BAB45F1977A390EB7E1A0163915110) )
+ ROM_LOAD16_BYTE( "268d.c4", 0x1000001, 0x800000, CRC(899fb2af) SHA1(A06A424C813C1B4F922C5404405779F605C90A06) )
+ ROM_LOAD16_BYTE( "268d.c5", 0x2000000, 0x800000, CRC(2fa1a5ad) SHA1(4AE15D29BA979601598EDDF8905072FE1D9E0A98) )
+ ROM_LOAD16_BYTE( "268d.c6", 0x2000001, 0x800000, CRC(6de89589) SHA1(86A6C036BF51AF516FEA83A30874026EC1586A83) )
+ ROM_LOAD16_BYTE( "268d.c7", 0x3000000, 0x800000, CRC(97bd0c0a) SHA1(30F3280FE527098ECF46541CC645A59B366105EA) )
+ ROM_LOAD16_BYTE( "268d.c8", 0x3000001, 0x800000, CRC(c0d5bc20) SHA1(B5D0D81D5CC624538B0651C568295E578A1330D1) )
+ROM_END
+
+ROM_START( mslug5s08 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD32_WORD_SWAP( "268hc08.p1", 0x000000, 0x400000, CRC(bbad4e3b) SHA1(7b050c994ea224369f4fda4583dc4c3642dfa12f) )
+ ROM_LOAD32_WORD_SWAP( "268hc08.p2", 0x000002, 0x400000, CRC(4e5b5063) SHA1(baca229f001a744691e18b20a83427ef82a320e7) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "268d.m1", CRC(3c0655a7) SHA1(ae839d4c2b87a7aa3dd8e5caddc43eb75ee9b732) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) )
+ ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "268d.c1", 0x0000000, 0x800000, CRC(969c0d62) SHA1(DE3C5CFA980CCA2FAB0416AC0D292948B5D4C9C3) )
+ ROM_LOAD16_BYTE( "268d.c2", 0x0000001, 0x800000, CRC(c69ae867) SHA1(3198EE5C7C2C7563B49EBD9F7BA95D9B0B303F6C) )
+ ROM_LOAD16_BYTE( "268d.c3", 0x1000000, 0x800000, CRC(d7beaeaf) SHA1(99443EA4C1BAB45F1977A390EB7E1A0163915110) )
+ ROM_LOAD16_BYTE( "268d.c4", 0x1000001, 0x800000, CRC(899fb2af) SHA1(A06A424C813C1B4F922C5404405779F605C90A06) )
+ ROM_LOAD16_BYTE( "268d.c5", 0x2000000, 0x800000, CRC(2fa1a5ad) SHA1(4AE15D29BA979601598EDDF8905072FE1D9E0A98) )
+ ROM_LOAD16_BYTE( "268d.c6", 0x2000001, 0x800000, CRC(6de89589) SHA1(86A6C036BF51AF516FEA83A30874026EC1586A83) )
+ ROM_LOAD16_BYTE( "268d.c7", 0x3000000, 0x800000, CRC(97bd0c0a) SHA1(30F3280FE527098ECF46541CC645A59B366105EA) )
+ ROM_LOAD16_BYTE( "268d.c8", 0x3000001, 0x800000, CRC(c0d5bc20) SHA1(B5D0D81D5CC624538B0651C568295E578A1330D1) )
+ROM_END
+
+ROM_START( mslug5s09 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD32_WORD_SWAP( "268hc09.p1", 0x000000, 0x400000, CRC(78cbaa24) SHA1(c335d2c7b3ac2f1ce3e2a224662edd17267b8036) )
+ ROM_LOAD32_WORD_SWAP( "268hc09.p2", 0x000002, 0x400000, CRC(a05bab7f) SHA1(7a643a8a96856ab03617e54430ed6230d0f1b451) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "268d.m1", CRC(3c0655a7) SHA1(ae839d4c2b87a7aa3dd8e5caddc43eb75ee9b732) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) )
+ ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "268d.c1", 0x0000000, 0x800000, CRC(969c0d62) SHA1(DE3C5CFA980CCA2FAB0416AC0D292948B5D4C9C3) )
+ ROM_LOAD16_BYTE( "268d.c2", 0x0000001, 0x800000, CRC(c69ae867) SHA1(3198EE5C7C2C7563B49EBD9F7BA95D9B0B303F6C) )
+ ROM_LOAD16_BYTE( "268d.c3", 0x1000000, 0x800000, CRC(d7beaeaf) SHA1(99443EA4C1BAB45F1977A390EB7E1A0163915110) )
+ ROM_LOAD16_BYTE( "268d.c4", 0x1000001, 0x800000, CRC(899fb2af) SHA1(A06A424C813C1B4F922C5404405779F605C90A06) )
+ ROM_LOAD16_BYTE( "268d.c5", 0x2000000, 0x800000, CRC(2fa1a5ad) SHA1(4AE15D29BA979601598EDDF8905072FE1D9E0A98) )
+ ROM_LOAD16_BYTE( "268d.c6", 0x2000001, 0x800000, CRC(6de89589) SHA1(86A6C036BF51AF516FEA83A30874026EC1586A83) )
+ ROM_LOAD16_BYTE( "268d.c7", 0x3000000, 0x800000, CRC(97bd0c0a) SHA1(30F3280FE527098ECF46541CC645A59B366105EA) )
+ ROM_LOAD16_BYTE( "268d.c8", 0x3000001, 0x800000, CRC(c0d5bc20) SHA1(B5D0D81D5CC624538B0651C568295E578A1330D1) )
+ROM_END
+
+ROM_START( mslug5s10 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD32_WORD_SWAP( "268hc10.p1", 0x000000, 0x400000, CRC(d78bc5c1) SHA1(700b087fea8c13101ae0dada3ca216a29843cdf4) )
+ ROM_LOAD32_WORD_SWAP( "268hc10.p2", 0x000002, 0x400000, CRC(15ec686c) SHA1(9cfdabd36eb986990833a8cbae7316776b4e9f19) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "268d.m1", CRC(3c0655a7) SHA1(ae839d4c2b87a7aa3dd8e5caddc43eb75ee9b732) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) )
+ ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "268d.c1", 0x0000000, 0x800000, CRC(969c0d62) SHA1(DE3C5CFA980CCA2FAB0416AC0D292948B5D4C9C3) )
+ ROM_LOAD16_BYTE( "268d.c2", 0x0000001, 0x800000, CRC(c69ae867) SHA1(3198EE5C7C2C7563B49EBD9F7BA95D9B0B303F6C) )
+ ROM_LOAD16_BYTE( "268d.c3", 0x1000000, 0x800000, CRC(d7beaeaf) SHA1(99443EA4C1BAB45F1977A390EB7E1A0163915110) )
+ ROM_LOAD16_BYTE( "268d.c4", 0x1000001, 0x800000, CRC(899fb2af) SHA1(A06A424C813C1B4F922C5404405779F605C90A06) )
+ ROM_LOAD16_BYTE( "268d.c5", 0x2000000, 0x800000, CRC(2fa1a5ad) SHA1(4AE15D29BA979601598EDDF8905072FE1D9E0A98) )
+ ROM_LOAD16_BYTE( "268d.c6", 0x2000001, 0x800000, CRC(6de89589) SHA1(86A6C036BF51AF516FEA83A30874026EC1586A83) )
+ ROM_LOAD16_BYTE( "268d.c7", 0x3000000, 0x800000, CRC(97bd0c0a) SHA1(30F3280FE527098ECF46541CC645A59B366105EA) )
+ ROM_LOAD16_BYTE( "268d.c8", 0x3000001, 0x800000, CRC(c0d5bc20) SHA1(B5D0D81D5CC624538B0651C568295E578A1330D1) )
+ROM_END
+
+ROM_START( mslug5s11 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD32_WORD_SWAP( "268hc11.p1", 0x000000, 0x400000, CRC(005d9693) SHA1(4ccbbc6862ad883273902c3df4097e58f443063a) )
+ ROM_LOAD32_WORD_SWAP( "268hc11.p2", 0x000002, 0x400000, CRC(a5c6a2d7) SHA1(4b194a43dac4046721e1de8f7b15e934a6d5a358) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "268d.m1", CRC(3c0655a7) SHA1(ae839d4c2b87a7aa3dd8e5caddc43eb75ee9b732) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) )
+ ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "268d.c1", 0x0000000, 0x800000, CRC(969c0d62) SHA1(DE3C5CFA980CCA2FAB0416AC0D292948B5D4C9C3) )
+ ROM_LOAD16_BYTE( "268d.c2", 0x0000001, 0x800000, CRC(c69ae867) SHA1(3198EE5C7C2C7563B49EBD9F7BA95D9B0B303F6C) )
+ ROM_LOAD16_BYTE( "268d.c3", 0x1000000, 0x800000, CRC(d7beaeaf) SHA1(99443EA4C1BAB45F1977A390EB7E1A0163915110) )
+ ROM_LOAD16_BYTE( "268d.c4", 0x1000001, 0x800000, CRC(899fb2af) SHA1(A06A424C813C1B4F922C5404405779F605C90A06) )
+ ROM_LOAD16_BYTE( "268d.c5", 0x2000000, 0x800000, CRC(2fa1a5ad) SHA1(4AE15D29BA979601598EDDF8905072FE1D9E0A98) )
+ ROM_LOAD16_BYTE( "268d.c6", 0x2000001, 0x800000, CRC(6de89589) SHA1(86A6C036BF51AF516FEA83A30874026EC1586A83) )
+ ROM_LOAD16_BYTE( "268d.c7", 0x3000000, 0x800000, CRC(97bd0c0a) SHA1(30F3280FE527098ECF46541CC645A59B366105EA) )
+ ROM_LOAD16_BYTE( "268d.c8", 0x3000001, 0x800000, CRC(c0d5bc20) SHA1(B5D0D81D5CC624538B0651C568295E578A1330D1) )
+ROM_END
+
+ROM_START( mslug5s12 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD32_WORD_SWAP( "268hc12.p1", 0x000000, 0x400000, CRC(4b6809f0) SHA1(72356abca0ed0007e01c420ea84232b1dc614ca0) )
+ ROM_LOAD32_WORD_SWAP( "268hc12.p2", 0x000002, 0x400000, CRC(69665582) SHA1(cb16879f022b3064ef0919e53135f4b834879f2a) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "268d.m1", CRC(3c0655a7) SHA1(ae839d4c2b87a7aa3dd8e5caddc43eb75ee9b732) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) )
+ ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "268d.c1", 0x0000000, 0x800000, CRC(969c0d62) SHA1(DE3C5CFA980CCA2FAB0416AC0D292948B5D4C9C3) )
+ ROM_LOAD16_BYTE( "268d.c2", 0x0000001, 0x800000, CRC(c69ae867) SHA1(3198EE5C7C2C7563B49EBD9F7BA95D9B0B303F6C) )
+ ROM_LOAD16_BYTE( "268d.c3", 0x1000000, 0x800000, CRC(d7beaeaf) SHA1(99443EA4C1BAB45F1977A390EB7E1A0163915110) )
+ ROM_LOAD16_BYTE( "268d.c4", 0x1000001, 0x800000, CRC(899fb2af) SHA1(A06A424C813C1B4F922C5404405779F605C90A06) )
+ ROM_LOAD16_BYTE( "268d.c5", 0x2000000, 0x800000, CRC(2fa1a5ad) SHA1(4AE15D29BA979601598EDDF8905072FE1D9E0A98) )
+ ROM_LOAD16_BYTE( "268d.c6", 0x2000001, 0x800000, CRC(6de89589) SHA1(86A6C036BF51AF516FEA83A30874026EC1586A83) )
+ ROM_LOAD16_BYTE( "268d.c7", 0x3000000, 0x800000, CRC(97bd0c0a) SHA1(30F3280FE527098ECF46541CC645A59B366105EA) )
+ ROM_LOAD16_BYTE( "268d.c8", 0x3000001, 0x800000, CRC(c0d5bc20) SHA1(B5D0D81D5CC624538B0651C568295E578A1330D1) )
+ROM_END
+
+ROM_START( mslug5s13 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD32_WORD_SWAP( "268hc13.p1", 0x000000, 0x400000, CRC(642dfb9c) SHA1(6ff1748f4aa57174f7afbe4adb5b53624c7fb0c1) )
+ ROM_LOAD32_WORD_SWAP( "268hc13.p2", 0x000002, 0x400000, CRC(172ffe0f) SHA1(aa5ad1227616af03c4aab8802b9a1aaf1f43b5d9) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "268d.m1", CRC(3c0655a7) SHA1(ae839d4c2b87a7aa3dd8e5caddc43eb75ee9b732) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) )
+ ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "268d.c1", 0x0000000, 0x800000, CRC(969c0d62) SHA1(DE3C5CFA980CCA2FAB0416AC0D292948B5D4C9C3) )
+ ROM_LOAD16_BYTE( "268d.c2", 0x0000001, 0x800000, CRC(c69ae867) SHA1(3198EE5C7C2C7563B49EBD9F7BA95D9B0B303F6C) )
+ ROM_LOAD16_BYTE( "268d.c3", 0x1000000, 0x800000, CRC(d7beaeaf) SHA1(99443EA4C1BAB45F1977A390EB7E1A0163915110) )
+ ROM_LOAD16_BYTE( "268d.c4", 0x1000001, 0x800000, CRC(899fb2af) SHA1(A06A424C813C1B4F922C5404405779F605C90A06) )
+ ROM_LOAD16_BYTE( "268d.c5", 0x2000000, 0x800000, CRC(2fa1a5ad) SHA1(4AE15D29BA979601598EDDF8905072FE1D9E0A98) )
+ ROM_LOAD16_BYTE( "268d.c6", 0x2000001, 0x800000, CRC(6de89589) SHA1(86A6C036BF51AF516FEA83A30874026EC1586A83) )
+ ROM_LOAD16_BYTE( "268d.c7", 0x3000000, 0x800000, CRC(97bd0c0a) SHA1(30F3280FE527098ECF46541CC645A59B366105EA) )
+ ROM_LOAD16_BYTE( "268d.c8", 0x3000001, 0x800000, CRC(c0d5bc20) SHA1(B5D0D81D5CC624538B0651C568295E578A1330D1) )
+ROM_END
+
+ROM_START( mslug5s14 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD32_WORD_SWAP( "268hc14.p1", 0x000000, 0x400000, CRC(d0466792) SHA1(880819933d997fab398f91061e9dbccb959ae8a1) )
+ ROM_LOAD32_WORD_SWAP( "268hc14.p2", 0x000002, 0x400000, CRC(20105d9f) SHA1(f884540e0b42f5a4188defd50bfb48193253307c) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "268d.m1", CRC(3c0655a7) SHA1(ae839d4c2b87a7aa3dd8e5caddc43eb75ee9b732) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) )
+ ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "268d.c1", 0x0000000, 0x800000, CRC(969c0d62) SHA1(DE3C5CFA980CCA2FAB0416AC0D292948B5D4C9C3) )
+ ROM_LOAD16_BYTE( "268d.c2", 0x0000001, 0x800000, CRC(c69ae867) SHA1(3198EE5C7C2C7563B49EBD9F7BA95D9B0B303F6C) )
+ ROM_LOAD16_BYTE( "268d.c3", 0x1000000, 0x800000, CRC(d7beaeaf) SHA1(99443EA4C1BAB45F1977A390EB7E1A0163915110) )
+ ROM_LOAD16_BYTE( "268d.c4", 0x1000001, 0x800000, CRC(899fb2af) SHA1(A06A424C813C1B4F922C5404405779F605C90A06) )
+ ROM_LOAD16_BYTE( "268d.c5", 0x2000000, 0x800000, CRC(2fa1a5ad) SHA1(4AE15D29BA979601598EDDF8905072FE1D9E0A98) )
+ ROM_LOAD16_BYTE( "268d.c6", 0x2000001, 0x800000, CRC(6de89589) SHA1(86A6C036BF51AF516FEA83A30874026EC1586A83) )
+ ROM_LOAD16_BYTE( "268d.c7", 0x3000000, 0x800000, CRC(97bd0c0a) SHA1(30F3280FE527098ECF46541CC645A59B366105EA) )
+ ROM_LOAD16_BYTE( "268d.c8", 0x3000001, 0x800000, CRC(c0d5bc20) SHA1(B5D0D81D5CC624538B0651C568295E578A1330D1) )
+ROM_END
+
+ROM_START( mslug5s15 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD32_WORD_SWAP( "268hc15.p1", 0x000000, 0x400000, CRC(18ab6b59) SHA1(ddd9dff43ae20bc313f73b4419a14a211a3a2f05) )
+ ROM_LOAD32_WORD_SWAP( "268hc15.p2", 0x000002, 0x400000, CRC(fbf6b61e) SHA1(9ec743d5988b5e3183f37f8edf45c72a8c0c893e) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "268d.m1", CRC(3c0655a7) SHA1(ae839d4c2b87a7aa3dd8e5caddc43eb75ee9b732) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) )
+ ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "268d.c1", 0x0000000, 0x800000, CRC(969c0d62) SHA1(DE3C5CFA980CCA2FAB0416AC0D292948B5D4C9C3) )
+ ROM_LOAD16_BYTE( "268d.c2", 0x0000001, 0x800000, CRC(c69ae867) SHA1(3198EE5C7C2C7563B49EBD9F7BA95D9B0B303F6C) )
+ ROM_LOAD16_BYTE( "268d.c3", 0x1000000, 0x800000, CRC(d7beaeaf) SHA1(99443EA4C1BAB45F1977A390EB7E1A0163915110) )
+ ROM_LOAD16_BYTE( "268d.c4", 0x1000001, 0x800000, CRC(899fb2af) SHA1(A06A424C813C1B4F922C5404405779F605C90A06) )
+ ROM_LOAD16_BYTE( "268d.c5", 0x2000000, 0x800000, CRC(2fa1a5ad) SHA1(4AE15D29BA979601598EDDF8905072FE1D9E0A98) )
+ ROM_LOAD16_BYTE( "268d.c6", 0x2000001, 0x800000, CRC(6de89589) SHA1(86A6C036BF51AF516FEA83A30874026EC1586A83) )
+ ROM_LOAD16_BYTE( "268d.c7", 0x3000000, 0x800000, CRC(97bd0c0a) SHA1(30F3280FE527098ECF46541CC645A59B366105EA) )
+ ROM_LOAD16_BYTE( "268d.c8", 0x3000001, 0x800000, CRC(c0d5bc20) SHA1(B5D0D81D5CC624538B0651C568295E578A1330D1) )
+ROM_END
+
+ROM_START( mslug5s16 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD32_WORD_SWAP( "268hc09.p1", 0x000000, 0x400000, CRC(78cbaa24) SHA1(c335d2c7b3ac2f1ce3e2a224662edd17267b8036) )
+ ROM_LOAD32_WORD_SWAP( "268hc14.p2", 0x000002, 0x400000, CRC(20105d9f) SHA1(f884540e0b42f5a4188defd50bfb48193253307c) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "268d.m1", CRC(3c0655a7) SHA1(ae839d4c2b87a7aa3dd8e5caddc43eb75ee9b732) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) )
+ ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "268d.c1", 0x0000000, 0x800000, CRC(969c0d62) SHA1(DE3C5CFA980CCA2FAB0416AC0D292948B5D4C9C3) )
+ ROM_LOAD16_BYTE( "268d.c2", 0x0000001, 0x800000, CRC(c69ae867) SHA1(3198EE5C7C2C7563B49EBD9F7BA95D9B0B303F6C) )
+ ROM_LOAD16_BYTE( "268d.c3", 0x1000000, 0x800000, CRC(d7beaeaf) SHA1(99443EA4C1BAB45F1977A390EB7E1A0163915110) )
+ ROM_LOAD16_BYTE( "268d.c4", 0x1000001, 0x800000, CRC(899fb2af) SHA1(A06A424C813C1B4F922C5404405779F605C90A06) )
+ ROM_LOAD16_BYTE( "268d.c5", 0x2000000, 0x800000, CRC(2fa1a5ad) SHA1(4AE15D29BA979601598EDDF8905072FE1D9E0A98) )
+ ROM_LOAD16_BYTE( "268d.c6", 0x2000001, 0x800000, CRC(6de89589) SHA1(86A6C036BF51AF516FEA83A30874026EC1586A83) )
+ ROM_LOAD16_BYTE( "268d.c7", 0x3000000, 0x800000, CRC(97bd0c0a) SHA1(30F3280FE527098ECF46541CC645A59B366105EA) )
+ ROM_LOAD16_BYTE( "268d.c8", 0x3000001, 0x800000, CRC(c0d5bc20) SHA1(B5D0D81D5CC624538B0651C568295E578A1330D1) )
+ROM_END
+
+ROM_START( mslug5s17 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD32_WORD_SWAP( "268hc09.p1", 0x000000, 0x400000, CRC(78cbaa24) SHA1(c335d2c7b3ac2f1ce3e2a224662edd17267b8036) )
+ ROM_LOAD32_WORD_SWAP( "268hc15.p2", 0x000002, 0x400000, CRC(fbf6b61e) SHA1(9ec743d5988b5e3183f37f8edf45c72a8c0c893e) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "268d.m1", CRC(3c0655a7) SHA1(ae839d4c2b87a7aa3dd8e5caddc43eb75ee9b732) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) )
+ ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "268d.c1", 0x0000000, 0x800000, CRC(969c0d62) SHA1(DE3C5CFA980CCA2FAB0416AC0D292948B5D4C9C3) )
+ ROM_LOAD16_BYTE( "268d.c2", 0x0000001, 0x800000, CRC(c69ae867) SHA1(3198EE5C7C2C7563B49EBD9F7BA95D9B0B303F6C) )
+ ROM_LOAD16_BYTE( "268d.c3", 0x1000000, 0x800000, CRC(d7beaeaf) SHA1(99443EA4C1BAB45F1977A390EB7E1A0163915110) )
+ ROM_LOAD16_BYTE( "268d.c4", 0x1000001, 0x800000, CRC(899fb2af) SHA1(A06A424C813C1B4F922C5404405779F605C90A06) )
+ ROM_LOAD16_BYTE( "268d.c5", 0x2000000, 0x800000, CRC(2fa1a5ad) SHA1(4AE15D29BA979601598EDDF8905072FE1D9E0A98) )
+ ROM_LOAD16_BYTE( "268d.c6", 0x2000001, 0x800000, CRC(6de89589) SHA1(86A6C036BF51AF516FEA83A30874026EC1586A83) )
+ ROM_LOAD16_BYTE( "268d.c7", 0x3000000, 0x800000, CRC(97bd0c0a) SHA1(30F3280FE527098ECF46541CC645A59B366105EA) )
+ ROM_LOAD16_BYTE( "268d.c8", 0x3000001, 0x800000, CRC(c0d5bc20) SHA1(B5D0D81D5CC624538B0651C568295E578A1330D1) )
+ROM_END
+
+ROM_START( mslug5s18 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD32_WORD_SWAP( "268hc14.p1", 0x000000, 0x400000, CRC(d0466792) SHA1(880819933d997fab398f91061e9dbccb959ae8a1) )
+ ROM_LOAD32_WORD_SWAP( "268hc18.p2", 0x000002, 0x400000, CRC(e5777199) SHA1(f8fd6243d6dc2be126697f951380a83fbee3aaa0) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "268d.m1", CRC(3c0655a7) SHA1(ae839d4c2b87a7aa3dd8e5caddc43eb75ee9b732) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) )
+ ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "268d.c1", 0x0000000, 0x800000, CRC(969c0d62) SHA1(DE3C5CFA980CCA2FAB0416AC0D292948B5D4C9C3) )
+ ROM_LOAD16_BYTE( "268d.c2", 0x0000001, 0x800000, CRC(c69ae867) SHA1(3198EE5C7C2C7563B49EBD9F7BA95D9B0B303F6C) )
+ ROM_LOAD16_BYTE( "268d.c3", 0x1000000, 0x800000, CRC(d7beaeaf) SHA1(99443EA4C1BAB45F1977A390EB7E1A0163915110) )
+ ROM_LOAD16_BYTE( "268d.c4", 0x1000001, 0x800000, CRC(899fb2af) SHA1(A06A424C813C1B4F922C5404405779F605C90A06) )
+ ROM_LOAD16_BYTE( "268d.c5", 0x2000000, 0x800000, CRC(2fa1a5ad) SHA1(4AE15D29BA979601598EDDF8905072FE1D9E0A98) )
+ ROM_LOAD16_BYTE( "268d.c6", 0x2000001, 0x800000, CRC(6de89589) SHA1(86A6C036BF51AF516FEA83A30874026EC1586A83) )
+ ROM_LOAD16_BYTE( "268d.c7", 0x3000000, 0x800000, CRC(97bd0c0a) SHA1(30F3280FE527098ECF46541CC645A59B366105EA) )
+ ROM_LOAD16_BYTE( "268d.c8", 0x3000001, 0x800000, CRC(c0d5bc20) SHA1(B5D0D81D5CC624538B0651C568295E578A1330D1) )
+ROM_END
+
+ROM_START( mslug5s19 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD32_WORD_SWAP( "268hc19.p1", 0x000000, 0x400000, CRC(2b5dc5e0) SHA1(514d151b19127c6f6313e98bdd0da92c0d23b24e) )
+ ROM_LOAD32_WORD_SWAP( "268hc19.p2", 0x000002, 0x400000, CRC(771cd0f1) SHA1(71d77cd6e69e60dad460d6b74cbdc33d258f42c2) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "268d.m1", CRC(3c0655a7) SHA1(ae839d4c2b87a7aa3dd8e5caddc43eb75ee9b732) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) )
+ ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "268d.c1", 0x0000000, 0x800000, CRC(969c0d62) SHA1(DE3C5CFA980CCA2FAB0416AC0D292948B5D4C9C3) )
+ ROM_LOAD16_BYTE( "268d.c2", 0x0000001, 0x800000, CRC(c69ae867) SHA1(3198EE5C7C2C7563B49EBD9F7BA95D9B0B303F6C) )
+ ROM_LOAD16_BYTE( "268d.c3", 0x1000000, 0x800000, CRC(d7beaeaf) SHA1(99443EA4C1BAB45F1977A390EB7E1A0163915110) )
+ ROM_LOAD16_BYTE( "268d.c4", 0x1000001, 0x800000, CRC(899fb2af) SHA1(A06A424C813C1B4F922C5404405779F605C90A06) )
+ ROM_LOAD16_BYTE( "268d.c5", 0x2000000, 0x800000, CRC(2fa1a5ad) SHA1(4AE15D29BA979601598EDDF8905072FE1D9E0A98) )
+ ROM_LOAD16_BYTE( "268d.c6", 0x2000001, 0x800000, CRC(6de89589) SHA1(86A6C036BF51AF516FEA83A30874026EC1586A83) )
+ ROM_LOAD16_BYTE( "268d.c7", 0x3000000, 0x800000, CRC(97bd0c0a) SHA1(30F3280FE527098ECF46541CC645A59B366105EA) )
+ ROM_LOAD16_BYTE( "268d.c8", 0x3000001, 0x800000, CRC(c0d5bc20) SHA1(B5D0D81D5CC624538B0651C568295E578A1330D1) )
+ROM_END
+
+ROM_START( mslug5s20 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD32_WORD_SWAP( "268hc20.p1", 0x000000, 0x400000, CRC(7cd6d083) SHA1(ee5dce2e58c249fb04a554d21097445093df0809) )
+ ROM_LOAD32_WORD_SWAP( "268hc20.p2", 0x000002, 0x400000, CRC(f7bc5537) SHA1(76f327840a6b38d237ece70906f89880aa39e3dc) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "268d.m1", CRC(3c0655a7) SHA1(ae839d4c2b87a7aa3dd8e5caddc43eb75ee9b732) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) )
+ ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "268d.c1", 0x0000000, 0x800000, CRC(969c0d62) SHA1(DE3C5CFA980CCA2FAB0416AC0D292948B5D4C9C3) )
+ ROM_LOAD16_BYTE( "268d.c2", 0x0000001, 0x800000, CRC(c69ae867) SHA1(3198EE5C7C2C7563B49EBD9F7BA95D9B0B303F6C) )
+ ROM_LOAD16_BYTE( "268d.c3", 0x1000000, 0x800000, CRC(d7beaeaf) SHA1(99443EA4C1BAB45F1977A390EB7E1A0163915110) )
+ ROM_LOAD16_BYTE( "268d.c4", 0x1000001, 0x800000, CRC(899fb2af) SHA1(A06A424C813C1B4F922C5404405779F605C90A06) )
+ ROM_LOAD16_BYTE( "268d.c5", 0x2000000, 0x800000, CRC(2fa1a5ad) SHA1(4AE15D29BA979601598EDDF8905072FE1D9E0A98) )
+ ROM_LOAD16_BYTE( "268d.c6", 0x2000001, 0x800000, CRC(6de89589) SHA1(86A6C036BF51AF516FEA83A30874026EC1586A83) )
+ ROM_LOAD16_BYTE( "268d.c7", 0x3000000, 0x800000, CRC(97bd0c0a) SHA1(30F3280FE527098ECF46541CC645A59B366105EA) )
+ ROM_LOAD16_BYTE( "268d.c8", 0x3000001, 0x800000, CRC(c0d5bc20) SHA1(B5D0D81D5CC624538B0651C568295E578A1330D1) )
+ROM_END
+
+ROM_START( mslug5s21 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD32_WORD_SWAP( "268hc21.p1", 0x000000, 0x400000, CRC(63e059cf) SHA1(d22ffc7b3a000e50e30dbe359a398709220433b3) )
+ ROM_LOAD32_WORD_SWAP( "268hc21.p2", 0x000002, 0x400000, CRC(f935207d) SHA1(92cdc35e62a8af6074d256c184d87ac715edd669) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "268d.m1", CRC(3c0655a7) SHA1(ae839d4c2b87a7aa3dd8e5caddc43eb75ee9b732) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) )
+ ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "268d.c1", 0x0000000, 0x800000, CRC(969c0d62) SHA1(DE3C5CFA980CCA2FAB0416AC0D292948B5D4C9C3) )
+ ROM_LOAD16_BYTE( "268d.c2", 0x0000001, 0x800000, CRC(c69ae867) SHA1(3198EE5C7C2C7563B49EBD9F7BA95D9B0B303F6C) )
+ ROM_LOAD16_BYTE( "268d.c3", 0x1000000, 0x800000, CRC(d7beaeaf) SHA1(99443EA4C1BAB45F1977A390EB7E1A0163915110) )
+ ROM_LOAD16_BYTE( "268d.c4", 0x1000001, 0x800000, CRC(899fb2af) SHA1(A06A424C813C1B4F922C5404405779F605C90A06) )
+ ROM_LOAD16_BYTE( "268d.c5", 0x2000000, 0x800000, CRC(2fa1a5ad) SHA1(4AE15D29BA979601598EDDF8905072FE1D9E0A98) )
+ ROM_LOAD16_BYTE( "268d.c6", 0x2000001, 0x800000, CRC(6de89589) SHA1(86A6C036BF51AF516FEA83A30874026EC1586A83) )
+ ROM_LOAD16_BYTE( "268d.c7", 0x3000000, 0x800000, CRC(97bd0c0a) SHA1(30F3280FE527098ECF46541CC645A59B366105EA) )
+ ROM_LOAD16_BYTE( "268d.c8", 0x3000001, 0x800000, CRC(c0d5bc20) SHA1(B5D0D81D5CC624538B0651C568295E578A1330D1) )
+ROM_END
+
+ROM_START( mslug5s22 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD32_WORD_SWAP( "268hc22.p1", 0x000000, 0x400000, CRC(080b7066) SHA1(a280b150853460f350483ba8b7d923c2ac50a0f1) )
+ ROM_LOAD32_WORD_SWAP( "268hc22.p2", 0x000002, 0x400000, CRC(4c98c600) SHA1(3e0575bd689fe7714fe7e73360c3901625685b94) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "268d.m1", CRC(3c0655a7) SHA1(ae839d4c2b87a7aa3dd8e5caddc43eb75ee9b732) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) )
+ ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "268d.c1", 0x0000000, 0x800000, CRC(969c0d62) SHA1(DE3C5CFA980CCA2FAB0416AC0D292948B5D4C9C3) )
+ ROM_LOAD16_BYTE( "268d.c2", 0x0000001, 0x800000, CRC(c69ae867) SHA1(3198EE5C7C2C7563B49EBD9F7BA95D9B0B303F6C) )
+ ROM_LOAD16_BYTE( "268d.c3", 0x1000000, 0x800000, CRC(d7beaeaf) SHA1(99443EA4C1BAB45F1977A390EB7E1A0163915110) )
+ ROM_LOAD16_BYTE( "268d.c4", 0x1000001, 0x800000, CRC(899fb2af) SHA1(A06A424C813C1B4F922C5404405779F605C90A06) )
+ ROM_LOAD16_BYTE( "268d.c5", 0x2000000, 0x800000, CRC(2fa1a5ad) SHA1(4AE15D29BA979601598EDDF8905072FE1D9E0A98) )
+ ROM_LOAD16_BYTE( "268d.c6", 0x2000001, 0x800000, CRC(6de89589) SHA1(86A6C036BF51AF516FEA83A30874026EC1586A83) )
+ ROM_LOAD16_BYTE( "268d.c7", 0x3000000, 0x800000, CRC(97bd0c0a) SHA1(30F3280FE527098ECF46541CC645A59B366105EA) )
+ ROM_LOAD16_BYTE( "268d.c8", 0x3000001, 0x800000, CRC(c0d5bc20) SHA1(B5D0D81D5CC624538B0651C568295E578A1330D1) )
+ROM_END
+
+ROM_START( mslug5s23 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD32_WORD_SWAP( "268hc23.p1", 0x000000, 0x400000, CRC(d8108167) SHA1(9f191f1ea05b9188588cfb1780d1ae4ef788b9d8) )
+ ROM_LOAD32_WORD_SWAP( "268hc23.p2", 0x000002, 0x400000, CRC(12a8d2c9) SHA1(a31b6a06611105791bd40e77a683802968ba8811) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "268d.m1", CRC(3c0655a7) SHA1(ae839d4c2b87a7aa3dd8e5caddc43eb75ee9b732) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) )
+ ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "268d.c1", 0x0000000, 0x800000, CRC(969c0d62) SHA1(DE3C5CFA980CCA2FAB0416AC0D292948B5D4C9C3) )
+ ROM_LOAD16_BYTE( "268d.c2", 0x0000001, 0x800000, CRC(c69ae867) SHA1(3198EE5C7C2C7563B49EBD9F7BA95D9B0B303F6C) )
+ ROM_LOAD16_BYTE( "268d.c3", 0x1000000, 0x800000, CRC(d7beaeaf) SHA1(99443EA4C1BAB45F1977A390EB7E1A0163915110) )
+ ROM_LOAD16_BYTE( "268d.c4", 0x1000001, 0x800000, CRC(899fb2af) SHA1(A06A424C813C1B4F922C5404405779F605C90A06) )
+ ROM_LOAD16_BYTE( "268d.c5", 0x2000000, 0x800000, CRC(2fa1a5ad) SHA1(4AE15D29BA979601598EDDF8905072FE1D9E0A98) )
+ ROM_LOAD16_BYTE( "268d.c6", 0x2000001, 0x800000, CRC(6de89589) SHA1(86A6C036BF51AF516FEA83A30874026EC1586A83) )
+ ROM_LOAD16_BYTE( "268d.c7", 0x3000000, 0x800000, CRC(97bd0c0a) SHA1(30F3280FE527098ECF46541CC645A59B366105EA) )
+ ROM_LOAD16_BYTE( "268d.c8", 0x3000001, 0x800000, CRC(c0d5bc20) SHA1(B5D0D81D5CC624538B0651C568295E578A1330D1) )
+ROM_END
+
+ROM_START( mslug5s24 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "268hc24.p1", 0x000000, 0x100000, CRC(24b75772) SHA1(7cfc40cd2eddf220616ff238388937301f533948) )
+ ROM_LOAD16_WORD_SWAP( "ms5-p2p.bin", 0x100000, 0x200000, CRC(d6a458e8) SHA1(c0a8bdae06d62859fb6734766ccc190eb2a809a4) )
+ ROM_LOAD16_WORD_SWAP( "ms5-p3p.bin", 0x300000, 0x200000, CRC(439ec031) SHA1(f0ad8f9be7d26bc504593c1321bd23c286a221f0) )
+
+ ROM_Y_ZOOM
+
+ ROM_REGION( 0x20000, "fixed", 0 )
+ ROM_LOAD("ms5-s1p.bin", 0x000000, 0x20000, CRC(21e04432) SHA1(10057a2aa487087f7143d1d69fdad978a6bef0f7) )
+ ROM_REGION( 0x20000, "fixedbios", 0 )
+ ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) )
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "268-m1.m1", CRC(4a5a6e0e) SHA1(df0f660f2465e1db7be5adfcaf5e88ad61a74a42) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+
+ ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) )
+ ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+
+ ROM_LOAD16_BYTE( "268-c1c.c1", 0x0000000, 0x800000, CRC(ab7c389a) SHA1(025a188de589500bf7637fa8e7a37ab24bf4312e) )
+ ROM_LOAD16_BYTE( "268-c2c.c2", 0x0000001, 0x800000, CRC(3560881b) SHA1(493d218c92290b4770024d6ee2917c4022753b07) )
+ ROM_LOAD16_BYTE( "268-c3c.c3", 0x1000000, 0x800000, CRC(3af955ea) SHA1(cf36b6ae9b0d12744b17cb7a928399214de894be) )
+ ROM_LOAD16_BYTE( "268-c4c.c4", 0x1000001, 0x800000, CRC(c329c373) SHA1(5073d4079958a0ef5426885af2c9e3178f37d5e0) )
+ ROM_LOAD16_BYTE( "268-c5c.c5", 0x2000000, 0x800000, CRC(959c8177) SHA1(889bda7c65d71172e7d89194d1269561888fe789) )
+ ROM_LOAD16_BYTE( "268-c6c.c6", 0x2000001, 0x800000, CRC(010a831b) SHA1(aec140661e3ae35d264df416478ba15188544d91) )
+ ROM_LOAD16_BYTE( "268-c7c.c7", 0x3000000, 0x800000, CRC(6d72a969) SHA1(968dd9a4d1209b770b9b85ea6532fa24d262a262) )
+ ROM_LOAD16_BYTE( "268-c8c.c8", 0x3000001, 0x800000, CRC(551d720e) SHA1(ebf69e334fcaba0fda6fd432fd0970283a365d12) )
+ROM_END
+
+ROM_START( mslug5s25 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "268hc25.p1", 0x000000, 0x100000, CRC(786c28bd) SHA1(cd1f1b9d7d19520017eabec5b388be81a0acb8bb) )
+ ROM_LOAD16_WORD_SWAP( "ms5-p2p.bin", 0x100000, 0x200000, CRC(d6a458e8) SHA1(c0a8bdae06d62859fb6734766ccc190eb2a809a4) )
+ ROM_LOAD16_WORD_SWAP( "ms5-p3p.bin", 0x300000, 0x200000, CRC(439ec031) SHA1(f0ad8f9be7d26bc504593c1321bd23c286a221f0) )
+
+ ROM_Y_ZOOM
+
+ ROM_REGION( 0x20000, "fixed", 0 )
+ ROM_LOAD("ms5-s1p.bin", 0x000000, 0x20000, CRC(21e04432) SHA1(10057a2aa487087f7143d1d69fdad978a6bef0f7) )
+ ROM_REGION( 0x20000, "fixedbios", 0 )
+ ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) )
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "268-m1.m1", CRC(4a5a6e0e) SHA1(df0f660f2465e1db7be5adfcaf5e88ad61a74a42) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+
+ ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) )
+ ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+
+ ROM_LOAD16_BYTE( "268-c1c.c1", 0x0000000, 0x800000, CRC(ab7c389a) SHA1(025a188de589500bf7637fa8e7a37ab24bf4312e) )
+ ROM_LOAD16_BYTE( "268-c2c.c2", 0x0000001, 0x800000, CRC(3560881b) SHA1(493d218c92290b4770024d6ee2917c4022753b07) )
+ ROM_LOAD16_BYTE( "268-c3c.c3", 0x1000000, 0x800000, CRC(3af955ea) SHA1(cf36b6ae9b0d12744b17cb7a928399214de894be) )
+ ROM_LOAD16_BYTE( "268-c4c.c4", 0x1000001, 0x800000, CRC(c329c373) SHA1(5073d4079958a0ef5426885af2c9e3178f37d5e0) )
+ ROM_LOAD16_BYTE( "268-c5c.c5", 0x2000000, 0x800000, CRC(959c8177) SHA1(889bda7c65d71172e7d89194d1269561888fe789) )
+ ROM_LOAD16_BYTE( "268-c6c.c6", 0x2000001, 0x800000, CRC(010a831b) SHA1(aec140661e3ae35d264df416478ba15188544d91) )
+ ROM_LOAD16_BYTE( "268-c7c.c7", 0x3000000, 0x800000, CRC(6d72a969) SHA1(968dd9a4d1209b770b9b85ea6532fa24d262a262) )
+ ROM_LOAD16_BYTE( "268-c8c.c8", 0x3000001, 0x800000, CRC(551d720e) SHA1(ebf69e334fcaba0fda6fd432fd0970283a365d12) )
+ROM_END
+
+ROM_START( mslug5s26 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "268hc26.p1", 0x000000, 0x100000, CRC(a2eb44d6) SHA1(9679b6a728fb18a1d7a9cbb132950876f47a67eb) )
+ ROM_LOAD16_WORD_SWAP( "ms5-p2p.bin", 0x100000, 0x200000, CRC(d6a458e8) SHA1(c0a8bdae06d62859fb6734766ccc190eb2a809a4) )
+ ROM_LOAD16_WORD_SWAP( "ms5-p3p.bin", 0x300000, 0x200000, CRC(439ec031) SHA1(f0ad8f9be7d26bc504593c1321bd23c286a221f0) )
+
+ ROM_Y_ZOOM
+
+ ROM_REGION( 0x20000, "fixed", 0 )
+ ROM_LOAD("ms5-s1p.bin", 0x000000, 0x20000, CRC(21e04432) SHA1(10057a2aa487087f7143d1d69fdad978a6bef0f7) )
+ ROM_REGION( 0x20000, "fixedbios", 0 )
+ ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) )
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "268-m1.m1", CRC(4a5a6e0e) SHA1(df0f660f2465e1db7be5adfcaf5e88ad61a74a42) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+
+ ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) )
+ ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+
+ ROM_LOAD16_BYTE( "268-c1c.c1", 0x0000000, 0x800000, CRC(ab7c389a) SHA1(025a188de589500bf7637fa8e7a37ab24bf4312e) )
+ ROM_LOAD16_BYTE( "268-c2c.c2", 0x0000001, 0x800000, CRC(3560881b) SHA1(493d218c92290b4770024d6ee2917c4022753b07) )
+ ROM_LOAD16_BYTE( "268-c3c.c3", 0x1000000, 0x800000, CRC(3af955ea) SHA1(cf36b6ae9b0d12744b17cb7a928399214de894be) )
+ ROM_LOAD16_BYTE( "268-c4c.c4", 0x1000001, 0x800000, CRC(c329c373) SHA1(5073d4079958a0ef5426885af2c9e3178f37d5e0) )
+ ROM_LOAD16_BYTE( "268-c5c.c5", 0x2000000, 0x800000, CRC(959c8177) SHA1(889bda7c65d71172e7d89194d1269561888fe789) )
+ ROM_LOAD16_BYTE( "268-c6c.c6", 0x2000001, 0x800000, CRC(010a831b) SHA1(aec140661e3ae35d264df416478ba15188544d91) )
+ ROM_LOAD16_BYTE( "268-c7c.c7", 0x3000000, 0x800000, CRC(6d72a969) SHA1(968dd9a4d1209b770b9b85ea6532fa24d262a262) )
+ ROM_LOAD16_BYTE( "268-c8c.c8", 0x3000001, 0x800000, CRC(551d720e) SHA1(ebf69e334fcaba0fda6fd432fd0970283a365d12) )
+ROM_END
+
+ROM_START( mslug5s27 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "268hc27.p1", 0x000000, 0x100000, CRC(eb699f0f) SHA1(a29ea0aa765cac6442bf0841aabaacede0d6bde2) )
+ ROM_LOAD16_WORD_SWAP( "ms5-p2p.bin", 0x100000, 0x200000, CRC(d6a458e8) SHA1(c0a8bdae06d62859fb6734766ccc190eb2a809a4) )
+ ROM_LOAD16_WORD_SWAP( "ms5-p3p.bin", 0x300000, 0x200000, CRC(439ec031) SHA1(f0ad8f9be7d26bc504593c1321bd23c286a221f0) )
+
+ ROM_Y_ZOOM
+
+ ROM_REGION( 0x20000, "fixed", 0 )
+ ROM_LOAD("ms5-s1p.bin", 0x000000, 0x20000, CRC(21e04432) SHA1(10057a2aa487087f7143d1d69fdad978a6bef0f7) )
+ ROM_REGION( 0x20000, "fixedbios", 0 )
+ ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) )
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "268-m1.m1", CRC(4a5a6e0e) SHA1(df0f660f2465e1db7be5adfcaf5e88ad61a74a42) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+
+ ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) )
+ ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+
+ ROM_LOAD16_BYTE( "268-c1c.c1", 0x0000000, 0x800000, CRC(ab7c389a) SHA1(025a188de589500bf7637fa8e7a37ab24bf4312e) )
+ ROM_LOAD16_BYTE( "268-c2c.c2", 0x0000001, 0x800000, CRC(3560881b) SHA1(493d218c92290b4770024d6ee2917c4022753b07) )
+ ROM_LOAD16_BYTE( "268-c3c.c3", 0x1000000, 0x800000, CRC(3af955ea) SHA1(cf36b6ae9b0d12744b17cb7a928399214de894be) )
+ ROM_LOAD16_BYTE( "268-c4c.c4", 0x1000001, 0x800000, CRC(c329c373) SHA1(5073d4079958a0ef5426885af2c9e3178f37d5e0) )
+ ROM_LOAD16_BYTE( "268-c5c.c5", 0x2000000, 0x800000, CRC(959c8177) SHA1(889bda7c65d71172e7d89194d1269561888fe789) )
+ ROM_LOAD16_BYTE( "268-c6c.c6", 0x2000001, 0x800000, CRC(010a831b) SHA1(aec140661e3ae35d264df416478ba15188544d91) )
+ ROM_LOAD16_BYTE( "268-c7c.c7", 0x3000000, 0x800000, CRC(6d72a969) SHA1(968dd9a4d1209b770b9b85ea6532fa24d262a262) )
+ ROM_LOAD16_BYTE( "268-c8c.c8", 0x3000001, 0x800000, CRC(551d720e) SHA1(ebf69e334fcaba0fda6fd432fd0970283a365d12) )
+ROM_END
+
+ROM_START( mslug5s28 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "268hc28.p1", 0x000000, 0x100000, CRC(31eef364) SHA1(c00ff68a4668a6f27f3d75e1625ac9ad120ccffe) )
+ ROM_LOAD16_WORD_SWAP( "ms5-p2p.bin", 0x100000, 0x200000, CRC(d6a458e8) SHA1(c0a8bdae06d62859fb6734766ccc190eb2a809a4) )
+ ROM_LOAD16_WORD_SWAP( "ms5-p3p.bin", 0x300000, 0x200000, CRC(439ec031) SHA1(f0ad8f9be7d26bc504593c1321bd23c286a221f0) )
+
+ ROM_Y_ZOOM
+
+ ROM_REGION( 0x20000, "fixed", 0 )
+ ROM_LOAD("ms5-s1p.bin", 0x000000, 0x20000, CRC(21e04432) SHA1(10057a2aa487087f7143d1d69fdad978a6bef0f7) )
+ ROM_REGION( 0x20000, "fixedbios", 0 )
+ ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) )
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "268-m1.m1", CRC(4a5a6e0e) SHA1(df0f660f2465e1db7be5adfcaf5e88ad61a74a42) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+
+ ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) )
+ ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+
+ ROM_LOAD16_BYTE( "268-c1c.c1", 0x0000000, 0x800000, CRC(ab7c389a) SHA1(025a188de589500bf7637fa8e7a37ab24bf4312e) )
+ ROM_LOAD16_BYTE( "268-c2c.c2", 0x0000001, 0x800000, CRC(3560881b) SHA1(493d218c92290b4770024d6ee2917c4022753b07) )
+ ROM_LOAD16_BYTE( "268-c3c.c3", 0x1000000, 0x800000, CRC(3af955ea) SHA1(cf36b6ae9b0d12744b17cb7a928399214de894be) )
+ ROM_LOAD16_BYTE( "268-c4c.c4", 0x1000001, 0x800000, CRC(c329c373) SHA1(5073d4079958a0ef5426885af2c9e3178f37d5e0) )
+ ROM_LOAD16_BYTE( "268-c5c.c5", 0x2000000, 0x800000, CRC(959c8177) SHA1(889bda7c65d71172e7d89194d1269561888fe789) )
+ ROM_LOAD16_BYTE( "268-c6c.c6", 0x2000001, 0x800000, CRC(010a831b) SHA1(aec140661e3ae35d264df416478ba15188544d91) )
+ ROM_LOAD16_BYTE( "268-c7c.c7", 0x3000000, 0x800000, CRC(6d72a969) SHA1(968dd9a4d1209b770b9b85ea6532fa24d262a262) )
+ ROM_LOAD16_BYTE( "268-c8c.c8", 0x3000001, 0x800000, CRC(551d720e) SHA1(ebf69e334fcaba0fda6fd432fd0970283a365d12) )
+ROM_END
+
+ROM_START( mslug5s29 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "268hc29.p1", 0x000000, 0x100000, CRC(37962221) SHA1(8196f1bd70f89c66575ca7973dcc816845bed519) )
+ ROM_LOAD16_WORD_SWAP( "ms5-p2p.bin", 0x100000, 0x200000, CRC(d6a458e8) SHA1(c0a8bdae06d62859fb6734766ccc190eb2a809a4) )
+ ROM_LOAD16_WORD_SWAP( "ms5-p3p.bin", 0x300000, 0x200000, CRC(439ec031) SHA1(f0ad8f9be7d26bc504593c1321bd23c286a221f0) )
+
+ ROM_Y_ZOOM
+
+ ROM_REGION( 0x20000, "fixed", 0 )
+ ROM_LOAD("ms5-s1p.bin", 0x000000, 0x20000, CRC(21e04432) SHA1(10057a2aa487087f7143d1d69fdad978a6bef0f7) )
+ ROM_REGION( 0x20000, "fixedbios", 0 )
+ ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) )
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "268-m1.m1", CRC(4a5a6e0e) SHA1(df0f660f2465e1db7be5adfcaf5e88ad61a74a42) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+
+ ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) )
+ ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+
+ ROM_LOAD16_BYTE( "268-c1c.c1", 0x0000000, 0x800000, CRC(ab7c389a) SHA1(025a188de589500bf7637fa8e7a37ab24bf4312e) )
+ ROM_LOAD16_BYTE( "268-c2c.c2", 0x0000001, 0x800000, CRC(3560881b) SHA1(493d218c92290b4770024d6ee2917c4022753b07) )
+ ROM_LOAD16_BYTE( "268-c3c.c3", 0x1000000, 0x800000, CRC(3af955ea) SHA1(cf36b6ae9b0d12744b17cb7a928399214de894be) )
+ ROM_LOAD16_BYTE( "268-c4c.c4", 0x1000001, 0x800000, CRC(c329c373) SHA1(5073d4079958a0ef5426885af2c9e3178f37d5e0) )
+ ROM_LOAD16_BYTE( "268-c5c.c5", 0x2000000, 0x800000, CRC(959c8177) SHA1(889bda7c65d71172e7d89194d1269561888fe789) )
+ ROM_LOAD16_BYTE( "268-c6c.c6", 0x2000001, 0x800000, CRC(010a831b) SHA1(aec140661e3ae35d264df416478ba15188544d91) )
+ ROM_LOAD16_BYTE( "268-c7c.c7", 0x3000000, 0x800000, CRC(6d72a969) SHA1(968dd9a4d1209b770b9b85ea6532fa24d262a262) )
+ ROM_LOAD16_BYTE( "268-c8c.c8", 0x3000001, 0x800000, CRC(551d720e) SHA1(ebf69e334fcaba0fda6fd432fd0970283a365d12) )
+ROM_END
+
+ROM_START( mslug5s30 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "268hc30.p1", 0x000000, 0x100000, CRC(c06538cb) SHA1(40bda06031242951442024d62b708807a7c30ca9) )
+ ROM_LOAD16_WORD_SWAP( "ms5-p2p.bin", 0x100000, 0x200000, CRC(d6a458e8) SHA1(c0a8bdae06d62859fb6734766ccc190eb2a809a4) )
+ ROM_LOAD16_WORD_SWAP( "ms5-p3p.bin", 0x300000, 0x200000, CRC(439ec031) SHA1(f0ad8f9be7d26bc504593c1321bd23c286a221f0) )
+
+ ROM_Y_ZOOM
+
+ ROM_REGION( 0x20000, "fixed", 0 )
+ ROM_LOAD("ms5-s1p.bin", 0x000000, 0x20000, CRC(21e04432) SHA1(10057a2aa487087f7143d1d69fdad978a6bef0f7) )
+ ROM_REGION( 0x20000, "fixedbios", 0 )
+ ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) )
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "268-m1.m1", CRC(4a5a6e0e) SHA1(df0f660f2465e1db7be5adfcaf5e88ad61a74a42) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+
+ ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) )
+ ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+
+ ROM_LOAD16_BYTE( "268-c1c.c1", 0x0000000, 0x800000, CRC(ab7c389a) SHA1(025a188de589500bf7637fa8e7a37ab24bf4312e) )
+ ROM_LOAD16_BYTE( "268-c2c.c2", 0x0000001, 0x800000, CRC(3560881b) SHA1(493d218c92290b4770024d6ee2917c4022753b07) )
+ ROM_LOAD16_BYTE( "268-c3c.c3", 0x1000000, 0x800000, CRC(3af955ea) SHA1(cf36b6ae9b0d12744b17cb7a928399214de894be) )
+ ROM_LOAD16_BYTE( "268-c4c.c4", 0x1000001, 0x800000, CRC(c329c373) SHA1(5073d4079958a0ef5426885af2c9e3178f37d5e0) )
+ ROM_LOAD16_BYTE( "268-c5c.c5", 0x2000000, 0x800000, CRC(959c8177) SHA1(889bda7c65d71172e7d89194d1269561888fe789) )
+ ROM_LOAD16_BYTE( "268-c6c.c6", 0x2000001, 0x800000, CRC(010a831b) SHA1(aec140661e3ae35d264df416478ba15188544d91) )
+ ROM_LOAD16_BYTE( "268-c7c.c7", 0x3000000, 0x800000, CRC(6d72a969) SHA1(968dd9a4d1209b770b9b85ea6532fa24d262a262) )
+ ROM_LOAD16_BYTE( "268-c8c.c8", 0x3000001, 0x800000, CRC(551d720e) SHA1(ebf69e334fcaba0fda6fd432fd0970283a365d12) )
+ROM_END
+
+ROM_START( mslug5s31 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "268hc31.p1", 0x000000, 0x100000, CRC(5f912df3) SHA1(2aadd2bdec57f3e44aa133ce7becda5793998e58) )
+ ROM_LOAD16_WORD_SWAP( "ms5-p2p.bin", 0x100000, 0x200000, CRC(d6a458e8) SHA1(c0a8bdae06d62859fb6734766ccc190eb2a809a4) )
+ ROM_LOAD16_WORD_SWAP( "ms5-p3p.bin", 0x300000, 0x200000, CRC(439ec031) SHA1(f0ad8f9be7d26bc504593c1321bd23c286a221f0) )
+
+ ROM_Y_ZOOM
+
+ ROM_REGION( 0x20000, "fixed", 0 )
+ ROM_LOAD("ms5-s1p.bin", 0x000000, 0x20000, CRC(21e04432) SHA1(10057a2aa487087f7143d1d69fdad978a6bef0f7) )
+ ROM_REGION( 0x20000, "fixedbios", 0 )
+ ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) )
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "268-m1.m1", CRC(4a5a6e0e) SHA1(df0f660f2465e1db7be5adfcaf5e88ad61a74a42) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+
+ ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) )
+ ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+
+ ROM_LOAD16_BYTE( "268-c1c.c1", 0x0000000, 0x800000, CRC(ab7c389a) SHA1(025a188de589500bf7637fa8e7a37ab24bf4312e) )
+ ROM_LOAD16_BYTE( "268-c2c.c2", 0x0000001, 0x800000, CRC(3560881b) SHA1(493d218c92290b4770024d6ee2917c4022753b07) )
+ ROM_LOAD16_BYTE( "268-c3c.c3", 0x1000000, 0x800000, CRC(3af955ea) SHA1(cf36b6ae9b0d12744b17cb7a928399214de894be) )
+ ROM_LOAD16_BYTE( "268-c4c.c4", 0x1000001, 0x800000, CRC(c329c373) SHA1(5073d4079958a0ef5426885af2c9e3178f37d5e0) )
+ ROM_LOAD16_BYTE( "268-c5c.c5", 0x2000000, 0x800000, CRC(959c8177) SHA1(889bda7c65d71172e7d89194d1269561888fe789) )
+ ROM_LOAD16_BYTE( "268-c6c.c6", 0x2000001, 0x800000, CRC(010a831b) SHA1(aec140661e3ae35d264df416478ba15188544d91) )
+ ROM_LOAD16_BYTE( "268-c7c.c7", 0x3000000, 0x800000, CRC(6d72a969) SHA1(968dd9a4d1209b770b9b85ea6532fa24d262a262) )
+ ROM_LOAD16_BYTE( "268-c8c.c8", 0x3000001, 0x800000, CRC(551d720e) SHA1(ebf69e334fcaba0fda6fd432fd0970283a365d12) )
+ROM_END
+
+ROM_START( mslug5s32 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "268hc32.p1", 0x000000, 0x100000, CRC(cc949a41) SHA1(197ed005717f746c56704f433b94182aa5883ba2) )
+ ROM_LOAD16_WORD_SWAP( "ms5-p2p.bin", 0x100000, 0x200000, CRC(d6a458e8) SHA1(c0a8bdae06d62859fb6734766ccc190eb2a809a4) )
+ ROM_LOAD16_WORD_SWAP( "ms5-p3p.bin", 0x300000, 0x200000, CRC(439ec031) SHA1(f0ad8f9be7d26bc504593c1321bd23c286a221f0) )
+
+ ROM_Y_ZOOM
+
+ ROM_REGION( 0x20000, "fixed", 0 )
+ ROM_LOAD("ms5-s1p.bin", 0x000000, 0x20000, CRC(21e04432) SHA1(10057a2aa487087f7143d1d69fdad978a6bef0f7) )
+ ROM_REGION( 0x20000, "fixedbios", 0 )
+ ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) )
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "268-m1.m1", CRC(4a5a6e0e) SHA1(df0f660f2465e1db7be5adfcaf5e88ad61a74a42) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+
+ ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) )
+ ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+
+ ROM_LOAD16_BYTE( "268-c1c.c1", 0x0000000, 0x800000, CRC(ab7c389a) SHA1(025a188de589500bf7637fa8e7a37ab24bf4312e) )
+ ROM_LOAD16_BYTE( "268-c2c.c2", 0x0000001, 0x800000, CRC(3560881b) SHA1(493d218c92290b4770024d6ee2917c4022753b07) )
+ ROM_LOAD16_BYTE( "268-c3c.c3", 0x1000000, 0x800000, CRC(3af955ea) SHA1(cf36b6ae9b0d12744b17cb7a928399214de894be) )
+ ROM_LOAD16_BYTE( "268-c4c.c4", 0x1000001, 0x800000, CRC(c329c373) SHA1(5073d4079958a0ef5426885af2c9e3178f37d5e0) )
+ ROM_LOAD16_BYTE( "268-c5c.c5", 0x2000000, 0x800000, CRC(959c8177) SHA1(889bda7c65d71172e7d89194d1269561888fe789) )
+ ROM_LOAD16_BYTE( "268-c6c.c6", 0x2000001, 0x800000, CRC(010a831b) SHA1(aec140661e3ae35d264df416478ba15188544d91) )
+ ROM_LOAD16_BYTE( "268-c7c.c7", 0x3000000, 0x800000, CRC(6d72a969) SHA1(968dd9a4d1209b770b9b85ea6532fa24d262a262) )
+ ROM_LOAD16_BYTE( "268-c8c.c8", 0x3000001, 0x800000, CRC(551d720e) SHA1(ebf69e334fcaba0fda6fd432fd0970283a365d12) )
+ROM_END
+
+ROM_START( mslug5s33 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "268hc33.p1", 0x000000, 0x100000, CRC(ed114e4a) SHA1(daf795427c3768f2d299135882c16a4f10cf6c1e) )
+ ROM_LOAD16_WORD_SWAP( "ms5-p2p.bin", 0x100000, 0x200000, CRC(d6a458e8) SHA1(c0a8bdae06d62859fb6734766ccc190eb2a809a4) )
+ ROM_LOAD16_WORD_SWAP( "ms5-p3p.bin", 0x300000, 0x200000, CRC(439ec031) SHA1(f0ad8f9be7d26bc504593c1321bd23c286a221f0) )
+
+ ROM_Y_ZOOM
+
+ ROM_REGION( 0x20000, "fixed", 0 )
+ ROM_LOAD("ms5-s1p.bin", 0x000000, 0x20000, CRC(21e04432) SHA1(10057a2aa487087f7143d1d69fdad978a6bef0f7) )
+ ROM_REGION( 0x20000, "fixedbios", 0 )
+ ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) )
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "268-m1.m1", CRC(4a5a6e0e) SHA1(df0f660f2465e1db7be5adfcaf5e88ad61a74a42) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+
+ ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) )
+ ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+
+ ROM_LOAD16_BYTE( "268-c1c.c1", 0x0000000, 0x800000, CRC(ab7c389a) SHA1(025a188de589500bf7637fa8e7a37ab24bf4312e) )
+ ROM_LOAD16_BYTE( "268-c2c.c2", 0x0000001, 0x800000, CRC(3560881b) SHA1(493d218c92290b4770024d6ee2917c4022753b07) )
+ ROM_LOAD16_BYTE( "268-c3c.c3", 0x1000000, 0x800000, CRC(3af955ea) SHA1(cf36b6ae9b0d12744b17cb7a928399214de894be) )
+ ROM_LOAD16_BYTE( "268-c4c.c4", 0x1000001, 0x800000, CRC(c329c373) SHA1(5073d4079958a0ef5426885af2c9e3178f37d5e0) )
+ ROM_LOAD16_BYTE( "268-c5c.c5", 0x2000000, 0x800000, CRC(959c8177) SHA1(889bda7c65d71172e7d89194d1269561888fe789) )
+ ROM_LOAD16_BYTE( "268-c6c.c6", 0x2000001, 0x800000, CRC(010a831b) SHA1(aec140661e3ae35d264df416478ba15188544d91) )
+ ROM_LOAD16_BYTE( "268-c7c.c7", 0x3000000, 0x800000, CRC(6d72a969) SHA1(968dd9a4d1209b770b9b85ea6532fa24d262a262) )
+ ROM_LOAD16_BYTE( "268-c8c.c8", 0x3000001, 0x800000, CRC(551d720e) SHA1(ebf69e334fcaba0fda6fd432fd0970283a365d12) )
+ROM_END
+
+ROM_START( mslug5s34 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "268hc34.p1", 0x000000, 0x100000, CRC(220438ab) SHA1(dcc2ae277c50a5f879b218abb6a5e838604a6108) )
+ ROM_LOAD16_WORD_SWAP( "ms5-p2p.bin", 0x100000, 0x200000, CRC(d6a458e8) SHA1(c0a8bdae06d62859fb6734766ccc190eb2a809a4) )
+ ROM_LOAD16_WORD_SWAP( "ms5-p3p.bin", 0x300000, 0x200000, CRC(439ec031) SHA1(f0ad8f9be7d26bc504593c1321bd23c286a221f0) )
+
+ ROM_Y_ZOOM
+
+ ROM_REGION( 0x20000, "fixed", 0 )
+ ROM_LOAD("ms5-s1p.bin", 0x000000, 0x20000, CRC(21e04432) SHA1(10057a2aa487087f7143d1d69fdad978a6bef0f7) )
+ ROM_REGION( 0x20000, "fixedbios", 0 )
+ ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) )
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "268-m1.m1", CRC(4a5a6e0e) SHA1(df0f660f2465e1db7be5adfcaf5e88ad61a74a42) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+
+ ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) )
+ ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+
+ ROM_LOAD16_BYTE( "268-c1c.c1", 0x0000000, 0x800000, CRC(ab7c389a) SHA1(025a188de589500bf7637fa8e7a37ab24bf4312e) )
+ ROM_LOAD16_BYTE( "268-c2c.c2", 0x0000001, 0x800000, CRC(3560881b) SHA1(493d218c92290b4770024d6ee2917c4022753b07) )
+ ROM_LOAD16_BYTE( "268-c3c.c3", 0x1000000, 0x800000, CRC(3af955ea) SHA1(cf36b6ae9b0d12744b17cb7a928399214de894be) )
+ ROM_LOAD16_BYTE( "268-c4c.c4", 0x1000001, 0x800000, CRC(c329c373) SHA1(5073d4079958a0ef5426885af2c9e3178f37d5e0) )
+ ROM_LOAD16_BYTE( "268-c5c.c5", 0x2000000, 0x800000, CRC(959c8177) SHA1(889bda7c65d71172e7d89194d1269561888fe789) )
+ ROM_LOAD16_BYTE( "268-c6c.c6", 0x2000001, 0x800000, CRC(010a831b) SHA1(aec140661e3ae35d264df416478ba15188544d91) )
+ ROM_LOAD16_BYTE( "268-c7c.c7", 0x3000000, 0x800000, CRC(6d72a969) SHA1(968dd9a4d1209b770b9b85ea6532fa24d262a262) )
+ ROM_LOAD16_BYTE( "268-c8c.c8", 0x3000001, 0x800000, CRC(551d720e) SHA1(ebf69e334fcaba0fda6fd432fd0970283a365d12) )
+ROM_END
+
+ROM_START( mslug5s35 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "268hc35.p1", 0x000000, 0x100000, CRC(c9650396) SHA1(48bbd31f18464d4675661f7e0d1ffe49a77cf1db) )
+ ROM_LOAD16_WORD_SWAP( "ms5-p2p.bin", 0x100000, 0x200000, CRC(d6a458e8) SHA1(c0a8bdae06d62859fb6734766ccc190eb2a809a4) )
+ ROM_LOAD16_WORD_SWAP( "ms5-p3p.bin", 0x300000, 0x200000, CRC(439ec031) SHA1(f0ad8f9be7d26bc504593c1321bd23c286a221f0) )
+
+ ROM_Y_ZOOM
+
+ ROM_REGION( 0x20000, "fixed", 0 )
+ ROM_LOAD("ms5-s1p.bin", 0x000000, 0x20000, CRC(21e04432) SHA1(10057a2aa487087f7143d1d69fdad978a6bef0f7) )
+ ROM_REGION( 0x20000, "fixedbios", 0 )
+ ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) )
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "268-m1.m1", CRC(4a5a6e0e) SHA1(df0f660f2465e1db7be5adfcaf5e88ad61a74a42) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+
+ ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) )
+ ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+
+ ROM_LOAD16_BYTE( "268-c1c.c1", 0x0000000, 0x800000, CRC(ab7c389a) SHA1(025a188de589500bf7637fa8e7a37ab24bf4312e) )
+ ROM_LOAD16_BYTE( "268-c2c.c2", 0x0000001, 0x800000, CRC(3560881b) SHA1(493d218c92290b4770024d6ee2917c4022753b07) )
+ ROM_LOAD16_BYTE( "268-c3c.c3", 0x1000000, 0x800000, CRC(3af955ea) SHA1(cf36b6ae9b0d12744b17cb7a928399214de894be) )
+ ROM_LOAD16_BYTE( "268-c4c.c4", 0x1000001, 0x800000, CRC(c329c373) SHA1(5073d4079958a0ef5426885af2c9e3178f37d5e0) )
+ ROM_LOAD16_BYTE( "268-c5c.c5", 0x2000000, 0x800000, CRC(959c8177) SHA1(889bda7c65d71172e7d89194d1269561888fe789) )
+ ROM_LOAD16_BYTE( "268-c6c.c6", 0x2000001, 0x800000, CRC(010a831b) SHA1(aec140661e3ae35d264df416478ba15188544d91) )
+ ROM_LOAD16_BYTE( "268-c7c.c7", 0x3000000, 0x800000, CRC(6d72a969) SHA1(968dd9a4d1209b770b9b85ea6532fa24d262a262) )
+ ROM_LOAD16_BYTE( "268-c8c.c8", 0x3000001, 0x800000, CRC(551d720e) SHA1(ebf69e334fcaba0fda6fd432fd0970283a365d12) )
+ROM_END
+
+ROM_START( mslug5s36 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "268hc36.p1", 0x000000, 0x100000, CRC(a4939593) SHA1(85ed00cb8f5df730ebb946cca3d67c0058c184e7) )
+ ROM_LOAD16_WORD_SWAP( "ms5-p2p.bin", 0x100000, 0x200000, CRC(d6a458e8) SHA1(c0a8bdae06d62859fb6734766ccc190eb2a809a4) )
+ ROM_LOAD16_WORD_SWAP( "ms5-p3p.bin", 0x300000, 0x200000, CRC(439ec031) SHA1(f0ad8f9be7d26bc504593c1321bd23c286a221f0) )
+
+ ROM_Y_ZOOM
+
+ ROM_REGION( 0x20000, "fixed", 0 )
+ ROM_LOAD("ms5-s1p.bin", 0x000000, 0x20000, CRC(21e04432) SHA1(10057a2aa487087f7143d1d69fdad978a6bef0f7) )
+ ROM_REGION( 0x20000, "fixedbios", 0 )
+ ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) )
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "268-m1.m1", CRC(4a5a6e0e) SHA1(df0f660f2465e1db7be5adfcaf5e88ad61a74a42) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+
+ ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) )
+ ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+
+ ROM_LOAD16_BYTE( "268-c1c.c1", 0x0000000, 0x800000, CRC(ab7c389a) SHA1(025a188de589500bf7637fa8e7a37ab24bf4312e) )
+ ROM_LOAD16_BYTE( "268-c2c.c2", 0x0000001, 0x800000, CRC(3560881b) SHA1(493d218c92290b4770024d6ee2917c4022753b07) )
+ ROM_LOAD16_BYTE( "268-c3c.c3", 0x1000000, 0x800000, CRC(3af955ea) SHA1(cf36b6ae9b0d12744b17cb7a928399214de894be) )
+ ROM_LOAD16_BYTE( "268-c4c.c4", 0x1000001, 0x800000, CRC(c329c373) SHA1(5073d4079958a0ef5426885af2c9e3178f37d5e0) )
+ ROM_LOAD16_BYTE( "268-c5c.c5", 0x2000000, 0x800000, CRC(959c8177) SHA1(889bda7c65d71172e7d89194d1269561888fe789) )
+ ROM_LOAD16_BYTE( "268-c6c.c6", 0x2000001, 0x800000, CRC(010a831b) SHA1(aec140661e3ae35d264df416478ba15188544d91) )
+ ROM_LOAD16_BYTE( "268-c7c.c7", 0x3000000, 0x800000, CRC(6d72a969) SHA1(968dd9a4d1209b770b9b85ea6532fa24d262a262) )
+ ROM_LOAD16_BYTE( "268-c8c.c8", 0x3000001, 0x800000, CRC(551d720e) SHA1(ebf69e334fcaba0fda6fd432fd0970283a365d12) )
+ROM_END
+
+ROM_START( mslug5s37 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "268hc37.p1", 0x000000, 0x100000, CRC(85164198) SHA1(36307cd66c91b5322713487cb1cfde00ee869034) )
+ ROM_LOAD16_WORD_SWAP( "ms5-p2p.bin", 0x100000, 0x200000, CRC(d6a458e8) SHA1(c0a8bdae06d62859fb6734766ccc190eb2a809a4) )
+ ROM_LOAD16_WORD_SWAP( "ms5-p3p.bin", 0x300000, 0x200000, CRC(439ec031) SHA1(f0ad8f9be7d26bc504593c1321bd23c286a221f0) )
+
+ ROM_Y_ZOOM
+
+ ROM_REGION( 0x20000, "fixed", 0 )
+ ROM_LOAD("ms5-s1p.bin", 0x000000, 0x20000, CRC(21e04432) SHA1(10057a2aa487087f7143d1d69fdad978a6bef0f7) )
+ ROM_REGION( 0x20000, "fixedbios", 0 )
+ ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) )
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "268-m1.m1", CRC(4a5a6e0e) SHA1(df0f660f2465e1db7be5adfcaf5e88ad61a74a42) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+
+ ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) )
+ ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+
+ ROM_LOAD16_BYTE( "268-c1c.c1", 0x0000000, 0x800000, CRC(ab7c389a) SHA1(025a188de589500bf7637fa8e7a37ab24bf4312e) )
+ ROM_LOAD16_BYTE( "268-c2c.c2", 0x0000001, 0x800000, CRC(3560881b) SHA1(493d218c92290b4770024d6ee2917c4022753b07) )
+ ROM_LOAD16_BYTE( "268-c3c.c3", 0x1000000, 0x800000, CRC(3af955ea) SHA1(cf36b6ae9b0d12744b17cb7a928399214de894be) )
+ ROM_LOAD16_BYTE( "268-c4c.c4", 0x1000001, 0x800000, CRC(c329c373) SHA1(5073d4079958a0ef5426885af2c9e3178f37d5e0) )
+ ROM_LOAD16_BYTE( "268-c5c.c5", 0x2000000, 0x800000, CRC(959c8177) SHA1(889bda7c65d71172e7d89194d1269561888fe789) )
+ ROM_LOAD16_BYTE( "268-c6c.c6", 0x2000001, 0x800000, CRC(010a831b) SHA1(aec140661e3ae35d264df416478ba15188544d91) )
+ ROM_LOAD16_BYTE( "268-c7c.c7", 0x3000000, 0x800000, CRC(6d72a969) SHA1(968dd9a4d1209b770b9b85ea6532fa24d262a262) )
+ ROM_LOAD16_BYTE( "268-c8c.c8", 0x3000001, 0x800000, CRC(551d720e) SHA1(ebf69e334fcaba0fda6fd432fd0970283a365d12) )
+ROM_END
+
+ROM_START( mslug5s38 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "268hc38.p1", 0x000000, 0x100000, CRC(7e14f9f8) SHA1(a7ab3c8e371dbb89557e2edf09e1ca2dacc01921) )
+ ROM_LOAD16_WORD_SWAP( "ms5-p2p.bin", 0x100000, 0x200000, CRC(d6a458e8) SHA1(c0a8bdae06d62859fb6734766ccc190eb2a809a4) )
+ ROM_LOAD16_WORD_SWAP( "ms5-p3p.bin", 0x300000, 0x200000, CRC(439ec031) SHA1(f0ad8f9be7d26bc504593c1321bd23c286a221f0) )
+
+ ROM_Y_ZOOM
+
+ ROM_REGION( 0x20000, "fixed", 0 )
+ ROM_LOAD("ms5-s1p.bin", 0x000000, 0x20000, CRC(21e04432) SHA1(10057a2aa487087f7143d1d69fdad978a6bef0f7) )
+ ROM_REGION( 0x20000, "fixedbios", 0 )
+ ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) )
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "268-m1.m1", CRC(4a5a6e0e) SHA1(df0f660f2465e1db7be5adfcaf5e88ad61a74a42) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+
+ ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) )
+ ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+
+ ROM_LOAD16_BYTE( "268-c1c.c1", 0x0000000, 0x800000, CRC(ab7c389a) SHA1(025a188de589500bf7637fa8e7a37ab24bf4312e) )
+ ROM_LOAD16_BYTE( "268-c2c.c2", 0x0000001, 0x800000, CRC(3560881b) SHA1(493d218c92290b4770024d6ee2917c4022753b07) )
+ ROM_LOAD16_BYTE( "268-c3c.c3", 0x1000000, 0x800000, CRC(3af955ea) SHA1(cf36b6ae9b0d12744b17cb7a928399214de894be) )
+ ROM_LOAD16_BYTE( "268-c4c.c4", 0x1000001, 0x800000, CRC(c329c373) SHA1(5073d4079958a0ef5426885af2c9e3178f37d5e0) )
+ ROM_LOAD16_BYTE( "268-c5c.c5", 0x2000000, 0x800000, CRC(959c8177) SHA1(889bda7c65d71172e7d89194d1269561888fe789) )
+ ROM_LOAD16_BYTE( "268-c6c.c6", 0x2000001, 0x800000, CRC(010a831b) SHA1(aec140661e3ae35d264df416478ba15188544d91) )
+ ROM_LOAD16_BYTE( "268-c7c.c7", 0x3000000, 0x800000, CRC(6d72a969) SHA1(968dd9a4d1209b770b9b85ea6532fa24d262a262) )
+ ROM_LOAD16_BYTE( "268-c8c.c8", 0x3000001, 0x800000, CRC(551d720e) SHA1(ebf69e334fcaba0fda6fd432fd0970283a365d12) )
+ROM_END
+
+ROM_START( mslug5s39 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "268hc39.p1", 0x000000, 0x100000, CRC(4b3b9c77) SHA1(122c50758b8bee06477a3afb30f11dbb108f220e) )
+ ROM_LOAD16_WORD_SWAP( "ms5-p2p.bin", 0x100000, 0x200000, CRC(d6a458e8) SHA1(c0a8bdae06d62859fb6734766ccc190eb2a809a4) )
+ ROM_LOAD16_WORD_SWAP( "ms5-p3p.bin", 0x300000, 0x200000, CRC(439ec031) SHA1(f0ad8f9be7d26bc504593c1321bd23c286a221f0) )
+
+ ROM_Y_ZOOM
+
+ ROM_REGION( 0x20000, "fixed", 0 )
+ ROM_LOAD("ms5-s1p.bin", 0x000000, 0x20000, CRC(21e04432) SHA1(10057a2aa487087f7143d1d69fdad978a6bef0f7) )
+ ROM_REGION( 0x20000, "fixedbios", 0 )
+ ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) )
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "268-m1.m1", CRC(4a5a6e0e) SHA1(df0f660f2465e1db7be5adfcaf5e88ad61a74a42) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+
+ ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) )
+ ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+
+ ROM_LOAD16_BYTE( "268-c1c.c1", 0x0000000, 0x800000, CRC(ab7c389a) SHA1(025a188de589500bf7637fa8e7a37ab24bf4312e) )
+ ROM_LOAD16_BYTE( "268-c2c.c2", 0x0000001, 0x800000, CRC(3560881b) SHA1(493d218c92290b4770024d6ee2917c4022753b07) )
+ ROM_LOAD16_BYTE( "268-c3c.c3", 0x1000000, 0x800000, CRC(3af955ea) SHA1(cf36b6ae9b0d12744b17cb7a928399214de894be) )
+ ROM_LOAD16_BYTE( "268-c4c.c4", 0x1000001, 0x800000, CRC(c329c373) SHA1(5073d4079958a0ef5426885af2c9e3178f37d5e0) )
+ ROM_LOAD16_BYTE( "268-c5c.c5", 0x2000000, 0x800000, CRC(959c8177) SHA1(889bda7c65d71172e7d89194d1269561888fe789) )
+ ROM_LOAD16_BYTE( "268-c6c.c6", 0x2000001, 0x800000, CRC(010a831b) SHA1(aec140661e3ae35d264df416478ba15188544d91) )
+ ROM_LOAD16_BYTE( "268-c7c.c7", 0x3000000, 0x800000, CRC(6d72a969) SHA1(968dd9a4d1209b770b9b85ea6532fa24d262a262) )
+ ROM_LOAD16_BYTE( "268-c8c.c8", 0x3000001, 0x800000, CRC(551d720e) SHA1(ebf69e334fcaba0fda6fd432fd0970283a365d12) )
+ROM_END
+
+ROM_START( mslug5s40 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "268hc40.p1", 0x000000, 0x100000, CRC(caec4b04) SHA1(95dd986cdb4770887613d02d798b3969493498ea) )
+ ROM_LOAD16_WORD_SWAP( "ms5-p2p.bin", 0x100000, 0x200000, CRC(d6a458e8) SHA1(c0a8bdae06d62859fb6734766ccc190eb2a809a4) )
+ ROM_LOAD16_WORD_SWAP( "ms5-p3p.bin", 0x300000, 0x200000, CRC(439ec031) SHA1(f0ad8f9be7d26bc504593c1321bd23c286a221f0) )
+
+ ROM_Y_ZOOM
+
+ ROM_REGION( 0x20000, "fixed", 0 )
+ ROM_LOAD("ms5-s1p.bin", 0x000000, 0x20000, CRC(21e04432) SHA1(10057a2aa487087f7143d1d69fdad978a6bef0f7) )
+ ROM_REGION( 0x20000, "fixedbios", 0 )
+ ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) )
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "268-m1.m1", CRC(4a5a6e0e) SHA1(df0f660f2465e1db7be5adfcaf5e88ad61a74a42) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+
+ ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) )
+ ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+
+ ROM_LOAD16_BYTE( "268-c1c.c1", 0x0000000, 0x800000, CRC(ab7c389a) SHA1(025a188de589500bf7637fa8e7a37ab24bf4312e) )
+ ROM_LOAD16_BYTE( "268-c2c.c2", 0x0000001, 0x800000, CRC(3560881b) SHA1(493d218c92290b4770024d6ee2917c4022753b07) )
+ ROM_LOAD16_BYTE( "268-c3c.c3", 0x1000000, 0x800000, CRC(3af955ea) SHA1(cf36b6ae9b0d12744b17cb7a928399214de894be) )
+ ROM_LOAD16_BYTE( "268-c4c.c4", 0x1000001, 0x800000, CRC(c329c373) SHA1(5073d4079958a0ef5426885af2c9e3178f37d5e0) )
+ ROM_LOAD16_BYTE( "268-c5c.c5", 0x2000000, 0x800000, CRC(959c8177) SHA1(889bda7c65d71172e7d89194d1269561888fe789) )
+ ROM_LOAD16_BYTE( "268-c6c.c6", 0x2000001, 0x800000, CRC(010a831b) SHA1(aec140661e3ae35d264df416478ba15188544d91) )
+ ROM_LOAD16_BYTE( "268-c7c.c7", 0x3000000, 0x800000, CRC(6d72a969) SHA1(968dd9a4d1209b770b9b85ea6532fa24d262a262) )
+ ROM_LOAD16_BYTE( "268-c8c.c8", 0x3000001, 0x800000, CRC(551d720e) SHA1(ebf69e334fcaba0fda6fd432fd0970283a365d12) )
+ROM_END
+
+ROM_START( mslug5s41 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "268hc41.p1", 0x000000, 0x100000, CRC(836e90dd) SHA1(2307ead38b83745064f856ef841a357b7d764fb7) )
+ ROM_LOAD16_WORD_SWAP( "ms5-p2p.bin", 0x100000, 0x200000, CRC(d6a458e8) SHA1(c0a8bdae06d62859fb6734766ccc190eb2a809a4) )
+ ROM_LOAD16_WORD_SWAP( "ms5-p3p.bin", 0x300000, 0x200000, CRC(439ec031) SHA1(f0ad8f9be7d26bc504593c1321bd23c286a221f0) )
+
+ ROM_Y_ZOOM
+
+ ROM_REGION( 0x20000, "fixed", 0 )
+ ROM_LOAD("ms5-s1p.bin", 0x000000, 0x20000, CRC(21e04432) SHA1(10057a2aa487087f7143d1d69fdad978a6bef0f7) )
+ ROM_REGION( 0x20000, "fixedbios", 0 )
+ ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) )
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "268-m1.m1", CRC(4a5a6e0e) SHA1(df0f660f2465e1db7be5adfcaf5e88ad61a74a42) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+
+ ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) )
+ ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+
+ ROM_LOAD16_BYTE( "268-c1c.c1", 0x0000000, 0x800000, CRC(ab7c389a) SHA1(025a188de589500bf7637fa8e7a37ab24bf4312e) )
+ ROM_LOAD16_BYTE( "268-c2c.c2", 0x0000001, 0x800000, CRC(3560881b) SHA1(493d218c92290b4770024d6ee2917c4022753b07) )
+ ROM_LOAD16_BYTE( "268-c3c.c3", 0x1000000, 0x800000, CRC(3af955ea) SHA1(cf36b6ae9b0d12744b17cb7a928399214de894be) )
+ ROM_LOAD16_BYTE( "268-c4c.c4", 0x1000001, 0x800000, CRC(c329c373) SHA1(5073d4079958a0ef5426885af2c9e3178f37d5e0) )
+ ROM_LOAD16_BYTE( "268-c5c.c5", 0x2000000, 0x800000, CRC(959c8177) SHA1(889bda7c65d71172e7d89194d1269561888fe789) )
+ ROM_LOAD16_BYTE( "268-c6c.c6", 0x2000001, 0x800000, CRC(010a831b) SHA1(aec140661e3ae35d264df416478ba15188544d91) )
+ ROM_LOAD16_BYTE( "268-c7c.c7", 0x3000000, 0x800000, CRC(6d72a969) SHA1(968dd9a4d1209b770b9b85ea6532fa24d262a262) )
+ ROM_LOAD16_BYTE( "268-c8c.c8", 0x3000001, 0x800000, CRC(551d720e) SHA1(ebf69e334fcaba0fda6fd432fd0970283a365d12) )
+ROM_END
+
+ROM_START( mslug5s42 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "268hc42.p1", 0x000000, 0x100000, CRC(1613f62a) SHA1(b58b4c4afa179b66d308905f4eb82dca6552551e) )
+ ROM_LOAD16_WORD_SWAP( "ms5-p2p.bin", 0x100000, 0x200000, CRC(d6a458e8) SHA1(c0a8bdae06d62859fb6734766ccc190eb2a809a4) )
+ ROM_LOAD16_WORD_SWAP( "ms5-p3p.bin", 0x300000, 0x200000, CRC(439ec031) SHA1(f0ad8f9be7d26bc504593c1321bd23c286a221f0) )
+
+ ROM_Y_ZOOM
+
+ ROM_REGION( 0x20000, "fixed", 0 )
+ ROM_LOAD("ms5-s1p.bin", 0x000000, 0x20000, CRC(21e04432) SHA1(10057a2aa487087f7143d1d69fdad978a6bef0f7) )
+ ROM_REGION( 0x20000, "fixedbios", 0 )
+ ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) )
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "268-m1.m1", CRC(4a5a6e0e) SHA1(df0f660f2465e1db7be5adfcaf5e88ad61a74a42) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+
+ ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) )
+ ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+
+ ROM_LOAD16_BYTE( "268-c1c.c1", 0x0000000, 0x800000, CRC(ab7c389a) SHA1(025a188de589500bf7637fa8e7a37ab24bf4312e) )
+ ROM_LOAD16_BYTE( "268-c2c.c2", 0x0000001, 0x800000, CRC(3560881b) SHA1(493d218c92290b4770024d6ee2917c4022753b07) )
+ ROM_LOAD16_BYTE( "268-c3c.c3", 0x1000000, 0x800000, CRC(3af955ea) SHA1(cf36b6ae9b0d12744b17cb7a928399214de894be) )
+ ROM_LOAD16_BYTE( "268-c4c.c4", 0x1000001, 0x800000, CRC(c329c373) SHA1(5073d4079958a0ef5426885af2c9e3178f37d5e0) )
+ ROM_LOAD16_BYTE( "268-c5c.c5", 0x2000000, 0x800000, CRC(959c8177) SHA1(889bda7c65d71172e7d89194d1269561888fe789) )
+ ROM_LOAD16_BYTE( "268-c6c.c6", 0x2000001, 0x800000, CRC(010a831b) SHA1(aec140661e3ae35d264df416478ba15188544d91) )
+ ROM_LOAD16_BYTE( "268-c7c.c7", 0x3000000, 0x800000, CRC(6d72a969) SHA1(968dd9a4d1209b770b9b85ea6532fa24d262a262) )
+ ROM_LOAD16_BYTE( "268-c8c.c8", 0x3000001, 0x800000, CRC(551d720e) SHA1(ebf69e334fcaba0fda6fd432fd0970283a365d12) )
+ROM_END
+
+ROM_START( mslug5s43 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "268hc43.p1", 0x000000, 0x100000, CRC(850e3028) SHA1(8a26549b667bf5e81e8a560d87cac305ee63d1b6) )
+ ROM_LOAD16_WORD_SWAP( "ms5-p2p.bin", 0x100000, 0x200000, CRC(d6a458e8) SHA1(c0a8bdae06d62859fb6734766ccc190eb2a809a4) )
+ ROM_LOAD16_WORD_SWAP( "ms5-p3p.bin", 0x300000, 0x200000, CRC(439ec031) SHA1(f0ad8f9be7d26bc504593c1321bd23c286a221f0) )
+
+ ROM_Y_ZOOM
+
+ ROM_REGION( 0x20000, "fixed", 0 )
+ ROM_LOAD("ms5-s1p.bin", 0x000000, 0x20000, CRC(21e04432) SHA1(10057a2aa487087f7143d1d69fdad978a6bef0f7) )
+ ROM_REGION( 0x20000, "fixedbios", 0 )
+ ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) )
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "268-m1.m1", CRC(4a5a6e0e) SHA1(df0f660f2465e1db7be5adfcaf5e88ad61a74a42) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+
+ ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) )
+ ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+
+ ROM_LOAD16_BYTE( "268-c1c.c1", 0x0000000, 0x800000, CRC(ab7c389a) SHA1(025a188de589500bf7637fa8e7a37ab24bf4312e) )
+ ROM_LOAD16_BYTE( "268-c2c.c2", 0x0000001, 0x800000, CRC(3560881b) SHA1(493d218c92290b4770024d6ee2917c4022753b07) )
+ ROM_LOAD16_BYTE( "268-c3c.c3", 0x1000000, 0x800000, CRC(3af955ea) SHA1(cf36b6ae9b0d12744b17cb7a928399214de894be) )
+ ROM_LOAD16_BYTE( "268-c4c.c4", 0x1000001, 0x800000, CRC(c329c373) SHA1(5073d4079958a0ef5426885af2c9e3178f37d5e0) )
+ ROM_LOAD16_BYTE( "268-c5c.c5", 0x2000000, 0x800000, CRC(959c8177) SHA1(889bda7c65d71172e7d89194d1269561888fe789) )
+ ROM_LOAD16_BYTE( "268-c6c.c6", 0x2000001, 0x800000, CRC(010a831b) SHA1(aec140661e3ae35d264df416478ba15188544d91) )
+ ROM_LOAD16_BYTE( "268-c7c.c7", 0x3000000, 0x800000, CRC(6d72a969) SHA1(968dd9a4d1209b770b9b85ea6532fa24d262a262) )
+ ROM_LOAD16_BYTE( "268-c8c.c8", 0x3000001, 0x800000, CRC(551d720e) SHA1(ebf69e334fcaba0fda6fd432fd0970283a365d12) )
+ROM_END
+
+ROM_START( mslug5s44 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "268hc44.p1", 0x000000, 0x100000, CRC(240b7005) SHA1(c640586b8f8133b85e0543e56df2c3f2ff3c8196) )
+ ROM_LOAD16_WORD_SWAP( "ms5-p2p.bin", 0x100000, 0x200000, CRC(d6a458e8) SHA1(c0a8bdae06d62859fb6734766ccc190eb2a809a4) )
+ ROM_LOAD16_WORD_SWAP( "ms5-p3p.bin", 0x300000, 0x200000, CRC(439ec031) SHA1(f0ad8f9be7d26bc504593c1321bd23c286a221f0) )
+
+ ROM_Y_ZOOM
+
+ ROM_REGION( 0x20000, "fixed", 0 )
+ ROM_LOAD("ms5-s1p.bin", 0x000000, 0x20000, CRC(21e04432) SHA1(10057a2aa487087f7143d1d69fdad978a6bef0f7) )
+ ROM_REGION( 0x20000, "fixedbios", 0 )
+ ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) )
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "268-m1.m1", CRC(4a5a6e0e) SHA1(df0f660f2465e1db7be5adfcaf5e88ad61a74a42) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+
+ ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) )
+ ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+
+ ROM_LOAD16_BYTE( "268-c1c.c1", 0x0000000, 0x800000, CRC(ab7c389a) SHA1(025a188de589500bf7637fa8e7a37ab24bf4312e) )
+ ROM_LOAD16_BYTE( "268-c2c.c2", 0x0000001, 0x800000, CRC(3560881b) SHA1(493d218c92290b4770024d6ee2917c4022753b07) )
+ ROM_LOAD16_BYTE( "268-c3c.c3", 0x1000000, 0x800000, CRC(3af955ea) SHA1(cf36b6ae9b0d12744b17cb7a928399214de894be) )
+ ROM_LOAD16_BYTE( "268-c4c.c4", 0x1000001, 0x800000, CRC(c329c373) SHA1(5073d4079958a0ef5426885af2c9e3178f37d5e0) )
+ ROM_LOAD16_BYTE( "268-c5c.c5", 0x2000000, 0x800000, CRC(959c8177) SHA1(889bda7c65d71172e7d89194d1269561888fe789) )
+ ROM_LOAD16_BYTE( "268-c6c.c6", 0x2000001, 0x800000, CRC(010a831b) SHA1(aec140661e3ae35d264df416478ba15188544d91) )
+ ROM_LOAD16_BYTE( "268-c7c.c7", 0x3000000, 0x800000, CRC(6d72a969) SHA1(968dd9a4d1209b770b9b85ea6532fa24d262a262) )
+ ROM_LOAD16_BYTE( "268-c8c.c8", 0x3000001, 0x800000, CRC(551d720e) SHA1(ebf69e334fcaba0fda6fd432fd0970283a365d12) )
+ROM_END
+
+ROM_START( mslug5s45 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "268hc45.p1", 0x000000, 0x100000, CRC(5302b38c) SHA1(5c0ed1056f0f3f4f223fc08155d4faec9d3d412b) )
+ ROM_LOAD16_WORD_SWAP( "ms5-p2p.bin", 0x100000, 0x200000, CRC(d6a458e8) SHA1(c0a8bdae06d62859fb6734766ccc190eb2a809a4) )
+ ROM_LOAD16_WORD_SWAP( "ms5-p3p.bin", 0x300000, 0x200000, CRC(439ec031) SHA1(f0ad8f9be7d26bc504593c1321bd23c286a221f0) )
+
+ ROM_Y_ZOOM
+
+ ROM_REGION( 0x20000, "fixed", 0 )
+ ROM_LOAD("ms5-s1p.bin", 0x000000, 0x20000, CRC(21e04432) SHA1(10057a2aa487087f7143d1d69fdad978a6bef0f7) )
+ ROM_REGION( 0x20000, "fixedbios", 0 )
+ ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) )
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "268-m1.m1", CRC(4a5a6e0e) SHA1(df0f660f2465e1db7be5adfcaf5e88ad61a74a42) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+
+ ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) )
+ ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+
+ ROM_LOAD16_BYTE( "268-c1c.c1", 0x0000000, 0x800000, CRC(ab7c389a) SHA1(025a188de589500bf7637fa8e7a37ab24bf4312e) )
+ ROM_LOAD16_BYTE( "268-c2c.c2", 0x0000001, 0x800000, CRC(3560881b) SHA1(493d218c92290b4770024d6ee2917c4022753b07) )
+ ROM_LOAD16_BYTE( "268-c3c.c3", 0x1000000, 0x800000, CRC(3af955ea) SHA1(cf36b6ae9b0d12744b17cb7a928399214de894be) )
+ ROM_LOAD16_BYTE( "268-c4c.c4", 0x1000001, 0x800000, CRC(c329c373) SHA1(5073d4079958a0ef5426885af2c9e3178f37d5e0) )
+ ROM_LOAD16_BYTE( "268-c5c.c5", 0x2000000, 0x800000, CRC(959c8177) SHA1(889bda7c65d71172e7d89194d1269561888fe789) )
+ ROM_LOAD16_BYTE( "268-c6c.c6", 0x2000001, 0x800000, CRC(010a831b) SHA1(aec140661e3ae35d264df416478ba15188544d91) )
+ ROM_LOAD16_BYTE( "268-c7c.c7", 0x3000000, 0x800000, CRC(6d72a969) SHA1(968dd9a4d1209b770b9b85ea6532fa24d262a262) )
+ ROM_LOAD16_BYTE( "268-c8c.c8", 0x3000001, 0x800000, CRC(551d720e) SHA1(ebf69e334fcaba0fda6fd432fd0970283a365d12) )
+ROM_END
+
+
+/*************************************
+ *
+ * Game driver(s)
+ *
+ *************************************/
+// Proyecto Shadows Mame Build Plus
+/* YEAR NAME PARENT MACHINE INPUT INIT MONITOR COMPANY FULLNAME FLAGS */
+// Metal Slug
+GAME( 2016, mslugs01, mslug, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Metal Slug (99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslugs02, mslug, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Metal Slug (Start Special Weapons Heavy Machine Gun)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslugs03, mslug, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Metal Slug (No Lose Prisioner)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslugs04, mslug, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Metal Slug (Start Handgun)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslugs05, mslug, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Metal Slug (Start Special Weapons Flame Shot)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslugs06, mslug, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Metal Slug (Start Special Weapons Rocket Launcher)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslugs07, mslug, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Metal Slug (Start Special Weapons Flame Shot Alternative Set)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslugs08, mslug, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Metal Slug (Start Special Weapons Shotgun)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslugs09, mslug, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Metal Slug (Hack Roms Collection Set 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslugs10, mslug, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Metal Slug (Super Plus)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslugs11, mslug, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Metal Slug (Super Plus XXX)", MACHINE_SUPPORTS_SAVE )
+// Metal Slug 2
+GAME( 2016, mslug2s01, mslug2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Metal Slug 2 (Very Hard Enemy Plate)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslug2s02, mslug2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Metal Slug 2 (Tank Version Of The Gun)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslug2s03, mslug2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Metal Slug 2 (Start Special Weapons Flame Shot)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslug2s04, mslug2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Metal Slug 2 (Start Special Weapons Heavy Machine Gun)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslug2s05, mslug2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Metal Slug 2 (Start Special Weapons Laser Gun)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslug2s06, mslug2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Metal Slug 2 (Start Special Weapons Rocket Launcher)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslug2s07, mslug2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Metal Slug 2 (Start Special Weapons Shotgun)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslug2s08, mslug2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Metal Slug 2 (NEO ARC French Traduction Set)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslug2s09, mslug2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Metal Slug 2 (Hack Roms Collection Set 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslug2s10, mslug2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Metal Slug 2 (Start Handgun Alternative Set)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslug2s11, mslug2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Metal Slug 2 (Start Fire Bomb)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslug2s12, mslug2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Metal Slug 2 (Start 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslug2s13, mslug2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Metal Slug 2 (Start Handgun)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslug2s14, mslug2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Metal Slug 2 (Start Special Weapons Laser Gun Alternative Set)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslug2s15, mslug2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Metal Slug 2 (Ward Charior)", MACHINE_SUPPORTS_SAVE )
+// Metal Slug X
+GAME( 2017, mslugxs01, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Checkpoints Enemy Bullets Enhanced Remake + NEO ARC French Traduction Set 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxs02, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Checkpoints Enemy Bullets Enhanced Remake + NEO ARC French Traduction Set 02)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxs03, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Checkpoints Enemy Bullets Enhanced Remake + Super Revised Version)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxs04, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Checkpoints Enemy Bullets Enhanced Remake + Start Special Weapons Big Shotgun + Fire Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxs05, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Checkpoints Enemy Bullets Enhanced Remake + Version Italian Beta)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxs06, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Checkpoints Enemy Bullets Enhanced Remake + Plus)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxs07, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Checkpoints Enemy Bullets Enhanced Remake + Start Fire Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxs08, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Checkpoints Enemy Bullets Enhanced Remake + Start 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxs09, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Checkpoints Enemy Bullets Enhanced Remake + Start Special Weapons Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxs10, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Checkpoints Enemy Bullets Enhanced Remake + Start Special Weapons Big Flame Shot)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxs11, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Checkpoints Enemy Bullets Enhanced Remake + Start Special Weapons Big Heavyeavy Machine Gun)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxs12, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Checkpoints Enemy Bullets Enhanced Remake + Start Special Weapons Big Laser Gun)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxs13, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Checkpoints Enemy Bullets Enhanced Remake + Start Special Weapons Big Rocket Launcher)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxs14, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Checkpoints Enemy Bullets Enhanced Remake + Start Special Weapons Big Shotgun)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxs15, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Checkpoints Enemy Bullets Enhanced Remake + Start Special Weapons Super Mega Grenade)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxs16, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Checkpoints Enemy Bullets Enhanced Remake + Start Special Weapons Drop Shot)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxs17, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Checkpoints Enemy Bullets Enhanced Remake + Start Special Weapons Enemy Chaser)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxs18, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Checkpoints Enemy Bullets Enhanced Remake + Start Special Weapons Flame Shot)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxs19, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Checkpoints Enemy Bullets Enhanced Remake + Start Special Weapons Heavyeavy Machine Gun)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxs20, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Checkpoints Enemy Bullets Enhanced Remake + Start Special Weapons Iron Lizard)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxs21, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Checkpoints Enemy Bullets Enhanced Remake + Start Special Weapons Laser Gun)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxs22, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Checkpoints Enemy Bullets Enhanced Remake + Start Special Weapons Rocket Launcher)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxs23, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Checkpoints Enemy Bullets Enhanced Remake + Start Special Weapons Super Grenade)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxs24, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Checkpoints Enemy Bullets Enhanced Remake + Start Special Weapons Shotgun)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxs25, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Checkpoints Enemy Bullets Enhanced Remake + Start Special Weapons Big Handgun)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxs26, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Checkpoints Enemy Bullets Enhanced Remake + Start Special Weapons Infinite)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxs27, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Checkpoints Enemy Bullets Enhanced Remake + Ward Charior)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxs28, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Checkpoints Enemy Bullets Enhanced Remake + Version Fat Plus Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxs29, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Checkpoints Enemy Bullets Enhanced Remake + Replace Pistol To Cannon With Infinite Ammo)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxs30, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Checkpoints Enemy Bullets Enhanced Remake + Hack By DDJ/Change Character)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxs31, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Checkpoints Enemy Bullets Enhanced Remake + Flash Off)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxs32, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Checkpoints Enemy Bullets Enhanced Remake + Hack By DDJ/Press Button Change Weapon And Fat Guy)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxs33, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Checkpoints Enemy Bullets Enhanced Remake + Hack By DDJ/Quick Go Next Mission)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxs34, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Checkpoints Enemy Bullets Enhanced Remake + Hack By DDJ/War Chariot V1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxs35, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Checkpoints Enemy Bullets Enhanced Remake + Hack By DDJ/War Chariot V2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxs36, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Checkpoints Enemy Bullets Enhanced Remake + Press A Key For Vehicles)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxe01, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Enemy Heavy Plate + NEO ARC French Traduction Set 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxe02, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Enemy Heavy Plate + NEO ARC French Traduction Set 02)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxe03, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Enemy Heavy Plate + Super Revised Version)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxe04, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Enemy Heavy Plate + Start Special Weapons Big Shotgun + Fire Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxe05, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Enemy Heavy Plate + Version Italian Beta)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxe06, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Enemy Heavy Plate + Plus)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxe07, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Enemy Heavy Plate + Start Fire Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxe08, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Enemy Heavy Plate + Start 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxe09, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Enemy Heavy Plate + Start Special Weapons Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxe10, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Enemy Heavy Plate + Start Special Weapons Big Flame Shot)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxe11, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Enemy Heavy Plate + Start Special Weapons Big Heavyeavy Machine Gun)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxe12, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Enemy Heavy Plate + Start Special Weapons Big Laser Gun)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxe13, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Enemy Heavy Plate + Start Special Weapons Big Rocket Launcher)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxe14, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Enemy Heavy Plate + Start Special Weapons Big Shotgun)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxe15, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Enemy Heavy Plate + Start Special Weapons Super Mega Grenade)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxe16, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Enemy Heavy Plate + Start Special Weapons Drop Shot)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxe17, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Enemy Heavy Plate + Start Special Weapons Enemy Chaser)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxe18, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Enemy Heavy Plate + Start Special Weapons Flame Shot)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxe19, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Enemy Heavy Plate + Start Special Weapons Heavyeavy Machine Gun)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxe20, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Enemy Heavy Plate + Start Special Weapons Iron Lizard)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxe21, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Enemy Heavy Plate + Start Special Weapons Laser Gun)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxe22, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Enemy Heavy Plate + Start Special Weapons Rocket Launcher)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxe23, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Enemy Heavy Plate + Start Special Weapons Super Grenade)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxe24, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Enemy Heavy Plate + Start Special Weapons Shotgun)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxe25, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Enemy Heavy Plate + Start Special Weapons Big Handgun)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxe26, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Enemy Heavy Plate + Start Special Weapons Infinite)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxe27, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Enemy Heavy Plate + Start Special Weapons All In One)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxe28, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Enemy Heavy Plate + Ward Charior)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxe29, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Enemy Heavy Plate + Version Fat Plus Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxe30, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Enemy Heavy Plate + Replace Pistol To Cannon With Infinite Ammo)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxe31, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Enemy Heavy Plate + Hack By DDJ/Change Character)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxe32, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Enemy Heavy Plate + Flash Off)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxe33, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Enemy Heavy Plate + Hack By DDJ/Press Button Change Weapon And Fat Guy)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxe34, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Enemy Heavy Plate + Hack By DDJ/Quick Go Next Mission)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxe35, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Enemy Heavy Plate + Hack By DDJ/War Chariot V1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxe36, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Enemy Heavy Plate + Hack By DDJ/War Chariot V2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxe37, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Enemy Heavy Plate + Press A Key For Vehicles)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxh01, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Other Modification + NEO ARC French Traduction Set 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxh02, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Other Modification + NEO ARC French Traduction Set 02)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxh03, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Other Modification + Super Revised Version)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxh04, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Other Modification + Start Special Weapons Big Shotgun + Fire Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxh05, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Other Modification + Version Italian Beta)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxh06, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Other Modification + Plus)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxh07, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Other Modification + Start Fire Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxh08, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Other Modification + Start 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxh09, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Other Modification + Start Special Weapons Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxh10, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Other Modification + Start Special Weapons Big Flame Shot)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxh11, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Other Modification + Start Special Weapons Big Heavyeavy Machine Gun)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxh12, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Other Modification + Start Special Weapons Big Laser Gun)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxh13, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Other Modification + Start Special Weapons Big Rocket Launcher)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxh14, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Other Modification + Start Special Weapons Big Shotgun)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxh15, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Other Modification + Start Special Weapons Super Mega Grenade)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxh16, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Other Modification + Start Special Weapons Drop Shot)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxh17, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Other Modification + Start Special Weapons Enemy Chaser)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxh18, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Other Modification + Start Special Weapons Flame Shot)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxh19, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Other Modification + Start Special Weapons Heavyeavy Machine Gun)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxh20, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Other Modification + Start Special Weapons Iron Lizard)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxh21, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Other Modification + Start Special Weapons Laser Gun)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxh22, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Other Modification + Start Special Weapons Rocket Launcher)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxh23, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Other Modification + Start Special Weapons Super Grenade)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxh24, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Other Modification + Start Special Weapons Shotgun)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxh25, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Other Modification + Start Special Weapons Big Handgun)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxh26, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Other Modification + Start Special Weapons Infinite)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxh27, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Other Modification + Start Special Weapons All In One)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxh28, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Other Modification + Ward Charior)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxh29, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Other Modification + Version Fat Plus Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxh30, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Other Modification + Replace Pistol To Cannon With Infinite Ammo)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxh31, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Other Modification + Hack By DDJ/Change Character)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxh32, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Other Modification + Flash Off)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxh33, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Other Modification + Hack By DDJ/Press Button Change Weapon And Fat Guy)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxh34, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Other Modification + Hack By DDJ/Quick Go Next Mission)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxh35, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Other Modification + Hack By DDJ/War Chariot V1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxh36, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Other Modification + Hack By DDJ/War Chariot V2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxh37, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Other Modification + Press A Key for Vehicles)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj01, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Drop Shot + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj02, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Enemy Chaser + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj03, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Flame Shot + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj04, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Iron Lizard + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj05, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Flame Shot + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj06, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Laser Guns + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj07, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Laser Guns + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj08, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Rocket Launcher + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj09, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Shotgun + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj10, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Rocket Launcher + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj11, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Super Version + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj12, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Super Grenade + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj13, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Pow + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj14, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Drop Shot + CoinGetVehicles + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj15, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Enemy Chaser + CoinGetVehicles + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj16, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Flame Shot + CoinGetVehicles + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj17, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Iron Lizard + CoinGetVehicles + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj18, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Flame Shot + CoinGetVehicles + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj19, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Laser Guns + CoinGetVehicles + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj20, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Laser Guns + CoinGetVehicles + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj21, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Rocket Launcher + CoinGetVehicles + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj22, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Shotgun + CoinGetVehicles + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj23, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Rocket Launcher + CoinGetVehicles + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj24, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Shotgun + CoinGetVehicles + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj25, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Super Grenade + CoinGetVehicles + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+// GAME( 2017, mslugxj26, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Pow + CoinGetVehicles + 99 Bombs)", MACHINE_SUPPORTS_SAVE ) Duplicado
+GAME( 2017, mslugxj27, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Drop Shot + CoinGetVehicles + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj28, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Enemy Chaser + CoinGetVehicles + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj29, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Flame Shot + CoinGetVehicles + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj30, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Iron Lizard + CoinGetVehicles + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj31, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Flame Shot + CoinGetVehicles + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj32, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Laser Guns + CoinGetVehicles + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj33, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Laser Guns + CoinGetVehicles + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj34, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Rocket Launcher + CoinGetVehicles + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj35, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Shotgun + CoinGetVehicles + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj36, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Rocket Launcher + CoinGetVehicles + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj37, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Shotgun + CoinGetVehicles + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj38, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Super Grenade + CoinGetVehicles + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj39, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Pow + CoinGetVehicles + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj40, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Drop Shot + DChangeWeaponX + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj41, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Enemy Chaser + DChangeWeaponX + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj42, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Flame Shot + DChangeWeaponX + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj43, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Iron Lizard + DChangeWeaponX + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj44, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Flame Shot + DChangeWeaponX + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj45, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Laser Guns + DChangeWeaponX + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj46, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Laser Guns + DChangeWeaponX + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj47, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Rocket Launcher + DChangeWeaponX + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj48, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Shotgun + DChangeWeaponX + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj49, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Rocket Launcher + DChangeWeaponX + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj50, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Shotgun + DChangeWeaponX + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj51, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Super Grenade + DChangeWeaponX + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj52, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Pow + DChangeWeaponX + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj53, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Drop Shot + DChangeWeaponX + CoinGetVehicles + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj54, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Enemy Chaser + DChangeWeaponX + CoinGetVehicles + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj55, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Flame Shot + DChangeWeaponX + CoinGetVehicles + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj56, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Iron Lizard + DChangeWeaponX + CoinGetVehicles + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj57, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Flame Shot + DChangeWeaponX + CoinGetVehicles + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj58, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Laser Guns + DChangeWeaponX + CoinGetVehicles + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj59, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Laser Guns + DChangeWeaponX + CoinGetVehicles + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj60, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Rocket Launcher + DChangeWeaponX + CoinGetVehicles + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj61, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Shotgun + DChangeWeaponX + CoinGetVehicles + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj62, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Rocket Launcher + DChangeWeaponX + CoinGetVehicles + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj63, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Shotgun + DChangeWeaponX + CoinGetVehicles + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj64, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Super Grenade + DChangeWeaponX + CoinGetVehicles + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj65, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Pow + DChangeWeaponX + CoinGetVehicles + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj66, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Drop Shot + DChangeWeaponX + CoinGetVehicles + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj67, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Enemy Chaser + DChangeWeaponX + CoinGetVehicles + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj68, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Flame Shot + DChangeWeaponX + CoinGetVehicles + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj69, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Iron Lizard + DChangeWeaponX + CoinGetVehicles + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj70, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Flame Shot + DChangeWeaponX + CoinGetVehicles + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj71, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Laser Guns + DChangeWeaponX + CoinGetVehicles + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj72, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Laser Guns + DChangeWeaponX + CoinGetVehicles + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj73, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Rocket Launcher + DChangeWeaponX + CoinGetVehicles + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj74, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Shotgun + DChangeWeaponX + CoinGetVehicles + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj75, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Rocket Launcher + DChangeWeaponX + CoinGetVehicles + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj76, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Shotgun + DChangeWeaponX + CoinGetVehicles + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj77, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Super Grenade + DChangeWeaponX + CoinGetVehicles + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+// GAME( 2017, mslugxj78, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Pow + DChangeWeaponX + CoinGetVehicles + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE ) // Duplicado
+GAME( 2017, mslugxj79, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Drop Shot + DChangeWeaponX + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj80, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Enemy Chaser + DChangeWeaponX + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj81, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Flame Shot + DChangeWeaponX + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj82, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Iron Lizard + DChangeWeaponX + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj83, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Flame Shot + DChangeWeaponX + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj84, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Laser Guns + DChangeWeaponX + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj85, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Laser Guns + DChangeWeaponX + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj86, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Rocket Launcher + DChangeWeaponX + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj87, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Shotgun + DChangeWeaponX + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj88, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Rocket Launcher + DChangeWeaponX + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj89, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Shotgun + DChangeWeaponX + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj90, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Super Grenade + DChangeWeaponX + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj91, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Drop Shot + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj92, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Enemy Chaser + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj93, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Flame Shot + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj94, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Iron Lizard + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj95, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Flame Shot + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj96, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Laser Guns + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj97, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Laser Guns + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj98, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Rocket Launcher + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj99, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Shotgun + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj100, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Rocket Launcher + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj101, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Shotgun + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxj102, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Super Grenade + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx01, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Drop Shot + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx02, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Enemy Chaser + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx03, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Flame Shot + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx04, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Iron Lizard + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx05, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Flame Shot + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx06, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Laser Guns + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx07, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Laser Guns + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx08, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Rocket Launcher + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx09, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Shotgun + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx10, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Rocket Launcher + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx11, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Shotgun + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx12, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Super Grenade + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx13, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Pow + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx14, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Drop Shot + CoinGetVehicles + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx15, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Enemy Chaser + CoinGetVehicles + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx16, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Flame Shot + CoinGetVehicles + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx17, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Iron Lizard + CoinGetVehicles + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx18, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Flame Shot + CoinGetVehicles + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx19, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Laser Guns + CoinGetVehicles + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx20, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Laser Guns + CoinGetVehicles + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx21, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Rocket Launcher + CoinGetVehicles + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx22, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Shotgun + CoinGetVehicles + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx23, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Rocket Launcher + CoinGetVehicles + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx24, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Shotgun + CoinGetVehicles + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx25, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Super Grenade + CoinGetVehicles + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx26, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Pow + CoinGetVehicles + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx27, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Drop Shot + CoinGetVehicles + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx28, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Enemy Chaser + CoinGetVehicles + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx29, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Flame Shot + CoinGetVehicles + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx30, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Iron Lizard + CoinGetVehicles + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx31, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Flame Shot + CoinGetVehicles + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx32, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Laser Guns + CoinGetVehicles + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx33, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Laser Guns + CoinGetVehicles + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx34, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Rocket Launcher + CoinGetVehicles + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx35, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Shotgun + CoinGetVehicles + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx36, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Rocket Launcher + CoinGetVehicles + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx37, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Shotgun + CoinGetVehicles + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx38, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Super Grenade + CoinGetVehicles + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx39, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Drop Shot + DChangeWeaponX + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE ) //Duplicado
+GAME( 2017, mslugxjx40, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Enemy Chaser + DChangeWeaponX + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx41, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Flame Shot + DChangeWeaponX + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx42, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Iron Lizard + DChangeWeaponX + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx43, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Flame Shot + DChangeWeaponX + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx44, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Laser Guns + DChangeWeaponX + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx45, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Laser Guns + DChangeWeaponX + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx46, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Rocket Launcher + DChangeWeaponX + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx47, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Shotgun + DChangeWeaponX + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx48, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Rocket Launcher + DChangeWeaponX + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx49, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Shotgun + DChangeWeaponX + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx50, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Super Grenade + DChangeWeaponX + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx51, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Pow + DChangeWeaponX + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx52, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Drop Shot + DChangeWeaponX + CoinGetVehicles + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx53, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Enemy Chaser + DChangeWeaponX + CoinGetVehicles + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx54, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Flame Shot + DChangeWeaponX + CoinGetVehicles + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx55, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Iron Lizard + DChangeWeaponX + CoinGetVehicles + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx56, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Flame Shot + DChangeWeaponX + CoinGetVehicles + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx57, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Laser Guns + DChangeWeaponX + CoinGetVehicles + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx58, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Laser Guns + DChangeWeaponX + CoinGetVehicles + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx59, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Rocket Launcher + DChangeWeaponX + CoinGetVehicles + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx60, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Shotgun + DChangeWeaponX + CoinGetVehicles + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx61, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Rocket Launcher + DChangeWeaponX + CoinGetVehicles + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx62, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Shotgun + DChangeWeaponX + CoinGetVehicles + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx63, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Super Grenade + DChangeWeaponX + CoinGetVehicles + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx64, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Pow + DChangeWeaponX + CoinGetVehicles + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx65, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Drop Shot + DChangeWeaponX + CoinGetVehicles + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx66, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Enemy Chaser + DChangeWeaponX + CoinGetVehicles + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx67, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Flame Shot + DChangeWeaponX + CoinGetVehicles + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx68, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Iron Lizard + DChangeWeaponX + CoinGetVehicles + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx69, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Flame Shot + DChangeWeaponX + CoinGetVehicles + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx70, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Laser Guns + DChangeWeaponX + CoinGetVehicles + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx71, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Laser Guns + DChangeWeaponX + CoinGetVehicles + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx72, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Rocket Launcher + DChangeWeaponX + CoinGetVehicles + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx73, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Shotgun + DChangeWeaponX + CoinGetVehicles + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx74, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Rocket Launcher + DChangeWeaponX + CoinGetVehicles + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx75, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Shotgun + DChangeWeaponX + CoinGetVehicles + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx76, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Super Grenade + DChangeWeaponX + CoinGetVehicles + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+// GAME( 2017, mslugxjx77, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Pow + DChangeWeaponX + CoinGetVehicles + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE ) // Duplicado
+GAME( 2017, mslugxjx78, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Drop Shot + DChangeWeaponX + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx79, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Enemy Chaser + DChangeWeaponX + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx80, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Flame Shot + DChangeWeaponX + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx81, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Iron Lizard + DChangeWeaponX + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx82, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Flame Shot + DChangeWeaponX + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx83, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Laser Guns + DChangeWeaponX + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx84, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Laser Guns + DChangeWeaponX + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx85, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Rocket Launcher + DChangeWeaponX + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx86, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Shotgun + DChangeWeaponX + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx87, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Rocket Launcher + DChangeWeaponX + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx88, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Shotgun + DChangeWeaponX + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx89, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Super Grenade + DChangeWeaponX + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx90, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Drop Shot + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx91, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Enemy Chaser + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx92, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Flame Shot + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx93, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Iron Lizard + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx94, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Flame Shot + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx95, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Laser Guns + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx96, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Laser Guns + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx97, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Rocket Launcher + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx98, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Shotgun + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx99, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Rocket Launcher + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx100, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Shotgun + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjx101, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Super Grenade + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy01, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Drop Shot + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy02, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Enemy Chaser + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy03, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Flame Shot + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy04, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Iron Lizard + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy05, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Flame Shot + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy06, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Laser Guns + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy07, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Laser Guns + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy08, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Rocket Launcher + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy09, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Shotgun + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy10, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Rocket Launcher + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy11, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Shotgun + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy12, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Super Grenade + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy13, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Pow + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy14, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Drop Shot + CoinGetVehicles + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy15, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Enemy Chaser + CoinGetVehicles + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy16, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Flame Shot + CoinGetVehicles + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy17, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Iron Lizard + CoinGetVehicles + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy18, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Flame Shot + CoinGetVehicles + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy19, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Laser Guns + CoinGetVehicles + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy20, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Laser Guns + CoinGetVehicles + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy21, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Rocket Launcher + CoinGetVehicles + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy22, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Shotgun + CoinGetVehicles + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy23, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Rocket Launcher + CoinGetVehicles + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy24, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Shotgun + CoinGetVehicles + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy25, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Super Grenade + CoinGetVehicles + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy26, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Pow + CoinGetVehicles + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy27, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Drop Shot + CoinGetVehicles + PrisonerNeverLost + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy28, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Enemy Chaser + CoinGetVehicles + PrisonerNeverLost + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy29, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Flame Shot + CoinGetVehicles + PrisonerNeverLost + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy30, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Iron Lizard + CoinGetVehicles + PrisonerNeverLost + 99 Stone)", MACHINE_SUPPORTS_SAVE ) // Duplicado
+GAME( 2017, mslugxjy31, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Flame Shot + CoinGetVehicles + PrisonerNeverLost + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy32, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Laser Guns + CoinGetVehicles + PrisonerNeverLost + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy33, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Laser Guns + CoinGetVehicles + PrisonerNeverLost + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy34, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Rocket Launcher + CoinGetVehicles + PrisonerNeverLost + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy35, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Shotgun + CoinGetVehicles + PrisonerNeverLost + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy36, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Rocket Launcher + CoinGetVehicles + PrisonerNeverLost + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy37, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Shotgun + CoinGetVehicles + PrisonerNeverLost + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy38, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Super Grenade + CoinGetVehicles + PrisonerNeverLost + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+// GAME( 2017, mslugxjy39, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Pow + CoinGetVehicles + PrisonerNeverLost + 99 Stone)", MACHINE_SUPPORTS_SAVE ) // Duplicado
+GAME( 2017, mslugxjy40, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Drop Shot + DChangeWeaponX + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy41, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Enemy Chaser + DChangeWeaponX + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy42, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Flame Shot + DChangeWeaponX + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy43, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Iron Lizard + DChangeWeaponX + 99 Stone)", MACHINE_SUPPORTS_SAVE ) // Duplicado
+GAME( 2017, mslugxjy44, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Flame Shot + DChangeWeaponX + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy45, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Laser Guns + DChangeWeaponX + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy46, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Laser Guns + DChangeWeaponX + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy47, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Rocket Launcher + DChangeWeaponX + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy48, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Shotgun + DChangeWeaponX + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy49, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Rocket Launcher + DChangeWeaponX + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy50, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Shotgun + DChangeWeaponX + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy51, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Super Grenade + DChangeWeaponX + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy52, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Pow + DChangeWeaponX + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy53, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Drop Shot + DChangeWeaponX + CoinGetVehicles + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy54, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Enemy Chaser + DChangeWeaponX + CoinGetVehicles + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy55, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Flame Shot + DChangeWeaponX + CoinGetVehicles + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy56, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Iron Lizard + DChangeWeaponX + CoinGetVehicles + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy57, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Flame Shot + DChangeWeaponX + CoinGetVehicles + 99 Stone)", MACHINE_SUPPORTS_SAVE ) // Duplicado
+GAME( 2017, mslugxjy58, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Laser Guns + DChangeWeaponX + CoinGetVehicles + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy59, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Laser Guns + DChangeWeaponX + CoinGetVehicles + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy60, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Rocket Launcher + DChangeWeaponX + CoinGetVehicles + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy61, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Shotgun + DChangeWeaponX + CoinGetVehicles + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy62, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Rocket Launcher + DChangeWeaponX + CoinGetVehicles + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy63, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Shotgun + DChangeWeaponX + CoinGetVehicles + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy64, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Super Grenade + DChangeWeaponX + CoinGetVehicles + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy65, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Pow + DChangeWeaponX + CoinGetVehicles + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy66, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Drop Shot + DChangeWeaponX + CoinGetVehicles + PrisonerNeverLost + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy67, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Enemy Chaser + DChangeWeaponX + CoinGetVehicles + PrisonerNeverLost + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy68, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Flame Shot + DChangeWeaponX + CoinGetVehicles + PrisonerNeverLost + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy69, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Iron Lizard + DChangeWeaponX + CoinGetVehicles + PrisonerNeverLost + 99 Stone)", MACHINE_SUPPORTS_SAVE ) // Duplicado
+GAME( 2017, mslugxjy70, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Flame Shot + DChangeWeaponX + CoinGetVehicles + PrisonerNeverLost + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy71, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Laser Guns + DChangeWeaponX + CoinGetVehicles + PrisonerNeverLost + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy72, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Laser Guns + DChangeWeaponX + CoinGetVehicles + PrisonerNeverLost + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy73, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Rocket Launcher + DChangeWeaponX + CoinGetVehicles + PrisonerNeverLost + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy74, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Shotgun + DChangeWeaponX + CoinGetVehicles + PrisonerNeverLost + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy75, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Rocket Launcher + DChangeWeaponX + CoinGetVehicles + PrisonerNeverLost + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy76, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Shotgun + DChangeWeaponX + CoinGetVehicles + PrisonerNeverLost + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy77, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Super Grenade + DChangeWeaponX + CoinGetVehicles + PrisonerNeverLost + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+// GAME( 2017, mslugxjy78, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Pow + DChangeWeaponX + CoinGetVehicles + PrisonerNeverLost + 99 Stone)", MACHINE_SUPPORTS_SAVE ) // Duplicado
+GAME( 2017, mslugxjy79, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Drop Shot + DChangeWeaponX + PrisonerNeverLost + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy80, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Enemy Chaser + DChangeWeaponX + PrisonerNeverLost + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy81, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Flame Shot + DChangeWeaponX + PrisonerNeverLost + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy82, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Iron Lizard + DChangeWeaponX + PrisonerNeverLost + 99 Stone)", MACHINE_SUPPORTS_SAVE ) // Duplicado
+GAME( 2017, mslugxjy83, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Flame Shot + DChangeWeaponX + PrisonerNeverLost + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy84, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Laser Guns + DChangeWeaponX + PrisonerNeverLost + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy85, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Laser Guns + DChangeWeaponX + PrisonerNeverLost + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy86, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Rocket Launcher + DChangeWeaponX + PrisonerNeverLost + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy87, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Shotgun + DChangeWeaponX + PrisonerNeverLost + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy88, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Rocket Launcher + DChangeWeaponX + PrisonerNeverLost + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy89, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Shotgun + DChangeWeaponX + PrisonerNeverLost + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy90, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Super Grenade + DChangeWeaponX + PrisonerNeverLost + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy91, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Drop Shot + PrisonerNeverLost + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy92, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Enemy Chaser + PrisonerNeverLost + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy93, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Flame Shot + PrisonerNeverLost + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy94, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Iron Lizard + PrisonerNeverLost + 99 Stone)", MACHINE_SUPPORTS_SAVE ) // Duplicado
+GAME( 2017, mslugxjy95, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Flame Shot + PrisonerNeverLost + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy96, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Laser Guns + PrisonerNeverLost + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy97, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Laser Guns + PrisonerNeverLost + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy98, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Rocket Launcher + PrisonerNeverLost + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy99, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Big Shotgun + PrisonerNeverLost + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy100, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Rocket Launcher + PrisonerNeverLost + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy101, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Shotgun + PrisonerNeverLost + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjy102, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + Start Special Weapons Super Grenade + PrisonerNeverLost + 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr01, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Drop Shot + CoinGetVehicles +99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr02, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Enemy Chaser + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr03, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Flame Shot + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr04, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Iron Lizard + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr05, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Flame Shot + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr06, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Laser Guns + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr07, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Laser Guns + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr08, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Rocket Launcher + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr09, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Shotgun + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr10, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Rocket Launcher + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr11, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Super Version + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr12, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Super Grenade + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr13, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Pow + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr14, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Drop Shot + CoinGetVehicles + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr15, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Enemy Chaser + CoinGetVehicles + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr16, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Flame Shot + CoinGetVehicles + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr17, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Iron Lizard + CoinGetVehicles + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr18, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Flame Shot + CoinGetVehicles + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr19, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Laser Guns + CoinGetVehicles + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr20, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Laser Guns + CoinGetVehicles + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr21, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Rocket Launcher + CoinGetVehicles + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr22, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Shotgun + CoinGetVehicles + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr23, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Rocket Launcher + CoinGetVehicles + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr24, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Shotgun+ CoinGetVehicles + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr25, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Super Grenade + CoinGetVehicles + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr26, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Pow + CoinGetVehicles + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr27, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Drop Shot + CoinGetVehicles + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr28, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Enemy Chaser + CoinGetVehicles + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr29, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Flame Shot + CoinGetVehicles + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr30, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Iron Lizard + CoinGetVehicles + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr31, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Flame Shot + CoinGetVehicles + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr32, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Laser Guns + CoinGetVehicles + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr33, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Laser Guns + CoinGetVehicles + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr34, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Rocket Launcher + CoinGetVehicles + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr35, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Shotgun + CoinGetVehicles + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr36, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Rocket Launcher + CoinGetVehicles + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr37, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Shotgun + CoinGetVehicles + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr38, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Super Grenade + CoinGetVehicles + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+//GAME( 2017, mslugxjfr39, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Pow + CoinGetVehicles + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE ) // Duplicado
+GAME( 2017, mslugxjfr40, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Drop Shot + DChangeWeaponX + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr41, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Enemy Chaser + DChangeWeaponX + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr42, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Flame Shot + DChangeWeaponX + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr43, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Iron Lizard + DChangeWeaponX + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr44, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Flame Shot + DChangeWeaponX + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr45, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Laser Guns + DChangeWeaponX + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr46, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Laser Guns + DChangeWeaponX + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr47, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Rocket Launcher + DChangeWeaponX + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr48, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Shotgun + DChangeWeaponX + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr49, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Rocket Launcher + DChangeWeaponX + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr50, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Shotgun + DChangeWeaponX + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr51, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Super Grenade + DChangeWeaponX + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr52, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Pow + DChangeWeaponX + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr53, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Drop Shot + DChangeWeaponX + CoinGetVehicles + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr54, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Enemy Chaser + DChangeWeaponX + CoinGetVehicles + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr55, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Flame Shot + DChangeWeaponX + CoinGetVehicles + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr56, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Iron Lizard + DChangeWeaponX + CoinGetVehicles + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr57, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Flame Shot + DChangeWeaponX + CoinGetVehicles + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr58, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Laser Guns + DChangeWeaponX + CoinGetVehicles + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr59, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Laser Guns + DChangeWeaponX + CoinGetVehicles + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr60, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Rocket Launcher + DChangeWeaponX + CoinGetVehicles + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr61, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Shotgun + DChangeWeaponX + CoinGetVehicles + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr62, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Rocket Launcher + DChangeWeaponX + CoinGetVehicles + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr63, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Shotgun + DChangeWeaponX + CoinGetVehicles + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr64, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Super Grenade + DChangeWeaponX + CoinGetVehicles + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr65, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Pow + DChangeWeaponX + CoinGetVehicles + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr66, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Drop Shot + DChangeWeaponX + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr67, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Enemy Chaser + DChangeWeaponX + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr68, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Flame Shot + DChangeWeaponX + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr69, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Iron Lizard + DChangeWeaponX + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr70, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Flame Shot + DChangeWeaponX + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr71, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Laser Guns + DChangeWeaponX + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr72, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Laser Guns + DChangeWeaponX + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr73, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Rocket Launcher + DChangeWeaponX + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr74, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Shotgun + DChangeWeaponX + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr75, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Rocket Launcher + DChangeWeaponX + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr76, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Shotgun + DChangeWeaponX + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr77, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Super Grenade + DChangeWeaponX + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+//GAME( 2017, mslugxjfr78, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Pow + DChangeWeaponX + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE ) // Duplicado
+GAME( 2017, mslugxjfr79, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Drop Shot + DChangeWeaponX + PrisonerNeverLost + CoinGetVehicles + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr80, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Enemy Chaser + DChangeWeaponX + PrisonerNeverLost + CoinGetVehicles + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr81, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Flame Shot + DChangeWeaponX + PrisonerNeverLost + CoinGetVehicles + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr82, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Iron Lizard + DChangeWeaponX + PrisonerNeverLost + CoinGetVehicles + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr83, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Flame Shot + DChangeWeaponX + PrisonerNeverLost + CoinGetVehicles + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr84, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Laser Guns + DChangeWeaponX + PrisonerNeverLost + CoinGetVehicles + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr85, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Laser Guns + DChangeWeaponX + PrisonerNeverLost + CoinGetVehicles + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr86, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Rocket Launcher + DChangeWeaponX + PrisonerNeverLost + CoinGetVehicles + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr87, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Shotgun + DChangeWeaponX + PrisonerNeverLost + CoinGetVehicles + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr88, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Rocket Launcher + DChangeWeaponX + PrisonerNeverLost + CoinGetVehicles + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr89, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Shotgun + DChangeWeaponX + PrisonerNeverLost + CoinGetVehicles + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr90, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Super Grenade + DChangeWeaponX + PrisonerNeverLost + CoinGetVehicles + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+//GAME( 2017, mslugxjfr91, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Pow + DChangeWeaponX + PrisonerNeverLost + CoinGetVehicles + 99 Bombs)", MACHINE_SUPPORTS_SAVE ) // Duplicado
+GAME( 2017, mslugxjfr92, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Drop Shot + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr93, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Enemy Chaser + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr94, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Flame Shot + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr95, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Iron Lizard + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr96, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Flame Shot + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr97, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Laser Guns + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr98, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Laser Guns + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr99, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Rocket Launcher + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr100, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Shotgun + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr101, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Rocket Launcher + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr102, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Shotgun + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfr103, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Super Grenade + PrisonerNeverLost + 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx01, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Drop Shot + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx02, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Enemy Chaser + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx03, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Flame Shot + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx04, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Iron Lizard + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx05, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Flame Shot + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx06, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Laser Guns + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx07, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Laser Guns + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx08, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Rocket Launcher + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx09, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Shotgun + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx10, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Rocket Launcher + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx11, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Shotgun + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx12, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Super Grenade + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx13, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Pow + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx14, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Drop Shot + CoinGetVehicles + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx15, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Enemy Chaser + CoinGetVehicles + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx16, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Flame Shot + CoinGetVehicles + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx17, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Iron Lizard + CoinGetVehicles + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx18, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Flame Shot + CoinGetVehicles + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx19, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Laser Guns + CoinGetVehicles + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx20, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Laser Guns + CoinGetVehicles + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx21, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Rocket Launcher + CoinGetVehicles + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx22, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Shotgun + CoinGetVehicles + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx23, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Rocket Launcher + CoinGetVehicles + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx24, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Shotgun + CoinGetVehicles + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx25, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Super Grenade + CoinGetVehicles + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx26, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Pow + CoinGetVehicles + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx27, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Drop Shot + CoinGetVehicles + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx28, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Enemy Chaser + CoinGetVehicles + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx29, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Flame Shot + CoinGetVehicles + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx30, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Iron Lizard + CoinGetVehicles + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx31, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Flame Shot + CoinGetVehicles + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx32, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Laser Guns + CoinGetVehicles + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx33, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Laser Guns + CoinGetVehicles + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx34, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Rocket Launcher + CoinGetVehicles + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx35, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Shotgun + CoinGetVehicles + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx36, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Rocket Launcher + CoinGetVehicles + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx37, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Shotgun + CoinGetVehicles + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx38, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Super Grenade + CoinGetVehicles + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+//GAME( 2017, mslugxjfrx39, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Pow + CoinGetVehicles + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE ) // Duplicado
+GAME( 2017, mslugxjfrx40, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Drop Shot + DChangeWeaponX + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx41, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Enemy Chaser + DChangeWeaponX + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx42, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Flame Shot + DChangeWeaponX + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx43, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Iron Lizard + DChangeWeaponX + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx44, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Flame Shot + DChangeWeaponX + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx45, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Laser Guns + DChangeWeaponX + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx46, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Laser Guns + DChangeWeaponX + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx47, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Rocket Launcher + DChangeWeaponX + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx48, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Shotgun + DChangeWeaponX + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx49, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Rocket Launcher + DChangeWeaponX + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx50, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Shotgun + DChangeWeaponX + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx51, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Super Grenade + DChangeWeaponX + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx52, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Pow + DChangeWeaponX + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx53, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Drop Shot + DChangeWeaponX + CoinGetVehicles + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx54, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Enemy Chaser + DChangeWeaponX + CoinGetVehicles + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx55, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Flame Shot + DChangeWeaponX + CoinGetVehicles + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx56, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Iron Lizard + DChangeWeaponX + CoinGetVehicles + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx57, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Flame Shot + DChangeWeaponX + CoinGetVehicles + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx58, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Laser Guns + DChangeWeaponX + CoinGetVehicles + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx59, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Laser Guns + DChangeWeaponX + CoinGetVehicles + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx60, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Rocket Launcher + DChangeWeaponX + CoinGetVehicles + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx61, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Shotgun + DChangeWeaponX + CoinGetVehicles + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx62, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Rocket Launcher + DChangeWeaponX + CoinGetVehicles + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx63, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Shotgun + DChangeWeaponX + CoinGetVehicles + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx64, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Super Grenade + DChangeWeaponX + CoinGetVehicles + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx65, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Pow + DChangeWeaponX + CoinGetVehicles + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx66, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Drop Shot + DChangeWeaponX + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx67, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Enemy Chaser + DChangeWeaponX + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx68, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Flame Shot + DChangeWeaponX + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx69, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Iron Lizard + DChangeWeaponX + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx70, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Flame Shot + DChangeWeaponX + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx71, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Laser Guns + DChangeWeaponX + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx72, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Laser Guns + DChangeWeaponX + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx73, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Rocket Launcher + DChangeWeaponX + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx74, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Shotgun + DChangeWeaponX + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx75, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Rocket Launcher + DChangeWeaponX + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx76, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Shotgun + DChangeWeaponX + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx77, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Super Grenade + DChangeWeaponX + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+// GAME( 2017, mslugxjfrx78, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Pow + DChangeWeaponX + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE ) // Duplicado
+GAME( 2017, mslugxjfrx79, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Drop Shot + DChangeWeaponX + PrisonerNeverLost + CoinGetVehicles + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx80, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Enemy Chaser + DChangeWeaponX + PrisonerNeverLost + CoinGetVehicles + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx81, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Flame Shot + DChangeWeaponX + PrisonerNeverLost + CoinGetVehicles + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx82, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Iron Lizard + DChangeWeaponX + PrisonerNeverLost + CoinGetVehicles + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx83, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Flame Shot + DChangeWeaponX + PrisonerNeverLost + CoinGetVehicles + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx84, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Laser Guns + DChangeWeaponX + PrisonerNeverLost + CoinGetVehicles + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx85, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Laser Guns + DChangeWeaponX + PrisonerNeverLost + CoinGetVehicles + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx86, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Rocket Launcher + DChangeWeaponX + PrisonerNeverLost + CoinGetVehicles + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx87, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Shotgun + DChangeWeaponX + PrisonerNeverLost + CoinGetVehicles + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx88, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Rocket Launcher + DChangeWeaponX + PrisonerNeverLost + CoinGetVehicles + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx89, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Shotgun + DChangeWeaponX + PrisonerNeverLost + CoinGetVehicles + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx90, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Super Grenade + DChangeWeaponX + PrisonerNeverLost + CoinGetVehicles + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx91, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Drop Shot + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx92, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Enemy Chaser + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx93, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Flame Shot + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx94, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Iron Lizard + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx95, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Flame Shot + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx96, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Laser Guns + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx97, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Laser Guns + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx98, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Rocket Launcher + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx99, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Shotgun + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx100, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Rocket Launcher + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx101, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Shotgun + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfrx102, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Super Grenade + PrisonerNeverLost + 99 Bombs Fire)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry01, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Drop Shot + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry02, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Enemy Chaser + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry03, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Flame Shot + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry04, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Iron Lizard + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry05, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Flame Shot + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry06, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Laser Guns + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry07, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Laser Guns + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry08, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Rocket Launcher + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry09, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Shotgun + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry10, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Rocket Launcher + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry11, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Shotgun + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry12, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Super Grenade + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry13, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Pow + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry14, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Drop Shot + CoinGetVehicles + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry15, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Enemy Chaser + CoinGetVehicles + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry16, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Flame Shot + CoinGetVehicles + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+// GAME( 2017, mslugxjfry17, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Iron Lizard + CoinGetVehicles + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE ) //Duplicado
+GAME( 2017, mslugxjfry18, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Flame Shot + CoinGetVehicles + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry19, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Laser Guns + CoinGetVehicles + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry20, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Laser Guns + CoinGetVehicles + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry21, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Rocket Launcher + CoinGetVehicles + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry22, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Shotgun + CoinGetVehicles + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry23, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Rocket Launcher + CoinGetVehicles + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry24, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Shotgun + CoinGetVehicles + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry25, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Super Grenade + CoinGetVehicles + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry26, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Pow + CoinGetVehicles + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry27, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Drop Shot + CoinGetVehicles + PrisonerNeverLost + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry28, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Enemy Chaser + CoinGetVehicles + PrisonerNeverLost + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry29, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Flame Shot + CoinGetVehicles + PrisonerNeverLost + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry30, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Iron Lizard + CoinGetVehicles + PrisonerNeverLost + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry31, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Flame Shot + CoinGetVehicles + PrisonerNeverLost + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry32, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Laser Guns + CoinGetVehicles + PrisonerNeverLost + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry33, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Laser Guns + CoinGetVehicles + PrisonerNeverLost + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry34, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Rocket Launcher + CoinGetVehicles + PrisonerNeverLost + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry35, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Shotgun + CoinGetVehicles + PrisonerNeverLost + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry36, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Rocket Launcher + CoinGetVehicles + PrisonerNeverLost + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry37, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Shotgun + CoinGetVehicles + PrisonerNeverLost + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry38, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Super Grenade + CoinGetVehicles + PrisonerNeverLost + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+// GAME( 2017, mslugxjfry39, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Pow + CoinGetVehicles + PrisonerNeverLost + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE ) // Duplicado
+GAME( 2017, mslugxjfry40, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Drop Shot + DChangeWeaponX + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry41, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Enemy Chaser + DChangeWeaponX + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry42, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Flame Shot + DChangeWeaponX + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry43, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Iron Lizard + DChangeWeaponX + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry44, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Flame Shot + DChangeWeaponX + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry45, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Laser Guns + DChangeWeaponX + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry46, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Laser Guns + DChangeWeaponX + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry47, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Rocket Launcher + DChangeWeaponX + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry48, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Shotgun + DChangeWeaponX + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry49, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Rocket Launcher + DChangeWeaponX + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry50, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Shotgun + DChangeWeaponX + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry51, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Super Grenade + DChangeWeaponX + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry52, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Pow + DChangeWeaponX + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry53, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Drop Shot + DChangeWeaponX + CoinGetVehicles + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry54, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Enemy Chaser + DChangeWeaponX + CoinGetVehicles + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry55, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Flame Shot + DChangeWeaponX + CoinGetVehicles + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry56, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Iron Lizard + DChangeWeaponX + CoinGetVehicles + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry57, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Flame Shot + DChangeWeaponX + CoinGetVehicles + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry58, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Laser Guns + DChangeWeaponX + CoinGetVehicles + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry59, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Laser Guns + DChangeWeaponX + CoinGetVehicles + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry60, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Rocket Launcher + DChangeWeaponX + CoinGetVehicles + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry61, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Shotgun + DChangeWeaponX + CoinGetVehicles + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry62, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Rocket Launcher + DChangeWeaponX + CoinGetVehicles + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry63, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Shotgun + DChangeWeaponX + CoinGetVehicles + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry64, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Super Grenade + DChangeWeaponX + CoinGetVehicles + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry65, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Pow + DChangeWeaponX + CoinGetVehicles + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry66, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Drop Shot + DChangeWeaponX + PrisonerNeverLost + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry67, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Enemy Chaser + DChangeWeaponX + PrisonerNeverLost + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry68, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Flame Shot + DChangeWeaponX + PrisonerNeverLost + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry69, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Iron Lizard + DChangeWeaponX + PrisonerNeverLost + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry70, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Flame Shot + DChangeWeaponX + PrisonerNeverLost + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry71, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Laser Guns + DChangeWeaponX + PrisonerNeverLost + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry72, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Laser Guns + DChangeWeaponX + PrisonerNeverLost + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry73, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Rocket Launcher + DChangeWeaponX + PrisonerNeverLost + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry74, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Shotgun + DChangeWeaponX + PrisonerNeverLost + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry75, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Rocket Launcher + DChangeWeaponX + PrisonerNeverLost + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry76, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Shotgun + DChangeWeaponX + PrisonerNeverLost + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry77, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Super Grenade + DChangeWeaponX + PrisonerNeverLost + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry78, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Drop Shot + DChangeWeaponX + PrisonerNeverLost + CoinGetVehicles + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry79, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Enemy Chaser + DChangeWeaponX + PrisonerNeverLost + CoinGetVehicles + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry80, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Flame Shot + DChangeWeaponX + PrisonerNeverLost + CoinGetVehicles + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry81, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Iron Lizard + DChangeWeaponX + PrisonerNeverLost + CoinGetVehicles + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry82, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Flame Shot + DChangeWeaponX + PrisonerNeverLost + CoinGetVehicles + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry83, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Laser Guns + DChangeWeaponX + PrisonerNeverLost + CoinGetVehicles + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry84, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Laser Guns + DChangeWeaponX + PrisonerNeverLost + CoinGetVehicles + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry85, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Rocket Launcher + DChangeWeaponX + PrisonerNeverLost + CoinGetVehicles + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry86, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Shotgun + DChangeWeaponX + PrisonerNeverLost + CoinGetVehicles + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry87, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Rocket Launcher + DChangeWeaponX + PrisonerNeverLost + CoinGetVehicles + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry88, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Shotgun + DChangeWeaponX + PrisonerNeverLost + CoinGetVehicles + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry89, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Super Grenade + DChangeWeaponX + PrisonerNeverLost + CoinGetVehicles + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry90, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Drop Shot + PrisonerNeverLost + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry91, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Enemy Chaser + PrisonerNeverLost + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry92, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Flame Shot + PrisonerNeverLost + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry93, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Iron Lizard + PrisonerNeverLost + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry94, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Flame Shot + PrisonerNeverLost + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry95, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Laser Guns + PrisonerNeverLost + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry96, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Laser Guns + PrisonerNeverLost + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry97, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Rocket Launcher + PrisonerNeverLost + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry98, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Big Shotgun + PrisonerNeverLost + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry99, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Rocket Launcher + PrisonerNeverLost + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry100, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Shotgun + PrisonerNeverLost + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxjfry101, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Live Enhanced + NEO ARC French 2006 + Start Special Weapons Super Grenade + PrisonerNeverLost + 99 Bombs Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxw01, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Super Vehicle-001 + NEO ARC French Traduction Set 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxw02, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Super Vehicle-001 + NEO ARC French Traduction Set 02)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxw03, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Super Vehicle-001 + Start Special Weapons Big Shotgun + Fire Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxw04, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Super Vehicle-001 + Plus)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxw05, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Super Vehicle-001 + Start Fire Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxw06, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Super Vehicle-001 + Start 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxw07, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Super Vehicle-001 + Start Special Weapons Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxw08, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Super Vehicle-001 + Start Special Weapons Big Flame Shot)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxw09, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Super Vehicle-001 + Start Special Weapons Big Heavyeavy Machine Gun)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxw10, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Super Vehicle-001 + Start Special Weapons Big Laser Gun)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxw11, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Super Vehicle-001 + Start Special Weapons Big Rocket Launcher)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxw12, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Super Vehicle-001 + Start Special Weapons Big Shotgun)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxw13, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Super Vehicle-001 + Start Special Weapons Super Mega Grenade)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxw14, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Super Vehicle-001 + Start Special Weapons Drop Shot)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxw15, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Super Vehicle-001 + Start Special Weapons Enemy Chaser)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxw16, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Super Vehicle-001 + Start Special Weapons Flame Shot)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxw17, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Super Vehicle-001 + Start Special Weapons Heavyeavy Machine Gun)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxw18, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Super Vehicle-001 + Start Special Weapons Iron Lizard)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxw19, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Super Vehicle-001 + Start Special Weapons Laser Gun)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxw20, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Super Vehicle-001 + Start Special Weapons Rocket Launcher)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxw21, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Super Vehicle-001 + Start Special Weapons Super Grenade)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxw22, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Super Vehicle-001 + Start Special Weapons Shotgun)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxw23, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Super Vehicle-001 + Start Special Weapons Big Handgun)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxw24, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Super Vehicle-001 + Start Special Weapons Infinite)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxz01, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Super Vehicle-001 + Plus Alternative Set 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxz02, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Super Vehicle-001 + Extreme Blue Hack By PlayerX)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxz04, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Super Vehicle-001 + Description Of Unknown Origin 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxz05, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Super Vehicle-001 + Start Fire Bombs Alternative Set 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxz06, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Super Vehicle-001 + Description Of Unknown Origin 02)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxz07, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Super Vehicle-001 + Description Of Unknown Origin 03)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxz08, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Super Vehicle-001 + Ward Charior)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxz09, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Super Vehicle-001 + Version Fat Plus Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxz10, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Super Vehicle-001 + The Overall Modification / Out Of The Blue Version Of V3.2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxz11, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Super Vehicle-001 + The Overall Modification / Out Of The Blue Version Of V4.2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxz12, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Super Vehicle-001 + The Overall Modification / Out Of The Blue Version Of V5.1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxz13, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Super Vehicle-001 + The Overall Modification / Out Of The Blue Version Of V5.2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxz14, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Super Vehicle-001 + The Overall Modification / Out Of The Blue Version Of V6.1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxz15, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Super Vehicle-001 + The Overall Modification / Out Of The Blue Version Of V6.2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxz16, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Super Vehicle-001 + The Overall Modification / Out Of The Blue Version Of V6.3)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxz17, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Super Vehicle-001 + The Overall Modification / Out Of The Blue Version Of V7A)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxz18, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Super Vehicle-001 + The Overall Modification / Out Of The Blue Version Of V8.2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxz19, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Super Vehicle-001 + The Overall Modification / Out Of The Blue Version Of V9)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxz20, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Super Vehicle-001 + Unlimited Credits In Console Mode)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxz21, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Super Vehicle-001 + Unlock/Enable Hidden Menu)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxz22, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Super Vehicle-001 + Replace Pistol To Cannon With Infinite Ammo)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxz23, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Super Vehicle-001 + Hack By DDJ/Change Character)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxz24, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Super Vehicle-001 + Flash Off)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxz25, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Super Vehicle-001 + Hack By DDJ/Press Button Change Weapon And Fat Guy)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxz26, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Super Vehicle-001 + Hack By DDJ/Jump In Mid Air)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxz27, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Super Vehicle-001 + Hack By DDJ/Quick Go Next Mission)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxz28, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Super Vehicle-001 + Hack By DDJ/War Chariot V1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslugxz29, mslugx, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "Hacks", "Metal Slug X (Super Vehicle-001 + Hack By DDJ/War Chariot V2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslug3s01, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Hacks", "Metal Slug 3 (Dead Version)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslug3s02, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Hacks", "Metal Slug 3 (Other Weapons Thunder Cloud)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslug3s03, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Hacks", "Metal Slug 3 (Other Weapons Mobile Satellite)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslug3s04, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Hacks", "Metal Slug 3 (Description Of Unknown Origin 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslug3s05, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Hacks", "Metal Slug 3 (Description Of Unknown Origin 02)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslug3s06, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Hacks", "Metal Slug 3 (Other Weapons Mobile Satellite + 99 Fire Bomb)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslug3s08, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3fr, ROT0, "Hacks", "Metal Slug 3 (NEO ARC French Traduction Set 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslug3s09, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3fr, ROT0, "Hacks", "Metal Slug 3 (NEO ARC French Traduction Set 02)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslug3s10, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Hacks", "Metal Slug 3 (Start Special Weapons Heavy Machine Gun + Stone + Violence Edition V1.1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslug3s11, mslug3, neogeo_noslot, neogeo, neogeo_noslot_state, mslug3b6, ROT0, "Hacks", "Metal Slug 6 (Much Improved Version)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslug3s12, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Hacks", "Metal Slug 3 (Start Special Weapons Heavy Machine Gun)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslug3s13, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Hacks", "Metal Slug 3 (Start Special Weapons Big Guns)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslug3s14, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Hacks", "Metal Slug 3 (Start Special Weapons EmmaCannon)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslug3s15, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Hacks", "Metal Slug 3 (Start Special Weapons Heavy Machine Gun Alternative Set 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslug3s16, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Hacks", "Metal Slug 3 (Super E Version Hack Kim[FGCH])", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslug3s17, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Hacks", "Metal Slug 3 (Change Gun Version Hack Bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslug3s18, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Hacks", "Metal Slug 3 (Start Special Weapons Big ShotGun)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslug3s19, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Hacks", "Metal Slug 3 (Start Special Weapons ShotGun)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslug3s20, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3n, ROT0, "Hacks", "Metal Slug 3 (Hack By Player X)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mslug3s21, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3d, ROT0, "Hacks", "Metal Slug 3 (Fat + Start Special Weapons Flame Shot(Decrypted C))", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mslug3s22, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3d, ROT0, "Hacks", "Metal Slug 3 (Fat + Start Special Weapons Laser Gun(Decrypted C))", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mslug3s23, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3d, ROT0, "Hacks", "Metal Slug 3 (Fat + Start Special Weapons Super Grenade (Decrypted C))", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mslug3s24, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3d, ROT0, "Hacks", "Metal Slug 3 (Fat + Start Special Weapons Mobile Sattelite(Decrypted C))", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mslug3s25, mslug3, neogeo_noslot, neogeo, neogeo_hbmame, mslug3d, ROT0, "Hacks", "Metal Slug 3 (Fat + Start Special Weapons Thunder Cloud (Decrypted C))", MACHINE_SUPPORTS_SAVE )
+// Metal Slug 4
+GAME( 2016, mslug4s01, mslug4, neogeo_noslot, neogeo, neogeo_hbmame, mslug4m, ROT0, "Hacks", "Metal Slug 4 (Start Special Weapons Shotgun)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslug4s02, mslug4, neogeo_noslot, neogeo, neogeo_hbmame, mslug4m, ROT0, "Hacks", "Metal Slug 4 (Start Handgun)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslug4s03, mslug4, neogeo_noslot, neogeo, neogeo_hbmame, mslug4m, ROT0, "Hacks", "Metal Slug 4 (Start Fire Bomb)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslug4s04, mslug4, neogeo_noslot, neogeo, neogeo_hbmame, mslug4m, ROT0, "Hacks", "Metal Slug 4 (Start 99 Bomb)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslug4s05, mslug4, neogeo_noslot, neogeo, neogeo_hbmame, mslug4m, ROT0, "Hacks", "Metal Slug 4 (Start Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslug4s06, mslug4, neogeo_noslot, neogeo, neogeo_hbmame, mslug4m, ROT0, "Hacks", "Metal Slug 4 (Start Special Weapons Heavy Machine Gun)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslug4s07, mslug4, neogeo_noslot, neogeo, neogeo_hbmame, mslug4m, ROT0, "Hacks", "Metal Slug 4 (Start Special Weapons Big Rocket Launcher)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslug4s08, mslug4, neogeo_noslot, neogeo, neogeo_hbmame, mslug4m, ROT0, "Hacks", "Metal Slug 4 (Start Special Weapons Big Shotgun)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslug4s09, mslug4, neogeo_noslot, neogeo, neogeo_hbmame, mslug4m, ROT0, "Hacks", "Metal Slug 4 (Start Special Weapons Drop Shot)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslug4s10, mslug4, neogeo_noslot, neogeo, neogeo_hbmame, mslug4m, ROT0, "Hacks", "Metal Slug 4 (Start Special Weapons Enemy Chaser )", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslug4s11, mslug4, neogeo_noslot, neogeo, neogeo_hbmame, mslug4m, ROT0, "Hacks", "Metal Slug 4 (Start Special Weapons Flame Shot)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslug4s12, mslug4, neogeo_noslot, neogeo, neogeo_hbmame, mslug4m, ROT0, "Hacks", "Metal Slug 4 (Start Special Weapons Heavy Machine Gun Alternative Set)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslug4s13, mslug4, neogeo_noslot, neogeo, neogeo_hbmame, mslug4m, ROT0, "Hacks", "Metal Slug 4 (Start Special Weapons Iron Lizard)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslug4s14, mslug4, neogeo_noslot, neogeo, neogeo_hbmame, mslug4m, ROT0, "Hacks", "Metal Slug 4 (Start Special Weapons Laser Gun)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslug4s15, mslug4, neogeo_noslot, neogeo, neogeo_hbmame, mslug4m, ROT0, "Hacks", "Metal Slug 4 (Start Special Weapons Rocket Launcher)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslug4s16, mslug4, neogeo_noslot, neogeo, neogeo_hbmame, mslug4m, ROT0, "Hacks", "Metal Slug 4 (Start Special Weapons Mobile Sattelite)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslug4s17, mslug4, neogeo_noslot, neogeo, neogeo_hbmame, mslug4m, ROT0, "Hacks", "Metal Slug 4 (Start Special Weapons Thunder Cloud)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslug4s18, mslug4, neogeo_noslot, neogeo, neogeo_hbmame, mslug4m, ROT0, "Hacks", "Metal Slug 4 (NEO ARC French Traduction Set 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslug4s19, mslug4, neogeo_noslot, neogeo, neogeo_hbmame, mslug4m, ROT0, "Hacks", "Metal Slug 4 (NEO ARC French Traduction Set 02)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslug4s21, mslug4, neogeo_noslot, neogeo, neogeo_hbmame, mslug4m, ROT0, "Hacks", "Metal Slug 4 (Start Special Weapons Two Machine Gun)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslug4s22, mslug4, neogeo_noslot, neogeo, neogeo_hbmame, mslug4m, ROT0, "Hacks", "Metal Slug 4 (Description Of Unknown Origin 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslug4s23, mslug4, neogeo_noslot, neogeo, neogeo_hbmame, mslug4m, ROT0, "Hacks", "Metal Slug 4 (Description Of Unknown Origin 02)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslug4s24, mslug4, neogeo_noslot, neogeo, neogeo_hbmame, mslug4m, ROT0, "Hacks", "Metal Slug 4 (PPX Team Hack, Remixed By ZKW)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslug4s25, mslug4, neogeo_noslot, neogeo, neogeo_hbmame, mslug4m, ROT0, "Hacks", "Metal Slug 4 (Start Special Weapons Heavy Machine Gun + Fire Bomb)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslug4s26, mslug4, neogeo_noslot, neogeo, neogeo_hbmame, mslug4m, ROT0, "Hacks", "Metal Slug 4 (Description Of Unknown Origin 03)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslug4s27, mslug4, neogeo_noslot, neogeo, neogeo_hbmame, mslug4m, ROT0, "Hacks", "Metal Slug 4 (Start Special Weapons Thunder Cloud Alternative Set 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, mslug4s28, mslug4, neogeo_noslot, neogeo, neogeo_noslot_state, ms4plus, ROT0, "Hacks", "Metal Slug 4 Plus (Start Special Weapons Thunder Cloud)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslug4s29, mslug4, neogeo_noslot, neogeo, neogeo_hbmame, mslug4m, ROT0, "Hacks", "Metal Slug 4 (Start Special Weapons Big Flame Shot)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslug4s30, mslug4, neogeo_noslot, neogeo, neogeo_hbmame, mslug4m, ROT0, "Hacks", "Metal Slug 4 (Start Special Weapons Big Laser Gun)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslug4s31, mslug4, neogeo_noslot, neogeo, neogeo_hbmame, mslug4m, ROT0, "Hacks", "Metal Slug 4 (Start Special Weapons EmmaCannon Alternative Set 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslug4s32, mslug4, neogeo_noslot, neogeo, neogeo_hbmame, mslug4m, ROT0, "Hacks", "Metal Slug 4 (Start Special Weapons Double Machine Gun Alternative Set 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslug4s33, mslug4, neogeo_noslot, neogeo, neogeo_hbmame, mslug4m, ROT0, "Hacks", "Metal Slug 4 (Spacial Gun Hack by IsmaMj)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, mslug4s34, mslug4, neogeo_noslot, neogeo, neogeo_hbmame, mslug4m, ROT0, "Hacks", "Metal Slug 4 (New Weapon Home Super Grenade)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, mslug4s35, mslug4, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Metal Slug 4 (Last Bullet)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, mslug4s36, mslug4, neogeo_noslot, neogeo, neogeo_hbmame, mslug4d, ROT0, "Hacks", "Metal Slug 4 (Description Of Unknown Origin 01 HH(decrypted)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, mslug4s37, mslug4, neogeo_noslot, neogeo, neogeo_noslot_state, ms4plus, ROT0, "Hacks", "Metal Slug 4 Plus (Description Of Unknown Origin 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, mslug4s38, mslug4, neogeo_noslot, neogeo, neogeo_noslot_state, ms4plus, ROT0, "Hacks", "Metal Slug 4 Plus (Description Of Unknown Origin 02)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, mslug4s39, mslug4, neogeo_noslot, neogeo, neogeo_noslot_state, ms4plus, ROT0, "Hacks", "Metal Slug 4 Plus (Description Of Unknown Origin 03)", MACHINE_SUPPORTS_SAVE )
+//Metal Slug 5
+GAME( 2017, mslug5s01, mslug5, neogeo_noslot, neogeo, neogeo_hbmame, mslug5d, ROT0, "Hacks", "Metal Slug 5 (Start Special Weapons Big Flame Shot)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslug5s02, mslug5, neogeo_noslot, neogeo, neogeo_hbmame, mslug5d, ROT0, "Hacks", "Metal Slug 5 (Start Special Weapons Big Heavy Machine Gun)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslug5s03, mslug5, neogeo_noslot, neogeo, neogeo_hbmame, mslug5d, ROT0, "Hacks", "Metal Slug 5 (Start Special Weapons Big Laser Gun)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslug5s04, mslug5, neogeo_noslot, neogeo, neogeo_hbmame, mslug5d, ROT0, "Hacks", "Metal Slug 5 (Start Special Weapons Big Rocket Launcher)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslug5s05, mslug5, neogeo_noslot, neogeo, neogeo_hbmame, mslug5d, ROT0, "Hacks", "Metal Slug 5 (Start Special Weapons Big Shotgun)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslug5s06, mslug5, neogeo_noslot, neogeo, neogeo_hbmame, mslug5d, ROT0, "Hacks", "Metal Slug 5 (Start Special Weapons Drop Shot)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslug5s07, mslug5, neogeo_noslot, neogeo, neogeo_hbmame, mslug5d, ROT0, "Hacks", "Metal Slug 5 (Start Special Weapons Enemy Chaser)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslug5s08, mslug5, neogeo_noslot, neogeo, neogeo_hbmame, mslug5d, ROT0, "Hacks", "Metal Slug 5 (Start Special Weapons Flame Shot)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslug5s09, mslug5, neogeo_noslot, neogeo, neogeo_hbmame, mslug5d, ROT0, "Hacks", "Metal Slug 5 (Start 99 Fire Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslug5s10, mslug5, neogeo_noslot, neogeo, neogeo_hbmame, mslug5d, ROT0, "Hacks", "Metal Slug 5 (Start Special Weapons Heavy Machine Gun)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslug5s11, mslug5, neogeo_noslot, neogeo, neogeo_hbmame, mslug5d, ROT0, "Hacks", "Metal Slug 5 (Start Special Weapons Iron Lizardkl)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslug5s12, mslug5, neogeo_noslot, neogeo, neogeo_hbmame, mslug5d, ROT0, "Hacks", "Metal Slug 5 (Double More Than Enemy)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslug5s13, mslug5, neogeo_noslot, neogeo, neogeo_hbmame, mslug5d, ROT0, "Hacks", "Metal Slug 5 (Start Special Weapons Rocket Launcherk)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslug5s14, mslug5, neogeo_noslot, neogeo, neogeo_hbmame, mslug5d, ROT0, "Hacks", "Metal Slug 5 (Start Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslug5s15, mslug5, neogeo_noslot, neogeo, neogeo_hbmame, mslug5d, ROT0, "Hacks", "Metal Slug 5 (Start Special Weapons Handgun)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslug5s16, mslug5, neogeo_noslot, neogeo, neogeo_hbmame, mslug5d, ROT0, "Hacks", "Metal Slug 5 (Start 99 Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslug5s17, mslug5, neogeo_noslot, neogeo, neogeo_hbmame, mslug5d, ROT0, "Hacks", "Metal Slug 5 (Start 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslug5s18, mslug5, neogeo_noslot, neogeo, neogeo_hbmame, mslug5d, ROT0, "Hacks", "Metal Slug 5 (Description Of Unknown Origin 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslug5s19, mslug5, neogeo_noslot, neogeo, neogeo_hbmame, mslug5d, ROT0, "Hacks", "Metal Slug 5 (Blue Version + Start Special Weapons Big Enemy Chaser + 99 Big Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslug5s20, mslug5, neogeo_noslot, neogeo, neogeo_hbmame, mslug5d, ROT0, "Hacks", "Metal Slug 5 (Start Special Weapons Two Machine Gun)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslug5s21, mslug5, neogeo_noslot, neogeo, neogeo_hbmame, mslug5d, ROT0, "Hacks", "Metal Slug 5 (Start Special Weapons Laser Gun)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslug5s22, mslug5, neogeo_noslot, neogeo, neogeo_hbmame, mslug5d, ROT0, "Hacks", "Metal Slug 5 (Start Special Weapons Shotgun)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslug5s23, mslug5, neogeo_noslot, neogeo, neogeo_hbmame, mslug5d, ROT0, "Hacks", "Metal Slug 5 (Start Special Weapons Super Grenade)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslug5s24, mslug5, neogeo_noslot, neogeo, neogeo_noslot_state, ms5plus, ROT0, "Hacks", "Metal Slug 5 Plus (Start Special Weapons Handgun)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslug5s25, mslug5, neogeo_noslot, neogeo, neogeo_noslot_state, ms5plus, ROT0, "Hacks", "Metal Slug 5 Plus (Start Special Weapons Big Flame Shot)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslug5s26, mslug5, neogeo_noslot, neogeo, neogeo_noslot_state, ms5plus, ROT0, "Hacks", "Metal Slug 5 Plus (Start Special Weapons Big Heavy Machine Gun)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslug5s27, mslug5, neogeo_noslot, neogeo, neogeo_noslot_state, ms5plus, ROT0, "Hacks", "Metal Slug 5 Plus (Start Special Weapons Big Laser Gunk)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslug5s28, mslug5, neogeo_noslot, neogeo, neogeo_noslot_state, ms5plus, ROT0, "Hacks", "Metal Slug 5 Plus (Start Special Weapons Big Rocket Launcher)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslug5s29, mslug5, neogeo_noslot, neogeo, neogeo_noslot_state, ms5plus, ROT0, "Hacks", "Metal Slug 5 Plus (Start Special Weapons Big Shotgun)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslug5s30, mslug5, neogeo_noslot, neogeo, neogeo_noslot_state, ms5plus, ROT0, "Hacks", "Metal Slug 5 Plus (Start Special Weapons Two Machine Gun)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslug5s31, mslug5, neogeo_noslot, neogeo, neogeo_noslot_state, ms5plus, ROT0, "Hacks", "Metal Slug 5 Plus (Start Special Weapons Drop Shot)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslug5s32, mslug5, neogeo_noslot, neogeo, neogeo_noslot_state, ms5plus, ROT0, "Hacks", "Metal Slug 5 Plus (Start Special Weapons Enemy Chaser)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslug5s33, mslug5, neogeo_noslot, neogeo, neogeo_noslot_state, ms5plus, ROT0, "Hacks", "Metal Slug 5 Plus (Start Special Weapons Flame Shot)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslug5s34, mslug5, neogeo_noslot, neogeo, neogeo_noslot_state, ms5plus, ROT0, "Hacks", "Metal Slug 5 Plus (Start Fire Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslug5s35, mslug5, neogeo_noslot, neogeo, neogeo_noslot_state, ms5plus, ROT0, "Hacks", "Metal Slug 5 Plus (Start 99 Bombs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslug5s36, mslug5, neogeo_noslot, neogeo, neogeo_noslot_state, ms5plus, ROT0, "Hacks", "Metal Slug 5 Plus (Start Special Weapons Heavy Machine Gun)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslug5s37, mslug5, neogeo_noslot, neogeo, neogeo_noslot_state, ms5plus, ROT0, "Hacks", "Metal Slug 5 Plus (Start Special Weapons Iron Lizard)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslug5s38, mslug5, neogeo_noslot, neogeo, neogeo_noslot_state, ms5plus, ROT0, "Hacks", "Metal Slug 5 Plus (Start Special Weapons Laser Gunk)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslug5s39, mslug5, neogeo_noslot, neogeo, neogeo_noslot_state, ms5plus, ROT0, "Hacks", "Metal Slug 5 Plus (Start Special Weapons Handgun Alternative Set)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslug5s40, mslug5, neogeo_noslot, neogeo, neogeo_noslot_state, ms5plus, ROT0, "Hacks", "Metal Slug 5 Plus (Start Special Weapons Rocket Launcher)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslug5s41, mslug5, neogeo_noslot, neogeo, neogeo_noslot_state, ms5plus, ROT0, "Hacks", "Metal Slug 5 Plus (Start Special Weapons Shotgun)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslug5s42, mslug5, neogeo_noslot, neogeo, neogeo_noslot_state, ms5plus, ROT0, "Hacks", "Metal Slug 5 Plus (Start Special Weapons Super Grenade)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslug5s43, mslug5, neogeo_noslot, neogeo, neogeo_noslot_state, ms5plus, ROT0, "Hacks", "Metal Slug 5 Plus (Start Stone)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslug5s44, mslug5, neogeo_noslot, neogeo, neogeo_noslot_state, ms5plus, ROT0, "Hacks", "Metal Slug 5 Plus (Description Of Unknown Origin 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, mslug5s45, mslug5, neogeo_noslot, neogeo, neogeo_noslot_state, ms5plus, ROT0, "Hacks", "Metal Slug 5 Plus (Ultra Plus)", MACHINE_SUPPORTS_SAVE )
+
+
diff --git a/src/hbmame/drivers/mspacman.cpp b/src/hbmame/drivers/mspacman.cpp
new file mode 100644
index 00000000000..e0cedbe3b45
--- /dev/null
+++ b/src/hbmame/drivers/mspacman.cpp
@@ -0,0 +1,2536 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+/* ===== MS PAC MAN ======
+
+*/
+
+#define mspacman_enable_decode_latch(m) m.root_device().membank("bank1")->set_entry(1)
+#define mspacman_disable_decode_latch(m) m.root_device().membank("bank1")->set_entry(0)
+
+// any access to these ROM addresses disables the decoder, and all you see is the original Pac-Man code
+READ8_MEMBER(pacman_state::mspacman_disable_decode_r_0x0038){ mspacman_disable_decode_latch(machine()); return memregion("maincpu")->base()[offset+0x0038]; }
+READ8_MEMBER(pacman_state::mspacman_disable_decode_r_0x03b0){ mspacman_disable_decode_latch(machine()); return memregion("maincpu")->base()[offset+0x03b0]; }
+READ8_MEMBER(pacman_state::mspacman_disable_decode_r_0x1600){ mspacman_disable_decode_latch(machine()); return memregion("maincpu")->base()[offset+0x1600]; }
+READ8_MEMBER(pacman_state::mspacman_disable_decode_r_0x2120){ mspacman_disable_decode_latch(machine()); return memregion("maincpu")->base()[offset+0x2120]; }
+READ8_MEMBER(pacman_state::mspacman_disable_decode_r_0x3ff0){ mspacman_disable_decode_latch(machine()); return memregion("maincpu")->base()[offset+0x3ff0]; }
+READ8_MEMBER(pacman_state::mspacman_disable_decode_r_0x8000){ mspacman_disable_decode_latch(machine()); return memregion("maincpu")->base()[offset+0x8000]; }
+READ8_MEMBER(pacman_state::mspacman_disable_decode_r_0x97f0){ mspacman_disable_decode_latch(machine()); return memregion("maincpu")->base()[offset+0x97f0]; }
+WRITE8_MEMBER(pacman_state::mspacman_disable_decode_w){ mspacman_disable_decode_latch(machine()); }
+
+// any access to these ROM addresses enables the decoder, and you'll see the Ms. Pac-Man code
+READ8_MEMBER(pacman_state::mspacman_enable_decode_r_0x3ff8){ mspacman_enable_decode_latch(machine()); return memregion("maincpu")->base()[offset+0x3ff8+0x10000]; }
+WRITE8_MEMBER(pacman_state::mspacman_enable_decode_w){ mspacman_enable_decode_latch(machine()); }
+
+#define BITSWAP12(val,B11,B10,B9,B8,B7,B6,B5,B4,B3,B2,B1,B0) \
+ bitswap<16>(val,15,14,13,12,B11,B10,B9,B8,B7,B6,B5,B4,B3,B2,B1,B0)
+
+#define BITSWAP11(val,B10,B9,B8,B7,B6,B5,B4,B3,B2,B1,B0) \
+ bitswap<16>(val,15,14,13,12,11,B10,B9,B8,B7,B6,B5,B4,B3,B2,B1,B0)
+
+void pacman_state::mspacman_install_patches(uint8_t *ROM)
+{
+ int i;
+
+ /* copy forty 8-byte patches into Pac-Man code */
+ for (i = 0; i < 8; i++)
+ {
+ ROM[0x0410+i] = ROM[0x8008+i];
+ ROM[0x08E0+i] = ROM[0x81D8+i];
+ ROM[0x0A30+i] = ROM[0x8118+i];
+ ROM[0x0BD0+i] = ROM[0x80D8+i];
+ ROM[0x0C20+i] = ROM[0x8120+i];
+ ROM[0x0E58+i] = ROM[0x8168+i];
+ ROM[0x0EA8+i] = ROM[0x8198+i];
+
+ ROM[0x1000+i] = ROM[0x8020+i];
+ ROM[0x1008+i] = ROM[0x8010+i];
+ ROM[0x1288+i] = ROM[0x8098+i];
+ ROM[0x1348+i] = ROM[0x8048+i];
+ ROM[0x1688+i] = ROM[0x8088+i];
+ ROM[0x16B0+i] = ROM[0x8188+i];
+ ROM[0x16D8+i] = ROM[0x80C8+i];
+ ROM[0x16F8+i] = ROM[0x81C8+i];
+ ROM[0x19A8+i] = ROM[0x80A8+i];
+ ROM[0x19B8+i] = ROM[0x81A8+i];
+
+ ROM[0x2060+i] = ROM[0x8148+i];
+ ROM[0x2108+i] = ROM[0x8018+i];
+ ROM[0x21A0+i] = ROM[0x81A0+i];
+ ROM[0x2298+i] = ROM[0x80A0+i];
+ ROM[0x23E0+i] = ROM[0x80E8+i];
+ ROM[0x2418+i] = ROM[0x8000+i];
+ ROM[0x2448+i] = ROM[0x8058+i];
+ ROM[0x2470+i] = ROM[0x8140+i];
+ ROM[0x2488+i] = ROM[0x8080+i];
+ ROM[0x24B0+i] = ROM[0x8180+i];
+ ROM[0x24D8+i] = ROM[0x80C0+i];
+ ROM[0x24F8+i] = ROM[0x81C0+i];
+ ROM[0x2748+i] = ROM[0x8050+i];
+ ROM[0x2780+i] = ROM[0x8090+i];
+ ROM[0x27B8+i] = ROM[0x8190+i];
+ ROM[0x2800+i] = ROM[0x8028+i];
+ ROM[0x2B20+i] = ROM[0x8100+i];
+ ROM[0x2B30+i] = ROM[0x8110+i];
+ ROM[0x2BF0+i] = ROM[0x81D0+i];
+ ROM[0x2CC0+i] = ROM[0x80D0+i];
+ ROM[0x2CD8+i] = ROM[0x80E0+i];
+ ROM[0x2CF0+i] = ROM[0x81E0+i];
+ ROM[0x2D60+i] = ROM[0x8160+i];
+ }
+}
+
+DRIVER_INIT_MEMBER(pacman_state,mspacman)
+{
+ int i;
+ uint8_t *ROM, *DROM;
+
+ /* CPU ROMs */
+
+ /* Pac-Man code is in low bank */
+ ROM = machine().root_device().memregion("maincpu")->base();
+
+ /* decrypted Ms. Pac-Man code is in high bank */
+ DROM = &machine().root_device().memregion("maincpu")->base()[0x10000];
+
+ /* copy ROMs into decrypted bank */
+ for (i = 0; i < 0x1000; i++)
+ {
+ DROM[0x0000+i] = ROM[0x0000+i]; /* pacman.6e */
+ DROM[0x1000+i] = ROM[0x1000+i]; /* pacman.6f */
+ DROM[0x2000+i] = ROM[0x2000+i]; /* pacman.6h */
+ DROM[0x3000+i] = bitswap<8>(ROM[0xb000+BITSWAP12(i,11,3,7,9,10,8,6,5,4,2,1,0)],0,4,5,7,6,3,2,1); /* decrypt u7 */
+ }
+ for (i = 0; i < 0x800; i++)
+ {
+ DROM[0x8000+i] = bitswap<8>(ROM[0x8000+BITSWAP11(i, 8,7,5,9,10,6,3,4,2,1,0)],0,4,5,7,6,3,2,1); /* decrypt u5 */
+ DROM[0x8800+i] = bitswap<8>(ROM[0x9800+BITSWAP12(i,11,3,7,9,10,8,6,5,4,2,1,0)],0,4,5,7,6,3,2,1); /* decrypt half of u6 */
+ DROM[0x9000+i] = bitswap<8>(ROM[0x9000+BITSWAP12(i,11,3,7,9,10,8,6,5,4,2,1,0)],0,4,5,7,6,3,2,1); /* decrypt half of u6 */
+ DROM[0x9800+i] = ROM[0x1800+i]; /* mirror of pacman.6f high */
+ }
+ for (i = 0; i < 0x1000; i++)
+ {
+ DROM[0xa000+i] = ROM[0x2000+i]; /* mirror of pacman.6h */
+ DROM[0xb000+i] = ROM[0x3000+i]; /* mirror of pacman.6j */
+ }
+ /* install patches into decrypted bank */
+ mspacman_install_patches(DROM);
+
+ /* mirror Pac-Man ROMs into upper addresses of normal bank */
+ for (i = 0; i < 0x1000; i++)
+ {
+ ROM[0x8000+i] = ROM[0x0000+i];
+ ROM[0x9000+i] = ROM[0x1000+i];
+ ROM[0xa000+i] = ROM[0x2000+i];
+ ROM[0xb000+i] = ROM[0x3000+i];
+ }
+
+ /* initialize the banks */
+ machine().root_device().membank("bank1")->configure_entries(0, 2, &ROM[0x00000], 0x10000);
+ machine().root_device().membank("bank1")->set_entry(1);
+}
+
+
+
+/* used by extra routine at $3FE, bit 4 of 504d needs to be low, and of 504e to be high */
+READ8_MEMBER( pacman_state::mspacii_prot_r )
+{
+ return offset<<4;
+}
+
+/* For Zola's timer */
+
+READ8_MEMBER( pacman_state::zolatimer_r )
+{
+ uint8_t timernow = m_timerthing;
+ m_timerthing++;
+ return timernow;
+}
+
+WRITE8_MEMBER( pacman_state::zolatimer_w ) /* to stop it hanging when game reset */
+{
+ m_timerthing = data;
+}
+
+
+/********************************
+ Memory Maps
+ ********************************/
+
+
+/* Same as woodhack, plus it has nvram, and some extra ram at fffc */
+static ADDRESS_MAP_START( mspachi_map, AS_PROGRAM, 8, pacman_state )
+ AM_RANGE(0x0000, 0x3fff) AM_ROM
+ AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_videoram_w) AM_SHARE("videoram")
+ AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_colorram_w) AM_SHARE("colorram")
+ AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0xa000) AM_RAM AM_SHARE("nvram")
+ AM_RANGE(0x4c00, 0x4fef) AM_MIRROR(0xa000) AM_RAM
+ AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0xa000) AM_RAM AM_SHARE("spriteram")
+ AM_RANGE(0x5000, 0x5007) AM_DEVWRITE("mainlatch", addressable_latch_device, write_d0)
+ AM_RANGE(0x5040, 0x505f) AM_DEVWRITE("namco", namco_device, pacman_sound_w)
+ AM_RANGE(0x5060, 0x506f) AM_WRITEONLY AM_SHARE("spriteram2")
+ AM_RANGE(0x5070, 0x5080) AM_WRITENOP
+ AM_RANGE(0x50c0, 0x50c0) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
+ AM_RANGE(0x5000, 0x5000) AM_READ_PORT("IN0")
+ AM_RANGE(0x5040, 0x5040) AM_READ_PORT("IN1")
+ AM_RANGE(0x5080, 0x5080) AM_READ_PORT("DSW1")
+ AM_RANGE(0x50c0, 0x50c0) AM_READ_PORT("DSW2")
+ AM_RANGE(0x7000, 0x70ff) AM_RAM
+ AM_RANGE(0x8000, 0xbfff) AM_ROM
+ AM_RANGE(0xfffc, 0xffff) AM_RAM
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( mspacii_map, AS_PROGRAM, 8, pacman_state )
+ /* do not use UNMAP_HIGH (protection issues) */
+ AM_RANGE(0x0000, 0x3fff) AM_ROM
+ AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_videoram_w) AM_SHARE("videoram")
+ AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_colorram_w) AM_SHARE("colorram")
+ AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0xa000) AM_READ(pacman_read_nop)
+ AM_RANGE(0x4c00, 0x4fef) AM_MIRROR(0xa000) AM_RAM
+ AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0xa000) AM_RAM AM_SHARE("spriteram")
+ AM_RANGE(0x5000, 0x5007) AM_MIRROR(0x8000) AM_DEVWRITE("mainlatch", addressable_latch_device, write_d0)
+ AM_RANGE(0x5040, 0x505f) AM_MIRROR(0x8000) AM_DEVWRITE("namco", namco_device, pacman_sound_w)
+ AM_RANGE(0x5060, 0x506f) AM_MIRROR(0x8000) AM_WRITEONLY AM_SHARE("spriteram2")
+ AM_RANGE(0x5070, 0x5080) AM_MIRROR(0x8000) AM_WRITENOP
+ AM_RANGE(0x50c0, 0x50c0) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
+ AM_RANGE(0x5000, 0x5000) AM_MIRROR(0x8000) AM_READ_PORT("IN0")
+ AM_RANGE(0x5040, 0x5040) AM_MIRROR(0x8000) AM_READ_PORT("IN1")
+ AM_RANGE(0x504d, 0x506f) AM_READ(mspacii_prot_r)
+ AM_RANGE(0x5080, 0x5080) AM_MIRROR(0x8000) AM_READ_PORT("DSW1")
+ AM_RANGE(0x50c0, 0x50c0) AM_MIRROR(0x8000) AM_READ_PORT("DSW2")
+ AM_RANGE(0x8000, 0x9fff) AM_ROM
+ AM_RANGE(0xfffc, 0xffff) AM_WRITENOP
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( mspacman_map, AS_PROGRAM, 8, pacman_state )
+ AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_videoram_w) AM_SHARE("videoram")
+ AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_colorram_w) AM_SHARE("colorram")
+ AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0xa000) AM_READ(pacman_read_nop) AM_WRITENOP
+ AM_RANGE(0x4c00, 0x4fef) AM_MIRROR(0xa000) AM_RAM
+ AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0xa000) AM_RAM AM_SHARE("spriteram")
+ AM_RANGE(0x5000, 0x5007) AM_MIRROR(0xaf38) AM_DEVWRITE("mainlatch", addressable_latch_device, write_d0)
+ AM_RANGE(0x5040, 0x505f) AM_MIRROR(0xaf00) AM_DEVWRITE("namco", namco_device, pacman_sound_w)
+ AM_RANGE(0x5060, 0x506f) AM_MIRROR(0xaf00) AM_WRITEONLY AM_SHARE("spriteram2")
+ AM_RANGE(0x5070, 0x507f) AM_MIRROR(0xaf00) AM_WRITENOP
+ AM_RANGE(0x5080, 0x5080) AM_MIRROR(0xaf3f) AM_WRITENOP
+ AM_RANGE(0x50c0, 0x50c0) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
+ AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf3f) AM_READ_PORT("IN0")
+ AM_RANGE(0x5040, 0x5040) AM_MIRROR(0xaf3f) AM_READ_PORT("IN1")
+ AM_RANGE(0x5080, 0x5080) AM_MIRROR(0xaf3f) AM_READ_PORT("DSW1")
+ AM_RANGE(0x50c0, 0x50c0) AM_MIRROR(0xaf3f) AM_READ_PORT("DSW2")
+
+ /* overlay decode enable/disable on top */
+ AM_RANGE(0x0038, 0x003f) AM_READWRITE(mspacman_disable_decode_r_0x0038,mspacman_disable_decode_w)
+ AM_RANGE(0x03b0, 0x03b7) AM_READWRITE(mspacman_disable_decode_r_0x03b0,mspacman_disable_decode_w)
+ AM_RANGE(0x1600, 0x1607) AM_READWRITE(mspacman_disable_decode_r_0x1600,mspacman_disable_decode_w)
+ AM_RANGE(0x2120, 0x2127) AM_READWRITE(mspacman_disable_decode_r_0x2120,mspacman_disable_decode_w)
+ AM_RANGE(0x3ff0, 0x3ff7) AM_READWRITE(mspacman_disable_decode_r_0x3ff0,mspacman_disable_decode_w)
+ AM_RANGE(0x3ff8, 0x3fff) AM_READWRITE(mspacman_enable_decode_r_0x3ff8,mspacman_enable_decode_w)
+ AM_RANGE(0x8000, 0x8007) AM_READWRITE(mspacman_disable_decode_r_0x8000,mspacman_disable_decode_w)
+ AM_RANGE(0x97f0, 0x97f7) AM_READWRITE(mspacman_disable_decode_r_0x97f0,mspacman_disable_decode_w)
+
+ /* start with 0000-3fff and 8000-bfff mapped to the ROMs */
+ AM_RANGE(0x4000, 0x7fff) AM_MIRROR(0x8000) AM_UNMAP
+ AM_RANGE(0x0000, 0xffff) AM_ROMBANK("bank1")
+ADDRESS_MAP_END
+
+
+/* For Dave Widel's hacks */
+static ADDRESS_MAP_START( widel_map, AS_PROGRAM, 8, pacman_state )
+ /* bace and dderby set 5000-5FFF to zero for no apparent reason */
+ AM_RANGE(0x0000, 0x3fff) AM_ROM
+ AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0x8000) AM_RAM_WRITE(pacman_videoram_w) AM_SHARE("videoram")
+ AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0x8000) AM_RAM_WRITE(pacman_colorram_w) AM_SHARE("colorram")
+ AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0x8000) AM_READ(pacman_read_nop)
+ AM_RANGE(0x4c00, 0x4fef) AM_RAM
+ AM_RANGE(0x4ff0, 0x4fff) AM_RAM AM_SHARE("spriteram")
+ AM_RANGE(0x5000, 0x5007) AM_DEVWRITE("mainlatch", addressable_latch_device, write_d0)
+ AM_RANGE(0x5040, 0x505f) AM_DEVWRITE("namco", namco_device, pacman_sound_w)
+ AM_RANGE(0x5060, 0x506f) AM_WRITEONLY AM_SHARE("spriteram2")
+ AM_RANGE(0x5070, 0x5080) AM_WRITENOP
+ AM_RANGE(0x50c0, 0x50c0) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
+ AM_RANGE(0x5000, 0x5000) AM_READ_PORT("IN0")
+ AM_RANGE(0x5040, 0x5040) AM_READ_PORT("IN1")
+ AM_RANGE(0x5080, 0x5080) AM_READ_PORT("DSW1")
+ AM_RANGE(0x50c0, 0x50c0) AM_READ_PORT("DSW2") /* DSW2 - not used */
+ AM_RANGE(0x5103, 0x5103) AM_WRITENOP /* aa */
+ AM_RANGE(0x5c0e, 0x5c0e) AM_RAM /* mrmrspac */
+ AM_RANGE(0x5fff, 0x5fff) AM_READNOP /* aa */
+ AM_RANGE(0x8000, 0x9fff) AM_ROM /* only really needed by mrmrspac */
+ AM_RANGE(0xd000, 0xd000) AM_RAM /* mrmrspac */
+ AM_RANGE(0xf000, 0xffff) AM_RAM
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( zolapac_io, AS_IO, 8, pacman_state )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
+ AM_RANGE(0x00, 0x00) AM_READ(zolatimer_r)
+ AM_RANGE(0x10, 0x10) AM_WRITENOP /* writes 0 at reset */
+ AM_RANGE(0x11, 0x11) AM_WRITE(zolatimer_w)
+ADDRESS_MAP_END
+
+
+/*************************************
+ *
+ * Machine drivers
+ *
+ *************************************/
+
+/* only for encrypted sets with 20000 in cpu1 */
+static MACHINE_CONFIG_DERIVED( mspacman, pacman )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(mspacman_map)
+MACHINE_CONFIG_END
+
+/* Hires mspacman */
+static MACHINE_CONFIG_DERIVED( mspacmnx, pacmanx )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(mspacman_map)
+MACHINE_CONFIG_END
+
+/* Hires hacks */
+static MACHINE_CONFIG_DERIVED( woodpekx, pacmanx )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(woodpek_map)
+MACHINE_CONFIG_END
+
+/* MSPacman with modified memory maps */
+
+static MACHINE_CONFIG_DERIVED( mspacii, pacman )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(mspacii_map)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( zolapac, pacman )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(woodpek_map)
+ MCFG_CPU_IO_MAP(zolapac_io)
+MACHINE_CONFIG_END
+
+/* These drivers need the watchdog to be removed in order to work */
+
+static MACHINE_CONFIG_DERIVED( pachack, pacman )
+ MCFG_WATCHDOG_MODIFY("watchdog")
+ MCFG_WATCHDOG_VBLANK_INIT("screen", 0)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( mspachi, pachack )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(mspachi_map)
+ MCFG_NVRAM_ADD_0FILL("nvram")
+
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( widel, pachack )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(widel_map)
+MACHINE_CONFIG_END
+
+
+/*************************************
+ *
+ * Driver initialization
+ *
+ *************************************/
+
+
+/* The encryption is provided by a 74298 sitting on top of the rom at 6f.
+The select line is tied to a2; a0 and a1 of the eprom are are left out of
+socket and run through the 74298. Clock is tied to system clock. */
+DRIVER_INIT_MEMBER( pacman_state, mspacmbe )
+{
+ uint8_t temp;
+ uint8_t *RAM = machine().root_device().memregion("maincpu")->base();
+ int i;
+
+ /* Address lines A1 and A0 swapped if A2=0 */
+ for(i = 0x1000; i < 0x2000; i+=4)
+ {
+ if (!(i & 8))
+ {
+ temp = RAM[i+1];
+ RAM[i+1] = RAM[i+2];
+ RAM[i+2] = temp;
+ }
+ }
+}
+
+
+/*************************************
+ *
+ * ROM definitions
+ *
+ *************************************/
+
+
+ROM_START( chtmsatk )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "mspacatk.2", 0x1000, 0x1000, CRC(0af09d31) SHA1(6ff73e4da4910bcd2ca3aa299d8ffad23f8abf79) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "mspacatk.5", 0x8000, 0x1000, CRC(e6e06954) SHA1(ee5b266b1cc178df31fc1da5f66ef4911c653dda) )
+ ROM_LOAD( "mspacatk.6", 0x9000, 0x1000, CRC(3b5db308) SHA1(c1ba630cb8fb665c4881a6cce9d3b0d4300bd0eb) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) )
+ ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( chtmspa )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "mspacatk.2", 0x1000, 0x1000, CRC(0af09d31) SHA1(6ff73e4da4910bcd2ca3aa299d8ffad23f8abf79) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) )
+ ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( cookiem )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "cookiem.1", 0x0000, 0x1000, CRC(3c95b06b) SHA1(c123de2f3246af4074e6a2f3a5a29aec0c6cd0f9) )
+ ROM_LOAD( "cookiem.2", 0x1000, 0x1000, CRC(527859fb) SHA1(993baa017732e247e4c318a5f105a13c281fbd8d) ) // faulty
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "cookiem.4", 0x3000, 0x1000, CRC(66e397fd) SHA1(4e3d03abfaaa94a7a159fd51348ca6a7e4427272) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "cookiem.6", 0x9000, 0x1000, CRC(a96761a6) SHA1(73072f753f5659712e3644194a0982ef14648f46) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "cookiem.5e", 0x0000, 0x1000, CRC(ffb4de27) SHA1(ff12a37158e08f4d9ddad4184dfbd44f83120506) )
+ ROM_LOAD( "cookiem.5f", 0x1000, 0x1000, CRC(1b5875ac) SHA1(9b0f4b96de9d7a2c7abcb06efaf083ff8ab28abe) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( cottoh )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "cottoh.4", 0x3000, 0x1000, CRC(f0892bb8) SHA1(680d2335ca99128ad29295e161bd0bd52f9de0b8) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "cottoh.5e", 0x0000, 0x1000, CRC(8e78665a) SHA1(3d9c357bdcc7862d329d4f38c6d43bc792eee572) )
+ ROM_LOAD( "cottoh.5f", 0x1000, 0x1000, CRC(4f83ae26) SHA1(9c308c1b684812747d573058ef157db14f03d2d9) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( cottoh2 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "cottoh2.4", 0x3000, 0x1000, CRC(e285564b) SHA1(7b00549d680146fa2a88ce8a6ea45ece6e185d67) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "cottoh2.5e", 0x0000, 0x1000, CRC(3bbea74d) SHA1(613dc0989670347fa2827806b8408fc407d5386d) )
+ ROM_LOAD( "cottoh2.5f", 0x1000, 0x1000, CRC(9c3d7558) SHA1(803aef874d988f112dea54f442e12973c799ea2e) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( fasthear )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "fastplus.2", 0x1000, 0x1000, CRC(a8d6c227) SHA1(b5891f911bb054ca2547e663a3c27c93897f2075) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "heartbn2.5e", 0x0000, 0x1000, CRC(28eb876c) SHA1(6bd3b9efdab76b3bf7c7f08ba9f44f830290df43) )
+ ROM_LOAD( "heartbn2.5f", 0x1000, 0x1000, CRC(50fc9966) SHA1(21f79739b9884307430a35b2901098f45bbf5b7d) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( fastmspa )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "fastplus.2", 0x1000, 0x1000, CRC(a8d6c227) SHA1(b5891f911bb054ca2547e663a3c27c93897f2075) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) )
+ ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( faststrm )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "fastplus.2", 0x1000, 0x1000, CRC(a8d6c227) SHA1(b5891f911bb054ca2547e663a3c27c93897f2075) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "msdstorm.5e", 0x0000, 0x1000, CRC(b2940b89) SHA1(bfe7066fa11468d8373b43f966e76d92b17c0f48) )
+ ROM_LOAD( "msdstorm.5f", 0x1000, 0x1000, CRC(5c65865f) SHA1(988b6deccd985a32d4561164bfabd80ebb43f0a6) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( fstmsatk )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "fastplus.2", 0x1000, 0x1000, CRC(a8d6c227) SHA1(b5891f911bb054ca2547e663a3c27c93897f2075) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "mspacatk.5", 0x8000, 0x1000, CRC(e6e06954) SHA1(ee5b266b1cc178df31fc1da5f66ef4911c653dda) )
+ ROM_LOAD( "mspacatk.6", 0x9000, 0x1000, CRC(3b5db308) SHA1(c1ba630cb8fb665c4881a6cce9d3b0d4300bd0eb) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) )
+ ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( heartbn2 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "heartbn2.5e", 0x0000, 0x1000, CRC(28eb876c) SHA1(6bd3b9efdab76b3bf7c7f08ba9f44f830290df43) )
+ ROM_LOAD( "heartbn2.5f", 0x1000, 0x1000, CRC(50fc9966) SHA1(21f79739b9884307430a35b2901098f45bbf5b7d) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( heartbrn )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "heartbrn.5e", 0x0000, 0x1000, CRC(5431d4c4) SHA1(34d45da44b4208e2774f5e2af08657a9086252e6) )
+ ROM_LOAD( "heartbrn.5f", 0x1000, 0x1000, CRC(ceb50654) SHA1(70dbe3cc715d3d52ee3d4f8dadbf5c59f87166a3) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( horizpab )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "horizpac.1", 0x0000, 0x1000, CRC(7CC1979D) SHA1(557346859DCFCE806E83DCF0DA1FE60DA20FED81) )
+ ROM_LOAD( "horizpac.2", 0x1000, 0x1000, CRC(14202B73) SHA1(136B860D6AC8EFB9C83B67F77FBB47C3014D4ADC) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821EE0B) SHA1(5EA4D907DBB2690698DB72C4E0B5BE4D3E9A7786) )
+ ROM_LOAD( "horizpab.4", 0x3000, 0x1000, CRC(c9df7abe) SHA1(da21a182b81181260e2a1615115d22797bd1434a) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8C3E6DE6) SHA1(FED6E9A2B210B07E7189A18574F6B8C4EC5BB49B) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368CB165) SHA1(387010A0C76319A1EAB61B54C9BCB5C66C4B67A1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "horizpac.5e", 0x0000, 0x1000, CRC(0572335D) SHA1(F2D8BB3124970B298026E841E057FBCC7CDFC4B1) )
+ ROM_LOAD( "horizpac.5f", 0x1000, 0x1000, CRC(4198511D) SHA1(B3808062835AA0CC05FA19A678A5C8AB8FB646D7) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( horizpac )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "horizpac.1", 0x0000, 0x1000, CRC(7CC1979D) SHA1(557346859DCFCE806E83DCF0DA1FE60DA20FED81) )
+ ROM_LOAD( "horizpac.2", 0x1000, 0x1000, CRC(14202B73) SHA1(136B860D6AC8EFB9C83B67F77FBB47C3014D4ADC) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821EE0B) SHA1(5EA4D907DBB2690698DB72C4E0B5BE4D3E9A7786) )
+ ROM_LOAD( "horizpac.4", 0x3000, 0x1000, CRC(9A17E8DA) SHA1(2696643705878207952C4559C176D486BD0027C2) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8C3E6DE6) SHA1(FED6E9A2B210B07E7189A18574F6B8C4EC5BB49B) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368CB165) SHA1(387010A0C76319A1EAB61B54C9BCB5C66C4B67A1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "horizpac.5e", 0x0000, 0x1000, CRC(0572335D) SHA1(F2D8BB3124970B298026E841E057FBCC7CDFC4B1) )
+ ROM_LOAD( "horizpac.5f", 0x1000, 0x1000, CRC(4198511D) SHA1(B3808062835AA0CC05FA19A678A5C8AB8FB646D7) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mrmrspac )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "mrmrspac.1", 0x0000, 0x1000, CRC(02a86998) SHA1(649cfe5140eb63e42069ae9ad6c426837179fcbf) )
+ ROM_LOAD( "mrmrspac.2", 0x1000, 0x1000, CRC(8917172f) SHA1(7b09ab3b6f2a1b5d889a05295b42f70bafb5aa98) )
+ ROM_LOAD( "mrmrspac.3", 0x2000, 0x1000, CRC(6fd1444a) SHA1(64a98336eec75bb6ed90e77da18db8b71af562c1) )
+ ROM_LOAD( "mrmrspac.4", 0x3000, 0x1000, CRC(22f68a1f) SHA1(bd8d684f957ee33dace9eddcc923006036181787) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "mrmrspac.6", 0x9000, 0x1000, CRC(23580455) SHA1(836b815c7b1dd4deb1a1297556d0a5c126250c34) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) )
+ ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mrpacman )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "mrpacman.4", 0x3000, 0x1000, CRC(65c0526c) SHA1(b90f05a335a5ec641318dea15a97c9abb96ded2e) )
+ ROM_LOAD( "mrpacman.5", 0x8000, 0x1000, CRC(4078d9b2) SHA1(c294735341504787fa7f4bc44543e132d975c0a2) )
+ ROM_LOAD( "mrpacman.6", 0x9000, 0x1000, CRC(c1637f1c) SHA1(15577900bbba060e6c1b8dd03fcde19e7f4193c5) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "mrpacman.5e", 0x0000, 0x1000, CRC(83e6a3a9) SHA1(9e76e0ff114778183324c905c7600ef848bf4a76) )
+ ROM_LOAD( "mrpacman.5f", 0x1000, 0x1000, CRC(045dadf0) SHA1(1a28cb97ad547bddd3cc8e6d0102f7e1d43c71ea) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( ms1000 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "ms1000.4", 0x3000, 0x1000, CRC(22a10392) SHA1(7c17601428988dd996bbe64afee486fcf2333beb) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "ms1000.5e", 0x0000, 0x1000, CRC(adde7864) SHA1(6e21d412b11bbabf05c65ad3c0dccba73fe15eb5) )
+ ROM_LOAD( "ms1000.5f", 0x1000, 0x1000, CRC(5cb008a9) SHA1(bb9049b2a48773dac775acd70cb0cb54dcd6a5b0) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( ms2000 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "ms2000.4", 0x3000, 0x1000, CRC(a72e49df) SHA1(396bf713cddeb5521c614ff8483b0baef23af7d0) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "ms2000.5e", 0x0000, 0x1000, CRC(2bcce741) SHA1(fd9729e54b049723c0fb6c47effe39724577ba0d) )
+ ROM_LOAD( "ms2000.5f", 0x1000, 0x1000, CRC(4b40032a) SHA1(8002af3dfcfea82d56f5f04505d432c02dc56185) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( ms2600 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "ms2600.4", 0x3000, 0x1000, CRC(c2a293df) SHA1(98e864d1993c97293acea0febc9cac8eb0fb582c) )
+ ROM_LOAD( "ms2600.5", 0x8000, 0x1000, CRC(4852db05) SHA1(8471e1640164dc311e0180a7a8323208a40cf889) )
+ ROM_LOAD( "ms2600.6", 0x9000, 0x1000, CRC(f32b076f) SHA1(f361233a06e0376fe83a6fd0a071593c7c260cb1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "ms2600.5e", 0x0000, 0x1000, CRC(6b07b97a) SHA1(981ce12d92c57ed6c908d4b5b9b0c0b079d325db) )
+ ROM_LOAD( "ms2600.5f", 0x1000, 0x1000, CRC(f844608b) SHA1(80b4a51536ac4c83974726cbfb36232e06334329) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( ms3000 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "ms3000.4", 0x3000, 0x1000, CRC(46790576) SHA1(097366bb8008122bb8814e5db6228d1e5756cb41) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "ms3000.5e", 0x0000, 0x1000, CRC(1708299b) SHA1(c47d6d37f7c064f5bb22fa74c20fb259e9c694bf) )
+ ROM_LOAD( "ms3000.5f", 0x1000, 0x1000, CRC(cf4798e3) SHA1(046958565ba31a63b36b89ee2ddc599196af1ec3) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( ms4000p )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "ms4000p.4", 0x3000, 0x1000, CRC(ff418db8) SHA1(eec95b43e451af2ab3dbbee83c577548097a90ef) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "ms4000p.5e", 0x0000, 0x1000, CRC(05ed8a9f) SHA1(8654596af1de7ddcd1795d9a38e75deb7e6f96c6) )
+ ROM_LOAD( "ms4000p.5f", 0x1000, 0x1000, CRC(c0b58e02) SHA1(6ad23edff1b4a9324ea67ab28f3ab5e8362a55d8) )
+
+ PACPLUS_PROMS
+ROM_END
+
+ROM_START( ms5000 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "ms2000.4", 0x3000, 0x1000, CRC(a72e49df) SHA1(396bf713cddeb5521c614ff8483b0baef23af7d0) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+ ROM_FILL(0x3810, 1, 0x35) // put 5000 in because we don't have the actual ms5000 rom
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "ms5000.5e", 0x0000, 0x1000, CRC(fd1bd093) SHA1(b1b20614d2a06fa032373fb01e79b4004215e2b7) )
+ ROM_LOAD( "ms5000.5f", 0x1000, 0x1000, CRC(07d39d56) SHA1(2482477c8a2130dd5eb279b99e541bc5229c0778) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( ms5000p )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "ms5000p.4", 0x3000, 0x1000, CRC(d7ff3b21) SHA1(478557c734062fc30a8b0252ebe04e15ec81a29a) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "ms5000p.5e", 0x0000, 0x1000, CRC(4fd847aa) SHA1(39e1f184df81a61325a4d3cf2ef04eb3703f3944) )
+ ROM_LOAD( "ms5000p.5f", 0x1000, 0x1000, CRC(50d5fa64) SHA1(777e041901da0cae324524d64fa67b04b2f33bcc) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( msatk2ad )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "mspacatk.2", 0x1000, 0x1000, CRC(0af09d31) SHA1(6ff73e4da4910bcd2ca3aa299d8ffad23f8abf79) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "mspacat2.5", 0x8000, 0x1000, CRC(5a72a7a6) SHA1(aa54bf865e024fe00a8aefce6bc5086e90d71a54) )
+ ROM_LOAD( "mspacat2.6", 0x9000, 0x1000, CRC(bd0c3e94) SHA1(1b01ed6eab2c31bb874d1e51e773d0c130de7b75) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "msatkad.5e", 0x0000, 0x1000, CRC(dc70ed2e) SHA1(b9fbb1d21085bc78eb82c429506b20e332b18e0e) )
+ ROM_LOAD( "msatkad.5f", 0x1000, 0x1000, CRC(643d5523) SHA1(565f92294a4b6a11dc5e9a165f35284c2a526e6c) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( msatkad )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "mspacatk.2", 0x1000, 0x1000, CRC(0af09d31) SHA1(6ff73e4da4910bcd2ca3aa299d8ffad23f8abf79) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "mspacatk.5", 0x8000, 0x1000, CRC(e6e06954) SHA1(ee5b266b1cc178df31fc1da5f66ef4911c653dda) )
+ ROM_LOAD( "mspacatk.6", 0x9000, 0x1000, CRC(3b5db308) SHA1(c1ba630cb8fb665c4881a6cce9d3b0d4300bd0eb) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "msatkad.5e", 0x0000, 0x1000, CRC(dc70ed2e) SHA1(b9fbb1d21085bc78eb82c429506b20e332b18e0e) )
+ ROM_LOAD( "msatkad.5f", 0x1000, 0x1000, CRC(643d5523) SHA1(565f92294a4b6a11dc5e9a165f35284c2a526e6c) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( msbaby )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "msbaby.4", 0x3000, 0x1000, CRC(17aea21d) SHA1(2baa4b3812611ae8a1ff6b1b21b0a3ffd0d30be2) )
+ ROM_LOAD( "msbaby.5", 0x8000, 0x1000, CRC(0c08aa7f) SHA1(0d4079d68c86cd64e4d309fdc43d2022a50f172d) )
+ ROM_LOAD( "msbaby.6", 0x9000, 0x1000, CRC(e28aaa1f) SHA1(e0c4c1e0ceb3dfd6e63d954d3d6ea7924efac08b) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "msbaby.5e", 0x0000, 0x1000, CRC(e764738d) SHA1(79a7b871ee292d8cc2c4c97962fd876b4b95c4df) )
+ ROM_LOAD( "msbaby.5f", 0x1000, 0x1000, CRC(3d316ad0) SHA1(fd7d1a02930cc1c8a2f4aa8518d805601a8e0a80) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( msberzk )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "msberzk.4", 0x3000, 0x1000, CRC(795b1d20) SHA1(eb14ac6d2142fcfcbccf52eb7e8c51c208554eef) )
+ ROM_LOAD( "msberzk.5", 0x8000, 0x1000, CRC(9fc2a679) SHA1(2684ecc09e2cf055daee181371691fc09cbd585a) )
+ ROM_LOAD( "msberzk.6", 0x9000, 0x1000, CRC(6749a32d) SHA1(41b5b952c4f7f14b6a3884291c87e9ee6e760231) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "msberzk.5e", 0x0000, 0x1000, CRC(92692429) SHA1(af5e72c445c7ea35655730364072c269befbc66f) )
+ ROM_LOAD( "msberzk.5f", 0x1000, 0x1000, CRC(7c32ed2e) SHA1(124ff35143b1fcaa25d810a3479ae363cf74d2c9) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mscrzyma )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "mscrzyma.3", 0x2000, 0x1000, CRC(513f4d5c) SHA1(ae011b89422bd8cbb80389814500bc1427f6ecb2) )
+ ROM_LOAD( "mscrzyma.4", 0x3000, 0x1000, CRC(f2b17834) SHA1(4d687e681d21a9a702ed5e8022c9098b8347811a) )
+ ROM_LOAD( "mspacnes.5", 0x8000, 0x1000, CRC(43936999) SHA1(4261f0bbb9ece2370c6283763a396ad851f42c51) )
+ ROM_LOAD( "mspacnes.6", 0x9000, 0x1000, CRC(a15b524e) SHA1(91f211e479261b344fc64517394abf7a8f9d6f4b) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "ms2000.5e", 0x0000, 0x1000, CRC(2bcce741) SHA1(fd9729e54b049723c0fb6c47effe39724577ba0d) )
+ ROM_LOAD( "mscrzyma.5f", 0x1000, 0x1000, CRC(2a9d6f77) SHA1(bcfec717967e64891d9638037ba5331b22654229) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mscrzymp )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "mscrzyma.3", 0x2000, 0x1000, CRC(513f4d5c) SHA1(ae011b89422bd8cbb80389814500bc1427f6ecb2) )
+ ROM_LOAD( "mscrzymp.4", 0x3000, 0x1000, CRC(db440183) SHA1(ec4e7a7324f77818e7357e6c7c9e8af257fcbc7d) )
+ ROM_LOAD( "mspacnes.5", 0x8000, 0x1000, CRC(43936999) SHA1(4261f0bbb9ece2370c6283763a396ad851f42c51) )
+ ROM_LOAD( "mspacnes.6", 0x9000, 0x1000, CRC(a15b524e) SHA1(91f211e479261b344fc64517394abf7a8f9d6f4b) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "mscrzymp.5e", 0x0000, 0x1000, CRC(d43a7194) SHA1(2508b14778f8ff2d76b7ec00ba9fc30a0f606dcf) )
+ ROM_LOAD( "mscrzymp.5f", 0x1000, 0x1000, CRC(7af54907) SHA1(d930b90f0500c3be451996ced9578ce870a1d6d5) )
+
+ PACPLUS_PROMS
+ROM_END
+
+ROM_START( msdroid )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "msdroid.4", 0x3000, 0x1000, CRC(984b3e88) SHA1(fb7c29adf0c7434c639fd82abf7aa9c709b37054) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "msdroid.5e", 0x0000, 0x1000, CRC(97f5dd55) SHA1(14a1a8dda66223392fbae51af654607c56ac266e) )
+ ROM_LOAD( "msdroid.5f", 0x1000, 0x1000, CRC(c0e47314) SHA1(d8a51d280bba4ad93db8019111ac4393aea9f9a2) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( msdstorm )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "msdstorm.5e", 0x0000, 0x1000, CRC(b2940b89) SHA1(bfe7066fa11468d8373b43f966e76d92b17c0f48) )
+ ROM_LOAD( "msdstorm.5f", 0x1000, 0x1000, CRC(5c65865f) SHA1(988b6deccd985a32d4561164bfabd80ebb43f0a6) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mselton )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) )
+ ROM_LOAD( "mselton.5f", 0x1000, 0x1000, CRC(30d0b19f) SHA1(9964a5a103ce1975d8606d5cfd2306c05a74aca3) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( msextra )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "msextra.4", 0x3000, 0x1000, CRC(b13d0521) SHA1(67e51e5447e5376a76ba1de6c600cf8aba6103f9) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "msextra.5e", 0x0000, 0x1000, CRC(b656c0c5) SHA1(efa8aed573b4258a6f6da96b04968a9197ad2d33) )
+ ROM_LOAD( "msextra.5f", 0x1000, 0x1000, CRC(c5d7017b) SHA1(29fa44d925526ab7f6385a2d4c750492063131ab) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( msextrap )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "msextrap.4", 0x3000, 0x1000, CRC(728f7465) SHA1(c3e089d2c7bace010e29f4cb861baa888007e8bf) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "msextrap.5e", 0x0000, 0x1000, CRC(1a2fa3e2) SHA1(dafccc8123093a9f5306c0c19367c3accd755ca1) )
+ ROM_LOAD( "msextrap.5f", 0x1000, 0x1000, CRC(5a400cbc) SHA1(7351b9c7f196fc49fdab04a135a1519ca6d489ed) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( msf1pac )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "msf1pac.4", 0x3000, 0x1000, CRC(e255428b) SHA1(fd128743eac8521f1a65bdbb2cfd59398eddfac5) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "msindy.5e", 0x0000, 0x1000, CRC(c7183fd2) SHA1(af7e3bb7c4751f5df12bd321d6f583045c5acb10) )
+ ROM_LOAD( "msindy.5f", 0x1000, 0x1000, CRC(a355e061) SHA1(b9223e01a77027d2f6afe4502b4a2dce3b3bdc0e) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( msgrkatk )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "mspacatk.2", 0x1000, 0x1000, CRC(0af09d31) SHA1(6ff73e4da4910bcd2ca3aa299d8ffad23f8abf79) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "msgrkb.4", 0x3000, 0x1000, CRC(7143729f) SHA1(87152df222364908852b1d242dff15889da5e95d) )
+ ROM_LOAD( "mspacatk.5", 0x8000, 0x1000, CRC(e6e06954) SHA1(ee5b266b1cc178df31fc1da5f66ef4911c653dda) )
+ ROM_LOAD( "mspacatk.6", 0x9000, 0x1000, CRC(3b5db308) SHA1(c1ba630cb8fb665c4881a6cce9d3b0d4300bd0eb) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "msgrkb.5e", 0x0000, 0x1000, CRC(b6526896) SHA1(904dc168680cec660bee5a1a28a6a4b0dee9364e) )
+ ROM_LOAD( "msgrkb.5f", 0x1000, 0x1000, CRC(043b1c9b) SHA1(6aa7971390272c3df4ceaf7718ad08086bb33b5c) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( msgrkb )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "msgrkb.4", 0x3000, 0x1000, CRC(7143729f) SHA1(87152df222364908852b1d242dff15889da5e95d) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "msgrkb.5e", 0x0000, 0x1000, CRC(b6526896) SHA1(904dc168680cec660bee5a1a28a6a4b0dee9364e) )
+ ROM_LOAD( "msgrkb.5f", 0x1000, 0x1000, CRC(043b1c9b) SHA1(6aa7971390272c3df4ceaf7718ad08086bb33b5c) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mshangly )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "mshangly.5", 0x8000, 0x1000, CRC(00c4d538) SHA1(cbfc9c10809631aae3fe9c454661ffa84a34138c) )
+ ROM_LOAD( "mshangly.6", 0x9000, 0x1000, CRC(7a600536) SHA1(7172b4658c1b0ea4cdcc55b7f21225d82e116e5e) )
+ /* The dot counts are wrong, they are at 8b2c, 8e17, 9109, 93f9 for each map 1-4 */
+ ROM_FILL ( 0x8b2c, 1, 0xdc ) /* Change dot count for map 1 from E0 to DC */
+ ROM_FILL ( 0x8e17, 1, 0xf2 ) /* Change dot count for map 2 from F4 to F2 */
+ ROM_FILL ( 0x93f9, 1, 0xec ) /* Map 3 (=F2) is ok, change dot count for map 4 from EE to EC */
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) )
+ ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( msheartb )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "msheart.5e", 0x0000, 0x1000, CRC(56f505f1) SHA1(5628874f332d348a61c1abcf116278ece534a7ba) )
+ ROM_LOAD( "msheart.5f", 0x1000, 0x1000, CRC(662423ca) SHA1(e22a20e2ed51b4efe39665222669d86353d6c4c5) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mshearts )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "mshearts.5e", 0x0000, 0x1000, CRC(0b5cf081) SHA1(9333369dd282f725c01831314f2aafd1667c64f9) )
+ ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( msindy )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "msindy.4", 0x3000, 0x1000, CRC(8e234b3a) SHA1(f54f94aa80486a96178765378123a16a2637a47b) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "msindy.5e", 0x0000, 0x1000, CRC(c7183fd2) SHA1(af7e3bb7c4751f5df12bd321d6f583045c5acb10) )
+ ROM_LOAD( "msindy.5f", 0x1000, 0x1000, CRC(a355e061) SHA1(b9223e01a77027d2f6afe4502b4a2dce3b3bdc0e) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( msmini )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "msmini.5e", 0x0000, 0x1000, CRC(7787a3f6) SHA1(8d89be6fcc1dfeb4470a721c9c89225ea8c7cfad) )
+ ROM_LOAD( "msmini.5f", 0x1000, 0x1000, CRC(98ab3c44) SHA1(07dcfb7d6f2ca50e6e50ee1c14c229d26bb4b909) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( msminia )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "mspacatk.2", 0x1000, 0x1000, CRC(0af09d31) SHA1(6ff73e4da4910bcd2ca3aa299d8ffad23f8abf79) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "mspacatk.5", 0x8000, 0x1000, CRC(e6e06954) SHA1(ee5b266b1cc178df31fc1da5f66ef4911c653dda) )
+ ROM_LOAD( "mspacatk.6", 0x9000, 0x1000, CRC(3b5db308) SHA1(c1ba630cb8fb665c4881a6cce9d3b0d4300bd0eb) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "msmini.5e", 0x0000, 0x1000, CRC(7787a3f6) SHA1(8d89be6fcc1dfeb4470a721c9c89225ea8c7cfad) )
+ ROM_LOAD( "msmini.5f", 0x1000, 0x1000, CRC(98ab3c44) SHA1(07dcfb7d6f2ca50e6e50ee1c14c229d26bb4b909) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( msmspac )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "msmspac.4", 0x3000, 0x1000, CRC(1c11c60f) SHA1(d445a333f79ad8a6886e3b08fc39dee01733cf07) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) )
+ ROM_LOAD( "msmspac.5f", 0x1000, 0x1000, CRC(a0ffcd08) SHA1(0cd5028e97fafdd8b9b221a7a07bdc81826f4765) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( msnes4a )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "mscrzyma.3", 0x2000, 0x1000, CRC(513f4d5c) SHA1(ae011b89422bd8cbb80389814500bc1427f6ecb2) )
+ ROM_LOAD( "mspac6m.4", 0x3000, 0x1000, CRC(e21c81ff) SHA1(5a6ce8ee3059a31afbb9b8c1d0a1e37606d14a0a) )
+ ROM_LOAD( "msnes4a.5", 0x8000, 0x1000, CRC(d16b9605) SHA1(b54691591794fd8d9c9097da49add34f49021b50) )
+ ROM_LOAD( "msnes4a.6", 0x9000, 0x1000, CRC(e6b58707) SHA1(cf0c5a3fbb9ae9a99a9c5c74ba45ac86323a0396) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "msnes4a.5e", 0x0000, 0x1000, CRC(22e5b64e) SHA1(56e81329bee499a798a01867dbf2ceae6af2e11a) )
+ ROM_LOAD( "mspacnes.5f", 0x1000, 0x1000, CRC(6a4db98d) SHA1(e0eeb83c1265f5c9881e1c752842d20dabf35783) )
+
+ PACPLUS_PROMS
+ROM_END
+
+ROM_START( msnes62 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "mscrzyma.3", 0x2000, 0x1000, CRC(513f4d5c) SHA1(ae011b89422bd8cbb80389814500bc1427f6ecb2) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "msnes62.5", 0x8000, 0x1000, CRC(52120bc9) SHA1(dc3608672e614a486306660bd367b325cdb51bda) )
+ ROM_LOAD( "msnes62.6", 0x9000, 0x1000, CRC(8fd36e02) SHA1(6d0b04b7efd8a4a6773d60e5e748243cf1c56a1a) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "mspacnes.5e", 0x0000, 0x1000, CRC(d3a28769) SHA1(3fa7d9a235e0bf8aae03b15c5377401f029d6946) )
+ ROM_LOAD( "mspacnes.5f", 0x1000, 0x1000, CRC(6a4db98d) SHA1(e0eeb83c1265f5c9881e1c752842d20dabf35783) )
+
+ PACPLUS_PROMS
+ROM_END
+
+ROM_START( msnes63 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "mscrzyma.3", 0x2000, 0x1000, CRC(513f4d5c) SHA1(ae011b89422bd8cbb80389814500bc1427f6ecb2) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "msnes63.5", 0x8000, 0x1000, CRC(f4ea7d2c) SHA1(c490720d3b76615f46cae1f9bfbfc74da6f2854a) )
+ ROM_LOAD( "msnes63.6", 0x9000, 0x1000, CRC(1ea43bba) SHA1(0c52d0d2ca866b750a03587c8c51c14f67327d43) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "mspacnes.5e", 0x0000, 0x1000, CRC(d3a28769) SHA1(3fa7d9a235e0bf8aae03b15c5377401f029d6946) )
+ ROM_LOAD( "mspacnes.5f", 0x1000, 0x1000, CRC(6a4db98d) SHA1(e0eeb83c1265f5c9881e1c752842d20dabf35783) )
+
+ PACPLUS_PROMS
+ROM_END
+
+ROM_START( msnes6m )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "mscrzyma.3", 0x2000, 0x1000, CRC(513f4d5c) SHA1(ae011b89422bd8cbb80389814500bc1427f6ecb2) )
+ ROM_LOAD( "mspac6m.4", 0x3000, 0x1000, CRC(e21c81ff) SHA1(5a6ce8ee3059a31afbb9b8c1d0a1e37606d14a0a) )
+ ROM_LOAD( "msnes6m.5", 0x8000, 0x1000, CRC(bc091971) SHA1(d5046f5dcffd027805a53be937e7389a135e980f) )
+ ROM_LOAD( "msnes6m.6", 0x9000, 0x1000, CRC(23ebe9a1) SHA1(a51b6bd74edbea8e34ef35602c4aa8723d7f745a) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "msnes6m.5e", 0x0000, 0x1000, CRC(3abb116b) SHA1(75abb47c9acfc4048d18265ff2a42db2d3591a48) )
+ ROM_LOAD( "mspacnes.5f", 0x1000, 0x1000, CRC(6a4db98d) SHA1(e0eeb83c1265f5c9881e1c752842d20dabf35783) )
+
+ PACPLUS_PROMS
+ROM_END
+
+ROM_START( msnes6m2 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "mscrzyma.3", 0x2000, 0x1000, CRC(513f4d5c) SHA1(ae011b89422bd8cbb80389814500bc1427f6ecb2) )
+ ROM_LOAD( "mspac6m.4", 0x3000, 0x1000, CRC(e21c81ff) SHA1(5a6ce8ee3059a31afbb9b8c1d0a1e37606d14a0a) )
+ ROM_LOAD( "msstrmaz.5", 0x8000, 0x1000, CRC(b8f8edda) SHA1(5af8c7908df0d45d456cfe68470ba2098c956cac) )
+ ROM_LOAD( "msstrmaz.6", 0x9000, 0x1000, CRC(5d7888bc) SHA1(1f3ecd3bc787dd64ed41b1d664cf6794fa799ee8) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "msnes6m.5e", 0x0000, 0x1000, CRC(3abb116b) SHA1(75abb47c9acfc4048d18265ff2a42db2d3591a48) )
+ ROM_LOAD( "mspacnes.5f", 0x1000, 0x1000, CRC(6a4db98d) SHA1(e0eeb83c1265f5c9881e1c752842d20dabf35783) )
+
+ PACPLUS_PROMS
+ROM_END
+
+ROM_START( msnes6m3 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "mscrzyma.3", 0x2000, 0x1000, CRC(513f4d5c) SHA1(ae011b89422bd8cbb80389814500bc1427f6ecb2) )
+ ROM_LOAD( "mspac6m.4", 0x3000, 0x1000, CRC(e21c81ff) SHA1(5a6ce8ee3059a31afbb9b8c1d0a1e37606d14a0a) )
+ ROM_LOAD( "msnes6m3.5", 0x8000, 0x1000, CRC(20833779) SHA1(07826e21a14c15590cba7b9a08d2b91bf247cfe7) )
+ ROM_LOAD( "msnes6m3.6", 0x9000, 0x1000, CRC(a047e68f) SHA1(8b99f471f39c6c383f84754996b644fe067527f7) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "msnes6m.5e", 0x0000, 0x1000, CRC(3abb116b) SHA1(75abb47c9acfc4048d18265ff2a42db2d3591a48) )
+ ROM_LOAD( "mspacnes.5f", 0x1000, 0x1000, CRC(6a4db98d) SHA1(e0eeb83c1265f5c9881e1c752842d20dabf35783) )
+
+ PACPLUS_PROMS
+ROM_END
+
+ROM_START( msnes6m4 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "mscrzyma.3", 0x2000, 0x1000, CRC(513f4d5c) SHA1(ae011b89422bd8cbb80389814500bc1427f6ecb2) )
+ ROM_LOAD( "mspac6m.4", 0x3000, 0x1000, CRC(e21c81ff) SHA1(5a6ce8ee3059a31afbb9b8c1d0a1e37606d14a0a) )
+ ROM_LOAD( "msnes6m4.5", 0x8000, 0x1000, CRC(23c0db46) SHA1(dea5a3eeb1fb480f275cc2729b7ad604aa0824d3) )
+ ROM_LOAD( "msnes6m4.6", 0x9000, 0x1000, CRC(daafdb39) SHA1(4120bdd859f37b065279cf048937cd1a5ce526da) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "msnes4a.5e", 0x0000, 0x1000, CRC(22e5b64e) SHA1(56e81329bee499a798a01867dbf2ceae6af2e11a) )
+ ROM_LOAD( "mspacnes.5f", 0x1000, 0x1000, CRC(6a4db98d) SHA1(e0eeb83c1265f5c9881e1c752842d20dabf35783) )
+
+ PACPLUS_PROMS
+ROM_END
+
+ROM_START( mspac1 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "mspac1.cpu", 0x0000, 0x4000, CRC(ba5953c8) SHA1(ee5a0b9594f88c60be93e13f70adf45c5939f4da) )
+ ROM_CONTINUE( 0x8000, 0x2000 )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) )
+ ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mspac6m )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "mscrzyma.3", 0x2000, 0x1000, CRC(513f4d5c) SHA1(ae011b89422bd8cbb80389814500bc1427f6ecb2) )
+ ROM_LOAD( "mspac6m.4", 0x3000, 0x1000, CRC(e21c81ff) SHA1(5a6ce8ee3059a31afbb9b8c1d0a1e37606d14a0a) )
+ ROM_LOAD( "mspac6m.5", 0x8000, 0x1000, CRC(d0bd89d9) SHA1(c47e96d68d7e88e906b416c24ce926b76689f22d) )
+ ROM_LOAD( "mspac6m.6", 0x9000, 0x1000, CRC(c5662407) SHA1(98827bda653b6d1d6984082c706247392ab706d2) )
+
+ ROM_REGION( 0x2000, "gfx1" , 0 )
+ ROM_LOAD( "mspac6m.5e", 0x0000, 0x0800, CRC(2850148a) SHA1(4257a5dd4ad27d4a6bfae71bbe2564026bdaebb2) )
+ ROM_LOAD( "mspac6m.5h", 0x0800, 0x0800, CRC(6c3c6ebb) SHA1(3f19e9a20e202fda139324ef03991af99516aeef) )
+ ROM_LOAD( "mspac6m.5f", 0x1000, 0x0800, CRC(5596b345) SHA1(0320eb1f7e39dbd438be2f488f43f5b11e13f438) )
+ ROM_LOAD( "mspacit.5j", 0x1800, 0x0800, CRC(50c7477d) SHA1(c04ec282a8cb528df5e38ad750d12ee71612695d) )
+
+ PACPLUS_PROMS
+ROM_END
+
+ROM_START( mspac6m2 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "mscrzyma.3", 0x2000, 0x1000, CRC(513f4d5c) SHA1(ae011b89422bd8cbb80389814500bc1427f6ecb2) )
+ ROM_LOAD( "mspac6m.4", 0x3000, 0x1000, CRC(e21c81ff) SHA1(5a6ce8ee3059a31afbb9b8c1d0a1e37606d14a0a) )
+ ROM_LOAD( "mspac6m2.5", 0x8000, 0x1000, CRC(48453707) SHA1(3faf536de2e56770a99379849409eeea01b2d031) )
+ ROM_LOAD( "mspac6m2.6", 0x9000, 0x1000, CRC(2e961bc4) SHA1(e29814151edde8a22e638a4a8edb9935e48d985b) )
+
+ ROM_REGION( 0x2000, "gfx1" , 0 )
+ ROM_LOAD( "mspac6m.5e", 0x0000, 0x0800, CRC(2850148a) SHA1(4257a5dd4ad27d4a6bfae71bbe2564026bdaebb2) )
+ ROM_LOAD( "mspac6m.5h", 0x0800, 0x0800, CRC(6c3c6ebb) SHA1(3f19e9a20e202fda139324ef03991af99516aeef) )
+ ROM_LOAD( "mspac6m.5f", 0x1000, 0x0800, CRC(5596b345) SHA1(0320eb1f7e39dbd438be2f488f43f5b11e13f438) )
+ ROM_LOAD( "mspacit.5j", 0x1800, 0x0800, CRC(50c7477d) SHA1(c04ec282a8cb528df5e38ad750d12ee71612695d) )
+
+ PACPLUS_PROMS
+ROM_END
+
+ROM_START( mspacad )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "mspacad.5e", 0x0000, 0x1000, CRC(c3dca510) SHA1(6e9c3e47f2f928ef3857dce8bc26352a80d4a52d) )
+ ROM_LOAD( "msvectr.5f", 0x1000, 0x1000, CRC(57cb31e3) SHA1(dc9278cee7f7ce341087760654bf0a1bcdeb2f7c) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mspacat2 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "mspacatk.2", 0x1000, 0x1000, CRC(0af09d31) SHA1(6ff73e4da4910bcd2ca3aa299d8ffad23f8abf79) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "mspacat2.5", 0x8000, 0x1000, CRC(5a72a7a6) SHA1(aa54bf865e024fe00a8aefce6bc5086e90d71a54) )
+ ROM_LOAD( "mspacat2.6", 0x9000, 0x1000, CRC(bd0c3e94) SHA1(1b01ed6eab2c31bb874d1e51e773d0c130de7b75) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) )
+ ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mspacatb )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "mspacatk.2", 0x1000, 0x1000, CRC(0af09d31) SHA1(6ff73e4da4910bcd2ca3aa299d8ffad23f8abf79) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "mspacat2.5", 0x8000, 0x1000, CRC(5a72a7a6) SHA1(aa54bf865e024fe00a8aefce6bc5086e90d71a54) )
+ ROM_LOAD( "mspacatb.6b", 0x9000, 0x1000, CRC(7a8c4dfe) SHA1(b450a3272255527838b806dc0318256e47593018) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) )
+ ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mspacatx )
+ ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k for code+64k for decrypted code */
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) )
+ ROM_LOAD( "u5", 0x8000, 0x0800, CRC(f45fbbcd) SHA1(b26cc1c8ee18e9b1daa97956d2159b954703a0ec) )
+ ROM_LOAD( "u6pacatk", 0x9000, 0x1000, CRC(f6d83f4d) SHA1(6135b187d6b968554d08f2ac00d3a3313efb8638) )
+ ROM_LOAD( "u7", 0xb000, 0x1000, CRC(c82cd714) SHA1(1d8ac7ad03db2dc4c8c18ade466e12032673f874) )
+
+ ROM_REGION( 0x8000, "gfx1", 0 )
+ ROM_LOAD( "mspacmnx.5e", 0x0000, 0x4000, CRC(d9a2897d) SHA1(38cc83d1a854ae289da7904faff32114a9731bda) )
+ ROM_LOAD( "mspacmnx.5f", 0x4000, 0x4000, CRC(6f625a9e) SHA1(d9d739ba412c9374b26006d99a345212ef97f868) )
+
+ PACMAN_PROMS
+ROM_END
+
+/* This dump had a bad rom at position 5a, i have re-created it from one half of boot5. This seems reasonable
+ since the rom at position 5b is identical to the other half of boot5.
+ More: checking against E180 shows this is correct, and also supplies the missing 6b rom. */
+ROM_START( mspacde )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "mspacde.5a", 0x8000, 0x0800, CRC(cb8a001c) SHA1(398992352c51f82049a4ac981fd152c4c2863f2d) )
+ ROM_LOAD( "mspacde.5b", 0x8800, 0x0800, CRC(3e866689) SHA1(fbcb8eaddf15fd988de2cb35f93003380ee6e2de) )
+ ROM_LOAD( "mspacde.6a", 0x9000, 0x0800, CRC(286041cf) SHA1(5a5fc97ea66a59895b3403b2982940b755076667) )
+ ROM_LOAD( "mspacde.6b", 0x9800, 0x0800, CRC(321784cf) SHA1(9b67741e035fe1528e971db9072eea8982235a63) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "mspacit.5e", 0x0000, 0x0800, CRC(93933d1d) SHA1(fa38d2cb87e872bb9a3158a4df98f38360dc85ec) )
+ ROM_LOAD( "mspacit.5h", 0x0800, 0x0800, CRC(7409fbec) SHA1(f440f08ba026ae6172666e1bdc0894ce33bba420) )
+ ROM_LOAD( "mspacit.5f", 0x1000, 0x0800, CRC(22b0188a) SHA1(a9ed9ca8b36a60081fd364abc9bc23963932cc0b) )
+ ROM_LOAD( "mspacit.5j", 0x1800, 0x0800, CRC(50c7477d) SHA1(c04ec282a8cb528df5e38ad750d12ee71612695d) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mspacdel )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "mspacdel.4", 0x3000, 0x1000, CRC(af8c63ad) SHA1(e119eac748179fef53b8fd62f33885df53bf94fa) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "mspacdel.5e", 0x0000, 0x1000, CRC(605becd7) SHA1(d16bd3e151273ab6652b4f105dd58ef95c18b387) )
+ ROM_LOAD( "mspacdel.5f", 0x1000, 0x1000, CRC(435de4cb) SHA1(f3aa39e969f79b0e01378c870e874f8076def746) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mspacfnt )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "mspacfnt.5e", 0x0000, 0x1000, CRC(6d6d7af4) SHA1(768dc3fa909f6fef77eb3d72c287c91f3da2ae70) )
+ ROM_LOAD( "mspacfnt.5f", 0x1000, 0x1000, CRC(7537ee90) SHA1(9e861fca1706ecabaad15ba3fc817bdc3146ea1d) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mspachi )
+ ROM_REGION( 0x11000, "maincpu", 0 )
+ ROM_LOAD( "mspachi.1", 0x0000, 0x1000, CRC(dca2ffc4) SHA1(746ebc8afd3172323f1c19e97e55e0f906d68ea4) )
+ ROM_LOAD( "mspachi.2", 0x1000, 0x1000, CRC(fea2627b) SHA1(bc7249f0939dc003de509721e7d4f669defefcfe) )
+ ROM_LOAD( "mspachi.3", 0x2000, 0x1000, CRC(a9a32749) SHA1(2d1036a0903a12f4f8b9e56c1599d1dccea8991a) )
+ ROM_LOAD( "mspachi.4", 0x3000, 0x1000, CRC(9123cd53) SHA1(e6a3461c818b2bc779f02c23d59e54530ef76584) )
+ ROM_LOAD( "mspachi.5", 0x8000, 0x1000, CRC(397f196d) SHA1(aab641b8053adc0a43ee5d2eba43aa6c12326dec) )
+ ROM_LOAD( "mspachi.6", 0x9000, 0x2000, CRC(50de42d3) SHA1(66b2dd376ab69cab2593357489251f06bc621120) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) )
+ ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mspacii )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "mspacii.1", 0x0000, 0x1000, CRC(df673b57) SHA1(93ee4e8f9751db5f7d3c35988fcb8ae8037464ed) )
+ ROM_LOAD( "mspacii.2", 0x1000, 0x1000, CRC(7591f606) SHA1(0aead0ac5af602269df8732c5763147cdb543b8d) )
+ ROM_LOAD( "mspacii.3", 0x2000, 0x1000, CRC(c8ef1a7f) SHA1(0c9a28bbe63d7d44511a13316937a21b8846543e) )
+ ROM_LOAD( "mspacii.4", 0x3000, 0x1000, CRC(d498f435) SHA1(c041841b1349d8d5c2d560aed54c4aeb8adfddb8) )
+ ROM_LOAD( "mspacii.5", 0x8000, 0x1000, CRC(fbbc3d2e) SHA1(dc4337d7f0961e048a433021f670da6d314bd663) )
+ ROM_LOAD( "mspacii.6", 0x9000, 0x1000, CRC(aa3887c5) SHA1(0e20cb686383156a9883749568c8e57c15c3ae44) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "mspacii.5e", 0x0000, 0x1000, CRC(04333722) SHA1(bb179d5302b26b815b5d7eff14865e7b4f8a6880) )
+ ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mspacit )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "mspacit.4", 0x3000, 0x1000, CRC(50dcba32) SHA1(cc454829cd71ca874029a20118027873df824c66) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "mspacit.6", 0x9000, 0x1000, CRC(3a1d5323) SHA1(16e7dddf40505706ece2d053d51e28bff8be8e77) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "mspacit.5e", 0x0000, 0x0800, CRC(93933d1d) SHA1(fa38d2cb87e872bb9a3158a4df98f38360dc85ec) )
+ ROM_LOAD( "mspacit.5h", 0x0800, 0x0800, CRC(7409fbec) SHA1(f440f08ba026ae6172666e1bdc0894ce33bba420) )
+ ROM_LOAD( "mspacit.5f", 0x1000, 0x0800, CRC(22b0188a) SHA1(a9ed9ca8b36a60081fd364abc9bc23963932cc0b) )
+ ROM_LOAD( "mspacit.5j", 0x1800, 0x0800, CRC(50c7477d) SHA1(c04ec282a8cb528df5e38ad750d12ee71612695d) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD( "mspacit.7f", 0x0000, 0x0020, CRC(2c3cc909) SHA1(32d68d4cfdf9f3e7351353428d268c763e809c63) )
+ ROM_LOAD( "82s126.4a", 0x0020, 0x0100, CRC(3eb3a8e4) SHA1(19097b5f60d1030f8b82d9f1d3a241f93e5c75d6) )
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ /* The sound is extremely distorted, perhaps a bad dump? The patches below fix the changed bytes */
+ ROM_LOAD( "mspacit.1m", 0x0000, 0x0100, CRC(3cb61034) SHA1(2f24b88839aee107a0ac1064f8bc4853933f5205) )
+ ROM_FILL( 0x0a, 1, 13 )
+ ROM_FILL( 0x2a, 1, 10 )
+ ROM_FILL( 0x4a, 1, 2 )
+ ROM_FILL( 0x8a, 1, 13 )
+ ROM_FILL( 0xaa, 1, 2 )
+ ROM_FILL( 0xca, 1, 10 )
+ ROM_LOAD( "82s126.3m", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) )
+ROM_END
+
+/* This was listed as a pac-gal clone however it is just another MS Pacman (mspacit with slightly altered gfx) */
+ROM_START( mspacit2 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "mspacit.4", 0x3000, 0x1000, CRC(50dcba32) SHA1(cc454829cd71ca874029a20118027873df824c66) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "mspacit.6", 0x9000, 0x1000, CRC(3a1d5323) SHA1(16e7dddf40505706ece2d053d51e28bff8be8e77) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "mspacit.5e", 0x0000, 0x0800, CRC(93933d1d) SHA1(fa38d2cb87e872bb9a3158a4df98f38360dc85ec) )
+ ROM_LOAD( "mspacit.5h", 0x0800, 0x0800, CRC(7409fbec) SHA1(f440f08ba026ae6172666e1bdc0894ce33bba420) )
+ ROM_LOAD( "mspacit2.5f", 0x1000, 0x0800, CRC(20135b9b) SHA1(ea85134cdeb4142d72cf81ead96990d211046f2e) )
+ ROM_LOAD( "mspacit.5j", 0x1800, 0x0800, CRC(50c7477d) SHA1(c04ec282a8cb528df5e38ad750d12ee71612695d) )
+
+ PACMAN_PROMS
+ROM_END
+
+/* The cpu rom is 2 copies of mspacmbg.cpu joined */
+ROM_START( mspacj )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "mspacj.cpu", 0x0000, 0x4000, CRC(807f978a) SHA1(19fa46e41ff671b88fb7d5e0a6c8c989a96e3477) )
+ ROM_CONTINUE( 0x8000, 0x4000)
+ ROM_IGNORE( 0x8000 )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "mspacj.gfx", 0x0000, 0x0800, CRC(8ee4a3b0) SHA1(01e3453c99f7a5d78ab083c49c650e898c0dd2ee) )
+ ROM_CONTINUE( 0x1000, 0x0800 )
+ ROM_CONTINUE( 0x0800, 0x0800 )
+ ROM_CONTINUE( 0x1800, 0x0800 )
+ ROM_IGNORE( 0x2000 )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD( "mspacj.7f", 0x0000, 0x0020, CRC(3545e7e9) SHA1(b866b02579438afb11296e5c53a32c6425bd044d) )
+ ROM_LOAD( "82s126.4a", 0x0020, 0x0100, CRC(3eb3a8e4) SHA1(19097b5f60d1030f8b82d9f1d3a241f93e5c75d6) )
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "mspacj.1m", 0x0000, 0x0100, CRC(640e455c) SHA1(c3f7d132cf8f1ec3334366b6891fca74450a577e) )
+ ROM_LOAD( "82s126.3m", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) )
+ROM_END
+
+ROM_START( mspacmab )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) )
+ ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mspacman )
+ ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k for code+64k for decrypted code */
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) )
+ ROM_LOAD( "u5", 0x8000, 0x0800, CRC(f45fbbcd) SHA1(b26cc1c8ee18e9b1daa97956d2159b954703a0ec) )
+ ROM_LOAD( "u6", 0x9000, 0x1000, CRC(a90e7000) SHA1(e4df96f1db753533f7d770aa62ae1973349ea4cf) )
+ ROM_LOAD( "u7", 0xb000, 0x1000, CRC(c82cd714) SHA1(1d8ac7ad03db2dc4c8c18ade466e12032673f874) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) )
+ ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) )
+
+ PACMAN_PROMS
+ROM_END
+
+/* This set has the fixes proposed by Don Hodges at the pages:
+ http://donhodges.com/how_high_can_you_get3.htm
+ http://donhodges.com/ms_pacman_bugs.htm */
+ROM_START( mspacmap )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+ ROM_FILL(0x0677,1,0xc3)
+ ROM_FILL(0x0678,1,0x41)
+ ROM_FILL(0x0679,1,0x98)
+ ROM_FILL(0x0c1d,1,0x00)
+ ROM_FILL(0x2bf3,1,0xc3)
+ ROM_FILL(0x2bf4,1,0x93)
+ ROM_FILL(0x2bf5,1,0x87)
+ ROM_FILL(0x2bf8,1,0x3c)
+ ROM_FILL(0x8794,1,0x07)
+ ROM_FILL(0x8796,1,0xf8)
+ ROM_FILL(0x2ffc,1,0xfa)
+ ROM_FILL(0x2ffd,1,0x5b)
+ ROM_FILL(0x3f7c,1,0x85)
+ ROM_FILL(0x94c3,1,0xd2)
+ ROM_FILL(0x94d8,1,0xd2)
+ ROM_FILL(0x9595,1,0xd2)
+ ROM_FILL(0x95a7,1,0xd2)
+ ROM_FILL(0x95c8,1,0xd2)
+ ROM_FILL(0x9841,1,0xaf)
+ ROM_FILL(0x9842,1,0x32)
+ ROM_FILL(0x9843,1,0x02)
+ ROM_FILL(0x9844,1,0x4e)
+ ROM_FILL(0x9845,1,0xef)
+ ROM_FILL(0x9846,1,0x01)
+ ROM_FILL(0x9847,1,0x01)
+ ROM_FILL(0x9848,1,0xc3)
+ ROM_FILL(0x9849,1,0x7a)
+ ROM_FILL(0x984a,1,0x06)
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) )
+ ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mspacmat )
+ ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k for code+64k for decrypted code */
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) )
+ ROM_LOAD( "u5", 0x8000, 0x0800, CRC(f45fbbcd) SHA1(b26cc1c8ee18e9b1daa97956d2159b954703a0ec) )
+ ROM_LOAD( "u6pacatk", 0x9000, 0x1000, CRC(f6d83f4d) SHA1(6135b187d6b968554d08f2ac00d3a3313efb8638) )
+ ROM_LOAD( "u7", 0xb000, 0x1000, CRC(c82cd714) SHA1(1d8ac7ad03db2dc4c8c18ade466e12032673f874) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) )
+ ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mspacmbe )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "2.bin", 0x1000, 0x1000, CRC(04e6c486) SHA1(63aa3e6c49d345cccfe87dd3fdcddc75ab4a570d) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "6.bin", 0x9000, 0x1000, CRC(206a9623) SHA1(20006f945c1b7b0e3c0415eecc0b148e5a6a1dfa) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) )
+ ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mspacmbg )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "mspacmbg.cpu", 0x0000, 0x4000, CRC(97c64918) SHA1(a46ca4822e6cd7b9a5603d5d06a78fd489dc0b96) )
+ ROM_CONTINUE( 0x8000, 0x4000 )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "mspacmbg.gfx", 0x0000, 0x0800, CRC(f2c5da43) SHA1(6a6de2ecc313a11ad12d8d1712c05f923984f668) )
+ ROM_CONTINUE( 0x1000, 0x0800 )
+ ROM_CONTINUE( 0x0800, 0x0800 )
+ ROM_CONTINUE( 0x1800, 0x0800 )
+ ROM_IGNORE( 0x6000 )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mspacmbx )
+ ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x8000, "gfx1", 0 )
+ ROM_LOAD( "mspacmnx.5e", 0x0000, 0x4000, CRC(d9a2897d) SHA1(38cc83d1a854ae289da7904faff32114a9731bda) )
+ ROM_LOAD( "mspacmnx.5f", 0x4000, 0x4000, CRC(6f625a9e) SHA1(d9d739ba412c9374b26006d99a345212ef97f868) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mspacmfx )
+ ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k for code+64k for decrypted code */
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacmanf.6f", 0x1000, 0x1000, CRC(720dc3ee) SHA1(7224d7acfa0144b681c71d7734a7337189835361) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) )
+ ROM_LOAD( "u5", 0x8000, 0x0800, CRC(f45fbbcd) SHA1(b26cc1c8ee18e9b1daa97956d2159b954703a0ec) )
+ ROM_LOAD( "u6", 0x9000, 0x1000, CRC(a90e7000) SHA1(e4df96f1db753533f7d770aa62ae1973349ea4cf) )
+ ROM_LOAD( "u7", 0xb000, 0x1000, CRC(c82cd714) SHA1(1d8ac7ad03db2dc4c8c18ade466e12032673f874) )
+
+ ROM_REGION( 0x8000, "gfx1", 0 )
+ ROM_LOAD( "mspacmnx.5e", 0x0000, 0x4000, CRC(d9a2897d) SHA1(38cc83d1a854ae289da7904faff32114a9731bda) )
+ ROM_LOAD( "mspacmnx.5f", 0x4000, 0x4000, CRC(6f625a9e) SHA1(d9d739ba412c9374b26006d99a345212ef97f868) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mspacmnf )
+ ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k for code+64k for decrypted code */
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacfast.6f", 0x1000, 0x1000, CRC(720dc3ee) SHA1(7224d7acfa0144b681c71d7734a7337189835361) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) )
+ ROM_LOAD( "u5", 0x8000, 0x0800, CRC(f45fbbcd) SHA1(b26cc1c8ee18e9b1daa97956d2159b954703a0ec) )
+ ROM_LOAD( "u6", 0x9000, 0x1000, CRC(a90e7000) SHA1(e4df96f1db753533f7d770aa62ae1973349ea4cf) )
+ ROM_LOAD( "u7", 0xb000, 0x1000, CRC(c82cd714) SHA1(1d8ac7ad03db2dc4c8c18ade466e12032673f874) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) )
+ ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mspacmnn )
+ ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k for code+64k for decrypted code */
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) )
+ ROM_LOAD( "u5", 0x8000, 0x0800, CRC(f45fbbcd) SHA1(b26cc1c8ee18e9b1daa97956d2159b954703a0ec) )
+ ROM_LOAD( "u6", 0x9000, 0x1000, CRC(a90e7000) SHA1(e4df96f1db753533f7d770aa62ae1973349ea4cf) )
+ ROM_LOAD( "u7", 0xb000, 0x1000, CRC(c82cd714) SHA1(1d8ac7ad03db2dc4c8c18ade466e12032673f874) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "mspacmnn.5e", 0x0000, 0x1000, CRC(f4cf1273) SHA1(9120de96984e96a0425b210d9fb8175b91b26284) )
+ ROM_LOAD( "mspacmnn.5f", 0x1000, 0x1000, CRC(c4e7ec0b) SHA1(06940f81b228fd7b6389afe93a7355dc2afee821) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mspacmnx )
+ ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k for code+64k for decrypted code */
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) )
+ ROM_LOAD( "u5", 0x8000, 0x0800, CRC(f45fbbcd) SHA1(b26cc1c8ee18e9b1daa97956d2159b954703a0ec) )
+ ROM_LOAD( "u6", 0x9000, 0x1000, CRC(a90e7000) SHA1(e4df96f1db753533f7d770aa62ae1973349ea4cf) )
+ ROM_LOAD( "u7", 0xb000, 0x1000, CRC(c82cd714) SHA1(1d8ac7ad03db2dc4c8c18ade466e12032673f874) )
+
+ ROM_REGION( 0x8000, "gfx1", 0 )
+ ROM_LOAD( "mspacmnx.5e", 0x0000, 0x4000, CRC(d9a2897d) SHA1(38cc83d1a854ae289da7904faff32114a9731bda) )
+ ROM_LOAD( "mspacmnx.5f", 0x4000, 0x4000, CRC(6f625a9e) SHA1(d9d739ba412c9374b26006d99a345212ef97f868) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mspacnes )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "mscrzyma.3", 0x2000, 0x1000, CRC(513f4d5c) SHA1(ae011b89422bd8cbb80389814500bc1427f6ecb2) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "mspacnes.5", 0x8000, 0x1000, CRC(43936999) SHA1(4261f0bbb9ece2370c6283763a396ad851f42c51) )
+ ROM_LOAD( "mspacnes.6", 0x9000, 0x1000, CRC(a15b524e) SHA1(91f211e479261b344fc64517394abf7a8f9d6f4b) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "mspacnes.5e", 0x0000, 0x1000, CRC(d3a28769) SHA1(3fa7d9a235e0bf8aae03b15c5377401f029d6946) )
+ ROM_LOAD( "mspacnes.5f", 0x1000, 0x1000, CRC(6a4db98d) SHA1(e0eeb83c1265f5c9881e1c752842d20dabf35783) )
+
+ PACPLUS_PROMS
+ROM_END
+
+ROM_START( mspacp )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "mspacp.4", 0x3000, 0x1000, CRC(203dcba5) SHA1(c1e94a17bab5f25bfdc5836e0ba968a56b6f9e58) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "mspacp.5e", 0x0000, 0x1000, CRC(cd4afa90) SHA1(e917c5cd4b0af33279dbde5a50fc3aedb7602425) )
+ ROM_LOAD( "mspacp.5f", 0x1000, 0x1000, CRC(58ea207f) SHA1(65d07838bd2cb8bfcb6fcb0e99f88036af5753be) )
+
+ PACPLUS_PROMS
+ROM_END
+
+ROM_START( mspacpbl )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "mspacpbl.1", 0x0000, 0x1000, CRC(34f60afa) SHA1(86813f3f0c3832451ee215d542cce7ad2aaa9785) )
+ ROM_LOAD( "mspacpbl.2", 0x1000, 0x1000, CRC(5426636c) SHA1(35cdd13e917c2d1e11086745de6dc3b85bf1fdbb) )
+ ROM_LOAD( "mspacpbl.3", 0x2000, 0x1000, CRC(60c890a1) SHA1(c1fbaedb212449803f5b506ac6f8e258644e4536) )
+ ROM_LOAD( "mspacpbl.4", 0x3000, 0x1000, CRC(586f1bfd) SHA1(1cf77bb44ba153ca03e7e8b26174b33f192da071) )
+ ROM_LOAD( "mspacpbl.5", 0x8000, 0x1000, CRC(85a44e94) SHA1(59b2249f6834ee4634e9fb8daa53739e80654c85) )
+ ROM_LOAD( "mspacpbl.6", 0x9000, 0x1000, CRC(3babaeab) SHA1(abc7f705a16dfd53540dfe7e0b6723a5843682c2) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "mspacpbl.5e", 0x0000, 0x1000, CRC(5ba9c39a) SHA1(50e49234b051d74ce21ec4b819cccbbb98c57c3c) )
+ ROM_LOAD( "mspacpbl.5f", 0x1000, 0x1000, CRC(4aeefccb) SHA1(68810190397415be042c4787618feade7dcfe23a) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mspacpls )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "mspacatk.2", 0x1000, 0x1000, CRC(0af09d31) SHA1(6ff73e4da4910bcd2ca3aa299d8ffad23f8abf79) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "mspacatk.5", 0x8000, 0x1000, CRC(e6e06954) SHA1(ee5b266b1cc178df31fc1da5f66ef4911c653dda) )
+ ROM_LOAD( "mspacatk.6", 0x9000, 0x1000, CRC(3b5db308) SHA1(c1ba630cb8fb665c4881a6cce9d3b0d4300bd0eb) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) )
+ ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mspacplx )
+ ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "mspacatk.2", 0x1000, 0x1000, CRC(0af09d31) SHA1(6ff73e4da4910bcd2ca3aa299d8ffad23f8abf79) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "mspacatk.5", 0x8000, 0x1000, CRC(e6e06954) SHA1(ee5b266b1cc178df31fc1da5f66ef4911c653dda) )
+ ROM_LOAD( "mspacatk.6", 0x9000, 0x1000, CRC(3b5db308) SHA1(c1ba630cb8fb665c4881a6cce9d3b0d4300bd0eb) )
+
+ ROM_REGION( 0x8000, "gfx1", 0 )
+ ROM_LOAD( "mspacmnx.5e", 0x0000, 0x4000, CRC(d9a2897d) SHA1(38cc83d1a854ae289da7904faff32114a9731bda) )
+ ROM_LOAD( "mspacmnx.5f", 0x4000, 0x4000, CRC(6f625a9e) SHA1(d9d739ba412c9374b26006d99a345212ef97f868) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mspacren )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "mspacren.4", 0x3000, 0x1000, CRC(efe80423) SHA1(bc78085a53123da0e0c9ab2c212c60c9dd2e6983) )
+ ROM_LOAD( "mspacren.5", 0x8000, 0x1000, CRC(f513ae17) SHA1(87e1a3d31d04ed527cb89369c53a5a66403f73a5) )
+ ROM_LOAD( "mspacren.6", 0x9000, 0x1000, CRC(ce3b842b) SHA1(e4bf3578ccfaa757534f83fb3842d1515fd95d71) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "mspacren.5e", 0x0000, 0x1000, CRC(31b134a0) SHA1(f457df057963aa60492a98f12a6d258fe7fded03) )
+ ROM_LOAD( "mspacren.5f", 0x1000, 0x1000, CRC(022f61d1) SHA1(16ed25a881b058efa963b938341ce4f04d914262) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD( "puckren.7f", 0x0000, 0x0020, CRC(7b6aa3c9) SHA1(849911abdc26ccf2ad44e2c432e6219447b8bef3) )
+ ROM_LOAD( "puckren.4a", 0x0020, 0x0100, CRC(64fe1dbf) SHA1(7f7541eb12148add79ad186a1da375c865d251e0) )
+
+ PACMAN_SOUND_PROMS
+ROM_END
+
+ROM_START( mspacrip )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "mspacrip.4", 0x3000, 0x1000, CRC(5fb1ee61) SHA1(1123ec7d3de24fd8ae2eb75c87b3d22f53421e21) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "mspacrip.5e", 0x0000, 0x1000, CRC(5aa9eb83) SHA1(da2500ed81873c2d96501d136c7d9478155e0d33) )
+ ROM_LOAD( "mspacrip.5f", 0x1000, 0x1000, CRC(ceb3785d) SHA1(c3cc1475ca0b1725497cd03ab116c18d57dba127) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mspacsup )
+ ROM_REGION( 0x10000, "maincpu",0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "mspacsup.6f", 0x1000, 0x0800, CRC(ab07b7c6) SHA1(855ce1a948660014796de15a8ef155a2b7068056) )
+ ROM_LOAD( "mspacsup.6m", 0x1800, 0x0800, CRC(2a724972) SHA1(f67f4280f928f182330b32853591eec32a22d5f6) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "mspacsup.6j", 0x3000, 0x0800, CRC(6023a7a8) SHA1(3424b057dc70c4a76f55dc1b618f5a0ad5d5b6fe) )
+ ROM_LOAD( "mspacsup.6p", 0x3800, 0x0800, CRC(9bdbccb0) SHA1(58dedf146178f08dc0e8c09aa0def75267e2efe4) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) )
+ ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mspacwf ) // Ms.Pacman Weird Fruit
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "mspacwf.4", 0x3000, 0x1000, CRC(a078477e) SHA1(e4016bfcd581cbf0b180d7e3cf6b63713de45add) )
+ ROM_LOAD( "mspacwf.5", 0x8000, 0x1000, CRC(5064e97a) SHA1(3cc0f7ce7874c28bf4d379922e9509fca6227c13) )
+ ROM_LOAD( "mspacwf.6", 0x9000, 0x1000, CRC(b9f6fc01) SHA1(43648fc301e0b2639ac98452154fd74ccec1f6d7) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "mspacwf.5e", 0x0000, 0x1000, CRC(4f00a074) SHA1(c9f0319537d327a46612d9255cfeea58c4f96918) )
+ ROM_LOAD( "mspacwf.5f", 0x1000, 0x1000, CRC(a13df02c) SHA1(072f5a3fe25cc29d57082eb0cfc7b78f5e330363) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mspamsba )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "mspamsba.4", 0x3000, 0x1000, CRC(8b3f8e44) SHA1(d56e640e3454950c4f2c4d00c8f6e9e1cfb33494) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "mspamsba.5e", 0x0000, 0x1000, CRC(aa7115b8) SHA1(895f85d157239be4a6f40beeb739157954697386) )
+ ROM_LOAD( "mspamsba.5f", 0x1000, 0x1000, CRC(f94b0961) SHA1(8b1376dd50388cbc29426cc2e339798d687fb845) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mspc6mad )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "mscrzyma.3", 0x2000, 0x1000, CRC(513f4d5c) SHA1(ae011b89422bd8cbb80389814500bc1427f6ecb2) )
+ ROM_LOAD( "mspac6m.4", 0x3000, 0x1000, CRC(e21c81ff) SHA1(5a6ce8ee3059a31afbb9b8c1d0a1e37606d14a0a) )
+ ROM_LOAD( "mspc6mad.5", 0x8000, 0x1000, CRC(b556fe78) SHA1(2e84f6e69b3852b791de22ac31bee2b2f76ded07) )
+ ROM_LOAD( "mspc6mad.6", 0x9000, 0x1000, CRC(4dbe1939) SHA1(5203274ed1ceb06308f2778b7b5e8d41e8f2bd63) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "mspc6mad.5e", 0x0000, 0x1000, CRC(92ea9860) SHA1(1d03cd9dd411ed9284fe4ccae3cbe2ac53560139) )
+ ROM_LOAD( "mspc6mad.5f", 0x1000, 0x1000, CRC(713cc17e) SHA1(dca7722b38c4eae701f48110276376c83505fc9b) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( msplus )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "msplus.4", 0x3000, 0x1000, CRC(9d6fed06) SHA1(9927933f8df589e995f542d48a6ac196029a343f) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "mspacp.5e", 0x0000, 0x1000, CRC(cd4afa90) SHA1(e917c5cd4b0af33279dbde5a50fc3aedb7602425) )
+ ROM_LOAD( "msplus.5f", 0x1000, 0x1000, CRC(e68b2a85) SHA1(8c1b294505ae5202bce760cafea2437a5f71d0cf) )
+
+ PACPLUS_PROMS
+ROM_END
+
+ROM_START( msrumble )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "msrumble.4", 0x3000, 0x1000, CRC(15b02313) SHA1(b1400928ff7a5c3067f3d7be02b172f3054c0ce0) )
+ ROM_LOAD( "msrumble.5", 0x8000, 0x1000, CRC(e2473a86) SHA1(b51cb0a98178f4c52345d6ecdf89e5f23080eb72) )
+ ROM_LOAD( "msrumble.6", 0x9000, 0x1000, CRC(17abb097) SHA1(7eae139e71c7ea07e05f9b1c04194b1ae6c2f975) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) )
+ ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mssilad )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "mssilad.3", 0x2000, 0x1000, CRC(79d241dd) SHA1(98f95619d4212da9f23b83ad5c9c793576d51177) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "mssilad.5", 0x8000, 0x1000, CRC(2e2fcde0) SHA1(718dcbf395eb92b956adf185b5b2cf46aa5b9694) )
+ ROM_LOAD( "mssilad.6", 0x9000, 0x1000, CRC(22c6d19a) SHA1(92cb3f962b7dab5e92b780d60f448b9f57c03687) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "msatkad.5e", 0x0000, 0x1000, CRC(dc70ed2e) SHA1(b9fbb1d21085bc78eb82c429506b20e332b18e0e) )
+ ROM_LOAD( "msatkad.5f", 0x1000, 0x1000, CRC(643d5523) SHA1(565f92294a4b6a11dc5e9a165f35284c2a526e6c) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( msstrmaz )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "mscrzyma.3", 0x2000, 0x1000, CRC(513f4d5c) SHA1(ae011b89422bd8cbb80389814500bc1427f6ecb2) )
+ ROM_LOAD( "msstrmaz.4", 0x3000, 0x1000, CRC(ef9cce5a) SHA1(2a9bcdd672023129761a573d77f69b76ccfdc5c4) )
+ ROM_LOAD( "msstrmaz.5", 0x8000, 0x1000, CRC(b8f8edda) SHA1(5af8c7908df0d45d456cfe68470ba2098c956cac) )
+ ROM_LOAD( "msstrmaz.6", 0x9000, 0x1000, CRC(5d7888bc) SHA1(1f3ecd3bc787dd64ed41b1d664cf6794fa799ee8) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "msstrmaz.5e", 0x0000, 0x1000, CRC(14fd0ad7) SHA1(4fac020002905b28c7f054340aa0eacc7b2c701b) )
+ ROM_LOAD( "msstrmaz.5f", 0x1000, 0x1000, CRC(67fb6254) SHA1(ce2134f6c8c6fc5770a835aa1eeebd27611806da) )
+
+ PACPLUS_PROMS
+ROM_END
+
+ROM_START( msultra )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "msultra.4", 0x3000, 0x1000, CRC(36b5e9fd) SHA1(70373fbcae8d2f6dd9274cb825a561de15c4c2b9) )
+ ROM_LOAD( "msultra.5", 0x8000, 0x1000, CRC(cf609615) SHA1(f410eec29433085bf9138582e6725c9326d9001f) )
+ ROM_LOAD( "msultra.6", 0x9000, 0x1000, CRC(007cd365) SHA1(c5ce3f81063052b36a6f5516d391e6c5a63f2819) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "msultra.5e", 0x0000, 0x1000, CRC(508af5b0) SHA1(5a92354f45af65d3343e32111f675998a5347557) )
+ ROM_LOAD( "msultra.5f", 0x1000, 0x1000, CRC(db5a4630) SHA1(2cb6e8650ae861a2008dd2f185aa2c02827ab370) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( msvctr6m )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "mscrzyma.3", 0x2000, 0x1000, CRC(513f4d5c) SHA1(ae011b89422bd8cbb80389814500bc1427f6ecb2) )
+ ROM_LOAD( "mspac6m.4", 0x3000, 0x1000, CRC(e21c81ff) SHA1(5a6ce8ee3059a31afbb9b8c1d0a1e37606d14a0a) )
+ ROM_LOAD( "mspac6m.5", 0x8000, 0x1000, CRC(d0bd89d9) SHA1(c47e96d68d7e88e906b416c24ce926b76689f22d) )
+ ROM_LOAD( "mspac6m.6", 0x9000, 0x1000, CRC(c5662407) SHA1(98827bda653b6d1d6984082c706247392ab706d2) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "msvctr6m.5e", 0x0000, 0x1000, CRC(64b35a5a) SHA1(5c8dec1ae192c8e717346618bc4f28d3abd0ca84) )
+ ROM_LOAD( "msvectr.5f", 0x1000, 0x1000, CRC(57cb31e3) SHA1(dc9278cee7f7ce341087760654bf0a1bcdeb2f7c) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( msvectr )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "msvectr.5e", 0x0000, 0x1000, CRC(56560aef) SHA1(1eac2b242328ec4d6ba9faac2fd972c8cb6c3e55) )
+ ROM_LOAD( "msvectr.5f", 0x1000, 0x1000, CRC(57cb31e3) SHA1(dc9278cee7f7ce341087760654bf0a1bcdeb2f7c) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( msyakman )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "msyakman.5e", 0x0000, 0x1000, CRC(827892bb) SHA1(5b111c4d6293e13d5fae9e77823acd8be5c08b34) )
+ ROM_LOAD( "msyakman.5f", 0x1000, 0x1000, CRC(1108ba96) SHA1(b1ee699722b8a22e24ec18d1930e055387a45d96) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( ottop1 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "ottop1.1", 0x0000, 0x1000, CRC(00340fb8) SHA1(60337395c35085c32fc4450a649cf629e4ae32da) )
+ ROM_LOAD( "ottop1.2", 0x1000, 0x1000, CRC(f6c05582) SHA1(3803f1a9546ff6293e3fad1984300eb1c2835ff6) )
+ ROM_LOAD( "ottop1.3", 0x2000, 0x1000, CRC(08381b15) SHA1(8727ddb990668acd0288ee9ec9de4922a505c7d1) )
+ ROM_LOAD( "ottop1.4", 0x3000, 0x1000, CRC(0d20edf6) SHA1(11ec227cb5ee030bfed9aaa0b624fd2c0e47b6f5) )
+ ROM_LOAD( "ottop1.5", 0x8000, 0x1000, CRC(3bb6cea7) SHA1(cf629f478f14fb392bc71b6453364b58c3544b0a) )
+ ROM_LOAD( "ottop1.6", 0x9000, 0x1000, CRC(1e1357bf) SHA1(4fd6074cc971bfe8d233714ae88ec295840c7d9b) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "ottop1.5e", 0x0000, 0x1000, CRC(2ba71471) SHA1(69f111cee7c1228636ee38b065b2d5486a18749d) )
+ ROM_LOAD( "ottop1.5f", 0x1000, 0x1000, CRC(ad353000) SHA1(8ec0c31dc4e9da5bd8cc8087abb3a9936759b39d) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( ottop2 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "ottop2.1", 0x0000, 0x1000, CRC(a9c0c5fc) SHA1(4631b6260b88c5dc23503ea420a62f946f5bb978) )
+ ROM_LOAD( "ottop1.2", 0x1000, 0x1000, CRC(f6c05582) SHA1(3803f1a9546ff6293e3fad1984300eb1c2835ff6) )
+ ROM_LOAD( "ottop1.3", 0x2000, 0x1000, CRC(08381b15) SHA1(8727ddb990668acd0288ee9ec9de4922a505c7d1) )
+ ROM_LOAD( "ottop2.4", 0x3000, 0x1000, CRC(c8517a08) SHA1(ab6ed1004e6a66dfce426ad5db0bfc0cd4e6eabc) )
+ ROM_LOAD( "ottop2.5", 0x8000, 0x1000, CRC(d8d8ceec) SHA1(b3ea6f35118b04281c568806127fe1a97c22ed42) )
+ ROM_LOAD( "ottop2.6", 0x9000, 0x1000, CRC(184f877a) SHA1(473b47566fce1b53d6b885b54562c4ae82ed9ae1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "ottop2.5e", 0x0000, 0x1000, CRC(54a743f7) SHA1(9406b856edf3f6a7979926295663cabdf53bb0d4) )
+ ROM_LOAD( "ottop1.5f", 0x1000, 0x1000, CRC(ad353000) SHA1(8ec0c31dc4e9da5bd8cc8087abb3a9936759b39d) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( ottop3 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "ottop3.1", 0x0000, 0x1000, CRC(2df1dc0d) SHA1(93846a2affedda0ab1047b2927198fc2c24c7f72) )
+ ROM_LOAD( "ottop1.2", 0x1000, 0x1000, CRC(f6c05582) SHA1(3803f1a9546ff6293e3fad1984300eb1c2835ff6) )
+ ROM_LOAD( "ottop1.3", 0x2000, 0x1000, CRC(08381b15) SHA1(8727ddb990668acd0288ee9ec9de4922a505c7d1) )
+ ROM_LOAD( "ottop3.4", 0x3000, 0x1000, CRC(0eb1ad52) SHA1(d533d06d3aab14ab7726d449269782d663da1180) )
+ ROM_LOAD( "ottop3.5", 0x8000, 0x1000, CRC(3e2e62bb) SHA1(8dcbc2170214e538fcf092c54a9d6994b5157278) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "ottop2.5e", 0x0000, 0x1000, CRC(54a743f7) SHA1(9406b856edf3f6a7979926295663cabdf53bb0d4) )
+ ROM_LOAD( "ottop1.5f", 0x1000, 0x1000, CRC(ad353000) SHA1(8ec0c31dc4e9da5bd8cc8087abb3a9936759b39d) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( ottopz )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "ottopz.1", 0x0000, 0x1000, CRC(35b94585) SHA1(6a8350efbd6fab30b22365c6a2ed7e23f47af0e6) )
+ ROM_LOAD( "ottopz.2", 0x1000, 0x1000, CRC(298dbd3d) SHA1(302c82562c66c267dedcc7e7d5e3ab8234b5e20c) )
+ ROM_LOAD( "ottopz.3", 0x2000, 0x1000, CRC(6f0c25bd) SHA1(f4cabdb7462310c14ecde5db9f586360ac1829f4) )
+ ROM_LOAD( "ottopz.4", 0x3000, 0x1000, CRC(3af7ef8c) SHA1(bf340f3fa275950c0eda4fbf3eb3115edd039bd6) )
+ ROM_LOAD( "ottopz.5", 0x8000, 0x1000, CRC(098c2a09) SHA1(cf0e69c891dbc8b448c359abf3e869d0aaba02df) )
+ ROM_LOAD( "ottopz.6", 0x9000, 0x1000, CRC(367e5c05) SHA1(15bed84c6480fab5e7bcbbd1dbb2b8919ac1dca5) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "ottopz.5e", 0x0000, 0x1000, CRC(046d76fb) SHA1(44f607dbed727a0ae5152da67b6953ba9619566f) )
+ ROM_LOAD( "ottopz.5f", 0x1000, 0x1000, CRC(402e194d) SHA1(01867241edd28f25aa7be1d4004bb2c73979d8d0) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacatk )
+ ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k for code+64k for decrypted code */
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) )
+ ROM_LOAD( "u5", 0x8000, 0x0800, CRC(f45fbbcd) SHA1(b26cc1c8ee18e9b1daa97956d2159b954703a0ec) )
+ ROM_LOAD( "pacatk.u6", 0x9000, 0x1000, CRC(a35b3788) SHA1(51a1806a0ae4adb5baa9e875c6d9f715198ce8ae) )
+ ROM_LOAD( "u7", 0xb000, 0x1000, CRC(c82cd714) SHA1(1d8ac7ad03db2dc4c8c18ade466e12032673f874) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) )
+ ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) )
+// ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+// ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacgal )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "mscrzyma.3", 0x2000, 0x1000, CRC(513f4d5c) SHA1(ae011b89422bd8cbb80389814500bc1427f6ecb2) )
+ ROM_LOAD( "pacman.7hj", 0x3000, 0x1000, CRC(70694c8e) SHA1(d0d02f0997b44e1ba5ea27fc3f7af1b956e2a687) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) )
+ ROM_LOAD( "pacman.5ef", 0x1000, 0x0800, CRC(65a3ee71) SHA1(cbbf700eefba2a5bf158983f2ca9688b7c6f5d2b) )
+ ROM_LOAD( "mspacit.5j", 0x1800, 0x0800, CRC(50c7477d) SHA1(c04ec282a8cb528df5e38ad750d12ee71612695d) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD( "82s123.7f", 0x0000, 0x0020, CRC(2fc650bd) SHA1(8d0268dee78e47c712202b0ec4f1f51109b1f2a5) )
+ ROM_LOAD( "pacgal.4a", 0x0020, 0x0100, CRC(63efb927) SHA1(5c144a613fc4960a1dfd7ead89e7fee258a63171) )
+
+ PACMAN_SOUND_PROMS
+ROM_END
+
+ROM_START( pacgalu )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacgalu.bin", 0x0000, 0x4000, CRC(23a0bd03) SHA1(6ebf7985374a0b0d7402f54c3c9b488fdebeb65e) )
+ ROM_CONTINUE( 0x8000, 0x4000 )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacgalu.gfx", 0x0000, 0x2000, CRC(d6e3a240) SHA1(e176bfc6c0d2ecee825dce18758639c6e1dbe70d) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacgalx )
+ ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "mscrzyma.3", 0x2000, 0x1000, CRC(513f4d5c) SHA1(ae011b89422bd8cbb80389814500bc1427f6ecb2) )
+ ROM_LOAD( "pacman.7hj", 0x3000, 0x1000, CRC(70694c8e) SHA1(d0d02f0997b44e1ba5ea27fc3f7af1b956e2a687) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x8000, "gfx1", 0 )
+ ROM_LOAD( "mspacmnx.5e", 0x0000, 0x4000, CRC(d9a2897d) SHA1(38cc83d1a854ae289da7904faff32114a9731bda) )
+ ROM_LOAD( "pacgalx.5f", 0x4000, 0x4000, CRC(dfb2a9e9) SHA1(a7c297910fce9723054ce9a7abc0175e75e72d1c) )
+
+ 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) )
+
+ PACMAN_SOUND_PROMS
+ROM_END
+
+ROM_START( pacgent )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacgent.1", 0x0000, 0x1000, CRC(de6f3b2b) SHA1(cf499e8ce3bb88e69ce5bb3bbf412d81bf6a0c0f) )
+ ROM_LOAD( "fastplus.2", 0x1000, 0x1000, CRC(a8d6c227) SHA1(b5891f911bb054ca2547e663a3c27c93897f2075) )
+ ROM_LOAD( "pacgent.3", 0x2000, 0x1000, CRC(e96d522e) SHA1(41b08f3e10e81fc373bedd5ba928461f05a8ccb4) )
+ ROM_LOAD( "pacgent.4", 0x3000, 0x1000, CRC(154482fb) SHA1(98097e37f97310e93a42f7ae03072627c064f372) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "pacgent.6", 0x9000, 0x1000, CRC(dcc58e81) SHA1(5e005b46c5fef89c144f906e695eabad4a50919e) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacgent.5e", 0x0000, 0x1000, CRC(e9992415) SHA1(3e8241e1b17d7f5243d348ad9d07f55266ed524e) )
+ ROM_LOAD( "pacgent.5f", 0x1000, 0x1000, CRC(50171b3a) SHA1(e1fef48206ba5af1e729bfa09f938cbc47917dc2) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( petshop )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "petshop.4", 0x3000, 0x1000, CRC(75230eef) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "petshop.5e", 0x0000, 0x1000, CRC(ac1c180b) SHA1(dc012d2ba8e1ab19d915e0b1218154f5441aee99) )
+ ROM_LOAD( "petshop.5f", 0x1000, 0x1000, CRC(ce314b46) SHA1(bc091cef128f82c7d53ad1b4af841f41906cf601) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( piranha2 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "piranha2.4", 0x3000, 0x1000, CRC(fe8b786d) SHA1(e9fcd78076e4e7e6aa73781238722e077e40f945) )
+ ROM_LOAD( "piranha2.5", 0x8000, 0x1000, CRC(bef08ea4) SHA1(04211f34d7eb9009b1d2cb1a3fbff0e4bdeb0127) )
+ ROM_LOAD( "piranha2.6", 0x9000, 0x1000, CRC(fd3df829) SHA1(69e6c66aab3eb43f0a64350279e67351f1aceddd) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "piranha2.5e", 0x0000, 0x1000, CRC(8f0fa58f) SHA1(bf1ae6523cc9161c0db55b8ecaafe1783f3600f2) )
+ ROM_LOAD( "piranha2.5f", 0x1000, 0x1000, CRC(42153903) SHA1(9b231f783b5c847b09819d554a3bb136028938e0) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( ramsnoop )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "ramsnoop.1", 0x0000, 0x1000, CRC(A08529FA) SHA1(E448E3A2BED42FA9A2C6435849426E6A2CCF5290) )
+ ROM_LOAD( "ramsnoop.2", 0x1000, 0x1000, CRC(27B70DD6) SHA1(E52C724C7909C2B3B8EA44C2D3540BE9D23C5E03) )
+ ROM_LOAD( "ramsnoop.3", 0x2000, 0x1000, CRC(812691A0) SHA1(8FF6D1C2697732C0466BCB37A7F36392980B4A99) )
+ ROM_LOAD( "ramsnoop.4", 0x3000, 0x1000, CRC(9E7849E3) SHA1(8C574E42BFFC6B88D5B5DF3C6655F792B2FF5C5C) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8C3E6DE6) SHA1(FED6E9A2B210B07E7189A18574F6B8C4EC5BB49B) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368CB165) SHA1(387010A0C76319A1EAB61B54C9BCB5C66C4B67A1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5C281D01) SHA1(5E8B472B615F12EFCA3FE792410C23619F067845) )
+ ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615AF909) SHA1(FD6A1DDE780B39AEA76BF1C4BEFA5882573C2EF4) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( sueworlb )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "sueworlb.4", 0x3000, 0x1000, CRC(edc5ad28) SHA1(b1b95ed715a935fe3bf68c71cb4ac66402c17e79) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "sueworld.5e", 0x0000, 0x1000, CRC(6c975345) SHA1(8c294a14c3a2b390c85d75d61453e73ee8721058) )
+ ROM_LOAD( "sueworld.5f", 0x1000, 0x1000, CRC(2c809842) SHA1(4325af0b41b67ce3783b667506b60d0221c6ac45) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( sueworld )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "sueworld.4", 0x3000, 0x1000, CRC(677adea7) SHA1(b258e748e47cb8ae77594728f1ccc97a429a411e) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "sueworld.5e", 0x0000, 0x1000, CRC(6c975345) SHA1(8c294a14c3a2b390c85d75d61453e73ee8721058) )
+ ROM_LOAD( "sueworld.5f", 0x1000, 0x1000, CRC(2c809842) SHA1(4325af0b41b67ce3783b667506b60d0221c6ac45) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( superp4g )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "superp4g.1", 0x0000, 0x1000, CRC(f88c992f) SHA1(b6e2ec74dcc87aa097b6360f9fd19cfb11227efb) )
+ ROM_LOAD( "superp4g.2", 0x1000, 0x1000, CRC(e6886710) SHA1(63207a2487a334e8de51ccede03b6d50e84e071a) )
+ ROM_LOAD( "superp4g.3", 0x2000, 0x1000, CRC(c76dd2e6) SHA1(3172733cab013945de5f1c79e0a829cacad224ab) )
+ ROM_LOAD( "superp4g.4", 0x3000, 0x1000, CRC(ba5b054e) SHA1(b7bb14167167c59ab9035539d5cf6338a10f00e0) )
+ ROM_LOAD( "superp4g.5", 0x8000, 0x1000, CRC(c701506b) SHA1(31c96d13f290248c63143e22b052adb698a45687) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "superp4g.5e", 0x0000, 0x1000, CRC(593576fe) SHA1(238006f0d4fe6d478521a8d116f8d0679b502f6d) )
+ ROM_LOAD( "superp4g.5f", 0x1000, 0x1000, CRC(e64e0f6d) SHA1(b87405ef0f90fc0a3afda1a4265ba6b0a074a21d) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( superp4m )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "superp4m.1", 0x0000, 0x1000, CRC(9caaac56) SHA1(8858e4e9d7e3b9a1cd55f6bff1b9766b13fd9b8b) )
+ ROM_LOAD( "superp4g.2", 0x1000, 0x1000, CRC(e6886710) SHA1(63207a2487a334e8de51ccede03b6d50e84e071a) )
+ ROM_LOAD( "superp4g.3", 0x2000, 0x1000, CRC(c76dd2e6) SHA1(3172733cab013945de5f1c79e0a829cacad224ab) )
+ ROM_LOAD( "superp4g.4", 0x3000, 0x1000, CRC(ba5b054e) SHA1(b7bb14167167c59ab9035539d5cf6338a10f00e0) )
+ ROM_LOAD( "superp4m.5", 0x8000, 0x1000, CRC(c4b3240c) SHA1(7839463d69c24d15ac4c4de199f2ba6ce1cfaad7) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "superp4g.5e", 0x0000, 0x1000, CRC(593576fe) SHA1(238006f0d4fe6d478521a8d116f8d0679b502f6d) )
+ ROM_LOAD( "superp4m.5f", 0x1000, 0x1000, CRC(9142e698) SHA1(229cc0f45ef4dcc60f1e449d24881a0a13720972) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( supmspac )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "supmspac.2", 0x1000, 0x1000, CRC(f2110c60) SHA1(bfe4ba9bad0b3da44c36fa6735fdb38ba15a29ed) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "supmspac.4", 0x3000, 0x1000, CRC(0fe16984) SHA1(da77c5f04691d2679a53eb012542890c78f76683) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "mspacde.6a", 0x9000, 0x0800, CRC(286041cf) SHA1(5a5fc97ea66a59895b3403b2982940b755076667) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "mspacit.5e", 0x0000, 0x0800, CRC(93933d1d) SHA1(fa38d2cb87e872bb9a3158a4df98f38360dc85ec) )
+ ROM_LOAD( "mspacit.5h", 0x0800, 0x0800, CRC(7409fbec) SHA1(f440f08ba026ae6172666e1bdc0894ce33bba420) )
+ ROM_LOAD( "mspacit.5f", 0x1000, 0x0800, CRC(22b0188a) SHA1(a9ed9ca8b36a60081fd364abc9bc23963932cc0b) )
+ ROM_LOAD( "mspacit.5j", 0x1800, 0x0800, CRC(50c7477d) SHA1(c04ec282a8cb528df5e38ad750d12ee71612695d) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( vectratk )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "mspacatk.2", 0x1000, 0x1000, CRC(0af09d31) SHA1(6ff73e4da4910bcd2ca3aa299d8ffad23f8abf79) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "mspacatk.5", 0x8000, 0x1000, CRC(e6e06954) SHA1(ee5b266b1cc178df31fc1da5f66ef4911c653dda) )
+ ROM_LOAD( "mspacatk.6", 0x9000, 0x1000, CRC(3b5db308) SHA1(c1ba630cb8fb665c4881a6cce9d3b0d4300bd0eb) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "msvectr.5e", 0x0000, 0x1000, CRC(56560aef) SHA1(1eac2b242328ec4d6ba9faac2fd972c8cb6c3e55) )
+ ROM_LOAD( "msvectr.5f", 0x1000, 0x1000, CRC(57cb31e3) SHA1(dc9278cee7f7ce341087760654bf0a1bcdeb2f7c) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( womanp5 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "womanp5.1", 0x0000, 0x1000, CRC(0afeef14) SHA1(39d7d8ce9ba3c166c0bef7f46e71520d50e00c32) )
+ ROM_LOAD( "superp4g.2", 0x1000, 0x1000, CRC(e6886710) SHA1(63207a2487a334e8de51ccede03b6d50e84e071a) )
+ ROM_LOAD( "womanp5.3", 0x2000, 0x1000, CRC(835ebcc2) SHA1(951ec2e88f4d47b0dcdcac28f964860ea21a5726) )
+ ROM_LOAD( "womanp5.4", 0x3000, 0x1000, CRC(b85c5572) SHA1(9eb397b24a783292d9a5ce9b866b19e9fdf2d1f8) )
+ ROM_LOAD( "womanp5.5", 0x8000, 0x1000, CRC(ce7459ac) SHA1(16df266e465d6673448f85e8834c4f0031ede671) )
+ ROM_LOAD( "boot6", 0x9000, 0x1000, CRC(368cb165) SHA1(387010a0c76319a1eab61b54c9bcb5c66c4b67a1) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "womanp5.5e", 0x0000, 0x1000, CRC(83613632) SHA1(1a47ef4d336baa3ba63cf0aceededec4bea35aaa) )
+ ROM_LOAD( "womanp5.5f", 0x1000, 0x1000, CRC(f2c4195e) SHA1(54446e6d1b74623410b67d303c3ab8eaee69f392) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( zolaad )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "zolapac1.bin", 0x0000, 0x4000, CRC(1aa2f312) SHA1(7b9685355e398c97de6972ec947fb11ca627a4d3) )
+ ROM_LOAD( "zolapac2.bin", 0x8000, 0x2000, CRC(420ff603) SHA1(a314c28ec5c526da91535fd47f51c95539a2e8e8) )
+
+ ROM_REGION( 0x2000, "gfx1" , 0 )
+ ROM_LOAD( "msatkad.5e", 0x0000, 0x1000, CRC(dc70ed2e) SHA1(b9fbb1d21085bc78eb82c429506b20e332b18e0e) )
+ ROM_LOAD( "msatkad.5f", 0x1000, 0x1000, CRC(643d5523) SHA1(565f92294a4b6a11dc5e9a165f35284c2a526e6c) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( zolaatk )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "zolaatk.1", 0x0000, 0x1000, CRC(2b9e9433) SHA1(5ab15ad04b8fe1711c0ace0471ac3594382a9fb3) )
+ ROM_LOAD( "zolaatk.2", 0x1000, 0x1000, CRC(0c8631d1) SHA1(09739200c90979550ae4ef14d27583aac50fd724) )
+ ROM_LOAD( "zolaatk.3", 0x2000, 0x1000, CRC(694450a3) SHA1(fcaa1e3ee993c2f563721336c59cac8af30bcc15) )
+ ROM_LOAD( "zolaatk.4", 0x3000, 0x1000, CRC(b5b30242) SHA1(b0b2044bcc26a1f9aee41c81367995b67ccd5edb) )
+ ROM_LOAD( "zolaatk.5", 0x8000, 0x1000, CRC(24cb5d9b) SHA1(1439ba665b00e840838e5f12df7d44a022541ef4) )
+ ROM_LOAD( "zolaatk.6", 0x9000, 0x1000, CRC(e0c03b4e) SHA1(3ef3decf7725a3ddb996c8268d4a83cbf5edd6b4) )
+
+ ROM_REGION( 0x2000, "gfx1" , 0 )
+ ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) )
+ ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( zolamaze )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "boot1", 0x0000, 0x1000, CRC(d16b31b7) SHA1(bc2247ec946b639dd1f00bfc603fa157d0baaa97) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "boot3", 0x2000, 0x1000, CRC(1821ee0b) SHA1(5ea4d907dbb2690698db72c4e0b5be4d3e9a7786) )
+ ROM_LOAD( "boot4", 0x3000, 0x1000, CRC(165a9dd8) SHA1(3022a408118fa7420060e32a760aeef15b8a96cf) )
+ ROM_LOAD( "zolamaze.5", 0x8000, 0x1000, CRC(f8ed55bb) SHA1(14c5b4adbf301dcaea2c59488f39eec08177f63f) )
+ ROM_LOAD( "zolamaze.6", 0x9000, 0x1000, CRC(17e35c00) SHA1(f9f0ea4f462de298b704c2ddd53fef1219dae145) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) )
+ ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( zolapac )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "zolapac1.bin", 0x0000, 0x4000, CRC(1aa2f312) SHA1(7b9685355e398c97de6972ec947fb11ca627a4d3) )
+ ROM_LOAD( "zolapac2.bin", 0x8000, 0x2000, CRC(420ff603) SHA1(a314c28ec5c526da91535fd47f51c95539a2e8e8) )
+
+ ROM_REGION( 0x2000, "gfx1" , 0 )
+ ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) )
+ ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( zolaslow )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "zolaatk.1", 0x0000, 0x1000, CRC(2b9e9433) SHA1(5ab15ad04b8fe1711c0ace0471ac3594382a9fb3) )
+ ROM_LOAD( "boot2", 0x1000, 0x1000, CRC(0d32de5e) SHA1(13ea0c343de072508908be885e6a2a217bbb3047) )
+ ROM_LOAD( "zolaatk.3", 0x2000, 0x1000, CRC(694450a3) SHA1(fcaa1e3ee993c2f563721336c59cac8af30bcc15) )
+ ROM_LOAD( "zolaatk.4", 0x3000, 0x1000, CRC(b5b30242) SHA1(b0b2044bcc26a1f9aee41c81367995b67ccd5edb) )
+ ROM_LOAD( "zolaslow.5", 0x8000, 0x1000, CRC(092292f1) SHA1(156ca674c09abe348691585fb14d16d32488d50d) )
+ ROM_LOAD( "zolaslow.6", 0x9000, 0x1000, CRC(52209eee) SHA1(91967cac6b327af24891e953df1c6900764ea09a) )
+
+ ROM_REGION( 0x2000, "gfx1" , 0 )
+ ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) )
+ ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( zolatunl )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "zolaatk.1", 0x0000, 0x1000, CRC(2b9e9433) SHA1(5ab15ad04b8fe1711c0ace0471ac3594382a9fb3) )
+ ROM_LOAD( "zolaatk.2", 0x1000, 0x1000, CRC(0c8631d1) SHA1(09739200c90979550ae4ef14d27583aac50fd724) )
+ ROM_LOAD( "zolaatk.3", 0x2000, 0x1000, CRC(694450a3) SHA1(fcaa1e3ee993c2f563721336c59cac8af30bcc15) )
+ ROM_LOAD( "zolaatk.4", 0x3000, 0x1000, CRC(b5b30242) SHA1(b0b2044bcc26a1f9aee41c81367995b67ccd5edb) )
+ ROM_LOAD( "boot5", 0x8000, 0x1000, CRC(8c3e6de6) SHA1(fed6e9a2b210b07e7189a18574f6b8c4ec5bb49b) )
+ ROM_LOAD( "zolaslow.6", 0x9000, 0x1000, CRC(52209eee) SHA1(91967cac6b327af24891e953df1c6900764ea09a) )
+
+ ROM_REGION( 0x2000, "gfx1" , 0 )
+ ROM_LOAD( "5e", 0x0000, 0x1000, CRC(5c281d01) SHA1(5e8b472b615f12efca3fe792410c23619f067845) )
+ ROM_LOAD( "5f", 0x1000, 0x1000, CRC(615af909) SHA1(fd6a1dde780b39aea76bf1c4befa5882573c2ef4) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( zolavect )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "zolapac1.bin", 0x0000, 0x4000, CRC(1aa2f312) SHA1(7b9685355e398c97de6972ec947fb11ca627a4d3) )
+ ROM_LOAD( "zolapac2.bin", 0x8000, 0x2000, CRC(420ff603) SHA1(a314c28ec5c526da91535fd47f51c95539a2e8e8) )
+
+ ROM_REGION( 0x2000, "gfx1" , 0 )
+ ROM_LOAD( "msvectr.5e", 0x0000, 0x1000, CRC(56560aef) SHA1(1eac2b242328ec4d6ba9faac2fd972c8cb6c3e55) )
+ ROM_LOAD( "msvectr.5f", 0x1000, 0x1000, CRC(57cb31e3) SHA1(dc9278cee7f7ce341087760654bf0a1bcdeb2f7c) )
+
+ PACMAN_PROMS
+ROM_END
+
+/*************************************
+ *
+ * Game drivers
+ *
+ *************************************/
+
+/* MAME */
+
+/* rom parent machine inp init */
+GAME( 1981, mspacman, 0, mspacman, mspacpls, pacman_state, mspacman, ROT90, "Midway", "Ms. Pacman", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, mspacmat, mspacman, mspacman, mspacman, pacman_state, mspacman, ROT90, "hack", "Ms. Pac Attack", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, mspacmab, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "bootleg", "Ms. Pacman (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, mspacmbe, mspacman, woodpek, mspacman, pacman_state, mspacmbe, ROT90, "bootleg", "Ms. Pacman (bootleg, (encrypted))", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, mspacmnf, mspacman, mspacman, mspacman, pacman_state, mspacman, ROT90, "Midway", "Ms. Pacman (with speedup hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, mspacpls, mspacman, woodpek, mspacpls, pacman_state, 0, ROT90, "hack", "Ms. Pacman Plus", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, pacgal, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "hack", "Pac-Gal", MACHINE_SUPPORTS_SAVE )
+
+/* Dave Widel's Games - http://www.widel.com */
+
+GAME( 2003, mrmrspac, mspacman, widel, mspacpls, pacman_state, 0, ROT90, "David Widel", "Mr and Mrs Pacman (MR MRS PAC-MAN)[c]", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, mspachi, mspacman, mspachi, mspacpls, pacman_state, 0, ROT90, "David Widel", "Ms. Pacman[h]", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pacatk, mspacman, mspacman, mspacpls, pacman_state, mspacman, ROT90, "David Widel", "Ms. Pacman Plus (Fruit)", MACHINE_SUPPORTS_SAVE )
+
+/* Blue Justice's Hacks */
+
+GAME( 2001, ms1000, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "Blue Justice", "Ms. Pacman 1000 (MS PAC-MAN 1000)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, ms2000, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "Blue Justice", "Ms. Pacman 2000 (MS PAC-MAN 2000)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, ms3000, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "Blue Justice", "Ms. Pacman 3000 (MS PAC-MAN 3000)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, ms4000p, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "Blue Justice", "Ms. Pacman 4000 Plus (MSPAC-MAN 4000PLUS)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, ms5000, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "Blue Justice", "Ms. Pacman 5000 (MS PAC-MAN 5000)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, ms5000p, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "Blue Justice", "Ms. Pacman 5000 Plus (MSPAC-MAN 5000PLUS)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, mscrzyma, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "Blue Justice", "Ms. Pacman Crazy Mazes (MS PAC CRAZY MAZES)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, mscrzymp, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "Blue Justice", "Ms. Pacman Crazy Mazes Plus (MS PAC-MAN CRAZYPLUS)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, msextra, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "Blue Justice", "Ms. Pacman Extra (MS PAC-MAN EXTRA)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, msextrap, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "Blue Justice", "Ms. Pacman Extra Plus (MS PAC-MAN EXTRAPLUS)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, msmspac, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "Blue Justice", "Ms. Pacman Ms. Pac (MS PAC-MAN MS PAC)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, mspacdel, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "Blue Justice", "Ms. Pacman Deluxe (MS PAC-MAN DELUXE)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, mspamsba, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "Blue Justice", "Ms. Pacman Ms. Babies (MS PAC-MAN MS BABIES)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, mspacp, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "Blue Justice", "Ms. Pacman Plus (MS PAC-MAN PLUS)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, msplus, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "Blue Justice", "Ms. Pacman Ms Plus (MS PAC-MAN MS PLUS)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, msstrmaz, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "Blue Justice", "Ms. Pacman Strange Mazes (MS PAC STRANGE MAZES)", MACHINE_SUPPORTS_SAVE )
+
+/* T-Bone Hacks */
+
+GAME( 2000, ms2600, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "T-Bone", "Ms. Pacman 2600", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, msbaby, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "T-Bone", "Ms. Baby Pacman", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, msmini, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "T-Bone", "Ms. Pac-Mini", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, msminia, mspacman, woodpek, mspacpls, pacman_state, 0, ROT90, "T-Bone", "Ms. Pac-Attack Mini [c]", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, msnes4a, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "T-Bone", "Ms. Pacman SNES (Tall Alternate)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, msnes62, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "T-Bone", "Ms. Pacman NES (Set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, msnes63, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "T-Bone", "Ms. Pacman NES (Set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, msnes6m, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "T-Bone", "Ms. Pacman NES (6 maps)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, msnes6m2, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "T-Bone", "Ms. Pacman SNES (New Mazes)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, msnes6m3, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "T-Bone", "Ms. Pacman SNES (Regular / Tall)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, msnes6m4, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "T-Bone", "Ms. Pacman SNES (Regular)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, mspacnes, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "T-Bone", "Ms. Pacman NES", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mspacren, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "T-Bone", "Ms. Pacman Renaissance", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mspc6mad, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "T-Bone", "Ms. Pacman After Dark (6 Mazes)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, msvctr6m, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "T-Bone", "Vector Ms. Pacman (6 Mazes)", MACHINE_SUPPORTS_SAVE )
+
+/* Jerronimo's Progs - www.umlautllama.com */
+
+GAME( 2004, horizpab, mspacman, woodpek, mspacman, pacman_state, 0, ROT0, "Scott Lawrence", "Horiz Pac (v1.0)", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, horizpac, mspacman, woodpek, mspacman, pacman_state, 0, ROT0, "Scott Lawrence", "Horiz Pac", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, pacgent, mspacman, woodpek, mspacpls, pacman_state, 0, ROT90, "Scott Lawrence", "Pac Gentleman [f]", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, ramsnoop, mspacman, woodpek, mspacpls, pacman_state, 0, ROT90, "Scott Lawrence", "Miss Snoop v1.3 [f]", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, ottop1, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "Scott Lawrence", "Otto Project P1", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, ottop2, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "Scott Lawrence", "Otto Project P2", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, ottop3, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "Scott Lawrence", "Otto Project P3", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, ottopz, mspacman, woodpek, mspacpls, pacman_state, 0, ROT90, "Scott Lawrence", "Otto Project PZ", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, superp4g, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "Scott Lawrence", "Otto Project P4G", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, superp4m, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "Scott Lawrence", "Otto Project P4M", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, womanp5, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "Scott Lawrence", "Otto Project P5", MACHINE_SUPPORTS_SAVE )
+
+/* Grendal74's Hacks */
+
+GAME( 2001, msdroid, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "Grendal74", "Ms. Pacman Android", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, msgrkatk, mspacman, woodpek, mspacpls, pacman_state, 0, ROT90, "Grendal74", "Ms. Pac Attack Greek [c]", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, msgrkb, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "Grendal74", "Ms. Pacman Greek", MACHINE_SUPPORTS_SAVE )
+
+/* Medragon's Hacks */
+
+GAME( 2000, mrpacman, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "Tim Appleton", "Mr. Pacman - Another Kind of Role Reversal", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mspacfnt, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "Tim Appleton", "Ms. Pacman with Pacman font", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mspacwf, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "Tim Appleton", "Ms Weird Fruit Pac", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, msrumble, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "Tim Appleton", "Ms. Pac Rumble", MACHINE_SUPPORTS_SAVE )
+
+/* Sil's Hacks */
+
+GAME( 2000, mselton, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "Marcel Silvius", "Ms. Elton", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, msf1pac, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "Marcel Silvius", "Ms. F1 Pacman", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, msindy, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "Marcel Silvius", "Ms. Indy", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, mspac6m, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "Marcel Silvius", "Ms. Pacman 6M (Six Maze)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, mspac6m2, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "Marcel Silvius", "Ms. Pacman 6M (Six Maze) (Set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mspacad, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "Marcel Silvius", "Ms. Pacman After Dark", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mspacat2, mspacman, woodpek, mspacpls, pacman_state, 0, ROT90, "Marcel Silvius", "Ms. Pacman Plus / Attack [c]", MACHINE_SUPPORTS_SAVE )
+
+/* Bobby Tribble's Hacks */
+
+GAME( 2000, msberzk, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "Bobby Tribble", "Ms. Pacman Berzerk", MACHINE_SUPPORTS_SAVE )
+
+/* Hires hacks */
+
+GAME( 1981, mspacatx, mspacmnx, mspacmnx, mspacpls, pacman_state, mspacman, ROT90, "hack", "Ms. Pac Attack (hires hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, mspacmbx, mspacmnx, woodpekx, mspacman, pacman_state, 0, ROT90, "bootleg", "Ms. Pac-Man (bootleg) (hires hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, mspacmfx, mspacmnx, mspacmnx, mspacpls, pacman_state, mspacman, ROT90, "Midway", "Ms. Pac-Man (hires hack) [f]", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, mspacmnx, 0, mspacmnx, mspacpls, pacman_state, mspacman, ROT90, "Midway", "Ms. Pac-Man (hires hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, mspacplx, mspacmnx, woodpekx, mspacpls, pacman_state, 0, ROT90, "hack", "Ms. Pac-Man Plus (hires hack) [c]", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, pacgalx, mspacmnx, woodpekx, mspacman, pacman_state, 0, ROT90, "hack", "Pac-Gal (hires hack)", MACHINE_SUPPORTS_SAVE )
+
+/* Misc MsPacman Hacks */
+
+GAME( 2000, chtmsatk, mspacman, woodpek, mspacpls, pacman_state, 0, ROT90, "[Midway]", "Ms. Pacman Plus [c]", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, chtmspa, mspacman, woodpek, mspacpls, pacman_state, 0, ROT90, "[Midway]", "Ms. Pacman [c]", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, cookiem, mspacman, woodpek, mspacpls, pacman_state, 0, ROT90, "Nic", "Cookie-Mon! [c]", MACHINE_SUPPORTS_SAVE )
+GAME( 2008, cottoh, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "Gatinho", "Crazy Otto simulation", MACHINE_SUPPORTS_SAVE )
+GAME( 2010, cottoh2, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "Gatinho", "Crazy Otto simulation Ver 2", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, fasthear, mspacman, woodpek, mspacpls, pacman_state, 0, ROT90, "PacHack", "Ms. Heart Burn [f]", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, fastmspa, mspacman, woodpek, mspacpls, pacman_state, 0, ROT90, "[Midway]", "Ms. Pacman [f]", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, faststrm, mspacman, woodpek, mspacpls, pacman_state, 0, ROT90, "[Midway]", "Ms. Desert Storm [f]", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, fstmsatk, mspacman, woodpek, mspacpls, pacman_state, 0, ROT90, "[Midway]", "Ms. Pacman Attack [f]", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, heartbn2, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "PacHack", "Ms. Heart Burn", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, heartbrn, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "TwoBit Score", "Ms. Heart Burn (set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, msatk2ad, mspacman, woodpek, mspacpls, pacman_state, 0, ROT90, "[Midway]", "Ms. Pacman Plus / Attack After Dark [c]", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, msatkad, mspacman, woodpek, mspacpls, pacman_state, 0, ROT90, "[Midway]", "Ms. Pacman Plus After Dark [c]", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, msdstorm, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "Mike Naylor", "Ms. Desert Storm", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mshangly, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "[Midway]", "Ms. Hangly Man", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, msheartb, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "[Midway]", "Ms. Pacman Hearts (set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mshearts, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "[Midway]", "Ms. Pacman Hearts", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, mspac1, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "[Midway]", "Ms. Pacman (single rom set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mspacatb, mspacman, woodpek, mspacpls, pacman_state, 0, ROT90, "[Midway]", "Ms. Pacman Plus (Set B) [c]", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, mspacde, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "[Midway]", "Ms. Pacman -1", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, mspacii, mspacman, mspacii, mspacman, pacman_state, 0, ROT90, "Orca", "Ms. Pacman II", MACHINE_SUPPORTS_SAVE )
+GAME( 1983, mspacit, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "[Midway]", "Ms. Pacman -2", MACHINE_SUPPORTS_SAVE )
+GAME( 1983, mspacit2, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "[Midway]", "Ms. Pacman -3", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, mspacj, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "[Midway]", "Ms. Pacman (Jamma? Bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, mspacmap, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "Don Hodges", "Ms. Pacman (patched)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mspacmbg, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "[Midway]", "Ms. Pacman (single rom)", MACHINE_SUPPORTS_SAVE )
+GAME( 2006, mspacpbl, mspacman, woodpek, mspacpls, pacman_state, 0, ROT90, "Dav/PMP", "Ms. Pac Plus (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mspacrip, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "R3mer", "Ms. Pac-Mortem", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mspacsup, mspacman, woodpek, mspacpls, pacman_state, 0, ROT90, "[Midway]", "Super Ms. Pac-Man", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mssilad, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "[Midway]", "Ms. Pacman After Dark (Sil)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, msultra, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "PacFan", "Ms. Ultra Pacman", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, msvectr, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "[Midway]", "Vector Ms. Pacman", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, msyakman, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "Jeff Minter", "Ms. Yak Man", MACHINE_SUPPORTS_SAVE )
+GAME( 1982, pacgalu, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "Uchida", "Pac-Gal (Hearts)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, petshop, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "Weirdness Inc", "Pet Shop Freak-Out!", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, piranha2, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "US Billiards", "Piranha 2 Revenge!", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, sueworld, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "PacFay", "Sue's World", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, sueworlb, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "PacFay", "Sue's World (Old)", MACHINE_SUPPORTS_SAVE )
+GAME( 19??, supmspac, mspacman, woodpek, mspacpls, pacman_state, 0, ROT90, "Spedic Vending", "Super Ms Pac-man [f]", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, vectratk, mspacman, woodpek, mspacpls, pacman_state, 0, ROT90, "[Midway]", "Vector Attack [c]", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, zolaad, mspacman, zolapac, mspacman, pacman_state, 0, ROT90, "Tqwn Amusement", "Super Zola Pac Gal After Dark", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, zolaatk, mspacman, zolapac, mspacman, pacman_state, 0, ROT90, "Tqwn Amusement", "Super Zola Pac Gal Attack", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, zolamaze, mspacman, woodpek, mspacman, pacman_state, 0, ROT90, "[Midway]", "Ms. Pacman No Exit", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, zolapac, mspacman, zolapac, mspacman, pacman_state, 0, ROT90, "Tqwn Amusement", "Super Zola Pac Gal", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, zolaslow, mspacman, zolapac, mspacman, pacman_state, 0, ROT90, "Tqwn Amusement", "Super Zola Pac Gal (Slow)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, zolatunl, mspacman, zolapac, mspacman, pacman_state, 0, ROT90, "Tqwn Amusement", "Super Zola Pac Gal (Tunnels)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, zolavect, mspacman, zolapac, mspacman, pacman_state, 0, ROT90, "Tqwn Amusement", "Vector Super Zola Pac Gal", MACHINE_SUPPORTS_SAVE )
+
diff --git a/src/hbmame/drivers/multipac.cpp b/src/hbmame/drivers/multipac.cpp
new file mode 100644
index 00000000000..7f92afd13d7
--- /dev/null
+++ b/src/hbmame/drivers/multipac.cpp
@@ -0,0 +1,1893 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+/**********************************************
+ Multi-game systems on pacman hardware
+ by Robbbert 2007-2013
+
+ Game choice is done via a menu
+**********************************************/
+
+WRITE8_MEMBER( pacman_state::m96in1_rombank_w )
+{
+ data &= 0x0f;
+ membank("bank1")->set_entry(data);
+ membank("bank2")->set_entry(data);
+ multipac_gfxbank_w( space, 0, data );
+}
+
+WRITE8_MEMBER( pacman_state::m96in1b_rombank_w )
+{
+ data &= 0x1f; /* config screen outputs some large values such as 197, 200 */
+ membank("bank1")->set_entry(data);
+ membank("bank2")->set_entry(data);
+ m96in1b_gfxbank_w( data );
+}
+
+WRITE8_MEMBER( pacman_state::hackypac_rombank_w )
+{
+ uint8_t banks[] = { 0, 0, 0, 0, 0, 0, 4, 0, 7, 0, 0, 0, 8, 6, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 5, 3 };
+ data &= 0x1f; /* strip extra bits when option selected */
+ membank("bank1")->set_entry(data);
+ membank("bank2")->set_entry(data);
+ multipac_palbank_w( space, 1, banks[data] ); /* convert to a palette bank and switch to it */
+}
+
+WRITE8_MEMBER( pacman_state::madpac_rombank_w )
+{
+ data &= 0x1f; /* config screen outputs some large values such as 197, 200 */
+ membank("bank1")->set_entry(data);
+ membank("bank2")->set_entry(data);
+ madpac_gfxbank_w( data );
+}
+
+WRITE8_MEMBER( pacman_state::multipac_rombank_w )
+{
+ uint8_t temp = ((data & 0x0f) << 1) + ((data & 0x10) >> 4); /* rearrange bits */
+ membank("bank1")->set_entry(temp); /* select rom bank */
+ if (!m_maincpu->space(AS_PROGRAM).read_byte(0xa007))
+ membank("bank2")->set_entry(temp << 1); /* Ms Pacman needs more roms */
+ m_maincpu->set_pc(0); /* Set PC <- 0000 needed for Lizard Wizard */
+}
+
+WRITE8_MEMBER( pacman_state::pm4n1_rombank_w )
+{
+ static uint8_t pm4n1_temp = 0;
+ uint8_t banks[] = { 0, 4, 2, 0, 1, 0, 3, 0 };
+ pm4n1_temp &= (7 - (1<<offset));
+ pm4n1_temp |= (data&1)<<offset;
+ membank("bank1")->set_entry(banks[pm4n1_temp]);
+ membank("bank2")->set_entry(banks[pm4n1_temp]);
+ multipac_gfxbank_w( space, 0, banks[pm4n1_temp] );
+}
+
+WRITE8_MEMBER( pacman_state::pm4n1d_rombank_w )
+{
+ if (offset==1)
+ {
+ membank("bank1")->set_entry(data);
+ membank("bank2")->set_entry(data);
+ multipac_gfxbank_w( space, 0, data<<1 );
+ }
+}
+
+WRITE8_MEMBER( pacman_state::superabc_rombank_w )
+{
+ data = data >> 4;
+ membank("bank1")->set_entry(data);
+ membank("bank2")->set_entry(data);
+ membank("bank3")->set_entry(data);
+ multipac_gfxbank_w( space, 0, data );
+}
+
+
+/*************************************
+ *
+ * Machine init
+ *
+ *************************************/
+
+MACHINE_RESET_MEMBER( pacman_state, 96in1 )
+{
+ address_space &space = m_maincpu->space(AS_PROGRAM);
+ m96in1_rombank_w( space, 0,0 );
+ m_namco_sound->pacman_sound_enable_w(0);
+}
+
+MACHINE_RESET_MEMBER( pacman_state, hackypac )
+{
+ address_space &space = m_maincpu->space(AS_PROGRAM);
+ multipac_gfxbank_w( space, 0,0 );
+ hackypac_rombank_w( space, 0,0 );
+ m_namco_sound->pacman_sound_enable_w(0);
+}
+
+MACHINE_RESET_MEMBER( pacman_state, madpac )
+{
+ address_space &space = m_maincpu->space(AS_PROGRAM);
+ madpac_rombank_w( space, 0,0 );
+ m_namco_sound->pacman_sound_enable_w(0);
+}
+
+MACHINE_RESET_MEMBER( pacman_state, mschamp )
+{
+ uint8_t *rom = memregion("maincpu")->base() + 0x10000;
+ uint8_t data = ioport("GAME")->read() & 1;
+
+ membank("bank1")->configure_entries(0, 2, &rom[0x0000], 0x8000);
+ membank("bank2")->configure_entries(0, 2, &rom[0x4000], 0x8000);
+
+ membank("bank1")->set_entry(data);
+ membank("bank2")->set_entry(data);
+}
+
+MACHINE_RESET_MEMBER( pacman_state, multipac )
+{
+ address_space &space = m_maincpu->space(AS_PROGRAM);
+ multipac_rombank_w( space, 0, 0);
+ multipac_gfxbank_w( space, 0, 0);
+ multipac_palbank_w( space, 0, 0);
+ m_namco_sound->pacman_sound_enable_w(0);
+}
+
+static uint8_t curr_bank = 0;
+
+/* select next game when F3 pressed */
+MACHINE_RESET_MEMBER( pacman_state, mspaceur )
+{
+ membank("bank2")->set_entry(curr_bank);
+ curr_bank ^= 1; /* toggle between 0 and 1 */
+}
+
+MACHINE_RESET_MEMBER( pacman_state, pm4n1 )
+{
+ address_space &space = m_maincpu->space(AS_PROGRAM);
+ pm4n1_rombank_w(space, 0, 0);
+ pm4n1_rombank_w(space, 1, 0);
+ pm4n1_rombank_w(space, 2, 0);
+ m_namco_sound->pacman_sound_enable_w(0);
+}
+
+
+
+static ADDRESS_MAP_START( 96in1_writeport, AS_IO, 8, pacman_state )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
+ AM_RANGE(0x00, 0x00) AM_WRITE(pacman_interrupt_vector_w)
+ AM_RANGE(0x01, 0x01) AM_WRITE(m96in1_rombank_w)
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( 96in1b_writeport, AS_IO, 8, pacman_state )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
+ AM_RANGE(0x00, 0x00) AM_WRITE(pacman_interrupt_vector_w)
+ AM_RANGE(0x01, 0x01) AM_WRITE(m96in1b_rombank_w)
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( hackypac_map, AS_PROGRAM, 8, pacman_state )
+ AM_RANGE(0x0000, 0x3fff) AM_ROMBANK("bank1")
+ AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0x8000) AM_RAM_WRITE(pacman_videoram_w) AM_SHARE("videoram")
+ AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0x8000) AM_RAM_WRITE(pacman_colorram_w) AM_SHARE("colorram")
+ AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0x8000) AM_READ(pacman_read_nop) AM_WRITENOP
+ AM_RANGE(0x4c00, 0x4fef) AM_MIRROR(0x8000) AM_RAM
+ AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0x8000) AM_RAM AM_SHARE("spriteram")
+ AM_RANGE(0x5000, 0x5007) AM_DEVWRITE("mainlatch", addressable_latch_device, write_d0)
+ AM_RANGE(0x5008, 0x503f) AM_WRITENOP
+ AM_RANGE(0x5040, 0x505f) AM_DEVWRITE("namco", namco_device, pacman_sound_w)
+ AM_RANGE(0x5060, 0x507f) AM_WRITEONLY AM_SHARE("spriteram2")
+ AM_RANGE(0x5080, 0x50bf) AM_WRITENOP
+ AM_RANGE(0x50c0, 0x50c0) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
+ AM_RANGE(0x5000, 0x5000) AM_READ_PORT("IN0")
+ AM_RANGE(0x5040, 0x5040) AM_READ_PORT("IN1")
+ AM_RANGE(0x5080, 0x5080) AM_READ_PORT("DSW1")
+ AM_RANGE(0x50c0, 0x50c0) AM_READ_PORT("DSW2")
+ AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank2")
+ AM_RANGE(0xfffc, 0xffff) AM_RAM
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( hackypac_writeport, AS_IO, 8, pacman_state )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
+ AM_RANGE(0x00, 0x00) AM_WRITE(pacman_interrupt_vector_w)
+ AM_RANGE(0x01, 0x01) AM_WRITE(hackypac_rombank_w)
+ AM_RANGE(0x02, 0x02) AM_WRITE(multipac_gfxbank_w)
+ AM_RANGE(0x04, 0x04) AM_WRITENOP /* colorbank select, not used due to a bug */
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( madpac_map, AS_PROGRAM, 8, pacman_state )
+ /* Mirrors in the 50xx range are needed by Zigzag */
+ AM_RANGE(0x0000, 0x3fff) AM_ROMBANK("bank1")
+ AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0x8000) AM_RAM_WRITE(pacman_videoram_w) AM_SHARE("videoram")
+ AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0x8000) AM_RAM_WRITE(pacman_colorram_w) AM_SHARE("colorram")
+ AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0x8000) AM_READ(pacman_read_nop)
+ AM_RANGE(0x4c00, 0x4fef) AM_MIRROR(0x8000) AM_RAM
+ AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0x8000) AM_RAM AM_SHARE("spriteram")
+ AM_RANGE(0x5000, 0x5007) AM_DEVWRITE("mainlatch", addressable_latch_device, write_d0)
+ AM_RANGE(0x5008, 0x500f) AM_WRITENOP /* most pacman-type games write here */
+ AM_RANGE(0x5040, 0x505f) AM_DEVWRITE("namco", namco_device, pacman_sound_w)
+ AM_RANGE(0x5060, 0x507f) AM_WRITEONLY AM_SHARE("spriteram2")
+ AM_RANGE(0x50c0, 0x50c0) AM_MIRROR(0x8000) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
+ AM_RANGE(0x5000, 0x5000) AM_MIRROR(0x8000) AM_READ_PORT("IN0")
+ AM_RANGE(0x5040, 0x5040) AM_MIRROR(0x8000) AM_READ_PORT("IN1")
+ AM_RANGE(0x5080, 0x5080) AM_MIRROR(0x8000) AM_READ_PORT("DSW1")
+ AM_RANGE(0x50c0, 0x50c0) AM_MIRROR(0x8000) AM_READ_PORT("DSW2")
+ AM_RANGE(0x8000, 0xb7ff) AM_ROMBANK("bank2")
+ AM_RANGE(0xb800, 0xbfff) AM_RAM AM_SHARE("nvram")
+ AM_RANGE(0xf800, 0xffff) AM_RAM /* various games use this */
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( madpac_writeport, AS_IO, 8, pacman_state )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
+ AM_RANGE(0x00, 0x00) AM_WRITE(pacman_interrupt_vector_w)
+ AM_RANGE(0x01, 0x01) AM_WRITE(madpac_rombank_w)
+ADDRESS_MAP_END
+
+
+static ADDRESS_MAP_START( mspaceur_map, AS_PROGRAM, 8, pacman_state )
+ AM_RANGE(0x0000, 0x3fff) AM_ROM
+ AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0x8000) AM_RAM_WRITE(pacman_videoram_w) AM_SHARE("videoram")
+ AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0x8000) AM_RAM_WRITE(pacman_colorram_w) AM_SHARE("colorram")
+ AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0x8000) AM_READ(pacman_read_nop)
+ AM_RANGE(0x4c00, 0x4fef) AM_MIRROR(0x8000) AM_RAM
+ AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0x8000) AM_RAM AM_SHARE("spriteram")
+ AM_RANGE(0x5000, 0x5007) AM_DEVWRITE("mainlatch", addressable_latch_device, write_d0)
+ AM_RANGE(0x5040, 0x505f) AM_DEVWRITE("namco", namco_device, pacman_sound_w)
+ AM_RANGE(0x5060, 0x506f) AM_WRITEONLY AM_SHARE("spriteram2")
+ AM_RANGE(0x5070, 0x507f) AM_WRITENOP
+ AM_RANGE(0x50c0, 0x50c0) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
+ AM_RANGE(0x5000, 0x5000) AM_READ_PORT("IN0")
+ AM_RANGE(0x5040, 0x5040) AM_READ_PORT("IN1")
+ AM_RANGE(0x5080, 0x5080) AM_READ_PORT("DSW1")
+ AM_RANGE(0x50c0, 0x50c0) AM_READ_PORT("DSW2")
+ AM_RANGE(0x8000, 0x9fff) AM_ROMBANK("bank2")
+ AM_RANGE(0xfffc, 0xffff) AM_RAM
+ADDRESS_MAP_END
+
+
+static ADDRESS_MAP_START( mschamp_map, AS_PROGRAM, 8, pacman_state )
+ AM_RANGE(0x0000, 0x3fff) AM_ROMBANK("bank1")
+ AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0x8000) AM_RAM_WRITE(pacman_videoram_w) AM_SHARE("videoram")
+ AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0x8000) AM_RAM_WRITE(pacman_colorram_w) AM_SHARE("colorram")
+ AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0x8000) AM_READ(pacman_read_nop)
+ AM_RANGE(0x4c00, 0x4fef) AM_MIRROR(0x8000) AM_RAM
+ AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0x8000) AM_RAM AM_SHARE("spriteram")
+ AM_RANGE(0x5000, 0x5007) AM_DEVWRITE("mainlatch", addressable_latch_device, write_d0)
+ AM_RANGE(0x5040, 0x505f) AM_DEVWRITE("namco", namco_device, pacman_sound_w)
+ AM_RANGE(0x5060, 0x506f) AM_WRITEONLY AM_SHARE("spriteram2")
+ AM_RANGE(0x5070, 0x507f) AM_WRITENOP
+ AM_RANGE(0x50c0, 0x50c0) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
+ AM_RANGE(0x5000, 0x5000) AM_READ_PORT("IN0")
+ AM_RANGE(0x5040, 0x5040) AM_READ_PORT("IN1")
+ AM_RANGE(0x5080, 0x5080) AM_READ_PORT("DSW1")
+ AM_RANGE(0x50c0, 0x50c0) AM_READ_PORT("DSW2")
+ AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank2")
+ AM_RANGE(0xf270, 0xf270) AM_RAM
+ AM_RANGE(0xfffc, 0xffff) AM_RAM
+ADDRESS_MAP_END
+
+
+static ADDRESS_MAP_START( multipac_map, AS_PROGRAM, 8, pacman_state )
+ AM_RANGE(0x0000, 0x3fff) AM_ROMBANK("bank1")
+ AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0x8000) AM_RAM_WRITE(pacman_videoram_w) AM_SHARE("videoram")
+ AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0x8000) AM_RAM_WRITE(pacman_colorram_w) AM_SHARE("colorram")
+ AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0x8000) AM_READ(pacman_read_nop) AM_WRITENOP
+ AM_RANGE(0x4c00, 0x4fef) AM_MIRROR(0x8000) AM_RAM
+ AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0x8000) AM_RAM AM_SHARE("spriteram")
+ AM_RANGE(0x5000, 0x5007) AM_DEVWRITE("mainlatch", addressable_latch_device, write_d0)
+ AM_RANGE(0x5040, 0x505f) AM_DEVWRITE("namco", namco_device, pacman_sound_w)
+ AM_RANGE(0x5060, 0x506f) AM_WRITEONLY AM_SHARE("spriteram2")
+ AM_RANGE(0x5070, 0x507f) AM_WRITENOP
+ AM_RANGE(0x50c0, 0x50c0) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
+ AM_RANGE(0x5000, 0x5000) AM_READ_PORT("IN0")
+ AM_RANGE(0x5040, 0x5040) AM_READ_PORT("IN1")
+ AM_RANGE(0x5080, 0x5080) AM_READ_PORT("DSW1")
+ AM_RANGE(0x50c0, 0x50c0) AM_READ_PORT("DSW2")
+ AM_RANGE(0x8000, 0x9fff) AM_ROMBANK("bank2") /* Ms. Pacman */
+ AM_RANGE(0xa000, 0xa000) AM_WRITE(multipac_rombank_w)
+ AM_RANGE(0xa001, 0xa001) AM_WRITE(multipac_gfxbank_w)
+ AM_RANGE(0xa002, 0xa003) AM_WRITE(multipac_palbank_w)
+ AM_RANGE(0xa007, 0xa007) AM_RAM /* 0 = get ready to activate rombank(2) */
+ AM_RANGE(0xf000, 0xffff) AM_RAM
+ADDRESS_MAP_END
+
+
+static ADDRESS_MAP_START( pm4n1_map, AS_PROGRAM, 8, pacman_state )
+ AM_RANGE(0x0000, 0x3fff) AM_ROMBANK("bank1")
+ AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0x8000) AM_RAM_WRITE(pacman_videoram_w) AM_SHARE("videoram")
+ AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0x8000) AM_RAM_WRITE(pacman_colorram_w) AM_SHARE("colorram")
+ AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0x8000) AM_READ(pacman_read_nop) AM_WRITENOP
+ AM_RANGE(0x4c00, 0x4fef) AM_MIRROR(0x8000) AM_RAM
+ AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0x8000) AM_RAM AM_SHARE("spriteram")
+ AM_RANGE(0x5004, 0x5006) AM_WRITE(pm4n1_rombank_w)
+ AM_RANGE(0x5000, 0x5007) AM_DEVWRITE("mainlatch", addressable_latch_device, write_d0)
+ AM_RANGE(0x5040, 0x505f) AM_DEVWRITE("namco", namco_device, pacman_sound_w)
+ AM_RANGE(0x5060, 0x506f) AM_WRITEONLY AM_SHARE("spriteram2")
+ AM_RANGE(0x5070, 0x507f) AM_WRITENOP
+ AM_RANGE(0x50c0, 0x50c1) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
+ AM_RANGE(0x5000, 0x5001) AM_READ_PORT("IN0")
+ AM_RANGE(0x5040, 0x5041) AM_READ_PORT("IN1")
+ AM_RANGE(0x5080, 0x5081) AM_READ_PORT("DSW1")
+ AM_RANGE(0x8000, 0x9fff) AM_ROMBANK("bank2") /* Ms. Pacman */
+ADDRESS_MAP_END
+
+
+static ADDRESS_MAP_START( pm4n1c_map, AS_PROGRAM, 8, pacman_state )
+ AM_RANGE(0x0000, 0x3fff) AM_ROMBANK("bank1")
+ AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0x8000) AM_RAM_WRITE(pacman_videoram_w) AM_SHARE("videoram")
+ AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0x8000) AM_RAM_WRITE(pacman_colorram_w) AM_SHARE("colorram")
+ AM_RANGE(0x4800, 0x4bff) AM_RAM AM_SHARE("nvram")
+ AM_RANGE(0x4c00, 0x4fef) AM_RAM
+ AM_RANGE(0x4ff0, 0x4fff) AM_RAM AM_SHARE("spriteram")
+ AM_RANGE(0x5004, 0x5006) AM_WRITE(pm4n1_rombank_w)
+ AM_RANGE(0x5000, 0x5007) AM_DEVWRITE("mainlatch", addressable_latch_device, write_d0)
+ AM_RANGE(0x5040, 0x505f) AM_DEVWRITE("namco", namco_device, pacman_sound_w)
+ AM_RANGE(0x5060, 0x506f) AM_WRITEONLY AM_SHARE("spriteram2")
+ AM_RANGE(0x5070, 0x507f) AM_WRITENOP
+ AM_RANGE(0x50c0, 0x50c1) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
+ AM_RANGE(0x5000, 0x5001) AM_READ_PORT("IN0")
+ AM_RANGE(0x5040, 0x5041) AM_READ_PORT("IN1")
+ AM_RANGE(0x5080, 0x5081) AM_READ_PORT("DSW1")
+ AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank2")
+ AM_RANGE(0xe004, 0xe006) AM_WRITENOP // mirror of 5004-5006
+ADDRESS_MAP_END
+
+
+static ADDRESS_MAP_START( pm4n1d_map, AS_PROGRAM, 8, pacman_state )
+ AM_RANGE(0x0000, 0x3fff) AM_ROMBANK("bank1")
+ AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0x8000) AM_RAM_WRITE(pacman_videoram_w) AM_SHARE("videoram")
+ AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0x8000) AM_RAM_WRITE(pacman_colorram_w) AM_SHARE("colorram")
+ AM_RANGE(0x4800, 0x4bff) AM_RAM AM_SHARE("nvram")
+ AM_RANGE(0x4c00, 0x4fef) AM_RAM
+ AM_RANGE(0x4ff0, 0x4fff) AM_RAM AM_SHARE("spriteram")
+ AM_RANGE(0x5004, 0x5006) AM_WRITE(pm4n1d_rombank_w)
+ AM_RANGE(0x5000, 0x5007) AM_DEVWRITE("mainlatch", addressable_latch_device, write_d0)
+ AM_RANGE(0x5040, 0x505f) AM_DEVWRITE("namco", namco_device, pacman_sound_w)
+ AM_RANGE(0x5060, 0x506f) AM_WRITEONLY AM_SHARE("spriteram2")
+ AM_RANGE(0x5070, 0x507f) AM_WRITENOP
+ AM_RANGE(0x50c0, 0x50c1) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
+ AM_RANGE(0x5000, 0x5001) AM_READ_PORT("IN0")
+ AM_RANGE(0x5040, 0x5041) AM_READ_PORT("IN1")
+ AM_RANGE(0x5080, 0x5081) AM_READ_PORT("DSW1")
+ AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank2")
+ AM_RANGE(0xe004, 0xe006) AM_WRITENOP // mirror of 5004-5006
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( superabc_map, AS_PROGRAM, 8, pacman_state )
+ AM_RANGE(0x0000, 0x3fff) AM_ROMBANK("bank1")
+ AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_videoram_w) AM_SHARE("videoram")
+ AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_colorram_w) AM_SHARE("colorram")
+ AM_RANGE(0x4800, 0x49ff) AM_RAM AM_SHARE("nvram") /* high scores and work area */
+ AM_RANGE(0x4c00, 0x4fef) AM_RAM /* system ram */
+ AM_RANGE(0x4ff0, 0x4fff) AM_RAM AM_SHARE("spriteram")
+ AM_RANGE(0x5006, 0x5006) AM_WRITE(superabc_rombank_w) /* bit 0 = coin lockout, bits 4,5,6 = bank select */
+ AM_RANGE(0x5000, 0x5007) AM_DEVWRITE("mainlatch", addressable_latch_device, write_d0)
+ AM_RANGE(0x5040, 0x505f) AM_DEVWRITE("namco", namco_device, pacman_sound_w)
+ AM_RANGE(0x5060, 0x506f) AM_WRITEONLY AM_SHARE("spriteram2")
+ AM_RANGE(0x5070, 0x507f) AM_WRITENOP
+ AM_RANGE(0x50c0, 0x50c1) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
+ AM_RANGE(0x5000, 0x5000) AM_READ_PORT("IN0")
+ AM_RANGE(0x5040, 0x5040) AM_READ_PORT("IN1") /* IN1 - comment this out to get an easter egg */
+ AM_RANGE(0x5080, 0x5080) AM_READ_PORT("DSW1")
+ AM_RANGE(0x50c0, 0x50c0) AM_READ_PORT("DSW2") /* DSW2 - not used */
+ AM_RANGE(0x8000, 0x9fff) AM_ROMBANK("bank2")
+ AM_RANGE(0xa000, 0xbfff) AM_ROMBANK("bank3")
+ADDRESS_MAP_END
+
+
+/*************************************
+ *
+ * Port definitions
+ *
+ *************************************/
+
+INPUT_PORTS_START( 96in1 )
+ PORT_START ("IN0") /* IN0 */
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY
+ /* Press this while playing pacman to instantly finish the level */
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Finish Level (Cheat)") PORT_CODE(KEYCODE_8)
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN3 ) /* Alien Armada only */
+
+ PORT_START ("IN1") /* IN1 */
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL
+ /* Hold this down while starting pacman to get service settings */
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Service") PORT_CODE(KEYCODE_9)
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 ) /* Also used as the fire button */
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
+ PORT_DIPNAME(0x80, 0x80, DEF_STR( Cabinet ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( Upright ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
+
+ PORT_START ("DSW1") /* DSW 1 */
+ PORT_DIPNAME( 0x01, 0x01, "DIP 1: Simple Menu" )
+ PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x02, 0x02, "DIP 2: Initials only" )
+ PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x04, 0x04, "DIP 3: Fast OK for TM" )
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x08, "DIP 4: Tournament Mode" )
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, "DIP 5: Guest Mode" )
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x20, "DIP 6: Dip Menu" )
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x40, DEF_STR( Difficulty ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( Normal ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Hard ) )
+ PORT_DIPNAME( 0x80, 0x80, "Ghost Names" )
+ PORT_DIPSETTING( 0x80, DEF_STR( Normal ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Alternate ) )
+
+ PORT_START ("DSW2") /* DSW 2 */
+ PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START ("FAKE")
+ /* This fake input port is used to get the status of the fire button */
+ /* and activate the speedup cheat if it is. */
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME( "Speed (Cheat)" )
+ PORT_DIPNAME( 0x06, 0x02, "Speed Cheat" )
+ PORT_DIPSETTING( 0x00, "Disabled" )
+ PORT_DIPSETTING( 0x02, "Enabled with Button" )
+ PORT_DIPSETTING( 0x04, "Enabled Always" )
+INPUT_PORTS_END
+
+INPUT_PORTS_START( mschamp )
+ PORT_INCLUDE( mspacpls )
+
+ PORT_START ("GAME")
+ PORT_DIPNAME( 0x01, 0x01, "Game" )
+ PORT_DIPSETTING( 0x01, "Champion Edition" )
+ PORT_DIPSETTING( 0x00, "Super Pac Gal" )
+ 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 ) )
+INPUT_PORTS_END
+
+INPUT_PORTS_START( multipac )
+ PORT_START ("IN0") /* IN0 */
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY
+ PORT_SERVICE( 0x10, IP_ACTIVE_LOW ) /* service for eyes and lizwiz */
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE1 )
+
+ PORT_START ("IN1") /* IN1 */
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE2 )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 ) /* also used as the fire button (eyes, lizwiz) */
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
+ PORT_DIPNAME(0x80, 0x80, DEF_STR( Cabinet ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( Upright ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
+
+ PORT_START ("DSW1") /* DSW 1 */
+ PORT_DIPNAME( 0x03, 0x01, DEF_STR( Coinage ) )
+ 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_DIPSETTING( 0x00, "1" )
+ PORT_DIPSETTING( 0x04, "2" )
+ PORT_DIPSETTING( 0x08, "3" )
+ PORT_DIPSETTING( 0x0c, "5" )
+ PORT_DIPNAME( 0x30, 0x00, DEF_STR( Bonus_Life ) )
+ 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_DIPSETTING( 0x40, DEF_STR( Normal ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Hard ) )
+ PORT_DIPNAME( 0x80, 0x80, "Ghost Names" )
+ PORT_DIPSETTING( 0x80, DEF_STR( Normal ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Alternate ) )
+
+ PORT_START ("DSW2") /* DSW 2 */
+ PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+// PORT_START ("FAKE")
+ /* This fake input port is used to get the status of the fire button */
+ /* and activate the speedup cheat if it is. */
+// PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME( "Speed (Cheat)" )
+// PORT_DIPNAME( 0x06, 0x02, "Speed Cheat" )
+// PORT_DIPSETTING( 0x00, "Disabled" )
+// PORT_DIPSETTING( 0x02, "Enabled with Button" )
+// PORT_DIPSETTING( 0x04, "Enabled Always" )
+INPUT_PORTS_END
+
+/* Start Official documentation for SuperABC - http://www.twobits.com/sabcinst99.htm
+
+How do I clear the high score table and check the bookkeeping?
+Enter test mode via the cabinet switch located near the coin door hinge. Then hold the
+ONE PLAYER DOWN and ONE PLAYER START switches simultaneously for approximately 7 seconds
+and follow the on-screen directions.
+
+DIP Switch Settings
+Note concerning DIP SWITCH #6:
+During the game ULTRA PACMAN there is a rare 'butterfly' which appears. Eating the butterfly
+awards the player either an extra man or an extra credit depending on the setting of DIP
+switch #6. DIP SWITCH #6 ALSO turns the BUY-IN feature ON and OFF.
+
+
+Option (* = recommended) | SW1 | SW2 | SW3 | SW4 | SW5 | SW6 | SW7 | SW8 |
+-------------------------------------|-----|-----|-----|-----|-----|-----|-----|-----|
+Free Play | ON | ON | | | | | | |
+1 Coin 1 Credit *| OFF | ON | | | | | | |
+1 Coin 2 Credits | ON | OFF | | | | | | |
+2 Coins 1 Credit | OFF | OFF | | | | | | |
+-------------------------------------|-----|-----|-----|-----|-----|-----|-----|-----|
+1 Pacman Per Game | | | ON | ON | | | | |
+2 Pacman Per Game | | | OFF | ON | | | | |
+3 Pacman Per Game *| | | ON | OFF | | | | |
+5 Pacman Per Game | | | OFF | OFF | | | | |
+-------------------------------------|-----|-----|-----|-----|-----|-----|-----|-----|
+Bonus Player @ 10000 Pts *| | | | | ON | ON | | |
+Bonus Player @ 15000 Pts | | | | | OFF | ON | | |
+Bonus Player @ 20000 Pts | | | | | ON | OFF | | |
+No Bonus Players | | | | | OFF | OFF | | |
+-------------------------------------|-----|-----|-----|-----|-----|-----|-----|-----|
+Free Game in ULTRA PAC / Buy-in ON *| | | | | | ON | | |
+Free Life in ULTRA PAC / Buy-in OFF | | | | | | OFF | | |
+-------------------------------------|-----|-----|-----|-----|-----|-----|-----|-----|
+Auto. Rack Advance (Skip) | | | | | | | ON | |
+Normal- Must be off for game play *| | | | | | | OFF | |
+-------------------------------------|-----|-----|-----|-----|-----|-----|-----|-----|
+Freeze Video (Pause) | | | | | | | | ON |
+Normal- Must be off for game play *| | | | | | | | OFF |
+--------------------------------------------------------------------------------------
+
+** End Official documentation.
+
+Note: SW7 and SW8 are not part of DSW1 in the input settings below */
+
+INPUT_PORTS_START( superabc )
+ PORT_START ("IN0") /* IN0 */
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY
+ /* Press this while playing pacman to instantly finish the level */
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Finish Level (Cheat)") PORT_CODE(KEYCODE_8)
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE1 )
+
+ PORT_START ("IN1") /* IN1 */
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL
+ PORT_SERVICE( 0x10, IP_ACTIVE_LOW )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 )
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
+ PORT_DIPNAME(0x80, 0x80, DEF_STR( Cabinet ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( Upright ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
+
+ PORT_START ("DSW1") /* DSW 1 */
+ PORT_DIPNAME( 0x03, 0x01, DEF_STR( Coinage ) )
+ 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_DIPSETTING( 0x00, "1" )
+ PORT_DIPSETTING( 0x04, "2" )
+ PORT_DIPSETTING( 0x08, "3" )
+ PORT_DIPSETTING( 0x0c, "5" )
+ /* bit 5 also switches between ULTRA ON 1 GAME (low), and ULTRA OFF 1 LIFE (high) */
+ PORT_DIPNAME( 0x30, 0x00, DEF_STR( Bonus_Life ) )
+ 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_DIPSETTING( 0x40, DEF_STR( Normal ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Hard ) )
+ PORT_DIPNAME( 0x80, 0x80, "Ghost Names" )
+ PORT_DIPSETTING( 0x80, DEF_STR( Normal ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Alternate ) )
+
+ PORT_START ("DSW2") /* DSW 2 */
+ PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED )
+INPUT_PORTS_END
+
+
+/*************************************
+ *
+ * Driver initialization
+ *
+ *************************************/
+
+DRIVER_INIT_MEMBER( pacman_state, 96in1 )
+{
+ uint8_t *RAM = memregion("maincpu")->base();
+ membank("bank1")->configure_entries(0, 16, &RAM[0x10000], 0x8000);
+ membank("bank2")->configure_entries(0, 16, &RAM[0x14000], 0x8000);
+}
+
+DRIVER_INIT_MEMBER( pacman_state, madpac )
+{
+ uint8_t *RAM = memregion("maincpu")->base();
+ membank("bank1")->configure_entries(0, 32, &RAM[0x10000], 0x8000);
+ membank("bank2")->configure_entries(0, 32, &RAM[0x14000], 0x8000);
+}
+
+DRIVER_INIT_MEMBER( pacman_state, mspaceur )
+{
+ uint8_t *RAM = memregion("maincpu")->base();
+ membank("bank2")->configure_entries(0, 2, &RAM[0x10000], 0x2000);
+}
+
+DRIVER_INIT_MEMBER( pacman_state, multipac )
+{
+ uint8_t *RAM = memregion("maincpu")->base();
+ RAM[0x10000] = 0xED; /* It seems that IM0 is not working properly in MAME */
+ RAM[0x10001] = 0x56; /* and, the interrupt mode is not being reset when a */
+ RAM[0x10002] = 0xC3; /* machine reset is done. So, inserting some code so */
+ RAM[0x10003] = 0x00; /* that the game can fix the problem */
+ RAM[0x10004] = 0x01;
+ membank("bank1")->configure_entries(0, 32, &RAM[0x10000], 0x4000);
+ membank("bank2")->configure_entries(0, 64, &RAM[0x14000], 0x2000);
+ membank("bank1")->set_entry(0);
+}
+
+DRIVER_INIT_MEMBER( pacman_state, pm4n1 )
+{
+ uint8_t *RAM = memregion("maincpu")->base();
+ membank("bank1")->configure_entries(0, 5, &RAM[0x10000], 0x8000);
+ membank("bank2")->configure_entries(0, 5, &RAM[0x14000], 0x8000);
+}
+
+DRIVER_INIT_MEMBER( pacman_state, superabc )
+{
+ uint8_t *RAM = memregion("maincpu")->base();
+ membank("bank1")->configure_entries(0, 8, &RAM[0x10000], 0x10000);
+ membank("bank2")->configure_entries(0, 8, &RAM[0x14000], 0x10000);
+ membank("bank3")->configure_entries(0, 8, &RAM[0x1a000], 0x10000);
+ membank("bank1")->set_entry(0);
+ membank("bank2")->set_entry(0);
+ membank("bank3")->set_entry(0);
+}
+
+
+/********************************
+ Graphics layouts
+ ********************************/
+
+static GFXDECODE_START( 96in1 )
+ GFXDECODE_ENTRY( "gfx1", 0x00000, tilelayout, 0, 32 )
+ GFXDECODE_ENTRY( "gfx1", 0x10000, spritelayout, 0, 32 )
+GFXDECODE_END
+
+static GFXDECODE_START( 96in1b )
+ GFXDECODE_ENTRY( "gfx1", 0x00000, tilelayout, 0, 8*32 )
+ GFXDECODE_ENTRY( "gfx1", 0x20000, spritelayout, 0, 8*32 )
+GFXDECODE_END
+
+static GFXDECODE_START( hackypac )
+ GFXDECODE_ENTRY( "gfx1", 0x00000, tilelayout, 0, 9*32 )
+ GFXDECODE_ENTRY( "gfx1", 0x40000, spritelayout, 0, 9*32 )
+GFXDECODE_END
+
+static GFXDECODE_START( madpac )
+ GFXDECODE_ENTRY( "gfx1", 0x00000, tilelayout, 0, 16*32 )
+ GFXDECODE_ENTRY( "gfx1", 0x20000, spritelayout, 0, 16*32 )
+GFXDECODE_END
+
+static GFXDECODE_START( multipac )
+ GFXDECODE_ENTRY( "gfx1", 0x00000, tilelayout, 0, 4*32 )
+ GFXDECODE_ENTRY( "gfx1", 0x10000, spritelayout, 0, 4*32 )
+GFXDECODE_END
+
+static GFXDECODE_START( pm4n1 )
+ GFXDECODE_ENTRY( "gfx1", 0x00000, tilelayout, 0, 32 )
+ GFXDECODE_ENTRY( "gfx1", 0x05000, spritelayout, 0, 32 )
+GFXDECODE_END
+
+static GFXDECODE_START( superabc )
+ GFXDECODE_ENTRY( "gfx1", 0x00000, tilelayout, 0, 32 )
+ GFXDECODE_ENTRY( "gfx1", 0x08000, spritelayout, 0, 32 )
+GFXDECODE_END
+
+
+/*************************************
+ *
+ * Machine drivers
+ *
+ *************************************/
+
+/* These drivers are for multiple games in one package */
+
+static MACHINE_CONFIG_DERIVED( 96in1, pacman )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(madpac_map)
+ MCFG_CPU_IO_MAP(96in1_writeport)
+ MCFG_MACHINE_RESET_OVERRIDE(pacman_state, 96in1)
+ MCFG_GFXDECODE_MODIFY("gfxdecode", 96in1)
+ MCFG_NVRAM_ADD_0FILL("nvram")
+ MCFG_VIDEO_START_OVERRIDE(pacman_state, multipac)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( 96in1b, pacman )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(madpac_map)
+ MCFG_CPU_IO_MAP(96in1b_writeport)
+ MCFG_MACHINE_RESET_OVERRIDE(pacman_state, madpac)
+ MCFG_GFXDECODE_MODIFY("gfxdecode", 96in1b)
+ MCFG_PALETTE_MODIFY("palette")
+ MCFG_PALETTE_ENTRIES(128*8)
+ MCFG_PALETTE_INDIRECT_ENTRIES(32*8)
+ MCFG_PALETTE_INIT_OWNER(pacman_state,multipac)
+ MCFG_VIDEO_START_OVERRIDE(pacman_state, multipac)
+ MCFG_NVRAM_ADD_0FILL("nvram")
+ MCFG_SCREEN_MODIFY("screen")
+ MCFG_SCREEN_UPDATE_DRIVER(pacman_state, screen_update_multipac)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( hackypac, pacman )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(hackypac_map)
+ MCFG_CPU_IO_MAP(hackypac_writeport)
+ MCFG_MACHINE_RESET_OVERRIDE(pacman_state, hackypac)
+ MCFG_GFXDECODE_MODIFY("gfxdecode", hackypac)
+ MCFG_PALETTE_MODIFY("palette")
+ MCFG_PALETTE_ENTRIES(128*9)
+ MCFG_PALETTE_INDIRECT_ENTRIES(32*9) // colour banks * 128 colour lookup codes (4a rom)
+ MCFG_PALETTE_INIT_OWNER(pacman_state,multipac)
+ MCFG_VIDEO_START_OVERRIDE(pacman_state, multipac)
+ MCFG_SCREEN_MODIFY("screen")
+ MCFG_SCREEN_UPDATE_DRIVER(pacman_state, screen_update_multipac)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( madpac, pacman )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(madpac_map)
+ MCFG_CPU_IO_MAP(madpac_writeport)
+ MCFG_MACHINE_RESET_OVERRIDE(pacman_state, madpac)
+ MCFG_SCREEN_MODIFY("screen")
+ MCFG_SCREEN_UPDATE_DRIVER(pacman_state, screen_update_multipac)
+ MCFG_VIDEO_START_OVERRIDE(pacman_state, multipac)
+ MCFG_PALETTE_MODIFY("palette")
+ MCFG_PALETTE_ENTRIES(128*16)
+ MCFG_PALETTE_INDIRECT_ENTRIES(32*16)
+ MCFG_PALETTE_INIT_OWNER(pacman_state, multipac)
+ MCFG_GFXDECODE_MODIFY("gfxdecode", madpac)
+ MCFG_NVRAM_ADD_0FILL("nvram")
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( mspaceur, pacman )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(mspaceur_map)
+ MCFG_MACHINE_RESET_OVERRIDE(pacman_state, mspaceur)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( mschamp, pacman )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(mschamp_map)
+ MCFG_CPU_IO_MAP(zolapac_io)
+ MCFG_MACHINE_RESET_OVERRIDE(pacman_state, mschamp)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( mschampx, pacmanx )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(mschamp_map)
+ MCFG_CPU_IO_MAP(zolapac_io)
+ MCFG_MACHINE_RESET_OVERRIDE(pacman_state, mschamp)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( multipac, pacman )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(multipac_map)
+ MCFG_MACHINE_RESET_OVERRIDE(pacman_state, multipac)
+ MCFG_SCREEN_MODIFY("screen")
+ MCFG_SCREEN_UPDATE_DRIVER(pacman_state, screen_update_multipac)
+ MCFG_VIDEO_START_OVERRIDE(pacman_state, multipac)
+ MCFG_PALETTE_MODIFY("palette")
+ MCFG_PALETTE_ENTRIES(128*4)
+ MCFG_PALETTE_INDIRECT_ENTRIES(32*4)
+ MCFG_PALETTE_INIT_OWNER(pacman_state,multipac)
+ MCFG_GFXDECODE_MODIFY("gfxdecode", multipac)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( pm4n1, pacman )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(pm4n1_map)
+ MCFG_MACHINE_RESET_OVERRIDE(pacman_state, pm4n1)
+ MCFG_GFXDECODE_MODIFY("gfxdecode", pm4n1)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( pm4n1c, pacman )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(pm4n1c_map)
+ MCFG_MACHINE_RESET_OVERRIDE(pacman_state, pm4n1)
+ MCFG_NVRAM_ADD_0FILL("nvram")
+ MCFG_GFXDECODE_MODIFY("gfxdecode", pm4n1)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( pm4n1d, pm4n1c )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(pm4n1d_map)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( superabc, pacman )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(superabc_map)
+ MCFG_NVRAM_ADD_0FILL("nvram")
+ MCFG_GFXDECODE_MODIFY("gfxdecode", superabc)
+ MCFG_VIDEO_START_OVERRIDE(pacman_state, multipac)
+MACHINE_CONFIG_END
+
+
+/*************************************
+ *
+ * ROM definitions
+ *
+ *************************************/
+
+ROM_START( 96in1 )
+ ROM_REGION( 0x90000, "maincpu", 0 )
+ ROM_LOAD( "96in1.cpu", 0x10000, 0x80000, CRC(4a25b763) SHA1(7e650fb7b60b08f3ab8307035a393d6b2941b24b) )
+
+ ROM_REGION( 0x20000, "gfx1", 0 )
+ ROM_LOAD( "96in1.gfx", 0x00000, 0x1000, CRC(fb43e056) SHA1(aceacef836e4dd1bfe4229ea090ff713c66d8931) )
+ ROM_CONTINUE( 0x10000, 0x1000 )
+ ROM_CONTINUE( 0x01000, 0x1000 )
+ ROM_CONTINUE( 0x11000, 0x1000 )
+ ROM_CONTINUE( 0x02000, 0x1000 )
+ ROM_CONTINUE( 0x12000, 0x1000 )
+ ROM_CONTINUE( 0x03000, 0x1000 )
+ ROM_CONTINUE( 0x13000, 0x1000 )
+ ROM_CONTINUE( 0x04000, 0x1000 )
+ ROM_CONTINUE( 0x14000, 0x1000 )
+ ROM_CONTINUE( 0x05000, 0x1000 )
+ ROM_CONTINUE( 0x15000, 0x1000 )
+ ROM_CONTINUE( 0x06000, 0x1000 )
+ ROM_CONTINUE( 0x16000, 0x1000 )
+ ROM_CONTINUE( 0x07000, 0x1000 )
+ ROM_CONTINUE( 0x17000, 0x1000 )
+ ROM_CONTINUE( 0x08000, 0x1000 )
+ ROM_CONTINUE( 0x18000, 0x1000 )
+ ROM_CONTINUE( 0x09000, 0x1000 )
+ ROM_CONTINUE( 0x19000, 0x1000 )
+ ROM_CONTINUE( 0x0a000, 0x1000 )
+ ROM_CONTINUE( 0x1a000, 0x1000 )
+ ROM_CONTINUE( 0x0b000, 0x1000 )
+ ROM_CONTINUE( 0x1b000, 0x1000 )
+ ROM_CONTINUE( 0x0c000, 0x1000 )
+ ROM_CONTINUE( 0x1c000, 0x1000 )
+ ROM_CONTINUE( 0x0d000, 0x1000 )
+ ROM_CONTINUE( 0x1d000, 0x1000 )
+ ROM_CONTINUE( 0x0e000, 0x1000 )
+ ROM_CONTINUE( 0x1e000, 0x1000 )
+ ROM_CONTINUE( 0x0f000, 0x1000 )
+ ROM_CONTINUE( 0x1f000, 0x1000 )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( 96in1a )
+ ROM_REGION( 0x90000, "maincpu", 0 )
+ ROM_LOAD( "96in1a.cpu", 0x10000, 0x80000, CRC(bd89f3de) SHA1(3bd2f51ce97509c7f3dc165ebfbf856039be375e) )
+
+ ROM_REGION( 0x20000, "gfx1", 0 )
+ ROM_LOAD( "96in1a.gfx", 0x00000, 0x1000, CRC(f4ce2dca) SHA1(b0515ee98766225d4d4a1368949942324703e865) )
+ ROM_CONTINUE( 0x10000, 0x1000 )
+ ROM_CONTINUE( 0x01000, 0x1000 )
+ ROM_CONTINUE( 0x11000, 0x1000 )
+ ROM_CONTINUE( 0x02000, 0x1000 )
+ ROM_CONTINUE( 0x12000, 0x1000 )
+ ROM_CONTINUE( 0x03000, 0x1000 )
+ ROM_CONTINUE( 0x13000, 0x1000 )
+ ROM_CONTINUE( 0x04000, 0x1000 )
+ ROM_CONTINUE( 0x14000, 0x1000 )
+ ROM_CONTINUE( 0x05000, 0x1000 )
+ ROM_CONTINUE( 0x15000, 0x1000 )
+ ROM_CONTINUE( 0x06000, 0x1000 )
+ ROM_CONTINUE( 0x16000, 0x1000 )
+ ROM_CONTINUE( 0x07000, 0x1000 )
+ ROM_CONTINUE( 0x17000, 0x1000 )
+ ROM_CONTINUE( 0x08000, 0x1000 )
+ ROM_CONTINUE( 0x18000, 0x1000 )
+ ROM_CONTINUE( 0x09000, 0x1000 )
+ ROM_CONTINUE( 0x19000, 0x1000 )
+ ROM_CONTINUE( 0x0a000, 0x1000 )
+ ROM_CONTINUE( 0x1a000, 0x1000 )
+ ROM_CONTINUE( 0x0b000, 0x1000 )
+ ROM_CONTINUE( 0x1b000, 0x1000 )
+ ROM_CONTINUE( 0x0c000, 0x1000 )
+ ROM_CONTINUE( 0x1c000, 0x1000 )
+ ROM_CONTINUE( 0x0d000, 0x1000 )
+ ROM_CONTINUE( 0x1d000, 0x1000 )
+ ROM_CONTINUE( 0x0e000, 0x1000 )
+ ROM_CONTINUE( 0x1e000, 0x1000 )
+ ROM_CONTINUE( 0x0f000, 0x1000 )
+ ROM_CONTINUE( 0x1f000, 0x1000 )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( 96in1b )
+ ROM_REGION( 0x110000, "maincpu", 0 )
+ ROM_LOAD( "96in1b.cpu", 0x10000, 0x80000, CRC(1c880d0b) SHA1(374bcefb047e48598706b2df27fd6715b11afd45) )
+ ROM_LOAD( "96in1b.cp2", 0x90000, 0x80000, CRC(54ee41bd) SHA1(84fc81e2cd584c0fc94782c008990d66c599e435) )
+
+ ROM_REGION( 0x40000, "gfx1", 0 )
+ ROM_LOAD( "96in1b.gfx", 0x00000, 0x1000, CRC(ac6e00ac) SHA1(3c011cc76aebba6cfa17c042d0835055c2b42735) )
+ ROM_CONTINUE( 0x20000, 0x1000 )
+ ROM_CONTINUE( 0x01000, 0x1000 )
+ ROM_CONTINUE( 0x21000, 0x1000 )
+ ROM_CONTINUE( 0x02000, 0x1000 )
+ ROM_CONTINUE( 0x22000, 0x1000 )
+ ROM_CONTINUE( 0x03000, 0x1000 )
+ ROM_CONTINUE( 0x23000, 0x1000 )
+ ROM_CONTINUE( 0x04000, 0x1000 )
+ ROM_CONTINUE( 0x24000, 0x1000 )
+ ROM_CONTINUE( 0x05000, 0x1000 )
+ ROM_CONTINUE( 0x25000, 0x1000 )
+ ROM_CONTINUE( 0x06000, 0x1000 )
+ ROM_CONTINUE( 0x26000, 0x1000 )
+ ROM_CONTINUE( 0x07000, 0x1000 )
+ ROM_CONTINUE( 0x27000, 0x1000 )
+ ROM_CONTINUE( 0x08000, 0x1000 )
+ ROM_CONTINUE( 0x28000, 0x1000 )
+ ROM_CONTINUE( 0x09000, 0x1000 )
+ ROM_CONTINUE( 0x29000, 0x1000 )
+ ROM_CONTINUE( 0x0a000, 0x1000 )
+ ROM_CONTINUE( 0x2a000, 0x1000 )
+ ROM_CONTINUE( 0x0b000, 0x1000 )
+ ROM_CONTINUE( 0x2b000, 0x1000 )
+ ROM_CONTINUE( 0x0c000, 0x1000 )
+ ROM_CONTINUE( 0x2c000, 0x1000 )
+ ROM_CONTINUE( 0x0d000, 0x1000 )
+ ROM_CONTINUE( 0x2d000, 0x1000 )
+ ROM_CONTINUE( 0x0e000, 0x1000 )
+ ROM_CONTINUE( 0x2e000, 0x1000 )
+ ROM_CONTINUE( 0x0f000, 0x1000 )
+ ROM_CONTINUE( 0x2f000, 0x1000 )
+ ROM_CONTINUE( 0x10000, 0x1000 )
+ ROM_CONTINUE( 0x30000, 0x1000 )
+ ROM_CONTINUE( 0x11000, 0x1000 )
+ ROM_CONTINUE( 0x31000, 0x1000 )
+ ROM_CONTINUE( 0x12000, 0x1000 )
+ ROM_CONTINUE( 0x32000, 0x1000 )
+ ROM_CONTINUE( 0x13000, 0x1000 )
+ ROM_CONTINUE( 0x33000, 0x1000 )
+ ROM_CONTINUE( 0x14000, 0x1000 )
+ ROM_CONTINUE( 0x34000, 0x1000 )
+ ROM_CONTINUE( 0x15000, 0x1000 )
+ ROM_CONTINUE( 0x35000, 0x1000 )
+ ROM_CONTINUE( 0x16000, 0x1000 )
+ ROM_CONTINUE( 0x36000, 0x1000 )
+ ROM_CONTINUE( 0x17000, 0x1000 )
+ ROM_CONTINUE( 0x37000, 0x1000 )
+ ROM_CONTINUE( 0x18000, 0x1000 )
+ ROM_CONTINUE( 0x38000, 0x1000 )
+ ROM_CONTINUE( 0x19000, 0x1000 )
+ ROM_CONTINUE( 0x39000, 0x1000 )
+ ROM_CONTINUE( 0x1a000, 0x1000 )
+ ROM_CONTINUE( 0x3a000, 0x1000 )
+ ROM_CONTINUE( 0x1b000, 0x1000 )
+ ROM_CONTINUE( 0x3b000, 0x1000 )
+ ROM_CONTINUE( 0x1c000, 0x1000 )
+ ROM_CONTINUE( 0x3c000, 0x1000 )
+ ROM_CONTINUE( 0x1d000, 0x1000 )
+ ROM_CONTINUE( 0x3d000, 0x1000 )
+ ROM_CONTINUE( 0x1e000, 0x1000 )
+ ROM_CONTINUE( 0x3e000, 0x1000 )
+ ROM_CONTINUE( 0x1f000, 0x1000 )
+ ROM_CONTINUE( 0x3f000, 0x1000 )
+ ROM_IGNORE ( 0x40000 )
+
+ ROM_REGION( 0x1b00, "proms", 0 )
+ ROM_LOAD( "96in1b.7f", 0x1000, 0x0160, CRC(58deb197) SHA1(2b10b9f21b4d498b9284e1308793dc773e9db874) )
+ ROM_IGNORE( 0x3fea0 )
+ ROM_COPY( "proms", 0x1000, 0x0000, 0x10 ) /* pacman and mspacman */
+ ROM_COPY( "proms", 0x1000, 0x0020, 0x10 ) /* 08. pacplus */
+ ROM_COPY( "proms", 0x1100, 0x00e0, 0x10 ) /* 10. naughty mouse */
+ ROM_COPY( "proms", 0x1110, 0x0080, 0x10 ) /* 11. beastie feastie */
+ ROM_COPY( "proms", 0x1120, 0x0040, 0x10 ) /* 12. make trax */
+ ROM_COPY( "proms", 0x1130, 0x0060, 0x10 ) /* 13. lizard wizard */
+ ROM_COPY( "proms", 0x1140, 0x00a0, 0x10 ) /* 14. atlantic city action */
+ ROM_COPY( "proms", 0x1150, 0x00c0, 0x10 ) /* 15. jump shot */
+
+ ROM_LOAD( "96in1b.4a", 0x1000, 0x0b00, CRC(fb1acbea) SHA1(bf344c46adea405125d67b3bf8a14d51316d3e12) )
+ ROM_IGNORE( 0x3f500 )
+ ROM_FILL( 0x1068, 0x0001, 0x00 ) /* pacman - remove red bit outside monster lair */
+ ROM_FILL( 0x106c, 0x0001, 0x00 ) /* pacman - remove pink bits at top and bottom */
+ ROM_COPY( "proms", 0x1000, 0x0100, 0x80 ) /* pacman and mspacman */
+ ROM_COPY( "proms", 0x1000, 0x0180, 0x80 ) /* pacplus */
+ ROM_COPY( "proms", 0x1800, 0x0480, 0x80 ) /* naughty mouse */
+ ROM_COPY( "proms", 0x1880, 0x0300, 0x80 ) /* beastie feastie */
+ ROM_COPY( "proms", 0x1900, 0x0200, 0x80 ) /* make trax */
+ ROM_COPY( "proms", 0x1980, 0x0280, 0x80 ) /* lizard wizard */
+ ROM_COPY( "proms", 0x1a00, 0x0380, 0x80 ) /* atlantic city action */
+ ROM_COPY( "proms", 0x1a80, 0x0400, 0x80 ) /* jump shot */
+ ROM_FILL( 0x01c3, 0x0001, 0x0d ) /* pacplus - walls - make green */
+ ROM_FILL( 0x01eb, 0x0001, 0x0d ) /* pacplus - walls outside monster house - make green */
+ ROM_FILL( 0x01ef, 0x0001, 0x0d ) /* pacplus - corner bits at bottom - make green */
+
+ PACMAN_SOUND_PROMS
+ROM_END
+
+ROM_START( 96in1c )
+ ROM_REGION( 0x90000, "maincpu", 0 )
+ ROM_LOAD( "96in1c.cpu", 0x10000, 0x80000, CRC(72d5bf9a) SHA1(7d576ab2642fde8569ea58f6eea4390c309c6885) )
+
+ ROM_REGION( 0x20000, "gfx1", 0 )
+ ROM_LOAD( "96in1c.gfx", 0x00000, 0x1000, CRC(ebbbad14) SHA1(cb7b538f52c7254ed2507db30c199e4b91a309d5) )
+ ROM_CONTINUE( 0x10000, 0x1000 )
+ ROM_CONTINUE( 0x01000, 0x1000 )
+ ROM_CONTINUE( 0x11000, 0x1000 )
+ ROM_CONTINUE( 0x02000, 0x1000 )
+ ROM_CONTINUE( 0x12000, 0x1000 )
+ ROM_CONTINUE( 0x03000, 0x1000 )
+ ROM_CONTINUE( 0x13000, 0x1000 )
+ ROM_CONTINUE( 0x04000, 0x1000 )
+ ROM_CONTINUE( 0x14000, 0x1000 )
+ ROM_CONTINUE( 0x05000, 0x1000 )
+ ROM_CONTINUE( 0x15000, 0x1000 )
+ ROM_CONTINUE( 0x06000, 0x1000 )
+ ROM_CONTINUE( 0x16000, 0x1000 )
+ ROM_CONTINUE( 0x07000, 0x1000 )
+ ROM_CONTINUE( 0x17000, 0x1000 )
+ ROM_CONTINUE( 0x08000, 0x1000 )
+ ROM_CONTINUE( 0x18000, 0x1000 )
+ ROM_CONTINUE( 0x09000, 0x1000 )
+ ROM_CONTINUE( 0x19000, 0x1000 )
+ ROM_CONTINUE( 0x0a000, 0x1000 )
+ ROM_CONTINUE( 0x1a000, 0x1000 )
+ ROM_CONTINUE( 0x0b000, 0x1000 )
+ ROM_CONTINUE( 0x1b000, 0x1000 )
+ ROM_CONTINUE( 0x0c000, 0x1000 )
+ ROM_CONTINUE( 0x1c000, 0x1000 )
+ ROM_CONTINUE( 0x0d000, 0x1000 )
+ ROM_CONTINUE( 0x1d000, 0x1000 )
+ ROM_CONTINUE( 0x0e000, 0x1000 )
+ ROM_CONTINUE( 0x1e000, 0x1000 )
+ ROM_CONTINUE( 0x0f000, 0x1000 )
+ ROM_CONTINUE( 0x1f000, 0x1000 )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( hackypac )
+ ROM_REGION( 0x110000, "maincpu", 0 )
+ ROM_LOAD( "hackypac.cpu", 0x10000, 0x100000, CRC(9cc452a1) SHA1(7b0483e359f87c5e3035db7380436f176f2356b5) )
+
+ ROM_REGION( 0x80000, "gfx1", 0 )
+ ROM_LOAD( "hackypac.gfx", 0x00000, 0x1000, CRC(42a61854) SHA1(0968721abccf7d04d205d13d150d014e4e658d16) )
+ ROM_CONTINUE( 0x40000, 0x1000 )
+ ROM_CONTINUE( 0x01000, 0x1000 ) /* rearrange so that all gfx then all sprites */
+ ROM_CONTINUE( 0x41000, 0x1000 )
+ ROM_CONTINUE( 0x02000, 0x1000 )
+ ROM_CONTINUE( 0x42000, 0x1000 )
+ ROM_CONTINUE( 0x03000, 0x1000 )
+ ROM_CONTINUE( 0x43000, 0x1000 )
+ ROM_CONTINUE( 0x04000, 0x1000 )
+ ROM_CONTINUE( 0x44000, 0x1000 )
+ ROM_CONTINUE( 0x05000, 0x1000 )
+ ROM_CONTINUE( 0x45000, 0x1000 )
+ ROM_CONTINUE( 0x06000, 0x1000 )
+ ROM_CONTINUE( 0x46000, 0x1000 )
+ ROM_CONTINUE( 0x07000, 0x1000 )
+ ROM_CONTINUE( 0x47000, 0x1000 )
+ ROM_CONTINUE( 0x08000, 0x1000 )
+ ROM_CONTINUE( 0x48000, 0x1000 )
+ ROM_CONTINUE( 0x09000, 0x1000 )
+ ROM_CONTINUE( 0x49000, 0x1000 )
+ ROM_CONTINUE( 0x0a000, 0x1000 )
+ ROM_CONTINUE( 0x4a000, 0x1000 )
+ ROM_CONTINUE( 0x0b000, 0x1000 )
+ ROM_CONTINUE( 0x4b000, 0x1000 )
+ ROM_CONTINUE( 0x0c000, 0x1000 )
+ ROM_CONTINUE( 0x4c000, 0x1000 )
+ ROM_CONTINUE( 0x0d000, 0x1000 )
+ ROM_CONTINUE( 0x4d000, 0x1000 )
+ ROM_CONTINUE( 0x0e000, 0x1000 )
+ ROM_CONTINUE( 0x4e000, 0x1000 )
+ ROM_CONTINUE( 0x0f000, 0x1000 )
+ ROM_CONTINUE( 0x4f000, 0x1000 )
+ ROM_CONTINUE( 0x10000, 0x1000 )
+ ROM_CONTINUE( 0x50000, 0x1000 )
+ ROM_CONTINUE( 0x11000, 0x1000 )
+ ROM_CONTINUE( 0x51000, 0x1000 )
+ ROM_CONTINUE( 0x12000, 0x1000 )
+ ROM_CONTINUE( 0x52000, 0x1000 )
+ ROM_CONTINUE( 0x13000, 0x1000 )
+ ROM_CONTINUE( 0x53000, 0x1000 )
+ ROM_CONTINUE( 0x14000, 0x1000 )
+ ROM_CONTINUE( 0x54000, 0x1000 )
+ ROM_CONTINUE( 0x15000, 0x1000 )
+ ROM_CONTINUE( 0x55000, 0x1000 )
+ ROM_CONTINUE( 0x16000, 0x1000 )
+ ROM_CONTINUE( 0x56000, 0x1000 )
+ ROM_CONTINUE( 0x17000, 0x1000 )
+ ROM_CONTINUE( 0x57000, 0x1000 )
+ ROM_CONTINUE( 0x18000, 0x1000 )
+ ROM_CONTINUE( 0x58000, 0x1000 )
+ ROM_CONTINUE( 0x19000, 0x1000 )
+ ROM_CONTINUE( 0x59000, 0x1000 )
+ ROM_CONTINUE( 0x1a000, 0x1000 )
+ ROM_CONTINUE( 0x5a000, 0x1000 )
+ ROM_CONTINUE( 0x1b000, 0x1000 )
+ ROM_CONTINUE( 0x5b000, 0x1000 )
+ ROM_CONTINUE( 0x1c000, 0x1000 )
+ ROM_CONTINUE( 0x5c000, 0x1000 )
+ ROM_CONTINUE( 0x1d000, 0x1000 )
+ ROM_CONTINUE( 0x5d000, 0x1000 )
+ ROM_CONTINUE( 0x1e000, 0x1000 )
+ ROM_CONTINUE( 0x5e000, 0x1000 )
+ ROM_CONTINUE( 0x1f000, 0x1000 )
+ ROM_CONTINUE( 0x5f000, 0x1000 )
+ ROM_CONTINUE( 0x20000, 0x1000 )
+ ROM_CONTINUE( 0x60000, 0x1000 )
+ ROM_CONTINUE( 0x21000, 0x1000 )
+ ROM_CONTINUE( 0x61000, 0x1000 )
+ ROM_CONTINUE( 0x22000, 0x1000 )
+ ROM_CONTINUE( 0x62000, 0x1000 )
+ ROM_CONTINUE( 0x23000, 0x1000 )
+ ROM_CONTINUE( 0x63000, 0x1000 )
+ ROM_CONTINUE( 0x24000, 0x1000 )
+ ROM_CONTINUE( 0x64000, 0x1000 )
+ ROM_CONTINUE( 0x25000, 0x1000 )
+ ROM_CONTINUE( 0x65000, 0x1000 )
+ ROM_CONTINUE( 0x26000, 0x1000 )
+ ROM_CONTINUE( 0x66000, 0x1000 )
+ ROM_CONTINUE( 0x27000, 0x1000 )
+ ROM_CONTINUE( 0x67000, 0x1000 )
+ ROM_CONTINUE( 0x28000, 0x1000 )
+ ROM_CONTINUE( 0x68000, 0x1000 )
+ ROM_CONTINUE( 0x29000, 0x1000 )
+ ROM_CONTINUE( 0x69000, 0x1000 )
+ ROM_CONTINUE( 0x2a000, 0x1000 )
+ ROM_CONTINUE( 0x6a000, 0x1000 )
+ ROM_CONTINUE( 0x2b000, 0x1000 )
+ ROM_CONTINUE( 0x6b000, 0x1000 )
+ ROM_CONTINUE( 0x2c000, 0x1000 )
+ ROM_CONTINUE( 0x6c000, 0x1000 )
+ ROM_CONTINUE( 0x2d000, 0x1000 )
+ ROM_CONTINUE( 0x6d000, 0x1000 )
+ ROM_CONTINUE( 0x2e000, 0x1000 )
+ ROM_CONTINUE( 0x6e000, 0x1000 )
+ ROM_CONTINUE( 0x2f000, 0x1000 )
+ ROM_CONTINUE( 0x6f000, 0x1000 )
+ ROM_CONTINUE( 0x30000, 0x1000 )
+ ROM_CONTINUE( 0x70000, 0x1000 )
+ ROM_CONTINUE( 0x31000, 0x1000 )
+ ROM_CONTINUE( 0x71000, 0x1000 )
+ ROM_CONTINUE( 0x32000, 0x1000 )
+ ROM_CONTINUE( 0x72000, 0x1000 )
+ ROM_CONTINUE( 0x33000, 0x1000 )
+ ROM_CONTINUE( 0x73000, 0x1000 )
+ ROM_CONTINUE( 0x34000, 0x1000 )
+ ROM_CONTINUE( 0x74000, 0x1000 )
+ ROM_CONTINUE( 0x35000, 0x1000 )
+ ROM_CONTINUE( 0x75000, 0x1000 )
+ ROM_CONTINUE( 0x36000, 0x1000 )
+ ROM_CONTINUE( 0x76000, 0x1000 )
+ ROM_CONTINUE( 0x37000, 0x1000 )
+ ROM_CONTINUE( 0x77000, 0x1000 )
+ ROM_CONTINUE( 0x38000, 0x1000 )
+ ROM_CONTINUE( 0x78000, 0x1000 )
+ ROM_CONTINUE( 0x39000, 0x1000 )
+ ROM_CONTINUE( 0x79000, 0x1000 )
+ ROM_CONTINUE( 0x3a000, 0x1000 )
+ ROM_CONTINUE( 0x7a000, 0x1000 )
+ ROM_CONTINUE( 0x3b000, 0x1000 )
+ ROM_CONTINUE( 0x7b000, 0x1000 )
+ ROM_CONTINUE( 0x3c000, 0x1000 )
+ ROM_CONTINUE( 0x7c000, 0x1000 )
+ ROM_CONTINUE( 0x3d000, 0x1000 )
+ ROM_CONTINUE( 0x7d000, 0x1000 )
+ ROM_CONTINUE( 0x3e000, 0x1000 )
+ ROM_CONTINUE( 0x7e000, 0x1000 )
+ ROM_CONTINUE( 0x3f000, 0x1000 )
+ ROM_CONTINUE( 0x7f000, 0x1000 )
+
+ /* no proms supplied - using ones from original games */
+ ROM_REGION( 0x05a0, "proms", 0 )
+ ROM_LOAD( "82s123.7f", 0x0000, 0x0020, CRC(2fc650bd) SHA1(8d0268dee78e47c712202b0ec4f1f51109b1f2a5) )
+ ROM_RELOAD( 0x0020, 0x0020 )
+ ROM_RELOAD( 0x0040, 0x0020 )
+ ROM_LOAD( "prom.7f", 0x0060, 0x0020, CRC(872b42f3) SHA1(bbcd392ba3d2a5715e92fa0f7a7cf1e7e6e655a2) )
+ ROM_LOAD( "puckren.7f", 0x0080, 0x0020, CRC(7b6aa3c9) SHA1(849911abdc26ccf2ad44e2c432e6219447b8bef3) )
+ ROM_LOAD( "glob.7f", 0x00a0, 0x0020, CRC(1f617527) SHA1(448845cab63800a05fcb106897503d994377f78f) )
+ ROM_LOAD( "7f.cpu", 0x00c0, 0x0020, CRC(7549a947) SHA1(4f2c3e7d6c38f0b9a90317f91feb3f86c9a0d0a5) )
+ ROM_LOAD( "pacplus.7f", 0x00e0, 0x0020, CRC(063dd53a) SHA1(2e43b46ec3b101d1babab87cdaddfa944116ec06) )
+ ROM_LOAD( "7f.rom", 0x0100, 0x0020, CRC(ec578b98) SHA1(196da49cc260f967ec5f01bc3c75b11077c85998) )
+ ROM_LOAD( "82s126.4a", 0x0120, 0x0100, CRC(3eb3a8e4) SHA1(19097b5f60d1030f8b82d9f1d3a241f93e5c75d6) ) /* pacman */
+ ROM_LOAD( "82s129.4a", 0x01a0, 0x0100, CRC(d8d78829) SHA1(19820d1651423210083a087fb70ebea73ad34951) ) /* eyes */
+ ROM_LOAD( "2s140.4a", 0x0220, 0x0100, CRC(63efb927) SHA1(5c144a613fc4960a1dfd7ead89e7fee258a63171) ) /* maketrax, chicken */
+ ROM_LOAD( "prom.4a", 0x02a0, 0x0100, CRC(0399f39f) SHA1(e98f08da4666cab44e01acb760a1bd2fc858bc0d) ) /* jumpshot */
+ ROM_LOAD( "puckren.4a", 0x0320, 0x0100, CRC(64fe1dbf) SHA1(7f7541eb12148add79ad186a1da375c865d251e0) ) /* puckren */
+ ROM_LOAD( "glob.4a", 0x03a0, 0x0100, CRC(28faa769) SHA1(7588889f3102d4e0ca7918f536556209b2490ea1) ) /* beastie */
+ ROM_LOAD( "4a.cpu", 0x0420, 0x0100, CRC(5fdca536) SHA1(3a09b29374031aaa3722932aff974a467b3bb201) ) /* lizwiz */
+ ROM_LOAD( "pacplus.4a", 0x04a0, 0x0100, CRC(e271a166) SHA1(cf006536215a7a1d488eebc1d8a2e2a8134ce1a6) ) /* pacplus */
+ ROM_LOAD( "4a.rom", 0x0520, 0x0080, CRC(81a6b30f) SHA1(60c767fd536c325151a2b759fdbce4ba41e0c78f) ) /* shoot bull */
+ ROM_IGNORE( 0x0080 )
+ /* There are a number of minor colour errors in Lizard Wizard, 2 of which are fixed below */
+ ROM_FILL( 0x43d, 1, 4 ) /* dragon wing = red */
+ ROM_FILL( 0x43e, 1, 6 ) /* dragon body = green */
+
+ PACMAN_SOUND_PROMS
+ROM_END
+
+ROM_START( madpac )
+ ROM_REGION( 0x110000, "maincpu", 0 )
+ ROM_LOAD( "madpac.cpu", 0x10000, 0x80000, CRC(1a769aea) SHA1(ea5b3b077f34485246643cfb8c74d073287f4359) )
+ ROM_LOAD( "madpac.cp2", 0x90000, 0x80000, CRC(84889f93) SHA1(83aee22bc543af230f5c7f652756b189d6cf5399) )
+
+ /* reorganise gfx so that all chars come first, followed by all sprites */
+ ROM_REGION( 0x40000, "gfx1", 0 )
+ ROM_LOAD( "madpac.gfx", 0x00000, 0x1000, CRC(6a1b231a) SHA1(67046022a179043f9c017b12ecadd9d5772705a9) )
+ ROM_CONTINUE( 0x20000, 0x1000 )
+ ROM_CONTINUE( 0x01000, 0x1000 )
+ ROM_CONTINUE( 0x21000, 0x1000 )
+ ROM_CONTINUE( 0x02000, 0x1000 )
+ ROM_CONTINUE( 0x22000, 0x1000 )
+ ROM_CONTINUE( 0x03000, 0x1000 )
+ ROM_CONTINUE( 0x23000, 0x1000 )
+ ROM_CONTINUE( 0x04000, 0x1000 )
+ ROM_CONTINUE( 0x24000, 0x1000 )
+ ROM_CONTINUE( 0x05000, 0x1000 )
+ ROM_CONTINUE( 0x25000, 0x1000 )
+ ROM_CONTINUE( 0x06000, 0x1000 )
+ ROM_CONTINUE( 0x26000, 0x1000 )
+ ROM_CONTINUE( 0x07000, 0x1000 )
+ ROM_CONTINUE( 0x27000, 0x1000 )
+ ROM_CONTINUE( 0x08000, 0x1000 )
+ ROM_CONTINUE( 0x28000, 0x1000 )
+ ROM_CONTINUE( 0x09000, 0x1000 )
+ ROM_CONTINUE( 0x29000, 0x1000 )
+ ROM_CONTINUE( 0x0a000, 0x1000 )
+ ROM_CONTINUE( 0x2a000, 0x1000 )
+ ROM_CONTINUE( 0x0b000, 0x1000 )
+ ROM_CONTINUE( 0x2b000, 0x1000 )
+ ROM_CONTINUE( 0x0c000, 0x1000 )
+ ROM_CONTINUE( 0x2c000, 0x1000 )
+ ROM_CONTINUE( 0x0d000, 0x1000 )
+ ROM_CONTINUE( 0x2d000, 0x1000 )
+ ROM_CONTINUE( 0x0e000, 0x1000 )
+ ROM_CONTINUE( 0x2e000, 0x1000 )
+ ROM_CONTINUE( 0x0f000, 0x1000 )
+ ROM_CONTINUE( 0x2f000, 0x1000 )
+ ROM_CONTINUE( 0x10000, 0x1000 )
+ ROM_CONTINUE( 0x30000, 0x1000 )
+ ROM_CONTINUE( 0x11000, 0x1000 )
+ ROM_CONTINUE( 0x31000, 0x1000 )
+ ROM_CONTINUE( 0x12000, 0x1000 )
+ ROM_CONTINUE( 0x32000, 0x1000 )
+ ROM_CONTINUE( 0x13000, 0x1000 )
+ ROM_CONTINUE( 0x33000, 0x1000 )
+ ROM_CONTINUE( 0x14000, 0x1000 )
+ ROM_CONTINUE( 0x34000, 0x1000 )
+ ROM_CONTINUE( 0x15000, 0x1000 )
+ ROM_CONTINUE( 0x35000, 0x1000 )
+ ROM_CONTINUE( 0x16000, 0x1000 )
+ ROM_CONTINUE( 0x36000, 0x1000 )
+ ROM_CONTINUE( 0x17000, 0x1000 )
+ ROM_CONTINUE( 0x37000, 0x1000 )
+ ROM_CONTINUE( 0x18000, 0x1000 )
+ ROM_CONTINUE( 0x38000, 0x1000 )
+ ROM_CONTINUE( 0x19000, 0x1000 )
+ ROM_CONTINUE( 0x39000, 0x1000 )
+ ROM_CONTINUE( 0x1a000, 0x1000 )
+ ROM_CONTINUE( 0x3a000, 0x1000 )
+ ROM_CONTINUE( 0x1b000, 0x1000 )
+ ROM_CONTINUE( 0x3b000, 0x1000 )
+ ROM_CONTINUE( 0x1c000, 0x1000 )
+ ROM_CONTINUE( 0x3c000, 0x1000 )
+ ROM_CONTINUE( 0x1d000, 0x1000 )
+ ROM_CONTINUE( 0x3d000, 0x1000 )
+ ROM_CONTINUE( 0x1e000, 0x1000 )
+ ROM_CONTINUE( 0x3e000, 0x1000 )
+ ROM_CONTINUE( 0x1f000, 0x1000 )
+ ROM_CONTINUE( 0x3f000, 0x1000 )
+ /* Death Derby gfx are corrupt - using this rom to fix the problem */
+ ROM_LOAD( "dderby.5e", 0x8000, 0x1000, CRC(7e2c0a53) SHA1(c3c62b32927ac3c5948faeff28d4c2148fe18d0b) )
+
+ ROM_REGION( 0x41000, "proms", 0 )
+ /* palette comes as banks of 16 - we change it to banks of 32, and remove banks 1 to 0xf (they are same as bank 0) */
+ ROM_LOAD( "madpac.7f", 0x1000, 0x40000, CRC(63e60ac6) SHA1(03b7035eb0a7e62f21793661c09b449113562ebb) )
+ ROM_COPY( "proms", 0x1000, 0x0000, 0x10 ) /* pacman and mspacman */
+ ROM_COPY( "proms", 0x1100, 0x0020, 0x10 ) /* 10. balloon ace */
+ ROM_COPY( "proms", 0x1110, 0x0040, 0x10 ) /* 11. beastie feastie */
+ ROM_COPY( "proms", 0x1120, 0x0060, 0x10 ) /* 12. make trax */
+ ROM_COPY( "proms", 0x1130, 0x0080, 0x10 ) /* 13. lizard wizard */
+ ROM_COPY( "proms", 0x1140, 0x00a0, 0x10 ) /* 14. atlantic city action */
+ ROM_COPY( "proms", 0x1150, 0x00c0, 0x10 ) /* 15. jump shot */
+ ROM_COPY( "proms", 0x1160, 0x00e0, 0x10 ) /* 16. ladybug */
+ ROM_COPY( "proms", 0x1170, 0x0100, 0x10 ) /* 17. zig zag */
+ ROM_COPY( "proms", 0x1180, 0x0120, 0x10 ) /* 18. chicken */
+ ROM_COPY( "proms", 0x1190, 0x0140, 0x10 ) /* 19. pacplus */
+ ROM_COPY( "proms", 0x11a0, 0x0160, 0x10 ) /* 1A. naughty mouse */
+ ROM_COPY( "proms", 0x11b0, 0x0180, 0x10 ) /* 1B. cycle battle */
+ ROM_COPY( "proms", 0x11c0, 0x01a0, 0x10 ) /* 1C. eggor */
+ ROM_COPY( "proms", 0x11d0, 0x01c0, 0x10 ) /* 1D. gorkans */
+ ROM_COPY( "proms", 0x11e0, 0x01e0, 0x10 ) /* 1E. homercide */
+ /* lookup table is already at banks of 128 */
+ ROM_LOAD( "madpac.4a", 0x0280, 0x0800, CRC(16057dac) SHA1(8dfa69f3847140dd5fa8514e9bf49962f5f9f0c0) )
+ ROM_COPY( "proms", 0x0280, 0x0200, 0x80 ) /* pacman and mspacman */
+
+ PACMAN_SOUND_PROMS
+ROM_END
+
+/* E253 - no proms were supplied - using standard pacman ones.
+ While the roms of the 2 games are different, I cannot discern any difference in gameplay */
+ROM_START( mspaceur )
+ ROM_REGION( 0x18000, "maincpu", 0 )
+ ROM_LOAD( "mspaceur.cpu", 0x00000, 0x4000, CRC(03905a76) SHA1(1780ef598c6150ffa44bf467479670f7ca50d512) )
+ ROM_CONTINUE( 0x10000, 0x4000 )
+ /* fix some corrupt bytes that stop the game from working. This makes it identical to mspacmbg. */
+ ROM_FILL( 0x01a61, 1, 0x21 )
+ ROM_FILL( 0x018b5, 1, 0x4e )
+ ROM_FILL( 0x0197d, 1, 0xda )
+ ROM_FILL( 0x12c0d, 1, 0xeb )
+
+ /* reorganise gfx so that all chars come first, followed by all sprites */
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "mspacj.gfx", 0x0000, 0x0800, CRC(8ee4a3b0) SHA1(01e3453c99f7a5d78ab083c49c650e898c0dd2ee) )
+ ROM_CONTINUE( 0x1000, 0x0800 )
+ ROM_CONTINUE( 0x0800, 0x0800 )
+ ROM_CONTINUE( 0x1800, 0x0800 )
+ ROM_IGNORE( 0x2000 )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mschamp )
+ ROM_REGION( 0x20000, "maincpu", 0 )
+ ROM_LOAD( "pm4.bin", 0x10000, 0x10000, CRC(7d6b6303) SHA1(65ad72a9188422653c02a48c07ed2661e1e36961) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pm5.bin", 0x0000, 0x0800, CRC(7fe6b9e2) SHA1(bfd0d84c7ef909ae078d8f60340682b3ff230aa6) )
+ ROM_CONTINUE( 0x1000, 0x0800 )
+ ROM_CONTINUE( 0x0800, 0x0800 )
+ ROM_CONTINUE( 0x1800, 0x0800 )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mschampx )
+ ROM_REGION( 0x20000, "maincpu", 0 )
+ ROM_LOAD( "pm4.bin", 0x10000, 0x10000, CRC(7d6b6303) SHA1(65ad72a9188422653c02a48c07ed2661e1e36961) )
+
+ ROM_REGION( 0x8000, "gfx1", 0 )
+ ROM_LOAD( "mschampx.5e", 0x0000, 0x4000, CRC(b3b248f8) SHA1(5e8271b28c6a98e36b4685224bbc99154ae6ba5b) )
+ ROM_LOAD( "mspacmnx.5f", 0x4000, 0x4000, CRC(6f625a9e) SHA1(d9d739ba412c9374b26006d99a345212ef97f868) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( multi10 )
+ ROM_REGION( 0x90000, "maincpu", 0 )
+ ROM_LOAD( "multi10.bin", 0x10000, 0x80000, CRC(9abb7d01) SHA1(44eb136f2ffe6475585b7558c4eddcf4ffaafe9e) )
+
+ ROM_REGION( 0x20000, "gfx1", 0 )
+ ROM_LOAD( "multi10.gfx", 0x00000, 0x1000, CRC(072b216f) SHA1(cc3cef4f9804c1120611ed750c50593eac9b10d4) )
+ ROM_CONTINUE( 0x10000, 0x1000 )
+ ROM_CONTINUE( 0x01000, 0x1000 )
+ ROM_CONTINUE( 0x11000, 0x1000 )
+ ROM_CONTINUE( 0x02000, 0x1000 )
+ ROM_CONTINUE( 0x12000, 0x1000 )
+ ROM_CONTINUE( 0x03000, 0x1000 )
+ ROM_CONTINUE( 0x13000, 0x1000 )
+ ROM_CONTINUE( 0x04000, 0x1000 )
+ ROM_CONTINUE( 0x14000, 0x1000 )
+ ROM_CONTINUE( 0x05000, 0x1000 )
+ ROM_CONTINUE( 0x15000, 0x1000 )
+ ROM_CONTINUE( 0x06000, 0x1000 )
+ ROM_CONTINUE( 0x16000, 0x1000 )
+ ROM_CONTINUE( 0x07000, 0x1000 )
+ ROM_CONTINUE( 0x17000, 0x1000 )
+ ROM_CONTINUE( 0x08000, 0x1000 )
+ ROM_CONTINUE( 0x18000, 0x1000 )
+ ROM_CONTINUE( 0x09000, 0x1000 )
+ ROM_CONTINUE( 0x19000, 0x1000 )
+ ROM_CONTINUE( 0x0a000, 0x1000 )
+ ROM_CONTINUE( 0x1a000, 0x1000 )
+ ROM_CONTINUE( 0x0b000, 0x1000 )
+ ROM_CONTINUE( 0x1b000, 0x1000 )
+ ROM_CONTINUE( 0x0c000, 0x1000 )
+ ROM_CONTINUE( 0x1c000, 0x1000 )
+ ROM_CONTINUE( 0x0d000, 0x1000 )
+ ROM_CONTINUE( 0x1d000, 0x1000 )
+ ROM_CONTINUE( 0x0e000, 0x1000 )
+ ROM_CONTINUE( 0x1e000, 0x1000 )
+ ROM_CONTINUE( 0x0f000, 0x1000 )
+ ROM_CONTINUE( 0x1f000, 0x1000 )
+
+ ROM_REGION( 0x0480, "proms", 0)
+ ROM_LOAD( "multipac.7f", 0x0000, 0x0100, CRC(40a5c3d9) SHA1(c159fe5ab64b9eb51a28ccd051fae219d2125577) )
+ ROM_COPY( "proms", 0x0000, 0x0040, 0x0020 )
+ ROM_LOAD( "multipac.4a", 0x0080, 0x0400, CRC(562a66de) SHA1(1281a7585f833b9f93269b14369e1c8df09f2292) )
+ ROM_COPY( "proms", 0x0180, 0x0100, 0x0080 )
+ ROM_COPY( "proms", 0x0280, 0x0180, 0x0080 )
+ ROM_COPY( "proms", 0x0380, 0x0200, 0x0080 )
+
+ PACMAN_SOUND_PROMS
+ROM_END
+
+ROM_START( multi11 )
+ ROM_REGION( 0x90000, "maincpu", 0 ) /* 8 banks of 64k for code */
+ ROM_LOAD( "multi11.bin", 0x10000, 0x80000, CRC(0fa787fe) SHA1(400592360b2930c1fbbbe1adc0198be007b2dd63) )
+
+ ROM_REGION( 0x20000, "gfx1", 0 )
+ ROM_LOAD( "multipac.gfx", 0x00000, 0x1000, CRC(012fb9ec) SHA1(e4b5647f27f5ddad0bb5580736d6acd3a86cdcf7) )
+ ROM_CONTINUE( 0x10000, 0x1000 )
+ ROM_CONTINUE( 0x01000, 0x1000 )
+ ROM_CONTINUE( 0x11000, 0x1000 )
+ ROM_CONTINUE( 0x02000, 0x1000 )
+ ROM_CONTINUE( 0x12000, 0x1000 )
+ ROM_CONTINUE( 0x03000, 0x1000 )
+ ROM_CONTINUE( 0x13000, 0x1000 )
+ ROM_CONTINUE( 0x04000, 0x1000 )
+ ROM_CONTINUE( 0x14000, 0x1000 )
+ ROM_CONTINUE( 0x05000, 0x1000 )
+ ROM_CONTINUE( 0x15000, 0x1000 )
+ ROM_CONTINUE( 0x06000, 0x1000 )
+ ROM_CONTINUE( 0x16000, 0x1000 )
+ ROM_CONTINUE( 0x07000, 0x1000 )
+ ROM_CONTINUE( 0x17000, 0x1000 )
+ ROM_CONTINUE( 0x08000, 0x1000 )
+ ROM_CONTINUE( 0x18000, 0x1000 )
+ ROM_CONTINUE( 0x09000, 0x1000 )
+ ROM_CONTINUE( 0x19000, 0x1000 )
+ ROM_CONTINUE( 0x0a000, 0x1000 )
+ ROM_CONTINUE( 0x1a000, 0x1000 )
+ ROM_CONTINUE( 0x0b000, 0x1000 )
+ ROM_CONTINUE( 0x1b000, 0x1000 )
+ ROM_CONTINUE( 0x0c000, 0x1000 )
+ ROM_CONTINUE( 0x1c000, 0x1000 )
+ ROM_CONTINUE( 0x0d000, 0x1000 )
+ ROM_CONTINUE( 0x1d000, 0x1000 )
+ ROM_CONTINUE( 0x0e000, 0x1000 )
+ ROM_CONTINUE( 0x1e000, 0x1000 )
+ ROM_CONTINUE( 0x0f000, 0x1000 )
+ ROM_CONTINUE( 0x1f000, 0x1000 )
+
+ ROM_REGION( 0x0480, "proms", 0)
+ ROM_LOAD( "multipac.7f", 0x0000, 0x0100, CRC(40a5c3d9) SHA1(c159fe5ab64b9eb51a28ccd051fae219d2125577) )
+ ROM_COPY( "proms", 0x0000, 0x0040, 0x0020 )
+ ROM_LOAD( "multipac.4a", 0x0080, 0x0400, CRC(562a66de) SHA1(1281a7585f833b9f93269b14369e1c8df09f2292) )
+ ROM_COPY( "proms", 0x0180, 0x0100, 0x0080 )
+ ROM_COPY( "proms", 0x0280, 0x0180, 0x0080 )
+ ROM_COPY( "proms", 0x0380, 0x0200, 0x0080 )
+
+ PACMAN_SOUND_PROMS
+ROM_END
+
+ROM_START( multi13 )
+ ROM_REGION( 0x90000, "maincpu", 0 ) /* 8 banks of 64k for code */
+ ROM_LOAD( "multi13.bin", 0x10000, 0x80000, CRC(0aca3ce9) SHA1(81dd22fd2e8137645fc6cdeb534b4e5c113704fe) )
+
+ ROM_REGION( 0x20000, "gfx1", 0 )
+ ROM_LOAD( "multipac.gfx", 0x00000, 0x1000, CRC(012fb9ec) SHA1(e4b5647f27f5ddad0bb5580736d6acd3a86cdcf7) )
+ ROM_CONTINUE( 0x10000, 0x1000 )
+ ROM_CONTINUE( 0x01000, 0x1000 )
+ ROM_CONTINUE( 0x11000, 0x1000 )
+ ROM_CONTINUE( 0x02000, 0x1000 )
+ ROM_CONTINUE( 0x12000, 0x1000 )
+ ROM_CONTINUE( 0x03000, 0x1000 )
+ ROM_CONTINUE( 0x13000, 0x1000 )
+ ROM_CONTINUE( 0x04000, 0x1000 )
+ ROM_CONTINUE( 0x14000, 0x1000 )
+ ROM_CONTINUE( 0x05000, 0x1000 )
+ ROM_CONTINUE( 0x15000, 0x1000 )
+ ROM_CONTINUE( 0x06000, 0x1000 )
+ ROM_CONTINUE( 0x16000, 0x1000 )
+ ROM_CONTINUE( 0x07000, 0x1000 )
+ ROM_CONTINUE( 0x17000, 0x1000 )
+ ROM_CONTINUE( 0x08000, 0x1000 )
+ ROM_CONTINUE( 0x18000, 0x1000 )
+ ROM_CONTINUE( 0x09000, 0x1000 )
+ ROM_CONTINUE( 0x19000, 0x1000 )
+ ROM_CONTINUE( 0x0a000, 0x1000 )
+ ROM_CONTINUE( 0x1a000, 0x1000 )
+ ROM_CONTINUE( 0x0b000, 0x1000 )
+ ROM_CONTINUE( 0x1b000, 0x1000 )
+ ROM_CONTINUE( 0x0c000, 0x1000 )
+ ROM_CONTINUE( 0x1c000, 0x1000 )
+ ROM_CONTINUE( 0x0d000, 0x1000 )
+ ROM_CONTINUE( 0x1d000, 0x1000 )
+ ROM_CONTINUE( 0x0e000, 0x1000 )
+ ROM_CONTINUE( 0x1e000, 0x1000 )
+ ROM_CONTINUE( 0x0f000, 0x1000 )
+ ROM_CONTINUE( 0x1f000, 0x1000 )
+
+ ROM_REGION( 0x0480, "proms", 0)
+ ROM_LOAD( "multipac.7f", 0x0000, 0x0100, CRC(40a5c3d9) SHA1(c159fe5ab64b9eb51a28ccd051fae219d2125577) )
+ ROM_COPY( "proms", 0x0000, 0x0040, 0x0020 )
+ ROM_LOAD( "multipac.4a", 0x0080, 0x0400, CRC(562a66de) SHA1(1281a7585f833b9f93269b14369e1c8df09f2292) )
+ ROM_COPY( "proms", 0x0180, 0x0100, 0x0080 )
+ ROM_COPY( "proms", 0x0280, 0x0180, 0x0080 )
+ ROM_COPY( "proms", 0x0380, 0x0200, 0x0080 )
+
+ PACMAN_SOUND_PROMS
+ROM_END
+
+ROM_START( multi14 )
+ ROM_REGION( 0x90000, "maincpu", 0 ) /* 8 banks of 64k for code */
+ ROM_LOAD( "multi14.bin", 0x10000, 0x80000, CRC(23de184d) SHA1(e466a1c46091a33a3f50747455abb8618a23f824) )
+
+ ROM_REGION( 0x20000, "gfx1", 0 )
+ ROM_LOAD( "multipac.gfx", 0x00000, 0x1000, CRC(012fb9ec) SHA1(e4b5647f27f5ddad0bb5580736d6acd3a86cdcf7) )
+ ROM_CONTINUE( 0x10000, 0x1000 )
+ ROM_CONTINUE( 0x01000, 0x1000 )
+ ROM_CONTINUE( 0x11000, 0x1000 )
+ ROM_CONTINUE( 0x02000, 0x1000 )
+ ROM_CONTINUE( 0x12000, 0x1000 )
+ ROM_CONTINUE( 0x03000, 0x1000 )
+ ROM_CONTINUE( 0x13000, 0x1000 )
+ ROM_CONTINUE( 0x04000, 0x1000 )
+ ROM_CONTINUE( 0x14000, 0x1000 )
+ ROM_CONTINUE( 0x05000, 0x1000 )
+ ROM_CONTINUE( 0x15000, 0x1000 )
+ ROM_CONTINUE( 0x06000, 0x1000 )
+ ROM_CONTINUE( 0x16000, 0x1000 )
+ ROM_CONTINUE( 0x07000, 0x1000 )
+ ROM_CONTINUE( 0x17000, 0x1000 )
+ ROM_CONTINUE( 0x08000, 0x1000 )
+ ROM_CONTINUE( 0x18000, 0x1000 )
+ ROM_CONTINUE( 0x09000, 0x1000 )
+ ROM_CONTINUE( 0x19000, 0x1000 )
+ ROM_CONTINUE( 0x0a000, 0x1000 )
+ ROM_CONTINUE( 0x1a000, 0x1000 )
+ ROM_CONTINUE( 0x0b000, 0x1000 )
+ ROM_CONTINUE( 0x1b000, 0x1000 )
+ ROM_CONTINUE( 0x0c000, 0x1000 )
+ ROM_CONTINUE( 0x1c000, 0x1000 )
+ ROM_CONTINUE( 0x0d000, 0x1000 )
+ ROM_CONTINUE( 0x1d000, 0x1000 )
+ ROM_CONTINUE( 0x0e000, 0x1000 )
+ ROM_CONTINUE( 0x1e000, 0x1000 )
+ ROM_CONTINUE( 0x0f000, 0x1000 )
+ ROM_CONTINUE( 0x1f000, 0x1000 )
+
+ ROM_REGION( 0x0480, "proms", 0)
+ ROM_LOAD( "multipac.7f", 0x0000, 0x0100, CRC(40a5c3d9) SHA1(c159fe5ab64b9eb51a28ccd051fae219d2125577) )
+ ROM_COPY( "proms", 0x0000, 0x0040, 0x0020 )
+ ROM_LOAD( "multipac.4a", 0x0080, 0x0400, CRC(562a66de) SHA1(1281a7585f833b9f93269b14369e1c8df09f2292) )
+ ROM_COPY( "proms", 0x0180, 0x0100, 0x0080 )
+ ROM_COPY( "proms", 0x0280, 0x0180, 0x0080 )
+ ROM_COPY( "proms", 0x0380, 0x0200, 0x0080 )
+
+ PACMAN_SOUND_PROMS
+ROM_END
+
+ROM_START( multi15 )
+ ROM_REGION( 0x90000, "maincpu", 0 ) /* 8 banks of 64k for code */
+ ROM_LOAD( "multi15.bin", 0x10000, 0x80000, CRC(eb181a29) SHA1(14a44730d36c25c76ae68cbfd51febda9d8d1dfa) )
+
+ /* reorganise gfx so that all chars come first, followed by all sprites */
+ ROM_REGION( 0x20000, "gfx1", 0 )
+ ROM_LOAD( "multipac.gfx", 0x00000, 0x1000, CRC(012fb9ec) SHA1(e4b5647f27f5ddad0bb5580736d6acd3a86cdcf7) )
+ ROM_CONTINUE( 0x10000, 0x1000 )
+ ROM_CONTINUE( 0x01000, 0x1000 )
+ ROM_CONTINUE( 0x11000, 0x1000 )
+ ROM_CONTINUE( 0x02000, 0x1000 )
+ ROM_CONTINUE( 0x12000, 0x1000 )
+ ROM_CONTINUE( 0x03000, 0x1000 )
+ ROM_CONTINUE( 0x13000, 0x1000 )
+ ROM_CONTINUE( 0x04000, 0x1000 )
+ ROM_CONTINUE( 0x14000, 0x1000 )
+ ROM_CONTINUE( 0x05000, 0x1000 )
+ ROM_CONTINUE( 0x15000, 0x1000 )
+ ROM_CONTINUE( 0x06000, 0x1000 )
+ ROM_CONTINUE( 0x16000, 0x1000 )
+ ROM_CONTINUE( 0x07000, 0x1000 )
+ ROM_CONTINUE( 0x17000, 0x1000 )
+ ROM_CONTINUE( 0x08000, 0x1000 )
+ ROM_CONTINUE( 0x18000, 0x1000 )
+ ROM_CONTINUE( 0x09000, 0x1000 )
+ ROM_CONTINUE( 0x19000, 0x1000 )
+ ROM_CONTINUE( 0x0a000, 0x1000 )
+ ROM_CONTINUE( 0x1a000, 0x1000 )
+ ROM_CONTINUE( 0x0b000, 0x1000 )
+ ROM_CONTINUE( 0x1b000, 0x1000 )
+ ROM_CONTINUE( 0x0c000, 0x1000 )
+ ROM_CONTINUE( 0x1c000, 0x1000 )
+ ROM_CONTINUE( 0x0d000, 0x1000 )
+ ROM_CONTINUE( 0x1d000, 0x1000 )
+ ROM_CONTINUE( 0x0e000, 0x1000 )
+ ROM_CONTINUE( 0x1e000, 0x1000 )
+ ROM_CONTINUE( 0x0f000, 0x1000 )
+ ROM_CONTINUE( 0x1f000, 0x1000 )
+
+ ROM_REGION( 0x0480, "proms", 0)
+ /* this rom has 4 banks of (the 16 colours in the palette + 16 blanks) */
+ ROM_LOAD( "multipac.7f", 0x0000, 0x0100, CRC(40a5c3d9) SHA1(c159fe5ab64b9eb51a28ccd051fae219d2125577) )
+ ROM_COPY( "proms", 0x0000, 0x0040, 0x0020 ) /* crush roller */
+ /* this rom has 4 banks of (the 128 lookup colour codes + 128 blanks) */
+ ROM_LOAD( "multipac.4a", 0x0080, 0x0400, CRC(562a66de) SHA1(1281a7585f833b9f93269b14369e1c8df09f2292) )
+ /* we move the tables down, to remove the blanks */
+ ROM_COPY( "proms", 0x0180, 0x0100, 0x0080 )
+ ROM_COPY( "proms", 0x0280, 0x0180, 0x0080 )
+ ROM_COPY( "proms", 0x0380, 0x0200, 0x0080 )
+
+ PACMAN_SOUND_PROMS
+ROM_END
+
+ROM_START( pm4n1 )
+ ROM_REGION( 0x34000, "maincpu", 0 )
+ ROM_LOAD( "pm4n1.cpu", 0x10000, 0x24000, CRC(248f3153) SHA1(c36fb95c38619ec4947017a686f7d5feb643d269) )
+ ROM_FILL(0x303fe, 1, 0xcd)
+ ROM_FILL(0x303ff, 1, 0xa1) /* These bytes allow Pacman to start up */
+ ROM_FILL(0x30400, 1, 0x2b)
+
+ ROM_REGION( 0x0a000, "gfx1", 0 )
+ ROM_LOAD( "96in1a.gfx", 0x00000, 0x1000, CRC(f4ce2dca) SHA1(b0515ee98766225d4d4a1368949942324703e865) )
+ ROM_CONTINUE( 0x05000, 0x1000 ) /* piranha, don't want */
+ ROM_CONTINUE( 0x00000, 0x1000 )
+ ROM_CONTINUE( 0x05000, 0x1000 ) /* menu */
+ ROM_CONTINUE( 0x01000, 0x1000 )
+ ROM_CONTINUE( 0x06000, 0x1000 ) /* fast pacman */
+ ROM_CONTINUE( 0x04000, 0x1000 )
+ ROM_CONTINUE( 0x09000, 0x1000 ) /* pacman */
+ /* 4 dummy reads because rom_ignore doesn't work properly */
+ ROM_CONTINUE( 0x02000, 0x1000 )
+ ROM_CONTINUE( 0x07000, 0x1000 )
+ ROM_CONTINUE( 0x03000, 0x1000 )
+ ROM_CONTINUE( 0x08000, 0x1000 )
+ ROM_CONTINUE( 0x02000, 0x1000 )
+ ROM_CONTINUE( 0x07000, 0x1000 ) /* mspacman */
+ ROM_CONTINUE( 0x03000, 0x1000 )
+ ROM_CONTINUE( 0x08000, 0x1000 ) /* fast mspacman */
+ ROM_IGNORE( 0x10000)
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pm4n1a )
+ ROM_REGION( 0x34000, "maincpu", 0 )
+ ROM_LOAD( "pm4n1a.cpu", 0x10000, 0x24000, CRC(cdc319bb) SHA1(0f7b9956a67e46d5f3cb0bd84c350662668fd02d) )
+
+ ROM_REGION( 0x0a000, "gfx1", 0 )
+ ROM_LOAD( "96in1a.gfx", 0x00000, 0x1000, CRC(f4ce2dca) SHA1(b0515ee98766225d4d4a1368949942324703e865) )
+ ROM_CONTINUE( 0x05000, 0x1000 ) /* piranha, don't want */
+ ROM_CONTINUE( 0x00000, 0x1000 )
+ ROM_CONTINUE( 0x05000, 0x1000 ) /* menu */
+ ROM_CONTINUE( 0x01000, 0x1000 )
+ ROM_CONTINUE( 0x06000, 0x1000 ) /* fast pacman */
+ ROM_CONTINUE( 0x04000, 0x1000 )
+ ROM_CONTINUE( 0x09000, 0x1000 ) /* pacman */
+ /* 4 dummy reads because rom_ignore doesn't work properly */
+ ROM_CONTINUE( 0x02000, 0x1000 )
+ ROM_CONTINUE( 0x07000, 0x1000 )
+ ROM_CONTINUE( 0x03000, 0x1000 )
+ ROM_CONTINUE( 0x08000, 0x1000 )
+ ROM_CONTINUE( 0x02000, 0x1000 )
+ ROM_CONTINUE( 0x07000, 0x1000 ) /* mspacman */
+ ROM_CONTINUE( 0x03000, 0x1000 )
+ ROM_CONTINUE( 0x08000, 0x1000 ) /* fast mspacman */
+ ROM_IGNORE( 0x10000)
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pm4n1b )
+ ROM_REGION( 0x40000, "maincpu", 0 )
+ ROM_LOAD( "pm4n1b.cpu", 0x10000, 0x30000, CRC(31ea8134) SHA1(61bd5589ed1d304cfef90ccf9af95f2a6743782e) )
+ /* Alternative working rom */
+ //ROM_LOAD( "pm4n1ba.cpu", 0x10000, 0x24000, CRC(2709642c) SHA1(5e2984a9ff5db416ee065651765bf05c070ca052) )
+
+ ROM_REGION( 0xa000, "gfx1", 0 )
+ ROM_LOAD( "pm4n1b.gfx", 0x0000, 0x1000, CRC(949a50a2) SHA1(2b661e584b35740ce8b530f51485865a620354e6) )
+ ROM_CONTINUE( 0x5000, 0x1000 ) /* menu */
+ ROM_CONTINUE( 0x2000, 0x1000 )
+ ROM_CONTINUE( 0x7000, 0x1000 ) /* mspacman */
+ ROM_COPY( "gfx1", 0x0000, 0x1000, 0x1000 )
+ ROM_COPY( "gfx1", 0x5000, 0x6000, 0x1000 ) /* copy menu to fast pacman */
+ ROM_COPY( "gfx1", 0x0000, 0x4000, 0x1000 )
+ ROM_COPY( "gfx1", 0x5000, 0x9000, 0x1000 ) /* copy menu to pacman */
+ ROM_COPY( "gfx1", 0x2000, 0x3000, 0x1000 )
+ ROM_COPY( "gfx1", 0x7000, 0x8000, 0x1000 ) /* copy mspacman to fast mspacman */
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pm4n1c )
+ ROM_REGION( 0x38000, "maincpu", 0 )
+ ROM_LOAD( "pm4n1c.cpu", 0x10000, 0x28000, CRC(48cafb4e) SHA1(8ff42c3524020f5f599f8f3c76f279b1af9983a9) )
+
+ ROM_REGION( 0xa000, "gfx1", 0 )
+ ROM_LOAD( "pm4n1b.gfx", 0x0000, 0x1000, CRC(949a50a2) SHA1(2b661e584b35740ce8b530f51485865a620354e6) )
+ ROM_CONTINUE( 0x5000, 0x1000 ) /* menu */
+ ROM_CONTINUE( 0x2000, 0x1000 )
+ ROM_CONTINUE( 0x7000, 0x1000 ) /* mspacman */
+ ROM_COPY( "gfx1", 0x0000, 0x1000, 0x1000 )
+ ROM_COPY( "gfx1", 0x5000, 0x6000, 0x1000 ) /* copy menu to fast pacman */
+ ROM_COPY( "gfx1", 0x0000, 0x4000, 0x1000 )
+ ROM_COPY( "gfx1", 0x5000, 0x9000, 0x1000 ) /* copy menu to pacman */
+ ROM_COPY( "gfx1", 0x2000, 0x3000, 0x1000 )
+ ROM_COPY( "gfx1", 0x7000, 0x8000, 0x1000 ) /* copy mspacman to fast mspacman */
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pm4n1d )
+ ROM_REGION( 0x30000, "maincpu", 0 )
+// ROM_LOAD( "pm4n1d.cpu", 0x10000, 0x20000, CRC(28f95683) SHA1(297ff0fb2d12293830cef9a4cc77629d658a96f9) )
+ ROM_LOAD( "pm4n1d.cpu", 0x10000, 0x10000, CRC(9bab691e) SHA1(d90ee5e5b345c9feabe5f629132bd5f2b83c9c4f) )
+
+ ROM_REGION( 0xa000, "gfx1", 0 )
+ ROM_LOAD( "pm4n1b.gfx", 0x0000, 0x1000, CRC(949a50a2) SHA1(2b661e584b35740ce8b530f51485865a620354e6) )
+ ROM_CONTINUE( 0x5000, 0x1000 ) /* menu */
+ ROM_CONTINUE( 0x2000, 0x1000 )
+ ROM_CONTINUE( 0x7000, 0x1000 ) /* mspacman */
+ ROM_COPY( "gfx1", 0x0000, 0x1000, 0x1000 )
+ ROM_COPY( "gfx1", 0x5000, 0x6000, 0x1000 ) /* copy menu to fast pacman */
+ ROM_COPY( "gfx1", 0x0000, 0x4000, 0x1000 )
+ ROM_COPY( "gfx1", 0x5000, 0x9000, 0x1000 ) /* copy menu to pacman */
+ ROM_COPY( "gfx1", 0x2000, 0x3000, 0x1000 )
+ ROM_COPY( "gfx1", 0x7000, 0x8000, 0x1000 ) /* copy mspacman to fast mspacman */
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pm4n1e )
+ ROM_REGION( 0x30000, "maincpu", 0 )
+// ROM_LOAD( "pm4n1e.cpu", 0x10000, 0x20000, CRC(82035513) SHA1(9d05e5a07b47a2668e497a66cd6ceb29bbcab659) )
+ ROM_LOAD( "pm4n1e.cpu", 0x10000, 0x10000, CRC(5bbf374a) SHA1(426451a9cd4e8680ab19c2ce635435c0b43cba95) )
+
+ ROM_REGION( 0xa000, "gfx1", 0 )
+ ROM_LOAD( "pm4n1b.gfx", 0x0000, 0x1000, CRC(949a50a2) SHA1(2b661e584b35740ce8b530f51485865a620354e6) )
+ ROM_CONTINUE( 0x5000, 0x1000 ) /* menu */
+ ROM_CONTINUE( 0x2000, 0x1000 )
+ ROM_CONTINUE( 0x7000, 0x1000 ) /* mspacman */
+ ROM_COPY( "gfx1", 0x0000, 0x1000, 0x1000 )
+ ROM_COPY( "gfx1", 0x5000, 0x6000, 0x1000 ) /* copy menu to fast pacman */
+ ROM_COPY( "gfx1", 0x0000, 0x4000, 0x1000 )
+ ROM_COPY( "gfx1", 0x5000, 0x9000, 0x1000 ) /* copy menu to pacman */
+ ROM_COPY( "gfx1", 0x2000, 0x3000, 0x1000 )
+ ROM_COPY( "gfx1", 0x7000, 0x8000, 0x1000 ) /* copy mspacman to fast mspacman */
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( superabc )
+ ROM_REGION( 0x90000, "maincpu", 0 ) /* 8 banks of 64k for code */
+ ROM_LOAD( "superabc.u14", 0x10000, 0x80000, CRC(a560efe6) SHA1(c7d43cc3bb3b1b10d06403462276231bfc8542dd) )
+
+ ROM_REGION( 0x10000, "gfx1", 0 )
+ ROM_LOAD( "superabc.u1", 0x00000, 0x1000, CRC(45caace0) SHA1(f850bd09ec68b0263ac8b30ae38c3878c7978ace) )
+ ROM_CONTINUE( 0x08000, 0x1000 )
+ ROM_CONTINUE( 0x04000, 0x1000 ) // these duplicate entries should be ROM_IGNORE but it has a bug
+ ROM_CONTINUE( 0x0c000, 0x1000 )
+ ROM_CONTINUE( 0x04000, 0x1000 )
+ ROM_CONTINUE( 0x0c000, 0x1000 )
+ ROM_CONTINUE( 0x02000, 0x1000 )
+ ROM_CONTINUE( 0x0a000, 0x1000 )
+ ROM_CONTINUE( 0x02000, 0x1000 )
+ ROM_CONTINUE( 0x0a000, 0x1000 )
+ ROM_CONTINUE( 0x06000, 0x1000 )
+ ROM_CONTINUE( 0x0e000, 0x1000 )
+ ROM_CONTINUE( 0x06000, 0x1000 )
+ ROM_CONTINUE( 0x0e000, 0x1000 )
+ ROM_CONTINUE( 0x01000, 0x1000 )
+ ROM_CONTINUE( 0x09000, 0x1000 )
+ ROM_CONTINUE( 0x01000, 0x1000 )
+ ROM_CONTINUE( 0x09000, 0x1000 )
+ ROM_CONTINUE( 0x05000, 0x1000 )
+ ROM_CONTINUE( 0x0d000, 0x1000 )
+ ROM_CONTINUE( 0x05000, 0x1000 )
+ ROM_CONTINUE( 0x0d000, 0x1000 )
+ ROM_CONTINUE( 0x03000, 0x1000 )
+ ROM_CONTINUE( 0x0b000, 0x1000 )
+ ROM_CONTINUE( 0x03000, 0x1000 )
+ ROM_CONTINUE( 0x0b000, 0x1000 )
+ ROM_CONTINUE( 0x07000, 0x1000 )
+ ROM_CONTINUE( 0x0f000, 0x1000 )
+ ROM_CONTINUE( 0x07000, 0x1000 )
+ ROM_CONTINUE( 0x0f000, 0x1000 )
+ ROM_IGNORE( 0x2000 )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD( "superabc.7f", 0x0000, 0x0020, CRC(3a188666) SHA1(067386e477ce48bbde3cf71f744a78a42238d236) )
+ ROM_LOAD( "superabc.4a", 0x0020, 0x0100, CRC(4382c049) SHA1(5e535b1a6852260f38ae1e5cd57290a85cb6927f) )
+
+ PACMAN_SOUND_PROMS
+ROM_END
+
+ROM_START( superabco )
+ ROM_REGION( 0x90000, "maincpu", 0 ) /* 8 banks of 64k for code */
+ ROM_LOAD( "superabco.u14", 0x10000, 0x80000, CRC(62565ad8) SHA1(cb434c608ee463788b73152d84ce6173bdfa350d) )
+
+ ROM_REGION( 0x10000, "gfx1", 0 )
+ ROM_LOAD( "superabc.u1", 0x00000, 0x1000, CRC(45caace0) SHA1(f850bd09ec68b0263ac8b30ae38c3878c7978ace) )
+ ROM_CONTINUE( 0x08000, 0x1000 )
+ ROM_CONTINUE( 0x04000, 0x1000 ) // these duplicate entries should be ROM_IGNORE but it has a bug
+ ROM_CONTINUE( 0x0c000, 0x1000 )
+ ROM_CONTINUE( 0x04000, 0x1000 )
+ ROM_CONTINUE( 0x0c000, 0x1000 )
+ ROM_CONTINUE( 0x02000, 0x1000 )
+ ROM_CONTINUE( 0x0a000, 0x1000 )
+ ROM_CONTINUE( 0x02000, 0x1000 )
+ ROM_CONTINUE( 0x0a000, 0x1000 )
+ ROM_CONTINUE( 0x06000, 0x1000 )
+ ROM_CONTINUE( 0x0e000, 0x1000 )
+ ROM_CONTINUE( 0x06000, 0x1000 )
+ ROM_CONTINUE( 0x0e000, 0x1000 )
+ ROM_CONTINUE( 0x01000, 0x1000 )
+ ROM_CONTINUE( 0x09000, 0x1000 )
+ ROM_CONTINUE( 0x01000, 0x1000 )
+ ROM_CONTINUE( 0x09000, 0x1000 )
+ ROM_CONTINUE( 0x05000, 0x1000 )
+ ROM_CONTINUE( 0x0d000, 0x1000 )
+ ROM_CONTINUE( 0x05000, 0x1000 )
+ ROM_CONTINUE( 0x0d000, 0x1000 )
+ ROM_CONTINUE( 0x03000, 0x1000 )
+ ROM_CONTINUE( 0x0b000, 0x1000 )
+ ROM_CONTINUE( 0x03000, 0x1000 )
+ ROM_CONTINUE( 0x0b000, 0x1000 )
+ ROM_CONTINUE( 0x07000, 0x1000 )
+ ROM_CONTINUE( 0x0f000, 0x1000 )
+ ROM_CONTINUE( 0x07000, 0x1000 )
+ ROM_CONTINUE( 0x0f000, 0x1000 )
+ ROM_IGNORE( 0x2000 )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD( "superabc.7f", 0x0000, 0x0020, CRC(3a188666) SHA1(067386e477ce48bbde3cf71f744a78a42238d236) )
+ ROM_LOAD( "superabc.4a", 0x0020, 0x0100, CRC(4382c049) SHA1(5e535b1a6852260f38ae1e5cd57290a85cb6927f) )
+
+ PACMAN_SOUND_PROMS
+ROM_END
+
+
+/*************************************
+ *
+ * Game drivers
+ *
+ *************************************/
+
+GAME( 1995, mschamp, mspacman, mschamp, mschamp, pacman_state, 0, ROT90, "hack", "Ms. Pacman Champion Edition / Super Zola Pac Gal", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, mschampx, mspacmnx, mschampx, mschamp, pacman_state, 0, ROT90, "hack", "Ms. Pacman Champion Edition / Super Zola Pac Gal (hires hack)", MACHINE_SUPPORTS_SAVE )
+
+/* Dave Widel's Games - http://www.widel.com */
+
+GAME( 2005, 96in1, madpac, 96in1, 96in1, pacman_state, 96in1, ROT90, "David Widel", "96 in 1 v3 [h]", MACHINE_SUPPORTS_SAVE )
+GAME( 2005, 96in1c, madpac, 96in1, 96in1, pacman_state, 96in1, ROT90, "David Widel", "96 in 1 v1 [h]", MACHINE_SUPPORTS_SAVE )
+GAME( 2005, 96in1a, madpac, 96in1, 96in1, pacman_state, 96in1, ROT90, "David Widel", "96 in 1 v2 [h]", MACHINE_SUPPORTS_SAVE )
+GAME( 2005, 96in1b, madpac, 96in1b, 96in1, pacman_state, madpac, ROT90, "David Widel", "96 in 1 v4 [h]", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, hackypac, madpac, hackypac, pacman0, pacman_state, madpac, ROT90, "David Widel", "Hacky Pac", MACHINE_SUPPORTS_SAVE )
+GAME( 2005, madpac, 0, madpac, 96in1, pacman_state, madpac, ROT90, "David Widel", "Mad Pac [h]", MACHINE_SUPPORTS_SAVE )
+
+/* Other Misc Hacks */
+
+GAME( 1993, mspaceur, mspacman, mspaceur, mspacman, pacman_state, mspaceur, ROT90, "ImpEuropeX Corp", "Ms. Pac-man", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, multi10, multi15, multipac, multipac, pacman_state, multipac, ROT90, "Clay Cowgill", "Multipac 1.0", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, multi11, multi15, multipac, multipac, pacman_state, multipac, ROT90, "Clay Cowgill", "Multipac 1.1", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, multi13, multi15, multipac, multipac, pacman_state, multipac, ROT90, "Clay Cowgill", "Multipac 1.3", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, multi14, multi15, multipac, multipac, pacman_state, multipac, ROT90, "Clay Cowgill", "Multipac 1.4", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, multi15, 0, multipac, multipac, pacman_state, multipac, ROT90, "Clay Cowgill", "Multipac 1.5", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, pm4n1, puckman, pm4n1, pacman0, pacman_state, pm4n1, ROT90, "Jason Souza", "Pacman 4in1 v1.0 [c]", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, pm4n1a, puckman, pm4n1, pacman0, pacman_state, pm4n1, ROT90, "Jason Souza", "Pacman 4in1 v1.1 [c]", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, pm4n1b, puckman, pm4n1, pacman0, pacman_state, pm4n1, ROT90, "Jason Souza", "Pacman 4in1 v1.2 [c]", MACHINE_SUPPORTS_SAVE ) // arcade.souzaonline.com/downloads.html
+GAME( 2008, pm4n1c, puckman, pm4n1c, pacman0, pacman_state, pm4n1, ROT90, "Jason Souza", "Pacman 4in1 v2.3 [c][h]", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, pm4n1d, puckman, pm4n1d, pacman0, pacman_state, pm4n1, ROT90, "Jason Souza", "Pacman 4in1 v3.0 [c][h]", MACHINE_SUPPORTS_SAVE )
+GAME( 2010, pm4n1e, puckman, pm4n1d, pacman0, pacman_state, pm4n1, ROT90, "Jason Souza", "Pacman 4in1 v3.3 [c][h]", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, superabc, 0, superabc, superabc, pacman_state, superabc, ROT90, "TwoBit Score", "Pacman SuperABC (1999-09-03)[h]", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, superabco,superabc, superabc, superabc, pacman_state, superabc, ROT90, "TwoBit Score", "Pacman SuperABC (1999-03-08)[h]", MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/nemesis.cpp b/src/hbmame/drivers/nemesis.cpp
new file mode 100644
index 00000000000..f1bcbcee737
--- /dev/null
+++ b/src/hbmame/drivers/nemesis.cpp
@@ -0,0 +1,134 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/nemesis.cpp"
+
+#if 0
+static INPUT_PORTS_START( spclone )
+ PORT_START("IN0")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 )
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 )
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SERVICE1 )
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START1 )
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_START2 )
+ PORT_DIPNAME( 0x20, 0x20, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SWT:1")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) ) PORT_DIPLOCATION("SWT:2")
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_SERVICE_DIPLOC( 0x80, IP_ACTIVE_LOW, "SWT:3" )
+
+ PORT_START("IN1")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1) // power-up
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(1) // shoot
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(1) // missile
+ PORT_DIPNAME( 0x80, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SWT:3")
+ PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( Cocktail ) )
+
+ PORT_START("IN2")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2)
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2)
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(2)
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
+
+ PORT_START("DSW0")
+ PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW0: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, DEF_STR( Free_Play ) )
+ PORT_DIPNAME( 0x10, 0x10, "Font" )
+ PORT_DIPSETTING( 0x10, "Koi no Hotrock" )
+ PORT_DIPSETTING( 0x00, "Gradius III" )
+ PORT_DIPNAME( 0x20, 0x20, "k007232" )
+ PORT_DIPSETTING( 0x20, "old" )
+ PORT_DIPSETTING( 0x00, "new" )
+ PORT_DIPNAME( 0x40, 0x40, "Pulse" )
+ PORT_DIPSETTING( 0x40, "PULSE" )
+ PORT_DIPSETTING( 0x00, "RIPPLE" )
+ PORT_DIPNAME( 0x80, 0x80, "2P alone play input" )
+ PORT_DIPSETTING( 0x80, "1P" )
+ PORT_DIPSETTING( 0x00, "2P" )
+
+ PORT_START("DSW1")
+ PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
+ PORT_DIPSETTING( 0x03, "3" )
+ PORT_DIPSETTING( 0x02, "4" )
+ PORT_DIPSETTING( 0x01, "5" )
+ PORT_DIPSETTING( 0x00, "6" )
+ PORT_DIPNAME( 0x04, 0x04, "Stage4 expert limit" )
+ PORT_DIPSETTING( 0x04, "on" )
+ PORT_DIPSETTING( 0x00, "off" )
+ PORT_DIPNAME( 0x18, 0x18, DEF_STR( Bonus_Life ) )
+ PORT_DIPSETTING( 0x10, "70k and every 200k" )
+ PORT_DIPSETTING( 0x18, "100k and every 300k" )
+ PORT_DIPSETTING( 0x08, "10k only" )
+ PORT_DIPSETTING( 0x00, "NONE" )
+ PORT_DIPNAME( 0x60, 0x40, DEF_STR( Difficulty ) )
+ PORT_DIPSETTING( 0x60, DEF_STR( Easy ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( Medium ) )
+ PORT_DIPSETTING( 0x20, DEF_STR( Hard ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) )
+ PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+INPUT_PORTS_END
+#endif
+
+ROM_START( spclone )
+ ROM_REGION( 0x80000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "spclone.18b", 0x00000, 0x10000, CRC(14c19a46) SHA1(1a65a98c390693949247f4e568fe71cff82d59b4) )
+ ROM_LOAD16_BYTE( "spclone.18c", 0x00001, 0x10000, CRC(fdafc246) SHA1(1641411023f85afe82af749b15d067efc5859f4e) )
+ ROM_LOAD16_BYTE( "587-c03.17b", 0x40000, 0x20000, CRC(e5caf6e6) SHA1(f5df4fbc43cfa6e2866558c99dd95ba8dc89dc7a) )
+ ROM_LOAD16_BYTE( "587-c06.17c", 0x40001, 0x20000, CRC(c2f567ea) SHA1(0c38fea53f3d4a9ae0deada5669deca4be8c9fd3) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "spclone.11j", 0x00000, 0x08000, CRC(bf83b182) SHA1(e702eddffea3bad8944bfab03d53c6e277bca866) )
+
+ ROM_REGION( 0x04000, "vlm", 0 )
+ ROM_LOAD( "587-d08.8g", 0x00000, 0x04000, CRC(f9ac6b82) SHA1(3370fc3a7f82e922e19d54afb3bca7b07fa4aa9a) )
+
+ ROM_REGION( 0x20000, "k007232", 0 )
+ ROM_LOAD( "587-c01.10a", 0x00000, 0x20000, CRC(09fe0632) SHA1(4c3b29c623d70bbe8a938a0beb4638912c46fb6a) )
+ROM_END
+
+ROM_START( spcloneo )
+ ROM_REGION( 0x80000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "spcloneo.18b", 0x00000, 0x10000, CRC(6d49878b) SHA1(95ec8c326cb83d8391f7821868187d68ef734120) )
+ ROM_LOAD16_BYTE( "spcloneo.18c", 0x00001, 0x10000, CRC(08b8fd27) SHA1(fbbb5f9c795de5a776309cdd7a5678fc0061d52a) )
+ ROM_LOAD16_BYTE( "587-c03.17b", 0x40000, 0x20000, CRC(e5caf6e6) SHA1(f5df4fbc43cfa6e2866558c99dd95ba8dc89dc7a) )
+ ROM_LOAD16_BYTE( "587-c06.17c", 0x40001, 0x20000, CRC(c2f567ea) SHA1(0c38fea53f3d4a9ae0deada5669deca4be8c9fd3) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "spcloneo.11j", 0x00000, 0x08000, CRC(9b72fdc7) SHA1(6634e2c8203cc7a9f5b2135a0b717dc18b0fdf23) )
+
+ ROM_REGION( 0x04000, "vlm", 0 )
+ ROM_LOAD( "587-d08.8g", 0x00000, 0x04000, CRC(f9ac6b82) SHA1(3370fc3a7f82e922e19d54afb3bca7b07fa4aa9a) )
+
+ ROM_REGION( 0x20000, "k007232", 0 )
+ ROM_LOAD( "587-c01.10a", 0x00000, 0x20000, CRC(09fe0632) SHA1(4c3b29c623d70bbe8a938a0beb4638912c46fb6a) )
+ROM_END
+
+GAME( 2007, spclone, salamand, salamand, lifefrcj, nemesis_state, 0, ROT0, "Konami", "Salamander (version YY 0.7.3) ", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
+GAME( 2007, spcloneo, salamand, salamand, lifefrcj, nemesis_state, 0, ROT0, "Konami", "Salamander (version YY 0.7.2.2)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/neogeo.cpp b/src/hbmame/drivers/neogeo.cpp
new file mode 100644
index 00000000000..4fa0b740f4a
--- /dev/null
+++ b/src/hbmame/drivers/neogeo.cpp
@@ -0,0 +1,1391 @@
+// license:BSD-3-Clause
+// copyright-holders:Bryan McPhail,Ernesto Corvi,Andrew Prime,Zsolt Vasvari
+// thanks-to:Fuzz
+/***************************************************************************
+
+ Neo-Geo hardware
+
+ Credits:
+ * This driver was made possible by the research done by
+ Charles MacDonald. For a detailed description of the Neo-Geo
+ hardware, please visit his page at:
+ http://cgfm2.emuviews.com/txt/mvstech.txt
+ * Presented to you by the Shin Emu Keikaku team.
+ * The following people have all spent probably far
+ too much time on this:
+ AVDB
+ Bryan McPhail
+ Fuzz
+ Ernesto Corvi
+ Andrew Prime
+ Zsolt Vasvari
+
+
+ Known driver issues/to-do's:
+ ============================
+
+ * Fatal Fury 3 crashes during the ending - this doesn't occur if
+ the language is set to Japanese, maybe the English endings
+ are incomplete / buggy?
+ * Graphical Glitches caused by incorrect timing?
+ - Some raster effects are imperfect (off by a couple of lines)
+ * Multi-cart support not implemented - the MVS can take up to
+ 6 cartridges depending on the board being used
+ * 68000 waitstates on ROM region access, determined by jumpers on cart
+ (garou train stage 3 background bug is probably related to this)
+
+
+ Confirmed non-bugs:
+
+ * Bad zooming in the Kof2003 bootlegs - this is what happens
+ if you try and use the normal bios with a pcb set, it
+ looks like the bootleggers didn't care.
+ * Glitches at the edges of the screen - the real hardware
+ can display 320x224 but most of the games seem designed
+ to work with a width of 304, some less.
+ * Distorted jumping sound in Nightmare in the Dark
+ * Ninja Combat sometimes glitches
+
+
+*****************************************************************************
+
+ The Neo-Geo Multi Video System (MVS), is an arcade system board, being
+ the first product in the Neo-Geo family, designed by Alpha Denshi(ADK)
+ and released in 1990 by SNK. It was known to the coin-op industry, and
+ offered arcade operators the ability to put up to 6 different arcade
+ titles into a single cabinet, a key economic consideration for operators
+ with limited floorspace (games for the Neo-Geo are cartridge based and are
+ easily exchangeable). It comes in many different cabinets but basically
+ consists of an add on board that can be linked to a standard Jamma system.
+ The system was discontinued in 2004.
+ Source (modified): http://en.wikipedia.org/wiki/Neo_Geo
+
+
+ MVS motherboards were produced in 1 / 2 / 4 and 6 Slot versions.
+
+ Known motherboards:
+ ===================
+
+ 1 Slot:
+ NEO-MVH MV1
+ NEO-MVH MV1-1
+ NEO-MVH MV1A
+ . NEO-MVH MV1A CHX ??
+ NEO-MVH MV1B (1996.1.19)
+ . NEO-MVH MV1B CHX (1996.1.19) ??
+ NEO-MVH MV1B1 (1998.6.17)
+ NEO-MVH MV1C (1999.4.30)
+ NEO-MVH MV1F
+ NEO-MVH MV1FS
+ NEO-MVH MV1FT
+ NEO-MVH MV1FZ
+ NEO-MVH MV1FZS
+
+ 2 Slot:
+ NEO-MVH MV2
+ NEO-MVH MV2F
+ NEO-MVH MV2F-01
+
+ 4 Slot:
+ NEO-MVH MV4
+ NEO-MVH MV4F
+ NEO-MVH MV4FS
+ NEO-MVH MV4FT
+ NEO-MVH MV4FT2
+
+ 6 Slot:
+ NEO-MVH MV6
+ NEO-MVH MV6F
+
+
+ Neo-Geo Motherboard (info - courtesy of Guru):
+
+ NEO-MVH MV1
+ |---------------------------------------------------------------------|
+ | 4558 |
+ | HC04 HC32 |
+ | SP-S2.SP1 NEO-E0 000-L0.L0 LS244 AS04 |
+ | YM2610 |
+ | 4558 |
+ | 4558 5814 HC259 SFIX.SFIX |
+ | NEO-I0 |
+ | HA13001 YM3016 5814 |
+ --| |
+ | 4558 |
+ --| SM1.SM1 LS32 |
+ | |
+ | LSPC-A0 PRO-C0 LS244 |
+ | |
+ |J 68000 |
+ |A |
+ |M |
+ |M NEO-ZMC2 |
+ |A |
+ | LS273 NEO-G0 58256 58256 Z80A |
+ | 58256 58256 58256 58256 6116 |
+ | LS273 5864 |
+ --| LS05 5864 PRO-B0 |
+ | |
+ --| LS06 HC32 D4990A NEO-F0 24.000MHz |
+ | DSW1 BATT3.6V 32.768kHz NEO-D0 |
+ | 2003 2003 |
+ |---------------------------------------------------------------------|
+
+
+*****************************************************************************
+
+ Neo-Geo game PCB infos:
+ =======================
+
+ The Neo-Geo games for AES (home) and MVS (arcade) systems are cartridge based.
+
+ Each cartridge consists of two PCBs: CHA and PROG.
+ .CHA PCB contains gfx data ('C' - rom), text layer data ('S' - rom) and sound driver ('M' - rom).
+ .PROG PCB contains sample data ('V' - rom) and program code ('P' - rom).
+
+ On most PCBs various custom/protection chips can also be found:
+ (Custom chip detail information (modified) from: http://wiki.neogeodev.org)
+
+ CHA:
+ . NEO-273 (C and S-ROM address latch)
+ . NEO-CMC 90G06CF7042 (NEO-273 logic / NEO-ZMC logic / C-ROM decryption / C and S-ROM multiplexer / S-ROM bankswitching)
+ . NEO-CMC 90G06CF7050 (NEO-273 logic / NEO-ZMC logic / C-ROM decryption / M-ROM decryption / C and S-ROM multiplexer / S-ROM bankswitching)
+ . NEO-ZMC (Z80 memory controller)
+ . NEO-ZMC2 (Z80 memory controller / Tile serializer)
+ . PRO-CT0 (C-ROM serializer and multiplexer?; used on early AES-CHA boards)
+ . SNK-9201 (C-ROM serializer and multiplexer?; used on early AES-CHA boards)
+
+ PROG:
+ . 0103 (QFP144) (Only found on Metal Slug X NEO-MVS PROGEOP board; function unknown)
+ . ALTERA (EPM7128SQC100-15) (P-ROM protection chip used for KOF98 NEO-MVS PROGSF1 board and Metal Slug X NEO-MVS PROGEOP board)
+ . NEO-COMA (Microcontroller; used for MULTI PLAY MODE, boards and sets see below)
+ . NEO-PCM2 (SNK 1999) (PCM functionality / V-ROM decryption / P-ROM decoding and bankswitching)
+ . NEO-PCM2 (PLAYMORE 2002) (PCM functionality / V-ROM decryption / P-ROM decoding and bankswitching)
+ . NEO-PVC (P-ROM decryption and bankswitching) / RAM
+ . NEO-SMA (P-ROM decryption and bankswitching / RNG / Storage of 256kb game data)
+ . PCM (ADPCM bus latches / V-ROM multiplexer)
+ . PRO-CT0 (On PROG board used for P-ROM protection -> Fatal Fury 2)
+ . SNK-9201 (On PROG board used for P-ROM protection -> Fatal Fury 2)
+
+
+
+ Known PCBs:
+ ============
+
+ MVS CHA:
+ -- SNK --
+ . NEO-MVS CHA-32
+ . NEO-MVS CHA-8M
+ . NEO-MVS CHA42G
+ . NEO-MVS CHA42G-1
+ . NEO-MVS CHA 42G-2
+ . NEO-MVS CHA 42G-3
+ . NEO-MVS CHA42G-3B
+ . NEO-MVS CHA256
+ . NEO-MVS CHA256B
+ . NEO-MVS CHA512Y
+ . NEO-MVS CHAFIO (1999.6.14) - used with NEO-CMC 90G06C7042 or NEO-CMC 90G06C7050
+ . MVS CHAFIO REV1.0 (KOF-2001)
+ . NEO-MVS CHAFIO (SNK 2002) - MADE IN KOREA
+ -- SNKPLAYMORE --
+ . NEO-MVS CHAFIO (2003.7.24) - used only with NEO-CMC 90G06C7050
+
+ -- SNK development boards --
+ . NEO-MVS CHAMC2
+
+ MVS PROG:
+ -- SNK --
+ . NEO-MVS PROG-NAM
+ . NEO-MVS PROG-HERO
+ . NEO-MVS PROG-EP
+ . NEO-MVS PROG-8MB
+ . NEO-MVS PROGEP8M
+ . NEO-MVS PROG8M42
+ . NEO-MVS PROG16
+ . NEO-MVS PROG42G
+ . NEO-MVS PROG42G-COM
+ . NEO-MVS PROG42G-1
+ . NEO-MVS PROG-G2
+ . NEO-MVS PROG 4096
+ . NEO-MVS PROG 4096 B
+ . NEO-MVS PROGGSC
+ . NEO-MVS PROGSM
+ . NEO-MVS PROGSS3
+ . NEO-MVS PROGTOP
+ . NEO-MVS PROGSF1 (1998.6.17)
+ . NEO-MVS PROGSF1E (1998.6.18)
+ . NEO-MVS PROGEOP (1999.2.2)
+ . NEO-MVS PROGLBA (1999.4.12) - LBA-SUB (2000.2.24)
+ . NEO-MVS PROGBK1 (1994)
+ . NEO-MVS PROGBK1 (2001)
+ . NEO-MVS PROGBK2 (2000.3.21) - used with NEO-PCM2 (1999 SNK) or NEO-PCM2 (2002 PLAYMORE)
+ . MVS PROGBK2 REV1.0 (KOF-2001)
+ . NEO-MVS PROGBK2 (SNK 2002) - MADE IN KOREA
+ -- SNKPLAYMORE --
+ . NEO-MVS PROGBK2R (2003.8.26) - NEO-HYCS (2003.9.29)
+ . NEO-MVS PROGBK3R (2003.9.2) - NEO-HYCS (2003.9.29)
+ . NEO-MVS PROGBK3S (2003.10.1)
+ . NEO-MVS PROGBK2S (2003.10.18)
+
+ -- SNK development boards --
+ . NEO-MVS PROGMC2
+
+
+ AES CHA:
+ -- SNK --
+ . NEO-AEG CHA-32
+ . NEO-AEG CHA-8M
+ . NEO-AEG CHA42G
+ . NEO-AEG CHA42G-1
+ . NEO-AEG CHA42G-2B
+ . NEO-AEG CHA42G-3
+ . NEO-AEG CHA42G-4
+ . NEO-AEG CHA256
+ . NEO-AEG CHA256 B
+ . NEO-AEG CHA256[B]
+ . NEO-AEG CHA256BY
+ . NEO-AEG CHA256RY
+ . NEO-AEG CHA512Y
+ . NEO-AEG CHAFIO (1999.8.10) - used with NEO-CMC 90G06C7042 or NEO-CMC 90G06C7050
+ -- SNKPLAYMORE --
+ . NEO-AEG CHAFIO (2003.7.24) - used only with NEO-CMC 90G06C7050
+
+ AES PROG:
+ -- SNK --
+ . NEO-AEG PROG-NAM
+ . NEO-AEG PROG-HERO
+ . NEO-AEG PROG-4A
+ . NEO-AEG PROG-4B
+ . NEO-AEG PROG 8M42
+ . NEO-AEG PROG B
+ . NEO-AEG PROG16
+ . NEO-AEG PROG42G
+ . NEO-AEG PROG42G-COM
+ . NEO-AEG PROG42G-1
+ . NEO-AEG PROG-G2
+ . NEO-AEG PROG4096 B
+ . NEO-AEG PROGGS
+ . NEO-AEG PROGTOP2
+ . NEO-AEG PROGTOP2Y
+ . NEO-AEG PROGEOP (1999.4.2)
+ . NEO-AEG PROGLBA (1999.7.6)
+ . NEO-AEG PROGRK
+ . NEO-AEG PROGRKB
+ . NEO-AEG PROGBK1Y
+ . NEO-AEG PROGBK1F
+ -- PLAYMORE --
+ . NEO-AEG PROGBK2 (2002.4.1) - used with NEO-PCM2 (1999 SNK) or NEO-PCM2 (2002 PLAYMORE)
+ -- SNKPLAYMORE --
+ . NEO-AEG PROGBK3R (2003.8.29) - NEO-HYCS (2003.9.29)
+ . NEO-AEG PROGBK3S (2003.10.6)
+ . NEO-AEG PROGBK2S (2003.10.16)
+
+
+
+ Cartridge colours:
+ ==================
+
+ MVS cartridges were produced in different colours.
+
+ Known cartridge colours:
+ . Black
+ . Blue
+ . Green
+ . Grey
+ . Red
+ . Transparent
+ . Transparent Blue
+ . Transparent Green
+ . White
+ . Yellow
+
+ The above listed only covers SNK / PLAYMORE / SNKPLAYMORE PCBs. There also exists a
+ wide range of 'bootleg' PCBs.
+
+
+ Unofficial pcb's from NG:DEV.TEAM:
+
+ MVS CHA:
+ GIGA CHAR Board 1.0 Rev. A
+ GIGA CHAR Board 1.5 Rev. 0
+ GIGA CHAR Board 1.5 Rev. C
+
+ MVS PROG:
+ GIGA PROG Board 1.0 Rev. B
+ GIGA PROG Board 1.5 Rev. A
+ GIGA PROG Board 1.5 Rev. C
+
+
+ Unofficial pcb's from NEOBITZ:
+
+ MVS CHA:
+ CHARBITZ1 2013.12.01
+
+ MVS PROG:
+ PROGBITZ1 2013.12.01
+
+
+ Neo-Geo game PCB infos by Johnboy
+
+
+
+ MVS cart pinout:
+ ================
+
+ Kindly submitted by Apollo69 (apollo69@columbus.rr.com)
+ =================================================================
+ CTRG1 CTRG2
+ =================================================================
+ GND = 01A | 01B = GND GND = 01A | 01B = GND
+ GND = 02A | 02B = GND GND = 02A | 02B = GND
+ P0 = 03A | 03B = P1 GND = 03A | 03B = GND
+ P2 = 04A | 04B = P3 GND = 04A | 04B = GND
+ P4 = 05A | 05B = P5 D0 = 05A | 05B = A1
+ P6 = 06A | 06B = P7 D1 = 06A | 06B = A2
+ P8 = 07A | 07B = P9 D2 = 07A | 07B = A3
+ P10 = 08A | 08B = P11 D3 = 08A | 08B = A4
+ P12 = 09A | 09B = P13 D4 = 09A | 09B = A5
+ P14 = 10A | 10B = P15 D5 = 10A | 10B = A6
+ P16 = 11A | 11B = P17 D6 = 11A | 11B = A7
+ P18 = 12A | 12B = P19 D7 = 12A | 12B = A8
+ P20 = 13A | 13B = P21 D8 = 13A | 13B = A9
+ P22 = 14A | 14B = P23 D9 = 14A | 14B = A10
+ PCK1B = 15A | 15B = 24M D10 = 15A | 15B = A11
+ PCK2B = 16A | 16B = 12M D11 = 16A | 16B = A12
+ 2H1 = 17A | 17B = 8M D12 = 17A | 17B = A13
+ CA4 = 18A | 18B = RESET D13 = 18A | 18B = A14
+ CR0 = 19A | 19B = CR1 D14 = 19A | 19B = A15
+ CR2 = 20A | 20B = CR3 D15 = 20A | 20B = A16
+ CR4 = 21A | 21B = CR5 R/W = 21A | 21B = A17
+ CR6 = 22A | 22B = CR7 AS = 22A | 22B = A18
+ CR8 = 23A | 23B = CR9 ROMOEU = 23A | 23B = A19
+ CR10 = 24A | 24B = CR11 ROMOEL = 24A | 24B = 68KCLKB
+ CR12 = 25A | 25B = CR13 PORTOEU = 25A | 25B = ROMWAIT
+ CR14 = 26A | 26B = CR15 PORTOEL = 26A | 26B = PWAIT0
+ CR16 = 27A | 27B = CR17 PORTWEU = 27A | 27B = PWAIT1
+ CR18 = 28A | 28B = CR19 PORTWEL = 28A | 28B = PDTACT
+ VCC = 29A | 29B = VCC VCC = 29A | 29B = VCC
+ VCC = 30A | 30B = VCC VCC = 30A | 30B = VCC
+ VCC = 31A | 31B = VCC VCC = 31A | 31B = VCC
+ VCC = 32A | 32B = VCC VCC = 32A | 32B = VCC
+ CR20 = 33A | 33B = CR21 PORTADRS = 33A | 33B = 4MB
+ CR22 = 34A | 34B = CR23 NC = 34A | 34B = ROMOE
+ CR24 = 35A | 35B = CR25 NC = 35A | 35B = RESET
+ CR26 = 36A | 36B = CR27 NC = 36A | 36B = NC
+ CR28 = 37A | 37B = CR29 NC = 37A | 37B = NC
+ CR30 = 38A | 38B = CR31 NC = 38A | 38B = NC
+ NC = 39A | 39B = FIX00 NC = 39A | 39B = NC
+ NC = 40A | 40B = FIX01 NC = 40A | 40B = NC
+ NC = 41A | 41B = FIX02 NC = 41A | 41B = SDPAD0
+ SYSTEMB = 42A | 42B = FIX03 SYSTEMB = 42A | 42B = SDPAD1
+ SDA0 = 43A | 43B = FIX04 SDPA8 = 43A | 43B = SDPAD2
+ SDA1 = 44A | 44B = FIX05 SDPA9 = 44A | 44B = SDPAD3
+ SDA2 = 45A | 45B = FIX06 SDPA10 = 45A | 45B = SDPAD4
+ SDA3 = 46A | 46B = FIX07 SDPA11 = 46A | 46B = SDPAD5
+ SDA4 = 47A | 47B = SDRD0 SDPMPX = 47A | 47B = SDPAD6
+ SDA5 = 48A | 48B = SDRD1 SDPOE = 48A | 48B = SDPAD7
+ SDA6 = 49A | 49B = SDROM SDRA8 = 49A | 49B = SDRA00
+ SDA7 = 50A | 50B = SDMRD SDRA9 = 50A | 50B = SDRA01
+ SDA8 = 51A | 51B = SDDO SDRA20 = 51A | 51B = SDRA02
+ SDA9 = 52A | 52B = SDD1 SDRA21 = 52A | 52B = SDRA03
+ SDA10 = 53A | 53B = SDD2 SDRA22 = 53A | 53B = SDRA04
+ SDA11 = 54A | 54B = SDD3 SDRA23 = 54A | 54B = SDRA05
+ SDA12 = 55A | 55B = SDD4 SDRMPX = 55A | 55B = SDRA06
+ SDA13 = 56A | 56B = SDD5 SDROE = 56A | 56B = SDRA07
+ SDA14 = 57A | 57B = SDD6 GND = 57A | 57B = GND
+ SDA15 = 58A | 58B = SDD7 GND = 58A | 58B = GND
+ GND = 59A | 59B = GND GND = 59A | 59B = GND
+ GND = 60A | 60B = GND GND = 60A | 60B = GND
+
+ CTRG1 (CHA) = Contains gfx data ('C' - rom), text layer data ('S' - rom) and sound driver ('M' - rom)
+ CTRG2 (PROG) = Contains sample data ('V' - rom) and program code ('P' - rom)
+
+ NOTE: On CTRG2-B, The "A" lines start at "A1". If you trace this on an
+ actual cart, you will see that this is actually "A0" (A0 - A18).
+
+ These are from a very hard to read copy of the schematics, so
+ I hope that I got the pin names correct.
+
+ Apollo69 10/19/99
+
+
+*****************************************************************************
+
+ Watchdog:
+ =========
+
+ The watchdog timer will reset the system after ~0.13 seconds.
+ By cgfm's research, exactly 3,244,030 cycles (based on 24MHz clock).
+
+ Newer games force a reset using the following code (this from kof99):
+ 009CDA 203C 0003 0D40 MOVE.L #0x30D40,D0
+ 009CE0 5380 SUBQ.L #1,D0
+ 009CE2 64FC BCC.S *-0x2 [0x9CE0]
+ Note however that there is a valid code path after this loop.
+
+ The watchdog is used as a form of protection on a number of games,
+ previously this was implemented as a specific hack which locked a single
+ address of SRAM.
+
+ What actually happens is if the game doesn't find valid data in the
+ backup ram it will initialize it, then sit in a loop. The watchdog
+ should then reset the system while it is in this loop. If the watchdog
+ fails to reset the system the code will continue and set a value in
+ backup ram to indiate that the protection check has failed.
+
+
+ Mahjong Panel notes (2009-03 FP):
+ =================================
+
+ * In Service Mode menu with mahjong panel active, controls are as
+ follows:
+
+ A = select / up (for options)
+ B = down (for options)
+ C = go to previous menu
+ E = up (for menu entries)
+ F = down (for menu entries)
+ G = left (for options)
+ H = right (for options)
+
+ * These only work with Japanese BIOS, but I think it's not a bug: I
+ doubt other BIOS were programmed to be compatible with mahjong panels
+
+****************************************************************************/
+
+#include "emu.h"
+#include "cpu/m68000/m68000.h"
+#include "includes/neogeo.h"
+#include "machine/nvram.h"
+#include "machine/watchdog.h"
+#include "cpu/z80/z80.h"
+#include "sound/2610intf.h"
+#include "softlist.h"
+#include "neogeo.lh"
+
+
+#define LOG_VIDEO_SYSTEM (0)
+#define LOG_MAIN_CPU_BANKING (0)
+#define LOG_AUDIO_CPU_BANKING (0)
+
+
+/*************************************
+ *
+ * Main CPU interrupt generation
+ *
+ *************************************/
+
+
+
+// The display counter is automatically reloaded with the load register contents on scanline 224,
+// 1146 mclks from the rising edge of /HSYNC.
+#define NEOGEO_VBLANK_RELOAD_HTIM (attotime::from_ticks(1146, NEOGEO_MASTER_CLOCK))
+
+#define IRQ2CTRL_ENABLE (0x10)
+#define IRQ2CTRL_LOAD_RELATIVE (0x20)
+#define IRQ2CTRL_AUTOLOAD_VBLANK (0x40)
+#define IRQ2CTRL_AUTOLOAD_REPEAT (0x80)
+
+
+void neogeo_state::adjust_display_position_interrupt_timer()
+{
+ attotime period = attotime::from_ticks((uint64_t)m_display_counter + 1, NEOGEO_PIXEL_CLOCK);
+ if (LOG_VIDEO_SYSTEM) logerror("adjust_display_position_interrupt_timer current y: %02x current x: %02x target y: %x target x: %x\n", m_screen->vpos(), m_screen->hpos(), (m_display_counter + 1) / NEOGEO_HTOTAL, (m_display_counter + 1) % NEOGEO_HTOTAL);
+
+ m_display_position_interrupt_timer->adjust(period);
+}
+
+
+void neogeo_state::neogeo_set_display_position_interrupt_control( uint16_t data )
+{
+ m_display_position_interrupt_control = data;
+}
+
+
+void neogeo_state::neogeo_set_display_counter_msb( uint16_t data )
+{
+ m_display_counter = (m_display_counter & 0x0000ffff) | ((uint32_t)data << 16);
+
+ if (LOG_VIDEO_SYSTEM) logerror("PC %06x: set_display_counter %08x\n", m_maincpu->pc(), m_display_counter);
+}
+
+
+void neogeo_state::neogeo_set_display_counter_lsb( uint16_t data )
+{
+ m_display_counter = (m_display_counter & 0xffff0000) | data;
+
+ if (LOG_VIDEO_SYSTEM) logerror("PC %06x: set_display_counter %08x\n", m_maincpu->pc(), m_display_counter);
+
+ if (m_display_position_interrupt_control & IRQ2CTRL_LOAD_RELATIVE)
+ {
+ if (LOG_VIDEO_SYSTEM) logerror("AUTOLOAD_RELATIVE ");
+ adjust_display_position_interrupt_timer();
+ }
+}
+
+
+void neogeo_state::update_interrupts()
+{
+ m_maincpu->set_input_line(3, m_irq3_pending ? ASSERT_LINE : CLEAR_LINE);
+ m_maincpu->set_input_line(m_raster_level, m_display_position_interrupt_pending ? ASSERT_LINE : CLEAR_LINE);
+ m_maincpu->set_input_line(m_vblank_level, m_vblank_interrupt_pending ? ASSERT_LINE : CLEAR_LINE);
+}
+
+
+void neogeo_state::neogeo_acknowledge_interrupt( uint16_t data )
+{
+ if (data & 0x01)
+ m_irq3_pending = 0;
+ if (data & 0x02)
+ m_display_position_interrupt_pending = 0;
+ if (data & 0x04)
+ m_vblank_interrupt_pending = 0;
+
+ update_interrupts();
+}
+
+
+TIMER_CALLBACK_MEMBER(neogeo_state::display_position_interrupt_callback)
+{
+ if (LOG_VIDEO_SYSTEM) logerror("--- Scanline @ %d,%d\n", m_screen->vpos(), m_screen->hpos());
+
+ if (m_display_position_interrupt_control & IRQ2CTRL_ENABLE)
+ {
+ if (LOG_VIDEO_SYSTEM) logerror("*** Scanline interrupt (IRQ2) *** y: %02x x: %02x\n", m_screen->vpos(), m_screen->hpos());
+ m_display_position_interrupt_pending = 1;
+
+ update_interrupts();
+ }
+
+ if (m_display_position_interrupt_control & IRQ2CTRL_AUTOLOAD_REPEAT)
+ {
+ if (LOG_VIDEO_SYSTEM) logerror("AUTOLOAD_REPEAT ");
+ adjust_display_position_interrupt_timer();
+ }
+}
+
+
+TIMER_CALLBACK_MEMBER(neogeo_state::display_position_vblank_callback)
+{
+ if (m_display_position_interrupt_control & IRQ2CTRL_AUTOLOAD_VBLANK)
+ {
+ if (LOG_VIDEO_SYSTEM) logerror("AUTOLOAD_VBLANK ");
+ adjust_display_position_interrupt_timer();
+ }
+
+ /* set timer for next screen */
+ m_display_position_vblank_timer->adjust(m_screen->time_until_pos(NEOGEO_VBSTART) + NEOGEO_VBLANK_RELOAD_HTIM);
+}
+
+
+TIMER_CALLBACK_MEMBER(neogeo_state::vblank_interrupt_callback)
+{
+ if (LOG_VIDEO_SYSTEM) logerror("+++ VBLANK @ %d,%d\n", m_screen->vpos(), m_screen->hpos());
+
+ m_vblank_interrupt_pending = 1;
+ update_interrupts();
+
+ /* set timer for next screen */
+ m_vblank_interrupt_timer->adjust(m_screen->time_until_pos(NEOGEO_VBSTART) + NEOGEO_VBLANK_IRQ_HTIM);
+}
+
+
+void neogeo_state::create_interrupt_timers()
+{
+ m_display_position_interrupt_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(neogeo_state::display_position_interrupt_callback),this));
+ m_display_position_vblank_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(neogeo_state::display_position_vblank_callback),this));
+ m_vblank_interrupt_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(neogeo_state::vblank_interrupt_callback),this));
+}
+
+
+void neogeo_state::start_interrupt_timers()
+{
+ m_vblank_interrupt_timer->adjust(m_screen->time_until_pos(NEOGEO_VBSTART) + NEOGEO_VBLANK_IRQ_HTIM);
+ m_display_position_vblank_timer->adjust(m_screen->time_until_pos(NEOGEO_VBSTART) + NEOGEO_VBLANK_RELOAD_HTIM);
+}
+
+
+
+/*************************************
+ *
+ * Audio CPU interrupt generation
+ *
+ *************************************/
+
+void neogeo_state::audio_cpu_check_nmi()
+{
+ m_audiocpu->set_input_line(INPUT_LINE_NMI, (m_audio_cpu_nmi_enabled && m_audio_cpu_nmi_pending) ? ASSERT_LINE : CLEAR_LINE);
+}
+
+WRITE8_MEMBER(neogeo_state::audio_cpu_enable_nmi_w)
+{
+ // out ($08) enables the nmi, out ($18) disables it
+ m_audio_cpu_nmi_enabled = !(offset & 0x10);
+ audio_cpu_check_nmi();
+}
+
+
+
+/*************************************
+ *
+ * Input ports / Controllers
+ *
+ *************************************/
+
+READ16_MEMBER(neogeo_state::in0_r)
+{
+ return ((m_edge->in0_r(space, offset) & m_ctrl1->ctrl_r(space, offset)) << 8) | m_dsw->read();
+}
+
+READ16_MEMBER(neogeo_state::in1_r)
+{
+ return ((m_edge->in1_r(space, offset) & m_ctrl2->ctrl_r(space, offset)) << 8) | 0xff;
+}
+
+CUSTOM_INPUT_MEMBER(neogeo_state::kizuna4p_start_r)
+{
+ return (m_edge->read_start_sel() & 0x05) | ~0x05;
+}
+
+WRITE8_MEMBER(neogeo_state::io_control_w)
+{
+ switch (offset)
+ {
+ case 0x00:
+ if (m_ctrl1) m_ctrl1->write_ctrlsel(data);
+ if (m_ctrl2) m_ctrl2->write_ctrlsel(data);
+ if (m_edge) m_edge->write_ctrlsel(data);
+ break;
+
+ case 0x10:
+ break;
+
+ case 0x18:
+ if (m_type == NEOGEO_MVS)
+ set_output_latch(data);
+ break;
+
+ case 0x20:
+ if (m_type == NEOGEO_MVS)
+ set_output_data(data);
+ break;
+
+ case 0x28:
+ if (m_type == NEOGEO_MVS)
+ {
+ m_upd4990a->data_in_w(data >> 0 & 1);
+ m_upd4990a->clk_w(data >> 1 & 1);
+ m_upd4990a->stb_w(data >> 2 & 1);
+ }
+ break;
+
+// case 0x30: break; // coin counters
+// case 0x31: break; // coin counters
+// case 0x32: break; // coin lockout
+// case 0x33: break; // coin lockout
+
+ default:
+ logerror("PC: %x Unmapped I/O control write. Offset: %x Data: %x\n", space.device().safe_pc(), offset, data);
+ break;
+ }
+}
+
+
+/*************************************
+ *
+ * Unmapped memory access
+ *
+ *************************************/
+
+READ16_MEMBER(neogeo_state::neogeo_unmapped_r)
+{
+ uint16_t ret;
+
+ /* unmapped memory returns the last word on the data bus, which is almost always the opcode
+ of the next instruction due to prefetch */
+
+ /* prevent recursion */
+ if (m_recurse)
+ ret = 0xffff;
+ else
+ {
+ m_recurse = true;
+ ret = space.read_word(space.device().safe_pc());
+ m_recurse = false;
+ }
+ return ret;
+}
+
+
+
+/*************************************
+ *
+ * NVRAM (Save RAM)
+ *
+ *************************************/
+
+void neogeo_state::set_save_ram_unlock( uint8_t data )
+{
+ m_save_ram_unlocked = data;
+}
+
+
+WRITE16_MEMBER(neogeo_state::save_ram_w)
+{
+ if (m_save_ram_unlocked)
+ COMBINE_DATA(&m_save_ram[offset]);
+}
+
+
+
+/*************************************
+ *
+ * Memory card
+ *
+ *************************************/
+
+CUSTOM_INPUT_MEMBER(neogeo_state::get_memcard_status)
+{
+ // D0 and D1 are memcard 1 and 2 presence indicators, D2 indicates memcard
+ // write protect status (we are always write enabled)
+ return (m_memcard->present() == -1) ? 0x07 : 0x00;
+}
+
+
+READ16_MEMBER(neogeo_state::memcard_r)
+{
+ m_maincpu->eat_cycles(2); // insert waitstate
+
+ uint16_t ret;
+
+ if (m_memcard->present() != -1)
+ ret = m_memcard->read(space, offset) | 0xff00;
+ else
+ ret = 0xffff;
+
+ return ret;
+}
+
+
+WRITE16_MEMBER(neogeo_state::memcard_w)
+{
+ m_maincpu->eat_cycles(2); // insert waitstate
+
+ if (ACCESSING_BITS_0_7)
+ {
+ if (m_memcard->present() != -1)
+ m_memcard->write(space, offset, data);
+ }
+}
+
+/*************************************
+ *
+ * Inter-CPU communications
+ *
+ *************************************/
+
+WRITE8_MEMBER(neogeo_state::audio_command_w)
+{
+ m_soundlatch->write(space, 0, data);
+
+ m_audio_cpu_nmi_pending = true;
+ audio_cpu_check_nmi();
+
+ /* boost the interleave to let the audio CPU read the command */
+ machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(50));
+}
+
+
+READ8_MEMBER(neogeo_state::audio_command_r)
+{
+ uint8_t ret = m_soundlatch->read(space, 0);
+
+ m_audio_cpu_nmi_pending = false;
+ audio_cpu_check_nmi();
+
+ return ret;
+}
+
+
+CUSTOM_INPUT_MEMBER(neogeo_state::get_audio_result)
+{
+ uint8_t ret = m_soundlatch2->read(m_audiocpu->space(AS_PROGRAM), 0);
+
+ return ret;
+}
+
+
+
+
+void neogeo_state::neogeo_main_cpu_banking_init()
+{
+ m_use_cart_vectors = 0;
+
+ if (m_type != NEOGEO_CD)
+ {
+ m_banked_cart->init_banks();
+ }
+}
+
+
+/*************************************
+ *
+ * Audio CPU banking
+ *
+ *************************************/
+
+READ8_MEMBER(neogeo_state::audio_cpu_bank_select_r)
+{
+ m_bank_audio_cart[offset & 3]->set_entry(offset >> 8);
+
+ return 0;
+}
+
+
+void neogeo_state::neogeo_audio_cpu_banking_init(int set_entry)
+{
+ if (m_type == NEOGEO_CD) return;
+
+ int region;
+ int bank;
+ uint8_t *rgn;
+ uint32_t address_mask;
+
+ rgn = memregion("audiocpu")->base();
+
+ /* audio bios/cartridge selection */
+ m_bank_audio_main->configure_entry(1, memregion("audiocpu")->base());
+ if (memregion("audiobios"))
+ m_bank_audio_main->configure_entry(0, memregion("audiobios")->base());
+ else /* on hardware with no SM1 ROM, the cart ROM is always enabled */
+ m_bank_audio_main->configure_entry(0, memregion("audiocpu")->base());
+
+ m_bank_audio_main->set_entry(m_use_cart_audio);
+
+ /* audio banking */
+ m_bank_audio_cart[0] = membank("audio_f000");
+ m_bank_audio_cart[1] = membank("audio_e000");
+ m_bank_audio_cart[2] = membank("audio_c000");
+ m_bank_audio_cart[3] = membank("audio_8000");
+
+ address_mask = (memregion("audiocpu")->bytes() - 0x10000 - 1) & 0x3ffff;
+
+
+ for (region = 0; region < 4; region++)
+ {
+ for (bank = 0xff; bank >= 0; bank--)
+ {
+ uint32_t bank_address = 0x10000 + ((bank << (11 + region)) & address_mask);
+ m_bank_audio_cart[region]->configure_entry(bank, &rgn[bank_address]);
+ }
+ }
+
+ // set initial audio banks - THIS IS A HACK
+ // Z80 banking is handled by the NEO-ZMC chip in the cartridge
+ // (in later cartridges, by multifunction banking/protection chips that implement the same bank scheme)
+ // On the real chip, initial banks are all 0.
+ // However, early cartridges with less than 64KB of Z80 code and data don't have ROM banking at all.
+ // These initial bank settings are required so non-banked games will work until we identify them
+ // and use a different Z80 address map for them.
+ m_bank_audio_cart[0]->set_entry(0x1e);
+ m_bank_audio_cart[1]->set_entry(0x0e);
+ m_bank_audio_cart[2]->set_entry(0x06);
+ m_bank_audio_cart[3]->set_entry(0x02);
+}
+
+
+
+/*************************************
+ *
+ * System control register
+ *
+ *************************************/
+
+WRITE8_MEMBER(neogeo_state::system_control_w)
+{
+ uint8_t bit = (offset >> 3) & 0x01;
+
+ switch (offset & 0x07)
+ {
+ default:
+ case 0x00:
+ neogeo_set_screen_shadow(bit);
+ break;
+
+ case 0x01:
+ if (m_type == NEOGEO_CD)
+ printf("NeoCD: write to regular vector change address? %d\n", bit); // what IS going on with "neocdz doubledr" and why do games write here if it's hooked up to nothing?
+ else
+ m_use_cart_vectors = bit;
+ break;
+
+ case 0x05:
+ if (m_type == NEOGEO_MVS)
+ {
+ m_use_cart_audio = bit;
+ m_sprgen->neogeo_set_fixed_layer_source(bit);
+ m_bank_audio_main->set_entry(m_use_cart_audio);
+ }
+ break;
+
+ case 0x06:
+ if (m_type == NEOGEO_MVS)
+ set_save_ram_unlock(bit);
+ break;
+
+ case 0x07:
+ neogeo_set_palette_bank(bit);
+ break;
+
+ case 0x02: // memory card 1: write enable/disable
+ case 0x03: // memory card 2: write disable/enable
+ case 0x04: // memory card: register select enable/set to normal (what does it mean?)
+ logerror("PC: %x Unmapped system control write. Offset: %x Data: %x\n", space.device().safe_pc(), offset & 0x07, bit);
+ break;
+ }
+
+ if (LOG_VIDEO_SYSTEM && ((offset & 0x07) != 0x06)) logerror("PC: %x System control write. Offset: %x Data: %x\n", space.device().safe_pc(), offset & 0x07, bit);
+}
+
+
+
+/*************************************
+ *
+ * LEDs
+ *
+ *************************************/
+
+void neogeo_state::set_outputs( )
+{
+ static const uint8_t led_map[0x10] =
+ { 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x58,0x4c,0x62,0x69,0x78,0x00 };
+
+ /* EL */
+ output().set_digit_value(0, led_map[m_el_value]);
+
+ /* LED1 */
+ output().set_digit_value(1, led_map[m_led1_value >> 4]);
+ output().set_digit_value(2, led_map[m_led1_value & 0x0f]);
+
+ /* LED2 */
+ output().set_digit_value(3, led_map[m_led2_value >> 4]);
+ output().set_digit_value(4, led_map[m_led2_value & 0x0f]);
+}
+
+
+void neogeo_state::set_output_latch( uint8_t data )
+{
+ /* looks like the LEDs are set on the
+ falling edge */
+ uint8_t falling_bits = m_output_latch & ~data;
+
+ if (falling_bits & 0x08)
+ m_el_value = 16 - (m_output_data & 0x0f);
+
+ if (falling_bits & 0x10)
+ m_led1_value = ~m_output_data;
+
+ if (falling_bits & 0x20)
+ m_led2_value = ~m_output_data;
+
+ if (falling_bits & 0xc7)
+ logerror("%s Unmaped LED write. Data: %x\n", machine().describe_context(), falling_bits);
+
+ m_output_latch = data;
+
+ set_outputs();
+}
+
+
+void neogeo_state::set_output_data( uint8_t data )
+{
+ m_output_data = data;
+}
+
+
+
+/*************************************
+ *
+ * Machine initialization
+ *
+ *************************************/
+
+DRIVER_INIT_MEMBER(neogeo_state,neogeo)
+{
+ m_banked_cart->install_banks(machine(), m_maincpu, m_region_maincpu->base(), m_region_maincpu->bytes());
+
+ m_sprgen->m_fixed_layer_bank_type = 0;
+
+ // install controllers
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x300000, 0x300001, 0, 0x01ff7e, 0, read16_delegate(FUNC(neogeo_state::in0_r), this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x340000, 0x340001, 0, 0x01fffe, 0, read16_delegate(FUNC(neogeo_state::in1_r), this));
+}
+
+
+void neogeo_state::neogeo_postload()
+{
+ m_bank_audio_main->set_entry(m_use_cart_audio);
+
+ if (m_type == NEOGEO_MVS) set_outputs();
+}
+
+
+void neogeo_state::machine_start()
+{
+ m_type = NEOGEO_MVS;
+
+
+ /* set the initial main CPU bank */
+ neogeo_main_cpu_banking_init();
+
+ /* set the initial audio CPU ROM banks */
+ neogeo_audio_cpu_banking_init(1);
+
+ create_interrupt_timers();
+
+ /* irq levels for MVS / AES */
+ m_vblank_level = 1;
+ m_raster_level = 2;
+
+ /* start with an IRQ3 - but NOT on a reset */
+ m_irq3_pending = 1;
+
+ // enable rtc and serial mode
+ m_upd4990a->cs_w(1);
+ m_upd4990a->oe_w(1);
+ m_upd4990a->c0_w(1);
+ m_upd4990a->c1_w(1);
+ m_upd4990a->c2_w(1);
+
+ /* register state save */
+ save_item(NAME(m_display_position_interrupt_control));
+ save_item(NAME(m_display_counter));
+ save_item(NAME(m_vblank_interrupt_pending));
+ save_item(NAME(m_display_position_interrupt_pending));
+ save_item(NAME(m_irq3_pending));
+ save_item(NAME(m_audio_cpu_nmi_enabled));
+ save_item(NAME(m_audio_cpu_nmi_pending));
+ save_item(NAME(m_save_ram_unlocked));
+ save_item(NAME(m_output_data));
+ save_item(NAME(m_output_latch));
+ save_item(NAME(m_el_value));
+ save_item(NAME(m_led1_value));
+ save_item(NAME(m_led2_value));
+
+ save_item(NAME(m_use_cart_vectors));
+ save_item(NAME(m_use_cart_audio));
+
+ machine().save().register_postload(save_prepost_delegate(FUNC(neogeo_state::neogeo_postload), this));
+
+ m_sprgen->set_screen(m_screen);
+ m_sprgen->set_sprite_region(m_region_sprites->base(), m_region_sprites->bytes());
+ m_sprgen->set_fixed_regions(m_region_fixed->base(), m_region_fixed->bytes(), m_region_fixedbios);
+
+}
+
+
+
+/*************************************
+ *
+ * Machine reset
+ *
+ *************************************/
+
+void neogeo_state::machine_reset()
+{
+ offs_t offs;
+ address_space &space = m_maincpu->space(AS_PROGRAM);
+
+ /* reset system control registers */
+ for (offs = 0; offs < 8; offs++)
+ system_control_w(space, offs, 0);
+
+ // disable audiocpu nmi
+ m_audio_cpu_nmi_enabled = false;
+ m_audio_cpu_nmi_pending = false;
+ audio_cpu_check_nmi();
+
+ m_maincpu->reset();
+
+ start_interrupt_timers();
+
+ /* trigger the IRQ3 that was set by MACHINE_START */
+ update_interrupts();
+
+ m_recurse = false;
+}
+
+READ16_MEMBER(neogeo_state::banked_vectors_r)
+{
+ if (!m_use_cart_vectors)
+ {
+ uint16_t* bios = (uint16_t*)memregion("mainbios")->base();
+ return bios[offset];
+ }
+ else
+ {
+ uint16_t* game = (uint16_t*)m_region_maincpu->base();
+ return game[offset];
+ }
+
+}
+
+READ16_MEMBER(neogeo_state::neogeo_slot_rom_low_r)
+{
+ return 0;
+}
+
+READ16_MEMBER(neogeo_state::neogeo_slot_rom_low_bectors_r)
+{
+ if (!m_use_cart_vectors)
+ {
+ uint16_t* bios = (uint16_t*)memregion("mainbios")->base();
+ return bios[offset];
+ }
+ else
+ {
+ return 0;
+ }
+
+}
+
+
+/*************************************
+ *
+ * Main CPU memory handlers
+ *
+ *************************************/
+
+ADDRESS_MAP_START( neogeo_main_map, AS_PROGRAM, 16, neogeo_state )
+
+ AM_RANGE(0x100000, 0x10ffff) AM_MIRROR(0x0f0000) AM_RAM
+ /* some games have protection devices in the 0x200000 region, it appears to map to cart space, not surprising, the ROM is read here too */
+ AM_RANGE(0x300080, 0x300081) AM_MIRROR(0x01ff7e) AM_READ_PORT("TEST")
+ AM_RANGE(0x300000, 0x300001) AM_MIRROR(0x01fffe) AM_DEVWRITE8("watchdog", watchdog_timer_device, reset_w, 0x00ff)
+ AM_RANGE(0x320000, 0x320001) AM_MIRROR(0x01fffe) AM_READ_PORT("AUDIO/COIN") AM_WRITE8(audio_command_w, 0xff00)
+ AM_RANGE(0x360000, 0x37ffff) AM_READ(neogeo_unmapped_r)
+ AM_RANGE(0x380000, 0x380001) AM_MIRROR(0x01fffe) AM_READ_PORT("SYSTEM")
+ AM_RANGE(0x380000, 0x38007f) AM_MIRROR(0x01ff80) AM_WRITE8(io_control_w, 0x00ff)
+ AM_RANGE(0x3a0000, 0x3a001f) AM_MIRROR(0x01ffe0) AM_READ(neogeo_unmapped_r) AM_WRITE8(system_control_w, 0x00ff)
+ AM_RANGE(0x3c0000, 0x3c0007) AM_MIRROR(0x01fff8) AM_READ(neogeo_video_register_r)
+ AM_RANGE(0x3c0000, 0x3c000f) AM_MIRROR(0x01fff0) AM_WRITE(neogeo_video_register_w)
+ AM_RANGE(0x3e0000, 0x3fffff) AM_READ(neogeo_unmapped_r)
+ AM_RANGE(0x400000, 0x401fff) AM_MIRROR(0x3fe000) AM_READWRITE(neogeo_paletteram_r, neogeo_paletteram_w)
+ AM_RANGE(0x800000, 0x800fff) AM_READWRITE(memcard_r, memcard_w)
+ AM_RANGE(0xc00000, 0xc1ffff) AM_MIRROR(0x0e0000) AM_ROM AM_REGION("mainbios", 0)
+ AM_RANGE(0xd00000, 0xd0ffff) AM_MIRROR(0x0f0000) AM_RAM_WRITE(save_ram_w) AM_SHARE("saveram")
+ AM_RANGE(0xe00000, 0xffffff) AM_READ(neogeo_unmapped_r)
+ADDRESS_MAP_END
+
+
+static ADDRESS_MAP_START( main_map_slot, AS_PROGRAM, 16, neogeo_state )
+ AM_RANGE(0x000000, 0x00007f) AM_READ(neogeo_slot_rom_low_bectors_r)
+ AM_RANGE(0x000080, 0x0fffff) AM_READ(neogeo_slot_rom_low_r)
+ AM_RANGE(0x200000, 0x2fffff) AM_ROMBANK("cartridge")
+// AM_RANGE(0x2ffff0, 0x2fffff) AM_WRITE(main_cpu_bank_select_w)
+ AM_IMPORT_FROM( neogeo_main_map )
+ADDRESS_MAP_END
+
+/*************************************
+ *
+ * Audio CPU memory handlers
+ *
+ *************************************/
+
+static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8, neogeo_state )
+ AM_RANGE(0x0000, 0x7fff) AM_ROMBANK("audio_main")
+ AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("audio_8000")
+ AM_RANGE(0xc000, 0xdfff) AM_ROMBANK("audio_c000")
+ AM_RANGE(0xe000, 0xefff) AM_ROMBANK("audio_e000")
+ AM_RANGE(0xf000, 0xf7ff) AM_ROMBANK("audio_f000")
+ AM_RANGE(0xf800, 0xffff) AM_RAM
+ADDRESS_MAP_END
+
+
+
+/*************************************
+ *
+ * Audio CPU port handlers
+ *
+ *************************************/
+
+static ADDRESS_MAP_START( audio_io_map, AS_IO, 8, neogeo_state )
+ AM_RANGE(0x00, 0x00) AM_MIRROR(0xff00) AM_READ(audio_command_r) AM_DEVWRITE("soundlatch", generic_latch_8_device, clear_w)
+ AM_RANGE(0x04, 0x07) AM_MIRROR(0xff00) AM_DEVREADWRITE("ymsnd", ym2610_device, read, write)
+ AM_RANGE(0x08, 0x08) AM_MIRROR(0xff00) AM_SELECT(0x0010) AM_WRITE(audio_cpu_enable_nmi_w)
+ AM_RANGE(0x08, 0x0b) AM_MIRROR(0x00f0) AM_SELECT(0xff00) AM_READ(audio_cpu_bank_select_r)
+ AM_RANGE(0x0c, 0x0c) AM_MIRROR(0xff00) AM_DEVWRITE("soundlatch2", generic_latch_8_device, write)
+ADDRESS_MAP_END
+
+
+
+/*************************************
+ *
+ * Standard Neo-Geo DIPs and
+ * input port definition
+ *
+ *************************************/
+
+INPUT_PORTS_START( neogeo )
+ PORT_START("DSW")
+ PORT_DIPNAME( 0x01, 0x01, "Setting Mode" ) PORT_DIPLOCATION("SW:1")
+ PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x02, 0x02, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW:2")
+ PORT_DIPSETTING( 0x02, DEF_STR( Normal ) )
+ PORT_DIPSETTING( 0x00, "VS Mode" )
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Controller ) ) PORT_DIPLOCATION("SW:3")
+ PORT_DIPSETTING( 0x04, DEF_STR( Joystick ) )
+ PORT_DIPSETTING( 0x00, "Mahjong Panel" )
+ PORT_DIPNAME( 0x18, 0x18, "COMM Setting (Cabinet No.)" ) PORT_DIPLOCATION("SW:4,5")
+ PORT_DIPSETTING( 0x18, "1" )
+ PORT_DIPSETTING( 0x10, "2" )
+ PORT_DIPSETTING( 0x08, "3" )
+ PORT_DIPSETTING( 0x00, "4" )
+ PORT_DIPNAME( 0x20, 0x20, "COMM Setting (Link Enable)" ) PORT_DIPLOCATION("SW:6")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x40, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW:7")
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x80, 0x80, "Freeze" ) PORT_DIPLOCATION("SW:8")
+ PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+
+ PORT_START("SYSTEM")
+ PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_START1 )
+ PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Next Game") PORT_CODE(KEYCODE_3)
+ PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_START2 )
+ PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Previous Game") PORT_CODE(KEYCODE_4)
+ PORT_BIT( 0x7000, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(DEVICE_SELF, neogeo_state, get_memcard_status, nullptr)
+ PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_SPECIAL ) /* Hardware type (AES=0, MVS=1). Some games check this and show a piracy warning screen if the hardware and BIOS don't match */
+
+ PORT_START("AUDIO/COIN")
+ PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 )
+ PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 )
+ PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_SERVICE1 )
+ PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_COIN3 ) /* What is this? "us-e" BIOS uses it as a coin input; Universe BIOS uses it to detect MVS or AES hardware */
+ PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_COIN4 ) /* What is this? "us-e" BIOS uses it as a coin input; Universe BIOS uses it to detect MVS or AES hardware */
+ PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_SPECIAL ) /* what is this? When ACTIVE_HIGH + IN4 bit 6 ACTIVE_LOW MVS-4 slot is detected */
+ PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("upd4990a", upd1990a_device, tp_r)
+ PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("upd4990a", upd1990a_device, data_out_r)
+ PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(DEVICE_SELF, neogeo_state,get_audio_result, nullptr)
+
+ PORT_START("TEST")
+ PORT_BIT( 0x003f, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* what is this? If ACTIVE_LOW, MVS-6 slot detected, when ACTIVE_HIGH MVS-1 slot (AES) detected */
+ PORT_SERVICE_NO_TOGGLE( 0x0080, IP_ACTIVE_LOW )
+ PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED )
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( neogeo_6slot )
+ PORT_INCLUDE( neogeo )
+
+ PORT_MODIFY("TEST")
+ PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_SPECIAL )
+INPUT_PORTS_END
+
+
+
+
+DRIVER_INIT_MEMBER(neogeo_state,mvs)
+{
+ DRIVER_INIT_CALL(neogeo);
+}
+
+
+
+
+/*************************************
+ *
+ * Machine driver
+ *
+ *************************************/
+
+MACHINE_CONFIG_START( neogeo_base )
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", M68000, NEOGEO_MAIN_CPU_CLOCK)
+ MCFG_CPU_PROGRAM_MAP(neogeo_main_map)
+
+ MCFG_CPU_ADD("audiocpu", Z80, NEOGEO_AUDIO_CPU_CLOCK)
+ MCFG_CPU_PROGRAM_MAP(audio_map)
+ MCFG_CPU_IO_MAP(audio_io_map)
+
+ /* video hardware */
+ MCFG_DEFAULT_LAYOUT(layout_neogeo)
+
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_RAW_PARAMS(NEOGEO_PIXEL_CLOCK, NEOGEO_HTOTAL, NEOGEO_HBEND, NEOGEO_HBSTART, NEOGEO_VTOTAL, NEOGEO_VBEND, NEOGEO_VBSTART)
+ MCFG_SCREEN_UPDATE_DRIVER(neogeo_state, screen_update_neogeo)
+
+ /* 4096 colors * two banks * normal and shadow */
+ MCFG_PALETTE_ADD_INIT_BLACK("palette", 4096*2*2)
+
+ MCFG_DEVICE_ADD("spritegen", NEOGEO_SPRITE, 0)
+
+ /* audio hardware */
+ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
+
+ MCFG_GENERIC_LATCH_8_ADD("soundlatch")
+ MCFG_GENERIC_LATCH_8_ADD("soundlatch2")
+
+ MCFG_SOUND_ADD("ymsnd", YM2610, NEOGEO_YM2610_CLOCK)
+ MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 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
+
+
+MACHINE_CONFIG_DERIVED( neogeo_arcade, neogeo_base )
+ MCFG_WATCHDOG_ADD("watchdog")
+ MCFG_WATCHDOG_TIME_INIT(attotime::from_ticks(3244030, NEOGEO_MASTER_CLOCK))
+ MCFG_UPD4990A_ADD("upd4990a", XTAL_32_768kHz, NOOP, NOOP)
+ MCFG_NVRAM_ADD_0FILL("saveram")
+ MCFG_NEOGEO_MEMCARD_ADD("memcard")
+MACHINE_CONFIG_END
+
+
+static MACHINE_CONFIG_DERIVED( mvs, neogeo_arcade )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(main_map_slot)
+
+ MCFG_NEOGEO_CONTROL_EDGE_CONNECTOR_ADD("edge", neogeo_arc_edge, "joy", false)
+
+ MCFG_NEOGEO_CONTROL_PORT_ADD("ctrl1", neogeo_arc_pin15, "", false)
+ MCFG_NEOGEO_CONTROL_PORT_ADD("ctrl2", neogeo_arc_pin15, "", false)
+MACHINE_CONFIG_END
+
+
+
+/* dummy entry for the dummy bios driver */
+ROM_START( neogeo )
+ NEOGEO_BIOS
+
+ ROM_REGION( 0x100000, "maincpu", ROMREGION_ERASEFF )
+
+ ROM_REGION( 0x20000, "audiobios", 0 )
+ ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) )
+
+ ROM_REGION( 0x50000, "audiocpu", 0 )
+ ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) )
+
+ ROM_Y_ZOOM
+
+ ROM_REGION( 0x20000, "fixed", ROMREGION_ERASEFF )
+
+ ROM_REGION( 0x20000, "fixedbios", 0 )
+ ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) )
+
+ ROM_REGION( 0x10000, "ymsnd", ROMREGION_ERASEFF )
+
+ ROM_REGION( 0x100000, "sprites", ROMREGION_ERASEFF )
+ROM_END
+
+
+/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT */
+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/hbmame/drivers/neogeo0.cpp b/src/hbmame/drivers/neogeo0.cpp
new file mode 100644
index 00000000000..0b3a7f1dcb0
--- /dev/null
+++ b/src/hbmame/drivers/neogeo0.cpp
@@ -0,0 +1,159 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+
+
+/******************************************************************************/
+
+#include "machine/watchdog.h"
+
+// set up a hbmame-specific derived class, instead of hacking into src/mame/includes/neogeo.h
+class neogeo_hbmame : public neogeo_noslot_state
+{
+public:
+ neogeo_hbmame(const machine_config &mconfig, device_type type, const char *tag)
+ : neogeo_noslot_state(mconfig, type, tag)
+ , m_kog_prot(*this, "kog_prot")
+ {}
+
+
+ DECLARE_DRIVER_INIT(cmc42sfix);
+ DECLARE_DRIVER_INIT(cmc50sfix);
+ DECLARE_DRIVER_INIT(cthd2k3a);
+ DECLARE_DRIVER_INIT(dbdrsp);
+ DECLARE_DRIVER_INIT(fr2ch);
+ DECLARE_DRIVER_INIT(garoud);
+ DECLARE_DRIVER_INIT(jckeygpd);
+ DECLARE_DRIVER_INIT(kof95sp);
+ DECLARE_DRIVER_INIT(kof96ep);
+ DECLARE_DRIVER_INIT(kof97pla);
+ DECLARE_DRIVER_INIT(kof99bh);
+ DECLARE_DRIVER_INIT(kof99d);
+ DECLARE_DRIVER_INIT(kof2000d);
+ DECLARE_DRIVER_INIT(kof2000h);
+ DECLARE_DRIVER_INIT(kof2000m);
+ DECLARE_DRIVER_INIT(kof2kbsd);
+ DECLARE_DRIVER_INIT(kof2knd);
+ DECLARE_DRIVER_INIT(kof2kxxx);
+ DECLARE_DRIVER_INIT(kof2001d);
+ DECLARE_DRIVER_INIT(kof2001m);
+ DECLARE_DRIVER_INIT(kf2k1pls);
+ DECLARE_DRIVER_INIT(kf2k1pa);
+ DECLARE_DRIVER_INIT(kof2002d);
+ DECLARE_DRIVER_INIT(kof2002m);
+ DECLARE_DRIVER_INIT(kof2k2bd);
+ DECLARE_DRIVER_INIT(kof2k2dbh);
+ DECLARE_DRIVER_INIT(kof2k2h);
+ DECLARE_DRIVER_INIT(kof2k2lb);
+ DECLARE_DRIVER_INIT(kof2k2ps2a);
+ DECLARE_DRIVER_INIT(kof2k2pl17);
+ DECLARE_DRIVER_INIT(kof2003b);
+ DECLARE_DRIVER_INIT(kof2003hb);
+ DECLARE_DRIVER_INIT(kof2k3hd);
+ DECLARE_DRIVER_INIT(kof2k3pcd);
+ DECLARE_DRIVER_INIT(kof10thu);
+ DECLARE_DRIVER_INIT(kogd);
+ DECLARE_DRIVER_INIT(lbsp);
+ DECLARE_DRIVER_INIT(matrima);
+ DECLARE_DRIVER_INIT(matrimd);
+ DECLARE_DRIVER_INIT(matrmehc);
+ DECLARE_DRIVER_INIT(mslug3d);
+ DECLARE_DRIVER_INIT(mslug3fr);
+ DECLARE_DRIVER_INIT(mslug3n);
+ DECLARE_DRIVER_INIT(mslug4d);
+ DECLARE_DRIVER_INIT(mslug4dh);
+ DECLARE_DRIVER_INIT(mslug4it);
+ DECLARE_DRIVER_INIT(mslug4m);
+ DECLARE_DRIVER_INIT(mslug5b);
+ DECLARE_DRIVER_INIT(mslug5d);
+ DECLARE_DRIVER_INIT(mslug5hd);
+ DECLARE_DRIVER_INIT(mslug5nd);
+ DECLARE_DRIVER_INIT(ms5pcbd);
+ DECLARE_DRIVER_INIT(mslug5d1);
+ DECLARE_DRIVER_INIT(mslug5fr1);
+ DECLARE_DRIVER_INIT(ms5boot);
+ DECLARE_DRIVER_INIT(pnyaad);
+ DECLARE_DRIVER_INIT(rotdb);
+ DECLARE_DRIVER_INIT(rotdd);
+ DECLARE_DRIVER_INIT(rotdnd);
+ DECLARE_DRIVER_INIT(sam5hb);
+ DECLARE_DRIVER_INIT(sam5sphb);
+ DECLARE_DRIVER_INIT(sengo3d);
+ DECLARE_DRIVER_INIT(shockt2w);
+ DECLARE_DRIVER_INIT(svchb);
+ DECLARE_DRIVER_INIT(svcpcd);
+private:
+ optional_device<kog_prot_device> m_kog_prot;
+};
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, cmc42sfix )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, cmc50sfix )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 2;
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+
+
+static MACHINE_CONFIG_DERIVED( no_watchdog, neogeo_noslot )
+ MCFG_WATCHDOG_MODIFY("watchdog")
+ MCFG_WATCHDOG_TIME_INIT(attotime::from_seconds(0.0))
+MACHINE_CONFIG_END
+
+
+// used by samsho2sp, doubledrsp
+ADDRESS_MAP_START( samsho2sp_map, AS_PROGRAM, 16, neogeo_state )
+ AM_RANGE(0x900000, 0x91ffff) AM_ROM AM_REGION("maincpu", 0x200000) // extra rom
+ AM_IMPORT_FROM( main_map_noslot )
+ADDRESS_MAP_END
+
+static MACHINE_CONFIG_DERIVED( samsho2sp, neogeo_noslot )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(samsho2sp_map)
+MACHINE_CONFIG_END
+
+// used by lbsp
+ADDRESS_MAP_START( lbsp_map, AS_PROGRAM, 16, neogeo_state )
+ AM_RANGE(0x900000, 0x91ffff) AM_ROM AM_REGION("maincpu", 0x700000) // extra rom
+ AM_IMPORT_FROM( main_map_noslot )
+ADDRESS_MAP_END
+
+static MACHINE_CONFIG_DERIVED( lbsp, neogeo_noslot )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(lbsp_map)
+MACHINE_CONFIG_END
+
+/******************************************************************************/
+
+
+#include "neogeohb.cpp"
+#include "neogeo1.cpp"
+#include "kof94.cpp"
+#include "kof95.cpp"
+#include "kof96.cpp"
+#include "kof97.cpp"
+#include "kof98.cpp"
+#include "kof99.cpp"
+#include "kof2000.cpp"
+#include "kof2001.cpp"
+#include "kof2002.cpp"
+#include "kof2003.cpp"
+#include "mgd2.cpp"
+#include "mslug.cpp"
+#include "ngdoubledr.cpp"
+#include "nggaroup.cpp"
+#include "ngkofmisc.cpp"
+#include "nglastblade.cpp"
+#include "ngrbff.cpp"
+#include "ngrotd.cpp"
+#include "ngsamsho.cpp"
+#include "ngsengoku.cpp"
+#include "ngsvc.cpp"
+#include "ngwh.cpp"
+
diff --git a/src/hbmame/drivers/neogeo1.cpp b/src/hbmame/drivers/neogeo1.cpp
new file mode 100644
index 00000000000..39bad9e4fc7
--- /dev/null
+++ b/src/hbmame/drivers/neogeo1.cpp
@@ -0,0 +1,3494 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+// Neogeo hacks that don't warrant their own file
+
+
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, jckeygpd)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+
+ /* install some extra RAM */
+ m_maincpu->space(AS_PROGRAM).install_ram(0x200000, 0x201fff);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, matrima )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 2;
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, MATRIM_GFX_KEY);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, matrimd )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 2;
+ m_kof2002_prot->matrim_decrypt_68k(cpuregion, cpuregion_size);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 1);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, matrmehc )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 2;
+ m_kof2002_prot->matrim_decrypt_68k(cpuregion, cpuregion_size);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, MATRIM_GFX_KEY);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 1);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, pnyaad )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_pcm2_prot->neo_pcm2_snk_1999(ym_region, ym_region_size, 4);
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, shockt2w )
+{
+ DRIVER_INIT_CALL(neogeo);
+ uint16_t *mem16= (uint16_t *)memregion("mainbios")->base();
+ mem16[0x0200] = 1; /* Force home mode */
+ /* Above causes checksum failure, so patch it out */
+ mem16[0x11c62/2] = 0x4e71;
+ mem16[0x11c64/2] = 0x4e71;
+}
+
+
+
+ROM_START( 2020bbcd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "030cd.p1", 0x000000, 0x080000, CRC(e13d8a8a) SHA1(3975bdf141abc4994c9fc1919fb4207883687961) )
+
+ NEO_SFIX_128K( "030-s1.s1", CRC(7015b8fc) SHA1(8c09bc3e6c62e0f7c9557c1e10c901be325bae7f) )
+
+ NEO_BIOS_AUDIO_64K( "030cd.m1", CRC(124d7b4f) SHA1(fd7bceacd0ec17cab7abb28ee8eab92217f9c197) )
+ // use this to get full sound
+ //NEO_BIOS_AUDIO_128K( "030-m1.m1", CRC(4cf466ec) SHA1(6a003b53c7a4af9d7529e2c10f27ffc4e58dcda5) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "030cd.v1", 0x000000, 0x100000, CRC(d725a649) SHA1(cd1206b7190e543f31eb878f645f3be841c5a4ed) )
+ ROM_LOAD( "030-v2.v2", 0x100000, 0x100000, CRC(54994455) SHA1(76eb62b86e8ed51a77f44313d5cc8091b3f58d57) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "030-c1.c1", 0x000000, 0x100000, CRC(4f5e19bd) SHA1(ef7975c4b33a7aea4a25a385f604799f054d3200) )
+ ROM_LOAD16_BYTE( "030-c2.c2", 0x000001, 0x100000, CRC(d6314bf0) SHA1(0920cc580d7997fcb0170dd619af2f305d635577) )
+ ROM_LOAD16_BYTE( "030-c3.c3", 0x200000, 0x100000, CRC(47fddfee) SHA1(297c505a63448c999a2510c27bf4549102134db8) )
+ ROM_LOAD16_BYTE( "030-c4.c4", 0x200001, 0x100000, CRC(780d1c4e) SHA1(2e2cf9de828e3b48642dd2203637103438c62142) )
+ROM_END
+
+
+ROM_START( androdunpx )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "049px.p1", 0x000000, 0x080000, CRC(5f63193e) SHA1(7ba7bb8f9382ddd7b35601b8171a0e532c9dfe55) )
+ ROM_LOAD16_WORD_SWAP( "049-p2.p2", 0x080000, 0x080000, CRC(2f062209) SHA1(991cf3e3677929b2cc0b2787b0c7b6ad3700f618) )
+
+ NEO_SFIX_128K( "049-s1.s1", CRC(6349de5d) SHA1(bcc44b9576d7bedd9a39294530bb66f707690c72) )
+
+ NEO_BIOS_AUDIO_128K( "049-m1.m1", CRC(edd2acf4) SHA1(c4ee6ba834d54b9fc5a854dbc41a05877e090371) )
+
+ ROM_REGION( 0x100000, "ymsnd", 0 )
+ ROM_LOAD( "049-v1.v1", 0x000000, 0x100000, CRC(ce43cb89) SHA1(47f82e077abb6efc6b1b0490412ae147d5d2acef) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "049-c1.c1", 0x000000, 0x100000, CRC(7ace6db3) SHA1(c41cc9de8c0788dcc49ca494fd3bb3124062d9dd) )
+ ROM_LOAD16_BYTE( "049-c2.c2", 0x000001, 0x100000, CRC(b17024f7) SHA1(fcf7efae48fcdccaf5255c145de414fb246128f0) )
+ROM_END
+
+
+ROM_START( aofbh )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "044bh.p1", 0x000000, 0x080000, CRC(202a60d8) SHA1(f0caa8b6a18dff1b9568aaae552cf6d10a9db722) )
+
+ NEO_SFIX_128K( "044-s1.s1", CRC(89903f39) SHA1(a04a0c244a5d5c7a595fcf649107969635a6a8b6) )
+
+ NEO_BIOS_AUDIO_128K( "044-m1.m1", CRC(0987e4bb) SHA1(8fae4b7fac09d46d4727928e609ed9d3711dbded) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "044-v2.v2", 0x000000, 0x200000, CRC(3ec632ea) SHA1(e3f413f580b57f70d2dae16dbdacb797884d3fce) )
+ ROM_LOAD( "044-v4.v4", 0x200000, 0x200000, CRC(4b0f8e23) SHA1(105da0cc5ba19869c7147fba8b177500758c232b) )
+
+ ROM_REGION( 0x800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "044-c1.c1", 0x000000, 0x100000, CRC(ddab98a7) SHA1(f20eb81ec431268798c142c482146c1545af1c24) )
+ ROM_CONTINUE( 0x400000, 0x100000 )
+ ROM_LOAD16_BYTE( "044-c2.c2", 0x000001, 0x100000, CRC(d8ccd575) SHA1(f697263fe92164e274bf34c55327b3d4a158b332) )
+ ROM_CONTINUE( 0x400001, 0x100000 )
+ ROM_LOAD16_BYTE( "044-c3.c3", 0x200000, 0x100000, CRC(403e898a) SHA1(dd5888f8b24a33b2c1f483316fe80c17849ccfc4) )
+ ROM_CONTINUE( 0x600000, 0x100000 )
+ ROM_LOAD16_BYTE( "044-c4.c4", 0x200001, 0x100000, CRC(6235fbaa) SHA1(9090e337d7beed25ba81ae0708d0aeb57e6cf405) )
+ ROM_CONTINUE( 0x600001, 0x100000 )
+ROM_END
+
+
+ROM_START( aof2b ) /* Art of Fighting 2 - Hack by TcwLee - (Can select Geese instead of Mr. Big) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "056b.p1", 0x000000, 0x100000, CRC(c3dc11f8) SHA1(7f92f4931ffdf2561b1a2741e18a4ae301df8497) )
+
+ NEO_SFIX_128K( "056-s1.s1", CRC(8b02638e) SHA1(aa4d28804ca602da776948b5f223ea89e427906b) )
+
+ NEO_BIOS_AUDIO_128K( "056-m1.m1", CRC(f27e9d52) SHA1(dddae733d87ce7c88ad2580a8f64cb6ff9572e67) )
+
+ ROM_REGION( 0x500000, "ymsnd", 0 )
+ ROM_LOAD( "056-v1.v1", 0x000000, 0x200000, CRC(4628fde0) SHA1(ece2a50f5270d844d58401b1447d1d856d78ea45) )
+ ROM_LOAD( "056-v2.v2", 0x200000, 0x200000, CRC(b710e2f2) SHA1(df4da585203eea7554d3ce718eb107e9cb6a0254) )
+ ROM_LOAD( "056-v3.v3", 0x400000, 0x100000, CRC(d168c301) SHA1(969273d1d11943e81560959359a2c4e69522af0e) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "056-c1.c1", 0x000000, 0x200000, CRC(17b9cbd2) SHA1(1eee81e02763d384bd1c10a6012473ca931e4093) )
+ ROM_LOAD16_BYTE( "056-c2.c2", 0x000001, 0x200000, CRC(5fd76b67) SHA1(11925a41a53b53c6df4a5ebd28f98300950f743b) )
+ ROM_LOAD16_BYTE( "056-c3.c3", 0x400000, 0x200000, CRC(d2c88768) SHA1(22e2d84aa0c095944190e249ce87ef50d3f7b8ce) )
+ ROM_LOAD16_BYTE( "056-c4.c4", 0x400001, 0x200000, CRC(db39b883) SHA1(59de86c513dc4e230ae25d9e3b7e84621b657b54) )
+ ROM_LOAD16_BYTE( "056-c5.c5", 0x800000, 0x200000, CRC(c3074137) SHA1(9a75e3d63cb98d54f900dcfb3a03e21f3148d32f) )
+ ROM_LOAD16_BYTE( "056-c6.c6", 0x800001, 0x200000, CRC(31de68d3) SHA1(13ba7046cdd6863125f8284e60f102d4720af5a4) )
+ ROM_LOAD16_BYTE( "056-c7.c7", 0xc00000, 0x200000, CRC(3f36df57) SHA1(79ee97e9ae811a51141b535633f90e1491209d54) )
+ ROM_LOAD16_BYTE( "056-c8.c8", 0xc00001, 0x200000, CRC(e546d7a8) SHA1(74a2fca994a5a93a5784a46c0f68193122456a09) )
+ROM_END
+
+ROM_START( aof2b1 ) // also known as aof2bhfx
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "056b1.p1", 0x000000, 0x100000, CRC(5d21dc39) SHA1(72df83c4249990386ced39749dd6994aa5a0b2a9) )
+
+ NEO_SFIX_128K( "056-s1.s1", CRC(8b02638e) SHA1(aa4d28804ca602da776948b5f223ea89e427906b) )
+
+ NEO_BIOS_AUDIO_128K( "056-m1.m1", CRC(f27e9d52) SHA1(dddae733d87ce7c88ad2580a8f64cb6ff9572e67) )
+
+ ROM_REGION( 0x500000, "ymsnd", 0 )
+ ROM_LOAD( "056-v1.v1", 0x000000, 0x200000, CRC(4628fde0) SHA1(ece2a50f5270d844d58401b1447d1d856d78ea45) )
+ ROM_LOAD( "056-v2.v2", 0x200000, 0x200000, CRC(b710e2f2) SHA1(df4da585203eea7554d3ce718eb107e9cb6a0254) )
+ ROM_LOAD( "056-v3.v3", 0x400000, 0x100000, CRC(d168c301) SHA1(969273d1d11943e81560959359a2c4e69522af0e) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "056-c1.c1", 0x000000, 0x200000, CRC(17b9cbd2) SHA1(1eee81e02763d384bd1c10a6012473ca931e4093) )
+ ROM_LOAD16_BYTE( "056-c2.c2", 0x000001, 0x200000, CRC(5fd76b67) SHA1(11925a41a53b53c6df4a5ebd28f98300950f743b) )
+ ROM_LOAD16_BYTE( "056-c3.c3", 0x400000, 0x200000, CRC(d2c88768) SHA1(22e2d84aa0c095944190e249ce87ef50d3f7b8ce) )
+ ROM_LOAD16_BYTE( "056-c4.c4", 0x400001, 0x200000, CRC(db39b883) SHA1(59de86c513dc4e230ae25d9e3b7e84621b657b54) )
+ ROM_LOAD16_BYTE( "056-c5.c5", 0x800000, 0x200000, CRC(c3074137) SHA1(9a75e3d63cb98d54f900dcfb3a03e21f3148d32f) )
+ ROM_LOAD16_BYTE( "056-c6.c6", 0x800001, 0x200000, CRC(31de68d3) SHA1(13ba7046cdd6863125f8284e60f102d4720af5a4) )
+ ROM_LOAD16_BYTE( "056-c7.c7", 0xc00000, 0x200000, CRC(3f36df57) SHA1(79ee97e9ae811a51141b535633f90e1491209d54) )
+ ROM_LOAD16_BYTE( "056-c8.c8", 0xc00001, 0x200000, CRC(e546d7a8) SHA1(74a2fca994a5a93a5784a46c0f68193122456a09) )
+ROM_END
+
+ROM_START( aof2bh )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "056bh.p1", 0x000000, 0x100000, CRC(3af1e484) SHA1(57b33dbb93d066092acddf163dbd67d15b5159e2) )
+
+ NEO_SFIX_128K( "056-s1.s1", CRC(8b02638e) SHA1(aa4d28804ca602da776948b5f223ea89e427906b) )
+
+ NEO_BIOS_AUDIO_128K( "056-m1.m1", CRC(f27e9d52) SHA1(dddae733d87ce7c88ad2580a8f64cb6ff9572e67) )
+
+ ROM_REGION( 0x500000, "ymsnd", 0 )
+ ROM_LOAD( "056-v1.v1", 0x000000, 0x200000, CRC(4628fde0) SHA1(ece2a50f5270d844d58401b1447d1d856d78ea45) )
+ ROM_LOAD( "056-v2.v2", 0x200000, 0x200000, CRC(b710e2f2) SHA1(df4da585203eea7554d3ce718eb107e9cb6a0254) )
+ ROM_LOAD( "056-v3.v3", 0x400000, 0x100000, CRC(d168c301) SHA1(969273d1d11943e81560959359a2c4e69522af0e) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "056-c1.c1", 0x000000, 0x200000, CRC(17b9cbd2) SHA1(1eee81e02763d384bd1c10a6012473ca931e4093) )
+ ROM_LOAD16_BYTE( "056-c2.c2", 0x000001, 0x200000, CRC(5fd76b67) SHA1(11925a41a53b53c6df4a5ebd28f98300950f743b) )
+ ROM_LOAD16_BYTE( "056-c3.c3", 0x400000, 0x200000, CRC(d2c88768) SHA1(22e2d84aa0c095944190e249ce87ef50d3f7b8ce) )
+ ROM_LOAD16_BYTE( "056-c4.c4", 0x400001, 0x200000, CRC(db39b883) SHA1(59de86c513dc4e230ae25d9e3b7e84621b657b54) )
+ ROM_LOAD16_BYTE( "056-c5.c5", 0x800000, 0x200000, CRC(c3074137) SHA1(9a75e3d63cb98d54f900dcfb3a03e21f3148d32f) )
+ ROM_LOAD16_BYTE( "056-c6.c6", 0x800001, 0x200000, CRC(31de68d3) SHA1(13ba7046cdd6863125f8284e60f102d4720af5a4) )
+ ROM_LOAD16_BYTE( "056-c7.c7", 0xc00000, 0x200000, CRC(3f36df57) SHA1(79ee97e9ae811a51141b535633f90e1491209d54) )
+ ROM_LOAD16_BYTE( "056-c8.c8", 0xc00001, 0x200000, CRC(e546d7a8) SHA1(74a2fca994a5a93a5784a46c0f68193122456a09) )
+ROM_END
+
+ROM_START( aof2br2 ) /* Art of Fighting 2 - Hack by TcwLee - (Can select Geese instead of Ryo) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "056br2.p1", 0x000000, 0x100000, CRC(02d068b7) SHA1(5aadebfd9a59e48be972c63dbf6c4cac32bba89a) )
+
+ NEO_SFIX_128K( "056-s1.s1", CRC(8b02638e) SHA1(aa4d28804ca602da776948b5f223ea89e427906b) )
+
+ NEO_BIOS_AUDIO_128K( "056-m1.m1", CRC(f27e9d52) SHA1(dddae733d87ce7c88ad2580a8f64cb6ff9572e67) )
+
+ ROM_REGION( 0x500000, "ymsnd", 0 )
+ ROM_LOAD( "056-v1.v1", 0x000000, 0x200000, CRC(4628fde0) SHA1(ece2a50f5270d844d58401b1447d1d856d78ea45) )
+ ROM_LOAD( "056-v2.v2", 0x200000, 0x200000, CRC(b710e2f2) SHA1(df4da585203eea7554d3ce718eb107e9cb6a0254) )
+ ROM_LOAD( "056-v3.v3", 0x400000, 0x100000, CRC(d168c301) SHA1(969273d1d11943e81560959359a2c4e69522af0e) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "056-c1.c1", 0x000000, 0x200000, CRC(17b9cbd2) SHA1(1eee81e02763d384bd1c10a6012473ca931e4093) )
+ ROM_LOAD16_BYTE( "056-c2.c2", 0x000001, 0x200000, CRC(5fd76b67) SHA1(11925a41a53b53c6df4a5ebd28f98300950f743b) )
+ ROM_LOAD16_BYTE( "056-c3.c3", 0x400000, 0x200000, CRC(d2c88768) SHA1(22e2d84aa0c095944190e249ce87ef50d3f7b8ce) )
+ ROM_LOAD16_BYTE( "056-c4.c4", 0x400001, 0x200000, CRC(db39b883) SHA1(59de86c513dc4e230ae25d9e3b7e84621b657b54) )
+ ROM_LOAD16_BYTE( "056-c5.c5", 0x800000, 0x200000, CRC(c3074137) SHA1(9a75e3d63cb98d54f900dcfb3a03e21f3148d32f) )
+ ROM_LOAD16_BYTE( "056-c6.c6", 0x800001, 0x200000, CRC(31de68d3) SHA1(13ba7046cdd6863125f8284e60f102d4720af5a4) )
+ ROM_LOAD16_BYTE( "056-c7.c7", 0xc00000, 0x200000, CRC(3f36df57) SHA1(79ee97e9ae811a51141b535633f90e1491209d54) )
+ ROM_LOAD16_BYTE( "056-c8.c8", 0xc00001, 0x200000, CRC(e546d7a8) SHA1(74a2fca994a5a93a5784a46c0f68193122456a09) )
+ROM_END
+
+
+ROM_START( aof3b ) /* Art of Fighting 3 - Hack by Dodowang - (Can select Wyler and Sinclair AES/MVS - enabled add. info) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "096b.p1", 0x000000, 0x100000, CRC(255aec23) SHA1(9E97772CC2DB51139A04BAC725E6529DD6E0F19A) )
+ ROM_LOAD16_WORD_SWAP( "096-p2.sp2", 0x100000, 0x200000, CRC(4d5a2602) SHA1(4c26d6135d2877d9c38169662033e9d0cc24d943) )
+
+ NEO_SFIX_128K( "096-s1.s1", CRC(cc7fd344) SHA1(2c6846cf8ea61fb192ba181dbccb63594d572c0e) )
+
+ NEO_BIOS_AUDIO_128K( "096-m1.m1", CRC(cb07b659) SHA1(940b379957c2987d7ab0443cb80c3ff58f6ba559) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "096-v1.v1", 0x000000, 0x200000, CRC(e2c32074) SHA1(69426e7e63fc31a73d1cd056cc9ae6a2c4499407) )
+ ROM_LOAD( "096-v2.v2", 0x200000, 0x200000, CRC(a290eee7) SHA1(e66a98cd9740188bf999992b417f8feef941cede) )
+ ROM_LOAD( "096-v3.v3", 0x400000, 0x200000, CRC(199d12ea) SHA1(a883bf34e685487705a8dafdd0b8db15eb360e80) )
+
+ ROM_REGION( 0x1c00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "096-c1.c1", 0x0000000, 0x400000, CRC(f17b8d89) SHA1(7180df23f7c7a964b0835fda76970b12f0aa9ea8) )
+ ROM_LOAD16_BYTE( "096-c2.c2", 0x0000001, 0x400000, CRC(3840c508) SHA1(55adc7cd26fec3e4dbd779df6701bc6eaba41b84) )
+ ROM_LOAD16_BYTE( "096-c3.c3", 0x0800000, 0x400000, CRC(55f9ee1e) SHA1(fbe1b7891beae66c5fcbc7e36168dc1b460ede91) )
+ ROM_LOAD16_BYTE( "096-c4.c4", 0x0800001, 0x400000, CRC(585b7e47) SHA1(d50ea91397fc53d86470ff5b493a44d57c010306) )
+ ROM_LOAD16_BYTE( "096-c5.c5", 0x1000000, 0x400000, CRC(c75a753c) SHA1(fc977f8710816a369a5d0d49ee84059380e93fb7) )
+ ROM_LOAD16_BYTE( "096-c6.c6", 0x1000001, 0x400000, CRC(9a9d2f7a) SHA1(a89a713bfcd93974c9acb21ce699d365b08e7e39) )
+ ROM_LOAD16_BYTE( "096-c7.c7", 0x1800000, 0x200000, CRC(51bd8ab2) SHA1(c8def9c64de64571492b5b7e14b794e3c18f1393) )
+ ROM_LOAD16_BYTE( "096-c8.c8", 0x1800001, 0x200000, CRC(9a34f99c) SHA1(fca72d95ec42790a7f1e771a1e25dbc5bec5fc19) )
+ROM_END
+
+ROM_START( aof3bh )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "096bh.p1", 0x000000, 0x100000, CRC(70969ff1) SHA1(a17d17c451655e01db8d42c6edd31fd2917bd486) )
+ ROM_LOAD16_WORD_SWAP( "096-p2.sp2", 0x100000, 0x200000, CRC(4d5a2602) SHA1(4c26d6135d2877d9c38169662033e9d0cc24d943) )
+
+ NEO_SFIX_128K( "096-s1.s1", CRC(cc7fd344) SHA1(2c6846cf8ea61fb192ba181dbccb63594d572c0e) )
+
+ NEO_BIOS_AUDIO_128K( "096-m1.m1", CRC(cb07b659) SHA1(940b379957c2987d7ab0443cb80c3ff58f6ba559) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "096-v1.v1", 0x000000, 0x200000, CRC(e2c32074) SHA1(69426e7e63fc31a73d1cd056cc9ae6a2c4499407) )
+ ROM_LOAD( "096-v2.v2", 0x200000, 0x200000, CRC(a290eee7) SHA1(e66a98cd9740188bf999992b417f8feef941cede) )
+ ROM_LOAD( "096-v3.v3", 0x400000, 0x200000, CRC(199d12ea) SHA1(a883bf34e685487705a8dafdd0b8db15eb360e80) )
+
+ ROM_REGION( 0x1c00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "096-c1.c1", 0x0000000, 0x400000, CRC(f17b8d89) SHA1(7180df23f7c7a964b0835fda76970b12f0aa9ea8) )
+ ROM_LOAD16_BYTE( "096-c2.c2", 0x0000001, 0x400000, CRC(3840c508) SHA1(55adc7cd26fec3e4dbd779df6701bc6eaba41b84) )
+ ROM_LOAD16_BYTE( "096-c3.c3", 0x0800000, 0x400000, CRC(55f9ee1e) SHA1(fbe1b7891beae66c5fcbc7e36168dc1b460ede91) )
+ ROM_LOAD16_BYTE( "096-c4.c4", 0x0800001, 0x400000, CRC(585b7e47) SHA1(d50ea91397fc53d86470ff5b493a44d57c010306) )
+ ROM_LOAD16_BYTE( "096-c5.c5", 0x1000000, 0x400000, CRC(c75a753c) SHA1(fc977f8710816a369a5d0d49ee84059380e93fb7) )
+ ROM_LOAD16_BYTE( "096-c6.c6", 0x1000001, 0x400000, CRC(9a9d2f7a) SHA1(a89a713bfcd93974c9acb21ce699d365b08e7e39) )
+ ROM_LOAD16_BYTE( "096-c7.c7", 0x1800000, 0x200000, CRC(51bd8ab2) SHA1(c8def9c64de64571492b5b7e14b794e3c18f1393) )
+ ROM_LOAD16_BYTE( "096-c8.c8", 0x1800001, 0x200000, CRC(9a34f99c) SHA1(fca72d95ec42790a7f1e771a1e25dbc5bec5fc19) )
+ROM_END
+
+
+ROM_START( bangbeadp )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "259-p1.p1", 0x100000, 0x100000, CRC(88a37f8b) SHA1(566db84850fad5e8fe822e8bba910a33e083b550) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "259p.s1", CRC(bb50fb2d) SHA1(7372939f328fb5e7d09c16985e09ae8c34702b0c) )
+
+ NEO_BIOS_AUDIO_128K( "259-m1.m1", CRC(85668ee9) SHA1(7d3f51710cf90c097cd3faaeeef10ceb85cbb3e8) )
+
+ ROM_REGION( 0x500000, "ymsnd", 0 )
+ ROM_LOAD( "259p.v1", 0x000000, 0x200000, CRC(e97b9385) SHA1(d213cae6cf5732b8ab1f8a8cf04afee5dfd9a260) )
+ ROM_LOAD( "259p.v2", 0x200000, 0x200000, CRC(b0cbd70a) SHA1(fc7c8183f8ff9800e8aae7c8d44d962300058cfb) )
+ ROM_LOAD( "259-v2.v2", 0x400000, 0x100000, CRC(97528fe9) SHA1(8f5eddbb3a9a225492479d1a44801f3916c8e791) )
+
+ ROM_REGION( 0x600000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "259p.c1", 0x000000, 0x200000, CRC(e3919e44) SHA1(54c722414b5a7ad311dc8ddf6fdda88535e829d1) )
+ ROM_LOAD16_BYTE( "259p.c2", 0x000001, 0x200000, CRC(baf5a320) SHA1(ead3d81d9b4aeb45af4f9cb5c38157f2236b506c) )
+ ROM_LOAD16_BYTE( "259p.c3", 0x400000, 0x100000, CRC(c8e52157) SHA1(f10f58e905c4cbaf182b20e63abe5364462133c5) )
+ ROM_LOAD16_BYTE( "259p.c4", 0x400001, 0x100000, CRC(69fa8e60) SHA1(29c1fbdb79dedf1470683202e2cb3435732d9275) )
+ROM_END
+
+
+ROM_START( bjourneypx )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "022px.p1", 0x000000, 0x100000, CRC(1e8b5847) SHA1(59bfff5d8459b24bd3d403a73440ced5c440fd2b) )
+
+ NEO_SFIX_128K( "022-s1.s1", CRC(843c3624) SHA1(dbdf86c193b7c1d795f8c21f2c103c1d3e18abbe) )
+
+ NEO_BIOS_AUDIO_128K( "022-m1.m1", CRC(8e1d4ab6) SHA1(deabc11ab81e7e68a3e041c03a127ae28d0d7264) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "022-v11.v11", 0x000000, 0x100000, CRC(2cb4ad91) SHA1(169ec7303c4275155a66a88cc08270c24132bb36) )
+ ROM_LOAD( "022-v22.v22", 0x100000, 0x100000, CRC(65a54d13) SHA1(a591fbcedca8f679dacbebcd554e3aa3fd163e92) )
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "022-c1.c1", 0x000000, 0x100000, CRC(4d47a48c) SHA1(6e282285be72583d828e7765b1c1695ecdc44777) )
+ ROM_LOAD16_BYTE( "022-c2.c2", 0x000001, 0x100000, CRC(e8c1491a) SHA1(c468d2556b3de095aaa05edd1bc16d71303e9478) )
+ ROM_LOAD16_BYTE( "022-c3.c3", 0x200000, 0x080000, CRC(66e69753) SHA1(974b823fc62236fbc23e727f25b61a805a707a9e) )
+ ROM_LOAD16_BYTE( "022-c4.c4", 0x200001, 0x080000, CRC(71bfd48a) SHA1(47288be69e6992d09ebef108b4de9ffab6293dc8) )
+ROM_END
+
+
+ROM_START( breakersbh )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "230bh.p1", 0x100000, 0x100000, CRC(1d708f96) SHA1(92604d61ed4f6101bdbf6e4352ab28a292e9d0cf) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "230-s1.s1", CRC(076fb64c) SHA1(c166038128d7004f69932141f83b320a35c2b4ca) )
+
+ NEO_BIOS_AUDIO_128K( "230-m1.m1", CRC(3951a1c1) SHA1(1e6442a7ea82ada9503d71045dd93e12bd05254f) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "230-v1.v1", 0x000000, 0x400000, CRC(7f9ed279) SHA1(acd0558960ec29bfc3e3ee99d00e503bebff8513) )
+ ROM_LOAD( "230-v2.v2", 0x400000, 0x400000, CRC(1d43e420) SHA1(26d09b8b18b4b802dbda4d6f06626c24d0b7c512) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "230-c1.c1", 0x000000, 0x400000, CRC(68d4ae76) SHA1(2e820067f6963669f104bebf19e865fe4127b4dd) )
+ ROM_LOAD16_BYTE( "230-c2.c2", 0x000001, 0x400000, CRC(fdee05cd) SHA1(efc4ffd790953ac7c25d5f045c64a9b49d24b096) )
+ ROM_LOAD16_BYTE( "230-c3.c3", 0x800000, 0x400000, CRC(645077f3) SHA1(0ae74f3b4b3b88f128c6d8c0f35ffa53f5d67ef2) )
+ ROM_LOAD16_BYTE( "230-c4.c4", 0x800001, 0x400000, CRC(63aeb74c) SHA1(9ff6930c0c3d79b46b86356e8565ce4fcd69ac38) )
+ROM_END
+
+ROM_START( breakersp ) /* Breakers - Hack by UNKNOWN - (Move change 26c?) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "230p.p1", 0x100000, 0x100000, CRC(244ad91b) SHA1(22EFEA04BFB86E8C75A80C6584AB0CAA85FC0E92) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "230-s1.s1", CRC(076fb64c) SHA1(c166038128d7004f69932141f83b320a35c2b4ca) )
+
+ NEO_BIOS_AUDIO_128K( "230-m1.m1", CRC(3951a1c1) SHA1(1e6442a7ea82ada9503d71045dd93e12bd05254f) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "230-v1.v1", 0x000000, 0x400000, CRC(7f9ed279) SHA1(acd0558960ec29bfc3e3ee99d00e503bebff8513) )
+ ROM_LOAD( "230-v2.v2", 0x400000, 0x400000, CRC(1d43e420) SHA1(26d09b8b18b4b802dbda4d6f06626c24d0b7c512) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "230-c1.c1", 0x000000, 0x400000, CRC(68d4ae76) SHA1(2e820067f6963669f104bebf19e865fe4127b4dd) )
+ ROM_LOAD16_BYTE( "230-c2.c2", 0x000001, 0x400000, CRC(fdee05cd) SHA1(efc4ffd790953ac7c25d5f045c64a9b49d24b096) )
+ ROM_LOAD16_BYTE( "230-c3.c3", 0x800000, 0x400000, CRC(645077f3) SHA1(0ae74f3b4b3b88f128c6d8c0f35ffa53f5d67ef2) )
+ ROM_LOAD16_BYTE( "230-c4.c4", 0x800001, 0x400000, CRC(63aeb74c) SHA1(9ff6930c0c3d79b46b86356e8565ce4fcd69ac38) )
+ROM_END
+
+ROM_START( breakersy )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "230y.p1", 0x100000, 0x100000, CRC(e65b2b70) SHA1(a879fa3299240fa82560c140e32c0d046de9aadd) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "230-s1.s1", CRC(076fb64c) SHA1(c166038128d7004f69932141f83b320a35c2b4ca) )
+
+ NEO_BIOS_AUDIO_128K( "230-m1.m1", CRC(3951a1c1) SHA1(1e6442a7ea82ada9503d71045dd93e12bd05254f) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "230-v1.v1", 0x000000, 0x400000, CRC(7f9ed279) SHA1(acd0558960ec29bfc3e3ee99d00e503bebff8513) )
+ ROM_LOAD( "230-v2.v2", 0x400000, 0x400000, CRC(1d43e420) SHA1(26d09b8b18b4b802dbda4d6f06626c24d0b7c512) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "230-c1.c1", 0x000000, 0x400000, CRC(68d4ae76) SHA1(2e820067f6963669f104bebf19e865fe4127b4dd) )
+ ROM_LOAD16_BYTE( "230-c2.c2", 0x000001, 0x400000, CRC(fdee05cd) SHA1(efc4ffd790953ac7c25d5f045c64a9b49d24b096) )
+ ROM_LOAD16_BYTE( "230-c3.c3", 0x800000, 0x400000, CRC(645077f3) SHA1(0ae74f3b4b3b88f128c6d8c0f35ffa53f5d67ef2) )
+ ROM_LOAD16_BYTE( "230-c4.c4", 0x800001, 0x400000, CRC(63aeb74c) SHA1(9ff6930c0c3d79b46b86356e8565ce4fcd69ac38) )
+ROM_END
+
+
+ROM_START( breakrevb )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "245b.p1", 0x100000, 0x100000, CRC(52c978b5) SHA1(892712457ba8c789b136b35ba423f5260c20b478) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "245-s1.s1", CRC(e7660a5d) SHA1(1cd54964ba60b245ea57d9daf0e27b572b815d21) )
+
+ NEO_BIOS_AUDIO_128K( "245-m1.m1", CRC(00f31c66) SHA1(8488598415c9b74bce00e05b31d96e3d1625c20d) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "245-v1.v1", 0x000000, 0x400000, CRC(e255446c) SHA1(b3933340d49d4ba581f3bf1af7ad69d786205790) )
+ ROM_LOAD( "245-v2.v2", 0x400000, 0x400000, CRC(9068198a) SHA1(71819b0475a5e173a2f9a6e4ff19a94655141c3c) )
+
+ ROM_REGION( 0x1800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "245-c1.c1", 0x0000000, 0x400000, CRC(68d4ae76) SHA1(2e820067f6963669f104bebf19e865fe4127b4dd) )
+ ROM_LOAD16_BYTE( "245-c2.c2", 0x0000001, 0x400000, CRC(fdee05cd) SHA1(efc4ffd790953ac7c25d5f045c64a9b49d24b096) )
+ ROM_LOAD16_BYTE( "245-c3.c3", 0x0800000, 0x400000, CRC(645077f3) SHA1(0ae74f3b4b3b88f128c6d8c0f35ffa53f5d67ef2) )
+ ROM_LOAD16_BYTE( "245-c4.c4", 0x0800001, 0x400000, CRC(63aeb74c) SHA1(9ff6930c0c3d79b46b86356e8565ce4fcd69ac38) )
+ ROM_LOAD16_BYTE( "245-c5.c5", 0x1000000, 0x400000, CRC(b5f40e7f) SHA1(b332bac64dbb9a9dd66c5315f47ea08634d36f45) )
+ ROM_LOAD16_BYTE( "245-c6.c6", 0x1000001, 0x400000, CRC(d0337328) SHA1(dff86b75dc283bd4512557a5c64f16e6be6c16e4) )
+ROM_END
+
+ROM_START( breakrevpp )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "245pp.p1", 0x100000, 0x100000, CRC(a95c1ef2) SHA1(3d46ab9107eb353668711868b78b284e19ae04f6) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "245-s1.s1", CRC(e7660a5d) SHA1(1cd54964ba60b245ea57d9daf0e27b572b815d21) )
+
+ NEO_BIOS_AUDIO_128K( "245-m1.m1", CRC(00f31c66) SHA1(8488598415c9b74bce00e05b31d96e3d1625c20d) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "245-v1.v1", 0x000000, 0x400000, CRC(e255446c) SHA1(b3933340d49d4ba581f3bf1af7ad69d786205790) )
+ ROM_LOAD( "245-v2.v2", 0x400000, 0x400000, CRC(9068198a) SHA1(71819b0475a5e173a2f9a6e4ff19a94655141c3c) )
+
+ ROM_REGION( 0x1800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "245-c1.c1", 0x0000000, 0x400000, CRC(68d4ae76) SHA1(2e820067f6963669f104bebf19e865fe4127b4dd) )
+ ROM_LOAD16_BYTE( "245-c2.c2", 0x0000001, 0x400000, CRC(fdee05cd) SHA1(efc4ffd790953ac7c25d5f045c64a9b49d24b096) )
+ ROM_LOAD16_BYTE( "245-c3.c3", 0x0800000, 0x400000, CRC(645077f3) SHA1(0ae74f3b4b3b88f128c6d8c0f35ffa53f5d67ef2) )
+ ROM_LOAD16_BYTE( "245-c4.c4", 0x0800001, 0x400000, CRC(63aeb74c) SHA1(9ff6930c0c3d79b46b86356e8565ce4fcd69ac38) )
+ ROM_LOAD16_BYTE( "245-c5.c5", 0x1000000, 0x400000, CRC(b5f40e7f) SHA1(b332bac64dbb9a9dd66c5315f47ea08634d36f45) )
+ ROM_LOAD16_BYTE( "245-c6.c6", 0x1000001, 0x400000, CRC(d0337328) SHA1(dff86b75dc283bd4512557a5c64f16e6be6c16e4) )
+ROM_END
+
+ROM_START( breakrevy )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "245y.p1", 0x100000, 0x100000, CRC(bae71481) SHA1(df20a616754fe43706fdf55c7371c832dd23245d) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "245-s1.s1", CRC(e7660a5d) SHA1(1cd54964ba60b245ea57d9daf0e27b572b815d21) )
+
+ NEO_BIOS_AUDIO_128K( "245-m1.m1", CRC(00f31c66) SHA1(8488598415c9b74bce00e05b31d96e3d1625c20d) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "245-v1.v1", 0x000000, 0x400000, CRC(e255446c) SHA1(b3933340d49d4ba581f3bf1af7ad69d786205790) )
+ ROM_LOAD( "245-v2.v2", 0x400000, 0x400000, CRC(9068198a) SHA1(71819b0475a5e173a2f9a6e4ff19a94655141c3c) )
+
+ ROM_REGION( 0x1800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "245-c1.c1", 0x0000000, 0x400000, CRC(68d4ae76) SHA1(2e820067f6963669f104bebf19e865fe4127b4dd) )
+ ROM_LOAD16_BYTE( "245-c2.c2", 0x0000001, 0x400000, CRC(fdee05cd) SHA1(efc4ffd790953ac7c25d5f045c64a9b49d24b096) )
+ ROM_LOAD16_BYTE( "245-c3.c3", 0x0800000, 0x400000, CRC(645077f3) SHA1(0ae74f3b4b3b88f128c6d8c0f35ffa53f5d67ef2) )
+ ROM_LOAD16_BYTE( "245-c4.c4", 0x0800001, 0x400000, CRC(63aeb74c) SHA1(9ff6930c0c3d79b46b86356e8565ce4fcd69ac38) )
+ ROM_LOAD16_BYTE( "245-c5.c5", 0x1000000, 0x400000, CRC(b5f40e7f) SHA1(b332bac64dbb9a9dd66c5315f47ea08634d36f45) )
+ ROM_LOAD16_BYTE( "245-c6.c6", 0x1000001, 0x400000, CRC(d0337328) SHA1(dff86b75dc283bd4512557a5c64f16e6be6c16e4) )
+ROM_END
+
+
+ROM_START( burningfhp )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "018hp.p1", 0x000000, 0x080000, CRC(da26031b) SHA1(44997a8c313356db48716bb007ab842473805d88) )
+
+ NEO_SFIX_128K( "018-s1.s1", CRC(6799ea0d) SHA1(ec75ef9dfdcb0b123574fc6d81ebaaadfba32fb5) )
+
+ NEO_BIOS_AUDIO_128K( "018-m1.m1", CRC(0c939ee2) SHA1(57d580d3279e66b9fe66bbcc68529d3384a926ff) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "018-v1.v1", 0x000000, 0x100000, CRC(508c9ffc) SHA1(cd3a97a233a4585f8507116aba85884623cccdc4) )
+ ROM_LOAD( "018-v2.v2", 0x100000, 0x100000, CRC(854ef277) SHA1(4b3083b9c80620064cb44e812a787a700e32a6f3) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "018-c1.c1", 0x000000, 0x100000, CRC(25a25e9b) SHA1(3cf02d0662e190678d0530d7b7d3f425209adf83) )
+ ROM_LOAD16_BYTE( "018-c2.c2", 0x000001, 0x100000, CRC(d4378876) SHA1(45659aa1755d96b992c977042186e47fff68bba9) )
+ ROM_LOAD16_BYTE( "018-c3.c3", 0x200000, 0x100000, CRC(862b60da) SHA1(e2303eb1609f1050f0b4f46693a15e37deb176fb) )
+ ROM_LOAD16_BYTE( "018-c4.c4", 0x200001, 0x100000, CRC(e2e0aff7) SHA1(1c691c092a6e2787de4f433b0eb9252bfdaa7e16) )
+ROM_END
+
+
+ROM_START( ctomadaypx )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "249px.p1", 0x100000, 0x100000, CRC(734b3c0b) SHA1(5f08a3f509ea1fa56bf8b66d996f259380fecdaa) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "249-s1.s1", CRC(dc9eb372) SHA1(b8aa142243ba303799554479bfc88eb49260f3b1) )
+
+ NEO_BIOS_AUDIO_128K( "249-m1.m1", CRC(80328a47) SHA1(34b6b1a81eab1cf38834b2eea55454ce1b6100e2) )
+
+ ROM_REGION( 0x500000, "ymsnd", 0 )
+ ROM_LOAD( "249-v1.v1", 0x000000, 0x400000, CRC(de7c8f27) SHA1(3681a68a702ab5da8f509b8301d6cada75959332) )
+ ROM_LOAD( "249-v2.v2", 0x400000, 0x100000, CRC(c8e40119) SHA1(738f525c381ed68c0b8a89318a3e4d0089473c45) )
+
+ ROM_REGION( 0x800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "249-c1.c1", 0x000000, 0x400000, CRC(041fb8ee) SHA1(dacc84d713d76818d89a26358374afaa22fa82a2) )
+ ROM_LOAD16_BYTE( "249-c2.c2", 0x000001, 0x400000, CRC(74f3cdf4) SHA1(55ddabaf77f4d575f4deb24fe63e4bdc2c6f31e1) )
+ROM_END
+
+
+ROM_START( dragons1 )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "336.p1", 0x000000, 0x080000, CRC(f25c71ad) SHA1(803fb6cd6a7ada59678ad901ff9788b1e54ddd0c) )
+ ROM_LOAD16_BYTE( "336.p2", 0x000001, 0x080000, CRC(f353448c) SHA1(f0f966ca15d503e01b40e901765ff0888463b65d) )
+
+ //NEO_SFIX_128K( "094-s1.s1", CRC(2f8748a2) SHA1(5cc723c4284120473d63d8b0c1a3b3be74bdc324) )
+ NEO_SFIX_128K( "336.s1", CRC(706477a7) SHA1(8cbee7f6832e7edd2dc792ca330420a6a984b879) )
+
+ NEO_BIOS_AUDIO_128K( "094-m1.m1", CRC(78c851cb) SHA1(a9923c002e4e2171a564af45cff0958c5d57b275) )
+
+ ROM_REGION( 0x500000, "ymsnd", 0 )
+ ROM_LOAD( "094-v1.v1", 0x000000, 0x200000, CRC(6c31223c) SHA1(ede3a2806d7d872a0f737626a23ecce200b534e6) )
+ ROM_LOAD( "094-v2.v2", 0x200000, 0x200000, CRC(8edb776c) SHA1(a9eac5e24f83ccdcf303d63261747b1bad876a24) )
+ ROM_LOAD( "094-v3.v3", 0x400000, 0x100000, CRC(c63b9285) SHA1(6bbbacfe899e204e74657d6c3f3d05ce75e432f1) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "336.c1", 0x000000, 0x1000000, CRC(81821826) SHA1(b7c1a53e32633383675206a16c68f6f2ff984865) )
+ ROM_LOAD16_BYTE( "336.c2", 0x000001, 0x1000000, CRC(3601d568) SHA1(800323e52f5d33b402f84d31850b42c688082d67) )
+ROM_END
+
+
+ROM_START( eightmaneb )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "025eb.p1", 0x000000, 0x080000, CRC(6356e4b9) SHA1(c02fe3fe7c59592c464cba05183fe98b1ac13f54) )
+
+ NEO_SFIX_128K( "025-s1.s1", CRC(a402202b) SHA1(75c44e1af459af155f5b892fd18706268dd5e602) )
+
+ NEO_BIOS_AUDIO_128K( "025-m1.m1", CRC(9927034c) SHA1(205665361c5b2ab4f01ec480dd3c9b69db858d09) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "025-v1.v1", 0x000000, 0x100000, CRC(4558558a) SHA1(a4b277703ed67225c652be0d618daeca65a27b88) )
+ ROM_LOAD( "025-v2.v2", 0x100000, 0x100000, CRC(c5e052e9) SHA1(fa1119c90ce4c706a6aa0c17d7bc06aa3068d9b2) )
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "025-c1.c1", 0x000000, 0x100000, CRC(555e16a4) SHA1(1c96f3d2fd0991680fbf627a6cdd26ad2cd60319) )
+ ROM_LOAD16_BYTE( "025-c2.c2", 0x000001, 0x100000, CRC(e1ee51c3) SHA1(da8d074bb4e923ed7b8a154fd31b42f2d65b8e96) )
+ ROM_LOAD16_BYTE( "025-c3.c3", 0x200000, 0x080000, CRC(0923d5b0) SHA1(ab72ba1e3ebf56dd356f9ad181f986b1360a1089) )
+ ROM_LOAD16_BYTE( "025-c4.c4", 0x200001, 0x080000, CRC(e3eca67b) SHA1(88154cbc1a261c2f425430119ebc08a30adc9675) )
+ROM_END
+
+
+ROM_START( fightfevbs )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "060bs.p1", 0x000000, 0x080000, CRC(10bc5d92) SHA1(b0bc22f7ece6548512f7582678efe260487c6ed4) )
+ ROM_LOAD16_WORD_SWAP( "060k.p2", 0x080000, 0x080000, CRC(b0801d5f) SHA1(085746d8f5d271d5f84ccbb7f577193c391f88d4) )
+
+ NEO_SFIX_128K( "060bs.s1", CRC(7f012104) SHA1(f366dcc3923655dff16ec08a40d5fce22a84257d) )
+
+ NEO_BIOS_AUDIO_128K( "060-m1.m1", CRC(0b7c4e65) SHA1(999a1e784de18db3f1332b30bc425836ea6970be) )
+
+ ROM_REGION( 0x300000, "ymsnd", 0 )
+ ROM_LOAD( "060-v1.v1", 0x000000, 0x200000, CRC(f417c215) SHA1(0f53b8dd056f43b5d880628e8b74c2b27881ffac) )
+ ROM_LOAD( "060-v2.v2", 0x200000, 0x100000, CRC(efcff7cf) SHA1(e8372303724284a750b706dc6bf7641e4c52bb95) )
+
+ ROM_REGION( 0x0800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "060-c1.c1", 0x0000000, 0x200000, CRC(8908fff9) SHA1(f8c16ab0248b60f3a62e0d4d65c456e2f8e4da49) )
+ ROM_LOAD16_BYTE( "060-c2.c2", 0x0000001, 0x200000, CRC(c6649492) SHA1(5d39b077387ed6897ac075ede4a2aa94bb64545e) )
+ ROM_LOAD16_BYTE( "060-c3.c3", 0x0400000, 0x200000, CRC(0956b437) SHA1(c70be8b5cebf321afe4c3f5e9a12413c3077694a) )
+ ROM_LOAD16_BYTE( "060-c4.c4", 0x0400001, 0x200000, CRC(026f3b62) SHA1(d608483b70d60e7aa0e41f25a8b3fed508129eb7) )
+ROM_END
+
+ROM_START( fightfevk ) /* Fight Fever - Hack by UNKNOWN - (Kanji Patch) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "060-epr.sp2", 0x000000, 0x080000, CRC(3032041b) SHA1(4b8ed2e6f74579ea35a53e06ccac42d6905b0f51) )
+ ROM_LOAD16_WORD_SWAP( "060k.p2", 0x080000, 0x080000, CRC(b0801d5f) SHA1(085746d8f5d271d5f84ccbb7f577193c391f88d4) )
+
+ NEO_SFIX_128K( "060k.s1", CRC(51eaac30) SHA1(BF587471680B2795F02D0C4175A07A3AF3543999) )
+
+ NEO_BIOS_AUDIO_128K( "060-m1.m1", CRC(0b7c4e65) SHA1(999a1e784de18db3f1332b30bc425836ea6970be) )
+
+ ROM_REGION( 0x300000, "ymsnd", 0 )
+ ROM_LOAD( "060-v1.v1", 0x000000, 0x200000, CRC(f417c215) SHA1(0f53b8dd056f43b5d880628e8b74c2b27881ffac) )
+ ROM_LOAD( "060k.v2", 0x200000, 0x100000, CRC(64470036) SHA1(eb2b34b3c01eb5c1a0a40cff6f4c0f2eee7bf7f2) )
+
+ ROM_REGION( 0x800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "060-c1.c1", 0x0000000, 0x200000, CRC(8908fff9) SHA1(f8c16ab0248b60f3a62e0d4d65c456e2f8e4da49) )
+ ROM_LOAD16_BYTE( "060-c2.c2", 0x0000001, 0x200000, CRC(c6649492) SHA1(5d39b077387ed6897ac075ede4a2aa94bb64545e) )
+ ROM_LOAD16_BYTE( "060-c3.c3", 0x0400000, 0x200000, CRC(0956b437) SHA1(c70be8b5cebf321afe4c3f5e9a12413c3077694a) )
+ ROM_LOAD16_BYTE( "060-c4.c4", 0x0400001, 0x200000, CRC(026f3b62) SHA1(d608483b70d60e7aa0e41f25a8b3fed508129eb7) )
+ROM_END
+
+
+ROM_START( flipshotk )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "247k.p1", 0x000000, 0x080000, CRC(d2e7a7e3) SHA1(1ff4f070fcc658bbc7dc69e16c87f82d7392d100) )
+
+ NEO_SFIX_128K( "247-s1.s1", CRC(6300185c) SHA1(cb2f1de085fde214f96a962b1c2fa285eb387d44) )
+
+ NEO_BIOS_AUDIO_128K( "247-m1.m1", CRC(a9fe0144) SHA1(4cc076ecce9216a373f3dcd7ba28a03d6050e522) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "247-v1.v1", 0x000000, 0x200000, CRC(42ec743d) SHA1(f45b5167ebcbd59300f4e5b05448cd421654102a) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "247k.c1", 0x000000, 0x200000, CRC(1ccfeff9) SHA1(3575b84acca6ec0f26f4a0ad30a16c140e1c0b2e) )
+ ROM_LOAD16_BYTE( "247k.c2", 0x000001, 0x200000, CRC(648cdd5d) SHA1(8a0aaf13e2539e48f9b0b18f8154aa50bf4bed2a) )
+ROM_END
+
+
+ROM_START( galaxyfgb )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "078b.p1", 0x100000, 0x100000, CRC(6288cb4a) SHA1(8fb3c124664512f5aa5a8c75064605955b2e24fb) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "078-s1.s1", CRC(72f8923e) SHA1(da908bffc2b5d8baa2002dbb5bfb3aa17d2472b7) )
+
+ NEO_BIOS_AUDIO_128K( "078-m1.m1", CRC(8e9e3b10) SHA1(7c44d1dbd4f8d337c99e90361d1dab837df85e31) )
+
+ ROM_REGION( 0x500000, "ymsnd", 0 )
+ ROM_LOAD( "078-v1.v1", 0x000000, 0x200000, CRC(e3b735ac) SHA1(e16dfac09aef8115a20bae0bef8c86d4e7d0dc4a) )
+ ROM_LOAD( "078-v2.v2", 0x200000, 0x200000, CRC(6a8e78c2) SHA1(f60b1f8a3a945f279a582745e82f37278ce5d83b) )
+ ROM_LOAD( "078-v3.v3", 0x400000, 0x100000, CRC(70bca656) SHA1(218b7079c90898e7faa382b386e77f81f415e7ac) )
+
+ ROM_REGION( 0xe00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "078-c1.c1", 0x000000, 0x200000, CRC(c890c7c0) SHA1(b96c18a41c34070a4f24ca77cb7516fae8b0fd0c) )
+ ROM_LOAD16_BYTE( "078-c2.c2", 0x000001, 0x200000, CRC(b6d25419) SHA1(e089df9c9a9645f706e501108d634f4d222622a2) )
+ ROM_LOAD16_BYTE( "078-c3.c3", 0x400000, 0x200000, CRC(9d87e761) SHA1(ea1b6d7c9d5ef3a9b48968bde5a52d5699d591cc) )
+ ROM_LOAD16_BYTE( "078-c4.c4", 0x400001, 0x200000, CRC(765d7cb8) SHA1(7b9c86714d688602064d928c9d2b49d70bb7541e) )
+ ROM_LOAD16_BYTE( "078-c5.c5", 0x800000, 0x200000, CRC(e6b77e6a) SHA1(db3b8fc62a6f21c6653621c0665450d5d9a9913d) )
+ ROM_LOAD16_BYTE( "078-c6.c6", 0x800001, 0x200000, CRC(d779a181) SHA1(2761026abd9698a7b56114b76631563abd41fd12) )
+ ROM_LOAD16_BYTE( "078-c7.c7", 0xc00000, 0x100000, CRC(4f27d580) SHA1(c0f12496b45b2fe6e94aa8ac52b0157063127e0a) )
+ ROM_LOAD16_BYTE( "078-c8.c8", 0xc00001, 0x100000, CRC(0a7cc0d8) SHA1(68aaee6341c87e56ce11acc1c4ec8047839fe70d) )
+ROM_END
+
+ROM_START( galaxyfgbh ) // galaxyfgbh2014
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "078bh.p1", 0x100000, 0x100000, CRC(bbfffa22) SHA1(6bde48477f67241dce30107f84c38a8d0c34a81f) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "078-s1.s1", CRC(72f8923e) SHA1(da908bffc2b5d8baa2002dbb5bfb3aa17d2472b7) )
+
+ NEO_BIOS_AUDIO_128K( "078-m1.m1", CRC(8e9e3b10) SHA1(7c44d1dbd4f8d337c99e90361d1dab837df85e31) )
+
+ ROM_REGION( 0x500000, "ymsnd", 0 )
+ ROM_LOAD( "078-v1.v1", 0x000000, 0x200000, CRC(e3b735ac) SHA1(e16dfac09aef8115a20bae0bef8c86d4e7d0dc4a) )
+ ROM_LOAD( "078-v2.v2", 0x200000, 0x200000, CRC(6a8e78c2) SHA1(f60b1f8a3a945f279a582745e82f37278ce5d83b) )
+ ROM_LOAD( "078-v3.v3", 0x400000, 0x100000, CRC(70bca656) SHA1(218b7079c90898e7faa382b386e77f81f415e7ac) )
+
+ ROM_REGION( 0xe00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "078-c1.c1", 0x000000, 0x200000, CRC(c890c7c0) SHA1(b96c18a41c34070a4f24ca77cb7516fae8b0fd0c) )
+ ROM_LOAD16_BYTE( "078-c2.c2", 0x000001, 0x200000, CRC(b6d25419) SHA1(e089df9c9a9645f706e501108d634f4d222622a2) )
+ ROM_LOAD16_BYTE( "078-c3.c3", 0x400000, 0x200000, CRC(9d87e761) SHA1(ea1b6d7c9d5ef3a9b48968bde5a52d5699d591cc) )
+ ROM_LOAD16_BYTE( "078-c4.c4", 0x400001, 0x200000, CRC(765d7cb8) SHA1(7b9c86714d688602064d928c9d2b49d70bb7541e) )
+ ROM_LOAD16_BYTE( "078-c5.c5", 0x800000, 0x200000, CRC(e6b77e6a) SHA1(db3b8fc62a6f21c6653621c0665450d5d9a9913d) )
+ ROM_LOAD16_BYTE( "078-c6.c6", 0x800001, 0x200000, CRC(d779a181) SHA1(2761026abd9698a7b56114b76631563abd41fd12) )
+ ROM_LOAD16_BYTE( "078-c7.c7", 0xc00000, 0x100000, CRC(4f27d580) SHA1(c0f12496b45b2fe6e94aa8ac52b0157063127e0a) )
+ ROM_LOAD16_BYTE( "078-c8.c8", 0xc00001, 0x100000, CRC(0a7cc0d8) SHA1(68aaee6341c87e56ce11acc1c4ec8047839fe70d) )
+ROM_END
+
+
+ROM_START( ganryud )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "252-p1.p1", 0x100000, 0x100000, CRC(4b8ac4fb) SHA1(93d90271bff281862b03beba3809cf95a47a1e44) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "252-m1.m1", CRC(30cc4099) SHA1(46453b7aac41855a92724a785372f8daf931d8d4) )
+
+ ROM_REGION( 0x0400000, "ymsnd", 0 )
+ ROM_LOAD( "252-v1.v1", 0x000000, 0x400000, CRC(e5946733) SHA1(d5904a50465af03d6ff33399a98f3259721ca0b2) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "252d.c1", 0x0000000, 0x800000, CRC(6bf7605b) SHA1(6710cbc27d6ec35648f98f0ca541aaaeeffd0980) )
+ ROM_LOAD16_BYTE( "252d.c2", 0x0000001, 0x800000, CRC(596792ce) SHA1(ad9c8f8b0e95396fade2b485d11a1b3d4cb65f37) )
+ROM_END
+
+
+ROM_START( gowcaizrb )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "094b.p1", 0x100000, 0x100000, CRC(7d699c03) SHA1(f92f562e9bbb4b4eb1ac03e140bde4fd20fe41b2) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "094-s1.s1", CRC(2f8748a2) SHA1(5cc723c4284120473d63d8b0c1a3b3be74bdc324) )
+
+ NEO_BIOS_AUDIO_128K( "094-m1.m1", CRC(78c851cb) SHA1(a9923c002e4e2171a564af45cff0958c5d57b275) )
+
+ ROM_REGION( 0x500000, "ymsnd", 0 )
+ ROM_LOAD( "094-v1.v1", 0x000000, 0x200000, CRC(6c31223c) SHA1(ede3a2806d7d872a0f737626a23ecce200b534e6) )
+ ROM_LOAD( "094-v2.v2", 0x200000, 0x200000, CRC(8edb776c) SHA1(a9eac5e24f83ccdcf303d63261747b1bad876a24) )
+ ROM_LOAD( "094-v3.v3", 0x400000, 0x100000, CRC(c63b9285) SHA1(6bbbacfe899e204e74657d6c3f3d05ce75e432f1) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "094-c1.c1", 0x000000, 0x200000, CRC(042f6af5) SHA1(1c50df6a1a53ffb3079ea0a19c746f5c9536a3ed) )
+ ROM_LOAD16_BYTE( "094-c2.c2", 0x000001, 0x200000, CRC(0fbcd046) SHA1(9a6dc920a877f27424477c3478907b23afbaa5ea) )
+ ROM_LOAD16_BYTE( "094-c3.c3", 0x400000, 0x200000, CRC(58bfbaa1) SHA1(4c6f9cf138c5e6dfe89a45e2a690a986c75f5bfc) )
+ ROM_LOAD16_BYTE( "094-c4.c4", 0x400001, 0x200000, CRC(9451ee73) SHA1(7befee4a886b1d7493c06cefb7abf4ec01c14a8b) )
+ ROM_LOAD16_BYTE( "094-c5.c5", 0x800000, 0x200000, CRC(ff9cf48c) SHA1(5f46fb5d0812275b0006919d8540f22be7c16492) )
+ ROM_LOAD16_BYTE( "094-c6.c6", 0x800001, 0x200000, CRC(31bbd918) SHA1(7ff8c5e3f17d40e7a8a189ad8f8026de55368810) )
+ ROM_LOAD16_BYTE( "094-c7.c7", 0xc00000, 0x200000, CRC(2091ec04) SHA1(a81d4bdbef1ac6ea49845dc30e31bf9745694100) )
+ ROM_LOAD16_BYTE( "094-c8.c8", 0xc00001, 0x200000, CRC(d80dd241) SHA1(1356a64e4d4e271f62cd0d83f79ee9c906440810) )
+ROM_END
+
+ROM_START( gowcaizrbs )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "094bs.p1", 0x100000, 0x100000, CRC(d4f37cc4) SHA1(deec8a0516ae2057551713098e81be53c751eff7) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "094-s1.s1", CRC(2f8748a2) SHA1(5cc723c4284120473d63d8b0c1a3b3be74bdc324) )
+
+ NEO_BIOS_AUDIO_128K( "094-m1.m1", CRC(78c851cb) SHA1(a9923c002e4e2171a564af45cff0958c5d57b275) )
+
+ ROM_REGION( 0x500000, "ymsnd", 0 )
+ ROM_LOAD( "094-v1.v1", 0x000000, 0x200000, CRC(6c31223c) SHA1(ede3a2806d7d872a0f737626a23ecce200b534e6) )
+ ROM_LOAD( "094-v2.v2", 0x200000, 0x200000, CRC(8edb776c) SHA1(a9eac5e24f83ccdcf303d63261747b1bad876a24) )
+ ROM_LOAD( "094-v3.v3", 0x400000, 0x100000, CRC(c63b9285) SHA1(6bbbacfe899e204e74657d6c3f3d05ce75e432f1) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "094-c1.c1", 0x000000, 0x200000, CRC(042f6af5) SHA1(1c50df6a1a53ffb3079ea0a19c746f5c9536a3ed) )
+ ROM_LOAD16_BYTE( "094-c2.c2", 0x000001, 0x200000, CRC(0fbcd046) SHA1(9a6dc920a877f27424477c3478907b23afbaa5ea) )
+ ROM_LOAD16_BYTE( "094-c3.c3", 0x400000, 0x200000, CRC(58bfbaa1) SHA1(4c6f9cf138c5e6dfe89a45e2a690a986c75f5bfc) )
+ ROM_LOAD16_BYTE( "094-c4.c4", 0x400001, 0x200000, CRC(9451ee73) SHA1(7befee4a886b1d7493c06cefb7abf4ec01c14a8b) )
+ ROM_LOAD16_BYTE( "094-c5.c5", 0x800000, 0x200000, CRC(ff9cf48c) SHA1(5f46fb5d0812275b0006919d8540f22be7c16492) )
+ ROM_LOAD16_BYTE( "094-c6.c6", 0x800001, 0x200000, CRC(31bbd918) SHA1(7ff8c5e3f17d40e7a8a189ad8f8026de55368810) )
+ ROM_LOAD16_BYTE( "094-c7.c7", 0xc00000, 0x200000, CRC(2091ec04) SHA1(a81d4bdbef1ac6ea49845dc30e31bf9745694100) )
+ ROM_LOAD16_BYTE( "094-c8.c8", 0xc00001, 0x200000, CRC(d80dd241) SHA1(1356a64e4d4e271f62cd0d83f79ee9c906440810) )
+ROM_END
+
+ROM_START( gowcaizrrv )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "094rv.p1", 0x100000, 0x100000, CRC(0316a857) SHA1(8dbe033e3d3d6925c6187335acdd10369b274b46) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "094-s1.s1", CRC(2f8748a2) SHA1(5cc723c4284120473d63d8b0c1a3b3be74bdc324) )
+
+ NEO_BIOS_AUDIO_128K( "094-m1.m1", CRC(78c851cb) SHA1(a9923c002e4e2171a564af45cff0958c5d57b275) )
+
+ ROM_REGION( 0x500000, "ymsnd", 0 )
+ ROM_LOAD( "094-v1.v1", 0x000000, 0x200000, CRC(6c31223c) SHA1(ede3a2806d7d872a0f737626a23ecce200b534e6) )
+ ROM_LOAD( "094-v2.v2", 0x200000, 0x200000, CRC(8edb776c) SHA1(a9eac5e24f83ccdcf303d63261747b1bad876a24) )
+ ROM_LOAD( "094-v3.v3", 0x400000, 0x100000, CRC(c63b9285) SHA1(6bbbacfe899e204e74657d6c3f3d05ce75e432f1) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "094-c1.c1", 0x000000, 0x200000, CRC(042f6af5) SHA1(1c50df6a1a53ffb3079ea0a19c746f5c9536a3ed) )
+ ROM_LOAD16_BYTE( "094-c2.c2", 0x000001, 0x200000, CRC(0fbcd046) SHA1(9a6dc920a877f27424477c3478907b23afbaa5ea) )
+ ROM_LOAD16_BYTE( "094-c3.c3", 0x400000, 0x200000, CRC(58bfbaa1) SHA1(4c6f9cf138c5e6dfe89a45e2a690a986c75f5bfc) )
+ ROM_LOAD16_BYTE( "094-c4.c4", 0x400001, 0x200000, CRC(9451ee73) SHA1(7befee4a886b1d7493c06cefb7abf4ec01c14a8b) )
+ ROM_LOAD16_BYTE( "094-c5.c5", 0x800000, 0x200000, CRC(ff9cf48c) SHA1(5f46fb5d0812275b0006919d8540f22be7c16492) )
+ ROM_LOAD16_BYTE( "094-c6.c6", 0x800001, 0x200000, CRC(31bbd918) SHA1(7ff8c5e3f17d40e7a8a189ad8f8026de55368810) )
+ ROM_LOAD16_BYTE( "094-c7.c7", 0xc00000, 0x200000, CRC(2091ec04) SHA1(a81d4bdbef1ac6ea49845dc30e31bf9745694100) )
+ ROM_LOAD16_BYTE( "094-c8.c8", 0xc00001, 0x200000, CRC(d80dd241) SHA1(1356a64e4d4e271f62cd0d83f79ee9c906440810) )
+ROM_END
+
+ROM_START( gowcaizry )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "094y.p1", 0x100000, 0x100000, CRC(c8f1f4ae) SHA1(95f9fec0e90380a93423f5291eafb2b5b837e397) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "094-s1.s1", CRC(2f8748a2) SHA1(5cc723c4284120473d63d8b0c1a3b3be74bdc324) )
+
+ NEO_BIOS_AUDIO_128K( "094-m1.m1", CRC(78c851cb) SHA1(a9923c002e4e2171a564af45cff0958c5d57b275) )
+
+ ROM_REGION( 0x500000, "ymsnd", 0 )
+ ROM_LOAD( "094-v1.v1", 0x000000, 0x200000, CRC(6c31223c) SHA1(ede3a2806d7d872a0f737626a23ecce200b534e6) )
+ ROM_LOAD( "094-v2.v2", 0x200000, 0x200000, CRC(8edb776c) SHA1(a9eac5e24f83ccdcf303d63261747b1bad876a24) )
+ ROM_LOAD( "094-v3.v3", 0x400000, 0x100000, CRC(c63b9285) SHA1(6bbbacfe899e204e74657d6c3f3d05ce75e432f1) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "094-c1.c1", 0x000000, 0x200000, CRC(042f6af5) SHA1(1c50df6a1a53ffb3079ea0a19c746f5c9536a3ed) )
+ ROM_LOAD16_BYTE( "094-c2.c2", 0x000001, 0x200000, CRC(0fbcd046) SHA1(9a6dc920a877f27424477c3478907b23afbaa5ea) )
+ ROM_LOAD16_BYTE( "094-c3.c3", 0x400000, 0x200000, CRC(58bfbaa1) SHA1(4c6f9cf138c5e6dfe89a45e2a690a986c75f5bfc) )
+ ROM_LOAD16_BYTE( "094-c4.c4", 0x400001, 0x200000, CRC(9451ee73) SHA1(7befee4a886b1d7493c06cefb7abf4ec01c14a8b) )
+ ROM_LOAD16_BYTE( "094-c5.c5", 0x800000, 0x200000, CRC(ff9cf48c) SHA1(5f46fb5d0812275b0006919d8540f22be7c16492) )
+ ROM_LOAD16_BYTE( "094-c6.c6", 0x800001, 0x200000, CRC(31bbd918) SHA1(7ff8c5e3f17d40e7a8a189ad8f8026de55368810) )
+ ROM_LOAD16_BYTE( "094-c7.c7", 0xc00000, 0x200000, CRC(2091ec04) SHA1(a81d4bdbef1ac6ea49845dc30e31bf9745694100) )
+ ROM_LOAD16_BYTE( "094y.c8", 0xc00001, 0x200000, CRC(0d31dee6) SHA1(4979aa3daa7e490fbe39e7b3c70cbb2ef7551c5f) )
+ROM_END
+
+
+ROM_START( gpilotscd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "020cd.p1", 0x000000, 0x100000, CRC(f139df88) SHA1(8a2ce01f83c3c529b3c823555e19f815e0a558b3) )
+
+ NEO_SFIX_128K( "020-s1.s1", CRC(a6d83d53) SHA1(9a8c092f89521cc0b27a385aa72e29cbaca926c5) )
+
+ NEO_BIOS_AUDIO_64K( "020cd.m1", CRC(08697f52) SHA1(670998421355ccfdc5e778123b9df54df4dcde76) )
+ // use this to get full sound
+ //NEO_BIOS_AUDIO_128K( "020-m1.m1", CRC(48409377) SHA1(0e212d2c76856a90b2c2fdff675239525972ac43) )
+
+ ROM_REGION( 0x180000, "ymsnd", 0 )
+ ROM_LOAD( "020cd.v11", 0x000000, 0x100000, CRC(1285132c) SHA1(dad570624888550937ea15180c9ceb5fcdb418b8) )
+ ROM_LOAD( "020-v12.v12", 0x100000, 0x080000, CRC(4a9e6f03) SHA1(d3ac11f333b03d8a318921bdaefb14598e289a14) )
+
+ ROM_REGION( 0x080000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "020-v21.v21", 0x000000, 0x080000, CRC(7abf113d) SHA1(5b2a0e70f2eaf4638b44702dacd4cb17838fb1d5) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "020-c1.c1", 0x000000, 0x100000, CRC(bd6fe78e) SHA1(50b704862cd79d64fa488e621b079f6e413c33bc) )
+ ROM_LOAD16_BYTE( "020-c2.c2", 0x000001, 0x100000, CRC(5f4a925c) SHA1(71c5ef8141234daaa7025427a6c65e79766973a5) )
+ ROM_LOAD16_BYTE( "020-c3.c3", 0x200000, 0x100000, CRC(d1e42fd0) SHA1(f0d476aebbdc2ce008f5f0783be86d295b24aa44) )
+ ROM_LOAD16_BYTE( "020-c4.c4", 0x200001, 0x100000, CRC(edde439b) SHA1(79be7b10ecdab54c2f77062b8f5fda0e299fa982) )
+ROM_END
+
+ROM_START( gpilotse )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "020eh.p1", 0x000000, 0x080000, CRC(80d6950e) SHA1(c83e119c316b9c5d86e06fff598b1be7e2cc53a5) )
+ ROM_LOAD16_WORD_SWAP( "020-p2.p2", 0x080000, 0x020000, CRC(edcb22ac) SHA1(505d2db38ae999b7d436e8f2ff56b81796d62b54) )
+
+ NEO_SFIX_128K( "020-s1.s1", CRC(a6d83d53) SHA1(9a8c092f89521cc0b27a385aa72e29cbaca926c5) )
+
+ NEO_BIOS_AUDIO_128K( "020-m1.m1", CRC(48409377) SHA1(0e212d2c76856a90b2c2fdff675239525972ac43) )
+
+ ROM_REGION( 0x180000, "ymsnd", 0 )
+ ROM_LOAD( "020-v11.v11", 0x000000, 0x100000, CRC(1b526c8b) SHA1(2801868d2badcf8aaf5d490e010e4049d81d7bc1) )
+ ROM_LOAD( "020-v12.v12", 0x100000, 0x080000, CRC(4a9e6f03) SHA1(d3ac11f333b03d8a318921bdaefb14598e289a14) )
+
+ ROM_REGION( 0x080000, "ym.deltat", 0 )
+ ROM_LOAD( "020-v21.v21", 0x000000, 0x080000, CRC(7abf113d) SHA1(5b2a0e70f2eaf4638b44702dacd4cb17838fb1d5) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "020-c1.c1", 0x000000, 0x100000, CRC(bd6fe78e) SHA1(50b704862cd79d64fa488e621b079f6e413c33bc) )
+ ROM_LOAD16_BYTE( "020-c2.c2", 0x000001, 0x100000, CRC(5f4a925c) SHA1(71c5ef8141234daaa7025427a6c65e79766973a5) )
+ ROM_LOAD16_BYTE( "020-c3.c3", 0x200000, 0x100000, CRC(d1e42fd0) SHA1(f0d476aebbdc2ce008f5f0783be86d295b24aa44) )
+ ROM_LOAD16_BYTE( "020-c4.c4", 0x200001, 0x100000, CRC(edde439b) SHA1(79be7b10ecdab54c2f77062b8f5fda0e299fa982) )
+ROM_END
+
+ROM_START( gpilotspx )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "020px.p1", 0x000000, 0x080000, CRC(69c5532d) SHA1(8ee19e1f06f9168b0fa4dfece569e79a50fec259) )
+ ROM_LOAD16_WORD_SWAP( "020-p2.p2", 0x080000, 0x020000, CRC(edcb22ac) SHA1(505d2db38ae999b7d436e8f2ff56b81796d62b54) )
+
+ NEO_SFIX_128K( "020-s1.s1", CRC(a6d83d53) SHA1(9a8c092f89521cc0b27a385aa72e29cbaca926c5) )
+
+ NEO_BIOS_AUDIO_128K( "020-m1.m1", CRC(48409377) SHA1(0e212d2c76856a90b2c2fdff675239525972ac43) )
+
+ ROM_REGION( 0x180000, "ymsnd", 0 )
+ ROM_LOAD( "020-v11.v11", 0x000000, 0x100000, CRC(1b526c8b) SHA1(2801868d2badcf8aaf5d490e010e4049d81d7bc1) )
+ ROM_LOAD( "020-v12.v12", 0x100000, 0x080000, CRC(4a9e6f03) SHA1(d3ac11f333b03d8a318921bdaefb14598e289a14) )
+
+ ROM_REGION( 0x080000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "020-v21.v21", 0x000000, 0x080000, CRC(7abf113d) SHA1(5b2a0e70f2eaf4638b44702dacd4cb17838fb1d5) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "020-c1.c1", 0x000000, 0x100000, CRC(bd6fe78e) SHA1(50b704862cd79d64fa488e621b079f6e413c33bc) )
+ ROM_LOAD16_BYTE( "020-c2.c2", 0x000001, 0x100000, CRC(5f4a925c) SHA1(71c5ef8141234daaa7025427a6c65e79766973a5) )
+ ROM_LOAD16_BYTE( "020-c3.c3", 0x200000, 0x100000, CRC(d1e42fd0) SHA1(f0d476aebbdc2ce008f5f0783be86d295b24aa44) )
+ ROM_LOAD16_BYTE( "020-c4.c4", 0x200001, 0x100000, CRC(edde439b) SHA1(79be7b10ecdab54c2f77062b8f5fda0e299fa982) )
+ROM_END
+
+
+ROM_START( ironcladb )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "220b.p1", 0x000000, 0x200000, CRC(65849961) SHA1(2846081bb1451a209412159991bfac95d394fe3a) )
+
+ NEO_SFIX_128K( "proto_220-s1.s1", CRC(372fe217) SHA1(493433e682f519bf647e1481c8bdd3a980830ffb) )
+
+ NEO_BIOS_AUDIO_128K( "proto_220-m1.m1", CRC(3a08bb63) SHA1(d8fbbf42a006ccafc3cd99808d28c82dbaac4590) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "proto_220-v1.v1", 0x000000, 0x400000, CRC(8f30a215) SHA1(0ee866a468c4c3608d55df2b5cb9243c8016d77c) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "220b.c1", 0x000000, 0x800000, CRC(621f4a09) SHA1(117a8e8bea5f880d8315b48bc5884eb805c5e678) )
+ ROM_LOAD16_BYTE( "220b.c2", 0x000001, 0x800000, CRC(7fec83e8) SHA1(769c2cb4ed4a9d7c29e3aad3f4601f1d24c96640) )
+ROM_END
+
+ROM_START( ironcladcd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "220cd.p1", 0x00000, 0xd4000, CRC(cf9257b0) SHA1(2a2742865862d313b5d856e5b500b56b36336ecd) )
+
+ NEO_SFIX_128K( "proto_220-s1.s1", CRC(372fe217) SHA1(493433e682f519bf647e1481c8bdd3a980830ffb) )
+
+ NEO_BIOS_AUDIO_64K( "220cd.m1", CRC(b4d7cab0) SHA1(23342f72595f9d460f2e94fbda437ba1364bb5ed) )
+
+ ROM_REGION( 0x100000, "ymsnd", 0 )
+ ROM_LOAD( "220cd.v1", 0x000000, 0x100000, CRC(f7fd9baa) SHA1(a9362d405705f03a1759c2034df0c48daa15b71d) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_220-c1.c1", 0x000000, 0x400000, CRC(9aa2b7dc) SHA1(6b3dff292c86f949890b1f8201bc5278f38c2668) )
+ ROM_LOAD16_BYTE( "proto_220-c2.c2", 0x000001, 0x400000, CRC(8a2ad708) SHA1(9568ac4cc0552e7fd3e50d3cd8d9f0f4fe7df1d4) )
+ ROM_LOAD16_BYTE( "proto_220-c3.c3", 0x800000, 0x400000, CRC(d67fb15a) SHA1(842971aeaf3c92e70f7c653bbf29058bc60f5b71) )
+ ROM_LOAD16_BYTE( "proto_220-c4.c4", 0x800001, 0x400000, CRC(e73ea38b) SHA1(27138d588e61e86c292f12d16e36c3681075c607) )
+ROM_END
+
+
+ROM_START( jockeygpd )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "008-epr.p1", 0x000000, 0x100000, CRC(2fb7f388) SHA1(e3c9b03944b4c10cf5081caaf9c8be1f08c06493) )
+ ROM_FILL( 0x100000, 0x100000, 0xff )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "008-mg1.m1", CRC(d163c690) SHA1(1dfd04d20c5985037f07cd01000d0b04f3a8f4f4) )
+
+ ROM_REGION( 0x0200000, "ymsnd", 0 )
+ ROM_LOAD( "008-v1.v1", 0x000000, 0x200000, CRC(443eadba) SHA1(3def3c22f0e276bc4c2fc7ff70ce473c08b0d2df) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "008d.c1", 0x0000000, 0x800000, CRC(ea259019) SHA1(c14dc59a43e255ef12d8d832b2860f1a84c48170) )
+ ROM_LOAD16_BYTE( "008d.c2", 0x0000001, 0x800000, CRC(97f270be) SHA1(06e03b26bacb8568c69ccf22e58175426a69e01b) )
+ROM_END
+
+
+ROM_START( joyjoycd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "021cd.p1", 0x000000, 0x080000, CRC(a483fde0) SHA1(c42a04f5fec60678cbe20bc77675e0128aadf31c) )
+
+ NEO_SFIX_128K( "021-s1.s1", CRC(6956d778) SHA1(e3757776d60dc07d8e07c9ca61b223b14732f860) )
+
+ NEO_BIOS_AUDIO_64K( "021cd.m1", CRC(e93556ad) SHA1(616fac84ec2fa80ef8f43fcf993a3186d43a96eb) )
+
+ ROM_REGION( 0x080000, "ymsnd", 0 )
+ ROM_LOAD( "021cd.v1", 0x000000, 0x080000, CRC(241235cd) SHA1(bc4992dde75134c934f6374f370d1831c8160633) )
+
+ ROM_REGION( 0x080000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "021-v21.v21", 0x000000, 0x080000, CRC(8ed20a86) SHA1(d15cba5eac19ea56fdd4877541f1bb3eb755ebba) )
+
+ ROM_REGION( 0x100000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "021-c1.c1", 0x000000, 0x080000, CRC(509250ec) SHA1(d6ddb16d8222088f153a85a905bcb99541a5f2cf) )
+ ROM_LOAD16_BYTE( "021-c2.c2", 0x000001, 0x080000, CRC(09ed5258) SHA1(6bf50cd10236e29146b49e714a0e0ebcfe30a682) )
+ROM_END
+
+ROM_START( joyjoycd1 )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "021cd.p1", 0x000000, 0x080000, CRC(a483fde0) SHA1(c42a04f5fec60678cbe20bc77675e0128aadf31c) )
+
+ NEO_SFIX_128K( "021-s1.s1", CRC(6956d778) SHA1(e3757776d60dc07d8e07c9ca61b223b14732f860) )
+
+ NEO_BIOS_AUDIO_64K( "021cd1.m1", CRC(72072960) SHA1(83c70714fc458e78f39836b3a86a9b07a553bcdd) )
+
+ ROM_REGION( 0x080000, "ymsnd", 0 )
+ ROM_LOAD( "021cd1.v11", 0x000000, 0x080000, CRC(4fb2fbcc) SHA1(b1defbfd68eb824468c352c91e98d2fc4fba539d) )
+
+ ROM_REGION( 0x080000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "021-v21.v21", 0x000000, 0x080000, CRC(8ed20a86) SHA1(d15cba5eac19ea56fdd4877541f1bb3eb755ebba) )
+
+ ROM_REGION( 0x100000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "021-c1.c1", 0x000000, 0x080000, CRC(509250ec) SHA1(d6ddb16d8222088f153a85a905bcb99541a5f2cf) )
+ ROM_LOAD16_BYTE( "021-c2.c2", 0x000001, 0x080000, CRC(09ed5258) SHA1(6bf50cd10236e29146b49e714a0e0ebcfe30a682) )
+ROM_END
+
+
+ROM_START( kabukiklb )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "092b.p1", 0x100000, 0x100000, CRC(9e814a43) SHA1(75f764d19274fefb990e63ae5b6e207370ee4f75) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "092-s1.s1", CRC(a3d68ee2) SHA1(386f6110a16967a72fbf788f9d968fddcdcd2889) )
+
+ NEO_BIOS_AUDIO_128K( "092-m1.m1", CRC(91957ef6) SHA1(7b6907532a0e02ceb643623cbd689cf228776ed1) )
+
+ ROM_REGION( 0x700000, "ymsnd", 0 )
+ ROM_LOAD( "092-v1.v1", 0x000000, 0x200000, CRC(69e90596) SHA1(1a2007d7784b3ce90d115980c3353862f1664d45) )
+ ROM_LOAD( "092-v2.v2", 0x200000, 0x200000, CRC(7abdb75d) SHA1(0bff764889fe02f37877514c7fc450250839f632) )
+ ROM_LOAD( "092-v3.v3", 0x400000, 0x200000, CRC(eccc98d3) SHA1(b0dfbdb1ea045cb961323ac6906ab342256c3dc7) )
+ ROM_LOAD( "092-v4.v4", 0x600000, 0x100000, CRC(a7c9c949) SHA1(574bc55b45e81ce357b14f5992426115de25cd35) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "092-c1.c1", 0x000000, 0x400000, CRC(2a9fab01) SHA1(aa9f037df33ae0575b328734c76c0918ae1917e9) )
+ ROM_LOAD16_BYTE( "092-c2.c2", 0x000001, 0x400000, CRC(6d2bac02) SHA1(dfe96b62883333872be432e8af1ae617c9e62698) )
+ ROM_LOAD16_BYTE( "092-c3.c3", 0x800000, 0x400000, CRC(5da735d6) SHA1(f1c05a73794ece15576a0a30c81f4a44faac475a) )
+ ROM_LOAD16_BYTE( "092-c4.c4", 0x800001, 0x400000, CRC(de07f997) SHA1(c27a4d4bef868eed38dc152ff37d4135b16cc991) )
+ROM_END
+
+ROM_START( kabukikleh ) /* Kabuki Klash - Far East of Eden - Enhance by Ydmis - (Can choose Manto, Karakuri, Jyashinsai and Lucifeller) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "092eh.p1", 0x100000, 0x100000, CRC(bcf0f989) SHA1(91D493486A2BE79817D31E75A192079497A45360) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "092-s1.s1", CRC(a3d68ee2) SHA1(386f6110a16967a72fbf788f9d968fddcdcd2889) )
+
+ NEO_BIOS_AUDIO_128K( "092-m1.m1", CRC(91957ef6) SHA1(7b6907532a0e02ceb643623cbd689cf228776ed1) )
+
+ ROM_REGION( 0x700000, "ymsnd", 0 )
+ ROM_LOAD( "092-v1.v1", 0x000000, 0x200000, CRC(69e90596) SHA1(1a2007d7784b3ce90d115980c3353862f1664d45) )
+ ROM_LOAD( "092-v2.v2", 0x200000, 0x200000, CRC(7abdb75d) SHA1(0bff764889fe02f37877514c7fc450250839f632) )
+ ROM_LOAD( "092-v3.v3", 0x400000, 0x200000, CRC(eccc98d3) SHA1(b0dfbdb1ea045cb961323ac6906ab342256c3dc7) )
+ ROM_LOAD( "092-v4.v4", 0x600000, 0x100000, CRC(a7c9c949) SHA1(574bc55b45e81ce357b14f5992426115de25cd35) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "092-c1.c1", 0x000000, 0x400000, CRC(2a9fab01) SHA1(aa9f037df33ae0575b328734c76c0918ae1917e9) )
+ ROM_LOAD16_BYTE( "092-c2.c2", 0x000001, 0x400000, CRC(6d2bac02) SHA1(dfe96b62883333872be432e8af1ae617c9e62698) )
+ ROM_LOAD16_BYTE( "092-c3.c3", 0x800000, 0x400000, CRC(5da735d6) SHA1(f1c05a73794ece15576a0a30c81f4a44faac475a) )
+ ROM_LOAD16_BYTE( "092-c4.c4", 0x800001, 0x400000, CRC(de07f997) SHA1(c27a4d4bef868eed38dc152ff37d4135b16cc991) )
+ROM_END
+
+ROM_START( kabukiklgm ) /* Kabuki Klash - Far East of Eden - Colour fix by Flycboy - (Title screen colour change - character color change) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "092gm.p1", 0x100000, 0x100000, CRC(af1f9201) SHA1(22C3B71608DAD065C09C01FFAE24382F8DDAE7D6) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "092-s1.s1", CRC(a3d68ee2) SHA1(386f6110a16967a72fbf788f9d968fddcdcd2889) )
+
+ NEO_BIOS_AUDIO_128K( "092-m1.m1", CRC(91957ef6) SHA1(7b6907532a0e02ceb643623cbd689cf228776ed1) )
+
+ ROM_REGION( 0x700000, "ymsnd", 0 )
+ ROM_LOAD( "092-v1.v1", 0x000000, 0x200000, CRC(69e90596) SHA1(1a2007d7784b3ce90d115980c3353862f1664d45) )
+ ROM_LOAD( "092-v2.v2", 0x200000, 0x200000, CRC(7abdb75d) SHA1(0bff764889fe02f37877514c7fc450250839f632) )
+ ROM_LOAD( "092-v3.v3", 0x400000, 0x200000, CRC(eccc98d3) SHA1(b0dfbdb1ea045cb961323ac6906ab342256c3dc7) )
+ ROM_LOAD( "092-v4.v4", 0x600000, 0x100000, CRC(a7c9c949) SHA1(574bc55b45e81ce357b14f5992426115de25cd35) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "092-c1.c1", 0x000000, 0x400000, CRC(2a9fab01) SHA1(aa9f037df33ae0575b328734c76c0918ae1917e9) )
+ ROM_LOAD16_BYTE( "092-c2.c2", 0x000001, 0x400000, CRC(6d2bac02) SHA1(dfe96b62883333872be432e8af1ae617c9e62698) )
+ ROM_LOAD16_BYTE( "092-c3.c3", 0x800000, 0x400000, CRC(5da735d6) SHA1(f1c05a73794ece15576a0a30c81f4a44faac475a) )
+ ROM_LOAD16_BYTE( "092-c4.c4", 0x800001, 0x400000, CRC(de07f997) SHA1(c27a4d4bef868eed38dc152ff37d4135b16cc991) )
+ROM_END
+
+ROM_START( kabukiklgmc ) /* Kabuki Klash - Far East of Eden - Colour fix by Flycboy - (Title screen colour change - character colour change) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "092gmc.p1", 0x100000, 0x100000, CRC(928aa6ce) SHA1(98D6EA9A3C1976B2311F395F2CC9ACEDBB5226EB) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "092-s1.s1", CRC(a3d68ee2) SHA1(386f6110a16967a72fbf788f9d968fddcdcd2889) )
+
+ NEO_BIOS_AUDIO_128K( "092-m1.m1", CRC(91957ef6) SHA1(7b6907532a0e02ceb643623cbd689cf228776ed1) )
+
+ ROM_REGION( 0x700000, "ymsnd", 0 )
+ ROM_LOAD( "092-v1.v1", 0x000000, 0x200000, CRC(69e90596) SHA1(1a2007d7784b3ce90d115980c3353862f1664d45) )
+ ROM_LOAD( "092-v2.v2", 0x200000, 0x200000, CRC(7abdb75d) SHA1(0bff764889fe02f37877514c7fc450250839f632) )
+ ROM_LOAD( "092-v3.v3", 0x400000, 0x200000, CRC(eccc98d3) SHA1(b0dfbdb1ea045cb961323ac6906ab342256c3dc7) )
+ ROM_LOAD( "092-v4.v4", 0x600000, 0x100000, CRC(a7c9c949) SHA1(574bc55b45e81ce357b14f5992426115de25cd35) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "092-c1.c1", 0x000000, 0x400000, CRC(2a9fab01) SHA1(aa9f037df33ae0575b328734c76c0918ae1917e9) )
+ ROM_LOAD16_BYTE( "092-c2.c2", 0x000001, 0x400000, CRC(6d2bac02) SHA1(dfe96b62883333872be432e8af1ae617c9e62698) )
+ ROM_LOAD16_BYTE( "092-c3.c3", 0x800000, 0x400000, CRC(5da735d6) SHA1(f1c05a73794ece15576a0a30c81f4a44faac475a) )
+ ROM_LOAD16_BYTE( "092-c4.c4", 0x800001, 0x400000, CRC(de07f997) SHA1(c27a4d4bef868eed38dc152ff37d4135b16cc991) )
+ROM_END
+
+ROM_START( kabukiklmc ) /* Kabuki Klash - Far East of Eden - Enhance by Creamymami - (Magic always max) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "092mc.p1", 0x100000, 0x100000, CRC(4807f850) SHA1(DE0094B2DAF59F46ACA1ACB5E84BF142D6A559AD) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "092-s1.s1", CRC(a3d68ee2) SHA1(386f6110a16967a72fbf788f9d968fddcdcd2889) )
+
+ NEO_BIOS_AUDIO_128K( "092-m1.m1", CRC(91957ef6) SHA1(7b6907532a0e02ceb643623cbd689cf228776ed1) )
+
+ ROM_REGION( 0x700000, "ymsnd", 0 )
+ ROM_LOAD( "092-v1.v1", 0x000000, 0x200000, CRC(69e90596) SHA1(1a2007d7784b3ce90d115980c3353862f1664d45) )
+ ROM_LOAD( "092-v2.v2", 0x200000, 0x200000, CRC(7abdb75d) SHA1(0bff764889fe02f37877514c7fc450250839f632) )
+ ROM_LOAD( "092-v3.v3", 0x400000, 0x200000, CRC(eccc98d3) SHA1(b0dfbdb1ea045cb961323ac6906ab342256c3dc7) )
+ ROM_LOAD( "092-v4.v4", 0x600000, 0x100000, CRC(a7c9c949) SHA1(574bc55b45e81ce357b14f5992426115de25cd35) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "092-c1.c1", 0x000000, 0x400000, CRC(2a9fab01) SHA1(aa9f037df33ae0575b328734c76c0918ae1917e9) )
+ ROM_LOAD16_BYTE( "092-c2.c2", 0x000001, 0x400000, CRC(6d2bac02) SHA1(dfe96b62883333872be432e8af1ae617c9e62698) )
+ ROM_LOAD16_BYTE( "092-c3.c3", 0x800000, 0x400000, CRC(5da735d6) SHA1(f1c05a73794ece15576a0a30c81f4a44faac475a) )
+ ROM_LOAD16_BYTE( "092-c4.c4", 0x800001, 0x400000, CRC(de07f997) SHA1(c27a4d4bef868eed38dc152ff37d4135b16cc991) )
+ROM_END
+
+ROM_START( kabukiklyc ) /* Kabuki Klash - Far East of Eden - Enhance by Creamymami and Ydmis - (Can choose Manto, Karakuri, Jyashinsai and Lucifeller - magic is always max - based on kabukleh) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "092yc.p1", 0x100000, 0x100000, CRC(dc1b9aae) SHA1(8B10ADF0B6192CEA555AB373E9716FAF64DCD897) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "092-s1.s1", CRC(a3d68ee2) SHA1(386f6110a16967a72fbf788f9d968fddcdcd2889) )
+
+ NEO_BIOS_AUDIO_128K( "092-m1.m1", CRC(91957ef6) SHA1(7b6907532a0e02ceb643623cbd689cf228776ed1) )
+
+ ROM_REGION( 0x700000, "ymsnd", 0 )
+ ROM_LOAD( "092-v1.v1", 0x000000, 0x200000, CRC(69e90596) SHA1(1a2007d7784b3ce90d115980c3353862f1664d45) )
+ ROM_LOAD( "092-v2.v2", 0x200000, 0x200000, CRC(7abdb75d) SHA1(0bff764889fe02f37877514c7fc450250839f632) )
+ ROM_LOAD( "092-v3.v3", 0x400000, 0x200000, CRC(eccc98d3) SHA1(b0dfbdb1ea045cb961323ac6906ab342256c3dc7) )
+ ROM_LOAD( "092-v4.v4", 0x600000, 0x100000, CRC(a7c9c949) SHA1(574bc55b45e81ce357b14f5992426115de25cd35) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "092-c1.c1", 0x000000, 0x400000, CRC(2a9fab01) SHA1(aa9f037df33ae0575b328734c76c0918ae1917e9) )
+ ROM_LOAD16_BYTE( "092-c2.c2", 0x000001, 0x400000, CRC(6d2bac02) SHA1(dfe96b62883333872be432e8af1ae617c9e62698) )
+ ROM_LOAD16_BYTE( "092-c3.c3", 0x800000, 0x400000, CRC(5da735d6) SHA1(f1c05a73794ece15576a0a30c81f4a44faac475a) )
+ ROM_LOAD16_BYTE( "092-c4.c4", 0x800001, 0x400000, CRC(de07f997) SHA1(c27a4d4bef868eed38dc152ff37d4135b16cc991) )
+ROM_END
+
+
+ROM_START( karnovreh ) /* Karnov's Revenge - Enhance by Ydmis - (Can choose Big Tornado) */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "066eh.p1", 0x000000, 0x100000, CRC(76dfb5be) SHA1(E7B72C50C5ABC1CF8088FB18A40560B787F5284E) )
+
+ NEO_SFIX_128K( "066-s1.s1", CRC(bae5d5e5) SHA1(aa69d9b235b781ec51f72a528fada9cb12e72cbc) )
+
+ NEO_BIOS_AUDIO_128K( "066-m1.m1", CRC(030beae4) SHA1(ceb6ee6c09514504efacdbca7b280901e4c97084) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "066-v1.v1", 0x000000, 0x200000, CRC(0b7ea37a) SHA1(34e7d4f6db053674a7e8c8b2e3e398777d5b02e6) )
+
+ ROM_REGION( 0xc00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "066-c1.c1", 0x000000, 0x200000, CRC(09dfe061) SHA1(ca4c0f0ce80967b4be2f18b72435c468bbfbac4c) )
+ ROM_LOAD16_BYTE( "066-c2.c2", 0x000001, 0x200000, CRC(e0f6682a) SHA1(addb4fbc30da2b8ffc86819d92a874eb232f67dd) )
+ ROM_LOAD16_BYTE( "066-c3.c3", 0x400000, 0x200000, CRC(a673b4f7) SHA1(d138f5b38fd65c61549ce36f5c4983f7c8a3e7f6) )
+ ROM_LOAD16_BYTE( "066-c4.c4", 0x400001, 0x200000, CRC(cb3dc5f4) SHA1(865d9ccfc3df517c341d6aac16120f6b6aa759fe) )
+ ROM_LOAD16_BYTE( "066-c5.c5", 0x800000, 0x200000, CRC(9a28785d) SHA1(19723e1f7ff429e8a038d89488b279f830dfaf6e) )
+ ROM_LOAD16_BYTE( "066-c6.c6", 0x800001, 0x200000, CRC(c15c01ed) SHA1(7cf5583e6610bcdc3b332896cefc71df84fb3f19) )
+ROM_END
+
+
+ROM_START( kizunab ) /* Enhance by Ydmis - (Can choose 2 hidden characters) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "216b.p1", 0x100000, 0x100000, CRC(a4ccd402) SHA1(038539BF889AF6186BB81DB330E6DBDF06F64FA8) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "216-s1.s1", CRC(efdc72d7) SHA1(be37cbf1852e2e4c907cc799b754b538544b6703) )
+
+ NEO_BIOS_AUDIO_128K( "216-m1.m1", CRC(1b096820) SHA1(72852e78c620038f8dafde5e54e02e418c31be9c) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "059-v1.v1", 0x000000, 0x200000, CRC(530c50fd) SHA1(29401cee7f7d2c199c7cb58092e86b28205e81ad) )
+ ROM_LOAD( "216-v2.v2", 0x200000, 0x200000, CRC(03667a8d) SHA1(3b0475e553a49f8788f32b0c84f82645cc6b4273) )
+ ROM_LOAD( "059-v3.v3", 0x400000, 0x200000, CRC(7038c2f9) SHA1(c1d6f86b24feba03fe009b58199d2eeabe572f4e) )
+ ROM_LOAD( "216-v4.v4", 0x600000, 0x200000, CRC(31b99bd6) SHA1(5871751f8e9e6b98337472c22b5e1c7ede0a9311) )
+
+ ROM_REGION( 0x1c00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "059-c1.c1", 0x0000000, 0x200000, CRC(763ba611) SHA1(d3262e0332c894ee149c5963f882cc5e5562ee57) )
+ ROM_LOAD16_BYTE( "059-c2.c2", 0x0000001, 0x200000, CRC(e05e8ca6) SHA1(986a9b16ff92bc101ab567d2d01348e093abea9a) )
+ ROM_LOAD16_BYTE( "216-c3.c3", 0x0800000, 0x400000, CRC(665c9f16) SHA1(7ec781a49a462f395b450460b29493f55134eac2) )
+ ROM_LOAD16_BYTE( "216-c4.c4", 0x0800001, 0x400000, CRC(7f5d03db) SHA1(365ed266c121f4df0bb76898955a8ae0e668a216) )
+ ROM_LOAD16_BYTE( "059-c5.c5", 0x1000000, 0x200000, CRC(59013f9e) SHA1(5bf48fcc450da72a8c4685f6e3887e67eae49988) )
+ ROM_LOAD16_BYTE( "059-c6.c6", 0x1000001, 0x200000, CRC(1c8d5def) SHA1(475d89a5c4922a9f6bd756d23c2624d57b6e9d62) )
+ ROM_LOAD16_BYTE( "059-c7.c7", 0x1800000, 0x200000, CRC(c88f7035) SHA1(c29a428b741f4fe7b71a3bc23c87925b6bc1ca8f) )
+ ROM_LOAD16_BYTE( "059-c8.c8", 0x1800001, 0x200000, CRC(484ce3ba) SHA1(4f21ed20ce6e2b67e2b079404599310c94f591ff) )
+ROM_END
+
+ROM_START( kizunaeh )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "216eh.p1", 0x100000, 0x100000, CRC(a87b7976) SHA1(fc78ee9cabff2692ad99ce5cf4bd28e32e893873) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "216-s1.s1", CRC(efdc72d7) SHA1(be37cbf1852e2e4c907cc799b754b538544b6703) )
+
+ NEO_BIOS_AUDIO_128K( "216-m1.m1", CRC(1b096820) SHA1(72852e78c620038f8dafde5e54e02e418c31be9c) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "059-v1.v1", 0x000000, 0x200000, CRC(530c50fd) SHA1(29401cee7f7d2c199c7cb58092e86b28205e81ad) )
+ ROM_LOAD( "216-v2.v2", 0x200000, 0x200000, CRC(03667a8d) SHA1(3b0475e553a49f8788f32b0c84f82645cc6b4273) )
+ ROM_LOAD( "059-v3.v3", 0x400000, 0x200000, CRC(7038c2f9) SHA1(c1d6f86b24feba03fe009b58199d2eeabe572f4e) )
+ ROM_LOAD( "216-v4.v4", 0x600000, 0x200000, CRC(31b99bd6) SHA1(5871751f8e9e6b98337472c22b5e1c7ede0a9311) )
+
+ ROM_REGION( 0x1c00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "059-c1.c1", 0x0000000, 0x200000, CRC(763ba611) SHA1(d3262e0332c894ee149c5963f882cc5e5562ee57) )
+ ROM_LOAD16_BYTE( "059-c2.c2", 0x0000001, 0x200000, CRC(e05e8ca6) SHA1(986a9b16ff92bc101ab567d2d01348e093abea9a) )
+ ROM_LOAD16_BYTE( "216-c3.c3", 0x0800000, 0x400000, CRC(665c9f16) SHA1(7ec781a49a462f395b450460b29493f55134eac2) )
+ ROM_LOAD16_BYTE( "216-c4.c4", 0x0800001, 0x400000, CRC(7f5d03db) SHA1(365ed266c121f4df0bb76898955a8ae0e668a216) )
+ ROM_LOAD16_BYTE( "059-c5.c5", 0x1000000, 0x200000, CRC(59013f9e) SHA1(5bf48fcc450da72a8c4685f6e3887e67eae49988) )
+ ROM_LOAD16_BYTE( "059-c6.c6", 0x1000001, 0x200000, CRC(1c8d5def) SHA1(475d89a5c4922a9f6bd756d23c2624d57b6e9d62) )
+ ROM_LOAD16_BYTE( "059-c7.c7", 0x1800000, 0x200000, CRC(c88f7035) SHA1(c29a428b741f4fe7b71a3bc23c87925b6bc1ca8f) )
+ ROM_LOAD16_BYTE( "059-c8.c8", 0x1800001, 0x200000, CRC(484ce3ba) SHA1(4f21ed20ce6e2b67e2b079404599310c94f591ff) )
+ROM_END
+
+
+ROM_START( lans2k4d ) /* Bootleg / Hack of Shock Troopers - 2nd Squad */
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "246lnsq.p1", 0x000000, 0x100000, CRC(724576EA) SHA1(075f5d8ccb7303c8b6bebf630c4fa9c204554044) )
+ ROM_LOAD16_WORD_SWAP( "246-p2.sp2", 0x100000, 0x400000, CRC(72ea04c3) SHA1(4fb1d22c30f5f3db4637dd92a4d2705c88de399d) )
+
+ NEO_SFIX_128K( "246lnsq.s1", CRC(8699c63a) SHA1(d1a0345bcb4e3f6044c93abd52ff6fe6280dc5ee) )
+
+ NEO_BIOS_AUDIO_128K( "246-m1.m1", CRC(d0604ad1) SHA1(fae3cd52a177eadd5f5775ace957cc0f8301e65d) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "246-v1.v1", 0x000000, 0x400000, CRC(16986fc6) SHA1(cff3103dadf2f4390460456a5bd3fb5f28e21f6a) )
+ ROM_LOAD( "246-v2.v2", 0x400000, 0x400000, CRC(ada41e83) SHA1(78e37ffaaa5679c8775a3a71f6df7a0d15082bdc) )
+ ROM_LOAD( "246-v3.v3", 0x800000, 0x200000, CRC(a05ba5db) SHA1(09d739cad323d918f4196f91b654627fcafd8f4d) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "246-c1.c1", 0x0000000, 0x800000, CRC(47ac9ec5) SHA1(2d9eea11ba87baa23b18a1a3f607dc137846e807) )
+ ROM_LOAD16_BYTE( "246-c2.c2", 0x0000001, 0x800000, CRC(7bcab64f) SHA1(08d0edddd14b53d606e9a7a46aa4fb4e7398e0d0) )
+ ROM_LOAD16_BYTE( "246lnsq.c3", 0x1000000, 0x800000, CRC(b28d702a) SHA1(21d70c94ecf9ca519b4e50e2d31620f6dfab9ad0) )
+ ROM_LOAD16_BYTE( "246lnsq.c4", 0x1000001, 0x800000, CRC(da10dd64) SHA1(55bf0922a117325ef6479f654caf13b287a16f67) )
+ ROM_LOAD16_BYTE( "246lnsq.c5", 0x2000000, 0x800000, CRC(bab3b417) SHA1(232f718fecf597434b7a93602387fabab2bda9c0) )
+ ROM_LOAD16_BYTE( "246lnsq.c6", 0x2000001, 0x800000, CRC(4c089a28) SHA1(f854ce46b4723aa971de280007268d474d2a6361) )
+ROM_END
+
+
+ROM_START( lbowlingcd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "019cd.p1", 0x000000, 0x040000, CRC(c17fd30f) SHA1(908b045542bb575ac05f208a6595ab49c5ca5c0f) )
+
+ NEO_SFIX_128K( "019-s1.s1", CRC(5fcdc0ed) SHA1(86415077e7adc3ba6153eeb4fb0c62cf36e903fa) )
+
+ //NEO_BIOS_AUDIO_64K( "019cd.m1", CRC(f65cb876) SHA1(6c26f400b2fce5fc8f3d533d275622a274982edc) ) // this has bugs and so there's no sound
+ NEO_BIOS_AUDIO_128K( "019-m1.m1", CRC(d568c17d) SHA1(a2e318ed6ad1809c79f3f0853d75e0dd1a2f275c) )
+
+ ROM_REGION( 0x100000, "ymsnd", 0 )
+ //ROM_LOAD( "019cd.v1", 0x000000, 0xf5400, CRC(37ff1111) SHA1(ff964981cff279e32da3c583a95912d5ffb5ab22) ) // doesn't match to 019-m1.m1
+ ROM_LOAD( "019-v11.v11", 0x000000, 0x080000, CRC(0fb74872) SHA1(38c555926c77576d63472bc075210c42e9ce13a3) )
+ ROM_LOAD( "019-v12.v12", 0x080000, 0x080000, CRC(029faa57) SHA1(7bbaa87e38929ab1e32df5f6a2ec0fd5001e7cdb) )
+
+ ROM_REGION( 0x080000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "019-v21.v21", 0x000000, 0x080000, CRC(2efd5ada) SHA1(8ba70f5f665d566824333075227d9bce1253b8d8) )
+
+ ROM_REGION( 0x100000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "019-c1.c1", 0x000000, 0x080000, CRC(4ccdef18) SHA1(5011e30ec235d0b0a5a513a11d4275777e61acdb) )
+ ROM_LOAD16_BYTE( "019-c2.c2", 0x000001, 0x080000, CRC(d4dd0802) SHA1(82069752028c118d42384a95befde45844f0f247) )
+ROM_END
+
+
+ROM_START( lresortpx )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "024px.p1", 0x000000, 0x080000, CRC(78c4e582) SHA1(5b802797ad0916a1ccac316a661120dc4dce0b74) )
+
+ NEO_SFIX_128K( "024-s1.s1", CRC(5cef5cc6) SHA1(9ec305007bdb356e9f8f279beae5e2bcb3f2cf7b) )
+
+ NEO_BIOS_AUDIO_128K( "024-m1.m1", CRC(cec19742) SHA1(ab6c6ba7737e68d2420a0617719c6d4c89039c45) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "024-v1.v1", 0x000000, 0x100000, CRC(efdfa063) SHA1(e4609ecbcc1c820758f229da5145f51285b50555) )
+ ROM_LOAD( "024-v2.v2", 0x100000, 0x100000, CRC(3c7997c0) SHA1(8cb7e8e69892b19d318978370dbc510d51b06a69) )
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "024-c1.c1", 0x000000, 0x100000, CRC(3617c2dc) SHA1(8de2643a618272f8aa1c705363edb007f4a5f5b7) )
+ ROM_LOAD16_BYTE( "024-c2.c2", 0x000001, 0x100000, CRC(3f0a7fd8) SHA1(d0c9c7a9dde9ce175fb243d33ec11fa719d0158c) )
+ ROM_LOAD16_BYTE( "024-c3.c3", 0x200000, 0x080000, CRC(e9f745f8) SHA1(bbe6141da28b0db7bf5cf321d69b7e613e2414d7) )
+ ROM_LOAD16_BYTE( "024-c4.c4", 0x200001, 0x080000, CRC(7382fefb) SHA1(e916dec5bb5462eb9ae9711f08c7388937abb980) )
+ROM_END
+
+
+ROM_START( maglordpx )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "005px.p1", 0x000000, 0x080000, CRC(8d3e68d1) SHA1(9f1b5d78138feb9d372a7b7788cb2b52f3fb8c5a) )
+
+ NEO_SFIX_128K( "005-s1.s1", CRC(1c5369a2) SHA1(db0dba0a7dced6c9ca929c5abda491b05d84199c) )
+
+ NEO_BIOS_AUDIO_256K( "005-m1.m1", CRC(26259f0f) SHA1(4f3e500093d61585048767dbd9fa09b3911a05d6) )
+
+ ROM_REGION( 0x080000, "ymsnd", 0 )
+ ROM_LOAD( "005-v11.v11", 0x000000, 0x080000, CRC(cc0455fd) SHA1(a8ff4270e7705e263d25ff0b301f503bccea7e59) )
+
+ ROM_REGION( 0x100000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "005-v21.v21", 0x000000, 0x080000, CRC(f94ab5b7) SHA1(2c16985102e3585e08622d8c54ac5c60425b9ff8) )
+ ROM_LOAD( "005-v22.v22", 0x080000, 0x080000, CRC(232cfd04) SHA1(61b66a9decbbd1f500a8c186615e7fd077c6861e) )
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "005-c1.c1", 0x000000, 0x80000, CRC(806aee34) SHA1(3c32a0edbbddb694495b510c13979c44b83de8bc) )
+ ROM_LOAD16_BYTE( "005-c2.c2", 0x000001, 0x80000, CRC(34aa9a86) SHA1(cec97e1ff7f91158040c629ba75742db82c4ae5e) )
+ ROM_LOAD16_BYTE( "005-c3.c3", 0x100000, 0x80000, CRC(c4c2b926) SHA1(478bfafca21f5a1338808251a06ab405e6a9e65f) )
+ ROM_LOAD16_BYTE( "005-c4.c4", 0x100001, 0x80000, CRC(9c46dcf4) SHA1(4c05f3dc25777a87578ce09a6cefb3a4cebf3266) )
+ ROM_LOAD16_BYTE( "005-c5.c5", 0x200000, 0x80000, CRC(69086dec) SHA1(7fa47f4a765948813ebf366168275dcc3c42e951) )
+ ROM_LOAD16_BYTE( "005-c6.c6", 0x200001, 0x80000, CRC(ab7ac142) SHA1(e6ad2843947d35d8e913d2666f87946c1ba7944f) )
+ROM_END
+
+
+ROM_START( matrima )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "266a.p1", 0x000000, 0x100000, CRC(1e59c746) SHA1(9a6cdb6c56d5a80e373bb5ec476f1e7c3b3fbba9) )
+ ROM_LOAD16_WORD_SWAP( "266a.p2", 0x100000, 0x400000, CRC(b0132cef) SHA1(3780db1b8947a8371a46b67ca1a14a12bf97986b) )
+
+ NEO_SFIX_128K( "266a.s1", CRC(aff2a3be) SHA1(57aba048573eacf8fbdd228f04a7f30da64cebe5) )
+
+ NEO_BIOS_AUDIO_128K( "266d.m1", CRC(d2f3742d) SHA1(dd42f8a301f07e079fbc2bfd23e788baa03ca72d) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "266a.v1", 0x000000, 0x400000, CRC(352b0a07) SHA1(19f7cc12f3f6d0fda9c7449816c4c32367447897) )
+ ROM_LOAD( "266a.v2", 0x400000, 0x400000, CRC(945f8831) SHA1(6ac9bd41e0bb33601c82ebeb2aa5b1b8b91fada1) )
+ ROM_LOAD( "266a.v3", 0x800000, 0x400000, CRC(e8362fcc) SHA1(42d558fd80cabe22a1c09a1fa75741afbcf46b7c) )
+ ROM_LOAD( "266a.v4", 0xc00000, 0x400000, CRC(393c9a62) SHA1(0eaee0007557e59e64edcdbca229e6f776de9aef) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "266a.c1", 0x0000000, 0x800000, CRC(f2240352) SHA1(3bb6763ebbc33db172d413276213eb3f2c7093c0) )
+ ROM_LOAD16_BYTE( "266a.c2", 0x0000001, 0x800000, CRC(338a9142) SHA1(eb589b4141c394ca78c2f5eb1b510cde982f3225) )
+ ROM_LOAD16_BYTE( "266a.c3", 0x1000000, 0x800000, CRC(6233412d) SHA1(b473cddc0a4343dffc4e35df68cd1bf9b163bd64) )
+ ROM_LOAD16_BYTE( "266a.c4", 0x1000001, 0x800000, CRC(304a2d9f) SHA1(29d2e50a64476640f4bff68227d6b1fdb45530c1) )
+ ROM_LOAD16_BYTE( "266a.c5", 0x2000000, 0x800000, CRC(18382650) SHA1(df10fb0b43f0dabdc57b55e923536b6c215678ff) )
+ ROM_LOAD16_BYTE( "266a.c6", 0x2000001, 0x800000, CRC(c5e7a840) SHA1(a1336c5c1284221d0b420bb44dd7c462d3e83ca7) )
+ ROM_LOAD16_BYTE( "266a.c7", 0x3000000, 0x800000, CRC(bfaa985c) SHA1(3ff7d56d8caaa1a34d0dcbc16bfc97df4afeab48) )
+ ROM_LOAD16_BYTE( "266a.c8", 0x3000001, 0x800000, CRC(efaf3f3c) SHA1(9374eb39fe30ba679878729992f136fdce1d92fc) )
+ROM_END
+
+ROM_START( matrimbh )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "266bh.p1", 0x000000, 0x100000, CRC(5f7b6942) SHA1(35fe5d59407b79725698fa62a870518ecc930b34) )
+ ROM_LOAD16_WORD_SWAP( "266-p2.sp2", 0x100000, 0x400000, CRC(a14b1906) SHA1(1daa14d73512f760ef569b06f9facb279437d1db) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_ENCRYPTED_128K( "266-m1.m1", CRC(456c3e6c) SHA1(5a07d0186198a18d2dda1331093cf29b0b9b2984) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "266-v1.v1", 0x000000, 0x800000, CRC(a4f83690) SHA1(200d683d8c30ebc6d0ed331aa5bbba39b4e07160) )
+ ROM_LOAD( "266-v2.v2", 0x800000, 0x800000, CRC(d0f69eda) SHA1(9d7e98976ad433ed8a35d7afffa38130444ba7db) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "266-c1.c1", 0x0000000, 0x800000, CRC(505f4e30) SHA1(f22b6f76fc0cad963555dc89d072967c8dc8b79a) )
+ ROM_LOAD16_BYTE( "266-c2.c2", 0x0000001, 0x800000, CRC(3cb57482) SHA1(dab15bc24391f9a5173de76af48b612fb9636ccf) )
+ ROM_LOAD16_BYTE( "266-c3.c3", 0x1000000, 0x800000, CRC(f1cc6ad0) SHA1(66c1cccc0332ffd2d3064f06330c41f95ca09ced) )
+ ROM_LOAD16_BYTE( "266-c4.c4", 0x1000001, 0x800000, CRC(45b806b7) SHA1(c2bb866fded53d62fad0fc88d89d5e7d4cb1894f) )
+ ROM_LOAD16_BYTE( "266-c5.c5", 0x2000000, 0x800000, CRC(9a15dd6b) SHA1(194a6973a7a9e3847efe1bdbaeaeb16e74aff2dd) )
+ ROM_LOAD16_BYTE( "266-c6.c6", 0x2000001, 0x800000, CRC(281cb939) SHA1(bdb7766cfde581ccfaee2be7fe48445f360a2301) )
+ ROM_LOAD16_BYTE( "266-c7.c7", 0x3000000, 0x800000, CRC(4b71f780) SHA1(d5611a6f6b730db58613b48f2b0174661ccfb7bb) )
+ ROM_LOAD16_BYTE( "266-c8.c8", 0x3000001, 0x800000, CRC(29873d33) SHA1(dc77f129ed49b8d40d0d4241feef3f6c2f19a987) )
+ROM_END
+
+ROM_START( matrimd )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "266-p1.p1", 0x000000, 0x100000, CRC(5d4c2dc7) SHA1(8d723b0d28ec344eef26009b361a2b97d300dd51) )
+ ROM_LOAD16_WORD_SWAP( "266-p2.sp2", 0x100000, 0x400000, CRC(a14b1906) SHA1(1daa14d73512f760ef569b06f9facb279437d1db) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_128K( "266d.m1", CRC(d2f3742d) SHA1(dd42f8a301f07e079fbc2bfd23e788baa03ca72d) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "266-v1.v1", 0x000000, 0x800000, CRC(a4f83690) SHA1(200d683d8c30ebc6d0ed331aa5bbba39b4e07160) )
+ ROM_LOAD( "266-v2.v2", 0x800000, 0x800000, CRC(d0f69eda) SHA1(9d7e98976ad433ed8a35d7afffa38130444ba7db) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "266d.c1", 0x0000000, 0x800000, CRC(0ab54c54) SHA1(31bca460462b8545b3e5264804987ab951e9b202) )
+ ROM_LOAD16_BYTE( "266d.c2", 0x0000001, 0x800000, CRC(b834dd89) SHA1(579470839a8d23b2d22cf727d2b43c6c3c113e1f) )
+ ROM_LOAD16_BYTE( "266d.c3", 0x1000000, 0x800000, CRC(f31d68d4) SHA1(a6b8aaf11d25f871b52e9626fe0e4ae0683c3c52) )
+ ROM_LOAD16_BYTE( "266d.c4", 0x1000001, 0x800000, CRC(58cfb6e9) SHA1(106875db996ec29b0254b34f9d935c761cde20c4) )
+ ROM_LOAD16_BYTE( "266d.c5", 0x2000000, 0x800000, CRC(f3c0e3fd) SHA1(3a2f14517617fb98a202ceec88d52891e1438c8e) )
+ ROM_LOAD16_BYTE( "266d.c6", 0x2000001, 0x800000, CRC(b53c8dcf) SHA1(9f4b0bac92262e8c1c1055a70f13c7c326367f73) )
+ ROM_LOAD16_BYTE( "266d.c7", 0x3000000, 0x800000, CRC(3c1fb02a) SHA1(43e170e6d48c01d8c323f9309f97e6038bab20d7) )
+ ROM_LOAD16_BYTE( "266d.c8", 0x3000001, 0x800000, CRC(5ee31f80) SHA1(3cdd8037f5004df92f4c19ba0746c8bccb4e2473) )
+ROM_END
+
+ROM_START( matrimdh ) /* Matrimelee - Hack by Dodowang - (Can choose Sissy, Jimmy, Jones, Lynn and Elias) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "266dh.p1", 0x000000, 0x100000, CRC(70815d65) SHA1(d75a47e8dd02d19730a7a347849f92b6723f4ca7) )
+ ROM_LOAD16_WORD_SWAP( "266-p2.sp2", 0x100000, 0x400000, CRC(a14b1906) SHA1(1daa14d73512f760ef569b06f9facb279437d1db) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_128K( "266d.m1", CRC(d2f3742d) SHA1(dd42f8a301f07e079fbc2bfd23e788baa03ca72d) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "266-v1.v1", 0x000000, 0x800000, CRC(a4f83690) SHA1(200d683d8c30ebc6d0ed331aa5bbba39b4e07160) )
+ ROM_LOAD( "266-v2.v2", 0x800000, 0x800000, CRC(d0f69eda) SHA1(9d7e98976ad433ed8a35d7afffa38130444ba7db) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "266-c1.c1", 0x0000000, 0x800000, CRC(505f4e30) SHA1(f22b6f76fc0cad963555dc89d072967c8dc8b79a) )
+ ROM_LOAD16_BYTE( "266-c2.c2", 0x0000001, 0x800000, CRC(3cb57482) SHA1(dab15bc24391f9a5173de76af48b612fb9636ccf) )
+ ROM_LOAD16_BYTE( "266-c3.c3", 0x1000000, 0x800000, CRC(f1cc6ad0) SHA1(66c1cccc0332ffd2d3064f06330c41f95ca09ced) )
+ ROM_LOAD16_BYTE( "266-c4.c4", 0x1000001, 0x800000, CRC(45b806b7) SHA1(c2bb866fded53d62fad0fc88d89d5e7d4cb1894f) )
+ ROM_LOAD16_BYTE( "266-c5.c5", 0x2000000, 0x800000, CRC(9a15dd6b) SHA1(194a6973a7a9e3847efe1bdbaeaeb16e74aff2dd) )
+ ROM_LOAD16_BYTE( "266-c6.c6", 0x2000001, 0x800000, CRC(281cb939) SHA1(bdb7766cfde581ccfaee2be7fe48445f360a2301) )
+ ROM_LOAD16_BYTE( "266-c7.c7", 0x3000000, 0x800000, CRC(4b71f780) SHA1(d5611a6f6b730db58613b48f2b0174661ccfb7bb) )
+ ROM_LOAD16_BYTE( "266-c8.c8", 0x3000001, 0x800000, CRC(29873d33) SHA1(dc77f129ed49b8d40d0d4241feef3f6c2f19a987) )
+ROM_END
+
+ROM_START( matrimeh )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "266eh.p1", 0x000000, 0x100000, CRC(e3b05e78) SHA1(8cbf3fe47c8afedb4ea7dcf5809acf7e5e858aba) )
+ ROM_LOAD16_WORD_SWAP( "266a.p2", 0x100000, 0x400000, CRC(b0132cef) SHA1(3780db1b8947a8371a46b67ca1a14a12bf97986b) )
+
+ NEO_SFIX( 0x40000, "266eh.s1", CRC(31c02ff8) SHA1(f4096d0b39a2fd682c0b3be435098ed8de990f8b) )
+
+ NEO_BIOS_AUDIO_128K( "266eh.m1", CRC(f692d84b) SHA1(a3737c574e779e0330916a2eea6ad5b3839f9538) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "266eh-v1d.bin", 0x000000, 0x800000, CRC(328b2194) SHA1(6734da4f1e882a8524c04ff375567ed96a2dae5e) )
+ ROM_LOAD( "266eh-v2d.bin", 0x800000, 0x800000, CRC(2a13562d) SHA1(dc13f1af6afaf43f2ac20b7cf1c751a047450312) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "266d.c1", 0x0000000, 0x800000, CRC(0ab54c54) SHA1(31bca460462b8545b3e5264804987ab951e9b202) )
+ ROM_LOAD16_BYTE( "266d.c2", 0x0000001, 0x800000, CRC(b834dd89) SHA1(579470839a8d23b2d22cf727d2b43c6c3c113e1f) )
+ ROM_LOAD16_BYTE( "266d.c3", 0x1000000, 0x800000, CRC(f31d68d4) SHA1(a6b8aaf11d25f871b52e9626fe0e4ae0683c3c52) )
+ ROM_LOAD16_BYTE( "266d.c4", 0x1000001, 0x800000, CRC(58cfb6e9) SHA1(106875db996ec29b0254b34f9d935c761cde20c4) )
+ ROM_LOAD16_BYTE( "266d.c5", 0x2000000, 0x800000, CRC(f3c0e3fd) SHA1(3a2f14517617fb98a202ceec88d52891e1438c8e) )
+ ROM_LOAD16_BYTE( "266d.c6", 0x2000001, 0x800000, CRC(b53c8dcf) SHA1(9f4b0bac92262e8c1c1055a70f13c7c326367f73) )
+ ROM_LOAD16_BYTE( "266d.c7", 0x3000000, 0x800000, CRC(3c1fb02a) SHA1(43e170e6d48c01d8c323f9309f97e6038bab20d7) )
+ ROM_LOAD16_BYTE( "266d.c8", 0x3000001, 0x800000, CRC(5ee31f80) SHA1(3cdd8037f5004df92f4c19ba0746c8bccb4e2473) )
+ROM_END
+
+ROM_START( matrimehc ) /* Matrimelee - Enhance by Creamymami - (Power always max - MVS protection removed) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "266ehc.p1", 0x000000, 0x100000, CRC(090fbe25) SHA1(83088d3982501320937a3df66ba883582e84224e) )
+ ROM_LOAD16_WORD_SWAP( "266-p2.sp2", 0x100000, 0x400000, CRC(a14b1906) SHA1(1daa14d73512f760ef569b06f9facb279437d1db) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_128K( "266d.m1", CRC(d2f3742d) SHA1(dd42f8a301f07e079fbc2bfd23e788baa03ca72d) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "266-v1.v1", 0x000000, 0x800000, CRC(a4f83690) SHA1(200d683d8c30ebc6d0ed331aa5bbba39b4e07160) )
+ ROM_LOAD( "266-v2.v2", 0x800000, 0x800000, CRC(d0f69eda) SHA1(9d7e98976ad433ed8a35d7afffa38130444ba7db) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "266-c1.c1", 0x0000000, 0x800000, CRC(505f4e30) SHA1(f22b6f76fc0cad963555dc89d072967c8dc8b79a) )
+ ROM_LOAD16_BYTE( "266-c2.c2", 0x0000001, 0x800000, CRC(3cb57482) SHA1(dab15bc24391f9a5173de76af48b612fb9636ccf) )
+ ROM_LOAD16_BYTE( "266-c3.c3", 0x1000000, 0x800000, CRC(f1cc6ad0) SHA1(66c1cccc0332ffd2d3064f06330c41f95ca09ced) )
+ ROM_LOAD16_BYTE( "266-c4.c4", 0x1000001, 0x800000, CRC(45b806b7) SHA1(c2bb866fded53d62fad0fc88d89d5e7d4cb1894f) )
+ ROM_LOAD16_BYTE( "266-c5.c5", 0x2000000, 0x800000, CRC(9a15dd6b) SHA1(194a6973a7a9e3847efe1bdbaeaeb16e74aff2dd) )
+ ROM_LOAD16_BYTE( "266-c6.c6", 0x2000001, 0x800000, CRC(281cb939) SHA1(bdb7766cfde581ccfaee2be7fe48445f360a2301) )
+ ROM_LOAD16_BYTE( "266-c7.c7", 0x3000000, 0x800000, CRC(4b71f780) SHA1(d5611a6f6b730db58613b48f2b0174661ccfb7bb) )
+ ROM_LOAD16_BYTE( "266-c8.c8", 0x3000001, 0x800000, CRC(29873d33) SHA1(dc77f129ed49b8d40d0d4241feef3f6c2f19a987) )
+ROM_END
+
+ROM_START( matrimnd )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "266nd.p1", 0x000000, 0x100000, CRC(d07b4032) SHA1(d9878ac13c8c374d496317359038b4a53c6f1872) )
+ ROM_LOAD16_WORD_SWAP( "266a.p2", 0x100000, 0x400000, CRC(b0132cef) SHA1(3780db1b8947a8371a46b67ca1a14a12bf97986b) )
+
+ NEO_SFIX_128K( "266a.s1", CRC(aff2a3be) SHA1(57aba048573eacf8fbdd228f04a7f30da64cebe5) )
+
+ NEO_BIOS_AUDIO_128K( "266eh.m1", CRC(f692d84b) SHA1(a3737c574e779e0330916a2eea6ad5b3839f9538) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "266eh-v1d.bin", 0x000000, 0x800000, CRC(328b2194) SHA1(6734da4f1e882a8524c04ff375567ed96a2dae5e) )
+ ROM_LOAD( "266eh-v2d.bin", 0x800000, 0x800000, CRC(2a13562d) SHA1(dc13f1af6afaf43f2ac20b7cf1c751a047450312) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "266d.c1", 0x0000000, 0x800000, CRC(0ab54c54) SHA1(31bca460462b8545b3e5264804987ab951e9b202) )
+ ROM_LOAD16_BYTE( "266d.c2", 0x0000001, 0x800000, CRC(b834dd89) SHA1(579470839a8d23b2d22cf727d2b43c6c3c113e1f) )
+ ROM_LOAD16_BYTE( "266d.c3", 0x1000000, 0x800000, CRC(f31d68d4) SHA1(a6b8aaf11d25f871b52e9626fe0e4ae0683c3c52) )
+ ROM_LOAD16_BYTE( "266d.c4", 0x1000001, 0x800000, CRC(58cfb6e9) SHA1(106875db996ec29b0254b34f9d935c761cde20c4) )
+ ROM_LOAD16_BYTE( "266d.c5", 0x2000000, 0x800000, CRC(f3c0e3fd) SHA1(3a2f14517617fb98a202ceec88d52891e1438c8e) )
+ ROM_LOAD16_BYTE( "266d.c6", 0x2000001, 0x800000, CRC(b53c8dcf) SHA1(9f4b0bac92262e8c1c1055a70f13c7c326367f73) )
+ ROM_LOAD16_BYTE( "266d.c7", 0x3000000, 0x800000, CRC(3c1fb02a) SHA1(43e170e6d48c01d8c323f9309f97e6038bab20d7) )
+ ROM_LOAD16_BYTE( "266d.c8", 0x3000001, 0x800000, CRC(5ee31f80) SHA1(3cdd8037f5004df92f4c19ba0746c8bccb4e2473) )
+ROM_END
+
+
+ROM_START( magdrop3fr )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "233fr.p1", 0x000000, 0x100000, CRC(ed90bb10) SHA1(eb22b362475ef294307357abf6c31a1ff2229f4a) )
+
+ NEO_SFIX_128K( "233-s1.s1", CRC(7399e68a) SHA1(b535ee56a0f0995f04674e676f6aa636ffad26aa) )
+
+ NEO_BIOS_AUDIO_128K( "233-m1.m1", CRC(5beaf34e) SHA1(2905d26945932cddc2dd3a1dc5abba8aa3baee14) )
+
+ ROM_REGION( 0x480000, "ymsnd", 0 )
+ ROM_LOAD( "233-v1.v1", 0x000000, 0x400000, CRC(58839298) SHA1(18cae7bba997c52780761cbf119c4e4b34397a61) )
+ ROM_LOAD( "233-v2.v2", 0x400000, 0x080000, CRC(d5e30df4) SHA1(bbbc0ff5b975471bd682f85976ac4a93f6d44f2e) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "233fr.c1", 0x000000, 0x400000, CRC(b10223f2) SHA1(d99565751bdde47cae4c5bb5fac32a0b80bae2b9) )
+ ROM_LOAD16_BYTE( "233fr.c2", 0x000001, 0x400000, CRC(39c0f4b8) SHA1(a09c20c12d418e938ce84ea87d3d8bbb3007563c) )
+ ROM_LOAD16_BYTE( "233-c3.c3", 0x800000, 0x400000, CRC(0ba2c502) SHA1(8e0f1e553aef04758aaaa14d5115f0ecace4391e) )
+ ROM_LOAD16_BYTE( "233-c4.c4", 0x800001, 0x400000, CRC(70dbbd6d) SHA1(32dd6a04c6329e89f4878e7a56f0d172a6388eea) )
+ROM_END
+
+
+ROM_START( miexchngfr )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "231fr.p1", 0x000000, 0x80000, CRC(a107101b) SHA1(f1a165779a4a26d7c9067b649fdcb7da40f3aea6) )
+
+ NEO_SFIX_128K( "231-s1.s1", CRC(fe0c0c53) SHA1(54d56d4463db193e504658f4f6f4997a62ae3d95) )
+
+ NEO_BIOS_AUDIO_128K( "231-m1.m1", CRC(de41301b) SHA1(59ce3836ac8f064d56a446c9374f05bcb40fcfd8) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "231-v1.v1", 0x000000, 0x400000, CRC(113fb898) SHA1(9168ba90c4aa969f69eb11ba3f4d76592d81e05a) )
+
+ ROM_REGION( 0x500000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "231fr.c1", 0x000000, 0x200000, CRC(0764d51c) SHA1(06a63359e5859d30ae5a8e2beed5a7615563298a) )
+ ROM_LOAD16_BYTE( "231fr.c2", 0x000001, 0x200000, CRC(6a2acd38) SHA1(bc35e7f9898ed6d7fd9ce43d4a4be91a81d0bd04) )
+ ROM_LOAD16_BYTE( "231fr.c3", 0x400000, 0x080000, CRC(14524eb5) SHA1(e090b99a1ee2cca4a7f7d5262e764d1cab6bada2) )
+ ROM_LOAD16_BYTE( "231fr.c4", 0x400001, 0x080000, CRC(1694f171) SHA1(a6af5d3f1e0b3f73da275e04d4434c6c9c7b9208) )
+ROM_END
+
+
+ROM_START( mutnatex )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "014ex.p1", 0x000000, 0x080000, CRC(2fe45544) SHA1(e55445f5a31c11bc11d74d040f8c4e605a7d4d36) )
+
+ NEO_SFIX_128K( "014-s1.s1", CRC(99419733) SHA1(b2524af8704941acc72282aa1d62fd4c93e3e822) )
+
+ NEO_BIOS_AUDIO_128K( "014-m1.m1", CRC(b6683092) SHA1(623ec7ec2915fb077bf65b4a16c815e071c25259) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "014-v1.v1", 0x000000, 0x100000, CRC(25419296) SHA1(c9fc04987c4e0875d276e1a0fb671740b6f548ad) )
+ ROM_LOAD( "014-v2.v2", 0x100000, 0x100000, CRC(0de53d5e) SHA1(467f6040da3dfb1974785e95e14c3f608a93720a) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "014-c1.c1", 0x000000, 0x100000, CRC(5e4381bf) SHA1(d429a5e09dafd2fb99495658b3652eecbf58f91b) )
+ ROM_LOAD16_BYTE( "014-c2.c2", 0x000001, 0x100000, CRC(69ba4e18) SHA1(b3369190c47771a790c7adffa958ff55d90e758b) )
+ ROM_LOAD16_BYTE( "014-c3.c3", 0x200000, 0x100000, CRC(890327d5) SHA1(47f97bf120a8480758e1f3bb8982be4c5325c036) )
+ ROM_LOAD16_BYTE( "014-c4.c4", 0x200001, 0x100000, CRC(e4002651) SHA1(17e53a5f4708866a120415bf24f3b89621ad0bcc) )
+ROM_END
+
+
+ROM_START( nam1975g ) // sound effects only, no music no voices
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "001g.p1", 0x000000, 0x100000, CRC(b8bf8b43) SHA1(b5de430d9e13ce82b761d566916329752e84424a) )
+
+ NEO_SFIX_128K( "001-s1.s1", CRC(7988ba51) SHA1(bc2f661f381b06b34ac2fa215dd5689d3bf84832) )
+
+ NEO_BIOS_AUDIO_64K( "001g.m1", CRC(afd04078) SHA1(a75833cd26442297ee35de302c186aa193fdb0ed) )
+
+ ROM_REGION( 0x100000, "ymsnd", 0 ) // weapons fire
+ ROM_LOAD( "001g.v1", 0x000000, 0x100000, CRC(dd5b3adc) SHA1(09b75fa1b2dc7704952cd371e440ea8771068633) )
+
+ ROM_REGION( 0x180000, "ymsnd.deltat", 0 ) // voices
+ ROM_LOAD( "001-v21.v21", 0x000000, 0x080000, CRC(55e670b3) SHA1(a047049646a90b6db2d1882264df9256aa5a85e5) )
+ ROM_LOAD( "001-v22.v22", 0x080000, 0x080000, CRC(ab0d8368) SHA1(404114db9f3295929080b87a5d0106b40da6223a) )
+ ROM_LOAD( "001-v23.v23", 0x100000, 0x080000, CRC(df468e28) SHA1(4e5d4a709a4737a87bba4083aeb788f657862f1a) )
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "001-c1.c1", 0x000000, 0x80000, CRC(32ea98e1) SHA1(c2fb3fb7dd14523a4b4b7fbdb81f44cb4cc48239) )
+ ROM_LOAD16_BYTE( "001-c2.c2", 0x000001, 0x80000, CRC(cbc4064c) SHA1(224c970fd060d841fd430c946ef609bb57b6d78c) )
+ ROM_LOAD16_BYTE( "001-c3.c3", 0x100000, 0x80000, CRC(0151054c) SHA1(f24fb501a7845f64833f4e5a461bcf9dc3262557) )
+ ROM_LOAD16_BYTE( "001-c4.c4", 0x100001, 0x80000, CRC(0a32570d) SHA1(f108446ec7844fde25f7a4ab454f76d384bf5e52) )
+ ROM_LOAD16_BYTE( "001-c5.c5", 0x200000, 0x80000, CRC(90b74cc2) SHA1(89898da36db259180e5261ed45eafc99ca13e504) )
+ ROM_LOAD16_BYTE( "001-c6.c6", 0x200001, 0x80000, CRC(e62bed58) SHA1(d05b2903b212a51ee131e52c761b714cb787683e) )
+ROM_END
+
+ROM_START( nam1975h ) // infinite lives
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "001h.p1", 0x000000, 0x080000, CRC(908a4fd0) SHA1(37ffc705ee772a1a25e77ff8696750a78dacc7f7) )
+
+ NEO_SFIX_64K( "001h.s1", CRC(8ded55a5) SHA1(27c8ffac16fbcc19c843d1b5b47ae8d8ef83d44a) )
+
+ NEO_BIOS_AUDIO_64K( "001h.m1", CRC(cd088502) SHA1(939f745cd576905f326e6246a2eed78e9fa88178) )
+
+ ROM_REGION( 0x080000, "ymsnd", 0 )
+ ROM_LOAD( "001-v11.v11", 0x000000, 0x080000, CRC(a7c3d5e5) SHA1(e3efc86940f91c53b7724c4566cfc21ea1a7a465) )
+
+ ROM_REGION( 0x180000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "001-v21.v21", 0x000000, 0x080000, CRC(55e670b3) SHA1(a047049646a90b6db2d1882264df9256aa5a85e5) )
+ ROM_LOAD( "001-v22.v22", 0x080000, 0x080000, CRC(ab0d8368) SHA1(404114db9f3295929080b87a5d0106b40da6223a) )
+ ROM_LOAD( "001-v23.v23", 0x100000, 0x080000, CRC(df468e28) SHA1(4e5d4a709a4737a87bba4083aeb788f657862f1a) )
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "001-c1.c1", 0x000000, 0x80000, CRC(32ea98e1) SHA1(c2fb3fb7dd14523a4b4b7fbdb81f44cb4cc48239) )
+ ROM_LOAD16_BYTE( "001-c2.c2", 0x000001, 0x80000, CRC(cbc4064c) SHA1(224c970fd060d841fd430c946ef609bb57b6d78c) )
+ ROM_LOAD16_BYTE( "001-c3.c3", 0x100000, 0x80000, CRC(0151054c) SHA1(f24fb501a7845f64833f4e5a461bcf9dc3262557) )
+ ROM_LOAD16_BYTE( "001-c4.c4", 0x100001, 0x80000, CRC(0a32570d) SHA1(f108446ec7844fde25f7a4ab454f76d384bf5e52) )
+ ROM_LOAD16_BYTE( "001-c5.c5", 0x200000, 0x80000, CRC(90b74cc2) SHA1(89898da36db259180e5261ed45eafc99ca13e504) )
+ ROM_LOAD16_BYTE( "001-c6.c6", 0x200001, 0x80000, CRC(e62bed58) SHA1(d05b2903b212a51ee131e52c761b714cb787683e) )
+ROM_END
+
+
+ROM_START( ncombatpk )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "009px.p1", 0x000000, 0x080000, CRC(4e040e04) SHA1(8a9281c745810e6977ff4d304e6fb3f8441fe4a4) )
+
+ NEO_SFIX_128K( "009-s1.s1", CRC(d49afee8) SHA1(77615f12edf08ae8f1353f7a056a8f3a50d3ebdc) )
+
+ NEO_BIOS_AUDIO_128K( "009-m1.m1", CRC(b5819863) SHA1(6f2309d51531052dbf7d712993c9e35649db0d84) )
+
+ ROM_REGION( 0x180000, "ymsnd", 0 )
+ ROM_LOAD( "009-v11.v11", 0x000000, 0x080000, CRC(cf32a59c) SHA1(af5b7fcd8a4aff1307c0a1d937e5f0460c32de79) )
+ ROM_LOAD( "009-v12.v12", 0x080000, 0x080000, CRC(7b3588b7) SHA1(a4e6d9d4113ff4ce48b371f65e9187d551821d3b) )
+ ROM_LOAD( "009-v13.v13", 0x100000, 0x080000, CRC(505a01b5) SHA1(9426a4f5b31e16f74e72e61951c189a878f211c5) )
+
+ ROM_REGION( 0x080000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "009-v21.v21", 0x000000, 0x080000, CRC(365f9011) SHA1(aebd292214ab280b05ee9e759b7e9a681a099c4a) )
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "009-c1.c1", 0x000000, 0x80000, CRC(33cc838e) SHA1(c445c891c0ba4190aa0b472786150620e76df5b4) )
+ ROM_LOAD16_BYTE( "009-c2.c2", 0x000001, 0x80000, CRC(26877feb) SHA1(8f48097fb8e4757f50b6d86219122fbf4b6f87ef) )
+ ROM_LOAD16_BYTE( "009-c3.c3", 0x100000, 0x80000, CRC(3b60a05d) SHA1(0a165a17af4834876fcd634599cd2208adc9248f) )
+ ROM_LOAD16_BYTE( "009-c4.c4", 0x100001, 0x80000, CRC(39c2d039) SHA1(8ca6c3f977c43c7abba2a00a0e70f02e2a49f5f2) )
+ ROM_LOAD16_BYTE( "009-c5.c5", 0x200000, 0x80000, CRC(67a4344e) SHA1(b325f152c7b2388fc92c5826e1dc99094b9ea749) )
+ ROM_LOAD16_BYTE( "009-c6.c6", 0x200001, 0x80000, CRC(2eca8b19) SHA1(16764ef10e404325ba0a1a2ad3a4c0af287be21f) )
+ROM_END
+
+
+ROM_START( ncommandsp )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "050sp.p1", 0x000000, 0x100000, CRC(76d37e41) SHA1(b5f6a8861a197be6f20ddbde28cc00f1e9176a2c) )
+
+ NEO_SFIX_128K( "050-s1.s1", CRC(db8f9c8e) SHA1(11cb82cf3c4d0fc2da5df0c26410a64808093610) )
+
+ NEO_BIOS_AUDIO_128K( "050-m1.m1", CRC(6fcf07d3) SHA1(e9ecff4bfec1f5964bf06645f75d80d611b6231c) )
+
+ ROM_REGION( 0x180000, "ymsnd", 0 )
+ ROM_LOAD( "050-v1.v1", 0x000000, 0x100000, CRC(23c3ab42) SHA1(b6c59bb180f1aa34c95f3ec923f3aafb689d57b0) )
+ ROM_LOAD( "050-v2.v2", 0x100000, 0x080000, CRC(80b8a984) SHA1(950cf0e78ceffa4037663f1086fbbc88588f49f2) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "050-c1.c1", 0x000000, 0x100000, CRC(87421a0a) SHA1(1d8faaf03778f7c5b062554d7333bbd3f0ca12ad) )
+ ROM_LOAD16_BYTE( "050-c2.c2", 0x000001, 0x100000, CRC(c4cf5548) SHA1(ef9eca5aeff9dda2209a050c2af00ed8979ae2bc) )
+ ROM_LOAD16_BYTE( "050-c3.c3", 0x200000, 0x100000, CRC(03422c1e) SHA1(920e5015aebe2ffc5ce43a52365c7f0a705f3b9e) )
+ ROM_LOAD16_BYTE( "050-c4.c4", 0x200001, 0x100000, CRC(0845eadb) SHA1(3c71a02bf0e07a5381846bb6d75bbe7dd546adea) )
+ROM_END
+
+
+ROM_START( neocup98k )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "244-p1.p1", 0x100000, 0x100000, CRC(f8fdb7a5) SHA1(f34ee5d1c24e70427d05ef488f46906dbd9f9950) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "244k.s1", CRC(becb9e7a) SHA1(b40e0ee79ab234ab2162d735d66aafa63f9d7477) )
+
+ NEO_BIOS_AUDIO_128K( "244-m1.m1", CRC(a701b276) SHA1(055550ebc650835bcf8ea4457b2c91bd73e21281) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "244-v1.v1", 0x000000, 0x400000, CRC(79def46d) SHA1(63414235de2e177654508f1c840040424f8993e6) )
+ ROM_LOAD( "244-v2.v2", 0x400000, 0x200000, CRC(b231902f) SHA1(9209772e947a2c7ac31b49dd613bf2eab0cb3358) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "244k.c1", 0x000000, 0x800000, CRC(9067dfda) SHA1(034c0e21ece55df30357d7abfb7cb05994e9b131) )
+ ROM_LOAD16_BYTE( "244k.c2", 0x000001, 0x800000, CRC(54e86379) SHA1(e76f27b5cf2ab7ed00a8abfe2e2397394c51dac5) )
+ROM_END
+
+
+ROM_START( ninjamasasp )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "217asp.p1", 0x000000, 0x100000, CRC(c92bd6a4) SHA1(2176c2a0a5a0982d0077f68203d67e26136e3a7b) )
+ ROM_LOAD16_WORD_SWAP( "217-p2.sp2", 0x100000, 0x200000, CRC(191fca88) SHA1(e318e5931704779bbe461719a5eeeba89bd83a5d) )
+
+ NEO_SFIX_128K( "217-s1.s1", CRC(8ff782f0) SHA1(90099c154357042ba658d4ef6abe4d9335bb7172) )
+
+ NEO_BIOS_AUDIO_128K( "217-m1.m1", CRC(d00fb2af) SHA1(6bcaa52e1641cc24288e1f22f4dc98e8d8921b90) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "217-v1.v1", 0x000000, 0x400000, CRC(1c34e013) SHA1(5368e413d2188c4fd063b6bb7d5f498ff83ea812) )
+ ROM_LOAD( "217-v2.v2", 0x400000, 0x200000, CRC(22f1c681) SHA1(09da03b2e63d180e55173ff25e8735c4162f027b) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "217-c1.c1", 0x0000000, 0x400000, CRC(5fe97bc4) SHA1(d76c955d83baa2b9fd24222a9b2852947b7b92f0) )
+ ROM_LOAD16_BYTE( "217-c2.c2", 0x0000001, 0x400000, CRC(886e0d66) SHA1(d407e1525e4ebe996e14f6e5c0396a10f736a50d) )
+ ROM_LOAD16_BYTE( "217-c3.c3", 0x0800000, 0x400000, CRC(59e8525f) SHA1(19f602c71545d6c021dc72e112d3a8b8efe7a9b7) )
+ ROM_LOAD16_BYTE( "217-c4.c4", 0x0800001, 0x400000, CRC(8521add2) SHA1(0d1a6f2979302c4c282e31ff334d2d887aec74f7) )
+ ROM_LOAD16_BYTE( "217-c5.c5", 0x1000000, 0x400000, CRC(fb1896e5) SHA1(777a8caa9ebdbddf89e3d5ab650c94a55228ce54) )
+ ROM_LOAD16_BYTE( "217-c6.c6", 0x1000001, 0x400000, CRC(1c98c54b) SHA1(cb1cad161d9b9f2f5a7cf8ae4d6d35b51acf90f5) )
+ ROM_LOAD16_BYTE( "217-c7.c7", 0x1800000, 0x400000, CRC(8b0ede2e) SHA1(ea632ac98291ddac95441b7fe2349974b2da8a42) )
+ ROM_LOAD16_BYTE( "217-c8.c8", 0x1800001, 0x400000, CRC(a085bb61) SHA1(6a3e9e6ba96072b8849b407f2b24103dc0852259) )
+ROM_END
+
+ROM_START( ninjamaschl )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "217chl.p1", 0x000000, 0x100000, CRC(3ca17556) SHA1(505878e23d8ff44bfce35fdce261e73eaaa99e37) )
+ ROM_LOAD16_WORD_SWAP( "217-p2.sp2", 0x100000, 0x200000, CRC(191fca88) SHA1(e318e5931704779bbe461719a5eeeba89bd83a5d) )
+
+ NEO_SFIX_128K( "217-s1.s1", CRC(8ff782f0) SHA1(90099c154357042ba658d4ef6abe4d9335bb7172) )
+
+ NEO_BIOS_AUDIO_128K( "217-m1.m1", CRC(d00fb2af) SHA1(6bcaa52e1641cc24288e1f22f4dc98e8d8921b90) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "217-v1.v1", 0x000000, 0x400000, CRC(1c34e013) SHA1(5368e413d2188c4fd063b6bb7d5f498ff83ea812) )
+ ROM_LOAD( "217-v2.v2", 0x400000, 0x200000, CRC(22f1c681) SHA1(09da03b2e63d180e55173ff25e8735c4162f027b) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "217-c1.c1", 0x0000000, 0x400000, CRC(5fe97bc4) SHA1(d76c955d83baa2b9fd24222a9b2852947b7b92f0) )
+ ROM_LOAD16_BYTE( "217-c2.c2", 0x0000001, 0x400000, CRC(886e0d66) SHA1(d407e1525e4ebe996e14f6e5c0396a10f736a50d) )
+ ROM_LOAD16_BYTE( "217-c3.c3", 0x0800000, 0x400000, CRC(59e8525f) SHA1(19f602c71545d6c021dc72e112d3a8b8efe7a9b7) )
+ ROM_LOAD16_BYTE( "217-c4.c4", 0x0800001, 0x400000, CRC(8521add2) SHA1(0d1a6f2979302c4c282e31ff334d2d887aec74f7) )
+ ROM_LOAD16_BYTE( "217-c5.c5", 0x1000000, 0x400000, CRC(fb1896e5) SHA1(777a8caa9ebdbddf89e3d5ab650c94a55228ce54) )
+ ROM_LOAD16_BYTE( "217-c6.c6", 0x1000001, 0x400000, CRC(1c98c54b) SHA1(cb1cad161d9b9f2f5a7cf8ae4d6d35b51acf90f5) )
+ ROM_LOAD16_BYTE( "217-c7.c7", 0x1800000, 0x400000, CRC(8b0ede2e) SHA1(ea632ac98291ddac95441b7fe2349974b2da8a42) )
+ ROM_LOAD16_BYTE( "217-c8.c8", 0x1800001, 0x400000, CRC(a085bb61) SHA1(6a3e9e6ba96072b8849b407f2b24103dc0852259) )
+ROM_END
+
+ROM_START( ninjamaseh ) /* Ninja Master's - Enhance by Ydmis - (Can choose Ranmaru and Nobunaga) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "217eh.p1", 0x000000, 0x100000, CRC(2cb6c199) SHA1(a7ad5bd0e827e8cece9d3447045a63fddee94385) )
+ ROM_LOAD16_WORD_SWAP( "217-p2.sp2", 0x100000, 0x200000, CRC(191fca88) SHA1(e318e5931704779bbe461719a5eeeba89bd83a5d) )
+
+ NEO_SFIX_128K( "217-s1.s1", CRC(8ff782f0) SHA1(90099c154357042ba658d4ef6abe4d9335bb7172) )
+
+ NEO_BIOS_AUDIO_128K( "217-m1.m1", CRC(d00fb2af) SHA1(6bcaa52e1641cc24288e1f22f4dc98e8d8921b90) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "217-v1.v1", 0x000000, 0x400000, CRC(1c34e013) SHA1(5368e413d2188c4fd063b6bb7d5f498ff83ea812) )
+ ROM_LOAD( "217-v2.v2", 0x400000, 0x200000, CRC(22f1c681) SHA1(09da03b2e63d180e55173ff25e8735c4162f027b) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "217-c1.c1", 0x0000000, 0x400000, CRC(5fe97bc4) SHA1(d76c955d83baa2b9fd24222a9b2852947b7b92f0) )
+ ROM_LOAD16_BYTE( "217-c2.c2", 0x0000001, 0x400000, CRC(886e0d66) SHA1(d407e1525e4ebe996e14f6e5c0396a10f736a50d) )
+ ROM_LOAD16_BYTE( "217-c3.c3", 0x0800000, 0x400000, CRC(59e8525f) SHA1(19f602c71545d6c021dc72e112d3a8b8efe7a9b7) )
+ ROM_LOAD16_BYTE( "217-c4.c4", 0x0800001, 0x400000, CRC(8521add2) SHA1(0d1a6f2979302c4c282e31ff334d2d887aec74f7) )
+ ROM_LOAD16_BYTE( "217-c5.c5", 0x1000000, 0x400000, CRC(fb1896e5) SHA1(777a8caa9ebdbddf89e3d5ab650c94a55228ce54) )
+ ROM_LOAD16_BYTE( "217-c6.c6", 0x1000001, 0x400000, CRC(1c98c54b) SHA1(cb1cad161d9b9f2f5a7cf8ae4d6d35b51acf90f5) )
+ ROM_LOAD16_BYTE( "217-c7.c7", 0x1800000, 0x400000, CRC(8b0ede2e) SHA1(ea632ac98291ddac95441b7fe2349974b2da8a42) )
+ ROM_LOAD16_BYTE( "217-c8.c8", 0x1800001, 0x400000, CRC(a085bb61) SHA1(6a3e9e6ba96072b8849b407f2b24103dc0852259) )
+ROM_END
+
+ROM_START( ninjamasehc ) /* Ninja Master's - Enhance by Creamymami - (Power hack) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "217ehc.p1", 0x000000, 0x100000, CRC(8b88e675) SHA1(d16dad0d05282b577fabf3bd187ac3b8d4ddfa57) )
+ ROM_LOAD16_WORD_SWAP( "217-p2.sp2", 0x100000, 0x200000, CRC(191fca88) SHA1(e318e5931704779bbe461719a5eeeba89bd83a5d) )
+
+ NEO_SFIX_128K( "217-s1.s1", CRC(8ff782f0) SHA1(90099c154357042ba658d4ef6abe4d9335bb7172) )
+
+ NEO_BIOS_AUDIO_128K( "217-m1.m1", CRC(d00fb2af) SHA1(6bcaa52e1641cc24288e1f22f4dc98e8d8921b90) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "217-v1.v1", 0x000000, 0x400000, CRC(1c34e013) SHA1(5368e413d2188c4fd063b6bb7d5f498ff83ea812) )
+ ROM_LOAD( "217-v2.v2", 0x400000, 0x200000, CRC(22f1c681) SHA1(09da03b2e63d180e55173ff25e8735c4162f027b) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "217-c1.c1", 0x0000000, 0x400000, CRC(5fe97bc4) SHA1(d76c955d83baa2b9fd24222a9b2852947b7b92f0) )
+ ROM_LOAD16_BYTE( "217-c2.c2", 0x0000001, 0x400000, CRC(886e0d66) SHA1(d407e1525e4ebe996e14f6e5c0396a10f736a50d) )
+ ROM_LOAD16_BYTE( "217-c3.c3", 0x0800000, 0x400000, CRC(59e8525f) SHA1(19f602c71545d6c021dc72e112d3a8b8efe7a9b7) )
+ ROM_LOAD16_BYTE( "217-c4.c4", 0x0800001, 0x400000, CRC(8521add2) SHA1(0d1a6f2979302c4c282e31ff334d2d887aec74f7) )
+ ROM_LOAD16_BYTE( "217-c5.c5", 0x1000000, 0x400000, CRC(fb1896e5) SHA1(777a8caa9ebdbddf89e3d5ab650c94a55228ce54) )
+ ROM_LOAD16_BYTE( "217-c6.c6", 0x1000001, 0x400000, CRC(1c98c54b) SHA1(cb1cad161d9b9f2f5a7cf8ae4d6d35b51acf90f5) )
+ ROM_LOAD16_BYTE( "217-c7.c7", 0x1800000, 0x400000, CRC(8b0ede2e) SHA1(ea632ac98291ddac95441b7fe2349974b2da8a42) )
+ ROM_LOAD16_BYTE( "217-c8.c8", 0x1800001, 0x400000, CRC(a085bb61) SHA1(6a3e9e6ba96072b8849b407f2b24103dc0852259) )
+ROM_END
+
+ROM_START( ninjamasehyc ) /* Ninja Master's - Enhance by Creamymami and Ydmis - (Can choose Ranmaru and Nobunaga - power hack) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "217ehyc.p1", 0x000000, 0x100000, CRC(99a9ca85) SHA1(25d3995f9669072b17718169693dc5c4fed0c9f2) )
+ ROM_LOAD16_WORD_SWAP( "217-p2.sp2", 0x100000, 0x200000, CRC(191fca88) SHA1(e318e5931704779bbe461719a5eeeba89bd83a5d) )
+
+ NEO_SFIX_128K( "217-s1.s1", CRC(8ff782f0) SHA1(90099c154357042ba658d4ef6abe4d9335bb7172) )
+
+ NEO_BIOS_AUDIO_128K( "217-m1.m1", CRC(d00fb2af) SHA1(6bcaa52e1641cc24288e1f22f4dc98e8d8921b90) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "217-v1.v1", 0x000000, 0x400000, CRC(1c34e013) SHA1(5368e413d2188c4fd063b6bb7d5f498ff83ea812) )
+ ROM_LOAD( "217-v2.v2", 0x400000, 0x200000, CRC(22f1c681) SHA1(09da03b2e63d180e55173ff25e8735c4162f027b) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "217-c1.c1", 0x0000000, 0x400000, CRC(5fe97bc4) SHA1(d76c955d83baa2b9fd24222a9b2852947b7b92f0) )
+ ROM_LOAD16_BYTE( "217-c2.c2", 0x0000001, 0x400000, CRC(886e0d66) SHA1(d407e1525e4ebe996e14f6e5c0396a10f736a50d) )
+ ROM_LOAD16_BYTE( "217-c3.c3", 0x0800000, 0x400000, CRC(59e8525f) SHA1(19f602c71545d6c021dc72e112d3a8b8efe7a9b7) )
+ ROM_LOAD16_BYTE( "217-c4.c4", 0x0800001, 0x400000, CRC(8521add2) SHA1(0d1a6f2979302c4c282e31ff334d2d887aec74f7) )
+ ROM_LOAD16_BYTE( "217-c5.c5", 0x1000000, 0x400000, CRC(fb1896e5) SHA1(777a8caa9ebdbddf89e3d5ab650c94a55228ce54) )
+ ROM_LOAD16_BYTE( "217-c6.c6", 0x1000001, 0x400000, CRC(1c98c54b) SHA1(cb1cad161d9b9f2f5a7cf8ae4d6d35b51acf90f5) )
+ ROM_LOAD16_BYTE( "217-c7.c7", 0x1800000, 0x400000, CRC(8b0ede2e) SHA1(ea632ac98291ddac95441b7fe2349974b2da8a42) )
+ ROM_LOAD16_BYTE( "217-c8.c8", 0x1800001, 0x400000, CRC(a085bb61) SHA1(6a3e9e6ba96072b8849b407f2b24103dc0852259) )
+ROM_END
+
+ROM_START( ninjamasha )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "217ha.p1", 0x000000, 0x100000, CRC(45332f39) SHA1(6689c3de46d199aa32814f773d04ab558b30e98d) )
+ ROM_LOAD16_WORD_SWAP( "217-p2.sp2", 0x100000, 0x200000, CRC(191fca88) SHA1(e318e5931704779bbe461719a5eeeba89bd83a5d) )
+
+ NEO_SFIX_128K( "217-s1.s1", CRC(8ff782f0) SHA1(90099c154357042ba658d4ef6abe4d9335bb7172) )
+
+ NEO_BIOS_AUDIO_128K( "217-m1.m1", CRC(d00fb2af) SHA1(6bcaa52e1641cc24288e1f22f4dc98e8d8921b90) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "217-v1.v1", 0x000000, 0x400000, CRC(1c34e013) SHA1(5368e413d2188c4fd063b6bb7d5f498ff83ea812) )
+ ROM_LOAD( "217-v2.v2", 0x400000, 0x200000, CRC(22f1c681) SHA1(09da03b2e63d180e55173ff25e8735c4162f027b) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "217-c1.c1", 0x0000000, 0x400000, CRC(5fe97bc4) SHA1(d76c955d83baa2b9fd24222a9b2852947b7b92f0) )
+ ROM_LOAD16_BYTE( "217-c2.c2", 0x0000001, 0x400000, CRC(886e0d66) SHA1(d407e1525e4ebe996e14f6e5c0396a10f736a50d) )
+ ROM_LOAD16_BYTE( "217-c3.c3", 0x0800000, 0x400000, CRC(59e8525f) SHA1(19f602c71545d6c021dc72e112d3a8b8efe7a9b7) )
+ ROM_LOAD16_BYTE( "217-c4.c4", 0x0800001, 0x400000, CRC(8521add2) SHA1(0d1a6f2979302c4c282e31ff334d2d887aec74f7) )
+ ROM_LOAD16_BYTE( "217-c5.c5", 0x1000000, 0x400000, CRC(fb1896e5) SHA1(777a8caa9ebdbddf89e3d5ab650c94a55228ce54) )
+ ROM_LOAD16_BYTE( "217-c6.c6", 0x1000001, 0x400000, CRC(1c98c54b) SHA1(cb1cad161d9b9f2f5a7cf8ae4d6d35b51acf90f5) )
+ ROM_LOAD16_BYTE( "217-c7.c7", 0x1800000, 0x400000, CRC(8b0ede2e) SHA1(ea632ac98291ddac95441b7fe2349974b2da8a42) )
+ ROM_LOAD16_BYTE( "217-c8.c8", 0x1800001, 0x400000, CRC(a085bb61) SHA1(6a3e9e6ba96072b8849b407f2b24103dc0852259) )
+ROM_END
+
+ROM_START( ninjamashb )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "217hb.p1", 0x000000, 0x100000, CRC(a95d896b) SHA1(f4757bd9d198c77e31f21c955f69ea175e9d779f) )
+ ROM_LOAD16_WORD_SWAP( "217-p2.sp2", 0x100000, 0x200000, CRC(191fca88) SHA1(e318e5931704779bbe461719a5eeeba89bd83a5d) )
+
+ NEO_SFIX_128K( "217-s1.s1", CRC(8ff782f0) SHA1(90099c154357042ba658d4ef6abe4d9335bb7172) )
+
+ NEO_BIOS_AUDIO_128K( "217-m1.m1", CRC(d00fb2af) SHA1(6bcaa52e1641cc24288e1f22f4dc98e8d8921b90) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "217-v1.v1", 0x000000, 0x400000, CRC(1c34e013) SHA1(5368e413d2188c4fd063b6bb7d5f498ff83ea812) )
+ ROM_LOAD( "217-v2.v2", 0x400000, 0x200000, CRC(22f1c681) SHA1(09da03b2e63d180e55173ff25e8735c4162f027b) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "217-c1.c1", 0x0000000, 0x400000, CRC(5fe97bc4) SHA1(d76c955d83baa2b9fd24222a9b2852947b7b92f0) )
+ ROM_LOAD16_BYTE( "217-c2.c2", 0x0000001, 0x400000, CRC(886e0d66) SHA1(d407e1525e4ebe996e14f6e5c0396a10f736a50d) )
+ ROM_LOAD16_BYTE( "217-c3.c3", 0x0800000, 0x400000, CRC(59e8525f) SHA1(19f602c71545d6c021dc72e112d3a8b8efe7a9b7) )
+ ROM_LOAD16_BYTE( "217-c4.c4", 0x0800001, 0x400000, CRC(8521add2) SHA1(0d1a6f2979302c4c282e31ff334d2d887aec74f7) )
+ ROM_LOAD16_BYTE( "217-c5.c5", 0x1000000, 0x400000, CRC(fb1896e5) SHA1(777a8caa9ebdbddf89e3d5ab650c94a55228ce54) )
+ ROM_LOAD16_BYTE( "217-c6.c6", 0x1000001, 0x400000, CRC(1c98c54b) SHA1(cb1cad161d9b9f2f5a7cf8ae4d6d35b51acf90f5) )
+ ROM_LOAD16_BYTE( "217-c7.c7", 0x1800000, 0x400000, CRC(8b0ede2e) SHA1(ea632ac98291ddac95441b7fe2349974b2da8a42) )
+ ROM_LOAD16_BYTE( "217-c8.c8", 0x1800001, 0x400000, CRC(a085bb61) SHA1(6a3e9e6ba96072b8849b407f2b24103dc0852259) )
+ROM_END
+
+
+ROM_START( nitdd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "260-p1.p1", 0x000000, 0x080000, CRC(61361082) SHA1(441f3f41c1aa752c0e0a9a0b1d92711d9e636b85) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_512K( "260-m1.m1", CRC(6407c5e5) SHA1(d273e154cc905b63205a17a1a6d419cac3485a92) )
+
+ ROM_REGION( 0x0400000, "ymsnd", 0 )
+ ROM_LOAD( "260-v1.v1", 0x000000, 0x400000, CRC(24b0480c) SHA1(d769e621be52a5cd2e2568891b5f95a48268e1e0) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "260d.c1", 0x0000000, 0x800000, CRC(f3ff4953) SHA1(0e54548387f3056088e89086a30da05935d08b24) )
+ ROM_LOAD16_BYTE( "260d.c2", 0x0000001, 0x800000, CRC(f1e49faa) SHA1(2a771e318423addd9daae3a9af200de2c70f4021) )
+ROM_END
+
+ROM_START( nitdfr ) /* Nightmare in the Dark - Translation Hack by NEO-ARC - (French translation) */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "260fr.p1", 0x000000, 0x080000, CRC(aa52c3cf) SHA1(f098aa068ee365fa7af9c638bc09eb82396e1749) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_512K( "260-m1.m1", CRC(6407c5e5) SHA1(d273e154cc905b63205a17a1a6d419cac3485a92) )
+
+ ROM_REGION( 0x0400000, "ymsnd", 0 )
+ ROM_LOAD( "260-v1.v1", 0x000000, 0x400000, CRC(24b0480c) SHA1(d769e621be52a5cd2e2568891b5f95a48268e1e0) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "260fr.c1", 0x0000000, 0x800000, CRC(7c469419) SHA1(06a45016c9493b85fbb8d9ebd33409a0d933ed22) )
+ ROM_LOAD16_BYTE( "260fr.c2", 0x0000001, 0x800000, CRC(74ada44f) SHA1(77d051a3522d2c658ef4790ddeac0271e9490fd2) )
+ROM_END
+
+ROM_START( nitdfro ) /* Nightmare in the Dark - Translation Hack Older? */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "260fro.p1", 0x000000, 0x080000, CRC(b294c6ce) SHA1(77f641c05a645e8d57014540ef1b7f52c4a8849b) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_512K( "260-m1.m1", CRC(6407c5e5) SHA1(d273e154cc905b63205a17a1a6d419cac3485a92) )
+
+ ROM_REGION( 0x0400000, "ymsnd", 0 )
+ ROM_LOAD( "260-v1.v1", 0x000000, 0x400000, CRC(24b0480c) SHA1(d769e621be52a5cd2e2568891b5f95a48268e1e0) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "260fro.c1", 0x0000000, 0x800000, CRC(14c5a25f) SHA1(8b29f7e6920eb1b4a7dc42a063e4c8e6ec9a5700) )
+ ROM_LOAD16_BYTE( "260fro.c2", 0x0000001, 0x800000, CRC(6630c255) SHA1(c8a77a3d6e17e1ed64eb6b1e85172567e7e3e71c) )
+ROM_END
+
+ROM_START( nitdfro1 )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "260fro.p1", 0x000000, 0x080000, CRC(b294c6ce) SHA1(77f641c05a645e8d57014540ef1b7f52c4a8849b) )
+
+ NEO_SFIX_128K( "260fro1.s1", CRC(dd3bf47c) SHA1(881271caee6508b8be51bf1b59c8f1e58e08e551) )
+
+ NEO_BIOS_AUDIO_512K( "260-m1.m1", CRC(6407c5e5) SHA1(d273e154cc905b63205a17a1a6d419cac3485a92) )
+
+ ROM_REGION( 0x0400000, "ymsnd", 0 )
+ ROM_LOAD( "260-v1.v1", 0x000000, 0x400000, CRC(24b0480c) SHA1(d769e621be52a5cd2e2568891b5f95a48268e1e0) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "260fro.c1", 0x0000000, 0x800000, CRC(14c5a25f) SHA1(8b29f7e6920eb1b4a7dc42a063e4c8e6ec9a5700) )
+ ROM_LOAD16_BYTE( "260fro.c2", 0x0000001, 0x800000, CRC(6630c255) SHA1(c8a77a3d6e17e1ed64eb6b1e85172567e7e3e71c) )
+ROM_END
+
+ROM_START( nitdpx )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "260px.p1", 0x000000, 0x080000, CRC(4198ce09) SHA1(13c8c54b8533955e5b07ca0775346e14d4a10b35) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_512K( "260-m1.m1", CRC(6407c5e5) SHA1(d273e154cc905b63205a17a1a6d419cac3485a92) )
+
+ ROM_REGION( 0x0400000, "ymsnd", 0 )
+ ROM_LOAD( "260-v1.v1", 0x000000, 0x400000, CRC(24b0480c) SHA1(d769e621be52a5cd2e2568891b5f95a48268e1e0) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "260-c1.c1", 0x0000000, 0x800000, CRC(147b0c7f) SHA1(a647c3a2f6d146ff47521c1d39f58830601f5781) )
+ ROM_LOAD16_BYTE( "260-c2.c2", 0x0000001, 0x800000, CRC(d2b04b0d) SHA1(ce4322e6cfacb627fe997efe81018861e21d3c27) )
+ROM_END
+
+ROM_START( nitdsp ) /* Nightmare in the Dark - Translation Hack by UNKNOWN - (Spanish language hack) */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "260sp.p1", 0x000000, 0x080000, CRC(0ab6d623) SHA1(c508e92d0ed3f600dffe41d2f815d16bb377dace) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_512K( "260-m1.m1", CRC(6407c5e5) SHA1(d273e154cc905b63205a17a1a6d419cac3485a92) )
+
+ ROM_REGION( 0x0400000, "ymsnd", 0 )
+ ROM_LOAD( "260-v1.v1", 0x000000, 0x400000, CRC(24b0480c) SHA1(d769e621be52a5cd2e2568891b5f95a48268e1e0) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "260-c1.c1", 0x0000000, 0x800000, CRC(147b0c7f) SHA1(a647c3a2f6d146ff47521c1d39f58830601f5781) )
+ ROM_LOAD16_BYTE( "260-c2.c2", 0x0000001, 0x800000, CRC(d2b04b0d) SHA1(ce4322e6cfacb627fe997efe81018861e21d3c27) )
+ROM_END
+
+ROM_START( nitdsp1 ) /* Nightmare in the Dark - Translation Hack by UNKNOWN - (Spanish language hack) */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "260sp1.p1", 0x000000, 0x080000, CRC(42b69e41) SHA1(cb814190d96ef67096ee9f4f305611d870a76e93) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_512K( "260-m1.m1", CRC(6407c5e5) SHA1(d273e154cc905b63205a17a1a6d419cac3485a92) )
+
+ ROM_REGION( 0x0400000, "ymsnd", 0 )
+ ROM_LOAD( "260-v1.v1", 0x000000, 0x400000, CRC(24b0480c) SHA1(d769e621be52a5cd2e2568891b5f95a48268e1e0) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "260sp1.c1", 0x0000000, 0x800000, CRC(3f7fbd0c) SHA1(2e6cedcb099ae8f5bbdb9d989ca3918d7fb0504f) )
+ ROM_LOAD16_BYTE( "260sp1.c2", 0x0000001, 0x800000, CRC(b5ddbb97) SHA1(b44dee65bbb5b2c6d7c6d4990762b26deaf3c696) )
+ROM_END
+
+ROM_START( nitdsp2 )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "260sp1.p1", 0x000000, 0x080000, CRC(42b69e41) SHA1(cb814190d96ef67096ee9f4f305611d870a76e93) )
+
+ NEO_SFIX_128K( "260fro1.s1", CRC(dd3bf47c) SHA1(881271caee6508b8be51bf1b59c8f1e58e08e551) )
+
+ NEO_BIOS_AUDIO_512K( "260-m1.m1", CRC(6407c5e5) SHA1(d273e154cc905b63205a17a1a6d419cac3485a92) )
+
+ ROM_REGION( 0x0400000, "ymsnd", 0 )
+ ROM_LOAD( "260-v1.v1", 0x000000, 0x400000, CRC(24b0480c) SHA1(d769e621be52a5cd2e2568891b5f95a48268e1e0) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "260sp1.c1", 0x0000000, 0x800000, CRC(3f7fbd0c) SHA1(2e6cedcb099ae8f5bbdb9d989ca3918d7fb0504f) )
+ ROM_LOAD16_BYTE( "260sp1.c2", 0x0000001, 0x800000, CRC(b5ddbb97) SHA1(b44dee65bbb5b2c6d7c6d4990762b26deaf3c696) )
+ROM_END
+
+
+ROM_START( pbobblenba )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "083b.p1", 0x000000, 0x080000, CRC(ac1e9ef3) SHA1(a2b125ee70869667431ab125bc29e768500802ad) )
+
+ NEO_SFIX_128K( "d96-04.s1", CRC(9caae538) SHA1(cf2d90a7c1a42107c0bb8b9a61397634286dbe0a) )
+
+ NEO_BIOS_AUDIO_128K( "d96-06.m1", CRC(f424368a) SHA1(5e5bbcaeb82bed2ee17df08f005ca20ad1030723) )
+
+ ROM_REGION( 0x380000, "ymsnd", 0 )
+ ROM_LOAD( "083b.v1", 0x200000, 0x080000, CRC(f8872aed) SHA1(73685980253093b4f148cb38b6a47476fb2a61aa) )
+ ROM_LOAD( "083b.v2", 0x280000, 0x080000, CRC(5c8cf5fe) SHA1(97d74466ac48708d7f4004524288dd2f32f17793) )
+ ROM_LOAD( "d96-05.v4", 0x300000, 0x080000, CRC(0a548948) SHA1(e1e4afd17811cb60401c14fbcf0465035165f4fb) )
+
+ ROM_REGION( 0x100000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "d96-02.c5", 0x000000, 0x80000, CRC(e89ad494) SHA1(69c9ea415773af94ac44c48af05d55ada222b138) )
+ ROM_LOAD16_BYTE( "d96-03.c6", 0x000001, 0x80000, CRC(4b42d7eb) SHA1(042ae50a528cea21cf07771d3915c57aa16fd5af) )
+ROM_END
+
+ROM_START( pbobblencd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "083cd.p1", 0x000000, 0x040000, CRC(b1095646) SHA1(20fa2bc724df4b5234ff0ccf3074e545f28d1bbd) )
+
+ NEO_SFIX_128K( "d96-04.s1", CRC(9caae538) SHA1(cf2d90a7c1a42107c0bb8b9a61397634286dbe0a) )
+
+ NEO_BIOS_AUDIO_64K( "083cd.m1", CRC(c505fcdb) SHA1(2b3e10e1475c7c1425b382be30c765e455c5bbc6) )
+
+ ROM_REGION( 0x180000, "ymsnd", 0 )
+ ROM_LOAD( "083ch.v3", 0x000000, 0x100000, CRC(30ce579e) SHA1(635f7ab2178981ba38cc0080f4f97e954e552440) )
+ ROM_LOAD( "d96-05.v4", 0x100000, 0x080000, CRC(0a548948) SHA1(e1e4afd17811cb60401c14fbcf0465035165f4fb) )
+
+ ROM_REGION( 0x100000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "d96-02.c5", 0x000000, 0x80000, CRC(e89ad494) SHA1(69c9ea415773af94ac44c48af05d55ada222b138) )
+ ROM_LOAD16_BYTE( "d96-03.c6", 0x000001, 0x80000, CRC(4b42d7eb) SHA1(042ae50a528cea21cf07771d3915c57aa16fd5af) )
+ROM_END
+
+ROM_START( pbcrazyb1 )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "462b1.p1", 0x000000, 0x038db2, CRC(008dd79a) SHA1(1c05d442fb19c3e60257592874737585c9b58b31) )
+
+ NEO_SFIX_128K( "d96-04.s1", CRC(9caae538) SHA1(cf2d90a7c1a42107c0bb8b9a61397634286dbe0a) )
+
+ NEO_BIOS_AUDIO_64K( "462.m1", CRC(5e378316) SHA1(fa9a904583e00614762ad91bab83e86d52237777) )
+
+ ROM_REGION( 0x180000, "ymsnd", 0 )
+ ROM_LOAD( "083ch.v3", 0x000000, 0x100000, CRC(30ce579e) SHA1(635f7ab2178981ba38cc0080f4f97e954e552440) )
+ ROM_LOAD( "d96-05.v4", 0x100000, 0x080000, CRC(0a548948) SHA1(e1e4afd17811cb60401c14fbcf0465035165f4fb) )
+
+ ROM_REGION( 0x100000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "462b1.c1", 0x000000, 0x68000, CRC(58ac4d8e) SHA1(4a6a8b914a2f2918675ee2ad358d5ccaa867915a) )
+ ROM_LOAD16_BYTE( "462b1.c2", 0x000001, 0x68000, CRC(bc37b7fb) SHA1(d24012bca3dd77150998ae1a69d544d29e607eee) )
+ROM_END
+
+ROM_START( pbcrazyb2 )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "462b2.p1", 0x000000, 0x038db2, CRC(6a3227ff) SHA1(45e9006edcb44c208ee1e8221f47158d6a749667) )
+
+ NEO_SFIX_128K( "d96-04.s1", CRC(9caae538) SHA1(cf2d90a7c1a42107c0bb8b9a61397634286dbe0a) )
+
+ NEO_BIOS_AUDIO_64K( "462.m1", CRC(5e378316) SHA1(fa9a904583e00614762ad91bab83e86d52237777) )
+
+ ROM_REGION( 0x180000, "ymsnd", 0 )
+ ROM_LOAD( "083ch.v3", 0x000000, 0x100000, CRC(30ce579e) SHA1(635f7ab2178981ba38cc0080f4f97e954e552440) )
+ ROM_LOAD( "d96-05.v4", 0x100000, 0x080000, CRC(0a548948) SHA1(e1e4afd17811cb60401c14fbcf0465035165f4fb) )
+
+ ROM_REGION( 0x100000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "462b2.c1", 0x000000, 0x68000, CRC(b50a9e06) SHA1(d9f7aaddc6e48518a4ad332e718847001b5e3330) )
+ ROM_LOAD16_BYTE( "462b2.c2", 0x000001, 0x68000, CRC(427422db) SHA1(e7fed9ae3ce9c61dd85a0adafc51af727acba37d) )
+ROM_END
+
+ROM_START( pbobblendx )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "083dx.p1", 0x000000, 0x040000, CRC(5ed56e87) SHA1(b927c9fd907f90e1b5556c96f22b5245b23f07a6) )
+
+ NEO_SFIX_128K( "d96-04.s1", CRC(9caae538) SHA1(cf2d90a7c1a42107c0bb8b9a61397634286dbe0a) )
+
+ NEO_BIOS_AUDIO_64K( "083dx.m1", CRC(129e6054) SHA1(4edd18c44759e7a140705f1544413c649131c551) )
+
+ ROM_REGION( 0x380000, "ymsnd", 0 )
+ ROM_LOAD( "d96-01.v3", 0x200000, 0x100000, CRC(0840cbc4) SHA1(1adbd7aef44fa80832f63dfb8efdf69fd7256a57) )
+ ROM_LOAD( "d96-05.v4", 0x300000, 0x080000, CRC(0a548948) SHA1(e1e4afd17811cb60401c14fbcf0465035165f4fb) )
+
+ ROM_REGION( 0x100000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "d96-02.c5", 0x000000, 0x80000, CRC(e89ad494) SHA1(69c9ea415773af94ac44c48af05d55ada222b138) )
+ ROM_LOAD16_BYTE( "d96-03.c6", 0x000001, 0x80000, CRC(4b42d7eb) SHA1(042ae50a528cea21cf07771d3915c57aa16fd5af) )
+ROM_END
+
+
+ROM_START( pnyaad ) /* Decrypted C ROMs Version - Encrypted Sound */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "267-p1.p1", 0x000000, 0x100000, CRC(112fe2c0) SHA1(01420e051f0bdbd4f68ce306a3738161b96f8ba8) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "267-m1.m1", CRC(c7853ccd) SHA1(1b7a4c5093cf0fe3861ce44fd1d3b30c71ad0abe) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "267-v1.v1", 0x000000, 0x400000, CRC(e2e8e917) SHA1(7f412d55aebff3d38a225a88c632916295ab0584) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "267d.c1", 0x0000000, 0x800000, CRC(75fa4f27) SHA1(05f39dc5bedfecff67a9e5bd0bb8d09d93168f58) )
+ ROM_LOAD16_BYTE( "267d.c2", 0x0000001, 0x800000, CRC(02345689) SHA1(d40c425e73fd8dc0b0f66bf72a79f66b3bf390e1) )
+ROM_END
+
+
+ROM_START( preisle2d )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "255-p1.p1", 0x000000, 0x100000, CRC(dfa3c0f3) SHA1(793c6a46f3a794536dc0327a3f3fad20e25ab661) )
+ ROM_LOAD16_WORD_SWAP( "255-p2.sp2", 0x100000, 0x400000, CRC(42050b80) SHA1(0981a8295d43b264c2b95e5d7568bdda4e64c976) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "255-m1.m1", CRC(8efd4014) SHA1(5b73809b6e4e49264d281ef3e5004ac8a9de296d) )
+
+ ROM_REGION( 0x0600000, "ymsnd", 0 )
+ ROM_LOAD( "255-v1.v1", 0x000000, 0x400000, CRC(5a14543d) SHA1(7146ac748f846c7e2d5b0bdcf953892e39b648fe) )
+ ROM_LOAD( "255-v2.v2", 0x400000, 0x200000, CRC(6610d91a) SHA1(b2c6786920dc1712e88c3cc26d2c6c3ac2615bf4) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "255d.c1", 0x0000000, 0x800000, CRC(50fd785e) SHA1(97e03925f3060df4cfa576b6d2c2000952990530) )
+ ROM_LOAD16_BYTE( "255d.c2", 0x0000001, 0x800000, CRC(ab913f1e) SHA1(e3413d40dc4a2240ff0302eb9eff4cc64895b6ef) )
+ ROM_LOAD16_BYTE( "255d.c3", 0x1000000, 0x800000, CRC(bc0ee75c) SHA1(50c01b97d5457c2c1b8df8c0c7eda69384dea78b) )
+ ROM_LOAD16_BYTE( "255d.c4", 0x1000001, 0x800000, CRC(29908823) SHA1(2a40263f3866c06eecc209faeea7ced6641ed918) )
+ ROM_LOAD16_BYTE( "255d.c5", 0x2000000, 0x800000, CRC(83c56bca) SHA1(54bec4cce628bef3b87bbd6c0339494232a9516b) )
+ ROM_LOAD16_BYTE( "255d.c6", 0x2000001, 0x800000, CRC(59e0e805) SHA1(0d9c9b52bb0672fe70ffbb2780a9449f6a7f0984) )
+ROM_END
+
+ROM_START( preisle2px )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "255px.p1", 0x000000, 0x100000, CRC(69a69841) SHA1(01b3dbc2ae51993c4db84f62bbe2f3cf9fc90d57) )
+ ROM_LOAD16_WORD_SWAP( "255-p2.sp2", 0x100000, 0x400000, CRC(42050b80) SHA1(0981a8295d43b264c2b95e5d7568bdda4e64c976) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "255-m1.m1", CRC(8efd4014) SHA1(5b73809b6e4e49264d281ef3e5004ac8a9de296d) )
+
+ ROM_REGION( 0x0600000, "ymsnd", 0 )
+ ROM_LOAD( "255-v1.v1", 0x000000, 0x400000, CRC(5a14543d) SHA1(7146ac748f846c7e2d5b0bdcf953892e39b648fe) )
+ ROM_LOAD( "255-v2.v2", 0x400000, 0x200000, CRC(6610d91a) SHA1(b2c6786920dc1712e88c3cc26d2c6c3ac2615bf4) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "255d.c1", 0x0000000, 0x800000, CRC(50fd785e) SHA1(97e03925f3060df4cfa576b6d2c2000952990530) )
+ ROM_LOAD16_BYTE( "255d.c2", 0x0000001, 0x800000, CRC(ab913f1e) SHA1(e3413d40dc4a2240ff0302eb9eff4cc64895b6ef) )
+ ROM_LOAD16_BYTE( "255d.c3", 0x1000000, 0x800000, CRC(bc0ee75c) SHA1(50c01b97d5457c2c1b8df8c0c7eda69384dea78b) )
+ ROM_LOAD16_BYTE( "255d.c4", 0x1000001, 0x800000, CRC(29908823) SHA1(2a40263f3866c06eecc209faeea7ced6641ed918) )
+ ROM_LOAD16_BYTE( "255d.c5", 0x2000000, 0x800000, CRC(83c56bca) SHA1(54bec4cce628bef3b87bbd6c0339494232a9516b) )
+ ROM_LOAD16_BYTE( "255d.c6", 0x2000001, 0x800000, CRC(59e0e805) SHA1(0d9c9b52bb0672fe70ffbb2780a9449f6a7f0984) )
+ROM_END
+
+
+ROM_START( pspikes2cd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "068cd.p1", 0x000000, 0x100000, CRC(3920534c) SHA1(24e12b41b79145e4f3defaba7f77d1a57ffb8927) )
+
+ //NEO_SFIX_128K( "068-sg1.s1", CRC(18082299) SHA1(efe93fabe6a76a5dc8cf12f255e571480afb40a0) )
+ NEO_SFIX_128K( "068cd.s1", CRC(764ac7aa) SHA1(cc40ad276e63084ebf3c3ee224083762a47c3cf8) ) // used in many builds for fr2cd/fr2ch
+
+ NEO_BIOS_AUDIO_64K( "068cd.m1", CRC(cddc55db) SHA1(6a80c26490bbdeaddf608522c69f4cd16ba74533) )
+
+ ROM_REGION( 0x100000, "ymsnd", 0 )
+ ROM_LOAD( "068cd.v1", 0x000000, 0x100000, CRC(850ee5a0) SHA1(600a75da9b0f657df75e2d9300cfa08116a8be85) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "068cd.c1", 0x000000, 0x100000, CRC(d380883b) SHA1(0625cddb4e2fcbd3c764732a197d963299bd7d99) )
+ ROM_LOAD16_BYTE( "068cd.c2", 0x000001, 0x100000, CRC(9a5ad954) SHA1(4266760d2b6f2b7ef6e593c679b1639ec377e56b) )
+ ROM_LOAD16_BYTE( "068cd.c3", 0x200000, 0x100000, CRC(13d8a7f0) SHA1(5e7c35afe1984c67ed03f33ce22e7546861d63e6) )
+ ROM_LOAD16_BYTE( "068cd.c4", 0x200001, 0x100000, CRC(ca5af0be) SHA1(be47412b97413d3d36d4cb1acfc9fa252eb7dd70) )
+ROM_END
+
+
+ROM_START( ragnagrdbe )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "218be.p1", 0x100000, 0x100000, CRC(370a3b64) SHA1(85ddeb5ec0801c66268824236ed9ce2df51e927b) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "218-s1.s1", CRC(7d402f9a) SHA1(59ec29d03e62e7a8bef689a124a9164f43b2ace1) )
+
+ NEO_BIOS_AUDIO_128K( "218-m1.m1", CRC(17028bcf) SHA1(7a4e8f33ce9b41beac2152b8f6003f247699e2e1) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "218-v1.v1", 0x000000, 0x400000, CRC(61eee7f4) SHA1(5b11b1a0b1b74dfbc2998cbda9f8f7a5e9059957) )
+ ROM_LOAD( "218-v2.v2", 0x400000, 0x400000, CRC(6104e20b) SHA1(18e8aae3e51e141977d523a10e737ff68fe81910) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "218-c1.c1", 0x0000000, 0x400000, CRC(c31500a4) SHA1(cc82100038988872721028044ed2e9764bcc2fb0) )
+ ROM_LOAD16_BYTE( "218-c2.c2", 0x0000001, 0x400000, CRC(98aba1f9) SHA1(121276c569967e501d8e1b83747f1bdebff612ea) )
+ ROM_LOAD16_BYTE( "218-c3.c3", 0x0800000, 0x400000, CRC(833c163a) SHA1(b7e5356bbd9efab67fedb5bc671ba8bbd661fe0f) )
+ ROM_LOAD16_BYTE( "218-c4.c4", 0x0800001, 0x400000, CRC(c1a30f69) SHA1(f87ddda4695abcd14f5c2d4b7d41f72ad5b064cc) )
+ ROM_LOAD16_BYTE( "218-c5.c5", 0x1000000, 0x400000, CRC(6b6de0ff) SHA1(1abb24cb407258235f4a572cf101d0774823040b) )
+ ROM_LOAD16_BYTE( "218-c6.c6", 0x1000001, 0x400000, CRC(94beefcf) SHA1(d2ff0bac325c9c823dba68bd4f281b3b9f8f68e7) )
+ ROM_LOAD16_BYTE( "218-c7.c7", 0x1800000, 0x400000, CRC(de6f9b28) SHA1(455adb6bb986af8a00d7f32b7f4f3715fc3007f6) )
+ ROM_LOAD16_BYTE( "218-c8.c8", 0x1800001, 0x400000, CRC(d9b311f6) SHA1(ba61a7ab3f08bb7348ad6cd01e5d29ca5ee75074) )
+ROM_END
+
+ROM_START( ragnagrdbs )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "218bs.p1", 0x100000, 0x100000, CRC(befbb496) SHA1(7970d7fd151098be4625a96d8b21f66fd3d0aecf) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "218-s1.s1", CRC(7d402f9a) SHA1(59ec29d03e62e7a8bef689a124a9164f43b2ace1) )
+
+ NEO_BIOS_AUDIO_128K( "218-m1.m1", CRC(17028bcf) SHA1(7a4e8f33ce9b41beac2152b8f6003f247699e2e1) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "218-v1.v1", 0x000000, 0x400000, CRC(61eee7f4) SHA1(5b11b1a0b1b74dfbc2998cbda9f8f7a5e9059957) )
+ ROM_LOAD( "218-v2.v2", 0x400000, 0x400000, CRC(6104e20b) SHA1(18e8aae3e51e141977d523a10e737ff68fe81910) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "218-c1.c1", 0x0000000, 0x400000, CRC(c31500a4) SHA1(cc82100038988872721028044ed2e9764bcc2fb0) )
+ ROM_LOAD16_BYTE( "218-c2.c2", 0x0000001, 0x400000, CRC(98aba1f9) SHA1(121276c569967e501d8e1b83747f1bdebff612ea) )
+ ROM_LOAD16_BYTE( "218-c3.c3", 0x0800000, 0x400000, CRC(833c163a) SHA1(b7e5356bbd9efab67fedb5bc671ba8bbd661fe0f) )
+ ROM_LOAD16_BYTE( "218-c4.c4", 0x0800001, 0x400000, CRC(c1a30f69) SHA1(f87ddda4695abcd14f5c2d4b7d41f72ad5b064cc) )
+ ROM_LOAD16_BYTE( "218-c5.c5", 0x1000000, 0x400000, CRC(6b6de0ff) SHA1(1abb24cb407258235f4a572cf101d0774823040b) )
+ ROM_LOAD16_BYTE( "218-c6.c6", 0x1000001, 0x400000, CRC(94beefcf) SHA1(d2ff0bac325c9c823dba68bd4f281b3b9f8f68e7) )
+ ROM_LOAD16_BYTE( "218-c7.c7", 0x1800000, 0x400000, CRC(de6f9b28) SHA1(455adb6bb986af8a00d7f32b7f4f3715fc3007f6) )
+ ROM_LOAD16_BYTE( "218-c8.c8", 0x1800001, 0x400000, CRC(d9b311f6) SHA1(ba61a7ab3f08bb7348ad6cd01e5d29ca5ee75074) )
+ROM_END
+
+ROM_START( ragnagrdeh ) /* Operation Ragnagard - Enhance by Ydmis - (Can choose Lucifer, Eelis and Behemoth) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "218eh.p1", 0x100000, 0x100000, CRC(fb1e20df) SHA1(f8436078fe3dd495b6f513d9d42f6a42ed264d41) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "218-s1.s1", CRC(7d402f9a) SHA1(59ec29d03e62e7a8bef689a124a9164f43b2ace1) )
+
+ NEO_BIOS_AUDIO_128K( "218-m1.m1", CRC(17028bcf) SHA1(7a4e8f33ce9b41beac2152b8f6003f247699e2e1) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "218-v1.v1", 0x000000, 0x400000, CRC(61eee7f4) SHA1(5b11b1a0b1b74dfbc2998cbda9f8f7a5e9059957) )
+ ROM_LOAD( "218-v2.v2", 0x400000, 0x400000, CRC(6104e20b) SHA1(18e8aae3e51e141977d523a10e737ff68fe81910) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "218-c1.c1", 0x0000000, 0x400000, CRC(c31500a4) SHA1(cc82100038988872721028044ed2e9764bcc2fb0) )
+ ROM_LOAD16_BYTE( "218-c2.c2", 0x0000001, 0x400000, CRC(98aba1f9) SHA1(121276c569967e501d8e1b83747f1bdebff612ea) )
+ ROM_LOAD16_BYTE( "218-c3.c3", 0x0800000, 0x400000, CRC(833c163a) SHA1(b7e5356bbd9efab67fedb5bc671ba8bbd661fe0f) )
+ ROM_LOAD16_BYTE( "218-c4.c4", 0x0800001, 0x400000, CRC(c1a30f69) SHA1(f87ddda4695abcd14f5c2d4b7d41f72ad5b064cc) )
+ ROM_LOAD16_BYTE( "218-c5.c5", 0x1000000, 0x400000, CRC(6b6de0ff) SHA1(1abb24cb407258235f4a572cf101d0774823040b) )
+ ROM_LOAD16_BYTE( "218-c6.c6", 0x1000001, 0x400000, CRC(94beefcf) SHA1(d2ff0bac325c9c823dba68bd4f281b3b9f8f68e7) )
+ ROM_LOAD16_BYTE( "218-c7.c7", 0x1800000, 0x400000, CRC(de6f9b28) SHA1(455adb6bb986af8a00d7f32b7f4f3715fc3007f6) )
+ ROM_LOAD16_BYTE( "218-c8.c8", 0x1800001, 0x400000, CRC(d9b311f6) SHA1(ba61a7ab3f08bb7348ad6cd01e5d29ca5ee75074) )
+ROM_END
+
+ROM_START( ragnagrdsb )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "218sb.p1", 0x100000, 0x100000, CRC(8fd300f6) SHA1(3f456151cae94c11d1292d2deb8f68c44d9d3749) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "218-s1.s1", CRC(7d402f9a) SHA1(59ec29d03e62e7a8bef689a124a9164f43b2ace1) )
+
+ NEO_BIOS_AUDIO_128K( "218-m1.m1", CRC(17028bcf) SHA1(7a4e8f33ce9b41beac2152b8f6003f247699e2e1) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "218-v1.v1", 0x000000, 0x400000, CRC(61eee7f4) SHA1(5b11b1a0b1b74dfbc2998cbda9f8f7a5e9059957) )
+ ROM_LOAD( "218-v2.v2", 0x400000, 0x400000, CRC(6104e20b) SHA1(18e8aae3e51e141977d523a10e737ff68fe81910) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "218-c1.c1", 0x0000000, 0x400000, CRC(c31500a4) SHA1(cc82100038988872721028044ed2e9764bcc2fb0) )
+ ROM_LOAD16_BYTE( "218-c2.c2", 0x0000001, 0x400000, CRC(98aba1f9) SHA1(121276c569967e501d8e1b83747f1bdebff612ea) )
+ ROM_LOAD16_BYTE( "218-c3.c3", 0x0800000, 0x400000, CRC(833c163a) SHA1(b7e5356bbd9efab67fedb5bc671ba8bbd661fe0f) )
+ ROM_LOAD16_BYTE( "218-c4.c4", 0x0800001, 0x400000, CRC(c1a30f69) SHA1(f87ddda4695abcd14f5c2d4b7d41f72ad5b064cc) )
+ ROM_LOAD16_BYTE( "218-c5.c5", 0x1000000, 0x400000, CRC(6b6de0ff) SHA1(1abb24cb407258235f4a572cf101d0774823040b) )
+ ROM_LOAD16_BYTE( "218-c6.c6", 0x1000001, 0x400000, CRC(94beefcf) SHA1(d2ff0bac325c9c823dba68bd4f281b3b9f8f68e7) )
+ ROM_LOAD16_BYTE( "218-c7.c7", 0x1800000, 0x400000, CRC(de6f9b28) SHA1(455adb6bb986af8a00d7f32b7f4f3715fc3007f6) )
+ ROM_LOAD16_BYTE( "218-c8.c8", 0x1800001, 0x400000, CRC(d9b311f6) SHA1(ba61a7ab3f08bb7348ad6cd01e5d29ca5ee75074) )
+ROM_END
+
+
+ROM_START( s1945pd )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "254-p1.p1", 0x000000, 0x100000, CRC(ff8efcff) SHA1(dcaeaca573385c172ecc43ee6bee355359091893) )
+ ROM_LOAD16_WORD_SWAP( "254-p2.sp2", 0x100000, 0x400000, CRC(efdfd4dd) SHA1(254f3e1b546eed788f7ae919be9d1bf9702148ce) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "254-m1.m1", CRC(994b4487) SHA1(a4e645a3ababa48a8325980ff022e04a8b51b017) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "254-v1.v1", 0x000000, 0x400000, CRC(844f58fb) SHA1(e59544457be9f21481eac8b5a39b9cbb502f252d) )
+ ROM_LOAD( "254-v2.v2", 0x400000, 0x400000, CRC(d9a248f0) SHA1(dd3e0974b753e6f94d0943a002de45668a1b072b) )
+ ROM_LOAD( "254-v3.v3", 0x800000, 0x400000, CRC(0b0d2d33) SHA1(f8e76af42a997f36a40f66b39de00f68afe6a89c) )
+ ROM_LOAD( "254-v4.v4", 0xc00000, 0x400000, CRC(6d13dc91) SHA1(8433513c0b5aea61939068a25ab90efbe3e44116) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "254d.c1", 0x0000000, 0x800000, CRC(7b6902f9) SHA1(c974a3cd84fa15d5ae7c9053adbb004a9aa902cd) )
+ ROM_LOAD16_BYTE( "254d.c2", 0x0000001, 0x800000, CRC(51bd4252) SHA1(5a99563de1d83b7cd1d7ca7a50c71d5f30439276) )
+ ROM_LOAD16_BYTE( "254d.c3", 0x1000000, 0x800000, CRC(a38993e4) SHA1(0bd3bcecf17abfda7da997e348fe3b0e7a66a828) )
+ ROM_LOAD16_BYTE( "254d.c4", 0x1000001, 0x800000, CRC(d5696530) SHA1(15cbdaa729b8dd4d2489157d778379cfb0f79e51) )
+ ROM_LOAD16_BYTE( "254d.c5", 0x2000000, 0x800000, CRC(28764bd6) SHA1(21158ea89dd88abd7f73b4513b699089f7944ba5) )
+ ROM_LOAD16_BYTE( "254d.c6", 0x2000001, 0x800000, CRC(9931bdf1) SHA1(fa95fd8621403684e09f01a89f8df9ae2fa7de76) )
+ ROM_LOAD16_BYTE( "254d.c7", 0x3000000, 0x800000, CRC(6e12afcd) SHA1(ef45d9b923ec937f9c207cd50d917f0ded5b8faf) )
+ ROM_LOAD16_BYTE( "254d.c8", 0x3000001, 0x800000, CRC(178d4684) SHA1(3cbf379209c189ee48260a044dc2754035f57e14) )
+ROM_END
+
+ROM_START( s1945peh )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "254eh.p1", 0x000000, 0x100000, CRC(f776bf2a) SHA1(844602f9e2fb68c4002092592669f689728dad2d) )
+ ROM_LOAD16_WORD_SWAP( "254-p2.sp2", 0x100000, 0x400000, CRC(efdfd4dd) SHA1(254f3e1b546eed788f7ae919be9d1bf9702148ce) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "254-m1.m1", CRC(994b4487) SHA1(a4e645a3ababa48a8325980ff022e04a8b51b017) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "254-v1.v1", 0x000000, 0x400000, CRC(844f58fb) SHA1(e59544457be9f21481eac8b5a39b9cbb502f252d) )
+ ROM_LOAD( "254-v2.v2", 0x400000, 0x400000, CRC(d9a248f0) SHA1(dd3e0974b753e6f94d0943a002de45668a1b072b) )
+ ROM_LOAD( "254-v3.v3", 0x800000, 0x400000, CRC(0b0d2d33) SHA1(f8e76af42a997f36a40f66b39de00f68afe6a89c) )
+ ROM_LOAD( "254-v4.v4", 0xc00000, 0x400000, CRC(6d13dc91) SHA1(8433513c0b5aea61939068a25ab90efbe3e44116) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "254-c1.c1", 0x0000000, 0x800000, CRC(ae6fc8ef) SHA1(544ccdaee8a4a45cdce9483e30852811d2d5f3cc) )
+ ROM_LOAD16_BYTE( "254-c2.c2", 0x0000001, 0x800000, CRC(436fa176) SHA1(d70141a91a360a1b1070753086f976608fec38af) )
+ ROM_LOAD16_BYTE( "254-c3.c3", 0x1000000, 0x800000, CRC(e53ff2dc) SHA1(31f6aaffe28146d574aa72f14f90a9d968f36bc6) )
+ ROM_LOAD16_BYTE( "254-c4.c4", 0x1000001, 0x800000, CRC(818672f0) SHA1(460c6738d0ee5ae440a23fc1434fab53bbb242b5) )
+ ROM_LOAD16_BYTE( "254-c5.c5", 0x2000000, 0x800000, CRC(4580eacd) SHA1(feb96eb5e80c9125ddd7836e0939212cd3011c34) )
+ ROM_LOAD16_BYTE( "254-c6.c6", 0x2000001, 0x800000, CRC(e34970fc) SHA1(6e43e15e27bc914357f977116ab1e2d98711bb21) )
+ ROM_LOAD16_BYTE( "254-c7.c7", 0x3000000, 0x800000, CRC(f2323239) SHA1(5b3e8dd77474203be010ec7363858d806344a320) )
+ ROM_LOAD16_BYTE( "254-c8.c8", 0x3000001, 0x800000, CRC(66848c7d) SHA1(24d4ed627940a4cf8129761c1da15556e52e199c) )
+ROM_END
+
+ROM_START( s1945ph )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "254h.p1", 0x000000, 0x100000, CRC(2e106855) SHA1(53f2dd9dea00f36eaac6b56dabbb860aff4f3712) )
+ ROM_LOAD16_WORD_SWAP( "254-p2.sp2", 0x100000, 0x400000, CRC(efdfd4dd) SHA1(254f3e1b546eed788f7ae919be9d1bf9702148ce) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "254-m1.m1", CRC(994b4487) SHA1(a4e645a3ababa48a8325980ff022e04a8b51b017) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "254-v1.v1", 0x000000, 0x400000, CRC(844f58fb) SHA1(e59544457be9f21481eac8b5a39b9cbb502f252d) )
+ ROM_LOAD( "254-v2.v2", 0x400000, 0x400000, CRC(d9a248f0) SHA1(dd3e0974b753e6f94d0943a002de45668a1b072b) )
+ ROM_LOAD( "254-v3.v3", 0x800000, 0x400000, CRC(0b0d2d33) SHA1(f8e76af42a997f36a40f66b39de00f68afe6a89c) )
+ ROM_LOAD( "254-v4.v4", 0xc00000, 0x400000, CRC(6d13dc91) SHA1(8433513c0b5aea61939068a25ab90efbe3e44116) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "254-c1.c1", 0x0000000, 0x800000, CRC(ae6fc8ef) SHA1(544ccdaee8a4a45cdce9483e30852811d2d5f3cc) )
+ ROM_LOAD16_BYTE( "254-c2.c2", 0x0000001, 0x800000, CRC(436fa176) SHA1(d70141a91a360a1b1070753086f976608fec38af) )
+ ROM_LOAD16_BYTE( "254-c3.c3", 0x1000000, 0x800000, CRC(e53ff2dc) SHA1(31f6aaffe28146d574aa72f14f90a9d968f36bc6) )
+ ROM_LOAD16_BYTE( "254-c4.c4", 0x1000001, 0x800000, CRC(818672f0) SHA1(460c6738d0ee5ae440a23fc1434fab53bbb242b5) )
+ ROM_LOAD16_BYTE( "254-c5.c5", 0x2000000, 0x800000, CRC(4580eacd) SHA1(feb96eb5e80c9125ddd7836e0939212cd3011c34) )
+ ROM_LOAD16_BYTE( "254-c6.c6", 0x2000001, 0x800000, CRC(e34970fc) SHA1(6e43e15e27bc914357f977116ab1e2d98711bb21) )
+ ROM_LOAD16_BYTE( "254-c7.c7", 0x3000000, 0x800000, CRC(f2323239) SHA1(5b3e8dd77474203be010ec7363858d806344a320) )
+ ROM_LOAD16_BYTE( "254-c8.c8", 0x3000001, 0x800000, CRC(66848c7d) SHA1(24d4ed627940a4cf8129761c1da15556e52e199c) )
+ROM_END
+
+ROM_START( s1945pwe ) /* Strikers 1945 Plus - Enhance by Wesker */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "254we.p1", 0x000000, 0x100000, CRC(524eaf9c) SHA1(03e6e4495eca181c5d702df312565abd6684d6a4) )
+ ROM_LOAD16_WORD_SWAP( "254-p2.sp2", 0x100000, 0x400000, CRC(efdfd4dd) SHA1(254f3e1b546eed788f7ae919be9d1bf9702148ce) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "254-m1.m1", CRC(994b4487) SHA1(a4e645a3ababa48a8325980ff022e04a8b51b017) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "254-v1.v1", 0x000000, 0x400000, CRC(844f58fb) SHA1(e59544457be9f21481eac8b5a39b9cbb502f252d) )
+ ROM_LOAD( "254-v2.v2", 0x400000, 0x400000, CRC(d9a248f0) SHA1(dd3e0974b753e6f94d0943a002de45668a1b072b) )
+ ROM_LOAD( "254-v3.v3", 0x800000, 0x400000, CRC(0b0d2d33) SHA1(f8e76af42a997f36a40f66b39de00f68afe6a89c) )
+ ROM_LOAD( "254-v4.v4", 0xc00000, 0x400000, CRC(6d13dc91) SHA1(8433513c0b5aea61939068a25ab90efbe3e44116) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "254-c1.c1", 0x0000000, 0x800000, CRC(ae6fc8ef) SHA1(544ccdaee8a4a45cdce9483e30852811d2d5f3cc) )
+ ROM_LOAD16_BYTE( "254-c2.c2", 0x0000001, 0x800000, CRC(436fa176) SHA1(d70141a91a360a1b1070753086f976608fec38af) )
+ ROM_LOAD16_BYTE( "254-c3.c3", 0x1000000, 0x800000, CRC(e53ff2dc) SHA1(31f6aaffe28146d574aa72f14f90a9d968f36bc6) )
+ ROM_LOAD16_BYTE( "254-c4.c4", 0x1000001, 0x800000, CRC(818672f0) SHA1(460c6738d0ee5ae440a23fc1434fab53bbb242b5) )
+ ROM_LOAD16_BYTE( "254-c5.c5", 0x2000000, 0x800000, CRC(4580eacd) SHA1(feb96eb5e80c9125ddd7836e0939212cd3011c34) )
+ ROM_LOAD16_BYTE( "254-c6.c6", 0x2000001, 0x800000, CRC(e34970fc) SHA1(6e43e15e27bc914357f977116ab1e2d98711bb21) )
+ ROM_LOAD16_BYTE( "254-c7.c7", 0x3000000, 0x800000, CRC(f2323239) SHA1(5b3e8dd77474203be010ec7363858d806344a320) )
+ ROM_LOAD16_BYTE( "254-c8.c8", 0x3000001, 0x800000, CRC(66848c7d) SHA1(24d4ed627940a4cf8129761c1da15556e52e199c) )
+ROM_END
+
+
+ROM_START( savagereb )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "059b.p1", 0x100000, 0x100000, CRC(3a7fbff0) SHA1(810b318428d2c50fc2e3c31a9ee8aeed223ee4d3) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "059-s1.s1", CRC(e08978ca) SHA1(55152cb9bd0403ae8656b93a6b1522dba5db6d1a) )
+
+ NEO_BIOS_AUDIO_128K( "059-m1.m1", CRC(29992eba) SHA1(187be624abe8670503edb235ff21ae8fdc3866e0) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "059-v1.v1", 0x000000, 0x200000, CRC(530c50fd) SHA1(29401cee7f7d2c199c7cb58092e86b28205e81ad) )
+ ROM_LOAD( "059-v2.v2", 0x200000, 0x200000, CRC(eb6f1cdb) SHA1(7a311388315ea543babf872f62219fdc4d39d013) )
+ ROM_LOAD( "059-v3.v3", 0x400000, 0x200000, CRC(7038c2f9) SHA1(c1d6f86b24feba03fe009b58199d2eeabe572f4e) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "059-c1.c1", 0x000000, 0x200000, CRC(763ba611) SHA1(d3262e0332c894ee149c5963f882cc5e5562ee57) )
+ ROM_LOAD16_BYTE( "059-c2.c2", 0x000001, 0x200000, CRC(e05e8ca6) SHA1(986a9b16ff92bc101ab567d2d01348e093abea9a) )
+ ROM_LOAD16_BYTE( "059-c3.c3", 0x400000, 0x200000, CRC(3e4eba4b) SHA1(770adec719e63a30ebe9522cc7576caaca44f3b2) )
+ ROM_LOAD16_BYTE( "059-c4.c4", 0x400001, 0x200000, CRC(3c2a3808) SHA1(698adcec0715c9e78b6286be38debf0ce28fd644) )
+ ROM_LOAD16_BYTE( "059-c5.c5", 0x800000, 0x200000, CRC(59013f9e) SHA1(5bf48fcc450da72a8c4685f6e3887e67eae49988) )
+ ROM_LOAD16_BYTE( "059-c6.c6", 0x800001, 0x200000, CRC(1c8d5def) SHA1(475d89a5c4922a9f6bd756d23c2624d57b6e9d62) )
+ ROM_LOAD16_BYTE( "059-c7.c7", 0xc00000, 0x200000, CRC(c88f7035) SHA1(c29a428b741f4fe7b71a3bc23c87925b6bc1ca8f) )
+ ROM_LOAD16_BYTE( "059-c8.c8", 0xc00001, 0x200000, CRC(484ce3ba) SHA1(4f21ed20ce6e2b67e2b079404599310c94f591ff) )
+ROM_END
+
+ROM_START( savageredb ) /* Savage Reign - Hack by Dodowang - (Debug menue unlocked - press select to change stage, p1 and p2) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "059db.p1", 0x100000, 0x100000, CRC(83be1cfc) SHA1(ec85c5d8416c7895ec7b47a9be50f62dc2c88703) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "059-s1.s1", CRC(e08978ca) SHA1(55152cb9bd0403ae8656b93a6b1522dba5db6d1a) )
+
+ NEO_BIOS_AUDIO_128K( "059-m1.m1", CRC(29992eba) SHA1(187be624abe8670503edb235ff21ae8fdc3866e0) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "059-v1.v1", 0x000000, 0x200000, CRC(530c50fd) SHA1(29401cee7f7d2c199c7cb58092e86b28205e81ad) )
+ ROM_LOAD( "059-v2.v2", 0x200000, 0x200000, CRC(eb6f1cdb) SHA1(7a311388315ea543babf872f62219fdc4d39d013) )
+ ROM_LOAD( "059-v3.v3", 0x400000, 0x200000, CRC(7038c2f9) SHA1(c1d6f86b24feba03fe009b58199d2eeabe572f4e) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "059-c1.c1", 0x000000, 0x200000, CRC(763ba611) SHA1(d3262e0332c894ee149c5963f882cc5e5562ee57) )
+ ROM_LOAD16_BYTE( "059-c2.c2", 0x000001, 0x200000, CRC(e05e8ca6) SHA1(986a9b16ff92bc101ab567d2d01348e093abea9a) )
+ ROM_LOAD16_BYTE( "059-c3.c3", 0x400000, 0x200000, CRC(3e4eba4b) SHA1(770adec719e63a30ebe9522cc7576caaca44f3b2) )
+ ROM_LOAD16_BYTE( "059-c4.c4", 0x400001, 0x200000, CRC(3c2a3808) SHA1(698adcec0715c9e78b6286be38debf0ce28fd644) )
+ ROM_LOAD16_BYTE( "059-c5.c5", 0x800000, 0x200000, CRC(59013f9e) SHA1(5bf48fcc450da72a8c4685f6e3887e67eae49988) )
+ ROM_LOAD16_BYTE( "059-c6.c6", 0x800001, 0x200000, CRC(1c8d5def) SHA1(475d89a5c4922a9f6bd756d23c2624d57b6e9d62) )
+ ROM_LOAD16_BYTE( "059-c7.c7", 0xc00000, 0x200000, CRC(c88f7035) SHA1(c29a428b741f4fe7b71a3bc23c87925b6bc1ca8f) )
+ ROM_LOAD16_BYTE( "059-c8.c8", 0xc00001, 0x200000, CRC(484ce3ba) SHA1(4f21ed20ce6e2b67e2b079404599310c94f591ff) )
+ROM_END
+
+
+ROM_START( sdodgebp )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "208p.p1", 0x100000, 0x100000, CRC(e705b86d) SHA1(a098fec800f48670514ee2b15551514009cde297) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "208-s1.s1", CRC(64abd6b3) SHA1(0315d724e4d83a44ce84c531ff9b8c398363c039) )
+
+ NEO_BIOS_AUDIO_128K( "208-m1.m1", CRC(0a5f3325) SHA1(04e0236df478a5452654c823dcb42fea65b6a718) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "208-v1.v1", 0x000000, 0x400000, CRC(e7899a24) SHA1(3e75b449898fee73fbacf58d70e3a460b9e0c573) )
+
+ ROM_REGION( 0x0c00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "208-c1.c1", 0x0000000, 0x400000, CRC(93d8619b) SHA1(6588cb67e38722d5843fb29943d92e3905101aff) )
+ ROM_LOAD16_BYTE( "208-c2.c2", 0x0000001, 0x400000, CRC(1c737bb6) SHA1(8e341989981a713e61dfed8bde9a6459583ef46d) )
+ ROM_LOAD16_BYTE( "208-c3.c3", 0x0800000, 0x200000, CRC(14cb1703) SHA1(a46acec03c1b2351fe36810628f02b7c848d13db) )
+ ROM_LOAD16_BYTE( "208-c4.c4", 0x0800001, 0x200000, CRC(c7165f19) SHA1(221f03de893dca0e5305fa17aa94f96c67713818) )
+ROM_END
+
+
+ROM_START( shocktr2px )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "246px.p1", 0x000000, 0x100000, CRC(6e55a59c) SHA1(092c39ee9c28e4b45940ae2d43dc92922e6a9eba) )
+ ROM_LOAD16_WORD_SWAP( "246-p2.sp2", 0x100000, 0x400000, CRC(72ea04c3) SHA1(4fb1d22c30f5f3db4637dd92a4d2705c88de399d) )
+
+ NEO_SFIX_128K( "246-s1.s1", CRC(2a360637) SHA1(431b43da5377dd189e51bd93d88d8a24d1b5090a) )
+
+ NEO_BIOS_AUDIO_128K( "246-m1.m1", CRC(d0604ad1) SHA1(fae3cd52a177eadd5f5775ace957cc0f8301e65d) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "246-v1.v1", 0x000000, 0x400000, CRC(16986fc6) SHA1(cff3103dadf2f4390460456a5bd3fb5f28e21f6a) )
+ ROM_LOAD( "246-v2.v2", 0x400000, 0x400000, CRC(ada41e83) SHA1(78e37ffaaa5679c8775a3a71f6df7a0d15082bdc) )
+ ROM_LOAD( "246-v3.v3", 0x800000, 0x200000, CRC(a05ba5db) SHA1(09d739cad323d918f4196f91b654627fcafd8f4d) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "246-c1.c1", 0x0000000, 0x800000, CRC(47ac9ec5) SHA1(2d9eea11ba87baa23b18a1a3f607dc137846e807) )
+ ROM_LOAD16_BYTE( "246-c2.c2", 0x0000001, 0x800000, CRC(7bcab64f) SHA1(08d0edddd14b53d606e9a7a46aa4fb4e7398e0d0) )
+ ROM_LOAD16_BYTE( "246-c3.c3", 0x1000000, 0x800000, CRC(db2f73e8) SHA1(8d0c3473a8b2a4e28fed1b74beb2e025b7e61867) )
+ ROM_LOAD16_BYTE( "246-c4.c4", 0x1000001, 0x800000, CRC(5503854e) SHA1(a0f2e7c609cbb2aa43493a39d7dcaeca3d511d26) )
+ ROM_LOAD16_BYTE( "246-c5.c5", 0x2000000, 0x800000, CRC(055b3701) SHA1(97f5e92538d1f2e437dcb3f80e56e1230287e8d1) )
+ ROM_LOAD16_BYTE( "246-c6.c6", 0x2000001, 0x800000, CRC(7e2caae1) SHA1(d9de14e3e323664a8c5b7f1df1ba9ec7dd0e6a46) )
+ROM_END
+
+ROM_START( shocktr2w ) /* you must use unibios to select AES */ /* Shock Troopers - 2nd Squad - Hack by Wesker */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "246w.p1", 0x000000, 0x100000, CRC(0af69336) SHA1(680f348f15177d14b7885d9976cf1bac4ae9eaf3) )
+ ROM_LOAD16_WORD_SWAP( "246-p2.sp2", 0x100000, 0x400000, CRC(72ea04c3) SHA1(4fb1d22c30f5f3db4637dd92a4d2705c88de399d) )
+
+ NEO_SFIX_128K( "246-s1.s1", CRC(2a360637) SHA1(431b43da5377dd189e51bd93d88d8a24d1b5090a) )
+
+ ROM_REGION16_BE( 0x20000, "mainbios", 0 )
+ ROM_LOAD16_WORD_SWAP( "uni-bios_2_3o.rom", 0x00000, 0x20000, CRC(601720ae) SHA1(1b8a72c720cdb5ee3f1d735bbcf447b09204b8d9) )
+
+ ROM_REGION( 0x20000, "audiobios", 0 )
+ ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) )
+ ROM_REGION( 0x30000, "audiocpu", 0 )
+ ROM_LOAD( "246-m1.m1", 0x00000, 0x20000, CRC(d0604ad1) SHA1(fae3cd52a177eadd5f5775ace957cc0f8301e65d) )
+ ROM_RELOAD( 0x10000, 0x20000 )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "246-v1.v1", 0x000000, 0x400000, CRC(16986fc6) SHA1(cff3103dadf2f4390460456a5bd3fb5f28e21f6a) )
+ ROM_LOAD( "246-v2.v2", 0x400000, 0x400000, CRC(ada41e83) SHA1(78e37ffaaa5679c8775a3a71f6df7a0d15082bdc) )
+ ROM_LOAD( "246-v3.v3", 0x800000, 0x200000, CRC(a05ba5db) SHA1(09d739cad323d918f4196f91b654627fcafd8f4d) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "246-c1.c1", 0x0000000, 0x800000, CRC(47ac9ec5) SHA1(2d9eea11ba87baa23b18a1a3f607dc137846e807) )
+ ROM_LOAD16_BYTE( "246-c2.c2", 0x0000001, 0x800000, CRC(7bcab64f) SHA1(08d0edddd14b53d606e9a7a46aa4fb4e7398e0d0) )
+ ROM_LOAD16_BYTE( "246-c3.c3", 0x1000000, 0x800000, CRC(db2f73e8) SHA1(8d0c3473a8b2a4e28fed1b74beb2e025b7e61867) )
+ ROM_LOAD16_BYTE( "246-c4.c4", 0x1000001, 0x800000, CRC(5503854e) SHA1(a0f2e7c609cbb2aa43493a39d7dcaeca3d511d26) )
+ ROM_LOAD16_BYTE( "246-c5.c5", 0x2000000, 0x800000, CRC(055b3701) SHA1(97f5e92538d1f2e437dcb3f80e56e1230287e8d1) )
+ ROM_LOAD16_BYTE( "246-c6.c6", 0x2000001, 0x800000, CRC(7e2caae1) SHA1(d9de14e3e323664a8c5b7f1df1ba9ec7dd0e6a46) )
+ROM_END
+
+
+ROM_START( shocktrosp )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "238sp.p1", 0x000000, 0x100000, CRC(6ee78d00) SHA1(8847879749e55f7b24e149a7e24ec301f7b56929) )
+ ROM_LOAD16_WORD_SWAP( "238-p2.sp2", 0x100000, 0x400000, CRC(5b4a09c5) SHA1(de04036cba2da4bb2da73d902d1822b82b4f67a9) )
+
+ NEO_SFIX_128K( "238-s1.s1", CRC(1f95cedb) SHA1(adfa74868147fd260481e4c387d254d3b6de83f4) )
+
+ NEO_BIOS_AUDIO_128K( "238-m1.m1", CRC(075b9518) SHA1(ac21b88a860b9572bf24432b4cadcc96d108055d) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "238-v1.v1", 0x000000, 0x400000, CRC(260c0bef) SHA1(9c4f80ce4bb205afed11bb8b8926d20748eb5512) )
+ ROM_LOAD( "238-v2.v2", 0x400000, 0x200000, CRC(4ad7d59e) SHA1(bfdf2684f7f38af4e75ad0068ff9463dc2601598) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "238-c1.c1", 0x0000000, 0x400000, CRC(90c6a181) SHA1(a381bc8449718814ff12b3a4f7fc4d1bb7ea1631) )
+ ROM_LOAD16_BYTE( "238-c2.c2", 0x0000001, 0x400000, CRC(888720f0) SHA1(cd4d65df8d3ef0dbcca2b7f3f803f45c457f5beb) )
+ ROM_LOAD16_BYTE( "238-c3.c3", 0x0800000, 0x400000, CRC(2c393aa3) SHA1(1cd7cebe5861a2d65f1d6615dd7752162e573a02) )
+ ROM_LOAD16_BYTE( "238-c4.c4", 0x0800001, 0x400000, CRC(b9e909eb) SHA1(33cc9b2d13e4ed2ab6040ff582a53dc9bca402e0) )
+ ROM_LOAD16_BYTE( "238-c5.c5", 0x1000000, 0x400000, CRC(c22c68eb) SHA1(a4b04118b1b1909d3b76be8d9ee5d97db6120600) )
+ ROM_LOAD16_BYTE( "238-c6.c6", 0x1000001, 0x400000, CRC(119323cd) SHA1(05a9d4b1fb4cc963b25452ff6f81e296e0c0b2a1) )
+ ROM_LOAD16_BYTE( "238-c7.c7", 0x1800000, 0x400000, CRC(a72ce7ed) SHA1(05b151554bd7af09ccf554a17bc3c75a0512faaf) )
+ ROM_LOAD16_BYTE( "238-c8.c8", 0x1800001, 0x400000, CRC(1c7c2efb) SHA1(b055ee43cbdaf9a3cb19e4e1f9dd2c40bde69d70) )
+ROM_END
+
+
+ROM_START( sonicwi2eh )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "075eh.p1", 0x100000, 0x100000, CRC(150cbac6) SHA1(66009a8be55d70345569c1ba23d06a8b1c3e4641) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "075-s1.s1", CRC(c9eec367) SHA1(574e1afe7e0d54610c145131106e59ba2894eeb7) )
+
+ NEO_BIOS_AUDIO_128K( "075-m1.m1", CRC(bb828df1) SHA1(eab8e2868173bdaac7c7ed97305a9aa1033fd303) )
+
+ ROM_REGION( 0x300000, "ymsnd", 0 )
+ ROM_LOAD( "075-v1.v1", 0x000000, 0x200000, CRC(7577e949) SHA1(3ba9f11094dd0cf519f33a16016cfae0d2c6629c) )
+ ROM_LOAD( "075-v2.v2", 0x200000, 0x100000, CRC(021760cd) SHA1(8a24e38f1d4982c4dcd82718995571ac94cbb390) )
+
+ ROM_REGION( 0x800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "075-c1.c1", 0x000000, 0x200000, CRC(3278e73e) SHA1(d9e6c8a3a5213690a1b8747d27806d8ac5aac405) )
+ ROM_LOAD16_BYTE( "075-c2.c2", 0x000001, 0x200000, CRC(fe6355d6) SHA1(ca72fff7a908b6d9325761079ff2a0e28f34cf89) )
+ ROM_LOAD16_BYTE( "075-c3.c3", 0x400000, 0x200000, CRC(c1b438f1) SHA1(b3751c5b426bca0fcc3a58bdb86712c22ef908ab) )
+ ROM_LOAD16_BYTE( "075-c4.c4", 0x400001, 0x200000, CRC(1f777206) SHA1(e29c5ae65ebdcc1167a894306d2446ce909639da) )
+ROM_END
+
+ROM_START( sonicwi2px )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "075px.p1", 0x100000, 0x100000, CRC(22e4dd5f) SHA1(4f9511c7c2b98db306fece35ada47beb7f3ae4c5) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "075-s1.s1", CRC(c9eec367) SHA1(574e1afe7e0d54610c145131106e59ba2894eeb7) )
+
+ NEO_BIOS_AUDIO_128K( "075-m1.m1", CRC(bb828df1) SHA1(eab8e2868173bdaac7c7ed97305a9aa1033fd303) )
+
+ ROM_REGION( 0x300000, "ymsnd", 0 )
+ ROM_LOAD( "075-v1.v1", 0x000000, 0x200000, CRC(7577e949) SHA1(3ba9f11094dd0cf519f33a16016cfae0d2c6629c) )
+ ROM_LOAD( "075-v2.v2", 0x200000, 0x100000, CRC(021760cd) SHA1(8a24e38f1d4982c4dcd82718995571ac94cbb390) )
+
+ ROM_REGION( 0x800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "075-c1.c1", 0x000000, 0x200000, CRC(3278e73e) SHA1(d9e6c8a3a5213690a1b8747d27806d8ac5aac405) )
+ ROM_LOAD16_BYTE( "075-c2.c2", 0x000001, 0x200000, CRC(fe6355d6) SHA1(ca72fff7a908b6d9325761079ff2a0e28f34cf89) )
+ ROM_LOAD16_BYTE( "075-c3.c3", 0x400000, 0x200000, CRC(c1b438f1) SHA1(b3751c5b426bca0fcc3a58bdb86712c22ef908ab) )
+ ROM_LOAD16_BYTE( "075-c4.c4", 0x400001, 0x200000, CRC(1f777206) SHA1(e29c5ae65ebdcc1167a894306d2446ce909639da) )
+ROM_END
+
+
+ROM_START( sonicwi3eh )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "097eh.p1", 0x100000, 0x100000, CRC(ebd9674e) SHA1(9dac667dae3e31f0d06f815f8dd1ede11966c43e) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "097-s1.s1", CRC(8dd66743) SHA1(39214bb25a1d5b44a8524010be05bf5a0211981f) )
+
+ NEO_BIOS_AUDIO_128K( "097-m1.m1", CRC(b20e4291) SHA1(0e891ab53f9fded510295dfc7818bc59b4a9dd97) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "097-v1.v1", 0x000000, 0x400000, CRC(6f885152) SHA1(8175804d5c1420c5d37b733d4a8fa2aa81e59f1b) )
+ ROM_LOAD( "097-v2.v2", 0x400000, 0x200000, CRC(3359e868) SHA1(b7efd9f1a6dab33271fe8356bcc863aeae1d3ed8) )
+
+ ROM_REGION( 0xc00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "097-c1.c1", 0x000000, 0x400000, CRC(33d0d589) SHA1(fe4aa95555e478ceb2d28fd27d83ee06cd09520c) )
+ ROM_LOAD16_BYTE( "097-c2.c2", 0x000001, 0x400000, CRC(186f8b43) SHA1(f5cced93e21dc841b00ebeaa30786cb0e047bd9a) )
+ ROM_LOAD16_BYTE( "097-c3.c3", 0x800000, 0x200000, CRC(c339fff5) SHA1(58dfd1e30dc0ad3f816a5dbd1cc7e7ccbb792c53) )
+ ROM_LOAD16_BYTE( "097-c4.c4", 0x800001, 0x200000, CRC(84a40c6e) SHA1(061a13fba5fed883e5ee9566cedc208df2511bcf) )
+ROM_END
+
+ROM_START( sonicwi3h )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "097h.p1", 0x100000, 0x100000, CRC(a09735bd) SHA1(ab7b8f14d4e07933bed52219b0c161cfd85601a0) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "097-s1.s1", CRC(8dd66743) SHA1(39214bb25a1d5b44a8524010be05bf5a0211981f) )
+
+ NEO_BIOS_AUDIO_128K( "097-m1.m1", CRC(b20e4291) SHA1(0e891ab53f9fded510295dfc7818bc59b4a9dd97) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "097-v1.v1", 0x000000, 0x400000, CRC(6f885152) SHA1(8175804d5c1420c5d37b733d4a8fa2aa81e59f1b) )
+ ROM_LOAD( "097-v2.v2", 0x400000, 0x200000, CRC(3359e868) SHA1(b7efd9f1a6dab33271fe8356bcc863aeae1d3ed8) )
+
+ ROM_REGION( 0xc00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "097-c1.c1", 0x000000, 0x400000, CRC(33d0d589) SHA1(fe4aa95555e478ceb2d28fd27d83ee06cd09520c) )
+ ROM_LOAD16_BYTE( "097-c2.c2", 0x000001, 0x400000, CRC(186f8b43) SHA1(f5cced93e21dc841b00ebeaa30786cb0e047bd9a) )
+ ROM_LOAD16_BYTE( "097-c3.c3", 0x800000, 0x200000, CRC(c339fff5) SHA1(58dfd1e30dc0ad3f816a5dbd1cc7e7ccbb792c53) )
+ ROM_LOAD16_BYTE( "097-c4.c4", 0x800001, 0x200000, CRC(84a40c6e) SHA1(061a13fba5fed883e5ee9566cedc208df2511bcf) )
+ROM_END
+
+ROM_START( sonicwi3px )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "097px.p1", 0x100000, 0x100000, CRC(da80771c) SHA1(654d7d04d03cf2a30fb9cc612cf099bbea852403) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "097-s1.s1", CRC(8dd66743) SHA1(39214bb25a1d5b44a8524010be05bf5a0211981f) )
+
+ NEO_BIOS_AUDIO_128K( "097-m1.m1", CRC(b20e4291) SHA1(0e891ab53f9fded510295dfc7818bc59b4a9dd97) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "097-v1.v1", 0x000000, 0x400000, CRC(6f885152) SHA1(8175804d5c1420c5d37b733d4a8fa2aa81e59f1b) )
+ ROM_LOAD( "097-v2.v2", 0x400000, 0x200000, CRC(3359e868) SHA1(b7efd9f1a6dab33271fe8356bcc863aeae1d3ed8) )
+
+ ROM_REGION( 0xc00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "097-c1.c1", 0x000000, 0x400000, CRC(33d0d589) SHA1(fe4aa95555e478ceb2d28fd27d83ee06cd09520c) )
+ ROM_LOAD16_BYTE( "097-c2.c2", 0x000001, 0x400000, CRC(186f8b43) SHA1(f5cced93e21dc841b00ebeaa30786cb0e047bd9a) )
+ ROM_LOAD16_BYTE( "097-c3.c3", 0x800000, 0x200000, CRC(c339fff5) SHA1(58dfd1e30dc0ad3f816a5dbd1cc7e7ccbb792c53) )
+ ROM_LOAD16_BYTE( "097-c4.c4", 0x800001, 0x200000, CRC(84a40c6e) SHA1(061a13fba5fed883e5ee9566cedc208df2511bcf) )
+ROM_END
+
+
+ROM_START( spinmasth )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "062h.p1", 0x000000, 0x100000, CRC(51d531ee) SHA1(bc8b16ddc76d14de9d239efddd3a1cdfbf207521) )
+ ROM_LOAD16_WORD_SWAP( "062-p2.sp2", 0x100000, 0x100000, CRC(f025ab77) SHA1(4944be04648296d0b93cfe4c5ca7b9cede072cff) )
+
+ NEO_SFIX_128K( "062-s1.s1", CRC(289e2bbe) SHA1(f52c7f2bffc89df3130b3cabd200408509a28cdc) )
+
+ NEO_BIOS_AUDIO_128K( "062-m1.m1", CRC(76108b2f) SHA1(08c89a8b746dbb10ff885b41cde344173c2e3699) )
+
+ ROM_REGION( 0x100000, "ymsnd", 0 )
+ ROM_LOAD( "062-v1.v1", 0x000000, 0x100000, CRC(cc281aef) SHA1(68be154b3e25f837afb4a477600dbe0ee69bec44) )
+
+ ROM_REGION( 0x800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "062-c1.c1", 0x000000, 0x100000, CRC(a9375aa2) SHA1(69218d8f1361e9ea709da11e3f15fe46b1db7181) )
+ ROM_LOAD16_BYTE( "062-c2.c2", 0x000001, 0x100000, CRC(0e73b758) SHA1(a247f736fbca0b609818dca4844ebb8442753bc1) )
+ ROM_LOAD16_BYTE( "062-c3.c3", 0x200000, 0x100000, CRC(df51e465) SHA1(171953c7a870f3ab96e0f875117ee7343931fd38) )
+ ROM_LOAD16_BYTE( "062-c4.c4", 0x200001, 0x100000, CRC(38517e90) SHA1(f7c64b94ac20f5146f9bb48b53cb2b30fe5b8f8c) )
+ ROM_LOAD16_BYTE( "062-c5.c5", 0x400000, 0x100000, CRC(7babd692) SHA1(0d4cd5006baa8d951cd2b6194ace566fa2845b8a) )
+ ROM_LOAD16_BYTE( "062-c6.c6", 0x400001, 0x100000, CRC(cde5ade5) SHA1(5899ef5dfcdbb8cf8c6aba748dbb52f3c5fed5fe) )
+ ROM_LOAD16_BYTE( "062-c7.c7", 0x600000, 0x100000, CRC(bb2fd7c0) SHA1(cce11c4cf39ac60143235ff89261806df339dae5) )
+ ROM_LOAD16_BYTE( "062-c8.c8", 0x600001, 0x100000, CRC(8d7be933) SHA1(e7097cfa26a959f90721e2e8368ceb47ea9db661) )
+ROM_END
+
+ROM_START( spinmastpx )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "062px.p1", 0x000000, 0x100000, CRC(beea0162) SHA1(7e61e690bb5664d49149179309a58b71c5e75b75) )
+ ROM_LOAD16_WORD_SWAP( "062-p2.sp2", 0x100000, 0x100000, CRC(f025ab77) SHA1(4944be04648296d0b93cfe4c5ca7b9cede072cff) )
+
+ NEO_SFIX_128K( "062-s1.s1", CRC(289e2bbe) SHA1(f52c7f2bffc89df3130b3cabd200408509a28cdc) )
+
+ NEO_BIOS_AUDIO_128K( "062-m1.m1", CRC(76108b2f) SHA1(08c89a8b746dbb10ff885b41cde344173c2e3699) )
+
+ ROM_REGION( 0x100000, "ymsnd", 0 )
+ ROM_LOAD( "062-v1.v1", 0x000000, 0x100000, CRC(cc281aef) SHA1(68be154b3e25f837afb4a477600dbe0ee69bec44) )
+
+ ROM_REGION( 0x800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "062-c1.c1", 0x000000, 0x100000, CRC(a9375aa2) SHA1(69218d8f1361e9ea709da11e3f15fe46b1db7181) )
+ ROM_LOAD16_BYTE( "062-c2.c2", 0x000001, 0x100000, CRC(0e73b758) SHA1(a247f736fbca0b609818dca4844ebb8442753bc1) )
+ ROM_LOAD16_BYTE( "062-c3.c3", 0x200000, 0x100000, CRC(df51e465) SHA1(171953c7a870f3ab96e0f875117ee7343931fd38) )
+ ROM_LOAD16_BYTE( "062-c4.c4", 0x200001, 0x100000, CRC(38517e90) SHA1(f7c64b94ac20f5146f9bb48b53cb2b30fe5b8f8c) )
+ ROM_LOAD16_BYTE( "062-c5.c5", 0x400000, 0x100000, CRC(7babd692) SHA1(0d4cd5006baa8d951cd2b6194ace566fa2845b8a) )
+ ROM_LOAD16_BYTE( "062-c6.c6", 0x400001, 0x100000, CRC(cde5ade5) SHA1(5899ef5dfcdbb8cf8c6aba748dbb52f3c5fed5fe) )
+ ROM_LOAD16_BYTE( "062-c7.c7", 0x600000, 0x100000, CRC(bb2fd7c0) SHA1(cce11c4cf39ac60143235ff89261806df339dae5) )
+ ROM_LOAD16_BYTE( "062-c8.c8", 0x600001, 0x100000, CRC(8d7be933) SHA1(e7097cfa26a959f90721e2e8368ceb47ea9db661) )
+ROM_END
+
+
+ROM_START( ssidekicd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "052cd.p1", 0x000000, 0x080000, CRC(5cdf0a46) SHA1(60b200eb8d7a217d1f4ce9a51d3c9730d5259fac) )
+
+ NEO_SFIX_128K( "052-s1.s1", CRC(97689804) SHA1(fa8dab3b3353d7115a0368f3fc749950c0186fbc) )
+
+ NEO_BIOS_AUDIO_64K( "052cd.m1", CRC(f47f31a4) SHA1(50eaf535aec5f8f983e13c24f547d6d2d1004f39) )
+
+ ROM_REGION( 0x100000, "ymsnd", 0 )
+ ROM_LOAD( "052cd.v1", 0x000000, 0x100000, CRC(a6944870) SHA1(3c46d028998a57fa8bd46327f3497af1233698b0) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "052cd.c1", 0x000000, 0x100000, CRC(bf1b962b) SHA1(9bdec8df91a6713d6ce4dbc1ba5028eec74d4cb0) )
+ ROM_LOAD16_BYTE( "052cd.c2", 0x000001, 0x100000, CRC(c3ce856b) SHA1(326c4a17c62ea97acc9a38e3b144dc9bc69158d4) )
+ ROM_LOAD16_BYTE( "052cd.c3", 0x200000, 0x100000, CRC(7642df56) SHA1(f65cee51d4d8734982d305a1c5c4ddd4e064ebf7) )
+ ROM_LOAD16_BYTE( "052cd.c4", 0x200001, 0x100000, CRC(265222dc) SHA1(d52a757779d74c2e32fd28bbc953ff8053f33a6c) )
+ROM_END
+
+
+ROM_START( strhoopcd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "079cd.p1", 0x000000, 0x100000, CRC(16795f7f) SHA1(977a6c31ca6553e1cfa3402a5e541bab4c2244be) )
+
+ NEO_SFIX_128K( "079cd.s1", CRC(c65a5fe8) SHA1(ec8e8c49994ce9286ea5160c2450912da0746fb0) )
+
+ NEO_BIOS_AUDIO_64K( "079cd.m1", CRC(1a5f08db) SHA1(3121ed568fba4c30794b00d326ddb0c750b7f4ee) )
+
+ ROM_REGION( 0x280000, "ymsnd", 0 )
+ ROM_LOAD( "079-v1.v1", 0x000000, 0x200000, CRC(718a2400) SHA1(cefc5d0b302bd4a87ab1fa244ade4482c23c6806) )
+ ROM_LOAD( "079cd.v2", 0x200000, 0x080000, CRC(b19884f8) SHA1(5fe910f2029da19ddab4dc95c2292d7fbb086741) )
+
+ ROM_REGION( 0x800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "079cd.c1", 0x000000, 0x200000, CRC(c3ebd902) SHA1(daae0ae972ecc0c19b2e6a439e5f2547286f190a) )
+ ROM_LOAD16_BYTE( "079cd.c2", 0x000001, 0x200000, CRC(1a471f80) SHA1(725864d734ec9ab2933a46a6dc4d18dbc31fe2c7) )
+ ROM_LOAD16_BYTE( "079cd.c3", 0x680000, 0x080000, CRC(4d490ecc) SHA1(8ced8f547799b613edd95acabd6f8cb28c41eab5) )
+ ROM_LOAD16_BYTE( "079cd.c4", 0x680001, 0x080000, CRC(e223d27c) SHA1(2e195fea0d5808e90f154412b5e80b430e6341e2) )
+ROM_END
+
+
+ROM_START( superspycd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "011cd.p1", 0x000000, 0x0a0000, CRC(6ef37a8c) SHA1(b65328a4d9af099dabdca931a7487b07122e9433) )
+
+ NEO_SFIX_128K( "011-s1.s1", CRC(ec5fdb96) SHA1(8003028025ac7bf531e568add6ba66c02d0b7e84) )
+
+ NEO_BIOS_AUDIO_64K( "011cd.m1", CRC(543a711a) SHA1(2d4a5b0a9c7d10c3b182c3a887b9ff7f50a2937a) )
+
+ ROM_REGION( 0x100000, "ymsnd", 0 )
+ ROM_LOAD( "011cd.v1", 0x000000, 0x100000, CRC(9d697082) SHA1(92497e97e1755b930bd960d861f4c5289af7d78d) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "011-c1.c1", 0x000000, 0x100000, CRC(cae7be57) SHA1(43b35b349594535689c358d9f324adda55e5281a) )
+ ROM_LOAD16_BYTE( "011-c2.c2", 0x000001, 0x100000, CRC(9e29d986) SHA1(b417763bad1acf76116cd56f4203c2d2677e22e5) )
+ ROM_LOAD16_BYTE( "011-c3.c3", 0x200000, 0x100000, CRC(14832ff2) SHA1(1179792d773d97d5e45e7d8f009051d362d72e24) )
+ ROM_LOAD16_BYTE( "011-c4.c4", 0x200001, 0x100000, CRC(b7f63162) SHA1(077a81b2bb0a8f17c9df6945078608f74432877a) )
+ROM_END
+
+
+ROM_START( tophuntrpx )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "046px.p1", 0x000000, 0x100000, CRC(949dbb78) SHA1(fb005e60ff693c6656e33cd0641c7300826a6b54) )
+ ROM_LOAD16_WORD_SWAP( "046-p2.sp2", 0x100000, 0x100000, CRC(f182cb3e) SHA1(6b4e0af5d4e623f0682f37ff5c69e5b705e20028) )
+
+ NEO_SFIX_128K( "046-s1.s1", CRC(14b01d7b) SHA1(618ce75c25d6cc86a3b46bd64a0aa34ab82f75ae) )
+
+ NEO_BIOS_AUDIO_128K( "046-m1.m1", CRC(3f84bb9f) SHA1(07446040871d11da3c2217ee9d1faf8c3cae7420) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "046-v1.v1", 0x000000, 0x100000, CRC(c1f9c2db) SHA1(bed95a76afefa46503a12e0f0a9787c4c967ac50) )
+ ROM_LOAD( "046-v2.v2", 0x100000, 0x100000, CRC(56254a64) SHA1(1cf049cb4c414419859d2c8ee714317a35a85251) )
+ ROM_LOAD( "046-v3.v3", 0x200000, 0x100000, CRC(58113fb1) SHA1(40972982a63c7adecef840f9882f4165da723ab6) )
+ ROM_LOAD( "046-v4.v4", 0x300000, 0x100000, CRC(4f54c187) SHA1(63a76949301b83bdd44aa1a4462f642ab9ca3c0b) )
+
+ ROM_REGION( 0x800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "046-c1.c1", 0x000000, 0x100000, CRC(fa720a4a) SHA1(364913b9fa40d46e4e39ae3cdae914cfd0de137d) )
+ ROM_LOAD16_BYTE( "046-c2.c2", 0x000001, 0x100000, CRC(c900c205) SHA1(50274e79aa26f334eb806288688b30720bade883) )
+ ROM_LOAD16_BYTE( "046-c3.c3", 0x200000, 0x100000, CRC(880e3c25) SHA1(b6974af0c833b766866919b6f15b6f8cef82530d) )
+ ROM_LOAD16_BYTE( "046-c4.c4", 0x200001, 0x100000, CRC(7a2248aa) SHA1(8af0b26025a54e3b91604dd24a3c1c518fbd8536) )
+ ROM_LOAD16_BYTE( "046-c5.c5", 0x400000, 0x100000, CRC(4b735e45) SHA1(2f8b46388c4696aee6a97e1e21cdadf6b142b01a) )
+ ROM_LOAD16_BYTE( "046-c6.c6", 0x400001, 0x100000, CRC(273171df) SHA1(9c35832221e016c12ef1ed71da167f565daaf86c) )
+ ROM_LOAD16_BYTE( "046-c7.c7", 0x600000, 0x100000, CRC(12829c4c) SHA1(ac5f3d848d7116fc35c97f53a72c85e049dd3a2f) )
+ ROM_LOAD16_BYTE( "046-c8.c8", 0x600001, 0x100000, CRC(c944e03d) SHA1(be23999b8ce09ee15ba500ce4d5e2a82a4f58d9b) )
+ROM_END
+
+
+ROM_START( tpgolfcd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "003cd.p1", 0x000000, 0x100000, CRC(87f2a8ce) SHA1(ad903d7711ac4af47f1dee64ba7c6bb247029407) )
+
+ NEO_SFIX_128K( "003-s1.s1", CRC(7b3eb9b1) SHA1(39cd8bad9f8bfdeb8ac681b5b79ae5aa81c8dd5f) )
+
+ NEO_BIOS_AUDIO_64K( "003cd.m1", CRC(7851d0d9) SHA1(d021cef958cc37ab170b78d7a4b3ae94947e4d13) )
+
+ ROM_REGION( 0x080000, "ymsnd", 0 )
+ ROM_LOAD( "003-v11.v11", 0x000000, 0x080000, CRC(ff97f1cb) SHA1(defa249d46ae220f7bfa70746f5202bbbcc3e5fe) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "003-c1.c1", 0x000000, 0x80000, CRC(0315fbaf) SHA1(583c9253219c1026d81ee5e0cf5568683adc2633) )
+ ROM_LOAD16_BYTE( "003-c2.c2", 0x000001, 0x80000, CRC(b4c15d59) SHA1(b0d8ec967f9b8e5216301c10b2d36912abce6515) )
+ ROM_LOAD16_BYTE( "003cd.c3", 0x100000, 0x80000, CRC(b09f1612) SHA1(03fbb5db4e377ce9cb4e65ddbc0b114c02e7bae1) )
+ ROM_LOAD16_BYTE( "003cd.c4", 0x100001, 0x80000, CRC(150ea7a1) SHA1(13edc30144b56285ef37eb8aa6fb934704de18d8) )
+ ROM_LOAD16_BYTE( "003-c5.c5", 0x200000, 0x80000, CRC(9a7146da) SHA1(2fc83d13e3e9565919aab01bf2a1b028f433b547) )
+ ROM_LOAD16_BYTE( "003-c6.c6", 0x200001, 0x80000, CRC(1e63411a) SHA1(ee397e2f679042e87b37d95837af62bb95a72af9) )
+ ROM_LOAD16_BYTE( "003-c7.c7", 0x300000, 0x80000, CRC(2886710c) SHA1(1533dd935f0a8f92a0a3c47d1d2bc6d035454244) )
+ ROM_LOAD16_BYTE( "003-c8.c8", 0x300001, 0x80000, CRC(422af22d) SHA1(f67c844c34545de6ea187f5bfdf440dec8518532) )
+ROM_END
+
+
+ROM_START( trallycd ) // title screen is corrupt
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "038-p1.p1", 0x000000, 0x080000, CRC(1e52a576) SHA1(a1cb56354c3378e955b0cd482c3c41ae15add952) )
+ ROM_LOAD16_WORD_SWAP( "038cd.p2", 0x080000, 0x080000, CRC(9facb7fb) SHA1(96b4edbdddbd9ba642d0d046b33349c95559badd) )
+
+ NEO_SFIX_128K( "038cd.s1", CRC(81022312) SHA1(bdb8ae4cd43f196f1b185a48e25980565226bb71) )
+
+ NEO_BIOS_AUDIO_64K( "038cd.m1", CRC(2e1a89d6) SHA1(d0761c57f58e5a63b7c6a03538b3b5b7fe89271b) )
+
+ ROM_REGION( 0x0e0000, "ymsnd", 0 )
+ ROM_LOAD( "038cd.v1", 0x000000, 0x0e0000, CRC(f7ce806e) SHA1(83967145a6bd616ffe8c19dbf5b0bf63296f2c24) )
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "038cd.c1", 0x000000, 0x100000, CRC(840e6161) SHA1(553431723d0f348f4776b1e41beb2a4b39c2aeec) )
+ ROM_LOAD16_BYTE( "038cd.c2", 0x000001, 0x100000, CRC(51979c7a) SHA1(833600da39daeae40ac700931e77898e9c60a45d) )
+ ROM_LOAD16_BYTE( "038-c3.c3", 0x200000, 0x080000, CRC(3bb7b9d6) SHA1(bc1eae6181ad5abf79736afc8db4ca34113d43f8) )
+ ROM_LOAD16_BYTE( "038-c4.c4", 0x200001, 0x080000, CRC(a4513ecf) SHA1(934aa103c226eac55157b44d7b4dfa35515322c3) )
+ROM_END
+
+
+ROM_START( twinsprih )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "224h.p1", 0x100000, 0x100000, CRC(df71c8cd) SHA1(1e49205b46c59c7f4ca6ee1dc06f555320d3b9af) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "224-s1.s1", CRC(eeed5758) SHA1(24e48f396716e145b692468762cf595fb7267873) )
+
+ NEO_BIOS_AUDIO_128K( "224-m1.m1", CRC(364d6f96) SHA1(779b95a6476089b71f48c8368d9043ee1dba9032) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "224-v1.v1", 0x000000, 0x400000, CRC(ff57f088) SHA1(1641989b8aac899dbd68aa2332bcdf9b90b33564) )
+ ROM_LOAD( "224-v2.v2", 0x400000, 0x200000, CRC(7ad26599) SHA1(822030037b7664795bf3d64e1452d0aecc22497e) )
+
+ ROM_REGION( 0xa00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "224-c1.c1", 0x000000, 0x400000, CRC(f7da64ab) SHA1(587a10ed9235c9046a3523fe80feba07764fac9b) )
+ ROM_LOAD16_BYTE( "224-c2.c2", 0x000001, 0x400000, CRC(4c09bbfb) SHA1(e781aafba3bdefb7ed152826f4c3eb441735331c) )
+ ROM_LOAD16_BYTE( "224-c3.c3", 0x800000, 0x100000, CRC(c59e4129) SHA1(93f02d1b4fbb152a9d336494fbff0d7642921de5) )
+ ROM_LOAD16_BYTE( "224-c4.c4", 0x800001, 0x100000, CRC(b5532e53) SHA1(7d896c25ba97f6e5d43c13d4df4ba72964a976ed) )
+ROM_END
+
+
+ROM_START( viewpoinf )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "051f.p1", 0x000000, 0x100000, CRC(d28c99ef) SHA1(c603ae8ad4a80fa3921016cd294a61a60cc37923) )
+
+ NEO_SFIX_64K( "051tr.s1", CRC(6d0f146a) SHA1(537fc5ef099f46fef64d147c0d1264b319758b4f) )
+
+ NEO_BIOS_AUDIO_64K( "051tr.m1", CRC(d57bd7af) SHA1(9ed766dbc3c07dbba7869ff335eeb7e297c8e2d9) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "051-v2.v1", 0x000000, 0x200000, CRC(019978b6) SHA1(7896a551115fc6ed38b5944e0c8dcb2b2c1c077d) )
+ ROM_LOAD( "051-v4.v2", 0x200000, 0x200000, CRC(5758f38c) SHA1(da10f4b7d22d9139bbf068bd940be82168a74ca1) )
+
+ ROM_REGION( 0x600000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "051-c1.c1", 0x000000, 0x100000, CRC(d624c132) SHA1(49c7e9f020cba45d7083b45252bcc03397f8c286) )
+ ROM_CONTINUE( 0x400000, 0x100000 )
+ ROM_LOAD16_BYTE( "051-c2.c2", 0x000001, 0x100000, CRC(40d69f1e) SHA1(ec4a13582772594957f927622d50f54b0dfcd8d8) )
+ ROM_CONTINUE( 0x400001, 0x100000 )
+ROM_END
+
+ROM_START( viewpointr ) /* Viewpoint - Hack by KiWi Starlight - (Unlimited lives and mega-bombs for p1 and p2) */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "051tr.p1", 0x000000, 0x100000, CRC(063b9fa2) SHA1(e2d43646a976d82c809c6fad7dd40cc3dda07b15) )
+
+ NEO_SFIX_64K( "051tr.s1", CRC(6d0f146a) SHA1(537fc5ef099f46fef64d147c0d1264b319758b4f) )
+
+ NEO_BIOS_AUDIO_64K( "051tr.m1", CRC(d57bd7af) SHA1(9ed766dbc3c07dbba7869ff335eeb7e297c8e2d9) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "051-v2.v1", 0x000000, 0x200000, CRC(019978b6) SHA1(7896a551115fc6ed38b5944e0c8dcb2b2c1c077d) )
+ ROM_LOAD( "051-v4.v2", 0x200000, 0x200000, CRC(5758f38c) SHA1(da10f4b7d22d9139bbf068bd940be82168a74ca1) )
+
+ ROM_REGION( 0x600000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "051-c1.c1", 0x000000, 0x100000, CRC(d624c132) SHA1(49c7e9f020cba45d7083b45252bcc03397f8c286) )
+ ROM_CONTINUE( 0x400000, 0x100000 )
+ ROM_LOAD16_BYTE( "051-c2.c2", 0x000001, 0x100000, CRC(40d69f1e) SHA1(ec4a13582772594957f927622d50f54b0dfcd8d8) )
+ ROM_CONTINUE( 0x400001, 0x100000 )
+ROM_END
+
+
+ROM_START( wakuwak7bh ) /* Waku Waku 7 - Hack by Dodowang - (Can choose Fernandez and Bonus Kun - only playable when 2 Player play AES/MVS) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "225bh.p1", 0x000000, 0x100000, CRC(7a8fda8e) SHA1(d55c427173278aa513cb86ee2a90ecd8402d55b0) )
+ ROM_LOAD16_WORD_SWAP( "225-p2.sp2", 0x100000, 0x200000, CRC(fe190665) SHA1(739d9a8fc2da34381654d9e291141eacc210ae5c) )
+
+ NEO_SFIX_128K( "225-s1.s1", CRC(71c4b4b5) SHA1(9410f13807f01082dc86f2d84051be4bed8e9f7c) )
+
+ NEO_BIOS_AUDIO_128K( "225-m1.m1", CRC(0634bba6) SHA1(153aaf016440500df7a4454f3f2f2911219cb7d8) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "225-v1.v1", 0x000000, 0x400000, CRC(6195c6b4) SHA1(66c06b5904aedb256e3997bbec60f8ab50c6ff0c) )
+ ROM_LOAD( "225-v2.v2", 0x400000, 0x400000, CRC(6159c5fe) SHA1(9015e93416497f1ef877c717afed40f7ecfa42e4) )
+
+ ROM_REGION( 0x1800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "225-c1.c1", 0x0000000, 0x400000, CRC(ee4fea54) SHA1(314b513a52b2cc88cbf2409d1934c357269a8bb2) )
+ ROM_LOAD16_BYTE( "225-c2.c2", 0x0000001, 0x400000, CRC(0c549e2d) SHA1(d8c4626231c92e43d9bf183202553ee2b5c532e6) )
+ ROM_LOAD16_BYTE( "225-c3.c3", 0x0800000, 0x400000, CRC(af0897c0) SHA1(2b8ec19b9dd0bd1f1171fb01b915e9d25ec8c421) )
+ ROM_LOAD16_BYTE( "225-c4.c4", 0x0800001, 0x400000, CRC(4c66527a) SHA1(6c8c9342fad70b456e282b0d52e7ad890e4673d3) )
+ ROM_LOAD16_BYTE( "225-c5.c5", 0x1000000, 0x400000, CRC(8ecea2b5) SHA1(cad51e6e76d8258a78becb6f4096dd061f537494) )
+ ROM_LOAD16_BYTE( "225-c6.c6", 0x1000001, 0x400000, CRC(0eb11a6d) SHA1(c6d4f978ff3ca190a3060ac52bd7347189194f76) )
+ROM_END
+
+ROM_START( wakuwak7h )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "225h.p1", 0x000000, 0x100000, CRC(0b7a3776) SHA1(3d8d9e7bdd481dbec3765901999b5148c0f3d776) )
+ ROM_LOAD16_WORD_SWAP( "225-p2.sp2", 0x100000, 0x200000, CRC(fe190665) SHA1(739d9a8fc2da34381654d9e291141eacc210ae5c) )
+
+ NEO_SFIX_128K( "225-s1.s1", CRC(71c4b4b5) SHA1(9410f13807f01082dc86f2d84051be4bed8e9f7c) )
+
+ NEO_BIOS_AUDIO_128K( "225-m1.m1", CRC(0634bba6) SHA1(153aaf016440500df7a4454f3f2f2911219cb7d8) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "225-v1.v1", 0x000000, 0x400000, CRC(6195c6b4) SHA1(66c06b5904aedb256e3997bbec60f8ab50c6ff0c) )
+ ROM_LOAD( "225-v2.v2", 0x400000, 0x400000, CRC(6159c5fe) SHA1(9015e93416497f1ef877c717afed40f7ecfa42e4) )
+
+ ROM_REGION( 0x1800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "225-c1.c1", 0x0000000, 0x400000, CRC(ee4fea54) SHA1(314b513a52b2cc88cbf2409d1934c357269a8bb2) )
+ ROM_LOAD16_BYTE( "225-c2.c2", 0x0000001, 0x400000, CRC(0c549e2d) SHA1(d8c4626231c92e43d9bf183202553ee2b5c532e6) )
+ ROM_LOAD16_BYTE( "225-c3.c3", 0x0800000, 0x400000, CRC(af0897c0) SHA1(2b8ec19b9dd0bd1f1171fb01b915e9d25ec8c421) )
+ ROM_LOAD16_BYTE( "225-c4.c4", 0x0800001, 0x400000, CRC(4c66527a) SHA1(6c8c9342fad70b456e282b0d52e7ad890e4673d3) )
+ ROM_LOAD16_BYTE( "225-c5.c5", 0x1000000, 0x400000, CRC(8ecea2b5) SHA1(cad51e6e76d8258a78becb6f4096dd061f537494) )
+ ROM_LOAD16_BYTE( "225-c6.c6", 0x1000001, 0x400000, CRC(0eb11a6d) SHA1(c6d4f978ff3ca190a3060ac52bd7347189194f76) )
+ROM_END
+
+
+ROM_START( wjammersf )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "065f.p1", 0x000000, 0x100000, CRC(a458cc18) SHA1(0d476edef593c4fa6f50ec4457f69629b2be37e7) )
+
+ NEO_SFIX_128K( "065-s1.s1", CRC(074b5723) SHA1(86d3b3bb5414f43e4d3b7a2af0db23cc71ce8412) )
+
+ NEO_BIOS_AUDIO_128K( "065-m1.m1", CRC(52c23cfc) SHA1(809a7e072ad9acbffc25e9bd27cdb97638d09d07) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "065-v1.v1", 0x000000, 0x100000, CRC(ce8b3698) SHA1(7d75e2a5cf8c90be422f8b425447e81597fe145a) )
+ ROM_LOAD( "065-v2.v2", 0x100000, 0x100000, CRC(659f9b96) SHA1(62f40365212153bc3b92a1187fa44f6cdc7f7b83) )
+ ROM_LOAD( "065-v3.v3", 0x200000, 0x100000, CRC(39f73061) SHA1(ec57cd58e7f8569cff925d11e2320d588ce4fe49) )
+ ROM_LOAD( "065-v4.v4", 0x300000, 0x100000, CRC(5dee7963) SHA1(f8e6de73d65dd80b29c711f00835a574a770cb4e) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "065-c1.c1", 0x000000, 0x100000, CRC(c7650204) SHA1(42918d700d59864f8ab15caf968a062a563c9b09) )
+ ROM_LOAD16_BYTE( "065-c2.c2", 0x000001, 0x100000, CRC(d9f3e71d) SHA1(fad1f64061eac1bf85bf6d75d2eae974a8c94069) )
+ ROM_LOAD16_BYTE( "065-c3.c3", 0x200000, 0x100000, CRC(40986386) SHA1(65795a50197049681265946713d416c9cdb68f08) )
+ ROM_LOAD16_BYTE( "065-c4.c4", 0x200001, 0x100000, CRC(715e15ff) SHA1(ac8b8b01f5c7384b883afbe0cf977430378e3fef) )
+ROM_END
+
+ROM_START( wjammersk )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "065-p1.p1", 0x000000, 0x100000, CRC(6692c140) SHA1(5da574e906974fac92bb2f49bdeea257c014a897) )
+
+ NEO_SFIX_128K( "065-s1.s1", CRC(074b5723) SHA1(86d3b3bb5414f43e4d3b7a2af0db23cc71ce8412) )
+
+ NEO_BIOS_AUDIO_128K( "065-m1.m1", CRC(52c23cfc) SHA1(809a7e072ad9acbffc25e9bd27cdb97638d09d07) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "065-v1.v1", 0x000000, 0x100000, CRC(ce8b3698) SHA1(7d75e2a5cf8c90be422f8b425447e81597fe145a) )
+ ROM_LOAD( "065-v2.v2", 0x100000, 0x100000, CRC(659f9b96) SHA1(62f40365212153bc3b92a1187fa44f6cdc7f7b83) )
+ ROM_LOAD( "065-v3.v3", 0x200000, 0x100000, CRC(39f73061) SHA1(ec57cd58e7f8569cff925d11e2320d588ce4fe49) )
+ ROM_LOAD( "065-v4.v4", 0x300000, 0x100000, CRC(5dee7963) SHA1(f8e6de73d65dd80b29c711f00835a574a770cb4e) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "065k.c1", 0x000000, 0x100000, CRC(ebded27e) SHA1(574a0086bf13a5ac5d27de90c4d4611a19668cf8) )
+ ROM_LOAD16_BYTE( "065k.c2", 0x000001, 0x100000, CRC(f5483767) SHA1(756dd8e161bf428659c642b5056aa0bcf5e0d9a8) )
+ ROM_LOAD16_BYTE( "065-c3.c3", 0x200000, 0x100000, CRC(40986386) SHA1(65795a50197049681265946713d416c9cdb68f08) )
+ ROM_LOAD16_BYTE( "065-c4.c4", 0x200001, 0x100000, CRC(715e15ff) SHA1(ac8b8b01f5c7384b883afbe0cf977430378e3fef) )
+ROM_END
+
+
+ROM_START( zupapad )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "070-p1.p1", 0x000000, 0x100000, CRC(5a96203e) SHA1(49cddec9ca6cc51e5ecf8a34e447a23e1f8a15a1) )
+
+ NEO_SFIX_128K( "070d.s1", CRC(307967ba) SHA1(b91430d0fb08ca6e0d63ded42016fd2a5cd9728b) )
+
+ NEO_BIOS_AUDIO_128K( "070-epr.m1", CRC(5a3b3191) SHA1(fa9a9930e18c64e598841fb344c4471d3d2c1964) )
+
+ ROM_REGION( 0x0200000, "ymsnd", 0 )
+ ROM_LOAD( "070-v1.v1", 0x000000, 0x200000, CRC(d3a7e1ff) SHA1(4a4a227e10f4af58168f6c26011ea1d414253f92) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "070d.c1", 0x0000000, 0x200000, CRC(2bf91ba1) SHA1(5eecbc5ec2c493d2ffd0e57012e0808d4349871f) )
+ ROM_LOAD16_BYTE( "070d.c2", 0x0000001, 0x200000, CRC(8700a5b8) SHA1(bc1ff7e55309120c0ca2d8800b7b003dc3c5ed65) )
+ROM_END
+
+
+
+GAME( 1991, 2020bbcd, 2020bb, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "CD_conv", "2020 Super Baseball (CD conversion)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1992, androdunpx, androdun, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Xyahzhs", "Andro Dunos (Plus Max hack by Xyahzhs)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1992, aofbh, aof, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yumeji", "Art of Fighting (Boss hack by Yumeji)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, aof2b, aof2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "TcwLee", "Art of Fighting 2 (Geese instead of Mr. Big)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, aof2b1, aof2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yumeji", "Art of Fighting 2 (Boss hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, aof2bh, aof2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yumeji", "Art of Fighting 2 (Boss hack by Yumeji)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, aof2br2, aof2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "TcwLee", "Art of Fighting 2 (Geese instead of Ryo)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, aof3b, aof3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Dodowang", "Art of Fighting 3 (Boss hack by Dodowang)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, aof3bh, aof3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yumeji", "Art of Fighting 3 (Boss hack by Yumeji)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 2000, bangbeadp, bangbead, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Visco", "Bang Bead (prototype)", MACHINE_SUPPORTS_SAVE ) // commented out in official MAME source
+GAME( 1990, bjourneypx, bjourney, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Xyahzhs", "Blue's Journey / Raguy (Plus Max hack by Xyahzhs)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, breakersbh, breakers, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yumeji", "Breakers (Boss hack by Yumeji)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, breakersp, breakers, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Breakers (Move change 26c?)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, breakersy, breakers, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "ZKW", "Breakers (Boss Robert PPX Team hack remixed by ZKW)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, breakrevb, breakrev, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yumeji", "Breakers Revenge (Boss hack by Yumeji)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, breakrevpp, breakrev, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Pipi899", "Breakers Revenge (Enhanced Power hack by Pipi899 2009-06-11)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, breakrevy, breakrev, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "ZKW", "Breakers Revenge (Boss Robert PPX Team hack remixed by ZKW)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, burningfhp, burningf, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Lb70", "Burning Fight (High Power by EEZEZY(LB70))", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1999, ctomadaypx, ctomaday, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Xyahzhs", "Captain Tomaday (Plus Max hack by Xyahzhs)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1997, dragons1, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Face", "Dragon's Heaven", MACHINE_SUPPORTS_SAVE )
+
+GAME( 2009, eightmaneb, eightman, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Blackheart", "Eight Man (Enhanced Version hack by Blackheart 2009-08-22)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1994, fightfevbs, fightfev, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yumeji", "Fight Fever (Boss hack by Yumeji)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, fightfevk, fightfev, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Unk", "Fight Fever (Kanji Patch)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1998, flipshotk, flipshot, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Battle Flip Shot (Korean)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1995, galaxyfgb, galaxyfg, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yumeji", "Galaxy Fight (Boss hack by Yumeji)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, galaxyfgbh, galaxyfg, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yumeji", "Galaxy Fight (Boss Hack 2014 Edition by Yumeji)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, ganryud, ganryu, neogeo_noslot, neogeo, neogeo_hbmame, cmc42sfix, ROT0, "Visco", "Ganryu / Musashi Ganryuki (decrypted C)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1995, gowcaizrb, gowcaizr, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker", "Voltage Fighter (Boss hack by Wesker (FGCH))", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, gowcaizrbs, gowcaizr, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yumeji", "Voltage Fighter (Boss hack by Yumeji)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, gowcaizrrv, gowcaizr, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Voltage Fighter - Gowcaizer (Boss Revised Version 2009-10-05)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, gowcaizry, gowcaizr, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Voltage Fighter - Gowcaizer (Boss Hack - Easy Moves)", MACHINE_SUPPORTS_SAVE)
+
+GAME( 1991, gpilotscd, gpilots, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "CD_conv", "Ghost Pilots (CD conversion)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, gpilotse, gpilots, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Robert", "Ghost Pilots (Enhanced Version, Hack by Robert)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, gpilotspx, gpilots, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Xyahzhs", "Ghost Pilots (Plus Max hack by Xyahzhs)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1996, ironcladb, ironclad, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Saurus", "Ironclad (conversion from Wii)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, ironcladcd, ironclad, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "CD_conv", "Ironclad (CD conversion)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+
+GAME( 2001, jockeygpd, jockeygp, neogeo_noslot, jockeygp, neogeo_hbmame, jckeygpd, ROT0, "Sun Amusement / BrezzaSoft", "Jockey Grand Prix (decrypted C)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 2007, joyjoycd, joyjoy, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Puzzled (CD conversion)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, joyjoycd1, joyjoy, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "CD_conv", "Puzzled / Joy Joy Kid (CD conversion)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1995, kabukiklb, kabukikl, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis / Creamymami", "Far East of Eden - Kabuki Klash (Boss Hack by Ydmis and Creamymami)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, kabukikleh, kabukikl, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Far East of Eden - Kabuki Klash (Add Char)", MACHINE_SUPPORTS_SAVE ) // Manto, Karakuri, Jyashinsai and Lucifeller
+GAME( 1995, kabukiklgm, kabukikl, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Flycboy", "Far East of Eden - Kabuki Klash (Color Fix set 2 - Title screen and char color changed)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, kabukiklgmc, kabukikl, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Flycboy", "Far East of Eden - Kabuki Klash (Color Fix set 1 - Title screen and char color changed)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, kabukiklmc, kabukikl, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami", "Far East of Eden - Kabuki Klash (Magic always max)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, kabukiklyc, kabukikl, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami and Ydmis", "Far East of Eden - Kabuki Klash (Add Char - Magic always max)", MACHINE_SUPPORTS_SAVE ) // Manto, Karakuri, Jyashinsai and Lucifeller - Based on kabukleh
+
+GAME( 1994, karnovreh, karnovr, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Karnov's Revenge (Add Char)", MACHINE_SUPPORTS_SAVE ) // Big Tornado
+
+GAME( 1996, kizunab, kizuna, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Kizuna Encounter (Add Char)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, kizunaeh, kizuna, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "007325", "Kizuna Encounter (Easy Moves hack by 007325 2009-02-23)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 2004, lans2k4d, shocktr2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "Lansquenet 2004 (Shock Troopers - 2nd Squad Bootleg / fully decrypted)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, lbowlingcd, lbowling, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "CD_conv", "League Bowling (CD conversion)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, lresortpx, lresort, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Xyahzhs", "Last Resort (Plus Max hack by Xyahzhs)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 2003, magdrop3fr, magdrop3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Arkatrad", "Magical Drop III (French)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, maglordpx, maglord, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Xyahzhs", "Magician Lord (Plus Max hack by Xyahzhs)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 2003, matrima, matrim, neogeo_noslot, neogeo, neogeo_hbmame, matrima, ROT0, "Noise Factory / Atlus Corporation", "Power Instinct - Matrimelee / Shin Gouketsuji Ichizoku Toukon (Alternate)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, matrimbh, matrim, neogeo_noslot, neogeo, neogeo_noslot_state, matrim, ROT0, "Creamymami", "Matrimelee (Boss hack by Creamymami (EGCG))", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, matrimd, matrim, neogeo_noslot, neogeo, neogeo_hbmame, matrimd, ROT0, "Noise Factory / Atlus", "Matrimelee / Shin Gouketsuji Ichizoku Toukon (NGM-2660)(NGH-2660) (decrypted C)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, matrimdh, matrim, neogeo_noslot, neogeo, neogeo_hbmame, matrmehc, ROT0, "Dodowang", "Matrimelee / Shin Gouketsuji Ichizoku Toukon (decrypted C) hack", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, matrimeh, matrim, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Matrimelee (Bootleg, Hero Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, matrimehc, matrim, neogeo_noslot, neogeo, neogeo_hbmame, matrmehc, ROT0, "Creamymami", "Matrimelee (Pow always max - MVS protection rem)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, matrimnd, matrim, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Matrimelee (hack nd)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 2005, miexchngfr, miexchng, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Arkatrad", "Money Puzzle Exchanger (French)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1992, mutnatex, mutnat, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Pipi899", "Mutation Nation (Ex version, Pipi899)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 2008, nam1975g, nam1975, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "NAM-1975 (hack?)", MACHINE_SUPPORTS_SAVE )
+GAME( 2008, nam1975h, nam1975, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Blast of the Wolf", "NAM-1975 (Max Blast edition)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1990, ncombatpk, ncombat, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Krizal chen", "Ninja Combat (Plus hack by Krizal chen (Dsght))", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, ncommandsp, ncommand, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "e107", "Ninja Commando (Super Plus hack by e107 2009-08-16)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, neocup98k, neocup98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Neo-Geo Cup '98 - The Road to the Victory (Korean)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1996, ninjamasasp, ninjamas, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "ZKW", "Ninja Master's (Plus Remixed by ZKW)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, ninjamaschl, ninjamas, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "CHL", "Ninja Master's (Hack by CHL)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, ninjamaseh, ninjamas, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Ninja Master's (Add Char)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, ninjamasehc, ninjamas, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami", "Ninja Master's (Pow hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, ninjamasehyc, ninjamas, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami and Ydmis", "Ninja Master's (Add Char - Pow hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, ninjamasha, ninjamas, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "007325", "Ninja Master's - haoh-ninpo-cho PLUS (Hack by 007325)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, ninjamashb, ninjamas, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "007325", "Ninja Master's (Happy Batter Edition hack by 007325 2009-09-09)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 2000, nitdd, nitd, neogeo_noslot, neogeo, neogeo_hbmame, cmc42sfix, ROT0, "Eleven / Gavaking", "Nightmare in the Dark (decrypted C)", MACHINE_SUPPORTS_SAVE )
+GAME( 2006, nitdfr, nitd, neogeo_noslot, neogeo, neogeo_hbmame, cmc42sfix, ROT0, "Arkatrad", "Nightmare in the Dark (French)", MACHINE_SUPPORTS_SAVE ) // based on decrypted C
+GAME( 2005, nitdfro, nitd, neogeo_noslot, neogeo, neogeo_hbmame, cmc42sfix, ROT0, "Arkatrad", "Nightmare in the Dark (French) (Old)", MACHINE_SUPPORTS_SAVE ) // based on decrypted C
+GAME( 2000, nitdfro1, nitd, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Eleven / Gavaking", "Nightmare in the Dark French (NEO ARC Traduction)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, nitdpx, nitd, neogeo_noslot, neogeo, neogeo_noslot_state, nitd, ROT0, "Xyahzhs", "Nightmare in the Dark (Plus Max hack by Xyahzhs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, nitdsp, nitd, neogeo_noslot, neogeo, neogeo_noslot_state, nitd, ROT0, "hack", "Nightmare in the Dark (Spanish)", MACHINE_SUPPORTS_SAVE )
+GAME( 2015, nitdsp1, nitd, neogeo_noslot, neogeo, neogeo_hbmame, cmc42sfix, ROT0, "hack", "Nightmare in the Dark (Spanish.Rev2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, nitdsp2, nitd, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Meganiuz", "Nightmare in the Dark Spanish (Version 1.1 by MEGANIUZ)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 2009, pbcrazyb1, pbobblen, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Elrayzeur", "Puzzle Bobble Crazy (beta1 2009-07-05)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, pbcrazyb2, pbobblen, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Elrayzeur", "Puzzle Bobble Crazy (beta2 2009-07-23)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, pbobblenba, pbobblen, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Taito", "Puzzle Bobble / Bust-A-Move (Neo-Geo) (set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, pbobblencd, pbobblen, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "Puzzle Bobble / Bust-A-Move (Neo-Geo)(CD conversion)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pbobblendx, pbobblen, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Puzzle Bobble Deluxe / Bust-A-Move Deluxe", MACHINE_SUPPORTS_SAVE )
+
+GAME( 2003, pnyaad, pnyaa, neogeo_noslot, neogeo, neogeo_hbmame, pnyaad, ROT0, "Aiky", "Pochi & Nyaa (decrypted C)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1999, preisle2d, preisle2, neogeo_noslot, neogeo, neogeo_hbmame, cmc42sfix, ROT0, "Yumekobo", "Prehistoric Isle 2 (decrypted C)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, preisle2px, preisle2, neogeo_noslot, neogeo, neogeo_hbmame, cmc42sfix, ROT0, "Xyahzhs", "Prehistoric Isle 2 (Plus Max hack by Xyahzhs)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, pspikes2cd, pspikes2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "CD_conv", "Power Spikes II (CD conversion)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+
+GAME( 1996, ragnagrdbe, ragnagrd, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Operation Ragnagard (Easy Moves hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, ragnagrdbs, ragnagrd, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yumeji", "Operation Ragnagard (Boss hack by Yumeji)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, ragnagrdeh, ragnagrd, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Operation Ragnagard (Add Char)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, ragnagrdsb, ragnagrd, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Lichenzhao", "Operation Ragnagard (Super Boss Easy Moves hack by Lichenzhao 2009-11-16)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1999, s1945pd, s1945p, neogeo_noslot, neogeo, neogeo_hbmame, cmc42sfix, ROT0, "Psikyo", "Strikers 1945 Plus (decrypted C)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, s1945peh, s1945p, neogeo_noslot, neogeo, neogeo_noslot_state, s1945p, ROT0, "KrysoFun", "Strikers 1945 Plus (Super Shot hack by KrysoFun)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, s1945ph, s1945p, neogeo_noslot, neogeo, neogeo_noslot_state, s1945p, ROT0, "Yumeji", "Strikers 1945 Plus (Ascender P55 hack by Yumeji)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, s1945pwe, s1945p, neogeo_noslot, neogeo, neogeo_noslot_state, s1945p, ROT0, "Wesker", "Strikers 1945 Plus (Hack)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1995, savagereb, savagere, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yumeji, Dodowang", "Savage Reign (Boss hack by Yumeji/Dodowang)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, savageredb, savagere, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Dodowang", "Savage Reign (Debug menu unlocked - P1 and P2 Press select to change stage)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, sdodgebp, sdodgeb, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Blackheart", "Super Dodge Ball (Power hack by Blackheart 2009-09-02)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, shocktr2px, shocktr2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Xyahzhs", "Shock Troopers - 2nd Squad (Plus Max hack by Xyahzhs)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, shocktr2w, shocktr2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker", "Shock Troopers - 2nd Squad (Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, shocktrosp, shocktro, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "e107", "Shock Troopers (Super Plus hack by e107 2009-08-18)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, sonicwi2eh, sonicwi2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Robert", "Aero Fighters 2 / Sonic Wings 2 (Hack alternate set by Robert)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, sonicwi2px, sonicwi2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Xyahzhs", "Aero Fighters 2 / Sonic Wings 2 (Plus Max hack by Xyahzhs)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, sonicwi3eh, sonicwi3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Robert", "Aero Fighters 3 / Sonic Wings 3 (Hack alternate set by Robert)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, sonicwi3h, sonicwi3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker", "Aero Fighters 3 / Sonic Wings 3 (ExChar hack by Wesker)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, sonicwi3px, sonicwi3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Xyahzhs", "Aero Fighters 3 / Sonic Wings 3 (Plus Max hack by Xyahzhs)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, spinmasth, spinmast, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Robert", "Spin Master / Miracle Adventure (Enhanced Version, Hack by Robert)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, spinmastpx, spinmast, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Xyahzhs", "Spin Master / Miracle Adventure (Plus Max hack by Xyahzhs)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, ssidekicd, ssideki, neogeo_noslot, neogeo, neogeo_noslot_state, fatfury2, ROT0, "CD_conv", "Super Sidekicks / Tokuten Ou (CD conversion)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, strhoopcd, strhoop, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "CD_conv", "Street Hoop (CD conversion)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, superspycd, superspy, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "CD_conv", "The Super Spy (CD conversion)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1994, tophuntrpx, tophuntr, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Xyahzhs", "Top Hunter - Roddy & Cathy (Plus Max hack by Xyahzhs)", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, tpgolfcd, tpgolf, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "CD_conv", "Top Player's Golf (CD conversion)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, trallycd, trally, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "CD_conv", "Thrash Rally (CD conversion)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1996, twinsprih, twinspri, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yumeji", "Twinkle Star Sprites (ExChar hack by Yumeji)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1992, viewpoinf, viewpoin, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SHYMA.X", "Viewpoint (French by NEOARC Team)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, viewpointr, viewpoin, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "KiWi Starlight", "Viewpoint Enhanced", MACHINE_SUPPORTS_SAVE ) // Unlimited lives and mega-bombs for p1 and p2
+
+GAME( 1996, wakuwak7bh, wakuwak7, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Dodowang", "Waku Waku 7 (Add Char - 2 players only)", MACHINE_SUPPORTS_SAVE ) // Fernandez and Bonus Kun
+GAME( 1996, wakuwak7h, wakuwak7, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Waku Waku 7 (Boss Hack)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1994, wjammersf, wjammers, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Elrayzeur", "Windjammers (French v0.1 beta by Elrayzeur)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, wjammersk, wjammers, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Aneue Bannzai", "Windjammers (Korean hack by Aneue Bannzai)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 2001, zupapad, zupapa, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Zupapa! (custom decrypted C)", MACHINE_SUPPORTS_SAVE )
+
+
+//PSmame
+
+
+ /****************************************
+ Art of Fighting 2
+*****************************************/
+
+ROM_START( aof2s01 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "056hc01.p1", 0x000000, 0x100000, CRC(4fdcdaa7) SHA1(25dc14aae1441a8a5286b7040d1c22475281757b) )
+
+ NEO_SFIX_128K( "056-s1.s1", CRC(8b02638e) SHA1(aa4d28804ca602da776948b5f223ea89e427906b) )
+
+ NEO_BIOS_AUDIO_128K( "056-m1.m1", CRC(f27e9d52) SHA1(dddae733d87ce7c88ad2580a8f64cb6ff9572e67) )
+
+ ROM_REGION( 0x500000, "ymsnd", 0 )
+ ROM_LOAD( "056-v1.v1", 0x000000, 0x200000, CRC(4628fde0) SHA1(ece2a50f5270d844d58401b1447d1d856d78ea45) )
+ ROM_LOAD( "056-v2.v2", 0x200000, 0x200000, CRC(b710e2f2) SHA1(df4da585203eea7554d3ce718eb107e9cb6a0254) )
+ ROM_LOAD( "056-v3.v3", 0x400000, 0x100000, CRC(d168c301) SHA1(969273d1d11943e81560959359a2c4e69522af0e) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "056-c1.c1", 0x000000, 0x200000, CRC(17b9cbd2) SHA1(1eee81e02763d384bd1c10a6012473ca931e4093) )
+ ROM_LOAD16_BYTE( "056-c2.c2", 0x000001, 0x200000, CRC(5fd76b67) SHA1(11925a41a53b53c6df4a5ebd28f98300950f743b) )
+ ROM_LOAD16_BYTE( "056-c3.c3", 0x400000, 0x200000, CRC(d2c88768) SHA1(22e2d84aa0c095944190e249ce87ef50d3f7b8ce) )
+ ROM_LOAD16_BYTE( "056-c4.c4", 0x400001, 0x200000, CRC(db39b883) SHA1(59de86c513dc4e230ae25d9e3b7e84621b657b54) )
+ ROM_LOAD16_BYTE( "056-c5.c5", 0x800000, 0x200000, CRC(c3074137) SHA1(9a75e3d63cb98d54f900dcfb3a03e21f3148d32f) )
+ ROM_LOAD16_BYTE( "056-c6.c6", 0x800001, 0x200000, CRC(31de68d3) SHA1(13ba7046cdd6863125f8284e60f102d4720af5a4) )
+ ROM_LOAD16_BYTE( "056-c7.c7", 0xc00000, 0x200000, CRC(3f36df57) SHA1(79ee97e9ae811a51141b535633f90e1491209d54) )
+ ROM_LOAD16_BYTE( "056-c8.c8", 0xc00001, 0x200000, CRC(e546d7a8) SHA1(74a2fca994a5a93a5784a46c0f68193122456a09) )
+ROM_END
+
+ROM_START( aof2s02 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "056hc02.p1", 0x000000, 0x100000, CRC(3f99b23d) SHA1(13618ae19dd497f2a4e4e9963ec1176d553dbdcb) )
+
+ NEO_SFIX_128K( "056-s1.s1", CRC(8b02638e) SHA1(aa4d28804ca602da776948b5f223ea89e427906b) )
+
+ NEO_BIOS_AUDIO_128K( "056-m1.m1", CRC(f27e9d52) SHA1(dddae733d87ce7c88ad2580a8f64cb6ff9572e67) )
+
+ ROM_REGION( 0x500000, "ymsnd", 0 )
+ ROM_LOAD( "056-v1.v1", 0x000000, 0x200000, CRC(4628fde0) SHA1(ece2a50f5270d844d58401b1447d1d856d78ea45) )
+ ROM_LOAD( "056-v2.v2", 0x200000, 0x200000, CRC(b710e2f2) SHA1(df4da585203eea7554d3ce718eb107e9cb6a0254) )
+ ROM_LOAD( "056-v3.v3", 0x400000, 0x100000, CRC(d168c301) SHA1(969273d1d11943e81560959359a2c4e69522af0e) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "056-c1.c1", 0x000000, 0x200000, CRC(17b9cbd2) SHA1(1eee81e02763d384bd1c10a6012473ca931e4093) )
+ ROM_LOAD16_BYTE( "056-c2.c2", 0x000001, 0x200000, CRC(5fd76b67) SHA1(11925a41a53b53c6df4a5ebd28f98300950f743b) )
+ ROM_LOAD16_BYTE( "056-c3.c3", 0x400000, 0x200000, CRC(d2c88768) SHA1(22e2d84aa0c095944190e249ce87ef50d3f7b8ce) )
+ ROM_LOAD16_BYTE( "056-c4.c4", 0x400001, 0x200000, CRC(db39b883) SHA1(59de86c513dc4e230ae25d9e3b7e84621b657b54) )
+ ROM_LOAD16_BYTE( "056-c5.c5", 0x800000, 0x200000, CRC(c3074137) SHA1(9a75e3d63cb98d54f900dcfb3a03e21f3148d32f) )
+ ROM_LOAD16_BYTE( "056-c6.c6", 0x800001, 0x200000, CRC(31de68d3) SHA1(13ba7046cdd6863125f8284e60f102d4720af5a4) )
+ ROM_LOAD16_BYTE( "056-c7.c7", 0xc00000, 0x200000, CRC(3f36df57) SHA1(79ee97e9ae811a51141b535633f90e1491209d54) )
+ ROM_LOAD16_BYTE( "056-c8.c8", 0xc00001, 0x200000, CRC(e546d7a8) SHA1(74a2fca994a5a93a5784a46c0f68193122456a09) )
+ROM_END
+
+ROM_START( aof2s03 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "056hc03.p1", 0x000000, 0x100000, CRC(7269e7ae) SHA1(01c0360fa85c3e4124b49466a7d321e9f3b8e6a4) )
+
+ NEO_SFIX_128K( "056-s1.s1", CRC(8b02638e) SHA1(aa4d28804ca602da776948b5f223ea89e427906b) )
+
+ NEO_BIOS_AUDIO_128K( "056-m1.m1", CRC(f27e9d52) SHA1(dddae733d87ce7c88ad2580a8f64cb6ff9572e67) )
+
+ ROM_REGION( 0x500000, "ymsnd", 0 )
+ ROM_LOAD( "056-v1.v1", 0x000000, 0x200000, CRC(4628fde0) SHA1(ece2a50f5270d844d58401b1447d1d856d78ea45) )
+ ROM_LOAD( "056-v2.v2", 0x200000, 0x200000, CRC(b710e2f2) SHA1(df4da585203eea7554d3ce718eb107e9cb6a0254) )
+ ROM_LOAD( "056-v3.v3", 0x400000, 0x100000, CRC(d168c301) SHA1(969273d1d11943e81560959359a2c4e69522af0e) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "056-c1.c1", 0x000000, 0x200000, CRC(17b9cbd2) SHA1(1eee81e02763d384bd1c10a6012473ca931e4093) )
+ ROM_LOAD16_BYTE( "056-c2.c2", 0x000001, 0x200000, CRC(5fd76b67) SHA1(11925a41a53b53c6df4a5ebd28f98300950f743b) )
+ ROM_LOAD16_BYTE( "056-c3.c3", 0x400000, 0x200000, CRC(d2c88768) SHA1(22e2d84aa0c095944190e249ce87ef50d3f7b8ce) )
+ ROM_LOAD16_BYTE( "056-c4.c4", 0x400001, 0x200000, CRC(db39b883) SHA1(59de86c513dc4e230ae25d9e3b7e84621b657b54) )
+ ROM_LOAD16_BYTE( "056-c5.c5", 0x800000, 0x200000, CRC(c3074137) SHA1(9a75e3d63cb98d54f900dcfb3a03e21f3148d32f) )
+ ROM_LOAD16_BYTE( "056-c6.c6", 0x800001, 0x200000, CRC(31de68d3) SHA1(13ba7046cdd6863125f8284e60f102d4720af5a4) )
+ ROM_LOAD16_BYTE( "056-c7.c7", 0xc00000, 0x200000, CRC(3f36df57) SHA1(79ee97e9ae811a51141b535633f90e1491209d54) )
+ ROM_LOAD16_BYTE( "056-c8.c8", 0xc00001, 0x200000, CRC(e546d7a8) SHA1(74a2fca994a5a93a5784a46c0f68193122456a09) )
+ROM_END
+
+ /****************************************
+ Galaxy Fight
+*****************************************/
+
+ROM_START( galaxyfs01 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "078hc01.p1", 0x100000, 0x100000, CRC(bbfffa22) SHA1(6bde48477f67241dce30107f84c38a8d0c34a81f) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "078-s1.s1", CRC(72f8923e) SHA1(da908bffc2b5d8baa2002dbb5bfb3aa17d2472b7) )
+
+ NEO_BIOS_AUDIO_128K( "078-m1.m1", CRC(8e9e3b10) SHA1(7c44d1dbd4f8d337c99e90361d1dab837df85e31) )
+
+ ROM_REGION( 0x500000, "ymsnd", 0 )
+ ROM_LOAD( "078-v1.v1", 0x000000, 0x200000, CRC(e3b735ac) SHA1(e16dfac09aef8115a20bae0bef8c86d4e7d0dc4a) )
+ ROM_LOAD( "078-v2.v2", 0x200000, 0x200000, CRC(6a8e78c2) SHA1(f60b1f8a3a945f279a582745e82f37278ce5d83b) )
+ ROM_LOAD( "078-v3.v3", 0x400000, 0x100000, CRC(70bca656) SHA1(218b7079c90898e7faa382b386e77f81f415e7ac) )
+
+ ROM_REGION( 0xe00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "078-c1.c1", 0x000000, 0x200000, CRC(c890c7c0) SHA1(b96c18a41c34070a4f24ca77cb7516fae8b0fd0c) )
+ ROM_LOAD16_BYTE( "078-c2.c2", 0x000001, 0x200000, CRC(b6d25419) SHA1(e089df9c9a9645f706e501108d634f4d222622a2) )
+ ROM_LOAD16_BYTE( "078-c3.c3", 0x400000, 0x200000, CRC(9d87e761) SHA1(ea1b6d7c9d5ef3a9b48968bde5a52d5699d591cc) )
+ ROM_LOAD16_BYTE( "078-c4.c4", 0x400001, 0x200000, CRC(765d7cb8) SHA1(7b9c86714d688602064d928c9d2b49d70bb7541e) )
+ ROM_LOAD16_BYTE( "078-c5.c5", 0x800000, 0x200000, CRC(e6b77e6a) SHA1(db3b8fc62a6f21c6653621c0665450d5d9a9913d) )
+ ROM_LOAD16_BYTE( "078-c6.c6", 0x800001, 0x200000, CRC(d779a181) SHA1(2761026abd9698a7b56114b76631563abd41fd12) )
+ ROM_LOAD16_BYTE( "078-c7.c7", 0xc00000, 0x100000, CRC(4f27d580) SHA1(c0f12496b45b2fe6e94aa8ac52b0157063127e0a) )
+ ROM_LOAD16_BYTE( "078-c8.c8", 0xc00001, 0x100000, CRC(0a7cc0d8) SHA1(68aaee6341c87e56ce11acc1c4ec8047839fe70d) )
+ROM_END
+
+ /****************************************
+ Voltage Fighter
+*****************************************/
+
+ROM_START( gowcaizrs01 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "094hc01.p1", 0x100000, 0x100000, CRC(84e62fd8) SHA1(fb5c2b0d5960fa1d9b5db035f5a5cdcf24228818) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "094-s1.s1", CRC(2f8748a2) SHA1(5cc723c4284120473d63d8b0c1a3b3be74bdc324) )
+
+ NEO_BIOS_AUDIO_128K( "094-m1.m1", CRC(78c851cb) SHA1(a9923c002e4e2171a564af45cff0958c5d57b275) )
+
+ ROM_REGION( 0x500000, "ymsnd", 0 )
+ ROM_LOAD( "094-v1.v1", 0x000000, 0x200000, CRC(6c31223c) SHA1(ede3a2806d7d872a0f737626a23ecce200b534e6) )
+ ROM_LOAD( "094-v2.v2", 0x200000, 0x200000, CRC(8edb776c) SHA1(a9eac5e24f83ccdcf303d63261747b1bad876a24) )
+ ROM_LOAD( "094-v3.v3", 0x400000, 0x100000, CRC(c63b9285) SHA1(6bbbacfe899e204e74657d6c3f3d05ce75e432f1) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "094-c1.c1", 0x000000, 0x200000, CRC(042f6af5) SHA1(1c50df6a1a53ffb3079ea0a19c746f5c9536a3ed) )
+ ROM_LOAD16_BYTE( "094-c2.c2", 0x000001, 0x200000, CRC(0fbcd046) SHA1(9a6dc920a877f27424477c3478907b23afbaa5ea) )
+ ROM_LOAD16_BYTE( "094-c3.c3", 0x400000, 0x200000, CRC(58bfbaa1) SHA1(4c6f9cf138c5e6dfe89a45e2a690a986c75f5bfc) )
+ ROM_LOAD16_BYTE( "094-c4.c4", 0x400001, 0x200000, CRC(9451ee73) SHA1(7befee4a886b1d7493c06cefb7abf4ec01c14a8b) )
+ ROM_LOAD16_BYTE( "094-c5.c5", 0x800000, 0x200000, CRC(ff9cf48c) SHA1(5f46fb5d0812275b0006919d8540f22be7c16492) )
+ ROM_LOAD16_BYTE( "094-c6.c6", 0x800001, 0x200000, CRC(31bbd918) SHA1(7ff8c5e3f17d40e7a8a189ad8f8026de55368810) )
+ ROM_LOAD16_BYTE( "094-c7.c7", 0xc00000, 0x200000, CRC(2091ec04) SHA1(a81d4bdbef1ac6ea49845dc30e31bf9745694100) )
+ ROM_LOAD16_BYTE( "094-c8.c8", 0xc00001, 0x200000, CRC(d80dd241) SHA1(1356a64e4d4e271f62cd0d83f79ee9c906440810) )
+ROM_END
+
+ROM_START( gowcaizrs02 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "094hc02.p1", 0x100000, 0x100000, CRC(0fb83f5d) SHA1(7ed0c50bc9aed5267652c6b2ce5c85a07cc42680) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "094-s1.s1", CRC(2f8748a2) SHA1(5cc723c4284120473d63d8b0c1a3b3be74bdc324) )
+
+ NEO_BIOS_AUDIO_128K( "094-m1.m1", CRC(78c851cb) SHA1(a9923c002e4e2171a564af45cff0958c5d57b275) )
+
+ ROM_REGION( 0x500000, "ymsnd", 0 )
+ ROM_LOAD( "094-v1.v1", 0x000000, 0x200000, CRC(6c31223c) SHA1(ede3a2806d7d872a0f737626a23ecce200b534e6) )
+ ROM_LOAD( "094-v2.v2", 0x200000, 0x200000, CRC(8edb776c) SHA1(a9eac5e24f83ccdcf303d63261747b1bad876a24) )
+ ROM_LOAD( "094-v3.v3", 0x400000, 0x100000, CRC(c63b9285) SHA1(6bbbacfe899e204e74657d6c3f3d05ce75e432f1) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "094-c1.c1", 0x000000, 0x200000, CRC(042f6af5) SHA1(1c50df6a1a53ffb3079ea0a19c746f5c9536a3ed) )
+ ROM_LOAD16_BYTE( "094-c2.c2", 0x000001, 0x200000, CRC(0fbcd046) SHA1(9a6dc920a877f27424477c3478907b23afbaa5ea) )
+ ROM_LOAD16_BYTE( "094-c3.c3", 0x400000, 0x200000, CRC(58bfbaa1) SHA1(4c6f9cf138c5e6dfe89a45e2a690a986c75f5bfc) )
+ ROM_LOAD16_BYTE( "094-c4.c4", 0x400001, 0x200000, CRC(9451ee73) SHA1(7befee4a886b1d7493c06cefb7abf4ec01c14a8b) )
+ ROM_LOAD16_BYTE( "094-c5.c5", 0x800000, 0x200000, CRC(ff9cf48c) SHA1(5f46fb5d0812275b0006919d8540f22be7c16492) )
+ ROM_LOAD16_BYTE( "094-c6.c6", 0x800001, 0x200000, CRC(31bbd918) SHA1(7ff8c5e3f17d40e7a8a189ad8f8026de55368810) )
+ ROM_LOAD16_BYTE( "094-c7.c7", 0xc00000, 0x200000, CRC(2091ec04) SHA1(a81d4bdbef1ac6ea49845dc30e31bf9745694100) )
+ ROM_LOAD16_BYTE( "094-c8.c8", 0xc00001, 0x200000, CRC(d80dd241) SHA1(1356a64e4d4e271f62cd0d83f79ee9c906440810) )
+ROM_END
+
+ROM_START( kabukikls01 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "092hc01.p1", 0x100000, 0x100000, CRC(fe6a2964) SHA1(15c5c8f38f5d6f90daf2c3e69d0c12905fda4d20) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "092-s1.s1", CRC(a3d68ee2) SHA1(386f6110a16967a72fbf788f9d968fddcdcd2889) )
+
+ NEO_BIOS_AUDIO_128K( "092-m1.m1", CRC(91957ef6) SHA1(7b6907532a0e02ceb643623cbd689cf228776ed1) )
+
+ ROM_REGION( 0x700000, "ymsnd", 0 )
+ ROM_LOAD( "092-v1.v1", 0x000000, 0x200000, CRC(69e90596) SHA1(1a2007d7784b3ce90d115980c3353862f1664d45) )
+ ROM_LOAD( "092-v2.v2", 0x200000, 0x200000, CRC(7abdb75d) SHA1(0bff764889fe02f37877514c7fc450250839f632) )
+ ROM_LOAD( "092-v3.v3", 0x400000, 0x200000, CRC(eccc98d3) SHA1(b0dfbdb1ea045cb961323ac6906ab342256c3dc7) )
+ ROM_LOAD( "092-v4.v4", 0x600000, 0x100000, CRC(a7c9c949) SHA1(574bc55b45e81ce357b14f5992426115de25cd35) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "092-c1.c1", 0x000000, 0x400000, CRC(2a9fab01) SHA1(aa9f037df33ae0575b328734c76c0918ae1917e9) )
+ ROM_LOAD16_BYTE( "092-c2.c2", 0x000001, 0x400000, CRC(6d2bac02) SHA1(dfe96b62883333872be432e8af1ae617c9e62698) )
+ ROM_LOAD16_BYTE( "092-c3.c3", 0x800000, 0x400000, CRC(5da735d6) SHA1(f1c05a73794ece15576a0a30c81f4a44faac475a) )
+ ROM_LOAD16_BYTE( "092-c4.c4", 0x800001, 0x400000, CRC(de07f997) SHA1(c27a4d4bef868eed38dc152ff37d4135b16cc991) )
+ROM_END
+
+ROM_START( kabukikls02 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "092hc02.p1", 0x100000, 0x100000, CRC(6a764b9a) SHA1(85356d1df654e0fbc9b5a499d484f28d27edf8fe) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "092-s1.s1", CRC(a3d68ee2) SHA1(386f6110a16967a72fbf788f9d968fddcdcd2889) )
+
+ NEO_BIOS_AUDIO_128K( "092-m1.m1", CRC(91957ef6) SHA1(7b6907532a0e02ceb643623cbd689cf228776ed1) )
+
+ ROM_REGION( 0x700000, "ymsnd", 0 )
+ ROM_LOAD( "092-v1.v1", 0x000000, 0x200000, CRC(69e90596) SHA1(1a2007d7784b3ce90d115980c3353862f1664d45) )
+ ROM_LOAD( "092-v2.v2", 0x200000, 0x200000, CRC(7abdb75d) SHA1(0bff764889fe02f37877514c7fc450250839f632) )
+ ROM_LOAD( "092-v3.v3", 0x400000, 0x200000, CRC(eccc98d3) SHA1(b0dfbdb1ea045cb961323ac6906ab342256c3dc7) )
+ ROM_LOAD( "092-v4.v4", 0x600000, 0x100000, CRC(a7c9c949) SHA1(574bc55b45e81ce357b14f5992426115de25cd35) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "092-c1.c1", 0x000000, 0x400000, CRC(2a9fab01) SHA1(aa9f037df33ae0575b328734c76c0918ae1917e9) )
+ ROM_LOAD16_BYTE( "092-c2.c2", 0x000001, 0x400000, CRC(6d2bac02) SHA1(dfe96b62883333872be432e8af1ae617c9e62698) )
+ ROM_LOAD16_BYTE( "092-c3.c3", 0x800000, 0x400000, CRC(5da735d6) SHA1(f1c05a73794ece15576a0a30c81f4a44faac475a) )
+ ROM_LOAD16_BYTE( "092-c4.c4", 0x800001, 0x400000, CRC(de07f997) SHA1(c27a4d4bef868eed38dc152ff37d4135b16cc991) )
+ROM_END
+
+ /****************************************
+ Karnov's Revenge
+*****************************************/
+
+ROM_START( karnovres01 )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "066hc01.p1", 0x000000, 0x100000, CRC(7b776bb5) SHA1(a5457239ad2af9b341878bfd94baa818683a21d1) )
+
+ NEO_SFIX_128K( "066-s1.s1", CRC(bae5d5e5) SHA1(aa69d9b235b781ec51f72a528fada9cb12e72cbc) )
+
+ NEO_BIOS_AUDIO_128K( "066-m1.m1", CRC(030beae4) SHA1(ceb6ee6c09514504efacdbca7b280901e4c97084) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "066-v1.v1", 0x000000, 0x200000, CRC(0b7ea37a) SHA1(34e7d4f6db053674a7e8c8b2e3e398777d5b02e6) )
+
+ ROM_REGION( 0xc00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "066-c1.c1", 0x000000, 0x200000, CRC(09dfe061) SHA1(ca4c0f0ce80967b4be2f18b72435c468bbfbac4c) )
+ ROM_LOAD16_BYTE( "066-c2.c2", 0x000001, 0x200000, CRC(e0f6682a) SHA1(addb4fbc30da2b8ffc86819d92a874eb232f67dd) )
+ ROM_LOAD16_BYTE( "066-c3.c3", 0x400000, 0x200000, CRC(a673b4f7) SHA1(d138f5b38fd65c61549ce36f5c4983f7c8a3e7f6) )
+ ROM_LOAD16_BYTE( "066-c4.c4", 0x400001, 0x200000, CRC(cb3dc5f4) SHA1(865d9ccfc3df517c341d6aac16120f6b6aa759fe) )
+ ROM_LOAD16_BYTE( "066-c5.c5", 0x800000, 0x200000, CRC(9a28785d) SHA1(19723e1f7ff429e8a038d89488b279f830dfaf6e) )
+ ROM_LOAD16_BYTE( "066-c6.c6", 0x800001, 0x200000, CRC(c15c01ed) SHA1(7cf5583e6610bcdc3b332896cefc71df84fb3f19) )
+ROM_END
+
+ROM_START( matrims01 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "266hc01.p1", 0x000000, 0x100000, CRC(a2a92936) SHA1(517af06825bcf68e8c903b2c27cd7949eb139271) )
+ ROM_LOAD16_WORD_SWAP( "266a.p2", 0x100000, 0x400000, CRC(b0132cef) SHA1(3780db1b8947a8371a46b67ca1a14a12bf97986b) )
+
+ NEO_SFIX_128K( "266a.s1", CRC(aff2a3be) SHA1(57aba048573eacf8fbdd228f04a7f30da64cebe5) )
+
+ NEO_BIOS_AUDIO_128K( "266d.m1", CRC(d2f3742d) SHA1(dd42f8a301f07e079fbc2bfd23e788baa03ca72d) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "266a.v1", 0x000000, 0x400000, CRC(352b0a07) SHA1(19f7cc12f3f6d0fda9c7449816c4c32367447897) )
+ ROM_LOAD( "266a.v2", 0x400000, 0x400000, CRC(945f8831) SHA1(6ac9bd41e0bb33601c82ebeb2aa5b1b8b91fada1) )
+ ROM_LOAD( "266a.v3", 0x800000, 0x400000, CRC(e8362fcc) SHA1(42d558fd80cabe22a1c09a1fa75741afbcf46b7c) )
+ ROM_LOAD( "266a.v4", 0xc00000, 0x400000, CRC(393c9a62) SHA1(0eaee0007557e59e64edcdbca229e6f776de9aef) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "266a.c1", 0x0000000, 0x800000, CRC(f2240352) SHA1(3bb6763ebbc33db172d413276213eb3f2c7093c0) )
+ ROM_LOAD16_BYTE( "266a.c2", 0x0000001, 0x800000, CRC(338a9142) SHA1(eb589b4141c394ca78c2f5eb1b510cde982f3225) )
+ ROM_LOAD16_BYTE( "266a.c3", 0x1000000, 0x800000, CRC(6233412d) SHA1(b473cddc0a4343dffc4e35df68cd1bf9b163bd64) )
+ ROM_LOAD16_BYTE( "266a.c4", 0x1000001, 0x800000, CRC(304a2d9f) SHA1(29d2e50a64476640f4bff68227d6b1fdb45530c1) )
+ ROM_LOAD16_BYTE( "266a.c5", 0x2000000, 0x800000, CRC(18382650) SHA1(df10fb0b43f0dabdc57b55e923536b6c215678ff) )
+ ROM_LOAD16_BYTE( "266a.c6", 0x2000001, 0x800000, CRC(c5e7a840) SHA1(a1336c5c1284221d0b420bb44dd7c462d3e83ca7) )
+ ROM_LOAD16_BYTE( "266a.c7", 0x3000000, 0x800000, CRC(bfaa985c) SHA1(3ff7d56d8caaa1a34d0dcbc16bfc97df4afeab48) )
+ ROM_LOAD16_BYTE( "266a.c8", 0x3000001, 0x800000, CRC(efaf3f3c) SHA1(9374eb39fe30ba679878729992f136fdce1d92fc) )
+ROM_END
+
+ROM_START( matrims02 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "266hc02.p1", 0x000000, 0x100000, CRC(4a218dee) SHA1(743f487b0732503ad01d7ca33a757ec634ade0a0) )
+ ROM_LOAD16_WORD_SWAP( "266a.p2", 0x100000, 0x400000, CRC(b0132cef) SHA1(3780db1b8947a8371a46b67ca1a14a12bf97986b) )
+
+ NEO_SFIX_128K( "266a.s1", CRC(aff2a3be) SHA1(57aba048573eacf8fbdd228f04a7f30da64cebe5) )
+
+ NEO_BIOS_AUDIO_128K( "266d.m1", CRC(d2f3742d) SHA1(dd42f8a301f07e079fbc2bfd23e788baa03ca72d) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "266a.v1", 0x000000, 0x400000, CRC(352b0a07) SHA1(19f7cc12f3f6d0fda9c7449816c4c32367447897) )
+ ROM_LOAD( "266a.v2", 0x400000, 0x400000, CRC(945f8831) SHA1(6ac9bd41e0bb33601c82ebeb2aa5b1b8b91fada1) )
+ ROM_LOAD( "266a.v3", 0x800000, 0x400000, CRC(e8362fcc) SHA1(42d558fd80cabe22a1c09a1fa75741afbcf46b7c) )
+ ROM_LOAD( "266a.v4", 0xc00000, 0x400000, CRC(393c9a62) SHA1(0eaee0007557e59e64edcdbca229e6f776de9aef) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "266a.c1", 0x0000000, 0x800000, CRC(f2240352) SHA1(3bb6763ebbc33db172d413276213eb3f2c7093c0) )
+ ROM_LOAD16_BYTE( "266a.c2", 0x0000001, 0x800000, CRC(338a9142) SHA1(eb589b4141c394ca78c2f5eb1b510cde982f3225) )
+ ROM_LOAD16_BYTE( "266a.c3", 0x1000000, 0x800000, CRC(6233412d) SHA1(b473cddc0a4343dffc4e35df68cd1bf9b163bd64) )
+ ROM_LOAD16_BYTE( "266a.c4", 0x1000001, 0x800000, CRC(304a2d9f) SHA1(29d2e50a64476640f4bff68227d6b1fdb45530c1) )
+ ROM_LOAD16_BYTE( "266a.c5", 0x2000000, 0x800000, CRC(18382650) SHA1(df10fb0b43f0dabdc57b55e923536b6c215678ff) )
+ ROM_LOAD16_BYTE( "266a.c6", 0x2000001, 0x800000, CRC(c5e7a840) SHA1(a1336c5c1284221d0b420bb44dd7c462d3e83ca7) )
+ ROM_LOAD16_BYTE( "266a.c7", 0x3000000, 0x800000, CRC(bfaa985c) SHA1(3ff7d56d8caaa1a34d0dcbc16bfc97df4afeab48) )
+ ROM_LOAD16_BYTE( "266a.c8", 0x3000001, 0x800000, CRC(efaf3f3c) SHA1(9374eb39fe30ba679878729992f136fdce1d92fc) )
+ROM_END
+
+ROM_START( matrims03 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "266hc03.p1", 0x000000, 0x100000, CRC(993257bb) SHA1(c1d1665ac91b11088d8f253ddef1565c6246c386) )
+ ROM_LOAD16_WORD_SWAP( "266a.p2", 0x100000, 0x400000, CRC(b0132cef) SHA1(3780db1b8947a8371a46b67ca1a14a12bf97986b) )
+
+ NEO_SFIX_128K( "266a.s1", CRC(aff2a3be) SHA1(57aba048573eacf8fbdd228f04a7f30da64cebe5) )
+
+ NEO_BIOS_AUDIO_128K( "266d.m1", CRC(d2f3742d) SHA1(dd42f8a301f07e079fbc2bfd23e788baa03ca72d) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "266a.v1", 0x000000, 0x400000, CRC(352b0a07) SHA1(19f7cc12f3f6d0fda9c7449816c4c32367447897) )
+ ROM_LOAD( "266a.v2", 0x400000, 0x400000, CRC(945f8831) SHA1(6ac9bd41e0bb33601c82ebeb2aa5b1b8b91fada1) )
+ ROM_LOAD( "266a.v3", 0x800000, 0x400000, CRC(e8362fcc) SHA1(42d558fd80cabe22a1c09a1fa75741afbcf46b7c) )
+ ROM_LOAD( "266a.v4", 0xc00000, 0x400000, CRC(393c9a62) SHA1(0eaee0007557e59e64edcdbca229e6f776de9aef) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "266a.c1", 0x0000000, 0x800000, CRC(f2240352) SHA1(3bb6763ebbc33db172d413276213eb3f2c7093c0) )
+ ROM_LOAD16_BYTE( "266a.c2", 0x0000001, 0x800000, CRC(338a9142) SHA1(eb589b4141c394ca78c2f5eb1b510cde982f3225) )
+ ROM_LOAD16_BYTE( "266a.c3", 0x1000000, 0x800000, CRC(6233412d) SHA1(b473cddc0a4343dffc4e35df68cd1bf9b163bd64) )
+ ROM_LOAD16_BYTE( "266a.c4", 0x1000001, 0x800000, CRC(304a2d9f) SHA1(29d2e50a64476640f4bff68227d6b1fdb45530c1) )
+ ROM_LOAD16_BYTE( "266a.c5", 0x2000000, 0x800000, CRC(18382650) SHA1(df10fb0b43f0dabdc57b55e923536b6c215678ff) )
+ ROM_LOAD16_BYTE( "266a.c6", 0x2000001, 0x800000, CRC(c5e7a840) SHA1(a1336c5c1284221d0b420bb44dd7c462d3e83ca7) )
+ ROM_LOAD16_BYTE( "266a.c7", 0x3000000, 0x800000, CRC(bfaa985c) SHA1(3ff7d56d8caaa1a34d0dcbc16bfc97df4afeab48) )
+ ROM_LOAD16_BYTE( "266a.c8", 0x3000001, 0x800000, CRC(efaf3f3c) SHA1(9374eb39fe30ba679878729992f136fdce1d92fc) )
+ROM_END
+
+ROM_START( matrims04 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "266hc04.p1", 0x000000, 0x100000, CRC(cc71b315) SHA1(38050d122cf6d1c7e42347445f29ef2d4c4385ff) )
+ ROM_LOAD16_WORD_SWAP( "266a.p2", 0x100000, 0x400000, CRC(b0132cef) SHA1(3780db1b8947a8371a46b67ca1a14a12bf97986b) )
+
+ NEO_SFIX_128K( "266a.s1", CRC(aff2a3be) SHA1(57aba048573eacf8fbdd228f04a7f30da64cebe5) )
+
+ NEO_BIOS_AUDIO_128K( "266d.m1", CRC(d2f3742d) SHA1(dd42f8a301f07e079fbc2bfd23e788baa03ca72d) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "266a.v1", 0x000000, 0x400000, CRC(352b0a07) SHA1(19f7cc12f3f6d0fda9c7449816c4c32367447897) )
+ ROM_LOAD( "266a.v2", 0x400000, 0x400000, CRC(945f8831) SHA1(6ac9bd41e0bb33601c82ebeb2aa5b1b8b91fada1) )
+ ROM_LOAD( "266a.v3", 0x800000, 0x400000, CRC(e8362fcc) SHA1(42d558fd80cabe22a1c09a1fa75741afbcf46b7c) )
+ ROM_LOAD( "266a.v4", 0xc00000, 0x400000, CRC(393c9a62) SHA1(0eaee0007557e59e64edcdbca229e6f776de9aef) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "266a.c1", 0x0000000, 0x800000, CRC(f2240352) SHA1(3bb6763ebbc33db172d413276213eb3f2c7093c0) )
+ ROM_LOAD16_BYTE( "266a.c2", 0x0000001, 0x800000, CRC(338a9142) SHA1(eb589b4141c394ca78c2f5eb1b510cde982f3225) )
+ ROM_LOAD16_BYTE( "266a.c3", 0x1000000, 0x800000, CRC(6233412d) SHA1(b473cddc0a4343dffc4e35df68cd1bf9b163bd64) )
+ ROM_LOAD16_BYTE( "266a.c4", 0x1000001, 0x800000, CRC(304a2d9f) SHA1(29d2e50a64476640f4bff68227d6b1fdb45530c1) )
+ ROM_LOAD16_BYTE( "266a.c5", 0x2000000, 0x800000, CRC(18382650) SHA1(df10fb0b43f0dabdc57b55e923536b6c215678ff) )
+ ROM_LOAD16_BYTE( "266a.c6", 0x2000001, 0x800000, CRC(c5e7a840) SHA1(a1336c5c1284221d0b420bb44dd7c462d3e83ca7) )
+ ROM_LOAD16_BYTE( "266a.c7", 0x3000000, 0x800000, CRC(bfaa985c) SHA1(3ff7d56d8caaa1a34d0dcbc16bfc97df4afeab48) )
+ ROM_LOAD16_BYTE( "266a.c8", 0x3000001, 0x800000, CRC(efaf3f3c) SHA1(9374eb39fe30ba679878729992f136fdce1d92fc) )
+ROM_END
+
+ROM_START( matrims05 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "266hc05.p1", 0x000000, 0x100000, CRC(4146dee0) SHA1(b2f3310034829ac4f2940550e6be47643294121f) )
+ ROM_LOAD16_WORD_SWAP( "266a.p2", 0x100000, 0x400000, CRC(b0132cef) SHA1(3780db1b8947a8371a46b67ca1a14a12bf97986b) )
+
+ NEO_SFIX_128K( "266a.s1", CRC(aff2a3be) SHA1(57aba048573eacf8fbdd228f04a7f30da64cebe5) )
+
+ NEO_BIOS_AUDIO_128K( "266d.m1", CRC(d2f3742d) SHA1(dd42f8a301f07e079fbc2bfd23e788baa03ca72d) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "266a.v1", 0x000000, 0x400000, CRC(352b0a07) SHA1(19f7cc12f3f6d0fda9c7449816c4c32367447897) )
+ ROM_LOAD( "266a.v2", 0x400000, 0x400000, CRC(945f8831) SHA1(6ac9bd41e0bb33601c82ebeb2aa5b1b8b91fada1) )
+ ROM_LOAD( "266a.v3", 0x800000, 0x400000, CRC(e8362fcc) SHA1(42d558fd80cabe22a1c09a1fa75741afbcf46b7c) )
+ ROM_LOAD( "266a.v4", 0xc00000, 0x400000, CRC(393c9a62) SHA1(0eaee0007557e59e64edcdbca229e6f776de9aef) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "266a.c1", 0x0000000, 0x800000, CRC(f2240352) SHA1(3bb6763ebbc33db172d413276213eb3f2c7093c0) )
+ ROM_LOAD16_BYTE( "266a.c2", 0x0000001, 0x800000, CRC(338a9142) SHA1(eb589b4141c394ca78c2f5eb1b510cde982f3225) )
+ ROM_LOAD16_BYTE( "266a.c3", 0x1000000, 0x800000, CRC(6233412d) SHA1(b473cddc0a4343dffc4e35df68cd1bf9b163bd64) )
+ ROM_LOAD16_BYTE( "266a.c4", 0x1000001, 0x800000, CRC(304a2d9f) SHA1(29d2e50a64476640f4bff68227d6b1fdb45530c1) )
+ ROM_LOAD16_BYTE( "266a.c5", 0x2000000, 0x800000, CRC(18382650) SHA1(df10fb0b43f0dabdc57b55e923536b6c215678ff) )
+ ROM_LOAD16_BYTE( "266a.c6", 0x2000001, 0x800000, CRC(c5e7a840) SHA1(a1336c5c1284221d0b420bb44dd7c462d3e83ca7) )
+ ROM_LOAD16_BYTE( "266a.c7", 0x3000000, 0x800000, CRC(bfaa985c) SHA1(3ff7d56d8caaa1a34d0dcbc16bfc97df4afeab48) )
+ ROM_LOAD16_BYTE( "266a.c8", 0x3000001, 0x800000, CRC(efaf3f3c) SHA1(9374eb39fe30ba679878729992f136fdce1d92fc) )
+ROM_END
+
+ROM_START( matrims06 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "266hc06.p1", 0x000000, 0x100000, CRC(9a056472) SHA1(5633e93227278f680e8b4a5e72f1ca5ce8d8672a) )
+ ROM_LOAD16_WORD_SWAP( "266a.p2", 0x100000, 0x400000, CRC(b0132cef) SHA1(3780db1b8947a8371a46b67ca1a14a12bf97986b) )
+
+ NEO_SFIX_128K( "266a.s1", CRC(aff2a3be) SHA1(57aba048573eacf8fbdd228f04a7f30da64cebe5) )
+
+ NEO_BIOS_AUDIO_128K( "266d.m1", CRC(d2f3742d) SHA1(dd42f8a301f07e079fbc2bfd23e788baa03ca72d) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "266a.v1", 0x000000, 0x400000, CRC(352b0a07) SHA1(19f7cc12f3f6d0fda9c7449816c4c32367447897) )
+ ROM_LOAD( "266a.v2", 0x400000, 0x400000, CRC(945f8831) SHA1(6ac9bd41e0bb33601c82ebeb2aa5b1b8b91fada1) )
+ ROM_LOAD( "266a.v3", 0x800000, 0x400000, CRC(e8362fcc) SHA1(42d558fd80cabe22a1c09a1fa75741afbcf46b7c) )
+ ROM_LOAD( "266a.v4", 0xc00000, 0x400000, CRC(393c9a62) SHA1(0eaee0007557e59e64edcdbca229e6f776de9aef) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "266a.c1", 0x0000000, 0x800000, CRC(f2240352) SHA1(3bb6763ebbc33db172d413276213eb3f2c7093c0) )
+ ROM_LOAD16_BYTE( "266a.c2", 0x0000001, 0x800000, CRC(338a9142) SHA1(eb589b4141c394ca78c2f5eb1b510cde982f3225) )
+ ROM_LOAD16_BYTE( "266a.c3", 0x1000000, 0x800000, CRC(6233412d) SHA1(b473cddc0a4343dffc4e35df68cd1bf9b163bd64) )
+ ROM_LOAD16_BYTE( "266a.c4", 0x1000001, 0x800000, CRC(304a2d9f) SHA1(29d2e50a64476640f4bff68227d6b1fdb45530c1) )
+ ROM_LOAD16_BYTE( "266a.c5", 0x2000000, 0x800000, CRC(18382650) SHA1(df10fb0b43f0dabdc57b55e923536b6c215678ff) )
+ ROM_LOAD16_BYTE( "266a.c6", 0x2000001, 0x800000, CRC(c5e7a840) SHA1(a1336c5c1284221d0b420bb44dd7c462d3e83ca7) )
+ ROM_LOAD16_BYTE( "266a.c7", 0x3000000, 0x800000, CRC(bfaa985c) SHA1(3ff7d56d8caaa1a34d0dcbc16bfc97df4afeab48) )
+ ROM_LOAD16_BYTE( "266a.c8", 0x3000001, 0x800000, CRC(efaf3f3c) SHA1(9374eb39fe30ba679878729992f136fdce1d92fc) )
+ROM_END
+
+ROM_START( matrims07 )
+ ROM_REGION( 0xD00000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "266hc07.p1", 0x000000, 0x454F4A, CRC(977956ca) SHA1(30ab8d270cf0eb5bb77e3e72e9b33463fe0d0403) )
+ ROM_LOAD16_WORD_SWAP( "266a.p2", 0x100000, 0x400000, CRC(b0132cef) SHA1(3780db1b8947a8371a46b67ca1a14a12bf97986b) )
+
+ NEO_SFIX_128K( "266a.s1", CRC(aff2a3be) SHA1(57aba048573eacf8fbdd228f04a7f30da64cebe5) )
+
+ NEO_BIOS_AUDIO_128K( "266d.m1", CRC(d2f3742d) SHA1(dd42f8a301f07e079fbc2bfd23e788baa03ca72d) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "266a.v1", 0x000000, 0x400000, CRC(352b0a07) SHA1(19f7cc12f3f6d0fda9c7449816c4c32367447897) )
+ ROM_LOAD( "266a.v2", 0x400000, 0x400000, CRC(945f8831) SHA1(6ac9bd41e0bb33601c82ebeb2aa5b1b8b91fada1) )
+ ROM_LOAD( "266a.v3", 0x800000, 0x400000, CRC(e8362fcc) SHA1(42d558fd80cabe22a1c09a1fa75741afbcf46b7c) )
+ ROM_LOAD( "266a.v4", 0xc00000, 0x400000, CRC(393c9a62) SHA1(0eaee0007557e59e64edcdbca229e6f776de9aef) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "266a.c1", 0x0000000, 0x800000, CRC(f2240352) SHA1(3bb6763ebbc33db172d413276213eb3f2c7093c0) )
+ ROM_LOAD16_BYTE( "266a.c2", 0x0000001, 0x800000, CRC(338a9142) SHA1(eb589b4141c394ca78c2f5eb1b510cde982f3225) )
+ ROM_LOAD16_BYTE( "266a.c3", 0x1000000, 0x800000, CRC(6233412d) SHA1(b473cddc0a4343dffc4e35df68cd1bf9b163bd64) )
+ ROM_LOAD16_BYTE( "266a.c4", 0x1000001, 0x800000, CRC(304a2d9f) SHA1(29d2e50a64476640f4bff68227d6b1fdb45530c1) )
+ ROM_LOAD16_BYTE( "266a.c5", 0x2000000, 0x800000, CRC(18382650) SHA1(df10fb0b43f0dabdc57b55e923536b6c215678ff) )
+ ROM_LOAD16_BYTE( "266a.c6", 0x2000001, 0x800000, CRC(c5e7a840) SHA1(a1336c5c1284221d0b420bb44dd7c462d3e83ca7) )
+ ROM_LOAD16_BYTE( "266a.c7", 0x3000000, 0x800000, CRC(bfaa985c) SHA1(3ff7d56d8caaa1a34d0dcbc16bfc97df4afeab48) )
+ ROM_LOAD16_BYTE( "266a.c8", 0x3000001, 0x800000, CRC(efaf3f3c) SHA1(9374eb39fe30ba679878729992f136fdce1d92fc) )
+ROM_END
+
+ /****************************************
+ Neo Bomberman
+****************************************/
+
+ROM_START( neobombes01 )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "093hc01.p1", 0x000000, 0x100000, CRC(72c2a466) SHA1(63e5e43ce835e4eb30d9139bf3baa939a6dd0fab) )
+
+ NEO_SFIX_128K( "093-s1.s1", CRC(4b3fa119) SHA1(41cb0909bfb017eb6f2c530cb92a423319ed7ab1) )
+
+ NEO_BIOS_AUDIO_128K( "093-m1.m1", CRC(e81e780b) SHA1(c56c53984e0f92e180e850c60a75f550ee84917c) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "093-v1.v1", 0x000000, 0x400000, CRC(02abd4b0) SHA1(6bf33ebc9b01cd4a029f6a555694a9835e30ca1b) )
+ ROM_LOAD( "093-v2.v2", 0x400000, 0x200000, CRC(a92b8b3d) SHA1(b672c97b85d2f52eba3cb26025008ebc7a18312a) )
+
+ ROM_REGION( 0x900000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "093-c1.c1", 0x000000, 0x400000, CRC(d1f328f8) SHA1(ddf71280c2ce85225f15fe9e973f330609281878) )
+ ROM_LOAD16_BYTE( "093-c2.c2", 0x000001, 0x400000, CRC(82c49540) SHA1(5f37c1bc0d63c98a13967b44da3d2c85e6dbbe50) )
+ ROM_LOAD16_BYTE( "093-c3.c3", 0x800000, 0x080000, CRC(e37578c5) SHA1(20024caa0f09ee887a6418dd02d02a0df93786fd) )
+ ROM_LOAD16_BYTE( "093-c4.c4", 0x800001, 0x080000, CRC(59826783) SHA1(0110a2b6186cca95f75225d4d0269d61c2ad25b1) )
+ROM_END
+
+ /********************************************
+ Nightmare in the Dark
+**********************************************/
+
+ROM_START( nitds01 )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "260hc01.p1", 0x000000, 0x080000, CRC(8d765cd0) SHA1(696acdd5be849bd0c0836948b6ed52ab1961f0c0) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_512K( "260-m1.m1", CRC(6407c5e5) SHA1(d273e154cc905b63205a17a1a6d419cac3485a92) )
+
+ ROM_REGION( 0x0400000, "ymsnd", 0 )
+ ROM_LOAD( "260-v1.v1", 0x000000, 0x400000, CRC(24b0480c) SHA1(d769e621be52a5cd2e2568891b5f95a48268e1e0) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "260-c1.c1", 0x0000000, 0x800000, CRC(147b0c7f) SHA1(a647c3a2f6d146ff47521c1d39f58830601f5781) )
+ ROM_LOAD16_BYTE( "260-c2.c2", 0x0000001, 0x800000, CRC(d2b04b0d) SHA1(ce4322e6cfacb627fe997efe81018861e21d3c27) )
+ROM_END
+
+ /********************************************
+ Prehistoric Isle 2
+**********************************************/
+
+ROM_START( preisle2s01 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "255hc01.p1", 0x000000, 0x100000, CRC(0431b299) SHA1(51e7523f692f4be29c8c3b8f9fd511ca23235385) )
+ ROM_LOAD16_WORD_SWAP( "255-p2.sp2", 0x100000, 0x400000, CRC(42050b80) SHA1(0981a8295d43b264c2b95e5d7568bdda4e64c976) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "255-m1.m1", CRC(8efd4014) SHA1(5b73809b6e4e49264d281ef3e5004ac8a9de296d) )
+
+ ROM_REGION( 0x0600000, "ymsnd", 0 )
+ ROM_LOAD( "255-v1.v1", 0x000000, 0x400000, CRC(5a14543d) SHA1(7146ac748f846c7e2d5b0bdcf953892e39b648fe) )
+ ROM_LOAD( "255-v2.v2", 0x400000, 0x200000, CRC(6610d91a) SHA1(b2c6786920dc1712e88c3cc26d2c6c3ac2615bf4) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "255-c1.c1", 0x0000000, 0x800000, CRC(ea06000b) SHA1(1539b12e461fa48301190eb8171bbffff9d984b7) )
+ ROM_LOAD16_BYTE( "255-c2.c2", 0x0000001, 0x800000, CRC(04e67d79) SHA1(aadb6ee750da2c14c6eededa2218db95e051a32c) )
+ ROM_LOAD16_BYTE( "255-c3.c3", 0x1000000, 0x800000, CRC(60e31e08) SHA1(bd5b81ad9d04cdc4e0df31ac40eca305f98277eb) )
+ ROM_LOAD16_BYTE( "255-c4.c4", 0x1000001, 0x800000, CRC(40371d69) SHA1(90011ccc5672ff1b90737cf50c963e71b6217ce3) )
+ ROM_LOAD16_BYTE( "255-c5.c5", 0x2000000, 0x800000, CRC(0b2e6adf) SHA1(15c7d9aa8b1ad9a071e6fd0ef0de8a057c23b02e) )
+ ROM_LOAD16_BYTE( "255-c6.c6", 0x2000001, 0x800000, CRC(b001bdd3) SHA1(394ba8004644844ee97a120cfda48aeac685af8a) )
+ROM_END
+
+GAME( 2016, aof2s01, aof2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Art of Fighting 2 (Boss, Yumeji Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, aof2s02, aof2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Art of Fighting 2 (Description Of Unknown Origin 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, aof2s03, aof2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Art of Fighting 2 (Description Of Unknown Origin 02)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, galaxyfs01, galaxyfg, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Galaxy Fight (Add Character To Select)", MACHINE_SUPPORTS_SAVE )
+ // Voltage Fighter
+GAME( 1995, gowcaizrs01, gowcaizr, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Voltage Fighter (Description Of Unknown Origin 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, gowcaizrs02, gowcaizr, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Voltage Fighter (Description Of Unknown Origin 02)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, kabukikls01, kabukikl, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Far East of Eden - Kabuki Klash (Add Character To Select)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, kabukikls02, kabukikl, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Far East of Eden - Kabuki Klash (Boss Hacks)", MACHINE_SUPPORTS_SAVE )
+ // Karnov's Revenge
+GAME( 1994, karnovres01, karnovr, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Karnov's Revenge (Description Of Unknown Origin 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, matrims01, matrim, neogeo_noslot, neogeo, neogeo_hbmame, matrima, ROT0, "Hacks", "Matrimelee (Add Character Alpha Set 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, matrims02, matrim, neogeo_noslot, neogeo, neogeo_hbmame, matrima, ROT0, "Hacks", "Matrimelee (Add Character Alpha Set 02)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, matrims03, matrim, neogeo_noslot, neogeo, neogeo_hbmame, matrima, ROT0, "Hacks", "Matrimelee (Max Power)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, matrims04, matrim, neogeo_noslot, neogeo, neogeo_hbmame, matrima, ROT0, "Hacks", "Matrimelee (Description Of Unknown Origin 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, matrims05, matrim, neogeo_noslot, neogeo, neogeo_hbmame, matrima, ROT0, "Hacks", "Matrimelee (Description Of Unknown Origin 02)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, matrims06, matrim, neogeo_noslot, neogeo, neogeo_hbmame, matrima, ROT0, "Hacks", "Matrimelee (Super Plus + Add Character + Power)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, matrims07, matrim, neogeo_noslot, neogeo, neogeo_hbmame, matrima, ROT0, "Hacks", "Matrimelee (Description Of Unknown Origin 03)", MACHINE_SUPPORTS_SAVE )
+ // Neo Bomberman
+GAME( 2017, neobombes01, neobombe, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Neo Bomberman (Max Power)", MACHINE_SUPPORTS_SAVE )
+ // Nightmare in the Dark
+GAME( 2000, nitds01, nitd, neogeo_noslot, neogeo, neogeo_noslot_state, nitd, ROT0, "Hacks", "Nightmare in the Dark (The Versión French)", MACHINE_SUPPORTS_SAVE )
+ // Prehistoric Isle 2
+GAME( 2017, preisle2s01, preisle2, neogeo_noslot, neogeo, neogeo_noslot_state, preisle2, ROT0, "Hacks", "Prehistoric Isle 2 (Description Of Unknown Origin 01)", MACHINE_SUPPORTS_SAVE )
+
diff --git a/src/hbmame/drivers/neogeo_noslot.cpp b/src/hbmame/drivers/neogeo_noslot.cpp
new file mode 100644
index 00000000000..11fcede38c1
--- /dev/null
+++ b/src/hbmame/drivers/neogeo_noslot.cpp
@@ -0,0 +1,9212 @@
+// license:BSD-3-Clause
+// copyright-holders:Bryan McPhail,Ernesto Corvi,Andrew Prime,Zsolt Vasvari, Robbbert
+// thanks-to:Fuzz
+
+#include "emu.h"
+#include "includes/neogeo.h"
+
+
+
+static ADDRESS_MAP_START( main_map_noslot, AS_PROGRAM, 16, neogeo_state )
+ AM_RANGE(0x000000, 0x00007f) AM_READ(banked_vectors_r)
+ AM_RANGE(0x000080, 0x0fffff) AM_ROM
+ AM_IMPORT_FROM( neogeo_main_map )
+ADDRESS_MAP_END
+
+
+static MACHINE_CONFIG_DERIVED( neogeo_noslot, neogeo_arcade ) // no slot config (legacy mame)
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(main_map_noslot)
+
+ //joystick controller
+ MCFG_NEOGEO_CONTROL_EDGE_CONNECTOR_ADD("edge", neogeo_arc_edge_fixed, "joy", true)
+
+ //no mahjong controller
+ MCFG_NEOGEO_CONTROL_PORT_ADD("ctrl1", neogeo_arc_pin15, "", true)
+ MCFG_NEOGEO_CONTROL_PORT_ADD("ctrl2", neogeo_arc_pin15, "", true)
+
+ MCFG_MSLUGX_PROT_ADD("mslugx_prot")
+ MCFG_SMA_PROT_ADD("sma_prot")
+ MCFG_CMC_PROT_ADD("cmc_prot")
+ MCFG_PCM2_PROT_ADD("pcm2_prot")
+ MCFG_PVC_PROT_ADD("pvc_prot")
+ MCFG_NGBOOTLEG_PROT_ADD("bootleg_prot")
+ MCFG_KOF2002_PROT_ADD("kof2002_prot")
+ MCFG_FATFURY2_PROT_ADD("fatfury2_prot")
+ MCFG_KOF98_PROT_ADD("kof98_prot")
+ MCFG_SBP_PROT_ADD("sbp_prot")
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( neogeo_kog, neogeo_arcade )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(main_map_noslot)
+
+ //joystick controller
+ MCFG_NEOGEO_CONTROL_EDGE_CONNECTOR_ADD("edge", neogeo_arc_edge_fixed, "joy", true)
+
+ //no mahjong controller
+ MCFG_NEOGEO_CONTROL_PORT_ADD("ctrl1", neogeo_arc_pin15, "", true)
+ MCFG_NEOGEO_CONTROL_PORT_ADD("ctrl2", neogeo_arc_pin15, "", true)
+
+ MCFG_NGBOOTLEG_PROT_ADD("bootleg_prot")
+ MCFG_KOG_PROT_ADD("kog_prot")
+MACHINE_CONFIG_END
+
+// these basically correspond to the cabinets which were available in arcades:
+// with mahjong panel, with dial for Pop'n Bounce and with 4 controls for Kizuna...
+static MACHINE_CONFIG_DERIVED( neogeo_mj, neogeo_noslot )
+
+ //no joystick panel
+ MCFG_DEVICE_REMOVE("edge")
+ MCFG_NEOGEO_CONTROL_EDGE_CONNECTOR_ADD("edge", neogeo_arc_edge_fixed, "", true)
+
+ //P1 mahjong controller
+ MCFG_DEVICE_REMOVE("ctrl1")
+ MCFG_DEVICE_REMOVE("ctrl2")
+ MCFG_NEOGEO_CONTROL_PORT_ADD("ctrl1", neogeo_arc_pin15, "mahjong", true)
+ MCFG_NEOGEO_CONTROL_PORT_ADD("ctrl2", neogeo_arc_pin15, "", true)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( neogeo_dial, neogeo_noslot )
+ MCFG_DEVICE_REMOVE("edge")
+ MCFG_NEOGEO_CONTROL_EDGE_CONNECTOR_ADD("edge", neogeo_arc_edge_fixed, "dial", true)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( neogeo_imaze, neogeo_noslot )
+ MCFG_DEVICE_REMOVE("edge")
+ MCFG_NEOGEO_CONTROL_EDGE_CONNECTOR_ADD("edge", neogeo_arc_edge_fixed, "irrmaze", true)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( neogeo_kiz4p, neogeo_noslot )
+ MCFG_DEVICE_REMOVE("edge")
+ MCFG_NEOGEO_CONTROL_EDGE_CONNECTOR_ADD("edge", neogeo_arc_edge_fixed, "kiz4p", true)
+MACHINE_CONFIG_END
+
+// this is used by V-Liner, which handles differently inputs...
+static MACHINE_CONFIG_DERIVED( neogeo_noctrl, neogeo_noslot )
+ MCFG_DEVICE_REMOVE("ctrl1")
+ MCFG_DEVICE_REMOVE("ctrl2")
+MACHINE_CONFIG_END
+
+
+/*************************************
+ *
+ * Official sets
+ *
+ *************************************
+
+ About supported sets:
+ =====================
+
+ MVS carts (arcade) were released before the AES carts (home)
+ The actual codepath taken depends entirely on the BIOS rom, not the roms in the cartridge, which (with
+ a few exceptions) support both codepaths.
+
+ The initial AES releases are therefore later revisions of the game, often with bug fixes over the
+ initial MVS releases. It isn't uncommon for later production runs and bootlegs to use these newer sets,
+ so all of them are supported in MAME.
+
+ Likewise, because the MVS carts were released first (and were produced in higher numbers and generally
+ have a lower cost) it's not uncommon for AES units to operate with converted MVS carts, so, with the
+ exception of the sets that specifically lock out the AES mode* these sets are all equally suitable
+ for MESS.
+ * nitd, kof2001 (initial release has no AES code), and a number of the hacked bootlegs.
+
+ The 'MVS ONLY RELEASE' tagged sets were not officially released for the AES (home) system.
+ Information about this can be found at 'The NeoGeo Master List' (unofficial) - http://www.neo-geo.com
+ and the official NeoGeo museum - http://neogeomuseum.snkplaymore.co.jp/english/index.php
+ Several unofficial 'conversions' of these sets can be found across the internet.
+ For completeness sake: Some of these have sets have been released for the CD system.
+
+
+ M1 (sound driver) rom information:
+ ==================================
+ . Many 'M1' roms contain mirrored data (64k mirrored or 128k mirrored).
+ . Found on several early sets (ID 0001 ~ 0045) and on the last sets (ID 0267 ~ 0272).
+ . This caused some confusion and incorrect rom sizes.
+ . Minimum 'M1' size is 1mbit, maximum size 4mbit.
+ . The remaining 64k 'M1' are marked BAD_DUMP.
+
+
+ S1 (text layer) rom information:
+ ================================
+ . All 'S1' roms found on prom are 1mbit.
+ . The remainig 64k 'S1' are marked BAD_DUMP.
+
+
+ MULTI PLAY MODE:
+ ================
+ The NeoGeo has three games which support MULTI PLAY MODE (Riding Hero / League Bowling / Trash Rally).
+ This allows you to 'link' 4 games (MVS) / 2 games (AES) using in game 'Multi-Play' option. To establish
+ a link between the carts you have to connect the carts to each other by a communicator cable. The communicatior
+ cable is a regular headphone cable with stereo pin jack. It has been reported that you can also 'link' MVS <-> AES.
+
+ All three games use a special PROG board for MULTI PLAY MODE support:
+ . Riding Hero (AES - NEO-AEG PROG-HERO / MVS NEO-MVS PROG-HERO)
+ . League Bowling (AES - NEO-AEG PROG-HERO / MVS NEO-MVS PROG-HERO)
+ . Trash Rally (AES - NEO-AEG PROG42G-COM / NEO-MVS PROG42G-COM)
+
+ A HD6301V1P MCU on the above boards is used for establishing the 'link'. The MCU has a 4kb internal ROM which
+ is not dumped.
+ To use the MULTI PLAY MODE on your MVS you have to set the following hardware dips:
+ HARD DIP SETTING 4 5 6
+ CABINET 1: OFF OFF ON
+ CABINET 2: OFF ON ON
+ CABINET 3: ON OFF ON
+ CABINET 4: ON ON ON
+
+
+ SPHERO SYMPHONY:
+ ================
+ Several early games have a 'feature' called "sphero symphony". None of the games featuring "sphero symphony"
+ uses special hardware. It is something sound based, but what exactly it is (specially arragend samples,
+ FM synthesis etc.) is unknown. The AES and MVS releases share the same sound data and driver.
+
+ The AES game-inserts and manuals have an eye-shaped logo with the following text (not to be found on MVS sets):
+ sphero
+ symphony
+ STEREOPHONIC SOUND
+
+ Experience this "LIVE" 3 dimensional sound coming from all around you.
+
+ Games featuring "sphero symphony":
+ ID-0006 - Riding Hero
+ ID-0007 - Alpha Mission II / ASO II - Last Guardian
+ ID-0009 - Ninja Combat
+ ID-0010 - Cyber-Lip
+ ID-0011 - The Super Spy
+ ID-0014 - Mutation Nation
+ ID-0017 - Sengoku / Sengoku Denshou
+ ID-0018 - Burning Fight
+ ID-0020 - Ghost Pilots
+ ID-0024 - Last Resort
+ ID-0031 - Soccer Brawl
+ ID-0033 - Fatal Fury - King of Fighters / Garou Densetsu - shukumei no tatakai
+ ID-0034 - Football Frenzy
+ ID-0037 - Crossed Swords
+ ID-0038 - Thrash Rally
+ ID-0039 - King of the Monsters 2 - The Next Thing
+ ID-0041 - Baseball Stars 2
+ ID-0044 - Art of Fighting / Ryuuko no Ken
+ ID-0047 - Fatal Fury 2 / Garou Densetsu 2 - arata-naru tatakai
+ ID-0049 - Andro Dunos
+
+*/
+
+
+// Game specific input definitions
+
+static INPUT_PORTS_START( dualbios )
+ PORT_INCLUDE( neogeo )
+
+ /* the rom banking seems to be tied directly to the dipswitch */
+ PORT_MODIFY("DSW")
+ PORT_DIPNAME( 0x04, 0x00, DEF_STR( Region ) ) PORT_DIPLOCATION("SW:3") PORT_CHANGED_MEMBER(DEVICE_SELF, neogeo_state, select_bios, 0)
+ PORT_DIPSETTING( 0x00, DEF_STR( Asia ) )
+ PORT_DIPSETTING( 0x04, DEF_STR( Japan ) )
+INPUT_PORTS_END
+
+
+static INPUT_PORTS_START( mjneogeo )
+ PORT_INCLUDE( neogeo )
+
+ PORT_MODIFY("DSW")
+ PORT_DIPNAME( 0x04, 0x00, DEF_STR( Controller ) ) PORT_DIPLOCATION("SW:3")
+ PORT_DIPSETTING( 0x04, DEF_STR( Joystick ) )
+ PORT_DIPSETTING( 0x00, "Mahjong Panel" )
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( kizuna4p )
+ PORT_INCLUDE( neogeo )
+
+ PORT_MODIFY("DSW")
+ PORT_DIPNAME( 0x02, 0x00, DEF_STR( Players ) ) PORT_DIPLOCATION("SW:2")
+ PORT_DIPSETTING( 0x02, "2" )
+ PORT_DIPSETTING( 0x00, "4" )
+
+ PORT_MODIFY("SYSTEM")
+ PORT_BIT( 0x0f00, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(DEVICE_SELF, neogeo_state, kizuna4p_start_r, nullptr)
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( irrmaze )
+ PORT_INCLUDE( neogeo )
+
+ PORT_MODIFY("SYSTEM")
+ PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNUSED )
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( vliner )
+ PORT_INCLUDE( neogeo )
+
+ PORT_MODIFY("DSW")
+ PORT_BIT( 0x0f00, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("View Payout Table/Big")
+ PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Bet/Small")
+ PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Stop/Double Up")
+ PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("Start/Collect")
+
+ PORT_MODIFY("SYSTEM")
+ PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* this bit is used.. */
+ PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* this bit is used.. */
+
+ PORT_MODIFY("AUDIO/COIN")
+ PORT_BIT( 0x003f, IP_ACTIVE_LOW, IPT_UNUSED )
+
+ PORT_START("IN5")
+ PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 )
+ PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_COIN2 )
+ PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Operator Menu") PORT_CODE(KEYCODE_F1)
+ PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("Clear Credit")
+ PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("Hopper Out")
+ PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ /* not sure what any of these bits are */
+ PORT_START("IN6")
+ PORT_BIT( 0x0003, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0xffc0, IP_ACTIVE_HIGH, IPT_UNKNOWN )
+INPUT_PORTS_END
+
+
+static INPUT_PORTS_START( jockeygp )
+ PORT_INCLUDE( neogeo )
+
+ PORT_MODIFY("SYSTEM")
+ PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* game freezes with this bit enabled */
+ PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* game freezes with this bit enabled */
+INPUT_PORTS_END
+
+
+
+/****************************************
+ ID-0001
+ . NGM-001
+ NEO-MVS PROG-NAM / NEO-MVS CHA-32
+ . NGH-001
+ NEO-AEG PROG-NAM / NEO-AEG CHA-32
+****************************************/
+
+ROM_START( nam1975 ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "001-p1.p1", 0x000000, 0x080000, CRC(cc9fc951) SHA1(92f4e6ddeeb825077d92dbb70b50afea985f15c0) )
+
+ NEO_SFIX_128K( "001-s1.s1", CRC(7988ba51) SHA1(bc2f661f381b06b34ac2fa215dd5689d3bf84832) )
+
+ NEO_BIOS_AUDIO_256K( "001-m1.m1", CRC(ba874463) SHA1(a83514f4b20301f84a98699900e2593f1c1b8846) )
+
+ ROM_REGION( 0x080000, "ymsnd", 0 )
+ ROM_LOAD( "001-v11.v11", 0x000000, 0x080000, CRC(a7c3d5e5) SHA1(e3efc86940f91c53b7724c4566cfc21ea1a7a465) )
+ // AES has different label, data is the same: 001-v1.v1
+
+ ROM_REGION( 0x180000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "001-v21.v21", 0x000000, 0x080000, CRC(55e670b3) SHA1(a047049646a90b6db2d1882264df9256aa5a85e5) )
+ // AES has different label, data is the same: 001-v2.v21
+ ROM_LOAD( "001-v22.v22", 0x080000, 0x080000, CRC(ab0d8368) SHA1(404114db9f3295929080b87a5d0106b40da6223a) )
+ ROM_LOAD( "001-v23.v23", 0x100000, 0x080000, CRC(df468e28) SHA1(4e5d4a709a4737a87bba4083aeb788f657862f1a) )
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "001-c1.c1", 0x000000, 0x80000, CRC(32ea98e1) SHA1(c2fb3fb7dd14523a4b4b7fbdb81f44cb4cc48239) )
+ ROM_LOAD16_BYTE( "001-c2.c2", 0x000001, 0x80000, CRC(cbc4064c) SHA1(224c970fd060d841fd430c946ef609bb57b6d78c) )
+ ROM_LOAD16_BYTE( "001-c3.c3", 0x100000, 0x80000, CRC(0151054c) SHA1(f24fb501a7845f64833f4e5a461bcf9dc3262557) )
+ ROM_LOAD16_BYTE( "001-c4.c4", 0x100001, 0x80000, CRC(0a32570d) SHA1(f108446ec7844fde25f7a4ab454f76d384bf5e52) )
+ ROM_LOAD16_BYTE( "001-c5.c5", 0x200000, 0x80000, CRC(90b74cc2) SHA1(89898da36db259180e5261ed45eafc99ca13e504) )
+ ROM_LOAD16_BYTE( "001-c6.c6", 0x200001, 0x80000, CRC(e62bed58) SHA1(d05b2903b212a51ee131e52c761b714cb787683e) )
+ROM_END
+
+/****************************************
+ ID-0002
+ . NGM-002
+ NEO-MVS PROG-EP / NEO-MVS CHA-32
+ . NGH-002
+ NEO-AEG PROG-4A / NEO-AEG CHA-32
+****************************************/
+
+ROM_START( bstars ) /* MVS VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "002-pg.p1", 0x000000, 0x080000, CRC(c100b5f5) SHA1(4cea9f29ad67288c3eccfa4cf961ee9782e49165) )
+
+ NEO_SFIX_128K( "002-s1.s1", CRC(1a7fd0c6) SHA1(3fc701b7afddab369ddf9dedfbc5e1aaf80b8af3) )
+
+ NEO_BIOS_AUDIO_256K( "002-m1.m1", CRC(4ecaa4ee) SHA1(50abfb8eed6cb4887393089f9ccc76f306ef69b5) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "002-v11.v11", 0x000000, 0x080000, CRC(b7b925bd) SHA1(644c92fa90e74998e73714f74b1e0680ee372a07) )
+ ROM_LOAD( "002-v12.v12", 0x080000, 0x080000, CRC(329f26fc) SHA1(2c8009edc88c6b26f7be5beb2b8d260aac394ee1) )
+ ROM_LOAD( "002-v13.v13", 0x100000, 0x080000, CRC(0c39f3c8) SHA1(db8f8670639601215707d918d4fb93221460446a) )
+ ROM_LOAD( "002-v14.v14", 0x180000, 0x080000, CRC(c7e11c38) SHA1(5abf2a7877e0162c758a4dcf09f183930fa7ef24) )
+
+ ROM_REGION( 0x080000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "002-v21.v21", 0x000000, 0x080000, CRC(04a733d1) SHA1(84159368c0f6de2c3b8121227201cd3422455cf6) )
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "002-c1.c1", 0x000000, 0x080000, CRC(aaff2a45) SHA1(c91ee72d1d74514df8ec44fca703409d92158ae3) )
+ ROM_LOAD16_BYTE( "002-c2.c2", 0x000001, 0x080000, CRC(3ba0f7e4) SHA1(f023b134b9c7994f477867307d2732026033501d) )
+ ROM_LOAD16_BYTE( "002-c3.c3", 0x100000, 0x080000, CRC(96f0fdfa) SHA1(9f779a1ae46aeda54d69382b074392ade687f62f) )
+ ROM_LOAD16_BYTE( "002-c4.c4", 0x100001, 0x080000, CRC(5fd87f2f) SHA1(a5dd6f26f9485f216c2428ae1792c182beb10dbc) )
+ ROM_LOAD16_BYTE( "002-c5.c5", 0x200000, 0x080000, CRC(807ed83b) SHA1(3268e7d4602c3f55f1e0da2c80653d5ae461ef67) )
+ ROM_LOAD16_BYTE( "002-c6.c6", 0x200001, 0x080000, CRC(5a3cad41) SHA1(c620d18f4ff32ed5489c941dfc641030a54f1c14) )
+ROM_END
+
+ROM_START( bstarsh ) /* AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "002-p1.p1", 0x000000, 0x080000, CRC(3bc7790e) SHA1(50b2fffb1278151bb4849fbe1f8cb23916019815) )
+
+ NEO_SFIX_128K( "002-s1.s1", CRC(1a7fd0c6) SHA1(3fc701b7afddab369ddf9dedfbc5e1aaf80b8af3) )
+
+ NEO_BIOS_AUDIO_256K( "002-m1.m1", CRC(4ecaa4ee) SHA1(50abfb8eed6cb4887393089f9ccc76f306ef69b5) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "002-v11.v11", 0x000000, 0x080000, CRC(b7b925bd) SHA1(644c92fa90e74998e73714f74b1e0680ee372a07) )
+ ROM_LOAD( "002-v12.v12", 0x080000, 0x080000, CRC(329f26fc) SHA1(2c8009edc88c6b26f7be5beb2b8d260aac394ee1) )
+ ROM_LOAD( "002-v13.v13", 0x100000, 0x080000, CRC(0c39f3c8) SHA1(db8f8670639601215707d918d4fb93221460446a) )
+ ROM_LOAD( "002-v14.v14", 0x180000, 0x080000, CRC(c7e11c38) SHA1(5abf2a7877e0162c758a4dcf09f183930fa7ef24) )
+
+ ROM_REGION( 0x080000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "002-v21.v21", 0x000000, 0x080000, CRC(04a733d1) SHA1(84159368c0f6de2c3b8121227201cd3422455cf6) )
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "002-c1.c1", 0x000000, 0x080000, CRC(aaff2a45) SHA1(c91ee72d1d74514df8ec44fca703409d92158ae3) )
+ ROM_LOAD16_BYTE( "002-c2.c2", 0x000001, 0x080000, CRC(3ba0f7e4) SHA1(f023b134b9c7994f477867307d2732026033501d) )
+ ROM_LOAD16_BYTE( "002-c3.c3", 0x100000, 0x080000, CRC(96f0fdfa) SHA1(9f779a1ae46aeda54d69382b074392ade687f62f) )
+ ROM_LOAD16_BYTE( "002-c4.c4", 0x100001, 0x080000, CRC(5fd87f2f) SHA1(a5dd6f26f9485f216c2428ae1792c182beb10dbc) )
+ ROM_LOAD16_BYTE( "002-c5.c5", 0x200000, 0x080000, CRC(807ed83b) SHA1(3268e7d4602c3f55f1e0da2c80653d5ae461ef67) )
+ ROM_LOAD16_BYTE( "002-c6.c6", 0x200001, 0x080000, CRC(5a3cad41) SHA1(c620d18f4ff32ed5489c941dfc641030a54f1c14) )
+ROM_END
+
+/****************************************
+ ID-0003
+ . NGM-003
+ NEO-MVS PROG-EP / NEO-MVS CHA-32
+ . NGH-003
+ NEO-AEG PROG-4B / NEO-AEG CHA-32
+****************************************/
+
+ROM_START( tpgolf ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "003-p1.p1", 0x000000, 0x080000, CRC(f75549ba) SHA1(3f7bdf5e2964e921fe1dd87c51a79a1a501fc73f) )
+ ROM_LOAD16_WORD_SWAP( "003-p2.p2", 0x080000, 0x080000, CRC(b7809a8f) SHA1(1604c889592c9610668bff296de48a0d6906156d) )
+
+ NEO_SFIX_128K( "003-s1.s1", CRC(7b3eb9b1) SHA1(39cd8bad9f8bfdeb8ac681b5b79ae5aa81c8dd5f) )
+
+ NEO_BIOS_AUDIO_128K( "003-m1.m1", CRC(4cc545e6) SHA1(8e014b8cab3e5b3995756a4ea52ce49c36866377) )
+
+ ROM_REGION( 0x080000, "ymsnd", 0 )
+ ROM_LOAD( "003-v11.v11", 0x000000, 0x080000, CRC(ff97f1cb) SHA1(defa249d46ae220f7bfa70746f5202bbbcc3e5fe) )
+ // AES has different label, data is the same (also found on MVS): 003-v1.v11
+
+ ROM_REGION( 0x200000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "003-v21.v21", 0x000000, 0x080000, CRC(d34960c6) SHA1(36d5877d5e42aab943f4d693159f4f3ad8b0addc) )
+ // AES has different label, data is the same (also found on MVS): 003-v2.v21
+ ROM_LOAD( "003-v22.v22", 0x080000, 0x080000, CRC(9a5f58d4) SHA1(2b580595e1820430a36f06fd3e0e0b8f7d686889) )
+ ROM_LOAD( "003-v23.v23", 0x100000, 0x080000, CRC(30f53e54) SHA1(22461f88a56d272b78dbc23204c0c6816200532b) )
+ ROM_LOAD( "003-v24.v24", 0x180000, 0x080000, CRC(5ba0f501) SHA1(ca02937a611a2c50c9e4b54f8fd4eaea09259894) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "003-c1.c1", 0x000000, 0x80000, CRC(0315fbaf) SHA1(583c9253219c1026d81ee5e0cf5568683adc2633) )
+ ROM_LOAD16_BYTE( "003-c2.c2", 0x000001, 0x80000, CRC(b4c15d59) SHA1(b0d8ec967f9b8e5216301c10b2d36912abce6515) )
+ ROM_LOAD16_BYTE( "003-c3.c3", 0x100000, 0x80000, CRC(8ce3e8da) SHA1(bc6c49b27d498f75a0d1a8c4d0cca75e140b9efc) )
+ ROM_LOAD16_BYTE( "003-c4.c4", 0x100001, 0x80000, CRC(29725969) SHA1(f1407da84919c2b3fe0e8f1fca65934b147c86c7) )
+ ROM_LOAD16_BYTE( "003-c5.c5", 0x200000, 0x80000, CRC(9a7146da) SHA1(2fc83d13e3e9565919aab01bf2a1b028f433b547) )
+ ROM_LOAD16_BYTE( "003-c6.c6", 0x200001, 0x80000, CRC(1e63411a) SHA1(ee397e2f679042e87b37d95837af62bb95a72af9) )
+ ROM_LOAD16_BYTE( "003-c7.c7", 0x300000, 0x80000, CRC(2886710c) SHA1(1533dd935f0a8f92a0a3c47d1d2bc6d035454244) )
+ ROM_LOAD16_BYTE( "003-c8.c8", 0x300001, 0x80000, CRC(422af22d) SHA1(f67c844c34545de6ea187f5bfdf440dec8518532) )
+ROM_END
+
+/****************************************
+ ID-0004
+ . NGM-004
+ NEO-MVS PROG-EP / NEO-MVS CHA-32
+ . NGH-004
+ NEO-AEG PROG B / NEO-AEG CHA-32
+****************************************/
+
+ROM_START( mahretsu ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "004-p1.p1", 0x000000, 0x080000, CRC(fc6f53db) SHA1(64a62ca4c8fb68954e06121399c9402278bd0467) )
+
+ NEO_SFIX_128K( "004-s1.s1", CRC(2bd05a06) SHA1(876deadd4645373d82a503154eeddf18f440d743) )
+
+ NEO_BIOS_AUDIO_128K( "004-m1.m1", CRC(c71fbb3b) SHA1(59c58665b53da61352359d191a0569de5dd1f4b3) )
+
+ ROM_REGION( 0x100000, "ymsnd", 0 )
+ ROM_LOAD( "004-v11.v11", 0x000000, 0x080000, CRC(b2fb2153) SHA1(36e0cc8927b11105de40188af46f6cf532794c10) )
+ ROM_LOAD( "004-v12.v12", 0x080000, 0x080000, CRC(8503317b) SHA1(ab22f1aba1e977ab234a4f1d73dc6ed789dbeb85) )
+
+ ROM_REGION( 0x180000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "004-v21.v21", 0x000000, 0x080000, CRC(4999fb27) SHA1(2d4926a220ea21bdd5e816bb16f985fff089500a) )
+ ROM_LOAD( "004-v22.v22", 0x080000, 0x080000, CRC(776fa2a2) SHA1(e7d5a362ab7806b7b009700a435c815a20e8ec68) )
+ ROM_LOAD( "004-v23.v23", 0x100000, 0x080000, CRC(b3e7eeea) SHA1(4d1e97f380702a3a06e7f954b4caddd9c4119d8f) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "004-c1.c1", 0x000000, 0x80000, CRC(f1ae16bc) SHA1(df68feed4dcba1e1566032b01ebb7b478a1792bf) )
+ ROM_LOAD16_BYTE( "004-c2.c2", 0x000001, 0x80000, CRC(bdc13520) SHA1(2bc4c996d019a4c539f6c3188ef18089e54b7efa) )
+ ROM_LOAD16_BYTE( "004-c3.c3", 0x100000, 0x80000, CRC(9c571a37) SHA1(21388aeb92bb8e15a55a063701ca9df79e292127) )
+ ROM_LOAD16_BYTE( "004-c4.c4", 0x100001, 0x80000, CRC(7e81cb29) SHA1(5036f04df30cf6903bd1a8cc06ff6f015c24a74b) )
+ROM_END
+
+/****************************************
+ ID-0005
+ . NGM-005
+ NEO-MVS PROG-EP / NEO-MVS CHA-32
+ . NGH-005
+ NEO-AEG PROG-4B / NEO-AEG CHA-32
+****************************************/
+
+ROM_START( maglord ) /* MVS VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "005-pg1.p1", 0x000000, 0x080000, CRC(bd0a492d) SHA1(d043d3710cf2b0d2b3798008e65e4c7c3ead1af3) )
+
+ NEO_SFIX_128K( "005-s1.s1", CRC(1c5369a2) SHA1(db0dba0a7dced6c9ca929c5abda491b05d84199c) )
+
+ NEO_BIOS_AUDIO_256K( "005-m1.m1", CRC(26259f0f) SHA1(4f3e500093d61585048767dbd9fa09b3911a05d6) )
+
+ ROM_REGION( 0x080000, "ymsnd", 0 )
+ ROM_LOAD( "005-v11.v11", 0x000000, 0x080000, CRC(cc0455fd) SHA1(a8ff4270e7705e263d25ff0b301f503bccea7e59) )
+
+ ROM_REGION( 0x100000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "005-v21.v21", 0x000000, 0x080000, CRC(f94ab5b7) SHA1(2c16985102e3585e08622d8c54ac5c60425b9ff8) )
+ ROM_LOAD( "005-v22.v22", 0x080000, 0x080000, CRC(232cfd04) SHA1(61b66a9decbbd1f500a8c186615e7fd077c6861e) )
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "005-c1.c1", 0x000000, 0x80000, CRC(806aee34) SHA1(3c32a0edbbddb694495b510c13979c44b83de8bc) )
+ ROM_LOAD16_BYTE( "005-c2.c2", 0x000001, 0x80000, CRC(34aa9a86) SHA1(cec97e1ff7f91158040c629ba75742db82c4ae5e) )
+ ROM_LOAD16_BYTE( "005-c3.c3", 0x100000, 0x80000, CRC(c4c2b926) SHA1(478bfafca21f5a1338808251a06ab405e6a9e65f) )
+ ROM_LOAD16_BYTE( "005-c4.c4", 0x100001, 0x80000, CRC(9c46dcf4) SHA1(4c05f3dc25777a87578ce09a6cefb3a4cebf3266) )
+ ROM_LOAD16_BYTE( "005-c5.c5", 0x200000, 0x80000, CRC(69086dec) SHA1(7fa47f4a765948813ebf366168275dcc3c42e951) )
+ ROM_LOAD16_BYTE( "005-c6.c6", 0x200001, 0x80000, CRC(ab7ac142) SHA1(e6ad2843947d35d8e913d2666f87946c1ba7944f) )
+ROM_END
+
+ROM_START( maglordh ) /* AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "005-p1.p1", 0x000000, 0x080000, CRC(599043c5) SHA1(43f234b0f89b72b4c6050c40d9daa5c4e96b94ce) )
+
+ NEO_SFIX_128K( "005-s1.s1", CRC(1c5369a2) SHA1(db0dba0a7dced6c9ca929c5abda491b05d84199c) )
+
+ NEO_BIOS_AUDIO_256K( "005-m1.m1", CRC(26259f0f) SHA1(4f3e500093d61585048767dbd9fa09b3911a05d6) )
+
+ ROM_REGION( 0x080000, "ymsnd", 0 )
+ ROM_LOAD( "005-v11.v11", 0x000000, 0x080000, CRC(cc0455fd) SHA1(a8ff4270e7705e263d25ff0b301f503bccea7e59) )
+
+ ROM_REGION( 0x100000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "005-v21.v21", 0x000000, 0x080000, CRC(f94ab5b7) SHA1(2c16985102e3585e08622d8c54ac5c60425b9ff8) )
+ ROM_LOAD( "005-v22.v22", 0x080000, 0x080000, CRC(232cfd04) SHA1(61b66a9decbbd1f500a8c186615e7fd077c6861e) )
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "005-c1.c1", 0x000000, 0x80000, CRC(806aee34) SHA1(3c32a0edbbddb694495b510c13979c44b83de8bc) )
+ ROM_LOAD16_BYTE( "005-c2.c2", 0x000001, 0x80000, CRC(34aa9a86) SHA1(cec97e1ff7f91158040c629ba75742db82c4ae5e) )
+ ROM_LOAD16_BYTE( "005-c3.c3", 0x100000, 0x80000, CRC(c4c2b926) SHA1(478bfafca21f5a1338808251a06ab405e6a9e65f) )
+ ROM_LOAD16_BYTE( "005-c4.c4", 0x100001, 0x80000, CRC(9c46dcf4) SHA1(4c05f3dc25777a87578ce09a6cefb3a4cebf3266) )
+ ROM_LOAD16_BYTE( "005-c5.c5", 0x200000, 0x80000, CRC(69086dec) SHA1(7fa47f4a765948813ebf366168275dcc3c42e951) )
+ ROM_LOAD16_BYTE( "005-c6.c6", 0x200001, 0x80000, CRC(ab7ac142) SHA1(e6ad2843947d35d8e913d2666f87946c1ba7944f) )
+ROM_END
+
+/****************************************
+ ID-0006
+ . NGM-006
+ NEO-MVS PROG-HERO / NEO-MVS CHA-32
+ . NGH-006
+ NEO-AEG PROG-HERO / NEO-AEG CHA-32
+****************************************/
+
+ROM_START( ridhero ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "006-p1.p1", 0x000000, 0x080000, CRC(d4aaf597) SHA1(34d35b71adb5bd06f4f1b50ffd9c58ab9c440a84) )
+
+ ROM_REGION( 0x2000, "mcu", 0 ) /* Hitachi HD6301V1 MCU */
+ ROM_LOAD( "rhcom.bin", 0x0000, 0x2000, CRC(e5cd6306) SHA1(f6bbb8ae562804d67e137290c765c3589fa334c0) ) // dumped from a prototype with external ROM, not 100% confirmed as being the same on a final, or other games (lbowling, trally)
+
+ NEO_SFIX_128K( "006-s1.s1", CRC(eb5189f0) SHA1(0239c342ea62e73140a2306052f226226461a478) )
+
+ NEO_BIOS_AUDIO_256K( "006-m1.m1", CRC(92e7b4fe) SHA1(d240056cd632f92bdfaa5e0492c09aa9bd7b0471) )
+
+ ROM_REGION( 0x100000, "ymsnd", 0 )
+ ROM_LOAD( "006-v11.v11", 0x000000, 0x080000, CRC(cdf74a42) SHA1(a17106cc3f9e5c5d52b4def861c0545a98151da2) )
+ ROM_LOAD( "006-v12.v12", 0x080000, 0x080000, CRC(e2fd2371) SHA1(cc95297bee7ffbdcb24ac4daeb5307cb39a52067) )
+
+ ROM_REGION( 0x200000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "006-v21.v21", 0x000000, 0x080000, CRC(94092bce) SHA1(1a2906271fe6bc396898a756153629a5862930eb) )
+ ROM_LOAD( "006-v22.v22", 0x080000, 0x080000, CRC(4e2cd7c3) SHA1(72fb215a4f208a22a764e801186d1643d3d840ca) )
+ ROM_LOAD( "006-v23.v23", 0x100000, 0x080000, CRC(069c71ed) SHA1(f450e9f60cd6ef846dbc77993159ec6157fb64e7) )
+ ROM_LOAD( "006-v24.v24", 0x180000, 0x080000, CRC(89fbb825) SHA1(656a97c6a8832dab3a5e1577d9cd257b561cc356) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "006-c1.c1", 0x000000, 0x080000, CRC(4a5c7f78) SHA1(f8f1e6b7841c74368210d52a84307bb28f722a2d) )
+ ROM_LOAD16_BYTE( "006-c2.c2", 0x000001, 0x080000, CRC(e0b70ece) SHA1(e2b750e43cdddcea29d1c9c943a3628117a16a1b) )
+ ROM_LOAD16_BYTE( "006-c3.c3", 0x100000, 0x080000, CRC(8acff765) SHA1(11fe89b9d112d0658c9ddf40d928584de6ea9202) )
+ ROM_LOAD16_BYTE( "006-c4.c4", 0x100001, 0x080000, CRC(205e3208) SHA1(aa2acf2c6f48ffffdcc0c94ddc031acc9e4a2e68) )
+ROM_END
+
+ROM_START( ridheroh )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "006-pg1.p1", 0x000000, 0x080000, BAD_DUMP CRC(52445646) SHA1(647bb31f2f68453c1366cb6e2e867e37d1df7a54) )
+ /* Chip label p1h does not exist, renamed temporarly to pg1, marked BAD_DUMP. This needs to be verified. */
+
+ ROM_REGION( 0x2000, "mcu", 0 ) /* Hitachi HD6301V1 MCU */
+ ROM_LOAD( "rhcom.bin", 0x0000, 0x2000, CRC(e5cd6306) SHA1(f6bbb8ae562804d67e137290c765c3589fa334c0) ) // dumped from a prototype with external ROM, not 100% confirmed as being the same on a final, or other games (lbowling, trally)
+
+ NEO_SFIX_128K( "006-s1.s1", CRC(eb5189f0) SHA1(0239c342ea62e73140a2306052f226226461a478) )
+
+ NEO_BIOS_AUDIO_256K( "006-m1.m1", CRC(92e7b4fe) SHA1(d240056cd632f92bdfaa5e0492c09aa9bd7b0471) )
+
+ ROM_REGION( 0x100000, "ymsnd", 0 )
+ ROM_LOAD( "006-v11.v11", 0x000000, 0x080000, CRC(cdf74a42) SHA1(a17106cc3f9e5c5d52b4def861c0545a98151da2) )
+ ROM_LOAD( "006-v12.v12", 0x080000, 0x080000, CRC(e2fd2371) SHA1(cc95297bee7ffbdcb24ac4daeb5307cb39a52067) )
+
+ ROM_REGION( 0x200000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "006-v21.v21", 0x000000, 0x080000, CRC(94092bce) SHA1(1a2906271fe6bc396898a756153629a5862930eb) )
+ ROM_LOAD( "006-v22.v22", 0x080000, 0x080000, CRC(4e2cd7c3) SHA1(72fb215a4f208a22a764e801186d1643d3d840ca) )
+ ROM_LOAD( "006-v23.v23", 0x100000, 0x080000, CRC(069c71ed) SHA1(f450e9f60cd6ef846dbc77993159ec6157fb64e7) )
+ ROM_LOAD( "006-v24.v24", 0x180000, 0x080000, CRC(89fbb825) SHA1(656a97c6a8832dab3a5e1577d9cd257b561cc356) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "006-c1.c1", 0x000000, 0x080000, CRC(4a5c7f78) SHA1(f8f1e6b7841c74368210d52a84307bb28f722a2d) )
+ ROM_LOAD16_BYTE( "006-c2.c2", 0x000001, 0x080000, CRC(e0b70ece) SHA1(e2b750e43cdddcea29d1c9c943a3628117a16a1b) )
+ ROM_LOAD16_BYTE( "006-c3.c3", 0x100000, 0x080000, CRC(8acff765) SHA1(11fe89b9d112d0658c9ddf40d928584de6ea9202) )
+ ROM_LOAD16_BYTE( "006-c4.c4", 0x100001, 0x080000, CRC(205e3208) SHA1(aa2acf2c6f48ffffdcc0c94ddc031acc9e4a2e68) )
+ROM_END
+
+/****************************************
+ ID-0007
+ . NGM-007
+ NEO-MVS PROG42G / NEO-MVS CHA42G
+ . NGH-007
+ NEO-AEG PROG42G / NEO-AEG CHA42G
+ NEO-AEG PROG42G / NEO-AEG CHA-8M
+ . prototype
+ NEO-AEG PROG-EP / NEO-AEG CHA-EP
+****************************************/
+
+ROM_START( alpham2 ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "007-p1.p1", 0x000000, 0x080000, CRC(5b266f47) SHA1(8afbf995989f47ad93fea1f31a884afc7228b53a) )
+ ROM_LOAD16_WORD_SWAP( "007-p2.p2", 0x080000, 0x020000, CRC(eb9c1044) SHA1(65d3416dcd96663bc4e7cefe90ecb7c1eafb2dda) )
+
+ NEO_SFIX_128K( "007-s1.s1", CRC(85ec9acf) SHA1(39a11974438ad36a2cc84307151b31474c3c5518) )
+
+ NEO_BIOS_AUDIO_128K( "007-m1.m1", CRC(28dfe2cd) SHA1(1a1a99fb917c6c8db591e3be695ce03f843ee1df) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "007-v1.v1", 0x000000, 0x100000, CRC(cd5db931) SHA1(b59f9f2df29f49470312a6cd20f5669b6aaf51ff) )
+ ROM_LOAD( "007-v2.v2", 0x100000, 0x100000, CRC(63e9b574) SHA1(1ade4cd0b15c84dd4a0fb7f7abf0885eef3a3f71) )
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "007-c1.c1", 0x000000, 0x100000, CRC(8fba8ff3) SHA1(1a682292e99eb91b0edb9771c44bc5e762867e98) )
+ ROM_LOAD16_BYTE( "007-c2.c2", 0x000001, 0x100000, CRC(4dad2945) SHA1(ac85a146276537fed124bda892bb93ff549f1d93) )
+ ROM_LOAD16_BYTE( "007-c3.c3", 0x200000, 0x080000, CRC(68c2994e) SHA1(4f8dfc6e5188942e03b853a2c9f0ea6138dec791) )
+ ROM_LOAD16_BYTE( "007-c4.c4", 0x200001, 0x080000, CRC(7d588349) SHA1(a5ed789d7bbc25be5c5b2d99883b64d379c103a2) )
+ROM_END
+
+ROM_START( alpham2p ) /* early prototype - all roms were hand labeled with CRCs, dumps verified against them */ /* AES VERSION*/
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "007_p1_faac.p1", 0x000001, 0x080000, CRC(c763e52a) SHA1(b24acbac255c5ee1a2e92e77cdde6620a24081cf) )
+ ROM_LOAD16_BYTE( "007_p2_1813.p2", 0x000000, 0x080000, CRC(7a0b435c) SHA1(40e6f42a92001d9f4e51898dd7489da143b6b74b) )
+
+ NEO_SFIX_128K( "007_s1_36f1.s1", CRC(efc9ae2e) SHA1(a594826b0082fe5a13191673e8d9aa42517230f5) )
+
+ NEO_BIOS_AUDIO_128K( "007_m1_9384.m1", CRC(5976b464) SHA1(ec824567ecc3579f6d86c9d9385710cbaeef16a3) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "007_v11_1bb4.v11", 0x000000, 0x080000, CRC(18eaa9e1) SHA1(85c94d8660f8a32e4ca8e015f0bd704208482d68) )
+ ROM_LOAD( "007_v12_c8e8.v12", 0x080000, 0x080000, CRC(2487d495) SHA1(49af3c4dc6a38c5158d3641fd8f9a40041b42aa6) )
+ ROM_LOAD( "007_v13_09fa.v13", 0x100000, 0x080000, CRC(25e60f25) SHA1(d06b0df872372de38fcf90187195070ac5f8c651) )
+ ROM_LOAD( "007_v21_28c2.v21", 0x180000, 0x080000, CRC(ac44b75a) SHA1(7399a05cd4e2c7ecde4a7323d3e189255afe5fc2) )
+
+ ROM_REGION( 0x080000, "ymsnd.deltat", 0 )
+ ROM_COPY( "ymsnd", 0x180000, 0x00000, 0x80000 )
+
+ ROM_REGION( 0x400000, "sprites", 0 ) // note, ROM_LOAD32_BYTE
+ ROM_LOAD32_BYTE( "007_c1_210e.c11", 0x000000, 0x80000, CRC(24841639) SHA1(fcc2a349121dad86ffefc44b9f0e8ba616ce0d30) )
+ ROM_LOAD32_BYTE( "007_c2_29ae.c12", 0x000002, 0x80000, CRC(912763ab) SHA1(cedf26d7d85ad140399ee62813c71f35e65498d6) )
+ ROM_LOAD32_BYTE( "007_c3_c873.c13", 0x000001, 0x80000, CRC(0743bde2) SHA1(0d13ad6333909ad3cf10f9ac360f9abf191318de) )
+ ROM_LOAD32_BYTE( "007_c4_2462.c14", 0x000003, 0x80000, CRC(61240212) SHA1(dee36f6604adaeb96e0d761a7256241c066b1cd2) )
+ ROM_LOAD32_BYTE( "007_c5_5f16.c15", 0x200000, 0x80000, CRC(cf9f4c53) SHA1(f979c85f83d9f76e554c2617f85f6d4efca6799c) )
+ ROM_LOAD32_BYTE( "007_c6_8abc.c16", 0x200002, 0x80000, CRC(3d903b19) SHA1(001a8c762336b855fe1df69fe2e605d30a3f00a1) )
+ ROM_LOAD32_BYTE( "007_c7_c983.c17", 0x200001, 0x80000, CRC(e41e3875) SHA1(730aceb8a66cb33d0194b096568f053ad7dc000a) )
+ ROM_LOAD32_BYTE( "007_c8_b599.c18", 0x200003, 0x80000, CRC(4483e2cf) SHA1(47c3364f5c36ae9dc3a49fe37ca60bcee0e73314) )
+ROM_END
+
+/****************************************
+ ID-0008
+ Sun Shine (prototype) 1990 SNK / Alpha
+****************************************/
+
+/****************************************
+ ID-0009
+ . NGM-009
+ NEO-MVS PROG-EP / NEO-MVS CHA-32
+ . NGH-009
+ NEO-AEG PROG-4A / NEO-AEG CHA-32
+****************************************/
+
+ROM_START( ncombat ) /* MVS VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "009-p1.p1", 0x000000, 0x080000, CRC(b45fcfbf) SHA1(3872147dda2d1ba905d35f4571065d87b1958b4a) )
+
+ NEO_SFIX_128K( "009-s1.s1", CRC(d49afee8) SHA1(77615f12edf08ae8f1353f7a056a8f3a50d3ebdc) )
+
+ NEO_BIOS_AUDIO_128K( "009-m1.m1", CRC(b5819863) SHA1(6f2309d51531052dbf7d712993c9e35649db0d84) )
+
+ ROM_REGION( 0x180000, "ymsnd", 0 )
+ ROM_LOAD( "009-v11.v11", 0x000000, 0x080000, CRC(cf32a59c) SHA1(af5b7fcd8a4aff1307c0a1d937e5f0460c32de79) )
+ ROM_LOAD( "009-v12.v12", 0x080000, 0x080000, CRC(7b3588b7) SHA1(a4e6d9d4113ff4ce48b371f65e9187d551821d3b) )
+ ROM_LOAD( "009-v13.v13", 0x100000, 0x080000, CRC(505a01b5) SHA1(9426a4f5b31e16f74e72e61951c189a878f211c5) )
+
+ ROM_REGION( 0x080000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "009-v21.v21", 0x000000, 0x080000, CRC(365f9011) SHA1(aebd292214ab280b05ee9e759b7e9a681a099c4a) )
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "009-c1.c1", 0x000000, 0x80000, CRC(33cc838e) SHA1(c445c891c0ba4190aa0b472786150620e76df5b4) )
+ ROM_LOAD16_BYTE( "009-c2.c2", 0x000001, 0x80000, CRC(26877feb) SHA1(8f48097fb8e4757f50b6d86219122fbf4b6f87ef) )
+ ROM_LOAD16_BYTE( "009-c3.c3", 0x100000, 0x80000, CRC(3b60a05d) SHA1(0a165a17af4834876fcd634599cd2208adc9248f) )
+ ROM_LOAD16_BYTE( "009-c4.c4", 0x100001, 0x80000, CRC(39c2d039) SHA1(8ca6c3f977c43c7abba2a00a0e70f02e2a49f5f2) )
+ ROM_LOAD16_BYTE( "009-c5.c5", 0x200000, 0x80000, CRC(67a4344e) SHA1(b325f152c7b2388fc92c5826e1dc99094b9ea749) )
+ ROM_LOAD16_BYTE( "009-c6.c6", 0x200001, 0x80000, CRC(2eca8b19) SHA1(16764ef10e404325ba0a1a2ad3a4c0af287be21f) )
+ROM_END
+
+ROM_START( ncombath ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "009-pg1.p1", 0x000000, 0x080000, CRC(8e9f0add) SHA1(d0b908a86a58f2537eea73a431038f1cd74a5a2f) )
+
+ NEO_SFIX_128K( "009-s1.s1", CRC(d49afee8) SHA1(77615f12edf08ae8f1353f7a056a8f3a50d3ebdc) )
+
+ NEO_BIOS_AUDIO_128K( "009-m1.m1", CRC(b5819863) SHA1(6f2309d51531052dbf7d712993c9e35649db0d84) )
+
+ ROM_REGION( 0x180000, "ymsnd", 0 )
+ ROM_LOAD( "009-v11.v11", 0x000000, 0x080000, CRC(cf32a59c) SHA1(af5b7fcd8a4aff1307c0a1d937e5f0460c32de79) )
+ ROM_LOAD( "009-v12.v12", 0x080000, 0x080000, CRC(7b3588b7) SHA1(a4e6d9d4113ff4ce48b371f65e9187d551821d3b) )
+ ROM_LOAD( "009-v13.v13", 0x100000, 0x080000, CRC(505a01b5) SHA1(9426a4f5b31e16f74e72e61951c189a878f211c5) )
+
+ ROM_REGION( 0x080000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "009-v21.v21", 0x000000, 0x080000, CRC(365f9011) SHA1(aebd292214ab280b05ee9e759b7e9a681a099c4a) )
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "009-c1.c1", 0x000000, 0x80000, CRC(33cc838e) SHA1(c445c891c0ba4190aa0b472786150620e76df5b4) )
+ ROM_LOAD16_BYTE( "009-c2.c2", 0x000001, 0x80000, CRC(26877feb) SHA1(8f48097fb8e4757f50b6d86219122fbf4b6f87ef) )
+ ROM_LOAD16_BYTE( "009-c3.c3", 0x100000, 0x80000, CRC(3b60a05d) SHA1(0a165a17af4834876fcd634599cd2208adc9248f) )
+ ROM_LOAD16_BYTE( "009-c4.c4", 0x100001, 0x80000, CRC(39c2d039) SHA1(8ca6c3f977c43c7abba2a00a0e70f02e2a49f5f2) )
+ ROM_LOAD16_BYTE( "009-c5.c5", 0x200000, 0x80000, CRC(67a4344e) SHA1(b325f152c7b2388fc92c5826e1dc99094b9ea749) )
+ ROM_LOAD16_BYTE( "009-c6.c6", 0x200001, 0x80000, CRC(2eca8b19) SHA1(16764ef10e404325ba0a1a2ad3a4c0af287be21f) )
+ROM_END
+
+/****************************************
+ ID-0010
+ . NGM-010
+ NEO-MVS PROG-EP / NEO-MVS CHA-32
+ . NGH-010
+ NEO-AEG PROG-B / NEO-AEG CHA-32
+****************************************/
+
+ROM_START( cyberlip )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "010-p1.p1", 0x000000, 0x080000, CRC(69a6b42d) SHA1(6e7cb089de83f1d22cc4a87db5b1a94bf76fb1e8) )
+
+ NEO_SFIX_128K( "010-s1.s1", CRC(79a35264) SHA1(c2819a82adbe1f5e489496e0e03477863a5b7665) )
+
+ NEO_BIOS_AUDIO_128K( "010-m1.m1", CRC(8be3a078) SHA1(054ec6a061fcc88df1ecbb0a01611a31f37a7709) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "010-v11.v11", 0x000000, 0x080000, CRC(90224d22) SHA1(5443ee6f90d80d43194cb4b4f0e08851a59e7784) )
+ ROM_LOAD( "010-v12.v12", 0x080000, 0x080000, CRC(a0cf1834) SHA1(8df57a7941bdae7e446a6056039adb012cdde246) )
+ ROM_LOAD( "010-v13.v13", 0x100000, 0x080000, CRC(ae38bc84) SHA1(c0937b4f89b8b26c8a0e747b234f44ad6a3bf2ba) )
+ ROM_LOAD( "010-v14.v14", 0x180000, 0x080000, CRC(70899bd2) SHA1(8cf01144f0bcf59f09777175ae6b71846b09f3a1) )
+
+ ROM_REGION( 0x080000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "010-v21.v21", 0x000000, 0x080000, CRC(586f4cb2) SHA1(588460031d84c308e3353ecf714db9986425c21c) )
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "010-c1.c1", 0x000000, 0x80000, CRC(8bba5113) SHA1(70f0926409ab265da4b8632500d1d32d63cf77cf) )
+ ROM_LOAD16_BYTE( "010-c2.c2", 0x000001, 0x80000, CRC(cbf66432) SHA1(cc529640c475d08330e116ea9c5e5a28b7cd13db) )
+ ROM_LOAD16_BYTE( "010-c3.c3", 0x100000, 0x80000, CRC(e4f86efc) SHA1(fa60863d8a7ed4f21d30f91eb1936d0b8329db7a) )
+ ROM_LOAD16_BYTE( "010-c4.c4", 0x100001, 0x80000, CRC(f7be4674) SHA1(b4ad0432d4bb6d5a98e27015910343c964b73ed4) )
+ ROM_LOAD16_BYTE( "010-c5.c5", 0x200000, 0x80000, CRC(e8076da0) SHA1(3ec5cc19809dea688041a42b32c13d257576f3da) )
+ ROM_LOAD16_BYTE( "010-c6.c6", 0x200001, 0x80000, CRC(c495c567) SHA1(2f58475fbb5f1adafce027d396fb05dd71e8fb55) )
+ROM_END
+
+/****************************************
+ ID-0011
+ . NGM-011
+ NEO-MVS PROG-8MB / NEO-MVS CHA-8M
+ . NGH-011
+ NEO-AEG PROG-8MB / NEO-AEG CHA-8M
+****************************************/
+
+ROM_START( superspy ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "011-p1.p1", 0x000000, 0x080000, CRC(c7f944b5) SHA1(da7560e09187c68f1d9f7656218497b4464c56c9) )
+ ROM_LOAD16_WORD_SWAP( "sp2.p2", 0x080000, 0x020000, CRC(811a4faf) SHA1(8169dfaf79f52d80ecec402ce1b1ab9cafb7ebdd) )
+
+ NEO_SFIX_128K( "011-s1.s1", CRC(ec5fdb96) SHA1(8003028025ac7bf531e568add6ba66c02d0b7e84) )
+
+ NEO_BIOS_AUDIO_256K( "011-m1.m1", CRC(ca661f1b) SHA1(4e3cb57db716ec48487c1b070c3a55a5faf40856) )
+
+ ROM_REGION( 0x180000, "ymsnd", 0 )
+ ROM_LOAD( "011-v11.v11", 0x000000, 0x100000, CRC(5c674d5c) SHA1(d7b9beddeb247b584cea9ca6c43ec6869809b673) )
+ ROM_LOAD( "011-v12.v12", 0x100000, 0x080000, CRC(9f513d5a) SHA1(37b04962f0b8e2a74abd35c407337a6151dc4e95) )
+
+ ROM_REGION( 0x080000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "011-v21.v21", 0x000000, 0x080000, CRC(426cd040) SHA1(b2b45189837c8287223c2b8bd4df9525b72a3f16) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "011-c1.c1", 0x000000, 0x100000, CRC(cae7be57) SHA1(43b35b349594535689c358d9f324adda55e5281a) )
+ ROM_LOAD16_BYTE( "011-c2.c2", 0x000001, 0x100000, CRC(9e29d986) SHA1(b417763bad1acf76116cd56f4203c2d2677e22e5) )
+ ROM_LOAD16_BYTE( "011-c3.c3", 0x200000, 0x100000, CRC(14832ff2) SHA1(1179792d773d97d5e45e7d8f009051d362d72e24) )
+ ROM_LOAD16_BYTE( "011-c4.c4", 0x200001, 0x100000, CRC(b7f63162) SHA1(077a81b2bb0a8f17c9df6945078608f74432877a) )
+ROM_END
+
+/****************************************
+ ID-0012
+ unknown
+****************************************/
+
+/****************************************
+ ID-0013
+ unknown
+****************************************/
+
+/****************************************
+ ID-0014
+ . NGM-014
+ NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1
+ . NGH-014
+ NEO-AEG PROG42G-1 / NEO-AEG CHA42G-1
+****************************************/
+
+ROM_START( mutnat ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "014-p1.p1", 0x000000, 0x080000, CRC(6f1699c8) SHA1(87206f67a619dede7959230f9ff3701b8b78957a) )
+
+ NEO_SFIX_128K( "014-s1.s1", CRC(99419733) SHA1(b2524af8704941acc72282aa1d62fd4c93e3e822) )
+
+ NEO_BIOS_AUDIO_128K( "014-m1.m1", CRC(b6683092) SHA1(623ec7ec2915fb077bf65b4a16c815e071c25259) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "014-v1.v1", 0x000000, 0x100000, CRC(25419296) SHA1(c9fc04987c4e0875d276e1a0fb671740b6f548ad) )
+ ROM_LOAD( "014-v2.v2", 0x100000, 0x100000, CRC(0de53d5e) SHA1(467f6040da3dfb1974785e95e14c3f608a93720a) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "014-c1.c1", 0x000000, 0x100000, CRC(5e4381bf) SHA1(d429a5e09dafd2fb99495658b3652eecbf58f91b) )
+ ROM_LOAD16_BYTE( "014-c2.c2", 0x000001, 0x100000, CRC(69ba4e18) SHA1(b3369190c47771a790c7adffa958ff55d90e758b) )
+ ROM_LOAD16_BYTE( "014-c3.c3", 0x200000, 0x100000, CRC(890327d5) SHA1(47f97bf120a8480758e1f3bb8982be4c5325c036) )
+ ROM_LOAD16_BYTE( "014-c4.c4", 0x200001, 0x100000, CRC(e4002651) SHA1(17e53a5f4708866a120415bf24f3b89621ad0bcc) )
+ROM_END
+
+/****************************************
+ ID-0015
+ unknown
+****************************************/
+
+/****************************************
+ ID-0016
+ . NGM-016
+ NEO-MVS PROG42G / NEO-MVS CHA42G
+ NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1
+ . NGH-016
+ NEO-AEG PROG42G / NEO-AEG CHA42G
+ NEO-AEG PROG42G-1 / NEO-AEG CHA42G-1
+****************************************/
+
+ROM_START( kotm ) /* MVS VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "016-p1.p1", 0x000000, 0x080000, CRC(1b818731) SHA1(b98b1b33c0301fd79aac908f6b635dd00d1cb08d) )
+ ROM_LOAD16_WORD_SWAP( "016-p2.p2", 0x080000, 0x020000, CRC(12afdc2b) SHA1(3a95f5910cbb9f17e63ddece995c6e120fa2f622) )
+
+ NEO_SFIX_128K( "016-s1.s1", CRC(1a2eeeb3) SHA1(8d2b96d395020197bc59294b6b0c8d62b1d8d4dd) )
+
+ NEO_BIOS_AUDIO_128K( "016-m1.m1", CRC(9da9ca10) SHA1(88b915827d529f39c365d3e41197d5461e07a085) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "016-v1.v1", 0x000000, 0x100000, CRC(86c0a502) SHA1(7fe2db0c64aefdd14d6c36f7fcd6442591e9a014) )
+ ROM_LOAD( "016-v2.v2", 0x100000, 0x100000, CRC(5bc23ec5) SHA1(f4ff5d20587469daa026d5c812739335ce53cfdf) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "016-c1.c1", 0x000000, 0x100000, CRC(71471c25) SHA1(bc8e3fee56b33ef2bac5b4b852339d2fbcd09b7c) )
+ ROM_LOAD16_BYTE( "016-c2.c2", 0x000001, 0x100000, CRC(320db048) SHA1(d6b43834de6f5442e23ca8fb26b3a36e96790d8d) )
+ ROM_LOAD16_BYTE( "016-c3.c3", 0x200000, 0x100000, CRC(98de7995) SHA1(e33edf4d36c82196d2b474e37be180a05976f558) )
+ ROM_LOAD16_BYTE( "016-c4.c4", 0x200001, 0x100000, CRC(070506e2) SHA1(3a2ec365e1d87a9c5ce1ee9bea88402a8eef4ed7) )
+ROM_END
+
+ROM_START( kotmh ) /* AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "016-hp1.p1",0x000000, 0x080000, CRC(b774621e) SHA1(7684b2e07163aec68cd083ef1d8900f855f6cb42) )
+ ROM_LOAD16_WORD_SWAP( "016-p2.p2", 0x080000, 0x020000, CRC(12afdc2b) SHA1(3a95f5910cbb9f17e63ddece995c6e120fa2f622) )
+
+ NEO_SFIX_128K( "016-s1.s1", CRC(1a2eeeb3) SHA1(8d2b96d395020197bc59294b6b0c8d62b1d8d4dd) )
+
+ NEO_BIOS_AUDIO_128K( "016-m1.m1", CRC(9da9ca10) SHA1(88b915827d529f39c365d3e41197d5461e07a085) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "016-v1.v1", 0x000000, 0x100000, CRC(86c0a502) SHA1(7fe2db0c64aefdd14d6c36f7fcd6442591e9a014) )
+ ROM_LOAD( "016-v2.v2", 0x100000, 0x100000, CRC(5bc23ec5) SHA1(f4ff5d20587469daa026d5c812739335ce53cfdf) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "016-c1.c1", 0x000000, 0x100000, CRC(71471c25) SHA1(bc8e3fee56b33ef2bac5b4b852339d2fbcd09b7c) )
+ ROM_LOAD16_BYTE( "016-c2.c2", 0x000001, 0x100000, CRC(320db048) SHA1(d6b43834de6f5442e23ca8fb26b3a36e96790d8d) )
+ ROM_LOAD16_BYTE( "016-c3.c3", 0x200000, 0x100000, CRC(98de7995) SHA1(e33edf4d36c82196d2b474e37be180a05976f558) )
+ ROM_LOAD16_BYTE( "016-c4.c4", 0x200001, 0x100000, CRC(070506e2) SHA1(3a2ec365e1d87a9c5ce1ee9bea88402a8eef4ed7) )
+ROM_END
+
+/****************************************
+ ID-0017
+ . NGM-017
+ NEO-MVS PROG42G / NEO-MVS CHA42G
+ . NGH-017
+ NEO-AEG PROG42G / NEO-AEG CHA42G
+ NEO-AEG PRO42G-1 / NEO-AEG CHA42G-1
+****************************************/
+
+ROM_START( sengoku ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "017-p1.p1", 0x000000, 0x080000, CRC(f8a63983) SHA1(7a10ecb2f0fd8315641374c065d2602107b09e72) )
+ ROM_LOAD16_WORD_SWAP( "017-p2.p2", 0x080000, 0x020000, CRC(3024bbb3) SHA1(88892e1292dd60f35a76f9a22e623d4f0f9693cc) )
+
+ NEO_SFIX_128K( "017-s1.s1", CRC(b246204d) SHA1(73dce64c61fb5bb7e836a8e60f081bb77d80d281) )
+
+ NEO_BIOS_AUDIO_128K( "017-m1.m1", CRC(9b4f34c6) SHA1(7f3a51f47fcbaa598f5c76bc66e2c53c8dfd852d) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "017-v1.v1", 0x000000, 0x100000, CRC(23663295) SHA1(9374a5d9f3de8e6a97c11f07d8b4485ac9d55edb) )
+ ROM_LOAD( "017-v2.v2", 0x100000, 0x100000, CRC(f61e6765) SHA1(1c9b287996947319eb3d288c3d82932cf01039db) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "017-c1.c1", 0x000000, 0x100000, CRC(b4eb82a1) SHA1(79879e2ea78c07d04c88dc9a1ad59604b7a078be) )
+ ROM_LOAD16_BYTE( "017-c2.c2", 0x000001, 0x100000, CRC(d55c550d) SHA1(6110f693aa23710939c04153cf5af26493e4a03f) )
+ ROM_LOAD16_BYTE( "017-c3.c3", 0x200000, 0x100000, CRC(ed51ef65) SHA1(e8a8d86e24454948e51a75c883bc6e4091cbf820) )
+ ROM_LOAD16_BYTE( "017-c4.c4", 0x200001, 0x100000, CRC(f4f3c9cb) SHA1(8faafa89dbd0345218f71f891419d2e4e7578200) )
+ROM_END
+
+ROM_START( sengokuh ) /* AES VERSION (US) */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "017-hp1.p1", 0x000000, 0x080000, CRC(33eccae0) SHA1(000ccf9a9c73df75eeba3f2c367c3a1a9e0a3a6b) )
+ ROM_LOAD16_WORD_SWAP( "017-p2.p2", 0x080000, 0x020000, CRC(3024bbb3) SHA1(88892e1292dd60f35a76f9a22e623d4f0f9693cc) )
+
+ NEO_SFIX_128K( "017-s1.s1", CRC(b246204d) SHA1(73dce64c61fb5bb7e836a8e60f081bb77d80d281) )
+
+ NEO_BIOS_AUDIO_128K( "017-m1.m1", CRC(9b4f34c6) SHA1(7f3a51f47fcbaa598f5c76bc66e2c53c8dfd852d) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "017-v1.v1", 0x000000, 0x100000, CRC(23663295) SHA1(9374a5d9f3de8e6a97c11f07d8b4485ac9d55edb) )
+ ROM_LOAD( "017-v2.v2", 0x100000, 0x100000, CRC(f61e6765) SHA1(1c9b287996947319eb3d288c3d82932cf01039db) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "017-c1.c1", 0x000000, 0x100000, CRC(b4eb82a1) SHA1(79879e2ea78c07d04c88dc9a1ad59604b7a078be) )
+ ROM_LOAD16_BYTE( "017-c2.c2", 0x000001, 0x100000, CRC(d55c550d) SHA1(6110f693aa23710939c04153cf5af26493e4a03f) )
+ ROM_LOAD16_BYTE( "017-c3.c3", 0x200000, 0x100000, CRC(ed51ef65) SHA1(e8a8d86e24454948e51a75c883bc6e4091cbf820) )
+ ROM_LOAD16_BYTE( "017-c4.c4", 0x200001, 0x100000, CRC(f4f3c9cb) SHA1(8faafa89dbd0345218f71f891419d2e4e7578200) )
+ROM_END
+
+/****************************************
+ ID-0018
+ . NGM-018
+ NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1
+ also found on (seen several times; CHA and PROG board are 'manually patched up' with wires and resistors)
+ NEO-MVS PROG42G / NEO-MVS CHA42G
+ . NGH-018
+ NEO-AEG PROG42G / NEO-AEG CHA42G
+ . prototype
+ NEO-AEG PROG-EP / NEO-AEG CHA-EP
+****************************************/
+
+ROM_START( burningf ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "018-p1.p1", 0x000000, 0x080000, CRC(4092c8db) SHA1(df194a4ad2c35e0e18bc053ff9284183444a4666) )
+
+ NEO_SFIX_128K( "018-s1.s1", CRC(6799ea0d) SHA1(ec75ef9dfdcb0b123574fc6d81ebaaadfba32fb5) )
+
+ NEO_BIOS_AUDIO_128K( "018-m1.m1", CRC(0c939ee2) SHA1(57d580d3279e66b9fe66bbcc68529d3384a926ff) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "018-v1.v1", 0x000000, 0x100000, CRC(508c9ffc) SHA1(cd3a97a233a4585f8507116aba85884623cccdc4) )
+ ROM_LOAD( "018-v2.v2", 0x100000, 0x100000, CRC(854ef277) SHA1(4b3083b9c80620064cb44e812a787a700e32a6f3) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "018-c1.c1", 0x000000, 0x100000, CRC(25a25e9b) SHA1(3cf02d0662e190678d0530d7b7d3f425209adf83) )
+ ROM_LOAD16_BYTE( "018-c2.c2", 0x000001, 0x100000, CRC(d4378876) SHA1(45659aa1755d96b992c977042186e47fff68bba9) )
+ ROM_LOAD16_BYTE( "018-c3.c3", 0x200000, 0x100000, CRC(862b60da) SHA1(e2303eb1609f1050f0b4f46693a15e37deb176fb) )
+ ROM_LOAD16_BYTE( "018-c4.c4", 0x200001, 0x100000, CRC(e2e0aff7) SHA1(1c691c092a6e2787de4f433b0eb9252bfdaa7e16) )
+ROM_END
+
+ROM_START( burningfh ) /* AES VERSION (US) */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "018-hp1.p1", 0x000000, 0x080000, CRC(ddffcbf4) SHA1(c646c4bbdb4e9b32df76c90f582ccd69fcc9f8e7) )
+
+ NEO_SFIX_128K( "018-s1.s1", CRC(6799ea0d) SHA1(ec75ef9dfdcb0b123574fc6d81ebaaadfba32fb5) )
+
+ NEO_BIOS_AUDIO_128K( "018-m1.m1", CRC(0c939ee2) SHA1(57d580d3279e66b9fe66bbcc68529d3384a926ff) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "018-v1.v1", 0x000000, 0x100000, CRC(508c9ffc) SHA1(cd3a97a233a4585f8507116aba85884623cccdc4) )
+ ROM_LOAD( "018-v2.v2", 0x100000, 0x100000, CRC(854ef277) SHA1(4b3083b9c80620064cb44e812a787a700e32a6f3) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "018-c1.c1", 0x000000, 0x100000, CRC(25a25e9b) SHA1(3cf02d0662e190678d0530d7b7d3f425209adf83) )
+ ROM_LOAD16_BYTE( "018-c2.c2", 0x000001, 0x100000, CRC(d4378876) SHA1(45659aa1755d96b992c977042186e47fff68bba9) )
+ ROM_LOAD16_BYTE( "018-c3.c3", 0x200000, 0x100000, CRC(862b60da) SHA1(e2303eb1609f1050f0b4f46693a15e37deb176fb) )
+ ROM_LOAD16_BYTE( "018-c4.c4", 0x200001, 0x100000, CRC(e2e0aff7) SHA1(1c691c092a6e2787de4f433b0eb9252bfdaa7e16) )
+ROM_END
+
+ROM_START( burningfp ) /* early prototype - all roms were hand labeled with CRCs, dumps verified against them */ /* AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "018_p1_9397.p1", 0x000001, 0x080000, CRC(5b4032e7) SHA1(55df91dad6f484d3d49c28ab5972700bf71a8662) )
+ ROM_LOAD16_BYTE( "018_p2_e335.p2", 0x000000, 0x080000, CRC(78762f68) SHA1(12170fc6efe75cb5d32624033d3d341032c97548) )
+
+ NEO_SFIX_128K( "018_s1_9899.s1", CRC(f3d130e8) SHA1(2fdeb93f4bb2a60d391cac2822be41661b1e1795) )
+
+ NEO_BIOS_AUDIO_128K( "018_m1_4586.m1", CRC(470dd5d4) SHA1(4291811b4aefe45261a1ae3631b6999fcd74fb3f) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "018_v11_56ac.v11", 0x000000, 0x080000, CRC(dc07ea3c) SHA1(c3e71aaec44ead7ddc581565d16b90030e6db5fd) )
+ ROM_LOAD( "018_v12_db95.v12", 0x080000, 0x080000, CRC(f1ae637c) SHA1(02a4c7d4a544350a314ab7b26d8c9d3baa8f5778) )
+ ROM_LOAD( "018_v21_98dd.v21", 0x100000, 0x080000, CRC(9f3b4eda) SHA1(7f516923d04daa483b4b99c9babba66505931a34) )
+
+ ROM_REGION( 0x080000, "ymsnd.deltat", 0 )
+ ROM_COPY( "ymsnd", 0x100000, 0x00000, 0x80000 )
+
+ ROM_REGION( 0x400000, "sprites", 0 ) // note, ROM_LOAD32_BYTE
+ ROM_LOAD32_BYTE( "018_c1_ba06.c11", 0x000000, 0x80000, CRC(6569018b) SHA1(25040e0a9c2b72900100a22a2a41de5f6c339d8a) )
+ ROM_LOAD32_BYTE( "018_c2_d534.c12", 0x000002, 0x80000, CRC(6949b501) SHA1(d8ee48837faff6cc849046ee8757b2b94d440303) )
+ ROM_LOAD32_BYTE( "018_c3_9d70.c13", 0x000001, 0x80000, CRC(410f653b) SHA1(ce94667721baa7b2c318fc268e3bb9209671c9f5) )
+ ROM_LOAD32_BYTE( "018_c4_bf9d.c14", 0x000003, 0x80000, CRC(d43bf2a5) SHA1(c27985d8973611d02570f469a0d8cb4f5b63b614) )
+ ROM_LOAD32_BYTE( "018_c5_ac9d.c15", 0x200000, 0x80000, CRC(837d09d3) SHA1(d3b06931fca6123604549599544b04529ef34c53) )
+ ROM_LOAD32_BYTE( "018_c6_d2a5.c16", 0x200002, 0x80000, CRC(5fee51e7) SHA1(835c632fa12a1d5b4104cd80b8f686ac80b314a1) )
+ ROM_LOAD32_BYTE( "018_c7_d568.c17", 0x200001, 0x80000, CRC(0f3f0823) SHA1(ec1d681c1795de43d20f30f85956e2473ec39c95) )
+ ROM_LOAD32_BYTE( "018_c8_d256.c18", 0x200003, 0x80000, CRC(67cc9e34) SHA1(dc72a464c1456a4d2f7b992b416a984fb7885e99) )
+ROM_END
+
+/****************************************
+ ID-0019
+ . NGM-019
+ NEO-MVS PROG-HERO / NEO-MVS CHA-32
+ . NGH-019
+ NEO-AEG PROG-HERO / NEO-AEG CHA-32
+****************************************/
+
+ROM_START( lbowling ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "019-p1.p1", 0x000000, 0x080000, CRC(a2de8445) SHA1(893d7ae72b4644123469de143fa35fac1cbcd61e) )
+
+ ROM_REGION( 0x1000, "mcu", 0 ) /* Hitachi HD6301V1 MCU */
+ ROM_LOAD( "hd6301v1p.com", 0x0000, 0x1000, NO_DUMP )
+
+ NEO_SFIX_128K( "019-s1.s1", CRC(5fcdc0ed) SHA1(86415077e7adc3ba6153eeb4fb0c62cf36e903fa) )
+
+ NEO_BIOS_AUDIO_128K( "019-m1.m1", CRC(d568c17d) SHA1(a2e318ed6ad1809c79f3f0853d75e0dd1a2f275c) )
+
+ ROM_REGION( 0x100000, "ymsnd", 0 )
+ ROM_LOAD( "019-v11.v11", 0x000000, 0x080000, CRC(0fb74872) SHA1(38c555926c77576d63472bc075210c42e9ce13a3) )
+ ROM_LOAD( "019-v12.v12", 0x080000, 0x080000, CRC(029faa57) SHA1(7bbaa87e38929ab1e32df5f6a2ec0fd5001e7cdb) )
+
+ ROM_REGION( 0x080000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "019-v21.v21", 0x000000, 0x080000, CRC(2efd5ada) SHA1(8ba70f5f665d566824333075227d9bce1253b8d8) )
+
+ ROM_REGION( 0x100000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "019-c1.c1", 0x000000, 0x080000, CRC(4ccdef18) SHA1(5011e30ec235d0b0a5a513a11d4275777e61acdb) )
+ ROM_LOAD16_BYTE( "019-c2.c2", 0x000001, 0x080000, CRC(d4dd0802) SHA1(82069752028c118d42384a95befde45844f0f247) )
+ROM_END
+
+/****************************************
+ ID-0020
+ . NGM-020
+ NEO-MVS PROG8M42 / NEO-MVS CHA-8M
+ . NGH-020
+ NEO-AEG PROG8M42 / NEO-AEG CHA-8M
+****************************************/
+
+ROM_START( gpilots ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "020-p1.p1", 0x000000, 0x080000, CRC(e6f2fe64) SHA1(50ab82517e077727d97668a4df2b9b96d2e78ab6) )
+ ROM_LOAD16_WORD_SWAP( "020-p2.p2", 0x080000, 0x020000, CRC(edcb22ac) SHA1(505d2db38ae999b7d436e8f2ff56b81796d62b54) )
+
+ NEO_SFIX_128K( "020-s1.s1", CRC(a6d83d53) SHA1(9a8c092f89521cc0b27a385aa72e29cbaca926c5) )
+
+ NEO_BIOS_AUDIO_128K( "020-m1.m1", CRC(48409377) SHA1(0e212d2c76856a90b2c2fdff675239525972ac43) )
+
+ ROM_REGION( 0x180000, "ymsnd", 0 )
+ ROM_LOAD( "020-v11.v11", 0x000000, 0x100000, CRC(1b526c8b) SHA1(2801868d2badcf8aaf5d490e010e4049d81d7bc1) )
+ ROM_LOAD( "020-v12.v12", 0x100000, 0x080000, CRC(4a9e6f03) SHA1(d3ac11f333b03d8a318921bdaefb14598e289a14) )
+
+ ROM_REGION( 0x080000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "020-v21.v21", 0x000000, 0x080000, CRC(7abf113d) SHA1(5b2a0e70f2eaf4638b44702dacd4cb17838fb1d5) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "020-c1.c1", 0x000000, 0x100000, CRC(bd6fe78e) SHA1(50b704862cd79d64fa488e621b079f6e413c33bc) )
+ ROM_LOAD16_BYTE( "020-c2.c2", 0x000001, 0x100000, CRC(5f4a925c) SHA1(71c5ef8141234daaa7025427a6c65e79766973a5) )
+ ROM_LOAD16_BYTE( "020-c3.c3", 0x200000, 0x100000, CRC(d1e42fd0) SHA1(f0d476aebbdc2ce008f5f0783be86d295b24aa44) )
+ ROM_LOAD16_BYTE( "020-c4.c4", 0x200001, 0x100000, CRC(edde439b) SHA1(79be7b10ecdab54c2f77062b8f5fda0e299fa982) )
+ROM_END
+
+ROM_START( gpilotsh ) /* AES VERSION (US) */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "020-hp1.p1", 0x000000, 0x080000, CRC(7cdb01ce) SHA1(32cae2ddf5e26fb7e8a09132e600220db82df3b8) )
+ ROM_LOAD16_WORD_SWAP( "020-p2.p2", 0x080000, 0x020000, CRC(edcb22ac) SHA1(505d2db38ae999b7d436e8f2ff56b81796d62b54) )
+
+ NEO_SFIX_128K( "020-s1.s1", CRC(a6d83d53) SHA1(9a8c092f89521cc0b27a385aa72e29cbaca926c5) )
+
+ NEO_BIOS_AUDIO_128K( "020-m1.m1", CRC(48409377) SHA1(0e212d2c76856a90b2c2fdff675239525972ac43) )
+
+ ROM_REGION( 0x180000, "ymsnd", 0 )
+ ROM_LOAD( "020-v11.v11", 0x000000, 0x100000, CRC(1b526c8b) SHA1(2801868d2badcf8aaf5d490e010e4049d81d7bc1) )
+ ROM_LOAD( "020-v12.v12", 0x100000, 0x080000, CRC(4a9e6f03) SHA1(d3ac11f333b03d8a318921bdaefb14598e289a14) )
+
+ ROM_REGION( 0x080000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "020-v21.v21", 0x000000, 0x080000, CRC(7abf113d) SHA1(5b2a0e70f2eaf4638b44702dacd4cb17838fb1d5) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "020-c1.c1", 0x000000, 0x100000, CRC(bd6fe78e) SHA1(50b704862cd79d64fa488e621b079f6e413c33bc) )
+ ROM_LOAD16_BYTE( "020-c2.c2", 0x000001, 0x100000, CRC(5f4a925c) SHA1(71c5ef8141234daaa7025427a6c65e79766973a5) )
+ ROM_LOAD16_BYTE( "020-c3.c3", 0x200000, 0x100000, CRC(d1e42fd0) SHA1(f0d476aebbdc2ce008f5f0783be86d295b24aa44) )
+ ROM_LOAD16_BYTE( "020-c4.c4", 0x200001, 0x100000, CRC(edde439b) SHA1(79be7b10ecdab54c2f77062b8f5fda0e299fa982) )
+ROM_END
+
+/****************************************
+ ID-0021
+ . NGM-021
+ NEO-MVS PROG-EP / NEO-MVS CHA-32
+ . NGH-021
+ NEO-AEG PROG B / NEO-AEG CHA-32
+****************************************/
+
+ROM_START( joyjoy ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "021-p1.p1", 0x000000, 0x080000, CRC(39c3478f) SHA1(06ebe54c9c4e14c5c31e770013d58b7162359ecc) )
+
+ NEO_SFIX_128K( "021-s1.s1", CRC(6956d778) SHA1(e3757776d60dc07d8e07c9ca61b223b14732f860) )
+
+ NEO_BIOS_AUDIO_256K( "021-m1.m1", CRC(5a4be5e8) SHA1(552f025ce0d51c25f42e1a81cf0d08376ca5475d) )
+
+ ROM_REGION( 0x080000, "ymsnd", 0 )
+ ROM_LOAD( "021-v11.v11", 0x000000, 0x080000, CRC(66c1e5c4) SHA1(7e85420021d4c39c36ed75a1cec567c5610ffce0) )
+
+ ROM_REGION( 0x080000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "021-v21.v21", 0x000000, 0x080000, CRC(8ed20a86) SHA1(d15cba5eac19ea56fdd4877541f1bb3eb755ebba) )
+
+ ROM_REGION( 0x100000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "021-c1.c1", 0x000000, 0x080000, CRC(509250ec) SHA1(d6ddb16d8222088f153a85a905bcb99541a5f2cf) )
+ ROM_LOAD16_BYTE( "021-c2.c2", 0x000001, 0x080000, CRC(09ed5258) SHA1(6bf50cd10236e29146b49e714a0e0ebcfe30a682) )
+ROM_END
+
+/****************************************
+ ID-0022
+ . ALM-001
+ NEO-MVS PROG8M42 / NEO-MVS CHA-8M
+ . ALH-001
+ NEO-AEG PROG 8M42 / NEO-AEG CHA-8M
+****************************************/
+
+ROM_START( bjourney ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "022-p1.p1", 0x000000, 0x100000, CRC(6a2f6d4a) SHA1(b8ca548e56f1c7abcdce415ba7329e0cf698ee13) )
+
+ NEO_SFIX_128K( "022-s1.s1", CRC(843c3624) SHA1(dbdf86c193b7c1d795f8c21f2c103c1d3e18abbe) )
+
+ NEO_BIOS_AUDIO_128K( "022-m1.m1", CRC(8e1d4ab6) SHA1(deabc11ab81e7e68a3e041c03a127ae28d0d7264) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "022-v11.v11", 0x000000, 0x100000, CRC(2cb4ad91) SHA1(169ec7303c4275155a66a88cc08270c24132bb36) )
+ ROM_LOAD( "022-v22.v22", 0x100000, 0x100000, CRC(65a54d13) SHA1(a591fbcedca8f679dacbebcd554e3aa3fd163e92) )
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "022-c1.c1", 0x000000, 0x100000, CRC(4d47a48c) SHA1(6e282285be72583d828e7765b1c1695ecdc44777) )
+ ROM_LOAD16_BYTE( "022-c2.c2", 0x000001, 0x100000, CRC(e8c1491a) SHA1(c468d2556b3de095aaa05edd1bc16d71303e9478) )
+ ROM_LOAD16_BYTE( "022-c3.c3", 0x200000, 0x080000, CRC(66e69753) SHA1(974b823fc62236fbc23e727f25b61a805a707a9e) )
+ ROM_LOAD16_BYTE( "022-c4.c4", 0x200001, 0x080000, CRC(71bfd48a) SHA1(47288be69e6992d09ebef108b4de9ffab6293dc8) )
+ROM_END
+
+/****************************************
+ ID-0023
+ . NGM-023
+ NEO-MVS PROG42G / NEO-MVS CHA42G
+ NEO-MVS PROGTOP / NEO-MVS CHA-256
+ Boards used for the Korean release
+ . NGH-023
+ NEO-AEG PROG42G-1 / NEO-AEG CHA42G-1
+****************************************/
+
+ROM_START( quizdais ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "023-p1.p1", 0x000000, 0x100000, CRC(c488fda3) SHA1(4cdf2f1837fffd720efef42f81f933bdf2ef1402) )
+
+ NEO_SFIX_128K( "023-s1.s1", CRC(ac31818a) SHA1(93c8d67a93606a2e02f12ca4cab849dc3f3de286) )
+
+ NEO_BIOS_AUDIO_128K( "023-m1.m1", CRC(2a2105e0) SHA1(26fc13556fda2dbeb7b5b035abd994e302dc7662) )
+
+ ROM_REGION( 0x100000, "ymsnd", 0 )
+ ROM_LOAD( "023-v1.v1", 0x000000, 0x100000, CRC(a53e5bd3) SHA1(cf115c6478ce155d889e6a5acb962339e08e024b) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "023-c1.c1", 0x000000, 0x100000, CRC(2999535a) SHA1(0deabf771039987b559edc2444eea741bd7ba861) )
+ ROM_LOAD16_BYTE( "023-c2.c2", 0x000001, 0x100000, CRC(876a99e6) SHA1(8d1dcfc0927d7523f8be8203573192406ec654b4) )
+ROM_END
+
+ROM_START( quizdaisk ) /* KOREAN VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "123-p1.p1", 0x000000, 0x100000, CRC(a6f35eae) SHA1(edd3fd5ba8eae2231e2b0a6605fa00e5c6de094a) )
+
+ NEO_SFIX_128K( "123-s1.s1", CRC(53de938a) SHA1(5024fee3b245f8a069d7ecfa6f033b70ed1a5fce) )
+
+ NEO_BIOS_AUDIO_128K( "123-m1.m1", CRC(d67f53f9) SHA1(73a1bd175ae29dd957a907a046884f8715bd0a34) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "123-v1.v1", 0x000000, 0x200000, CRC(986f4af9) SHA1(9e15d2142ec5e5d076582dc1cecfd724b0924f54) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "123-c1.c1", 0x000000, 0x100000, CRC(e579a606) SHA1(b9430ec157902f0707e5d52e69bd5d93792e7118) )
+ ROM_LOAD16_BYTE( "123-c2.c2", 0x000001, 0x100000, CRC(e182c837) SHA1(a8f7648bf21ebd3efe3a49606b53220815a60d0f) )
+ROM_END
+
+/****************************************
+ ID-0024
+ . NGM-024
+ NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1
+ . NGH-024
+
+ . prototype
+ NEO-MVS PROG-EP / NEO-MVS CHA-EPG
+****************************************/
+
+ROM_START( lresort )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "024-p1.p1", 0x000000, 0x080000, CRC(89c4ab97) SHA1(3a1817c427185ea1b44fe52f009c00b0a9007c85) )
+
+ NEO_SFIX_128K( "024-s1.s1", CRC(5cef5cc6) SHA1(9ec305007bdb356e9f8f279beae5e2bcb3f2cf7b) )
+
+ NEO_BIOS_AUDIO_128K( "024-m1.m1", CRC(cec19742) SHA1(ab6c6ba7737e68d2420a0617719c6d4c89039c45) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "024-v1.v1", 0x000000, 0x100000, CRC(efdfa063) SHA1(e4609ecbcc1c820758f229da5145f51285b50555) )
+ ROM_LOAD( "024-v2.v2", 0x100000, 0x100000, CRC(3c7997c0) SHA1(8cb7e8e69892b19d318978370dbc510d51b06a69) )
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "024-c1.c1", 0x000000, 0x100000, CRC(3617c2dc) SHA1(8de2643a618272f8aa1c705363edb007f4a5f5b7) )
+ ROM_LOAD16_BYTE( "024-c2.c2", 0x000001, 0x100000, CRC(3f0a7fd8) SHA1(d0c9c7a9dde9ce175fb243d33ec11fa719d0158c) )
+ ROM_LOAD16_BYTE( "024-c3.c3", 0x200000, 0x080000, CRC(e9f745f8) SHA1(bbe6141da28b0db7bf5cf321d69b7e613e2414d7) )
+ ROM_LOAD16_BYTE( "024-c4.c4", 0x200001, 0x080000, CRC(7382fefb) SHA1(e916dec5bb5462eb9ae9711f08c7388937abb980) )
+ROM_END
+
+ROM_START( lresortp ) /* prototype - all roms were hand labeled with CRCs */ /* MVS VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "024_p1_5937.podd", 0x000001, 0x080000, CRC(8e6008ee) SHA1(6779663118782207156dc9fa9e24e81e30c6391c) )
+ ROM_LOAD16_BYTE( "024_p2_8d37.peven", 0x000000, 0x080000, CRC(6d9ee90f) SHA1(ecd42182988092417bc96db8301ea408e47735f2) )
+
+ NEO_SFIX_128K( "024_s1_22fe.s1", CRC(5cef5cc6) SHA1(9ec305007bdb356e9f8f279beae5e2bcb3f2cf7b) )
+
+ NEO_BIOS_AUDIO_128K( "024_m1_fc7a.m1", CRC(22122875) SHA1(540c21559163381467679f836cb068adaf526659) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "024_v11_b085.v11", 0x000000, 0x080000, CRC(0722da38) SHA1(66a9b463d5277908b3a01c03de82b3de9118f2cb) ) // 024_v11_b085.bin 024-v1.v1 [1/2] IDENTICAL
+ ROM_LOAD( "024_v12_d3b7.v12", 0x080000, 0x080000, CRC(670ce3ec) SHA1(9004aa85d4a9b0ecf9cf9357b073ed55a98fdb02) ) // 024_v12_d3b7.bin 024-v1.v1 [2/2] IDENTICAL
+ ROM_LOAD( "024_v13_a31e.v13", 0x100000, 0x080000, CRC(2e39462b) SHA1(b0a9b1a3377bf0369f3020192505c46ca52927d6) ) // 024_v13_a31e.bin 024-v2.v2 [1/2] IDENTICAL
+ ROM_LOAD( "024_v24_2f0f.v24", 0x180000, 0x080000, CRC(7944754f) SHA1(d42a46c5127c6c62041ebffb0007af8a24abd360) ) // 024_v24_2f0f.bin 024-v2.v2 [2/2] IDENTICAL
+
+ ROM_REGION( 0x400000, "sprites", 0 ) // note, ROM_LOAD32_BYTE
+ ROM_LOAD32_BYTE( "024_c1_b764.c1", 0x000000, 0x80000, CRC(677749ec) SHA1(6f94675e037956a380652ab1056e6f1dec605bec) )
+ ROM_LOAD32_BYTE( "024_c2_1951.c2", 0x000002, 0x80000, CRC(104d7b59) SHA1(404e8776ee8df4ca282eb7b747759af8628ddca1) )
+ ROM_LOAD32_BYTE( "024_c3_0f63.c3", 0x000001, 0x80000, CRC(b0965a74) SHA1(e8026dd4f722ccab9c913261d09ab8843ef56a0e) )
+ ROM_LOAD32_BYTE( "024_c4_c5b5.c4", 0x000003, 0x80000, CRC(dcfc3860) SHA1(8443b455ae8de656adab57f3b7e68919f22d3b9d) )
+ ROM_LOAD32_BYTE( "024_c5_dd03.c5", 0x200000, 0x80000, CRC(50322397) SHA1(3308fbe48ad165b9894a52fc3a8d9898bbbc0c0e) )
+ ROM_LOAD32_BYTE( "024_c6_c81a.c6", 0x200002, 0x80000, CRC(c3c93894) SHA1(f23b9d7e2b54d44c96370dde282bdf45cebd9cba) )
+ ROM_LOAD32_BYTE( "024_c7_5edc.c7", 0x200001, 0x80000, CRC(21faf72b) SHA1(00bf257b06180ae6ede57744cea6257b3488d9f0) )
+ ROM_LOAD32_BYTE( "024_c8_0850.c8", 0x200003, 0x80000, CRC(fb57217b) SHA1(607a98da754e8b1dd94a6432b21a36cc38e06a0f) )
+ROM_END
+
+
+/****************************************
+ ID-0025
+ . NGM-025
+ NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1
+ . NGH-025
+ NEO-AEG PROG42G / NEO-AEG CHA42G
+****************************************/
+
+ROM_START( eightman ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "025-p1.p1", 0x000000, 0x080000, CRC(43344cb0) SHA1(29dfd699f35b0a74e20fedd6c9174c289f0ef6e0) )
+
+ NEO_SFIX_128K( "025-s1.s1", CRC(a402202b) SHA1(75c44e1af459af155f5b892fd18706268dd5e602) )
+
+ NEO_BIOS_AUDIO_128K( "025-m1.m1", CRC(9927034c) SHA1(205665361c5b2ab4f01ec480dd3c9b69db858d09) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "025-v1.v1", 0x000000, 0x100000, CRC(4558558a) SHA1(a4b277703ed67225c652be0d618daeca65a27b88) )
+ ROM_LOAD( "025-v2.v2", 0x100000, 0x100000, CRC(c5e052e9) SHA1(fa1119c90ce4c706a6aa0c17d7bc06aa3068d9b2) )
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "025-c1.c1", 0x000000, 0x100000, CRC(555e16a4) SHA1(1c96f3d2fd0991680fbf627a6cdd26ad2cd60319) )
+ ROM_LOAD16_BYTE( "025-c2.c2", 0x000001, 0x100000, CRC(e1ee51c3) SHA1(da8d074bb4e923ed7b8a154fd31b42f2d65b8e96) )
+ ROM_LOAD16_BYTE( "025-c3.c3", 0x200000, 0x080000, CRC(0923d5b0) SHA1(ab72ba1e3ebf56dd356f9ad181f986b1360a1089) )
+ ROM_LOAD16_BYTE( "025-c4.c4", 0x200001, 0x080000, CRC(e3eca67b) SHA1(88154cbc1a261c2f425430119ebc08a30adc9675) )
+ROM_END
+
+/****************************************
+ ID-0026
+ Fun Fun Brothers (prototype) 1991 Alpha
+****************************************/
+
+/****************************************
+ ID-0027
+ . MOM-001
+ NEO-MVS PROG-8MB / NEO-MVS CHA-8M
+ . MOH-001
+ NEO-AEG PROG-8MB / NEO-AEG CHA-8M
+****************************************/
+
+ROM_START( minasan ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "027-p1.p1", 0x000000, 0x080000, CRC(c8381327) SHA1(c8f8be0ba276c6d12ef13d05af3cf83a2b924894) )
+
+ NEO_SFIX_128K( "027-s1.s1", CRC(e5824baa) SHA1(8230ff7fe3cabeacecc762d90a084e893db84906) )
+
+ NEO_BIOS_AUDIO_128K( "027-m1.m1", CRC(add5a226) SHA1(99995bef2584abbba16777bac52f55523f7aa97d) )
+
+ ROM_DEFAULT_BIOS( "japan" ) /* so the mahjong panel will work in the service menu */
+
+ ROM_REGION( 0x100000, "ymsnd", 0 )
+ ROM_LOAD( "027-v11.v11", 0x000000, 0x100000, CRC(59ad4459) SHA1(bbb8ba8a8e337dd2946eefda4757e80d0547d54a) )
+
+ ROM_REGION( 0x100000, "ymsnd.deltat", 0 )
+ ROM_LOAD( "027-v21.v21", 0x000000, 0x100000, CRC(df5b4eeb) SHA1(134f3bcc3bb82e2a5711496af1019f343f9c0f7e) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "027-c1.c1", 0x000000, 0x100000, CRC(d0086f94) SHA1(7d6579530ccb5188f653be69b1df17e47e40e7a6) )
+ ROM_LOAD16_BYTE( "027-c2.c2", 0x000001, 0x100000, CRC(da61f5a6) SHA1(82c5b4e5c5c5e30a3fd1c2e11c6157f39d033c42) )
+ ROM_LOAD16_BYTE( "027-c3.c3", 0x200000, 0x100000, CRC(08df1228) SHA1(288b7ad328c2249f28d17df4dad3584995dca7bf) )
+ ROM_LOAD16_BYTE( "027-c4.c4", 0x200001, 0x100000, CRC(54e87696) SHA1(90816dc86be3983dc57f56ededf7738475c0c61e) )
+ROM_END
+
+/****************************************
+ ID-0028
+ Dunk Star (prototype) 1991 Sammy
+****************************************/
+
+/****************************************
+ ID-0029
+ . ??M-029
+ NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1
+ . ??H-029
+****************************************/
+
+ROM_START( legendos )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "029-p1.p1", 0x000000, 0x080000, CRC(9d563f19) SHA1(9bff7bf9fdcf81a0a6c4ce3e196097d4f05e67b6) )
+
+ NEO_SFIX_128K( "029-s1.s1", CRC(bcd502f0) SHA1(a3400f52c037aa6a42e59e602cc24fa45fcbc951) )
+
+ NEO_BIOS_AUDIO_128K( "029-m1.m1", CRC(6f2843f0) SHA1(975fb1598b87a2798fff05e951fca2e2e0329e79) )
+
+ ROM_REGION( 0x100000, "ymsnd", 0 )
+ ROM_LOAD( "029-v1.v1", 0x000000, 0x100000, CRC(85065452) SHA1(7154b7c59b16c32753ac6b5790fb50b51ce30a20) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "029-c1.c1", 0x000000, 0x100000, CRC(2f5ab875) SHA1(3e060973bba41a6c22ff7054104bdc5eee1fa13a) )
+ ROM_LOAD16_BYTE( "029-c2.c2", 0x000001, 0x100000, CRC(318b2711) SHA1(7014110cee98280317e1189f306ca40652b61f6f) )
+ ROM_LOAD16_BYTE( "029-c3.c3", 0x200000, 0x100000, CRC(6bc52cb2) SHA1(14323a4664b7dcbcde82e594168e535d7a921e44) )
+ ROM_LOAD16_BYTE( "029-c4.c4", 0x200001, 0x100000, CRC(37ef298c) SHA1(7a0c4c896dc3e730e06dcadbf00cf354f08a4466) )
+ROM_END
+
+/****************************************
+ ID-0030
+ . NGM-030
+ NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1
+ . NGH-030
+ NEO-AEG PROG42G-1 / NEO-AEG CHA42G-1
+ NEO-AEG PROG42G / NEO-AEG CHA42G
+****************************************/
+
+ROM_START( 2020bb )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "030-p1.p1", 0x000000, 0x080000, CRC(d396c9cb) SHA1(47ba421d14d05b965a8d44e7475b227a208e5a07) )
+ /* also found AES set with p1 label 030-P1 on TC534200 on NEO-AEG PROG42G and m1 label 030-M1 on TC531001 on NEO-AEG CHA42G; other chip labels are the same */
+
+ NEO_SFIX_128K( "030-s1.s1", CRC(7015b8fc) SHA1(8c09bc3e6c62e0f7c9557c1e10c901be325bae7f) )
+
+ NEO_BIOS_AUDIO_128K( "030-m1.m1", CRC(4cf466ec) SHA1(6a003b53c7a4af9d7529e2c10f27ffc4e58dcda5) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "030-v1.v1", 0x000000, 0x100000, CRC(d4ca364e) SHA1(b0573744b0ea2ef1e2167a225f0d254883f5af04) )
+ ROM_LOAD( "030-v2.v2", 0x100000, 0x100000, CRC(54994455) SHA1(76eb62b86e8ed51a77f44313d5cc8091b3f58d57) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "030-c1.c1", 0x000000, 0x100000, CRC(4f5e19bd) SHA1(ef7975c4b33a7aea4a25a385f604799f054d3200) )
+ ROM_LOAD16_BYTE( "030-c2.c2", 0x000001, 0x100000, CRC(d6314bf0) SHA1(0920cc580d7997fcb0170dd619af2f305d635577) )
+ ROM_LOAD16_BYTE( "030-c3.c3", 0x200000, 0x100000, CRC(47fddfee) SHA1(297c505a63448c999a2510c27bf4549102134db8) )
+ ROM_LOAD16_BYTE( "030-c4.c4", 0x200001, 0x100000, CRC(780d1c4e) SHA1(2e2cf9de828e3b48642dd2203637103438c62142) )
+ROM_END
+
+ROM_START( 2020bba ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "030-epr.p1", 0x000000, 0x080000, CRC(c59be3dd) SHA1(4fbd462c1c18e85a252c58b04b54fd3b82b46cb0) )
+ /* P1 on eprom, correct chip label unknown */
+
+ NEO_SFIX_128K( "030-s1.s1", CRC(7015b8fc) SHA1(8c09bc3e6c62e0f7c9557c1e10c901be325bae7f) )
+
+ NEO_BIOS_AUDIO_128K( "030-m1.m1", CRC(4cf466ec) SHA1(6a003b53c7a4af9d7529e2c10f27ffc4e58dcda5) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "030-v1.v1", 0x000000, 0x100000, CRC(d4ca364e) SHA1(b0573744b0ea2ef1e2167a225f0d254883f5af04) )
+ ROM_LOAD( "030-v2.v2", 0x100000, 0x100000, CRC(54994455) SHA1(76eb62b86e8ed51a77f44313d5cc8091b3f58d57) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "030-c1.c1", 0x000000, 0x100000, CRC(4f5e19bd) SHA1(ef7975c4b33a7aea4a25a385f604799f054d3200) )
+ ROM_LOAD16_BYTE( "030-c2.c2", 0x000001, 0x100000, CRC(d6314bf0) SHA1(0920cc580d7997fcb0170dd619af2f305d635577) )
+ ROM_LOAD16_BYTE( "030-c3.c3", 0x200000, 0x100000, CRC(47fddfee) SHA1(297c505a63448c999a2510c27bf4549102134db8) )
+ ROM_LOAD16_BYTE( "030-c4.c4", 0x200001, 0x100000, CRC(780d1c4e) SHA1(2e2cf9de828e3b48642dd2203637103438c62142) )
+ROM_END
+
+ROM_START( 2020bbh )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "030-pg1.p1", 0x000000, 0x080000, BAD_DUMP CRC(12d048d7) SHA1(ee0d03a565b11ca3bee2d24f62ff46a85ef18d90) )
+ /* Chip label p1h does not exist, renamed temporarly to pg1, marked BAD_DUMP. This needs to be verified. */
+
+ NEO_SFIX_128K( "030-s1.s1", CRC(7015b8fc) SHA1(8c09bc3e6c62e0f7c9557c1e10c901be325bae7f) )
+
+ NEO_BIOS_AUDIO_128K( "030-m1.m1", CRC(4cf466ec) SHA1(6a003b53c7a4af9d7529e2c10f27ffc4e58dcda5) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "030-v1.v1", 0x000000, 0x100000, CRC(d4ca364e) SHA1(b0573744b0ea2ef1e2167a225f0d254883f5af04) )
+ ROM_LOAD( "030-v2.v2", 0x100000, 0x100000, CRC(54994455) SHA1(76eb62b86e8ed51a77f44313d5cc8091b3f58d57) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "030-c1.c1", 0x000000, 0x100000, CRC(4f5e19bd) SHA1(ef7975c4b33a7aea4a25a385f604799f054d3200) )
+ ROM_LOAD16_BYTE( "030-c2.c2", 0x000001, 0x100000, CRC(d6314bf0) SHA1(0920cc580d7997fcb0170dd619af2f305d635577) )
+ ROM_LOAD16_BYTE( "030-c3.c3", 0x200000, 0x100000, CRC(47fddfee) SHA1(297c505a63448c999a2510c27bf4549102134db8) )
+ ROM_LOAD16_BYTE( "030-c4.c4", 0x200001, 0x100000, CRC(780d1c4e) SHA1(2e2cf9de828e3b48642dd2203637103438c62142) )
+ROM_END
+
+/****************************************
+ ID-0031
+ . NGM-031
+ NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1
+ . NGH-031
+ NEO-AEG PROG42G-1 / NEO-AEG CHA42G-1
+****************************************/
+
+ROM_START( socbrawl ) /* MVS VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "031-pg1.p1", 0x000000, 0x080000, CRC(17f034a7) SHA1(2e66c7bd93a08efe63c4894494db50bbf58f60e4) )
+
+ NEO_SFIX_128K( "031-s1.s1", CRC(4c117174) SHA1(26e52c4f628338a9aa1c159517cdf873f738fb98) )
+
+ NEO_BIOS_AUDIO_128K( "031-m1.m1", CRC(cb37427c) SHA1(99efe9600ebeda48331f396e3203c7588bdb7d24) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "031-v1.v1", 0x000000, 0x100000, CRC(cc78497e) SHA1(895bd647150fae9b2259ef043ed681f4c4de66ea) )
+ ROM_LOAD( "031-v2.v2", 0x100000, 0x100000, CRC(dda043c6) SHA1(08165a59700ab6b1e523079dd2a3549e520cc594) )
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "031-c1.c1", 0x000000, 0x100000, CRC(bd0a4eb8) SHA1(b67988cb3e550d083e81c9bd436da55b242785ed) )
+ ROM_LOAD16_BYTE( "031-c2.c2", 0x000001, 0x100000, CRC(efde5382) SHA1(e42789c8d87ee3d4549d0a903e990c03338cbbd8) )
+ ROM_LOAD16_BYTE( "031-c3.c3", 0x200000, 0x080000, CRC(580f7f33) SHA1(f4f95a7c8de00e1366a723fc4cd0e8c1905af636) )
+ ROM_LOAD16_BYTE( "031-c4.c4", 0x200001, 0x080000, CRC(ed297de8) SHA1(616f8fa4c86231f3e79faf9f69f8bb909cbc35f0) )
+ROM_END
+
+ROM_START( socbrawlh ) /* AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "031-p1.p1", 0x000000, 0x080000, CRC(a2801c24) SHA1(627d76ff0740ca29586f37b268f47fb469822529) )
+
+ NEO_SFIX_128K( "031-s1.s1", CRC(4c117174) SHA1(26e52c4f628338a9aa1c159517cdf873f738fb98) )
+
+ NEO_BIOS_AUDIO_128K( "031-m1.m1", CRC(cb37427c) SHA1(99efe9600ebeda48331f396e3203c7588bdb7d24) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "031-v1.v1", 0x000000, 0x100000, CRC(cc78497e) SHA1(895bd647150fae9b2259ef043ed681f4c4de66ea) )
+ ROM_LOAD( "031-v2.v2", 0x100000, 0x100000, CRC(dda043c6) SHA1(08165a59700ab6b1e523079dd2a3549e520cc594) )
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "031-c1.c1", 0x000000, 0x100000, CRC(bd0a4eb8) SHA1(b67988cb3e550d083e81c9bd436da55b242785ed) )
+ ROM_LOAD16_BYTE( "031-c2.c2", 0x000001, 0x100000, CRC(efde5382) SHA1(e42789c8d87ee3d4549d0a903e990c03338cbbd8) )
+ ROM_LOAD16_BYTE( "031-c3.c3", 0x200000, 0x080000, CRC(580f7f33) SHA1(f4f95a7c8de00e1366a723fc4cd0e8c1905af636) )
+ ROM_LOAD16_BYTE( "031-c4.c4", 0x200001, 0x080000, CRC(ed297de8) SHA1(616f8fa4c86231f3e79faf9f69f8bb909cbc35f0) )
+ROM_END
+
+/****************************************
+ ID-0032
+ . NGM-032
+ NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1
+ . NGH-032
+ NEO-AEG PROG42G-1 / NEO-AEG CHA42G-1
+****************************************/
+
+ROM_START( roboarmy )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "032-p1.p1", 0x000000, 0x080000, CRC(cd11cbd4) SHA1(23163e3da2f07e830a7f4a02aea1cb01a54ccbf3) )
+ /* also found AES and MVS set with p1 on eprom on NEO-AEG PROG42G-1 and NEO-MVS PROG42G-COM; correct chip label unknown */
+
+ NEO_SFIX_128K( "032-s1.s1", CRC(ac0daa1b) SHA1(93bae4697dc403fce19422752a514326ccf66a91) )
+
+ NEO_BIOS_AUDIO_128K( "032-m1.m1", CRC(35ec952d) SHA1(8aed30e26d7e2c70dbce5de752df416091066f7b) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "032-v1.v1", 0x000000, 0x100000, CRC(63791533) SHA1(4479e9308cdc906b9e03b985303f4ebedd00512f) )
+ ROM_LOAD( "032-v2.v2", 0x100000, 0x100000, CRC(eb95de70) SHA1(b34885201116d2b3bbdee15ec7b5961cf5c069e1) )
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "032-c1.c1", 0x000000, 0x100000, CRC(97984c6c) SHA1(deea59c0892f05dc7db98cb57b3eb83688dc57f0) )
+ ROM_LOAD16_BYTE( "032-c2.c2", 0x000001, 0x100000, CRC(65773122) SHA1(2c0162a8e971e5e57933e4ae16040bf824ffdefe) )
+ ROM_LOAD16_BYTE( "032-c3.c3", 0x200000, 0x080000, CRC(40adfccd) SHA1(b11f866dd70ba0ed9123424508355cb948b19bdc) )
+ ROM_LOAD16_BYTE( "032-c4.c4", 0x200001, 0x080000, CRC(462571de) SHA1(5c3d610d492f91564423873b3b434dcda700373f) )
+ROM_END
+
+/****************************************
+ ID-0033
+ . NGM-033
+ NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1
+ . NGH-033
+ NEO-AEG PROG42G-1 / NEO-AEG CHA42G-1
+****************************************/
+
+ROM_START( fatfury1 ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "033-p1.p1", 0x000000, 0x080000, CRC(47ebdc2f) SHA1(d46786502920fb510f1999db00c5e09fb641c0bd) )
+ ROM_LOAD16_WORD_SWAP( "033-p2.p2", 0x080000, 0x020000, CRC(c473af1c) SHA1(4919eeca20abe807493872ca7c79a5d1f496fe68) )
+
+ NEO_SFIX_128K( "033-s1.s1", CRC(3c3bdf8c) SHA1(2f3e5feed6c27850b2a0f6fae0b97041690e944c) )
+
+ NEO_BIOS_AUDIO_128K( "033-m1.m1", CRC(5be10ffd) SHA1(90a5e6cbbc58a7883cd2a3a597180d631a466882) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "033-v1.v1", 0x000000, 0x100000, CRC(212fd20d) SHA1(120c040db8c01a6f140eea03725448bfa9ca98c2) )
+ ROM_LOAD( "033-v2.v2", 0x100000, 0x100000, CRC(fa2ae47f) SHA1(80d0ba4cd30aab59b6f0db8fa341387bd7388afc) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "033-c1.c1", 0x000000, 0x100000, CRC(74317e54) SHA1(67b9c2814a12603b959612456f59de55f9bf6f57) )
+ ROM_LOAD16_BYTE( "033-c2.c2", 0x000001, 0x100000, CRC(5bb952f3) SHA1(ea964bbcc0408b6ae07cbb5043d003281b1aca15) )
+ ROM_LOAD16_BYTE( "033-c3.c3", 0x200000, 0x100000, CRC(9b714a7c) SHA1(b62bdcede3207d062a89e0a4a9adf706101bb681) )
+ ROM_LOAD16_BYTE( "033-c4.c4", 0x200001, 0x100000, CRC(9397476a) SHA1(a12dbb74020aeb6ebf24ec2abbfba5129cabcb7d) )
+ROM_END
+
+/****************************************
+ ID-0034
+ . NGM-034
+ NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1
+ . NGH-034
+ NEO-AEG PROG42G-1 / NEO-AEG CHA42G-1
+****************************************/
+
+ROM_START( fbfrenzy ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "034-p1.p1", 0x000000, 0x080000, CRC(cdef6b19) SHA1(97482db0dffc6d625fb41fa38449c0a74d741a72) )
+
+ NEO_SFIX_128K( "034-s1.s1", CRC(8472ed44) SHA1(42e1a9671dddd090d2a634cff986f6c73ba08b70) )
+
+ NEO_BIOS_AUDIO_128K( "034-m1.m1", CRC(f41b16b8) SHA1(f3e1cfc4cd2c5baece176f169906aa796367d303) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "034-v1.v1", 0x000000, 0x100000, CRC(50c9d0dd) SHA1(2b3f2875b00e5f307d274128bd73c1521a7d901b) )
+ ROM_LOAD( "034-v2.v2", 0x100000, 0x100000, CRC(5aa15686) SHA1(efe47954827a98d539ba719347c5f8aa60e6338b) )
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "034-c1.c1", 0x000000, 0x100000, CRC(91c56e78) SHA1(2944d49ebfc71239d345209ca7f25993c2cc5a77) )
+ ROM_LOAD16_BYTE( "034-c2.c2", 0x000001, 0x100000, CRC(9743ea2f) SHA1(cf4fccdf10d521d555e92bc24123142393c2b3bb) )
+ ROM_LOAD16_BYTE( "034-c3.c3", 0x200000, 0x080000, CRC(e5aa65f5) SHA1(714356a2cee976ec0f515b1034ce971018e5c02e) )
+ ROM_LOAD16_BYTE( "034-c4.c4", 0x200001, 0x080000, CRC(0eb138cc) SHA1(21d31e1f136c674caa6dd44073281cd07b72ea9b) )
+ROM_END
+
+/****************************************
+ ID-0035
+ Mystic Wand (prototype) 1991 Alpha
+****************************************/
+
+/****************************************
+ ID-0036
+ . MOM-002
+ NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1
+ NEO-MVS PROG42G-COM / NEO-MVS CHA42G-1
+ . MOH-002
+ NEO-AEG PROG42G / NEO-AEG CHA42G
+****************************************/
+
+ROM_START( bakatono ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "036-p1.p1", 0x000000, 0x080000, CRC(1c66b6fa) SHA1(6c50cc452971c46c763ae0b2def95792671a1798) )
+
+ NEO_SFIX_128K( "036-s1.s1", CRC(f3ef4485) SHA1(c30bfceed7e669e4c97b0b3ec2e9f4271e5b6662) )
+
+ NEO_BIOS_AUDIO_128K( "036-m1.m1", CRC(f1385b96) SHA1(e7e3d1484188a115e262511116aaf466b8b1f428) )
+
+ ROM_DEFAULT_BIOS( "japan" ) /* so the mahjong panel will work in the service menu */
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "036-v1.v1", 0x000000, 0x100000, CRC(1c335dce) SHA1(493c273fa71bf81861a20af4c4eaae159e169f39) )
+ ROM_LOAD( "036-v2.v2", 0x100000, 0x100000, CRC(bbf79342) SHA1(45a4f40e415cdf35c3073851506648c8f7d53958) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "036-c1.c1", 0x000000, 0x100000, CRC(fe7f1010) SHA1(5b6f5053821f4da8dc3768371e2cd51bb29da963) )
+ ROM_LOAD16_BYTE( "036-c2.c2", 0x000001, 0x100000, CRC(bbf003f5) SHA1(054b2a3327e038836eece652055bb84c115cf8ed) )
+ ROM_LOAD16_BYTE( "036-c3.c3", 0x200000, 0x100000, CRC(9ac0708e) SHA1(8decfe06d73a3dd3c3cf280719978fcf6d559d29) )
+ ROM_LOAD16_BYTE( "036-c4.c4", 0x200001, 0x100000, CRC(f2577d22) SHA1(a37db8055ca4680e244c556dc6df8bdba16c2083) )
+ROM_END
+
+/****************************************
+ ID-0037
+ . ALM-002
+ NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1
+ . ALH-002
+ NEO-AEG PROG42G / NEO-AEG CHA42G
+****************************************/
+
+ROM_START( crsword ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "037-p1.p1", 0x000000, 0x080000, CRC(e7f2553c) SHA1(8469ecb900477feed05ae3311fe9515019bbec2a) )
+
+ NEO_SFIX_128K( "037-s1.s1", CRC(74651f27) SHA1(bff7ff2429d2be82c1647abac2ee45b339b3b310) )
+
+ NEO_BIOS_AUDIO_128K( "037-m1.m1", CRC(9504b2c6) SHA1(9ce8e681b9df6eacd0d23a36bad836bd5074233d) )
+
+ ROM_REGION( 0x100000, "ymsnd", 0 )
+ ROM_LOAD( "037-v1.v1", 0x000000, 0x100000, CRC(61fedf65) SHA1(98f31d1e23bf7c1f7844e67f14707a704134042e) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "037-c1.c1", 0x000000, 0x100000, CRC(09df6892) SHA1(df2579dcf9c9dc88d461212cb74de106be2983c1) )
+ ROM_LOAD16_BYTE( "037-c2.c2", 0x000001, 0x100000, CRC(ac122a78) SHA1(7bfa4d29b7d7d9443f64d81caeafa74fe05c606e) )
+ ROM_LOAD16_BYTE( "037-c3.c3", 0x200000, 0x100000, CRC(9d7ed1ca) SHA1(2bbd25dc3a3f825d0af79a418f06a23a1bf03cc0) )
+ ROM_LOAD16_BYTE( "037-c4.c4", 0x200001, 0x100000, CRC(4a24395d) SHA1(943f911f40985db901eaef4c28dfcda299fca73e) )
+ROM_END
+
+/****************************************
+ ID-0038
+ . ALM-003
+ NEO-MVS PROG42G-COM / NEO-MVS CHA42G-1
+ . ALH-003
+ NEO-AEG PROG42G-COM / NEO-AEG CHA42G-1
+****************************************/
+
+ROM_START( trally ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "038-p1.p1", 0x000000, 0x080000, CRC(1e52a576) SHA1(a1cb56354c3378e955b0cd482c3c41ae15add952) )
+ ROM_LOAD16_WORD_SWAP( "038-p2.p2", 0x080000, 0x080000, CRC(a5193e2f) SHA1(96803480439e90da23cdca70d59ff519ee85beeb) )
+
+ ROM_REGION( 0x1000, "mcu", 0 ) /* Hitachi HD6301V1 MCU */
+ ROM_LOAD( "hd6301v1p.hd6301v1", 0x0000, 0x1000, NO_DUMP )
+
+ NEO_SFIX_128K( "038-s1.s1", CRC(fff62ae3) SHA1(6510a762ea41557a8938cbfc0557cd5921306061) )
+
+ NEO_BIOS_AUDIO_128K( "038-m1.m1", CRC(0908707e) SHA1(df7489ea6abf84d7f137ba7a8f52a4fd1b088fd7) )
+
+ ROM_REGION( 0x180000, "ymsnd", 0 )
+ ROM_LOAD( "038-v1.v1", 0x000000, 0x100000, CRC(5ccd9fd5) SHA1(c3c8c758a320c39e4ceb0b6d9f188ed6d122eec4) )
+ ROM_LOAD( "038-v2.v2", 0x100000, 0x080000, CRC(ddd8d1e6) SHA1(65c819fa2392f264f5a1a0a4967c96775732500b) )
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "038-c1.c1", 0x000000, 0x100000, CRC(c58323d4) SHA1(a6bd277471a4b612d165f8b804f3cb662f499b70) )
+ ROM_LOAD16_BYTE( "038-c2.c2", 0x000001, 0x100000, CRC(bba9c29e) SHA1(b70bbfdfa8c4f9ea76406530e86b16e42498d284) )
+ ROM_LOAD16_BYTE( "038-c3.c3", 0x200000, 0x080000, CRC(3bb7b9d6) SHA1(bc1eae6181ad5abf79736afc8db4ca34113d43f8) )
+ ROM_LOAD16_BYTE( "038-c4.c4", 0x200001, 0x080000, CRC(a4513ecf) SHA1(934aa103c226eac55157b44d7b4dfa35515322c3) )
+ROM_END
+
+/****************************************
+ ID-0039
+ . NGM-039
+ NEO-MVS PROG16 / NEO-MVS CHA42G-1
+ . NGH-039
+ NEO-AEG PROG16 / NEO-AEG CHA42G-1
+****************************************/
+
+ROM_START( kotm2 ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "039-p1.p1", 0x000000, 0x080000, CRC(b372d54c) SHA1(b70fc6f72e16a66b6e144cc01370548e3398b8b8) )
+ ROM_LOAD16_WORD_SWAP( "039-p2.p2", 0x080000, 0x080000, CRC(28661afe) SHA1(6c85ff6ab334b1ca744f726f42dac211537e7315) )
+
+ NEO_SFIX_128K( "039-s1.s1", CRC(63ee053a) SHA1(7d4b92bd022708975b1470e8f24d1f5a712e1b94) )
+
+ NEO_BIOS_AUDIO_128K( "039-m1.m1", CRC(0c5b2ad5) SHA1(15eb5ea10fecdbdbcfd06225ae6d88bb239592e7) )
+
+ ROM_REGION( 0x300000, "ymsnd", 0 )
+ ROM_LOAD( "039-v2.v2", 0x000000, 0x200000, CRC(86d34b25) SHA1(89bdb614b0c63d678962da52e2f596750d20828c) )
+ ROM_LOAD( "039-v4.v4", 0x200000, 0x100000, CRC(8fa62a0b) SHA1(58ac2fdd73c542eb8178cfc4adfa0e5940183283) )
+
+ ROM_REGION( 0x600000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "039-c1.c1", 0x000000, 0x100000, CRC(6d1c4aa9) SHA1(4fbc9d7cb37522ec298eefbe38c75a2d050fbb4a) )
+ ROM_CONTINUE( 0x400000, 0x100000 )
+ ROM_LOAD16_BYTE( "039-c2.c2", 0x000001, 0x100000, CRC(f7b75337) SHA1(4d85f85948c3e6ed38b0b0ccda79de3ce026e2d9) )
+ ROM_CONTINUE( 0x400001, 0x100000 )
+ ROM_LOAD16_BYTE( "039-c3.c3", 0x200000, 0x080000, CRC(bfc4f0b2) SHA1(f4abe2b52882b966412f3b503b8f2c8f49b57968) )
+ ROM_LOAD16_BYTE( "039-c4.c4", 0x200001, 0x080000, CRC(81c9c250) SHA1(e3a34ff69081a8681b5ca895915892dcdccfa7aa) )
+ROM_END
+
+ROM_START( kotm2p ) /* fairly late prototype release, only the code differs from the main set */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "proto_039-p1.p1", 0x000001, 0x080000, CRC(3c1d17e7) SHA1(aeaff465fafa46ded903ed4e8cb8cd05de8dc096) )
+ ROM_LOAD16_BYTE( "proto_039-p2.p2", 0x000000, 0x080000, CRC(bc9691f0) SHA1(3854659b952d4f8c2edd5d59858a61ce6d518604) )
+
+ NEO_SFIX_128K( "039-s1.s1", CRC(63ee053a) SHA1(7d4b92bd022708975b1470e8f24d1f5a712e1b94) )
+
+ NEO_BIOS_AUDIO_128K( "039-m1.m1", CRC(0c5b2ad5) SHA1(15eb5ea10fecdbdbcfd06225ae6d88bb239592e7) )
+
+ // same data as main set, but prototype board layout
+ ROM_REGION( 0x300000, "ymsnd", 0 )
+ ROM_LOAD( "proto_039-v1.v1", 0x000000, 0x080000, CRC(dd3566f1) SHA1(f7c2a3747aaab2bc57cdfa33d8bb9fab057b5214) )
+ ROM_LOAD( "proto_039-v2.v2", 0x080000, 0x080000, CRC(57f60274) SHA1(7e17740aa05cf7ad4f9084e147600a8eb82c7284) )
+ ROM_LOAD( "proto_039-v3.v3", 0x100000, 0x080000, CRC(0f008a07) SHA1(ed243a0449232bbea409308c3fec7e057fcd8501) )
+ ROM_LOAD( "proto_039-v4.v4", 0x180000, 0x080000, CRC(1943d0fe) SHA1(47fb716c76ea6b5fe64204ff6d72b7feea10bda9) )
+ ROM_LOAD( "proto_039-v5.v5", 0x200000, 0x080000, CRC(13be045b) SHA1(0e3713ae6b164ebae434c0f18c466365b26b9a77) )
+ ROM_LOAD( "proto_039-v6.v6", 0x280000, 0x080000, CRC(d1dd3fd6) SHA1(052b92168a76cf3a97c8cacebcc3ebab228726df) )
+
+ // same data as main set, but prototype board layout
+ ROM_REGION( 0x600000, "sprites", 0 ) // note, ROM_LOAD32_BYTE
+ ROM_LOAD32_BYTE( "proto_039-c1.c1", 0x000000, 0x100000, CRC(7192a787) SHA1(7bef6ce79c618103485480aee3c6f856968eb51f) )
+ ROM_LOAD32_BYTE( "proto_039-c2.c2", 0x000002, 0x100000, CRC(7157eca1) SHA1(65f36c6a3834775b04076d2c38a6047bffe9a8cf) )
+ ROM_LOAD32_BYTE( "proto_039-c3.c3", 0x000001, 0x100000, CRC(11d75727) SHA1(5a4c7b5ca3f1195e7853b45c5e71c13fe74d16e9) )
+ ROM_LOAD32_BYTE( "proto_039-c4.c4", 0x000003, 0x100000, CRC(7ad48b28) SHA1(27e65d948f08c231107cb1a810e2b06731091fc3) )
+ ROM_LOAD32_BYTE( "proto_039-c5.c5", 0x400000, 0x080000, CRC(5bdaf9ca) SHA1(60620d42ac6cd0e5da019fede2814a2f4171ff3f) )
+ ROM_LOAD32_BYTE( "proto_039-c6.c6", 0x400002, 0x080000, CRC(21d4be8c) SHA1(f1b19d37d52d21584f304b7d37d5c096b58219d6) )
+ ROM_LOAD32_BYTE( "proto_039-c7.c7", 0x400001, 0x080000, CRC(da55fd00) SHA1(52804f955597591fdd1d7478dc340b36d3c08c4a) )
+ ROM_LOAD32_BYTE( "proto_039-c8.c8", 0x400003, 0x080000, CRC(592e9267) SHA1(0d27de59970ccbcaa1d47909ea3d741ffb0d9e07) )
+ROM_END
+
+/****************************************
+ ID-0040
+ . NGM-040
+ NEO-MVS PROG 4096 / NEO-MVS CHA 42G-2
+ . NGH-040
+ NEO-AEG PROG16 / NEO-AEG CHA42G-1
+****************************************/
+
+ROM_START( sengoku2 )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "040-p1.p1", 0x000000, 0x100000, CRC(6dde02c2) SHA1(e432e63feb88c71629ec96aa84650dcfe356a551) )
+
+ NEO_SFIX_128K( "040-s1.s1", CRC(cd9802a3) SHA1(f685d4638f4f68e7e3f101c0c39128454536721b) )
+
+ NEO_BIOS_AUDIO_128K( "040-m1.m1", CRC(d4de4bca) SHA1(ecf604d06f01d40b04e285facef66a6ae2d35661) )
+
+ ROM_REGION( 0x300000, "ymsnd", 0 )
+ ROM_LOAD( "040-v1.v1", 0x000000, 0x200000, CRC(71cb4b5d) SHA1(56d9aca1d476c19c7d0f707176a8fed53e0189b7) )
+ // AES has different label, data is the same: 040-v1.v2
+ ROM_LOAD( "040-v2.v2", 0x200000, 0x100000, CRC(c5cece01) SHA1(923a3377dac1919e8c3d9ab316902250caa4785f) )
+ // AES has different label, data is the same: 040-v2.v4
+
+ ROM_REGION( 0x600000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "040-c1.c1", 0x000000, 0x100000, CRC(faa8ea99) SHA1(714575e57ea1990612f960ec42b38d2e157ad400) )
+ ROM_CONTINUE( 0x400000, 0x100000 )
+ ROM_LOAD16_BYTE( "040-c2.c2", 0x000001, 0x100000, CRC(87d0ec65) SHA1(23645e0cf859fb4cec3745b3846ca0ef64c689fb) )
+ ROM_CONTINUE( 0x400001, 0x100000 )
+ ROM_LOAD16_BYTE( "040-c3.c3", 0x200000, 0x080000, CRC(24b5ba80) SHA1(29d58a6b56bd24ee2046a8d45e023b4d7ab7685b) )
+ ROM_LOAD16_BYTE( "040-c4.c4", 0x200001, 0x080000, CRC(1c9e9930) SHA1(d017474873750a7602b7708c663d29b25ef7bb63) )
+ROM_END
+
+/****************************************
+ ID-0041
+ . NGM-041
+ NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1
+ . NGH-041
+ NEO-AEG PROG42G-1 / NEO-AEG CHA42G-1
+****************************************/
+
+ROM_START( bstars2 )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "041-p1.p1", 0x000000, 0x080000, CRC(523567fd) SHA1(f1e81eb4678f586b214ea102cde6effea1b0f768) )
+
+ NEO_SFIX_128K( "041-s1.s1", CRC(015c5c94) SHA1(f1c60cd3dc54986b39f630ef3bf48f68c68695dc) )
+
+ NEO_BIOS_AUDIO_128K( "041-m1.m1", CRC(15c177a6) SHA1(3f4abed635102f9bc8b44809750828c82e79b44f) )
+
+ ROM_REGION( 0x280000, "ymsnd", 0 )
+ ROM_LOAD( "041-v1.v1", 0x000000, 0x100000, CRC(cb1da093) SHA1(4f4d1d5fefa9dda372083c045bf0d268a57ce8f1) )
+ ROM_LOAD( "041-v2.v2", 0x100000, 0x100000, CRC(1c954a9d) SHA1(159bc6efdd531615461f6e16f83f6d4c4e67c237) )
+ ROM_LOAD( "041-v3.v3", 0x200000, 0x080000, CRC(afaa0180) SHA1(c4a047e21f093830498a163598ed7bd48a8cf9d1) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "041-c1.c1", 0x000000, 0x100000, CRC(b39a12e1) SHA1(bafe383bd7c5a6aac4cb92dabbc56e3672fe174d) )
+ ROM_LOAD16_BYTE( "041-c2.c2", 0x000001, 0x100000, CRC(766cfc2f) SHA1(79e1063925d54a57df943019a88bea56c9152df3) )
+ ROM_LOAD16_BYTE( "041-c3.c3", 0x200000, 0x100000, CRC(fb31339d) SHA1(f4e821299680970b2e979acc4a170029b968c807) )
+ ROM_LOAD16_BYTE( "041-c4.c4", 0x200001, 0x100000, CRC(70457a0c) SHA1(a1e307f11ddab85d2e9c09d0428fac2e6da774b1) )
+ROM_END
+
+/****************************************
+ ID-0042
+ . NGM-042
+ NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1
+ . NGH-042
+ NEO-AEG PROG42G-1 / NEO-AEG CHA42G-1
+****************************************/
+
+ROM_START( quizdai2 ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "042-p1.p1", 0x000000, 0x100000, CRC(ed719dcf) SHA1(12baf2601e86c0e4358517b9fa1c55f2f5835f1d) )
+
+ NEO_SFIX_128K( "042-s1.s1", CRC(164fd6e6) SHA1(dad35bedc33d502a5ae745a45a972af8d901b160) )
+
+ NEO_BIOS_AUDIO_128K( "042-m1.m1", CRC(bb19995d) SHA1(ed458fad5a23c6bd0d099927d98c31e1e6562d1b) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "042-v1.v1", 0x000000, 0x100000, CRC(af7f8247) SHA1(99a47014017c20e4e22010c60612b6b7f6efc9e5) )
+ ROM_LOAD( "042-v2.v2", 0x100000, 0x100000, CRC(c6474b59) SHA1(a6c5054032b698116247b2f09a8b94a1b588c4f1) )
+
+ ROM_REGION( 0x300000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "042-c1.c1", 0x000000, 0x100000, CRC(cb5809a1) SHA1(b53d06685246dd51b82b5c1d54d639d10e2ec26d) )
+ ROM_LOAD16_BYTE( "042-c2.c2", 0x000001, 0x100000, CRC(1436dfeb) SHA1(27d136fb1be793bd345a741f5e55a977275fff86) )
+ ROM_LOAD16_BYTE( "042-c3.c3", 0x200000, 0x080000, CRC(bcd4a518) SHA1(f355298fe0f2cf50ddcc0d613db56a5c04d7230f) )
+ ROM_LOAD16_BYTE( "042-c4.c4", 0x200001, 0x080000, CRC(d602219b) SHA1(34cf0f16db1e224396464ac838f4cd2e6d1c640e) )
+ROM_END
+
+/****************************************
+ ID-0043
+ . NGM-043
+ NEO-MVS PROG 4096 / NEO-MVS CHA 42G-2
+ NEO-MVS PROG-G2 / NEO-MVS CHA 42G-2
+ . NGH-043
+ NEO-AEG PROG16 / NEO-AEG CHA42G-1
+****************************************/
+
+ROM_START( 3countb ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "043-p1.p1", 0x000000, 0x100000, CRC(ffbdd928) SHA1(05b24655ca32723661adc5509b450824deb0c176) )
+ /* The original p1 is 8mbit; also found sets with p1 / p2 4mbit on eprom. */
+
+ NEO_SFIX_128K( "043-s1.s1", CRC(c362d484) SHA1(a3c029292572842feabe9aa8c3372628fb63978d) )
+
+ NEO_BIOS_AUDIO_128K( "043-m1.m1", CRC(7eab59cb) SHA1(5ae4107457e091f73960bfba39b589ae36d51ca3) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "043-v1.v1", 0x000000, 0x200000, CRC(63688ce8) SHA1(5c6ac29a0cc0655a87cfe3ada8706838b86b86e4) )
+ ROM_LOAD( "043-v2.v2", 0x200000, 0x200000, CRC(c69a827b) SHA1(f5197ea87bb6573fa6aef3a1713c3679c58c1e74) )
+
+ ROM_REGION( 0x0800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "043-c1.c1", 0x000000, 0x100000, CRC(bad2d67f) SHA1(04928e50ca75b7fbc52b64e816ec5701901f5893) )
+ ROM_CONTINUE( 0x400000, 0x100000 )
+ ROM_LOAD16_BYTE( "043-c2.c2", 0x000001, 0x100000, CRC(a7fbda95) SHA1(9da3c5faf22592a7eaf8df9fa6454f48c2a927ae) )
+ ROM_CONTINUE( 0x400001, 0x100000 )
+ ROM_LOAD16_BYTE( "043-c3.c3", 0x200000, 0x100000, CRC(f00be011) SHA1(2721cdba37a511a966a2a53b9bd6240f181d920c) )
+ ROM_CONTINUE( 0x600000, 0x100000 )
+ ROM_LOAD16_BYTE( "043-c4.c4", 0x200001, 0x100000, CRC(1887e5c0) SHA1(9b915359add7c10c78d8b281b4084eceea8f0499) )
+ ROM_CONTINUE( 0x600001, 0x100000 )
+ROM_END
+
+/****************************************
+ ID-0044
+ . NGM-044
+ NEO-MVS PROG16 / NEO-MVS CHA42G-1
+ NEO-MVS PROG4096 / NEO-MVS CHA42G-1
+ . NGH-044
+ NEO-AEG PROG16 / NEO-AEG CHA42G-1
+****************************************/
+
+ROM_START( aof ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "044-p1.p1", 0x000000, 0x080000, CRC(ca9f7a6d) SHA1(4d28ef86696f7e832510a66d3e8eb6c93b5b91a1) )
+ /* also found sets with ep1 or p1 on eprom. */
+
+ NEO_SFIX_128K( "044-s1.s1", CRC(89903f39) SHA1(a04a0c244a5d5c7a595fcf649107969635a6a8b6) )
+
+ NEO_BIOS_AUDIO_128K( "044-m1.m1", CRC(0987e4bb) SHA1(8fae4b7fac09d46d4727928e609ed9d3711dbded) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "044-v2.v2", 0x000000, 0x200000, CRC(3ec632ea) SHA1(e3f413f580b57f70d2dae16dbdacb797884d3fce) )
+ ROM_LOAD( "044-v4.v4", 0x200000, 0x200000, CRC(4b0f8e23) SHA1(105da0cc5ba19869c7147fba8b177500758c232b) )
+
+ ROM_REGION( 0x800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "044-c1.c1", 0x000000, 0x100000, CRC(ddab98a7) SHA1(f20eb81ec431268798c142c482146c1545af1c24) )
+ ROM_CONTINUE( 0x400000, 0x100000 )
+ ROM_LOAD16_BYTE( "044-c2.c2", 0x000001, 0x100000, CRC(d8ccd575) SHA1(f697263fe92164e274bf34c55327b3d4a158b332) )
+ ROM_CONTINUE( 0x400001, 0x100000 )
+ ROM_LOAD16_BYTE( "044-c3.c3", 0x200000, 0x100000, CRC(403e898a) SHA1(dd5888f8b24a33b2c1f483316fe80c17849ccfc4) )
+ ROM_CONTINUE( 0x600000, 0x100000 )
+ ROM_LOAD16_BYTE( "044-c4.c4", 0x200001, 0x100000, CRC(6235fbaa) SHA1(9090e337d7beed25ba81ae0708d0aeb57e6cf405) )
+ ROM_CONTINUE( 0x600001, 0x100000 )
+ROM_END
+
+/****************************************
+ ID-0045
+ . NGM-045
+ NEO-MVS PROGGSC / NEO-MVS CHA 42G-3
+ . NGH-045
+ NEO-AEG PROGGS / NEO-AEG CHA42G-4
+****************************************/
+
+ROM_START( samsho ) /* MVS VERSION */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "045-p1.p1", 0x000000, 0x100000, CRC(dfe51bf0) SHA1(2243af3770a516ae698b69bcd9daf53632d9128d) )
+ ROM_LOAD16_WORD_SWAP( "045-pg2.sp2", 0x100000, 0x100000, CRC(46745b94) SHA1(d9e959fd1f88c9402915c1d0dcdb4a9e3d49cdcb) )
+ /* also found set with ep1 / ep2 on eprom and sp2 on maskrom; same rom data as samshoh is used. */
+
+ NEO_SFIX_128K( "045-s1.s1", CRC(9142a4d3) SHA1(54088e99fcfd75fd0f94852890a56350066a05a3) )
+
+ NEO_BIOS_AUDIO_128K( "045-m1.m1", CRC(95170640) SHA1(125c502db0693e8d11cef619b090081c14a9a300) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "045-v1.v1", 0x000000, 0x200000, CRC(37f78a9b) SHA1(6279b497d12fa90b49ab5ac3aae20fb302ec8b81) )
+ ROM_LOAD( "045-v2.v2", 0x200000, 0x200000, CRC(568b20cf) SHA1(61af858685472a1fad608e230cccc2b108509ddb) )
+
+ ROM_REGION( 0xa00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "045-c1.c1", 0x000000, 0x200000, CRC(2e5873a4) SHA1(65c74c1e2d34390666bbb630df7d1f4c9570c3db) )
+ ROM_LOAD16_BYTE( "045-c2.c2", 0x000001, 0x200000, CRC(04febb10) SHA1(16a8cbf0fd9468e81bf9eab6dbe7a8e3623a843e) )
+ ROM_LOAD16_BYTE( "045-c3.c3", 0x400000, 0x200000, CRC(f3dabd1e) SHA1(c80e52df42be9f8b2e89b467b11ab140a480cee8) )
+ ROM_LOAD16_BYTE( "045-c4.c4", 0x400001, 0x200000, CRC(935c62f0) SHA1(0053d40085fac14096b683f4341f65e543b71dc1) )
+ ROM_LOAD16_BYTE( "045-c51.c5", 0x800000, 0x100000, CRC(81932894) SHA1(550f15dc5892c4602422c51869f0d59f70f01e9e) )
+ ROM_LOAD16_BYTE( "045-c61.c6", 0x800001, 0x100000, CRC(be30612e) SHA1(5e8b785f917c176d6796eba0caed37b13ddb3e63) )
+ROM_END
+
+ROM_START( samshoh ) /* AES VERSION */
+ ROM_REGION( 0x180000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "045-p1.p1", 0x000000, 0x100000, CRC(dfe51bf0) SHA1(2243af3770a516ae698b69bcd9daf53632d9128d) )
+ ROM_LOAD16_WORD_SWAP( "045-p2.sp2", 0x100000, 0x080000, CRC(38ee9ba9) SHA1(48190699a6be83cb6257365ae81f93fdd23abe09) )
+
+ NEO_SFIX_128K( "045-s1.s1", CRC(9142a4d3) SHA1(54088e99fcfd75fd0f94852890a56350066a05a3) )
+
+ NEO_BIOS_AUDIO_128K( "045-m1.m1", CRC(95170640) SHA1(125c502db0693e8d11cef619b090081c14a9a300) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "045-v1.v1", 0x000000, 0x200000, CRC(37f78a9b) SHA1(6279b497d12fa90b49ab5ac3aae20fb302ec8b81) )
+ ROM_LOAD( "045-v2.v2", 0x200000, 0x200000, CRC(568b20cf) SHA1(61af858685472a1fad608e230cccc2b108509ddb) )
+
+ ROM_REGION( 0x900000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "045-c1.c1", 0x000000, 0x200000, CRC(2e5873a4) SHA1(65c74c1e2d34390666bbb630df7d1f4c9570c3db) )
+ ROM_LOAD16_BYTE( "045-c2.c2", 0x000001, 0x200000, CRC(04febb10) SHA1(16a8cbf0fd9468e81bf9eab6dbe7a8e3623a843e) )
+ ROM_LOAD16_BYTE( "045-c3.c3", 0x400000, 0x200000, CRC(f3dabd1e) SHA1(c80e52df42be9f8b2e89b467b11ab140a480cee8) )
+ ROM_LOAD16_BYTE( "045-c4.c4", 0x400001, 0x200000, CRC(935c62f0) SHA1(0053d40085fac14096b683f4341f65e543b71dc1) )
+ ROM_LOAD16_BYTE( "045-c5.c5", 0x800000, 0x080000, CRC(a2bb8284) SHA1(aa118e3b8c062daa219b36758b9a3814c08c69dc) )
+ ROM_LOAD16_BYTE( "045-c6.c6", 0x800001, 0x080000, CRC(4fa71252) SHA1(afe374a9d1f2d955a59efe7b6196b89e021b164c) )
+ /* also found AES set with C6 on TC538200; label is 045-C61.C6 */
+ROM_END
+
+/****************************************
+ ID-0046
+ . NGM-046
+ NEO-MVS PROGTOP / NEO-MVS CHA256B
+ . NGH-046
+ NEO-AEG PROGTOP / NEO-AEG CHA256[B]
+****************************************/
+
+ROM_START( tophuntr ) /* MVS VERSION */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "046-p1.p1", 0x000000, 0x100000, CRC(69fa9e29) SHA1(9a40a16163193bb506a32bd34f6323b25ec69622) )
+ ROM_LOAD16_WORD_SWAP( "046-p2.sp2", 0x100000, 0x100000, CRC(f182cb3e) SHA1(6b4e0af5d4e623f0682f37ff5c69e5b705e20028) )
+
+ NEO_SFIX_128K( "046-s1.s1", CRC(14b01d7b) SHA1(618ce75c25d6cc86a3b46bd64a0aa34ab82f75ae) )
+
+ NEO_BIOS_AUDIO_128K( "046-m1.m1", CRC(3f84bb9f) SHA1(07446040871d11da3c2217ee9d1faf8c3cae7420) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "046-v1.v1", 0x000000, 0x100000, CRC(c1f9c2db) SHA1(bed95a76afefa46503a12e0f0a9787c4c967ac50) )
+ ROM_LOAD( "046-v2.v2", 0x100000, 0x100000, CRC(56254a64) SHA1(1cf049cb4c414419859d2c8ee714317a35a85251) )
+ ROM_LOAD( "046-v3.v3", 0x200000, 0x100000, CRC(58113fb1) SHA1(40972982a63c7adecef840f9882f4165da723ab6) )
+ ROM_LOAD( "046-v4.v4", 0x300000, 0x100000, CRC(4f54c187) SHA1(63a76949301b83bdd44aa1a4462f642ab9ca3c0b) )
+
+ ROM_REGION( 0x800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "046-c1.c1", 0x000000, 0x100000, CRC(fa720a4a) SHA1(364913b9fa40d46e4e39ae3cdae914cfd0de137d) )
+ ROM_LOAD16_BYTE( "046-c2.c2", 0x000001, 0x100000, CRC(c900c205) SHA1(50274e79aa26f334eb806288688b30720bade883) )
+ ROM_LOAD16_BYTE( "046-c3.c3", 0x200000, 0x100000, CRC(880e3c25) SHA1(b6974af0c833b766866919b6f15b6f8cef82530d) )
+ ROM_LOAD16_BYTE( "046-c4.c4", 0x200001, 0x100000, CRC(7a2248aa) SHA1(8af0b26025a54e3b91604dd24a3c1c518fbd8536) )
+ ROM_LOAD16_BYTE( "046-c5.c5", 0x400000, 0x100000, CRC(4b735e45) SHA1(2f8b46388c4696aee6a97e1e21cdadf6b142b01a) )
+ ROM_LOAD16_BYTE( "046-c6.c6", 0x400001, 0x100000, CRC(273171df) SHA1(9c35832221e016c12ef1ed71da167f565daaf86c) )
+ ROM_LOAD16_BYTE( "046-c7.c7", 0x600000, 0x100000, CRC(12829c4c) SHA1(ac5f3d848d7116fc35c97f53a72c85e049dd3a2f) )
+ ROM_LOAD16_BYTE( "046-c8.c8", 0x600001, 0x100000, CRC(c944e03d) SHA1(be23999b8ce09ee15ba500ce4d5e2a82a4f58d9b) )
+ROM_END
+
+ROM_START( tophuntrh ) /* AES VERSION */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "046-pg1.p1",0x000000, 0x100000, CRC(771e39bc) SHA1(c0e05fd1ca81926438bb75e2fa6894e40ab6521e) )
+ ROM_LOAD16_WORD_SWAP( "046-p2.sp2",0x100000, 0x100000, CRC(f182cb3e) SHA1(6b4e0af5d4e623f0682f37ff5c69e5b705e20028) )
+
+ NEO_SFIX_128K( "046-sg1.s1", CRC(92e9ac8c) SHA1(cab5c77c091e8d12d9c3a2cc8d741b74e4386efb) )
+
+ NEO_BIOS_AUDIO_128K( "046-m1.m1", CRC(3f84bb9f) SHA1(07446040871d11da3c2217ee9d1faf8c3cae7420) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "046-v1.v1", 0x000000, 0x100000, CRC(c1f9c2db) SHA1(bed95a76afefa46503a12e0f0a9787c4c967ac50) )
+ ROM_LOAD( "046-v2.v2", 0x100000, 0x100000, CRC(56254a64) SHA1(1cf049cb4c414419859d2c8ee714317a35a85251) )
+ ROM_LOAD( "046-v3.v3", 0x200000, 0x100000, CRC(58113fb1) SHA1(40972982a63c7adecef840f9882f4165da723ab6) )
+ ROM_LOAD( "046-v4.v4", 0x300000, 0x100000, CRC(4f54c187) SHA1(63a76949301b83bdd44aa1a4462f642ab9ca3c0b) )
+
+ ROM_REGION( 0x800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "046-c1.c1", 0x000000, 0x100000, CRC(fa720a4a) SHA1(364913b9fa40d46e4e39ae3cdae914cfd0de137d) )
+ ROM_LOAD16_BYTE( "046-c2.c2", 0x000001, 0x100000, CRC(c900c205) SHA1(50274e79aa26f334eb806288688b30720bade883) )
+ ROM_LOAD16_BYTE( "046-c3.c3", 0x200000, 0x100000, CRC(880e3c25) SHA1(b6974af0c833b766866919b6f15b6f8cef82530d) )
+ ROM_LOAD16_BYTE( "046-c4.c4", 0x200001, 0x100000, CRC(7a2248aa) SHA1(8af0b26025a54e3b91604dd24a3c1c518fbd8536) )
+ ROM_LOAD16_BYTE( "046-c5.c5", 0x400000, 0x100000, CRC(4b735e45) SHA1(2f8b46388c4696aee6a97e1e21cdadf6b142b01a) )
+ ROM_LOAD16_BYTE( "046-c6.c6", 0x400001, 0x100000, CRC(273171df) SHA1(9c35832221e016c12ef1ed71da167f565daaf86c) )
+ ROM_LOAD16_BYTE( "046-c7.c7", 0x600000, 0x100000, CRC(12829c4c) SHA1(ac5f3d848d7116fc35c97f53a72c85e049dd3a2f) )
+ ROM_LOAD16_BYTE( "046-c8.c8", 0x600001, 0x100000, CRC(c944e03d) SHA1(be23999b8ce09ee15ba500ce4d5e2a82a4f58d9b) )
+ROM_END
+
+/****************************************
+ ID-0047
+ . NGM-047
+ NEO-MVS PROG-G2 (SNK-9201) / NEO-MVS CHA42G-1
+ . NGH-047
+ NEO-AEG PROG-G2 (PRO-CT0) / NEO-AEG CHA42G-2B
+ NEO-AEG PROG-G2 (PRO-CT0) / NEO-AEG CHA42G-2
+****************************************/
+
+ROM_START( fatfury2 ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "047-p1.p1", 0x000000, 0x100000, CRC(ecfdbb69) SHA1(59e2f137c6eaf043df4ddae865a9159a10265c60) )
+ /* The original p1 is 8mbit; also found sets with p1 / p2 4mbit on eprom. */
+
+ NEO_SFIX_128K( "047-s1.s1", CRC(d7dbbf39) SHA1(29253e596f475ebd41a6e3bb53952e3a0ccd2eed) )
+
+ NEO_BIOS_AUDIO_128K( "047-m1.m1", CRC(820b0ba7) SHA1(5708248d89446e49184eaadb52f7c61b2b6c13c5) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "047-v1.v1", 0x000000, 0x200000, CRC(d9d00784) SHA1(f6a91eada8c23aa4518c4b82eeebca69f79d845c) )
+ ROM_LOAD( "047-v2.v2", 0x200000, 0x200000, CRC(2c9a4b33) SHA1(d4a1c0951c02c8919b3ec32ed96933634ff9e54c) )
+
+ ROM_REGION( 0x800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "047-c1.c1", 0x000000, 0x100000, CRC(f72a939e) SHA1(67fc398ec28061adca0d3be82bbe7297015800da) )
+ ROM_CONTINUE( 0x400000, 0x100000 )
+ ROM_LOAD16_BYTE( "047-c2.c2", 0x000001, 0x100000, CRC(05119a0d) SHA1(c2f100b73eb04f65b6ba6089d49aceb51b470ec6) )
+ ROM_CONTINUE( 0x400001, 0x100000 )
+ ROM_LOAD16_BYTE( "047-c3.c3", 0x200000, 0x100000, CRC(01e00738) SHA1(79654f24d777dd5eb68bafc3b8cb9db71d5822e2) )
+ ROM_CONTINUE( 0x600000, 0x100000 )
+ ROM_LOAD16_BYTE( "047-c4.c4", 0x200001, 0x100000, CRC(9fe27432) SHA1(89d22d77ba8bc6d1f6c974195c34ad61b9010de7) )
+ ROM_CONTINUE( 0x600001, 0x100000 )
+ROM_END
+
+/****************************************
+ ID-0048
+ . ??M-048
+ NEO-MVS PROGGSC / NEO-MVS CHA256
+****************************************/
+
+ROM_START( janshin ) /* MVS ONLY RELEASE */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "048-p1.p1", 0x000000, 0x100000, CRC(fa818cbb) SHA1(afee2c897b766c84f13891fb52c574fb18df0951) )
+
+ NEO_SFIX_128K( "048-s1.s1", CRC(8285b25a) SHA1(d983640cda3e346e38469b4d3ec8048b116a7bb7) )
+
+ NEO_BIOS_AUDIO_128K( "048-m1.m1", CRC(310467c7) SHA1(c529961195c9bdf5d1ce70a38ad129002d1f3b5f) )
+
+ ROM_DEFAULT_BIOS( "japan" ) /* so the mahjong panel will work in the service menu */
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "048-v1.v1", 0x000000, 0x200000, CRC(f1947d2b) SHA1(955ff91ab24eb2a7ec51ff46c9f9f2ec060456b2) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "048-c1.c1", 0x000000, 0x200000, CRC(3fa890e9) SHA1(e73d2802bacfbc2b2b16fbbedddde17488e4bbde) )
+ ROM_LOAD16_BYTE( "048-c2.c1", 0x000001, 0x200000, CRC(59c48ad8) SHA1(2630817e735a6d197377558f4324c1442803fe15) )
+ROM_END
+
+/****************************************
+ ID-0049
+ . NGM-049
+ NEO-MVS PROG16 / NEO-MVS CHA42G-1
+ . NGH-049
+ NEO-AEG PROG16 / NEO-AEG CHA42G-1
+****************************************/
+
+ROM_START( androdun ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "049-p1.p1", 0x000000, 0x080000, CRC(3b857da2) SHA1(4dd86c739944696c16c3cdd85935d6dfa9fdc276) )
+ ROM_LOAD16_WORD_SWAP( "049-p2.p2", 0x080000, 0x080000, CRC(2f062209) SHA1(991cf3e3677929b2cc0b2787b0c7b6ad3700f618) )
+
+ NEO_SFIX_128K( "049-s1.s1", CRC(6349de5d) SHA1(bcc44b9576d7bedd9a39294530bb66f707690c72) )
+
+ NEO_BIOS_AUDIO_128K( "049-m1.m1", CRC(edd2acf4) SHA1(c4ee6ba834d54b9fc5a854dbc41a05877e090371) )
+
+ ROM_REGION( 0x100000, "ymsnd", 0 )
+ ROM_LOAD( "049-v1.v1", 0x000000, 0x100000, CRC(ce43cb89) SHA1(47f82e077abb6efc6b1b0490412ae147d5d2acef) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "049-c1.c1", 0x000000, 0x100000, CRC(7ace6db3) SHA1(c41cc9de8c0788dcc49ca494fd3bb3124062d9dd) )
+ ROM_LOAD16_BYTE( "049-c2.c2", 0x000001, 0x100000, CRC(b17024f7) SHA1(fcf7efae48fcdccaf5255c145de414fb246128f0) )
+ROM_END
+
+/****************************************
+ ID-0050
+ . ALM-004
+ NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1
+ . ALH-004
+ NEO-AEG PROG42G-1 / NEO-AEG CHA42G-1
+****************************************/
+
+ROM_START( ncommand )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "050-p1.p1", 0x000000, 0x100000, CRC(4e097c40) SHA1(43311a7ca14a14dcd4a99d8576a12e897b078643) )
+
+ NEO_SFIX_128K( "050-s1.s1", CRC(db8f9c8e) SHA1(11cb82cf3c4d0fc2da5df0c26410a64808093610) )
+
+ NEO_BIOS_AUDIO_128K( "050-m1.m1", CRC(6fcf07d3) SHA1(e9ecff4bfec1f5964bf06645f75d80d611b6231c) )
+
+ ROM_REGION( 0x180000, "ymsnd", 0 )
+ ROM_LOAD( "050-v1.v1", 0x000000, 0x100000, CRC(23c3ab42) SHA1(b6c59bb180f1aa34c95f3ec923f3aafb689d57b0) )
+ ROM_LOAD( "050-v2.v2", 0x100000, 0x080000, CRC(80b8a984) SHA1(950cf0e78ceffa4037663f1086fbbc88588f49f2) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "050-c1.c1", 0x000000, 0x100000, CRC(87421a0a) SHA1(1d8faaf03778f7c5b062554d7333bbd3f0ca12ad) )
+ ROM_LOAD16_BYTE( "050-c2.c2", 0x000001, 0x100000, CRC(c4cf5548) SHA1(ef9eca5aeff9dda2209a050c2af00ed8979ae2bc) )
+ ROM_LOAD16_BYTE( "050-c3.c3", 0x200000, 0x100000, CRC(03422c1e) SHA1(920e5015aebe2ffc5ce43a52365c7f0a705f3b9e) )
+ ROM_LOAD16_BYTE( "050-c4.c4", 0x200001, 0x100000, CRC(0845eadb) SHA1(3c71a02bf0e07a5381846bb6d75bbe7dd546adea) )
+ROM_END
+
+/****************************************
+ ID-0051
+ . AIM-051
+ NEO-MVS PROG-G2 / NEO-MVS CHA42G-1
+ NEO-MVS PROG 4096 / NEO-MVS CHA 42G-2
+ . AIH-051
+****************************************/
+
+ROM_START( viewpoin )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "051-p1.p1", 0x000000, 0x100000, CRC(17aa899d) SHA1(674cd8ace7acdf4f407de741e3d0071bcb49c902) )
+
+ NEO_SFIX_128K( "051-s1.s1", CRC(9fea5758) SHA1(5c6f01da89f2639cf741ee7c39e27023b8083052) )
+
+ NEO_BIOS_AUDIO_128K( "051-m1.m1", CRC(8e69f29a) SHA1(7a25f4997996434ea1b7d0d1ca9e7aaf966cbd03) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ /* What board was originally used (labels 051-V2 and 051-V4)? MVS is twice confirmed on NEO-MVS PROG-G2 */
+ ROM_LOAD( "051-v2.v1", 0x000000, 0x200000, CRC(019978b6) SHA1(7896a551115fc6ed38b5944e0c8dcb2b2c1c077d) )
+ ROM_LOAD( "051-v4.v2", 0x200000, 0x200000, CRC(5758f38c) SHA1(da10f4b7d22d9139bbf068bd940be82168a74ca1) )
+
+ ROM_REGION( 0x600000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "051-c1.c1", 0x000000, 0x100000, CRC(d624c132) SHA1(49c7e9f020cba45d7083b45252bcc03397f8c286) )
+ ROM_CONTINUE( 0x400000, 0x100000 )
+ ROM_LOAD16_BYTE( "051-c2.c2", 0x000001, 0x100000, CRC(40d69f1e) SHA1(ec4a13582772594957f927622d50f54b0dfcd8d8) )
+ ROM_CONTINUE( 0x400001, 0x100000 )
+ROM_END
+
+/****************************************
+ ID-0052
+ . NGM-052
+ NEO-MVS PROG-G2 (SNK-9201) / NEO-MVS CHA 42G-2
+ . NGH-052
+ NEO-AEG PROG-G2 (SNK-9201) / NEO-AEG CHA42G-2
+****************************************/
+
+ROM_START( ssideki )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "052-p1.p1", 0x000000, 0x080000, CRC(9cd97256) SHA1(1c780b711137fd79cc81b01941e84f3d59e0071f) )
+
+ NEO_SFIX_128K( "052-s1.s1", CRC(97689804) SHA1(fa8dab3b3353d7115a0368f3fc749950c0186fbc) )
+
+ NEO_BIOS_AUDIO_128K( "052-m1.m1", CRC(49f17d2d) SHA1(70971fcf71ae3a6b2e26e7ade8063941fb178ae5) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "052-v1.v1", 0x000000, 0x200000, CRC(22c097a5) SHA1(328c4e6db0a026f54a633cff1443a3f964a8daea) )
+
+ ROM_REGION( 0x600000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "052-c1.c1", 0x000000, 0x100000, CRC(53e1c002) SHA1(2125b1be379ea7933893ffb1cd65d6c4bf8b03bd) )
+ ROM_CONTINUE( 0x400000, 0x100000 )
+ ROM_LOAD16_BYTE( "052-c2.c2", 0x000001, 0x100000, CRC(776a2d1f) SHA1(bca0bac87443e9e78c623d284f6cc96cc9c9098f) )
+ ROM_CONTINUE( 0x400001, 0x100000 )
+ROM_END
+
+/****************************************
+ ID-0053
+ . ALM-005
+ NEO-MVS PROG16 / NEO-MVS CHA42G-1
+ . ALH-005
+ NEO-AEG PROG16 / NEO-AEG CHA42G-1
+ NEO-AEG PROG-G2 / NEO-AEG CHA42G-2C
+****************************************/
+
+ROM_START( wh1 ) /* MVS VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "053-epr.p1", 0x000000, 0x080000, CRC(d42e1e9a) SHA1(9d1911fe4bf6202466ec45557dd008cbf01ca9c6) )
+ ROM_LOAD16_WORD_SWAP( "053-epr.p2", 0x080000, 0x080000, CRC(0e33e8a3) SHA1(4b7086edb504f3c30529d51ba8f453d48eba5164) )
+ /* P's on eprom, correct chip label unknown */
+
+ NEO_SFIX_128K( "053-s1.s1", CRC(8c2c2d6b) SHA1(87fa79611c6f8886dcc8766814829c669c65b40f) )
+
+ NEO_BIOS_AUDIO_128K( "053-m1.m1", CRC(1bd9d04b) SHA1(65cd7b002123ed1a3111e3d942608d0082799ff3) )
+
+ ROM_REGION( 0x300000, "ymsnd", 0 )
+ ROM_LOAD( "053-v2.v2", 0x000000, 0x200000, CRC(a68df485) SHA1(007fa715423fba72c899cd3db3f4bec13281cf7a) )
+ ROM_LOAD( "053-v4.v4", 0x200000, 0x100000, CRC(7bea8f66) SHA1(428e8721bd87f7faa756adb1e12672219be46c1d) )
+
+ ROM_REGION( 0x600000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "053-c1.c1", 0x000000, 0x100000, CRC(85eb5bce) SHA1(3d03d29296ca6e6b5106aac4aaeec9d4b4ed1313) )
+ ROM_CONTINUE( 0x400000, 0x100000 )
+ ROM_LOAD16_BYTE( "053-c2.c2", 0x000001, 0x100000, CRC(ec93b048) SHA1(d4159210df94e259f874a4671d271ec27be13451) )
+ ROM_CONTINUE( 0x400001, 0x100000 )
+ ROM_LOAD16_BYTE( "053-c3.c3", 0x200000, 0x100000, CRC(0dd64965) SHA1(e97b3b8a461da5e8861b3dfdacb25e007ced37a1) )
+ ROM_LOAD16_BYTE( "053-c4.c4", 0x200001, 0x100000, CRC(9270d954) SHA1(a2ef909868f6b06cdcc22a63ddf6c96be12b999c) )
+ROM_END
+
+ROM_START( wh1h ) /* AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "053-p1.p1", 0x000000, 0x080000, CRC(95b574cb) SHA1(b7b7af6a04c3d902e7f8852897741ecaf0b1062c) )
+ ROM_LOAD16_WORD_SWAP( "053-p2.p2", 0x080000, 0x080000, CRC(f198ed45) SHA1(24ccc091e97f63796562bb5b30df51f39bd504ef) )
+
+ NEO_SFIX_128K( "053-s1.s1", CRC(8c2c2d6b) SHA1(87fa79611c6f8886dcc8766814829c669c65b40f) )
+
+ NEO_BIOS_AUDIO_128K( "053-m1.m1", CRC(1bd9d04b) SHA1(65cd7b002123ed1a3111e3d942608d0082799ff3) )
+
+ ROM_REGION( 0x300000, "ymsnd", 0 )
+ ROM_LOAD( "053-v2.v2", 0x000000, 0x200000, CRC(a68df485) SHA1(007fa715423fba72c899cd3db3f4bec13281cf7a) )
+ ROM_LOAD( "053-v4.v4", 0x200000, 0x100000, CRC(7bea8f66) SHA1(428e8721bd87f7faa756adb1e12672219be46c1d) )
+
+ ROM_REGION( 0x600000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "053-c1.c1", 0x000000, 0x100000, CRC(85eb5bce) SHA1(3d03d29296ca6e6b5106aac4aaeec9d4b4ed1313) )
+ ROM_CONTINUE( 0x400000, 0x100000 )
+ ROM_LOAD16_BYTE( "053-c2.c2", 0x000001, 0x100000, CRC(ec93b048) SHA1(d4159210df94e259f874a4671d271ec27be13451) )
+ ROM_CONTINUE( 0x400001, 0x100000 )
+ ROM_LOAD16_BYTE( "053-c3.c3", 0x200000, 0x100000, CRC(0dd64965) SHA1(e97b3b8a461da5e8861b3dfdacb25e007ced37a1) )
+ ROM_LOAD16_BYTE( "053-c4.c4", 0x200001, 0x100000, CRC(9270d954) SHA1(a2ef909868f6b06cdcc22a63ddf6c96be12b999c) )
+ROM_END
+
+ROM_START( wh1ha )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "053-p1_a.p1", 0x000000, 0x080000, CRC(ed29fde2) SHA1(52b8ca5b804f786f95e1dfb348d8c7b82f1d4ddf) )
+ ROM_LOAD16_WORD_SWAP( "053-p2_a.p2", 0x080000, 0x080000, CRC(98f2b158) SHA1(a64e1425970eb53cc910891db39973dee3d54ccc) )
+ /* Correct chip labels for p1 and p2 unknown */
+
+ NEO_SFIX_128K( "053-s1.s1", CRC(8c2c2d6b) SHA1(87fa79611c6f8886dcc8766814829c669c65b40f) )
+
+ NEO_BIOS_AUDIO_128K( "053-m1.m1", CRC(1bd9d04b) SHA1(65cd7b002123ed1a3111e3d942608d0082799ff3) )
+
+ ROM_REGION( 0x300000, "ymsnd", 0 )
+ ROM_LOAD( "053-v2.v2", 0x000000, 0x200000, CRC(a68df485) SHA1(007fa715423fba72c899cd3db3f4bec13281cf7a) )
+ ROM_LOAD( "053-v4.v4", 0x200000, 0x100000, CRC(7bea8f66) SHA1(428e8721bd87f7faa756adb1e12672219be46c1d) )
+
+ ROM_REGION( 0x600000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "053-c1.c1", 0x000000, 0x100000, CRC(85eb5bce) SHA1(3d03d29296ca6e6b5106aac4aaeec9d4b4ed1313) )
+ ROM_CONTINUE( 0x400000, 0x100000 )
+ ROM_LOAD16_BYTE( "053-c2.c2", 0x000001, 0x100000, CRC(ec93b048) SHA1(d4159210df94e259f874a4671d271ec27be13451) )
+ ROM_CONTINUE( 0x400001, 0x100000 )
+ ROM_LOAD16_BYTE( "053-c3.c3", 0x200000, 0x100000, CRC(0dd64965) SHA1(e97b3b8a461da5e8861b3dfdacb25e007ced37a1) )
+ ROM_LOAD16_BYTE( "053-c4.c4", 0x200001, 0x100000, CRC(9270d954) SHA1(a2ef909868f6b06cdcc22a63ddf6c96be12b999c) )
+ROM_END
+
+/****************************************
+ ID-0054
+ Crossed Swords 2 (CD only? not confirmed, MVS might exist)
+****************************************/
+
+/****************************************
+ ID-0055
+ . NGM-055
+ NEO-MVS PROGTOP / NEO-MVS CHA256
+ NEO-MVS PROGTOP / NEO-MVS CHA256B
+ . NGH-055
+ NEO-AEG PROGRK / NEO-AEG CHA256
+****************************************/
+
+ROM_START( kof94 ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "055-p1.p1", 0x100000, 0x100000, CRC(f10a2042) SHA1(d08a3f3c28be4b1793de7d362456281329fe1828) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "055-s1.s1", CRC(825976c1) SHA1(cb6a70bdd95d449d25196ca269b621c362db6743) )
+
+ NEO_BIOS_AUDIO_128K( "055-m1.m1", CRC(f6e77cf5) SHA1(292a3e3a4918ffe72bd1c41acb927b91844e035e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "055-v1.v1", 0x000000, 0x200000, CRC(8889596d) SHA1(c9ce713b720511438dbd3fe3bcc7c246f475c6a2) )
+ ROM_LOAD( "055-v2.v2", 0x200000, 0x200000, CRC(25022b27) SHA1(2b040a831c3c92ac6e4719de38009a0d55b64f6b) )
+ ROM_LOAD( "055-v3.v3", 0x400000, 0x200000, CRC(83cf32c0) SHA1(34a31a37eb10945b5169e96321bcea06eec33a00) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "055-c1.c1", 0x000000, 0x200000, CRC(b96ef460) SHA1(e52f5303c17b50ce165c008be2837336369c110b) )
+ ROM_LOAD16_BYTE( "055-c2.c2", 0x000001, 0x200000, CRC(15e096a7) SHA1(237c2a3d059de00bfca66e0016ed325d7a32bfec) )
+ ROM_LOAD16_BYTE( "055-c3.c3", 0x400000, 0x200000, CRC(54f66254) SHA1(c594384bcd8b03beb8c595591505fecc44b185ac) )
+ ROM_LOAD16_BYTE( "055-c4.c4", 0x400001, 0x200000, CRC(0b01765f) SHA1(ec1fdcc944611408367bf5023d4ebe7edd9dfa88) )
+ ROM_LOAD16_BYTE( "055-c5.c5", 0x800000, 0x200000, CRC(ee759363) SHA1(8a5621c1b1f8267b9b9b6a14ab4944de542e1945) )
+ ROM_LOAD16_BYTE( "055-c6.c6", 0x800001, 0x200000, CRC(498da52c) SHA1(1e6e6202ee053a5261db889177ce3a087e078bda) )
+ ROM_LOAD16_BYTE( "055-c7.c7", 0xc00000, 0x200000, CRC(62f66888) SHA1(ac91a0eab0753bee175ad40213a4ae5d38ed5b87) )
+ ROM_LOAD16_BYTE( "055-c8.c8", 0xc00001, 0x200000, CRC(fe0a235d) SHA1(a45c66836e4e3c77dfef9d4c6cc422cb59169149) )
+ROM_END
+
+/****************************************
+ ID-0056
+ . NGM-056
+ NEO-MVS PROGGSC / NEO-MVS CHA256
+ . NGH-056
+ NEO-AEG PROGRKB / NEO-AEG CHA256[B]
+****************************************/
+
+ROM_START( aof2 ) /* MVS VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "056-p1.p1", 0x000000, 0x100000, CRC(a3b1d021) SHA1(ee42f3ca4516226b0088d0303ed28e3ecdabcd71) )
+
+ NEO_SFIX_128K( "056-s1.s1", CRC(8b02638e) SHA1(aa4d28804ca602da776948b5f223ea89e427906b) )
+
+ NEO_BIOS_AUDIO_128K( "056-m1.m1", CRC(f27e9d52) SHA1(dddae733d87ce7c88ad2580a8f64cb6ff9572e67) )
+
+ ROM_REGION( 0x500000, "ymsnd", 0 )
+ ROM_LOAD( "056-v1.v1", 0x000000, 0x200000, CRC(4628fde0) SHA1(ece2a50f5270d844d58401b1447d1d856d78ea45) )
+ ROM_LOAD( "056-v2.v2", 0x200000, 0x200000, CRC(b710e2f2) SHA1(df4da585203eea7554d3ce718eb107e9cb6a0254) )
+ ROM_LOAD( "056-v3.v3", 0x400000, 0x100000, CRC(d168c301) SHA1(969273d1d11943e81560959359a2c4e69522af0e) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ /* Different layout with 4xC (32mbit) also exists; chip labels are 056-C13, 056-C24, 056-C57 and 056-C68 */
+ ROM_LOAD16_BYTE( "056-c1.c1", 0x000000, 0x200000, CRC(17b9cbd2) SHA1(1eee81e02763d384bd1c10a6012473ca931e4093) )
+ ROM_LOAD16_BYTE( "056-c2.c2", 0x000001, 0x200000, CRC(5fd76b67) SHA1(11925a41a53b53c6df4a5ebd28f98300950f743b) )
+ ROM_LOAD16_BYTE( "056-c3.c3", 0x400000, 0x200000, CRC(d2c88768) SHA1(22e2d84aa0c095944190e249ce87ef50d3f7b8ce) )
+ ROM_LOAD16_BYTE( "056-c4.c4", 0x400001, 0x200000, CRC(db39b883) SHA1(59de86c513dc4e230ae25d9e3b7e84621b657b54) )
+ ROM_LOAD16_BYTE( "056-c5.c5", 0x800000, 0x200000, CRC(c3074137) SHA1(9a75e3d63cb98d54f900dcfb3a03e21f3148d32f) )
+ ROM_LOAD16_BYTE( "056-c6.c6", 0x800001, 0x200000, CRC(31de68d3) SHA1(13ba7046cdd6863125f8284e60f102d4720af5a4) )
+ ROM_LOAD16_BYTE( "056-c7.c7", 0xc00000, 0x200000, CRC(3f36df57) SHA1(79ee97e9ae811a51141b535633f90e1491209d54) )
+ ROM_LOAD16_BYTE( "056-c8.c8", 0xc00001, 0x200000, CRC(e546d7a8) SHA1(74a2fca994a5a93a5784a46c0f68193122456a09) )
+ROM_END
+
+ROM_START( aof2a ) /* AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "056-p1.p1", 0x000000, 0x100000, CRC(a3b1d021) SHA1(ee42f3ca4516226b0088d0303ed28e3ecdabcd71) )
+ /* the rom below acts as a patch to the program rom in the cart, replacing the first 512kb */
+ ROM_LOAD16_WORD_SWAP( "056-epr.ep1", 0x000000, 0x80000, CRC(75d6301c) SHA1(e72d15fba55f96be7b4fa29e705a7b78f56edf7d) )
+ /* P is on eprom, correct chip label unknown */
+
+ NEO_SFIX_128K( "056-s1.s1", CRC(8b02638e) SHA1(aa4d28804ca602da776948b5f223ea89e427906b) )
+
+ NEO_BIOS_AUDIO_128K( "056-m1.m1", CRC(f27e9d52) SHA1(dddae733d87ce7c88ad2580a8f64cb6ff9572e67) )
+
+ ROM_REGION( 0x500000, "ymsnd", 0 )
+ ROM_LOAD( "056-v1.v1", 0x000000, 0x200000, CRC(4628fde0) SHA1(ece2a50f5270d844d58401b1447d1d856d78ea45) )
+ ROM_LOAD( "056-v2.v2", 0x200000, 0x200000, CRC(b710e2f2) SHA1(df4da585203eea7554d3ce718eb107e9cb6a0254) )
+ ROM_LOAD( "056-v3.v3", 0x400000, 0x100000, CRC(d168c301) SHA1(969273d1d11943e81560959359a2c4e69522af0e) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "056-c1.c1", 0x000000, 0x200000, CRC(17b9cbd2) SHA1(1eee81e02763d384bd1c10a6012473ca931e4093) )
+ ROM_LOAD16_BYTE( "056-c2.c2", 0x000001, 0x200000, CRC(5fd76b67) SHA1(11925a41a53b53c6df4a5ebd28f98300950f743b) )
+ ROM_LOAD16_BYTE( "056-c3.c3", 0x400000, 0x200000, CRC(d2c88768) SHA1(22e2d84aa0c095944190e249ce87ef50d3f7b8ce) )
+ ROM_LOAD16_BYTE( "056-c4.c4", 0x400001, 0x200000, CRC(db39b883) SHA1(59de86c513dc4e230ae25d9e3b7e84621b657b54) )
+ ROM_LOAD16_BYTE( "056-c5.c5", 0x800000, 0x200000, CRC(c3074137) SHA1(9a75e3d63cb98d54f900dcfb3a03e21f3148d32f) )
+ ROM_LOAD16_BYTE( "056-c6.c6", 0x800001, 0x200000, CRC(31de68d3) SHA1(13ba7046cdd6863125f8284e60f102d4720af5a4) )
+ ROM_LOAD16_BYTE( "056-c7.c7", 0xc00000, 0x200000, CRC(3f36df57) SHA1(79ee97e9ae811a51141b535633f90e1491209d54) )
+ ROM_LOAD16_BYTE( "056-c8.c8", 0xc00001, 0x200000, CRC(e546d7a8) SHA1(74a2fca994a5a93a5784a46c0f68193122456a09) )
+ROM_END
+
+/****************************************
+ ID-0057
+ . ALM-006
+ NEO-MVS PROG 4096 B / NEO-MVS CHA 42G-3
+ . ALH-006
+ NEO-AEG PROG4096 B / NEO-AEG CHA42G-3
+****************************************/
+
+ROM_START( wh2 ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "057-p1.p1", 0x100000, 0x100000, CRC(65a891d9) SHA1(ff8d5ccb0dd22c523902bb3db3c645583a335056) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "057-s1.s1", CRC(fcaeb3a4) SHA1(1f3f85e38b8552333261c04ae5af0d6e3b310622) )
+
+ NEO_BIOS_AUDIO_128K( "057-m1.m1", CRC(8fa3bc77) SHA1(982f92978671e4ee66630948e6bb7565b37b5dc0) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "057-v1.v1", 0x000000, 0x200000, CRC(8877e301) SHA1(1bab988d74ea8fd12db201c257ec844622cf5f4e) )
+ ROM_LOAD( "057-v2.v2", 0x200000, 0x200000, CRC(c1317ff4) SHA1(4c28b2b5998abaeaa5143f2f3a9ba52c6041f4f3) )
+
+ ROM_REGION( 0xc00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "057-c1.c1", 0x000000, 0x200000, CRC(21c6bb91) SHA1(a2c17d0c91dd59528d8fa7fe110af8b20b25ff99) )
+ ROM_LOAD16_BYTE( "057-c2.c2", 0x000001, 0x200000, CRC(a3999925) SHA1(0ee861a77850d378d03c1bf00b9692abd860c759) )
+ ROM_LOAD16_BYTE( "057-c3.c3", 0x400000, 0x200000, CRC(b725a219) SHA1(4857687d156a9150a69b97d2729245a51c144a0c) )
+ ROM_LOAD16_BYTE( "057-c4.c4", 0x400001, 0x200000, CRC(8d96425e) SHA1(0f79c868a6a33ad25e38d842f30ec4440d809033) )
+ ROM_LOAD16_BYTE( "057-c5.c5", 0x800000, 0x200000, CRC(b20354af) SHA1(da7609fd467f2f4d71d92970f438a04d11ab1cc1) )
+ ROM_LOAD16_BYTE( "057-c6.c6", 0x800001, 0x200000, CRC(b13d1de3) SHA1(7d749c23a33d90fe50279e884540d71cf1aaaa6b) )
+ROM_END
+
+/****************************************
+ ID-0058
+ . NGM-058
+ NEO-MVS PROGGSC / NEO-MVS CHA42G-3B
+ NEO-MVS PROGGSC / NEO-MVS CHA 42G-3
+ . NGH-058
+ NEO-AEG PROGGS / NEO-AEG CHA42G-4
+****************************************/
+
+ROM_START( fatfursp ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x180000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "058-p1.p1", 0x000000, 0x100000, CRC(2f585ba2) SHA1(429b4bf43fb9b1082c15d645ca328f9d175b976b) )
+ ROM_LOAD16_WORD_SWAP( "058-p2.sp2", 0x100000, 0x080000, CRC(d7c71a6b) SHA1(b3428063031a2e5857da40a5d2ffa87fb550c1bb) )
+
+ NEO_SFIX_128K( "058-s1.s1", CRC(2df03197) SHA1(24083cfc97e720ac9e131c9fe37df57e27c49294) )
+
+ NEO_BIOS_AUDIO_128K( "058-m1.m1", CRC(ccc5186e) SHA1(cf9091c523c182aebfb928c91640b2d72fd70123) )
+
+ ROM_REGION( 0x500000, "ymsnd", 0 )
+ ROM_LOAD( "058-v1.v1", 0x000000, 0x200000, CRC(55d7ce84) SHA1(05ac6a395d9bf9166925acca176a8d6129f533c8) )
+ ROM_LOAD( "058-v2.v2", 0x200000, 0x200000, CRC(ee080b10) SHA1(29814fc21bbe30d37745c8918fab00c83a309be4) )
+ ROM_LOAD( "058-v3.v3", 0x400000, 0x100000, CRC(f9eb3d4a) SHA1(d1747f9460b965f6daf4f881ed4ecd04c5253434) )
+
+ ROM_REGION( 0xc00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "058-c1.c1", 0x000000, 0x200000, CRC(044ab13c) SHA1(569d283638a132bc163faac2a9055497017ee0d2) )
+ ROM_LOAD16_BYTE( "058-c2.c2", 0x000001, 0x200000, CRC(11e6bf96) SHA1(c093a4f93f13e07b276e28b30c2a14dda9135d8f) )
+ ROM_LOAD16_BYTE( "058-c3.c3", 0x400000, 0x200000, CRC(6f7938d5) SHA1(be057b0a3faeb76d5fff161d3e6fea8a26e11d2c) )
+ ROM_LOAD16_BYTE( "058-c4.c4", 0x400001, 0x200000, CRC(4ad066ff) SHA1(4e304646d954d5f7bbabc5d068e85de31d38830f) )
+ ROM_LOAD16_BYTE( "058-c5.c5", 0x800000, 0x200000, CRC(49c5e0bf) SHA1(f3784178f90751990ea47a082a6aa869ee3566c9) )
+ ROM_LOAD16_BYTE( "058-c6.c6", 0x800001, 0x200000, CRC(8ff1f43d) SHA1(6180ceb5412a3e2e34e9513a3283b9f63087f747) )
+ROM_END
+
+ROM_START( fatfurspa ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x180000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "058-p1.p1", 0x000000, 0x100000, CRC(2f585ba2) SHA1(429b4bf43fb9b1082c15d645ca328f9d175b976b) )
+ ROM_LOAD16_WORD_SWAP( "058-p2.sp2", 0x100000, 0x080000, CRC(d7c71a6b) SHA1(b3428063031a2e5857da40a5d2ffa87fb550c1bb) )
+ /* the rom below acts as a patch to the program rom in the cart, replacing the first 512kb */
+ ROM_LOAD16_WORD_SWAP( "058-epr.ep1", 0x000000, 0x080000, CRC(9f0c1e1a) SHA1(02861b0f230541becccc3df6a2c85dbe8733e7ce) )
+ /* P is on eprom, correct chip label unknown */
+
+ NEO_SFIX_128K( "058-s1.s1", CRC(2df03197) SHA1(24083cfc97e720ac9e131c9fe37df57e27c49294) )
+
+ NEO_BIOS_AUDIO_128K( "058-m1.m1", CRC(ccc5186e) SHA1(cf9091c523c182aebfb928c91640b2d72fd70123) )
+
+ ROM_REGION( 0x500000, "ymsnd", 0 )
+ ROM_LOAD( "058-v1.v1", 0x000000, 0x200000, CRC(55d7ce84) SHA1(05ac6a395d9bf9166925acca176a8d6129f533c8) )
+ ROM_LOAD( "058-v2.v2", 0x200000, 0x200000, CRC(ee080b10) SHA1(29814fc21bbe30d37745c8918fab00c83a309be4) )
+ ROM_LOAD( "058-v3.v3", 0x400000, 0x100000, CRC(f9eb3d4a) SHA1(d1747f9460b965f6daf4f881ed4ecd04c5253434) )
+
+ ROM_REGION( 0xc00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "058-c1.c1", 0x000000, 0x200000, CRC(044ab13c) SHA1(569d283638a132bc163faac2a9055497017ee0d2) )
+ ROM_LOAD16_BYTE( "058-c2.c2", 0x000001, 0x200000, CRC(11e6bf96) SHA1(c093a4f93f13e07b276e28b30c2a14dda9135d8f) )
+ ROM_LOAD16_BYTE( "058-c3.c3", 0x400000, 0x200000, CRC(6f7938d5) SHA1(be057b0a3faeb76d5fff161d3e6fea8a26e11d2c) )
+ ROM_LOAD16_BYTE( "058-c4.c4", 0x400001, 0x200000, CRC(4ad066ff) SHA1(4e304646d954d5f7bbabc5d068e85de31d38830f) )
+ ROM_LOAD16_BYTE( "058-c5.c5", 0x800000, 0x200000, CRC(49c5e0bf) SHA1(f3784178f90751990ea47a082a6aa869ee3566c9) )
+ ROM_LOAD16_BYTE( "058-c6.c6", 0x800001, 0x200000, CRC(8ff1f43d) SHA1(6180ceb5412a3e2e34e9513a3283b9f63087f747) )
+ROM_END
+
+/****************************************
+ ID-0059
+ . NGM-059
+ NEO-MVS PROGTOP / NEO-MVS CHA256
+ NEO-MVS PROG 4096 B / NEO-MVS CHA 42G-3
+ . NGH-059
+****************************************/
+
+ROM_START( savagere )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "059-p1.p1", 0x100000, 0x100000, CRC(01d4e9c0) SHA1(3179d2be59bf2de6918d506117cff50acf7e09f3) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "059-s1.s1", CRC(e08978ca) SHA1(55152cb9bd0403ae8656b93a6b1522dba5db6d1a) )
+
+ NEO_BIOS_AUDIO_128K( "059-m1.m1", CRC(29992eba) SHA1(187be624abe8670503edb235ff21ae8fdc3866e0) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "059-v1.v1", 0x000000, 0x200000, CRC(530c50fd) SHA1(29401cee7f7d2c199c7cb58092e86b28205e81ad) )
+ ROM_LOAD( "059-v2.v2", 0x200000, 0x200000, CRC(eb6f1cdb) SHA1(7a311388315ea543babf872f62219fdc4d39d013) )
+ ROM_LOAD( "059-v3.v3", 0x400000, 0x200000, CRC(7038c2f9) SHA1(c1d6f86b24feba03fe009b58199d2eeabe572f4e) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "059-c1.c1", 0x000000, 0x200000, CRC(763ba611) SHA1(d3262e0332c894ee149c5963f882cc5e5562ee57) )
+ ROM_LOAD16_BYTE( "059-c2.c2", 0x000001, 0x200000, CRC(e05e8ca6) SHA1(986a9b16ff92bc101ab567d2d01348e093abea9a) )
+ ROM_LOAD16_BYTE( "059-c3.c3", 0x400000, 0x200000, CRC(3e4eba4b) SHA1(770adec719e63a30ebe9522cc7576caaca44f3b2) )
+ ROM_LOAD16_BYTE( "059-c4.c4", 0x400001, 0x200000, CRC(3c2a3808) SHA1(698adcec0715c9e78b6286be38debf0ce28fd644) )
+ ROM_LOAD16_BYTE( "059-c5.c5", 0x800000, 0x200000, CRC(59013f9e) SHA1(5bf48fcc450da72a8c4685f6e3887e67eae49988) )
+ ROM_LOAD16_BYTE( "059-c6.c6", 0x800001, 0x200000, CRC(1c8d5def) SHA1(475d89a5c4922a9f6bd756d23c2624d57b6e9d62) )
+ ROM_LOAD16_BYTE( "059-c7.c7", 0xc00000, 0x200000, CRC(c88f7035) SHA1(c29a428b741f4fe7b71a3bc23c87925b6bc1ca8f) )
+ ROM_LOAD16_BYTE( "059-c8.c8", 0xc00001, 0x200000, CRC(484ce3ba) SHA1(4f21ed20ce6e2b67e2b079404599310c94f591ff) )
+ROM_END
+
+/****************************************
+ ID-0060
+ . ??M-060
+ NEO-MVS PROGGSC / NEO-MVS CHA256B
+****************************************/
+
+ROM_START( fightfev ) /* MVS ONLY RELEASE */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "060-p1.p1", 0x0000000, 0x100000, CRC(2a104b50) SHA1(3eb663d3df7074e1cdf4c0e450a35c9cf55d8979) )
+
+ NEO_SFIX_128K( "060-s1.s1", CRC(d62a72e9) SHA1(a23e4c4fd4ec11a7467ce41227c418b4dd1ef649) )
+
+ NEO_BIOS_AUDIO_128K( "060-m1.m1", CRC(0b7c4e65) SHA1(999a1e784de18db3f1332b30bc425836ea6970be) )
+
+ ROM_REGION( 0x300000, "ymsnd", 0 )
+ ROM_LOAD( "060-v1.v1", 0x000000, 0x200000, CRC(f417c215) SHA1(0f53b8dd056f43b5d880628e8b74c2b27881ffac) )
+ ROM_LOAD( "060-v2.v2", 0x200000, 0x100000, CRC(efcff7cf) SHA1(e8372303724284a750b706dc6bf7641e4c52bb95) )
+
+ ROM_REGION( 0x0800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "060-c1.c1", 0x0000000, 0x200000, CRC(8908fff9) SHA1(f8c16ab0248b60f3a62e0d4d65c456e2f8e4da49) )
+ ROM_LOAD16_BYTE( "060-c2.c2", 0x0000001, 0x200000, CRC(c6649492) SHA1(5d39b077387ed6897ac075ede4a2aa94bb64545e) )
+ ROM_LOAD16_BYTE( "060-c3.c3", 0x0400000, 0x200000, CRC(0956b437) SHA1(c70be8b5cebf321afe4c3f5e9a12413c3077694a) )
+ ROM_LOAD16_BYTE( "060-c4.c4", 0x0400001, 0x200000, CRC(026f3b62) SHA1(d608483b70d60e7aa0e41f25a8b3fed508129eb7) )
+ROM_END
+
+ROM_START( fightfeva ) /* MVS ONLY RELEASE */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "060-p1.p1", 0x0000000, 0x100000, CRC(2a104b50) SHA1(3eb663d3df7074e1cdf4c0e450a35c9cf55d8979) )
+ /* the rom below acts as a patch to the program rom in the cart, replacing the first 512kb */
+ ROM_LOAD16_WORD_SWAP( "1.sp2", 0x000000, 0x080000, CRC(3032041b) SHA1(4b8ed2e6f74579ea35a53e06ccac42d6905b0f51) )
+ /* P is on eprom, has a Viccom logo at the top of the label with a circled '1' in the center */
+
+ NEO_SFIX_128K( "060-s1.s1", CRC(d62a72e9) SHA1(a23e4c4fd4ec11a7467ce41227c418b4dd1ef649) )
+
+ NEO_BIOS_AUDIO_128K( "060-m1.m1", CRC(0b7c4e65) SHA1(999a1e784de18db3f1332b30bc425836ea6970be) )
+
+ ROM_REGION( 0x300000, "ymsnd", 0 )
+ ROM_LOAD( "060-v1.v1", 0x000000, 0x200000, CRC(f417c215) SHA1(0f53b8dd056f43b5d880628e8b74c2b27881ffac) )
+ ROM_LOAD( "060-v2.v2", 0x200000, 0x100000, CRC(efcff7cf) SHA1(e8372303724284a750b706dc6bf7641e4c52bb95) )
+
+ ROM_REGION( 0x0800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "060-c1.c1", 0x0000000, 0x200000, CRC(8908fff9) SHA1(f8c16ab0248b60f3a62e0d4d65c456e2f8e4da49) )
+ ROM_LOAD16_BYTE( "060-c2.c2", 0x0000001, 0x200000, CRC(c6649492) SHA1(5d39b077387ed6897ac075ede4a2aa94bb64545e) )
+ ROM_LOAD16_BYTE( "060-c3.c3", 0x0400000, 0x200000, CRC(0956b437) SHA1(c70be8b5cebf321afe4c3f5e9a12413c3077694a) )
+ ROM_LOAD16_BYTE( "060-c4.c4", 0x0400001, 0x200000, CRC(026f3b62) SHA1(d608483b70d60e7aa0e41f25a8b3fed508129eb7) )
+ROM_END
+
+/****************************************
+ ID-0061
+ . NGM-061
+ NEO-MVS PROGGSC / NEO-MVS CHA256
+ NEO-MVS PROGTOP / NEO-MVS CHA256
+ NEO-MVS PROG 4096 B / NEO-MVS CHA256
+ . NGH-061
+ NEO-AEG PROGRKB / NEO-AEG CHA256[B]
+****************************************/
+
+ROM_START( ssideki2 ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "061-p1.p1", 0x000000, 0x100000, CRC(5969e0dc) SHA1(78abea880c125ec5a85bef6404478512a34b5513) )
+ /* also found MVS sets with ep1 / ep2 on eprom; correct chip label unknown. */
+
+ NEO_SFIX_128K( "061-s1.s1", CRC(226d1b68) SHA1(de010f6fda3ddadb181fe37daa6105f22e78b970) )
+
+ NEO_BIOS_AUDIO_128K( "061-m1.m1", CRC(156f6951) SHA1(49686f615f109a02b4f23931f1c84fee13872ffd) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "061-v1.v1", 0x000000, 0x200000, CRC(f081c8d3) SHA1(fc9da0ddc1ddd1f9ae1443a726815c25e9dc38ae) )
+ ROM_LOAD( "061-v2.v2", 0x200000, 0x200000, CRC(7cd63302) SHA1(c39984c0ae0a8e76f1fc036344bbb83635c18937) )
+
+ ROM_REGION( 0x800000, "sprites", 0 )
+ /* Different layout with 8xC (8 mbit) also exists; naming sheme 061-Cx */
+ ROM_LOAD16_BYTE( "061-c1-16.c1", 0x000000, 0x200000, CRC(a626474f) SHA1(d695f0dcb9480088b3a7c1488bd541b4c159528a) )
+ ROM_LOAD16_BYTE( "061-c2-16.c2", 0x000001, 0x200000, CRC(c3be42ae) SHA1(7fa65538bd0a0a162e4d3e9f49913da59d915e02) )
+ ROM_LOAD16_BYTE( "061-c3-16.c3", 0x400000, 0x200000, CRC(2a7b98b9) SHA1(75e1019dca8a8583afcc53651ac856cba3a96315) )
+ ROM_LOAD16_BYTE( "061-c4-16.c4", 0x400001, 0x200000, CRC(c0be9a1f) SHA1(228f41eaefdf3e147761f8ef849e3b5f321877d4) )
+ROM_END
+
+/****************************************
+ ID-0062
+ . DEM-001
+ NEO-MVS PROGGSC / NEO-MVS CHA256
+ . DEH-001
+****************************************/
+
+ROM_START( spinmast )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "062-p1.p1", 0x000000, 0x100000, CRC(37aba1aa) SHA1(1a2ab9593371cc2f665121d554eec3f6bb4d09ff) )
+ ROM_LOAD16_WORD_SWAP( "062-p2.sp2", 0x100000, 0x100000, CRC(f025ab77) SHA1(4944be04648296d0b93cfe4c5ca7b9cede072cff) )
+
+ NEO_SFIX_128K( "062-s1.s1", CRC(289e2bbe) SHA1(f52c7f2bffc89df3130b3cabd200408509a28cdc) )
+
+ NEO_BIOS_AUDIO_128K( "062-m1.m1", CRC(76108b2f) SHA1(08c89a8b746dbb10ff885b41cde344173c2e3699) )
+
+ ROM_REGION( 0x100000, "ymsnd", 0 )
+ ROM_LOAD( "062-v1.v1", 0x000000, 0x100000, CRC(cc281aef) SHA1(68be154b3e25f837afb4a477600dbe0ee69bec44) )
+
+ ROM_REGION( 0x800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "062-c1.c1", 0x000000, 0x100000, CRC(a9375aa2) SHA1(69218d8f1361e9ea709da11e3f15fe46b1db7181) )
+ ROM_LOAD16_BYTE( "062-c2.c2", 0x000001, 0x100000, CRC(0e73b758) SHA1(a247f736fbca0b609818dca4844ebb8442753bc1) )
+ ROM_LOAD16_BYTE( "062-c3.c3", 0x200000, 0x100000, CRC(df51e465) SHA1(171953c7a870f3ab96e0f875117ee7343931fd38) )
+ ROM_LOAD16_BYTE( "062-c4.c4", 0x200001, 0x100000, CRC(38517e90) SHA1(f7c64b94ac20f5146f9bb48b53cb2b30fe5b8f8c) )
+ ROM_LOAD16_BYTE( "062-c5.c5", 0x400000, 0x100000, CRC(7babd692) SHA1(0d4cd5006baa8d951cd2b6194ace566fa2845b8a) )
+ ROM_LOAD16_BYTE( "062-c6.c6", 0x400001, 0x100000, CRC(cde5ade5) SHA1(5899ef5dfcdbb8cf8c6aba748dbb52f3c5fed5fe) )
+ ROM_LOAD16_BYTE( "062-c7.c7", 0x600000, 0x100000, CRC(bb2fd7c0) SHA1(cce11c4cf39ac60143235ff89261806df339dae5) )
+ ROM_LOAD16_BYTE( "062-c8.c8", 0x600001, 0x100000, CRC(8d7be933) SHA1(e7097cfa26a959f90721e2e8368ceb47ea9db661) )
+ROM_END
+
+/****************************************
+ ID-0063
+ . NGM-063
+ NEO-MVS PROGTOP / NEO-MVS CHA256
+ . NGH-063
+ NEO-AEG PROGTOP2 / NEO-AEG CHA256 B
+****************************************/
+
+ROM_START( samsho2 ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "063-p1.p1", 0x100000, 0x100000, CRC(22368892) SHA1(0997f8284aa0f57a333be8a0fdea777d0d01afd6) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+ /* also found MVS sets with ep1 / ep2 on eprom and p1 / sp2 on maskrom; correct chip label unknown */
+
+ NEO_SFIX_128K( "063-s1.s1", CRC(64a5cd66) SHA1(12cdfb27bf9ccd5a8df6ddd4628ef7cf2c6d4964) )
+
+ NEO_BIOS_AUDIO_128K( "063-m1.m1", CRC(56675098) SHA1(90429fc40d056d480d0e2bbefbc691d9fa260fc4) )
+
+ ROM_REGION( 0x700000, "ymsnd", 0 )
+ ROM_LOAD( "063-v1.v1", 0x000000, 0x200000, CRC(37703f91) SHA1(a373ebef4c33ba1d8340e826981a58769aada238) )
+ ROM_LOAD( "063-v2.v2", 0x200000, 0x200000, CRC(0142bde8) SHA1(0be6c53acac44802bf70b6925452f70289a139d9) )
+ ROM_LOAD( "063-v3.v3", 0x400000, 0x200000, CRC(d07fa5ca) SHA1(1da7f081f8b8fc86a91feacf900f573218d82676) )
+ ROM_LOAD( "063-v4.v4", 0x600000, 0x100000, CRC(24aab4bb) SHA1(10ee4c5b3579865b93dcc1e4079963276aa700a6) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "063-c1.c1", 0x000000, 0x200000, CRC(86cd307c) SHA1(0d04336f7c436d74638d8c1cd8651faf436a6bec) )
+ ROM_LOAD16_BYTE( "063-c2.c2", 0x000001, 0x200000, CRC(cdfcc4ca) SHA1(179dc81432424d68cefedd20cc1c4b2a95deb891) )
+ ROM_LOAD16_BYTE( "063-c3.c3", 0x400000, 0x200000, CRC(7a63ccc7) SHA1(49d97c543bc2860d493a353ab0d059088c6fbd21) )
+ ROM_LOAD16_BYTE( "063-c4.c4", 0x400001, 0x200000, CRC(751025ce) SHA1(e1bbaa7cd67fd04e4aab7f7ea77f63ae1cbc90d0) )
+ ROM_LOAD16_BYTE( "063-c5.c5", 0x800000, 0x200000, CRC(20d3a475) SHA1(28da44a136bd14c73c62c147c3f6e6bcfa1066de) )
+ ROM_LOAD16_BYTE( "063-c6.c6", 0x800001, 0x200000, CRC(ae4c0a88) SHA1(cc8a7d11daa3821f83a6fd0942534706f939e576) )
+ ROM_LOAD16_BYTE( "063-c7.c7", 0xc00000, 0x200000, CRC(2df3cbcf) SHA1(e54f9022359963711451c2025825b862d36c6975) )
+ ROM_LOAD16_BYTE( "063-c8.c8", 0xc00001, 0x200000, CRC(1ffc6dfa) SHA1(acea18aca76c072e0bac2a364fc96d49cfc86e77) )
+ROM_END
+
+ROM_START( samsho2k ) /* KOREAN VERSION */
+ // This has corrupt text if used with the Japan bios due to the replacement of the s1 rom to contain the new logo
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "063-p1-kan.p1", 0x100000, 0x100000, CRC(147cc6d7) SHA1(8e22305f41a0688786ff55437c25948e6c8fda58) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+ // the roms below apply as patch over the main program (I haven't checked what they change, the game boots as the Korean version even with just the above program)
+ ROM_LOAD16_WORD_SWAP( "063-ep1-kan.ep1", 0x000000, 0x080000, CRC(fa32e2d8) SHA1(94f56759ec04ab3a1e557bc2dc51b92176b3c147) )
+ ROM_LOAD16_WORD_SWAP( "063-ep2-kan.ep2", 0x080000, 0x080000, CRC(70b1a4d9) SHA1(387737e87a68d0ea4fd13693f1f30d3227a17c82) ) // this is exactly the same data anyway!
+
+ NEO_SFIX_128K( "063-s1-kan.s1", CRC(ff08f80b) SHA1(240c6a1c52edebb49cc99ea08484c6a2d61ebf84) )
+
+ NEO_BIOS_AUDIO_128K( "063-m1.m1", CRC(56675098) SHA1(90429fc40d056d480d0e2bbefbc691d9fa260fc4) )
+
+ ROM_REGION( 0x700000, "ymsnd", 0 )
+ ROM_LOAD( "063-v1.v1", 0x000000, 0x200000, CRC(37703f91) SHA1(a373ebef4c33ba1d8340e826981a58769aada238) )
+ ROM_LOAD( "063-v2.v2", 0x200000, 0x200000, CRC(0142bde8) SHA1(0be6c53acac44802bf70b6925452f70289a139d9) )
+ ROM_LOAD( "063-v3.v3", 0x400000, 0x200000, CRC(d07fa5ca) SHA1(1da7f081f8b8fc86a91feacf900f573218d82676) )
+ ROM_LOAD( "063-v4.v4", 0x600000, 0x100000, CRC(24aab4bb) SHA1(10ee4c5b3579865b93dcc1e4079963276aa700a6) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "063-c1.c1", 0x000000, 0x200000, CRC(86cd307c) SHA1(0d04336f7c436d74638d8c1cd8651faf436a6bec) )
+ ROM_LOAD16_BYTE( "063-c2.c2", 0x000001, 0x200000, CRC(cdfcc4ca) SHA1(179dc81432424d68cefedd20cc1c4b2a95deb891) )
+ ROM_LOAD16_BYTE( "063-c3.c3", 0x400000, 0x200000, CRC(7a63ccc7) SHA1(49d97c543bc2860d493a353ab0d059088c6fbd21) )
+ ROM_LOAD16_BYTE( "063-c4.c4", 0x400001, 0x200000, CRC(751025ce) SHA1(e1bbaa7cd67fd04e4aab7f7ea77f63ae1cbc90d0) )
+ ROM_LOAD16_BYTE( "063-c5.c5", 0x800000, 0x200000, CRC(20d3a475) SHA1(28da44a136bd14c73c62c147c3f6e6bcfa1066de) )
+ ROM_LOAD16_BYTE( "063-c6.c6", 0x800001, 0x200000, CRC(ae4c0a88) SHA1(cc8a7d11daa3821f83a6fd0942534706f939e576) )
+ ROM_LOAD16_BYTE( "063-c7.c7", 0xc00000, 0x200000, CRC(2df3cbcf) SHA1(e54f9022359963711451c2025825b862d36c6975) )
+ ROM_LOAD16_BYTE( "063-c8.c8", 0xc00001, 0x200000, CRC(1ffc6dfa) SHA1(acea18aca76c072e0bac2a364fc96d49cfc86e77) )
+ROM_END
+
+/****************************************
+ ID-0064
+ . ADM-007
+ NEO-MVS PROGGSC / NEO-MVS CHA256
+ . ADH-007
+ NEO-AEG PROGRK / NEO-AEG CHA256
+ NEO-AEG PROGRKB / NEO-AEG CHA256[B]
+****************************************/
+
+ROM_START( wh2j ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "064-p1.p1", 0x100000, 0x100000, CRC(385a2e86) SHA1(cfde4a1aeae038a3d6ca9946065624f097682d3d) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "064-s1.s1", CRC(2a03998a) SHA1(5e33f469982f12d4622a06d323a345f192bf88e6) )
+
+ NEO_BIOS_AUDIO_128K( "064-m1.m1", CRC(d2eec9d3) SHA1(09478787045f1448d19d064dd3d540d1741fd619) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "064-v1.v1", 0x000000, 0x200000, CRC(aa277109) SHA1(35c22b15bb0a4d0ab118cb22a2d450d03995a17c) )
+ ROM_LOAD( "064-v2.v2", 0x200000, 0x200000, CRC(b6527edd) SHA1(2bcf5bfa6e117cf4a3728a5e5f5771313c93f22a) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ /* Different layout with 4xC (32 mbit) also exists; chip labels are 064-C13, 064-C24, 064-C57 and 064-c68. */
+ ROM_LOAD16_BYTE( "064-c1.c1", 0x000000, 0x200000, CRC(2ec87cea) SHA1(e713ec7839a7665edee6ee3f82a6e530b3b4bd7c) )
+ ROM_LOAD16_BYTE( "064-c2.c2", 0x000001, 0x200000, CRC(526b81ab) SHA1(b5f0a2f04489539ed6b9d0810b12787356c64b23) )
+ ROM_LOAD16_BYTE( "064-c3.c3", 0x400000, 0x200000, CRC(436d1b31) SHA1(059776d77b91377ed0bcfc278802d659c917fc0f) )
+ ROM_LOAD16_BYTE( "064-c4.c4", 0x400001, 0x200000, CRC(f9c8dd26) SHA1(25a9eea1d49b21b4a988beb32c25bf2f7796f227) )
+ ROM_LOAD16_BYTE( "064-c5.c5", 0x800000, 0x200000, CRC(8e34a9f4) SHA1(67b839b426ef3fad0a85d951fdd44c0a45c55226) )
+ ROM_LOAD16_BYTE( "064-c6.c6", 0x800001, 0x200000, CRC(a43e4766) SHA1(54f282f2b1ff2934cca7acbb4386a2b99a29df3a) )
+ ROM_LOAD16_BYTE( "064-c7.c7", 0xc00000, 0x200000, CRC(59d97215) SHA1(85a960dc7f364df13ee0c2f99a4c53aefb081486) )
+ ROM_LOAD16_BYTE( "064-c8.c8", 0xc00001, 0x200000, CRC(fc092367) SHA1(69ff4ae909dd857de3ca8645d63f8b4bde117448) )
+ROM_END
+
+/****************************************
+ ID-0065
+ . DEM-002
+ NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1
+ . DEH-002
+ NEO-AEG PROG42G-1 / NEO-AEG CHA42G-1
+****************************************/
+
+ROM_START( wjammers )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "065-p1.p1", 0x000000, 0x100000, CRC(6692c140) SHA1(5da574e906974fac92bb2f49bdeea257c014a897) )
+
+ NEO_SFIX_128K( "065-s1.s1", CRC(074b5723) SHA1(86d3b3bb5414f43e4d3b7a2af0db23cc71ce8412) )
+
+ NEO_BIOS_AUDIO_128K( "065-m1.m1", CRC(52c23cfc) SHA1(809a7e072ad9acbffc25e9bd27cdb97638d09d07) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "065-v1.v1", 0x000000, 0x100000, CRC(ce8b3698) SHA1(7d75e2a5cf8c90be422f8b425447e81597fe145a) )
+ ROM_LOAD( "065-v2.v2", 0x100000, 0x100000, CRC(659f9b96) SHA1(62f40365212153bc3b92a1187fa44f6cdc7f7b83) )
+ ROM_LOAD( "065-v3.v3", 0x200000, 0x100000, CRC(39f73061) SHA1(ec57cd58e7f8569cff925d11e2320d588ce4fe49) )
+ ROM_LOAD( "065-v4.v4", 0x300000, 0x100000, CRC(5dee7963) SHA1(f8e6de73d65dd80b29c711f00835a574a770cb4e) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "065-c1.c1", 0x000000, 0x100000, CRC(c7650204) SHA1(42918d700d59864f8ab15caf968a062a563c9b09) )
+ ROM_LOAD16_BYTE( "065-c2.c2", 0x000001, 0x100000, CRC(d9f3e71d) SHA1(fad1f64061eac1bf85bf6d75d2eae974a8c94069) )
+ ROM_LOAD16_BYTE( "065-c3.c3", 0x200000, 0x100000, CRC(40986386) SHA1(65795a50197049681265946713d416c9cdb68f08) )
+ ROM_LOAD16_BYTE( "065-c4.c4", 0x200001, 0x100000, CRC(715e15ff) SHA1(ac8b8b01f5c7384b883afbe0cf977430378e3fef) )
+ROM_END
+
+/****************************************
+ ID-0066
+ . DEM-003
+ NEO-MVS PROGGSC / NEO-MVS CHA256
+ . DEH-003
+****************************************/
+
+ROM_START( karnovr )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "066-p1.p1", 0x000000, 0x100000, CRC(8c86fd22) SHA1(8cf97c6fb9c5717167ccc54bf5856248ccaf32c6) )
+
+ NEO_SFIX_128K( "066-s1.s1", CRC(bae5d5e5) SHA1(aa69d9b235b781ec51f72a528fada9cb12e72cbc) )
+
+ NEO_BIOS_AUDIO_128K( "066-m1.m1", CRC(030beae4) SHA1(ceb6ee6c09514504efacdbca7b280901e4c97084) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "066-v1.v1", 0x000000, 0x200000, CRC(0b7ea37a) SHA1(34e7d4f6db053674a7e8c8b2e3e398777d5b02e6) )
+
+ ROM_REGION( 0xc00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "066-c1.c1", 0x000000, 0x200000, CRC(09dfe061) SHA1(ca4c0f0ce80967b4be2f18b72435c468bbfbac4c) )
+ ROM_LOAD16_BYTE( "066-c2.c2", 0x000001, 0x200000, CRC(e0f6682a) SHA1(addb4fbc30da2b8ffc86819d92a874eb232f67dd) )
+ ROM_LOAD16_BYTE( "066-c3.c3", 0x400000, 0x200000, CRC(a673b4f7) SHA1(d138f5b38fd65c61549ce36f5c4983f7c8a3e7f6) )
+ ROM_LOAD16_BYTE( "066-c4.c4", 0x400001, 0x200000, CRC(cb3dc5f4) SHA1(865d9ccfc3df517c341d6aac16120f6b6aa759fe) )
+ ROM_LOAD16_BYTE( "066-c5.c5", 0x800000, 0x200000, CRC(9a28785d) SHA1(19723e1f7ff429e8a038d89488b279f830dfaf6e) )
+ ROM_LOAD16_BYTE( "066-c6.c6", 0x800001, 0x200000, CRC(c15c01ed) SHA1(7cf5583e6610bcdc3b332896cefc71df84fb3f19) )
+ROM_END
+
+/****************************************
+ ID-0067
+ . ??M-067
+ NEO-MVS PROG16 / NEO-MVS CHA256B
+ NEO-MVS PROG16 / NEO-MVS CHA256
+****************************************/
+
+ROM_START( gururin ) /* MVS ONLY RELEASE */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "067-p1.p1", 0x000000, 0x80000, CRC(4cea8a49) SHA1(cea4a35db8de898e30eb40dd339b3cbe77ac0856) )
+
+ NEO_SFIX_128K( "067-s1.s1", CRC(b119e1eb) SHA1(f63a68a71aea220d3d4475847652e2a1f68b2b6f) )
+
+ NEO_BIOS_AUDIO_128K( "067-m1.m1", CRC(9e3c6328) SHA1(17e8479c258f28a01d2283be9e692ff7685898cc) )
+
+ ROM_REGION( 0x80000, "ymsnd", 0 )
+ ROM_LOAD( "067-v1.v1", 0x000000, 0x80000, CRC(cf23afd0) SHA1(10f87014ee10613f92b04f482f449721a6379db7) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "067-c1.c1", 0x000000, 0x200000, CRC(35866126) SHA1(e4b24670ccc7901af5f66b11b15fae4e67f843ab) )
+ ROM_LOAD16_BYTE( "067-c2.c2", 0x000001, 0x200000, CRC(9db64084) SHA1(68a43c12f63f5e98d68ad0902a6551c5d30f8543) )
+ROM_END
+
+/****************************************
+ ID-0068
+ . NGM-068
+ NEO-MVS PROGTOP / NEO-MVS CHA256
+****************************************/
+
+ROM_START( pspikes2 ) /* MVS ONLY RELEASE */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "068-pg1.p1", 0x000000, 0x100000, CRC(105a408f) SHA1(2ee51defa1c24c66c63a6498ee542ac26de3cfbb) )
+
+ NEO_SFIX_128K( "068-sg1.s1", CRC(18082299) SHA1(efe93fabe6a76a5dc8cf12f255e571480afb40a0) )
+
+ NEO_BIOS_AUDIO_128K( "068-mg1.m1", CRC(b1c7911e) SHA1(27b298e7d50981331e17aa642e2e363ffac4333a) )
+
+ ROM_REGION( 0x300000, "ymsnd", 0 )
+ ROM_LOAD( "068-v1.v1", 0x000000, 0x100000, CRC(2ced86df) SHA1(d6b73d1f31efbd74fb745200d4dade5f80b71541) )
+ ROM_LOAD( "068-v2.v2", 0x100000, 0x100000, CRC(970851ab) SHA1(6c9b04e9cc6b92133f1154e5bdd9d38d8ef050a7) )
+ ROM_LOAD( "068-v3.v3", 0x200000, 0x100000, CRC(81ff05aa) SHA1(d74302f38c59055bfc83b39dff798a585314fecd) )
+
+ ROM_REGION( 0x600000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "068-c1.c1", 0x000000, 0x100000, CRC(7f250f76) SHA1(5109a41adcb7859e24dc43d88842d4cc18cd3305) )
+ ROM_LOAD16_BYTE( "068-c2.c2", 0x000001, 0x100000, CRC(20912873) SHA1(2df8766b531e47ffc30457e41c63b83557b4f468) )
+ ROM_LOAD16_BYTE( "068-c3.c3", 0x200000, 0x100000, CRC(4b641ba1) SHA1(7a9c42a30163eda455f7bde2302402b1a5de7178) )
+ ROM_LOAD16_BYTE( "068-c4.c4", 0x200001, 0x100000, CRC(35072596) SHA1(4150a21041f06514c97592bd8af686504b06e187) )
+ ROM_LOAD16_BYTE( "068-c5.c5", 0x400000, 0x100000, CRC(151dd624) SHA1(f2690a3fe9c64f70f283df785a5217d5b92a289f) )
+ ROM_LOAD16_BYTE( "068-c6.c6", 0x400001, 0x100000, CRC(a6722604) SHA1(b40c57fb4be93ac0b918829f88393ced3d4f8bde) )
+ROM_END
+
+/****************************************
+ ID-0069
+ . NGM-069
+ NEO-MVS PROGBK1 / NEO-MVS CHA256
+. NGH-069
+ NEO-AEG PROGBK1Y / NEO-AEG CHA256RY
+****************************************/
+
+ROM_START( fatfury3 ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "069-p1.p1", 0x000000, 0x100000, CRC(a8bcfbbc) SHA1(519c4861151797e5f4d4f33432b83dfabed8e7c4) )
+ ROM_LOAD16_WORD_SWAP( "069-sp2.sp2", 0x100000, 0x200000, CRC(dbe963ed) SHA1(8ece7f663cfe8e563576a397e41161d392cee67e) )
+
+ NEO_SFIX_128K( "069-s1.s1", CRC(0b33a800) SHA1(b7d2cc97da4f30ddebc7b801f5e1d17d2306b2db) )
+
+ NEO_BIOS_AUDIO_128K( "069-m1.m1", CRC(fce72926) SHA1(a40c74f793900b8542f0b8383ce4bf46fca112d4) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "069-v1.v1", 0x000000, 0x400000, CRC(2bdbd4db) SHA1(5f4fecf69c2329d699cbd45829c19303b1e2a80e) )
+ ROM_LOAD( "069-v2.v2", 0x400000, 0x400000, CRC(a698a487) SHA1(11b8bc53bc26a51f4a408e900e3769958625c4ed) )
+ ROM_LOAD( "069-v3.v3", 0x800000, 0x200000, CRC(581c5304) SHA1(e9550ec547b4f605afed996b22d711f49b48fa92) )
+
+ ROM_REGION( 0x1400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "069-c1.c1", 0x0000000, 0x400000, CRC(e302f93c) SHA1(d8610b14900b2b8fe691b67ca9b1abb335dbff74) )
+ ROM_LOAD16_BYTE( "069-c2.c2", 0x0000001, 0x400000, CRC(1053a455) SHA1(69501bfac68739e63d798045b812badd251d57b8) )
+ ROM_LOAD16_BYTE( "069-c3.c3", 0x0800000, 0x400000, CRC(1c0fde2f) SHA1(cf6c2ef56c03a861de3b0b6dc0d7c9204d947f9d) )
+ ROM_LOAD16_BYTE( "069-c4.c4", 0x0800001, 0x400000, CRC(a25fc3d0) SHA1(83cb349e2f1032652060b233e741fb893be5af16) )
+ ROM_LOAD16_BYTE( "069-c5.c5", 0x1000000, 0x200000, CRC(b3ec6fa6) SHA1(7e4c8ee9dd8d9a25ff183d9d8b05f38769348bc7) )
+ ROM_LOAD16_BYTE( "069-c6.c6", 0x1000001, 0x200000, CRC(69210441) SHA1(6d496c549dba65caabeaffe5b762e86f9d648a26) )
+ROM_END
+
+/****************************************
+ ID-0070
+ . ??M-070
+ NEO-MVS PROGBK1 / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7042)
+****************************************/
+
+ROM_START( zupapa ) /* Original Version - Encrypted GFX */ /* MVS ONLY RELEASE */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "070-p1.p1", 0x000000, 0x100000, CRC(5a96203e) SHA1(49cddec9ca6cc51e5ecf8a34e447a23e1f8a15a1) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "070-epr.m1", CRC(5a3b3191) SHA1(fa9a9930e18c64e598841fb344c4471d3d2c1964) )
+ /* M1 on eprom, correct chip label unknown */
+
+ ROM_REGION( 0x0200000, "ymsnd", 0 )
+ ROM_LOAD( "070-v1.v1", 0x000000, 0x200000, CRC(d3a7e1ff) SHA1(4a4a227e10f4af58168f6c26011ea1d414253f92) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "070-c1.c1", 0x0000000, 0x800000, CRC(f8ad02d8) SHA1(9be54532332a8e963ec35ff1e518947bb11ebade) )
+ ROM_LOAD16_BYTE( "070-c2.c2", 0x0000001, 0x800000, CRC(70156dde) SHA1(06286bf043d50199b47df9a76ca91f39cb28cb90) )
+ROM_END
+
+/****************************************
+ ID-0071
+ Bang Bang Busters (prototype) 1994 Visco
+ Prepared for release in 2000/2001, but apparently Zupapa was favored
+ The 2000 version was released in 2010 for MVS and AES (Releaser claims that it is officially licensed by VISCO)
+
+ Reported UNIVERSE BIOS CRC32:
+ ROM EC861CAF
+ BANK 0 NOT USED
+ BANK 1 NOT USED
+ BANK 2 NOT USED
+ BANK 3 NOT USED
+ ****************************************/
+ROM_START( b2b )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "071.p1", 0x000000, 0x080000, CRC(7687197d) SHA1(4bb9cb7819807f7a7e1f85f1c4faac4a2f8761e8) )
+
+ NEO_SFIX_128K( "071.s1", CRC(44e5f154) SHA1(b3f80051789e60e5d8c5df0408f1aba51616e92d) )
+
+ NEO_BIOS_AUDIO_128K( "071.m1", CRC(6da739ad) SHA1(cbf5f55c54b4ee00943e2a411eeee4e465ce9c34) )
+
+ ROM_REGION( 0x100000, "ymsnd", 0 )
+ ROM_LOAD( "071.v1", 0x000000, 0x100000, CRC(50feffb0) SHA1(00127dae0130889995bfa7560bc4b0662f74fba5) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "071.c1", 0x000000, 0x200000, CRC(23d84a7a) SHA1(9034658ad40e2c45558abc3db312aa2764102fc4) )
+ ROM_LOAD16_BYTE( "071.c2", 0x000001, 0x200000, CRC(ce7b6248) SHA1(ad1cd5adae5c151e183ff88b68afe10f7009f48e) )
+ROM_END
+
+
+/****************************************
+ ID-0072
+ Last Odyssey Pinball Fantasia (prototype) 1995 Monolith
+ A video of this was on youtube in 2010/2011.
+ ****************************************/
+
+/****************************************
+ ID-0073
+ . ??M-073
+ NEO-MVS PROGTOP / NEO-MVS CHA256
+****************************************/
+
+ROM_START( panicbom ) /* MVS ONLY RELEASE */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "073-p1.p1", 0x000000, 0x080000, CRC(adc356ad) SHA1(801e0a54b65d7a3500e6cef2d6bba40c6356dc1f) )
+
+ NEO_SFIX_128K( "073-s1.s1", CRC(b876de7e) SHA1(910347d7657470da914fb0a6b0ea02891e13c081) )
+
+ NEO_BIOS_AUDIO_128K( "073-m1.m1", CRC(3cdf5d88) SHA1(6d8365a946fbd0b7c7b896536322638d80f6a764) )
+
+ ROM_REGION( 0x300000, "ymsnd", 0 )
+ ROM_LOAD( "073-v1.v1", 0x000000, 0x200000, CRC(7fc86d2f) SHA1(aa4234d22157060e0ba97a09c4e85c5276b74099) )
+ ROM_LOAD( "073-v2.v2", 0x200000, 0x100000, CRC(082adfc7) SHA1(19c168e9a6cadcbed79033c320bcf3a45f846daf) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "073-c1.c1", 0x000000, 0x100000, CRC(8582e1b5) SHA1(e17d8f57b8ebee14b8e705374b34abe928937258) )
+ ROM_LOAD16_BYTE( "073-c2.c2", 0x000001, 0x100000, CRC(e15a093b) SHA1(548a418c81af79cd7ab6ad165b8d6daee30abb49) )
+ROM_END
+
+/****************************************
+ ID-0074
+ . ADM-008
+ NEO-MVS PROGTOP / NEO-MVS CHA256B
+ . ADH-008
+ NEO-AEG PROGRK / NEO-AEG CHA256
+****************************************/
+
+ROM_START( aodk ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "074-p1.p1", 0x100000, 0x100000, CRC(62369553) SHA1(ca4d561ee08d16fe6804249d1ba49188eb3bd606) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "074-s1.s1", CRC(96148d2b) SHA1(47725a8059346ebe5639bbdbf62a2ac8028756a9) )
+
+ NEO_BIOS_AUDIO_128K( "074-m1.m1", CRC(5a52a9d1) SHA1(ef913a9a55d29d5dd3beab1ce6039d64ce9b1a5b) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "074-v1.v1", 0x000000, 0x200000, CRC(7675b8fa) SHA1(29f4facf89d551237b31bf779693cbbbc94e1ede) )
+ ROM_LOAD( "074-v2.v2", 0x200000, 0x200000, CRC(a9da86e9) SHA1(ff65af61e42b79a75060a352b24077d1fa28c83f) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "074-c1.c1", 0x000000, 0x200000, CRC(a0b39344) SHA1(adfff7b8836347abf030611563e6068a91164d0a) )
+ ROM_LOAD16_BYTE( "074-c2.c2", 0x000001, 0x200000, CRC(203f6074) SHA1(737f2d707d504df1da1ca5c5cf61cf489a33eb56) )
+ ROM_LOAD16_BYTE( "074-c3.c3", 0x400000, 0x200000, CRC(7fff4d41) SHA1(bebd18a75adeb34c3bbd49cfc8fd3d8c2bf9e475) )
+ ROM_LOAD16_BYTE( "074-c4.c4", 0x400001, 0x200000, CRC(48db3e0a) SHA1(a88505e001e01bb45fb26beda5af24943d02552a) )
+ ROM_LOAD16_BYTE( "074-c5.c5", 0x800000, 0x200000, CRC(c74c5e51) SHA1(0399c53e2a3d721901dddc073fda6ec22e02dfd4) )
+ ROM_LOAD16_BYTE( "074-c6.c6", 0x800001, 0x200000, CRC(73e8e7e0) SHA1(dd6580227743e6a3db4950456ebe870008e022b2) )
+ ROM_LOAD16_BYTE( "074-c7.c7", 0xc00000, 0x200000, CRC(ac7daa01) SHA1(78407a464f67d949933ce2ccaa23fbed80dff1ea) )
+ ROM_LOAD16_BYTE( "074-c8.c8", 0xc00001, 0x200000, CRC(14e7ad71) SHA1(d4583fbce361fd1a11ac6c1a27b0b669e8a5c718) )
+ROM_END
+
+/****************************************
+ ID-0075
+ . NGM-075
+ NEO-MVS PROGGSC / NEO-MVS CHA256
+ . NGH-075
+ NEO-AEG PROGRK / NEO-AEG CHA256
+****************************************/
+
+ROM_START( sonicwi2 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "075-p1.p1", 0x100000, 0x100000, CRC(92871738) SHA1(fed040a7c1ff9e495109813a702d09fb1d2ecf3a) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "075-s1.s1", CRC(c9eec367) SHA1(574e1afe7e0d54610c145131106e59ba2894eeb7) )
+
+ NEO_BIOS_AUDIO_128K( "075-m1.m1", CRC(bb828df1) SHA1(eab8e2868173bdaac7c7ed97305a9aa1033fd303) )
+
+ ROM_REGION( 0x300000, "ymsnd", 0 )
+ ROM_LOAD( "075-v1.v1", 0x000000, 0x200000, CRC(7577e949) SHA1(3ba9f11094dd0cf519f33a16016cfae0d2c6629c) )
+ ROM_LOAD( "075-v2.v2", 0x200000, 0x100000, CRC(021760cd) SHA1(8a24e38f1d4982c4dcd82718995571ac94cbb390) )
+
+ ROM_REGION( 0x800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "075-c1.c1", 0x000000, 0x200000, CRC(3278e73e) SHA1(d9e6c8a3a5213690a1b8747d27806d8ac5aac405) )
+ ROM_LOAD16_BYTE( "075-c2.c2", 0x000001, 0x200000, CRC(fe6355d6) SHA1(ca72fff7a908b6d9325761079ff2a0e28f34cf89) )
+ ROM_LOAD16_BYTE( "075-c3.c3", 0x400000, 0x200000, CRC(c1b438f1) SHA1(b3751c5b426bca0fcc3a58bdb86712c22ef908ab) )
+ ROM_LOAD16_BYTE( "075-c4.c4", 0x400001, 0x200000, CRC(1f777206) SHA1(e29c5ae65ebdcc1167a894306d2446ce909639da) )
+ROM_END
+
+/****************************************
+ ID-0076
+ . ??M-076
+ NEO-MVS PROGGSC / NEO-MVS CHA256
+****************************************/
+
+ROM_START( zedblade ) /* MVS ONLY RELEASE */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "076-p1.p1", 0x000000, 0x080000, CRC(d7c1effd) SHA1(485c2308a40baecd122be9ab4996044622bdcc7e) )
+
+ NEO_SFIX_128K( "076-s1.s1", CRC(f4c25dd5) SHA1(8ec9026219f393930634f9170edbaaee479f875e) )
+
+ NEO_BIOS_AUDIO_128K( "076-m1.m1", CRC(7b5f3d0a) SHA1(4a301781a57ff236f49492b576ff4858b0ffbdf8) )
+
+ ROM_REGION( 0x500000, "ymsnd", 0 )
+ ROM_LOAD( "076-v1.v1", 0x000000, 0x200000, CRC(1a21d90c) SHA1(4793ab06421228ad122e359653ed0f1339b90c7a) )
+ ROM_LOAD( "076-v2.v2", 0x200000, 0x200000, CRC(b61686c3) SHA1(5a3405e833ce36abb7421190438b5cccc8537919) )
+ ROM_LOAD( "076-v3.v3", 0x400000, 0x100000, CRC(b90658fa) SHA1(b9a4b34565ce3688495c47e35c9b888ef686ae9f) )
+
+ ROM_REGION( 0x800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "076-c1.c1", 0x000000, 0x200000, CRC(4d9cb038) SHA1(c0b52b32e1fa719b99ae242d61d5dbea1437331c) )
+ ROM_LOAD16_BYTE( "076-c2.c2", 0x000001, 0x200000, CRC(09233884) SHA1(1895cd0d126a022bce1cc4c7a569032d89f35e3f) )
+ ROM_LOAD16_BYTE( "076-c3.c3", 0x400000, 0x200000, CRC(d06431e3) SHA1(643bd1ad74af272795b02143ba80a76e375036ab) )
+ ROM_LOAD16_BYTE( "076-c4.c4", 0x400001, 0x200000, CRC(4b1c089b) SHA1(cd63961d88c5be84673cce83c683a86b222a064d) )
+ROM_END
+
+/****************************************
+ ID-0077
+ The Warlocks of the Fates / Shinryu Senki (prototype) 1995 SNK/Astec21
+ a video of intro and full gameplay was on youtube in 2014.
+****************************************/
+
+/****************************************
+ ID-0078
+ . NGM-078
+ NEO-MVS PROGTOP / NEO-MVS CHA256
+ . NGH-078
+****************************************/
+
+ROM_START( galaxyfg )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "078-p1.p1", 0x100000, 0x100000, CRC(45906309) SHA1(cdcd96a564acf42e959193e139e149b29c103e25) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "078-s1.s1", CRC(72f8923e) SHA1(da908bffc2b5d8baa2002dbb5bfb3aa17d2472b7) )
+
+ NEO_BIOS_AUDIO_128K( "078-m1.m1", CRC(8e9e3b10) SHA1(7c44d1dbd4f8d337c99e90361d1dab837df85e31) )
+
+ ROM_REGION( 0x500000, "ymsnd", 0 )
+ ROM_LOAD( "078-v1.v1", 0x000000, 0x200000, CRC(e3b735ac) SHA1(e16dfac09aef8115a20bae0bef8c86d4e7d0dc4a) )
+ ROM_LOAD( "078-v2.v2", 0x200000, 0x200000, CRC(6a8e78c2) SHA1(f60b1f8a3a945f279a582745e82f37278ce5d83b) )
+ ROM_LOAD( "078-v3.v3", 0x400000, 0x100000, CRC(70bca656) SHA1(218b7079c90898e7faa382b386e77f81f415e7ac) )
+
+ ROM_REGION( 0xe00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "078-c1.c1", 0x000000, 0x200000, CRC(c890c7c0) SHA1(b96c18a41c34070a4f24ca77cb7516fae8b0fd0c) )
+ ROM_LOAD16_BYTE( "078-c2.c2", 0x000001, 0x200000, CRC(b6d25419) SHA1(e089df9c9a9645f706e501108d634f4d222622a2) )
+ ROM_LOAD16_BYTE( "078-c3.c3", 0x400000, 0x200000, CRC(9d87e761) SHA1(ea1b6d7c9d5ef3a9b48968bde5a52d5699d591cc) )
+ ROM_LOAD16_BYTE( "078-c4.c4", 0x400001, 0x200000, CRC(765d7cb8) SHA1(7b9c86714d688602064d928c9d2b49d70bb7541e) )
+ ROM_LOAD16_BYTE( "078-c5.c5", 0x800000, 0x200000, CRC(e6b77e6a) SHA1(db3b8fc62a6f21c6653621c0665450d5d9a9913d) )
+ ROM_LOAD16_BYTE( "078-c6.c6", 0x800001, 0x200000, CRC(d779a181) SHA1(2761026abd9698a7b56114b76631563abd41fd12) )
+ ROM_LOAD16_BYTE( "078-c7.c7", 0xc00000, 0x100000, CRC(4f27d580) SHA1(c0f12496b45b2fe6e94aa8ac52b0157063127e0a) )
+ ROM_LOAD16_BYTE( "078-c8.c8", 0xc00001, 0x100000, CRC(0a7cc0d8) SHA1(68aaee6341c87e56ce11acc1c4ec8047839fe70d) )
+ROM_END
+
+/****************************************
+ ID-0079
+ . DEM-004
+ NEO-MVS PROGGSC / NEO-MVS CHA256
+ . DEH-004
+ NEO-AEG PROGRK / NEO-AEG CHA256
+****************************************/
+
+ROM_START( strhoop ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "079-p1.p1", 0x000000, 0x100000, CRC(5e78328e) SHA1(7a00b096ed6dd77afc3008c5a4c83686e475f323) )
+
+ NEO_SFIX_128K( "079-s1.s1", CRC(3ac06665) SHA1(ba9ab51eb95c3568304377ef6d7b5f32e8fbcde1) )
+
+ NEO_BIOS_AUDIO_128K( "079-m1.m1", CRC(bee3455a) SHA1(fd5345d9847982085a9b364fff542580889bf02f) )
+
+ ROM_REGION( 0x300000, "ymsnd", 0 )
+ ROM_LOAD( "079-v1.v1", 0x000000, 0x200000, CRC(718a2400) SHA1(cefc5d0b302bd4a87ab1fa244ade4482c23c6806) )
+ ROM_LOAD( "079-v2.v2", 0x200000, 0x100000, CRC(720774eb) SHA1(e4926f01322d0a15e700fb150b368152f2091146) )
+ /* AES 079-v2 is only 4 mbit (TC534200), data is the same */
+
+ ROM_REGION( 0x800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "079-c1.c1", 0x000000, 0x200000, CRC(0581c72a) SHA1(453f7a8474195a1120da5fa24337d79674563d9e) )
+ ROM_LOAD16_BYTE( "079-c2.c2", 0x000001, 0x200000, CRC(5b9b8fb6) SHA1(362aa0de0d2cf9aa03758363ffb1e15e046a3930) )
+ ROM_LOAD16_BYTE( "079-c3.c3", 0x400000, 0x200000, CRC(cd65bb62) SHA1(6f47d77d61d4289bcee82df7c4efa5346a6e4c80) )
+ ROM_LOAD16_BYTE( "079-c4.c4", 0x400001, 0x200000, CRC(a4c90213) SHA1(1b9f7b5f31acd6df2bdab81b849f32c13aa1b884) )
+ROM_END
+
+/****************************************
+ ID-0080
+ . SAM-080
+ NEO-MVS PROGGSC / NEO-MVS CHA256
+ NEO-MVS PROGTOP / NEO-MVS CHA256
+ Boards used for the Korean release
+ . SAH-080
+ NEO-AEG PROGTOP2 / NEO-AEG CHA256 B
+****************************************/
+
+ROM_START( quizkof ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "080-p1.p1", 0x000000, 0x100000, CRC(4440315e) SHA1(f4adba8e341d64a1f6280dfd98ebf6918c00608d) )
+
+ NEO_SFIX_128K( "080-s1.s1", CRC(d7b86102) SHA1(09e1ca6451f3035ce476e3b045541646f860aad5) )
+
+ NEO_BIOS_AUDIO_128K( "080-m1.m1", CRC(f5f44172) SHA1(eaaba1781622901b91bce9257be4e05f84df053b) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "080-v1.v1", 0x000000, 0x200000, CRC(0be18f60) SHA1(05c8b7d9f5a8583015f31902ad16d9c621f47d4e) )
+ ROM_LOAD( "080-v2.v2", 0x200000, 0x200000, CRC(4abde3ff) SHA1(0188bfcafa9a1aac302705736a2bcb26b9d684c2) )
+ ROM_LOAD( "080-v3.v3", 0x400000, 0x200000, CRC(f02844e2) SHA1(8c65ebe146f4ddb6c904f8125cb32767f74c24d5) )
+
+ ROM_REGION( 0x800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "080-c1.c1", 0x000000, 0x200000, CRC(ea1d764a) SHA1(78cc1735624c37f90607baa92e110a3c5cc54c6f) )
+ ROM_LOAD16_BYTE( "080-c2.c2", 0x000001, 0x200000, CRC(d331d4a4) SHA1(94228d13fb1e30973eb54058e697f17456ee16ea) )
+ ROM_LOAD16_BYTE( "080-c3.c3", 0x400000, 0x200000, CRC(b4851bfe) SHA1(b8286c601de5755c1681ea46e177fc89006fc066) )
+ ROM_LOAD16_BYTE( "080-c4.c4", 0x400001, 0x200000, CRC(ca6f5460) SHA1(ed36e244c9335f4c0a97c57b7b7f1b849dd3a90d) )
+ROM_END
+
+ROM_START( quizkofk ) /* KOREAN VERSION */
+ /* Made by Viccom Corp.; proms have manufacturer stamp VICxxxxxx-xxx, chip labels same as quizkof; Cart ID 0080 */
+ /* Due to parent set naming limitations, roms have been named vic-xxx */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "vic-080-p1.p1", 0x000000, 0x100000, CRC(2589488e) SHA1(609f3095c1cf8b11335b56f23c5d955eebd66dd2) )
+
+ NEO_SFIX_128K( "vic-080-s1.s1", CRC(af72c30f) SHA1(f6a2c583f38295b7da2cbcf4b2c7ed3d3e01db4f) )
+
+ NEO_BIOS_AUDIO_128K( "vic-080-m1.m1", CRC(4f157e9a) SHA1(8397bfdd5738914670ada7cd8c611c20ed1f74da) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "080-v1.v1", 0x000000, 0x200000, CRC(0be18f60) SHA1(05c8b7d9f5a8583015f31902ad16d9c621f47d4e) )
+ ROM_LOAD( "vic-080-v2.v2", 0x200000, 0x200000, CRC(719fee5b) SHA1(c94f8ca066c9693cd7c9fd311db1ad9b2665fc69) )
+ ROM_LOAD( "vic-080-v3.v3", 0x400000, 0x200000, CRC(64b7efde) SHA1(11727f9a3c4da17fa7b00559c7081b66e7211c49) )
+
+ ROM_REGION( 0x800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "vic-080-c1.c1", 0x000000, 0x200000, CRC(94d90170) SHA1(4ab63dadc6ee0d32b8784c327681376f5fef0df9) )
+ ROM_LOAD16_BYTE( "vic-080-c2.c2", 0x000001, 0x200000, CRC(297f25a1) SHA1(0dd845726c640d70804b5fd5854921771e8dbf19) )
+ ROM_LOAD16_BYTE( "vic-080-c3.c3", 0x400000, 0x200000, CRC(cf484c4f) SHA1(f588908a693dbbb8362ffbfe5035dd5f867d9697) )
+ ROM_LOAD16_BYTE( "vic-080-c4.c4", 0x400001, 0x200000, CRC(36e5d997) SHA1(99955ff947e2e586e60c1146c978c70705787917) )
+ROM_END
+
+/****************************************
+ ID-0081
+ . NGM-081
+ NEO-MVS PROGTOP / NEO-MVS CHA42G-3B
+ NEO-MVS PROGTOP / NEO-MVS CHA256
+ NEO-MVS PROG 4096 B / NEO-MVS CHA 42G-3
+ NEO-MVS PROGBK1 / NEO-MVS CHA256B
+ . NGH-081
+ NEO-AEG PROGTOP2 / NEO-AEG CHA256 B
+****************************************/
+
+ROM_START( ssideki3 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "081-p1.p1", 0x100000, 0x100000, CRC(6bc27a3d) SHA1(94692abe7343f9204a557acae4ab74d0af511ca3) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "081-s1.s1", CRC(7626da34) SHA1(30bad65633d0035fd578323c22cbddb8c9d549a6) )
+
+ NEO_BIOS_AUDIO_128K( "081-m1.m1", CRC(82fcd863) SHA1(b219a5685450f9c24cc195f1c914bc3b292d72c0) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "081-v1.v1", 0x000000, 0x200000, CRC(201fa1e1) SHA1(9c27cc1b1d075223ed4a90dd02571d09a2f0d076) )
+ ROM_LOAD( "081-v2.v2", 0x200000, 0x200000, CRC(acf29d96) SHA1(5426985c33aea2efc8ff774b59d34d8b03bd9a85) )
+ ROM_LOAD( "081-v3.v3", 0x400000, 0x200000, CRC(e524e415) SHA1(8733e1b63471381b16c2b7c64b909745d99c8925) )
+
+ ROM_REGION( 0xc00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "081-c1.c1", 0x000000, 0x200000, CRC(1fb68ebe) SHA1(abd9dbe7b7cbe0b6cd1d87e53c6bdc6edeccf83c) )
+ ROM_LOAD16_BYTE( "081-c2.c2", 0x000001, 0x200000, CRC(b28d928f) SHA1(9f05148e3e1e94339752658c066f47f133db8fbf) )
+ ROM_LOAD16_BYTE( "081-c3.c3", 0x400000, 0x200000, CRC(3b2572e8) SHA1(41aba1554bf59d4e5d5814249eaa0d531449e1de) )
+ ROM_LOAD16_BYTE( "081-c4.c4", 0x400001, 0x200000, CRC(47d26a7c) SHA1(591ef24a3d381163c5da80fa64e6883b8ea9abfb) )
+ ROM_LOAD16_BYTE( "081-c5.c5", 0x800000, 0x200000, CRC(17d42f0d) SHA1(7de7765bf43d390c50b2f59c2288502a7121d086) )
+ ROM_LOAD16_BYTE( "081-c6.c6", 0x800001, 0x200000, CRC(6b53fb75) SHA1(fadf7a12661d83ae35d9258aa4947969d51c08b8) )
+ROM_END
+
+/****************************************
+ ID-0082
+ . NGM-082
+ NEO-MVS PROGTOP / NEO-MVS CHA256
+ NEO-MVS PROGTOP / NEO-MVS CHA 42G-3
+ NEO-MVS PROGBK1 / NEO-MVS CHA256
+ NEO-MVS PROGTOP / NEO-MVS CHA256B
+ NEO-MVS PROG 4096 B / NEO-MVS CHA 42G-3
+ . NGH-082
+****************************************/
+
+ROM_START( doubledr )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "082-p1.p1", 0x100000, 0x100000, CRC(34ab832a) SHA1(fbb1bd195f5653f7b9c89648649f838eaf83cbe4) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "082-s1.s1", CRC(bef995c5) SHA1(9c89adbdaa5c1f827632c701688563dac2e482a4) )
+
+ NEO_BIOS_AUDIO_128K( "082-m1.m1", CRC(10b144de) SHA1(cf1ed0a447da68240c62bcfd76b1569803f6bf76) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "082-v1.v1", 0x000000, 0x200000, CRC(cc1128e4) SHA1(bfcfff24bc7fbde0b02b1bc0dffebd5270a0eb04) )
+ ROM_LOAD( "082-v2.v2", 0x200000, 0x200000, CRC(c3ff5554) SHA1(c685887ad64998e5572607a916b023f8b9efac49) )
+
+ ROM_REGION( 0xe00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "082-c1.c1", 0x000000, 0x200000, CRC(b478c725) SHA1(3a777c5906220f246a6dc06cb084e6ad650d67bb) )
+ ROM_LOAD16_BYTE( "082-c2.c2", 0x000001, 0x200000, CRC(2857da32) SHA1(9f13245965d23db86d46d7e73dfb6cc63e6f25a1) )
+ ROM_LOAD16_BYTE( "082-c3.c3", 0x400000, 0x200000, CRC(8b0d378e) SHA1(3a347215e414b738164f1fe4144102f07d4ffb80) )
+ ROM_LOAD16_BYTE( "082-c4.c4", 0x400001, 0x200000, CRC(c7d2f596) SHA1(e2d09d4d1b1fef9c0c53ecf3629e974b75e559f5) )
+ ROM_LOAD16_BYTE( "082-c5.c5", 0x800000, 0x200000, CRC(ec87bff6) SHA1(3fa86da93881158c2c23443855922a7b32e55135) )
+ ROM_LOAD16_BYTE( "082-c6.c6", 0x800001, 0x200000, CRC(844a8a11) SHA1(b2acbd4cacce66fb32c052b2fba9984904679bda) )
+ ROM_LOAD16_BYTE( "082-c7.c7", 0xc00000, 0x100000, CRC(727c4d02) SHA1(8204c7f037d46e0c58f269f9c7a535bc2589f526) )
+ ROM_LOAD16_BYTE( "082-c8.c8", 0xc00001, 0x100000, CRC(69a5fa37) SHA1(020e70e0e8b3c5d00a40fe97e418115a3187e50a) )
+ROM_END
+
+/****************************************
+ ID-0083
+ . NGM-083
+ NEO-MVS PROGTOP / NEO-MVS CHA256
+****************************************/
+
+ROM_START( pbobblen ) /* MVS ONLY RELEASE */
+ /* This set uses CHA and PROG board from Power Spikes II. Six Power Spikes II prom's are replaced with
+ Puzzle Bobble prom's. Confirmed on several original carts. Do other layouts also exist? */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "d96-07.ep1", 0x000000, 0x080000, CRC(6102ca14) SHA1(328429d11de5b327a0654ae0548da4d0025a2ae6) )
+
+ NEO_SFIX_128K( "d96-04.s1", CRC(9caae538) SHA1(cf2d90a7c1a42107c0bb8b9a61397634286dbe0a) )
+
+ NEO_BIOS_AUDIO_128K( "d96-06.m1", CRC(f424368a) SHA1(5e5bbcaeb82bed2ee17df08f005ca20ad1030723) )
+ /* M1 on eprom with sticker; label is D96-06 */
+
+ ROM_REGION( 0x380000, "ymsnd", 0 )
+ ROM_LOAD( "068-v1.v1", 0x000000, 0x100000, CRC(2ced86df) SHA1(d6b73d1f31efbd74fb745200d4dade5f80b71541) ) /* unused */
+ ROM_LOAD( "068-v2.v2", 0x100000, 0x100000, CRC(970851ab) SHA1(6c9b04e9cc6b92133f1154e5bdd9d38d8ef050a7) ) /* unused */
+ ROM_LOAD( "d96-01.v3", 0x200000, 0x100000, CRC(0840cbc4) SHA1(1adbd7aef44fa80832f63dfb8efdf69fd7256a57) )
+ ROM_LOAD( "d96-05.v4", 0x300000, 0x080000, CRC(0a548948) SHA1(e1e4afd17811cb60401c14fbcf0465035165f4fb) )
+
+ ROM_REGION( 0x500000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "068-c1.c1", 0x000000, 0x100000, CRC(7f250f76) SHA1(5109a41adcb7859e24dc43d88842d4cc18cd3305) ) /* unused */
+ ROM_LOAD16_BYTE( "068-c2.c2", 0x000001, 0x100000, CRC(20912873) SHA1(2df8766b531e47ffc30457e41c63b83557b4f468) ) /* unused */
+ ROM_LOAD16_BYTE( "068-c3.c3", 0x200000, 0x100000, CRC(4b641ba1) SHA1(7a9c42a30163eda455f7bde2302402b1a5de7178) ) /* unused */
+ ROM_LOAD16_BYTE( "068-c4.c4", 0x200001, 0x100000, CRC(35072596) SHA1(4150a21041f06514c97592bd8af686504b06e187) ) /* unused */
+ ROM_LOAD16_BYTE( "d96-02.c5", 0x400000, 0x080000, CRC(e89ad494) SHA1(69c9ea415773af94ac44c48af05d55ada222b138) )
+ ROM_LOAD16_BYTE( "d96-03.c6", 0x400001, 0x080000, CRC(4b42d7eb) SHA1(042ae50a528cea21cf07771d3915c57aa16fd5af) )
+ROM_END
+
+/****************************************
+ ID-0084
+ . NGM-084
+ NEO-MVS PROGBK1 / NEO-MVS CHA256
+ NEO-MVS PROGSM / NEO-MVS CHA256
+ . NGH-084
+ NEO-AEG PROGBK1Y / NEO-AEG CHA256RY
+****************************************/
+
+ROM_START( kof95 ) /* MVS VERSION */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "084-p1.p1",0x100000, 0x100000, CRC(2cba2716) SHA1(f6c2d0537c9c3e0938065c65b1797c47198fcff8) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "084-s1.s1", CRC(de716f8a) SHA1(f7386454a943ed5caf625f67ee1d0197b1c6fa13) )
+
+ NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) )
+
+ ROM_REGION( 0x900000, "ymsnd", 0 )
+ ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) )
+ ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) )
+ /* 600000-7fffff empty */
+ ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "084-c1.c1", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) )
+ ROM_LOAD16_BYTE( "084-c2.c2", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) )
+ ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) )
+ ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) )
+ ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) )
+ ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) )
+ /* 1400000-17fffff empty */
+ ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) )
+ ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) )
+ROM_END
+
+ROM_START( kof95a ) /* MVS VERSION */
+ /* This set uses NEO-MVS PROGSM board; same rom data as in kof95h is used */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "084-epr.ep1", 0x000000, 0x080000, CRC(577ca1bb) SHA1(0d9d8b6db8a5a4ea47fd6602bc77df68b74b1691) )
+ ROM_LOAD16_WORD_SWAP( "084-epr.ep2", 0x080000, 0x080000, CRC(30802a5d) SHA1(04109e7c4f8d171fcebbe1198f85a271b008f8f1) )
+ ROM_LOAD16_WORD_SWAP( "084-epr.ep3", 0x100000, 0x080000, CRC(21ae248a) SHA1(87318a1bc667f31a9824beefee94617b4724dc2d) )
+ ROM_LOAD16_WORD_SWAP( "084-epr.ep4", 0x180000, 0x080000, CRC(19d3fbee) SHA1(39225ec8a7ed5d2f5e83f5d575b9fa38800b0704) )
+ /* P's on eprom, correct chip label unknown */
+
+ NEO_SFIX_128K( "084-s1.s1", CRC(de716f8a) SHA1(f7386454a943ed5caf625f67ee1d0197b1c6fa13) )
+
+ NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) )
+
+ ROM_REGION( 0x900000, "ymsnd", 0 )
+ ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) )
+ ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) )
+ /* 600000-7fffff empty */
+ ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "084-c1.c1", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) )
+ ROM_LOAD16_BYTE( "084-c2.c2", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) )
+ ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) )
+ ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) )
+ ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) )
+ ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) )
+ /* 1400000-17fffff empty */
+ ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) )
+ ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) )
+ROM_END
+
+ROM_START( kof95h ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "084-pg1.p1", 0x100000, 0x100000, CRC(5e54cf95) SHA1(41abe2042fdbb1526e92a0789976a9b1ac5e60f0) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "084-s1.s1", CRC(de716f8a) SHA1(f7386454a943ed5caf625f67ee1d0197b1c6fa13) )
+
+ NEO_BIOS_AUDIO_128K( "084-m1.m1", CRC(6f2d7429) SHA1(6f8462e4f07af82a5ca3197895d5dcbb67bdaa61) )
+
+ ROM_REGION( 0x900000, "ymsnd", 0 )
+ ROM_LOAD( "084-v1.v1", 0x000000, 0x400000, CRC(84861b56) SHA1(1b6c91ddaed01f45eb9b7e49d9c2b9b479d50da6) )
+ ROM_LOAD( "084-v2.v2", 0x400000, 0x200000, CRC(b38a2803) SHA1(dbc2c8606ca09ed7ff20906b022da3cf053b2f09) )
+ /* 600000-7fffff empty */
+ ROM_LOAD( "084-v3.v3", 0x800000, 0x100000, CRC(d683a338) SHA1(eb9866b4b286edc09963cb96c43ce0a8fb09adbb) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "084-c1.c1", 0x0000000, 0x400000, CRC(fe087e32) SHA1(e8e89faa616027e4fb9b8a865c1a67f409c93bdf) )
+ ROM_LOAD16_BYTE( "084-c2.c2", 0x0000001, 0x400000, CRC(07864e09) SHA1(0817fcfd75d0735fd8ff27561eaec371e4ff5829) )
+ ROM_LOAD16_BYTE( "084-c3.c3", 0x0800000, 0x400000, CRC(a4e65d1b) SHA1(740a405b40b3a4b324697d2652cae29ffe0ac0bd) )
+ ROM_LOAD16_BYTE( "084-c4.c4", 0x0800001, 0x400000, CRC(c1ace468) SHA1(74ea2a3cfd7b744f0988a05baaff10016ca8f625) )
+ ROM_LOAD16_BYTE( "084-c5.c5", 0x1000000, 0x200000, CRC(8a2c1edc) SHA1(67866651bc0ce27122285a66b0aab108acf3d065) )
+ ROM_LOAD16_BYTE( "084-c6.c6", 0x1000001, 0x200000, CRC(f593ac35) SHA1(302c92c63f092a8d49429c3331e5e5678f0ea48d) )
+ /* 1400000-17fffff empty */
+ ROM_LOAD16_BYTE( "084-c7.c7", 0x1800000, 0x100000, CRC(9904025f) SHA1(eec770746a0ad073f7d353ab16a2cc3a5278d307) )
+ ROM_LOAD16_BYTE( "084-c8.c8", 0x1800001, 0x100000, CRC(78eb0f9b) SHA1(2925ea21ed2ce167f08a25589e94f28643379034) )
+ROM_END
+
+/****************************************
+ ID-0085
+ Shinsetsu Samurai Spirits Bushidoretsuden / Samurai Shodown RPG (CD only)
+****************************************/
+
+/****************************************
+ ID-0086
+ . ??M-086
+ NEO-MVS PROGBK1 / NEO-MVS CHA256B
+****************************************/
+
+ROM_START( tws96 ) /* MVS ONLY RELEASE */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "086-p1.p1", 0x000000, 0x100000, CRC(03e20ab6) SHA1(3a0a5a54649178ce7a6158980cb4445084b40fb5) )
+
+ NEO_SFIX_128K( "086-s1.s1", CRC(6f5e2b3a) SHA1(273341489f6625d35a4a920042a60e2b86373847) )
+
+ NEO_BIOS_AUDIO_128K( "086-m1.m1", CRC(cb82bc5d) SHA1(8e3ecabec25d89adb6e0eed0ef5f94d34a4d5fc0) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "086-v1.v1", 0x000000, 0x200000, CRC(97bf1986) SHA1(b80d3a37e18d0a52f1e0092dc300989c9647efd1) )
+ ROM_LOAD( "086-v2.v2", 0x200000, 0x200000, CRC(b7eb05df) SHA1(ff2b55c7021c248cfdcfc9cd3658f2896bcbca38) )
+
+ ROM_REGION( 0xa00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "086-c1.c1", 0x000000, 0x400000, CRC(2611bc2a) SHA1(bb5a96acd4a90fcb41c49cc8e9f760c4a06d6b84) )
+ ROM_LOAD16_BYTE( "086-c2.c2", 0x000001, 0x400000, CRC(6b0d6827) SHA1(3cb2bbab381a26ec69f97c3d6116ce47254286b4) )
+ ROM_LOAD16_BYTE( "086-c3.c3", 0x800000, 0x100000, CRC(750ddc0c) SHA1(9304a83d81afd544d88be0cd3ee47ae401d2da0e) )
+ ROM_LOAD16_BYTE( "086-c4.c4", 0x800001, 0x100000, CRC(7a6e7d82) SHA1(b1bb82cec3d68367d5e01e63c44c11b67e577411) )
+ROM_END
+
+/****************************************
+ ID-0087
+ . NGM-087
+ NEO-MVS PROGSS3 / NEO-MVS CHA256
+ NEO-MVS PROGBK1 / NEO-MVS CHA256
+ . NGH-087
+ NEO-AEG PROGBK1Y / NEO-AEG CHA256RY
+****************************************/
+
+ROM_START( samsho3 ) /* MVS VERSION */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "087-epr.ep1", 0x000000, 0x080000, CRC(23e09bb8) SHA1(79da99fa50a639fce9d1266699b5e53c9ac55642) )
+ ROM_LOAD16_WORD_SWAP( "087-epr.ep2", 0x080000, 0x080000, CRC(256f5302) SHA1(e2d21b413a6059194a994b7902b2a7df98a15151) )
+ ROM_LOAD16_WORD_SWAP( "087-epr.ep3", 0x100000, 0x080000, CRC(bf2db5dd) SHA1(b4fa1dc1eccc9eb1ce74f0a06992ef89b1cbc732) )
+ ROM_LOAD16_WORD_SWAP( "087-epr.ep4", 0x180000, 0x080000, CRC(53e60c58) SHA1(f975e81cab6322d3260348402721c673023259fa) )
+ /* P's on eprom, correct chip label unknown */
+ ROM_LOAD16_WORD_SWAP( "087-p5.p5", 0x200000, 0x100000, CRC(e86ca4af) SHA1(5246acbab77ac2f232b88b8522187764ff0872f0) )
+ /* also found MVS set with p1 / sp2 on maskrom on PROG board NEO-MVS PROGBK1; chip label are 087-PG1 and 087-P2 */
+
+ NEO_SFIX_128K( "087-s1.s1", CRC(74ec7d9f) SHA1(d79c479838a7ca51735a44f91f1968ec5b3c6b91) )
+
+ NEO_BIOS_AUDIO_128K( "087-m1.m1", CRC(8e6440eb) SHA1(e3f72150af4e326543b29df71cda27d73ec087c1) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "087-v1.v1", 0x000000, 0x400000, CRC(84bdd9a0) SHA1(adceceb00569eca13fcc2e0f0d9f0d9b06a06851) )
+ ROM_LOAD( "087-v2.v2", 0x400000, 0x200000, CRC(ac0f261a) SHA1(5411bdff24cba7fdbc3397d45a70fb468d7a44b3) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "087-c1.c1", 0x0000000, 0x400000, CRC(07a233bc) SHA1(654cb56cfd6eeebe6745c0b8b730317fb8ccd3d9) )
+ ROM_LOAD16_BYTE( "087-c2.c2", 0x0000001, 0x400000, CRC(7a413592) SHA1(b8c7a2d0d7a8b14d6cab94d7a5f347e73c6ab7a4) )
+ ROM_LOAD16_BYTE( "087-c3.c3", 0x0800000, 0x400000, CRC(8b793796) SHA1(053acc129ea56691607a5d255845703e61fd3ada) )
+ ROM_LOAD16_BYTE( "087-c4.c4", 0x0800001, 0x400000, CRC(728fbf11) SHA1(daa319d455f759bfc08a37b43218bdb48dc1c9e5) )
+ ROM_LOAD16_BYTE( "087-c5.c5", 0x1000000, 0x400000, CRC(172ab180) SHA1(a6122f683bdb78d0079e1e360c1b96ba28def7b7) )
+ ROM_LOAD16_BYTE( "087-c6.c6", 0x1000001, 0x400000, CRC(002ff8f3) SHA1(3a378708697d727796c4f702dd5bbf1c9eb4daec) )
+ ROM_LOAD16_BYTE( "087-c7.c7", 0x1800000, 0x100000, CRC(ae450e3d) SHA1(ec482632cc347ec3f9e68df0ebcaa16ebe41b9f9) )
+ ROM_LOAD16_BYTE( "087-c8.c8", 0x1800001, 0x100000, CRC(a9e82717) SHA1(e39ee15d5140dbe7f06eea945cce9984a5e8b06a) )
+ROM_END
+
+ROM_START( samsho3h ) /* AES VERSION */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "087-pg1.p1", 0x000000, 0x100000, CRC(282a336e) SHA1(e062f1939d36a45f185b5dbd726cdd833dc7c28c) )
+ ROM_LOAD16_WORD_SWAP( "087-p2.sp2", 0x100000, 0x200000, CRC(9bbe27e0) SHA1(b18117102159903c8e8f4e4226e1cc91a400e816) )
+
+ NEO_SFIX_128K( "087-s1.s1", CRC(74ec7d9f) SHA1(d79c479838a7ca51735a44f91f1968ec5b3c6b91) )
+
+ NEO_BIOS_AUDIO_128K( "087-m1.m1", CRC(8e6440eb) SHA1(e3f72150af4e326543b29df71cda27d73ec087c1) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "087-v1.v1", 0x000000, 0x400000, CRC(84bdd9a0) SHA1(adceceb00569eca13fcc2e0f0d9f0d9b06a06851) )
+ ROM_LOAD( "087-v2.v2", 0x400000, 0x200000, CRC(ac0f261a) SHA1(5411bdff24cba7fdbc3397d45a70fb468d7a44b3) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "087-c1.c1", 0x0000000, 0x400000, CRC(07a233bc) SHA1(654cb56cfd6eeebe6745c0b8b730317fb8ccd3d9) )
+ ROM_LOAD16_BYTE( "087-c2.c2", 0x0000001, 0x400000, CRC(7a413592) SHA1(b8c7a2d0d7a8b14d6cab94d7a5f347e73c6ab7a4) )
+ ROM_LOAD16_BYTE( "087-c3.c3", 0x0800000, 0x400000, CRC(8b793796) SHA1(053acc129ea56691607a5d255845703e61fd3ada) )
+ ROM_LOAD16_BYTE( "087-c4.c4", 0x0800001, 0x400000, CRC(728fbf11) SHA1(daa319d455f759bfc08a37b43218bdb48dc1c9e5) )
+ ROM_LOAD16_BYTE( "087-c5.c5", 0x1000000, 0x400000, CRC(172ab180) SHA1(a6122f683bdb78d0079e1e360c1b96ba28def7b7) )
+ ROM_LOAD16_BYTE( "087-c6.c6", 0x1000001, 0x400000, CRC(002ff8f3) SHA1(3a378708697d727796c4f702dd5bbf1c9eb4daec) )
+ ROM_LOAD16_BYTE( "087-c7.c7", 0x1800000, 0x100000, CRC(ae450e3d) SHA1(ec482632cc347ec3f9e68df0ebcaa16ebe41b9f9) )
+ ROM_LOAD16_BYTE( "087-c8.c8", 0x1800001, 0x100000, CRC(a9e82717) SHA1(e39ee15d5140dbe7f06eea945cce9984a5e8b06a) )
+ROM_END
+
+ROM_START( fswords ) /* KOREAN VERSION */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "187-p1k.p1", 0x000000, 0x100000, CRC(c8e7c075) SHA1(7b74f2917114460d79d8f46ee24829a4c08cbf2a) )
+ ROM_LOAD16_WORD_SWAP( "087-p2.sp2", 0x100000, 0x200000, CRC(9bbe27e0) SHA1(b18117102159903c8e8f4e4226e1cc91a400e816) )
+
+ NEO_SFIX_128K( "087-s1.s1", CRC(74ec7d9f) SHA1(d79c479838a7ca51735a44f91f1968ec5b3c6b91) )
+
+ NEO_BIOS_AUDIO_128K( "087-m1.m1", CRC(8e6440eb) SHA1(e3f72150af4e326543b29df71cda27d73ec087c1) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "087-v1.v1", 0x000000, 0x400000, CRC(84bdd9a0) SHA1(adceceb00569eca13fcc2e0f0d9f0d9b06a06851) )
+ ROM_LOAD( "087-v2.v2", 0x400000, 0x200000, CRC(ac0f261a) SHA1(5411bdff24cba7fdbc3397d45a70fb468d7a44b3) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "087-c1.c1", 0x0000000, 0x400000, CRC(07a233bc) SHA1(654cb56cfd6eeebe6745c0b8b730317fb8ccd3d9) )
+ ROM_LOAD16_BYTE( "087-c2.c2", 0x0000001, 0x400000, CRC(7a413592) SHA1(b8c7a2d0d7a8b14d6cab94d7a5f347e73c6ab7a4) )
+ ROM_LOAD16_BYTE( "087-c3.c3", 0x0800000, 0x400000, CRC(8b793796) SHA1(053acc129ea56691607a5d255845703e61fd3ada) )
+ ROM_LOAD16_BYTE( "087-c4.c4", 0x0800001, 0x400000, CRC(728fbf11) SHA1(daa319d455f759bfc08a37b43218bdb48dc1c9e5) )
+ ROM_LOAD16_BYTE( "087-c5.c5", 0x1000000, 0x400000, CRC(172ab180) SHA1(a6122f683bdb78d0079e1e360c1b96ba28def7b7) )
+ ROM_LOAD16_BYTE( "087-c6.c6", 0x1000001, 0x400000, CRC(002ff8f3) SHA1(3a378708697d727796c4f702dd5bbf1c9eb4daec) )
+ ROM_LOAD16_BYTE( "087-c7.c7", 0x1800000, 0x100000, CRC(ae450e3d) SHA1(ec482632cc347ec3f9e68df0ebcaa16ebe41b9f9) )
+ ROM_LOAD16_BYTE( "087-c8.c8", 0x1800001, 0x100000, CRC(a9e82717) SHA1(e39ee15d5140dbe7f06eea945cce9984a5e8b06a) )
+ROM_END
+
+/****************************************
+ ID-0088
+ . NGM-088
+ NEO-MVS PROGBK1 / NEO-MVS CHA42-3B
+ . NGH-088
+ NEO-AEG PROGRKB / NEO-AEG CHA256[B]
+****************************************/
+
+ROM_START( stakwin )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "088-p1.p1", 0x100000, 0x100000, CRC(bd5814f6) SHA1(95179a4dee61ae88bb5d9fd74af0c56c8c29f5ea) )
+ ROM_CONTINUE( 0x000000, 0x100000)
+
+ NEO_SFIX_128K( "088-s1.s1", CRC(073cb208) SHA1(c5b4697d767575884dd49ae416c1fe4a4a92d3f6) )
+
+ NEO_BIOS_AUDIO_128K( "088-m1.m1", CRC(2fe1f499) SHA1(5b747eeef65be04423d2db05e086df9132758a47) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "088-v1.v1", 0x000000, 0x200000, CRC(b7785023) SHA1(d11df1e623434669cd3f97f0feda747b24dac05d) )
+
+ ROM_REGION( 0x800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "088-c1.c1", 0x000000, 0x200000, CRC(6e733421) SHA1(b67c5d2654a62cc4e44bd54d28e62c7da5eea424) )
+ ROM_LOAD16_BYTE( "088-c2.c2", 0x000001, 0x200000, CRC(4d865347) SHA1(ad448cf96f3dce44c83412ed6878c495eb4a8a1e) )
+ ROM_LOAD16_BYTE( "088-c3.c3", 0x400000, 0x200000, CRC(8fa5a9eb) SHA1(7bee19d8a2bccedd8e2cf0c0e9138902b9dafc23) )
+ ROM_LOAD16_BYTE( "088-c4.c4", 0x400001, 0x200000, CRC(4604f0dc) SHA1(ddf5dbb5e07313998a8f695ad19354ea54585dd6) )
+ROM_END
+
+/****************************************
+ ID-0089
+ . NGM-089
+ NEO-MVS PROGBK1 / NEO-MVS CHA256
+ . NGH-089
+ NEO-AEG PROGBK1Y / NEO-AEG CHA256RY
+****************************************/
+
+ROM_START( pulstar )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "089-p1.p1", 0x000000, 0x100000, CRC(5e5847a2) SHA1(b864d0ec4184b785569ddbf67c2115b5ab86ee3e) )
+ ROM_LOAD16_WORD_SWAP( "089-p2.sp2", 0x100000, 0x200000, CRC(028b774c) SHA1(fc5da2821a5072f2b78245fc59b6e3eeef116d16) )
+
+ NEO_SFIX_128K( "089-s1.s1", CRC(c79fc2c8) SHA1(914c224fb3c461a68d7425cae724cf22bd5f985d) )
+
+ NEO_BIOS_AUDIO_128K( "089-m1.m1", CRC(ff3df7c7) SHA1(59d2ef64f734f6026073b365300221909057a512) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "089-v1.v1", 0x000000, 0x400000, CRC(6f726ecb) SHA1(e8e2a46af690ce6c7ee64a58ab5010d22df9548c) )
+ ROM_LOAD( "089-v2.v2", 0x400000, 0x400000, CRC(9d2db551) SHA1(83f7e5db7fb1502ceadcd334df90b11b1bba78e5) )
+
+ ROM_REGION( 0x1c00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "089-c1.c1", 0x0000000, 0x400000, CRC(f4e97332) SHA1(54693827a99836e7d61c45d495dd78bf3fcf1544) )
+ ROM_LOAD16_BYTE( "089-c2.c2", 0x0000001, 0x400000, CRC(836d14da) SHA1(99cc4f9b764503eff7849ff2977d90bb47c5564a) )
+ ROM_LOAD16_BYTE( "089-c3.c3", 0x0800000, 0x400000, CRC(913611c4) SHA1(9664eb1fe1e6f8c3ddeeff872d38ea920ed38a82) )
+ ROM_LOAD16_BYTE( "089-c4.c4", 0x0800001, 0x400000, CRC(44cef0e3) SHA1(34f6f348ba86a2a06cb9c43a16b97cf6ee6158ac) )
+ ROM_LOAD16_BYTE( "089-c5.c5", 0x1000000, 0x400000, CRC(89baa1d7) SHA1(976c745c44967de61e2a23227835be580b1d283a) )
+ ROM_LOAD16_BYTE( "089-c6.c6", 0x1000001, 0x400000, CRC(b2594d56) SHA1(685c0bf8ff76c76e41c2ceaebb96349634cfdb2e) )
+ ROM_LOAD16_BYTE( "089-c7.c7", 0x1800000, 0x200000, CRC(6a5618ca) SHA1(9a1d5f998b0dfabacf9dad45c94bef2bb43e5e0c) )
+ ROM_LOAD16_BYTE( "089-c8.c8", 0x1800001, 0x200000, CRC(a223572d) SHA1(2791b1212f57937b2b2a95bc9e420c06d0c37669) )
+ROM_END
+
+/****************************************
+ ID-0090
+ . ADM-009
+ NEO-MVS PROGTOP / NEO-MVS CHA256
+ NEO-MVS PROGGSC / NEO-MVS CHA256
+ NEO-MVS PROGGSC / NEO-MVS CHA256B
+ NEO-MVS PROGBK1 / NEO-MVS CHA256B
+ . ADH-009
+****************************************/
+
+ROM_START( whp )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "090-p1.p1", 0x100000, 0x100000, CRC(afaa4702) SHA1(83d122fddf17d4774353abf4a0655f3939f7b752) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "090-s1.s1", CRC(174a880f) SHA1(c35d315d728d119a6e9aa42e0593937c90897449) )
+
+ NEO_BIOS_AUDIO_128K( "090-m1.m1", CRC(28065668) SHA1(0c60d4afa1dccad0135e733104f056be73b54e4e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "090-v1.v1", 0x000000, 0x200000, CRC(30cf2709) SHA1(d1845033f16de2470afd3858ee0efb45176d9ed7) )
+ ROM_LOAD( "064-v2.v2", 0x200000, 0x200000, CRC(b6527edd) SHA1(2bcf5bfa6e117cf4a3728a5e5f5771313c93f22a) )
+ ROM_LOAD( "090-v3.v3", 0x400000, 0x200000, CRC(1908a7ce) SHA1(78f31bcfea33eb94752bbf5226c481baec1af5ac) )
+
+ ROM_REGION( 0x1c00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "090-c1.c1", 0x0000000, 0x400000, CRC(cd30ed9b) SHA1(839c20f7ff31251acc875ae402b5d267e55510c7) )
+ ROM_LOAD16_BYTE( "090-c2.c2", 0x0000001, 0x400000, CRC(10eed5ee) SHA1(12131b1c8c017ea77a98c044b392a5db6aad0143) )
+ ROM_LOAD16_BYTE( "064-c3.c3", 0x0800000, 0x200000, CRC(436d1b31) SHA1(059776d77b91377ed0bcfc278802d659c917fc0f) )
+ ROM_LOAD16_BYTE( "064-c4.c4", 0x0800001, 0x200000, CRC(f9c8dd26) SHA1(25a9eea1d49b21b4a988beb32c25bf2f7796f227) )
+ /* 0c00000-0ffffff empty */
+ ROM_LOAD16_BYTE( "064-c5.c5", 0x1000000, 0x200000, CRC(8e34a9f4) SHA1(67b839b426ef3fad0a85d951fdd44c0a45c55226) )
+ ROM_LOAD16_BYTE( "064-c6.c6", 0x1000001, 0x200000, CRC(a43e4766) SHA1(54f282f2b1ff2934cca7acbb4386a2b99a29df3a) )
+ /* 1400000-17fffff empty */
+ ROM_LOAD16_BYTE( "064-c7.c7", 0x1800000, 0x200000, CRC(59d97215) SHA1(85a960dc7f364df13ee0c2f99a4c53aefb081486) )
+ ROM_LOAD16_BYTE( "064-c8.c8", 0x1800001, 0x200000, CRC(fc092367) SHA1(69ff4ae909dd857de3ca8645d63f8b4bde117448) )
+ROM_END
+
+/****************************************
+ ID-0091
+ ADK World / ADK Special 1995 ADK (CD only)
+****************************************/
+
+/****************************************
+ ID-0092
+ . NGM-092
+ NEO-MVS PROGBK1 / NEO-MVS CHA256
+ NEO-MVS PROGTOP / NEO-MVS CHA256
+ . NGH-092
+****************************************/
+
+ROM_START( kabukikl )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "092-p1.p1", 0x100000, 0x100000, CRC(28ec9b77) SHA1(7cdc789a99f8127f437d68cbc41278c926be9efd) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "092-s1.s1", CRC(a3d68ee2) SHA1(386f6110a16967a72fbf788f9d968fddcdcd2889) )
+
+ NEO_BIOS_AUDIO_128K( "092-m1.m1", CRC(91957ef6) SHA1(7b6907532a0e02ceb643623cbd689cf228776ed1) )
+
+ ROM_REGION( 0x700000, "ymsnd", 0 )
+ ROM_LOAD( "092-v1.v1", 0x000000, 0x200000, CRC(69e90596) SHA1(1a2007d7784b3ce90d115980c3353862f1664d45) )
+ ROM_LOAD( "092-v2.v2", 0x200000, 0x200000, CRC(7abdb75d) SHA1(0bff764889fe02f37877514c7fc450250839f632) )
+ ROM_LOAD( "092-v3.v3", 0x400000, 0x200000, CRC(eccc98d3) SHA1(b0dfbdb1ea045cb961323ac6906ab342256c3dc7) )
+ ROM_LOAD( "092-v4.v4", 0x600000, 0x100000, CRC(a7c9c949) SHA1(574bc55b45e81ce357b14f5992426115de25cd35) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "092-c1.c1", 0x000000, 0x400000, CRC(2a9fab01) SHA1(aa9f037df33ae0575b328734c76c0918ae1917e9) )
+ ROM_LOAD16_BYTE( "092-c2.c2", 0x000001, 0x400000, CRC(6d2bac02) SHA1(dfe96b62883333872be432e8af1ae617c9e62698) )
+ ROM_LOAD16_BYTE( "092-c3.c3", 0x800000, 0x400000, CRC(5da735d6) SHA1(f1c05a73794ece15576a0a30c81f4a44faac475a) )
+ ROM_LOAD16_BYTE( "092-c4.c4", 0x800001, 0x400000, CRC(de07f997) SHA1(c27a4d4bef868eed38dc152ff37d4135b16cc991) )
+ROM_END
+
+/****************************************
+ ID-0093
+ . ??M-093
+ NEO-MVS PROGBK1 / NEO-MVS CHA256
+****************************************/
+
+ROM_START( neobombe ) /* MVS ONLY RELEASE */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "093-p1.p1", 0x000000, 0x100000, CRC(a1a71d0d) SHA1(059284c84f61a825923d86d2f29c91baa2c439cd) )
+
+ NEO_SFIX_128K( "093-s1.s1", CRC(4b3fa119) SHA1(41cb0909bfb017eb6f2c530cb92a423319ed7ab1) )
+
+ NEO_BIOS_AUDIO_128K( "093-m1.m1", CRC(e81e780b) SHA1(c56c53984e0f92e180e850c60a75f550ee84917c) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "093-v1.v1", 0x000000, 0x400000, CRC(02abd4b0) SHA1(6bf33ebc9b01cd4a029f6a555694a9835e30ca1b) )
+ ROM_LOAD( "093-v2.v2", 0x400000, 0x200000, CRC(a92b8b3d) SHA1(b672c97b85d2f52eba3cb26025008ebc7a18312a) )
+
+ ROM_REGION( 0x900000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "093-c1.c1", 0x000000, 0x400000, CRC(d1f328f8) SHA1(ddf71280c2ce85225f15fe9e973f330609281878) )
+ ROM_LOAD16_BYTE( "093-c2.c2", 0x000001, 0x400000, CRC(82c49540) SHA1(5f37c1bc0d63c98a13967b44da3d2c85e6dbbe50) )
+ ROM_LOAD16_BYTE( "093-c3.c3", 0x800000, 0x080000, CRC(e37578c5) SHA1(20024caa0f09ee887a6418dd02d02a0df93786fd) )
+ ROM_LOAD16_BYTE( "093-c4.c4", 0x800001, 0x080000, CRC(59826783) SHA1(0110a2b6186cca95f75225d4d0269d61c2ad25b1) )
+ROM_END
+
+/****************************************
+ ID-0094
+ . NGM-094
+ NEO-MVS PROGBK1 / NEO-MVS CHA42G-3B
+ . NGH-094
+****************************************/
+
+ROM_START( gowcaizr )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "094-p1.p1", 0x100000, 0x100000, CRC(33019545) SHA1(213db6c0b7d24b74b809854f9c606dbea1d9ba00) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "094-s1.s1", CRC(2f8748a2) SHA1(5cc723c4284120473d63d8b0c1a3b3be74bdc324) )
+
+ NEO_BIOS_AUDIO_128K( "094-m1.m1", CRC(78c851cb) SHA1(a9923c002e4e2171a564af45cff0958c5d57b275) )
+
+ ROM_REGION( 0x500000, "ymsnd", 0 )
+ ROM_LOAD( "094-v1.v1", 0x000000, 0x200000, CRC(6c31223c) SHA1(ede3a2806d7d872a0f737626a23ecce200b534e6) )
+ ROM_LOAD( "094-v2.v2", 0x200000, 0x200000, CRC(8edb776c) SHA1(a9eac5e24f83ccdcf303d63261747b1bad876a24) )
+ ROM_LOAD( "094-v3.v3", 0x400000, 0x100000, CRC(c63b9285) SHA1(6bbbacfe899e204e74657d6c3f3d05ce75e432f1) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "094-c1.c1", 0x000000, 0x200000, CRC(042f6af5) SHA1(1c50df6a1a53ffb3079ea0a19c746f5c9536a3ed) )
+ ROM_LOAD16_BYTE( "094-c2.c2", 0x000001, 0x200000, CRC(0fbcd046) SHA1(9a6dc920a877f27424477c3478907b23afbaa5ea) )
+ ROM_LOAD16_BYTE( "094-c3.c3", 0x400000, 0x200000, CRC(58bfbaa1) SHA1(4c6f9cf138c5e6dfe89a45e2a690a986c75f5bfc) )
+ ROM_LOAD16_BYTE( "094-c4.c4", 0x400001, 0x200000, CRC(9451ee73) SHA1(7befee4a886b1d7493c06cefb7abf4ec01c14a8b) )
+ ROM_LOAD16_BYTE( "094-c5.c5", 0x800000, 0x200000, CRC(ff9cf48c) SHA1(5f46fb5d0812275b0006919d8540f22be7c16492) )
+ ROM_LOAD16_BYTE( "094-c6.c6", 0x800001, 0x200000, CRC(31bbd918) SHA1(7ff8c5e3f17d40e7a8a189ad8f8026de55368810) )
+ ROM_LOAD16_BYTE( "094-c7.c7", 0xc00000, 0x200000, CRC(2091ec04) SHA1(a81d4bdbef1ac6ea49845dc30e31bf9745694100) )
+ ROM_LOAD16_BYTE( "094-c8.c8", 0xc00001, 0x200000, CRC(d80dd241) SHA1(1356a64e4d4e271f62cd0d83f79ee9c906440810) )
+ROM_END
+
+/****************************************
+ dev board, same ID as gowcaizr
+****************************************/
+
+ROM_START( dragonsh )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "EP2.bin", 0x000000, 0x080000, CRC(f25c71ad) SHA1(803fb6cd6a7ada59678ad901ff9788b1e54ddd0c) )
+ ROM_LOAD16_BYTE( "EP1.bin", 0x000001, 0x080000, CRC(f353448c) SHA1(f0f966ca15d503e01b40e901765ff0888463b65d) )
+
+ NEO_SFIX_128K( "s1.s1", BAD_DUMP CRC(706477a7) SHA1(8cbee7f6832e7edd2dc792ca330420a6a984b879) ) // was a dead AXS512PC 512KB sram card, this data is handcrafted to make the set usable (hence BAD_DUMP)
+
+ NEOGEO_BIOS
+ ROM_REGION( 0x20000, "audiobios", 0 )
+ ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) )
+ ROM_REGION( 0x30000, "audiocpu", ROMREGION_ERASEFF )
+ /* not present */
+
+ ROM_REGION( 0x200000, "ymsnd", ROMREGION_ERASE00 )
+ ROM_LOAD( "sram.v1", 0x000000, 0x200000, NO_DUMP ) // was a dead AXS2000PC 2MB sram card, battery dead, data lost.
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "no3.bin", 0x000000, 0x1000000, CRC(81821826) SHA1(b7c1a53e32633383675206a16c68f6f2ff984865) )
+ ROM_LOAD16_BYTE( "no4.bin", 0x000001, 0x1000000, CRC(3601d568) SHA1(800323e52f5d33b402f84d31850b42c688082d67) )
+ROM_END
+
+/****************************************
+ ID-0095
+ . NGM-095
+ NEO-MVS PROGBK1 / NEO-MVS CHA256
+ . NGH-095
+ NEO-AEG PROGBK1Y / NEO-AEG CHA256RY
+****************************************/
+
+ROM_START( rbff1 ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "095-p1.p1", 0x000000, 0x100000, CRC(63b4d8ae) SHA1(03aa9f6bab6aee685d1b57a52823797704eea845) )
+ ROM_LOAD16_WORD_SWAP( "095-p2.sp2", 0x100000, 0x200000, CRC(cc15826e) SHA1(44d6ac6c0ca697a6f367dcfd809b1e1771cb0635) )
+
+ NEO_SFIX_128K( "095-s1.s1", CRC(b6bf5e08) SHA1(b527355c35ea097f3448676f2ffa65b8e56ae30c) )
+
+ NEO_BIOS_AUDIO_128K( "095-m1.m1", CRC(653492a7) SHA1(39e511fb9ed5d2135dc8428a31d0baafb2ab36e0) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "069-v1.v1", 0x000000, 0x400000, CRC(2bdbd4db) SHA1(5f4fecf69c2329d699cbd45829c19303b1e2a80e) )
+ ROM_LOAD( "069-v2.v2", 0x400000, 0x400000, CRC(a698a487) SHA1(11b8bc53bc26a51f4a408e900e3769958625c4ed) )
+ ROM_LOAD( "095-v3.v3", 0x800000, 0x400000, CRC(189d1c6c) SHA1(f0b8cd1ee40ea3feeb2800f0723b451ec8240203) )
+
+ ROM_REGION( 0x1c00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "069-c1.c1", 0x0000000, 0x400000, CRC(e302f93c) SHA1(d8610b14900b2b8fe691b67ca9b1abb335dbff74) )
+ ROM_LOAD16_BYTE( "069-c2.c2", 0x0000001, 0x400000, CRC(1053a455) SHA1(69501bfac68739e63d798045b812badd251d57b8) )
+ ROM_LOAD16_BYTE( "069-c3.c3", 0x0800000, 0x400000, CRC(1c0fde2f) SHA1(cf6c2ef56c03a861de3b0b6dc0d7c9204d947f9d) )
+ ROM_LOAD16_BYTE( "069-c4.c4", 0x0800001, 0x400000, CRC(a25fc3d0) SHA1(83cb349e2f1032652060b233e741fb893be5af16) )
+ ROM_LOAD16_BYTE( "095-c5.c5", 0x1000000, 0x400000, CRC(8b9b65df) SHA1(e2a7e20855501f240bcd22f5cc92fcb4a9806abe) )
+ ROM_LOAD16_BYTE( "095-c6.c6", 0x1000001, 0x400000, CRC(3e164718) SHA1(53217f938c8964c1ca68a6fd5249c4169a5ac8e6) )
+ ROM_LOAD16_BYTE( "095-c7.c7", 0x1800000, 0x200000, CRC(ca605e12) SHA1(5150b835247fd705bc1dece97d423d9c20a51416) )
+ ROM_LOAD16_BYTE( "095-c8.c8", 0x1800001, 0x200000, CRC(4e6beb6c) SHA1(c0ac7cfc832ace6ad52c58f5da3a8101baead749) )
+ROM_END
+
+ROM_START( rbff1a ) /* MVS VERSION */
+ /* This is a bug fixed revision applied over the original cart. The original P1 and P2 stayed in the cart and this */
+ /* 512k ROM was added to replace the first 512k of P1. */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "095-p1.p1", 0x000000, 0x100000, CRC(63b4d8ae) SHA1(03aa9f6bab6aee685d1b57a52823797704eea845) )
+ ROM_LOAD16_WORD_SWAP( "095-p2.sp2", 0x100000, 0x200000, CRC(cc15826e) SHA1(44d6ac6c0ca697a6f367dcfd809b1e1771cb0635) )
+ /* the rom below acts as a patch to the program rom in the cart, replacing the first 512kb */
+ ROM_LOAD16_WORD_SWAP( "095-epr.ep1", 0x000000, 0x080000, CRC(be0060a3) SHA1(fa741d34898ad5004a23e280139d1446f1a082c7) )
+ /* P is on eprom, correct chip label unknown */
+
+ NEO_SFIX_128K( "095-s1.s1", CRC(b6bf5e08) SHA1(b527355c35ea097f3448676f2ffa65b8e56ae30c) )
+
+ NEO_BIOS_AUDIO_128K( "095-m1.m1", CRC(653492a7) SHA1(39e511fb9ed5d2135dc8428a31d0baafb2ab36e0) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "069-v1.v1", 0x000000, 0x400000, CRC(2bdbd4db) SHA1(5f4fecf69c2329d699cbd45829c19303b1e2a80e) )
+ ROM_LOAD( "069-v2.v2", 0x400000, 0x400000, CRC(a698a487) SHA1(11b8bc53bc26a51f4a408e900e3769958625c4ed) )
+ ROM_LOAD( "095-v3.v3", 0x800000, 0x400000, CRC(189d1c6c) SHA1(f0b8cd1ee40ea3feeb2800f0723b451ec8240203) )
+
+ ROM_REGION( 0x1c00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "069-c1.c1", 0x0000000, 0x400000, CRC(e302f93c) SHA1(d8610b14900b2b8fe691b67ca9b1abb335dbff74) )
+ ROM_LOAD16_BYTE( "069-c2.c2", 0x0000001, 0x400000, CRC(1053a455) SHA1(69501bfac68739e63d798045b812badd251d57b8) )
+ ROM_LOAD16_BYTE( "069-c3.c3", 0x0800000, 0x400000, CRC(1c0fde2f) SHA1(cf6c2ef56c03a861de3b0b6dc0d7c9204d947f9d) )
+ ROM_LOAD16_BYTE( "069-c4.c4", 0x0800001, 0x400000, CRC(a25fc3d0) SHA1(83cb349e2f1032652060b233e741fb893be5af16) )
+ ROM_LOAD16_BYTE( "095-c5.c5", 0x1000000, 0x400000, CRC(8b9b65df) SHA1(e2a7e20855501f240bcd22f5cc92fcb4a9806abe) )
+ ROM_LOAD16_BYTE( "095-c6.c6", 0x1000001, 0x400000, CRC(3e164718) SHA1(53217f938c8964c1ca68a6fd5249c4169a5ac8e6) )
+ ROM_LOAD16_BYTE( "095-c7.c7", 0x1800000, 0x200000, CRC(ca605e12) SHA1(5150b835247fd705bc1dece97d423d9c20a51416) )
+ ROM_LOAD16_BYTE( "095-c8.c8", 0x1800001, 0x200000, CRC(4e6beb6c) SHA1(c0ac7cfc832ace6ad52c58f5da3a8101baead749) )
+ROM_END
+
+/****************************************
+ ID-0096
+ . NGM-096
+ NEO-MVS PROGBK1 / NEO-MVS CHA256
+ . NGH-096
+****************************************/
+
+ROM_START( aof3 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "096-p1.p1", 0x000000, 0x100000, CRC(9edb420d) SHA1(150d80707325ece351c72c21c6186cfb5996adba) )
+ ROM_LOAD16_WORD_SWAP( "096-p2.sp2", 0x100000, 0x200000, CRC(4d5a2602) SHA1(4c26d6135d2877d9c38169662033e9d0cc24d943) )
+
+ NEO_SFIX_128K( "096-s1.s1", CRC(cc7fd344) SHA1(2c6846cf8ea61fb192ba181dbccb63594d572c0e) )
+
+ NEO_BIOS_AUDIO_128K( "096-m1.m1", CRC(cb07b659) SHA1(940b379957c2987d7ab0443cb80c3ff58f6ba559) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "096-v1.v1", 0x000000, 0x200000, CRC(e2c32074) SHA1(69426e7e63fc31a73d1cd056cc9ae6a2c4499407) )
+ ROM_LOAD( "096-v2.v2", 0x200000, 0x200000, CRC(a290eee7) SHA1(e66a98cd9740188bf999992b417f8feef941cede) )
+ ROM_LOAD( "096-v3.v3", 0x400000, 0x200000, CRC(199d12ea) SHA1(a883bf34e685487705a8dafdd0b8db15eb360e80) )
+
+ ROM_REGION( 0x1c00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "096-c1.c1", 0x0000000, 0x400000, CRC(f17b8d89) SHA1(7180df23f7c7a964b0835fda76970b12f0aa9ea8) )
+ ROM_LOAD16_BYTE( "096-c2.c2", 0x0000001, 0x400000, CRC(3840c508) SHA1(55adc7cd26fec3e4dbd779df6701bc6eaba41b84) )
+ ROM_LOAD16_BYTE( "096-c3.c3", 0x0800000, 0x400000, CRC(55f9ee1e) SHA1(fbe1b7891beae66c5fcbc7e36168dc1b460ede91) )
+ ROM_LOAD16_BYTE( "096-c4.c4", 0x0800001, 0x400000, CRC(585b7e47) SHA1(d50ea91397fc53d86470ff5b493a44d57c010306) )
+ ROM_LOAD16_BYTE( "096-c5.c5", 0x1000000, 0x400000, CRC(c75a753c) SHA1(fc977f8710816a369a5d0d49ee84059380e93fb7) )
+ ROM_LOAD16_BYTE( "096-c6.c6", 0x1000001, 0x400000, CRC(9a9d2f7a) SHA1(a89a713bfcd93974c9acb21ce699d365b08e7e39) )
+ ROM_LOAD16_BYTE( "096-c7.c7", 0x1800000, 0x200000, CRC(51bd8ab2) SHA1(c8def9c64de64571492b5b7e14b794e3c18f1393) )
+ ROM_LOAD16_BYTE( "096-c8.c8", 0x1800001, 0x200000, CRC(9a34f99c) SHA1(fca72d95ec42790a7f1e771a1e25dbc5bec5fc19) )
+ROM_END
+
+ROM_START( aof3k ) /* KOREAN VERSION */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "196-p1k.p1", 0x000000, 0x100000, CRC(a0780789) SHA1(83657922a9a3502653ef8cda45b15d9f935aa96a) )
+ ROM_LOAD16_WORD_SWAP( "096-p2.sp2", 0x100000, 0x200000, CRC(4d5a2602) SHA1(4c26d6135d2877d9c38169662033e9d0cc24d943) )
+
+ NEO_SFIX_128K( "096-s1.s1", CRC(cc7fd344) SHA1(2c6846cf8ea61fb192ba181dbccb63594d572c0e) )
+
+ NEO_BIOS_AUDIO_128K( "096-m1.m1", CRC(cb07b659) SHA1(940b379957c2987d7ab0443cb80c3ff58f6ba559) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "096-v1.v1", 0x000000, 0x200000, CRC(e2c32074) SHA1(69426e7e63fc31a73d1cd056cc9ae6a2c4499407) )
+ ROM_LOAD( "096-v2.v2", 0x200000, 0x200000, CRC(a290eee7) SHA1(e66a98cd9740188bf999992b417f8feef941cede) )
+ ROM_LOAD( "096-v3.v3", 0x400000, 0x200000, CRC(199d12ea) SHA1(a883bf34e685487705a8dafdd0b8db15eb360e80) )
+
+ ROM_REGION( 0x1c00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "096-c1.c1", 0x0000000, 0x400000, CRC(f17b8d89) SHA1(7180df23f7c7a964b0835fda76970b12f0aa9ea8) )
+ ROM_LOAD16_BYTE( "096-c2.c2", 0x0000001, 0x400000, CRC(3840c508) SHA1(55adc7cd26fec3e4dbd779df6701bc6eaba41b84) )
+ ROM_LOAD16_BYTE( "096-c3.c3", 0x0800000, 0x400000, CRC(55f9ee1e) SHA1(fbe1b7891beae66c5fcbc7e36168dc1b460ede91) )
+ ROM_LOAD16_BYTE( "096-c4.c4", 0x0800001, 0x400000, CRC(585b7e47) SHA1(d50ea91397fc53d86470ff5b493a44d57c010306) )
+ ROM_LOAD16_BYTE( "096-c5.c5", 0x1000000, 0x400000, CRC(c75a753c) SHA1(fc977f8710816a369a5d0d49ee84059380e93fb7) )
+ ROM_LOAD16_BYTE( "096-c6.c6", 0x1000001, 0x400000, CRC(9a9d2f7a) SHA1(a89a713bfcd93974c9acb21ce699d365b08e7e39) )
+ ROM_LOAD16_BYTE( "096-c7.c7", 0x1800000, 0x200000, CRC(51bd8ab2) SHA1(c8def9c64de64571492b5b7e14b794e3c18f1393) )
+ ROM_LOAD16_BYTE( "096-c8.c8", 0x1800001, 0x200000, CRC(9a34f99c) SHA1(fca72d95ec42790a7f1e771a1e25dbc5bec5fc19) )
+ROM_END
+
+/****************************************
+ ID-0097
+ . NGM-097
+ NEO-MVS PROGBK1 / NEO-MVS CHA256
+ . NGH-097
+ NEO-AEG PROGBK1Y / NEO-AEG CHA256RY
+****************************************/
+
+ROM_START( sonicwi3 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "097-p1.p1", 0x100000, 0x100000, CRC(0547121d) SHA1(e0bb6c614f572b74ba9a9f0d3d5b69fbc91ebc52) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "097-s1.s1", CRC(8dd66743) SHA1(39214bb25a1d5b44a8524010be05bf5a0211981f) )
+
+ NEO_BIOS_AUDIO_128K( "097-m1.m1", CRC(b20e4291) SHA1(0e891ab53f9fded510295dfc7818bc59b4a9dd97) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "097-v1.v1", 0x000000, 0x400000, CRC(6f885152) SHA1(8175804d5c1420c5d37b733d4a8fa2aa81e59f1b) )
+ ROM_LOAD( "097-v2.v2", 0x400000, 0x200000, CRC(3359e868) SHA1(b7efd9f1a6dab33271fe8356bcc863aeae1d3ed8) )
+
+ ROM_REGION( 0xc00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "097-c1.c1", 0x000000, 0x400000, CRC(33d0d589) SHA1(fe4aa95555e478ceb2d28fd27d83ee06cd09520c) )
+ ROM_LOAD16_BYTE( "097-c2.c2", 0x000001, 0x400000, CRC(186f8b43) SHA1(f5cced93e21dc841b00ebeaa30786cb0e047bd9a) )
+ ROM_LOAD16_BYTE( "097-c3.c3", 0x800000, 0x200000, CRC(c339fff5) SHA1(58dfd1e30dc0ad3f816a5dbd1cc7e7ccbb792c53) )
+ ROM_LOAD16_BYTE( "097-c4.c4", 0x800001, 0x200000, CRC(84a40c6e) SHA1(061a13fba5fed883e5ee9566cedc208df2511bcf) )
+ROM_END
+
+/****************************************
+ ID-0098
+ Idol Mahjong - final romance 2 (CD only? not confirmed, MVS might exist)
+****************************************/
+
+/****************************************
+ ID-0099
+ Neo Pool Masters
+****************************************/
+
+
+/* ID range from 100 - 199 is used for Korean (some) and Neo Print carts */
+
+/*
+ The following ID's are used by Korean releases:
+
+ ID-0122 - Pae Wang Jeon Seol / Legend of a Warrior (Korean censored Samurai Shodown IV)
+ ID-0123 - Quiz Daisousa Sen - The Last Count Down (Korean release)
+ ID-0124 - Real Bout Fatal Fury Special / Real Bout Garou Densetsu Special (Korean release)
+ ID-0134 - The Last Soldier (Korean release of The Last Blade)
+ ID-0140 - Real Bout Fatal Fury 2 - The Newcomers (Korean release)
+ ID-0152 - The King of Fighters '99 - Millennium Battle (Korean release)
+ ID-0163 - Saulabi Spirits / Jin Saulabi Tu Hon (Korean release of Samurai Shodown II)
+ ID-0187 - Fighters Swords (Korean release of Samurai Shodown III)
+ ID-0196 - Art of Fighting 3 - The Path of the Warrior (Korean release)
+*/
+
+
+/****************************************
+ ID-0200
+ . NGM-200
+ NEO-MVS PROGBK1 / NEO-MVS CHA256B
+ NEO-MVS PROGBK1 / NEO-MVS CHA256
+ . NGH-200
+****************************************/
+
+ROM_START( turfmast )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "200-p1.p1", 0x100000, 0x100000, CRC(28c83048) SHA1(e7ef87e1de21d2bb17ef17bb08657e92363f0e9a) )
+ ROM_CONTINUE( 0x000000, 0x100000)
+
+ NEO_SFIX_128K( "200-s1.s1", CRC(9a5402b2) SHA1(ae1a0b5450869d61b2bb23671c744d3dda8769c4) )
+
+ NEO_BIOS_AUDIO_128K( "200-m1.m1", CRC(9994ac00) SHA1(7bded797f3b80fd00bcbe451ac0abe6646b19a14) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "200-v1.v1", 0x000000, 0x200000, CRC(00fd48d2) SHA1(ddfee09328632e598fd51537b3ae8593219b2111) )
+ ROM_LOAD( "200-v2.v2", 0x200000, 0x200000, CRC(082acb31) SHA1(2f1c053040e9d50a6d45fd7bea1b96742bae694f) )
+ ROM_LOAD( "200-v3.v3", 0x400000, 0x200000, CRC(7abca053) SHA1(e229bc0ea82a371d6ee8fd9fe442b0fd141d0a71) )
+ ROM_LOAD( "200-v4.v4", 0x600000, 0x200000, CRC(6c7b4902) SHA1(d55e0f542d928a9a851133ff26763c8236cbbd4d) )
+
+ ROM_REGION( 0x800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "200-c1.c1", 0x000000, 0x400000, CRC(8e7bf41a) SHA1(148eb747f2f4d8e921eb0411c88a636022ceab80) )
+ ROM_LOAD16_BYTE( "200-c2.c2", 0x000001, 0x400000, CRC(5a65a8ce) SHA1(d6c7afe035411f3eacdf6868d36f91572dd593e0) )
+ROM_END
+
+/****************************************
+ ID-0201
+ . NGM-201
+ NEO-MVS PROGBK1 / NEO-MVS CHA256
+ NEO-MVS PROGBK1 / NEO-MVS CHA256B
+ . NGH-201
+ NEO-AEG PROGBK1Y / NEO-AEG CHA256RY
+****************************************/
+
+ROM_START( mslug )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "201-p1.p1", 0x100000, 0x100000, CRC(08d8daa5) SHA1(b888993dbb7e9f0a28a01d7d2e1da00ef9cf6f38) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "201-s1.s1", CRC(2f55958d) SHA1(550b53628daec9f1e1e11a398854092d90f9505a) )
+
+ NEO_BIOS_AUDIO_128K( "201-m1.m1", CRC(c28b3253) SHA1(fd75bd15aed30266a8b3775f276f997af57d1c06) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "201-v1.v1", 0x000000, 0x400000, CRC(23d22ed1) SHA1(cd076928468ad6bcc5f19f88cb843ecb5e660681) )
+ ROM_LOAD( "201-v2.v2", 0x400000, 0x400000, CRC(472cf9db) SHA1(5f79ea9286d22ed208128f9c31ca75552ce08b57) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "201-c1.c1", 0x000000, 0x400000, CRC(72813676) SHA1(7b045d1a48980cb1a140699011cb1a3d4acdc4d1) )
+ ROM_LOAD16_BYTE( "201-c2.c2", 0x000001, 0x400000, CRC(96f62574) SHA1(cb7254b885989223bba597b8ff0972dfa5957816) )
+ ROM_LOAD16_BYTE( "201-c3.c3", 0x800000, 0x400000, CRC(5121456a) SHA1(0a7a27d603d1bb2520b5570ebf5b34a106e255a6) )
+ ROM_LOAD16_BYTE( "201-c4.c4", 0x800001, 0x400000, CRC(f4ad59a3) SHA1(4e94fda8ee63abf0f92afe08060a488546e5c280) )
+ROM_END
+
+/****************************************
+ ID-0202
+ . ??M-202
+ NEO-MVS PROG 4096 / NEO-MVS CHA 42G-2
+****************************************/
+
+ROM_START( puzzledp ) /* MVS ONLY RELEASE */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "202-p1.p1", 0x000000, 0x080000, CRC(2b61415b) SHA1(0e3e4faf2fd6e63407425e1ac788003e75aeeb4f) )
+ /* also found set with p1 on eprom with sticker; label is 202-P1 */
+
+ NEO_SFIX_128K( "202-s1.s1", CRC(cd19264f) SHA1(531be2305cd56d332fb7a53ab924214ade34a9e8) )
+
+ NEO_BIOS_AUDIO_128K( "202-m1.m1", CRC(9c0291ea) SHA1(3fa67c62acba79be6b3a98cc1601e45569fa11ae) )
+
+ ROM_REGION( 0x080000, "ymsnd", 0 )
+ ROM_LOAD( "202-v1.v1", 0x000000, 0x080000, CRC(debeb8fb) SHA1(49a3d3578c087f1a0050168571ef8d1b08c5dc05) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "202-c1.c1", 0x000000, 0x100000, CRC(cc0095ef) SHA1(3d86f455e6db10a2449b775dc386f1826ba3b62e) )
+ ROM_LOAD16_BYTE( "202-c2.c2", 0x000001, 0x100000, CRC(42371307) SHA1(df794f989e2883634bf7ffeea48d6bc3854529af) )
+ROM_END
+
+/****************************************
+ ID-0203
+ . ADM-010
+ NEO-MVS PROGTOP / NEO-MVS CHA42G-3B
+ . ADH-010
+****************************************/
+
+ROM_START( mosyougi )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "203-p1.p1", 0x000000, 0x100000, CRC(7ba70e2d) SHA1(945f472cc3e7706f613c52df18de35c986d166e7) )
+
+ NEO_SFIX_128K( "203-s1.s1", CRC(bfdc8309) SHA1(781337eab932a130b396a6c1080611d6f9c24c6e) )
+
+ NEO_BIOS_AUDIO_128K( "203-m1.m1", CRC(a602c2c2) SHA1(19fd5d0379244c528b58343f6cbf78b4766fb23d) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "203-v1.v1", 0x000000, 0x200000, CRC(baa2b9a5) SHA1(914782b6c81d9a76ce02251575592b0648434ba3) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "203-c1.c1", 0x000000, 0x200000, CRC(bba9e8c0) SHA1(db89b7275a59ae6104a8308025c7e142a67b947b) )
+ ROM_LOAD16_BYTE( "203-c2.c2", 0x000001, 0x200000, CRC(2574be03) SHA1(198cfd697c623022919ae4118928a7fe30cd6c46) )
+ROM_END
+
+/****************************************
+ ID-0204
+ QP (prototype) 1997 Success
+****************************************/
+
+/****************************************
+ ID-0205
+ Neo-Geo CD Special (CD only)
+****************************************/
+
+/****************************************
+ ID-0206
+ . ??M-206
+ NEO-MVS PROGBK1 / NEO-MVS CHA256
+ . ??H-206
+****************************************/
+
+ROM_START( marukodq )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "206-p1.p1", 0x000000, 0x100000, CRC(c33ed21e) SHA1(bffff0d17e587e67672227e60c0ebd3f3a7193e6) )
+
+ NEO_SFIX_128K( "206-s1.s1", CRC(f0b68780) SHA1(3f60950b14d121a5af3e6a8155ae9832ddc6ec46) )
+
+ NEO_BIOS_AUDIO_128K( "206-m1.m1", CRC(0e22902e) SHA1(fb8466c342d4abd8bb4cad01c6ceab03f96cdad8) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "206-v1.v1", 0x000000, 0x200000, CRC(5385eca8) SHA1(1ca171ce74a5885ae8841d0924de21dc0af2214e) )
+ ROM_LOAD( "206-v2.v2", 0x200000, 0x200000, CRC(f8c55404) SHA1(cecc41e9e08a7ff05b6f62e713fc86a816bf55a2) )
+
+ ROM_REGION( 0xa00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "206-c1.c1", 0x000000, 0x400000, CRC(846e4e8e) SHA1(ba9b96340aca7fadaff0e6d484391ddb5c5e7bd4) )
+ ROM_LOAD16_BYTE( "206-c2.c2", 0x000001, 0x400000, CRC(1cba876d) SHA1(3254ceb5a2f76c172930d9889d5d81e093e87628) )
+ ROM_LOAD16_BYTE( "206-c3.c3", 0x800000, 0x100000, CRC(79aa2b48) SHA1(31f94217cd35f48845c74a55256314c16fd26ed7) )
+ ROM_LOAD16_BYTE( "206-c4.c4", 0x800001, 0x100000, CRC(55e1314d) SHA1(fffbc9eb9000ff5b1063af1817de7ea4a267fedd) )
+ROM_END
+
+/****************************************
+ ID-0207
+ . ??M-207
+ NEO-MVS PROGBK1 / NEO-MVS CHA42G-3B
+ NEO-MVS PROG 4096 / NEO-MVS CHA42G-3B
+****************************************/
+
+ROM_START( neomrdo ) /* MVS ONLY RELEASE */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "207-p1.p1", 0x000000, 0x100000, CRC(334ea51e) SHA1(0a642f8565ec6e9587ed767bcf177f4677547162) )
+
+ NEO_SFIX_128K( "207-s1.s1", CRC(6aebafce) SHA1(5db03715fbed62f2ff3cef7f93606f30261c0362) )
+
+ NEO_BIOS_AUDIO_128K( "207-m1.m1", CRC(b5b74a95) SHA1(7b01f3b87c247cc7472591f8cdcf0ae8065e31c6) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "207-v1.v1", 0x000000, 0x200000, CRC(4143c052) SHA1(561b19bc8811b80f2f42ffc0b5df27132696470a) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "207-c1.c1", 0x000000, 0x200000, CRC(c7541b9d) SHA1(25ca1a2b14cc2648d8dbe432cbd1396017af822c) )
+ ROM_LOAD16_BYTE( "207-c2.c2", 0x000001, 0x200000, CRC(f57166d2) SHA1(bf3aa47d17156485c2177fb63cba093f050abb98) )
+ROM_END
+
+/****************************************
+ ID-0208
+ . ??M-208
+ NEO-MVS PROGBK1 / NEO-MVS CHA256B
+****************************************/
+
+ROM_START( sdodgeb ) /* MVS ONLY RELEASE */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "208-p1.p1", 0x100000, 0x100000, CRC(127f3d32) SHA1(18e77b79b1197a89371533ef9b1e4d682c44d875) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "208-s1.s1", CRC(64abd6b3) SHA1(0315d724e4d83a44ce84c531ff9b8c398363c039) )
+
+ NEO_BIOS_AUDIO_128K( "208-m1.m1", CRC(0a5f3325) SHA1(04e0236df478a5452654c823dcb42fea65b6a718) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "208-v1.v1", 0x000000, 0x400000, CRC(e7899a24) SHA1(3e75b449898fee73fbacf58d70e3a460b9e0c573) )
+
+ ROM_REGION( 0x0c00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "208-c1.c1", 0x0000000, 0x400000, CRC(93d8619b) SHA1(6588cb67e38722d5843fb29943d92e3905101aff) )
+ ROM_LOAD16_BYTE( "208-c2.c2", 0x0000001, 0x400000, CRC(1c737bb6) SHA1(8e341989981a713e61dfed8bde9a6459583ef46d) )
+ ROM_LOAD16_BYTE( "208-c3.c3", 0x0800000, 0x200000, CRC(14cb1703) SHA1(a46acec03c1b2351fe36810628f02b7c848d13db) )
+ ROM_LOAD16_BYTE( "208-c4.c4", 0x0800001, 0x200000, CRC(c7165f19) SHA1(221f03de893dca0e5305fa17aa94f96c67713818) )
+ROM_END
+
+/****************************************
+ ID-0209
+ . ??M-209
+ NEO-MVS PROGBK1 / NEO-MVS CHA256
+****************************************/
+
+ROM_START( goalx3 ) /* MVS ONLY RELEASE */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "209-p1.p1", 0x100000, 0x100000, CRC(2a019a79) SHA1(422a639e74284fef2e53e1b49cf8803b0a7e80c6) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "209-s1.s1", CRC(c0eaad86) SHA1(99412093c9707d51817893971e73fb8469cdc9d0) )
+
+ NEO_BIOS_AUDIO_128K( "209-m1.m1", CRC(cd758325) SHA1(b51eac634fc646c07210dff993018ad9ebabd3f9) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "209-v1.v1", 0x000000, 0x200000, CRC(ef214212) SHA1(3e05ccaa2d06decb18b379b96f900c0e6b39ce70) )
+
+ ROM_REGION( 0xa00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "209-c1.c1", 0x000000, 0x400000, CRC(b49d980e) SHA1(722d10074f16fa7f14c71270f43fdab427b85e2b) )
+ ROM_LOAD16_BYTE( "209-c2.c2", 0x000001, 0x400000, CRC(5649b015) SHA1(9c9674f3841e6becd3b8e63bae9b9df45ac9f11e) )
+ ROM_LOAD16_BYTE( "209-c3.c3", 0x800000, 0x100000, CRC(5f91bace) SHA1(3864be27dce6d8f8828d3bf09bfc8116116a2b56) )
+ ROM_LOAD16_BYTE( "209-c4.c4", 0x800001, 0x100000, CRC(1e9f76f2) SHA1(b57fdc226bfe328b8848127fb4292295f1287bf6) )
+ROM_END
+
+/****************************************
+ ID-0210
+ Karate Ninja Sho (prototype) 1995 Yumekobo
+****************************************/
+
+/****************************************
+ ID-0211
+ Oshidashi Zintrick (CD only? not confirmed, MVS might exist) 1996 SNK/ADK
+****************************************/
+
+/****************************************
+ ID-0212
+ . ADM-011
+ NEO-MVS PROGBK1 / NEO-MVS CHA256
+ . ADH-011
+****************************************/
+
+ROM_START( overtop )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "212-p1.p1", 0x100000, 0x100000, CRC(16c063a9) SHA1(5432869f830eed816ee5ed71c7fd39f749d15619) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "212-s1.s1", CRC(481d3ddc) SHA1(7b0df3fc5b19f282abfd0eb5a4c6ed836a536ece) )
+
+ NEO_BIOS_AUDIO_128K( "212-m1.m1", CRC(fcab6191) SHA1(488b8310b0957f0012fe50f73641b606f6ac4a57) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "212-v1.v1", 0x000000, 0x400000, CRC(013d4ef9) SHA1(438a697c44525bdf78b54432c4f7217ab5667047) )
+
+ ROM_REGION( 0x1400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "212-c1.c1", 0x0000000, 0x400000, CRC(50f43087) SHA1(e5a8c914ef8e77c7a29bffdeb18f1877b5c2fc7d) )
+ ROM_LOAD16_BYTE( "212-c2.c2", 0x0000001, 0x400000, CRC(a5b39807) SHA1(e98e82cf99576cb48cc5e8dc655b7e9a428c2843) )
+ ROM_LOAD16_BYTE( "212-c3.c3", 0x0800000, 0x400000, CRC(9252ea02) SHA1(269066e0f893d3e8e7c308528026a486c2b023a2) )
+ ROM_LOAD16_BYTE( "212-c4.c4", 0x0800001, 0x400000, CRC(5f41a699) SHA1(abbb162658e06a37db8475b659ece7e1270ebb49) )
+ ROM_LOAD16_BYTE( "212-c5.c5", 0x1000000, 0x200000, CRC(fc858bef) SHA1(0031def13e7cf4a465a1eca7aa0d13d1b21427e2) )
+ ROM_LOAD16_BYTE( "212-c6.c6", 0x1000001, 0x200000, CRC(0589c15e) SHA1(b1167caf7cb61f3e05a5d342290bfe00e02e9d38) )
+ROM_END
+
+/****************************************
+ ID-0213
+ . ??M-213
+ NEO-MVS PROGBK1 / NEO-MVS CHA256B
+****************************************/
+
+ROM_START( neodrift ) /* MVS ONLY RELEASE */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "213-p1.p1", 0x100000, 0x100000, CRC(e397d798) SHA1(10f459111db4bab7aaa63ca47e83304a84300812) )
+ ROM_CONTINUE( 0x000000, 0x100000)
+
+ NEO_SFIX_128K( "213-s1.s1", CRC(b76b61bc) SHA1(5fdb407d16ab9e33c4f26ee09ff70891ae1d2bd0) )
+
+ NEO_BIOS_AUDIO_128K( "213-m1.m1", CRC(200045f1) SHA1(7a6cd1c8d4447ea260d7ff4520c676b8d685f2e4) ) /* mask rom TC531001*/
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "213-v1.v1", 0x000000, 0x200000, CRC(a421c076) SHA1(129f05c1a28a6493442f47a79c2d3577a1a43ef5) )
+ ROM_LOAD( "213-v2.v2", 0x200000, 0x200000, CRC(233c7dd9) SHA1(be7f980aa83831b6605aaaf4ec904180bb96c935) )
+
+ ROM_REGION( 0x800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "213-c1.c1", 0x000000, 0x400000, CRC(3edc8bd3) SHA1(71dcba9afd3b08ebfa13294644dcb365c2740780) )
+ ROM_LOAD16_BYTE( "213-c2.c2", 0x000001, 0x400000, CRC(46ae5f16) SHA1(a01310632734e776e889af6a531063cb1661c33a) )
+ROM_END
+
+/****************************************
+ ID-0214
+ . NGM-214
+ NEO-MVS PROGBK1 / NEO-MVS CHA256
+ NEO-MVS PROGSS3 / NEO-MVS CHA256
+ . NGH-214
+ NEO-AEG PROGBK1Y / NEO-GEO AEG CHA256RY
+****************************************/
+
+ROM_START( kof96 ) /* MVS VERSION */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214-p1.p1", 0x000000, 0x100000, CRC(52755d74) SHA1(4232d627f1d2e6ea9fc8cf01571d77d4d5b8a1bb) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+ /* also found sets with ep1 / ep2 / ep3 / ep4 on eprom and 214-P5 on TC5316200; correct chip labels for eproms is unknown */
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+ROM_START( kof96h ) /* AES VERSION */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "214-pg1.p1", 0x000000, 0x100000, CRC(bd3757c9) SHA1(35392a044117e46c088ff0fdd07d69a3faa4f96e) )
+ ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) )
+
+ NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) )
+
+ NEO_BIOS_AUDIO_128K( "214-m1.m1", CRC(dabc427c) SHA1(b76722ed142ee7addceb4757424870dbd003e8b3) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "214-v1.v1", 0x000000, 0x400000, CRC(63f7b045) SHA1(1353715f1a8476dca6f8031d9e7a401eacab8159) )
+ ROM_LOAD( "214-v2.v2", 0x400000, 0x400000, CRC(25929059) SHA1(6a721c4cb8f8dc772774023877d4a9f50d5a9e31) )
+ ROM_LOAD( "214-v3.v3", 0x800000, 0x200000, CRC(92a2257d) SHA1(5064aec78fa0d104e5dd5869b95382aa170214ee) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "214-c1.c1", 0x0000000, 0x400000, CRC(7ecf4aa2) SHA1(f773c4c1f05d58dd37e7bb2ac1d1e0ec43998a71) )
+ ROM_LOAD16_BYTE( "214-c2.c2", 0x0000001, 0x400000, CRC(05b54f37) SHA1(cc31653fe4cb05201fba234e080cb9c7a7592b1b) )
+ ROM_LOAD16_BYTE( "214-c3.c3", 0x0800000, 0x400000, CRC(64989a65) SHA1(e6f3749d43be0afa9dad7b085cb782ba694252ca) )
+ ROM_LOAD16_BYTE( "214-c4.c4", 0x0800001, 0x400000, CRC(afbea515) SHA1(ae875052728de33174827705646bd14cf3937b5c) )
+ ROM_LOAD16_BYTE( "214-c5.c5", 0x1000000, 0x400000, CRC(2a3bbd26) SHA1(7c1a7e50a10a1b082e0d0d515c34135ee9f995ac) )
+ ROM_LOAD16_BYTE( "214-c6.c6", 0x1000001, 0x400000, CRC(44d30dc7) SHA1(c8ae001e37224b55d9e4a4d99f6578b4f6eb055f) )
+ ROM_LOAD16_BYTE( "214-c7.c7", 0x1800000, 0x400000, CRC(3687331b) SHA1(2be95caab76d7af51674f93884330ba73a6053e4) )
+ ROM_LOAD16_BYTE( "214-c8.c8", 0x1800001, 0x400000, CRC(fa1461ad) SHA1(6c71a7f08e4044214223a6bf80984582ab5e0328) )
+ROM_END
+
+/****************************************
+ ID-0215
+ . NGM-215
+ NEO-MVS PROGBK1 / NEO-MVS CHA256
+ . NGH-215
+ NEO-AEG PROGBK1Y / NEO-AEG CHA256RY
+****************************************/
+
+ROM_START( ssideki4 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "215-p1.p1", 0x100000, 0x100000, CRC(519b4ba3) SHA1(5aa59514b23aa663f2c4014ee94a31e9f59151de) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "215-s1.s1", CRC(f0fe5c36) SHA1(b7badd6d2ac3788ce5cace1fcf5cdad14734e4e6) )
+
+ NEO_BIOS_AUDIO_128K( "215-m1.m1", CRC(a932081d) SHA1(376a45e19edb780ac8798c41ae2260c8a8a4bba8) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "215-v1.v1", 0x000000, 0x400000, CRC(877d1409) SHA1(77c58ebffe677ea6369c964ec7975b11df512fa1) )
+ ROM_LOAD( "215-v2.v2", 0x400000, 0x200000, CRC(1bfa218b) SHA1(344836a578bde3c0ab59b58c8734f868e7403c26) )
+
+ ROM_REGION( 0x1400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "215-c1.c1", 0x0000000, 0x400000, CRC(8ff444f5) SHA1(e2dc52d09512cb378df96ddf45435f9bcbbe9947) )
+ ROM_LOAD16_BYTE( "215-c2.c2", 0x0000001, 0x400000, CRC(5b155037) SHA1(68900c0fdcd35c9f38e0effdf27e1dbd3c53daf8) )
+ ROM_LOAD16_BYTE( "215-c3.c3", 0x0800000, 0x400000, CRC(456a073a) SHA1(3488013f371012eab4e788e1525c81260e0b7080) )
+ ROM_LOAD16_BYTE( "215-c4.c4", 0x0800001, 0x400000, CRC(43c182e1) SHA1(343f034c65ca498b437e22e06a866a5daf3b9602) )
+ ROM_LOAD16_BYTE( "215-c5.c5", 0x1000000, 0x200000, CRC(0c6f97ec) SHA1(b8d297f0ba2b04404eb0f7c6673ecc206fadae0c) )
+ ROM_LOAD16_BYTE( "215-c6.c6", 0x1000001, 0x200000, CRC(329c5e1b) SHA1(015c36b8d3efab9b4647f110ecb5c118a9c80f43) )
+ROM_END
+
+/****************************************
+ ID-0216
+ . ??M-216
+ NEO-MVS PROGTOP / NEO-MVS CHA256
+ . ??H-216
+ NEO-AEG PROGTOP2Y / NEO-AEG CHA256BY
+ NEO-AEG PROGTOP2Y / NEO-AEG CHA256[B]
+****************************************/
+
+ROM_START( kizuna )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "216-p1.p1", 0x100000, 0x100000, CRC(75d2b3de) SHA1(ee778656c26828935ee2a2bfd0ce5a22aa681c10) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "216-s1.s1", CRC(efdc72d7) SHA1(be37cbf1852e2e4c907cc799b754b538544b6703) )
+
+ NEO_BIOS_AUDIO_128K( "216-m1.m1", CRC(1b096820) SHA1(72852e78c620038f8dafde5e54e02e418c31be9c) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "059-v1.v1", 0x000000, 0x200000, CRC(530c50fd) SHA1(29401cee7f7d2c199c7cb58092e86b28205e81ad) )
+ ROM_LOAD( "216-v2.v2", 0x200000, 0x200000, CRC(03667a8d) SHA1(3b0475e553a49f8788f32b0c84f82645cc6b4273) )
+ ROM_LOAD( "059-v3.v3", 0x400000, 0x200000, CRC(7038c2f9) SHA1(c1d6f86b24feba03fe009b58199d2eeabe572f4e) )
+ ROM_LOAD( "216-v4.v4", 0x600000, 0x200000, CRC(31b99bd6) SHA1(5871751f8e9e6b98337472c22b5e1c7ede0a9311) )
+
+ ROM_REGION( 0x1c00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "059-c1.c1", 0x0000000, 0x200000, CRC(763ba611) SHA1(d3262e0332c894ee149c5963f882cc5e5562ee57) )
+ ROM_LOAD16_BYTE( "059-c2.c2", 0x0000001, 0x200000, CRC(e05e8ca6) SHA1(986a9b16ff92bc101ab567d2d01348e093abea9a) )
+ /* 400000-7fffff empty */
+ ROM_LOAD16_BYTE( "216-c3.c3", 0x0800000, 0x400000, CRC(665c9f16) SHA1(7ec781a49a462f395b450460b29493f55134eac2) )
+ ROM_LOAD16_BYTE( "216-c4.c4", 0x0800001, 0x400000, CRC(7f5d03db) SHA1(365ed266c121f4df0bb76898955a8ae0e668a216) )
+ ROM_LOAD16_BYTE( "059-c5.c5", 0x1000000, 0x200000, CRC(59013f9e) SHA1(5bf48fcc450da72a8c4685f6e3887e67eae49988) )
+ ROM_LOAD16_BYTE( "059-c6.c6", 0x1000001, 0x200000, CRC(1c8d5def) SHA1(475d89a5c4922a9f6bd756d23c2624d57b6e9d62) )
+ /* 1400000-17fffff empty */
+ ROM_LOAD16_BYTE( "059-c7.c7", 0x1800000, 0x200000, CRC(c88f7035) SHA1(c29a428b741f4fe7b71a3bc23c87925b6bc1ca8f) )
+ ROM_LOAD16_BYTE( "059-c8.c8", 0x1800001, 0x200000, CRC(484ce3ba) SHA1(4f21ed20ce6e2b67e2b079404599310c94f591ff) )
+ROM_END
+
+
+ROM_START( kizuna4p ) /* same cartridge as kizuna - 4-player mode is enabled by an extension board that plugs into a compatible MVS */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "216-p1.p1", 0x100000, 0x100000, CRC(75d2b3de) SHA1(ee778656c26828935ee2a2bfd0ce5a22aa681c10) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "216-s1.s1", CRC(efdc72d7) SHA1(be37cbf1852e2e4c907cc799b754b538544b6703) )
+
+ ROM_REGION16_BE( 0x80000, "mainbios", 0 )
+ /* these two BIOSes are the only ones we have that are compatible with the 4-player extension board */
+ ROM_SYSTEM_BIOS( 0, "asia", "NEO-MVH MV1C" )
+ ROM_LOAD16_WORD_SWAP_BIOS( 0, "sp-45.sp1",0x00000, 0x080000, CRC(03cc9f6a) SHA1(cdf1f49e3ff2bac528c21ed28449cf35b7957dc1) )
+ ROM_SYSTEM_BIOS( 1, "japan", "Japan MVS (J3)" )
+ ROM_LOAD16_WORD_SWAP_BIOS( 1, "japan-j3.bin",0x00000, 0x020000, CRC(dff6d41f) SHA1(e92910e20092577a4523a6b39d578a71d4de7085) )
+
+ ROM_REGION( 0x30000, "audiocpu", 0 )
+ ROM_LOAD( "216-m1.m1", 0x00000, 0x20000, CRC(1b096820) SHA1(72852e78c620038f8dafde5e54e02e418c31be9c) )
+ ROM_RELOAD( 0x10000, 0x20000 )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "059-v1.v1", 0x000000, 0x200000, CRC(530c50fd) SHA1(29401cee7f7d2c199c7cb58092e86b28205e81ad) )
+ ROM_LOAD( "216-v2.v2", 0x200000, 0x200000, CRC(03667a8d) SHA1(3b0475e553a49f8788f32b0c84f82645cc6b4273) )
+ ROM_LOAD( "059-v3.v3", 0x400000, 0x200000, CRC(7038c2f9) SHA1(c1d6f86b24feba03fe009b58199d2eeabe572f4e) )
+ ROM_LOAD( "216-v4.v4", 0x600000, 0x200000, CRC(31b99bd6) SHA1(5871751f8e9e6b98337472c22b5e1c7ede0a9311) )
+
+ ROM_REGION( 0x1c00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "059-c1.c1", 0x0000000, 0x200000, CRC(763ba611) SHA1(d3262e0332c894ee149c5963f882cc5e5562ee57) )
+ ROM_LOAD16_BYTE( "059-c2.c2", 0x0000001, 0x200000, CRC(e05e8ca6) SHA1(986a9b16ff92bc101ab567d2d01348e093abea9a) )
+ /* 400000-7fffff empty */
+ ROM_LOAD16_BYTE( "216-c3.c3", 0x0800000, 0x400000, CRC(665c9f16) SHA1(7ec781a49a462f395b450460b29493f55134eac2) )
+ ROM_LOAD16_BYTE( "216-c4.c4", 0x0800001, 0x400000, CRC(7f5d03db) SHA1(365ed266c121f4df0bb76898955a8ae0e668a216) )
+ ROM_LOAD16_BYTE( "059-c5.c5", 0x1000000, 0x200000, CRC(59013f9e) SHA1(5bf48fcc450da72a8c4685f6e3887e67eae49988) )
+ ROM_LOAD16_BYTE( "059-c6.c6", 0x1000001, 0x200000, CRC(1c8d5def) SHA1(475d89a5c4922a9f6bd756d23c2624d57b6e9d62) )
+ /* 1400000-17fffff empty */
+ ROM_LOAD16_BYTE( "059-c7.c7", 0x1800000, 0x200000, CRC(c88f7035) SHA1(c29a428b741f4fe7b71a3bc23c87925b6bc1ca8f) )
+ ROM_LOAD16_BYTE( "059-c8.c8", 0x1800001, 0x200000, CRC(484ce3ba) SHA1(4f21ed20ce6e2b67e2b079404599310c94f591ff) )
+ROM_END
+
+
+/****************************************
+ ID-0217
+ . ADM-012
+ NEO-MVS PROGBK1 / NEO-MVS CHA256
+ . ADH-012
+ NEO-AEG PROGBK1Y / NEO-AEG CHA256RY
+****************************************/
+
+ROM_START( ninjamas )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "217-p1.p1", 0x000000, 0x100000, CRC(3e97ed69) SHA1(336bcae375a5109945d11356503bf0d9f4a9a50a) )
+ ROM_LOAD16_WORD_SWAP( "217-p2.sp2", 0x100000, 0x200000, CRC(191fca88) SHA1(e318e5931704779bbe461719a5eeeba89bd83a5d) )
+
+ NEO_SFIX_128K( "217-s1.s1", CRC(8ff782f0) SHA1(90099c154357042ba658d4ef6abe4d9335bb7172) )
+
+ NEO_BIOS_AUDIO_128K( "217-m1.m1", CRC(d00fb2af) SHA1(6bcaa52e1641cc24288e1f22f4dc98e8d8921b90) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "217-v1.v1", 0x000000, 0x400000, CRC(1c34e013) SHA1(5368e413d2188c4fd063b6bb7d5f498ff83ea812) )
+ ROM_LOAD( "217-v2.v2", 0x400000, 0x200000, CRC(22f1c681) SHA1(09da03b2e63d180e55173ff25e8735c4162f027b) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "217-c1.c1", 0x0000000, 0x400000, CRC(5fe97bc4) SHA1(d76c955d83baa2b9fd24222a9b2852947b7b92f0) )
+ ROM_LOAD16_BYTE( "217-c2.c2", 0x0000001, 0x400000, CRC(886e0d66) SHA1(d407e1525e4ebe996e14f6e5c0396a10f736a50d) )
+ ROM_LOAD16_BYTE( "217-c3.c3", 0x0800000, 0x400000, CRC(59e8525f) SHA1(19f602c71545d6c021dc72e112d3a8b8efe7a9b7) )
+ ROM_LOAD16_BYTE( "217-c4.c4", 0x0800001, 0x400000, CRC(8521add2) SHA1(0d1a6f2979302c4c282e31ff334d2d887aec74f7) )
+ ROM_LOAD16_BYTE( "217-c5.c5", 0x1000000, 0x400000, CRC(fb1896e5) SHA1(777a8caa9ebdbddf89e3d5ab650c94a55228ce54) )
+ ROM_LOAD16_BYTE( "217-c6.c6", 0x1000001, 0x400000, CRC(1c98c54b) SHA1(cb1cad161d9b9f2f5a7cf8ae4d6d35b51acf90f5) )
+ ROM_LOAD16_BYTE( "217-c7.c7", 0x1800000, 0x400000, CRC(8b0ede2e) SHA1(ea632ac98291ddac95441b7fe2349974b2da8a42) )
+ ROM_LOAD16_BYTE( "217-c8.c8", 0x1800001, 0x400000, CRC(a085bb61) SHA1(6a3e9e6ba96072b8849b407f2b24103dc0852259) )
+ROM_END
+
+/****************************************
+ ID-0218
+ . NGM-218
+ NEO-MVS PROGBK1 / NEO-MVS CHA256
+ . NGH-218
+****************************************/
+
+ROM_START( ragnagrd )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "218-p1.p1", 0x100000, 0x100000, CRC(ca372303) SHA1(67991e4fef9b36bc7d909810eebb857ac2f906f1) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "218-s1.s1", CRC(7d402f9a) SHA1(59ec29d03e62e7a8bef689a124a9164f43b2ace1) )
+
+ NEO_BIOS_AUDIO_128K( "218-m1.m1", CRC(17028bcf) SHA1(7a4e8f33ce9b41beac2152b8f6003f247699e2e1) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "218-v1.v1", 0x000000, 0x400000, CRC(61eee7f4) SHA1(5b11b1a0b1b74dfbc2998cbda9f8f7a5e9059957) )
+ ROM_LOAD( "218-v2.v2", 0x400000, 0x400000, CRC(6104e20b) SHA1(18e8aae3e51e141977d523a10e737ff68fe81910) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "218-c1.c1", 0x0000000, 0x400000, CRC(c31500a4) SHA1(cc82100038988872721028044ed2e9764bcc2fb0) )
+ ROM_LOAD16_BYTE( "218-c2.c2", 0x0000001, 0x400000, CRC(98aba1f9) SHA1(121276c569967e501d8e1b83747f1bdebff612ea) )
+ ROM_LOAD16_BYTE( "218-c3.c3", 0x0800000, 0x400000, CRC(833c163a) SHA1(b7e5356bbd9efab67fedb5bc671ba8bbd661fe0f) )
+ ROM_LOAD16_BYTE( "218-c4.c4", 0x0800001, 0x400000, CRC(c1a30f69) SHA1(f87ddda4695abcd14f5c2d4b7d41f72ad5b064cc) )
+ ROM_LOAD16_BYTE( "218-c5.c5", 0x1000000, 0x400000, CRC(6b6de0ff) SHA1(1abb24cb407258235f4a572cf101d0774823040b) )
+ ROM_LOAD16_BYTE( "218-c6.c6", 0x1000001, 0x400000, CRC(94beefcf) SHA1(d2ff0bac325c9c823dba68bd4f281b3b9f8f68e7) )
+ ROM_LOAD16_BYTE( "218-c7.c7", 0x1800000, 0x400000, CRC(de6f9b28) SHA1(455adb6bb986af8a00d7f32b7f4f3715fc3007f6) )
+ ROM_LOAD16_BYTE( "218-c8.c8", 0x1800001, 0x400000, CRC(d9b311f6) SHA1(ba61a7ab3f08bb7348ad6cd01e5d29ca5ee75074) )
+ROM_END
+
+/****************************************
+ ID-0219
+ . NGM-219
+ NEO-MVS PROGBK1 / NEO-MVS CHA256
+****************************************/
+
+ROM_START( pgoal ) /* MVS ONLY RELEASE */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "219-p1.p1", 0x100000, 0x100000, CRC(6af0e574) SHA1(c3f0fed0d942e48c99c80b1713f271c033ce0f4f) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "219-s1.s1", CRC(002f3c88) SHA1(a8a5bbc5397c8ae9858e38997ebdc713b7b4f50a) )
+
+ NEO_BIOS_AUDIO_128K( "219-m1.m1", CRC(958efdc8) SHA1(aacc6056b1ff48cde8f241a11a27473cfb4b4aa3) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "219-v1.v1", 0x000000, 0x400000, CRC(d0ae33d9) SHA1(cb21a91184d9d84ff25ca86c00dcadfc210272a8) )
+
+ ROM_REGION( 0xc00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "219-c1.c1", 0x0000000, 0x400000, CRC(67fec4dc) SHA1(b99767972a2a4fce2b704df8d08e6b092665a696) )
+ ROM_LOAD16_BYTE( "219-c2.c2", 0x0000001, 0x400000, CRC(86ed01f2) SHA1(9d7d1493946e8fbbd572503d2362b0156c023b76) )
+ ROM_LOAD16_BYTE( "219-c3.c3", 0x0800000, 0x200000, CRC(5fdad0a5) SHA1(56f6d2a7224aa4e82a1858079f918e85cadbd6c2) )
+ ROM_LOAD16_BYTE( "219-c4.c4", 0x0800001, 0x200000, CRC(f57b4a1c) SHA1(875ca69afbc5304ec23f4bc9186abe92f477f6c8) )
+ROM_END
+
+/****************************************
+ ID-0220
+ Choutetsu Brikin'ger - Iron clad (prototype) 1996 Saurus
+****************************************/
+
+ROM_START( ironclad ) /* Prototype - crcs should match the ones of the unreleased dump. */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "proto_220-p1.p1", 0x100000, 0x100000, CRC(62a942c6) SHA1(12aaa7d9bd84328d1bf4610e056b5c57d0252537) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "proto_220-s1.s1", CRC(372fe217) SHA1(493433e682f519bf647e1481c8bdd3a980830ffb) )
+
+ NEO_BIOS_AUDIO_128K( "proto_220-m1.m1", CRC(3a08bb63) SHA1(d8fbbf42a006ccafc3cd99808d28c82dbaac4590) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "proto_220-v1.v1", 0x000000, 0x400000, CRC(8f30a215) SHA1(0ee866a468c4c3608d55df2b5cb9243c8016d77c) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_220-c1.c1", 0x000000, 0x400000, CRC(9aa2b7dc) SHA1(6b3dff292c86f949890b1f8201bc5278f38c2668) )
+ ROM_LOAD16_BYTE( "proto_220-c2.c2", 0x000001, 0x400000, CRC(8a2ad708) SHA1(9568ac4cc0552e7fd3e50d3cd8d9f0f4fe7df1d4) )
+ ROM_LOAD16_BYTE( "proto_220-c3.c3", 0x800000, 0x400000, CRC(d67fb15a) SHA1(842971aeaf3c92e70f7c653bbf29058bc60f5b71) )
+ ROM_LOAD16_BYTE( "proto_220-c4.c4", 0x800001, 0x400000, CRC(e73ea38b) SHA1(27138d588e61e86c292f12d16e36c3681075c607) )
+ROM_END
+
+ROM_START( ironclado ) /* Prototype - bootleg/hack based on later release. */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "proto_220-p1o.p1", 0x100000, 0x100000, CRC(ce37e3a0) SHA1(488f95fa15f56eea6666dda13d96ec29dba18e19) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "proto_220-s1.s1", CRC(372fe217) SHA1(493433e682f519bf647e1481c8bdd3a980830ffb) )
+
+ NEO_BIOS_AUDIO_128K( "proto_220-m1.m1", CRC(3a08bb63) SHA1(d8fbbf42a006ccafc3cd99808d28c82dbaac4590) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "proto_220-v1.v1", 0x000000, 0x400000, CRC(8f30a215) SHA1(0ee866a468c4c3608d55df2b5cb9243c8016d77c) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_220-c1.c1", 0x000000, 0x400000, CRC(9aa2b7dc) SHA1(6b3dff292c86f949890b1f8201bc5278f38c2668) )
+ ROM_LOAD16_BYTE( "proto_220-c2.c2", 0x000001, 0x400000, CRC(8a2ad708) SHA1(9568ac4cc0552e7fd3e50d3cd8d9f0f4fe7df1d4) )
+ ROM_LOAD16_BYTE( "proto_220-c3.c3", 0x800000, 0x400000, CRC(d67fb15a) SHA1(842971aeaf3c92e70f7c653bbf29058bc60f5b71) )
+ ROM_LOAD16_BYTE( "proto_220-c4.c4", 0x800001, 0x400000, CRC(e73ea38b) SHA1(27138d588e61e86c292f12d16e36c3681075c607) )
+ROM_END
+
+/****************************************
+ ID-0221
+ . NGM-221
+ NEO-MVS PROGBK1 / NEO-MVS CHA256B
+ NEO-MVS PROGBK1 / NEO-MVS CHA256
+ . NGH-221
+ NEO-AEG PROGBK1Y / NEO-AEG CHA256RY
+****************************************/
+
+ROM_START( magdrop2 )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "221-p1.p1", 0x000000, 0x80000, CRC(7be82353) SHA1(08ab39f52b893591c13a7d7aa26b20ce86e9ddf5) )
+
+ NEO_SFIX_128K( "221-s1.s1", CRC(2a4063a3) SHA1(0e09a7d88d85b1a2100888f4211960ea56ef978b) )
+
+ NEO_BIOS_AUDIO_128K( "221-m1.m1", CRC(bddae628) SHA1(02c77e6aaaed43e39778bf83a3184e7c21db63d4) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "221-v1.v1", 0x000000, 0x200000, CRC(7e5e53e4) SHA1(72b063b2d4acaaf72a20d14ad5bfc90cb64d3fed) )
+
+ ROM_REGION( 0x800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "221-c1.c1", 0x000000, 0x400000, CRC(1f862a14) SHA1(1253e8b65d863d552d00dbdbfc5c168f5fc7edd1) )
+ ROM_LOAD16_BYTE( "221-c2.c2", 0x000001, 0x400000, CRC(14b90536) SHA1(e0d41f6b84d8261729f154b44ddd95c9b9c0714a) )
+ROM_END
+
+/****************************************
+ ID-0222
+ . NGM-222
+ NEO-MVS PROGBK1 / NEO-MVS CHA256B
+ NEO-MVS PROGBK1 / NEO-MVS CHA256
+ . NGH-222
+ NEO-AEG PROGBK1Y / NEO-AEG CHA256RY
+****************************************/
+
+ROM_START( samsho4 ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "222-p1.p1", 0x000000, 0x100000, CRC(1a5cb56d) SHA1(9a0a5a1c7c5d428829f22d3d17f7033d43a51b5b) )
+ ROM_LOAD16_WORD_SWAP( "222-p2.sp2", 0x100000, 0x400000, CRC(b023cd8b) SHA1(35b4cec9858225f90acdfa16ed8a3017d0d08327) )
+
+ NEO_SFIX_128K( "222-s1.s1", CRC(8d3d3bf9) SHA1(9975ed9b458bdd14e23451d2534153f68a5e4e6c) )
+
+ NEO_BIOS_AUDIO_128K( "222-m1.m1", CRC(7615bc1b) SHA1(b936f7b341f6fe0921b4c41049734684583e3596) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "222-v1.v1", 0x000000, 0x400000, CRC(7d6ba95f) SHA1(03cb4e0d770e0b332b07b64cacef624460b84c78) )
+ ROM_LOAD( "222-v2.v2", 0x400000, 0x400000, CRC(6c33bb5d) SHA1(fd5d4e08a962dd0d22c52c91bad5ec7f23cfb901) )
+ ROM_LOAD( "222-v3.v3", 0x800000, 0x200000, CRC(831ea8c0) SHA1(f2987b7d09bdc4311e972ce8a9ab7ca9802db4db) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "222-c1.c1", 0x0000000, 0x400000, CRC(68f2ed95) SHA1(c0a02df012cd25bcfe341770ea861a80294148cb) )
+ ROM_LOAD16_BYTE( "222-c2.c2", 0x0000001, 0x400000, CRC(a6e9aff0) SHA1(15addca49951ed53fa3c000c8d7cd327d012a620) )
+ ROM_LOAD16_BYTE( "222-c3.c3", 0x0800000, 0x400000, CRC(c91b40f4) SHA1(dcda45e0336204e3e024de08edfd0a3217bc1fdd) )
+ ROM_LOAD16_BYTE( "222-c4.c4", 0x0800001, 0x400000, CRC(359510a4) SHA1(b6642677ebdff7788263266402080272b8a66b15) )
+ ROM_LOAD16_BYTE( "222-c5.c5", 0x1000000, 0x400000, CRC(9cfbb22d) SHA1(789c32f917d0c6e38601cd390a7bf9d803131a4a) )
+ ROM_LOAD16_BYTE( "222-c6.c6", 0x1000001, 0x400000, CRC(685efc32) SHA1(db21ba1c7e3631ce0f1cb6f503ae7e0e043ff71b) )
+ ROM_LOAD16_BYTE( "222-c7.c7", 0x1800000, 0x400000, CRC(d0f86f0d) SHA1(32502d71c2ab1469c492b6b382bf2bb3f85981d9) )
+ ROM_LOAD16_BYTE( "222-c8.c8", 0x1800001, 0x400000, CRC(adfc50e3) SHA1(7d7ee874355b5aa75ad9c9a5c9c3df98d098d85e) )
+ROM_END
+
+ROM_START( samsho4k ) /* KOREAN VERSION */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "222-p1k.p1", 0x000000, 0x100000, CRC(06e0a25d) SHA1(81e6727e0acb67ae41383518c0fc07f28d232979) )
+ ROM_LOAD16_WORD_SWAP( "222-p2.sp2", 0x100000, 0x400000, CRC(b023cd8b) SHA1(35b4cec9858225f90acdfa16ed8a3017d0d08327) )
+
+ NEO_SFIX_128K( "222-s1k.s1", CRC(d313687d) SHA1(9ba468a9d582ef76c863f57ad9a0f811f3f08bd9) )
+
+ NEO_BIOS_AUDIO_128K( "222-m1.m1", CRC(7615bc1b) SHA1(b936f7b341f6fe0921b4c41049734684583e3596) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "222-v1.v1", 0x000000, 0x400000, CRC(7d6ba95f) SHA1(03cb4e0d770e0b332b07b64cacef624460b84c78) )
+ ROM_LOAD( "222-v2.v2", 0x400000, 0x400000, CRC(6c33bb5d) SHA1(fd5d4e08a962dd0d22c52c91bad5ec7f23cfb901) )
+ ROM_LOAD( "222-v3.v3", 0x800000, 0x200000, CRC(831ea8c0) SHA1(f2987b7d09bdc4311e972ce8a9ab7ca9802db4db) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "222-c1.c1", 0x0000000, 0x400000, CRC(68f2ed95) SHA1(c0a02df012cd25bcfe341770ea861a80294148cb) )
+ ROM_LOAD16_BYTE( "222-c2.c2", 0x0000001, 0x400000, CRC(a6e9aff0) SHA1(15addca49951ed53fa3c000c8d7cd327d012a620) )
+ ROM_LOAD16_BYTE( "222-c3.c3", 0x0800000, 0x400000, CRC(c91b40f4) SHA1(dcda45e0336204e3e024de08edfd0a3217bc1fdd) )
+ ROM_LOAD16_BYTE( "222-c4.c4", 0x0800001, 0x400000, CRC(359510a4) SHA1(b6642677ebdff7788263266402080272b8a66b15) )
+ ROM_LOAD16_BYTE( "222-c5.c5", 0x1000000, 0x400000, CRC(9cfbb22d) SHA1(789c32f917d0c6e38601cd390a7bf9d803131a4a) )
+ ROM_LOAD16_BYTE( "222-c6.c6", 0x1000001, 0x400000, CRC(685efc32) SHA1(db21ba1c7e3631ce0f1cb6f503ae7e0e043ff71b) )
+ ROM_LOAD16_BYTE( "222-c7.c7", 0x1800000, 0x400000, CRC(d0f86f0d) SHA1(32502d71c2ab1469c492b6b382bf2bb3f85981d9) )
+ ROM_LOAD16_BYTE( "222-c8.c8", 0x1800001, 0x400000, CRC(adfc50e3) SHA1(7d7ee874355b5aa75ad9c9a5c9c3df98d098d85e) )
+ROM_END
+
+/****************************************
+ ID-0223
+ . NGM-223
+ NEO-MVS PROGBK1 / NEO-MVS CHA256B
+ . NGH-223
+ NEO-AEG PROGBK1Y / NEO-AEG CHA256RY
+****************************************/
+
+ROM_START( rbffspec )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "223-p1.p1", 0x000000, 0x100000, CRC(f84a2d1d) SHA1(fc19225d9dbdb6bd0808023ee32c7829f6ffdef6) )
+ ROM_LOAD16_WORD_SWAP( "223-p2.sp2", 0x100000, 0x400000, CRC(addd8f08) SHA1(abaf5b86c8ec915c07ef2d83fce9ad03acaa4817) )
+
+ NEO_SFIX_128K( "223-s1.s1", CRC(7ecd6e8c) SHA1(465455afc4d83cbb118142be4671b2539ffafd79) )
+
+ NEO_BIOS_AUDIO_128K( "223-m1.m1", CRC(3fee46bf) SHA1(e750f85233953853618fcdff980a4721af1710a3) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "223-v1.v1", 0x000000, 0x400000, CRC(76673869) SHA1(78a26afa29f73de552ffabdbf3fc4bf26be8ae9e) )
+ ROM_LOAD( "223-v2.v2", 0x400000, 0x400000, CRC(7a275acd) SHA1(8afe87ce822614262b72a90b371fc79155ac0d0c) )
+ ROM_LOAD( "223-v3.v3", 0x800000, 0x400000, CRC(5a797fd2) SHA1(94958e334f86d4d71059af8138f255b8d97a3b01) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "223-c1.c1", 0x0000000, 0x400000, CRC(ebab05e2) SHA1(0d60a8b631e3a3dcfbfdd7779dee081c9548ec39) )
+ ROM_LOAD16_BYTE( "223-c2.c2", 0x0000001, 0x400000, CRC(641868c3) SHA1(aa1aeb661842276b3326bfa4f1456f75bfecd52e) )
+ ROM_LOAD16_BYTE( "223-c3.c3", 0x0800000, 0x400000, CRC(ca00191f) SHA1(96977febfcc513e1848d7029ff169cdf51104038) )
+ ROM_LOAD16_BYTE( "223-c4.c4", 0x0800001, 0x400000, CRC(1f23d860) SHA1(e18df52f898a51074e07a0b8c6e75873e7cde35e) )
+ ROM_LOAD16_BYTE( "223-c5.c5", 0x1000000, 0x400000, CRC(321e362c) SHA1(39bd189334278f266124c97c6f70995f6f171cea) )
+ ROM_LOAD16_BYTE( "223-c6.c6", 0x1000001, 0x400000, CRC(d8fcef90) SHA1(bbccacb27f1e587bc144fe7ce68bd7b327ceaaee) )
+ ROM_LOAD16_BYTE( "223-c7.c7", 0x1800000, 0x400000, CRC(bc80dd2d) SHA1(086f372015eede88c6c578595fe915e28a589d2f) )
+ ROM_LOAD16_BYTE( "223-c8.c8", 0x1800001, 0x400000, CRC(5ad62102) SHA1(e28cc9840caed2a1a8bd65a03bef05231071040c) )
+ROM_END
+
+ROM_START( rbffspeck ) /* KOREAN VERSION */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "223-p1k.p1", 0x000000, 0x100000, CRC(b78c8391) SHA1(936b356ac135331b10a37bc10882ec2e4f6b400b) )
+ /* Chip label is correct. They used Cart ID 0124 as 0123 was already used by quizdaisk */
+ ROM_LOAD16_WORD_SWAP( "223-p2.sp2", 0x100000, 0x400000, CRC(addd8f08) SHA1(abaf5b86c8ec915c07ef2d83fce9ad03acaa4817) )
+
+ NEO_SFIX_128K( "223-s1.s1", CRC(7ecd6e8c) SHA1(465455afc4d83cbb118142be4671b2539ffafd79) )
+
+ NEO_BIOS_AUDIO_128K( "223-m1.m1", CRC(3fee46bf) SHA1(e750f85233953853618fcdff980a4721af1710a3) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "223-v1.v1", 0x000000, 0x400000, CRC(76673869) SHA1(78a26afa29f73de552ffabdbf3fc4bf26be8ae9e) )
+ ROM_LOAD( "223-v2.v2", 0x400000, 0x400000, CRC(7a275acd) SHA1(8afe87ce822614262b72a90b371fc79155ac0d0c) )
+ ROM_LOAD( "223-v3.v3", 0x800000, 0x400000, CRC(5a797fd2) SHA1(94958e334f86d4d71059af8138f255b8d97a3b01) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "223-c1.c1", 0x0000000, 0x400000, CRC(ebab05e2) SHA1(0d60a8b631e3a3dcfbfdd7779dee081c9548ec39) )
+ ROM_LOAD16_BYTE( "223-c2.c2", 0x0000001, 0x400000, CRC(641868c3) SHA1(aa1aeb661842276b3326bfa4f1456f75bfecd52e) )
+ ROM_LOAD16_BYTE( "223-c3.c3", 0x0800000, 0x400000, CRC(ca00191f) SHA1(96977febfcc513e1848d7029ff169cdf51104038) )
+ ROM_LOAD16_BYTE( "223-c4.c4", 0x0800001, 0x400000, CRC(1f23d860) SHA1(e18df52f898a51074e07a0b8c6e75873e7cde35e) )
+ ROM_LOAD16_BYTE( "223-c5.c5", 0x1000000, 0x400000, CRC(321e362c) SHA1(39bd189334278f266124c97c6f70995f6f171cea) )
+ ROM_LOAD16_BYTE( "223-c6.c6", 0x1000001, 0x400000, CRC(d8fcef90) SHA1(bbccacb27f1e587bc144fe7ce68bd7b327ceaaee) )
+ ROM_LOAD16_BYTE( "223-c7.c7", 0x1800000, 0x400000, CRC(bc80dd2d) SHA1(086f372015eede88c6c578595fe915e28a589d2f) )
+ ROM_LOAD16_BYTE( "223-c8.c8", 0x1800001, 0x400000, CRC(5ad62102) SHA1(e28cc9840caed2a1a8bd65a03bef05231071040c) )
+ROM_END
+
+/****************************************
+ ID-0224
+ . ADM-013
+ NEO-MVS PROGBK1 / NEO-MVS CHA256B
+ . ADH-013
+ NEO-AEG PROGBK1Y / NEO-AEG CHA256RY
+****************************************/
+
+ROM_START( twinspri )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "224-p1.p1", 0x100000, 0x100000, CRC(7697e445) SHA1(5b55ca120f77a931d40719b14e0bfc8cac1d628c) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "224-s1.s1", CRC(eeed5758) SHA1(24e48f396716e145b692468762cf595fb7267873) )
+
+ NEO_BIOS_AUDIO_128K( "224-m1.m1", CRC(364d6f96) SHA1(779b95a6476089b71f48c8368d9043ee1dba9032) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "224-v1.v1", 0x000000, 0x400000, CRC(ff57f088) SHA1(1641989b8aac899dbd68aa2332bcdf9b90b33564) )
+ ROM_LOAD( "224-v2.v2", 0x400000, 0x200000, CRC(7ad26599) SHA1(822030037b7664795bf3d64e1452d0aecc22497e) )
+
+ ROM_REGION( 0xa00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "224-c1.c1", 0x000000, 0x400000, CRC(f7da64ab) SHA1(587a10ed9235c9046a3523fe80feba07764fac9b) )
+ ROM_LOAD16_BYTE( "224-c2.c2", 0x000001, 0x400000, CRC(4c09bbfb) SHA1(e781aafba3bdefb7ed152826f4c3eb441735331c) )
+ ROM_LOAD16_BYTE( "224-c3.c3", 0x800000, 0x100000, CRC(c59e4129) SHA1(93f02d1b4fbb152a9d336494fbff0d7642921de5) )
+ ROM_LOAD16_BYTE( "224-c4.c4", 0x800001, 0x100000, CRC(b5532e53) SHA1(7d896c25ba97f6e5d43c13d4df4ba72964a976ed) )
+ROM_END
+
+/****************************************
+ ID-0225
+ . SUM-225
+ NEO-MVS PROGBK1 / NEO-MVS CHA256B
+ . SUH-225
+****************************************/
+
+ROM_START( wakuwak7 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "225-p1.p1", 0x000000, 0x100000, CRC(b14da766) SHA1(bdffd72ff705fc6b085a4026217bac1c4bc93163) )
+ ROM_LOAD16_WORD_SWAP( "225-p2.sp2", 0x100000, 0x200000, CRC(fe190665) SHA1(739d9a8fc2da34381654d9e291141eacc210ae5c) )
+ /* also found Korean MVS set with ep1 /ep2 on eprom and sp2 on TC5316200 on NEO-MVS PROGBK1; correct chip label for eproms unknown */
+
+ NEO_SFIX_128K( "225-s1.s1", CRC(71c4b4b5) SHA1(9410f13807f01082dc86f2d84051be4bed8e9f7c) )
+
+ NEO_BIOS_AUDIO_128K( "225-m1.m1", CRC(0634bba6) SHA1(153aaf016440500df7a4454f3f2f2911219cb7d8) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "225-v1.v1", 0x000000, 0x400000, CRC(6195c6b4) SHA1(66c06b5904aedb256e3997bbec60f8ab50c6ff0c) )
+ ROM_LOAD( "225-v2.v2", 0x400000, 0x400000, CRC(6159c5fe) SHA1(9015e93416497f1ef877c717afed40f7ecfa42e4) )
+
+ ROM_REGION( 0x1800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "225-c1.c1", 0x0000000, 0x400000, CRC(ee4fea54) SHA1(314b513a52b2cc88cbf2409d1934c357269a8bb2) )
+ ROM_LOAD16_BYTE( "225-c2.c2", 0x0000001, 0x400000, CRC(0c549e2d) SHA1(d8c4626231c92e43d9bf183202553ee2b5c532e6) )
+ ROM_LOAD16_BYTE( "225-c3.c3", 0x0800000, 0x400000, CRC(af0897c0) SHA1(2b8ec19b9dd0bd1f1171fb01b915e9d25ec8c421) )
+ ROM_LOAD16_BYTE( "225-c4.c4", 0x0800001, 0x400000, CRC(4c66527a) SHA1(6c8c9342fad70b456e282b0d52e7ad890e4673d3) )
+ ROM_LOAD16_BYTE( "225-c5.c5", 0x1000000, 0x400000, CRC(8ecea2b5) SHA1(cad51e6e76d8258a78becb6f4096dd061f537494) )
+ ROM_LOAD16_BYTE( "225-c6.c6", 0x1000001, 0x400000, CRC(0eb11a6d) SHA1(c6d4f978ff3ca190a3060ac52bd7347189194f76) )
+ROM_END
+
+/****************************************
+ ID-0226
+ Pair Pair Wars (prototype) 1996 Sunsoft?
+****************************************/
+
+/****************************************
+ ID-0227
+ . NGM-227
+ NEO-MVS PROGBK1 / NEO-MVS CHA256
+ . NGH-227
+ NEO-AEG PROGBK1Y / NEO-AEG CHA256RY
+****************************************/
+
+ROM_START( stakwin2 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "227-p1.p1", 0x100000, 0x100000, CRC(daf101d2) SHA1(96b90f884bae2969ebd8c04aba509928464e2433) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "227-s1.s1", CRC(2a8c4462) SHA1(9155fbb5fee6d46a68d17ea780a7a92565f9aa47) )
+
+ NEO_BIOS_AUDIO_128K( "227-m1.m1", CRC(c8e5e0f9) SHA1(09bb05ae6f09b59b9e4871fae1fc7c3bafd07394) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "227-v1.v1", 0x000000, 0x400000, CRC(b8f24181) SHA1(0a3af88d20ff65b82c58325d32c20b99fc07f7f3) )
+ ROM_LOAD( "227-v2.v2", 0x400000, 0x400000, CRC(ee39e260) SHA1(4ed6802564ce262ebe92c7276424056b70998758) )
+
+ ROM_REGION( 0xc00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "227-c1.c1", 0x0000000, 0x400000, CRC(7d6c2af4) SHA1(e54f0ab15c95d7a6f965b5d8ab28b5445100650b) )
+ ROM_LOAD16_BYTE( "227-c2.c2", 0x0000001, 0x400000, CRC(7e402d39) SHA1(9d3a44f98ddd0b606c8b3efa0c6b9d5a46c0bfeb) )
+ ROM_LOAD16_BYTE( "227-c3.c3", 0x0800000, 0x200000, CRC(93dfd660) SHA1(5b473c556ef919cd7a872351dbb20a636aae32b6) )
+ ROM_LOAD16_BYTE( "227-c4.c4", 0x0800001, 0x200000, CRC(7efea43a) SHA1(3f2b1718fe7be06b6d75ec34badc2de2a3554d3e) )
+ROM_END
+
+/****************************************
+ ID-0228
+ Ghostlop (prototype) 1996 Data East Corp.
+****************************************/
+
+ROM_START( ghostlop ) /* Prototype */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "proto_228-p1.p1", 0x000000, 0x100000, CRC(6033172e) SHA1(f57fb706aa8dd9e5f9e992a5d35c1799578b59f8) )
+
+ NEO_SFIX_128K( "proto_228-s1.s1", CRC(83c24e81) SHA1(585ef209d8bfc23bdccc1f37d8b764eeedfedc1c) )
+
+ NEO_BIOS_AUDIO_128K( "proto_228-m1.m1", CRC(fd833b33) SHA1(ab6c218c42cba821654cbdae154efecb69f844f6) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "proto_228-v1.v1", 0x000000, 0x200000, CRC(c603fce6) SHA1(5a866471d35895b2ae13cbd5d1cb41bf2e72e1b8) )
+
+ ROM_REGION( 0x800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_228-c1.c1", 0x000000, 0x400000, CRC(bfc99efe) SHA1(5cd2545310142080b8286e787cf5b859f627b3db) )
+ ROM_LOAD16_BYTE( "proto_228-c2.c2", 0x000001, 0x400000, CRC(69788082) SHA1(c3ecb42ddcbd9e16d0018a0c3adb56a911d813ca) )
+ROM_END
+
+/****************************************
+ ID-0229
+ King of Fighters '96 CD Collection (CD only)
+****************************************/
+
+
+/* With ID-0230 the product ID code changed from xxM-xxx / xxH-xxx to xxM-xxx0 / xxH-xxx0 */
+
+
+/****************************************
+ ID-0230
+ . NGM-2300
+ NEO-MVS PROGBK1 / NEO-MVS CHA256B
+ . NGH-2300
+ NEO-AEG PROGBK1Y / NEO-AEG CHA256RY
+****************************************/
+
+ROM_START( breakers )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "230-p1.p1", 0x100000, 0x100000, CRC(ed24a6e6) SHA1(3fb77ae696d92d2f9a5d589e08b708545c7cda0a) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "230-s1.s1", CRC(076fb64c) SHA1(c166038128d7004f69932141f83b320a35c2b4ca) )
+
+ NEO_BIOS_AUDIO_128K( "230-m1.m1", CRC(3951a1c1) SHA1(1e6442a7ea82ada9503d71045dd93e12bd05254f) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "230-v1.v1", 0x000000, 0x400000, CRC(7f9ed279) SHA1(acd0558960ec29bfc3e3ee99d00e503bebff8513) )
+ ROM_LOAD( "230-v2.v2", 0x400000, 0x400000, CRC(1d43e420) SHA1(26d09b8b18b4b802dbda4d6f06626c24d0b7c512) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "230-c1.c1", 0x000000, 0x400000, CRC(68d4ae76) SHA1(2e820067f6963669f104bebf19e865fe4127b4dd) )
+ ROM_LOAD16_BYTE( "230-c2.c2", 0x000001, 0x400000, CRC(fdee05cd) SHA1(efc4ffd790953ac7c25d5f045c64a9b49d24b096) )
+ ROM_LOAD16_BYTE( "230-c3.c3", 0x800000, 0x400000, CRC(645077f3) SHA1(0ae74f3b4b3b88f128c6d8c0f35ffa53f5d67ef2) )
+ ROM_LOAD16_BYTE( "230-c4.c4", 0x800001, 0x400000, CRC(63aeb74c) SHA1(9ff6930c0c3d79b46b86356e8565ce4fcd69ac38) )
+ROM_END
+
+/****************************************
+ ID-0231
+ . ??M-2310
+ NEO-MVS PROGBK1 / NEO-MVS CHA42G-3B
+****************************************/
+
+ROM_START( miexchng ) /* MVS ONLY RELEASE */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "231-p1.p1", 0x000000, 0x80000, CRC(61be1810) SHA1(1ab0e11352ca05329c6e3f5657b60e4a227fcbfb) )
+
+ NEO_SFIX_128K( "231-s1.s1", CRC(fe0c0c53) SHA1(54d56d4463db193e504658f4f6f4997a62ae3d95) )
+
+ NEO_BIOS_AUDIO_128K( "231-m1.m1", CRC(de41301b) SHA1(59ce3836ac8f064d56a446c9374f05bcb40fcfd8) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "231-v1.v1", 0x000000, 0x400000, CRC(113fb898) SHA1(9168ba90c4aa969f69eb11ba3f4d76592d81e05a) )
+
+ ROM_REGION( 0x600000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "231-c1.c1", 0x000000, 0x200000, CRC(6c403ba3) SHA1(3830446fbd07d5a6564f9ac68a4bec5ff5b7d5c9) )
+ ROM_LOAD16_BYTE( "231-c2.c2", 0x000001, 0x200000, CRC(554bcd9b) SHA1(e658161618bd41a66f1040be409efdea28020cf6) )
+ ROM_LOAD16_BYTE( "231-c3.c3", 0x400000, 0x100000, CRC(4f6f7a63) SHA1(10935dbc1f52b95979a097b13a114cff18d4d446) )
+ ROM_LOAD16_BYTE( "231-c4.c4", 0x400001, 0x100000, CRC(2e35e71b) SHA1(6f248191c2c60ca1b1b4f2ebf08756e036682144) )
+ROM_END
+
+/****************************************
+ ID-0232
+ . NGM-2320
+ NEO-MVS PROGBK1 / NEO-MVS CHA512Y
+ . NGH-2320
+ NEO-AEG PROGBK1Y / NEO-AEG CHA512Y
+****************************************/
+
+ROM_START( kof97 ) /* MVS VERSION */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232-p1.p1", 0x000000, 0x100000, CRC(7db81ad9) SHA1(8bc42be872fd497eb198ca13bf004852b88eb1dc) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97h ) /* AES VERSION */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232-pg1.p1", 0x000000, 0x100000, CRC(5c2400b7) SHA1(49e23f80c012c62146a1bb8f254a7597823de430) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97k ) /* KOREAN VERSION */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "232-p1.p1", 0x000000, 0x100000, CRC(7db81ad9) SHA1(8bc42be872fd497eb198ca13bf004852b88eb1dc) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1k.m1", CRC(bbea9070) SHA1(c26c2e29fe90966dd574838be63f0037ea799aca) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+/****************************************
+ ID-0233
+ . NGM-2330
+ NEO-MVS PROGBK1 / NEO-MVS CHA256
+ . NGH-2330
+ NEO-AEG PROGBK1Y / NEO-AEG CHA256RY
+****************************************/
+
+ROM_START( magdrop3 )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "233-p1.p1", 0x000000, 0x100000, CRC(931e17fa) SHA1(4a95c4b79d0878485ce272e9f4c4f647bec0e070) )
+
+ NEO_SFIX_128K( "233-s1.s1", CRC(7399e68a) SHA1(b535ee56a0f0995f04674e676f6aa636ffad26aa) )
+
+ NEO_BIOS_AUDIO_128K( "233-m1.m1", CRC(5beaf34e) SHA1(2905d26945932cddc2dd3a1dc5abba8aa3baee14) )
+
+ ROM_REGION( 0x480000, "ymsnd", 0 )
+ ROM_LOAD( "233-v1.v1", 0x000000, 0x400000, CRC(58839298) SHA1(18cae7bba997c52780761cbf119c4e4b34397a61) )
+ ROM_LOAD( "233-v2.v2", 0x400000, 0x080000, CRC(d5e30df4) SHA1(bbbc0ff5b975471bd682f85976ac4a93f6d44f2e) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "233-c1.c1", 0x000000, 0x400000, CRC(65e3f4c4) SHA1(a6deb75d802225327f8f1c2733a7f2b47e722e59) )
+ ROM_LOAD16_BYTE( "233-c2.c2", 0x000001, 0x400000, CRC(35dea6c9) SHA1(ea133bf947f950236f49d0ae0d1a9af3bc1a9a50) )
+ ROM_LOAD16_BYTE( "233-c3.c3", 0x800000, 0x400000, CRC(0ba2c502) SHA1(8e0f1e553aef04758aaaa14d5115f0ecace4391e) )
+ ROM_LOAD16_BYTE( "233-c4.c4", 0x800001, 0x400000, CRC(70dbbd6d) SHA1(32dd6a04c6329e89f4878e7a56f0d172a6388eea) )
+ROM_END
+
+/****************************************
+ ID-0234
+ . NGM-2340
+ NEO-MVS PROGBK1 / NEO-MVS CHA512Y
+ . NGH-2340
+ NEO-AEG PROGBK1Y / NEO-AEG CHA512Y
+****************************************/
+
+ROM_START( lastblad ) /* MVS VERSION */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "234-p1.p1", 0x000000, 0x100000, CRC(e123a5a3) SHA1(a3ddabc00feeb54272b145246612ad4632b0e413) )
+ ROM_LOAD16_WORD_SWAP( "234-p2.sp2", 0x100000, 0x400000, CRC(0fdc289e) SHA1(1ff31c0b0f4f9ddbedaf4bcf927faaae81892ec7) )
+ /* also found sets with p1 / sp2 / ep1 / ep2 / m1 on eprom with sticker */
+ /* chip labels for eproms are 0234-P1, 0234-SP2, 0234-EP1, 0234-EP2 and 0234-M1 */
+
+ NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) )
+
+ NEO_BIOS_AUDIO_128K( "234-m1.m1", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "234-v1.v1", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) )
+ ROM_LOAD( "234-v2.v2", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) )
+ ROM_LOAD( "234-v3.v3", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) )
+ ROM_LOAD( "234-v4.v4", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20a1f4833e5e29ba0073c1712d7a17ab7a2a035c) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "234-c1.c1", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) )
+ ROM_LOAD16_BYTE( "234-c2.c2", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) )
+ ROM_LOAD16_BYTE( "234-c3.c3", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) )
+ ROM_LOAD16_BYTE( "234-c4.c4", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) )
+ ROM_LOAD16_BYTE( "234-c5.c5", 0x2000000, 0x400000, CRC(1ba80cee) SHA1(0c59057183b5279b747e73213b4cd3c6d7ad9eb1) )
+ ROM_LOAD16_BYTE( "234-c6.c6", 0x2000001, 0x400000, CRC(beafd091) SHA1(55df9cc128eb0f00856de3996c946e3efe8f09a5) )
+ROM_END
+
+ROM_START( lastbladh ) /* AES VERSION */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "234-pg1.p1", 0x000000, 0x100000, CRC(cd01c06d) SHA1(d66142571afe07c6191b52f319f1bc8bc8541c14) )
+ ROM_LOAD16_WORD_SWAP( "234-p2.sp2", 0x100000, 0x400000, CRC(0fdc289e) SHA1(1ff31c0b0f4f9ddbedaf4bcf927faaae81892ec7) )
+
+ NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) )
+
+ NEO_BIOS_AUDIO_128K( "234-m1.m1", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "234-v1.v1", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) )
+ ROM_LOAD( "234-v2.v2", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) )
+ ROM_LOAD( "234-v3.v3", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) )
+ ROM_LOAD( "234-v4.v4", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20a1f4833e5e29ba0073c1712d7a17ab7a2a035c) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "234-c1.c1", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) )
+ ROM_LOAD16_BYTE( "234-c2.c2", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) )
+ ROM_LOAD16_BYTE( "234-c3.c3", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) )
+ ROM_LOAD16_BYTE( "234-c4.c4", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) )
+ ROM_LOAD16_BYTE( "234-c5.c5", 0x2000000, 0x400000, CRC(1ba80cee) SHA1(0c59057183b5279b747e73213b4cd3c6d7ad9eb1) )
+ ROM_LOAD16_BYTE( "234-c6.c6", 0x2000001, 0x400000, CRC(beafd091) SHA1(55df9cc128eb0f00856de3996c946e3efe8f09a5) )
+ROM_END
+
+ROM_START( lastsold ) /* KOREAN VERSION */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "134-p1k.p1", 0x000000, 0x100000, CRC(906f3065) SHA1(25167665f1b8e82e13f7fcf4d0e3c54a925c2a58) )
+ ROM_LOAD16_WORD_SWAP( "234-p2.sp2", 0x100000, 0x400000, CRC(0fdc289e) SHA1(1ff31c0b0f4f9ddbedaf4bcf927faaae81892ec7) )
+
+ NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) )
+
+ NEO_BIOS_AUDIO_128K( "234-m1.m1", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "234-v1.v1", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) )
+ ROM_LOAD( "234-v2.v2", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) )
+ ROM_LOAD( "234-v3.v3", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) )
+ ROM_LOAD( "234-v4.v4", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20a1f4833e5e29ba0073c1712d7a17ab7a2a035c) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "234-c1.c1", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) )
+ ROM_LOAD16_BYTE( "234-c2.c2", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) )
+ ROM_LOAD16_BYTE( "234-c3.c3", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) )
+ ROM_LOAD16_BYTE( "234-c4.c4", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) )
+ ROM_LOAD16_BYTE( "234-c5.c5", 0x2000000, 0x400000, CRC(1ba80cee) SHA1(0c59057183b5279b747e73213b4cd3c6d7ad9eb1) )
+ ROM_LOAD16_BYTE( "234-c6.c6", 0x2000001, 0x400000, CRC(beafd091) SHA1(55df9cc128eb0f00856de3996c946e3efe8f09a5) )
+ROM_END
+
+/****************************************
+ ID-0235
+ . ??M-2350
+ NEO-MVS PROG 4096 / NEO-MVS CHA 42G-2
+****************************************/
+
+ROM_START( puzzldpr ) /* MVS ONLY RELEASE */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "235-p1.p1", 0x000000, 0x080000, CRC(afed5de2) SHA1(a5d82c6dbe687505e8c8d7339908da45cd379a0b) )
+
+ NEO_SFIX_128K( "235-s1.s1", CRC(3b13a22f) SHA1(4506fc340d9658a50fa415676564f10bbfba2703) )
+
+ NEO_BIOS_AUDIO_128K( "202-m1.m1", CRC(9c0291ea) SHA1(3fa67c62acba79be6b3a98cc1601e45569fa11ae) )
+
+ ROM_REGION( 0x080000, "ymsnd", 0 )
+ ROM_LOAD( "202-v1.v1", 0x000000, 0x080000, CRC(debeb8fb) SHA1(49a3d3578c087f1a0050168571ef8d1b08c5dc05) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "202-c1.c1", 0x000000, 0x100000, CRC(cc0095ef) SHA1(3d86f455e6db10a2449b775dc386f1826ba3b62e) )
+ ROM_LOAD16_BYTE( "202-c2.c2", 0x000001, 0x100000, CRC(42371307) SHA1(df794f989e2883634bf7ffeea48d6bc3854529af) )
+ROM_END
+
+/****************************************
+ ID-0236
+ . ??M-2360
+ NEO-MVS PROGBK1 / NEO-MVS CHA512Y
+****************************************/
+
+ROM_START( irrmaze ) /* MVS ONLY RELEASE */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "236-p1.p1", 0x100000, 0x100000, CRC(4c2ff660) SHA1(4a0cbd09044648ff9ec67723729f16d422c34bda) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "236-s1.s1", CRC(5d1ca640) SHA1(40a9668a1742a44597a07ce72273d17119815637) )
+
+ ROM_REGION16_BE( 0x20000, "mainbios", 0 )
+ /* special BIOS with trackball support, we only have one Irritating Maze bios and thats asia */
+ ROM_LOAD16_WORD_SWAP("236-bios.sp1", 0x00000, 0x020000, CRC(853e6b96) SHA1(de369cb4a7df147b55168fa7aaf0b98c753b735e) )
+
+ ROM_REGION( 0x30000, "audiocpu", 0 )
+ ROM_LOAD( "236-m1.m1", 0x00000, 0x20000, CRC(880a1abd) SHA1(905afa157aba700e798243b842792e50729b19a0) )
+ ROM_RELOAD( 0x10000, 0x20000 )
+
+ ROM_REGION( 0x300000, "ymsnd", 0 )
+ ROM_LOAD( "236-v1.v1", 0x000000, 0x200000, CRC(5f89c3b4) SHA1(dc8fd561cf8dfdd41696dcf14ea8d2d0ac4eec4b) )
+ ROM_LOAD( "236-v2.v2", 0x200000, 0x100000, CRC(72e3add7) SHA1(dc49f05274693255416d2e41ecc088027b798eb9) )
+
+ ROM_REGION( 0x0800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "236-c1.c1", 0x000000, 0x400000, CRC(c1d47902) SHA1(727001c34f979226fc8f581113ce2aaac4fc0d42) )
+ ROM_LOAD16_BYTE( "236-c2.c2", 0x000001, 0x400000, CRC(e15f972e) SHA1(6a329559c57a67be73a6733513b59e9e6c8d61cc) )
+ROM_END
+
+/****************************************
+ ID-0237
+ . ??M-2370
+ NEO-MVS PROG 4096 / NEO-MVS CHA42G-3B
+****************************************/
+
+ROM_START( popbounc ) /* MVS ONLY RELEASE */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "237-p1.p1", 0x000000, 0x100000, CRC(be96e44f) SHA1(43679da8664fbb491103a1108040ddf94d59fc2b) )
+
+ NEO_SFIX_128K( "237-s1.s1", CRC(b61cf595) SHA1(b14f8b78af7c634d41cf34d36b11b116e61f7342) )
+
+ NEO_BIOS_AUDIO_128K( "237-m1.m1", CRC(d4c946dd) SHA1(6ca09040b5db8d89511d627954c783154d58ab01) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "237-v1.v1", 0x000000, 0x200000, CRC(edcb1beb) SHA1(62f086b9968b366b59276ee4ae3c32c4d76fc6ce) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "237-c1.c1", 0x000000, 0x200000, CRC(eda42d66) SHA1(2735538fcb9dc0c16e043a8728c8b642650189f4) )
+ ROM_LOAD16_BYTE( "237-c2.c2", 0x000001, 0x200000, CRC(5e633c65) SHA1(9a82107caf027317c173c1c1ef676f0fdeea79b2) )
+ROM_END
+
+/****************************************
+ ID-0238
+ . ??M-2380
+ NEO-MVS PROGBK1 / NEO-MVS CHA256
+****************************************/
+
+ROM_START( shocktro ) /* MVS ONLY RELEASE */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "238-p1.p1", 0x000000, 0x100000, CRC(5677456f) SHA1(f76169fa5c90871d65e2a16fd1bb036c90533ac8) )
+ ROM_LOAD16_WORD_SWAP( "238-p2.sp2", 0x100000, 0x400000, CRC(5b4a09c5) SHA1(de04036cba2da4bb2da73d902d1822b82b4f67a9) )
+
+ NEO_SFIX_128K( "238-s1.s1", CRC(1f95cedb) SHA1(adfa74868147fd260481e4c387d254d3b6de83f4) )
+
+ NEO_BIOS_AUDIO_128K( "238-m1.m1", CRC(075b9518) SHA1(ac21b88a860b9572bf24432b4cadcc96d108055d) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "238-v1.v1", 0x000000, 0x400000, CRC(260c0bef) SHA1(9c4f80ce4bb205afed11bb8b8926d20748eb5512) )
+ ROM_LOAD( "238-v2.v2", 0x400000, 0x200000, CRC(4ad7d59e) SHA1(bfdf2684f7f38af4e75ad0068ff9463dc2601598) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "238-c1.c1", 0x0000000, 0x400000, CRC(90c6a181) SHA1(a381bc8449718814ff12b3a4f7fc4d1bb7ea1631) )
+ ROM_LOAD16_BYTE( "238-c2.c2", 0x0000001, 0x400000, CRC(888720f0) SHA1(cd4d65df8d3ef0dbcca2b7f3f803f45c457f5beb) )
+ ROM_LOAD16_BYTE( "238-c3.c3", 0x0800000, 0x400000, CRC(2c393aa3) SHA1(1cd7cebe5861a2d65f1d6615dd7752162e573a02) )
+ ROM_LOAD16_BYTE( "238-c4.c4", 0x0800001, 0x400000, CRC(b9e909eb) SHA1(33cc9b2d13e4ed2ab6040ff582a53dc9bca402e0) )
+ ROM_LOAD16_BYTE( "238-c5.c5", 0x1000000, 0x400000, CRC(c22c68eb) SHA1(a4b04118b1b1909d3b76be8d9ee5d97db6120600) )
+ ROM_LOAD16_BYTE( "238-c6.c6", 0x1000001, 0x400000, CRC(119323cd) SHA1(05a9d4b1fb4cc963b25452ff6f81e296e0c0b2a1) )
+ ROM_LOAD16_BYTE( "238-c7.c7", 0x1800000, 0x400000, CRC(a72ce7ed) SHA1(05b151554bd7af09ccf554a17bc3c75a0512faaf) )
+ ROM_LOAD16_BYTE( "238-c8.c8", 0x1800001, 0x400000, CRC(1c7c2efb) SHA1(b055ee43cbdaf9a3cb19e4e1f9dd2c40bde69d70) )
+ROM_END
+
+ROM_START( shocktroa ) /* MVS ONLY RELEASE */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "238-pg1.p1", 0x000000, 0x100000, CRC(efedf8dc) SHA1(f638df9bf7aa7d514ee2bccfc7f2adbf39ca83fc) )
+ ROM_LOAD16_WORD_SWAP( "238-p2.sp2", 0x100000, 0x400000, CRC(5b4a09c5) SHA1(de04036cba2da4bb2da73d902d1822b82b4f67a9) )
+
+ NEO_SFIX_128K( "238-s1.s1", CRC(1f95cedb) SHA1(adfa74868147fd260481e4c387d254d3b6de83f4) )
+
+ NEO_BIOS_AUDIO_128K( "238-m1.m1", CRC(075b9518) SHA1(ac21b88a860b9572bf24432b4cadcc96d108055d) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "238-v1.v1", 0x000000, 0x400000, CRC(260c0bef) SHA1(9c4f80ce4bb205afed11bb8b8926d20748eb5512) )
+ ROM_LOAD( "238-v2.v2", 0x400000, 0x200000, CRC(4ad7d59e) SHA1(bfdf2684f7f38af4e75ad0068ff9463dc2601598) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "238-c1.c1", 0x0000000, 0x400000, CRC(90c6a181) SHA1(a381bc8449718814ff12b3a4f7fc4d1bb7ea1631) )
+ ROM_LOAD16_BYTE( "238-c2.c2", 0x0000001, 0x400000, CRC(888720f0) SHA1(cd4d65df8d3ef0dbcca2b7f3f803f45c457f5beb) )
+ ROM_LOAD16_BYTE( "238-c3.c3", 0x0800000, 0x400000, CRC(2c393aa3) SHA1(1cd7cebe5861a2d65f1d6615dd7752162e573a02) )
+ ROM_LOAD16_BYTE( "238-c4.c4", 0x0800001, 0x400000, CRC(b9e909eb) SHA1(33cc9b2d13e4ed2ab6040ff582a53dc9bca402e0) )
+ ROM_LOAD16_BYTE( "238-c5.c5", 0x1000000, 0x400000, CRC(c22c68eb) SHA1(a4b04118b1b1909d3b76be8d9ee5d97db6120600) )
+ ROM_LOAD16_BYTE( "238-c6.c6", 0x1000001, 0x400000, CRC(119323cd) SHA1(05a9d4b1fb4cc963b25452ff6f81e296e0c0b2a1) )
+ ROM_LOAD16_BYTE( "238-c7.c7", 0x1800000, 0x400000, CRC(a72ce7ed) SHA1(05b151554bd7af09ccf554a17bc3c75a0512faaf) )
+ ROM_LOAD16_BYTE( "238-c8.c8", 0x1800001, 0x400000, CRC(1c7c2efb) SHA1(b055ee43cbdaf9a3cb19e4e1f9dd2c40bde69d70) )
+ROM_END
+
+/****************************************
+ ID-0239
+ . NGM-2390
+ NEO-MVS PROGBK1 / NEO-MVS CHA512Y
+ . NGH-2390
+ NEO-AEG PROGBK1Y / NEO-AEG CHA512Y
+****************************************/
+
+ROM_START( blazstar )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "239-p1.p1", 0x000000, 0x100000, CRC(183682f8) SHA1(dcee1c2cf4a991ca1f9f2b40c4a738f21682807b) )
+ ROM_LOAD16_WORD_SWAP( "239-p2.sp2", 0x100000, 0x200000, CRC(9a9f4154) SHA1(f8805453d0995c8fa16cd9accfb7a990071ca630) )
+
+ NEO_SFIX_128K( "239-s1.s1", CRC(d56cb498) SHA1(420ce56431dc7f3f7de84fcbc8c0a17b5eab205e) )
+
+ NEO_BIOS_AUDIO_128K( "239-m1.m1", CRC(d31a3aea) SHA1(e23abfeb23052f0358edcf2c83401025fe632511) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "239-v1.v1", 0x000000, 0x400000, CRC(1b8d5bf7) SHA1(67fc1f7e36e92a89cd1d415eb31a2892f57b0d04) )
+ ROM_LOAD( "239-v2.v2", 0x400000, 0x400000, CRC(74cf0a70) SHA1(b00451a2a30de2517ae3eca35eb1fe985b950eb8) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "239-c1.c1", 0x0000000, 0x400000, CRC(84f6d584) SHA1(ff36db8504611b0d8d942d1e24823ff71e4aeb37) )
+ ROM_LOAD16_BYTE( "239-c2.c2", 0x0000001, 0x400000, CRC(05a0cb22) SHA1(4abe03e7f3a86f277131d413a3151c7b9c3646c8) )
+ ROM_LOAD16_BYTE( "239-c3.c3", 0x0800000, 0x400000, CRC(5fb69c9e) SHA1(77b96518d8ad8ad120537e0f8ba65d69d1c33566) )
+ ROM_LOAD16_BYTE( "239-c4.c4", 0x0800001, 0x400000, CRC(0be028c4) SHA1(d3f8b37786ca7838c3525895a7f2b49afc8530d4) )
+ ROM_LOAD16_BYTE( "239-c5.c5", 0x1000000, 0x400000, CRC(74bae5f8) SHA1(812c9a31f0721c2971a316b084ce69337dbe3747) )
+ ROM_LOAD16_BYTE( "239-c6.c6", 0x1000001, 0x400000, CRC(4e0700d2) SHA1(cd059fb713c403208923c17e1e8ef02fcfd2fe8d) )
+ ROM_LOAD16_BYTE( "239-c7.c7", 0x1800000, 0x400000, CRC(010ff4fd) SHA1(2571d406442f007a7458d8ccb0939a9201c9c9bf) )
+ ROM_LOAD16_BYTE( "239-c8.c8", 0x1800001, 0x400000, CRC(db60460e) SHA1(a5cb27c0983c8b400d96fd0828ef0639a66d4dba) )
+ROM_END
+
+/****************************************
+ ID-0240
+ . NGM-2400
+ NEO-MVS PROGBK1 / NEO-MVS CHA512Y
+ . NGH-2400
+ NEO-AEG PROGBK1Y / NEO-AEG CHA512Y
+****************************************/
+
+ROM_START( rbff2 ) /* MVS VERSION */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "240-p1.p1", 0x000000, 0x100000, CRC(80e41205) SHA1(8f83eb8ff54be4ec40f8a0dd2cbe56c54908d00a) )
+ ROM_LOAD16_WORD_SWAP( "240-p2.sp2", 0x100000, 0x400000, CRC(960aa88d) SHA1(3d9e785891871af90313f178dca2724633406674) )
+
+ NEO_SFIX_128K( "240-s1.s1", CRC(da3b40de) SHA1(e6bf74e057ac6fe1f249a7547f13ba7fbc694561) )
+
+ NEO_BIOS_AUDIO_256K( "240-m1.m1", CRC(ed482791) SHA1(1f54a45967cb7842c33aa24be322c9f33ff75ac3) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "240-v1.v1", 0x000000, 0x400000, CRC(f796265a) SHA1(736dff37eb91fc856b4d189249fb0de9b6c0813a) )
+ ROM_LOAD( "240-v2.v2", 0x400000, 0x400000, CRC(2cb3f3bb) SHA1(697e677890892f4b028c9a27c66809ca0a8a9b18) )
+ ROM_LOAD( "240-v3.v3", 0x800000, 0x400000, CRC(8fe1367a) SHA1(093d7a4ac2b54ad7ffb2dc316fe29415f7a99535) )
+ ROM_LOAD( "240-v4.v4", 0xc00000, 0x200000, CRC(996704d8) SHA1(0bf7a1d0660199dedf3c25be757eeab75cc6147e) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "240-c1.c1", 0x0000000, 0x800000, CRC(effac504) SHA1(e36a96e7369b02c7e839b5abf3c6799453ba1927) )
+ ROM_LOAD16_BYTE( "240-c2.c2", 0x0000001, 0x800000, CRC(ed182d44) SHA1(a9fc0a3a786bf067c129ec7220df65953dff804f) )
+ ROM_LOAD16_BYTE( "240-c3.c3", 0x1000000, 0x800000, CRC(22e0330a) SHA1(0fe7f6a8aeba7f17dbb278e85003969ff10d3cd2) )
+ ROM_LOAD16_BYTE( "240-c4.c4", 0x1000001, 0x800000, CRC(c19a07eb) SHA1(139eac8b51cadf328dd42d8109f4e2463f57230c) )
+ ROM_LOAD16_BYTE( "240-c5.c5", 0x2000000, 0x800000, CRC(244dff5a) SHA1(156548156d3ceaa808d0053d0749af2526a3943e) )
+ ROM_LOAD16_BYTE( "240-c6.c6", 0x2000001, 0x800000, CRC(4609e507) SHA1(bb17f50a377dddb77c1eeda5944a7bcbf0cca5f7) )
+ROM_END
+
+ROM_START( rbff2h ) /* AES VERSION */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "240-pg1.p1", 0x000000, 0x100000, CRC(b6969780) SHA1(e3373d18e0f0724d69efb8024a27cca121f1b5b2) )
+ ROM_LOAD16_WORD_SWAP( "240-p2.sp2", 0x100000, 0x400000, CRC(960aa88d) SHA1(3d9e785891871af90313f178dca2724633406674) )
+
+ NEO_SFIX_128K( "240-s1.s1", CRC(da3b40de) SHA1(e6bf74e057ac6fe1f249a7547f13ba7fbc694561) )
+
+ NEO_BIOS_AUDIO_256K( "240-m1.m1", CRC(ed482791) SHA1(1f54a45967cb7842c33aa24be322c9f33ff75ac3) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "240-v1.v1", 0x000000, 0x400000, CRC(f796265a) SHA1(736dff37eb91fc856b4d189249fb0de9b6c0813a) )
+ ROM_LOAD( "240-v2.v2", 0x400000, 0x400000, CRC(2cb3f3bb) SHA1(697e677890892f4b028c9a27c66809ca0a8a9b18) )
+ ROM_LOAD( "240-v3.v3", 0x800000, 0x400000, CRC(8fe1367a) SHA1(093d7a4ac2b54ad7ffb2dc316fe29415f7a99535) )
+ ROM_LOAD( "240-v4.v4", 0xc00000, 0x200000, CRC(996704d8) SHA1(0bf7a1d0660199dedf3c25be757eeab75cc6147e) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "240-c1.c1", 0x0000000, 0x800000, CRC(effac504) SHA1(e36a96e7369b02c7e839b5abf3c6799453ba1927) )
+ ROM_LOAD16_BYTE( "240-c2.c2", 0x0000001, 0x800000, CRC(ed182d44) SHA1(a9fc0a3a786bf067c129ec7220df65953dff804f) )
+ ROM_LOAD16_BYTE( "240-c3.c3", 0x1000000, 0x800000, CRC(22e0330a) SHA1(0fe7f6a8aeba7f17dbb278e85003969ff10d3cd2) )
+ ROM_LOAD16_BYTE( "240-c4.c4", 0x1000001, 0x800000, CRC(c19a07eb) SHA1(139eac8b51cadf328dd42d8109f4e2463f57230c) )
+ ROM_LOAD16_BYTE( "240-c5.c5", 0x2000000, 0x800000, CRC(244dff5a) SHA1(156548156d3ceaa808d0053d0749af2526a3943e) )
+ ROM_LOAD16_BYTE( "240-c6.c6", 0x2000001, 0x800000, CRC(4609e507) SHA1(bb17f50a377dddb77c1eeda5944a7bcbf0cca5f7) )
+ROM_END
+
+ROM_START( rbff2k ) /* KOREAN VERSION */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "140-p1k.p1", 0x000000, 0x100000, CRC(965edee1) SHA1(7f4b947b19ccfee32fc73e4fd89645eb313b5c77) )
+ ROM_LOAD16_WORD_SWAP( "240-p2.sp2", 0x100000, 0x400000, CRC(960aa88d) SHA1(3d9e785891871af90313f178dca2724633406674) )
+
+ NEO_SFIX_128K( "240-s1.s1", CRC(da3b40de) SHA1(e6bf74e057ac6fe1f249a7547f13ba7fbc694561) )
+
+ NEO_BIOS_AUDIO_256K( "240-m1.m1", CRC(ed482791) SHA1(1f54a45967cb7842c33aa24be322c9f33ff75ac3) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "240-v1.v1", 0x000000, 0x400000, CRC(f796265a) SHA1(736dff37eb91fc856b4d189249fb0de9b6c0813a) )
+ ROM_LOAD( "240-v2.v2", 0x400000, 0x400000, CRC(2cb3f3bb) SHA1(697e677890892f4b028c9a27c66809ca0a8a9b18) )
+ ROM_LOAD( "240-v3.v3", 0x800000, 0x400000, CRC(8fe1367a) SHA1(093d7a4ac2b54ad7ffb2dc316fe29415f7a99535) )
+ ROM_LOAD( "240-v4.v4", 0xc00000, 0x200000, CRC(996704d8) SHA1(0bf7a1d0660199dedf3c25be757eeab75cc6147e) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "240-c1.c1", 0x0000000, 0x800000, CRC(effac504) SHA1(e36a96e7369b02c7e839b5abf3c6799453ba1927) )
+ ROM_LOAD16_BYTE( "240-c2.c2", 0x0000001, 0x800000, CRC(ed182d44) SHA1(a9fc0a3a786bf067c129ec7220df65953dff804f) )
+ ROM_LOAD16_BYTE( "240-c3.c3", 0x1000000, 0x800000, CRC(22e0330a) SHA1(0fe7f6a8aeba7f17dbb278e85003969ff10d3cd2) )
+ ROM_LOAD16_BYTE( "240-c4.c4", 0x1000001, 0x800000, CRC(c19a07eb) SHA1(139eac8b51cadf328dd42d8109f4e2463f57230c) )
+ ROM_LOAD16_BYTE( "240-c5.c5", 0x2000000, 0x800000, CRC(244dff5a) SHA1(156548156d3ceaa808d0053d0749af2526a3943e) )
+ ROM_LOAD16_BYTE( "240-c6.c6", 0x2000001, 0x800000, CRC(4609e507) SHA1(bb17f50a377dddb77c1eeda5944a7bcbf0cca5f7) )
+ROM_END
+
+/****************************************
+ ID-0241
+ . NGM-2410
+ NEO-MVS PROGBK1 / NEO-MVS CHA512Y
+ NEO-MVS PROGBK1 / NEO-MVS CHA256
+ . NGH-2410
+ NEO-AEG PROGBK1Y / NEO-AEG CHA512Y
+****************************************/
+
+ROM_START( mslug2 ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "241-p1.p1", 0x000000, 0x100000, CRC(2a53c5da) SHA1(5a6aba482cac588a6c2c51179c95b487c6e11899) )
+ ROM_LOAD16_WORD_SWAP( "241-p2.sp2", 0x100000, 0x200000, CRC(38883f44) SHA1(fcf34b8c6e37774741542393b963635412484a27) )
+
+ NEO_SFIX_128K( "241-s1.s1", CRC(f3d32f0f) SHA1(2dc38b7dfd3ff14f64d5c0733c510b6bb8c692d0) )
+
+ NEO_BIOS_AUDIO_128K( "241-m1.m1", CRC(94520ebd) SHA1(f8a1551cebcb91e416f30f50581feed7f72899e9) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "241-v1.v1", 0x000000, 0x400000, CRC(99ec20e8) SHA1(80597707f1fe115eed1941bb0701fc00790ad504) )
+ ROM_LOAD( "241-v2.v2", 0x400000, 0x400000, CRC(ecb16799) SHA1(b4b4ddc680836ed55942c66d7dfe756314e02211) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ /* Different layout with 8xC (16 mbit) also exists; naming sheme 241-Cx */
+ ROM_LOAD16_BYTE( "241-c1.c1", 0x0000000, 0x800000, CRC(394b5e0d) SHA1(4549926f5054ee6aa7689cf920be0327e3908a50) )
+ ROM_LOAD16_BYTE( "241-c2.c2", 0x0000001, 0x800000, CRC(e5806221) SHA1(1e5475cfab129c77acc610f09369ca42ba5aafa5) )
+ ROM_LOAD16_BYTE( "241-c3.c3", 0x1000000, 0x800000, CRC(9f6bfa6f) SHA1(a4319b48004e723f81a980887678e3e296049a53) )
+ ROM_LOAD16_BYTE( "241-c4.c4", 0x1000001, 0x800000, CRC(7d3e306f) SHA1(1499316fb381775218d897b81a6a0c3465d1a37c) )
+ROM_END
+
+/****************************************
+ ID-0242
+ . NGM-2420
+ NEO-MVS PROGSF1 (1998.6.17) (protected board) / NEO-MVS CHA512Y
+ NEO-MVS PROGSF1E (1998.6.18) (protected board) / NEO-MVS CHA512Y
+ NEO-MVS PROGBK1 / NEO-MVS CHA512Y
+ . NGH-2420
+ NEO-AEG PROGBK1Y / NEO-AEG CHA512Y
+****************************************/
+
+ROM_START( kof98 ) /* encrypted code + protection */ /* MVS VERSION */
+ /* This set uses NEO-MVS PROGSF1 board */
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242-p1.p1", 0x000000, 0x200000, CRC(8893df89) SHA1(0452828785110601c65f667209fc2d2926cd3751) )
+ ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x200000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98a ) /* encrypted code + protection */ /* MVS VERSION */
+ /* This set uses NEO-MVS PROGSF1E board; same rom data as in kof98 is used */
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242-p1.p1", 0x000000, 0x200000, CRC(8893df89) SHA1(0452828785110601c65f667209fc2d2926cd3751) )
+ ROM_LOAD16_WORD_SWAP( "242-ep1.ep1", 0x200000, 0x200000, CRC(3f74a000) SHA1(e887e0ac232683bd28703e08c4055fd0ea36402c) )
+ ROM_LOAD16_WORD_SWAP( "242-ep2.ep2", 0x400000, 0x200000, CRC(6e474841) SHA1(0ce401277f9c53435ea00b930efe361c8d25a7d9) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-m1.m1", CRC(4ef7016b) SHA1(4182235e963bd70d398a79abeb54ab4d62887c48) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98k ) /* encrypted code + protection, only z80 rom is different to kof98 */ /* KOREAN VERSION */
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242-p1.p1", 0x000000, 0x200000, CRC(8893df89) SHA1(0452828785110601c65f667209fc2d2926cd3751) )
+ ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x200000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ /* Correct chip label */
+ NEO_BIOS_AUDIO_256K( "242-m1k.m1", CRC(ce12da0c) SHA1(e7c01dae2852d543d1a58d55735239f6a5aa05a5) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98ka ) /* encrypted code + protection, only z80 rom is different to kof98 */ /* KOREAN VERSION */
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242-p1.p1", 0x000000, 0x200000, CRC(8893df89) SHA1(0452828785110601c65f667209fc2d2926cd3751) )
+ ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x200000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ /* Correct chip label */
+ NEO_BIOS_AUDIO_256K( "242-mg1k.m1", CRC(ce9fb07c) SHA1(631d995f1291dd803fb069f3b25e7b9ed30d8649) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+ROM_START( kof98h ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "242-pn1.p1", 0x000000, 0x100000, CRC(61ac868a) SHA1(26577264aa72d6af272952a876fcd3775f53e3fa) )
+ ROM_LOAD16_WORD_SWAP( "242-p2.sp2", 0x100000, 0x400000, CRC(980aba4c) SHA1(5e735929ec6c3ca5b2efae3c7de47bcbb8ade2c5) )
+
+ NEO_SFIX_128K( "242-s1.s1", CRC(7f7b4805) SHA1(80ee6e5d0ece9c34ebca54b043a7cb33f9ff6b92) )
+
+ NEO_BIOS_AUDIO_256K( "242-mg1.m1", CRC(4e7a6b1b) SHA1(b54d08f88713ed0271aa06f9f7c9c572ef555b1a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "242-v1.v1", 0x000000, 0x400000, CRC(b9ea8051) SHA1(49606f64eb249263b3341b4f50cc1763c390b2af) )
+ ROM_LOAD( "242-v2.v2", 0x400000, 0x400000, CRC(cc11106e) SHA1(d3108bc05c9bf041d4236b2fa0c66b013aa8db1b) )
+ ROM_LOAD( "242-v3.v3", 0x800000, 0x400000, CRC(044ea4e1) SHA1(062a2f2e52098d73bc31c9ad66f5db8080395ce8) )
+ ROM_LOAD( "242-v4.v4", 0xc00000, 0x400000, CRC(7985ea30) SHA1(54ed5f0324de6164ea81943ebccb3e8d298368ec) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "242-c1.c1", 0x0000000, 0x800000, CRC(e564ecd6) SHA1(78f22787a204f26bae9b2b1c945ddbc27143352f) )
+ ROM_LOAD16_BYTE( "242-c2.c2", 0x0000001, 0x800000, CRC(bd959b60) SHA1(2c97c59e77c9a3fe7d664e741d37944f3d56c10b) )
+ ROM_LOAD16_BYTE( "242-c3.c3", 0x1000000, 0x800000, CRC(22127b4f) SHA1(bd0d00f889d9da7c6ac48f287d9ed8c605ae22cf) )
+ ROM_LOAD16_BYTE( "242-c4.c4", 0x1000001, 0x800000, CRC(0b4fa044) SHA1(fa13c3764fae6b035a626601bc43629f1ebaaffd) )
+ ROM_LOAD16_BYTE( "242-c5.c5", 0x2000000, 0x800000, CRC(9d10bed3) SHA1(4d44addc7c808649bfb03ec45fb9529da413adff) )
+ ROM_LOAD16_BYTE( "242-c6.c6", 0x2000001, 0x800000, CRC(da07b6a2) SHA1(9c3f0da7cde1ffa8feca89efc88f07096e502acf) )
+ ROM_LOAD16_BYTE( "242-c7.c7", 0x3000000, 0x800000, CRC(f6d7a38a) SHA1(dd295d974dd4a7e5cb26a3ef3febcd03f28d522b) )
+ ROM_LOAD16_BYTE( "242-c8.c8", 0x3000001, 0x800000, CRC(c823e045) SHA1(886fbf64bcb58bc4eabb1fc9262f6ac9901a0f28) )
+ROM_END
+
+/****************************************
+ ID-0243
+ . NGM-2430
+ NEO-MVS PROGBK1 / NEO-MVS CHA512Y
+ . NGH-2430
+ NEO-AEG PROGBK1Y / NEO-AEG CHA512Y
+****************************************/
+
+ROM_START( lastbld2 ) /* MVS AND AES VERSION */ /* later revision */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "243-pg1.p1", 0x000000, 0x100000, CRC(af1e6554) SHA1(bd8526f60c2472937728a5d933fbd19d899f2cba) )
+ ROM_LOAD16_WORD_SWAP( "243-pg2.sp2", 0x100000, 0x400000, CRC(add4a30b) SHA1(7db62564db49fe0218cbb35b119d62582a24d658) )
+
+ NEO_SFIX_128K( "243-s1.s1", CRC(c9cd2298) SHA1(a9a18b5347f9dbe29a2ccb63fd4c8fd19537bf8b) )
+
+ NEO_BIOS_AUDIO_128K( "243-m1.m1", CRC(acf12d10) SHA1(6e6b98cc1fa44f24a5168877559b0055e6957b60) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "243-v1.v1", 0x000000, 0x400000, CRC(f7ee6fbb) SHA1(55137bcabeeb590e40a9b8a7c07dd106e4d12a90) )
+ ROM_LOAD( "243-v2.v2", 0x400000, 0x400000, CRC(aa9e4df6) SHA1(a0b91f63e2552a8ad9e0d1af00e2c38288637161) )
+ ROM_LOAD( "243-v3.v3", 0x800000, 0x400000, CRC(4ac750b2) SHA1(585a154acc67bd84ea5b944686b78ed082b768d9) )
+ ROM_LOAD( "243-v4.v4", 0xc00000, 0x400000, CRC(f5c64ba6) SHA1(2eac455def8c27090862cc042f65a3a8aad88283) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "243-c1.c1", 0x0000000, 0x800000, CRC(5839444d) SHA1(0616921c4cce20422563578bd0e806d359508599) )
+ ROM_LOAD16_BYTE( "243-c2.c2", 0x0000001, 0x800000, CRC(dd087428) SHA1(ca27fdb60425664956a18c021ea465f452fb1527) )
+ ROM_LOAD16_BYTE( "243-c3.c3", 0x1000000, 0x800000, CRC(6054cbe0) SHA1(ec2f65e9c930250ee25fd064ee5ae76a7a9c61d9) )
+ ROM_LOAD16_BYTE( "243-c4.c4", 0x1000001, 0x800000, CRC(8bd2a9d2) SHA1(0935df65cd2b0891a708bcc0f1c188148058d4b5) )
+ ROM_LOAD16_BYTE( "243-c5.c5", 0x2000000, 0x800000, CRC(6a503dcf) SHA1(23241b16d7e20f923d41186b29487ab922c7f530) )
+ ROM_LOAD16_BYTE( "243-c6.c6", 0x2000001, 0x800000, CRC(ec9c36d0) SHA1(e145e9e359000dda6e1dfe95a996bc6d29cfca21) )
+ROM_END
+
+/****************************************
+ ID-0244
+ . ??M-2440
+ NEO-MVS PROGBK1 / NEO-MVS CHA512Y
+ . ??H-2440
+****************************************/
+
+ROM_START( neocup98 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "244-p1.p1", 0x100000, 0x100000, CRC(f8fdb7a5) SHA1(f34ee5d1c24e70427d05ef488f46906dbd9f9950) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "244-s1.s1", CRC(9bddb697) SHA1(2f479bcd5a433201168792a578de3057252d649f) )
+
+ NEO_BIOS_AUDIO_128K( "244-m1.m1", CRC(a701b276) SHA1(055550ebc650835bcf8ea4457b2c91bd73e21281) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "244-v1.v1", 0x000000, 0x400000, CRC(79def46d) SHA1(63414235de2e177654508f1c840040424f8993e6) )
+ ROM_LOAD( "244-v2.v2", 0x400000, 0x200000, CRC(b231902f) SHA1(9209772e947a2c7ac31b49dd613bf2eab0cb3358) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "244-c1.c1", 0x000000, 0x800000, CRC(c7a62b23) SHA1(4534ecc9ade69c543188c66229dcad89dbc48668) )
+ ROM_LOAD16_BYTE( "244-c2.c2", 0x000001, 0x800000, CRC(33aa0f35) SHA1(3443c7765c6aa177003d42bbfcac9f31d1e12575) )
+ROM_END
+
+/****************************************
+ ID-0245
+ . ??M-2450
+ NEO-MVS PROGBK1 / NEO-MVS CHA512Y
+****************************************/
+
+ROM_START( breakrev ) /* MVS ONLY RELEASE */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "245-p1.p1", 0x100000, 0x100000, CRC(c828876d) SHA1(1dcba850e5cf8219d0945612cfded6d20ca8682a) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "245-s1.s1", CRC(e7660a5d) SHA1(1cd54964ba60b245ea57d9daf0e27b572b815d21) )
+
+ NEO_BIOS_AUDIO_128K( "245-m1.m1", CRC(00f31c66) SHA1(8488598415c9b74bce00e05b31d96e3d1625c20d) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "245-v1.v1", 0x000000, 0x400000, CRC(e255446c) SHA1(b3933340d49d4ba581f3bf1af7ad69d786205790) )
+ ROM_LOAD( "245-v2.v2", 0x400000, 0x400000, CRC(9068198a) SHA1(71819b0475a5e173a2f9a6e4ff19a94655141c3c) )
+
+ ROM_REGION( 0x1800000, "sprites", 0 )
+ /* The chip labels and sizes are correct */
+ ROM_LOAD16_BYTE( "245-c1.c1", 0x0000000, 0x400000, CRC(68d4ae76) SHA1(2e820067f6963669f104bebf19e865fe4127b4dd) )
+ ROM_LOAD16_BYTE( "245-c2.c2", 0x0000001, 0x400000, CRC(fdee05cd) SHA1(efc4ffd790953ac7c25d5f045c64a9b49d24b096) )
+ ROM_LOAD16_BYTE( "245-c3.c3", 0x0800000, 0x400000, CRC(645077f3) SHA1(0ae74f3b4b3b88f128c6d8c0f35ffa53f5d67ef2) )
+ ROM_LOAD16_BYTE( "245-c4.c4", 0x0800001, 0x400000, CRC(63aeb74c) SHA1(9ff6930c0c3d79b46b86356e8565ce4fcd69ac38) )
+ ROM_LOAD16_BYTE( "245-c5.c5", 0x1000000, 0x400000, CRC(b5f40e7f) SHA1(b332bac64dbb9a9dd66c5315f47ea08634d36f45) )
+ ROM_LOAD16_BYTE( "245-c6.c6", 0x1000001, 0x400000, CRC(d0337328) SHA1(dff86b75dc283bd4512557a5c64f16e6be6c16e4) )
+ROM_END
+
+/****************************************
+ ID-0246
+ . NGM-2460
+ NEO-MVS PROGBK1 / NEO-MVS CHA512Y
+ . NGH-2460
+****************************************/
+
+ROM_START( shocktr2 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "246-p1.p1", 0x000000, 0x100000, CRC(6d4b7781) SHA1(3c9d53d5da9842bfd45037c919064dda3fb2e089) )
+ ROM_LOAD16_WORD_SWAP( "246-p2.sp2", 0x100000, 0x400000, CRC(72ea04c3) SHA1(4fb1d22c30f5f3db4637dd92a4d2705c88de399d) )
+
+ NEO_SFIX_128K( "246-s1.s1", CRC(2a360637) SHA1(431b43da5377dd189e51bd93d88d8a24d1b5090a) )
+
+ NEO_BIOS_AUDIO_128K( "246-m1.m1", CRC(d0604ad1) SHA1(fae3cd52a177eadd5f5775ace957cc0f8301e65d) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "246-v1.v1", 0x000000, 0x400000, CRC(16986fc6) SHA1(cff3103dadf2f4390460456a5bd3fb5f28e21f6a) )
+ ROM_LOAD( "246-v2.v2", 0x400000, 0x400000, CRC(ada41e83) SHA1(78e37ffaaa5679c8775a3a71f6df7a0d15082bdc) )
+ ROM_LOAD( "246-v3.v3", 0x800000, 0x200000, CRC(a05ba5db) SHA1(09d739cad323d918f4196f91b654627fcafd8f4d) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "246-c1.c1", 0x0000000, 0x800000, CRC(47ac9ec5) SHA1(2d9eea11ba87baa23b18a1a3f607dc137846e807) )
+ ROM_LOAD16_BYTE( "246-c2.c2", 0x0000001, 0x800000, CRC(7bcab64f) SHA1(08d0edddd14b53d606e9a7a46aa4fb4e7398e0d0) )
+ ROM_LOAD16_BYTE( "246-c3.c3", 0x1000000, 0x800000, CRC(db2f73e8) SHA1(8d0c3473a8b2a4e28fed1b74beb2e025b7e61867) )
+ ROM_LOAD16_BYTE( "246-c4.c4", 0x1000001, 0x800000, CRC(5503854e) SHA1(a0f2e7c609cbb2aa43493a39d7dcaeca3d511d26) )
+ ROM_LOAD16_BYTE( "246-c5.c5", 0x2000000, 0x800000, CRC(055b3701) SHA1(97f5e92538d1f2e437dcb3f80e56e1230287e8d1) )
+ ROM_LOAD16_BYTE( "246-c6.c6", 0x2000001, 0x800000, CRC(7e2caae1) SHA1(d9de14e3e323664a8c5b7f1df1ba9ec7dd0e6a46) )
+ROM_END
+
+/****************************************
+ ID-0247
+ . ??M-2470
+ NEO-MVS PROGBK1 / NEO-MVS CHA256
+****************************************/
+
+ROM_START( flipshot ) /* MVS ONLY RELEASE */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "247-p1.p1", 0x000000, 0x100000, CRC(95779094) SHA1(a985e033bc6f137fa65855d3eed245d66d5b244a) )
+
+ NEO_SFIX_128K( "247-s1.s1", CRC(6300185c) SHA1(cb2f1de085fde214f96a962b1c2fa285eb387d44) )
+
+ NEO_BIOS_AUDIO_128K( "247-m1.m1", CRC(a9fe0144) SHA1(4cc076ecce9216a373f3dcd7ba28a03d6050e522) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "247-v1.v1", 0x000000, 0x200000, CRC(42ec743d) SHA1(f45b5167ebcbd59300f4e5b05448cd421654102a) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "247-c1.c1", 0x000000, 0x200000, CRC(c9eedcb2) SHA1(7627f2810322c146511525eb70b573a6a5ede926) )
+ ROM_LOAD16_BYTE( "247-c2.c2", 0x000001, 0x200000, CRC(7d6d6e87) SHA1(6475b58b9f91c20d1f465f3e892de0c68e12a92b) )
+ROM_END
+
+/****************************************
+ ID-0248
+ . ??M-2480
+ NEO-MVS PROGBK1 / NEO-MVS CHA256
+****************************************/
+
+ROM_START( pbobbl2n ) /* MVS ONLY RELEASE */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "248-p1.p1", 0x000000, 0x100000, CRC(9d6c0754) SHA1(95c70c2d51fc4de01e768e03cc800a850aaad5dc) )
+
+ NEO_SFIX_128K( "248-s1.s1", CRC(0a3fee41) SHA1(0ab2120e462086be942efcf6ffb37f58ea966ca3) )
+
+ NEO_BIOS_AUDIO_128K( "248-m1.m1", CRC(883097a9) SHA1(677bf9684c0c7977a9a3f0c1288e430040a53b49) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "248-v1.v1", 0x000000, 0x400000, CRC(57fde1fa) SHA1(af39bc141fc35b78dcacfd42b3abb29d7e5c2c89) )
+ ROM_LOAD( "248-v2.v2", 0x400000, 0x400000, CRC(4b966ef3) SHA1(083c0e9fd7b8e506087648cdd8ec4206103984cd) )
+
+ ROM_REGION( 0xa00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "248-c1.c1", 0x000000, 0x400000, CRC(d9115327) SHA1(a49aa836a902326cfe785428e1699fefcf8566d4) )
+ ROM_LOAD16_BYTE( "248-c2.c2", 0x000001, 0x400000, CRC(77f9fdac) SHA1(4642d71d32b6a05dc8bfa0f95c936a77c7cef05e) )
+ ROM_LOAD16_BYTE( "248-c3.c3", 0x800000, 0x100000, CRC(8890bf7c) SHA1(a52f6bafd60e72003bfe38c80c1dde24b4983b2a) )
+ ROM_LOAD16_BYTE( "248-c4.c4", 0x800001, 0x100000, CRC(8efead3f) SHA1(f577d2f7c6f850b3d100c36947ad15e33dfa0bed) )
+ROM_END
+
+/****************************************
+ ID-0249
+ . ??M-2490
+ NEO-MVS PROGBK1 / NEO-MVS CHA256
+ NEO-MVS PROGBK1 / NEO-MVS CHA512Y
+****************************************/
+
+ROM_START( ctomaday ) /* MVS ONLY RELEASE */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "249-p1.p1", 0x100000, 0x100000, CRC(c9386118) SHA1(5554662c7bc8605889cac4a67fee05bbb4eb786f) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "249-s1.s1", CRC(dc9eb372) SHA1(b8aa142243ba303799554479bfc88eb49260f3b1) )
+
+ NEO_BIOS_AUDIO_128K( "249-m1.m1", CRC(80328a47) SHA1(34b6b1a81eab1cf38834b2eea55454ce1b6100e2) )
+
+ ROM_REGION( 0x500000, "ymsnd", 0 )
+ ROM_LOAD( "249-v1.v1", 0x000000, 0x400000, CRC(de7c8f27) SHA1(3681a68a702ab5da8f509b8301d6cada75959332) )
+ ROM_LOAD( "249-v2.v2", 0x400000, 0x100000, CRC(c8e40119) SHA1(738f525c381ed68c0b8a89318a3e4d0089473c45) )
+
+ ROM_REGION( 0x800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "249-c1.c1", 0x000000, 0x400000, CRC(041fb8ee) SHA1(dacc84d713d76818d89a26358374afaa22fa82a2) )
+ ROM_LOAD16_BYTE( "249-c2.c2", 0x000001, 0x400000, CRC(74f3cdf4) SHA1(55ddabaf77f4d575f4deb24fe63e4bdc2c6f31e1) )
+ROM_END
+
+/****************************************
+ ID-0250
+ . NGM-2500
+ NEO-MVS PROGEOP (1999.2.2) / NEO-MVS CHA512Y
+ . NGH-2500
+ NEO-AEG PROGEOP (1999.4.2) / NEO-AEG CHA512Y
+****************************************/
+
+ROM_START( mslugx ) /* MVS AND AES VERSION */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "250-p1.p1", 0x000000, 0x100000, CRC(81f1f60b) SHA1(4c19f2e9824e606178ac1c9d4b0516fbaa625035) )
+ ROM_LOAD16_WORD_SWAP( "250-p2.ep1", 0x100000, 0x400000, CRC(1fda2e12) SHA1(18aaa7a3ba8da99f78c430e9be69ccde04bc04d9) )
+
+ NEO_SFIX_128K( "250-s1.s1", CRC(fb6f441d) SHA1(2cc392ecde5d5afb28ddbaa1030552b48571dcfb) )
+
+ NEO_BIOS_AUDIO_128K( "250-m1.m1", CRC(fd42a842) SHA1(55769bad4860f64ef53a333e0da9e073db483d6a) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "250-v1.v1", 0x000000, 0x400000, CRC(c79ede73) SHA1(ebfcc67204ff9677cf7972fd5b6b7faabf07280c) )
+ ROM_LOAD( "250-v2.v2", 0x400000, 0x400000, CRC(ea9aabe1) SHA1(526c42ca9a388f7435569400e2f132e2724c71ff) )
+ ROM_LOAD( "250-v3.v3", 0x800000, 0x200000, CRC(2ca65102) SHA1(45979d1edb1fc774a415d9386f98d7cb252a2043) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "250-c1.c1", 0x0000000, 0x800000, CRC(09a52c6f) SHA1(c3e8a8ccdac0f8bddc4c3413277626532405fae2) )
+ ROM_LOAD16_BYTE( "250-c2.c2", 0x0000001, 0x800000, CRC(31679821) SHA1(554f600a3aa09c16c13c625299b087a79d0d15c5) )
+ ROM_LOAD16_BYTE( "250-c3.c3", 0x1000000, 0x800000, CRC(fd602019) SHA1(c56646c62387bc1439d46610258c755beb8d7dd8) )
+ ROM_LOAD16_BYTE( "250-c4.c4", 0x1000001, 0x800000, CRC(31354513) SHA1(31be8ea2498001f68ce4b06b8b90acbf2dcab6af) )
+ ROM_LOAD16_BYTE( "250-c5.c5", 0x2000000, 0x800000, CRC(a4b56124) SHA1(d41069856df990a1a99d39fb263c8303389d5475) )
+ ROM_LOAD16_BYTE( "250-c6.c6", 0x2000001, 0x800000, CRC(83e3e69d) SHA1(39be66287696829d243fb71b3fb8b7dc2bc3298f) )
+ROM_END
+
+/****************************************
+ ID-0251
+ . NGM-2510
+ SMA protected version found on:
+ NEO-MVS PROGLBA (NEO-SMA) (1999.4.12) / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7042)
+ Non SMA protected version found on:
+ NEO-MVS PROGBK1 / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7042)
+ . NGH-2510
+ NEO-AEG PROGLBA (NEO-SMA) (1999.7.6) / NEO-AEG CHAFIO (1999.8.10) (NEO-CMC 7042)
+****************************************/
+
+ROM_START( kof99 ) /* Original Version - Encrypted Code & GFX */ /* MVS VERSION */
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "ka.neo-sma", 0x0c0000, 0x040000, CRC(7766d09e) SHA1(4e0a49d1ad669a62676cb30f527c6590cde80194) ) /* stored in the custom chip */
+ ROM_LOAD16_WORD_SWAP( "251-p1.p1", 0x100000, 0x400000, CRC(006e4532) SHA1(47791ab4044ad55988b1d3412d95b65b91a163c8) )
+ ROM_LOAD16_WORD_SWAP( "251-p2.p2", 0x500000, 0x400000, CRC(90175f15) SHA1(aa9e75810438a8b45808a8bf32cb04d91b5c0b3a) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99h ) /* Original Version - Encrypted Code & GFX */ /* AES VERSION */
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "kc.neo-sma", 0x0c0000, 0x040000, CRC(6c9d0647) SHA1(2a0ce62ca6c18007e8fbe1b60475c7874ab79389) ) /* stored in the custom chip */
+ ROM_LOAD16_WORD_SWAP( "251-p1.p1", 0x100000, 0x400000, CRC(006e4532) SHA1(47791ab4044ad55988b1d3412d95b65b91a163c8) )
+ ROM_LOAD16_WORD_SWAP( "251-pg2.p2", 0x500000, 0x400000, CRC(d9057f51) SHA1(8d365b4dd40351495df99d6c765df1434b0b0548) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99e ) /* Original Version - Encrypted Code & GFX */
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "ka.neo-sma", 0x0c0000, 0x040000, CRC(7766d09e) SHA1(4e0a49d1ad669a62676cb30f527c6590cde80194) ) /* stored in the custom chip */
+ /* Is the SMA for this set correct? A set with this layout and a SMA.KB is known */
+ ROM_LOAD16_WORD_SWAP( "251-ep1.p1", 0x100000, 0x200000, CRC(1e8d692d) SHA1(eea1aa8c0a17f089ac14831889c36535e559072c) )
+ ROM_LOAD16_WORD_SWAP( "251-ep2.p2", 0x300000, 0x200000, CRC(d6206e5a) SHA1(0e1100d03c40c6d5cfa899d009e319ae73fce6b8) )
+ ROM_LOAD16_WORD_SWAP( "251-ep3.p3", 0x500000, 0x200000, CRC(d58c3ef8) SHA1(f927d90d55b49944f448d6286e0cb913cc70ade1) )
+ ROM_LOAD16_WORD_SWAP( "251-ep4.p4", 0x700000, 0x200000, CRC(52de02ae) SHA1(f16924ff8eef92da7716236a6a055e22e090a02b) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99k ) /* Original Version - Encrypted GFX */ /* KOREAN VERSION */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "152-p1.p1", 0x000000, 0x100000, CRC(f2c7ddfa) SHA1(d592eecc53d442c55c2f26a6a721fdf2924d2a5b) )
+ ROM_LOAD16_WORD_SWAP( "152-p2.sp2", 0x100000, 0x400000, CRC(274ef47a) SHA1(98654b68cc85c19d4a90b46f3110f551fa2e5357) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "251-c1.c1", 0x0000000, 0x800000, CRC(0f9e93fe) SHA1(c7d77f0833c6f526f632e4f2dce59e302f6b9a15) )
+ ROM_LOAD16_BYTE( "251-c2.c2", 0x0000001, 0x800000, CRC(e71e2ea3) SHA1(39c7a326fddbcca3b29c68cdc96aad4d62295c0f) )
+ ROM_LOAD16_BYTE( "251-c3.c3", 0x1000000, 0x800000, CRC(238755d2) SHA1(01125b5c7a28e350f091280b041954fd1ac7c98f) )
+ ROM_LOAD16_BYTE( "251-c4.c4", 0x1000001, 0x800000, CRC(438c8b22) SHA1(ffbc643f5b27dd00f2f95d4ef4c5f29ee814722b) )
+ ROM_LOAD16_BYTE( "251-c5.c5", 0x2000000, 0x800000, CRC(0b0abd0a) SHA1(d5ad324fe523bdc6f09209d236cc4932524a48f1) )
+ ROM_LOAD16_BYTE( "251-c6.c6", 0x2000001, 0x800000, CRC(65bbf281) SHA1(79ae174667a23dabcfe865b6cd6133c86098452e) )
+ ROM_LOAD16_BYTE( "251-c7.c7", 0x3000000, 0x800000, CRC(ff65f62e) SHA1(7cd335fede05b56e15db90ce407c1183a78da4e9) )
+ ROM_LOAD16_BYTE( "251-c8.c8", 0x3000001, 0x800000, CRC(8d921c68) SHA1(42acf1d27d52a8e3b6262eb7df50693c0b135565) )
+ROM_END
+
+ROM_START( kof99p ) /* Prototype Version - Possibly Hacked */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "proto_251-p1.p1", 0x000000, 0x100000, CRC(f37929c4) SHA1(226e7e3d629568399b88275e5bcd4e5b3839be95) )
+ ROM_LOAD16_WORD_SWAP( "proto_251-p2.p2", 0x100000, 0x400000, CRC(739742ad) SHA1(31acaf05a9bf186305888d3db7e4e8a83f7bb0a4) )
+
+ /* This is the S1 from the prototype, the final is different */
+ NEO_SFIX_128K( "proto_251-s1.s1", CRC(fb1498ed) SHA1(d40060b31b6f217a4abdf3b336439fcd7bd7aaef) )
+
+ /* Did the Prototype really use the same sound program / voice roms, sound isn't great .. */
+ NEO_BIOS_AUDIO_128K( "251-m1.m1", CRC(5e74539c) SHA1(6f49a9343cbd026b2c6720ff3fa2e5b1f85e80da) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "251-v1.v1", 0x000000, 0x400000, CRC(ef2eecc8) SHA1(8ed13b9db92dba3124bc5ba66e3e275885ece24a) )
+ ROM_LOAD( "251-v2.v2", 0x400000, 0x400000, CRC(73e211ca) SHA1(0e60fa64cab6255d9721e2b4bc22e3de64c874c5) )
+ ROM_LOAD( "251-v3.v3", 0x800000, 0x400000, CRC(821901da) SHA1(c6d4975bfaa19a62ed59126cadf2578c0a5c257f) )
+ ROM_LOAD( "251-v4.v4", 0xc00000, 0x200000, CRC(b49e6178) SHA1(dde6f76e958841e8c99b693e13ced9aa9ef316dc) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* these are probably decrypted versions of the roms found in the final */
+ ROM_LOAD16_BYTE( "proto_251-c1.c1", 0x0000000, 0x800000, CRC(e5d8ffa4) SHA1(65f15f9f02424a7a9dd35916166594f283e8d424) )
+ ROM_LOAD16_BYTE( "proto_251-c2.c2", 0x0000001, 0x800000, CRC(d822778f) SHA1(b590055e9bf1549bd6e1ecdabd65702202615712) )
+ ROM_LOAD16_BYTE( "proto_251-c3.c3", 0x1000000, 0x800000, CRC(f20959e8) SHA1(38293043fa77ac51c5e3191118874c58f1ae4d30) )
+ ROM_LOAD16_BYTE( "proto_251-c4.c4", 0x1000001, 0x800000, CRC(54ffbe9f) SHA1(8e62442923551f07a552621951b1accab2830e3b) )
+ ROM_LOAD16_BYTE( "proto_251-c5.c5", 0x2000000, 0x800000, CRC(d87a3bbc) SHA1(430f6812088712e0eb5714dcc664d8bba75e921a) )
+ ROM_LOAD16_BYTE( "proto_251-c6.c6", 0x2000001, 0x800000, CRC(4d40a691) SHA1(2b580d0678a5e6033ef16130671e860364d35e56) )
+ ROM_LOAD16_BYTE( "proto_251-c7.c7", 0x3000000, 0x800000, CRC(a4479a58) SHA1(d50e6cc9ccfe1ddbc6d90d46b8ca2cb0304edd8c) )
+ ROM_LOAD16_BYTE( "proto_251-c8.c8", 0x3000001, 0x800000, CRC(ead513ce) SHA1(e9b07a0b01fdeb3004755a479df059c81b4d0ed6) )
+ROM_END
+
+/****************************************
+ ID-0252
+ . ??M-2520
+ NEO-MVS PROGBK1 / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7042)
+****************************************/
+
+ROM_START( ganryu ) /* Original Version - Encrypted GFX */ /* MVS ONLY RELEASE */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "252-p1.p1", 0x100000, 0x100000, CRC(4b8ac4fb) SHA1(93d90271bff281862b03beba3809cf95a47a1e44) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "252-m1.m1", CRC(30cc4099) SHA1(46453b7aac41855a92724a785372f8daf931d8d4) )
+
+ ROM_REGION( 0x0400000, "ymsnd", 0 )
+ ROM_LOAD( "252-v1.v1", 0x000000, 0x400000, CRC(e5946733) SHA1(d5904a50465af03d6ff33399a98f3259721ca0b2) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "252-c1.c1", 0x0000000, 0x800000, CRC(50ee7882) SHA1(ace0f95407c246d0456341cf2ad8a7668b81df8a) )
+ ROM_LOAD16_BYTE( "252-c2.c2", 0x0000001, 0x800000, CRC(62585474) SHA1(b35461598087aa82886af0030c61b26cc064af5f) )
+ROM_END
+
+/****************************************
+ ID-0253
+ . NGM-2530
+ NEO-MVS PROGLBA (1999.4.12) (NEO-SMA)(LBA-SUB) / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7042)
+ . NGH-2530
+ NEO-AEG PROGLBA (1999.7.6) (NEO-SMA) / NEO-AEG CHAFIO (1999.8.10) (NEO-CMC 7042)
+****************************************/
+
+ROM_START( garou ) /* Original Version - Encrypted GFX */ /* MVS VERSION - later revision */
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "kf.neo-sma", 0x0c0000, 0x040000, CRC(98bc93dc) SHA1(01fe3d18b50f770e131e8d8eeff4c630ba8c9551) ) /* stored in the custom chip */
+ ROM_LOAD16_WORD_SWAP( "253-ep1.p1", 0x100000, 0x200000, CRC(ea3171a4) SHA1(bbda40f652baa0dc5fc6a006c001a1bdb0df43f6) )
+ ROM_LOAD16_WORD_SWAP( "253-ep2.p2", 0x300000, 0x200000, CRC(382f704b) SHA1(0ace9c84a8b8a0524fd9a503e7d872de1bf1bd52) )
+ ROM_LOAD16_WORD_SWAP( "253-ep3.p3", 0x500000, 0x200000, CRC(e395bfdd) SHA1(6b50f5ac15bf66b7e4e9bff57594fd3d7530c831) )
+ ROM_LOAD16_WORD_SWAP( "253-ep4.p4", 0x700000, 0x200000, CRC(da92c08e) SHA1(5556f983ebcebc33160e90a6a6cf589d54c8cedc) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "253-m1.m1", CRC(36a806be) SHA1(90fb44dc0c3fb57946a0f35716056abb84a0f191) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "253-v1.v1", 0x000000, 0x400000, CRC(263e388c) SHA1(11f05feee170370c4bfc5053af79246a6e3de5dc) )
+ ROM_LOAD( "253-v2.v2", 0x400000, 0x400000, CRC(2c6bc7be) SHA1(c9c61054ce1a47bf1bf77a31117726b499df24a4) )
+ ROM_LOAD( "253-v3.v3", 0x800000, 0x400000, CRC(0425b27d) SHA1(986863c98fc3445487242dcf2ea75b075e7f33ee) )
+ ROM_LOAD( "253-v4.v4", 0xc00000, 0x400000, CRC(a54be8a9) SHA1(d7123e79b43e8adfaa5ecadbfcbeb6be890ec311) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "253-c1.c1", 0x0000000, 0x800000, CRC(0603e046) SHA1(5ef4557ce90ba65d36129de97be1fdc049c4a3d0) )
+ ROM_LOAD16_BYTE( "253-c2.c2", 0x0000001, 0x800000, CRC(0917d2a4) SHA1(d4ed3a13ae22f880fb399671c1752f1a0283f316) )
+ ROM_LOAD16_BYTE( "253-c3.c3", 0x1000000, 0x800000, CRC(6737c92d) SHA1(678f0c9cc1267bd131546981b9989bfb7289d8ba) )
+ ROM_LOAD16_BYTE( "253-c4.c4", 0x1000001, 0x800000, CRC(5ba92ec6) SHA1(aae36b050a3a0321026a96eba06dd184c0e2acca) )
+ ROM_LOAD16_BYTE( "253-c5.c5", 0x2000000, 0x800000, CRC(3eab5557) SHA1(47c433015aa81a0b0a1d3ee51382c4948b80c023) )
+ ROM_LOAD16_BYTE( "253-c6.c6", 0x2000001, 0x800000, CRC(308d098b) SHA1(b052f1fa9fbc69606004c250e2505360eaa24949) )
+ ROM_LOAD16_BYTE( "253-c7.c7", 0x3000000, 0x800000, CRC(c0e995ae) SHA1(8675ca787d28246174c313167f82557f021366fc) )
+ ROM_LOAD16_BYTE( "253-c8.c8", 0x3000001, 0x800000, CRC(21a11303) SHA1(fd61221ad257c185ef5c1f9694bd6b840b591af3) )
+ROM_END
+
+ROM_START( garouh ) /* Original Version - Encrypted GFX */ /* MVS AND AES VERSION - earlier revision */
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "ke.neo-sma", 0x0c0000, 0x040000, CRC(96c72233) SHA1(29e19effd40fdf7e5144332396857f4ad0eff13e) ) /* stored in the custom chip */
+ ROM_LOAD16_WORD_SWAP( "253-p1.p1", 0x100000, 0x400000, CRC(18ae5d7e) SHA1(bdb58ec9137d8653979b47132f2d10e1cc6aaa24) )
+ ROM_LOAD16_WORD_SWAP( "253-p2.p2", 0x500000, 0x400000, CRC(afffa779) SHA1(ac017986f02277fbcd656b8c02492a3f4216a90e) )
+ /* also found AES JP set with ep1 / ep2 / ep3 and ep4 on eproms and KE NEO-SMA with a white marking; chip labels for eproms are 253-EP1, 253-EP2, 253-EP3 and 253-EP4 */
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "253-m1.m1", CRC(36a806be) SHA1(90fb44dc0c3fb57946a0f35716056abb84a0f191) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "253-v1.v1", 0x000000, 0x400000, CRC(263e388c) SHA1(11f05feee170370c4bfc5053af79246a6e3de5dc) )
+ ROM_LOAD( "253-v2.v2", 0x400000, 0x400000, CRC(2c6bc7be) SHA1(c9c61054ce1a47bf1bf77a31117726b499df24a4) )
+ ROM_LOAD( "253-v3.v3", 0x800000, 0x400000, CRC(0425b27d) SHA1(986863c98fc3445487242dcf2ea75b075e7f33ee) )
+ ROM_LOAD( "253-v4.v4", 0xc00000, 0x400000, CRC(a54be8a9) SHA1(d7123e79b43e8adfaa5ecadbfcbeb6be890ec311) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "253-c1.c1", 0x0000000, 0x800000, CRC(0603e046) SHA1(5ef4557ce90ba65d36129de97be1fdc049c4a3d0) )
+ ROM_LOAD16_BYTE( "253-c2.c2", 0x0000001, 0x800000, CRC(0917d2a4) SHA1(d4ed3a13ae22f880fb399671c1752f1a0283f316) )
+ ROM_LOAD16_BYTE( "253-c3.c3", 0x1000000, 0x800000, CRC(6737c92d) SHA1(678f0c9cc1267bd131546981b9989bfb7289d8ba) )
+ ROM_LOAD16_BYTE( "253-c4.c4", 0x1000001, 0x800000, CRC(5ba92ec6) SHA1(aae36b050a3a0321026a96eba06dd184c0e2acca) )
+ ROM_LOAD16_BYTE( "253-c5.c5", 0x2000000, 0x800000, CRC(3eab5557) SHA1(47c433015aa81a0b0a1d3ee51382c4948b80c023) )
+ ROM_LOAD16_BYTE( "253-c6.c6", 0x2000001, 0x800000, CRC(308d098b) SHA1(b052f1fa9fbc69606004c250e2505360eaa24949) )
+ ROM_LOAD16_BYTE( "253-c7.c7", 0x3000000, 0x800000, CRC(c0e995ae) SHA1(8675ca787d28246174c313167f82557f021366fc) )
+ ROM_LOAD16_BYTE( "253-c8.c8", 0x3000001, 0x800000, CRC(21a11303) SHA1(fd61221ad257c185ef5c1f9694bd6b840b591af3) )
+ROM_END
+
+ROM_START( garoup ) /* Prototype Version, seems genuine */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "proto_253-p1.p1", 0x000000, 0x100000, CRC(c72f0c16) SHA1(1ff6bb651682f93bef9ff02622c3cf63fe594986) )
+ ROM_LOAD16_WORD_SWAP( "proto_253-p2.p2", 0x100000, 0x400000, CRC(bf8de565) SHA1(0e24574168cd38138bed0aa4dca49849f6901ca2) )
+
+ NEO_SFIX_128K( "proto_253-s1.s1", CRC(779989de) SHA1(8bd550857b60f8a907f6d39a4225ceffdd330307) )
+
+ NEO_BIOS_AUDIO_256K( "proto_253-m1.m1", CRC(bbe464f7) SHA1(f5f8f3e48f5d453f45107085d6f4023bcd24c053) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "proto_253-v1.v1", 0x000000, 0x400000, CRC(274f3923) SHA1(4c7a8ad1cd0e3afc1f78de3c2929120ed434f104) )
+ ROM_LOAD( "proto_253-v2.v2", 0x400000, 0x400000, CRC(8f86dabe) SHA1(b3d2d9f5c1d97a6e7aee2c674fb6627f41bbb240) )
+ ROM_LOAD( "proto_253-v3.v3", 0x800000, 0x400000, CRC(05fd06cd) SHA1(6cd699719614bb87547632ea3d61d92d81fdf563) )
+ ROM_LOAD( "proto_253-v4.v4", 0xc00000, 0x400000, CRC(14984063) SHA1(170d5638327ec0eb3590b80dc11590897367250c) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_253-c1.c1", 0x0000000, 0x800000, CRC(5bb5d137) SHA1(d648febd8e6a0bdd9bdbb6ce1f1f8b08567ec05a) )
+ ROM_LOAD16_BYTE( "proto_253-c2.c2", 0x0000001, 0x800000, CRC(5c8d2960) SHA1(f7503502be0332adf408ee0ea5ee5161c8939fd8) )
+ ROM_LOAD16_BYTE( "proto_253-c3.c3", 0x1000000, 0x800000, CRC(234d16fc) SHA1(7b9221f7ecc438150c8a10be72390329854ed21b) )
+ ROM_LOAD16_BYTE( "proto_253-c4.c4", 0x1000001, 0x800000, CRC(b9b5b993) SHA1(6059793eaf6e58c172235fe64aa9d25a40c38ed6) )
+ ROM_LOAD16_BYTE( "proto_253-c5.c5", 0x2000000, 0x800000, CRC(722615d2) SHA1(798832c535869f0e247c3db0d8253779b103e213) )
+ ROM_LOAD16_BYTE( "proto_253-c6.c6", 0x2000001, 0x800000, CRC(0a6fab38) SHA1(eaee6f2f18af91f7959d84d4b991b3fc182d07c4) )
+ ROM_LOAD16_BYTE( "proto_253-c7.c7", 0x3000000, 0x800000, CRC(d68e806f) SHA1(92bfd9839115bd590972ae4ecc45ad35dce22387) )
+ ROM_LOAD16_BYTE( "proto_253-c8.c8", 0x3000001, 0x800000, CRC(f778fe99) SHA1(c963f6ba90a36d02991728b44ffcf174ca18268a) )
+ROM_END
+
+/****************************************
+ ID-0254
+ . ??M-2540
+ NEO-MVS PROGBK1 / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7042)
+****************************************/
+
+ROM_START( s1945p ) /* Original Version, Encrypted GFX Roms */ /* MVS ONLY RELEASE */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "254-p1.p1", 0x000000, 0x100000, CRC(ff8efcff) SHA1(dcaeaca573385c172ecc43ee6bee355359091893) )
+ ROM_LOAD16_WORD_SWAP( "254-p2.sp2", 0x100000, 0x400000, CRC(efdfd4dd) SHA1(254f3e1b546eed788f7ae919be9d1bf9702148ce) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "254-m1.m1", CRC(994b4487) SHA1(a4e645a3ababa48a8325980ff022e04a8b51b017) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "254-v1.v1", 0x000000, 0x400000, CRC(844f58fb) SHA1(e59544457be9f21481eac8b5a39b9cbb502f252d) )
+ ROM_LOAD( "254-v2.v2", 0x400000, 0x400000, CRC(d9a248f0) SHA1(dd3e0974b753e6f94d0943a002de45668a1b072b) )
+ ROM_LOAD( "254-v3.v3", 0x800000, 0x400000, CRC(0b0d2d33) SHA1(f8e76af42a997f36a40f66b39de00f68afe6a89c) )
+ ROM_LOAD( "254-v4.v4", 0xc00000, 0x400000, CRC(6d13dc91) SHA1(8433513c0b5aea61939068a25ab90efbe3e44116) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "254-c1.c1", 0x0000000, 0x800000, CRC(ae6fc8ef) SHA1(544ccdaee8a4a45cdce9483e30852811d2d5f3cc) )
+ ROM_LOAD16_BYTE( "254-c2.c2", 0x0000001, 0x800000, CRC(436fa176) SHA1(d70141a91a360a1b1070753086f976608fec38af) )
+ ROM_LOAD16_BYTE( "254-c3.c3", 0x1000000, 0x800000, CRC(e53ff2dc) SHA1(31f6aaffe28146d574aa72f14f90a9d968f36bc6) )
+ ROM_LOAD16_BYTE( "254-c4.c4", 0x1000001, 0x800000, CRC(818672f0) SHA1(460c6738d0ee5ae440a23fc1434fab53bbb242b5) )
+ ROM_LOAD16_BYTE( "254-c5.c5", 0x2000000, 0x800000, CRC(4580eacd) SHA1(feb96eb5e80c9125ddd7836e0939212cd3011c34) )
+ ROM_LOAD16_BYTE( "254-c6.c6", 0x2000001, 0x800000, CRC(e34970fc) SHA1(6e43e15e27bc914357f977116ab1e2d98711bb21) )
+ ROM_LOAD16_BYTE( "254-c7.c7", 0x3000000, 0x800000, CRC(f2323239) SHA1(5b3e8dd77474203be010ec7363858d806344a320) )
+ ROM_LOAD16_BYTE( "254-c8.c8", 0x3000001, 0x800000, CRC(66848c7d) SHA1(24d4ed627940a4cf8129761c1da15556e52e199c) )
+ROM_END
+
+/****************************************
+ ID-0255
+ . ??M-2550
+ NEO-MVS PROGBK1 / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7042)
+****************************************/
+
+ROM_START( preisle2 ) /* Original Version, Encrypted GFX */ /* MVS ONLY RELEASE */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "255-p1.p1", 0x000000, 0x100000, CRC(dfa3c0f3) SHA1(793c6a46f3a794536dc0327a3f3fad20e25ab661) )
+ ROM_LOAD16_WORD_SWAP( "255-p2.sp2", 0x100000, 0x400000, CRC(42050b80) SHA1(0981a8295d43b264c2b95e5d7568bdda4e64c976) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "255-m1.m1", CRC(8efd4014) SHA1(5b73809b6e4e49264d281ef3e5004ac8a9de296d) )
+
+ ROM_REGION( 0x0600000, "ymsnd", 0 )
+ ROM_LOAD( "255-v1.v1", 0x000000, 0x400000, CRC(5a14543d) SHA1(7146ac748f846c7e2d5b0bdcf953892e39b648fe) )
+ ROM_LOAD( "255-v2.v2", 0x400000, 0x200000, CRC(6610d91a) SHA1(b2c6786920dc1712e88c3cc26d2c6c3ac2615bf4) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "255-c1.c1", 0x0000000, 0x800000, CRC(ea06000b) SHA1(1539b12e461fa48301190eb8171bbffff9d984b7) )
+ ROM_LOAD16_BYTE( "255-c2.c2", 0x0000001, 0x800000, CRC(04e67d79) SHA1(aadb6ee750da2c14c6eededa2218db95e051a32c) )
+ ROM_LOAD16_BYTE( "255-c3.c3", 0x1000000, 0x800000, CRC(60e31e08) SHA1(bd5b81ad9d04cdc4e0df31ac40eca305f98277eb) )
+ ROM_LOAD16_BYTE( "255-c4.c4", 0x1000001, 0x800000, CRC(40371d69) SHA1(90011ccc5672ff1b90737cf50c963e71b6217ce3) )
+ ROM_LOAD16_BYTE( "255-c5.c5", 0x2000000, 0x800000, CRC(0b2e6adf) SHA1(15c7d9aa8b1ad9a071e6fd0ef0de8a057c23b02e) )
+ ROM_LOAD16_BYTE( "255-c6.c6", 0x2000001, 0x800000, CRC(b001bdd3) SHA1(394ba8004644844ee97a120cfda48aeac685af8a) )
+ROM_END
+
+/****************************************
+ ID-0256
+ . NGM-2560
+ SMA protected version found on:
+ NEO-MVS PROGLBA (1999.4.12) (NEO-SMA)(LBA-SUB) / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7042)
+ Non SMA protected version found on:
+ NEO-MVS PROGBK1 / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7042)
+ . NGH-2560
+ NEO-AEG PROGLBA (1999.7.6) (NEO-SMA)(LBA-SUB) / NEO-AEG CHAFIO (1999.8.10) (NEO-CMC 7042)
+****************************************/
+
+ROM_START( mslug3 ) /* Original Version - Encrypted Code & GFX */ /* revision 2000.4.1 */ /* MVS VERSION */
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "neo-sma", 0x0c0000, 0x040000, CRC(9cd55736) SHA1(d6efb2b313127c2911d47d9324626b3f1e7c6ccb) ) /* stored in the custom chip */
+ /* The SMA for this release has a green colour marking; the older revision has a white colour marking */
+ ROM_LOAD16_WORD_SWAP( "256-pg1.p1", 0x100000, 0x400000, CRC(b07edfd5) SHA1(dcbd9e500bfae98d754e55cdbbbbf9401013f8ee) )
+ ROM_LOAD16_WORD_SWAP( "256-pg2.p2", 0x500000, 0x400000, CRC(6097c26b) SHA1(248ec29d21216f29dc6f5f3f0e1ad1601b3501b6) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+ROM_START( mslug3h ) /* Original Version - Encrypted GFX */ /* revision 2000.3.17 */ /* AES VERSION */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "256-ph1.p1", 0x000000, 0x100000, CRC(9c42ca85) SHA1(7a8f77a89867b889295ae9b9dfd4ba28f02d234d) )
+ ROM_LOAD16_WORD_SWAP( "256-ph2.sp2", 0x100000, 0x400000, CRC(1f3d8ce8) SHA1(08b05a8abfb86ec09a5e758d6273acf1489961f9) )
+ /* also found AES sets with p1 / p2 on maskrom on NEO-AEG PROGLBA (NEO-SMA); chip labels are 256-PG1 and 256-PG2 */
+ /* The SMA on those sets has a pink or green color marking */
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+/****************************************
+ ID-0257
+ . NGM-2570
+ SMA protected version found on:
+ NEO-MVS PROGLBA (1999.4.12) (NEO-SMA)(LBA-SUB) / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7050)
+ Non SMA protected version found on:
+ NEO-MVS PROGBK1 / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7050)
+ . NGH-2570
+ NEO-AEG PROGLBA (NEO-SMA) / NEO-AEG CHAFIO (1999.8.10) (NEO-CMC 7050)
+****************************************/
+
+ROM_START( kof2000 ) /* Original Version, Encrypted Code + Sound + GFX Roms */ /* MVS AND AES VERSION */
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "neo-sma", 0x0c0000, 0x040000, CRC(71c6e6bb) SHA1(1bd29ded4c6b29780db8e8b772c452189699ca89) ) /* stored in the custom chip */
+ ROM_LOAD16_WORD_SWAP( "257-p1.p1", 0x100000, 0x400000, CRC(60947b4c) SHA1(5faa0a7ac7734d6c8e276589bd12dd574264647d) )
+ ROM_LOAD16_WORD_SWAP( "257-p2.p2", 0x500000, 0x400000, CRC(1b7ec415) SHA1(f19fa44e9ee5b5a6eb4a051349d6bc4acc3bbbdb) )
+
+ NEO_SFIX_MT_512K
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_256K( "257-m1.m1", CRC(4b749113) SHA1(2af2361146edd0ce3966614d90165a5c1afb8de4) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) )
+ ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) )
+ ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) )
+ ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) )
+ ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) )
+ ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) )
+ ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) )
+ ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) )
+ROM_END
+
+ROM_START( kof2000n ) /* Original Version, Encrypted Sound + GFX Roms */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "257-pg1.p1", 0x000000, 0x100000, CRC(5f809dbe) SHA1(2bc233dcff5622de86d01e3b74b840c7caf12982) )
+ ROM_LOAD16_WORD_SWAP( "257-pg2.sp2", 0x100000, 0x400000, CRC(693c2c5e) SHA1(dc9121b7369ef46596343cac055a00aec81704d4) )
+
+ NEO_SFIX_MT_512K
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_256K( "257-m1.m1", CRC(4b749113) SHA1(2af2361146edd0ce3966614d90165a5c1afb8de4) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "257-v1.v1", 0x000000, 0x400000, CRC(17cde847) SHA1(4bcc0205b70dc6d9216b29025450c9c5b08cb65d) )
+ ROM_LOAD( "257-v2.v2", 0x400000, 0x400000, CRC(1afb20ff) SHA1(57dfd2de058139345ff2b744a225790baaecd5a2) )
+ ROM_LOAD( "257-v3.v3", 0x800000, 0x400000, CRC(4605036a) SHA1(51b228a0600d38a6ec37aec4822879ec3b0ee106) )
+ ROM_LOAD( "257-v4.v4", 0xc00000, 0x400000, CRC(764bbd6b) SHA1(df23c09ca6cf7d0ae5e11ff16e30c159725106b3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "257-c1.c1", 0x0000000, 0x800000, CRC(cef1cdfa) SHA1(6135080f3a6b4712b76cc217edcc58e72b55c2b9) )
+ ROM_LOAD16_BYTE( "257-c2.c2", 0x0000001, 0x800000, CRC(f7bf0003) SHA1(9f7b19a2100cf7d12867e742f440dd5277b4f895) )
+ ROM_LOAD16_BYTE( "257-c3.c3", 0x1000000, 0x800000, CRC(101e6560) SHA1(8073ae1139e215d1167f8d32c14079a46ce3ee1c) )
+ ROM_LOAD16_BYTE( "257-c4.c4", 0x1000001, 0x800000, CRC(bd2fc1b1) SHA1(da0006761923ad49b404a08d7a151193ee307a69) )
+ ROM_LOAD16_BYTE( "257-c5.c5", 0x2000000, 0x800000, CRC(89775412) SHA1(b221b30224bc4239f1b3c2d2fd1cd4fa84e3523c) )
+ ROM_LOAD16_BYTE( "257-c6.c6", 0x2000001, 0x800000, CRC(fa7200d5) SHA1(6f2b0d38af34e280d56a58955400e5c679906871) )
+ ROM_LOAD16_BYTE( "257-c7.c7", 0x3000000, 0x800000, CRC(7da11fe4) SHA1(065336cf166807acb6c8569d59d3bf37a19b0a42) )
+ ROM_LOAD16_BYTE( "257-c8.c8", 0x3000001, 0x800000, CRC(b1afa60b) SHA1(b916184f5cfe4121752270f4f65abf35d8eb0519) )
+ROM_END
+
+/****************************************
+ ID-0258
+ SNK vs. Capcom?
+****************************************/
+
+/****************************************
+ ID-0259
+ . ??M-2590
+ NEO-MVS PROGBK1 / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7042)
+****************************************/
+
+ROM_START( bangbead ) /* Original Version - Encrypted GFX */ /* MVS ONLY RELEASE */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "259-p1.p1", 0x100000, 0x100000, CRC(88a37f8b) SHA1(566db84850fad5e8fe822e8bba910a33e083b550) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "259-m1.m1", CRC(85668ee9) SHA1(7d3f51710cf90c097cd3faaeeef10ceb85cbb3e8) )
+
+ ROM_REGION( 0x500000, "ymsnd", 0 )
+ ROM_LOAD( "259-v1.v1", 0x000000, 0x400000, CRC(088eb8ab) SHA1(608306e35501dd7d382d9f96b28e7550aa896a03) )
+ ROM_LOAD( "259-v2.v2", 0x400000, 0x100000, CRC(97528fe9) SHA1(8f5eddbb3a9a225492479d1a44801f3916c8e791) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "259-c1.c1", 0x0000000, 0x800000, CRC(1f537f74) SHA1(b8ef691e92191c20a5ed4f20a75cca3c7383bca6) )
+ ROM_LOAD16_BYTE( "259-c2.c2", 0x0000001, 0x800000, CRC(0efd98ff) SHA1(d350315d3c7f26d638458e5ccf2126069a4c7a5b) )
+ROM_END
+
+/****************************************
+ ID-0260
+ . ??M-2600
+ NEO-MVS PROGBK1 / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7042)
+****************************************/
+
+ROM_START( nitd ) /* Original Version - Encrypted GFX */ /* MVS ONLY RELEASE */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "260-p1.p1", 0x000000, 0x080000, CRC(61361082) SHA1(441f3f41c1aa752c0e0a9a0b1d92711d9e636b85) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_512K( "260-m1.m1", CRC(6407c5e5) SHA1(d273e154cc905b63205a17a1a6d419cac3485a92) )
+
+ ROM_REGION( 0x0400000, "ymsnd", 0 )
+ ROM_LOAD( "260-v1.v1", 0x000000, 0x400000, CRC(24b0480c) SHA1(d769e621be52a5cd2e2568891b5f95a48268e1e0) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "260-c1.c1", 0x0000000, 0x800000, CRC(147b0c7f) SHA1(a647c3a2f6d146ff47521c1d39f58830601f5781) )
+ ROM_LOAD16_BYTE( "260-c2.c2", 0x0000001, 0x800000, CRC(d2b04b0d) SHA1(ce4322e6cfacb627fe997efe81018861e21d3c27) )
+ROM_END
+
+/****************************************
+ ID-0261
+ . NGM-2610
+ NEO-MVS PROGBK1 / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7042)
+ . NGH-2610
+ NEO-AEG PROGBK1F / NEO-AEG CHAFIO (1999.8.10) (NEO-CMC 7042)
+****************************************/
+
+ROM_START( sengoku3 ) /* Original Version - Encrypted GFX */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "261-ph1.p1", 0x100000, 0x100000, CRC(e0d4bc0a) SHA1(8df366097f224771ca6d1aa5c1691cd46776cd12) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+ /* also found MVS set with p1 label 261-PG1; older revision? */
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_512K( "261-m1.m1", CRC(7d501c39) SHA1(8e6bcc428f5ac7532d9c9be7e07ad0821461a080) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "261-v1.v1", 0x000000, 0x400000, CRC(64c30081) SHA1(f9ebd20cf59b72e864b7274c1bdb6d99ecaf4595) )
+ ROM_LOAD( "261-v2.v2", 0x400000, 0x400000, CRC(392a9c47) SHA1(7ab90a54089236ca6c3ef1af8e566a8025d38159) )
+ ROM_LOAD( "261-v3.v3", 0x800000, 0x400000, CRC(c1a7ebe3) SHA1(1d7bb481451f5ee0457e954bb5210300182c3c9c) )
+ ROM_LOAD( "261-v4.v4", 0xc00000, 0x200000, CRC(9000d085) SHA1(11157b355ab4eb6627e9f322ed875332d3d77349) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "261-c1.c1", 0x0000000, 0x800000, CRC(ded84d9c) SHA1(d960523b813d4fae06d716298d4e431a5c77a0c5) )
+ ROM_LOAD16_BYTE( "261-c2.c2", 0x0000001, 0x800000, CRC(b8eb4348) SHA1(619d24312549932959481fa58f43f11c048e1ca5) )
+ ROM_LOAD16_BYTE( "261-c3.c3", 0x1000000, 0x800000, CRC(84e2034a) SHA1(38ec4ae4b86933a25c9a03799b8cade4b1346401) )
+ ROM_LOAD16_BYTE( "261-c4.c4", 0x1000001, 0x800000, CRC(0b45ae53) SHA1(a19fb21408ab633aee8bbf38bf43b5e26766b355) )
+ROM_END
+
+/****************************************
+ ID-0262
+ . NGM-262?
+ MVS PROGBK2 REV1.0 (NEO-PCM2 SNK)/ MVS CHAFIO REV1.0 (NEO-CMC 7050)
+ . NGH-2621
+ NEO-AEG PROGBK1F / NEO-AEG CHAFIO (1999.8.10) (NEO-CMC 7050)
+ - Distribution by BrezzaSoft
+****************************************/
+
+ROM_START( kof2001 ) /* MVS VERSION */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262-p1-08-e0.p1", 0x000000, 0x100000, CRC(9381750d) SHA1(dcfecd69e563ff52fe07d23c5372d0f748b07819) )
+ ROM_LOAD16_WORD_SWAP( "262-p2-08-e0.sp2", 0x100000, 0x400000, CRC(8e0d8329) SHA1(10dcc1baf0aaf1fc84c4d856bca6bcff85aed2bc) )
+ /* The first/early production run sets have proms with above labels. Some later? sets found have eproms instead of proms */
+
+ NEO_SFIX_MT_128K
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_256K( "265-262-m1.m1", CRC(a7f8119f) SHA1(71805b39b8b09c32425cf39f9de59b2f755976c2) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+ROM_START( kof2001h ) /* AES VERSION */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "262-pg1.p1", 0x000000, 0x100000, CRC(2af7e741) SHA1(e41282d73ed6d521da056f1a16573bb61bfa3826) )
+ ROM_LOAD16_WORD_SWAP( "262-pg2.sp2", 0x100000, 0x400000, CRC(91eea062) SHA1(82bae42bbeedb9f3aa0c7c0b0a7a69be499cf98f) )
+
+ NEO_SFIX_MT_128K
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_256K( "265-262-m1.m1", CRC(a7f8119f) SHA1(71805b39b8b09c32425cf39f9de59b2f755976c2) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "262-c1-08-e0.c1", 0x0000000, 0x800000, CRC(99cc785a) SHA1(374f0674871d0196fa274aa6c5956d7b3848d5da) )
+ ROM_LOAD16_BYTE( "262-c2-08-e0.c2", 0x0000001, 0x800000, CRC(50368cbf) SHA1(5d9e206e98e0b0c7735b72ea46b45058fdec2352) )
+ ROM_LOAD16_BYTE( "262-c3-08-e0.c3", 0x1000000, 0x800000, CRC(fb14ff87) SHA1(445a8db2fc69eff54a252700f2d3a89244c58e75) )
+ ROM_LOAD16_BYTE( "262-c4-08-e0.c4", 0x1000001, 0x800000, CRC(4397faf8) SHA1(6752b394f6647502a649a3e62bd3442f936b733e) )
+ ROM_LOAD16_BYTE( "262-c5-08-e0.c5", 0x2000000, 0x800000, CRC(91f24be4) SHA1(88190c41f7d4a0f4b1982149fc9acfc640af498d) )
+ ROM_LOAD16_BYTE( "262-c6-08-e0.c6", 0x2000001, 0x800000, CRC(a31e4403) SHA1(5cd1a14703aa58810e2377dfb7353c61e9dc9c1f) )
+ ROM_LOAD16_BYTE( "262-c7-08-e0.c7", 0x3000000, 0x800000, CRC(54d9d1ec) SHA1(80c3a8ec39130dd5d3da561f287709da6b8abcf4) )
+ ROM_LOAD16_BYTE( "262-c8-08-e0.c8", 0x3000001, 0x800000, CRC(59289a6b) SHA1(ddfce7c85b2a144975db5bb14b4b51aaf881880e) )
+ROM_END
+
+/****************************************
+ ID-0263
+ . NGM-2630
+ NEO-MVS PROGBK2 (NEO-PCM2 SNK)/ NEO-MVS CHAFIO (NEO-CMC 7050)
+ . NGH-2630
+ NEO-AEG PROGBK2 (2002.4.1) (NEO-PCM2 SNK) / NEO-AEG CHAFIO (1999.8.10) (NEO-CMC 7050)
+****************************************/
+
+ROM_START( mslug4 ) /* Original Version - Encrypted GFX */ /* MVS VERSION */
+ /* There also exist carts where p1 label is pg1; the PG1 revision has a Japanese cart label, SN 02Jxxxxx
+ The P1 revision has a US/EUR cart label, SN 02Txxxxx ; Rom data on both is identical.
+ These carts were manufactured by Mega Enterprise, not SNK. */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263-p1.p1", 0x000000, 0x100000, CRC(27e4def3) SHA1(a08785e8145981bb6b5332a3b2df7eb321253cca) )
+ ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+
+ NEO_SFIX_MT_512K
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_128K( "263-m1.m1", CRC(46ac8228) SHA1(5aeea221050c98e4bb0f16489ce772bf1c80f787) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) )
+ ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) )
+ ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) )
+ ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) )
+ ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) )
+ ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) )
+ ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) )
+ROM_END
+
+ROM_START( mslug4h ) /* Original Version - Encrypted GFX */ /* AES VERSION */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "263-ph1.p1", 0x000000, 0x100000, CRC(c67f5c8d) SHA1(12af74964843f103520d9f0825069ea2f67eeb2f) )
+ ROM_LOAD16_WORD_SWAP( "263-ph2.sp2", 0x100000, 0x400000, CRC(bc3ec89e) SHA1(2cb0626bc4fa57e1d25f208e04532b570d87b3fb) )
+
+ NEO_SFIX_MT_512K
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_128K( "263-m1.m1", CRC(46ac8228) SHA1(5aeea221050c98e4bb0f16489ce772bf1c80f787) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) )
+ ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) )
+ ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) )
+ ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) )
+ ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) )
+ ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) )
+ ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) )
+ROM_END
+
+/****************************************
+ ID-0264
+ . NGM-264?
+ NEO-MVS PROGBK2 (2000.3.21) (NEO-PCM2 SNK) / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7050)
+ . NGH-2641
+ NEO-AEG PROGBK2 (2002.4.1) (NEO-PCM2 SNK) / NEO-AEG CHAFIO (1999.8.10) (NEO-CMC 7050)
+ - Distribution by BrezzaSoft
+****************************************/
+
+ROM_START( rotd ) /* Encrypted Set */ /* MVS VERSION */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "264-p1.p1", 0x000000, 0x800000, CRC(b8cc969d) SHA1(4f2205b4bdd32dd1522106ef4df10ac0eb1b852d) )
+
+ NEO_SFIX_MT_128K
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_128K( "264-m1.m1", CRC(4dbd7b43) SHA1(6b63756b0d2d30bbf13fbd219833c81fd060ef96) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) )
+ ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) )
+ ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) )
+ ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) )
+ ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) )
+ ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) )
+ ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) )
+ ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) )
+ ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) )
+ROM_END
+
+/****************************************
+ ID-0265
+ . NGM-2650
+ NEO-MVS PROGBK2 (2000.3.21) (NEO-PCM2 PLAYMORE) / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7050)
+ . NGH-2650
+ NEO-AEG PROGBK2 (NEO-PCM2 PLAYMORE) / NEO-AEG CHAFIO (1999.8.10) (NEO-CMC 7050)
+****************************************/
+
+ROM_START( kof2002 ) /* Encrypted Set */ /* MVS AND AES VERSION */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265-p1.p1", 0x000000, 0x100000, CRC(9ede7323) SHA1(ad9d45498777fda9fa58e75781f48e09aee705a6) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_MT_128K
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_128K( "265-m1.m1", CRC(85aaa632) SHA1(744fba4ca3bc3a5873838af886efb97a8a316104) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+/****************************************
+ ID-0266
+ . NGM-2660
+ NEO-MVS PROGBK2 (2000.3.21) (NEO-PCM2 PLAYMORE) / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7050)
+ . NGH-2660
+ NEO-AEG PROGBK2 (2002.4.1) (NEO-PCM2 PLAYMORE) / NEO-AEG CHAFIO (1999.8.10) (NEO-CMC 7050)
+****************************************/
+
+ROM_START( matrim ) /* Encrypted Set */ /* MVS AND AES VERSION */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "266-p1.p1", 0x000000, 0x100000, CRC(5d4c2dc7) SHA1(8d723b0d28ec344eef26009b361a2b97d300dd51) )
+ ROM_LOAD16_WORD_SWAP( "266-p2.sp2", 0x100000, 0x400000, CRC(a14b1906) SHA1(1daa14d73512f760ef569b06f9facb279437d1db) )
+
+ NEO_SFIX_MT_512K
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_128K( "266-m1.m1", CRC(456c3e6c) SHA1(5a07d0186198a18d2dda1331093cf29b0b9b2984) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "266-v1.v1", 0x000000, 0x800000, CRC(a4f83690) SHA1(200d683d8c30ebc6d0ed331aa5bbba39b4e07160) )
+ ROM_LOAD( "266-v2.v2", 0x800000, 0x800000, CRC(d0f69eda) SHA1(9d7e98976ad433ed8a35d7afffa38130444ba7db) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "266-c1.c1", 0x0000000, 0x800000, CRC(505f4e30) SHA1(f22b6f76fc0cad963555dc89d072967c8dc8b79a) )
+ ROM_LOAD16_BYTE( "266-c2.c2", 0x0000001, 0x800000, CRC(3cb57482) SHA1(dab15bc24391f9a5173de76af48b612fb9636ccf) )
+ ROM_LOAD16_BYTE( "266-c3.c3", 0x1000000, 0x800000, CRC(f1cc6ad0) SHA1(66c1cccc0332ffd2d3064f06330c41f95ca09ced) )
+ ROM_LOAD16_BYTE( "266-c4.c4", 0x1000001, 0x800000, CRC(45b806b7) SHA1(c2bb866fded53d62fad0fc88d89d5e7d4cb1894f) )
+ ROM_LOAD16_BYTE( "266-c5.c5", 0x2000000, 0x800000, CRC(9a15dd6b) SHA1(194a6973a7a9e3847efe1bdbaeaeb16e74aff2dd) )
+ ROM_LOAD16_BYTE( "266-c6.c6", 0x2000001, 0x800000, CRC(281cb939) SHA1(bdb7766cfde581ccfaee2be7fe48445f360a2301) )
+ ROM_LOAD16_BYTE( "266-c7.c7", 0x3000000, 0x800000, CRC(4b71f780) SHA1(d5611a6f6b730db58613b48f2b0174661ccfb7bb) )
+ ROM_LOAD16_BYTE( "266-c8.c8", 0x3000001, 0x800000, CRC(29873d33) SHA1(dc77f129ed49b8d40d0d4241feef3f6c2f19a987) )
+ROM_END
+
+/****************************************
+ ID-0267
+ . ??M-2670
+ NEO-MVS PROGBK2 (2000.3.21) (NEO-PCM2 SNK) / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7050)
+****************************************/
+
+ROM_START( pnyaa ) /* Encrypted Set */ /* MVS ONLY RELEASE */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "267-p1.p1", 0x000000, 0x100000, CRC(112fe2c0) SHA1(01420e051f0bdbd4f68ce306a3738161b96f8ba8) )
+ /* also found set with p1 and m1 on eprom with sticker; chip labels is PN 2.02 and M1 */
+
+ NEO_SFIX_MT_128K
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "267-m1.m1", CRC(c7853ccd) SHA1(1b7a4c5093cf0fe3861ce44fd1d3b30c71ad0abe) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "267-v1.v1", 0x000000, 0x400000, CRC(e2e8e917) SHA1(7f412d55aebff3d38a225a88c632916295ab0584) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "267-c1.c1", 0x0000000, 0x800000, CRC(5eebee65) SHA1(7eb3eefdeb24e19831d0f51d4ea07a0292c25ab6) )
+ ROM_LOAD16_BYTE( "267-c2.c2", 0x0000001, 0x800000, CRC(2b67187b) SHA1(149c3efd3c444fd0d35a97fa2268102bf76be3ed) )
+ROM_END
+
+/****************************************
+ ID-0268
+ . NGM-2680
+ NEO-MVS PROGBK3S (2003.10.1) (NEO-PCM2 PLAYMORE) (NEO-PVC) / NEO-MVS CHAFIO (2003.7.24) (NEO-CMC 7050)
+ . NGH-2680
+ NEO-AEG PROGBK3S (2003.10.6) (NEO-PCM2 PLAYMORE) (NEO-PVC) / NEO-AEG CHAFIO (2003.7.24) (NEO-CMC 7050)
+****************************************/
+
+ROM_START( mslug5 ) /* Encrypted Set */ /* MVS VERSION */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD32_WORD_SWAP( "268-p1cr.p1", 0x000000, 0x400000, CRC(d0466792) SHA1(880819933d997fab398f91061e9dbccb959ae8a1) )
+ ROM_LOAD32_WORD_SWAP( "268-p2cr.p2", 0x000002, 0x400000, CRC(fbf6b61e) SHA1(9ec743d5988b5e3183f37f8edf45c72a8c0c893e) )
+
+ NEO_SFIX_MT_128K
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "268-m1.m1", CRC(4a5a6e0e) SHA1(df0f660f2465e1db7be5adfcaf5e88ad61a74a42) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) )
+ ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "268-c1c.c1", 0x0000000, 0x800000, CRC(ab7c389a) SHA1(025a188de589500bf7637fa8e7a37ab24bf4312e) )
+ ROM_LOAD16_BYTE( "268-c2c.c2", 0x0000001, 0x800000, CRC(3560881b) SHA1(493d218c92290b4770024d6ee2917c4022753b07) )
+ ROM_LOAD16_BYTE( "268-c3c.c3", 0x1000000, 0x800000, CRC(3af955ea) SHA1(cf36b6ae9b0d12744b17cb7a928399214de894be) )
+ ROM_LOAD16_BYTE( "268-c4c.c4", 0x1000001, 0x800000, CRC(c329c373) SHA1(5073d4079958a0ef5426885af2c9e3178f37d5e0) )
+ ROM_LOAD16_BYTE( "268-c5c.c5", 0x2000000, 0x800000, CRC(959c8177) SHA1(889bda7c65d71172e7d89194d1269561888fe789) )
+ ROM_LOAD16_BYTE( "268-c6c.c6", 0x2000001, 0x800000, CRC(010a831b) SHA1(aec140661e3ae35d264df416478ba15188544d91) )
+ ROM_LOAD16_BYTE( "268-c7c.c7", 0x3000000, 0x800000, CRC(6d72a969) SHA1(968dd9a4d1209b770b9b85ea6532fa24d262a262) )
+ ROM_LOAD16_BYTE( "268-c8c.c8", 0x3000001, 0x800000, CRC(551d720e) SHA1(ebf69e334fcaba0fda6fd432fd0970283a365d12) )
+ROM_END
+
+ROM_START( mslug5h ) /* Encrypted Set */ /* AES release of the game but is also found in later MVS carts */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD32_WORD_SWAP( "268-p1c.p1", 0x000000, 0x400000, CRC(3636690a) SHA1(e0da714b4bdc6efffe1250ded02ebddb3ab6d7b3) )
+ ROM_LOAD32_WORD_SWAP( "268-p2c.p2", 0x000002, 0x400000, CRC(8dfc47a2) SHA1(27d618cfbd0107a4d2a836797e967b39d2eb4851) )
+ /* also found AES set with p1 / p2 on maskrom and m1 on M27C4001 eprom with sticker; chip labels are 268-P1CR2, 268-P2CR2 and 268-M1 */
+
+ NEO_SFIX_MT_128K
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "268-m1.m1", CRC(4a5a6e0e) SHA1(df0f660f2465e1db7be5adfcaf5e88ad61a74a42) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) )
+ ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "268-c1c.c1", 0x0000000, 0x800000, CRC(ab7c389a) SHA1(025a188de589500bf7637fa8e7a37ab24bf4312e) )
+ ROM_LOAD16_BYTE( "268-c2c.c2", 0x0000001, 0x800000, CRC(3560881b) SHA1(493d218c92290b4770024d6ee2917c4022753b07) )
+ ROM_LOAD16_BYTE( "268-c3c.c3", 0x1000000, 0x800000, CRC(3af955ea) SHA1(cf36b6ae9b0d12744b17cb7a928399214de894be) )
+ ROM_LOAD16_BYTE( "268-c4c.c4", 0x1000001, 0x800000, CRC(c329c373) SHA1(5073d4079958a0ef5426885af2c9e3178f37d5e0) )
+ ROM_LOAD16_BYTE( "268-c5c.c5", 0x2000000, 0x800000, CRC(959c8177) SHA1(889bda7c65d71172e7d89194d1269561888fe789) )
+ ROM_LOAD16_BYTE( "268-c6c.c6", 0x2000001, 0x800000, CRC(010a831b) SHA1(aec140661e3ae35d264df416478ba15188544d91) )
+ ROM_LOAD16_BYTE( "268-c7c.c7", 0x3000000, 0x800000, CRC(6d72a969) SHA1(968dd9a4d1209b770b9b85ea6532fa24d262a262) )
+ ROM_LOAD16_BYTE( "268-c8c.c8", 0x3000001, 0x800000, CRC(551d720e) SHA1(ebf69e334fcaba0fda6fd432fd0970283a365d12) )
+ROM_END
+
+/****************************************
+ ID-0269
+ . NGM-2690
+ NEO-MVS PROGBK3R (2003.9.2) (NEO-PCM2 PLAYMORE) (NEO-PVC) / NEO-MVS CHAFIO (2003.7.24) (NEO-CMC 7050)
+ . NGH-2690
+ NEO-AEG PROGBK3R (2003.8.29) (NEO-PCM2 PLAYMORE) (NEO-PVC) / NEO-AEG CHAFIO (2003.7.24) (NEO-CMC 7050)
+****************************************/
+
+ROM_START( svc ) /* Encrypted Set */ /* MVS AND AES VERSION */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD32_WORD_SWAP( "269-p1.p1", 0x000000, 0x400000, CRC(38e2005e) SHA1(1b902905916a30969282f1399a756e32ff069097) )
+ ROM_LOAD32_WORD_SWAP( "269-p2.p2", 0x000002, 0x400000, CRC(6d13797c) SHA1(3cb71a95cea6b006b44cac0f547df88aec0007b7) )
+
+ NEO_SFIX_MT_512K
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "269-m1.m1", CRC(f6819d00) SHA1(d3bbe09df502464f104e53501708ac6e2c1832c6) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "269-v1.v1", 0x000000, 0x800000, CRC(c659b34c) SHA1(1931e8111ef43946f68699f8707334c96f753a1e) )
+ ROM_LOAD( "269-v2.v2", 0x800000, 0x800000, CRC(dd903835) SHA1(e58d38950a7a8697bb22a1cc7a371ae6664ae8f9) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "269-c1r.c1", 0x0000000, 0x800000, CRC(887b4068) SHA1(227cdcf7a10a415f1e3afe7ae97acc9afc2cc8e1) )
+ ROM_LOAD16_BYTE( "269-c2r.c2", 0x0000001, 0x800000, CRC(4e8903e4) SHA1(31daaa4fd6c23e8f0a8428931c513d97d2eee1bd) )
+ ROM_LOAD16_BYTE( "269-c3r.c3", 0x1000000, 0x800000, CRC(7d9c55b0) SHA1(1f94a948b3e3c31b3ff05518ef525031a3cb2c62) )
+ ROM_LOAD16_BYTE( "269-c4r.c4", 0x1000001, 0x800000, CRC(8acb5bb6) SHA1(2c27d6e309646d7b84da85f78c06e4aaa74e844b) )
+ ROM_LOAD16_BYTE( "269-c5r.c5", 0x2000000, 0x800000, CRC(097a4157) SHA1(54d839f55d27f68c704a94ea3c63c644ffc22ca4) )
+ ROM_LOAD16_BYTE( "269-c6r.c6", 0x2000001, 0x800000, CRC(e19df344) SHA1(20448add53ab25dd3a8f0b681131ad3b9c68acc9) )
+ ROM_LOAD16_BYTE( "269-c7r.c7", 0x3000000, 0x800000, CRC(d8f0340b) SHA1(43114af7557361a8903bb8cf8553f602946a9220) )
+ ROM_LOAD16_BYTE( "269-c8r.c8", 0x3000001, 0x800000, CRC(2570b71b) SHA1(99266e1c2ffcf324793fb5c55325fbc7e6265ac0) )
+ROM_END
+
+/****************************************
+ ID-0270
+ . NGM-2700
+ NEO-MVS PROGBK2R (2003.8.26) (NEO-PCM2 PLAYMORE) / NEO-MVS CHAFIO (2003.7.24) (NEO-CMC 7050)
+ . NGH-2700
+ NEO-AEG PROGBK2S (2003.10.16) (NEO-PCM2 PLAYMORE) / NEO-AEG CHAFIO (2003.7.24) (NEO-CMC 7050)
+****************************************/
+
+ROM_START( samsho5 ) /* Encrypted Set */ /* MVS VERSION */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "270-p1.p1", 0x000000, 0x400000, CRC(4a2a09e6) SHA1(2644de02cdab8ccc605488a7c76b8c9cd1d5bcb9) )
+ ROM_LOAD16_WORD_SWAP( "270-p2.sp2", 0x400000, 0x400000, CRC(e0c74c85) SHA1(df24a4ee76438e40c2f04a714175a7f85cacdfe0) )
+
+ NEO_SFIX_MT_128K
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "270-m1.m1", CRC(49c9901a) SHA1(2623e9765a0eba58fee2de72851e9dc502344a3d) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "270-v1.v1", 0x000000, 0x800000, CRC(62e434eb) SHA1(1985f5e88f8e866f9683b6cea901aa28c04b80bf) )
+ ROM_LOAD( "270-v2.v2", 0x800000, 0x800000, CRC(180f3c9a) SHA1(6d7dc2605ead6e78704efa127e7e0dfe621e2c54) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "270-c1.c1", 0x0000000, 0x800000, CRC(14ffffac) SHA1(2ccebfdd0c7907679ae95bf6eca85b8d322441e2) )
+ ROM_LOAD16_BYTE( "270-c2.c2", 0x0000001, 0x800000, CRC(401f7299) SHA1(94e48cdf1682b1250f53c59f3f71d995e928d17b) )
+ ROM_LOAD16_BYTE( "270-c3.c3", 0x1000000, 0x800000, CRC(838f0260) SHA1(d5c8d3c6e7221d04e0b20882a847752e5ba95635) )
+ ROM_LOAD16_BYTE( "270-c4.c4", 0x1000001, 0x800000, CRC(041560a5) SHA1(d165e533699f15b1e079c82f97db3542b3a7dd66) )
+ ROM_LOAD16_BYTE( "270-c5.c5", 0x2000000, 0x800000, CRC(bd30b52d) SHA1(9f8282e684415b4045218cf764ef7d75a70e3240) )
+ ROM_LOAD16_BYTE( "270-c6.c6", 0x2000001, 0x800000, CRC(86a69c70) SHA1(526732cdb408cf680af9da39057bce6a4dfb5e13) )
+ ROM_LOAD16_BYTE( "270-c7.c7", 0x3000000, 0x800000, CRC(d28fbc3c) SHA1(a82a6ba6760fad14d9309f9147cb7d80bd6f70fc) )
+ ROM_LOAD16_BYTE( "270-c8.c8", 0x3000001, 0x800000, CRC(02c530a6) SHA1(7a3fafa6075506c6ef78cc4ec2cb72118ec83cb9) )
+ROM_END
+
+ROM_START( samsho5h ) /* Encrypted Set, Alternate Set */ /* AES VERSION */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "270-p1c.p1", 0x000000, 0x400000, CRC(bf956089) SHA1(c538289069bf338b9fa7ecc5c9143763dbb776a8) )
+ ROM_LOAD16_WORD_SWAP( "270-p2c.sp2", 0x400000, 0x400000, CRC(943a6b1d) SHA1(12bd02fc197456da6ee86f066086094cef0f4bf9) )
+
+ NEO_SFIX_MT_128K
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "270-m1.m1", CRC(49c9901a) SHA1(2623e9765a0eba58fee2de72851e9dc502344a3d) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "270-v1.v1", 0x000000, 0x800000, CRC(62e434eb) SHA1(1985f5e88f8e866f9683b6cea901aa28c04b80bf) )
+ ROM_LOAD( "270-v2.v2", 0x800000, 0x800000, CRC(180f3c9a) SHA1(6d7dc2605ead6e78704efa127e7e0dfe621e2c54) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "270-c1.c1", 0x0000000, 0x800000, CRC(14ffffac) SHA1(2ccebfdd0c7907679ae95bf6eca85b8d322441e2) )
+ ROM_LOAD16_BYTE( "270-c2.c2", 0x0000001, 0x800000, CRC(401f7299) SHA1(94e48cdf1682b1250f53c59f3f71d995e928d17b) )
+ ROM_LOAD16_BYTE( "270-c3.c3", 0x1000000, 0x800000, CRC(838f0260) SHA1(d5c8d3c6e7221d04e0b20882a847752e5ba95635) )
+ ROM_LOAD16_BYTE( "270-c4.c4", 0x1000001, 0x800000, CRC(041560a5) SHA1(d165e533699f15b1e079c82f97db3542b3a7dd66) )
+ ROM_LOAD16_BYTE( "270-c5.c5", 0x2000000, 0x800000, CRC(bd30b52d) SHA1(9f8282e684415b4045218cf764ef7d75a70e3240) )
+ ROM_LOAD16_BYTE( "270-c6.c6", 0x2000001, 0x800000, CRC(86a69c70) SHA1(526732cdb408cf680af9da39057bce6a4dfb5e13) )
+ ROM_LOAD16_BYTE( "270-c7.c7", 0x3000000, 0x800000, CRC(d28fbc3c) SHA1(a82a6ba6760fad14d9309f9147cb7d80bd6f70fc) )
+ ROM_LOAD16_BYTE( "270-c8.c8", 0x3000001, 0x800000, CRC(02c530a6) SHA1(7a3fafa6075506c6ef78cc4ec2cb72118ec83cb9) )
+ROM_END
+
+/****************************************
+ ID-0271
+ . NGM-2710
+ NEO-MVS PROGBK3S (2003.10.1) (NEO-PCM2 PLAYMORE) (NEO-PVC) / NEO-MVS CHAFIO (2003.7.24) (NEO-CMC 7050)
+ . NGH-2710
+ NEO-AEG PROGBK3S (2003.10.6) (NEO-PCM2 PLAYMORE) (NEO-PVC) / NEO-AEG CHAFIO (2003.7.24) (NEO-CMC 7050)
+****************************************/
+
+ROM_START( kof2003 ) /* Encrypted Code + Sound + GFX Roms */ /* MVS VERSION */
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD32_WORD_SWAP( "271-p1c.p1", 0x000000, 0x400000, CRC(530ecc14) SHA1(812cf7e9902af3f5e9e330b7c05c2171b139ad2b) )
+ ROM_LOAD32_WORD_SWAP( "271-p2c.p2", 0x000002, 0x400000, CRC(fd568da9) SHA1(46364906a1e81dc251117e91a1a7b43af1373ada) )
+ ROM_LOAD16_WORD_SWAP( "271-p3c.p3", 0x800000, 0x100000, CRC(aec5b4a9) SHA1(74087f785590eda5898ce146029818f86ced42b6) )
+
+ NEO_SFIX_MT_512K
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "271-m1c.m1", CRC(f5515629) SHA1(7516bf1b0207a3c8d41dc30c478f8d8b1f71304b) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "271-v1c.v1", 0x000000, 0x800000, CRC(ffa3f8c7) SHA1(7cf4a933973ca23b7f87c81151d8659e6ec4bd20) )
+ ROM_LOAD( "271-v2c.v2", 0x800000, 0x800000, CRC(5382c7d1) SHA1(1bf999705eda80ba1e7b0d6bdd010d9bfb18bd76) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "271-c1c.c1", 0x0000000, 0x800000, CRC(b1dc25d0) SHA1(50adc3c60d5b4b3abd10a49db2267306c6dbd772) )
+ ROM_LOAD16_BYTE( "271-c2c.c2", 0x0000001, 0x800000, CRC(d5362437) SHA1(66db36522dc09106388c707252df9fe1c88b4856) )
+ ROM_LOAD16_BYTE( "271-c3c.c3", 0x1000000, 0x800000, CRC(0a1fbeab) SHA1(9fe30d36ba98d00fda010832ff2f27783dd577c1) )
+ ROM_LOAD16_BYTE( "271-c4c.c4", 0x1000001, 0x800000, CRC(87b19a0c) SHA1(b72a8e7d9124ce859b5149bb4381ba481c161ea5) )
+ ROM_LOAD16_BYTE( "271-c5c.c5", 0x2000000, 0x800000, CRC(704ea371) SHA1(e75b80422f0d72eac826f8ffadf79efeccaab124) )
+ ROM_LOAD16_BYTE( "271-c6c.c6", 0x2000001, 0x800000, CRC(20a1164c) SHA1(c9843b37612a16fc95f6851793b1cfb5d49d811d) )
+ ROM_LOAD16_BYTE( "271-c7c.c7", 0x3000000, 0x800000, CRC(189aba7f) SHA1(7152195a57ad36b28290810fe87ed8c206262ba9) )
+ ROM_LOAD16_BYTE( "271-c8c.c8", 0x3000001, 0x800000, CRC(20ec4fdc) SHA1(deb5f7ec5a090e419b9d1a6a74877bee081198e2) )
+ROM_END
+
+ROM_START( kof2003h ) /* Encrypted Code + Sound + GFX Roms */ /* AES VERSION */
+ /* All chip labels for this set are correct */
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD32_WORD_SWAP( "271-p1k.p1", 0x000000, 0x400000, CRC(d0d0ae3e) SHA1(538d054ac50c91694fbbfefcce548b063713e14e) )
+ ROM_LOAD32_WORD_SWAP( "271-p2k.p2", 0x000002, 0x400000, CRC(fb3f79d9) SHA1(f253d10e732d6e23ae82d74ac9269d21f69ddb4d) )
+ ROM_LOAD16_WORD_SWAP( "271-p3k.p3", 0x800000, 0x100000, CRC(232702ad) SHA1(6045046027dac1cbd4cbd14b5c1ece522bc6197f) )
+
+ NEO_SFIX_MT_512K
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "271-m1k.m1", CRC(48d9affe) SHA1(68f01560b91bbada39001ce01bdeeed5c9bb29f2) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "271-v1c.v1", 0x000000, 0x800000, CRC(ffa3f8c7) SHA1(7cf4a933973ca23b7f87c81151d8659e6ec4bd20) )
+ ROM_LOAD( "271-v2c.v2", 0x800000, 0x800000, CRC(5382c7d1) SHA1(1bf999705eda80ba1e7b0d6bdd010d9bfb18bd76) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "271-c1k.c1", 0x0000000, 0x800000, CRC(efb9dd24) SHA1(1c6fe10fdbfc3306c3b7321c731f28ffdbfb15b8) )
+ ROM_LOAD16_BYTE( "271-c2k.c2", 0x0000001, 0x800000, CRC(3fb90447) SHA1(04d196de7c54c77bc75eba56d3060d46efc2d406) )
+ ROM_LOAD16_BYTE( "271-c3k.c3", 0x1000000, 0x800000, CRC(27950f28) SHA1(924f4de61c86b9efde6f1104b986886f1117055d) )
+ ROM_LOAD16_BYTE( "271-c4k.c4", 0x1000001, 0x800000, CRC(735177f8) SHA1(c95da1bc256995a7f44c9cc3312879ab6cbc15d6) )
+ ROM_LOAD16_BYTE( "271-c5k.c5", 0x2000000, 0x800000, CRC(a51b7c0f) SHA1(53dcf692b35b8d32abe5962ac799b8d641f04710) )
+ ROM_LOAD16_BYTE( "271-c6k.c6", 0x2000001, 0x800000, CRC(d5cae4e0) SHA1(248cd9eaac7a04d6b5d80c7534de90b057d566d7) )
+ ROM_LOAD16_BYTE( "271-c7k.c7", 0x3000000, 0x800000, CRC(e65ae2d0) SHA1(39744e10697d7ac539ecfcfa597e75597f321955) )
+ ROM_LOAD16_BYTE( "271-c8k.c8", 0x3000001, 0x800000, CRC(312f528c) SHA1(b4ad75f54f730ada6cb00112b74022250f055725) )
+ROM_END
+
+/****************************************
+ ID-0272
+ . NGM-2720
+ NEO-MVS PROGBK2S (2003.10.18) (NEO-PCM2 PLAYMORE) / NEO-MVS CHAFIO (2003.7.24) (NEO-CMC 7050)
+ . NGH-2720
+ NEO-AEG PROGBK2S (2003.10.16) (NEO-PCM2 PLAYMORE) / NEO-MVS CHAFIO (2003.7.24) (NEO-CMC 7050)
+****************************************/
+
+ROM_START( samsh5sp ) /* Encrypted Set */ /* MVS VERSION */
+ /* Uncensored */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "272-p1.p1", 0x000000, 0x400000, CRC(fb7a6bba) SHA1(f68c527208d8a55ca44b0caaa8ab66b3a0ffdfe5) )
+ ROM_LOAD16_WORD_SWAP( "272-p2.sp2", 0x400000, 0x400000, CRC(63492ea6) SHA1(6ba946acb62c63ed61a42fe72b7fff3828883bcc) )
+
+ NEO_SFIX_MT_128K
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "272-m1.m1", CRC(adeebf40) SHA1(8cbd63dda3fff4de38060405bf70cd9308c9e66e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "272-v1.v1", 0x000000, 0x800000, CRC(76a94127) SHA1(c3affd7ff1eb02345cfb755962ec173a8ec34acd) )
+ ROM_LOAD( "272-v2.v2", 0x800000, 0x800000, CRC(4ba507f1) SHA1(728d139da3fe8a391fd8be4d24bb7fdd4bf9548a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "272-c1.c1", 0x0000000, 0x800000, CRC(4f97661a) SHA1(87f1721bae5ef16bc23c06b05e64686c396413df) )
+ ROM_LOAD16_BYTE( "272-c2.c2", 0x0000001, 0x800000, CRC(a3afda4f) SHA1(86b475fce0bc0aa04d34e31324e8c7c7c847df19) )
+ ROM_LOAD16_BYTE( "272-c3.c3", 0x1000000, 0x800000, CRC(8c3c7502) SHA1(6639020a8860d2400308e110d7277cbaf6eccc2a) )
+ ROM_LOAD16_BYTE( "272-c4.c4", 0x1000001, 0x800000, CRC(32d5e2e2) SHA1(2b5612017152afd7433aaf99951a084ef5ad6bf0) )
+ ROM_LOAD16_BYTE( "272-c5.c5", 0x2000000, 0x800000, CRC(6ce085bc) SHA1(0432b04a2265c649bba1bbd934dfb425c5d80fb1) )
+ ROM_LOAD16_BYTE( "272-c6.c6", 0x2000001, 0x800000, CRC(05c8dc8e) SHA1(da45c222893f25495a66bdb302f9b0b1de3c8ae0) )
+ ROM_LOAD16_BYTE( "272-c7.c7", 0x3000000, 0x800000, CRC(1417b742) SHA1(dfe35eb4bcd022d2f2dc544ccbbb77078f08c0aa) )
+ ROM_LOAD16_BYTE( "272-c8.c8", 0x3000001, 0x800000, CRC(d49773cd) SHA1(cd8cf3b762d381c1f8f12919579c84a7ef7efb3f) )
+ROM_END
+
+
+/* Some info about the 2nd AES release of Samurai Shodown 5 Special (samsh5sph):
+
+ The fixed carts have a small round neogeo sticker applied to the front side of the cart (top right near cart sticker).
+ SNK Playmore had authorized a recall of all Samurai Shodown V Special (Samurai Spirits 0 Special) home cartridges. This recall involved bug fixes
+ and the addition of fatalities. (The fatalities were originally removed at the last minute due to the Nagasaki incident, a murder caused by a child killing her classmate by knife.)
+ Bug fixes: Improvements on Voice, Back Ground Music, and Practice mode.
+ Fatalities: SNK PLAYMORE modified the game program by including the removed "Zetumei Ougi" in a modified version.
+ This new version does not show the complete fatalities, they are instead replaced by what SNK PLAYMORE refers to as "lessened fatalities".
+*/
+
+ROM_START( samsh5sph ) /* Encrypted Set */ /* AES VERSION, 2nd bugfix release */
+ /* Less censored */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "272-p1ca.p1", 0x000000, 0x400000, CRC(c30a08dd) SHA1(66864954017c841d7ca8490112c3aa7a71a4da70) )
+ ROM_LOAD16_WORD_SWAP( "272-p2ca.sp2", 0x400000, 0x400000, CRC(bd64a518) SHA1(aa259a168930f106377d680db444535411b3bce0) )
+ /* Correct chip labels unknown */
+
+ NEO_SFIX_MT_128K
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "272-m1.m1", CRC(adeebf40) SHA1(8cbd63dda3fff4de38060405bf70cd9308c9e66e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "272-v1.v1", 0x000000, 0x800000, CRC(76a94127) SHA1(c3affd7ff1eb02345cfb755962ec173a8ec34acd) )
+ ROM_LOAD( "272-v2.v2", 0x800000, 0x800000, CRC(4ba507f1) SHA1(728d139da3fe8a391fd8be4d24bb7fdd4bf9548a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "272-c1.c1", 0x0000000, 0x800000, CRC(4f97661a) SHA1(87f1721bae5ef16bc23c06b05e64686c396413df) )
+ ROM_LOAD16_BYTE( "272-c2.c2", 0x0000001, 0x800000, CRC(a3afda4f) SHA1(86b475fce0bc0aa04d34e31324e8c7c7c847df19) )
+ ROM_LOAD16_BYTE( "272-c3.c3", 0x1000000, 0x800000, CRC(8c3c7502) SHA1(6639020a8860d2400308e110d7277cbaf6eccc2a) )
+ ROM_LOAD16_BYTE( "272-c4.c4", 0x1000001, 0x800000, CRC(32d5e2e2) SHA1(2b5612017152afd7433aaf99951a084ef5ad6bf0) )
+ ROM_LOAD16_BYTE( "272-c5.c5", 0x2000000, 0x800000, CRC(6ce085bc) SHA1(0432b04a2265c649bba1bbd934dfb425c5d80fb1) )
+ ROM_LOAD16_BYTE( "272-c6.c6", 0x2000001, 0x800000, CRC(05c8dc8e) SHA1(da45c222893f25495a66bdb302f9b0b1de3c8ae0) )
+ ROM_LOAD16_BYTE( "272-c7.c7", 0x3000000, 0x800000, CRC(1417b742) SHA1(dfe35eb4bcd022d2f2dc544ccbbb77078f08c0aa) )
+ ROM_LOAD16_BYTE( "272-c8.c8", 0x3000001, 0x800000, CRC(d49773cd) SHA1(cd8cf3b762d381c1f8f12919579c84a7ef7efb3f) )
+ROM_END
+
+ROM_START( samsh5spho ) /* Encrypted Set */ /* AES VERSION, 1st release */
+ /* Censored */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "272-p1c.p1", 0x000000, 0x400000, CRC(9291794d) SHA1(66588ff9b00ffad6508b03423548984e28a3209d) )
+ ROM_LOAD16_WORD_SWAP( "272-p2c.sp2", 0x400000, 0x400000, CRC(fa1a7dd8) SHA1(62443dad76d6c1e18f515d7d4ef8e1295a4b7f1d) )
+
+ NEO_SFIX_MT_128K
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "272-m1.m1", CRC(adeebf40) SHA1(8cbd63dda3fff4de38060405bf70cd9308c9e66e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "272-v1.v1", 0x000000, 0x800000, CRC(76a94127) SHA1(c3affd7ff1eb02345cfb755962ec173a8ec34acd) )
+ ROM_LOAD( "272-v2.v2", 0x800000, 0x800000, CRC(4ba507f1) SHA1(728d139da3fe8a391fd8be4d24bb7fdd4bf9548a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "272-c1.c1", 0x0000000, 0x800000, CRC(4f97661a) SHA1(87f1721bae5ef16bc23c06b05e64686c396413df) )
+ ROM_LOAD16_BYTE( "272-c2.c2", 0x0000001, 0x800000, CRC(a3afda4f) SHA1(86b475fce0bc0aa04d34e31324e8c7c7c847df19) )
+ ROM_LOAD16_BYTE( "272-c3.c3", 0x1000000, 0x800000, CRC(8c3c7502) SHA1(6639020a8860d2400308e110d7277cbaf6eccc2a) )
+ ROM_LOAD16_BYTE( "272-c4.c4", 0x1000001, 0x800000, CRC(32d5e2e2) SHA1(2b5612017152afd7433aaf99951a084ef5ad6bf0) )
+ ROM_LOAD16_BYTE( "272-c5.c5", 0x2000000, 0x800000, CRC(6ce085bc) SHA1(0432b04a2265c649bba1bbd934dfb425c5d80fb1) )
+ ROM_LOAD16_BYTE( "272-c6.c6", 0x2000001, 0x800000, CRC(05c8dc8e) SHA1(da45c222893f25495a66bdb302f9b0b1de3c8ae0) )
+ ROM_LOAD16_BYTE( "272-c7.c7", 0x3000000, 0x800000, CRC(1417b742) SHA1(dfe35eb4bcd022d2f2dc544ccbbb77078f08c0aa) )
+ ROM_LOAD16_BYTE( "272-c8.c8", 0x3000001, 0x800000, CRC(d49773cd) SHA1(cd8cf3b762d381c1f8f12919579c84a7ef7efb3f) )
+ROM_END
+
+
+/*************************************
+ *
+ * BrezzaSoft games, licensed?
+ *
+ *************************************/
+
+/****************************************
+ B-J-02
+ . ???-????
+ MVS PROGV (2000.11.17) / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7050)
+****************************************/
+
+ROM_START( jockeygp ) /* MVS ONLY RELEASE */
+ /* Officially licensed? Cart has a holographic 'SNK' sticker applied */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "008-epr.p1", 0x000000, 0x100000, CRC(2fb7f388) SHA1(e3c9b03944b4c10cf5081caaf9c8be1f08c06493) )
+ /* P on eprom, correct chip label unknown */
+ ROM_FILL( 0x100000, 0x100000, 0xff )
+
+ NEO_SFIX_MT_128K
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "008-mg1.m1", CRC(d163c690) SHA1(1dfd04d20c5985037f07cd01000d0b04f3a8f4f4) )
+
+ ROM_REGION( 0x0200000, "ymsnd", 0 )
+ ROM_LOAD( "008-v1.v1", 0x000000, 0x200000, CRC(443eadba) SHA1(3def3c22f0e276bc4c2fc7ff70ce473c08b0d2df) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "008-c1.c1", 0x0000000, 0x800000, CRC(a9acbf18) SHA1(d55122c70cbe78c2679598dc07863e1d1d1a31df) )
+ ROM_LOAD16_BYTE( "008-c2.c2", 0x0000001, 0x800000, CRC(6289eef9) SHA1(a2ede77bb2468a2e1486d74745a22a5451026039) )
+ROM_END
+
+ROM_START( jockeygpa ) /* MVS ONLY RELEASE */
+ /* Officially licensed? Cart has a holographic 'SNK' sticker applied */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "008-epr_a.p1", 0x000000, 0x100000, CRC(b8f35532) SHA1(b46c96677f1bfe324b678112e9c614a20c550d51) )
+ /* P on eprom, correct chip label unknown */
+
+ NEO_SFIX_MT_128K
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "008-mg1.m1", CRC(d163c690) SHA1(1dfd04d20c5985037f07cd01000d0b04f3a8f4f4) )
+
+ ROM_REGION( 0x0200000, "ymsnd", 0 )
+ ROM_LOAD( "008-v1.v1", 0x000000, 0x200000, CRC(443eadba) SHA1(3def3c22f0e276bc4c2fc7ff70ce473c08b0d2df) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "008-c1.c1", 0x0000000, 0x800000, CRC(a9acbf18) SHA1(d55122c70cbe78c2679598dc07863e1d1d1a31df) )
+ ROM_LOAD16_BYTE( "008-c2.c2", 0x0000001, 0x800000, CRC(6289eef9) SHA1(a2ede77bb2468a2e1486d74745a22a5451026039) )
+ROM_END
+
+/****************************************
+ B-V-01
+ . ???-????
+ MVS PROGV (2000.11.17) / MVS CHAV (2000.10.26)
+****************************************/
+
+ROM_START( vliner ) /* MVS ONLY RELEASE */
+ /* Officially licensed? Cart has a holographic 'SNK' sticker applied */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "epr.p1", 0x000000, 0x080000, CRC(72a2c043) SHA1(b34bcc10ff33e4465126a6865fe8bf6b6a3d6cee) )
+ /* P on eprom, correct chip label unknown */
+
+ NEO_SFIX_128K( "s-1.s1", CRC(972d8c31) SHA1(41f09ef28a3791668ea304c74b8b06c117a50e9a) )
+
+ NEO_BIOS_AUDIO_64K( "m-1.m1", CRC(9b92b7d1) SHA1(2c9b777feb9a8e43fa1bd942aba5afe3b5427d94) )
+
+ ROM_REGION( 0x200000, "ymsnd", ROMREGION_ERASE00 )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "c-1.c1", 0x000000, 0x80000, CRC(5118f7c0) SHA1(b6fb6e9cbb660580d98e00780ebf248c0995145a) )
+ ROM_LOAD16_BYTE( "c-2.c2", 0x000001, 0x80000, CRC(efe9b33e) SHA1(910c651aadce9bf59e51c338ceef62287756d2e8) )
+ROM_END
+
+ROM_START( vlinero ) /* MVS ONLY RELEASE */
+ /* Officially licensed? Cart has a holographic 'SNK' sticker applied */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "epr_54.p1", 0x000000, 0x080000, CRC(172efc18) SHA1(8ca739f8780a9e6fa19ac2c3e931d75871603f58) )
+ /* P on eprom, correct chip label unknown */
+
+ NEO_SFIX_128K( "s-1.s1", CRC(972d8c31) SHA1(41f09ef28a3791668ea304c74b8b06c117a50e9a) )
+
+ NEO_BIOS_AUDIO_64K( "m-1.m1", CRC(9b92b7d1) SHA1(2c9b777feb9a8e43fa1bd942aba5afe3b5427d94) )
+
+ ROM_REGION( 0x200000, "ymsnd", ROMREGION_ERASE00 )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "c-1.c1", 0x000000, 0x80000, CRC(5118f7c0) SHA1(b6fb6e9cbb660580d98e00780ebf248c0995145a) )
+ ROM_LOAD16_BYTE( "c-2.c2", 0x000001, 0x80000, CRC(efe9b33e) SHA1(910c651aadce9bf59e51c338ceef62287756d2e8) )
+ROM_END
+
+
+/*************************************
+ *
+ * Vektorlogic games, unlicensed
+ *
+ *************************************/
+
+/****************************************
+ NSBP V1.0U
+ PROGRAM CART REVISION 2.0 COPYRIGHT VEKTORLOGIC (C) 2004 / GRAPHICS CART REVISION 1.2 COPYRIGHT VEKTORLOGIC (C) 2004
+****************************************/
+
+// this doesn't boot, protection like kof98?
+// you can force it to boot with a simple debugger trick, but then it resets when starting a game
+ROM_START( sbp ) /* Unlicensed, no official game ID # */ /* MVS ONLY VERSION */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "001-003-02a.u2", 0x000000, 0x080000, CRC(d054d264) SHA1(d1b4bc626d000e0679def0545940fa75035921ab) )
+
+ NEO_SFIX_MT_128K
+ ROM_LOAD( "001-003-02b.u2", 0x000000, 0x20000, CRC(2fd04b2a) SHA1(1acb446704ab56d0a33df7c48855aa8d00fd5a3c) )
+ ROM_IGNORE(0x20000)
+ ROM_IGNORE(0x20000)
+ ROM_IGNORE(0x20000)
+
+ NEO_BIOS_AUDIO_512K( "001-003-01b.u1", CRC(7b1f86f7) SHA1(15b6af7f9fbd0f1f6a1ecd912200ca8d0af2da2a) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "001-003-12a.u12", 0x000000, 0x400000, CRC(c96723b9) SHA1(52eec88550781d45f84efbf9b905d7e7912e96fa) )
+ ROM_LOAD( "001-003-13a.u13", 0x400000, 0x400000, CRC(08c339a5) SHA1(badc9510ae243ef2a7877977eb36efa81b1489fe) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "001-003-03b.u3", 0x000000, 0x200000, CRC(44791317) SHA1(9e773eb9aae5ee767213bd17348ff8a312e9cb16) )
+ ROM_LOAD16_BYTE( "001-003-04b.u4", 0x000001, 0x200000, CRC(a3a1c0df) SHA1(3b1e5be673f7cbb04199a805b0e0de93dad8cb8c) )
+ROM_END
+
+
+/*************************************
+ *
+ * Jamma PCB sets
+ *
+ *************************************/
+
+/****************************************
+ ID-2680
+ . MV-0 ????
+ NEO-MVH MVOBR 2003.8.4
+****************************************/
+
+ROM_START( ms5pcb ) /* Encrypted Set, JAMMA PCB */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD32_WORD_SWAP( "268-p1r.p1", 0x000000, 0x400000, CRC(d0466792) SHA1(880819933d997fab398f91061e9dbccb959ae8a1) )
+ ROM_LOAD32_WORD_SWAP( "268-p2r.p2", 0x000002, 0x400000, CRC(fbf6b61e) SHA1(9ec743d5988b5e3183f37f8edf45c72a8c0c893e) )
+
+ NEO_SFIX_MT_128K
+
+ ROM_REGION16_BE( 0x80000, "mainbios", 0 )
+ /* this contains both an ASIA and JAPAN bios, HARDDIP3 on the PCB selects which to use */
+ ROM_LOAD16_WORD_SWAP( "sp-4x.sp1", 0x00000, 0x80000, CRC(b4590283) SHA1(47047ed5b6062babc0a0bebcc30e4b3f021e115a) )
+
+ /* Encrypted */
+ ROM_REGION( 0x80000, "audiocrypt", 0 )
+ ROM_LOAD( "268-m1.m1", 0x00000, 0x80000, CRC(4a5a6e0e) SHA1(df0f660f2465e1db7be5adfcaf5e88ad61a74a42) )
+ ROM_REGION( 0x90000, "audiocpu", ROMREGION_ERASEFF )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "268-v1.v1", 0x000000, 0x1000000, CRC(8458afe5) SHA1(62b4c6e7db763e9ff2697bbcdb43dc5a56b48c68) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD32_WORD( "268-c1.c1", 0x0000000, 0x1000000, BAD_DUMP CRC(802042e8) SHA1(ff028b65f60f0b51b255a380cc47ec19fdc0c0cf) )
+ ROM_LOAD32_WORD( "268-c2.c2", 0x0000002, 0x1000000, BAD_DUMP CRC(3b89fb9f) SHA1(cbc0729aae961f683b105ec3e1cda58b3f985abc) )
+ ROM_LOAD32_WORD( "268-c3.c3", 0x2000000, 0x1000000, BAD_DUMP CRC(0f3f59e3) SHA1(8cc751dc7d4e94864a9ce3346f23b8f011082fcc) )
+ ROM_LOAD32_WORD( "268-c4.c4", 0x2000002, 0x1000000, BAD_DUMP CRC(3ad8435a) SHA1(b333c8993c9b4c4ea59450ad0a3560e0b28056bc) )
+ROM_END
+
+/****************************************
+ ID-2690
+ . MV-0 ????
+ NEO-MVH MVO 2003.6.5
+****************************************/
+
+ROM_START( svcpcb ) /* Encrypted Set, JAMMA PCB */
+ ROM_REGION( 0x2000000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269-p1.p1", 0x000000, 0x2000000, CRC(432cfdfc) SHA1(19b40d32188a8bace6d2d570c6cf3d2f1e31e379) )
+
+ NEO_SFIX_MT_512K
+
+ ROM_REGION16_BE( 0x80000, "mainbios", 0 )
+ /* this contains both an ASIA and JAPAN bios, HARDDIP3 on the PCB selects which to use */
+ ROM_LOAD16_WORD_SWAP( "sp-4x.sp1", 0x00000, 0x80000, CRC(b4590283) SHA1(47047ed5b6062babc0a0bebcc30e4b3f021e115a) )
+
+ /* Encrypted */
+ ROM_REGION( 0x80000, "audiocrypt", 0 )
+ ROM_LOAD( "269-m1.m1", 0x00000, 0x80000, CRC(f6819d00) SHA1(d3bbe09df502464f104e53501708ac6e2c1832c6) )
+ ROM_REGION( 0x90000, "audiocpu", ROMREGION_ERASEFF )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "269-v1.v1", 0x000000, 0x800000, CRC(c659b34c) SHA1(1931e8111ef43946f68699f8707334c96f753a1e) )
+ ROM_LOAD( "269-v2.v2", 0x800000, 0x800000, CRC(dd903835) SHA1(e58d38950a7a8697bb22a1cc7a371ae6664ae8f9) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD( "269-c1.c1", 0x0000000, 0x2000000, CRC(1b608f9c) SHA1(4e70ad182da2ca18815bd3936efb04a06ebce01e) )
+ ROM_LOAD( "269-c2.c1", 0x2000000, 0x2000000, CRC(5a95f294) SHA1(6123cc7b20b494076185d27c2ffea910e124b195) )
+ROM_END
+
+/****************************************
+ ID-2690
+ . MV-0 ????
+ NEO-MVH MVOB 2003.7.9
+****************************************/
+
+ROM_START( svcpcba ) /* Encrypted Set, JAMMA PCB */
+ /* alt PCB version, this one has the same program roms as the MVS set, and different GFX / Sound rom arrangements */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD32_WORD_SWAP( "269-p1a.p1", 0x000000, 0x400000, CRC(38e2005e) SHA1(1b902905916a30969282f1399a756e32ff069097) )
+ ROM_LOAD32_WORD_SWAP( "269-p2a.p1", 0x000002, 0x400000, CRC(6d13797c) SHA1(3cb71a95cea6b006b44cac0f547df88aec0007b7) )
+
+ NEO_SFIX_MT_512K
+
+ ROM_REGION16_BE( 0x80000, "mainbios", 0 )
+ /* this contains both an ASIA and JAPAN bios, HARDDIP3 on the PCB selects which to use */
+ ROM_LOAD16_WORD_SWAP( "sp-4x.sp1", 0x00000, 0x80000, CRC(b4590283) SHA1(47047ed5b6062babc0a0bebcc30e4b3f021e115a) )
+
+ /* Encrypted */
+ ROM_REGION( 0x80000, "audiocrypt", 0 )
+ ROM_LOAD( "269-m1.m1", 0x00000, 0x80000, CRC(f6819d00) SHA1(d3bbe09df502464f104e53501708ac6e2c1832c6) )
+ ROM_REGION( 0x90000, "audiocpu", ROMREGION_ERASEFF )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "269-v1a.v1", 0x000000, 0x1000000, CRC(a6af4753) SHA1(ec4f61a526b707a7faec4653b773beb3bf3a17ba) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD32_WORD( "269-c1a.c1", 0x0000000, 0x1000000, CRC(e64d2b0c) SHA1(0714198c400e5c273181e4c6f906b49e35fef75d) )
+ ROM_LOAD32_WORD( "269-c2a.c2", 0x0000002, 0x1000000, CRC(249089c2) SHA1(1c0ca19e330efe1a74b2d35a1a9a8d61481e16a9) )
+ ROM_LOAD32_WORD( "269-c3a.c3", 0x2000000, 0x1000000, CRC(d32f2fab) SHA1(273d58cb3c9075075b1ca39a3b247a2cd545fbe7) )
+ ROM_LOAD32_WORD( "269-c4a.c4", 0x2000002, 0x1000000, CRC(bf77e878) SHA1(e6e76f8eed0d04ee9ad39bf38ce305930b10e2c1) )
+ROM_END
+
+/****************************************
+ ID-2710
+ . MV-0 ????
+ NEO-MVH MVOC 2003.11.3
+****************************************/
+
+ROM_START( kf2k3pcb ) /* Encrypted Set, JAMMA PCB */
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD32_WORD_SWAP( "271-p1.p1", 0x000000, 0x400000, CRC(b9da070c) SHA1(1a26325af142a4dd221c336061761468598c4634) )
+ ROM_LOAD32_WORD_SWAP( "271-p2.p2", 0x000002, 0x400000, CRC(da3118c4) SHA1(582e4f44f03276adecb7b2848d3b96bf6da57f1e) )
+ ROM_LOAD16_WORD_SWAP( "271-p3.p3", 0x800000, 0x100000, CRC(5cefd0d2) SHA1(cddc3164629fed4b6f715e12b109ad35d1009355) )
+
+ NEO_SFIX_MT(0x100000)
+
+ ROM_REGION16_BE( 0x80000, "mainbios", 0 )
+ ROM_LOAD16_WORD_SWAP( "spj.sp1", 0x00000, 0x080000, CRC(148dd727) SHA1(2cf592a16c7157de02a989675d47965f2b3a44dd) ) // encrypted
+
+ /* Encrypted */
+ ROM_REGION( 0x80000, "audiocrypt", 0 )
+ ROM_LOAD( "271-m1.m1", 0x00000, 0x80000, CRC(d6bcf2bc) SHA1(df78bc95990eb8e8f3638dde6e1876354df7fe84) )
+ ROM_REGION( 0x90000, "audiocpu", ROMREGION_ERASEFF )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "271-v1.v1", 0x000000, 0x1000000, CRC(1d96154b) SHA1(1d4e262b0d30cee79a4edc83bb9706023c736668) )
+
+ ROM_REGION( 0x6000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD32_WORD( "271-c1.c1", 0x0000000, 0x1000000, CRC(f5ebb327) SHA1(e4f799a54b09adcca13b1b0cf95971a1f4291b61) )
+ ROM_LOAD32_WORD( "271-c2.c2", 0x0000002, 0x1000000, CRC(2be21620) SHA1(872c658f53bbc558e90f18d5db9cbaa82e748a6a) )
+ ROM_LOAD32_WORD( "271-c3.c3", 0x2000000, 0x1000000, CRC(ddded4ff) SHA1(ff7b356125bc9e6637b164f5e81b13eabeb8d804) )
+ ROM_LOAD32_WORD( "271-c4.c4", 0x2000002, 0x1000000, CRC(d85521e6) SHA1(62278fa8690972ed32aca07a4f7f97e7203d9f3a) )
+ ROM_LOAD32_WORD( "271-c5.c5", 0x4000000, 0x1000000, CRC(18aa3540) SHA1(15e0a8c4e0927b1f7eb9bee8f532acea6818d5eb) )
+ ROM_LOAD32_WORD( "271-c6.c6", 0x4000002, 0x1000000, CRC(1c40de87) SHA1(8d6425aed43ff6a96c88194e203df6a783286373) )
+ROM_END
+
+
+
+/*************************************
+ *
+ * Bootleg sets
+ *
+ *************************************/
+
+/*
+ About supported sets:
+
+ For many bootleg sets, only P's (program rom), M1 (sound driver) and S1 (text layer) roms were dumped.
+ For these sets it is assumed that the original V's (sound data) and C's (gfx data) are used.
+ This requires verification.
+
+*/
+
+
+/* Zintrick bootleg */
+
+/* This Zintrick set appears to be a bootleg made from the CD version, not a genuine
+ prototype the code is based on that of the NeoCD version with some minor patches,
+ for example the ADK SAMPLE TEST text that appears on the screen is actually a hacked
+ PROG LOAD ERROR message. The set is supported in order to distinguish the hacks from
+ a real prototype should one turn up. */
+
+ROM_START( zintrckb )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "zin-p1.bin", 0x000000, 0x100000, CRC(06c8fca7) SHA1(b7bf38965c3d0db4d7a9684d14cac94a45b4a45b))
+
+ NEO_SFIX_128K( "zin-s1.bin", CRC(a7ab0e81) SHA1(f0649819b96cea79b05411e0b15c8edc677d79ba) )
+
+ NEO_BIOS_AUDIO_128K( "zin-m1.bin", CRC(fd9627ca) SHA1(b640c1f1ff466f734bb1cb5d7b589cb7e8a55346) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "zin-v1.bin", 0x000000, 0x200000, CRC(c09f74f1) SHA1(d0b56a780a6eba85ff092240b1f1cc6718f17c21) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "zin-c1.bin", 0x000000, 0x200000, CRC(76aee189) SHA1(ad6929804c5b9a59aa609e6baebc6aa37e858a47) )
+ ROM_LOAD16_BYTE( "zin-c2.bin", 0x000001, 0x200000, CRC(844ed4b3) SHA1(fb7cd057bdc6cbe8b78097dd124118bae7402256) )
+ROM_END
+
+/* The King of Fighters '97 bootlegs */
+
+ROM_START( kof97pls )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "kf97-p1p.bin", 0x000000, 0x100000, CRC(c01fda46) SHA1(bc6402f5082efc80a8936364c657165f19b49415) )
+ ROM_LOAD16_WORD_SWAP( "kf97-p2p.bin", 0x100000, 0x400000, CRC(5502b020) SHA1(37c48198d8b3798910a44075782cd1a20b687b4a) )
+
+ NEO_SFIX_128K( "kf97-s1p.bin", CRC(73254270) SHA1(8d06305f9d8890da1327356272b88bdd0dc089f5) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "232-c1.c1", 0x0000000, 0x800000, CRC(5f8bf0a1) SHA1(e8b63bbc814de171fd18c5864a7fc639970c1ecf) )
+ ROM_LOAD16_BYTE( "232-c2.c2", 0x0000001, 0x800000, CRC(e4d45c81) SHA1(fdb2b9326362e27b1c7a5beb977e0bc537488186) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "232-c5.c5", 0x2000000, 0x400000, CRC(34fc4e51) SHA1(b39c65f27873f71a6f5a5d1d04e5435f874472ee) )
+ ROM_LOAD16_BYTE( "232-c6.c6", 0x2000001, 0x400000, CRC(4ff4d47b) SHA1(4d5689ede24a5fe4330bd85d4d3f4eb2795308bb) )
+ROM_END
+
+ROM_START( kof97oro )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "orochi-p1.bin", 0x0000000, 0x100000, CRC(6dcb2946) SHA1(3ccb3fdf3d32a75c7fcfefff5db1f3c75054731f) )
+ ROM_LOAD16_WORD_SWAP( "orochi-p21.bin", 0x0200000, 0x100000, CRC(6e1c4d8c) SHA1(f514638a599a8a582c5f4df72f6a957bab776b7e) )
+ ROM_CONTINUE( 0x100000, 0x100000 )
+ ROM_LOAD16_WORD_SWAP( "orochi-p29.bin", 0x0400000, 0x100000, CRC(4c7c0221) SHA1(fdd05927743cb12210b74768155bb3f59bff01b5) )
+ ROM_CONTINUE( 0x300000, 0x100000 )
+
+ NEO_SFIX_128K( "orochi-s1.bin", CRC(4ee2149a) SHA1(180a1a90021031eac1a643b769d9cdeda56518f5) )
+
+ NEO_BIOS_AUDIO_128K( "orochi-m1.bin", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "orochi-v1.bin", 0x000000, 0x0400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "orochi-v2.bin", 0x400000, 0x0400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "orochi-v3.bin", 0x800000, 0x0400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ // The C1 and C2 here are reconstructed but very likely to be correct.
+ ROM_LOAD16_BYTE( "orochi-c1.bin", 0x0000000, 0x1000000, BAD_DUMP CRC(f13e841c) SHA1(e24b3fb5f7e1c1f4752cad382c264f5f93e737a0) )
+ ROM_LOAD16_BYTE( "orochi-c2.bin", 0x0000001, 0x1000000, BAD_DUMP CRC(2db1f6d3) SHA1(13d957c04bd69f0db140e4633c39db4a9e44eab8) )
+ ROM_LOAD16_BYTE( "orochi-c51.bin", 0x2000000, 0x0200000, CRC(a90340cb) SHA1(97eaa89f0e860e2c591ca3a995fd910d8116347d) )
+ ROM_LOAD16_BYTE( "orochi-c61.bin", 0x2000001, 0x0200000, CRC(188e351a) SHA1(ab724250bc07ace0873fc825b798ace934260988) )
+ ROM_LOAD16_BYTE( "orochi-c52.bin", 0x2400000, 0x0200000, CRC(d4eec50a) SHA1(0930cce5346fbbd5c1524f9148d0577cbe634420) )
+ ROM_LOAD16_BYTE( "orochi-c62.bin", 0x2400001, 0x0200000, CRC(031b1ad5) SHA1(d47b3452953b553348be0a55473b863ce2872f6e) )
+ROM_END
+
+ROM_START( kog )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "5232-p1.bin", 0x000000, 0x200000, CRC(d2413ec6) SHA1(c0bf409d1e714cba5fdc6f79e4c2aec805316634) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x200000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "5232-s1.bin", CRC(0bef69da) SHA1(80918586e694dce35c4dba796eb18abf6a070ebb) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "5232-c1a.bin", 0x0000000, 0x800000, CRC(4eab9b0a) SHA1(a6f6b755215a3f41474e0a76b5463303a522c2d3) )
+ ROM_LOAD16_BYTE( "5232-c2a.bin", 0x0000001, 0x800000, CRC(697f8fd0) SHA1(5784464c2357ccef8e6e79b6298843fc3d13b39c) )
+ ROM_LOAD16_BYTE( "5232-c1b.bin", 0x1000000, 0x800000, CRC(1143fdf3) SHA1(9dc5fe9a3b7599380db62095880e2d6f237a41bd) )
+ ROM_LOAD16_BYTE( "5232-c2b.bin", 0x1000001, 0x800000, CRC(ea82cf8f) SHA1(3d9ab64b69cecd6b3950839ac2c6d151ad66dcf8) )
+ ROM_LOAD16_BYTE( "5232-c3.bin", 0x2000000, 0x400000, CRC(abd1be07) SHA1(857eb68bbee4538770bbfa77aaa540d61ab0abcd) )
+ ROM_LOAD16_BYTE( "5232-c4.bin", 0x2000001, 0x400000, CRC(d2bd967b) SHA1(c494e0a98e127d37ca360a28accc167fa50fb626) )
+ROM_END
+
+/* Shock Troopers - 2nd Squad bootleg */
+
+ROM_START( lans2004 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "lnsq-p1.bin", 0x000000, 0x200000, CRC(b40a879a) SHA1(379f3d44b0bae430b32157fd5f4018d77b243c58) )
+ ROM_LOAD16_WORD_SWAP( "lnsq-p21.bin", 0x200000, 0x200000, CRC(ecdb2d42) SHA1(0d930cd369dfbcab7778b144355e5f70874aa324) )
+ ROM_LOAD16_WORD_SWAP( "lnsq-p22.bin", 0x400000, 0x200000, CRC(fac5e2e7) SHA1(5cce7226c137da80c969df00e1cda41ef9c5082c) )
+
+ NEO_SFIX_128K( "lnsq-s1.bin", CRC(39e82897) SHA1(24a8c94dd7e70ecde8f90ea17f75b6b5d065704f) )
+
+ NEO_BIOS_AUDIO_128K( "246-m1.bin", CRC(d0604ad1) SHA1(fae3cd52a177eadd5f5775ace957cc0f8301e65d) )
+
+ ROM_REGION( 0xA00000, "ymsnd", 0 )
+ ROM_LOAD( "lnsq-v1.bin", 0x000000, 0x400000, CRC(4408ebc3) SHA1(e3f4d8a7e243a8cf48e97d91bbfec7829c0d9404) )
+ ROM_LOAD( "lnsq-v2.bin", 0x400000, 0x400000, CRC(3d953975) SHA1(6a4ab02ab3d4416a65343cf16815007cb273f19b) )
+ ROM_LOAD( "lnsq-v3.bin", 0x800000, 0x200000, CRC(437d1d8e) SHA1(95e015c21707b53ed7223eaa19f6cdcfb4d94f0c) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "lnsq-c1.bin", 0x0000000, 0x800000, CRC(b83de59f) SHA1(8cc060f9a57ab7d4238543b0bce5f5cd1d271d4f) )
+ ROM_LOAD16_BYTE( "lnsq-c2.bin", 0x0000001, 0x800000, CRC(e08969fd) SHA1(c192639d023cdad64a8f53dbcda02aa8cfb4168e) )
+ ROM_LOAD16_BYTE( "lnsq-c3.bin", 0x1000000, 0x800000, CRC(013f2cda) SHA1(6261111ce69dc23fbf97241131e5a6a49355d18c) )
+ ROM_LOAD16_BYTE( "lnsq-c4.bin", 0x1000001, 0x800000, CRC(d8c3a758) SHA1(d19ca3be06f9fb0cb1933b1eb3da318524c3145d) )
+ ROM_LOAD16_BYTE( "lnsq-c5.bin", 0x2000000, 0x800000, CRC(75500b82) SHA1(06d2afe94ea3eb3c4e523f593b8e709dd7c284a3) )
+ ROM_LOAD16_BYTE( "lnsq-c6.bin", 0x2000001, 0x800000, CRC(670ac13b) SHA1(f448a144caae51b69ea19e1f43940db135d1164a) )
+ROM_END
+
+/* Garou - Mark of the Wolves bootleg */
+
+ROM_START( garoubl ) /* bootleg of garoup */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "garou-p1.bin", 0x000000, 0x100000, CRC(fd446d59) SHA1(e37484673a935b2af76c84cd26977c751c0f8cff) )
+ ROM_LOAD16_WORD_SWAP( "garou-p2.bin", 0x100000, 0x400000, CRC(3fb10a84) SHA1(4e4a4f4cd7f0ad2520c938c64c8910e6f8805eaf) )
+
+ NEO_SFIX_128K( "garou-s1.bin", CRC(df720e33) SHA1(58d05002d4851682bd626241fa7b70f78f6f3bc8) )
+
+ NEO_BIOS_AUDIO_512K( "garou-m1.bin", CRC(7c51d002) SHA1(01ffba6cbc8da07804f7b21d8c71c39d64a1a4e2) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "garou-v1.bin", 0x000000, 0x400000, CRC(98d736e4) SHA1(3edda9a1d45b0e38a85156d24fc8ff2f0011239b) )
+ ROM_LOAD( "garou-v2.bin", 0x400000, 0x400000, CRC(eb43c03f) SHA1(83c9c168b154e60a64f1033004b2d33e218bbb8b) )
+ ROM_LOAD( "garou-v3.bin", 0x800000, 0x400000, CRC(10a0f814) SHA1(e86def80d6fb2a38ebc9f3338d22f28c15ce85da) )
+ ROM_LOAD( "garou-v4.bin", 0xc00000, 0x400000, CRC(8918fdd3) SHA1(60ea2104a0f993341124728d8fde0e8e937c55ef) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "garou-c1.bin", 0x0000000, 0x1000000, CRC(e2ac83fa) SHA1(186f88a85d80efbb0371bd42cca152b6b59817fb) )
+ ROM_LOAD16_BYTE( "garou-c2.bin", 0x0000001, 0x1000000, CRC(7c344b24) SHA1(f8af62a917e0ce2bf8ae4f17736fdd84d55d0788) )
+ ROM_LOAD16_BYTE( "garou-c3.bin", 0x2000000, 0x1000000, CRC(d3aec5a6) SHA1(c1a584909a8a1519f676aa49351742b87c18276d) )
+ ROM_LOAD16_BYTE( "garou-c4.bin", 0x2000001, 0x1000000, CRC(e02a242d) SHA1(8a73826d14880303a7bea2a903e842c733178aca) )
+ROM_END
+
+/* Metal Slug 3 bootleg */
+
+ROM_START( mslug3b6 ) /* This "Metal Slug 6" is a hack/bootleg of Metal Slug 3, the real Metal Slug 6 is on Atomiswave Hardware */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "299-p1.bin", 0x000000, 0x200000, CRC(5f2fe228) SHA1(747775a2dfc0da87ad2ddd4f57ce5b2522f23fa5) )
+ ROM_LOAD16_WORD_SWAP( "299-p2.bin", 0x100000, 0x400000, CRC(193fa835) SHA1(fb1f26db7998b0bb6b1c8b92500c1596ec5dfc71) )
+
+ NEO_SFIX_128K( "299-s1.bin", CRC(6f8b9635) SHA1(86b0c8c0ccac913c6192ed6a96c35d4e1a5e8061) )
+
+ NEO_BIOS_AUDIO_512K( "256-m1.m1", CRC(eaeec116) SHA1(54419dbb21edc8c4b37eaac2e7ad9496d2de037a) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "256-v1.v1", 0x000000, 0x400000, CRC(f2690241) SHA1(fd56babc1934d10e0d27c32f032f9edda7ca8ce9) )
+ ROM_LOAD( "256-v2.v2", 0x400000, 0x400000, CRC(7e2a10bd) SHA1(0d587fb9f64cba0315ce2d8a03e2b8fe34936dff) )
+ ROM_LOAD( "256-v3.v3", 0x800000, 0x400000, CRC(0eaec17c) SHA1(c3ed613cc6993edd6fc0d62a90bcd85de8e21915) )
+ ROM_LOAD( "256-v4.v4", 0xc00000, 0x400000, CRC(9b4b22d4) SHA1(9764fbf8453e52f80aa97a46fb9cf5937ef15a31) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "256-c1.c1", 0x0000000, 0x800000, CRC(5a79c34e) SHA1(b8aa51fa50935cae62ab3d125b723ab888691e60) )
+ ROM_LOAD16_BYTE( "256-c2.c2", 0x0000001, 0x800000, CRC(944c362c) SHA1(3843ab300f956280475469caee70135658f67089) )
+ ROM_LOAD16_BYTE( "256-c3.c3", 0x1000000, 0x800000, CRC(6e69d36f) SHA1(94e8cf42e999114b4bd8b30e0aa2f365578c4c9a) )
+ ROM_LOAD16_BYTE( "256-c4.c4", 0x1000001, 0x800000, CRC(b755b4eb) SHA1(804700a0966a48f130c434ede3f970792ea74fa5) )
+ ROM_LOAD16_BYTE( "256-c5.c5", 0x2000000, 0x800000, CRC(7aacab47) SHA1(312c1c9846175fe1a3cad51d5ae230cf674fc93d) )
+ ROM_LOAD16_BYTE( "256-c6.c6", 0x2000001, 0x800000, CRC(c698fd5d) SHA1(16818883b06849ba2f8d61bdd5e21aaf99bd8408) )
+ ROM_LOAD16_BYTE( "256-c7.c7", 0x3000000, 0x800000, CRC(cfceddd2) SHA1(7def666adf8bd1703f40c61f182fc040b6362dc9) )
+ ROM_LOAD16_BYTE( "256-c8.c8", 0x3000001, 0x800000, CRC(4d9be34c) SHA1(a737bdfa2b815aea7067e7af2636e83a9409c414) )
+ROM_END
+
+/* Nightmare in the Dark bootleg */
+
+ROM_START( nitdbl )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "nitd-p1.bin", 0x000000, 0x080000, CRC(1a05bd1b) SHA1(7bbddef842d50b0778711063af695b168a76ff61) )
+
+ NEO_SFIX_128K( "nitd-s1.bin", CRC(dd3bf47c) SHA1(881271caee6508b8be51bf1b59c8f1e58e08e551) )
+
+ /* Bootleg m1 is 128k, data is identical */
+ NEO_BIOS_AUDIO_512K( "260-m1.m1", CRC(6407c5e5) SHA1(d273e154cc905b63205a17a1a6d419cac3485a92) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "nitd-v1.bin", 0x000000, 0x200000, CRC(79008868) SHA1(90bd6aaefd37341297ab1f4ae7246e52facd87d0) )
+ ROM_LOAD( "nitd-v2.bin", 0x200000, 0x200000, CRC(728558f9) SHA1(309aa7c933c199b2e540a601b363e7af8744fe00) )
+
+ ROM_REGION( 0x800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "nitd-c1.bin", 0x000000, 0x200000, CRC(b4353190) SHA1(90d5352e243a05f5c2be4fa7475667bb56e78016) )
+ ROM_LOAD16_BYTE( "nitd-c2.bin", 0x000001, 0x200000, CRC(6e27511f) SHA1(1fc5cf7786ad0f0bc7b1623acabe605ad04af3c1) )
+ ROM_LOAD16_BYTE( "nitd-c3.bin", 0x400000, 0x200000, CRC(472cf075) SHA1(7cdd25019e37a3d127e68a4179c051881df19afa) )
+ ROM_LOAD16_BYTE( "nitd-c4.bin", 0x400001, 0x200000, CRC(4c3926e6) SHA1(7fc54a9886dbef911f7b226e3cd20081c535e989) )
+ROM_END
+
+/* The King of Fighters 2001 bootlegs */
+
+ROM_START( cthd2003 ) /* Protected hack/bootleg of kof2001 Phenixsoft */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "5003-p1.bin", 0x000000, 0x100000, CRC(bb7602c1) SHA1(abf329a40f34c88f7325b255e3bc090db1edaca4) )
+ ROM_LOAD16_WORD_SWAP( "5003-p2.bin", 0x100000, 0x400000, CRC(adc1c22b) SHA1(271e0629989257a0d21d280c05df53df259414b1) )
+
+ NEO_SFIX_128K( "5003-s1.bin", CRC(5ba29aab) SHA1(e7ea67268a10243693bff722e6fd2276ca540acf) )
+
+ NEO_BIOS_AUDIO_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) )
+
+ /* sound roms are identical to kof2001 */
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) )
+ ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) )
+ ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) )
+ ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) )
+ ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) )
+ ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) )
+ ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) )
+ ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) )
+ROM_END
+
+ROM_START( ct2k3sp ) /* Protected hack/bootleg of kof2001 Phenixsoft */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "5003-p1sp.bin", 0x000000, 0x100000, CRC(ab5c4de0) SHA1(ca9a6bfd4c32d791ecabb34ccbf2cbf0e84f97d5) )
+ ROM_LOAD16_WORD_SWAP( "5003-p2.bin", 0x100000, 0x400000, CRC(adc1c22b) SHA1(271e0629989257a0d21d280c05df53df259414b1) )
+
+ NEO_SFIX( 0x40000, "5003-s1sp.bin", CRC(6c355ab4) SHA1(71ac2bcd3dbda8402baecc56dabc2297b148a900) )
+
+ NEO_BIOS_AUDIO_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) )
+
+ /* sound roms are identical to kof2001 */
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) )
+ ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) )
+ ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) )
+ ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) )
+ ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) )
+ ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) )
+ ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) )
+ ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) )
+ROM_END
+
+ROM_START( ct2k3sa ) /* Protected hack/bootleg of kof2001 Phenixsoft, alternate version */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "5003-p1sa.bin", 0x000000, 0x100000, CRC(013a509d) SHA1(c61c9b777e6e062b5f4ad87cdb78e9ca05e9bfb9) )
+ ROM_LOAD16_WORD_SWAP( "5003-p2.bin", 0x100000, 0x400000, CRC(adc1c22b) SHA1(271e0629989257a0d21d280c05df53df259414b1) )
+
+ NEO_SFIX_128K( "5003-s1sa.bin", CRC(4e1f7eae) SHA1(3302ad290804272447ccd2e8edd3ce968f043db1) )
+ /* S1 needs redump, correct? */
+
+ NEO_BIOS_AUDIO_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) )
+
+ /* Original set has 2x64 mbit sound roms */
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) )
+ ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) )
+ ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) )
+ ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) )
+ ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) )
+ ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) )
+ ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) )
+ ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) )
+ROM_END
+
+/* Metal Slug 4 bootleg */
+
+ROM_START( ms4plus )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "ms4-p1p.bin", 0x000000, 0x100000, CRC(806a6e04) SHA1(df503772d607271ea51285154c9fd68e18b143ce) )
+ ROM_LOAD16_WORD_SWAP( "263-p2.sp2", 0x100000, 0x400000, CRC(fdb7aed8) SHA1(dbeaec38f44e58ffedba99e70fa1439c2bf0dfa3) )
+
+ NEO_SFIX_128K( "ms4-s1p.bin", CRC(07ff87ce) SHA1(96ddb439de2a26bf9869015d7fb19129d40f3fd9) )
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_128K( "263-m1.m1", CRC(46ac8228) SHA1(5aeea221050c98e4bb0f16489ce772bf1c80f787) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "263-v1.v1", 0x000000, 0x800000, CRC(01e9b9cd) SHA1(0b045c2999449f7dab5ae8a42e957d5b6650431e) )
+ ROM_LOAD( "263-v2.v2", 0x800000, 0x800000, CRC(4ab2bf81) SHA1(77ccfa48f7e3daddef5fe5229a0093eb2f803742) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "263-c1.c1", 0x0000000, 0x800000, CRC(84865f8a) SHA1(34467ada896eb7c7ca58658bf2a932936d8b632c) )
+ ROM_LOAD16_BYTE( "263-c2.c2", 0x0000001, 0x800000, CRC(81df97f2) SHA1(2b74493b8ec8fd49216a627aeb3db493f76124e3) )
+ ROM_LOAD16_BYTE( "263-c3.c3", 0x1000000, 0x800000, CRC(1a343323) SHA1(bbbb5232bba538c277ce2ee02e2956ca2243b787) )
+ ROM_LOAD16_BYTE( "263-c4.c4", 0x1000001, 0x800000, CRC(942cfb44) SHA1(d9b46c71726383c4581fb042e63897e5a3c92d1b) )
+ ROM_LOAD16_BYTE( "263-c5.c5", 0x2000000, 0x800000, CRC(a748854f) SHA1(2611bbedf9b5d8e82c6b2c99b88f842c46434d41) )
+ ROM_LOAD16_BYTE( "263-c6.c6", 0x2000001, 0x800000, CRC(5c8ba116) SHA1(6034db09c8706d4ddbcefc053efbc47a0953eb92) )
+ROM_END
+
+/* The King of Fighters 2002 bootlegs */
+
+ROM_START( kof2002b )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "265-p1.p1", 0x000000, 0x100000, CRC(9ede7323) SHA1(ad9d45498777fda9fa58e75781f48e09aee705a6) )
+ ROM_LOAD16_WORD_SWAP( "2k2-p2.bin", 0x100000, 0x400000, CRC(6dbee4df) SHA1(9a9646c81b233b44213c624b898c19f83e9a07f8) )
+
+ NEO_SFIX_128K( "2k2-s1.bin", CRC(2255f5bf) SHA1(8a82b3e9717df30b580b9d0bac0b403f8102a002) )
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_128K( "265-m1.m1", CRC(85aaa632) SHA1(744fba4ca3bc3a5873838af886efb97a8a316104) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "2k2-c1.bin", 0x0000000, 0x800000, CRC(f25d3d66) SHA1(eb1da3e171c126d91e851ce141840709a2f62f8a) )
+ ROM_LOAD16_BYTE( "2k2-c2.bin", 0x0000001, 0x800000, CRC(e3e66f1d) SHA1(af93e9e134816353d6187a53959c6e418b83ad8d) )
+ ROM_LOAD16_BYTE( "2k2-c3.bin", 0x1000000, 0x800000, CRC(8732fa30) SHA1(81c482b375c04bcfbbc69e3e2a2e9ab567c9bb78) )
+ ROM_LOAD16_BYTE( "2k2-c4.bin", 0x1000001, 0x800000, CRC(0989fd40) SHA1(355d6b2c528319e41ce89952c5cf5bcc47cd6de0) )
+ ROM_LOAD16_BYTE( "2k2-c5.bin", 0x2000000, 0x800000, CRC(60635cd2) SHA1(0cf2c54e003edfcdbed64e0570e6b800e7ed3c1b) )
+ ROM_LOAD16_BYTE( "2k2-c6.bin", 0x2000001, 0x800000, CRC(bd736824) SHA1(d897fc8248ace145fef57d8aa393eaebc4a1ccc4) )
+ ROM_LOAD16_BYTE( "2k2-c7.bin", 0x3000000, 0x800000, CRC(2da8d8cf) SHA1(ab8aa88b8e1baba88e5fc01d0f3cb55503b6c81a) )
+ ROM_LOAD16_BYTE( "2k2-c8.bin", 0x3000001, 0x800000, CRC(2048404a) SHA1(d6d0f049ffc196334825328e0472b04e04bf6695) )
+ROM_END
+
+ROM_START( kf2k2pls )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "2k2-p1p.bin", 0x000000, 0x100000, CRC(3ab03781) SHA1(86946c19f1c4d9ab5cde86688d698bf63118a39d) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_128K( "2k2-s1p.bin", CRC(595e0006) SHA1(ff086bdaa6f40e9ad963e1100a27f44618d684ed) )
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_128K( "265-m1.m1", CRC(85aaa632) SHA1(744fba4ca3bc3a5873838af886efb97a8a316104) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kf2k2pla )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "2k2-p1pa.bin", 0x000000, 0x100000, CRC(6a3a02f3) SHA1(c9973b64e9a87fa38dde233ee3e9a73ba085b013) )
+ ROM_LOAD16_WORD_SWAP( "265-p2.sp2", 0x100000, 0x400000, CRC(327266b8) SHA1(98f445cc0a94f8744d74bca71cb420277622b034) )
+
+ NEO_SFIX_128K( "2k2-s1pa.bin", CRC(1a3ed064) SHA1(9749bb55c750e6b65d651998c2649c5fb68db68e))
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_128K( "265-m1.m1", CRC(85aaa632) SHA1(744fba4ca3bc3a5873838af886efb97a8a316104) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kf2k2mp )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "kf02m-p1.bin", 0x000000, 0x400000, CRC(ff7c6ec0) SHA1(704c14d671dcb4cfed44d9f978a289cb7dd9d065) )
+ ROM_LOAD16_WORD_SWAP( "kf02m-p2.bin", 0x400000, 0x400000, CRC(91584716) SHA1(90da863037cf775957fa154cd42536e221df5740) )
+
+ NEO_SFIX_128K( "kf02m-s1.bin", CRC(348d6f2c) SHA1(586da8a936ebbb71af324339a4b60ec91dfa0990) )
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_128K( "265-m1.m1", CRC(85aaa632) SHA1(744fba4ca3bc3a5873838af886efb97a8a316104) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kf2k2mp2 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "k2k2m2p1.bin", 0x000000, 0x200000, CRC(1016806c) SHA1(a583b45e9c0d6f67b95c52e44444aabe88f68d97) )
+ ROM_LOAD16_WORD_SWAP( "k2k2m2p2.bin", 0x200000, 0x400000, CRC(432fdf53) SHA1(d7e542cd84d948162c60768e40ee4ed33d8e7913) )
+
+ NEO_SFIX_128K( "k2k2m2s1.bin", CRC(446e74c5) SHA1(efc2afb26578bad9eb21659c70eb0f827d6d1ef6) )
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_128K( "265-m1.m1", CRC(85aaa632) SHA1(744fba4ca3bc3a5873838af886efb97a8a316104) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "265-v1.v1", 0x000000, 0x800000, CRC(15e8f3f5) SHA1(7c9e6426b9fa6db0158baa17a6485ffce057d889) )
+ ROM_LOAD( "265-v2.v2", 0x800000, 0x800000, CRC(da41d6f9) SHA1(a43021f1e58947dcbe3c8ca5283b20b649f0409d) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "265-c1.c1", 0x0000000, 0x800000, CRC(2b65a656) SHA1(9c46d8cf5b1ef322db442ac6a9b9406ab49206c5) )
+ ROM_LOAD16_BYTE( "265-c2.c2", 0x0000001, 0x800000, CRC(adf18983) SHA1(150cd4a5e51e9df88688469d2ea7675c2cf3658a) )
+ ROM_LOAD16_BYTE( "265-c3.c3", 0x1000000, 0x800000, CRC(875e9fd7) SHA1(28f52d56192d48bbc5dc3c97abf456bd34a58cbd) )
+ ROM_LOAD16_BYTE( "265-c4.c4", 0x1000001, 0x800000, CRC(2da13947) SHA1(f8d79ec2c236aa3d3648a4f715676899602122c1) )
+ ROM_LOAD16_BYTE( "265-c5.c5", 0x2000000, 0x800000, CRC(61bd165d) SHA1(b3424db84bc683d858fb635bc42728f9cdd89caf) )
+ ROM_LOAD16_BYTE( "265-c6.c6", 0x2000001, 0x800000, CRC(03fdd1eb) SHA1(6155c7e802062f4eafa27e414c4e73ee59b868bf) )
+ ROM_LOAD16_BYTE( "265-c7.c7", 0x3000000, 0x800000, CRC(1a2749d8) SHA1(af7d9ec1d576209826fa568f676bbff92f6d6ddd) )
+ ROM_LOAD16_BYTE( "265-c8.c8", 0x3000001, 0x800000, CRC(ab0bb549) SHA1(d23afb60b7f831f7d4a98ad3c4a00ee19877a1ce) )
+ROM_END
+
+ROM_START( kof10th )
+ ROM_REGION( 0x900000, "maincpu", 0 ) // Modified
+ ROM_LOAD16_WORD_SWAP( "kf10-p1.bin", 0x000000, 0x800000, CRC(b1fd0c43) SHA1(5f842a8a27be2d957fd4140d6431ae47154997bb) )
+
+ NEO_SFIX_MT(0x40000)
+
+ NEO_BIOS_AUDIO_128K( "kf10-m1.bin", CRC(f6fab859) SHA1(0184aa1394b9f9946d610278b53b846020dd88dc) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) )
+ ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "kf10-c1a.bin", 0x0000000, 0x400000, CRC(3bbc0364) SHA1(e8aa7ff82f151ce1db56f259377b64cceef85af0) )
+ ROM_LOAD16_BYTE( "kf10-c2a.bin", 0x0000001, 0x400000, CRC(91230075) SHA1(d9098e05a7ba6008661147b6bf8bc2f494b8b72b) )
+ ROM_LOAD16_BYTE( "kf10-c1b.bin", 0x0800000, 0x400000, CRC(b5abfc28) SHA1(eabf60992bb3485c95330065294071ec155bfe7c) )
+ ROM_LOAD16_BYTE( "kf10-c2b.bin", 0x0800001, 0x400000, CRC(6cc4c6e1) SHA1(be824a944e745ee18efdc45c81fd496a4d624b9c) )
+ ROM_LOAD16_BYTE( "kf10-c3a.bin", 0x1000000, 0x400000, CRC(5b3d4a16) SHA1(93ac1cd7739100f8c32732644f81f2a19837b131) )
+ ROM_LOAD16_BYTE( "kf10-c4a.bin", 0x1000001, 0x400000, CRC(c6f3419b) SHA1(340c17a73aeb7bf8a6209f8459e6f00000075b50) )
+ ROM_LOAD16_BYTE( "kf10-c3b.bin", 0x1800000, 0x400000, CRC(9d2bba19) SHA1(5ebbd0af3f83a60e33c8ccb743e3d5f5a96f1273) )
+ ROM_LOAD16_BYTE( "kf10-c4b.bin", 0x1800001, 0x400000, CRC(5a4050cb) SHA1(8fd2291f349efa1ed5cd37ad4e273b60fe831a77) )
+ ROM_LOAD16_BYTE( "kf10-c5a.bin", 0x2000000, 0x400000, CRC(a289d1e1) SHA1(50c7d7ebde6e118a01036cc3e40827fcd9f0d3fd) )
+ ROM_LOAD16_BYTE( "kf10-c6a.bin", 0x2000001, 0x400000, CRC(e6494b5d) SHA1(18e064b9867ae0b0794065f8dbefd486620419db) )
+ ROM_LOAD16_BYTE( "kf10-c5b.bin", 0x2800000, 0x400000, CRC(404fff02) SHA1(56d1b32c87ea4885e49264e8b21846e465a20e1f) )
+ ROM_LOAD16_BYTE( "kf10-c6b.bin", 0x2800001, 0x400000, CRC(f2ccfc9e) SHA1(69db7fac7023785ab94ea711a72dbc2826cfe1a3) )
+ ROM_LOAD16_BYTE( "kf10-c7a.bin", 0x3000000, 0x400000, CRC(be79c5a8) SHA1(ded3c5eb3571647f50533eb682c2675372ace3fb) )
+ ROM_LOAD16_BYTE( "kf10-c8a.bin", 0x3000001, 0x400000, CRC(a5952ca4) SHA1(76dbb3cb45ce5a4beffa1ed29491204fc6617e42) )
+ ROM_LOAD16_BYTE( "kf10-c7b.bin", 0x3800000, 0x400000, CRC(3fdb3542) SHA1(7d2050752a2064cd6729f483a0da93808e2c6033) )
+ ROM_LOAD16_BYTE( "kf10-c8b.bin", 0x3800001, 0x400000, CRC(661b7a52) SHA1(0ae2ad2389134892f156337332b77adade3ddad1) )
+ROM_END
+
+ROM_START( kf10thep ) /* this is a hack of kof2002 much like the various korean hacks / bootlegs of games */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "5008-p1.bin", 0x000000, 0x200000, CRC(bf5469ba) SHA1(f05236d8fffab5836c0d27becdeeb80def32ee49) )
+ ROM_LOAD16_WORD_SWAP( "5008-p2.bin", 0x200000, 0x400000, CRC(a649ec38) SHA1(5c63ed5e5c848940f587c966da4908d04cf1293c) )
+ ROM_LOAD16_WORD_SWAP( "5008-p3.bin", 0x600000, 0x200000, CRC(e629e13c) SHA1(6ebe080ce01c51064cb2f4d89315ba98a45ae727) )
+
+ NEO_SFIX_128K( "5008-s1.bin", CRC(92410064) SHA1(1fb800b46341858207d3b6961a760289fbec7faa) )
+
+ NEO_BIOS_AUDIO_128K( "5008-m1.bin", CRC(5a47d9ad) SHA1(0197737934653acc6c97221660d789e9914f3578) )
+ //NEO_BIOS_AUDIO_128K( "5004-m1.bin", CRC(f6fab859) SHA1(0184aa1394b9f9946d610278b53b846020dd88dc) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) )
+ ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "kf10-c1a.bin", 0x0000000, 0x400000, CRC(3bbc0364) SHA1(e8aa7ff82f151ce1db56f259377b64cceef85af0) )
+ ROM_LOAD16_BYTE( "kf10-c2a.bin", 0x0000001, 0x400000, CRC(91230075) SHA1(d9098e05a7ba6008661147b6bf8bc2f494b8b72b) )
+ ROM_LOAD16_BYTE( "kf10-c1b.bin", 0x0800000, 0x400000, CRC(b5abfc28) SHA1(eabf60992bb3485c95330065294071ec155bfe7c) )
+ ROM_LOAD16_BYTE( "kf10-c2b.bin", 0x0800001, 0x400000, CRC(6cc4c6e1) SHA1(be824a944e745ee18efdc45c81fd496a4d624b9c) )
+ ROM_LOAD16_BYTE( "kf10-c3a.bin", 0x1000000, 0x400000, CRC(5b3d4a16) SHA1(93ac1cd7739100f8c32732644f81f2a19837b131) )
+ ROM_LOAD16_BYTE( "kf10-c4a.bin", 0x1000001, 0x400000, CRC(c6f3419b) SHA1(340c17a73aeb7bf8a6209f8459e6f00000075b50) )
+ ROM_LOAD16_BYTE( "kf10-c3b.bin", 0x1800000, 0x400000, CRC(9d2bba19) SHA1(5ebbd0af3f83a60e33c8ccb743e3d5f5a96f1273) )
+ ROM_LOAD16_BYTE( "kf10-c4b.bin", 0x1800001, 0x400000, CRC(5a4050cb) SHA1(8fd2291f349efa1ed5cd37ad4e273b60fe831a77) )
+ ROM_LOAD16_BYTE( "kf10-c5a.bin", 0x2000000, 0x400000, CRC(a289d1e1) SHA1(50c7d7ebde6e118a01036cc3e40827fcd9f0d3fd) )
+ ROM_LOAD16_BYTE( "kf10-c6a.bin", 0x2000001, 0x400000, CRC(e6494b5d) SHA1(18e064b9867ae0b0794065f8dbefd486620419db) )
+ ROM_LOAD16_BYTE( "kf10-c5b.bin", 0x2800000, 0x400000, CRC(404fff02) SHA1(56d1b32c87ea4885e49264e8b21846e465a20e1f) )
+ ROM_LOAD16_BYTE( "kf10-c6b.bin", 0x2800001, 0x400000, CRC(f2ccfc9e) SHA1(69db7fac7023785ab94ea711a72dbc2826cfe1a3) )
+ ROM_LOAD16_BYTE( "kf10-c7a.bin", 0x3000000, 0x400000, CRC(be79c5a8) SHA1(ded3c5eb3571647f50533eb682c2675372ace3fb) )
+ ROM_LOAD16_BYTE( "kf10-c8a.bin", 0x3000001, 0x400000, CRC(a5952ca4) SHA1(76dbb3cb45ce5a4beffa1ed29491204fc6617e42) )
+ ROM_LOAD16_BYTE( "5008-c7b.bin", 0x3800000, 0x400000, CRC(33604ef0) SHA1(57deec23c81d5d673ce5992cef1f2567f1a2148e) )
+ ROM_LOAD16_BYTE( "5008-c8b.bin", 0x3800001, 0x400000, CRC(51f6a8f8) SHA1(9ef1cdbdd125a2b430346c22b59f36902312905f) )
+ROM_END
+
+ROM_START( kf2k5uni )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "5006-p2a.bin", 0x000000, 0x400000, CRC(ced883a2) SHA1(f93db4d74ce0a73a3e9631966fee37be22470c89) )
+ ROM_LOAD16_WORD_SWAP( "5006-p1.bin", 0x400000, 0x400000, CRC(72c39c46) SHA1(4ba0657de20319c0bc30c7c3bba7d7331d0ce9a7) )
+
+ NEO_SFIX_128K( "5006-s1.bin", CRC(91f8c544) SHA1(9d16cafb9ca4bc54f31f7fd82b1be06ec8b11c79) )
+
+ NEO_BIOS_AUDIO_128K( "5006-m1.bin", CRC(9050bfe7) SHA1(765bf3d954f775231b7ef2504bb844cd0b29e3f7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) )
+ ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "kf10-c1a.bin", 0x0000000, 0x400000, CRC(3bbc0364) SHA1(e8aa7ff82f151ce1db56f259377b64cceef85af0) )
+ ROM_LOAD16_BYTE( "kf10-c2a.bin", 0x0000001, 0x400000, CRC(91230075) SHA1(d9098e05a7ba6008661147b6bf8bc2f494b8b72b) )
+ ROM_LOAD16_BYTE( "kf10-c1b.bin", 0x0800000, 0x400000, CRC(b5abfc28) SHA1(eabf60992bb3485c95330065294071ec155bfe7c) )
+ ROM_LOAD16_BYTE( "kf10-c2b.bin", 0x0800001, 0x400000, CRC(6cc4c6e1) SHA1(be824a944e745ee18efdc45c81fd496a4d624b9c) )
+ ROM_LOAD16_BYTE( "kf10-c3a.bin", 0x1000000, 0x400000, CRC(5b3d4a16) SHA1(93ac1cd7739100f8c32732644f81f2a19837b131) )
+ ROM_LOAD16_BYTE( "kf10-c4a.bin", 0x1000001, 0x400000, CRC(c6f3419b) SHA1(340c17a73aeb7bf8a6209f8459e6f00000075b50) )
+ ROM_LOAD16_BYTE( "kf10-c3b.bin", 0x1800000, 0x400000, CRC(9d2bba19) SHA1(5ebbd0af3f83a60e33c8ccb743e3d5f5a96f1273) )
+ ROM_LOAD16_BYTE( "kf10-c4b.bin", 0x1800001, 0x400000, CRC(5a4050cb) SHA1(8fd2291f349efa1ed5cd37ad4e273b60fe831a77) )
+ ROM_LOAD16_BYTE( "kf10-c5a.bin", 0x2000000, 0x400000, CRC(a289d1e1) SHA1(50c7d7ebde6e118a01036cc3e40827fcd9f0d3fd) )
+ ROM_LOAD16_BYTE( "kf10-c6a.bin", 0x2000001, 0x400000, CRC(e6494b5d) SHA1(18e064b9867ae0b0794065f8dbefd486620419db) )
+ ROM_LOAD16_BYTE( "kf10-c5b.bin", 0x2800000, 0x400000, CRC(404fff02) SHA1(56d1b32c87ea4885e49264e8b21846e465a20e1f) )
+ ROM_LOAD16_BYTE( "kf10-c6b.bin", 0x2800001, 0x400000, CRC(f2ccfc9e) SHA1(69db7fac7023785ab94ea711a72dbc2826cfe1a3) )
+ ROM_LOAD16_BYTE( "kf10-c7a.bin", 0x3000000, 0x400000, CRC(be79c5a8) SHA1(ded3c5eb3571647f50533eb682c2675372ace3fb) )
+ ROM_LOAD16_BYTE( "kf10-c8a.bin", 0x3000001, 0x400000, CRC(a5952ca4) SHA1(76dbb3cb45ce5a4beffa1ed29491204fc6617e42) )
+ ROM_LOAD16_BYTE( "kf10-c7b.bin", 0x3800000, 0x400000, CRC(3fdb3542) SHA1(7d2050752a2064cd6729f483a0da93808e2c6033) )
+ ROM_LOAD16_BYTE( "kf10-c8b.bin", 0x3800001, 0x400000, CRC(661b7a52) SHA1(0ae2ad2389134892f156337332b77adade3ddad1) )
+ROM_END
+
+ROM_START( kof2k4se )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "k2k4s-p2.bin", 0x000000, 0x080000, CRC(21a84084) SHA1(973e8a0bffa0e1f055803f663f81a8e03701802d) )
+ ROM_LOAD16_WORD_SWAP( "k2k4s-p3.bin", 0x080000, 0x080000, CRC(febb484e) SHA1(4b1838795b84f22d578ad043641df0a7bf7d9774) )
+ ROM_LOAD16_WORD_SWAP( "k2k4s-p1.bin", 0x100000, 0x400000, CRC(e6c50566) SHA1(cc6a3489a3bfeb4dcc65b6ddae0030f7e66fbabe) )
+
+ NEO_SFIX_128K( "k2k4s-s1.bin", CRC(a3c9b2d8) SHA1(1472d2cbd7bb73e84824ecf773924007e6117e77) )
+
+ NEO_BIOS_AUDIO_128K( "k2k4s-m1.bin", CRC(5a47d9ad) SHA1(0197737934653acc6c97221660d789e9914f3578) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "k2k4s-v2.bin", 0x000000, 0x800000, CRC(e4ddfb3f) SHA1(eb8220ab01c16cf9244b7f3f9912bec0db561b85) )
+ ROM_LOAD( "k2k4s-v1.bin", 0x800000, 0x800000, CRC(b887d287) SHA1(f593a5722df6f6fac023d189a739a117e976bb2f) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "k2k4s-c4.bin", 0x0000000, 0x800000, CRC(7a050288) SHA1(55a20c5b01e11a859f096af3f8e09986025d288f) )
+ ROM_LOAD16_BYTE( "k2k4s-c8.bin", 0x0000001, 0x800000, CRC(e924afcf) SHA1(651e974f7339d2cdcfa58c5398013197a0525b77) )
+ ROM_LOAD16_BYTE( "k2k4s-c3.bin", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63ab83ddc5f688dc8165a7ff8d262df3fcd942a2) )
+ ROM_LOAD16_BYTE( "k2k4s-c7.bin", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2a414285e48aa948b5b0d4a9333bab083b5fb853) )
+ ROM_LOAD16_BYTE( "k2k4s-c2.bin", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(e01adc7a4633bc0951b9b4f09abc07d728e9a2d9) )
+ ROM_LOAD16_BYTE( "k2k4s-c6.bin", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5d28eea7b581e780b78f391a8179f1678ee0d9a5) )
+ ROM_LOAD16_BYTE( "k2k4s-c1.bin", 0x3000000, 0x800000, CRC(fa705b2b) SHA1(f314c66876589601806352484dd8e45bc41be692) )
+ ROM_LOAD16_BYTE( "k2k4s-c5.bin", 0x3000001, 0x800000, CRC(2c912ff9) SHA1(b624a625ea3e221808b7ea43fb0b1a51d8c1853e) )
+ROM_END
+
+/* Matrimelee bootleg */
+
+ROM_START( matrimbl )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "266-p1.p1", 0x000000, 0x100000, CRC(5d4c2dc7) SHA1(8d723b0d28ec344eef26009b361a2b97d300dd51) )
+ ROM_LOAD16_WORD_SWAP( "266-p2.sp2", 0x100000, 0x400000, CRC(a14b1906) SHA1(1daa14d73512f760ef569b06f9facb279437d1db) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_128K( "mart-m1.bin", CRC(3ea96ab1) SHA1(e5053c4312f658faed2a34e38325a22ef792d384) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "mart-v1.bin", 0x000000, 0x400000, CRC(352b0a07) SHA1(19f7cc12f3f6d0fda9c7449816c4c32367447897) )
+ ROM_LOAD16_WORD_SWAP( "mart-v2.bin", 0x400000, 0x400000, CRC(1e9bd59e) SHA1(0f754e780d0ebb815a92a45ad55f85f6d0181b70) )
+ ROM_LOAD( "mart-v3.bin", 0x800000, 0x400000, CRC(e8362fcc) SHA1(42d558fd80cabe22a1c09a1fa75741afbcf46b7c) )
+ ROM_LOAD16_WORD_SWAP( "mart-v4.bin", 0xc00000, 0x400000, CRC(c8c79b19) SHA1(9c7a5e694d68f37a27209e1400b60b6241a04cc7) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "mart-c1.bin", 0x0000000, 0x800000, CRC(a5595656) SHA1(d86281607f22e4f2001047eaeeda99cd673c508c) )
+ ROM_LOAD16_BYTE( "mart-c2.bin", 0x0000001, 0x800000, CRC(c5f7c300) SHA1(9ff5ffb750bd2e925667d84389192f92183e8677) )
+ ROM_LOAD16_BYTE( "mart-c3.bin", 0x1000000, 0x800000, CRC(574efd7d) SHA1(6cac303db705fe2800701ee51de9e9fca04e6e66) )
+ ROM_LOAD16_BYTE( "mart-c4.bin", 0x1000001, 0x800000, CRC(109d54d9) SHA1(22cb748b3b14317b90d9d9951297ada2bfc3a3f1) )
+ ROM_LOAD16_BYTE( "mart-c5.bin", 0x2000000, 0x800000, CRC(15c9e882) SHA1(1c9f1ccaed4fdd9d8f5cc9b6fcaca3c4e328e59e) )
+ ROM_LOAD16_BYTE( "mart-c6.bin", 0x2000001, 0x800000, CRC(77497b97) SHA1(c6481bea5a36f8210971fdcb4bfbe7ed93c769de) )
+ ROM_LOAD16_BYTE( "mart-c7.bin", 0x3000000, 0x800000, CRC(ab481bb6) SHA1(6b2d97c5505eeb28e300b075f37f0d69ef44463a) )
+ ROM_LOAD16_BYTE( "mart-c8.bin", 0x3000001, 0x800000, CRC(906cf267) SHA1(b0f2cf8887794d715f208751ddd1ed26b2c3ffdf) )
+ROM_END
+
+/* Metal Slug 5 bootleg */
+
+ROM_START( ms5plus )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "ms5-p1p.bin", 0x000000, 0x100000, CRC(106b276f) SHA1(0e840df95f3813145e5043573483c7610d2d3e68) )
+ ROM_LOAD16_WORD_SWAP( "ms5-p2p.bin", 0x100000, 0x200000, CRC(d6a458e8) SHA1(c0a8bdae06d62859fb6734766ccc190eb2a809a4) )
+ ROM_LOAD16_WORD_SWAP( "ms5-p3p.bin", 0x300000, 0x200000, CRC(439ec031) SHA1(f0ad8f9be7d26bc504593c1321bd23c286a221f0) )
+
+ NEO_SFIX_128K("ms5-s1p.bin", CRC(21e04432) SHA1(10057a2aa487087f7143d1d69fdad978a6bef0f7) )
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "268-m1.m1", CRC(4a5a6e0e) SHA1(df0f660f2465e1db7be5adfcaf5e88ad61a74a42) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "268-v1c.v1", 0x000000, 0x800000, CRC(ae31d60c) SHA1(c42285cf4e52fea74247860813e826df5aa7600a) )
+ ROM_LOAD( "268-v2c.v2", 0x800000, 0x800000, CRC(c40613ed) SHA1(af889570304e2867d7dfea1e94e388c06249fb67) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "268-c1c.c1", 0x0000000, 0x800000, CRC(ab7c389a) SHA1(025a188de589500bf7637fa8e7a37ab24bf4312e) )
+ ROM_LOAD16_BYTE( "268-c2c.c2", 0x0000001, 0x800000, CRC(3560881b) SHA1(493d218c92290b4770024d6ee2917c4022753b07) )
+ ROM_LOAD16_BYTE( "268-c3c.c3", 0x1000000, 0x800000, CRC(3af955ea) SHA1(cf36b6ae9b0d12744b17cb7a928399214de894be) )
+ ROM_LOAD16_BYTE( "268-c4c.c4", 0x1000001, 0x800000, CRC(c329c373) SHA1(5073d4079958a0ef5426885af2c9e3178f37d5e0) )
+ ROM_LOAD16_BYTE( "268-c5c.c5", 0x2000000, 0x800000, CRC(959c8177) SHA1(889bda7c65d71172e7d89194d1269561888fe789) )
+ ROM_LOAD16_BYTE( "268-c6c.c6", 0x2000001, 0x800000, CRC(010a831b) SHA1(aec140661e3ae35d264df416478ba15188544d91) )
+ ROM_LOAD16_BYTE( "268-c7c.c7", 0x3000000, 0x800000, CRC(6d72a969) SHA1(968dd9a4d1209b770b9b85ea6532fa24d262a262) )
+ ROM_LOAD16_BYTE( "268-c8c.c8", 0x3000001, 0x800000, CRC(551d720e) SHA1(ebf69e334fcaba0fda6fd432fd0970283a365d12) )
+ROM_END
+
+/* Puzzle Bobble / Bust-A-Move (Neo-Geo) bootleg */
+
+ROM_START( pbobblenb )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "u7", 0x000000, 0x080000, CRC(ac1e9ef3) SHA1(a2b125ee70869667431ab125bc29e768500802ad) )
+
+ NEO_SFIX_128K( "us1", CRC(9caae538) SHA1 (cf2d90a7c1a42107c0bb8b9a61397634286dbe0a) )
+
+ NEO_BIOS_AUDIO_128K( "um1", CRC(f424368a) SHA1 (5e5bbcaeb82bed2ee17df08f005ca20ad1030723) )
+
+ ROM_REGION( 0x380000, "ymsnd", 0 )
+ /* 0x000000-0x1fffff empty */
+ ROM_LOAD( "u8", 0x200000, 0x100000, CRC(0840cbc4) SHA1 (1adbd7aef44fa80832f63dfb8efdf69fd7256a57) )
+ ROM_LOAD( "u9", 0x300000, 0x080000, CRC(0a548948) SHA1 (e1e4afd17811cb60401c14fbcf0465035165f4fb) )
+
+ ROM_REGION( 0x100000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "uc5", 0x000000, 0x80000, CRC(e89ad494) SHA1 (69c9ea415773af94ac44c48af05d55ada222b138) )
+ ROM_LOAD16_BYTE( "uc6", 0x000001, 0x80000, CRC(4b42d7eb) SHA1 (042ae50a528cea21cf07771d3915c57aa16fd5af) )
+ROM_END
+
+/* SNK vs. CAPCOM SVC CHAOS bootlegs */
+
+ROM_START( svcboot )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "svc-p1.bin", 0x000000, 0x800000, CRC(0348f162) SHA1(c313351d68effd92aeb80ed320e4f8c26a3bb53e) )
+
+ NEO_SFIX_MT_128K
+ ROM_LOAD( "svc-s1.bin", 0x10000, 0x10000, CRC(70b44df1) SHA1(52ae3f264d7b33e94e770e6b2d0cf35a64e7dda4) )
+ ROM_CONTINUE( 0x00000, 0x10000 )
+
+ NEOGEO_BIOS
+
+ ROM_REGION( 0x20000, "audiobios", 0 )
+ ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) )
+
+ ROM_REGION( 0x50000, "audiocpu", 0 )
+ ROM_LOAD( "svc-m1.bin", 0x20000, 0x10000, CRC(804328c3) SHA1(f931636c563b0789d4812033a77b47bf663db43f) )
+ ROM_CONTINUE( 0x00000, 0x10000 )
+ ROM_COPY( "audiocpu", 0x000000, 0x10000, 0x10000 )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD16_WORD_SWAP( "svc-v2.bin", 0x000000, 0x400000, CRC(b5097287) SHA1(3ba3a9b5624879616382ed40337a3d9c50a0f314) )
+ ROM_LOAD16_WORD_SWAP( "svc-v1.bin", 0x400000, 0x400000, CRC(bd3a391f) SHA1(972bf09b75e99a683ee965bec93b0da8f15d72d9) )
+ ROM_LOAD16_WORD_SWAP( "svc-v4.bin", 0x800000, 0x400000, CRC(33fc0b37) SHA1(d61017d829f44c7df8795ba10c55c727d9972662) )
+ ROM_LOAD16_WORD_SWAP( "svc-v3.bin", 0xc00000, 0x400000, CRC(aa9849a0) SHA1(9539b3356a070a066a89f27c287f316e7367ce2a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "svc-c1.bin", 0x0000000, 0x800000, CRC(a7826b89) SHA1(3bbe348ce54b80b56ef032ea532a18ef3cafeb11) )
+ ROM_LOAD16_BYTE( "svc-c2.bin", 0x0000001, 0x800000, CRC(ed3c2089) SHA1(b5d17692f15f5a678c273589fab2e3918711135e) )
+ ROM_LOAD16_BYTE( "svc-c3.bin", 0x1000000, 0x800000, CRC(71ed8063) SHA1(ea1df9e2e382a8560a06d447421844cc588f43dd) )
+ ROM_LOAD16_BYTE( "svc-c4.bin", 0x1000001, 0x800000, CRC(250bde2d) SHA1(8c72dcfceef6d022ab4b73ab37cf3ac0c3940c17) )
+ ROM_LOAD16_BYTE( "svc-c5.bin", 0x2000000, 0x800000, CRC(9817c082) SHA1(1bea9c7220c2b1524896c86841d6d8fd55f5d366) )
+ ROM_LOAD16_BYTE( "svc-c6.bin", 0x2000001, 0x800000, CRC(2bc0307f) SHA1(8090fa82c46eb503832359093c8cc3cee3141c90) )
+ ROM_LOAD16_BYTE( "svc-c7.bin", 0x3000000, 0x800000, CRC(4358d7b9) SHA1(9270b58c2abc072a046bedda72f1395df26d0714) )
+ ROM_LOAD16_BYTE( "svc-c8.bin", 0x3000001, 0x800000, CRC(366deee5) SHA1(d477ad7a5987fd6c7ef2c1680fbb7c884654590e) )
+ROM_END
+
+ROM_START( svcplus )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "svc-p1p.bin", 0x000000, 0x200000, CRC(a194d842) SHA1(72b7bfa34a97632b1aa003488e074d766a6c2f08) )
+ ROM_LOAD16_WORD_SWAP( "svc-p2p.bin", 0x200000, 0x200000, CRC(50c0e2b7) SHA1(97b396415ab0e692e43ddf371091e5a456712f0a) )
+ ROM_LOAD16_WORD_SWAP( "svc-p3p.bin", 0x400000, 0x200000, CRC(58cdc293) SHA1(3c4f2418ec513bcc13ed33a727de11dfb98f7525) )
+
+ NEO_SFIX_128K( "svc-s1p.bin", CRC(73344711) SHA1(04d84c4fe241b9135cd210f8ed8c725f595d11d2) )
+
+ NEOGEO_BIOS
+
+ ROM_REGION( 0x20000, "audiobios", 0 )
+ ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) )
+
+ ROM_REGION( 0x50000, "audiocpu", 0 )
+ ROM_LOAD( "svc-m1.bin", 0x20000, 0x10000, CRC(804328c3) SHA1(f931636c563b0789d4812033a77b47bf663db43f) )
+ ROM_CONTINUE( 0x00000, 0x10000 )
+ ROM_COPY( "audiocpu", 0x000000, 0x10000, 0x10000 )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD16_WORD_SWAP( "svc-v2.bin", 0x000000, 0x400000, CRC(b5097287) SHA1(3ba3a9b5624879616382ed40337a3d9c50a0f314) )
+ ROM_LOAD16_WORD_SWAP( "svc-v1.bin", 0x400000, 0x400000, CRC(bd3a391f) SHA1(972bf09b75e99a683ee965bec93b0da8f15d72d9) )
+ ROM_LOAD16_WORD_SWAP( "svc-v4.bin", 0x800000, 0x400000, CRC(33fc0b37) SHA1(d61017d829f44c7df8795ba10c55c727d9972662) )
+ ROM_LOAD16_WORD_SWAP( "svc-v3.bin", 0xc00000, 0x400000, CRC(aa9849a0) SHA1(9539b3356a070a066a89f27c287f316e7367ce2a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "svc-c1.bin", 0x0000000, 0x800000, CRC(a7826b89) SHA1(3bbe348ce54b80b56ef032ea532a18ef3cafeb11) )
+ ROM_LOAD16_BYTE( "svc-c2.bin", 0x0000001, 0x800000, CRC(ed3c2089) SHA1(b5d17692f15f5a678c273589fab2e3918711135e) )
+ ROM_LOAD16_BYTE( "svc-c3.bin", 0x1000000, 0x800000, CRC(71ed8063) SHA1(ea1df9e2e382a8560a06d447421844cc588f43dd) )
+ ROM_LOAD16_BYTE( "svc-c4.bin", 0x1000001, 0x800000, CRC(250bde2d) SHA1(8c72dcfceef6d022ab4b73ab37cf3ac0c3940c17) )
+ ROM_LOAD16_BYTE( "svc-c5.bin", 0x2000000, 0x800000, CRC(9817c082) SHA1(1bea9c7220c2b1524896c86841d6d8fd55f5d366) )
+ ROM_LOAD16_BYTE( "svc-c6.bin", 0x2000001, 0x800000, CRC(2bc0307f) SHA1(8090fa82c46eb503832359093c8cc3cee3141c90) )
+ ROM_LOAD16_BYTE( "svc-c7.bin", 0x3000000, 0x800000, CRC(4358d7b9) SHA1(9270b58c2abc072a046bedda72f1395df26d0714) )
+ ROM_LOAD16_BYTE( "svc-c8.bin", 0x3000001, 0x800000, CRC(366deee5) SHA1(d477ad7a5987fd6c7ef2c1680fbb7c884654590e) )
+ROM_END
+
+ROM_START( svcplusa )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "svc-p1pl.bin", 0x000000, 0x200000, CRC(16b44144) SHA1(5eab530274b1b6f480a39a86c199da524cddfccc) )
+ ROM_LOAD16_WORD_SWAP( "svc-p2pl.bin", 0x200000, 0x400000, CRC(7231ace2) SHA1(d2f13ddd5d3ee29b4b9824e8663f7ee0241f30cf) )
+
+ NEO_SFIX_MT_128K
+ ROM_LOAD( "svc-s1pl.bin", 0x10000, 0x10000, CRC(ca3c735e) SHA1(aebd15253c90432a2e0a4c40f37110c1e2176ee4) )
+ ROM_CONTINUE( 0x00000, 0x10000 )
+
+ NEOGEO_BIOS
+
+ ROM_REGION( 0x20000, "audiobios", 0 )
+ ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) )
+
+ ROM_REGION( 0x50000, "audiocpu", 0 )
+ ROM_LOAD( "svc-m1.bin", 0x20000, 0x10000, CRC(804328c3) SHA1(f931636c563b0789d4812033a77b47bf663db43f) )
+ ROM_CONTINUE( 0x00000, 0x10000 )
+ ROM_COPY( "audiocpu", 0x000000, 0x10000, 0x10000 )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD16_WORD_SWAP( "svc-v2.bin", 0x000000, 0x400000, CRC(b5097287) SHA1(3ba3a9b5624879616382ed40337a3d9c50a0f314) )
+ ROM_LOAD16_WORD_SWAP( "svc-v1.bin", 0x400000, 0x400000, CRC(bd3a391f) SHA1(972bf09b75e99a683ee965bec93b0da8f15d72d9) )
+ ROM_LOAD16_WORD_SWAP( "svc-v4.bin", 0x800000, 0x400000, CRC(33fc0b37) SHA1(d61017d829f44c7df8795ba10c55c727d9972662) )
+ ROM_LOAD16_WORD_SWAP( "svc-v3.bin", 0xc00000, 0x400000, CRC(aa9849a0) SHA1(9539b3356a070a066a89f27c287f316e7367ce2a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "svc-c1.bin", 0x0000000, 0x800000, CRC(a7826b89) SHA1(3bbe348ce54b80b56ef032ea532a18ef3cafeb11) )
+ ROM_LOAD16_BYTE( "svc-c2.bin", 0x0000001, 0x800000, CRC(ed3c2089) SHA1(b5d17692f15f5a678c273589fab2e3918711135e) )
+ ROM_LOAD16_BYTE( "svc-c3.bin", 0x1000000, 0x800000, CRC(71ed8063) SHA1(ea1df9e2e382a8560a06d447421844cc588f43dd) )
+ ROM_LOAD16_BYTE( "svc-c4.bin", 0x1000001, 0x800000, CRC(250bde2d) SHA1(8c72dcfceef6d022ab4b73ab37cf3ac0c3940c17) )
+ ROM_LOAD16_BYTE( "svc-c5.bin", 0x2000000, 0x800000, CRC(9817c082) SHA1(1bea9c7220c2b1524896c86841d6d8fd55f5d366) )
+ ROM_LOAD16_BYTE( "svc-c6.bin", 0x2000001, 0x800000, CRC(2bc0307f) SHA1(8090fa82c46eb503832359093c8cc3cee3141c90) )
+ ROM_LOAD16_BYTE( "svc-c7.bin", 0x3000000, 0x800000, CRC(4358d7b9) SHA1(9270b58c2abc072a046bedda72f1395df26d0714) )
+ ROM_LOAD16_BYTE( "svc-c8.bin", 0x3000001, 0x800000, CRC(366deee5) SHA1(d477ad7a5987fd6c7ef2c1680fbb7c884654590e) )
+ROM_END
+
+ROM_START( svcsplus )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "svc-p1sp.bin", 0x000000, 0x400000, CRC(2601902f) SHA1(202348a13c6480f7de37a3ee983823838822fc98) )
+ ROM_LOAD16_WORD_SWAP( "svc-p2sp.bin", 0x400000, 0x400000, CRC(0ca13305) SHA1(ac8fbca71b754acbcdd11802161a62ae1cf32d88) )
+
+ NEO_SFIX_128K( "svc-s1sp.bin", CRC(233d6439) SHA1(369024c7a2405c3144c14ac016c07c3dc0f44187) )
+
+ NEOGEO_BIOS
+
+ ROM_REGION( 0x20000, "audiobios", 0 )
+ ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) )
+
+ ROM_REGION( 0x50000, "audiocpu", 0 )
+ ROM_LOAD( "svc-m1.bin", 0x20000, 0x10000, CRC(804328c3) SHA1(f931636c563b0789d4812033a77b47bf663db43f) )
+ ROM_CONTINUE( 0x00000, 0x10000 )
+ ROM_COPY( "audiocpu", 0x000000, 0x10000, 0x10000 )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD16_WORD_SWAP( "svc-v2.bin", 0x000000, 0x400000, CRC(b5097287) SHA1(3ba3a9b5624879616382ed40337a3d9c50a0f314) )
+ ROM_LOAD16_WORD_SWAP( "svc-v1.bin", 0x400000, 0x400000, CRC(bd3a391f) SHA1(972bf09b75e99a683ee965bec93b0da8f15d72d9) )
+ ROM_LOAD16_WORD_SWAP( "svc-v4.bin", 0x800000, 0x400000, CRC(33fc0b37) SHA1(d61017d829f44c7df8795ba10c55c727d9972662) )
+ ROM_LOAD16_WORD_SWAP( "svc-v3.bin", 0xc00000, 0x400000, CRC(aa9849a0) SHA1(9539b3356a070a066a89f27c287f316e7367ce2a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "svc-c1.bin", 0x0000000, 0x800000, CRC(a7826b89) SHA1(3bbe348ce54b80b56ef032ea532a18ef3cafeb11) )
+ ROM_LOAD16_BYTE( "svc-c2.bin", 0x0000001, 0x800000, CRC(ed3c2089) SHA1(b5d17692f15f5a678c273589fab2e3918711135e) )
+ ROM_LOAD16_BYTE( "svc-c3.bin", 0x1000000, 0x800000, CRC(71ed8063) SHA1(ea1df9e2e382a8560a06d447421844cc588f43dd) )
+ ROM_LOAD16_BYTE( "svc-c4.bin", 0x1000001, 0x800000, CRC(250bde2d) SHA1(8c72dcfceef6d022ab4b73ab37cf3ac0c3940c17) )
+ ROM_LOAD16_BYTE( "svc-c5.bin", 0x2000000, 0x800000, CRC(9817c082) SHA1(1bea9c7220c2b1524896c86841d6d8fd55f5d366) )
+ ROM_LOAD16_BYTE( "svc-c6.bin", 0x2000001, 0x800000, CRC(2bc0307f) SHA1(8090fa82c46eb503832359093c8cc3cee3141c90) )
+ ROM_LOAD16_BYTE( "svc-c7.bin", 0x3000000, 0x800000, CRC(4358d7b9) SHA1(9270b58c2abc072a046bedda72f1395df26d0714) )
+ ROM_LOAD16_BYTE( "svc-c8.bin", 0x3000001, 0x800000, CRC(366deee5) SHA1(d477ad7a5987fd6c7ef2c1680fbb7c884654590e) )
+ROM_END
+
+/* Samurai Shodown 5 bootleg */
+
+ROM_START( samsho5b )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "ssv-p2.bin", 0x000000, 0x400000, CRC(5023067f) SHA1(b1d682fa7d158f19664356a919da6572e8cfeee0) )
+ ROM_LOAD16_WORD_SWAP( "ssv-p1.bin", 0x400000, 0x400000, CRC(b6cbe386) SHA1(99c2407361116c2b2c5fe72df53e05c5f99163c1) )
+
+ NEO_SFIX_128K( "ssv-s1.bin", CRC(70f667d0) SHA1(6d7ce62bb77eb215cc22d6c3c677accfd740aa83) )
+
+ NEO_BIOS_AUDIO_128K( "ssv-m1.bin", CRC(18114fb1) SHA1(016dc2f328340f3637a9bff373a20973df29f6b8) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "ssv-v1.bin", 0x000000, 0x400000, CRC(a3609761) SHA1(6dce1dbfd228c739b3716ae1cf08fd7f925d8650) )
+ ROM_LOAD( "ssv-v2.bin", 0x400000, 0x400000, CRC(cbd6ebd5) SHA1(00211be3fa32035b0947ac65920ea8acae7bfae2) )
+ ROM_LOAD( "ssv-v3.bin", 0x800000, 0x400000, CRC(6f1c2703) SHA1(8015df3d788cb7926ebbcda64a96964fe102ba27) )
+ ROM_LOAD( "ssv-v4.bin", 0xc00000, 0x400000, CRC(5020c055) SHA1(bd1e68d1b0a47b0e2b365159e210048f8b22823a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "ssv-c1.bin", 0x0000000, 0x1000000, CRC(9c564a01) SHA1(99dc8900fd8f56ae04fff72b34ddcaa8abe4c1be) )
+ ROM_LOAD16_BYTE( "ssv-c2.bin", 0x0000001, 0x1000000, CRC(4b73b8da) SHA1(a8b626de74cf57bbd8c222e8e24c953c9e8680f4) )
+ ROM_LOAD16_BYTE( "ssv-c3.bin", 0x2000000, 0x1000000, CRC(029f9bb5) SHA1(6296c879aa0bbd22383ceeeac0326805cbc8b4ec) )
+ ROM_LOAD16_BYTE( "ssv-c4.bin", 0x2000001, 0x1000000, CRC(75722430) SHA1(30594c30a167e75463670249df7744755e39e75b) )
+ROM_END
+
+/* The King of Fighters 2003 bootlegs */
+
+ROM_START( kf2k3bl )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "2k3-p1.bin", 0x100000, 0x400000, CRC(92ed6ee3) SHA1(5e7e21eb40dfcc453ba73808760d5ddedd49c58a) )
+ ROM_LOAD16_WORD_SWAP( "2k3-p2.bin", 0x500000, 0x200000, CRC(5d3d8bb3) SHA1(7f2341f14ca12ff5721eb038b3496228a1f34b60) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "2k3-s1.bin", CRC(482c48a5) SHA1(27e2f5295a9a838e112be28dafc111893a388a16) )
+
+ NEO_BIOS_AUDIO_128K( "2k3-m1.bin", CRC(3a4969ff) SHA1(2fc107a023a82053a8df63025829bcf12cee9610) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "271-v1c.v1", 0x000000, 0x800000, CRC(ffa3f8c7) SHA1(7cf4a933973ca23b7f87c81151d8659e6ec4bd20) )
+ ROM_LOAD( "271-v2c.v2", 0x800000, 0x800000, CRC(5382c7d1) SHA1(1bf999705eda80ba1e7b0d6bdd010d9bfb18bd76) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "271-c1c.c1", 0x0000000, 0x800000, CRC(b1dc25d0) SHA1(50adc3c60d5b4b3abd10a49db2267306c6dbd772) )
+ ROM_LOAD16_BYTE( "271-c2c.c2", 0x0000001, 0x800000, CRC(d5362437) SHA1(66db36522dc09106388c707252df9fe1c88b4856) )
+ ROM_LOAD16_BYTE( "271-c3c.c3", 0x1000000, 0x800000, CRC(0a1fbeab) SHA1(9fe30d36ba98d00fda010832ff2f27783dd577c1) )
+ ROM_LOAD16_BYTE( "271-c4c.c4", 0x1000001, 0x800000, CRC(87b19a0c) SHA1(b72a8e7d9124ce859b5149bb4381ba481c161ea5) )
+ ROM_LOAD16_BYTE( "271-c5c.c5", 0x2000000, 0x800000, CRC(704ea371) SHA1(e75b80422f0d72eac826f8ffadf79efeccaab124) )
+ ROM_LOAD16_BYTE( "271-c6c.c6", 0x2000001, 0x800000, CRC(20a1164c) SHA1(c9843b37612a16fc95f6851793b1cfb5d49d811d) )
+ ROM_LOAD16_BYTE( "271-c7c.c7", 0x3000000, 0x800000, CRC(189aba7f) SHA1(7152195a57ad36b28290810fe87ed8c206262ba9) )
+ ROM_LOAD16_BYTE( "271-c8c.c8", 0x3000001, 0x800000, CRC(20ec4fdc) SHA1(deb5f7ec5a090e419b9d1a6a74877bee081198e2) )
+ROM_END
+
+ROM_START( kf2k3bla )
+ ROM_REGION( 0x700000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "2k3-p1bl.bin", 0x000000, 0x100000, CRC(4ea414dd) SHA1(c242c9709c20a8cde3ad562adbe640a5dd5abcf1) )
+ ROM_LOAD16_WORD_SWAP( "2k3-p3bl.bin", 0x100000, 0x400000, CRC(370acbff) SHA1(e72544de1c5e2e4f7478fc003caba9e33a306c19) )
+ ROM_LOAD16_WORD_SWAP( "2k3-p2bl.bin", 0x500000, 0x200000, CRC(9c04fc52) SHA1(f41b53c79e4209373ec68276fa5941c91424bb15) )
+
+ NEO_SFIX_128K( "2k3-s1.bin", CRC(482c48a5) SHA1(27e2f5295a9a838e112be28dafc111893a388a16) )
+
+ NEO_BIOS_AUDIO_128K( "2k3-m1.bin", CRC(3a4969ff) SHA1(2fc107a023a82053a8df63025829bcf12cee9610) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "271-v1c.v1", 0x000000, 0x800000, CRC(ffa3f8c7) SHA1(7cf4a933973ca23b7f87c81151d8659e6ec4bd20) )
+ ROM_LOAD( "271-v2c.v2", 0x800000, 0x800000, CRC(5382c7d1) SHA1(1bf999705eda80ba1e7b0d6bdd010d9bfb18bd76) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "271-c1c.c1", 0x0000000, 0x800000, CRC(b1dc25d0) SHA1(50adc3c60d5b4b3abd10a49db2267306c6dbd772) )
+ ROM_LOAD16_BYTE( "271-c2c.c2", 0x0000001, 0x800000, CRC(d5362437) SHA1(66db36522dc09106388c707252df9fe1c88b4856) )
+ ROM_LOAD16_BYTE( "271-c3c.c3", 0x1000000, 0x800000, CRC(0a1fbeab) SHA1(9fe30d36ba98d00fda010832ff2f27783dd577c1) )
+ ROM_LOAD16_BYTE( "271-c4c.c4", 0x1000001, 0x800000, CRC(87b19a0c) SHA1(b72a8e7d9124ce859b5149bb4381ba481c161ea5) )
+ ROM_LOAD16_BYTE( "271-c5c.c5", 0x2000000, 0x800000, CRC(704ea371) SHA1(e75b80422f0d72eac826f8ffadf79efeccaab124) )
+ ROM_LOAD16_BYTE( "271-c6c.c6", 0x2000001, 0x800000, CRC(20a1164c) SHA1(c9843b37612a16fc95f6851793b1cfb5d49d811d) )
+ ROM_LOAD16_BYTE( "271-c7c.c7", 0x3000000, 0x800000, CRC(189aba7f) SHA1(7152195a57ad36b28290810fe87ed8c206262ba9) )
+ ROM_LOAD16_BYTE( "271-c8c.c8", 0x3000001, 0x800000, CRC(20ec4fdc) SHA1(deb5f7ec5a090e419b9d1a6a74877bee081198e2) )
+ROM_END
+
+ROM_START( kf2k3pl )
+ ROM_REGION( 0x700000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "2k3-p1pl.bin", 0x000000, 0x100000, CRC(07b84112) SHA1(0b085a928a39ff9c0745a58bfa4ce6106b5f474a) )
+ ROM_LOAD16_WORD_SWAP( "2k3-p3bl.bin", 0x100000, 0x400000, CRC(370acbff) SHA1(e72544de1c5e2e4f7478fc003caba9e33a306c19) )
+ ROM_LOAD16_WORD_SWAP( "2k3-p2bl.bin", 0x500000, 0x200000, CRC(9c04fc52) SHA1(f41b53c79e4209373ec68276fa5941c91424bb15) )
+
+ NEO_SFIX_128K( "2k3-s1pl.bin", CRC(ad548a36) SHA1(7483dbe2d74a1bd1b4dc501e99e48a683416d08e) )
+
+ NEO_BIOS_AUDIO_128K( "2k3-m1.bin", CRC(3a4969ff) SHA1(2fc107a023a82053a8df63025829bcf12cee9610) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "271-v1c.v1", 0x000000, 0x800000, CRC(ffa3f8c7) SHA1(7cf4a933973ca23b7f87c81151d8659e6ec4bd20) )
+ ROM_LOAD( "271-v2c.v2", 0x800000, 0x800000, CRC(5382c7d1) SHA1(1bf999705eda80ba1e7b0d6bdd010d9bfb18bd76) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "271-c1c.c1", 0x0000000, 0x800000, CRC(b1dc25d0) SHA1(50adc3c60d5b4b3abd10a49db2267306c6dbd772) )
+ ROM_LOAD16_BYTE( "271-c2c.c2", 0x0000001, 0x800000, CRC(d5362437) SHA1(66db36522dc09106388c707252df9fe1c88b4856) )
+ ROM_LOAD16_BYTE( "271-c3c.c3", 0x1000000, 0x800000, CRC(0a1fbeab) SHA1(9fe30d36ba98d00fda010832ff2f27783dd577c1) )
+ ROM_LOAD16_BYTE( "271-c4c.c4", 0x1000001, 0x800000, CRC(87b19a0c) SHA1(b72a8e7d9124ce859b5149bb4381ba481c161ea5) )
+ ROM_LOAD16_BYTE( "271-c5c.c5", 0x2000000, 0x800000, CRC(704ea371) SHA1(e75b80422f0d72eac826f8ffadf79efeccaab124) )
+ ROM_LOAD16_BYTE( "271-c6c.c6", 0x2000001, 0x800000, CRC(20a1164c) SHA1(c9843b37612a16fc95f6851793b1cfb5d49d811d) )
+ ROM_LOAD16_BYTE( "271-c7c.c7", 0x3000000, 0x800000, CRC(189aba7f) SHA1(7152195a57ad36b28290810fe87ed8c206262ba9) )
+ ROM_LOAD16_BYTE( "271-c8c.c8", 0x3000001, 0x800000, CRC(20ec4fdc) SHA1(deb5f7ec5a090e419b9d1a6a74877bee081198e2) )
+ROM_END
+
+ROM_START( kf2k3upl )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "2k3-p1up.bin", 0x000000, 0x800000, CRC(87294c01) SHA1(21420415a6b2ba1b43ecc1934270dc085d6bd7d9) )
+
+ NEO_SFIX_128K( "2k3-s1up.bin", CRC(e5708c0c) SHA1(5649446d3b0b1bd138b5a8b40b96a6d0f892f4d8) )
+
+ NEO_BIOS_AUDIO_128K( "2k3-m1.bin", CRC(3a4969ff) SHA1(2fc107a023a82053a8df63025829bcf12cee9610) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "271-v1c.v1", 0x000000, 0x800000, CRC(ffa3f8c7) SHA1(7cf4a933973ca23b7f87c81151d8659e6ec4bd20) )
+ ROM_LOAD( "271-v2c.v2", 0x800000, 0x800000, CRC(5382c7d1) SHA1(1bf999705eda80ba1e7b0d6bdd010d9bfb18bd76) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "271-c1c.c1", 0x0000000, 0x800000, CRC(b1dc25d0) SHA1(50adc3c60d5b4b3abd10a49db2267306c6dbd772) )
+ ROM_LOAD16_BYTE( "271-c2c.c2", 0x0000001, 0x800000, CRC(d5362437) SHA1(66db36522dc09106388c707252df9fe1c88b4856) )
+ ROM_LOAD16_BYTE( "271-c3c.c3", 0x1000000, 0x800000, CRC(0a1fbeab) SHA1(9fe30d36ba98d00fda010832ff2f27783dd577c1) )
+ ROM_LOAD16_BYTE( "271-c4c.c4", 0x1000001, 0x800000, CRC(87b19a0c) SHA1(b72a8e7d9124ce859b5149bb4381ba481c161ea5) )
+ ROM_LOAD16_BYTE( "271-c5c.c5", 0x2000000, 0x800000, CRC(704ea371) SHA1(e75b80422f0d72eac826f8ffadf79efeccaab124) )
+ ROM_LOAD16_BYTE( "271-c6c.c6", 0x2000001, 0x800000, CRC(20a1164c) SHA1(c9843b37612a16fc95f6851793b1cfb5d49d811d) )
+ ROM_LOAD16_BYTE( "271-c7c.c7", 0x3000000, 0x800000, CRC(189aba7f) SHA1(7152195a57ad36b28290810fe87ed8c206262ba9) )
+ ROM_LOAD16_BYTE( "271-c8c.c8", 0x3000001, 0x800000, CRC(20ec4fdc) SHA1(deb5f7ec5a090e419b9d1a6a74877bee081198e2) )
+ROM_END
+
+
+ /* Unlicensed Prototypes */
+
+ROM_START( diggerma ) /* Unlicensed Prototype, no official game ID # */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "dig-p1.bin", 0x000000, 0x080000, CRC(eda433d7) SHA1(abb14c66777ab0fe4ac76a402e253a49df7178d8) )
+
+ NEO_SFIX_128K( "dig-s1.bin", CRC(9b3168f0) SHA1(9be8c625686a1482f7399e5a856cfe2fef25ec52) )
+
+ NEO_BIOS_AUDIO_128K( "dig-m1.bin", CRC(e777a234) SHA1(9f3974ac07859337bc0203f903c40ae3f60dc1fb) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "dig-v1.bin", 0x000000, 0x080000, CRC(ee15bda4) SHA1(fe2206728e6efd02d6302869a98b196eb19a17df) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "dig-c1.bin", 0x000000, 0x080000, CRC(3db0a4ed) SHA1(6214faa883d97ea05809b6af7e0c85a236a18a28) )
+ ROM_LOAD16_BYTE( "dig-c2.bin", 0x000001, 0x080000, CRC(3e632161) SHA1(83711c4286fb1d9f3f91414ac6e5fed36618033e) )
+ROM_END
+
+// MVS cart
+ROM_START( lasthope )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "NGDT-300-P1.bin", 0x000000, 0x100000, CRC(3776a88f) SHA1(ea8b669da06d7c6b5ff7fa97a195f56a9253a7a1) )
+
+ NEO_SFIX_64K( "NGDT-300-S1.bin", CRC(0c0ff9e6) SHA1(c87d1ea8731ac1e63ab960b8182dd1043bcc10bb) )
+
+ NEO_BIOS_AUDIO_128K( "NGDT-300-M1.bin", CRC(113c870f) SHA1(854425eb4be0d7fa088a6c3bf6078fdd011707f5) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "NGDT-300-V1.bin", 0x000000, 0x200000, CRC(b765bafe) SHA1(b2048c44089bf250c8dcfabb27c7981e9ee5002a) )
+ ROM_LOAD( "NGDT-300-V2.bin", 0x200000, 0x200000, CRC(9fd0d559) SHA1(09e70d5e1c6e172a33f48feb3e442515c34a8f3d) )
+ ROM_LOAD( "NGDT-300-V3.bin", 0x400000, 0x200000, CRC(6d5107e2) SHA1(4ba74836e3d0421a28af47d3d8341ac16af1d7d7) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "NGDT-300-C1.bin", 0x000000, 0x400000, CRC(53ef41b5) SHA1(a8f1fe546403b609e12f0df211c05d7ac479d98d) )
+ ROM_LOAD16_BYTE( "NGDT-300-C2.bin", 0x000001, 0x400000, CRC(f9b15ab3) SHA1(d8ff2f43686bfc8c2f7ead3ef445e51c15dfbf16) )
+ ROM_LOAD16_BYTE( "NGDT-300-C3.bin", 0x800000, 0x400000, CRC(50cc21cf) SHA1(0350aaef480c5fa12e68e540a4c974dbf5870add) )
+ ROM_LOAD16_BYTE( "NGDT-300-C4.bin", 0x800001, 0x400000, CRC(8486ad9e) SHA1(19a2a73c825687e0cb9fd62bde00db91b5409529))
+ROM_END
+
+
+/*************************************
+ *
+ * Game-specific inits
+ *
+ *************************************/
+
+ // macros allow code below to be copy+pasted into slot devices more easily
+#define cpuregion memregion("maincpu")->base()
+#define cpuregion_size memregion("maincpu")->bytes()
+#define spr_region memregion("sprites")->base()
+#define spr_region_size memregion("sprites")->bytes()
+#define fix_region memregion("fixed")->base()
+#define fix_region_size memregion("fixed")->bytes()
+#define ym_region memregion("ymsnd")->base()
+#define ym_region_size memregion("ymsnd")->bytes()
+#define audiocpu_region memregion("audiocpu")->base()
+#define audio_region_size memregion("audiocpu")->bytes()
+#define audiocrypt_region memregion("audiocrypt")->base()
+#define audiocrypt_region_size memregion("audiocrypt")->bytes()
+
+
+/*********************************************** SMA + CMC42 */
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,kof99)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sma_prot->kof99_decrypt_68k(cpuregion);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->cmc42_neogeo_gfx_decrypt(spr_region, spr_region_size, KOF99_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+ m_sma_prot->kof99_install_protection(m_maincpu,m_banked_cart);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,garou)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sma_prot->garou_decrypt_68k(cpuregion);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->cmc42_neogeo_gfx_decrypt(spr_region, spr_region_size, GAROU_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+ m_sma_prot->garou_install_protection(m_maincpu,m_banked_cart);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,garouh)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sma_prot->garouh_decrypt_68k(cpuregion);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->cmc42_neogeo_gfx_decrypt(spr_region, spr_region_size, GAROU_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+ m_sma_prot->garouh_install_protection(m_maincpu,m_banked_cart);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,mslug3)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sma_prot->mslug3_decrypt_68k(cpuregion);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->cmc42_neogeo_gfx_decrypt(spr_region, spr_region_size, MSLUG3_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+ m_sma_prot->mslug3_install_protection(m_maincpu,m_banked_cart);
+}
+
+/*********************************************** SMA + CMC50 */
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,kof2000)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sma_prot->kof2000_decrypt_68k(cpuregion);
+ m_sprgen->m_fixed_layer_bank_type = 2;
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, KOF2000_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+ m_sma_prot->kof2000_install_protection(m_maincpu, m_banked_cart);
+}
+
+/*********************************************** CMC42 */
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,mslug3h)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->cmc42_neogeo_gfx_decrypt(spr_region, spr_region_size, MSLUG3_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,ganryu)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->cmc42_neogeo_gfx_decrypt(spr_region, spr_region_size, GANRYU_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,s1945p)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->cmc42_neogeo_gfx_decrypt(spr_region, spr_region_size, S1945P_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,preisle2)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->cmc42_neogeo_gfx_decrypt(spr_region, spr_region_size, PREISLE2_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,bangbead)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->cmc42_neogeo_gfx_decrypt(spr_region, spr_region_size, BANGBEAD_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,nitd)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->cmc42_neogeo_gfx_decrypt(spr_region, spr_region_size, NITD_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,sengoku3)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->cmc42_neogeo_gfx_decrypt(spr_region, spr_region_size, SENGOKU3_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,zupapa)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->cmc42_neogeo_gfx_decrypt(spr_region, spr_region_size, ZUPAPA_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,kof99k)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->cmc42_neogeo_gfx_decrypt(spr_region, spr_region_size, KOF99_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+/*********************************************** CMC50 */
+
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,kof2000n)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 2;
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, KOF2000_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,kof2001)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, KOF2001_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size);
+}
+
+/*********************************************** CMC50 + PCM2 */
+
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,mslug4)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 1; /* USA violent content screen is wrong -- not a bug, confirmed on real hardware! */
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, MSLUG4_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+ m_pcm2_prot->neo_pcm2_snk_1999(ym_region, ym_region_size, 8);
+}
+
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,rotd)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_pcm2_prot->neo_pcm2_snk_1999(ym_region, ym_region_size, 16);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, ROTD_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,pnyaa)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_pcm2_prot->neo_pcm2_snk_1999(ym_region, ym_region_size, 4);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, PNYAA_GFX_KEY );
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+/*********************************************** CMC50 + PCM2 + prg scramble */
+
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,kof2002)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_kof2002_prot->kof2002_decrypt_68k(cpuregion, cpuregion_size);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 0);
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, KOF2002_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,matrim)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_kof2002_prot->matrim_decrypt_68k(cpuregion, cpuregion_size);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 1);
+ m_sprgen->m_fixed_layer_bank_type = 2;
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, MATRIM_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,samsho5)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_kof2002_prot->samsho5_decrypt_68k(cpuregion, cpuregion_size);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 4);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, SAMSHO5_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,samsh5sp)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_kof2002_prot->samsh5sp_decrypt_68k(cpuregion, cpuregion_size);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 6);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, SAMSHO5SP_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+/*********************************************** CMC50 + PCM2 + PVC */
+
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,mslug5)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_pvc_prot->mslug5_decrypt_68k(cpuregion, cpuregion_size);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 2);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, MSLUG5_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+ m_pvc_prot->install_pvc_protection(m_maincpu,m_banked_cart);
+}
+
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,svc)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_pvc_prot->svc_px_decrypt(cpuregion, cpuregion_size);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 3);
+ m_sprgen->m_fixed_layer_bank_type = 2;
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, SVC_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+ m_pvc_prot->install_pvc_protection(m_maincpu,m_banked_cart);
+}
+
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,kof2003)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_pvc_prot->kof2003_decrypt_68k(cpuregion, cpuregion_size);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 5);
+ m_sprgen->m_fixed_layer_bank_type = 2;
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, KOF2003_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+ m_pvc_prot->install_pvc_protection(m_maincpu,m_banked_cart);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,kof2003h)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_pvc_prot->kof2003h_decrypt_68k(cpuregion, cpuregion_size);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 5);
+ m_sprgen->m_fixed_layer_bank_type = 2;
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, KOF2003_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+ m_pvc_prot->install_pvc_protection(m_maincpu,m_banked_cart);
+}
+
+/*********************************************** misc carts */
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,mslugx)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_mslugx_prot->mslugx_install_protection(m_maincpu);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,fatfury2)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_fatfury2_prot->fatfury2_install_protection(m_maincpu,m_banked_cart);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,kof98)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_kof98_prot->kof98_decrypt_68k(cpuregion, cpuregion_size);
+ m_kof98_prot->install_kof98_protection(m_maincpu);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,sbp)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sbp_prot->sbp_install_protection(m_maincpu, cpuregion, cpuregion_size);
+}
+
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,jockeygp)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, JOCKEYGP_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+
+ /* install some extra RAM */
+ m_maincpu->space(AS_PROGRAM).install_ram(0x200000, 0x201fff);
+
+// m_maincpu->space(AS_PROGRAM).install_read_port(0x280000, 0x280001, "IN5");
+// m_maincpu->space(AS_PROGRAM).install_read_port(0x2c0000, 0x2c0001, "IN6");
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,vliner)
+{
+ m_banked_cart->install_banks(machine(), m_maincpu, m_region_maincpu->base(), m_region_maincpu->bytes());
+
+ m_sprgen->m_fixed_layer_bank_type = 0;
+
+ m_maincpu->space(AS_PROGRAM).install_ram(0x200000, 0x201fff);
+
+ m_maincpu->space(AS_PROGRAM).install_read_port(0x300000, 0x300001, 0x01ff7e, "DSW");
+ m_maincpu->space(AS_PROGRAM).install_read_port(0x280000, 0x280001, "IN5");
+ m_maincpu->space(AS_PROGRAM).install_read_port(0x2c0000, 0x2c0001, "IN6");
+
+}
+
+
+/*********************************************** bootlegs */
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,garoubl)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,2);
+ m_bootleg_prot->neogeo_bootleg_cx_decrypt(spr_region, spr_region_size);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,cthd2003)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_bootleg_prot->decrypt_cthd2003(spr_region, spr_region_size, audiocpu_region,audio_region_size, fix_region, fix_region_size);
+ m_bootleg_prot->patch_cthd2003(m_maincpu,m_banked_cart, cpuregion, cpuregion_size);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,ct2k3sp)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_bootleg_prot->decrypt_ct2k3sp(spr_region, spr_region_size, audiocpu_region,audio_region_size, fix_region, fix_region_size);
+ m_bootleg_prot->patch_cthd2003(m_maincpu,m_banked_cart, cpuregion, cpuregion_size);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,ct2k3sa)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_bootleg_prot->decrypt_ct2k3sa(spr_region, spr_region_size, audiocpu_region,audio_region_size);
+ m_bootleg_prot->patch_ct2k3sa(cpuregion, cpuregion_size);
+}
+
+
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,kf10thep)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_bootleg_prot->kf10thep_px_decrypt(cpuregion, cpuregion_size);
+ m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,1);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,kf2k5uni)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_bootleg_prot->decrypt_kf2k5uni(cpuregion, cpuregion_size, audiocpu_region,audio_region_size, fix_region, fix_region_size);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,kof2k4se)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_bootleg_prot->decrypt_kof2k4se_68k(cpuregion, cpuregion_size);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,svcplus)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_bootleg_prot->svcplus_px_decrypt(cpuregion, cpuregion_size);
+ m_bootleg_prot->svcboot_cx_decrypt(spr_region, spr_region_size);
+ m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size, 1);
+ m_bootleg_prot->svcplus_px_hack(cpuregion, cpuregion_size);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,svcplusa)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_bootleg_prot->svcplusa_px_decrypt(cpuregion, cpuregion_size);
+ m_bootleg_prot->svcboot_cx_decrypt(spr_region, spr_region_size);
+ m_bootleg_prot->svcplus_px_hack(cpuregion, cpuregion_size);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,samsho5b)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_bootleg_prot->samsho5b_px_decrypt(cpuregion, cpuregion_size);
+ m_bootleg_prot->samsho5b_vx_decrypt(ym_region, ym_region_size);
+ m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,1);
+ m_bootleg_prot->neogeo_bootleg_cx_decrypt(spr_region, spr_region_size);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,kof97oro)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_bootleg_prot->kof97oro_px_decode(cpuregion, cpuregion_size);
+ m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,1);
+ m_bootleg_prot->neogeo_bootleg_cx_decrypt(spr_region, spr_region_size);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,lans2004)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_bootleg_prot->lans2004_decrypt_68k(cpuregion, cpuregion_size);
+ m_bootleg_prot->lans2004_vx_decrypt(ym_region, ym_region_size);
+ m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,1);
+ m_bootleg_prot->neogeo_bootleg_cx_decrypt(spr_region, spr_region_size);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,kof10th)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_bootleg_prot->decrypt_kof10th(cpuregion, cpuregion_size);
+ m_bootleg_prot->install_kof10th_protection(m_maincpu,m_banked_cart, cpuregion, cpuregion_size, fix_region, fix_region_size);
+}
+
+
+DRIVER_INIT_MEMBER(neogeo_noslot_kog_state,kog)
+{
+ DRIVER_INIT_CALL(neogeo);
+
+ m_kog_prot->kog_px_decrypt(cpuregion, cpuregion_size);
+ m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,1);
+ m_bootleg_prot->neogeo_bootleg_cx_decrypt(spr_region, spr_region_size);
+ m_kog_prot->kog_install_protection(m_maincpu);
+}
+
+
+
+/*********************************************** bootlegs - can use original prot */
+
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,ms4plus)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, MSLUG4_GFX_KEY);
+ m_pcm2_prot->neo_pcm2_snk_1999(ym_region, ym_region_size, 8);
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,kf2k2pls)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_kof2002_prot->kof2002_decrypt_68k(cpuregion, cpuregion_size);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 0);
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, KOF2002_GFX_KEY);
+}
+
+/*********************************************** bootleg hybrid */
+
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,mslug3b6)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,2);
+ m_cmc_prot->cmc42_neogeo_gfx_decrypt(spr_region, spr_region_size, MSLUG3_GFX_KEY);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,kof2002b)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_kof2002_prot->kof2002_decrypt_68k(cpuregion, cpuregion_size);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 0);
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size);
+ m_bootleg_prot->kof2002b_gfx_decrypt(spr_region,0x4000000);
+ m_bootleg_prot->kof2002b_gfx_decrypt(fix_region,0x20000);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,kf2k2mp)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_bootleg_prot->kf2k2mp_decrypt(cpuregion, cpuregion_size);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 0);
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size);
+ m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,2);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, KOF2002_GFX_KEY);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,kf2k2mp2)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_bootleg_prot->kf2k2mp2_px_decrypt(cpuregion, cpuregion_size);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 0);
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size);
+ m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,1);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, KOF2002_GFX_KEY);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,matrimbl)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_kof2002_prot->matrim_decrypt_68k(cpuregion, cpuregion_size);
+ m_sprgen->m_fixed_layer_bank_type = 2;
+ m_bootleg_prot->matrimbl_decrypt(spr_region, spr_region_size, audiocpu_region,audio_region_size);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size); /* required for text layer */
+}
+
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,ms5plus)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, MSLUG5_GFX_KEY);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 2);
+ m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,1);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size);
+ m_bootleg_prot->install_ms5plus_protection(m_maincpu,m_banked_cart);
+}
+
+
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,svcboot)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_bootleg_prot->svcboot_px_decrypt(cpuregion, cpuregion_size);
+ m_bootleg_prot->svcboot_cx_decrypt(spr_region, spr_region_size);
+ m_pvc_prot->install_pvc_protection(m_maincpu,m_banked_cart);
+}
+
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,svcsplus)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_bootleg_prot->svcsplus_px_decrypt(cpuregion, cpuregion_size);
+ m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,2);
+ m_bootleg_prot->svcboot_cx_decrypt(spr_region, spr_region_size);
+ m_bootleg_prot->svcsplus_px_hack(cpuregion, cpuregion_size);
+ m_pvc_prot->install_pvc_protection(m_maincpu,m_banked_cart);
+}
+
+
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,kf2k3bl)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, KOF2003_GFX_KEY);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 5);
+ m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,1);
+ m_bootleg_prot->kf2k3bl_install_protection(m_maincpu,m_banked_cart, cpuregion, cpuregion_size);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,kf2k3pl)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, KOF2003_GFX_KEY);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 5);
+ m_bootleg_prot->kf2k3pl_px_decrypt(cpuregion, cpuregion_size);
+ m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,1);
+ m_bootleg_prot->kf2k3pl_install_protection(m_maincpu,m_banked_cart, cpuregion, cpuregion_size);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,kf2k3upl)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, KOF2003_GFX_KEY);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 5);
+ m_bootleg_prot->kf2k3upl_px_decrypt(cpuregion, cpuregion_size);
+ m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,2);
+ m_bootleg_prot->kf2k3bl_install_protection(m_maincpu,m_banked_cart, cpuregion, cpuregion_size);
+}
+
+
+
+
+
+
+/*********************************************** non-carts */
+
+void neogeo_noslot_state::install_banked_bios()
+{
+ m_maincpu->space(AS_PROGRAM).install_read_bank(0xc00000, 0xc1ffff, 0x0e0000, "bankedbios");
+ membank("bankedbios")->configure_entries(0, 2, memregion("mainbios")->base(), 0x20000);
+ membank("bankedbios")->set_entry(1);
+}
+
+INPUT_CHANGED_MEMBER(neogeo_state::select_bios)
+{
+ membank("bankedbios")->set_entry(newval ? 0 : 1);
+}
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,ms5pcb)
+{
+ DRIVER_INIT_CALL(neogeo);
+
+ m_pvc_prot->mslug5_decrypt_68k(cpuregion, cpuregion_size);
+ m_sma_prot->svcpcb_gfx_decrypt(spr_region, spr_region_size);
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, MSLUG5_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+ m_sprgen->m_fixed_layer_bank_type = 2;
+ m_sma_prot->svcpcb_s1data_decrypt(fix_region, fix_region_size);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 2);
+ m_pvc_prot->install_pvc_protection(m_maincpu,m_banked_cart);
+ install_banked_bios();
+}
+
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,svcpcb)
+{
+ DRIVER_INIT_CALL(neogeo);
+
+ m_pvc_prot->svc_px_decrypt(cpuregion, cpuregion_size);
+ m_sma_prot->svcpcb_gfx_decrypt(spr_region, spr_region_size);
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, SVC_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+ m_sma_prot->svcpcb_s1data_decrypt(fix_region, fix_region_size);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 3);
+ m_sprgen->m_fixed_layer_bank_type = 2;
+ m_pvc_prot->install_pvc_protection(m_maincpu,m_banked_cart);
+ install_banked_bios();
+}
+
+
+DRIVER_INIT_MEMBER(neogeo_noslot_state,kf2k3pcb)
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_pvc_prot->kf2k3pcb_decrypt_68k(cpuregion, cpuregion_size);
+ m_sma_prot->kf2k3pcb_gfx_decrypt(spr_region, spr_region_size);
+ m_sma_prot->kf2k3pcb_sp1_decrypt((uint16_t*)memregion("mainbios")->base());
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size);
+
+ /* extra little swap on the m1 - this must be performed AFTER the m1 decrypt
+ or the m1 checksum (used to generate the key) for decrypting the m1 is
+ incorrect */
+ {
+ uint8_t* rom = memregion("audiocpu")->base();
+ for (int i = 0; i < 0x90000; i++)
+ rom[i] = bitswap<8>(rom[i], 5, 6, 1, 4, 3, 0, 7, 2);
+ }
+
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, KOF2003_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+ m_sma_prot->kf2k3pcb_decrypt_s1data(spr_region, spr_region_size, fix_region, fix_region_size);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 5);
+ m_sprgen->m_fixed_layer_bank_type = 2;
+ m_pvc_prot->install_pvc_protection(m_maincpu,m_banked_cart);
+ m_maincpu->space(AS_PROGRAM).install_rom(0xc00000, 0xc7ffff, 0x080000, memregion("mainbios")->base()); // 512k bios
+}
+
+
+
+/*************************************
+ *
+ * Title catalog
+ * (source: http://neogeomuseum.snkplaymore.co.jp/english/catalogue/index.php)
+ *
+ *************************************
+
+ In 2010, SNK Playmore, the successor of SNK, released a title catalogue which lists the released
+ games (MVS/AES/CD) including their release dates in Japan. It is not 100% complete.
+ The included title catalogue is the english one.
+
+ Game Title Genre Publisher Date Released (in Japan)
+ =================================================================================================================================
+ NAM-1975 3D Action SNK MVS Cartridge:1990/04/26
+ NEOGEO ROM-cart:1991/07/01
+ NEOGEO CD:1994/09/09
+ MAHJONG KYORETSUDEN Mahjong SNK MVS Cartridge:1990/04/26
+ NEOGEO ROM-cart:1991/07/01
+ NEOGEO CD:1994/09/09
+ MAGICIAN LORD Action ADK MVS Cartridge:1990/04/26
+ NEOGEO ROM-cart:1991/07/01
+ NEOGEO CD:1994/10/31
+ BASEBALL STARS PROFESSIONAL Sports SNK MVS Cartridge:1990/04/26
+ NEOGEO ROM-cart:1991/07/01
+ NEOGEO CD:1995/04/21
+ TOP PLAYER'S GOLF Sports SNK MVS Cartridge:1990/05/23
+ NEOGEO ROM-cart:1991/07/01
+ NEOGEO CD:1994/09/09
+ NINJA COMBAT Action ADK MVS Cartridge:1990/07/24
+ NEOGEO ROM-cart:1991/07/01
+ NEOGEO CD:1994/10/31
+ RIDING HERO 3D Racing SNK MVS Cartridge:1990/07/24
+ NEOGEO ROM-cart:1991/07/01
+ NEOGEO CD:1995/05/26
+ THE SUPER SPY 3D Action SNK MVS Cartridge:1990/10/08
+ NEOGEO ROM-cart:1991/07/01
+ NEOGEO CD:1994/09/09
+ CYBER-LIP Action SNK MVS Cartridge:1990/11/07
+ NEOGEO ROM-cart:1991/07/01
+ NEOGEO CD:1995/04/21
+ PUZZLED Puzzle SNK MVS Cartridge:1990/11/20
+ NEOGEO ROM-cart:1991/07/01
+ NEOGEO CD:1994/09/09
+ LEAGUE BOWLING Sports SNK MVS Cartridge:1990/12/10
+ NEOGEO ROM-cart:1991/07/01
+ NEOGEO CD:1994/09/09
+ GHOST PILOTS Shooter SNK MVS Cartridge:1991/01/25
+ NEOGEO ROM-cart:1991/07/01
+ NEOGEO CD:1995/03/17
+ SENGOKU Action SNK MVS Cartridge:1991/02/12
+ NEOGEO ROM-cart:1991/07/01
+ NEOGEO CD:1995/03/17
+ KING OF THE MONSTERS Fighting SNK MVS Cartridge:1991/02/25
+ NEOGEO ROM-cart:1991/07/01
+ BLUE'S JOURNEY Action ADK MVS Cartridge:1991/03/14
+ NEOGEO ROM-cart:1991/07/01
+ NEOGEO CD:1994/10/31
+ ALPHA MISSION II Shooter SNK MVS Cartridge:1991/03/25
+ NEOGEO ROM-cart:1991/07/01
+ NEOGEO CD:1994/09/09
+ BURNING FIGHT Action SNK MVS Cartridge:1991/05/20
+ NEOGEO ROM-cart:1991/08/09
+ NEOGEO CD:1994/09/09
+ MINNASAN NO OKAGESAMA DESU Table Monolith MVS Cartridge:1991/07/25
+ NEOGEO ROM-cart:1991/07/21
+ CROSSED SWORDS Action ADK MVS Cartridge:1991/07/25
+ NEOGEO ROM-cart:1991/10/01
+ NEOGEO CD:1994/10/31
+ LEGEND OF SUCCESS JOE Action Wave MVS Cartridge:1991/07
+ NEOGEO ROM-cart:1991/08/30
+ QUIZ DAISUSA SEN: THE LAST COUNT DOWN Quiz SNK MVS Cartridge:1991/07
+ NEOGEO ROM-cart:1991/08/30
+ SUPER BASEBALL 2020 Sports SNK MVS Cartridge:1991/09/20
+ NEOGEO ROM-cart:1991/10/25
+ NEOGEO CD:1995/02/25
+ ROBO ARMY Action SNK MVS Cartridge:1991/10/30
+ NEOGEO ROM-cart:1991/12/20
+ NEOGEO CD:1995/04/21
+ THRASH RALLY Racing ADK MVS Cartridge:1991/11/08
+ NEOGEO ROM-cart:1991/12/20
+ NEOGEO CD:1994/10/31
+ EIGHT MAN Action SNK NEOGEO ROM-cart:1991/11/20
+ FATAL FURY Fighting SNK MVS Cartridge:1991/11/25
+ NEOGEO ROM-cart:1991/12/20
+ NEOGEO CD:1994/09/09
+ BAKATONO-SAMA MAHJONG MAN'YUKI Mahjong Monolith MVS Cartridge:1991/11
+ NEOGEO ROM-cart:1991/12/13
+ THRASH RALLY Racing ADK NEOGEO ROM-cart:1991/12/20
+ FOOTBALL FRENZY Sports SNK MVS Cartridge:1992/01/31
+ NEOGEO ROM-cart:1992/02/21
+ NEOGEO CD:1994/09/09
+ SOCCER BRAWL Sports SNK MVS Cartridge:1992/02/14
+ NEOGEO ROM-cart:1992/03/13
+ NEOGEO CD:1995/03/31
+ MUTATION NATION Action SNK MVS Cartridge:1992/03/16
+ NEOGEO ROM-cart:1992/04/17
+ NEOGEO CD:1995/02/25
+ LAST RESORT Shooter SNK MVS Cartridge:1992/03/23
+ NEOGEO ROM-cart:1992/04/24
+ NEOGEO CD:1994/09/09
+ QUIZ MEITANTEI NEO & GEO: QUIZ DAISOUSASEN PART 2 Quiz SNK MVS Cartridge:1992/03
+ NEOGEO ROM-cart:1991/04/24
+ BASEBALL STARS 2 Sports SNK MVS Cartridge:1992/04/15
+ NEOGEO ROM-cart:1992/04/28
+ NEOGEO CD:1994/09/09
+ NINJA COMMANDO Shooter ADK MVS Cartridge:1992/04/30
+ NEOGEO ROM-cart:1992/05/29
+ NEOGEO CD:1994/10/31
+ KING OF THE MONSTERS 2 Fighting SNK MVS Cartridge:1992/05/25
+ NEOGEO ROM-cart:1992/06/19
+ NEOGEO CD:1994/09/09
+ ANDRO DUNOS Shooter Visco MVS Cartridge:1992/06/15
+ NEOGEO ROM-cart:1992/07/17
+ WORLD HEROES Fighting ADK MVS Cartridge:1992/07/28
+ NEOGEO ROM-cart:1992/09/11
+ NEOGEO CD:1995/03/17
+ ART OF FIGHTING Fighting SNK MVS Cartridge:1992/09/24
+ NEOGEO ROM-cart:1992/12/11
+ NEOGEO CD:1994/09/09
+ VIEWPOINT Shooter Sammy MVS Cartridge:1992/11/20
+ NEOGEO ROM-cart:1992/12/11
+ NEOGEO CD:1995/02/25
+ FATAL FURY 2 Fighting SNK MVS Cartridge:1992/12/10
+ NEOGEO ROM-cart:1993/03/05
+ NEOGEO CD:1994/09/09
+ SUPER SIDEKICKS Sports SNK MVS Cartridge:1992/12/14
+ NEOGEO ROM-cart:1993/02/19
+ NEOGEO CD:1995/03/31
+ SENGOKU 2 Action SNK MVS Cartridge:1993/02/18
+ NEOGEO ROM-cart:1993/04/09
+ NEOGEO CD:1995/03/17
+ 3 COUNT BOUT Fighting SNK MVS Cartridge:1993/03/25
+ NEOGEO ROM-cart:1993/04/23
+ NEOGEO CD:1995/04/21
+ WORLD HEROES 2 Fighting ADK MVS Cartridge:1993/04/26
+ NEOGEO ROM-cart:1993/06/04
+ NEOGEO CD:1995/04/14
+ SAMURAI SHODOWN Fighting SNK MVS Cartridge:1993/07/07
+ NEOGEO ROM-cart:1993/08/11
+ NEOGEO CD:1994/09/09
+ FATAL FURY SPECIAL Fighting SNK MVS Cartridge:1993/09/16
+ NEOGEO ROM-cart:1993/12/22
+ NEOGEO CD:1994/09/09
+ SPINMASTER Sideview Action Data East MVS Cartridge:1993/12/16
+ NEOGEO ROM-cart:1994/02/18
+ ART OF FIGHTING 2 Fighting SNK MVS Cartridge:1994/02/03
+ NEOGEO ROM-cart:1994/03/11
+ NEOGEO CD:1994/09/09
+ WINDJAMMERS Sports Data East MVS Cartridge:1994/02/17
+ NEOGEO ROM-cart:1994/04/08
+ NEOGEO CD:1995/01/20
+ KARNOV'S REVENGE Fighting Data East MVS Cartridge:1994/03/17
+ NEOGEO ROM-cart:1994/04/28
+ NEOGEO CD:1994/12/22
+ SUPER SIDEKICKS 2 Sports SNK MVS Cartridge:1994/04/19
+ NEOGEO ROM-cart:1994/05/27
+ NEOGEO CD:1994/09/09
+ WORLD HEROES 2 JET Fighting ADK MVS Cartridge:1994/04/26
+ NEOGEO ROM-cart:1994/06/10
+ NEOGEO CD:1994/11/11
+ TOP HUNTER Action SNK MVS Cartridge:1994/05/18
+ NEOGEO ROM-cart:1994/06/24
+ NEOGEO CD:1994/09/29
+ GURURIN Puzzle Face MVS Cartridge:1994/05/25
+ FIGHT FEVER Fighting VICCOM MVS Cartridge:1994/06/28
+ JANSHIN DENSETSU: QUEST OF JONGMASTER Mahjong Aicom MVS Cartridge:1994/06/29
+ NEOGEO CD:1995/03/31
+ AERO FIGHTERS 2 Topview Shooter Video System MVS Cartridge:1994/07/18
+ NEOGEO ROM-cart:1994/08/26
+ NEOGEO CD:1994/09/29
+ AGGRESSORS OF DARK KOMBAT Fighting ADK MVS Cartridge:1994/07/26
+ NEOGEO ROM-cart:1994/08/26
+ NEOGEO CD:1995/01/13
+ THE KING OF FIGHTERS '94 Fighting SNK MVS Cartridge:1994/08/25
+ NEOGEO ROM-cart:1994/10/01
+ NEOGEO CD:1994/11/02
+ ZED BLADE Shooter NMK MVS Cartridge:1994/09/13
+ POWER SPIKES II Sports Video System MVS Cartridge:1994/10/19
+ NEOGEO CD:1995/03/18
+ SAMURAI SHODOWN II Fighting SNK MVS Cartridge:1994/10/28
+ NEOGEO ROM-cart:1994/12/02
+ NEOGEO CD:1994/12/15
+ STREET HOOP Sports Data East MVS Cartridge:1994/12/08
+ NEOGEO ROM-cart:1994/12/09
+ NEOGEO CD:1995/01/20
+ PUZZLE BOBBLE Puzzle TAITO MVS Cartridge:1994/12/21
+ NEOGEO CD:1995/05/02
+ SUPER VOLLEY '94 Sports TAITO MVS Cartridge:1994
+ BOMBERMAN: PANIC BOMBER Puzzle Eighting MVS Cartridge:1995/01/18
+ GALAXY FIGHT: UNIVERSAL WARRIORS Fighting Sunsoft MVS Cartridge:1995/01/24
+ NEOGEO ROM-cart:1995/02/25
+ NEOGEO CD:1995/04/21
+ QUIZ KING OF FIGHTERS Quiz Saurus MVS Cartridge:1995/02/01
+ NEOGEO ROM-cart:1995/03/10
+ NEOGEO CD:1995/04/07
+ DOUBLE DRAGON Fighting Technos MVS Cartridge:1995/03/03
+ NEOGEO ROM-cart:1995/03/31
+ NEOGEO CD:1995/06/02
+ SUPER SIDEKICKS 3 Sports SNK MVS Cartridge:1995/03/07
+ NEOGEO ROM-cart:1995/04/07
+ NEOGEO CD:1995/06/23
+ FATAL FURY 3 Fighting SNK MVS Cartridge:1995/03/27
+ NEOGEO ROM-cart:1995/04/21
+ NEOGEO CD:1995/04/28
+ SAVAGE REIGN Fighting SNK MVS Cartridge:1995/04/25
+ NEOGEO ROM-cart:1995/03/10
+ NEOGEO CD:1995/06/16
+ CROSSED SWORDS II Action ADK NEOGEO CD:1995/05/02
+ WORLD HEROES PERFECT Fighting ADK MVS Cartridge:1995/05/25
+ NEOGEO ROM-cart:1995/06/30
+ NEOGEO CD:1995/07/21
+ FAR EAST OF EDEN: KABUKI KLASH Fighting Hudson Soft MVS Cartridge:1995/06/20
+ NEOGEO ROM-cart:1995/07/28
+ NEOGEO CD:1995/11/24
+ THE KING OF FIGHTERS '95 Fighting SNK MVS Cartridge:1995/07/25
+ NEOGEO ROM-cart:1995/09/01
+ NEOGEO CD:1995/09/29
+ IDOL MAHJONG FINAL ROMANCE 2 Mahjong Video System NEOGEO CD:1995/08/25
+ PULSTAR Sidevi. Shooter Aicom MVS Cartridge:1995/08/28
+ NEOGEO ROM-cart:1995/09/29
+ NEOGEO CD:1995/10/27
+ VOLTAGE FIGHTER GOWCAIZER Fighting Technos MVS Cartridge:1995/09/18
+ NEOGEO ROM-cart:1995/10/20
+ NEOGEO CD:1995/11/24
+ STAKES WINNER Action Saurus MVS Cartridge:1995/09/27
+ NEOGEO ROM-cart:1995/10/27
+ NEOGEO CD:1996/03/22
+ SHOGI NO TATSUJIN - MASTER OF SYOUGI Japanese chess ADK MVS Cartridge:1995/09/28
+ NEOGEO ROM-cart:1995/10/13
+ NEOGEO CD:1995/10/20
+ AERO FIGHTERS 3 Topview Action Video System MVS Cartridge:1995/10/12
+ NEOGEO ROM-cart:1995/11/17
+ NEOGEO CD:1995/12/08
+ ADK WORLD Variety ADK NEOGEO CD:1995/11/10
+ SAMURAI SHODOWN III Fighting SNK MVS Cartridge:1995/11/15
+ NEOGEO ROM-cart:1995/12/01
+ NEOGEO CD:1995/12/29
+ CHIBI MARUKO-CHAN DELUXE QUIZ Variety Takara MVS Cartridge:1995/11/27
+ NEOGEO ROM-cart:1996/01/26
+ PUZZLE DE PON! Puzzle Visco MVS Cartridge:1995/11/28
+ REAL BOUT FATAL FURY Fighting SNK MVS Cartridge:1995/12/21
+ NEOGEO ROM-cart:1996/01/26
+ NEOGEO CD:1996/02/23
+ NEO-GEO CD SPECIAL Variety SNK NEOGEO CD:1995/12/22
+ NEO TURF MASTERS Sports Nazca MVS Cartridge:1996/01/29
+ NEOGEO ROM-cart:1996/03/01
+ NEOGEO CD:1996/05/03
+ ART OF FIGHTING 3 Fighting SNK MVS Cartridge:1996/03/12
+ NEOGEO ROM-cart:1996/04/26
+ NEOGEO CD:1996/06/14
+ MAGICAL DROP II Puzzle Data East MVS Cartridge:1996/03/21
+ NEOGEO ROM-cart:1996/04/19
+ NEOGEO CD:1996/05/24
+ OSHIDASHI JIN TRICK Puzzle ADK NEOGEO CD:1996/03/22
+ NEO DRIFT OUT Racing Visco MVS Cartridge:1996/03/28
+ NEOGEO CD:1996/07/26
+ METAL SLUG Action Nazca MVS Cartridge:1996/04/19
+ NEOGEO ROM-cart:1996/05/24
+ NEOGEO CD:1996/07/05
+ OVER TOP Racing ADK MVS Cartridge:1996/04/26
+ NEOGEO ROM-cart:1996/06/07
+ NEOGEO CD:1996/07/26
+ NINJA MASTER'S Fighting ADK MVS Cartridge:1996/05/27
+ NEOGEO ROM-cart:1996/06/28
+ NEOGEO CD:1996/09/27
+ RAGNAGARD Fighting Saurus MVS Cartridge:1996/06/13
+ NEOGEO ROM-cart:1996/07/26
+ NEOGEO CD:1996/08/23
+ FUTSAL Sports Saurus NEOGEO CD:1996/07/19
+ THE KING OF FIGHTERS '96 Fighting SNK MVS Cartridge:1996/07/30
+ NEOGEO ROM-cart:1996/09/27
+ NEOGEO CD:1996/10/25
+ KIZUNA ENCOUNTER SUPER TAG BATTLE Fighting SNK MVS Cartridge:1996/09/20
+ NEOGEO ROM-cart:1996/11/08
+ CHOUTETSU BURIKINGA Shooter Saurus NEOGEO CD:1996/09/20
+ STAKES WINNER 2 Real Jockey Act Saurus MVS Cartridge:1996/09/24
+ NEOGEO ROM-cart:1996/12/13
+ THE ULTIMATE 11 Sports SNK MVS Cartridge:1996/10/16
+ NEOGEO ROM-cart:1996/12/20
+ SAMURAI SHODOWN IV Fighting SNK MVS Cartridge:1996/10/25
+ NEOGEO ROM-cart:1996/11/29
+ NEOGEO CD:1996/12/27
+ WAKU WAKU 7 Fighting Sunsoft MVS Cartridge:1996/11/21
+ NEOGEO ROM-cart:1996/12/27
+ TWINKLE STAR SPRITES Shooter ADK MVS Cartridge:1996/11/25
+ NEOGEO ROM-cart:1997/01/31
+ NEOGEO CD:1997/02/21
+ BREAKERS Fighting Visco MVS Cartridge:1996/12/17
+ NEOGEO ROM-cart:1997/03/21
+ NEOGEO CD:1997/04/25
+ MONEY IDOL EXCHANGER Puzzle Face MVS Cartridge:1997/01/15
+ Real Bout FATAL FURY SPECIAL Fighting SNK MVS Cartridge:1997/01/28
+ NEOGEO ROM-cart:1997/02/28
+ NEOGEO CD:1997/03/03
+ THE KING OF FIGHTERS '96 NEOGEO COLLECTION Variety SNK NEOGEO CD:1997/02/14
+ MAGICAL DROP III Puzzle Data East MVS Cartridge:1997/02/25
+ NEOGEO ROM-cart:1997/04/25
+ NEO BOMBERMAN Action Hudson Soft MVS Cartridge:1997/05/01
+ NEO MR.DO! Action Visco MVS Cartridge:1997/06/26
+ SHINSETSU SAMURAI SHODOWN BUSHIDO RETSUDEN Role-playing SNK NEOGEO CD:1997/06/27
+ THE KING OF FIGHTERS '97 Fighting SNK MVS Cartridge:1997/07/28
+ NEOGEO ROM-cart:1997/09/25
+ NEOGEO CD:1997/10/30
+ UCCHAN NANCHAN NO HONO NO CHALLENGER ULTRA DENRYU IRAIRABOU Action Saurus MVS Cartridge:1997/08/25
+ SHOCK TROOPERS Shooter Saurus MVS Cartridge:1997/11/11
+ THE LAST BLADE Fighting SNK MVS Cartridge:1997/12/05
+ NEOGEO ROM-cart:1998/01/29
+ NEOGEO CD:1998/03/26
+ BLAZING STAR Shooter Yumekobo MVS Cartridge:1998/01/19
+ NEOGEO ROM-cart:1998/02/26
+ METAL SLUG 2 Action SNK MVS Cartridge:1998/02/23
+ NEOGEO ROM-cart:1998/04/02
+ NEOGEO CD:1998/06/25
+ REAL BOUT FATAL FURY 2 Fighting SNK MVS Cartridge:1998/03/20
+ NEOGEO ROM-cart:1998/04/29
+ NEOGEO CD:1998/07/23
+ NEOGEO CUP '98 Sports SNK MVS Cartridge:1998/05/28
+ NEOGEO ROM-cart:1998/07/30
+ BREAKERS REVENGE Fighting Visco MVS Cartridge:1998/07/03
+ NEOGEO ROM-cart:
+ THE KING OF FIGHTERS '98 Fighting SNK MVS Cartridge:1998/07/23
+ NEOGEO ROM-cart:1998/09/23
+ NEOGEO CD:1998/12/23
+ SHOCK TROOPERS 2nd Squad Action Shooter Saurus MVS Cartridge:1998/11/06
+ NEOGEO ROM-cart:1999/06/24
+ THE LAST BLADE 2 Fighting SNK MVS Cartridge:1998/11/25
+ NEOGEO ROM-cart:1999/01/28
+ NEOGEO CD:1999/02/27
+ FLIP SHOT Action Visco MVS Cartridge:1998/12/08
+ METAL SLUG X Action SNK MVS Cartridge:1999/03/19
+ NEOGEO ROM-cart:1999/05/27
+ CAPTAIN TOMADAY Shooter Visco MVS Cartridge:1999/05/27
+ THE KING OF FIGHTERS '99 Fighting SNK MVS Cartridge:1999/07/22
+ NEOGEO ROM-cart:1999/09/23
+ NEOGEO CD:1999/12/02
+ PREHISTORIC ISLE 2 Shooter Yumekobo MVS Cartridge:1999/09/27
+ GAROU: MARK OF THE WOLVES Fighting SNK MVS Cartridge:1999/11/26
+ NEOGEO ROM-cart:2000/02/25
+ STRIKERS 1945 PLUS Shooter Psikyo MVS Cartridge:1999/12/24
+ METAL SLUG 3 Action Shooter SNK MVS Cartridge:2000/03/23
+ NEOGEO ROM-cart:2000/06/01
+ THE KING OF FIGHTERS 2000 Fighting SNK MVS Cartridge:2000/07/26
+ NEOGEO ROM-cart:2000/12/21
+ NIGHTMARE IN THE DARK Horror Action Gavaking MVS Cartridge:2001
+ ZUPAPA! Comical Action Video System MVS Cartridge:2001
+ SENGOKU 3 Action SNK PLAYMORE MVS Cartridge:2001/07/18
+ NEOGEO ROM-cart:2001/10/25
+ THE KING OF FIGHTERS 2001 Fighting SNK PLAYMORE MVS Cartridge:2001/11/15
+ NEOGEO ROM-cart:2002/03/14
+ METAL SLUG 4 Action Shooter SNK PLAYMORE MVS Cartridge:2002/03/27
+ NEOGEO ROM-cart:2002/06/13
+ RAGE OF THE DRAGONS Fighting Evoga MVS Cartridge:2002/06/06
+ NEOGEO ROM-cart:2002/09/26
+ THE KING OF FIGHTERS 2002 Fighting SNK PLAYMORE MVS Cartridge:2002/10/10
+ NEOGEO ROM-cart:2002/12/19
+ POWER INSTINCT MATRIMELEE Fighting ATLUS/NOISE FA. MVS Cartridge:2003/03/20
+ NEOGEO ROM-cart:2003/05/29
+ SNK VS. CAPCOM: SVC CHAOS Fighting SNK PLAYMORE MV-0:2003/07/24
+ NEOGEO ROM-cart:2003/11/13
+ SAMURAI SHODOWN V Fighting SNK P/Yuki Ent MVS Cartridge:2003/10/10
+ NEOGEO ROM-cart:2003/12/11
+ METAL SLUG 5 Action Shooter SNK PLAYMORE MV-0:2003/11/14
+ NEOGEO ROM-cart:2004/02/19
+ THE KING OF FIGHTERS 2003 Fighting SNK PLAYMORE MV-0:2003/12/12
+ NEOGEO ROM-cart:2004/03/18
+ POCHI & NYAA Puzzle Aiky MVS Cartridge:2003/12/24
+ SAMURAI SHODOWN V SPECIAL Fighting SNK P/Yuki Ent MVS Cartridge:2004/04/22
+ NEOGEO ROM-cart:2004/07/15
+****************************************************************************/
+
+/* 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)", 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( 1992, lresortp, lresort, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Last Resort (prototype)", 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_kiz4p, 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_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_imaze, 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)", 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", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, janshin, neogeo, neogeo_mj, 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", 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" , 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", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, miexchng, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Face", "Money Puzzle Exchanger / Money Idol Exchanger", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, dragonsh, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Face", "Dragon's Heaven (development board)", MACHINE_IS_INCOMPLETE | MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) // same ID code as Voltage Fighter Gowkaizer, developed by ex-Technos staff
+
+/* Hudson Soft */
+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_mj, mjneogeo, neogeo_state, neogeo, ROT0, "Monolith Corp.", "Minasanno Okagesamadesu! Daisugorokutaikai (MOM-001)(MOH-001)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, bakatono, neogeo, neogeo_mj, 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", 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", MACHINE_SUPPORTS_SAVE )
+
+/* Psikyo */
+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)", 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", 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)", 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", MACHINE_SUPPORTS_SAVE )
+
+/* Technos Japan */
+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", MACHINE_SUPPORTS_SAVE )
+
+/* Viccom */
+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)", 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_dial, neogeo, 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)", 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)", 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?)", 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)", 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)", 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_noctrl, vliner, neogeo_noslot_state, vliner, ROT0, "Dyna / BrezzaSoft", "V-Liner (set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, vlinero, vliner, neogeo_noctrl, 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)", MACHINE_SUPPORTS_SAVE )
+
+/* Vektorlogic */
+GAME( 2004, sbp, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, sbp, ROT0, "Vektorlogic", "Super Bubble Pop", MACHINE_NOT_WORKING )
+
+/* NG:DEV.TEAM */
+GAME( 2005, lasthope, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "NG:DEV.TEAM", "Last Hope (bootleg AES to MVS conversion, no coin support)", MACHINE_SUPPORTS_SAVE ) // wasn't actually released on MVS but bootleg carts have been sold, this doesn't accept coins, runs like a console game
+// Last Hope Pink Bullets (c)2008 - MVS/AES
+// Fast Striker (c)2010 - MVS/AES
+// Fast Striker 1.5 (c)2010 - MVS/AES
+// GunLord (c)2012 - MVS/AES
+// Neo XYX (c)2013 - MVS/AES
+// Razion (c)2014 - MVS/AES?
+// Kraut Buster (c)2016 - MVS/AES
+
+/* N.C.I - LE CORTEX */
+// Treasure of the Caribbean (c)2011 - AES only (no credits system if ran on an MVS, Freeplay)
+
+/* NEOBITZ */
+// Knight's Chance (c)2014 - MVS/AES
+
+
+
+#include "../hbmame/drivers/neogeo0.cpp"
+
diff --git a/src/hbmame/drivers/neogeohb.cpp b/src/hbmame/drivers/neogeohb.cpp
new file mode 100644
index 00000000000..cabbc1a8ea7
--- /dev/null
+++ b/src/hbmame/drivers/neogeohb.cpp
@@ -0,0 +1,1881 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+/*********************************************************************************************************
+
+neogeohb.cpp - started 2014-06-02
+
+HBMAME list of protos, unreleased, and homebrews. This number system is to make the categorisation
+of non-official NeoGeo sets easier. 300-399 is for unreleased commercial sets, while 400-999 is for
+homebrews. Protos will generally have an equivalent 'official' number that can be used.
+
+300-399 is mostly speculation, it is not really known what may or may not have actually existed.
+It is possible that a game is already known under another title, or perhaps it was a
+prototype of another title. Corrected info is welcome.
+
+400-499 are mostly confirmed as having existed at some time. A few of them seem unobtainable now.
+800-899 highly-priced limited edition homebrew carts, and are not to be emulated until after the maker
+ has discontinued the item.
+
+We want the MVS or AES roms for any game marked with * after the number.
+
+Please note: It is planned to move this list to the HBMAME website sometime this year.
+
+******* CD-only titles that may possibly exist as roms *************
+
+NUM YEAR COMPANY TITLE
+--- ---- ---------------- -------------------------------------------
+054 1995 ADK Crossed Swords 2
+085*1997 SNK Samurai Showdown R.P.G. (also known as 'Shinsetsu Samurai Spirits Bushidoretsuden')
+091*1995 ADK ADK World
+098 1995 Video System Co Final Romance 2
+205*1995 SNK NeoGeo CD Special
+211 1996 ADK Zintrick
+229*1996 SNK King of Fighters 96 CD Collection
+
+
+
+******* Normal games that have alternate titles (or other) *************
+
+NUM TITLES
+--- -------------------------------------------------------------------
+001 NAM-1975 (The MVS misses the demo sequence)
+004 Mahjong Kyo Retsuden / Real Mah-Jong Game
+007 Alpha Mission II / ASD Last Guardian II (MGD2 dump has extra sounds & roms)
+021 Puzzled / JoyJoyKid (The MVS misses the war & sun god sequence, AES misses demo)
+022 Blue's Journey / Raguy
+023 Quiz Daisousa Den / The Last Count Down
+033 Fatal Fury / Garou Densetsu
+038 Thrash Rally / Rally Chase
+043 3 Count Bout / Fire Suplex
+045 Samurai Shodown / Samurai Spirits
+047 Fatal Fury 2 / Garoudensetsu 2
+048 Mahjong Janshin / Quest of Jongmaster
+058 Fatal Fury Special / Garoudensetsu
+062 Spin Master / Miracle Adventure
+063 Samurai Shodown 2 / Samurai Spirits 2 / Saulabi Spirits 2
+065 Windjammers / Flying Power Disc
+066 Karnov's Revenge / Fighter's History Dynamite
+069 Fatal Fury 3 / Garoudensetsu 3; The Battle of Destiny; Road to the Final Victory
+076 Zed Blade / Operation Ragnarok
+079 Street Hoop / Dunk Dream
+087 Samurai Shodown III / Fighters Swords
+092 Kabuki Klash / Far East of Eden
+200 Neo Turf Masters / Big Tournament Golf
+215 Super Sidekicks 4 / SNK Football Championship
+216 Kizuna Encounter; Super Tag Battle
+219 Pleasure Goal / Futsal
+220 Ironclad / Brikin'ger
+222 Samurai Shodown 4 / Legend of a Warrior
+
+
+
+********************** 300 to 399 **********************************
+
+NUM YEAR COMPANY TITLE
+--- ---- ---------------- -------------------------------------------
+300* Baseball Stars 3
+301* Death Match
+302* Fire Suplex 2
+303* Heavy Glove Boxing
+304* Magician Lord 2
+305* Ninja Gaiden (This may be Ninja Gaiden II, 1994, Tecmo)
+306* Reactor
+307* World Heroes Link-up
+308*1990 Alpha Denshi Sun Shine / Block Paradise
+309*1991 Sammy Dunk Star
+310*1991 Alpha Denshi Mystic Wand
+311*1991 Alpha Denshi Fun Fun Brothers
+312*1994 Visco Crystal Legacy (this may be an early name for Breakers)
+313*1994 Video System Co Super Volley 94 (this may be an early name for Power Spikes 2)
+314*1994 Mahou All Stars Volley
+315*1994 Visco Puzzlekko Club
+316 1994 Face Treasure of the Caribbean (may also be known as 'Carib No Zaihou')
+317*1995 Face Ultimate 4 / King of Athlete
+318*1995 Monolith Last Odyssey Pinball Fantasia
+319*1995 MAX Maseki Taisen Stoon
+320*1995 Astec Warlocks of the Fates
+321*1995 Yumekobo The Karate Ninja Show
+322*1996 Sunsoft Hebereke's Pair Pair Wars
+323*1996 Viccom The Eye of Typhoon
+324*1996 Kigyo Action Pac
+325*1996 SNK Kizuna Encounter Special Edition (could be "Kizuna Encounter 4way Battle") (could be "Fu'un Super Tag Battle Link-up")
+326*1996 Saurus Mahou Juku Magic Master
+327*1997 Saurus Neo Pool Master
+328*1997 Success Q.P.
+329*1997 Gapporin Ookiku Fukuramasete Gapporn
+330*2000 SNK Garou 2 / Mark of the Wolves Special
+331 2001 Brezzasoft Jockey Grand Prix
+332 2001 Brezzasoft V-Liner
+333*2002 Sun Amusement Poker Kingdom / Bingo Island
+334*2002 ADK Dance RhythMIX
+335*2002 ADK World Heroes 3
+336 Face Dragon's Heaven
+337*2000 Vektorlogic Neo Sparks (cancelled)
+338 2004 Vektorlogic Super Bubble Pop
+339* Vektorlogic TommyK (cancelled)
+350* Neo Dev Cart
+351* MVS Test Cart
+360 2003 PhenixSoft Crouching Tiger Hidden Dragon (hack of kof2001) (original number 5003)
+361 2003 SNK? King of Gladiator (hack of kof97) (original number 5232)
+362 2004 Saurus/SNK Lansquenet 2004 (hack of Shock Troopers 2nd squad)
+363 2004 SNK? King of Fighters 10th Anniversary (hack of kof2002) (original number 5004,5008)
+364 2004 SNK? King of Fighters 2004 EX (hack of kof2003)
+365 2004 Dragon Co, Ltd King of Fighters Special Edition 2004 (hack of kof2002)
+366 2008 SNK? King of Fighters 10th Anniversary 2008 (hack of kof10th) (original number 5009)
+
+
+
+********************** 400 to 499 **********************************
+(n/r) = not released (yet)
+
+NUM YEAR COMPANY TITLE
+--- ---- ----------------------- -------------------------------------------
+400 1999 Kyle Hodgetts Digger Man
+401 2002 Jeff Kurtz Shadow of the Beast demo (original number 2002)
+402* Neobitz Neobitz demo (Jeff M. Kurtz is Neobitz)
+403 2003 Neobitz Poker Night (original number 2003)
+404 2004 Neobitz Columns (original number 2000)
+405*2005 Neobitz Neo-Pac (pacman game)
+406 2000 Blastar System Check
+407 2002 Blastar Neo no Panepon
+408 2004 Blastar Neo 2500 demo
+409 2005 Blastar Jonas Indiana and the Lost Temple of Ra
+410 2006 Blastar Codename: Blut Engel
+411 2006 Blastar NGEM2K
+412 2002 Neodev Neo Pong
+413 2001 Rastersoft WW2 demo
+414 2005 Rastersoft Frog Feast demo
+415 2006 Rastersoft Frog Feast
+416 2003 Charles Doty Neogeo Demo
+417 2011 Furrtek Nyan Cat demo
+418 2008 Crim Neogeo 2-player Tetris
+419 2011 Sebastian Mihai Neo Thunder
+420 2004 BarfHappy Neo Castlevania demo
+421 2012 Oxygene Neo 3D demo
+422 2012 NeoGeoFreak Time's Up! demo
+423*1996 Kigyo Corp Action-Pac (not known if it ever existed)
+424 2012 NeoGeoFreak Transparency demo
+425 2009 Raregame Chip n Dale intro
+426 2009 Raregame Darkwing Duck intro
+427 2009 Raregame Ghostbusters intro
+428 2009 Raregame Robocop intro
+429 2009 Raregame Spiderman intro
+430 2009 Raregame Teenage Mutant Ninja Turtles intro
+431 2009 Raregame Duck Tales Intro
+432
+433
+434*2010 CeL Hello World
+435 2010 CeL Neorom Jukebox
+436*2010 CeL Neo Pang
+437 2013 Le Cortex Crouching Pony Hidden Dragon demo
+438 2002 <unknown> Neo Bubble
+439 2013 Cristiano Bei Primo demo
+440 2013 Cristiano Bei Neo Geo Galaga demo
+441 2013 Cristiano Bei Neo Geo Sound Test
+442 2017 Cristiano Bei Bad Apple demo
+443
+444 2012 M.Priewe Santaball
+445*2014 M.Priewe Doom in the Deep (in development)
+446 2014 M.Priewe Monitor Test Tool
+447*2016 M.Priewe Hypernoid (in development)
+448
+449
+450*2012 RKGAMES Neo-sprite demo (CD only)
+451*2000 Martinez Fabrice VIP2 demo (CD only) [nebula]
+452*2011 Furrtek VUmeter (CD only) [nebula]
+453
+454*2013 Cristiano Bei NGPhoenix (CD only)
+455*2004 Blastar Neo Puzzle League (CD only) [nebula]
+456*2013 Jeff Ferrier Neo Geo Manic Panic
+457 Furrtek MVSTest01
+458 Furrtek KnackiBalls
+459*n/r Furrtek Unleashed (in development or cancelled)
+460*n/r Furrtek Astrosmash (in development or cancelled)
+461*n/r RiKo Cosmic Tower (in development or cancelled)
+462 2009 Elrayzeur Puzzle Bobble Crazy
+463* NGD NGD::ARK (Arkanoid port)
+464* NGD NGD::AIR (ngdevgroup.com [dead])
+465* NGD NGD::FIGHT
+466* 4-player input test
+467 2011 Furrtek Sprite Experimenter
+468*n/r Neobitz Submarine Shooter (in development)
+469
+470 2015 freem ADPCM-B Playback Demo
+471*n/r tcdev Donkey Kong (in development or cancelled)
+472 2015 freem ADPCM-A Playback Demo
+473 2015 blastar Twister in a mirror intro
+474 2015 freem Sound-Loop Demo
+475 2016 Kannagi Ennemi Sprite Demo
+476 2015 Kannagi Neo Fight
+477 2016 Mega Shocked DatImage demo
+478 2016 Mega Shocked Demo
+479*2016 Luis Miguel Mayor Tech Demo #1 (Street Fighter 2)
+480 2016 Luis Miguel Mayor Tech Demo #2
+
+
+********************** 800 to 899 **********************************
+
+NUM YEAR COMPANY TITLE
+--- ---- ----------------------- -------------------------------------------
+800*2012 NeoGeoFreak Time's Up!
+801*2013 Le Cortex Crouching Pony Hidden Dragon
+802 2006 NG:DEV.Team Last Hope
+803*2010 NG:DEV.Team Fast Striker
+804*2011 NG:DEV.Team Last Hope Pink Bullets
+805*2012 NG:DEV.Team Gunlord
+806*2013 NG:DEV.Team NEO XYX
+807*2013 Neobitz Knight's Chance
+808*2014 NG:DEV.Team Razion
+809*2015 NG:DEV.Team Kraut Buster
+
+
+*********************************************************************************************************/
+
+
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, fr2ch )
+{
+//// Fix rebooting at start
+
+ uint16_t *src = (uint16_t*)memregion("maincpu")->base();
+
+ // change jsr to C004DA
+ src[0x01AF8 /2] = 0x04DA; // C00552 (Not used?)
+ src[0x01BF6 /2] = 0x04DA; // C0056A (fixes crash)
+ src[0x01ED8 /2] = 0x04DA; // C00570 (Not used?)
+ src[0x1C384 /2] = 0x04DA; // C00552 (fixes crash)
+
+ // 0x001C06 - this routine can cause a loop/freeze
+ src[0x01C06 /2] = 0x4E75;
+
+//// Fix text on bottom line
+
+ uint8_t *dst = memregion( "fixed" )->base();
+
+ // Move text for credit + coin info (Thanks to Kanyero), overwrites "MA" in neogeo logo
+ memcpy(dst, dst + 0x600, 0x140);
+
+ // Patch out neogeo intro (because of above line)
+ src[0x114 /2]=0x200;
+
+
+//// Optional stuff
+
+
+ uint8_t i, *rom = memregion("maincpu")->base();
+
+ uint8_t data[16] = {
+ 0x49, 0x46, 0x41, 0x4E, 0x20, 0x4C, 0x4F, 0x52,
+ 0x41, 0x4D, 0x43, 0x4E, 0x20, 0x45, 0x20, 0x32 };
+
+ // Hack in the proper identification (see setup menu [F2])
+ for (i = 0; i < 16; i++)
+ rom[0x3A6 + i] = rom[0x61E + i] = rom[0x896 + i] = data[i];
+
+ // Album Fix
+ src[0x1C382 /2] = 0x0008; // C00552
+ src[0x1C384 /2] = 0x0000;
+ src[0x80000 /2] = 0x33FC;
+ src[0x80002 /2] = 0x0001;
+ src[0x80004 /2] = 0x0020;
+ src[0x80006 /2] = 0x0002;
+ src[0x80008 /2] = 0x4E75;
+
+ DRIVER_INIT_CALL(neogeo);
+
+ /* old fr2cd code:
+ uint16_t *mem16 = (uint16_t*)memory_region(machine, "maincpu");
+ mem16[0x1BF2/2] = 0x4E71;
+ mem16[0x1BF4/2] = 0x4E71;
+ mem16[0x1BF6/2] = 0x4E71;
+ DRIVER_INIT_CALL(neogeo); */
+}
+
+
+
+// 054 : Crossed Swords 2
+ROM_START( crswd2bl )
+ ROM_REGION( 0x200000, "maincpu", ROMREGION_BE|ROMREGION_16BIT )
+ ROM_LOAD16_WORD_SWAP( "054-p1.p1", 0x100000, 0x100000, CRC(64836147) SHA1(083cb1626885893e736fc9998036c952cd4d503b) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "054-s1.s1", CRC(22e02ddd) SHA1(ebd834affc763cc5854abf1c6c42f43f3f3755fd) )
+
+ NEO_BIOS_AUDIO_128K( "054-m1.m1", CRC(63e28343) SHA1(f46dbc2f1d6033b11047cca31a9a7d715dc69cb2) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "054-v1.v1", 0x000000, 0x200000, CRC(22d4b93b) SHA1(0515f2ee5d9a8ce424c80721e06f746ac6a543a8) )
+
+ ROM_REGION( 0x800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "054-c1.c1", 0x000000, 0x400000, CRC(8221b712) SHA1(7e68871f1bfc402ef27c8fa088c680cbd133f71a) )
+ ROM_LOAD16_BYTE( "054-c2.c2", 0x000001, 0x400000, CRC(d6c6183d) SHA1(cc546ff063fae2c01c109fabcd5b2d29ec3299db) )
+ROM_END
+
+// Roms missing; not working at all
+ROM_START( csw2 )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "054.p1", 0x000000, 0x100000, CRC(b6e8f765) SHA1(fac63109664b834b43240a6e93353173e129e6af) )
+
+ NEO_SFIX_128K( "054.s1", CRC(7ddb9c7e) SHA1(c7ca63f1ff9edb2f71d13cc14d6a426b85182228) )
+
+ NEO_BIOS_AUDIO_64K( "054.m1", CRC(c45e902b) SHA1(fa17a16077393f986b72f412ce91bded34558af0) )
+
+ ROM_REGION( 0x100000, "ymsnd", 0 )
+ ROM_LOAD( "054.v1", 0x000000, 0x80000, CRC(a12842f2) SHA1(6f6377ff54465c4c13e34f8cb4f333f4f15aed5c) )
+ ROM_LOAD( "054.v2", 0x000001, 0x80000, CRC(3b7feef0) SHA1(748db17fbd3bf8fc427ff57e0952f21dd2782e6b) )
+
+ ROM_REGION( 0x400000, "sprites", 0 ) // c-roms not found yet, using crswd2bl roms for now
+ ROM_LOAD16_BYTE( "054-c1.c1", 0x000000, 0x400000, CRC(8221b712) SHA1(7e68871f1bfc402ef27c8fa088c680cbd133f71a) )
+ ROM_LOAD16_BYTE( "054-c2.c2", 0x000001, 0x400000, CRC(d6c6183d) SHA1(cc546ff063fae2c01c109fabcd5b2d29ec3299db) )
+ROM_END
+
+
+// 098 : Idol Mahjong Final Romance 2
+ROM_START( fr2 )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "098.p1", 0x000000, 0x80000, CRC(09675541) SHA1(6afb89d43e67f93e40f3877cbedfec9566e3ff0f) )
+
+ NEO_SFIX_128K( "098.s1", CRC(0e6a7c73) SHA1(31b1194524dcc80ec4d63bac088b6fb4909f496c) )
+
+ NEO_BIOS_AUDIO_128K( "098.m1", CRC(da4878cf) SHA1(ce13d18a4c5d01974df8542c67c4df00dbc6e7c1) )
+
+ ROM_REGION( 0x100000, "ymsnd", 0 )
+ ROM_LOAD( "098.v1", 0x000000, 0x100000, CRC(6f8ccddc) SHA1(696df2d0f416c2374b0eb7c858486054688c5bca) )
+
+ ROM_REGION( 0x800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "098.c1", 0x0000000, 0x400000, CRC(29148bf7) SHA1(75097fbe8877720afbcbe4dbe30bc600466d759f) )
+ ROM_LOAD16_BYTE( "098.c2", 0x0000001, 0x400000, CRC(226b1263) SHA1(dee6a4a0a727c1d8a6d298cb38ed1b9901992d5b) )
+ROM_END
+
+ROM_START( fr2cd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "098cd.p1", 0x000000, 0x100000, CRC(a2527a5f) SHA1(1f6e3c7de9154c0026360ee6fa0bd211ed541af1) )
+
+ NEO_SFIX_128K( "098cd.s1", CRC(764ac7aa) SHA1(cc40ad276e63084ebf3c3ee224083762a47c3cf8) )
+
+ NEO_BIOS_AUDIO_64K( "098cd.m1", CRC(a455fa31) SHA1(82ccc5e2e5869a46da7533ed10ac5eab549a0063) )
+
+ ROM_REGION( 0x100000, "ymsnd", 0 )
+ ROM_LOAD( "098cd.v1", 0x000000, 0x100000, CRC(92e175f0) SHA1(788a9cce9028f16d6734bff163beb1a19305b8be) )
+
+ ROM_REGION( 0x600000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "098cd.c1", 0x0000000, 0x300000, CRC(29bf9af0) SHA1(6c7e9c2b7062bf361a2290010c4e1828eb7019cc) )
+ ROM_LOAD16_BYTE( "098cd.c2", 0x0000001, 0x300000, CRC(3cf46f63) SHA1(c5316e83586e7b1c902746f8f2049baf026b52bf) )
+ROM_END
+
+ROM_START( fr2ch ) // CD to MVS Conversion
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "098ch.p1", 0x000000, 0x080000, CRC(9AA8CEE0) SHA1(b2201f16d8fde4eaae9dbc754d019e7b381ecc06) )
+
+ NEO_SFIX_128K( "098cd.s1", CRC(764ac7aa) SHA1(cc40ad276e63084ebf3c3ee224083762a47c3cf8) )
+
+ NEO_BIOS_AUDIO_64K( "098cd.m1", CRC(a455fa31) SHA1(82ccc5e2e5869a46da7533ed10ac5eab549a0063) )
+
+ ROM_REGION( 0x100000, "ymsnd", 0 )
+ ROM_LOAD( "098cd.v1", 0x000000, 0x100000, CRC(92e175f0) SHA1(788a9cce9028f16d6734bff163beb1a19305b8be) )
+
+ ROM_REGION( 0x600000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "098ch.c1", 0x000000, 0x100000, CRC(6158CF4A) SHA1(8e34b65f2cdfccaa6eeb40fef1ab3453eab92f46) )
+ ROM_LOAD16_BYTE( "098ch.c2", 0x000001, 0x100000, CRC(93A809A3) SHA1(9b680b8b758cfc77f01d7211b67343a90462b3f3) )
+ ROM_LOAD16_BYTE( "098ch.c3", 0x200000, 0x100000, CRC(FAFA3381) SHA1(0c4f20c4d5f57c1dad50b914f9d1299a9d882b42) )
+ ROM_LOAD16_BYTE( "098ch.c4", 0x200001, 0x100000, CRC(9895E23F) SHA1(565b5fbe07f65fb48d0bde769d3245a6ac747774) )
+ ROM_LOAD16_BYTE( "098ch.c5", 0x400000, 0x100000, CRC(EEAAA818) SHA1(434c13852153d7bebe138611a836d9bf07d1d4cf) )
+ ROM_LOAD16_BYTE( "098ch.c6", 0x400001, 0x100000, CRC(F3D9A190) SHA1(44932122e044d23234235cb3899f6e1e63970983) )
+ROM_END
+
+
+// 211 : Zintrick
+ROM_START( zintrkcd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "211cd.p1", 0x000000, 0x100000, CRC(9a0bfe0a) SHA1(94299c51572b66fa37e3e496436299573b1faaa8) )
+
+ NEO_SFIX_128K( "211cd.s1", CRC(56d16afa) SHA1(6e1f960a781f5ef1f858c51507fe573bead8ea66) )
+
+ NEO_BIOS_AUDIO_64K( "211cd.m1", CRC(fcae1407) SHA1(5b4bff97a8c5930852eff6aee553eadc18e8f3d9) )
+
+ ROM_REGION( 0x100000, "ymsnd", 0 )
+ ROM_LOAD( "211cd.v1", 0x000000, 0x100000, CRC(781439da) SHA1(a80cdf3be55b5fc2ba1d167f69e222463d06ad88) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "zin-c1.bin", 0x000000, 0x200000, CRC(76aee189) SHA1(ad6929804c5b9a59aa609e6baebc6aa37e858a47) )
+ ROM_LOAD16_BYTE( "zin-c2.bin", 0x000001, 0x200000, CRC(844ed4b3) SHA1(fb7cd057bdc6cbe8b78097dd124118bae7402256) )
+ROM_END
+
+ROM_START( zintrkcd1 )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "211m1.p1", 0x000000, 0x100000, CRC(032df2ba) SHA1(dfd35d77da203ebad5319b355fd65e6ed6a553da) )
+
+ NEO_SFIX_128K( "211cd.s1", CRC(56d16afa) SHA1(6e1f960a781f5ef1f858c51507fe573bead8ea66) )
+
+ NEO_BIOS_AUDIO_64K( "211m1.m1", CRC(8e539e59) SHA1(fba718ca565a6d5f122baa6d695108632672d1b0) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "211m1.v1", 0x000000, 0x800000, CRC(00e392ed) SHA1(8a46673c02fc25e65821d45749aa6fe697fa81c1) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "zin-c1.bin", 0x000000, 0x200000, CRC(76aee189) SHA1(ad6929804c5b9a59aa609e6baebc6aa37e858a47) )
+ ROM_LOAD16_BYTE( "zin-c2.bin", 0x000001, 0x200000, CRC(844ed4b3) SHA1(fb7cd057bdc6cbe8b78097dd124118bae7402256) )
+ROM_END
+
+ROM_START( zintrkm )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "211m.p1", 0x000000, 0x100000, CRC(b3fb325c) SHA1(27a34ff0dfea02b1aac3ddbc7c965684694390f1) )
+
+ NEO_SFIX_128K( "211m.s1", CRC(b67cb1fd) SHA1(3abf201bcc28ec5bd145f0848dc44c239a6ec651) )
+
+ NEO_BIOS_AUDIO_128K( "211m.m1", CRC(a602c2c2) SHA1(19fd5d0379244c528b58343f6cbf78b4766fb23d) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "211m.v1", 0x000000, 0x200000, CRC(baa2b9a5) SHA1(914782b6c81d9a76ce02251575592b0648434ba3) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "zin-c1.bin", 0x000000, 0x200000, CRC(76aee189) SHA1(ad6929804c5b9a59aa609e6baebc6aa37e858a47) )
+ ROM_LOAD16_BYTE( "zin-c2.bin", 0x000001, 0x200000, CRC(844ed4b3) SHA1(fb7cd057bdc6cbe8b78097dd124118bae7402256) )
+ROM_END
+
+ROM_START( zintrckbh )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "211h.p1", 0x000000, 0x100000, CRC(328af665) SHA1(ece74116955ecb9ec40ac90913d496836ecc82cf) )
+
+ NEO_SFIX_128K( "zin-s1.bin", CRC(a7ab0e81) SHA1(f0649819b96cea79b05411e0b15c8edc677d79ba) )
+
+ NEO_BIOS_AUDIO_128K( "zin-m1.bin", CRC(fd9627ca) SHA1(b640c1f1ff466f734bb1cb5d7b589cb7e8a55346) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "zin-v1.bin", 0x000000, 0x200000, CRC(c09f74f1) SHA1(d0b56a780a6eba85ff092240b1f1cc6718f17c21) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "zin-c1.bin", 0x000000, 0x200000, CRC(76aee189) SHA1(ad6929804c5b9a59aa609e6baebc6aa37e858a47) )
+ ROM_LOAD16_BYTE( "zin-c2.bin", 0x000001, 0x200000, CRC(844ed4b3) SHA1(fb7cd057bdc6cbe8b78097dd124118bae7402256) )
+ROM_END
+
+
+// 316 : Treasure of the Caribbean
+ROM_START( totc )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "316.p1", 0x000000, 0x100000, CRC(99604539) SHA1(88d5f4fe56516aa36496cafd2508f6864118f1e2) )
+
+ NEO_SFIX_128K( "248-s1.s1", CRC(0a3fee41) SHA1(0ab2120e462086be942efcf6ffb37f58ea966ca3) )
+
+ NEO_BIOS_AUDIO_128K( "316.m1", CRC(18b23ace) SHA1(d55495f3d8bb5568c8f2322763278a86ba5297b3) )
+
+ ROM_REGION( 0x500000, "ymsnd", 0 )
+ ROM_LOAD( "316.v1", 0x000000, 0x200000, CRC(15c7f9e6) SHA1(c51328a92dc7c612fd6c2f3841caee4fbd120f36) )
+ ROM_LOAD( "316.v2", 0x200000, 0x200000, CRC(1b264559) SHA1(50c28858304e51cdc60f425483a1d1d2bbfb2f8d) )
+ ROM_LOAD( "316.v3", 0x400000, 0x100000, CRC(84b62c5d) SHA1(30d7f2e16c6d602cebce5e9b4b8a5b2bde20af58) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "316.c1", 0x000000, 0x200000, CRC(cdd6600f) SHA1(85649c199b32db7553012cb5a058a92bbbb7355a) )
+ ROM_LOAD16_BYTE( "316.c2", 0x000001, 0x200000, CRC(f362c271) SHA1(4a2efa043cd2553ff7039cb18a1dba8b41493be7) )
+ROM_END
+
+
+// 401 : Shadow of the Beast demo by Neobitz
+// No sound
+ROM_START( beast )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "401.p1", 0x000000, 0x080000, CRC(1f9e62a4) SHA1(f245ce9802c5deb257a11fa714b2d1d4d72fc786) )
+
+ NEO_SFIX_128K( "401.s1", CRC(05a417f5) SHA1(932eeab5ba06f654ed39112c71a4e5a1f78c70bd) )
+
+ NEO_BIOS_AUDIO_64K( "407.m1", CRC(7669de64) SHA1(caa170b561df4f68000beaad41d942c66a4a10ee) )
+
+ ROM_REGION( 0x080000, "ymsnd", 0 )
+ ROM_LOAD( "407.v1", 0x000000, 0x080000, CRC(504bf849) SHA1(13a184ec9e176371808938015111f8918cb4df7d) )
+
+ ROM_REGION( 0x100000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "401.c1", 0x000000, 0x80000, CRC(e1974741) SHA1(175b09778875a18f12e7b34c53862ac8c93141c1) )
+ ROM_LOAD16_BYTE( "401.c2", 0x000001, 0x80000, CRC(9f5b9cf6) SHA1(857595fc93bfec069c8b1cf647ab9feedce56f1f) )
+ROM_END
+
+
+// 403 : Poker Night by Neobitz
+// No sound
+ROM_START( poknight )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "403.p1", 0x000000, 0x080000, CRC(750421ee) SHA1(0a86823456a82506bc96989c361626be4b3ceeaf) )
+
+ NEO_SFIX_128K( "403.s1", CRC(a26d2f09) SHA1(e7da6005a66e52f5479f9fe9f0cc67527dcb5d04) )
+
+ NEO_BIOS_AUDIO_64K( "407.m1", CRC(7669de64) SHA1(caa170b561df4f68000beaad41d942c66a4a10ee) )
+
+ ROM_REGION( 0x080000, "ymsnd", 0 )
+ ROM_LOAD( "407.v1", 0x000000, 0x080000, CRC(504bf849) SHA1(13a184ec9e176371808938015111f8918cb4df7d) )
+
+ ROM_REGION( 0x100000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "403.c1", 0x000000, 0x80000, CRC(5fb2b761) SHA1(12ec2abcd199da866519aca767818a080d9b40bf) )
+ ROM_LOAD16_BYTE( "403.c2", 0x000001, 0x80000, CRC(f2b570e3) SHA1(1c8d8dc75651ec788729bfc7198c926285ad6080) )
+ROM_END
+ROM_START( poknightcd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "403.p1", 0x000000, 0x080000, CRC(750421ee) SHA1(0a86823456a82506bc96989c361626be4b3ceeaf) )
+
+ NEO_SFIX_64K( "403a.s1", CRC(d6919a39) SHA1(46c858249292c1077c1e4ba5a6be469eb39ed483) )
+
+ NEO_BIOS_AUDIO_64K( "407.m1", CRC(7669de64) SHA1(caa170b561df4f68000beaad41d942c66a4a10ee) )
+
+ ROM_REGION( 0x080000, "ymsnd", 0 )
+ ROM_LOAD( "407.v1", 0x000000, 0x080000, CRC(504bf849) SHA1(13a184ec9e176371808938015111f8918cb4df7d) )
+
+ ROM_REGION( 0x100000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "403a.c1", 0x000000, 0x80000, CRC(0ab5143b) SHA1(73d81c09deec02174aa5528aafad28c1294e8b8e) )
+ ROM_LOAD16_BYTE( "403a.c2", 0x000001, 0x80000, CRC(a7b2d3b9) SHA1(9723d53d10efdf9d1d402d4b9487ef5697262491) )
+ROM_END
+ROM_START( poknightfr )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "403b.p1", 0x000000, 0x020000, CRC(e0b3e776) SHA1(4b5aa783d59d37a04553671830e932a35561d447) )
+
+ NEO_SFIX_MT_128K
+ ROM_LOAD( "403b.s1", 0x00000, 0x08000, CRC(3824214d) SHA1(446bf7ec6afc80a758d7d5dc3156a12cdee3b38d) )
+ //ROM_RELOAD (0x10000, 0x08000)
+
+ NEO_BIOS_AUDIO_64K( "407.m1", CRC(7669de64) SHA1(caa170b561df4f68000beaad41d942c66a4a10ee) )
+
+ ROM_REGION( 0x080000, "ymsnd", 0 )
+ ROM_LOAD( "407.v1", 0x000000, 0x080000, CRC(504bf849) SHA1(13a184ec9e176371808938015111f8918cb4df7d) )
+
+ ROM_REGION( 0x100000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "403b.c1", 0x000000, 0x18000, CRC(0ee80e14) SHA1(4dbe8b0750ca8e479bc6936ecf15572ef5ff7462) )
+ ROM_LOAD16_BYTE( "403b.c2", 0x000001, 0x18000, CRC(84f17a6d) SHA1(3a2232469274c5418e58dd48b78106d540f2c6ad) )
+ROM_END
+
+
+// 404 : Columns by Neobitz
+// No sound
+ROM_START( columnsn )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "404.p1", 0x000000, 0x080000, CRC(c6c9888d) SHA1(5a2ec1071872c817bf82053ca7b7d5d63fab6755) )
+
+ NEO_SFIX_128K( "404.s1", CRC(089a28a8) SHA1(b38b5c42eb909c57c16b016addffcd4e930806ce) )
+
+ NEO_BIOS_AUDIO_64K( "407.m1", CRC(7669de64) SHA1(caa170b561df4f68000beaad41d942c66a4a10ee) )
+
+ ROM_REGION( 0x080000, "ymsnd", 0 )
+ ROM_LOAD( "407.v1", 0x000000, 0x080000, CRC(504bf849) SHA1(13a184ec9e176371808938015111f8918cb4df7d) )
+
+ ROM_REGION( 0x100000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "404.c1", 0x000000, 0x80000, CRC(9a579cab) SHA1(9efd285c1bdc49a0d1daf2a062d0f906a0f5b542) )
+ ROM_LOAD16_BYTE( "404.c2", 0x000001, 0x80000, CRC(91d14043) SHA1(de6a1178fbfa3d75285e4338967f0ce4ed1aff23) )
+ROM_END
+
+ROM_START( columnsncd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "404.p1", 0x000000, 0x080000, CRC(c6c9888d) SHA1(5a2ec1071872c817bf82053ca7b7d5d63fab6755) )
+
+ NEO_SFIX_64K( "404a.s1", CRC(16cdb953) SHA1(a699f05fe9fb02a9bb0f03778578a5adcae00b91) )
+
+ NEO_BIOS_AUDIO_64K( "407.m1", CRC(7669de64) SHA1(caa170b561df4f68000beaad41d942c66a4a10ee) )
+
+ ROM_REGION( 0x080000, "ymsnd", 0 )
+ ROM_LOAD( "407.v1", 0x000000, 0x080000, CRC(504bf849) SHA1(13a184ec9e176371808938015111f8918cb4df7d) )
+
+ ROM_REGION( 0x100000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "404a.c1", 0x000000, 0x80000, CRC(cf503ff1) SHA1(3fb3131fa55d6137381b817dbb07b740096749b7) )
+ ROM_LOAD16_BYTE( "404a.c2", 0x000001, 0x80000, CRC(c4d6e319) SHA1(19a5bb2622c01bea2c0eb2206724c7751caca318) )
+ROM_END
+
+
+// 406 : NeoSystemCheck v1.0b by Blastar
+// No sound
+ROM_START( syscheck )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "406.p1", 0x000000, 0x80000, CRC(a4adbe1e) SHA1(eee4a8ebe62a2c97282f0350b3c28c615ea44956) )
+
+ NEO_SFIX_64K( "406.s1", CRC(4774f28e) SHA1(f381dac250fca3dfe1eb8c8f1b9b3bf0d521000e) )
+
+ ROM_REGION16_BE( 0x20000, "mainbios", 0 )
+ ROM_LOAD16_WORD_SWAP( "uni-bios_2_3o.rom", 0x00000, 0x20000, CRC(601720ae) SHA1(1b8a72c720cdb5ee3f1d735bbcf447b09204b8d9) )
+
+ ROM_REGION( 0x20000, "audiobios", 0 )
+ ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(97cf998b) SHA1(977387a7c76ef9b21d0b01fa69830e949a9a9626) )
+
+ ROM_REGION( 0x20000, "audiocpu", 0 )
+ ROM_LOAD( "406.m1", 0x0000, 0x10000, CRC(7669de64) SHA1(caa170b561df4f68000beaad41d942c66a4a10ee) )
+ ROM_RELOAD( 0x10000, 0x10000 )
+
+ ROM_REGION( 0x80000, "ymsnd", 0 )
+ ROM_LOAD( "406.v1", 0x000000, 0x80000, CRC(504bf849) SHA1(13a184ec9e176371808938015111f8918cb4df7d) )
+
+ ROM_REGION( 0x100000, "sprites", ROMREGION_ERASEFF )
+ // no sprites (these blank roms not used)
+ //ROM_LOAD16_BYTE( "406.c1", 0x000000, 0x80000, CRC(75660aac) SHA1(6a521e1d2a632c26e53b83d2cc4b0edecfc1e68c) )
+ //ROM_LOAD16_BYTE( "406.c2", 0x000001, 0x80000, CRC(75660aac) SHA1(6a521e1d2a632c26e53b83d2cc4b0edecfc1e68c) )
+ROM_END
+
+
+// 407 : Neo No Panepon by Blastar, 2002
+// No sound
+/* There are 4 versions.
+ Release dates: v1a and v1b = 2002-07-07, v1c = 2002-08-22, v2 = 2002-10-05
+
+ MAME has a bug where the first 2 high scores do not show.
+*/
+ROM_START( neonopon_d1 )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "407a.p1", 0x000000, 0x080000, CRC(43b7c759) SHA1(bbb4bf7957a336be6e5daa4030a5ebb1c72d92ee) )
+
+ NEO_SFIX_64K( "407a.s1", CRC(e28ea706) SHA1(bd113a91a1303e2ec670250225a1cd35d34c7f60) )
+
+ NEO_BIOS_AUDIO_64K( "407.m1", CRC(7669de64) SHA1(caa170b561df4f68000beaad41d942c66a4a10ee) )
+
+ ROM_REGION( 0x080000, "ymsnd", 0 )
+ ROM_LOAD( "407.v1", 0x000000, 0x080000, CRC(504bf849) SHA1(13a184ec9e176371808938015111f8918cb4df7d) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "407a.c1", 0x000000, 0x100000, CRC(24dcba77) SHA1(da7ce6797bf4ac9903dbb00587815c51c835c879) )
+ ROM_LOAD16_BYTE( "407a.c2", 0x000001, 0x100000, CRC(57c41e26) SHA1(39d810547f3f8a44b45e7807f1e6b3a0672a1688) )
+ROM_END
+ROM_START( neonopon_d2 )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "407a.p1", 0x000000, 0x080000, CRC(43b7c759) SHA1(bbb4bf7957a336be6e5daa4030a5ebb1c72d92ee) )
+
+ NEO_SFIX_64K( "407a.s1", CRC(e28ea706) SHA1(bd113a91a1303e2ec670250225a1cd35d34c7f60) )
+
+ NEO_BIOS_AUDIO_64K( "407.m1", CRC(7669de64) SHA1(caa170b561df4f68000beaad41d942c66a4a10ee) )
+
+ ROM_REGION( 0x080000, "ymsnd", 0 )
+ ROM_LOAD( "407.v1", 0x000000, 0x080000, CRC(504bf849) SHA1(13a184ec9e176371808938015111f8918cb4df7d) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "407b.c1", 0x000000, 0x100000, CRC(0833c9e7) SHA1(62f4e093bd5b521ee3f64aa1744e324a3a50eb12) )
+ ROM_LOAD16_BYTE( "407b.c2", 0x000001, 0x100000, CRC(fbf5f67f) SHA1(52a6a800d4afaa9675e1f6eab5ed4be772f17338) )
+ROM_END
+ROM_START( neonopon_d3 )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "407a.p1", 0x000000, 0x080000, CRC(43b7c759) SHA1(bbb4bf7957a336be6e5daa4030a5ebb1c72d92ee) )
+
+ NEO_SFIX_64K( "407.s1", CRC(93e6fe7d) SHA1(791789c33eeeaa23fe6581db2f0ee3c35c73c052) )
+
+ NEO_BIOS_AUDIO_64K( "407.m1", CRC(7669de64) SHA1(caa170b561df4f68000beaad41d942c66a4a10ee) )
+
+ ROM_REGION( 0x080000, "ymsnd", 0 )
+ ROM_LOAD( "407.v1", 0x000000, 0x080000, CRC(504bf849) SHA1(13a184ec9e176371808938015111f8918cb4df7d) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "407c.c1", 0x000000, 0x100000, CRC(e0573498) SHA1(80ec6ef8a6133f1f66704920332e92daa3daee14) )
+ ROM_LOAD16_BYTE( "407b.c2", 0x000001, 0x100000, CRC(fbf5f67f) SHA1(52a6a800d4afaa9675e1f6eab5ed4be772f17338) )
+ROM_END
+
+ROM_START( neonopon ) // v.0.2
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "407.p1", 0x000000, 0x080000, CRC(8a792271) SHA1(6f8db18f9ced0706cb2e4b5545da97be871352dd) )
+
+ NEO_SFIX_64K( "407.s1", CRC(93e6fe7d) SHA1(791789c33eeeaa23fe6581db2f0ee3c35c73c052) )
+
+ NEO_BIOS_AUDIO_64K( "407.m1", CRC(7669de64) SHA1(caa170b561df4f68000beaad41d942c66a4a10ee) )
+
+ ROM_REGION( 0x080000, "ymsnd", 0 )
+ ROM_LOAD( "407.v1", 0x000000, 0x080000, CRC(504bf849) SHA1(13a184ec9e176371808938015111f8918cb4df7d) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "407.c1", 0x000000, 0x100000, CRC(4a718ae3) SHA1(e59515bacd9065c4b2712710a6a9a647e42c31e6) )
+ ROM_LOAD16_BYTE( "407.c2", 0x000001, 0x100000, CRC(0e2cbc25) SHA1(3c45eedb2efc6a3a7ec65487f980e117485abc9f) )
+ROM_END
+
+
+// 408 : Neo 2500 demo by Blaster (c) 2004
+// No sound
+ROM_START( neo2500 )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "408.p1", 0x000000, 0x080000, CRC(2321c0d8) SHA1(e0d535af20f271794dc14c83ff3ffbc1f6bf98d9) )
+
+ NEO_SFIX_64K( "408.s1", CRC(1a37925c) SHA1(2060196c3a4d5dcc75aa62e5f02b0d397ec54b1b) )
+
+ NEO_BIOS_AUDIO_128K( "202-m1.m1", CRC(9c0291ea) SHA1(3fa67c62acba79be6b3a98cc1601e45569fa11ae) )
+
+ ROM_REGION( 0x80000, "ymsnd", 0 )
+ ROM_LOAD( "202-v1.v1", 0x000000, 0x80000, CRC(debeb8fb) SHA1(49a3d3578c087f1a0050168571ef8d1b08c5dc05) )
+
+ ROM_REGION( 0x100000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "408.c1", 0x000000, 0x80000, CRC(8c304b56) SHA1(f99298b7942c0bafb6b8038b2ac3b80b75034e34) )
+ ROM_LOAD16_BYTE( "408.c2", 0x000001, 0x80000, CRC(9a0758d6) SHA1(ac1c147fe55c80082c9a68a86c30b516ff086cc4) )
+ROM_END
+
+
+// 409 : Jonas Indiana and the Lost Temple of Ra by Blastar (c) 2005
+// Bugs: Insert Coin causes reboot; You can climb into the ceiling and get stuck there; can't jump from one rope to another
+ROM_START( ltorb )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "409.p1", 0x000000, 0x040000, CRC(353f6b05) SHA1(ae2ebb9a08e936a86cd09aaafda9e90826461bbf) )
+
+ NEO_SFIX_64K( "409.s1", CRC(8224d8b7) SHA1(2e7b176e5dffd8a44fa813b928155801d80b1ee6) )
+
+ NEO_BIOS_AUDIO_64K( "409.m1", CRC(6847fd52) SHA1(6e6d9045299966d41e3f193b3aff032d5b5e135d) )
+
+ ROM_REGION( 0x80000, "ymsnd", 0 )
+ ROM_LOAD( "409.v1", 0x000000, 0x080000, CRC(0329c2e7) SHA1(44c7f04d4e37fb5a06b0366d291f80c3a67a46f5) )
+
+ ROM_REGION( 0x100000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "409.c1", 0x000000, 0x080000, CRC(8b607198) SHA1(23dc0b285518f3e80a8feab4d674d625e76e8896) )
+ ROM_LOAD16_BYTE( "409.c2", 0x000001, 0x080000, CRC(6b96b59c) SHA1(a62600c337d7f6821ce56bdfd5c484f05c88187f) )
+ROM_END
+
+
+// 410 : Codename: Blut Engel by Blastar (c) 2005
+// Bugs: Insert Coin causes reboot
+ROM_START( cnbe )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "410.p1", 0x000000, 0x080000, CRC(7ece4186) SHA1(fc4ed3b5ed551744542c2ff1e45a6e97c68eff88) )
+
+ NEO_SFIX_64K( "410.s1", CRC(40a4698f) SHA1(be631408b261906f36c41c58c775c1a4c418a256) )
+
+ NEO_BIOS_AUDIO_128K( "410.m1", CRC(a5821c9c) SHA1(81779f12bbb012bf910c484725779e03b07e44ec) )
+
+ ROM_REGION( 0x80000, "ymsnd", 0 )
+ ROM_LOAD( "410.v1", 0x000000, 0x080000, CRC(70191764) SHA1(7dff2122c32886a3626c0d7befc7e7c3961c6cee) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "410.c1", 0x000000, 0x100000, CRC(0f4fea6f) SHA1(2eeaa661272817dc205072cd63d8bffbe7d6fbec) )
+ ROM_LOAD16_BYTE( "410.c2", 0x000001, 0x100000, CRC(3d5fc36f) SHA1(59c045bc5999ccd6c1413364a6cd337a858f599e) )
+ROM_END
+
+
+// 411 : NGEM2K by Blastar (c) 2006
+// No sound
+// Bugs: Insert Coin causes reboot
+ROM_START( ngem2k )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "411.p1", 0x000000, 0x080000, CRC(f2c42fe3) SHA1(fcd7453019ad21ecf77999a60b6792fc8d72d409) )
+
+ NEO_SFIX_64K( "411.s1", CRC(fb3c02d2) SHA1(961cf3cfd56e9ace059265f0ff4c283289972938) )
+
+ NEO_BIOS_AUDIO_128K( "411.m1", CRC(b1f44a15) SHA1(a1d7b498430b713b15ce886bac2ea473adadfb0c) )
+
+ ROM_REGION( 0x80000, "ymsnd", 0 )
+ ROM_LOAD( "411.v1", 0x000000, 0x080000, CRC(c32199f0) SHA1(2e17a6736c27d703c64d58fdc1b43edd8bb36d35) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "411.c1", 0x000000, 0x100000, CRC(a8e2ab47) SHA1(69a6ee8f659a63600a48e31b10782fba263e32e2) )
+ ROM_LOAD16_BYTE( "411.c2", 0x000001, 0x100000, CRC(a738ea1c) SHA1(3b71f43ff30f4b15b5cd85dd9e95ebc7e84eb5a3) )
+ROM_END
+
+
+// 412 : Neo Pong by Neodev (c) 2002
+// MAME bug : On the title screen, there's a vertical blank area that slowly moves from left to right
+ROM_START( neopong ) // v1.1
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "412.p1", 0x000000, 0x020000, CRC(9f35e29d) SHA1(261ce9305950debbc2fe088a45ab0fa83d6cf10d) )
+
+ NEO_SFIX_128K( "412.s1", CRC(cd19264f) SHA1(531be2305cd56d332fb7a53ab924214ade34a9e8) )
+
+ NEO_BIOS_AUDIO_128K( "412.m1", CRC(78c851cb) SHA1(a9923c002e4e2171a564af45cff0958c5d57b275) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "412.v1", 0x000000, 0x200000, CRC(6c31223c) SHA1(ede3a2806d7d872a0f737626a23ecce200b534e6) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "412.c1", 0x000000, 0x100000, CRC(f5a57d1a) SHA1(781170ae439f48fcbcee6af4cb3a1367dbb70498) )
+ ROM_LOAD16_BYTE( "412.c2", 0x000001, 0x100000, CRC(affde64e) SHA1(25ba8b4f6f961027d97d35f13cebeaee2dbb6f5a) )
+ROM_END
+
+ROM_START( neoponga ) // v1.0, has no sound, does not satisfy the watchdog
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "412a.p1", 0x000000, 0x020000, CRC(31b724d7) SHA1(e374613609aeda64b547d8ce38d2078b6ed55ad5) )
+
+ NEO_SFIX_128K( "412.s1", CRC(cd19264f) SHA1(531be2305cd56d332fb7a53ab924214ade34a9e8) )
+
+ NEO_BIOS_AUDIO_128K( "202-m1.m1", CRC(9c0291ea) SHA1(3fa67c62acba79be6b3a98cc1601e45569fa11ae) )
+
+ ROM_REGION( 0x80000, "ymsnd", 0 )
+ ROM_LOAD( "202-v1.v1", 0x000000, 0x80000, CRC(debeb8fb) SHA1(49a3d3578c087f1a0050168571ef8d1b08c5dc05) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "412a.c1", 0x000000, 0x100000, CRC(d7587282) SHA1(6fbc317dede78265dc4cfd2a6d79968320b8fd50) )
+ ROM_LOAD16_BYTE( "412a.c2", 0x000001, 0x100000, CRC(fefc9d06) SHA1(f191bcd3683a184b5a7d6046156e0b2bca231e95) )
+ROM_END
+
+
+// 413 : WW2 demo by Rastersoft
+// No sound
+// The supplied m1 gives a Z80 ERROR, so it has been replaced.
+// If the game doesn't work, read the FAQ.
+// Bugs: Insert Coin freezes HBMAME.
+ROM_START( ww2demo )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "413.p1", 0x000000, 0x80000, CRC(d53762ff) SHA1(231174363266ec1d5a028295f36bddfbf0a54235) )
+
+ NEO_SFIX_64K( "413.s1", CRC(3fda5d1a) SHA1(ec0a9e008f56d694184e6b553c271763529eb711) )
+
+ NEO_BIOS_AUDIO_128K( "202-m1.m1", CRC(9c0291ea) SHA1(3fa67c62acba79be6b3a98cc1601e45569fa11ae) )
+ // Z80 error NEO_BIOS_AUDIO_128K( "413.m1", CRC(99c2354e) SHA1(fa2ea40ae3d01bda909c82b6c4baa01335c6fe8f) )
+
+ ROM_REGION( 0x80000, "ymsnd", 0 )
+ ROM_LOAD( "202-v1.v1", 0x000000, 0x80000, CRC(debeb8fb) SHA1(49a3d3578c087f1a0050168571ef8d1b08c5dc05) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "413.c1", 0x000000, 0x100000, CRC(955efd3e) SHA1(b1c3ebff7158f1653b3b9bc5a52b06d8c62da1bb) )
+ ROM_LOAD16_BYTE( "413.c2", 0x000001, 0x100000, CRC(c213940f) SHA1(430c017f93ee87127a146bcfba684c840bc69f5b) )
+ROM_END
+
+
+// 414 : Frog Feast demo by Rastersoft
+// No sound
+ROM_START( ffeastd )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "414.p1", 0x000000, 0x80000, CRC(db0417ec) SHA1(dff85b47749142b3e965b2a9b5b8857096e58464) )
+
+ NEO_SFIX_64K( "414.s1", CRC(29814a2c) SHA1(a7313fa1280a2a2340b1c8a0d522354d82496a68) )
+
+ NEO_BIOS_AUDIO_64K( "407.m1", CRC(7669de64) SHA1(caa170b561df4f68000beaad41d942c66a4a10ee) )
+
+ ROM_REGION( 0x080000, "ymsnd", 0 )
+ ROM_LOAD( "407.v1", 0x000000, 0x080000, CRC(504bf849) SHA1(13a184ec9e176371808938015111f8918cb4df7d) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "414.c1", 0x000000, 0x100000, CRC(22a65cea) SHA1(3fb8cb92cd8d40c2b24e2b54833fde4c7dc255a4) )
+ ROM_LOAD16_BYTE( "414.c2", 0x000001, 0x100000, CRC(63ddd657) SHA1(41fb6fdd66fcdf5fce42eb01c8a3e00e632f6347) )
+ROM_END
+
+
+// 415 : Frog Feast by Rastersoft
+ROM_START( ffeast ) /* Frog Feast - Full Version */
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "415.p1", 0x000000, 0x080000, CRC(c26848da) SHA1(33737f8d2366b3a554ceb9ea2fcd85aaed75f344) )
+
+ NEO_SFIX_128K( "415.s1", CRC(88f4cd13) SHA1(7f3b28c903ecf90478f2dcddf790714d7363aa2b) )
+
+ NEO_BIOS_AUDIO_128K( "415.m1", CRC(c825b484) SHA1(7dea872ae39ef83981436aaf3c9b602ac8bec676) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "415.v1", 0x000000, 0x100000, CRC(2639da11) SHA1(4309e46014d623066d427ce3473542c99f678f86) )
+ ROM_LOAD( "415.v2", 0x100000, 0x100000, CRC(e5eda58b) SHA1(ae203cfedf4b563da914939e0a4d7f4697070f82) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "415.c1", 0x000000, 0x100000, CRC(7b2f9fb3) SHA1(62deacf16c3b259422f962c9604b4efc2f32d91b) )
+ ROM_LOAD16_BYTE( "415.c2", 0x000001, 0x100000, CRC(a7f18a6f) SHA1(1a277c79eaacf09d12a4b7c88421e7a6d6153503) )
+ROM_END
+
+
+// 416 : Neogeo demo by Charles Doty
+// Left-right will move the turning logo
+// No sound
+ROM_START( neodemo )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "416.p1", 0x000000, 0x080000, CRC(fbfce2a4) SHA1(53472533456e131bee9fa792996b4110999b5c21) )
+
+ NEO_SFIX_128K( "412.s1", CRC(cd19264f) SHA1(531be2305cd56d332fb7a53ab924214ade34a9e8) )
+
+ NEO_BIOS_AUDIO_128K( "202-m1.m1", CRC(9c0291ea) SHA1(3fa67c62acba79be6b3a98cc1601e45569fa11ae) )
+
+ ROM_REGION( 0x080000, "ymsnd", 0 )
+ ROM_LOAD( "202-v1.v1", 0x000000, 0x080000, CRC(debeb8fb) SHA1(49a3d3578c087f1a0050168571ef8d1b08c5dc05) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "416.c1", 0x000000, 0x100000, CRC(870b28ea) SHA1(255f8e394534afc929bad31f253a2e8b03253e07) )
+ ROM_LOAD16_BYTE( "416.c2", 0x000001, 0x100000, CRC(1ecf8128) SHA1(66d200ceb023a1ff3cbe4ef7c5b1ef0068ab47f0) )
+ROM_END
+
+
+// 417 : Nyan Cat demo by Furrtek
+// Movement keys will move nyancat around
+// Bugs: Insert Coin freezes HBMAME.
+ROM_START( nyan )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD( "417.p1", 0x000000, 0x20000, CRC(1c9e076f) SHA1(95361da308bf8f946fa218424c991ace872fd374) )
+
+ NEO_SFIX_128K( "417.s1", CRC(2e7f15ec) SHA1(b41ac46ca2a81cf240dc6df4a80694ecebf65202) )
+
+ NEO_BIOS_AUDIO_128K( "417.m1", CRC(97b9a8e0) SHA1(161a06ac0a6d33a6b337a5c6ec65345cd10472e4) )
+
+ ROM_REGION( 0x80000, "ymsnd", 0 )
+ ROM_LOAD( "417.v1", 0x000000, 0x3d400, CRC(8870e0bb) SHA1(5f6f33c07f04bb00337cca6ee4db1cfa7beaa63e) )
+
+ ROM_REGION( 0x800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "417.c1", 0x000000, 0x400000, CRC(71128701) SHA1(76ae8ef8f032621706cb39161f01ef7e747ceb70) )
+ ROM_LOAD16_BYTE( "417.c2", 0x000001, 0x400000, CRC(85dcccef) SHA1(4270b11c9f9400b3b818124c96db352d94512807) )
+ROM_END
+
+
+// 418 : Tetris by Crim
+ROM_START( ngtetris )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "418.p1", 0x000000, 0x80000, CRC(3465569a) SHA1(51506d549fa048581321fc39403c0a3bf8f77467) )
+
+ NEO_SFIX_128K( "419.s1", CRC(a545b593) SHA1(09077b63595eebb7dddd55e041e7786164df0ead) )
+
+ NEO_BIOS_AUDIO_128K( "418.m1", CRC(6b3703c6) SHA1(6fa41b713f03e0957f410a387aa896e7d924acb2) )
+
+ ROM_REGION( 0x80000, "ymsnd", 0 )
+ ROM_LOAD( "418.v1", 0x000000, 0x80000, CRC(2be8e290) SHA1(198cff1b1d70f7d05344d6ab38a4354f993dc4b8) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "418.c1", 0x000000, 0x80000, CRC(acc6d1d4) SHA1(1f6ad8578d8edaa22a35ad58dc76de8543a96db9) )
+ ROM_LOAD16_BYTE( "418.c2", 0x000001, 0x80000, CRC(7ec06ab5) SHA1(3a8503be7f14d451f5ae964888b385334c12e8c6) )
+ROM_END
+
+
+// 419 : Neo Thunder demo by Sebastian Mihai
+// No sound
+ROM_START( neothund )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "419.p1", 0x000000, 0x100000, CRC(f7050757) SHA1(b73009050905ad2b1f06690e0106e59fb5ede86b) )
+
+ NEO_SFIX_128K( "419.s1", CRC(a545b593) SHA1(09077b63595eebb7dddd55e041e7786164df0ead) )
+
+ NEO_BIOS_AUDIO_128K( "202-m1.m1", CRC(9c0291ea) SHA1(3fa67c62acba79be6b3a98cc1601e45569fa11ae) )
+
+ ROM_REGION( 0x80000, "ymsnd", 0 )
+ ROM_LOAD( "202-v1.v1", 0x000000, 0x80000, CRC(debeb8fb) SHA1(49a3d3578c087f1a0050168571ef8d1b08c5dc05) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "419.c1", 0x000000, 0x100000, CRC(48b9126e) SHA1(38bf1296c3d8762372d4eab785f34507a4f8776c) )
+ ROM_LOAD16_BYTE( "419.c2", 0x000001, 0x100000, CRC(214df62e) SHA1(21e4ce2a0ac636081c9e07a294cb44987692039e) )
+ROM_END
+
+
+// 420 : Castlevania demo by BarfHappy
+// No sound.
+ROM_START( neocstlv )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "420.p1", 0x000000, 0x080000, CRC(8d6cd9f2) SHA1(23258690b0268367420cb25ef951cfb15f79b88e) )
+
+ NEO_SFIX( 0x40000, "420.s1", CRC(be950195) SHA1(883a99b79b495f66f81025bf4c1f5fb23cc0b4c7) )
+
+ NEO_BIOS_AUDIO_128K( "420.m1", CRC(89c71460) SHA1(3c675b9b0e46be2cafd2aa8858a40efd07034fcd) )
+
+ ROM_REGION( 0x80000, "ymsnd", 0 )
+ ROM_LOAD( "202-v1.v1", 0x000000, 0x80000, CRC(debeb8fb) SHA1(49a3d3578c087f1a0050168571ef8d1b08c5dc05) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "420.c1", 0x000000, 0x100000, CRC(960a7414) SHA1(753a8af8bfe9a6e9322744b9a31c8d8ef3615cae) )
+ ROM_LOAD16_BYTE( "420.c2", 0x000001, 0x100000, CRC(24a961d0) SHA1(c11dd77c9df0f829461bb3aebb3c6287b7e703f9) )
+ROM_END
+
+
+// 421 : 3D demo by Oxygene
+ROM_START( neo3d )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "421.p1", 0x000000, 0x080000, CRC(791f6042) SHA1(d44848322d08daad91c67c7dc7e9ee985d582b2b) )
+
+ NEO_SFIX_128K( "412.s1", CRC(cd19264f) SHA1(531be2305cd56d332fb7a53ab924214ade34a9e8) )
+
+ NEO_BIOS_AUDIO_128K( "421.m1", CRC(7e74cc1f) SHA1(2855577a9785baa4076567de0b37fc0d0117abe5) )
+
+ ROM_REGION( 0x80000, "ymsnd", 0 )
+ ROM_LOAD( "202-v1.v1", 0x000000, 0x80000, CRC(debeb8fb) SHA1(49a3d3578c087f1a0050168571ef8d1b08c5dc05) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "421.c1", 0x000000, 0x100000, CRC(a7eaca76) SHA1(7b046932466092e250dc879d76656227102037c5) )
+ ROM_LOAD16_BYTE( "421.c2", 0x000001, 0x100000, CRC(042f2cde) SHA1(225b03541ac3d5258de2c33d93e46e068798731f) )
+ROM_END
+
+
+// 422 : Time's UP! demo by NGF
+ROM_START( timesupd )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "422.p1", 0x000000, 0x200000, CRC(be86adb1) SHA1(4b363bab51dfc43b2302956f79a0b1d5202339ac) )
+
+ NEO_SFIX_128K( "419.s1", CRC(a545b593) SHA1(09077b63595eebb7dddd55e041e7786164df0ead) )
+
+ NEO_BIOS_AUDIO_128K( "422.m1", CRC(fe795d11) SHA1(53ba44f2197aa700229f18dee6513bc0c2619904) )
+
+ ROM_REGION( 0x800000, "ymsnd", 0 )
+ ROM_LOAD( "422.v1", 0x000000, 0x400000, CRC(13b8f47b) SHA1(4f0384101f9f6fce8c86a27a11a2b9d43a84a154) )
+ ROM_LOAD( "422.v2", 0x400000, 0x400000, CRC(6fdd663d) SHA1(9667f11b4350285d0722c67052ff4e9a63a3409f) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "422.c1", 0x000000, 0x200000, CRC(c19a300a) SHA1(3ab4ec4b10583257b92f5a989434db89f8130626) )
+ ROM_LOAD16_BYTE( "422.c2", 0x000001, 0x200000, CRC(fdb3f7ed) SHA1(dd1d69515e58e9fba8cefb1c4cd808dfea0475d9) )
+ROM_END
+
+
+// 424 : Transparency demo by NGF
+ROM_START( ngftdemo )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "424.p1", 0x000000, 0x080000, CRC(84d87190) SHA1(7b944603a47a062c050faf9d7e2f9ed754c325cf) )
+
+ NEO_SFIX_128K( "419.s1", CRC(a545b593) SHA1(09077b63595eebb7dddd55e041e7786164df0ead) )
+
+ NEO_BIOS_AUDIO_128K( "424.m1", CRC(5ea216be) SHA1(5ae7e878a08dcd5a1a3b5d25abfe98eea0dfc7d3) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "424.v1", 0x000000, 0x200000, CRC(d03c87eb) SHA1(033815e3cf8fa3732c481ef308aacea595e3e008) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "424.c1", 0x000000, 0x200000, CRC(b2fba994) SHA1(278bc9b2f969cec8160dbea879426bbf2c7ea2d4) )
+ ROM_LOAD16_BYTE( "424.c2", 0x000001, 0x200000, CRC(37495ab2) SHA1(b6caba50aaf7cf73cfd5c23302fac4785baafe43) )
+ROM_END
+
+
+// 425 : Chip n Dale intro from Raregame
+ROM_START( cndi ) /* you must use unibios to select Japan Console */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "425.p1", 0x000000, 0x800000, CRC(2df9a41d) SHA1(f08d81f529f17d22218b4bb52840f4a13f5821a2) )
+
+ NEO_SFIX_64K( "427.s1", CRC(63b8b25e) SHA1(1dacfaebfa68d1b2518324c2bc000f310ed8fc3f) )
+
+ ROM_REGION16_BE( 0x20000, "mainbios", 0 )
+ ROM_LOAD16_WORD_SWAP( "uni-bios_2_3o.rom", 0x00000, 0x20000, CRC(601720ae) SHA1(1b8a72c720cdb5ee3f1d735bbcf447b09204b8d9) )
+
+ ROM_REGION( 0x20000, "audiobios", 0 )
+ ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(97cf998b) SHA1(977387a7c76ef9b21d0b01fa69830e949a9a9626) )
+
+ ROM_REGION( 0x20000, "audiocpu", 0 )
+ ROM_LOAD( "425.m1", 0x0000, 0x2000, CRC(ae120a59) SHA1(11a49a82007810890ac01757af217ce76c78335b) )
+ // alternate in MultiJet: ROM_LOAD( "425a.m1", 0x0000, 0x2000, CRC(591adc4f) SHA1(02886106b5bbcd1c63a7ccd5c91456a785b0621a)
+ ROM_RELOAD( 0x10000, 0x2000 )
+
+ ROM_REGION( 0x092000, "ymsnd", 0 )
+ ROM_LOAD( "425.v1", 0x000000, 0x092000, CRC(91d45537) SHA1(2e3fe9733a49a7d5597fea40f59274133c331795) )
+ // alternate in MultiJet: ROM_LOAD( "425a.v1", 0x000000, 0x091000, CRC(15d318a6) SHA1(10f99dbded4093bac104ce954e93dba7ce8c4ade) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "425.c1", 0x0000000, 0x400000, CRC(55bd32fc) SHA1(9ca14628b50182257e812a64ae7779b677f49b3a) )
+ ROM_LOAD16_BYTE( "425.c2", 0x0000001, 0x400000, CRC(bbb43733) SHA1(cbb698354f34045a08f3f30ccd54796374c47ab9) )
+ ROM_LOAD16_BYTE( "425.c3", 0x0800000, 0x400000, CRC(715e0318) SHA1(ceab1079b9e8d53f32f0aafce5d7cda037a91e02) )
+ ROM_LOAD16_BYTE( "425.c4", 0x0800001, 0x400000, CRC(016f3c7e) SHA1(05fc02c571008dfa83eea11dc596248cee53153a) )
+ ROM_LOAD16_BYTE( "425.c5", 0x1000000, 0x400000, CRC(28c6cb8c) SHA1(05acb12720a12918debed333243b4bc42555a0b3) )
+ ROM_LOAD16_BYTE( "425.c6", 0x1000001, 0x400000, CRC(9c89503f) SHA1(8c3fc78f7bb903684367d663ede13b87c72c8cca) )
+ ROM_LOAD16_BYTE( "425.c7", 0x1800000, 0x400000, CRC(074dd407) SHA1(83f4c80ab88d506152b375480b2fabb0e4ed2eaa) )
+ ROM_LOAD16_BYTE( "425.c8", 0x1800001, 0x400000, CRC(5ddb7db5) SHA1(29cf08e39d7454fdeb7ab4a13afff1d422c7c859) )
+ROM_END
+
+
+// 426 : Darkwing Duck intro from Raregame
+ROM_START( dwi ) /* you must use unibios to select Japan Console */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "426.p1", 0x000000, 0x800000, CRC(8e3f2ea8) SHA1(80efd45770938b2dc3ac8c67d823bae4369a68aa) )
+
+ NEO_SFIX_64K( "426.s1", CRC(3dc5c1ef) SHA1(fa194481524cd95ec7188fef0857ef4d2435d7eb) )
+
+ ROM_REGION16_BE( 0x20000, "mainbios", 0 )
+ ROM_LOAD16_WORD_SWAP( "uni-bios_2_3o.rom", 0x00000, 0x20000, CRC(601720ae) SHA1(1b8a72c720cdb5ee3f1d735bbcf447b09204b8d9) )
+
+ ROM_REGION( 0x20000, "audiobios", 0 )
+ ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(97cf998b) SHA1(977387a7c76ef9b21d0b01fa69830e949a9a9626) )
+
+ ROM_REGION( 0x20000, "audiocpu", 0 )
+ ROM_LOAD( "426.m1", 0x0000, 0x2000, CRC(2249e065) SHA1(3dc737888846acfbe693452b03ee2b5c09ff9408) )
+ ROM_RELOAD( 0x10000, 0x2000 )
+
+ ROM_REGION( 0x09b000, "ymsnd", 0 )
+ ROM_LOAD( "426.v1", 0x000000, 0x09b000, CRC(13bb4ce4) SHA1(0762db7991a5958ae7d8fd5cad2a850f1803a372) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "426.c1", 0x0000000, 0x400000, CRC(2b8bda94) SHA1(68a8239a620dba52762fec548b44c7d0e703fca3) )
+ ROM_LOAD16_BYTE( "426.c2", 0x0000001, 0x400000, CRC(5345e4de) SHA1(eee16fc63c901184b1b59dc3edcea260e82b5bf5) )
+ ROM_LOAD16_BYTE( "426.c3", 0x0800000, 0x400000, CRC(c6185f14) SHA1(46539c90a2c3e59b7736925cdd59700ca99ac1e1) )
+ ROM_LOAD16_BYTE( "426.c4", 0x0800001, 0x400000, CRC(c9e59701) SHA1(67b5c396591e00ca6d58d35b7d95465d6a65d3eb) )
+ ROM_LOAD16_BYTE( "426.c5", 0x1000000, 0x400000, CRC(42dd1c90) SHA1(1ca19d11a7d0f9f8dbedf5c8fe2eadfc28337ad9) )
+ ROM_LOAD16_BYTE( "426.c6", 0x1000001, 0x400000, CRC(9fa6d651) SHA1(653592013a44b804b713302f17b4109b316662ce) )
+ ROM_LOAD16_BYTE( "426.c7", 0x1800000, 0x400000, CRC(5cfa6886) SHA1(e550e898f64a2ad9992aaa4ff7a64d6881294ce8) )
+ ROM_LOAD16_BYTE( "426.c8", 0x1800001, 0x400000, CRC(59c37871) SHA1(7413282800d4461ea151d10b91fa24fef1df94a0) )
+ROM_END
+
+
+// 427 : Ghostbusters intro from Raregame
+ROM_START( gbi ) /* you must use unibios to select Japan Console */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "427.p1", 0x000000, 0x100000, CRC(af69ef5f) SHA1(e218d1c99e491afcf1887ef9f5bed3e7a5e53fe4) )
+ ROM_LOAD16_WORD_SWAP( "427.p2", 0x100000, 0x400000, CRC(f57e393f) SHA1(4e4ac08db6cc28bcc47808854b1ceb407a486fe5) )
+
+ NEO_SFIX_64K( "427.s1", CRC(63b8b25e) SHA1(1dacfaebfa68d1b2518324c2bc000f310ed8fc3f) )
+
+ ROM_REGION16_BE( 0x20000, "mainbios", 0 )
+ ROM_LOAD16_WORD_SWAP( "uni-bios_2_3o.rom", 0x00000, 0x20000, CRC(601720ae) SHA1(1b8a72c720cdb5ee3f1d735bbcf447b09204b8d9) )
+
+ ROM_REGION( 0x20000, "audiobios", 0 )
+ ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(97cf998b) SHA1(977387a7c76ef9b21d0b01fa69830e949a9a9626) )
+
+ ROM_REGION( 0x20000, "audiocpu", 0 )
+ ROM_LOAD( "427.m1", 0x0000, 0x2000, CRC(6624e642) SHA1(03a723c477905425ced965a63fb6d006abd045e9) )
+ ROM_RELOAD( 0x10000, 0x2000 )
+
+ ROM_REGION( 0x094a00, "ymsnd", 0 )
+ ROM_LOAD( "427.v1", 0x000000, 0x094a00, CRC(44864761) SHA1(35334b93c65b3e27338290c2ba1f73aa902aa893) )
+
+ ROM_REGION( 0x1800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "427.c1", 0x0000000, 0x400000, CRC(4281fecd) SHA1(a4f4c278b28740cde042f81769c8c10e5d274fcf) )
+ ROM_LOAD16_BYTE( "427.c2", 0x0000001, 0x400000, CRC(0f07018c) SHA1(eccd998c8fe4c4e3039f104dbdc89713cd9e10cb) )
+ ROM_LOAD16_BYTE( "427.c3", 0x0800000, 0x400000, CRC(a4589b2a) SHA1(ff3784921b093f61c3f620c26f296b8f4f798028) )
+ ROM_LOAD16_BYTE( "427.c4", 0x0800001, 0x400000, CRC(2a72bd04) SHA1(8d30b1851ca706b669d8d02b1d17a2b40a424b8d) )
+ ROM_LOAD16_BYTE( "427.c5", 0x1000000, 0x400000, CRC(ad3b72f9) SHA1(0274f7b85cb1a53a5f98399ac1952418803ab765) )
+ ROM_LOAD16_BYTE( "427.c6", 0x1000001, 0x400000, CRC(963e0941) SHA1(04ae20247e74f27721a2a87f0acd41a733c6f753) )
+ROM_END
+
+
+// 428 : Robocop intro from Raregame
+ROM_START( rci ) /* you must use unibios to select Japan Console */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "428.p1", 0x000000, 0x800000, CRC(adcb4fe0) SHA1(596242e344d1e171eed7ef242c10aec1a0090acf) )
+
+ NEO_SFIX_64K( "427.s1", CRC(63b8b25e) SHA1(1dacfaebfa68d1b2518324c2bc000f310ed8fc3f) )
+
+ ROM_REGION16_BE( 0x20000, "mainbios", 0 )
+ ROM_LOAD16_WORD_SWAP( "uni-bios_2_3o.rom", 0x00000, 0x20000, CRC(601720ae) SHA1(1b8a72c720cdb5ee3f1d735bbcf447b09204b8d9) )
+
+ ROM_REGION( 0x20000, "audiobios", 0 )
+ ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(97cf998b) SHA1(977387a7c76ef9b21d0b01fa69830e949a9a9626) )
+
+ ROM_REGION( 0x20000, "audiocpu", 0 )
+ ROM_LOAD( "428.m1", 0x0000, 0x2000, CRC(c4d35e83) SHA1(0f2bb58e6e545090a11f7fbf471dcd46768a313b) )
+ ROM_RELOAD( 0x10000, 0x2000 )
+
+ ROM_REGION( 0x096000, "ymsnd", 0 )
+ ROM_LOAD( "428.v1", 0x000000, 0x096000, CRC(ecb284a9) SHA1(1ff34e6f3091ddf0da7b8afb06b903ab39d0b629) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "428.c1", 0x0000000, 0x400000, CRC(8cf565a0) SHA1(c8d383d96b03be9e96fcea94b355c5c33717b4e1) )
+ ROM_LOAD16_BYTE( "428.c2", 0x0000001, 0x400000, CRC(76ef561d) SHA1(3dfd4d923b7381e8f1ec4512915a05efa299e255) )
+ ROM_LOAD16_BYTE( "428.c3", 0x0800000, 0x400000, CRC(7166790c) SHA1(778db868373c4fa00899f224339c0d171519002a) )
+ ROM_LOAD16_BYTE( "428.c4", 0x0800001, 0x400000, CRC(c0cdcbfc) SHA1(d2bf8c0560e593820f2a556779602cabb3272b8d) )
+ ROM_LOAD16_BYTE( "428.c5", 0x1000000, 0x400000, CRC(a5ddc363) SHA1(d2bee74072c2e1b5cac0fc422472aa5d53bc7358) )
+ ROM_LOAD16_BYTE( "428.c6", 0x1000001, 0x400000, CRC(1fcc8fce) SHA1(3a7ecfc3a37b315a0a5c7a0127c9412f8214fd81) )
+ ROM_LOAD16_BYTE( "428.c7", 0x1800000, 0x400000, CRC(be9f9da2) SHA1(9d619074b368db463182be999c2350b815ee2779) )
+ ROM_LOAD16_BYTE( "428.c8", 0x1800001, 0x400000, CRC(7cff633a) SHA1(4d02abcb21dd20ffe7dfc94579fc6cbfaf1bf14e) )
+ROM_END
+
+
+// 429 : Spiderman intro from Raregame
+ROM_START( smi ) /* you must use unibios to select Japan Console */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "429.p1", 0x000000, 0x100000, CRC(66b5cfe8) SHA1(65754292a085fce07a04fbe8b91a62c42a9695b1) )
+ ROM_LOAD16_WORD_SWAP( "429.p2", 0x100000, 0x400000, CRC(72082aea) SHA1(a56a8d9196c7d6cc5d66204623cce964e1feda05) )
+
+ NEO_SFIX_64K( "427.s1", CRC(63b8b25e) SHA1(1dacfaebfa68d1b2518324c2bc000f310ed8fc3f) )
+
+ ROM_REGION16_BE( 0x20000, "mainbios", 0 )
+ ROM_LOAD16_WORD_SWAP( "uni-bios_2_3o.rom", 0x00000, 0x20000, CRC(601720ae) SHA1(1b8a72c720cdb5ee3f1d735bbcf447b09204b8d9) )
+
+ ROM_REGION( 0x20000, "audiobios", 0 )
+ ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(97cf998b) SHA1(977387a7c76ef9b21d0b01fa69830e949a9a9626) )
+
+ ROM_REGION( 0x20000, "audiocpu", 0 )
+ ROM_LOAD( "429.m1", 0x0000, 0x2000, CRC(6a02cb1d) SHA1(fffd39708bfb121496c78d01e53f07aa9a539c47) )
+ ROM_RELOAD( 0x10000, 0x2000 )
+
+ ROM_REGION( 0x096100, "ymsnd", 0 )
+ ROM_LOAD( "429.v1", 0x000000, 0x096100, CRC(95c138da) SHA1(7bfcd525ecf01737ec85db88355323d676f1f03b) )
+
+ ROM_REGION( 0x1800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "429.c1", 0x0000000, 0x400000, CRC(8e5ccfdd) SHA1(a26a3cadf67f864ded64daca3af13a8db8a73b62) )
+ ROM_LOAD16_BYTE( "429.c2", 0x0000001, 0x400000, CRC(a6406f5b) SHA1(fe63d5aba68bc51861d44ad3ec385e05fd3198c5) )
+ ROM_LOAD16_BYTE( "429.c3", 0x0800000, 0x400000, CRC(adfff926) SHA1(39a1c634168803181b43843dbd562405ed7a8fe6) )
+ ROM_LOAD16_BYTE( "429.c4", 0x0800001, 0x400000, CRC(068c307f) SHA1(47d52fa960a2451f20d6b45c87aef7f5b78e00a5) )
+ ROM_LOAD16_BYTE( "429.c5", 0x1000000, 0x400000, CRC(9a5cf7a6) SHA1(2c6a0fd9139152a85f936323f9e8a26b13819fc2) )
+ ROM_LOAD16_BYTE( "429.c6", 0x1000001, 0x400000, CRC(934f03c0) SHA1(2a54f8fb1be63dcfef2756b9fa5904af3a2ca874) )
+ROM_END
+
+
+// 430 : Teenage Mutant Ninja Turtles intro from Raregame
+ROM_START( tmnti ) /* you must use unibios to select Japan Console */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "430.p1", 0x000000, 0x800000, CRC(2d5066ff) SHA1(e1109c1e7532fa167ba5c9c90648d019740efd8e) )
+
+ NEO_SFIX_64K( "426.s1", CRC(3dc5c1ef) SHA1(fa194481524cd95ec7188fef0857ef4d2435d7eb) )
+
+ ROM_REGION16_BE( 0x20000, "mainbios", 0 )
+ ROM_LOAD16_WORD_SWAP( "uni-bios_2_3o.rom", 0x00000, 0x20000, CRC(601720ae) SHA1(1b8a72c720cdb5ee3f1d735bbcf447b09204b8d9) )
+
+ ROM_REGION( 0x20000, "audiobios", 0 )
+ ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(97cf998b) SHA1(977387a7c76ef9b21d0b01fa69830e949a9a9626) )
+
+ ROM_REGION( 0x20000, "audiocpu", 0 )
+ ROM_LOAD( "430.m1", 0x0000, 0x2000, CRC(953542ef) SHA1(95e93833b938b8d374d29f925777cf296468ae9e) )
+ ROM_RELOAD( 0x10000, 0x2000 )
+
+ ROM_REGION( 0x094900, "ymsnd", 0 )
+ ROM_LOAD( "430.v1", 0x000000, 0x094900, CRC(273640c3) SHA1(6d445e728fa9c4af00de4f454a73651de7a69ec9) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "430.c1", 0x0000000, 0x400000, CRC(ae1735c1) SHA1(a7a943fb088bccbd5e2c0fa34766bab8169000fa) )
+ ROM_LOAD16_BYTE( "430.c2", 0x0000001, 0x400000, CRC(344281b5) SHA1(a7de77ce07bcd87ba6348278e9c2a61e0f96a499) )
+ ROM_LOAD16_BYTE( "430.c3", 0x0800000, 0x400000, CRC(1058a648) SHA1(878384e1bb8e7666723935a6270d61d3015fe475) )
+ ROM_LOAD16_BYTE( "430.c4", 0x0800001, 0x400000, CRC(1c6ba1b0) SHA1(065f059ef412c69c1a6e7d96e0d41d4151802c95) )
+ ROM_LOAD16_BYTE( "430.c5", 0x1000000, 0x400000, CRC(73a89fb0) SHA1(6b17c878cf6e33f98f3d0779e908264a95a186ba) )
+ ROM_LOAD16_BYTE( "430.c6", 0x1000001, 0x400000, CRC(a139246a) SHA1(facc1caa4f5e4f8476df75c3f68802184072a8ee) )
+ ROM_LOAD16_BYTE( "430.c7", 0x1800000, 0x400000, CRC(ed957842) SHA1(0066baf544b87f7d99334401a93c239ce151df50) )
+ ROM_LOAD16_BYTE( "430.c8", 0x1800001, 0x400000, CRC(8c15d91b) SHA1(4b4d4fd2302c43a5c82bb849803d13d43947a695) )
+ROM_END
+
+
+// 431 : Duck Tales intro from Raregame
+ROM_START( dti ) /* you must use unibios to select Japan Console */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "431.p1", 0x000000, 0x800000, CRC(f975711c) SHA1(0bce8bf92536dd18920cdc1ab66a9c42b0a96df3) )
+
+ NEO_SFIX_64K( "427.s1", CRC(63b8b25e) SHA1(1dacfaebfa68d1b2518324c2bc000f310ed8fc3f) )
+
+ ROM_REGION16_BE( 0x20000, "mainbios", 0 )
+ ROM_LOAD16_WORD_SWAP( "uni-bios_2_3o.rom", 0x00000, 0x20000, CRC(601720ae) SHA1(1b8a72c720cdb5ee3f1d735bbcf447b09204b8d9) )
+
+ ROM_REGION( 0x20000, "audiobios", 0 )
+ ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(97cf998b) SHA1(977387a7c76ef9b21d0b01fa69830e949a9a9626) )
+
+ ROM_REGION( 0x20000, "audiocpu", 0 )
+ ROM_LOAD( "431.m1", 0x0000, 0x2000, CRC(7761d993) SHA1(b269e9878ca28faa1d36c7fa3dd8e9939714a5f4) )
+ ROM_RELOAD( 0x10000, 0x2000 )
+
+ ROM_REGION( 0x090200, "ymsnd", 0 )
+ ROM_LOAD( "431.v1", 0x000000, 0x090200, CRC(b40c3a5a) SHA1(fda5e4bf3af75aa70df32b21f132c41670212c52) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "431.c1", 0x0000000, 0x400000, CRC(02adabba) SHA1(7b1eafebed09dbfc1b8d9612f0ed477e25ab152d) )
+ ROM_LOAD16_BYTE( "431.c2", 0x0000001, 0x400000, CRC(00bd87ac) SHA1(cb3c02c799109fa7083110825dacf19c89372c55) )
+ ROM_LOAD16_BYTE( "431.c3", 0x0800000, 0x400000, CRC(263307c8) SHA1(5dabc76b18c02c6955abfbc5010b8fbac7d15753) )
+ ROM_LOAD16_BYTE( "431.c4", 0x0800001, 0x400000, CRC(b8330c1e) SHA1(e3ab645eb1101e561bc581e6b2cf696a0ca1e673) )
+ ROM_LOAD16_BYTE( "431.c5", 0x1000000, 0x400000, CRC(ce99fcb8) SHA1(f6222f1b0dc31e5ae5e6c7e3223aa7129b38b772) )
+ ROM_LOAD16_BYTE( "431.c6", 0x1000001, 0x400000, CRC(a6d30781) SHA1(a29e6b39169f9354a64cf64b302b9e91e0671c82) )
+ ROM_LOAD16_BYTE( "431.c7", 0x1800000, 0x400000, CRC(eda15323) SHA1(ef7291870fd30e7b04cb63e59ff45a3c0acab714) )
+ ROM_LOAD16_BYTE( "431.c8", 0x1800001, 0x400000, CRC(400fd4cd) SHA1(20cc401de5d429deb7d076535a0b42fc62c48c52) )
+ROM_END
+
+
+// 435 : Neo Rom Jukebox by CeL
+ROM_START( neoromjb )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "435.p1", 0x000000, 0x080000, CRC(fc301f3d) SHA1(e7e02963167a612e29e14cfaa53a8eb441961885) )
+
+ NEO_SFIX_64K( "435.s1", CRC(d78bd9a0) SHA1(17a237166aede98bee27d5b52654414c8a1b071a) )
+
+ NEO_BIOS_AUDIO_128K( "435.m1", CRC(60bf52f5) SHA1(86fcb7693ce0c3ee97f3fd2715d3bcb575511cd7) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "435.v1", 0x000000, 0x080000, CRC(68a2a556) SHA1(8343465cca82db43c0decea74c314f641e4bbb7a) )
+
+ ROM_REGION( 0x200000, "sprites", ROMREGION_ERASEFF )
+ // no sprites - these blank roms not used
+ //ROM_LOAD16_BYTE( "435.c1", 0x000000, 0x100000, CRC(40098266) SHA1(d5bacfff0fc3470b8af4b7675daa816b1e2eb775) )
+ //ROM_LOAD16_BYTE( "435.c2", 0x000001, 0x100000, CRC(40098266) SHA1(d5bacfff0fc3470b8af4b7675daa816b1e2eb775) )
+ROM_END
+
+
+// 437 : Crouching Pony Hidden Dragon demo by Le Cortex
+// If the game doesn't work, read the FAQ.
+ROM_START( cphd )
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "437.p1", 0x000000, 0x100000, CRC(de032a95) SHA1(5566ddbb17c8cc4016e25de1afb0ea5c281844ae) )
+ ROM_LOAD16_WORD_SWAP( "437.p2", 0x100000, 0x800000, CRC(7a3a2e41) SHA1(a1bd9e20f29f283f892ed3d937b3a79a63d9a04b) )
+
+ NEO_SFIX_128K( "437.s1", CRC(1736099a) SHA1(486bb9b5abd43d1739c717f0dd3aff0d6ed37ec0) )
+
+ NEO_BIOS_AUDIO_64K( "437.m1", CRC(535a7397) SHA1(3752017175030b05a91078bdf0709af91dee5fc3) )
+
+ ROM_REGION( 0x4000000, "ymsnd", 0 )
+ ROM_LOAD( "437.v1", 0x0000000, 0x2000000, CRC(04eb9c07) SHA1(226f6d6e0365613fb66671775a1f8e5ca62d0549) )
+ ROM_LOAD( "437.v2", 0x2000000, 0x2000000, CRC(9c9aec7f) SHA1(dc54b4ea34724da5dc9e5b498a2b16d7f1ffc1b4) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "437.c1", 0x0000000, 0x2000000, CRC(f3a4b475) SHA1(07a5e8c3a0a8e29f952e448d8eac772ccef6586e) )
+ ROM_LOAD16_BYTE( "437.c2", 0x0000001, 0x2000000, CRC(05ce93a9) SHA1(a29f7ca6d0b3c53a0b2889e716b34fe921da432c) )
+ // not used (blank)
+ //ROM_LOAD16_BYTE( "437.c3", 0x4000000, 0x2000000, CRC(59450445) SHA1(57b587e1bf2d09335bdac6db18902d43dfe76449) )
+ //ROM_LOAD16_BYTE( "437.c4", 0x4000001, 0x2000000, CRC(59450445) SHA1(57b587e1bf2d09335bdac6db18902d43dfe76449) )
+ROM_END
+
+
+// 438: Neo Bubble (author unknown)
+// Incomplete. Patched so that it can show an inbuilt message.
+ROM_START( neobubble )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "438.p1", 0x000000, 0x080000, CRC(a38b6d52) SHA1(be7918c98c65dbf533556886dea935347db6ca14) )
+ ROM_COPY("maincpu",0x398, 0x1398, 0x116)
+ ROM_FILL(0x38C,1,0x3A)
+ ROM_FILL(0x38D,1,0x3C)
+ ROM_FILL(0x38E,1,0x01)
+ ROM_FILL(0x38F,1,0x38)
+ ROM_FILL(0x390,1,0x4E)
+ ROM_FILL(0x391,1,0xB9)
+ ROM_FILL(0x392,1,0x00)
+ ROM_FILL(0x393,1,0x00)
+ ROM_FILL(0x394,1,0x13)
+ ROM_FILL(0x395,1,0x98)
+ ROM_FILL(0x396,1,0x50)
+ ROM_FILL(0x397,1,0x8F)
+ ROM_FILL(0x398,1,0x51)
+ ROM_FILL(0x399,1,0xCD)
+ ROM_FILL(0x39A,1,0xFF)
+ ROM_FILL(0x39B,1,0xF6)
+ ROM_FILL(0x39C,1,0x60)
+ ROM_FILL(0x39D,1,0xFE)
+ // This rom does nothing, just a black screen
+ //ROM_LOAD16_WORD_SWAP( "438a.p1", 0x000000, 0x080000, CRC(cbd8204d) SHA1(d0cbf0b3c4a160fdf0d598fe77b52024d438d595) )
+
+ NEO_SFIX_128K( "412.s1", CRC(cd19264f) SHA1(531be2305cd56d332fb7a53ab924214ade34a9e8) )
+
+ NEO_BIOS_AUDIO_128K( "202-m1.m1", CRC(9c0291ea) SHA1(3fa67c62acba79be6b3a98cc1601e45569fa11ae) )
+
+ ROM_REGION( 0x500000, "ymsnd", 0 )
+ ROM_LOAD( "202-v1.v1", 0x000000, 0x80000, CRC(debeb8fb) SHA1(49a3d3578c087f1a0050168571ef8d1b08c5dc05) )
+ ROM_LOAD( "076-v2.v2", 0x200000, 0x200000, CRC(b61686c3) SHA1(5a3405e833ce36abb7421190438b5cccc8537919) )
+ ROM_LOAD( "076-v3.v3", 0x400000, 0x100000, CRC(b90658fa) SHA1(b9a4b34565ce3688495c47e35c9b888ef686ae9f) )
+
+ ROM_REGION( 0x800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "438.c1", 0x000000, 0x100000, CRC(82ce3020) SHA1(65b572b5304bb259d0a5924d74ec3e1c5b3ac699) )
+ ROM_LOAD16_BYTE( "438.c2", 0x000001, 0x100000, CRC(d209f6f7) SHA1(9d60ac994a1d4004f317aa12a521a8aa6dda5746) )
+ ROM_LOAD16_BYTE( "076-c3.c3", 0x400000, 0x200000, CRC(d06431e3) SHA1(643bd1ad74af272795b02143ba80a76e375036ab) )
+ ROM_LOAD16_BYTE( "076-c4.c4", 0x400001, 0x200000, CRC(4b1c089b) SHA1(cd63961d88c5be84673cce83c683a86b222a064d) )
+ROM_END
+
+
+// 439 : Primo demo by BEY
+// No sound.
+ROM_START( iocero )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "439.p1", 0x000000, 0x100000, CRC(a315fb81) SHA1(c958d78de5d83ff31c9545d54c6429c85cdbdb64) )
+
+ NEO_SFIX_128K( "419.s1", CRC(a545b593) SHA1(09077b63595eebb7dddd55e041e7786164df0ead) )
+
+ NEO_BIOS_AUDIO_128K( "202-m1.m1", CRC(9c0291ea) SHA1(3fa67c62acba79be6b3a98cc1601e45569fa11ae) )
+
+ ROM_REGION( 0x80000, "ymsnd", 0 )
+ ROM_LOAD( "202-v1.v1", 0x000000, 0x80000, CRC(debeb8fb) SHA1(49a3d3578c087f1a0050168571ef8d1b08c5dc05) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "439.c1", 0x000000, 0x100000, CRC(d68941e1) SHA1(20b70416b9b284bae576b385ddc63fe9a47cf976) )
+ ROM_LOAD16_BYTE( "439.c2", 0x000001, 0x100000, CRC(df7e359f) SHA1(08d45350047ad9bcad17739d8b00b911b47417ee) )
+ROM_END
+
+
+// 440 : Galaga demo by BEY
+// No sound.
+ROM_START( neogal1 )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "440_1.p1", 0x000000, 0x100000, CRC(7226db5c) SHA1(d598096265286b5d32a3c6abbea8c281ee94458c) )
+
+ NEO_SFIX( 0x2000, "440_1.s1", CRC(90557449) SHA1(a6aac83715a5d2c7d0436c3d0b80d61459316ee7) )
+
+ NEO_BIOS_AUDIO_128K( "202-m1.m1", CRC(9c0291ea) SHA1(3fa67c62acba79be6b3a98cc1601e45569fa11ae) )
+
+ ROM_REGION( 0x80000, "ymsnd", 0 )
+ ROM_LOAD( "202-v1.v1", 0x000000, 0x80000, CRC(debeb8fb) SHA1(49a3d3578c087f1a0050168571ef8d1b08c5dc05) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "440_1.c1", 0x000000, 0x100000, CRC(6de8c6f6) SHA1(51d29bab7b482a5a850af08f9939a42e7127df3b) )
+ ROM_LOAD16_BYTE( "440_1.c2", 0x000001, 0x100000, CRC(fa5f0c1d) SHA1(8e8fb1f0314450ab9cdbd9619a9cdccdd78fea99) )
+ROM_END
+
+// No sound.
+ROM_START( neogal1t )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "440_1t.p1", 0x000000, 0x100000, CRC(01dc85fd) SHA1(7fed5c859901066e27bac777d3846e69185648e6) )
+
+ NEO_SFIX( 0x2000, "440_1.s1", CRC(90557449) SHA1(a6aac83715a5d2c7d0436c3d0b80d61459316ee7) )
+
+ NEO_BIOS_AUDIO_128K( "202-m1.m1", CRC(9c0291ea) SHA1(3fa67c62acba79be6b3a98cc1601e45569fa11ae) )
+
+ ROM_REGION( 0x80000, "ymsnd", 0 )
+ ROM_LOAD( "202-v1.v1", 0x000000, 0x80000, CRC(debeb8fb) SHA1(49a3d3578c087f1a0050168571ef8d1b08c5dc05) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "440_1t.c1", 0x000000, 0x100000, CRC(f8221e34) SHA1(c8bb90c03213dc493bdaa36d94c713508303a275) )
+ ROM_LOAD16_BYTE( "440_1t.c2", 0x000001, 0x100000, CRC(c30cf1fc) SHA1(774a1896fc15cdf9fddf1e1a874ea43fe4136bd6) )
+ROM_END
+
+// No sound.
+ROM_START( neogal1d )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "440_1d.p1", 0x000000, 0x100000, CRC(2c49e6ec) SHA1(69602bce2a119f644385b1cfda5ee38dbc081679) )
+
+ NEO_SFIX_128K( "419.s1", CRC(a545b593) SHA1(09077b63595eebb7dddd55e041e7786164df0ead) )
+
+ NEO_BIOS_AUDIO_128K( "202-m1.m1", CRC(9c0291ea) SHA1(3fa67c62acba79be6b3a98cc1601e45569fa11ae) )
+
+ ROM_REGION( 0x80000, "ymsnd", 0 )
+ ROM_LOAD( "202-v1.v1", 0x000000, 0x80000, CRC(debeb8fb) SHA1(49a3d3578c087f1a0050168571ef8d1b08c5dc05) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "440_1.c1", 0x000000, 0x100000, CRC(6de8c6f6) SHA1(51d29bab7b482a5a850af08f9939a42e7127df3b) )
+ ROM_LOAD16_BYTE( "440_1.c2", 0x000001, 0x100000, CRC(fa5f0c1d) SHA1(8e8fb1f0314450ab9cdbd9619a9cdccdd78fea99) )
+ROM_END
+
+ROM_START( neogal2 )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "440_2.p1", 0x000000, 0x100000, CRC(a6321942) SHA1(e2085c677e124708770846c2b9f1d3ba9e6a4323) )
+
+ NEO_SFIX_128K( "419.s1", CRC(a545b593) SHA1(09077b63595eebb7dddd55e041e7786164df0ead) )
+
+ NEO_BIOS_AUDIO_128K( "202-m1.m1", CRC(9c0291ea) SHA1(3fa67c62acba79be6b3a98cc1601e45569fa11ae) )
+
+ ROM_REGION( 0x80000, "ymsnd", 0 )
+ ROM_LOAD( "202-v1.v1", 0x000000, 0x80000, CRC(debeb8fb) SHA1(49a3d3578c087f1a0050168571ef8d1b08c5dc05) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "440_1.c1", 0x000000, 0x100000, CRC(6de8c6f6) SHA1(51d29bab7b482a5a850af08f9939a42e7127df3b) )
+ ROM_LOAD16_BYTE( "440_1.c2", 0x000001, 0x100000, CRC(fa5f0c1d) SHA1(8e8fb1f0314450ab9cdbd9619a9cdccdd78fea99) )
+ROM_END
+
+
+// 441 : Neo Geo Sound Test by BEY
+// Bugs: Insert Coin causes reboot
+ROM_START( neotest )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "441.p1", 0x000000, 0x80000, CRC(2ee900b2) SHA1(4b083f4e1e502ac17e3e396d8655870dbac7fba7) )
+
+ NEO_SFIX( 0x2000, "440_1.s1", CRC(90557449) SHA1(a6aac83715a5d2c7d0436c3d0b80d61459316ee7) )
+
+ NEO_BIOS_AUDIO_128K( "441.m1", CRC(ad14cc39) SHA1(852f71ebb54c2c26795e8a2771d1638e42e0c634) )
+
+ ROM_REGION( 0x100000, "ymsnd", 0 )
+ ROM_LOAD( "441.v1", 0x000000, 0x100000, CRC(c1c07bd5) SHA1(79a25211590dc1192913a7655d7f2d1682acdc97) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "440_1.c1", 0x000000, 0x100000, CRC(6de8c6f6) SHA1(51d29bab7b482a5a850af08f9939a42e7127df3b) )
+ ROM_LOAD16_BYTE( "440_1.c2", 0x000001, 0x100000, CRC(fa5f0c1d) SHA1(8e8fb1f0314450ab9cdbd9619a9cdccdd78fea99) )
+ROM_END
+
+
+// 442 : Bad Apple demo by BEY
+// No colours
+ROM_START( neobadapple )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD( "442.p1", 0x000000, 0x09e0f, CRC(c8068de3) SHA1(f240b23f5f2aed998ebcbb95680225e3e35a8051) )
+ ROM_LOAD16_WORD( "442.p2", 0x100000, 0xeeb5c, CRC(f5fe8e16) SHA1(68398a9719eb9f4e42668991384683965c5787bf) )
+ ROM_LOAD16_WORD( "442.p3", 0x200000, 0xf4764, CRC(a70f49bd) SHA1(1b8a70e0f5467ea750586e3c0cb7a6188dc482d2) )
+ ROM_LOAD16_WORD( "442.p4", 0x300000, 0xf4764, CRC(dbf6bc37) SHA1(ecfdfa79811d586ace3577ccb7bc1c535482fe84) )
+ ROM_LOAD16_WORD( "442.p5", 0x400000, 0x8122c, CRC(55ca8ba8) SHA1(899d974765d28b342d2fa0ce5e66734a09278ed0) )
+
+ NEO_SFIX_128K( "063-s1.s1", CRC(64a5cd66) SHA1(12cdfb27bf9ccd5a8df6ddd4628ef7cf2c6d4964) )
+
+ NEO_BIOS_AUDIO_128K( "442.m1", CRC(ad7f4d47) SHA1(8700ed799c013db270c5b80002c23733dfaaa534) )
+
+ ROM_REGION( 0x300000, "ymsnd", 0 )
+ ROM_LOAD( "442.v1", 0x000000, 0x300000, CRC(ce9bf279) SHA1(d14133414570d30ac477c226771175fa4b54073b) )
+
+ ROM_REGION( 0x1800000, "sprites", 0 )
+ ROM_LOAD16_WORD( "442.c1", 0x000000, 0x5a3b80, CRC(5fd2d36d) SHA1(13a045627029ade7a1e0f5cdcce3bf2b92de9559) )
+ ROM_LOAD16_WORD( "442.c2", 0x600000, 0x5bb580, CRC(5cbbc6e0) SHA1(aad04b9b7cdf7c3951006b39676ee4ee989338b0) )
+ ROM_LOAD16_WORD( "442.c3", 0xc00000, 0x5b1200, CRC(befd5392) SHA1(49f0610b9a4e1bdbb881c2156f01631cc45915c1) )
+ ROM_LOAD16_WORD( "442.c4", 0x1200000, 0x2c7480, CRC(e4b70cf5) SHA1(af717a650dbde0c4a852f8ee87a1d55ac9349172) )
+ROM_END
+
+
+// 444 : Santaball by M.Priewe.
+// Press 1 to play a game of Pong.
+// If the game misbehaves, read the FAQ.
+ROM_START( santabll )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "444.p1", 0x000000, 0x100000, CRC(2af7a77c) SHA1(ff79d4695e8060f5a7b981524303336a0ad99c0c) )
+
+ NEO_SFIX_128K( "444.s1", CRC(ac031928) SHA1(7516593efc70e6effed8f5423e9736d6555b3baf) )
+
+ NEO_BIOS_AUDIO_64K( "444.m1", CRC(37a8d679) SHA1(957de2aa1775502a51b4e2d5cb6268cee00f6c2a) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "444.v1", 0x000000, 0x100000, CRC(d0150804) SHA1(b3d4cdb6d0f426de3801eb04d56f867bec8fe611) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "444.c1", 0x000000, 0x100000, CRC(1e271a9b) SHA1(5cae43aa094d5ee34983bc70aeab06652a6b0e7f) )
+ ROM_LOAD16_BYTE( "444.c2", 0x000001, 0x100000, CRC(1c7fd396) SHA1(aa2e2fff1ad1804631f3058b9666b970a368a847) )
+ROM_END
+
+
+// 446 : Monitor Test by M.Priewe.
+// No sound.
+ROM_START( ngmontst )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "446.p1", 0x000000, 0x100000, CRC(17a4ad61) SHA1(38c0f2022947043f30a27ccda06cc709fe980fed) )
+
+ NEO_SFIX_128K( "sfix.sfix", CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) )
+
+ NEO_BIOS_AUDIO_128K( "052-m1.m1", CRC(49f17d2d) SHA1(70971fcf71ae3a6b2e26e7ade8063941fb178ae5) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "052-v1.v1", 0x000000, 0x200000, CRC(22c097a5) SHA1(328c4e6db0a026f54a633cff1443a3f964a8daea) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "446.c1", 0x000000, 0x100000, CRC(715df715) SHA1(74534eb9bb48a04f25d0044b1f2b57e59f49b06f) )
+ ROM_LOAD16_BYTE( "446.c2", 0x000001, 0x100000, CRC(d8ee3c9b) SHA1(c731eaffae34b4394e290e68ca8c3700e1c6dc2b) )
+ROM_END
+
+
+// 457 : MVS Test 01 by Furrtek.
+ROM_START( test01 )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "457.p1", 0x000000, 0x080000, CRC(dd059433) SHA1(17cc7c48464d2d2a3d104f47e70a5f7cf3e19a5e) )
+
+ NEO_SFIX_128K( "052-s1.s1", CRC(97689804) SHA1(fa8dab3b3353d7115a0368f3fc749950c0186fbc) )
+
+ NEO_BIOS_AUDIO_128K( "052-m1.m1", CRC(49f17d2d) SHA1(70971fcf71ae3a6b2e26e7ade8063941fb178ae5) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "052-v1.v1", 0x000000, 0x200000, CRC(22c097a5) SHA1(328c4e6db0a026f54a633cff1443a3f964a8daea) )
+
+ ROM_REGION( 0x600000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "052-c1.c1", 0x000000, 0x100000, CRC(53e1c002) SHA1(2125b1be379ea7933893ffb1cd65d6c4bf8b03bd) )
+ ROM_CONTINUE( 0x400000, 0x100000 )
+ ROM_LOAD16_BYTE( "052-c2.c2", 0x000001, 0x100000, CRC(776a2d1f) SHA1(bca0bac87443e9e78c623d284f6cc96cc9c9098f) )
+ ROM_CONTINUE( 0x400001, 0x100000 )
+ROM_END
+
+
+// 458 : KnackiBalls by Furrtek. Patched by Robbbert.
+// Bad address alignment causes it to continually reboot, so I have patched it.
+// Instruction 5019 inserted to align A1 to the next word. So, some instructions are pushed upward.
+// Not sure if the result is totally correct, but at least it runs now.
+// No sound.
+ROM_START( knacki )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "458.p1", 0x000000, 0x080000, CRC(56c0d270) SHA1(aebb3223e519f76e2abfa59f48626aa5e970ce4c) )
+ ROM_COPY("maincpu",0x3e2, 0x3e4, 16) // move code so we can insert 5019
+ ROM_FILL(0x12d, 1, 0xf4) // jump to another rts as we are overwriting this one's destination
+ ROM_FILL(0x3e2, 1, 0x50) // insert 50
+ ROM_FILL(0x3e3, 1, 0x19) // insert 19
+ ROM_FILL(0x3e7, 1, 0xc4) // fix jump
+
+ NEO_SFIX_128K( "052-s1.s1", CRC(97689804) SHA1(fa8dab3b3353d7115a0368f3fc749950c0186fbc) )
+
+ NEO_BIOS_AUDIO_128K( "458.m1", CRC(183c234a) SHA1(366c875703ced09c460d1810aadb3cd2f2fcd067) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "458.v1", 0x000000, 0x200000, CRC(ad1d1925) SHA1(4fa973bd8d2793ef553ea4e536193d3b89027828) )
+
+ ROM_REGION( 0x600000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "458.c1", 0x000000, 0x100000, CRC(71dd4d25) SHA1(682671b55375dea8f86b25031320611a8c60326e) )
+ ROM_CONTINUE( 0x400000, 0x100000 )
+ ROM_LOAD16_BYTE( "458.c2", 0x000001, 0x100000, CRC(0deccb3d) SHA1(ee9d1e5d3efcea0545a6dae8cd28b913e6f106b6) )
+ ROM_CONTINUE( 0x400001, 0x100000 )
+ROM_END
+
+
+// 467 : Sprite Experimenter by Furrtek.
+// Bugs: Insert Coin freezes HBMAME
+ROM_START( spriteex )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "467.p1", 0x000000, 0x080000, CRC(9bce0611) SHA1(5fcb0fa6a434baf20972819484430faf44ffa21d) )
+
+ NEO_SFIX_128K( "sfix.sfix", CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) )
+
+ NEO_BIOS_AUDIO_128K( "467.m1", CRC(78bd1a39) SHA1(11963ee5d01a54e5f7e1b8973adb10960308a091) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "467.v1", 0x000000, 0x10000, CRC(48077f32) SHA1(97784ee122aec09f72b62387796726c3f3e9be5e) )
+
+ ROM_REGION( 0x800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "467.c1", 0x000000, 0x200000, CRC(dcda2ca8) SHA1(b37714532d36608eb7b819396a6796d0d49dbf92) )
+ ROM_CONTINUE( 0x400000, 0x200000 )
+ ROM_LOAD16_BYTE( "467.c2", 0x000001, 0x200000, CRC(c8a4d037) SHA1(6541074be8493bf2c7b869e8dbdb39f3309dcaf7) )
+ ROM_CONTINUE( 0x400001, 0x200000 )
+ROM_END
+
+
+// 470 : ADPCM-B Playback Demo by freem.
+// Note that these 2 old roms are buggy and should be discarded: (use only the 'v3' set)
+// CRC(6d719183) SHA1(e1e064bb785823a1f20f4a931bd7961515de2a98) )
+// CRC(7b8abba4) SHA1(c492c468b34f0a7d57e2abd54d6057f3e470ee27) )
+ROM_START( pcmbdemo )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "470.p1", 0x000000, 0x080000, CRC(904e90ad) SHA1(1e13a81a2e0b1926d1745288e81dc51cd1ade5ac) )
+
+ NEO_SFIX_128K( "470.s1", CRC(9647ff8a) SHA1(ecfaa4649d490fae1697e34cc5bbbc386ffa5ef6) )
+
+ NEO_BIOS_AUDIO_128K( "470.m1", CRC(df4acc0c) SHA1(9c2999312ede7a1a415fa151a9acc6c98e510bf0) )
+
+ ROM_REGION( 0x80000, "ymsnd", 0 )
+ ROM_LOAD( "470.v1", 0x000000, 0x80000, CRC(baffec3e) SHA1(58ec4b684220ea558ed7dea99dfed1d24c57e662) )
+
+ ROM_REGION( 0x200000, "sprites", ROMREGION_ERASEFF )
+ // no sprites
+ROM_END
+
+
+// 472 : ADPCM-A Playback Demo by freem.
+ROM_START( pcmademo )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "472.p1", 0x000000, 0x080000, CRC(a198ce30) SHA1(17b9ad5fe5136c0425823f49a65d428c544170c5) )
+
+ NEO_SFIX_128K( "472.s1", CRC(c3dddf6e) SHA1(cce290e869ecbd52b7a7ed1e35c2c825450cc24c) )
+
+ NEO_BIOS_AUDIO_128K( "472.m1", CRC(1c667c87) SHA1(3bc2cb708aa9c4618d901da1f627ae719dee445d) )
+
+ ROM_REGION( 0x80000, "ymsnd", 0 )
+ ROM_LOAD( "472.v1", 0x000000, 0x80000, CRC(e7ef9bd8) SHA1(d5de1f63189b3a18382da81f02b20af68996ad7e) )
+
+ ROM_REGION( 0x200000, "sprites", ROMREGION_ERASEFF )
+ // no sprites
+ROM_END
+
+
+// 473 : Twister in a mirror intro by Blastar.
+ROM_START( twister )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "473.p1", 0x000000, 0x080000, CRC(514bf0fd) SHA1(d7d084b83ae5ae776d6cc7b7d183bd79b2ab114a) )
+
+ NEO_SFIX_128K( "473.s1", CRC(111ea86c) SHA1(1251d7ef30493b76b15ddc8975a0278ad4a48434) )
+
+ NEO_BIOS_AUDIO_128K( "473.m1", CRC(c1c27b33) SHA1(655c1b01deacacbdbfe3a89196d4b0d9d3aae1eb) )
+
+ ROM_REGION( 0x80000, "ymsnd", 0 )
+ ROM_LOAD( "473.v1", 0x000000, 0x80000, CRC(0c5e044c) SHA1(e5717ea0e6daaf7c529f1e8cf5e4e73ee4a3f26f) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "473.c1", 0x000000, 0x100000, CRC(72ceed51) SHA1(aa5ead993db739cf34917287988aeb43afa7f7d5) )
+ ROM_LOAD16_BYTE( "473.c2", 0x000001, 0x100000, CRC(27da57ee) SHA1(323fcd0893aec82cc3c78687834920e2eeedb67b) )
+ROM_END
+
+
+// 474 : Sound-Loop Demo by freem.
+// Bugs: The first time 5 is pressed, the game resets. After that it has no effect.
+ROM_START( snddemo )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "474.p1", 0x000000, 0x080000, CRC(fbb26284) SHA1(80837fb870e36360f2c8c4576d1b43f3feef3ff5) )
+
+ NEO_SFIX_128K( "474.s1", CRC(a7a76e2a) SHA1(894194f43b0bb884cb6f392bb0c9d1284639e577) )
+
+ NEO_BIOS_AUDIO_64K( "474.m1", CRC(ba37ca7d) SHA1(4bb0897b74eadd7eb2782fcf2ae0a9897b9e8c8f) )
+
+ ROM_REGION( 0x10000, "ymsnd", 0 )
+ ROM_LOAD( "474.v1", 0x000000, 0x10000, CRC(95101457) SHA1(81ca771f441edc01019b8c629709eccc746059ba) )
+
+ ROM_REGION( 0x100000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "474.c1", 0x000000, 0x080000, CRC(cad47785) SHA1(538c072417d849f33d1da3f61f98be4674c10762) )
+ ROM_LOAD16_BYTE( "474.c2", 0x000001, 0x080000, CRC(c43d0953) SHA1(1ceb394b495f8a082452d50f78d2d7d8d1ec9a56) )
+ROM_END
+
+
+// 475 : Sprite demo by Kannagi (26-3-2016)
+// Arrows to move fighter around. A = kick; B = punch; C & D slide background left & right. No sound.
+ROM_START( neofightb )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "475.p1", 0x000000, 0x080000, CRC(caaf0da5) SHA1(089a89c787d4955fcb11141b50d587caa785c30a) )
+
+ NEO_SFIX_128K( "052-s1.s1", CRC(97689804) SHA1(fa8dab3b3353d7115a0368f3fc749950c0186fbc) )
+
+ NEO_BIOS_AUDIO_128K( "475.m1", CRC(ffcbeb27) SHA1(101fee624083f33aac88e73afc69907df0b41de3) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "475.v1", 0x000000, 0x1e3300, CRC(da4f84c0) SHA1(7e9c039a47445ef805adf68c65e20063d93ba601) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "475.c1", 0x000000, 0x200000, CRC(4c2ec7e3) SHA1(572f087d2adb4900dbab39fa9bc517237ddba54e) )
+ ROM_LOAD16_BYTE( "475.c2", 0x000001, 0x200000, CRC(319b0d51) SHA1(f57b4b3c96d94a6887f9e02e53af8eaef59d617a) )
+ROM_END
+
+// 476 : Neo Fight by Kannagi (14-12-2015)
+// Arrows to move fighter around. A = kick; B = punch; C & D slide background left & right. No sound.
+ROM_START( neofighto )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "476o.p1", 0x000000, 0x080000, CRC(b0eb16a0) SHA1(136b1cb9b9daf1b8563c66002d07bb5128d41061) )
+
+ NEO_SFIX_128K( "052-s1.s1", CRC(97689804) SHA1(fa8dab3b3353d7115a0368f3fc749950c0186fbc) )
+
+ NEO_BIOS_AUDIO_128K( "052-m1.m1", CRC(49f17d2d) SHA1(70971fcf71ae3a6b2e26e7ade8063941fb178ae5) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "052-v1.v1", 0x000000, 0x200000, CRC(22c097a5) SHA1(328c4e6db0a026f54a633cff1443a3f964a8daea) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "476.c1", 0x000000, 0x200000, CRC(99fda4d5) SHA1(c5ff1b724a8cbc209c47eb4fb1eca4f0b76aad5c) )
+ ROM_LOAD16_BYTE( "476.c2", 0x000001, 0x200000, CRC(2e48378a) SHA1(80389cfc420b2e7c5f50c809995a3298a57c697f) )
+ROM_END
+ROM_START( neofight )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "476.p1", 0x000000, 0x080000, CRC(c44e5685) SHA1(59bc5814454e74f069dcdc8d3fb32da5b5b65bec) )
+
+ NEO_SFIX_128K( "052-s1.s1", CRC(97689804) SHA1(fa8dab3b3353d7115a0368f3fc749950c0186fbc) )
+
+ NEO_BIOS_AUDIO_128K( "052-m1.m1", CRC(49f17d2d) SHA1(70971fcf71ae3a6b2e26e7ade8063941fb178ae5) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "052-v1.v1", 0x000000, 0x200000, CRC(22c097a5) SHA1(328c4e6db0a026f54a633cff1443a3f964a8daea) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "476.c1", 0x000000, 0x200000, CRC(99fda4d5) SHA1(c5ff1b724a8cbc209c47eb4fb1eca4f0b76aad5c) )
+ ROM_LOAD16_BYTE( "476.c2", 0x000001, 0x200000, CRC(2e48378a) SHA1(80389cfc420b2e7c5f50c809995a3298a57c697f) )
+ROM_END
+
+// 477 : Demo that comes with DatImage, by Mega Shocked (26-07-2016)
+// No sound.
+ROM_START( didemo )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "477.p1", 0x000000, 0x200000, CRC(732691f4) SHA1(40bddb4e636799f77b85a5b46fd9c90f9e125dce) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "063-m1.m1", CRC(56675098) SHA1(90429fc40d056d480d0e2bbefbc691d9fa260fc4) )
+
+ ROM_REGION( 0x200000, "ymsnd", ROMREGION_ERASEFF )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "477.c1", 0x000000, 0x200000, CRC(af99af71) SHA1(81b723a159dc80f2b784eb6027ccece94dc8324b) )
+ ROM_LOAD16_BYTE( "477.c2", 0x000001, 0x200000, CRC(7b17b0f2) SHA1(b11071fd4782592a375f260352a0ca0d0df2c6e5) )
+ROM_END
+
+// 478 : Demo by Mega Shocked (17-08-2016)
+ROM_START(akiradmo)
+ ROM_REGION( 0x400000, "maincpu", 0 )
+ ROM_LOAD( "478.p1", 0x000000, 0x003188, CRC(a87fa008) SHA1(89f41671f185fd5e92237fcf82e9ed60387fafad) )
+ ROM_LOAD( "478.p2", 0x100000, 0x09edf8, CRC(16d8b6b4) SHA1(b246b380b3cca17e11ab223bf4d1aeb605663a03) )
+ ROM_LOAD( "478.p3", 0x200000, 0x074da4, CRC(94a22666) SHA1(e9cb0f159404ddcce10554753e56084fb79f2e60) )
+ ROM_LOAD( "478.p4", 0x300000, 0x076b0c, CRC(d170285c) SHA1(b19bd0de148a68de9dbd18d89417c3dd32518780) )
+
+ NEO_SFIX_128K( "063-s1.s1", CRC(64a5cd66) SHA1(12cdfb27bf9ccd5a8df6ddd4628ef7cf2c6d4964) )
+
+ NEO_BIOS_AUDIO_128K( "478.m1", CRC(37d8cb43) SHA1(b89baa6f41aefad57fb546fd1135506538ab9099) )
+
+ ROM_REGION( 0x100000, "ymsnd", ROMREGION_ERASEFF )
+ ROM_LOAD( "478.v1", 0x000000, 0x100000, CRC(148c5203) SHA1(8ddbfeeac4493f6e6ed7df834fcf1f0cede42ac3) )
+
+ ROM_REGION( 0xc00000, "sprites", 0 )
+ ROM_LOAD( "478.c1", 0x000000, 0x34c700, CRC(84eba506) SHA1(a771cbc5efe7b61114db6b7f776b5ab93f09b2bc) )
+ ROM_LOAD( "478.c2", 0x400000, 0x2e0400, CRC(a731451c) SHA1(aae521c38430a2797c7a60d970a0179673f05215) )
+ ROM_LOAD( "478.c3", 0x800000, 0x249a80, CRC(87b2a616) SHA1(915d5c7bf832b725a3678b3735790f503dd34f48) )
+ROM_END
+
+// 480 : Tech Demo 2 by Luis Miguel Mayor
+// No sound.
+ROM_START( ngtd2 )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "480.p1", 0x000000, 0x100000, CRC(35131b60) SHA1(74877b4f1bdbba712b04afdf65bede1d30f846b0) )
+
+ NEO_SFIX_64K( "480.s1", CRC(9a246f50) SHA1(1f1358dd9c2f88d2197d6c8272ec899b7c9a524b) )
+
+ NEO_BIOS_AUDIO_128K( "480.m1", CRC(5ef0d5eb) SHA1(a327d6a88f3c7ccd242fceaffb3ef33a0171c215) )
+
+ ROM_REGION( 0x100000, "ymsnd", 0 )
+ ROM_LOAD( "480.v1", 0x000000, 0x100000, CRC(5ea51b63) SHA1(62126f407175cd7bf44fb5acc1df12fbc0e23df6) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "480.c1", 0x000000, 0x100000, CRC(0ecfa2ba) SHA1(a5a7cbd3b79260f8cc99992067df315b20ae6741) )
+ ROM_LOAD16_BYTE( "480.c2", 0x000001, 0x100000, CRC(f16b9ae8) SHA1(cb43089370a77bdd177db7eb6819ed21c994a914) )
+ROM_END
+
+
+// 802 : Last Hope CD Beta by NG:DEV.Team
+// Bugs: Insert Coin causes reboot; purple boxes instead of graphics; some corrupt graphics
+ROM_START( lhcdb )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "802cd.p1", 0x000000, 0x100000, CRC(83e7b181) SHA1(eb13909c0b062d56d20cbdfe75abf6139eae9ee0) )
+
+ NEO_SFIX_128K( "802cd.s1", CRC(298495d6) SHA1(c217aba6c1916d2e5337bb5c17d979b11a53582e) )
+
+ NEO_BIOS_AUDIO_128K( "802cd.m1", CRC(d9f6c153) SHA1(c08f7ca288be1c34f4b33ed13abd805b5cd66d4e) )
+
+ ROM_REGION( 0xbc3500, "ymsnd", 0 )
+ ROM_LOAD( "802cd.v1", 0x000000, 0x400000, CRC(de563ec3) SHA1(cd0f1a436cdac679792fc78906e718c78369b15a) )
+ ROM_LOAD( "802cd.v2", 0x400000, 0x400000, CRC(93478033) SHA1(a03e0fcb7f51c66ec0bc5d164744db00b96973c2) )
+ ROM_LOAD( "802cd.v3", 0x800000, 0x3c3500, CRC(f0ad87b8) SHA1(f992e84c6cbbc3cab79747a2ca4d646d18bebcbd) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "802cd.c1", 0x000000, 0x400000, CRC(554e6b73) SHA1(3637a8a4474e33eb75ac4a4ce0815f6a514fe337) )
+ ROM_LOAD16_BYTE( "802cd.c2", 0x000001, 0x400000, CRC(7c84b0fc) SHA1(cbd7a7865113e4f21f2b1f990a077fa5c2eae894) )
+ ROM_LOAD16_BYTE( "802cd.c3", 0x800000, 0x400000, CRC(28ec7555) SHA1(f094739272e6017a7193fa96cde3c1ed573a66b6) )
+ ROM_LOAD16_BYTE( "802cd.c4", 0x800001, 0x400000, CRC(8b7c236b) SHA1(1cb3fe81f433a2180c85be935e340da3c55aafdb) )
+ROM_END
+ROM_START( lhcdba ) // v3 rom is different
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "802cd.p1", 0x000000, 0x100000, CRC(83e7b181) SHA1(eb13909c0b062d56d20cbdfe75abf6139eae9ee0) )
+
+ NEO_SFIX_128K( "802cd.s1", CRC(298495d6) SHA1(c217aba6c1916d2e5337bb5c17d979b11a53582e) )
+
+ NEO_BIOS_AUDIO_128K( "802cd.m1", CRC(d9f6c153) SHA1(c08f7ca288be1c34f4b33ed13abd805b5cd66d4e) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "802cd.v1", 0x000000, 0x400000, CRC(de563ec3) SHA1(cd0f1a436cdac679792fc78906e718c78369b15a) )
+ ROM_LOAD( "802cd.v2", 0x400000, 0x400000, CRC(93478033) SHA1(a03e0fcb7f51c66ec0bc5d164744db00b96973c2) )
+ ROM_LOAD( "802cda.v3", 0x800000, 0x400000, CRC(e0fc99ca) SHA1(6de935b54bf5adc4394fe824b001b38eca0291ad) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "802cd.c1", 0x000000, 0x400000, CRC(554e6b73) SHA1(3637a8a4474e33eb75ac4a4ce0815f6a514fe337) )
+ ROM_LOAD16_BYTE( "802cd.c2", 0x000001, 0x400000, CRC(7c84b0fc) SHA1(cbd7a7865113e4f21f2b1f990a077fa5c2eae894) )
+ ROM_LOAD16_BYTE( "802cd.c3", 0x800000, 0x400000, CRC(28ec7555) SHA1(f094739272e6017a7193fa96cde3c1ed573a66b6) )
+ ROM_LOAD16_BYTE( "802cd.c4", 0x800001, 0x400000, CRC(8b7c236b) SHA1(1cb3fe81f433a2180c85be935e340da3c55aafdb) )
+ROM_END
+ROM_START( lhopecd ) // These roms were extracted from the Japanese ISO, not working at all.
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD( "802cdb.p1", 0x000000, 0x100000, CRC(cd108282) SHA1(bb9b3c8bb94c05b46ea24173e62245611dbc29ce) )
+
+ NEO_SFIX_128K( "802cd.s1", CRC(298495d6) SHA1(c217aba6c1916d2e5337bb5c17d979b11a53582e) )
+
+ NEO_BIOS_AUDIO_128K( "802cd.m1", CRC(d9f6c153) SHA1(c08f7ca288be1c34f4b33ed13abd805b5cd66d4e) )
+
+ ROM_REGION( 0x80000, "ymsnd", 0 )
+ ROM_LOAD( "802cdb.v1", 0x000000, 0x80000, CRC(bc65aee1) SHA1(2090133dcbb4f5b73696aab71ed5ea5b25b09b55) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "802cdb.c1", 0x000000, 0x200000, CRC(c5741cc8) SHA1(8593b320c140456ede6a7e355fcde978e74a0ffd) )
+ ROM_LOAD16_BYTE( "802cdb.c2", 0x000001, 0x200000, CRC(a93eba1f) SHA1(da313b0ac97480cc451ba4678a819a4fab0bd5b3) )
+ROM_END
+ROM_START( lhopecdh ) // hack of the above, does not work
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "802cdc.p1", 0x000000, 0x100000, CRC(a957c41c) SHA1(63fef6c72619f0e8ec7d711f18043a5f1d8f17c2) )
+
+ NEO_SFIX_128K( "802cd.s1", CRC(298495d6) SHA1(c217aba6c1916d2e5337bb5c17d979b11a53582e) )
+
+ NEO_BIOS_AUDIO_64K( "802cdc.m1", CRC(698372df) SHA1(1eae816223c3d0c5b501e6fdc5a62388450991a5) )
+
+ ROM_REGION( 0x80000, "ymsnd", 0 )
+ ROM_LOAD( "802cdb.v1", 0x000000, 0x80000, CRC(bc65aee1) SHA1(2090133dcbb4f5b73696aab71ed5ea5b25b09b55) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "802cdb.c1", 0x000000, 0x200000, CRC(c5741cc8) SHA1(8593b320c140456ede6a7e355fcde978e74a0ffd) )
+ ROM_LOAD16_BYTE( "802cdb.c2", 0x000001, 0x200000, CRC(a93eba1f) SHA1(da313b0ac97480cc451ba4678a819a4fab0bd5b3) )
+ROM_END
+
+
+
+GAME( 1996, crswd2bl, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Razoola", "Crossed Swords 2 (CD conversion)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, csw2, crswd2bl, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Crossed Swords 2", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1995, fr2, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Video Systems Co.", "Idol Mahjong Final Romance 2", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, fr2cd, fr2, neogeo_noslot, neogeo, neogeo_hbmame,fr2ch, ROT0, "Video Systems Co.", "Idol Mahjong Final Romance 2 (CD Bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, fr2ch, fr2, neogeo_noslot, neogeo, neogeo_hbmame,fr2ch, ROT0, "Video Systems Co.", "Idol Mahjong Final Romance 2 (CD to MVS conversion)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, zintrckbh, zintrckb, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yumeji", "ZinTricK (ExChar hack by Yumeji)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, zintrkcd, zintrckb, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Razoola", "ZinTricK (CD conversion)", MACHINE_SUPPORTS_SAVE )
+GAME( 2010, zintrkm, zintrckb, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Elrayseur", "ZinTricK (Music test)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, zintrkcd1, zintrckb, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Razoola", "ZinTricK (CD test)", MACHINE_SUPPORTS_SAVE )
+GAME( 2011, totc, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Face / NCI", "Treasure of the Caribbean", MACHINE_SUPPORTS_SAVE )
+
+GAME( 2016, akiradmo, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "HP Man", "Akira Demo", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, beast, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Jeff Kurtz", "Shadow of the Beast (Neo Demo)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 2006, cnbe, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Blastar", "Codename: Blut Engel", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, cndi, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "[Raregame]", "Chip n Dale Intro", MACHINE_SUPPORTS_SAVE )
+GAME( 2013, cphd, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Le Cortex", "Crouching Pony Hidden Dragon Demo", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, columnsn, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Jeff Kurtz", "Columns", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, columnsncd, columnsn, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Jeff Kurtz", "Columns (CD conversion)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, didemo, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Mega Shocked", "DatImage demo", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, dti, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "[Raregame]", "Duck Tales Intro", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, dwi, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "[Raregame]", "DarkWing Duck Intro", MACHINE_SUPPORTS_SAVE )
+GAME( 2006, ffeast, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Rastersoft", "Frog Feast (NeoGeo)", MACHINE_SUPPORTS_SAVE )
+GAME( 2005, ffeastd, ffeast, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Rastersoft", "Frog Feast Demo", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, gbi, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "[Raregame]", "GhostBusters Intro", MACHINE_SUPPORTS_SAVE )
+GAME( 2013, iocero, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "BEY", "Primo Demo", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, lhcdb, lasthope, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "NG:Dev.Team", "Last Hope CD Beta", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 2007, lhcdba, lasthope, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "NG:Dev.Team", "Last Hope (NGCD Conversion)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 2007, lhopecd, lasthope, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "NG:DEV.TEAM", "Last Hope JAP NGCD (Beta 1)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 2007, lhopecdh, lasthope, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "NG:DEV.TEAM", "Last Hope JAP NGCD (Beta 2)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 2005, ltorb, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Blastar", "Jonas Indiana and The Lost Temple of RA (beta - 20050717)", MACHINE_SUPPORTS_SAVE )
+GAME( 20??, knacki, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Furrtek", "KnackiBalls", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, neo2500, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Blastar", "Neo 2500 Demo", MACHINE_SUPPORTS_SAVE )
+GAME( 2012, neo3d, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Oxygene", "Neo 3D Demo", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, neobadapple, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "BEY", "Bad Apple demo", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, neobubble, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Neo Bubble", MACHINE_IS_INCOMPLETE | MACHINE_SUPPORTS_SAVE )
+GAME( 2004, neocstlv, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "BarfHappy", "Neo Castlevania Demo", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, neodemo, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Charles Doty", "Demo - NeoGeo", MACHINE_SUPPORTS_SAVE )
+GAME( 2015, neofightb, neofight, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Kannagi", "Neogeo Sprite Demo (Neo Fight beta)", MACHINE_SUPPORTS_SAVE )
+GAME( 2015, neofighto, neofight, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Kannagi", "Neo Fight (old)", MACHINE_SUPPORTS_SAVE )
+GAME( 2015, neofight, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Kannagi", "Neo Fight", MACHINE_SUPPORTS_SAVE )
+GAME( 2013, neogal1, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "BEY", "Neo Geo Galaga Demo R001", MACHINE_SUPPORTS_SAVE )
+GAME( 2013, neogal1d, neogal1, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "BEY", "Neo Geo Galaga Demo R001 (debug)", MACHINE_SUPPORTS_SAVE )
+GAME( 2013, neogal1t, neogal1, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "BEY", "Neo Geo Galaga Demo R001 (text)", MACHINE_SUPPORTS_SAVE )
+GAME( 2013, neogal2, neogal1, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "BEY", "Neo Geo Galaga Demo R002", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, neonopon, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Blastar", "Neo No Panepon V.0.2", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 2002, neonopon_d1, neonopon, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Blastar", "Neo No Panepon (demo 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 2002, neonopon_d2, neonopon, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Blastar", "Neo No Panepon (demo 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 2002, neonopon_d3, neonopon, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Blastar", "Neo No Panepon (demo 3)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 2002, neopong, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Neodev", "Neo Pong (v1.1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 2002, neoponga, neopong, no_watchdog, neogeo, neogeo_state, neogeo, ROT0, "Neodev", "Neo Pong (v1.0)", MACHINE_SUPPORTS_SAVE )
+GAME( 2010, neoromjb, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "CeL", "Neo Rom Jukebox", MACHINE_SUPPORTS_SAVE )
+GAME( 2013, neotest, neogal1, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "BEY", "Neo Geo Sound Test", MACHINE_SUPPORTS_SAVE )
+GAME( 2012, neothund, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Sebastian Mihai", "Neo Thunder", MACHINE_SUPPORTS_SAVE )
+GAME( 2006, ngem2k, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Blastar", "NGEM2K", MACHINE_SUPPORTS_SAVE )
+GAME( 2012, ngftdemo, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "NGF", "NGF Transparency Demo", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, ngmontst, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "M.Priewe", "NeoGeo Monitor Test", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, ngtd2, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Luis Miguel Mayor", "NeoGeo Tech Demo 2", MACHINE_SUPPORTS_SAVE )
+GAME( 2008, ngtetris, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Crim", "NeoGeo 2-Player Tetris", MACHINE_SUPPORTS_SAVE )
+GAME( 2011, nyan, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Furrtek", "Nyan Cat demo", MACHINE_SUPPORTS_SAVE )
+GAME( 2015, pcmademo, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Freem", "ADPCM-A Playback Demo", MACHINE_SUPPORTS_SAVE )
+GAME( 2015, pcmbdemo, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Freem", "ADPCM-B Playback Demo", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, poknight, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Jeff Kurtz", "Poker Night", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, poknightcd, poknight, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Jeff Kurtz", "Poker Night (CD)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, poknightfr, poknight, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Jeff Kurtz", "Poker Night (French)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, rci, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "[Raregame]", "Robocop Intro", MACHINE_SUPPORTS_SAVE )
+GAME( 2012, santabll, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "M.Priewe", "Santaball", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, smi, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "[Raregame]", "Spiderman Intro", MACHINE_SUPPORTS_SAVE )
+GAME( 2015, snddemo, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Freem", "Sound-Loop Demo", MACHINE_SUPPORTS_SAVE )
+GAME( 2011, spriteex, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Furrtek", "Sprite Experimenter", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, syscheck, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Blastar", "Neo System Check (ver 1.0b)", MACHINE_SUPPORTS_SAVE )
+GAME( 20??, test01, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Furrtek", "MVS Test 01", MACHINE_SUPPORTS_SAVE )
+GAME( 2012, timesupd, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "NGF", "Time's Up! (Demo)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, tmnti, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "[Raregame]", "Teenage Mutant Ninja Turtles Intro", MACHINE_SUPPORTS_SAVE )
+GAME( 2015, twister, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Blastar", "Twister in a mirror intro", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, ww2demo, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Rastersoft", "WW2demo", MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/ngdoubledr.cpp b/src/hbmame/drivers/ngdoubledr.cpp
new file mode 100644
index 00000000000..118034e619d
--- /dev/null
+++ b/src/hbmame/drivers/ngdoubledr.cpp
@@ -0,0 +1,307 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+// Double Dragon
+
+
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, dbdrsp )
+{
+ DRIVER_INIT_CALL(neogeo);
+ uint32_t i;
+ uint16_t *rom = (uint16_t *)memregion("maincpu")->base();
+ for (i = 0; i < 0x100000/2; i++)
+ {
+ if (rom[i] == 0x4e7d) rom[i] = 0x4e71;
+ if (rom[i] == 0x4e7c) rom[i] = 0x4e75;
+ }
+ for (i = 0x200000/2; i < 0x220000/2; i++)
+ {
+ if (rom[i] == 0x4e7d) rom[i] = 0x4e71;
+ if (rom[i] == 0x4e7c) rom[i] = 0x4e75;
+ }
+ rom[0xbff2] = 0x2b7c; // 4ef9
+ rom[0xbff3] = 0x0001; // 0091
+ rom[0xbff4] = 0x7fee; // 0206
+ rom[0xbff5] = 0xa26a; // 4e7d
+}
+
+
+
+ROM_START( dbdeh ) /* Double Dragon (Neo-Geo) - Enhance by Creamymami and Ydmis - (Based on dbdehy - can select Shuko and Duke - after hitting ultra kill is max 20030420) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "082eh.p1", 0x100000, 0x100000, CRC(046e279e) SHA1(B7CDAAD32094EB3D12EE25621E7B9A9EB97AA13D) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "082-s1.s1", CRC(bef995c5) SHA1(9c89adbdaa5c1f827632c701688563dac2e482a4) )
+
+ NEO_BIOS_AUDIO_128K( "082-m1.m1", CRC(10b144de) SHA1(cf1ed0a447da68240c62bcfd76b1569803f6bf76) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "082-v1.v1", 0x000000, 0x200000, CRC(cc1128e4) SHA1(bfcfff24bc7fbde0b02b1bc0dffebd5270a0eb04) )
+ ROM_LOAD( "082-v2.v2", 0x200000, 0x200000, CRC(c3ff5554) SHA1(c685887ad64998e5572607a916b023f8b9efac49) )
+
+ ROM_REGION( 0xe00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "082-c1.c1", 0x000000, 0x200000, CRC(b478c725) SHA1(3a777c5906220f246a6dc06cb084e6ad650d67bb) )
+ ROM_LOAD16_BYTE( "082-c2.c2", 0x000001, 0x200000, CRC(2857da32) SHA1(9f13245965d23db86d46d7e73dfb6cc63e6f25a1) )
+ ROM_LOAD16_BYTE( "082-c3.c3", 0x400000, 0x200000, CRC(8b0d378e) SHA1(3a347215e414b738164f1fe4144102f07d4ffb80) )
+ ROM_LOAD16_BYTE( "082-c4.c4", 0x400001, 0x200000, CRC(c7d2f596) SHA1(e2d09d4d1b1fef9c0c53ecf3629e974b75e559f5) )
+ ROM_LOAD16_BYTE( "082-c5.c5", 0x800000, 0x200000, CRC(ec87bff6) SHA1(3fa86da93881158c2c23443855922a7b32e55135) )
+ ROM_LOAD16_BYTE( "082-c6.c6", 0x800001, 0x200000, CRC(844a8a11) SHA1(b2acbd4cacce66fb32c052b2fba9984904679bda) )
+ ROM_LOAD16_BYTE( "082-c7.c7", 0xc00000, 0x100000, CRC(727c4d02) SHA1(8204c7f037d46e0c58f269f9c7a535bc2589f526) )
+ ROM_LOAD16_BYTE( "082-c8.c8", 0xc00001, 0x100000, CRC(69a5fa37) SHA1(020e70e0e8b3c5d00a40fe97e418115a3187e50a) )
+ROM_END
+
+ROM_START( dbdehy ) /* Double Dragon (Neo-Geo) - Enhance by Ydmis - (Can select Shuko and Duke) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "082ehy.p1", 0x100000, 0x100000, CRC(37223431) SHA1(B9369B8140213AFD8EFCCB849EE7B4DF81B01D20) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "082-s1.s1", CRC(bef995c5) SHA1(9c89adbdaa5c1f827632c701688563dac2e482a4) )
+
+ NEO_BIOS_AUDIO_128K( "082-m1.m1", CRC(10b144de) SHA1(cf1ed0a447da68240c62bcfd76b1569803f6bf76) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "082-v1.v1", 0x000000, 0x200000, CRC(cc1128e4) SHA1(bfcfff24bc7fbde0b02b1bc0dffebd5270a0eb04) )
+ ROM_LOAD( "082-v2.v2", 0x200000, 0x200000, CRC(c3ff5554) SHA1(c685887ad64998e5572607a916b023f8b9efac49) )
+
+ ROM_REGION( 0xe00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "082-c1.c1", 0x000000, 0x200000, CRC(b478c725) SHA1(3a777c5906220f246a6dc06cb084e6ad650d67bb) )
+ ROM_LOAD16_BYTE( "082-c2.c2", 0x000001, 0x200000, CRC(2857da32) SHA1(9f13245965d23db86d46d7e73dfb6cc63e6f25a1) )
+ ROM_LOAD16_BYTE( "082-c3.c3", 0x400000, 0x200000, CRC(8b0d378e) SHA1(3a347215e414b738164f1fe4144102f07d4ffb80) )
+ ROM_LOAD16_BYTE( "082-c4.c4", 0x400001, 0x200000, CRC(c7d2f596) SHA1(e2d09d4d1b1fef9c0c53ecf3629e974b75e559f5) )
+ ROM_LOAD16_BYTE( "082-c5.c5", 0x800000, 0x200000, CRC(ec87bff6) SHA1(3fa86da93881158c2c23443855922a7b32e55135) )
+ ROM_LOAD16_BYTE( "082-c6.c6", 0x800001, 0x200000, CRC(844a8a11) SHA1(b2acbd4cacce66fb32c052b2fba9984904679bda) )
+ ROM_LOAD16_BYTE( "082-c7.c7", 0xc00000, 0x100000, CRC(727c4d02) SHA1(8204c7f037d46e0c58f269f9c7a535bc2589f526) )
+ ROM_LOAD16_BYTE( "082-c8.c8", 0xc00001, 0x100000, CRC(69a5fa37) SHA1(020e70e0e8b3c5d00a40fe97e418115a3187e50a) )
+ROM_END
+
+ROM_START( dbdq ) /* Double Dragon (Neo-Geo) - Hack by Creamymami - (The character is the Q - version) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "082q.p1", 0x100000, 0x100000, CRC(869862ec) SHA1(92D1B712A25070035DD45B4F4BB4719B75768F92) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "082-s1.s1", CRC(bef995c5) SHA1(9c89adbdaa5c1f827632c701688563dac2e482a4) )
+
+ NEO_BIOS_AUDIO_128K( "082-m1.m1", CRC(10b144de) SHA1(cf1ed0a447da68240c62bcfd76b1569803f6bf76) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "082-v1.v1", 0x000000, 0x200000, CRC(cc1128e4) SHA1(bfcfff24bc7fbde0b02b1bc0dffebd5270a0eb04) )
+ ROM_LOAD( "082-v2.v2", 0x200000, 0x200000, CRC(c3ff5554) SHA1(c685887ad64998e5572607a916b023f8b9efac49) )
+
+ ROM_REGION( 0xe00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "082-c1.c1", 0x000000, 0x200000, CRC(b478c725) SHA1(3a777c5906220f246a6dc06cb084e6ad650d67bb) )
+ ROM_LOAD16_BYTE( "082-c2.c2", 0x000001, 0x200000, CRC(2857da32) SHA1(9f13245965d23db86d46d7e73dfb6cc63e6f25a1) )
+ ROM_LOAD16_BYTE( "082-c3.c3", 0x400000, 0x200000, CRC(8b0d378e) SHA1(3a347215e414b738164f1fe4144102f07d4ffb80) )
+ ROM_LOAD16_BYTE( "082-c4.c4", 0x400001, 0x200000, CRC(c7d2f596) SHA1(e2d09d4d1b1fef9c0c53ecf3629e974b75e559f5) )
+ ROM_LOAD16_BYTE( "082-c5.c5", 0x800000, 0x200000, CRC(ec87bff6) SHA1(3fa86da93881158c2c23443855922a7b32e55135) )
+ ROM_LOAD16_BYTE( "082-c6.c6", 0x800001, 0x200000, CRC(844a8a11) SHA1(b2acbd4cacce66fb32c052b2fba9984904679bda) )
+ ROM_LOAD16_BYTE( "082-c7.c7", 0xc00000, 0x100000, CRC(727c4d02) SHA1(8204c7f037d46e0c58f269f9c7a535bc2589f526) )
+ ROM_LOAD16_BYTE( "082-c8.c8", 0xc00001, 0x100000, CRC(69a5fa37) SHA1(020e70e0e8b3c5d00a40fe97e418115a3187e50a) )
+ROM_END
+
+ROM_START( dbdqb ) /* Double Dragon (Neo-Geo) - Hack by Creamymami and Ydmis - (The character is the Q - version - can select Shuko and Duke) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "082qb.p1", 0x100000, 0x100000, CRC(8511d5f7) SHA1(29F161F990947C0D83262134B8ADC4B1CCC69924) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "082-s1.s1", CRC(bef995c5) SHA1(9c89adbdaa5c1f827632c701688563dac2e482a4) )
+
+ NEO_BIOS_AUDIO_128K( "082-m1.m1", CRC(10b144de) SHA1(cf1ed0a447da68240c62bcfd76b1569803f6bf76) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "082-v1.v1", 0x000000, 0x200000, CRC(cc1128e4) SHA1(bfcfff24bc7fbde0b02b1bc0dffebd5270a0eb04) )
+ ROM_LOAD( "082-v2.v2", 0x200000, 0x200000, CRC(c3ff5554) SHA1(c685887ad64998e5572607a916b023f8b9efac49) )
+
+ ROM_REGION( 0xe00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "082-c1.c1", 0x000000, 0x200000, CRC(b478c725) SHA1(3a777c5906220f246a6dc06cb084e6ad650d67bb) )
+ ROM_LOAD16_BYTE( "082-c2.c2", 0x000001, 0x200000, CRC(2857da32) SHA1(9f13245965d23db86d46d7e73dfb6cc63e6f25a1) )
+ ROM_LOAD16_BYTE( "082-c3.c3", 0x400000, 0x200000, CRC(8b0d378e) SHA1(3a347215e414b738164f1fe4144102f07d4ffb80) )
+ ROM_LOAD16_BYTE( "082-c4.c4", 0x400001, 0x200000, CRC(c7d2f596) SHA1(e2d09d4d1b1fef9c0c53ecf3629e974b75e559f5) )
+ ROM_LOAD16_BYTE( "082-c5.c5", 0x800000, 0x200000, CRC(ec87bff6) SHA1(3fa86da93881158c2c23443855922a7b32e55135) )
+ ROM_LOAD16_BYTE( "082-c6.c6", 0x800001, 0x200000, CRC(844a8a11) SHA1(b2acbd4cacce66fb32c052b2fba9984904679bda) )
+ ROM_LOAD16_BYTE( "082-c7.c7", 0xc00000, 0x100000, CRC(727c4d02) SHA1(8204c7f037d46e0c58f269f9c7a535bc2589f526) )
+ ROM_LOAD16_BYTE( "082-c8.c8", 0xc00001, 0x100000, CRC(69a5fa37) SHA1(020e70e0e8b3c5d00a40fe97e418115a3187e50a) )
+ROM_END
+
+ROM_START( dbdqeh ) /* Double Dragon (Neo-Geo) - Enhance by Creamymami and Ydmis - (The character is the Q - version - after hitting ultra kill is max - can select Shuko and Duke) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "082qeh.p1", 0x100000, 0x100000, CRC(b65dc658) SHA1(38D81BEFBCA4A95B157289966E866BDC3BF21DE3) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "082-s1.s1", CRC(bef995c5) SHA1(9c89adbdaa5c1f827632c701688563dac2e482a4) )
+
+ NEO_BIOS_AUDIO_128K( "082-m1.m1", CRC(10b144de) SHA1(cf1ed0a447da68240c62bcfd76b1569803f6bf76) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "082-v1.v1", 0x000000, 0x200000, CRC(cc1128e4) SHA1(bfcfff24bc7fbde0b02b1bc0dffebd5270a0eb04) )
+ ROM_LOAD( "082-v2.v2", 0x200000, 0x200000, CRC(c3ff5554) SHA1(c685887ad64998e5572607a916b023f8b9efac49) )
+
+ ROM_REGION( 0xe00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "082-c1.c1", 0x000000, 0x200000, CRC(b478c725) SHA1(3a777c5906220f246a6dc06cb084e6ad650d67bb) )
+ ROM_LOAD16_BYTE( "082-c2.c2", 0x000001, 0x200000, CRC(2857da32) SHA1(9f13245965d23db86d46d7e73dfb6cc63e6f25a1) )
+ ROM_LOAD16_BYTE( "082-c3.c3", 0x400000, 0x200000, CRC(8b0d378e) SHA1(3a347215e414b738164f1fe4144102f07d4ffb80) )
+ ROM_LOAD16_BYTE( "082-c4.c4", 0x400001, 0x200000, CRC(c7d2f596) SHA1(e2d09d4d1b1fef9c0c53ecf3629e974b75e559f5) )
+ ROM_LOAD16_BYTE( "082-c5.c5", 0x800000, 0x200000, CRC(ec87bff6) SHA1(3fa86da93881158c2c23443855922a7b32e55135) )
+ ROM_LOAD16_BYTE( "082-c6.c6", 0x800001, 0x200000, CRC(844a8a11) SHA1(b2acbd4cacce66fb32c052b2fba9984904679bda) )
+ ROM_LOAD16_BYTE( "082-c7.c7", 0xc00000, 0x100000, CRC(727c4d02) SHA1(8204c7f037d46e0c58f269f9c7a535bc2589f526) )
+ ROM_LOAD16_BYTE( "082-c8.c8", 0xc00001, 0x100000, CRC(69a5fa37) SHA1(020e70e0e8b3c5d00a40fe97e418115a3187e50a) )
+ROM_END
+
+ROM_START( dbdqp ) /* Double Dragon (Neo-Geo) - Hack by Creamymami - (The character is the Q - version - after hitting ultra kill is max) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "082qp.p1", 0x100000, 0x100000, CRC(b5d47143) SHA1(B9C211E0883C59C039954CC98E693D1245137C2F) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "082-s1.s1", CRC(bef995c5) SHA1(9c89adbdaa5c1f827632c701688563dac2e482a4) )
+
+ NEO_BIOS_AUDIO_128K( "082-m1.m1", CRC(10b144de) SHA1(cf1ed0a447da68240c62bcfd76b1569803f6bf76) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "082-v1.v1", 0x000000, 0x200000, CRC(cc1128e4) SHA1(bfcfff24bc7fbde0b02b1bc0dffebd5270a0eb04) )
+ ROM_LOAD( "082-v2.v2", 0x200000, 0x200000, CRC(c3ff5554) SHA1(c685887ad64998e5572607a916b023f8b9efac49) )
+
+ ROM_REGION( 0xe00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "082-c1.c1", 0x000000, 0x200000, CRC(b478c725) SHA1(3a777c5906220f246a6dc06cb084e6ad650d67bb) )
+ ROM_LOAD16_BYTE( "082-c2.c2", 0x000001, 0x200000, CRC(2857da32) SHA1(9f13245965d23db86d46d7e73dfb6cc63e6f25a1) )
+ ROM_LOAD16_BYTE( "082-c3.c3", 0x400000, 0x200000, CRC(8b0d378e) SHA1(3a347215e414b738164f1fe4144102f07d4ffb80) )
+ ROM_LOAD16_BYTE( "082-c4.c4", 0x400001, 0x200000, CRC(c7d2f596) SHA1(e2d09d4d1b1fef9c0c53ecf3629e974b75e559f5) )
+ ROM_LOAD16_BYTE( "082-c5.c5", 0x800000, 0x200000, CRC(ec87bff6) SHA1(3fa86da93881158c2c23443855922a7b32e55135) )
+ ROM_LOAD16_BYTE( "082-c6.c6", 0x800001, 0x200000, CRC(844a8a11) SHA1(b2acbd4cacce66fb32c052b2fba9984904679bda) )
+ ROM_LOAD16_BYTE( "082-c7.c7", 0xc00000, 0x100000, CRC(727c4d02) SHA1(8204c7f037d46e0c58f269f9c7a535bc2589f526) )
+ ROM_LOAD16_BYTE( "082-c8.c8", 0xc00001, 0x100000, CRC(69a5fa37) SHA1(020e70e0e8b3c5d00a40fe97e418115a3187e50a) )
+ROM_END
+
+ROM_START( dbdy ) /* Double Dragon (Neo-Geo) - Hack by Ydmis - (Can select Shuko and Duke - game is always in AES mode) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "082y.p1", 0x100000, 0x100000, CRC(2ab6a95a) SHA1(F2FEC024DAB20A3B5A444BC431377531598D27FA) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "082-s1.s1", CRC(bef995c5) SHA1(9c89adbdaa5c1f827632c701688563dac2e482a4) )
+
+ NEO_BIOS_AUDIO_128K( "082-m1.m1", CRC(10b144de) SHA1(cf1ed0a447da68240c62bcfd76b1569803f6bf76) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "082-v1.v1", 0x000000, 0x200000, CRC(cc1128e4) SHA1(bfcfff24bc7fbde0b02b1bc0dffebd5270a0eb04) )
+ ROM_LOAD( "082-v2.v2", 0x200000, 0x200000, CRC(c3ff5554) SHA1(c685887ad64998e5572607a916b023f8b9efac49) )
+
+ ROM_REGION( 0xe00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "082-c1.c1", 0x000000, 0x200000, CRC(b478c725) SHA1(3a777c5906220f246a6dc06cb084e6ad650d67bb) )
+ ROM_LOAD16_BYTE( "082-c2.c2", 0x000001, 0x200000, CRC(2857da32) SHA1(9f13245965d23db86d46d7e73dfb6cc63e6f25a1) )
+ ROM_LOAD16_BYTE( "082-c3.c3", 0x400000, 0x200000, CRC(8b0d378e) SHA1(3a347215e414b738164f1fe4144102f07d4ffb80) )
+ ROM_LOAD16_BYTE( "082-c4.c4", 0x400001, 0x200000, CRC(c7d2f596) SHA1(e2d09d4d1b1fef9c0c53ecf3629e974b75e559f5) )
+ ROM_LOAD16_BYTE( "082-c5.c5", 0x800000, 0x200000, CRC(ec87bff6) SHA1(3fa86da93881158c2c23443855922a7b32e55135) )
+ ROM_LOAD16_BYTE( "082-c6.c6", 0x800001, 0x200000, CRC(844a8a11) SHA1(b2acbd4cacce66fb32c052b2fba9984904679bda) )
+ ROM_LOAD16_BYTE( "082-c7.c7", 0xc00000, 0x100000, CRC(727c4d02) SHA1(8204c7f037d46e0c58f269f9c7a535bc2589f526) )
+ ROM_LOAD16_BYTE( "082-c8.c8", 0xc00001, 0x100000, CRC(69a5fa37) SHA1(020e70e0e8b3c5d00a40fe97e418115a3187e50a) )
+ROM_END
+
+ROM_START( doubledre2 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "082e2.p1", 0x100000, 0x100000, CRC(dd7f0c5f) SHA1(2f38ec25031407ba81a37ca6360c83a9c57e9cc0) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "082-s1.s1", CRC(bef995c5) SHA1(9c89adbdaa5c1f827632c701688563dac2e482a4) )
+
+ NEO_BIOS_AUDIO_128K( "082-m1.m1", CRC(10b144de) SHA1(cf1ed0a447da68240c62bcfd76b1569803f6bf76) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "082-v1.v1", 0x000000, 0x200000, CRC(cc1128e4) SHA1(bfcfff24bc7fbde0b02b1bc0dffebd5270a0eb04) )
+ ROM_LOAD( "082-v2.v2", 0x200000, 0x200000, CRC(c3ff5554) SHA1(c685887ad64998e5572607a916b023f8b9efac49) )
+
+ ROM_REGION( 0xe00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "082-c1.c1", 0x000000, 0x200000, CRC(b478c725) SHA1(3a777c5906220f246a6dc06cb084e6ad650d67bb) )
+ ROM_LOAD16_BYTE( "082-c2.c2", 0x000001, 0x200000, CRC(2857da32) SHA1(9f13245965d23db86d46d7e73dfb6cc63e6f25a1) )
+ ROM_LOAD16_BYTE( "082-c3.c3", 0x400000, 0x200000, CRC(8b0d378e) SHA1(3a347215e414b738164f1fe4144102f07d4ffb80) )
+ ROM_LOAD16_BYTE( "082-c4.c4", 0x400001, 0x200000, CRC(c7d2f596) SHA1(e2d09d4d1b1fef9c0c53ecf3629e974b75e559f5) )
+ ROM_LOAD16_BYTE( "082-c5.c5", 0x800000, 0x200000, CRC(ec87bff6) SHA1(3fa86da93881158c2c23443855922a7b32e55135) )
+ ROM_LOAD16_BYTE( "082-c6.c6", 0x800001, 0x200000, CRC(844a8a11) SHA1(b2acbd4cacce66fb32c052b2fba9984904679bda) )
+ ROM_LOAD16_BYTE( "082-c7.c7", 0xc00000, 0x100000, CRC(727c4d02) SHA1(8204c7f037d46e0c58f269f9c7a535bc2589f526) )
+ ROM_LOAD16_BYTE( "082-c8.c8", 0xc00001, 0x100000, CRC(69a5fa37) SHA1(020e70e0e8b3c5d00a40fe97e418115a3187e50a) )
+ROM_END
+
+ROM_START( doubledres )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "082es.p1", 0x100000, 0x100000, CRC(6f4ced99) SHA1(fc272ceeda3d2e43f58fff302ea8df62533e3bd0) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "082-s1.s1", CRC(bef995c5) SHA1(9c89adbdaa5c1f827632c701688563dac2e482a4) )
+
+ NEO_BIOS_AUDIO_128K( "082-m1.m1", CRC(10b144de) SHA1(cf1ed0a447da68240c62bcfd76b1569803f6bf76) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "082-v1.v1", 0x000000, 0x200000, CRC(cc1128e4) SHA1(bfcfff24bc7fbde0b02b1bc0dffebd5270a0eb04) )
+ ROM_LOAD( "082-v2.v2", 0x200000, 0x200000, CRC(c3ff5554) SHA1(c685887ad64998e5572607a916b023f8b9efac49) )
+
+ ROM_REGION( 0xe00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "082-c1.c1", 0x000000, 0x200000, CRC(b478c725) SHA1(3a777c5906220f246a6dc06cb084e6ad650d67bb) )
+ ROM_LOAD16_BYTE( "082-c2.c2", 0x000001, 0x200000, CRC(2857da32) SHA1(9f13245965d23db86d46d7e73dfb6cc63e6f25a1) )
+ ROM_LOAD16_BYTE( "082-c3.c3", 0x400000, 0x200000, CRC(8b0d378e) SHA1(3a347215e414b738164f1fe4144102f07d4ffb80) )
+ ROM_LOAD16_BYTE( "082-c4.c4", 0x400001, 0x200000, CRC(c7d2f596) SHA1(e2d09d4d1b1fef9c0c53ecf3629e974b75e559f5) )
+ ROM_LOAD16_BYTE( "082-c5.c5", 0x800000, 0x200000, CRC(ec87bff6) SHA1(3fa86da93881158c2c23443855922a7b32e55135) )
+ ROM_LOAD16_BYTE( "082-c6.c6", 0x800001, 0x200000, CRC(844a8a11) SHA1(b2acbd4cacce66fb32c052b2fba9984904679bda) )
+ ROM_LOAD16_BYTE( "082-c7.c7", 0xc00000, 0x100000, CRC(727c4d02) SHA1(8204c7f037d46e0c58f269f9c7a535bc2589f526) )
+ ROM_LOAD16_BYTE( "082-c8.c8", 0xc00001, 0x100000, CRC(69a5fa37) SHA1(020e70e0e8b3c5d00a40fe97e418115a3187e50a) )
+ROM_END
+
+ROM_START( doubledrhp )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "082hp.p1", 0x100000, 0x100000, CRC(1ca0941f) SHA1(40de27c5019059ed97b3bd7d8178e64709513114) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "082-s1.s1", CRC(bef995c5) SHA1(9c89adbdaa5c1f827632c701688563dac2e482a4) )
+
+ NEO_BIOS_AUDIO_128K( "082-m1.m1", CRC(10b144de) SHA1(cf1ed0a447da68240c62bcfd76b1569803f6bf76) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "082-v1.v1", 0x000000, 0x200000, CRC(cc1128e4) SHA1(bfcfff24bc7fbde0b02b1bc0dffebd5270a0eb04) )
+ ROM_LOAD( "082-v2.v2", 0x200000, 0x200000, CRC(c3ff5554) SHA1(c685887ad64998e5572607a916b023f8b9efac49) )
+
+ ROM_REGION( 0xe00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "082-c1.c1", 0x000000, 0x200000, CRC(b478c725) SHA1(3a777c5906220f246a6dc06cb084e6ad650d67bb) )
+ ROM_LOAD16_BYTE( "082-c2.c2", 0x000001, 0x200000, CRC(2857da32) SHA1(9f13245965d23db86d46d7e73dfb6cc63e6f25a1) )
+ ROM_LOAD16_BYTE( "082-c3.c3", 0x400000, 0x200000, CRC(8b0d378e) SHA1(3a347215e414b738164f1fe4144102f07d4ffb80) )
+ ROM_LOAD16_BYTE( "082-c4.c4", 0x400001, 0x200000, CRC(c7d2f596) SHA1(e2d09d4d1b1fef9c0c53ecf3629e974b75e559f5) )
+ ROM_LOAD16_BYTE( "082-c5.c5", 0x800000, 0x200000, CRC(ec87bff6) SHA1(3fa86da93881158c2c23443855922a7b32e55135) )
+ ROM_LOAD16_BYTE( "082-c6.c6", 0x800001, 0x200000, CRC(844a8a11) SHA1(b2acbd4cacce66fb32c052b2fba9984904679bda) )
+ ROM_LOAD16_BYTE( "082-c7.c7", 0xc00000, 0x100000, CRC(727c4d02) SHA1(8204c7f037d46e0c58f269f9c7a535bc2589f526) )
+ ROM_LOAD16_BYTE( "082-c8.c8", 0xc00001, 0x100000, CRC(69a5fa37) SHA1(020e70e0e8b3c5d00a40fe97e418115a3187e50a) )
+ROM_END
+
+ROM_START( doubledrsp )
+ ROM_REGION( 0x220000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "082sp.p1", 0x000000, 0x100000, CRC(8ea8ee3d) SHA1(4cc513f9021a5a6bfe29ebf2773847c674f7921b) )
+ ROM_LOAD16_WORD_SWAP( "082sp.p2", 0x100000, 0x100000, CRC(0e2616ab) SHA1(cfe5ed1ec76e21dd833e8297a6dbb30ce407ab2d) )
+ ROM_LOAD16_WORD_SWAP( "082sp.p3", 0x200000, 0x020000, CRC(8b4839c4) SHA1(6c0357f8455bc4a100e1063a5be88c8be388672c) )
+
+ NEO_SFIX_128K( "082-s1.s1", CRC(bef995c5) SHA1(9c89adbdaa5c1f827632c701688563dac2e482a4) )
+
+ NEO_BIOS_AUDIO_128K( "082-m1.m1", CRC(10b144de) SHA1(cf1ed0a447da68240c62bcfd76b1569803f6bf76) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "082-v1.v1", 0x000000, 0x200000, CRC(cc1128e4) SHA1(bfcfff24bc7fbde0b02b1bc0dffebd5270a0eb04) )
+ ROM_LOAD( "082-v2.v2", 0x200000, 0x200000, CRC(c3ff5554) SHA1(c685887ad64998e5572607a916b023f8b9efac49) )
+
+ ROM_REGION( 0xe00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "082-c1.c1", 0x000000, 0x200000, CRC(b478c725) SHA1(3a777c5906220f246a6dc06cb084e6ad650d67bb) )
+ ROM_LOAD16_BYTE( "082-c2.c2", 0x000001, 0x200000, CRC(2857da32) SHA1(9f13245965d23db86d46d7e73dfb6cc63e6f25a1) )
+ ROM_LOAD16_BYTE( "082-c3.c3", 0x400000, 0x200000, CRC(8b0d378e) SHA1(3a347215e414b738164f1fe4144102f07d4ffb80) )
+ ROM_LOAD16_BYTE( "082-c4.c4", 0x400001, 0x200000, CRC(c7d2f596) SHA1(e2d09d4d1b1fef9c0c53ecf3629e974b75e559f5) )
+ ROM_LOAD16_BYTE( "082sp.c5", 0x800000, 0x200000, CRC(b9c799fe) SHA1(04d44f6fbee4bf6978031d1e148a536b012ecc8d) )
+ ROM_LOAD16_BYTE( "082sp.c6", 0x800001, 0x200000, CRC(11569bc9) SHA1(ef937371e0f62ef8cc3d315aa944cacab798a173) )
+ ROM_LOAD16_BYTE( "082-c7.c7", 0xc00000, 0x100000, CRC(727c4d02) SHA1(8204c7f037d46e0c58f269f9c7a535bc2589f526) )
+ ROM_LOAD16_BYTE( "082-c8.c8", 0xc00001, 0x100000, CRC(69a5fa37) SHA1(020e70e0e8b3c5d00a40fe97e418115a3187e50a) )
+ROM_END
+
+
+
+GAME( 2003, dbdeh, doubledr, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami and Ydmis", "Double Dragon (Add Char - Max ultra kill after hit 2003-04-20)", MACHINE_SUPPORTS_SAVE ) //Based on dbdehy
+GAME( 1995, dbdehy, doubledr, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Double Dragon (Add Char)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, dbdq, doubledr, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami", "Double Dragon (Q-ver Char)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, dbdqb, doubledr, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami and Ydmis", "Double Dragon (Q-ver Char - Add Char)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, dbdqeh, doubledr, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami and Ydmis", "Double Dragon (Q-ver Char - Max ultra kill after hit - Add Char)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, dbdqp, doubledr, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami", "Double Dragon (Q-ver Char - Max ultra kill after hit)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, dbdy, doubledr, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Double Dragon (Add Char - Always in AES mode)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, doubledre2, doubledr, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Double Dragon Q (Boss hack Easy Special Attacks)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, doubledres, doubledr, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Double Dragon (Boss hack Easy Special Attacks)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, doubledrhp, doubledr, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Blackheart", "Double Dragon (Boss Hack Perfect Edition hack by Blackheart 2009-09-19)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, doubledrsp, doubledr, samsho2sp, neogeo, neogeo_hbmame, dbdrsp, ROT0, "GSC2007", "Double Dragon (Special 2017 v1.0.0311)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/nggaroup.cpp b/src/hbmame/drivers/nggaroup.cpp
new file mode 100644
index 00000000000..033b32cea3a
--- /dev/null
+++ b/src/hbmame/drivers/nggaroup.cpp
@@ -0,0 +1,381 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+// Garou Mark of the Wolves: mostly hacks of the prototype
+
+
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, garoud )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_sma_prot->garou_decrypt_68k(cpuregion);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+ m_sma_prot->garou_install_protection(m_maincpu, m_banked_cart);
+}
+
+
+
+ROM_START( garoub ) // hack of garou
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "kf.neo-sma", 0x0c0000, 0x040000, CRC(98bc93dc) SHA1(01fe3d18b50f770e131e8d8eeff4c630ba8c9551) )
+ ROM_LOAD16_WORD_SWAP( "253-ep1.p1", 0x100000, 0x200000, CRC(ea3171a4) SHA1(bbda40f652baa0dc5fc6a006c001a1bdb0df43f6) )
+ ROM_LOAD16_WORD_SWAP( "253-ep2.p2", 0x300000, 0x200000, CRC(382f704b) SHA1(0ace9c84a8b8a0524fd9a503e7d872de1bf1bd52) )
+ ROM_LOAD16_WORD_SWAP( "253-ep3.p3", 0x500000, 0x200000, CRC(e395bfdd) SHA1(6b50f5ac15bf66b7e4e9bff57594fd3d7530c831) )
+ ROM_LOAD16_WORD_SWAP( "253b.p4", 0x700000, 0x200000, CRC(c1fb6ff4) SHA1(5a907c2c0e8d1fe40f3eecd3b79d97ac8e393940) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "253-m1.m1", CRC(36a806be) SHA1(90fb44dc0c3fb57946a0f35716056abb84a0f191) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "253-v1.v1", 0x000000, 0x400000, CRC(263e388c) SHA1(11f05feee170370c4bfc5053af79246a6e3de5dc) )
+ ROM_LOAD( "253-v2.v2", 0x400000, 0x400000, CRC(2c6bc7be) SHA1(c9c61054ce1a47bf1bf77a31117726b499df24a4) )
+ ROM_LOAD( "253-v3.v3", 0x800000, 0x400000, CRC(0425b27d) SHA1(986863c98fc3445487242dcf2ea75b075e7f33ee) )
+ ROM_LOAD( "253-v4.v4", 0xc00000, 0x400000, CRC(a54be8a9) SHA1(d7123e79b43e8adfaa5ecadbfcbeb6be890ec311) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "253-c1.c1", 0x0000000, 0x800000, CRC(0603e046) SHA1(5ef4557ce90ba65d36129de97be1fdc049c4a3d0) )
+ ROM_LOAD16_BYTE( "253-c2.c2", 0x0000001, 0x800000, CRC(0917d2a4) SHA1(d4ed3a13ae22f880fb399671c1752f1a0283f316) )
+ ROM_LOAD16_BYTE( "253-c3.c3", 0x1000000, 0x800000, CRC(6737c92d) SHA1(678f0c9cc1267bd131546981b9989bfb7289d8ba) )
+ ROM_LOAD16_BYTE( "253-c4.c4", 0x1000001, 0x800000, CRC(5ba92ec6) SHA1(aae36b050a3a0321026a96eba06dd184c0e2acca) )
+ ROM_LOAD16_BYTE( "253-c5.c5", 0x2000000, 0x800000, CRC(3eab5557) SHA1(47c433015aa81a0b0a1d3ee51382c4948b80c023) )
+ ROM_LOAD16_BYTE( "253-c6.c6", 0x2000001, 0x800000, CRC(308d098b) SHA1(b052f1fa9fbc69606004c250e2505360eaa24949) )
+ ROM_LOAD16_BYTE( "253-c7.c7", 0x3000000, 0x800000, CRC(c0e995ae) SHA1(8675ca787d28246174c313167f82557f021366fc) )
+ ROM_LOAD16_BYTE( "253-c8.c8", 0x3000001, 0x800000, CRC(21a11303) SHA1(fd61221ad257c185ef5c1f9694bd6b840b591af3) )
+ROM_END
+
+ROM_START( garoud )
+ ROM_REGION( 0x900000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "kf.neo-sma", 0x0c0000, 0x040000, CRC(98bc93dc) SHA1(01fe3d18b50f770e131e8d8eeff4c630ba8c9551) )
+ ROM_LOAD16_WORD_SWAP( "253-ep1.p1", 0x100000, 0x200000, CRC(ea3171a4) SHA1(bbda40f652baa0dc5fc6a006c001a1bdb0df43f6) )
+ ROM_LOAD16_WORD_SWAP( "253-ep2.p2", 0x300000, 0x200000, CRC(382f704b) SHA1(0ace9c84a8b8a0524fd9a503e7d872de1bf1bd52) )
+ ROM_LOAD16_WORD_SWAP( "253-ep3.p3", 0x500000, 0x200000, CRC(e395bfdd) SHA1(6b50f5ac15bf66b7e4e9bff57594fd3d7530c831) )
+ ROM_LOAD16_WORD_SWAP( "253-ep4.p4", 0x700000, 0x200000, CRC(da92c08e) SHA1(5556f983ebcebc33160e90a6a6cf589d54c8cedc) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_256K( "253-m1.m1", CRC(36a806be) SHA1(90fb44dc0c3fb57946a0f35716056abb84a0f191) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "253-v1.v1", 0x000000, 0x400000, CRC(263e388c) SHA1(11f05feee170370c4bfc5053af79246a6e3de5dc) )
+ ROM_LOAD( "253-v2.v2", 0x400000, 0x400000, CRC(2c6bc7be) SHA1(c9c61054ce1a47bf1bf77a31117726b499df24a4) )
+ ROM_LOAD( "253-v3.v3", 0x800000, 0x400000, CRC(0425b27d) SHA1(986863c98fc3445487242dcf2ea75b075e7f33ee) )
+ ROM_LOAD( "253-v4.v4", 0xc00000, 0x400000, CRC(a54be8a9) SHA1(d7123e79b43e8adfaa5ecadbfcbeb6be890ec311) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "253d.c1", 0x0000000, 0x800000, CRC(497be3f2) SHA1(3b4e524ff185db326cdefe115851ce282272fb58) )
+ ROM_LOAD16_BYTE( "253d.c2", 0x0000001, 0x800000, CRC(6a9e95ca) SHA1(d9730d2db58edfa660edab5bf0f7fc3ed058bccf) )
+ ROM_LOAD16_BYTE( "253d.c3", 0x1000000, 0x800000, CRC(39373d2f) SHA1(8c0307150bc31001605efbe0e38ae74e1e466d5d) )
+ ROM_LOAD16_BYTE( "253d.c4", 0x1000001, 0x800000, CRC(4de23f6c) SHA1(b40bce471fb1815037e4c3705f8238e659a13a82) )
+ ROM_LOAD16_BYTE( "253d.c5", 0x2000000, 0x800000, CRC(16634ba5) SHA1(e51649efd039270139aa7292a28925e547b2be59) )
+ ROM_LOAD16_BYTE( "253d.c6", 0x2000001, 0x800000, CRC(95671ffd) SHA1(803ebeb74fefe88b9aba53cbca103c0e9145abcb) )
+ ROM_LOAD16_BYTE( "253d.c7", 0x3000000, 0x800000, CRC(e36ce77f) SHA1(71931559293182749ded13c52d8bac988a3a062f) )
+ ROM_LOAD16_BYTE( "253d.c8", 0x3000001, 0x800000, CRC(ddbd1096) SHA1(634cfb61398b3f1b983f7f3966b53f4cc3a78671) )
+ROM_END
+
+ROM_START( garoupamu ) /* Garou: Mark of the Wolves PROTOTYPE - Fix by MU - (Approach to Arcade by MU Version 5.0a) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "253pamu.p1", 0x000000, 0x100000, CRC(d5c54453) SHA1(A7FE7AB68161583E10397B1B1B30299BE93AE90C) )
+ ROM_LOAD16_WORD_SWAP( "proto_253-p2.p2", 0x100000, 0x400000, CRC(bf8de565) SHA1(0e24574168cd38138bed0aa4dca49849f6901ca2) )
+
+ NEO_SFIX_128K( "proto_253-s1.s1", CRC(779989de) SHA1(8bd550857b60f8a907f6d39a4225ceffdd330307) )
+
+ NEO_BIOS_AUDIO_256K( "proto_253-m1.m1", CRC(bbe464f7) SHA1(f5f8f3e48f5d453f45107085d6f4023bcd24c053) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "proto_253-v1.v1", 0x000000, 0x400000, CRC(274f3923) SHA1(4c7a8ad1cd0e3afc1f78de3c2929120ed434f104) )
+ ROM_LOAD( "proto_253-v2.v2", 0x400000, 0x400000, CRC(8f86dabe) SHA1(b3d2d9f5c1d97a6e7aee2c674fb6627f41bbb240) )
+ ROM_LOAD( "proto_253-v3.v3", 0x800000, 0x400000, CRC(05fd06cd) SHA1(6cd699719614bb87547632ea3d61d92d81fdf563) )
+ ROM_LOAD( "proto_253-v4.v4", 0xc00000, 0x400000, CRC(14984063) SHA1(170d5638327ec0eb3590b80dc11590897367250c) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_253-c1.c1", 0x0000000, 0x800000, CRC(5bb5d137) SHA1(d648febd8e6a0bdd9bdbb6ce1f1f8b08567ec05a) )
+ ROM_LOAD16_BYTE( "proto_253-c2.c2", 0x0000001, 0x800000, CRC(5c8d2960) SHA1(f7503502be0332adf408ee0ea5ee5161c8939fd8) )
+ ROM_LOAD16_BYTE( "proto_253-c3.c3", 0x1000000, 0x800000, CRC(234d16fc) SHA1(7b9221f7ecc438150c8a10be72390329854ed21b) )
+ ROM_LOAD16_BYTE( "proto_253-c4.c4", 0x1000001, 0x800000, CRC(b9b5b993) SHA1(6059793eaf6e58c172235fe64aa9d25a40c38ed6) )
+ ROM_LOAD16_BYTE( "proto_253-c5.c5", 0x2000000, 0x800000, CRC(722615d2) SHA1(798832c535869f0e247c3db0d8253779b103e213) )
+ ROM_LOAD16_BYTE( "proto_253-c6.c6", 0x2000001, 0x800000, CRC(0a6fab38) SHA1(eaee6f2f18af91f7959d84d4b991b3fc182d07c4) )
+ ROM_LOAD16_BYTE( "proto_253-c7.c7", 0x3000000, 0x800000, CRC(d68e806f) SHA1(92bfd9839115bd590972ae4ecc45ad35dce22387) )
+ ROM_LOAD16_BYTE( "proto_253-c8.c8", 0x3000001, 0x800000, CRC(f778fe99) SHA1(c963f6ba90a36d02991728b44ffcf174ca18268a) )
+ROM_END
+
+ROM_START( garoupeh ) /* Garou: Mark of the Wolves PROTOTYPE - Enhance by Ydmis - (In MVS mode can choose Kain and Grant) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "253peh.p1", 0x000000, 0x100000, CRC(61c65b05) SHA1(0159D181EEC3346C53C411BCFB9A3F17781FD7BC) )
+ ROM_LOAD16_WORD_SWAP( "proto_253-p2.p2", 0x100000, 0x400000, CRC(bf8de565) SHA1(0e24574168cd38138bed0aa4dca49849f6901ca2) )
+
+ NEO_SFIX_128K( "proto_253-s1.s1", CRC(779989de) SHA1(8bd550857b60f8a907f6d39a4225ceffdd330307) )
+
+ NEO_BIOS_AUDIO_256K( "proto_253-m1.m1", CRC(bbe464f7) SHA1(f5f8f3e48f5d453f45107085d6f4023bcd24c053) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "proto_253-v1.v1", 0x000000, 0x400000, CRC(274f3923) SHA1(4c7a8ad1cd0e3afc1f78de3c2929120ed434f104) )
+ ROM_LOAD( "proto_253-v2.v2", 0x400000, 0x400000, CRC(8f86dabe) SHA1(b3d2d9f5c1d97a6e7aee2c674fb6627f41bbb240) )
+ ROM_LOAD( "proto_253-v3.v3", 0x800000, 0x400000, CRC(05fd06cd) SHA1(6cd699719614bb87547632ea3d61d92d81fdf563) )
+ ROM_LOAD( "proto_253-v4.v4", 0xc00000, 0x400000, CRC(14984063) SHA1(170d5638327ec0eb3590b80dc11590897367250c) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_253-c1.c1", 0x0000000, 0x800000, CRC(5bb5d137) SHA1(d648febd8e6a0bdd9bdbb6ce1f1f8b08567ec05a) )
+ ROM_LOAD16_BYTE( "proto_253-c2.c2", 0x0000001, 0x800000, CRC(5c8d2960) SHA1(f7503502be0332adf408ee0ea5ee5161c8939fd8) )
+ ROM_LOAD16_BYTE( "proto_253-c3.c3", 0x1000000, 0x800000, CRC(234d16fc) SHA1(7b9221f7ecc438150c8a10be72390329854ed21b) )
+ ROM_LOAD16_BYTE( "proto_253-c4.c4", 0x1000001, 0x800000, CRC(b9b5b993) SHA1(6059793eaf6e58c172235fe64aa9d25a40c38ed6) )
+ ROM_LOAD16_BYTE( "proto_253-c5.c5", 0x2000000, 0x800000, CRC(722615d2) SHA1(798832c535869f0e247c3db0d8253779b103e213) )
+ ROM_LOAD16_BYTE( "proto_253-c6.c6", 0x2000001, 0x800000, CRC(0a6fab38) SHA1(eaee6f2f18af91f7959d84d4b991b3fc182d07c4) )
+ ROM_LOAD16_BYTE( "proto_253-c7.c7", 0x3000000, 0x800000, CRC(d68e806f) SHA1(92bfd9839115bd590972ae4ecc45ad35dce22387) )
+ ROM_LOAD16_BYTE( "proto_253-c8.c8", 0x3000001, 0x800000, CRC(f778fe99) SHA1(c963f6ba90a36d02991728b44ffcf174ca18268a) )
+ROM_END
+
+ROM_START( garoupehc ) /* Garou: Mark of the Wolves PROTOTYPE - Enhance by Creamymami and Ydmis - (In MVS mode can choose Kain and Grant - power hack) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "253pehc.p1", 0x000000, 0x100000, CRC(46b087b7) SHA1(236C8EC295A7380101BE27C5ED472617380A87A6) )
+ ROM_LOAD16_WORD_SWAP( "proto_253-p2.p2", 0x100000, 0x400000, CRC(bf8de565) SHA1(0e24574168cd38138bed0aa4dca49849f6901ca2) )
+
+ NEO_SFIX_128K( "proto_253-s1.s1", CRC(779989de) SHA1(8bd550857b60f8a907f6d39a4225ceffdd330307) )
+
+ NEO_BIOS_AUDIO_256K( "proto_253-m1.m1", CRC(bbe464f7) SHA1(f5f8f3e48f5d453f45107085d6f4023bcd24c053) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "proto_253-v1.v1", 0x000000, 0x400000, CRC(274f3923) SHA1(4c7a8ad1cd0e3afc1f78de3c2929120ed434f104) )
+ ROM_LOAD( "proto_253-v2.v2", 0x400000, 0x400000, CRC(8f86dabe) SHA1(b3d2d9f5c1d97a6e7aee2c674fb6627f41bbb240) )
+ ROM_LOAD( "proto_253-v3.v3", 0x800000, 0x400000, CRC(05fd06cd) SHA1(6cd699719614bb87547632ea3d61d92d81fdf563) )
+ ROM_LOAD( "proto_253-v4.v4", 0xc00000, 0x400000, CRC(14984063) SHA1(170d5638327ec0eb3590b80dc11590897367250c) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_253-c1.c1", 0x0000000, 0x800000, CRC(5bb5d137) SHA1(d648febd8e6a0bdd9bdbb6ce1f1f8b08567ec05a) )
+ ROM_LOAD16_BYTE( "proto_253-c2.c2", 0x0000001, 0x800000, CRC(5c8d2960) SHA1(f7503502be0332adf408ee0ea5ee5161c8939fd8) )
+ ROM_LOAD16_BYTE( "proto_253-c3.c3", 0x1000000, 0x800000, CRC(234d16fc) SHA1(7b9221f7ecc438150c8a10be72390329854ed21b) )
+ ROM_LOAD16_BYTE( "proto_253-c4.c4", 0x1000001, 0x800000, CRC(b9b5b993) SHA1(6059793eaf6e58c172235fe64aa9d25a40c38ed6) )
+ ROM_LOAD16_BYTE( "proto_253-c5.c5", 0x2000000, 0x800000, CRC(722615d2) SHA1(798832c535869f0e247c3db0d8253779b103e213) )
+ ROM_LOAD16_BYTE( "proto_253-c6.c6", 0x2000001, 0x800000, CRC(0a6fab38) SHA1(eaee6f2f18af91f7959d84d4b991b3fc182d07c4) )
+ ROM_LOAD16_BYTE( "proto_253-c7.c7", 0x3000000, 0x800000, CRC(d68e806f) SHA1(92bfd9839115bd590972ae4ecc45ad35dce22387) )
+ ROM_LOAD16_BYTE( "proto_253-c8.c8", 0x3000001, 0x800000, CRC(f778fe99) SHA1(c963f6ba90a36d02991728b44ffcf174ca18268a) )
+ROM_END
+
+ROM_START( garoupf ) /* Garou: Mark of the Wolves PROTOTYPE - Fix by UNKNOWN - (Fixed winning message, sprites and some bugs for prototype - from Mame32+ IPS collection) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "253pf.p1", 0x000000, 0x100000, CRC(124bdbf7) SHA1(81F4BC87AA6B7D34ECF4BEDF0BAA8AEB5B2E179A) )
+ ROM_LOAD16_WORD_SWAP( "253pf.p2", 0x100000, 0x400000, CRC(19eb641b) SHA1(114BE5C20142223CF6BB0938AA3B07B61E3243E1) )
+
+ NEO_SFIX_128K( "proto_253-s1.s1", CRC(779989de) SHA1(8bd550857b60f8a907f6d39a4225ceffdd330307) )
+
+ NEO_BIOS_AUDIO_256K( "proto_253-m1.m1", CRC(bbe464f7) SHA1(f5f8f3e48f5d453f45107085d6f4023bcd24c053) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "proto_253-v1.v1", 0x000000, 0x400000, CRC(274f3923) SHA1(4c7a8ad1cd0e3afc1f78de3c2929120ed434f104) )
+ ROM_LOAD( "proto_253-v2.v2", 0x400000, 0x400000, CRC(8f86dabe) SHA1(b3d2d9f5c1d97a6e7aee2c674fb6627f41bbb240) )
+ ROM_LOAD( "proto_253-v3.v3", 0x800000, 0x400000, CRC(05fd06cd) SHA1(6cd699719614bb87547632ea3d61d92d81fdf563) )
+ ROM_LOAD( "proto_253-v4.v4", 0xc00000, 0x400000, CRC(14984063) SHA1(170d5638327ec0eb3590b80dc11590897367250c) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_253-c1.c1", 0x0000000, 0x800000, CRC(5bb5d137) SHA1(d648febd8e6a0bdd9bdbb6ce1f1f8b08567ec05a) )
+ ROM_LOAD16_BYTE( "proto_253-c2.c2", 0x0000001, 0x800000, CRC(5c8d2960) SHA1(f7503502be0332adf408ee0ea5ee5161c8939fd8) )
+ ROM_LOAD16_BYTE( "proto_253-c3.c3", 0x1000000, 0x800000, CRC(234d16fc) SHA1(7b9221f7ecc438150c8a10be72390329854ed21b) )
+ ROM_LOAD16_BYTE( "proto_253-c4.c4", 0x1000001, 0x800000, CRC(b9b5b993) SHA1(6059793eaf6e58c172235fe64aa9d25a40c38ed6) )
+ ROM_LOAD16_BYTE( "proto_253-c5.c5", 0x2000000, 0x800000, CRC(722615d2) SHA1(798832c535869f0e247c3db0d8253779b103e213) )
+ ROM_LOAD16_BYTE( "proto_253-c6.c6", 0x2000001, 0x800000, CRC(0a6fab38) SHA1(eaee6f2f18af91f7959d84d4b991b3fc182d07c4) )
+ ROM_LOAD16_BYTE( "proto_253-c7.c7", 0x3000000, 0x800000, CRC(d68e806f) SHA1(92bfd9839115bd590972ae4ecc45ad35dce22387) )
+ ROM_LOAD16_BYTE( "proto_253-c8.c8", 0x3000001, 0x800000, CRC(f778fe99) SHA1(c963f6ba90a36d02991728b44ffcf174ca18268a) )
+ROM_END
+
+ROM_START( garoupfp ) /* Garou: Mark of the Wolves PROTOTYPE - (garoupfp) - Fix by UNKNOWN (Rom fix - FIXPLUS) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "253pfp.p1", 0x000000, 0x100000, CRC(0b23e2cb) SHA1(B61730457EFEBFFC4A1F5A31FEFBAF2E4CC8F49E) )
+ ROM_LOAD16_WORD_SWAP( "proto_253-p2.p2", 0x100000, 0x400000, CRC(bf8de565) SHA1(0e24574168cd38138bed0aa4dca49849f6901ca2) )
+
+ NEO_SFIX_128K( "proto_253-s1.s1", CRC(779989de) SHA1(8bd550857b60f8a907f6d39a4225ceffdd330307) )
+
+ NEO_BIOS_AUDIO_256K( "proto_253-m1.m1", CRC(bbe464f7) SHA1(f5f8f3e48f5d453f45107085d6f4023bcd24c053) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "proto_253-v1.v1", 0x000000, 0x400000, CRC(274f3923) SHA1(4c7a8ad1cd0e3afc1f78de3c2929120ed434f104) )
+ ROM_LOAD( "proto_253-v2.v2", 0x400000, 0x400000, CRC(8f86dabe) SHA1(b3d2d9f5c1d97a6e7aee2c674fb6627f41bbb240) )
+ ROM_LOAD( "proto_253-v3.v3", 0x800000, 0x400000, CRC(05fd06cd) SHA1(6cd699719614bb87547632ea3d61d92d81fdf563) )
+ ROM_LOAD( "proto_253-v4.v4", 0xc00000, 0x400000, CRC(14984063) SHA1(170d5638327ec0eb3590b80dc11590897367250c) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_253-c1.c1", 0x0000000, 0x800000, CRC(5bb5d137) SHA1(d648febd8e6a0bdd9bdbb6ce1f1f8b08567ec05a) )
+ ROM_LOAD16_BYTE( "proto_253-c2.c2", 0x0000001, 0x800000, CRC(5c8d2960) SHA1(f7503502be0332adf408ee0ea5ee5161c8939fd8) )
+ ROM_LOAD16_BYTE( "proto_253-c3.c3", 0x1000000, 0x800000, CRC(234d16fc) SHA1(7b9221f7ecc438150c8a10be72390329854ed21b) )
+ ROM_LOAD16_BYTE( "proto_253-c4.c4", 0x1000001, 0x800000, CRC(b9b5b993) SHA1(6059793eaf6e58c172235fe64aa9d25a40c38ed6) )
+ ROM_LOAD16_BYTE( "proto_253-c5.c5", 0x2000000, 0x800000, CRC(722615d2) SHA1(798832c535869f0e247c3db0d8253779b103e213) )
+ ROM_LOAD16_BYTE( "proto_253-c6.c6", 0x2000001, 0x800000, CRC(0a6fab38) SHA1(eaee6f2f18af91f7959d84d4b991b3fc182d07c4) )
+ ROM_LOAD16_BYTE( "proto_253-c7.c7", 0x3000000, 0x800000, CRC(d68e806f) SHA1(92bfd9839115bd590972ae4ecc45ad35dce22387) )
+ ROM_LOAD16_BYTE( "proto_253-c8.c8", 0x3000001, 0x800000, CRC(f778fe99) SHA1(c963f6ba90a36d02991728b44ffcf174ca18268a) )
+ROM_END
+
+ROM_START( garoupfu ) /* Garou: Mark of the Wolves PROTOTYPE - Fix by UNKNOWN - (Unknown Prototype Hack/Fix) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "253pfu.p1", 0x000000, 0x100000, CRC(3f41581e) SHA1(F62C64529A79C8867B789BC655182D702824464C) )
+ ROM_LOAD16_WORD_SWAP( "253pfu.p2", 0x100000, 0x400000, CRC(cf4b3903) SHA1(CFC00DC3EB0F6D566C3F5DD8EC0D6B4440E17AAE) )
+
+ NEO_SFIX_128K( "proto_253-s1.s1", CRC(779989de) SHA1(8bd550857b60f8a907f6d39a4225ceffdd330307) )
+
+ NEO_BIOS_AUDIO_256K( "proto_253-m1.m1", CRC(bbe464f7) SHA1(f5f8f3e48f5d453f45107085d6f4023bcd24c053) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "proto_253-v1.v1", 0x000000, 0x400000, CRC(274f3923) SHA1(4c7a8ad1cd0e3afc1f78de3c2929120ed434f104) )
+ ROM_LOAD( "proto_253-v2.v2", 0x400000, 0x400000, CRC(8f86dabe) SHA1(b3d2d9f5c1d97a6e7aee2c674fb6627f41bbb240) )
+ ROM_LOAD( "proto_253-v3.v3", 0x800000, 0x400000, CRC(05fd06cd) SHA1(6cd699719614bb87547632ea3d61d92d81fdf563) )
+ ROM_LOAD( "proto_253-v4.v4", 0xc00000, 0x400000, CRC(14984063) SHA1(170d5638327ec0eb3590b80dc11590897367250c) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_253-c1.c1", 0x0000000, 0x800000, CRC(5bb5d137) SHA1(d648febd8e6a0bdd9bdbb6ce1f1f8b08567ec05a) )
+ ROM_LOAD16_BYTE( "proto_253-c2.c2", 0x0000001, 0x800000, CRC(5c8d2960) SHA1(f7503502be0332adf408ee0ea5ee5161c8939fd8) )
+ ROM_LOAD16_BYTE( "proto_253-c3.c3", 0x1000000, 0x800000, CRC(234d16fc) SHA1(7b9221f7ecc438150c8a10be72390329854ed21b) )
+ ROM_LOAD16_BYTE( "proto_253-c4.c4", 0x1000001, 0x800000, CRC(b9b5b993) SHA1(6059793eaf6e58c172235fe64aa9d25a40c38ed6) )
+ ROM_LOAD16_BYTE( "proto_253-c5.c5", 0x2000000, 0x800000, CRC(722615d2) SHA1(798832c535869f0e247c3db0d8253779b103e213) )
+ ROM_LOAD16_BYTE( "proto_253-c6.c6", 0x2000001, 0x800000, CRC(0a6fab38) SHA1(eaee6f2f18af91f7959d84d4b991b3fc182d07c4) )
+ ROM_LOAD16_BYTE( "proto_253-c7.c7", 0x3000000, 0x800000, CRC(d68e806f) SHA1(92bfd9839115bd590972ae4ecc45ad35dce22387) )
+ ROM_LOAD16_BYTE( "proto_253-c8.c8", 0x3000001, 0x800000, CRC(f778fe99) SHA1(c963f6ba90a36d02991728b44ffcf174ca18268a) )
+ROM_END
+
+ROM_START( garoupx11 ) // all confirmed
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "253px11.p1", 0x000000, 0x100000, CRC(7a5e411e) SHA1(e56c518e1496948d882721d393e6e95b74cf95f4) )
+ ROM_LOAD16_WORD_SWAP( "253px11.p2", 0x100000, 0x400000, CRC(1eeecc14) SHA1(f42cfcaf10a2c8454bf90e53fa51c1c5c23b26de) )
+
+ NEO_SFIX_128K( "proto_253-s1.s1", CRC(779989de) SHA1(8bd550857b60f8a907f6d39a4225ceffdd330307) )
+
+ NEO_BIOS_AUDIO_256K( "proto_253-m1.m1", CRC(bbe464f7) SHA1(f5f8f3e48f5d453f45107085d6f4023bcd24c053) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "proto_253-v1.v1", 0x000000, 0x400000, CRC(274f3923) SHA1(4c7a8ad1cd0e3afc1f78de3c2929120ed434f104) )
+ ROM_LOAD( "proto_253-v2.v2", 0x400000, 0x400000, CRC(8f86dabe) SHA1(b3d2d9f5c1d97a6e7aee2c674fb6627f41bbb240) )
+ ROM_LOAD( "proto_253-v3.v3", 0x800000, 0x400000, CRC(05fd06cd) SHA1(6cd699719614bb87547632ea3d61d92d81fdf563) )
+ ROM_LOAD( "proto_253-v4.v4", 0xc00000, 0x400000, CRC(14984063) SHA1(170d5638327ec0eb3590b80dc11590897367250c) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_253-c1.c1", 0x0000000, 0x800000, CRC(5bb5d137) SHA1(d648febd8e6a0bdd9bdbb6ce1f1f8b08567ec05a) )
+ ROM_LOAD16_BYTE( "proto_253-c2.c2", 0x0000001, 0x800000, CRC(5c8d2960) SHA1(f7503502be0332adf408ee0ea5ee5161c8939fd8) )
+ ROM_LOAD16_BYTE( "proto_253-c3.c3", 0x1000000, 0x800000, CRC(234d16fc) SHA1(7b9221f7ecc438150c8a10be72390329854ed21b) )
+ ROM_LOAD16_BYTE( "proto_253-c4.c4", 0x1000001, 0x800000, CRC(b9b5b993) SHA1(6059793eaf6e58c172235fe64aa9d25a40c38ed6) )
+ ROM_LOAD16_BYTE( "proto_253-c5.c5", 0x2000000, 0x800000, CRC(722615d2) SHA1(798832c535869f0e247c3db0d8253779b103e213) )
+ ROM_LOAD16_BYTE( "proto_253-c6.c6", 0x2000001, 0x800000, CRC(0a6fab38) SHA1(eaee6f2f18af91f7959d84d4b991b3fc182d07c4) )
+ ROM_LOAD16_BYTE( "proto_253-c7.c7", 0x3000000, 0x800000, CRC(d68e806f) SHA1(92bfd9839115bd590972ae4ecc45ad35dce22387) )
+ ROM_LOAD16_BYTE( "253px11.c8", 0x3000001, 0x800000, CRC(7f004da7) SHA1(724d2b6439822ca30dad6d1ab59739b59e52c3a1) )
+ROM_END
+
+ROM_START( garoupy ) /* Garou: Mark of the Wolves PROTOTYPE - Hack by Ydmis - (In MVS mode P1 can choose Kain and Grant) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "253py.p1", 0x000000, 0x100000, CRC(5b010d7a) SHA1(5DC416E634456B2403ADF0668D18FC5FF60FAFDC) )
+ ROM_LOAD16_WORD_SWAP( "proto_253-p2.p2", 0x100000, 0x400000, CRC(bf8de565) SHA1(0e24574168cd38138bed0aa4dca49849f6901ca2) )
+
+ NEO_SFIX_128K( "proto_253-s1.s1", CRC(779989de) SHA1(8bd550857b60f8a907f6d39a4225ceffdd330307) )
+
+ NEO_BIOS_AUDIO_256K( "proto_253-m1.m1", CRC(bbe464f7) SHA1(f5f8f3e48f5d453f45107085d6f4023bcd24c053) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "proto_253-v1.v1", 0x000000, 0x400000, CRC(274f3923) SHA1(4c7a8ad1cd0e3afc1f78de3c2929120ed434f104) )
+ ROM_LOAD( "proto_253-v2.v2", 0x400000, 0x400000, CRC(8f86dabe) SHA1(b3d2d9f5c1d97a6e7aee2c674fb6627f41bbb240) )
+ ROM_LOAD( "proto_253-v3.v3", 0x800000, 0x400000, CRC(05fd06cd) SHA1(6cd699719614bb87547632ea3d61d92d81fdf563) )
+ ROM_LOAD( "proto_253-v4.v4", 0xc00000, 0x400000, CRC(14984063) SHA1(170d5638327ec0eb3590b80dc11590897367250c) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_253-c1.c1", 0x0000000, 0x800000, CRC(5bb5d137) SHA1(d648febd8e6a0bdd9bdbb6ce1f1f8b08567ec05a) )
+ ROM_LOAD16_BYTE( "proto_253-c2.c2", 0x0000001, 0x800000, CRC(5c8d2960) SHA1(f7503502be0332adf408ee0ea5ee5161c8939fd8) )
+ ROM_LOAD16_BYTE( "proto_253-c3.c3", 0x1000000, 0x800000, CRC(234d16fc) SHA1(7b9221f7ecc438150c8a10be72390329854ed21b) )
+ ROM_LOAD16_BYTE( "proto_253-c4.c4", 0x1000001, 0x800000, CRC(b9b5b993) SHA1(6059793eaf6e58c172235fe64aa9d25a40c38ed6) )
+ ROM_LOAD16_BYTE( "proto_253-c5.c5", 0x2000000, 0x800000, CRC(722615d2) SHA1(798832c535869f0e247c3db0d8253779b103e213) )
+ ROM_LOAD16_BYTE( "proto_253-c6.c6", 0x2000001, 0x800000, CRC(0a6fab38) SHA1(eaee6f2f18af91f7959d84d4b991b3fc182d07c4) )
+ ROM_LOAD16_BYTE( "proto_253-c7.c7", 0x3000000, 0x800000, CRC(d68e806f) SHA1(92bfd9839115bd590972ae4ecc45ad35dce22387) )
+ ROM_LOAD16_BYTE( "proto_253-c8.c8", 0x3000001, 0x800000, CRC(f778fe99) SHA1(c963f6ba90a36d02991728b44ffcf174ca18268a) )
+ROM_END
+
+ROM_START( garoupy1 ) /* Prototype Version, seems genuine */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "253py1.p1", 0x000000, 0x100000, CRC(b4a28ce4) SHA1(bab447230b6bc91a327a2622a55e125ce3aef781) )
+ ROM_LOAD16_WORD_SWAP( "253pf.p2", 0x100000, 0x400000, CRC(19eb641b) SHA1(114BE5C20142223CF6BB0938AA3B07B61E3243E1) )
+
+ NEO_SFIX_128K( "proto_253-s1.s1", CRC(779989de) SHA1(8bd550857b60f8a907f6d39a4225ceffdd330307) )
+
+ NEO_BIOS_AUDIO_256K( "proto_253-m1.m1", CRC(bbe464f7) SHA1(f5f8f3e48f5d453f45107085d6f4023bcd24c053) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "proto_253-v1.v1", 0x000000, 0x400000, CRC(274f3923) SHA1(4c7a8ad1cd0e3afc1f78de3c2929120ed434f104) )
+ ROM_LOAD( "proto_253-v2.v2", 0x400000, 0x400000, CRC(8f86dabe) SHA1(b3d2d9f5c1d97a6e7aee2c674fb6627f41bbb240) )
+ ROM_LOAD( "proto_253-v3.v3", 0x800000, 0x400000, CRC(05fd06cd) SHA1(6cd699719614bb87547632ea3d61d92d81fdf563) )
+ ROM_LOAD( "proto_253-v4.v4", 0xc00000, 0x400000, CRC(14984063) SHA1(170d5638327ec0eb3590b80dc11590897367250c) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_253-c1.c1", 0x0000000, 0x800000, CRC(5bb5d137) SHA1(d648febd8e6a0bdd9bdbb6ce1f1f8b08567ec05a) )
+ ROM_LOAD16_BYTE( "proto_253-c2.c2", 0x0000001, 0x800000, CRC(5c8d2960) SHA1(f7503502be0332adf408ee0ea5ee5161c8939fd8) )
+ ROM_LOAD16_BYTE( "proto_253-c3.c3", 0x1000000, 0x800000, CRC(234d16fc) SHA1(7b9221f7ecc438150c8a10be72390329854ed21b) )
+ ROM_LOAD16_BYTE( "proto_253-c4.c4", 0x1000001, 0x800000, CRC(b9b5b993) SHA1(6059793eaf6e58c172235fe64aa9d25a40c38ed6) )
+ ROM_LOAD16_BYTE( "proto_253-c5.c5", 0x2000000, 0x800000, CRC(722615d2) SHA1(798832c535869f0e247c3db0d8253779b103e213) )
+ ROM_LOAD16_BYTE( "proto_253-c6.c6", 0x2000001, 0x800000, CRC(0a6fab38) SHA1(eaee6f2f18af91f7959d84d4b991b3fc182d07c4) )
+ ROM_LOAD16_BYTE( "proto_253-c7.c7", 0x3000000, 0x800000, CRC(d68e806f) SHA1(92bfd9839115bd590972ae4ecc45ad35dce22387) )
+ ROM_LOAD16_BYTE( "proto_253-c8.c8", 0x3000001, 0x800000, CRC(f778fe99) SHA1(c963f6ba90a36d02991728b44ffcf174ca18268a) )
+ROM_END
+
+
+
+GAME( 1999, garoub, garou, neogeo_noslot, neogeo, neogeo_noslot_state, garou, ROT0, "Ydmis", "Garou - Mark of the Wolves (Boss hack by Ydmis)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, garoud, garou, neogeo_noslot, neogeo, neogeo_hbmame, garoud, ROT0, "hack","Garou - Mark of the Wolves (decrypted C)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, garoupamu, garoupy, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "MU", "Garou - Mark of the Wolves (proto) (Approach to Arcade by MU v5.0a)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, garoupeh, garoupy, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Garou - Mark of the Wolves (proto) (Add Char)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, garoupehc, garoupy, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami and Ydmis", "Garou - Mark of the Wolves (proto) (Add Char - Pow hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, garoupf, garoupy, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Unk", "Garou - Mark of the Wolves (proto) (Fixed winning message, sprites and some bugs)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, garoupfu, garoupy, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Unk", "Garou - Mark of the Wolves (proto) (Unk Hack/Fix)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, garoupfp, garoupy, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Unk", "Garou - Mark of the Wolves (proto) (Rom Fix - FixPlus)", MACHINE_SUPPORTS_SAVE )
+GAME( 2011, garoupx11, garoupy, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Garou - Mark of the Wolves XTREME PLUS", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, garoupy, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Garou - Mark of the Wolves (proto) (P1 Add Char)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, garoupy1, garou, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Garou: Mark of the Wolves (Prototype) [Boss Hack by Ydmis]", MACHINE_SUPPORTS_SAVE )
+
+
+//PSmame
+
+
+ROM_START( garoups01 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "proto_253hc01.p1", 0x000000, 0x100000, CRC(ec02740b) SHA1(99b89af9d8c708ed0455277174d83e7691d1553e) )
+ ROM_LOAD16_WORD_SWAP( "proto_253-p2.p2", 0x100000, 0x400000, CRC(bf8de565) SHA1(0e24574168cd38138bed0aa4dca49849f6901ca2) )
+
+ NEO_SFIX_128K( "proto_253-s1.s1", CRC(779989de) SHA1(8bd550857b60f8a907f6d39a4225ceffdd330307) )
+
+ NEO_BIOS_AUDIO_256K( "proto_253-m1.m1", CRC(bbe464f7) SHA1(f5f8f3e48f5d453f45107085d6f4023bcd24c053) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "proto_253-v1.v1", 0x000000, 0x400000, CRC(274f3923) SHA1(4c7a8ad1cd0e3afc1f78de3c2929120ed434f104) )
+ ROM_LOAD( "proto_253-v2.v2", 0x400000, 0x400000, CRC(8f86dabe) SHA1(b3d2d9f5c1d97a6e7aee2c674fb6627f41bbb240) )
+ ROM_LOAD( "proto_253-v3.v3", 0x800000, 0x400000, CRC(05fd06cd) SHA1(6cd699719614bb87547632ea3d61d92d81fdf563) )
+ ROM_LOAD( "proto_253-v4.v4", 0xc00000, 0x400000, CRC(14984063) SHA1(170d5638327ec0eb3590b80dc11590897367250c) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_253-c1.c1", 0x0000000, 0x800000, CRC(5bb5d137) SHA1(d648febd8e6a0bdd9bdbb6ce1f1f8b08567ec05a) )
+ ROM_LOAD16_BYTE( "proto_253-c2.c2", 0x0000001, 0x800000, CRC(5c8d2960) SHA1(f7503502be0332adf408ee0ea5ee5161c8939fd8) )
+ ROM_LOAD16_BYTE( "proto_253-c3.c3", 0x1000000, 0x800000, CRC(234d16fc) SHA1(7b9221f7ecc438150c8a10be72390329854ed21b) )
+ ROM_LOAD16_BYTE( "proto_253-c4.c4", 0x1000001, 0x800000, CRC(b9b5b993) SHA1(6059793eaf6e58c172235fe64aa9d25a40c38ed6) )
+ ROM_LOAD16_BYTE( "proto_253-c5.c5", 0x2000000, 0x800000, CRC(722615d2) SHA1(798832c535869f0e247c3db0d8253779b103e213) )
+ ROM_LOAD16_BYTE( "proto_253-c6.c6", 0x2000001, 0x800000, CRC(0a6fab38) SHA1(eaee6f2f18af91f7959d84d4b991b3fc182d07c4) )
+ ROM_LOAD16_BYTE( "proto_253-c7.c7", 0x3000000, 0x800000, CRC(d68e806f) SHA1(92bfd9839115bd590972ae4ecc45ad35dce22387) )
+ ROM_LOAD16_BYTE( "proto_253-c8.c8", 0x3000001, 0x800000, CRC(f778fe99) SHA1(c963f6ba90a36d02991728b44ffcf174ca18268a) )
+ROM_END
+
+ROM_START( garoups02 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "proto_253hc02.p1", 0x000000, 0x100000, CRC(c72f0c16) SHA1(1ff6bb651682f93bef9ff02622c3cf63fe594986) )
+ ROM_LOAD16_WORD_SWAP( "proto_253-p2.p2", 0x100000, 0x400000, CRC(bf8de565) SHA1(0e24574168cd38138bed0aa4dca49849f6901ca2) )
+
+ NEO_SFIX_128K( "proto_253-s1.s1", CRC(779989de) SHA1(8bd550857b60f8a907f6d39a4225ceffdd330307) )
+
+ NEO_BIOS_AUDIO_256K( "proto_253-m1.m1", CRC(bbe464f7) SHA1(f5f8f3e48f5d453f45107085d6f4023bcd24c053) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "proto_253-v1.v1", 0x000000, 0x400000, CRC(274f3923) SHA1(4c7a8ad1cd0e3afc1f78de3c2929120ed434f104) )
+ ROM_LOAD( "proto_253-v2.v2", 0x400000, 0x400000, CRC(8f86dabe) SHA1(b3d2d9f5c1d97a6e7aee2c674fb6627f41bbb240) )
+ ROM_LOAD( "proto_253-v3.v3", 0x800000, 0x400000, CRC(05fd06cd) SHA1(6cd699719614bb87547632ea3d61d92d81fdf563) )
+ ROM_LOAD( "proto_253-v4.v4", 0xc00000, 0x400000, CRC(14984063) SHA1(170d5638327ec0eb3590b80dc11590897367250c) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "proto_253-c1.c1", 0x0000000, 0x800000, CRC(5bb5d137) SHA1(d648febd8e6a0bdd9bdbb6ce1f1f8b08567ec05a) )
+ ROM_LOAD16_BYTE( "proto_253-c2.c2", 0x0000001, 0x800000, CRC(5c8d2960) SHA1(f7503502be0332adf408ee0ea5ee5161c8939fd8) )
+ ROM_LOAD16_BYTE( "proto_253-c3.c3", 0x1000000, 0x800000, CRC(234d16fc) SHA1(7b9221f7ecc438150c8a10be72390329854ed21b) )
+ ROM_LOAD16_BYTE( "proto_253-c4.c4", 0x1000001, 0x800000, CRC(b9b5b993) SHA1(6059793eaf6e58c172235fe64aa9d25a40c38ed6) )
+ ROM_LOAD16_BYTE( "proto_253-c5.c5", 0x2000000, 0x800000, CRC(722615d2) SHA1(798832c535869f0e247c3db0d8253779b103e213) )
+ ROM_LOAD16_BYTE( "proto_253-c6.c6", 0x2000001, 0x800000, CRC(0a6fab38) SHA1(eaee6f2f18af91f7959d84d4b991b3fc182d07c4) )
+ ROM_LOAD16_BYTE( "proto_253-c7.c7", 0x3000000, 0x800000, CRC(d68e806f) SHA1(92bfd9839115bd590972ae4ecc45ad35dce22387) )
+ ROM_LOAD16_BYTE( "proto_253-c8.c8", 0x3000001, 0x800000, CRC(f778fe99) SHA1(c963f6ba90a36d02991728b44ffcf174ca18268a) )
+ROM_END
+
+GAME( 1999, garoups01, garou, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Garou - Mark of the Wolves (Description Of Unknown Origin 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, garoups02, garou, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Garou - Mark of the Wolves (Description Of Unknown Origin 02)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/ngkofmisc.cpp b/src/hbmame/drivers/ngkofmisc.cpp
new file mode 100644
index 00000000000..1429963407e
--- /dev/null
+++ b/src/hbmame/drivers/ngkofmisc.cpp
@@ -0,0 +1,1896 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+// Miscellaneous King of Fighters games
+// kog, cthd, kof2k4, kof10th etc
+// Nudity warning in Kof Special Edition 2004, stage with boats in the background:
+// There's a nude woman at the right side.
+// Sometimes the 6 women in the centre can also be nude.
+
+
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, cthd2k3a )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_bootleg_prot->decrypt_cthd2003(spr_region, spr_region_size, audiocpu_region,audio_region_size, fix_region, fix_region_size);
+}
+
+// This fixes the Cart Jumper in KOGD
+static MACHINE_CONFIG_DERIVED( hbmame_kog, neogeo_arcade )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(main_map_noslot)
+ MCFG_KOG_PROT_ADD("kog_prot")
+
+ //joystick controller
+ MCFG_NEOGEO_CONTROL_EDGE_CONNECTOR_ADD("edge", neogeo_arc_edge_fixed, "joy", true)
+
+ //no mahjong controller
+ MCFG_NEOGEO_CONTROL_PORT_ADD("ctrl1", neogeo_arc_pin15, "", true)
+ MCFG_NEOGEO_CONTROL_PORT_ADD("ctrl2", neogeo_arc_pin15, "", true)
+MACHINE_CONFIG_END
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, kogd )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_kog_prot->kog_install_protection(m_maincpu);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, kof10thu )
+{
+ uint32_t tsize = m_region_maincpu->bytes();
+ uint8_t *rom = m_region_maincpu->base();
+ uint32_t i, ofst;
+ std::vector<uint8_t> trom( tsize );
+ memcpy( &trom[ 0 ], &rom[ 0 ], tsize );
+ // We unscramble the lower 6 address lines of the program rom.
+ for( i = 0; i < tsize / 2; i++ )
+ {
+ ofst = bitswap<8>( (i & 0x0000ff), 7, 6, 2, 3, 4, 5, 0, 1 ) | (i & 0xffff00);
+ memcpy( &rom[ ofst * 2 ], &trom[ i * 2 ], 2 );
+ }
+
+ DRIVER_INIT_CALL(neogeo);
+}
+
+
+
+ROM_START( cthd2k3a )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "360a.p1", 0x0c0000, 0x020000, CRC(1185fe39) SHA1(f7ce0878180858c359f125990fd750ec846f42dd) )
+ ROM_CONTINUE( 0x040000, 0x020000 )
+ ROM_CONTINUE( 0x020000, 0x020000 )
+ ROM_CONTINUE( 0x0a0000, 0x020000 )
+ ROM_CONTINUE( 0x080000, 0x020000 )
+ ROM_CONTINUE( 0x060000, 0x020000 )
+ ROM_CONTINUE( 0x000000, 0x020000 )
+ ROM_CONTINUE( 0x0e0000, 0x020000 )
+ ROM_FILL( 0xed00e, 1, 0x4e)
+ ROM_FILL( 0xed00f, 1, 0x71)
+ ROM_FILL( 0xed394, 1, 0x4e)
+ ROM_FILL( 0xed395, 1, 0x71)
+ ROM_FILL( 0xa2b7e, 1, 0x4e)
+ ROM_FILL( 0xa2b7f, 1, 0x71)
+ ROM_LOAD16_WORD_SWAP( "360a.p2", 0x4E0000, 0x020000, CRC(ea71faf7) SHA1(5d1bb12d04a5e2db6f48b59cae5f9b02acaeb976) )
+ ROM_CONTINUE( 0x1c0000, 0x020000 )
+ ROM_CONTINUE( 0x380000, 0x020000 )
+ ROM_CONTINUE( 0x2a0000, 0x020000 )
+ ROM_CONTINUE( 0x360000, 0x020000 )
+ ROM_CONTINUE( 0x2e0000, 0x020000 )
+ ROM_CONTINUE( 0x140000, 0x020000 )
+ ROM_CONTINUE( 0x1e0000, 0x020000 )
+ ROM_CONTINUE( 0x2c0000, 0x020000 )
+ ROM_CONTINUE( 0x280000, 0x020000 )
+ ROM_CONTINUE( 0x460000, 0x020000 )
+ ROM_CONTINUE( 0x160000, 0x020000 )
+ ROM_CONTINUE( 0x440000, 0x020000 )
+ ROM_CONTINUE( 0x4c0000, 0x020000 )
+ ROM_CONTINUE( 0x100000, 0x020000 )
+ ROM_CONTINUE( 0x480000, 0x020000 )
+ ROM_CONTINUE( 0x420000, 0x020000 )
+ ROM_CONTINUE( 0x260000, 0x020000 )
+ ROM_CONTINUE( 0x340000, 0x020000 )
+ ROM_CONTINUE( 0x180000, 0x020000 )
+ ROM_CONTINUE( 0x320000, 0x020000 )
+ ROM_CONTINUE( 0x3a0000, 0x020000 )
+ ROM_CONTINUE( 0x4a0000, 0x020000 )
+ ROM_CONTINUE( 0x200000, 0x020000 )
+ ROM_CONTINUE( 0x120000, 0x020000 )
+ ROM_CONTINUE( 0x400000, 0x020000 )
+ ROM_CONTINUE( 0x300000, 0x020000 )
+ ROM_CONTINUE( 0x3e0000, 0x020000 )
+ ROM_CONTINUE( 0x3c0000, 0x020000 )
+ ROM_CONTINUE( 0x240000, 0x020000 )
+ ROM_CONTINUE( 0x1a0000, 0x020000 )
+ ROM_CONTINUE( 0x220000, 0x020000 )
+
+ NEO_SFIX_128K( "360a.s1", CRC(174ccffd) SHA1(8067e4d79ac91f5c18855793840f41c30825cbb4) )
+
+ NEO_BIOS_AUDIO_128K( "360a.m1", CRC(a37cc447) SHA1(969375ca70cf9140afaf833378716cc43e25c5c6) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "360a.v2", 0x400000, 0x400000, CRC(2b498449) SHA1(8e2b01dd17dbf4498a197bda8ce3e08cdf785f12) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "360a.c1", 0x0000000, 0x800000, CRC(dc90c563) SHA1(a79f54f754a1bd0d603f70af6b335e839b5e20d1) )
+ ROM_LOAD16_BYTE( "360a.c2", 0x0000001, 0x800000, CRC(7b08d331) SHA1(40e259cbc888184aa0f8102d00098f37f3005ce3) )
+ ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) )
+ ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) )
+ ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) )
+ ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) )
+ ROM_LOAD16_BYTE( "360a.c7", 0x3000000, 0x800000, CRC(ad2d72b3) SHA1(6396ba51f863019059ce3e37dab20a60d3a8c549) )
+ ROM_LOAD16_BYTE( "360a.c8", 0x3000001, 0x800000, CRC(8c3fc1b5) SHA1(81b6df7c937915c5b971bde20786aece02404a05) )
+ROM_END
+
+ROM_START( cthd2k3b ) /* Crouching Tiger Hidden Dragon 2003 - Hack by HunterX Hacker - (Can choose Zero and Igniz) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "360b.p1", 0x000000, 0x100000, CRC(f403c9b3) SHA1(35D52B9388D4715BACBE958ACCD133C19E769E30) )
+ ROM_LOAD16_WORD_SWAP( "5003-p2.bin", 0x100000, 0x400000, CRC(adc1c22b) SHA1(271e0629989257a0d21d280c05df53df259414b1) )
+
+ NEO_SFIX_128K( "5003-s1.bin", CRC(5ba29aab) SHA1(e7ea67268a10243693bff722e6fd2276ca540acf) )
+
+ NEO_BIOS_AUDIO_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) )
+ ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) )
+ ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) )
+ ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) )
+ ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) )
+ ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) )
+ ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) )
+ ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) )
+ROM_END
+
+ROM_START( ct2k3eh ) /* Crouching Tiger Hidden Dragon 2003 - Enhance by Fighters Kim and HunterX Hacker - (Can choose Zero and Igniz - power hack) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "360eh.p1", 0x000000, 0x100000, CRC(eac4773b) SHA1(7E8AF18D5A18B3FE0B9130C66D8F4EF6297B8C7F) )
+ ROM_LOAD16_WORD_SWAP( "5003-p2.bin", 0x100000, 0x400000, CRC(adc1c22b) SHA1(271e0629989257a0d21d280c05df53df259414b1) )
+
+ NEO_SFIX_128K( "5003-s1.bin", CRC(5ba29aab) SHA1(e7ea67268a10243693bff722e6fd2276ca540acf) )
+
+ NEO_BIOS_AUDIO_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) )
+ ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) )
+ ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) )
+ ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) )
+ ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) )
+ ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) )
+ ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) )
+ ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) )
+ROM_END
+
+ROM_START( ct2k3ifz )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "5003-p1.bin", 0x000000, 0x100000, CRC(bb7602c1) SHA1(abf329a40f34c88f7325b255e3bc090db1edaca4) )
+ ROM_LOAD16_WORD_SWAP( "360ifz.p2", 0x100000, 0x400000, CRC(f3e7ca3a) SHA1(80b22608a90bc2b643751621200ef42a0e41557d) )
+
+ NEO_SFIX_128K( "5003-s1.bin", CRC(5ba29aab) SHA1(e7ea67268a10243693bff722e6fd2276ca540acf) )
+
+ NEO_BIOS_AUDIO_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) )
+ ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) )
+ ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) )
+ ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) )
+ ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) )
+ ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) )
+ ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) )
+ ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) )
+ROM_END
+
+ROM_START( ct2k3k3 ) /* Crouching Tiger Hidden Dragon 2003 - Remix by Jason/K3 - (Character move change - V1.2 20030823) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "360k3.p1", 0x000000, 0x100000, CRC(f5f1cfb2) SHA1(F0E19AE063E771567B30B52710C143B5E72CBF5A) )
+ ROM_LOAD16_WORD_SWAP( "5003-p2.bin", 0x100000, 0x400000, CRC(adc1c22b) SHA1(271e0629989257a0d21d280c05df53df259414b1) )
+
+ NEO_SFIX_128K( "5003-s1.bin", CRC(5ba29aab) SHA1(e7ea67268a10243693bff722e6fd2276ca540acf) )
+
+ NEO_BIOS_AUDIO_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) )
+ ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) )
+ ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) )
+ ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) )
+ ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) )
+ ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) )
+ ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) )
+ ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) )
+ROM_END
+
+ROM_START( ct2k3k3o ) /* [OLD] Crouching Tiger Hidden Dragon 2003 - Remix by Jason/K3 - (Character move change 20030818) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "360k3o.p1", 0x000000, 0x100000, CRC(93b2cb2b) SHA1(dc6bacae8851ab74eaf45c4392fdab0d679a266f) )
+ ROM_LOAD16_WORD_SWAP( "5003-p2.bin", 0x100000, 0x400000, CRC(adc1c22b) SHA1(271e0629989257a0d21d280c05df53df259414b1) )
+
+ NEO_SFIX_128K( "5003-s1.bin", CRC(5ba29aab) SHA1(e7ea67268a10243693bff722e6fd2276ca540acf) )
+
+ NEO_BIOS_AUDIO_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) )
+ ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) )
+ ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) )
+ ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) )
+ ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) )
+ ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) )
+ ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) )
+ ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) )
+ROM_END
+
+ROM_START( ct2k3spi ) // all confirmed
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "360spi.p1", 0x000000, 0x454f4e, CRC(f3010a50) SHA1(b95f322c0682999f2c378fdf2db14fc804f71153) )
+ ROM_LOAD16_WORD_SWAP( "5003-p2.bin", 0x100000, 0x400000, CRC(adc1c22b) SHA1(271e0629989257a0d21d280c05df53df259414b1) )
+
+ //NEO_SFIX_256K( "360spi.s1", CRC(6c355ab4) SHA1(71ac2bcd3dbda8402baecc56dabc2297b148a900) ) // not working
+ NEO_SFIX_128K( "5003-s1.bin", CRC(5ba29aab) SHA1(e7ea67268a10243693bff722e6fd2276ca540acf) )
+
+ NEO_BIOS_AUDIO_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) )
+ ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) )
+ ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) )
+ ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) )
+ ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) )
+ ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) )
+ ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) )
+ ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) )
+ROM_END
+
+ROM_START( ct2k3xx )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "5003-p1.bin", 0x000000, 0x100000, CRC(bb7602c1) SHA1(abf329a40f34c88f7325b255e3bc090db1edaca4) )
+ ROM_LOAD16_WORD_SWAP( "360xx.p2", 0x100000, 0x400000, CRC(7931c60b) SHA1(d9a6f90b0c40cbc0d9ba82412a418abf714b36dd) )
+
+ NEO_SFIX_128K( "5003-s1.bin", CRC(5ba29aab) SHA1(e7ea67268a10243693bff722e6fd2276ca540acf) )
+
+ NEO_BIOS_AUDIO_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) )
+ ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) )
+ ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) )
+ ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) )
+ ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) )
+ ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) )
+ ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) )
+ ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) )
+ROM_END
+
+ROM_START( ct2k3ys )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "5003-p1.bin", 0x000000, 0x100000, CRC(bb7602c1) SHA1(abf329a40f34c88f7325b255e3bc090db1edaca4) )
+ ROM_LOAD16_WORD_SWAP( "360ys.p2", 0x100000, 0x400000, CRC(d6872ee8) SHA1(23e0c9461c9fea2f5cbb1c05f45b10b5612e2ffd) )
+
+ NEO_SFIX_128K( "5003-s1.bin", CRC(5ba29aab) SHA1(e7ea67268a10243693bff722e6fd2276ca540acf) )
+
+ NEO_BIOS_AUDIO_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) )
+ ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) )
+ ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) )
+ ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) )
+ ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) )
+ ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) )
+ ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) )
+ ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) )
+ROM_END
+
+
+ROM_START( kof2k4mp )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "365mp.p1", 0x000000, 0x100000, CRC(499d739d) SHA1(b6344f49acc68405261592115a3c6c6e298309f5))
+ ROM_LOAD16_WORD_SWAP( "k2k4s-p1.bin", 0x100000, 0x400000, CRC(e6c50566) SHA1(cc6a3489a3bfeb4dcc65b6ddae0030f7e66fbabe))
+
+ NEO_SFIX_128K( "365mp.s1", CRC(f5f10e6f) SHA1(ab9d390785e03561f6b32f6c66fad2b2e9a5d996))
+
+ NEO_BIOS_AUDIO_128K( "5008-m1.bin", CRC(5a47d9ad) SHA1(0197737934653acc6c97221660d789e9914f3578) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265sm.v1", 0x000000, 0x400000, CRC(8991f6e9) SHA1(ce5afc0169c142d7f98111afbc60b3a9a2e17256) )
+ ROM_LOAD( "265sm.v2", 0x400000, 0x400000, CRC(511e4d2f) SHA1(28190ec86ac2169ab6fad80635ed13cfcf430c65) )
+ ROM_LOAD( "265sm.v3", 0x800000, 0x400000, CRC(1dd8b53a) SHA1(9aa84f145ba07f5f3c3b3fb682eb8a8ab1500b4c) )
+ ROM_LOAD( "265sm.v4", 0xc00000, 0x400000, CRC(63bb5462) SHA1(afc6a085e25bd006f26e16beda4244bc8bc19bb8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+
+ ROM_LOAD16_BYTE( "k2k4s-c4.bin", 0x0000000, 0x800000, CRC(7a050288) SHA1(55a20c5b01e11a859f096af3f8e09986025d288f) )
+ ROM_LOAD16_BYTE( "k2k4s-c8.bin", 0x0000001, 0x800000, CRC(e924afcf) SHA1(651e974f7339d2cdcfa58c5398013197a0525b77) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "k2k4s-c1.bin", 0x3000000, 0x800000, CRC(fa705b2b) SHA1(f314c66876589601806352484dd8e45bc41be692) )
+ ROM_LOAD16_BYTE( "k2k4s-c5.bin", 0x3000001, 0x800000, CRC(2c912ff9) SHA1(b624a625ea3e221808b7ea43fb0b1a51d8c1853e) )
+ROM_END
+
+ROM_START( kof2k4omg )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "365omg.p1", 0x000000, 0x3bd4c1, CRC(65687232) SHA1(3943351eb8bbb3e1af5e3c60b0304ff34ece809a) )
+ ROM_LOAD16_WORD_SWAP( "365omg.p2", 0x100000, 0x400000, CRC(edaa18d8) SHA1(dc9f0424db2d55b756d1e7b1389f6f1f9390bf95) )
+
+ NEO_SFIX_128K( "365omg.s1", CRC(a41ebb8b) SHA1(e7fde454fe3adfdfa1f43f5a0042979e0f43c89f) )
+
+ NEO_BIOS_AUDIO_128K( "5008-m1.bin", CRC(5a47d9ad) SHA1(0197737934653acc6c97221660d789e9914f3578) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "k2k4s-v2.bin", 0x000000, 0x800000, CRC(e4ddfb3f) SHA1(eb8220ab01c16cf9244b7f3f9912bec0db561b85) )
+ ROM_LOAD( "k2k4s-v1.bin", 0x800000, 0x800000, CRC(b887d287) SHA1(f593a5722df6f6fac023d189a739a117e976bb2f) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "k2k4s-c4.bin", 0x0000000, 0x800000, CRC(7a050288) SHA1(55a20c5b01e11a859f096af3f8e09986025d288f) )
+ ROM_LOAD16_BYTE( "k2k4s-c8.bin", 0x0000001, 0x800000, CRC(e924afcf) SHA1(651e974f7339d2cdcfa58c5398013197a0525b77) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63ab83ddc5f688dc8165a7ff8d262df3fcd942a2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2a414285e48aa948b5b0d4a9333bab083b5fb853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(e01adc7a4633bc0951b9b4f09abc07d728e9a2d9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5d28eea7b581e780b78f391a8179f1678ee0d9a5) )
+ ROM_LOAD16_BYTE( "365omg.c7", 0x3000000, 0x800000, CRC(7eb467ec) SHA1(9d8a7eb529e68d59ef6e9561426b80a239258b02) )
+ ROM_LOAD16_BYTE( "365omg.c8", 0x3000001, 0x800000, CRC(0b0631c4) SHA1(4d16697048cd79b654616e5976f2d19e763ec49a) )
+ROM_END
+
+ROM_START( kof2k4ru )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "365ru.p1", 0x000000, 0x100000, CRC(69100ad2) SHA1(36a818fb6fbe8433df89187dcf171058128f4f22) )
+ ROM_LOAD16_WORD_SWAP( "365ru.p2", 0x100000, 0x400000, CRC(c6b895e0) SHA1(e0080f4bb268253f0605a48c361b6c8088e173b7) )
+
+ NEO_SFIX_128K( "365ru.s1", CRC(fbfa1079) SHA1(af6d779cf0b74c765812d0ca1aab31412adb0136) )
+
+ NEO_BIOS_AUDIO_128K( "5008-m1.bin", CRC(5a47d9ad) SHA1(0197737934653acc6c97221660d789e9914f3578) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265sm.v1", 0x000000, 0x400000, CRC(8991f6e9) SHA1(ce5afc0169c142d7f98111afbc60b3a9a2e17256) )
+ ROM_LOAD( "265sm.v2", 0x400000, 0x400000, CRC(511e4d2f) SHA1(28190ec86ac2169ab6fad80635ed13cfcf430c65) )
+ ROM_LOAD( "265sm.v3", 0x800000, 0x400000, CRC(1dd8b53a) SHA1(9aa84f145ba07f5f3c3b3fb682eb8a8ab1500b4c) )
+ ROM_LOAD( "265sm.v4", 0xc00000, 0x400000, CRC(63bb5462) SHA1(afc6a085e25bd006f26e16beda4244bc8bc19bb8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "365ru.c1", 0x0000000, 0x800000, CRC(c55d7733) SHA1(3837f178788c78dcf7b0a4fbab3d62bfe0b41f9a) )
+ ROM_LOAD16_BYTE( "365ru.c2", 0x0000001, 0x800000, CRC(d89b45c9) SHA1(31d7ad16534839821f68db07b28dd564fe5c13c3) )
+ ROM_LOAD16_BYTE( "265ori.c3", 0x1000000, 0x800000, CRC(e5074eea) SHA1(387ef21d58b416126b95843bac1a0b6cc346818f) )
+ ROM_LOAD16_BYTE( "265ori.c4", 0x1000001, 0x800000, CRC(f6eb1ff2) SHA1(77cb493b9e75d42c204a9a6c052a813c2730e44f) )
+ ROM_LOAD16_BYTE( "365ru.c5", 0x2000000, 0x800000, CRC(11126545) SHA1(4ae58848c8a6701c9cfcd60e6674e8fb7491c0c0) )
+ ROM_LOAD16_BYTE( "365ru.c6", 0x2000001, 0x800000, CRC(d225bb9b) SHA1(ee627dab6aeebfb1af9dbdc315a927245243817c) )
+ ROM_LOAD16_BYTE( "365ru.c7", 0x3000000, 0x800000, CRC(750a7a2b) SHA1(3ef7688eedc3fcb9cef55306055b838f60a96285) )
+ ROM_LOAD16_BYTE( "365ru.c8", 0x3000001, 0x800000, CRC(aa21b917) SHA1(12f256f2a54246b1ed604ae4dcaa1af6e48a7b1f) )
+ROM_END
+
+ROM_START( kof2k4se1 ) // also known as kofse2k4
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "365se1.p2", 0x000000, 0x100000, CRC(5f482757) SHA1(0c2cba7fc6256e62eb7464306036784703c35a70) )
+ ROM_LOAD16_WORD_SWAP( "k2k4s-p1.bin", 0x100000, 0x400000, CRC(e6c50566) SHA1(cc6a3489a3bfeb4dcc65b6ddae0030f7e66fbabe) )
+
+ NEO_SFIX_128K( "k2k4s-s1.bin", CRC(a3c9b2d8) SHA1(1472d2cbd7bb73e84824ecf773924007e6117e77) )
+
+ NEO_BIOS_AUDIO_128K( "5008-m1.bin", CRC(5a47d9ad) SHA1(0197737934653acc6c97221660d789e9914f3578) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265sm.v1", 0x000000, 0x400000, CRC(8991f6e9) SHA1(ce5afc0169c142d7f98111afbc60b3a9a2e17256) )
+ ROM_LOAD( "265sm.v2", 0x400000, 0x400000, CRC(511e4d2f) SHA1(28190ec86ac2169ab6fad80635ed13cfcf430c65) )
+ ROM_LOAD( "265sm.v3", 0x800000, 0x400000, CRC(1dd8b53a) SHA1(9aa84f145ba07f5f3c3b3fb682eb8a8ab1500b4c) )
+ ROM_LOAD( "265sm.v4", 0xc00000, 0x400000, CRC(63bb5462) SHA1(afc6a085e25bd006f26e16beda4244bc8bc19bb8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "k2k4s-c4.bin", 0x0000000, 0x800000, CRC(7a050288) SHA1(55a20c5b01e11a859f096af3f8e09986025d288f) )
+ ROM_LOAD16_BYTE( "k2k4s-c8.bin", 0x0000001, 0x800000, CRC(e924afcf) SHA1(651e974f7339d2cdcfa58c5398013197a0525b77) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63ab83ddc5f688dc8165a7ff8d262df3fcd942a2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2a414285e48aa948b5b0d4a9333bab083b5fb853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(e01adc7a4633bc0951b9b4f09abc07d728e9a2d9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5d28eea7b581e780b78f391a8179f1678ee0d9a5) )
+ ROM_LOAD16_BYTE( "k2k4s-c1.bin", 0x3000000, 0x800000, CRC(fa705b2b) SHA1(f314c66876589601806352484dd8e45bc41be692) )
+ ROM_LOAD16_BYTE( "k2k4s-c5.bin", 0x3000001, 0x800000, CRC(2c912ff9) SHA1(b624a625ea3e221808b7ea43fb0b1a51d8c1853e) )
+ROM_END
+
+ROM_START( kof2k4se2 ) // also known as kof2004, same as kof2k4se1 except for 2nd program rom
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "365se1.p2", 0x000000, 0x100000, CRC(5f482757) SHA1(0c2cba7fc6256e62eb7464306036784703c35a70) )
+ ROM_LOAD16_WORD_SWAP( "365se2.p1", 0x100000, 0x400000, CRC(698679a7) SHA1(2bf3a7a7423141685ecd36c266139a97bac0a69c) )
+
+ NEO_SFIX_128K( "k2k4s-s1.bin", CRC(a3c9b2d8) SHA1(1472d2cbd7bb73e84824ecf773924007e6117e77) )
+
+ NEO_BIOS_AUDIO_128K( "5008-m1.bin", CRC(5a47d9ad) SHA1(0197737934653acc6c97221660d789e9914f3578) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265sm.v1", 0x000000, 0x400000, CRC(8991f6e9) SHA1(ce5afc0169c142d7f98111afbc60b3a9a2e17256) )
+ ROM_LOAD( "265sm.v2", 0x400000, 0x400000, CRC(511e4d2f) SHA1(28190ec86ac2169ab6fad80635ed13cfcf430c65) )
+ ROM_LOAD( "265sm.v3", 0x800000, 0x400000, CRC(1dd8b53a) SHA1(9aa84f145ba07f5f3c3b3fb682eb8a8ab1500b4c) )
+ ROM_LOAD( "265sm.v4", 0xc00000, 0x400000, CRC(63bb5462) SHA1(afc6a085e25bd006f26e16beda4244bc8bc19bb8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "k2k4s-c4.bin", 0x0000000, 0x800000, CRC(7a050288) SHA1(55a20c5b01e11a859f096af3f8e09986025d288f) )
+ ROM_LOAD16_BYTE( "k2k4s-c8.bin", 0x0000001, 0x800000, CRC(e924afcf) SHA1(651e974f7339d2cdcfa58c5398013197a0525b77) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63ab83ddc5f688dc8165a7ff8d262df3fcd942a2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2a414285e48aa948b5b0d4a9333bab083b5fb853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(e01adc7a4633bc0951b9b4f09abc07d728e9a2d9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5d28eea7b581e780b78f391a8179f1678ee0d9a5) )
+ ROM_LOAD16_BYTE( "k2k4s-c1.bin", 0x3000000, 0x800000, CRC(fa705b2b) SHA1(f314c66876589601806352484dd8e45bc41be692) )
+ ROM_LOAD16_BYTE( "k2k4s-c5.bin", 0x3000001, 0x800000, CRC(2c912ff9) SHA1(b624a625ea3e221808b7ea43fb0b1a51d8c1853e) )
+ROM_END
+
+ROM_START( kof2k4seb ) /* Portuguese edition */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "365seb.p1", 0x000000, 0x100000, CRC(3dda9add) SHA1(de75ab82ecdd9612b47051a502bfbe4b80c20688) )
+ ROM_LOAD16_WORD_SWAP( "365seb.p2", 0x100000, 0x400000, CRC(ed63d10b) SHA1(0991adc15d9335ce429ab0f4e1c20f198c6c0a94) )
+
+ NEO_SFIX_128K( "365seb.s1", CRC(f1b5d31a) SHA1(d111dd7b68fc4a921c0ab19bec40338dd3a88092) )
+
+ NEO_BIOS_AUDIO_128K( "5008-m1.bin", CRC(5a47d9ad) SHA1(0197737934653acc6c97221660d789e9914f3578) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "k2k4s-v2.bin", 0x000000, 0x800000, CRC(e4ddfb3f) SHA1(eb8220ab01c16cf9244b7f3f9912bec0db561b85) )
+ ROM_LOAD( "k2k4s-v1.bin", 0x800000, 0x800000, CRC(b887d287) SHA1(f593a5722df6f6fac023d189a739a117e976bb2f) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "k2k4s-c4.bin", 0x0000000, 0x800000, CRC(7a050288) SHA1(55a20c5b01e11a859f096af3f8e09986025d288f) )
+ ROM_LOAD16_BYTE( "k2k4s-c8.bin", 0x0000001, 0x800000, CRC(e924afcf) SHA1(651e974f7339d2cdcfa58c5398013197a0525b77) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "k2k4s-c1.bin", 0x3000000, 0x800000, CRC(fa705b2b) SHA1(f314c66876589601806352484dd8e45bc41be692) )
+ ROM_LOAD16_BYTE( "k2k4s-c5.bin", 0x3000001, 0x800000, CRC(2c912ff9) SHA1(b624a625ea3e221808b7ea43fb0b1a51d8c1853e) )
+ROM_END
+
+ROM_START( kof2k4spl )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "365spl.p1", 0x000000, 0x100000, CRC(388c5cba) SHA1(a9dbb3cbe622f8d7c28079883d54665da522dea9))
+ ROM_LOAD16_WORD_SWAP( "k2k4s-p1.bin", 0x100000, 0x400000, CRC(e6c50566) SHA1(cc6a3489a3bfeb4dcc65b6ddae0030f7e66fbabe))
+
+ NEO_SFIX_128K( "365spl.s1", CRC(348686dd) SHA1(676d83b98cc0b923ef4997c04cecaf74b4ef1687))
+
+ NEO_BIOS_AUDIO_128K( "5008-m1.bin", CRC(5a47d9ad) SHA1(0197737934653acc6c97221660d789e9914f3578) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "265sm.v1", 0x000000, 0x400000, CRC(8991f6e9) SHA1(ce5afc0169c142d7f98111afbc60b3a9a2e17256) )
+ ROM_LOAD( "265sm.v2", 0x400000, 0x400000, CRC(511e4d2f) SHA1(28190ec86ac2169ab6fad80635ed13cfcf430c65) )
+ ROM_LOAD( "265sm.v3", 0x800000, 0x400000, CRC(1dd8b53a) SHA1(9aa84f145ba07f5f3c3b3fb682eb8a8ab1500b4c) )
+ ROM_LOAD( "265sm.v4", 0xc00000, 0x400000, CRC(63bb5462) SHA1(afc6a085e25bd006f26e16beda4244bc8bc19bb8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "k2k4s-c4.bin", 0x0000000, 0x800000, CRC(7a050288) SHA1(55a20c5b01e11a859f096af3f8e09986025d288f) )
+ ROM_LOAD16_BYTE( "k2k4s-c8.bin", 0x0000001, 0x800000, CRC(e924afcf) SHA1(651e974f7339d2cdcfa58c5398013197a0525b77) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "k2k4s-c1.bin", 0x3000000, 0x800000, CRC(fa705b2b) SHA1(f314c66876589601806352484dd8e45bc41be692) )
+ ROM_LOAD16_BYTE( "k2k4s-c5.bin", 0x3000001, 0x800000, CRC(2c912ff9) SHA1(b624a625ea3e221808b7ea43fb0b1a51d8c1853e) )
+ROM_END
+
+
+ROM_START( kof2k8uni ) // hack of kof10th
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "366.p1", 0x000000, 0x400000, CRC(966210bf) SHA1(9f86f29dbfe7ac951485908a20a6ce120ebdeb5f) )
+ ROM_LOAD16_WORD_SWAP( "366.p2", 0x400000, 0x400000, CRC(ae5f00f7) SHA1(807cbd02cdba320c7cf32c915a663338d7a89252) )
+
+ NEO_SFIX_128K( "366.s1", CRC(e57b5757) SHA1(d3dbb83c3d8b9860361b36496bfdc95220b8b75f) )
+
+ NEO_BIOS_AUDIO_128K( "kf10-m1.bin", CRC(f6fab859) SHA1(0184aa1394b9f9946d610278b53b846020dd88dc) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) )
+ ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "366.c1", 0x0000000, 0x400000, CRC(ea774fb8) SHA1(01ce6330716046b591c606b5d016dd5e57fa007b) )
+ ROM_LOAD16_BYTE( "366.c2", 0x0000001, 0x400000, CRC(6f497789) SHA1(8c8573ea191d29f0d250901ebf0116a41e184c78) )
+ ROM_LOAD16_BYTE( "kf10-c1b.bin", 0x0800000, 0x400000, CRC(b5abfc28) SHA1(eabf60992bb3485c95330065294071ec155bfe7c) )
+ ROM_LOAD16_BYTE( "kf10-c2b.bin", 0x0800001, 0x400000, CRC(6cc4c6e1) SHA1(be824a944e745ee18efdc45c81fd496a4d624b9c) )
+ ROM_LOAD16_BYTE( "kf10-c3a.bin", 0x1000000, 0x400000, CRC(5b3d4a16) SHA1(93ac1cd7739100f8c32732644f81f2a19837b131) )
+ ROM_LOAD16_BYTE( "kf10-c4a.bin", 0x1000001, 0x400000, CRC(c6f3419b) SHA1(340c17a73aeb7bf8a6209f8459e6f00000075b50) )
+ ROM_LOAD16_BYTE( "kf10-c3b.bin", 0x1800000, 0x400000, CRC(9d2bba19) SHA1(5ebbd0af3f83a60e33c8ccb743e3d5f5a96f1273) )
+ ROM_LOAD16_BYTE( "kf10-c4b.bin", 0x1800001, 0x400000, CRC(5a4050cb) SHA1(8fd2291f349efa1ed5cd37ad4e273b60fe831a77) )
+ ROM_LOAD16_BYTE( "kf10-c5a.bin", 0x2000000, 0x400000, CRC(a289d1e1) SHA1(50c7d7ebde6e118a01036cc3e40827fcd9f0d3fd) )
+ ROM_LOAD16_BYTE( "kf10-c6a.bin", 0x2000001, 0x400000, CRC(e6494b5d) SHA1(18e064b9867ae0b0794065f8dbefd486620419db) )
+ ROM_LOAD16_BYTE( "kf10-c5b.bin", 0x2800000, 0x400000, CRC(404fff02) SHA1(56d1b32c87ea4885e49264e8b21846e465a20e1f) )
+ ROM_LOAD16_BYTE( "kf10-c6b.bin", 0x2800001, 0x400000, CRC(f2ccfc9e) SHA1(69db7fac7023785ab94ea711a72dbc2826cfe1a3) )
+ ROM_LOAD16_BYTE( "kf10-c7a.bin", 0x3000000, 0x400000, CRC(be79c5a8) SHA1(ded3c5eb3571647f50533eb682c2675372ace3fb) )
+ ROM_LOAD16_BYTE( "kf10-c8a.bin", 0x3000001, 0x400000, CRC(a5952ca4) SHA1(76dbb3cb45ce5a4beffa1ed29491204fc6617e42) )
+ ROM_LOAD16_BYTE( "366.c7", 0x3800000, 0x400000, CRC(1b6f3bde) SHA1(5e1222197f5a09837930cc34713667dc1644c02a) )
+ ROM_LOAD16_BYTE( "366.c8", 0x3800001, 0x400000, CRC(113555e3) SHA1(52b48e182d23422492d95c95de4c86b1d30864e0) )
+ROM_END
+
+
+ROM_START( kof10thbr )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "363br.p1", 0x000000, 0x800000, CRC(c320bbaa) SHA1(f5570d78670881cf3ce787698e07d727fb0aeec2) )
+
+ NEO_SFIX_128K( "363br.s1", CRC(3c757cb1) SHA1(fea798902c59c125c8d31f42d52aa22caa31fc7b) )
+
+ NEO_BIOS_AUDIO_128K( "kf10-m1.bin", CRC(f6fab859) SHA1(0184aa1394b9f9946d610278b53b846020dd88dc) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) )
+ ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "kf10-c1a.bin", 0x0000000, 0x400000, CRC(3bbc0364) SHA1(e8aa7ff82f151ce1db56f259377b64cceef85af0) )
+ ROM_LOAD16_BYTE( "kf10-c2a.bin", 0x0000001, 0x400000, CRC(91230075) SHA1(d9098e05a7ba6008661147b6bf8bc2f494b8b72b) )
+ ROM_LOAD16_BYTE( "kf10-c1b.bin", 0x0800000, 0x400000, CRC(b5abfc28) SHA1(eabf60992bb3485c95330065294071ec155bfe7c) )
+ ROM_LOAD16_BYTE( "kf10-c2b.bin", 0x0800001, 0x400000, CRC(6cc4c6e1) SHA1(be824a944e745ee18efdc45c81fd496a4d624b9c) )
+ ROM_LOAD16_BYTE( "kf10-c3a.bin", 0x1000000, 0x400000, CRC(5b3d4a16) SHA1(93ac1cd7739100f8c32732644f81f2a19837b131) )
+ ROM_LOAD16_BYTE( "kf10-c4a.bin", 0x1000001, 0x400000, CRC(c6f3419b) SHA1(340c17a73aeb7bf8a6209f8459e6f00000075b50) )
+ ROM_LOAD16_BYTE( "kf10-c3b.bin", 0x1800000, 0x400000, CRC(9d2bba19) SHA1(5ebbd0af3f83a60e33c8ccb743e3d5f5a96f1273) )
+ ROM_LOAD16_BYTE( "kf10-c4b.bin", 0x1800001, 0x400000, CRC(5a4050cb) SHA1(8fd2291f349efa1ed5cd37ad4e273b60fe831a77) )
+ ROM_LOAD16_BYTE( "kf10-c5a.bin", 0x2000000, 0x400000, CRC(a289d1e1) SHA1(50c7d7ebde6e118a01036cc3e40827fcd9f0d3fd) )
+ ROM_LOAD16_BYTE( "kf10-c6a.bin", 0x2000001, 0x400000, CRC(e6494b5d) SHA1(18e064b9867ae0b0794065f8dbefd486620419db) )
+ ROM_LOAD16_BYTE( "kf10-c5b.bin", 0x2800000, 0x400000, CRC(404fff02) SHA1(56d1b32c87ea4885e49264e8b21846e465a20e1f) )
+ ROM_LOAD16_BYTE( "kf10-c6b.bin", 0x2800001, 0x400000, CRC(f2ccfc9e) SHA1(69db7fac7023785ab94ea711a72dbc2826cfe1a3) )
+ ROM_LOAD16_BYTE( "kf10-c7a.bin", 0x3000000, 0x400000, CRC(be79c5a8) SHA1(ded3c5eb3571647f50533eb682c2675372ace3fb) )
+ ROM_LOAD16_BYTE( "kf10-c8a.bin", 0x3000001, 0x400000, CRC(a5952ca4) SHA1(76dbb3cb45ce5a4beffa1ed29491204fc6617e42) )
+ ROM_LOAD16_BYTE( "kf10-c7b.bin", 0x3800000, 0x400000, CRC(3fdb3542) SHA1(7d2050752a2064cd6729f483a0da93808e2c6033) )
+ ROM_LOAD16_BYTE( "kf10-c8b.bin", 0x3800001, 0x400000, CRC(661b7a52) SHA1(0ae2ad2389134892f156337332b77adade3ddad1) )
+ROM_END
+
+ROM_START( kof10thd16 ) // after loading, p1 needs unscrambling: 2&3<->4&5 etc
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "363d16.p1", 0x000000, 0x00000, CRC(ea4274f6) SHA1(b9ea7f92f531916bed6363c8214ed5ae117d5148) )
+
+ NEO_SFIX_MT_128K
+ ROM_LOAD( "363d16.s1", 0x000000, 0x020000, CRC(6fae9f8f) SHA1(0194a0f8946c2d8e89e4b784586f77b874c03302) )
+ ROM_IGNORE( 0x435044 )
+
+ NEO_BIOS_AUDIO_128K( "kf10-m1.bin", CRC(f6fab859) SHA1(0184aa1394b9f9946d610278b53b846020dd88dc) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) )
+ ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "kf10-c1a.bin", 0x0000000, 0x400000, CRC(3bbc0364) SHA1(e8aa7ff82f151ce1db56f259377b64cceef85af0) )
+ ROM_LOAD16_BYTE( "kf10-c2a.bin", 0x0000001, 0x400000, CRC(91230075) SHA1(d9098e05a7ba6008661147b6bf8bc2f494b8b72b) )
+ ROM_LOAD16_BYTE( "kf10-c1b.bin", 0x0800000, 0x400000, CRC(b5abfc28) SHA1(eabf60992bb3485c95330065294071ec155bfe7c) )
+ ROM_LOAD16_BYTE( "kf10-c2b.bin", 0x0800001, 0x400000, CRC(6cc4c6e1) SHA1(be824a944e745ee18efdc45c81fd496a4d624b9c) )
+ ROM_LOAD16_BYTE( "kf10-c3a.bin", 0x1000000, 0x400000, CRC(5b3d4a16) SHA1(93ac1cd7739100f8c32732644f81f2a19837b131) )
+ ROM_LOAD16_BYTE( "kf10-c4a.bin", 0x1000001, 0x400000, CRC(c6f3419b) SHA1(340c17a73aeb7bf8a6209f8459e6f00000075b50) )
+ ROM_LOAD16_BYTE( "kf10-c3b.bin", 0x1800000, 0x400000, CRC(9d2bba19) SHA1(5ebbd0af3f83a60e33c8ccb743e3d5f5a96f1273) )
+ ROM_LOAD16_BYTE( "kf10-c4b.bin", 0x1800001, 0x400000, CRC(5a4050cb) SHA1(8fd2291f349efa1ed5cd37ad4e273b60fe831a77) )
+ ROM_LOAD16_BYTE( "kf10-c5a.bin", 0x2000000, 0x400000, CRC(a289d1e1) SHA1(50c7d7ebde6e118a01036cc3e40827fcd9f0d3fd) )
+ ROM_LOAD16_BYTE( "kf10-c6a.bin", 0x2000001, 0x400000, CRC(e6494b5d) SHA1(18e064b9867ae0b0794065f8dbefd486620419db) )
+ ROM_LOAD16_BYTE( "kf10-c5b.bin", 0x2800000, 0x400000, CRC(404fff02) SHA1(56d1b32c87ea4885e49264e8b21846e465a20e1f) )
+ ROM_LOAD16_BYTE( "kf10-c6b.bin", 0x2800001, 0x400000, CRC(f2ccfc9e) SHA1(69db7fac7023785ab94ea711a72dbc2826cfe1a3) )
+ ROM_LOAD16_BYTE( "kf10-c7a.bin", 0x3000000, 0x400000, CRC(be79c5a8) SHA1(ded3c5eb3571647f50533eb682c2675372ace3fb) )
+ ROM_LOAD16_BYTE( "kf10-c8a.bin", 0x3000001, 0x400000, CRC(a5952ca4) SHA1(76dbb3cb45ce5a4beffa1ed29491204fc6617e42) )
+ ROM_LOAD16_BYTE( "kf10-c7b.bin", 0x3800000, 0x400000, CRC(3fdb3542) SHA1(7d2050752a2064cd6729f483a0da93808e2c6033) )
+ ROM_LOAD16_BYTE( "kf10-c8b.bin", 0x3800001, 0x400000, CRC(661b7a52) SHA1(0ae2ad2389134892f156337332b77adade3ddad1) )
+ROM_END
+
+ROM_START( kof10thep15 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "363ep15.p1", 0x000000, 0x200000, CRC(8981b627) SHA1(b25754a6339f6533af791cd7dea95988b5f9072a) )
+ ROM_IGNORE(0x254f9f)
+ ROM_LOAD16_WORD_SWAP( "363ep15.p2", 0x200000, 0x400000, CRC(8eca396b) SHA1(58918c9dff5dc6e8975e16943ef8aefcd4caf34d) )
+ ROM_IGNORE(0x054f59)
+ ROM_LOAD16_WORD_SWAP( "5008-p3.bin", 0x600000, 0x200000, CRC(e629e13c) SHA1(6ebe080ce01c51064cb2f4d89315ba98a45ae727) )
+
+ NEO_SFIX_128K( "5008-s1.bin", CRC(92410064) SHA1(1fb800b46341858207d3b6961a760289fbec7faa) )
+
+ NEO_BIOS_AUDIO_128K( "5008-m1.bin", CRC(5a47d9ad) SHA1(0197737934653acc6c97221660d789e9914f3578) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) )
+ ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "kf10-c1a.bin", 0x0000000, 0x400000, CRC(3bbc0364) SHA1(e8aa7ff82f151ce1db56f259377b64cceef85af0) )
+ ROM_LOAD16_BYTE( "kf10-c2a.bin", 0x0000001, 0x400000, CRC(91230075) SHA1(d9098e05a7ba6008661147b6bf8bc2f494b8b72b) )
+ ROM_LOAD16_BYTE( "kf10-c1b.bin", 0x0800000, 0x400000, CRC(b5abfc28) SHA1(eabf60992bb3485c95330065294071ec155bfe7c) )
+ ROM_LOAD16_BYTE( "kf10-c2b.bin", 0x0800001, 0x400000, CRC(6cc4c6e1) SHA1(be824a944e745ee18efdc45c81fd496a4d624b9c) )
+ ROM_LOAD16_BYTE( "kf10-c3a.bin", 0x1000000, 0x400000, CRC(5b3d4a16) SHA1(93ac1cd7739100f8c32732644f81f2a19837b131) )
+ ROM_LOAD16_BYTE( "kf10-c4a.bin", 0x1000001, 0x400000, CRC(c6f3419b) SHA1(340c17a73aeb7bf8a6209f8459e6f00000075b50) )
+ ROM_LOAD16_BYTE( "kf10-c3b.bin", 0x1800000, 0x400000, CRC(9d2bba19) SHA1(5ebbd0af3f83a60e33c8ccb743e3d5f5a96f1273) )
+ ROM_LOAD16_BYTE( "kf10-c4b.bin", 0x1800001, 0x400000, CRC(5a4050cb) SHA1(8fd2291f349efa1ed5cd37ad4e273b60fe831a77) )
+ ROM_LOAD16_BYTE( "kf10-c5a.bin", 0x2000000, 0x400000, CRC(a289d1e1) SHA1(50c7d7ebde6e118a01036cc3e40827fcd9f0d3fd) )
+ ROM_LOAD16_BYTE( "kf10-c6a.bin", 0x2000001, 0x400000, CRC(e6494b5d) SHA1(18e064b9867ae0b0794065f8dbefd486620419db) )
+ ROM_LOAD16_BYTE( "kf10-c5b.bin", 0x2800000, 0x400000, CRC(404fff02) SHA1(56d1b32c87ea4885e49264e8b21846e465a20e1f) )
+ ROM_LOAD16_BYTE( "kf10-c6b.bin", 0x2800001, 0x400000, CRC(f2ccfc9e) SHA1(69db7fac7023785ab94ea711a72dbc2826cfe1a3) )
+ ROM_LOAD16_BYTE( "kf10-c7a.bin", 0x3000000, 0x400000, CRC(be79c5a8) SHA1(ded3c5eb3571647f50533eb682c2675372ace3fb) )
+ ROM_LOAD16_BYTE( "kf10-c8a.bin", 0x3000001, 0x400000, CRC(a5952ca4) SHA1(76dbb3cb45ce5a4beffa1ed29491204fc6617e42) )
+ ROM_LOAD16_BYTE( "5008-c7b.bin", 0x3800000, 0x400000, CRC(33604ef0) SHA1(57deec23c81d5d673ce5992cef1f2567f1a2148e) )
+ ROM_LOAD16_BYTE( "5008-c8b.bin", 0x3800001, 0x400000, CRC(51f6a8f8) SHA1(9ef1cdbdd125a2b430346c22b59f36902312905f) )
+ROM_END
+
+ROM_START( kof10thu )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "363u.p1", 0x600000, 0x100000, CRC(dd135fb6) SHA1(4e85814a44ee9fee9760048dd6d6fd2b66521bb1) )
+ ROM_CONTINUE( 0x100000, 0x500000 )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+ ROM_CONTINUE( 0x700000, 0x100000 )
+
+ NEO_SFIX_128K( "363u.s1", CRC(b22ba74f) SHA1(3ba9e9d4b95fef9bf35f76e9d4fb6e1a36aeee5a) )
+
+ NEO_BIOS_AUDIO_128K( "kf10-m1.bin", CRC(f6fab859) SHA1(0184aa1394b9f9946d610278b53b846020dd88dc) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) )
+ ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "kf10-c1a.bin", 0x0000000, 0x400000, CRC(3bbc0364) SHA1(e8aa7ff82f151ce1db56f259377b64cceef85af0) )
+ ROM_LOAD16_BYTE( "kf10-c2a.bin", 0x0000001, 0x400000, CRC(91230075) SHA1(d9098e05a7ba6008661147b6bf8bc2f494b8b72b) )
+ ROM_LOAD16_BYTE( "kf10-c1b.bin", 0x0800000, 0x400000, CRC(b5abfc28) SHA1(eabf60992bb3485c95330065294071ec155bfe7c) )
+ ROM_LOAD16_BYTE( "kf10-c2b.bin", 0x0800001, 0x400000, CRC(6cc4c6e1) SHA1(be824a944e745ee18efdc45c81fd496a4d624b9c) )
+ ROM_LOAD16_BYTE( "kf10-c3a.bin", 0x1000000, 0x400000, CRC(5b3d4a16) SHA1(93ac1cd7739100f8c32732644f81f2a19837b131) )
+ ROM_LOAD16_BYTE( "kf10-c4a.bin", 0x1000001, 0x400000, CRC(c6f3419b) SHA1(340c17a73aeb7bf8a6209f8459e6f00000075b50) )
+ ROM_LOAD16_BYTE( "kf10-c3b.bin", 0x1800000, 0x400000, CRC(9d2bba19) SHA1(5ebbd0af3f83a60e33c8ccb743e3d5f5a96f1273) )
+ ROM_LOAD16_BYTE( "kf10-c4b.bin", 0x1800001, 0x400000, CRC(5a4050cb) SHA1(8fd2291f349efa1ed5cd37ad4e273b60fe831a77) )
+ ROM_LOAD16_BYTE( "kf10-c5a.bin", 0x2000000, 0x400000, CRC(a289d1e1) SHA1(50c7d7ebde6e118a01036cc3e40827fcd9f0d3fd) )
+ ROM_LOAD16_BYTE( "kf10-c6a.bin", 0x2000001, 0x400000, CRC(e6494b5d) SHA1(18e064b9867ae0b0794065f8dbefd486620419db) )
+ ROM_LOAD16_BYTE( "kf10-c5b.bin", 0x2800000, 0x400000, CRC(404fff02) SHA1(56d1b32c87ea4885e49264e8b21846e465a20e1f) )
+ ROM_LOAD16_BYTE( "kf10-c6b.bin", 0x2800001, 0x400000, CRC(f2ccfc9e) SHA1(69db7fac7023785ab94ea711a72dbc2826cfe1a3) )
+ ROM_LOAD16_BYTE( "kf10-c7a.bin", 0x3000000, 0x400000, CRC(be79c5a8) SHA1(ded3c5eb3571647f50533eb682c2675372ace3fb) )
+ ROM_LOAD16_BYTE( "kf10-c8a.bin", 0x3000001, 0x400000, CRC(a5952ca4) SHA1(76dbb3cb45ce5a4beffa1ed29491204fc6617e42) )
+ ROM_LOAD16_BYTE( "kf10-c7b.bin", 0x3800000, 0x400000, CRC(3fdb3542) SHA1(7d2050752a2064cd6729f483a0da93808e2c6033) )
+ ROM_LOAD16_BYTE( "kf10-c8b.bin", 0x3800001, 0x400000, CRC(661b7a52) SHA1(0ae2ad2389134892f156337332b77adade3ddad1) )
+ROM_END
+
+ROM_START( kof10thub )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "363ub.p1", 0x000000, 0x800000, CRC(814eb1b2) SHA1(529825948f17fffa6d3a55a0d9e7ba6c06b79649) )
+
+ NEO_SFIX_128K( "363ub.s1", CRC(f5f91fc8) SHA1(f64516d7b500bdeddbe64962330cb612c11b8b84) )
+
+ NEO_BIOS_AUDIO_128K( "kf10-m1.bin", CRC(f6fab859) SHA1(0184aa1394b9f9946d610278b53b846020dd88dc) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) )
+ ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "363ud.c1", 0x0000000, 0x800000, CRC(2491af91) SHA1(e3e237e50395dc985c564867046ad202bc744d37) )
+ ROM_LOAD16_BYTE( "363ud.c2", 0x0000001, 0x800000, CRC(47ff1d91) SHA1(7d6ade9409af2c64114ed5836ccf9f50c7ebac69) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) )
+ ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) )
+ROM_END
+
+ROM_START( kof10thud )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "363ud.p1", 0x000000, 0x800000, CRC(acbe077a) SHA1(7d3b1ce4e06021f26dd1a7d97b03975f4ed17c24) )
+
+ NEO_SFIX_128K( "363u.s1", CRC(b22ba74f) SHA1(3ba9e9d4b95fef9bf35f76e9d4fb6e1a36aeee5a) )
+
+ NEO_BIOS_AUDIO_128K( "kf10-m1.bin", CRC(f6fab859) SHA1(0184aa1394b9f9946d610278b53b846020dd88dc) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) )
+ ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "363ud.c1", 0x0000000, 0x800000, CRC(2491af91) SHA1(e3e237e50395dc985c564867046ad202bc744d37) )
+ ROM_LOAD16_BYTE( "363ud.c2", 0x0000001, 0x800000, CRC(47ff1d91) SHA1(7d6ade9409af2c64114ed5836ccf9f50c7ebac69) )
+ ROM_LOAD16_BYTE( "265d.c3", 0x1000000, 0x800000, CRC(959fad0b) SHA1(63AB83DDC5F688DC8165A7FF8D262DF3FCD942A2) )
+ ROM_LOAD16_BYTE( "265d.c4", 0x1000001, 0x800000, CRC(efe6a468) SHA1(2A414285E48AA948B5B0D4A9333BAB083B5FB853) )
+ ROM_LOAD16_BYTE( "265d.c5", 0x2000000, 0x800000, CRC(74bba7c6) SHA1(E01ADC7A4633BC0951B9B4F09ABC07D728E9A2D9) )
+ ROM_LOAD16_BYTE( "265d.c6", 0x2000001, 0x800000, CRC(e20d2216) SHA1(5D28EEA7B581E780B78F391A8179F1678EE0D9A5) )
+ ROM_LOAD16_BYTE( "265d.c7", 0x3000000, 0x800000, CRC(8a5b561c) SHA1(A19697D4C2CC8EDEBC669C95AE1DB4C8C2A70B2C) )
+ ROM_LOAD16_BYTE( "265d.c8", 0x3000001, 0x800000, CRC(bef667a3) SHA1(D5E8BC185DCF63343D129C31D2DDAB9F723F1A12) )
+ROM_END
+
+
+ROM_START( kogd )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "361d.p1", 0x000000, 0x100000, CRC(58F20940) SHA1(693819ff606b7c7b27400586f34073625445c412) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "361d.s1", CRC(EC690592) SHA1(a5af2880778a1904dd6c6006be769ea36b15dae3) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "361d.c1", 0x0000000, 0x800000, CRC(8E964A75) SHA1(e7611d7908ca056f4b3c0ae2c4da8f6809db4556) )
+ ROM_LOAD16_BYTE( "361d.c2", 0x0000001, 0x800000, CRC(D102DE17) SHA1(e98f33a4d16ebda6cf369b92480d4306c780cf8b) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "361d.c5", 0x2000000, 0x400000, CRC(C2698BE3) SHA1(0b1d414549947f6c29ebc71057aef96634656f32) )
+ ROM_LOAD16_BYTE( "361d.c6", 0x2000001, 0x400000, CRC(B057DB30) SHA1(2f342f03848f3f553bc70b2dbee2cc388a344a06) )
+ROM_END
+
+ROM_START( kogf )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "361f.p1", 0x000000, 0x200000, CRC(65dc181d) SHA1(663e1296fd808b3fc14fc94c3b82f9097db455e3) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x200000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "361f.s1", CRC(a5a76377) SHA1(e35f195dcd0a4ab156d6d52e8cc8fddddc602fc1) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "5232-c1a.bin", 0x0000000, 0x800000, CRC(4eab9b0a) SHA1(a6f6b755215a3f41474e0a76b5463303a522c2d3) )
+ ROM_LOAD16_BYTE( "5232-c2a.bin", 0x0000001, 0x800000, CRC(697f8fd0) SHA1(5784464c2357ccef8e6e79b6298843fc3d13b39c) )
+ ROM_LOAD16_BYTE( "5232-c1b.bin", 0x1000000, 0x800000, CRC(1143fdf3) SHA1(9dc5fe9a3b7599380db62095880e2d6f237a41bd) )
+ ROM_LOAD16_BYTE( "5232-c2b.bin", 0x1000001, 0x800000, CRC(ea82cf8f) SHA1(3d9ab64b69cecd6b3950839ac2c6d151ad66dcf8) )
+ ROM_LOAD16_BYTE( "5232-c3.bin", 0x2000000, 0x400000, CRC(abd1be07) SHA1(857eb68bbee4538770bbfa77aaa540d61ab0abcd) )
+ ROM_LOAD16_BYTE( "5232-c4.bin", 0x2000001, 0x400000, CRC(d2bd967b) SHA1(c494e0a98e127d37ca360a28accc167fa50fb626) )
+ROM_END
+
+ROM_START( koggv ) // multijet
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "5232-p1.bin", 0x000000, 0x200000, CRC(d2413ec6) SHA1(c0bf409d1e714cba5fdc6f79e4c2aec805316634) )
+ ROM_LOAD16_WORD_SWAP( "361gv.p2", 0x200000, 0x400000, CRC(7e15cd55) SHA1(608d3d1af20b63f67eb29420f725a30305b9b33a) )
+
+ NEO_SFIX_128K( "5232-s1.bin", CRC(0bef69da) SHA1(80918586e694dce35c4dba796eb18abf6a070ebb) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "5232-c1a.bin", 0x0000000, 0x800000, CRC(4eab9b0a) SHA1(a6f6b755215a3f41474e0a76b5463303a522c2d3) )
+ ROM_LOAD16_BYTE( "5232-c2a.bin", 0x0000001, 0x800000, CRC(697f8fd0) SHA1(5784464c2357ccef8e6e79b6298843fc3d13b39c) )
+ ROM_LOAD16_BYTE( "5232-c1b.bin", 0x1000000, 0x800000, CRC(1143fdf3) SHA1(9dc5fe9a3b7599380db62095880e2d6f237a41bd) )
+ ROM_LOAD16_BYTE( "5232-c2b.bin", 0x1000001, 0x800000, CRC(ea82cf8f) SHA1(3d9ab64b69cecd6b3950839ac2c6d151ad66dcf8) )
+ ROM_LOAD16_BYTE( "5232-c3.bin", 0x2000000, 0x400000, CRC(abd1be07) SHA1(857eb68bbee4538770bbfa77aaa540d61ab0abcd) )
+ ROM_LOAD16_BYTE( "5232-c4.bin", 0x2000001, 0x400000, CRC(d2bd967b) SHA1(c494e0a98e127d37ca360a28accc167fa50fb626) )
+ROM_END
+
+ROM_START( kogmxpls ) // all confirmed
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "361mxpls.p1", 0x000000, 0x100000, CRC(cb135241) SHA1(7a84ee0965a2dcd9f7a884e7fe862ce98b2a7921) )
+ ROM_LOAD16_WORD_SWAP( "361mxpls.p2", 0x100000, 0x400000, CRC(fef47a50) SHA1(cbe7361c06a14a2cdec6276745d3c93ba8fff211) )
+
+ NEO_SFIX_128K( "361mxpls.s1", CRC(4a46bdd3) SHA1(f0cd23f1b7f916c5cec36a8c379071e142849d61) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "361d.c1", 0x0000000, 0x800000, CRC(8E964A75) SHA1(e7611d7908ca056f4b3c0ae2c4da8f6809db4556) )
+ ROM_LOAD16_BYTE( "361d.c2", 0x0000001, 0x800000, CRC(D102DE17) SHA1(e98f33a4d16ebda6cf369b92480d4306c780cf8b) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "361mxpls.c5", 0x2000000, 0x400000, CRC(aec1c48b) SHA1(d6f4a8033f9b5c1942b2061f92b1bf7a13adaaae) )
+ ROM_LOAD16_BYTE( "361mxpls.c6", 0x2000001, 0x400000, CRC(eed0c40a) SHA1(efa91e7a9f4a30f4a86d0c4dd1d76754331de99f) )
+ROM_END
+
+ROM_START( kogplus )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "361plus.p1", 0x000000, 0x200000, CRC(0338f453) SHA1(01ea5ca6cc632d732a539542dc163bbafb071b88) )
+ ROM_LOAD16_WORD_SWAP( "kf97-p2p.bin", 0x200000, 0x400000, CRC(5502b020) SHA1(37c48198d8b3798910a44075782cd1a20b687b4a) )
+
+ NEO_SFIX_128K( "361plus.s1", CRC(6271e9ba) SHA1(5bc94426e916d0ad16b6660bfc2b9e21f717fa32) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "5232-c1a.bin", 0x0000000, 0x800000, CRC(4eab9b0a) SHA1(a6f6b755215a3f41474e0a76b5463303a522c2d3) )
+ ROM_LOAD16_BYTE( "5232-c2a.bin", 0x0000001, 0x800000, CRC(697f8fd0) SHA1(5784464c2357ccef8e6e79b6298843fc3d13b39c) )
+ ROM_LOAD16_BYTE( "5232-c1b.bin", 0x1000000, 0x800000, CRC(1143fdf3) SHA1(9dc5fe9a3b7599380db62095880e2d6f237a41bd) )
+ ROM_LOAD16_BYTE( "5232-c2b.bin", 0x1000001, 0x800000, CRC(ea82cf8f) SHA1(3d9ab64b69cecd6b3950839ac2c6d151ad66dcf8) )
+ ROM_LOAD16_BYTE( "5232-c3.bin", 0x2000000, 0x400000, CRC(abd1be07) SHA1(857eb68bbee4538770bbfa77aaa540d61ab0abcd) )
+ ROM_LOAD16_BYTE( "5232-c4.bin", 0x2000001, 0x400000, CRC(d2bd967b) SHA1(c494e0a98e127d37ca360a28accc167fa50fb626) )
+ROM_END
+
+ROM_START( kogplus1 ) // multijet kogplus
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "361plus1.p1", 0x000000, 0x100000, CRC(98241142) SHA1(9bb2c382063f84920841463f9b4ca87862e336de) )
+ ROM_LOAD16_WORD_SWAP( "kf97-p2p.bin", 0x100000, 0x400000, CRC(5502b020) SHA1(37c48198d8b3798910a44075782cd1a20b687b4a) )
+
+ NEO_SFIX_128K( "361plus1.s1", CRC(1a58ab17) SHA1(964ef974570923743124f4879baa8582ed4fc9f9) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "361d.c1", 0x0000000, 0x800000, CRC(8E964A75) SHA1(e7611d7908ca056f4b3c0ae2c4da8f6809db4556) )
+ ROM_LOAD16_BYTE( "361d.c2", 0x0000001, 0x800000, CRC(D102DE17) SHA1(e98f33a4d16ebda6cf369b92480d4306c780cf8b) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "361d.c5", 0x2000000, 0x400000, CRC(C2698BE3) SHA1(0b1d414549947f6c29ebc71057aef96634656f32) )
+ ROM_LOAD16_BYTE( "361d.c6", 0x2000001, 0x400000, CRC(B057DB30) SHA1(2f342f03848f3f553bc70b2dbee2cc388a344a06) )
+ROM_END
+
+ROM_START( kogplusf )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "361plusf.p1", 0x000000, 0x100000, CRC(24d0684b) SHA1(e2bf117e8dcad6e058cc0d2702f9e373e9aebb29) )
+ ROM_LOAD16_WORD_SWAP( "kf97-p2p.bin", 0x100000, 0x400000, CRC(5502b020) SHA1(37c48198d8b3798910a44075782cd1a20b687b4a) )
+
+ NEO_SFIX_128K( "361plusf.s1", CRC(3e6d76ec) SHA1(f16912d6d199f1c917efa3caece52e5730dfeb5f) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "361d.c1", 0x0000000, 0x800000, CRC(8E964A75) SHA1(e7611d7908ca056f4b3c0ae2c4da8f6809db4556) )
+ ROM_LOAD16_BYTE( "361d.c2", 0x0000001, 0x800000, CRC(D102DE17) SHA1(e98f33a4d16ebda6cf369b92480d4306c780cf8b) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "361d.c5", 0x2000000, 0x400000, CRC(C2698BE3) SHA1(0b1d414549947f6c29ebc71057aef96634656f32) )
+ ROM_LOAD16_BYTE( "361d.c6", 0x2000001, 0x400000, CRC(B057DB30) SHA1(2f342f03848f3f553bc70b2dbee2cc388a344a06) )
+ROM_END
+
+ROM_START( kogsm ) // multijet
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "361sm.p1", 0x000000, 0x200000, CRC(ae5162bd) SHA1(657379fe98783d24657a70afae8aa77cc1bbb650) )
+ ROM_LOAD16_WORD_SWAP( "361sm.p2", 0x200000, 0x400000, CRC(8e9d7a72) SHA1(7410b21dea0aabde492f1a788a76322a8ded867d) )
+
+ NEO_SFIX_128K( "361sm.s1", CRC(e7519d5a) SHA1(b637db97c596b412b959e08ed60ea44517a44534) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "5232-c1a.bin", 0x0000000, 0x800000, CRC(4eab9b0a) SHA1(a6f6b755215a3f41474e0a76b5463303a522c2d3) )
+ ROM_LOAD16_BYTE( "5232-c2a.bin", 0x0000001, 0x800000, CRC(697f8fd0) SHA1(5784464c2357ccef8e6e79b6298843fc3d13b39c) )
+ ROM_LOAD16_BYTE( "5232-c1b.bin", 0x1000000, 0x800000, CRC(1143fdf3) SHA1(9dc5fe9a3b7599380db62095880e2d6f237a41bd) )
+ ROM_LOAD16_BYTE( "5232-c2b.bin", 0x1000001, 0x800000, CRC(ea82cf8f) SHA1(3d9ab64b69cecd6b3950839ac2c6d151ad66dcf8) )
+ ROM_LOAD16_BYTE( "5232-c3.bin", 0x2000000, 0x400000, CRC(abd1be07) SHA1(857eb68bbee4538770bbfa77aaa540d61ab0abcd) )
+ ROM_LOAD16_BYTE( "5232-c4.bin", 0x2000001, 0x400000, CRC(d2bd967b) SHA1(c494e0a98e127d37ca360a28accc167fa50fb626) )
+ROM_END
+
+
+
+GAME( 2003, cthd2k3b, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, cthd2003, ROT0, "HunterX Hacker", "Crouching Tiger Hidden Dragon 2003 (Add Char)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, cthd2k3a, cthd2k3b, neogeo_noslot, neogeo, neogeo_hbmame, cthd2k3a, ROT0, "hack", "Crouching Tiger Hidden Dragon 2003 (set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, ct2k3eh, cthd2k3b, neogeo_noslot, neogeo, neogeo_noslot_state, cthd2003, ROT0, "Fighters Kim and HunterX Hacker", "Crouching Tiger Hidden Dragon 2003 (Add Char - Pow hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, ct2k3ifz, cthd2k3b, neogeo_noslot, neogeo, neogeo_noslot_state, cthd2003, ROT0, "hack", "Crouching Tiger Hidden Dragon 2003 (Ice FZ Remix)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, ct2k3k3, cthd2k3b, neogeo_noslot, neogeo, neogeo_noslot_state, cthd2003, ROT0, "Jason/K3", "Crouching Tiger Hidden Dragon 2003 Remix v1.2 (Diff Move - 030823)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, ct2k3k3o, cthd2k3b, neogeo_noslot, neogeo, neogeo_noslot_state, cthd2003, ROT0, "Jason/K3", "Crouching Tiger Hidden Dragon 2003 Remix (Diff Move - 030818)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, ct2k3spi, cthd2k3b, neogeo_noslot, neogeo, neogeo_noslot_state, cthd2003, ROT0, "hack", "Crouching Tiger Hidden Dragon 2003 (hack spi)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, ct2k3xx, cthd2k3b, neogeo_noslot, neogeo, neogeo_noslot_state, cthd2003, ROT0, "hack", "Crouching Tiger Hidden Dragon 2003 (Blood Edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, ct2k3ys, cthd2k3b, neogeo_noslot, neogeo, neogeo_noslot_state, cthd2003, ROT0, "hack", "Crouching Tiger Hidden Dragon 2003 (Red Fire Remix)", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, kof2k4mp, kof2002, neogeo_noslot, neogeo, neogeo_noslot_state, kof2k4se, ROT0, "hack", "Kof Special Edition 2004 Magic PLUS", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, kof2k4omg, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "KofOnTeam", "Kof Special Edition 2004 (Omega v0.5 (KOFONTEAM))", MACHINE_SUPPORTS_SAVE )
+GAME( 2010, kof2k4ru, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "MVS Hacks PSP", "Kof Special Edition 2004 REMIX ULTRA V2.6F", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, kof2k4se1, kof2002, neogeo_noslot, neogeo, neogeo_noslot_state, kof2k4se, ROT0, "hack", "Kof Special Edition 2004 (hack 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, kof2k4se2, kof2002, neogeo_noslot, neogeo, neogeo_noslot_state, kof2k4se, ROT0, "hack", "Kof Special Edition 2004 (hack 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, kof2k4seb, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Dragon Co.", "Kof Special Edition 2004 (portuguese)", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, kof2k4spl, kof2002, neogeo_noslot, neogeo, neogeo_noslot_state, kof2k4se, ROT0, "hack", "Kof Special Edition 2004 Plus", MACHINE_SUPPORTS_SAVE )
+GAME( 2008, kof2k8uni, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof 10th Anniversary 2008 Unique", MACHINE_SUPPORTS_SAVE )
+GAME( 2005, kof10thbr, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Neogeo BR Team", "Kof 10th Anniversary (Brazil by NeogeoBRteam)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 2005, kof10thd16, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof10thu, ROT0, "hack", "Kof 10th Anniversary UNIQUE (hack d16)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 2015, kof10thep15,kof2002, neogeo_noslot, neogeo, neogeo_noslot_state, kf10thep, ROT0, "hack", "Kof 10th Anniversary Extra Plus (hack 15)", MACHINE_SUPPORTS_SAVE )
+GAME( 2005, kof10thu, kof2002, neogeo_noslot, neogeo, neogeo_hbmame, kof10thu, ROT0, "hack", "Kof 10th Anniversary UNIQUE (hack u)", MACHINE_SUPPORTS_SAVE )
+GAME( 2005, kof10thub, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof 10th Anniversary UNIQUE (portuguese edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 2005, kof10thud, kof2002, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Kof 10th Anniversary UNIQUE (decrypted)", MACHINE_SUPPORTS_SAVE )
+GAME( 2005, kogd, kof97, hbmame_kog, neogeo, neogeo_hbmame, kogd, ROT0, "hack", "King of Gladiator (fully decrypted)", MACHINE_SUPPORTS_SAVE )
+GAME( 2005, kogf, kof97, neogeo_kog, neogeo, neogeo_noslot_kog_state, kog, ROT0, "Zxbdragon / Ryu", "King of Gladiator (Fixed Edition by Zxbdragon & Ryu)", MACHINE_SUPPORTS_SAVE )
+GAME( 2005, koggv, kof97, neogeo_kog, neogeo, neogeo_noslot_kog_state, kog, ROT0, "hack", "King of Gladiator (Green Edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 2005, kogmxpls, kof97, hbmame_kog, neogeo, neogeo_hbmame, kogd, ROT0, "hack", "King of Gladiator MIX PLUS-EX", MACHINE_SUPPORTS_SAVE )
+GAME( 2005, kogplus, kof97, neogeo_kog, neogeo, neogeo_noslot_kog_state, kog, ROT0, "hack", "King of Gladiator PLUS (set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2005, kogplus1, kof97, hbmame_kog, neogeo, neogeo_hbmame, kogd, ROT0, "hack", "King of Gladiator PLUS (set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2005, kogplusf, kof97, hbmame_kog, neogeo, neogeo_hbmame, kogd, ROT0, "Zxbdragon / Ryu", "King of Gladiator PLUS (Fixed Edition by Zxbdragon & Ryu)", MACHINE_SUPPORTS_SAVE )
+GAME( 2005, kogsm, kof97, neogeo_kog, neogeo, neogeo_noslot_kog_state, kog, ROT0, "KalceTin", "King of Gladiator (Smoke Version v1.5 Fix by KalceTin (KOFONTEAM))", MACHINE_SUPPORTS_SAVE )
+///GAME( 2004, kf2k4pls, kof2002, neogeo_noslot, neogeo, neogeo_state, kf2k4pls, ROT0, "hack", "Kof2004 Special Edition Plus", MACHINE_SUPPORTS_SAVE )
+///GAME( 2004, kof10thd, kof2002, neogeo_noslot, neogeo, neogeo_state, kof10thd, ROT0, "hack", "Kof 10th Anniversary (Fully Decrypted)", MACHINE_SUPPORTS_SAVE )
+
+
+//PSmame
+
+
+ROM_START( kf2k5hc1 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "5006-p2a.bin", 0x000000, 0x400000, CRC(ced883a2) SHA1(f93db4d74ce0a73a3e9631966fee37be22470c89) )
+ ROM_LOAD16_WORD_SWAP( "5006hc01.sp2", 0x400000, 0x400000, CRC(966fa849) SHA1(79e6f383ff31293a7a708177d8e0ef4962440a49) )
+
+ NEO_SFIX_128K( "5006hc01.s1", CRC(3aab9bee) SHA1(7353471a2b74d44bbde63b2a4006b0a1291e135a) )
+
+ NEO_BIOS_AUDIO_128K( "5006-m1.bin", CRC(9050bfe7) SHA1(765bf3d954f775231b7ef2504bb844cd0b29e3f7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "kf10-v1.bin", 0x000000, 0x800000, CRC(0fc9a58d) SHA1(9d79ef00e2c2abd9f29af5521c2fbe5798bf336f) )
+ ROM_LOAD( "kf10-v2.bin", 0x800000, 0x800000, CRC(b8c475a4) SHA1(10caf9c69927a223445d2c4b147864c02ce520a8) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "kf10-c1a.bin", 0x0000000, 0x400000, CRC(3bbc0364) SHA1(e8aa7ff82f151ce1db56f259377b64cceef85af0) )
+ ROM_LOAD16_BYTE( "kf10-c2a.bin", 0x0000001, 0x400000, CRC(91230075) SHA1(d9098e05a7ba6008661147b6bf8bc2f494b8b72b) )
+ ROM_LOAD16_BYTE( "kf10-c1b.bin", 0x0800000, 0x400000, CRC(b5abfc28) SHA1(eabf60992bb3485c95330065294071ec155bfe7c) )
+ ROM_LOAD16_BYTE( "kf10-c2b.bin", 0x0800001, 0x400000, CRC(6cc4c6e1) SHA1(be824a944e745ee18efdc45c81fd496a4d624b9c) )
+ ROM_LOAD16_BYTE( "kf10-c3a.bin", 0x1000000, 0x400000, CRC(5b3d4a16) SHA1(93ac1cd7739100f8c32732644f81f2a19837b131) )
+ ROM_LOAD16_BYTE( "kf10-c4a.bin", 0x1000001, 0x400000, CRC(c6f3419b) SHA1(340c17a73aeb7bf8a6209f8459e6f00000075b50) )
+ ROM_LOAD16_BYTE( "kf10-c3b.bin", 0x1800000, 0x400000, CRC(9d2bba19) SHA1(5ebbd0af3f83a60e33c8ccb743e3d5f5a96f1273) )
+ ROM_LOAD16_BYTE( "kf10-c4b.bin", 0x1800001, 0x400000, CRC(5a4050cb) SHA1(8fd2291f349efa1ed5cd37ad4e273b60fe831a77) )
+ ROM_LOAD16_BYTE( "kf10-c5a.bin", 0x2000000, 0x400000, CRC(a289d1e1) SHA1(50c7d7ebde6e118a01036cc3e40827fcd9f0d3fd) )
+ ROM_LOAD16_BYTE( "kf10-c6a.bin", 0x2000001, 0x400000, CRC(e6494b5d) SHA1(18e064b9867ae0b0794065f8dbefd486620419db) )
+ ROM_LOAD16_BYTE( "kf10-c5b.bin", 0x2800000, 0x400000, CRC(404fff02) SHA1(56d1b32c87ea4885e49264e8b21846e465a20e1f) )
+ ROM_LOAD16_BYTE( "kf10-c6b.bin", 0x2800001, 0x400000, CRC(f2ccfc9e) SHA1(69db7fac7023785ab94ea711a72dbc2826cfe1a3) )
+ ROM_LOAD16_BYTE( "kf10-c7a.bin", 0x3000000, 0x400000, CRC(be79c5a8) SHA1(ded3c5eb3571647f50533eb682c2675372ace3fb) )
+ ROM_LOAD16_BYTE( "kf10-c8a.bin", 0x3000001, 0x400000, CRC(a5952ca4) SHA1(76dbb3cb45ce5a4beffa1ed29491204fc6617e42) )
+ ROM_LOAD16_BYTE( "kf10-c7b.bin", 0x3800000, 0x400000, CRC(3fdb3542) SHA1(7d2050752a2064cd6729f483a0da93808e2c6033) )
+ ROM_LOAD16_BYTE( "kf10-c8b.bin", 0x3800001, 0x400000, CRC(661b7a52) SHA1(0ae2ad2389134892f156337332b77adade3ddad1) )
+ROM_END
+
+GAME( 2004, kf2k5hc1, kof2002, neogeo_noslot, neogeo, neogeo_noslot_state, kf2k5uni, ROT0, "bootleg", "The King of Fighters 10th Anniversary (Description Of Unknown Origin 01)", MACHINE_SUPPORTS_SAVE )
+
+
+ROM_START( ct2k3k3s01 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "5003hc01.p1", 0x000000, 0x100000, CRC(b7b6637e) SHA1(d526d333af2043d286762f850ff967db71a21fb3) )
+ ROM_LOAD16_WORD_SWAP( "5003-p2.bin", 0x100000, 0x400000, CRC(adc1c22b) SHA1(271e0629989257a0d21d280c05df53df259414b1) )
+
+ NEO_SFIX_128K( "5003-s1.bin", CRC(5ba29aab) SHA1(e7ea67268a10243693bff722e6fd2276ca540acf) )
+
+ NEO_BIOS_AUDIO_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) )
+ ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) )
+ ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) )
+ ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) )
+ ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) )
+ ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) )
+ ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) )
+ ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) )
+ROM_END
+
+ROM_START( ct2k3k3s02 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "5003-p1.bin", 0x000000, 0x100000, CRC(bb7602c1) SHA1(abf329a40f34c88f7325b255e3bc090db1edaca4) )
+ ROM_LOAD16_WORD_SWAP( "5003hc02.sp2", 0x100000, 0x400000, CRC(022f81be) SHA1(6fc4357d76767b5015c85e45bb9f3d2135bdf136) )
+
+ NEO_SFIX_128K( "5003-s1.bin", CRC(5ba29aab) SHA1(e7ea67268a10243693bff722e6fd2276ca540acf) )
+
+ NEO_BIOS_AUDIO_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) )
+ ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) )
+ ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) )
+ ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) )
+ ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) )
+ ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) )
+ ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) )
+ ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) )
+ROM_END
+
+ROM_START( ct2k3k3s03 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "5003-p1.bin", 0x000000, 0x100000, CRC(bb7602c1) SHA1(abf329a40f34c88f7325b255e3bc090db1edaca4) )
+ ROM_LOAD16_WORD_SWAP( "5003hc03.sp2", 0x100000, 0x400000, CRC(29be83a2) SHA1(98f3a2eabe271bf9e645cc3215156a76c50a1efb) )
+
+ NEO_SFIX_128K( "5003-s1.bin", CRC(5ba29aab) SHA1(e7ea67268a10243693bff722e6fd2276ca540acf) )
+
+ NEO_BIOS_AUDIO_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) )
+ ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) )
+ ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) )
+ ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) )
+ ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) )
+ ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) )
+ ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) )
+ ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) )
+ROM_END
+
+ROM_START( ct2k3k3s04 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "5003-p1.bin", 0x000000, 0x100000, CRC(bb7602c1) SHA1(abf329a40f34c88f7325b255e3bc090db1edaca4) )
+ ROM_LOAD16_WORD_SWAP( "5003hc04.sp2", 0x100000, 0x400000, CRC(a9a1d51f) SHA1(8949ae7db016ca8d6a198c2a6f3ecd1e6d240e32) )
+
+ NEO_SFIX_128K( "5003-s1.bin", CRC(5ba29aab) SHA1(e7ea67268a10243693bff722e6fd2276ca540acf) )
+
+ NEO_BIOS_AUDIO_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) )
+ ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) )
+ ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) )
+ ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) )
+ ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) )
+ ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) )
+ ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) )
+ ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) )
+ROM_END
+
+ROM_START( ct2k3k3s05 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "5003-p1.bin", 0x000000, 0x100000, CRC(bb7602c1) SHA1(abf329a40f34c88f7325b255e3bc090db1edaca4) )
+ ROM_LOAD16_WORD_SWAP( "5003hc05.sp2", 0x100000, 0x400000, CRC(2a744f55) SHA1(c8918042b22bc5fea7d4691aef5400035ee8cb10) )
+
+ NEO_SFIX_128K( "5003-s1.bin", CRC(5ba29aab) SHA1(e7ea67268a10243693bff722e6fd2276ca540acf) )
+
+ NEO_BIOS_AUDIO_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) )
+ ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) )
+ ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) )
+ ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) )
+ ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) )
+ ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) )
+ ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) )
+ ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) )
+ROM_END
+
+ROM_START( ct2k3k3s06 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "5003-p1.bin", 0x000000, 0x100000, CRC(bb7602c1) SHA1(abf329a40f34c88f7325b255e3bc090db1edaca4) )
+ ROM_LOAD16_WORD_SWAP( "5003hc06.sp2", 0x100000, 0x400000, CRC(58a7d32b) SHA1(6ef557f8d52991853f42c7979e80e37967b28f7e) )
+
+ NEO_SFIX_128K( "5003-s1.bin", CRC(5ba29aab) SHA1(e7ea67268a10243693bff722e6fd2276ca540acf) )
+
+ NEO_BIOS_AUDIO_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) )
+ ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) )
+ ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) )
+ ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) )
+ ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) )
+ ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) )
+ ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) )
+ ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) )
+ROM_END
+
+ROM_START( ct2k3k3s07 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "5003-p1.bin", 0x000000, 0x100000, CRC(bb7602c1) SHA1(abf329a40f34c88f7325b255e3bc090db1edaca4) )
+ ROM_LOAD16_WORD_SWAP( "5003hc07.sp2", 0x100000, 0x400000, CRC(51f19223) SHA1(c132631d4bdbf07dc54b857a734bbe933f31d679) )
+
+ NEO_SFIX_128K( "5003-s1.bin", CRC(5ba29aab) SHA1(e7ea67268a10243693bff722e6fd2276ca540acf) )
+
+ NEO_BIOS_AUDIO_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) )
+ ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) )
+ ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) )
+ ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) )
+ ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) )
+ ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) )
+ ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) )
+ ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) )
+ROM_END
+
+ROM_START( ct2k3k3s08 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "5003-p1.bin", 0x000000, 0x100000, CRC(bb7602c1) SHA1(abf329a40f34c88f7325b255e3bc090db1edaca4) )
+ ROM_LOAD16_WORD_SWAP( "5003hc08.sp2", 0x100000, 0x400000, CRC(6950c6da) SHA1(2d20098e9d21852c645afa0ed1dda3f8c1123e60) )
+
+ NEO_SFIX_128K( "5003-s1.bin", CRC(5ba29aab) SHA1(e7ea67268a10243693bff722e6fd2276ca540acf) )
+
+ NEO_BIOS_AUDIO_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) )
+ ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) )
+ ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) )
+ ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) )
+ ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) )
+ ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) )
+ ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) )
+ ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) )
+ROM_END
+
+ROM_START( ct2k3k3s09 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "5003-p1.bin", 0x000000, 0x100000, CRC(bb7602c1) SHA1(abf329a40f34c88f7325b255e3bc090db1edaca4) )
+ ROM_LOAD16_WORD_SWAP( "5003hc09.sp2", 0x100000, 0x400000, CRC(9fbc129b) SHA1(fa35b4edf0afae48ddc3b8ce4181ac56dd8979cc) )
+
+ NEO_SFIX_128K( "5003-s1.bin", CRC(5ba29aab) SHA1(e7ea67268a10243693bff722e6fd2276ca540acf) )
+
+ NEO_BIOS_AUDIO_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) )
+ ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) )
+ ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) )
+ ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) )
+ ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) )
+ ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) )
+ ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) )
+ ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) )
+ROM_END
+
+ROM_START( ct2k3k3s10 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "5003-p1.bin", 0x000000, 0x100000, CRC(bb7602c1) SHA1(abf329a40f34c88f7325b255e3bc090db1edaca4) )
+ ROM_LOAD16_WORD_SWAP( "5003hc10.sp2", 0x100000, 0x400000, CRC(76cc1979) SHA1(a3d504717fd42707a14d32941fe96a16b9c39d82) )
+
+ NEO_SFIX_128K( "5003-s1.bin", CRC(5ba29aab) SHA1(e7ea67268a10243693bff722e6fd2276ca540acf) )
+
+ NEO_BIOS_AUDIO_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) )
+ ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) )
+ ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) )
+ ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) )
+ ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) )
+ ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) )
+ ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) )
+ ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) )
+ROM_END
+
+ROM_START( ct2k3k3s11 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "5003-p1.bin", 0x000000, 0x100000, CRC(bb7602c1) SHA1(abf329a40f34c88f7325b255e3bc090db1edaca4) )
+ ROM_LOAD16_WORD_SWAP( "5003hc11.sp2", 0x100000, 0x400000, CRC(41bca96f) SHA1(abcea93491fcc5327d8e9a078e856c1c7c51b0a5) )
+
+ NEO_SFIX_128K( "5003-s1.bin", CRC(5ba29aab) SHA1(e7ea67268a10243693bff722e6fd2276ca540acf) )
+
+ NEO_BIOS_AUDIO_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) )
+ ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) )
+ ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) )
+ ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) )
+ ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) )
+ ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) )
+ ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) )
+ ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) )
+ROM_END
+
+ROM_START( ct2k3k3s12 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "5003-p1.bin", 0x000000, 0x100000, CRC(bb7602c1) SHA1(abf329a40f34c88f7325b255e3bc090db1edaca4) )
+ ROM_LOAD16_WORD_SWAP( "5003hc12.sp2", 0x100000, 0x400000, CRC(76aac418) SHA1(f0a4fdd0bb1e7d954db88c979a9d90c2e7696adc) )
+
+ NEO_SFIX_128K( "5003-s1.bin", CRC(5ba29aab) SHA1(e7ea67268a10243693bff722e6fd2276ca540acf) )
+
+ NEO_BIOS_AUDIO_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) )
+ ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) )
+ ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) )
+ ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) )
+ ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) )
+ ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) )
+ ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) )
+ ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) )
+ROM_END
+
+ROM_START( ct2k3k3s13 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "5003-p1.bin", 0x000000, 0x100000, CRC(bb7602c1) SHA1(abf329a40f34c88f7325b255e3bc090db1edaca4) )
+ ROM_LOAD16_WORD_SWAP( "5003hc13.sp2", 0x100000, 0x400000, CRC(5410caec) SHA1(aba69bcca1f9145a0d886dbafb98328b0637311d) )
+
+ NEO_SFIX_128K( "5003-s1.bin", CRC(5ba29aab) SHA1(e7ea67268a10243693bff722e6fd2276ca540acf) )
+
+ NEO_BIOS_AUDIO_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) )
+ ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) )
+ ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) )
+ ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) )
+ ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) )
+ ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) )
+ ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) )
+ ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) )
+ROM_END
+
+ROM_START( ct2k3k3s14 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "5003-p1.bin", 0x000000, 0x100000, CRC(bb7602c1) SHA1(abf329a40f34c88f7325b255e3bc090db1edaca4) )
+ ROM_LOAD16_WORD_SWAP( "5003hc14.sp2", 0x100000, 0x400000, CRC(32ef43d9) SHA1(f6d17038b1667bbe537506ca0b1ee785b8170969) )
+
+ NEO_SFIX_128K( "5003-s1.bin", CRC(5ba29aab) SHA1(e7ea67268a10243693bff722e6fd2276ca540acf) )
+
+ NEO_BIOS_AUDIO_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) )
+ ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) )
+ ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) )
+ ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) )
+ ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) )
+ ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) )
+ ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) )
+ ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) )
+ROM_END
+
+ROM_START( ct2k3k3s15 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "5003-p1.bin", 0x000000, 0x100000, CRC(bb7602c1) SHA1(abf329a40f34c88f7325b255e3bc090db1edaca4) )
+ ROM_LOAD16_WORD_SWAP( "5003hc15.sp2", 0x100000, 0x400000, CRC(3a22c8d6) SHA1(c216383f3d7734ff2cca0387d56149390b549e56) )
+
+ NEO_SFIX_128K( "5003-s1.bin", CRC(5ba29aab) SHA1(e7ea67268a10243693bff722e6fd2276ca540acf) )
+
+ NEO_BIOS_AUDIO_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) )
+ ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) )
+ ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) )
+ ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) )
+ ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) )
+ ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) )
+ ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) )
+ ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) )
+ROM_END
+
+ROM_START( ct2k3k3s16 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "5003-p1.bin", 0x000000, 0x100000, CRC(bb7602c1) SHA1(abf329a40f34c88f7325b255e3bc090db1edaca4) )
+ ROM_LOAD16_WORD_SWAP( "5003hc16.sp2", 0x100000, 0x400000, CRC(a2134584) SHA1(f0433b23f38acb3a6d7a6e73a8a99269bc3636e3) )
+
+ NEO_SFIX_128K( "5003-s1.bin", CRC(5ba29aab) SHA1(e7ea67268a10243693bff722e6fd2276ca540acf) )
+
+ NEO_BIOS_AUDIO_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) )
+ ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) )
+ ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) )
+ ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) )
+ ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) )
+ ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) )
+ ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) )
+ ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) )
+ROM_END
+
+ROM_START( ct2k3k3s17 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "5003-p1.bin", 0x000000, 0x100000, CRC(bb7602c1) SHA1(abf329a40f34c88f7325b255e3bc090db1edaca4) )
+ ROM_LOAD16_WORD_SWAP( "5003hc17.sp2", 0x100000, 0x400000, CRC(e6dd976f) SHA1(6c051e669079d7e81bdbc184a5d2b044629c4b5d) )
+
+ NEO_SFIX_128K( "5003-s1.bin", CRC(5ba29aab) SHA1(e7ea67268a10243693bff722e6fd2276ca540acf) )
+
+ NEO_BIOS_AUDIO_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) )
+ ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) )
+ ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) )
+ ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) )
+ ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) )
+ ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) )
+ ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) )
+ ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) )
+ROM_END
+
+ROM_START( ct2k3k3s18 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "5003-p1.bin", 0x000000, 0x100000, CRC(bb7602c1) SHA1(abf329a40f34c88f7325b255e3bc090db1edaca4) )
+ ROM_LOAD16_WORD_SWAP( "5003hc18.sp2", 0x100000, 0x400000, CRC(ae65de71) SHA1(0f92d59aa1266dc119ad9b60c7ed782eea0722f0) )
+
+ NEO_SFIX_128K( "5003-s1.bin", CRC(5ba29aab) SHA1(e7ea67268a10243693bff722e6fd2276ca540acf) )
+
+ NEO_BIOS_AUDIO_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) )
+ ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) )
+ ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) )
+ ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) )
+ ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) )
+ ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) )
+ ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) )
+ ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) )
+ROM_END
+
+ROM_START( ct2k3k3s19 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "5003-p1.bin", 0x000000, 0x100000, CRC(bb7602c1) SHA1(abf329a40f34c88f7325b255e3bc090db1edaca4) )
+ ROM_LOAD16_WORD_SWAP( "5003hc19.sp2", 0x100000, 0x400000, CRC(896fa4a3) SHA1(10f19c2a6f35a7bbe0ee94da1abf3868ec91902b) )
+
+ NEO_SFIX_128K( "5003-s1.bin", CRC(5ba29aab) SHA1(e7ea67268a10243693bff722e6fd2276ca540acf) )
+
+ NEO_BIOS_AUDIO_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) )
+ ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) )
+ ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) )
+ ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) )
+ ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) )
+ ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) )
+ ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) )
+ ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) )
+ROM_END
+
+ROM_START( ct2k3k3s20 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "5003-p1.bin", 0x000000, 0x100000, CRC(bb7602c1) SHA1(abf329a40f34c88f7325b255e3bc090db1edaca4) )
+ ROM_LOAD16_WORD_SWAP( "5003hc20.sp2", 0x100000, 0x400000, CRC(e8029e68) SHA1(3b6d14c8100561b519ebeb02f3db03b6ce5503d4) )
+
+ NEO_SFIX_128K( "5003-s1.bin", CRC(5ba29aab) SHA1(e7ea67268a10243693bff722e6fd2276ca540acf) )
+
+ NEO_BIOS_AUDIO_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) )
+ ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) )
+ ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) )
+ ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) )
+ ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) )
+ ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) )
+ ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) )
+ ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) )
+ROM_END
+
+ROM_START( ct2k3k3s21 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "5003hc21.p1", 0x000000, 0x100000, CRC(884b78eb) SHA1(953f6e992900f5e3e0039bb26eaf72963199737e) )
+ ROM_LOAD16_WORD_SWAP( "5003-p2.bin", 0x100000, 0x400000, CRC(adc1c22b) SHA1(271e0629989257a0d21d280c05df53df259414b1) )
+
+ NEO_SFIX_128K( "5003-s1.bin", CRC(5ba29aab) SHA1(e7ea67268a10243693bff722e6fd2276ca540acf) )
+
+ NEO_BIOS_AUDIO_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) )
+ ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) )
+ ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) )
+ ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) )
+ ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) )
+ ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) )
+ ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) )
+ ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) )
+ROM_END
+
+ROM_START( ct2k3k3s22 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "5003-p1.bin", 0x000000, 0x100000, CRC(bb7602c1) SHA1(abf329a40f34c88f7325b255e3bc090db1edaca4) )
+ ROM_LOAD16_WORD_SWAP( "5003hc22.sp2", 0x100000, 0x400000, CRC(b600bf71) SHA1(6a45ea9593c6230a2db5be4beebac62abfe49ff4) )
+
+ NEO_SFIX_128K( "5003-s1.bin", CRC(5ba29aab) SHA1(e7ea67268a10243693bff722e6fd2276ca540acf) )
+
+ NEO_BIOS_AUDIO_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) )
+ ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) )
+ ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) )
+ ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) )
+ ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) )
+ ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) )
+ ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) )
+ ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) )
+ROM_END
+
+ROM_START( ct2k3k3s23 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "5003-p1.bin", 0x000000, 0x100000, CRC(bb7602c1) SHA1(abf329a40f34c88f7325b255e3bc090db1edaca4) )
+ ROM_LOAD16_WORD_SWAP( "5003hc23.sp2", 0x100000, 0x400000, CRC(4397111b) SHA1(bf7735b69493057f6473193429ffc71309f88456) )
+
+ NEO_SFIX_128K( "5003-s1.bin", CRC(5ba29aab) SHA1(e7ea67268a10243693bff722e6fd2276ca540acf) )
+
+ NEO_BIOS_AUDIO_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) )
+ ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) )
+ ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) )
+ ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) )
+ ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) )
+ ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) )
+ ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) )
+ ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) )
+ROM_END
+
+ROM_START( ct2k3k3s24 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "5003-p1.bin", 0x000000, 0x100000, CRC(bb7602c1) SHA1(abf329a40f34c88f7325b255e3bc090db1edaca4) )
+ ROM_LOAD16_WORD_SWAP( "5003hc24.sp2", 0x100000, 0x400000, CRC(d2d68691) SHA1(78682946dbfa6eec2412ffa7d5b442b5acc40221) )
+
+ NEO_SFIX_128K( "5003-s1.bin", CRC(5ba29aab) SHA1(e7ea67268a10243693bff722e6fd2276ca540acf) )
+
+ NEO_BIOS_AUDIO_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) )
+ ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) )
+ ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) )
+ ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) )
+ ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) )
+ ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) )
+ ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) )
+ ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) )
+ROM_END
+
+ROM_START( ct2k3k3s25 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "5003-p1.bin", 0x000000, 0x100000, CRC(bb7602c1) SHA1(abf329a40f34c88f7325b255e3bc090db1edaca4) )
+ ROM_LOAD16_WORD_SWAP( "5003hc25.sp2", 0x100000, 0x400000, CRC(b9955b13) SHA1(a0cb5640be22ef923722958938f363a97209701e) )
+
+ NEO_SFIX_128K( "5003-s1.bin", CRC(5ba29aab) SHA1(e7ea67268a10243693bff722e6fd2276ca540acf) )
+
+ NEO_BIOS_AUDIO_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) )
+ ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) )
+ ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) )
+ ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) )
+ ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) )
+ ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) )
+ ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) )
+ ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) )
+ROM_END
+
+ROM_START( ct2k3k3s26 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "5003-p1.bin", 0x000000, 0x100000, CRC(bb7602c1) SHA1(abf329a40f34c88f7325b255e3bc090db1edaca4) )
+ ROM_LOAD16_WORD_SWAP( "5003hc26.sp2", 0x100000, 0x400000, CRC(5a2cb741) SHA1(911993d61962ebcb5305fafa2ea834f65ede8c72) )
+
+ NEO_SFIX_128K( "5003-s1.bin", CRC(5ba29aab) SHA1(e7ea67268a10243693bff722e6fd2276ca540acf) )
+
+ NEO_BIOS_AUDIO_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) )
+ ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) )
+ ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) )
+ ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) )
+ ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) )
+ ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) )
+ ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) )
+ ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) )
+ROM_END
+
+ROM_START( ct2k3k3s27 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "5003-p1.bin", 0x000000, 0x100000, CRC(bb7602c1) SHA1(abf329a40f34c88f7325b255e3bc090db1edaca4) )
+ ROM_LOAD16_WORD_SWAP( "5003hc27.sp2", 0x100000, 0x400000, CRC(f12c5527) SHA1(e014f4aedea83fa83242945a72b4c160615f30f2) )
+
+ NEO_SFIX_128K( "5003-s1.bin", CRC(5ba29aab) SHA1(e7ea67268a10243693bff722e6fd2276ca540acf) )
+
+ NEO_BIOS_AUDIO_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) )
+ ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) )
+ ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) )
+ ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) )
+ ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) )
+ ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) )
+ ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) )
+ ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) )
+ROM_END
+
+ROM_START( ct2k3k3s28 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "5003-p1.bin", 0x000000, 0x100000, CRC(bb7602c1) SHA1(abf329a40f34c88f7325b255e3bc090db1edaca4) )
+ ROM_LOAD16_WORD_SWAP( "5003hc28.sp2", 0x100000, 0x400000, CRC(7efd4ff0) SHA1(fc389f13a010fb3b9f194c55bf14283093116883) )
+
+ NEO_SFIX_128K( "5003-s1.bin", CRC(5ba29aab) SHA1(e7ea67268a10243693bff722e6fd2276ca540acf) )
+
+ NEO_BIOS_AUDIO_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) )
+ ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) )
+ ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) )
+ ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) )
+ ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) )
+ ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) )
+ ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) )
+ ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) )
+ROM_END
+
+ROM_START( ct2k3k3s29 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "5003-p1.bin", 0x000000, 0x100000, CRC(bb7602c1) SHA1(abf329a40f34c88f7325b255e3bc090db1edaca4) )
+ ROM_LOAD16_WORD_SWAP( "5003hc29.sp2", 0x100000, 0x400000, CRC(d8827726) SHA1(6ef174dd7848ddcc56c52fd79f857eae76469350) )
+
+ NEO_SFIX_128K( "5003-s1.bin", CRC(5ba29aab) SHA1(e7ea67268a10243693bff722e6fd2276ca540acf) )
+
+ NEO_BIOS_AUDIO_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) )
+ ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) )
+ ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) )
+ ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) )
+ ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) )
+ ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) )
+ ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) )
+ ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) )
+ROM_END
+
+ROM_START( ct2k3k3s30 )
+ ROM_REGION( 0xD00000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "5003hc30.bin", 0x000000, 0x454F4E, CRC(3f840b2a) SHA1(9822a33c82ba7d25299b58d0994537d0e5d77994) )
+ ROM_LOAD16_WORD_SWAP( "5003hc30.sp2", 0x100000, 0x454F50, CRC(3e6a6c33) SHA1(3acf6347f05bcc98aeb399cb48f1f91d297f4515) )
+
+ NEO_SFIX_128K( "5003-s1.bin", CRC(5ba29aab) SHA1(e7ea67268a10243693bff722e6fd2276ca540acf) )
+
+ NEO_BIOS_AUDIO_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) )
+ ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) )
+ ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) )
+ ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) )
+ ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) )
+ ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) )
+ ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) )
+ ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) )
+ROM_END
+
+ROM_START( ct2k3k3s31 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "5003hc31.bin", 0x000000, 0x100000, CRC(ab5c4de0) SHA1(ca9a6bfd4c32d791ecabb34ccbf2cbf0e84f97d5) )
+ ROM_LOAD16_WORD_SWAP( "5003-p2.bin", 0x100000, 0x400000, CRC(adc1c22b) SHA1(271e0629989257a0d21d280c05df53df259414b1) )
+
+ NEO_SFIX_128K( "5003-s1.bin", CRC(5ba29aab) SHA1(e7ea67268a10243693bff722e6fd2276ca540acf) )
+
+ NEO_BIOS_AUDIO_128K( "5003-m1.bin", CRC(1a8c274b) SHA1(5f6f9c533f4a296a18c741ce59a69cf6f5c836b9) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "262-v1-08-e0.v1", 0x000000, 0x400000, CRC(83d49ecf) SHA1(2f2c116e45397652e77fcf5d951fa5f71b639572) )
+ ROM_LOAD( "262-v2-08-e0.v2", 0x400000, 0x400000, CRC(003f1843) SHA1(bdd58837ad542548bd4053c262f558af88e3b989) )
+ ROM_LOAD( "262-v3-08-e0.v3", 0x800000, 0x400000, CRC(2ae38dbe) SHA1(4e82b7dd3b899d61907620517a5a27bdaba0725d) )
+ ROM_LOAD( "262-v4-08-e0.v4", 0xc00000, 0x400000, CRC(26ec4dd9) SHA1(8bd68d95a2d913be41a51f51e48dbe3bff5924fb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "5003-c1.bin", 0x0000000, 0x800000, CRC(68f54b67) SHA1(e2869709b11ea2846799fe431211c83e928e103e) )
+ ROM_LOAD16_BYTE( "5003-c2.bin", 0x0000001, 0x800000, CRC(2f8849d5) SHA1(7ef74981aa056f5acab4ddabffd3e98b4cb970be) )
+ ROM_LOAD16_BYTE( "5003-c3.bin", 0x1000000, 0x800000, CRC(ac4aff71) SHA1(c983f642e68deaa40fee3e208f2dd55f3bacbdc1) )
+ ROM_LOAD16_BYTE( "5003-c4.bin", 0x1000001, 0x800000, CRC(afef5d66) SHA1(39fe785563fbea54bba88de60dcc62e2458bd74a) )
+ ROM_LOAD16_BYTE( "5003-c5.bin", 0x2000000, 0x800000, CRC(c7c1ae50) SHA1(f54f5be7513a5ce2f01ab107a2b26f6a9ee1f2a9) )
+ ROM_LOAD16_BYTE( "5003-c6.bin", 0x2000001, 0x800000, CRC(613197f9) SHA1(6d1fefa1be81b79e251e55a1352544c0298e4674) )
+ ROM_LOAD16_BYTE( "5003-c7.bin", 0x3000000, 0x800000, CRC(64ddfe0f) SHA1(361f3f4618009bf6419961266eb9ab5002bef53c) )
+ ROM_LOAD16_BYTE( "5003-c8.bin", 0x3000001, 0x800000, CRC(917a1439) SHA1(6f28d1d7c6edee1283f25e632c69204dbebe40af) )
+ROM_END
+
+ROM_START( kogs01 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "5232hc01.bin", 0x000000, 0x200000, CRC(d5e38f20) SHA1(a74ebcfc3aeb6f39ee7cdbb19cce811620f84775) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x200000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "5232-s1.bin", CRC(0bef69da) SHA1(80918586e694dce35c4dba796eb18abf6a070ebb) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "5232-c1a.bin", 0x0000000, 0x800000, CRC(4eab9b0a) SHA1(a6f6b755215a3f41474e0a76b5463303a522c2d3) )
+ ROM_LOAD16_BYTE( "5232-c2a.bin", 0x0000001, 0x800000, CRC(697f8fd0) SHA1(5784464c2357ccef8e6e79b6298843fc3d13b39c) )
+ ROM_LOAD16_BYTE( "5232-c1b.bin", 0x1000000, 0x800000, CRC(1143fdf3) SHA1(9dc5fe9a3b7599380db62095880e2d6f237a41bd) )
+ ROM_LOAD16_BYTE( "5232-c2b.bin", 0x1000001, 0x800000, CRC(ea82cf8f) SHA1(3d9ab64b69cecd6b3950839ac2c6d151ad66dcf8) )
+ ROM_LOAD16_BYTE( "5232-c3.bin", 0x2000000, 0x400000, CRC(abd1be07) SHA1(857eb68bbee4538770bbfa77aaa540d61ab0abcd) )
+ ROM_LOAD16_BYTE( "5232-c4.bin", 0x2000001, 0x400000, CRC(d2bd967b) SHA1(c494e0a98e127d37ca360a28accc167fa50fb626) )
+ROM_END
+
+ROM_START( kogs02 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "5232hc02.bin", 0x000000, 0x200000, CRC(627ea9fb) SHA1(62e3174f5fd4303329b2dfa76f9771ef70669e10) )
+ ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x200000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) )
+
+ NEO_SFIX_128K( "5232-s1.bin", CRC(0bef69da) SHA1(80918586e694dce35c4dba796eb18abf6a070ebb) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "5232-c1a.bin", 0x0000000, 0x800000, CRC(4eab9b0a) SHA1(a6f6b755215a3f41474e0a76b5463303a522c2d3) )
+ ROM_LOAD16_BYTE( "5232-c2a.bin", 0x0000001, 0x800000, CRC(697f8fd0) SHA1(5784464c2357ccef8e6e79b6298843fc3d13b39c) )
+ ROM_LOAD16_BYTE( "5232-c1b.bin", 0x1000000, 0x800000, CRC(1143fdf3) SHA1(9dc5fe9a3b7599380db62095880e2d6f237a41bd) )
+ ROM_LOAD16_BYTE( "5232-c2b.bin", 0x1000001, 0x800000, CRC(ea82cf8f) SHA1(3d9ab64b69cecd6b3950839ac2c6d151ad66dcf8) )
+ ROM_LOAD16_BYTE( "5232-c3.bin", 0x2000000, 0x400000, CRC(abd1be07) SHA1(857eb68bbee4538770bbfa77aaa540d61ab0abcd) )
+ ROM_LOAD16_BYTE( "5232-c4.bin", 0x2000001, 0x400000, CRC(d2bd967b) SHA1(c494e0a98e127d37ca360a28accc167fa50fb626) )
+ROM_END
+
+ROM_START( kogs03 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "5232hc03.p1", 0x000000, 0x100000, CRC(d8af5723) SHA1(a7324f1951188f849c6de82ed345e87f73bcc13e) )
+ ROM_LOAD16_WORD_SWAP( "kf97-p2p.bin", 0x100000, 0x400000, CRC(5502b020) SHA1(37c48198d8b3798910a44075782cd1a20b687b4a) )
+
+ NEO_SFIX_128K( "5232hc03.s1", CRC(bbb5e7aa) SHA1(01ea2fad80be029b6d0a37c1067692be956b0df6) )
+
+ NEO_BIOS_AUDIO_128K( "232-m1.m1", CRC(45348747) SHA1(ed77cbae2b208d1177a9f5f6e8cd57070e90b65b) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "232-v1.v1", 0x000000, 0x400000, CRC(22a2b5b5) SHA1(ebdbc977332e6d93e266755000b43857e0082965) )
+ ROM_LOAD( "232-v2.v2", 0x400000, 0x400000, CRC(2304e744) SHA1(98d283e2bcc9291a53f52afd35ef76dfb0828432) )
+ ROM_LOAD( "232-v3.v3", 0x800000, 0x400000, CRC(759eb954) SHA1(54e77c4e9e6b89458e59824e478ddc33a9c72655) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "361d.c1", 0x0000000, 0x800000, CRC(8E964A75) SHA1(e7611d7908ca056f4b3c0ae2c4da8f6809db4556) )
+ ROM_LOAD16_BYTE( "361d.c2", 0x0000001, 0x800000, CRC(D102DE17) SHA1(e98f33a4d16ebda6cf369b92480d4306c780cf8b) )
+ ROM_LOAD16_BYTE( "232-c3.c3", 0x1000000, 0x800000, CRC(581d6618) SHA1(14d3124a08ded59f86932c6b28e1a4e48c564ccd) )
+ ROM_LOAD16_BYTE( "232-c4.c4", 0x1000001, 0x800000, CRC(49bb1e68) SHA1(f769c1bd1b019521111ff3f0d22c63cb1f2640ef) )
+ ROM_LOAD16_BYTE( "361d.c5", 0x2000000, 0x400000, CRC(C2698BE3) SHA1(0b1d414549947f6c29ebc71057aef96634656f32) )
+ ROM_LOAD16_BYTE( "361d.c6", 0x2000001, 0x400000, CRC(B057DB30) SHA1(2f342f03848f3f553bc70b2dbee2cc388a344a06) )
+ROM_END
+
+GAME( 2003, ct2k3k3s01, cthd2k3b, neogeo_noslot, neogeo, neogeo_noslot_state, cthd2003, ROT0, "Hacks", "Crouching Tiger Hidden Dragon 2003 (Description Of Unknown Origin 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, ct2k3k3s02, cthd2k3b, neogeo_noslot, neogeo, neogeo_noslot_state, cthd2003, ROT0, "Hacks", "Crouching Tiger Hidden Dragon 2003 (Description Of Unknown Origin 02)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, ct2k3k3s03, cthd2k3b, neogeo_noslot, neogeo, neogeo_noslot_state, cthd2003, ROT0, "Hacks", "Crouching Tiger Hidden Dragon 2003 (Description Of Unknown Origin 03)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, ct2k3k3s04, cthd2k3b, neogeo_noslot, neogeo, neogeo_noslot_state, cthd2003, ROT0, "Hacks", "Crouching Tiger Hidden Dragon 2003 (Description Of Unknown Origin 04)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, ct2k3k3s05, cthd2k3b, neogeo_noslot, neogeo, neogeo_noslot_state, cthd2003, ROT0, "Hacks", "Crouching Tiger Hidden Dragon 2003 (Description Of Unknown Origin 05)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, ct2k3k3s06, cthd2k3b, neogeo_noslot, neogeo, neogeo_noslot_state, cthd2003, ROT0, "Hacks", "Crouching Tiger Hidden Dragon 2003 (Colours And Green Timecounter Kanyero V1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, ct2k3k3s07, cthd2k3b, neogeo_noslot, neogeo, neogeo_noslot_state, cthd2003, ROT0, "Hacks", "Crouching Tiger Hidden Dragon 2003 (Colours And Green Timecounter Kanyero V1 Blood Ayane)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, ct2k3k3s08, cthd2k3b, neogeo_noslot, neogeo, neogeo_noslot_state, cthd2003, ROT0, "Hacks", "Crouching Tiger Hidden Dragon 2003 (Colours And Green Timecounter Kanyero V1 Iceblue Zhangshee)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, ct2k3k3s09, cthd2k3b, neogeo_noslot, neogeo, neogeo_noslot_state, cthd2003, ROT0, "Hacks", "Crouching Tiger Hidden Dragon 2003 (Colours And Green Timecounter Kanyero V2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, ct2k3k3s10, cthd2k3b, neogeo_noslot, neogeo, neogeo_noslot_state, cthd2003, ROT0, "Hacks", "Crouching Tiger Hidden Dragon 2003 (Colours And Green Timecounter Kanyero V2 Blood Ayane)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, ct2k3k3s11, cthd2k3b, neogeo_noslot, neogeo, neogeo_noslot_state, cthd2003, ROT0, "Hacks", "Crouching Tiger Hidden Dragon 2003 (Colours And Green Timecounter Kanyero V2 Iceblue Zhangshee)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, ct2k3k3s12, cthd2k3b, neogeo_noslot, neogeo, neogeo_noslot_state, cthd2003, ROT0, "Hacks", "Crouching Tiger Hidden Dragon 2003 (Colormod Tcwlee)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, ct2k3k3s13, cthd2k3b, neogeo_noslot, neogeo, neogeo_noslot_state, cthd2003, ROT0, "Hacks", "Crouching Tiger Hidden Dragon 2003 (Colormod Tcwlee Blood Ayane)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, ct2k3k3s14, cthd2k3b, neogeo_noslot, neogeo, neogeo_noslot_state, cthd2003, ROT0, "Hacks", "Crouching Tiger Hidden Dragon 2003 (Colormod Tcwlee Iceblue Zhangshee)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, ct2k3k3s15, cthd2k3b, neogeo_noslot, neogeo, neogeo_noslot_state, cthd2003, ROT0, "Hacks", "Crouching Tiger Hidden Dragon 2003 (colormod V2 Tcwlee)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, ct2k3k3s16, cthd2k3b, neogeo_noslot, neogeo, neogeo_noslot_state, cthd2003, ROT0, "Hacks", "Crouching Tiger Hidden Dragon 2003 (Colormod V2 Tcwlee Blood Ayane)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, ct2k3k3s17, cthd2k3b, neogeo_noslot, neogeo, neogeo_noslot_state, cthd2003, ROT0, "Hacks", "Crouching Tiger Hidden Dragon 2003 (Colormod V2 Tcwlee Iceblue Zhangshee)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, ct2k3k3s18, cthd2k3b, neogeo_noslot, neogeo, neogeo_noslot_state, cthd2003, ROT0, "Hacks", "Crouching Tiger Hidden Dragon 2003 (Colors V3 Tcwlee Kanyero)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, ct2k3k3s19, cthd2k3b, neogeo_noslot, neogeo, neogeo_noslot_state, cthd2003, ROT0, "Hacks", "Crouching Tiger Hidden Dragon 2003 (Colors V3 Tcwlee Kanyero Blood Ayane)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, ct2k3k3s20, cthd2k3b, neogeo_noslot, neogeo, neogeo_noslot_state, cthd2003, ROT0, "Hacks", "Crouching Tiger Hidden Dragon 2003 (Colors V3 Tcwlee Kanyero Iceblue Zhangshee)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, ct2k3k3s21, cthd2k3b, neogeo_noslot, neogeo, neogeo_noslot_state, cthd2003, ROT0, "Hacks", "Crouching Tiger Hidden Dragon 2003 (Jason Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, ct2k3k3s22, cthd2k3b, neogeo_noslot, neogeo, neogeo_noslot_state, cthd2003, ROT0, "Hacks", "Crouching Tiger Hidden Dragon 2003 (Original Restoration Blood Fixed)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, ct2k3k3s23, cthd2k3b, neogeo_noslot, neogeo, neogeo_noslot_state, cthd2003, ROT0, "Hacks", "Crouching Tiger Hidden Dragon 2003 (Original Restoration Fixed)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, ct2k3k3s24, cthd2k3b, neogeo_noslot, neogeo, neogeo_noslot_state, cthd2003, ROT0, "Hacks", "Crouching Tiger Hidden Dragon 2003 (Original Restoration Iceblue Fixed)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, ct2k3k3s25, cthd2k3b, neogeo_noslot, neogeo, neogeo_noslot_state, cthd2003, ROT0, "Hacks", "Crouching Tiger Hidden Dragon 2003 (Colormod V1 Tcwlee Fixed)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, ct2k3k3s26, cthd2k3b, neogeo_noslot, neogeo, neogeo_noslot_state, cthd2003, ROT0, "Hacks", "Crouching Tiger Hidden Dragon 2003 (Colormod V2 Tcwlee Fixed)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, ct2k3k3s27, cthd2k3b, neogeo_noslot, neogeo, neogeo_noslot_state, cthd2003, ROT0, "Hacks", "Crouching Tiger Hidden Dragon 2003 (Colormod V3 Tcwlee Blood Ayane Fixed)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, ct2k3k3s28, cthd2k3b, neogeo_noslot, neogeo, neogeo_noslot_state, cthd2003, ROT0, "Hacks", "Crouching Tiger Hidden Dragon 2003 (Colormod V3 Tcwlee Fixed)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, ct2k3k3s29, cthd2k3b, neogeo_noslot, neogeo, neogeo_noslot_state, cthd2003, ROT0, "Hacks", "Crouching Tiger Hidden Dragon 2003 (Colormod V3 Tcwlee Iceblue Zhangshee Fixed)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, ct2k3k3s30, cthd2k3b, neogeo_noslot, neogeo, neogeo_noslot_state, cthd2003, ROT0, "Hacks", "Crouching Tiger Hidden Dragon 2003 (Colormod V3 Tcwlee Jack 0x)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, ct2k3k3s31, cthd2k3b, neogeo_noslot, neogeo, neogeo_noslot_state, cthd2003, ROT0, "Hacks", "Crouching Tiger Hidden Dragon 2003 (Description Of Unknown Origin 06)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kogs01, kof97, neogeo_kog, neogeo, neogeo_noslot_kog_state, kog, ROT0, "Hacks", "King of Gladiator ( Description Of Unknown Origin 01 )", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kogs02, kof97, neogeo_kog, neogeo, neogeo_noslot_kog_state, kog, ROT0, "Hacks", "King of Gladiator ( Description Of Unknown Origin 02 )", MACHINE_SUPPORTS_SAVE )
+GAME( 2005, kogs03, kof97, hbmame_kog, neogeo, neogeo_hbmame, kogd, ROT0, "Hacks", "King of Gladiator Plus (Description Of Unknown Origin 01)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/nglastblade.cpp b/src/hbmame/drivers/nglastblade.cpp
new file mode 100644
index 00000000000..a5b5716e30a
--- /dev/null
+++ b/src/hbmame/drivers/nglastblade.cpp
@@ -0,0 +1,1269 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+// The Last Blade
+
+
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, lbsp ) // thx FBA
+{
+ DRIVER_INIT_CALL(neogeo);
+ uint32_t i;
+ uint16_t *rom = (uint16_t *)memregion("maincpu")->base();
+ for (i = 0; i < 0x100000/2; i++)
+ {
+ if (rom[i] == 0x4e7d) rom[i] = 0x4e71;
+ if (rom[i] == 0x4e7c) rom[i] = 0x4e75;
+ }
+ for (i = 0x700000/2; i < 0x720000/2; i++)
+ {
+ if (rom[i] == 0x4e7d) rom[i] = 0x4e71;
+ if (rom[i] == 0x4e7c) rom[i] = 0x4e75;
+ }
+ rom[0x69c10/2] = 0x303c; // 4ef9
+ rom[0x69c12/2] = 0x0b37; // 0091
+ rom[0x69c14/2] = 0x323c; // 03c4
+ rom[0x69c16/2] = 0x0013; // 4e7d
+ rom[0x711036/2] = 0x4e75; // lbsp2 only, already this value in lbsp
+}
+
+
+
+ROM_START( lba )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "234a.p1", 0x000000, 0x080000, CRC(3893d38b) SHA1(204d3f61dbeb82b1c942cda7089f24f997925adb) )
+ ROM_LOAD16_WORD_SWAP( "234a.p2", 0x080000, 0x080000, CRC(9470c788) SHA1(41671491cef3020b895e42935208e92abec09ed9) )
+ ROM_LOAD16_WORD_SWAP( "234a.p3", 0x100000, 0x200000, CRC(b45e631c) SHA1(5c88e6f6c1e343df24f2acf8bb4aed77954f7b36) )
+ ROM_LOAD16_WORD_SWAP( "234a.p4", 0x300000, 0x200000, CRC(aa34e149) SHA1(113930343f8efa603823a619964e90f1b06df2ab) )
+
+ NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) )
+
+ NEO_BIOS_AUDIO_128K( "234-m1.m1", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "234-v1.v1", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) )
+ ROM_LOAD( "234-v2.v2", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) )
+ ROM_LOAD( "234-v3.v3", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) )
+ ROM_LOAD( "234-v4.v4", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20A1F4833E5E29BA0073C1712D7A17AB7A2A035C) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "234-c1.c1", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) )
+ ROM_LOAD16_BYTE( "234-c2.c2", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) )
+ ROM_LOAD16_BYTE( "234-c3.c3", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) )
+ ROM_LOAD16_BYTE( "234-c4.c4", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) )
+ ROM_LOAD16_BYTE( "234-c5.c5", 0x2000000, 0x400000, CRC(1ba80cee) SHA1(0c59057183b5279b747e73213b4cd3c6d7ad9eb1) )
+ ROM_LOAD16_BYTE( "234-c6.c6", 0x2000001, 0x400000, CRC(beafd091) SHA1(55df9cc128eb0f00856de3996c946e3efe8f09a5) )
+ROM_END
+
+ROM_START( lbb ) /* The Last Blade - Hack by Kurouri and Wesker - (Can choose 'fair' Kaede, Musashi and Kagami - Wesker mod.) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "234b.p1", 0x000000, 0x100000, CRC(bdbc598e) SHA1(2fc8937cf07c0a402a36859a6a5231e37d092e91) )
+ ROM_LOAD16_WORD_SWAP( "234-p2.sp2", 0x100000, 0x400000, CRC(0fdc289e) SHA1(1ff31c0b0f4f9ddbedaf4bcf927faaae81892ec7) )
+
+ NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) )
+
+ NEO_BIOS_AUDIO_128K( "234-m1.m1", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "234-v1.v1", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) )
+ ROM_LOAD( "234-v2.v2", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) )
+ ROM_LOAD( "234-v3.v3", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) )
+ ROM_LOAD( "234-v4.v4", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20A1F4833E5E29BA0073C1712D7A17AB7A2A035C) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "234-c1.c1", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) )
+ ROM_LOAD16_BYTE( "234-c2.c2", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) )
+ ROM_LOAD16_BYTE( "234-c3.c3", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) )
+ ROM_LOAD16_BYTE( "234-c4.c4", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) )
+ ROM_LOAD16_BYTE( "234-c5.c5", 0x2000000, 0x400000, CRC(1ba80cee) SHA1(0c59057183b5279b747e73213b4cd3c6d7ad9eb1) )
+ ROM_LOAD16_BYTE( "234-c6.c6", 0x2000001, 0x400000, CRC(beafd091) SHA1(55df9cc128eb0f00856de3996c946e3efe8f09a5) )
+ROM_END
+
+ROM_START( lbboss ) /* The Last Blade - Hack by Kurouri - (Can choose 'fair' Kaede, Musashi and Kagami) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "234j.p1", 0x000000, 0x100000, CRC(84fb4bc9) SHA1(bf5dec15a6c2e1557b7436c48ea58193c6ad83bb) )
+ ROM_LOAD16_WORD_SWAP( "234-p2.sp2", 0x100000, 0x400000, CRC(0fdc289e) SHA1(1ff31c0b0f4f9ddbedaf4bcf927faaae81892ec7) )
+
+ NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) )
+
+ NEO_BIOS_AUDIO_128K( "234-m1.m1", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "234-v1.v1", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) )
+ ROM_LOAD( "234-v2.v2", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) )
+ ROM_LOAD( "234-v3.v3", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) )
+ ROM_LOAD( "234-v4.v4", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20A1F4833E5E29BA0073C1712D7A17AB7A2A035C) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "234-c1.c1", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) )
+ ROM_LOAD16_BYTE( "234-c2.c2", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) )
+ ROM_LOAD16_BYTE( "234-c3.c3", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) )
+ ROM_LOAD16_BYTE( "234-c4.c4", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) )
+ ROM_LOAD16_BYTE( "234-c5.c5", 0x2000000, 0x400000, CRC(1ba80cee) SHA1(0c59057183b5279b747e73213b4cd3c6d7ad9eb1) )
+ ROM_LOAD16_BYTE( "234-c6.c6", 0x2000001, 0x400000, CRC(beafd091) SHA1(55df9cc128eb0f00856de3996c946e3efe8f09a5) )
+ROM_END
+
+ROM_START( lbd ) // lastbdb in multijet
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "234d.p1", 0x000000, 0x100000, CRC(9b6d9e2a) SHA1(c65c6fc01536e5aa2fa3bcbc89a9f4db3607de2e) )
+ ROM_LOAD16_WORD_SWAP( "234-p2.sp2", 0x100000, 0x400000, CRC(0fdc289e) SHA1(1ff31c0b0f4f9ddbedaf4bcf927faaae81892ec7) )
+
+ NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) )
+
+ NEO_BIOS_AUDIO_128K( "234-m1.m1", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "234-v1.v1", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) )
+ ROM_LOAD( "234-v2.v2", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) )
+ ROM_LOAD( "234-v3.v3", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) )
+ ROM_LOAD( "234-v4.v4", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20A1F4833E5E29BA0073C1712D7A17AB7A2A035C) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "234-c1.c1", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) )
+ ROM_LOAD16_BYTE( "234-c2.c2", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) )
+ ROM_LOAD16_BYTE( "234-c3.c3", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) )
+ ROM_LOAD16_BYTE( "234-c4.c4", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) )
+ ROM_LOAD16_BYTE( "234-c5.c5", 0x2000000, 0x400000, CRC(1ba80cee) SHA1(0c59057183b5279b747e73213b4cd3c6d7ad9eb1) )
+ ROM_LOAD16_BYTE( "234-c6.c6", 0x2000001, 0x400000, CRC(beafd091) SHA1(55df9cc128eb0f00856de3996c946e3efe8f09a5) )
+ROM_END
+
+ROM_START( lbe ) /* The Last Blade - Super Enhance Hack by Creamymami, Kurouri, wesker and Ydmis - (Can choose 'fair' Kaede, Musashi and Kagami - ultra kill start is max - ultra power hack - Wesker mod.) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "234e.p1", 0x000000, 0x100000, CRC(0b06430e) SHA1(813cb410b993b032d96e7f34db0a1ee1a57c52f2) )
+ ROM_LOAD16_WORD_SWAP( "234-p2.sp2", 0x100000, 0x400000, CRC(0fdc289e) SHA1(1ff31c0b0f4f9ddbedaf4bcf927faaae81892ec7) )
+
+ NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) )
+
+ NEO_BIOS_AUDIO_128K( "234-m1.m1", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "234-v1.v1", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) )
+ ROM_LOAD( "234-v2.v2", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) )
+ ROM_LOAD( "234-v3.v3", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) )
+ ROM_LOAD( "234-v4.v4", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20A1F4833E5E29BA0073C1712D7A17AB7A2A035C) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "234-c1.c1", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) )
+ ROM_LOAD16_BYTE( "234-c2.c2", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) )
+ ROM_LOAD16_BYTE( "234-c3.c3", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) )
+ ROM_LOAD16_BYTE( "234-c4.c4", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) )
+ ROM_LOAD16_BYTE( "234-c5.c5", 0x2000000, 0x400000, CRC(1ba80cee) SHA1(0c59057183b5279b747e73213b4cd3c6d7ad9eb1) )
+ ROM_LOAD16_BYTE( "234-c6.c6", 0x2000001, 0x400000, CRC(beafd091) SHA1(55df9cc128eb0f00856de3996c946e3efe8f09a5) )
+ROM_END
+
+ROM_START( lbeh ) /* The Last Blade - Enhance by Kurouri and Ydmis - (Can choose 'fair' Kaede, Musashi and Kagami - ultra kill start is max) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "234eh.p1", 0x000000, 0x100000, CRC(d3a5d3dc) SHA1(004fe19505d08a314e208508078001425da6560d) )
+ ROM_LOAD16_WORD_SWAP( "234-p2.sp2", 0x100000, 0x400000, CRC(0fdc289e) SHA1(1ff31c0b0f4f9ddbedaf4bcf927faaae81892ec7) )
+
+ NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) )
+
+ NEO_BIOS_AUDIO_128K( "234-m1.m1", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "234-v1.v1", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) )
+ ROM_LOAD( "234-v2.v2", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) )
+ ROM_LOAD( "234-v3.v3", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) )
+ ROM_LOAD( "234-v4.v4", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20A1F4833E5E29BA0073C1712D7A17AB7A2A035C) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "234-c1.c1", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) )
+ ROM_LOAD16_BYTE( "234-c2.c2", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) )
+ ROM_LOAD16_BYTE( "234-c3.c3", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) )
+ ROM_LOAD16_BYTE( "234-c4.c4", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) )
+ ROM_LOAD16_BYTE( "234-c5.c5", 0x2000000, 0x400000, CRC(1ba80cee) SHA1(0c59057183b5279b747e73213b4cd3c6d7ad9eb1) )
+ ROM_LOAD16_BYTE( "234-c6.c6", 0x2000001, 0x400000, CRC(beafd091) SHA1(55df9cc128eb0f00856de3996c946e3efe8f09a5) )
+ROM_END
+
+ROM_START( lbeh2 ) /* The Last Blade - Hack by Ydmis - (Can choose Musashi and Kagami) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "234eh2.p1", 0x000000, 0x100000, CRC(12d80904) SHA1(cf7be0aab4f26b38cf2ea09dca8db1e0a4b90629) )
+ ROM_LOAD16_WORD_SWAP( "234-p2.sp2", 0x100000, 0x400000, CRC(0fdc289e) SHA1(1ff31c0b0f4f9ddbedaf4bcf927faaae81892ec7) )
+
+ NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) )
+
+ NEO_BIOS_AUDIO_128K( "234-m1.m1", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "234-v1.v1", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) )
+ ROM_LOAD( "234-v2.v2", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) )
+ ROM_LOAD( "234-v3.v3", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) )
+ ROM_LOAD( "234-v4.v4", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20A1F4833E5E29BA0073C1712D7A17AB7A2A035C) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "234-c1.c1", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) )
+ ROM_LOAD16_BYTE( "234-c2.c2", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) )
+ ROM_LOAD16_BYTE( "234-c3.c3", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) )
+ ROM_LOAD16_BYTE( "234-c4.c4", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) )
+ ROM_LOAD16_BYTE( "234-c5.c5", 0x2000000, 0x400000, CRC(1ba80cee) SHA1(0c59057183b5279b747e73213b4cd3c6d7ad9eb1) )
+ ROM_LOAD16_BYTE( "234-c6.c6", 0x2000001, 0x400000, CRC(beafd091) SHA1(55df9cc128eb0f00856de3996c946e3efe8f09a5) )
+ROM_END
+
+ROM_START( lbeho ) /* The Last Blade - Enhance by Ydmis - (Can choose Musashi and Kagami - ultra kill start is max) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "234eho.p1", 0x000000, 0x100000, CRC(c09d3ff3) SHA1(311a5f98d78c8fe7d551a92ac08c47b52271fb7b) )
+ ROM_LOAD16_WORD_SWAP( "234-p2.sp2", 0x100000, 0x400000, CRC(0fdc289e) SHA1(1ff31c0b0f4f9ddbedaf4bcf927faaae81892ec7) )
+
+ NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) )
+
+ NEO_BIOS_AUDIO_128K( "234-m1.m1", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "234-v1.v1", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) )
+ ROM_LOAD( "234-v2.v2", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) )
+ ROM_LOAD( "234-v3.v3", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) )
+ ROM_LOAD( "234-v4.v4", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20A1F4833E5E29BA0073C1712D7A17AB7A2A035C) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "234-c1.c1", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) )
+ ROM_LOAD16_BYTE( "234-c2.c2", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) )
+ ROM_LOAD16_BYTE( "234-c3.c3", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) )
+ ROM_LOAD16_BYTE( "234-c4.c4", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) )
+ ROM_LOAD16_BYTE( "234-c5.c5", 0x2000000, 0x400000, CRC(1ba80cee) SHA1(0c59057183b5279b747e73213b4cd3c6d7ad9eb1) )
+ ROM_LOAD16_BYTE( "234-c6.c6", 0x2000001, 0x400000, CRC(beafd091) SHA1(55df9cc128eb0f00856de3996c946e3efe8f09a5) )
+ROM_END
+
+ROM_START( lbha )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "234ha.p1", 0x000000, 0x100000, CRC(b8d24c55) SHA1(d954f5b6a35877369ebc9cbcfcb2f26bc72a653a) )
+ ROM_LOAD16_WORD_SWAP( "234-p2.sp2", 0x100000, 0x400000, CRC(0fdc289e) SHA1(1ff31c0b0f4f9ddbedaf4bcf927faaae81892ec7) )
+
+ NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) )
+
+ NEO_BIOS_AUDIO_128K( "234-m1.m1", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "234-v1.v1", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) )
+ ROM_LOAD( "234-v2.v2", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) )
+ ROM_LOAD( "234-v3.v3", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) )
+ ROM_LOAD( "234-v4.v4", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20A1F4833E5E29BA0073C1712D7A17AB7A2A035C) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "234-c1.c1", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) )
+ ROM_LOAD16_BYTE( "234-c2.c2", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) )
+ ROM_LOAD16_BYTE( "234-c3.c3", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) )
+ ROM_LOAD16_BYTE( "234-c4.c4", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) )
+ ROM_LOAD16_BYTE( "234-c5.c5", 0x2000000, 0x400000, CRC(1ba80cee) SHA1(0c59057183b5279b747e73213b4cd3c6d7ad9eb1) )
+ ROM_LOAD16_BYTE( "234-c6.c6", 0x2000001, 0x400000, CRC(beafd091) SHA1(55df9cc128eb0f00856de3996c946e3efe8f09a5) )
+ROM_END
+
+// this is lastblsp in multijet - description is "The Last Blade (Super Plus remixed by NEHT)"
+ROM_START( lbseh ) /* The Last Blade - Super Enhance Hack by Creamymami, Kurouri and Ydmis - (Can choose 'fair' Kaede, Musashi and Kagami - ultra kill start is max - ultra power hack) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "234seh.p1", 0x000000, 0x100000, CRC(32415149) SHA1(944a77e4e0e06763332549cf8255632921348933) )
+ ROM_LOAD16_WORD_SWAP( "234-p2.sp2", 0x100000, 0x400000, CRC(0fdc289e) SHA1(1ff31c0b0f4f9ddbedaf4bcf927faaae81892ec7) )
+
+ NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) )
+
+ NEO_BIOS_AUDIO_128K( "234-m1.m1", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "234-v1.v1", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) )
+ ROM_LOAD( "234-v2.v2", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) )
+ ROM_LOAD( "234-v3.v3", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) )
+ ROM_LOAD( "234-v4.v4", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20A1F4833E5E29BA0073C1712D7A17AB7A2A035C) )
+
+ ROM_REGION( 0x2400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "234-c1.c1", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) )
+ ROM_LOAD16_BYTE( "234-c2.c2", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) )
+ ROM_LOAD16_BYTE( "234-c3.c3", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) )
+ ROM_LOAD16_BYTE( "234-c4.c4", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) )
+ ROM_LOAD16_BYTE( "234seh.c5", 0x2000000, 0x200000, CRC(17bbd7ca) SHA1(7abb4ae5d3f5bb488c20ffe59496316bce999c23) )
+ ROM_LOAD16_BYTE( "234seh.c6", 0x2000001, 0x200000, CRC(5c35d541) SHA1(6bdd3e8abc0e577420762aea5ab20b1360868905) )
+ROM_END
+
+ROM_START( lbsk ) // lastbdsk in multijet
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "234sk.p1", 0x000000, 0x100000, CRC(87f40369) SHA1(73c258380bd668b5fb1b27ed772d70bba777390f) )
+ ROM_LOAD16_WORD_SWAP( "234-p2.sp2", 0x100000, 0x400000, CRC(0fdc289e) SHA1(1ff31c0b0f4f9ddbedaf4bcf927faaae81892ec7) )
+
+ NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) )
+
+ NEO_BIOS_AUDIO_128K( "234-m1.m1", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "234-v1.v1", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) )
+ ROM_LOAD( "234-v2.v2", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) )
+ ROM_LOAD( "234-v3.v3", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) )
+ ROM_LOAD( "234-v4.v4", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20A1F4833E5E29BA0073C1712D7A17AB7A2A035C) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "234-c1.c1", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) )
+ ROM_LOAD16_BYTE( "234-c2.c2", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) )
+ ROM_LOAD16_BYTE( "234-c3.c3", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) )
+ ROM_LOAD16_BYTE( "234-c4.c4", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) )
+ ROM_LOAD16_BYTE( "234-c5.c5", 0x2000000, 0x400000, CRC(1ba80cee) SHA1(0c59057183b5279b747e73213b4cd3c6d7ad9eb1) )
+ ROM_LOAD16_BYTE( "234-c6.c6", 0x2000001, 0x400000, CRC(beafd091) SHA1(55df9cc128eb0f00856de3996c946e3efe8f09a5) )
+ROM_END
+
+ROM_START( lbsp )
+ ROM_REGION( 0x720000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "234sp.p1", 0x000000, 0x100000, CRC(b902e73e) SHA1(239b98715c23dc7cee870d0f18ab9fc8b8520472) )
+ ROM_LOAD16_WORD_SWAP( "234sp.p2", 0x100000, 0x600000, CRC(8ff3fb6d) SHA1(dc36bddc086cb8877945f907b81a340bfba72e3c) )
+ ROM_LOAD16_WORD_SWAP( "234sp.p3", 0x700000, 0x020000, CRC(fbd011f7) SHA1(de5e61f6dc41af76fb86bc2d957dd55c38913af1) )
+
+ NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) )
+
+ NEO_BIOS_AUDIO_128K( "234-m1.m1", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "234-v1.v1", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) )
+ ROM_LOAD( "234-v2.v2", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) )
+ ROM_LOAD( "234-v3.v3", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) )
+ ROM_LOAD( "234-v4.v4", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20A1F4833E5E29BA0073C1712D7A17AB7A2A035C) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "234-c1.c1", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) )
+ ROM_LOAD16_BYTE( "234-c2.c2", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) )
+ ROM_LOAD16_BYTE( "234-c3.c3", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) )
+ ROM_LOAD16_BYTE( "234-c4.c4", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) )
+ ROM_LOAD16_BYTE( "234sp.c5", 0x2000000, 0x400000, CRC(4ea22fe0) SHA1(e72d75111d82ee387c5cbfddcaf2e0c13371e455) )
+ ROM_LOAD16_BYTE( "234sp.c6", 0x2000001, 0x400000, CRC(a863c882) SHA1(92a3baeea3991c4e0d3fd771d3355a379759c4b2) )
+ROM_END
+
+ROM_START( lbsp2 )
+ ROM_REGION( 0x720000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "234sp2.p1", 0x000000, 0x100000, CRC(f8adc621) SHA1(d41921f6e2957b1d1241a5fff099be9764c0efc0) )
+ ROM_LOAD16_WORD_SWAP( "234sp.p2", 0x100000, 0x600000, CRC(8ff3fb6d) SHA1(dc36bddc086cb8877945f907b81a340bfba72e3c) )
+ ROM_LOAD16_WORD_SWAP( "234sp2.p3", 0x700000, 0x020000, CRC(3c1770df) SHA1(b773dcfcb7656166afe4c6e52219f3083c851460) )
+
+ NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) )
+
+ NEO_BIOS_AUDIO_128K( "234-m1.m1", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "234-v1.v1", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) )
+ ROM_LOAD( "234-v2.v2", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) )
+ ROM_LOAD( "234-v3.v3", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) )
+ ROM_LOAD( "234-v4.v4", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20A1F4833E5E29BA0073C1712D7A17AB7A2A035C) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "234-c1.c1", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) )
+ ROM_LOAD16_BYTE( "234-c2.c2", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) )
+ ROM_LOAD16_BYTE( "234-c3.c3", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) )
+ ROM_LOAD16_BYTE( "234-c4.c4", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) )
+ ROM_LOAD16_BYTE( "234sp.c5", 0x2000000, 0x400000, CRC(4ea22fe0) SHA1(e72d75111d82ee387c5cbfddcaf2e0c13371e455) )
+ ROM_LOAD16_BYTE( "234sp.c6", 0x2000001, 0x400000, CRC(a863c882) SHA1(92a3baeea3991c4e0d3fd771d3355a379759c4b2) )
+ROM_END
+
+ROM_START( lby ) /* The Last Blade - Hack by Ydmis - (Can choose Musashi) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "234y.p1", 0x000000, 0x100000, CRC(481a6e8f) SHA1(cad1207b8ed93ba118e822767f0c32cd4030823a) )
+ ROM_LOAD16_WORD_SWAP( "234-p2.sp2", 0x100000, 0x400000, CRC(0fdc289e) SHA1(1ff31c0b0f4f9ddbedaf4bcf927faaae81892ec7) )
+
+ NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) )
+
+ NEO_BIOS_AUDIO_128K( "234-m1.m1", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "234-v1.v1", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) )
+ ROM_LOAD( "234-v2.v2", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) )
+ ROM_LOAD( "234-v3.v3", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) )
+ ROM_LOAD( "234-v4.v4", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20A1F4833E5E29BA0073C1712D7A17AB7A2A035C) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "234-c1.c1", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) )
+ ROM_LOAD16_BYTE( "234-c2.c2", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) )
+ ROM_LOAD16_BYTE( "234-c3.c3", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) )
+ ROM_LOAD16_BYTE( "234-c4.c4", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) )
+ ROM_LOAD16_BYTE( "234-c5.c5", 0x2000000, 0x400000, CRC(1ba80cee) SHA1(0c59057183b5279b747e73213b4cd3c6d7ad9eb1) )
+ ROM_LOAD16_BYTE( "234-c6.c6", 0x2000001, 0x400000, CRC(beafd091) SHA1(55df9cc128eb0f00856de3996c946e3efe8f09a5) )
+ROM_END
+
+
+ROM_START( lb2a ) /* The Last Blade 2 - Hack by Alphax2 - (Can choose Kouryu) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "243a.p1", 0x000000, 0x100000, CRC(9b53279c) SHA1(d2424f057ad834e76603cbbe4febf97d93fcd2a9) )
+ ROM_LOAD16_WORD_SWAP( "243-pg2.sp2", 0x100000, 0x400000, CRC(add4a30b) SHA1(7db62564db49fe0218cbb35b119d62582a24d658) )
+
+ NEO_SFIX_128K( "243-s1.s1", CRC(c9cd2298) SHA1(a9a18b5347f9dbe29a2ccb63fd4c8fd19537bf8b) )
+
+ NEO_BIOS_AUDIO_128K( "243-m1.m1", CRC(acf12d10) SHA1(6e6b98cc1fa44f24a5168877559b0055e6957b60) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "243-v1.v1", 0x000000, 0x400000, CRC(f7ee6fbb) SHA1(55137bcabeeb590e40a9b8a7c07dd106e4d12a90) )
+ ROM_LOAD( "243-v2.v2", 0x400000, 0x400000, CRC(aa9e4df6) SHA1(a0b91f63e2552a8ad9e0d1af00e2c38288637161) )
+ ROM_LOAD( "243-v3.v3", 0x800000, 0x400000, CRC(4ac750b2) SHA1(585a154acc67bd84ea5b944686b78ed082b768d9) )
+ ROM_LOAD( "243-v4.v4", 0xc00000, 0x400000, CRC(f5c64ba6) SHA1(2eac455def8c27090862cc042f65a3a8aad88283) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "243-c1.c1", 0x0000000, 0x800000, CRC(5839444d) SHA1(0616921c4cce20422563578bd0e806d359508599) )
+ ROM_LOAD16_BYTE( "243-c2.c2", 0x0000001, 0x800000, CRC(dd087428) SHA1(ca27fdb60425664956a18c021ea465f452fb1527) )
+ ROM_LOAD16_BYTE( "243-c3.c3", 0x1000000, 0x800000, CRC(6054cbe0) SHA1(ec2f65e9c930250ee25fd064ee5ae76a7a9c61d9) )
+ ROM_LOAD16_BYTE( "243-c4.c4", 0x1000001, 0x800000, CRC(8bd2a9d2) SHA1(0935df65cd2b0891a708bcc0f1c188148058d4b5) )
+ ROM_LOAD16_BYTE( "243-c5.c5", 0x2000000, 0x800000, CRC(6a503dcf) SHA1(23241b16d7e20f923d41186b29487ab922c7f530) )
+ ROM_LOAD16_BYTE( "243-c6.c6", 0x2000001, 0x800000, CRC(ec9c36d0) SHA1(e145e9e359000dda6e1dfe95a996bc6d29cfca21) )
+ROM_END
+
+ROM_START( lb2b )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "243b.p1", 0x000000, 0x100000, CRC(6e512568) SHA1(9bdd136d3a8b2a361b2659066f10fe6e7d3b6c52) )
+ ROM_LOAD16_WORD_SWAP( "243-pg2.sp2", 0x100000, 0x400000, CRC(add4a30b) SHA1(7db62564db49fe0218cbb35b119d62582a24d658) )
+
+ NEO_SFIX_128K( "243b.s1", CRC(357e4638) SHA1(92bfc78749c00662225ada98eecc562fd2984e3e) )
+
+ NEO_BIOS_AUDIO_128K( "243-m1.m1", CRC(acf12d10) SHA1(6e6b98cc1fa44f24a5168877559b0055e6957b60) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "243-v1.v1", 0x000000, 0x400000, CRC(f7ee6fbb) SHA1(55137bcabeeb590e40a9b8a7c07dd106e4d12a90) )
+ ROM_LOAD( "243-v2.v2", 0x400000, 0x400000, CRC(aa9e4df6) SHA1(a0b91f63e2552a8ad9e0d1af00e2c38288637161) )
+ ROM_LOAD( "243-v3.v3", 0x800000, 0x400000, CRC(4ac750b2) SHA1(585a154acc67bd84ea5b944686b78ed082b768d9) )
+ ROM_LOAD( "243-v4.v4", 0xc00000, 0x400000, CRC(f5c64ba6) SHA1(2eac455def8c27090862cc042f65a3a8aad88283) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "243-c1.c1", 0x0000000, 0x800000, CRC(5839444d) SHA1(0616921c4cce20422563578bd0e806d359508599) )
+ ROM_LOAD16_BYTE( "243-c2.c2", 0x0000001, 0x800000, CRC(dd087428) SHA1(ca27fdb60425664956a18c021ea465f452fb1527) )
+ ROM_LOAD16_BYTE( "243-c3.c3", 0x1000000, 0x800000, CRC(6054cbe0) SHA1(ec2f65e9c930250ee25fd064ee5ae76a7a9c61d9) )
+ ROM_LOAD16_BYTE( "243-c4.c4", 0x1000001, 0x800000, CRC(8bd2a9d2) SHA1(0935df65cd2b0891a708bcc0f1c188148058d4b5) )
+ ROM_LOAD16_BYTE( "243-c5.c5", 0x2000000, 0x800000, CRC(6a503dcf) SHA1(23241b16d7e20f923d41186b29487ab922c7f530) )
+ ROM_LOAD16_BYTE( "243-c6.c6", 0x2000001, 0x800000, CRC(ec9c36d0) SHA1(e145e9e359000dda6e1dfe95a996bc6d29cfca21) )
+ROM_END
+
+ROM_START( lb2bh ) // labld2bh in multijet
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "243bh.p1", 0x000000, 0x100000, CRC(3acbcfca) SHA1(825609e14daacbfce15462236193f7b2cff88169) )
+ ROM_LOAD16_WORD_SWAP( "243-pg2.sp2", 0x100000, 0x400000, CRC(add4a30b) SHA1(7db62564db49fe0218cbb35b119d62582a24d658) )
+
+ NEO_SFIX_128K( "243-s1.s1", CRC(c9cd2298) SHA1(a9a18b5347f9dbe29a2ccb63fd4c8fd19537bf8b) )
+
+ NEO_BIOS_AUDIO_128K( "243-m1.m1", CRC(acf12d10) SHA1(6e6b98cc1fa44f24a5168877559b0055e6957b60) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "243-v1.v1", 0x000000, 0x400000, CRC(f7ee6fbb) SHA1(55137bcabeeb590e40a9b8a7c07dd106e4d12a90) )
+ ROM_LOAD( "243-v2.v2", 0x400000, 0x400000, CRC(aa9e4df6) SHA1(a0b91f63e2552a8ad9e0d1af00e2c38288637161) )
+ ROM_LOAD( "243-v3.v3", 0x800000, 0x400000, CRC(4ac750b2) SHA1(585a154acc67bd84ea5b944686b78ed082b768d9) )
+ ROM_LOAD( "243-v4.v4", 0xc00000, 0x400000, CRC(f5c64ba6) SHA1(2eac455def8c27090862cc042f65a3a8aad88283) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "243-c1.c1", 0x0000000, 0x800000, CRC(5839444d) SHA1(0616921c4cce20422563578bd0e806d359508599) )
+ ROM_LOAD16_BYTE( "243-c2.c2", 0x0000001, 0x800000, CRC(dd087428) SHA1(ca27fdb60425664956a18c021ea465f452fb1527) )
+ ROM_LOAD16_BYTE( "243-c3.c3", 0x1000000, 0x800000, CRC(6054cbe0) SHA1(ec2f65e9c930250ee25fd064ee5ae76a7a9c61d9) )
+ ROM_LOAD16_BYTE( "243-c4.c4", 0x1000001, 0x800000, CRC(8bd2a9d2) SHA1(0935df65cd2b0891a708bcc0f1c188148058d4b5) )
+ ROM_LOAD16_BYTE( "243-c5.c5", 0x2000000, 0x800000, CRC(6a503dcf) SHA1(23241b16d7e20f923d41186b29487ab922c7f530) )
+ ROM_LOAD16_BYTE( "243-c6.c6", 0x2000001, 0x800000, CRC(ec9c36d0) SHA1(e145e9e359000dda6e1dfe95a996bc6d29cfca21) )
+ROM_END
+
+ROM_START( lb2bhd ) /* The Last Blade 2 - Super Enhance Hack by Dodowang - (Can choose bosses -> icons in menu - after character selection choose "SPEED" -> press c -> EX - mode enabled) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "243bhd.p1", 0x000000, 0x100000, CRC(f4e141cf) SHA1(515a101c1fc7b038603afc56121d240738e68090) )
+ ROM_LOAD16_WORD_SWAP( "243-pg2.sp2", 0x100000, 0x400000, CRC(add4a30b) SHA1(7db62564db49fe0218cbb35b119d62582a24d658) )
+
+ NEO_SFIX_128K( "243b.s1", CRC(357e4638) SHA1(92bfc78749c00662225ada98eecc562fd2984e3e) )
+
+ NEO_BIOS_AUDIO_128K( "243-m1.m1", CRC(acf12d10) SHA1(6e6b98cc1fa44f24a5168877559b0055e6957b60) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "243-v1.v1", 0x000000, 0x400000, CRC(f7ee6fbb) SHA1(55137bcabeeb590e40a9b8a7c07dd106e4d12a90) )
+ ROM_LOAD( "243-v2.v2", 0x400000, 0x400000, CRC(aa9e4df6) SHA1(a0b91f63e2552a8ad9e0d1af00e2c38288637161) )
+ ROM_LOAD( "243-v3.v3", 0x800000, 0x400000, CRC(4ac750b2) SHA1(585a154acc67bd84ea5b944686b78ed082b768d9) )
+ ROM_LOAD( "243-v4.v4", 0xc00000, 0x400000, CRC(f5c64ba6) SHA1(2eac455def8c27090862cc042f65a3a8aad88283) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "243-c1.c1", 0x0000000, 0x800000, CRC(5839444d) SHA1(0616921c4cce20422563578bd0e806d359508599) )
+ ROM_LOAD16_BYTE( "243-c2.c2", 0x0000001, 0x800000, CRC(dd087428) SHA1(ca27fdb60425664956a18c021ea465f452fb1527) )
+ ROM_LOAD16_BYTE( "243-c3.c3", 0x1000000, 0x800000, CRC(6054cbe0) SHA1(ec2f65e9c930250ee25fd064ee5ae76a7a9c61d9) )
+ ROM_LOAD16_BYTE( "243-c4.c4", 0x1000001, 0x800000, CRC(8bd2a9d2) SHA1(0935df65cd2b0891a708bcc0f1c188148058d4b5) )
+ ROM_LOAD16_BYTE( "243-c5.c5", 0x2000000, 0x800000, CRC(6a503dcf) SHA1(23241b16d7e20f923d41186b29487ab922c7f530) )
+ ROM_LOAD16_BYTE( "243-c6.c6", 0x2000001, 0x800000, CRC(ec9c36d0) SHA1(e145e9e359000dda6e1dfe95a996bc6d29cfca21) )
+ROM_END
+
+ROM_START( lb2easy ) /* The Last Blade 2 - Hack by Raymonose - (character move optimization in view of keyboard) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "243ea.p1", 0x000000, 0x100000, CRC(220F7860) SHA1(DA292FD2AE80A11676AA2B7F884C733535B5CE9E) )
+ ROM_LOAD16_WORD_SWAP( "243-pg2.sp2", 0x100000, 0x400000, CRC(add4a30b) SHA1(7db62564db49fe0218cbb35b119d62582a24d658) )
+
+ NEO_SFIX_128K( "243-s1.s1", CRC(c9cd2298) SHA1(a9a18b5347f9dbe29a2ccb63fd4c8fd19537bf8b) )
+
+ NEO_BIOS_AUDIO_128K( "243-m1.m1", CRC(acf12d10) SHA1(6e6b98cc1fa44f24a5168877559b0055e6957b60) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "243-v1.v1", 0x000000, 0x400000, CRC(f7ee6fbb) SHA1(55137bcabeeb590e40a9b8a7c07dd106e4d12a90) )
+ ROM_LOAD( "243-v2.v2", 0x400000, 0x400000, CRC(aa9e4df6) SHA1(a0b91f63e2552a8ad9e0d1af00e2c38288637161) )
+ ROM_LOAD( "243-v3.v3", 0x800000, 0x400000, CRC(4ac750b2) SHA1(585a154acc67bd84ea5b944686b78ed082b768d9) )
+ ROM_LOAD( "243-v4.v4", 0xc00000, 0x400000, CRC(f5c64ba6) SHA1(2eac455def8c27090862cc042f65a3a8aad88283) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "243-c1.c1", 0x0000000, 0x800000, CRC(5839444d) SHA1(0616921c4cce20422563578bd0e806d359508599) )
+ ROM_LOAD16_BYTE( "243-c2.c2", 0x0000001, 0x800000, CRC(dd087428) SHA1(ca27fdb60425664956a18c021ea465f452fb1527) )
+ ROM_LOAD16_BYTE( "243-c3.c3", 0x1000000, 0x800000, CRC(6054cbe0) SHA1(ec2f65e9c930250ee25fd064ee5ae76a7a9c61d9) )
+ ROM_LOAD16_BYTE( "243-c4.c4", 0x1000001, 0x800000, CRC(8bd2a9d2) SHA1(0935df65cd2b0891a708bcc0f1c188148058d4b5) )
+ ROM_LOAD16_BYTE( "243-c5.c5", 0x2000000, 0x800000, CRC(6a503dcf) SHA1(23241b16d7e20f923d41186b29487ab922c7f530) )
+ ROM_LOAD16_BYTE( "243-c6.c6", 0x2000001, 0x800000, CRC(ec9c36d0) SHA1(e145e9e359000dda6e1dfe95a996bc6d29cfca21) )
+ROM_END
+
+ROM_START( lb2ebd ) /* The Last Blade 2 - Enhance by Dodowang - (Can choose bosses - after character selection choose "SPEED" -> press c -> EX - mode enabled) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "243ebd.p1", 0x000000, 0x100000, CRC(9fa23fd3) SHA1(76f858e3c293f53770be6a0037d39797b4624002) )
+ ROM_LOAD16_WORD_SWAP( "243-pg2.sp2", 0x100000, 0x400000, CRC(add4a30b) SHA1(7db62564db49fe0218cbb35b119d62582a24d658) )
+
+ NEO_SFIX_128K( "243-s1.s1", CRC(c9cd2298) SHA1(a9a18b5347f9dbe29a2ccb63fd4c8fd19537bf8b) )
+
+ NEO_BIOS_AUDIO_128K( "243-m1.m1", CRC(acf12d10) SHA1(6e6b98cc1fa44f24a5168877559b0055e6957b60) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "243-v1.v1", 0x000000, 0x400000, CRC(f7ee6fbb) SHA1(55137bcabeeb590e40a9b8a7c07dd106e4d12a90) )
+ ROM_LOAD( "243-v2.v2", 0x400000, 0x400000, CRC(aa9e4df6) SHA1(a0b91f63e2552a8ad9e0d1af00e2c38288637161) )
+ ROM_LOAD( "243-v3.v3", 0x800000, 0x400000, CRC(4ac750b2) SHA1(585a154acc67bd84ea5b944686b78ed082b768d9) )
+ ROM_LOAD( "243-v4.v4", 0xc00000, 0x400000, CRC(f5c64ba6) SHA1(2eac455def8c27090862cc042f65a3a8aad88283) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "243-c1.c1", 0x0000000, 0x800000, CRC(5839444d) SHA1(0616921c4cce20422563578bd0e806d359508599) )
+ ROM_LOAD16_BYTE( "243-c2.c2", 0x0000001, 0x800000, CRC(dd087428) SHA1(ca27fdb60425664956a18c021ea465f452fb1527) )
+ ROM_LOAD16_BYTE( "243-c3.c3", 0x1000000, 0x800000, CRC(6054cbe0) SHA1(ec2f65e9c930250ee25fd064ee5ae76a7a9c61d9) )
+ ROM_LOAD16_BYTE( "243-c4.c4", 0x1000001, 0x800000, CRC(8bd2a9d2) SHA1(0935df65cd2b0891a708bcc0f1c188148058d4b5) )
+ ROM_LOAD16_BYTE( "243-c5.c5", 0x2000000, 0x800000, CRC(6a503dcf) SHA1(23241b16d7e20f923d41186b29487ab922c7f530) )
+ ROM_LOAD16_BYTE( "243-c6.c6", 0x2000001, 0x800000, CRC(ec9c36d0) SHA1(e145e9e359000dda6e1dfe95a996bc6d29cfca21) )
+ROM_END
+
+ROM_START( lb2ed ) /* The Last Blade 2 - Enhance by Dodowang - (After character selection choose "SPEED" -> press c -> EX - mode enabled) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "243ed.p1", 0x000000, 0x100000, CRC(35ae01f3) SHA1(dbf24eb2732c72e8d8f06bdebcd30d93f9c3ae1a) )
+ ROM_LOAD16_WORD_SWAP( "243-pg2.sp2", 0x100000, 0x400000, CRC(add4a30b) SHA1(7db62564db49fe0218cbb35b119d62582a24d658) )
+
+ NEO_SFIX_128K( "243-s1.s1", CRC(c9cd2298) SHA1(a9a18b5347f9dbe29a2ccb63fd4c8fd19537bf8b) )
+
+ NEO_BIOS_AUDIO_128K( "243-m1.m1", CRC(acf12d10) SHA1(6e6b98cc1fa44f24a5168877559b0055e6957b60) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "243-v1.v1", 0x000000, 0x400000, CRC(f7ee6fbb) SHA1(55137bcabeeb590e40a9b8a7c07dd106e4d12a90) )
+ ROM_LOAD( "243-v2.v2", 0x400000, 0x400000, CRC(aa9e4df6) SHA1(a0b91f63e2552a8ad9e0d1af00e2c38288637161) )
+ ROM_LOAD( "243-v3.v3", 0x800000, 0x400000, CRC(4ac750b2) SHA1(585a154acc67bd84ea5b944686b78ed082b768d9) )
+ ROM_LOAD( "243-v4.v4", 0xc00000, 0x400000, CRC(f5c64ba6) SHA1(2eac455def8c27090862cc042f65a3a8aad88283) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "243-c1.c1", 0x0000000, 0x800000, CRC(5839444d) SHA1(0616921c4cce20422563578bd0e806d359508599) )
+ ROM_LOAD16_BYTE( "243-c2.c2", 0x0000001, 0x800000, CRC(dd087428) SHA1(ca27fdb60425664956a18c021ea465f452fb1527) )
+ ROM_LOAD16_BYTE( "243-c3.c3", 0x1000000, 0x800000, CRC(6054cbe0) SHA1(ec2f65e9c930250ee25fd064ee5ae76a7a9c61d9) )
+ ROM_LOAD16_BYTE( "243-c4.c4", 0x1000001, 0x800000, CRC(8bd2a9d2) SHA1(0935df65cd2b0891a708bcc0f1c188148058d4b5) )
+ ROM_LOAD16_BYTE( "243-c5.c5", 0x2000000, 0x800000, CRC(6a503dcf) SHA1(23241b16d7e20f923d41186b29487ab922c7f530) )
+ ROM_LOAD16_BYTE( "243-c6.c6", 0x2000001, 0x800000, CRC(ec9c36d0) SHA1(e145e9e359000dda6e1dfe95a996bc6d29cfca21) )
+ROM_END
+
+ROM_START( lb2eh ) /* The Last Blade 2 - Enhance by Ydmis and Zhangshee - (Can choose Kaede black haired, Kouryu, Hagure and Kotetsu - ultra kill start is max) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "243eh.p1", 0x000000, 0x100000, CRC(57064bc6) SHA1(e7c1669356606bf134a02217fabc00ffd74d91f2) )
+ ROM_LOAD16_WORD_SWAP( "243-pg2.sp2", 0x100000, 0x400000, CRC(add4a30b) SHA1(7db62564db49fe0218cbb35b119d62582a24d658) )
+
+ NEO_SFIX_128K( "243-s1.s1", CRC(c9cd2298) SHA1(a9a18b5347f9dbe29a2ccb63fd4c8fd19537bf8b) )
+
+ NEO_BIOS_AUDIO_128K( "243-m1.m1", CRC(acf12d10) SHA1(6e6b98cc1fa44f24a5168877559b0055e6957b60) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "243-v1.v1", 0x000000, 0x400000, CRC(f7ee6fbb) SHA1(55137bcabeeb590e40a9b8a7c07dd106e4d12a90) )
+ ROM_LOAD( "243-v2.v2", 0x400000, 0x400000, CRC(aa9e4df6) SHA1(a0b91f63e2552a8ad9e0d1af00e2c38288637161) )
+ ROM_LOAD( "243-v3.v3", 0x800000, 0x400000, CRC(4ac750b2) SHA1(585a154acc67bd84ea5b944686b78ed082b768d9) )
+ ROM_LOAD( "243-v4.v4", 0xc00000, 0x400000, CRC(f5c64ba6) SHA1(2eac455def8c27090862cc042f65a3a8aad88283) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "243-c1.c1", 0x0000000, 0x800000, CRC(5839444d) SHA1(0616921c4cce20422563578bd0e806d359508599) )
+ ROM_LOAD16_BYTE( "243-c2.c2", 0x0000001, 0x800000, CRC(dd087428) SHA1(ca27fdb60425664956a18c021ea465f452fb1527) )
+ ROM_LOAD16_BYTE( "243-c3.c3", 0x1000000, 0x800000, CRC(6054cbe0) SHA1(ec2f65e9c930250ee25fd064ee5ae76a7a9c61d9) )
+ ROM_LOAD16_BYTE( "243-c4.c4", 0x1000001, 0x800000, CRC(8bd2a9d2) SHA1(0935df65cd2b0891a708bcc0f1c188148058d4b5) )
+ ROM_LOAD16_BYTE( "243-c5.c5", 0x2000000, 0x800000, CRC(6a503dcf) SHA1(23241b16d7e20f923d41186b29487ab922c7f530) )
+ ROM_LOAD16_BYTE( "243-c6.c6", 0x2000001, 0x800000, CRC(ec9c36d0) SHA1(e145e9e359000dda6e1dfe95a996bc6d29cfca21) )
+ROM_END
+
+ROM_START( lb2eh2 ) /* The Last Blade 2 - Hack by Ydmis - (Can choose Kaede black haired, Kouryu, Hagure and Kotetsu - ultra kill start is max - ultra power hack) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "243eh2.p1", 0x000000, 0x100000, CRC(10e0ffa5) SHA1(d26f3807426a18914801b18dc01fd01e96c9fd78) )
+ ROM_LOAD16_WORD_SWAP( "243-pg2.sp2", 0x100000, 0x400000, CRC(add4a30b) SHA1(7db62564db49fe0218cbb35b119d62582a24d658) )
+
+ NEO_SFIX_128K( "243-s1.s1", CRC(c9cd2298) SHA1(a9a18b5347f9dbe29a2ccb63fd4c8fd19537bf8b) )
+
+ NEO_BIOS_AUDIO_128K( "243-m1.m1", CRC(acf12d10) SHA1(6e6b98cc1fa44f24a5168877559b0055e6957b60) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "243-v1.v1", 0x000000, 0x400000, CRC(f7ee6fbb) SHA1(55137bcabeeb590e40a9b8a7c07dd106e4d12a90) )
+ ROM_LOAD( "243-v2.v2", 0x400000, 0x400000, CRC(aa9e4df6) SHA1(a0b91f63e2552a8ad9e0d1af00e2c38288637161) )
+ ROM_LOAD( "243-v3.v3", 0x800000, 0x400000, CRC(4ac750b2) SHA1(585a154acc67bd84ea5b944686b78ed082b768d9) )
+ ROM_LOAD( "243-v4.v4", 0xc00000, 0x400000, CRC(f5c64ba6) SHA1(2eac455def8c27090862cc042f65a3a8aad88283) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "243-c1.c1", 0x0000000, 0x800000, CRC(5839444d) SHA1(0616921c4cce20422563578bd0e806d359508599) )
+ ROM_LOAD16_BYTE( "243-c2.c2", 0x0000001, 0x800000, CRC(dd087428) SHA1(ca27fdb60425664956a18c021ea465f452fb1527) )
+ ROM_LOAD16_BYTE( "243-c3.c3", 0x1000000, 0x800000, CRC(6054cbe0) SHA1(ec2f65e9c930250ee25fd064ee5ae76a7a9c61d9) )
+ ROM_LOAD16_BYTE( "243-c4.c4", 0x1000001, 0x800000, CRC(8bd2a9d2) SHA1(0935df65cd2b0891a708bcc0f1c188148058d4b5) )
+ ROM_LOAD16_BYTE( "243-c5.c5", 0x2000000, 0x800000, CRC(6a503dcf) SHA1(23241b16d7e20f923d41186b29487ab922c7f530) )
+ ROM_LOAD16_BYTE( "243-c6.c6", 0x2000001, 0x800000, CRC(ec9c36d0) SHA1(e145e9e359000dda6e1dfe95a996bc6d29cfca21) )
+ROM_END
+
+ROM_START( lb2eho ) /* The Last Blade 2 - Enhance by Ydmis - (Can choose Kaede black haired, Kouryu, Hagure and Kotetsu) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "243eho.p1", 0x000000, 0x100000, CRC(f31ab9fe) SHA1(92614220d2e7ea2100a7258e3479db1d42431dfd) )
+ ROM_LOAD16_WORD_SWAP( "243-pg2.sp2", 0x100000, 0x400000, CRC(add4a30b) SHA1(7db62564db49fe0218cbb35b119d62582a24d658) )
+
+ NEO_SFIX_128K( "243-s1.s1", CRC(c9cd2298) SHA1(a9a18b5347f9dbe29a2ccb63fd4c8fd19537bf8b) )
+
+ NEO_BIOS_AUDIO_128K( "243-m1.m1", CRC(acf12d10) SHA1(6e6b98cc1fa44f24a5168877559b0055e6957b60) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "243-v1.v1", 0x000000, 0x400000, CRC(f7ee6fbb) SHA1(55137bcabeeb590e40a9b8a7c07dd106e4d12a90) )
+ ROM_LOAD( "243-v2.v2", 0x400000, 0x400000, CRC(aa9e4df6) SHA1(a0b91f63e2552a8ad9e0d1af00e2c38288637161) )
+ ROM_LOAD( "243-v3.v3", 0x800000, 0x400000, CRC(4ac750b2) SHA1(585a154acc67bd84ea5b944686b78ed082b768d9) )
+ ROM_LOAD( "243-v4.v4", 0xc00000, 0x400000, CRC(f5c64ba6) SHA1(2eac455def8c27090862cc042f65a3a8aad88283) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "243-c1.c1", 0x0000000, 0x800000, CRC(5839444d) SHA1(0616921c4cce20422563578bd0e806d359508599) )
+ ROM_LOAD16_BYTE( "243-c2.c2", 0x0000001, 0x800000, CRC(dd087428) SHA1(ca27fdb60425664956a18c021ea465f452fb1527) )
+ ROM_LOAD16_BYTE( "243-c3.c3", 0x1000000, 0x800000, CRC(6054cbe0) SHA1(ec2f65e9c930250ee25fd064ee5ae76a7a9c61d9) )
+ ROM_LOAD16_BYTE( "243-c4.c4", 0x1000001, 0x800000, CRC(8bd2a9d2) SHA1(0935df65cd2b0891a708bcc0f1c188148058d4b5) )
+ ROM_LOAD16_BYTE( "243-c5.c5", 0x2000000, 0x800000, CRC(6a503dcf) SHA1(23241b16d7e20f923d41186b29487ab922c7f530) )
+ ROM_LOAD16_BYTE( "243-c6.c6", 0x2000001, 0x800000, CRC(ec9c36d0) SHA1(e145e9e359000dda6e1dfe95a996bc6d29cfca21) )
+ROM_END
+
+ROM_START( lb2ehu ) /* The Last Blade 2 - Enhance by UNKNOWN - (Can choose Kaede black haired, Kouryu, Hagure and Kotetsu - ultra kill start is max) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "243ehu.p1", 0x000000, 0x100000, CRC(494aef40) SHA1(7c6af3a463c1a6acae10ee3fd9fb5e07e553fa18) )
+ ROM_LOAD16_WORD_SWAP( "243-pg2.sp2", 0x100000, 0x400000, CRC(add4a30b) SHA1(7db62564db49fe0218cbb35b119d62582a24d658) )
+
+ NEO_SFIX_128K( "243-s1.s1", CRC(c9cd2298) SHA1(a9a18b5347f9dbe29a2ccb63fd4c8fd19537bf8b) )
+
+ NEO_BIOS_AUDIO_128K( "243-m1.m1", CRC(acf12d10) SHA1(6e6b98cc1fa44f24a5168877559b0055e6957b60) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "243-v1.v1", 0x000000, 0x400000, CRC(f7ee6fbb) SHA1(55137bcabeeb590e40a9b8a7c07dd106e4d12a90) )
+ ROM_LOAD( "243-v2.v2", 0x400000, 0x400000, CRC(aa9e4df6) SHA1(a0b91f63e2552a8ad9e0d1af00e2c38288637161) )
+ ROM_LOAD( "243-v3.v3", 0x800000, 0x400000, CRC(4ac750b2) SHA1(585a154acc67bd84ea5b944686b78ed082b768d9) )
+ ROM_LOAD( "243-v4.v4", 0xc00000, 0x400000, CRC(f5c64ba6) SHA1(2eac455def8c27090862cc042f65a3a8aad88283) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "243-c1.c1", 0x0000000, 0x800000, CRC(5839444d) SHA1(0616921c4cce20422563578bd0e806d359508599) )
+ ROM_LOAD16_BYTE( "243-c2.c2", 0x0000001, 0x800000, CRC(dd087428) SHA1(ca27fdb60425664956a18c021ea465f452fb1527) )
+ ROM_LOAD16_BYTE( "243-c3.c3", 0x1000000, 0x800000, CRC(6054cbe0) SHA1(ec2f65e9c930250ee25fd064ee5ae76a7a9c61d9) )
+ ROM_LOAD16_BYTE( "243-c4.c4", 0x1000001, 0x800000, CRC(8bd2a9d2) SHA1(0935df65cd2b0891a708bcc0f1c188148058d4b5) )
+ ROM_LOAD16_BYTE( "243-c5.c5", 0x2000000, 0x800000, CRC(6a503dcf) SHA1(23241b16d7e20f923d41186b29487ab922c7f530) )
+ ROM_LOAD16_BYTE( "243-c6.c6", 0x2000001, 0x800000, CRC(ec9c36d0) SHA1(e145e9e359000dda6e1dfe95a996bc6d29cfca21) )
+ROM_END
+
+ROM_START( lb2pl ) // FBA = lastbld2eh; Unlock "EX" mode (highlight Speed and press C) & Enable hidden characters
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "243pl.p1", 0x000000, 0x100000, CRC(8AF4B6E2) SHA1(2ea9a364bd7614eb93c5cbb3f571765c7af3af71) )
+ ROM_LOAD16_WORD_SWAP( "243pl.p2", 0x100000, 0x400000, CRC(EEF07572) SHA1(ba20c498dbdc2a1d664e5a3aeb3ffcd128c2a248) )
+
+ NEO_SFIX_128K( "243-s1.s1", CRC(c9cd2298) SHA1(a9a18b5347f9dbe29a2ccb63fd4c8fd19537bf8b) )
+
+ NEO_BIOS_AUDIO_128K( "243-m1.m1", CRC(acf12d10) SHA1(6e6b98cc1fa44f24a5168877559b0055e6957b60) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "243-v1.v1", 0x000000, 0x400000, CRC(f7ee6fbb) SHA1(55137bcabeeb590e40a9b8a7c07dd106e4d12a90) )
+ ROM_LOAD( "243-v2.v2", 0x400000, 0x400000, CRC(aa9e4df6) SHA1(a0b91f63e2552a8ad9e0d1af00e2c38288637161) )
+ ROM_LOAD( "243-v3.v3", 0x800000, 0x400000, CRC(4ac750b2) SHA1(585a154acc67bd84ea5b944686b78ed082b768d9) )
+ ROM_LOAD( "243-v4.v4", 0xc00000, 0x400000, CRC(f5c64ba6) SHA1(2eac455def8c27090862cc042f65a3a8aad88283) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "243-c1.c1", 0x0000000, 0x800000, CRC(5839444d) SHA1(0616921c4cce20422563578bd0e806d359508599) )
+ ROM_LOAD16_BYTE( "243-c2.c2", 0x0000001, 0x800000, CRC(dd087428) SHA1(ca27fdb60425664956a18c021ea465f452fb1527) )
+ ROM_LOAD16_BYTE( "243-c3.c3", 0x1000000, 0x800000, CRC(6054cbe0) SHA1(ec2f65e9c930250ee25fd064ee5ae76a7a9c61d9) )
+ ROM_LOAD16_BYTE( "243-c4.c4", 0x1000001, 0x800000, CRC(8bd2a9d2) SHA1(0935df65cd2b0891a708bcc0f1c188148058d4b5) )
+ ROM_LOAD16_BYTE( "243-c5.c5", 0x2000000, 0x800000, CRC(6a503dcf) SHA1(23241b16d7e20f923d41186b29487ab922c7f530) )
+ ROM_LOAD16_BYTE( "243-c6.c6", 0x2000001, 0x800000, CRC(ec9c36d0) SHA1(e145e9e359000dda6e1dfe95a996bc6d29cfca21) )
+ROM_END
+
+ROM_START( lb2te ) // unknown hack
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "243te.p1", 0x000000, 0x100000, CRC(8f9a24bf) SHA1(f7005ed9ab77d9991babfa72a68a2f535ac01064) )
+ ROM_LOAD16_WORD_SWAP( "243te.p2", 0x100000, 0x400000, CRC(37aaffa0) SHA1(4f16686956d2435d6c4339a5c49b352d0a98ecb7) )
+
+ NEO_SFIX_128K( "243-s1.s1", CRC(c9cd2298) SHA1(a9a18b5347f9dbe29a2ccb63fd4c8fd19537bf8b) )
+
+ NEO_BIOS_AUDIO_128K( "243-m1.m1", CRC(acf12d10) SHA1(6e6b98cc1fa44f24a5168877559b0055e6957b60) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "243-v1.v1", 0x000000, 0x400000, CRC(f7ee6fbb) SHA1(55137bcabeeb590e40a9b8a7c07dd106e4d12a90) )
+ ROM_LOAD( "243-v2.v2", 0x400000, 0x400000, CRC(aa9e4df6) SHA1(a0b91f63e2552a8ad9e0d1af00e2c38288637161) )
+ ROM_LOAD( "243-v3.v3", 0x800000, 0x400000, CRC(4ac750b2) SHA1(585a154acc67bd84ea5b944686b78ed082b768d9) )
+ ROM_LOAD( "243-v4.v4", 0xc00000, 0x400000, CRC(f5c64ba6) SHA1(2eac455def8c27090862cc042f65a3a8aad88283) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "243-c1.c1", 0x0000000, 0x800000, CRC(5839444d) SHA1(0616921c4cce20422563578bd0e806d359508599) )
+ ROM_LOAD16_BYTE( "243-c2.c2", 0x0000001, 0x800000, CRC(dd087428) SHA1(ca27fdb60425664956a18c021ea465f452fb1527) )
+ ROM_LOAD16_BYTE( "243-c3.c3", 0x1000000, 0x800000, CRC(6054cbe0) SHA1(ec2f65e9c930250ee25fd064ee5ae76a7a9c61d9) )
+ ROM_LOAD16_BYTE( "243-c4.c4", 0x1000001, 0x800000, CRC(8bd2a9d2) SHA1(0935df65cd2b0891a708bcc0f1c188148058d4b5) )
+ ROM_LOAD16_BYTE( "243-c5.c5", 0x2000000, 0x800000, CRC(6a503dcf) SHA1(23241b16d7e20f923d41186b29487ab922c7f530) )
+ ROM_LOAD16_BYTE( "243-c6.c6", 0x2000001, 0x800000, CRC(ec9c36d0) SHA1(e145e9e359000dda6e1dfe95a996bc6d29cfca21) )
+ROM_END
+
+ROM_START( lb2uh ) // lastb2uh in multijet
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "243uh.p1", 0x000000, 0x100000, CRC(158d66bd) SHA1(21a518465a21760e8df5bfe39c87abed07f8d654) )
+ ROM_LOAD16_WORD_SWAP( "243-pg2.sp2", 0x100000, 0x400000, CRC(add4a30b) SHA1(7db62564db49fe0218cbb35b119d62582a24d658) )
+
+ NEO_SFIX_128K( "243b.s1", CRC(357e4638) SHA1(92bfc78749c00662225ada98eecc562fd2984e3e) )
+
+ NEO_BIOS_AUDIO_128K( "243-m1.m1", CRC(acf12d10) SHA1(6e6b98cc1fa44f24a5168877559b0055e6957b60) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "243-v1.v1", 0x000000, 0x400000, CRC(f7ee6fbb) SHA1(55137bcabeeb590e40a9b8a7c07dd106e4d12a90) )
+ ROM_LOAD( "243-v2.v2", 0x400000, 0x400000, CRC(aa9e4df6) SHA1(a0b91f63e2552a8ad9e0d1af00e2c38288637161) )
+ ROM_LOAD( "243-v3.v3", 0x800000, 0x400000, CRC(4ac750b2) SHA1(585a154acc67bd84ea5b944686b78ed082b768d9) )
+ ROM_LOAD( "243-v4.v4", 0xc00000, 0x400000, CRC(f5c64ba6) SHA1(2eac455def8c27090862cc042f65a3a8aad88283) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "243-c1.c1", 0x0000000, 0x800000, CRC(5839444d) SHA1(0616921c4cce20422563578bd0e806d359508599) )
+ ROM_LOAD16_BYTE( "243-c2.c2", 0x0000001, 0x800000, CRC(dd087428) SHA1(ca27fdb60425664956a18c021ea465f452fb1527) )
+ ROM_LOAD16_BYTE( "243-c3.c3", 0x1000000, 0x800000, CRC(6054cbe0) SHA1(ec2f65e9c930250ee25fd064ee5ae76a7a9c61d9) )
+ ROM_LOAD16_BYTE( "243-c4.c4", 0x1000001, 0x800000, CRC(8bd2a9d2) SHA1(0935df65cd2b0891a708bcc0f1c188148058d4b5) )
+ ROM_LOAD16_BYTE( "243-c5.c5", 0x2000000, 0x800000, CRC(6a503dcf) SHA1(23241b16d7e20f923d41186b29487ab922c7f530) )
+ ROM_LOAD16_BYTE( "243-c6.c6", 0x2000001, 0x800000, CRC(ec9c36d0) SHA1(e145e9e359000dda6e1dfe95a996bc6d29cfca21) )
+ROM_END
+
+ROM_START( lb2wh ) /* The Last Blade 2 - Hack by Wesker - (Can choose Kaede black haired, Kouryu, Hagure and Kotetsu 20031017) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "243wh.p1", 0x000000, 0x100000, CRC(6ddcebf5) SHA1(4a93c0cb594e12cafea3b1137889187a524c5d79) )
+ ROM_LOAD16_WORD_SWAP( "243-pg2.sp2", 0x100000, 0x400000, CRC(add4a30b) SHA1(7db62564db49fe0218cbb35b119d62582a24d658) )
+
+ NEO_SFIX_128K( "243-s1.s1", CRC(c9cd2298) SHA1(a9a18b5347f9dbe29a2ccb63fd4c8fd19537bf8b) )
+
+ NEO_BIOS_AUDIO_128K( "243-m1.m1", CRC(acf12d10) SHA1(6e6b98cc1fa44f24a5168877559b0055e6957b60) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "243-v1.v1", 0x000000, 0x400000, CRC(f7ee6fbb) SHA1(55137bcabeeb590e40a9b8a7c07dd106e4d12a90) )
+ ROM_LOAD( "243-v2.v2", 0x400000, 0x400000, CRC(aa9e4df6) SHA1(a0b91f63e2552a8ad9e0d1af00e2c38288637161) )
+ ROM_LOAD( "243-v3.v3", 0x800000, 0x400000, CRC(4ac750b2) SHA1(585a154acc67bd84ea5b944686b78ed082b768d9) )
+ ROM_LOAD( "243-v4.v4", 0xc00000, 0x400000, CRC(f5c64ba6) SHA1(2eac455def8c27090862cc042f65a3a8aad88283) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "243-c1.c1", 0x0000000, 0x800000, CRC(5839444d) SHA1(0616921c4cce20422563578bd0e806d359508599) )
+ ROM_LOAD16_BYTE( "243-c2.c2", 0x0000001, 0x800000, CRC(dd087428) SHA1(ca27fdb60425664956a18c021ea465f452fb1527) )
+ ROM_LOAD16_BYTE( "243-c3.c3", 0x1000000, 0x800000, CRC(6054cbe0) SHA1(ec2f65e9c930250ee25fd064ee5ae76a7a9c61d9) )
+ ROM_LOAD16_BYTE( "243-c4.c4", 0x1000001, 0x800000, CRC(8bd2a9d2) SHA1(0935df65cd2b0891a708bcc0f1c188148058d4b5) )
+ ROM_LOAD16_BYTE( "243-c5.c5", 0x2000000, 0x800000, CRC(6a503dcf) SHA1(23241b16d7e20f923d41186b29487ab922c7f530) )
+ ROM_LOAD16_BYTE( "243-c6.c6", 0x2000001, 0x800000, CRC(ec9c36d0) SHA1(e145e9e359000dda6e1dfe95a996bc6d29cfca21) )
+ROM_END
+
+ROM_START( lb2yd ) /* The Last Blade 2 - Hack by Ydmis - (Ultra kill start is max) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "243yd.p1", 0x000000, 0x100000, CRC(095f3790) SHA1(d1de61b9019afd52042d5bc06aaca97db805dd45) )
+ ROM_LOAD16_WORD_SWAP( "243-pg2.sp2", 0x100000, 0x400000, CRC(add4a30b) SHA1(7db62564db49fe0218cbb35b119d62582a24d658) )
+
+ NEO_SFIX_128K( "243-s1.s1", CRC(c9cd2298) SHA1(a9a18b5347f9dbe29a2ccb63fd4c8fd19537bf8b) )
+
+ NEO_BIOS_AUDIO_128K( "243-m1.m1", CRC(acf12d10) SHA1(6e6b98cc1fa44f24a5168877559b0055e6957b60) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "243-v1.v1", 0x000000, 0x400000, CRC(f7ee6fbb) SHA1(55137bcabeeb590e40a9b8a7c07dd106e4d12a90) )
+ ROM_LOAD( "243-v2.v2", 0x400000, 0x400000, CRC(aa9e4df6) SHA1(a0b91f63e2552a8ad9e0d1af00e2c38288637161) )
+ ROM_LOAD( "243-v3.v3", 0x800000, 0x400000, CRC(4ac750b2) SHA1(585a154acc67bd84ea5b944686b78ed082b768d9) )
+ ROM_LOAD( "243-v4.v4", 0xc00000, 0x400000, CRC(f5c64ba6) SHA1(2eac455def8c27090862cc042f65a3a8aad88283) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "243-c1.c1", 0x0000000, 0x800000, CRC(5839444d) SHA1(0616921c4cce20422563578bd0e806d359508599) )
+ ROM_LOAD16_BYTE( "243-c2.c2", 0x0000001, 0x800000, CRC(dd087428) SHA1(ca27fdb60425664956a18c021ea465f452fb1527) )
+ ROM_LOAD16_BYTE( "243-c3.c3", 0x1000000, 0x800000, CRC(6054cbe0) SHA1(ec2f65e9c930250ee25fd064ee5ae76a7a9c61d9) )
+ ROM_LOAD16_BYTE( "243-c4.c4", 0x1000001, 0x800000, CRC(8bd2a9d2) SHA1(0935df65cd2b0891a708bcc0f1c188148058d4b5) )
+ ROM_LOAD16_BYTE( "243-c5.c5", 0x2000000, 0x800000, CRC(6a503dcf) SHA1(23241b16d7e20f923d41186b29487ab922c7f530) )
+ ROM_LOAD16_BYTE( "243-c6.c6", 0x2000001, 0x800000, CRC(ec9c36d0) SHA1(e145e9e359000dda6e1dfe95a996bc6d29cfca21) )
+ROM_END
+
+
+
+GAME( 1997, lba, lastblad, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Last Blade (set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, lbb, lastblad, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Kurouri, Wesker", "Last Blade (3 Add Char - Wesker mod)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, lbboss, lastblad, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Kurouri", "Last Blade (3 Add Char)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, lbd, lastblad, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Last Blade (Boss hack by Creamymami/Kurouri/Wesker/Ydmis)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, lbe, lastblad, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami, Kurouri, Wesker and Ydmis", "Last Blade (3 Add Char - Ultra kill start max - Ultra pow hack - Wesker mod.)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, lbeh, lastblad, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Kurouri, Ydmis", "Last Blade (3 Add Char - Ultra kill start max)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, lbeh2, lastblad, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Last Blade (2 Add Char)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, lbeho, lastblad, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Last Blade (2 Add Char - Ultra kill start max)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, lbha, lastblad, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Robert", "Last Blade (Boss hack, Alternate Set)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, lbseh, lastblad, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami, Kurouri, Ydmis", "Last Blade (3 Add Char - Ultra kill start max - Ultra pow hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, lbsk, lastblad, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGCG", "Last Blade Special Moves Revision Final (EGCG)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, lbsp, lastblad, lbsp, neogeo, neogeo_hbmame, lbsp, ROT0, "GSC2007", "Last Blade (Special v1.0.0701)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, lbsp2, lastblad, lbsp, neogeo, neogeo_hbmame, lbsp, ROT0, "GSC2007", "Last Blade (Special v1.1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, lby, lastblad, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Last Blade (Add Musashi)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1998, lb2a, lastbld2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Alphax2", "Last Blade 2 (Add Kouryu)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, lb2b, lastbld2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Dodowang", "Last Blade 2 (Boss Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, lb2bh, lastbld2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "007325", "Last Blade 2 (Boss Easy Moves hack by 007325 2009-03-06)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, lb2bhd, lastbld2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Dodowang", "Last Blade 2 (Add Char with icons - EX mode choosing Speed + pressing C)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, lb2easy, lastbld2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "FGCH, Raymonose", "Last Blade 2 (Moves optimized for keyboard)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, lb2ed, lastbld2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Dodowang", "Last Blade 2 (EX mode choosing Speed + pressing C)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, lb2ebd, lastbld2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Dodowang", "Last Blade 2 (Add Char - EX mode choosing Speed + pressing C)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, lb2eh, lastbld2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis, Zhangshee", "Last Blade 2 (4 Add Char - Ultra kill start max set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, lb2eh2, lastbld2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Last Blade 2 (4 Add Char - Ultra kill start max - Ultra pow hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, lb2eho, lastbld2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Last Blade 2 (4 Add Char)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, lb2ehu, lastbld2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Last Blade 2 (4 Add Char - Ultra kill start max set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, lb2pl, lastbld2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "FCHT", "Last Blade 2 (Plus)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, lb2te, lastbld2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Last Blade 2 (hack te)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, lb2uh, lastbld2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yano", "Last Blade 2 (Yano's Ultimate hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, lb2wh, lastbld2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker", "Last Blade 2 (4 Add Char - 031017)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, lb2yd, lastbld2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Last Blade 2 (Ultra kill start max)", MACHINE_SUPPORTS_SAVE )
+
+
+//PSmame
+
+
+ROM_START( lastblads01 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "234hc01.p1", 0x000000, 0x100000, CRC(9a6cee1e) SHA1(102570f23eeef418a308088c0a05eb4345d19ff4) )
+ ROM_LOAD16_WORD_SWAP( "234-p2.sp2", 0x100000, 0x400000, CRC(0fdc289e) SHA1(1ff31c0b0f4f9ddbedaf4bcf927faaae81892ec7) )
+
+ NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) )
+
+ NEO_BIOS_AUDIO_128K( "234-m1.m1", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "234-v1.v1", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) )
+ ROM_LOAD( "234-v2.v2", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) )
+ ROM_LOAD( "234-v3.v3", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) )
+ ROM_LOAD( "234-v4.v4", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20A1F4833E5E29BA0073C1712D7A17AB7A2A035C) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "234-c1.c1", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) )
+ ROM_LOAD16_BYTE( "234-c2.c2", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) )
+ ROM_LOAD16_BYTE( "234-c3.c3", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) )
+ ROM_LOAD16_BYTE( "234-c4.c4", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) )
+ ROM_LOAD16_BYTE( "234-c5.c5", 0x2000000, 0x400000, CRC(1ba80cee) SHA1(0c59057183b5279b747e73213b4cd3c6d7ad9eb1) )
+ ROM_LOAD16_BYTE( "234-c6.c6", 0x2000001, 0x400000, CRC(beafd091) SHA1(55df9cc128eb0f00856de3996c946e3efe8f09a5) )
+ROM_END
+
+ROM_START( lastblads02 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "234hc02.p1", 0x000000, 0x100000, CRC(1f44f69a) SHA1(681a4d4c54a93e59f57e877fab52ff57c1893290) )
+ ROM_LOAD16_WORD_SWAP( "234-p2.sp2", 0x100000, 0x400000, CRC(0fdc289e) SHA1(1ff31c0b0f4f9ddbedaf4bcf927faaae81892ec7) )
+
+ NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) )
+
+ NEO_BIOS_AUDIO_128K( "234-m1.m1", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "234-v1.v1", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) )
+ ROM_LOAD( "234-v2.v2", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) )
+ ROM_LOAD( "234-v3.v3", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) )
+ ROM_LOAD( "234-v4.v4", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20A1F4833E5E29BA0073C1712D7A17AB7A2A035C) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "234-c1.c1", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) )
+ ROM_LOAD16_BYTE( "234-c2.c2", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) )
+ ROM_LOAD16_BYTE( "234-c3.c3", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) )
+ ROM_LOAD16_BYTE( "234-c4.c4", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) )
+ ROM_LOAD16_BYTE( "234-c5.c5", 0x2000000, 0x400000, CRC(1ba80cee) SHA1(0c59057183b5279b747e73213b4cd3c6d7ad9eb1) )
+ ROM_LOAD16_BYTE( "234-c6.c6", 0x2000001, 0x400000, CRC(beafd091) SHA1(55df9cc128eb0f00856de3996c946e3efe8f09a5) )
+ROM_END
+
+ROM_START( lastblads03 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "234hc03.p1", 0x000000, 0x100000, CRC(2ce542f8) SHA1(e1e2e39c73b79b4f6a8c04b6d33c67a7d64a1cdf) )
+ ROM_LOAD16_WORD_SWAP( "234-p2.sp2", 0x100000, 0x400000, CRC(0fdc289e) SHA1(1ff31c0b0f4f9ddbedaf4bcf927faaae81892ec7) )
+
+ NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) )
+
+ NEO_BIOS_AUDIO_128K( "234-m1.m1", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "234-v1.v1", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) )
+ ROM_LOAD( "234-v2.v2", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) )
+ ROM_LOAD( "234-v3.v3", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) )
+ ROM_LOAD( "234-v4.v4", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20A1F4833E5E29BA0073C1712D7A17AB7A2A035C) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "234-c1.c1", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) )
+ ROM_LOAD16_BYTE( "234-c2.c2", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) )
+ ROM_LOAD16_BYTE( "234-c3.c3", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) )
+ ROM_LOAD16_BYTE( "234-c4.c4", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) )
+ ROM_LOAD16_BYTE( "234-c5.c5", 0x2000000, 0x400000, CRC(1ba80cee) SHA1(0c59057183b5279b747e73213b4cd3c6d7ad9eb1) )
+ ROM_LOAD16_BYTE( "234-c6.c6", 0x2000001, 0x400000, CRC(beafd091) SHA1(55df9cc128eb0f00856de3996c946e3efe8f09a5) )
+ROM_END
+
+ROM_START( lastblads04 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "234hc04.p1", 0x000000, 0x100000, CRC(3c90d292) SHA1(03d83cfd3e87829d35964d5053b0f4a13c6133ff) )
+ ROM_LOAD16_WORD_SWAP( "234-p2.sp2", 0x100000, 0x400000, CRC(0fdc289e) SHA1(1ff31c0b0f4f9ddbedaf4bcf927faaae81892ec7) )
+
+ NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) )
+
+ NEO_BIOS_AUDIO_128K( "234-m1.m1", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "234-v1.v1", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) )
+ ROM_LOAD( "234-v2.v2", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) )
+ ROM_LOAD( "234-v3.v3", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) )
+ ROM_LOAD( "234-v4.v4", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20A1F4833E5E29BA0073C1712D7A17AB7A2A035C) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "234-c1.c1", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) )
+ ROM_LOAD16_BYTE( "234-c2.c2", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) )
+ ROM_LOAD16_BYTE( "234-c3.c3", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) )
+ ROM_LOAD16_BYTE( "234-c4.c4", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) )
+ ROM_LOAD16_BYTE( "234-c5.c5", 0x2000000, 0x400000, CRC(1ba80cee) SHA1(0c59057183b5279b747e73213b4cd3c6d7ad9eb1) )
+ ROM_LOAD16_BYTE( "234-c6.c6", 0x2000001, 0x400000, CRC(beafd091) SHA1(55df9cc128eb0f00856de3996c946e3efe8f09a5) )
+ROM_END
+
+ROM_START( lastblads05 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "234hc05.p1", 0x000000, 0x100000, CRC(f63898fc) SHA1(5e18b397d9503ea15fa9c747025773b9d0471705) )
+ ROM_LOAD16_WORD_SWAP( "234-p2.sp2", 0x100000, 0x400000, CRC(0fdc289e) SHA1(1ff31c0b0f4f9ddbedaf4bcf927faaae81892ec7) )
+
+ NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) )
+
+ NEO_BIOS_AUDIO_128K( "234-m1.m1", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "234-v1.v1", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) )
+ ROM_LOAD( "234-v2.v2", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) )
+ ROM_LOAD( "234-v3.v3", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) )
+ ROM_LOAD( "234-v4.v4", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20A1F4833E5E29BA0073C1712D7A17AB7A2A035C) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "234-c1.c1", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) )
+ ROM_LOAD16_BYTE( "234-c2.c2", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) )
+ ROM_LOAD16_BYTE( "234-c3.c3", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) )
+ ROM_LOAD16_BYTE( "234-c4.c4", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) )
+ ROM_LOAD16_BYTE( "234-c5.c5", 0x2000000, 0x400000, CRC(1ba80cee) SHA1(0c59057183b5279b747e73213b4cd3c6d7ad9eb1) )
+ ROM_LOAD16_BYTE( "234-c6.c6", 0x2000001, 0x400000, CRC(beafd091) SHA1(55df9cc128eb0f00856de3996c946e3efe8f09a5) )
+ROM_END
+
+ROM_START( lastblads06 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "234hc06.p1", 0x000000, 0x100000, CRC(5d6a1d49) SHA1(79f94778c9d47f42405d9bd8bcdbe723d5d66d48) )
+ ROM_LOAD16_WORD_SWAP( "234-p2.sp2", 0x100000, 0x400000, CRC(0fdc289e) SHA1(1ff31c0b0f4f9ddbedaf4bcf927faaae81892ec7) )
+
+ NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) )
+
+ NEO_BIOS_AUDIO_128K( "234-m1.m1", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "234-v1.v1", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) )
+ ROM_LOAD( "234-v2.v2", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) )
+ ROM_LOAD( "234-v3.v3", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) )
+ ROM_LOAD( "234-v4.v4", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20A1F4833E5E29BA0073C1712D7A17AB7A2A035C) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "234-c1.c1", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) )
+ ROM_LOAD16_BYTE( "234-c2.c2", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) )
+ ROM_LOAD16_BYTE( "234-c3.c3", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) )
+ ROM_LOAD16_BYTE( "234-c4.c4", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) )
+ ROM_LOAD16_BYTE( "234-c5.c5", 0x2000000, 0x400000, CRC(1ba80cee) SHA1(0c59057183b5279b747e73213b4cd3c6d7ad9eb1) )
+ ROM_LOAD16_BYTE( "234-c6.c6", 0x2000001, 0x400000, CRC(beafd091) SHA1(55df9cc128eb0f00856de3996c946e3efe8f09a5) )
+ROM_END
+
+ROM_START( lastblads07 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "234hc07.p1", 0x000000, 0x100000, CRC(97c3a7e6) SHA1(cf6c6c267782048b08c76f2d1ba8ba34eff90c1e) )
+ ROM_LOAD16_WORD_SWAP( "234-p2.sp2", 0x100000, 0x400000, CRC(0fdc289e) SHA1(1ff31c0b0f4f9ddbedaf4bcf927faaae81892ec7) )
+
+ NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) )
+
+ NEO_BIOS_AUDIO_128K( "234-m1.m1", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "234-v1.v1", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) )
+ ROM_LOAD( "234-v2.v2", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) )
+ ROM_LOAD( "234-v3.v3", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) )
+ ROM_LOAD( "234-v4.v4", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20A1F4833E5E29BA0073C1712D7A17AB7A2A035C) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "234-c1.c1", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) )
+ ROM_LOAD16_BYTE( "234-c2.c2", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) )
+ ROM_LOAD16_BYTE( "234-c3.c3", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) )
+ ROM_LOAD16_BYTE( "234-c4.c4", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) )
+ ROM_LOAD16_BYTE( "234-c5.c5", 0x2000000, 0x400000, CRC(1ba80cee) SHA1(0c59057183b5279b747e73213b4cd3c6d7ad9eb1) )
+ ROM_LOAD16_BYTE( "234-c6.c6", 0x2000001, 0x400000, CRC(beafd091) SHA1(55df9cc128eb0f00856de3996c946e3efe8f09a5) )
+ROM_END
+
+ROM_START( lastblads08 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "234hc08.p1", 0x000000, 0x100000, CRC(10ce3e1a) SHA1(ff46ad9068c735667cba4783c530fed3a30067a0) )
+ ROM_LOAD16_WORD_SWAP( "234-p2.sp2", 0x100000, 0x400000, CRC(0fdc289e) SHA1(1ff31c0b0f4f9ddbedaf4bcf927faaae81892ec7) )
+
+ NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) )
+
+ NEO_BIOS_AUDIO_128K( "234-m1.m1", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "234-v1.v1", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) )
+ ROM_LOAD( "234-v2.v2", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) )
+ ROM_LOAD( "234-v3.v3", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) )
+ ROM_LOAD( "234-v4.v4", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20A1F4833E5E29BA0073C1712D7A17AB7A2A035C) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "234-c1.c1", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) )
+ ROM_LOAD16_BYTE( "234-c2.c2", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) )
+ ROM_LOAD16_BYTE( "234-c3.c3", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) )
+ ROM_LOAD16_BYTE( "234-c4.c4", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) )
+ ROM_LOAD16_BYTE( "234-c5.c5", 0x2000000, 0x400000, CRC(1ba80cee) SHA1(0c59057183b5279b747e73213b4cd3c6d7ad9eb1) )
+ ROM_LOAD16_BYTE( "234-c6.c6", 0x2000001, 0x400000, CRC(beafd091) SHA1(55df9cc128eb0f00856de3996c946e3efe8f09a5) )
+ROM_END
+
+ROM_START( lastblads09 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "234hc09.p1", 0x000000, 0x100000, CRC(de392c42) SHA1(4d23a68bf623e69c59f9890cb6b4025d5b3229b0) )
+ ROM_LOAD16_WORD_SWAP( "234-p2.sp2", 0x100000, 0x400000, CRC(0fdc289e) SHA1(1ff31c0b0f4f9ddbedaf4bcf927faaae81892ec7) )
+
+ NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) )
+
+ NEO_BIOS_AUDIO_128K( "234-m1.m1", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "234-v1.v1", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) )
+ ROM_LOAD( "234-v2.v2", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) )
+ ROM_LOAD( "234-v3.v3", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) )
+ ROM_LOAD( "234-v4.v4", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20A1F4833E5E29BA0073C1712D7A17AB7A2A035C) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "234-c1.c1", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) )
+ ROM_LOAD16_BYTE( "234-c2.c2", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) )
+ ROM_LOAD16_BYTE( "234-c3.c3", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) )
+ ROM_LOAD16_BYTE( "234-c4.c4", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) )
+ ROM_LOAD16_BYTE( "234-c5.c5", 0x2000000, 0x400000, CRC(1ba80cee) SHA1(0c59057183b5279b747e73213b4cd3c6d7ad9eb1) )
+ ROM_LOAD16_BYTE( "234-c6.c6", 0x2000001, 0x400000, CRC(beafd091) SHA1(55df9cc128eb0f00856de3996c946e3efe8f09a5) )
+ROM_END
+
+ROM_START( lastblads10 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "234hc10.p1", 0x000000, 0x100000, CRC(f446d22a) SHA1(9e14466849d70ba1f85931bde62de44e61a872e9) )
+ ROM_LOAD16_WORD_SWAP( "234-p2.sp2", 0x100000, 0x400000, CRC(0fdc289e) SHA1(1ff31c0b0f4f9ddbedaf4bcf927faaae81892ec7) )
+
+ NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) )
+
+ NEO_BIOS_AUDIO_128K( "234-m1.m1", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "234-v1.v1", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) )
+ ROM_LOAD( "234-v2.v2", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) )
+ ROM_LOAD( "234-v3.v3", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) )
+ ROM_LOAD( "234-v4.v4", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20A1F4833E5E29BA0073C1712D7A17AB7A2A035C) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "234-c1.c1", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) )
+ ROM_LOAD16_BYTE( "234-c2.c2", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) )
+ ROM_LOAD16_BYTE( "234-c3.c3", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) )
+ ROM_LOAD16_BYTE( "234-c4.c4", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) )
+ ROM_LOAD16_BYTE( "234-c5.c5", 0x2000000, 0x400000, CRC(1ba80cee) SHA1(0c59057183b5279b747e73213b4cd3c6d7ad9eb1) )
+ ROM_LOAD16_BYTE( "234-c6.c6", 0x2000001, 0x400000, CRC(beafd091) SHA1(55df9cc128eb0f00856de3996c946e3efe8f09a5) )
+ROM_END
+
+ROM_START( lastblads11 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "234hc11.p1", 0x000000, 0x100000, CRC(feacb357) SHA1(859dfc0b4dc457365aa07bfc144950f4c17fe4cd) )
+ ROM_LOAD16_WORD_SWAP( "234-p2.sp2", 0x100000, 0x400000, CRC(0fdc289e) SHA1(1ff31c0b0f4f9ddbedaf4bcf927faaae81892ec7) )
+
+ NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) )
+
+ NEO_BIOS_AUDIO_128K( "234-m1.m1", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "234-v1.v1", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) )
+ ROM_LOAD( "234-v2.v2", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) )
+ ROM_LOAD( "234-v3.v3", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) )
+ ROM_LOAD( "234-v4.v4", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20A1F4833E5E29BA0073C1712D7A17AB7A2A035C) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "234-c1.c1", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) )
+ ROM_LOAD16_BYTE( "234-c2.c2", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) )
+ ROM_LOAD16_BYTE( "234-c3.c3", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) )
+ ROM_LOAD16_BYTE( "234-c4.c4", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) )
+ ROM_LOAD16_BYTE( "234-c5.c5", 0x2000000, 0x400000, CRC(1ba80cee) SHA1(0c59057183b5279b747e73213b4cd3c6d7ad9eb1) )
+ ROM_LOAD16_BYTE( "234-c6.c6", 0x2000001, 0x400000, CRC(beafd091) SHA1(55df9cc128eb0f00856de3996c946e3efe8f09a5) )
+ROM_END
+
+ROM_START( lastblads12 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "234hc12.p1", 0x000000, 0x100000, CRC(9360fee1) SHA1(ed36b52e0cb05c38277c98cd3ab44af0064ca057) )
+ ROM_LOAD16_WORD_SWAP( "234-p2.sp2", 0x100000, 0x400000, CRC(0fdc289e) SHA1(1ff31c0b0f4f9ddbedaf4bcf927faaae81892ec7) )
+
+ NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) )
+
+ NEO_BIOS_AUDIO_128K( "234-m1.m1", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "234-v1.v1", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) )
+ ROM_LOAD( "234-v2.v2", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) )
+ ROM_LOAD( "234-v3.v3", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) )
+ ROM_LOAD( "234-v4.v4", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20A1F4833E5E29BA0073C1712D7A17AB7A2A035C) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "234-c1.c1", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) )
+ ROM_LOAD16_BYTE( "234-c2.c2", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) )
+ ROM_LOAD16_BYTE( "234-c3.c3", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) )
+ ROM_LOAD16_BYTE( "234-c4.c4", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) )
+ ROM_LOAD16_BYTE( "234-c5.c5", 0x2000000, 0x400000, CRC(1ba80cee) SHA1(0c59057183b5279b747e73213b4cd3c6d7ad9eb1) )
+ ROM_LOAD16_BYTE( "234-c6.c6", 0x2000001, 0x400000, CRC(beafd091) SHA1(55df9cc128eb0f00856de3996c946e3efe8f09a5) )
+ROM_END
+
+ROM_START( lastblads13 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "234hc13.p1", 0x000000, 0x100000, CRC(802c7fbe) SHA1(8ca8051ccfe1614fc49a285c3b448ec5ca2f7622) )
+ ROM_LOAD16_WORD_SWAP( "234-p2.sp2", 0x100000, 0x400000, CRC(0fdc289e) SHA1(1ff31c0b0f4f9ddbedaf4bcf927faaae81892ec7) )
+
+ NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) )
+
+ NEO_BIOS_AUDIO_128K( "234-m1.m1", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "234-v1.v1", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) )
+ ROM_LOAD( "234-v2.v2", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) )
+ ROM_LOAD( "234-v3.v3", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) )
+ ROM_LOAD( "234-v4.v4", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20A1F4833E5E29BA0073C1712D7A17AB7A2A035C) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "234-c1.c1", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) )
+ ROM_LOAD16_BYTE( "234-c2.c2", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) )
+ ROM_LOAD16_BYTE( "234-c3.c3", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) )
+ ROM_LOAD16_BYTE( "234-c4.c4", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) )
+ ROM_LOAD16_BYTE( "234-c5.c5", 0x2000000, 0x400000, CRC(1ba80cee) SHA1(0c59057183b5279b747e73213b4cd3c6d7ad9eb1) )
+ ROM_LOAD16_BYTE( "234-c6.c6", 0x2000001, 0x400000, CRC(beafd091) SHA1(55df9cc128eb0f00856de3996c946e3efe8f09a5) )
+ROM_END
+
+ROM_START( lastblads14 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "234hc14.p1", 0x000000, 0x100000, CRC(b56b70c8) SHA1(bbc175b83e2fa933e3295c68f01d0a65f1c40091) )
+ ROM_LOAD16_WORD_SWAP( "234-p2.sp2", 0x100000, 0x400000, CRC(0fdc289e) SHA1(1ff31c0b0f4f9ddbedaf4bcf927faaae81892ec7) )
+
+ NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) )
+
+ NEO_BIOS_AUDIO_128K( "234-m1.m1", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "234-v1.v1", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) )
+ ROM_LOAD( "234-v2.v2", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) )
+ ROM_LOAD( "234-v3.v3", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) )
+ ROM_LOAD( "234-v4.v4", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20A1F4833E5E29BA0073C1712D7A17AB7A2A035C) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "234-c1.c1", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) )
+ ROM_LOAD16_BYTE( "234-c2.c2", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) )
+ ROM_LOAD16_BYTE( "234-c3.c3", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) )
+ ROM_LOAD16_BYTE( "234-c4.c4", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) )
+ ROM_LOAD16_BYTE( "234-c5.c5", 0x2000000, 0x400000, CRC(1ba80cee) SHA1(0c59057183b5279b747e73213b4cd3c6d7ad9eb1) )
+ ROM_LOAD16_BYTE( "234-c6.c6", 0x2000001, 0x400000, CRC(beafd091) SHA1(55df9cc128eb0f00856de3996c946e3efe8f09a5) )
+ROM_END
+
+ROM_START( lastblads15 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "234hc15.p1", 0x000000, 0x100000, CRC(e553248a) SHA1(265e98272dee24228f9d629f4312e356b965222c) )
+ ROM_LOAD16_WORD_SWAP( "234-p2.sp2", 0x100000, 0x400000, CRC(0fdc289e) SHA1(1ff31c0b0f4f9ddbedaf4bcf927faaae81892ec7) )
+
+ NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) )
+
+ NEO_BIOS_AUDIO_128K( "234-m1.m1", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "234-v1.v1", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) )
+ ROM_LOAD( "234-v2.v2", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) )
+ ROM_LOAD( "234-v3.v3", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) )
+ ROM_LOAD( "234-v4.v4", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20A1F4833E5E29BA0073C1712D7A17AB7A2A035C) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "234-c1.c1", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) )
+ ROM_LOAD16_BYTE( "234-c2.c2", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) )
+ ROM_LOAD16_BYTE( "234-c3.c3", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) )
+ ROM_LOAD16_BYTE( "234-c4.c4", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) )
+ ROM_LOAD16_BYTE( "234-c5.c5", 0x2000000, 0x400000, CRC(1ba80cee) SHA1(0c59057183b5279b747e73213b4cd3c6d7ad9eb1) )
+ ROM_LOAD16_BYTE( "234-c6.c6", 0x2000001, 0x400000, CRC(beafd091) SHA1(55df9cc128eb0f00856de3996c946e3efe8f09a5) )
+ROM_END
+
+ROM_START( lastblads16 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "234hc16.p1", 0x000000, 0x100000, CRC(e6ef0d21) SHA1(0c305d77ecbb33e574266d5b083073462fbfc12c) )
+ ROM_LOAD16_WORD_SWAP( "234-p2.sp2", 0x100000, 0x400000, CRC(0fdc289e) SHA1(1ff31c0b0f4f9ddbedaf4bcf927faaae81892ec7) )
+
+ NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) )
+
+ NEO_BIOS_AUDIO_128K( "234-m1.m1", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "234-v1.v1", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) )
+ ROM_LOAD( "234-v2.v2", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) )
+ ROM_LOAD( "234-v3.v3", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) )
+ ROM_LOAD( "234-v4.v4", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20A1F4833E5E29BA0073C1712D7A17AB7A2A035C) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "234-c1.c1", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) )
+ ROM_LOAD16_BYTE( "234-c2.c2", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) )
+ ROM_LOAD16_BYTE( "234-c3.c3", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) )
+ ROM_LOAD16_BYTE( "234-c4.c4", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) )
+ ROM_LOAD16_BYTE( "234-c5.c5", 0x2000000, 0x400000, CRC(1ba80cee) SHA1(0c59057183b5279b747e73213b4cd3c6d7ad9eb1) )
+ ROM_LOAD16_BYTE( "234-c6.c6", 0x2000001, 0x400000, CRC(beafd091) SHA1(55df9cc128eb0f00856de3996c946e3efe8f09a5) )
+ROM_END
+
+ROM_START( lastblads17 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "234hc17.p1", 0x000000, 0x100000, CRC(df71c06d) SHA1(fce804a7e6705c453b28a27b561230789a1beb2e) )
+ ROM_LOAD16_WORD_SWAP( "234-p2.sp2", 0x100000, 0x400000, CRC(0fdc289e) SHA1(1ff31c0b0f4f9ddbedaf4bcf927faaae81892ec7) )
+
+ NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) )
+
+ NEO_BIOS_AUDIO_128K( "234-m1.m1", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "234-v1.v1", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) )
+ ROM_LOAD( "234-v2.v2", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) )
+ ROM_LOAD( "234-v3.v3", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) )
+ ROM_LOAD( "234-v4.v4", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20A1F4833E5E29BA0073C1712D7A17AB7A2A035C) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "234-c1.c1", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) )
+ ROM_LOAD16_BYTE( "234-c2.c2", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) )
+ ROM_LOAD16_BYTE( "234-c3.c3", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) )
+ ROM_LOAD16_BYTE( "234-c4.c4", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) )
+ ROM_LOAD16_BYTE( "234-c5.c5", 0x2000000, 0x400000, CRC(1ba80cee) SHA1(0c59057183b5279b747e73213b4cd3c6d7ad9eb1) )
+ ROM_LOAD16_BYTE( "234-c6.c6", 0x2000001, 0x400000, CRC(beafd091) SHA1(55df9cc128eb0f00856de3996c946e3efe8f09a5) )
+ROM_END
+
+ROM_START( lastblads18 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "234hc18.p1", 0x000000, 0x100000, CRC(6c03045f) SHA1(b073da3d86ac5449a6e667742b11e740b355d6d1) )
+ ROM_LOAD16_WORD_SWAP( "234-p2.sp2", 0x100000, 0x400000, CRC(0fdc289e) SHA1(1ff31c0b0f4f9ddbedaf4bcf927faaae81892ec7) )
+
+ NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) )
+
+ NEO_BIOS_AUDIO_128K( "234-m1.m1", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "234-v1.v1", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) )
+ ROM_LOAD( "234-v2.v2", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) )
+ ROM_LOAD( "234-v3.v3", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) )
+ ROM_LOAD( "234-v4.v4", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20A1F4833E5E29BA0073C1712D7A17AB7A2A035C) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "234-c1.c1", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) )
+ ROM_LOAD16_BYTE( "234-c2.c2", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) )
+ ROM_LOAD16_BYTE( "234-c3.c3", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) )
+ ROM_LOAD16_BYTE( "234-c4.c4", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) )
+ ROM_LOAD16_BYTE( "234-c5.c5", 0x2000000, 0x400000, CRC(1ba80cee) SHA1(0c59057183b5279b747e73213b4cd3c6d7ad9eb1) )
+ ROM_LOAD16_BYTE( "234-c6.c6", 0x2000001, 0x400000, CRC(beafd091) SHA1(55df9cc128eb0f00856de3996c946e3efe8f09a5) )
+ROM_END
+
+ROM_START( lastblads19 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "234hc19.p1", 0x000000, 0x100000, CRC(cd01c06d) SHA1(d66142571afe07c6191b52f319f1bc8bc8541c14) )
+ ROM_LOAD16_WORD_SWAP( "234-p2.sp2", 0x100000, 0x400000, CRC(0fdc289e) SHA1(1ff31c0b0f4f9ddbedaf4bcf927faaae81892ec7) )
+
+ NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) )
+
+ NEO_BIOS_AUDIO_128K( "234-m1.m1", CRC(087628ea) SHA1(48dcf739bb16699af4ab8ed632b7dcb25e470e06) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "234-v1.v1", 0x000000, 0x400000, CRC(ed66b76f) SHA1(8a05ff06d9b6f01c6c16b3026282eaabb0e25b44) )
+ ROM_LOAD( "234-v2.v2", 0x400000, 0x400000, CRC(a0e7f6e2) SHA1(753ff74fa9294f695aae511ae01ead119b114a57) )
+ ROM_LOAD( "234-v3.v3", 0x800000, 0x400000, CRC(a506e1e2) SHA1(b3e04ba1a5cb50b77c6fbe9fe353b9b64b6f3f74) )
+ ROM_LOAD( "234-v4.v4", 0xc00000, 0x400000, CRC(0e34157f) SHA1(20A1F4833E5E29BA0073C1712D7A17AB7A2A035C) )
+
+ ROM_REGION( 0x2800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "234-c1.c1", 0x0000000, 0x800000, CRC(9f7e2bd3) SHA1(2828aca0c0f5802110f10453c1cf640f69736554) )
+ ROM_LOAD16_BYTE( "234-c2.c2", 0x0000001, 0x800000, CRC(80623d3c) SHA1(ad460615115ec8fb25206f012da59ecfc8059b64) )
+ ROM_LOAD16_BYTE( "234-c3.c3", 0x1000000, 0x800000, CRC(91ab1a30) SHA1(e3cf9133784bef2c8f1bfe45f277ccf82cc6f6a1) )
+ ROM_LOAD16_BYTE( "234-c4.c4", 0x1000001, 0x800000, CRC(3d60b037) SHA1(78a50233bcd19e92c7b6f7ee1a53417d9db21f6a) )
+ ROM_LOAD16_BYTE( "234-c5.c5", 0x2000000, 0x400000, CRC(1ba80cee) SHA1(0c59057183b5279b747e73213b4cd3c6d7ad9eb1) )
+ ROM_LOAD16_BYTE( "234-c6.c6", 0x2000001, 0x400000, CRC(beafd091) SHA1(55df9cc128eb0f00856de3996c946e3efe8f09a5) )
+ROM_END
+
+GAME( 1997, lastblads01, lastblad, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Last Blade (Max Power Set 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, lastblads02, lastblad, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Last Blade (Max Power Set 02)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, lastblads03, lastblad, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Last Blade (Max Power Set 03)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, lastblads04, lastblad, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Last Blade (Max Power Set 04)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, lastblads05, lastblad, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Last Blade (Max Power Set 05)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, lastblads06, lastblad, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Last Blade (Max Power Unlimite)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, lastblads07, lastblad, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Last Blade (Description Of Unknown Origin 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, lastblads08, lastblad, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Last Blade (Description Of Unknown Origin 02)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, lastblads09, lastblad, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Last Blade (Description Of Unknown Origin 03)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, lastblads10, lastblad, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Last Blade (Description Of Unknown Origin 04)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, lastblads11, lastblad, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Last Blade (Description Of Unknown Origin 05)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, lastblads12, lastblad, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Last Blade (Description Of Unknown Origin 06)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, lastblads13, lastblad, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Last Blade (Description Of Unknown Origin 07)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, lastblads14, lastblad, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Last Blade (Description Of Unknown Origin 08)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, lastblads15, lastblad, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Last Blade (Max Power Set 06)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, lastblads16, lastblad, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Last Blade (Max Power Set 07)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, lastblads17, lastblad, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Last Blade (Max Power Set 08)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, lastblads18, lastblad, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Last Blade (Description Of Unknown Origin 09)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, lastblads19, lastblad, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Last Blade (Description Of Unknown Origin 10)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/ngrbff.cpp b/src/hbmame/drivers/ngrbff.cpp
new file mode 100644
index 00000000000..5d338656bdc
--- /dev/null
+++ b/src/hbmame/drivers/ngrbff.cpp
@@ -0,0 +1,930 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+// Fatal Fury 1,2,3,special ; Real Bout Fatal Fury 1,2,special
+
+
+
+ROM_START( fatfurspb )
+ ROM_REGION( 0x180000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "058b.p1", 0x000000, 0x100000, CRC(1222cf0a) SHA1(dab98ef9464e8759433958663f2625912295822b) )
+ ROM_LOAD16_WORD_SWAP( "058-p2.sp2", 0x100000, 0x080000, CRC(d7c71a6b) SHA1(b3428063031a2e5857da40a5d2ffa87fb550c1bb) )
+
+ NEO_SFIX_128K( "058-s1.s1", CRC(2df03197) SHA1(24083cfc97e720ac9e131c9fe37df57e27c49294) )
+
+ NEO_BIOS_AUDIO_128K( "058-m1.m1", CRC(ccc5186e) SHA1(cf9091c523c182aebfb928c91640b2d72fd70123) )
+
+ ROM_REGION( 0x500000, "ymsnd", 0 )
+ ROM_LOAD( "058-v1.v1", 0x000000, 0x200000, CRC(55d7ce84) SHA1(05ac6a395d9bf9166925acca176a8d6129f533c8) )
+ ROM_LOAD( "058-v2.v2", 0x200000, 0x200000, CRC(ee080b10) SHA1(29814fc21bbe30d37745c8918fab00c83a309be4) )
+ ROM_LOAD( "058-v3.v3", 0x400000, 0x100000, CRC(f9eb3d4a) SHA1(d1747f9460b965f6daf4f881ed4ecd04c5253434) )
+
+ ROM_REGION( 0xc00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "058-c1.c1", 0x000000, 0x200000, CRC(044ab13c) SHA1(569d283638a132bc163faac2a9055497017ee0d2) )
+ ROM_LOAD16_BYTE( "058-c2.c2", 0x000001, 0x200000, CRC(11e6bf96) SHA1(c093a4f93f13e07b276e28b30c2a14dda9135d8f) )
+ ROM_LOAD16_BYTE( "058-c3.c3", 0x400000, 0x200000, CRC(6f7938d5) SHA1(be057b0a3faeb76d5fff161d3e6fea8a26e11d2c) )
+ ROM_LOAD16_BYTE( "058-c4.c4", 0x400001, 0x200000, CRC(4ad066ff) SHA1(4e304646d954d5f7bbabc5d068e85de31d38830f) )
+ ROM_LOAD16_BYTE( "058-c5.c5", 0x800000, 0x200000, CRC(49c5e0bf) SHA1(f3784178f90751990ea47a082a6aa869ee3566c9) )
+ ROM_LOAD16_BYTE( "058-c6.c6", 0x800001, 0x200000, CRC(8ff1f43d) SHA1(6180ceb5412a3e2e34e9513a3283b9f63087f747) )
+ROM_END
+
+ROM_START( fatfurspbs )
+ ROM_REGION( 0x180000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "058bs.p1", 0x000000, 0x100000, CRC(8cd18f7f) SHA1(1f7a550bb5c71495bd52c66ff289f64dfa778ee4) )
+ ROM_LOAD16_WORD_SWAP( "058-p2.sp2", 0x100000, 0x080000, CRC(d7c71a6b) SHA1(b3428063031a2e5857da40a5d2ffa87fb550c1bb) )
+
+ NEO_SFIX_128K( "058-s1.s1", CRC(2df03197) SHA1(24083cfc97e720ac9e131c9fe37df57e27c49294) )
+
+ NEO_BIOS_AUDIO_128K( "058-m1.m1", CRC(ccc5186e) SHA1(cf9091c523c182aebfb928c91640b2d72fd70123) )
+
+ ROM_REGION( 0x500000, "ymsnd", 0 )
+ ROM_LOAD( "058-v1.v1", 0x000000, 0x200000, CRC(55d7ce84) SHA1(05ac6a395d9bf9166925acca176a8d6129f533c8) )
+ ROM_LOAD( "058-v2.v2", 0x200000, 0x200000, CRC(ee080b10) SHA1(29814fc21bbe30d37745c8918fab00c83a309be4) )
+ ROM_LOAD( "058-v3.v3", 0x400000, 0x100000, CRC(f9eb3d4a) SHA1(d1747f9460b965f6daf4f881ed4ecd04c5253434) )
+
+ ROM_REGION( 0xc00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "058-c1.c1", 0x000000, 0x200000, CRC(044ab13c) SHA1(569d283638a132bc163faac2a9055497017ee0d2) )
+ ROM_LOAD16_BYTE( "058-c2.c2", 0x000001, 0x200000, CRC(11e6bf96) SHA1(c093a4f93f13e07b276e28b30c2a14dda9135d8f) )
+ ROM_LOAD16_BYTE( "058-c3.c3", 0x400000, 0x200000, CRC(6f7938d5) SHA1(be057b0a3faeb76d5fff161d3e6fea8a26e11d2c) )
+ ROM_LOAD16_BYTE( "058-c4.c4", 0x400001, 0x200000, CRC(4ad066ff) SHA1(4e304646d954d5f7bbabc5d068e85de31d38830f) )
+ ROM_LOAD16_BYTE( "058-c5.c5", 0x800000, 0x200000, CRC(49c5e0bf) SHA1(f3784178f90751990ea47a082a6aa869ee3566c9) )
+ ROM_LOAD16_BYTE( "058-c6.c6", 0x800001, 0x200000, CRC(8ff1f43d) SHA1(6180ceb5412a3e2e34e9513a3283b9f63087f747) )
+ROM_END
+
+ROM_START( fatfurspbt )
+ ROM_REGION( 0x180000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "058bt.p1", 0x000000, 0x100000, CRC(67354471) SHA1(e189eeef14be9ec02668f51151434f0ec481ea65) )
+ ROM_LOAD16_WORD_SWAP( "058-p2.sp2", 0x100000, 0x080000, CRC(d7c71a6b) SHA1(b3428063031a2e5857da40a5d2ffa87fb550c1bb) )
+
+ NEO_SFIX_128K( "058-s1.s1", CRC(2df03197) SHA1(24083cfc97e720ac9e131c9fe37df57e27c49294) )
+
+ NEO_BIOS_AUDIO_128K( "058-m1.m1", CRC(ccc5186e) SHA1(cf9091c523c182aebfb928c91640b2d72fd70123) )
+
+ ROM_REGION( 0x500000, "ymsnd", 0 )
+ ROM_LOAD( "058-v1.v1", 0x000000, 0x200000, CRC(55d7ce84) SHA1(05ac6a395d9bf9166925acca176a8d6129f533c8) )
+ ROM_LOAD( "058-v2.v2", 0x200000, 0x200000, CRC(ee080b10) SHA1(29814fc21bbe30d37745c8918fab00c83a309be4) )
+ ROM_LOAD( "058-v3.v3", 0x400000, 0x100000, CRC(f9eb3d4a) SHA1(d1747f9460b965f6daf4f881ed4ecd04c5253434) )
+
+ ROM_REGION( 0xc00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "058-c1.c1", 0x000000, 0x200000, CRC(044ab13c) SHA1(569d283638a132bc163faac2a9055497017ee0d2) )
+ ROM_LOAD16_BYTE( "058-c2.c2", 0x000001, 0x200000, CRC(11e6bf96) SHA1(c093a4f93f13e07b276e28b30c2a14dda9135d8f) )
+ ROM_LOAD16_BYTE( "058-c3.c3", 0x400000, 0x200000, CRC(6f7938d5) SHA1(be057b0a3faeb76d5fff161d3e6fea8a26e11d2c) )
+ ROM_LOAD16_BYTE( "058-c4.c4", 0x400001, 0x200000, CRC(4ad066ff) SHA1(4e304646d954d5f7bbabc5d068e85de31d38830f) )
+ ROM_LOAD16_BYTE( "058-c5.c5", 0x800000, 0x200000, CRC(49c5e0bf) SHA1(f3784178f90751990ea47a082a6aa869ee3566c9) )
+ ROM_LOAD16_BYTE( "058-c6.c6", 0x800001, 0x200000, CRC(8ff1f43d) SHA1(6180ceb5412a3e2e34e9513a3283b9f63087f747) )
+ROM_END
+
+ROM_START( fatfurspeh ) /* Fatal Fury Special - (fatfspeh) - Enhance by Dodowang - (Can choose Ryo Sakazaki - works in AES/MVS mode) */
+ ROM_REGION( 0x180000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "058eh.p1", 0x000000, 0x100000, CRC(5da7db92) SHA1(755C90B1A722A844C0E518CA188D915317C5ABB0) )
+ ROM_LOAD16_WORD_SWAP( "058-p2.sp2", 0x100000, 0x080000, CRC(d7c71a6b) SHA1(b3428063031a2e5857da40a5d2ffa87fb550c1bb) )
+
+ NEO_SFIX_128K( "058-s1.s1", CRC(2df03197) SHA1(24083cfc97e720ac9e131c9fe37df57e27c49294) )
+
+ NEO_BIOS_AUDIO_128K( "058-m1.m1", CRC(ccc5186e) SHA1(cf9091c523c182aebfb928c91640b2d72fd70123) )
+
+ ROM_REGION( 0x500000, "ymsnd", 0 )
+ ROM_LOAD( "058-v1.v1", 0x000000, 0x200000, CRC(55d7ce84) SHA1(05ac6a395d9bf9166925acca176a8d6129f533c8) )
+ ROM_LOAD( "058-v2.v2", 0x200000, 0x200000, CRC(ee080b10) SHA1(29814fc21bbe30d37745c8918fab00c83a309be4) )
+ ROM_LOAD( "058-v3.v3", 0x400000, 0x100000, CRC(f9eb3d4a) SHA1(d1747f9460b965f6daf4f881ed4ecd04c5253434) )
+
+ ROM_REGION( 0xc00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "058-c1.c1", 0x000000, 0x200000, CRC(044ab13c) SHA1(569d283638a132bc163faac2a9055497017ee0d2) )
+ ROM_LOAD16_BYTE( "058-c2.c2", 0x000001, 0x200000, CRC(11e6bf96) SHA1(c093a4f93f13e07b276e28b30c2a14dda9135d8f) )
+ ROM_LOAD16_BYTE( "058-c3.c3", 0x400000, 0x200000, CRC(6f7938d5) SHA1(be057b0a3faeb76d5fff161d3e6fea8a26e11d2c) )
+ ROM_LOAD16_BYTE( "058-c4.c4", 0x400001, 0x200000, CRC(4ad066ff) SHA1(4e304646d954d5f7bbabc5d068e85de31d38830f) )
+ ROM_LOAD16_BYTE( "058-c5.c5", 0x800000, 0x200000, CRC(49c5e0bf) SHA1(f3784178f90751990ea47a082a6aa869ee3566c9) )
+ ROM_LOAD16_BYTE( "058-c6.c6", 0x800001, 0x200000, CRC(8ff1f43d) SHA1(6180ceb5412a3e2e34e9513a3283b9f63087f747) )
+ROM_END
+
+
+ROM_START( fatfury2b )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "047b.p1", 0x000000, 0x080000, CRC(a94a8fa5) SHA1(313e40c50d761f509c9826f064a588738a1b64ec) )
+ ROM_LOAD16_WORD_SWAP( "047b.p2", 0x080000, 0x080000, CRC(2a9beac5) SHA1(61378f89d64fef4c172825694f83229c2ab1a7af) )
+
+ NEO_SFIX_128K( "047-s1.s1", CRC(d7dbbf39) SHA1(29253e596f475ebd41a6e3bb53952e3a0ccd2eed) )
+
+ NEO_BIOS_AUDIO_128K( "047-m1.m1", CRC(820b0ba7) SHA1(5708248d89446e49184eaadb52f7c61b2b6c13c5) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "047-v1.v1", 0x000000, 0x200000, CRC(d9d00784) SHA1(f6a91eada8c23aa4518c4b82eeebca69f79d845c) )
+ ROM_LOAD( "047-v2.v2", 0x200000, 0x200000, CRC(2c9a4b33) SHA1(d4a1c0951c02c8919b3ec32ed96933634ff9e54c) )
+
+ ROM_REGION( 0x800000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "047-c1.c1", 0x000000, 0x100000, CRC(f72a939e) SHA1(67fc398ec28061adca0d3be82bbe7297015800da) )
+ ROM_CONTINUE( 0x400000, 0x100000 )
+ ROM_LOAD16_BYTE( "047-c2.c2", 0x000001, 0x100000, CRC(05119a0d) SHA1(c2f100b73eb04f65b6ba6089d49aceb51b470ec6) )
+ ROM_CONTINUE( 0x400001, 0x100000 )
+ ROM_LOAD16_BYTE( "047-c3.c3", 0x200000, 0x100000, CRC(01e00738) SHA1(79654f24d777dd5eb68bafc3b8cb9db71d5822e2) )
+ ROM_CONTINUE( 0x600000, 0x100000 )
+ ROM_LOAD16_BYTE( "047-c4.c4", 0x200001, 0x100000, CRC(9fe27432) SHA1(89d22d77ba8bc6d1f6c974195c34ad61b9010de7) )
+ ROM_CONTINUE( 0x600001, 0x100000 )
+ROM_END
+
+
+ROM_START( fatfury3b ) /* Fatal Fury 3 - Hack by Creamymami - (Can choose Ryuji Yamazaki, Jin Chonshu and Jin Chonrei) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "069b.p1", 0x000000, 0x100000, CRC(743ad8a1) SHA1(962D11224B14BA9D5BE554E45B4ACA9E3A818610) )
+ ROM_LOAD16_WORD_SWAP( "069-sp2.sp2", 0x100000, 0x200000, CRC(dbe963ed) SHA1(8ece7f663cfe8e563576a397e41161d392cee67e) )
+
+ NEO_SFIX_128K( "069-s1.s1", CRC(0b33a800) SHA1(b7d2cc97da4f30ddebc7b801f5e1d17d2306b2db) )
+
+ NEO_BIOS_AUDIO_128K( "069-m1.m1", CRC(fce72926) SHA1(a40c74f793900b8542f0b8383ce4bf46fca112d4) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "069-v1.v1", 0x000000, 0x400000, CRC(2bdbd4db) SHA1(5f4fecf69c2329d699cbd45829c19303b1e2a80e) )
+ ROM_LOAD( "069-v2.v2", 0x400000, 0x400000, CRC(a698a487) SHA1(11b8bc53bc26a51f4a408e900e3769958625c4ed) )
+ ROM_LOAD( "069-v3.v3", 0x800000, 0x200000, CRC(581c5304) SHA1(e9550ec547b4f605afed996b22d711f49b48fa92) )
+
+ ROM_REGION( 0x1400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "069-c1.c1", 0x0000000, 0x400000, CRC(e302f93c) SHA1(d8610b14900b2b8fe691b67ca9b1abb335dbff74) )
+ ROM_LOAD16_BYTE( "069-c2.c2", 0x0000001, 0x400000, CRC(1053a455) SHA1(69501bfac68739e63d798045b812badd251d57b8) )
+ ROM_LOAD16_BYTE( "069-c3.c3", 0x0800000, 0x400000, CRC(1c0fde2f) SHA1(cf6c2ef56c03a861de3b0b6dc0d7c9204d947f9d) )
+ ROM_LOAD16_BYTE( "069-c4.c4", 0x0800001, 0x400000, CRC(a25fc3d0) SHA1(83cb349e2f1032652060b233e741fb893be5af16) )
+ ROM_LOAD16_BYTE( "069-c5.c5", 0x1000000, 0x200000, CRC(b3ec6fa6) SHA1(7e4c8ee9dd8d9a25ff183d9d8b05f38769348bc7) )
+ ROM_LOAD16_BYTE( "069-c6.c6", 0x1000001, 0x200000, CRC(69210441) SHA1(6d496c549dba65caabeaffe5b762e86f9d648a26) )
+ROM_END
+
+ROM_START( fatfury3bd ) /* Fatal Fury 3 - Hack by Creamymami and Dodowang - (Can choose Ryuji Yamazaki, Jin Chonshu and Jin Chonrei) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "069bd.p1", 0x000000, 0x100000, CRC(532c2930) SHA1(A65A39A79820138F275F75563F548240DD53F371) )
+ ROM_LOAD16_WORD_SWAP( "069-sp2.sp2", 0x100000, 0x200000, CRC(dbe963ed) SHA1(8ece7f663cfe8e563576a397e41161d392cee67e) )
+
+ NEO_SFIX_128K( "069-s1.s1", CRC(0b33a800) SHA1(b7d2cc97da4f30ddebc7b801f5e1d17d2306b2db) )
+
+ NEO_BIOS_AUDIO_128K( "069-m1.m1", CRC(fce72926) SHA1(a40c74f793900b8542f0b8383ce4bf46fca112d4) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "069-v1.v1", 0x000000, 0x400000, CRC(2bdbd4db) SHA1(5f4fecf69c2329d699cbd45829c19303b1e2a80e) )
+ ROM_LOAD( "069-v2.v2", 0x400000, 0x400000, CRC(a698a487) SHA1(11b8bc53bc26a51f4a408e900e3769958625c4ed) )
+ ROM_LOAD( "069-v3.v3", 0x800000, 0x200000, CRC(581c5304) SHA1(e9550ec547b4f605afed996b22d711f49b48fa92) )
+
+ ROM_REGION( 0x1400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "069-c1.c1", 0x0000000, 0x400000, CRC(e302f93c) SHA1(d8610b14900b2b8fe691b67ca9b1abb335dbff74) )
+ ROM_LOAD16_BYTE( "069-c2.c2", 0x0000001, 0x400000, CRC(1053a455) SHA1(69501bfac68739e63d798045b812badd251d57b8) )
+ ROM_LOAD16_BYTE( "069-c3.c3", 0x0800000, 0x400000, CRC(1c0fde2f) SHA1(cf6c2ef56c03a861de3b0b6dc0d7c9204d947f9d) )
+ ROM_LOAD16_BYTE( "069-c4.c4", 0x0800001, 0x400000, CRC(a25fc3d0) SHA1(83cb349e2f1032652060b233e741fb893be5af16) )
+ ROM_LOAD16_BYTE( "069-c5.c5", 0x1000000, 0x200000, CRC(b3ec6fa6) SHA1(7e4c8ee9dd8d9a25ff183d9d8b05f38769348bc7) )
+ ROM_LOAD16_BYTE( "069-c6.c6", 0x1000001, 0x200000, CRC(69210441) SHA1(6d496c549dba65caabeaffe5b762e86f9d648a26) )
+ROM_END
+
+ROM_START( fatfury3bh )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "069bh.p1", 0x000000, 0x100000, CRC(b8362f59) SHA1(9ae1cd259d9667fefcba0452ea658cf72aba189e) )
+ ROM_LOAD16_WORD_SWAP( "069-sp2.sp2", 0x100000, 0x200000, CRC(dbe963ed) SHA1(8ece7f663cfe8e563576a397e41161d392cee67e) )
+
+ NEO_SFIX_128K( "069-s1.s1", CRC(0b33a800) SHA1(b7d2cc97da4f30ddebc7b801f5e1d17d2306b2db) )
+
+ NEO_BIOS_AUDIO_128K( "069-m1.m1", CRC(fce72926) SHA1(a40c74f793900b8542f0b8383ce4bf46fca112d4) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "069-v1.v1", 0x000000, 0x400000, CRC(2bdbd4db) SHA1(5f4fecf69c2329d699cbd45829c19303b1e2a80e) )
+ ROM_LOAD( "069-v2.v2", 0x400000, 0x400000, CRC(a698a487) SHA1(11b8bc53bc26a51f4a408e900e3769958625c4ed) )
+ ROM_LOAD( "069-v3.v3", 0x800000, 0x200000, CRC(581c5304) SHA1(e9550ec547b4f605afed996b22d711f49b48fa92) )
+
+ ROM_REGION( 0x1400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "069-c1.c1", 0x0000000, 0x400000, CRC(e302f93c) SHA1(d8610b14900b2b8fe691b67ca9b1abb335dbff74) )
+ ROM_LOAD16_BYTE( "069-c2.c2", 0x0000001, 0x400000, CRC(1053a455) SHA1(69501bfac68739e63d798045b812badd251d57b8) )
+ ROM_LOAD16_BYTE( "069-c3.c3", 0x0800000, 0x400000, CRC(1c0fde2f) SHA1(cf6c2ef56c03a861de3b0b6dc0d7c9204d947f9d) )
+ ROM_LOAD16_BYTE( "069-c4.c4", 0x0800001, 0x400000, CRC(a25fc3d0) SHA1(83cb349e2f1032652060b233e741fb893be5af16) )
+ ROM_LOAD16_BYTE( "069-c5.c5", 0x1000000, 0x200000, CRC(b3ec6fa6) SHA1(7e4c8ee9dd8d9a25ff183d9d8b05f38769348bc7) )
+ ROM_LOAD16_BYTE( "069-c6.c6", 0x1000001, 0x200000, CRC(69210441) SHA1(6d496c549dba65caabeaffe5b762e86f9d648a26) )
+ROM_END
+
+ROM_START( fatfury3eh ) /* Fatal Fury 3 - Enhance by Creamymami and Dodowang - (Can choose Ryuji Yamazaki, Jin Chonshu and Jin Chonrei - all characters ultra kill style change) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "069eh.p1", 0x000000, 0x100000, CRC(e07140da) SHA1(205D7E2C7BE66959430A8ECFA20A368C8BF90F62) )
+ ROM_LOAD16_WORD_SWAP( "069-sp2.sp2", 0x100000, 0x200000, CRC(dbe963ed) SHA1(8ece7f663cfe8e563576a397e41161d392cee67e) )
+
+ NEO_SFIX_128K( "069-s1.s1", CRC(0b33a800) SHA1(b7d2cc97da4f30ddebc7b801f5e1d17d2306b2db) )
+
+ NEO_BIOS_AUDIO_128K( "069-m1.m1", CRC(fce72926) SHA1(a40c74f793900b8542f0b8383ce4bf46fca112d4) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "069-v1.v1", 0x000000, 0x400000, CRC(2bdbd4db) SHA1(5f4fecf69c2329d699cbd45829c19303b1e2a80e) )
+ ROM_LOAD( "069-v2.v2", 0x400000, 0x400000, CRC(a698a487) SHA1(11b8bc53bc26a51f4a408e900e3769958625c4ed) )
+ ROM_LOAD( "069-v3.v3", 0x800000, 0x200000, CRC(581c5304) SHA1(e9550ec547b4f605afed996b22d711f49b48fa92) )
+
+ ROM_REGION( 0x1400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "069-c1.c1", 0x0000000, 0x400000, CRC(e302f93c) SHA1(d8610b14900b2b8fe691b67ca9b1abb335dbff74) )
+ ROM_LOAD16_BYTE( "069-c2.c2", 0x0000001, 0x400000, CRC(1053a455) SHA1(69501bfac68739e63d798045b812badd251d57b8) )
+ ROM_LOAD16_BYTE( "069-c3.c3", 0x0800000, 0x400000, CRC(1c0fde2f) SHA1(cf6c2ef56c03a861de3b0b6dc0d7c9204d947f9d) )
+ ROM_LOAD16_BYTE( "069-c4.c4", 0x0800001, 0x400000, CRC(a25fc3d0) SHA1(83cb349e2f1032652060b233e741fb893be5af16) )
+ ROM_LOAD16_BYTE( "069-c5.c5", 0x1000000, 0x200000, CRC(b3ec6fa6) SHA1(7e4c8ee9dd8d9a25ff183d9d8b05f38769348bc7) )
+ ROM_LOAD16_BYTE( "069-c6.c6", 0x1000001, 0x200000, CRC(69210441) SHA1(6d496c549dba65caabeaffe5b762e86f9d648a26) )
+ROM_END
+
+
+ROM_START( rbff1ud ) /* Real Bout Fatal Fury - Enhance by Dodowang - (All characters ultra kill style change) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "095ud.p1", 0x000000, 0x100000, CRC(fa5e3c0f) SHA1(6391ad22eabf0246aa3b9f6d9f821cd58d2e5c71) )
+ ROM_LOAD16_WORD_SWAP( "095-p2.sp2", 0x100000, 0x200000, CRC(cc15826e) SHA1(44d6ac6c0ca697a6f367dcfd809b1e1771cb0635) )
+
+ NEO_SFIX_128K( "095-s1.s1", CRC(b6bf5e08) SHA1(b527355c35ea097f3448676f2ffa65b8e56ae30c) )
+
+ NEO_BIOS_AUDIO_128K( "095-m1.m1", CRC(653492a7) SHA1(39e511fb9ed5d2135dc8428a31d0baafb2ab36e0) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "069-v1.v1", 0x000000, 0x400000, CRC(2bdbd4db) SHA1(5f4fecf69c2329d699cbd45829c19303b1e2a80e) )
+ ROM_LOAD( "069-v2.v2", 0x400000, 0x400000, CRC(a698a487) SHA1(11b8bc53bc26a51f4a408e900e3769958625c4ed) )
+ ROM_LOAD( "095-v3.v3", 0x800000, 0x400000, CRC(189d1c6c) SHA1(f0b8cd1ee40ea3feeb2800f0723b451ec8240203) )
+
+ ROM_REGION( 0x1c00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "069-c1.c1", 0x0000000, 0x400000, CRC(e302f93c) SHA1(d8610b14900b2b8fe691b67ca9b1abb335dbff74) )
+ ROM_LOAD16_BYTE( "069-c2.c2", 0x0000001, 0x400000, CRC(1053a455) SHA1(69501bfac68739e63d798045b812badd251d57b8) )
+ ROM_LOAD16_BYTE( "069-c3.c3", 0x0800000, 0x400000, CRC(1c0fde2f) SHA1(cf6c2ef56c03a861de3b0b6dc0d7c9204d947f9d) )
+ ROM_LOAD16_BYTE( "069-c4.c4", 0x0800001, 0x400000, CRC(a25fc3d0) SHA1(83cb349e2f1032652060b233e741fb893be5af16) )
+ ROM_LOAD16_BYTE( "095-c5.c5", 0x1000000, 0x400000, CRC(8b9b65df) SHA1(e2a7e20855501f240bcd22f5cc92fcb4a9806abe) )
+ ROM_LOAD16_BYTE( "095-c6.c6", 0x1000001, 0x400000, CRC(3e164718) SHA1(53217f938c8964c1ca68a6fd5249c4169a5ac8e6) )
+ ROM_LOAD16_BYTE( "095-c7.c7", 0x1800000, 0x200000, CRC(ca605e12) SHA1(5150b835247fd705bc1dece97d423d9c20a51416) )
+ ROM_LOAD16_BYTE( "095-c8.c8", 0x1800001, 0x200000, CRC(4e6beb6c) SHA1(c0ac7cfc832ace6ad52c58f5da3a8101baead749) )
+ROM_END
+
+ROM_START( rbffsb ) /* Real Bout Fatal Fury Special - Hack by Creamymami - (Can choose Geese Howard) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "223b.p1", 0x000000, 0x100000, CRC(bb52545f) SHA1(1d082b3f2d71f8510d63a779cbcf5861a066ca26) )
+ ROM_LOAD16_WORD_SWAP( "223-p2.sp2", 0x100000, 0x400000, CRC(addd8f08) SHA1(abaf5b86c8ec915c07ef2d83fce9ad03acaa4817) )
+
+ NEO_SFIX_128K( "223-s1.s1", CRC(7ecd6e8c) SHA1(465455afc4d83cbb118142be4671b2539ffafd79) )
+
+ NEO_BIOS_AUDIO_128K( "223-m1.m1", CRC(3fee46bf) SHA1(e750f85233953853618fcdff980a4721af1710a3) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "223-v1.v1", 0x000000, 0x400000, CRC(76673869) SHA1(78a26afa29f73de552ffabdbf3fc4bf26be8ae9e) )
+ ROM_LOAD( "223-v2.v2", 0x400000, 0x400000, CRC(7a275acd) SHA1(8afe87ce822614262b72a90b371fc79155ac0d0c) )
+ ROM_LOAD( "223-v3.v3", 0x800000, 0x400000, CRC(5a797fd2) SHA1(94958e334f86d4d71059af8138f255b8d97a3b01) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "223-c1.c1", 0x0000000, 0x400000, CRC(ebab05e2) SHA1(0d60a8b631e3a3dcfbfdd7779dee081c9548ec39) )
+ ROM_LOAD16_BYTE( "223-c2.c2", 0x0000001, 0x400000, CRC(641868c3) SHA1(aa1aeb661842276b3326bfa4f1456f75bfecd52e) )
+ ROM_LOAD16_BYTE( "223-c3.c3", 0x0800000, 0x400000, CRC(ca00191f) SHA1(96977febfcc513e1848d7029ff169cdf51104038) )
+ ROM_LOAD16_BYTE( "223-c4.c4", 0x0800001, 0x400000, CRC(1f23d860) SHA1(e18df52f898a51074e07a0b8c6e75873e7cde35e) )
+ ROM_LOAD16_BYTE( "223-c5.c5", 0x1000000, 0x400000, CRC(321e362c) SHA1(39bd189334278f266124c97c6f70995f6f171cea) )
+ ROM_LOAD16_BYTE( "223-c6.c6", 0x1000001, 0x400000, CRC(d8fcef90) SHA1(bbccacb27f1e587bc144fe7ce68bd7b327ceaaee) )
+ ROM_LOAD16_BYTE( "223-c7.c7", 0x1800000, 0x400000, CRC(bc80dd2d) SHA1(086f372015eede88c6c578595fe915e28a589d2f) )
+ ROM_LOAD16_BYTE( "223-c8.c8", 0x1800001, 0x400000, CRC(5ad62102) SHA1(e28cc9840caed2a1a8bd65a03bef05231071040c) )
+ROM_END
+
+ROM_START( rbffseh ) /* Real Bout Fatal Fury Special - Enhance by Creamymami - (Can choose Geese Howard - ultra power hack) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "223eh.p1", 0x000000, 0x100000, CRC(6fe86622) SHA1(7cb68f4928c3fa9a07f7f806795628d70a24e693) )
+ ROM_LOAD16_WORD_SWAP( "223-p2.sp2", 0x100000, 0x400000, CRC(addd8f08) SHA1(abaf5b86c8ec915c07ef2d83fce9ad03acaa4817) )
+
+ NEO_SFIX_128K( "223-s1.s1", CRC(7ecd6e8c) SHA1(465455afc4d83cbb118142be4671b2539ffafd79) )
+
+ NEO_BIOS_AUDIO_128K( "223-m1.m1", CRC(3fee46bf) SHA1(e750f85233953853618fcdff980a4721af1710a3) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "223-v1.v1", 0x000000, 0x400000, CRC(76673869) SHA1(78a26afa29f73de552ffabdbf3fc4bf26be8ae9e) )
+ ROM_LOAD( "223-v2.v2", 0x400000, 0x400000, CRC(7a275acd) SHA1(8afe87ce822614262b72a90b371fc79155ac0d0c) )
+ ROM_LOAD( "223-v3.v3", 0x800000, 0x400000, CRC(5a797fd2) SHA1(94958e334f86d4d71059af8138f255b8d97a3b01) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "223-c1.c1", 0x0000000, 0x400000, CRC(ebab05e2) SHA1(0d60a8b631e3a3dcfbfdd7779dee081c9548ec39) )
+ ROM_LOAD16_BYTE( "223-c2.c2", 0x0000001, 0x400000, CRC(641868c3) SHA1(aa1aeb661842276b3326bfa4f1456f75bfecd52e) )
+ ROM_LOAD16_BYTE( "223-c3.c3", 0x0800000, 0x400000, CRC(ca00191f) SHA1(96977febfcc513e1848d7029ff169cdf51104038) )
+ ROM_LOAD16_BYTE( "223-c4.c4", 0x0800001, 0x400000, CRC(1f23d860) SHA1(e18df52f898a51074e07a0b8c6e75873e7cde35e) )
+ ROM_LOAD16_BYTE( "223-c5.c5", 0x1000000, 0x400000, CRC(321e362c) SHA1(39bd189334278f266124c97c6f70995f6f171cea) )
+ ROM_LOAD16_BYTE( "223-c6.c6", 0x1000001, 0x400000, CRC(d8fcef90) SHA1(bbccacb27f1e587bc144fe7ce68bd7b327ceaaee) )
+ ROM_LOAD16_BYTE( "223-c7.c7", 0x1800000, 0x400000, CRC(bc80dd2d) SHA1(086f372015eede88c6c578595fe915e28a589d2f) )
+ ROM_LOAD16_BYTE( "223-c8.c8", 0x1800001, 0x400000, CRC(5ad62102) SHA1(e28cc9840caed2a1a8bd65a03bef05231071040c) )
+ROM_END
+
+ROM_START( rbffsehd ) /* Real Bout Fatal Fury Special - Enhance by Dodowang - (All charcaters ultra kill style change - can choose Geese Howard - can choose 4 EX characters) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "223ehd.p1", 0x000000, 0x100000, CRC(db89d64b) SHA1(6018ab688865c2c51e73daf0a33ec8ef5c65de77) )
+ ROM_LOAD16_WORD_SWAP( "223-p2.sp2", 0x100000, 0x400000, CRC(addd8f08) SHA1(abaf5b86c8ec915c07ef2d83fce9ad03acaa4817) )
+
+ NEO_SFIX_128K( "223-s1.s1", CRC(7ecd6e8c) SHA1(465455afc4d83cbb118142be4671b2539ffafd79) )
+
+ NEO_BIOS_AUDIO_128K( "223-m1.m1", CRC(3fee46bf) SHA1(e750f85233953853618fcdff980a4721af1710a3) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "223-v1.v1", 0x000000, 0x400000, CRC(76673869) SHA1(78a26afa29f73de552ffabdbf3fc4bf26be8ae9e) )
+ ROM_LOAD( "223-v2.v2", 0x400000, 0x400000, CRC(7a275acd) SHA1(8afe87ce822614262b72a90b371fc79155ac0d0c) )
+ ROM_LOAD( "223-v3.v3", 0x800000, 0x400000, CRC(5a797fd2) SHA1(94958e334f86d4d71059af8138f255b8d97a3b01) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "223-c1.c1", 0x0000000, 0x400000, CRC(ebab05e2) SHA1(0d60a8b631e3a3dcfbfdd7779dee081c9548ec39) )
+ ROM_LOAD16_BYTE( "223-c2.c2", 0x0000001, 0x400000, CRC(641868c3) SHA1(aa1aeb661842276b3326bfa4f1456f75bfecd52e) )
+ ROM_LOAD16_BYTE( "223-c3.c3", 0x0800000, 0x400000, CRC(ca00191f) SHA1(96977febfcc513e1848d7029ff169cdf51104038) )
+ ROM_LOAD16_BYTE( "223-c4.c4", 0x0800001, 0x400000, CRC(1f23d860) SHA1(e18df52f898a51074e07a0b8c6e75873e7cde35e) )
+ ROM_LOAD16_BYTE( "223-c5.c5", 0x1000000, 0x400000, CRC(321e362c) SHA1(39bd189334278f266124c97c6f70995f6f171cea) )
+ ROM_LOAD16_BYTE( "223-c6.c6", 0x1000001, 0x400000, CRC(d8fcef90) SHA1(bbccacb27f1e587bc144fe7ce68bd7b327ceaaee) )
+ ROM_LOAD16_BYTE( "223-c7.c7", 0x1800000, 0x400000, CRC(bc80dd2d) SHA1(086f372015eede88c6c578595fe915e28a589d2f) )
+ ROM_LOAD16_BYTE( "223-c8.c8", 0x1800001, 0x400000, CRC(5ad62102) SHA1(e28cc9840caed2a1a8bd65a03bef05231071040c) )
+ROM_END
+
+ROM_START( rbffspbd )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "223bd.p1", 0x000000, 0x100000, CRC(04cb6d40) SHA1(97427ce56aeb3eaa851297a7beae125a34ca82c4) )
+ ROM_LOAD16_WORD_SWAP( "223-p2.sp2", 0x100000, 0x400000, CRC(addd8f08) SHA1(abaf5b86c8ec915c07ef2d83fce9ad03acaa4817) )
+
+ NEO_SFIX_128K( "223-s1.s1", CRC(7ecd6e8c) SHA1(465455afc4d83cbb118142be4671b2539ffafd79) )
+
+ NEO_BIOS_AUDIO_128K( "223-m1.m1", CRC(3fee46bf) SHA1(e750f85233953853618fcdff980a4721af1710a3) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "223-v1.v1", 0x000000, 0x400000, CRC(76673869) SHA1(78a26afa29f73de552ffabdbf3fc4bf26be8ae9e) )
+ ROM_LOAD( "223-v2.v2", 0x400000, 0x400000, CRC(7a275acd) SHA1(8afe87ce822614262b72a90b371fc79155ac0d0c) )
+ ROM_LOAD( "223-v3.v3", 0x800000, 0x400000, CRC(5a797fd2) SHA1(94958e334f86d4d71059af8138f255b8d97a3b01) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "223-c1.c1", 0x0000000, 0x400000, CRC(ebab05e2) SHA1(0d60a8b631e3a3dcfbfdd7779dee081c9548ec39) )
+ ROM_LOAD16_BYTE( "223-c2.c2", 0x0000001, 0x400000, CRC(641868c3) SHA1(aa1aeb661842276b3326bfa4f1456f75bfecd52e) )
+ ROM_LOAD16_BYTE( "223-c3.c3", 0x0800000, 0x400000, CRC(ca00191f) SHA1(96977febfcc513e1848d7029ff169cdf51104038) )
+ ROM_LOAD16_BYTE( "223-c4.c4", 0x0800001, 0x400000, CRC(1f23d860) SHA1(e18df52f898a51074e07a0b8c6e75873e7cde35e) )
+ ROM_LOAD16_BYTE( "223-c5.c5", 0x1000000, 0x400000, CRC(321e362c) SHA1(39bd189334278f266124c97c6f70995f6f171cea) )
+ ROM_LOAD16_BYTE( "223-c6.c6", 0x1000001, 0x400000, CRC(d8fcef90) SHA1(bbccacb27f1e587bc144fe7ce68bd7b327ceaaee) )
+ ROM_LOAD16_BYTE( "223-c7.c7", 0x1800000, 0x400000, CRC(bc80dd2d) SHA1(086f372015eede88c6c578595fe915e28a589d2f) )
+ ROM_LOAD16_BYTE( "223-c8.c8", 0x1800001, 0x400000, CRC(5ad62102) SHA1(e28cc9840caed2a1a8bd65a03bef05231071040c) )
+ROM_END
+
+ROM_START( rbffspecbs )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "223bs.p1", 0x000000, 0x100000, CRC(abf2a6e7) SHA1(59c5d253c66aad2b352ccf752d2a90f3ea229897) )
+ ROM_LOAD16_WORD_SWAP( "223-p2.sp2", 0x100000, 0x400000, CRC(addd8f08) SHA1(abaf5b86c8ec915c07ef2d83fce9ad03acaa4817) )
+
+ NEO_SFIX_128K( "223-s1.s1", CRC(7ecd6e8c) SHA1(465455afc4d83cbb118142be4671b2539ffafd79) )
+
+ NEO_BIOS_AUDIO_128K( "223-m1.m1", CRC(3fee46bf) SHA1(e750f85233953853618fcdff980a4721af1710a3) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "223-v1.v1", 0x000000, 0x400000, CRC(76673869) SHA1(78a26afa29f73de552ffabdbf3fc4bf26be8ae9e) )
+ ROM_LOAD( "223-v2.v2", 0x400000, 0x400000, CRC(7a275acd) SHA1(8afe87ce822614262b72a90b371fc79155ac0d0c) )
+ ROM_LOAD( "223-v3.v3", 0x800000, 0x400000, CRC(5a797fd2) SHA1(94958e334f86d4d71059af8138f255b8d97a3b01) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "223-c1.c1", 0x0000000, 0x400000, CRC(ebab05e2) SHA1(0d60a8b631e3a3dcfbfdd7779dee081c9548ec39) )
+ ROM_LOAD16_BYTE( "223-c2.c2", 0x0000001, 0x400000, CRC(641868c3) SHA1(aa1aeb661842276b3326bfa4f1456f75bfecd52e) )
+ ROM_LOAD16_BYTE( "223-c3.c3", 0x0800000, 0x400000, CRC(ca00191f) SHA1(96977febfcc513e1848d7029ff169cdf51104038) )
+ ROM_LOAD16_BYTE( "223-c4.c4", 0x0800001, 0x400000, CRC(1f23d860) SHA1(e18df52f898a51074e07a0b8c6e75873e7cde35e) )
+ ROM_LOAD16_BYTE( "223-c5.c5", 0x1000000, 0x400000, CRC(321e362c) SHA1(39bd189334278f266124c97c6f70995f6f171cea) )
+ ROM_LOAD16_BYTE( "223-c6.c6", 0x1000001, 0x400000, CRC(d8fcef90) SHA1(bbccacb27f1e587bc144fe7ce68bd7b327ceaaee) )
+ ROM_LOAD16_BYTE( "223-c7.c7", 0x1800000, 0x400000, CRC(bc80dd2d) SHA1(086f372015eede88c6c578595fe915e28a589d2f) )
+ ROM_LOAD16_BYTE( "223-c8.c8", 0x1800001, 0x400000, CRC(5ad62102) SHA1(e28cc9840caed2a1a8bd65a03bef05231071040c) )
+ROM_END
+
+ROM_START( rbffspy ) /* Real Bout Fatal Fury Special - Enhance by Ydmis - (Ultra power hack) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "223py.p1", 0x000000, 0x100000, CRC(2cf01f60) SHA1(fcaf1f9b91af5a035b8ee28cff6e3a72e73766fd) )
+ ROM_LOAD16_WORD_SWAP( "223-p2.sp2", 0x100000, 0x400000, CRC(addd8f08) SHA1(abaf5b86c8ec915c07ef2d83fce9ad03acaa4817) )
+
+ NEO_SFIX_128K( "223-s1.s1", CRC(7ecd6e8c) SHA1(465455afc4d83cbb118142be4671b2539ffafd79) )
+
+ NEO_BIOS_AUDIO_128K( "223-m1.m1", CRC(3fee46bf) SHA1(e750f85233953853618fcdff980a4721af1710a3) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "223-v1.v1", 0x000000, 0x400000, CRC(76673869) SHA1(78a26afa29f73de552ffabdbf3fc4bf26be8ae9e) )
+ ROM_LOAD( "223-v2.v2", 0x400000, 0x400000, CRC(7a275acd) SHA1(8afe87ce822614262b72a90b371fc79155ac0d0c) )
+ ROM_LOAD( "223-v3.v3", 0x800000, 0x400000, CRC(5a797fd2) SHA1(94958e334f86d4d71059af8138f255b8d97a3b01) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "223-c1.c1", 0x0000000, 0x400000, CRC(ebab05e2) SHA1(0d60a8b631e3a3dcfbfdd7779dee081c9548ec39) )
+ ROM_LOAD16_BYTE( "223-c2.c2", 0x0000001, 0x400000, CRC(641868c3) SHA1(aa1aeb661842276b3326bfa4f1456f75bfecd52e) )
+ ROM_LOAD16_BYTE( "223-c3.c3", 0x0800000, 0x400000, CRC(ca00191f) SHA1(96977febfcc513e1848d7029ff169cdf51104038) )
+ ROM_LOAD16_BYTE( "223-c4.c4", 0x0800001, 0x400000, CRC(1f23d860) SHA1(e18df52f898a51074e07a0b8c6e75873e7cde35e) )
+ ROM_LOAD16_BYTE( "223-c5.c5", 0x1000000, 0x400000, CRC(321e362c) SHA1(39bd189334278f266124c97c6f70995f6f171cea) )
+ ROM_LOAD16_BYTE( "223-c6.c6", 0x1000001, 0x400000, CRC(d8fcef90) SHA1(bbccacb27f1e587bc144fe7ce68bd7b327ceaaee) )
+ ROM_LOAD16_BYTE( "223-c7.c7", 0x1800000, 0x400000, CRC(bc80dd2d) SHA1(086f372015eede88c6c578595fe915e28a589d2f) )
+ ROM_LOAD16_BYTE( "223-c8.c8", 0x1800001, 0x400000, CRC(5ad62102) SHA1(e28cc9840caed2a1a8bd65a03bef05231071040c) )
+ROM_END
+
+ROM_START( rbffsud ) /* Real Bout Fatal Fury Special - Enhance by Dodowang - (All charcaters ultra kill style change) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "223ud.p1", 0x000000, 0x100000, CRC(b173df6b) SHA1(2c03eeee842b6a583a352c5414633ffc9a430fbf) )
+ ROM_LOAD16_WORD_SWAP( "223-p2.sp2", 0x100000, 0x400000, CRC(addd8f08) SHA1(abaf5b86c8ec915c07ef2d83fce9ad03acaa4817) )
+
+ NEO_SFIX_128K( "223-s1.s1", CRC(7ecd6e8c) SHA1(465455afc4d83cbb118142be4671b2539ffafd79) )
+
+ NEO_BIOS_AUDIO_128K( "223-m1.m1", CRC(3fee46bf) SHA1(e750f85233953853618fcdff980a4721af1710a3) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "223-v1.v1", 0x000000, 0x400000, CRC(76673869) SHA1(78a26afa29f73de552ffabdbf3fc4bf26be8ae9e) )
+ ROM_LOAD( "223-v2.v2", 0x400000, 0x400000, CRC(7a275acd) SHA1(8afe87ce822614262b72a90b371fc79155ac0d0c) )
+ ROM_LOAD( "223-v3.v3", 0x800000, 0x400000, CRC(5a797fd2) SHA1(94958e334f86d4d71059af8138f255b8d97a3b01) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "223-c1.c1", 0x0000000, 0x400000, CRC(ebab05e2) SHA1(0d60a8b631e3a3dcfbfdd7779dee081c9548ec39) )
+ ROM_LOAD16_BYTE( "223-c2.c2", 0x0000001, 0x400000, CRC(641868c3) SHA1(aa1aeb661842276b3326bfa4f1456f75bfecd52e) )
+ ROM_LOAD16_BYTE( "223-c3.c3", 0x0800000, 0x400000, CRC(ca00191f) SHA1(96977febfcc513e1848d7029ff169cdf51104038) )
+ ROM_LOAD16_BYTE( "223-c4.c4", 0x0800001, 0x400000, CRC(1f23d860) SHA1(e18df52f898a51074e07a0b8c6e75873e7cde35e) )
+ ROM_LOAD16_BYTE( "223-c5.c5", 0x1000000, 0x400000, CRC(321e362c) SHA1(39bd189334278f266124c97c6f70995f6f171cea) )
+ ROM_LOAD16_BYTE( "223-c6.c6", 0x1000001, 0x400000, CRC(d8fcef90) SHA1(bbccacb27f1e587bc144fe7ce68bd7b327ceaaee) )
+ ROM_LOAD16_BYTE( "223-c7.c7", 0x1800000, 0x400000, CRC(bc80dd2d) SHA1(086f372015eede88c6c578595fe915e28a589d2f) )
+ ROM_LOAD16_BYTE( "223-c8.c8", 0x1800001, 0x400000, CRC(5ad62102) SHA1(e28cc9840caed2a1a8bd65a03bef05231071040c) )
+ROM_END
+
+
+ROM_START( rbff2b ) /* Real Bout Fatal Fury 2 - Hack by Ydmis - (Can choose Alfred) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "240b.p1", 0x000000, 0x100000, CRC(94429c9f) SHA1(3c7df75eb6dec674a309f7e1e19557f78d8157a2) )
+ ROM_LOAD16_WORD_SWAP( "240-p2.sp2", 0x100000, 0x400000, CRC(960aa88d) SHA1(3d9e785891871af90313f178dca2724633406674) )
+
+ NEO_SFIX_128K( "240-s1.s1", CRC(da3b40de) SHA1(e6bf74e057ac6fe1f249a7547f13ba7fbc694561) )
+
+ NEO_BIOS_AUDIO_256K( "240-m1.m1", CRC(ed482791) SHA1(1f54a45967cb7842c33aa24be322c9f33ff75ac3) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "240-v1.v1", 0x000000, 0x400000, CRC(f796265a) SHA1(736dff37eb91fc856b4d189249fb0de9b6c0813a) )
+ ROM_LOAD( "240-v2.v2", 0x400000, 0x400000, CRC(2cb3f3bb) SHA1(697e677890892f4b028c9a27c66809ca0a8a9b18) )
+ ROM_LOAD( "240b.v3", 0x800000, 0x400000, CRC(df77b7fa) SHA1(4df971ce20bdb8c1ce8cc1692a32ac69505ffa9a) )
+ ROM_LOAD( "240b.v4", 0xc00000, 0x400000, CRC(33a356ee) SHA1(b2a08052be670f301f8d4903b36c70088d1a11da) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "240-c1.c1", 0x0000000, 0x800000, CRC(effac504) SHA1(e36a96e7369b02c7e839b5abf3c6799453ba1927) )
+ ROM_LOAD16_BYTE( "240-c2.c2", 0x0000001, 0x800000, CRC(ed182d44) SHA1(a9fc0a3a786bf067c129ec7220df65953dff804f) )
+ ROM_LOAD16_BYTE( "240-c3.c3", 0x1000000, 0x800000, CRC(22e0330a) SHA1(0fe7f6a8aeba7f17dbb278e85003969ff10d3cd2) )
+ ROM_LOAD16_BYTE( "240-c4.c4", 0x1000001, 0x800000, CRC(c19a07eb) SHA1(139eac8b51cadf328dd42d8109f4e2463f57230c) )
+ ROM_LOAD16_BYTE( "240-c5.c5", 0x2000000, 0x800000, CRC(244dff5a) SHA1(156548156d3ceaa808d0053d0749af2526a3943e) )
+ ROM_LOAD16_BYTE( "240-c6.c6", 0x2000001, 0x800000, CRC(4609e507) SHA1(bb17f50a377dddb77c1eeda5944a7bcbf0cca5f7) )
+ROM_END
+
+ROM_START( rbff2bh ) /* Real Bout Fatal Fury 2 - Hack by Dodowang - (Can choose Alfred - icon in character select menue added) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "240bh.p1", 0x000000, 0x100000, CRC(a5652c51) SHA1(0a736bb5c817752aef5b559c0355329667203073) )
+ ROM_LOAD16_WORD_SWAP( "240-p2.sp2", 0x100000, 0x400000, CRC(960aa88d) SHA1(3d9e785891871af90313f178dca2724633406674) )
+
+ NEO_SFIX_128K( "240bh.s1", CRC(141a8492) SHA1(e3b27771c78ac1df96f9daf951511897652b1a0f) )
+
+ NEO_BIOS_AUDIO_256K( "240-m1.m1", CRC(ed482791) SHA1(1f54a45967cb7842c33aa24be322c9f33ff75ac3) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "240-v1.v1", 0x000000, 0x400000, CRC(f796265a) SHA1(736dff37eb91fc856b4d189249fb0de9b6c0813a) )
+ ROM_LOAD( "240-v2.v2", 0x400000, 0x400000, CRC(2cb3f3bb) SHA1(697e677890892f4b028c9a27c66809ca0a8a9b18) )
+ ROM_LOAD( "240b.v3", 0x800000, 0x400000, CRC(df77b7fa) SHA1(4df971ce20bdb8c1ce8cc1692a32ac69505ffa9a) )
+ ROM_LOAD( "240b.v4", 0xc00000, 0x400000, CRC(33a356ee) SHA1(b2a08052be670f301f8d4903b36c70088d1a11da) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "240-c1.c1", 0x0000000, 0x800000, CRC(effac504) SHA1(e36a96e7369b02c7e839b5abf3c6799453ba1927) )
+ ROM_LOAD16_BYTE( "240-c2.c2", 0x0000001, 0x800000, CRC(ed182d44) SHA1(a9fc0a3a786bf067c129ec7220df65953dff804f) )
+ ROM_LOAD16_BYTE( "240-c3.c3", 0x1000000, 0x800000, CRC(22e0330a) SHA1(0fe7f6a8aeba7f17dbb278e85003969ff10d3cd2) )
+ ROM_LOAD16_BYTE( "240-c4.c4", 0x1000001, 0x800000, CRC(c19a07eb) SHA1(139eac8b51cadf328dd42d8109f4e2463f57230c) )
+ ROM_LOAD16_BYTE( "240-c5.c5", 0x2000000, 0x800000, CRC(244dff5a) SHA1(156548156d3ceaa808d0053d0749af2526a3943e) )
+ ROM_LOAD16_BYTE( "240-c6.c6", 0x2000001, 0x800000, CRC(4609e507) SHA1(bb17f50a377dddb77c1eeda5944a7bcbf0cca5f7) )
+ROM_END
+
+ROM_START( rbff2eh ) /* Real Bout Fatal Fury 2 - Enhance by Ydmis - (Can choose Alfred - ultra kill start is max) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "240eh.p1", 0x000000, 0x100000, CRC(270943a8) SHA1(959d0c30d3bae5011109247d50350970cb0a3e5d) )
+ ROM_LOAD16_WORD_SWAP( "240-p2.sp2", 0x100000, 0x400000, CRC(960aa88d) SHA1(3d9e785891871af90313f178dca2724633406674) )
+
+ NEO_SFIX_128K( "240-s1.s1", CRC(da3b40de) SHA1(e6bf74e057ac6fe1f249a7547f13ba7fbc694561) )
+
+ NEO_BIOS_AUDIO_256K( "240-m1.m1", CRC(ed482791) SHA1(1f54a45967cb7842c33aa24be322c9f33ff75ac3) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "240-v1.v1", 0x000000, 0x400000, CRC(f796265a) SHA1(736dff37eb91fc856b4d189249fb0de9b6c0813a) )
+ ROM_LOAD( "240-v2.v2", 0x400000, 0x400000, CRC(2cb3f3bb) SHA1(697e677890892f4b028c9a27c66809ca0a8a9b18) )
+ ROM_LOAD( "240b.v3", 0x800000, 0x400000, CRC(df77b7fa) SHA1(4df971ce20bdb8c1ce8cc1692a32ac69505ffa9a) )
+ ROM_LOAD( "240b.v4", 0xc00000, 0x400000, CRC(33a356ee) SHA1(b2a08052be670f301f8d4903b36c70088d1a11da) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "240-c1.c1", 0x0000000, 0x800000, CRC(effac504) SHA1(e36a96e7369b02c7e839b5abf3c6799453ba1927) )
+ ROM_LOAD16_BYTE( "240-c2.c2", 0x0000001, 0x800000, CRC(ed182d44) SHA1(a9fc0a3a786bf067c129ec7220df65953dff804f) )
+ ROM_LOAD16_BYTE( "240-c3.c3", 0x1000000, 0x800000, CRC(22e0330a) SHA1(0fe7f6a8aeba7f17dbb278e85003969ff10d3cd2) )
+ ROM_LOAD16_BYTE( "240-c4.c4", 0x1000001, 0x800000, CRC(c19a07eb) SHA1(139eac8b51cadf328dd42d8109f4e2463f57230c) )
+ ROM_LOAD16_BYTE( "240-c5.c5", 0x2000000, 0x800000, CRC(244dff5a) SHA1(156548156d3ceaa808d0053d0749af2526a3943e) )
+ ROM_LOAD16_BYTE( "240-c6.c6", 0x2000001, 0x800000, CRC(4609e507) SHA1(bb17f50a377dddb77c1eeda5944a7bcbf0cca5f7) )
+ROM_END
+
+ROM_START( rbff2eh2 ) /* Real Bout Fatal Fury 2 - Enhance by Creamymami and Ydmis - (Can choose Alfred - ultra kill start is max - ultra power hack) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "240eh2.p1", 0x000000, 0x100000, CRC(e25bd43c) SHA1(08071840f296204e8178e53ffc0e571ee88c3724) )
+ ROM_LOAD16_WORD_SWAP( "240-p2.sp2", 0x100000, 0x400000, CRC(960aa88d) SHA1(3d9e785891871af90313f178dca2724633406674) )
+
+ NEO_SFIX_128K( "240-s1.s1", CRC(da3b40de) SHA1(e6bf74e057ac6fe1f249a7547f13ba7fbc694561) )
+
+ NEO_BIOS_AUDIO_256K( "240-m1.m1", CRC(ed482791) SHA1(1f54a45967cb7842c33aa24be322c9f33ff75ac3) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "240-v1.v1", 0x000000, 0x400000, CRC(f796265a) SHA1(736dff37eb91fc856b4d189249fb0de9b6c0813a) )
+ ROM_LOAD( "240-v2.v2", 0x400000, 0x400000, CRC(2cb3f3bb) SHA1(697e677890892f4b028c9a27c66809ca0a8a9b18) )
+ ROM_LOAD( "240b.v3", 0x800000, 0x400000, CRC(df77b7fa) SHA1(4df971ce20bdb8c1ce8cc1692a32ac69505ffa9a) )
+ ROM_LOAD( "240b.v4", 0xc00000, 0x400000, CRC(33a356ee) SHA1(b2a08052be670f301f8d4903b36c70088d1a11da) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "240-c1.c1", 0x0000000, 0x800000, CRC(effac504) SHA1(e36a96e7369b02c7e839b5abf3c6799453ba1927) )
+ ROM_LOAD16_BYTE( "240-c2.c2", 0x0000001, 0x800000, CRC(ed182d44) SHA1(a9fc0a3a786bf067c129ec7220df65953dff804f) )
+ ROM_LOAD16_BYTE( "240-c3.c3", 0x1000000, 0x800000, CRC(22e0330a) SHA1(0fe7f6a8aeba7f17dbb278e85003969ff10d3cd2) )
+ ROM_LOAD16_BYTE( "240-c4.c4", 0x1000001, 0x800000, CRC(c19a07eb) SHA1(139eac8b51cadf328dd42d8109f4e2463f57230c) )
+ ROM_LOAD16_BYTE( "240-c5.c5", 0x2000000, 0x800000, CRC(244dff5a) SHA1(156548156d3ceaa808d0053d0749af2526a3943e) )
+ ROM_LOAD16_BYTE( "240-c6.c6", 0x2000001, 0x800000, CRC(4609e507) SHA1(bb17f50a377dddb77c1eeda5944a7bcbf0cca5f7) )
+ROM_END
+
+ROM_START( rbff2ehc ) /* Real Bout Fatal Fury 2 - Enhance by Creamymami - (Ultra power hack) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "240ehc.p1", 0x000000, 0x100000, CRC(73c40014) SHA1(5ed2ee938cf8213a0d6ea85b40e07370e472d59c) )
+ ROM_LOAD16_WORD_SWAP( "240-p2.sp2", 0x100000, 0x400000, CRC(960aa88d) SHA1(3d9e785891871af90313f178dca2724633406674) )
+
+ NEO_SFIX_128K( "240-s1.s1", CRC(da3b40de) SHA1(e6bf74e057ac6fe1f249a7547f13ba7fbc694561) )
+
+ NEO_BIOS_AUDIO_256K( "240-m1.m1", CRC(ed482791) SHA1(1f54a45967cb7842c33aa24be322c9f33ff75ac3) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "240-v1.v1", 0x000000, 0x400000, CRC(f796265a) SHA1(736dff37eb91fc856b4d189249fb0de9b6c0813a) )
+ ROM_LOAD( "240-v2.v2", 0x400000, 0x400000, CRC(2cb3f3bb) SHA1(697e677890892f4b028c9a27c66809ca0a8a9b18) )
+ ROM_LOAD( "240b.v3", 0x800000, 0x400000, CRC(df77b7fa) SHA1(4df971ce20bdb8c1ce8cc1692a32ac69505ffa9a) )
+ ROM_LOAD( "240b.v4", 0xc00000, 0x400000, CRC(33a356ee) SHA1(b2a08052be670f301f8d4903b36c70088d1a11da) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "240-c1.c1", 0x0000000, 0x800000, CRC(effac504) SHA1(e36a96e7369b02c7e839b5abf3c6799453ba1927) )
+ ROM_LOAD16_BYTE( "240-c2.c2", 0x0000001, 0x800000, CRC(ed182d44) SHA1(a9fc0a3a786bf067c129ec7220df65953dff804f) )
+ ROM_LOAD16_BYTE( "240-c3.c3", 0x1000000, 0x800000, CRC(22e0330a) SHA1(0fe7f6a8aeba7f17dbb278e85003969ff10d3cd2) )
+ ROM_LOAD16_BYTE( "240-c4.c4", 0x1000001, 0x800000, CRC(c19a07eb) SHA1(139eac8b51cadf328dd42d8109f4e2463f57230c) )
+ ROM_LOAD16_BYTE( "240-c5.c5", 0x2000000, 0x800000, CRC(244dff5a) SHA1(156548156d3ceaa808d0053d0749af2526a3943e) )
+ ROM_LOAD16_BYTE( "240-c6.c6", 0x2000001, 0x800000, CRC(4609e507) SHA1(bb17f50a377dddb77c1eeda5944a7bcbf0cca5f7) )
+ROM_END
+
+ROM_START( rbff2eho ) /* Real Bout Fatal Fury 2 - Hack by Ydmis - (Can choose Alfred) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "240eho.p1", 0x000000, 0x100000, CRC(6bf11562) SHA1(4d92a96e89b4726733fd7aeeaa5eaad6e80ce7a3) )
+ ROM_LOAD16_WORD_SWAP( "240-p2.sp2", 0x100000, 0x400000, CRC(960aa88d) SHA1(3d9e785891871af90313f178dca2724633406674) )
+
+ NEO_SFIX_128K( "240-s1.s1", CRC(da3b40de) SHA1(e6bf74e057ac6fe1f249a7547f13ba7fbc694561) )
+
+ NEO_BIOS_AUDIO_256K( "240-m1.m1", CRC(ed482791) SHA1(1f54a45967cb7842c33aa24be322c9f33ff75ac3) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "240-v1.v1", 0x000000, 0x400000, CRC(f796265a) SHA1(736dff37eb91fc856b4d189249fb0de9b6c0813a) )
+ ROM_LOAD( "240-v2.v2", 0x400000, 0x400000, CRC(2cb3f3bb) SHA1(697e677890892f4b028c9a27c66809ca0a8a9b18) )
+ ROM_LOAD( "240b.v3", 0x800000, 0x400000, CRC(df77b7fa) SHA1(4df971ce20bdb8c1ce8cc1692a32ac69505ffa9a) )
+ ROM_LOAD( "240b.v4", 0xc00000, 0x400000, CRC(33a356ee) SHA1(b2a08052be670f301f8d4903b36c70088d1a11da) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "240-c1.c1", 0x0000000, 0x800000, CRC(effac504) SHA1(e36a96e7369b02c7e839b5abf3c6799453ba1927) )
+ ROM_LOAD16_BYTE( "240-c2.c2", 0x0000001, 0x800000, CRC(ed182d44) SHA1(a9fc0a3a786bf067c129ec7220df65953dff804f) )
+ ROM_LOAD16_BYTE( "240-c3.c3", 0x1000000, 0x800000, CRC(22e0330a) SHA1(0fe7f6a8aeba7f17dbb278e85003969ff10d3cd2) )
+ ROM_LOAD16_BYTE( "240-c4.c4", 0x1000001, 0x800000, CRC(c19a07eb) SHA1(139eac8b51cadf328dd42d8109f4e2463f57230c) )
+ ROM_LOAD16_BYTE( "240-c5.c5", 0x2000000, 0x800000, CRC(244dff5a) SHA1(156548156d3ceaa808d0053d0749af2526a3943e) )
+ ROM_LOAD16_BYTE( "240-c6.c6", 0x2000001, 0x800000, CRC(4609e507) SHA1(bb17f50a377dddb77c1eeda5944a7bcbf0cca5f7) )
+ROM_END
+
+ROM_START( rbff2fc )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "240fc.p1", 0x000000, 0x100000, CRC(D01854FA) SHA1(1a4230404df76c111c76348a04d86976cd68df93) )
+ ROM_LOAD16_WORD_SWAP( "240fc.p2", 0x100000, 0x400000, CRC(C063193D) SHA1(3321d90f93b1f7bf423a20b780b453a756e041be) )
+
+ NEO_SFIX_128K( "240-s1.s1", CRC(da3b40de) SHA1(e6bf74e057ac6fe1f249a7547f13ba7fbc694561) )
+
+ NEO_BIOS_AUDIO_256K( "240-m1.m1", CRC(ed482791) SHA1(1f54a45967cb7842c33aa24be322c9f33ff75ac3) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "240-v1.v1", 0x000000, 0x400000, CRC(f796265a) SHA1(736dff37eb91fc856b4d189249fb0de9b6c0813a) )
+ ROM_LOAD( "240-v2.v2", 0x400000, 0x400000, CRC(2cb3f3bb) SHA1(697e677890892f4b028c9a27c66809ca0a8a9b18) )
+ ROM_LOAD( "240-v3.v3", 0x800000, 0x400000, CRC(8fe1367a) SHA1(093d7a4ac2b54ad7ffb2dc316fe29415f7a99535) )
+ ROM_LOAD( "240b.v4", 0xc00000, 0x400000, CRC(33a356ee) SHA1(b2a08052be670f301f8d4903b36c70088d1a11da) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "240-c1.c1", 0x0000000, 0x800000, CRC(effac504) SHA1(e36a96e7369b02c7e839b5abf3c6799453ba1927) )
+ ROM_LOAD16_BYTE( "240-c2.c2", 0x0000001, 0x800000, CRC(ed182d44) SHA1(a9fc0a3a786bf067c129ec7220df65953dff804f) )
+ ROM_LOAD16_BYTE( "240-c3.c3", 0x1000000, 0x800000, CRC(22e0330a) SHA1(0fe7f6a8aeba7f17dbb278e85003969ff10d3cd2) )
+ ROM_LOAD16_BYTE( "240-c4.c4", 0x1000001, 0x800000, CRC(c19a07eb) SHA1(139eac8b51cadf328dd42d8109f4e2463f57230c) )
+ ROM_LOAD16_BYTE( "240fc.c5", 0x2000000, 0x800000, CRC(21831787) SHA1(928620e9efb849c591d75a645969c24b15e5c337) )
+ ROM_LOAD16_BYTE( "240fc.c6", 0x2000001, 0x800000, CRC(06B2D1DA) SHA1(d39da350a9017a68704ea99bff7f48163b0866fb) )
+ROM_END
+
+ROM_START( rbff2ud ) /* Real Bout Fatal Fury 2 - Enhance by Dodowang - (P1 and P2 go to Terry, hold down B+C and press A - can choose then Alfread - all characters ultra kill style change) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "240ud.p1", 0x000000, 0x100000, CRC(d3cc7f24) SHA1(f6c831ce358afbad457c75fcdf89f9abf9a21ec8) )
+ ROM_LOAD16_WORD_SWAP( "240-p2.sp2", 0x100000, 0x400000, CRC(960aa88d) SHA1(3d9e785891871af90313f178dca2724633406674) )
+
+ NEO_SFIX_128K( "240-s1.s1", CRC(da3b40de) SHA1(e6bf74e057ac6fe1f249a7547f13ba7fbc694561) )
+
+ NEO_BIOS_AUDIO_256K( "240-m1.m1", CRC(ed482791) SHA1(1f54a45967cb7842c33aa24be322c9f33ff75ac3) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "240-v1.v1", 0x000000, 0x400000, CRC(f796265a) SHA1(736dff37eb91fc856b4d189249fb0de9b6c0813a) )
+ ROM_LOAD( "240-v2.v2", 0x400000, 0x400000, CRC(2cb3f3bb) SHA1(697e677890892f4b028c9a27c66809ca0a8a9b18) )
+ ROM_LOAD( "240b.v3", 0x800000, 0x400000, CRC(df77b7fa) SHA1(4df971ce20bdb8c1ce8cc1692a32ac69505ffa9a) )
+ ROM_LOAD( "240b.v4", 0xc00000, 0x400000, CRC(33a356ee) SHA1(b2a08052be670f301f8d4903b36c70088d1a11da) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "240-c1.c1", 0x0000000, 0x800000, CRC(effac504) SHA1(e36a96e7369b02c7e839b5abf3c6799453ba1927) )
+ ROM_LOAD16_BYTE( "240-c2.c2", 0x0000001, 0x800000, CRC(ed182d44) SHA1(a9fc0a3a786bf067c129ec7220df65953dff804f) )
+ ROM_LOAD16_BYTE( "240-c3.c3", 0x1000000, 0x800000, CRC(22e0330a) SHA1(0fe7f6a8aeba7f17dbb278e85003969ff10d3cd2) )
+ ROM_LOAD16_BYTE( "240-c4.c4", 0x1000001, 0x800000, CRC(c19a07eb) SHA1(139eac8b51cadf328dd42d8109f4e2463f57230c) )
+ ROM_LOAD16_BYTE( "240-c5.c5", 0x2000000, 0x800000, CRC(244dff5a) SHA1(156548156d3ceaa808d0053d0749af2526a3943e) )
+ ROM_LOAD16_BYTE( "240-c6.c6", 0x2000001, 0x800000, CRC(4609e507) SHA1(bb17f50a377dddb77c1eeda5944a7bcbf0cca5f7) )
+ROM_END
+
+ROM_START( rbff2y ) /* Real Bout Fatal Fury 2 - Hack by Ydmis - (Player 2 goes to Terry, holds down B+C and presses A - can choose then Alfred) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "240y.p1", 0x000000, 0x100000, CRC(621387e2) SHA1(3492845dcb34d2be4268f270025045c4c6cba0ad) )
+ ROM_LOAD16_WORD_SWAP( "240-p2.sp2", 0x100000, 0x400000, CRC(960aa88d) SHA1(3d9e785891871af90313f178dca2724633406674) )
+
+ NEO_SFIX_128K( "240-s1.s1", CRC(da3b40de) SHA1(e6bf74e057ac6fe1f249a7547f13ba7fbc694561) )
+
+ NEO_BIOS_AUDIO_256K( "240-m1.m1", CRC(ed482791) SHA1(1f54a45967cb7842c33aa24be322c9f33ff75ac3) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "240-v1.v1", 0x000000, 0x400000, CRC(f796265a) SHA1(736dff37eb91fc856b4d189249fb0de9b6c0813a) )
+ ROM_LOAD( "240-v2.v2", 0x400000, 0x400000, CRC(2cb3f3bb) SHA1(697e677890892f4b028c9a27c66809ca0a8a9b18) )
+ ROM_LOAD( "240b.v3", 0x800000, 0x400000, CRC(df77b7fa) SHA1(4df971ce20bdb8c1ce8cc1692a32ac69505ffa9a) )
+ ROM_LOAD( "240b.v4", 0xc00000, 0x400000, CRC(33a356ee) SHA1(b2a08052be670f301f8d4903b36c70088d1a11da) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "240-c1.c1", 0x0000000, 0x800000, CRC(effac504) SHA1(e36a96e7369b02c7e839b5abf3c6799453ba1927) )
+ ROM_LOAD16_BYTE( "240-c2.c2", 0x0000001, 0x800000, CRC(ed182d44) SHA1(a9fc0a3a786bf067c129ec7220df65953dff804f) )
+ ROM_LOAD16_BYTE( "240-c3.c3", 0x1000000, 0x800000, CRC(22e0330a) SHA1(0fe7f6a8aeba7f17dbb278e85003969ff10d3cd2) )
+ ROM_LOAD16_BYTE( "240-c4.c4", 0x1000001, 0x800000, CRC(c19a07eb) SHA1(139eac8b51cadf328dd42d8109f4e2463f57230c) )
+ ROM_LOAD16_BYTE( "240-c5.c5", 0x2000000, 0x800000, CRC(244dff5a) SHA1(156548156d3ceaa808d0053d0749af2526a3943e) )
+ ROM_LOAD16_BYTE( "240-c6.c6", 0x2000001, 0x800000, CRC(4609e507) SHA1(bb17f50a377dddb77c1eeda5944a7bcbf0cca5f7) )
+ROM_END
+
+
+
+GAME( 1993, fatfurspb, fatfursp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Fatal Fury Special / Garou Densetsu Special (Boss Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, fatfurspbs, fatfursp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yumeji", "Fatal Fury Special (Boss hack by Yumeji)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, fatfurspbt, fatfursp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "PPX team", "Fatal Fury Special (BT Version PPX Team hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, fatfurspeh, fatfursp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Dodowang", "Fatal Fury Special (Add Ryo)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1992, fatfury2b, fatfury2, neogeo_noslot, neogeo, neogeo_noslot_state, fatfury2, ROT0, "Yumeji", "Fatal Fury 2 (Boss hack by Yumeji)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1995, fatfury3b, fatfury3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami", "Fatal Fury 3 (Add Char set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, fatfury3bd, fatfury3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami and Dodowang", "Fatal Fury 3 (Add Char set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, fatfury3bh, fatfury3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yumeji", "Fatal Fury 3 (Boss hack by Yumeji)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, fatfury3eh, fatfury3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami and Dodowang", "Fatal Fury 3 (Add Char - Ultra kill style changed)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1995, rbff1ud, rbff1, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Dodowang", "Real Bout Fatal Fury (Ultra kill style changed)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1996, rbffsb, rbffspec, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami", "Real Bout Fatal Fury Special (Add Geese Howard)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, rbffseh, rbffspec, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami", "Real Bout Fatal Fury Special (Add Geese Howard - Ultra pow hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, rbffsehd, rbffspec, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Dodowang", "Real Bout Fatal Fury Special (Ultra kill style changed - 5 Add Char)", MACHINE_SUPPORTS_SAVE ) // Geese Howard, Andy B. EX, Blue Mary EX, Billy K. EX and Tung Fu Rue EX
+GAME( 1996, rbffspbd, rbffspec, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Real Bout Fatal Fury Special / Real Bout Garou Densetsu Special (Boss Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, rbffspecbs, rbffspec, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yumeji", "Real Bout Fatal Fury Special (Boss hack Yumeji)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, rbffspy, rbffspec, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Real Bout Fatal Fury Special (Ultra pow hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, rbffsud, rbffspec, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Dodowang", "Real Bout Fatal Fury Special (Ultra kill style changed)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1998, rbff2b, rbff2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Real Bout Fatal Fury 2 (Add Alfred)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, rbff2bh, rbff2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Dodowang", "Real Bout Fatal Fury 2 (Add Alfred with Icon)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, rbff2eh, rbff2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Real Bout Fatal Fury 2 (Add Alfred - Ultra kill start max)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, rbff2ehc, rbff2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami", "Real Bout Fatal Fury 2 (Ultra pow hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, rbff2eh2, rbff2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami and Ydmis", "Real Bout Fatal Fury 2 (Add Alfred - Ultra kill start max - Ultra pow hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, rbff2eho, rbff2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Real Bout Fatal Fury 2 (Add Alfred) (Old)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, rbff2fc, rbff2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Eddids - FCHT", "Real Bout Fatal Fury 2 (Enable Alfred v3 & Color Fix)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, rbff2ud, rbff2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Dodowang", "Real Bout Fatal Fury 2 (P1 and P2 Add Alfred [Terry, hold B+C and press A] - Ultra kill style change)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, rbff2y, rbff2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Real Bout Fatal Fury 2 (P1 only Add Alfred [Terry, hold B+C and press A])", MACHINE_SUPPORTS_SAVE )
+
+
+//PSmame
+
+
+ROM_START( fatfury1s01 )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "033-p1hc01.p1", 0x000000, 0x080000, CRC(fc051e1d) SHA1(515f3f8eb080f794bbde09aa3959a1f01b1b01ef) )
+ ROM_LOAD16_WORD_SWAP( "033-p2.p2", 0x080000, 0x020000, CRC(c473af1c) SHA1(4919eeca20abe807493872ca7c79a5d1f496fe68) )
+
+ NEO_SFIX_128K( "033-s1.s1", CRC(3c3bdf8c) SHA1(2f3e5feed6c27850b2a0f6fae0b97041690e944c) )
+
+ NEO_BIOS_AUDIO_128K( "n033001a.4f8", CRC(a8603979) SHA1(512f2280a43892d4ca003ac63945ce86c5211b97) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "033-v1.v1", 0x000000, 0x100000, CRC(212fd20d) SHA1(120c040db8c01a6f140eea03725448bfa9ca98c2) )
+ ROM_LOAD( "033-v2.v2", 0x100000, 0x100000, CRC(fa2ae47f) SHA1(80d0ba4cd30aab59b6f0db8fa341387bd7388afc) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "033-c1.c1", 0x000000, 0x100000, CRC(74317e54) SHA1(67b9c2814a12603b959612456f59de55f9bf6f57) )
+ ROM_LOAD16_BYTE( "033-c2.c2", 0x000001, 0x100000, CRC(5bb952f3) SHA1(ea964bbcc0408b6ae07cbb5043d003281b1aca15) )
+ ROM_LOAD16_BYTE( "033-c3.c3", 0x200000, 0x100000, CRC(9b714a7c) SHA1(b62bdcede3207d062a89e0a4a9adf706101bb681) )
+ ROM_LOAD16_BYTE( "033-c4.c4", 0x200001, 0x100000, CRC(9397476a) SHA1(a12dbb74020aeb6ebf24ec2abbfba5129cabcb7d) )
+ROM_END
+
+ /****************************************
+ Fatal Fury 3
+*****************************************/
+
+ROM_START( fatfury3s01 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "069hc01.p1", 0x000000, 0x100000, CRC(3cf763c7) SHA1(159b2579ee8d6673955f295d3f5a9c5ef813d5b0) )
+ ROM_LOAD16_WORD_SWAP( "069-sp2.sp2", 0x100000, 0x200000, CRC(dbe963ed) SHA1(8ece7f663cfe8e563576a397e41161d392cee67e) )
+
+ NEO_SFIX_128K( "069-s1.s1", CRC(0b33a800) SHA1(b7d2cc97da4f30ddebc7b801f5e1d17d2306b2db) )
+
+ NEO_BIOS_AUDIO_128K( "069-m1.m1", CRC(fce72926) SHA1(a40c74f793900b8542f0b8383ce4bf46fca112d4) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "069-v1.v1", 0x000000, 0x400000, CRC(2bdbd4db) SHA1(5f4fecf69c2329d699cbd45829c19303b1e2a80e) )
+ ROM_LOAD( "069-v2.v2", 0x400000, 0x400000, CRC(a698a487) SHA1(11b8bc53bc26a51f4a408e900e3769958625c4ed) )
+ ROM_LOAD( "069-v3.v3", 0x800000, 0x200000, CRC(581c5304) SHA1(e9550ec547b4f605afed996b22d711f49b48fa92) )
+
+ ROM_REGION( 0x1400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "069-c1.c1", 0x0000000, 0x400000, CRC(e302f93c) SHA1(d8610b14900b2b8fe691b67ca9b1abb335dbff74) )
+ ROM_LOAD16_BYTE( "069-c2.c2", 0x0000001, 0x400000, CRC(1053a455) SHA1(69501bfac68739e63d798045b812badd251d57b8) )
+ ROM_LOAD16_BYTE( "069-c3.c3", 0x0800000, 0x400000, CRC(1c0fde2f) SHA1(cf6c2ef56c03a861de3b0b6dc0d7c9204d947f9d) )
+ ROM_LOAD16_BYTE( "069-c4.c4", 0x0800001, 0x400000, CRC(a25fc3d0) SHA1(83cb349e2f1032652060b233e741fb893be5af16) )
+ ROM_LOAD16_BYTE( "069-c5.c5", 0x1000000, 0x200000, CRC(b3ec6fa6) SHA1(7e4c8ee9dd8d9a25ff183d9d8b05f38769348bc7) )
+ ROM_LOAD16_BYTE( "069-c6.c6", 0x1000001, 0x200000, CRC(69210441) SHA1(6d496c549dba65caabeaffe5b762e86f9d648a26) )
+ROM_END
+
+ROM_START( fatfury3s02 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "069hc02.p1", 0x000000, 0x100000, CRC(8faa0a2d) SHA1(7a49d5f1c441f8dd1af339250837ebbf5195eba2) )
+ ROM_LOAD16_WORD_SWAP( "069-sp2.sp2", 0x100000, 0x200000, CRC(dbe963ed) SHA1(8ece7f663cfe8e563576a397e41161d392cee67e) )
+
+ NEO_SFIX_128K( "069-s1.s1", CRC(0b33a800) SHA1(b7d2cc97da4f30ddebc7b801f5e1d17d2306b2db) )
+
+ NEO_BIOS_AUDIO_128K( "069-m1.m1", CRC(fce72926) SHA1(a40c74f793900b8542f0b8383ce4bf46fca112d4) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "069-v1.v1", 0x000000, 0x400000, CRC(2bdbd4db) SHA1(5f4fecf69c2329d699cbd45829c19303b1e2a80e) )
+ ROM_LOAD( "069-v2.v2", 0x400000, 0x400000, CRC(a698a487) SHA1(11b8bc53bc26a51f4a408e900e3769958625c4ed) )
+ ROM_LOAD( "069-v3.v3", 0x800000, 0x200000, CRC(581c5304) SHA1(e9550ec547b4f605afed996b22d711f49b48fa92) )
+
+ ROM_REGION( 0x1400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "069-c1.c1", 0x0000000, 0x400000, CRC(e302f93c) SHA1(d8610b14900b2b8fe691b67ca9b1abb335dbff74) )
+ ROM_LOAD16_BYTE( "069-c2.c2", 0x0000001, 0x400000, CRC(1053a455) SHA1(69501bfac68739e63d798045b812badd251d57b8) )
+ ROM_LOAD16_BYTE( "069-c3.c3", 0x0800000, 0x400000, CRC(1c0fde2f) SHA1(cf6c2ef56c03a861de3b0b6dc0d7c9204d947f9d) )
+ ROM_LOAD16_BYTE( "069-c4.c4", 0x0800001, 0x400000, CRC(a25fc3d0) SHA1(83cb349e2f1032652060b233e741fb893be5af16) )
+ ROM_LOAD16_BYTE( "069-c5.c5", 0x1000000, 0x200000, CRC(b3ec6fa6) SHA1(7e4c8ee9dd8d9a25ff183d9d8b05f38769348bc7) )
+ ROM_LOAD16_BYTE( "069-c6.c6", 0x1000001, 0x200000, CRC(69210441) SHA1(6d496c549dba65caabeaffe5b762e86f9d648a26) )
+ROM_END
+
+ROM_START( rbffss01 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "223hc01.p1", 0x000000, 0x100000, CRC(4df29f36) SHA1(52283fca222c49b10d305fb6366cd0fa5a209f70) )
+ ROM_LOAD16_WORD_SWAP( "223-p2.sp2", 0x100000, 0x400000, CRC(addd8f08) SHA1(abaf5b86c8ec915c07ef2d83fce9ad03acaa4817) )
+
+ NEO_SFIX_128K( "223-s1.s1", CRC(7ecd6e8c) SHA1(465455afc4d83cbb118142be4671b2539ffafd79) )
+
+ NEO_BIOS_AUDIO_128K( "223-m1.m1", CRC(3fee46bf) SHA1(e750f85233953853618fcdff980a4721af1710a3) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "223-v1.v1", 0x000000, 0x400000, CRC(76673869) SHA1(78a26afa29f73de552ffabdbf3fc4bf26be8ae9e) )
+ ROM_LOAD( "223-v2.v2", 0x400000, 0x400000, CRC(7a275acd) SHA1(8afe87ce822614262b72a90b371fc79155ac0d0c) )
+ ROM_LOAD( "223-v3.v3", 0x800000, 0x400000, CRC(5a797fd2) SHA1(94958e334f86d4d71059af8138f255b8d97a3b01) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "223-c1.c1", 0x0000000, 0x400000, CRC(ebab05e2) SHA1(0d60a8b631e3a3dcfbfdd7779dee081c9548ec39) )
+ ROM_LOAD16_BYTE( "223-c2.c2", 0x0000001, 0x400000, CRC(641868c3) SHA1(aa1aeb661842276b3326bfa4f1456f75bfecd52e) )
+ ROM_LOAD16_BYTE( "223-c3.c3", 0x0800000, 0x400000, CRC(ca00191f) SHA1(96977febfcc513e1848d7029ff169cdf51104038) )
+ ROM_LOAD16_BYTE( "223-c4.c4", 0x0800001, 0x400000, CRC(1f23d860) SHA1(e18df52f898a51074e07a0b8c6e75873e7cde35e) )
+ ROM_LOAD16_BYTE( "223-c5.c5", 0x1000000, 0x400000, CRC(321e362c) SHA1(39bd189334278f266124c97c6f70995f6f171cea) )
+ ROM_LOAD16_BYTE( "223-c6.c6", 0x1000001, 0x400000, CRC(d8fcef90) SHA1(bbccacb27f1e587bc144fe7ce68bd7b327ceaaee) )
+ ROM_LOAD16_BYTE( "223-c7.c7", 0x1800000, 0x400000, CRC(bc80dd2d) SHA1(086f372015eede88c6c578595fe915e28a589d2f) )
+ ROM_LOAD16_BYTE( "223-c8.c8", 0x1800001, 0x400000, CRC(5ad62102) SHA1(e28cc9840caed2a1a8bd65a03bef05231071040c) )
+ROM_END
+
+ROM_START( rbffss02 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "223hc02.p1", 0x000000, 0x100000, CRC(9891af09) SHA1(f246dcee8aa9db7121140f615bab1f85f90d4137) )
+ ROM_LOAD16_WORD_SWAP( "223-p2.sp2", 0x100000, 0x400000, CRC(addd8f08) SHA1(abaf5b86c8ec915c07ef2d83fce9ad03acaa4817) )
+
+ NEO_SFIX_128K( "223-s1.s1", CRC(7ecd6e8c) SHA1(465455afc4d83cbb118142be4671b2539ffafd79) )
+
+ NEO_BIOS_AUDIO_128K( "223-m1.m1", CRC(3fee46bf) SHA1(e750f85233953853618fcdff980a4721af1710a3) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "223-v1.v1", 0x000000, 0x400000, CRC(76673869) SHA1(78a26afa29f73de552ffabdbf3fc4bf26be8ae9e) )
+ ROM_LOAD( "223-v2.v2", 0x400000, 0x400000, CRC(7a275acd) SHA1(8afe87ce822614262b72a90b371fc79155ac0d0c) )
+ ROM_LOAD( "223-v3.v3", 0x800000, 0x400000, CRC(5a797fd2) SHA1(94958e334f86d4d71059af8138f255b8d97a3b01) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "223-c1.c1", 0x0000000, 0x400000, CRC(ebab05e2) SHA1(0d60a8b631e3a3dcfbfdd7779dee081c9548ec39) )
+ ROM_LOAD16_BYTE( "223-c2.c2", 0x0000001, 0x400000, CRC(641868c3) SHA1(aa1aeb661842276b3326bfa4f1456f75bfecd52e) )
+ ROM_LOAD16_BYTE( "223-c3.c3", 0x0800000, 0x400000, CRC(ca00191f) SHA1(96977febfcc513e1848d7029ff169cdf51104038) )
+ ROM_LOAD16_BYTE( "223-c4.c4", 0x0800001, 0x400000, CRC(1f23d860) SHA1(e18df52f898a51074e07a0b8c6e75873e7cde35e) )
+ ROM_LOAD16_BYTE( "223-c5.c5", 0x1000000, 0x400000, CRC(321e362c) SHA1(39bd189334278f266124c97c6f70995f6f171cea) )
+ ROM_LOAD16_BYTE( "223-c6.c6", 0x1000001, 0x400000, CRC(d8fcef90) SHA1(bbccacb27f1e587bc144fe7ce68bd7b327ceaaee) )
+ ROM_LOAD16_BYTE( "223-c7.c7", 0x1800000, 0x400000, CRC(bc80dd2d) SHA1(086f372015eede88c6c578595fe915e28a589d2f) )
+ ROM_LOAD16_BYTE( "223-c8.c8", 0x1800001, 0x400000, CRC(5ad62102) SHA1(e28cc9840caed2a1a8bd65a03bef05231071040c) )
+ROM_END
+
+ROM_START( rbffss03 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "223hc03.p1", 0x000000, 0x100000, CRC(0eeae674) SHA1(35bc24dcb424a8ed0be4a315f558c1720d5bd572) )
+ ROM_LOAD16_WORD_SWAP( "223-p2.sp2", 0x100000, 0x400000, CRC(addd8f08) SHA1(abaf5b86c8ec915c07ef2d83fce9ad03acaa4817) )
+
+ NEO_SFIX_128K( "223-s1.s1", CRC(7ecd6e8c) SHA1(465455afc4d83cbb118142be4671b2539ffafd79) )
+
+ NEO_BIOS_AUDIO_128K( "223-m1.m1", CRC(3fee46bf) SHA1(e750f85233953853618fcdff980a4721af1710a3) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "223-v1.v1", 0x000000, 0x400000, CRC(76673869) SHA1(78a26afa29f73de552ffabdbf3fc4bf26be8ae9e) )
+ ROM_LOAD( "223-v2.v2", 0x400000, 0x400000, CRC(7a275acd) SHA1(8afe87ce822614262b72a90b371fc79155ac0d0c) )
+ ROM_LOAD( "223-v3.v3", 0x800000, 0x400000, CRC(5a797fd2) SHA1(94958e334f86d4d71059af8138f255b8d97a3b01) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "223-c1.c1", 0x0000000, 0x400000, CRC(ebab05e2) SHA1(0d60a8b631e3a3dcfbfdd7779dee081c9548ec39) )
+ ROM_LOAD16_BYTE( "223-c2.c2", 0x0000001, 0x400000, CRC(641868c3) SHA1(aa1aeb661842276b3326bfa4f1456f75bfecd52e) )
+ ROM_LOAD16_BYTE( "223-c3.c3", 0x0800000, 0x400000, CRC(ca00191f) SHA1(96977febfcc513e1848d7029ff169cdf51104038) )
+ ROM_LOAD16_BYTE( "223-c4.c4", 0x0800001, 0x400000, CRC(1f23d860) SHA1(e18df52f898a51074e07a0b8c6e75873e7cde35e) )
+ ROM_LOAD16_BYTE( "223-c5.c5", 0x1000000, 0x400000, CRC(321e362c) SHA1(39bd189334278f266124c97c6f70995f6f171cea) )
+ ROM_LOAD16_BYTE( "223-c6.c6", 0x1000001, 0x400000, CRC(d8fcef90) SHA1(bbccacb27f1e587bc144fe7ce68bd7b327ceaaee) )
+ ROM_LOAD16_BYTE( "223-c7.c7", 0x1800000, 0x400000, CRC(bc80dd2d) SHA1(086f372015eede88c6c578595fe915e28a589d2f) )
+ ROM_LOAD16_BYTE( "223-c8.c8", 0x1800001, 0x400000, CRC(5ad62102) SHA1(e28cc9840caed2a1a8bd65a03bef05231071040c) )
+ROM_END
+
+ROM_START( rbffss04 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "223hc04.p1", 0x000000, 0x100000, CRC(47d31402) SHA1(68c9f358c6429a8e8b003aff052ddb92751d004d) )
+ ROM_LOAD16_WORD_SWAP( "223-p2.sp2", 0x100000, 0x400000, CRC(addd8f08) SHA1(abaf5b86c8ec915c07ef2d83fce9ad03acaa4817) )
+
+ NEO_SFIX_128K( "223-s1.s1", CRC(7ecd6e8c) SHA1(465455afc4d83cbb118142be4671b2539ffafd79) )
+
+ NEO_BIOS_AUDIO_128K( "223-m1.m1", CRC(3fee46bf) SHA1(e750f85233953853618fcdff980a4721af1710a3) )
+
+ ROM_REGION( 0xc00000, "ymsnd", 0 )
+ ROM_LOAD( "223-v1.v1", 0x000000, 0x400000, CRC(76673869) SHA1(78a26afa29f73de552ffabdbf3fc4bf26be8ae9e) )
+ ROM_LOAD( "223-v2.v2", 0x400000, 0x400000, CRC(7a275acd) SHA1(8afe87ce822614262b72a90b371fc79155ac0d0c) )
+ ROM_LOAD( "223-v3.v3", 0x800000, 0x400000, CRC(5a797fd2) SHA1(94958e334f86d4d71059af8138f255b8d97a3b01) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "223-c1.c1", 0x0000000, 0x400000, CRC(ebab05e2) SHA1(0d60a8b631e3a3dcfbfdd7779dee081c9548ec39) )
+ ROM_LOAD16_BYTE( "223-c2.c2", 0x0000001, 0x400000, CRC(641868c3) SHA1(aa1aeb661842276b3326bfa4f1456f75bfecd52e) )
+ ROM_LOAD16_BYTE( "223-c3.c3", 0x0800000, 0x400000, CRC(ca00191f) SHA1(96977febfcc513e1848d7029ff169cdf51104038) )
+ ROM_LOAD16_BYTE( "223-c4.c4", 0x0800001, 0x400000, CRC(1f23d860) SHA1(e18df52f898a51074e07a0b8c6e75873e7cde35e) )
+ ROM_LOAD16_BYTE( "223-c5.c5", 0x1000000, 0x400000, CRC(321e362c) SHA1(39bd189334278f266124c97c6f70995f6f171cea) )
+ ROM_LOAD16_BYTE( "223-c6.c6", 0x1000001, 0x400000, CRC(d8fcef90) SHA1(bbccacb27f1e587bc144fe7ce68bd7b327ceaaee) )
+ ROM_LOAD16_BYTE( "223-c7.c7", 0x1800000, 0x400000, CRC(bc80dd2d) SHA1(086f372015eede88c6c578595fe915e28a589d2f) )
+ ROM_LOAD16_BYTE( "223-c8.c8", 0x1800001, 0x400000, CRC(5ad62102) SHA1(e28cc9840caed2a1a8bd65a03bef05231071040c) )
+ROM_END
+
+ /********************************************
+ Real Bout Fatal Fury 2
+**********************************************/
+
+ROM_START( rbff2bs01 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "240hc01.p1", 0x000000, 0x100000, CRC(fa6ec14a) SHA1(0e1c8de389a025440e783225f273d7b7f49f1dc5) )
+ ROM_LOAD16_WORD_SWAP( "240-p2.sp2", 0x100000, 0x400000, CRC(960aa88d) SHA1(3d9e785891871af90313f178dca2724633406674) )
+
+ NEO_SFIX_128K( "240-s1.s1", CRC(da3b40de) SHA1(e6bf74e057ac6fe1f249a7547f13ba7fbc694561) )
+
+ NEO_BIOS_AUDIO_256K( "240-m1.m1", CRC(ed482791) SHA1(1f54a45967cb7842c33aa24be322c9f33ff75ac3) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "240-v1.v1", 0x000000, 0x400000, CRC(f796265a) SHA1(736dff37eb91fc856b4d189249fb0de9b6c0813a) )
+ ROM_LOAD( "240-v2.v2", 0x400000, 0x400000, CRC(2cb3f3bb) SHA1(697e677890892f4b028c9a27c66809ca0a8a9b18) )
+ ROM_LOAD( "240b.v3", 0x800000, 0x400000, CRC(df77b7fa) SHA1(4df971ce20bdb8c1ce8cc1692a32ac69505ffa9a) )
+ ROM_LOAD( "240b.v4", 0xc00000, 0x400000, CRC(33a356ee) SHA1(b2a08052be670f301f8d4903b36c70088d1a11da) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "240-c1.c1", 0x0000000, 0x800000, CRC(effac504) SHA1(e36a96e7369b02c7e839b5abf3c6799453ba1927) )
+ ROM_LOAD16_BYTE( "240-c2.c2", 0x0000001, 0x800000, CRC(ed182d44) SHA1(a9fc0a3a786bf067c129ec7220df65953dff804f) )
+ ROM_LOAD16_BYTE( "240-c3.c3", 0x1000000, 0x800000, CRC(22e0330a) SHA1(0fe7f6a8aeba7f17dbb278e85003969ff10d3cd2) )
+ ROM_LOAD16_BYTE( "240-c4.c4", 0x1000001, 0x800000, CRC(c19a07eb) SHA1(139eac8b51cadf328dd42d8109f4e2463f57230c) )
+ ROM_LOAD16_BYTE( "240-c5.c5", 0x2000000, 0x800000, CRC(244dff5a) SHA1(156548156d3ceaa808d0053d0749af2526a3943e) )
+ ROM_LOAD16_BYTE( "240-c6.c6", 0x2000001, 0x800000, CRC(4609e507) SHA1(bb17f50a377dddb77c1eeda5944a7bcbf0cca5f7) )
+ROM_END
+
+ROM_START( rbff2bs02 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "240hc02.p1", 0x000000, 0x100000, CRC(464c5253) SHA1(360fe5b870313fb3f432440545d756bbc8adf850) )
+ ROM_LOAD16_WORD_SWAP( "240-p2.sp2", 0x100000, 0x400000, CRC(960aa88d) SHA1(3d9e785891871af90313f178dca2724633406674) )
+
+ NEO_SFIX_128K( "240-s1.s1", CRC(da3b40de) SHA1(e6bf74e057ac6fe1f249a7547f13ba7fbc694561) )
+
+ NEO_BIOS_AUDIO_256K( "240-m1.m1", CRC(ed482791) SHA1(1f54a45967cb7842c33aa24be322c9f33ff75ac3) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "240-v1.v1", 0x000000, 0x400000, CRC(f796265a) SHA1(736dff37eb91fc856b4d189249fb0de9b6c0813a) )
+ ROM_LOAD( "240-v2.v2", 0x400000, 0x400000, CRC(2cb3f3bb) SHA1(697e677890892f4b028c9a27c66809ca0a8a9b18) )
+ ROM_LOAD( "240b.v3", 0x800000, 0x400000, CRC(df77b7fa) SHA1(4df971ce20bdb8c1ce8cc1692a32ac69505ffa9a) )
+ ROM_LOAD( "240b.v4", 0xc00000, 0x400000, CRC(33a356ee) SHA1(b2a08052be670f301f8d4903b36c70088d1a11da) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "240-c1.c1", 0x0000000, 0x800000, CRC(effac504) SHA1(e36a96e7369b02c7e839b5abf3c6799453ba1927) )
+ ROM_LOAD16_BYTE( "240-c2.c2", 0x0000001, 0x800000, CRC(ed182d44) SHA1(a9fc0a3a786bf067c129ec7220df65953dff804f) )
+ ROM_LOAD16_BYTE( "240-c3.c3", 0x1000000, 0x800000, CRC(22e0330a) SHA1(0fe7f6a8aeba7f17dbb278e85003969ff10d3cd2) )
+ ROM_LOAD16_BYTE( "240-c4.c4", 0x1000001, 0x800000, CRC(c19a07eb) SHA1(139eac8b51cadf328dd42d8109f4e2463f57230c) )
+ ROM_LOAD16_BYTE( "240-c5.c5", 0x2000000, 0x800000, CRC(244dff5a) SHA1(156548156d3ceaa808d0053d0749af2526a3943e) )
+ ROM_LOAD16_BYTE( "240-c6.c6", 0x2000001, 0x800000, CRC(4609e507) SHA1(bb17f50a377dddb77c1eeda5944a7bcbf0cca5f7) )
+ROM_END
+
+ROM_START( rbff2bs03 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "240hc03.p1", 0x000000, 0x100000, CRC(e17b42bd) SHA1(aecaa8a4cbea17c611c810a825c5f2659fcf1184) )
+ ROM_LOAD16_WORD_SWAP( "240-p2.sp2", 0x100000, 0x400000, CRC(960aa88d) SHA1(3d9e785891871af90313f178dca2724633406674) )
+
+ NEO_SFIX_128K( "240-s1.s1", CRC(da3b40de) SHA1(e6bf74e057ac6fe1f249a7547f13ba7fbc694561) )
+
+ NEO_BIOS_AUDIO_256K( "240-m1.m1", CRC(ed482791) SHA1(1f54a45967cb7842c33aa24be322c9f33ff75ac3) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "240-v1.v1", 0x000000, 0x400000, CRC(f796265a) SHA1(736dff37eb91fc856b4d189249fb0de9b6c0813a) )
+ ROM_LOAD( "240-v2.v2", 0x400000, 0x400000, CRC(2cb3f3bb) SHA1(697e677890892f4b028c9a27c66809ca0a8a9b18) )
+ ROM_LOAD( "240b.v3", 0x800000, 0x400000, CRC(df77b7fa) SHA1(4df971ce20bdb8c1ce8cc1692a32ac69505ffa9a) )
+ ROM_LOAD( "240b.v4", 0xc00000, 0x400000, CRC(33a356ee) SHA1(b2a08052be670f301f8d4903b36c70088d1a11da) )
+
+ ROM_REGION( 0x3000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "240-c1.c1", 0x0000000, 0x800000, CRC(effac504) SHA1(e36a96e7369b02c7e839b5abf3c6799453ba1927) )
+ ROM_LOAD16_BYTE( "240-c2.c2", 0x0000001, 0x800000, CRC(ed182d44) SHA1(a9fc0a3a786bf067c129ec7220df65953dff804f) )
+ ROM_LOAD16_BYTE( "240-c3.c3", 0x1000000, 0x800000, CRC(22e0330a) SHA1(0fe7f6a8aeba7f17dbb278e85003969ff10d3cd2) )
+ ROM_LOAD16_BYTE( "240-c4.c4", 0x1000001, 0x800000, CRC(c19a07eb) SHA1(139eac8b51cadf328dd42d8109f4e2463f57230c) )
+ ROM_LOAD16_BYTE( "240-c5.c5", 0x2000000, 0x800000, CRC(244dff5a) SHA1(156548156d3ceaa808d0053d0749af2526a3943e) )
+ ROM_LOAD16_BYTE( "240-c6.c6", 0x2000001, 0x800000, CRC(4609e507) SHA1(bb17f50a377dddb77c1eeda5944a7bcbf0cca5f7) )
+ROM_END
+
+GAME( 1991, fatfury1s01, fatfury1, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Fatal Fury - King of Fighters (Description Of Unknown Origin 01)", MACHINE_SUPPORTS_SAVE )
+ // Fatal Fury 3
+GAME( 1995, fatfury3s01, fatfury3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Fatal Fury 3 (Description Of Unknown Origin 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, fatfury3s02, fatfury3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Fatal Fury 3 (Description Of Unknown Origin 02)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, rbffss01, rbffspec, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Real Bout Fatal Fury Special (Description Of Unknown Origin 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, rbffss02, rbffspec, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Real Bout Fatal Fury Special (Description Of Unknown Origin 02)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, rbffss03, rbffspec, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Real Bout Fatal Fury Special (Description Of Unknown Origin 03)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, rbffss04, rbffspec, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Real Bout Fatal Fury Special (Description Of Unknown Origin 04)", MACHINE_SUPPORTS_SAVE )
+ // Real Bout Fatal Fury 2
+GAME( 1998, rbff2bs01, rbff2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Real Bout Fatal Fury 2 (Max Power Set 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, rbff2bs02, rbff2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Real Bout Fatal Fury 2 (Description Of Unknown Origin 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, rbff2bs03, rbff2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Real Bout Fatal Fury 2 (Max Power Set 02)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/ngrotd.cpp b/src/hbmame/drivers/ngrotd.cpp
new file mode 100644
index 00000000000..cbea11e9230
--- /dev/null
+++ b/src/hbmame/drivers/ngrotd.cpp
@@ -0,0 +1,956 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+
+
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, rotdb )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, ROTD_GFX_KEY);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+ m_pcm2_prot->neo_pcm2_snk_1999(ym_region, ym_region_size, 16);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, rotdd )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+ m_pcm2_prot->neo_pcm2_snk_1999(ym_region, ym_region_size, 16);
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, rotdnd )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_sprgen->m_fixed_layer_bank_type = 1;
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+
+
+ROM_START( rotdb ) /* Rage of the Dragons - Hack by Ydmis - (Console mode enabled - can choose Abubo and Johann) */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "264b.p1", 0x000000, 0x800000, CRC(66d05f5b) SHA1(8114262695229ec8af22001569481007a30dc977) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "264d.m1", CRC(7e06206d) SHA1(ba32dd6ffbfbf532bba9bed4c2d70cfbe959ac23) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) )
+ ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) )
+ ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) )
+ ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) )
+ ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) )
+ ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) )
+ ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) )
+ ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) )
+ ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) )
+ROM_END
+
+ROM_START( rotdb1 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "264b1.p1", 0x000000, 0x800000, CRC(8bf2d91e) SHA1(5b0e92934bb672761320eb7377962b977b39c0e5) )
+
+ NEO_SFIX_128K( "264b1.s1", CRC(b530292a) SHA1(8479cbdb377e7ed324aa777e3f6d094f4d1b80b5) )
+
+ NEO_BIOS_AUDIO_128K( "264nd.m1", CRC(c5d36af9) SHA1(320739d0cfa6cc84455ae1f7b1f9cdab3c018933) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "264nd.v1", 0x000000, 0x400000, CRC(5C77A3FE) SHA1(3de61ff174d8b5b1a735666d3ed30554637e4b2d) )
+ ROM_LOAD( "264nd.v2", 0x400000, 0x400000, CRC(A9B7AF14) SHA1(5e3c693634139fa8bbc0966af2873d1413cc13d9) )
+ ROM_LOAD( "264nd.v3", 0x800000, 0x400000, CRC(17AFF92A) SHA1(cafbef0b1b20b53c9d18c6b727e1912f0c958382) )
+ ROM_LOAD( "264nd.v4", 0xC00000, 0x400000, CRC(BC6A091E) SHA1(434b0e7aeac14677c7ce95d119dc1dd7a41a85cb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "264d.c1", 0x0000000, 0x800000, CRC(ec9d18c0) SHA1(83EBEDAE9655B6C64421CD131930B27D252853EC) )
+ ROM_LOAD16_BYTE( "264d.c2", 0x0000001, 0x800000, CRC(b1069066) SHA1(0B4E2249EFC782B572B589F72AADBD8007E8778C) )
+ ROM_LOAD16_BYTE( "264d.c3", 0x1000000, 0x800000, CRC(7e636d49) SHA1(1BA15DDBCE8369D7232CC1DA3F833F6CB68FBC10) )
+ ROM_LOAD16_BYTE( "264d.c4", 0x1000001, 0x800000, CRC(76892fda) SHA1(27416585973A6EC7B5721DE1116C8700B38E3A4C) )
+ ROM_LOAD16_BYTE( "264d.c5", 0x2000000, 0x800000, CRC(469061bc) SHA1(34E60E5F93743BE88BFC9E8B7656FE9FAF77F8F5) )
+ ROM_LOAD16_BYTE( "264d.c6", 0x2000001, 0x800000, CRC(2200220a) SHA1(8379B4C89854B3CC9B4F33F4F51AB5387ACD14CA) )
+ ROM_LOAD16_BYTE( "264d.c7", 0x3000000, 0x800000, CRC(edda4baf) SHA1(3F53EB50FD9EC9E9EE05EEE050885C07023B6D53) )
+ ROM_LOAD16_BYTE( "264d.c8", 0x3000001, 0x800000, CRC(82b1ba22) SHA1(B4AD715807F2C15FC06945F0BCB475C3698CF089) )
+ROM_END
+
+ROM_START( rotdbh )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "264bh.p1", 0x000000, 0x800000, CRC(6c7f4efd) SHA1(d7d951d0520f30baa4a7c5875cfb0b7f8243ec8a) )
+
+ NEO_SFIX_128K( "264b1.s1", CRC(b530292a) SHA1(8479cbdb377e7ed324aa777e3f6d094f4d1b80b5) )
+
+ NEO_BIOS_AUDIO_ENCRYPTED_128K( "264-m1.m1", CRC(4dbd7b43) SHA1(6b63756b0d2d30bbf13fbd219833c81fd060ef96) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) )
+ ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) )
+ ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) )
+ ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) )
+ ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) )
+ ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) )
+ ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) )
+ ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) )
+ ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) )
+ROM_END
+
+ROM_START( rotdbr ) /* Rage of the Dragons - Translation Hack by UNKNOWN - (Portuguese translation) */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "264br.p1", 0x000000, 0x800000, CRC(8f5d7188) SHA1(a29209a05a22e18d6baa78830d6bbc763d23dcac) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "264d.m1", CRC(7e06206d) SHA1(ba32dd6ffbfbf532bba9bed4c2d70cfbe959ac23) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) )
+ ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) )
+ ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) )
+ ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) )
+ ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) )
+ ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) )
+ ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) )
+ ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) )
+ ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) )
+ROM_END
+
+ROM_START( rotdbr1 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "264br1.p1", 0x000000, 0x800000, CRC(59395cb3) SHA1(3f723a4b9bbc8c587eab449ecdb2be666ca59992) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "264d.m1", CRC(7e06206d) SHA1(ba32dd6ffbfbf532bba9bed4c2d70cfbe959ac23) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) )
+ ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) )
+ ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) )
+ ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) )
+ ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) )
+ ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) )
+ ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) )
+ ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) )
+ ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) )
+ROM_END
+
+ROM_START( rotdbr2 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "264br2.p1", 0x000000, 0x800000, CRC(8a973ecf) SHA1(5c472fca9091fb88f49ea72ce49b17fae3bbdaa9) )
+
+ NEO_SFIX_128K( "264br2.s1", CRC(28b387d6) SHA1(eb50e74b66ce9e14765fa0841e928b8be3035c73) )
+
+ NEO_BIOS_AUDIO_64K( "264d.m1", CRC(7e06206d) SHA1(ba32dd6ffbfbf532bba9bed4c2d70cfbe959ac23) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) )
+ ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) )
+ ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) )
+ ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) )
+ ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) )
+ ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) )
+ ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) )
+ ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) )
+ ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) )
+ROM_END
+
+ROM_START( rotdbr2d )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "264br2.p1", 0x000000, 0x800000, CRC(8a973ecf) SHA1(5c472fca9091fb88f49ea72ce49b17fae3bbdaa9) )
+
+ NEO_SFIX_128K( "264br2.s1", CRC(28b387d6) SHA1(eb50e74b66ce9e14765fa0841e928b8be3035c73) )
+
+ NEO_BIOS_AUDIO_128K( "264nd.m1", CRC(c5d36af9) SHA1(320739d0cfa6cc84455ae1f7b1f9cdab3c018933) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "264nd.v1", 0x000000, 0x400000, CRC(5C77A3FE) SHA1(3de61ff174d8b5b1a735666d3ed30554637e4b2d) )
+ ROM_LOAD( "264nd.v2", 0x400000, 0x400000, CRC(A9B7AF14) SHA1(5e3c693634139fa8bbc0966af2873d1413cc13d9) )
+ ROM_LOAD( "264nd.v3", 0x800000, 0x400000, CRC(17AFF92A) SHA1(cafbef0b1b20b53c9d18c6b727e1912f0c958382) )
+ ROM_LOAD( "264nd.v4", 0xC00000, 0x400000, CRC(BC6A091E) SHA1(434b0e7aeac14677c7ce95d119dc1dd7a41a85cb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "264d.c1", 0x0000000, 0x800000, CRC(ec9d18c0) SHA1(83EBEDAE9655B6C64421CD131930B27D252853EC) )
+ ROM_LOAD16_BYTE( "264d.c2", 0x0000001, 0x800000, CRC(b1069066) SHA1(0B4E2249EFC782B572B589F72AADBD8007E8778C) )
+ ROM_LOAD16_BYTE( "264d.c3", 0x1000000, 0x800000, CRC(7e636d49) SHA1(1BA15DDBCE8369D7232CC1DA3F833F6CB68FBC10) )
+ ROM_LOAD16_BYTE( "264d.c4", 0x1000001, 0x800000, CRC(76892fda) SHA1(27416585973A6EC7B5721DE1116C8700B38E3A4C) )
+ ROM_LOAD16_BYTE( "264d.c5", 0x2000000, 0x800000, CRC(469061bc) SHA1(34E60E5F93743BE88BFC9E8B7656FE9FAF77F8F5) )
+ ROM_LOAD16_BYTE( "264d.c6", 0x2000001, 0x800000, CRC(2200220a) SHA1(8379B4C89854B3CC9B4F33F4F51AB5387ACD14CA) )
+ ROM_LOAD16_BYTE( "264d.c7", 0x3000000, 0x800000, CRC(edda4baf) SHA1(3F53EB50FD9EC9E9EE05EEE050885C07023B6D53) )
+ ROM_LOAD16_BYTE( "264d.c8", 0x3000001, 0x800000, CRC(82b1ba22) SHA1(B4AD715807F2C15FC06945F0BCB475C3698CF089) )
+ROM_END
+
+ROM_START( rotdcre ) /* Rage of the Dragons - Hack by Creamymami and UNKNOWN - (Console mode enabled - always power max - no change wait) */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "264cre.p1", 0x000000, 0x800000, CRC(c3f5a8ea) SHA1(4a7beeb4269846f743bafb118256c1106fd7d529) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "264d.m1", CRC(7e06206d) SHA1(ba32dd6ffbfbf532bba9bed4c2d70cfbe959ac23) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) )
+ ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) )
+ ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) )
+ ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) )
+ ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) )
+ ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) )
+ ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) )
+ ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) )
+ ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) )
+ROM_END
+
+ROM_START( rotdcreb ) /* Rage of the Dragons - Hack by Creamymami, UNKNOWN and Ydmis - (Console mode enabled - can choose Abubo and Johann - always power max - no change wait) */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "264creb.p1", 0x000000, 0x800000, CRC(c058f365) SHA1(84731cf354693141cc06f90a73bbd597eb6a594f) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "264d.m1", CRC(7e06206d) SHA1(ba32dd6ffbfbf532bba9bed4c2d70cfbe959ac23) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) )
+ ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) )
+ ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) )
+ ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) )
+ ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) )
+ ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) )
+ ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) )
+ ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) )
+ ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) )
+ROM_END
+
+ROM_START( rotdd )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "264-p1.p1", 0x000000, 0x800000, CRC(b8cc969d) SHA1(4f2205b4bdd32dd1522106ef4df10ac0eb1b852d) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "264d.m1", CRC(7e06206d) SHA1(ba32dd6ffbfbf532bba9bed4c2d70cfbe959ac23) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) )
+ ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "264d.c1", 0x0000000, 0x800000, CRC(ec9d18c0) SHA1(83EBEDAE9655B6C64421CD131930B27D252853EC) )
+ ROM_LOAD16_BYTE( "264d.c2", 0x0000001, 0x800000, CRC(b1069066) SHA1(0B4E2249EFC782B572B589F72AADBD8007E8778C) )
+ ROM_LOAD16_BYTE( "264d.c3", 0x1000000, 0x800000, CRC(7e636d49) SHA1(1BA15DDBCE8369D7232CC1DA3F833F6CB68FBC10) )
+ ROM_LOAD16_BYTE( "264d.c4", 0x1000001, 0x800000, CRC(76892fda) SHA1(27416585973A6EC7B5721DE1116C8700B38E3A4C) )
+ ROM_LOAD16_BYTE( "264d.c5", 0x2000000, 0x800000, CRC(469061bc) SHA1(34E60E5F93743BE88BFC9E8B7656FE9FAF77F8F5) )
+ ROM_LOAD16_BYTE( "264d.c6", 0x2000001, 0x800000, CRC(2200220a) SHA1(8379B4C89854B3CC9B4F33F4F51AB5387ACD14CA) )
+ ROM_LOAD16_BYTE( "264d.c7", 0x3000000, 0x800000, CRC(edda4baf) SHA1(3F53EB50FD9EC9E9EE05EEE050885C07023B6D53) )
+ ROM_LOAD16_BYTE( "264d.c8", 0x3000001, 0x800000, CRC(82b1ba22) SHA1(B4AD715807F2C15FC06945F0BCB475C3698CF089) )
+ROM_END
+
+ROM_START( rotddh )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "264dh.p1", 0x000000, 0x800000, CRC(7c095666) SHA1(2b9412105cd60fa6d7eea9d13a552fd976f56eb6) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "264nd.m1", CRC(c5d36af9) SHA1(320739d0cfa6cc84455ae1f7b1f9cdab3c018933) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) )
+ ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "264d.c1", 0x0000000, 0x800000, CRC(ec9d18c0) SHA1(83EBEDAE9655B6C64421CD131930B27D252853EC) )
+ ROM_LOAD16_BYTE( "264d.c2", 0x0000001, 0x800000, CRC(b1069066) SHA1(0B4E2249EFC782B572B589F72AADBD8007E8778C) )
+ ROM_LOAD16_BYTE( "264d.c3", 0x1000000, 0x800000, CRC(7e636d49) SHA1(1BA15DDBCE8369D7232CC1DA3F833F6CB68FBC10) )
+ ROM_LOAD16_BYTE( "264d.c4", 0x1000001, 0x800000, CRC(76892fda) SHA1(27416585973A6EC7B5721DE1116C8700B38E3A4C) )
+ ROM_LOAD16_BYTE( "264d.c5", 0x2000000, 0x800000, CRC(469061bc) SHA1(34E60E5F93743BE88BFC9E8B7656FE9FAF77F8F5) )
+ ROM_LOAD16_BYTE( "264d.c6", 0x2000001, 0x800000, CRC(2200220a) SHA1(8379B4C89854B3CC9B4F33F4F51AB5387ACD14CA) )
+ ROM_LOAD16_BYTE( "264dh.c7", 0x3000000, 0x800000, CRC(2b5c1044) SHA1(1dc3b2bd5fed3e5b39d87c4728e8b0d8225ee7dc) )
+ ROM_LOAD16_BYTE( "264dh.c8", 0x3000001, 0x800000, CRC(f697f287) SHA1(2b257f2ebef69f19aaca54f37472f1c3dfc6bee6) )
+ROM_END
+
+ROM_START( rotdeh ) /* Rage of the Dragons - Hack by Ydmis - (Can choose Abubo and Johann) */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "264eh.p1", 0x000000, 0x800000, CRC(b8db28bc) SHA1(9fd6cd7a13bde0854243dca4b0d7d9601cde4996) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "264d.m1", CRC(7e06206d) SHA1(ba32dd6ffbfbf532bba9bed4c2d70cfbe959ac23) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) )
+ ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) )
+ ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) )
+ ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) )
+ ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) )
+ ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) )
+ ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) )
+ ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) )
+ ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) )
+ROM_END
+
+ROM_START( rotdehc ) /* Rage of the Dragons - Enhance by Creamymami, FWNL and Ydmis - (Console mode enabled - can choose Abubo and Johann - always power max - no change wait) */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "264ehc.p1", 0x000000, 0x800000, CRC(2135864c) SHA1(5abd3ffbaf60ebbf7bd15afa0666b959d820c4aa) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "264d.m1", CRC(7e06206d) SHA1(ba32dd6ffbfbf532bba9bed4c2d70cfbe959ac23) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) )
+ ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) )
+ ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) )
+ ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) )
+ ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) )
+ ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) )
+ ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) )
+ ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) )
+ ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) )
+ROM_END
+
+ROM_START( rotdfw ) /* Rage of the Dragons - Hack by FWNL and Ydmis - (Console mode enabled - can choose Abubo and Johann) */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "264fw.p1", 0x000000, 0x800000, CRC(7b89da35) SHA1(0edc3421f764deac1fefc499ffe469ad30956ebc) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "264d.m1", CRC(7e06206d) SHA1(ba32dd6ffbfbf532bba9bed4c2d70cfbe959ac23) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) )
+ ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) )
+ ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) )
+ ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) )
+ ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) )
+ ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) )
+ ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) )
+ ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) )
+ ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) )
+ROM_END
+
+ROM_START( rotdfy ) /* Rage of the Dragons - Hack by FWNL and Ydmis - (Console mode enabled - can choose Abubo and Johann) */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "264fy.p1", 0x000000, 0x800000, CRC(4ab52bcd) SHA1(7fcc074fb7c048f824fd5ef9a370c9a908299727) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "264d.m1", CRC(7e06206d) SHA1(ba32dd6ffbfbf532bba9bed4c2d70cfbe959ac23) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) )
+ ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) )
+ ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) )
+ ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) )
+ ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) )
+ ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) )
+ ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) )
+ ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) )
+ ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) )
+ROM_END
+
+ROM_START( rotdh2b ) /* Rage of the Dragons - Hack by UNKNOWN and Ydmis - (Console mode enabled - can choose Abubo and Johann) */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "264h2b.p1", 0x000000, 0x800000, CRC(87bd2a72) SHA1(5f7ae41b7813fa7058c00cfa1c0d1a8c06395f8a) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "264d.m1", CRC(7e06206d) SHA1(ba32dd6ffbfbf532bba9bed4c2d70cfbe959ac23) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) )
+ ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) )
+ ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) )
+ ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) )
+ ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) )
+ ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) )
+ ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) )
+ ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) )
+ ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) )
+ROM_END
+
+ROM_START( rotdhab ) /* Rage of the Dragons - Hack by HappyAsr - (Console mode enabled - character menue changed - can choose Abubo and Johann - characters choose twice) */
+ ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 ) // needed
+ ROM_LOAD16_WORD_SWAP( "264hab.p1", 0x000000, 0x300000, CRC(44f5312a) SHA1(9a5356dbde209c9e5ebd04ff025c7c129a0ea4da) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "264d.m1", CRC(7e06206d) SHA1(ba32dd6ffbfbf532bba9bed4c2d70cfbe959ac23) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) )
+ ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) )
+ ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) )
+ ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) )
+ ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) )
+ ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) )
+ ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) )
+ ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) )
+ ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) )
+ROM_END
+
+ROM_START( rotdhab1 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "264hab.p1", 0x000000, 0x300000, CRC(44f5312a) SHA1(9a5356dbde209c9e5ebd04ff025c7c129a0ea4da) )
+
+ NEO_SFIX_128K( "264-s1.bin", CRC(c155d4ff) SHA1(cc20d4e30004ca82da2ba075c084d294c94651d0) )
+
+ NEO_BIOS_AUDIO_128K( "264nd.m1", CRC(c5d36af9) SHA1(320739d0cfa6cc84455ae1f7b1f9cdab3c018933) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "264nd.v1", 0x000000, 0x400000, CRC(5C77A3FE) SHA1(3de61ff174d8b5b1a735666d3ed30554637e4b2d) )
+ ROM_LOAD( "264nd.v2", 0x400000, 0x400000, CRC(A9B7AF14) SHA1(5e3c693634139fa8bbc0966af2873d1413cc13d9) )
+ ROM_LOAD( "264nd.v3", 0x800000, 0x400000, CRC(17AFF92A) SHA1(cafbef0b1b20b53c9d18c6b727e1912f0c958382) )
+ ROM_LOAD( "264nd.v4", 0xC00000, 0x400000, CRC(BC6A091E) SHA1(434b0e7aeac14677c7ce95d119dc1dd7a41a85cb) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "264d.c1", 0x0000000, 0x800000, CRC(ec9d18c0) SHA1(83EBEDAE9655B6C64421CD131930B27D252853EC) )
+ ROM_LOAD16_BYTE( "264d.c2", 0x0000001, 0x800000, CRC(b1069066) SHA1(0B4E2249EFC782B572B589F72AADBD8007E8778C) )
+ ROM_LOAD16_BYTE( "264d.c3", 0x1000000, 0x800000, CRC(7e636d49) SHA1(1BA15DDBCE8369D7232CC1DA3F833F6CB68FBC10) )
+ ROM_LOAD16_BYTE( "264d.c4", 0x1000001, 0x800000, CRC(76892fda) SHA1(27416585973A6EC7B5721DE1116C8700B38E3A4C) )
+ ROM_LOAD16_BYTE( "264d.c5", 0x2000000, 0x800000, CRC(469061bc) SHA1(34E60E5F93743BE88BFC9E8B7656FE9FAF77F8F5) )
+ ROM_LOAD16_BYTE( "264d.c6", 0x2000001, 0x800000, CRC(2200220a) SHA1(8379B4C89854B3CC9B4F33F4F51AB5387ACD14CA) )
+ ROM_LOAD16_BYTE( "264d.c7", 0x3000000, 0x800000, CRC(edda4baf) SHA1(3F53EB50FD9EC9E9EE05EEE050885C07023B6D53) )
+ ROM_LOAD16_BYTE( "264d.c8", 0x3000001, 0x800000, CRC(82b1ba22) SHA1(B4AD715807F2C15FC06945F0BCB475C3698CF089) )
+ROM_END
+
+ROM_START( rotdhar ) /* Rage of the Dragons - Hack by HappyAsr - (Console mode enabled) */
+ ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 )
+ ROM_LOAD16_WORD_SWAP( "264har.p1", 0x000000, 0x300000, CRC(ca979b31) SHA1(03ff383db6b33ffbd7736bc87888f7c645dda62d) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "264d.m1", CRC(7e06206d) SHA1(ba32dd6ffbfbf532bba9bed4c2d70cfbe959ac23) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) )
+ ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) )
+ ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) )
+ ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) )
+ ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) )
+ ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) )
+ ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) )
+ ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) )
+ ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) )
+ROM_END
+
+ROM_START( rotdhfw ) /* Rage of the Dragons - Hack by FWNL - (Console mode enabled) */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "264hfw.p1", 0x000000, 0x800000, CRC(49187042) SHA1(f7609bc4fa236304bbf7383ea49e2a4a5cf44682) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "264d.m1", CRC(7e06206d) SHA1(ba32dd6ffbfbf532bba9bed4c2d70cfbe959ac23) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) )
+ ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) )
+ ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) )
+ ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) )
+ ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) )
+ ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) )
+ ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) )
+ ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) )
+ ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) )
+ROM_END
+
+ROM_START( rotdhfwb ) /* Rage of the Dragons - Hack by FWNL and Ydmis - (Console mode enabled - can choose Abubo and Johann) */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "264hfwb.p1", 0x000000, 0x800000, CRC(ed25cd79) SHA1(db73cf2e907fefc7d52cbbda2f36bc5edfa86ccb) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "264d.m1", CRC(7e06206d) SHA1(ba32dd6ffbfbf532bba9bed4c2d70cfbe959ac23) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) )
+ ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) )
+ ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) )
+ ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) )
+ ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) )
+ ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) )
+ ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) )
+ ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) )
+ ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) )
+ROM_END
+
+ROM_START( rotdnd )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "264nd1.p1", 0x000000, 0x800000, CRC(23809749) SHA1(c0b63032e08337b9a9ab0e3ca1f91a8be2641e74) )
+
+ NEO_SFIX_128K( "264-s1.bin", CRC(c155d4ff) SHA1(cc20d4e30004ca82da2ba075c084d294c94651d0) )
+
+ NEO_BIOS_AUDIO_128K( "264nd.m1", CRC(c5d36af9) SHA1(320739d0cfa6cc84455ae1f7b1f9cdab3c018933) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "264nd1.v1", 0x000000, 0x800000, CRC(2c49f3fa) SHA1(501e8b792bc96a262058326541333738418fbbdd) )
+ ROM_LOAD( "264nd1.v2", 0x800000, 0x800000, CRC(967279da) SHA1(21e90e14f6a6d73dd049541120c36d4421e237e6) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "264d.c1", 0x0000000, 0x800000, CRC(ec9d18c0) SHA1(83EBEDAE9655B6C64421CD131930B27D252853EC) )
+ ROM_LOAD16_BYTE( "264d.c2", 0x0000001, 0x800000, CRC(b1069066) SHA1(0B4E2249EFC782B572B589F72AADBD8007E8778C) )
+ ROM_LOAD16_BYTE( "264d.c3", 0x1000000, 0x800000, CRC(7e636d49) SHA1(1BA15DDBCE8369D7232CC1DA3F833F6CB68FBC10) )
+ ROM_LOAD16_BYTE( "264d.c4", 0x1000001, 0x800000, CRC(76892fda) SHA1(27416585973A6EC7B5721DE1116C8700B38E3A4C) )
+ ROM_LOAD16_BYTE( "264d.c5", 0x2000000, 0x800000, CRC(469061bc) SHA1(34E60E5F93743BE88BFC9E8B7656FE9FAF77F8F5) )
+ ROM_LOAD16_BYTE( "264d.c6", 0x2000001, 0x800000, CRC(2200220a) SHA1(8379B4C89854B3CC9B4F33F4F51AB5387ACD14CA) )
+ ROM_LOAD16_BYTE( "264d.c7", 0x3000000, 0x800000, CRC(edda4baf) SHA1(3F53EB50FD9EC9E9EE05EEE050885C07023B6D53) )
+ ROM_LOAD16_BYTE( "264d.c8", 0x3000001, 0x800000, CRC(82b1ba22) SHA1(B4AD715807F2C15FC06945F0BCB475C3698CF089) )
+ROM_END
+
+ROM_START( rotdyc ) /* Rage of the Dragons - Hack by Creamymami and Ydmis - (Console mode enabled - can choose Abubo and Johann - power hack) */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "264yc.p1", 0x000000, 0x800000, CRC(ff3ef1ab) SHA1(bad86a1c5cdedc2589b7f668e64e10e630574fef) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "264d.m1", CRC(7e06206d) SHA1(ba32dd6ffbfbf532bba9bed4c2d70cfbe959ac23) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) )
+ ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) )
+ ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) )
+ ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) )
+ ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) )
+ ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) )
+ ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) )
+ ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) )
+ ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) )
+ROM_END
+
+
+
+GAME( 2002, rotdb, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdb, ROT0, "Ydmis", "Rage of the Dragons (Add Char - Console mode enabled set 4)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, rotdb1, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdnd, ROT0, "hack", "Rage of the Dragons (Boss Hack)2", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, rotdbh, rotd, neogeo_noslot, neogeo, neogeo_noslot_state, rotd, ROT0, "Dodowang", "Rage of the Dragons (Boss hack by Dodowang)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, rotdbr, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdb, ROT0, "hack", "Rage of the Dragons (Portuguese)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, rotdbr1, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdb, ROT0, "hack", "Rage of the Dragons (Portuguese) (Alt Set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, rotdbr2, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdb, ROT0, "hack", "Rage of the Dragons (Portuguese) (Alt Set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, rotdbr2d, rotd, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Rage of the Dragons - Portuguese/Brazilian Hack ver 2.0", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, rotdcre, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdb, ROT0, "Creamymami and Unk", "Rage of the Dragons (Console mode enabled - Always pow max - No change wait)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, rotdcreb, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdb, ROT0, "Creamymami, Unk and Ydmis", "Rage of the Dragons (Add Char - Console mode enabled - Always pow max - No change wait set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, rotdd, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdd, ROT0, "Evoga / Playmore", "Rage of the Dragons (decrypted C)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, rotddh, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdd, ROT0, "hack", "Rage of the Dragons (hack dh)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, rotdeh, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdb, ROT0, "Ydmis", "Rage of the Dragons (Add Char)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, rotdehc, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdb, ROT0, "Creamymami, FWNL and Ydmis", "Rage of the Dragons (Add Char - Console mode enabled - Always pow max - No change wait set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, rotdfw, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdb, ROT0, "FWNL and Ydmis", "Rage of the Dragons (Add Char - Console mode enabled set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, rotdfy, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdb, ROT0, "FWNL and Ydmis", "Rage of the Dragons (Add Char - Console mode enabled set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, rotdh2b, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdb, ROT0, "Unk and Ydmis", "Rage of the Dragons (Add Char - Console mode enabled set 5)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, rotdhab, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdb, ROT0, "HappyAsr", "Rage of the Dragons (Add Char - Console mode enabled - Char menu changed - Char choose twice)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, rotdhab1, rotd, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Rage of the Dragons (Hack, Hero AES) [EGCG]", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, rotdhar, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdb, ROT0, "HappyAsr", "Rage of the Dragons (Console mode enabled set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, rotdhfw, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdb, ROT0, "FWNL", "Rage of the Dragons (Console mode enabled set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, rotdhfwb, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdb, ROT0, "FWNL and Ydmis", "Rage of the Dragons (Add Char - Console mode enabled set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, rotdnd, rotd, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Evoga / Playmore Corporation", "Rage of the Dragons (Fully Decrypted)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, rotdyc, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdb, ROT0, "Creamymami and Ydmis", "Rage of the Dragons (Add Char - Console mode enabled - Pow hack)", MACHINE_SUPPORTS_SAVE )
+
+
+//PSmame
+
+
+ROM_START( rotds01 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "264hc01.p1", 0x000000, 0x800000, CRC(c852f0d2) SHA1(70e1889c4df8f05ce235a5d3cbd66fce58c105aa) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "264d.m1", CRC(7e06206d) SHA1(ba32dd6ffbfbf532bba9bed4c2d70cfbe959ac23) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) )
+ ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) )
+ ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) )
+ ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) )
+ ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) )
+ ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) )
+ ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) )
+ ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) )
+ ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) )
+ROM_END
+
+ROM_START( rotds02 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "264hc02.p1", 0x000000, 0x800000, CRC(8407cfdc) SHA1(8c2becfcd8f165c27a1c5fddc40fcb83784761dd) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "264d.m1", CRC(7e06206d) SHA1(ba32dd6ffbfbf532bba9bed4c2d70cfbe959ac23) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) )
+ ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) )
+ ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) )
+ ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) )
+ ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) )
+ ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) )
+ ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) )
+ ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) )
+ ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) )
+ROM_END
+
+ROM_START( rotds03 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "264hc03.p1", 0x000000, 0x800000, CRC(495617ac) SHA1(3dbb384285a921b5fb24f08d8cc34de005e7a491) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "264d.m1", CRC(7e06206d) SHA1(ba32dd6ffbfbf532bba9bed4c2d70cfbe959ac23) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) )
+ ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) )
+ ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) )
+ ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) )
+ ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) )
+ ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) )
+ ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) )
+ ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) )
+ ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) )
+ROM_END
+
+ROM_START( rotds04 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "264hc04.p1", 0x000000, 0x800000, CRC(d2a39e52) SHA1(e47039444b162a8945881b6c3da70d5f45d78624) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "264d.m1", CRC(7e06206d) SHA1(ba32dd6ffbfbf532bba9bed4c2d70cfbe959ac23) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) )
+ ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) )
+ ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) )
+ ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) )
+ ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) )
+ ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) )
+ ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) )
+ ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) )
+ ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) )
+ROM_END
+
+ROM_START( rotds05 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "264hc05.p1", 0x000000, 0x800000, CRC(44889313) SHA1(45b7cbdb9cdc57f0218d372558aaae5fb87766f6) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "264d.m1", CRC(7e06206d) SHA1(ba32dd6ffbfbf532bba9bed4c2d70cfbe959ac23) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) )
+ ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "264hc05.c1", 0x0000000, 0x800000, CRC(a9df0cce) SHA1(3bf0a30aa314a5ad390b3c7413c7828c8f71d555) )
+ ROM_LOAD16_BYTE( "264hc05.c2", 0x0000001, 0x800000, CRC(8b390a0b) SHA1(7eb6c839a44f22d23dffddd50324d8d87903aacc) )
+ ROM_LOAD16_BYTE( "264hc05.c3", 0x1000000, 0x800000, CRC(b7b87b63) SHA1(46851133cab4ddf1545c2a22859e7f364a80c757) )
+ ROM_LOAD16_BYTE( "264hc05.c4", 0x1000001, 0x800000, CRC(b0c8ef2e) SHA1(c5abd4207335da5acddaf718e169f17a4bc9cbc5) )
+ ROM_LOAD16_BYTE( "264hc05.c5", 0x2000000, 0x800000, CRC(738a9edd) SHA1(4a46254ac440557a626fe2668cae679a2f64994a) )
+ ROM_LOAD16_BYTE( "264hc05.c6", 0x2000001, 0x800000, CRC(fddcd101) SHA1(d6a4d5088e8ba204066e840a6ea658e77100c07f) )
+ ROM_LOAD16_BYTE( "264hc05.c7", 0x3000000, 0x800000, CRC(e32cc8d5) SHA1(9749ed4343762f8342bbc92e97fadc6704413be6) )
+ ROM_LOAD16_BYTE( "264hc05.c8", 0x3000001, 0x800000, CRC(03f124d2) SHA1(cf92a5f7aeca74946b52e7f4e96606eec62548eb) )
+ROM_END
+
+ROM_START( rotds06 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "264hc06.p1", 0x000000, 0x800000, CRC(55e0d999) SHA1(005bc574effe38320749f37feb9850ecf6a66ec4) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "264d.m1", CRC(7e06206d) SHA1(ba32dd6ffbfbf532bba9bed4c2d70cfbe959ac23) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) )
+ ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) )
+ ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) )
+ ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) )
+ ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) )
+ ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) )
+ ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) )
+ ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) )
+ ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) )
+ROM_END
+
+ROM_START( rotds07 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "264hc07.p1", 0x000000, 0x800000, CRC(8fb729c5) SHA1(aa107b749084130cfc8a95980ca3cad894c43182) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "264d.m1", CRC(7e06206d) SHA1(ba32dd6ffbfbf532bba9bed4c2d70cfbe959ac23) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) )
+ ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) )
+ ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) )
+ ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) )
+ ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) )
+ ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) )
+ ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) )
+ ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) )
+ ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) )
+ROM_END
+
+ROM_START( rotds08 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "264hc08.p1", 0x000000, 0x800000, CRC(eb027504) SHA1(d87d99bf445d5c32ec92294aa273233b06003ccf) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "264d.m1", CRC(7e06206d) SHA1(ba32dd6ffbfbf532bba9bed4c2d70cfbe959ac23) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) )
+ ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) )
+ ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) )
+ ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) )
+ ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) )
+ ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) )
+ ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) )
+ ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) )
+ ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) )
+ROM_END
+
+ROM_START( rotds09 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "264hc09.p1", 0x000000, 0x800000, CRC(af331386) SHA1(9bb6ebfdbcb60994a2591fd5d1a49743bf7f04c6) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "264d.m1", CRC(7e06206d) SHA1(ba32dd6ffbfbf532bba9bed4c2d70cfbe959ac23) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) )
+ ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) )
+ ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) )
+ ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) )
+ ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) )
+ ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) )
+ ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) )
+ ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) )
+ ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) )
+ROM_END
+
+ROM_START( rotds10 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "264hc10.p1", 0x000000, 0x800000, CRC(841071fd) SHA1(67d12f632ac4c58dc0e8a05449da1e4674862488) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "264d.m1", CRC(7e06206d) SHA1(ba32dd6ffbfbf532bba9bed4c2d70cfbe959ac23) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) )
+ ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) )
+ ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) )
+ ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) )
+ ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) )
+ ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) )
+ ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) )
+ ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) )
+ ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) )
+ROM_END
+
+ROM_START( rotds11 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "264hc11.p1", 0x000000, 0x800000, CRC(804d53e8) SHA1(f788313409d2ce265273c2d80cbf11afb1cf8fc4) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "264d.m1", CRC(7e06206d) SHA1(ba32dd6ffbfbf532bba9bed4c2d70cfbe959ac23) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) )
+ ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) )
+ ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) )
+ ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) )
+ ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) )
+ ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) )
+ ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) )
+ ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) )
+ ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) )
+ROM_END
+
+ROM_START( rotds12 )
+ ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 )
+ ROM_LOAD16_WORD_SWAP( "264hc12.p1", 0x000000, 0x300000, CRC(1d57489a) SHA1(c5f2ec92a250cf412dedf2c0b3f9125dfc636817) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "264d.m1", CRC(7e06206d) SHA1(ba32dd6ffbfbf532bba9bed4c2d70cfbe959ac23) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) )
+ ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) )
+ ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) )
+ ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) )
+ ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) )
+ ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) )
+ ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) )
+ ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) )
+ ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) )
+ROM_END
+
+ROM_START( rotds13 )
+ ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 )
+ ROM_LOAD16_WORD_SWAP( "264hc13.p1", 0x000000, 0x300000, CRC(08f6f244) SHA1(33f7acdf6272f4e8847de63c9048e01fedc6a45f) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "264d.m1", CRC(7e06206d) SHA1(ba32dd6ffbfbf532bba9bed4c2d70cfbe959ac23) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) )
+ ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) )
+ ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) )
+ ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) )
+ ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) )
+ ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) )
+ ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) )
+ ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) )
+ ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) )
+ROM_END
+
+ROM_START( rotds14 )
+ ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 )
+ ROM_LOAD16_WORD_SWAP( "264hc14.p1", 0x000000, 0x300000, CRC(92b5e247) SHA1(164375a5e5afafa8a9cf311a4b9b6368ac5e86e4) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "264d.m1", CRC(7e06206d) SHA1(ba32dd6ffbfbf532bba9bed4c2d70cfbe959ac23) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) )
+ ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) )
+ ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) )
+ ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) )
+ ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) )
+ ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) )
+ ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) )
+ ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) )
+ ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) )
+ROM_END
+
+ROM_START( rotds15 )
+ ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASE00 )
+ ROM_LOAD16_WORD_SWAP( "264hc15.p1", 0x000000, 0x300000, CRC(9335e281) SHA1(5d9fa00040695defc47a87458c6dc6bb8e4088ae) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_64K( "264d.m1", CRC(7e06206d) SHA1(ba32dd6ffbfbf532bba9bed4c2d70cfbe959ac23) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "264-v1.v1", 0x000000, 0x800000, CRC(fa005812) SHA1(73723126dab5a640ac11955ed6da1bf7a91394f5) )
+ ROM_LOAD( "264-v2.v2", 0x800000, 0x800000, CRC(c3dc8bf0) SHA1(a105e37262d9500a30fb8a5dac05aa4fab2562a3) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "264-c1.c1", 0x0000000, 0x800000, CRC(4f148fee) SHA1(0821463765fad8fbd0dfbbabb7807337d0333719) )
+ ROM_LOAD16_BYTE( "264-c2.c2", 0x0000001, 0x800000, CRC(7cf5ff72) SHA1(ccb2f94bce943576d224cb326806942426d25584) )
+ ROM_LOAD16_BYTE( "264-c3.c3", 0x1000000, 0x800000, CRC(64d84c98) SHA1(8faf153f465ce6fb7770b27a7ce63caf11dd4086) )
+ ROM_LOAD16_BYTE( "264-c4.c4", 0x1000001, 0x800000, CRC(2f394a95) SHA1(82347e8f2b48b0522d7d91fd3f372d5768934ab2) )
+ ROM_LOAD16_BYTE( "264-c5.c5", 0x2000000, 0x800000, CRC(6b99b978) SHA1(8fd0a60029b41668f9e1e3056edd3c90f62efa83) )
+ ROM_LOAD16_BYTE( "264-c6.c6", 0x2000001, 0x800000, CRC(847d5c7d) SHA1(a2ce03f6302edf81f2645de9ec61df1a281ddd78) )
+ ROM_LOAD16_BYTE( "264-c7.c7", 0x3000000, 0x800000, CRC(231d681e) SHA1(87836e64dc816f8bf1c834641535ea96baacc024) )
+ ROM_LOAD16_BYTE( "264-c8.c8", 0x3000001, 0x800000, CRC(c5edb5c4) SHA1(253378c8739daa5da4edb15eff7050820b2b3755) )
+ROM_END
+
+GAME( 2016, rotds01, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdb, ROT0, "Hacks", "Rage of the Dragons (Power Max Alternative Set 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, rotds02, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdb, ROT0, "Hacks", "Rage of the Dragons (Boss Hacks V1 + Added Character Alternative set 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, rotds03, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdb, ROT0, "Hacks", "Rage of the Dragons (Boss Hacks V2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, rotds04, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdb, ROT0, "Hacks", "Rage of the Dragons (Boss Hacks V3 + Added Character Alternative set 02)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, rotds05, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdb, ROT0, "Hacks", "Rage of the Dragons (Boss Hacks V4 + Added Character Alternative set 03)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, rotds06, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdb, ROT0, "Hacks", "Rage of the Dragons (Description Of Unknown Origin 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, rotds07, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdb, ROT0, "Hacks", "Rage of the Dragons (Description Of Unknown Origin 02)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, rotds08, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdb, ROT0, "Hacks", "Rage of the Dragons (Power Max Alternative Set 04)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, rotds09, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdb, ROT0, "Hacks", "Rage of the Dragons (Power Max Alternative Set 05)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, rotds10, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdb, ROT0, "Hacks", "Rage of the Dragons (Description Of Unknown Origin 03)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, rotds11, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdb, ROT0, "Hacks", "Rage of the Dragons (Choose Same)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, rotds12, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdb, ROT0, "Hacks", "Rage of the Dragons (Added Character Alternative set 04)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, rotds13, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdb, ROT0, "Hacks", "Rage of the Dragons (Description Of Unknown Origin 04)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, rotds14, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdb, ROT0, "Hacks", "Rage of the Dragons (Added Character Plus Alternative)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, rotds15, rotd, neogeo_noslot, neogeo, neogeo_hbmame, rotdb, ROT0, "Hacks", "Rage of the Dragons (Description Of Unknown Origin 05)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/ngsamsho.cpp b/src/hbmame/drivers/ngsamsho.cpp
new file mode 100644
index 00000000000..eaa7ffd2b2b
--- /dev/null
+++ b/src/hbmame/drivers/ngsamsho.cpp
@@ -0,0 +1,4005 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+// Samurai Shodown / Samurai Spirits
+
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, sam5hb )
+{
+ DRIVER_INIT_CALL(neogeo);
+ // This is needed if s1 size > 0x20000, ignored otherwise
+ m_sprgen->m_fixed_layer_bank_type = 1;
+
+ // decrypt p roms if needed
+ u8 *ram = memregion("maincpu")->base();
+ if (ram[0x100007] != 0xC2)
+ {
+ //printf("Maincpu=%X\n",ram[0x100007]);fflush(stdout);
+ m_kof2002_prot->samsho5_decrypt_68k(cpuregion, cpuregion_size);
+ }
+
+ // decrypt m1 if needed
+ if (memregion("audiocrypt"))
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size);
+
+ // decrypt v roms if needed
+ ram = memregion("ymsnd")->base();
+ if (ram[0] != 8)
+ {
+ //printf("ym=%X\n",ram[0]);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 4);
+ }
+
+ // decrypt c roms if needed
+ ram = memregion("sprites")->base();
+ if (ram[0] != 0)
+ {
+ //printf("Sprites=%X\n",ram[0]);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, SAMSHO5_GFX_KEY);
+ }
+
+ // if no s rom, copy info from end of c roms
+ ram = memregion("fixed")->base();
+ if (ram[0x100] == 0)
+ {
+ //printf("Fixed1=%X\n",ram[0x100]);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+ }
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, sam5sphb )
+{
+ DRIVER_INIT_CALL(neogeo);
+ // This is needed if s1 size > 0x20000, ignored otherwise
+ m_sprgen->m_fixed_layer_bank_type = 1;
+
+ // decrypt p roms if needed
+ u8 *ram = memregion("maincpu")->base();
+ if (ram[0x100007] == 0)
+ {
+ //printf("Maincpu=%X\n",ram[0x100007]);fflush(stdout);
+ m_kof2002_prot->samsh5sp_decrypt_68k(cpuregion, cpuregion_size);
+ }
+
+ // decrypt m1 if needed
+ if (memregion("audiocrypt"))
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size);
+
+ // decrypt v roms if needed
+ ram = memregion("ymsnd")->base();
+ if (ram[0] != 8)
+ {
+ //printf("ym=%X\n",ram[0]);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 6);
+ }
+
+ // if no s rom, copy info from end of c roms
+ ram = memregion("fixed")->base();
+ if (ram[0x100] == 0)
+ {
+ //printf("Fixed1=%X\n",ram[0x100]);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+ }
+}
+
+
+
+ROM_START( fswordsb1 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "187b1.p1", 0x000000, 0x100000, CRC(382f6a55) SHA1(892ef8ade8d65a57fff71966e389c20ecba225da) )
+ ROM_LOAD16_WORD_SWAP( "087-p2.sp2", 0x100000, 0x200000, CRC(9bbe27e0) SHA1(b18117102159903c8e8f4e4226e1cc91a400e816) )
+
+ NEO_SFIX_128K( "087-s1.s1", CRC(74ec7d9f) SHA1(d79c479838a7ca51735a44f91f1968ec5b3c6b91) )
+
+ NEO_BIOS_AUDIO_128K( "087-m1.m1", CRC(8e6440eb) SHA1(e3f72150af4e326543b29df71cda27d73ec087c1) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "087-v1.v1", 0x000000, 0x400000, CRC(84bdd9a0) SHA1(adceceb00569eca13fcc2e0f0d9f0d9b06a06851) )
+ ROM_LOAD( "087-v2.v2", 0x400000, 0x200000, CRC(ac0f261a) SHA1(5411bdff24cba7fdbc3397d45a70fb468d7a44b3) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "087-c1.c1", 0x0000000, 0x400000, CRC(07a233bc) SHA1(654cb56cfd6eeebe6745c0b8b730317fb8ccd3d9) )
+ ROM_LOAD16_BYTE( "087-c2.c2", 0x0000001, 0x400000, CRC(7a413592) SHA1(b8c7a2d0d7a8b14d6cab94d7a5f347e73c6ab7a4) )
+ ROM_LOAD16_BYTE( "087-c3.c3", 0x0800000, 0x400000, CRC(8b793796) SHA1(053acc129ea56691607a5d255845703e61fd3ada) )
+ ROM_LOAD16_BYTE( "087-c4.c4", 0x0800001, 0x400000, CRC(728fbf11) SHA1(daa319d455f759bfc08a37b43218bdb48dc1c9e5) )
+ ROM_LOAD16_BYTE( "087-c5.c5", 0x1000000, 0x400000, CRC(172ab180) SHA1(a6122f683bdb78d0079e1e360c1b96ba28def7b7) )
+ ROM_LOAD16_BYTE( "087-c6.c6", 0x1000001, 0x400000, CRC(002ff8f3) SHA1(3a378708697d727796c4f702dd5bbf1c9eb4daec) )
+ ROM_LOAD16_BYTE( "087-c7.c7", 0x1800000, 0x100000, CRC(ae450e3d) SHA1(ec482632cc347ec3f9e68df0ebcaa16ebe41b9f9) )
+ ROM_LOAD16_BYTE( "087-c8.c8", 0x1800001, 0x100000, CRC(a9e82717) SHA1(e39ee15d5140dbe7f06eea945cce9984a5e8b06a) )
+ROM_END
+
+ROM_START( fswordsb2 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "187b2.p1", 0x000000, 0x100000, CRC(061fca36) SHA1(f8e69f48c6f4e8645b96a0261d849a93d5f48dd7) )
+ ROM_LOAD16_WORD_SWAP( "087-p2.sp2", 0x100000, 0x200000, CRC(9bbe27e0) SHA1(b18117102159903c8e8f4e4226e1cc91a400e816) )
+
+ NEO_SFIX_128K( "087-s1.s1", CRC(74ec7d9f) SHA1(d79c479838a7ca51735a44f91f1968ec5b3c6b91) )
+
+ NEO_BIOS_AUDIO_128K( "087-m1.m1", CRC(8e6440eb) SHA1(e3f72150af4e326543b29df71cda27d73ec087c1) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "087-v1.v1", 0x000000, 0x400000, CRC(84bdd9a0) SHA1(adceceb00569eca13fcc2e0f0d9f0d9b06a06851) )
+ ROM_LOAD( "087-v2.v2", 0x400000, 0x200000, CRC(ac0f261a) SHA1(5411bdff24cba7fdbc3397d45a70fb468d7a44b3) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "087-c1.c1", 0x0000000, 0x400000, CRC(07a233bc) SHA1(654cb56cfd6eeebe6745c0b8b730317fb8ccd3d9) )
+ ROM_LOAD16_BYTE( "087-c2.c2", 0x0000001, 0x400000, CRC(7a413592) SHA1(b8c7a2d0d7a8b14d6cab94d7a5f347e73c6ab7a4) )
+ ROM_LOAD16_BYTE( "087-c3.c3", 0x0800000, 0x400000, CRC(8b793796) SHA1(053acc129ea56691607a5d255845703e61fd3ada) )
+ ROM_LOAD16_BYTE( "087-c4.c4", 0x0800001, 0x400000, CRC(728fbf11) SHA1(daa319d455f759bfc08a37b43218bdb48dc1c9e5) )
+ ROM_LOAD16_BYTE( "087-c5.c5", 0x1000000, 0x400000, CRC(172ab180) SHA1(a6122f683bdb78d0079e1e360c1b96ba28def7b7) )
+ ROM_LOAD16_BYTE( "087-c6.c6", 0x1000001, 0x400000, CRC(002ff8f3) SHA1(3a378708697d727796c4f702dd5bbf1c9eb4daec) )
+ ROM_LOAD16_BYTE( "087-c7.c7", 0x1800000, 0x100000, CRC(ae450e3d) SHA1(ec482632cc347ec3f9e68df0ebcaa16ebe41b9f9) )
+ ROM_LOAD16_BYTE( "087-c8.c8", 0x1800001, 0x100000, CRC(a9e82717) SHA1(e39ee15d5140dbe7f06eea945cce9984a5e8b06a) )
+ROM_END
+
+ROM_START( fswordsbf )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "187bf.p1", 0x000000, 0x100000, CRC(ba48c4c1) SHA1(c2aba24cda885fc8f8072023e496e599c2e610a2) )
+ ROM_LOAD16_WORD_SWAP( "087-p2.sp2", 0x100000, 0x200000, CRC(9bbe27e0) SHA1(b18117102159903c8e8f4e4226e1cc91a400e816) )
+
+ NEO_SFIX_128K( "087-s1.s1", CRC(74ec7d9f) SHA1(d79c479838a7ca51735a44f91f1968ec5b3c6b91) )
+
+ NEO_BIOS_AUDIO_128K( "087-m1.m1", CRC(8e6440eb) SHA1(e3f72150af4e326543b29df71cda27d73ec087c1) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "087-v1.v1", 0x000000, 0x400000, CRC(84bdd9a0) SHA1(adceceb00569eca13fcc2e0f0d9f0d9b06a06851) )
+ ROM_LOAD( "087-v2.v2", 0x400000, 0x200000, CRC(ac0f261a) SHA1(5411bdff24cba7fdbc3397d45a70fb468d7a44b3) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "087-c1.c1", 0x0000000, 0x400000, CRC(07a233bc) SHA1(654cb56cfd6eeebe6745c0b8b730317fb8ccd3d9) )
+ ROM_LOAD16_BYTE( "087-c2.c2", 0x0000001, 0x400000, CRC(7a413592) SHA1(b8c7a2d0d7a8b14d6cab94d7a5f347e73c6ab7a4) )
+ ROM_LOAD16_BYTE( "087-c3.c3", 0x0800000, 0x400000, CRC(8b793796) SHA1(053acc129ea56691607a5d255845703e61fd3ada) )
+ ROM_LOAD16_BYTE( "087-c4.c4", 0x0800001, 0x400000, CRC(728fbf11) SHA1(daa319d455f759bfc08a37b43218bdb48dc1c9e5) )
+ ROM_LOAD16_BYTE( "087-c5.c5", 0x1000000, 0x400000, CRC(172ab180) SHA1(a6122f683bdb78d0079e1e360c1b96ba28def7b7) )
+ ROM_LOAD16_BYTE( "087-c6.c6", 0x1000001, 0x400000, CRC(002ff8f3) SHA1(3a378708697d727796c4f702dd5bbf1c9eb4daec) )
+ ROM_LOAD16_BYTE( "087-c7.c7", 0x1800000, 0x100000, CRC(ae450e3d) SHA1(ec482632cc347ec3f9e68df0ebcaa16ebe41b9f9) )
+ ROM_LOAD16_BYTE( "087-c8.c8", 0x1800001, 0x100000, CRC(a9e82717) SHA1(e39ee15d5140dbe7f06eea945cce9984a5e8b06a) )
+ROM_END
+
+
+ROM_START( samshob ) /* Samurai Shodown - Hack by Ydmis - (Can choose Amakusa) */
+ ROM_REGION( 0x180000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "045b.p1", 0x000000, 0x080000, CRC(bc16e98b) SHA1(097611c6b0f1f0f09460d49b67c09f1611ce68bc) )
+ ROM_LOAD16_WORD_SWAP( "045b.p3", 0x080000, 0x080000, CRC(71768728) SHA1(9ff0e01d3fb73ad04279d4fdf4c53c3160888179) )
+ ROM_LOAD16_WORD_SWAP( "045-p2.sp2", 0x100000, 0x080000, CRC(38ee9ba9) SHA1(48190699a6be83cb6257365ae81f93fdd23abe09) )
+
+ NEO_SFIX_128K( "045-s1.s1", CRC(9142a4d3) SHA1(54088e99fcfd75fd0f94852890a56350066a05a3) )
+
+ NEO_BIOS_AUDIO_128K( "045-m1.m1", CRC(95170640) SHA1(125c502db0693e8d11cef619b090081c14a9a300) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "045-v1.v1", 0x000000, 0x200000, CRC(37f78a9b) SHA1(6279b497d12fa90b49ab5ac3aae20fb302ec8b81) )
+ ROM_LOAD( "045-v2.v2", 0x200000, 0x200000, CRC(568b20cf) SHA1(61af858685472a1fad608e230cccc2b108509ddb) )
+
+ ROM_REGION( 0x900000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "045-c1.c1", 0x000000, 0x200000, CRC(2e5873a4) SHA1(65c74c1e2d34390666bbb630df7d1f4c9570c3db) )
+ ROM_LOAD16_BYTE( "045-c2.c2", 0x000001, 0x200000, CRC(04febb10) SHA1(16a8cbf0fd9468e81bf9eab6dbe7a8e3623a843e) )
+ ROM_LOAD16_BYTE( "045-c3.c3", 0x400000, 0x200000, CRC(f3dabd1e) SHA1(c80e52df42be9f8b2e89b467b11ab140a480cee8) )
+ ROM_LOAD16_BYTE( "045-c4.c4", 0x400001, 0x200000, CRC(935c62f0) SHA1(0053d40085fac14096b683f4341f65e543b71dc1) )
+ ROM_LOAD16_BYTE( "045-c5.c5", 0x800000, 0x080000, CRC(a2bb8284) SHA1(aa118e3b8c062daa219b36758b9a3814c08c69dc) )
+ ROM_LOAD16_BYTE( "045-c6.c6", 0x800001, 0x080000, CRC(4fa71252) SHA1(afe374a9d1f2d955a59efe7b6196b89e021b164c) )
+ROM_END
+
+ROM_START( samshoeh ) /* Samurai Shodown - Enhance by Ydmis - (Can choose Amakusa - ultra kill start is max) */
+ ROM_REGION( 0x180000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "045eh.p1", 0x000000, 0x080000, CRC(ba5277df) SHA1(255f467e0b9b2ee2210028829d68efd060a1480d) )
+ ROM_LOAD16_WORD_SWAP( "045b.p3", 0x080000, 0x080000, CRC(71768728) SHA1(9ff0e01d3fb73ad04279d4fdf4c53c3160888179) )
+ ROM_LOAD16_WORD_SWAP( "045-p2.sp2", 0x100000, 0x080000, CRC(38ee9ba9) SHA1(48190699a6be83cb6257365ae81f93fdd23abe09) )
+
+ NEO_SFIX_128K( "045-s1.s1", CRC(9142a4d3) SHA1(54088e99fcfd75fd0f94852890a56350066a05a3) )
+
+ NEO_BIOS_AUDIO_128K( "045-m1.m1", CRC(95170640) SHA1(125c502db0693e8d11cef619b090081c14a9a300) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "045-v1.v1", 0x000000, 0x200000, CRC(37f78a9b) SHA1(6279b497d12fa90b49ab5ac3aae20fb302ec8b81) )
+ ROM_LOAD( "045-v2.v2", 0x200000, 0x200000, CRC(568b20cf) SHA1(61af858685472a1fad608e230cccc2b108509ddb) )
+
+ ROM_REGION( 0x900000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "045-c1.c1", 0x000000, 0x200000, CRC(2e5873a4) SHA1(65c74c1e2d34390666bbb630df7d1f4c9570c3db) )
+ ROM_LOAD16_BYTE( "045-c2.c2", 0x000001, 0x200000, CRC(04febb10) SHA1(16a8cbf0fd9468e81bf9eab6dbe7a8e3623a843e) )
+ ROM_LOAD16_BYTE( "045-c3.c3", 0x400000, 0x200000, CRC(f3dabd1e) SHA1(c80e52df42be9f8b2e89b467b11ab140a480cee8) )
+ ROM_LOAD16_BYTE( "045-c4.c4", 0x400001, 0x200000, CRC(935c62f0) SHA1(0053d40085fac14096b683f4341f65e543b71dc1) )
+ ROM_LOAD16_BYTE( "045-c5.c5", 0x800000, 0x080000, CRC(a2bb8284) SHA1(aa118e3b8c062daa219b36758b9a3814c08c69dc) )
+ ROM_LOAD16_BYTE( "045-c6.c6", 0x800001, 0x080000, CRC(4fa71252) SHA1(afe374a9d1f2d955a59efe7b6196b89e021b164c) )
+ROM_END
+
+ROM_START( samshoeh2 ) /* Enhance by Creamymami and Ydmis - (Can choose Amakusa - ultra kill start is max - ultra kill is always max) */
+ ROM_REGION( 0x180000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "045eh2.p1", 0x000000, 0x080000, CRC(54e85e0d) SHA1(701807af8e1181992cca5a31a8727e24cf4a0d9c) )
+ ROM_LOAD16_WORD_SWAP( "045b.p3", 0x080000, 0x080000, CRC(71768728) SHA1(9ff0e01d3fb73ad04279d4fdf4c53c3160888179) )
+ ROM_LOAD16_WORD_SWAP( "045-p2.sp2", 0x100000, 0x080000, CRC(38ee9ba9) SHA1(48190699a6be83cb6257365ae81f93fdd23abe09) )
+
+ NEO_SFIX_128K( "045-s1.s1", CRC(9142a4d3) SHA1(54088e99fcfd75fd0f94852890a56350066a05a3) )
+
+ NEO_BIOS_AUDIO_128K( "045-m1.m1", CRC(95170640) SHA1(125c502db0693e8d11cef619b090081c14a9a300) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "045-v1.v1", 0x000000, 0x200000, CRC(37f78a9b) SHA1(6279b497d12fa90b49ab5ac3aae20fb302ec8b81) )
+ ROM_LOAD( "045-v2.v2", 0x200000, 0x200000, CRC(568b20cf) SHA1(61af858685472a1fad608e230cccc2b108509ddb) )
+
+ ROM_REGION( 0x900000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "045-c1.c1", 0x000000, 0x200000, CRC(2e5873a4) SHA1(65c74c1e2d34390666bbb630df7d1f4c9570c3db) )
+ ROM_LOAD16_BYTE( "045-c2.c2", 0x000001, 0x200000, CRC(04febb10) SHA1(16a8cbf0fd9468e81bf9eab6dbe7a8e3623a843e) )
+ ROM_LOAD16_BYTE( "045-c3.c3", 0x400000, 0x200000, CRC(f3dabd1e) SHA1(c80e52df42be9f8b2e89b467b11ab140a480cee8) )
+ ROM_LOAD16_BYTE( "045-c4.c4", 0x400001, 0x200000, CRC(935c62f0) SHA1(0053d40085fac14096b683f4341f65e543b71dc1) )
+ ROM_LOAD16_BYTE( "045-c5.c5", 0x800000, 0x080000, CRC(a2bb8284) SHA1(aa118e3b8c062daa219b36758b9a3814c08c69dc) )
+ ROM_LOAD16_BYTE( "045-c6.c6", 0x800001, 0x080000, CRC(4fa71252) SHA1(afe374a9d1f2d955a59efe7b6196b89e021b164c) )
+ROM_END
+
+ROM_START( samshos1 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "045s1.p1", 0x000000, 0x100000, CRC(61ce3e49) SHA1(4c6246a02a378ba7c581b3a023159a73604a2d1c) )
+ ROM_LOAD16_WORD_SWAP( "045-pg2.sp2", 0x100000, 0x100000, CRC(46745b94) SHA1(d9e959fd1f88c9402915c1d0dcdb4a9e3d49cdcb) )
+
+ NEO_SFIX_128K( "045-s1.s1", CRC(9142a4d3) SHA1(54088e99fcfd75fd0f94852890a56350066a05a3) )
+
+ NEO_BIOS_AUDIO_128K( "045-m1.m1", CRC(95170640) SHA1(125c502db0693e8d11cef619b090081c14a9a300) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "045-v1.v1", 0x000000, 0x200000, CRC(37f78a9b) SHA1(6279b497d12fa90b49ab5ac3aae20fb302ec8b81) )
+ ROM_LOAD( "045-v2.v2", 0x200000, 0x200000, CRC(568b20cf) SHA1(61af858685472a1fad608e230cccc2b108509ddb) )
+
+ ROM_REGION( 0xa00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "045-c1.c1", 0x000000, 0x200000, CRC(2e5873a4) SHA1(65c74c1e2d34390666bbb630df7d1f4c9570c3db) )
+ ROM_LOAD16_BYTE( "045-c2.c2", 0x000001, 0x200000, CRC(04febb10) SHA1(16a8cbf0fd9468e81bf9eab6dbe7a8e3623a843e) )
+ ROM_LOAD16_BYTE( "045-c3.c3", 0x400000, 0x200000, CRC(f3dabd1e) SHA1(c80e52df42be9f8b2e89b467b11ab140a480cee8) )
+ ROM_LOAD16_BYTE( "045-c4.c4", 0x400001, 0x200000, CRC(935c62f0) SHA1(0053d40085fac14096b683f4341f65e543b71dc1) )
+ ROM_LOAD16_BYTE( "045-c51.c5", 0x800000, 0x100000, CRC(81932894) SHA1(550f15dc5892c4602422c51869f0d59f70f01e9e) )
+ ROM_LOAD16_BYTE( "045-c61.c6", 0x800001, 0x100000, CRC(be30612e) SHA1(5e8b785f917c176d6796eba0caed37b13ddb3e63) )
+ROM_END
+
+ROM_START( samshozk )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "045zk.p1", 0x000000, 0x100000, CRC(1538b682) SHA1(6024b12084828bcc54f0da2ee51f0a01316eaba6) )
+ ROM_LOAD16_WORD_SWAP( "045-pg2.sp2", 0x100000, 0x100000, CRC(46745b94) SHA1(d9e959fd1f88c9402915c1d0dcdb4a9e3d49cdcb) )
+
+ NEO_SFIX_128K( "045-s1.s1", CRC(9142a4d3) SHA1(54088e99fcfd75fd0f94852890a56350066a05a3) )
+
+ NEO_BIOS_AUDIO_128K( "045-m1.m1", CRC(95170640) SHA1(125c502db0693e8d11cef619b090081c14a9a300) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "045-v1.v1", 0x000000, 0x200000, CRC(37f78a9b) SHA1(6279b497d12fa90b49ab5ac3aae20fb302ec8b81) )
+ ROM_LOAD( "045-v2.v2", 0x200000, 0x200000, CRC(568b20cf) SHA1(61af858685472a1fad608e230cccc2b108509ddb) )
+
+ ROM_REGION( 0xa00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "045-c1.c1", 0x000000, 0x200000, CRC(2e5873a4) SHA1(65c74c1e2d34390666bbb630df7d1f4c9570c3db) )
+ ROM_LOAD16_BYTE( "045-c2.c2", 0x000001, 0x200000, CRC(04febb10) SHA1(16a8cbf0fd9468e81bf9eab6dbe7a8e3623a843e) )
+ ROM_LOAD16_BYTE( "045-c3.c3", 0x400000, 0x200000, CRC(f3dabd1e) SHA1(c80e52df42be9f8b2e89b467b11ab140a480cee8) )
+ ROM_LOAD16_BYTE( "045-c4.c4", 0x400001, 0x200000, CRC(935c62f0) SHA1(0053d40085fac14096b683f4341f65e543b71dc1) )
+ ROM_LOAD16_BYTE( "045-c51.c5", 0x800000, 0x100000, CRC(81932894) SHA1(550f15dc5892c4602422c51869f0d59f70f01e9e) )
+ ROM_LOAD16_BYTE( "045-c61.c6", 0x800001, 0x100000, CRC(be30612e) SHA1(5e8b785f917c176d6796eba0caed37b13ddb3e63) )
+ROM_END
+
+
+ROM_START( samsho2eh ) /* Samurai Shodown II - Enhance by Ydmis - (Can choose Mizuki and Kuroko) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "063eh.p1", 0x100000, 0x100000, CRC(2682710f) SHA1(56b521673651c1b218d7a4382e6766a239f39826) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "063-s1.s1", CRC(64a5cd66) SHA1(12cdfb27bf9ccd5a8df6ddd4628ef7cf2c6d4964) )
+
+ NEO_BIOS_AUDIO_128K( "063-m1.m1", CRC(56675098) SHA1(90429fc40d056d480d0e2bbefbc691d9fa260fc4) )
+
+ ROM_REGION( 0x700000, "ymsnd", 0 )
+ ROM_LOAD( "063-v1.v1", 0x000000, 0x200000, CRC(37703f91) SHA1(a373ebef4c33ba1d8340e826981a58769aada238) )
+ ROM_LOAD( "063-v2.v2", 0x200000, 0x200000, CRC(0142bde8) SHA1(0be6c53acac44802bf70b6925452f70289a139d9) )
+ ROM_LOAD( "063-v3.v3", 0x400000, 0x200000, CRC(d07fa5ca) SHA1(1da7f081f8b8fc86a91feacf900f573218d82676) )
+ ROM_LOAD( "063-v4.v4", 0x600000, 0x100000, CRC(24aab4bb) SHA1(10ee4c5b3579865b93dcc1e4079963276aa700a6) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "063-c1.c1", 0x000000, 0x200000, CRC(86cd307c) SHA1(0d04336f7c436d74638d8c1cd8651faf436a6bec) )
+ ROM_LOAD16_BYTE( "063-c2.c2", 0x000001, 0x200000, CRC(cdfcc4ca) SHA1(179dc81432424d68cefedd20cc1c4b2a95deb891) )
+ ROM_LOAD16_BYTE( "063-c3.c3", 0x400000, 0x200000, CRC(7a63ccc7) SHA1(49d97c543bc2860d493a353ab0d059088c6fbd21) )
+ ROM_LOAD16_BYTE( "063-c4.c4", 0x400001, 0x200000, CRC(751025ce) SHA1(e1bbaa7cd67fd04e4aab7f7ea77f63ae1cbc90d0) )
+ ROM_LOAD16_BYTE( "063-c5.c5", 0x800000, 0x200000, CRC(20d3a475) SHA1(28da44a136bd14c73c62c147c3f6e6bcfa1066de) )
+ ROM_LOAD16_BYTE( "063-c6.c6", 0x800001, 0x200000, CRC(ae4c0a88) SHA1(cc8a7d11daa3821f83a6fd0942534706f939e576) )
+ ROM_LOAD16_BYTE( "063-c7.c7", 0xc00000, 0x200000, CRC(2df3cbcf) SHA1(e54f9022359963711451c2025825b862d36c6975) )
+ ROM_LOAD16_BYTE( "063-c8.c8", 0xc00001, 0x200000, CRC(1ffc6dfa) SHA1(acea18aca76c072e0bac2a364fc96d49cfc86e77) )
+ROM_END
+
+ROM_START( samsho2emb )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "063emb.p1", 0x100000, 0x100000, CRC(33284e4f) SHA1(dcd57ac1c514c9b8d7d019a7c5c61468b890445e) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "063-s1.s1", CRC(64a5cd66) SHA1(12cdfb27bf9ccd5a8df6ddd4628ef7cf2c6d4964) )
+
+ NEO_BIOS_AUDIO_128K( "063-m1.m1", CRC(56675098) SHA1(90429fc40d056d480d0e2bbefbc691d9fa260fc4) )
+
+ ROM_REGION( 0x700000, "ymsnd", 0 )
+ ROM_LOAD( "063-v1.v1", 0x000000, 0x200000, CRC(37703f91) SHA1(a373ebef4c33ba1d8340e826981a58769aada238) )
+ ROM_LOAD( "063-v2.v2", 0x200000, 0x200000, CRC(0142bde8) SHA1(0be6c53acac44802bf70b6925452f70289a139d9) )
+ ROM_LOAD( "063-v3.v3", 0x400000, 0x200000, CRC(d07fa5ca) SHA1(1da7f081f8b8fc86a91feacf900f573218d82676) )
+ ROM_LOAD( "063-v4.v4", 0x600000, 0x100000, CRC(24aab4bb) SHA1(10ee4c5b3579865b93dcc1e4079963276aa700a6) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "063-c1.c1", 0x000000, 0x200000, CRC(86cd307c) SHA1(0d04336f7c436d74638d8c1cd8651faf436a6bec) )
+ ROM_LOAD16_BYTE( "063-c2.c2", 0x000001, 0x200000, CRC(cdfcc4ca) SHA1(179dc81432424d68cefedd20cc1c4b2a95deb891) )
+ ROM_LOAD16_BYTE( "063-c3.c3", 0x400000, 0x200000, CRC(7a63ccc7) SHA1(49d97c543bc2860d493a353ab0d059088c6fbd21) )
+ ROM_LOAD16_BYTE( "063-c4.c4", 0x400001, 0x200000, CRC(751025ce) SHA1(e1bbaa7cd67fd04e4aab7f7ea77f63ae1cbc90d0) )
+ ROM_LOAD16_BYTE( "063-c5.c5", 0x800000, 0x200000, CRC(20d3a475) SHA1(28da44a136bd14c73c62c147c3f6e6bcfa1066de) )
+ ROM_LOAD16_BYTE( "063-c6.c6", 0x800001, 0x200000, CRC(ae4c0a88) SHA1(cc8a7d11daa3821f83a6fd0942534706f939e576) )
+ ROM_LOAD16_BYTE( "063-c7.c7", 0xc00000, 0x200000, CRC(2df3cbcf) SHA1(e54f9022359963711451c2025825b862d36c6975) )
+ ROM_LOAD16_BYTE( "063-c8.c8", 0xc00001, 0x200000, CRC(1ffc6dfa) SHA1(acea18aca76c072e0bac2a364fc96d49cfc86e77) )
+ROM_END
+
+ROM_START( samsho2hy )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "063hy.p1", 0x000000, 0x100000, CRC(87032884) SHA1(bdd07f9b2e57f1d429a4d5b6af4335cc5440ac75) )
+ ROM_LOAD16_WORD_SWAP( "063hy.p2", 0x100000, 0x100000, CRC(a03ead44) SHA1(8bfbc2b6220719a742e1684601f36305d0e63308) )
+
+ NEO_SFIX_128K( "063-s1.s1", CRC(64a5cd66) SHA1(12cdfb27bf9ccd5a8df6ddd4628ef7cf2c6d4964) )
+
+ NEO_BIOS_AUDIO_128K( "063-m1.m1", CRC(56675098) SHA1(90429fc40d056d480d0e2bbefbc691d9fa260fc4) )
+
+ ROM_REGION( 0x700000, "ymsnd", 0 )
+ ROM_LOAD( "063-v1.v1", 0x000000, 0x200000, CRC(37703f91) SHA1(a373ebef4c33ba1d8340e826981a58769aada238) )
+ ROM_LOAD( "063-v2.v2", 0x200000, 0x200000, CRC(0142bde8) SHA1(0be6c53acac44802bf70b6925452f70289a139d9) )
+ ROM_LOAD( "063-v3.v3", 0x400000, 0x200000, CRC(d07fa5ca) SHA1(1da7f081f8b8fc86a91feacf900f573218d82676) )
+ ROM_LOAD( "063-v4.v4", 0x600000, 0x100000, CRC(24aab4bb) SHA1(10ee4c5b3579865b93dcc1e4079963276aa700a6) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "063-c1.c1", 0x000000, 0x200000, CRC(86cd307c) SHA1(0d04336f7c436d74638d8c1cd8651faf436a6bec) )
+ ROM_LOAD16_BYTE( "063-c2.c2", 0x000001, 0x200000, CRC(cdfcc4ca) SHA1(179dc81432424d68cefedd20cc1c4b2a95deb891) )
+ ROM_LOAD16_BYTE( "063-c3.c3", 0x400000, 0x200000, CRC(7a63ccc7) SHA1(49d97c543bc2860d493a353ab0d059088c6fbd21) )
+ ROM_LOAD16_BYTE( "063-c4.c4", 0x400001, 0x200000, CRC(751025ce) SHA1(e1bbaa7cd67fd04e4aab7f7ea77f63ae1cbc90d0) )
+ ROM_LOAD16_BYTE( "063-c5.c5", 0x800000, 0x200000, CRC(20d3a475) SHA1(28da44a136bd14c73c62c147c3f6e6bcfa1066de) )
+ ROM_LOAD16_BYTE( "063-c6.c6", 0x800001, 0x200000, CRC(ae4c0a88) SHA1(cc8a7d11daa3821f83a6fd0942534706f939e576) )
+ ROM_LOAD16_BYTE( "063-c7.c7", 0xc00000, 0x200000, CRC(2df3cbcf) SHA1(e54f9022359963711451c2025825b862d36c6975) )
+ ROM_LOAD16_BYTE( "063-c8.c8", 0xc00001, 0x200000, CRC(1ffc6dfa) SHA1(acea18aca76c072e0bac2a364fc96d49cfc86e77) )
+ROM_END
+
+ROM_START( samsho2mb )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "063mb.p1", 0x100000, 0x100000, CRC(33f68ceb) SHA1(d889a40a5cacbc04ec67a81a93fb1e95f0cc5484) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "063-s1.s1", CRC(64a5cd66) SHA1(12cdfb27bf9ccd5a8df6ddd4628ef7cf2c6d4964) )
+
+ NEO_BIOS_AUDIO_128K( "063-m1.m1", CRC(56675098) SHA1(90429fc40d056d480d0e2bbefbc691d9fa260fc4) )
+
+ ROM_REGION( 0x700000, "ymsnd", 0 )
+ ROM_LOAD( "063-v1.v1", 0x000000, 0x200000, CRC(37703f91) SHA1(a373ebef4c33ba1d8340e826981a58769aada238) )
+ ROM_LOAD( "063-v2.v2", 0x200000, 0x200000, CRC(0142bde8) SHA1(0be6c53acac44802bf70b6925452f70289a139d9) )
+ ROM_LOAD( "063-v3.v3", 0x400000, 0x200000, CRC(d07fa5ca) SHA1(1da7f081f8b8fc86a91feacf900f573218d82676) )
+ ROM_LOAD( "063-v4.v4", 0x600000, 0x100000, CRC(24aab4bb) SHA1(10ee4c5b3579865b93dcc1e4079963276aa700a6) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "063-c1.c1", 0x000000, 0x200000, CRC(86cd307c) SHA1(0d04336f7c436d74638d8c1cd8651faf436a6bec) )
+ ROM_LOAD16_BYTE( "063-c2.c2", 0x000001, 0x200000, CRC(cdfcc4ca) SHA1(179dc81432424d68cefedd20cc1c4b2a95deb891) )
+ ROM_LOAD16_BYTE( "063-c3.c3", 0x400000, 0x200000, CRC(7a63ccc7) SHA1(49d97c543bc2860d493a353ab0d059088c6fbd21) )
+ ROM_LOAD16_BYTE( "063-c4.c4", 0x400001, 0x200000, CRC(751025ce) SHA1(e1bbaa7cd67fd04e4aab7f7ea77f63ae1cbc90d0) )
+ ROM_LOAD16_BYTE( "063-c5.c5", 0x800000, 0x200000, CRC(20d3a475) SHA1(28da44a136bd14c73c62c147c3f6e6bcfa1066de) )
+ ROM_LOAD16_BYTE( "063-c6.c6", 0x800001, 0x200000, CRC(ae4c0a88) SHA1(cc8a7d11daa3821f83a6fd0942534706f939e576) )
+ ROM_LOAD16_BYTE( "063-c7.c7", 0xc00000, 0x200000, CRC(2df3cbcf) SHA1(e54f9022359963711451c2025825b862d36c6975) )
+ ROM_LOAD16_BYTE( "063-c8.c8", 0xc00001, 0x200000, CRC(1ffc6dfa) SHA1(acea18aca76c072e0bac2a364fc96d49cfc86e77) )
+ROM_END
+
+ROM_START( samsho2q )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "063q.p1", 0x100000, 0x100000, CRC(6fa3bd7a) SHA1(c0a718d2e989e334948d0fbd21af58795f126a34) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "063-s1.s1", CRC(64a5cd66) SHA1(12cdfb27bf9ccd5a8df6ddd4628ef7cf2c6d4964) )
+
+ NEO_BIOS_AUDIO_128K( "063-m1.m1", CRC(56675098) SHA1(90429fc40d056d480d0e2bbefbc691d9fa260fc4) )
+
+ ROM_REGION( 0x700000, "ymsnd", 0 )
+ ROM_LOAD( "063-v1.v1", 0x000000, 0x200000, CRC(37703f91) SHA1(a373ebef4c33ba1d8340e826981a58769aada238) )
+ ROM_LOAD( "063-v2.v2", 0x200000, 0x200000, CRC(0142bde8) SHA1(0be6c53acac44802bf70b6925452f70289a139d9) )
+ ROM_LOAD( "063-v3.v3", 0x400000, 0x200000, CRC(d07fa5ca) SHA1(1da7f081f8b8fc86a91feacf900f573218d82676) )
+ ROM_LOAD( "063-v4.v4", 0x600000, 0x100000, CRC(24aab4bb) SHA1(10ee4c5b3579865b93dcc1e4079963276aa700a6) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "063-c1.c1", 0x000000, 0x200000, CRC(86cd307c) SHA1(0d04336f7c436d74638d8c1cd8651faf436a6bec) )
+ ROM_LOAD16_BYTE( "063-c2.c2", 0x000001, 0x200000, CRC(cdfcc4ca) SHA1(179dc81432424d68cefedd20cc1c4b2a95deb891) )
+ ROM_LOAD16_BYTE( "063-c3.c3", 0x400000, 0x200000, CRC(7a63ccc7) SHA1(49d97c543bc2860d493a353ab0d059088c6fbd21) )
+ ROM_LOAD16_BYTE( "063-c4.c4", 0x400001, 0x200000, CRC(751025ce) SHA1(e1bbaa7cd67fd04e4aab7f7ea77f63ae1cbc90d0) )
+ ROM_LOAD16_BYTE( "063-c5.c5", 0x800000, 0x200000, CRC(20d3a475) SHA1(28da44a136bd14c73c62c147c3f6e6bcfa1066de) )
+ ROM_LOAD16_BYTE( "063-c6.c6", 0x800001, 0x200000, CRC(ae4c0a88) SHA1(cc8a7d11daa3821f83a6fd0942534706f939e576) )
+ ROM_LOAD16_BYTE( "063-c7.c7", 0xc00000, 0x200000, CRC(2df3cbcf) SHA1(e54f9022359963711451c2025825b862d36c6975) )
+ ROM_LOAD16_BYTE( "063-c8.c8", 0xc00001, 0x200000, CRC(1ffc6dfa) SHA1(acea18aca76c072e0bac2a364fc96d49cfc86e77) )
+ROM_END
+
+ROM_START( samsho2s2 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "063s2.p1", 0x100000, 0x100000, CRC(38f5f416) SHA1(ce2f3e7fd534b1b3e02c9316210af1ca375ac2ea) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "063-s1.s1", CRC(64a5cd66) SHA1(12cdfb27bf9ccd5a8df6ddd4628ef7cf2c6d4964) )
+
+ NEO_BIOS_AUDIO_128K( "063-m1.m1", CRC(56675098) SHA1(90429fc40d056d480d0e2bbefbc691d9fa260fc4) )
+
+ ROM_REGION( 0x700000, "ymsnd", 0 )
+ ROM_LOAD( "063-v1.v1", 0x000000, 0x200000, CRC(37703f91) SHA1(a373ebef4c33ba1d8340e826981a58769aada238) )
+ ROM_LOAD( "063-v2.v2", 0x200000, 0x200000, CRC(0142bde8) SHA1(0be6c53acac44802bf70b6925452f70289a139d9) )
+ ROM_LOAD( "063-v3.v3", 0x400000, 0x200000, CRC(d07fa5ca) SHA1(1da7f081f8b8fc86a91feacf900f573218d82676) )
+ ROM_LOAD( "063-v4.v4", 0x600000, 0x100000, CRC(24aab4bb) SHA1(10ee4c5b3579865b93dcc1e4079963276aa700a6) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "063-c1.c1", 0x000000, 0x200000, CRC(86cd307c) SHA1(0d04336f7c436d74638d8c1cd8651faf436a6bec) )
+ ROM_LOAD16_BYTE( "063-c2.c2", 0x000001, 0x200000, CRC(cdfcc4ca) SHA1(179dc81432424d68cefedd20cc1c4b2a95deb891) )
+ ROM_LOAD16_BYTE( "063-c3.c3", 0x400000, 0x200000, CRC(7a63ccc7) SHA1(49d97c543bc2860d493a353ab0d059088c6fbd21) )
+ ROM_LOAD16_BYTE( "063-c4.c4", 0x400001, 0x200000, CRC(751025ce) SHA1(e1bbaa7cd67fd04e4aab7f7ea77f63ae1cbc90d0) )
+ ROM_LOAD16_BYTE( "063-c5.c5", 0x800000, 0x200000, CRC(20d3a475) SHA1(28da44a136bd14c73c62c147c3f6e6bcfa1066de) )
+ ROM_LOAD16_BYTE( "063-c6.c6", 0x800001, 0x200000, CRC(ae4c0a88) SHA1(cc8a7d11daa3821f83a6fd0942534706f939e576) )
+ ROM_LOAD16_BYTE( "063-c7.c7", 0xc00000, 0x200000, CRC(2df3cbcf) SHA1(e54f9022359963711451c2025825b862d36c6975) )
+ ROM_LOAD16_BYTE( "063-c8.c8", 0xc00001, 0x200000, CRC(1ffc6dfa) SHA1(acea18aca76c072e0bac2a364fc96d49cfc86e77) )
+ROM_END
+
+ROM_START( samsho2sp )
+ ROM_REGION( 0x220000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "063sp.p1", 0x000000, 0x100000, CRC(07d5c8f5) SHA1(0ed9bc1b188e5d445cf80ea5af67938fd96d50c2) )
+ ROM_LOAD16_WORD_SWAP( "063sp.p2", 0x100000, 0x100000, CRC(6e1aef70) SHA1(7a035e80b6f6af1d105ecccf3f5a2c44470366f3) )
+ ROM_LOAD16_WORD_SWAP( "063sp.p3", 0x200000, 0x020000, CRC(e56076ae) SHA1(9c2e6858fceb03702245658bbb6ba4e14431dda1) )
+
+ NEO_SFIX_128K( "063sp.s1", CRC(1951a907) SHA1(ee0e4743d7c2ba6306f08f16de2e3fea6697a89e) )
+
+ NEO_BIOS_AUDIO_128K( "063-m1.m1", CRC(56675098) SHA1(90429fc40d056d480d0e2bbefbc691d9fa260fc4) )
+
+ ROM_REGION( 0x700000, "ymsnd", 0 )
+ ROM_LOAD( "063-v1.v1", 0x000000, 0x200000, CRC(37703f91) SHA1(a373ebef4c33ba1d8340e826981a58769aada238) )
+ ROM_LOAD( "063-v2.v2", 0x200000, 0x200000, CRC(0142bde8) SHA1(0be6c53acac44802bf70b6925452f70289a139d9) )
+ ROM_LOAD( "063-v3.v3", 0x400000, 0x200000, CRC(d07fa5ca) SHA1(1da7f081f8b8fc86a91feacf900f573218d82676) )
+ ROM_LOAD( "063-v4.v4", 0x600000, 0x100000, CRC(24aab4bb) SHA1(10ee4c5b3579865b93dcc1e4079963276aa700a6) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "063-c1.c1", 0x000000, 0x200000, CRC(86cd307c) SHA1(0d04336f7c436d74638d8c1cd8651faf436a6bec) )
+ ROM_LOAD16_BYTE( "063-c2.c2", 0x000001, 0x200000, CRC(cdfcc4ca) SHA1(179dc81432424d68cefedd20cc1c4b2a95deb891) )
+ ROM_LOAD16_BYTE( "063-c3.c3", 0x400000, 0x200000, CRC(7a63ccc7) SHA1(49d97c543bc2860d493a353ab0d059088c6fbd21) )
+ ROM_LOAD16_BYTE( "063-c4.c4", 0x400001, 0x200000, CRC(751025ce) SHA1(e1bbaa7cd67fd04e4aab7f7ea77f63ae1cbc90d0) )
+ ROM_LOAD16_BYTE( "063-c5.c5", 0x800000, 0x200000, CRC(20d3a475) SHA1(28da44a136bd14c73c62c147c3f6e6bcfa1066de) )
+ ROM_LOAD16_BYTE( "063-c6.c6", 0x800001, 0x200000, CRC(ae4c0a88) SHA1(cc8a7d11daa3821f83a6fd0942534706f939e576) )
+ ROM_LOAD16_BYTE( "063sp.c7", 0xc00000, 0x200000, CRC(dbebced2) SHA1(c1db8a0a6814b8078934b68f1f579060e36f67b2) )
+ ROM_LOAD16_BYTE( "063sp.c8", 0xc00001, 0x200000, CRC(bf70b93c) SHA1(1bffeb6c7e158b9aee33802fe86f75cee04c6ecc) )
+ROM_END
+
+ROM_START( samsho2sp2 )
+ ROM_REGION( 0x220000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "063sp2.p1", 0x000000, 0x100000, CRC(08de44f4) SHA1(b409b0a301f61b0d0d952383aae71af51527d08e) )
+ ROM_LOAD16_WORD_SWAP( "063sp.p2", 0x100000, 0x100000, CRC(6e1aef70) SHA1(7a035e80b6f6af1d105ecccf3f5a2c44470366f3) )
+ ROM_LOAD16_WORD_SWAP( "063sp2.p3", 0x200000, 0x020000, CRC(cf9f3a5d) SHA1(8643ac9173be35f6aa5ad1e733c74d1355ac6f84) )
+
+ NEO_SFIX_128K( "063sp.s1", CRC(1951a907) SHA1(ee0e4743d7c2ba6306f08f16de2e3fea6697a89e) )
+
+ NEO_BIOS_AUDIO_128K( "063-m1.m1", CRC(56675098) SHA1(90429fc40d056d480d0e2bbefbc691d9fa260fc4) )
+
+ ROM_REGION( 0x700000, "ymsnd", 0 )
+ ROM_LOAD( "063-v1.v1", 0x000000, 0x200000, CRC(37703f91) SHA1(a373ebef4c33ba1d8340e826981a58769aada238) )
+ ROM_LOAD( "063-v2.v2", 0x200000, 0x200000, CRC(0142bde8) SHA1(0be6c53acac44802bf70b6925452f70289a139d9) )
+ ROM_LOAD( "063-v3.v3", 0x400000, 0x200000, CRC(d07fa5ca) SHA1(1da7f081f8b8fc86a91feacf900f573218d82676) )
+ ROM_LOAD( "063-v4.v4", 0x600000, 0x100000, CRC(24aab4bb) SHA1(10ee4c5b3579865b93dcc1e4079963276aa700a6) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "063-c1.c1", 0x000000, 0x200000, CRC(86cd307c) SHA1(0d04336f7c436d74638d8c1cd8651faf436a6bec) )
+ ROM_LOAD16_BYTE( "063-c2.c2", 0x000001, 0x200000, CRC(cdfcc4ca) SHA1(179dc81432424d68cefedd20cc1c4b2a95deb891) )
+ ROM_LOAD16_BYTE( "063-c3.c3", 0x400000, 0x200000, CRC(7a63ccc7) SHA1(49d97c543bc2860d493a353ab0d059088c6fbd21) )
+ ROM_LOAD16_BYTE( "063-c4.c4", 0x400001, 0x200000, CRC(751025ce) SHA1(e1bbaa7cd67fd04e4aab7f7ea77f63ae1cbc90d0) )
+ ROM_LOAD16_BYTE( "063-c5.c5", 0x800000, 0x200000, CRC(20d3a475) SHA1(28da44a136bd14c73c62c147c3f6e6bcfa1066de) )
+ ROM_LOAD16_BYTE( "063-c6.c6", 0x800001, 0x200000, CRC(ae4c0a88) SHA1(cc8a7d11daa3821f83a6fd0942534706f939e576) )
+ ROM_LOAD16_BYTE( "063sp.c7", 0xc00000, 0x200000, CRC(dbebced2) SHA1(c1db8a0a6814b8078934b68f1f579060e36f67b2) )
+ ROM_LOAD16_BYTE( "063sp.c8", 0xc00001, 0x200000, CRC(bf70b93c) SHA1(1bffeb6c7e158b9aee33802fe86f75cee04c6ecc) )
+ROM_END
+
+ROM_START( samsho2sp3 )
+ ROM_REGION( 0x220000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "063sp3.p1", 0x000000, 0x100000, CRC(19260a9a) SHA1(cd40ac51079641e778edac4910e96e51479cdcbb) )
+ ROM_LOAD16_WORD_SWAP( "063sp.p2", 0x100000, 0x100000, CRC(6e1aef70) SHA1(7a035e80b6f6af1d105ecccf3f5a2c44470366f3) )
+ ROM_LOAD16_WORD_SWAP( "063sp3.p3", 0x200000, 0x020000, CRC(8fabd043) SHA1(b8a311d0f57981ef045d80858036136c7840c405) )
+
+ NEO_SFIX_128K( "063sp.s1", CRC(1951a907) SHA1(ee0e4743d7c2ba6306f08f16de2e3fea6697a89e) )
+
+ NEO_BIOS_AUDIO_128K( "063-m1.m1", CRC(56675098) SHA1(90429fc40d056d480d0e2bbefbc691d9fa260fc4) )
+
+ ROM_REGION( 0x700000, "ymsnd", 0 )
+ ROM_LOAD( "063-v1.v1", 0x000000, 0x200000, CRC(37703f91) SHA1(a373ebef4c33ba1d8340e826981a58769aada238) )
+ ROM_LOAD( "063-v2.v2", 0x200000, 0x200000, CRC(0142bde8) SHA1(0be6c53acac44802bf70b6925452f70289a139d9) )
+ ROM_LOAD( "063-v3.v3", 0x400000, 0x200000, CRC(d07fa5ca) SHA1(1da7f081f8b8fc86a91feacf900f573218d82676) )
+ ROM_LOAD( "063-v4.v4", 0x600000, 0x100000, CRC(24aab4bb) SHA1(10ee4c5b3579865b93dcc1e4079963276aa700a6) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "063-c1.c1", 0x000000, 0x200000, CRC(86cd307c) SHA1(0d04336f7c436d74638d8c1cd8651faf436a6bec) )
+ ROM_LOAD16_BYTE( "063-c2.c2", 0x000001, 0x200000, CRC(cdfcc4ca) SHA1(179dc81432424d68cefedd20cc1c4b2a95deb891) )
+ ROM_LOAD16_BYTE( "063-c3.c3", 0x400000, 0x200000, CRC(7a63ccc7) SHA1(49d97c543bc2860d493a353ab0d059088c6fbd21) )
+ ROM_LOAD16_BYTE( "063-c4.c4", 0x400001, 0x200000, CRC(751025ce) SHA1(e1bbaa7cd67fd04e4aab7f7ea77f63ae1cbc90d0) )
+ ROM_LOAD16_BYTE( "063-c5.c5", 0x800000, 0x200000, CRC(20d3a475) SHA1(28da44a136bd14c73c62c147c3f6e6bcfa1066de) )
+ ROM_LOAD16_BYTE( "063-c6.c6", 0x800001, 0x200000, CRC(ae4c0a88) SHA1(cc8a7d11daa3821f83a6fd0942534706f939e576) )
+ ROM_LOAD16_BYTE( "063sp.c7", 0xc00000, 0x200000, CRC(dbebced2) SHA1(c1db8a0a6814b8078934b68f1f579060e36f67b2) )
+ ROM_LOAD16_BYTE( "063sp.c8", 0xc00001, 0x200000, CRC(bf70b93c) SHA1(1bffeb6c7e158b9aee33802fe86f75cee04c6ecc) )
+ROM_END
+
+ROM_START( samsho2sp4 )
+ ROM_REGION( 0x220000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "063sp4.p1", 0x000000, 0x100000, CRC(2bd5a4ab) SHA1(5d5b1cd7efc5a71b1cb97b81b920a0924b7cd760) )
+ ROM_LOAD16_WORD_SWAP( "063sp.p2", 0x100000, 0x100000, CRC(6e1aef70) SHA1(7a035e80b6f6af1d105ecccf3f5a2c44470366f3) )
+ ROM_LOAD16_WORD_SWAP( "063sp4.p3", 0x200000, 0x020000, CRC(72eec1f4) SHA1(122548fdfd6ca4b80e6a232f5928ce6bac6c862b) )
+
+ NEO_SFIX_128K( "063sp.s1", CRC(1951a907) SHA1(ee0e4743d7c2ba6306f08f16de2e3fea6697a89e) )
+
+ NEO_BIOS_AUDIO_128K( "063-m1.m1", CRC(56675098) SHA1(90429fc40d056d480d0e2bbefbc691d9fa260fc4) )
+
+ ROM_REGION( 0x700000, "ymsnd", 0 )
+ ROM_LOAD( "063-v1.v1", 0x000000, 0x200000, CRC(37703f91) SHA1(a373ebef4c33ba1d8340e826981a58769aada238) )
+ ROM_LOAD( "063-v2.v2", 0x200000, 0x200000, CRC(0142bde8) SHA1(0be6c53acac44802bf70b6925452f70289a139d9) )
+ ROM_LOAD( "063-v3.v3", 0x400000, 0x200000, CRC(d07fa5ca) SHA1(1da7f081f8b8fc86a91feacf900f573218d82676) )
+ ROM_LOAD( "063-v4.v4", 0x600000, 0x100000, CRC(24aab4bb) SHA1(10ee4c5b3579865b93dcc1e4079963276aa700a6) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "063-c1.c1", 0x000000, 0x200000, CRC(86cd307c) SHA1(0d04336f7c436d74638d8c1cd8651faf436a6bec) )
+ ROM_LOAD16_BYTE( "063-c2.c2", 0x000001, 0x200000, CRC(cdfcc4ca) SHA1(179dc81432424d68cefedd20cc1c4b2a95deb891) )
+ ROM_LOAD16_BYTE( "063-c3.c3", 0x400000, 0x200000, CRC(7a63ccc7) SHA1(49d97c543bc2860d493a353ab0d059088c6fbd21) )
+ ROM_LOAD16_BYTE( "063-c4.c4", 0x400001, 0x200000, CRC(751025ce) SHA1(e1bbaa7cd67fd04e4aab7f7ea77f63ae1cbc90d0) )
+ ROM_LOAD16_BYTE( "063-c5.c5", 0x800000, 0x200000, CRC(20d3a475) SHA1(28da44a136bd14c73c62c147c3f6e6bcfa1066de) )
+ ROM_LOAD16_BYTE( "063-c6.c6", 0x800001, 0x200000, CRC(ae4c0a88) SHA1(cc8a7d11daa3821f83a6fd0942534706f939e576) )
+ ROM_LOAD16_BYTE( "063sp.c7", 0xc00000, 0x200000, CRC(dbebced2) SHA1(c1db8a0a6814b8078934b68f1f579060e36f67b2) )
+ ROM_LOAD16_BYTE( "063sp.c8", 0xc00001, 0x200000, CRC(bf70b93c) SHA1(1bffeb6c7e158b9aee33802fe86f75cee04c6ecc) )
+ROM_END
+
+ROM_START( samsho2sp5 )
+ ROM_REGION( 0x220000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "063sp5.p1", 0x000000, 0x100000, CRC(ed466b3d) SHA1(a3d5029d2fa29184e40038ca2a92ae09596646ea) )
+ ROM_LOAD16_WORD_SWAP( "063sp.p2", 0x100000, 0x100000, CRC(6e1aef70) SHA1(7a035e80b6f6af1d105ecccf3f5a2c44470366f3) )
+ ROM_LOAD16_WORD_SWAP( "063sp5.p3", 0x200000, 0x020000, CRC(f9079ea3) SHA1(76a4590bda85d1bdf38f6e02ce4d761f951ff79d) )
+
+ NEO_SFIX_128K( "063sp.s1", CRC(1951a907) SHA1(ee0e4743d7c2ba6306f08f16de2e3fea6697a89e) )
+
+ NEO_BIOS_AUDIO_128K( "063-m1.m1", CRC(56675098) SHA1(90429fc40d056d480d0e2bbefbc691d9fa260fc4) )
+
+ ROM_REGION( 0x700000, "ymsnd", 0 )
+ ROM_LOAD( "063-v1.v1", 0x000000, 0x200000, CRC(37703f91) SHA1(a373ebef4c33ba1d8340e826981a58769aada238) )
+ ROM_LOAD( "063-v2.v2", 0x200000, 0x200000, CRC(0142bde8) SHA1(0be6c53acac44802bf70b6925452f70289a139d9) )
+ ROM_LOAD( "063-v3.v3", 0x400000, 0x200000, CRC(d07fa5ca) SHA1(1da7f081f8b8fc86a91feacf900f573218d82676) )
+ ROM_LOAD( "063-v4.v4", 0x600000, 0x100000, CRC(24aab4bb) SHA1(10ee4c5b3579865b93dcc1e4079963276aa700a6) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "063-c1.c1", 0x000000, 0x200000, CRC(86cd307c) SHA1(0d04336f7c436d74638d8c1cd8651faf436a6bec) )
+ ROM_LOAD16_BYTE( "063-c2.c2", 0x000001, 0x200000, CRC(cdfcc4ca) SHA1(179dc81432424d68cefedd20cc1c4b2a95deb891) )
+ ROM_LOAD16_BYTE( "063-c3.c3", 0x400000, 0x200000, CRC(7a63ccc7) SHA1(49d97c543bc2860d493a353ab0d059088c6fbd21) )
+ ROM_LOAD16_BYTE( "063-c4.c4", 0x400001, 0x200000, CRC(751025ce) SHA1(e1bbaa7cd67fd04e4aab7f7ea77f63ae1cbc90d0) )
+ ROM_LOAD16_BYTE( "063-c5.c5", 0x800000, 0x200000, CRC(20d3a475) SHA1(28da44a136bd14c73c62c147c3f6e6bcfa1066de) )
+ ROM_LOAD16_BYTE( "063-c6.c6", 0x800001, 0x200000, CRC(ae4c0a88) SHA1(cc8a7d11daa3821f83a6fd0942534706f939e576) )
+ ROM_LOAD16_BYTE( "063sp.c7", 0xc00000, 0x200000, CRC(dbebced2) SHA1(c1db8a0a6814b8078934b68f1f579060e36f67b2) )
+ ROM_LOAD16_BYTE( "063sp.c8", 0xc00001, 0x200000, CRC(bf70b93c) SHA1(1bffeb6c7e158b9aee33802fe86f75cee04c6ecc) )
+ROM_END
+
+ROM_START( samsho2sq )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "063sq.p1", 0x100000, 0x100000, CRC(beeeeed1) SHA1(2d0639eee365308647f04db9423e93b9044d307a) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "063-s1.s1", CRC(64a5cd66) SHA1(12cdfb27bf9ccd5a8df6ddd4628ef7cf2c6d4964) )
+
+ NEO_BIOS_AUDIO_128K( "063-m1.m1", CRC(56675098) SHA1(90429fc40d056d480d0e2bbefbc691d9fa260fc4) )
+
+ ROM_REGION( 0x700000, "ymsnd", 0 )
+ ROM_LOAD( "063-v1.v1", 0x000000, 0x200000, CRC(37703f91) SHA1(a373ebef4c33ba1d8340e826981a58769aada238) )
+ ROM_LOAD( "063-v2.v2", 0x200000, 0x200000, CRC(0142bde8) SHA1(0be6c53acac44802bf70b6925452f70289a139d9) )
+ ROM_LOAD( "063-v3.v3", 0x400000, 0x200000, CRC(d07fa5ca) SHA1(1da7f081f8b8fc86a91feacf900f573218d82676) )
+ ROM_LOAD( "063-v4.v4", 0x600000, 0x100000, CRC(24aab4bb) SHA1(10ee4c5b3579865b93dcc1e4079963276aa700a6) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "063-c1.c1", 0x000000, 0x200000, CRC(86cd307c) SHA1(0d04336f7c436d74638d8c1cd8651faf436a6bec) )
+ ROM_LOAD16_BYTE( "063-c2.c2", 0x000001, 0x200000, CRC(cdfcc4ca) SHA1(179dc81432424d68cefedd20cc1c4b2a95deb891) )
+ ROM_LOAD16_BYTE( "063-c3.c3", 0x400000, 0x200000, CRC(7a63ccc7) SHA1(49d97c543bc2860d493a353ab0d059088c6fbd21) )
+ ROM_LOAD16_BYTE( "063-c4.c4", 0x400001, 0x200000, CRC(751025ce) SHA1(e1bbaa7cd67fd04e4aab7f7ea77f63ae1cbc90d0) )
+ ROM_LOAD16_BYTE( "063-c5.c5", 0x800000, 0x200000, CRC(20d3a475) SHA1(28da44a136bd14c73c62c147c3f6e6bcfa1066de) )
+ ROM_LOAD16_BYTE( "063-c6.c6", 0x800001, 0x200000, CRC(ae4c0a88) SHA1(cc8a7d11daa3821f83a6fd0942534706f939e576) )
+ ROM_LOAD16_BYTE( "063-c7.c7", 0xc00000, 0x200000, CRC(2df3cbcf) SHA1(e54f9022359963711451c2025825b862d36c6975) )
+ ROM_LOAD16_BYTE( "063-c8.c8", 0xc00001, 0x200000, CRC(1ffc6dfa) SHA1(acea18aca76c072e0bac2a364fc96d49cfc86e77) )
+ROM_END
+
+ROM_START( samsho2ss )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "063ss.p1", 0x100000, 0x100000, CRC(e300e5fa) SHA1(5e6793a69cc6996f5be4dba8f1bb2e95b2e36db6) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "063-s1.s1", CRC(64a5cd66) SHA1(12cdfb27bf9ccd5a8df6ddd4628ef7cf2c6d4964) )
+
+ NEO_BIOS_AUDIO_128K( "063-m1.m1", CRC(56675098) SHA1(90429fc40d056d480d0e2bbefbc691d9fa260fc4) )
+
+ ROM_REGION( 0x700000, "ymsnd", 0 )
+ ROM_LOAD( "063-v1.v1", 0x000000, 0x200000, CRC(37703f91) SHA1(a373ebef4c33ba1d8340e826981a58769aada238) )
+ ROM_LOAD( "063-v2.v2", 0x200000, 0x200000, CRC(0142bde8) SHA1(0be6c53acac44802bf70b6925452f70289a139d9) )
+ ROM_LOAD( "063-v3.v3", 0x400000, 0x200000, CRC(d07fa5ca) SHA1(1da7f081f8b8fc86a91feacf900f573218d82676) )
+ ROM_LOAD( "063-v4.v4", 0x600000, 0x100000, CRC(24aab4bb) SHA1(10ee4c5b3579865b93dcc1e4079963276aa700a6) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "063-c1.c1", 0x000000, 0x200000, CRC(86cd307c) SHA1(0d04336f7c436d74638d8c1cd8651faf436a6bec) )
+ ROM_LOAD16_BYTE( "063-c2.c2", 0x000001, 0x200000, CRC(cdfcc4ca) SHA1(179dc81432424d68cefedd20cc1c4b2a95deb891) )
+ ROM_LOAD16_BYTE( "063-c3.c3", 0x400000, 0x200000, CRC(7a63ccc7) SHA1(49d97c543bc2860d493a353ab0d059088c6fbd21) )
+ ROM_LOAD16_BYTE( "063-c4.c4", 0x400001, 0x200000, CRC(751025ce) SHA1(e1bbaa7cd67fd04e4aab7f7ea77f63ae1cbc90d0) )
+ ROM_LOAD16_BYTE( "063-c5.c5", 0x800000, 0x200000, CRC(20d3a475) SHA1(28da44a136bd14c73c62c147c3f6e6bcfa1066de) )
+ ROM_LOAD16_BYTE( "063-c6.c6", 0x800001, 0x200000, CRC(ae4c0a88) SHA1(cc8a7d11daa3821f83a6fd0942534706f939e576) )
+ ROM_LOAD16_BYTE( "063-c7.c7", 0xc00000, 0x200000, CRC(2df3cbcf) SHA1(e54f9022359963711451c2025825b862d36c6975) )
+ ROM_LOAD16_BYTE( "063-c8.c8", 0xc00001, 0x200000, CRC(1ffc6dfa) SHA1(acea18aca76c072e0bac2a364fc96d49cfc86e77) )
+ROM_END
+
+ROM_START( samsho2yc ) /* Samurai Shodown II - Enhance by Creamymami and Ydmis - (Can choose Mizuki and Kuroko - power hack) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "063yc.p1", 0x100000, 0x100000, CRC(ff64d433) SHA1(6d3140413614fe4f5dda17f623c734c6e2ab0940) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "063-s1.s1", CRC(64a5cd66) SHA1(12cdfb27bf9ccd5a8df6ddd4628ef7cf2c6d4964) )
+
+ NEO_BIOS_AUDIO_128K( "063-m1.m1", CRC(56675098) SHA1(90429fc40d056d480d0e2bbefbc691d9fa260fc4) )
+
+ ROM_REGION( 0x700000, "ymsnd", 0 )
+ ROM_LOAD( "063-v1.v1", 0x000000, 0x200000, CRC(37703f91) SHA1(a373ebef4c33ba1d8340e826981a58769aada238) )
+ ROM_LOAD( "063-v2.v2", 0x200000, 0x200000, CRC(0142bde8) SHA1(0be6c53acac44802bf70b6925452f70289a139d9) )
+ ROM_LOAD( "063-v3.v3", 0x400000, 0x200000, CRC(d07fa5ca) SHA1(1da7f081f8b8fc86a91feacf900f573218d82676) )
+ ROM_LOAD( "063-v4.v4", 0x600000, 0x100000, CRC(24aab4bb) SHA1(10ee4c5b3579865b93dcc1e4079963276aa700a6) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "063-c1.c1", 0x000000, 0x200000, CRC(86cd307c) SHA1(0d04336f7c436d74638d8c1cd8651faf436a6bec) )
+ ROM_LOAD16_BYTE( "063-c2.c2", 0x000001, 0x200000, CRC(cdfcc4ca) SHA1(179dc81432424d68cefedd20cc1c4b2a95deb891) )
+ ROM_LOAD16_BYTE( "063-c3.c3", 0x400000, 0x200000, CRC(7a63ccc7) SHA1(49d97c543bc2860d493a353ab0d059088c6fbd21) )
+ ROM_LOAD16_BYTE( "063-c4.c4", 0x400001, 0x200000, CRC(751025ce) SHA1(e1bbaa7cd67fd04e4aab7f7ea77f63ae1cbc90d0) )
+ ROM_LOAD16_BYTE( "063-c5.c5", 0x800000, 0x200000, CRC(20d3a475) SHA1(28da44a136bd14c73c62c147c3f6e6bcfa1066de) )
+ ROM_LOAD16_BYTE( "063-c6.c6", 0x800001, 0x200000, CRC(ae4c0a88) SHA1(cc8a7d11daa3821f83a6fd0942534706f939e576) )
+ ROM_LOAD16_BYTE( "063-c7.c7", 0xc00000, 0x200000, CRC(2df3cbcf) SHA1(e54f9022359963711451c2025825b862d36c6975) )
+ ROM_LOAD16_BYTE( "063-c8.c8", 0xc00001, 0x200000, CRC(1ffc6dfa) SHA1(acea18aca76c072e0bac2a364fc96d49cfc86e77) )
+ROM_END
+
+ROM_START( samsho2zk )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "063zk.p1", 0x100000, 0x100000, CRC(a7564f22) SHA1(20cf4eb464e79acc6258872a858b5e19023b461f) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "063-s1.s1", CRC(64a5cd66) SHA1(12cdfb27bf9ccd5a8df6ddd4628ef7cf2c6d4964) )
+
+ NEO_BIOS_AUDIO_128K( "063-m1.m1", CRC(56675098) SHA1(90429fc40d056d480d0e2bbefbc691d9fa260fc4) )
+
+ ROM_REGION( 0x700000, "ymsnd", 0 )
+ ROM_LOAD( "063-v1.v1", 0x000000, 0x200000, CRC(37703f91) SHA1(a373ebef4c33ba1d8340e826981a58769aada238) )
+ ROM_LOAD( "063-v2.v2", 0x200000, 0x200000, CRC(0142bde8) SHA1(0be6c53acac44802bf70b6925452f70289a139d9) )
+ ROM_LOAD( "063-v3.v3", 0x400000, 0x200000, CRC(d07fa5ca) SHA1(1da7f081f8b8fc86a91feacf900f573218d82676) )
+ ROM_LOAD( "063-v4.v4", 0x600000, 0x100000, CRC(24aab4bb) SHA1(10ee4c5b3579865b93dcc1e4079963276aa700a6) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "063-c1.c1", 0x000000, 0x200000, CRC(86cd307c) SHA1(0d04336f7c436d74638d8c1cd8651faf436a6bec) )
+ ROM_LOAD16_BYTE( "063-c2.c2", 0x000001, 0x200000, CRC(cdfcc4ca) SHA1(179dc81432424d68cefedd20cc1c4b2a95deb891) )
+ ROM_LOAD16_BYTE( "063-c3.c3", 0x400000, 0x200000, CRC(7a63ccc7) SHA1(49d97c543bc2860d493a353ab0d059088c6fbd21) )
+ ROM_LOAD16_BYTE( "063-c4.c4", 0x400001, 0x200000, CRC(751025ce) SHA1(e1bbaa7cd67fd04e4aab7f7ea77f63ae1cbc90d0) )
+ ROM_LOAD16_BYTE( "063-c5.c5", 0x800000, 0x200000, CRC(20d3a475) SHA1(28da44a136bd14c73c62c147c3f6e6bcfa1066de) )
+ ROM_LOAD16_BYTE( "063-c6.c6", 0x800001, 0x200000, CRC(ae4c0a88) SHA1(cc8a7d11daa3821f83a6fd0942534706f939e576) )
+ ROM_LOAD16_BYTE( "063-c7.c7", 0xc00000, 0x200000, CRC(2df3cbcf) SHA1(e54f9022359963711451c2025825b862d36c6975) )
+ ROM_LOAD16_BYTE( "063-c8.c8", 0xc00001, 0x200000, CRC(1ffc6dfa) SHA1(acea18aca76c072e0bac2a364fc96d49cfc86e77) )
+ROM_END
+
+
+ROM_START( samsho3eh ) /* Samurai Shodown III - Hack by Ydmis - (Can choose Zankuro and Kuroko) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "087eh.p1", 0x000000, 0x100000, CRC(251d9b3f) SHA1(6ea015bbc528ac9a5d0eeb746ed8fcca689c2be6) )
+ ROM_LOAD16_WORD_SWAP( "087-p2.sp2", 0x100000, 0x200000, CRC(9bbe27e0) SHA1(b18117102159903c8e8f4e4226e1cc91a400e816) )
+
+ NEO_SFIX_128K( "087-s1.s1", CRC(74ec7d9f) SHA1(d79c479838a7ca51735a44f91f1968ec5b3c6b91) )
+
+ NEO_BIOS_AUDIO_128K( "087-m1.m1", CRC(8e6440eb) SHA1(e3f72150af4e326543b29df71cda27d73ec087c1) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "087-v1.v1", 0x000000, 0x400000, CRC(84bdd9a0) SHA1(adceceb00569eca13fcc2e0f0d9f0d9b06a06851) )
+ ROM_LOAD( "087-v2.v2", 0x400000, 0x200000, CRC(ac0f261a) SHA1(5411bdff24cba7fdbc3397d45a70fb468d7a44b3) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "087-c1.c1", 0x0000000, 0x400000, CRC(07a233bc) SHA1(654cb56cfd6eeebe6745c0b8b730317fb8ccd3d9) )
+ ROM_LOAD16_BYTE( "087-c2.c2", 0x0000001, 0x400000, CRC(7a413592) SHA1(b8c7a2d0d7a8b14d6cab94d7a5f347e73c6ab7a4) )
+ ROM_LOAD16_BYTE( "087-c3.c3", 0x0800000, 0x400000, CRC(8b793796) SHA1(053acc129ea56691607a5d255845703e61fd3ada) )
+ ROM_LOAD16_BYTE( "087-c4.c4", 0x0800001, 0x400000, CRC(728fbf11) SHA1(daa319d455f759bfc08a37b43218bdb48dc1c9e5) )
+ ROM_LOAD16_BYTE( "087-c5.c5", 0x1000000, 0x400000, CRC(172ab180) SHA1(a6122f683bdb78d0079e1e360c1b96ba28def7b7) )
+ ROM_LOAD16_BYTE( "087-c6.c6", 0x1000001, 0x400000, CRC(002ff8f3) SHA1(3a378708697d727796c4f702dd5bbf1c9eb4daec) )
+ ROM_LOAD16_BYTE( "087-c7.c7", 0x1800000, 0x100000, CRC(ae450e3d) SHA1(ec482632cc347ec3f9e68df0ebcaa16ebe41b9f9) )
+ ROM_LOAD16_BYTE( "087-c8.c8", 0x1800001, 0x100000, CRC(a9e82717) SHA1(e39ee15d5140dbe7f06eea945cce9984a5e8b06a) )
+ROM_END
+
+ROM_START( samsho3hb )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "087hb.p1", 0x000000, 0x100000, CRC(15e021ca) SHA1(78aba32741d2e4b5bc4c641a4166f4405ab240e2) )
+ ROM_LOAD16_WORD_SWAP( "087hb.p2", 0x100000, 0x200000, CRC(1cc2c370) SHA1(01fba8d315d684652fb506aa833fa0e8e3e350df) )
+
+ NEO_SFIX_128K( "087-s1.s1", CRC(74ec7d9f) SHA1(d79c479838a7ca51735a44f91f1968ec5b3c6b91) )
+
+ NEO_BIOS_AUDIO_128K( "087-m1.m1", CRC(8e6440eb) SHA1(e3f72150af4e326543b29df71cda27d73ec087c1) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "087-v1.v1", 0x000000, 0x400000, CRC(84bdd9a0) SHA1(adceceb00569eca13fcc2e0f0d9f0d9b06a06851) )
+ ROM_LOAD( "087-v2.v2", 0x400000, 0x200000, CRC(ac0f261a) SHA1(5411bdff24cba7fdbc3397d45a70fb468d7a44b3) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "087-c1.c1", 0x0000000, 0x400000, CRC(07a233bc) SHA1(654cb56cfd6eeebe6745c0b8b730317fb8ccd3d9) )
+ ROM_LOAD16_BYTE( "087-c2.c2", 0x0000001, 0x400000, CRC(7a413592) SHA1(b8c7a2d0d7a8b14d6cab94d7a5f347e73c6ab7a4) )
+ ROM_LOAD16_BYTE( "087-c3.c3", 0x0800000, 0x400000, CRC(8b793796) SHA1(053acc129ea56691607a5d255845703e61fd3ada) )
+ ROM_LOAD16_BYTE( "087-c4.c4", 0x0800001, 0x400000, CRC(728fbf11) SHA1(daa319d455f759bfc08a37b43218bdb48dc1c9e5) )
+ ROM_LOAD16_BYTE( "087-c5.c5", 0x1000000, 0x400000, CRC(172ab180) SHA1(a6122f683bdb78d0079e1e360c1b96ba28def7b7) )
+ ROM_LOAD16_BYTE( "087-c6.c6", 0x1000001, 0x400000, CRC(002ff8f3) SHA1(3a378708697d727796c4f702dd5bbf1c9eb4daec) )
+ ROM_LOAD16_BYTE( "087-c7.c7", 0x1800000, 0x100000, CRC(ae450e3d) SHA1(ec482632cc347ec3f9e68df0ebcaa16ebe41b9f9) )
+ ROM_LOAD16_BYTE( "087-c8.c8", 0x1800001, 0x100000, CRC(a9e82717) SHA1(e39ee15d5140dbe7f06eea945cce9984a5e8b06a) )
+ROM_END
+
+ROM_START( samsho3s2 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "087s2.p1", 0x000000, 0x100000, CRC(453daf21) SHA1(9c29d2efc98746396cd2a0dcde04fee9f70e317d) )
+ ROM_LOAD16_WORD_SWAP( "087-p2.sp2", 0x100000, 0x200000, CRC(9bbe27e0) SHA1(b18117102159903c8e8f4e4226e1cc91a400e816) )
+
+ NEO_SFIX_128K( "087-s1.s1", CRC(74ec7d9f) SHA1(d79c479838a7ca51735a44f91f1968ec5b3c6b91) )
+
+ NEO_BIOS_AUDIO_128K( "087-m1.m1", CRC(8e6440eb) SHA1(e3f72150af4e326543b29df71cda27d73ec087c1) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "087-v1.v1", 0x000000, 0x400000, CRC(84bdd9a0) SHA1(adceceb00569eca13fcc2e0f0d9f0d9b06a06851) )
+ ROM_LOAD( "087-v2.v2", 0x400000, 0x200000, CRC(ac0f261a) SHA1(5411bdff24cba7fdbc3397d45a70fb468d7a44b3) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "087-c1.c1", 0x0000000, 0x400000, CRC(07a233bc) SHA1(654cb56cfd6eeebe6745c0b8b730317fb8ccd3d9) )
+ ROM_LOAD16_BYTE( "087-c2.c2", 0x0000001, 0x400000, CRC(7a413592) SHA1(b8c7a2d0d7a8b14d6cab94d7a5f347e73c6ab7a4) )
+ ROM_LOAD16_BYTE( "087-c3.c3", 0x0800000, 0x400000, CRC(8b793796) SHA1(053acc129ea56691607a5d255845703e61fd3ada) )
+ ROM_LOAD16_BYTE( "087-c4.c4", 0x0800001, 0x400000, CRC(728fbf11) SHA1(daa319d455f759bfc08a37b43218bdb48dc1c9e5) )
+ ROM_LOAD16_BYTE( "087-c5.c5", 0x1000000, 0x400000, CRC(172ab180) SHA1(a6122f683bdb78d0079e1e360c1b96ba28def7b7) )
+ ROM_LOAD16_BYTE( "087-c6.c6", 0x1000001, 0x400000, CRC(002ff8f3) SHA1(3a378708697d727796c4f702dd5bbf1c9eb4daec) )
+ ROM_LOAD16_BYTE( "087-c7.c7", 0x1800000, 0x100000, CRC(ae450e3d) SHA1(ec482632cc347ec3f9e68df0ebcaa16ebe41b9f9) )
+ ROM_LOAD16_BYTE( "087-c8.c8", 0x1800001, 0x100000, CRC(a9e82717) SHA1(e39ee15d5140dbe7f06eea945cce9984a5e8b06a) )
+ROM_END
+
+ROM_START( samsho3se ) /* Samurai Shodown III - (samsho3ehc) - Super Enhance Hack by Creamymami and Ydmis - (Can choose Zankuro and Kuroko - power hack ABC - ultra power hack) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "087se.p1", 0x000000, 0x100000, CRC(8deb9f12) SHA1(5fc437f41020f8619b23e37a864e2ba19fec2727) )
+ ROM_LOAD16_WORD_SWAP( "087-p2.sp2", 0x100000, 0x200000, CRC(9bbe27e0) SHA1(b18117102159903c8e8f4e4226e1cc91a400e816) )
+
+ NEO_SFIX_128K( "087-s1.s1", CRC(74ec7d9f) SHA1(d79c479838a7ca51735a44f91f1968ec5b3c6b91) )
+
+ NEO_BIOS_AUDIO_128K( "087-m1.m1", CRC(8e6440eb) SHA1(e3f72150af4e326543b29df71cda27d73ec087c1) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "087-v1.v1", 0x000000, 0x400000, CRC(84bdd9a0) SHA1(adceceb00569eca13fcc2e0f0d9f0d9b06a06851) )
+ ROM_LOAD( "087-v2.v2", 0x400000, 0x200000, CRC(ac0f261a) SHA1(5411bdff24cba7fdbc3397d45a70fb468d7a44b3) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "087-c1.c1", 0x0000000, 0x400000, CRC(07a233bc) SHA1(654cb56cfd6eeebe6745c0b8b730317fb8ccd3d9) )
+ ROM_LOAD16_BYTE( "087-c2.c2", 0x0000001, 0x400000, CRC(7a413592) SHA1(b8c7a2d0d7a8b14d6cab94d7a5f347e73c6ab7a4) )
+ ROM_LOAD16_BYTE( "087-c3.c3", 0x0800000, 0x400000, CRC(8b793796) SHA1(053acc129ea56691607a5d255845703e61fd3ada) )
+ ROM_LOAD16_BYTE( "087-c4.c4", 0x0800001, 0x400000, CRC(728fbf11) SHA1(daa319d455f759bfc08a37b43218bdb48dc1c9e5) )
+ ROM_LOAD16_BYTE( "087-c5.c5", 0x1000000, 0x400000, CRC(172ab180) SHA1(a6122f683bdb78d0079e1e360c1b96ba28def7b7) )
+ ROM_LOAD16_BYTE( "087-c6.c6", 0x1000001, 0x400000, CRC(002ff8f3) SHA1(3a378708697d727796c4f702dd5bbf1c9eb4daec) )
+ ROM_LOAD16_BYTE( "087-c7.c7", 0x1800000, 0x100000, CRC(ae450e3d) SHA1(ec482632cc347ec3f9e68df0ebcaa16ebe41b9f9) )
+ ROM_LOAD16_BYTE( "087-c8.c8", 0x1800001, 0x100000, CRC(a9e82717) SHA1(e39ee15d5140dbe7f06eea945cce9984a5e8b06a) )
+ROM_END
+
+ROM_START( samsho3ss )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "087ss.p1", 0x000000, 0x100000, CRC(a2fcad93) SHA1(aba1e7f70ee3349fc686968fc69507bdf77289dd) )
+ ROM_LOAD16_WORD_SWAP( "087-p2.sp2", 0x100000, 0x200000, CRC(9bbe27e0) SHA1(b18117102159903c8e8f4e4226e1cc91a400e816) )
+
+ NEO_SFIX_128K( "087-s1.s1", CRC(74ec7d9f) SHA1(d79c479838a7ca51735a44f91f1968ec5b3c6b91) )
+
+ NEO_BIOS_AUDIO_128K( "087-m1.m1", CRC(8e6440eb) SHA1(e3f72150af4e326543b29df71cda27d73ec087c1) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "087-v1.v1", 0x000000, 0x400000, CRC(84bdd9a0) SHA1(adceceb00569eca13fcc2e0f0d9f0d9b06a06851) )
+ ROM_LOAD( "087-v2.v2", 0x400000, 0x200000, CRC(ac0f261a) SHA1(5411bdff24cba7fdbc3397d45a70fb468d7a44b3) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "087-c1.c1", 0x0000000, 0x400000, CRC(07a233bc) SHA1(654cb56cfd6eeebe6745c0b8b730317fb8ccd3d9) )
+ ROM_LOAD16_BYTE( "087-c2.c2", 0x0000001, 0x400000, CRC(7a413592) SHA1(b8c7a2d0d7a8b14d6cab94d7a5f347e73c6ab7a4) )
+ ROM_LOAD16_BYTE( "087-c3.c3", 0x0800000, 0x400000, CRC(8b793796) SHA1(053acc129ea56691607a5d255845703e61fd3ada) )
+ ROM_LOAD16_BYTE( "087-c4.c4", 0x0800001, 0x400000, CRC(728fbf11) SHA1(daa319d455f759bfc08a37b43218bdb48dc1c9e5) )
+ ROM_LOAD16_BYTE( "087-c5.c5", 0x1000000, 0x400000, CRC(172ab180) SHA1(a6122f683bdb78d0079e1e360c1b96ba28def7b7) )
+ ROM_LOAD16_BYTE( "087-c6.c6", 0x1000001, 0x400000, CRC(002ff8f3) SHA1(3a378708697d727796c4f702dd5bbf1c9eb4daec) )
+ ROM_LOAD16_BYTE( "087-c7.c7", 0x1800000, 0x100000, CRC(ae450e3d) SHA1(ec482632cc347ec3f9e68df0ebcaa16ebe41b9f9) )
+ ROM_LOAD16_BYTE( "087-c8.c8", 0x1800001, 0x100000, CRC(a9e82717) SHA1(e39ee15d5140dbe7f06eea945cce9984a5e8b06a) )
+ROM_END
+
+ROM_START( samsho3yc ) /* Samurai Shodown III - Enhance by Creamymami and Ydmis - (Can choose Zankuro and Kuroko - power hack ABC) */
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "087yc.p1", 0x000000, 0x100000, CRC(f111c831) SHA1(eff62f96172af895605201860a8d18ed847d08a0) )
+ ROM_LOAD16_WORD_SWAP( "087-p2.sp2", 0x100000, 0x200000, CRC(9bbe27e0) SHA1(b18117102159903c8e8f4e4226e1cc91a400e816) )
+
+ NEO_SFIX_128K( "087-s1.s1", CRC(74ec7d9f) SHA1(d79c479838a7ca51735a44f91f1968ec5b3c6b91) )
+
+ NEO_BIOS_AUDIO_128K( "087-m1.m1", CRC(8e6440eb) SHA1(e3f72150af4e326543b29df71cda27d73ec087c1) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "087-v1.v1", 0x000000, 0x400000, CRC(84bdd9a0) SHA1(adceceb00569eca13fcc2e0f0d9f0d9b06a06851) )
+ ROM_LOAD( "087-v2.v2", 0x400000, 0x200000, CRC(ac0f261a) SHA1(5411bdff24cba7fdbc3397d45a70fb468d7a44b3) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "087-c1.c1", 0x0000000, 0x400000, CRC(07a233bc) SHA1(654cb56cfd6eeebe6745c0b8b730317fb8ccd3d9) )
+ ROM_LOAD16_BYTE( "087-c2.c2", 0x0000001, 0x400000, CRC(7a413592) SHA1(b8c7a2d0d7a8b14d6cab94d7a5f347e73c6ab7a4) )
+ ROM_LOAD16_BYTE( "087-c3.c3", 0x0800000, 0x400000, CRC(8b793796) SHA1(053acc129ea56691607a5d255845703e61fd3ada) )
+ ROM_LOAD16_BYTE( "087-c4.c4", 0x0800001, 0x400000, CRC(728fbf11) SHA1(daa319d455f759bfc08a37b43218bdb48dc1c9e5) )
+ ROM_LOAD16_BYTE( "087-c5.c5", 0x1000000, 0x400000, CRC(172ab180) SHA1(a6122f683bdb78d0079e1e360c1b96ba28def7b7) )
+ ROM_LOAD16_BYTE( "087-c6.c6", 0x1000001, 0x400000, CRC(002ff8f3) SHA1(3a378708697d727796c4f702dd5bbf1c9eb4daec) )
+ ROM_LOAD16_BYTE( "087-c7.c7", 0x1800000, 0x100000, CRC(ae450e3d) SHA1(ec482632cc347ec3f9e68df0ebcaa16ebe41b9f9) )
+ ROM_LOAD16_BYTE( "087-c8.c8", 0x1800001, 0x100000, CRC(a9e82717) SHA1(e39ee15d5140dbe7f06eea945cce9984a5e8b06a) )
+ROM_END
+
+ROM_START( samsho3zk )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "087zk.p1", 0x000000, 0x100000, CRC(96c92f16) SHA1(0a4d976ffa6bb0723f3832cf78b73c7f69fb5ff7) )
+ ROM_LOAD16_WORD_SWAP( "087-p2.sp2", 0x100000, 0x200000, CRC(9bbe27e0) SHA1(b18117102159903c8e8f4e4226e1cc91a400e816) )
+
+ NEO_SFIX_128K( "087-s1.s1", CRC(74ec7d9f) SHA1(d79c479838a7ca51735a44f91f1968ec5b3c6b91) )
+
+ NEO_BIOS_AUDIO_128K( "087-m1.m1", CRC(8e6440eb) SHA1(e3f72150af4e326543b29df71cda27d73ec087c1) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "087-v1.v1", 0x000000, 0x400000, CRC(84bdd9a0) SHA1(adceceb00569eca13fcc2e0f0d9f0d9b06a06851) )
+ ROM_LOAD( "087-v2.v2", 0x400000, 0x200000, CRC(ac0f261a) SHA1(5411bdff24cba7fdbc3397d45a70fb468d7a44b3) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "087-c1.c1", 0x0000000, 0x400000, CRC(07a233bc) SHA1(654cb56cfd6eeebe6745c0b8b730317fb8ccd3d9) )
+ ROM_LOAD16_BYTE( "087-c2.c2", 0x0000001, 0x400000, CRC(7a413592) SHA1(b8c7a2d0d7a8b14d6cab94d7a5f347e73c6ab7a4) )
+ ROM_LOAD16_BYTE( "087-c3.c3", 0x0800000, 0x400000, CRC(8b793796) SHA1(053acc129ea56691607a5d255845703e61fd3ada) )
+ ROM_LOAD16_BYTE( "087-c4.c4", 0x0800001, 0x400000, CRC(728fbf11) SHA1(daa319d455f759bfc08a37b43218bdb48dc1c9e5) )
+ ROM_LOAD16_BYTE( "087-c5.c5", 0x1000000, 0x400000, CRC(172ab180) SHA1(a6122f683bdb78d0079e1e360c1b96ba28def7b7) )
+ ROM_LOAD16_BYTE( "087-c6.c6", 0x1000001, 0x400000, CRC(002ff8f3) SHA1(3a378708697d727796c4f702dd5bbf1c9eb4daec) )
+ ROM_LOAD16_BYTE( "087-c7.c7", 0x1800000, 0x100000, CRC(ae450e3d) SHA1(ec482632cc347ec3f9e68df0ebcaa16ebe41b9f9) )
+ ROM_LOAD16_BYTE( "087-c8.c8", 0x1800001, 0x100000, CRC(a9e82717) SHA1(e39ee15d5140dbe7f06eea945cce9984a5e8b06a) )
+ROM_END
+
+
+ROM_START( samsho4bh ) /* Samurai Shodown IV - Hack by Dodowang - (Can choose Zankuro Minazuki - has icon in character select menue) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "222bh.p1", 0x000000, 0x100000, CRC(59dd746f) SHA1(2afecebd57f978fe0764c23a0bbf1d73421c60ca) )
+ ROM_LOAD16_WORD_SWAP( "222-p2.sp2", 0x100000, 0x400000, CRC(b023cd8b) SHA1(35b4cec9858225f90acdfa16ed8a3017d0d08327) )
+
+ NEO_SFIX_128K( "222bh.s1", CRC(d0906101) SHA1(16873a82c408a5585d4e424e953b451981a8d6b2) )
+
+ NEO_BIOS_AUDIO_128K( "222-m1.m1", CRC(7615bc1b) SHA1(b936f7b341f6fe0921b4c41049734684583e3596) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "222-v1.v1", 0x000000, 0x400000, CRC(7d6ba95f) SHA1(03cb4e0d770e0b332b07b64cacef624460b84c78) )
+ ROM_LOAD( "222-v2.v2", 0x400000, 0x400000, CRC(6c33bb5d) SHA1(fd5d4e08a962dd0d22c52c91bad5ec7f23cfb901) )
+ ROM_LOAD( "222-v3.v3", 0x800000, 0x200000, CRC(831ea8c0) SHA1(f2987b7d09bdc4311e972ce8a9ab7ca9802db4db) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "222-c1.c1", 0x0000000, 0x400000, CRC(68f2ed95) SHA1(c0a02df012cd25bcfe341770ea861a80294148cb) )
+ ROM_LOAD16_BYTE( "222-c2.c2", 0x0000001, 0x400000, CRC(a6e9aff0) SHA1(15addca49951ed53fa3c000c8d7cd327d012a620) )
+ ROM_LOAD16_BYTE( "222-c3.c3", 0x0800000, 0x400000, CRC(c91b40f4) SHA1(dcda45e0336204e3e024de08edfd0a3217bc1fdd) )
+ ROM_LOAD16_BYTE( "222-c4.c4", 0x0800001, 0x400000, CRC(359510a4) SHA1(b6642677ebdff7788263266402080272b8a66b15) )
+ ROM_LOAD16_BYTE( "222-c5.c5", 0x1000000, 0x400000, CRC(9cfbb22d) SHA1(789c32f917d0c6e38601cd390a7bf9d803131a4a) )
+ ROM_LOAD16_BYTE( "222-c6.c6", 0x1000001, 0x400000, CRC(685efc32) SHA1(db21ba1c7e3631ce0f1cb6f503ae7e0e043ff71b) )
+ ROM_LOAD16_BYTE( "222-c7.c7", 0x1800000, 0x400000, CRC(d0f86f0d) SHA1(32502d71c2ab1469c492b6b382bf2bb3f85981d9) )
+ ROM_LOAD16_BYTE( "222-c8.c8", 0x1800001, 0x400000, CRC(adfc50e3) SHA1(7d7ee874355b5aa75ad9c9a5c9c3df98d098d85e) )
+ROM_END
+
+ROM_START( samsho4cz ) /* Samurai Shodown IV - Enhance by Creamymami and Zhangshee - (Can choose Zankuro Minazuki - ultra kill start is max - ultra kill is always max) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "222cz.p1", 0x000000, 0x100000, CRC(fdfb86a3) SHA1(ed91d0273dec277ce9ee4b4bdf7e88b524b3ed3b) )
+ ROM_LOAD16_WORD_SWAP( "222-p2.sp2", 0x100000, 0x400000, CRC(b023cd8b) SHA1(35b4cec9858225f90acdfa16ed8a3017d0d08327) )
+
+ NEO_SFIX_128K( "222-s1.s1", CRC(8d3d3bf9) SHA1(9975ed9b458bdd14e23451d2534153f68a5e4e6c) )
+
+ NEO_BIOS_AUDIO_128K( "222-m1.m1", CRC(7615bc1b) SHA1(b936f7b341f6fe0921b4c41049734684583e3596) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "222-v1.v1", 0x000000, 0x400000, CRC(7d6ba95f) SHA1(03cb4e0d770e0b332b07b64cacef624460b84c78) )
+ ROM_LOAD( "222-v2.v2", 0x400000, 0x400000, CRC(6c33bb5d) SHA1(fd5d4e08a962dd0d22c52c91bad5ec7f23cfb901) )
+ ROM_LOAD( "222-v3.v3", 0x800000, 0x200000, CRC(831ea8c0) SHA1(f2987b7d09bdc4311e972ce8a9ab7ca9802db4db) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "222-c1.c1", 0x0000000, 0x400000, CRC(68f2ed95) SHA1(c0a02df012cd25bcfe341770ea861a80294148cb) )
+ ROM_LOAD16_BYTE( "222-c2.c2", 0x0000001, 0x400000, CRC(a6e9aff0) SHA1(15addca49951ed53fa3c000c8d7cd327d012a620) )
+ ROM_LOAD16_BYTE( "222-c3.c3", 0x0800000, 0x400000, CRC(c91b40f4) SHA1(dcda45e0336204e3e024de08edfd0a3217bc1fdd) )
+ ROM_LOAD16_BYTE( "222-c4.c4", 0x0800001, 0x400000, CRC(359510a4) SHA1(b6642677ebdff7788263266402080272b8a66b15) )
+ ROM_LOAD16_BYTE( "222-c5.c5", 0x1000000, 0x400000, CRC(9cfbb22d) SHA1(789c32f917d0c6e38601cd390a7bf9d803131a4a) )
+ ROM_LOAD16_BYTE( "222-c6.c6", 0x1000001, 0x400000, CRC(685efc32) SHA1(db21ba1c7e3631ce0f1cb6f503ae7e0e043ff71b) )
+ ROM_LOAD16_BYTE( "222-c7.c7", 0x1800000, 0x400000, CRC(d0f86f0d) SHA1(32502d71c2ab1469c492b6b382bf2bb3f85981d9) )
+ ROM_LOAD16_BYTE( "222-c8.c8", 0x1800001, 0x400000, CRC(adfc50e3) SHA1(7d7ee874355b5aa75ad9c9a5c9c3df98d098d85e) )
+ROM_END
+
+ROM_START( samsho4eh ) /* Samurai Shodown IV - Enhance by Zhangshee - (Can choose Zankuro Minazuki) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "222eh.p1", 0x000000, 0x100000, CRC(10390464) SHA1(029a2d22819b8440b1ce3bafb6005841665b0b27) )
+ ROM_LOAD16_WORD_SWAP( "222-p2.sp2", 0x100000, 0x400000, CRC(b023cd8b) SHA1(35b4cec9858225f90acdfa16ed8a3017d0d08327) )
+
+ NEO_SFIX_128K( "222-s1.s1", CRC(8d3d3bf9) SHA1(9975ed9b458bdd14e23451d2534153f68a5e4e6c) )
+
+ NEO_BIOS_AUDIO_128K( "222-m1.m1", CRC(7615bc1b) SHA1(b936f7b341f6fe0921b4c41049734684583e3596) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "222-v1.v1", 0x000000, 0x400000, CRC(7d6ba95f) SHA1(03cb4e0d770e0b332b07b64cacef624460b84c78) )
+ ROM_LOAD( "222-v2.v2", 0x400000, 0x400000, CRC(6c33bb5d) SHA1(fd5d4e08a962dd0d22c52c91bad5ec7f23cfb901) )
+ ROM_LOAD( "222-v3.v3", 0x800000, 0x200000, CRC(831ea8c0) SHA1(f2987b7d09bdc4311e972ce8a9ab7ca9802db4db) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "222-c1.c1", 0x0000000, 0x400000, CRC(68f2ed95) SHA1(c0a02df012cd25bcfe341770ea861a80294148cb) )
+ ROM_LOAD16_BYTE( "222-c2.c2", 0x0000001, 0x400000, CRC(a6e9aff0) SHA1(15addca49951ed53fa3c000c8d7cd327d012a620) )
+ ROM_LOAD16_BYTE( "222-c3.c3", 0x0800000, 0x400000, CRC(c91b40f4) SHA1(dcda45e0336204e3e024de08edfd0a3217bc1fdd) )
+ ROM_LOAD16_BYTE( "222-c4.c4", 0x0800001, 0x400000, CRC(359510a4) SHA1(b6642677ebdff7788263266402080272b8a66b15) )
+ ROM_LOAD16_BYTE( "222-c5.c5", 0x1000000, 0x400000, CRC(9cfbb22d) SHA1(789c32f917d0c6e38601cd390a7bf9d803131a4a) )
+ ROM_LOAD16_BYTE( "222-c6.c6", 0x1000001, 0x400000, CRC(685efc32) SHA1(db21ba1c7e3631ce0f1cb6f503ae7e0e043ff71b) )
+ ROM_LOAD16_BYTE( "222-c7.c7", 0x1800000, 0x400000, CRC(d0f86f0d) SHA1(32502d71c2ab1469c492b6b382bf2bb3f85981d9) )
+ ROM_LOAD16_BYTE( "222-c8.c8", 0x1800001, 0x400000, CRC(adfc50e3) SHA1(7d7ee874355b5aa75ad9c9a5c9c3df98d098d85e) )
+ROM_END
+
+ROM_START( samsho4es ) /* Samurai Shodown IV - Enhance by SNK2003/PPX Hack Team - (Move revision - v3.8) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "222es.p1", 0x000000, 0x100000, CRC(36D58438) SHA1(0E957E6815121C8005A560E1F17BD1D4675C2BDB) )
+ ROM_LOAD16_WORD_SWAP( "222-p2.sp2", 0x100000, 0x400000, CRC(b023cd8b) SHA1(35b4cec9858225f90acdfa16ed8a3017d0d08327) )
+
+ NEO_SFIX_128K( "222-s1.s1", CRC(8d3d3bf9) SHA1(9975ed9b458bdd14e23451d2534153f68a5e4e6c) )
+
+ NEO_BIOS_AUDIO_128K( "222-m1.m1", CRC(7615bc1b) SHA1(b936f7b341f6fe0921b4c41049734684583e3596) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "222-v1.v1", 0x000000, 0x400000, CRC(7d6ba95f) SHA1(03cb4e0d770e0b332b07b64cacef624460b84c78) )
+ ROM_LOAD( "222-v2.v2", 0x400000, 0x400000, CRC(6c33bb5d) SHA1(fd5d4e08a962dd0d22c52c91bad5ec7f23cfb901) )
+ ROM_LOAD( "222-v3.v3", 0x800000, 0x200000, CRC(831ea8c0) SHA1(f2987b7d09bdc4311e972ce8a9ab7ca9802db4db) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "222-c1.c1", 0x0000000, 0x400000, CRC(68f2ed95) SHA1(c0a02df012cd25bcfe341770ea861a80294148cb) )
+ ROM_LOAD16_BYTE( "222-c2.c2", 0x0000001, 0x400000, CRC(a6e9aff0) SHA1(15addca49951ed53fa3c000c8d7cd327d012a620) )
+ ROM_LOAD16_BYTE( "222-c3.c3", 0x0800000, 0x400000, CRC(c91b40f4) SHA1(dcda45e0336204e3e024de08edfd0a3217bc1fdd) )
+ ROM_LOAD16_BYTE( "222-c4.c4", 0x0800001, 0x400000, CRC(359510a4) SHA1(b6642677ebdff7788263266402080272b8a66b15) )
+ ROM_LOAD16_BYTE( "222-c5.c5", 0x1000000, 0x400000, CRC(9cfbb22d) SHA1(789c32f917d0c6e38601cd390a7bf9d803131a4a) )
+ ROM_LOAD16_BYTE( "222-c6.c6", 0x1000001, 0x400000, CRC(685efc32) SHA1(db21ba1c7e3631ce0f1cb6f503ae7e0e043ff71b) )
+ ROM_LOAD16_BYTE( "222-c7.c7", 0x1800000, 0x400000, CRC(d0f86f0d) SHA1(32502d71c2ab1469c492b6b382bf2bb3f85981d9) )
+ ROM_LOAD16_BYTE( "222-c8.c8", 0x1800001, 0x400000, CRC(adfc50e3) SHA1(7d7ee874355b5aa75ad9c9a5c9c3df98d098d85e) )
+ROM_END
+
+ROM_START( samsho4ev )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "222ev.p1", 0x000000, 0x100000, CRC(84539b07) SHA1(710827bcf969e913b0b1702295f4808fa68e59ca) )
+ ROM_LOAD16_WORD_SWAP( "222-p2.sp2", 0x100000, 0x400000, CRC(b023cd8b) SHA1(35b4cec9858225f90acdfa16ed8a3017d0d08327) )
+
+ NEO_SFIX_128K( "222-s1.s1", CRC(8d3d3bf9) SHA1(9975ed9b458bdd14e23451d2534153f68a5e4e6c) )
+
+ NEO_BIOS_AUDIO_128K( "222-m1.m1", CRC(7615bc1b) SHA1(b936f7b341f6fe0921b4c41049734684583e3596) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "222-v1.v1", 0x000000, 0x400000, CRC(7d6ba95f) SHA1(03cb4e0d770e0b332b07b64cacef624460b84c78) )
+ ROM_LOAD( "222-v2.v2", 0x400000, 0x400000, CRC(6c33bb5d) SHA1(fd5d4e08a962dd0d22c52c91bad5ec7f23cfb901) )
+ ROM_LOAD( "222-v3.v3", 0x800000, 0x200000, CRC(831ea8c0) SHA1(f2987b7d09bdc4311e972ce8a9ab7ca9802db4db) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "222-c1.c1", 0x0000000, 0x400000, CRC(68f2ed95) SHA1(c0a02df012cd25bcfe341770ea861a80294148cb) )
+ ROM_LOAD16_BYTE( "222-c2.c2", 0x0000001, 0x400000, CRC(a6e9aff0) SHA1(15addca49951ed53fa3c000c8d7cd327d012a620) )
+ ROM_LOAD16_BYTE( "222-c3.c3", 0x0800000, 0x400000, CRC(c91b40f4) SHA1(dcda45e0336204e3e024de08edfd0a3217bc1fdd) )
+ ROM_LOAD16_BYTE( "222-c4.c4", 0x0800001, 0x400000, CRC(359510a4) SHA1(b6642677ebdff7788263266402080272b8a66b15) )
+ ROM_LOAD16_BYTE( "222-c5.c5", 0x1000000, 0x400000, CRC(9cfbb22d) SHA1(789c32f917d0c6e38601cd390a7bf9d803131a4a) )
+ ROM_LOAD16_BYTE( "222-c6.c6", 0x1000001, 0x400000, CRC(685efc32) SHA1(db21ba1c7e3631ce0f1cb6f503ae7e0e043ff71b) )
+ ROM_LOAD16_BYTE( "222-c7.c7", 0x1800000, 0x400000, CRC(d0f86f0d) SHA1(32502d71c2ab1469c492b6b382bf2bb3f85981d9) )
+ ROM_LOAD16_BYTE( "222-c8.c8", 0x1800001, 0x400000, CRC(adfc50e3) SHA1(7d7ee874355b5aa75ad9c9a5c9c3df98d098d85e) )
+ROM_END
+
+ROM_START( samsho4ew ) /* Samurai Shodown IV - Colour fix / Hack by Eddids and Wesker - (Can choose Zankuro Minazuki - colour correction P2/P3/P4 for Zankuro Minazuki) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "222ew.p1", 0x000000, 0x100000, CRC(E76CDD8F) SHA1(025E574C0160EAF9A2754B8DA549DDE6A03EF98D) )
+ ROM_LOAD16_WORD_SWAP( "222-p2.sp2", 0x100000, 0x400000, CRC(b023cd8b) SHA1(35b4cec9858225f90acdfa16ed8a3017d0d08327) )
+
+ NEO_SFIX_128K( "222-s1.s1", CRC(8d3d3bf9) SHA1(9975ed9b458bdd14e23451d2534153f68a5e4e6c) )
+
+ NEO_BIOS_AUDIO_128K( "222-m1.m1", CRC(7615bc1b) SHA1(b936f7b341f6fe0921b4c41049734684583e3596) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "222-v1.v1", 0x000000, 0x400000, CRC(7d6ba95f) SHA1(03cb4e0d770e0b332b07b64cacef624460b84c78) )
+ ROM_LOAD( "222-v2.v2", 0x400000, 0x400000, CRC(6c33bb5d) SHA1(fd5d4e08a962dd0d22c52c91bad5ec7f23cfb901) )
+ ROM_LOAD( "222-v3.v3", 0x800000, 0x200000, CRC(831ea8c0) SHA1(f2987b7d09bdc4311e972ce8a9ab7ca9802db4db) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "222-c1.c1", 0x0000000, 0x400000, CRC(68f2ed95) SHA1(c0a02df012cd25bcfe341770ea861a80294148cb) )
+ ROM_LOAD16_BYTE( "222-c2.c2", 0x0000001, 0x400000, CRC(a6e9aff0) SHA1(15addca49951ed53fa3c000c8d7cd327d012a620) )
+ ROM_LOAD16_BYTE( "222-c3.c3", 0x0800000, 0x400000, CRC(c91b40f4) SHA1(dcda45e0336204e3e024de08edfd0a3217bc1fdd) )
+ ROM_LOAD16_BYTE( "222-c4.c4", 0x0800001, 0x400000, CRC(359510a4) SHA1(b6642677ebdff7788263266402080272b8a66b15) )
+ ROM_LOAD16_BYTE( "222-c5.c5", 0x1000000, 0x400000, CRC(9cfbb22d) SHA1(789c32f917d0c6e38601cd390a7bf9d803131a4a) )
+ ROM_LOAD16_BYTE( "222-c6.c6", 0x1000001, 0x400000, CRC(685efc32) SHA1(db21ba1c7e3631ce0f1cb6f503ae7e0e043ff71b) )
+ ROM_LOAD16_BYTE( "222-c7.c7", 0x1800000, 0x400000, CRC(d0f86f0d) SHA1(32502d71c2ab1469c492b6b382bf2bb3f85981d9) )
+ ROM_LOAD16_BYTE( "222-c8.c8", 0x1800001, 0x400000, CRC(adfc50e3) SHA1(7d7ee874355b5aa75ad9c9a5c9c3df98d098d85e) )
+ROM_END
+
+ROM_START( samsho4fc ) /* Samurai Shodown IV - Boss hack by FCHT */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "222fc.p1", 0x000000, 0x100000, CRC(7d7c973c) SHA1(bef2d2795ae536d3d16ebcd3cc6a33a7b737b74b) )
+ ROM_LOAD16_WORD_SWAP( "222-p2.sp2", 0x100000, 0x400000, CRC(b023cd8b) SHA1(35b4cec9858225f90acdfa16ed8a3017d0d08327) )
+
+ NEO_SFIX_128K( "222bh.s1", CRC(d0906101) SHA1(16873a82c408a5585d4e424e953b451981a8d6b2) )
+
+ NEO_BIOS_AUDIO_128K( "222-m1.m1", CRC(7615bc1b) SHA1(b936f7b341f6fe0921b4c41049734684583e3596) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "222-v1.v1", 0x000000, 0x400000, CRC(7d6ba95f) SHA1(03cb4e0d770e0b332b07b64cacef624460b84c78) )
+ ROM_LOAD( "222-v2.v2", 0x400000, 0x400000, CRC(6c33bb5d) SHA1(fd5d4e08a962dd0d22c52c91bad5ec7f23cfb901) )
+ ROM_LOAD( "222-v3.v3", 0x800000, 0x200000, CRC(831ea8c0) SHA1(f2987b7d09bdc4311e972ce8a9ab7ca9802db4db) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "222-c1.c1", 0x0000000, 0x400000, CRC(68f2ed95) SHA1(c0a02df012cd25bcfe341770ea861a80294148cb) )
+ ROM_LOAD16_BYTE( "222-c2.c2", 0x0000001, 0x400000, CRC(a6e9aff0) SHA1(15addca49951ed53fa3c000c8d7cd327d012a620) )
+ ROM_LOAD16_BYTE( "222-c3.c3", 0x0800000, 0x400000, CRC(c91b40f4) SHA1(dcda45e0336204e3e024de08edfd0a3217bc1fdd) )
+ ROM_LOAD16_BYTE( "222-c4.c4", 0x0800001, 0x400000, CRC(359510a4) SHA1(b6642677ebdff7788263266402080272b8a66b15) )
+ ROM_LOAD16_BYTE( "222-c5.c5", 0x1000000, 0x400000, CRC(9cfbb22d) SHA1(789c32f917d0c6e38601cd390a7bf9d803131a4a) )
+ ROM_LOAD16_BYTE( "222-c6.c6", 0x1000001, 0x400000, CRC(685efc32) SHA1(db21ba1c7e3631ce0f1cb6f503ae7e0e043ff71b) )
+ ROM_LOAD16_BYTE( "222-c7.c7", 0x1800000, 0x400000, CRC(d0f86f0d) SHA1(32502d71c2ab1469c492b6b382bf2bb3f85981d9) )
+ ROM_LOAD16_BYTE( "222-c8.c8", 0x1800001, 0x400000, CRC(adfc50e3) SHA1(7d7ee874355b5aa75ad9c9a5c9c3df98d098d85e) )
+ROM_END
+
+ROM_START( samsho4kw ) /* Samurai Shodown IV - Enhance by Fighters Kim and Wesker - (Can choose Zankuro Minazuki - ultra power hack) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "222kw.p1", 0x000000, 0x100000, CRC(dae6844a) SHA1(4e4641e13d836919013f9a156553f8a2c6af05e6) )
+ ROM_LOAD16_WORD_SWAP( "222-p2.sp2", 0x100000, 0x400000, CRC(b023cd8b) SHA1(35b4cec9858225f90acdfa16ed8a3017d0d08327) )
+
+ NEO_SFIX_128K( "222-s1.s1", CRC(8d3d3bf9) SHA1(9975ed9b458bdd14e23451d2534153f68a5e4e6c) )
+
+ NEO_BIOS_AUDIO_128K( "222-m1.m1", CRC(7615bc1b) SHA1(b936f7b341f6fe0921b4c41049734684583e3596) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "222-v1.v1", 0x000000, 0x400000, CRC(7d6ba95f) SHA1(03cb4e0d770e0b332b07b64cacef624460b84c78) )
+ ROM_LOAD( "222-v2.v2", 0x400000, 0x400000, CRC(6c33bb5d) SHA1(fd5d4e08a962dd0d22c52c91bad5ec7f23cfb901) )
+ ROM_LOAD( "222-v3.v3", 0x800000, 0x200000, CRC(831ea8c0) SHA1(f2987b7d09bdc4311e972ce8a9ab7ca9802db4db) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "222-c1.c1", 0x0000000, 0x400000, CRC(68f2ed95) SHA1(c0a02df012cd25bcfe341770ea861a80294148cb) )
+ ROM_LOAD16_BYTE( "222-c2.c2", 0x0000001, 0x400000, CRC(a6e9aff0) SHA1(15addca49951ed53fa3c000c8d7cd327d012a620) )
+ ROM_LOAD16_BYTE( "222-c3.c3", 0x0800000, 0x400000, CRC(c91b40f4) SHA1(dcda45e0336204e3e024de08edfd0a3217bc1fdd) )
+ ROM_LOAD16_BYTE( "222-c4.c4", 0x0800001, 0x400000, CRC(359510a4) SHA1(b6642677ebdff7788263266402080272b8a66b15) )
+ ROM_LOAD16_BYTE( "222-c5.c5", 0x1000000, 0x400000, CRC(9cfbb22d) SHA1(789c32f917d0c6e38601cd390a7bf9d803131a4a) )
+ ROM_LOAD16_BYTE( "222-c6.c6", 0x1000001, 0x400000, CRC(685efc32) SHA1(db21ba1c7e3631ce0f1cb6f503ae7e0e043ff71b) )
+ ROM_LOAD16_BYTE( "222-c7.c7", 0x1800000, 0x400000, CRC(d0f86f0d) SHA1(32502d71c2ab1469c492b6b382bf2bb3f85981d9) )
+ ROM_LOAD16_BYTE( "222-c8.c8", 0x1800001, 0x400000, CRC(adfc50e3) SHA1(7d7ee874355b5aa75ad9c9a5c9c3df98d098d85e) )
+ROM_END
+
+ROM_START( samsho4kz ) /* Samurai Shodown IV - Enhance by Fighters Kim and Zhangshee - (Can choose Zankuro Minazuki - ultra power hack) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "222kz.p1", 0x000000, 0x100000, CRC(41503ba4) SHA1(c741e6f341baee8bbf1fdf64b7b144f9e4f120cc) )
+ ROM_LOAD16_WORD_SWAP( "222-p2.sp2", 0x100000, 0x400000, CRC(b023cd8b) SHA1(35b4cec9858225f90acdfa16ed8a3017d0d08327) )
+
+ NEO_SFIX_128K( "222-s1.s1", CRC(8d3d3bf9) SHA1(9975ed9b458bdd14e23451d2534153f68a5e4e6c) )
+
+ NEO_BIOS_AUDIO_128K( "222-m1.m1", CRC(7615bc1b) SHA1(b936f7b341f6fe0921b4c41049734684583e3596) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "222-v1.v1", 0x000000, 0x400000, CRC(7d6ba95f) SHA1(03cb4e0d770e0b332b07b64cacef624460b84c78) )
+ ROM_LOAD( "222-v2.v2", 0x400000, 0x400000, CRC(6c33bb5d) SHA1(fd5d4e08a962dd0d22c52c91bad5ec7f23cfb901) )
+ ROM_LOAD( "222-v3.v3", 0x800000, 0x200000, CRC(831ea8c0) SHA1(f2987b7d09bdc4311e972ce8a9ab7ca9802db4db) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "222-c1.c1", 0x0000000, 0x400000, CRC(68f2ed95) SHA1(c0a02df012cd25bcfe341770ea861a80294148cb) )
+ ROM_LOAD16_BYTE( "222-c2.c2", 0x0000001, 0x400000, CRC(a6e9aff0) SHA1(15addca49951ed53fa3c000c8d7cd327d012a620) )
+ ROM_LOAD16_BYTE( "222-c3.c3", 0x0800000, 0x400000, CRC(c91b40f4) SHA1(dcda45e0336204e3e024de08edfd0a3217bc1fdd) )
+ ROM_LOAD16_BYTE( "222-c4.c4", 0x0800001, 0x400000, CRC(359510a4) SHA1(b6642677ebdff7788263266402080272b8a66b15) )
+ ROM_LOAD16_BYTE( "222-c5.c5", 0x1000000, 0x400000, CRC(9cfbb22d) SHA1(789c32f917d0c6e38601cd390a7bf9d803131a4a) )
+ ROM_LOAD16_BYTE( "222-c6.c6", 0x1000001, 0x400000, CRC(685efc32) SHA1(db21ba1c7e3631ce0f1cb6f503ae7e0e043ff71b) )
+ ROM_LOAD16_BYTE( "222-c7.c7", 0x1800000, 0x400000, CRC(d0f86f0d) SHA1(32502d71c2ab1469c492b6b382bf2bb3f85981d9) )
+ ROM_LOAD16_BYTE( "222-c8.c8", 0x1800001, 0x400000, CRC(adfc50e3) SHA1(7d7ee874355b5aa75ad9c9a5c9c3df98d098d85e) )
+ROM_END
+
+ROM_START( samsho4mb )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "222mb.p1", 0x000000, 0x100000, CRC(b10572b2) SHA1(3ed79a23ec86a7a2c96ad6422c2b99d5e81b2117) )
+ ROM_LOAD16_WORD_SWAP( "222-p2.sp2", 0x100000, 0x400000, CRC(b023cd8b) SHA1(35b4cec9858225f90acdfa16ed8a3017d0d08327) )
+
+ NEO_SFIX_128K( "222-s1.s1", CRC(8d3d3bf9) SHA1(9975ed9b458bdd14e23451d2534153f68a5e4e6c) )
+
+ NEO_BIOS_AUDIO_128K( "222-m1.m1", CRC(7615bc1b) SHA1(b936f7b341f6fe0921b4c41049734684583e3596) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "222-v1.v1", 0x000000, 0x400000, CRC(7d6ba95f) SHA1(03cb4e0d770e0b332b07b64cacef624460b84c78) )
+ ROM_LOAD( "222-v2.v2", 0x400000, 0x400000, CRC(6c33bb5d) SHA1(fd5d4e08a962dd0d22c52c91bad5ec7f23cfb901) )
+ ROM_LOAD( "222-v3.v3", 0x800000, 0x200000, CRC(831ea8c0) SHA1(f2987b7d09bdc4311e972ce8a9ab7ca9802db4db) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "222-c1.c1", 0x0000000, 0x400000, CRC(68f2ed95) SHA1(c0a02df012cd25bcfe341770ea861a80294148cb) )
+ ROM_LOAD16_BYTE( "222-c2.c2", 0x0000001, 0x400000, CRC(a6e9aff0) SHA1(15addca49951ed53fa3c000c8d7cd327d012a620) )
+ ROM_LOAD16_BYTE( "222-c3.c3", 0x0800000, 0x400000, CRC(c91b40f4) SHA1(dcda45e0336204e3e024de08edfd0a3217bc1fdd) )
+ ROM_LOAD16_BYTE( "222-c4.c4", 0x0800001, 0x400000, CRC(359510a4) SHA1(b6642677ebdff7788263266402080272b8a66b15) )
+ ROM_LOAD16_BYTE( "222-c5.c5", 0x1000000, 0x400000, CRC(9cfbb22d) SHA1(789c32f917d0c6e38601cd390a7bf9d803131a4a) )
+ ROM_LOAD16_BYTE( "222-c6.c6", 0x1000001, 0x400000, CRC(685efc32) SHA1(db21ba1c7e3631ce0f1cb6f503ae7e0e043ff71b) )
+ ROM_LOAD16_BYTE( "222-c7.c7", 0x1800000, 0x400000, CRC(d0f86f0d) SHA1(32502d71c2ab1469c492b6b382bf2bb3f85981d9) )
+ ROM_LOAD16_BYTE( "222-c8.c8", 0x1800001, 0x400000, CRC(adfc50e3) SHA1(7d7ee874355b5aa75ad9c9a5c9c3df98d098d85e) )
+ROM_END
+
+ROM_START( samsho4pm )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "222pm.p1", 0x000000, 0x100000, CRC(b76aab1e) SHA1(cfba2faa8f81ce4e05813fae290e2d6bd9abeb7c) )
+ ROM_LOAD16_WORD_SWAP( "222-p2.sp2", 0x100000, 0x400000, CRC(b023cd8b) SHA1(35b4cec9858225f90acdfa16ed8a3017d0d08327) )
+
+ NEO_SFIX_128K( "222-s1.s1", CRC(8d3d3bf9) SHA1(9975ed9b458bdd14e23451d2534153f68a5e4e6c) )
+
+ NEO_BIOS_AUDIO_128K( "222-m1.m1", CRC(7615bc1b) SHA1(b936f7b341f6fe0921b4c41049734684583e3596) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "222-v1.v1", 0x000000, 0x400000, CRC(7d6ba95f) SHA1(03cb4e0d770e0b332b07b64cacef624460b84c78) )
+ ROM_LOAD( "222-v2.v2", 0x400000, 0x400000, CRC(6c33bb5d) SHA1(fd5d4e08a962dd0d22c52c91bad5ec7f23cfb901) )
+ ROM_LOAD( "222-v3.v3", 0x800000, 0x200000, CRC(831ea8c0) SHA1(f2987b7d09bdc4311e972ce8a9ab7ca9802db4db) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "222-c1.c1", 0x0000000, 0x400000, CRC(68f2ed95) SHA1(c0a02df012cd25bcfe341770ea861a80294148cb) )
+ ROM_LOAD16_BYTE( "222-c2.c2", 0x0000001, 0x400000, CRC(a6e9aff0) SHA1(15addca49951ed53fa3c000c8d7cd327d012a620) )
+ ROM_LOAD16_BYTE( "222-c3.c3", 0x0800000, 0x400000, CRC(c91b40f4) SHA1(dcda45e0336204e3e024de08edfd0a3217bc1fdd) )
+ ROM_LOAD16_BYTE( "222-c4.c4", 0x0800001, 0x400000, CRC(359510a4) SHA1(b6642677ebdff7788263266402080272b8a66b15) )
+ ROM_LOAD16_BYTE( "222-c5.c5", 0x1000000, 0x400000, CRC(9cfbb22d) SHA1(789c32f917d0c6e38601cd390a7bf9d803131a4a) )
+ ROM_LOAD16_BYTE( "222-c6.c6", 0x1000001, 0x400000, CRC(685efc32) SHA1(db21ba1c7e3631ce0f1cb6f503ae7e0e043ff71b) )
+ ROM_LOAD16_BYTE( "222-c7.c7", 0x1800000, 0x400000, CRC(d0f86f0d) SHA1(32502d71c2ab1469c492b6b382bf2bb3f85981d9) )
+ ROM_LOAD16_BYTE( "222-c8.c8", 0x1800001, 0x400000, CRC(adfc50e3) SHA1(7d7ee874355b5aa75ad9c9a5c9c3df98d098d85e) )
+ROM_END
+
+ROM_START( samsho4ps )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "222ps.p1", 0x000000, 0x100000, CRC(70dd94fe) SHA1(611b84be241eb81a39a29d41779b7dfec6262c8c) )
+ ROM_LOAD16_WORD_SWAP( "222ps.p2", 0x100000, 0x400000, CRC(2c9c64db) SHA1(2a9825bc7577cb1f3128b6a9f41b72bb1228e037) )
+
+ NEO_SFIX_128K( "222-s1.s1", CRC(8d3d3bf9) SHA1(9975ed9b458bdd14e23451d2534153f68a5e4e6c) )
+
+ NEO_BIOS_AUDIO_128K( "222-m1.m1", CRC(7615bc1b) SHA1(b936f7b341f6fe0921b4c41049734684583e3596) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "222-v1.v1", 0x000000, 0x400000, CRC(7d6ba95f) SHA1(03cb4e0d770e0b332b07b64cacef624460b84c78) )
+ ROM_LOAD( "222-v2.v2", 0x400000, 0x400000, CRC(6c33bb5d) SHA1(fd5d4e08a962dd0d22c52c91bad5ec7f23cfb901) )
+ ROM_LOAD( "222-v3.v3", 0x800000, 0x200000, CRC(831ea8c0) SHA1(f2987b7d09bdc4311e972ce8a9ab7ca9802db4db) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "222-c1.c1", 0x0000000, 0x400000, CRC(68f2ed95) SHA1(c0a02df012cd25bcfe341770ea861a80294148cb) )
+ ROM_LOAD16_BYTE( "222-c2.c2", 0x0000001, 0x400000, CRC(a6e9aff0) SHA1(15addca49951ed53fa3c000c8d7cd327d012a620) )
+ ROM_LOAD16_BYTE( "222-c3.c3", 0x0800000, 0x400000, CRC(c91b40f4) SHA1(dcda45e0336204e3e024de08edfd0a3217bc1fdd) )
+ ROM_LOAD16_BYTE( "222-c4.c4", 0x0800001, 0x400000, CRC(359510a4) SHA1(b6642677ebdff7788263266402080272b8a66b15) )
+ ROM_LOAD16_BYTE( "222-c5.c5", 0x1000000, 0x400000, CRC(9cfbb22d) SHA1(789c32f917d0c6e38601cd390a7bf9d803131a4a) )
+ ROM_LOAD16_BYTE( "222-c6.c6", 0x1000001, 0x400000, CRC(685efc32) SHA1(db21ba1c7e3631ce0f1cb6f503ae7e0e043ff71b) )
+ ROM_LOAD16_BYTE( "222ps.c7", 0x1800000, 0x400000, CRC(ecb13c24) SHA1(5f7a62e04a7c2bed52cc4d6377f41d1dbe55f6ee) )
+ ROM_LOAD16_BYTE( "222ps.c8", 0x1800001, 0x400000, CRC(0f9a0bda) SHA1(6093f607dbcc9e1475bb1bb8e713b23fcd99c486) )
+ROM_END
+
+ROM_START( samsho4s2 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "222s2.p1", 0x000000, 0x100000, CRC(baf26b5e) SHA1(028821e26a2b9ea038c727e9a9e057f176c2e634) )
+ ROM_LOAD16_WORD_SWAP( "222-p2.sp2", 0x100000, 0x400000, CRC(b023cd8b) SHA1(35b4cec9858225f90acdfa16ed8a3017d0d08327) )
+
+ NEO_SFIX_128K( "222-s1.s1", CRC(8d3d3bf9) SHA1(9975ed9b458bdd14e23451d2534153f68a5e4e6c) )
+
+ NEO_BIOS_AUDIO_128K( "222-m1.m1", CRC(7615bc1b) SHA1(b936f7b341f6fe0921b4c41049734684583e3596) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "222-v1.v1", 0x000000, 0x400000, CRC(7d6ba95f) SHA1(03cb4e0d770e0b332b07b64cacef624460b84c78) )
+ ROM_LOAD( "222-v2.v2", 0x400000, 0x400000, CRC(6c33bb5d) SHA1(fd5d4e08a962dd0d22c52c91bad5ec7f23cfb901) )
+ ROM_LOAD( "222-v3.v3", 0x800000, 0x200000, CRC(831ea8c0) SHA1(f2987b7d09bdc4311e972ce8a9ab7ca9802db4db) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "222-c1.c1", 0x0000000, 0x400000, CRC(68f2ed95) SHA1(c0a02df012cd25bcfe341770ea861a80294148cb) )
+ ROM_LOAD16_BYTE( "222-c2.c2", 0x0000001, 0x400000, CRC(a6e9aff0) SHA1(15addca49951ed53fa3c000c8d7cd327d012a620) )
+ ROM_LOAD16_BYTE( "222-c3.c3", 0x0800000, 0x400000, CRC(c91b40f4) SHA1(dcda45e0336204e3e024de08edfd0a3217bc1fdd) )
+ ROM_LOAD16_BYTE( "222-c4.c4", 0x0800001, 0x400000, CRC(359510a4) SHA1(b6642677ebdff7788263266402080272b8a66b15) )
+ ROM_LOAD16_BYTE( "222-c5.c5", 0x1000000, 0x400000, CRC(9cfbb22d) SHA1(789c32f917d0c6e38601cd390a7bf9d803131a4a) )
+ ROM_LOAD16_BYTE( "222-c6.c6", 0x1000001, 0x400000, CRC(685efc32) SHA1(db21ba1c7e3631ce0f1cb6f503ae7e0e043ff71b) )
+ ROM_LOAD16_BYTE( "222-c7.c7", 0x1800000, 0x400000, CRC(d0f86f0d) SHA1(32502d71c2ab1469c492b6b382bf2bb3f85981d9) )
+ ROM_LOAD16_BYTE( "222-c8.c8", 0x1800001, 0x400000, CRC(adfc50e3) SHA1(7d7ee874355b5aa75ad9c9a5c9c3df98d098d85e) )
+ROM_END
+
+ROM_START( samsho4sp )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "222sp.p1", 0x000000, 0x100000, CRC(6e98579a) SHA1(89cefbbfe161ac52c71db12088d4fa99161b5aa9) )
+ ROM_LOAD16_WORD_SWAP( "222ps.p2", 0x100000, 0x400000, CRC(2c9c64db) SHA1(2a9825bc7577cb1f3128b6a9f41b72bb1228e037) )
+
+ NEO_SFIX_128K( "222-s1.s1", CRC(8d3d3bf9) SHA1(9975ed9b458bdd14e23451d2534153f68a5e4e6c) )
+
+ NEO_BIOS_AUDIO_128K( "222-m1.m1", CRC(7615bc1b) SHA1(b936f7b341f6fe0921b4c41049734684583e3596) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "222-v1.v1", 0x000000, 0x400000, CRC(7d6ba95f) SHA1(03cb4e0d770e0b332b07b64cacef624460b84c78) )
+ ROM_LOAD( "222-v2.v2", 0x400000, 0x400000, CRC(6c33bb5d) SHA1(fd5d4e08a962dd0d22c52c91bad5ec7f23cfb901) )
+ ROM_LOAD( "222-v3.v3", 0x800000, 0x200000, CRC(831ea8c0) SHA1(f2987b7d09bdc4311e972ce8a9ab7ca9802db4db) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "222-c1.c1", 0x0000000, 0x400000, CRC(68f2ed95) SHA1(c0a02df012cd25bcfe341770ea861a80294148cb) )
+ ROM_LOAD16_BYTE( "222-c2.c2", 0x0000001, 0x400000, CRC(a6e9aff0) SHA1(15addca49951ed53fa3c000c8d7cd327d012a620) )
+ ROM_LOAD16_BYTE( "222-c3.c3", 0x0800000, 0x400000, CRC(c91b40f4) SHA1(dcda45e0336204e3e024de08edfd0a3217bc1fdd) )
+ ROM_LOAD16_BYTE( "222-c4.c4", 0x0800001, 0x400000, CRC(359510a4) SHA1(b6642677ebdff7788263266402080272b8a66b15) )
+ ROM_LOAD16_BYTE( "222-c5.c5", 0x1000000, 0x400000, CRC(9cfbb22d) SHA1(789c32f917d0c6e38601cd390a7bf9d803131a4a) )
+ ROM_LOAD16_BYTE( "222-c6.c6", 0x1000001, 0x400000, CRC(685efc32) SHA1(db21ba1c7e3631ce0f1cb6f503ae7e0e043ff71b) )
+ ROM_LOAD16_BYTE( "222ps.c7", 0x1800000, 0x400000, CRC(ecb13c24) SHA1(5f7a62e04a7c2bed52cc4d6377f41d1dbe55f6ee) )
+ ROM_LOAD16_BYTE( "222ps.c8", 0x1800001, 0x400000, CRC(0f9a0bda) SHA1(6093f607dbcc9e1475bb1bb8e713b23fcd99c486) )
+ROM_END
+
+ROM_START( samsho4wh ) /* Samurai Shodown IV - Hack by Wesker - (Can choose Zankuro Minazuki - final edition) */
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "222wh.p1", 0x000000, 0x100000, CRC(8b8fbb8a) SHA1(75dff66982c4b4e2137fb3058516be516d2c6a73) )
+ ROM_LOAD16_WORD_SWAP( "222-p2.sp2", 0x100000, 0x400000, CRC(b023cd8b) SHA1(35b4cec9858225f90acdfa16ed8a3017d0d08327) )
+
+ NEO_SFIX_128K( "222-s1.s1", CRC(8d3d3bf9) SHA1(9975ed9b458bdd14e23451d2534153f68a5e4e6c) )
+
+ NEO_BIOS_AUDIO_128K( "222-m1.m1", CRC(7615bc1b) SHA1(b936f7b341f6fe0921b4c41049734684583e3596) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "222-v1.v1", 0x000000, 0x400000, CRC(7d6ba95f) SHA1(03cb4e0d770e0b332b07b64cacef624460b84c78) )
+ ROM_LOAD( "222-v2.v2", 0x400000, 0x400000, CRC(6c33bb5d) SHA1(fd5d4e08a962dd0d22c52c91bad5ec7f23cfb901) )
+ ROM_LOAD( "222-v3.v3", 0x800000, 0x200000, CRC(831ea8c0) SHA1(f2987b7d09bdc4311e972ce8a9ab7ca9802db4db) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "222-c1.c1", 0x0000000, 0x400000, CRC(68f2ed95) SHA1(c0a02df012cd25bcfe341770ea861a80294148cb) )
+ ROM_LOAD16_BYTE( "222-c2.c2", 0x0000001, 0x400000, CRC(a6e9aff0) SHA1(15addca49951ed53fa3c000c8d7cd327d012a620) )
+ ROM_LOAD16_BYTE( "222-c3.c3", 0x0800000, 0x400000, CRC(c91b40f4) SHA1(dcda45e0336204e3e024de08edfd0a3217bc1fdd) )
+ ROM_LOAD16_BYTE( "222-c4.c4", 0x0800001, 0x400000, CRC(359510a4) SHA1(b6642677ebdff7788263266402080272b8a66b15) )
+ ROM_LOAD16_BYTE( "222-c5.c5", 0x1000000, 0x400000, CRC(9cfbb22d) SHA1(789c32f917d0c6e38601cd390a7bf9d803131a4a) )
+ ROM_LOAD16_BYTE( "222-c6.c6", 0x1000001, 0x400000, CRC(685efc32) SHA1(db21ba1c7e3631ce0f1cb6f503ae7e0e043ff71b) )
+ ROM_LOAD16_BYTE( "222-c7.c7", 0x1800000, 0x400000, CRC(d0f86f0d) SHA1(32502d71c2ab1469c492b6b382bf2bb3f85981d9) )
+ ROM_LOAD16_BYTE( "222-c8.c8", 0x1800001, 0x400000, CRC(adfc50e3) SHA1(7d7ee874355b5aa75ad9c9a5c9c3df98d098d85e) )
+ROM_END
+
+ROM_START( samsho4zk )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "222zk.p1", 0x000000, 0x100000, CRC(6ae69ad2) SHA1(d2ae4c05a1b0247fcbd8153d9e2ea05edf456d19) )
+ ROM_LOAD16_WORD_SWAP( "222-p2.sp2", 0x100000, 0x400000, CRC(b023cd8b) SHA1(35b4cec9858225f90acdfa16ed8a3017d0d08327) )
+
+ NEO_SFIX_128K( "222-s1.s1", CRC(8d3d3bf9) SHA1(9975ed9b458bdd14e23451d2534153f68a5e4e6c) )
+
+ NEO_BIOS_AUDIO_128K( "222-m1.m1", CRC(7615bc1b) SHA1(b936f7b341f6fe0921b4c41049734684583e3596) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "222-v1.v1", 0x000000, 0x400000, CRC(7d6ba95f) SHA1(03cb4e0d770e0b332b07b64cacef624460b84c78) )
+ ROM_LOAD( "222-v2.v2", 0x400000, 0x400000, CRC(6c33bb5d) SHA1(fd5d4e08a962dd0d22c52c91bad5ec7f23cfb901) )
+ ROM_LOAD( "222-v3.v3", 0x800000, 0x200000, CRC(831ea8c0) SHA1(f2987b7d09bdc4311e972ce8a9ab7ca9802db4db) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "222-c1.c1", 0x0000000, 0x400000, CRC(68f2ed95) SHA1(c0a02df012cd25bcfe341770ea861a80294148cb) )
+ ROM_LOAD16_BYTE( "222-c2.c2", 0x0000001, 0x400000, CRC(a6e9aff0) SHA1(15addca49951ed53fa3c000c8d7cd327d012a620) )
+ ROM_LOAD16_BYTE( "222-c3.c3", 0x0800000, 0x400000, CRC(c91b40f4) SHA1(dcda45e0336204e3e024de08edfd0a3217bc1fdd) )
+ ROM_LOAD16_BYTE( "222-c4.c4", 0x0800001, 0x400000, CRC(359510a4) SHA1(b6642677ebdff7788263266402080272b8a66b15) )
+ ROM_LOAD16_BYTE( "222-c5.c5", 0x1000000, 0x400000, CRC(9cfbb22d) SHA1(789c32f917d0c6e38601cd390a7bf9d803131a4a) )
+ ROM_LOAD16_BYTE( "222-c6.c6", 0x1000001, 0x400000, CRC(685efc32) SHA1(db21ba1c7e3631ce0f1cb6f503ae7e0e043ff71b) )
+ ROM_LOAD16_BYTE( "222-c7.c7", 0x1800000, 0x400000, CRC(d0f86f0d) SHA1(32502d71c2ab1469c492b6b382bf2bb3f85981d9) )
+ ROM_LOAD16_BYTE( "222-c8.c8", 0x1800001, 0x400000, CRC(adfc50e3) SHA1(7d7ee874355b5aa75ad9c9a5c9c3df98d098d85e) )
+ROM_END
+
+
+ROM_START( samsho5ba )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "270ba.p1", 0x000000, 0x400000, CRC(28d9f763) SHA1(21e5cc1cd20a3a9eef7c4d4da87480654cdeceb4) )
+ ROM_LOAD16_WORD_SWAP( "270bs.p2", 0x400000, 0x400000, CRC(91979dee) SHA1(0e03a2a2e3aa493bd839f3754260ddd3935ba25b) )
+
+ NEO_SFIX_128K( "270ch.s1", CRC(cd025baa) SHA1(2ebdff1f40ec31b1842ec5399145869b00c8c4b2) )
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "270-m1.m1", CRC(49c9901a) SHA1(2623e9765a0eba58fee2de72851e9dc502344a3d) )
+
+ ROM_REGION( 0X1000000, "ymsnd", 0 )
+ ROM_LOAD( "270bs.v1", 0x000000, 0x800000, CRC(809c7617) SHA1(b6b542eb4c1078016fcd78d050433dc8e3029329) )
+ ROM_LOAD( "270bs.v2", 0x800000, 0x800000, CRC(42671607) SHA1(4fa64b5a9349e9c3d5d60806c9da4a2b6beff18a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "270ba.c1", 0x0000000, 0x800000, CRC(102ef439) SHA1(512c4b1c2c3d6fa532a4ebc0cec2127c5f3f6aea) )
+ ROM_LOAD16_BYTE( "270ba.c2", 0x0000001, 0x800000, CRC(4986bdd7) SHA1(644666d2ddb99ba67a77d6fccea4fb229a4ccc21) )
+ ROM_LOAD16_BYTE( "270ba.c3", 0x1000000, 0x800000, CRC(149ed711) SHA1(365d742ad191d6a912885e04304959d16c701eca) )
+ ROM_LOAD16_BYTE( "270ba.c4", 0x1000001, 0x800000, CRC(2e2e0e1d) SHA1(7891dd1f269c757dfe3c668c0156b1caa6ede90a) )
+ ROM_LOAD16_BYTE( "270ba.c5", 0x2000000, 0x800000, CRC(7eb555c1) SHA1(d137c290b5fab64152e8124068654174482e2db9) )
+ ROM_LOAD16_BYTE( "270ba.c6", 0x2000001, 0x800000, CRC(6471b021) SHA1(1d7cc33f07688b215706ce73ca03abdf7d654ba1) )
+ ROM_LOAD16_BYTE( "270ba.c7", 0x3000000, 0x800000, CRC(37de7738) SHA1(9bb85e77469681952d0064f1bb57534469fbaf8e) )
+ ROM_LOAD16_BYTE( "270ba.c8", 0x3000001, 0x800000, CRC(74dca282) SHA1(819488133ee2bb27cbdb2d9d53226d61c53f51d4) )
+ROM_END
+
+ROM_START( samsho5bd )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "270bd.p1", 0x000000, 0x800000, CRC(611a6687) SHA1(55ff9122d64efd276e22a66fa443e0bebd079928) )
+
+ NEO_SFIX_128K( "270bd.s1", CRC(33227d62) SHA1(5f4b7ab642175657af212304783a1df98415ed44) )
+
+ NEO_BIOS_AUDIO_128K( "270bd.m1", CRC(18114fb1) SHA1(016dc2f328340f3637a9bff373a20973df29f6b8) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "270bd.v1", 0x000000, 0x400000, CRC(6849136c) SHA1(5f8e7cc33b8d994165dd577a0d7e0eb2df16f07e) )
+ ROM_LOAD( "270bd.v2", 0x400000, 0x400000, CRC(222e1774) SHA1(3c1b2f37d4f2fa2cd7d6a6f04b3aedf6b2f4b089) )
+ ROM_LOAD( "270bd.v3", 0x800000, 0x400000, CRC(cd9e7adc) SHA1(941ae992c004594885f635fdea3ac1c51bb5d469) )
+ ROM_LOAD( "270bd.v4", 0xc00000, 0x400000, CRC(8b305cac) SHA1(938e2600c0c2b3d4a0a362ef6e91850c32217f18) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "270bd.c1", 0x0000000, 0x800000, CRC(4e7bdea1) SHA1(2376386e0e82820c0853cf39e27167f8c181980c) )
+ ROM_LOAD16_BYTE( "270bd.c2", 0x0000001, 0x800000, CRC(7b444985) SHA1(1f2941f6a1bee6391002b88277edcfa7554f10f3) )
+ ROM_LOAD16_BYTE( "270bd.c3", 0x1000000, 0x800000, CRC(8c709a9b) SHA1(92a03ccf08d301955b06f3323417b4f20d773428) )
+ ROM_LOAD16_BYTE( "270bd.c4", 0x1000001, 0x800000, CRC(cfd53f5c) SHA1(773b03fb6faa958eddee6b001ebb619f8a8d5b30) )
+ ROM_LOAD16_BYTE( "270bd.c5", 0x2000000, 0x800000, CRC(c026d318) SHA1(fec9a9309afe94f21e0f35ec992a39ce51deefc2) )
+ ROM_LOAD16_BYTE( "270bd.c6", 0x2000001, 0x800000, CRC(b3d9d204) SHA1(9dbcf6c179ea3a04c8ed26416e4e91324fd1cf11) )
+ ROM_LOAD16_BYTE( "270bd.c7", 0x3000000, 0x800000, CRC(fe03a025) SHA1(3a052869f6b46cffc5d1ea497b0d5f1f4d1874c2) )
+ ROM_LOAD16_BYTE( "270bd.c8", 0x3000001, 0x800000, CRC(89db2d34) SHA1(cd3f1e4ef631704c1078c915135a4510891bd429) )
+ROM_END
+
+ROM_START( samsho5bh )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "270bh.p1", 0x000000, 0x400000, CRC(0afe5db8) SHA1(ad7572d58fdda785b12941215b5e613a332e87c7) )
+ ROM_LOAD16_WORD_SWAP( "270bs.p2", 0x400000, 0x400000, CRC(91979dee) SHA1(0e03a2a2e3aa493bd839f3754260ddd3935ba25b) )
+
+ NEO_SFIX_128K( "270ch.s1", CRC(cd025baa) SHA1(2ebdff1f40ec31b1842ec5399145869b00c8c4b2) )
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "270-m1.m1", CRC(49c9901a) SHA1(2623e9765a0eba58fee2de72851e9dc502344a3d) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "270-v1.v1", 0x000000, 0x800000, CRC(62e434eb) SHA1(1985f5e88f8e866f9683b6cea901aa28c04b80bf) )
+ ROM_LOAD( "270-v2.v2", 0x800000, 0x800000, CRC(180f3c9a) SHA1(6d7dc2605ead6e78704efa127e7e0dfe621e2c54) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "270-c1.c1", 0x0000000, 0x800000, CRC(14ffffac) SHA1(2ccebfdd0c7907679ae95bf6eca85b8d322441e2) )
+ ROM_LOAD16_BYTE( "270-c2.c2", 0x0000001, 0x800000, CRC(401f7299) SHA1(94e48cdf1682b1250f53c59f3f71d995e928d17b) )
+ ROM_LOAD16_BYTE( "270-c3.c3", 0x1000000, 0x800000, CRC(838f0260) SHA1(d5c8d3c6e7221d04e0b20882a847752e5ba95635) )
+ ROM_LOAD16_BYTE( "270-c4.c4", 0x1000001, 0x800000, CRC(041560a5) SHA1(d165e533699f15b1e079c82f97db3542b3a7dd66) )
+ ROM_LOAD16_BYTE( "270-c5.c5", 0x2000000, 0x800000, CRC(bd30b52d) SHA1(9f8282e684415b4045218cf764ef7d75a70e3240) )
+ ROM_LOAD16_BYTE( "270-c6.c6", 0x2000001, 0x800000, CRC(86a69c70) SHA1(526732cdb408cf680af9da39057bce6a4dfb5e13) )
+ ROM_LOAD16_BYTE( "270-c7.c7", 0x3000000, 0x800000, CRC(d28fbc3c) SHA1(a82a6ba6760fad14d9309f9147cb7d80bd6f70fc) )
+ ROM_LOAD16_BYTE( "270-c8.c8", 0x3000001, 0x800000, CRC(02c530a6) SHA1(7a3fafa6075506c6ef78cc4ec2cb72118ec83cb9) )
+ROM_END
+
+ROM_START( samsho5bs )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "270bs.p1", 0x000000, 0x400000, CRC(a00cceba) SHA1(de91db34e0068dd40e9b151f0d0a7f609e880d77) )
+ ROM_LOAD16_WORD_SWAP( "270bs.p2", 0x400000, 0x400000, CRC(91979dee) SHA1(0e03a2a2e3aa493bd839f3754260ddd3935ba25b) )
+
+ NEO_SFIX_128K( "270bs.s1", CRC(2ad6048b) SHA1(173c8561f0633e0d6e4a9750e632f2e46766e674) )
+
+ NEO_BIOS_AUDIO_256K( "270d.m1", CRC(e94a5e2b) SHA1(53ef2ad6583060af69fdde73576e09ba88affa55) ) /* not a 100% match for encrypted version */
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "270bs.v1", 0x000000, 0x800000, CRC(809c7617) SHA1(b6b542eb4c1078016fcd78d050433dc8e3029329) )
+ ROM_LOAD( "270bs.v2", 0x800000, 0x800000, CRC(42671607) SHA1(4fa64b5a9349e9c3d5d60806c9da4a2b6beff18a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "270hd.c1", 0x0000000, 0x800000, CRC(9adec562) SHA1(069d73384dc320c38db420c8b04db86ac0b76101) )
+ ROM_LOAD16_BYTE( "270hd.c2", 0x0000001, 0x800000, CRC(ac0309e5) SHA1(9795fb2fa9eea617ec25656cfa9cd507899ec4fe) )
+ ROM_LOAD16_BYTE( "270hd.c3", 0x1000000, 0x800000, CRC(82db9dae) SHA1(0206e1cc2c5f0fbbc074a93add5a44f645951d0c) )
+ ROM_LOAD16_BYTE( "270hd.c4", 0x1000001, 0x800000, CRC(f8041153) SHA1(55705c725aff949e668c24b23e2e4cdb4ecf78ae) )
+ ROM_LOAD16_BYTE( "270hd.c5", 0x2000000, 0x800000, CRC(e689d62d) SHA1(001a59bb1bb14f263d16f8b7e977cd49e44e265a) )
+ ROM_LOAD16_BYTE( "270hd.c6", 0x2000001, 0x800000, CRC(a993bdcf) SHA1(d15980afe6d4b33506918186a2efc3f51b2347ca) )
+ ROM_LOAD16_BYTE( "270bs.c7", 0x3000000, 0x800000, CRC(02914b0b) SHA1(eef388cf6ceaca07f807943a0d63ea29727dd086) )
+ ROM_LOAD16_BYTE( "270bs.c8", 0x3000001, 0x800000, CRC(e874ac8b) SHA1(45c65154df10c26aa138c7973075c3327e5f908e) )
+ROM_END
+
+ROM_START( samsho5ch )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "270ch.p1", 0x000000, 0x800000, CRC(22b374ea) SHA1(dab8e0589210488feb374e80712ab511f5117066) )
+
+ NEO_SFIX_128K( "270ch.s1", CRC(cd025baa) SHA1(2ebdff1f40ec31b1842ec5399145869b00c8c4b2) )
+
+ NEO_BIOS_AUDIO_512K( "270ch.m1", CRC(0ca49586) SHA1(8610918af611d8514678fee1617aa47974b604e6) )
+
+ ROM_REGION( 0X1000000, "ymsnd", 0 )
+ ROM_LOAD( "270bs.v1", 0x000000, 0x800000, CRC(809c7617) SHA1(b6b542eb4c1078016fcd78d050433dc8e3029329) )
+ ROM_LOAD( "270bs.v2", 0x800000, 0x800000, CRC(42671607) SHA1(4fa64b5a9349e9c3d5d60806c9da4a2b6beff18a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "270ch.c1", 0x0000000, 0x800000, CRC(a2fe269f) SHA1(95ea363061bf5f4537ba885c0fbd894985f0a93a) )
+ ROM_LOAD16_BYTE( "270hd.c2", 0x0000001, 0x800000, CRC(ac0309e5) SHA1(9795fb2fa9eea617ec25656cfa9cd507899ec4fe) )
+ ROM_LOAD16_BYTE( "270ch.c3", 0x1000000, 0x800000, CRC(8275bb23) SHA1(101e784f273cce19158f81d23a8f581750ff7512) )
+ ROM_LOAD16_BYTE( "270ch.c4", 0x1000001, 0x800000, CRC(7a69cc1f) SHA1(2b63b5093c07aa7585093617c179af65b5015305) )
+ ROM_LOAD16_BYTE( "270ch.c5", 0x2000000, 0x800000, CRC(5298d011) SHA1(2090deb8341efc682b1dc55fb55e85a091d9ce2c) )
+ ROM_LOAD16_BYTE( "270ch.c6", 0x2000001, 0x800000, CRC(a33c04df) SHA1(31b14f8be2ff108337c8d672996aa650edd2307f) )
+ ROM_LOAD16_BYTE( "270ch.c7", 0x3000000, 0x800000, CRC(61025f97) SHA1(5ba6432aa35b1c27bc34ebd349ff47154dceb9a8) )
+ ROM_LOAD16_BYTE( "270ch.c8", 0x3000001, 0x800000, CRC(df3993ce) SHA1(580327300ff84ce805694b06f8036eeffef4c046) )
+ROM_END
+
+ROM_START( samsho5d )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "270-p1.p1", 0x000000, 0x400000, CRC(4a2a09e6) SHA1(2644DE02CDAB8CCC605488A7C76B8C9CD1D5BCB9) )
+ ROM_LOAD16_WORD_SWAP( "270-p2.sp2", 0x400000, 0x400000, CRC(e0c74c85) SHA1(DF24A4EE76438E40C2F04A714175A7F85CACDFE0) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_256K( "270d.m1", CRC(e94a5e2b) SHA1(53ef2ad6583060af69fdde73576e09ba88affa55) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "270-v1.v1", 0x000000, 0x800000, CRC(62e434eb) SHA1(1985f5e88f8e866f9683b6cea901aa28c04b80bf) )
+ ROM_LOAD( "270-v2.v2", 0x800000, 0x800000, CRC(180f3c9a) SHA1(6d7dc2605ead6e78704efa127e7e0dfe621e2c54) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "270d.c1", 0x0000000, 0x800000, CRC(726abb40) SHA1(86A08C1266FB057D9A30A3AC259D526EC10D2FFA) )
+ ROM_LOAD16_BYTE( "270d.c2", 0x0000001, 0x800000, CRC(76806188) SHA1(B448C06D7311791BAD09F0828FD3E56326DD7737) )
+ ROM_LOAD16_BYTE( "270hd.c3", 0x1000000, 0x800000, CRC(82db9dae) SHA1(0206E1CC2C5F0FBBC074A93ADD5A44F645951D0C) )
+ ROM_LOAD16_BYTE( "270hd.c4", 0x1000001, 0x800000, CRC(f8041153) SHA1(55705C725AFF949E668C24B23E2E4CDB4ECF78AE) )
+ ROM_LOAD16_BYTE( "270d.c5", 0x2000000, 0x800000, CRC(2219186a) SHA1(ACE6D04DA578F2A5E7B7A405E0CBB31073070185) )
+ ROM_LOAD16_BYTE( "270d.c6", 0x2000001, 0x800000, CRC(d225120d) SHA1(AE28664486135949DD16BB91E8F35936BDA725A0) )
+ ROM_LOAD16_BYTE( "270d.c7", 0x3000000, 0x800000, CRC(d245d493) SHA1(C0E89F863B9B592FF5F0F813D9B127CEE31132D1) )
+ ROM_LOAD16_BYTE( "270d.c8", 0x3000001, 0x800000, CRC(eb06c9cc) SHA1(1DFD45407586DC7F574189BBC0D8AE1967D0A089) )
+ROM_END
+
+ROM_START( samsho5d1 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "270-p1.p1", 0x000000, 0x400000, CRC(4a2a09e6) SHA1(2644de02cdab8ccc605488a7c76b8c9cd1d5bcb9) )
+ ROM_LOAD16_WORD_SWAP( "270-p2.sp2", 0x400000, 0x400000, CRC(e0c74c85) SHA1(df24a4ee76438e40c2f04a714175a7f85cacdfe0) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "270-m1.m1", CRC(49c9901a) SHA1(2623e9765a0eba58fee2de72851e9dc502344a3d) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "270-v1.v1", 0x000000, 0x800000, CRC(62e434eb) SHA1(1985f5e88f8e866f9683b6cea901aa28c04b80bf) )
+ ROM_LOAD( "270-v2.v2", 0x800000, 0x800000, CRC(180f3c9a) SHA1(6d7dc2605ead6e78704efa127e7e0dfe621e2c54) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "270hd.c1", 0x0000000, 0x800000, CRC(9adec562) SHA1(069d73384dc320c38db420c8b04db86ac0b76101) )
+ ROM_LOAD16_BYTE( "270hd.c2", 0x0000001, 0x800000, CRC(ac0309e5) SHA1(9795fb2fa9eea617ec25656cfa9cd507899ec4fe) )
+ ROM_LOAD16_BYTE( "270hd.c3", 0x1000000, 0x800000, CRC(82db9dae) SHA1(0206e1cc2c5f0fbbc074a93add5a44f645951d0c) )
+ ROM_LOAD16_BYTE( "270hd.c4", 0x1000001, 0x800000, CRC(f8041153) SHA1(55705c725aff949e668c24b23e2e4cdb4ecf78ae) )
+ ROM_LOAD16_BYTE( "270hd.c5", 0x2000000, 0x800000, CRC(e689d62d) SHA1(001a59bb1bb14f263d16f8b7e977cd49e44e265a) )
+ ROM_LOAD16_BYTE( "270hd.c6", 0x2000001, 0x800000, CRC(a993bdcf) SHA1(d15980afe6d4b33506918186a2efc3f51b2347ca) )
+ ROM_LOAD16_BYTE( "270hd.c7", 0x3000000, 0x800000, CRC(707d56a0) SHA1(303ecc621305c8fbeece8d599f9382fe82d191ee) )
+ ROM_LOAD16_BYTE( "270hd.c8", 0x3000001, 0x800000, CRC(f5903adc) SHA1(64f867a4e9d23302aa1e884f8fad7872ee347a86) )
+ROM_END
+
+ROM_START( samsho5ge )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "270ge.p1", 0x000000, 0x400000, CRC(f4900b62) SHA1(e7f3508d5409e22aac04dacea229405d9afbdfa8) )
+ ROM_LOAD16_WORD_SWAP( "270-p2.sp2", 0x400000, 0x400000, CRC(e0c74c85) SHA1(DF24A4EE76438E40C2F04A714175A7F85CACDFE0) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "270-m1.m1", CRC(49c9901a) SHA1(2623e9765a0eba58fee2de72851e9dc502344a3d) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "270-v1.v1", 0x000000, 0x800000, CRC(62e434eb) SHA1(1985f5e88f8e866f9683b6cea901aa28c04b80bf) )
+ ROM_LOAD( "270-v2.v2", 0x800000, 0x800000, CRC(180f3c9a) SHA1(6d7dc2605ead6e78704efa127e7e0dfe621e2c54) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "270-c1.c1", 0x0000000, 0x800000, CRC(14ffffac) SHA1(2ccebfdd0c7907679ae95bf6eca85b8d322441e2) )
+ ROM_LOAD16_BYTE( "270-c2.c2", 0x0000001, 0x800000, CRC(401f7299) SHA1(94e48cdf1682b1250f53c59f3f71d995e928d17b) )
+ ROM_LOAD16_BYTE( "270-c3.c3", 0x1000000, 0x800000, CRC(838f0260) SHA1(d5c8d3c6e7221d04e0b20882a847752e5ba95635) )
+ ROM_LOAD16_BYTE( "270-c4.c4", 0x1000001, 0x800000, CRC(041560a5) SHA1(d165e533699f15b1e079c82f97db3542b3a7dd66) )
+ ROM_LOAD16_BYTE( "270-c5.c5", 0x2000000, 0x800000, CRC(bd30b52d) SHA1(9f8282e684415b4045218cf764ef7d75a70e3240) )
+ ROM_LOAD16_BYTE( "270-c6.c6", 0x2000001, 0x800000, CRC(86a69c70) SHA1(526732cdb408cf680af9da39057bce6a4dfb5e13) )
+ ROM_LOAD16_BYTE( "270-c7.c7", 0x3000000, 0x800000, CRC(d28fbc3c) SHA1(a82a6ba6760fad14d9309f9147cb7d80bd6f70fc) )
+ ROM_LOAD16_BYTE( "270-c8.c8", 0x3000001, 0x800000, CRC(02c530a6) SHA1(7a3fafa6075506c6ef78cc4ec2cb72118ec83cb9) )
+ROM_END
+
+ROM_START( samsho5hd )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "270hd.p1", 0x000000, 0x400000, CRC(bf956089) SHA1(c538289069bf338b9fa7ecc5c9143763dbb776a8) )
+ ROM_LOAD16_WORD_SWAP( "270hd.p2", 0x400000, 0x400000, CRC(943a6b1d) SHA1(12bd02fc197456da6ee86f066086094cef0f4bf9) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "270-m1.m1", CRC(49c9901a) SHA1(2623e9765a0eba58fee2de72851e9dc502344a3d) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "270-v1.v1", 0x000000, 0x800000, CRC(62e434eb) SHA1(1985f5e88f8e866f9683b6cea901aa28c04b80bf) )
+ ROM_LOAD( "270-v2.v2", 0x800000, 0x800000, CRC(180f3c9a) SHA1(6d7dc2605ead6e78704efa127e7e0dfe621e2c54) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "270hd.c1", 0x0000000, 0x800000, CRC(9adec562) SHA1(069d73384dc320c38db420c8b04db86ac0b76101) )
+ ROM_LOAD16_BYTE( "270hd.c2", 0x0000001, 0x800000, CRC(ac0309e5) SHA1(9795fb2fa9eea617ec25656cfa9cd507899ec4fe) )
+ ROM_LOAD16_BYTE( "270hd.c3", 0x1000000, 0x800000, CRC(82db9dae) SHA1(0206e1cc2c5f0fbbc074a93add5a44f645951d0c) )
+ ROM_LOAD16_BYTE( "270hd.c4", 0x1000001, 0x800000, CRC(f8041153) SHA1(55705c725aff949e668c24b23e2e4cdb4ecf78ae) )
+ ROM_LOAD16_BYTE( "270hd.c5", 0x2000000, 0x800000, CRC(e689d62d) SHA1(001a59bb1bb14f263d16f8b7e977cd49e44e265a) )
+ ROM_LOAD16_BYTE( "270hd.c6", 0x2000001, 0x800000, CRC(a993bdcf) SHA1(d15980afe6d4b33506918186a2efc3f51b2347ca) )
+ ROM_LOAD16_BYTE( "270hd.c7", 0x3000000, 0x800000, CRC(707d56a0) SHA1(303ecc621305c8fbeece8d599f9382fe82d191ee) )
+ ROM_LOAD16_BYTE( "270hd.c8", 0x3000001, 0x800000, CRC(f5903adc) SHA1(64f867a4e9d23302aa1e884f8fad7872ee347a86) )
+ROM_END
+
+ROM_START( samsho5s2 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "270s2.p1", 0x000000, 0x400000, CRC(e66b65f8) SHA1(be56cc4eb21e4bd2e27bd25350deee2258f5d1da) )
+ ROM_LOAD16_WORD_SWAP( "270-p2.sp2", 0x400000, 0x400000, CRC(e0c74c85) SHA1(DF24A4EE76438E40C2F04A714175A7F85CACDFE0) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "270-m1.m1", CRC(49c9901a) SHA1(2623e9765a0eba58fee2de72851e9dc502344a3d) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "270-v1.v1", 0x000000, 0x800000, CRC(62e434eb) SHA1(1985f5e88f8e866f9683b6cea901aa28c04b80bf) )
+ ROM_LOAD( "270-v2.v2", 0x800000, 0x800000, CRC(180f3c9a) SHA1(6d7dc2605ead6e78704efa127e7e0dfe621e2c54) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "270-c1.c1", 0x0000000, 0x800000, CRC(14ffffac) SHA1(2ccebfdd0c7907679ae95bf6eca85b8d322441e2) )
+ ROM_LOAD16_BYTE( "270-c2.c2", 0x0000001, 0x800000, CRC(401f7299) SHA1(94e48cdf1682b1250f53c59f3f71d995e928d17b) )
+ ROM_LOAD16_BYTE( "270-c3.c3", 0x1000000, 0x800000, CRC(838f0260) SHA1(d5c8d3c6e7221d04e0b20882a847752e5ba95635) )
+ ROM_LOAD16_BYTE( "270-c4.c4", 0x1000001, 0x800000, CRC(041560a5) SHA1(d165e533699f15b1e079c82f97db3542b3a7dd66) )
+ ROM_LOAD16_BYTE( "270-c5.c5", 0x2000000, 0x800000, CRC(bd30b52d) SHA1(9f8282e684415b4045218cf764ef7d75a70e3240) )
+ ROM_LOAD16_BYTE( "270-c6.c6", 0x2000001, 0x800000, CRC(86a69c70) SHA1(526732cdb408cf680af9da39057bce6a4dfb5e13) )
+ ROM_LOAD16_BYTE( "270-c7.c7", 0x3000000, 0x800000, CRC(d28fbc3c) SHA1(a82a6ba6760fad14d9309f9147cb7d80bd6f70fc) )
+ ROM_LOAD16_BYTE( "270-c8.c8", 0x3000001, 0x800000, CRC(02c530a6) SHA1(7a3fafa6075506c6ef78cc4ec2cb72118ec83cb9) )
+ROM_END
+
+ROM_START( samsho5x )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "270x.p1", 0x000000, 0x800000, CRC(16983af9) SHA1(8b1ab272200bede14ad66d7e98474ac3fb7564d3) )
+
+ NEO_SFIX_128K( "270bs.s1", CRC(2ad6048b) SHA1(173c8561f0633e0d6e4a9750e632f2e46766e674) )
+
+ NEO_BIOS_AUDIO_512K( "270x.m1", CRC(5218a10a) SHA1(da4968e55d4a56249d85d6742a6acffcff4ad65d) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "270bs.v1", 0x000000, 0x800000, CRC(809c7617) SHA1(b6b542eb4c1078016fcd78d050433dc8e3029329) )
+ ROM_LOAD( "270bs.v2", 0x800000, 0x800000, CRC(42671607) SHA1(4fa64b5a9349e9c3d5d60806c9da4a2b6beff18a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "270x.c1", 0x0000000, 0x800000, CRC(25272e50) SHA1(cc2aa5e5de2483539398f27f317ab2dda7b5c49e) )
+ ROM_LOAD16_BYTE( "270x.c2", 0x0000001, 0x800000, CRC(ba68f2e7) SHA1(77b9b5ddc3b313df0dd328c75eac0e8bdfcebad8) )
+ ROM_LOAD16_BYTE( "270x.c3", 0x1000000, 0x800000, CRC(75883cde) SHA1(2f9d72a07f8f14b52150cfb70bbc33d171a3d515) )
+ ROM_LOAD16_BYTE( "270x.c4", 0x1000001, 0x800000, CRC(348540e6) SHA1(4c6eec8948fbb67ae57eaa4a98525deed6cd2859) )
+ ROM_LOAD16_BYTE( "270x.c5", 0x2000000, 0x800000, CRC(1fee8dc8) SHA1(c7f1016ad711ec248218627c92dd5af68cba0206) )
+ ROM_LOAD16_BYTE( "270x.c6", 0x2000001, 0x800000, CRC(c300b50d) SHA1(8c8fbb81dbc6c283b55380d577944c6b9cdd6cf4) )
+ ROM_LOAD16_BYTE( "270x.c7", 0x3000000, 0x800000, CRC(5e722b0b) SHA1(7015dac7cc234473949912216a1b82ca640b52b6) )
+ ROM_LOAD16_BYTE( "270x.c8", 0x3000001, 0x800000, CRC(e2a2c546) SHA1(c870acb090606ae185fa9d7b4932949abacb0705) )
+ROM_END
+
+ROM_START( samsho5zk )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "270zk.p1", 0x000000, 0x400000, CRC(a1c49fdd) SHA1(2f2e9de6ae7bb5c1f0b026083c2d47c17ea2d204) )
+ ROM_LOAD16_WORD_SWAP( "270-p2.sp2", 0x400000, 0x400000, CRC(e0c74c85) SHA1(DF24A4EE76438E40C2F04A714175A7F85CACDFE0) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "270-m1.m1", CRC(49c9901a) SHA1(2623e9765a0eba58fee2de72851e9dc502344a3d) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "270-v1.v1", 0x000000, 0x800000, CRC(62e434eb) SHA1(1985f5e88f8e866f9683b6cea901aa28c04b80bf) )
+ ROM_LOAD( "270-v2.v2", 0x800000, 0x800000, CRC(180f3c9a) SHA1(6d7dc2605ead6e78704efa127e7e0dfe621e2c54) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "270-c1.c1", 0x0000000, 0x800000, CRC(14ffffac) SHA1(2ccebfdd0c7907679ae95bf6eca85b8d322441e2) )
+ ROM_LOAD16_BYTE( "270-c2.c2", 0x0000001, 0x800000, CRC(401f7299) SHA1(94e48cdf1682b1250f53c59f3f71d995e928d17b) )
+ ROM_LOAD16_BYTE( "270-c3.c3", 0x1000000, 0x800000, CRC(838f0260) SHA1(d5c8d3c6e7221d04e0b20882a847752e5ba95635) )
+ ROM_LOAD16_BYTE( "270-c4.c4", 0x1000001, 0x800000, CRC(041560a5) SHA1(d165e533699f15b1e079c82f97db3542b3a7dd66) )
+ ROM_LOAD16_BYTE( "270-c5.c5", 0x2000000, 0x800000, CRC(bd30b52d) SHA1(9f8282e684415b4045218cf764ef7d75a70e3240) )
+ ROM_LOAD16_BYTE( "270-c6.c6", 0x2000001, 0x800000, CRC(86a69c70) SHA1(526732cdb408cf680af9da39057bce6a4dfb5e13) )
+ ROM_LOAD16_BYTE( "270-c7.c7", 0x3000000, 0x800000, CRC(d28fbc3c) SHA1(a82a6ba6760fad14d9309f9147cb7d80bd6f70fc) )
+ ROM_LOAD16_BYTE( "270-c8.c8", 0x3000001, 0x800000, CRC(02c530a6) SHA1(7a3fafa6075506c6ef78cc4ec2cb72118ec83cb9) )
+ROM_END
+
+
+ROM_START( samsh5spd )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "272-p1.p1", 0x000000, 0x400000, CRC(fb7a6bba) SHA1(f68c527208d8a55ca44b0caaa8ab66b3a0ffdfe5) )
+ ROM_LOAD16_WORD_SWAP( "272-p2.sp2", 0x400000, 0x400000, CRC(63492ea6) SHA1(6ba946acb62c63ed61a42fe72b7fff3828883bcc) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_512K( "272d.m1", CRC(203d744e) SHA1(24fc73943009effa14eed0f7a29955f349ca8e8f) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "272-v1.v1", 0x000000, 0x800000, CRC(76a94127) SHA1(c3affd7ff1eb02345cfb755962ec173a8ec34acd) )
+ ROM_LOAD( "272-v2.v2", 0x800000, 0x800000, CRC(4ba507f1) SHA1(728d139da3fe8a391fd8be4d24bb7fdd4bf9548a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "272d.c1", 0x0000000, 0x800000, CRC(8548097e) SHA1(99177F64039D2914FA4EBD4AFC7EB0FBF4FFE0AF) )
+ ROM_LOAD16_BYTE( "272d.c2", 0x0000001, 0x800000, CRC(8c1b48d0) SHA1(3F20288ED369E6276CFAEDFF7E9703D4EA1CF6F6) )
+ ROM_LOAD16_BYTE( "272d.c3", 0x1000000, 0x800000, CRC(96ddb28c) SHA1(7EBE5166D279C0D3EFEF65618D015B4EA13F2C49) )
+ ROM_LOAD16_BYTE( "272d.c4", 0x1000001, 0x800000, CRC(99ef7a0a) SHA1(9AC3EF339BC1D6E3482E0B32D40B259EC2B44FC1) )
+ ROM_LOAD16_BYTE( "272d.c5", 0x2000000, 0x800000, CRC(772e8b1e) SHA1(8DE4898BBD8EDE593763BFA93BBF26492492D23A) )
+ ROM_LOAD16_BYTE( "272d.c6", 0x2000001, 0x800000, CRC(5fff21fc) SHA1(5D0A23A41F5277AB09FD11F227BE35F1713A4B4F) )
+ ROM_LOAD16_BYTE( "272d.c7", 0x3000000, 0x800000, CRC(9ac56a0e) SHA1(EA4FFEC3FE2E58DF16B40FDF33E1708680010414) )
+ ROM_LOAD16_BYTE( "272d.c8", 0x3000001, 0x800000, CRC(cfde7aff) SHA1(25185F471DD35E5D388B75B83D8652085CD5E17D) )
+ROM_END
+
+ROM_START( samsh5spd1 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "272-p1.p1", 0x000000, 0x400000, CRC(fb7a6bba) SHA1(f68c527208d8a55ca44b0caaa8ab66b3a0ffdfe5) )
+ ROM_LOAD16_WORD_SWAP( "272-p2.sp2", 0x400000, 0x400000, CRC(63492ea6) SHA1(6ba946acb62c63ed61a42fe72b7fff3828883bcc) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "272-m1.m1", CRC(adeebf40) SHA1(8cbd63dda3fff4de38060405bf70cd9308c9e66e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "272-v1.v1", 0x000000, 0x800000, CRC(76a94127) SHA1(c3affd7ff1eb02345cfb755962ec173a8ec34acd) )
+ ROM_LOAD( "272-v2.v2", 0x800000, 0x800000, CRC(4ba507f1) SHA1(728d139da3fe8a391fd8be4d24bb7fdd4bf9548a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "272d.c1", 0x0000000, 0x800000, CRC(8548097e) SHA1(99177F64039D2914FA4EBD4AFC7EB0FBF4FFE0AF) )
+ ROM_LOAD16_BYTE( "272d.c2", 0x0000001, 0x800000, CRC(8c1b48d0) SHA1(3F20288ED369E6276CFAEDFF7E9703D4EA1CF6F6) )
+ ROM_LOAD16_BYTE( "272d.c3", 0x1000000, 0x800000, CRC(96ddb28c) SHA1(7EBE5166D279C0D3EFEF65618D015B4EA13F2C49) )
+ ROM_LOAD16_BYTE( "272d.c4", 0x1000001, 0x800000, CRC(99ef7a0a) SHA1(9AC3EF339BC1D6E3482E0B32D40B259EC2B44FC1) )
+ ROM_LOAD16_BYTE( "272d.c5", 0x2000000, 0x800000, CRC(772e8b1e) SHA1(8DE4898BBD8EDE593763BFA93BBF26492492D23A) )
+ ROM_LOAD16_BYTE( "272d.c6", 0x2000001, 0x800000, CRC(5fff21fc) SHA1(5D0A23A41F5277AB09FD11F227BE35F1713A4B4F) )
+ ROM_LOAD16_BYTE( "272d.c7", 0x3000000, 0x800000, CRC(9ac56a0e) SHA1(EA4FFEC3FE2E58DF16B40FDF33E1708680010414) )
+ ROM_LOAD16_BYTE( "272d.c8", 0x3000001, 0x800000, CRC(cfde7aff) SHA1(25185F471DD35E5D388B75B83D8652085CD5E17D) )
+ROM_END
+
+ROM_START( samsh5spd2 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "272d2.p1", 0x000000, 0x400000, CRC(D190102F) SHA1(A853395575E135C2113FCCA942651A2A6193B504) )
+ ROM_LOAD16_WORD_SWAP( "272d2.p2", 0x400000, 0x400000, CRC(DA770F06) SHA1(F23DE7385AE5C6A27D70B1140654192F0ED2DF84) )
+
+ NEO_SFIX_128K( "272n.s1", CRC(C297F973) SHA1(B31AF6B51E7536B538CD7EB3542C631C6327E826) )
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "272-m1.m1", CRC(adeebf40) SHA1(8cbd63dda3fff4de38060405bf70cd9308c9e66e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "272-v1.v1", 0x000000, 0x800000, CRC(76a94127) SHA1(c3affd7ff1eb02345cfb755962ec173a8ec34acd) )
+ ROM_LOAD( "272-v2.v2", 0x800000, 0x800000, CRC(4ba507f1) SHA1(728d139da3fe8a391fd8be4d24bb7fdd4bf9548a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "272d.c1", 0x0000000, 0x800000, CRC(8548097e) SHA1(99177F64039D2914FA4EBD4AFC7EB0FBF4FFE0AF) )
+ ROM_LOAD16_BYTE( "272d.c2", 0x0000001, 0x800000, CRC(8c1b48d0) SHA1(3F20288ED369E6276CFAEDFF7E9703D4EA1CF6F6) )
+ ROM_LOAD16_BYTE( "272d.c3", 0x1000000, 0x800000, CRC(96ddb28c) SHA1(7EBE5166D279C0D3EFEF65618D015B4EA13F2C49) )
+ ROM_LOAD16_BYTE( "272d.c4", 0x1000001, 0x800000, CRC(99ef7a0a) SHA1(9AC3EF339BC1D6E3482E0B32D40B259EC2B44FC1) )
+ ROM_LOAD16_BYTE( "272d.c5", 0x2000000, 0x800000, CRC(772e8b1e) SHA1(8DE4898BBD8EDE593763BFA93BBF26492492D23A) )
+ ROM_LOAD16_BYTE( "272d.c6", 0x2000001, 0x800000, CRC(5fff21fc) SHA1(5D0A23A41F5277AB09FD11F227BE35F1713A4B4F) )
+ ROM_LOAD16_BYTE( "272d.c7", 0x3000000, 0x800000, CRC(9ac56a0e) SHA1(EA4FFEC3FE2E58DF16B40FDF33E1708680010414) )
+ ROM_LOAD16_BYTE( "272d.c8", 0x3000001, 0x800000, CRC(cfde7aff) SHA1(25185F471DD35E5D388B75B83D8652085CD5E17D) )
+ROM_END
+
+ROM_START( samsh5sph1 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "272h.p1", 0x000000, 0x800000, CRC(15f53d87) SHA1(9e53deceef727757eb0ec3889f628b838cf1316a) )
+ //ROM_LOAD16_WORD_SWAP( "272nh3.p2", 0x100000, 0x700000, CRC(7114a210) SHA1(ae1f64a711648141e52ad28c6995e6d42836367c) ) // not needed
+
+ NEO_SFIX_128K( "272n.s1", CRC(c297f973) SHA1(b31af6b51e7536b538cd7eb3542c631c6327e826) )
+
+ NEO_BIOS_AUDIO_128K( "272n.m1", CRC(0b5d4d6a) SHA1(2467e06be986cba8c879412cba0388019892dbb2) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "272n.v1", 0x000000, 0x400000, CRC(4d1b252b) SHA1(e5efe408c337a2ca556e790f0fd917ba44f975e3) )
+ ROM_LOAD( "272n.v2", 0x400000, 0x400000, CRC(0e46d2f8) SHA1(b8b0838124ea29f73f31e08d5cced8797cea75b1) )
+ ROM_LOAD( "272n.v3", 0x800000, 0x400000, CRC(3f0f7554) SHA1(2581e297725f3b950b59e9086ac5569171da6140) )
+ ROM_LOAD( "272n.v4", 0xc00000, 0x400000, CRC(ad8fabb4) SHA1(cebe3b7306e1431ebb99df13bfc2270b1d3ba1ff) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "272d.c1", 0x0000000, 0x800000, CRC(8548097e) SHA1(99177F64039D2914FA4EBD4AFC7EB0FBF4FFE0AF) )
+ ROM_LOAD16_BYTE( "272d.c2", 0x0000001, 0x800000, CRC(8c1b48d0) SHA1(3F20288ED369E6276CFAEDFF7E9703D4EA1CF6F6) )
+ ROM_LOAD16_BYTE( "272d.c3", 0x1000000, 0x800000, CRC(96ddb28c) SHA1(7EBE5166D279C0D3EFEF65618D015B4EA13F2C49) )
+ ROM_LOAD16_BYTE( "272d.c4", 0x1000001, 0x800000, CRC(99ef7a0a) SHA1(9AC3EF339BC1D6E3482E0B32D40B259EC2B44FC1) )
+ ROM_LOAD16_BYTE( "272d.c5", 0x2000000, 0x800000, CRC(772e8b1e) SHA1(8DE4898BBD8EDE593763BFA93BBF26492492D23A) )
+ ROM_LOAD16_BYTE( "272d.c6", 0x2000001, 0x800000, CRC(5fff21fc) SHA1(5D0A23A41F5277AB09FD11F227BE35F1713A4B4F) )
+ ROM_LOAD16_BYTE( "272d.c7", 0x3000000, 0x800000, CRC(9ac56a0e) SHA1(EA4FFEC3FE2E58DF16B40FDF33E1708680010414) )
+ ROM_LOAD16_BYTE( "272d.c8", 0x3000001, 0x800000, CRC(cfde7aff) SHA1(25185F471DD35E5D388B75B83D8652085CD5E17D) )
+ROM_END
+
+ROM_START( samsh5spha )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "272ha.p1", 0x000000, 0x100000, CRC(24f2a6ab) SHA1(cd7cea2ed5fafb6328dc8c35224071d96e83da9b) )
+ ROM_LOAD16_WORD_SWAP( "272nh3.p2", 0x100000, 0x700000, CRC(7114a210) SHA1(ae1f64a711648141e52ad28c6995e6d42836367c) )
+
+ NEO_SFIX_128K( "272n.s1", CRC(c297f973) SHA1(b31af6b51e7536b538cd7eb3542c631c6327e826) )
+
+ NEO_BIOS_AUDIO_128K( "272n.m1", CRC(0b5d4d6a) SHA1(2467e06be986cba8c879412cba0388019892dbb2) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "272n.v1", 0x000000, 0x400000, CRC(4d1b252b) SHA1(e5efe408c337a2ca556e790f0fd917ba44f975e3) )
+ ROM_LOAD( "272n.v2", 0x400000, 0x400000, CRC(0e46d2f8) SHA1(b8b0838124ea29f73f31e08d5cced8797cea75b1) )
+ ROM_LOAD( "272n.v3", 0x800000, 0x400000, CRC(3f0f7554) SHA1(2581e297725f3b950b59e9086ac5569171da6140) )
+ ROM_LOAD( "272n.v4", 0xc00000, 0x400000, CRC(ad8fabb4) SHA1(cebe3b7306e1431ebb99df13bfc2270b1d3ba1ff) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "272d.c1", 0x0000000, 0x800000, CRC(8548097e) SHA1(99177F64039D2914FA4EBD4AFC7EB0FBF4FFE0AF) )
+ ROM_LOAD16_BYTE( "272d.c2", 0x0000001, 0x800000, CRC(8c1b48d0) SHA1(3F20288ED369E6276CFAEDFF7E9703D4EA1CF6F6) )
+ ROM_LOAD16_BYTE( "272d.c3", 0x1000000, 0x800000, CRC(96ddb28c) SHA1(7EBE5166D279C0D3EFEF65618D015B4EA13F2C49) )
+ ROM_LOAD16_BYTE( "272d.c4", 0x1000001, 0x800000, CRC(99ef7a0a) SHA1(9AC3EF339BC1D6E3482E0B32D40B259EC2B44FC1) )
+ ROM_LOAD16_BYTE( "272d.c5", 0x2000000, 0x800000, CRC(772e8b1e) SHA1(8DE4898BBD8EDE593763BFA93BBF26492492D23A) )
+ ROM_LOAD16_BYTE( "272d.c6", 0x2000001, 0x800000, CRC(5fff21fc) SHA1(5D0A23A41F5277AB09FD11F227BE35F1713A4B4F) )
+ ROM_LOAD16_BYTE( "272d.c7", 0x3000000, 0x800000, CRC(9ac56a0e) SHA1(EA4FFEC3FE2E58DF16B40FDF33E1708680010414) )
+ ROM_LOAD16_BYTE( "272d.c8", 0x3000001, 0x800000, CRC(cfde7aff) SHA1(25185F471DD35E5D388B75B83D8652085CD5E17D) )
+ROM_END
+
+ROM_START( samsh5sphb )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "272hb.p1", 0x000000, 0x100000, CRC(b07fa849) SHA1(26a8e795ee4bbd25c88104a1ee9459991b65c774) )
+ ROM_LOAD16_WORD_SWAP( "272nh3.p2", 0x100000, 0x700000, CRC(7114a210) SHA1(ae1f64a711648141e52ad28c6995e6d42836367c) )
+
+ NEO_SFIX_128K( "272n.s1", CRC(c297f973) SHA1(b31af6b51e7536b538cd7eb3542c631c6327e826) )
+
+ NEO_BIOS_AUDIO_128K( "272n.m1", CRC(0b5d4d6a) SHA1(2467e06be986cba8c879412cba0388019892dbb2) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "272n.v1", 0x000000, 0x400000, CRC(4d1b252b) SHA1(e5efe408c337a2ca556e790f0fd917ba44f975e3) )
+ ROM_LOAD( "272n.v2", 0x400000, 0x400000, CRC(0e46d2f8) SHA1(b8b0838124ea29f73f31e08d5cced8797cea75b1) )
+ ROM_LOAD( "272n.v3", 0x800000, 0x400000, CRC(3f0f7554) SHA1(2581e297725f3b950b59e9086ac5569171da6140) )
+ ROM_LOAD( "272n.v4", 0xc00000, 0x400000, CRC(ad8fabb4) SHA1(cebe3b7306e1431ebb99df13bfc2270b1d3ba1ff) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "272d.c1", 0x0000000, 0x800000, CRC(8548097e) SHA1(99177F64039D2914FA4EBD4AFC7EB0FBF4FFE0AF) )
+ ROM_LOAD16_BYTE( "272d.c2", 0x0000001, 0x800000, CRC(8c1b48d0) SHA1(3F20288ED369E6276CFAEDFF7E9703D4EA1CF6F6) )
+ ROM_LOAD16_BYTE( "272d.c3", 0x1000000, 0x800000, CRC(96ddb28c) SHA1(7EBE5166D279C0D3EFEF65618D015B4EA13F2C49) )
+ ROM_LOAD16_BYTE( "272d.c4", 0x1000001, 0x800000, CRC(99ef7a0a) SHA1(9AC3EF339BC1D6E3482E0B32D40B259EC2B44FC1) )
+ ROM_LOAD16_BYTE( "272d.c5", 0x2000000, 0x800000, CRC(772e8b1e) SHA1(8DE4898BBD8EDE593763BFA93BBF26492492D23A) )
+ ROM_LOAD16_BYTE( "272d.c6", 0x2000001, 0x800000, CRC(5fff21fc) SHA1(5D0A23A41F5277AB09FD11F227BE35F1713A4B4F) )
+ ROM_LOAD16_BYTE( "272d.c7", 0x3000000, 0x800000, CRC(9ac56a0e) SHA1(EA4FFEC3FE2E58DF16B40FDF33E1708680010414) )
+ ROM_LOAD16_BYTE( "272d.c8", 0x3000001, 0x800000, CRC(cfde7aff) SHA1(25185F471DD35E5D388B75B83D8652085CD5E17D) )
+ROM_END
+
+ROM_START( samsh5sphc )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "272nh3.p1", 0x000000, 0x400000, CRC(01e4b860) SHA1(de25b51a944a9e9757d8baa27d65601e96b4b718) )
+ ROM_LOAD16_WORD_SWAP( "272nh3.p2", 0x100000, 0x700000, CRC(7114a210) SHA1(ae1f64a711648141e52ad28c6995e6d42836367c) )
+
+ NEO_SFIX_128K( "272n.s1", CRC(c297f973) SHA1(b31af6b51e7536b538cd7eb3542c631c6327e826) )
+
+ NEO_BIOS_AUDIO_128K( "272n.m1", CRC(0b5d4d6a) SHA1(2467e06be986cba8c879412cba0388019892dbb2) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "272n.v1", 0x000000, 0x400000, CRC(4d1b252b) SHA1(e5efe408c337a2ca556e790f0fd917ba44f975e3) )
+ ROM_LOAD( "272n.v2", 0x400000, 0x400000, CRC(0e46d2f8) SHA1(b8b0838124ea29f73f31e08d5cced8797cea75b1) )
+ ROM_LOAD( "272n.v3", 0x800000, 0x400000, CRC(3f0f7554) SHA1(2581e297725f3b950b59e9086ac5569171da6140) )
+ ROM_LOAD( "272n.v4", 0xc00000, 0x400000, CRC(ad8fabb4) SHA1(cebe3b7306e1431ebb99df13bfc2270b1d3ba1ff) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "272d.c1", 0x0000000, 0x800000, CRC(8548097e) SHA1(99177F64039D2914FA4EBD4AFC7EB0FBF4FFE0AF) )
+ ROM_LOAD16_BYTE( "272d.c2", 0x0000001, 0x800000, CRC(8c1b48d0) SHA1(3F20288ED369E6276CFAEDFF7E9703D4EA1CF6F6) )
+ ROM_LOAD16_BYTE( "272d.c3", 0x1000000, 0x800000, CRC(96ddb28c) SHA1(7EBE5166D279C0D3EFEF65618D015B4EA13F2C49) )
+ ROM_LOAD16_BYTE( "272d.c4", 0x1000001, 0x800000, CRC(99ef7a0a) SHA1(9AC3EF339BC1D6E3482E0B32D40B259EC2B44FC1) )
+ ROM_LOAD16_BYTE( "272d.c5", 0x2000000, 0x800000, CRC(772e8b1e) SHA1(8DE4898BBD8EDE593763BFA93BBF26492492D23A) )
+ ROM_LOAD16_BYTE( "272d.c6", 0x2000001, 0x800000, CRC(5fff21fc) SHA1(5D0A23A41F5277AB09FD11F227BE35F1713A4B4F) )
+ ROM_LOAD16_BYTE( "272d.c7", 0x3000000, 0x800000, CRC(9ac56a0e) SHA1(EA4FFEC3FE2E58DF16B40FDF33E1708680010414) )
+ ROM_LOAD16_BYTE( "272d.c8", 0x3000001, 0x800000, CRC(cfde7aff) SHA1(25185F471DD35E5D388B75B83D8652085CD5E17D) )
+ROM_END
+
+ROM_START( samsh5sphd )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "272hd.p1", 0x000000, 0x400000, CRC(9291794d) SHA1(66588ff9b00ffad6508b03423548984e28a3209d) )
+ ROM_LOAD16_WORD_SWAP( "272hd.p2", 0x400000, 0x400000, CRC(fa1a7dd8) SHA1(62443dad76d6c1e18f515d7d4ef8e1295a4b7f1d) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "272-m1.m1", CRC(adeebf40) SHA1(8cbd63dda3fff4de38060405bf70cd9308c9e66e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "272-v1.v1", 0x000000, 0x800000, CRC(76a94127) SHA1(c3affd7ff1eb02345cfb755962ec173a8ec34acd) )
+ ROM_LOAD( "272-v2.v2", 0x800000, 0x800000, CRC(4ba507f1) SHA1(728d139da3fe8a391fd8be4d24bb7fdd4bf9548a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "272d.c1", 0x0000000, 0x800000, CRC(8548097e) SHA1(99177F64039D2914FA4EBD4AFC7EB0FBF4FFE0AF) )
+ ROM_LOAD16_BYTE( "272d.c2", 0x0000001, 0x800000, CRC(8c1b48d0) SHA1(3F20288ED369E6276CFAEDFF7E9703D4EA1CF6F6) )
+ ROM_LOAD16_BYTE( "272d.c3", 0x1000000, 0x800000, CRC(96ddb28c) SHA1(7EBE5166D279C0D3EFEF65618D015B4EA13F2C49) )
+ ROM_LOAD16_BYTE( "272d.c4", 0x1000001, 0x800000, CRC(99ef7a0a) SHA1(9AC3EF339BC1D6E3482E0B32D40B259EC2B44FC1) )
+ ROM_LOAD16_BYTE( "272d.c5", 0x2000000, 0x800000, CRC(772e8b1e) SHA1(8DE4898BBD8EDE593763BFA93BBF26492492D23A) )
+ ROM_LOAD16_BYTE( "272d.c6", 0x2000001, 0x800000, CRC(5fff21fc) SHA1(5D0A23A41F5277AB09FD11F227BE35F1713A4B4F) )
+ ROM_LOAD16_BYTE( "272d.c7", 0x3000000, 0x800000, CRC(9ac56a0e) SHA1(EA4FFEC3FE2E58DF16B40FDF33E1708680010414) )
+ ROM_LOAD16_BYTE( "272d.c8", 0x3000001, 0x800000, CRC(cfde7aff) SHA1(25185F471DD35E5D388B75B83D8652085CD5E17D) )
+ROM_END
+
+ROM_START( samsh5spn ) // fully decrypted
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "272n.p1", 0x000000, 0x800000, CRC(339f5081) SHA1(3e120481a5aee6a978d87a0f600a7323657d1c51) )
+
+ NEO_SFIX_128K( "272n.s1", CRC(c297f973) SHA1(b31af6b51e7536b538cd7eb3542c631c6327e826) )
+
+ NEO_BIOS_AUDIO_128K( "272n.m1", CRC(0b5d4d6a) SHA1(2467e06be986cba8c879412cba0388019892dbb2) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "272n.v1", 0x000000, 0x400000, CRC(4d1b252b) SHA1(e5efe408c337a2ca556e790f0fd917ba44f975e3) )
+ ROM_LOAD( "272n.v2", 0x400000, 0x400000, CRC(0e46d2f8) SHA1(b8b0838124ea29f73f31e08d5cced8797cea75b1) )
+ ROM_LOAD( "272n.v3", 0x800000, 0x400000, CRC(3f0f7554) SHA1(2581e297725f3b950b59e9086ac5569171da6140) )
+ ROM_LOAD( "272n.v4", 0xc00000, 0x400000, CRC(ad8fabb4) SHA1(cebe3b7306e1431ebb99df13bfc2270b1d3ba1ff) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "272d.c1", 0x0000000, 0x800000, CRC(8548097e) SHA1(99177F64039D2914FA4EBD4AFC7EB0FBF4FFE0AF) )
+ ROM_LOAD16_BYTE( "272d.c2", 0x0000001, 0x800000, CRC(8c1b48d0) SHA1(3F20288ED369E6276CFAEDFF7E9703D4EA1CF6F6) )
+ ROM_LOAD16_BYTE( "272d.c3", 0x1000000, 0x800000, CRC(96ddb28c) SHA1(7EBE5166D279C0D3EFEF65618D015B4EA13F2C49) )
+ ROM_LOAD16_BYTE( "272d.c4", 0x1000001, 0x800000, CRC(99ef7a0a) SHA1(9AC3EF339BC1D6E3482E0B32D40B259EC2B44FC1) )
+ ROM_LOAD16_BYTE( "272d.c5", 0x2000000, 0x800000, CRC(772e8b1e) SHA1(8DE4898BBD8EDE593763BFA93BBF26492492D23A) )
+ ROM_LOAD16_BYTE( "272d.c6", 0x2000001, 0x800000, CRC(5fff21fc) SHA1(5D0A23A41F5277AB09FD11F227BE35F1713A4B4F) )
+ ROM_LOAD16_BYTE( "272d.c7", 0x3000000, 0x800000, CRC(9ac56a0e) SHA1(EA4FFEC3FE2E58DF16B40FDF33E1708680010414) )
+ ROM_LOAD16_BYTE( "272d.c8", 0x3000001, 0x800000, CRC(cfde7aff) SHA1(25185F471DD35E5D388B75B83D8652085CD5E17D) )
+ROM_END
+
+ROM_START( samsh5spnd ) /* 2nd bugfix release */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "272nd.p1", 0x000000, 0x400000, CRC(c30a08dd) SHA1(66864954017c841d7ca8490112c3aa7a71a4da70) )
+ ROM_LOAD16_WORD_SWAP( "272nd.sp2", 0x400000, 0x400000, CRC(bd64a518) SHA1(aa259a168930f106377d680db444535411b3bce0) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "272-m1.m1", CRC(adeebf40) SHA1(8cbd63dda3fff4de38060405bf70cd9308c9e66e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "272-v1.v1", 0x000000, 0x800000, CRC(76a94127) SHA1(c3affd7ff1eb02345cfb755962ec173a8ec34acd) )
+ ROM_LOAD( "272-v2.v2", 0x800000, 0x800000, CRC(4ba507f1) SHA1(728d139da3fe8a391fd8be4d24bb7fdd4bf9548a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "272d.c1", 0x0000000, 0x800000, CRC(8548097e) SHA1(99177F64039D2914FA4EBD4AFC7EB0FBF4FFE0AF) )
+ ROM_LOAD16_BYTE( "272d.c2", 0x0000001, 0x800000, CRC(8c1b48d0) SHA1(3F20288ED369E6276CFAEDFF7E9703D4EA1CF6F6) )
+ ROM_LOAD16_BYTE( "272d.c3", 0x1000000, 0x800000, CRC(96ddb28c) SHA1(7EBE5166D279C0D3EFEF65618D015B4EA13F2C49) )
+ ROM_LOAD16_BYTE( "272d.c4", 0x1000001, 0x800000, CRC(99ef7a0a) SHA1(9AC3EF339BC1D6E3482E0B32D40B259EC2B44FC1) )
+ ROM_LOAD16_BYTE( "272d.c5", 0x2000000, 0x800000, CRC(772e8b1e) SHA1(8DE4898BBD8EDE593763BFA93BBF26492492D23A) )
+ ROM_LOAD16_BYTE( "272d.c6", 0x2000001, 0x800000, CRC(5fff21fc) SHA1(5D0A23A41F5277AB09FD11F227BE35F1713A4B4F) )
+ ROM_LOAD16_BYTE( "272d.c7", 0x3000000, 0x800000, CRC(9ac56a0e) SHA1(EA4FFEC3FE2E58DF16B40FDF33E1708680010414) )
+ ROM_LOAD16_BYTE( "272d.c8", 0x3000001, 0x800000, CRC(cfde7aff) SHA1(25185F471DD35E5D388B75B83D8652085CD5E17D) )
+ROM_END
+
+ROM_START( samsh5spnh3 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "272nh3.p1", 0x000000, 0x100000, CRC(4cc4bcae) SHA1(487a6dd8d42e6f80cf43898fc2debeb1007e8be7) )
+ ROM_LOAD16_WORD_SWAP( "272nh3.p2", 0x100000, 0x700000, CRC(7114a210) SHA1(ae1f64a711648141e52ad28c6995e6d42836367c) )
+
+ NEO_SFIX_128K( "272nh3.s1", CRC(36f02588) SHA1(114ed5d6bd396b5c88b463a816035ea4b9e0efc7) )
+
+ NEO_BIOS_AUDIO_128K( "272n.m1", CRC(0b5d4d6a) SHA1(2467e06be986cba8c879412cba0388019892dbb2) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "272n.v1", 0x000000, 0x400000, CRC(4d1b252b) SHA1(e5efe408c337a2ca556e790f0fd917ba44f975e3) )
+ ROM_LOAD( "272n.v2", 0x400000, 0x400000, CRC(0e46d2f8) SHA1(b8b0838124ea29f73f31e08d5cced8797cea75b1) )
+ ROM_LOAD( "272n.v3", 0x800000, 0x400000, CRC(3f0f7554) SHA1(2581e297725f3b950b59e9086ac5569171da6140) )
+ ROM_LOAD( "272n.v4", 0xc00000, 0x400000, CRC(ad8fabb4) SHA1(cebe3b7306e1431ebb99df13bfc2270b1d3ba1ff) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "272d.c1", 0x0000000, 0x800000, CRC(8548097e) SHA1(99177F64039D2914FA4EBD4AFC7EB0FBF4FFE0AF) )
+ ROM_LOAD16_BYTE( "272d.c2", 0x0000001, 0x800000, CRC(8c1b48d0) SHA1(3F20288ED369E6276CFAEDFF7E9703D4EA1CF6F6) )
+ ROM_LOAD16_BYTE( "272d.c3", 0x1000000, 0x800000, CRC(96ddb28c) SHA1(7EBE5166D279C0D3EFEF65618D015B4EA13F2C49) )
+ ROM_LOAD16_BYTE( "272d.c4", 0x1000001, 0x800000, CRC(99ef7a0a) SHA1(9AC3EF339BC1D6E3482E0B32D40B259EC2B44FC1) )
+ ROM_LOAD16_BYTE( "272d.c5", 0x2000000, 0x800000, CRC(772e8b1e) SHA1(8DE4898BBD8EDE593763BFA93BBF26492492D23A) )
+ ROM_LOAD16_BYTE( "272d.c6", 0x2000001, 0x800000, CRC(5fff21fc) SHA1(5D0A23A41F5277AB09FD11F227BE35F1713A4B4F) )
+ ROM_LOAD16_BYTE( "272d.c7", 0x3000000, 0x800000, CRC(9ac56a0e) SHA1(EA4FFEC3FE2E58DF16B40FDF33E1708680010414) )
+ ROM_LOAD16_BYTE( "272d.c8", 0x3000001, 0x800000, CRC(cfde7aff) SHA1(25185F471DD35E5D388B75B83D8652085CD5E17D) )
+ROM_END
+
+ROM_START( samsh5spnzk )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "272nzk.p1", 0x000000, 0x800000, CRC(17be33bf) SHA1(2350b306d6f2a57f0792b9a518c6ed9d55613b83) )
+
+ NEO_SFIX_128K( "272n.s1", CRC(c297f973) SHA1(b31af6b51e7536b538cd7eb3542c631c6327e826) )
+
+ NEO_BIOS_AUDIO_128K( "272n.m1", CRC(0b5d4d6a) SHA1(2467e06be986cba8c879412cba0388019892dbb2) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "272n.v1", 0x000000, 0x400000, CRC(4d1b252b) SHA1(e5efe408c337a2ca556e790f0fd917ba44f975e3) )
+ ROM_LOAD( "272n.v2", 0x400000, 0x400000, CRC(0e46d2f8) SHA1(b8b0838124ea29f73f31e08d5cced8797cea75b1) )
+ ROM_LOAD( "272n.v3", 0x800000, 0x400000, CRC(3f0f7554) SHA1(2581e297725f3b950b59e9086ac5569171da6140) )
+ ROM_LOAD( "272n.v4", 0xc00000, 0x400000, CRC(ad8fabb4) SHA1(cebe3b7306e1431ebb99df13bfc2270b1d3ba1ff) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "272d.c1", 0x0000000, 0x800000, CRC(8548097e) SHA1(99177F64039D2914FA4EBD4AFC7EB0FBF4FFE0AF) )
+ ROM_LOAD16_BYTE( "272d.c2", 0x0000001, 0x800000, CRC(8c1b48d0) SHA1(3F20288ED369E6276CFAEDFF7E9703D4EA1CF6F6) )
+ ROM_LOAD16_BYTE( "272d.c3", 0x1000000, 0x800000, CRC(96ddb28c) SHA1(7EBE5166D279C0D3EFEF65618D015B4EA13F2C49) )
+ ROM_LOAD16_BYTE( "272d.c4", 0x1000001, 0x800000, CRC(99ef7a0a) SHA1(9AC3EF339BC1D6E3482E0B32D40B259EC2B44FC1) )
+ ROM_LOAD16_BYTE( "272d.c5", 0x2000000, 0x800000, CRC(772e8b1e) SHA1(8DE4898BBD8EDE593763BFA93BBF26492492D23A) )
+ ROM_LOAD16_BYTE( "272d.c6", 0x2000001, 0x800000, CRC(5fff21fc) SHA1(5D0A23A41F5277AB09FD11F227BE35F1713A4B4F) )
+ ROM_LOAD16_BYTE( "272d.c7", 0x3000000, 0x800000, CRC(9ac56a0e) SHA1(EA4FFEC3FE2E58DF16B40FDF33E1708680010414) )
+ ROM_LOAD16_BYTE( "272d.c8", 0x3000001, 0x800000, CRC(cfde7aff) SHA1(25185F471DD35E5D388B75B83D8652085CD5E17D) )
+ROM_END
+
+
+
+GAME( 1995, fswordsb1, samsho3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Fighters Swords (Boss Hack v1.0)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, fswordsb2, samsho3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Fighters Swords (Boss Hack v2.0)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, fswordsbf, samsho3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Fighters Swords (Boss Hack v1.0f)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1993, samshob, samsho, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Samurai Shodown (Add Char)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, samshoeh, samsho, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Samurai Shodown (Add Char - Ultra kill start max)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, samshoeh2, samsho, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami and Ydmis", "Samurai Shodown (Add Char - Ultra kill start max - Ultra kill always max)", MACHINE_SUPPORTS_SAVE )
+GAME( 2005, samshos1, samsho, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Samurai Shodown (Special v0.1 2005-09-19)", MACHINE_SUPPORTS_SAVE )
+GAME( 2008, samshozk, samsho, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Zuojie, Kof1996", "Samurai Shodown (Hack by Zuojie, Kof1996 2008-10-23)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1994, samsho2eh, samsho2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Samurai Shodown II (Boss hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, samsho2emb, samsho2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Blackheart", "Samurai Shodown II (Easy Move hack by Blackheart 2009-08-11)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, samsho2hy, samsho2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "Samurai Shodown II (Boss hack by Yashional)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, samsho2mb, samsho2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Blackheart", "Samurai Shodown II (Moves hack by Blackheart 2009-08-03)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, samsho2q, samsho2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Samurai Shodown II (Soul Q Version v1.0)", MACHINE_SUPPORTS_SAVE )
+GAME( 2008, samsho2s2, samsho2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Samurai Shodown II (Special v0.12 2008-08-26)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, samsho2sp, samsho2, samsho2sp, neogeo, neogeo_state, neogeo, ROT0, "GSC2007", "Samurai Shodown II (Special v1.0.0122)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, samsho2sp2, samsho2, samsho2sp, neogeo, neogeo_state, neogeo, ROT0, "GSC2007", "Samurai Shodown II (Special v1.0.0221)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, samsho2sp3, samsho2, samsho2sp, neogeo, neogeo_state, neogeo, ROT0, "GSC2007", "Samurai Shodown II (Special v1.0.0320)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, samsho2sp4, samsho2, samsho2sp, neogeo, neogeo_state, neogeo, ROT0, "GSC2007", "Samurai Shodown II (Special v1.0.0311 2017-03-11)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, samsho2sp5, samsho2, samsho2sp, neogeo, neogeo_state, neogeo, ROT0, "GSC2007", "Samurai Shodown II (Special v1.1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, samsho2sq, samsho2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Samurai Shodown II (Soul Q version v2.0)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, samsho2ss, samsho2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "Samurai Shodown II Special (Hack by Yashional)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, samsho2yc, samsho2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami and Ydmis", "Samurai Shodown II (Char - Pow hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, samsho2zk, samsho2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Zuojie, Kof1996", "Samurai Shodown II (Hack by Zuojie, Kof1996 2008-10-23)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1995, samsho3eh, samsho3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Ydmis", "Samurai Shodown III (Add Char)", MACHINE_SUPPORTS_SAVE )
+GAME( 2010, samsho3hb, samsho3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Samurai Shodown III (hack HB)", MACHINE_SUPPORTS_SAVE )
+GAME( 2008, samsho3s2, samsho3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Samurai Shodown III (Special v0.12 2008-09-01)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, samsho3se, samsho3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami and Ydmis", "Samurai Shodown III (Add Char - Pow hack ABC - Ultra pow hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2005, samsho3ss, samsho3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Samurai Shodown III (Special v0.1 2005-09-19)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, samsho3yc, samsho3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami and Ydmis", "Samurai Shodown III (Add Char - Pow hack ABC)", MACHINE_SUPPORTS_SAVE )
+GAME( 2008, samsho3zk, samsho3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Zuojie, Kof1996", "Samurai Shodown III (Hack by Zuojie, Kof1996 2008-10-23)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1996, samsho4bh, samsho4, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Dodowang", "Samurai Shodown IV (Add Char with Icon)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, samsho4cz, samsho4, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami and Zhangshee", "Samurai Shodown IV (Add Char - Ultra kill start max - Ultra kill always max)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, samsho4eh, samsho4, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Zhangshee", "Samurai Shodown IV (Add Char)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, samsho4es, samsho4, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK2003/PPX Hack Team", "Samurai Shodown IV (Moves rev - v3.8)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, samsho4ev, samsho4, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yumeji", "Samurai Shodown IV Amakusa's Revenge / Samurai Spirits - Amakusa Kourin (Evil Amakusa - Hack by Yumeji)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, samsho4ew, samsho4, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Eddids and Wesker", "Samurai Shodown IV (Add Char with Color corrections P2/P3/P4)", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, samsho4fc, samsho4, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "FCHT", "Samurai Shodown IV (Boss Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, samsho4kw, samsho4, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Fighters Kim and Wesker", "Samurai Shodown IV (Add Char - Ultra pow hack set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, samsho4kz, samsho4, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Fighters Kim and Zhangshee", "Samurai Shodown IV (Add Char - Ultra pow hack set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, samsho4mb, samsho4, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Blackheart", "Samurai Shodown IV (Moves hack by Blackheart 2009-08-05)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, samsho4pm, samsho4, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Pipi899", "Samurai Shodown IV (Power Max hack by Pipi899 2009-06-16)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, samsho4ps, samsho4, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGHT", "Samurai Shodown IV (Boss Fix Ver 1.00 [EGHT])", MACHINE_SUPPORTS_SAVE )
+GAME( 2008, samsho4s2, samsho4, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Samurai Shodown IV (Special v0.12 2008-09-01)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, samsho4sp, samsho4, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "GSC2007", "Samurai Shodown IV (Special 2017)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, samsho4wh, samsho4, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker", "Samurai Shodown IV (Add Char - final edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 2008, samsho4zk, samsho4, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Zuojie, Kof1996", "Samurai Shodown IV (Hack by Zuojie, Kof1996 2008-10-23)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 2003, samsho5ba, samsho5, neogeo_noslot, neogeo, neogeo_hbmame, sam5hb, ROT0, "hack", "Samurai Shodown V (Boss hack alternate set)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, samsho5bd, samsho5, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "Samurai Shodown V (bootleg, fully decrypted)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, samsho5bh, samsho5, neogeo_noslot, neogeo, neogeo_hbmame, sam5hb, ROT0, "Dodowang", "Samurai Shodown V (Boss hack by Dodowang)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, samsho5bs, samsho5, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Samurai Showdown V (Enable Hidden Characters v3.5)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, samsho5ch, samsho5, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Dodowang and Wesker", "Samurai Showdown V (Chinese Language and Boss Hack by Dodowang & Wesker)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, samsho5d, samsho5, neogeo_noslot, neogeo, neogeo_hbmame, sam5hb, ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V (decrypted C)" , MACHINE_SUPPORTS_SAVE )
+GAME( 2003, samsho5d1, samsho5, neogeo_noslot, neogeo, neogeo_hbmame, sam5hb, ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V (NGM-2700)(decrypted C)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, samsho5ge, samsho5, neogeo_noslot, neogeo, neogeo_hbmame, sam5hb, ROT0, "Shiro", "Samurai Shodown V (Genjuro Evil Edition hack by Shiro)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, samsho5hd, samsho5, neogeo_noslot, neogeo, neogeo_hbmame, sam5hb, ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V (NGH-2700)(decrypted C)", MACHINE_SUPPORTS_SAVE )
+GAME( 2008, samsho5s2, samsho5, neogeo_noslot, neogeo, neogeo_hbmame, sam5hb, ROT0, "hack", "Samurai Shodown V (Special v0.12 2008-08-26)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, samsho5x, samsho5, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Samurai Shodown V (XBOX version, hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2008, samsho5zk, samsho5, neogeo_noslot, neogeo, neogeo_hbmame, sam5hb, ROT0, "Zuojie, Kof1996", "Samurai Shodown V (Hack by Zuojie, Kof1996 2008-10-23)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 2004, samsh5spd, samsh5sp, neogeo_noslot, neogeo, neogeo_hbmame, sam5sphb, ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V Special / Samurai Spirits Zero Special (decrypted C)", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, samsh5spd1, samsh5sp, neogeo_noslot, neogeo, neogeo_hbmame, sam5sphb, ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V Special / Samurai Spirits Zero Special (NGM-2720)(decrypted C)", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, samsh5spd2, samsh5sp, neogeo_noslot, neogeo, neogeo_hbmame, sam5sphb, ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Spirits Zero Special / Samurai Showdown V Special (no encrypted P, decrypted C)", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, samsh5sph1, samsh5sp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Samurai Shodown V Special / Samurai Spirits Zero Special (Bloodlust hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, samsh5spha, samsh5sp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker", "Samurai Shodown V Special / Samurai Spirits Zero Special (Final set 1 hack by Wesker)", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, samsh5sphb, samsh5sp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker", "Samurai Shodown V Special / Samurai Spirits Zero Special (Final set 2 hack by Wesker)", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, samsh5sphc, samsh5sp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Wesker", "Samurai Shodown V Special / Samurai Spirits Zero Special (Final set 3 hack by Wesker)", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, samsh5sphd, samsh5sp, neogeo_noslot, neogeo, neogeo_hbmame, sam5sphb, ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V Special / Samurai Spirits Zero Special (NGH-2720)(1st release, censored)(decrypted C)", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, samsh5spn, samsh5sp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Samurai Shodown V Special / Samurai Spirits Zero Special (fully decrypted)", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, samsh5spnd, samsh5sp, neogeo_noslot, neogeo, neogeo_hbmame, sam5sphb, ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V Special / Samurai Spirits Zero Special (NGH-2720)(2nd release, less censored)(decrypted C)", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, samsh5spnh3,samsh5sp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Eddids / Snk2003", "Samurai Shodown V Special / Samurai Spirits Zero Special (Enhanced Blood v3.0 hack by Eddids, Snk2003)", MACHINE_SUPPORTS_SAVE )
+GAME( 2008, samsh5spnzk,samsh5sp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Zuojie / Kof1996", "Samurai Shodown V Special / Samurai Spirits Zero Special (Hack by Zuojie, Kof1996 2008-10-23)", MACHINE_SUPPORTS_SAVE )
+
+
+//PSmame
+
+
+ROM_START( samshos01 )
+ ROM_REGION( 0x180000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "045hc01.p1", 0x000000, 0x080000, CRC(faa95986) SHA1(89b14918422515a99ed7c0cdb87daada08b6ace8) )
+ ROM_LOAD16_WORD_SWAP( "045b.p3", 0x080000, 0x080000, CRC(71768728) SHA1(9ff0e01d3fb73ad04279d4fdf4c53c3160888179) )
+ ROM_LOAD16_WORD_SWAP( "045-p2.sp2", 0x100000, 0x080000, CRC(38ee9ba9) SHA1(48190699a6be83cb6257365ae81f93fdd23abe09) )
+
+ NEO_SFIX_128K( "045-s1.s1", CRC(9142a4d3) SHA1(54088e99fcfd75fd0f94852890a56350066a05a3) )
+
+ NEO_BIOS_AUDIO_128K( "045-m1.m1", CRC(95170640) SHA1(125c502db0693e8d11cef619b090081c14a9a300) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "045-v1.v1", 0x000000, 0x200000, CRC(37f78a9b) SHA1(6279b497d12fa90b49ab5ac3aae20fb302ec8b81) )
+ ROM_LOAD( "045-v2.v2", 0x200000, 0x200000, CRC(568b20cf) SHA1(61af858685472a1fad608e230cccc2b108509ddb) )
+
+ ROM_REGION( 0x900000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "045-c1.c1", 0x000000, 0x200000, CRC(2e5873a4) SHA1(65c74c1e2d34390666bbb630df7d1f4c9570c3db) )
+ ROM_LOAD16_BYTE( "045-c2.c2", 0x000001, 0x200000, CRC(04febb10) SHA1(16a8cbf0fd9468e81bf9eab6dbe7a8e3623a843e) )
+ ROM_LOAD16_BYTE( "045-c3.c3", 0x400000, 0x200000, CRC(f3dabd1e) SHA1(c80e52df42be9f8b2e89b467b11ab140a480cee8) )
+ ROM_LOAD16_BYTE( "045-c4.c4", 0x400001, 0x200000, CRC(935c62f0) SHA1(0053d40085fac14096b683f4341f65e543b71dc1) )
+ ROM_LOAD16_BYTE( "045-c5.c5", 0x800000, 0x080000, CRC(a2bb8284) SHA1(aa118e3b8c062daa219b36758b9a3814c08c69dc) )
+ ROM_LOAD16_BYTE( "045-c6.c6", 0x800001, 0x080000, CRC(4fa71252) SHA1(afe374a9d1f2d955a59efe7b6196b89e021b164c) )
+ROM_END
+
+ROM_START( samshos02 )
+ ROM_REGION( 0x180000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "045hc02.p1", 0x000000, 0x080000, CRC(86eef2c3) SHA1(0fef0075fdb88d08f691698535e6c89d80d262af) )
+ ROM_LOAD16_WORD_SWAP( "045b.p3", 0x080000, 0x080000, CRC(71768728) SHA1(9ff0e01d3fb73ad04279d4fdf4c53c3160888179) )
+ ROM_LOAD16_WORD_SWAP( "045-p2.sp2", 0x100000, 0x080000, CRC(38ee9ba9) SHA1(48190699a6be83cb6257365ae81f93fdd23abe09) )
+
+ NEO_SFIX_128K( "045-s1.s1", CRC(9142a4d3) SHA1(54088e99fcfd75fd0f94852890a56350066a05a3) )
+
+ NEO_BIOS_AUDIO_128K( "045-m1.m1", CRC(95170640) SHA1(125c502db0693e8d11cef619b090081c14a9a300) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "045-v1.v1", 0x000000, 0x200000, CRC(37f78a9b) SHA1(6279b497d12fa90b49ab5ac3aae20fb302ec8b81) )
+ ROM_LOAD( "045-v2.v2", 0x200000, 0x200000, CRC(568b20cf) SHA1(61af858685472a1fad608e230cccc2b108509ddb) )
+
+ ROM_REGION( 0x900000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "045-c1.c1", 0x000000, 0x200000, CRC(2e5873a4) SHA1(65c74c1e2d34390666bbb630df7d1f4c9570c3db) )
+ ROM_LOAD16_BYTE( "045-c2.c2", 0x000001, 0x200000, CRC(04febb10) SHA1(16a8cbf0fd9468e81bf9eab6dbe7a8e3623a843e) )
+ ROM_LOAD16_BYTE( "045-c3.c3", 0x400000, 0x200000, CRC(f3dabd1e) SHA1(c80e52df42be9f8b2e89b467b11ab140a480cee8) )
+ ROM_LOAD16_BYTE( "045-c4.c4", 0x400001, 0x200000, CRC(935c62f0) SHA1(0053d40085fac14096b683f4341f65e543b71dc1) )
+ ROM_LOAD16_BYTE( "045-c5.c5", 0x800000, 0x080000, CRC(a2bb8284) SHA1(aa118e3b8c062daa219b36758b9a3814c08c69dc) )
+ ROM_LOAD16_BYTE( "045-c6.c6", 0x800001, 0x080000, CRC(4fa71252) SHA1(afe374a9d1f2d955a59efe7b6196b89e021b164c) )
+ROM_END
+
+ROM_START( samshos03 )
+ ROM_REGION( 0x180000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "045hc03.p1", 0x000000, 0x080000, CRC(12416dfa) SHA1(f4357ff337239c35e31a013d51d80c0de3f43d74) )
+ ROM_LOAD16_WORD_SWAP( "045b.p3", 0x080000, 0x080000, CRC(71768728) SHA1(9ff0e01d3fb73ad04279d4fdf4c53c3160888179) )
+ ROM_LOAD16_WORD_SWAP( "045-p2.sp2", 0x100000, 0x080000, CRC(38ee9ba9) SHA1(48190699a6be83cb6257365ae81f93fdd23abe09) )
+
+ NEO_SFIX_128K( "045-s1.s1", CRC(9142a4d3) SHA1(54088e99fcfd75fd0f94852890a56350066a05a3) )
+
+ NEO_BIOS_AUDIO_128K( "045-m1.m1", CRC(95170640) SHA1(125c502db0693e8d11cef619b090081c14a9a300) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "045-v1.v1", 0x000000, 0x200000, CRC(37f78a9b) SHA1(6279b497d12fa90b49ab5ac3aae20fb302ec8b81) )
+ ROM_LOAD( "045-v2.v2", 0x200000, 0x200000, CRC(568b20cf) SHA1(61af858685472a1fad608e230cccc2b108509ddb) )
+
+ ROM_REGION( 0x900000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "045-c1.c1", 0x000000, 0x200000, CRC(2e5873a4) SHA1(65c74c1e2d34390666bbb630df7d1f4c9570c3db) )
+ ROM_LOAD16_BYTE( "045-c2.c2", 0x000001, 0x200000, CRC(04febb10) SHA1(16a8cbf0fd9468e81bf9eab6dbe7a8e3623a843e) )
+ ROM_LOAD16_BYTE( "045-c3.c3", 0x400000, 0x200000, CRC(f3dabd1e) SHA1(c80e52df42be9f8b2e89b467b11ab140a480cee8) )
+ ROM_LOAD16_BYTE( "045-c4.c4", 0x400001, 0x200000, CRC(935c62f0) SHA1(0053d40085fac14096b683f4341f65e543b71dc1) )
+ ROM_LOAD16_BYTE( "045-c5.c5", 0x800000, 0x080000, CRC(a2bb8284) SHA1(aa118e3b8c062daa219b36758b9a3814c08c69dc) )
+ ROM_LOAD16_BYTE( "045-c6.c6", 0x800001, 0x080000, CRC(4fa71252) SHA1(afe374a9d1f2d955a59efe7b6196b89e021b164c) )
+ROM_END
+
+ROM_START( samshos04 )
+ ROM_REGION( 0x180000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "045hc04.p1", 0x000000, 0x080000, CRC(80aa6c97) SHA1(6e07a4aa7b4719ae487a10cee9389cb55a370a7a) )
+ ROM_LOAD16_WORD_SWAP( "045b.p3", 0x080000, 0x080000, CRC(71768728) SHA1(9ff0e01d3fb73ad04279d4fdf4c53c3160888179) )
+ ROM_LOAD16_WORD_SWAP( "045-p2.sp2", 0x100000, 0x080000, CRC(38ee9ba9) SHA1(48190699a6be83cb6257365ae81f93fdd23abe09) )
+
+ NEO_SFIX_128K( "045-s1.s1", CRC(9142a4d3) SHA1(54088e99fcfd75fd0f94852890a56350066a05a3) )
+
+ NEO_BIOS_AUDIO_128K( "045-m1.m1", CRC(95170640) SHA1(125c502db0693e8d11cef619b090081c14a9a300) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "045-v1.v1", 0x000000, 0x200000, CRC(37f78a9b) SHA1(6279b497d12fa90b49ab5ac3aae20fb302ec8b81) )
+ ROM_LOAD( "045-v2.v2", 0x200000, 0x200000, CRC(568b20cf) SHA1(61af858685472a1fad608e230cccc2b108509ddb) )
+
+ ROM_REGION( 0x900000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "045-c1.c1", 0x000000, 0x200000, CRC(2e5873a4) SHA1(65c74c1e2d34390666bbb630df7d1f4c9570c3db) )
+ ROM_LOAD16_BYTE( "045-c2.c2", 0x000001, 0x200000, CRC(04febb10) SHA1(16a8cbf0fd9468e81bf9eab6dbe7a8e3623a843e) )
+ ROM_LOAD16_BYTE( "045-c3.c3", 0x400000, 0x200000, CRC(f3dabd1e) SHA1(c80e52df42be9f8b2e89b467b11ab140a480cee8) )
+ ROM_LOAD16_BYTE( "045-c4.c4", 0x400001, 0x200000, CRC(935c62f0) SHA1(0053d40085fac14096b683f4341f65e543b71dc1) )
+ ROM_LOAD16_BYTE( "045-c5.c5", 0x800000, 0x080000, CRC(a2bb8284) SHA1(aa118e3b8c062daa219b36758b9a3814c08c69dc) )
+ ROM_LOAD16_BYTE( "045-c6.c6", 0x800001, 0x080000, CRC(4fa71252) SHA1(afe374a9d1f2d955a59efe7b6196b89e021b164c) )
+ROM_END
+
+ROM_START( samshos07 )
+ ROM_REGION( 0x180000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "045hc07.p1", 0x000000, 0x080000, CRC(6854db11) SHA1(0b6ab73b84cafdeca79bfb3bb89f6ec7cee4bd12) )
+ ROM_LOAD16_WORD_SWAP( "045b.p3", 0x080000, 0x080000, CRC(71768728) SHA1(9ff0e01d3fb73ad04279d4fdf4c53c3160888179) )
+ ROM_LOAD16_WORD_SWAP( "045-p2.sp2", 0x100000, 0x080000, CRC(38ee9ba9) SHA1(48190699a6be83cb6257365ae81f93fdd23abe09) )
+
+ NEO_SFIX_128K( "045-s1.s1", CRC(9142a4d3) SHA1(54088e99fcfd75fd0f94852890a56350066a05a3) )
+
+ NEO_BIOS_AUDIO_128K( "045-m1.m1", CRC(95170640) SHA1(125c502db0693e8d11cef619b090081c14a9a300) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "045-v1.v1", 0x000000, 0x200000, CRC(37f78a9b) SHA1(6279b497d12fa90b49ab5ac3aae20fb302ec8b81) )
+ ROM_LOAD( "045-v2.v2", 0x200000, 0x200000, CRC(568b20cf) SHA1(61af858685472a1fad608e230cccc2b108509ddb) )
+
+ ROM_REGION( 0x900000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "045-c1.c1", 0x000000, 0x200000, CRC(2e5873a4) SHA1(65c74c1e2d34390666bbb630df7d1f4c9570c3db) )
+ ROM_LOAD16_BYTE( "045-c2.c2", 0x000001, 0x200000, CRC(04febb10) SHA1(16a8cbf0fd9468e81bf9eab6dbe7a8e3623a843e) )
+ ROM_LOAD16_BYTE( "045-c3.c3", 0x400000, 0x200000, CRC(f3dabd1e) SHA1(c80e52df42be9f8b2e89b467b11ab140a480cee8) )
+ ROM_LOAD16_BYTE( "045-c4.c4", 0x400001, 0x200000, CRC(935c62f0) SHA1(0053d40085fac14096b683f4341f65e543b71dc1) )
+ ROM_LOAD16_BYTE( "045-c5.c5", 0x800000, 0x080000, CRC(a2bb8284) SHA1(aa118e3b8c062daa219b36758b9a3814c08c69dc) )
+ ROM_LOAD16_BYTE( "045-c6.c6", 0x800001, 0x080000, CRC(4fa71252) SHA1(afe374a9d1f2d955a59efe7b6196b89e021b164c) )
+ROM_END
+
+ /****************************************
+ Samurai Shodown II
+*****************************************/
+
+ROM_START( samsho2s01 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "063hc01.p1", 0x100000, 0x100000, CRC(22068d5b) SHA1(5f0d0d70292796e214491ee1274d14d4906c61d9) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "063-s1.s1", CRC(64a5cd66) SHA1(12cdfb27bf9ccd5a8df6ddd4628ef7cf2c6d4964) )
+
+ NEO_BIOS_AUDIO_128K( "063-m1.m1", CRC(56675098) SHA1(90429fc40d056d480d0e2bbefbc691d9fa260fc4) )
+
+ ROM_REGION( 0x700000, "ymsnd", 0 )
+ ROM_LOAD( "063-v1.v1", 0x000000, 0x200000, CRC(37703f91) SHA1(a373ebef4c33ba1d8340e826981a58769aada238) )
+ ROM_LOAD( "063-v2.v2", 0x200000, 0x200000, CRC(0142bde8) SHA1(0be6c53acac44802bf70b6925452f70289a139d9) )
+ ROM_LOAD( "063-v3.v3", 0x400000, 0x200000, CRC(d07fa5ca) SHA1(1da7f081f8b8fc86a91feacf900f573218d82676) )
+ ROM_LOAD( "063-v4.v4", 0x600000, 0x100000, CRC(24aab4bb) SHA1(10ee4c5b3579865b93dcc1e4079963276aa700a6) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "063-c1.c1", 0x000000, 0x200000, CRC(86cd307c) SHA1(0d04336f7c436d74638d8c1cd8651faf436a6bec) )
+ ROM_LOAD16_BYTE( "063-c2.c2", 0x000001, 0x200000, CRC(cdfcc4ca) SHA1(179dc81432424d68cefedd20cc1c4b2a95deb891) )
+ ROM_LOAD16_BYTE( "063-c3.c3", 0x400000, 0x200000, CRC(7a63ccc7) SHA1(49d97c543bc2860d493a353ab0d059088c6fbd21) )
+ ROM_LOAD16_BYTE( "063-c4.c4", 0x400001, 0x200000, CRC(751025ce) SHA1(e1bbaa7cd67fd04e4aab7f7ea77f63ae1cbc90d0) )
+ ROM_LOAD16_BYTE( "063-c5.c5", 0x800000, 0x200000, CRC(20d3a475) SHA1(28da44a136bd14c73c62c147c3f6e6bcfa1066de) )
+ ROM_LOAD16_BYTE( "063-c6.c6", 0x800001, 0x200000, CRC(ae4c0a88) SHA1(cc8a7d11daa3821f83a6fd0942534706f939e576) )
+ ROM_LOAD16_BYTE( "063-c7.c7", 0xc00000, 0x200000, CRC(2df3cbcf) SHA1(e54f9022359963711451c2025825b862d36c6975) )
+ ROM_LOAD16_BYTE( "063-c8.c8", 0xc00001, 0x200000, CRC(1ffc6dfa) SHA1(acea18aca76c072e0bac2a364fc96d49cfc86e77) )
+ROM_END
+
+ROM_START( samsho2s02 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "063hc02.p1", 0x100000, 0x100000, CRC(fbd02dae) SHA1(4275385a9df55602f0b2c811f764507e3e68929b) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "063-s1.s1", CRC(64a5cd66) SHA1(12cdfb27bf9ccd5a8df6ddd4628ef7cf2c6d4964) )
+
+ NEO_BIOS_AUDIO_128K( "063-m1.m1", CRC(56675098) SHA1(90429fc40d056d480d0e2bbefbc691d9fa260fc4) )
+
+ ROM_REGION( 0x700000, "ymsnd", 0 )
+ ROM_LOAD( "063-v1.v1", 0x000000, 0x200000, CRC(37703f91) SHA1(a373ebef4c33ba1d8340e826981a58769aada238) )
+ ROM_LOAD( "063-v2.v2", 0x200000, 0x200000, CRC(0142bde8) SHA1(0be6c53acac44802bf70b6925452f70289a139d9) )
+ ROM_LOAD( "063-v3.v3", 0x400000, 0x200000, CRC(d07fa5ca) SHA1(1da7f081f8b8fc86a91feacf900f573218d82676) )
+ ROM_LOAD( "063-v4.v4", 0x600000, 0x100000, CRC(24aab4bb) SHA1(10ee4c5b3579865b93dcc1e4079963276aa700a6) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "063-c1.c1", 0x000000, 0x200000, CRC(86cd307c) SHA1(0d04336f7c436d74638d8c1cd8651faf436a6bec) )
+ ROM_LOAD16_BYTE( "063-c2.c2", 0x000001, 0x200000, CRC(cdfcc4ca) SHA1(179dc81432424d68cefedd20cc1c4b2a95deb891) )
+ ROM_LOAD16_BYTE( "063-c3.c3", 0x400000, 0x200000, CRC(7a63ccc7) SHA1(49d97c543bc2860d493a353ab0d059088c6fbd21) )
+ ROM_LOAD16_BYTE( "063-c4.c4", 0x400001, 0x200000, CRC(751025ce) SHA1(e1bbaa7cd67fd04e4aab7f7ea77f63ae1cbc90d0) )
+ ROM_LOAD16_BYTE( "063-c5.c5", 0x800000, 0x200000, CRC(20d3a475) SHA1(28da44a136bd14c73c62c147c3f6e6bcfa1066de) )
+ ROM_LOAD16_BYTE( "063-c6.c6", 0x800001, 0x200000, CRC(ae4c0a88) SHA1(cc8a7d11daa3821f83a6fd0942534706f939e576) )
+ ROM_LOAD16_BYTE( "063-c7.c7", 0xc00000, 0x200000, CRC(2df3cbcf) SHA1(e54f9022359963711451c2025825b862d36c6975) )
+ ROM_LOAD16_BYTE( "063-c8.c8", 0xc00001, 0x200000, CRC(1ffc6dfa) SHA1(acea18aca76c072e0bac2a364fc96d49cfc86e77) )
+ROM_END
+
+ROM_START( samsho2s03 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "063hc03.p1", 0x100000, 0x100000, CRC(7ab45a4c) SHA1(82a2dde5f2558b377bfe34b8a91e1b9dd080be6e) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "063-s1.s1", CRC(64a5cd66) SHA1(12cdfb27bf9ccd5a8df6ddd4628ef7cf2c6d4964) )
+
+ NEO_BIOS_AUDIO_128K( "063-m1.m1", CRC(56675098) SHA1(90429fc40d056d480d0e2bbefbc691d9fa260fc4) )
+
+ ROM_REGION( 0x700000, "ymsnd", 0 )
+ ROM_LOAD( "063-v1.v1", 0x000000, 0x200000, CRC(37703f91) SHA1(a373ebef4c33ba1d8340e826981a58769aada238) )
+ ROM_LOAD( "063-v2.v2", 0x200000, 0x200000, CRC(0142bde8) SHA1(0be6c53acac44802bf70b6925452f70289a139d9) )
+ ROM_LOAD( "063-v3.v3", 0x400000, 0x200000, CRC(d07fa5ca) SHA1(1da7f081f8b8fc86a91feacf900f573218d82676) )
+ ROM_LOAD( "063-v4.v4", 0x600000, 0x100000, CRC(24aab4bb) SHA1(10ee4c5b3579865b93dcc1e4079963276aa700a6) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "063-c1.c1", 0x000000, 0x200000, CRC(86cd307c) SHA1(0d04336f7c436d74638d8c1cd8651faf436a6bec) )
+ ROM_LOAD16_BYTE( "063-c2.c2", 0x000001, 0x200000, CRC(cdfcc4ca) SHA1(179dc81432424d68cefedd20cc1c4b2a95deb891) )
+ ROM_LOAD16_BYTE( "063-c3.c3", 0x400000, 0x200000, CRC(7a63ccc7) SHA1(49d97c543bc2860d493a353ab0d059088c6fbd21) )
+ ROM_LOAD16_BYTE( "063-c4.c4", 0x400001, 0x200000, CRC(751025ce) SHA1(e1bbaa7cd67fd04e4aab7f7ea77f63ae1cbc90d0) )
+ ROM_LOAD16_BYTE( "063-c5.c5", 0x800000, 0x200000, CRC(20d3a475) SHA1(28da44a136bd14c73c62c147c3f6e6bcfa1066de) )
+ ROM_LOAD16_BYTE( "063-c6.c6", 0x800001, 0x200000, CRC(ae4c0a88) SHA1(cc8a7d11daa3821f83a6fd0942534706f939e576) )
+ ROM_LOAD16_BYTE( "063-c7.c7", 0xc00000, 0x200000, CRC(2df3cbcf) SHA1(e54f9022359963711451c2025825b862d36c6975) )
+ ROM_LOAD16_BYTE( "063-c8.c8", 0xc00001, 0x200000, CRC(1ffc6dfa) SHA1(acea18aca76c072e0bac2a364fc96d49cfc86e77) )
+ROM_END
+
+ROM_START( samsho2s04 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "063hc04.p1", 0x100000, 0x100000, CRC(322b9b7d) SHA1(b60c29374222abe5ee750dda05908017016949ce) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "063-s1.s1", CRC(64a5cd66) SHA1(12cdfb27bf9ccd5a8df6ddd4628ef7cf2c6d4964) )
+
+ NEO_BIOS_AUDIO_128K( "063-m1.m1", CRC(56675098) SHA1(90429fc40d056d480d0e2bbefbc691d9fa260fc4) )
+
+ ROM_REGION( 0x700000, "ymsnd", 0 )
+ ROM_LOAD( "063-v1.v1", 0x000000, 0x200000, CRC(37703f91) SHA1(a373ebef4c33ba1d8340e826981a58769aada238) )
+ ROM_LOAD( "063-v2.v2", 0x200000, 0x200000, CRC(0142bde8) SHA1(0be6c53acac44802bf70b6925452f70289a139d9) )
+ ROM_LOAD( "063-v3.v3", 0x400000, 0x200000, CRC(d07fa5ca) SHA1(1da7f081f8b8fc86a91feacf900f573218d82676) )
+ ROM_LOAD( "063-v4.v4", 0x600000, 0x100000, CRC(24aab4bb) SHA1(10ee4c5b3579865b93dcc1e4079963276aa700a6) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "063-c1.c1", 0x000000, 0x200000, CRC(86cd307c) SHA1(0d04336f7c436d74638d8c1cd8651faf436a6bec) )
+ ROM_LOAD16_BYTE( "063-c2.c2", 0x000001, 0x200000, CRC(cdfcc4ca) SHA1(179dc81432424d68cefedd20cc1c4b2a95deb891) )
+ ROM_LOAD16_BYTE( "063-c3.c3", 0x400000, 0x200000, CRC(7a63ccc7) SHA1(49d97c543bc2860d493a353ab0d059088c6fbd21) )
+ ROM_LOAD16_BYTE( "063-c4.c4", 0x400001, 0x200000, CRC(751025ce) SHA1(e1bbaa7cd67fd04e4aab7f7ea77f63ae1cbc90d0) )
+ ROM_LOAD16_BYTE( "063-c5.c5", 0x800000, 0x200000, CRC(20d3a475) SHA1(28da44a136bd14c73c62c147c3f6e6bcfa1066de) )
+ ROM_LOAD16_BYTE( "063-c6.c6", 0x800001, 0x200000, CRC(ae4c0a88) SHA1(cc8a7d11daa3821f83a6fd0942534706f939e576) )
+ ROM_LOAD16_BYTE( "063-c7.c7", 0xc00000, 0x200000, CRC(2df3cbcf) SHA1(e54f9022359963711451c2025825b862d36c6975) )
+ ROM_LOAD16_BYTE( "063-c8.c8", 0xc00001, 0x200000, CRC(1ffc6dfa) SHA1(acea18aca76c072e0bac2a364fc96d49cfc86e77) )
+ROM_END
+
+ROM_START( samsho2s05 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "063hc05.p1", 0x100000, 0x100000, CRC(f1971121) SHA1(fd03a7cb382c5d285756c9bb02fcc88aeaafa9ba) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "063-s1.s1", CRC(64a5cd66) SHA1(12cdfb27bf9ccd5a8df6ddd4628ef7cf2c6d4964) )
+
+ NEO_BIOS_AUDIO_128K( "063-m1.m1", CRC(56675098) SHA1(90429fc40d056d480d0e2bbefbc691d9fa260fc4) )
+
+ ROM_REGION( 0x700000, "ymsnd", 0 )
+ ROM_LOAD( "063-v1.v1", 0x000000, 0x200000, CRC(37703f91) SHA1(a373ebef4c33ba1d8340e826981a58769aada238) )
+ ROM_LOAD( "063-v2.v2", 0x200000, 0x200000, CRC(0142bde8) SHA1(0be6c53acac44802bf70b6925452f70289a139d9) )
+ ROM_LOAD( "063-v3.v3", 0x400000, 0x200000, CRC(d07fa5ca) SHA1(1da7f081f8b8fc86a91feacf900f573218d82676) )
+ ROM_LOAD( "063-v4.v4", 0x600000, 0x100000, CRC(24aab4bb) SHA1(10ee4c5b3579865b93dcc1e4079963276aa700a6) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "063-c1.c1", 0x000000, 0x200000, CRC(86cd307c) SHA1(0d04336f7c436d74638d8c1cd8651faf436a6bec) )
+ ROM_LOAD16_BYTE( "063-c2.c2", 0x000001, 0x200000, CRC(cdfcc4ca) SHA1(179dc81432424d68cefedd20cc1c4b2a95deb891) )
+ ROM_LOAD16_BYTE( "063-c3.c3", 0x400000, 0x200000, CRC(7a63ccc7) SHA1(49d97c543bc2860d493a353ab0d059088c6fbd21) )
+ ROM_LOAD16_BYTE( "063-c4.c4", 0x400001, 0x200000, CRC(751025ce) SHA1(e1bbaa7cd67fd04e4aab7f7ea77f63ae1cbc90d0) )
+ ROM_LOAD16_BYTE( "063-c5.c5", 0x800000, 0x200000, CRC(20d3a475) SHA1(28da44a136bd14c73c62c147c3f6e6bcfa1066de) )
+ ROM_LOAD16_BYTE( "063-c6.c6", 0x800001, 0x200000, CRC(ae4c0a88) SHA1(cc8a7d11daa3821f83a6fd0942534706f939e576) )
+ ROM_LOAD16_BYTE( "063-c7.c7", 0xc00000, 0x200000, CRC(2df3cbcf) SHA1(e54f9022359963711451c2025825b862d36c6975) )
+ ROM_LOAD16_BYTE( "063-c8.c8", 0xc00001, 0x200000, CRC(1ffc6dfa) SHA1(acea18aca76c072e0bac2a364fc96d49cfc86e77) )
+ROM_END
+
+ROM_START( samsho2s06 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "063hc06.p1", 0x100000, 0x100000, CRC(040459c5) SHA1(fbc48332123cbe9299e5430eb167e2ece067dbb4) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "063-s1.s1", CRC(64a5cd66) SHA1(12cdfb27bf9ccd5a8df6ddd4628ef7cf2c6d4964) )
+
+ NEO_BIOS_AUDIO_128K( "063-m1.m1", CRC(56675098) SHA1(90429fc40d056d480d0e2bbefbc691d9fa260fc4) )
+
+ ROM_REGION( 0x700000, "ymsnd", 0 )
+ ROM_LOAD( "063-v1.v1", 0x000000, 0x200000, CRC(37703f91) SHA1(a373ebef4c33ba1d8340e826981a58769aada238) )
+ ROM_LOAD( "063-v2.v2", 0x200000, 0x200000, CRC(0142bde8) SHA1(0be6c53acac44802bf70b6925452f70289a139d9) )
+ ROM_LOAD( "063-v3.v3", 0x400000, 0x200000, CRC(d07fa5ca) SHA1(1da7f081f8b8fc86a91feacf900f573218d82676) )
+ ROM_LOAD( "063-v4.v4", 0x600000, 0x100000, CRC(24aab4bb) SHA1(10ee4c5b3579865b93dcc1e4079963276aa700a6) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "063-c1.c1", 0x000000, 0x200000, CRC(86cd307c) SHA1(0d04336f7c436d74638d8c1cd8651faf436a6bec) )
+ ROM_LOAD16_BYTE( "063-c2.c2", 0x000001, 0x200000, CRC(cdfcc4ca) SHA1(179dc81432424d68cefedd20cc1c4b2a95deb891) )
+ ROM_LOAD16_BYTE( "063-c3.c3", 0x400000, 0x200000, CRC(7a63ccc7) SHA1(49d97c543bc2860d493a353ab0d059088c6fbd21) )
+ ROM_LOAD16_BYTE( "063-c4.c4", 0x400001, 0x200000, CRC(751025ce) SHA1(e1bbaa7cd67fd04e4aab7f7ea77f63ae1cbc90d0) )
+ ROM_LOAD16_BYTE( "063-c5.c5", 0x800000, 0x200000, CRC(20d3a475) SHA1(28da44a136bd14c73c62c147c3f6e6bcfa1066de) )
+ ROM_LOAD16_BYTE( "063-c6.c6", 0x800001, 0x200000, CRC(ae4c0a88) SHA1(cc8a7d11daa3821f83a6fd0942534706f939e576) )
+ ROM_LOAD16_BYTE( "063-c7.c7", 0xc00000, 0x200000, CRC(2df3cbcf) SHA1(e54f9022359963711451c2025825b862d36c6975) )
+ ROM_LOAD16_BYTE( "063-c8.c8", 0xc00001, 0x200000, CRC(1ffc6dfa) SHA1(acea18aca76c072e0bac2a364fc96d49cfc86e77) )
+ROM_END
+
+ROM_START( samsho2s07 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "063hc07.p1", 0x100000, 0x100000, CRC(669a7a14) SHA1(e06e08848db161ca1a140919d5f9529c3d88867c) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "063-s1.s1", CRC(64a5cd66) SHA1(12cdfb27bf9ccd5a8df6ddd4628ef7cf2c6d4964) )
+
+ NEO_BIOS_AUDIO_128K( "063-m1.m1", CRC(56675098) SHA1(90429fc40d056d480d0e2bbefbc691d9fa260fc4) )
+
+ ROM_REGION( 0x700000, "ymsnd", 0 )
+ ROM_LOAD( "063-v1.v1", 0x000000, 0x200000, CRC(37703f91) SHA1(a373ebef4c33ba1d8340e826981a58769aada238) )
+ ROM_LOAD( "063-v2.v2", 0x200000, 0x200000, CRC(0142bde8) SHA1(0be6c53acac44802bf70b6925452f70289a139d9) )
+ ROM_LOAD( "063-v3.v3", 0x400000, 0x200000, CRC(d07fa5ca) SHA1(1da7f081f8b8fc86a91feacf900f573218d82676) )
+ ROM_LOAD( "063-v4.v4", 0x600000, 0x100000, CRC(24aab4bb) SHA1(10ee4c5b3579865b93dcc1e4079963276aa700a6) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "063-c1.c1", 0x000000, 0x200000, CRC(86cd307c) SHA1(0d04336f7c436d74638d8c1cd8651faf436a6bec) )
+ ROM_LOAD16_BYTE( "063-c2.c2", 0x000001, 0x200000, CRC(cdfcc4ca) SHA1(179dc81432424d68cefedd20cc1c4b2a95deb891) )
+ ROM_LOAD16_BYTE( "063-c3.c3", 0x400000, 0x200000, CRC(7a63ccc7) SHA1(49d97c543bc2860d493a353ab0d059088c6fbd21) )
+ ROM_LOAD16_BYTE( "063-c4.c4", 0x400001, 0x200000, CRC(751025ce) SHA1(e1bbaa7cd67fd04e4aab7f7ea77f63ae1cbc90d0) )
+ ROM_LOAD16_BYTE( "063-c5.c5", 0x800000, 0x200000, CRC(20d3a475) SHA1(28da44a136bd14c73c62c147c3f6e6bcfa1066de) )
+ ROM_LOAD16_BYTE( "063-c6.c6", 0x800001, 0x200000, CRC(ae4c0a88) SHA1(cc8a7d11daa3821f83a6fd0942534706f939e576) )
+ ROM_LOAD16_BYTE( "063-c7.c7", 0xc00000, 0x200000, CRC(2df3cbcf) SHA1(e54f9022359963711451c2025825b862d36c6975) )
+ ROM_LOAD16_BYTE( "063-c8.c8", 0xc00001, 0x200000, CRC(1ffc6dfa) SHA1(acea18aca76c072e0bac2a364fc96d49cfc86e77) )
+ROM_END
+
+ROM_START( samsho2s08 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "063hc08.p1", 0x100000, 0x100000, CRC(1361d0c6) SHA1(ffbe85da762a7975937379bd96bc4182d598ea33) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "063-s1.s1", CRC(64a5cd66) SHA1(12cdfb27bf9ccd5a8df6ddd4628ef7cf2c6d4964) )
+
+ NEO_BIOS_AUDIO_128K( "063-m1.m1", CRC(56675098) SHA1(90429fc40d056d480d0e2bbefbc691d9fa260fc4) )
+
+ ROM_REGION( 0x700000, "ymsnd", 0 )
+ ROM_LOAD( "063-v1.v1", 0x000000, 0x200000, CRC(37703f91) SHA1(a373ebef4c33ba1d8340e826981a58769aada238) )
+ ROM_LOAD( "063-v2.v2", 0x200000, 0x200000, CRC(0142bde8) SHA1(0be6c53acac44802bf70b6925452f70289a139d9) )
+ ROM_LOAD( "063-v3.v3", 0x400000, 0x200000, CRC(d07fa5ca) SHA1(1da7f081f8b8fc86a91feacf900f573218d82676) )
+ ROM_LOAD( "063-v4.v4", 0x600000, 0x100000, CRC(24aab4bb) SHA1(10ee4c5b3579865b93dcc1e4079963276aa700a6) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "063-c1.c1", 0x000000, 0x200000, CRC(86cd307c) SHA1(0d04336f7c436d74638d8c1cd8651faf436a6bec) )
+ ROM_LOAD16_BYTE( "063-c2.c2", 0x000001, 0x200000, CRC(cdfcc4ca) SHA1(179dc81432424d68cefedd20cc1c4b2a95deb891) )
+ ROM_LOAD16_BYTE( "063-c3.c3", 0x400000, 0x200000, CRC(7a63ccc7) SHA1(49d97c543bc2860d493a353ab0d059088c6fbd21) )
+ ROM_LOAD16_BYTE( "063-c4.c4", 0x400001, 0x200000, CRC(751025ce) SHA1(e1bbaa7cd67fd04e4aab7f7ea77f63ae1cbc90d0) )
+ ROM_LOAD16_BYTE( "063-c5.c5", 0x800000, 0x200000, CRC(20d3a475) SHA1(28da44a136bd14c73c62c147c3f6e6bcfa1066de) )
+ ROM_LOAD16_BYTE( "063-c6.c6", 0x800001, 0x200000, CRC(ae4c0a88) SHA1(cc8a7d11daa3821f83a6fd0942534706f939e576) )
+ ROM_LOAD16_BYTE( "063-c7.c7", 0xc00000, 0x200000, CRC(2df3cbcf) SHA1(e54f9022359963711451c2025825b862d36c6975) )
+ ROM_LOAD16_BYTE( "063-c8.c8", 0xc00001, 0x200000, CRC(1ffc6dfa) SHA1(acea18aca76c072e0bac2a364fc96d49cfc86e77) )
+ROM_END
+
+ROM_START( samsho2s09 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "063hc09.p1", 0x100000, 0x100000, CRC(890859e1) SHA1(10e8c15f2fc4d94f3cee44ec35037dbe5af304dd) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "063-s1.s1", CRC(64a5cd66) SHA1(12cdfb27bf9ccd5a8df6ddd4628ef7cf2c6d4964) )
+
+ NEO_BIOS_AUDIO_128K( "063-m1.m1", CRC(56675098) SHA1(90429fc40d056d480d0e2bbefbc691d9fa260fc4) )
+
+ ROM_REGION( 0x700000, "ymsnd", 0 )
+ ROM_LOAD( "063-v1.v1", 0x000000, 0x200000, CRC(37703f91) SHA1(a373ebef4c33ba1d8340e826981a58769aada238) )
+ ROM_LOAD( "063-v2.v2", 0x200000, 0x200000, CRC(0142bde8) SHA1(0be6c53acac44802bf70b6925452f70289a139d9) )
+ ROM_LOAD( "063-v3.v3", 0x400000, 0x200000, CRC(d07fa5ca) SHA1(1da7f081f8b8fc86a91feacf900f573218d82676) )
+ ROM_LOAD( "063-v4.v4", 0x600000, 0x100000, CRC(24aab4bb) SHA1(10ee4c5b3579865b93dcc1e4079963276aa700a6) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "063-c1.c1", 0x000000, 0x200000, CRC(86cd307c) SHA1(0d04336f7c436d74638d8c1cd8651faf436a6bec) )
+ ROM_LOAD16_BYTE( "063-c2.c2", 0x000001, 0x200000, CRC(cdfcc4ca) SHA1(179dc81432424d68cefedd20cc1c4b2a95deb891) )
+ ROM_LOAD16_BYTE( "063-c3.c3", 0x400000, 0x200000, CRC(7a63ccc7) SHA1(49d97c543bc2860d493a353ab0d059088c6fbd21) )
+ ROM_LOAD16_BYTE( "063-c4.c4", 0x400001, 0x200000, CRC(751025ce) SHA1(e1bbaa7cd67fd04e4aab7f7ea77f63ae1cbc90d0) )
+ ROM_LOAD16_BYTE( "063-c5.c5", 0x800000, 0x200000, CRC(20d3a475) SHA1(28da44a136bd14c73c62c147c3f6e6bcfa1066de) )
+ ROM_LOAD16_BYTE( "063-c6.c6", 0x800001, 0x200000, CRC(ae4c0a88) SHA1(cc8a7d11daa3821f83a6fd0942534706f939e576) )
+ ROM_LOAD16_BYTE( "063-c7.c7", 0xc00000, 0x200000, CRC(2df3cbcf) SHA1(e54f9022359963711451c2025825b862d36c6975) )
+ ROM_LOAD16_BYTE( "063-c8.c8", 0xc00001, 0x200000, CRC(1ffc6dfa) SHA1(acea18aca76c072e0bac2a364fc96d49cfc86e77) )
+ROM_END
+
+ROM_START( samsho2s10 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "063hc10.p1", 0x100000, 0x100000, CRC(25551ca9) SHA1(07b76e444b1ae70f747a836de5bc332f6633fb23) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "063-s1.s1", CRC(64a5cd66) SHA1(12cdfb27bf9ccd5a8df6ddd4628ef7cf2c6d4964) )
+
+ NEO_BIOS_AUDIO_128K( "063-m1.m1", CRC(56675098) SHA1(90429fc40d056d480d0e2bbefbc691d9fa260fc4) )
+
+ ROM_REGION( 0x700000, "ymsnd", 0 )
+ ROM_LOAD( "063-v1.v1", 0x000000, 0x200000, CRC(37703f91) SHA1(a373ebef4c33ba1d8340e826981a58769aada238) )
+ ROM_LOAD( "063-v2.v2", 0x200000, 0x200000, CRC(0142bde8) SHA1(0be6c53acac44802bf70b6925452f70289a139d9) )
+ ROM_LOAD( "063-v3.v3", 0x400000, 0x200000, CRC(d07fa5ca) SHA1(1da7f081f8b8fc86a91feacf900f573218d82676) )
+ ROM_LOAD( "063-v4.v4", 0x600000, 0x100000, CRC(24aab4bb) SHA1(10ee4c5b3579865b93dcc1e4079963276aa700a6) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "063-c1.c1", 0x000000, 0x200000, CRC(86cd307c) SHA1(0d04336f7c436d74638d8c1cd8651faf436a6bec) )
+ ROM_LOAD16_BYTE( "063-c2.c2", 0x000001, 0x200000, CRC(cdfcc4ca) SHA1(179dc81432424d68cefedd20cc1c4b2a95deb891) )
+ ROM_LOAD16_BYTE( "063-c3.c3", 0x400000, 0x200000, CRC(7a63ccc7) SHA1(49d97c543bc2860d493a353ab0d059088c6fbd21) )
+ ROM_LOAD16_BYTE( "063-c4.c4", 0x400001, 0x200000, CRC(751025ce) SHA1(e1bbaa7cd67fd04e4aab7f7ea77f63ae1cbc90d0) )
+ ROM_LOAD16_BYTE( "063-c5.c5", 0x800000, 0x200000, CRC(20d3a475) SHA1(28da44a136bd14c73c62c147c3f6e6bcfa1066de) )
+ ROM_LOAD16_BYTE( "063-c6.c6", 0x800001, 0x200000, CRC(ae4c0a88) SHA1(cc8a7d11daa3821f83a6fd0942534706f939e576) )
+ ROM_LOAD16_BYTE( "063-c7.c7", 0xc00000, 0x200000, CRC(2df3cbcf) SHA1(e54f9022359963711451c2025825b862d36c6975) )
+ ROM_LOAD16_BYTE( "063-c8.c8", 0xc00001, 0x200000, CRC(1ffc6dfa) SHA1(acea18aca76c072e0bac2a364fc96d49cfc86e77) )
+ROM_END
+
+ROM_START( samsho2s11 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "063hc11.p1", 0x100000, 0x100000, CRC(e920c392) SHA1(2c0ce421a3dec98a55c1d69e13153ff9640e5b6e) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "063-s1.s1", CRC(64a5cd66) SHA1(12cdfb27bf9ccd5a8df6ddd4628ef7cf2c6d4964) )
+
+ NEO_BIOS_AUDIO_128K( "063-m1.m1", CRC(56675098) SHA1(90429fc40d056d480d0e2bbefbc691d9fa260fc4) )
+
+ ROM_REGION( 0x700000, "ymsnd", 0 )
+ ROM_LOAD( "063-v1.v1", 0x000000, 0x200000, CRC(37703f91) SHA1(a373ebef4c33ba1d8340e826981a58769aada238) )
+ ROM_LOAD( "063-v2.v2", 0x200000, 0x200000, CRC(0142bde8) SHA1(0be6c53acac44802bf70b6925452f70289a139d9) )
+ ROM_LOAD( "063-v3.v3", 0x400000, 0x200000, CRC(d07fa5ca) SHA1(1da7f081f8b8fc86a91feacf900f573218d82676) )
+ ROM_LOAD( "063-v4.v4", 0x600000, 0x100000, CRC(24aab4bb) SHA1(10ee4c5b3579865b93dcc1e4079963276aa700a6) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "063-c1.c1", 0x000000, 0x200000, CRC(86cd307c) SHA1(0d04336f7c436d74638d8c1cd8651faf436a6bec) )
+ ROM_LOAD16_BYTE( "063-c2.c2", 0x000001, 0x200000, CRC(cdfcc4ca) SHA1(179dc81432424d68cefedd20cc1c4b2a95deb891) )
+ ROM_LOAD16_BYTE( "063-c3.c3", 0x400000, 0x200000, CRC(7a63ccc7) SHA1(49d97c543bc2860d493a353ab0d059088c6fbd21) )
+ ROM_LOAD16_BYTE( "063-c4.c4", 0x400001, 0x200000, CRC(751025ce) SHA1(e1bbaa7cd67fd04e4aab7f7ea77f63ae1cbc90d0) )
+ ROM_LOAD16_BYTE( "063-c5.c5", 0x800000, 0x200000, CRC(20d3a475) SHA1(28da44a136bd14c73c62c147c3f6e6bcfa1066de) )
+ ROM_LOAD16_BYTE( "063-c6.c6", 0x800001, 0x200000, CRC(ae4c0a88) SHA1(cc8a7d11daa3821f83a6fd0942534706f939e576) )
+ ROM_LOAD16_BYTE( "063-c7.c7", 0xc00000, 0x200000, CRC(2df3cbcf) SHA1(e54f9022359963711451c2025825b862d36c6975) )
+ ROM_LOAD16_BYTE( "063-c8.c8", 0xc00001, 0x200000, CRC(1ffc6dfa) SHA1(acea18aca76c072e0bac2a364fc96d49cfc86e77) )
+ROM_END
+
+ROM_START( samsho2s12 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "063hc12.p1", 0x100000, 0x100000, CRC(0caf5ab3) SHA1(b881a5bcf1729609e6e69967b22189d11b48a1f0) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "063-s1.s1", CRC(64a5cd66) SHA1(12cdfb27bf9ccd5a8df6ddd4628ef7cf2c6d4964) )
+
+ NEO_BIOS_AUDIO_128K( "063-m1.m1", CRC(56675098) SHA1(90429fc40d056d480d0e2bbefbc691d9fa260fc4) )
+
+ ROM_REGION( 0x700000, "ymsnd", 0 )
+ ROM_LOAD( "063-v1.v1", 0x000000, 0x200000, CRC(37703f91) SHA1(a373ebef4c33ba1d8340e826981a58769aada238) )
+ ROM_LOAD( "063-v2.v2", 0x200000, 0x200000, CRC(0142bde8) SHA1(0be6c53acac44802bf70b6925452f70289a139d9) )
+ ROM_LOAD( "063-v3.v3", 0x400000, 0x200000, CRC(d07fa5ca) SHA1(1da7f081f8b8fc86a91feacf900f573218d82676) )
+ ROM_LOAD( "063-v4.v4", 0x600000, 0x100000, CRC(24aab4bb) SHA1(10ee4c5b3579865b93dcc1e4079963276aa700a6) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "063-c1.c1", 0x000000, 0x200000, CRC(86cd307c) SHA1(0d04336f7c436d74638d8c1cd8651faf436a6bec) )
+ ROM_LOAD16_BYTE( "063-c2.c2", 0x000001, 0x200000, CRC(cdfcc4ca) SHA1(179dc81432424d68cefedd20cc1c4b2a95deb891) )
+ ROM_LOAD16_BYTE( "063-c3.c3", 0x400000, 0x200000, CRC(7a63ccc7) SHA1(49d97c543bc2860d493a353ab0d059088c6fbd21) )
+ ROM_LOAD16_BYTE( "063-c4.c4", 0x400001, 0x200000, CRC(751025ce) SHA1(e1bbaa7cd67fd04e4aab7f7ea77f63ae1cbc90d0) )
+ ROM_LOAD16_BYTE( "063-c5.c5", 0x800000, 0x200000, CRC(20d3a475) SHA1(28da44a136bd14c73c62c147c3f6e6bcfa1066de) )
+ ROM_LOAD16_BYTE( "063-c6.c6", 0x800001, 0x200000, CRC(ae4c0a88) SHA1(cc8a7d11daa3821f83a6fd0942534706f939e576) )
+ ROM_LOAD16_BYTE( "063-c7.c7", 0xc00000, 0x200000, CRC(2df3cbcf) SHA1(e54f9022359963711451c2025825b862d36c6975) )
+ ROM_LOAD16_BYTE( "063-c8.c8", 0xc00001, 0x200000, CRC(1ffc6dfa) SHA1(acea18aca76c072e0bac2a364fc96d49cfc86e77) )
+ROM_END
+
+ROM_START( samsho2s13 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "063hc13.p1", 0x000000, 0x100000, CRC(9b051429) SHA1(624f99c9cf30ed586008d0222289534113b5cb5e) )
+ ROM_LOAD16_WORD_SWAP( "063hy.p2", 0x100000, 0x100000, CRC(a03ead44) SHA1(8bfbc2b6220719a742e1684601f36305d0e63308) )
+
+ NEO_SFIX_128K( "063-s1.s1", CRC(64a5cd66) SHA1(12cdfb27bf9ccd5a8df6ddd4628ef7cf2c6d4964) )
+
+ NEO_BIOS_AUDIO_128K( "063-m1.m1", CRC(56675098) SHA1(90429fc40d056d480d0e2bbefbc691d9fa260fc4) )
+
+ ROM_REGION( 0x700000, "ymsnd", 0 )
+ ROM_LOAD( "063-v1.v1", 0x000000, 0x200000, CRC(37703f91) SHA1(a373ebef4c33ba1d8340e826981a58769aada238) )
+ ROM_LOAD( "063-v2.v2", 0x200000, 0x200000, CRC(0142bde8) SHA1(0be6c53acac44802bf70b6925452f70289a139d9) )
+ ROM_LOAD( "063-v3.v3", 0x400000, 0x200000, CRC(d07fa5ca) SHA1(1da7f081f8b8fc86a91feacf900f573218d82676) )
+ ROM_LOAD( "063-v4.v4", 0x600000, 0x100000, CRC(24aab4bb) SHA1(10ee4c5b3579865b93dcc1e4079963276aa700a6) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "063-c1.c1", 0x000000, 0x200000, CRC(86cd307c) SHA1(0d04336f7c436d74638d8c1cd8651faf436a6bec) )
+ ROM_LOAD16_BYTE( "063-c2.c2", 0x000001, 0x200000, CRC(cdfcc4ca) SHA1(179dc81432424d68cefedd20cc1c4b2a95deb891) )
+ ROM_LOAD16_BYTE( "063-c3.c3", 0x400000, 0x200000, CRC(7a63ccc7) SHA1(49d97c543bc2860d493a353ab0d059088c6fbd21) )
+ ROM_LOAD16_BYTE( "063-c4.c4", 0x400001, 0x200000, CRC(751025ce) SHA1(e1bbaa7cd67fd04e4aab7f7ea77f63ae1cbc90d0) )
+ ROM_LOAD16_BYTE( "063-c5.c5", 0x800000, 0x200000, CRC(20d3a475) SHA1(28da44a136bd14c73c62c147c3f6e6bcfa1066de) )
+ ROM_LOAD16_BYTE( "063-c6.c6", 0x800001, 0x200000, CRC(ae4c0a88) SHA1(cc8a7d11daa3821f83a6fd0942534706f939e576) )
+ ROM_LOAD16_BYTE( "063hc13.c7", 0xc00000, 0x200000, CRC(d662b45c) SHA1(4142e931d20cafa4bf0a61ee5ba32dabf3341540) )
+ ROM_LOAD16_BYTE( "063hc13.c8", 0xc00001, 0x200000, CRC(90ece6bd) SHA1(c8133534a5d889b77a1b54b038ab458223de08ad) )
+ROM_END
+
+ROM_START( samsho2s14 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "063hc14.p1", 0x100000, 0x100000, CRC(ce9fa77c) SHA1(3740ca66c84d9bffad60cd19ab305db7197491b4) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "063-s1.s1", CRC(64a5cd66) SHA1(12cdfb27bf9ccd5a8df6ddd4628ef7cf2c6d4964) )
+
+ NEO_BIOS_AUDIO_128K( "063-m1.m1", CRC(56675098) SHA1(90429fc40d056d480d0e2bbefbc691d9fa260fc4) )
+
+ ROM_REGION( 0x700000, "ymsnd", 0 )
+ ROM_LOAD( "063-v1.v1", 0x000000, 0x200000, CRC(37703f91) SHA1(a373ebef4c33ba1d8340e826981a58769aada238) )
+ ROM_LOAD( "063-v2.v2", 0x200000, 0x200000, CRC(0142bde8) SHA1(0be6c53acac44802bf70b6925452f70289a139d9) )
+ ROM_LOAD( "063-v3.v3", 0x400000, 0x200000, CRC(d07fa5ca) SHA1(1da7f081f8b8fc86a91feacf900f573218d82676) )
+ ROM_LOAD( "063-v4.v4", 0x600000, 0x100000, CRC(24aab4bb) SHA1(10ee4c5b3579865b93dcc1e4079963276aa700a6) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "063-c1.c1", 0x000000, 0x200000, CRC(86cd307c) SHA1(0d04336f7c436d74638d8c1cd8651faf436a6bec) )
+ ROM_LOAD16_BYTE( "063-c2.c2", 0x000001, 0x200000, CRC(cdfcc4ca) SHA1(179dc81432424d68cefedd20cc1c4b2a95deb891) )
+ ROM_LOAD16_BYTE( "063-c3.c3", 0x400000, 0x200000, CRC(7a63ccc7) SHA1(49d97c543bc2860d493a353ab0d059088c6fbd21) )
+ ROM_LOAD16_BYTE( "063-c4.c4", 0x400001, 0x200000, CRC(751025ce) SHA1(e1bbaa7cd67fd04e4aab7f7ea77f63ae1cbc90d0) )
+ ROM_LOAD16_BYTE( "063-c5.c5", 0x800000, 0x200000, CRC(20d3a475) SHA1(28da44a136bd14c73c62c147c3f6e6bcfa1066de) )
+ ROM_LOAD16_BYTE( "063-c6.c6", 0x800001, 0x200000, CRC(ae4c0a88) SHA1(cc8a7d11daa3821f83a6fd0942534706f939e576) )
+ ROM_LOAD16_BYTE( "063-c7.c7", 0xc00000, 0x200000, CRC(2df3cbcf) SHA1(e54f9022359963711451c2025825b862d36c6975) )
+ ROM_LOAD16_BYTE( "063-c8.c8", 0xc00001, 0x200000, CRC(1ffc6dfa) SHA1(acea18aca76c072e0bac2a364fc96d49cfc86e77) )
+ROM_END
+
+ /****************************************
+ Samurai Shodown III
+****************************************/
+
+ROM_START( samsho3s01 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "087hc01.p1", 0x000000, 0x100000, CRC(54d0644d) SHA1(ae9d8cef29ff71d54d0b47eb0f928a84d95f55ef) )
+ ROM_LOAD16_WORD_SWAP( "087-p2.sp2", 0x100000, 0x200000, CRC(9bbe27e0) SHA1(b18117102159903c8e8f4e4226e1cc91a400e816) )
+
+ NEO_SFIX_128K( "087-s1.s1", CRC(74ec7d9f) SHA1(d79c479838a7ca51735a44f91f1968ec5b3c6b91) )
+
+ NEO_BIOS_AUDIO_128K( "087-m1.m1", CRC(8e6440eb) SHA1(e3f72150af4e326543b29df71cda27d73ec087c1) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "087-v1.v1", 0x000000, 0x400000, CRC(84bdd9a0) SHA1(adceceb00569eca13fcc2e0f0d9f0d9b06a06851) )
+ ROM_LOAD( "087-v2.v2", 0x400000, 0x200000, CRC(ac0f261a) SHA1(5411bdff24cba7fdbc3397d45a70fb468d7a44b3) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "087-c1.c1", 0x0000000, 0x400000, CRC(07a233bc) SHA1(654cb56cfd6eeebe6745c0b8b730317fb8ccd3d9) )
+ ROM_LOAD16_BYTE( "087-c2.c2", 0x0000001, 0x400000, CRC(7a413592) SHA1(b8c7a2d0d7a8b14d6cab94d7a5f347e73c6ab7a4) )
+ ROM_LOAD16_BYTE( "087-c3.c3", 0x0800000, 0x400000, CRC(8b793796) SHA1(053acc129ea56691607a5d255845703e61fd3ada) )
+ ROM_LOAD16_BYTE( "087-c4.c4", 0x0800001, 0x400000, CRC(728fbf11) SHA1(daa319d455f759bfc08a37b43218bdb48dc1c9e5) )
+ ROM_LOAD16_BYTE( "087-c5.c5", 0x1000000, 0x400000, CRC(172ab180) SHA1(a6122f683bdb78d0079e1e360c1b96ba28def7b7) )
+ ROM_LOAD16_BYTE( "087-c6.c6", 0x1000001, 0x400000, CRC(002ff8f3) SHA1(3a378708697d727796c4f702dd5bbf1c9eb4daec) )
+ ROM_LOAD16_BYTE( "087-c7.c7", 0x1800000, 0x100000, CRC(ae450e3d) SHA1(ec482632cc347ec3f9e68df0ebcaa16ebe41b9f9) )
+ ROM_LOAD16_BYTE( "087-c8.c8", 0x1800001, 0x100000, CRC(a9e82717) SHA1(e39ee15d5140dbe7f06eea945cce9984a5e8b06a) )
+ROM_END
+
+ROM_START( samsho3s02 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "087hc02.p1", 0x000000, 0x100000, CRC(d8e2994e) SHA1(80efed5f515982df67f7f889e0ab8b42b8f3f4c9) )
+ ROM_LOAD16_WORD_SWAP( "087-p2.sp2", 0x100000, 0x200000, CRC(9bbe27e0) SHA1(b18117102159903c8e8f4e4226e1cc91a400e816) )
+
+ NEO_SFIX_128K( "087-s1.s1", CRC(74ec7d9f) SHA1(d79c479838a7ca51735a44f91f1968ec5b3c6b91) )
+
+ NEO_BIOS_AUDIO_128K( "087-m1.m1", CRC(8e6440eb) SHA1(e3f72150af4e326543b29df71cda27d73ec087c1) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "087-v1.v1", 0x000000, 0x400000, CRC(84bdd9a0) SHA1(adceceb00569eca13fcc2e0f0d9f0d9b06a06851) )
+ ROM_LOAD( "087-v2.v2", 0x400000, 0x200000, CRC(ac0f261a) SHA1(5411bdff24cba7fdbc3397d45a70fb468d7a44b3) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "087-c1.c1", 0x0000000, 0x400000, CRC(07a233bc) SHA1(654cb56cfd6eeebe6745c0b8b730317fb8ccd3d9) )
+ ROM_LOAD16_BYTE( "087-c2.c2", 0x0000001, 0x400000, CRC(7a413592) SHA1(b8c7a2d0d7a8b14d6cab94d7a5f347e73c6ab7a4) )
+ ROM_LOAD16_BYTE( "087-c3.c3", 0x0800000, 0x400000, CRC(8b793796) SHA1(053acc129ea56691607a5d255845703e61fd3ada) )
+ ROM_LOAD16_BYTE( "087-c4.c4", 0x0800001, 0x400000, CRC(728fbf11) SHA1(daa319d455f759bfc08a37b43218bdb48dc1c9e5) )
+ ROM_LOAD16_BYTE( "087-c5.c5", 0x1000000, 0x400000, CRC(172ab180) SHA1(a6122f683bdb78d0079e1e360c1b96ba28def7b7) )
+ ROM_LOAD16_BYTE( "087-c6.c6", 0x1000001, 0x400000, CRC(002ff8f3) SHA1(3a378708697d727796c4f702dd5bbf1c9eb4daec) )
+ ROM_LOAD16_BYTE( "087-c7.c7", 0x1800000, 0x100000, CRC(ae450e3d) SHA1(ec482632cc347ec3f9e68df0ebcaa16ebe41b9f9) )
+ ROM_LOAD16_BYTE( "087-c8.c8", 0x1800001, 0x100000, CRC(a9e82717) SHA1(e39ee15d5140dbe7f06eea945cce9984a5e8b06a) )
+ROM_END
+
+ROM_START( samsho3s03 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "087hc03.p1", 0x000000, 0x100000, CRC(4ecabbfb) SHA1(48ea99187866ae49f6e3b8d5cf4d9e1e73d7065d) )
+ ROM_LOAD16_WORD_SWAP( "087-p2.sp2", 0x100000, 0x200000, CRC(9bbe27e0) SHA1(b18117102159903c8e8f4e4226e1cc91a400e816) )
+
+ NEO_SFIX_128K( "087-s1.s1", CRC(74ec7d9f) SHA1(d79c479838a7ca51735a44f91f1968ec5b3c6b91) )
+
+ NEO_BIOS_AUDIO_128K( "087-m1.m1", CRC(8e6440eb) SHA1(e3f72150af4e326543b29df71cda27d73ec087c1) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "087-v1.v1", 0x000000, 0x400000, CRC(84bdd9a0) SHA1(adceceb00569eca13fcc2e0f0d9f0d9b06a06851) )
+ ROM_LOAD( "087-v2.v2", 0x400000, 0x200000, CRC(ac0f261a) SHA1(5411bdff24cba7fdbc3397d45a70fb468d7a44b3) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "087-c1.c1", 0x0000000, 0x400000, CRC(07a233bc) SHA1(654cb56cfd6eeebe6745c0b8b730317fb8ccd3d9) )
+ ROM_LOAD16_BYTE( "087-c2.c2", 0x0000001, 0x400000, CRC(7a413592) SHA1(b8c7a2d0d7a8b14d6cab94d7a5f347e73c6ab7a4) )
+ ROM_LOAD16_BYTE( "087-c3.c3", 0x0800000, 0x400000, CRC(8b793796) SHA1(053acc129ea56691607a5d255845703e61fd3ada) )
+ ROM_LOAD16_BYTE( "087-c4.c4", 0x0800001, 0x400000, CRC(728fbf11) SHA1(daa319d455f759bfc08a37b43218bdb48dc1c9e5) )
+ ROM_LOAD16_BYTE( "087-c5.c5", 0x1000000, 0x400000, CRC(172ab180) SHA1(a6122f683bdb78d0079e1e360c1b96ba28def7b7) )
+ ROM_LOAD16_BYTE( "087-c6.c6", 0x1000001, 0x400000, CRC(002ff8f3) SHA1(3a378708697d727796c4f702dd5bbf1c9eb4daec) )
+ ROM_LOAD16_BYTE( "087-c7.c7", 0x1800000, 0x100000, CRC(ae450e3d) SHA1(ec482632cc347ec3f9e68df0ebcaa16ebe41b9f9) )
+ ROM_LOAD16_BYTE( "087-c8.c8", 0x1800001, 0x100000, CRC(a9e82717) SHA1(e39ee15d5140dbe7f06eea945cce9984a5e8b06a) )
+ROM_END
+
+ROM_START( samsho3s04 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "087hc04.p1", 0x000000, 0x100000, CRC(c093b77b) SHA1(5ebd698db0f6d742350467a0e9f04873e4952b4c) )
+ ROM_LOAD16_WORD_SWAP( "087-p2.sp2", 0x100000, 0x200000, CRC(9bbe27e0) SHA1(b18117102159903c8e8f4e4226e1cc91a400e816) )
+
+ NEO_SFIX_128K( "087-s1.s1", CRC(74ec7d9f) SHA1(d79c479838a7ca51735a44f91f1968ec5b3c6b91) )
+
+ NEO_BIOS_AUDIO_128K( "087-m1.m1", CRC(8e6440eb) SHA1(e3f72150af4e326543b29df71cda27d73ec087c1) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "087-v1.v1", 0x000000, 0x400000, CRC(84bdd9a0) SHA1(adceceb00569eca13fcc2e0f0d9f0d9b06a06851) )
+ ROM_LOAD( "087-v2.v2", 0x400000, 0x200000, CRC(ac0f261a) SHA1(5411bdff24cba7fdbc3397d45a70fb468d7a44b3) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "087-c1.c1", 0x0000000, 0x400000, CRC(07a233bc) SHA1(654cb56cfd6eeebe6745c0b8b730317fb8ccd3d9) )
+ ROM_LOAD16_BYTE( "087-c2.c2", 0x0000001, 0x400000, CRC(7a413592) SHA1(b8c7a2d0d7a8b14d6cab94d7a5f347e73c6ab7a4) )
+ ROM_LOAD16_BYTE( "087-c3.c3", 0x0800000, 0x400000, CRC(8b793796) SHA1(053acc129ea56691607a5d255845703e61fd3ada) )
+ ROM_LOAD16_BYTE( "087-c4.c4", 0x0800001, 0x400000, CRC(728fbf11) SHA1(daa319d455f759bfc08a37b43218bdb48dc1c9e5) )
+ ROM_LOAD16_BYTE( "087-c5.c5", 0x1000000, 0x400000, CRC(172ab180) SHA1(a6122f683bdb78d0079e1e360c1b96ba28def7b7) )
+ ROM_LOAD16_BYTE( "087-c6.c6", 0x1000001, 0x400000, CRC(002ff8f3) SHA1(3a378708697d727796c4f702dd5bbf1c9eb4daec) )
+ ROM_LOAD16_BYTE( "087-c7.c7", 0x1800000, 0x100000, CRC(ae450e3d) SHA1(ec482632cc347ec3f9e68df0ebcaa16ebe41b9f9) )
+ ROM_LOAD16_BYTE( "087-c8.c8", 0x1800001, 0x100000, CRC(a9e82717) SHA1(e39ee15d5140dbe7f06eea945cce9984a5e8b06a) )
+ROM_END
+
+ROM_START( samsho3s05 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "087hc05.ep1", 0x000000, 0x080000, CRC(cce2053a) SHA1(dfd540e22847c9e9b30176ee309b4c9c5ea90cdb) )
+ ROM_LOAD16_WORD_SWAP( "087-epr.ep2", 0x080000, 0x080000, CRC(256f5302) SHA1(e2d21b413a6059194a994b7902b2a7df98a15151) )
+ ROM_LOAD16_WORD_SWAP( "087-epr.ep3", 0x100000, 0x080000, CRC(bf2db5dd) SHA1(b4fa1dc1eccc9eb1ce74f0a06992ef89b1cbc732) )
+ ROM_LOAD16_WORD_SWAP( "087-epr.ep4", 0x180000, 0x080000, CRC(53e60c58) SHA1(f975e81cab6322d3260348402721c673023259fa) )
+
+ ROM_LOAD16_WORD_SWAP( "087-p5.p5", 0x200000, 0x100000, CRC(e86ca4af) SHA1(5246acbab77ac2f232b88b8522187764ff0872f0) )
+
+
+ NEO_SFIX_128K( "087-s1.s1", CRC(74ec7d9f) SHA1(d79c479838a7ca51735a44f91f1968ec5b3c6b91) )
+
+ NEO_BIOS_AUDIO_128K( "087-m1.m1", CRC(8e6440eb) SHA1(e3f72150af4e326543b29df71cda27d73ec087c1) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "087-v1.v1", 0x000000, 0x400000, CRC(84bdd9a0) SHA1(adceceb00569eca13fcc2e0f0d9f0d9b06a06851) )
+ ROM_LOAD( "087-v2.v2", 0x400000, 0x200000, CRC(ac0f261a) SHA1(5411bdff24cba7fdbc3397d45a70fb468d7a44b3) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "087-c1.c1", 0x0000000, 0x400000, CRC(07a233bc) SHA1(654cb56cfd6eeebe6745c0b8b730317fb8ccd3d9) )
+ ROM_LOAD16_BYTE( "087-c2.c2", 0x0000001, 0x400000, CRC(7a413592) SHA1(b8c7a2d0d7a8b14d6cab94d7a5f347e73c6ab7a4) )
+ ROM_LOAD16_BYTE( "087-c3.c3", 0x0800000, 0x400000, CRC(8b793796) SHA1(053acc129ea56691607a5d255845703e61fd3ada) )
+ ROM_LOAD16_BYTE( "087-c4.c4", 0x0800001, 0x400000, CRC(728fbf11) SHA1(daa319d455f759bfc08a37b43218bdb48dc1c9e5) )
+ ROM_LOAD16_BYTE( "087-c5.c5", 0x1000000, 0x400000, CRC(172ab180) SHA1(a6122f683bdb78d0079e1e360c1b96ba28def7b7) )
+ ROM_LOAD16_BYTE( "087-c6.c6", 0x1000001, 0x400000, CRC(002ff8f3) SHA1(3a378708697d727796c4f702dd5bbf1c9eb4daec) )
+ ROM_LOAD16_BYTE( "087-c7.c7", 0x1800000, 0x100000, CRC(ae450e3d) SHA1(ec482632cc347ec3f9e68df0ebcaa16ebe41b9f9) )
+ ROM_LOAD16_BYTE( "087-c8.c8", 0x1800001, 0x100000, CRC(a9e82717) SHA1(e39ee15d5140dbe7f06eea945cce9984a5e8b06a) )
+ROM_END
+
+ROM_START( samsho3s06 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "087hc06.ep1", 0x000000, 0x080000, CRC(e94c08b0) SHA1(3b75e30ac05dd4e26a3a3ab1c82adce5e8583566) )
+ ROM_LOAD16_WORD_SWAP( "087-epr.ep2", 0x080000, 0x080000, CRC(256f5302) SHA1(e2d21b413a6059194a994b7902b2a7df98a15151) )
+ ROM_LOAD16_WORD_SWAP( "087-epr.ep3", 0x100000, 0x080000, CRC(bf2db5dd) SHA1(b4fa1dc1eccc9eb1ce74f0a06992ef89b1cbc732) )
+ ROM_LOAD16_WORD_SWAP( "087-epr.ep4", 0x180000, 0x080000, CRC(53e60c58) SHA1(f975e81cab6322d3260348402721c673023259fa) )
+
+ ROM_LOAD16_WORD_SWAP( "087-p5.p5", 0x200000, 0x100000, CRC(e86ca4af) SHA1(5246acbab77ac2f232b88b8522187764ff0872f0) )
+
+
+ NEO_SFIX_128K( "087-s1.s1", CRC(74ec7d9f) SHA1(d79c479838a7ca51735a44f91f1968ec5b3c6b91) )
+
+ NEO_BIOS_AUDIO_128K( "087-m1.m1", CRC(8e6440eb) SHA1(e3f72150af4e326543b29df71cda27d73ec087c1) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "087-v1.v1", 0x000000, 0x400000, CRC(84bdd9a0) SHA1(adceceb00569eca13fcc2e0f0d9f0d9b06a06851) )
+ ROM_LOAD( "087-v2.v2", 0x400000, 0x200000, CRC(ac0f261a) SHA1(5411bdff24cba7fdbc3397d45a70fb468d7a44b3) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "087-c1.c1", 0x0000000, 0x400000, CRC(07a233bc) SHA1(654cb56cfd6eeebe6745c0b8b730317fb8ccd3d9) )
+ ROM_LOAD16_BYTE( "087-c2.c2", 0x0000001, 0x400000, CRC(7a413592) SHA1(b8c7a2d0d7a8b14d6cab94d7a5f347e73c6ab7a4) )
+ ROM_LOAD16_BYTE( "087-c3.c3", 0x0800000, 0x400000, CRC(8b793796) SHA1(053acc129ea56691607a5d255845703e61fd3ada) )
+ ROM_LOAD16_BYTE( "087-c4.c4", 0x0800001, 0x400000, CRC(728fbf11) SHA1(daa319d455f759bfc08a37b43218bdb48dc1c9e5) )
+ ROM_LOAD16_BYTE( "087-c5.c5", 0x1000000, 0x400000, CRC(172ab180) SHA1(a6122f683bdb78d0079e1e360c1b96ba28def7b7) )
+ ROM_LOAD16_BYTE( "087-c6.c6", 0x1000001, 0x400000, CRC(002ff8f3) SHA1(3a378708697d727796c4f702dd5bbf1c9eb4daec) )
+ ROM_LOAD16_BYTE( "087-c7.c7", 0x1800000, 0x100000, CRC(ae450e3d) SHA1(ec482632cc347ec3f9e68df0ebcaa16ebe41b9f9) )
+ ROM_LOAD16_BYTE( "087-c8.c8", 0x1800001, 0x100000, CRC(a9e82717) SHA1(e39ee15d5140dbe7f06eea945cce9984a5e8b06a) )
+ROM_END
+
+ROM_START( samsho3s07 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "087hc07.ep1", 0x000000, 0x080000, CRC(069358c5) SHA1(df3f0f00c084e6d5dd79093fc9261ab0db141a52) )
+ ROM_LOAD16_WORD_SWAP( "087-epr.ep2", 0x080000, 0x080000, CRC(256f5302) SHA1(e2d21b413a6059194a994b7902b2a7df98a15151) )
+ ROM_LOAD16_WORD_SWAP( "087-epr.ep3", 0x100000, 0x080000, CRC(bf2db5dd) SHA1(b4fa1dc1eccc9eb1ce74f0a06992ef89b1cbc732) )
+ ROM_LOAD16_WORD_SWAP( "087-epr.ep4", 0x180000, 0x080000, CRC(53e60c58) SHA1(f975e81cab6322d3260348402721c673023259fa) )
+
+ ROM_LOAD16_WORD_SWAP( "087-p5.p5", 0x200000, 0x100000, CRC(e86ca4af) SHA1(5246acbab77ac2f232b88b8522187764ff0872f0) )
+
+
+ NEO_SFIX_128K( "087-s1.s1", CRC(74ec7d9f) SHA1(d79c479838a7ca51735a44f91f1968ec5b3c6b91) )
+
+ NEO_BIOS_AUDIO_128K( "087-m1.m1", CRC(8e6440eb) SHA1(e3f72150af4e326543b29df71cda27d73ec087c1) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "087-v1.v1", 0x000000, 0x400000, CRC(84bdd9a0) SHA1(adceceb00569eca13fcc2e0f0d9f0d9b06a06851) )
+ ROM_LOAD( "087-v2.v2", 0x400000, 0x200000, CRC(ac0f261a) SHA1(5411bdff24cba7fdbc3397d45a70fb468d7a44b3) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "087-c1.c1", 0x0000000, 0x400000, CRC(07a233bc) SHA1(654cb56cfd6eeebe6745c0b8b730317fb8ccd3d9) )
+ ROM_LOAD16_BYTE( "087-c2.c2", 0x0000001, 0x400000, CRC(7a413592) SHA1(b8c7a2d0d7a8b14d6cab94d7a5f347e73c6ab7a4) )
+ ROM_LOAD16_BYTE( "087-c3.c3", 0x0800000, 0x400000, CRC(8b793796) SHA1(053acc129ea56691607a5d255845703e61fd3ada) )
+ ROM_LOAD16_BYTE( "087-c4.c4", 0x0800001, 0x400000, CRC(728fbf11) SHA1(daa319d455f759bfc08a37b43218bdb48dc1c9e5) )
+ ROM_LOAD16_BYTE( "087-c5.c5", 0x1000000, 0x400000, CRC(172ab180) SHA1(a6122f683bdb78d0079e1e360c1b96ba28def7b7) )
+ ROM_LOAD16_BYTE( "087-c6.c6", 0x1000001, 0x400000, CRC(002ff8f3) SHA1(3a378708697d727796c4f702dd5bbf1c9eb4daec) )
+ ROM_LOAD16_BYTE( "087-c7.c7", 0x1800000, 0x100000, CRC(ae450e3d) SHA1(ec482632cc347ec3f9e68df0ebcaa16ebe41b9f9) )
+ ROM_LOAD16_BYTE( "087-c8.c8", 0x1800001, 0x100000, CRC(a9e82717) SHA1(e39ee15d5140dbe7f06eea945cce9984a5e8b06a) )
+ROM_END
+
+ROM_START( samsho3s08 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "087hc08.p1", 0x000000, 0x100000, CRC(57b29f8b) SHA1(85c1563d85f2f056c6454e717270f691feb57f5e) )
+ ROM_LOAD16_WORD_SWAP( "087hc08.sp2", 0x100000, 0x200000, CRC(509ab676) SHA1(34895d5b91a0e9d3f6c60f9fbdef3fa46e1e9525) )
+
+ NEO_SFIX_128K( "087-s1.s1", CRC(74ec7d9f) SHA1(d79c479838a7ca51735a44f91f1968ec5b3c6b91) )
+
+ NEO_BIOS_AUDIO_128K( "087-m1.m1", CRC(8e6440eb) SHA1(e3f72150af4e326543b29df71cda27d73ec087c1) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "087-v1.v1", 0x000000, 0x400000, CRC(84bdd9a0) SHA1(adceceb00569eca13fcc2e0f0d9f0d9b06a06851) )
+ ROM_LOAD( "087-v2.v2", 0x400000, 0x200000, CRC(ac0f261a) SHA1(5411bdff24cba7fdbc3397d45a70fb468d7a44b3) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "087-c1.c1", 0x0000000, 0x400000, CRC(07a233bc) SHA1(654cb56cfd6eeebe6745c0b8b730317fb8ccd3d9) )
+ ROM_LOAD16_BYTE( "087-c2.c2", 0x0000001, 0x400000, CRC(7a413592) SHA1(b8c7a2d0d7a8b14d6cab94d7a5f347e73c6ab7a4) )
+ ROM_LOAD16_BYTE( "087-c3.c3", 0x0800000, 0x400000, CRC(8b793796) SHA1(053acc129ea56691607a5d255845703e61fd3ada) )
+ ROM_LOAD16_BYTE( "087-c4.c4", 0x0800001, 0x400000, CRC(728fbf11) SHA1(daa319d455f759bfc08a37b43218bdb48dc1c9e5) )
+ ROM_LOAD16_BYTE( "087-c5.c5", 0x1000000, 0x400000, CRC(172ab180) SHA1(a6122f683bdb78d0079e1e360c1b96ba28def7b7) )
+ ROM_LOAD16_BYTE( "087-c6.c6", 0x1000001, 0x400000, CRC(002ff8f3) SHA1(3a378708697d727796c4f702dd5bbf1c9eb4daec) )
+ ROM_LOAD16_BYTE( "087-c7.c7", 0x1800000, 0x100000, CRC(ae450e3d) SHA1(ec482632cc347ec3f9e68df0ebcaa16ebe41b9f9) )
+ ROM_LOAD16_BYTE( "087-c8.c8", 0x1800001, 0x100000, CRC(a9e82717) SHA1(e39ee15d5140dbe7f06eea945cce9984a5e8b06a) )
+ROM_END
+
+ROM_START( samsho3s09 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "087hc09.p1", 0x000000, 0x100000, CRC(282a336e) SHA1(e062f1939d36a45f185b5dbd726cdd833dc7c28c) )
+ ROM_LOAD16_WORD_SWAP( "087-p2.sp2", 0x100000, 0x200000, CRC(9bbe27e0) SHA1(b18117102159903c8e8f4e4226e1cc91a400e816) )
+
+ NEO_SFIX_128K( "087-s1.s1", CRC(74ec7d9f) SHA1(d79c479838a7ca51735a44f91f1968ec5b3c6b91) )
+
+ NEO_BIOS_AUDIO_128K( "087-m1.m1", CRC(8e6440eb) SHA1(e3f72150af4e326543b29df71cda27d73ec087c1) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "087-v1.v1", 0x000000, 0x400000, CRC(84bdd9a0) SHA1(adceceb00569eca13fcc2e0f0d9f0d9b06a06851) )
+ ROM_LOAD( "087-v2.v2", 0x400000, 0x200000, CRC(ac0f261a) SHA1(5411bdff24cba7fdbc3397d45a70fb468d7a44b3) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "087-c1.c1", 0x0000000, 0x400000, CRC(07a233bc) SHA1(654cb56cfd6eeebe6745c0b8b730317fb8ccd3d9) )
+ ROM_LOAD16_BYTE( "087-c2.c2", 0x0000001, 0x400000, CRC(7a413592) SHA1(b8c7a2d0d7a8b14d6cab94d7a5f347e73c6ab7a4) )
+ ROM_LOAD16_BYTE( "087-c3.c3", 0x0800000, 0x400000, CRC(8b793796) SHA1(053acc129ea56691607a5d255845703e61fd3ada) )
+ ROM_LOAD16_BYTE( "087-c4.c4", 0x0800001, 0x400000, CRC(728fbf11) SHA1(daa319d455f759bfc08a37b43218bdb48dc1c9e5) )
+ ROM_LOAD16_BYTE( "087-c5.c5", 0x1000000, 0x400000, CRC(172ab180) SHA1(a6122f683bdb78d0079e1e360c1b96ba28def7b7) )
+ ROM_LOAD16_BYTE( "087-c6.c6", 0x1000001, 0x400000, CRC(002ff8f3) SHA1(3a378708697d727796c4f702dd5bbf1c9eb4daec) )
+ ROM_LOAD16_BYTE( "087-c7.c7", 0x1800000, 0x100000, CRC(ae450e3d) SHA1(ec482632cc347ec3f9e68df0ebcaa16ebe41b9f9) )
+ ROM_LOAD16_BYTE( "087-c8.c8", 0x1800001, 0x100000, CRC(a9e82717) SHA1(e39ee15d5140dbe7f06eea945cce9984a5e8b06a) )
+ROM_END
+
+ /****************************************
+ Samurai Shodown IV
+****************************************/
+
+ROM_START( samsho4s01 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "222hc01.p1", 0x000000, 0x100000, CRC(76bfd368) SHA1(0954513468674987ae204107db7ef9061e56ccb1) )
+ ROM_LOAD16_WORD_SWAP( "222-p2.sp2", 0x100000, 0x400000, CRC(b023cd8b) SHA1(35b4cec9858225f90acdfa16ed8a3017d0d08327) )
+
+ NEO_SFIX_128K( "222bh.s1", CRC(d0906101) SHA1(16873a82c408a5585d4e424e953b451981a8d6b2) )
+
+ NEO_BIOS_AUDIO_128K( "222-m1.m1", CRC(7615bc1b) SHA1(b936f7b341f6fe0921b4c41049734684583e3596) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "222-v1.v1", 0x000000, 0x400000, CRC(7d6ba95f) SHA1(03cb4e0d770e0b332b07b64cacef624460b84c78) )
+ ROM_LOAD( "222-v2.v2", 0x400000, 0x400000, CRC(6c33bb5d) SHA1(fd5d4e08a962dd0d22c52c91bad5ec7f23cfb901) )
+ ROM_LOAD( "222-v3.v3", 0x800000, 0x200000, CRC(831ea8c0) SHA1(f2987b7d09bdc4311e972ce8a9ab7ca9802db4db) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "222-c1.c1", 0x0000000, 0x400000, CRC(68f2ed95) SHA1(c0a02df012cd25bcfe341770ea861a80294148cb) )
+ ROM_LOAD16_BYTE( "222-c2.c2", 0x0000001, 0x400000, CRC(a6e9aff0) SHA1(15addca49951ed53fa3c000c8d7cd327d012a620) )
+ ROM_LOAD16_BYTE( "222-c3.c3", 0x0800000, 0x400000, CRC(c91b40f4) SHA1(dcda45e0336204e3e024de08edfd0a3217bc1fdd) )
+ ROM_LOAD16_BYTE( "222-c4.c4", 0x0800001, 0x400000, CRC(359510a4) SHA1(b6642677ebdff7788263266402080272b8a66b15) )
+ ROM_LOAD16_BYTE( "222-c5.c5", 0x1000000, 0x400000, CRC(9cfbb22d) SHA1(789c32f917d0c6e38601cd390a7bf9d803131a4a) )
+ ROM_LOAD16_BYTE( "222-c6.c6", 0x1000001, 0x400000, CRC(685efc32) SHA1(db21ba1c7e3631ce0f1cb6f503ae7e0e043ff71b) )
+ ROM_LOAD16_BYTE( "222-c7.c7", 0x1800000, 0x400000, CRC(d0f86f0d) SHA1(32502d71c2ab1469c492b6b382bf2bb3f85981d9) )
+ ROM_LOAD16_BYTE( "222-c8.c8", 0x1800001, 0x400000, CRC(adfc50e3) SHA1(7d7ee874355b5aa75ad9c9a5c9c3df98d098d85e) )
+ROM_END
+
+ROM_START( samsho4s02 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "222hc02.p1", 0x000000, 0x100000, CRC(05e537e3) SHA1(1170d6e5fb97e0567ff76f1a359710328a291d5a) )
+ ROM_LOAD16_WORD_SWAP( "222-p2.sp2", 0x100000, 0x400000, CRC(b023cd8b) SHA1(35b4cec9858225f90acdfa16ed8a3017d0d08327) )
+
+ NEO_SFIX_128K( "222bh.s1", CRC(d0906101) SHA1(16873a82c408a5585d4e424e953b451981a8d6b2) )
+
+ NEO_BIOS_AUDIO_128K( "222-m1.m1", CRC(7615bc1b) SHA1(b936f7b341f6fe0921b4c41049734684583e3596) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "222-v1.v1", 0x000000, 0x400000, CRC(7d6ba95f) SHA1(03cb4e0d770e0b332b07b64cacef624460b84c78) )
+ ROM_LOAD( "222-v2.v2", 0x400000, 0x400000, CRC(6c33bb5d) SHA1(fd5d4e08a962dd0d22c52c91bad5ec7f23cfb901) )
+ ROM_LOAD( "222-v3.v3", 0x800000, 0x200000, CRC(831ea8c0) SHA1(f2987b7d09bdc4311e972ce8a9ab7ca9802db4db) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "222-c1.c1", 0x0000000, 0x400000, CRC(68f2ed95) SHA1(c0a02df012cd25bcfe341770ea861a80294148cb) )
+ ROM_LOAD16_BYTE( "222-c2.c2", 0x0000001, 0x400000, CRC(a6e9aff0) SHA1(15addca49951ed53fa3c000c8d7cd327d012a620) )
+ ROM_LOAD16_BYTE( "222-c3.c3", 0x0800000, 0x400000, CRC(c91b40f4) SHA1(dcda45e0336204e3e024de08edfd0a3217bc1fdd) )
+ ROM_LOAD16_BYTE( "222-c4.c4", 0x0800001, 0x400000, CRC(359510a4) SHA1(b6642677ebdff7788263266402080272b8a66b15) )
+ ROM_LOAD16_BYTE( "222-c5.c5", 0x1000000, 0x400000, CRC(9cfbb22d) SHA1(789c32f917d0c6e38601cd390a7bf9d803131a4a) )
+ ROM_LOAD16_BYTE( "222-c6.c6", 0x1000001, 0x400000, CRC(685efc32) SHA1(db21ba1c7e3631ce0f1cb6f503ae7e0e043ff71b) )
+ ROM_LOAD16_BYTE( "222-c7.c7", 0x1800000, 0x400000, CRC(d0f86f0d) SHA1(32502d71c2ab1469c492b6b382bf2bb3f85981d9) )
+ ROM_LOAD16_BYTE( "222-c8.c8", 0x1800001, 0x400000, CRC(adfc50e3) SHA1(7d7ee874355b5aa75ad9c9a5c9c3df98d098d85e) )
+ROM_END
+
+ROM_START( samsho4s03 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "222hc03.p1", 0x000000, 0x100000, CRC(81ea0a83) SHA1(dab293bd1437b9da2954bbdd53df194d76c232dc) )
+ ROM_LOAD16_WORD_SWAP( "222-p2.sp2", 0x100000, 0x400000, CRC(b023cd8b) SHA1(35b4cec9858225f90acdfa16ed8a3017d0d08327) )
+
+ NEO_SFIX_128K( "222bh.s1", CRC(d0906101) SHA1(16873a82c408a5585d4e424e953b451981a8d6b2) )
+
+ NEO_BIOS_AUDIO_128K( "222-m1.m1", CRC(7615bc1b) SHA1(b936f7b341f6fe0921b4c41049734684583e3596) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "222-v1.v1", 0x000000, 0x400000, CRC(7d6ba95f) SHA1(03cb4e0d770e0b332b07b64cacef624460b84c78) )
+ ROM_LOAD( "222-v2.v2", 0x400000, 0x400000, CRC(6c33bb5d) SHA1(fd5d4e08a962dd0d22c52c91bad5ec7f23cfb901) )
+ ROM_LOAD( "222-v3.v3", 0x800000, 0x200000, CRC(831ea8c0) SHA1(f2987b7d09bdc4311e972ce8a9ab7ca9802db4db) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "222-c1.c1", 0x0000000, 0x400000, CRC(68f2ed95) SHA1(c0a02df012cd25bcfe341770ea861a80294148cb) )
+ ROM_LOAD16_BYTE( "222-c2.c2", 0x0000001, 0x400000, CRC(a6e9aff0) SHA1(15addca49951ed53fa3c000c8d7cd327d012a620) )
+ ROM_LOAD16_BYTE( "222-c3.c3", 0x0800000, 0x400000, CRC(c91b40f4) SHA1(dcda45e0336204e3e024de08edfd0a3217bc1fdd) )
+ ROM_LOAD16_BYTE( "222-c4.c4", 0x0800001, 0x400000, CRC(359510a4) SHA1(b6642677ebdff7788263266402080272b8a66b15) )
+ ROM_LOAD16_BYTE( "222-c5.c5", 0x1000000, 0x400000, CRC(9cfbb22d) SHA1(789c32f917d0c6e38601cd390a7bf9d803131a4a) )
+ ROM_LOAD16_BYTE( "222-c6.c6", 0x1000001, 0x400000, CRC(685efc32) SHA1(db21ba1c7e3631ce0f1cb6f503ae7e0e043ff71b) )
+ ROM_LOAD16_BYTE( "222-c7.c7", 0x1800000, 0x400000, CRC(d0f86f0d) SHA1(32502d71c2ab1469c492b6b382bf2bb3f85981d9) )
+ ROM_LOAD16_BYTE( "222-c8.c8", 0x1800001, 0x400000, CRC(adfc50e3) SHA1(7d7ee874355b5aa75ad9c9a5c9c3df98d098d85e) )
+ROM_END
+
+ROM_START( samsho4s04 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "222hc04.p1", 0x000000, 0x100000, CRC(463035fc) SHA1(f84f12929ca36fc029761560a13413dc293914a5) )
+ ROM_LOAD16_WORD_SWAP( "222-p2.sp2", 0x100000, 0x400000, CRC(b023cd8b) SHA1(35b4cec9858225f90acdfa16ed8a3017d0d08327) )
+
+ NEO_SFIX_128K( "222bh.s1", CRC(d0906101) SHA1(16873a82c408a5585d4e424e953b451981a8d6b2) )
+
+ NEO_BIOS_AUDIO_128K( "222-m1.m1", CRC(7615bc1b) SHA1(b936f7b341f6fe0921b4c41049734684583e3596) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "222-v1.v1", 0x000000, 0x400000, CRC(7d6ba95f) SHA1(03cb4e0d770e0b332b07b64cacef624460b84c78) )
+ ROM_LOAD( "222-v2.v2", 0x400000, 0x400000, CRC(6c33bb5d) SHA1(fd5d4e08a962dd0d22c52c91bad5ec7f23cfb901) )
+ ROM_LOAD( "222-v3.v3", 0x800000, 0x200000, CRC(831ea8c0) SHA1(f2987b7d09bdc4311e972ce8a9ab7ca9802db4db) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "222-c1.c1", 0x0000000, 0x400000, CRC(68f2ed95) SHA1(c0a02df012cd25bcfe341770ea861a80294148cb) )
+ ROM_LOAD16_BYTE( "222-c2.c2", 0x0000001, 0x400000, CRC(a6e9aff0) SHA1(15addca49951ed53fa3c000c8d7cd327d012a620) )
+ ROM_LOAD16_BYTE( "222-c3.c3", 0x0800000, 0x400000, CRC(c91b40f4) SHA1(dcda45e0336204e3e024de08edfd0a3217bc1fdd) )
+ ROM_LOAD16_BYTE( "222-c4.c4", 0x0800001, 0x400000, CRC(359510a4) SHA1(b6642677ebdff7788263266402080272b8a66b15) )
+ ROM_LOAD16_BYTE( "222-c5.c5", 0x1000000, 0x400000, CRC(9cfbb22d) SHA1(789c32f917d0c6e38601cd390a7bf9d803131a4a) )
+ ROM_LOAD16_BYTE( "222-c6.c6", 0x1000001, 0x400000, CRC(685efc32) SHA1(db21ba1c7e3631ce0f1cb6f503ae7e0e043ff71b) )
+ ROM_LOAD16_BYTE( "222-c7.c7", 0x1800000, 0x400000, CRC(d0f86f0d) SHA1(32502d71c2ab1469c492b6b382bf2bb3f85981d9) )
+ ROM_LOAD16_BYTE( "222-c8.c8", 0x1800001, 0x400000, CRC(adfc50e3) SHA1(7d7ee874355b5aa75ad9c9a5c9c3df98d098d85e) )
+ROM_END
+
+ROM_START( samsho4s05 )
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "222hc05.p1", 0x000000, 0x100000, CRC(53b8c566) SHA1(d810b2b610c9d1925baa3c86cda628b8d9a8cbcf) )
+ ROM_LOAD16_WORD_SWAP( "222-p2.sp2", 0x100000, 0x400000, CRC(b023cd8b) SHA1(35b4cec9858225f90acdfa16ed8a3017d0d08327) )
+
+ NEO_SFIX_128K( "222bh.s1", CRC(d0906101) SHA1(16873a82c408a5585d4e424e953b451981a8d6b2) )
+
+ NEO_BIOS_AUDIO_128K( "222-m1.m1", CRC(7615bc1b) SHA1(b936f7b341f6fe0921b4c41049734684583e3596) )
+
+ ROM_REGION( 0xa00000, "ymsnd", 0 )
+ ROM_LOAD( "222-v1.v1", 0x000000, 0x400000, CRC(7d6ba95f) SHA1(03cb4e0d770e0b332b07b64cacef624460b84c78) )
+ ROM_LOAD( "222-v2.v2", 0x400000, 0x400000, CRC(6c33bb5d) SHA1(fd5d4e08a962dd0d22c52c91bad5ec7f23cfb901) )
+ ROM_LOAD( "222-v3.v3", 0x800000, 0x200000, CRC(831ea8c0) SHA1(f2987b7d09bdc4311e972ce8a9ab7ca9802db4db) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "222-c1.c1", 0x0000000, 0x400000, CRC(68f2ed95) SHA1(c0a02df012cd25bcfe341770ea861a80294148cb) )
+ ROM_LOAD16_BYTE( "222-c2.c2", 0x0000001, 0x400000, CRC(a6e9aff0) SHA1(15addca49951ed53fa3c000c8d7cd327d012a620) )
+ ROM_LOAD16_BYTE( "222-c3.c3", 0x0800000, 0x400000, CRC(c91b40f4) SHA1(dcda45e0336204e3e024de08edfd0a3217bc1fdd) )
+ ROM_LOAD16_BYTE( "222-c4.c4", 0x0800001, 0x400000, CRC(359510a4) SHA1(b6642677ebdff7788263266402080272b8a66b15) )
+ ROM_LOAD16_BYTE( "222-c5.c5", 0x1000000, 0x400000, CRC(9cfbb22d) SHA1(789c32f917d0c6e38601cd390a7bf9d803131a4a) )
+ ROM_LOAD16_BYTE( "222-c6.c6", 0x1000001, 0x400000, CRC(685efc32) SHA1(db21ba1c7e3631ce0f1cb6f503ae7e0e043ff71b) )
+ ROM_LOAD16_BYTE( "222-c7.c7", 0x1800000, 0x400000, CRC(d0f86f0d) SHA1(32502d71c2ab1469c492b6b382bf2bb3f85981d9) )
+ ROM_LOAD16_BYTE( "222-c8.c8", 0x1800001, 0x400000, CRC(adfc50e3) SHA1(7d7ee874355b5aa75ad9c9a5c9c3df98d098d85e) )
+ROM_END
+
+ /*****************************
+ Samurai Shodown V
+******************************/
+
+ROM_START( samsho5s01 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "270hc01.p1", 0x000000, 0x800000, CRC(d52bca3b) SHA1(2917d8db2ae3928d24894be878efd6d03c355242) )
+
+ NEO_SFIX_128K( "270ch.s1", CRC(cd025baa) SHA1(2ebdff1f40ec31b1842ec5399145869b00c8c4b2) )
+
+ NEO_BIOS_AUDIO_512K( "270ch.m1", CRC(0ca49586) SHA1(8610918af611d8514678fee1617aa47974b604e6) )
+
+ ROM_REGION( 0X1000000, "ymsnd", 0 )
+ ROM_LOAD( "270bs.v1", 0x000000, 0x800000, CRC(809c7617) SHA1(b6b542eb4c1078016fcd78d050433dc8e3029329) )
+ ROM_LOAD( "270bs.v2", 0x800000, 0x800000, CRC(42671607) SHA1(4fa64b5a9349e9c3d5d60806c9da4a2b6beff18a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "270ch.c1", 0x0000000, 0x800000, CRC(a2fe269f) SHA1(95ea363061bf5f4537ba885c0fbd894985f0a93a) )
+ ROM_LOAD16_BYTE( "270hd.c2", 0x0000001, 0x800000, CRC(ac0309e5) SHA1(9795fb2fa9eea617ec25656cfa9cd507899ec4fe) )
+ ROM_LOAD16_BYTE( "270ch.c3", 0x1000000, 0x800000, CRC(8275bb23) SHA1(101e784f273cce19158f81d23a8f581750ff7512) )
+ ROM_LOAD16_BYTE( "270ch.c4", 0x1000001, 0x800000, CRC(7a69cc1f) SHA1(2b63b5093c07aa7585093617c179af65b5015305) )
+ ROM_LOAD16_BYTE( "270ch.c5", 0x2000000, 0x800000, CRC(5298d011) SHA1(2090deb8341efc682b1dc55fb55e85a091d9ce2c) )
+ ROM_LOAD16_BYTE( "270ch.c6", 0x2000001, 0x800000, CRC(a33c04df) SHA1(31b14f8be2ff108337c8d672996aa650edd2307f) )
+ ROM_LOAD16_BYTE( "270ch.c7", 0x3000000, 0x800000, CRC(61025f97) SHA1(5ba6432aa35b1c27bc34ebd349ff47154dceb9a8) )
+ ROM_LOAD16_BYTE( "270ch.c8", 0x3000001, 0x800000, CRC(df3993ce) SHA1(580327300ff84ce805694b06f8036eeffef4c046) )
+ROM_END
+
+ROM_START( samsho5s02 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "270hc02.p1", 0x000000, 0x800000, CRC(578b1035) SHA1(cc4e9552e20c4e7f7ef94a28caaf9b78f485cea9) )
+
+ NEO_SFIX_128K( "270ch.s1", CRC(cd025baa) SHA1(2ebdff1f40ec31b1842ec5399145869b00c8c4b2) )
+
+ NEO_BIOS_AUDIO_512K( "270ch.m1", CRC(0ca49586) SHA1(8610918af611d8514678fee1617aa47974b604e6) )
+
+ ROM_REGION( 0X1000000, "ymsnd", 0 )
+ ROM_LOAD( "270bs.v1", 0x000000, 0x800000, CRC(809c7617) SHA1(b6b542eb4c1078016fcd78d050433dc8e3029329) )
+ ROM_LOAD( "270bs.v2", 0x800000, 0x800000, CRC(42671607) SHA1(4fa64b5a9349e9c3d5d60806c9da4a2b6beff18a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "270ch.c1", 0x0000000, 0x800000, CRC(a2fe269f) SHA1(95ea363061bf5f4537ba885c0fbd894985f0a93a) )
+ ROM_LOAD16_BYTE( "270hd.c2", 0x0000001, 0x800000, CRC(ac0309e5) SHA1(9795fb2fa9eea617ec25656cfa9cd507899ec4fe) )
+ ROM_LOAD16_BYTE( "270ch.c3", 0x1000000, 0x800000, CRC(8275bb23) SHA1(101e784f273cce19158f81d23a8f581750ff7512) )
+ ROM_LOAD16_BYTE( "270ch.c4", 0x1000001, 0x800000, CRC(7a69cc1f) SHA1(2b63b5093c07aa7585093617c179af65b5015305) )
+ ROM_LOAD16_BYTE( "270ch.c5", 0x2000000, 0x800000, CRC(5298d011) SHA1(2090deb8341efc682b1dc55fb55e85a091d9ce2c) )
+ ROM_LOAD16_BYTE( "270ch.c6", 0x2000001, 0x800000, CRC(a33c04df) SHA1(31b14f8be2ff108337c8d672996aa650edd2307f) )
+ ROM_LOAD16_BYTE( "270ch.c7", 0x3000000, 0x800000, CRC(61025f97) SHA1(5ba6432aa35b1c27bc34ebd349ff47154dceb9a8) )
+ ROM_LOAD16_BYTE( "270ch.c8", 0x3000001, 0x800000, CRC(df3993ce) SHA1(580327300ff84ce805694b06f8036eeffef4c046) )
+ROM_END
+
+ROM_START( samsho5s03 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "270hc03.p1", 0x000000, 0x800000, CRC(30cedc49) SHA1(2931b18d050fb45edf2e10fcaa4b7b88f962a4cf) )
+
+ NEO_SFIX_128K( "270ch.s1", CRC(cd025baa) SHA1(2ebdff1f40ec31b1842ec5399145869b00c8c4b2) )
+
+ NEO_BIOS_AUDIO_512K( "270ch.m1", CRC(0ca49586) SHA1(8610918af611d8514678fee1617aa47974b604e6) )
+
+ ROM_REGION( 0X1000000, "ymsnd", 0 )
+ ROM_LOAD( "270bs.v1", 0x000000, 0x800000, CRC(809c7617) SHA1(b6b542eb4c1078016fcd78d050433dc8e3029329) )
+ ROM_LOAD( "270bs.v2", 0x800000, 0x800000, CRC(42671607) SHA1(4fa64b5a9349e9c3d5d60806c9da4a2b6beff18a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "270ch.c1", 0x0000000, 0x800000, CRC(a2fe269f) SHA1(95ea363061bf5f4537ba885c0fbd894985f0a93a) )
+ ROM_LOAD16_BYTE( "270hd.c2", 0x0000001, 0x800000, CRC(ac0309e5) SHA1(9795fb2fa9eea617ec25656cfa9cd507899ec4fe) )
+ ROM_LOAD16_BYTE( "270ch.c3", 0x1000000, 0x800000, CRC(8275bb23) SHA1(101e784f273cce19158f81d23a8f581750ff7512) )
+ ROM_LOAD16_BYTE( "270ch.c4", 0x1000001, 0x800000, CRC(7a69cc1f) SHA1(2b63b5093c07aa7585093617c179af65b5015305) )
+ ROM_LOAD16_BYTE( "270ch.c5", 0x2000000, 0x800000, CRC(5298d011) SHA1(2090deb8341efc682b1dc55fb55e85a091d9ce2c) )
+ ROM_LOAD16_BYTE( "270ch.c6", 0x2000001, 0x800000, CRC(a33c04df) SHA1(31b14f8be2ff108337c8d672996aa650edd2307f) )
+ ROM_LOAD16_BYTE( "270ch.c7", 0x3000000, 0x800000, CRC(61025f97) SHA1(5ba6432aa35b1c27bc34ebd349ff47154dceb9a8) )
+ ROM_LOAD16_BYTE( "270ch.c8", 0x3000001, 0x800000, CRC(df3993ce) SHA1(580327300ff84ce805694b06f8036eeffef4c046) )
+ROM_END
+
+ROM_START( samsho5s04 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "270hc04.p1", 0x000000, 0x800000, CRC(0fb9aafd) SHA1(a8af728d5bd4183cbf91afcf72ccd17148d8003d) )
+
+ NEO_SFIX_128K( "270ch.s1", CRC(cd025baa) SHA1(2ebdff1f40ec31b1842ec5399145869b00c8c4b2) )
+
+ NEO_BIOS_AUDIO_512K( "270ch.m1", CRC(0ca49586) SHA1(8610918af611d8514678fee1617aa47974b604e6) )
+
+ ROM_REGION( 0X1000000, "ymsnd", 0 )
+ ROM_LOAD( "270bs.v1", 0x000000, 0x800000, CRC(809c7617) SHA1(b6b542eb4c1078016fcd78d050433dc8e3029329) )
+ ROM_LOAD( "270bs.v2", 0x800000, 0x800000, CRC(42671607) SHA1(4fa64b5a9349e9c3d5d60806c9da4a2b6beff18a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "270ch.c1", 0x0000000, 0x800000, CRC(a2fe269f) SHA1(95ea363061bf5f4537ba885c0fbd894985f0a93a) )
+ ROM_LOAD16_BYTE( "270hd.c2", 0x0000001, 0x800000, CRC(ac0309e5) SHA1(9795fb2fa9eea617ec25656cfa9cd507899ec4fe) )
+ ROM_LOAD16_BYTE( "270ch.c3", 0x1000000, 0x800000, CRC(8275bb23) SHA1(101e784f273cce19158f81d23a8f581750ff7512) )
+ ROM_LOAD16_BYTE( "270ch.c4", 0x1000001, 0x800000, CRC(7a69cc1f) SHA1(2b63b5093c07aa7585093617c179af65b5015305) )
+ ROM_LOAD16_BYTE( "270ch.c5", 0x2000000, 0x800000, CRC(5298d011) SHA1(2090deb8341efc682b1dc55fb55e85a091d9ce2c) )
+ ROM_LOAD16_BYTE( "270ch.c6", 0x2000001, 0x800000, CRC(a33c04df) SHA1(31b14f8be2ff108337c8d672996aa650edd2307f) )
+ ROM_LOAD16_BYTE( "270ch.c7", 0x3000000, 0x800000, CRC(61025f97) SHA1(5ba6432aa35b1c27bc34ebd349ff47154dceb9a8) )
+ ROM_LOAD16_BYTE( "270ch.c8", 0x3000001, 0x800000, CRC(df3993ce) SHA1(580327300ff84ce805694b06f8036eeffef4c046) )
+ROM_END
+
+ROM_START( samsho5s05 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "270hc05.p1", 0x000000, 0x800000, CRC(8d1970f3) SHA1(b29702f9f9c1c6e736b3450ffc72bf3d19c4369d) )
+
+ NEO_SFIX_128K( "270ch.s1", CRC(cd025baa) SHA1(2ebdff1f40ec31b1842ec5399145869b00c8c4b2) )
+
+ NEO_BIOS_AUDIO_512K( "270ch.m1", CRC(0ca49586) SHA1(8610918af611d8514678fee1617aa47974b604e6) )
+
+ ROM_REGION( 0X1000000, "ymsnd", 0 )
+ ROM_LOAD( "270bs.v1", 0x000000, 0x800000, CRC(809c7617) SHA1(b6b542eb4c1078016fcd78d050433dc8e3029329) )
+ ROM_LOAD( "270bs.v2", 0x800000, 0x800000, CRC(42671607) SHA1(4fa64b5a9349e9c3d5d60806c9da4a2b6beff18a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "270ch.c1", 0x0000000, 0x800000, CRC(a2fe269f) SHA1(95ea363061bf5f4537ba885c0fbd894985f0a93a) )
+ ROM_LOAD16_BYTE( "270hd.c2", 0x0000001, 0x800000, CRC(ac0309e5) SHA1(9795fb2fa9eea617ec25656cfa9cd507899ec4fe) )
+ ROM_LOAD16_BYTE( "270ch.c3", 0x1000000, 0x800000, CRC(8275bb23) SHA1(101e784f273cce19158f81d23a8f581750ff7512) )
+ ROM_LOAD16_BYTE( "270ch.c4", 0x1000001, 0x800000, CRC(7a69cc1f) SHA1(2b63b5093c07aa7585093617c179af65b5015305) )
+ ROM_LOAD16_BYTE( "270ch.c5", 0x2000000, 0x800000, CRC(5298d011) SHA1(2090deb8341efc682b1dc55fb55e85a091d9ce2c) )
+ ROM_LOAD16_BYTE( "270ch.c6", 0x2000001, 0x800000, CRC(a33c04df) SHA1(31b14f8be2ff108337c8d672996aa650edd2307f) )
+ ROM_LOAD16_BYTE( "270ch.c7", 0x3000000, 0x800000, CRC(61025f97) SHA1(5ba6432aa35b1c27bc34ebd349ff47154dceb9a8) )
+ ROM_LOAD16_BYTE( "270ch.c8", 0x3000001, 0x800000, CRC(df3993ce) SHA1(580327300ff84ce805694b06f8036eeffef4c046) )
+ROM_END
+
+ROM_START( samsho5s06 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "270hc06.p1", 0x000000, 0x800000, CRC(e05e3cb7) SHA1(dbbed84278529888a8257a9952369f7306ef560e) )
+
+ NEO_SFIX_128K( "270ch.s1", CRC(cd025baa) SHA1(2ebdff1f40ec31b1842ec5399145869b00c8c4b2) )
+
+ NEO_BIOS_AUDIO_512K( "270ch.m1", CRC(0ca49586) SHA1(8610918af611d8514678fee1617aa47974b604e6) )
+
+ ROM_REGION( 0X1000000, "ymsnd", 0 )
+ ROM_LOAD( "270bs.v1", 0x000000, 0x800000, CRC(809c7617) SHA1(b6b542eb4c1078016fcd78d050433dc8e3029329) )
+ ROM_LOAD( "270bs.v2", 0x800000, 0x800000, CRC(42671607) SHA1(4fa64b5a9349e9c3d5d60806c9da4a2b6beff18a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "270ch.c1", 0x0000000, 0x800000, CRC(a2fe269f) SHA1(95ea363061bf5f4537ba885c0fbd894985f0a93a) )
+ ROM_LOAD16_BYTE( "270hd.c2", 0x0000001, 0x800000, CRC(ac0309e5) SHA1(9795fb2fa9eea617ec25656cfa9cd507899ec4fe) )
+ ROM_LOAD16_BYTE( "270ch.c3", 0x1000000, 0x800000, CRC(8275bb23) SHA1(101e784f273cce19158f81d23a8f581750ff7512) )
+ ROM_LOAD16_BYTE( "270ch.c4", 0x1000001, 0x800000, CRC(7a69cc1f) SHA1(2b63b5093c07aa7585093617c179af65b5015305) )
+ ROM_LOAD16_BYTE( "270ch.c5", 0x2000000, 0x800000, CRC(5298d011) SHA1(2090deb8341efc682b1dc55fb55e85a091d9ce2c) )
+ ROM_LOAD16_BYTE( "270ch.c6", 0x2000001, 0x800000, CRC(a33c04df) SHA1(31b14f8be2ff108337c8d672996aa650edd2307f) )
+ ROM_LOAD16_BYTE( "270ch.c7", 0x3000000, 0x800000, CRC(61025f97) SHA1(5ba6432aa35b1c27bc34ebd349ff47154dceb9a8) )
+ ROM_LOAD16_BYTE( "270ch.c8", 0x3000001, 0x800000, CRC(df3993ce) SHA1(580327300ff84ce805694b06f8036eeffef4c046) )
+ROM_END
+
+ROM_START( samsho5s07 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "270hc07.p1", 0x000000, 0x800000, CRC(8a86c728) SHA1(1a9d168f73138199306115d27b17acffc2a1b945) )
+
+ NEO_SFIX_128K( "270bd.s1", CRC(33227d62) SHA1(5f4b7ab642175657af212304783a1df98415ed44) )
+
+ NEO_BIOS_AUDIO_128K( "270bd.m1", CRC(18114fb1) SHA1(016dc2f328340f3637a9bff373a20973df29f6b8) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "270bd.v1", 0x000000, 0x400000, CRC(6849136c) SHA1(5f8e7cc33b8d994165dd577a0d7e0eb2df16f07e) )
+ ROM_LOAD( "270bd.v2", 0x400000, 0x400000, CRC(222e1774) SHA1(3c1b2f37d4f2fa2cd7d6a6f04b3aedf6b2f4b089) )
+ ROM_LOAD( "270bd.v3", 0x800000, 0x400000, CRC(cd9e7adc) SHA1(941ae992c004594885f635fdea3ac1c51bb5d469) )
+ ROM_LOAD( "270bd.v4", 0xc00000, 0x400000, CRC(8b305cac) SHA1(938e2600c0c2b3d4a0a362ef6e91850c32217f18) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "270bd.c1", 0x0000000, 0x800000, CRC(4e7bdea1) SHA1(2376386e0e82820c0853cf39e27167f8c181980c) )
+ ROM_LOAD16_BYTE( "270bd.c2", 0x0000001, 0x800000, CRC(7b444985) SHA1(1f2941f6a1bee6391002b88277edcfa7554f10f3) )
+ ROM_LOAD16_BYTE( "270bd.c3", 0x1000000, 0x800000, CRC(8c709a9b) SHA1(92a03ccf08d301955b06f3323417b4f20d773428) )
+ ROM_LOAD16_BYTE( "270bd.c4", 0x1000001, 0x800000, CRC(cfd53f5c) SHA1(773b03fb6faa958eddee6b001ebb619f8a8d5b30) )
+ ROM_LOAD16_BYTE( "270bd.c5", 0x2000000, 0x800000, CRC(c026d318) SHA1(fec9a9309afe94f21e0f35ec992a39ce51deefc2) )
+ ROM_LOAD16_BYTE( "270bd.c6", 0x2000001, 0x800000, CRC(b3d9d204) SHA1(9dbcf6c179ea3a04c8ed26416e4e91324fd1cf11) )
+ ROM_LOAD16_BYTE( "270bd.c7", 0x3000000, 0x800000, CRC(fe03a025) SHA1(3a052869f6b46cffc5d1ea497b0d5f1f4d1874c2) )
+ ROM_LOAD16_BYTE( "270bd.c8", 0x3000001, 0x800000, CRC(89db2d34) SHA1(cd3f1e4ef631704c1078c915135a4510891bd429) )
+ROM_END
+
+ROM_START( samsho5s08 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "270hc08.p1", 0x000000, 0x800000, CRC(9e3d4a3c) SHA1(caf2b052098ee75280ee40053db97111cc51b122) )
+
+ NEO_SFIX_128K( "270ch.s1", CRC(cd025baa) SHA1(2ebdff1f40ec31b1842ec5399145869b00c8c4b2) )
+
+ NEO_BIOS_AUDIO_512K( "270ch.m1", CRC(0ca49586) SHA1(8610918af611d8514678fee1617aa47974b604e6) )
+
+ ROM_REGION( 0X1000000, "ymsnd", 0 )
+ ROM_LOAD( "270bs.v1", 0x000000, 0x800000, CRC(809c7617) SHA1(b6b542eb4c1078016fcd78d050433dc8e3029329) )
+ ROM_LOAD( "270bs.v2", 0x800000, 0x800000, CRC(42671607) SHA1(4fa64b5a9349e9c3d5d60806c9da4a2b6beff18a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "270ch.c1", 0x0000000, 0x800000, CRC(a2fe269f) SHA1(95ea363061bf5f4537ba885c0fbd894985f0a93a) )
+ ROM_LOAD16_BYTE( "270hd.c2", 0x0000001, 0x800000, CRC(ac0309e5) SHA1(9795fb2fa9eea617ec25656cfa9cd507899ec4fe) )
+ ROM_LOAD16_BYTE( "270ch.c3", 0x1000000, 0x800000, CRC(8275bb23) SHA1(101e784f273cce19158f81d23a8f581750ff7512) )
+ ROM_LOAD16_BYTE( "270ch.c4", 0x1000001, 0x800000, CRC(7a69cc1f) SHA1(2b63b5093c07aa7585093617c179af65b5015305) )
+ ROM_LOAD16_BYTE( "270ch.c5", 0x2000000, 0x800000, CRC(5298d011) SHA1(2090deb8341efc682b1dc55fb55e85a091d9ce2c) )
+ ROM_LOAD16_BYTE( "270ch.c6", 0x2000001, 0x800000, CRC(a33c04df) SHA1(31b14f8be2ff108337c8d672996aa650edd2307f) )
+ ROM_LOAD16_BYTE( "270ch.c7", 0x3000000, 0x800000, CRC(61025f97) SHA1(5ba6432aa35b1c27bc34ebd349ff47154dceb9a8) )
+ ROM_LOAD16_BYTE( "270ch.c8", 0x3000001, 0x800000, CRC(df3993ce) SHA1(580327300ff84ce805694b06f8036eeffef4c046) )
+ROM_END
+
+ROM_START( samsho5s09 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "270hc09.p1", 0x000000, 0x800000, CRC(2e7508da) SHA1(5a72b6b35eef2da11509ba0334c8953ee0ccc172) )
+
+ NEO_SFIX_128K( "270ch.s1", CRC(cd025baa) SHA1(2ebdff1f40ec31b1842ec5399145869b00c8c4b2) )
+
+ NEO_BIOS_AUDIO_512K( "270ch.m1", CRC(0ca49586) SHA1(8610918af611d8514678fee1617aa47974b604e6) )
+
+ ROM_REGION( 0X1000000, "ymsnd", 0 )
+ ROM_LOAD( "270bs.v1", 0x000000, 0x800000, CRC(809c7617) SHA1(b6b542eb4c1078016fcd78d050433dc8e3029329) )
+ ROM_LOAD( "270bs.v2", 0x800000, 0x800000, CRC(42671607) SHA1(4fa64b5a9349e9c3d5d60806c9da4a2b6beff18a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "270ch.c1", 0x0000000, 0x800000, CRC(a2fe269f) SHA1(95ea363061bf5f4537ba885c0fbd894985f0a93a) )
+ ROM_LOAD16_BYTE( "270hd.c2", 0x0000001, 0x800000, CRC(ac0309e5) SHA1(9795fb2fa9eea617ec25656cfa9cd507899ec4fe) )
+ ROM_LOAD16_BYTE( "270ch.c3", 0x1000000, 0x800000, CRC(8275bb23) SHA1(101e784f273cce19158f81d23a8f581750ff7512) )
+ ROM_LOAD16_BYTE( "270ch.c4", 0x1000001, 0x800000, CRC(7a69cc1f) SHA1(2b63b5093c07aa7585093617c179af65b5015305) )
+ ROM_LOAD16_BYTE( "270ch.c5", 0x2000000, 0x800000, CRC(5298d011) SHA1(2090deb8341efc682b1dc55fb55e85a091d9ce2c) )
+ ROM_LOAD16_BYTE( "270ch.c6", 0x2000001, 0x800000, CRC(a33c04df) SHA1(31b14f8be2ff108337c8d672996aa650edd2307f) )
+ ROM_LOAD16_BYTE( "270ch.c7", 0x3000000, 0x800000, CRC(61025f97) SHA1(5ba6432aa35b1c27bc34ebd349ff47154dceb9a8) )
+ ROM_LOAD16_BYTE( "270ch.c8", 0x3000001, 0x800000, CRC(df3993ce) SHA1(580327300ff84ce805694b06f8036eeffef4c046) )
+ROM_END
+
+ROM_START( samsho5s10 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "270hc10.p1", 0x000000, 0x800000, CRC(e488b663) SHA1(7132d3215ff9e3aa61332097f26f2611afb7af11) )
+
+ NEO_SFIX_128K( "270ch.s1", CRC(cd025baa) SHA1(2ebdff1f40ec31b1842ec5399145869b00c8c4b2) )
+
+ NEO_BIOS_AUDIO_512K( "270ch.m1", CRC(0ca49586) SHA1(8610918af611d8514678fee1617aa47974b604e6) )
+
+ ROM_REGION( 0X1000000, "ymsnd", 0 )
+ ROM_LOAD( "270bs.v1", 0x000000, 0x800000, CRC(809c7617) SHA1(b6b542eb4c1078016fcd78d050433dc8e3029329) )
+ ROM_LOAD( "270bs.v2", 0x800000, 0x800000, CRC(42671607) SHA1(4fa64b5a9349e9c3d5d60806c9da4a2b6beff18a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "270ch.c1", 0x0000000, 0x800000, CRC(a2fe269f) SHA1(95ea363061bf5f4537ba885c0fbd894985f0a93a) )
+ ROM_LOAD16_BYTE( "270hd.c2", 0x0000001, 0x800000, CRC(ac0309e5) SHA1(9795fb2fa9eea617ec25656cfa9cd507899ec4fe) )
+ ROM_LOAD16_BYTE( "270ch.c3", 0x1000000, 0x800000, CRC(8275bb23) SHA1(101e784f273cce19158f81d23a8f581750ff7512) )
+ ROM_LOAD16_BYTE( "270ch.c4", 0x1000001, 0x800000, CRC(7a69cc1f) SHA1(2b63b5093c07aa7585093617c179af65b5015305) )
+ ROM_LOAD16_BYTE( "270ch.c5", 0x2000000, 0x800000, CRC(5298d011) SHA1(2090deb8341efc682b1dc55fb55e85a091d9ce2c) )
+ ROM_LOAD16_BYTE( "270ch.c6", 0x2000001, 0x800000, CRC(a33c04df) SHA1(31b14f8be2ff108337c8d672996aa650edd2307f) )
+ ROM_LOAD16_BYTE( "270ch.c7", 0x3000000, 0x800000, CRC(61025f97) SHA1(5ba6432aa35b1c27bc34ebd349ff47154dceb9a8) )
+ ROM_LOAD16_BYTE( "270ch.c8", 0x3000001, 0x800000, CRC(df3993ce) SHA1(580327300ff84ce805694b06f8036eeffef4c046) )
+ROM_END
+
+ROM_START( samsho5s11 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "270hc11.p1", 0x000000, 0x800000, CRC(52583907) SHA1(0fcf3461ebb7476ca3dafa6ddc4d8eb0ecd3e3ce) )
+
+ NEO_SFIX_128K( "270ch.s1", CRC(cd025baa) SHA1(2ebdff1f40ec31b1842ec5399145869b00c8c4b2) )
+
+ NEO_BIOS_AUDIO_512K( "270ch.m1", CRC(0ca49586) SHA1(8610918af611d8514678fee1617aa47974b604e6) )
+
+ ROM_REGION( 0X1000000, "ymsnd", 0 )
+ ROM_LOAD( "270bs.v1", 0x000000, 0x800000, CRC(809c7617) SHA1(b6b542eb4c1078016fcd78d050433dc8e3029329) )
+ ROM_LOAD( "270bs.v2", 0x800000, 0x800000, CRC(42671607) SHA1(4fa64b5a9349e9c3d5d60806c9da4a2b6beff18a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "270ch.c1", 0x0000000, 0x800000, CRC(a2fe269f) SHA1(95ea363061bf5f4537ba885c0fbd894985f0a93a) )
+ ROM_LOAD16_BYTE( "270hd.c2", 0x0000001, 0x800000, CRC(ac0309e5) SHA1(9795fb2fa9eea617ec25656cfa9cd507899ec4fe) )
+ ROM_LOAD16_BYTE( "270ch.c3", 0x1000000, 0x800000, CRC(8275bb23) SHA1(101e784f273cce19158f81d23a8f581750ff7512) )
+ ROM_LOAD16_BYTE( "270ch.c4", 0x1000001, 0x800000, CRC(7a69cc1f) SHA1(2b63b5093c07aa7585093617c179af65b5015305) )
+ ROM_LOAD16_BYTE( "270ch.c5", 0x2000000, 0x800000, CRC(5298d011) SHA1(2090deb8341efc682b1dc55fb55e85a091d9ce2c) )
+ ROM_LOAD16_BYTE( "270ch.c6", 0x2000001, 0x800000, CRC(a33c04df) SHA1(31b14f8be2ff108337c8d672996aa650edd2307f) )
+ ROM_LOAD16_BYTE( "270ch.c7", 0x3000000, 0x800000, CRC(61025f97) SHA1(5ba6432aa35b1c27bc34ebd349ff47154dceb9a8) )
+ ROM_LOAD16_BYTE( "270ch.c8", 0x3000001, 0x800000, CRC(df3993ce) SHA1(580327300ff84ce805694b06f8036eeffef4c046) )
+ROM_END
+
+ROM_START( samsho5s12 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "270hc12.p1", 0x000000, 0x800000, CRC(15f3334f) SHA1(fb0ae4f7af2e8f348e9c9b904addebf092574d33) )
+
+ NEO_SFIX_128K( "270ch.s1", CRC(cd025baa) SHA1(2ebdff1f40ec31b1842ec5399145869b00c8c4b2) )
+
+ NEO_BIOS_AUDIO_512K( "270ch.m1", CRC(0ca49586) SHA1(8610918af611d8514678fee1617aa47974b604e6) )
+
+ ROM_REGION( 0X1000000, "ymsnd", 0 )
+ ROM_LOAD( "270bs.v1", 0x000000, 0x800000, CRC(809c7617) SHA1(b6b542eb4c1078016fcd78d050433dc8e3029329) )
+ ROM_LOAD( "270bs.v2", 0x800000, 0x800000, CRC(42671607) SHA1(4fa64b5a9349e9c3d5d60806c9da4a2b6beff18a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "270ch.c1", 0x0000000, 0x800000, CRC(a2fe269f) SHA1(95ea363061bf5f4537ba885c0fbd894985f0a93a) )
+ ROM_LOAD16_BYTE( "270hd.c2", 0x0000001, 0x800000, CRC(ac0309e5) SHA1(9795fb2fa9eea617ec25656cfa9cd507899ec4fe) )
+ ROM_LOAD16_BYTE( "270ch.c3", 0x1000000, 0x800000, CRC(8275bb23) SHA1(101e784f273cce19158f81d23a8f581750ff7512) )
+ ROM_LOAD16_BYTE( "270ch.c4", 0x1000001, 0x800000, CRC(7a69cc1f) SHA1(2b63b5093c07aa7585093617c179af65b5015305) )
+ ROM_LOAD16_BYTE( "270ch.c5", 0x2000000, 0x800000, CRC(5298d011) SHA1(2090deb8341efc682b1dc55fb55e85a091d9ce2c) )
+ ROM_LOAD16_BYTE( "270ch.c6", 0x2000001, 0x800000, CRC(a33c04df) SHA1(31b14f8be2ff108337c8d672996aa650edd2307f) )
+ ROM_LOAD16_BYTE( "270ch.c7", 0x3000000, 0x800000, CRC(61025f97) SHA1(5ba6432aa35b1c27bc34ebd349ff47154dceb9a8) )
+ ROM_LOAD16_BYTE( "270ch.c8", 0x3000001, 0x800000, CRC(df3993ce) SHA1(580327300ff84ce805694b06f8036eeffef4c046) )
+ROM_END
+
+ROM_START( samsho5s13 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "270hc13.p1", 0x000000, 0x800000, CRC(821d9735) SHA1(adb8fa6489ee9ef7a74d2536b6ebec593f0ab248) )
+
+ NEO_SFIX_128K( "270ch.s1", CRC(cd025baa) SHA1(2ebdff1f40ec31b1842ec5399145869b00c8c4b2) )
+
+ NEO_BIOS_AUDIO_512K( "270ch.m1", CRC(0ca49586) SHA1(8610918af611d8514678fee1617aa47974b604e6) )
+
+ ROM_REGION( 0X1000000, "ymsnd", 0 )
+ ROM_LOAD( "270bs.v1", 0x000000, 0x800000, CRC(809c7617) SHA1(b6b542eb4c1078016fcd78d050433dc8e3029329) )
+ ROM_LOAD( "270bs.v2", 0x800000, 0x800000, CRC(42671607) SHA1(4fa64b5a9349e9c3d5d60806c9da4a2b6beff18a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "270ch.c1", 0x0000000, 0x800000, CRC(a2fe269f) SHA1(95ea363061bf5f4537ba885c0fbd894985f0a93a) )
+ ROM_LOAD16_BYTE( "270hd.c2", 0x0000001, 0x800000, CRC(ac0309e5) SHA1(9795fb2fa9eea617ec25656cfa9cd507899ec4fe) )
+ ROM_LOAD16_BYTE( "270ch.c3", 0x1000000, 0x800000, CRC(8275bb23) SHA1(101e784f273cce19158f81d23a8f581750ff7512) )
+ ROM_LOAD16_BYTE( "270ch.c4", 0x1000001, 0x800000, CRC(7a69cc1f) SHA1(2b63b5093c07aa7585093617c179af65b5015305) )
+ ROM_LOAD16_BYTE( "270ch.c5", 0x2000000, 0x800000, CRC(5298d011) SHA1(2090deb8341efc682b1dc55fb55e85a091d9ce2c) )
+ ROM_LOAD16_BYTE( "270ch.c6", 0x2000001, 0x800000, CRC(a33c04df) SHA1(31b14f8be2ff108337c8d672996aa650edd2307f) )
+ ROM_LOAD16_BYTE( "270ch.c7", 0x3000000, 0x800000, CRC(61025f97) SHA1(5ba6432aa35b1c27bc34ebd349ff47154dceb9a8) )
+ ROM_LOAD16_BYTE( "270ch.c8", 0x3000001, 0x800000, CRC(df3993ce) SHA1(580327300ff84ce805694b06f8036eeffef4c046) )
+ROM_END
+
+ROM_START( samsho5s14 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "270hc14.p1", 0x000000, 0x800000, CRC(fe6f92e0) SHA1(e435b2cbb4d8e2a8f26a19f4239973e3b90ce408) )
+
+ NEO_SFIX_128K( "270ch.s1", CRC(cd025baa) SHA1(2ebdff1f40ec31b1842ec5399145869b00c8c4b2) )
+
+ NEO_BIOS_AUDIO_512K( "270ch.m1", CRC(0ca49586) SHA1(8610918af611d8514678fee1617aa47974b604e6) )
+
+ ROM_REGION( 0X1000000, "ymsnd", 0 )
+ ROM_LOAD( "270bs.v1", 0x000000, 0x800000, CRC(809c7617) SHA1(b6b542eb4c1078016fcd78d050433dc8e3029329) )
+ ROM_LOAD( "270bs.v2", 0x800000, 0x800000, CRC(42671607) SHA1(4fa64b5a9349e9c3d5d60806c9da4a2b6beff18a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "270ch.c1", 0x0000000, 0x800000, CRC(a2fe269f) SHA1(95ea363061bf5f4537ba885c0fbd894985f0a93a) )
+ ROM_LOAD16_BYTE( "270hd.c2", 0x0000001, 0x800000, CRC(ac0309e5) SHA1(9795fb2fa9eea617ec25656cfa9cd507899ec4fe) )
+ ROM_LOAD16_BYTE( "270ch.c3", 0x1000000, 0x800000, CRC(8275bb23) SHA1(101e784f273cce19158f81d23a8f581750ff7512) )
+ ROM_LOAD16_BYTE( "270ch.c4", 0x1000001, 0x800000, CRC(7a69cc1f) SHA1(2b63b5093c07aa7585093617c179af65b5015305) )
+ ROM_LOAD16_BYTE( "270ch.c5", 0x2000000, 0x800000, CRC(5298d011) SHA1(2090deb8341efc682b1dc55fb55e85a091d9ce2c) )
+ ROM_LOAD16_BYTE( "270ch.c6", 0x2000001, 0x800000, CRC(a33c04df) SHA1(31b14f8be2ff108337c8d672996aa650edd2307f) )
+ ROM_LOAD16_BYTE( "270ch.c7", 0x3000000, 0x800000, CRC(61025f97) SHA1(5ba6432aa35b1c27bc34ebd349ff47154dceb9a8) )
+ ROM_LOAD16_BYTE( "270ch.c8", 0x3000001, 0x800000, CRC(df3993ce) SHA1(580327300ff84ce805694b06f8036eeffef4c046) )
+ROM_END
+
+ROM_START( samsho5s15 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "270hc15.p1", 0x000000, 0x800000, CRC(038c83c9) SHA1(17ccf9477def13482d434fd09ff8ff7175385ce7) )
+
+ NEO_SFIX_128K( "270ch.s1", CRC(cd025baa) SHA1(2ebdff1f40ec31b1842ec5399145869b00c8c4b2) )
+
+ NEO_BIOS_AUDIO_512K( "270ch.m1", CRC(0ca49586) SHA1(8610918af611d8514678fee1617aa47974b604e6) )
+
+ ROM_REGION( 0X1000000, "ymsnd", 0 )
+ ROM_LOAD( "270bs.v1", 0x000000, 0x800000, CRC(809c7617) SHA1(b6b542eb4c1078016fcd78d050433dc8e3029329) )
+ ROM_LOAD( "270bs.v2", 0x800000, 0x800000, CRC(42671607) SHA1(4fa64b5a9349e9c3d5d60806c9da4a2b6beff18a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "270ch.c1", 0x0000000, 0x800000, CRC(a2fe269f) SHA1(95ea363061bf5f4537ba885c0fbd894985f0a93a) )
+ ROM_LOAD16_BYTE( "270hd.c2", 0x0000001, 0x800000, CRC(ac0309e5) SHA1(9795fb2fa9eea617ec25656cfa9cd507899ec4fe) )
+ ROM_LOAD16_BYTE( "270ch.c3", 0x1000000, 0x800000, CRC(8275bb23) SHA1(101e784f273cce19158f81d23a8f581750ff7512) )
+ ROM_LOAD16_BYTE( "270ch.c4", 0x1000001, 0x800000, CRC(7a69cc1f) SHA1(2b63b5093c07aa7585093617c179af65b5015305) )
+ ROM_LOAD16_BYTE( "270ch.c5", 0x2000000, 0x800000, CRC(5298d011) SHA1(2090deb8341efc682b1dc55fb55e85a091d9ce2c) )
+ ROM_LOAD16_BYTE( "270ch.c6", 0x2000001, 0x800000, CRC(a33c04df) SHA1(31b14f8be2ff108337c8d672996aa650edd2307f) )
+ ROM_LOAD16_BYTE( "270ch.c7", 0x3000000, 0x800000, CRC(61025f97) SHA1(5ba6432aa35b1c27bc34ebd349ff47154dceb9a8) )
+ ROM_LOAD16_BYTE( "270ch.c8", 0x3000001, 0x800000, CRC(df3993ce) SHA1(580327300ff84ce805694b06f8036eeffef4c046) )
+ROM_END
+
+ROM_START( samsho5s16 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "270hc16.p1", 0x000000, 0x800000, CRC(e177fcae) SHA1(bee596d86110ebe85b2d48bda124202da1a3239b) )
+
+ NEO_SFIX_128K( "270ch.s1", CRC(cd025baa) SHA1(2ebdff1f40ec31b1842ec5399145869b00c8c4b2) )
+
+ NEO_BIOS_AUDIO_512K( "270ch.m1", CRC(0ca49586) SHA1(8610918af611d8514678fee1617aa47974b604e6) )
+
+ ROM_REGION( 0X1000000, "ymsnd", 0 )
+ ROM_LOAD( "270bs.v1", 0x000000, 0x800000, CRC(809c7617) SHA1(b6b542eb4c1078016fcd78d050433dc8e3029329) )
+ ROM_LOAD( "270bs.v2", 0x800000, 0x800000, CRC(42671607) SHA1(4fa64b5a9349e9c3d5d60806c9da4a2b6beff18a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "270ch.c1", 0x0000000, 0x800000, CRC(a2fe269f) SHA1(95ea363061bf5f4537ba885c0fbd894985f0a93a) )
+ ROM_LOAD16_BYTE( "270hd.c2", 0x0000001, 0x800000, CRC(ac0309e5) SHA1(9795fb2fa9eea617ec25656cfa9cd507899ec4fe) )
+ ROM_LOAD16_BYTE( "270ch.c3", 0x1000000, 0x800000, CRC(8275bb23) SHA1(101e784f273cce19158f81d23a8f581750ff7512) )
+ ROM_LOAD16_BYTE( "270ch.c4", 0x1000001, 0x800000, CRC(7a69cc1f) SHA1(2b63b5093c07aa7585093617c179af65b5015305) )
+ ROM_LOAD16_BYTE( "270ch.c5", 0x2000000, 0x800000, CRC(5298d011) SHA1(2090deb8341efc682b1dc55fb55e85a091d9ce2c) )
+ ROM_LOAD16_BYTE( "270ch.c6", 0x2000001, 0x800000, CRC(a33c04df) SHA1(31b14f8be2ff108337c8d672996aa650edd2307f) )
+ ROM_LOAD16_BYTE( "270ch.c7", 0x3000000, 0x800000, CRC(61025f97) SHA1(5ba6432aa35b1c27bc34ebd349ff47154dceb9a8) )
+ ROM_LOAD16_BYTE( "270ch.c8", 0x3000001, 0x800000, CRC(df3993ce) SHA1(580327300ff84ce805694b06f8036eeffef4c046) )
+ROM_END
+
+ROM_START( samsho5s17 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "270hc17.p1", 0x000000, 0x800000, CRC(85af659c) SHA1(41a83d32c9c787c060bf65700c1b959a21e27cbf) )
+
+ NEO_SFIX_128K( "270ch.s1", CRC(cd025baa) SHA1(2ebdff1f40ec31b1842ec5399145869b00c8c4b2) )
+
+ NEO_BIOS_AUDIO_512K( "270ch.m1", CRC(0ca49586) SHA1(8610918af611d8514678fee1617aa47974b604e6) )
+
+ ROM_REGION( 0X1000000, "ymsnd", 0 )
+ ROM_LOAD( "270bs.v1", 0x000000, 0x800000, CRC(809c7617) SHA1(b6b542eb4c1078016fcd78d050433dc8e3029329) )
+ ROM_LOAD( "270bs.v2", 0x800000, 0x800000, CRC(42671607) SHA1(4fa64b5a9349e9c3d5d60806c9da4a2b6beff18a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "270ch.c1", 0x0000000, 0x800000, CRC(a2fe269f) SHA1(95ea363061bf5f4537ba885c0fbd894985f0a93a) )
+ ROM_LOAD16_BYTE( "270hd.c2", 0x0000001, 0x800000, CRC(ac0309e5) SHA1(9795fb2fa9eea617ec25656cfa9cd507899ec4fe) )
+ ROM_LOAD16_BYTE( "270ch.c3", 0x1000000, 0x800000, CRC(8275bb23) SHA1(101e784f273cce19158f81d23a8f581750ff7512) )
+ ROM_LOAD16_BYTE( "270ch.c4", 0x1000001, 0x800000, CRC(7a69cc1f) SHA1(2b63b5093c07aa7585093617c179af65b5015305) )
+ ROM_LOAD16_BYTE( "270ch.c5", 0x2000000, 0x800000, CRC(5298d011) SHA1(2090deb8341efc682b1dc55fb55e85a091d9ce2c) )
+ ROM_LOAD16_BYTE( "270ch.c6", 0x2000001, 0x800000, CRC(a33c04df) SHA1(31b14f8be2ff108337c8d672996aa650edd2307f) )
+ ROM_LOAD16_BYTE( "270ch.c7", 0x3000000, 0x800000, CRC(61025f97) SHA1(5ba6432aa35b1c27bc34ebd349ff47154dceb9a8) )
+ ROM_LOAD16_BYTE( "270ch.c8", 0x3000001, 0x800000, CRC(df3993ce) SHA1(580327300ff84ce805694b06f8036eeffef4c046) )
+ROM_END
+
+ROM_START( samsho5s18 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "270hc18.p1", 0x000000, 0x800000, CRC(9468966a) SHA1(b9a949a36b5e3f3d588de0a98746ccc95aff2828) )
+
+ NEO_SFIX_128K( "270ch.s1", CRC(cd025baa) SHA1(2ebdff1f40ec31b1842ec5399145869b00c8c4b2) )
+
+ NEO_BIOS_AUDIO_512K( "270ch.m1", CRC(0ca49586) SHA1(8610918af611d8514678fee1617aa47974b604e6) )
+
+ ROM_REGION( 0X1000000, "ymsnd", 0 )
+ ROM_LOAD( "270bs.v1", 0x000000, 0x800000, CRC(809c7617) SHA1(b6b542eb4c1078016fcd78d050433dc8e3029329) )
+ ROM_LOAD( "270bs.v2", 0x800000, 0x800000, CRC(42671607) SHA1(4fa64b5a9349e9c3d5d60806c9da4a2b6beff18a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "270ch.c1", 0x0000000, 0x800000, CRC(a2fe269f) SHA1(95ea363061bf5f4537ba885c0fbd894985f0a93a) )
+ ROM_LOAD16_BYTE( "270hd.c2", 0x0000001, 0x800000, CRC(ac0309e5) SHA1(9795fb2fa9eea617ec25656cfa9cd507899ec4fe) )
+ ROM_LOAD16_BYTE( "270ch.c3", 0x1000000, 0x800000, CRC(8275bb23) SHA1(101e784f273cce19158f81d23a8f581750ff7512) )
+ ROM_LOAD16_BYTE( "270ch.c4", 0x1000001, 0x800000, CRC(7a69cc1f) SHA1(2b63b5093c07aa7585093617c179af65b5015305) )
+ ROM_LOAD16_BYTE( "270ch.c5", 0x2000000, 0x800000, CRC(5298d011) SHA1(2090deb8341efc682b1dc55fb55e85a091d9ce2c) )
+ ROM_LOAD16_BYTE( "270ch.c6", 0x2000001, 0x800000, CRC(a33c04df) SHA1(31b14f8be2ff108337c8d672996aa650edd2307f) )
+ ROM_LOAD16_BYTE( "270ch.c7", 0x3000000, 0x800000, CRC(61025f97) SHA1(5ba6432aa35b1c27bc34ebd349ff47154dceb9a8) )
+ ROM_LOAD16_BYTE( "270ch.c8", 0x3000001, 0x800000, CRC(df3993ce) SHA1(580327300ff84ce805694b06f8036eeffef4c046) )
+ROM_END
+
+ROM_START( samsho5s19 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "270hc19.p1", 0x000000, 0x800000, CRC(499e697a) SHA1(bb1ac01d657ee431a862f843a088a5e3b63fa31a) )
+
+ NEO_SFIX_128K( "270ch.s1", CRC(cd025baa) SHA1(2ebdff1f40ec31b1842ec5399145869b00c8c4b2) )
+
+ NEO_BIOS_AUDIO_512K( "270ch.m1", CRC(0ca49586) SHA1(8610918af611d8514678fee1617aa47974b604e6) )
+
+ ROM_REGION( 0X1000000, "ymsnd", 0 )
+ ROM_LOAD( "270bs.v1", 0x000000, 0x800000, CRC(809c7617) SHA1(b6b542eb4c1078016fcd78d050433dc8e3029329) )
+ ROM_LOAD( "270bs.v2", 0x800000, 0x800000, CRC(42671607) SHA1(4fa64b5a9349e9c3d5d60806c9da4a2b6beff18a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "270ch.c1", 0x0000000, 0x800000, CRC(a2fe269f) SHA1(95ea363061bf5f4537ba885c0fbd894985f0a93a) )
+ ROM_LOAD16_BYTE( "270hd.c2", 0x0000001, 0x800000, CRC(ac0309e5) SHA1(9795fb2fa9eea617ec25656cfa9cd507899ec4fe) )
+ ROM_LOAD16_BYTE( "270ch.c3", 0x1000000, 0x800000, CRC(8275bb23) SHA1(101e784f273cce19158f81d23a8f581750ff7512) )
+ ROM_LOAD16_BYTE( "270ch.c4", 0x1000001, 0x800000, CRC(7a69cc1f) SHA1(2b63b5093c07aa7585093617c179af65b5015305) )
+ ROM_LOAD16_BYTE( "270ch.c5", 0x2000000, 0x800000, CRC(5298d011) SHA1(2090deb8341efc682b1dc55fb55e85a091d9ce2c) )
+ ROM_LOAD16_BYTE( "270ch.c6", 0x2000001, 0x800000, CRC(a33c04df) SHA1(31b14f8be2ff108337c8d672996aa650edd2307f) )
+ ROM_LOAD16_BYTE( "270ch.c7", 0x3000000, 0x800000, CRC(61025f97) SHA1(5ba6432aa35b1c27bc34ebd349ff47154dceb9a8) )
+ ROM_LOAD16_BYTE( "270ch.c8", 0x3000001, 0x800000, CRC(df3993ce) SHA1(580327300ff84ce805694b06f8036eeffef4c046) )
+ROM_END
+
+ROM_START( samsho5s20 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "270hc20.p1", 0x000000, 0x800000, CRC(7b88cbef) SHA1(9db06a9478cdcca2a0244688321db2499b0a0190) )
+
+ NEO_SFIX_128K( "270ch.s1", CRC(cd025baa) SHA1(2ebdff1f40ec31b1842ec5399145869b00c8c4b2) )
+
+ NEO_BIOS_AUDIO_512K( "270ch.m1", CRC(0ca49586) SHA1(8610918af611d8514678fee1617aa47974b604e6) )
+
+ ROM_REGION( 0X1000000, "ymsnd", 0 )
+ ROM_LOAD( "270bs.v1", 0x000000, 0x800000, CRC(809c7617) SHA1(b6b542eb4c1078016fcd78d050433dc8e3029329) )
+ ROM_LOAD( "270bs.v2", 0x800000, 0x800000, CRC(42671607) SHA1(4fa64b5a9349e9c3d5d60806c9da4a2b6beff18a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "270ch.c1", 0x0000000, 0x800000, CRC(a2fe269f) SHA1(95ea363061bf5f4537ba885c0fbd894985f0a93a) )
+ ROM_LOAD16_BYTE( "270hd.c2", 0x0000001, 0x800000, CRC(ac0309e5) SHA1(9795fb2fa9eea617ec25656cfa9cd507899ec4fe) )
+ ROM_LOAD16_BYTE( "270ch.c3", 0x1000000, 0x800000, CRC(8275bb23) SHA1(101e784f273cce19158f81d23a8f581750ff7512) )
+ ROM_LOAD16_BYTE( "270ch.c4", 0x1000001, 0x800000, CRC(7a69cc1f) SHA1(2b63b5093c07aa7585093617c179af65b5015305) )
+ ROM_LOAD16_BYTE( "270ch.c5", 0x2000000, 0x800000, CRC(5298d011) SHA1(2090deb8341efc682b1dc55fb55e85a091d9ce2c) )
+ ROM_LOAD16_BYTE( "270ch.c6", 0x2000001, 0x800000, CRC(a33c04df) SHA1(31b14f8be2ff108337c8d672996aa650edd2307f) )
+ ROM_LOAD16_BYTE( "270ch.c7", 0x3000000, 0x800000, CRC(61025f97) SHA1(5ba6432aa35b1c27bc34ebd349ff47154dceb9a8) )
+ ROM_LOAD16_BYTE( "270ch.c8", 0x3000001, 0x800000, CRC(df3993ce) SHA1(580327300ff84ce805694b06f8036eeffef4c046) )
+ROM_END
+
+ROM_START( samsho5s21 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "270hc21.p1", 0x000000, 0x800000, CRC(b88a1486) SHA1(efbc9b4bd10ae5a1c8d798e39eefc164cb6060ee) )
+
+ NEO_SFIX_128K( "270ch.s1", CRC(cd025baa) SHA1(2ebdff1f40ec31b1842ec5399145869b00c8c4b2) )
+
+ NEO_BIOS_AUDIO_512K( "270ch.m1", CRC(0ca49586) SHA1(8610918af611d8514678fee1617aa47974b604e6) )
+
+ ROM_REGION( 0X1000000, "ymsnd", 0 )
+ ROM_LOAD( "270bs.v1", 0x000000, 0x800000, CRC(809c7617) SHA1(b6b542eb4c1078016fcd78d050433dc8e3029329) )
+ ROM_LOAD( "270bs.v2", 0x800000, 0x800000, CRC(42671607) SHA1(4fa64b5a9349e9c3d5d60806c9da4a2b6beff18a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "270ch.c1", 0x0000000, 0x800000, CRC(a2fe269f) SHA1(95ea363061bf5f4537ba885c0fbd894985f0a93a) )
+ ROM_LOAD16_BYTE( "270hd.c2", 0x0000001, 0x800000, CRC(ac0309e5) SHA1(9795fb2fa9eea617ec25656cfa9cd507899ec4fe) )
+ ROM_LOAD16_BYTE( "270ch.c3", 0x1000000, 0x800000, CRC(8275bb23) SHA1(101e784f273cce19158f81d23a8f581750ff7512) )
+ ROM_LOAD16_BYTE( "270ch.c4", 0x1000001, 0x800000, CRC(7a69cc1f) SHA1(2b63b5093c07aa7585093617c179af65b5015305) )
+ ROM_LOAD16_BYTE( "270ch.c5", 0x2000000, 0x800000, CRC(5298d011) SHA1(2090deb8341efc682b1dc55fb55e85a091d9ce2c) )
+ ROM_LOAD16_BYTE( "270ch.c6", 0x2000001, 0x800000, CRC(a33c04df) SHA1(31b14f8be2ff108337c8d672996aa650edd2307f) )
+ ROM_LOAD16_BYTE( "270ch.c7", 0x3000000, 0x800000, CRC(61025f97) SHA1(5ba6432aa35b1c27bc34ebd349ff47154dceb9a8) )
+ ROM_LOAD16_BYTE( "270ch.c8", 0x3000001, 0x800000, CRC(df3993ce) SHA1(580327300ff84ce805694b06f8036eeffef4c046) )
+ROM_END
+
+ROM_START( samsho5s22 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "270hc22.p1", 0x000000, 0x800000, CRC(011256f4) SHA1(af7a37cc2dda3d6a811341304c45ec8ea2256bff) )
+
+ NEO_SFIX_128K( "270ch.s1", CRC(cd025baa) SHA1(2ebdff1f40ec31b1842ec5399145869b00c8c4b2) )
+
+ NEO_BIOS_AUDIO_512K( "270ch.m1", CRC(0ca49586) SHA1(8610918af611d8514678fee1617aa47974b604e6) )
+
+ ROM_REGION( 0X1000000, "ymsnd", 0 )
+ ROM_LOAD( "270bs.v1", 0x000000, 0x800000, CRC(809c7617) SHA1(b6b542eb4c1078016fcd78d050433dc8e3029329) )
+ ROM_LOAD( "270bs.v2", 0x800000, 0x800000, CRC(42671607) SHA1(4fa64b5a9349e9c3d5d60806c9da4a2b6beff18a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "270ch.c1", 0x0000000, 0x800000, CRC(a2fe269f) SHA1(95ea363061bf5f4537ba885c0fbd894985f0a93a) )
+ ROM_LOAD16_BYTE( "270hd.c2", 0x0000001, 0x800000, CRC(ac0309e5) SHA1(9795fb2fa9eea617ec25656cfa9cd507899ec4fe) )
+ ROM_LOAD16_BYTE( "270ch.c3", 0x1000000, 0x800000, CRC(8275bb23) SHA1(101e784f273cce19158f81d23a8f581750ff7512) )
+ ROM_LOAD16_BYTE( "270ch.c4", 0x1000001, 0x800000, CRC(7a69cc1f) SHA1(2b63b5093c07aa7585093617c179af65b5015305) )
+ ROM_LOAD16_BYTE( "270ch.c5", 0x2000000, 0x800000, CRC(5298d011) SHA1(2090deb8341efc682b1dc55fb55e85a091d9ce2c) )
+ ROM_LOAD16_BYTE( "270ch.c6", 0x2000001, 0x800000, CRC(a33c04df) SHA1(31b14f8be2ff108337c8d672996aa650edd2307f) )
+ ROM_LOAD16_BYTE( "270ch.c7", 0x3000000, 0x800000, CRC(61025f97) SHA1(5ba6432aa35b1c27bc34ebd349ff47154dceb9a8) )
+ ROM_LOAD16_BYTE( "270ch.c8", 0x3000001, 0x800000, CRC(df3993ce) SHA1(580327300ff84ce805694b06f8036eeffef4c046) )
+ROM_END
+
+ROM_START( samsho5s23 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "270hc23.p1", 0x000000, 0x800000, CRC(e907f891) SHA1(dca78ab354c57036bfa31625b133b381f1d2ddce) )
+
+ NEO_SFIX_128K( "270ch.s1", CRC(cd025baa) SHA1(2ebdff1f40ec31b1842ec5399145869b00c8c4b2) )
+
+ NEO_BIOS_AUDIO_512K( "270ch.m1", CRC(0ca49586) SHA1(8610918af611d8514678fee1617aa47974b604e6) )
+
+ ROM_REGION( 0X1000000, "ymsnd", 0 )
+ ROM_LOAD( "270bs.v1", 0x000000, 0x800000, CRC(809c7617) SHA1(b6b542eb4c1078016fcd78d050433dc8e3029329) )
+ ROM_LOAD( "270bs.v2", 0x800000, 0x800000, CRC(42671607) SHA1(4fa64b5a9349e9c3d5d60806c9da4a2b6beff18a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "270ch.c1", 0x0000000, 0x800000, CRC(a2fe269f) SHA1(95ea363061bf5f4537ba885c0fbd894985f0a93a) )
+ ROM_LOAD16_BYTE( "270hd.c2", 0x0000001, 0x800000, CRC(ac0309e5) SHA1(9795fb2fa9eea617ec25656cfa9cd507899ec4fe) )
+ ROM_LOAD16_BYTE( "270ch.c3", 0x1000000, 0x800000, CRC(8275bb23) SHA1(101e784f273cce19158f81d23a8f581750ff7512) )
+ ROM_LOAD16_BYTE( "270ch.c4", 0x1000001, 0x800000, CRC(7a69cc1f) SHA1(2b63b5093c07aa7585093617c179af65b5015305) )
+ ROM_LOAD16_BYTE( "270ch.c5", 0x2000000, 0x800000, CRC(5298d011) SHA1(2090deb8341efc682b1dc55fb55e85a091d9ce2c) )
+ ROM_LOAD16_BYTE( "270ch.c6", 0x2000001, 0x800000, CRC(a33c04df) SHA1(31b14f8be2ff108337c8d672996aa650edd2307f) )
+ ROM_LOAD16_BYTE( "270ch.c7", 0x3000000, 0x800000, CRC(61025f97) SHA1(5ba6432aa35b1c27bc34ebd349ff47154dceb9a8) )
+ ROM_LOAD16_BYTE( "270ch.c8", 0x3000001, 0x800000, CRC(df3993ce) SHA1(580327300ff84ce805694b06f8036eeffef4c046) )
+ROM_END
+
+ROM_START( samsho5s24 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "270hc24.p1", 0x000000, 0x400000, CRC(071478fb) SHA1(1876a190f5fdc1cbb7059fe857dfc06ee213716f) )
+ ROM_LOAD16_WORD_SWAP( "270-p2.sp2", 0x400000, 0x400000, CRC(e0c74c85) SHA1(df24a4ee76438e40c2f04a714175a7f85cacdfe0) )
+
+ NEO_SFIX_MT_128K
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "270-m1.m1", CRC(49c9901a) SHA1(2623e9765a0eba58fee2de72851e9dc502344a3d) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "270-v1.v1", 0x000000, 0x800000, CRC(62e434eb) SHA1(1985f5e88f8e866f9683b6cea901aa28c04b80bf) )
+ ROM_LOAD( "270-v2.v2", 0x800000, 0x800000, CRC(180f3c9a) SHA1(6d7dc2605ead6e78704efa127e7e0dfe621e2c54) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "270-c1.c1", 0x0000000, 0x800000, CRC(14ffffac) SHA1(2ccebfdd0c7907679ae95bf6eca85b8d322441e2) )
+ ROM_LOAD16_BYTE( "270-c2.c2", 0x0000001, 0x800000, CRC(401f7299) SHA1(94e48cdf1682b1250f53c59f3f71d995e928d17b) )
+ ROM_LOAD16_BYTE( "270-c3.c3", 0x1000000, 0x800000, CRC(838f0260) SHA1(d5c8d3c6e7221d04e0b20882a847752e5ba95635) )
+ ROM_LOAD16_BYTE( "270-c4.c4", 0x1000001, 0x800000, CRC(041560a5) SHA1(d165e533699f15b1e079c82f97db3542b3a7dd66) )
+ ROM_LOAD16_BYTE( "270-c5.c5", 0x2000000, 0x800000, CRC(bd30b52d) SHA1(9f8282e684415b4045218cf764ef7d75a70e3240) )
+ ROM_LOAD16_BYTE( "270-c6.c6", 0x2000001, 0x800000, CRC(86a69c70) SHA1(526732cdb408cf680af9da39057bce6a4dfb5e13) )
+ ROM_LOAD16_BYTE( "270-c7.c7", 0x3000000, 0x800000, CRC(d28fbc3c) SHA1(a82a6ba6760fad14d9309f9147cb7d80bd6f70fc) )
+ ROM_LOAD16_BYTE( "270-c8.c8", 0x3000001, 0x800000, CRC(02c530a6) SHA1(7a3fafa6075506c6ef78cc4ec2cb72118ec83cb9) )
+ROM_END
+
+ROM_START( samsho5s25 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "270hc25.p1", 0x000000, 0x400000, CRC(0704d8db) SHA1(05a60343045daaef7fe3a0b8a389f59ad4dd329f) )
+ ROM_LOAD16_WORD_SWAP( "270-p2.sp2", 0x400000, 0x400000, CRC(e0c74c85) SHA1(df24a4ee76438e40c2f04a714175a7f85cacdfe0) )
+
+ NEO_SFIX_MT_128K
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "270-m1.m1", CRC(49c9901a) SHA1(2623e9765a0eba58fee2de72851e9dc502344a3d) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "270-v1.v1", 0x000000, 0x800000, CRC(62e434eb) SHA1(1985f5e88f8e866f9683b6cea901aa28c04b80bf) )
+ ROM_LOAD( "270-v2.v2", 0x800000, 0x800000, CRC(180f3c9a) SHA1(6d7dc2605ead6e78704efa127e7e0dfe621e2c54) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "270-c1.c1", 0x0000000, 0x800000, CRC(14ffffac) SHA1(2ccebfdd0c7907679ae95bf6eca85b8d322441e2) )
+ ROM_LOAD16_BYTE( "270-c2.c2", 0x0000001, 0x800000, CRC(401f7299) SHA1(94e48cdf1682b1250f53c59f3f71d995e928d17b) )
+ ROM_LOAD16_BYTE( "270-c3.c3", 0x1000000, 0x800000, CRC(838f0260) SHA1(d5c8d3c6e7221d04e0b20882a847752e5ba95635) )
+ ROM_LOAD16_BYTE( "270-c4.c4", 0x1000001, 0x800000, CRC(041560a5) SHA1(d165e533699f15b1e079c82f97db3542b3a7dd66) )
+ ROM_LOAD16_BYTE( "270-c5.c5", 0x2000000, 0x800000, CRC(bd30b52d) SHA1(9f8282e684415b4045218cf764ef7d75a70e3240) )
+ ROM_LOAD16_BYTE( "270-c6.c6", 0x2000001, 0x800000, CRC(86a69c70) SHA1(526732cdb408cf680af9da39057bce6a4dfb5e13) )
+ ROM_LOAD16_BYTE( "270-c7.c7", 0x3000000, 0x800000, CRC(d28fbc3c) SHA1(a82a6ba6760fad14d9309f9147cb7d80bd6f70fc) )
+ ROM_LOAD16_BYTE( "270-c8.c8", 0x3000001, 0x800000, CRC(02c530a6) SHA1(7a3fafa6075506c6ef78cc4ec2cb72118ec83cb9) )
+ROM_END
+
+ROM_START( samsho5s26 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "270hc26.p1", 0x000000, 0x400000, CRC(8b657ad5) SHA1(2581f9d658c0d73e34d16ba28e98b15373e35088) )
+ ROM_LOAD16_WORD_SWAP( "270-p2.sp2", 0x400000, 0x400000, CRC(e0c74c85) SHA1(df24a4ee76438e40c2f04a714175a7f85cacdfe0) )
+
+ NEO_SFIX_MT_128K
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "270-m1.m1", CRC(49c9901a) SHA1(2623e9765a0eba58fee2de72851e9dc502344a3d) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "270-v1.v1", 0x000000, 0x800000, CRC(62e434eb) SHA1(1985f5e88f8e866f9683b6cea901aa28c04b80bf) )
+ ROM_LOAD( "270-v2.v2", 0x800000, 0x800000, CRC(180f3c9a) SHA1(6d7dc2605ead6e78704efa127e7e0dfe621e2c54) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "270-c1.c1", 0x0000000, 0x800000, CRC(14ffffac) SHA1(2ccebfdd0c7907679ae95bf6eca85b8d322441e2) )
+ ROM_LOAD16_BYTE( "270-c2.c2", 0x0000001, 0x800000, CRC(401f7299) SHA1(94e48cdf1682b1250f53c59f3f71d995e928d17b) )
+ ROM_LOAD16_BYTE( "270-c3.c3", 0x1000000, 0x800000, CRC(838f0260) SHA1(d5c8d3c6e7221d04e0b20882a847752e5ba95635) )
+ ROM_LOAD16_BYTE( "270-c4.c4", 0x1000001, 0x800000, CRC(041560a5) SHA1(d165e533699f15b1e079c82f97db3542b3a7dd66) )
+ ROM_LOAD16_BYTE( "270-c5.c5", 0x2000000, 0x800000, CRC(bd30b52d) SHA1(9f8282e684415b4045218cf764ef7d75a70e3240) )
+ ROM_LOAD16_BYTE( "270-c6.c6", 0x2000001, 0x800000, CRC(86a69c70) SHA1(526732cdb408cf680af9da39057bce6a4dfb5e13) )
+ ROM_LOAD16_BYTE( "270-c7.c7", 0x3000000, 0x800000, CRC(d28fbc3c) SHA1(a82a6ba6760fad14d9309f9147cb7d80bd6f70fc) )
+ ROM_LOAD16_BYTE( "270-c8.c8", 0x3000001, 0x800000, CRC(02c530a6) SHA1(7a3fafa6075506c6ef78cc4ec2cb72118ec83cb9) )
+ROM_END
+
+ROM_START( samsho5s27 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "270hc27.p1", 0x000000, 0x400000, CRC(6db7089f) SHA1(79aeb51f2545acb75b736c7586657b9552da8d27) )
+ ROM_LOAD16_WORD_SWAP( "270-p2.sp2", 0x400000, 0x400000, CRC(e0c74c85) SHA1(df24a4ee76438e40c2f04a714175a7f85cacdfe0) )
+
+ NEO_SFIX_MT_128K
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "270-m1.m1", CRC(49c9901a) SHA1(2623e9765a0eba58fee2de72851e9dc502344a3d) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "270-v1.v1", 0x000000, 0x800000, CRC(62e434eb) SHA1(1985f5e88f8e866f9683b6cea901aa28c04b80bf) )
+ ROM_LOAD( "270-v2.v2", 0x800000, 0x800000, CRC(180f3c9a) SHA1(6d7dc2605ead6e78704efa127e7e0dfe621e2c54) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "270-c1.c1", 0x0000000, 0x800000, CRC(14ffffac) SHA1(2ccebfdd0c7907679ae95bf6eca85b8d322441e2) )
+ ROM_LOAD16_BYTE( "270-c2.c2", 0x0000001, 0x800000, CRC(401f7299) SHA1(94e48cdf1682b1250f53c59f3f71d995e928d17b) )
+ ROM_LOAD16_BYTE( "270-c3.c3", 0x1000000, 0x800000, CRC(838f0260) SHA1(d5c8d3c6e7221d04e0b20882a847752e5ba95635) )
+ ROM_LOAD16_BYTE( "270-c4.c4", 0x1000001, 0x800000, CRC(041560a5) SHA1(d165e533699f15b1e079c82f97db3542b3a7dd66) )
+ ROM_LOAD16_BYTE( "270-c5.c5", 0x2000000, 0x800000, CRC(bd30b52d) SHA1(9f8282e684415b4045218cf764ef7d75a70e3240) )
+ ROM_LOAD16_BYTE( "270-c6.c6", 0x2000001, 0x800000, CRC(86a69c70) SHA1(526732cdb408cf680af9da39057bce6a4dfb5e13) )
+ ROM_LOAD16_BYTE( "270-c7.c7", 0x3000000, 0x800000, CRC(d28fbc3c) SHA1(a82a6ba6760fad14d9309f9147cb7d80bd6f70fc) )
+ ROM_LOAD16_BYTE( "270-c8.c8", 0x3000001, 0x800000, CRC(02c530a6) SHA1(7a3fafa6075506c6ef78cc4ec2cb72118ec83cb9) )
+ROM_END
+
+ROM_START( samsho5s28 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "270hc28.p1", 0x000000, 0x400000, CRC(e8ea3e3b) SHA1(8dd8f03d90132334af4992a6ff5347e8d6e1785d) )
+ ROM_LOAD16_WORD_SWAP( "270-p2.sp2", 0x400000, 0x400000, CRC(e0c74c85) SHA1(df24a4ee76438e40c2f04a714175a7f85cacdfe0) )
+
+ NEO_SFIX_MT_128K
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "270-m1.m1", CRC(49c9901a) SHA1(2623e9765a0eba58fee2de72851e9dc502344a3d) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "270-v1.v1", 0x000000, 0x800000, CRC(62e434eb) SHA1(1985f5e88f8e866f9683b6cea901aa28c04b80bf) )
+ ROM_LOAD( "270-v2.v2", 0x800000, 0x800000, CRC(180f3c9a) SHA1(6d7dc2605ead6e78704efa127e7e0dfe621e2c54) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "270-c1.c1", 0x0000000, 0x800000, CRC(14ffffac) SHA1(2ccebfdd0c7907679ae95bf6eca85b8d322441e2) )
+ ROM_LOAD16_BYTE( "270-c2.c2", 0x0000001, 0x800000, CRC(401f7299) SHA1(94e48cdf1682b1250f53c59f3f71d995e928d17b) )
+ ROM_LOAD16_BYTE( "270-c3.c3", 0x1000000, 0x800000, CRC(838f0260) SHA1(d5c8d3c6e7221d04e0b20882a847752e5ba95635) )
+ ROM_LOAD16_BYTE( "270-c4.c4", 0x1000001, 0x800000, CRC(041560a5) SHA1(d165e533699f15b1e079c82f97db3542b3a7dd66) )
+ ROM_LOAD16_BYTE( "270-c5.c5", 0x2000000, 0x800000, CRC(bd30b52d) SHA1(9f8282e684415b4045218cf764ef7d75a70e3240) )
+ ROM_LOAD16_BYTE( "270-c6.c6", 0x2000001, 0x800000, CRC(86a69c70) SHA1(526732cdb408cf680af9da39057bce6a4dfb5e13) )
+ ROM_LOAD16_BYTE( "270-c7.c7", 0x3000000, 0x800000, CRC(d28fbc3c) SHA1(a82a6ba6760fad14d9309f9147cb7d80bd6f70fc) )
+ ROM_LOAD16_BYTE( "270-c8.c8", 0x3000001, 0x800000, CRC(02c530a6) SHA1(7a3fafa6075506c6ef78cc4ec2cb72118ec83cb9) )
+ROM_END
+
+ROM_START( samsho5s29 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "270hc29.p1", 0x000000, 0x400000, CRC(a6fec219) SHA1(3eee1ba514da35aec907f2d9bacba00995f1f878) )
+ ROM_LOAD16_WORD_SWAP( "270-p2c.sp2", 0x400000, 0x400000, CRC(943a6b1d) SHA1(12bd02fc197456da6ee86f066086094cef0f4bf9) )
+
+ NEO_SFIX_MT_128K
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "270-m1.m1", CRC(49c9901a) SHA1(2623e9765a0eba58fee2de72851e9dc502344a3d) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "270-v1.v1", 0x000000, 0x800000, CRC(62e434eb) SHA1(1985f5e88f8e866f9683b6cea901aa28c04b80bf) )
+ ROM_LOAD( "270-v2.v2", 0x800000, 0x800000, CRC(180f3c9a) SHA1(6d7dc2605ead6e78704efa127e7e0dfe621e2c54) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "270-c1.c1", 0x0000000, 0x800000, CRC(14ffffac) SHA1(2ccebfdd0c7907679ae95bf6eca85b8d322441e2) )
+ ROM_LOAD16_BYTE( "270-c2.c2", 0x0000001, 0x800000, CRC(401f7299) SHA1(94e48cdf1682b1250f53c59f3f71d995e928d17b) )
+ ROM_LOAD16_BYTE( "270-c3.c3", 0x1000000, 0x800000, CRC(838f0260) SHA1(d5c8d3c6e7221d04e0b20882a847752e5ba95635) )
+ ROM_LOAD16_BYTE( "270-c4.c4", 0x1000001, 0x800000, CRC(041560a5) SHA1(d165e533699f15b1e079c82f97db3542b3a7dd66) )
+ ROM_LOAD16_BYTE( "270-c5.c5", 0x2000000, 0x800000, CRC(bd30b52d) SHA1(9f8282e684415b4045218cf764ef7d75a70e3240) )
+ ROM_LOAD16_BYTE( "270-c6.c6", 0x2000001, 0x800000, CRC(86a69c70) SHA1(526732cdb408cf680af9da39057bce6a4dfb5e13) )
+ ROM_LOAD16_BYTE( "270-c7.c7", 0x3000000, 0x800000, CRC(d28fbc3c) SHA1(a82a6ba6760fad14d9309f9147cb7d80bd6f70fc) )
+ ROM_LOAD16_BYTE( "270-c8.c8", 0x3000001, 0x800000, CRC(02c530a6) SHA1(7a3fafa6075506c6ef78cc4ec2cb72118ec83cb9) )
+ROM_END
+
+ROM_START( samsho5s30 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "270hc30.p1", 0x000000, 0x400000, CRC(f2ab1194) SHA1(06812a57ddd270b421c910a6e5c985282f26480d) )
+ ROM_LOAD16_WORD_SWAP( "270-p2c.sp2", 0x400000, 0x400000, CRC(943a6b1d) SHA1(12bd02fc197456da6ee86f066086094cef0f4bf9) )
+
+ NEO_SFIX_MT_128K
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "270-m1.m1", CRC(49c9901a) SHA1(2623e9765a0eba58fee2de72851e9dc502344a3d) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "270-v1.v1", 0x000000, 0x800000, CRC(62e434eb) SHA1(1985f5e88f8e866f9683b6cea901aa28c04b80bf) )
+ ROM_LOAD( "270-v2.v2", 0x800000, 0x800000, CRC(180f3c9a) SHA1(6d7dc2605ead6e78704efa127e7e0dfe621e2c54) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "270-c1.c1", 0x0000000, 0x800000, CRC(14ffffac) SHA1(2ccebfdd0c7907679ae95bf6eca85b8d322441e2) )
+ ROM_LOAD16_BYTE( "270-c2.c2", 0x0000001, 0x800000, CRC(401f7299) SHA1(94e48cdf1682b1250f53c59f3f71d995e928d17b) )
+ ROM_LOAD16_BYTE( "270-c3.c3", 0x1000000, 0x800000, CRC(838f0260) SHA1(d5c8d3c6e7221d04e0b20882a847752e5ba95635) )
+ ROM_LOAD16_BYTE( "270-c4.c4", 0x1000001, 0x800000, CRC(041560a5) SHA1(d165e533699f15b1e079c82f97db3542b3a7dd66) )
+ ROM_LOAD16_BYTE( "270-c5.c5", 0x2000000, 0x800000, CRC(bd30b52d) SHA1(9f8282e684415b4045218cf764ef7d75a70e3240) )
+ ROM_LOAD16_BYTE( "270-c6.c6", 0x2000001, 0x800000, CRC(86a69c70) SHA1(526732cdb408cf680af9da39057bce6a4dfb5e13) )
+ ROM_LOAD16_BYTE( "270-c7.c7", 0x3000000, 0x800000, CRC(d28fbc3c) SHA1(a82a6ba6760fad14d9309f9147cb7d80bd6f70fc) )
+ ROM_LOAD16_BYTE( "270-c8.c8", 0x3000001, 0x800000, CRC(02c530a6) SHA1(7a3fafa6075506c6ef78cc4ec2cb72118ec83cb9) )
+ROM_END
+
+ROM_START( samsho5s31 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "270hc31.p1", 0x000000, 0x400000, CRC(f2bbb1b4) SHA1(aed17029ee7729e8f428a0de8d1c6746081565c4) )
+ ROM_LOAD16_WORD_SWAP( "270-p2c.sp2", 0x400000, 0x400000, CRC(943a6b1d) SHA1(12bd02fc197456da6ee86f066086094cef0f4bf9) )
+
+ NEO_SFIX_MT_128K
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "270-m1.m1", CRC(49c9901a) SHA1(2623e9765a0eba58fee2de72851e9dc502344a3d) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "270-v1.v1", 0x000000, 0x800000, CRC(62e434eb) SHA1(1985f5e88f8e866f9683b6cea901aa28c04b80bf) )
+ ROM_LOAD( "270-v2.v2", 0x800000, 0x800000, CRC(180f3c9a) SHA1(6d7dc2605ead6e78704efa127e7e0dfe621e2c54) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "270-c1.c1", 0x0000000, 0x800000, CRC(14ffffac) SHA1(2ccebfdd0c7907679ae95bf6eca85b8d322441e2) )
+ ROM_LOAD16_BYTE( "270-c2.c2", 0x0000001, 0x800000, CRC(401f7299) SHA1(94e48cdf1682b1250f53c59f3f71d995e928d17b) )
+ ROM_LOAD16_BYTE( "270-c3.c3", 0x1000000, 0x800000, CRC(838f0260) SHA1(d5c8d3c6e7221d04e0b20882a847752e5ba95635) )
+ ROM_LOAD16_BYTE( "270-c4.c4", 0x1000001, 0x800000, CRC(041560a5) SHA1(d165e533699f15b1e079c82f97db3542b3a7dd66) )
+ ROM_LOAD16_BYTE( "270-c5.c5", 0x2000000, 0x800000, CRC(bd30b52d) SHA1(9f8282e684415b4045218cf764ef7d75a70e3240) )
+ ROM_LOAD16_BYTE( "270-c6.c6", 0x2000001, 0x800000, CRC(86a69c70) SHA1(526732cdb408cf680af9da39057bce6a4dfb5e13) )
+ ROM_LOAD16_BYTE( "270-c7.c7", 0x3000000, 0x800000, CRC(d28fbc3c) SHA1(a82a6ba6760fad14d9309f9147cb7d80bd6f70fc) )
+ ROM_LOAD16_BYTE( "270-c8.c8", 0x3000001, 0x800000, CRC(02c530a6) SHA1(7a3fafa6075506c6ef78cc4ec2cb72118ec83cb9) )
+ROM_END
+
+ROM_START( samsho5s32 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "270hc32.p1", 0x000000, 0x400000, CRC(7eda13ba) SHA1(b6b62951df46d1784f7c1cd24295eda5dff09965) )
+ ROM_LOAD16_WORD_SWAP( "270-p2c.sp2", 0x400000, 0x400000, CRC(943a6b1d) SHA1(12bd02fc197456da6ee86f066086094cef0f4bf9) )
+
+ NEO_SFIX_MT_128K
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "270-m1.m1", CRC(49c9901a) SHA1(2623e9765a0eba58fee2de72851e9dc502344a3d) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "270-v1.v1", 0x000000, 0x800000, CRC(62e434eb) SHA1(1985f5e88f8e866f9683b6cea901aa28c04b80bf) )
+ ROM_LOAD( "270-v2.v2", 0x800000, 0x800000, CRC(180f3c9a) SHA1(6d7dc2605ead6e78704efa127e7e0dfe621e2c54) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "270-c1.c1", 0x0000000, 0x800000, CRC(14ffffac) SHA1(2ccebfdd0c7907679ae95bf6eca85b8d322441e2) )
+ ROM_LOAD16_BYTE( "270-c2.c2", 0x0000001, 0x800000, CRC(401f7299) SHA1(94e48cdf1682b1250f53c59f3f71d995e928d17b) )
+ ROM_LOAD16_BYTE( "270-c3.c3", 0x1000000, 0x800000, CRC(838f0260) SHA1(d5c8d3c6e7221d04e0b20882a847752e5ba95635) )
+ ROM_LOAD16_BYTE( "270-c4.c4", 0x1000001, 0x800000, CRC(041560a5) SHA1(d165e533699f15b1e079c82f97db3542b3a7dd66) )
+ ROM_LOAD16_BYTE( "270-c5.c5", 0x2000000, 0x800000, CRC(bd30b52d) SHA1(9f8282e684415b4045218cf764ef7d75a70e3240) )
+ ROM_LOAD16_BYTE( "270-c6.c6", 0x2000001, 0x800000, CRC(86a69c70) SHA1(526732cdb408cf680af9da39057bce6a4dfb5e13) )
+ ROM_LOAD16_BYTE( "270-c7.c7", 0x3000000, 0x800000, CRC(d28fbc3c) SHA1(a82a6ba6760fad14d9309f9147cb7d80bd6f70fc) )
+ ROM_LOAD16_BYTE( "270-c8.c8", 0x3000001, 0x800000, CRC(02c530a6) SHA1(7a3fafa6075506c6ef78cc4ec2cb72118ec83cb9) )
+ROM_END
+
+ROM_START( samsho5s33 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "270hc33.p1", 0x000000, 0x400000, CRC(735cd6ed) SHA1(8619854e6d3fec22322b4cddaea91460fe9befa7) )
+ ROM_LOAD16_WORD_SWAP( "270-p2c.sp2", 0x400000, 0x400000, CRC(943a6b1d) SHA1(12bd02fc197456da6ee86f066086094cef0f4bf9) )
+
+ NEO_SFIX_MT_128K
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "270-m1.m1", CRC(49c9901a) SHA1(2623e9765a0eba58fee2de72851e9dc502344a3d) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "270-v1.v1", 0x000000, 0x800000, CRC(62e434eb) SHA1(1985f5e88f8e866f9683b6cea901aa28c04b80bf) )
+ ROM_LOAD( "270-v2.v2", 0x800000, 0x800000, CRC(180f3c9a) SHA1(6d7dc2605ead6e78704efa127e7e0dfe621e2c54) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "270-c1.c1", 0x0000000, 0x800000, CRC(14ffffac) SHA1(2ccebfdd0c7907679ae95bf6eca85b8d322441e2) )
+ ROM_LOAD16_BYTE( "270-c2.c2", 0x0000001, 0x800000, CRC(401f7299) SHA1(94e48cdf1682b1250f53c59f3f71d995e928d17b) )
+ ROM_LOAD16_BYTE( "270-c3.c3", 0x1000000, 0x800000, CRC(838f0260) SHA1(d5c8d3c6e7221d04e0b20882a847752e5ba95635) )
+ ROM_LOAD16_BYTE( "270-c4.c4", 0x1000001, 0x800000, CRC(041560a5) SHA1(d165e533699f15b1e079c82f97db3542b3a7dd66) )
+ ROM_LOAD16_BYTE( "270-c5.c5", 0x2000000, 0x800000, CRC(bd30b52d) SHA1(9f8282e684415b4045218cf764ef7d75a70e3240) )
+ ROM_LOAD16_BYTE( "270-c6.c6", 0x2000001, 0x800000, CRC(86a69c70) SHA1(526732cdb408cf680af9da39057bce6a4dfb5e13) )
+ ROM_LOAD16_BYTE( "270-c7.c7", 0x3000000, 0x800000, CRC(d28fbc3c) SHA1(a82a6ba6760fad14d9309f9147cb7d80bd6f70fc) )
+ ROM_LOAD16_BYTE( "270-c8.c8", 0x3000001, 0x800000, CRC(02c530a6) SHA1(7a3fafa6075506c6ef78cc4ec2cb72118ec83cb9) )
+ROM_END
+
+ROM_START( samsho5s34 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "270hc34.p1", 0x000000, 0x400000, CRC(88e477cc) SHA1(053e7f88e74f6fca0e9cfa6fbc5a505775e44125) )
+ ROM_LOAD16_WORD_SWAP( "270hc34.sp2", 0x400000, 0x400000, CRC(f01e62aa) SHA1(5e4997f519d4be3fa17868731991a8ebc6e2df71) )
+
+ NEO_SFIX_MT_128K
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "270-m1.m1", CRC(49c9901a) SHA1(2623e9765a0eba58fee2de72851e9dc502344a3d) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "270-v1.v1", 0x000000, 0x800000, CRC(62e434eb) SHA1(1985f5e88f8e866f9683b6cea901aa28c04b80bf) )
+ ROM_LOAD( "270-v2.v2", 0x800000, 0x800000, CRC(180f3c9a) SHA1(6d7dc2605ead6e78704efa127e7e0dfe621e2c54) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "270d.c1", 0x0000000, 0x800000, CRC(726abb40) SHA1(86A08C1266FB057D9A30A3AC259D526EC10D2FFA) )
+ ROM_LOAD16_BYTE( "270d.c2", 0x0000001, 0x800000, CRC(76806188) SHA1(B448C06D7311791BAD09F0828FD3E56326DD7737) )
+ ROM_LOAD16_BYTE( "270hd.c3", 0x1000000, 0x800000, CRC(82db9dae) SHA1(0206E1CC2C5F0FBBC074A93ADD5A44F645951D0C) )
+ ROM_LOAD16_BYTE( "270hd.c4", 0x1000001, 0x800000, CRC(f8041153) SHA1(55705C725AFF949E668C24B23E2E4CDB4ECF78AE) )
+ ROM_LOAD16_BYTE( "270d.c5", 0x2000000, 0x800000, CRC(2219186a) SHA1(ACE6D04DA578F2A5E7B7A405E0CBB31073070185) )
+ ROM_LOAD16_BYTE( "270hc34.c6", 0x2000001, 0x800000, CRC(44cc8f59) SHA1(1c905ae4bcc8aa77b7e3a43068079a80b1605ab5) )
+ ROM_LOAD16_BYTE( "270d.c7", 0x3000000, 0x800000, CRC(d245d493) SHA1(C0E89F863B9B592FF5F0F813D9B127CEE31132D1) )
+ ROM_LOAD16_BYTE( "270d.c8", 0x3000001, 0x800000, CRC(eb06c9cc) SHA1(1DFD45407586DC7F574189BBC0D8AE1967D0A089) )
+ROM_END
+
+ROM_START( samsho5s35 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "270hc35.p1", 0x000000, 0x400000, CRC(db36a134) SHA1(0d6c86418a2324064956d401fb0eb83b78e8c209) )
+ ROM_LOAD16_WORD_SWAP( "270-p2.sp2", 0x400000, 0x400000, CRC(e0c74c85) SHA1(DF24A4EE76438E40C2F04A714175A7F85CACDFE0) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_256K( "270d.m1", CRC(e94a5e2b) SHA1(53ef2ad6583060af69fdde73576e09ba88affa55) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "270-v1.v1", 0x000000, 0x800000, CRC(62e434eb) SHA1(1985f5e88f8e866f9683b6cea901aa28c04b80bf) )
+ ROM_LOAD( "270-v2.v2", 0x800000, 0x800000, CRC(180f3c9a) SHA1(6d7dc2605ead6e78704efa127e7e0dfe621e2c54) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "270d.c1", 0x0000000, 0x800000, CRC(726abb40) SHA1(86A08C1266FB057D9A30A3AC259D526EC10D2FFA) )
+ ROM_LOAD16_BYTE( "270d.c2", 0x0000001, 0x800000, CRC(76806188) SHA1(B448C06D7311791BAD09F0828FD3E56326DD7737) )
+ ROM_LOAD16_BYTE( "270hd.c3", 0x1000000, 0x800000, CRC(82db9dae) SHA1(0206E1CC2C5F0FBBC074A93ADD5A44F645951D0C) )
+ ROM_LOAD16_BYTE( "270hd.c4", 0x1000001, 0x800000, CRC(f8041153) SHA1(55705C725AFF949E668C24B23E2E4CDB4ECF78AE) )
+ ROM_LOAD16_BYTE( "270d.c5", 0x2000000, 0x800000, CRC(2219186a) SHA1(ACE6D04DA578F2A5E7B7A405E0CBB31073070185) )
+ ROM_LOAD16_BYTE( "270d.c6", 0x2000001, 0x800000, CRC(d225120d) SHA1(AE28664486135949DD16BB91E8F35936BDA725A0) )
+ ROM_LOAD16_BYTE( "270d.c7", 0x3000000, 0x800000, CRC(d245d493) SHA1(C0E89F863B9B592FF5F0F813D9B127CEE31132D1) )
+ ROM_LOAD16_BYTE( "270d.c8", 0x3000001, 0x800000, CRC(eb06c9cc) SHA1(1DFD45407586DC7F574189BBC0D8AE1967D0A089) )
+ROM_END
+
+ROM_START( samsho5s36 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "270hc36.p1", 0x000000, 0x400000, CRC(f88f363e) SHA1(f3441e1794c1366ff8c8c56147165b34a83f17e7) )
+ ROM_LOAD16_WORD_SWAP( "270-p2.sp2", 0x400000, 0x400000, CRC(e0c74c85) SHA1(DF24A4EE76438E40C2F04A714175A7F85CACDFE0) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_256K( "270d.m1", CRC(e94a5e2b) SHA1(53ef2ad6583060af69fdde73576e09ba88affa55) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "270hc36.v1", 0x000000, 0x800000, CRC(3259e46e) SHA1(44b8b2b05b2542a68297efd704d028899bb6afc0) )
+ ROM_LOAD( "270hc36.v2", 0x800000, 0x800000, CRC(6c52df65) SHA1(e936f399defd46aa123631bbb2c022d5a96324db) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "270d.c1", 0x0000000, 0x800000, CRC(726abb40) SHA1(86A08C1266FB057D9A30A3AC259D526EC10D2FFA) )
+ ROM_LOAD16_BYTE( "270d.c2", 0x0000001, 0x800000, CRC(76806188) SHA1(B448C06D7311791BAD09F0828FD3E56326DD7737) )
+ ROM_LOAD16_BYTE( "270hd.c3", 0x1000000, 0x800000, CRC(82db9dae) SHA1(0206E1CC2C5F0FBBC074A93ADD5A44F645951D0C) )
+ ROM_LOAD16_BYTE( "270hd.c4", 0x1000001, 0x800000, CRC(f8041153) SHA1(55705C725AFF949E668C24B23E2E4CDB4ECF78AE) )
+ ROM_LOAD16_BYTE( "270d.c5", 0x2000000, 0x800000, CRC(2219186a) SHA1(ACE6D04DA578F2A5E7B7A405E0CBB31073070185) )
+ ROM_LOAD16_BYTE( "270d.c6", 0x2000001, 0x800000, CRC(d225120d) SHA1(AE28664486135949DD16BB91E8F35936BDA725A0) )
+ ROM_LOAD16_BYTE( "270d.c7", 0x3000000, 0x800000, CRC(d245d493) SHA1(C0E89F863B9B592FF5F0F813D9B127CEE31132D1) )
+ ROM_LOAD16_BYTE( "270d.c8", 0x3000001, 0x800000, CRC(eb06c9cc) SHA1(1DFD45407586DC7F574189BBC0D8AE1967D0A089) )
+ROM_END
+
+ROM_START( samsho5s37 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "270hc37.p1", 0x000000, 0x400000, CRC(e67f3ee2) SHA1(5d02797dd9a0e3e548f427e07d4b2395138cad78) )
+ ROM_LOAD16_WORD_SWAP( "270-p2.sp2", 0x400000, 0x400000, CRC(e0c74c85) SHA1(DF24A4EE76438E40C2F04A714175A7F85CACDFE0) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_256K( "270d.m1", CRC(e94a5e2b) SHA1(53ef2ad6583060af69fdde73576e09ba88affa55) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "270hc36.v1", 0x000000, 0x800000, CRC(3259e46e) SHA1(44b8b2b05b2542a68297efd704d028899bb6afc0) )
+ ROM_LOAD( "270hc36.v2", 0x800000, 0x800000, CRC(6c52df65) SHA1(e936f399defd46aa123631bbb2c022d5a96324db) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "270d.c1", 0x0000000, 0x800000, CRC(726abb40) SHA1(86A08C1266FB057D9A30A3AC259D526EC10D2FFA) )
+ ROM_LOAD16_BYTE( "270d.c2", 0x0000001, 0x800000, CRC(76806188) SHA1(B448C06D7311791BAD09F0828FD3E56326DD7737) )
+ ROM_LOAD16_BYTE( "270hd.c3", 0x1000000, 0x800000, CRC(82db9dae) SHA1(0206E1CC2C5F0FBBC074A93ADD5A44F645951D0C) )
+ ROM_LOAD16_BYTE( "270hd.c4", 0x1000001, 0x800000, CRC(f8041153) SHA1(55705C725AFF949E668C24B23E2E4CDB4ECF78AE) )
+ ROM_LOAD16_BYTE( "270d.c5", 0x2000000, 0x800000, CRC(2219186a) SHA1(ACE6D04DA578F2A5E7B7A405E0CBB31073070185) )
+ ROM_LOAD16_BYTE( "270d.c6", 0x2000001, 0x800000, CRC(d225120d) SHA1(AE28664486135949DD16BB91E8F35936BDA725A0) )
+ ROM_LOAD16_BYTE( "270d.c7", 0x3000000, 0x800000, CRC(d245d493) SHA1(C0E89F863B9B592FF5F0F813D9B127CEE31132D1) )
+ ROM_LOAD16_BYTE( "270d.c8", 0x3000001, 0x800000, CRC(eb06c9cc) SHA1(1DFD45407586DC7F574189BBC0D8AE1967D0A089) )
+ROM_END
+
+ROM_START( samsh5sp01 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "272sp01.p1", 0x000000, 0x800000, CRC(3e3961f5) SHA1(523c117da1df9ea85d29af0efa5884a87a42345e) )
+
+ NEO_SFIX_128K( "272n.s1", CRC(c297f973) SHA1(b31af6b51e7536b538cd7eb3542c631c6327e826) )
+
+ NEO_BIOS_AUDIO_128K( "272sp01.m1", CRC(b5abda07) SHA1(682662887442d46790b5cc171982a8a7454156b7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "272sp01.v1", 0x000000, 0x400000, CRC(32156cfe) SHA1(6478c7a4f226ce3252556ecc039b611c15e65a6c) )
+ ROM_LOAD( "272n.v2", 0x400000, 0x400000, CRC(0e46d2f8) SHA1(b8b0838124ea29f73f31e08d5cced8797cea75b1) )
+ ROM_LOAD( "272n.v3", 0x800000, 0x400000, CRC(3f0f7554) SHA1(2581e297725f3b950b59e9086ac5569171da6140) )
+ ROM_LOAD( "272n.v4", 0xc00000, 0x400000, CRC(ad8fabb4) SHA1(cebe3b7306e1431ebb99df13bfc2270b1d3ba1ff) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "272d.c1", 0x0000000, 0x800000, CRC(8548097e) SHA1(99177F64039D2914FA4EBD4AFC7EB0FBF4FFE0AF) )
+ ROM_LOAD16_BYTE( "272d.c2", 0x0000001, 0x800000, CRC(8c1b48d0) SHA1(3F20288ED369E6276CFAEDFF7E9703D4EA1CF6F6) )
+ ROM_LOAD16_BYTE( "272d.c3", 0x1000000, 0x800000, CRC(96ddb28c) SHA1(7EBE5166D279C0D3EFEF65618D015B4EA13F2C49) )
+ ROM_LOAD16_BYTE( "272d.c4", 0x1000001, 0x800000, CRC(99ef7a0a) SHA1(9AC3EF339BC1D6E3482E0B32D40B259EC2B44FC1) )
+ ROM_LOAD16_BYTE( "272d.c5", 0x2000000, 0x800000, CRC(772e8b1e) SHA1(8DE4898BBD8EDE593763BFA93BBF26492492D23A) )
+ ROM_LOAD16_BYTE( "272d.c6", 0x2000001, 0x800000, CRC(5fff21fc) SHA1(5D0A23A41F5277AB09FD11F227BE35F1713A4B4F) )
+ ROM_LOAD16_BYTE( "272d.c7", 0x3000000, 0x800000, CRC(9ac56a0e) SHA1(EA4FFEC3FE2E58DF16B40FDF33E1708680010414) )
+ ROM_LOAD16_BYTE( "272d.c8", 0x3000001, 0x800000, CRC(cfde7aff) SHA1(25185F471DD35E5D388B75B83D8652085CD5E17D) )
+ROM_END
+
+ROM_START( samsh5sp02 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "272sp02.p1", 0x000000, 0x800000, CRC(a20e7c84) SHA1(a4c1316ba3422b1758229397a357058c9da56a98) )
+
+ NEO_SFIX_128K( "272n.s1", CRC(c297f973) SHA1(b31af6b51e7536b538cd7eb3542c631c6327e826) )
+
+ NEO_BIOS_AUDIO_128K( "272n.m1", CRC(0b5d4d6a) SHA1(2467e06be986cba8c879412cba0388019892dbb2) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "272n.v1", 0x000000, 0x400000, CRC(4d1b252b) SHA1(e5efe408c337a2ca556e790f0fd917ba44f975e3) )
+ ROM_LOAD( "272n.v2", 0x400000, 0x400000, CRC(0e46d2f8) SHA1(b8b0838124ea29f73f31e08d5cced8797cea75b1) )
+ ROM_LOAD( "272n.v3", 0x800000, 0x400000, CRC(3f0f7554) SHA1(2581e297725f3b950b59e9086ac5569171da6140) )
+ ROM_LOAD( "272n.v4", 0xc00000, 0x400000, CRC(ad8fabb4) SHA1(cebe3b7306e1431ebb99df13bfc2270b1d3ba1ff) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "272d.c1", 0x0000000, 0x800000, CRC(8548097e) SHA1(99177F64039D2914FA4EBD4AFC7EB0FBF4FFE0AF) )
+ ROM_LOAD16_BYTE( "272d.c2", 0x0000001, 0x800000, CRC(8c1b48d0) SHA1(3F20288ED369E6276CFAEDFF7E9703D4EA1CF6F6) )
+ ROM_LOAD16_BYTE( "272d.c3", 0x1000000, 0x800000, CRC(96ddb28c) SHA1(7EBE5166D279C0D3EFEF65618D015B4EA13F2C49) )
+ ROM_LOAD16_BYTE( "272d.c4", 0x1000001, 0x800000, CRC(99ef7a0a) SHA1(9AC3EF339BC1D6E3482E0B32D40B259EC2B44FC1) )
+ ROM_LOAD16_BYTE( "272d.c5", 0x2000000, 0x800000, CRC(772e8b1e) SHA1(8DE4898BBD8EDE593763BFA93BBF26492492D23A) )
+ ROM_LOAD16_BYTE( "272d.c6", 0x2000001, 0x800000, CRC(5fff21fc) SHA1(5D0A23A41F5277AB09FD11F227BE35F1713A4B4F) )
+ ROM_LOAD16_BYTE( "272d.c7", 0x3000000, 0x800000, CRC(9ac56a0e) SHA1(EA4FFEC3FE2E58DF16B40FDF33E1708680010414) )
+ ROM_LOAD16_BYTE( "272d.c8", 0x3000001, 0x800000, CRC(cfde7aff) SHA1(25185F471DD35E5D388B75B83D8652085CD5E17D) )
+ROM_END
+
+
+ROM_START( samsh5sp03 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "272sp03.p1", 0x000000, 0x800000, CRC(5dc1cd0e) SHA1(c9bc83317044032c83ae36b3ff3a2f4ce462a622) )
+
+ NEO_SFIX_128K( "272n.s1", CRC(c297f973) SHA1(b31af6b51e7536b538cd7eb3542c631c6327e826) )
+
+ NEO_BIOS_AUDIO_128K( "272n.m1", CRC(0b5d4d6a) SHA1(2467e06be986cba8c879412cba0388019892dbb2) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "272n.v1", 0x000000, 0x400000, CRC(4d1b252b) SHA1(e5efe408c337a2ca556e790f0fd917ba44f975e3) )
+ ROM_LOAD( "272n.v2", 0x400000, 0x400000, CRC(0e46d2f8) SHA1(b8b0838124ea29f73f31e08d5cced8797cea75b1) )
+ ROM_LOAD( "272n.v3", 0x800000, 0x400000, CRC(3f0f7554) SHA1(2581e297725f3b950b59e9086ac5569171da6140) )
+ ROM_LOAD( "272n.v4", 0xc00000, 0x400000, CRC(ad8fabb4) SHA1(cebe3b7306e1431ebb99df13bfc2270b1d3ba1ff) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "272d.c1", 0x0000000, 0x800000, CRC(8548097e) SHA1(99177F64039D2914FA4EBD4AFC7EB0FBF4FFE0AF) )
+ ROM_LOAD16_BYTE( "272d.c2", 0x0000001, 0x800000, CRC(8c1b48d0) SHA1(3F20288ED369E6276CFAEDFF7E9703D4EA1CF6F6) )
+ ROM_LOAD16_BYTE( "272d.c3", 0x1000000, 0x800000, CRC(96ddb28c) SHA1(7EBE5166D279C0D3EFEF65618D015B4EA13F2C49) )
+ ROM_LOAD16_BYTE( "272d.c4", 0x1000001, 0x800000, CRC(99ef7a0a) SHA1(9AC3EF339BC1D6E3482E0B32D40B259EC2B44FC1) )
+ ROM_LOAD16_BYTE( "272d.c5", 0x2000000, 0x800000, CRC(772e8b1e) SHA1(8DE4898BBD8EDE593763BFA93BBF26492492D23A) )
+ ROM_LOAD16_BYTE( "272d.c6", 0x2000001, 0x800000, CRC(5fff21fc) SHA1(5D0A23A41F5277AB09FD11F227BE35F1713A4B4F) )
+ ROM_LOAD16_BYTE( "272d.c7", 0x3000000, 0x800000, CRC(9ac56a0e) SHA1(EA4FFEC3FE2E58DF16B40FDF33E1708680010414) )
+ ROM_LOAD16_BYTE( "272d.c8", 0x3000001, 0x800000, CRC(cfde7aff) SHA1(25185F471DD35E5D388B75B83D8652085CD5E17D) )
+ROM_END
+
+ROM_START( samsh5sp04 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "272sp04.p1", 0x000000, 0x400000, CRC(42e5d102) SHA1(f5b2f5ebbbe89984f1ec2747c492ec4aff4640b9) )
+ ROM_LOAD16_WORD_SWAP( "272sp04.p2", 0x400000, 0x400000, CRC(b825c2fe) SHA1(4491dda1f7d80d85d0e8a3c59cdd73e8a88d642c) )
+
+ NEO_SFIX_MT_128K
+
+ /* Encrypted */
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "272-m1.m1", CRC(adeebf40) SHA1(8cbd63dda3fff4de38060405bf70cd9308c9e66e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ /* Encrypted */
+ ROM_LOAD( "272-v1.v1", 0x000000, 0x800000, CRC(76a94127) SHA1(c3affd7ff1eb02345cfb755962ec173a8ec34acd) )
+ ROM_LOAD( "272-v2.v2", 0x800000, 0x800000, CRC(4ba507f1) SHA1(728d139da3fe8a391fd8be4d24bb7fdd4bf9548a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ /* Encrypted */
+ ROM_LOAD16_BYTE( "272-c1.c1", 0x0000000, 0x800000, CRC(4f97661a) SHA1(87f1721bae5ef16bc23c06b05e64686c396413df) )
+ ROM_LOAD16_BYTE( "272-c2.c2", 0x0000001, 0x800000, CRC(a3afda4f) SHA1(86b475fce0bc0aa04d34e31324e8c7c7c847df19) )
+ ROM_LOAD16_BYTE( "272-c3.c3", 0x1000000, 0x800000, CRC(8c3c7502) SHA1(6639020a8860d2400308e110d7277cbaf6eccc2a) )
+ ROM_LOAD16_BYTE( "272-c4.c4", 0x1000001, 0x800000, CRC(32d5e2e2) SHA1(2b5612017152afd7433aaf99951a084ef5ad6bf0) )
+ ROM_LOAD16_BYTE( "272-c5.c5", 0x2000000, 0x800000, CRC(6ce085bc) SHA1(0432b04a2265c649bba1bbd934dfb425c5d80fb1) )
+ ROM_LOAD16_BYTE( "272-c6.c6", 0x2000001, 0x800000, CRC(05c8dc8e) SHA1(da45c222893f25495a66bdb302f9b0b1de3c8ae0) )
+ ROM_LOAD16_BYTE( "272-c7.c7", 0x3000000, 0x800000, CRC(1417b742) SHA1(dfe35eb4bcd022d2f2dc544ccbbb77078f08c0aa) )
+ ROM_LOAD16_BYTE( "272-c8.c8", 0x3000001, 0x800000, CRC(d49773cd) SHA1(cd8cf3b762d381c1f8f12919579c84a7ef7efb3f) )
+ROM_END
+
+ROM_START( samsh5sp05 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "272sp05.p1", 0x000000, 0x800000, CRC(079e5eca) SHA1(0775823a96b9424b8f61f078de0465fc6b63ae0c) )
+
+ NEO_SFIX_128K( "272n.s1", CRC(c297f973) SHA1(b31af6b51e7536b538cd7eb3542c631c6327e826) )
+
+ NEO_BIOS_AUDIO_128K( "272n.m1", CRC(0b5d4d6a) SHA1(2467e06be986cba8c879412cba0388019892dbb2) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "272n.v1", 0x000000, 0x400000, CRC(4d1b252b) SHA1(e5efe408c337a2ca556e790f0fd917ba44f975e3) )
+ ROM_LOAD( "272n.v2", 0x400000, 0x400000, CRC(0e46d2f8) SHA1(b8b0838124ea29f73f31e08d5cced8797cea75b1) )
+ ROM_LOAD( "272n.v3", 0x800000, 0x400000, CRC(3f0f7554) SHA1(2581e297725f3b950b59e9086ac5569171da6140) )
+ ROM_LOAD( "272n.v4", 0xc00000, 0x400000, CRC(ad8fabb4) SHA1(cebe3b7306e1431ebb99df13bfc2270b1d3ba1ff) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "272d.c1", 0x0000000, 0x800000, CRC(8548097e) SHA1(99177F64039D2914FA4EBD4AFC7EB0FBF4FFE0AF) )
+ ROM_LOAD16_BYTE( "272d.c2", 0x0000001, 0x800000, CRC(8c1b48d0) SHA1(3F20288ED369E6276CFAEDFF7E9703D4EA1CF6F6) )
+ ROM_LOAD16_BYTE( "272d.c3", 0x1000000, 0x800000, CRC(96ddb28c) SHA1(7EBE5166D279C0D3EFEF65618D015B4EA13F2C49) )
+ ROM_LOAD16_BYTE( "272d.c4", 0x1000001, 0x800000, CRC(99ef7a0a) SHA1(9AC3EF339BC1D6E3482E0B32D40B259EC2B44FC1) )
+ ROM_LOAD16_BYTE( "272d.c5", 0x2000000, 0x800000, CRC(772e8b1e) SHA1(8DE4898BBD8EDE593763BFA93BBF26492492D23A) )
+ ROM_LOAD16_BYTE( "272d.c6", 0x2000001, 0x800000, CRC(5fff21fc) SHA1(5D0A23A41F5277AB09FD11F227BE35F1713A4B4F) )
+ ROM_LOAD16_BYTE( "272d.c7", 0x3000000, 0x800000, CRC(9ac56a0e) SHA1(EA4FFEC3FE2E58DF16B40FDF33E1708680010414) )
+ ROM_LOAD16_BYTE( "272d.c8", 0x3000001, 0x800000, CRC(cfde7aff) SHA1(25185F471DD35E5D388B75B83D8652085CD5E17D) )
+ROM_END
+
+ROM_START( samsh5sp06 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "272sp06.p1", 0x000000, 0x800000, CRC(04361cb7) SHA1(e3e9bb243b1164ee764c16d287df184dfcd63820) )
+
+ NEO_SFIX_128K( "272n.s1", CRC(c297f973) SHA1(b31af6b51e7536b538cd7eb3542c631c6327e826) )
+
+ NEO_BIOS_AUDIO_128K( "272n.m1", CRC(0b5d4d6a) SHA1(2467e06be986cba8c879412cba0388019892dbb2) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "272n.v1", 0x000000, 0x400000, CRC(4d1b252b) SHA1(e5efe408c337a2ca556e790f0fd917ba44f975e3) )
+ ROM_LOAD( "272n.v2", 0x400000, 0x400000, CRC(0e46d2f8) SHA1(b8b0838124ea29f73f31e08d5cced8797cea75b1) )
+ ROM_LOAD( "272n.v3", 0x800000, 0x400000, CRC(3f0f7554) SHA1(2581e297725f3b950b59e9086ac5569171da6140) )
+ ROM_LOAD( "272n.v4", 0xc00000, 0x400000, CRC(ad8fabb4) SHA1(cebe3b7306e1431ebb99df13bfc2270b1d3ba1ff) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "272d.c1", 0x0000000, 0x800000, CRC(8548097e) SHA1(99177F64039D2914FA4EBD4AFC7EB0FBF4FFE0AF) )
+ ROM_LOAD16_BYTE( "272d.c2", 0x0000001, 0x800000, CRC(8c1b48d0) SHA1(3F20288ED369E6276CFAEDFF7E9703D4EA1CF6F6) )
+ ROM_LOAD16_BYTE( "272d.c3", 0x1000000, 0x800000, CRC(96ddb28c) SHA1(7EBE5166D279C0D3EFEF65618D015B4EA13F2C49) )
+ ROM_LOAD16_BYTE( "272d.c4", 0x1000001, 0x800000, CRC(99ef7a0a) SHA1(9AC3EF339BC1D6E3482E0B32D40B259EC2B44FC1) )
+ ROM_LOAD16_BYTE( "272d.c5", 0x2000000, 0x800000, CRC(772e8b1e) SHA1(8DE4898BBD8EDE593763BFA93BBF26492492D23A) )
+ ROM_LOAD16_BYTE( "272d.c6", 0x2000001, 0x800000, CRC(5fff21fc) SHA1(5D0A23A41F5277AB09FD11F227BE35F1713A4B4F) )
+ ROM_LOAD16_BYTE( "272d.c7", 0x3000000, 0x800000, CRC(9ac56a0e) SHA1(EA4FFEC3FE2E58DF16B40FDF33E1708680010414) )
+ ROM_LOAD16_BYTE( "272d.c8", 0x3000001, 0x800000, CRC(cfde7aff) SHA1(25185F471DD35E5D388B75B83D8652085CD5E17D) )
+ROM_END
+
+ROM_START( samsh5sp07 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "272sp07.p1", 0x000000, 0x800000, CRC(21107b17) SHA1(23790924d8a6a4730b7a28c770d3262c050d3bd9) )
+
+ NEO_SFIX_128K( "272n.s1", CRC(c297f973) SHA1(b31af6b51e7536b538cd7eb3542c631c6327e826) )
+
+ NEO_BIOS_AUDIO_128K( "272sp01.m1", CRC(b5abda07) SHA1(682662887442d46790b5cc171982a8a7454156b7) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "272sp01.v1", 0x000000, 0x400000, CRC(32156cfe) SHA1(6478c7a4f226ce3252556ecc039b611c15e65a6c) )
+ ROM_LOAD( "272n.v2", 0x400000, 0x400000, CRC(0e46d2f8) SHA1(b8b0838124ea29f73f31e08d5cced8797cea75b1) )
+ ROM_LOAD( "272n.v3", 0x800000, 0x400000, CRC(3f0f7554) SHA1(2581e297725f3b950b59e9086ac5569171da6140) )
+ ROM_LOAD( "272n.v4", 0xc00000, 0x400000, CRC(ad8fabb4) SHA1(cebe3b7306e1431ebb99df13bfc2270b1d3ba1ff) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "272d.c1", 0x0000000, 0x800000, CRC(8548097e) SHA1(99177F64039D2914FA4EBD4AFC7EB0FBF4FFE0AF) )
+ ROM_LOAD16_BYTE( "272d.c2", 0x0000001, 0x800000, CRC(8c1b48d0) SHA1(3F20288ED369E6276CFAEDFF7E9703D4EA1CF6F6) )
+ ROM_LOAD16_BYTE( "272d.c3", 0x1000000, 0x800000, CRC(96ddb28c) SHA1(7EBE5166D279C0D3EFEF65618D015B4EA13F2C49) )
+ ROM_LOAD16_BYTE( "272d.c4", 0x1000001, 0x800000, CRC(99ef7a0a) SHA1(9AC3EF339BC1D6E3482E0B32D40B259EC2B44FC1) )
+ ROM_LOAD16_BYTE( "272d.c5", 0x2000000, 0x800000, CRC(772e8b1e) SHA1(8DE4898BBD8EDE593763BFA93BBF26492492D23A) )
+ ROM_LOAD16_BYTE( "272d.c6", 0x2000001, 0x800000, CRC(5fff21fc) SHA1(5D0A23A41F5277AB09FD11F227BE35F1713A4B4F) )
+ ROM_LOAD16_BYTE( "272d.c7", 0x3000000, 0x800000, CRC(9ac56a0e) SHA1(EA4FFEC3FE2E58DF16B40FDF33E1708680010414) )
+ ROM_LOAD16_BYTE( "272d.c8", 0x3000001, 0x800000, CRC(cfde7aff) SHA1(25185F471DD35E5D388B75B83D8652085CD5E17D) )
+ROM_END
+
+ROM_START( samsh5sp08 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "272sp08.p1", 0x000000, 0x400000, CRC(d5d492a9) SHA1(12d2fecd1a0e0678488276034cf6cfc74c19b1be) )
+ ROM_LOAD16_WORD_SWAP( "272sp08.p2", 0x400000, 0x400000, CRC(b85f2c0f) SHA1(4a2065aff92a684da2ff490db417adee890a8819) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "272-m1.m1", CRC(adeebf40) SHA1(8cbd63dda3fff4de38060405bf70cd9308c9e66e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "272-v1.v1", 0x000000, 0x800000, CRC(76a94127) SHA1(c3affd7ff1eb02345cfb755962ec173a8ec34acd) )
+ ROM_LOAD( "272-v2.v2", 0x800000, 0x800000, CRC(4ba507f1) SHA1(728d139da3fe8a391fd8be4d24bb7fdd4bf9548a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "272d.c1", 0x0000000, 0x800000, CRC(8548097e) SHA1(99177F64039D2914FA4EBD4AFC7EB0FBF4FFE0AF) )
+ ROM_LOAD16_BYTE( "272d.c2", 0x0000001, 0x800000, CRC(8c1b48d0) SHA1(3F20288ED369E6276CFAEDFF7E9703D4EA1CF6F6) )
+ ROM_LOAD16_BYTE( "272d.c3", 0x1000000, 0x800000, CRC(96ddb28c) SHA1(7EBE5166D279C0D3EFEF65618D015B4EA13F2C49) )
+ ROM_LOAD16_BYTE( "272d.c4", 0x1000001, 0x800000, CRC(99ef7a0a) SHA1(9AC3EF339BC1D6E3482E0B32D40B259EC2B44FC1) )
+ ROM_LOAD16_BYTE( "272d.c5", 0x2000000, 0x800000, CRC(772e8b1e) SHA1(8DE4898BBD8EDE593763BFA93BBF26492492D23A) )
+ ROM_LOAD16_BYTE( "272d.c6", 0x2000001, 0x800000, CRC(5fff21fc) SHA1(5D0A23A41F5277AB09FD11F227BE35F1713A4B4F) )
+ ROM_LOAD16_BYTE( "272d.c7", 0x3000000, 0x800000, CRC(9ac56a0e) SHA1(EA4FFEC3FE2E58DF16B40FDF33E1708680010414) )
+ ROM_LOAD16_BYTE( "272d.c8", 0x3000001, 0x800000, CRC(cfde7aff) SHA1(25185F471DD35E5D388B75B83D8652085CD5E17D) )
+ROM_END
+
+ROM_START( samsh5sp09 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "272sp09.p1", 0x000000, 0x800000, CRC(82d7855a) SHA1(ebd4e1cd8781563d5273f1b4961bd090c9839064) )
+
+ NEO_SFIX_128K( "272sp09.s1", CRC(6f2601eb) SHA1(a15dc042dedf18d464eae9b22a854a153762b699) )
+
+ NEO_BIOS_AUDIO_128K( "272n.m1", CRC(0b5d4d6a) SHA1(2467e06be986cba8c879412cba0388019892dbb2) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "272n.v1", 0x000000, 0x400000, CRC(4d1b252b) SHA1(e5efe408c337a2ca556e790f0fd917ba44f975e3) )
+ ROM_LOAD( "272n.v2", 0x400000, 0x400000, CRC(0e46d2f8) SHA1(b8b0838124ea29f73f31e08d5cced8797cea75b1) )
+ ROM_LOAD( "272n.v3", 0x800000, 0x400000, CRC(3f0f7554) SHA1(2581e297725f3b950b59e9086ac5569171da6140) )
+ ROM_LOAD( "272n.v4", 0xc00000, 0x400000, CRC(ad8fabb4) SHA1(cebe3b7306e1431ebb99df13bfc2270b1d3ba1ff) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "272d.c1", 0x0000000, 0x800000, CRC(8548097e) SHA1(99177F64039D2914FA4EBD4AFC7EB0FBF4FFE0AF) )
+ ROM_LOAD16_BYTE( "272d.c2", 0x0000001, 0x800000, CRC(8c1b48d0) SHA1(3F20288ED369E6276CFAEDFF7E9703D4EA1CF6F6) )
+ ROM_LOAD16_BYTE( "272d.c3", 0x1000000, 0x800000, CRC(96ddb28c) SHA1(7EBE5166D279C0D3EFEF65618D015B4EA13F2C49) )
+ ROM_LOAD16_BYTE( "272d.c4", 0x1000001, 0x800000, CRC(99ef7a0a) SHA1(9AC3EF339BC1D6E3482E0B32D40B259EC2B44FC1) )
+ ROM_LOAD16_BYTE( "272d.c5", 0x2000000, 0x800000, CRC(772e8b1e) SHA1(8DE4898BBD8EDE593763BFA93BBF26492492D23A) )
+ ROM_LOAD16_BYTE( "272d.c6", 0x2000001, 0x800000, CRC(5fff21fc) SHA1(5D0A23A41F5277AB09FD11F227BE35F1713A4B4F) )
+ ROM_LOAD16_BYTE( "272d.c7", 0x3000000, 0x800000, CRC(9ac56a0e) SHA1(EA4FFEC3FE2E58DF16B40FDF33E1708680010414) )
+ ROM_LOAD16_BYTE( "272d.c8", 0x3000001, 0x800000, CRC(cfde7aff) SHA1(25185F471DD35E5D388B75B83D8652085CD5E17D) )
+ROM_END
+
+ROM_START( fswords01 )
+ ROM_REGION( 0x300000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "187hc01.p1", 0x000000, 0x100000, CRC(a32ababf) SHA1(6cfab53758f7bb6370059daa93723e2413281925) )
+ ROM_LOAD16_WORD_SWAP( "087-p2.sp2", 0x100000, 0x200000, CRC(9bbe27e0) SHA1(b18117102159903c8e8f4e4226e1cc91a400e816) )
+
+ NEO_SFIX_128K( "087-s1.s1", CRC(74ec7d9f) SHA1(d79c479838a7ca51735a44f91f1968ec5b3c6b91) )
+
+ NEO_BIOS_AUDIO_128K( "087-m1.m1", CRC(8e6440eb) SHA1(e3f72150af4e326543b29df71cda27d73ec087c1) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "087-v1.v1", 0x000000, 0x400000, CRC(84bdd9a0) SHA1(adceceb00569eca13fcc2e0f0d9f0d9b06a06851) )
+ ROM_LOAD( "087-v2.v2", 0x400000, 0x200000, CRC(ac0f261a) SHA1(5411bdff24cba7fdbc3397d45a70fb468d7a44b3) )
+
+ ROM_REGION( 0x1a00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "087-c1.c1", 0x0000000, 0x400000, CRC(07a233bc) SHA1(654cb56cfd6eeebe6745c0b8b730317fb8ccd3d9) )
+ ROM_LOAD16_BYTE( "087-c2.c2", 0x0000001, 0x400000, CRC(7a413592) SHA1(b8c7a2d0d7a8b14d6cab94d7a5f347e73c6ab7a4) )
+ ROM_LOAD16_BYTE( "087-c3.c3", 0x0800000, 0x400000, CRC(8b793796) SHA1(053acc129ea56691607a5d255845703e61fd3ada) )
+ ROM_LOAD16_BYTE( "087-c4.c4", 0x0800001, 0x400000, CRC(728fbf11) SHA1(daa319d455f759bfc08a37b43218bdb48dc1c9e5) )
+ ROM_LOAD16_BYTE( "087-c5.c5", 0x1000000, 0x400000, CRC(172ab180) SHA1(a6122f683bdb78d0079e1e360c1b96ba28def7b7) )
+ ROM_LOAD16_BYTE( "087-c6.c6", 0x1000001, 0x400000, CRC(002ff8f3) SHA1(3a378708697d727796c4f702dd5bbf1c9eb4daec) )
+ ROM_LOAD16_BYTE( "087-c7.c7", 0x1800000, 0x100000, CRC(ae450e3d) SHA1(ec482632cc347ec3f9e68df0ebcaa16ebe41b9f9) )
+ ROM_LOAD16_BYTE( "087-c8.c8", 0x1800001, 0x100000, CRC(a9e82717) SHA1(e39ee15d5140dbe7f06eea945cce9984a5e8b06a) )
+ROM_END
+
+
+/*************************************
+ *
+ * Game driver(s)
+ *
+ *************************************/
+// Proyecto Shadows Mame Build Plus
+/* YEAR NAME PARENT MACHINE INPUT INIT MONITOR COMPANY FULLNAME FLAGS */
+// Samurai Shodown
+GAME( 2016, samshos01, samsho, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Samurai Shodown (Description Of Unknown Origin 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, samshos02, samsho, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Samurai Shodown (Max Power)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, samshos03, samsho, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Samurai Shodown (Claws To The max)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, samshos04, samsho, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Samurai Shodown (Description Of Unknown Origin 02)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, samshos07, samsho, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Samurai Shodown (Max Power Alternative)", MACHINE_SUPPORTS_SAVE )
+// Samurai Shodown II
+GAME( 2016, samsho2s01, samsho2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Samurai Shodown II (Description Of Unknown Origin 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, samsho2s02, samsho2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Samurai Shodown II (Max Power)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, samsho2s03, samsho2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Samurai Shodown II (Boss Hack Add Character)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, samsho2s04, samsho2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Samurai Shodown II (Description Of Unknown Origin 02)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, samsho2s05, samsho2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Samurai Shodown II (Description Of Unknown Origin 03)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, samsho2s06, samsho2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Samurai Shodown II (Description Of Unknown Origin 04)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, samsho2s07, samsho2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Samurai Shodown II (Description Of Unknown Origin 05)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, samsho2s08, samsho2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Samurai Shodown II (Description Of Unknown Origin 06)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, samsho2s09, samsho2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Samurai Shodown II (Description Of Unknown Origin 07)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, samsho2s10, samsho2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Samurai Shodown II (Description Of Unknown Origin 08)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, samsho2s11, samsho2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Samurai Shodown II (Description Of Unknown Origin 09)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, samsho2s12, samsho2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Samurai Shodown II (Description Of Unknown Origin 10)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, samsho2s13, samsho2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Samurai Shodown II (Special Boss Hack By Yashional)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, samsho2s14, samsho2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Samurai Shodown II (Xtreme Plus 2011 Hack By IsmaMj)", MACHINE_SUPPORTS_SAVE )
+// Samurai Shodown III
+GAME( 2016, samsho3s01, samsho3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Samurai Shodown III (Power Max Alternative Set 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, samsho3s02, samsho3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Samurai Shodown III (Boss Hack Add Character)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, samsho3s03, samsho3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Samurai Shodown III (Boss New Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, samsho3s04, samsho3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Samurai Shodown III (Power Max)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, samsho3s05, samsho3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Samurai Shodown III (Description Of Unknown Origin 02)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, samsho3s06, samsho3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Samurai Shodown III (Add Character set)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, samsho3s07, samsho3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Samurai Shodown III (Power Max Alternative Set 02)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, samsho3s08, samsho3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Samurai Shodown III (Description Of Unknown Origin 03)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, samsho3s09, samsho3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Samurai Shodown III (Description Of Unknown Origin 04)", MACHINE_SUPPORTS_SAVE )
+// Samurai Shodown IV
+GAME( 2016, samsho4s01, samsho4, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Samurai Shodown IV (Description Of Unknown Origin 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, samsho4s02, samsho4, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Samurai Shodown IV (Description Of Unknown Origin 02)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, samsho4s03, samsho4, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Samurai Shodown IV (Description Of Unknown Origin 03)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, samsho4s04, samsho4, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Samurai Shodown IV (Add Character Set 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, samsho4s05, samsho4, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Samurai Shodown IV (Add Character Set 02)", MACHINE_SUPPORTS_SAVE )
+// Samurai Shodown V
+GAME( 2017, samsho5s01, samsho5, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Samurai Shodown V (Description Of Unknown Origin 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, samsho5s02, samsho5, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Samurai Shodown V (Description Of Unknown Origin 02)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, samsho5s03, samsho5, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Samurai Shodown V (Description Of Unknown Origin 03)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, samsho5s04, samsho5, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Samurai Shodown V (Max Power)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, samsho5s05, samsho5, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Samurai Shodown V (Max Power Alternative Set 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, samsho5s06, samsho5, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Samurai Shodown V (Add Character)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, samsho5s07, samsho5, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Samurai Shodown V (Description Of Unknown Origin 04)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, samsho5s08, samsho5, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Samurai Shodown V (Description Of Unknown Origin 05)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, samsho5s09, samsho5, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Samurai Shodown V (Description Of Unknown Origin 06)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, samsho5s10, samsho5, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Samurai Shodown V (Description Of Unknown Origin 07)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, samsho5s11, samsho5, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Samurai Shodown V (Description Of Unknown Origin 08)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, samsho5s12, samsho5, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Samurai Shodown V (Description Of Unknown Origin 09)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, samsho5s13, samsho5, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Samurai Shodown V (Super Max Power)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, samsho5s14, samsho5, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Samurai Shodown V (Description Of Unknown Origin 10)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, samsho5s15, samsho5, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Samurai Shodown V (Description Of Unknown Origin 11)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, samsho5s16, samsho5, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Samurai Shodown V (Description Of Unknown Origin 12)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, samsho5s17, samsho5, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Samurai Shodown V (Description Of Unknown Origin 13)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, samsho5s18, samsho5, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Samurai Shodown V (Add Character Prototype)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, samsho5s19, samsho5, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Samurai Shodown V (Add Character Beta 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, samsho5s20, samsho5, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Samurai Shodown V (Description Of Unknown Origin 14)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, samsho5s21, samsho5, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Samurai Shodown V (Max Power Alternative Set 02)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, samsho5s22, samsho5, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Samurai Shodown V (Description Of Unknown Origin 16)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, samsho5s23, samsho5, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Samurai Shodown V (Description Of Unknown Origin 17)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, samsho5s24, samsho5, neogeo_noslot, neogeo, neogeo_noslot_state, samsho5, ROT0, "Hacks", "Samurai Shodown V (Color Fix By kazuki)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, samsho5s25, samsho5, neogeo_noslot, neogeo, neogeo_noslot_state, samsho5, ROT0, "Hacks", "Samurai Shodown V (Color Fix By yumeji)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, samsho5s26, samsho5, neogeo_noslot, neogeo, neogeo_noslot_state, samsho5, ROT0, "Hacks", "Samurai Shodown V (Color Fix By Brian)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, samsho5s27, samsho5, neogeo_noslot, neogeo, neogeo_noslot_state, samsho5, ROT0, "Hacks", "Samurai Shodown V (Power Max Alternative Set 00)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, samsho5s28, samsho5, neogeo_noslot, neogeo, neogeo_noslot_state, samsho5, ROT0, "Hacks", "Samurai Shodown V (Menu Fix)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, samsho5s29, samsho5, neogeo_noslot, neogeo, neogeo_noslot_state, samsho5, ROT0, "Hacks", "Samurai Shodown V (Bug Fix Poppy)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, samsho5s30, samsho5, neogeo_noslot, neogeo, neogeo_noslot_state, samsho5, ROT0, "Hacks", "Samurai Shodown V (Color Fix By Gaoh)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, samsho5s31, samsho5, neogeo_noslot, neogeo, neogeo_noslot_state, samsho5, ROT0, "Hacks", "Samurai Shodown V (Color_Fix kazuki V1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, samsho5s32, samsho5, neogeo_noslot, neogeo, neogeo_noslot_state, samsho5, ROT0, "Hacks", "Samurai Shodown V (Color Fix By yumeji V1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, samsho5s33, samsho5, neogeo_noslot, neogeo, neogeo_noslot_state, samsho5, ROT0, "Hacks", "Samurai Shodown V (Power Max Alternative Set 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, samsho5s34, samsho5, neogeo_noslot, neogeo, neogeo_hbmame, sam5hb, ROT0, "Hacks", "Samurai Shodown V (Description Of Unknown Origin 18)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, samsho5s35, samsho5, neogeo_noslot, neogeo, neogeo_hbmame, sam5hb, ROT0, "Hacks", "Samurai Shodown V (Description Of Unknown Origin 19)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, samsho5s36, samsho5, neogeo_noslot, neogeo, neogeo_hbmame, sam5hb, ROT0, "Hacks", "Samurai Shodown V (Description Of Unknown Origin 20)", MACHINE_SUPPORTS_SAVE )
+//GAME( 2003, samsho5s37, samsho5, neogeo_noslot, neogeo, neogeo_hbmame, sam5hb, ROT0, "Hacks", "Samurai Shodown V (Description Of Unknown Origin 21)", MACHINE_SUPPORTS_SAVE )
+// Samurai Shodown V Special
+GAME( 2008, samsh5sp01, samsh5sp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Samurai Shodown V Special (Description Of Unknown Origin 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 2008, samsh5sp02, samsh5sp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Samurai Shodown V Special (Description Of Unknown Origin 02)", MACHINE_SUPPORTS_SAVE )
+GAME( 2008, samsh5sp03, samsh5sp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Samurai Shodown V Special (Description Of Unknown Origin 03)", MACHINE_SUPPORTS_SAVE )
+//GAME( 2004, samsh5sp04, samsh5sp, neogeo_noslot, neogeo, neogeo_noslot_state, samsh5sp, ROT0, "Hacks", "Samurai Shodown V Special (Description Of Unknown Origin 04)", MACHINE_SUPPORTS_SAVE ) //Duplicado Roms
+GAME( 2008, samsh5sp05, samsh5sp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Samurai Shodown V Special (Description Of Unknown Origin 05)", MACHINE_SUPPORTS_SAVE )
+GAME( 2008, samsh5sp06, samsh5sp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Samurai Shodown V Special (Description Of Unknown Origin 06)", MACHINE_SUPPORTS_SAVE )
+//GAME( 2008, samsh5sp07, samsh5sp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Samurai Shodown V Special (Description Of Unknown Origin 07)", MACHINE_SUPPORTS_SAVE ) // Duplicado Roms
+GAME( 2004, samsh5sp08, samsh5sp, neogeo_noslot, neogeo, neogeo_hbmame, sam5sphb, ROT0, "Hacks", "Samurai Shodown V Special (Description Of Unknown Origin 08)", MACHINE_SUPPORTS_SAVE )
+GAME( 2008, samsh5sp09, samsh5sp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Samurai Shodown V Special (Description Of Unknown Origin 09)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1995, fswords01, samsho3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "Fighters Swords (Description Of Unknown Origin 01)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/ngsengoku.cpp b/src/hbmame/drivers/ngsengoku.cpp
new file mode 100644
index 00000000000..f5960af88c9
--- /dev/null
+++ b/src/hbmame/drivers/ngsengoku.cpp
@@ -0,0 +1,364 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+
+
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, sengo3d )
+{
+ DRIVER_INIT_CALL(neogeo);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+}
+
+
+
+ROM_START( sengokucd )
+ ROM_REGION( 0x120000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "017cd.p1", 0x000000, 0x100000, CRC(89290fa2) SHA1(c546aaf74e823d76e5a9ac592edd098a7cf531ed) )
+ ROM_LOAD16_WORD_SWAP( "017-p2.p2", 0x100000, 0x020000, CRC(3024bbb3) SHA1(88892e1292dd60f35a76f9a22e623d4f0f9693cc) )
+
+ NEO_SFIX_128K( "017-s1.s1", CRC(b246204d) SHA1(73dce64c61fb5bb7e836a8e60f081bb77d80d281) )
+
+ NEO_BIOS_AUDIO_128K( "017-m1.m1", CRC(9b4f34c6) SHA1(7f3a51f47fcbaa598f5c76bc66e2c53c8dfd852d) )
+
+ ROM_REGION( 0x200000, "ymsnd", 0 )
+ ROM_LOAD( "017-v1.v1", 0x000000, 0x100000, CRC(23663295) SHA1(9374a5d9f3de8e6a97c11f07d8b4485ac9d55edb) )
+ ROM_LOAD( "017-v2.v2", 0x100000, 0x100000, CRC(f61e6765) SHA1(1c9b287996947319eb3d288c3d82932cf01039db) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "017-c1.c1", 0x000000, 0x100000, CRC(b4eb82a1) SHA1(79879e2ea78c07d04c88dc9a1ad59604b7a078be) )
+ ROM_LOAD16_BYTE( "017-c2.c2", 0x000001, 0x100000, CRC(d55c550d) SHA1(6110f693aa23710939c04153cf5af26493e4a03f) )
+ ROM_LOAD16_BYTE( "017-c3.c3", 0x200000, 0x100000, CRC(ed51ef65) SHA1(e8a8d86e24454948e51a75c883bc6e4091cbf820) )
+ ROM_LOAD16_BYTE( "017-c4.c4", 0x200001, 0x100000, CRC(f4f3c9cb) SHA1(8faafa89dbd0345218f71f891419d2e4e7578200) )
+ROM_END
+
+
+ROM_START( sengoku3b ) /* Sengoku 3 - Hack by Ydmis - (Can choose Byakki and Okuni) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "261b.p1", 0x100000, 0x100000, CRC(66553650) SHA1(f235681d394c6526e9c61f5321a80287240ef61f) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "261d.m1", CRC(36ed9cdd) SHA1(78a7d755e9e9f52255ac6228d9d402fd6a02c126) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "261-v1.v1", 0x000000, 0x400000, CRC(64c30081) SHA1(f9ebd20cf59b72e864b7274c1bdb6d99ecaf4595) )
+ ROM_LOAD( "261-v2.v2", 0x400000, 0x400000, CRC(392a9c47) SHA1(7ab90a54089236ca6c3ef1af8e566a8025d38159) )
+ ROM_LOAD( "261-v3.v3", 0x800000, 0x400000, CRC(c1a7ebe3) SHA1(1d7bb481451f5ee0457e954bb5210300182c3c9c) )
+ ROM_LOAD( "261-v4.v4", 0xc00000, 0x200000, CRC(9000d085) SHA1(11157b355ab4eb6627e9f322ed875332d3d77349) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "261-c1.c1", 0x0000000, 0x800000, CRC(ded84d9c) SHA1(d960523b813d4fae06d716298d4e431a5c77a0c5) )
+ ROM_LOAD16_BYTE( "261-c2.c2", 0x0000001, 0x800000, CRC(b8eb4348) SHA1(619d24312549932959481fa58f43f11c048e1ca5) )
+ ROM_LOAD16_BYTE( "261-c3.c3", 0x1000000, 0x800000, CRC(84e2034a) SHA1(38ec4ae4b86933a25c9a03799b8cade4b1346401) )
+ ROM_LOAD16_BYTE( "261-c4.c4", 0x1000001, 0x800000, CRC(0b45ae53) SHA1(a19fb21408ab633aee8bbf38bf43b5e26766b355) )
+ROM_END
+
+ROM_START( sengoku3c ) /* Sengoku 3 - Colour fix by UNKNOWN - (Character colour change - can choose Byakki and Okuni) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "261c.p1", 0x000000, 0x200000, CRC(62abbf93) SHA1(f990263265f6dd742d3bd20587affbb056e222a9) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "261d.m1", CRC(36ed9cdd) SHA1(78a7d755e9e9f52255ac6228d9d402fd6a02c126) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "261-v1.v1", 0x000000, 0x400000, CRC(64c30081) SHA1(f9ebd20cf59b72e864b7274c1bdb6d99ecaf4595) )
+ ROM_LOAD( "261-v2.v2", 0x400000, 0x400000, CRC(392a9c47) SHA1(7ab90a54089236ca6c3ef1af8e566a8025d38159) )
+ ROM_LOAD( "261-v3.v3", 0x800000, 0x400000, CRC(c1a7ebe3) SHA1(1d7bb481451f5ee0457e954bb5210300182c3c9c) )
+ ROM_LOAD( "261-v4.v4", 0xc00000, 0x200000, CRC(9000d085) SHA1(11157b355ab4eb6627e9f322ed875332d3d77349) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "261-c1.c1", 0x0000000, 0x800000, CRC(ded84d9c) SHA1(d960523b813d4fae06d716298d4e431a5c77a0c5) )
+ ROM_LOAD16_BYTE( "261-c2.c2", 0x0000001, 0x800000, CRC(b8eb4348) SHA1(619d24312549932959481fa58f43f11c048e1ca5) )
+ ROM_LOAD16_BYTE( "261-c3.c3", 0x1000000, 0x800000, CRC(84e2034a) SHA1(38ec4ae4b86933a25c9a03799b8cade4b1346401) )
+ ROM_LOAD16_BYTE( "261-c4.c4", 0x1000001, 0x800000, CRC(0b45ae53) SHA1(a19fb21408ab633aee8bbf38bf43b5e26766b355) )
+ROM_END
+
+ROM_START( sengoku3d )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "261-ph1.p1", 0x100000, 0x100000, CRC(e0d4bc0a) SHA1(8df366097f224771ca6d1aa5c1691cd46776cd12) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "261d.m1", CRC(36ed9cdd) SHA1(78a7d755e9e9f52255ac6228d9d402fd6a02c126) )
+
+ ROM_REGION( 0xE00000, "ymsnd", 0 )
+ ROM_LOAD( "261-v1.v1", 0x000000, 0x400000, CRC(64c30081) SHA1(f9ebd20cf59b72e864b7274c1bdb6d99ecaf4595) )
+ ROM_LOAD( "261-v2.v2", 0x400000, 0x400000, CRC(392a9c47) SHA1(7ab90a54089236ca6c3ef1af8e566a8025d38159) )
+ ROM_LOAD( "261-v3.v3", 0x800000, 0x400000, CRC(c1a7ebe3) SHA1(1d7bb481451f5ee0457e954bb5210300182c3c9c) )
+ ROM_LOAD( "261-v4.v4", 0xc00000, 0x200000, CRC(9000d085) SHA1(11157b355ab4eb6627e9f322ed875332d3d77349) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "261d.c1", 0x0000000, 0x800000, CRC(9af7cbca) SHA1(cf2fe3e5265861369f2878140ef33a6715b031aa) )
+ ROM_LOAD16_BYTE( "261d.c2", 0x0000001, 0x800000, CRC(2a1f874d) SHA1(26923ec0bedba56f25e6222aa107b45ccb3def7b) )
+ ROM_LOAD16_BYTE( "261d.c3", 0x1000000, 0x800000, CRC(5403adb5) SHA1(5614ee892e810dc49758f5985b3dc4f227e01b56) )
+ ROM_LOAD16_BYTE( "261d.c4", 0x1000001, 0x800000, CRC(18926df6) SHA1(a4859c9166ef7abec1f3e6af3292051a63a81f93) )
+ROM_END
+
+ROM_START( sengoku3eb ) // sgk3eb
+ ROM_REGION( 0x500000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "261eb.p1", 0x100000, 0x100000, CRC(a77a0dc7) SHA1(a78885d1d121583c7733a868f6140babc4ba5544) )
+ ROM_IGNORE(0x100000)
+ ROM_CONTINUE(0x000000, 0x100000)
+ ROM_IGNORE(0x154f48)
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_512K( "261-m1.m1", CRC(7d501c39) SHA1(8e6bcc428f5ac7532d9c9be7e07ad0821461a080) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "261-v1.v1", 0x000000, 0x400000, CRC(64c30081) SHA1(f9ebd20cf59b72e864b7274c1bdb6d99ecaf4595) )
+ ROM_LOAD( "261-v2.v2", 0x400000, 0x400000, CRC(392a9c47) SHA1(7ab90a54089236ca6c3ef1af8e566a8025d38159) )
+ ROM_LOAD( "261-v3.v3", 0x800000, 0x400000, CRC(c1a7ebe3) SHA1(1d7bb481451f5ee0457e954bb5210300182c3c9c) )
+ ROM_LOAD( "261-v4.v4", 0xc00000, 0x200000, CRC(9000d085) SHA1(11157b355ab4eb6627e9f322ed875332d3d77349) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "261-c1.c1", 0x0000000, 0x800000, CRC(ded84d9c) SHA1(d960523b813d4fae06d716298d4e431a5c77a0c5) )
+ ROM_LOAD16_BYTE( "261-c2.c2", 0x0000001, 0x800000, CRC(b8eb4348) SHA1(619d24312549932959481fa58f43f11c048e1ca5) )
+ ROM_LOAD16_BYTE( "261-c3.c3", 0x1000000, 0x800000, CRC(84e2034a) SHA1(38ec4ae4b86933a25c9a03799b8cade4b1346401) )
+ ROM_LOAD16_BYTE( "261-c4.c4", 0x1000001, 0x800000, CRC(0b45ae53) SHA1(a19fb21408ab633aee8bbf38bf43b5e26766b355) )
+ROM_END
+
+ROM_START( sengoku3eh )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "261eh.p1", 0x000000, 0x200000, CRC(b0ce4444) SHA1(c1b46daf677bfbf61b2fe8e5449f9ccba231b59a) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "261d.m1", CRC(36ed9cdd) SHA1(78a7d755e9e9f52255ac6228d9d402fd6a02c126) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "261-v1.v1", 0x000000, 0x400000, CRC(64c30081) SHA1(f9ebd20cf59b72e864b7274c1bdb6d99ecaf4595) )
+ ROM_LOAD( "261-v2.v2", 0x400000, 0x400000, CRC(392a9c47) SHA1(7ab90a54089236ca6c3ef1af8e566a8025d38159) )
+ ROM_LOAD( "261-v3.v3", 0x800000, 0x400000, CRC(c1a7ebe3) SHA1(1d7bb481451f5ee0457e954bb5210300182c3c9c) )
+ ROM_LOAD( "261-v4.v4", 0xc00000, 0x200000, CRC(9000d085) SHA1(11157b355ab4eb6627e9f322ed875332d3d77349) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "261-c1.c1", 0x0000000, 0x800000, CRC(ded84d9c) SHA1(d960523b813d4fae06d716298d4e431a5c77a0c5) )
+ ROM_LOAD16_BYTE( "261-c2.c2", 0x0000001, 0x800000, CRC(b8eb4348) SHA1(619d24312549932959481fa58f43f11c048e1ca5) )
+ ROM_LOAD16_BYTE( "261-c3.c3", 0x1000000, 0x800000, CRC(84e2034a) SHA1(38ec4ae4b86933a25c9a03799b8cade4b1346401) )
+ ROM_LOAD16_BYTE( "261-c4.c4", 0x1000001, 0x800000, CRC(0b45ae53) SHA1(a19fb21408ab633aee8bbf38bf43b5e26766b355) )
+ROM_END
+
+ROM_START( sengoku3ha ) /* Sengoku 3 - Hack by HappyAse - (Can choose Byakki and Okuni - can directly choose USA and Brazil stage) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "261ha.p1", 0x000000, 0x200000, CRC(ff392440) SHA1(01184f9edc786d0b83a3afe83e53b9834d54a98d) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "261d.m1", CRC(36ed9cdd) SHA1(78a7d755e9e9f52255ac6228d9d402fd6a02c126) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "261-v1.v1", 0x000000, 0x400000, CRC(64c30081) SHA1(f9ebd20cf59b72e864b7274c1bdb6d99ecaf4595) )
+ ROM_LOAD( "261-v2.v2", 0x400000, 0x400000, CRC(392a9c47) SHA1(7ab90a54089236ca6c3ef1af8e566a8025d38159) )
+ ROM_LOAD( "261-v3.v3", 0x800000, 0x400000, CRC(c1a7ebe3) SHA1(1d7bb481451f5ee0457e954bb5210300182c3c9c) )
+ ROM_LOAD( "261-v4.v4", 0xc00000, 0x200000, CRC(9000d085) SHA1(11157b355ab4eb6627e9f322ed875332d3d77349) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "261-c1.c1", 0x0000000, 0x800000, CRC(ded84d9c) SHA1(d960523b813d4fae06d716298d4e431a5c77a0c5) )
+ ROM_LOAD16_BYTE( "261-c2.c2", 0x0000001, 0x800000, CRC(b8eb4348) SHA1(619d24312549932959481fa58f43f11c048e1ca5) )
+ ROM_LOAD16_BYTE( "261-c3.c3", 0x1000000, 0x800000, CRC(84e2034a) SHA1(38ec4ae4b86933a25c9a03799b8cade4b1346401) )
+ ROM_LOAD16_BYTE( "261-c4.c4", 0x1000001, 0x800000, CRC(0b45ae53) SHA1(a19fb21408ab633aee8bbf38bf43b5e26766b355) )
+ROM_END
+
+ROM_START( sengoku3k ) /* Sengoku 3 - Enhance by KrysoFun - (Can choose Byakki and Okuni - power hack) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "261k.p1", 0x100000, 0x100000, CRC(ff0ab4f5) SHA1(581184174074333d7e94cbda1f5d6b3f4aec452c) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "261d.m1", CRC(36ed9cdd) SHA1(78a7d755e9e9f52255ac6228d9d402fd6a02c126) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "261-v1.v1", 0x000000, 0x400000, CRC(64c30081) SHA1(f9ebd20cf59b72e864b7274c1bdb6d99ecaf4595) )
+ ROM_LOAD( "261-v2.v2", 0x400000, 0x400000, CRC(392a9c47) SHA1(7ab90a54089236ca6c3ef1af8e566a8025d38159) )
+ ROM_LOAD( "261-v3.v3", 0x800000, 0x400000, CRC(c1a7ebe3) SHA1(1d7bb481451f5ee0457e954bb5210300182c3c9c) )
+ ROM_LOAD( "261-v4.v4", 0xc00000, 0x200000, CRC(9000d085) SHA1(11157b355ab4eb6627e9f322ed875332d3d77349) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "261-c1.c1", 0x0000000, 0x800000, CRC(ded84d9c) SHA1(d960523b813d4fae06d716298d4e431a5c77a0c5) )
+ ROM_LOAD16_BYTE( "261-c2.c2", 0x0000001, 0x800000, CRC(b8eb4348) SHA1(619d24312549932959481fa58f43f11c048e1ca5) )
+ ROM_LOAD16_BYTE( "261-c3.c3", 0x1000000, 0x800000, CRC(84e2034a) SHA1(38ec4ae4b86933a25c9a03799b8cade4b1346401) )
+ ROM_LOAD16_BYTE( "261-c4.c4", 0x1000001, 0x800000, CRC(0b45ae53) SHA1(a19fb21408ab633aee8bbf38bf43b5e26766b355) )
+ROM_END
+
+ROM_START( sengoku3kc ) /* Sengoku 3 - Colour fix by Fighters Kim - (Character colour change - 80%) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "261kc.p1", 0x100000, 0x100000, CRC(78a02b04) SHA1(d3634471cc12dd77a53d97405bb972ebc46ef513) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "261d.m1", CRC(36ed9cdd) SHA1(78a7d755e9e9f52255ac6228d9d402fd6a02c126) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "261-v1.v1", 0x000000, 0x400000, CRC(64c30081) SHA1(f9ebd20cf59b72e864b7274c1bdb6d99ecaf4595) )
+ ROM_LOAD( "261-v2.v2", 0x400000, 0x400000, CRC(392a9c47) SHA1(7ab90a54089236ca6c3ef1af8e566a8025d38159) )
+ ROM_LOAD( "261-v3.v3", 0x800000, 0x400000, CRC(c1a7ebe3) SHA1(1d7bb481451f5ee0457e954bb5210300182c3c9c) )
+ ROM_LOAD( "261-v4.v4", 0xc00000, 0x200000, CRC(9000d085) SHA1(11157b355ab4eb6627e9f322ed875332d3d77349) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "261-c1.c1", 0x0000000, 0x800000, CRC(ded84d9c) SHA1(d960523b813d4fae06d716298d4e431a5c77a0c5) )
+ ROM_LOAD16_BYTE( "261-c2.c2", 0x0000001, 0x800000, CRC(b8eb4348) SHA1(619d24312549932959481fa58f43f11c048e1ca5) )
+ ROM_LOAD16_BYTE( "261-c3.c3", 0x1000000, 0x800000, CRC(84e2034a) SHA1(38ec4ae4b86933a25c9a03799b8cade4b1346401) )
+ ROM_LOAD16_BYTE( "261-c4.c4", 0x1000001, 0x800000, CRC(0b45ae53) SHA1(a19fb21408ab633aee8bbf38bf43b5e26766b355) )
+ROM_END
+
+ROM_START( sengoku3p )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "261p.p1", 0x000000, 0x200000, CRC(2997b5ef) SHA1(86b9509eba939528aa0744ad8742cedfaf66b02e) )
+
+ NEO_SFIX_128K( "261s.s1", CRC(c1e27cc7) SHA1(7d38319f517059f60287a8ce393a4901719db8a9) )
+
+ NEO_BIOS_AUDIO_128K( "261d.m1", CRC(36ed9cdd) SHA1(78a7d755e9e9f52255ac6228d9d402fd6a02c126) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "261-v1.v1", 0x000000, 0x400000, CRC(64c30081) SHA1(f9ebd20cf59b72e864b7274c1bdb6d99ecaf4595) )
+ ROM_LOAD( "261-v2.v2", 0x400000, 0x400000, CRC(392a9c47) SHA1(7ab90a54089236ca6c3ef1af8e566a8025d38159) )
+ ROM_LOAD( "261-v3.v3", 0x800000, 0x400000, CRC(c1a7ebe3) SHA1(1d7bb481451f5ee0457e954bb5210300182c3c9c) )
+ ROM_LOAD( "261-v4.v4", 0xc00000, 0x200000, CRC(9000d085) SHA1(11157b355ab4eb6627e9f322ed875332d3d77349) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "261d.c1", 0x0000000, 0x800000, CRC(9af7cbca) SHA1(cf2fe3e5265861369f2878140ef33a6715b031aa) )
+ ROM_LOAD16_BYTE( "261d.c2", 0x0000001, 0x800000, CRC(2a1f874d) SHA1(26923ec0bedba56f25e6222aa107b45ccb3def7b) )
+ ROM_LOAD16_BYTE( "261d.c3", 0x1000000, 0x800000, CRC(5403adb5) SHA1(5614ee892e810dc49758f5985b3dc4f227e01b56) )
+ ROM_LOAD16_BYTE( "261d.c4", 0x1000001, 0x800000, CRC(18926df6) SHA1(a4859c9166ef7abec1f3e6af3292051a63a81f93) )
+ROM_END
+
+ROM_START( sengoku3pl )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "261pl.p1", 0x100000, 0x100000, CRC(87a65e84) SHA1(0475d81c1fb4e4df7a3773522aa2958fd550e8ad) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "261d.m1", CRC(36ed9cdd) SHA1(78a7d755e9e9f52255ac6228d9d402fd6a02c126) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "261-v1.v1", 0x000000, 0x400000, CRC(64c30081) SHA1(f9ebd20cf59b72e864b7274c1bdb6d99ecaf4595) )
+ ROM_LOAD( "261-v2.v2", 0x400000, 0x400000, CRC(392a9c47) SHA1(7ab90a54089236ca6c3ef1af8e566a8025d38159) )
+ ROM_LOAD( "261-v3.v3", 0x800000, 0x400000, CRC(c1a7ebe3) SHA1(1d7bb481451f5ee0457e954bb5210300182c3c9c) )
+ ROM_LOAD( "261-v4.v4", 0xc00000, 0x200000, CRC(9000d085) SHA1(11157b355ab4eb6627e9f322ed875332d3d77349) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "261d.c1", 0x0000000, 0x800000, CRC(9af7cbca) SHA1(cf2fe3e5265861369f2878140ef33a6715b031aa) )
+ ROM_LOAD16_BYTE( "261d.c2", 0x0000001, 0x800000, CRC(2a1f874d) SHA1(26923ec0bedba56f25e6222aa107b45ccb3def7b) )
+ ROM_LOAD16_BYTE( "261d.c3", 0x1000000, 0x800000, CRC(5403adb5) SHA1(5614ee892e810dc49758f5985b3dc4f227e01b56) )
+ ROM_LOAD16_BYTE( "261d.c4", 0x1000001, 0x800000, CRC(18926df6) SHA1(a4859c9166ef7abec1f3e6af3292051a63a81f93) )
+ROM_END
+
+ROM_START( sengoku3s )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "261s.p1", 0x000000, 0x200000, CRC(5a1b5e85) SHA1(239617385b40ae6a86f737195ec6017171157bef) )
+
+ NEO_SFIX_128K( "261s.s1", CRC(c1e27cc7) SHA1(7d38319f517059f60287a8ce393a4901719db8a9) )
+
+ NEO_BIOS_AUDIO_128K( "261d.m1", CRC(36ed9cdd) SHA1(78a7d755e9e9f52255ac6228d9d402fd6a02c126) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "261-v1.v1", 0x000000, 0x400000, CRC(64c30081) SHA1(f9ebd20cf59b72e864b7274c1bdb6d99ecaf4595) )
+ ROM_LOAD( "261-v2.v2", 0x400000, 0x400000, CRC(392a9c47) SHA1(7ab90a54089236ca6c3ef1af8e566a8025d38159) )
+ ROM_LOAD( "261-v3.v3", 0x800000, 0x400000, CRC(c1a7ebe3) SHA1(1d7bb481451f5ee0457e954bb5210300182c3c9c) )
+ ROM_LOAD( "261-v4.v4", 0xc00000, 0x200000, CRC(9000d085) SHA1(11157b355ab4eb6627e9f322ed875332d3d77349) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "261d.c1", 0x0000000, 0x800000, CRC(9af7cbca) SHA1(cf2fe3e5265861369f2878140ef33a6715b031aa) )
+ ROM_LOAD16_BYTE( "261d.c2", 0x0000001, 0x800000, CRC(2a1f874d) SHA1(26923ec0bedba56f25e6222aa107b45ccb3def7b) )
+ ROM_LOAD16_BYTE( "261d.c3", 0x1000000, 0x800000, CRC(5403adb5) SHA1(5614ee892e810dc49758f5985b3dc4f227e01b56) )
+ ROM_LOAD16_BYTE( "261d.c4", 0x1000001, 0x800000, CRC(18926df6) SHA1(a4859c9166ef7abec1f3e6af3292051a63a81f93) )
+ROM_END
+
+ROM_START( sengoku3ya ) /* Sengoku 3 - Enhance by KrysFun and Ydmis - (Can choose Byakki and Okuni - power hack)? */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "261yka.p1", 0x100000, 0x100000, CRC(dea384f6) SHA1(2adf0f2aa1605710e37f13eb8e4588645ae7f8c2) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "261d.m1", CRC(36ed9cdd) SHA1(78a7d755e9e9f52255ac6228d9d402fd6a02c126) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "261-v1.v1", 0x000000, 0x400000, CRC(64c30081) SHA1(f9ebd20cf59b72e864b7274c1bdb6d99ecaf4595) )
+ ROM_LOAD( "261-v2.v2", 0x400000, 0x400000, CRC(392a9c47) SHA1(7ab90a54089236ca6c3ef1af8e566a8025d38159) )
+ ROM_LOAD( "261-v3.v3", 0x800000, 0x400000, CRC(c1a7ebe3) SHA1(1d7bb481451f5ee0457e954bb5210300182c3c9c) )
+ ROM_LOAD( "261-v4.v4", 0xc00000, 0x200000, CRC(9000d085) SHA1(11157b355ab4eb6627e9f322ed875332d3d77349) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "261-c1.c1", 0x0000000, 0x800000, CRC(ded84d9c) SHA1(d960523b813d4fae06d716298d4e431a5c77a0c5) )
+ ROM_LOAD16_BYTE( "261-c2.c2", 0x0000001, 0x800000, CRC(b8eb4348) SHA1(619d24312549932959481fa58f43f11c048e1ca5) )
+ ROM_LOAD16_BYTE( "261-c3.c3", 0x1000000, 0x800000, CRC(84e2034a) SHA1(38ec4ae4b86933a25c9a03799b8cade4b1346401) )
+ ROM_LOAD16_BYTE( "261-c4.c4", 0x1000001, 0x800000, CRC(0b45ae53) SHA1(a19fb21408ab633aee8bbf38bf43b5e26766b355) )
+ROM_END
+
+ROM_START( sengoku3yk ) /* Sengoku 3 - Enhance by KrysFun and Ydmis - (Can choose Byakki and Okuni - power hack) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "261yk.p1", 0x100000, 0x100000, CRC(51bf63b9) SHA1(36aa9f86e7cd08286983f3a1139c642714fd049e) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "261d.m1", CRC(36ed9cdd) SHA1(78a7d755e9e9f52255ac6228d9d402fd6a02c126) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "261-v1.v1", 0x000000, 0x400000, CRC(64c30081) SHA1(f9ebd20cf59b72e864b7274c1bdb6d99ecaf4595) )
+ ROM_LOAD( "261-v2.v2", 0x400000, 0x400000, CRC(392a9c47) SHA1(7ab90a54089236ca6c3ef1af8e566a8025d38159) )
+ ROM_LOAD( "261-v3.v3", 0x800000, 0x400000, CRC(c1a7ebe3) SHA1(1d7bb481451f5ee0457e954bb5210300182c3c9c) )
+ ROM_LOAD( "261-v4.v4", 0xc00000, 0x200000, CRC(9000d085) SHA1(11157b355ab4eb6627e9f322ed875332d3d77349) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "261-c1.c1", 0x0000000, 0x800000, CRC(ded84d9c) SHA1(d960523b813d4fae06d716298d4e431a5c77a0c5) )
+ ROM_LOAD16_BYTE( "261-c2.c2", 0x0000001, 0x800000, CRC(b8eb4348) SHA1(619d24312549932959481fa58f43f11c048e1ca5) )
+ ROM_LOAD16_BYTE( "261-c3.c3", 0x1000000, 0x800000, CRC(84e2034a) SHA1(38ec4ae4b86933a25c9a03799b8cade4b1346401) )
+ ROM_LOAD16_BYTE( "261-c4.c4", 0x1000001, 0x800000, CRC(0b45ae53) SHA1(a19fb21408ab633aee8bbf38bf43b5e26766b355) )
+ROM_END
+
+
+
+GAME( 2007, sengokucd, sengoku, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Sengoku (CD conversion)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, sengoku3b, sengoku3, neogeo_noslot, neogeo, neogeo_noslot_state, sengoku3, ROT0, "Ydmis", "Sengoku 3 (Add Char)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, sengoku3c, sengoku3, neogeo_noslot, neogeo, neogeo_noslot_state, sengoku3, ROT0, "Unk", "Sengoku 3 (Add Char - Char color changed)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, sengoku3d, sengoku3, neogeo_noslot, neogeo, neogeo_hbmame, cmc42sfix, ROT0, "SNK", "Sengoku 3 (decrypted C)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, sengoku3eb, sengoku3, neogeo_noslot, neogeo, neogeo_noslot_state, sengoku3, ROT0, "hack", "Sengoku 3 (hack eb)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, sengoku3eh, sengoku3, neogeo_noslot, neogeo, neogeo_noslot_state, sengoku3, ROT0, "hack", "Sengoku 3 (Evolution Special hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, sengoku3ha, sengoku3, neogeo_noslot, neogeo, neogeo_noslot_state, sengoku3, ROT0, "HappyAsr","Sengoku 3 (Add Char - Select USA and Brazil)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, sengoku3k, sengoku3, neogeo_noslot, neogeo, neogeo_noslot_state, sengoku3, ROT0, "KrysoFun", "Sengoku 3 (Add Char - Pow hack set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, sengoku3kc, sengoku3, neogeo_noslot, neogeo, neogeo_noslot_state, sengoku3, ROT0, "Fighters Kim", "Sengoku 3 (Char color changed - 80%)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, sengoku3p, sengoku3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Krysofun", "Sengoku 3/Sengoku legends 2001 EX Super Version", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, sengoku3pl, sengoku3, neogeo_noslot, neogeo, neogeo_hbmame, sengo3d, ROT0, "Player-X", "Sengoku 3 / Sengoku Densho 2001 Plus (Hack by Player-X)" , MACHINE_SUPPORTS_SAVE )
+GAME( 2001, sengoku3s, sengoku3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Sjx", "Sengoku 3 (Evolution v1.0 hack by Sjx (FCHT))", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, sengoku3ya, sengoku3, neogeo_noslot, neogeo, neogeo_noslot_state, sengoku3, ROT0, "KrysoFun and Ydmis","Sengoku 3 (Add Char - Pow hack set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, sengoku3yk, sengoku3, neogeo_noslot, neogeo, neogeo_noslot_state, sengoku3, ROT0, "KrysoFun and Ydmis","Sengoku 3 (Add Char - Pow hack set 1)", MACHINE_SUPPORTS_SAVE )
+
+
+//PSmame
+
+
+ /*********************************
+ Sengoku 3
+**********************************/
+
+ROM_START( sengoku3s01 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "261hc01.p1", 0x000000, 0x200000, CRC(29092ccb) SHA1(03983a49d0dd5400ad531fdf3948aae572299169) )
+
+ NEO_SFIX_MT_128K
+
+ NEO_BIOS_AUDIO_128K( "261k.m1", CRC(36ed9cdd) SHA1(78a7d755e9e9f52255ac6228d9d402fd6a02c126) )
+
+ ROM_REGION( 0x0e00000, "ymsnd", 0 )
+ ROM_LOAD( "261-v1.v1", 0x000000, 0x400000, CRC(64c30081) SHA1(f9ebd20cf59b72e864b7274c1bdb6d99ecaf4595) )
+ ROM_LOAD( "261-v2.v2", 0x400000, 0x400000, CRC(392a9c47) SHA1(7ab90a54089236ca6c3ef1af8e566a8025d38159) )
+ ROM_LOAD( "261-v3.v3", 0x800000, 0x400000, CRC(c1a7ebe3) SHA1(1d7bb481451f5ee0457e954bb5210300182c3c9c) )
+ ROM_LOAD( "261-v4.v4", 0xc00000, 0x200000, CRC(9000d085) SHA1(11157b355ab4eb6627e9f322ed875332d3d77349) )
+
+ ROM_REGION( 0x2000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "261-c1.c1", 0x0000000, 0x800000, CRC(ded84d9c) SHA1(d960523b813d4fae06d716298d4e431a5c77a0c5) )
+ ROM_LOAD16_BYTE( "261-c2.c2", 0x0000001, 0x800000, CRC(b8eb4348) SHA1(619d24312549932959481fa58f43f11c048e1ca5) )
+ ROM_LOAD16_BYTE( "261-c3.c3", 0x1000000, 0x800000, CRC(84e2034a) SHA1(38ec4ae4b86933a25c9a03799b8cade4b1346401) )
+ ROM_LOAD16_BYTE( "261-c4.c4", 0x1000001, 0x800000, CRC(0b45ae53) SHA1(a19fb21408ab633aee8bbf38bf43b5e26766b355) )
+ROM_END
+
+GAME( 2001, sengoku3s01, sengoku3, neogeo_noslot, neogeo, neogeo_noslot_state, sengoku3, ROT0, "Hacks", "Sengoku 3 (Description Of Unknown Origin 01)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/ngsvc.cpp b/src/hbmame/drivers/ngsvc.cpp
new file mode 100644
index 00000000000..f65aef4655b
--- /dev/null
+++ b/src/hbmame/drivers/ngsvc.cpp
@@ -0,0 +1,3635 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+// SVCCHAOS SNK vs Capcom
+
+
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, svchb )
+{
+ DRIVER_INIT_CALL(neogeo);
+ // This is needed if s1 size > 0x20000, ignored otherwise
+ m_sprgen->m_fixed_layer_bank_type = 2;
+
+ // decrypt p roms if needed
+ u8 *ram = memregion("maincpu")->base();
+ if (ram[0x100] != 0x45)
+ {
+ //printf("Maincpu=%X\n",ram[0x100]);fflush(stdout);
+ m_pvc_prot->svc_px_decrypt(cpuregion, cpuregion_size);
+ m_pvc_prot->install_pvc_protection(m_maincpu, m_banked_cart);
+ }
+
+ // decrypt m1 if needed
+ if (memregion("audiocrypt"))
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size);
+
+ // decrypt v roms if needed
+ ram = memregion("ymsnd")->base();
+ if (ram[0x91] != 0x33)
+ {
+ //printf("ym=%X\n",ram[0x91]);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 3);
+ }
+
+ // decrypt c roms if needed
+ ram = memregion("sprites")->base();
+ if (ram[0] != 0)
+ {
+ //printf("Sprites=%X\n",ram[0]);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, SVC_GFX_KEY);
+ }
+
+ // if no s rom, copy info from end of c roms
+ ram = memregion("fixed")->base();
+ if (ram[0x100] == 0)
+ {
+ //printf("Fixed1=%X\n",ram[0x100]);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size);
+ }
+
+ // decrypt s1 if needed
+ if (ram[0x100] != 0xBB)
+ {
+ //printf("Fixed2=%X\n",ram[0]);
+ m_sma_prot->svcpcb_s1data_decrypt(fix_region, fix_region_size);
+ }
+}
+
+DRIVER_INIT_MEMBER( neogeo_hbmame, svcpcd )
+{
+ DRIVER_INIT_CALL(svchb);
+ install_banked_bios();
+}
+
+
+
+ROM_START( svccprw )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269cprw.p1", 0x000000, 0x600000, CRC(55aab0ae) SHA1(2d5a7fbe0239ab79d437158987d8fb3123469d53) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "269-m1.m1", CRC(f6819d00) SHA1(d3bbe09df502464f104e53501708ac6e2c1832c6) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269-v1.v1", 0x000000, 0x800000, CRC(c659b34c) SHA1(1931e8111ef43946f68699f8707334c96f753a1e) )
+ ROM_LOAD( "269-v2.v2", 0x800000, 0x800000, CRC(dd903835) SHA1(e58d38950a7a8697bb22a1cc7a371ae6664ae8f9) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269-c1r.c1", 0x0000000, 0x800000, CRC(887b4068) SHA1(227cdcf7a10a415f1e3afe7ae97acc9afc2cc8e1) )
+ ROM_LOAD16_BYTE( "269-c2r.c2", 0x0000001, 0x800000, CRC(4e8903e4) SHA1(31daaa4fd6c23e8f0a8428931c513d97d2eee1bd) )
+ ROM_LOAD16_BYTE( "269-c3r.c3", 0x1000000, 0x800000, CRC(7d9c55b0) SHA1(1f94a948b3e3c31b3ff05518ef525031a3cb2c62) )
+ ROM_LOAD16_BYTE( "269-c4r.c4", 0x1000001, 0x800000, CRC(8acb5bb6) SHA1(2c27d6e309646d7b84da85f78c06e4aaa74e844b) )
+ ROM_LOAD16_BYTE( "269-c5r.c5", 0x2000000, 0x800000, CRC(097a4157) SHA1(54d839f55d27f68c704a94ea3c63c644ffc22ca4) )
+ ROM_LOAD16_BYTE( "269-c6r.c6", 0x2000001, 0x800000, CRC(e19df344) SHA1(20448add53ab25dd3a8f0b681131ad3b9c68acc9) )
+ ROM_LOAD16_BYTE( "269-c7r.c7", 0x3000000, 0x800000, CRC(d8f0340b) SHA1(43114af7557361a8903bb8cf8553f602946a9220) )
+ ROM_LOAD16_BYTE( "269-c8r.c8", 0x3000001, 0x800000, CRC(2570b71b) SHA1(99266e1c2ffcf324793fb5c55325fbc7e6265ac0) )
+ROM_END
+
+ROM_START( svcd )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD32_WORD_SWAP( "269-p1.p1", 0x000000, 0x400000, CRC(38e2005e) SHA1(1b902905916a30969282f1399a756e32ff069097) )
+ ROM_LOAD32_WORD_SWAP( "269-p2.p2", 0x000002, 0x400000, CRC(6d13797c) SHA1(3cb71a95cea6b006b44cac0f547df88aec0007b7) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_128K( "269d.m1", CRC(447b3123) SHA1(a09adc2c0ee2ee0f01287ceb97474a1a58093bd2) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269-v1.v1", 0x000000, 0x800000, CRC(c659b34c) SHA1(1931e8111ef43946f68699f8707334c96f753a1e) )
+ ROM_LOAD( "269-v2.v2", 0x800000, 0x800000, CRC(dd903835) SHA1(e58d38950a7a8697bb22a1cc7a371ae6664ae8f9) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcd1 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD32_WORD_SWAP( "269-p1.p1", 0x000000, 0x400000, CRC(38e2005e) SHA1(1b902905916a30969282f1399a756e32ff069097) )
+ ROM_LOAD32_WORD_SWAP( "269-p2.p2", 0x000002, 0x400000, CRC(6d13797c) SHA1(3cb71a95cea6b006b44cac0f547df88aec0007b7) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "269-m1.m1", CRC(f6819d00) SHA1(d3bbe09df502464f104e53501708ac6e2c1832c6) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269-v1.v1", 0x000000, 0x800000, CRC(c659b34c) SHA1(1931e8111ef43946f68699f8707334c96f753a1e) )
+ ROM_LOAD( "269-v2.v2", 0x800000, 0x800000, CRC(dd903835) SHA1(e58d38950a7a8697bb22a1cc7a371ae6664ae8f9) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d1.c7", 0x3000000, 0x800000, CRC(5595b6cc) SHA1(9d6cc70f435401355b885475ccc3864825887656) )
+ ROM_LOAD16_BYTE( "269d1.c8", 0x3000001, 0x800000, CRC(b17dfcf9) SHA1(46af296b12831ee40355f52d2c316f609557d6df) )
+ROM_END
+
+ROM_START( svcee )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD32_WORD_SWAP( "269ee.p1", 0x000000, 0x400000, CRC(e622f65c) SHA1(83119c9d8059cf42e5d04dd6f65b6664e356374e) )
+ ROM_LOAD32_WORD_SWAP( "269-p2.p2", 0x000002, 0x400000, CRC(6d13797c) SHA1(3cb71a95cea6b006b44cac0f547df88aec0007b7) )
+
+ NEO_SFIX_128K( "269spjoy.s1", CRC(aaef740c) SHA1(d7ae898ac93f78b19b125e98659dcfd9ee3179b2) )
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "269-m1.m1", CRC(f6819d00) SHA1(d3bbe09df502464f104e53501708ac6e2c1832c6) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269-v1.v1", 0x000000, 0x800000, CRC(c659b34c) SHA1(1931e8111ef43946f68699f8707334c96f753a1e) )
+ ROM_LOAD( "269-v2.v2", 0x800000, 0x800000, CRC(dd903835) SHA1(e58d38950a7a8697bb22a1cc7a371ae6664ae8f9) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269-c1r.c1", 0x0000000, 0x800000, CRC(887b4068) SHA1(227cdcf7a10a415f1e3afe7ae97acc9afc2cc8e1) )
+ ROM_LOAD16_BYTE( "269-c2r.c2", 0x0000001, 0x800000, CRC(4e8903e4) SHA1(31daaa4fd6c23e8f0a8428931c513d97d2eee1bd) )
+ ROM_LOAD16_BYTE( "269-c3r.c3", 0x1000000, 0x800000, CRC(7d9c55b0) SHA1(1f94a948b3e3c31b3ff05518ef525031a3cb2c62) )
+ ROM_LOAD16_BYTE( "269-c4r.c4", 0x1000001, 0x800000, CRC(8acb5bb6) SHA1(2c27d6e309646d7b84da85f78c06e4aaa74e844b) )
+ ROM_LOAD16_BYTE( "269-c5r.c5", 0x2000000, 0x800000, CRC(097a4157) SHA1(54d839f55d27f68c704a94ea3c63c644ffc22ca4) )
+ ROM_LOAD16_BYTE( "269-c6r.c6", 0x2000001, 0x800000, CRC(e19df344) SHA1(20448add53ab25dd3a8f0b681131ad3b9c68acc9) )
+ ROM_LOAD16_BYTE( "269-c7r.c7", 0x3000000, 0x800000, CRC(d8f0340b) SHA1(43114af7557361a8903bb8cf8553f602946a9220) )
+ ROM_LOAD16_BYTE( "269-c8r.c8", 0x3000001, 0x800000, CRC(2570b71b) SHA1(99266e1c2ffcf324793fb5c55325fbc7e6265ac0) )
+ROM_END
+
+ROM_START( svcesv ) // all confirmed
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD32_WORD_SWAP( "269esv.p1", 0x000000, 0x400000, CRC(c6fd0131) SHA1(25439e469d0403439fde5d6532081a9b405bf642) )
+ ROM_LOAD32_WORD_SWAP( "269esv.p2", 0x000002, 0x400000, CRC(2adede28) SHA1(555d3a9a53f0c7e8b450f7885b0ea86abece0843) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "269-m1.m1", CRC(f6819d00) SHA1(d3bbe09df502464f104e53501708ac6e2c1832c6) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269-v1.v1", 0x000000, 0x800000, CRC(c659b34c) SHA1(1931e8111ef43946f68699f8707334c96f753a1e) )
+ ROM_LOAD( "269-v2.v2", 0x800000, 0x800000, CRC(dd903835) SHA1(e58d38950a7a8697bb22a1cc7a371ae6664ae8f9) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269stdse.c1", 0x0000000, 0x800000, CRC(03cda72a) SHA1(5557d44f191ed329256fd5dc383a7242ca30aee5) )
+ ROM_LOAD16_BYTE( "269stdse.c2", 0x0000001, 0x800000, CRC(442a7724) SHA1(8b7155978638a6656b0df9ccf7bd85be8172b167) )
+ ROM_LOAD16_BYTE( "269stdse.c3", 0x1000000, 0x800000, CRC(b311b183) SHA1(52b4c8c5530b856bbb497e5b33587cee0abfc892) )
+ ROM_LOAD16_BYTE( "269stdse.c4", 0x1000001, 0x800000, CRC(4aa13c41) SHA1(733c1434b65d2b595ba40d51045cfa523c14eefa) )
+ ROM_LOAD16_BYTE( "269stdse.c5", 0x2000000, 0x800000, CRC(1a81e716) SHA1(12d5f4128be45294aaf14461203ad99d768ad9bd) )
+ ROM_LOAD16_BYTE( "269stdse.c6", 0x2000001, 0x800000, CRC(6f346ae8) SHA1(a5561786bcdb51ffd72332c8da4a4448490a7068) )
+ ROM_LOAD16_BYTE( "269stdse.c7", 0x3000000, 0x800000, CRC(8dd412d3) SHA1(3d2afd7fc09c59537209071d049ec294f76770e5) )
+ ROM_LOAD16_BYTE( "269stdse.c8", 0x3000001, 0x800000, CRC(305ef23f) SHA1(3bdd24b075757062803ac2a6f9582bcfe0bcbb4c) )
+ROM_END
+
+ROM_START( svcg )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269g.p1", 0x000000, 0x600000, CRC(2e203ac3) SHA1(dd25d735edb7c1a30f4c6bf146ebb0f56146fad4) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svch )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269h.p1", 0x000000, 0x600000, CRC(06435efb) SHA1(115d8dbad06565cfdd6b607cc2359ec3ae5db6e0) )
+
+ //NEO_SFIX_128K( "269-s1h.bin", CRC(61ef88e5) ) rom not exist
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269h.m1", CRC(1bfa0f6f) SHA1(b59b02d73d5f9a32935db656f888caac6e622a20) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svch2 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269h2.p1", 0x000000, 0x600000, CRC(df517c7e) SHA1(dc188dbd12fc2675772817f43b004c82bafe0551) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269h.m1", CRC(1bfa0f6f) SHA1(b59b02d73d5f9a32935db656f888caac6e622a20) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcice )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269ice.p1", 0x000000, 0x600000, CRC(09bdaec5) SHA1(8d305bbaabf71129269a45f49d22132ecc170149) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269h.m1", CRC(1bfa0f6f) SHA1(b59b02d73d5f9a32935db656f888caac6e622a20) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svclspc )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269lspc.p1", 0x000000, 0x600000, CRC(347d4f95) SHA1(ae7b5061ca225f5b58ca62ba056ef57a3a993a7a) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269h.m1", CRC(1bfa0f6f) SHA1(b59b02d73d5f9a32935db656f888caac6e622a20) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcnd ) // only p1,vx,s1 confirmed
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269nd.p1", 0x000000, 0x600000, CRC(93855c0b) SHA1(03dd06ff5a11a37990bd0a9531beb44c63de2d91) )
+
+ NEO_SFIX_MT_512K
+ ROM_LOAD( "269nd.s1", 0x60000, 0x20000, CRC(ad184232) SHA1(6645d323d641004fa7a17e3b1e65613f398c95dd) )
+ ROM_CONTINUE( 0x40000, 0x20000 )
+ ROM_CONTINUE( 0x20000, 0x20000 )
+ ROM_CONTINUE( 0x00000, 0x20000 )
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "269-m1.m1", CRC(f6819d00) SHA1(d3bbe09df502464f104e53501708ac6e2c1832c6) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269pcbd.v1", 0x000000, 0x800000, CRC(ff64cd56) SHA1(e2754c554ed5ca14c2020c5d931021d5ac82660c) )
+ ROM_LOAD( "269pcbd.v2", 0x800000, 0x800000, CRC(a8dd6446) SHA1(8972aab271c33f8af344bffe6359d9ddc4b8af2e) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269pcbd.c1", 0x0000000, 0x2000000, CRC(382ce01f) SHA1(8eec32f70169de83fc15df470aba9c51c312b577) )
+ ROM_LOAD16_BYTE( "269pcbd.c2", 0x0000001, 0x2000000, CRC(88ad01ec) SHA1(da223bc09aa465ea6c15954c45fefbf3ee79a4d7) )
+ROM_END
+
+ROM_START( svcnh )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269nh.p1", 0x000000, 0x600000, CRC(9c3f7cc1) SHA1(26143425f2ca931708cafb4cf52ce880ac163d50) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269h.m1", CRC(1bfa0f6f) SHA1(b59b02d73d5f9a32935db656f888caac6e622a20) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269nh.c7", 0x3000000, 0x800000, CRC(05fecd16) SHA1(5619c759bb52a5f35ebb57916a085555f5da18aa) )
+ ROM_LOAD16_BYTE( "269nh.c8", 0x3000001, 0x800000, CRC(a911afa9) SHA1(804fc1ea22f937edbd0418eebf5547d6fc9c57d1) )
+ROM_END
+
+ROM_START( svcpcbd ) // JAMMA
+ ROM_REGION( 0x2000000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269-p1.p1", 0x000000, 0x2000000, CRC(432cfdfc) SHA1(19b40d32188a8bace6d2d570c6cf3d2f1e31e379) )
+
+ NEO_SFIX_MT_512K
+
+ ROM_REGION16_BE( 0x80000, "mainbios", 0 )
+ /* this contains both an ASIA and JAPAN bios, HARDDIP3 on the PCB selects which to use */
+ ROM_LOAD16_WORD_SWAP( "sp-4x.sp1", 0x00000, 0x80000, CRC(b4590283) SHA1(47047ed5b6062babc0a0bebcc30e4b3f021e115a) )
+
+ ROM_REGION( 0x80000, "audiocrypt", 0 )
+ ROM_LOAD( "269-m1.m1", 0x00000, 0x80000, CRC(f6819d00) SHA1(d3bbe09df502464f104e53501708ac6e2c1832c6) )
+ ROM_REGION( 0x90000, "audiocpu", ROMREGION_ERASEFF )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269pcbd.v1", 0x000000, 0x800000, CRC(ff64cd56) SHA1(e2754c554ed5ca14c2020c5d931021d5ac82660c) )
+ ROM_LOAD( "269pcbd.v2", 0x800000, 0x800000, CRC(a8dd6446) SHA1(8972aab271c33f8af344bffe6359d9ddc4b8af2e) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269pcbd.c1", 0x0000000, 0x2000000, CRC(382ce01f) SHA1(8eec32f70169de83fc15df470aba9c51c312b577) )
+ ROM_LOAD16_BYTE( "269pcbd.c2", 0x0000001, 0x2000000, CRC(88ad01ec) SHA1(da223bc09aa465ea6c15954c45fefbf3ee79a4d7) )
+ROM_END
+
+ROM_START( svcplusa2016 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269pa2016.p1", 0x000000, 0x454f9c, CRC(65471e6c) SHA1(32e07ec3d415940b3e1204e9e2ef00da60b4a685) )
+ ROM_LOAD16_WORD_SWAP( "269pa2016.p2", 0x200000, 0x400000, CRC(f78b0e9e) SHA1(839091db9ecfc6720fa28790fca7c6c057ff42a7) )
+ ROM_IGNORE( 0x054f62 )
+
+ NEO_SFIX_MT_128K
+ ROM_LOAD( "svc-s1pl.bin", 0x10000, 0x10000, CRC(ca3c735e) SHA1(aebd15253c90432a2e0a4c40f37110c1e2176ee4) )
+ ROM_CONTINUE( 0x00000, 0x10000 )
+
+ NEOGEO_BIOS
+
+ ROM_REGION( 0x20000, "audiobios", 0 )
+ ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) )
+
+ ROM_REGION( 0x50000, "audiocpu", 0 )
+ ROM_LOAD( "svc-m1.bin", 0x20000, 0x10000, CRC(804328c3) SHA1(f931636c563b0789d4812033a77b47bf663db43f) )
+ ROM_CONTINUE( 0x00000, 0x10000 )
+ ROM_COPY( "audiocpu", 0x000000, 0x10000, 0x10000 )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD16_WORD_SWAP( "svc-v2.bin", 0x000000, 0x400000, CRC(b5097287) SHA1(3ba3a9b5624879616382ed40337a3d9c50a0f314) )
+ ROM_LOAD16_WORD_SWAP( "svc-v1.bin", 0x400000, 0x400000, CRC(bd3a391f) SHA1(972bf09b75e99a683ee965bec93b0da8f15d72d9) )
+ ROM_LOAD16_WORD_SWAP( "svc-v4.bin", 0x800000, 0x400000, CRC(33fc0b37) SHA1(d61017d829f44c7df8795ba10c55c727d9972662) )
+ ROM_LOAD16_WORD_SWAP( "svc-v3.bin", 0xc00000, 0x400000, CRC(aa9849a0) SHA1(9539b3356a070a066a89f27c287f316e7367ce2a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "svc-c1.bin", 0x0000000, 0x800000, CRC(a7826b89) SHA1(3bbe348ce54b80b56ef032ea532a18ef3cafeb11) )
+ ROM_LOAD16_BYTE( "svc-c2.bin", 0x0000001, 0x800000, CRC(ed3c2089) SHA1(b5d17692f15f5a678c273589fab2e3918711135e) )
+ ROM_LOAD16_BYTE( "svc-c3.bin", 0x1000000, 0x800000, CRC(71ed8063) SHA1(ea1df9e2e382a8560a06d447421844cc588f43dd) )
+ ROM_LOAD16_BYTE( "svc-c4.bin", 0x1000001, 0x800000, CRC(250bde2d) SHA1(8c72dcfceef6d022ab4b73ab37cf3ac0c3940c17) )
+ ROM_LOAD16_BYTE( "svc-c5.bin", 0x2000000, 0x800000, CRC(9817c082) SHA1(1bea9c7220c2b1524896c86841d6d8fd55f5d366) )
+ ROM_LOAD16_BYTE( "svc-c6.bin", 0x2000001, 0x800000, CRC(2bc0307f) SHA1(8090fa82c46eb503832359093c8cc3cee3141c90) )
+ ROM_LOAD16_BYTE( "svc-c7.bin", 0x3000000, 0x800000, CRC(4358d7b9) SHA1(9270b58c2abc072a046bedda72f1395df26d0714) )
+ ROM_LOAD16_BYTE( "svc-c8.bin", 0x3000001, 0x800000, CRC(366deee5) SHA1(d477ad7a5987fd6c7ef2c1680fbb7c884654590e) )
+ROM_END
+
+ROM_START( svcplusb )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269plusb.p1", 0x000000, 0x600000, CRC(5D738F9A) SHA1(10AD161D6DE285659DCAEBBEA4AA2B384341E14D) )
+
+ NEO_SFIX_MT_512K
+ ROM_LOAD( "269plusb.s1", 0x60000, 0x20000, CRC(06125f98) SHA1(69ba2625c90bb09abf64f6d49d88d2ac2f1ee9ca) )
+ ROM_CONTINUE( 0x40000, 0x20000 )
+ ROM_CONTINUE( 0x20000, 0x20000 )
+ ROM_CONTINUE( 0x00000, 0x20000 )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcplusd ) // only p1,vx,cx confirmed
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269plusd.p1", 0x000000, 0x600000, CRC(2a57e4d4) SHA1(09fec6b376adfb2b051cd281f66b483e2deffa60) )
+
+ NEO_SFIX_MT_512K // This one contains PLUS logo
+ ROM_LOAD( "269plusb.s1", 0x60000, 0x20000, CRC(06125f98) SHA1(69ba2625c90bb09abf64f6d49d88d2ac2f1ee9ca) )
+ ROM_CONTINUE( 0x40000, 0x20000 )
+ ROM_CONTINUE( 0x20000, 0x20000 )
+ ROM_CONTINUE( 0x00000, 0x20000 )
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "269-m1.m1", CRC(f6819d00) SHA1(d3bbe09df502464f104e53501708ac6e2c1832c6) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269pcbd.v1", 0x000000, 0x800000, CRC(ff64cd56) SHA1(e2754c554ed5ca14c2020c5d931021d5ac82660c) )
+ ROM_LOAD( "269pcbd.v2", 0x800000, 0x800000, CRC(a8dd6446) SHA1(8972aab271c33f8af344bffe6359d9ddc4b8af2e) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269pcbd.c1", 0x0000000, 0x2000000, CRC(382ce01f) SHA1(8eec32f70169de83fc15df470aba9c51c312b577) )
+ ROM_LOAD16_BYTE( "269pcbd.c2", 0x0000001, 0x2000000, CRC(88ad01ec) SHA1(da223bc09aa465ea6c15954c45fefbf3ee79a4d7) )
+ROM_END
+
+ROM_START( svcplusg )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269plusg.p1", 0x000000, 0x600000, CRC(eb4d57e1) SHA1(f3d300667df9308fad04f158af77784894c87f13) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcplusp )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269plusp.p1", 0x000000, 0x600000, CRC(91ee8143) SHA1(68742527ae31d8a0c2b6fa3dc91cdf7b018f2a56) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "269-m1.m1", CRC(f6819d00) SHA1(d3bbe09df502464f104e53501708ac6e2c1832c6) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269-v1.v1", 0x000000, 0x800000, CRC(c659b34c) SHA1(1931e8111ef43946f68699f8707334c96f753a1e) )
+ ROM_LOAD( "269-v2.v2", 0x800000, 0x800000, CRC(dd903835) SHA1(e58d38950a7a8697bb22a1cc7a371ae6664ae8f9) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d1.c7", 0x3000000, 0x800000, CRC(5595b6cc) SHA1(9d6cc70f435401355b885475ccc3864825887656) )
+ ROM_LOAD16_BYTE( "269d1.c8", 0x3000001, 0x800000, CRC(b17dfcf9) SHA1(46af296b12831ee40355f52d2c316f609557d6df) )
+ROM_END
+
+ROM_START( svcplusp2 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269plusp2.p1", 0x000000, 0x600000, CRC(9c8877e6) SHA1(3e8a104ac80daaf3cea641580e249b45402f2822) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "269-m1.m1", CRC(f6819d00) SHA1(d3bbe09df502464f104e53501708ac6e2c1832c6) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269-v1.v1", 0x000000, 0x800000, CRC(c659b34c) SHA1(1931e8111ef43946f68699f8707334c96f753a1e) )
+ ROM_LOAD( "269-v2.v2", 0x800000, 0x800000, CRC(dd903835) SHA1(e58d38950a7a8697bb22a1cc7a371ae6664ae8f9) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d1.c7", 0x3000000, 0x800000, CRC(5595b6cc) SHA1(9d6cc70f435401355b885475ccc3864825887656) )
+ ROM_LOAD16_BYTE( "269d1.c8", 0x3000001, 0x800000, CRC(b17dfcf9) SHA1(46af296b12831ee40355f52d2c316f609557d6df) )
+ROM_END
+
+ROM_START( svcpryu )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269pryu.p1", 0x000000, 0x600000, CRC(2088fa5c) SHA1(a60c01aef8532825dfde4a6ccc7c97692dd70e64) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269pryu.m1", CRC(dcc67f10) SHA1(acdd75144f90d2b135181a4fd2c6c72c240c66b0) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcps2 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269ps2.p1", 0x000000, 0x600000, CRC(aa15036f) SHA1(e57df12f02d2a7fa2b5eda99c90ae49c3ced44b0) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269h.m1", CRC(1bfa0f6f) SHA1(b59b02d73d5f9a32935db656f888caac6e622a20) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "svcps2_c7.rom", 0x3000000, 0x800000, CRC(361c97ab) SHA1(3b3672630c54ddbee38932f7d27d27d71e9fe19c) )
+ ROM_LOAD16_BYTE( "svcps2_c8.rom", 0x3000001, 0x800000, CRC(1a16e266) SHA1(3d6a07716b79b62c8f2240c8be83d662b35f615a) )
+ROM_END
+
+ROM_START( svcrm ) // same as svccpru
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269rm.p1", 0x000000, 0x600000, CRC(9d39234f) SHA1(a28ba0b53a9f7dc2d0b3dfd22025ebddbd8c99af) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcryu )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269ryu.p1", 0x000000, 0x600000, CRC(259b3b42) SHA1(ed74b38046babbf09ca671d3405feed20d2e8a30) )
+
+ NEO_SFIX_128K( "269spjoy.s1", CRC(aaef740c) SHA1(d7ae898ac93f78b19b125e98659dcfd9ee3179b2) )
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "269-m1.m1", CRC(f6819d00) SHA1(d3bbe09df502464f104e53501708ac6e2c1832c6) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269-v1.v1", 0x000000, 0x800000, CRC(c659b34c) SHA1(1931e8111ef43946f68699f8707334c96f753a1e) )
+ ROM_LOAD( "269-v2.v2", 0x800000, 0x800000, CRC(dd903835) SHA1(e58d38950a7a8697bb22a1cc7a371ae6664ae8f9) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269-c1r.c1", 0x0000000, 0x800000, CRC(887b4068) SHA1(227cdcf7a10a415f1e3afe7ae97acc9afc2cc8e1) )
+ ROM_LOAD16_BYTE( "269-c2r.c2", 0x0000001, 0x800000, CRC(4e8903e4) SHA1(31daaa4fd6c23e8f0a8428931c513d97d2eee1bd) )
+ ROM_LOAD16_BYTE( "269-c3r.c3", 0x1000000, 0x800000, CRC(7d9c55b0) SHA1(1f94a948b3e3c31b3ff05518ef525031a3cb2c62) )
+ ROM_LOAD16_BYTE( "269-c4r.c4", 0x1000001, 0x800000, CRC(8acb5bb6) SHA1(2c27d6e309646d7b84da85f78c06e4aaa74e844b) )
+ ROM_LOAD16_BYTE( "269-c5r.c5", 0x2000000, 0x800000, CRC(097a4157) SHA1(54d839f55d27f68c704a94ea3c63c644ffc22ca4) )
+ ROM_LOAD16_BYTE( "269-c6r.c6", 0x2000001, 0x800000, CRC(e19df344) SHA1(20448add53ab25dd3a8f0b681131ad3b9c68acc9) )
+ ROM_LOAD16_BYTE( "269-c7r.c7", 0x3000000, 0x800000, CRC(d8f0340b) SHA1(43114af7557361a8903bb8cf8553f602946a9220) )
+ ROM_LOAD16_BYTE( "269-c8r.c8", 0x3000001, 0x800000, CRC(2570b71b) SHA1(99266e1c2ffcf324793fb5c55325fbc7e6265ac0) )
+ROM_END
+
+ROM_START( svcspjoy ) // There is no INSERT COIN message
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269spjoy.p1", 0x000000, 0x600000, CRC(d41e031a) SHA1(96c9bd0caf8d1d9db5d75012db180be225801765) )
+
+ NEO_SFIX_128K( "269spjoy.s1", CRC(aaef740c) SHA1(d7ae898ac93f78b19b125e98659dcfd9ee3179b2) )
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "269-m1.m1", CRC(f6819d00) SHA1(d3bbe09df502464f104e53501708ac6e2c1832c6) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269-v1.v1", 0x000000, 0x800000, CRC(c659b34c) SHA1(1931e8111ef43946f68699f8707334c96f753a1e) )
+ ROM_LOAD( "269-v2.v2", 0x800000, 0x800000, CRC(dd903835) SHA1(e58d38950a7a8697bb22a1cc7a371ae6664ae8f9) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269-c1r.c1", 0x0000000, 0x800000, CRC(887b4068) SHA1(227cdcf7a10a415f1e3afe7ae97acc9afc2cc8e1) )
+ ROM_LOAD16_BYTE( "269-c2r.c2", 0x0000001, 0x800000, CRC(4e8903e4) SHA1(31daaa4fd6c23e8f0a8428931c513d97d2eee1bd) )
+ ROM_LOAD16_BYTE( "269-c3r.c3", 0x1000000, 0x800000, CRC(7d9c55b0) SHA1(1f94a948b3e3c31b3ff05518ef525031a3cb2c62) )
+ ROM_LOAD16_BYTE( "269-c4r.c4", 0x1000001, 0x800000, CRC(8acb5bb6) SHA1(2c27d6e309646d7b84da85f78c06e4aaa74e844b) )
+ ROM_LOAD16_BYTE( "269-c5r.c5", 0x2000000, 0x800000, CRC(097a4157) SHA1(54d839f55d27f68c704a94ea3c63c644ffc22ca4) )
+ ROM_LOAD16_BYTE( "269-c6r.c6", 0x2000001, 0x800000, CRC(e19df344) SHA1(20448add53ab25dd3a8f0b681131ad3b9c68acc9) )
+ ROM_LOAD16_BYTE( "269-c7r.c7", 0x3000000, 0x800000, CRC(d8f0340b) SHA1(43114af7557361a8903bb8cf8553f602946a9220) )
+ ROM_LOAD16_BYTE( "269-c8r.c8", 0x3000001, 0x800000, CRC(2570b71b) SHA1(99266e1c2ffcf324793fb5c55325fbc7e6265ac0) )
+ROM_END
+
+ROM_START( svcsplus2016 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "svc-p1sp.bin", 0x000000, 0x400000, CRC(2601902f) SHA1(202348a13c6480f7de37a3ee983823838822fc98) )
+ ROM_LOAD16_WORD_SWAP( "269sp2016.p2", 0x400000, 0x400000, CRC(c30b4d6c) SHA1(5bd2cc39e988e2c8c92e0df3f75b8343cec5b09c) )
+ ROM_IGNORE( 0x054f4c )
+
+ NEO_SFIX_128K( "svc-s1sp.bin", CRC(233d6439) SHA1(369024c7a2405c3144c14ac016c07c3dc0f44187) )
+
+ NEOGEO_BIOS
+
+ ROM_REGION( 0x20000, "audiobios", 0 )
+ ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) )
+
+ ROM_REGION( 0x50000, "audiocpu", 0 )
+ ROM_LOAD( "svc-m1.bin", 0x20000, 0x10000, CRC(804328c3) SHA1(f931636c563b0789d4812033a77b47bf663db43f) )
+ ROM_CONTINUE( 0x00000, 0x10000 )
+ ROM_COPY( "audiocpu", 0x000000, 0x10000, 0x10000 )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD16_WORD_SWAP( "svc-v2.bin", 0x000000, 0x400000, CRC(b5097287) SHA1(3ba3a9b5624879616382ed40337a3d9c50a0f314) )
+ ROM_LOAD16_WORD_SWAP( "svc-v1.bin", 0x400000, 0x400000, CRC(bd3a391f) SHA1(972bf09b75e99a683ee965bec93b0da8f15d72d9) )
+ ROM_LOAD16_WORD_SWAP( "svc-v4.bin", 0x800000, 0x400000, CRC(33fc0b37) SHA1(d61017d829f44c7df8795ba10c55c727d9972662) )
+ ROM_LOAD16_WORD_SWAP( "svc-v3.bin", 0xc00000, 0x400000, CRC(aa9849a0) SHA1(9539b3356a070a066a89f27c287f316e7367ce2a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "svc-c1.bin", 0x0000000, 0x800000, CRC(a7826b89) SHA1(3bbe348ce54b80b56ef032ea532a18ef3cafeb11) )
+ ROM_LOAD16_BYTE( "svc-c2.bin", 0x0000001, 0x800000, CRC(ed3c2089) SHA1(b5d17692f15f5a678c273589fab2e3918711135e) )
+ ROM_LOAD16_BYTE( "svc-c3.bin", 0x1000000, 0x800000, CRC(71ed8063) SHA1(ea1df9e2e382a8560a06d447421844cc588f43dd) )
+ ROM_LOAD16_BYTE( "svc-c4.bin", 0x1000001, 0x800000, CRC(250bde2d) SHA1(8c72dcfceef6d022ab4b73ab37cf3ac0c3940c17) )
+ ROM_LOAD16_BYTE( "svc-c5.bin", 0x2000000, 0x800000, CRC(9817c082) SHA1(1bea9c7220c2b1524896c86841d6d8fd55f5d366) )
+ ROM_LOAD16_BYTE( "svc-c6.bin", 0x2000001, 0x800000, CRC(2bc0307f) SHA1(8090fa82c46eb503832359093c8cc3cee3141c90) )
+ ROM_LOAD16_BYTE( "svc-c7.bin", 0x3000000, 0x800000, CRC(4358d7b9) SHA1(9270b58c2abc072a046bedda72f1395df26d0714) )
+ ROM_LOAD16_BYTE( "svc-c8.bin", 0x3000001, 0x800000, CRC(366deee5) SHA1(d477ad7a5987fd6c7ef2c1680fbb7c884654590e) )
+ROM_END
+
+ROM_START( svcspryu )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269spryu.p1", 0x000000, 0x600000, CRC(4f15b6b3) SHA1(651e5340b5442ff6cd9b6a325ea6ad8abc116cfb) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269pryu.m1", CRC(dcc67f10) SHA1(acdd75144f90d2b135181a4fd2c6c72c240c66b0) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcstdse )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD32_WORD_SWAP( "269stdse.p1", 0x000000, 0x400000, CRC(5855b459) SHA1(11c63394a7662af04126897490e617f44d08f8b2) )
+ ROM_LOAD32_WORD_SWAP( "269stdse.p2", 0x000002, 0x400000, CRC(19c8575e) SHA1(8deb062ac95e2e117dd1048472130c540276d82b) )
+
+ NEO_SFIX_MT_512K
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "269-m1.m1", CRC(f6819d00) SHA1(d3bbe09df502464f104e53501708ac6e2c1832c6) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269-v1.v1", 0x000000, 0x800000, CRC(c659b34c) SHA1(1931e8111ef43946f68699f8707334c96f753a1e) )
+ ROM_LOAD( "269-v2.v2", 0x800000, 0x800000, CRC(dd903835) SHA1(e58d38950a7a8697bb22a1cc7a371ae6664ae8f9) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269stdse.c1", 0x0000000, 0x800000, CRC(03cda72a) SHA1(5557d44f191ed329256fd5dc383a7242ca30aee5) )
+ ROM_LOAD16_BYTE( "269stdse.c2", 0x0000001, 0x800000, CRC(442a7724) SHA1(8b7155978638a6656b0df9ccf7bd85be8172b167) )
+ ROM_LOAD16_BYTE( "269stdse.c3", 0x1000000, 0x800000, CRC(b311b183) SHA1(52b4c8c5530b856bbb497e5b33587cee0abfc892) )
+ ROM_LOAD16_BYTE( "269stdse.c4", 0x1000001, 0x800000, CRC(4aa13c41) SHA1(733c1434b65d2b595ba40d51045cfa523c14eefa) )
+ ROM_LOAD16_BYTE( "269stdse.c5", 0x2000000, 0x800000, CRC(1a81e716) SHA1(12d5f4128be45294aaf14461203ad99d768ad9bd) )
+ ROM_LOAD16_BYTE( "269stdse.c6", 0x2000001, 0x800000, CRC(6f346ae8) SHA1(a5561786bcdb51ffd72332c8da4a4448490a7068) )
+ ROM_LOAD16_BYTE( "269stdse.c7", 0x3000000, 0x800000, CRC(8dd412d3) SHA1(3d2afd7fc09c59537209071d049ec294f76770e5) )
+ ROM_LOAD16_BYTE( "269stdse.c8", 0x3000001, 0x800000, CRC(305ef23f) SHA1(3bdd24b075757062803ac2a6f9582bcfe0bcbb4c) )
+ROM_END
+
+ROM_START( svcxlb )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269xlb.p1", 0x000000, 0x600000, CRC(10bf1b9d) SHA1(461f94eed59b9642aee92f8d8d65aeb8b355ab54) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "269-m1.m1", CRC(f6819d00) SHA1(d3bbe09df502464f104e53501708ac6e2c1832c6) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269-v1.v1", 0x000000, 0x800000, CRC(c659b34c) SHA1(1931e8111ef43946f68699f8707334c96f753a1e) )
+ ROM_LOAD( "269-v2.v2", 0x800000, 0x800000, CRC(dd903835) SHA1(e58d38950a7a8697bb22a1cc7a371ae6664ae8f9) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d1.c7", 0x3000000, 0x800000, CRC(5595b6cc) SHA1(9d6cc70f435401355b885475ccc3864825887656) )
+ ROM_LOAD16_BYTE( "269d1.c8", 0x3000001, 0x800000, CRC(b17dfcf9) SHA1(46af296b12831ee40355f52d2c316f609557d6df) )
+ROM_END
+
+
+
+GAME( 2003, svccprw, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Wesker", "SvC Chaos (Plus Remix v2.0 hack by Wesker)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, svcd, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "hack", "SvC Chaos (decrypted C set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, svcd1, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "hack", "SvC Chaos (decrypted C set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2008, svcee, svc, neogeo_noslot, neogeo, neogeo_noslot_state, svc, ROT0, "Ethan H", "SvC Chaos (Hack by Ethen.H(EGHT) 2008-01-21)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, svcesv, svc, neogeo_noslot, neogeo, neogeo_noslot_state, svc, ROT0, "hack", "SvC Chaos (unknown esv)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, svcg, svc, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "SvC Chaos (Boss Special Kyo Green Edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, svch, svc, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "chbandy", "SvC Chaos (Remix V1.0 by chbandy)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, svch2, svc, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "chbandy", "SvC Chaos (Remix v1.1 by chbandy)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, svcice, svc, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "SvC Chaos (Ice Edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, svclspc, svc, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "SvC Chaos (Pink Edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, svcnd, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "hack", "SvC Chaos (unknown nd)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, svcnh, svc, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "SvC Chaos (Like PS2 Version old)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, svcpcbd, svcpcb, neogeo_noslot, dualbios, neogeo_hbmame, svcpcd, ROT0, "hack", "SvC Chaos (JAMMA PCB, decrypted C & V)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, svcplusa2016, svc, neogeo_noslot, neogeo, neogeo_noslot_state, svcplusa, ROT0, "hack", "SvC Chaos PLUS (2016)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, svcplusb, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "hack", "SvC Chaos PLUS (Bootleg, set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, svcplusd, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "hack", "SvC Chaos PLUS (unknown plusd)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, svcplusg, svc, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "SvC Chaos (Plus Special)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, svcplusp, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Kawada7278", "SvC Chaos (Plus Purple Fire hack by Kawada7278 set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, svcplusp2, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Kawada7278", "SvC Chaos (Plus Purple Fire hack by Kawada7278 set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, svcpryu, svc, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "SvC Plus (Koryu)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, svcps2, svc, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "EGHT", "SvC Playstation2 Hack Final 1.02 (EGHT)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, svcrm, svc, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Jason", "SvC REMIX ULTRA (Ver 1.2 by Jason)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, svcryu, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Gordon", "SvC Chaos (Ryu BT Revision hack by Gordon)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, svcspjoy, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "hack", "SvC Chaos (Super Plus Joy Modified hack by Wesker/Jason/K3)", MACHINE_SUPPORTS_SAVE )
+GAME( 2016, svcsplus2016, svc, neogeo_noslot, neogeo, neogeo_noslot_state, svcsplus, ROT0, "hack", "SvC Chaos Super Plus (2016)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, svcspryu, svc, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "SvC Plus (Super Koryu)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, svcstdse, svc, neogeo_noslot, neogeo, neogeo_noslot_state, svc, ROT0, "hack", "SvC Chaos (Subdue the Dragon Super Edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, svcxlb, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "LB70", "SvC Chaos (Knife Millennium Turbidity v1.0 hack by Lb70)", MACHINE_SUPPORTS_SAVE )
+
+
+//PSmame
+
+
+ROM_START( svcs01 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc01.p1", 0x000000, 0x600000, CRC(2c3217a6) SHA1(8a5456e37cd36e2b84b39cecd2b6d25ec5e9d00f) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269hc01.m1", CRC(6f392dc4) SHA1(82008639e28b48c8d6a9ca65dee9ac0c89a49b45) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs02 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc02.p1", 0x000000, 0x600000, CRC(882a1791) SHA1(b602b24778adaed1ab8aafceffac40e46a92d370) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs03 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc03.p1", 0x000000, 0x600000, CRC(db6b8f76) SHA1(e7b8e0b80535900e62a91b229ed5aa8c97ae7452) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs04 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc04.p1", 0x000000, 0x600000, CRC(d74e51c6) SHA1(be63b69dca300f054637ed32c210e42a2590cf67) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs05 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc05.p1", 0x000000, 0x600000, CRC(99c9ea57) SHA1(4f09a82fc63441f7747b7dae4fc2fe24305625d8) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269hc05.m1", CRC(9af84708) SHA1(16f998fc344f13703ada5a69a22bc00aac97116c) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs06 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc06.p1", 0x000000, 0x600000, CRC(f659b371) SHA1(821f7fd965ddb6010f1a9645facc5091172b852a) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs07 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc07.p1", 0x000000, 0x600000, CRC(a1d1b540) SHA1(64d3f8c19310dfa9b6ad56e2d69345e0f25345dd) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs08 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc08.p1", 0x000000, 0x600000, CRC(67657a1d) SHA1(3f1d26821ba7799d6d4713bb037cfc204123db5b) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs09 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc09.p1", 0x000000, 0x600000, CRC(283f2f08) SHA1(36a029882b5eec4104cf9fce41a68d6b8a400cfa) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs10 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc10.p1", 0x000000, 0x600000, CRC(093554d6) SHA1(af06c77349aebf34524e1b893c97a687f5a66ef5) )
+
+ NEO_SFIX_128K( "269hc10.s1", CRC(3334ac31) SHA1(ea7c676d5913ca1d524bd3df3d98f216564cfbb5) )
+
+ NEO_BIOS_AUDIO_128K( "269hc10.m1", CRC(7f01dac5) SHA1(5ad76daf38775c72c91cfc7c7cc57c560ef39156) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs11 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc11.p1", 0x000000, 0x600000, CRC(4b26a8fc) SHA1(87434663c7e2ee344f0e17dd22b0dec2c4e573a4) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs12 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc12.p1", 0x000000, 0x600000, CRC(da64a614) SHA1(e496999660d8956453a9e9d188edeef9b38255db) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs13 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc13.p1", 0x000000, 0x600000, CRC(d005c51e) SHA1(58448f977b1c402481000bebf388a68c57c035df) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs14 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc14.p1", 0x000000, 0x600000, CRC(14d78dd1) SHA1(02d499652c86730af3a0c53514d05812f8d59ef6) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs15 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc15.p1", 0x000000, 0x600000, CRC(3332975d) SHA1(0609c6e2efa7a3cda9a016b3aa3b67c3646a7dbe) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs16 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc16.p1", 0x000000, 0x600000, CRC(bd3a87cc) SHA1(5ab8789eb53636b5ffd30baf8b49b86ea8700f35) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs17 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc17.p1", 0x000000, 0x600000, CRC(7bdc4420) SHA1(d1c9859efb9d3910ac6fb015678051a0384c79e6) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs18 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc18.p1", 0x000000, 0x600000, CRC(9b0cfe4c) SHA1(e65c738613336f584125eaae1791b8be61af6af0) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs19 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc19.p1", 0x000000, 0x600000, CRC(52b29a2f) SHA1(05eff8c7579b4f69b212cd59e15a664821386aed) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs20 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc20.p1", 0x000000, 0x600000, CRC(9413a42e) SHA1(ffb599d3c1bbc42b767a516feeb504692341486c) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs21 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc21.p1", 0x000000, 0x600000, CRC(417103f5) SHA1(43bf9b6ee83a2ab4a1167de4f3366490f361f11d) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs22 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc22.p1", 0x000000, 0x600000, CRC(1d33f656) SHA1(e19f60b92050a31241c409315bef3bc61006b515) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs23 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc23.p1", 0x000000, 0x600000, CRC(52a4217d) SHA1(71e3d89f58761129548db900f616504ba4d88998) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs24 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc24.p1", 0x000000, 0x600000, CRC(fb697084) SHA1(59ece3a18e693230ee5e927e189d73c53cae84e8) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs25 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc25.p1", 0x000000, 0x600000, CRC(5a5dcc07) SHA1(2de95f65a640a6d509c10e9e5748130b84ee5f3f) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs26 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc26.p1", 0x000000, 0x600000, CRC(244d0bd0) SHA1(d5319fbde6b09dec310af7511c7a83826b5d6bb5) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs27 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc27.p1", 0x000000, 0x600000, CRC(397e7f8e) SHA1(b0328754fb1bcad0385d2e9e1aa1f70777953793) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs28 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc28.p1", 0x000000, 0x600000, CRC(78441494) SHA1(edc30b6ab7ba5e003d60511da32483900817f646) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs29 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc29.p1", 0x000000, 0x600000, CRC(0db30654) SHA1(c4c7c86c1c3ca0b35d81f5ea3d8d236fe62dd7ca) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs30 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc30.p1", 0x000000, 0x600000, CRC(035ce833) SHA1(1322a08020667a96033027569965a0b189ba0ba5) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs31 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc31.p1", 0x000000, 0x600000, CRC(4419f19e) SHA1(61174dc5e5a198d7669092695f3fcb50a962d85c) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs32 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc32.p1", 0x000000, 0x600000, CRC(73b78fcc) SHA1(10a6227295ed9895ba2112471c9a8cdf83aba71b) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs33 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc33.p1", 0x000000, 0x600000, CRC(0e2b56e0) SHA1(0ad169ee000cddfaef48049b498882e6da3ae32a) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs34 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc34.p1", 0x000000, 0x600000, CRC(ddf6dcc2) SHA1(f6cd1c121adc1e08057432cf57c484b22b248306) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs35 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc35.p1", 0x000000, 0x600000, CRC(20822038) SHA1(ef7cbafa628579ebdb9981e58c3e24dde49e7e61) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs36 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc36.p1", 0x000000, 0x600000, CRC(f429e90a) SHA1(bc696bfadb8f3d14eb261eb529fcc1e0712b5bf2) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269pryu.m1", CRC(dcc67f10) SHA1(acdd75144f90d2b135181a4fd2c6c72c240c66b0) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs37 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc37.p1", 0x000000, 0x600000, CRC(4c337308) SHA1(b2e09fec1d56620697d7dbe347ce8749bfe99846) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs38 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc38.p1", 0x000000, 0x600000, CRC(06a2f4a7) SHA1(23ad20bad7f38415356db086f97438246e2246cd) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs39 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc39.p1", 0x000000, 0x600000, CRC(a2acadfe) SHA1(d3199c75000eb7142fd8119cd440de7971c853ed) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs40 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc40.p1", 0x000000, 0x600000, CRC(5fbdc146) SHA1(0fdb155c312115c3ab4b6751f912d835fd48fba8) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs41 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc41.p1", 0x000000, 0x600000, CRC(5689265e) SHA1(136059edee39be442847f4f87f9cc3fd7a3219f3) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs42 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc42.p1", 0x000000, 0x600000, CRC(dcdf091e) SHA1(7aed1fa3f021fc86125e1cd7284f5c6bc704f45c) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs43 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc43.p1", 0x000000, 0x600000, CRC(809dfcbd) SHA1(2c5e2660225b159b012c0626439739e5a6c270b3) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs44 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc44.p1", 0x000000, 0x600000, CRC(66c77a6f) SHA1(e8f24ca96cf9234f9536000e37484074c4266182) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs45 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc45.p1", 0x000000, 0x600000, CRC(c7f3c6ec) SHA1(a0372d58c59e18a79f3cd522978878c4aa59db71) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs46 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc46.p1", 0x000000, 0x600000, CRC(c35ccd0f) SHA1(fb1ed5fd37e346670cba3929dbaa934975ffd234) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs47 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc47.p1", 0x000000, 0x600000, CRC(5e6b7874) SHA1(b3123bac1cfa4d1a7695a3f3b19783b27c2b51d2) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs48 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc48.p1", 0x000000, 0x600000, CRC(74e78ea7) SHA1(f890a4f15996726c8ae7070c9c441a3e1ec08c79) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs49 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc49.p1", 0x000000, 0x600000, CRC(7e4789f8) SHA1(ba39666b9916fc52d89a1e4a5ba607d8283f0b6d) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269spjoy.m1", CRC(aaef740c) SHA1(d7ae898ac93f78b19b125e98659dcfd9ee3179b2) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs50 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc50.p1", 0x000000, 0x600000, CRC(73ef37c3) SHA1(808ff074e11433d73db873bbf1b8ffda3ef8a4e0) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs51 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc51.p1", 0x000000, 0x600000, CRC(590f022a) SHA1(5080d6e796342f78978a2869fdcbe81e55afe90c) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs52 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc52.p1", 0x000000, 0x600000, CRC(8ae0710d) SHA1(4ea3c6911b3c143848d4643eb38f32856cfaaa1e) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs53 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc53.p1", 0x000000, 0x600000, CRC(1cc8fb7a) SHA1(96fc02803d597c8083a8a25ca1fedb9f50553c8d) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs54 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc54.p1", 0x000000, 0x600000, CRC(5a97529e) SHA1(c9b6800b22c7b48be271f742a25555612d85aab7) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs55 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc55.p1", 0x000000, 0x600000, CRC(6a3fabcd) SHA1(80bf1c0e4d37820a1ac6d3131cad1afa0beac144) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs56 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc56.p1", 0x000000, 0x600000, CRC(d46ddcba) SHA1(f75c1207527085fa800f7346df5c5ac572d4ff9b) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "svcps2_c7.rom", 0x3000000, 0x800000, CRC(361c97ab) SHA1(3b3672630c54ddbee38932f7d27d27d71e9fe19c) )
+ ROM_LOAD16_BYTE( "svcps2_c8.rom", 0x3000001, 0x800000, CRC(1a16e266) SHA1(3d6a07716b79b62c8f2240c8be83d662b35f615a) )
+ROM_END
+
+ROM_START( svcs57 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc57.p1", 0x000000, 0x600000, CRC(59891826) SHA1(83c45114970ff884d39e81d9c03122e9d4893088) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs58 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc58.p1", 0x000000, 0x600000, CRC(901d0cbf) SHA1(bbf73b17161ede6505d8fff44040ef23ab837b7b) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs59 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc59.p1", 0x000000, 0x600000, CRC(9ef2e2d8) SHA1(ccd3f95b80420509ef021674bb6f22dd6e97773f) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs60 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc60.p1", 0x000000, 0x600000, CRC(36dc51e4) SHA1(a680a99e93571eb319bd14d56fdcfc03f0bba54d) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269truza.c7", 0x3000000, 0x800000, CRC(4d08e0a3) SHA1(105c122798647301727662e0752425cac440f462) )
+ ROM_LOAD16_BYTE( "269truza.c8", 0x3000001, 0x800000, CRC(d5899852) SHA1(ecce7336010cf04148b3c6090ae861a80b492498) )
+ROM_END
+
+ROM_START( svcs61 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc61.p1", 0x000000, 0x600000, CRC(5ebf1465) SHA1(64031e0d194a06269c3916bd05adac4d45ef2219) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs62 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc62.p1", 0x000000, 0x600000, CRC(bd2c2ad3) SHA1(8669764209e841f01206fd2ea440e23e11972c6f) )
+
+ NEO_SFIX_128K( "269rm.s1", CRC(bc670454) SHA1(468641985fd3136235510bc48781039ef7b05c64) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs63 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc63.p1", 0x000000, 0x600000, CRC(7f923d90) SHA1(2c1b9413090d902ec58f0feccf29d4c8b961ddda) )
+
+ NEO_SFIX_128K( "269x.s1", CRC(61ef88e5) SHA1(5e2a5840fb9e297622aa59fa186c2166913f5d87) )
+
+ NEO_BIOS_AUDIO_128K( "269h.m1", CRC(1bfa0f6f) SHA1(b59b02d73d5f9a32935db656f888caac6e622a20) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs64 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc64.p1", 0x000000, 0x600000, CRC(7272993b) SHA1(c0b0ff8dbf4174c85a10fdac527511c9c1d146e3) )
+
+ NEO_SFIX_128K( "269x.s1", CRC(61ef88e5) SHA1(5e2a5840fb9e297622aa59fa186c2166913f5d87) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs65 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc65.p1", 0x000000, 0x600000, CRC(e1e4b6ee) SHA1(94c2596f26d7d075eda91dc07dbf74fd5211937b) )
+
+ NEO_SFIX_128K( "269x.s1", CRC(61ef88e5) SHA1(5e2a5840fb9e297622aa59fa186c2166913f5d87) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs66 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc66.p1", 0x000000, 0x600000, CRC(1bcb99bf) SHA1(c1d5bd2e34f5aa48287960eb9ef2c4aab2d92da1) )
+
+ NEO_SFIX_128K( "269x.s1", CRC(61ef88e5) SHA1(5e2a5840fb9e297622aa59fa186c2166913f5d87) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs67 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc67.p1", 0x000000, 0x600000, CRC(6500545d) SHA1(9dc710cd91ec960da8dfb70e31b094604a3646cd) )
+
+ NEO_SFIX_128K( "269x.s1", CRC(61ef88e5) SHA1(5e2a5840fb9e297622aa59fa186c2166913f5d87) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs68 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc68.p1", 0x000000, 0x600000, CRC(ee198527) SHA1(0c830715076f5f956f1a1b85cd6abcba1f3f09a5) )
+
+ NEO_SFIX_128K( "269x.s1", CRC(61ef88e5) SHA1(5e2a5840fb9e297622aa59fa186c2166913f5d87) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs69 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc69.p1", 0x000000, 0x600000, CRC(10cdebc8) SHA1(fea60d837e01a26429f4ae98efe8a562a5a01800) )
+
+ NEO_SFIX_128K( "269hc69.s1", CRC(23bd44f6) SHA1(d314096436bcc9aba99a46bfbfaa1f5d4654b710) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs70 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc70.p1", 0x000000, 0x600000, CRC(99a34714) SHA1(0c238f49d8a20bc99caea7382dfc1f445da9259b) )
+
+ NEO_SFIX_128K( "269x.s1", CRC(61ef88e5) SHA1(5e2a5840fb9e297622aa59fa186c2166913f5d87) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs71 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc71.p1", 0x000000, 0x600000, CRC(d2b26866) SHA1(b2f47919da78a11b86c7d41312489e98ca78ead5) )
+
+ NEO_SFIX_128K( "269x.s1", CRC(61ef88e5) SHA1(5e2a5840fb9e297622aa59fa186c2166913f5d87) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs72 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc72.p1", 0x000000, 0x600000, CRC(8d11a02d) SHA1(e5c49a0dae9ee6ceccb1a533e37d778945eb1389) )
+
+ NEO_SFIX_128K( "269x.s1", CRC(61ef88e5) SHA1(5e2a5840fb9e297622aa59fa186c2166913f5d87) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs73 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc73.p1", 0x000000, 0x600000, CRC(127981e3) SHA1(0c5bdbf83d501deb2d91e876ffb0163082f69447) )
+
+ NEO_SFIX_128K( "269x.s1", CRC(61ef88e5) SHA1(5e2a5840fb9e297622aa59fa186c2166913f5d87) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs74 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc74.p1", 0x000000, 0x600000, CRC(4b7812ad) SHA1(6e3482953a92f35a82021ca317f1a4ab6cf513a3) )
+
+ NEO_SFIX_128K( "269x.s1", CRC(61ef88e5) SHA1(5e2a5840fb9e297622aa59fa186c2166913f5d87) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs75 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc75.p1", 0x000000, 0x600000, CRC(bd6085ad) SHA1(4649d8a49f07dec38b8be92fe3d02f9d6d39b9f0) )
+
+ NEO_SFIX_128K( "269x.s1", CRC(61ef88e5) SHA1(5e2a5840fb9e297622aa59fa186c2166913f5d87) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs77 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc77.p1", 0x000000, 0x600000, CRC(7be965bd) SHA1(dca7cb7d9ffc6d13502bca3136feb43cf98674cb) )
+
+ NEO_SFIX_128K( "269x.s1", CRC(61ef88e5) SHA1(5e2a5840fb9e297622aa59fa186c2166913f5d87) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs78 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc78.p1", 0x000000, 0x600000, CRC(6531b76b) SHA1(33414e0aed13adc1049b21607e403c78838b597b) )
+
+ NEO_SFIX_128K( "269x.s1", CRC(61ef88e5) SHA1(5e2a5840fb9e297622aa59fa186c2166913f5d87) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs79 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc79.p1", 0x000000, 0x600000, CRC(378cb0f7) SHA1(46030559800728e2684a32ed5231a7e6bb732c6c) )
+
+ NEO_SFIX_128K( "269x.s1", CRC(61ef88e5) SHA1(5e2a5840fb9e297622aa59fa186c2166913f5d87) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs80 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc80.p1", 0x000000, 0x600000, CRC(cc5168e9) SHA1(a9c150ff2da0bc0d9d86a85271a2dd43ad751a3f) )
+
+ NEO_SFIX_128K( "269x.s1", CRC(61ef88e5) SHA1(5e2a5840fb9e297622aa59fa186c2166913f5d87) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs81 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc81.p1", 0x000000, 0x600000, CRC(41fa37e3) SHA1(ae9517be9bd995c875d0b19283d430ee6a3e18df) )
+
+ NEO_SFIX_128K( "269x.s1", CRC(61ef88e5) SHA1(5e2a5840fb9e297622aa59fa186c2166913f5d87) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs82 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc82.p1", 0x000000, 0x600000, CRC(c5626c5b) SHA1(9aaaf2a9c5e9bfdf4a1e84004d2412ba1f920b12) )
+
+ NEO_SFIX_128K( "269x.s1", CRC(61ef88e5) SHA1(5e2a5840fb9e297622aa59fa186c2166913f5d87) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs83 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc83.p1", 0x000000, 0x600000, CRC(e1a3179a) SHA1(b964376e7e2bed81048d04f67346dd693a40cef1) )
+
+ NEO_SFIX_128K( "269x.s1", CRC(61ef88e5) SHA1(5e2a5840fb9e297622aa59fa186c2166913f5d87) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs84 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "269hc84.p1", 0x000000, 0x600000, CRC(d48b53f8) SHA1(4585bc488c41e2e1182c4a68e0a932220e848b0d) )
+
+ NEO_SFIX_128K( "269x.s1", CRC(61ef88e5) SHA1(5e2a5840fb9e297622aa59fa186c2166913f5d87) )
+
+ NEO_BIOS_AUDIO_128K( "269rm.m1", CRC(fd602218) SHA1(d7af0af3e116a7c2f594d1ca77a1289b4e31cd7e) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d.c7", 0x3000000, 0x800000, CRC(56ac5fb9) SHA1(74CB0D57060D25E35F76A9820F607633BD1B9C2C) )
+ ROM_LOAD16_BYTE( "269d.c8", 0x3000001, 0x800000, CRC(de99e613) SHA1(F28C6AF4A31A937E5B441D4B860E3CCCA725F27A) )
+ROM_END
+
+ROM_START( svcs85 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD32_WORD_SWAP( "269hc85.p1", 0x000000, 0x400000, CRC(0c0e2375) SHA1(7a3d2a1b430231cdb3b1e30c9a8c25c1b5450ecc) )
+ ROM_LOAD32_WORD_SWAP( "269hc85.p2", 0x000002, 0x400000, CRC(a440286c) SHA1(a02416c3dc7a230bea67be1a0a61abd80e2b69e7) )
+
+ NEO_SFIX_128K( "269hc85.s1", CRC(0b6fd62e) SHA1(ebeb80634c91c249412f75c99be93861183d06b9) )
+
+ NEO_BIOS_AUDIO_512K( "269hc85.m1", CRC(7b7bf462) SHA1(7466a6962de5242f71b9c52d7bd21a9832115e11) )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD( "269h.v1", 0x000000, 0x400000, CRC(e7203930) SHA1(c6753df1db87d223ee39ffac920da449127dbcdf) )
+ ROM_LOAD( "269h.v2", 0x400000, 0x400000, CRC(675159c3) SHA1(c3a4f6db61dfab5bc31bfe94e1c3915676347031) )
+ ROM_LOAD( "269h.v3", 0x800000, 0x400000, CRC(f8810665) SHA1(fc1e94629a5124076959938257a80d04b2e871eb) )
+ ROM_LOAD( "269h.v4", 0xc00000, 0x400000, CRC(b57b4ea3) SHA1(873dc7f5eae687bc70af01ea310e935287de0ebf) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "269d.c1", 0x0000000, 0x800000, CRC(465d473b) SHA1(0B2BE2B2657C2AE021EC91515D1D6306179751D5) )
+ ROM_LOAD16_BYTE( "269d.c2", 0x0000001, 0x800000, CRC(3eb28f78) SHA1(DF1B096FE95796DB1515B69F74266ED13DD9EE56) )
+ ROM_LOAD16_BYTE( "269d.c3", 0x1000000, 0x800000, CRC(f4d4ab2b) SHA1(A19788435173540469FE5D07429A83DDE6D701A0) )
+ ROM_LOAD16_BYTE( "269d.c4", 0x1000001, 0x800000, CRC(a69d523a) SHA1(98D8DAC2E40F71B5B8426D3C77476A0A20783181) )
+ ROM_LOAD16_BYTE( "269d.c5", 0x2000000, 0x800000, CRC(ba2a7892) SHA1(EED45E1330DCC9F610598DC53977BF3A81DD161A) )
+ ROM_LOAD16_BYTE( "269d.c6", 0x2000001, 0x800000, CRC(37371ca1) SHA1(8AAA1B9EA34470085D9944C9AD64CFB0FFE09859) )
+ ROM_LOAD16_BYTE( "269d1.c7", 0x3000000, 0x800000, CRC(5595b6cc) SHA1(9d6cc70f435401355b885475ccc3864825887656) )
+ ROM_LOAD16_BYTE( "269d1.c8", 0x3000001, 0x800000, CRC(b17dfcf9) SHA1(46af296b12831ee40355f52d2c316f609557d6df) )
+ROM_END
+
+ROM_START( svcpcbs01 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "svchc01.bin", 0x000000, 0x800000, CRC(2ff64dbe) SHA1(7253aaa32c62bd0d5a74747fa8d0d492bf59617b) )
+
+ ROM_REGION( 0x20000, "fixed", 0 )
+ ROM_LOAD( "svc-s1.bin", 0x10000, 0x10000, CRC(70b44df1) SHA1(52ae3f264d7b33e94e770e6b2d0cf35a64e7dda4) )
+ ROM_CONTINUE( 0x00000, 0x10000 )
+ ROM_REGION( 0x20000, "fixedbios", 0 )
+ ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) )
+
+ NEOGEO_BIOS
+
+ ROM_REGION( 0x20000, "audiobios", 0 )
+ ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) )
+
+ ROM_REGION( 0x50000, "audiocpu", 0 )
+ ROM_LOAD( "svc-m1.bin", 0x20000, 0x10000, CRC(804328c3) SHA1(f931636c563b0789d4812033a77b47bf663db43f) )
+ ROM_CONTINUE( 0x00000, 0x10000 )
+ ROM_COPY( "audiocpu", 0x000000, 0x10000, 0x10000 )
+
+ ROM_Y_ZOOM
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD16_WORD_SWAP( "svc-v2.bin", 0x000000, 0x400000, CRC(b5097287) SHA1(3ba3a9b5624879616382ed40337a3d9c50a0f314) )
+ ROM_LOAD16_WORD_SWAP( "svc-v1.bin", 0x400000, 0x400000, CRC(bd3a391f) SHA1(972bf09b75e99a683ee965bec93b0da8f15d72d9) )
+ ROM_LOAD16_WORD_SWAP( "svc-v4.bin", 0x800000, 0x400000, CRC(33fc0b37) SHA1(d61017d829f44c7df8795ba10c55c727d9972662) )
+ ROM_LOAD16_WORD_SWAP( "svc-v3.bin", 0xc00000, 0x400000, CRC(aa9849a0) SHA1(9539b3356a070a066a89f27c287f316e7367ce2a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "svc-c1.bin", 0x0000000, 0x800000, CRC(a7826b89) SHA1(3bbe348ce54b80b56ef032ea532a18ef3cafeb11) ) /* Plane 0,1 */
+ ROM_LOAD16_BYTE( "svc-c2.bin", 0x0000001, 0x800000, CRC(ed3c2089) SHA1(b5d17692f15f5a678c273589fab2e3918711135e) ) /* Plane 2,3 */
+ ROM_LOAD16_BYTE( "svc-c3.bin", 0x1000000, 0x800000, CRC(71ed8063) SHA1(ea1df9e2e382a8560a06d447421844cc588f43dd) ) /* Plane 0,1 */
+ ROM_LOAD16_BYTE( "svc-c4.bin", 0x1000001, 0x800000, CRC(250bde2d) SHA1(8c72dcfceef6d022ab4b73ab37cf3ac0c3940c17) ) /* Plane 2,3 */
+ ROM_LOAD16_BYTE( "svc-c5.bin", 0x2000000, 0x800000, CRC(9817c082) SHA1(1bea9c7220c2b1524896c86841d6d8fd55f5d366) ) /* Plane 0,1 */
+ ROM_LOAD16_BYTE( "svc-c6.bin", 0x2000001, 0x800000, CRC(2bc0307f) SHA1(8090fa82c46eb503832359093c8cc3cee3141c90) ) /* Plane 2,3 */
+ ROM_LOAD16_BYTE( "svc-c7.bin", 0x3000000, 0x800000, CRC(4358d7b9) SHA1(9270b58c2abc072a046bedda72f1395df26d0714) ) /* Plane 0,1 */
+ ROM_LOAD16_BYTE( "svc-c8.bin", 0x3000001, 0x800000, CRC(366deee5) SHA1(d477ad7a5987fd6c7ef2c1680fbb7c884654590e) ) /* Plane 2,3 */
+ROM_END
+
+ROM_START( svcpcbs02 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "svchc02.bin", 0x000000, 0x800000, CRC(85d0d65e) SHA1(27276865df29d37f15a84bb4457f7a8635d5b62e) )
+
+ ROM_REGION( 0x20000, "fixed", 0 )
+ ROM_LOAD( "svc-s1.bin", 0x10000, 0x10000, CRC(70b44df1) SHA1(52ae3f264d7b33e94e770e6b2d0cf35a64e7dda4) )
+ ROM_CONTINUE( 0x00000, 0x10000 )
+ ROM_REGION( 0x20000, "fixedbios", 0 )
+ ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) )
+
+ NEOGEO_BIOS
+
+ ROM_REGION( 0x20000, "audiobios", 0 )
+ ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) )
+
+ ROM_REGION( 0x50000, "audiocpu", 0 )
+ ROM_LOAD( "svc-m1.bin", 0x20000, 0x10000, CRC(804328c3) SHA1(f931636c563b0789d4812033a77b47bf663db43f) )
+ ROM_CONTINUE( 0x00000, 0x10000 )
+ ROM_COPY( "audiocpu", 0x000000, 0x10000, 0x10000 )
+
+ ROM_Y_ZOOM
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD16_WORD_SWAP( "svc-v2.bin", 0x000000, 0x400000, CRC(b5097287) SHA1(3ba3a9b5624879616382ed40337a3d9c50a0f314) )
+ ROM_LOAD16_WORD_SWAP( "svc-v1.bin", 0x400000, 0x400000, CRC(bd3a391f) SHA1(972bf09b75e99a683ee965bec93b0da8f15d72d9) )
+ ROM_LOAD16_WORD_SWAP( "svc-v4.bin", 0x800000, 0x400000, CRC(33fc0b37) SHA1(d61017d829f44c7df8795ba10c55c727d9972662) )
+ ROM_LOAD16_WORD_SWAP( "svc-v3.bin", 0xc00000, 0x400000, CRC(aa9849a0) SHA1(9539b3356a070a066a89f27c287f316e7367ce2a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "svc-c1.bin", 0x0000000, 0x800000, CRC(a7826b89) SHA1(3bbe348ce54b80b56ef032ea532a18ef3cafeb11) ) /* Plane 0,1 */
+ ROM_LOAD16_BYTE( "svc-c2.bin", 0x0000001, 0x800000, CRC(ed3c2089) SHA1(b5d17692f15f5a678c273589fab2e3918711135e) ) /* Plane 2,3 */
+ ROM_LOAD16_BYTE( "svc-c3.bin", 0x1000000, 0x800000, CRC(71ed8063) SHA1(ea1df9e2e382a8560a06d447421844cc588f43dd) ) /* Plane 0,1 */
+ ROM_LOAD16_BYTE( "svc-c4.bin", 0x1000001, 0x800000, CRC(250bde2d) SHA1(8c72dcfceef6d022ab4b73ab37cf3ac0c3940c17) ) /* Plane 2,3 */
+ ROM_LOAD16_BYTE( "svc-c5.bin", 0x2000000, 0x800000, CRC(9817c082) SHA1(1bea9c7220c2b1524896c86841d6d8fd55f5d366) ) /* Plane 0,1 */
+ ROM_LOAD16_BYTE( "svc-c6.bin", 0x2000001, 0x800000, CRC(2bc0307f) SHA1(8090fa82c46eb503832359093c8cc3cee3141c90) ) /* Plane 2,3 */
+ ROM_LOAD16_BYTE( "svc-c7.bin", 0x3000000, 0x800000, CRC(4358d7b9) SHA1(9270b58c2abc072a046bedda72f1395df26d0714) ) /* Plane 0,1 */
+ ROM_LOAD16_BYTE( "svc-c8.bin", 0x3000001, 0x800000, CRC(366deee5) SHA1(d477ad7a5987fd6c7ef2c1680fbb7c884654590e) ) /* Plane 2,3 */
+ROM_END
+
+ROM_START( svcpcbs03 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "svchc03.bin", 0x000000, 0x800000, CRC(19e27578) SHA1(d033b071b879c0549827eba1f650d18d6ce2c25d) )
+
+ ROM_REGION( 0x20000, "fixed", 0 )
+ ROM_LOAD( "svc-s1.bin", 0x10000, 0x10000, CRC(70b44df1) SHA1(52ae3f264d7b33e94e770e6b2d0cf35a64e7dda4) )
+ ROM_CONTINUE( 0x00000, 0x10000 )
+ ROM_REGION( 0x20000, "fixedbios", 0 )
+ ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) )
+
+ NEOGEO_BIOS
+
+ ROM_REGION( 0x20000, "audiobios", 0 )
+ ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) )
+
+ ROM_REGION( 0x50000, "audiocpu", 0 )
+ ROM_LOAD( "svc-m1.bin", 0x20000, 0x10000, CRC(804328c3) SHA1(f931636c563b0789d4812033a77b47bf663db43f) )
+ ROM_CONTINUE( 0x00000, 0x10000 )
+ ROM_COPY( "audiocpu", 0x000000, 0x10000, 0x10000 )
+
+ ROM_Y_ZOOM
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD16_WORD_SWAP( "svc-v2.bin", 0x000000, 0x400000, CRC(b5097287) SHA1(3ba3a9b5624879616382ed40337a3d9c50a0f314) )
+ ROM_LOAD16_WORD_SWAP( "svc-v1.bin", 0x400000, 0x400000, CRC(bd3a391f) SHA1(972bf09b75e99a683ee965bec93b0da8f15d72d9) )
+ ROM_LOAD16_WORD_SWAP( "svc-v4.bin", 0x800000, 0x400000, CRC(33fc0b37) SHA1(d61017d829f44c7df8795ba10c55c727d9972662) )
+ ROM_LOAD16_WORD_SWAP( "svc-v3.bin", 0xc00000, 0x400000, CRC(aa9849a0) SHA1(9539b3356a070a066a89f27c287f316e7367ce2a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "svc-c1.bin", 0x0000000, 0x800000, CRC(a7826b89) SHA1(3bbe348ce54b80b56ef032ea532a18ef3cafeb11) )
+ ROM_LOAD16_BYTE( "svc-c2.bin", 0x0000001, 0x800000, CRC(ed3c2089) SHA1(b5d17692f15f5a678c273589fab2e3918711135e) )
+ ROM_LOAD16_BYTE( "svc-c3.bin", 0x1000000, 0x800000, CRC(71ed8063) SHA1(ea1df9e2e382a8560a06d447421844cc588f43dd) )
+ ROM_LOAD16_BYTE( "svc-c4.bin", 0x1000001, 0x800000, CRC(250bde2d) SHA1(8c72dcfceef6d022ab4b73ab37cf3ac0c3940c17) )
+ ROM_LOAD16_BYTE( "svc-c5.bin", 0x2000000, 0x800000, CRC(9817c082) SHA1(1bea9c7220c2b1524896c86841d6d8fd55f5d366) )
+ ROM_LOAD16_BYTE( "svc-c6.bin", 0x2000001, 0x800000, CRC(2bc0307f) SHA1(8090fa82c46eb503832359093c8cc3cee3141c90) )
+ ROM_LOAD16_BYTE( "svc-c7.bin", 0x3000000, 0x800000, CRC(4358d7b9) SHA1(9270b58c2abc072a046bedda72f1395df26d0714) )
+ ROM_LOAD16_BYTE( "svc-c8.bin", 0x3000001, 0x800000, CRC(366deee5) SHA1(d477ad7a5987fd6c7ef2c1680fbb7c884654590e) )
+ROM_END
+
+ROM_START( svcpcbs04 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "svchc04.bin", 0x000000, 0x800000, CRC(dfcadd1b) SHA1(2f5a2bd41ea80681a251b98b09ad436d37b43edf) )
+
+ ROM_REGION( 0x20000, "fixed", 0 )
+ ROM_LOAD( "svc-s1.bin", 0x10000, 0x10000, CRC(70b44df1) SHA1(52ae3f264d7b33e94e770e6b2d0cf35a64e7dda4) )
+ ROM_CONTINUE( 0x00000, 0x10000 )
+ ROM_REGION( 0x20000, "fixedbios", 0 )
+ ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) )
+
+ NEOGEO_BIOS
+
+ ROM_REGION( 0x20000, "audiobios", 0 )
+ ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) )
+
+ ROM_REGION( 0x50000, "audiocpu", 0 )
+ ROM_LOAD( "svc-m1.bin", 0x20000, 0x10000, CRC(804328c3) SHA1(f931636c563b0789d4812033a77b47bf663db43f) )
+ ROM_CONTINUE( 0x00000, 0x10000 )
+ ROM_COPY( "audiocpu", 0x000000, 0x10000, 0x10000 )
+
+ ROM_Y_ZOOM
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD16_WORD_SWAP( "svc-v2.bin", 0x000000, 0x400000, CRC(b5097287) SHA1(3ba3a9b5624879616382ed40337a3d9c50a0f314) )
+ ROM_LOAD16_WORD_SWAP( "svc-v1.bin", 0x400000, 0x400000, CRC(bd3a391f) SHA1(972bf09b75e99a683ee965bec93b0da8f15d72d9) )
+ ROM_LOAD16_WORD_SWAP( "svc-v4.bin", 0x800000, 0x400000, CRC(33fc0b37) SHA1(d61017d829f44c7df8795ba10c55c727d9972662) )
+ ROM_LOAD16_WORD_SWAP( "svc-v3.bin", 0xc00000, 0x400000, CRC(aa9849a0) SHA1(9539b3356a070a066a89f27c287f316e7367ce2a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "svc-c1.bin", 0x0000000, 0x800000, CRC(a7826b89) SHA1(3bbe348ce54b80b56ef032ea532a18ef3cafeb11) ) /* Plane 0,1 */
+ ROM_LOAD16_BYTE( "svc-c2.bin", 0x0000001, 0x800000, CRC(ed3c2089) SHA1(b5d17692f15f5a678c273589fab2e3918711135e) ) /* Plane 2,3 */
+ ROM_LOAD16_BYTE( "svc-c3.bin", 0x1000000, 0x800000, CRC(71ed8063) SHA1(ea1df9e2e382a8560a06d447421844cc588f43dd) ) /* Plane 0,1 */
+ ROM_LOAD16_BYTE( "svc-c4.bin", 0x1000001, 0x800000, CRC(250bde2d) SHA1(8c72dcfceef6d022ab4b73ab37cf3ac0c3940c17) ) /* Plane 2,3 */
+ ROM_LOAD16_BYTE( "svc-c5.bin", 0x2000000, 0x800000, CRC(9817c082) SHA1(1bea9c7220c2b1524896c86841d6d8fd55f5d366) ) /* Plane 0,1 */
+ ROM_LOAD16_BYTE( "svc-c6.bin", 0x2000001, 0x800000, CRC(2bc0307f) SHA1(8090fa82c46eb503832359093c8cc3cee3141c90) ) /* Plane 2,3 */
+ ROM_LOAD16_BYTE( "svc-c7.bin", 0x3000000, 0x800000, CRC(4358d7b9) SHA1(9270b58c2abc072a046bedda72f1395df26d0714) ) /* Plane 0,1 */
+ ROM_LOAD16_BYTE( "svc-c8.bin", 0x3000001, 0x800000, CRC(366deee5) SHA1(d477ad7a5987fd6c7ef2c1680fbb7c884654590e) ) /* Plane 2,3 */
+ROM_END
+
+ROM_START( svcpcbs05 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "svchc05.bin", 0x000000, 0x800000, CRC(0741c113) SHA1(32fa274512836b8239557389925173fb4a3febfb) )
+
+ ROM_REGION( 0x20000, "fixed", 0 )
+ ROM_LOAD( "svc-s1.bin", 0x10000, 0x10000, CRC(70b44df1) SHA1(52ae3f264d7b33e94e770e6b2d0cf35a64e7dda4) )
+ ROM_CONTINUE( 0x00000, 0x10000 )
+ ROM_REGION( 0x20000, "fixedbios", 0 )
+ ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) )
+
+ NEOGEO_BIOS
+
+ ROM_REGION( 0x20000, "audiobios", 0 )
+ ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) )
+
+ ROM_REGION( 0x50000, "audiocpu", 0 )
+ ROM_LOAD( "svc-m1.bin", 0x20000, 0x10000, CRC(804328c3) SHA1(f931636c563b0789d4812033a77b47bf663db43f) )
+ ROM_CONTINUE( 0x00000, 0x10000 )
+ ROM_COPY( "audiocpu", 0x000000, 0x10000, 0x10000 )
+
+ ROM_Y_ZOOM
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD16_WORD_SWAP( "svc-v2.bin", 0x000000, 0x400000, CRC(b5097287) SHA1(3ba3a9b5624879616382ed40337a3d9c50a0f314) )
+ ROM_LOAD16_WORD_SWAP( "svc-v1.bin", 0x400000, 0x400000, CRC(bd3a391f) SHA1(972bf09b75e99a683ee965bec93b0da8f15d72d9) )
+ ROM_LOAD16_WORD_SWAP( "svc-v4.bin", 0x800000, 0x400000, CRC(33fc0b37) SHA1(d61017d829f44c7df8795ba10c55c727d9972662) )
+ ROM_LOAD16_WORD_SWAP( "svc-v3.bin", 0xc00000, 0x400000, CRC(aa9849a0) SHA1(9539b3356a070a066a89f27c287f316e7367ce2a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "svc-c1.bin", 0x0000000, 0x800000, CRC(a7826b89) SHA1(3bbe348ce54b80b56ef032ea532a18ef3cafeb11) ) /* Plane 0,1 */
+ ROM_LOAD16_BYTE( "svc-c2.bin", 0x0000001, 0x800000, CRC(ed3c2089) SHA1(b5d17692f15f5a678c273589fab2e3918711135e) ) /* Plane 2,3 */
+ ROM_LOAD16_BYTE( "svc-c3.bin", 0x1000000, 0x800000, CRC(71ed8063) SHA1(ea1df9e2e382a8560a06d447421844cc588f43dd) ) /* Plane 0,1 */
+ ROM_LOAD16_BYTE( "svc-c4.bin", 0x1000001, 0x800000, CRC(250bde2d) SHA1(8c72dcfceef6d022ab4b73ab37cf3ac0c3940c17) ) /* Plane 2,3 */
+ ROM_LOAD16_BYTE( "svc-c5.bin", 0x2000000, 0x800000, CRC(9817c082) SHA1(1bea9c7220c2b1524896c86841d6d8fd55f5d366) ) /* Plane 0,1 */
+ ROM_LOAD16_BYTE( "svc-c6.bin", 0x2000001, 0x800000, CRC(2bc0307f) SHA1(8090fa82c46eb503832359093c8cc3cee3141c90) ) /* Plane 2,3 */
+ ROM_LOAD16_BYTE( "svc-c7.bin", 0x3000000, 0x800000, CRC(4358d7b9) SHA1(9270b58c2abc072a046bedda72f1395df26d0714) ) /* Plane 0,1 */
+ ROM_LOAD16_BYTE( "svc-c8.bin", 0x3000001, 0x800000, CRC(366deee5) SHA1(d477ad7a5987fd6c7ef2c1680fbb7c884654590e) ) /* Plane 2,3 */
+ROM_END
+
+ROM_START( svcpcbs06 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "svchc06.bin", 0x000000, 0x800000, CRC(1f990893) SHA1(7b731c09ac9a2fa67f5d877adea3f80d4cc4bb4c) )
+
+ ROM_REGION( 0x20000, "fixed", 0 )
+ ROM_LOAD( "svc-s1.bin", 0x10000, 0x10000, CRC(70b44df1) SHA1(52ae3f264d7b33e94e770e6b2d0cf35a64e7dda4) )
+ ROM_CONTINUE( 0x00000, 0x10000 )
+ ROM_REGION( 0x20000, "fixedbios", 0 )
+ ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) )
+
+ NEOGEO_BIOS
+
+ ROM_REGION( 0x20000, "audiobios", 0 )
+ ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) )
+
+ ROM_REGION( 0x50000, "audiocpu", 0 )
+ ROM_LOAD( "svc-m1.bin", 0x20000, 0x10000, CRC(804328c3) SHA1(f931636c563b0789d4812033a77b47bf663db43f) )
+ ROM_CONTINUE( 0x00000, 0x10000 )
+ ROM_COPY( "audiocpu", 0x000000, 0x10000, 0x10000 )
+
+ ROM_Y_ZOOM
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD16_WORD_SWAP( "svc-v2.bin", 0x000000, 0x400000, CRC(b5097287) SHA1(3ba3a9b5624879616382ed40337a3d9c50a0f314) )
+ ROM_LOAD16_WORD_SWAP( "svc-v1.bin", 0x400000, 0x400000, CRC(bd3a391f) SHA1(972bf09b75e99a683ee965bec93b0da8f15d72d9) )
+ ROM_LOAD16_WORD_SWAP( "svc-v4.bin", 0x800000, 0x400000, CRC(33fc0b37) SHA1(d61017d829f44c7df8795ba10c55c727d9972662) )
+ ROM_LOAD16_WORD_SWAP( "svc-v3.bin", 0xc00000, 0x400000, CRC(aa9849a0) SHA1(9539b3356a070a066a89f27c287f316e7367ce2a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "svc-c1.bin", 0x0000000, 0x800000, CRC(a7826b89) SHA1(3bbe348ce54b80b56ef032ea532a18ef3cafeb11) ) /* Plane 0,1 */
+ ROM_LOAD16_BYTE( "svc-c2.bin", 0x0000001, 0x800000, CRC(ed3c2089) SHA1(b5d17692f15f5a678c273589fab2e3918711135e) ) /* Plane 2,3 */
+ ROM_LOAD16_BYTE( "svc-c3.bin", 0x1000000, 0x800000, CRC(71ed8063) SHA1(ea1df9e2e382a8560a06d447421844cc588f43dd) ) /* Plane 0,1 */
+ ROM_LOAD16_BYTE( "svc-c4.bin", 0x1000001, 0x800000, CRC(250bde2d) SHA1(8c72dcfceef6d022ab4b73ab37cf3ac0c3940c17) ) /* Plane 2,3 */
+ ROM_LOAD16_BYTE( "svc-c5.bin", 0x2000000, 0x800000, CRC(9817c082) SHA1(1bea9c7220c2b1524896c86841d6d8fd55f5d366) ) /* Plane 0,1 */
+ ROM_LOAD16_BYTE( "svc-c6.bin", 0x2000001, 0x800000, CRC(2bc0307f) SHA1(8090fa82c46eb503832359093c8cc3cee3141c90) ) /* Plane 2,3 */
+ ROM_LOAD16_BYTE( "svc-c7.bin", 0x3000000, 0x800000, CRC(4358d7b9) SHA1(9270b58c2abc072a046bedda72f1395df26d0714) ) /* Plane 0,1 */
+ ROM_LOAD16_BYTE( "svc-c8.bin", 0x3000001, 0x800000, CRC(366deee5) SHA1(d477ad7a5987fd6c7ef2c1680fbb7c884654590e) ) /* Plane 2,3 */
+ROM_END
+
+ROM_START( svcpcbs07 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "svchc07.bin", 0x000000, 0x800000, CRC(b34f3669) SHA1(5db90a576ff1a03785b5a3612625551a3ee620aa) )
+
+ ROM_REGION( 0x20000, "fixed", 0 )
+ ROM_LOAD( "svc-s1.bin", 0x10000, 0x10000, CRC(70b44df1) SHA1(52ae3f264d7b33e94e770e6b2d0cf35a64e7dda4) )
+ ROM_CONTINUE( 0x00000, 0x10000 )
+ ROM_REGION( 0x20000, "fixedbios", 0 )
+ ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) )
+
+ NEOGEO_BIOS
+
+ ROM_REGION( 0x20000, "audiobios", 0 )
+ ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) )
+
+ ROM_REGION( 0x50000, "audiocpu", 0 )
+ ROM_LOAD( "svc-m1.bin", 0x20000, 0x10000, CRC(804328c3) SHA1(f931636c563b0789d4812033a77b47bf663db43f) )
+ ROM_CONTINUE( 0x00000, 0x10000 )
+ ROM_COPY( "audiocpu", 0x000000, 0x10000, 0x10000 )
+
+ ROM_Y_ZOOM
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD16_WORD_SWAP( "svc-v2.bin", 0x000000, 0x400000, CRC(b5097287) SHA1(3ba3a9b5624879616382ed40337a3d9c50a0f314) )
+ ROM_LOAD16_WORD_SWAP( "svc-v1.bin", 0x400000, 0x400000, CRC(bd3a391f) SHA1(972bf09b75e99a683ee965bec93b0da8f15d72d9) )
+ ROM_LOAD16_WORD_SWAP( "svc-v4.bin", 0x800000, 0x400000, CRC(33fc0b37) SHA1(d61017d829f44c7df8795ba10c55c727d9972662) )
+ ROM_LOAD16_WORD_SWAP( "svc-v3.bin", 0xc00000, 0x400000, CRC(aa9849a0) SHA1(9539b3356a070a066a89f27c287f316e7367ce2a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "svc-c1.bin", 0x0000000, 0x800000, CRC(a7826b89) SHA1(3bbe348ce54b80b56ef032ea532a18ef3cafeb11) ) /* Plane 0,1 */
+ ROM_LOAD16_BYTE( "svc-c2.bin", 0x0000001, 0x800000, CRC(ed3c2089) SHA1(b5d17692f15f5a678c273589fab2e3918711135e) ) /* Plane 2,3 */
+ ROM_LOAD16_BYTE( "svc-c3.bin", 0x1000000, 0x800000, CRC(71ed8063) SHA1(ea1df9e2e382a8560a06d447421844cc588f43dd) ) /* Plane 0,1 */
+ ROM_LOAD16_BYTE( "svc-c4.bin", 0x1000001, 0x800000, CRC(250bde2d) SHA1(8c72dcfceef6d022ab4b73ab37cf3ac0c3940c17) ) /* Plane 2,3 */
+ ROM_LOAD16_BYTE( "svc-c5.bin", 0x2000000, 0x800000, CRC(9817c082) SHA1(1bea9c7220c2b1524896c86841d6d8fd55f5d366) ) /* Plane 0,1 */
+ ROM_LOAD16_BYTE( "svc-c6.bin", 0x2000001, 0x800000, CRC(2bc0307f) SHA1(8090fa82c46eb503832359093c8cc3cee3141c90) ) /* Plane 2,3 */
+ ROM_LOAD16_BYTE( "svc-c7.bin", 0x3000000, 0x800000, CRC(4358d7b9) SHA1(9270b58c2abc072a046bedda72f1395df26d0714) ) /* Plane 0,1 */
+ ROM_LOAD16_BYTE( "svc-c8.bin", 0x3000001, 0x800000, CRC(366deee5) SHA1(d477ad7a5987fd6c7ef2c1680fbb7c884654590e) ) /* Plane 2,3 */
+ROM_END
+
+ROM_START( svcpcbs08 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "svchc08.bin", 0x000000, 0x800000, CRC(6f9d58b0) SHA1(e0a0c9d744cf4c413251c745379dee4e919f8e4b) )
+
+ ROM_REGION( 0x20000, "fixed", 0 )
+ ROM_LOAD( "svc-s1.bin", 0x10000, 0x10000, CRC(70b44df1) SHA1(52ae3f264d7b33e94e770e6b2d0cf35a64e7dda4) )
+ ROM_CONTINUE( 0x00000, 0x10000 )
+ ROM_REGION( 0x20000, "fixedbios", 0 )
+ ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) )
+
+ NEOGEO_BIOS
+
+ ROM_REGION( 0x20000, "audiobios", 0 )
+ ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) )
+
+ ROM_REGION( 0x50000, "audiocpu", 0 )
+ ROM_LOAD( "svc-m1.bin", 0x20000, 0x10000, CRC(804328c3) SHA1(f931636c563b0789d4812033a77b47bf663db43f) )
+ ROM_CONTINUE( 0x00000, 0x10000 )
+ ROM_COPY( "audiocpu", 0x000000, 0x10000, 0x10000 )
+
+ ROM_Y_ZOOM
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD16_WORD_SWAP( "svc-v2.bin", 0x000000, 0x400000, CRC(b5097287) SHA1(3ba3a9b5624879616382ed40337a3d9c50a0f314) )
+ ROM_LOAD16_WORD_SWAP( "svc-v1.bin", 0x400000, 0x400000, CRC(bd3a391f) SHA1(972bf09b75e99a683ee965bec93b0da8f15d72d9) )
+ ROM_LOAD16_WORD_SWAP( "svc-v4.bin", 0x800000, 0x400000, CRC(33fc0b37) SHA1(d61017d829f44c7df8795ba10c55c727d9972662) )
+ ROM_LOAD16_WORD_SWAP( "svc-v3.bin", 0xc00000, 0x400000, CRC(aa9849a0) SHA1(9539b3356a070a066a89f27c287f316e7367ce2a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "svc-c1.bin", 0x0000000, 0x800000, CRC(a7826b89) SHA1(3bbe348ce54b80b56ef032ea532a18ef3cafeb11) ) /* Plane 0,1 */
+ ROM_LOAD16_BYTE( "svc-c2.bin", 0x0000001, 0x800000, CRC(ed3c2089) SHA1(b5d17692f15f5a678c273589fab2e3918711135e) ) /* Plane 2,3 */
+ ROM_LOAD16_BYTE( "svc-c3.bin", 0x1000000, 0x800000, CRC(71ed8063) SHA1(ea1df9e2e382a8560a06d447421844cc588f43dd) ) /* Plane 0,1 */
+ ROM_LOAD16_BYTE( "svc-c4.bin", 0x1000001, 0x800000, CRC(250bde2d) SHA1(8c72dcfceef6d022ab4b73ab37cf3ac0c3940c17) ) /* Plane 2,3 */
+ ROM_LOAD16_BYTE( "svc-c5.bin", 0x2000000, 0x800000, CRC(9817c082) SHA1(1bea9c7220c2b1524896c86841d6d8fd55f5d366) ) /* Plane 0,1 */
+ ROM_LOAD16_BYTE( "svc-c6.bin", 0x2000001, 0x800000, CRC(2bc0307f) SHA1(8090fa82c46eb503832359093c8cc3cee3141c90) ) /* Plane 2,3 */
+ ROM_LOAD16_BYTE( "svc-c7.bin", 0x3000000, 0x800000, CRC(4358d7b9) SHA1(9270b58c2abc072a046bedda72f1395df26d0714) ) /* Plane 0,1 */
+ ROM_LOAD16_BYTE( "svc-c8.bin", 0x3000001, 0x800000, CRC(366deee5) SHA1(d477ad7a5987fd6c7ef2c1680fbb7c884654590e) ) /* Plane 2,3 */
+ROM_END
+
+ROM_START( svcpcbs09 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "svchc09.bin", 0x000000, 0x800000, CRC(5d0a555b) SHA1(aa12efce09d34a0d06407c63fe04623ced88119a) )
+
+ ROM_REGION( 0x20000, "fixed", 0 )
+ ROM_LOAD( "svc-s1.bin", 0x10000, 0x10000, CRC(70b44df1) SHA1(52ae3f264d7b33e94e770e6b2d0cf35a64e7dda4) )
+ ROM_CONTINUE( 0x00000, 0x10000 )
+ ROM_REGION( 0x20000, "fixedbios", 0 )
+ ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) )
+
+ NEOGEO_BIOS
+
+ ROM_REGION( 0x20000, "audiobios", 0 )
+ ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) )
+
+ ROM_REGION( 0x50000, "audiocpu", 0 )
+ ROM_LOAD( "svc-m1.bin", 0x20000, 0x10000, CRC(804328c3) SHA1(f931636c563b0789d4812033a77b47bf663db43f) )
+ ROM_CONTINUE( 0x00000, 0x10000 )
+ ROM_COPY( "audiocpu", 0x000000, 0x10000, 0x10000 )
+
+ ROM_Y_ZOOM
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD16_WORD_SWAP( "svc-v2.bin", 0x000000, 0x400000, CRC(b5097287) SHA1(3ba3a9b5624879616382ed40337a3d9c50a0f314) )
+ ROM_LOAD16_WORD_SWAP( "svc-v1.bin", 0x400000, 0x400000, CRC(bd3a391f) SHA1(972bf09b75e99a683ee965bec93b0da8f15d72d9) )
+ ROM_LOAD16_WORD_SWAP( "svc-v4.bin", 0x800000, 0x400000, CRC(33fc0b37) SHA1(d61017d829f44c7df8795ba10c55c727d9972662) )
+ ROM_LOAD16_WORD_SWAP( "svc-v3.bin", 0xc00000, 0x400000, CRC(aa9849a0) SHA1(9539b3356a070a066a89f27c287f316e7367ce2a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "svc-c1.bin", 0x0000000, 0x800000, CRC(a7826b89) SHA1(3bbe348ce54b80b56ef032ea532a18ef3cafeb11) ) /* Plane 0,1 */
+ ROM_LOAD16_BYTE( "svc-c2.bin", 0x0000001, 0x800000, CRC(ed3c2089) SHA1(b5d17692f15f5a678c273589fab2e3918711135e) ) /* Plane 2,3 */
+ ROM_LOAD16_BYTE( "svc-c3.bin", 0x1000000, 0x800000, CRC(71ed8063) SHA1(ea1df9e2e382a8560a06d447421844cc588f43dd) ) /* Plane 0,1 */
+ ROM_LOAD16_BYTE( "svc-c4.bin", 0x1000001, 0x800000, CRC(250bde2d) SHA1(8c72dcfceef6d022ab4b73ab37cf3ac0c3940c17) ) /* Plane 2,3 */
+ ROM_LOAD16_BYTE( "svc-c5.bin", 0x2000000, 0x800000, CRC(9817c082) SHA1(1bea9c7220c2b1524896c86841d6d8fd55f5d366) ) /* Plane 0,1 */
+ ROM_LOAD16_BYTE( "svc-c6.bin", 0x2000001, 0x800000, CRC(2bc0307f) SHA1(8090fa82c46eb503832359093c8cc3cee3141c90) ) /* Plane 2,3 */
+ ROM_LOAD16_BYTE( "svc-c7.bin", 0x3000000, 0x800000, CRC(4358d7b9) SHA1(9270b58c2abc072a046bedda72f1395df26d0714) ) /* Plane 0,1 */
+ ROM_LOAD16_BYTE( "svc-c8.bin", 0x3000001, 0x800000, CRC(366deee5) SHA1(d477ad7a5987fd6c7ef2c1680fbb7c884654590e) ) /* Plane 2,3 */
+ROM_END
+
+ROM_START( svcpcbs10 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "svchc10.bin", 0x000000, 0x800000, CRC(0348f162) SHA1(c313351d68effd92aeb80ed320e4f8c26a3bb53e) )
+
+ ROM_REGION( 0x20000, "fixed", 0 )
+ ROM_LOAD( "svc-s1.bin", 0x10000, 0x10000, CRC(70b44df1) SHA1(52ae3f264d7b33e94e770e6b2d0cf35a64e7dda4) )
+ ROM_CONTINUE( 0x00000, 0x10000 )
+ ROM_REGION( 0x20000, "fixedbios", 0 )
+ ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) )
+
+ NEOGEO_BIOS
+
+ ROM_REGION( 0x20000, "audiobios", 0 )
+ ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) )
+
+ ROM_REGION( 0x50000, "audiocpu", 0 )
+ ROM_LOAD( "svc-m1.bin", 0x20000, 0x10000, CRC(804328c3) SHA1(f931636c563b0789d4812033a77b47bf663db43f) )
+ ROM_CONTINUE( 0x00000, 0x10000 )
+ ROM_COPY( "audiocpu", 0x000000, 0x10000, 0x10000 )
+
+ ROM_Y_ZOOM
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD16_WORD_SWAP( "svc-v2.bin", 0x000000, 0x400000, CRC(b5097287) SHA1(3ba3a9b5624879616382ed40337a3d9c50a0f314) )
+ ROM_LOAD16_WORD_SWAP( "svc-v1.bin", 0x400000, 0x400000, CRC(bd3a391f) SHA1(972bf09b75e99a683ee965bec93b0da8f15d72d9) )
+ ROM_LOAD16_WORD_SWAP( "svc-v4.bin", 0x800000, 0x400000, CRC(33fc0b37) SHA1(d61017d829f44c7df8795ba10c55c727d9972662) )
+ ROM_LOAD16_WORD_SWAP( "svc-v3.bin", 0xc00000, 0x400000, CRC(aa9849a0) SHA1(9539b3356a070a066a89f27c287f316e7367ce2a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "svc-c1.bin", 0x0000000, 0x800000, CRC(a7826b89) SHA1(3bbe348ce54b80b56ef032ea532a18ef3cafeb11) ) /* Plane 0,1 */
+ ROM_LOAD16_BYTE( "svc-c2.bin", 0x0000001, 0x800000, CRC(ed3c2089) SHA1(b5d17692f15f5a678c273589fab2e3918711135e) ) /* Plane 2,3 */
+ ROM_LOAD16_BYTE( "svc-c3.bin", 0x1000000, 0x800000, CRC(71ed8063) SHA1(ea1df9e2e382a8560a06d447421844cc588f43dd) ) /* Plane 0,1 */
+ ROM_LOAD16_BYTE( "svc-c4.bin", 0x1000001, 0x800000, CRC(250bde2d) SHA1(8c72dcfceef6d022ab4b73ab37cf3ac0c3940c17) ) /* Plane 2,3 */
+ ROM_LOAD16_BYTE( "svc-c5.bin", 0x2000000, 0x800000, CRC(9817c082) SHA1(1bea9c7220c2b1524896c86841d6d8fd55f5d366) ) /* Plane 0,1 */
+ ROM_LOAD16_BYTE( "svc-c6.bin", 0x2000001, 0x800000, CRC(2bc0307f) SHA1(8090fa82c46eb503832359093c8cc3cee3141c90) ) /* Plane 2,3 */
+ ROM_LOAD16_BYTE( "svc-c7.bin", 0x3000000, 0x800000, CRC(4358d7b9) SHA1(9270b58c2abc072a046bedda72f1395df26d0714) ) /* Plane 0,1 */
+ ROM_LOAD16_BYTE( "svc-c8.bin", 0x3000001, 0x800000, CRC(366deee5) SHA1(d477ad7a5987fd6c7ef2c1680fbb7c884654590e) ) /* Plane 2,3 */
+ROM_END
+
+ROM_START( svcsplus01 )
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "svcsp01.p1", 0x000000, 0x400000, CRC(5621e9a4) SHA1(2c04471097ba57a32ae79b1b4ca5c4efdc1c4c09) )
+ ROM_LOAD16_WORD_SWAP( "svcsp01.sp2", 0x400000, 0x400000, CRC(5e2761ca) SHA1(2b6b6980f05478c9e7a5f66afb095e4136fbf9fd) )
+
+ NEO_SFIX_128K( "svc-s1sp.bin", CRC(233d6439) SHA1(369024c7a2405c3144c14ac016c07c3dc0f44187) )
+
+ NEOGEO_BIOS
+
+ ROM_REGION( 0x20000, "audiobios", 0 )
+ ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) )
+
+ ROM_REGION( 0x50000, "audiocpu", 0 )
+ ROM_LOAD( "svc-m1.bin", 0x20000, 0x10000, CRC(804328c3) SHA1(f931636c563b0789d4812033a77b47bf663db43f) )
+ ROM_CONTINUE( 0x00000, 0x10000 )
+ ROM_COPY( "audiocpu", 0x000000, 0x10000, 0x10000 )
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD16_WORD_SWAP( "svc-v2.bin", 0x000000, 0x400000, CRC(b5097287) SHA1(3ba3a9b5624879616382ed40337a3d9c50a0f314) )
+ ROM_LOAD16_WORD_SWAP( "svc-v1.bin", 0x400000, 0x400000, CRC(bd3a391f) SHA1(972bf09b75e99a683ee965bec93b0da8f15d72d9) )
+ ROM_LOAD16_WORD_SWAP( "svc-v4.bin", 0x800000, 0x400000, CRC(33fc0b37) SHA1(d61017d829f44c7df8795ba10c55c727d9972662) )
+ ROM_LOAD16_WORD_SWAP( "svc-v3.bin", 0xc00000, 0x400000, CRC(aa9849a0) SHA1(9539b3356a070a066a89f27c287f316e7367ce2a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "svc-c1.bin", 0x0000000, 0x800000, CRC(a7826b89) SHA1(3bbe348ce54b80b56ef032ea532a18ef3cafeb11) )
+ ROM_LOAD16_BYTE( "svc-c2.bin", 0x0000001, 0x800000, CRC(ed3c2089) SHA1(b5d17692f15f5a678c273589fab2e3918711135e) )
+ ROM_LOAD16_BYTE( "svc-c3.bin", 0x1000000, 0x800000, CRC(71ed8063) SHA1(ea1df9e2e382a8560a06d447421844cc588f43dd) )
+ ROM_LOAD16_BYTE( "svc-c4.bin", 0x1000001, 0x800000, CRC(250bde2d) SHA1(8c72dcfceef6d022ab4b73ab37cf3ac0c3940c17) )
+ ROM_LOAD16_BYTE( "svc-c5.bin", 0x2000000, 0x800000, CRC(9817c082) SHA1(1bea9c7220c2b1524896c86841d6d8fd55f5d366) )
+ ROM_LOAD16_BYTE( "svc-c6.bin", 0x2000001, 0x800000, CRC(2bc0307f) SHA1(8090fa82c46eb503832359093c8cc3cee3141c90) )
+ ROM_LOAD16_BYTE( "svc-c7.bin", 0x3000000, 0x800000, CRC(4358d7b9) SHA1(9270b58c2abc072a046bedda72f1395df26d0714) )
+ ROM_LOAD16_BYTE( "svc-c8.bin", 0x3000001, 0x800000, CRC(366deee5) SHA1(d477ad7a5987fd6c7ef2c1680fbb7c884654590e) )
+ROM_END
+
+ROM_START( svcsplus02 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "svcsp02.p1", 0x000000, 0x200000, CRC(672274d6) SHA1(e8776fdbd3b2bd4e959efc6a3363cfa790ae63b3) )
+ ROM_LOAD16_WORD_SWAP( "svc-p2pl.bin", 0x200000, 0x400000, CRC(7231ace2) SHA1(d2f13ddd5d3ee29b4b9824e8663f7ee0241f30cf) )
+
+ ROM_REGION( 0x20000, "fixed", 0 )
+ ROM_LOAD( "svc-s1pl.bin", 0x10000, 0x10000, CRC(ca3c735e) SHA1(aebd15253c90432a2e0a4c40f37110c1e2176ee4) )
+ ROM_CONTINUE( 0x00000, 0x10000 )
+ ROM_REGION( 0x20000, "fixedbios", 0 )
+ ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) )
+
+ NEOGEO_BIOS
+
+ ROM_REGION( 0x20000, "audiobios", 0 )
+ ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) )
+
+ ROM_REGION( 0x50000, "audiocpu", 0 )
+ ROM_LOAD( "svc-m1.bin", 0x20000, 0x10000, CRC(804328c3) SHA1(f931636c563b0789d4812033a77b47bf663db43f) )
+ ROM_CONTINUE( 0x00000, 0x10000 )
+ ROM_COPY( "audiocpu", 0x000000, 0x10000, 0x10000 )
+
+ ROM_Y_ZOOM
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD16_WORD_SWAP( "svc-v2.bin", 0x000000, 0x400000, CRC(b5097287) SHA1(3ba3a9b5624879616382ed40337a3d9c50a0f314) )
+ ROM_LOAD16_WORD_SWAP( "svc-v1.bin", 0x400000, 0x400000, CRC(bd3a391f) SHA1(972bf09b75e99a683ee965bec93b0da8f15d72d9) )
+ ROM_LOAD16_WORD_SWAP( "svc-v4.bin", 0x800000, 0x400000, CRC(33fc0b37) SHA1(d61017d829f44c7df8795ba10c55c727d9972662) )
+ ROM_LOAD16_WORD_SWAP( "svc-v3.bin", 0xc00000, 0x400000, CRC(aa9849a0) SHA1(9539b3356a070a066a89f27c287f316e7367ce2a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "svc-c1.bin", 0x0000000, 0x800000, CRC(a7826b89) SHA1(3bbe348ce54b80b56ef032ea532a18ef3cafeb11) )
+ ROM_LOAD16_BYTE( "svc-c2.bin", 0x0000001, 0x800000, CRC(ed3c2089) SHA1(b5d17692f15f5a678c273589fab2e3918711135e) )
+ ROM_LOAD16_BYTE( "svc-c3.bin", 0x1000000, 0x800000, CRC(71ed8063) SHA1(ea1df9e2e382a8560a06d447421844cc588f43dd) )
+ ROM_LOAD16_BYTE( "svc-c4.bin", 0x1000001, 0x800000, CRC(250bde2d) SHA1(8c72dcfceef6d022ab4b73ab37cf3ac0c3940c17) )
+ ROM_LOAD16_BYTE( "svc-c5.bin", 0x2000000, 0x800000, CRC(9817c082) SHA1(1bea9c7220c2b1524896c86841d6d8fd55f5d366) )
+ ROM_LOAD16_BYTE( "svc-c6.bin", 0x2000001, 0x800000, CRC(2bc0307f) SHA1(8090fa82c46eb503832359093c8cc3cee3141c90) )
+ ROM_LOAD16_BYTE( "svc-c7.bin", 0x3000000, 0x800000, CRC(4358d7b9) SHA1(9270b58c2abc072a046bedda72f1395df26d0714) )
+ ROM_LOAD16_BYTE( "svc-c8.bin", 0x3000001, 0x800000, CRC(366deee5) SHA1(d477ad7a5987fd6c7ef2c1680fbb7c884654590e) )
+ROM_END
+
+ROM_START( svcsplus03 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "svcsp03.p1", 0x000000, 0x200000, CRC(e6e3e9a9) SHA1(a417f1d5fac0d2392534e7791b6bcd8ab1ace15a) )
+ ROM_LOAD16_WORD_SWAP( "svc-p2pl.bin", 0x200000, 0x400000, CRC(7231ace2) SHA1(d2f13ddd5d3ee29b4b9824e8663f7ee0241f30cf) )
+
+ ROM_REGION( 0x20000, "fixed", 0 )
+ ROM_LOAD( "svc-s1pl.bin", 0x10000, 0x10000, CRC(ca3c735e) SHA1(aebd15253c90432a2e0a4c40f37110c1e2176ee4) )
+ ROM_CONTINUE( 0x00000, 0x10000 )
+ ROM_REGION( 0x20000, "fixedbios", 0 )
+ ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) )
+
+ NEOGEO_BIOS
+
+ ROM_REGION( 0x20000, "audiobios", 0 )
+ ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) )
+
+ ROM_REGION( 0x50000, "audiocpu", 0 )
+ ROM_LOAD( "svc-m1.bin", 0x20000, 0x10000, CRC(804328c3) SHA1(f931636c563b0789d4812033a77b47bf663db43f) )
+ ROM_CONTINUE( 0x00000, 0x10000 )
+ ROM_COPY( "audiocpu", 0x000000, 0x10000, 0x10000 )
+
+ ROM_Y_ZOOM
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD16_WORD_SWAP( "svc-v2.bin", 0x000000, 0x400000, CRC(b5097287) SHA1(3ba3a9b5624879616382ed40337a3d9c50a0f314) )
+ ROM_LOAD16_WORD_SWAP( "svc-v1.bin", 0x400000, 0x400000, CRC(bd3a391f) SHA1(972bf09b75e99a683ee965bec93b0da8f15d72d9) )
+ ROM_LOAD16_WORD_SWAP( "svc-v4.bin", 0x800000, 0x400000, CRC(33fc0b37) SHA1(d61017d829f44c7df8795ba10c55c727d9972662) )
+ ROM_LOAD16_WORD_SWAP( "svc-v3.bin", 0xc00000, 0x400000, CRC(aa9849a0) SHA1(9539b3356a070a066a89f27c287f316e7367ce2a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "svc-c1.bin", 0x0000000, 0x800000, CRC(a7826b89) SHA1(3bbe348ce54b80b56ef032ea532a18ef3cafeb11) )
+ ROM_LOAD16_BYTE( "svc-c2.bin", 0x0000001, 0x800000, CRC(ed3c2089) SHA1(b5d17692f15f5a678c273589fab2e3918711135e) )
+ ROM_LOAD16_BYTE( "svc-c3.bin", 0x1000000, 0x800000, CRC(71ed8063) SHA1(ea1df9e2e382a8560a06d447421844cc588f43dd) )
+ ROM_LOAD16_BYTE( "svc-c4.bin", 0x1000001, 0x800000, CRC(250bde2d) SHA1(8c72dcfceef6d022ab4b73ab37cf3ac0c3940c17) )
+ ROM_LOAD16_BYTE( "svc-c5.bin", 0x2000000, 0x800000, CRC(9817c082) SHA1(1bea9c7220c2b1524896c86841d6d8fd55f5d366) )
+ ROM_LOAD16_BYTE( "svc-c6.bin", 0x2000001, 0x800000, CRC(2bc0307f) SHA1(8090fa82c46eb503832359093c8cc3cee3141c90) )
+ ROM_LOAD16_BYTE( "svc-c7.bin", 0x3000000, 0x800000, CRC(4358d7b9) SHA1(9270b58c2abc072a046bedda72f1395df26d0714) )
+ ROM_LOAD16_BYTE( "svc-c8.bin", 0x3000001, 0x800000, CRC(366deee5) SHA1(d477ad7a5987fd6c7ef2c1680fbb7c884654590e) )
+ROM_END
+
+ROM_START( svcsplus04 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "svcsp04.p1", 0x000000, 0x200000, CRC(16778a88) SHA1(2a3ded5787d8ef9b86b8d44e98cb083184b201c6) )
+ ROM_LOAD16_WORD_SWAP( "svc-p2pl.bin", 0x200000, 0x400000, CRC(7231ace2) SHA1(d2f13ddd5d3ee29b4b9824e8663f7ee0241f30cf) )
+
+ ROM_REGION( 0x20000, "fixed", 0 )
+ ROM_LOAD( "svc-s1pl.bin", 0x10000, 0x10000, CRC(ca3c735e) SHA1(aebd15253c90432a2e0a4c40f37110c1e2176ee4) )
+ ROM_CONTINUE( 0x00000, 0x10000 )
+ ROM_REGION( 0x20000, "fixedbios", 0 )
+ ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) )
+
+ NEOGEO_BIOS
+
+ ROM_REGION( 0x20000, "audiobios", 0 )
+ ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) )
+
+ ROM_REGION( 0x50000, "audiocpu", 0 )
+ ROM_LOAD( "svc-m1.bin", 0x20000, 0x10000, CRC(804328c3) SHA1(f931636c563b0789d4812033a77b47bf663db43f) )
+ ROM_CONTINUE( 0x00000, 0x10000 )
+ ROM_COPY( "audiocpu", 0x000000, 0x10000, 0x10000 )
+
+ ROM_Y_ZOOM
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD16_WORD_SWAP( "svc-v2.bin", 0x000000, 0x400000, CRC(b5097287) SHA1(3ba3a9b5624879616382ed40337a3d9c50a0f314) )
+ ROM_LOAD16_WORD_SWAP( "svc-v1.bin", 0x400000, 0x400000, CRC(bd3a391f) SHA1(972bf09b75e99a683ee965bec93b0da8f15d72d9) )
+ ROM_LOAD16_WORD_SWAP( "svc-v4.bin", 0x800000, 0x400000, CRC(33fc0b37) SHA1(d61017d829f44c7df8795ba10c55c727d9972662) )
+ ROM_LOAD16_WORD_SWAP( "svc-v3.bin", 0xc00000, 0x400000, CRC(aa9849a0) SHA1(9539b3356a070a066a89f27c287f316e7367ce2a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "svc-c1.bin", 0x0000000, 0x800000, CRC(a7826b89) SHA1(3bbe348ce54b80b56ef032ea532a18ef3cafeb11) )
+ ROM_LOAD16_BYTE( "svc-c2.bin", 0x0000001, 0x800000, CRC(ed3c2089) SHA1(b5d17692f15f5a678c273589fab2e3918711135e) )
+ ROM_LOAD16_BYTE( "svc-c3.bin", 0x1000000, 0x800000, CRC(71ed8063) SHA1(ea1df9e2e382a8560a06d447421844cc588f43dd) )
+ ROM_LOAD16_BYTE( "svc-c4.bin", 0x1000001, 0x800000, CRC(250bde2d) SHA1(8c72dcfceef6d022ab4b73ab37cf3ac0c3940c17) )
+ ROM_LOAD16_BYTE( "svc-c5.bin", 0x2000000, 0x800000, CRC(9817c082) SHA1(1bea9c7220c2b1524896c86841d6d8fd55f5d366) )
+ ROM_LOAD16_BYTE( "svc-c6.bin", 0x2000001, 0x800000, CRC(2bc0307f) SHA1(8090fa82c46eb503832359093c8cc3cee3141c90) )
+ ROM_LOAD16_BYTE( "svc-c7.bin", 0x3000000, 0x800000, CRC(4358d7b9) SHA1(9270b58c2abc072a046bedda72f1395df26d0714) )
+ ROM_LOAD16_BYTE( "svc-c8.bin", 0x3000001, 0x800000, CRC(366deee5) SHA1(d477ad7a5987fd6c7ef2c1680fbb7c884654590e) )
+ROM_END
+
+ROM_START( svcsplus05 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "svcsp05.p1", 0x000000, 0x200000, CRC(1be955ea) SHA1(f580000611a3d424daff8f460324282fb386f344) )
+ ROM_LOAD16_WORD_SWAP( "svc-p2pl.bin", 0x200000, 0x400000, CRC(7231ace2) SHA1(d2f13ddd5d3ee29b4b9824e8663f7ee0241f30cf) )
+
+ ROM_REGION( 0x20000, "fixed", 0 )
+ ROM_LOAD( "svc-s1pl.bin", 0x10000, 0x10000, CRC(ca3c735e) SHA1(aebd15253c90432a2e0a4c40f37110c1e2176ee4) )
+ ROM_CONTINUE( 0x00000, 0x10000 )
+ ROM_REGION( 0x20000, "fixedbios", 0 )
+ ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) )
+
+ NEOGEO_BIOS
+
+ ROM_REGION( 0x20000, "audiobios", 0 )
+ ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) )
+
+ ROM_REGION( 0x50000, "audiocpu", 0 )
+ ROM_LOAD( "svc-m1.bin", 0x20000, 0x10000, CRC(804328c3) SHA1(f931636c563b0789d4812033a77b47bf663db43f) )
+ ROM_CONTINUE( 0x00000, 0x10000 )
+ ROM_COPY( "audiocpu", 0x000000, 0x10000, 0x10000 )
+
+ ROM_Y_ZOOM
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD16_WORD_SWAP( "svc-v2.bin", 0x000000, 0x400000, CRC(b5097287) SHA1(3ba3a9b5624879616382ed40337a3d9c50a0f314) )
+ ROM_LOAD16_WORD_SWAP( "svc-v1.bin", 0x400000, 0x400000, CRC(bd3a391f) SHA1(972bf09b75e99a683ee965bec93b0da8f15d72d9) )
+ ROM_LOAD16_WORD_SWAP( "svc-v4.bin", 0x800000, 0x400000, CRC(33fc0b37) SHA1(d61017d829f44c7df8795ba10c55c727d9972662) )
+ ROM_LOAD16_WORD_SWAP( "svc-v3.bin", 0xc00000, 0x400000, CRC(aa9849a0) SHA1(9539b3356a070a066a89f27c287f316e7367ce2a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "svc-c1.bin", 0x0000000, 0x800000, CRC(a7826b89) SHA1(3bbe348ce54b80b56ef032ea532a18ef3cafeb11) )
+ ROM_LOAD16_BYTE( "svc-c2.bin", 0x0000001, 0x800000, CRC(ed3c2089) SHA1(b5d17692f15f5a678c273589fab2e3918711135e) )
+ ROM_LOAD16_BYTE( "svc-c3.bin", 0x1000000, 0x800000, CRC(71ed8063) SHA1(ea1df9e2e382a8560a06d447421844cc588f43dd) )
+ ROM_LOAD16_BYTE( "svc-c4.bin", 0x1000001, 0x800000, CRC(250bde2d) SHA1(8c72dcfceef6d022ab4b73ab37cf3ac0c3940c17) )
+ ROM_LOAD16_BYTE( "svc-c5.bin", 0x2000000, 0x800000, CRC(9817c082) SHA1(1bea9c7220c2b1524896c86841d6d8fd55f5d366) )
+ ROM_LOAD16_BYTE( "svc-c6.bin", 0x2000001, 0x800000, CRC(2bc0307f) SHA1(8090fa82c46eb503832359093c8cc3cee3141c90) )
+ ROM_LOAD16_BYTE( "svc-c7.bin", 0x3000000, 0x800000, CRC(4358d7b9) SHA1(9270b58c2abc072a046bedda72f1395df26d0714) )
+ ROM_LOAD16_BYTE( "svc-c8.bin", 0x3000001, 0x800000, CRC(366deee5) SHA1(d477ad7a5987fd6c7ef2c1680fbb7c884654590e) )
+ROM_END
+
+ROM_START( svcsplus06 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "svcsp06.p1", 0x000000, 0x200000, CRC(f1562f02) SHA1(3bc76bee78245f03f66786e8149246c29dd27488) )
+ ROM_LOAD16_WORD_SWAP( "svc-p2pl.bin", 0x200000, 0x400000, CRC(7231ace2) SHA1(d2f13ddd5d3ee29b4b9824e8663f7ee0241f30cf) )
+
+ ROM_REGION( 0x20000, "fixed", 0 )
+ ROM_LOAD( "svc-s1pl.bin", 0x10000, 0x10000, CRC(ca3c735e) SHA1(aebd15253c90432a2e0a4c40f37110c1e2176ee4) )
+ ROM_CONTINUE( 0x00000, 0x10000 )
+ ROM_REGION( 0x20000, "fixedbios", 0 )
+ ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) )
+
+ NEOGEO_BIOS
+
+ ROM_REGION( 0x20000, "audiobios", 0 )
+ ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) )
+
+ ROM_REGION( 0x50000, "audiocpu", 0 )
+ ROM_LOAD( "svc-m1.bin", 0x20000, 0x10000, CRC(804328c3) SHA1(f931636c563b0789d4812033a77b47bf663db43f) )
+ ROM_CONTINUE( 0x00000, 0x10000 )
+ ROM_COPY( "audiocpu", 0x000000, 0x10000, 0x10000 )
+
+ ROM_Y_ZOOM
+
+ ROM_REGION( 0x1000000, "ymsnd", 0 )
+ ROM_LOAD16_WORD_SWAP( "svc-v2.bin", 0x000000, 0x400000, CRC(b5097287) SHA1(3ba3a9b5624879616382ed40337a3d9c50a0f314) )
+ ROM_LOAD16_WORD_SWAP( "svc-v1.bin", 0x400000, 0x400000, CRC(bd3a391f) SHA1(972bf09b75e99a683ee965bec93b0da8f15d72d9) )
+ ROM_LOAD16_WORD_SWAP( "svc-v4.bin", 0x800000, 0x400000, CRC(33fc0b37) SHA1(d61017d829f44c7df8795ba10c55c727d9972662) )
+ ROM_LOAD16_WORD_SWAP( "svc-v3.bin", 0xc00000, 0x400000, CRC(aa9849a0) SHA1(9539b3356a070a066a89f27c287f316e7367ce2a) )
+
+ ROM_REGION( 0x4000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "svc-c1.bin", 0x0000000, 0x800000, CRC(a7826b89) SHA1(3bbe348ce54b80b56ef032ea532a18ef3cafeb11) )
+ ROM_LOAD16_BYTE( "svc-c2.bin", 0x0000001, 0x800000, CRC(ed3c2089) SHA1(b5d17692f15f5a678c273589fab2e3918711135e) )
+ ROM_LOAD16_BYTE( "svc-c3.bin", 0x1000000, 0x800000, CRC(71ed8063) SHA1(ea1df9e2e382a8560a06d447421844cc588f43dd) )
+ ROM_LOAD16_BYTE( "svc-c4.bin", 0x1000001, 0x800000, CRC(250bde2d) SHA1(8c72dcfceef6d022ab4b73ab37cf3ac0c3940c17) )
+ ROM_LOAD16_BYTE( "svc-c5.bin", 0x2000000, 0x800000, CRC(9817c082) SHA1(1bea9c7220c2b1524896c86841d6d8fd55f5d366) )
+ ROM_LOAD16_BYTE( "svc-c6.bin", 0x2000001, 0x800000, CRC(2bc0307f) SHA1(8090fa82c46eb503832359093c8cc3cee3141c90) )
+ ROM_LOAD16_BYTE( "svc-c7.bin", 0x3000000, 0x800000, CRC(4358d7b9) SHA1(9270b58c2abc072a046bedda72f1395df26d0714) )
+ ROM_LOAD16_BYTE( "svc-c8.bin", 0x3000001, 0x800000, CRC(366deee5) SHA1(d477ad7a5987fd6c7ef2c1680fbb7c884654590e) )
+ROM_END
+
+/*************************************
+ *
+ * Game driver(s)
+ *
+ *************************************/
+// Proyecto Shadows Mame Build Plus
+/* YEAR NAME PARENT MACHINE INPUT INIT MONITOR COMPANY FULLNAME FLAGS */
+// SNK vs. Capcom
+GAME( 2017, svcs01, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Description Of Unknown Origin 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs02, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Add Character Alpha Set 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs03, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Description Of Unknown Origin 02)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs04, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Add Character Alpha Set 02)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs05, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Add Character Oficial Set 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs06, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Add Character Oficial Set 02)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs07, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Violet Version + Add Character Alpha)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs08, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Description Of Unknown Origin 03)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs09, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Add Character Alpha Set 03)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs10, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Description Of Unknown Origin 04)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs11, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Description Of Unknown Origin 05)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs12, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Black And Yellow )", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs13, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Add Character Oficial Set 03)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs14, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Black And Yellow + Add Character Oficial)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs15, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Add Character Beta 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs16, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Add Character Beta 02)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs17, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Add Character Beta 03)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs18, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Description Of Unknown Origin 06)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs19, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Description Of Unknown Origin 07)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs20, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Black And Yellow Set 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs21, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Description Of Unknown Origin 08)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs22, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Description Of Unknown Origin 09)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs23, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Add Character Beta 04)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs24, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Description Of Unknown Origin 10)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs25, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Description Of Unknown Origin 11)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs26, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Remix Ultra Set 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs27, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Add Character Oficial Set 16)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs28, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Add Character Beta 05)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs29, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Description Of Unknown Origin 12)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs30, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Description Of Unknown Origin 13)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs31, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Description Of Unknown Origin 14)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs32, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Description Of Unknown Origin 15)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs33, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Description Of Unknown Origin 16)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs34, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Description Of Unknown Origin 17)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs35, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Description Of Unknown Origin 18)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs36, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Description Of Unknown Origin 19)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs37, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Add Character Oficial Set 04)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs38, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Description Of Unknown Origin 20)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs39, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Add Character Oficial Set 05)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs40, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Add Character Oficial Set 06)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs41, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Violet Version + Add Character Alpha Set 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs42, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Description Of Unknown Origin 21)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs43, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Description Of Unknown Origin 22)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs44, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Description Of Unknown Origin 23)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs45, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Description Of Unknown Origin 24)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs46, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Description Of Unknown Origin 25)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs47, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Add Character Alpha Set 04)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs48, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Add Character Alpha Set 05)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs49, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Plus, Oak2003 Fix)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs50, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Add Character Beta 06)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs51, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Add Character Beta 07)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs52, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Add Character Oficial Set 07)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs53, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Add Character Beta 08)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs54, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Add Character Beta 09)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs55, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Description Of Unknown Origin 27)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs56, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Description Of Unknown Origin 28)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs57, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Add Character Beta 10)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs58, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Description Of Unknown Origin 29)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs59, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Description Of Unknown Origin 30)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs60, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Description Of Unknown Origin 31)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs61, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Add Character Oficial Set 08)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs62, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Description Of Unknown Origin 32)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs63, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Add Character Oficial Set 09)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs64, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Pink + Add Character Alpha)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs65, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Ice Blue)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs66, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Ice Original Release)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs67, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Hack Universal)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs68, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (T.Com)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs69, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Violet/Blue Super Mega Plus)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs70, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Pink Super Mega Plus)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs71, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Add Character Oficial Set 10)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs72, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Description Of Unknown Origin 33)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs73, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Ben Jeremy Hacks)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs74, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Purple Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs75, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Add Character Oficial Set 11)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs77, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Add Character Oficial Set 12)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs78, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Black And Yellow + Add Character Oficial Set 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs79, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Add Character Oficial Set 13)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs80, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Add Character Oficial Set 14)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs81, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Pink Super Mega Plus Set 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs82, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Add Character Oficial Set 15)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs83, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Description Of Unknown Origin 34)", MACHINE_SUPPORTS_SAVE )
+GAME( 2017, svcs84, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Black And Yellow + Add Character Oficial Set 02)", MACHINE_SUPPORTS_SAVE )
+//GAME( 2017, svcs85, svc, neogeo_noslot, neogeo, neogeo_hbmame, svchb, ROT0, "Hacks", "SvC Chaos (Description Of Unknown Origin 35)", MACHINE_SUPPORTS_SAVE ) //Duplicado
+GAME( 2003, svcpcbs01, svc, neogeo_noslot, neogeo, neogeo_noslot_state, svcboot, ROT0, "Hacks", "SvC Chaos (bootleg) (Add Character Boss Set 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, svcpcbs02, svc, neogeo_noslot, neogeo, neogeo_noslot_state, svcboot, ROT0, "Hacks", "SvC Chaos (bootleg) (Fix Background)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, svcpcbs03, svc, neogeo_noslot, neogeo, neogeo_noslot_state, svcboot, ROT0, "Hacks", "SvC Chaos (bootleg) (Gouki Changebg)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, svcpcbs04, svc, neogeo_noslot, neogeo, neogeo_noslot_state, svcboot, ROT0, "Hacks", "SvC Chaos (bootleg) (Unlock Exceed)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, svcpcbs05, svc, neogeo_noslot, neogeo, neogeo_noslot_state, svcboot, ROT0, "Hacks", "SvC Chaos (bootleg) (YY Animl)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, svcpcbs06, svc, neogeo_noslot, neogeo, neogeo_noslot_state, svcboot, ROT0, "Hacks", "SvC Chaos (bootleg) (Blue Version)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, svcpcbs07, svc, neogeo_noslot, neogeo, neogeo_noslot_state, svcboot, ROT0, "Hacks", "SvC Chaos (bootleg) (Add Character Alpha 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, svcpcbs08, svc, neogeo_noslot, neogeo, neogeo_noslot_state, svcboot, ROT0, "Hacks", "SvC Chaos (bootleg) (YY Beast)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, svcpcbs09, svc, neogeo_noslot, neogeo, neogeo_noslot_state, svcboot, ROT0, "Hacks", "SvC Chaos (bootleg) (YY Femal)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, svcpcbs10, svc, neogeo_noslot, neogeo, neogeo_noslot_state, svcboot, ROT0, "Hacks", "SvC Chaos (bootleg) (Description Of Unknown Origin 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, svcsplus01, svc, neogeo_noslot, neogeo, neogeo_noslot_state, svcsplus, ROT0, "Hacks", "SVC Chaos Super Plus (Super Plus, Hack Set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, svcsplus02, svc, neogeo_noslot, neogeo, neogeo_noslot_state, svcplusa, ROT0, "Hacks", "SVC Chaos Plus (Add Character Beta 01 Set)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, svcsplus03, svc, neogeo_noslot, neogeo, neogeo_noslot_state, svcplusa, ROT0, "Hacks", "SVC Chaos Plus (Add Character Beta 02 Set)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, svcsplus04, svc, neogeo_noslot, neogeo, neogeo_noslot_state, svcplusa, ROT0, "Hacks", "SVC Chaos Plus (Add Character Beta 03 Set)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, svcsplus05, svc, neogeo_noslot, neogeo, neogeo_noslot_state, svcplusa, ROT0, "Hacks", "SVC Chaos Plus (Add Character Official)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, svcsplus06, svc, neogeo_noslot, neogeo, neogeo_noslot_state, svcplusa, ROT0, "Hacks", "SVC Chaos Plus (Add Character Beta 04 Set)", MACHINE_SUPPORTS_SAVE )
+
+
diff --git a/src/hbmame/drivers/ngwh.cpp b/src/hbmame/drivers/ngwh.cpp
new file mode 100644
index 00000000000..6346a0287a6
--- /dev/null
+++ b/src/hbmame/drivers/ngwh.cpp
@@ -0,0 +1,554 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+// World Heroes hacks
+
+
+
+ROM_START( whpb ) /* World Heroes Perfect - Hack by Creamymami and Dodowang - (Can choose Gokuu, Neo-Dio and Zeus) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "090b.p1", 0x100000, 0x100000, CRC(c31f9562) SHA1(81a7dade46c0fc7241964d957322f768a256e8da) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "090-s1.s1", CRC(174a880f) SHA1(c35d315d728d119a6e9aa42e0593937c90897449) )
+
+ NEO_BIOS_AUDIO_128K( "090-m1.m1", CRC(28065668) SHA1(0c60d4afa1dccad0135e733104f056be73b54e4e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "090-v1.v1", 0x000000, 0x200000, CRC(30cf2709) SHA1(d1845033f16de2470afd3858ee0efb45176d9ed7) )
+ ROM_LOAD( "064-v2.v2", 0x200000, 0x200000, CRC(b6527edd) SHA1(2bcf5bfa6e117cf4a3728a5e5f5771313c93f22a) )
+ ROM_LOAD( "090-v3.v3", 0x400000, 0x200000, CRC(1908a7ce) SHA1(78f31bcfea33eb94752bbf5226c481baec1af5ac) )
+
+ ROM_REGION( 0x1c00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "090-c1.c1", 0x0000000, 0x400000, CRC(cd30ed9b) SHA1(839c20f7ff31251acc875ae402b5d267e55510c7) )
+ ROM_LOAD16_BYTE( "090-c2.c2", 0x0000001, 0x400000, CRC(10eed5ee) SHA1(12131b1c8c017ea77a98c044b392a5db6aad0143) )
+ ROM_LOAD16_BYTE( "064-c3.c3", 0x0800000, 0x200000, CRC(436d1b31) SHA1(059776d77b91377ed0bcfc278802d659c917fc0f) )
+ ROM_LOAD16_BYTE( "064-c4.c4", 0x0800001, 0x200000, CRC(f9c8dd26) SHA1(25a9eea1d49b21b4a988beb32c25bf2f7796f227) )
+ ROM_LOAD16_BYTE( "064-c5.c5", 0x1000000, 0x200000, CRC(8e34a9f4) SHA1(67b839b426ef3fad0a85d951fdd44c0a45c55226) )
+ ROM_LOAD16_BYTE( "064-c6.c6", 0x1000001, 0x200000, CRC(a43e4766) SHA1(54f282f2b1ff2934cca7acbb4386a2b99a29df3a) )
+ ROM_LOAD16_BYTE( "064-c7.c7", 0x1800000, 0x200000, CRC(59d97215) SHA1(85a960dc7f364df13ee0c2f99a4c53aefb081486) )
+ ROM_LOAD16_BYTE( "064-c8.c8", 0x1800001, 0x200000, CRC(fc092367) SHA1(69ff4ae909dd857de3ca8645d63f8b4bde117448) )
+ROM_END
+
+ROM_START( whpb2 ) /* World Heroes Perfect - Hack by Creamymami and Dodowang - (Can choose Gokuu, Neo-Dio and Zeus - Gokuu and Neo-Dio have icons) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "090b2.p1", 0x100000, 0x100000, CRC(fe3836e4) SHA1(0bca5e144b7de919f693fb32e977e81d5497f752) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "090-s1.s1", CRC(174a880f) SHA1(c35d315d728d119a6e9aa42e0593937c90897449) )
+
+ NEO_BIOS_AUDIO_128K( "090-m1.m1", CRC(28065668) SHA1(0c60d4afa1dccad0135e733104f056be73b54e4e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "090-v1.v1", 0x000000, 0x200000, CRC(30cf2709) SHA1(d1845033f16de2470afd3858ee0efb45176d9ed7) )
+ ROM_LOAD( "064-v2.v2", 0x200000, 0x200000, CRC(b6527edd) SHA1(2bcf5bfa6e117cf4a3728a5e5f5771313c93f22a) )
+ ROM_LOAD( "090-v3.v3", 0x400000, 0x200000, CRC(1908a7ce) SHA1(78f31bcfea33eb94752bbf5226c481baec1af5ac) )
+
+ ROM_REGION( 0x1c00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "090-c1.c1", 0x0000000, 0x400000, CRC(cd30ed9b) SHA1(839c20f7ff31251acc875ae402b5d267e55510c7) )
+ ROM_LOAD16_BYTE( "090-c2.c2", 0x0000001, 0x400000, CRC(10eed5ee) SHA1(12131b1c8c017ea77a98c044b392a5db6aad0143) )
+ ROM_LOAD16_BYTE( "064-c3.c3", 0x0800000, 0x200000, CRC(436d1b31) SHA1(059776d77b91377ed0bcfc278802d659c917fc0f) )
+ ROM_LOAD16_BYTE( "064-c4.c4", 0x0800001, 0x200000, CRC(f9c8dd26) SHA1(25a9eea1d49b21b4a988beb32c25bf2f7796f227) )
+ ROM_LOAD16_BYTE( "064-c5.c5", 0x1000000, 0x200000, CRC(8e34a9f4) SHA1(67b839b426ef3fad0a85d951fdd44c0a45c55226) )
+ ROM_LOAD16_BYTE( "064-c6.c6", 0x1000001, 0x200000, CRC(a43e4766) SHA1(54f282f2b1ff2934cca7acbb4386a2b99a29df3a) )
+ ROM_LOAD16_BYTE( "064-c7.c7", 0x1800000, 0x200000, CRC(59d97215) SHA1(85a960dc7f364df13ee0c2f99a4c53aefb081486) )
+ ROM_LOAD16_BYTE( "064-c8.c8", 0x1800001, 0x200000, CRC(fc092367) SHA1(69ff4ae909dd857de3ca8645d63f8b4bde117448) )
+ROM_END
+
+ROM_START( whpbh ) /* World Heroes Perfect - Hack by Dodowang - (Can choose Gokuu, Neo-Dio and Zeus - all boss characters have icons) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "090bh.p1", 0x100000, 0x100000, CRC(9bd000f2) SHA1(3f3b2cc47a0ef33f2b8e7ba6e6e81ebdff39a54b) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "090bh.s1", CRC(f2de6500) SHA1(5acc7746394724903b0fd3d4b5acf5bab355c9f4) )
+
+ NEO_BIOS_AUDIO_128K( "090-m1.m1", CRC(28065668) SHA1(0c60d4afa1dccad0135e733104f056be73b54e4e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "090-v1.v1", 0x000000, 0x200000, CRC(30cf2709) SHA1(d1845033f16de2470afd3858ee0efb45176d9ed7) )
+ ROM_LOAD( "064-v2.v2", 0x200000, 0x200000, CRC(b6527edd) SHA1(2bcf5bfa6e117cf4a3728a5e5f5771313c93f22a) )
+ ROM_LOAD( "090-v3.v3", 0x400000, 0x200000, CRC(1908a7ce) SHA1(78f31bcfea33eb94752bbf5226c481baec1af5ac) )
+
+ ROM_REGION( 0x1c00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "090-c1.c1", 0x0000000, 0x400000, CRC(cd30ed9b) SHA1(839c20f7ff31251acc875ae402b5d267e55510c7) )
+ ROM_LOAD16_BYTE( "090-c2.c2", 0x0000001, 0x400000, CRC(10eed5ee) SHA1(12131b1c8c017ea77a98c044b392a5db6aad0143) )
+ ROM_LOAD16_BYTE( "064-c3.c3", 0x0800000, 0x200000, CRC(436d1b31) SHA1(059776d77b91377ed0bcfc278802d659c917fc0f) )
+ ROM_LOAD16_BYTE( "064-c4.c4", 0x0800001, 0x200000, CRC(f9c8dd26) SHA1(25a9eea1d49b21b4a988beb32c25bf2f7796f227) )
+ ROM_LOAD16_BYTE( "064-c5.c5", 0x1000000, 0x200000, CRC(8e34a9f4) SHA1(67b839b426ef3fad0a85d951fdd44c0a45c55226) )
+ ROM_LOAD16_BYTE( "064-c6.c6", 0x1000001, 0x200000, CRC(a43e4766) SHA1(54f282f2b1ff2934cca7acbb4386a2b99a29df3a) )
+ ROM_LOAD16_BYTE( "064-c7.c7", 0x1800000, 0x200000, CRC(59d97215) SHA1(85a960dc7f364df13ee0c2f99a4c53aefb081486) )
+ ROM_LOAD16_BYTE( "064-c8.c8", 0x1800001, 0x200000, CRC(fc092367) SHA1(69ff4ae909dd857de3ca8645d63f8b4bde117448) )
+ROM_END
+
+ROM_START( whpbho ) /* [OLD] World Heroes Perfect - (whpbo) - Hack by Dodowang - (Can choose Gokuu, Neo-Dio and Zeus - has bug) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "090bho.p1", 0x100000, 0x100000, CRC(341f360f) SHA1(8a52866a5751021d20b8400dfa840e589024a7e9) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "090-s1.s1", CRC(174a880f) SHA1(c35d315d728d119a6e9aa42e0593937c90897449) )
+
+ NEO_BIOS_AUDIO_128K( "090-m1.m1", CRC(28065668) SHA1(0c60d4afa1dccad0135e733104f056be73b54e4e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "090-v1.v1", 0x000000, 0x200000, CRC(30cf2709) SHA1(d1845033f16de2470afd3858ee0efb45176d9ed7) )
+ ROM_LOAD( "064-v2.v2", 0x200000, 0x200000, CRC(b6527edd) SHA1(2bcf5bfa6e117cf4a3728a5e5f5771313c93f22a) )
+ ROM_LOAD( "090-v3.v3", 0x400000, 0x200000, CRC(1908a7ce) SHA1(78f31bcfea33eb94752bbf5226c481baec1af5ac) )
+
+ ROM_REGION( 0x1c00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "090-c1.c1", 0x0000000, 0x400000, CRC(cd30ed9b) SHA1(839c20f7ff31251acc875ae402b5d267e55510c7) )
+ ROM_LOAD16_BYTE( "090-c2.c2", 0x0000001, 0x400000, CRC(10eed5ee) SHA1(12131b1c8c017ea77a98c044b392a5db6aad0143) )
+ ROM_LOAD16_BYTE( "064-c3.c3", 0x0800000, 0x200000, CRC(436d1b31) SHA1(059776d77b91377ed0bcfc278802d659c917fc0f) )
+ ROM_LOAD16_BYTE( "064-c4.c4", 0x0800001, 0x200000, CRC(f9c8dd26) SHA1(25a9eea1d49b21b4a988beb32c25bf2f7796f227) )
+ ROM_LOAD16_BYTE( "064-c5.c5", 0x1000000, 0x200000, CRC(8e34a9f4) SHA1(67b839b426ef3fad0a85d951fdd44c0a45c55226) )
+ ROM_LOAD16_BYTE( "064-c6.c6", 0x1000001, 0x200000, CRC(a43e4766) SHA1(54f282f2b1ff2934cca7acbb4386a2b99a29df3a) )
+ ROM_LOAD16_BYTE( "064-c7.c7", 0x1800000, 0x200000, CRC(59d97215) SHA1(85a960dc7f364df13ee0c2f99a4c53aefb081486) )
+ ROM_LOAD16_BYTE( "064-c8.c8", 0x1800001, 0x200000, CRC(fc092367) SHA1(69ff4ae909dd857de3ca8645d63f8b4bde117448) )
+ROM_END
+
+ROM_START( whpbho2 ) /* [OLD] World Heroes Perfect - (whpbo2) - Hack by Creamymami and Dodowang - (Can choose Gokuu, Neo-Dio and Zeus - bug fix) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "090bho2.p1", 0x100000, 0x100000, CRC(cbfa58ef) SHA1(87941fbb79c82a4639103cbaec6fd013d180b3e9) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "090-s1.s1", CRC(174a880f) SHA1(c35d315d728d119a6e9aa42e0593937c90897449) )
+
+ NEO_BIOS_AUDIO_128K( "090-m1.m1", CRC(28065668) SHA1(0c60d4afa1dccad0135e733104f056be73b54e4e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "090-v1.v1", 0x000000, 0x200000, CRC(30cf2709) SHA1(d1845033f16de2470afd3858ee0efb45176d9ed7) )
+ ROM_LOAD( "064-v2.v2", 0x200000, 0x200000, CRC(b6527edd) SHA1(2bcf5bfa6e117cf4a3728a5e5f5771313c93f22a) )
+ ROM_LOAD( "090-v3.v3", 0x400000, 0x200000, CRC(1908a7ce) SHA1(78f31bcfea33eb94752bbf5226c481baec1af5ac) )
+
+ ROM_REGION( 0x1c00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "090-c1.c1", 0x0000000, 0x400000, CRC(cd30ed9b) SHA1(839c20f7ff31251acc875ae402b5d267e55510c7) )
+ ROM_LOAD16_BYTE( "090-c2.c2", 0x0000001, 0x400000, CRC(10eed5ee) SHA1(12131b1c8c017ea77a98c044b392a5db6aad0143) )
+ ROM_LOAD16_BYTE( "064-c3.c3", 0x0800000, 0x200000, CRC(436d1b31) SHA1(059776d77b91377ed0bcfc278802d659c917fc0f) )
+ ROM_LOAD16_BYTE( "064-c4.c4", 0x0800001, 0x200000, CRC(f9c8dd26) SHA1(25a9eea1d49b21b4a988beb32c25bf2f7796f227) )
+ ROM_LOAD16_BYTE( "064-c5.c5", 0x1000000, 0x200000, CRC(8e34a9f4) SHA1(67b839b426ef3fad0a85d951fdd44c0a45c55226) )
+ ROM_LOAD16_BYTE( "064-c6.c6", 0x1000001, 0x200000, CRC(a43e4766) SHA1(54f282f2b1ff2934cca7acbb4386a2b99a29df3a) )
+ ROM_LOAD16_BYTE( "064-c7.c7", 0x1800000, 0x200000, CRC(59d97215) SHA1(85a960dc7f364df13ee0c2f99a4c53aefb081486) )
+ ROM_LOAD16_BYTE( "064-c8.c8", 0x1800001, 0x200000, CRC(fc092367) SHA1(69ff4ae909dd857de3ca8645d63f8b4bde117448) )
+ROM_END
+
+ROM_START( whpeh ) /* World Heroes Perfect - Enhance by Creamymami, Dodowang and Fighters Kim - (Can choose Gokuu, Neo-Dio and Zeus - power hack) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "090eh.p1", 0x100000, 0x100000, CRC(8bde8cb8) SHA1(35941fe642ed0e57812788f1f46790a67b4c676c) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "090-s1.s1", CRC(174a880f) SHA1(c35d315d728d119a6e9aa42e0593937c90897449) )
+
+ NEO_BIOS_AUDIO_128K( "090-m1.m1", CRC(28065668) SHA1(0c60d4afa1dccad0135e733104f056be73b54e4e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "090-v1.v1", 0x000000, 0x200000, CRC(30cf2709) SHA1(d1845033f16de2470afd3858ee0efb45176d9ed7) )
+ ROM_LOAD( "064-v2.v2", 0x200000, 0x200000, CRC(b6527edd) SHA1(2bcf5bfa6e117cf4a3728a5e5f5771313c93f22a) )
+ ROM_LOAD( "090-v3.v3", 0x400000, 0x200000, CRC(1908a7ce) SHA1(78f31bcfea33eb94752bbf5226c481baec1af5ac) )
+
+ ROM_REGION( 0x1c00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "090-c1.c1", 0x0000000, 0x400000, CRC(cd30ed9b) SHA1(839c20f7ff31251acc875ae402b5d267e55510c7) )
+ ROM_LOAD16_BYTE( "090-c2.c2", 0x0000001, 0x400000, CRC(10eed5ee) SHA1(12131b1c8c017ea77a98c044b392a5db6aad0143) )
+ ROM_LOAD16_BYTE( "064-c3.c3", 0x0800000, 0x200000, CRC(436d1b31) SHA1(059776d77b91377ed0bcfc278802d659c917fc0f) )
+ ROM_LOAD16_BYTE( "064-c4.c4", 0x0800001, 0x200000, CRC(f9c8dd26) SHA1(25a9eea1d49b21b4a988beb32c25bf2f7796f227) )
+ ROM_LOAD16_BYTE( "064-c5.c5", 0x1000000, 0x200000, CRC(8e34a9f4) SHA1(67b839b426ef3fad0a85d951fdd44c0a45c55226) )
+ ROM_LOAD16_BYTE( "064-c6.c6", 0x1000001, 0x200000, CRC(a43e4766) SHA1(54f282f2b1ff2934cca7acbb4386a2b99a29df3a) )
+ ROM_LOAD16_BYTE( "064-c7.c7", 0x1800000, 0x200000, CRC(59d97215) SHA1(85a960dc7f364df13ee0c2f99a4c53aefb081486) )
+ ROM_LOAD16_BYTE( "064-c8.c8", 0x1800001, 0x200000, CRC(fc092367) SHA1(69ff4ae909dd857de3ca8645d63f8b4bde117448) )
+ROM_END
+
+ROM_START( whpeho ) /* [OLD] World Heroes Perfect - (whpeho) - Hack by Creamymami, Dodowang and Fighters Kim - (Can choose Gokuu, Neo-Dio and Zeus - power hack) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "090eho.p1", 0x100000, 0x100000, CRC(92134471) SHA1(52dc270118e9b3d5ec42b320c8bb778743cf88f5) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "090-s1.s1", CRC(174a880f) SHA1(c35d315d728d119a6e9aa42e0593937c90897449) )
+
+ NEO_BIOS_AUDIO_128K( "090-m1.m1", CRC(28065668) SHA1(0c60d4afa1dccad0135e733104f056be73b54e4e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "090-v1.v1", 0x000000, 0x200000, CRC(30cf2709) SHA1(d1845033f16de2470afd3858ee0efb45176d9ed7) )
+ ROM_LOAD( "064-v2.v2", 0x200000, 0x200000, CRC(b6527edd) SHA1(2bcf5bfa6e117cf4a3728a5e5f5771313c93f22a) )
+ ROM_LOAD( "090-v3.v3", 0x400000, 0x200000, CRC(1908a7ce) SHA1(78f31bcfea33eb94752bbf5226c481baec1af5ac) )
+
+ ROM_REGION( 0x1c00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "090-c1.c1", 0x0000000, 0x400000, CRC(cd30ed9b) SHA1(839c20f7ff31251acc875ae402b5d267e55510c7) )
+ ROM_LOAD16_BYTE( "090-c2.c2", 0x0000001, 0x400000, CRC(10eed5ee) SHA1(12131b1c8c017ea77a98c044b392a5db6aad0143) )
+ ROM_LOAD16_BYTE( "064-c3.c3", 0x0800000, 0x200000, CRC(436d1b31) SHA1(059776d77b91377ed0bcfc278802d659c917fc0f) )
+ ROM_LOAD16_BYTE( "064-c4.c4", 0x0800001, 0x200000, CRC(f9c8dd26) SHA1(25a9eea1d49b21b4a988beb32c25bf2f7796f227) )
+ ROM_LOAD16_BYTE( "064-c5.c5", 0x1000000, 0x200000, CRC(8e34a9f4) SHA1(67b839b426ef3fad0a85d951fdd44c0a45c55226) )
+ ROM_LOAD16_BYTE( "064-c6.c6", 0x1000001, 0x200000, CRC(a43e4766) SHA1(54f282f2b1ff2934cca7acbb4386a2b99a29df3a) )
+ ROM_LOAD16_BYTE( "064-c7.c7", 0x1800000, 0x200000, CRC(59d97215) SHA1(85a960dc7f364df13ee0c2f99a4c53aefb081486) )
+ ROM_LOAD16_BYTE( "064-c8.c8", 0x1800001, 0x200000, CRC(fc092367) SHA1(69ff4ae909dd857de3ca8645d63f8b4bde117448) )
+ROM_END
+
+ROM_START( whphez )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "090hez.p1", 0x100000, 0x100000, CRC(d1b90868) SHA1(344fdcac65adafbf086f6ecef0fcda5a8dc03169) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "090bh.s1", CRC(f2de6500) SHA1(5acc7746394724903b0fd3d4b5acf5bab355c9f4) )
+
+ NEO_BIOS_AUDIO_128K( "090-m1.m1", CRC(28065668) SHA1(0c60d4afa1dccad0135e733104f056be73b54e4e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "090-v1.v1", 0x000000, 0x200000, CRC(30cf2709) SHA1(d1845033f16de2470afd3858ee0efb45176d9ed7) )
+ ROM_LOAD( "064-v2.v2", 0x200000, 0x200000, CRC(b6527edd) SHA1(2bcf5bfa6e117cf4a3728a5e5f5771313c93f22a) )
+ ROM_LOAD( "090-v3.v3", 0x400000, 0x200000, CRC(1908a7ce) SHA1(78f31bcfea33eb94752bbf5226c481baec1af5ac) )
+
+ ROM_REGION( 0x1c00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "090-c1.c1", 0x0000000, 0x400000, CRC(cd30ed9b) SHA1(839c20f7ff31251acc875ae402b5d267e55510c7) )
+ ROM_LOAD16_BYTE( "090-c2.c2", 0x0000001, 0x400000, CRC(10eed5ee) SHA1(12131b1c8c017ea77a98c044b392a5db6aad0143) )
+ ROM_LOAD16_BYTE( "064-c3.c3", 0x0800000, 0x200000, CRC(436d1b31) SHA1(059776d77b91377ed0bcfc278802d659c917fc0f) )
+ ROM_LOAD16_BYTE( "064-c4.c4", 0x0800001, 0x200000, CRC(f9c8dd26) SHA1(25a9eea1d49b21b4a988beb32c25bf2f7796f227) )
+ ROM_LOAD16_BYTE( "064-c5.c5", 0x1000000, 0x200000, CRC(8e34a9f4) SHA1(67b839b426ef3fad0a85d951fdd44c0a45c55226) )
+ ROM_LOAD16_BYTE( "064-c6.c6", 0x1000001, 0x200000, CRC(a43e4766) SHA1(54f282f2b1ff2934cca7acbb4386a2b99a29df3a) )
+ ROM_LOAD16_BYTE( "064-c7.c7", 0x1800000, 0x200000, CRC(59d97215) SHA1(85a960dc7f364df13ee0c2f99a4c53aefb081486) )
+ ROM_LOAD16_BYTE( "064-c8.c8", 0x1800001, 0x200000, CRC(fc092367) SHA1(69ff4ae909dd857de3ca8645d63f8b4bde117448) )
+ROM_END
+
+ROM_START( whpsp )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "090sp.p1", 0x100000, 0x100000, CRC(e7ea5216) SHA1(7383ecb99249ad3e56faecd033cfeeee498c2f9b) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "090bh.s1", CRC(f2de6500) SHA1(5acc7746394724903b0fd3d4b5acf5bab355c9f4) )
+
+ NEO_BIOS_AUDIO_128K( "090-m1.m1", CRC(28065668) SHA1(0c60d4afa1dccad0135e733104f056be73b54e4e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "090-v1.v1", 0x000000, 0x200000, CRC(30cf2709) SHA1(d1845033f16de2470afd3858ee0efb45176d9ed7) )
+ ROM_LOAD( "064-v2.v2", 0x200000, 0x200000, CRC(b6527edd) SHA1(2bcf5bfa6e117cf4a3728a5e5f5771313c93f22a) )
+ ROM_LOAD( "090-v3.v3", 0x400000, 0x200000, CRC(1908a7ce) SHA1(78f31bcfea33eb94752bbf5226c481baec1af5ac) )
+
+ ROM_REGION( 0x1c00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "090-c1.c1", 0x0000000, 0x400000, CRC(cd30ed9b) SHA1(839c20f7ff31251acc875ae402b5d267e55510c7) )
+ ROM_LOAD16_BYTE( "090-c2.c2", 0x0000001, 0x400000, CRC(10eed5ee) SHA1(12131b1c8c017ea77a98c044b392a5db6aad0143) )
+ ROM_LOAD16_BYTE( "064-c3.c3", 0x0800000, 0x200000, CRC(436d1b31) SHA1(059776d77b91377ed0bcfc278802d659c917fc0f) )
+ ROM_LOAD16_BYTE( "064-c4.c4", 0x0800001, 0x200000, CRC(f9c8dd26) SHA1(25a9eea1d49b21b4a988beb32c25bf2f7796f227) )
+ ROM_LOAD16_BYTE( "064-c5.c5", 0x1000000, 0x200000, CRC(8e34a9f4) SHA1(67b839b426ef3fad0a85d951fdd44c0a45c55226) )
+ ROM_LOAD16_BYTE( "064-c6.c6", 0x1000001, 0x200000, CRC(a43e4766) SHA1(54f282f2b1ff2934cca7acbb4386a2b99a29df3a) )
+ ROM_LOAD16_BYTE( "064-c7.c7", 0x1800000, 0x200000, CRC(59d97215) SHA1(85a960dc7f364df13ee0c2f99a4c53aefb081486) )
+ ROM_LOAD16_BYTE( "064-c8.c8", 0x1800001, 0x200000, CRC(fc092367) SHA1(69ff4ae909dd857de3ca8645d63f8b4bde117448) )
+ROM_END
+
+ROM_START( whpss )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "090ss.p1", 0x100000, 0x100000, CRC(9c1a79d5) SHA1(13f924cf08d17205e10c282a9555d03a9e355112) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "090-s1.s1", CRC(174a880f) SHA1(c35d315d728d119a6e9aa42e0593937c90897449) )
+
+ NEO_BIOS_AUDIO_128K( "090-m1.m1", CRC(28065668) SHA1(0c60d4afa1dccad0135e733104f056be73b54e4e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "090-v1.v1", 0x000000, 0x200000, CRC(30cf2709) SHA1(d1845033f16de2470afd3858ee0efb45176d9ed7) )
+ ROM_LOAD( "064-v2.v2", 0x200000, 0x200000, CRC(b6527edd) SHA1(2bcf5bfa6e117cf4a3728a5e5f5771313c93f22a) )
+ ROM_LOAD( "090-v3.v3", 0x400000, 0x200000, CRC(1908a7ce) SHA1(78f31bcfea33eb94752bbf5226c481baec1af5ac) )
+
+ ROM_REGION( 0x1c00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "090ss.c1", 0x0000000, 0x400000, CRC(a56ebf84) SHA1(664bda43b529934a4594a205e578044acface2be) )
+ ROM_LOAD16_BYTE( "090ss.c2", 0x0000001, 0x400000, CRC(6d589146) SHA1(d24687310611ce4d61dd2e2743258d9ca8855c03) )
+ ROM_LOAD16_BYTE( "064-c3.c3", 0x0800000, 0x200000, CRC(436d1b31) SHA1(059776d77b91377ed0bcfc278802d659c917fc0f) )
+ ROM_LOAD16_BYTE( "064-c4.c4", 0x0800001, 0x200000, CRC(f9c8dd26) SHA1(25a9eea1d49b21b4a988beb32c25bf2f7796f227) )
+ ROM_LOAD16_BYTE( "064-c5.c5", 0x1000000, 0x200000, CRC(8e34a9f4) SHA1(67b839b426ef3fad0a85d951fdd44c0a45c55226) )
+ ROM_LOAD16_BYTE( "064-c6.c6", 0x1000001, 0x200000, CRC(a43e4766) SHA1(54f282f2b1ff2934cca7acbb4386a2b99a29df3a) )
+ ROM_LOAD16_BYTE( "064-c7.c7", 0x1800000, 0x200000, CRC(59d97215) SHA1(85a960dc7f364df13ee0c2f99a4c53aefb081486) )
+ ROM_LOAD16_BYTE( "064-c8.c8", 0x1800001, 0x200000, CRC(fc092367) SHA1(69ff4ae909dd857de3ca8645d63f8b4bde117448) )
+ROM_END
+
+
+ROM_START( wh1bs )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "053bs.p1", 0x000000, 0x080000, CRC(222ef9ea) SHA1(81bdded4fc61b321afc8ec050d192e4384d129cf) )
+ ROM_LOAD16_WORD_SWAP( "053-p2.p2", 0x080000, 0x080000, CRC(f198ed45) SHA1(24ccc091e97f63796562bb5b30df51f39bd504ef) )
+
+ NEO_SFIX_128K( "053-s1.s1", CRC(8c2c2d6b) SHA1(87fa79611c6f8886dcc8766814829c669c65b40f) )
+
+ NEO_BIOS_AUDIO_128K( "053-m1.m1", CRC(1bd9d04b) SHA1(65cd7b002123ed1a3111e3d942608d0082799ff3) )
+
+ ROM_REGION( 0x300000, "ymsnd", 0 )
+ ROM_LOAD( "053-v2.v2", 0x000000, 0x200000, CRC(a68df485) SHA1(007fa715423fba72c899cd3db3f4bec13281cf7a) )
+ ROM_LOAD( "053-v4.v4", 0x200000, 0x100000, CRC(7bea8f66) SHA1(428e8721bd87f7faa756adb1e12672219be46c1d) )
+
+ ROM_REGION( 0x600000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "053-c1.c1", 0x000000, 0x100000, CRC(85eb5bce) SHA1(3d03d29296ca6e6b5106aac4aaeec9d4b4ed1313) )
+ ROM_CONTINUE( 0x400000, 0x100000 )
+ ROM_LOAD16_BYTE( "053-c2.c2", 0x000001, 0x100000, CRC(ec93b048) SHA1(d4159210df94e259f874a4671d271ec27be13451) )
+ ROM_CONTINUE( 0x400001, 0x100000 )
+ ROM_LOAD16_BYTE( "053-c3.c3", 0x200000, 0x100000, CRC(0dd64965) SHA1(e97b3b8a461da5e8861b3dfdacb25e007ced37a1) )
+ ROM_LOAD16_BYTE( "053-c4.c4", 0x200001, 0x100000, CRC(9270d954) SHA1(a2ef909868f6b06cdcc22a63ddf6c96be12b999c) )
+ROM_END
+
+
+ROM_START( wh2bs )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "057bs.p1", 0x100000, 0x100000, CRC(6e6a0077) SHA1(a0a0eca1aff5dec55f863b1cb1f67bbe4ac3530a) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "057-s1.s1", CRC(fcaeb3a4) SHA1(1f3f85e38b8552333261c04ae5af0d6e3b310622) )
+
+ NEO_BIOS_AUDIO_128K( "057-m1.m1", CRC(8fa3bc77) SHA1(982f92978671e4ee66630948e6bb7565b37b5dc0) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "057-v1.v1", 0x000000, 0x200000, CRC(8877e301) SHA1(1bab988d74ea8fd12db201c257ec844622cf5f4e) )
+ ROM_LOAD( "057-v2.v2", 0x200000, 0x200000, CRC(c1317ff4) SHA1(4c28b2b5998abaeaa5143f2f3a9ba52c6041f4f3) )
+
+ ROM_REGION( 0xc00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "057-c1.c1", 0x000000, 0x200000, CRC(21c6bb91) SHA1(a2c17d0c91dd59528d8fa7fe110af8b20b25ff99) )
+ ROM_LOAD16_BYTE( "057-c2.c2", 0x000001, 0x200000, CRC(a3999925) SHA1(0ee861a77850d378d03c1bf00b9692abd860c759) )
+ ROM_LOAD16_BYTE( "057-c3.c3", 0x400000, 0x200000, CRC(b725a219) SHA1(4857687d156a9150a69b97d2729245a51c144a0c) )
+ ROM_LOAD16_BYTE( "057-c4.c4", 0x400001, 0x200000, CRC(8d96425e) SHA1(0f79c868a6a33ad25e38d842f30ec4440d809033) )
+ ROM_LOAD16_BYTE( "057-c5.c5", 0x800000, 0x200000, CRC(b20354af) SHA1(da7609fd467f2f4d71d92970f438a04d11ab1cc1) )
+ ROM_LOAD16_BYTE( "057-c6.c6", 0x800001, 0x200000, CRC(b13d1de3) SHA1(7d749c23a33d90fe50279e884540d71cf1aaaa6b) )
+ROM_END
+
+ROM_START( wh2ey )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "057ey.p1", 0x100000, 0x100000, CRC(07389ed9) SHA1(8c51b9f069a8de49bf313ec9222dddd09c520bfe) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "057-s1.s1", CRC(fcaeb3a4) SHA1(1f3f85e38b8552333261c04ae5af0d6e3b310622) )
+
+ NEO_BIOS_AUDIO_128K( "057-m1.m1", CRC(8fa3bc77) SHA1(982f92978671e4ee66630948e6bb7565b37b5dc0) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "057-v1.v1", 0x000000, 0x200000, CRC(8877e301) SHA1(1bab988d74ea8fd12db201c257ec844622cf5f4e) )
+ ROM_LOAD( "057-v2.v2", 0x200000, 0x200000, CRC(c1317ff4) SHA1(4c28b2b5998abaeaa5143f2f3a9ba52c6041f4f3) )
+
+ ROM_REGION( 0xc00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "057-c1.c1", 0x000000, 0x200000, CRC(21c6bb91) SHA1(a2c17d0c91dd59528d8fa7fe110af8b20b25ff99) )
+ ROM_LOAD16_BYTE( "057-c2.c2", 0x000001, 0x200000, CRC(a3999925) SHA1(0ee861a77850d378d03c1bf00b9692abd860c759) )
+ ROM_LOAD16_BYTE( "057-c3.c3", 0x400000, 0x200000, CRC(b725a219) SHA1(4857687d156a9150a69b97d2729245a51c144a0c) )
+ ROM_LOAD16_BYTE( "057-c4.c4", 0x400001, 0x200000, CRC(8d96425e) SHA1(0f79c868a6a33ad25e38d842f30ec4440d809033) )
+ ROM_LOAD16_BYTE( "057-c5.c5", 0x800000, 0x200000, CRC(b20354af) SHA1(da7609fd467f2f4d71d92970f438a04d11ab1cc1) )
+ ROM_LOAD16_BYTE( "057-c6.c6", 0x800001, 0x200000, CRC(b13d1de3) SHA1(7d749c23a33d90fe50279e884540d71cf1aaaa6b) )
+ROM_END
+
+ROM_START( wh2ja ) // World Heroes 2 Jet old set that was in MAME
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "064-p1.p1", 0x100000, 0x100000, CRC(385a2e86) SHA1(cfde4a1aeae038a3d6ca9946065624f097682d3d) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "064-s1.s1", CRC(2a03998a) SHA1(5e33f469982f12d4622a06d323a345f192bf88e6) )
+
+ NEO_BIOS_AUDIO_128K( "064-m1.m1", CRC(d2eec9d3) SHA1(09478787045f1448d19d064dd3d540d1741fd619) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "064-v1.v1", 0x000000, 0x200000, CRC(aa277109) SHA1(35c22b15bb0a4d0ab118cb22a2d450d03995a17c) )
+ ROM_LOAD( "064-v2.v2", 0x200000, 0x200000, CRC(b6527edd) SHA1(2bcf5bfa6e117cf4a3728a5e5f5771313c93f22a) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "064a-c13.c1", 0x000000, 0x400000, CRC(771a6365) SHA1(646bdf3a79819fbca98f513c172b9e9500c073be) )
+ ROM_LOAD16_BYTE( "064a-c24.c2", 0x000001, 0x400000, CRC(e7863a05) SHA1(39d34119137216f914b8b8b7b3e622a6c210f130) )
+ ROM_LOAD16_BYTE( "064a-c57.c3", 0x800000, 0x400000, CRC(64594ed4) SHA1(982dbb932c0cb2eb9292bf19c463fd618c8180f3) )
+ ROM_LOAD16_BYTE( "064a-c68.c4", 0x800001, 0x400000, CRC(6e385398) SHA1(e74a0e72876bff8766152b76e5d94f2958b03cf2) )
+ROM_END
+
+ROM_START( wh2jb )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "064b.p1", 0x100000, 0x100000, CRC(80ce9674) SHA1(ca081af472a114a3ac0c54b1fd21fe565a45ff22) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "064-s1.s1", CRC(2a03998a) SHA1(5e33f469982f12d4622a06d323a345f192bf88e6) )
+
+ NEO_BIOS_AUDIO_128K( "064-m1.m1", CRC(d2eec9d3) SHA1(09478787045f1448d19d064dd3d540d1741fd619) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "064-v1.v1", 0x000000, 0x200000, CRC(aa277109) SHA1(35c22b15bb0a4d0ab118cb22a2d450d03995a17c) )
+ ROM_LOAD( "064-v2.v2", 0x200000, 0x200000, CRC(b6527edd) SHA1(2bcf5bfa6e117cf4a3728a5e5f5771313c93f22a) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "064-c1.c1", 0x000000, 0x200000, CRC(2ec87cea) SHA1(e713ec7839a7665edee6ee3f82a6e530b3b4bd7c) )
+ ROM_LOAD16_BYTE( "064-c2.c2", 0x000001, 0x200000, CRC(526b81ab) SHA1(b5f0a2f04489539ed6b9d0810b12787356c64b23) )
+ ROM_LOAD16_BYTE( "064-c3.c3", 0x400000, 0x200000, CRC(436d1b31) SHA1(059776d77b91377ed0bcfc278802d659c917fc0f) )
+ ROM_LOAD16_BYTE( "064-c4.c4", 0x400001, 0x200000, CRC(f9c8dd26) SHA1(25a9eea1d49b21b4a988beb32c25bf2f7796f227) )
+ ROM_LOAD16_BYTE( "064-c5.c5", 0x800000, 0x200000, CRC(8e34a9f4) SHA1(67b839b426ef3fad0a85d951fdd44c0a45c55226) )
+ ROM_LOAD16_BYTE( "064-c6.c6", 0x800001, 0x200000, CRC(a43e4766) SHA1(54f282f2b1ff2934cca7acbb4386a2b99a29df3a) )
+ ROM_LOAD16_BYTE( "064-c7.c7", 0xc00000, 0x200000, CRC(59d97215) SHA1(85a960dc7f364df13ee0c2f99a4c53aefb081486) )
+ ROM_LOAD16_BYTE( "064-c8.c8", 0xc00001, 0x200000, CRC(fc092367) SHA1(69ff4ae909dd857de3ca8645d63f8b4bde117448) )
+ROM_END
+
+
+
+GAME( 1995, whpb, whp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami, Dodowang", "World Heroes Perfect (Add Char)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, whpb2, whp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami, Dodowang", "World Heroes Perfect (Add Char - 2 with Icons)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, whpbh, whp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Dodowang", "World Heroes Perfect (Boss Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, whpbho, whp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Dodowang", "World Heroes Perfect (Boss Hack - Older - Has bug)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, whpbho2, whp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami, Dodowang", "World Heroes Perfect (Add Char - Old - BugFix)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, whpeh, whp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami, Dodowang, Fighters Kim", "World Heroes Perfect (Add Char - Pow hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, whpeho, whp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Creamymami, Dodowang, Fighters Kim", "World Heroes Perfect (Add Char - Pow hack - Old)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, whphez, whp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Zeng_K", "World Heroes Perfect (Boss hack by Zeng_K)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, whpsp, whp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yashional", "World Heroes Perfect (Special Boss hack by Yashional)", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, whpss, whp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Eddids", "World Heroes Perfect (SS v1.0 hack by Eddids (EGHT) 2007-12-25)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1992, wh1bs, wh1, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yumeji", "World Heroes (Boss hack by Yumeji)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1993, wh2bs, wh2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yumeji", "World Heroes 2 (Boss hack by Yumeji)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, wh2ey, wh2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "ZKW", "World Heroes 2 (Boss, PPX hack, remixed by ZKW)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, wh2ja, wh2j, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "ADK / SNK", "World Heroes 2 Jet (ADM-007)(ADH-007)(old set)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, wh2jb, wh2j, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "0days", "World Heroes 2 Jet (Boss hack by 0days (EGCG))", MACHINE_SUPPORTS_SAVE )
+
+
+//PSmame
+
+
+ROM_START( whps01 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "090hc01.p1", 0x100000, 0x100000, CRC(e1344fc1) SHA1(7b3b80b06466bf1b4fc912a8bda3dd7e8d3192a2) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "090bh.s1", CRC(f2de6500) SHA1(5acc7746394724903b0fd3d4b5acf5bab355c9f4) )
+
+ NEO_BIOS_AUDIO_128K( "090-m1.m1", CRC(28065668) SHA1(0c60d4afa1dccad0135e733104f056be73b54e4e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "090-v1.v1", 0x000000, 0x200000, CRC(30cf2709) SHA1(d1845033f16de2470afd3858ee0efb45176d9ed7) )
+ ROM_LOAD( "064-v2.v2", 0x200000, 0x200000, CRC(b6527edd) SHA1(2bcf5bfa6e117cf4a3728a5e5f5771313c93f22a) )
+ ROM_LOAD( "090-v3.v3", 0x400000, 0x200000, CRC(1908a7ce) SHA1(78f31bcfea33eb94752bbf5226c481baec1af5ac) )
+
+ ROM_REGION( 0x1c00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "090-c1.c1", 0x0000000, 0x400000, CRC(cd30ed9b) SHA1(839c20f7ff31251acc875ae402b5d267e55510c7) )
+ ROM_LOAD16_BYTE( "090-c2.c2", 0x0000001, 0x400000, CRC(10eed5ee) SHA1(12131b1c8c017ea77a98c044b392a5db6aad0143) )
+ ROM_LOAD16_BYTE( "064-c3.c3", 0x0800000, 0x200000, CRC(436d1b31) SHA1(059776d77b91377ed0bcfc278802d659c917fc0f) )
+ ROM_LOAD16_BYTE( "064-c4.c4", 0x0800001, 0x200000, CRC(f9c8dd26) SHA1(25a9eea1d49b21b4a988beb32c25bf2f7796f227) )
+ ROM_LOAD16_BYTE( "064-c5.c5", 0x1000000, 0x200000, CRC(8e34a9f4) SHA1(67b839b426ef3fad0a85d951fdd44c0a45c55226) )
+ ROM_LOAD16_BYTE( "064-c6.c6", 0x1000001, 0x200000, CRC(a43e4766) SHA1(54f282f2b1ff2934cca7acbb4386a2b99a29df3a) )
+ ROM_LOAD16_BYTE( "064-c7.c7", 0x1800000, 0x200000, CRC(59d97215) SHA1(85a960dc7f364df13ee0c2f99a4c53aefb081486) )
+ ROM_LOAD16_BYTE( "064-c8.c8", 0x1800001, 0x200000, CRC(fc092367) SHA1(69ff4ae909dd857de3ca8645d63f8b4bde117448) )
+ROM_END
+
+ ROM_START( whps02 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "090hc02.p1", 0x100000, 0x100000, CRC(af34e7f7) SHA1(681a9f94528267564c23b1b155b20827cdbf44f2) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "090bh.s1", CRC(f2de6500) SHA1(5acc7746394724903b0fd3d4b5acf5bab355c9f4) )
+
+ NEO_BIOS_AUDIO_128K( "090-m1.m1", CRC(28065668) SHA1(0c60d4afa1dccad0135e733104f056be73b54e4e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "090-v1.v1", 0x000000, 0x200000, CRC(30cf2709) SHA1(d1845033f16de2470afd3858ee0efb45176d9ed7) )
+ ROM_LOAD( "064-v2.v2", 0x200000, 0x200000, CRC(b6527edd) SHA1(2bcf5bfa6e117cf4a3728a5e5f5771313c93f22a) )
+ ROM_LOAD( "090-v3.v3", 0x400000, 0x200000, CRC(1908a7ce) SHA1(78f31bcfea33eb94752bbf5226c481baec1af5ac) )
+
+ ROM_REGION( 0x1c00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "090-c1.c1", 0x0000000, 0x400000, CRC(cd30ed9b) SHA1(839c20f7ff31251acc875ae402b5d267e55510c7) )
+ ROM_LOAD16_BYTE( "090-c2.c2", 0x0000001, 0x400000, CRC(10eed5ee) SHA1(12131b1c8c017ea77a98c044b392a5db6aad0143) )
+ ROM_LOAD16_BYTE( "064-c3.c3", 0x0800000, 0x200000, CRC(436d1b31) SHA1(059776d77b91377ed0bcfc278802d659c917fc0f) )
+ ROM_LOAD16_BYTE( "064-c4.c4", 0x0800001, 0x200000, CRC(f9c8dd26) SHA1(25a9eea1d49b21b4a988beb32c25bf2f7796f227) )
+ ROM_LOAD16_BYTE( "064-c5.c5", 0x1000000, 0x200000, CRC(8e34a9f4) SHA1(67b839b426ef3fad0a85d951fdd44c0a45c55226) )
+ ROM_LOAD16_BYTE( "064-c6.c6", 0x1000001, 0x200000, CRC(a43e4766) SHA1(54f282f2b1ff2934cca7acbb4386a2b99a29df3a) )
+ ROM_LOAD16_BYTE( "064-c7.c7", 0x1800000, 0x200000, CRC(59d97215) SHA1(85a960dc7f364df13ee0c2f99a4c53aefb081486) )
+ ROM_LOAD16_BYTE( "064-c8.c8", 0x1800001, 0x200000, CRC(fc092367) SHA1(69ff4ae909dd857de3ca8645d63f8b4bde117448) )
+ROM_END
+
+ ROM_START( whps03 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "090hc03.p1", 0x100000, 0x100000, CRC(b6f92f3e) SHA1(c9580eb1c396aceb409c68cf4f7d229cbc2a12d2) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "090bh.s1", CRC(f2de6500) SHA1(5acc7746394724903b0fd3d4b5acf5bab355c9f4) )
+
+ NEO_BIOS_AUDIO_128K( "090-m1.m1", CRC(28065668) SHA1(0c60d4afa1dccad0135e733104f056be73b54e4e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "090-v1.v1", 0x000000, 0x200000, CRC(30cf2709) SHA1(d1845033f16de2470afd3858ee0efb45176d9ed7) )
+ ROM_LOAD( "064-v2.v2", 0x200000, 0x200000, CRC(b6527edd) SHA1(2bcf5bfa6e117cf4a3728a5e5f5771313c93f22a) )
+ ROM_LOAD( "090-v3.v3", 0x400000, 0x200000, CRC(1908a7ce) SHA1(78f31bcfea33eb94752bbf5226c481baec1af5ac) )
+
+ ROM_REGION( 0x1c00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "090-c1.c1", 0x0000000, 0x400000, CRC(cd30ed9b) SHA1(839c20f7ff31251acc875ae402b5d267e55510c7) )
+ ROM_LOAD16_BYTE( "090-c2.c2", 0x0000001, 0x400000, CRC(10eed5ee) SHA1(12131b1c8c017ea77a98c044b392a5db6aad0143) )
+ ROM_LOAD16_BYTE( "064-c3.c3", 0x0800000, 0x200000, CRC(436d1b31) SHA1(059776d77b91377ed0bcfc278802d659c917fc0f) )
+ ROM_LOAD16_BYTE( "064-c4.c4", 0x0800001, 0x200000, CRC(f9c8dd26) SHA1(25a9eea1d49b21b4a988beb32c25bf2f7796f227) )
+ ROM_LOAD16_BYTE( "064-c5.c5", 0x1000000, 0x200000, CRC(8e34a9f4) SHA1(67b839b426ef3fad0a85d951fdd44c0a45c55226) )
+ ROM_LOAD16_BYTE( "064-c6.c6", 0x1000001, 0x200000, CRC(a43e4766) SHA1(54f282f2b1ff2934cca7acbb4386a2b99a29df3a) )
+ ROM_LOAD16_BYTE( "064-c7.c7", 0x1800000, 0x200000, CRC(59d97215) SHA1(85a960dc7f364df13ee0c2f99a4c53aefb081486) )
+ ROM_LOAD16_BYTE( "064-c8.c8", 0x1800001, 0x200000, CRC(fc092367) SHA1(69ff4ae909dd857de3ca8645d63f8b4bde117448) )
+ROM_END
+
+ ROM_START( whps04 )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "090hc04.p1", 0x100000, 0x100000, CRC(1a994bd4) SHA1(70d8a8297c6258a40a33e491e03c59477dadd449) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "090bh.s1", CRC(f2de6500) SHA1(5acc7746394724903b0fd3d4b5acf5bab355c9f4) )
+
+ NEO_BIOS_AUDIO_128K( "090-m1.m1", CRC(28065668) SHA1(0c60d4afa1dccad0135e733104f056be73b54e4e) )
+
+ ROM_REGION( 0x600000, "ymsnd", 0 )
+ ROM_LOAD( "090-v1.v1", 0x000000, 0x200000, CRC(30cf2709) SHA1(d1845033f16de2470afd3858ee0efb45176d9ed7) )
+ ROM_LOAD( "064-v2.v2", 0x200000, 0x200000, CRC(b6527edd) SHA1(2bcf5bfa6e117cf4a3728a5e5f5771313c93f22a) )
+ ROM_LOAD( "090-v3.v3", 0x400000, 0x200000, CRC(1908a7ce) SHA1(78f31bcfea33eb94752bbf5226c481baec1af5ac) )
+
+ ROM_REGION( 0x1c00000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "090-c1.c1", 0x0000000, 0x400000, CRC(cd30ed9b) SHA1(839c20f7ff31251acc875ae402b5d267e55510c7) )
+ ROM_LOAD16_BYTE( "090-c2.c2", 0x0000001, 0x400000, CRC(10eed5ee) SHA1(12131b1c8c017ea77a98c044b392a5db6aad0143) )
+ ROM_LOAD16_BYTE( "064-c3.c3", 0x0800000, 0x200000, CRC(436d1b31) SHA1(059776d77b91377ed0bcfc278802d659c917fc0f) )
+ ROM_LOAD16_BYTE( "064-c4.c4", 0x0800001, 0x200000, CRC(f9c8dd26) SHA1(25a9eea1d49b21b4a988beb32c25bf2f7796f227) )
+ ROM_LOAD16_BYTE( "064-c5.c5", 0x1000000, 0x200000, CRC(8e34a9f4) SHA1(67b839b426ef3fad0a85d951fdd44c0a45c55226) )
+ ROM_LOAD16_BYTE( "064-c6.c6", 0x1000001, 0x200000, CRC(a43e4766) SHA1(54f282f2b1ff2934cca7acbb4386a2b99a29df3a) )
+ ROM_LOAD16_BYTE( "064-c7.c7", 0x1800000, 0x200000, CRC(59d97215) SHA1(85a960dc7f364df13ee0c2f99a4c53aefb081486) )
+ ROM_LOAD16_BYTE( "064-c8.c8", 0x1800001, 0x200000, CRC(fc092367) SHA1(69ff4ae909dd857de3ca8645d63f8b4bde117448) )
+ROM_END
+
+/*************************************
+ *
+ * World Heroes 1 Jet
+ *
+ *************************************/
+
+ROM_START( wh1s01 )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "053hc01.p1", 0x000000, 0x080000, CRC(a7b49883) SHA1(c6dfe2326e66afe4b0eb670ce15a36b4f36b7bc8) )
+ ROM_LOAD16_WORD_SWAP( "053-epr.p2", 0x080000, 0x080000, CRC(0e33e8a3) SHA1(4b7086edb504f3c30529d51ba8f453d48eba5164) )
+ /* P's on eprom, correct chip label unknown */
+
+ NEO_SFIX_128K( "053-s1.s1", CRC(8c2c2d6b) SHA1(87fa79611c6f8886dcc8766814829c669c65b40f) )
+
+ NEO_BIOS_AUDIO_128K( "053-m1.m1", CRC(1bd9d04b) SHA1(65cd7b002123ed1a3111e3d942608d0082799ff3) )
+
+ ROM_REGION( 0x300000, "ymsnd", 0 )
+ ROM_LOAD( "053-v2.v2", 0x000000, 0x200000, CRC(a68df485) SHA1(007fa715423fba72c899cd3db3f4bec13281cf7a) )
+ ROM_LOAD( "053-v4.v4", 0x200000, 0x100000, CRC(7bea8f66) SHA1(428e8721bd87f7faa756adb1e12672219be46c1d) )
+
+ ROM_REGION( 0x600000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "053-c1.c1", 0x000000, 0x100000, CRC(85eb5bce) SHA1(3d03d29296ca6e6b5106aac4aaeec9d4b4ed1313) )
+ ROM_CONTINUE( 0x400000, 0x100000 )
+ ROM_LOAD16_BYTE( "053-c2.c2", 0x000001, 0x100000, CRC(ec93b048) SHA1(d4159210df94e259f874a4671d271ec27be13451) )
+ ROM_CONTINUE( 0x400001, 0x100000 )
+ ROM_LOAD16_BYTE( "053-c3.c3", 0x200000, 0x100000, CRC(0dd64965) SHA1(e97b3b8a461da5e8861b3dfdacb25e007ced37a1) )
+ ROM_LOAD16_BYTE( "053-c4.c4", 0x200001, 0x100000, CRC(9270d954) SHA1(a2ef909868f6b06cdcc22a63ddf6c96be12b999c) )
+ROM_END
+
+/*************************************
+ *
+ * World Heroes 2 Jet
+ *
+ *************************************/
+
+ROM_START( wh2s01 ) // World Heroes 2 Jet old set that was in MAME
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "064hr.p1", 0x100000, 0x100000, CRC(14d5f4af) SHA1(62de8c90758baef92bd8174ced32c75c0e7cd622) )
+ ROM_CONTINUE( 0x000000, 0x100000 )
+
+ NEO_SFIX_128K( "064-s1.s1", CRC(2a03998a) SHA1(5e33f469982f12d4622a06d323a345f192bf88e6) )
+
+ NEO_BIOS_AUDIO_128K( "064-m1.m1", CRC(d2eec9d3) SHA1(09478787045f1448d19d064dd3d540d1741fd619) )
+
+ ROM_REGION( 0x400000, "ymsnd", 0 )
+ ROM_LOAD( "064-v1.v1", 0x000000, 0x200000, CRC(aa277109) SHA1(35c22b15bb0a4d0ab118cb22a2d450d03995a17c) )
+ ROM_LOAD( "064-v2.v2", 0x200000, 0x200000, CRC(b6527edd) SHA1(2bcf5bfa6e117cf4a3728a5e5f5771313c93f22a) )
+
+ ROM_REGION( 0x1000000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "064a-c13.c1", 0x000000, 0x400000, CRC(771a6365) SHA1(646bdf3a79819fbca98f513c172b9e9500c073be) )
+ ROM_LOAD16_BYTE( "064a-c24.c2", 0x000001, 0x400000, CRC(e7863a05) SHA1(39d34119137216f914b8b8b7b3e622a6c210f130) )
+ ROM_LOAD16_BYTE( "064a-c57.c3", 0x800000, 0x400000, CRC(64594ed4) SHA1(982dbb932c0cb2eb9292bf19c463fd618c8180f3) )
+ ROM_LOAD16_BYTE( "064a-c68.c4", 0x800001, 0x400000, CRC(6e385398) SHA1(e74a0e72876bff8766152b76e5d94f2958b03cf2) )
+ROM_END
+
+GAME( 1995, whps01, whp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "World Heroes Perfect (Description Of Unknown Origin 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, whps02, whp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "World Heroes Perfect (Add Character Boss)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, whps03, whp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "World Heroes Perfect (Add Character Boss Set 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, whps04, whp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "World Heroes Perfect (Add Character Boss Set 02)", MACHINE_SUPPORTS_SAVE )
+ // World Heroes 2 Jet
+GAME( 1992, wh1s01, wh1, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "World Heroes (Description Of Unknown Origin 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, wh2s01, wh2j, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hacks", "World Heroes 2 Jet (Description Of Unknown Origin 01)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/nmk16.cpp b/src/hbmame/drivers/nmk16.cpp
new file mode 100644
index 00000000000..8054bde2364
--- /dev/null
+++ b/src/hbmame/drivers/nmk16.cpp
@@ -0,0 +1,65 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/nmk16.cpp"
+
+ROM_START( tdragonp ) // not working at all
+ ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 code -bitswapped- */
+ ROM_LOAD16_BYTE( "91070_68k.8p", 0x00000, 0x20000, CRC(6930fffc) SHA1(571cc735dca654b77cd759b6cc52a74c24d88865) )
+ ROM_LOAD16_BYTE( "91070_68k.7p", 0x00001, 0x20000, CRC(c2d90c90) SHA1(d6c3dd955e516e9dc5efbb7aebc6dee9c49a8c98) )
+ ROM_FILL(0, 1, 0) // fix stack
+ ROM_FILL(2, 2, 0)
+
+ ROM_REGION( 0x020000, "fgtile", 0 )
+ ROM_LOAD( "91070.6", 0x000000, 0x20000, CRC(fe365920) SHA1(7581931cb95cd5a8ed40e4f5385b533e3d19af22) ) /* 8x8 tiles */
+
+ ROM_REGION( 0x100000, "bgtile", 0 )
+ ROM_LOAD( "91070.5", 0x000000, 0x100000, CRC(d0bde826) SHA1(3b74d5fc88a4a9329e101ee72f393608d327d816) ) /* 16x16 tiles */
+
+ ROM_REGION( 0x100000, "sprites", 0 )
+ ROM_LOAD16_WORD_SWAP( "91070.4", 0x000000, 0x100000, CRC(3eedc2fe) SHA1(9f48986c231a8fbc07f2b39b2017d1e967b2ed3c) ) /* Sprites */
+
+ ROM_REGION( 0x010000, "audiocpu", 0 ) /* Code for (unknown?) CPU */
+ ROM_LOAD( "91070.1", 0x00000, 0x10000, CRC(bf493d74) SHA1(6f8f5eff4b71fb6cabda10075cfa88a3f607859e) )
+
+ ROM_REGION( 0x080000, "oki1", 0 ) /* OKIM6295 samples */
+ ROM_LOAD( "91070.3", 0x00000, 0x80000, CRC(ae6875a8) SHA1(bfdb350b3d3fce2bead1ac60875beafe427765ed) ) /* 0x20000 - 0x80000 banked */
+
+ ROM_REGION( 0x080000, "oki2", 0 ) /* OKIM6295 samples */
+ ROM_LOAD( "91070.2", 0x00000, 0x80000, CRC(ecfea43e) SHA1(d664dfa6698fec8e602523bdae16068f1ff6547b) ) /* 0x20000 - 0x80000 banked */
+
+ ROM_REGION( 0x0200, "proms", 0 )
+ ROM_LOAD( "91070.9", 0x0000, 0x0100, CRC(cfdbb86c) SHA1(588822f6308a860937349c9106c2b4b1a75823ec) ) /* unknown */
+ ROM_LOAD( "91070.10", 0x0100, 0x0100, CRC(e6ead349) SHA1(6d81b1c0233580aa48f9718bade42d640e5ef3dd) ) /* unknown */
+ROM_END
+
+
+ROM_START( tdragon2p )
+ ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "6p.rom", 0x00000, 0x80000, CRC(f99f4bf8) SHA1(34dfc188d94b89efdaa61cfc40af88868d7f22db) )
+
+ ROM_REGION( 0x20000, "audiocpu", 0 ) /* Z80 code */
+ ROM_LOAD( "5.bin", 0x00000, 0x20000, CRC(b870be61) SHA1(ea5d45c3a3ab805e55806967f00167cf6366212e) )
+
+ ROM_REGION( 0x020000, "fgtile", 0 )
+ ROM_LOAD( "1.bin", 0x000000, 0x020000, CRC(d488aafa) SHA1(4d05e7ca075b638dd90ae4c9f224817a8a3ae9f3) ) /* 8x8 tiles */
+
+ ROM_REGION( 0x200000, "bgtile", 0 )
+ ROM_LOAD( "ww930914.2", 0x000000, 0x200000, CRC(f968c65d) SHA1(fd6d21bba53f945b1597d7d0735bc62dd44d5498) ) /* 16x16 tiles */
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD16_WORD_SWAP( "ww930917.7", 0x000000, 0x200000, CRC(b98873cb) SHA1(cc19200865176e940ff68e12de81f029b51c2084) ) /* Sprites */
+ ROM_LOAD16_WORD_SWAP( "ww930918.8", 0x200000, 0x200000, CRC(baee84b2) SHA1(b325b00e6147266dbdc840e03556004531dc2038) )
+
+ ROM_REGION( 0x240000, "oki1", 0 ) /* OKIM6295 samples */
+ ROM_LOAD( "ww930916.4", 0x040000, 0x200000, CRC(07c35fe6) SHA1(33547bd88764704310f2ef8cf3bfe21ceb56d5b7) ) /* all banked */
+
+ ROM_REGION( 0x240000, "oki2", 0 ) /* OKIM6295 samples */
+ ROM_LOAD( "ww930915.3", 0x040000, 0x200000, CRC(82025bab) SHA1(ac6053700326ea730d00ec08193e2c8a2a019f0b) ) /* all banked */
+
+ ROM_REGION( 0x0200, "proms", 0 )
+ ROM_LOAD( "9.bpr", 0x0000, 0x0100, CRC(435653a2) SHA1(575b4a46ea65179de3042614da438d2f6d8b572e) ) /* unknown */
+ ROM_LOAD( "10.bpr", 0x0100, 0x0100, CRC(e6ead349) SHA1(6d81b1c0233580aa48f9718bade42d640e5ef3dd) ) /* unknown */
+ROM_END
+
+GAME( 1991, tdragonp, tdragon, tdragon, tdragon, driver_device, 0, ROT270, "Trap15", "Thunder Dragon Practice Mode (9th Jan. 1992 - v1.01)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1993, tdragon2p,tdragon2, tdragon2, tdragon2, nmk16_state, banked_audiocpu, ROT270, "Trap15", "Thunder Dragon 2 Practice Mode (9th Nov. 1993 - v1.0)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
diff --git a/src/hbmame/drivers/pacland.cpp b/src/hbmame/drivers/pacland.cpp
new file mode 100644
index 00000000000..d895a1b9826
--- /dev/null
+++ b/src/hbmame/drivers/pacland.cpp
@@ -0,0 +1,106 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/pacland.cpp"
+
+ROM_START( mariopac )
+ ROM_REGION( 0x20000, "maincpu", 0 )
+ ROM_LOAD( "pl5_01b.8b", 0x08000, 0x4000, CRC(b0ea7631) SHA1(424afa6f397310c7af39c9e8b580aa9ccd42c39c) )
+ ROM_LOAD( "pl5_02.8d", 0x0C000, 0x4000, CRC(d903e84e) SHA1(25338726227bfbec65847879aac5228a6a307db4) )
+ ROM_LOAD( "pl1_3.8e", 0x10000, 0x4000, CRC(aa9fa739) SHA1(7b1f7857eb5f68e166b1f8988c82051aaf05df48) )
+ ROM_LOAD( "pl1_4.8f", 0x14000, 0x4000, CRC(2b895a90) SHA1(820f8873c6a5a736089406d0f03d491dfb82d00d) )
+ ROM_LOAD( "pl1_5.8h", 0x18000, 0x4000, CRC(7af66200) SHA1(f44161ded1633e9801b7a9cd84d481e53823f5d9) )
+ ROM_LOAD( "pl3_6.8j", 0x1c000, 0x4000, CRC(2ffe3319) SHA1(c2540321cd5a1fe29ecb077abdf8f997893192e9) )
+
+ ROM_REGION( 0x10000, "mcu", 0 )
+ ROM_LOAD( "pl1_7.3e", 0x8000, 0x2000, CRC(8c5becae) SHA1(14d67136395c4c64472980a69648ce2d479ae67f) )
+ ROM_LOAD( "cus60", 0xf000, 0x1000, CRC(6ef08fb3) SHA1(4842590d60035a0059b0899eb2d5f58ae72c2529) )
+
+ ROM_REGION( 0x02000, "gfx1", 0 )
+ ROM_LOAD( "mariopac_12.6n", 0x00000, 0x2000, CRC(abba0923) SHA1(2286b0d162e5502160895940d0c9637abe5d6d2f) )
+
+ ROM_REGION( 0x02000, "gfx2", 0 )
+ ROM_LOAD( "pl4_13.6t", 0x00000, 0x2000, CRC(3ae582fd) SHA1(696b2cfadb6b071de8e43d20cd65b37713ca3b30) )
+
+ ROM_REGION( 0x10000, "gfx3", 0 )
+ ROM_LOAD( "mariopac.6f", 0x00000, 0x4000, CRC(98439154) SHA1(7bad68705ae3d9fa6e03ad7dc9421cf6063e1669) )
+ ROM_LOAD( "mariopac.6e", 0x04000, 0x4000, CRC(d0c1f225) SHA1(bcaa68922e49b7257959471641d3c91e505a8d53) )
+ ROM_LOAD( "mariopac.7e", 0x08000, 0x4000, CRC(6005b277) SHA1(acacffe38edfc2d325dc286d182253ee5bb62489) )
+ ROM_LOAD( "mariopac.7f", 0x0c000, 0x4000, CRC(eeed9880) SHA1(e037dd299895db22a88c1d32dda157833b1e8a09) )
+
+ ROM_REGION( 0x1400, "proms", 0 )
+ ROM_LOAD( "pl1-2.1t", 0x0000, 0x0400, CRC(472885de) SHA1(8d552c90b8d5bc6ad6c60934c00f4303cd180ce7) )
+ ROM_LOAD( "pl1-1.1r", 0x0400, 0x0400, CRC(a78ebdaf) SHA1(8ea215701eb5e1a2a329ef92c19fc69b18fc28c7) )
+ ROM_LOAD( "pl1-5.5t", 0x0800, 0x0400, CRC(4b7ee712) SHA1(dd0ec4c632d8b160f7b54d8f18fcf4ef1508d832) )
+ ROM_LOAD( "pl1-4.4n", 0x0c00, 0x0400, CRC(3a7be418) SHA1(475cdc68205e3acce83fe79b00b74c6a7e28dde4) )
+ ROM_LOAD( "pl1-3.6l", 0x1000, 0x0400, CRC(80558da8) SHA1(7e1483467817295f36d1e2bdb32934c4f2617d52) )
+ROM_END
+
+ROM_START( paclandb ) // cus60 is the only different rom
+ ROM_REGION( 0x20000, "maincpu", 0 )
+ ROM_LOAD( "pl5_01b.8b", 0x08000, 0x4000, CRC(b0ea7631) SHA1(424afa6f397310c7af39c9e8b580aa9ccd42c39c) )
+ ROM_LOAD( "pl5_02.8d", 0x0C000, 0x4000, CRC(d903e84e) SHA1(25338726227bfbec65847879aac5228a6a307db4) )
+ ROM_LOAD( "pl1_3.8e", 0x10000, 0x4000, CRC(aa9fa739) SHA1(7b1f7857eb5f68e166b1f8988c82051aaf05df48) )
+ ROM_LOAD( "pl1_4.8f", 0x14000, 0x4000, CRC(2b895a90) SHA1(820f8873c6a5a736089406d0f03d491dfb82d00d) )
+ ROM_LOAD( "pl1_5.8h", 0x18000, 0x4000, CRC(7af66200) SHA1(f44161ded1633e9801b7a9cd84d481e53823f5d9) )
+ ROM_LOAD( "pl3_6.8j", 0x1c000, 0x4000, CRC(2ffe3319) SHA1(c2540321cd5a1fe29ecb077abdf8f997893192e9) )
+
+ ROM_REGION( 0x10000, "mcu", 0 )
+ ROM_LOAD( "pl1_7.3e", 0x8000, 0x2000, CRC(8c5becae) SHA1(14d67136395c4c64472980a69648ce2d479ae67f) )
+ ROM_LOAD( "cus60", 0xf000, 0x1000, CRC(6ef08fb3) SHA1(4842590d60035a0059b0899eb2d5f58ae72c2529) )
+
+ ROM_REGION( 0x02000, "gfx1", 0 )
+ ROM_LOAD( "pl2_12.6n", 0x00000, 0x2000, CRC(a63c8726) SHA1(b15903fa2267375280af03af0a7157e1b0bcb86d) )
+
+ ROM_REGION( 0x02000, "gfx2", 0 )
+ ROM_LOAD( "pl4_13.6t", 0x00000, 0x2000, CRC(3ae582fd) SHA1(696b2cfadb6b071de8e43d20cd65b37713ca3b30) )
+
+ ROM_REGION( 0x10000, "gfx3", 0 )
+ ROM_LOAD( "pl1-9.6f", 0x00000, 0x4000, CRC(f5d5962b) SHA1(8d008a9bc06dc562c241955d9c551647b5c1f4e9) )
+ ROM_LOAD( "pl1-8.6e", 0x04000, 0x4000, CRC(a2ebfa4a) SHA1(4a2a2b43a23a7a46266751415d1bde118143429c) )
+ ROM_LOAD( "pl1-10.7e", 0x08000, 0x4000, CRC(c7cf1904) SHA1(7ca8ed20ee32eb8609ac96b4e4fcb3b6027b598a) )
+ ROM_LOAD( "pl1-11.7f", 0x0c000, 0x4000, CRC(6621361a) SHA1(4efa40adba803006e86d5e12514983d4132b5efb) )
+
+ ROM_REGION( 0x1400, "proms", 0 )
+ ROM_LOAD( "pl1-2.1t", 0x0000, 0x0400, CRC(472885de) SHA1(8d552c90b8d5bc6ad6c60934c00f4303cd180ce7) )
+ ROM_LOAD( "pl1-1.1r", 0x0400, 0x0400, CRC(a78ebdaf) SHA1(8ea215701eb5e1a2a329ef92c19fc69b18fc28c7) )
+ ROM_LOAD( "pl1-5.5t", 0x0800, 0x0400, CRC(4b7ee712) SHA1(dd0ec4c632d8b160f7b54d8f18fcf4ef1508d832) )
+ ROM_LOAD( "pl1-4.4n", 0x0c00, 0x0400, CRC(3a7be418) SHA1(475cdc68205e3acce83fe79b00b74c6a7e28dde4) )
+ ROM_LOAD( "pl1-3.6l", 0x1000, 0x0400, CRC(80558da8) SHA1(7e1483467817295f36d1e2bdb32934c4f2617d52) )
+ROM_END
+
+ROM_START( paclandd )
+ ROM_REGION( 0x20000, "maincpu", 0 )
+ ROM_LOAD( "pl5_01b.8b", 0x08000, 0x4000, CRC(b0ea7631) SHA1(424afa6f397310c7af39c9e8b580aa9ccd42c39c) )
+ ROM_LOAD( "pl5_02.8d", 0x0C000, 0x4000, CRC(d903e84e) SHA1(25338726227bfbec65847879aac5228a6a307db4) )
+ ROM_LOAD( "pl1_3.8e", 0x10000, 0x4000, CRC(aa9fa739) SHA1(7b1f7857eb5f68e166b1f8988c82051aaf05df48) )
+ ROM_LOAD( "pl1_4.8f", 0x14000, 0x4000, CRC(2b895a90) SHA1(820f8873c6a5a736089406d0f03d491dfb82d00d) )
+ ROM_LOAD( "pl1_5.8h", 0x18000, 0x4000, CRC(7af66200) SHA1(f44161ded1633e9801b7a9cd84d481e53823f5d9) )
+ ROM_LOAD( "pl3_6.8j", 0x1c000, 0x4000, CRC(2ffe3319) SHA1(c2540321cd5a1fe29ecb077abdf8f997893192e9) )
+
+ ROM_REGION( 0x10000, "mcu", 0 )
+ ROM_LOAD( "pl1_7.3e", 0x8000, 0x2000, CRC(8c5becae) SHA1(14d67136395c4c64472980a69648ce2d479ae67f) )
+ ROM_LOAD( "cus60", 0xf000, 0x1000, CRC(6ef08fb3) SHA1(4842590d60035a0059b0899eb2d5f58ae72c2529) )
+
+ ROM_REGION( 0x02000, "gfx1", 0 )
+ ROM_LOAD( "pl2_12.6n", 0x00000, 0x2000, CRC(a63c8726) SHA1(b15903fa2267375280af03af0a7157e1b0bcb86d) )
+
+ ROM_REGION( 0x02000, "gfx2", 0 )
+ ROM_LOAD( "pl4_13.6t", 0x00000, 0x2000, CRC(3ae582fd) SHA1(696b2cfadb6b071de8e43d20cd65b37713ca3b30) )
+
+ ROM_REGION( 0x10000, "gfx3", 0 )
+ ROM_LOAD( "paclandd.6f", 0x00000, 0x4000, CRC(3dba9085) SHA1(3ade36e6c04ef40d4dcdf53cc374c600de9dbb75) )
+ ROM_LOAD( "paclandd.6e", 0x04000, 0x4000, CRC(7f089223) SHA1(129344647ae4898c6d70f15e96c13eca12a5f6ca) )
+ ROM_LOAD( "paclandd.7e", 0x08000, 0x4000, CRC(3f4b4d81) SHA1(e6acf8164a9d9fc31a12722e466c4dfded3022fe) )
+ ROM_LOAD( "paclandd.7f", 0x0c000, 0x4000, CRC(52c2cb37) SHA1(47833d98ccbee1098910778ea1a26f58b485a76a) )
+
+ ROM_REGION( 0x1400, "proms", 0 )
+ ROM_LOAD( "pl1-2.1t", 0x0000, 0x0400, CRC(472885de) SHA1(8d552c90b8d5bc6ad6c60934c00f4303cd180ce7) )
+ ROM_LOAD( "pl1-1.1r", 0x0400, 0x0400, CRC(a78ebdaf) SHA1(8ea215701eb5e1a2a329ef92c19fc69b18fc28c7) )
+ ROM_LOAD( "pl1-5.5t", 0x0800, 0x0400, CRC(4b7ee712) SHA1(dd0ec4c632d8b160f7b54d8f18fcf4ef1508d832) )
+ ROM_LOAD( "pl1-4.4n", 0x0c00, 0x0400, CRC(3a7be418) SHA1(475cdc68205e3acce83fe79b00b74c6a7e28dde4) )
+ ROM_LOAD( "pl1-3.6l", 0x1000, 0x0400, CRC(80558da8) SHA1(7e1483467817295f36d1e2bdb32934c4f2617d52) )
+ROM_END
+
+GAME( 2001, mariopac, pacland, pacland, pacland, pacland_state, 0, ROT0, "Marks Hacks", "Mario in Pac-Land", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, paclandb, pacland, pacland, pacland, pacland_state, 0, ROT0, "Namco", "Pac-Land (Benelux Edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, paclandd, pacland, pacland, pacland, pacland_state, 0, ROT0, "Blue Justice", "Pac-Land", MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/pacman.cpp b/src/hbmame/drivers/pacman.cpp
new file mode 100644
index 00000000000..db6be5f46de
--- /dev/null
+++ b/src/hbmame/drivers/pacman.cpp
@@ -0,0 +1,3672 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+/*******************************************************
+ Puckman and Pacman
+
+ Puckman is made by Namco and has these ghost names:
+ * Normal:
+ ** Oikake - Akabei
+ ** Machibuse - Pinky
+ ** Kimagure - Aosuke
+ ** Otoboke - Guzuta
+ * Alternate:
+ ** Urchin - Macky
+ ** Romp - Micky
+ ** Stylist - Mucky
+ ** Crybaby - Mocky
+
+ Clones include Hangly Man, and Newpuck-X
+
+ Pac-Man is made by Midway and has these ghost names:
+ * Normal:
+ ** Shadow - Blinky
+ ** Speedy - Pinky
+ ** Bashful - Inky
+ ** Pokey - Clyde
+ * Alternate:
+ ** AAAAAAAA - BBBBBBB
+ ** CCCCCCCC - DDDDDDD
+ ** EEEEEEEE - FFFFFFF
+ ** GGGGGGGG - HHHHHHH
+
+ Clones include most hacks
+
+ See the MAME source code for hardware information.
+********************************************************/
+
+#include "emu.h"
+#include "cpu/z80/z80.h"
+#include "pacman.h"
+#include "sound/namco.h"
+#include "machine/nvram.h"
+#include "machine/74259.h"
+
+
+
+/*************************************
+ *
+ * Constants
+ *
+ *************************************/
+
+#define MASTER_CLOCK (XTAL_18_432MHz)
+
+#define PIXEL_CLOCK (MASTER_CLOCK/3)
+
+/* H counts from 128->511, HBLANK starts at 144 and ends at 240 */
+#define HTOTAL (384)
+#define HBEND (0) /*(96+16)*/
+#define HBSTART (288) /*(16)*/
+
+#define VTOTAL (264)
+#define VBEND (0) /*(16)*/
+#define VBSTART (224) /*(224+16)*/
+
+
+
+/*************************************
+ *
+ * Machine init
+ *
+ *************************************/
+
+
+/*************************************
+ *
+ * Interrupts
+ *
+ *************************************/
+
+WRITE_LINE_MEMBER(pacman_state::irq_mask_w)
+{
+ m_irq_mask = state;
+}
+
+WRITE8_MEMBER(pacman_state::pacman_interrupt_vector_w)
+{
+ m_maincpu->set_input_line_vector(0, data);
+ m_maincpu->set_input_line(0, CLEAR_LINE);
+}
+
+/* bit0 flags if memory poke already done */
+
+INTERRUPT_GEN_MEMBER( pacman_state::vblank_irq )
+{
+ uint8_t cheat_exist = m_io_fake.read_safe(120);
+
+ /* always signal a normal VBLANK */
+ if(m_irq_mask)
+ device.execute().set_input_line(0, HOLD_LINE);
+
+ if (cheat_exist != 120)
+ {
+ uint8_t cheating = ((cheat_exist & 7) > 2); /* are we cheating? */
+
+ if (cheating != (m_speedcheat & 1)) /* if status just changed, alter program bytes */
+ {
+ uint8_t *RAM = machine().root_device().memregion("maincpu")->base();
+ m_speedcheat = (m_speedcheat & 2) | cheating;
+
+ if (cheating) /* activate the cheat */
+ {
+ if (RAM[0x180b] == 0xbe) RAM[0x180b] = 1; /* pacman */
+ else
+ if (RAM[0x182d] == 0xbe) RAM[0x182d] = 1; /* pacplus */
+ }
+ else /* remove the cheat */
+ {
+ if (RAM[0x180b] == 1) RAM[0x180b] = 0xbe; /* pacman */
+ else
+ if (RAM[0x182d] == 1) RAM[0x182d] = 0xbe; /* pacplus */
+ }
+ }
+ }
+}
+
+
+/*************************************
+ *
+ * LEDs/coin counters
+ *
+ *************************************/
+
+WRITE_LINE_MEMBER(pacman_state::led1_w)
+{
+ output().set_led_value(0, state);
+}
+
+WRITE_LINE_MEMBER(pacman_state::led2_w)
+{
+ output().set_led_value(1, state);
+}
+
+
+WRITE_LINE_MEMBER(pacman_state::coin_counter_w)
+{
+ machine().bookkeeping().coin_counter_w(0, state);
+}
+
+
+WRITE_LINE_MEMBER(pacman_state::coin_lockout_global_w)
+{
+ machine().bookkeeping().coin_lockout_global_w(!state);
+}
+
+
+READ8_MEMBER( pacman_state::pacman_read_nop )
+{
+ return 0xbf;
+}
+
+/*************************************
+ *
+ * Main CPU memory handlers
+ *
+ *************************************/
+
+static ADDRESS_MAP_START( pacman_map, AS_PROGRAM, 8, pacman_state )
+ ADDRESS_MAP_GLOBAL_MASK(0x7fff) /* A15 not connected at the CPU */
+ AM_RANGE(0x0000, 0x3fff) AM_ROM
+ AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0x2000) AM_RAM_WRITE(pacman_videoram_w) AM_SHARE("videoram")
+ AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0x2000) AM_RAM_WRITE(pacman_colorram_w) AM_SHARE("colorram")
+ AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0x2000) AM_READ(pacman_read_nop)
+ AM_RANGE(0x4c00, 0x4fef) AM_MIRROR(0x2000) AM_RAM
+ AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0x2000) AM_RAM AM_SHARE("spriteram")
+ AM_RANGE(0x5000, 0x5007) AM_DEVWRITE("mainlatch", addressable_latch_device, write_d0)
+ AM_RANGE(0x5040, 0x505f) AM_DEVWRITE("namco", namco_device, pacman_sound_w)
+ AM_RANGE(0x5060, 0x506f) AM_WRITEONLY AM_SHARE("spriteram2")
+ AM_RANGE(0x5070, 0x5080) AM_WRITENOP
+ AM_RANGE(0x50c0, 0x50c0) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
+ AM_RANGE(0x5000, 0x5000) AM_READ_PORT("IN0")
+ AM_RANGE(0x5040, 0x5040) AM_READ_PORT("IN1")
+ AM_RANGE(0x5080, 0x5080) AM_READ_PORT("DSW1")
+ AM_RANGE(0x50c0, 0x50c0) AM_READ_PORT("DSW2")
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( woodpek_map, AS_PROGRAM, 8, pacman_state )
+ AM_RANGE(0x0000, 0x3fff) AM_ROM
+ AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_videoram_w) AM_SHARE("videoram")
+ AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0xa000) AM_RAM_WRITE(pacman_colorram_w) AM_SHARE("colorram")
+ AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0xa000) AM_READ(pacman_read_nop)
+ AM_RANGE(0x4c00, 0x4fef) AM_MIRROR(0xa000) AM_RAM
+ AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0xa000) AM_RAM AM_SHARE("spriteram")
+ AM_RANGE(0x5000, 0x5007) AM_DEVWRITE("mainlatch", ls259_device, write_d0)
+ AM_RANGE(0x5040, 0x505f) AM_MIRROR(0x8000) AM_DEVWRITE("namco", namco_device, pacman_sound_w)
+ AM_RANGE(0x5060, 0x506f) AM_MIRROR(0x8000) AM_WRITEONLY AM_SHARE("spriteram2")
+ AM_RANGE(0x5070, 0x5080) AM_MIRROR(0x8000) AM_WRITENOP
+ AM_RANGE(0x50c0, 0x50c0) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
+ AM_RANGE(0x5000, 0x5000) AM_MIRROR(0x8000) AM_READ_PORT("IN0")
+ AM_RANGE(0x5040, 0x5040) AM_MIRROR(0x8000) AM_READ_PORT("IN1")
+ AM_RANGE(0x5080, 0x5080) AM_MIRROR(0x8000) AM_READ_PORT("DSW1")
+ AM_RANGE(0x50c0, 0x50c0) AM_MIRROR(0x8000) AM_READ_PORT("DSW2")
+ AM_RANGE(0x8000, 0xbfff) AM_ROM
+ AM_RANGE(0xff00, 0xffff) AM_RAM
+ADDRESS_MAP_END
+
+/*************************************
+ *
+ * Main CPU port handlers
+ *
+ *************************************/
+
+static ADDRESS_MAP_START( writeport, AS_IO, 8, pacman_state )
+ AM_RANGE(0x0000, 0xffff) AM_WRITE(pacman_interrupt_vector_w)
+ADDRESS_MAP_END
+
+/*************************************
+ *
+ * Port definitions
+ *
+ *************************************/
+
+/* No alternate ghost names, no fake input port - for mspacman and mspacatk */
+INPUT_PORTS_START( mspacpls )
+ PORT_START ("IN0")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY
+ /* Press this while playing pacman to instantly finish the level - HBMAME */
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Finish Level (Cheat)") PORT_CODE(KEYCODE_8)
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE1 )
+
+ PORT_START ("IN1")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL
+ PORT_SERVICE( 0x10, IP_ACTIVE_LOW )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 ) /* Also invincibility when playing */
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 ) /* Also speed-up when playing */
+ PORT_DIPNAME( 0x80, 0x80, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW1:1")
+ PORT_DIPSETTING( 0x80, DEF_STR( Upright ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
+
+ PORT_START ("DSW1")
+ PORT_DIPNAME( 0x03, 0x01, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:2,3")
+ 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:4,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:6,7")
+ 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:8")
+ PORT_DIPSETTING( 0x40, DEF_STR( Normal ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Hard ) )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
+
+ PORT_START ("DSW2")
+ PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED )
+INPUT_PORTS_END
+
+/* No alternate ghost names */
+INPUT_PORTS_START( mspacman )
+ PORT_INCLUDE( mspacpls )
+
+ PORT_START ("FAKE")
+ /* This fake input port is used to get the status of the fire button */
+ /* and activate the speedup cheat if it is. */
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME( "Speed (Cheat)" )
+ PORT_DIPNAME( 0x06, 0x02, "Speed Cheat" )
+ PORT_DIPSETTING( 0x00, "Disabled" )
+ PORT_DIPSETTING( 0x02, "Enabled with Button" )
+ PORT_DIPSETTING( 0x04, "Enabled Always" )
+INPUT_PORTS_END
+
+
+/* No fake dip */
+INPUT_PORTS_START( pacman0 )
+ PORT_INCLUDE( mspacpls )
+
+ PORT_MODIFY("DSW1")
+ PORT_DIPNAME( 0x80, 0x80, "Ghost Names" ) PORT_DIPLOCATION("SW1:9")
+ PORT_DIPSETTING( 0x80, DEF_STR( Normal ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Alternate ) )
+INPUT_PORTS_END
+
+
+/* for newpuc2, pheartsb - no alternate ghost names, and the bonuses are 10k higher */
+INPUT_PORTS_START( newpuc2 )
+ PORT_INCLUDE( mspacman )
+
+ PORT_MODIFY("DSW1")
+ PORT_DIPNAME( 0x30, 0x00, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW1:6,7")
+ PORT_DIPSETTING( 0x00, "20000" )
+ PORT_DIPSETTING( 0x10, "25000" )
+ PORT_DIPSETTING( 0x20, "30000" )
+ PORT_DIPSETTING( 0x30, DEF_STR( None ) )
+INPUT_PORTS_END
+
+
+/* for newpuc2b, nwpuc2b - no alternate ghost names, and the bonuses are a lot higher */
+INPUT_PORTS_START( newpuc2b )
+ PORT_INCLUDE( mspacman )
+
+ PORT_MODIFY("DSW1")
+ PORT_DIPNAME( 0x30, 0x00, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW1:6,7")
+ PORT_DIPSETTING( 0x00, "30000" )
+ PORT_DIPSETTING( 0x10, "60000" )
+ PORT_DIPSETTING( 0x20, "90000" )
+ PORT_DIPSETTING( 0x30, DEF_STR( None ) )
+INPUT_PORTS_END
+
+/* for spuckman - alternate ghost names, and the bonuses are 10k higher */
+INPUT_PORTS_START( spuckman )
+ PORT_INCLUDE( newpuc2 )
+
+ PORT_MODIFY("DSW1")
+ PORT_DIPNAME( 0x80, 0x80, "Ghost Names" ) PORT_DIPLOCATION("SW1:9")
+ PORT_DIPSETTING( 0x80, DEF_STR( Normal ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Alternate ) )
+INPUT_PORTS_END
+
+/* All options available */
+INPUT_PORTS_START( pacman )
+ PORT_INCLUDE( pacman0 )
+
+ PORT_START ("FAKE")
+ /* This fake input port is used to get the status of the fire button */
+ /* and activate the speedup cheat if it is. */
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME( "Speed (Cheat)" )
+ PORT_DIPNAME( 0x06, 0x02, "Speed Cheat" )
+ PORT_DIPSETTING( 0x00, "Disabled" )
+ PORT_DIPSETTING( 0x02, "Enabled with Button" )
+ PORT_DIPSETTING( 0x04, "Enabled Always" )
+INPUT_PORTS_END
+
+
+/*************************************
+ *
+ * Graphics layouts
+ *
+ *************************************/
+
+static const gfx_layout tilelayout =
+{
+ 8,8, /* 8*8 characters */
+ RGN_FRAC(1,2), /* 256 characters */
+ 2, /* 2 bits per pixel */
+ { 0, 4 }, /* the two bitplanes for 4 pixels are packed into one byte */
+ { 8*8+0, 8*8+1, 8*8+2, 8*8+3, 0, 1, 2, 3 }, /* bits are packed in groups of four */
+ { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
+ 16*8 /* every char takes 16 bytes */
+};
+
+
+static const gfx_layout spritelayout =
+{
+ 16,16, /* 16*16 sprites */
+ RGN_FRAC(1,2), /* 64 sprites */
+ 2, /* 2 bits per pixel */
+ { 0, 4 }, /* the two bitplanes for 4 pixels are packed into one byte */
+ { 8*8, 8*8+1, 8*8+2, 8*8+3, 16*8+0, 16*8+1, 16*8+2, 16*8+3, 24*8+0, 24*8+1, 24*8+2, 24*8+3, 0, 1, 2, 3 },
+ { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, 32*8, 33*8, 34*8, 35*8, 36*8, 37*8, 38*8, 39*8 },
+ 64*8 /* every sprite takes 64 bytes */
+};
+
+
+static gfx_layout xtilelayout =
+{
+ 16,16, /* 16*16 characters */
+ RGN_FRAC(1,2), /* 256 characters */
+ 2, /* 2 bits per pixel */
+ { 0, 4 }, /* the two bitplanes for 4 pixels are packed into one byte */
+ { 0, 1, 2, 3, 128, 129, 130, 131, 256, 257, 258, 259, 384, 385, 386, 387 },
+ { 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 },
+ 64*8 /* every char takes 64 bytes */
+};
+
+
+static gfx_layout xspritelayout =
+{
+ 32,32, /* 32*32 sprites */
+ RGN_FRAC(1,2), /* 64 sprites */
+ 2, /* 2 bits per pixel */
+ { 0, 4 }, /* the two bitplanes for 4 pixels are packed into one byte */
+ { 0, 1, 2, 3, 256, 257, 258, 259, 512, 513, 514, 515, 768, 769, 770, 771,
+ 1024+0, 1024+1, 1024+2, 1024+3, 1024+256, 1024+257, 1024+258, 1024+259,
+ 1024+512, 1024+513, 1024+514, 1024+515, 1024+768, 1024+769, 1024+770, 1024+771 },
+ { 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,
+ 16*8, 17*8, 18*8, 19*8, 20*8, 21*8, 22*8, 23*8, 24*8, 25*8, 26*8, 27*8, 28*8, 29*8, 30*8, 31*8 },
+ 256*8 /* every sprite takes 256 bytes */
+};
+
+
+static GFXDECODE_START( pacman )
+ GFXDECODE_ENTRY( "gfx1", 0x0000, tilelayout, 0, 32 )
+ GFXDECODE_ENTRY( "gfx1", 0x1000, spritelayout, 0, 32 )
+GFXDECODE_END
+
+static GFXDECODE_START( pacmanx )
+ GFXDECODE_ENTRY( "gfx1", 0x0000, xtilelayout, 0, 32 )
+ GFXDECODE_ENTRY( "gfx1", 0x4000, xspritelayout, 0, 32 )
+GFXDECODE_END
+
+
+
+/*************************************
+ *
+ * Machine drivers
+ *
+ *************************************/
+
+static MACHINE_CONFIG_START( pacman )
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK/6)
+ MCFG_CPU_PROGRAM_MAP(pacman_map)
+ MCFG_CPU_IO_MAP(writeport)
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", pacman_state, vblank_irq)
+ MCFG_WATCHDOG_ADD("watchdog")
+ MCFG_WATCHDOG_VBLANK_INIT("screen", 16)
+
+ MCFG_DEVICE_ADD("mainlatch", LS259, 0) // 74LS259 at 8K or 4099 at 7K
+ MCFG_ADDRESSABLE_LATCH_Q0_OUT_CB(WRITELINE(pacman_state, irq_mask_w))
+ MCFG_ADDRESSABLE_LATCH_Q1_OUT_CB(DEVWRITELINE("namco", namco_device, pacman_sound_enable_w))
+ MCFG_ADDRESSABLE_LATCH_Q3_OUT_CB(WRITELINE(pacman_state, flipscreen_w))
+ //MCFG_ADDRESSABLE_LATCH_Q4_OUT_CB(WRITELINE(pacman_state, led1_w))
+ //MCFG_ADDRESSABLE_LATCH_Q5_OUT_CB(WRITELINE(pacman_state, led2_w))
+ //MCFG_ADDRESSABLE_LATCH_Q6_OUT_CB(WRITELINE(pacman_state, coin_lockout_global_w))
+ MCFG_ADDRESSABLE_LATCH_Q7_OUT_CB(WRITELINE(pacman_state, coin_counter_w))
+
+ /* video hardware */
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
+ MCFG_SCREEN_UPDATE_DRIVER(pacman_state, screen_update_pacman)
+ MCFG_VIDEO_START_OVERRIDE(pacman_state,pacman)
+ MCFG_SCREEN_PALETTE("palette")
+ MCFG_PALETTE_ADD_INIT_BLACK("palette", 128*4)
+ MCFG_PALETTE_INDIRECT_ENTRIES(32)
+ MCFG_PALETTE_INIT_OWNER(pacman_state,pacman)
+ MCFG_GFXDECODE_ADD("gfxdecode", "palette", pacman)
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+ MCFG_SOUND_ADD("namco", NAMCO, MASTER_CLOCK/6/32)
+ MCFG_NAMCO_AUDIO_VOICES(3)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( pacmanx, pacman )
+ MCFG_SCREEN_MODIFY("screen")
+ MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK<<2, HTOTAL<<1, HBEND<<1, HBSTART<<1, VTOTAL<<1, VBEND<<1, VBSTART<<1)
+ MCFG_SCREEN_UPDATE_DRIVER(pacman_state, screen_update_pacmanx)
+ MCFG_VIDEO_START_OVERRIDE(pacman_state,pacmanx)
+ MCFG_GFXDECODE_MODIFY("gfxdecode", pacmanx)
+MACHINE_CONFIG_END
+
+
+static MACHINE_CONFIG_DERIVED( woodpek, pacman )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(woodpek_map)
+MACHINE_CONFIG_END
+
+
+/*************************************
+ *
+ * Driver initialization
+ *
+ *************************************/
+
+uint8_t pacman_state::hbmame_pacplus_decode(offs_t addr, uint8_t e)
+{
+ static const unsigned char swap_xor_table[6][9] =
+ {
+ { 7,6,5,4,3,2,1,0, 0x00 },
+ { 7,6,5,4,3,2,1,0, 0x28 },
+ { 6,1,3,2,5,7,0,4, 0x96 },
+ { 6,1,5,2,3,7,0,4, 0xbe },
+ { 0,3,7,6,4,2,1,5, 0xd5 },
+ { 0,3,4,6,7,2,1,5, 0xdd }
+ };
+
+ static const int picktable[32] =
+ {
+ 0,2,4,2,4,0,4,2,2,0,2,2,4,0,4,2,
+ 2,2,4,0,4,2,4,0,0,4,0,4,4,2,4,2
+ };
+
+ unsigned int method = 0;
+ const unsigned char *tbl;
+
+
+ /* pick method from bits 0 2 5 7 9 of the address */
+ method = picktable[
+ (addr & 0x001) |
+ ((addr & 0x004) >> 1) |
+ ((addr & 0x020) >> 3) |
+ ((addr & 0x080) >> 4) |
+ ((addr & 0x200) >> 5)];
+
+ /* switch method if bit 11 of the address is set */
+ if ((addr & 0x800) == 0x800)
+ method ^= 1;
+
+ tbl = swap_xor_table[method];
+ return bitswap<8>(e,tbl[0],tbl[1],tbl[2],tbl[3],tbl[4],tbl[5],tbl[6],tbl[7]) ^ tbl[8];
+}
+
+DRIVER_INIT_MEMBER(pacman_state,pacplus)
+{
+ offs_t i;
+
+ /* CPU ROMs */
+ uint8_t *RAM = machine().root_device().memregion("maincpu")->base();
+
+ for (i = 0; i < 0x4000; i++)
+ RAM[i] = hbmame_pacplus_decode(i,RAM[i]);
+}
+
+void pacman_state::eyes_decode(uint8_t *data)
+{
+ int j;
+ uint8_t swapbuffer[8];
+
+ for (j = 0; j < 8; j++)
+ swapbuffer[j] = data[bitswap<16>(j,15,14,13,12,11,10,9,8,7,6,5,4,3,0,1,2)];
+
+ for (j = 0; j < 8; j++)
+ data[j] = bitswap<8>(swapbuffer[j],7,4,5,6,3,2,1,0);
+}
+
+DRIVER_INIT_MEMBER(pacman_state,eyes)
+{
+ int i;
+
+ /* CPU ROMs */
+
+ /* Data lines D3 and D5 swapped */
+ uint8_t *RAM = machine().root_device().memregion("maincpu")->base();
+ for (i = 0; i < 0x4000; i++)
+ RAM[i] = bitswap<8>(RAM[i],7,6,3,4,5,2,1,0);
+
+
+ /* Graphics ROMs */
+
+ /* Data lines D4 and D6 and address lines A0 and A2 are swapped */
+ RAM = machine().root_device().memregion("gfx1")->base();
+ for (i = 0;i < machine().root_device().memregion("gfx1")->bytes();i += 8)
+ eyes_decode(&RAM[i]);
+}
+
+
+/*************************************
+ *
+ * ROM definitions
+ *
+ *************************************/
+
+#define PACMAN_SOUND_PROMS \
+ ROM_REGION( 0x0200, "namco", 0 ) \
+ ROM_LOAD( "82s126.1m", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) ) \
+ ROM_LOAD( "82s126.3m", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) \
+
+#define PACMAN_PROMS \
+ ROM_REGION( 0x0120, "proms", 0 ) \
+ ROM_LOAD( "82s123.7f", 0x0000, 0x0020, CRC(2fc650bd) SHA1(8d0268dee78e47c712202b0ec4f1f51109b1f2a5) ) \
+ ROM_LOAD( "82s126.4a", 0x0020, 0x0100, CRC(3eb3a8e4) SHA1(19097b5f60d1030f8b82d9f1d3a241f93e5c75d6) ) \
+ PACMAN_SOUND_PROMS \
+
+#define PACPLUS_PROMS \
+ ROM_REGION( 0x0120, "proms", 0 ) \
+ ROM_LOAD( "pacplus.7f", 0x0000, 0x0020, CRC(063dd53a) SHA1(2e43b46ec3b101d1babab87cdaddfa944116ec06) ) \
+ ROM_LOAD( "pacplus.4a", 0x0020, 0x0100, CRC(e271a166) SHA1(cf006536215a7a1d488eebc1d8a2e2a8134ce1a6) ) \
+ PACMAN_SOUND_PROMS \
+
+ROM_START( abortman )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "puckmanb.6e", 0x0000, 0x1000, CRC(fee263b3) SHA1(87117ba5082cd7a615b4ec7c02dd819003fbd669) )
+ ROM_LOAD( "puckmanb.6f", 0x1000, 0x1000, CRC(39d1fc83) SHA1(326dbbf94c6fa2e96613dedb53702f8832b47d59) )
+ ROM_LOAD( "puckmanb.6h", 0x2000, 0x1000, CRC(02083b03) SHA1(7e1945f6eb51f2e51806d0439f975f7a2889b9b8) )
+ ROM_LOAD( "puckmanb.6j", 0x3000, 0x1000, CRC(7a36fe55) SHA1(01b4c38108d9dc4e48da4f8d685248e1e6821377) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "abortman.5e", 0x0000, 0x1000, CRC(1c4ef687) SHA1(0adea2380f8fd43ea90a4460eea9be2a17e7a825) )
+ ROM_LOAD( "abortman.5f", 0x1000, 0x1000, CRC(38a22ac4) SHA1(5503132e4d1ece4a3d71ad3635a60ec151bc0417) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( baby2 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "baby2.6j", 0x3000, 0x1000, CRC(260b87b8) SHA1(cf4ace417b7b640678f809c92f690cebc977dd68) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "baby2.5e", 0x0000, 0x1000, CRC(6f7d8d57) SHA1(2e786c5a61168455d31b7c45c97891f65243a40b) )
+ ROM_LOAD( "baby2.5f", 0x1000, 0x1000, CRC(b6d77a1e) SHA1(63ada2a7f154ce7bd756c5002a34e5f4002c2473) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( baby3 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "baby3.6j", 0x3000, 0x1000, CRC(6c0e22c8) SHA1(bcc684d7f5fb7fe73d3dcfdd80999242789dc9c9) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "baby3.5e", 0x0000, 0x1000, CRC(22174b65) SHA1(ed90d2c515e2446b369861e20ed34987f10a3dc8) )
+ ROM_LOAD( "baby2.5f", 0x1000, 0x1000, CRC(b6d77a1e) SHA1(63ada2a7f154ce7bd756c5002a34e5f4002c2473) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( baby4 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "baby4.6j", 0x3000, 0x1000, CRC(f8cd7ebb) SHA1(c7b8e690e96f9b863d31caddc81076d556058671) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "baby3.5e", 0x0000, 0x1000, CRC(22174b65) SHA1(ed90d2c515e2446b369861e20ed34987f10a3dc8) )
+ ROM_LOAD( "baby2.5f", 0x1000, 0x1000, CRC(b6d77a1e) SHA1(63ada2a7f154ce7bd756c5002a34e5f4002c2473) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( brakman )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "brakman.6j", 0x3000, 0x1000, CRC(2d2af2e5) SHA1(8355f30b106e53499d3c1e1174aee6572869b428) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "brakman.5e", 0x0000, 0x1000, CRC(a004abe7) SHA1(c2c8d871b17c9a1f8902f8ec3e46e0991e747f45) )
+ ROM_LOAD( "brakman.5f", 0x1000, 0x1000, CRC(30ed6264) SHA1(5bc2753aa6f2e49f6c1ce5810cf561d27ecb38e6) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( bucaneer )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "puckmanb.6e", 0x0000, 0x1000, CRC(fee263b3) SHA1(87117ba5082cd7a615b4ec7c02dd819003fbd669) )
+ ROM_LOAD( "puckmanb.6f", 0x1000, 0x1000, CRC(39d1fc83) SHA1(326dbbf94c6fa2e96613dedb53702f8832b47d59) )
+ ROM_LOAD( "newpuck2.6h", 0x2000, 0x1000, CRC(197443f8) SHA1(119aab12a9e1052c7b9a1f81e563740b41429a8c) )
+ ROM_LOAD( "bucaneer.6k", 0x3000, 0x1000, CRC(c4d9169a) SHA1(f34a51d9fa90739214ab9e837b2602c992a73576) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "bucaneer.5e", 0x0000, 0x0800, CRC(4060c077) SHA1(78d4aa5243246f73533fc0886438dc1fa6f7ebe5) )
+ ROM_LOAD( "bucaneer.5h", 0x0800, 0x0800, CRC(e3861283) SHA1(61cf8ed24902910e98438d9e2e2745f226ad2a13) )
+ ROM_LOAD( "bucaneer.5f", 0x1000, 0x0800, CRC(09f66dec) SHA1(2d3649341fed19bac15ec274f7d747de46a3edb2) )
+ ROM_LOAD( "bucaneer.5j", 0x1800, 0x0800, CRC(653314e7) SHA1(c466a421917b3502e9115ebda1b2d11f7f586de8) )
+ /* cannot do the "mario" trick here because bucco does odd things when going up */
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( caterpil )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "caterpil.6e", 0x0000, 0x1000, CRC(b53c5650) SHA1(54f1fee2494cfc0452051a6f134c5c3b691b4ffb) )
+ ROM_LOAD( "caterpil.6f", 0x1000, 0x1000, CRC(53845efb) SHA1(e6db734a7a806aead30422de4073511da55a17f1) )
+ ROM_LOAD( "caterpil.6h", 0x2000, 0x1000, CRC(a474357e) SHA1(0fb93ca3364b5955428bc59e2f6d9f186182a280) )
+ ROM_LOAD( "caterpil.6j", 0x3000, 0x1000, CRC(5df0ea3b) SHA1(dce379bb4cf5fa7c253cc16702360cbc3b637f37) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "caterpil.5e", 0x0000, 0x1000, CRC(0387907d) SHA1(014745c480ee4b81c161cfa7a011df673059a1a8) )
+ ROM_LOAD( "caterpil.5f", 0x1000, 0x1000, CRC(aa450714) SHA1(8a888ce6573623d15913ff297a027d4056eb2875) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( chthang )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "hangly.6e", 0x0000, 0x1000, CRC(5fe8610a) SHA1(d63eaebd85e10aa6c27bb7f47642dd403eeb6934) )
+ ROM_LOAD( "hangly.6f", 0x1000, 0x1000, CRC(73726586) SHA1(cedddc5194589039dd8b64f07ab6320d7d4f55f9) )
+ ROM_LOAD( "hangly.6h", 0x2000, 0x1000, CRC(4e7ef99f) SHA1(bd42e68b29b4d654dc817782ba00db69b7d2dfe2) )
+ ROM_LOAD( "hangly.6j", 0x3000, 0x1000, CRC(7f4147e6) SHA1(0a7ac0e59d4d26fe52a2f4196c9f19e5ab677c87) )
+
+ ROM_REGION( 0x2000, "gfx1" , 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( chtpac )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "chtpac.6f", 0x1000, 0x1000, CRC(72cea888) SHA1(87d0c2f8e7be0b9f28fc46b5711ddb8a85023942) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( chtpac3d )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "chtpac3d.6f", 0x1000, 0x1000, CRC(fe975805) SHA1(a213628c19d8998960c45f756d865dfce404ab57) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacman3d.6j", 0x3000, 0x1000, CRC(959e930e) SHA1(0ef24017be05ddf85248c4d00f0e21cbf658f78c) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman3d.5e", 0x0000, 0x1000, CRC(aa203d45) SHA1(7d2fb9bc8718601efc33d2469452a08018167e60) )
+ ROM_LOAD( "pacman3d.5f", 0x1000, 0x1000, CRC(d1830540) SHA1(5d276774997e3be8fc9c21d55562288acd1cffcc) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( chtpman2 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "newpuck2.6e", 0x0000, 0x1000, CRC(a8ae23c5) SHA1(1481a4f083b563350744f9d25b1bcd28073875d6) )
+ ROM_LOAD( "chtpac.6f", 0x1000, 0x1000, CRC(72cea888) SHA1(87d0c2f8e7be0b9f28fc46b5711ddb8a85023942) )
+ ROM_LOAD( "newpuck2.6h", 0x2000, 0x1000, CRC(197443f8) SHA1(119aab12a9e1052c7b9a1f81e563740b41429a8c) )
+ ROM_LOAD( "newpuck2.6j", 0x3000, 0x1000, CRC(0e3bdbde) SHA1(11679a3e60cb98ef56e9f0c349d421a72b7097f6) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( chtpop )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "chtpac.6f", 0x1000, 0x1000, CRC(72cea888) SHA1(87d0c2f8e7be0b9f28fc46b5711ddb8a85023942) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacpopey.5f", 0x1000, 0x1000, CRC(af2b610b) SHA1(c787b1db588125f0770dc2bf4626ad22f0faee72) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( chtpuck )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "newpuck2.6e", 0x0000, 0x1000, CRC(a8ae23c5) SHA1(1481a4f083b563350744f9d25b1bcd28073875d6) )
+ ROM_LOAD( "chtpac.6f", 0x1000, 0x1000, CRC(72cea888) SHA1(87d0c2f8e7be0b9f28fc46b5711ddb8a85023942) )
+ ROM_LOAD( "newpuck2.6h", 0x2000, 0x1000, CRC(197443f8) SHA1(119aab12a9e1052c7b9a1f81e563740b41429a8c) )
+ ROM_LOAD( "fastpuck.6j", 0x3000, 0x1000, CRC(2e64a3ba) SHA1(f86a921173f32211b18d023c2701664d13ae23be) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( crazypac )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "crazypac.6j", 0x3000, 0x1000, CRC(9f754a51) SHA1(447d95f90c6481911189173f95dbd5ea23467f67) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( ctrpllrp )
+ ROM_REGION( 0x10000, "maincpu",0 )
+ ROM_LOAD( "hangly3.6e", 0x0000, 0x0800, CRC(9d027c4a) SHA1(88e094880057451a75cdc2ce9477403021813982) )
+ ROM_LOAD( "ctrpllrp.6k", 0x0800, 0x0800, CRC(f39846d3) SHA1(bc1137a45898210523cf8da1e6a2425e7c322884) )
+ ROM_LOAD( "ctrpllrp.6f", 0x1000, 0x0800, CRC(afa149a8) SHA1(207b842854ac9e015e12a2dae41105438cda1df9) )
+ ROM_LOAD( "hangly2.6m", 0x1800, 0x0800, CRC(baf5461e) SHA1(754586a6449fd54a342f260e572c1cd60ab70815) )
+ ROM_LOAD( "ctrpllrp.6h", 0x2000, 0x0800, CRC(6bb282a1) SHA1(a96f25dc0f49ebe7e528e3297a112d778c6c3030) )
+ ROM_LOAD( "ctrpllrp.6n", 0x2800, 0x0800, CRC(fa2140f5) SHA1(123d31e653e8af78c6153702eca2e136c427ed64) )
+ ROM_LOAD( "ctrpllrp.6j", 0x3000, 0x0800, CRC(86c91e0e) SHA1(52af6a3af5b1363859f790470ca5860ef2a08566) )
+ ROM_LOAD( "ctrpllrp.6p", 0x3800, 0x0800, CRC(3d28134e) SHA1(45a257a0aca74e2ab36dd70097220d8be29cc87b) )
+
+ ROM_REGION( 0x2000, "gfx1" , 0)
+ ROM_LOAD( "ctrpllrp.5e", 0x0000, 0x0800, CRC(1c4617be) SHA1(2b2b10f1256b4612e3e01ed1c8e2d7ccb6989f5d) )
+ ROM_LOAD( "ctrpllrp.5h", 0x0800, 0x0800, CRC(46f72fef) SHA1(daf334c78fdb73d43d524b733b763b290c602ae2) )
+ ROM_LOAD( "ctrpllrp.5f", 0x1000, 0x0800, CRC(ba9ec199) SHA1(626ab2eedf4c8d307dfad3b8863a67f8c34dda97) )
+ ROM_LOAD( "ctrpllrp.5j", 0x1800, 0x0800, CRC(41c09655) SHA1(cc639e660443b9dcb33f9aefe9af5d332591c466) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( dizzy )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "dizzy.6j", 0x3000, 0x1000, CRC(bf05bf15) SHA1(9a440a7a67731553269ad72dc2340de1fb9a89a8) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "dizzy.5e", 0x0000, 0x1000, CRC(f999a8d9) SHA1(4feecc8f06ea9149751f0f97828babca1bdf3fd4) )
+ ROM_LOAD( "dizzy.5f", 0x1000, 0x1000, CRC(7cb7b9b1) SHA1(3bd09964a2d49c65a3619ddfc3635066a7097328) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( eltonpac )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "eltonpac.5e", 0x0000, 0x1000, CRC(9c093e5b) SHA1(bfdd082a6f1e0819aeda2601f06dff90cb8e8f3f) )
+ ROM_LOAD( "eltonpac.5f", 0x1000, 0x1000, CRC(c2825641) SHA1(4ea373b18ec1fc7325f33dbe9f44ee93ad6f6cb4) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( europac )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "europac.6j", 0x3000, 0x1000, CRC(a4e82007) SHA1(577b44661de47dcffac7c06e7f9fa1e5d4e085ed) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "europac.5e", 0x0000, 0x1000, CRC(00208da4) SHA1(a7ef38f2c133681344d67634f8a7362f6f0712b3) )
+ ROM_LOAD( "europac.5f", 0x1000, 0x1000, CRC(0d36dabf) SHA1(50572528e230a37a413cdc9e2bd7f2ea76fffa09) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( fasthang )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "hangly.6e", 0x0000, 0x1000, CRC(5fe8610a) SHA1(d63eaebd85e10aa6c27bb7f47642dd403eeb6934) )
+ ROM_LOAD( "fasthang.6f", 0x1000, 0x1000, CRC(1b1014bc) SHA1(c7ff86832ccd207ce8505291ae309ee0240d0586) )
+ ROM_LOAD( "hangly.6h", 0x2000, 0x1000, CRC(4e7ef99f) SHA1(bd42e68b29b4d654dc817782ba00db69b7d2dfe2) )
+ ROM_LOAD( "hangly.6j", 0x3000, 0x1000, CRC(7f4147e6) SHA1(0a7ac0e59d4d26fe52a2f4196c9f19e5ab677c87) )
+
+ ROM_REGION( 0x2000, "gfx1" , 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( fastpop )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacmanf.6f", 0x1000, 0x1000, CRC(720dc3ee) SHA1(7224d7acfa0144b681c71d7734a7337189835361) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) )
+
+ ROM_REGION( 0x2000, "gfx1" , 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacpopey.5f", 0x1000, 0x1000, CRC(af2b610b) SHA1(c787b1db588125f0770dc2bf4626ad22f0faee72) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( fastpuck )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "newpuck2.6e", 0x0000, 0x1000, CRC(a8ae23c5) SHA1(1481a4f083b563350744f9d25b1bcd28073875d6) )
+ ROM_LOAD( "pacmanf.6f", 0x1000, 0x1000, CRC(720dc3ee) SHA1(7224d7acfa0144b681c71d7734a7337189835361) )
+ ROM_LOAD( "newpuck2.6h", 0x2000, 0x1000, CRC(197443f8) SHA1(119aab12a9e1052c7b9a1f81e563740b41429a8c) )
+ ROM_LOAD( "fastpuck.6j", 0x3000, 0x1000, CRC(2e64a3ba) SHA1(f86a921173f32211b18d023c2701664d13ae23be) )
+
+ ROM_REGION( 0x2000, "gfx1" , 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( fpnleash )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "punleash.1", 0x0000, 0x1000, CRC(eddb20e7) SHA1(07f6cabac3c59c2e3f522da877e845b3ceb2cffb) )
+ ROM_LOAD( "punleash.2", 0x1000, 0x1000, CRC(57fe8b4d) SHA1(629800fe793b53c27ee8c84a2e49caf7fe056f28) )
+ ROM_LOAD( "punleash.3", 0x2000, 0x1000, CRC(94c63bb1) SHA1(872dbca70b45285dccfd0e24cb50225a5c3ac005) )
+ ROM_LOAD( "punleash.4", 0x3000, 0x1000, CRC(fe7734d5) SHA1(f246baab82ea8e9b3cfd3dc5911445ab08223c1f) )
+ ROM_LOAD( "punleash.5", 0x8000, 0x1000, CRC(ef155ffb) SHA1(c5bcd57c2a336fa8a018b192b8542954271f1bac) )
+ ROM_LOAD( "punleash.6", 0x9000, 0x1000, CRC(70d15899) SHA1(9a7cff5811b591211eb23cee125fd77263f8d4fe) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "fpnleash.5e", 0x0000, 0x1000, CRC(1f69d1d0) SHA1(8f3834358a074d0cb6c1d56e3b0e623193f8b9ec) )
+ ROM_LOAD( "punleash.5f", 0x1000, 0x1000, CRC(98d3d364) SHA1(f8023d1772d377d090a9bfebf194bbbce8643f1d) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD( "punleash.7f", 0x0000, 0x0020, CRC(357c2523) SHA1(f0c4cea06b17932cc15f6db2971406eaba3558b2) )
+ ROM_LOAD( "punleash.4a", 0x0020, 0x0100, CRC(5ff3b85a) SHA1(6b01b9c9302ab41fe83c140c3ff217d1d66773dd) )
+
+ PACMAN_SOUND_PROMS
+ROM_END
+
+ROM_START( fstpman2 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "newpuck2.6e", 0x0000, 0x1000, CRC(a8ae23c5) SHA1(1481a4f083b563350744f9d25b1bcd28073875d6) )
+ ROM_LOAD( "pacmanf.6f", 0x1000, 0x1000, CRC(720dc3ee) SHA1(7224d7acfa0144b681c71d7734a7337189835361) )
+ ROM_LOAD( "newpuck2.6h", 0x2000, 0x1000, CRC(197443f8) SHA1(119aab12a9e1052c7b9a1f81e563740b41429a8c) )
+ ROM_LOAD( "newpuck2.6j", 0x3000, 0x1000, CRC(0e3bdbde) SHA1(11679a3e60cb98ef56e9f0c349d421a72b7097f6) )
+
+ ROM_REGION( 0x2000, "gfx1" , 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( hangly )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "hangly.6e", 0x0000, 0x1000, CRC(5fe8610a) SHA1(d63eaebd85e10aa6c27bb7f47642dd403eeb6934) )
+ ROM_LOAD( "hangly.6f", 0x1000, 0x1000, CRC(73726586) SHA1(cedddc5194589039dd8b64f07ab6320d7d4f55f9) )
+ ROM_LOAD( "hangly.6h", 0x2000, 0x1000, CRC(4e7ef99f) SHA1(bd42e68b29b4d654dc817782ba00db69b7d2dfe2) )
+ ROM_LOAD( "hangly.6j", 0x3000, 0x1000, CRC(7f4147e6) SHA1(0a7ac0e59d4d26fe52a2f4196c9f19e5ab677c87) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( hangly2 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "hangly.6e", 0x0000, 0x1000, CRC(5fe8610a) SHA1(d63eaebd85e10aa6c27bb7f47642dd403eeb6934) )
+ ROM_LOAD( "hangly2.6f", 0x1000, 0x0800, CRC(5ba228bb) SHA1(b0e902cdf98bee72d6ec8069eec96adce3245074) )
+ ROM_LOAD( "hangly2.6m", 0x1800, 0x0800, CRC(baf5461e) SHA1(754586a6449fd54a342f260e572c1cd60ab70815) )
+ ROM_LOAD( "hangly.6h", 0x2000, 0x1000, CRC(4e7ef99f) SHA1(bd42e68b29b4d654dc817782ba00db69b7d2dfe2) )
+ ROM_LOAD( "hangly2.6j", 0x3000, 0x0800, CRC(51305374) SHA1(6197b606a0eedb11135d9f4f7a89aecc23fb2d33) )
+ ROM_LOAD( "hangly2.6p", 0x3800, 0x0800, CRC(427c9d4d) SHA1(917bc3d571cbdd24d88327ecabfb5b3f6d39af0a) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacmanh.5e", 0x0000, 0x1000, CRC(299fb17a) SHA1(ad97adc2122482a9018bacd137df9d8f409ddf85) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( hangly3 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "hangly3.6e", 0x0000, 0x0800, CRC(9d027c4a) SHA1(88e094880057451a75cdc2ce9477403021813982) )
+ ROM_LOAD( "hangly3.6k", 0x0800, 0x0800, CRC(194c7189) SHA1(fd423bac2810015313841c7b935054565390fbd0) )
+ ROM_LOAD( "hangly2.6f", 0x1000, 0x0800, CRC(5ba228bb) SHA1(b0e902cdf98bee72d6ec8069eec96adce3245074) )
+ ROM_LOAD( "hangly2.6m", 0x1800, 0x0800, CRC(baf5461e) SHA1(754586a6449fd54a342f260e572c1cd60ab70815) )
+ ROM_LOAD( "hangly3.6h", 0x2000, 0x0800, CRC(08419c4a) SHA1(7e5001adad401080c788737c1d2349f218750442) )
+ ROM_LOAD( "hangly3.6n", 0x2800, 0x0800, CRC(ab74b51f) SHA1(1bce8933ed7807eb7aca9670df8994f8d1a8b5b7) )
+ ROM_LOAD( "hangly3.6j", 0x3000, 0x0800, CRC(5039b082) SHA1(086a6ac4742734167d283b1121fce29d8ac4a6cd) )
+ ROM_LOAD( "hangly3.6p", 0x3800, 0x0800, CRC(931770d7) SHA1(78fcf88e07ec5126c12c3297b62ca388809e947c) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "hangly3.5e", 0x0000, 0x0800, CRC(5f4be3cc) SHA1(eeb0e1e44549b99eab481d9ac016b4359e19fe30) )
+ ROM_LOAD( "puckman.5h", 0x0800, 0x0800, CRC(3591b89d) SHA1(79bb456be6c39c1ccd7d077fbe181523131fb300) )
+ ROM_LOAD( "puckman.5f", 0x1000, 0x0800, CRC(9e39323a) SHA1(be933e691df4dbe7d12123913c3b7b7b585b7a35) )
+ ROM_LOAD( "puckman.5j", 0x1800, 0x0800, CRC(1b1d9096) SHA1(53771c573051db43e7185b1d188533056290a620) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( hanglyad )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "hangly.6e", 0x0000, 0x1000, CRC(5fe8610a) SHA1(d63eaebd85e10aa6c27bb7f47642dd403eeb6934) )
+ ROM_LOAD( "hangly.6f", 0x1000, 0x1000, CRC(73726586) SHA1(cedddc5194589039dd8b64f07ab6320d7d4f55f9) )
+ ROM_LOAD( "hangly.6h", 0x2000, 0x1000, CRC(4e7ef99f) SHA1(bd42e68b29b4d654dc817782ba00db69b7d2dfe2) )
+ ROM_LOAD( "hangly.6j", 0x3000, 0x1000, CRC(7f4147e6) SHA1(0a7ac0e59d4d26fe52a2f4196c9f19e5ab677c87) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "hanglyad.5e", 0x0000, 0x1000, CRC(93fd3682) SHA1(792ddb541aeab304b5facfcf929c3bba18150346) )
+ ROM_LOAD( "pacjr1.5f", 0x1000, 0x1000, CRC(c2310808) SHA1(84c28a4fc327afcb441daee35acdab6f7613395e) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( hanglyx )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "hangly.6e", 0x0000, 0x1000, CRC(5fe8610a) SHA1(d63eaebd85e10aa6c27bb7f47642dd403eeb6934) )
+ ROM_LOAD( "hangly.6f", 0x1000, 0x1000, CRC(73726586) SHA1(cedddc5194589039dd8b64f07ab6320d7d4f55f9) )
+ ROM_LOAD( "hangly.6h", 0x2000, 0x1000, CRC(4e7ef99f) SHA1(bd42e68b29b4d654dc817782ba00db69b7d2dfe2) )
+ ROM_LOAD( "hangly.6j", 0x3000, 0x1000, CRC(7f4147e6) SHA1(0a7ac0e59d4d26fe52a2f4196c9f19e5ab677c87) )
+
+ ROM_REGION( 0x8000, "gfx1", 0 )
+ ROM_LOAD( "pacmanx.5e", 0x0000, 0x4000, CRC(a45138ce) SHA1(f18344980b4a58d0abf0cc2b7853184af3d5bfa0) )
+ ROM_LOAD( "pacmanx.5f", 0x4000, 0x4000, CRC(92e1b10e) SHA1(bb04988502fa181365c08096b5fd47fa9541c291) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( hangly2x )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "hangly.6e", 0x0000, 0x1000, CRC(5fe8610a) SHA1(d63eaebd85e10aa6c27bb7f47642dd403eeb6934) )
+ ROM_LOAD( "hangly2.6f", 0x1000, 0x0800, CRC(5ba228bb) SHA1(b0e902cdf98bee72d6ec8069eec96adce3245074) )
+ ROM_LOAD( "hangly2.6m", 0x1800, 0x0800, CRC(baf5461e) SHA1(754586a6449fd54a342f260e572c1cd60ab70815) )
+ ROM_LOAD( "hangly.6h", 0x2000, 0x1000, CRC(4e7ef99f) SHA1(bd42e68b29b4d654dc817782ba00db69b7d2dfe2) )
+ ROM_LOAD( "hangly2.6j", 0x3000, 0x0800, CRC(51305374) SHA1(6197b606a0eedb11135d9f4f7a89aecc23fb2d33) )
+ ROM_LOAD( "hangly2.6p", 0x3800, 0x0800, CRC(427c9d4d) SHA1(917bc3d571cbdd24d88327ecabfb5b3f6d39af0a) )
+
+ ROM_REGION( 0x8000, "gfx1", 0 )
+ ROM_LOAD( "pacmodx.5e", 0x0000, 0x4000, CRC(a05bc552) SHA1(5c2350aeac14cafebfcb7ff012427b1d3c6adf62) )
+ ROM_LOAD( "pacmanx.5f", 0x4000, 0x4000, CRC(92e1b10e) SHA1(bb04988502fa181365c08096b5fd47fa9541c291) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( hangly3x )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "hangly3.6e", 0x0000, 0x0800, CRC(9d027c4a) SHA1(88e094880057451a75cdc2ce9477403021813982) )
+ ROM_LOAD( "hangly3.6k", 0x0800, 0x0800, CRC(194c7189) SHA1(fd423bac2810015313841c7b935054565390fbd0) )
+ ROM_LOAD( "hangly2.6f", 0x1000, 0x0800, CRC(5ba228bb) SHA1(b0e902cdf98bee72d6ec8069eec96adce3245074) )
+ ROM_LOAD( "hangly2.6m", 0x1800, 0x0800, CRC(baf5461e) SHA1(754586a6449fd54a342f260e572c1cd60ab70815) )
+ ROM_LOAD( "hangly3.6h", 0x2000, 0x0800, CRC(08419c4a) SHA1(7e5001adad401080c788737c1d2349f218750442) )
+ ROM_LOAD( "hangly3.6n", 0x2800, 0x0800, CRC(ab74b51f) SHA1(1bce8933ed7807eb7aca9670df8994f8d1a8b5b7) )
+ ROM_LOAD( "hangly3.6j", 0x3000, 0x0800, CRC(5039b082) SHA1(086a6ac4742734167d283b1121fce29d8ac4a6cd) )
+ ROM_LOAD( "hangly3.6p", 0x3800, 0x0800, CRC(931770d7) SHA1(78fcf88e07ec5126c12c3297b62ca388809e947c) )
+
+ ROM_REGION( 0x8000, "gfx1", 0 )
+ ROM_LOAD( "hangly3x.5e", 0x0000, 0x4000, CRC(54abb087) SHA1(a57b59325172902c3fae57c5a23e588d5ac7b8ca) )
+ ROM_LOAD( "pacmanx.5f", 0x4000, 0x4000, CRC(92e1b10e) SHA1(bb04988502fa181365c08096b5fd47fa9541c291) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( hearts )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "hearts.5e", 0x0000, 0x1000, CRC(5be0a4e4) SHA1(7314e670c81debe4ae19bb5ff4da5718a63ef084) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( hellowp )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "hellowp.6e", 0x0000, 0x00f3, CRC(699152c6) SHA1(cf8ec6a969177146ccc6155d896b693afbb70dd8) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( hm1000 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "hangly.6e", 0x0000, 0x1000, CRC(5fe8610a) SHA1(d63eaebd85e10aa6c27bb7f47642dd403eeb6934) )
+ ROM_LOAD( "hangly.6f", 0x1000, 0x1000, CRC(73726586) SHA1(cedddc5194589039dd8b64f07ab6320d7d4f55f9) )
+ ROM_LOAD( "hangly.6h", 0x2000, 0x1000, CRC(4e7ef99f) SHA1(bd42e68b29b4d654dc817782ba00db69b7d2dfe2) )
+ ROM_LOAD( "hangly.6j", 0x3000, 0x1000, CRC(7f4147e6) SHA1(0a7ac0e59d4d26fe52a2f4196c9f19e5ab677c87) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pm1000.5e", 0x0000, 0x1000, CRC(16d9f7ce) SHA1(a9ac72aa5e3dcaaa2e4d03b6ae372e81d77817f8) )
+ ROM_LOAD( "pm1000.5f", 0x1000, 0x1000, CRC(fd06d923) SHA1(a9d61bdcb6841bf07ce8ad08e1be2cf5ef349129) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( hm2000 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "hangly.6e", 0x0000, 0x1000, CRC(5fe8610a) SHA1(d63eaebd85e10aa6c27bb7f47642dd403eeb6934) )
+ ROM_LOAD( "hangly.6f", 0x1000, 0x1000, CRC(73726586) SHA1(cedddc5194589039dd8b64f07ab6320d7d4f55f9) )
+ ROM_LOAD( "hangly.6h", 0x2000, 0x1000, CRC(4e7ef99f) SHA1(bd42e68b29b4d654dc817782ba00db69b7d2dfe2) )
+ ROM_LOAD( "hangly.6j", 0x3000, 0x1000, CRC(7f4147e6) SHA1(0a7ac0e59d4d26fe52a2f4196c9f19e5ab677c87) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pm2000.5e", 0x0000, 0x1000, CRC(cba39624) SHA1(d815cb5be44b3d29cd1bdd4b8c68484e5330e4a4) )
+ ROM_LOAD( "pm2000.5f", 0x1000, 0x1000, CRC(a2b31528) SHA1(69f1c4b34e581c0e6d75b9726cbefa08f8a97fdb) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( hmba5000 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "hangly.6e", 0x0000, 0x1000, CRC(5fe8610a) SHA1(d63eaebd85e10aa6c27bb7f47642dd403eeb6934) )
+ ROM_LOAD( "hangly.6f", 0x1000, 0x1000, CRC(73726586) SHA1(cedddc5194589039dd8b64f07ab6320d7d4f55f9) )
+ ROM_LOAD( "hangly.6h", 0x2000, 0x1000, CRC(4e7ef99f) SHA1(bd42e68b29b4d654dc817782ba00db69b7d2dfe2) )
+ ROM_LOAD( "hangly.6j", 0x3000, 0x1000, CRC(7f4147e6) SHA1(0a7ac0e59d4d26fe52a2f4196c9f19e5ab677c87) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pmba3000.5e", 0x0000, 0x1000, CRC(5ebb61c5) SHA1(cfd491170d1d3d0c0632d5d81629e98cfd100fb6) )
+ ROM_LOAD( "pmba3000.5f", 0x1000, 0x1000, CRC(d9a055aa) SHA1(00c6867b70062672da3b8c254feff4354e35aa7a) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( hmba7000 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "hangly.6e", 0x0000, 0x1000, CRC(5fe8610a) SHA1(d63eaebd85e10aa6c27bb7f47642dd403eeb6934) )
+ ROM_LOAD( "hangly.6f", 0x1000, 0x1000, CRC(73726586) SHA1(cedddc5194589039dd8b64f07ab6320d7d4f55f9) )
+ ROM_LOAD( "hangly.6h", 0x2000, 0x1000, CRC(4e7ef99f) SHA1(bd42e68b29b4d654dc817782ba00db69b7d2dfe2) )
+ ROM_LOAD( "hangly.6j", 0x3000, 0x1000, CRC(7f4147e6) SHA1(0a7ac0e59d4d26fe52a2f4196c9f19e5ab677c87) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pmba6000.5e", 0x0000, 0x1000, CRC(7961ed4e) SHA1(595311b7a77d1379c9564d42a34581cc35a53875) )
+ ROM_LOAD( "pmba6000.5f", 0x1000, 0x1000, CRC(417080fd) SHA1(13e8e812bca25b64e7ce072d86189fd15b1882b0) )
+
+ PACPLUS_PROMS
+ROM_END
+
+ROM_START( hmbabymz )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "hangly.6e", 0x0000, 0x1000, CRC(5fe8610a) SHA1(d63eaebd85e10aa6c27bb7f47642dd403eeb6934) )
+ ROM_LOAD( "hangly.6f", 0x1000, 0x1000, CRC(73726586) SHA1(cedddc5194589039dd8b64f07ab6320d7d4f55f9) )
+ ROM_LOAD( "hangly.6h", 0x2000, 0x1000, CRC(4e7ef99f) SHA1(bd42e68b29b4d654dc817782ba00db69b7d2dfe2) )
+ ROM_LOAD( "hangly.6j", 0x3000, 0x1000, CRC(7f4147e6) SHA1(0a7ac0e59d4d26fe52a2f4196c9f19e5ab677c87) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pmbamaz.5e", 0x0000, 0x1000, CRC(9a8cd8a1) SHA1(653d3c900b0be5e7ffe424207419bf86229b8c48) )
+ ROM_LOAD( "hmbabymz.5f", 0x1000, 0x1000, CRC(f0bd55bd) SHA1(310a375e3b3ec2766399418ce30233cc2263961e) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( hmbluep )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "hangly.6e", 0x0000, 0x1000, CRC(5fe8610a) SHA1(d63eaebd85e10aa6c27bb7f47642dd403eeb6934) )
+ ROM_LOAD( "hangly.6f", 0x1000, 0x1000, CRC(73726586) SHA1(cedddc5194589039dd8b64f07ab6320d7d4f55f9) )
+ ROM_LOAD( "hangly.6h", 0x2000, 0x1000, CRC(4e7ef99f) SHA1(bd42e68b29b4d654dc817782ba00db69b7d2dfe2) )
+ ROM_LOAD( "hangly.6j", 0x3000, 0x1000, CRC(7f4147e6) SHA1(0a7ac0e59d4d26fe52a2f4196c9f19e5ab677c87) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pm1000.5e", 0x0000, 0x1000, CRC(16d9f7ce) SHA1(a9ac72aa5e3dcaaa2e4d03b6ae372e81d77817f8) )
+ ROM_LOAD( "hmbluep.5f", 0x1000, 0x1000, CRC(ceb721be) SHA1(7eb60764bb7f9aa63a9f2a9a3052c2b988f5a530) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( hmgrenp )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "hangly.6e", 0x0000, 0x1000, CRC(5fe8610a) SHA1(d63eaebd85e10aa6c27bb7f47642dd403eeb6934) )
+ ROM_LOAD( "hangly.6f", 0x1000, 0x1000, CRC(73726586) SHA1(cedddc5194589039dd8b64f07ab6320d7d4f55f9) )
+ ROM_LOAD( "hangly.6h", 0x2000, 0x1000, CRC(4e7ef99f) SHA1(bd42e68b29b4d654dc817782ba00db69b7d2dfe2) )
+ ROM_LOAD( "hangly.6j", 0x3000, 0x1000, CRC(7f4147e6) SHA1(0a7ac0e59d4d26fe52a2f4196c9f19e5ab677c87) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pmgrenp.5e", 0x0000, 0x1000, CRC(5807a438) SHA1(8f4160627948747e92c3c5dc386068e4561fd9aa) )
+ ROM_LOAD( "hmgrenp.5f", 0x1000, 0x1000, CRC(1fcc0cf2) SHA1(8920525a7fccdc3fea2ee52687b4881ca84ebaad) )
+
+ PACPLUS_PROMS
+ROM_END
+
+ROM_START( hmhearts )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "hangly3.6e", 0x0000, 0x0800, CRC(9d027c4a) SHA1(88e094880057451a75cdc2ce9477403021813982) )
+ ROM_LOAD( "hangly3.6k", 0x0800, 0x0800, CRC(194c7189) SHA1(fd423bac2810015313841c7b935054565390fbd0) )
+ ROM_LOAD( "hangly2.6f", 0x1000, 0x0800, CRC(5ba228bb) SHA1(b0e902cdf98bee72d6ec8069eec96adce3245074) )
+ ROM_LOAD( "newpuc2.6m", 0x1800, 0x0800, CRC(70810ccf) SHA1(3941678606aab1e53356a6781e24d84e83cc88ce) )
+ ROM_LOAD( "hangly3.6h", 0x2000, 0x0800, CRC(08419c4a) SHA1(7e5001adad401080c788737c1d2349f218750442) )
+ ROM_LOAD( "newpuc2.6n", 0x2800, 0x0800, CRC(3f250c58) SHA1(53bf2270c26f10f7e97960cd4c96e09e16b9bdf3) )
+ ROM_LOAD( "hmhearts.6j", 0x3000, 0x0800, CRC(603b70b7) SHA1(a8e408e33fb16f0879793d416c3074dc48c875db) )
+ ROM_LOAD( "hmhearts.6p", 0x3800, 0x0800, CRC(71293b1f) SHA1(b507a74866d34ecf0e6d32c91f9b5655817f6c3f) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacheart.5e", 0x0000, 0x0800, CRC(c62bbabf) SHA1(f6f28ae33c2ab274105283b22b49ad243780a95e) )
+ ROM_LOAD( "newpuc2.5h", 0x0800, 0x0800, CRC(777c70d3) SHA1(ed5ccbeb1102ec9f837577de3aa51317c32520d6) )
+ ROM_LOAD( "newpuc2.5f", 0x1000, 0x0800, CRC(ca8c184c) SHA1(833aa845824ed80777b62f03df36a920ad7c3656) )
+ ROM_LOAD( "newpuc2.5j", 0x1800, 0x0800, CRC(7dc75a81) SHA1(d3fe1cad3b594052d8367685febb2335b0ad62f4) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( hmpopey )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "hangly.6e", 0x0000, 0x1000, CRC(5fe8610a) SHA1(d63eaebd85e10aa6c27bb7f47642dd403eeb6934) )
+ ROM_LOAD( "hangly.6f", 0x1000, 0x1000, CRC(73726586) SHA1(cedddc5194589039dd8b64f07ab6320d7d4f55f9) )
+ ROM_LOAD( "hangly.6h", 0x2000, 0x1000, CRC(4e7ef99f) SHA1(bd42e68b29b4d654dc817782ba00db69b7d2dfe2) )
+ ROM_LOAD( "hangly.6j", 0x3000, 0x1000, CRC(7f4147e6) SHA1(0a7ac0e59d4d26fe52a2f4196c9f19e5ab677c87) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacpopey.5f", 0x1000, 0x1000, CRC(af2b610b) SHA1(c787b1db588125f0770dc2bf4626ad22f0faee72) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( hmplus )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "hangly.6e", 0x0000, 0x1000, CRC(5fe8610a) SHA1(d63eaebd85e10aa6c27bb7f47642dd403eeb6934) )
+ ROM_LOAD( "hangly.6f", 0x1000, 0x1000, CRC(73726586) SHA1(cedddc5194589039dd8b64f07ab6320d7d4f55f9) )
+ ROM_LOAD( "hangly.6h", 0x2000, 0x1000, CRC(4e7ef99f) SHA1(bd42e68b29b4d654dc817782ba00db69b7d2dfe2) )
+ ROM_LOAD( "hangly.6j", 0x3000, 0x1000, CRC(7f4147e6) SHA1(0a7ac0e59d4d26fe52a2f4196c9f19e5ab677c87) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacplus.5e", 0x0000, 0x1000, CRC(022c35da) SHA1(57d7d723c7b029e3415801f4ce83469ec97bb8a1) )
+ ROM_LOAD( "hmplus.5f", 0x1000, 0x1000, CRC(7a444bda) SHA1(71f93790843482d9389c6d66a7ee5196119185fb) )
+
+ PACPLUS_PROMS
+ROM_END
+
+ROM_START( homercid )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "homercid.6e", 0x0000, 0x1041, CRC(2768e80e) SHA1(aaf78f4a1bea4aba3e44275ccfbc2ee641a3b8ff) )
+ ROM_LOAD( "homercid.6f", 0x1000, 0x1000, CRC(3858d8b7) SHA1(44560196ca888a82669d94687c964373fd0ffc4d) )
+ ROM_LOAD( "homercid.6h", 0x2000, 0x1003, CRC(d61413d0) SHA1(a5ea1fdc50e2d185440e38a01837a6c5a5b89484) )
+ ROM_LOAD( "homercid.6j", 0x3000, 0x1003, CRC(e8b53076) SHA1(c8fe2c2c637a87356a95176bc333ca28f63ae00a) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "homercid.5e", 0x0000, 0x1000, CRC(4879edc5) SHA1(abde239a818a7025e629e59490479da700d70538) )
+ ROM_LOAD( "homercid.5f", 0x1000, 0x1000, CRC(475e51c9) SHA1(478d1907f448f40f50b1b2ca1ddabc5b818e7003) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD( "homercid.7f", 0x0000, 0x0020, CRC(2b7e868a) SHA1(28976b3b7a2ea112da1d7af0366090f8a172dbb6) )
+ ROM_LOAD( "homercid.4a", 0x0020, 0x0100, CRC(9717a6be) SHA1(00497d00c45d48570de0ab6ca8fea42cdb38eb85) )
+
+ PACMAN_SOUND_PROMS
+ROM_END
+
+ROM_START( jacman )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "jacman.6j", 0x3000, 0x1000, CRC(1f52ef8b) SHA1(0a803352a964de9567bc314f8ace1c612082e3d0) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "jacman.5e", 0x0000, 0x1000, CRC(809bd73e) SHA1(81989a21d089eb76297926905729efcd69abeb87) )
+ ROM_LOAD( "jacman.5f", 0x1000, 0x1000, CRC(0509d3e6) SHA1(e589543b9a2f1c81115c03b4b88096ac84826e62) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( joyman )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacheart.6e", 0x0000, 0x0800, CRC(d844b679) SHA1(c4486198b3126bb8e05a308c53787e51065f77ae) )
+ ROM_LOAD( "joyman.6k", 0x0800, 0x0800, CRC(ab9c8f29) SHA1(3753b8609c30d85d89acf745cf9303b77be440fd) )
+ ROM_LOAD( "puckman.6f", 0x1000, 0x0800, CRC(7d177853) SHA1(9b5ddaaa8b564654f97af193dbcc29f81f230a25) )
+ ROM_LOAD( "joyman.6m", 0x1800, 0x0800, CRC(b3c8d32e) SHA1(8b336fca1300820308cd5c4efc60bf2ba4199302) )
+ ROM_LOAD( "pacheart.6h", 0x2000, 0x0800, CRC(9045a44c) SHA1(a97d7016effbd2ace9a7d92ceb04a6ce18fb42f9) )
+ ROM_LOAD( "pacheart.6n", 0x2800, 0x0800, CRC(888f3c3e) SHA1(c2b5917bf13071131dd53ea76f0da86706db2d80) )
+ ROM_LOAD( "joyman.6j", 0x3000, 0x0800, CRC(00b553f8) SHA1(57f2e4a6da9f00935fead447b2123a8b95e5d672) )
+ ROM_LOAD( "joyman.6p", 0x3800, 0x0800, CRC(5d5ce992) SHA1(ced7ed39cfc7ec7b2c0459e275577976109ee82f) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "joyman.5e", 0x0000, 0x0800, CRC(39b557bc) SHA1(0f602ec84cb25fced89699e430b95b5ae93c83bd) )
+ ROM_LOAD( "joyman.5h", 0x0800, 0x0800, CRC(33e0289e) SHA1(c1b910bdc61e560a8c34298deb11401f718e7330) )
+ ROM_LOAD( "joyman.5f", 0x1000, 0x0800, CRC(338771a6) SHA1(7cd68cc428986255d0de29aae894900519e7fda5) )
+ ROM_LOAD( "joyman.5j", 0x1800, 0x0800, CRC(f4f0add5) SHA1(d71c54ef55a755ec1316623d183b4f615ef7c055) )
+
+ PACMAN_PROMS
+ROM_END
+
+/* No gfx roms and no proms included. Using puckman ones. Dumped by Andy Welburn. */
+ROM_START( jpmmunch )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "newpuck1.6e", 0x0000, 0x0800, CRC(2c0fa0ab) SHA1(37680e4502771ae69d51d07ce43f65b9b2dd2a49) )
+ ROM_LOAD( "pmheart.6k", 0x0800, 0x0800, CRC(afeca2f1) SHA1(1e6d6c75eeb3a354ce2dc88da62caf9e7d53d0cb) )
+ ROM_LOAD( "puckman.6f", 0x1000, 0x0800, CRC(7d177853) SHA1(9b5ddaaa8b564654f97af193dbcc29f81f230a25) )
+ ROM_LOAD( "puckman.6m", 0x1800, 0x0800, CRC(d3e8914c) SHA1(c2f00e1773c6864435f29c8b7f44f2ef85d227d3) )
+ ROM_LOAD( "pacheart.6h", 0x2000, 0x0800, CRC(9045a44c) SHA1(a97d7016effbd2ace9a7d92ceb04a6ce18fb42f9) )
+ ROM_LOAD( "pmheart.6n", 0x2800, 0x0800, CRC(93f344c5) SHA1(987c7fa18a774a47c045fa1dc7dff37457cb8983) )
+ ROM_LOAD( "jpmmunch.6j", 0x3000, 0x0800, CRC(258580a2) SHA1(c594329963215971dba7cd857dfde5323f610dba) )
+ ROM_LOAD( "jpmmunch.6p", 0x3800, 0x0800, CRC(b4d7ee8c) SHA1(38dfea4443f13c15ed17e0eb8f7ca24ce14d6ca8) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "puckman.5e", 0x0000, 0x0800, CRC(2066a0b7) SHA1(6d4ccc27d6be185589e08aa9f18702b679e49a4a) )
+ ROM_LOAD( "puckman.5h", 0x0800, 0x0800, CRC(3591b89d) SHA1(79bb456be6c39c1ccd7d077fbe181523131fb300) )
+ ROM_LOAD( "puckman.5f", 0x1000, 0x0800, CRC(9e39323a) SHA1(be933e691df4dbe7d12123913c3b7b7b585b7a35) )
+ ROM_LOAD( "puckman.5j", 0x1800, 0x0800, CRC(1b1d9096) SHA1(53771c573051db43e7185b1d188533056290a620) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( mazeman )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "newpuck2.6e", 0x0000, 0x1000, CRC(a8ae23c5) SHA1(1481a4f083b563350744f9d25b1bcd28073875d6) )
+ ROM_LOAD( "mazeman.6f", 0x1000, 0x1000, CRC(77e44852) SHA1(01c2e54cf9adc3bd92ab02eaa471638d8f17754d) )
+ ROM_LOAD( "mazeman.6h", 0x2000, 0x1000, CRC(6d16a528) SHA1(3ef42b46564bf3b8347f6bddb1940368a23fa515) )
+ ROM_LOAD( "mazeman.6j", 0x3000, 0x1000, CRC(3c3ff208) SHA1(2c6a8f9e3f130c3c0a9fa535b1ff76ac26a07f9f) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "mazeman.5e", 0x0000, 0x1000, CRC(38870a32) SHA1(2b65a6309b204b89dcb6329e43f55301ecf69227) )
+ ROM_LOAD( "mazeman.5f", 0x1000, 0x1000, CRC(1fd18b80) SHA1(2b10b572840e5977adda490d5fbddef98b65575e) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( namcosil )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "puckmanb.6e", 0x0000, 0x1000, CRC(fee263b3) SHA1(87117ba5082cd7a615b4ec7c02dd819003fbd669) )
+ ROM_LOAD( "namcosil.6f", 0x1000, 0x1000, CRC(c5ec2352) SHA1(86178b16dabb90005b132febc1a261651a73018d) )
+ ROM_LOAD( "puckmanb.6h", 0x2000, 0x1000, CRC(02083b03) SHA1(7e1945f6eb51f2e51806d0439f975f7a2889b9b8) )
+ ROM_LOAD( "namcosil.6j", 0x3000, 0x1000, CRC(57a07f6e) SHA1(8a7a1d4662e4fc5c5374ad1cad09fd4da1f8398a) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( newpuc2 )
+ ROM_REGION( 0x10000, "maincpu",0 )
+ ROM_LOAD( "newpuc2.6e", 0x0000, 0x0800, CRC(69496a98) SHA1(2934051d6305cc3654951bc1aacf2b8902f463fe) )
+ ROM_LOAD( "newpuc2.6k", 0x0800, 0x0800, CRC(158fc01c) SHA1(2f7a1e24d259fdc716ef8e7354a87780595f3c4e) )
+ ROM_LOAD( "puckman.6f", 0x1000, 0x0800, CRC(7d177853) SHA1(9b5ddaaa8b564654f97af193dbcc29f81f230a25) )
+ ROM_LOAD( "newpuc2.6m", 0x1800, 0x0800, CRC(70810ccf) SHA1(3941678606aab1e53356a6781e24d84e83cc88ce) )
+ ROM_LOAD( "newpuc2.6h", 0x2000, 0x0800, CRC(81719de8) SHA1(e886d04ac0e20562a4bd2df7676bdf9aa98665d7) )
+ ROM_LOAD( "newpuc2.6n", 0x2800, 0x0800, CRC(3f250c58) SHA1(53bf2270c26f10f7e97960cd4c96e09e16b9bdf3) )
+ ROM_LOAD( "newpuc2.6j", 0x3000, 0x0800, CRC(e6675736) SHA1(85d0bb79bc96acbc67fcb70ff4d453c870a6c8ea) )
+ ROM_LOAD( "newpuc2.6p", 0x3800, 0x0800, CRC(1f81e765) SHA1(442d8a82e79ae842f1ffb46369c632c1d0b83161) )
+
+ ROM_REGION( 0x2000, "gfx1" , 0)
+ ROM_LOAD( "puckman.5e", 0x0000, 0x0800, CRC(2066a0b7) SHA1(6d4ccc27d6be185589e08aa9f18702b679e49a4a) )
+ ROM_LOAD( "newpuc2.5h", 0x0800, 0x0800, CRC(777c70d3) SHA1(ed5ccbeb1102ec9f837577de3aa51317c32520d6) )
+ ROM_LOAD( "newpuc2.5f", 0x1000, 0x0800, CRC(ca8c184c) SHA1(833aa845824ed80777b62f03df36a920ad7c3656) )
+ ROM_LOAD( "newpuc2.5j", 0x1800, 0x0800, CRC(7dc75a81) SHA1(d3fe1cad3b594052d8367685febb2335b0ad62f4) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( newpuc2b )
+ ROM_REGION( 0x10000, "maincpu",0 )
+ ROM_LOAD( "hangly3.6e", 0x0000, 0x0800, CRC(9d027c4a) SHA1(88e094880057451a75cdc2ce9477403021813982) )
+ ROM_LOAD( "newpuc2.6k", 0x0800, 0x0800, CRC(158fc01c) SHA1(2f7a1e24d259fdc716ef8e7354a87780595f3c4e) )
+ ROM_LOAD( "puckman.6f", 0x1000, 0x0800, CRC(7d177853) SHA1(9b5ddaaa8b564654f97af193dbcc29f81f230a25) )
+ ROM_LOAD( "newpuc2.6m", 0x1800, 0x0800, CRC(70810ccf) SHA1(3941678606aab1e53356a6781e24d84e83cc88ce) )
+ ROM_LOAD( "newpuc2b.6h", 0x2000, 0x0800, CRC(f5e4b2b1) SHA1(68464f61cc50931f6cd4bb493dd703c139500825) )
+ ROM_LOAD( "newpuc2.6n", 0x2800, 0x0800, CRC(3f250c58) SHA1(53bf2270c26f10f7e97960cd4c96e09e16b9bdf3) )
+ ROM_LOAD( "newpuc2b.6j", 0x3000, 0x0800, CRC(f068e009) SHA1(a30763935e116559d535654827230bb21a5734bb) )
+ ROM_LOAD( "newpuc2b.6p", 0x3800, 0x0800, CRC(1fadcc2f) SHA1(2d636cfc2b52b671ac5a26a03b1195e2cf8d4718) )
+
+ ROM_REGION( 0x2000, "gfx1" , 0)
+ ROM_LOAD( "puckman.5e", 0x0000, 0x0800, CRC(2066a0b7) SHA1(6d4ccc27d6be185589e08aa9f18702b679e49a4a) )
+ ROM_LOAD( "newpuc2.5h", 0x0800, 0x0800, CRC(777c70d3) SHA1(ed5ccbeb1102ec9f837577de3aa51317c32520d6) )
+ ROM_LOAD( "newpuc2.5f", 0x1000, 0x0800, CRC(ca8c184c) SHA1(833aa845824ed80777b62f03df36a920ad7c3656) )
+ ROM_LOAD( "newpuc2.5j", 0x1800, 0x0800, CRC(7dc75a81) SHA1(d3fe1cad3b594052d8367685febb2335b0ad62f4) )
+
+ PACMAN_PROMS
+ROM_END
+
+/* This was from the Italian dumping team, called "puckmanbootleg.zip". They did not dump the 2nd, 4th, 6th, 8th
+ program roms, so I have used the ones from pacheart for now. Also, it has the standard maze instead of the
+ newpuck one - but this could be correct? */
+ROM_START( newpuc1 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "newpuck1.6e", 0x0000, 0x0800, CRC(2c0fa0ab) SHA1(37680e4502771ae69d51d07ce43f65b9b2dd2a49) )
+ ROM_LOAD( "pacheart.6k", 0x0800, 0x0800, CRC(b9152a38) SHA1(b6be2cb6bc7dd123503eb6bf1165dd1c99456813) )
+ ROM_LOAD( "puckman.6f", 0x1000, 0x0800, CRC(7d177853) SHA1(9b5ddaaa8b564654f97af193dbcc29f81f230a25) )
+ ROM_LOAD( "pacheart.6m", 0x1800, 0x0800, CRC(842d6574) SHA1(40e32d09cc8d701eb318716493a68cf3f95d3d6d) )
+ ROM_LOAD( "pacheart.6h", 0x2000, 0x0800, CRC(9045a44c) SHA1(a97d7016effbd2ace9a7d92ceb04a6ce18fb42f9) )
+ ROM_LOAD( "pacheart.6n", 0x2800, 0x0800, CRC(888f3c3e) SHA1(c2b5917bf13071131dd53ea76f0da86706db2d80) )
+ ROM_LOAD( "newpuck1.6j", 0x3000, 0x0800, CRC(565687c6) SHA1(9ee8e8197e87e468669279e738fe518e5480363c) )
+ ROM_LOAD( "pacheart.6p", 0x3800, 0x0800, CRC(1a21a381) SHA1(d5367a327d19fb57ba5e484bd4fda1b10953c040) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "newpuck1.5e", 0x0000, 0x0800, CRC(3ed40275) SHA1(bf56f9a21bc1dacee438d88eb5bc59f20906b00c) )
+ ROM_LOAD( "puckman.5h", 0x0800, 0x0800, CRC(3591b89d) SHA1(79bb456be6c39c1ccd7d077fbe181523131fb300) )
+ ROM_LOAD( "puckman.5f", 0x1000, 0x0800, CRC(9e39323a) SHA1(be933e691df4dbe7d12123913c3b7b7b585b7a35) )
+ ROM_LOAD( "puckman.5j", 0x1800, 0x0800, CRC(1b1d9096) SHA1(53771c573051db43e7185b1d188533056290a620) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( newpuck2 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "newpuck2.6e", 0x0000, 0x1000, CRC(a8ae23c5) SHA1(1481a4f083b563350744f9d25b1bcd28073875d6) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "newpuck2.6h", 0x2000, 0x1000, CRC(197443f8) SHA1(119aab12a9e1052c7b9a1f81e563740b41429a8c) )
+ ROM_LOAD( "newpuck2.6j", 0x3000, 0x1000, CRC(0e3bdbde) SHA1(11679a3e60cb98ef56e9f0c349d421a72b7097f6) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( newpuc2x )
+ ROM_REGION( 0x10000, "maincpu",0 )
+ ROM_LOAD( "newpuc2.6e", 0x0000, 0x0800, CRC(69496a98) SHA1(2934051d6305cc3654951bc1aacf2b8902f463fe) )
+ ROM_LOAD( "newpuc2.6k", 0x0800, 0x0800, CRC(158fc01c) SHA1(2f7a1e24d259fdc716ef8e7354a87780595f3c4e) )
+ ROM_LOAD( "puckman.6f", 0x1000, 0x0800, CRC(7d177853) SHA1(9b5ddaaa8b564654f97af193dbcc29f81f230a25) )
+ ROM_LOAD( "newpuc2.6m", 0x1800, 0x0800, CRC(70810ccf) SHA1(3941678606aab1e53356a6781e24d84e83cc88ce) )
+ ROM_LOAD( "newpuc2.6h", 0x2000, 0x0800, CRC(81719de8) SHA1(e886d04ac0e20562a4bd2df7676bdf9aa98665d7) )
+ ROM_LOAD( "newpuc2.6n", 0x2800, 0x0800, CRC(3f250c58) SHA1(53bf2270c26f10f7e97960cd4c96e09e16b9bdf3) )
+ ROM_LOAD( "newpuc2.6j", 0x3000, 0x0800, CRC(e6675736) SHA1(85d0bb79bc96acbc67fcb70ff4d453c870a6c8ea) )
+ ROM_LOAD( "newpuc2.6p", 0x3800, 0x0800, CRC(1f81e765) SHA1(442d8a82e79ae842f1ffb46369c632c1d0b83161) )
+
+ ROM_REGION( 0x8000, "gfx1", 0 )
+ ROM_LOAD( "newpuc2x.5e", 0x0000, 0x4000, CRC(0a64f4c8) SHA1(1f3456b14b2b847869db6eeb3c115e3042b24672) )
+ ROM_LOAD( "newpuc2x.5f", 0x4000, 0x4000, CRC(4ba7164c) SHA1(902e6f0bfeed8f40b83cf0eb7de6440d91ee811d) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( newpuck3 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "newpuck2.6e", 0x0000, 0x1000, CRC(a8ae23c5) SHA1(1481a4f083b563350744f9d25b1bcd28073875d6) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "newpuck3.6h", 0x2000, 0x1000, CRC(ee3c8685) SHA1(17d80ea2766370dcec04070de67cde69d2c3b04b) )
+ ROM_LOAD( "newpuck3.6j", 0x3000, 0x1000, CRC(6ee64463) SHA1(5b692313dbe448b6b016f9dd2403757e16578049) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "newpuck3.5e", 0x0000, 0x1000, CRC(6209b614) SHA1(23434b89f25d6164dca619192a282c60a63418e1) )
+ ROM_LOAD( "newpuck3.5f", 0x1000, 0x1000, CRC(923515bc) SHA1(a3605a632f4b47616e0c6e4e1cdf1ef9c71bb0e0) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( newpuckx )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "newpuck2.6e", 0x0000, 0x1000, CRC(a8ae23c5) SHA1(1481a4f083b563350744f9d25b1bcd28073875d6) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "newpuck2.6h", 0x2000, 0x1000, CRC(197443f8) SHA1(119aab12a9e1052c7b9a1f81e563740b41429a8c) )
+ ROM_LOAD( "fastpuck.6j", 0x3000, 0x1000, CRC(2e64a3ba) SHA1(f86a921173f32211b18d023c2701664d13ae23be) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( nwpuc2b )
+ ROM_REGION( 0x10000, "maincpu",0 )
+ ROM_LOAD( "nwpuc2b.6e", 0x0000, 0x1000, CRC(532bd09f) SHA1(ed362ae0b38a00747128046a14d68d2a676953ae) )
+ ROM_LOAD( "nwpuc2b.6f", 0x1000, 0x1000, CRC(b9062f57) SHA1(cdfb2264fc5874cd18848fde936ea1314ce74cba) )
+ ROM_LOAD( "nwpuc2b.6h", 0x2000, 0x1000, CRC(519b3c57) SHA1(cc03d67035f9d590fadef899d9a2d978a4978b39) )
+ ROM_LOAD( "nwpuc2b.6j", 0x3000, 0x1000, CRC(154cc118) SHA1(e5bd6033653edcfadac467573613e1b7dbf9eb44) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "nwpuc2b.5e", 0x0000, 0x1000, CRC(58357313) SHA1(a1778318e07510eeb5b23a5d650f5a5f9fc0fb5a) )
+ ROM_LOAD( "nwpuc2b.5f", 0x1000, 0x1000, CRC(4b044c87) SHA1(3e1a497563918d1ddd730efb9622abe650a258a1) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( nwpuc2bx )
+ ROM_REGION( 0x10000, "maincpu",0 )
+ ROM_LOAD( "hangly3.6e", 0x0000, 0x0800, CRC(9d027c4a) SHA1(88e094880057451a75cdc2ce9477403021813982) )
+ ROM_LOAD( "newpuc2.6k", 0x0800, 0x0800, CRC(158fc01c) SHA1(2f7a1e24d259fdc716ef8e7354a87780595f3c4e) )
+ ROM_LOAD( "puckman.6f", 0x1000, 0x0800, CRC(7d177853) SHA1(9b5ddaaa8b564654f97af193dbcc29f81f230a25) )
+ ROM_LOAD( "newpuc2.6m", 0x1800, 0x0800, CRC(70810ccf) SHA1(3941678606aab1e53356a6781e24d84e83cc88ce) )
+ ROM_LOAD( "nwepuc2b.6h", 0x2000, 0x0800, CRC(f5e4b2b1) SHA1(68464f61cc50931f6cd4bb493dd703c139500825) )
+ ROM_LOAD( "newpuc2.6n", 0x2800, 0x0800, CRC(3f250c58) SHA1(53bf2270c26f10f7e97960cd4c96e09e16b9bdf3) )
+ ROM_LOAD( "newpuc2b.6j", 0x3000, 0x0800, CRC(f068e009) SHA1(a30763935e116559d535654827230bb21a5734bb) )
+ ROM_LOAD( "newpuc2b.6p", 0x3800, 0x0800, CRC(1fadcc2f) SHA1(2d636cfc2b52b671ac5a26a03b1195e2cf8d4718) )
+
+ ROM_REGION( 0x8000, "gfx1", 0 )
+ ROM_LOAD( "newpuc2x.5e", 0x0000, 0x4000, CRC(0a64f4c8) SHA1(1f3456b14b2b847869db6eeb3c115e3042b24672) )
+ ROM_LOAD( "newpuc2x.5f", 0x4000, 0x4000, CRC(4ba7164c) SHA1(902e6f0bfeed8f40b83cf0eb7de6440d91ee811d) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( nwpuckxx )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "newpuck2.6e", 0x0000, 0x1000, CRC(a8ae23c5) SHA1(1481a4f083b563350744f9d25b1bcd28073875d6) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "newpuck2.6h", 0x2000, 0x1000, CRC(197443f8) SHA1(119aab12a9e1052c7b9a1f81e563740b41429a8c) )
+ ROM_LOAD( "fastpuck.6j", 0x3000, 0x1000, CRC(2e64a3ba) SHA1(f86a921173f32211b18d023c2701664d13ae23be) )
+
+ ROM_REGION( 0x8000, "gfx1", 0 )
+ ROM_LOAD( "pacmanx.5e", 0x0000, 0x4000, CRC(a45138ce) SHA1(f18344980b4a58d0abf0cc2b7853184af3d5bfa0) )
+ ROM_LOAD( "pacmanx.5f", 0x4000, 0x4000, CRC(92e1b10e) SHA1(bb04988502fa181365c08096b5fd47fa9541c291) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pac2600 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pac2600.6f", 0x1000, 0x1000, CRC(0a27d11d) SHA1(b7b8da84b3a472974ed2f53a82d56bc8e81cef5c) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pac2600.6j", 0x3000, 0x1000, CRC(ab23fe0c) SHA1(1ae9882ee1c33ea18cf40c2ef5563cc3b546dcd5) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pac2600.5e", 0x0000, 0x1000, CRC(87d8f5ce) SHA1(fe421ee0f5ef70b56f0760473b003a886bed3d72) )
+ ROM_LOAD( "pac2600.5f", 0x1000, 0x1000, CRC(91bd671f) SHA1(ae1745a03090a747baf78f8554ea8620fa2b9d81) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pac2600a )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pac2600a.6j", 0x3000, 0x1000, CRC(d168bdfa) SHA1(0edc9c435385f9bce1939ad5ea41225ddf1db16f) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pac2600a.5e", 0x0000, 0x1000, CRC(20e327e3) SHA1(857e4d67ae9f2f9b9b60fd4f9c1327b5056e3705) )
+ ROM_LOAD( "pac2600a.5f", 0x1000, 0x1000, CRC(feb98199) SHA1(66a84d5813de4441e6dd70e91fbdb482f999da8f) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacbaby )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacbaby.6j", 0x3000, 0x1000, CRC(4e4ac798) SHA1(deab2d93a678abee576c891bdfb7ab93d5718792) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacbaby2 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacbaby2.6j", 0x3000, 0x1000, CRC(742453ba) SHA1(21707992ea3489c8bc95b14db33f62b6aaa24eb4) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacbaby3 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacbaby3.6j", 0x3000, 0x1000, CRC(b82f2b73) SHA1(63619220b9ed4dfeb4f462b41d9685870716590a) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacbell )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacm255.6h", 0x2000, 0x1000, CRC(d3640977) SHA1(2cc05c16c0cf6f516c69ab0b6e1a83bdd3010798) )
+ ROM_LOAD( "pacbell.6j", 0x3000, 0x1000, CRC(4b428215) SHA1(acdcc4d7ccfc58c6c0473e8ee548b5e02dcafcfd) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacelec )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacm255.6h", 0x2000, 0x1000, CRC(d3640977) SHA1(2cc05c16c0cf6f516c69ab0b6e1a83bdd3010798) )
+ ROM_LOAD( "pacelec.6j", 0x3000, 0x1000, CRC(9e5c763d) SHA1(df56eb705c7dfaf00b084aa6744d7fd5fa4f47d3) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacfnt )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacfnt.5e", 0x0000, 0x1000, CRC(f2561d07) SHA1(1b971c2a907673dac0bf676f599a8a20fcb4a01b) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacheart )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacheart.6e", 0x0000, 0x0800, CRC(d844b679) SHA1(c4486198b3126bb8e05a308c53787e51065f77ae) )
+ ROM_LOAD( "pacheart.6k", 0x0800, 0x0800, CRC(b9152a38) SHA1(b6be2cb6bc7dd123503eb6bf1165dd1c99456813) )
+ ROM_LOAD( "puckman.6f", 0x1000, 0x0800, CRC(7d177853) SHA1(9b5ddaaa8b564654f97af193dbcc29f81f230a25) )
+ ROM_LOAD( "pacheart.6m", 0x1800, 0x0800, CRC(842d6574) SHA1(40e32d09cc8d701eb318716493a68cf3f95d3d6d) )
+ ROM_LOAD( "pacheart.6h", 0x2000, 0x0800, CRC(9045a44c) SHA1(a97d7016effbd2ace9a7d92ceb04a6ce18fb42f9) )
+ ROM_LOAD( "pacheart.6n", 0x2800, 0x0800, CRC(888f3c3e) SHA1(c2b5917bf13071131dd53ea76f0da86706db2d80) )
+ ROM_LOAD( "pacheart.6j", 0x3000, 0x0800, CRC(f5265c10) SHA1(9a320790d7a03fd6192a92d30b3e9c754bbc6a9d) )
+ ROM_LOAD( "pacheart.6p", 0x3800, 0x0800, CRC(1a21a381) SHA1(d5367a327d19fb57ba5e484bd4fda1b10953c040) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacheart.5e", 0x0000, 0x0800, CRC(c62bbabf) SHA1(f6f28ae33c2ab274105283b22b49ad243780a95e) )
+ ROM_LOAD( "puckman.5h", 0x0800, 0x0800, CRC(3591b89d) SHA1(79bb456be6c39c1ccd7d077fbe181523131fb300) )
+ ROM_LOAD( "newpuc2.5f", 0x1000, 0x0800, CRC(ca8c184c) SHA1(833aa845824ed80777b62f03df36a920ad7c3656) )
+ ROM_LOAD( "puckman.5j", 0x1800, 0x0800, CRC(1b1d9096) SHA1(53771c573051db43e7185b1d188533056290a620) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacinvis )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacm255.6h", 0x2000, 0x1000, CRC(d3640977) SHA1(2cc05c16c0cf6f516c69ab0b6e1a83bdd3010798) )
+ ROM_LOAD( "pacinvis.6j", 0x3000, 0x1000, CRC(1b4e96dc) SHA1(f26207c9b8277078a7c428f35938164ea6326f21) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacjail )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacm255.6h", 0x2000, 0x1000, CRC(d3640977) SHA1(2cc05c16c0cf6f516c69ab0b6e1a83bdd3010798) )
+ ROM_LOAD( "pacjail.6j", 0x3000, 0x1000, CRC(cc31f185) SHA1(cd184a55f775bc9a70d0bfa932d2993b8987135b) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacjr1 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacm255.6h", 0x2000, 0x1000, CRC(d3640977) SHA1(2cc05c16c0cf6f516c69ab0b6e1a83bdd3010798) )
+ ROM_LOAD( "pacjr1.6j", 0x3000, 0x1000, CRC(fcfb21a3) SHA1(74c103f78cb75cb01ec4b611e341ed3d37fb0b94) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacjr1.5e", 0x0000, 0x1000, CRC(9f3c32d4) SHA1(e7e40207f2a70768ce38cbb1e62c02ca4bed3a14) )
+ ROM_LOAD( "pacjr1.5f", 0x1000, 0x1000, CRC(c2310808) SHA1(84c28a4fc327afcb441daee35acdab6f7613395e) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacjr2 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacm255.6h", 0x2000, 0x1000, CRC(d3640977) SHA1(2cc05c16c0cf6f516c69ab0b6e1a83bdd3010798) )
+ ROM_LOAD( "pacjr2.6j", 0x3000, 0x1000, CRC(cc26c905) SHA1(213adaaa54cd084dbf73bd6d6ed9f9f4e4a03a5f) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacjr1.5e", 0x0000, 0x1000, CRC(9f3c32d4) SHA1(e7e40207f2a70768ce38cbb1e62c02ca4bed3a14) )
+ ROM_LOAD( "pacjr1.5f", 0x1000, 0x1000, CRC(c2310808) SHA1(84c28a4fc327afcb441daee35acdab6f7613395e) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacjr3 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacm255.6h", 0x2000, 0x1000, CRC(d3640977) SHA1(2cc05c16c0cf6f516c69ab0b6e1a83bdd3010798) )
+ ROM_LOAD( "pacjr3.6j", 0x3000, 0x1000, CRC(d4d8cb9b) SHA1(06bcf32e5fe9af7161178bd6295a6ea48f791f37) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacjr1.5e", 0x0000, 0x1000, CRC(9f3c32d4) SHA1(e7e40207f2a70768ce38cbb1e62c02ca4bed3a14) )
+ ROM_LOAD( "pacjr1.5f", 0x1000, 0x1000, CRC(c2310808) SHA1(84c28a4fc327afcb441daee35acdab6f7613395e) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacjr4 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacm255.6h", 0x2000, 0x1000, CRC(d3640977) SHA1(2cc05c16c0cf6f516c69ab0b6e1a83bdd3010798) )
+ ROM_LOAD( "pacjr4.6j", 0x3000, 0x1000, CRC(42ca024b) SHA1(567331f4050fc0de5d1fda304fa27556c86968db) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacjr1.5e", 0x0000, 0x1000, CRC(9f3c32d4) SHA1(e7e40207f2a70768ce38cbb1e62c02ca4bed3a14) )
+ ROM_LOAD( "pacjr1.5f", 0x1000, 0x1000, CRC(c2310808) SHA1(84c28a4fc327afcb441daee35acdab6f7613395e) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacm255 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacm255.6h", 0x2000, 0x1000, CRC(d3640977) SHA1(2cc05c16c0cf6f516c69ab0b6e1a83bdd3010798) )
+ ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacman )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacman25 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "puckmanb.6e", 0x0000, 0x1000, CRC(fee263b3) SHA1(87117ba5082cd7a615b4ec7c02dd819003fbd669) )
+ ROM_LOAD( "namcosil.6f", 0x1000, 0x1000, CRC(c5ec2352) SHA1(86178b16dabb90005b132febc1a261651a73018d) )
+ ROM_LOAD( "pacman25.3", 0x2000, 0x1000, CRC(92cd89b9) SHA1(c3a0141480341c550a889b58692c8c90b322ee67) )
+ ROM_LOAD( "pacman25.4", 0x3000, 0x1000, CRC(f7193845) SHA1(6d190cf6e76520b8b8c97e6e3a817c4a142003ba) )
+ ROM_LOAD( "pacman25.5", 0x8000, 0x1000, CRC(19a22304) SHA1(6cc0e4921148b7a7eedf5d807bd63062b745e1c6) )
+ ROM_LOAD( "pacman25.6", 0x9000, 0x1000, CRC(7cdbd912) SHA1(b19868bd5da3163e03320e6de0428b22b8e02d80) )
+ ROM_LOAD( "pacman25.7", 0xa000, 0x1000, CRC(c626ea9c) SHA1(3cd3f20e002845937a43f323b685425c95881d9e) )
+ ROM_LOAD( "pacman25.8", 0xb000, 0x1000, CRC(f5ba954d) SHA1(eba18f9a7f6d50f167ed37bff0adec43f52b49a0) )
+ /* This colour table is configurable to whatever you want */
+ ROM_FILL(0x8fc0, 1, 0x01) // level 1
+ ROM_FILL(0x8fc1, 1, 0x11) // level 2
+ ROM_FILL(0x8fc2, 1, 0x03)
+ ROM_FILL(0x8fc3, 1, 0x12)
+ ROM_FILL(0x8fc4, 1, 0x09)
+ ROM_FILL(0x8fc5, 1, 0x1f)
+ ROM_FILL(0x8fc6, 1, 0x0e)
+ ROM_FILL(0x8fc7, 1, 0x14)
+ ROM_FILL(0x8fc8, 1, 0x15)
+ ROM_FILL(0x8fc9, 1, 0x16)
+ ROM_FILL(0x8fca, 1, 0x17)
+ ROM_FILL(0x8fcb, 1, 0x18)
+ ROM_FILL(0x8fcc, 1, 0x10)
+ ROM_FILL(0x8fcd, 1, 0x1d)
+ ROM_FILL(0x8fce, 1, 0x1f)
+ ROM_FILL(0x8fcf, 1, 0x07) // level 16
+ ROM_COPY( "maincpu", 0x8fc0, 0x8fd0, 0x10 ) /* copy the above to levels 17-32 */
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman25.5e", 0x0000, 0x1000, CRC(11d47ae1) SHA1(fbd47432f258e56f1323766d5b2844f4a2e6e7ac) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacman3d )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman3d.6f", 0x1000, 0x1000, CRC(96364259) SHA1(ec2f36a44fd0c13dfd7dc571b9499bc9dbaa247d) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacman3d.6j", 0x3000, 0x1000, CRC(959e930e) SHA1(0ef24017be05ddf85248c4d00f0e21cbf658f78c) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman3d.5e", 0x0000, 0x1000, CRC(aa203d45) SHA1(7d2fb9bc8718601efc33d2469452a08018167e60) )
+ ROM_LOAD( "pacman3d.5f", 0x1000, 0x1000, CRC(d1830540) SHA1(5d276774997e3be8fc9c21d55562288acd1cffcc) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacman6 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman6.6h", 0x2000, 0x1000, CRC(aee79ea1) SHA1(4f3214b56056c3ac00c0535ce5d6a367ccda6e31) )
+ ROM_LOAD( "pacman6.6j", 0x3000, 0x1000, CRC(581ae70b) SHA1(a184c9d9b6ffbaba936867aef14e783234bf7af2) )
+ ROM_LOAD( "pacman6.map", 0x8000, 0x1000, CRC(de753fd9) SHA1(467cd6dd572a3e6f0b2e0120d520df919433655a) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacmulti.5e", 0x0000, 0x1000, CRC(46cdda4a) SHA1(2c38050a4f5d0c9e1b4f3e054dcac25cde63ae2a) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacmanf )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacmanf.6f", 0x1000, 0x1000, CRC(720dc3ee) SHA1(7224d7acfa0144b681c71d7734a7337189835361) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacmanfx )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacmanf.6f", 0x1000, 0x1000, CRC(720dc3ee) SHA1(7224d7acfa0144b681c71d7734a7337189835361) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) )
+
+ ROM_REGION( 0x8000, "gfx1", 0 )
+ ROM_LOAD( "pacmanx.5e", 0x0000, 0x4000, CRC(a45138ce) SHA1(f18344980b4a58d0abf0cc2b7853184af3d5bfa0) )
+ ROM_LOAD( "pacmanx.5f", 0x4000, 0x4000, CRC(92e1b10e) SHA1(bb04988502fa181365c08096b5fd47fa9541c291) )
+
+ PACMAN_PROMS
+ROM_END
+
+/* This set has the fixes proposed by Don Hodges at the pages:
+ http://donhodges.com/how_high_can_you_get2.htm
+ http://donhodges.com/pacman_pinky_explanation.htm
+ These are: AI fixes for Pinky and Inky; fix for the kill screen on level 256.
+ Patches invented by Don Hodges; coded into a ROM by Krick. */
+ROM_START( pacmanp )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacmanp.6h", 0x2000, 0x1000, CRC(65625778) SHA1(8d29d46cff897a4d89367a3cc02627bcee1ef38e) )
+ ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacmanx )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) )
+
+ ROM_REGION( 0x8000, "gfx1", 0 )
+ ROM_LOAD( "pacmanx.5e", 0x0000, 0x4000, CRC(a45138ce) SHA1(f18344980b4a58d0abf0cc2b7853184af3d5bfa0) )
+ ROM_LOAD( "pacmanx.5f", 0x4000, 0x4000, CRC(92e1b10e) SHA1(bb04988502fa181365c08096b5fd47fa9541c291) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacmar )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacmar.6j", 0x3000, 0x1000, CRC(b208c7dc) SHA1(d2e199936ab0fc3de80f7c86def50c03da8c1684) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacmar.5e", 0x0000, 0x1000, CRC(7ccdfa59) SHA1(ed8e7f2e7b496a6f3246e1cc3966382e748ab1c3) )
+ ROM_LOAD( "pacmar.5f", 0x1000, 0x1000, CRC(51af9fc5) SHA1(0fe657bee3a811043663595f7f9e7e05cc71da84) )
+ ROM_COPY( "gfx1", 0x1b00, 0x1c00, 0x40 ) /* show mario at start of level */
+
+ PACMAN_PROMS
+ROM_END
+
+// extra keys: G = jump ; F = sound fx on/off ; R = music on/off
+ROM_START( pacminer )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacminer.6e", 0x0000, 0x1000, CRC(11dee14e) SHA1(1aeb94299a33daa9b51fdab3c0abea98858cc7dd) )
+ ROM_LOAD( "pacminer.6f", 0x1000, 0x1000, CRC(8c449bd7) SHA1(84233296683321f71fdef604ca19bfffd97e993c) )
+ ROM_LOAD( "pacminer.6h", 0x2000, 0x1000, CRC(a0e62570) SHA1(654a71144eae3c78d7baaeb9119aad0ece500e60) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacminer.5e", 0x0000, 0x1000, CRC(9b3cc7cd) SHA1(9bfb71e71f7f61e26d23e6370d684cdc6c910899) )
+ ROM_LOAD( "pacminer.5f", 0x1000, 0x1000, CRC(c1b2dc90) SHA1(3a089696bab9f3ff39e09c84117d22b861ddec40) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacmini )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacmini.6j", 0x3000, 0x1000, CRC(5e04f9c5) SHA1(1423a3698812fcfdb8537a528236278578864afb) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacmini.5e", 0x0000, 0x1000, CRC(5520b393) SHA1(5775a771b29efa5a8852310c36f1c8f68eec65a8) )
+ ROM_LOAD( "pacmini.5f", 0x1000, 0x1000, CRC(30e6024c) SHA1(51c1f9074091c053437a25ef1c6e9ee63e9b5154) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacmini2 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacmini2.6j", 0x3000, 0x1000, CRC(092dd5fa) SHA1(c016da8a22901fc4d441c94a3fecdd60d11f5c97) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacmini2.5e", 0x0000, 0x1000, CRC(130eff7b) SHA1(ab29362b827591acb4204639c0e323dabf2bc767) )
+ ROM_LOAD( "pacmini.5f", 0x1000, 0x1000, CRC(30e6024c) SHA1(51c1f9074091c053437a25ef1c6e9ee63e9b5154) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacmn6m2 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman6.6h", 0x2000, 0x1000, CRC(aee79ea1) SHA1(4f3214b56056c3ac00c0535ce5d6a367ccda6e31) )
+ ROM_LOAD( "pacman6.6j", 0x3000, 0x1000, CRC(581ae70b) SHA1(a184c9d9b6ffbaba936867aef14e783234bf7af2) )
+ ROM_LOAD( "pacmn6m2.map", 0x8000, 0x1000, CRC(aadee235) SHA1(0f8e4c26c2804033409dcdb5032d10fa650edc75) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacmn6m2.5e", 0x0000, 0x1000, CRC(60ada878) SHA1(5340d1cb8cf5f7f5fc2bc5e2df4ca0fe209b77e9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacmod )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacmanh.6e", 0x0000, 0x1000, CRC(3b2ec270) SHA1(48fc607ad8d86249948aa377c677ae44bb8ad3da) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacmanh.6h", 0x2000, 0x1000, CRC(18811780) SHA1(ab34acaa3dbcafe8b20c2197f36641e471984487) )
+ ROM_LOAD( "pacmanh.6j", 0x3000, 0x1000, CRC(5c96a733) SHA1(22ae15a6f088e7296f77c7487a350c4bd102f00e) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacmanh.5e", 0x0000, 0x1000, CRC(299fb17a) SHA1(ad97adc2122482a9018bacd137df9d8f409ddf85) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacmodx )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacmanh.6e", 0x0000, 0x1000, CRC(3b2ec270) SHA1(48fc607ad8d86249948aa377c677ae44bb8ad3da) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacmanh.6h", 0x2000, 0x1000, CRC(18811780) SHA1(ab34acaa3dbcafe8b20c2197f36641e471984487) )
+ ROM_LOAD( "pacmanh.6j", 0x3000, 0x1000, CRC(5c96a733) SHA1(22ae15a6f088e7296f77c7487a350c4bd102f00e) )
+
+ ROM_REGION( 0x8000, "gfx1", 0 )
+ ROM_LOAD( "pacmodx.5e", 0x0000, 0x4000, CRC(a05bc552) SHA1(5c2350aeac14cafebfcb7ff012427b1d3c6adf62) )
+ ROM_LOAD( "pacmanx.5f", 0x4000, 0x4000, CRC(92e1b10e) SHA1(bb04988502fa181365c08096b5fd47fa9541c291) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacms1 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacms1.6j", 0x3000, 0x1000, CRC(c5da3887) SHA1(2a65b31891bc19fc0fbdace39e853fff6c4227eb) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacms1.5e", 0x0000, 0x1000, CRC(7394868b) SHA1(832c44cf91251ebc1f7f6706ca71aa41cedc81e7) )
+ ROM_LOAD( "pacms1.5f", 0x1000, 0x1000, CRC(ce1a3264) SHA1(04fb1954ad6d60ddcd515f9c30ece1abfe2455cc) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacms2 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacms2.6j", 0x3000, 0x1000, CRC(b0a107ea) SHA1(86b8b7cb7e90b0de95bc9b8e3b98bcc46992578e) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacms1.5e", 0x0000, 0x1000, CRC(7394868b) SHA1(832c44cf91251ebc1f7f6706ca71aa41cedc81e7) )
+ ROM_LOAD( "pacms1.5f", 0x1000, 0x1000, CRC(ce1a3264) SHA1(04fb1954ad6d60ddcd515f9c30ece1abfe2455cc) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacms3 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacms3.6j", 0x3000, 0x1000, CRC(c7d8325a) SHA1(bf72a2d7b20d76e521cf45fbe1b0ab762daa8106) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacms1.5e", 0x0000, 0x1000, CRC(7394868b) SHA1(832c44cf91251ebc1f7f6706ca71aa41cedc81e7) )
+ ROM_LOAD( "pacms1.5f", 0x1000, 0x1000, CRC(ce1a3264) SHA1(04fb1954ad6d60ddcd515f9c30ece1abfe2455cc) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacms4 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacms4.6j", 0x3000, 0x1000, CRC(7b63ff9b) SHA1(84c167878ca4a1a1d79c397438defc8dcc6326f7) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacms1.5e", 0x0000, 0x1000, CRC(7394868b) SHA1(832c44cf91251ebc1f7f6706ca71aa41cedc81e7) )
+ ROM_LOAD( "pacms1.5f", 0x1000, 0x1000, CRC(ce1a3264) SHA1(04fb1954ad6d60ddcd515f9c30ece1abfe2455cc) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacmsa1 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacmsa1.6j", 0x3000, 0x1000, CRC(07163b97) SHA1(fdfbca327a2c3f69b4478b1e3ca9c8ed71605582) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacms1.5e", 0x0000, 0x1000, CRC(7394868b) SHA1(832c44cf91251ebc1f7f6706ca71aa41cedc81e7) )
+ ROM_LOAD( "pacms1.5f", 0x1000, 0x1000, CRC(ce1a3264) SHA1(04fb1954ad6d60ddcd515f9c30ece1abfe2455cc) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacmsa2 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacmsa2.6j", 0x3000, 0x1000, CRC(15e83c24) SHA1(ebe4d476104bbd037a1b5fe5783c0b77229ca707) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacms1.5e", 0x0000, 0x1000, CRC(7394868b) SHA1(832c44cf91251ebc1f7f6706ca71aa41cedc81e7) )
+ ROM_LOAD( "pacms1.5f", 0x1000, 0x1000, CRC(ce1a3264) SHA1(04fb1954ad6d60ddcd515f9c30ece1abfe2455cc) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacmsa3 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacmsa3.6j", 0x3000, 0x1000, CRC(5762f9cf) SHA1(b570468372a9520929513425523fdae734d4acfc) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacms1.5e", 0x0000, 0x1000, CRC(7394868b) SHA1(832c44cf91251ebc1f7f6706ca71aa41cedc81e7) )
+ ROM_LOAD( "pacms1.5f", 0x1000, 0x1000, CRC(ce1a3264) SHA1(04fb1954ad6d60ddcd515f9c30ece1abfe2455cc) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacmsa4 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacmsa4.6j", 0x3000, 0x1000, CRC(d9c2a669) SHA1(2f82405d297f35cc13199e1671cfa835dd598e9c) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacms1.5e", 0x0000, 0x1000, CRC(7394868b) SHA1(832c44cf91251ebc1f7f6706ca71aa41cedc81e7) )
+ ROM_LOAD( "pacms1.5f", 0x1000, 0x1000, CRC(ce1a3264) SHA1(04fb1954ad6d60ddcd515f9c30ece1abfe2455cc) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacmulti )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacmulti.6e", 0x0000, 0x1000, CRC(cfb721a8) SHA1(028e508a9c11eab508452ffc644730894adf388c) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacmulti.6h", 0x2000, 0x1000, CRC(e55d5230) SHA1(b764e85871cf8bb96a4ee7d0f3df204adfd4da5e) )
+ ROM_LOAD( "pacmulti.6j", 0x3000, 0x1000, CRC(29ba4b53) SHA1(f907641bb583342fa19f02de23639ba730123792) )
+ ROM_LOAD( "pacmulti.8", 0x8000, 0x1000, CRC(5a4b59dc) SHA1(09b21036cf40decf4ee00898eb44673599c65b05) )
+ ROM_LOAD( "pacmulti.9", 0x9000, 0x1000, CRC(3b939b12) SHA1(40333555af024f505064018a9b76dd284ecbf9a6) )
+ ROM_FILL(0x3f83, 3, 0) /* remove unneeeded subroutine call - this fixes a major bug */
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacmulti.5e", 0x0000, 0x1000, CRC(46cdda4a) SHA1(2c38050a4f5d0c9e1b4f3e054dcac25cde63ae2a) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacplus )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacplus.6e", 0x0000, 0x1000, CRC(d611ef68) SHA1(8531c54ca6b0de0ea4ccc34e0e801ba9847e75bc) )
+ ROM_LOAD( "pacplus.6f", 0x1000, 0x1000, CRC(c7207556) SHA1(8ba97215bdb75f0e70eb8d3223847efe4dc4fb48) )
+ ROM_LOAD( "pacplus.6h", 0x2000, 0x1000, CRC(ae379430) SHA1(4e8613d51a80cf106f883db79685e1e22541da45) )
+ ROM_LOAD( "pacplus.6j", 0x3000, 0x1000, CRC(5a6dff7b) SHA1(b956ae5d66683aab74b90469ad36b5bb361d677e) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacplus.5e", 0x0000, 0x1000, CRC(022c35da) SHA1(57d7d723c7b029e3415801f4ce83469ec97bb8a1) )
+ ROM_LOAD( "pacplus.5f", 0x1000, 0x1000, CRC(4de65cdd) SHA1(9c0699204484be819b77f0b212c792fe9e9fae5d) )
+
+ PACPLUS_PROMS
+ROM_END
+
+ROM_START( pacplusc )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacplusc.cpu", 0x0000, 0x4000, CRC(a0d25591) SHA1(0c7e1eb93762f9bb487df95c14ea986855529ce3) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacplus.5e", 0x0000, 0x1000, CRC(022c35da) SHA1(57d7d723c7b029e3415801f4ce83469ec97bb8a1) )
+ ROM_LOAD( "pacplus.5f", 0x1000, 0x1000, CRC(4de65cdd) SHA1(9c0699204484be819b77f0b212c792fe9e9fae5d) )
+
+ PACPLUS_PROMS
+ROM_END
+
+ROM_START( pacplusx )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacplus.6e", 0x0000, 0x1000, CRC(d611ef68) SHA1(8531c54ca6b0de0ea4ccc34e0e801ba9847e75bc) )
+ ROM_LOAD( "pacplus.6f", 0x1000, 0x1000, CRC(c7207556) SHA1(8ba97215bdb75f0e70eb8d3223847efe4dc4fb48) )
+ ROM_LOAD( "pacplus.6h", 0x2000, 0x1000, CRC(ae379430) SHA1(4e8613d51a80cf106f883db79685e1e22541da45) )
+ ROM_LOAD( "pacplus.6j", 0x3000, 0x1000, CRC(5a6dff7b) SHA1(b956ae5d66683aab74b90469ad36b5bb361d677e) )
+
+ ROM_REGION( 0x8000, "gfx1", 0 )
+ ROM_LOAD( "pacplusx.5e", 0x0000, 0x4000, CRC(06b08556) SHA1(982329d9568ee1a6edb8a1ed39686a33f65a1411) )
+ ROM_LOAD( "pacplusx.5f", 0x4000, 0x4000, CRC(57e9f865) SHA1(e40f5a34b597e32bbc230ae3ad5f32cdbadf2438) )
+
+ PACPLUS_PROMS
+ROM_END
+
+ROM_START( pacpopey )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacpopey.5f", 0x1000, 0x1000, CRC(af2b610b) SHA1(c787b1db588125f0770dc2bf4626ad22f0faee72) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacrab )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacrab.1", 0x0000, 0x1000, CRC(bb14430f) SHA1(80c632cc611e6cf774cc594a833916296bbbfccc) )
+ ROM_LOAD( "pacrab.2", 0x1000, 0x1000, CRC(f3f5a91b) SHA1(38d912661cf95c6234b0d3650c2b6be8df3003f0) )
+ ROM_LOAD( "pacrab.3", 0x2000, 0x1000, CRC(44caab2a) SHA1(10aaa38a720266739add8d2c54a4785ed133af0d) )
+ ROM_LOAD( "pacrab.4", 0x3000, 0x1000, CRC(25523534) SHA1(e0272e5a8717ef95fd2d593597af4e5011081eca) )
+ ROM_LOAD( "pacrab.5", 0x8000, 0x1000, CRC(af3985c4) SHA1(fb2e472b23cea56bf49ba2691a6cdeee4629a1b7) )
+ ROM_LOAD( "pacrab.6", 0x9000, 0x1000, CRC(3389fe5a) SHA1(394df6145614083c16cfe606adb0faca8c6a7a09) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacrab.5e", 0x0000, 0x1000, CRC(f33761a4) SHA1(401d752eacb60f2c26aae5cf6079e2bf54a8260a) )
+ ROM_LOAD( "pacrab.5f", 0x1000, 0x1000, CRC(60e1a3b7) SHA1(962b307f9fa3f3abde68507914fda78d5560f15b) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacshuf )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacm255.6h", 0x2000, 0x1000, CRC(d3640977) SHA1(2cc05c16c0cf6f516c69ab0b6e1a83bdd3010798) )
+ ROM_LOAD( "pacshuf.6j", 0x3000, 0x1000, CRC(55cc4d87) SHA1(1a05670c4fd09b4155941aa1ea90a5719a3e7ebb) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacsnoop )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacsnoop.6e", 0x0000, 0x1000, CRC(FA536307) SHA1(55742123DE6EF87E1DEEF31DC75744B98129AA9E) )
+ ROM_LOAD( "pacsnoop.6f", 0x1000, 0x1000, CRC(30EA615C) SHA1(AFB953167AA8060DC60173F3DE065C07FD933CC1) )
+ ROM_LOAD( "pacsnoop.6h", 0x2000, 0x1000, CRC(25DA6440) SHA1(93414E82442044324AC5475A45FB124DA70E5D6F) )
+ ROM_LOAD( "pacsnoop.6j", 0x3000, 0x1000, CRC(A9594951) SHA1(5C4FA744FDCC3B0EAD7900B079A13297D16A996F) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0C944964) SHA1(06EF227747A440831C9A3A613B76693D52A2F0A9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958FEDF9) SHA1(4A937AC02216EA8C96477D4A15522070507FB599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacspeed )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacm255.6h", 0x2000, 0x1000, CRC(d3640977) SHA1(2cc05c16c0cf6f516c69ab0b6e1a83bdd3010798) )
+ ROM_LOAD( "pacspeed.6j", 0x3000, 0x1000, CRC(0e7946d1) SHA1(cea3440a305ec05dab197dba7ac8428db0d5e2f7) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacweird )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman6.6h", 0x2000, 0x1000, CRC(aee79ea1) SHA1(4f3214b56056c3ac00c0535ce5d6a367ccda6e31) )
+ ROM_LOAD( "pacman6.6j", 0x3000, 0x1000, CRC(581ae70b) SHA1(a184c9d9b6ffbaba936867aef14e783234bf7af2) )
+ ROM_LOAD( "pacweird.map", 0x8000, 0x1000, CRC(92fac825) SHA1(05865bc5b84e0c100e358433c7d151c3918c5f19) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacweird.5e", 0x0000, 0x1000, CRC(11077f3e) SHA1(1f7a52a33abfc8650d5d6c685fd51039a467bf72) )
+ ROM_LOAD( "pacweird.5f", 0x1000, 0x1000, CRC(7c213ab4) SHA1(fd76db379a32d5102cd2a6afff0bfe9a4afbc3b5) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pacwf ) // Weird Fruit
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacwf.6j", 0x3000, 0x1000, CRC(a13ce3ea) SHA1(6562ca3e337bd95edb2ebeb6b7fb7e219799e429) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacwf.5e", 0x0000, 0x1000, CRC(f524b277) SHA1(91242ead3d1852241d030975228533086bc3539e) )
+ ROM_LOAD( "pacwf.5f", 0x1000, 0x1000, CRC(66ec2c6c) SHA1(b22e2f3ba5a603cea938533dd05fced84d42f8d9) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pcrunchy )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacm255.6h", 0x2000, 0x1000, CRC(d3640977) SHA1(2cc05c16c0cf6f516c69ab0b6e1a83bdd3010798) )
+ ROM_LOAD( "pcrunchy.6j", 0x3000, 0x1000, CRC(c21c6c52) SHA1(c63212f51c6bf49e76b3ca7553a29e3371c4fa83) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pengman )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pengman.6j", 0x3000, 0x1000, CRC(37e7f3ba) SHA1(f9b476d9389fdd8171b443e177e05fae2052024b) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pengman.5e", 0x0000, 0x1000, CRC(02f5f5e6) SHA1(029328f78f34330e90ad4407172b318a45017cac) )
+ ROM_LOAD( "pengman.5f", 0x1000, 0x1000, CRC(5cd3db2e) SHA1(808655f543fa83762a68e13adcf4a7091d07173f) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pheartb )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "newpuc2.6e", 0x0000, 0x0800, CRC(69496a98) SHA1(2934051d6305cc3654951bc1aacf2b8902f463fe) )
+ ROM_LOAD( "newpuc2.6k", 0x0800, 0x0800, CRC(158fc01c) SHA1(2f7a1e24d259fdc716ef8e7354a87780595f3c4e) )
+ ROM_LOAD( "puckman.6f", 0x1000, 0x0800, CRC(7d177853) SHA1(9b5ddaaa8b564654f97af193dbcc29f81f230a25) )
+ ROM_LOAD( "newpuc2.6m", 0x1800, 0x0800, CRC(70810ccf) SHA1(3941678606aab1e53356a6781e24d84e83cc88ce) )
+ ROM_LOAD( "pheartb.6h", 0x2000, 0x0800, CRC(b42416d1) SHA1(3714efae24f35fe63dd89f0d7b82e4564c5405d3) )
+ ROM_LOAD( "newpuc2.6n", 0x2800, 0x0800, CRC(3f250c58) SHA1(53bf2270c26f10f7e97960cd4c96e09e16b9bdf3) )
+ ROM_LOAD( "pheartb.6j", 0x3000, 0x0800, CRC(01d13602) SHA1(dfec0784d005f82a6b2ee55923b510d2daeb9965) )
+ ROM_LOAD( "newpuc2.6p", 0x3800, 0x0800, CRC(1f81e765) SHA1(442d8a82e79ae842f1ffb46369c632c1d0b83161) )
+ ROM_FILL( 0x3fd5, 1, 0xc9 ) /* allow protection check to work - 0x36 or 0xc9 is ok */
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacheart.5e", 0x0000, 0x0800, CRC(c62bbabf) SHA1(f6f28ae33c2ab274105283b22b49ad243780a95e) )
+ ROM_LOAD( "newpuc2.5h", 0x0800, 0x0800, CRC(777c70d3) SHA1(ed5ccbeb1102ec9f837577de3aa51317c32520d6) )
+ ROM_LOAD( "newpuc2.5f", 0x1000, 0x0800, CRC(ca8c184c) SHA1(833aa845824ed80777b62f03df36a920ad7c3656) )
+ ROM_LOAD( "newpuc2.5j", 0x1800, 0x0800, CRC(7dc75a81) SHA1(d3fe1cad3b594052d8367685febb2335b0ad62f4) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pheartx )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacheart.6e", 0x0000, 0x0800, CRC(d844b679) SHA1(c4486198b3126bb8e05a308c53787e51065f77ae) )
+ ROM_LOAD( "pacheart.6k", 0x0800, 0x0800, CRC(b9152a38) SHA1(b6be2cb6bc7dd123503eb6bf1165dd1c99456813) )
+ ROM_LOAD( "puckman.6f", 0x1000, 0x0800, CRC(7d177853) SHA1(9b5ddaaa8b564654f97af193dbcc29f81f230a25) )
+ ROM_LOAD( "pacheart.6m", 0x1800, 0x0800, CRC(842d6574) SHA1(40e32d09cc8d701eb318716493a68cf3f95d3d6d) )
+ ROM_LOAD( "pacheart.6h", 0x2000, 0x0800, CRC(9045a44c) SHA1(a97d7016effbd2ace9a7d92ceb04a6ce18fb42f9) )
+ ROM_LOAD( "pacheart.6n", 0x2800, 0x0800, CRC(888f3c3e) SHA1(c2b5917bf13071131dd53ea76f0da86706db2d80) )
+ ROM_LOAD( "pacheart.6j", 0x3000, 0x0800, CRC(f5265c10) SHA1(9a320790d7a03fd6192a92d30b3e9c754bbc6a9d) )
+ ROM_LOAD( "pacheart.6p", 0x3800, 0x0800, CRC(1a21a381) SHA1(d5367a327d19fb57ba5e484bd4fda1b10953c040) )
+
+ ROM_REGION( 0x8000, "gfx1", 0 )
+ ROM_LOAD( "pheartx.5e", 0x0000, 0x4000, CRC(868825e6) SHA1(0cbe23ad47ef77f4ddfc0d476704a79701c621f1) )
+ ROM_LOAD( "pheartx.5f", 0x4000, 0x4000, CRC(b7d222ba) SHA1(83a6bceff705bc2f7d7766f417ba5a9aa2a9a28e) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pm1000 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pm1000.5e", 0x0000, 0x1000, CRC(16d9f7ce) SHA1(a9ac72aa5e3dcaaa2e4d03b6ae372e81d77817f8) )
+ ROM_LOAD( "pm1000.5f", 0x1000, 0x1000, CRC(fd06d923) SHA1(a9d61bdcb6841bf07ce8ad08e1be2cf5ef349129) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pm2000 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pm2000.5e", 0x0000, 0x1000, CRC(cba39624) SHA1(d815cb5be44b3d29cd1bdd4b8c68484e5330e4a4) )
+ ROM_LOAD( "pm2000.5f", 0x1000, 0x1000, CRC(a2b31528) SHA1(69f1c4b34e581c0e6d75b9726cbefa08f8a97fdb) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pm3000 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pm3000.5e", 0x0000, 0x1000, CRC(adb41be2) SHA1(7f2f4f3fc2d5f8d7bed9baddb1bb5787e4c5cd9e) )
+ ROM_LOAD( "pm3000.5f", 0x1000, 0x1000, CRC(1fac6af1) SHA1(d9e62fb387ec1d02a78cc3b4ba2626f9044a1021) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pm4000p )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacplus.6e", 0x0000, 0x1000, CRC(d611ef68) SHA1(8531c54ca6b0de0ea4ccc34e0e801ba9847e75bc) )
+ ROM_LOAD( "pacplus.6f", 0x1000, 0x1000, CRC(c7207556) SHA1(8ba97215bdb75f0e70eb8d3223847efe4dc4fb48) )
+ ROM_LOAD( "pacplus.6h", 0x2000, 0x1000, CRC(ae379430) SHA1(4e8613d51a80cf106f883db79685e1e22541da45) )
+ ROM_LOAD( "pacplus.6j", 0x3000, 0x1000, CRC(5a6dff7b) SHA1(b956ae5d66683aab74b90469ad36b5bb361d677e) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pm3000.5e", 0x0000, 0x1000, CRC(adb41be2) SHA1(7f2f4f3fc2d5f8d7bed9baddb1bb5787e4c5cd9e) )
+ ROM_LOAD( "pm4000p.5f", 0x1000, 0x1000, CRC(74f6f4d3) SHA1(c65b295881bc531e165996aa365ff23126eab9d1) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pm5000p )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacplus.6e", 0x0000, 0x1000, CRC(d611ef68) SHA1(8531c54ca6b0de0ea4ccc34e0e801ba9847e75bc) )
+ ROM_LOAD( "pacplus.6f", 0x1000, 0x1000, CRC(c7207556) SHA1(8ba97215bdb75f0e70eb8d3223847efe4dc4fb48) )
+ ROM_LOAD( "pacplus.6h", 0x2000, 0x1000, CRC(ae379430) SHA1(4e8613d51a80cf106f883db79685e1e22541da45) )
+ ROM_LOAD( "pacplus.6j", 0x3000, 0x1000, CRC(5a6dff7b) SHA1(b956ae5d66683aab74b90469ad36b5bb361d677e) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pm5000p.5e", 0x0000, 0x1000, CRC(5865ce98) SHA1(2ddaf119b1674a7c6af3e475ba2e43dcea09f1cd) )
+ ROM_LOAD( "pm5000p.5f", 0x1000, 0x1000, CRC(81cf02e1) SHA1(cd1b3f1ac0265ed25e00eb1a2bfb831d5c7d7e8b) )
+
+ PACPLUS_PROMS
+ROM_END
+
+ROM_START( pm6000 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacplus.6e", 0x0000, 0x1000, CRC(d611ef68) SHA1(8531c54ca6b0de0ea4ccc34e0e801ba9847e75bc) )
+ ROM_LOAD( "pacplus.6f", 0x1000, 0x1000, CRC(c7207556) SHA1(8ba97215bdb75f0e70eb8d3223847efe4dc4fb48) )
+ ROM_LOAD( "pacplus.6h", 0x2000, 0x1000, CRC(ae379430) SHA1(4e8613d51a80cf106f883db79685e1e22541da45) )
+ ROM_LOAD( "pacplus.6j", 0x3000, 0x1000, CRC(5a6dff7b) SHA1(b956ae5d66683aab74b90469ad36b5bb361d677e) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pm6000.5e", 0x0000, 0x1000, CRC(89945690) SHA1(2cee6236da8d20555e02cdebb2fb81c9e7d806ca) )
+ ROM_LOAD( "pm6000.5f", 0x1000, 0x1000, CRC(9268eb5a) SHA1(8db0365beeb89f5cb73de212b810938d5cad7971) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pm7000 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacplus.6e", 0x0000, 0x1000, CRC(d611ef68) SHA1(8531c54ca6b0de0ea4ccc34e0e801ba9847e75bc) )
+ ROM_LOAD( "pacplus.6f", 0x1000, 0x1000, CRC(c7207556) SHA1(8ba97215bdb75f0e70eb8d3223847efe4dc4fb48) )
+ ROM_LOAD( "pacplus.6h", 0x2000, 0x1000, CRC(ae379430) SHA1(4e8613d51a80cf106f883db79685e1e22541da45) )
+ ROM_LOAD( "pacplus.6j", 0x3000, 0x1000, CRC(5a6dff7b) SHA1(b956ae5d66683aab74b90469ad36b5bb361d677e) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pm7000.5e", 0x0000, 0x1000, CRC(c181ad5d) SHA1(74874eac512e445206303036e52d5e30e9ac57d0) )
+ ROM_LOAD( "pm7000.5f", 0x1000, 0x1000, CRC(bd31be36) SHA1(fa879e1b0bc28d21478337fc799360d15541d763) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pm7000p )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacplus.6e", 0x0000, 0x1000, CRC(d611ef68) SHA1(8531c54ca6b0de0ea4ccc34e0e801ba9847e75bc) )
+ ROM_LOAD( "pacplus.6f", 0x1000, 0x1000, CRC(c7207556) SHA1(8ba97215bdb75f0e70eb8d3223847efe4dc4fb48) )
+ ROM_LOAD( "pacplus.6h", 0x2000, 0x1000, CRC(ae379430) SHA1(4e8613d51a80cf106f883db79685e1e22541da45) )
+ ROM_LOAD( "pacplus.6j", 0x3000, 0x1000, CRC(5a6dff7b) SHA1(b956ae5d66683aab74b90469ad36b5bb361d677e) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pm7000.5e", 0x0000, 0x1000, CRC(c181ad5d) SHA1(74874eac512e445206303036e52d5e30e9ac57d0) )
+ ROM_LOAD( "pm7000p.5f", 0x1000, 0x1000, CRC(3d5861a5) SHA1(43f86248b2980d62bcd3f3ee71625c2c73e21a5a) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pmad )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pmad.6h", 0x2000, 0x1000, CRC(dd2eb43d) SHA1(e80ca01ce0e2f5204dcfc95abc0abd180dd7eb58) )
+ ROM_LOAD( "pmad.6j", 0x3000, 0x1000, CRC(ff3f4866) SHA1(1f55f6742ee08889ddc135cfdd3366c32c32510d) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pmad.5e", 0x0000, 0x1000, CRC(5b794d59) SHA1(413488774cda263a477fe808bcacf76e9f60b542) )
+ ROM_LOAD( "pmad.5f", 0x1000, 0x1000, CRC(59a9362c) SHA1(aa7dfa45cb529e7ca4493262090b149e8c523006) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pmad00 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pmad.6h", 0x2000, 0x1000, CRC(dd2eb43d) SHA1(e80ca01ce0e2f5204dcfc95abc0abd180dd7eb58) )
+ ROM_LOAD( "pmad00.6j", 0x3000, 0x1000, CRC(5f1aea94) SHA1(3122bd7e9e1c9123f6b1915b074491e9865d39a0) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pmad00.5e", 0x0000, 0x1000, CRC(315f7131) SHA1(8182e3e177111aabad0058897b80cee8a3fd93c7) )
+ ROM_LOAD( "pmad00.5f", 0x1000, 0x1000, CRC(157a6c0f) SHA1(93f66ad4595eb9fcc306398cb83abcacc60b1521) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pmad6m )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman6.6h", 0x2000, 0x1000, CRC(aee79ea1) SHA1(4f3214b56056c3ac00c0535ce5d6a367ccda6e31) )
+ ROM_LOAD( "pacman6.6j", 0x3000, 0x1000, CRC(581ae70b) SHA1(a184c9d9b6ffbaba936867aef14e783234bf7af2) )
+ ROM_LOAD( "pmad6m.map", 0x8000, 0x1000, CRC(d6a0d7f2) SHA1(7f3de6e13dd834a1495fb7faf2743fcc71b84747) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "hanglyad.5e", 0x0000, 0x1000, CRC(93fd3682) SHA1(792ddb541aeab304b5facfcf929c3bba18150346) )
+ ROM_LOAD( "pacjr1.5f", 0x1000, 0x1000, CRC(c2310808) SHA1(84c28a4fc327afcb441daee35acdab6f7613395e) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pmada )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pmad.6h", 0x2000, 0x1000, CRC(dd2eb43d) SHA1(e80ca01ce0e2f5204dcfc95abc0abd180dd7eb58) )
+ ROM_LOAD( "pmada.6j", 0x3000, 0x1000, CRC(24e43519) SHA1(83fe90767bd73b1f72a5a86da79122fd2d8bc282) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacjr1.5e", 0x0000, 0x1000, CRC(9f3c32d4) SHA1(e7e40207f2a70768ce38cbb1e62c02ca4bed3a14) )
+ ROM_LOAD( "pacjr1.5f", 0x1000, 0x1000, CRC(c2310808) SHA1(84c28a4fc327afcb441daee35acdab6f7613395e) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pmba2000 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pmba2000.6j", 0x3000, 0x1000, CRC(f7d647d8) SHA1(4edf34fc4a0da7367557392d55beac4a5eb5038a) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pmba2000.5e", 0x0000, 0x1000, CRC(ff6308bb) SHA1(93bc32cfb43d521e77179597141587a9866c5319) )
+ ROM_LOAD( "pmba2000.5f", 0x1000, 0x1000, CRC(c8b456b5) SHA1(a9e435300171779a6c0e145a50284045b3996d91) )
+
+ PACPLUS_PROMS
+ROM_END
+
+ROM_START( pmba3000 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pmba3000.6j", 0x3000, 0x1000, CRC(08f7a148) SHA1(288e04fb264e985fbb7ea2f57ab14edd72b97140) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pmba3000.5e", 0x0000, 0x1000, CRC(5ebb61c5) SHA1(cfd491170d1d3d0c0632d5d81629e98cfd100fb6) )
+ ROM_LOAD( "pmba3000.5f", 0x1000, 0x1000, CRC(d9a055aa) SHA1(00c6867b70062672da3b8c254feff4354e35aa7a) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pmba4000 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacplus.6e", 0x0000, 0x1000, CRC(d611ef68) SHA1(8531c54ca6b0de0ea4ccc34e0e801ba9847e75bc) )
+ ROM_LOAD( "pacplus.6f", 0x1000, 0x1000, CRC(c7207556) SHA1(8ba97215bdb75f0e70eb8d3223847efe4dc4fb48) )
+ ROM_LOAD( "pacplus.6h", 0x2000, 0x1000, CRC(ae379430) SHA1(4e8613d51a80cf106f883db79685e1e22541da45) )
+ ROM_LOAD( "pacplus.6j", 0x3000, 0x1000, CRC(5a6dff7b) SHA1(b956ae5d66683aab74b90469ad36b5bb361d677e) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pmba3000.5e", 0x0000, 0x1000, CRC(5ebb61c5) SHA1(cfd491170d1d3d0c0632d5d81629e98cfd100fb6) )
+ ROM_LOAD( "pmba3000.5f", 0x1000, 0x1000, CRC(d9a055aa) SHA1(00c6867b70062672da3b8c254feff4354e35aa7a) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pmba6000 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pmba6000.6j", 0x3000, 0x1000, CRC(bdb3d11a) SHA1(d9920ad3b6c76ab9095956b960165477ed1e11f8) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pmba6000.5e", 0x0000, 0x1000, CRC(7961ed4e) SHA1(595311b7a77d1379c9564d42a34581cc35a53875) )
+ ROM_LOAD( "pmba6000.5f", 0x1000, 0x1000, CRC(417080fd) SHA1(13e8e812bca25b64e7ce072d86189fd15b1882b0) )
+
+ PACPLUS_PROMS
+ROM_END
+
+ROM_START( pmba8000 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacplus.6e", 0x0000, 0x1000, CRC(d611ef68) SHA1(8531c54ca6b0de0ea4ccc34e0e801ba9847e75bc) )
+ ROM_LOAD( "pacplus.6f", 0x1000, 0x1000, CRC(c7207556) SHA1(8ba97215bdb75f0e70eb8d3223847efe4dc4fb48) )
+ ROM_LOAD( "pacplus.6h", 0x2000, 0x1000, CRC(ae379430) SHA1(4e8613d51a80cf106f883db79685e1e22541da45) )
+ ROM_LOAD( "pacplus.6j", 0x3000, 0x1000, CRC(5a6dff7b) SHA1(b956ae5d66683aab74b90469ad36b5bb361d677e) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pmba6000.5e", 0x0000, 0x1000, CRC(7961ed4e) SHA1(595311b7a77d1379c9564d42a34581cc35a53875) )
+ ROM_LOAD( "pmba6000.5f", 0x1000, 0x1000, CRC(417080fd) SHA1(13e8e812bca25b64e7ce072d86189fd15b1882b0) )
+
+ PACPLUS_PROMS
+ROM_END
+
+ROM_START( pmbamaz )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pmbamaz.6j", 0x3000, 0x1000, CRC(bf5e4b89) SHA1(ad16845b92e56a6fe33c7561a231dd54ad558481) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pmbamaz.5e", 0x0000, 0x1000, CRC(9a8cd8a1) SHA1(653d3c900b0be5e7ffe424207419bf86229b8c48) )
+ ROM_LOAD( "pmbamaz.5f", 0x1000, 0x1000, CRC(13aeaac4) SHA1(2abcc95559bc57a209d7216ddb6488032c4e34d6) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pmbaplus )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacplus.6e", 0x0000, 0x1000, CRC(d611ef68) SHA1(8531c54ca6b0de0ea4ccc34e0e801ba9847e75bc) )
+ ROM_LOAD( "pacplus.6f", 0x1000, 0x1000, CRC(c7207556) SHA1(8ba97215bdb75f0e70eb8d3223847efe4dc4fb48) )
+ ROM_LOAD( "pacplus.6h", 0x2000, 0x1000, CRC(ae379430) SHA1(4e8613d51a80cf106f883db79685e1e22541da45) )
+ ROM_LOAD( "pacplus.6j", 0x3000, 0x1000, CRC(5a6dff7b) SHA1(b956ae5d66683aab74b90469ad36b5bb361d677e) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pmbaplus.5e", 0x0000, 0x1000, CRC(3e5a31c2) SHA1(82716be9be3a7012a4283c6e9e6be01b655a6526) )
+ ROM_LOAD( "pmbaplus.5f", 0x1000, 0x1000, CRC(3c099bbd) SHA1(f589e34330d78de173dc42929b17e4763ed4f1a3) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pmbluep )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacplus.6e", 0x0000, 0x1000, CRC(d611ef68) SHA1(8531c54ca6b0de0ea4ccc34e0e801ba9847e75bc) )
+ ROM_LOAD( "pacplus.6f", 0x1000, 0x1000, CRC(c7207556) SHA1(8ba97215bdb75f0e70eb8d3223847efe4dc4fb48) )
+ ROM_LOAD( "pacplus.6h", 0x2000, 0x1000, CRC(ae379430) SHA1(4e8613d51a80cf106f883db79685e1e22541da45) )
+ ROM_LOAD( "pacplus.6j", 0x3000, 0x1000, CRC(5a6dff7b) SHA1(b956ae5d66683aab74b90469ad36b5bb361d677e) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pm1000.5e", 0x0000, 0x1000, CRC(16d9f7ce) SHA1(a9ac72aa5e3dcaaa2e4d03b6ae372e81d77817f8) )
+ ROM_LOAD( "pmbluep.5f", 0x1000, 0x1000, CRC(2da4dec7) SHA1(1a5c441dad8b3365ef728fe318c63d4e10de4731) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pmdeluxe )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacplus.6e", 0x0000, 0x1000, CRC(d611ef68) SHA1(8531c54ca6b0de0ea4ccc34e0e801ba9847e75bc) )
+ ROM_LOAD( "pacplus.6f", 0x1000, 0x1000, CRC(c7207556) SHA1(8ba97215bdb75f0e70eb8d3223847efe4dc4fb48) )
+ ROM_LOAD( "pacplus.6h", 0x2000, 0x1000, CRC(ae379430) SHA1(4e8613d51a80cf106f883db79685e1e22541da45) )
+ ROM_LOAD( "pacplus.6j", 0x3000, 0x1000, CRC(5a6dff7b) SHA1(b956ae5d66683aab74b90469ad36b5bb361d677e) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pm2000.5e", 0x0000, 0x1000, CRC(cba39624) SHA1(d815cb5be44b3d29cd1bdd4b8c68484e5330e4a4) )
+ ROM_LOAD( "pmdeluxe.5f", 0x1000, 0x1000, CRC(ab172fc9) SHA1(8845c73b37bb117d222eeb01788ba5738aba755a) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pmextra )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacplus.6e", 0x0000, 0x1000, CRC(d611ef68) SHA1(8531c54ca6b0de0ea4ccc34e0e801ba9847e75bc) )
+ ROM_LOAD( "pacplus.6f", 0x1000, 0x1000, CRC(c7207556) SHA1(8ba97215bdb75f0e70eb8d3223847efe4dc4fb48) )
+ ROM_LOAD( "pacplus.6h", 0x2000, 0x1000, CRC(ae379430) SHA1(4e8613d51a80cf106f883db79685e1e22541da45) )
+ ROM_LOAD( "pacplus.6j", 0x3000, 0x1000, CRC(5a6dff7b) SHA1(b956ae5d66683aab74b90469ad36b5bb361d677e) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pmextra.5e", 0x0000, 0x1000, CRC(3ee34b66) SHA1(2d7a7e9a59dd87be7bda4964471b0fa27e82a219) )
+ ROM_LOAD( "pmextra.5f", 0x1000, 0x1000, CRC(edf92a4c) SHA1(63140c7100315edc8fd8a234822f0831e6d1799d) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pmextrap )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacplus.6e", 0x0000, 0x1000, CRC(d611ef68) SHA1(8531c54ca6b0de0ea4ccc34e0e801ba9847e75bc) )
+ ROM_LOAD( "pacplus.6f", 0x1000, 0x1000, CRC(c7207556) SHA1(8ba97215bdb75f0e70eb8d3223847efe4dc4fb48) )
+ ROM_LOAD( "pacplus.6h", 0x2000, 0x1000, CRC(ae379430) SHA1(4e8613d51a80cf106f883db79685e1e22541da45) )
+ ROM_LOAD( "pacplus.6j", 0x3000, 0x1000, CRC(5a6dff7b) SHA1(b956ae5d66683aab74b90469ad36b5bb361d677e) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pmextra.5e", 0x0000, 0x1000, CRC(3ee34b66) SHA1(2d7a7e9a59dd87be7bda4964471b0fa27e82a219) )
+ ROM_LOAD( "pmextrap.5f", 0x1000, 0x1000, CRC(34ff1749) SHA1(55eb0199fdc04a3331bcf1e31baf686310af2cc7) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pmfever )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacplus.6e", 0x0000, 0x1000, CRC(d611ef68) SHA1(8531c54ca6b0de0ea4ccc34e0e801ba9847e75bc) )
+ ROM_LOAD( "pacplus.6f", 0x1000, 0x1000, CRC(c7207556) SHA1(8ba97215bdb75f0e70eb8d3223847efe4dc4fb48) )
+ ROM_LOAD( "pacplus.6h", 0x2000, 0x1000, CRC(ae379430) SHA1(4e8613d51a80cf106f883db79685e1e22541da45) )
+ ROM_LOAD( "pacplus.6j", 0x3000, 0x1000, CRC(5a6dff7b) SHA1(b956ae5d66683aab74b90469ad36b5bb361d677e) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pmfever.5e", 0x0000, 0x1000, CRC(f9b955e1) SHA1(d8565b6e0ccd37309fc7e1507603efb75eedb211) )
+ ROM_LOAD( "pmfever.5f", 0x1000, 0x1000, CRC(8ddf8eb6) SHA1(72842687a8d957de22832b56cf1939864748cd6f) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pmgrenp )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacplus.6e", 0x0000, 0x1000, CRC(d611ef68) SHA1(8531c54ca6b0de0ea4ccc34e0e801ba9847e75bc) )
+ ROM_LOAD( "pacplus.6f", 0x1000, 0x1000, CRC(c7207556) SHA1(8ba97215bdb75f0e70eb8d3223847efe4dc4fb48) )
+ ROM_LOAD( "pacplus.6h", 0x2000, 0x1000, CRC(ae379430) SHA1(4e8613d51a80cf106f883db79685e1e22541da45) )
+ ROM_LOAD( "pacplus.6j", 0x3000, 0x1000, CRC(5a6dff7b) SHA1(b956ae5d66683aab74b90469ad36b5bb361d677e) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pmgrenp.5e", 0x0000, 0x1000, CRC(5807a438) SHA1(8f4160627948747e92c3c5dc386068e4561fd9aa) )
+ ROM_LOAD( "pmgrenp.5f", 0x1000, 0x1000, CRC(1545b3c8) SHA1(a60fe521380af755b2f47bd526d523c7f9b9a923) )
+
+ PACPLUS_PROMS
+ROM_END
+
+/* Only the program roms were supplied with this dump. As it was listed as a bootleg of pacheart, I've added
+ the gfx roms and the proms from that game. */
+ROM_START( pmheart )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "newpuck1.6e", 0x0000, 0x0800, CRC(2c0fa0ab) SHA1(37680e4502771ae69d51d07ce43f65b9b2dd2a49) )
+ ROM_LOAD( "pmheart.6k", 0x0800, 0x0800, CRC(afeca2f1) SHA1(1e6d6c75eeb3a354ce2dc88da62caf9e7d53d0cb) )
+ ROM_LOAD( "pmheart.6f", 0x1000, 0x0800, CRC(6b53ada9) SHA1(a905688b389bfbc6792965d8f3d5bb1b9f0f4ec6) )
+ ROM_LOAD( "pmheart.6m", 0x1800, 0x0800, CRC(35f3ca84) SHA1(3da7336caa0742ea79f1e0e8f6b80f8560507a33) )
+ ROM_LOAD( "pacheart.6h", 0x2000, 0x0800, CRC(9045a44c) SHA1(a97d7016effbd2ace9a7d92ceb04a6ce18fb42f9) )
+ ROM_LOAD( "pmheart.6n", 0x2800, 0x0800, CRC(93f344c5) SHA1(987c7fa18a774a47c045fa1dc7dff37457cb8983) )
+ ROM_LOAD( "pmheart.6j", 0x3000, 0x0800, CRC(bed4a077) SHA1(39ac1d4d2acf4752ff7f9839f8f0d1974e023fab) )
+ ROM_LOAD( "pmheart.6p", 0x3800, 0x0800, CRC(800be41e) SHA1(6f40e741d95c2cfe1b217f1061da3497b4c2a153) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacheart.5e", 0x0000, 0x0800, CRC(c62bbabf) SHA1(f6f28ae33c2ab274105283b22b49ad243780a95e) )
+ ROM_LOAD( "puckman.5h", 0x0800, 0x0800, CRC(3591b89d) SHA1(79bb456be6c39c1ccd7d077fbe181523131fb300) )
+ ROM_LOAD( "newpuc2.5f", 0x1000, 0x0800, CRC(ca8c184c) SHA1(833aa845824ed80777b62f03df36a920ad7c3656) )
+ ROM_LOAD( "puckman.5j", 0x1800, 0x0800, CRC(1b1d9096) SHA1(53771c573051db43e7185b1d188533056290a620) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( pplusad )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacplus.6e", 0x0000, 0x1000, CRC(d611ef68) SHA1(8531c54ca6b0de0ea4ccc34e0e801ba9847e75bc) )
+ ROM_LOAD( "pacplus.6f", 0x1000, 0x1000, CRC(c7207556) SHA1(8ba97215bdb75f0e70eb8d3223847efe4dc4fb48) )
+ ROM_LOAD( "pacplus.6h", 0x2000, 0x1000, CRC(ae379430) SHA1(4e8613d51a80cf106f883db79685e1e22541da45) )
+ ROM_LOAD( "pacplus.6j", 0x3000, 0x1000, CRC(5a6dff7b) SHA1(b956ae5d66683aab74b90469ad36b5bb361d677e) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pplusad.5e", 0x0000, 0x1000, CRC(ce684d85) SHA1(d7e40494631b3b1d73f9c07f15b6fa102286aa0d) )
+ ROM_LOAD( "pplusad.5f", 0x1000, 0x1000, CRC(0b86d002) SHA1(77c74d8ff6e4bf3de8e87ee872b1a9b6cf10fece) )
+
+ PACPLUS_PROMS
+ROM_END
+
+ROM_START( puck255 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "puckmanb.6e", 0x0000, 0x1000, CRC(fee263b3) SHA1(87117ba5082cd7a615b4ec7c02dd819003fbd669) )
+ ROM_LOAD( "puckmanb.6f", 0x1000, 0x1000, CRC(39d1fc83) SHA1(326dbbf94c6fa2e96613dedb53702f8832b47d59) )
+ ROM_LOAD( "pacn255.6h", 0x2000, 0x1000, CRC(6dac9e8f) SHA1(bbebc8d059755f329ce6c0e4d39c1cd999c60dfe) )
+ ROM_LOAD( "puckmanb.6j", 0x3000, 0x1000, CRC(7a36fe55) SHA1(01b4c38108d9dc4e48da4f8d685248e1e6821377) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( puckman )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "puckman.6e", 0x0000, 0x0800, CRC(f36e88ab) SHA1(813cecf44bf5464b1aed64b36f5047e4c79ba176) )
+ ROM_LOAD( "puckman.6k", 0x0800, 0x0800, CRC(618bd9b3) SHA1(b9ca52b63a49ddece768378d331deebbe34fe177) )
+ ROM_LOAD( "puckman.6f", 0x1000, 0x0800, CRC(7d177853) SHA1(9b5ddaaa8b564654f97af193dbcc29f81f230a25) )
+ ROM_LOAD( "puckman.6m", 0x1800, 0x0800, CRC(d3e8914c) SHA1(c2f00e1773c6864435f29c8b7f44f2ef85d227d3) )
+ ROM_LOAD( "puckman.6h", 0x2000, 0x0800, CRC(6bf4f625) SHA1(afe72fdfec66c145b53ed865f98734686b26e921) )
+ ROM_LOAD( "puckman.6n", 0x2800, 0x0800, CRC(a948ce83) SHA1(08759833f7e0690b2ccae573c929e2a48e5bde7f) )
+ ROM_LOAD( "puckman.6j", 0x3000, 0x0800, CRC(b6289b26) SHA1(d249fa9cdde774d5fee7258147cd25fa3f4dc2b3) )
+ ROM_LOAD( "puckman.6p", 0x3800, 0x0800, CRC(17a88c13) SHA1(eb462de79f49b7aa8adb0cc6d31535b10550c0ce) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "puckman.5e", 0x0000, 0x0800, CRC(2066a0b7) SHA1(6d4ccc27d6be185589e08aa9f18702b679e49a4a) )
+ ROM_LOAD( "puckman.5h", 0x0800, 0x0800, CRC(3591b89d) SHA1(79bb456be6c39c1ccd7d077fbe181523131fb300) )
+ ROM_LOAD( "puckman.5f", 0x1000, 0x0800, CRC(9e39323a) SHA1(be933e691df4dbe7d12123913c3b7b7b585b7a35) )
+ ROM_LOAD( "puckman.5j", 0x1800, 0x0800, CRC(1b1d9096) SHA1(53771c573051db43e7185b1d188533056290a620) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( puckmana )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "puckman.6j", 0x3000, 0x0800, CRC(b6289b26) SHA1(d249fa9cdde774d5fee7258147cd25fa3f4dc2b3) )
+ ROM_LOAD( "puckman.6p", 0x3800, 0x0800, CRC(17a88c13) SHA1(eb462de79f49b7aa8adb0cc6d31535b10550c0ce) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "puckman.5e", 0x0000, 0x0800, CRC(2066a0b7) SHA1(6d4ccc27d6be185589e08aa9f18702b679e49a4a) )
+ ROM_LOAD( "puckman.5h", 0x0800, 0x0800, CRC(3591b89d) SHA1(79bb456be6c39c1ccd7d077fbe181523131fb300) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( puckmanb )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "puckmanb.6e", 0x0000, 0x1000, CRC(fee263b3) SHA1(87117ba5082cd7a615b4ec7c02dd819003fbd669) )
+ ROM_LOAD( "puckmanb.6f", 0x1000, 0x1000, CRC(39d1fc83) SHA1(326dbbf94c6fa2e96613dedb53702f8832b47d59) )
+ ROM_LOAD( "puckmanb.6h", 0x2000, 0x1000, CRC(02083b03) SHA1(7e1945f6eb51f2e51806d0439f975f7a2889b9b8) )
+ ROM_LOAD( "puckmanb.6j", 0x3000, 0x1000, CRC(7a36fe55) SHA1(01b4c38108d9dc4e48da4f8d685248e1e6821377) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( puckmanf )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "puckmanb.6e", 0x0000, 0x1000, CRC(fee263b3) SHA1(87117ba5082cd7a615b4ec7c02dd819003fbd669) )
+ ROM_LOAD( "puckmanf.6f", 0x1000, 0x1000, CRC(51b38db9) SHA1(0a796f93462aec4758c2aa1c1f34cd05bb10a178) )
+ ROM_LOAD( "puckmanb.6h", 0x2000, 0x1000, CRC(02083b03) SHA1(7e1945f6eb51f2e51806d0439f975f7a2889b9b8) )
+ ROM_LOAD( "puckmanb.6j", 0x3000, 0x1000, CRC(7a36fe55) SHA1(01b4c38108d9dc4e48da4f8d685248e1e6821377) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( puckmano )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "puckmanb.6e", 0x0000, 0x1000, CRC(fee263b3) SHA1(87117ba5082cd7a615b4ec7c02dd819003fbd669) )
+ ROM_LOAD( "puckmanb.6f", 0x1000, 0x1000, CRC(39d1fc83) SHA1(326dbbf94c6fa2e96613dedb53702f8832b47d59) )
+ ROM_LOAD( "puckmanb.6h", 0x2000, 0x1000, CRC(02083b03) SHA1(7e1945f6eb51f2e51806d0439f975f7a2889b9b8) )
+ ROM_LOAD( "puckmanb.6j", 0x3000, 0x1000, CRC(7a36fe55) SHA1(01b4c38108d9dc4e48da4f8d685248e1e6821377) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "puckmano.5e", 0x0000, 0x1000, CRC(1f44f160) SHA1(d5ec84bf164eb549b80f8a6c25ec9246fc89d525) )
+ ROM_LOAD( "puckmano.5f", 0x1000, 0x1000, CRC(c78395ca) SHA1(100507f230c348489b30386f8ff8130b956d2646) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( puckmanx )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "puckmanb.6e", 0x0000, 0x1000, CRC(fee263b3) SHA1(87117ba5082cd7a615b4ec7c02dd819003fbd669) )
+ ROM_LOAD( "puckmanb.6f", 0x1000, 0x1000, CRC(39d1fc83) SHA1(326dbbf94c6fa2e96613dedb53702f8832b47d59) )
+ ROM_LOAD( "puckmanb.6h", 0x2000, 0x1000, CRC(02083b03) SHA1(7e1945f6eb51f2e51806d0439f975f7a2889b9b8) )
+ ROM_LOAD( "puckmanb.6j", 0x3000, 0x1000, CRC(7a36fe55) SHA1(01b4c38108d9dc4e48da4f8d685248e1e6821377) )
+
+ ROM_REGION( 0x8000, "gfx1", 0 )
+ ROM_LOAD( "pacmanx.5e", 0x0000, 0x4000, CRC(a45138ce) SHA1(f18344980b4a58d0abf0cc2b7853184af3d5bfa0) )
+ ROM_LOAD( "pacmanx.5f", 0x4000, 0x4000, CRC(92e1b10e) SHA1(bb04988502fa181365c08096b5fd47fa9541c291) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( puckmnax )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "puckman.6j", 0x3000, 0x0800, CRC(b6289b26) SHA1(d249fa9cdde774d5fee7258147cd25fa3f4dc2b3) )
+ ROM_LOAD( "puckman.6p", 0x3800, 0x0800, CRC(17a88c13) SHA1(eb462de79f49b7aa8adb0cc6d31535b10550c0ce) )
+
+ ROM_REGION( 0x8000, "gfx1", 0 )
+ ROM_LOAD( "puckmnax.5e", 0x0000, 0x4000, CRC(c8d9349e) SHA1(8ca4045fe888b78306017a5e17b180d13b37e436) )
+ ROM_LOAD( "pacmanx.5f", 0x4000, 0x4000, CRC(92e1b10e) SHA1(bb04988502fa181365c08096b5fd47fa9541c291) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( puckmnfx )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "puckmanb.6e", 0x0000, 0x1000, CRC(fee263b3) SHA1(87117ba5082cd7a615b4ec7c02dd819003fbd669) )
+ ROM_LOAD( "puckmanf.6f", 0x1000, 0x1000, CRC(51b38db9) SHA1(0a796f93462aec4758c2aa1c1f34cd05bb10a178) )
+ ROM_LOAD( "puckmanb.6h", 0x2000, 0x1000, CRC(02083b03) SHA1(7e1945f6eb51f2e51806d0439f975f7a2889b9b8) )
+ ROM_LOAD( "puckmanb.6j", 0x3000, 0x1000, CRC(7a36fe55) SHA1(01b4c38108d9dc4e48da4f8d685248e1e6821377) )
+
+ ROM_REGION( 0x8000, "gfx1", 0 )
+ ROM_LOAD( "pacmanx.5e", 0x0000, 0x4000, CRC(a45138ce) SHA1(f18344980b4a58d0abf0cc2b7853184af3d5bfa0) )
+ ROM_LOAD( "pacmanx.5f", 0x4000, 0x4000, CRC(92e1b10e) SHA1(bb04988502fa181365c08096b5fd47fa9541c291) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( puckmnhx )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "hangly.6e", 0x0000, 0x1000, CRC(5fe8610a) SHA1(d63eaebd85e10aa6c27bb7f47642dd403eeb6934) )
+ ROM_LOAD( "puckmanh.6f", 0x1000, 0x1000, CRC(61d38c6c) SHA1(1406aacdc9c8a3776e5853d214380ad3124408f4) )
+ ROM_LOAD( "hangly.6h", 0x2000, 0x1000, CRC(4e7ef99f) SHA1(bd42e68b29b4d654dc817782ba00db69b7d2dfe2) )
+ ROM_LOAD( "puckmanh.6j", 0x3000, 0x1000, CRC(8939ddd2) SHA1(cf769bb34f711cfd0ee75328cd5dc07442f88607) )
+
+ ROM_REGION( 0x8000, "gfx1", 0 )
+ ROM_LOAD( "pacmodx.5e", 0x0000, 0x4000, CRC(a05bc552) SHA1(5c2350aeac14cafebfcb7ff012427b1d3c6adf62) )
+ ROM_LOAD( "pacmanx.5f", 0x4000, 0x4000, CRC(92e1b10e) SHA1(bb04988502fa181365c08096b5fd47fa9541c291) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( puckmod )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "puckmanb.6e", 0x0000, 0x1000, CRC(fee263b3) SHA1(87117ba5082cd7a615b4ec7c02dd819003fbd669) )
+ ROM_LOAD( "puckmanb.6f", 0x1000, 0x1000, CRC(39d1fc83) SHA1(326dbbf94c6fa2e96613dedb53702f8832b47d59) )
+ ROM_LOAD( "puckmanb.6h", 0x2000, 0x1000, CRC(02083b03) SHA1(7e1945f6eb51f2e51806d0439f975f7a2889b9b8) )
+ ROM_LOAD( "puckmod.6j", 0x3000, 0x1000, CRC(7d98d5f5) SHA1(39939bcd6fb785d0d06fd29f0287158ab1267dfc) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( puckmodx )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "puckmanb.6e", 0x0000, 0x1000, CRC(fee263b3) SHA1(87117ba5082cd7a615b4ec7c02dd819003fbd669) )
+ ROM_LOAD( "puckmanb.6f", 0x1000, 0x1000, CRC(39d1fc83) SHA1(326dbbf94c6fa2e96613dedb53702f8832b47d59) )
+ ROM_LOAD( "puckmanb.6h", 0x2000, 0x1000, CRC(02083b03) SHA1(7e1945f6eb51f2e51806d0439f975f7a2889b9b8) )
+ ROM_LOAD( "puckmod.6j", 0x3000, 0x1000, CRC(7d98d5f5) SHA1(39939bcd6fb785d0d06fd29f0287158ab1267dfc) )
+
+ ROM_REGION( 0x8000, "gfx1", 0 )
+ ROM_LOAD( "pacmanx.5e", 0x0000, 0x4000, CRC(a45138ce) SHA1(f18344980b4a58d0abf0cc2b7853184af3d5bfa0) )
+ ROM_LOAD( "pacmanx.5f", 0x4000, 0x4000, CRC(92e1b10e) SHA1(bb04988502fa181365c08096b5fd47fa9541c291) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( puckmot1 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "puckmanb.6e", 0x0000, 0x1000, CRC(fee263b3) SHA1(87117ba5082cd7a615b4ec7c02dd819003fbd669) )
+ ROM_LOAD( "puckmanb.6f", 0x1000, 0x1000, CRC(39d1fc83) SHA1(326dbbf94c6fa2e96613dedb53702f8832b47d59) )
+ ROM_LOAD( "puckmanb.6h", 0x2000, 0x1000, CRC(02083b03) SHA1(7e1945f6eb51f2e51806d0439f975f7a2889b9b8) )
+ ROM_LOAD( "puckmanb.6j", 0x3000, 0x1000, CRC(7a36fe55) SHA1(01b4c38108d9dc4e48da4f8d685248e1e6821377) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "puckmot1.5e", 0x0000, 0x1000, CRC(79ad3ca1) SHA1(a84330e1a7ef1b8c201e35fe66f4480065e0804a) )
+ ROM_LOAD( "puckmot1.5f", 0x1000, 0x1000, CRC(bd898502) SHA1(3bf87f82cc2fcaab17dec15f4ad7e780df66b48f) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( puckmoti )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "puckmanb.6e", 0x0000, 0x1000, CRC(fee263b3) SHA1(87117ba5082cd7a615b4ec7c02dd819003fbd669) )
+ ROM_LOAD( "puckmanb.6f", 0x1000, 0x1000, CRC(39d1fc83) SHA1(326dbbf94c6fa2e96613dedb53702f8832b47d59) )
+ ROM_LOAD( "puckmanb.6h", 0x2000, 0x1000, CRC(02083b03) SHA1(7e1945f6eb51f2e51806d0439f975f7a2889b9b8) )
+ ROM_LOAD( "puckmanb.6j", 0x3000, 0x1000, CRC(7a36fe55) SHA1(01b4c38108d9dc4e48da4f8d685248e1e6821377) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "puckmoti.5e", 0x0000, 0x1000, CRC(e2a1f6b6) SHA1(798daee244fc4275f7ed0bd3a99b527531960807) )
+ ROM_LOAD( "puckmoti.5f", 0x1000, 0x1000, CRC(31d24bb5) SHA1(ff26f2199e28f9bbbeca09acf3850b9e76c597da) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( puckren )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "puckren.6e", 0x0000, 0x1000, CRC(0f5ecf67) SHA1(1250eb19c721b007705c75cce9140365aeed3fad) )
+ ROM_LOAD( "puckren.6f", 0x1000, 0x1000, CRC(70ea1149) SHA1(4c1f25e7e6fb7645b7a23419cd1c5b3e2cf90823) )
+ ROM_LOAD( "puckren.6h", 0x2000, 0x1000, CRC(c6bb6ea6) SHA1(a33e23193c14d2418614ad7609fb3bc0856a4a1f) )
+ ROM_LOAD( "puckren.6j", 0x3000, 0x1000, CRC(dc90f1dc) SHA1(af677ed5989abaebcbde5da9168e849135d5e96f) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "puckren.5e", 0x0000, 0x1000, CRC(a502e25f) SHA1(9f02d3f1ec095910642fe0bb616d510be52b53d8) )
+ ROM_LOAD( "puckren.5f", 0x1000, 0x1000, CRC(18d44098) SHA1(d07120b9ede3cfcbc69006381f4287bede04c6e3) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD( "puckren.7f", 0x0000, 0x0020, CRC(7b6aa3c9) SHA1(849911abdc26ccf2ad44e2c432e6219447b8bef3) )
+ ROM_LOAD( "puckren.4a", 0x0020, 0x0100, CRC(64fe1dbf) SHA1(7f7541eb12148add79ad186a1da375c865d251e0) )
+
+ PACMAN_SOUND_PROMS
+ROM_END
+
+ROM_START( puckrenc )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "puckren.6e", 0x0000, 0x1000, CRC(0f5ecf67) SHA1(1250eb19c721b007705c75cce9140365aeed3fad) )
+ ROM_LOAD( "puckrenc.6f", 0x1000, 0x1000, CRC(8a75a7e2) SHA1(79f787c8c55ce04c97baf465b64d89d2bdbf07c5) )
+ ROM_LOAD( "puckren.6h", 0x2000, 0x1000, CRC(c6bb6ea6) SHA1(a33e23193c14d2418614ad7609fb3bc0856a4a1f) )
+ ROM_LOAD( "puckren.6j", 0x3000, 0x1000, CRC(dc90f1dc) SHA1(af677ed5989abaebcbde5da9168e849135d5e96f) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "puckren.5e", 0x0000, 0x1000, CRC(a502e25f) SHA1(9f02d3f1ec095910642fe0bb616d510be52b53d8) )
+ ROM_LOAD( "puckren.5f", 0x1000, 0x1000, CRC(18d44098) SHA1(d07120b9ede3cfcbc69006381f4287bede04c6e3) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD( "puckren.7f", 0x0000, 0x0020, CRC(7b6aa3c9) SHA1(849911abdc26ccf2ad44e2c432e6219447b8bef3) )
+ ROM_LOAD( "puckren.4a", 0x0020, 0x0100, CRC(64fe1dbf) SHA1(7f7541eb12148add79ad186a1da375c865d251e0) )
+
+ PACMAN_SOUND_PROMS
+ROM_END
+
+ROM_START( punleash )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "punleash.1", 0x0000, 0x1000, CRC(eddb20e7) SHA1(07f6cabac3c59c2e3f522da877e845b3ceb2cffb) )
+ ROM_LOAD( "punleash.2", 0x1000, 0x1000, CRC(57fe8b4d) SHA1(629800fe793b53c27ee8c84a2e49caf7fe056f28) )
+ ROM_LOAD( "punleash.3", 0x2000, 0x1000, CRC(94c63bb1) SHA1(872dbca70b45285dccfd0e24cb50225a5c3ac005) )
+ ROM_LOAD( "punleash.4", 0x3000, 0x1000, CRC(fe7734d5) SHA1(f246baab82ea8e9b3cfd3dc5911445ab08223c1f) )
+ ROM_LOAD( "punleash.5", 0x8000, 0x1000, CRC(ef155ffb) SHA1(c5bcd57c2a336fa8a018b192b8542954271f1bac) )
+ ROM_LOAD( "punleash.6", 0x9000, 0x1000, CRC(70d15899) SHA1(9a7cff5811b591211eb23cee125fd77263f8d4fe) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "punleash.5e", 0x0000, 0x1000, CRC(713a4ba4) SHA1(f6eaadf92dae3a687fb317f2806b4d7a88f7c385) )
+ ROM_LOAD( "punleash.5f", 0x1000, 0x1000, CRC(98d3d364) SHA1(f8023d1772d377d090a9bfebf194bbbce8643f1d) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD( "punleash.7f", 0x0000, 0x0020, CRC(357c2523) SHA1(f0c4cea06b17932cc15f6db2971406eaba3558b2) )
+ ROM_LOAD( "punleash.4a", 0x0020, 0x0100, CRC(5ff3b85a) SHA1(6b01b9c9302ab41fe83c140c3ff217d1d66773dd) )
+
+ PACMAN_SOUND_PROMS
+ROM_END
+
+ROM_START( roboman )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "roboman.6j", 0x3000, 0x1000, CRC(a909673e) SHA1(991d0c50087f5d47f85f6c16c667dea3b3973f4f) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "roboman.5e", 0x0000, 0x1000, CRC(e386213e) SHA1(fbbc1d85cc61dc3a13cc5e26182d51b2bbdfcb63) )
+ ROM_LOAD( "roboman.5f", 0x1000, 0x1000, CRC(d8db5788) SHA1(11698932aca1150ef00801fdcb35a5ee2cb3d3b8) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( snakeyes )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman6.6h", 0x2000, 0x1000, CRC(aee79ea1) SHA1(4f3214b56056c3ac00c0535ce5d6a367ccda6e31) )
+ ROM_LOAD( "pacman6.6j", 0x3000, 0x1000, CRC(581ae70b) SHA1(a184c9d9b6ffbaba936867aef14e783234bf7af2) )
+ ROM_LOAD( "snakeyes.map", 0x8000, 0x1000, CRC(7e506e78) SHA1(a198158a69d79d1c46149c9f8878ba220a6bf82e) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacmulti.5e", 0x0000, 0x1000, CRC(46cdda4a) SHA1(2c38050a4f5d0c9e1b4f3e054dcac25cde63ae2a) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( snowpac )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "snowpac.6j", 0x3000, 0x1000, CRC(4f9e1d02) SHA1(90f7ed914e1291248f6b3ba0630a7d67d4f07374) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "snowpac.5e", 0x0000, 0x1000, CRC(2cc60a94) SHA1(05b8725cc71273e2ee61303bc00057dc60f88bb6) )
+ ROM_LOAD( "snowpac.5f", 0x1000, 0x1000, CRC(41ba87bd) SHA1(3a1473bd3753fc3a3ab6ee5285e4832b0f92d173) )
+
+ PACMAN_PROMS
+ROM_END
+
+/* This is a bootleg of Hangly set 3. The proms were missing and the gfx didn't match up (has hearts and said
+ 8000 points for eating the last monster when you only get 1600). Therefore, using the hangly3 gfx roms.
+ Despite the name "Super Pacman", it is just another puckman clone. The first monster is named "Mario". */
+ROM_START( spuckman )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "hangly3.6e", 0x0000, 0x0800, CRC(9d027c4a) SHA1(88e094880057451a75cdc2ce9477403021813982) )
+ ROM_LOAD( "hangly3.6k", 0x0800, 0x0800, CRC(194c7189) SHA1(fd423bac2810015313841c7b935054565390fbd0) )
+ ROM_LOAD( "hangly2.6f", 0x1000, 0x0800, CRC(5ba228bb) SHA1(b0e902cdf98bee72d6ec8069eec96adce3245074) )
+ ROM_LOAD( "hangly2.6m", 0x1800, 0x0800, CRC(baf5461e) SHA1(754586a6449fd54a342f260e572c1cd60ab70815) )
+ ROM_LOAD( "pheartb.6h", 0x2000, 0x0800, CRC(b42416d1) SHA1(3714efae24f35fe63dd89f0d7b82e4564c5405d3) )
+ ROM_LOAD( "hangly3.6n", 0x2800, 0x0800, CRC(ab74b51f) SHA1(1bce8933ed7807eb7aca9670df8994f8d1a8b5b7) )
+ ROM_LOAD( "spuckman.6j", 0x3000, 0x0800, CRC(bc33aa79) SHA1(b974755edebb19455efccd56412995e3fa9fbd8e) )
+ ROM_LOAD( "spuckman.6p", 0x3800, 0x0800, CRC(e95eafca) SHA1(0a0080340a2beb6408fe79a19e7fa97f35de9619) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ /* gfx from hangly3 */
+ ROM_LOAD( "hangly3.5e", 0x0000, 0x0800, CRC(5f4be3cc) SHA1(eeb0e1e44549b99eab481d9ac016b4359e19fe30) )
+ ROM_LOAD( "puckman.5h", 0x0800, 0x0800, CRC(3591b89d) SHA1(79bb456be6c39c1ccd7d077fbe181523131fb300) )
+ ROM_LOAD( "puckman.5f", 0x1000, 0x0800, CRC(9e39323a) SHA1(be933e691df4dbe7d12123913c3b7b7b585b7a35) )
+ ROM_LOAD( "puckman.5j", 0x1800, 0x0800, CRC(1b1d9096) SHA1(53771c573051db43e7185b1d188533056290a620) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( sumeltob )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "sumeltob.6j", 0x3000, 0x1000, CRC(03d59d0e) SHA1(354cfe283b34f40b913589df9bc415fff08bb796) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "sumelton.5e", 0x0000, 0x1000, CRC(10894f38) SHA1(83fac1d9e6d54697a93a0eadb4a66a813e4bd32a) )
+ ROM_LOAD( "sumelton.5f", 0x1000, 0x1000, CRC(debef8a9) SHA1(503005bd563099094ad8815f8651cbdcd616571f) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( sumelton )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "sumelton.6j", 0x3000, 0x1000, CRC(c1fe2c7d) SHA1(8eabe4c30dfd1db9b38f8557f136894ee3865f15) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "sumelton.5e", 0x0000, 0x1000, CRC(10894f38) SHA1(83fac1d9e6d54697a93a0eadb4a66a813e4bd32a) )
+ ROM_LOAD( "sumelton.5f", 0x1000, 0x1000, CRC(debef8a9) SHA1(503005bd563099094ad8815f8651cbdcd616571f) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( tbone )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman6.6h", 0x2000, 0x1000, CRC(aee79ea1) SHA1(4f3214b56056c3ac00c0535ce5d6a367ccda6e31) )
+ ROM_LOAD( "pacman6.6j", 0x3000, 0x1000, CRC(581ae70b) SHA1(a184c9d9b6ffbaba936867aef14e783234bf7af2) )
+ ROM_LOAD( "tbone.map", 0x8000, 0x1000, CRC(e7377f2d) SHA1(3cffb221655b1c7240a97ec82132a4a1a76d383e) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "tbone.5e", 0x0000, 0x1000, CRC(afd44c48) SHA1(36750fbaeb8db4143fdd90aec83189fc552b110e) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( ultra2 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "ultra2.6j", 0x3000, 0x1000, CRC(83da903e) SHA1(541cda1dad90cfbf5c9aa5dd3091337527236bc0) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pacman.5e", 0x0000, 0x1000, CRC(0c944964) SHA1(06ef227747a440831c9a3a613b76693d52a2f0a9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( ultrapac )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman6.6h", 0x2000, 0x1000, CRC(aee79ea1) SHA1(4f3214b56056c3ac00c0535ce5d6a367ccda6e31) )
+ ROM_LOAD( "ultrapac.6j", 0x3000, 0x1000, CRC(84c6c23b) SHA1(f207ce54d7ee31d61397f1587292ea6add56cb04) )
+ ROM_LOAD( "ultrapac.map", 0x8000, 0x1000, CRC(be212894) SHA1(eaf4d33d1e2ebd14d2c9dd3445666c1319ba7807) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "ultrapac.5e", 0x0000, 0x1000, CRC(d46efbcf) SHA1(1d90cca40f5b0518cf39408e87d9faf42071e6f9) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( vcrunchy )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacm255.6h", 0x2000, 0x1000, CRC(d3640977) SHA1(2cc05c16c0cf6f516c69ab0b6e1a83bdd3010798) )
+ ROM_LOAD( "pcrunchy.6j", 0x3000, 0x1000, CRC(c21c6c52) SHA1(c63212f51c6bf49e76b3ca7553a29e3371c4fa83) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "vecpac.5e", 0x0000, 0x1000, CRC(936d0475) SHA1(8db1fc56ed236deda01cb6a5169fb7d4cda53e7a) )
+ ROM_LOAD( "vecpac.5f", 0x1000, 0x1000, CRC(022d0686) SHA1(ea64d134ececc6eb3fc373821318188489b0e7cc) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( vecbaby )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacbaby.6j", 0x3000, 0x1000, CRC(4e4ac798) SHA1(deab2d93a678abee576c891bdfb7ab93d5718792) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "vecpac.5e", 0x0000, 0x1000, CRC(936d0475) SHA1(8db1fc56ed236deda01cb6a5169fb7d4cda53e7a) )
+ ROM_LOAD( "vecpac.5f", 0x1000, 0x1000, CRC(022d0686) SHA1(ea64d134ececc6eb3fc373821318188489b0e7cc) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( vecbaby2 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacbaby2.6j", 0x3000, 0x1000, CRC(742453ba) SHA1(21707992ea3489c8bc95b14db33f62b6aaa24eb4) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "vecpac.5e", 0x0000, 0x1000, CRC(936d0475) SHA1(8db1fc56ed236deda01cb6a5169fb7d4cda53e7a) )
+ ROM_LOAD( "vecpac.5f", 0x1000, 0x1000, CRC(022d0686) SHA1(ea64d134ececc6eb3fc373821318188489b0e7cc) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( vecbaby3 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacbaby3.6j", 0x3000, 0x1000, CRC(b82f2b73) SHA1(63619220b9ed4dfeb4f462b41d9685870716590a) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "vecpac.5e", 0x0000, 0x1000, CRC(936d0475) SHA1(8db1fc56ed236deda01cb6a5169fb7d4cda53e7a) )
+ ROM_LOAD( "vecpac.5f", 0x1000, 0x1000, CRC(022d0686) SHA1(ea64d134ececc6eb3fc373821318188489b0e7cc) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( vecpac )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacman.6j", 0x3000, 0x1000, CRC(817d94e3) SHA1(d4a70d56bb01d27d094d73db8667ffb00ca69cb9) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "vecpac.5e", 0x0000, 0x1000, CRC(936d0475) SHA1(8db1fc56ed236deda01cb6a5169fb7d4cda53e7a) )
+ ROM_LOAD( "vecpac.5f", 0x1000, 0x1000, CRC(022d0686) SHA1(ea64d134ececc6eb3fc373821318188489b0e7cc) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( vectplus )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacplus.6e", 0x0000, 0x1000, CRC(d611ef68) SHA1(8531c54ca6b0de0ea4ccc34e0e801ba9847e75bc) )
+ ROM_LOAD( "pacplus.6f", 0x1000, 0x1000, CRC(c7207556) SHA1(8ba97215bdb75f0e70eb8d3223847efe4dc4fb48) )
+ ROM_LOAD( "pacplus.6h", 0x2000, 0x1000, CRC(ae379430) SHA1(4e8613d51a80cf106f883db79685e1e22541da45) )
+ ROM_LOAD( "pacplus.6j", 0x3000, 0x1000, CRC(5a6dff7b) SHA1(b956ae5d66683aab74b90469ad36b5bb361d677e) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "vectplus.5e", 0x0000, 0x1000, CRC(330abcc6) SHA1(421eb2efe402572189621e2fac49df80bd891f2c) )
+ ROM_LOAD( "vectplus.5f", 0x1000, 0x1000, CRC(61da12cf) SHA1(03bc75e3344b863e460fe74aa3b9be36e17d1149) )
+
+ PACPLUS_PROMS
+ROM_END
+
+ROM_START( vectr6m )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman6.6h", 0x2000, 0x1000, CRC(aee79ea1) SHA1(4f3214b56056c3ac00c0535ce5d6a367ccda6e31) )
+ ROM_LOAD( "pacman6.6j", 0x3000, 0x1000, CRC(581ae70b) SHA1(a184c9d9b6ffbaba936867aef14e783234bf7af2) )
+ ROM_LOAD( "pacman6.map", 0x8000, 0x1000, CRC(de753fd9) SHA1(467cd6dd572a3e6f0b2e0120d520df919433655a) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "vectr6m.5e", 0x0000, 0x1000, CRC(f7be09ba) SHA1(1ac6f67637831a39979866b684898228fb7a9761) )
+ ROM_LOAD( "vecpac.5f", 0x1000, 0x1000, CRC(022d0686) SHA1(ea64d134ececc6eb3fc373821318188489b0e7cc) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( vectr6tb )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman6.6h", 0x2000, 0x1000, CRC(aee79ea1) SHA1(4f3214b56056c3ac00c0535ce5d6a367ccda6e31) )
+ ROM_LOAD( "pacman6.6j", 0x3000, 0x1000, CRC(581ae70b) SHA1(a184c9d9b6ffbaba936867aef14e783234bf7af2) )
+ ROM_LOAD( "vectr6tb.map", 0x8000, 0x1000, CRC(bdbbb207) SHA1(2beceac64d53f197b533375da255a4158e76d970) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "vectr6m.5e", 0x0000, 0x1000, CRC(f7be09ba) SHA1(1ac6f67637831a39979866b684898228fb7a9761) )
+ ROM_LOAD( "vecpac.5f", 0x1000, 0x1000, CRC(022d0686) SHA1(ea64d134ececc6eb3fc373821318188489b0e7cc) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( vectxens )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "xensrev.6j", 0x3000, 0x1000, CRC(64a10b6c) SHA1(689be23289fb32f2bfa1392edaba9c6bfa5a82e7) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "vecpac.5e", 0x0000, 0x1000, CRC(936d0475) SHA1(8db1fc56ed236deda01cb6a5169fb7d4cda53e7a) )
+ ROM_LOAD( "vecpac.5f", 0x1000, 0x1000, CRC(022d0686) SHA1(ea64d134ececc6eb3fc373821318188489b0e7cc) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( vhangly )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "hangly.6e", 0x0000, 0x1000, CRC(5fe8610a) SHA1(d63eaebd85e10aa6c27bb7f47642dd403eeb6934) )
+ ROM_LOAD( "hangly.6f", 0x1000, 0x1000, CRC(73726586) SHA1(cedddc5194589039dd8b64f07ab6320d7d4f55f9) )
+ ROM_LOAD( "hangly.6h", 0x2000, 0x1000, CRC(4e7ef99f) SHA1(bd42e68b29b4d654dc817782ba00db69b7d2dfe2) )
+ ROM_LOAD( "hangly.6j", 0x3000, 0x1000, CRC(7f4147e6) SHA1(0a7ac0e59d4d26fe52a2f4196c9f19e5ab677c87) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "vecpac.5e", 0x0000, 0x1000, CRC(936d0475) SHA1(8db1fc56ed236deda01cb6a5169fb7d4cda53e7a) )
+ ROM_LOAD( "vecpac.5f", 0x1000, 0x1000, CRC(022d0686) SHA1(ea64d134ececc6eb3fc373821318188489b0e7cc) )
+
+ PACMAN_PROMS
+ROM_END
+
+/* This set came from Gatinho in October 2008. */
+ROM_START( vhangly3 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "hangly3.6e", 0x0000, 0x0800, CRC(9d027c4a) SHA1(88e094880057451a75cdc2ce9477403021813982) )
+ ROM_LOAD( "hangly3.6k", 0x0800, 0x0800, CRC(194c7189) SHA1(fd423bac2810015313841c7b935054565390fbd0) )
+ ROM_LOAD( "hangly2.6f", 0x1000, 0x0800, CRC(5ba228bb) SHA1(b0e902cdf98bee72d6ec8069eec96adce3245074) )
+ ROM_LOAD( "hangly2.6m", 0x1800, 0x0800, CRC(baf5461e) SHA1(754586a6449fd54a342f260e572c1cd60ab70815) )
+ ROM_LOAD( "hangly3.6h", 0x2000, 0x0800, CRC(08419c4a) SHA1(7e5001adad401080c788737c1d2349f218750442) )
+ ROM_LOAD( "hangly3.6n", 0x2800, 0x0800, CRC(ab74b51f) SHA1(1bce8933ed7807eb7aca9670df8994f8d1a8b5b7) )
+ ROM_LOAD( "hangly3.6j", 0x3000, 0x0800, CRC(5039b082) SHA1(086a6ac4742734167d283b1121fce29d8ac4a6cd) )
+ ROM_LOAD( "hangly3.6p", 0x3800, 0x0800, CRC(931770d7) SHA1(78fcf88e07ec5126c12c3297b62ca388809e947c) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "vhangly3.5e", 0x0000, 0x0800, CRC(6e0f31d5) SHA1(edf4674f511a61827d928cff3ea996f67814b281) )
+ ROM_LOAD( "vhangly3.5h", 0x0800, 0x0800, CRC(d602128c) SHA1(cff082f5911688767d3d7cc828bb13714daeb19a) )
+ ROM_LOAD( "vhangly3.5f", 0x1000, 0x0800, CRC(bff9b303) SHA1(863d155a54fb67864be3f2a0fe339815036bccf3) )
+ ROM_LOAD( "vhangly3.5j", 0x1800, 0x0800, CRC(b9724ce8) SHA1(ef4320a572d69f09821d180a249bdd06af38ca63) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( vpacbell )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacm255.6h", 0x2000, 0x1000, CRC(d3640977) SHA1(2cc05c16c0cf6f516c69ab0b6e1a83bdd3010798) )
+ ROM_LOAD( "pacbell.6j", 0x3000, 0x1000, CRC(4b428215) SHA1(acdcc4d7ccfc58c6c0473e8ee548b5e02dcafcfd) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "vecpac.5e", 0x0000, 0x1000, CRC(936d0475) SHA1(8db1fc56ed236deda01cb6a5169fb7d4cda53e7a) )
+ ROM_LOAD( "vecpac.5f", 0x1000, 0x1000, CRC(022d0686) SHA1(ea64d134ececc6eb3fc373821318188489b0e7cc) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( vpacelec )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacm255.6h", 0x2000, 0x1000, CRC(d3640977) SHA1(2cc05c16c0cf6f516c69ab0b6e1a83bdd3010798) )
+ ROM_LOAD( "pacelec.6j", 0x3000, 0x1000, CRC(9e5c763d) SHA1(df56eb705c7dfaf00b084aa6744d7fd5fa4f47d3) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "vecpac.5e", 0x0000, 0x1000, CRC(936d0475) SHA1(8db1fc56ed236deda01cb6a5169fb7d4cda53e7a) )
+ ROM_LOAD( "vecpac.5f", 0x1000, 0x1000, CRC(022d0686) SHA1(ea64d134ececc6eb3fc373821318188489b0e7cc) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( vpacjail )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacm255.6h", 0x2000, 0x1000, CRC(d3640977) SHA1(2cc05c16c0cf6f516c69ab0b6e1a83bdd3010798) )
+ ROM_LOAD( "pacjail.6j", 0x3000, 0x1000, CRC(cc31f185) SHA1(cd184a55f775bc9a70d0bfa932d2993b8987135b) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "vecpac.5e", 0x0000, 0x1000, CRC(936d0475) SHA1(8db1fc56ed236deda01cb6a5169fb7d4cda53e7a) )
+ ROM_LOAD( "vecpac.5f", 0x1000, 0x1000, CRC(022d0686) SHA1(ea64d134ececc6eb3fc373821318188489b0e7cc) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( vpacms1 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacms1.6j", 0x3000, 0x1000, CRC(c5da3887) SHA1(2a65b31891bc19fc0fbdace39e853fff6c4227eb) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "vpacms1.5e", 0x0000, 0x1000, CRC(035f0597) SHA1(50db2cd5dc99abdb90dd2ce8dc4691e7443ac2a5) )
+ ROM_LOAD( "vpacms1.5f", 0x1000, 0x1000, CRC(306b24f0) SHA1(9fd92b05c8bf6749d78f68deaf370582dafcc92e) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( vpacms2 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacms2.6j", 0x3000, 0x1000, CRC(b0a107ea) SHA1(86b8b7cb7e90b0de95bc9b8e3b98bcc46992578e) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "vpacms1.5e", 0x0000, 0x1000, CRC(035f0597) SHA1(50db2cd5dc99abdb90dd2ce8dc4691e7443ac2a5) )
+ ROM_LOAD( "vpacms1.5f", 0x1000, 0x1000, CRC(306b24f0) SHA1(9fd92b05c8bf6749d78f68deaf370582dafcc92e) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( vpacms3 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacms3.6j", 0x3000, 0x1000, CRC(c7d8325a) SHA1(bf72a2d7b20d76e521cf45fbe1b0ab762daa8106) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "vpacms1.5e", 0x0000, 0x1000, CRC(035f0597) SHA1(50db2cd5dc99abdb90dd2ce8dc4691e7443ac2a5) )
+ ROM_LOAD( "vpacms1.5f", 0x1000, 0x1000, CRC(306b24f0) SHA1(9fd92b05c8bf6749d78f68deaf370582dafcc92e) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( vpacms4 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacms4.6j", 0x3000, 0x1000, CRC(7b63ff9b) SHA1(84c167878ca4a1a1d79c397438defc8dcc6326f7) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "vpacms1.5e", 0x0000, 0x1000, CRC(035f0597) SHA1(50db2cd5dc99abdb90dd2ce8dc4691e7443ac2a5) )
+ ROM_LOAD( "vpacms1.5f", 0x1000, 0x1000, CRC(306b24f0) SHA1(9fd92b05c8bf6749d78f68deaf370582dafcc92e) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( vpacmsa1 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacmsa1.6j", 0x3000, 0x1000, CRC(07163b97) SHA1(fdfbca327a2c3f69b4478b1e3ca9c8ed71605582) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "vpacms1.5e", 0x0000, 0x1000, CRC(035f0597) SHA1(50db2cd5dc99abdb90dd2ce8dc4691e7443ac2a5) )
+ ROM_LOAD( "vpacms1.5f", 0x1000, 0x1000, CRC(306b24f0) SHA1(9fd92b05c8bf6749d78f68deaf370582dafcc92e) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( vpacmsa2 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacmsa2.6j", 0x3000, 0x1000, CRC(15e83c24) SHA1(ebe4d476104bbd037a1b5fe5783c0b77229ca707) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "vpacms1.5e", 0x0000, 0x1000, CRC(035f0597) SHA1(50db2cd5dc99abdb90dd2ce8dc4691e7443ac2a5) )
+ ROM_LOAD( "vpacms1.5f", 0x1000, 0x1000, CRC(306b24f0) SHA1(9fd92b05c8bf6749d78f68deaf370582dafcc92e) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( vpacmsa3 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacmsa3.6j", 0x3000, 0x1000, CRC(5762f9cf) SHA1(b570468372a9520929513425523fdae734d4acfc) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "vpacms1.5e", 0x0000, 0x1000, CRC(035f0597) SHA1(50db2cd5dc99abdb90dd2ce8dc4691e7443ac2a5) )
+ ROM_LOAD( "vpacms1.5f", 0x1000, 0x1000, CRC(306b24f0) SHA1(9fd92b05c8bf6749d78f68deaf370582dafcc92e) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( vpacmsa4 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "pacmsa4.6j", 0x3000, 0x1000, CRC(d9c2a669) SHA1(2f82405d297f35cc13199e1671cfa835dd598e9c) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "vpacms1.5e", 0x0000, 0x1000, CRC(035f0597) SHA1(50db2cd5dc99abdb90dd2ce8dc4691e7443ac2a5) )
+ ROM_LOAD( "vpacms1.5f", 0x1000, 0x1000, CRC(306b24f0) SHA1(9fd92b05c8bf6749d78f68deaf370582dafcc92e) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( vpacshuf )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacm255.6h", 0x2000, 0x1000, CRC(d3640977) SHA1(2cc05c16c0cf6f516c69ab0b6e1a83bdd3010798) )
+ ROM_LOAD( "pacshuf.6j", 0x3000, 0x1000, CRC(55cc4d87) SHA1(1a05670c4fd09b4155941aa1ea90a5719a3e7ebb) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "vecpac.5e", 0x0000, 0x1000, CRC(936d0475) SHA1(8db1fc56ed236deda01cb6a5169fb7d4cda53e7a) )
+ ROM_LOAD( "vecpac.5f", 0x1000, 0x1000, CRC(022d0686) SHA1(ea64d134ececc6eb3fc373821318188489b0e7cc) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( vpspeed )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacm255.6h", 0x2000, 0x1000, CRC(d3640977) SHA1(2cc05c16c0cf6f516c69ab0b6e1a83bdd3010798) )
+ ROM_LOAD( "pacspeed.6j", 0x3000, 0x1000, CRC(0e7946d1) SHA1(cea3440a305ec05dab197dba7ac8428db0d5e2f7) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "vecpac.5e", 0x0000, 0x1000, CRC(936d0475) SHA1(8db1fc56ed236deda01cb6a5169fb7d4cda53e7a) )
+ ROM_LOAD( "vecpac.5f", 0x1000, 0x1000, CRC(022d0686) SHA1(ea64d134ececc6eb3fc373821318188489b0e7cc) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( xensad )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "xensrev.6j", 0x3000, 0x1000, CRC(64a10b6c) SHA1(689be23289fb32f2bfa1392edaba9c6bfa5a82e7) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pmad00.5e", 0x0000, 0x1000, CRC(315f7131) SHA1(8182e3e177111aabad0058897b80cee8a3fd93c7) )
+ ROM_LOAD( "pmad00.5f", 0x1000, 0x1000, CRC(157a6c0f) SHA1(93f66ad4595eb9fcc306398cb83abcacc60b1521) )
+
+ PACMAN_PROMS
+ROM_END
+
+ROM_START( xensrev )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacman.6e", 0x0000, 0x1000, CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) )
+ ROM_LOAD( "pacman.6f", 0x1000, 0x1000, CRC(1a6fb2d4) SHA1(674d3a7f00d8be5e38b1fdc208ebef5a92d38329) )
+ ROM_LOAD( "pacman.6h", 0x2000, 0x1000, CRC(bcdd1beb) SHA1(8e47e8c2c4d6117d174cdac150392042d3e0a881) )
+ ROM_LOAD( "xensrev.6j", 0x3000, 0x1000, CRC(64a10b6c) SHA1(689be23289fb32f2bfa1392edaba9c6bfa5a82e7) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "xensrev.5e", 0x0000, 0x1000, CRC(40e3522d) SHA1(461d1895f82502538bf120a61a3950970f9f1b09) )
+ ROM_LOAD( "pacman.5f", 0x1000, 0x1000, CRC(958fedf9) SHA1(4a937ac02216ea8c96477d4a15522070507fb599) )
+
+ PACMAN_PROMS
+ROM_END
+
+/*************************************
+ *
+ * Game drivers
+ *
+ *************************************/
+
+/* in my opinion, the true original game */
+GAME( 1980, puckman, 0, pacman, pacman, pacman_state, 0, ROT90, "Namco", "Puckman (original)", MACHINE_SUPPORTS_SAVE )
+
+/* Official MAME */
+
+/* rom parent machine inp init */
+GAME( 1982, ctrpllrp, puckman, pacman, pacman, pacman_state, 0, ROT90, "hack", "Caterpillar Pacman Hack", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, hangly, puckman, pacman, pacman, pacman_state, 0, ROT90, "hack", "Hangly-Man (set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, hangly2, puckman, pacman, pacman, pacman_state, 0, ROT90, "hack", "Hangly-Man (set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, hangly3, puckman, pacman, pacman, pacman_state, 0, ROT90, "hack", "Hangly-Man (set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 1982, joyman, puckman, pacman, pacman, pacman_state, 0, ROT90, "hack", "Joyman", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, newpuc2, puckman, pacman, pacman, pacman_state, 0, ROT90, "hack", "Newpuc2", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, newpuc2b, puckman, pacman, pacman, pacman_state, 0, ROT90, "hack", "Newpuc2 (set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, newpuckx, puckman, pacman, pacman, pacman_state, 0, ROT90, "hack", "New Puck-X", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, pacheart, puckman, pacman, pacman, pacman_state, 0, ROT90, "hack", "Pacman (Hearts)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, pacman, puckman, pacman, pacman, pacman_state, 0, ROT90, "[Namco] (Midway license)", "Pacman (Midway)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, pacmanf, puckman, pacman, pacman, pacman_state, 0, ROT90, "[Namco] (Midway license)", "Pacman (Midway, with speedup hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, pacmod, puckman, pacman, pacman, pacman_state, 0, ROT90, "[Namco] (Midway license)", "Pacman (Midway, harder)", MACHINE_SUPPORTS_SAVE )
+GAME( 1982, pacplus, puckman, pacman, pacman, pacman_state, pacplus, ROT90, "[Namco] (Midway license)", "Pacman Plus", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, puckmod, puckman, pacman, pacman, pacman_state, 0, ROT90, "Namco", "PuckMan (Japan set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, puckmanb, puckman, pacman, pacman, pacman_state, 0, ROT90, "Namco", "PuckMan (Japan set 1, Probably Bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, puckmana, puckman, pacman, pacman, pacman_state, 0, ROT90, "Namco", "PuckMan (Japan set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, puckmanf, puckman, pacman, pacman, pacman_state, 0, ROT90, "Namco", "PuckMan (Japan set 1 with speedup hack)", MACHINE_SUPPORTS_SAVE )
+
+/* Blue Justice's Hacks */
+
+GAME( 2001, hm1000, puckman, pacman, pacman, pacman_state, 0, ROT90, "Blue Justice", "Hangly Man 1000", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, hm2000, puckman, pacman, pacman, pacman_state, 0, ROT90, "Blue Justice", "Hangly Man 2000", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, hmba5000, puckman, pacman, pacman, pacman_state, 0, ROT90, "Blue Justice", "Hangly Man Babies 5000", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, hmba7000, puckman, pacman, pacman, pacman_state, 0, ROT90, "Blue Justice", "Hangly Man Babies 7000", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, hmbabymz, puckman, pacman, pacman, pacman_state, 0, ROT90, "Blue Justice", "Hangly Man BabiesMaze", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, hmbluep, puckman, pacman, pacman, pacman_state, 0, ROT90, "Blue Justice", "Hangly Man Blue Plus", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, hmgrenp, puckman, pacman, pacman, pacman_state, 0, ROT90, "Blue Justice", "Hangly Man Green Plus", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, hmplus, puckman, pacman, pacman, pacman_state, 0, ROT90, "Blue Justice", "Hangly Man Plus", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, pm1000, puckman, pacman, pacman, pacman_state, 0, ROT90, "Blue Justice", "Pac Man 1000", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, pm2000, puckman, pacman, pacman, pacman_state, 0, ROT90, "Blue Justice", "Pac Man 2000", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, pm3000, puckman, pacman, pacman, pacman_state, 0, ROT90, "Blue Justice", "Pac Man 3000", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, pm4000p, puckman, pacman, pacman, pacman_state, pacplus, ROT90, "Blue Justice", "Pac Man 4000 Plus", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, pm5000p, puckman, pacman, pacman, pacman_state, pacplus, ROT90, "Blue Justice", "Pac Man 5000 Plus", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, pm6000, puckman, pacman, pacman, pacman_state, pacplus, ROT90, "Blue Justice", "Pac Man 6000", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, pm7000, puckman, pacman, pacman, pacman_state, pacplus, ROT90, "Blue Justice", "Pac Man 7000", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, pm7000p, puckman, pacman, pacman, pacman_state, pacplus, ROT90, "Blue Justice", "Pac Man 7000 Plus", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, pmba2000, puckman, pacman, pacman, pacman_state, 0, ROT90, "Blue Justice", "Pac Man Babies 2000", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, pmba3000, puckman, pacman, pacman, pacman_state, 0, ROT90, "Blue Justice", "Pac Man Babies 3000", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, pmba4000, puckman, pacman, pacman, pacman_state, pacplus, ROT90, "Blue Justice", "Pac Man Babies 4000", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, pmba6000, puckman, pacman, pacman, pacman_state, 0, ROT90, "Blue Justice", "Pac Man Babies 6000", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, pmba8000, puckman, pacman, pacman, pacman_state, pacplus, ROT90, "Blue Justice", "Pac Man Babies 8000", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, pmbamaz, puckman, pacman, pacman, pacman_state, 0, ROT90, "Blue Justice", "Pac Man Babies Maze", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, pmbaplus, puckman, pacman, pacman, pacman_state, pacplus, ROT90, "Blue Justice", "Pac Man Babies Plus", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, pmbluep, puckman, pacman, pacman, pacman_state, pacplus, ROT90, "Blue Justice", "Pac Man Blue Plus", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, pmdeluxe, puckman, pacman, pacman, pacman_state, pacplus, ROT90, "Blue Justice", "Pac Man Deluxe", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, pmextra, puckman, pacman, pacman, pacman_state, pacplus, ROT90, "Blue Justice", "Pac Man Extra", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, pmextrap, puckman, pacman, pacman, pacman_state, pacplus, ROT90, "Blue Justice", "Pac Man Extra Plus", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, pmfever, puckman, pacman, pacman, pacman_state, pacplus, ROT90, "Blue Justice", "Pac Man Fever", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, pmgrenp, puckman, pacman, pacman, pacman_state, pacplus, ROT90, "Blue Justice", "Pac Man Green Plus", MACHINE_SUPPORTS_SAVE )
+
+/* T-Bone Hacks */
+
+GAME( 2000, baby2, puckman, pacman, pacman, pacman_state, 0, ROT90, "T-Bone", "Baby Pacman 2 (Alt)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, baby3, puckman, pacman, pacman, pacman_state, 0, ROT90, "T-Bone", "Baby Pacman 3 (Alt)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, baby4, puckman, pacman, pacman, pacman_state, 0, ROT90, "T-Bone", "Pacman (Baby Maze 4)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pmad6m, puckman, woodpek, pacman, pacman_state, 0, ROT90, "T-Bone", "Pacman 2000 After Dark", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, snakeyes, puckman, woodpek, pacman, pacman_state, 0, ROT90, "T-Bone", "Pacman 2000 (Snake Eyes Mazes)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, snowpac, puckman, pacman, pacman, pacman_state, 0, ROT90, "T-Bone", "Snowy Day Pacman", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, tbone, puckman, woodpek, pacman, pacman_state, 0, ROT90, "T-Bone", "Pacman 2000 (T-Bone Mazes)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, vectr6m, puckman, woodpek, pacman, pacman_state, 0, ROT90, "T-Bone", "Vector Pacman 2000", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, vectr6tb, puckman, woodpek, pacman, pacman_state, 0, ROT90, "T-Bone", "Vector Pacman 2000 (T-Bone Mazes)", MACHINE_SUPPORTS_SAVE )
+
+/* Jerronimo's Progs - www.umlautllama.com */
+
+GAME( 2000, brakman, puckman, pacman, pacman, pacman_state, 0, ROT90, "Scott Lawrence", "Brakman", MACHINE_SUPPORTS_SAVE ) // http://www.csh.rit.edu/~jerry/arcade/age/
+GAME( 2004, pacman25, puckman, woodpek, pacman0, pacman_state, 0, ROT90, "Scott Lawrence", "25 MAP PAC [c]", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, pacsnoop, puckman, pacman, pacman0, pacman_state, 0, ROT90, "Scott Lawrence", "Pac Snoop v1.3 [f]", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pengman, puckman, pacman, pacman, pacman_state, 0, ROT90, "Scott Lawrence", "Pengo Man", MACHINE_SUPPORTS_SAVE ) // http://www.csh.rit.edu/~jerry/arcade/age/
+
+/* Medragon's Hacks */
+
+GAME( 2000, crazypac, puckman, pacman, pacman, pacman_state, 0, ROT90, "Tim Appleton", "Crazy Pac", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, dizzy, puckman, pacman, pacman, pacman_state, 0, ROT90, "Tim Appleton", "Dizzy Ghost - A Reversal of Roles", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pacfnt, puckman, pacman, pacman, pacman_state, 0, ROT90, "Tim Appleton", "Pacman with Pacman font", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pacwf, puckman, pacman, pacman, pacman_state, 0, ROT90, "Tim Appleton", "Pacman (Weird Fruit)", MACHINE_SUPPORTS_SAVE )
+
+/* Sil's Hacks */
+
+GAME( 1998, chtpac3d, puckman, pacman, pacman0, pacman_state, 0, ROT90, "Marcel Silvius", "Pacman 3D [c]", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, eltonpac, puckman, pacman, pacman, pacman_state, 0, ROT90, "Marcel Silvius", "Elton Pac", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mazeman, puckman, pacman, pacman, pacman_state, 0, ROT90, "Marcel Silvius", "Maze Man", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, namcosil, puckman, pacman, pacman0, pacman_state, 0, ROT90, "Marcel Silvius", "Pacman (Namco) (Sil hack) [c]", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, newpuck3, puckman, pacman, pacman, pacman_state, 0, ROT90, "Marcel Silvius", "New Puck-3", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, pacman3d, puckman, pacman, pacman, pacman_state, 0, ROT90, "Marcel Silvius", "Pacman 3D", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pacman6, puckman, woodpek, pacman, pacman_state, 0, ROT90, "Marcel Silvius", "Pacman 6", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pacmn6m2, puckman, woodpek, pacman, pacman_state, 0, ROT90, "Marcel Silvius", "Pacman 2000 (Set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pacmulti, puckman, woodpek, pacman, pacman_state, 0, ROT90, "Marcel Silvius", "PacMulti (Pacman)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pacweird, puckman, woodpek, pacman, pacman_state, 0, ROT90, "Marcel Silvius", "Pacman (Six Map Weird)", MACHINE_SUPPORTS_SAVE )
+
+/* Bobby Tribble's Hacks */
+
+GAME( 2000, pac2600, puckman, pacman, pacman, pacman_state, 0, ROT90, "Bobby Tribble", "Pac 2600", MACHINE_SUPPORTS_SAVE )
+GAME( 19??, pac2600a, puckman, pacman, pacman, pacman_state, 0, ROT90, "Bobby Tribble?","Pac 2600 (Older?)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pacmini, puckman, pacman, pacman, pacman_state, 0, ROT90, "Bobby Tribble", "Mini Pacman", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pacmini2, puckman, pacman, pacman, pacman_state, 0, ROT90, "Bobby Tribble", "Mini Pacman 2", MACHINE_SUPPORTS_SAVE )
+
+/* Hires hacks */
+
+GAME( 1981, hanglyx, puckmanx, pacmanx, pacman, pacman_state, 0, ROT90, "hack", "Hangly-Man (set 1) (hires hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, hangly2x, puckmanx, pacmanx, pacman, pacman_state, 0, ROT90, "hack", "Hangly-Man (set 2) (hires hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, hangly3x, puckmanx, pacmanx, pacman, pacman_state, 0, ROT90, "hack", "Hangly-Man (set 3) (hires hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, newpuc2x, puckmanx, pacmanx, pacman, pacman_state, 0, ROT90, "hack", "Newpuc2 (hires hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, nwpuc2bx, puckmanx, pacmanx, pacman, pacman_state, 0, ROT90, "hack", "Newpuc2 (set 2) (hires hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, nwpuckxx, puckmanx, pacmanx, pacman, pacman_state, 0, ROT90, "hack", "New Puck-X (hires hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, pacmanx, puckmanx, pacmanx, pacman, pacman_state, 0, ROT90, "[Namco] (Midway license)", "Pac-Man (Midway) (hires hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, pacmanfx, puckmanx, pacmanx, pacman0, pacman_state, 0, ROT90, "[Namco] (Midway license)", "Pac-Man (Midway) (hires hack) [f]", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, pacmodx, puckmanx, pacmanx, pacman, pacman_state, 0, ROT90, "[Namco] (Midway license)", "Pac-Man (Midway, harder) (hires hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1982, pacplusx, puckmanx, pacmanx, pacman, pacman_state, pacplus, ROT90, "[Namco] (Midway license)", "Pac-Man Plus (hires hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, pheartx, puckmanx, pacmanx, pacman, pacman_state, 0, ROT90, "hack", "Pac-Man (Hearts) (hires hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, puckmanx, 0, pacmanx, pacman, pacman_state, 0, ROT90, "Namco", "PuckMan (Japan set 1, Probably Bootleg) (hires hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, puckmnax, puckmanx, pacmanx, pacman, pacman_state, 0, ROT90, "Namco", "PuckMan (Japan set 2) (hires hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, puckmnfx, puckmanx, pacmanx, pacman0, pacman_state, 0, ROT90, "Namco", "PuckMan (Japan set 1) (hires hack) [f]", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, puckmnhx, puckmanx, pacmanx, pacman, pacman_state, 0, ROT90, "hack", "Puckman (Falcom?) (hires hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, puckmodx, puckmanx, pacmanx, pacman, pacman_state, 0, ROT90, "Namco", "PuckMan (Japan set 3) (hires hack)", MACHINE_SUPPORTS_SAVE )
+
+/* Misc Pacman Hacks */
+
+GAME( 2001, abortman, puckman, pacman, pacman, pacman_state, 0, ROT90, "Paul Copeland", "Abortman", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, bucaneer, puckman, pacman, pacman, pacman_state, 0, ROT90, "Bucco", "Buccaneer", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, caterpil, puckman, pacman, mspacman, pacman_state, 0, ROT90, "Phi", "Caterpillar", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, chtpac, puckman, pacman, pacman0, pacman_state, 0, ROT90, "[Midway]", "Pacman [c]", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, chtpman2, puckman, pacman, pacman0, pacman_state, 0, ROT90, "[Namco]", "New Puck2 [c]", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, chtpop, puckman, pacman, pacman0, pacman_state, 0, ROT90, "[Midway]", "Pac-man (Popeye) [c]", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, chtpuck, puckman, pacman, pacman0, pacman_state, 0, ROT90, "Deluxe", "New Puck-X [c]", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, europac, puckman, pacman, pacman, pacman_state, 0, ROT90, "Stefano Priore", "Euro Pac", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, fasthang, puckman, pacman, pacman0, pacman_state, 0, ROT90, "[Nittoh]", "Hangly Man [f]", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, fastpop, puckman, pacman, pacman0, pacman_state, 0, ROT90, "[Midway]", "Pacman (Popeye) [f]", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, fastpuck, puckman, pacman, pacman0, pacman_state, 0, ROT90, "Deluxe", "New Puck-X [f]", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, fpnleash, puckman, woodpek, pacman, pacman_state, 0, ROT90, "Peter Storey", "Pacman Unleashed (Flat)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, fstpman2, puckman, pacman, pacman0, pacman_state, 0, ROT90, "[Namco]", "New Puck2 [f]", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, hanglyad, puckman, pacman, pacman, pacman_state, 0, ROT90, "[Nittoh]", "Hangly-Man (set 1) After Dark", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, hearts, puckman, pacman, pacman, pacman_state, 0, ROT90, "[Midway]", "Pacman (Hearts)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, hellowp, puckman, pacman, pacman, pacman_state, 0, ROT90, "cmonkey", "Hello World (Pacman HW)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, hmhearts, puckman, pacman, pacman, pacman_state, 0, ROT90, "[Nittoh]", "Hangly-Man (Hearts)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, hmpopey, puckman, pacman, pacman, pacman_state, 0, ROT90, "[Nittoh]", "Hangly-Man (Popeye)", MACHINE_SUPPORTS_SAVE )
+GAME( 2005, homercid, puckman, pacman, mspacpls, pacman_state, 0, ROT90, "David Widel", "Homercide", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, jacman, puckman, pacman, pacman, pacman_state, 0, ROT90, "Brent Cobb", "Jacman", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, jpmmunch, puckman, pacman, pacman, pacman_state, 0, ROT90, "JPM", "Muncher", MACHINE_SUPPORTS_SAVE )
+GAME( 1983, newpuc1, puckman, pacman, pacman, pacman_state, 0, ROT90, "E.P.", "Newpuc1 (Italian dump)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, newpuck2, puckman, pacman, pacman, pacman_state, 0, ROT90, "Sir Scotty", "New Puck-2", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, nwpuc2b, puckman, pacman, newpuc2b, pacman_state, 0, ROT90, "Linear Elect", "New Puc2 (Set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pacbaby, puckman, pacman, pacman, pacman_state, 0, ROT90, "[Midway]", "Pacman (Baby Maze 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pacbaby2, puckman, pacman, pacman, pacman_state, 0, ROT90, "[Midway]", "Pacman (Baby Maze 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pacbaby3, puckman, pacman, pacman, pacman_state, 0, ROT90, "[Midway]", "Pacman (Baby Maze 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pacbell, puckman, pacman, pacman, pacman_state, 0, ROT90, "Snake Eyes", "Pacman (Bell)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pacelec, puckman, pacman, pacman, pacman_state, 0, ROT90, "Snake Eyes", "Pacman (Electric Cowboy)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pacinvis, puckman, pacman, pacman, pacman_state, 0, ROT90, "[Midway]", "Pacman (Original Inviso)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pacjail, puckman, pacman, pacman, pacman_state, 0, ROT90, "Snake Eyes", "Pacman (Jail)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pacjr1, puckman, pacman, pacman, pacman_state, 0, ROT90, "[Midway]", "Pacman Jr. (Maze 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pacjr2, puckman, pacman, pacman, pacman_state, 0, ROT90, "[Midway]", "Pacman Jr. (Maze 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pacjr3, puckman, pacman, pacman, pacman_state, 0, ROT90, "[Midway]", "Pacman Jr. (Maze 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pacjr4, puckman, pacman, pacman, pacman_state, 0, ROT90, "[Midway]", "Pacman Jr. (Maze 4)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pacm255, puckman, pacman, pacman, pacman_state, 0, ROT90, "[Midway]", "Pacman (Fixes 255th Maze)", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, pacmanp, puckman, pacman, pacman, pacman_state, 0, ROT90, "Don Hodges", "Pacman (Patched)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, pacmar, puckman, pacman, pacman, pacman_state, 0, ROT90, "[Midway]", "Mario Pacman", MACHINE_SUPPORTS_SAVE )
+GAME( 2012, pacminer, puckman, pacman, pacman, pacman_state, 0, ROT90, "Jim Bagley", "Pac Manic Miner Man", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pacms1, puckman, pacman, pacman, pacman_state, 0, ROT90, "[Midway]", "Pacman (Ms. Pacman Maze 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pacms2, puckman, pacman, pacman, pacman_state, 0, ROT90, "[Midway]", "Pacman (Ms. Pacman Maze 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pacms3, puckman, pacman, pacman, pacman_state, 0, ROT90, "[Midway]", "Pacman (Ms. Pacman Maze 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pacms4, puckman, pacman, pacman, pacman_state, 0, ROT90, "[Midway]", "Pacman (Ms. Pacman Maze 4)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pacmsa1, puckman, pacman, pacman, pacman_state, 0, ROT90, "[Midway]", "Pacman (Ms. Pacman Attack 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pacmsa2, puckman, pacman, pacman, pacman_state, 0, ROT90, "[Midway]", "Pacman (Ms. Pacman Attack 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pacmsa3, puckman, pacman, pacman, pacman_state, 0, ROT90, "[Midway]", "Pacman (Ms. Pacman Attack 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pacmsa4, puckman, pacman, pacman, pacman_state, 0, ROT90, "[Midway]", "Pacman (Ms. Pacman Attack 4)", MACHINE_SUPPORTS_SAVE )
+GAME( 1982, pacplusc, puckman, pacman, pacman0, pacman_state, 0, ROT90, "Bally Midway", "Pacman Plus (Unencrypted) [c]", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, pacpopey, puckman, pacman, pacman, pacman_state, 0, ROT90, "[Midway]", "Pacman (Popeye)", MACHINE_SUPPORTS_SAVE )
+GAME( 19??, pacrab, puckman, woodpek, pacman, pacman_state, 0, ROT90, "[Midway]", "Pac Rabbit", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pacshuf, puckman, pacman, pacman, pacman_state, 0, ROT90, "Snake Eyes", "Pacman (Shuffle)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pacspeed, puckman, pacman, pacman, pacman_state, 0, ROT90, "Snake Eyes", "Pacman (Speedy)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pcrunchy, puckman, pacman, pacman, pacman_state, 0, ROT90, "Snake Eyes", "Pacman (Crunchy)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, pheartb, puckman, pacman, newpuc2, pacman_state, 0, ROT90, "Kamiya", "Pacman Hearts 2", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pmad, puckman, pacman, pacman, pacman_state, 0, ROT90, "Sir Scotty", "Pacman After Dark", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pmad00, puckman, pacman, pacman, pacman_state, 0, ROT90, "[Midway]", "Pacman After Dark 2000", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pmada, puckman, pacman, pacman, pacman_state, 0, ROT90, "[Midway]", "Pacman After Dark (Alternate)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, pmheart, puckman, pacman, pacman, pacman_state, 0, ROT90, "bootleg", "Puckman Hearts", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pplusad, puckman, pacman, pacman, pacman_state, pacplus, ROT90, "[Bally Midway]", "Pacman Plus After Dark", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, puck255, puckman, pacman, pacman, pacman_state, 0, ROT90, "[Namco]", "Puckman (Fixes 255th Maze)", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, puckmano, puckman, pacman, pacman, pacman_state, 0, ROT90, "Hebus", "Puckman Opposite", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, puckmot1, puckman, pacman, pacman, pacman_state, 0, ROT90, "Hebus", "Puckmotik (alt)", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, puckmoti, puckman, pacman, pacman, pacman_state, 0, ROT90, "Hebus", "Puckmotik", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, puckren, puckman, pacman, pacman, pacman_state, 0, ROT90, "PacHack", "Puckman Renaissance", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, puckrenc, puckman, pacman, pacman0, pacman_state, 0, ROT90, "PacHack", "Puckman Renaissance [c]", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, punleash, puckman, woodpek, pacman, pacman_state, 0, ROT90, "Peter Storey", "Pacman Unleashed", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, roboman, puckman, pacman, pacman, pacman_state, 0, ROT90, "Runge Editing", "Robo Man", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, spuckman, puckman, pacman, spuckman, pacman_state, 0, ROT90, "TV Tune / Miet!o!mat", "Super Puckman", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, sumelton, puckman, pacman, pacman, pacman_state, 0, ROT90, "Staizitto", "Summertime Elton", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, sumeltob, puckman, pacman, pacman, pacman_state, 0, ROT90, "Staizitto", "Summertime Elton (old)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, ultra2, puckman, pacman, pacman, pacman_state, 0, ROT90, "TwoBit Score", "Ultra Pacman", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, ultrapac, puckman, woodpek, pacman, pacman_state, 0, ROT90, "PacFan", "UltraPac", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, vcrunchy, puckman, pacman, pacman, pacman_state, 0, ROT90, "Snake Eyes", "Vector Pacman (Crunchy)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, vecbaby, puckman, pacman, pacman, pacman_state, 0, ROT90, "[Midway]", "Vector Pacman (Baby Maze 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, vecbaby2, puckman, pacman, pacman, pacman_state, 0, ROT90, "[Midway]", "Vector Pacman (Baby Maze 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, vecbaby3, puckman, pacman, pacman, pacman_state, 0, ROT90, "[Midway]", "Vector Pacman (Baby Maze 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, vecpac, puckman, pacman, pacman, pacman_state, 0, ROT90, "[Midway]", "Vector Pacman", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, vectplus, puckman, pacman, pacman, pacman_state, pacplus, ROT90, "[Bally Midway]", "Vector Pacman Plus", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, vectxens, puckman, pacman, pacman, pacman_state, 0, ROT90, "Jeff Morris", "Vector Xens Revenge", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, vhangly, puckman, pacman, pacman, pacman_state, 0, ROT90, "[Nittoh]", "Vector Hangly-Man", MACHINE_SUPPORTS_SAVE )
+GAME( 2008, vhangly3, puckman, pacman, pacman, pacman_state, 0, ROT90, "Gatinho [Nittoh]", "Vector Hangly-Man3", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, vpacbell, puckman, pacman, pacman, pacman_state, 0, ROT90, "Snake Eyes", "Vector Pacman (Bell)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, vpacelec, puckman, pacman, pacman, pacman_state, 0, ROT90, "Snake Eyes", "Vector Pacman (Electric Cowboy)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, vpacjail, puckman, pacman, pacman, pacman_state, 0, ROT90, "Snake Eyes", "Vector Pacman (Jail)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, vpacms1, puckman, pacman, pacman, pacman_state, 0, ROT90, "[Midway]", "Vector Pacman (Ms. Pacman Maze 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, vpacms2, puckman, pacman, pacman, pacman_state, 0, ROT90, "[Midway]", "Vector Pacman (Ms. Pacman Maze 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, vpacms3, puckman, pacman, pacman, pacman_state, 0, ROT90, "[Midway]", "Vector Pacman (Ms. Pacman Maze 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, vpacms4, puckman, pacman, pacman, pacman_state, 0, ROT90, "[Midway]", "Vector Pacman (Ms. Pacman Maze 4)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, vpacmsa1, puckman, pacman, pacman, pacman_state, 0, ROT90, "[Midway]", "Vector Pacman (Ms. Pacman Attack 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, vpacmsa2, puckman, pacman, pacman, pacman_state, 0, ROT90, "[Midway]", "Vector Pacman (Ms. Pacman Attack 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, vpacmsa3, puckman, pacman, pacman, pacman_state, 0, ROT90, "[Midway]", "Vector Pacman (Ms. Pacman Attack 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, vpacmsa4, puckman, pacman, pacman, pacman_state, 0, ROT90, "[Midway]", "Vector Pacman (Ms. Pacman Attack 4)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, vpacshuf, puckman, pacman, pacman, pacman_state, 0, ROT90, "Snake Eyes", "Vector Pacman (Shuffle)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, vpspeed, puckman, pacman, pacman, pacman_state, 0, ROT90, "Snake Eyes", "Vector Pacman (Speedy)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, xensad, puckman, pacman, pacman, pacman_state, 0, ROT90, "Jeff Morris", "Xens Revenge After Dark", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, xensrev, puckman, pacman, pacman, pacman_state, 0, ROT90, "Jeff Morris", "Xens Revenge", MACHINE_SUPPORTS_SAVE )
+
+
+#include "mspacman.cpp"
+#include "multipac.cpp"
+#include "maketrax.cpp"
+
diff --git a/src/hbmame/drivers/pcktgal.cpp b/src/hbmame/drivers/pcktgal.cpp
new file mode 100644
index 00000000000..d394770ac6e
--- /dev/null
+++ b/src/hbmame/drivers/pcktgal.cpp
@@ -0,0 +1,53 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/pcktgal.cpp"
+
+ROM_START( pckgalgr )
+ ROM_REGION( 0x14000, "maincpu", 0 ) /* 64k for code + 16k for banks */
+ ROM_LOAD( "eb04gr.rom", 0x10000, 0x4000, CRC(9a7a826c) SHA1(f0c62a760cc05e31568723eaf354a735c28d20ab) )
+ ROM_CONTINUE( 0x04000, 0xc000)
+ /* 4000-7fff is banked but code falls through from 7fff to 8000, so */
+ /* I have to load the bank directly at 4000. */
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 96k for code + 96k for decrypted opcodes */
+ ROM_LOAD( "eb03.f2", 0x10000, 0x8000, CRC(cb029b02) SHA1(fbb3da08ed05ae73fbeeb13e0e2ff735aaf83db8) )
+ ROM_CONTINUE( 0x08000, 0x8000 )
+
+ ROM_REGION( 0x20000, "gfx1", 0 )
+ ROM_LOAD( "eb01gr.rom", 0x00000, 0x10000, CRC(9e5e5743) SHA1(3379bcd36148c37bfc8d2eb2909104b367797856) )
+ ROM_LOAD( "eb02gr.rom", 0x10000, 0x10000, CRC(be11227c) SHA1(c41b10f23ce60829a40851ad024e189bc7e5b07c) )
+
+ ROM_REGION( 0x10000, "gfx2", 0 )
+ ROM_LOAD( "eb00gr.rom", 0x00000, 0x10000, CRC(5eeb40e8) SHA1(703b2b87954032a383c6f34316df2b5ec6a59488) )
+
+ ROM_REGION( 0x0400, "proms", 0 )
+ ROM_LOAD( "eb05.k14", 0x0000, 0x0200, CRC(3b6198cb) SHA1(d32b364cfce99637998ca83ad21783f80364dd65) ) /* 82s147.084 */
+ ROM_LOAD( "eb06.k15", 0x0200, 0x0200, CRC(1fbd4b59) SHA1(84e20329003cf09b849b49e1d83edc330d49f404) ) /* 82s131.101 */
+ROM_END
+
+ROM_START( pcktgalk )
+ ROM_REGION( 0x14000, "maincpu", 0 ) /* 64k for code + 16k for banks */
+ ROM_LOAD( "eb04.j7", 0x10000, 0x4000, CRC(8215d60d) SHA1(ac26dfce7e215be21f2a17f864c5e966b8b8322e) )
+ ROM_CONTINUE( 0x04000, 0xc000)
+ /* 4000-7fff is banked but code falls through from 7fff to 8000, so */
+ /* I have to load the bank directly at 4000. */
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 96k for code + 96k for decrypted opcodes */
+ ROM_LOAD( "eb03.f2", 0x10000, 0x8000, CRC(cb029b02) SHA1(fbb3da08ed05ae73fbeeb13e0e2ff735aaf83db8) )
+ ROM_CONTINUE( 0x08000, 0x8000 )
+
+ ROM_REGION( 0x20000, "gfx1", 0 )
+ ROM_LOAD( "eb01k.rom", 0x00000, 0x10000, CRC(3b9f8e29) SHA1(b7ae6d72b9fc1f4964b673346d76a9d24cd5606c) )
+ ROM_LOAD( "eb02.d12", 0x10000, 0x10000, CRC(a9dcd339) SHA1(245824ab86cdfe4b842ce1be0af60f2ff4c6ae07) )
+
+ ROM_REGION( 0x10000, "gfx2", 0 )
+ ROM_LOAD( "eb00.a1", 0x00000, 0x10000, CRC(6c1a14a8) SHA1(03201197304c5f1d854b8c4f4a5c78336b51f872) )
+
+ ROM_REGION( 0x0400, "proms", 0 )
+ ROM_LOAD( "eb05.k14", 0x0000, 0x0200, CRC(3b6198cb) SHA1(d32b364cfce99637998ca83ad21783f80364dd65) ) /* 82s147.084 */
+ ROM_LOAD( "eb06.k15", 0x0200, 0x0200, CRC(1fbd4b59) SHA1(84e20329003cf09b849b49e1d83edc330d49f404) ) /* 82s131.101 */
+ROM_END
+
+
+GAME( 1987, pckgalgr, pcktgal, pcktgal, pcktgal, pcktgal_state, pcktgal, ROT0, "GreekRoms", "Pocket Gal (Greek)", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, pcktgalk, pcktgal, pcktgal, pcktgal, pcktgal_state, pcktgal, ROT0, "Hack", "Pocket Gal (Korean)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/pengo.cpp b/src/hbmame/drivers/pengo.cpp
new file mode 100644
index 00000000000..d8e03ddf357
--- /dev/null
+++ b/src/hbmame/drivers/pengo.cpp
@@ -0,0 +1,148 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/pengo.cpp"
+
+
+
+// DSW1 needs to be here, coins/credits combinations to be found out
+static INPUT_PORTS_START( pacpen )
+ PORT_INCLUDE( pengo )
+ PORT_MODIFY("DSW0")
+ PORT_DIPNAME( 0x03, 0x00, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW1:1,2")
+ PORT_DIPSETTING( 0x00, "10000" )
+ PORT_DIPSETTING( 0x01, "15000" )
+ PORT_DIPSETTING( 0x02, "20000" )
+ PORT_DIPSETTING( 0x03, DEF_STR( None ) )
+ PORT_DIPNAME( 0x04, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW1:3")
+ PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
+ PORT_DIPSETTING( 0x04, DEF_STR( Cocktail ) )
+ PORT_DIPNAME( 0x18, 0x10, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:4,5")
+ PORT_DIPSETTING( 0x18, "5" )
+ PORT_DIPSETTING( 0x10, "3" )
+ PORT_DIPSETTING( 0x08, "2" )
+ PORT_DIPSETTING( 0x00, "1" )
+ PORT_BIT(0xe0, IP_ACTIVE_LOW, IPT_UNUSED) PORT_DIPLOCATION("SW1:6,7,8")
+INPUT_PORTS_END
+
+
+
+/* The colours for alpacap7 and alpacap8 are completely wrong, but we are using the roms specified by
+ the original programmer. See http://umlautllama.com/projects/alpaca */
+ROM_START( alpacap7 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "alp7.u8", 0x0000, 0x1000, CRC(E70923E4) SHA1(86A96DC0DEE5F5B532121892528ED2B456D51174) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "alp7_ic92", 0x0000, 0x1000, CRC(693B1A96) SHA1(DED8AC0A4186458FDA6A241C027718742BA87973) )
+ ROM_CONTINUE( 0x2000, 0x1000 )
+ ROM_LOAD( "alp_ic105", 0x1000, 0x1000, CRC(BDA193F4) SHA1(A61B5E86809FEFF025C73DE78FC751EAD646125B) )
+ ROM_CONTINUE( 0x3000, 0x1000 )
+
+ ROM_REGION( 0x0420, "proms", 0 )
+ ROM_LOAD( "pr1633.78", 0x0000, 0x0020, CRC(3a5844ec) SHA1(680eab0e1204c9b74adc11588461651b474021bb) )
+ ROM_LOAD( "pr1634.88", 0x0020, 0x0400, CRC(766b139b) SHA1(3fcd66610fcaee814953a115bf5e04788923181f) )
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "pr1635.51", 0x0000, 0x0100, CRC(c29dea27) SHA1(563c9770028fe39188e62630711589d6ed242a66) )
+ ROM_LOAD( "pr1636.70", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) )
+ROM_END
+
+ROM_START( alpacap8 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "alp8.u8", 0x0000, 0x1000, CRC(ABD45FD7) SHA1(120276D1E9A3DA707DB4263A93418CA37F4F4C9F) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "alp8_ic92", 0x0000, 0x1000, CRC(4A45717F) SHA1(159A74C31FC5D4E5405BCD8D8843A1B381EA01A4) )
+ ROM_CONTINUE( 0x2000, 0x1000 )
+ ROM_LOAD( "alp_ic105", 0x1000, 0x1000, CRC(BDA193F4) SHA1(A61B5E86809FEFF025C73DE78FC751EAD646125B) )
+ ROM_CONTINUE( 0x3000, 0x1000 )
+
+ ROM_REGION( 0x0420, "proms", 0 )
+ ROM_LOAD( "pr1633.78", 0x0000, 0x0020, CRC(3a5844ec) SHA1(680eab0e1204c9b74adc11588461651b474021bb) )
+ ROM_LOAD( "pr1634.88", 0x0020, 0x0400, CRC(766b139b) SHA1(3fcd66610fcaee814953a115bf5e04788923181f) )
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "pr1635.51", 0x0000, 0x0100, CRC(c29dea27) SHA1(563c9770028fe39188e62630711589d6ed242a66) )
+ ROM_LOAD( "pr1636.70", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) )
+ROM_END
+
+ROM_START( pacpen )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pacpen.u8", 0x0000, 0x1000, CRC(59959af1) SHA1(c528a7895338806977f2d9c76da91f67b0f78aed) )
+ ROM_LOAD( "pacpen.u7", 0x1000, 0x1000, CRC(3ed59df1) SHA1(561725f5970954cccf938330fd9f48ad0cb1829b) )
+ ROM_LOAD( "pacpen.u15", 0x2000, 0x1000, CRC(d0c8dcc8) SHA1(3a6829d12d7ef6f09d5e1afa5e0e4ef9d0605aa1) )
+ ROM_LOAD( "pacpen.u14", 0x3000, 0x1000, CRC(39066ad9) SHA1(9789a111b94a3c5aabf910c72c146f71df59f316) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "pacpen.u92", 0x0000, 0x1000, CRC(2f0b5176) SHA1(a6a51d4545329999a5f42ae790bfb3a894429fee) )
+ ROM_CONTINUE( 0x2000, 0x1000 )
+ ROM_LOAD( "pacpen.105", 0x1000, 0x1000, CRC(6ba0078e) SHA1(a6e14aa373ef22fe732c335fb1ad6c48fec92530) )
+ ROM_CONTINUE( 0x3000, 0x1000 )
+
+ ROM_REGION( 0x0420, "proms", 0 )
+ ROM_LOAD( "pr1633.78", 0x0000, 0x0020, CRC(3a5844ec) SHA1(680eab0e1204c9b74adc11588461651b474021bb) )
+ ROM_LOAD( "pr1634.88", 0x0020, 0x0400, CRC(766b139b) SHA1(3fcd66610fcaee814953a115bf5e04788923181f) )
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "pr1635.51", 0x0000, 0x0100, CRC(c29dea27) SHA1(563c9770028fe39188e62630711589d6ed242a66) )
+ ROM_LOAD( "pr1636.70", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) )
+ROM_END
+
+ROM_START( pengopop )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pengo.u8", 0x0000, 0x1000, CRC(3dfeb20e) SHA1(a387b72501da77bf38b58619d2099083a0463e1f) )
+ ROM_LOAD( "pengo.u7", 0x1000, 0x1000, CRC(1db341bd) SHA1(d1c66bb9cf479e6960dbcd35c820097a81eaa555) )
+ ROM_LOAD( "pengo.u15", 0x2000, 0x1000, CRC(7c2842d5) SHA1(a8a568da68babd0ccb9f2cee4182fc01c3138494) )
+ ROM_LOAD( "pengo.u14", 0x3000, 0x1000, CRC(6e3c1f2f) SHA1(2ee821b0f6e0f3cfeae7f5ff25a6e9bd977efce0) )
+ ROM_LOAD( "ep5124.21", 0x4000, 0x1000, CRC(95f354ff) SHA1(fdebc68a6d87f8ecdf52a57a34ae5ae844a13510) )
+ ROM_LOAD( "pengo.u20", 0x5000, 0x1000, CRC(0fdb04b8) SHA1(ed814d58318c1055e475ff678609d189727bf9b4) )
+ ROM_LOAD( "ep5126.32", 0x6000, 0x1000, CRC(e5920728) SHA1(0ac5ffdad7bdcb32e630b9582e1b1aaece5198c9) )
+ ROM_LOAD( "pengopc.u31", 0x7000, 0x1000, CRC(1ede8569) SHA1(0d10a0896847a06185a91eb83c0ccb88c4307b33) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "ep1640.92", 0x0000, 0x1000, CRC(d7eec6cd) SHA1(e542bcc28f292be9a0a29d949de726e0b55e654a) )
+ ROM_CONTINUE( 0x2000, 0x1000 )
+ ROM_LOAD( "ep1695.105", 0x1000, 0x1000, CRC(5bfd26e9) SHA1(bdec535e486b43a8f5550334beff423eeace10b2) )
+ ROM_CONTINUE( 0x3000, 0x1000 )
+
+ ROM_REGION( 0x0420, "proms", 0 )
+ ROM_LOAD( "pr1633.78", 0x0000, 0x0020, CRC(3a5844ec) SHA1(680eab0e1204c9b74adc11588461651b474021bb) )
+ ROM_LOAD( "pr1634.88", 0x0020, 0x0400, CRC(766b139b) SHA1(3fcd66610fcaee814953a115bf5e04788923181f) )
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "pr1635.51", 0x0000, 0x0100, CRC(c29dea27) SHA1(563c9770028fe39188e62630711589d6ed242a66) )
+ ROM_LOAD( "pr1636.70", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) )
+ROM_END
+
+ROM_START( vecpengo )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "ep1689c.8", 0x0000, 0x1000, CRC(f37066a8) SHA1(0930de17a763a527057f60783a92662b09554426) )
+ ROM_LOAD( "ep1690b.7", 0x1000, 0x1000, CRC(baf48143) SHA1(4c97529e61eeca5d94938b1dfbeac41bf8cbaf7d) )
+ ROM_LOAD( "ep1691b.15", 0x2000, 0x1000, CRC(adf0eba0) SHA1(c8949fbdbfe5023ee17a789ef60205e834a76c81) )
+ ROM_LOAD( "ep1692b.14", 0x3000, 0x1000, CRC(a086d60f) SHA1(7079769d14dfe3873ffe29623ba0a93413706c6d) )
+ ROM_LOAD( "ep1693b.21", 0x4000, 0x1000, CRC(b72084ec) SHA1(c0508951c2ad8dc31481be8b3bfee2063e3fb0d7) )
+ ROM_LOAD( "ep1694b.20", 0x5000, 0x1000, CRC(94194a89) SHA1(7b47aec61593efd758e2a031f72a854bb0ba8af1) )
+ ROM_LOAD( "ep5118b.32", 0x6000, 0x1000, CRC(af7b12c4) SHA1(207ed466546f40ca60a38031b83aef61446902e2) )
+ ROM_LOAD( "ep5119c.31", 0x7000, 0x1000, CRC(933950fe) SHA1(fec7236b3dee2ea6e39c68440a6d2d9e3f72675a) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "vecp_ic92", 0x0000, 0x1000, CRC(57c5e53c) SHA1(4d1d4cdc352cb2fd14ebbd6678211093be73fb69) )
+ ROM_CONTINUE( 0x2000, 0x1000 )
+ ROM_LOAD( "vecp_ic105", 0x1000, 0x1000, CRC(b93588b0) SHA1(bbb779e538bdf7ebfcb0e12e11b57cabd5ddd29d) )
+ ROM_CONTINUE( 0x3000, 0x1000 )
+
+ ROM_REGION( 0x0420, "proms", 0 )
+ ROM_LOAD( "pr1633.78", 0x0000, 0x0020, CRC(3a5844ec) SHA1(680eab0e1204c9b74adc11588461651b474021bb) )
+ ROM_LOAD( "pr1634.88", 0x0020, 0x0400, CRC(766b139b) SHA1(3fcd66610fcaee814953a115bf5e04788923181f) )
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "pr1635.51", 0x0000, 0x0100, CRC(c29dea27) SHA1(563c9770028fe39188e62630711589d6ed242a66) )
+ ROM_LOAD( "pr1636.70", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) )
+ROM_END
+
+
+GAME( 2003, alpacap7, alpaca8, pengou, pengo, pengo_state, 0, ROT90, "Scott Lawrence", "Alpaca v0.7 (Pengo Hardware)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_COLORS )
+GAME( 2003, alpacap8, alpaca8, pengou, pengo, pengo_state, 0, ROT90, "Scott Lawrence", "Alpaca v0.8 (Pengo Hardware)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_COLORS )
+GAME( 2016, pacpen, pengo, pengou, pacpen, pengo_state, 0, ROT90, "Andrew Hannay", "Pacman on Pengo Hardware", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, pengopop, pengo, pengou, pengo, pengo_state, 0, ROT90, "Sega", "Pengo (Popcorn Music)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, vecpengo, pengo, pengoe, pengo, pengo_state, 0, ROT90, "T-Bone", "Pengo (Vector sim)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/pgm.cpp b/src/hbmame/drivers/pgm.cpp
new file mode 100644
index 00000000000..5195203b0f0
--- /dev/null
+++ b/src/hbmame/drivers/pgm.cpp
@@ -0,0 +1,7079 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/pgm.cpp"
+/**************************************************************************************
+Problem sets not included:
+
+KOV Zero 2000: only change is 2 gfx roms, and the result has bad gfx
+
+**************************************************************************************/
+
+ROM_START( pgemeni )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "pgemeni.p103", 0x100000, 0x200000, CRC(6cafa56b) SHA1(0b3447357cf9dc10e9473102a109a2c9f63be66b) )
+
+ ROM_REGION( 0x800000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "pgemeni.t100", 0x180000, 0x400000, CRC(42b979dd) SHA1(38ae8a7e07f1169b876bd41e0a9bfe19ecb0256f) )
+
+ ROM_REGION( 0x1800000, "sprcol", 0 )
+ ROM_LOAD( "pgemeni.a100", 0x0000000, 0x400000, CRC(105d7cee) SHA1(43b19032e9e3a1aeabd7ce11438c6658ac4b5dd0) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "pgemeni.b100", 0x0000000, 0x400000, CRC(b4127373) SHA1(fa731bedec8ff4c19ec68bd44e8ce0b80ec0c716) )
+
+ ROM_REGION( 0x600000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "pgmdemo.m100", 0x400000, 0x200000, CRC(8d89877e) SHA1(7d76d48d64d7ac5411d714a4bb83f37e3e5b8df6) )
+ROM_END
+
+ROM_START( pgmdemo )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "pgmdemo.p103", 0x100000, 0x200000, CRC(d3f6ec45) SHA1(4c171ffff6a04b362f71c42de7bc1d7b57da2c0e) )
+
+ ROM_REGION( 0x800000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "pgmdemo.t100", 0x180000, 0x400000, CRC(0596a59a) SHA1(e48cb703e886a5b71ecc839136c642117aa529ef) )
+
+ ROM_REGION( 0x1800000, "sprcol", 0 )
+ ROM_LOAD( "pgmdemo.a100", 0x0000000, 0x400000, CRC(5d0e8fa1) SHA1(95380456c8a6c9c48d4987951f689d5b9a7a397c) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "pgmdemo.b100", 0x0000000, 0x400000, CRC(15dd191f) SHA1(a90f63138c9a9bf9215b17a14635518aed7da8a9) )
+
+ ROM_REGION( 0x600000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "pgmdemo.m100", 0x400000, 0x200000, CRC(8d89877e) SHA1(7d76d48d64d7ac5411d714a4bb83f37e3e5b8df6) )
+ROM_END
+
+ROM_START( pgmfrog )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "pgmfrog.p103", 0x100000, 0x200000, CRC(cdec9e8d) SHA1(183753b3f19e9b06c6059206aac85d865bf1dd66) )
+
+ ROM_REGION( 0x800000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "pgmfrog.t100", 0x180000, 0x400000, CRC(8f58b6d8) SHA1(79b3b503f29593170a7faa93d75707682d800c66) )
+
+ ROM_REGION( 0x1800000, "sprcol", 0 )
+ ROM_LOAD( "pgmfrog.a100", 0x0000000, 0x400000, CRC(dc1eafe6) SHA1(11eb0d02c38df828ae0361bc7624c4658047df67) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "pgmfrog.b100", 0x0000000, 0x400000, CRC(3d44b66f) SHA1(04347002bd942d320c6b8240e4485aec626f2aaa) )
+
+ ROM_REGION( 0x600000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "pgmfrog.m100", 0x400000, 0x200000, CRC(05e2f761) SHA1(c93d94a8f11c41b019fcf9b6a90645416fd2c75b) )
+ROM_END
+
+ROM_START( ketarrb )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "ketarrb_v100.u38", 0x000000, 0x200000, CRC(ec7a4f92) SHA1(6351fb386586956fbdb5f0730c481fb539cc267a) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "ket_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ ROM_LOAD( "pgm_t01s.rom", 0x000000, 0x200000, CRC(1a7123a0) SHA1(cc567f577bfbf45427b54d6695b11b74f2578af3) )
+ ROM_LOAD( "t04701w064.u19", 0x180000, 0x800000, CRC(2665b041) SHA1(fb1107778b66f2af0de77ac82e1ee2902f53a959) )
+
+ ROM_REGION( 0x1000000, "sprcol", 0 )
+ ROM_LOAD( "a04701w064.u7", 0x0000000, 0x0800000, CRC(5ef1b94b) SHA1(f10dfa46e0a4d297c3a856aea5b49d648f98935c) )
+ ROM_LOAD( "a04702w064.u8", 0x0800000, 0x0800000, CRC(26d6da7f) SHA1(f20e07a7994f41b5ed917f8b0119dc5542f3541c) )
+
+ ROM_REGION( 0x0800000, "sprmask", 0 )
+ ROM_LOAD( "b04701w064.u1", 0x0000000, 0x0800000, CRC(1bec008d) SHA1(07d117dc2eebb35727fb18a7c563acbaf25a8d36) )
+
+ ROM_REGION( 0x800000, "ics", ROMREGION_ERASE00 )
+ ROM_LOAD( "m04701b032.u17", 0x400000, 0x400000, CRC(b46e22d1) SHA1(670853dc485942fb96380568494bdf3235f446ee) )
+
+ ROM_REGION( 0x20000, "sram", 0 )
+ ROM_LOAD( "ket_defaults.nv", 0x0000000, 0x020000, CRC(3ca892d8) SHA1(67430df5217e453ae8140c5653deeadfad8fa684) )
+ROM_END
+
+// This crashes in attract mode, but if you start a game before that happens, then it plays ok
+ROM_START( orlegendcs )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0101h.s160", 0x100000, 0x200000, CRC(d608ece9) SHA1(0a34bdcfcbb4fad4c499ee559791e29a432bff85) )
+
+ ROM_REGION( 0x800000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0100.u8", 0x180000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) )
+
+ ROM_REGION( 0x1800000, "sprcol", 0 )
+ 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 )
+ 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 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0100.u1", 0x400000, 0x200000, CRC(e5c36c83) SHA1(50c6f66770e8faa3df349f7d68c407a7ad021716) )
+ROM_END
+
+// This crashes in attract mode, but if you start a game before that happens, then it plays ok
+ROM_START( orlegendh )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0101h.s160", 0x100000, 0x200000, CRC(d608ece9) SHA1(0a34bdcfcbb4fad4c499ee559791e29a432bff85) )
+
+ ROM_REGION( 0x800000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0100.u8", 0x180000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) )
+
+ ROM_REGION( 0x1800000, "sprcol", 0 )
+ 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 )
+ 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 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0100.u1", 0x400000, 0x200000, CRC(e5c36c83) SHA1(50c6f66770e8faa3df349f7d68c407a7ad021716) )
+ROM_END
+#if 0
+ROM_START( kovassg ) // encrypted
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600.assg", 0x100000, 0x400000, CRC(b9885d5c) SHA1(be55e6b3639fbf30e4cbc1bb24e388fd2ad74382) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+#endif
+ROM_START( kovassg )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "assg_v315cn.rom", 0x100000, 0x400000, CRC(b9885d5c) SHA1(be55e6b3639fbf30e4cbc1bb24e388fd2ad74382) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, BAD_DUMP CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) ) // this is the kovsh ARM rom, we intercept and modify protection calls
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "lsqh2_t01.rom",0x180000, 0x800000, CRC(d498d97f) SHA1(97a7b6d2ed1170449e7c2899448af7cbbca4c94f) )
+ ROM_IGNORE( 0x800000 ) // second half identical
+
+ ROM_REGION( 0x3000000, "sprcol", 0 )
+ ROM_LOAD( "lsqh2_a01.rom", 0x0000000, 0x1000000, CRC(25ae3efd) SHA1(083d977602ddb5ad54fbdcba000cd4287de8d463) )
+ ROM_LOAD( "lsqh2_a23.rom", 0x1000000, 0x1000000, CRC(7a779112) SHA1(0a7d36b3715063d8eac629b95a9bb3ecd8e54fca) )
+ ROM_LOAD( "lsqh2_a45.rom", 0x2000000, 0x1000000, CRC(5d7de052) SHA1(7663b6cf09f65c4644661005a38f9aba84a32913) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "lsqh2_b01.rom", 0x0000000, 0x1000000, CRC(df7ca696) SHA1(7af3d27957a39de7e4873867c9972c05af7e7964) )
+
+ ROM_REGION( 0xc00000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "lsqh2_m01.rom",0x400000, 0x400000, CRC(01af1b65) SHA1(6cf523fa8f1e03f974771611bb9a4e08a4d4443f) )
+ ROM_IGNORE( 0x400000 ) // 400000-7fffff empty
+ ROM_CONTINUE( 0x800000, 0x400000 )
+ ROM_IGNORE( 0x400000 ) // c00000-ffffff empty
+ROM_END
+
+ROM_START( kovdf ) // encrypted
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600.df", 0x100000, 0x400000, CRC(a4c3cfed) SHA1(09c7b51652a90cce21ec3977e522e4894b6f0e14) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kov2h1 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "v204-32m.2h1", 0x100000, 0x400000, CRC(1f8cda84) SHA1(9220ef478edc2267c5d96083c2c4ecf465ab9685) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ // supplied rom freezes mame when attract mode starts, this one works
+ ROM_LOAD( "kov2p_igs027a_china.bin", 0x000000, 0x04000, CRC(19a0bd95) SHA1(83e9f22512832a51d41c588debe8be7adb3b1df7) )
+
+ ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */
+ ROM_LOAD( "v200-16.rom", 0x000000, 0x200000, CRC(16a0c11f) SHA1(ce449cef76ebd5657d49b57951e2eb0f132e203e) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t1200.rom", 0x180000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) )
+
+ ROM_REGION( 0x2800000, "sprcol", 0 )
+ ROM_LOAD( "a1200.rom", 0x0000000, 0x0800000, CRC(ceeb81d8) SHA1(5476729443fc1bc9593ae10fbf7cbc5d7290b017) )
+ ROM_LOAD( "a1201.rom", 0x0800000, 0x0800000, CRC(21063ca7) SHA1(cf561b44902425a920d5cbea5bf65dd9530b2289) )
+ ROM_LOAD( "a1202.rom", 0x1000000, 0x0800000, CRC(4bb92fae) SHA1(f0b6d72ed425de1c69dc8f8d5795ea760a4a59b0) )
+ ROM_LOAD( "a1203.rom", 0x1800000, 0x0800000, CRC(e73cb627) SHA1(4c6e48b845a5d1e8f9899010fbf273d54c2b8899) )
+ ROM_LOAD( "a1204.rom", 0x2000000, 0x0200000, CRC(14b4b5bb) SHA1(d7db5740eec971f2782fb2885ee3af8f2a796550) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b1200.rom", 0x0000000, 0x0800000, CRC(bed7d994) SHA1(019dfba8154256d64cd249eb0fa4c451edce34b8) )
+ ROM_LOAD( "b1201.rom", 0x0800000, 0x0800000, CRC(f251eb57) SHA1(56a5fc14ab7822f83379cecb26638e5bb266349a) )
+
+ ROM_REGION( 0x1000000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m1200.rom", 0x800000, 0x800000, CRC(b0d88720) SHA1(44ab137e3f8e15b7cb5697ffbd9b1143d8210c4f) )
+ROM_END
+
+ROM_START( kov2h2 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "v204-32m.2h2", 0x100000, 0x400000, CRC(7fcc1ab6) SHA1(47f9ab9f7f1b3d7941a70b383072d2d58e07637b) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov2p_igs027a_china.bin", 0x000000, 0x04000, CRC(19a0bd95) SHA1(83e9f22512832a51d41c588debe8be7adb3b1df7) )
+
+ ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */
+ ROM_LOAD( "v200-16.rom", 0x000000, 0x200000, CRC(16a0c11f) SHA1(ce449cef76ebd5657d49b57951e2eb0f132e203e) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t1200.rom", 0x180000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) )
+
+ ROM_REGION( 0x2800000, "sprcol", 0 )
+ ROM_LOAD( "a1200.rom", 0x0000000, 0x0800000, CRC(ceeb81d8) SHA1(5476729443fc1bc9593ae10fbf7cbc5d7290b017) )
+ ROM_LOAD( "a1201.rom", 0x0800000, 0x0800000, CRC(21063ca7) SHA1(cf561b44902425a920d5cbea5bf65dd9530b2289) )
+ ROM_LOAD( "a1202.rom", 0x1000000, 0x0800000, CRC(4bb92fae) SHA1(f0b6d72ed425de1c69dc8f8d5795ea760a4a59b0) )
+ ROM_LOAD( "a1203.rom", 0x1800000, 0x0800000, CRC(e73cb627) SHA1(4c6e48b845a5d1e8f9899010fbf273d54c2b8899) )
+ ROM_LOAD( "a1204.rom", 0x2000000, 0x0200000, CRC(14b4b5bb) SHA1(d7db5740eec971f2782fb2885ee3af8f2a796550) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b1200.rom", 0x0000000, 0x0800000, CRC(bed7d994) SHA1(019dfba8154256d64cd249eb0fa4c451edce34b8) )
+ ROM_LOAD( "b1201.rom", 0x0800000, 0x0800000, CRC(f251eb57) SHA1(56a5fc14ab7822f83379cecb26638e5bb266349a) )
+
+ ROM_REGION( 0x1000000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m1200.rom", 0x800000, 0x800000, CRC(b0d88720) SHA1(44ab137e3f8e15b7cb5697ffbd9b1143d8210c4f) )
+ROM_END
+
+ROM_START( kov2h3 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "v204-32m.2h3", 0x100000, 0x400000, CRC(baa217ad) SHA1(f781d96870b7ac7043049ab08174bf2cc48979f5) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov2p_igs027a_china.bin", 0x000000, 0x04000, CRC(19a0bd95) SHA1(83e9f22512832a51d41c588debe8be7adb3b1df7) )
+
+ ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */
+ ROM_LOAD( "v200-16.rom", 0x000000, 0x200000, CRC(16a0c11f) SHA1(ce449cef76ebd5657d49b57951e2eb0f132e203e) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t1200.rom", 0x180000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) )
+
+ ROM_REGION( 0x2800000, "sprcol", 0 )
+ ROM_LOAD( "a1200.rom", 0x0000000, 0x0800000, CRC(ceeb81d8) SHA1(5476729443fc1bc9593ae10fbf7cbc5d7290b017) )
+ ROM_LOAD( "a1201.rom", 0x0800000, 0x0800000, CRC(21063ca7) SHA1(cf561b44902425a920d5cbea5bf65dd9530b2289) )
+ ROM_LOAD( "a1202.rom", 0x1000000, 0x0800000, CRC(4bb92fae) SHA1(f0b6d72ed425de1c69dc8f8d5795ea760a4a59b0) )
+ ROM_LOAD( "a1203.rom", 0x1800000, 0x0800000, CRC(e73cb627) SHA1(4c6e48b845a5d1e8f9899010fbf273d54c2b8899) )
+ ROM_LOAD( "a1204.rom", 0x2000000, 0x0200000, CRC(14b4b5bb) SHA1(d7db5740eec971f2782fb2885ee3af8f2a796550) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b1200.rom", 0x0000000, 0x0800000, CRC(bed7d994) SHA1(019dfba8154256d64cd249eb0fa4c451edce34b8) )
+ ROM_LOAD( "b1201.rom", 0x0800000, 0x0800000, CRC(f251eb57) SHA1(56a5fc14ab7822f83379cecb26638e5bb266349a) )
+
+ ROM_REGION( 0x1000000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m1200.rom", 0x800000, 0x800000, CRC(b0d88720) SHA1(44ab137e3f8e15b7cb5697ffbd9b1143d8210c4f) )
+ROM_END
+
+ROM_START( kov2h4 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "v204-32m.2h4", 0x100000, 0x400000, CRC(ee8fb036) SHA1(bf1f3006a5e5026ff9bec8d8cb2e147ec2ee6716) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov2p_igs027a_china.bin", 0x000000, 0x04000, CRC(19a0bd95) SHA1(83e9f22512832a51d41c588debe8be7adb3b1df7) )
+
+ ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */
+ ROM_LOAD( "v200-16.rom", 0x000000, 0x200000, CRC(16a0c11f) SHA1(ce449cef76ebd5657d49b57951e2eb0f132e203e) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t1200.rom", 0x180000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) )
+
+ ROM_REGION( 0x2800000, "sprcol", 0 )
+ ROM_LOAD( "a1200.rom", 0x0000000, 0x0800000, CRC(ceeb81d8) SHA1(5476729443fc1bc9593ae10fbf7cbc5d7290b017) )
+ ROM_LOAD( "a1201.rom", 0x0800000, 0x0800000, CRC(21063ca7) SHA1(cf561b44902425a920d5cbea5bf65dd9530b2289) )
+ ROM_LOAD( "a1202.rom", 0x1000000, 0x0800000, CRC(4bb92fae) SHA1(f0b6d72ed425de1c69dc8f8d5795ea760a4a59b0) )
+ ROM_LOAD( "a1203.rom", 0x1800000, 0x0800000, CRC(e73cb627) SHA1(4c6e48b845a5d1e8f9899010fbf273d54c2b8899) )
+ ROM_LOAD( "a1204.rom", 0x2000000, 0x0200000, CRC(14b4b5bb) SHA1(d7db5740eec971f2782fb2885ee3af8f2a796550) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b1200.rom", 0x0000000, 0x0800000, CRC(bed7d994) SHA1(019dfba8154256d64cd249eb0fa4c451edce34b8) )
+ ROM_LOAD( "b1201.rom", 0x0800000, 0x0800000, CRC(f251eb57) SHA1(56a5fc14ab7822f83379cecb26638e5bb266349a) )
+
+ ROM_REGION( 0x1000000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m1200.rom", 0x800000, 0x800000, CRC(b0d88720) SHA1(44ab137e3f8e15b7cb5697ffbd9b1143d8210c4f) )
+ROM_END
+
+ROM_START( kov2h5 ) // was kov2psv
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "v204-32mv.rom", 0x100000, 0x400000, CRC(fa8d8e5b) SHA1(b7dc3853145bbc063a2953f5840eced1bbd9186e) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov2p_igs027a_china.bin", 0x000000, 0x04000, CRC(19a0bd95) SHA1(83e9f22512832a51d41c588debe8be7adb3b1df7) )
+
+ ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */
+ ROM_LOAD( "v200-16.rom", 0x000000, 0x200000, CRC(16a0c11f) SHA1(ce449cef76ebd5657d49b57951e2eb0f132e203e) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t1200.rom", 0x180000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) )
+
+ ROM_REGION( 0x2800000, "sprcol", 0 )
+ ROM_LOAD( "a1200.rom", 0x0000000, 0x0800000, CRC(ceeb81d8) SHA1(5476729443fc1bc9593ae10fbf7cbc5d7290b017) )
+ ROM_LOAD( "a1201.rom", 0x0800000, 0x0800000, CRC(21063ca7) SHA1(cf561b44902425a920d5cbea5bf65dd9530b2289) ) // either this or a1201.rom in kov2 is probably bad
+ ROM_LOAD( "a1202.rom", 0x1000000, 0x0800000, CRC(4bb92fae) SHA1(f0b6d72ed425de1c69dc8f8d5795ea760a4a59b0) )
+ ROM_LOAD( "a1203.rom", 0x1800000, 0x0800000, CRC(e73cb627) SHA1(4c6e48b845a5d1e8f9899010fbf273d54c2b8899) )
+ ROM_LOAD( "a1204.rom", 0x2000000, 0x0200000, CRC(14b4b5bb) SHA1(d7db5740eec971f2782fb2885ee3af8f2a796550) ) // either this or a1204.rom in kov2 is probably bad
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b1200.rom", 0x0000000, 0x0800000, CRC(bed7d994) SHA1(019dfba8154256d64cd249eb0fa4c451edce34b8) )
+ ROM_LOAD( "b1201.rom", 0x0800000, 0x0800000, CRC(f251eb57) SHA1(56a5fc14ab7822f83379cecb26638e5bb266349a) )
+
+ ROM_REGION( 0x1000000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m1200.rom", 0x800000, 0x800000, CRC(b0d88720) SHA1(44ab137e3f8e15b7cb5697ffbd9b1143d8210c4f) )
+ROM_END
+
+ROM_START( kovph1 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600.ph1", 0x100000, 0x400000, CRC(390ebbfc) SHA1(e051a7659a14316c35075cfd2a2f2baba7f18f1a) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovph2 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600116.119", 0x100000, 0x400000, CRC(30157417) SHA1(6152b82aea174c4201f07e8ebc09f1750140f1ff) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovph3 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600948.119", 0x100000, 0x400000, CRC(78aae711) SHA1(af4649201ca775db7c86e8027d9c2511f656fcb1) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovph4 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p060006.119", 0x100000, 0x258000, CRC(b071cf49) SHA1(203b946d30640247b8ea5e8a56eeb2a5cb465b62) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovph5 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600v93.119", 0x100000, 0x400000, CRC(1fa0e862) SHA1(beb83e1feb7c7bd133e6ad83eba50f381a25ab85) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovph6 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600v97.119", 0x100000, 0x400000, CRC(00905e8d) SHA1(3695326f46d03bc2dc46588ee563df9d1ca14b97) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovph7 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600lb.119", 0x100000, 0x400000, CRC(8da107cb) SHA1(f6bd684a0edd1f52110e6640bb4d824b789fbb4b) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600lb.rom", 0x180000, 0x800000, CRC(9920e650) SHA1(1d46233869d4e65fd8b84ec520fc7e7e3840c7aa) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600lb.rom", 0x0000000, 0x0800000, CRC(21e272ae) SHA1(71bee0d53a80c406c813e1c6ea99774df2e40f9c) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600lb.rom", 0x0000000, 0x0800000, CRC(b79355de) SHA1(4773a83fe646e27f6223897fea56eb438edc9809) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovph8 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0602lw.119", 0x100000, 0x400000, CRC(77cfdb2e) SHA1(bf39922b38e8a7db898bb6cdc15f6ca9c2dc14b7) )
+ ROM_LOAD16_WORD_SWAP( "p0601lw.119", 0x100000, 0x271000, CRC(04f76a4b) SHA1(7303956b589e175baa924077953f146b32868182) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600lb.rom", 0x180000, 0x800000, CRC(9920e650) SHA1(1d46233869d4e65fd8b84ec520fc7e7e3840c7aa) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600lw.rom", 0x0000000, 0x0800000, CRC(cca70135) SHA1(2d288df75907e50c7fc2beca5fb9fd895faece55) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602lw.rom", 0x1000000, 0x0800000, CRC(71c8a46c) SHA1(6391eb95e1f2933b0e02518232a4bbcf7c91b73f) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600lw.rom", 0x0000000, 0x0800000, CRC(a4155c55) SHA1(3146774f00dd4156b7423d9983dc6e678aca648d) )
+ ROM_LOAD( "b0601lw.rom", 0x0800000, 0x0400000, CRC(a261d5bd) SHA1(19204c5ab9861f8ccfb0b168e2bb4137f9d14dfe) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovph9 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600pj.119", 0x100000, 0x400000, CRC(2ca30916) SHA1(506a8b27cd9911348aa481d7276b2bda1b5758ef) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovph10 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600qy.120", 0x100000, 0x400000, CRC(399c8cbc) SHA1(c9702db79ea56e6727577a5a9b8f42b700c67a4f) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600lb.rom", 0x180000, 0x800000, CRC(9920e650) SHA1(1d46233869d4e65fd8b84ec520fc7e7e3840c7aa) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovph11 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600.119", 0x100000, 0x400000, CRC(e4b0875d) SHA1(e8382e131b0e431406dc2a05cc1ef128302d987c) )
+ // not working ROM_LOAD16_WORD_SWAP( "p0600s8.119", 0x100000, 0x2bc000, CRC(dc214ff5) SHA1(0a7448dbb18259e8e36e26b38b791bcd39e1d05e) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600s8.rom", 0x180000, 0x800000, CRC(e2528ac5) SHA1(f719c2fb80a9d645432bdba90ea15a2d59427cd2) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovph12 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600x.119", 0x100000, 0x400000, CRC(3d5ad108) SHA1(f7129f69f16d1589c2b03c246f16518836f09ad7) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovph13 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "kovph13.p0600.119", 0x100000, 0x400000, CRC(910edfdf) SHA1(bb222e503fed23bbc9b4d244ba02b1dd756006f9) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovph14 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "kovph14.p0600.119", 0x100000, 0x400000, CRC(b5d87e6e) SHA1(98d3bc1327f209b19c159eb54652cabf2b61b434) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovph15 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "kovph15.p0600.119", 0x100000, 0x400000, CRC(c9326627) SHA1(a81a46325473be6b138cf76ee2fa9db655a11313) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovph16 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600up.119", 0x100000, 0x400000, CRC(dfd96c08) SHA1(544463a734c50d45ce5549dba22aa7a3a3f75dc6) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600up.rom", 0x180000, 0x800000, CRC(9920e650) SHA1(1d46233869d4e65fd8b84ec520fc7e7e3840c7aa) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovph17 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600.ph17", 0x100000, 0x400000, CRC(19032b59) SHA1(6462cfa55c6cd6d3668010e11463f1fb6a9641c8) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.ph17", 0x180000, 0x800000, CRC(84567fa4) SHA1(932fdd8095b499acbac69035c12929a2dc9a5564) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.ph17", 0x400000, 0x400000, CRC(75eaf52b) SHA1(4981992441b35343c8bf23e730bba070ddef3350) )
+ROM_END
+
+ROM_START( kovph18 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600.ph18", 0x100000, 0x454f4e, CRC(5b2981c3) SHA1(8b64d86f76991960240126da13729b6cbc8f5513) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.ph18", 0x180000, 0x800000, CRC(d5b8327e) SHA1(5e00c0ff31e7258cc37e389c8bce0a1b8d39d49f) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x854f62, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.ph18", 0x400000, 0x454f62, CRC(24b06143) SHA1(3b712320ee9b4c8df2e0b2a3f05e3ccf11087c0a) )
+ROM_END
+
+ROM_START( kovph19 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600.ph19", 0x100000, 0x400000, CRC(e4ec6880) SHA1(025d1dbc0f067d10d7e10567b9f1bc1bdfac481a) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovph20 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600.ph20", 0x100000, 0x400000, CRC(5c9acb7a) SHA1(a25c1813efa7151536971fce39cfb2e1e71c7f91) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovph21 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600.ph21", 0x100000, 0x400000, CRC(5e3bdea4) SHA1(5b20a0b9aa02f285425ac65c8df3c1a47e4e61f5) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovph22 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600.ph22", 0x100000, 0x400000, CRC(06d1f4d5) SHA1(69e2a580c66c45b0221335cc5eeb7ac0bb6e18b7) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovph23 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600.ph23", 0x100000, 0x2bc000, CRC(dc214ff5) SHA1(0a7448dbb18259e8e36e26b38b791bcd39e1d05e) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.ph23", 0x180000, 0x800000, CRC(e2528ac5) SHA1(f719c2fb80a9d645432bdba90ea15a2d59427cd2) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovph24 ) // was kvplusjq
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600jq.119", 0x100000, 0x400000, CRC(a04866b9) SHA1(bae132ae93244e328a887728d4803c4593e8b01e) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovph25 ) // was kovplusq - crashes after 2nd attract cycle
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600.120", 0x100000, 0x400000, CRC(6392a1c3) SHA1(ccbe2e736897a1c969e80fbee93ffcc6defb025a) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovsh1 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hack.322", 0x100000, 0x400000, CRC(c48df7de) SHA1(d97e3603dcc09c5018f333f21d5069eef89289dd) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kovsharm.bin", 0x000000, 0x04000, CRC(9d8ecc0c) SHA1(51f288e8aa3dd1d4b7f24155fea9c6a7f4cd1144) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x400000, CRC(164b3c94) SHA1(f00ea66886ca6bff74bbeaa49e7f5c75c275d5d7) )
+
+ ROM_REGION( 0x1e00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+ ROM_LOAD( "a0604.rom", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+ ROM_LOAD( "b0602.rom", 0x0c00000, 0x0100000, CRC(9df77934) SHA1(99a3fe337c13702c9aa2373bcd1bb1befd0e2a13) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovsh2 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600re.322", 0x100000, 0x2a3000, CRC(4c38c199) SHA1(48876b6a9cd85d39c4b49b7a47e66d66f2bfd375) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1e00000, "sprcol", 0 )
+ ROM_LOAD( "a0600re.rom", 0x0000000, 0x0800000, CRC(2f5e017e) SHA1(83655f4c4d5f4155f0f8908870c0a97de9d52907) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+ ROM_LOAD( "a0604.rom", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600re.rom", 0x0000000, 0x0800000, CRC(c16d355b) SHA1(2f711376d489ba19cf466e3ee1d498c93313fcb5) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+ ROM_LOAD( "b0602.rom", 0x0c00000, 0x0100000, CRC(9df77934) SHA1(99a3fe337c13702c9aa2373bcd1bb1befd0e2a13) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovsh3 ) // same as kovsh103 except for b0602 rom
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600.103", 0x100000, 0x400000, CRC(f0b3da82) SHA1(4067beb69c049b51bce6154f4cf880600ca4de11) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1e00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+ ROM_LOAD( "a0604.rom", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+ ROM_LOAD( "b0602.sh3", 0x0c00000, 0x0400000, CRC(c3e0b454) SHA1(7aaa9b1abf9f1e7fe9acbba757ff7fbfa46557d3) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovsh4 ) // p rom encrypted
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600.sh4", 0x100000, 0x400000, CRC(739a92ca) SHA1(69387dfbc5015c3cb43283a189b49ae05f93f3fd) )//CRC(7c78e5f3) SHA1(9b1e4bd63fb1294ebeb539966842273c8dc7683b) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1e00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+ ROM_LOAD( "a0604.rom", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+ ROM_LOAD( "b0602.rom", 0x0c00000, 0x0100000, CRC(9df77934) SHA1(99a3fe337c13702c9aa2373bcd1bb1befd0e2a13) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovsh5 ) // p rom encrypted
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600.sh5", 0x100000, 0x400000, CRC(6c61f80f) SHA1(2797971c5a53c983284525603e2d41b2efd8f26d) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x2000000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.sh5", 0x1800000, 0x0800000, CRC(eadc7955) SHA1(7ae5acded2a5c47ccbeb1726f93f14afdd1ede86) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.sh5", 0x0800000, 0x0800000, CRC(bf30ea67) SHA1(9d8049307c4084765eb1a1adb0530811347f2695) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.sh5", 0x400000, 0x400000, CRC(eae5bf80) SHA1(5052849cb1ea573ee98188c594b4a449c195e441) )
+ROM_END
+
+ROM_START( kovsh6 ) // p rom encrypted
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600.sh6", 0x100000, 0x400000, CRC(8d02a952) SHA1(9af1d7193bba64631b8bd89f6de3a04c0bf7891f) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x2000000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.sh6", 0x1800000, 0x0800000, CRC(cbc57bc1) SHA1(ae1ef43a5caaa1e1a0be6ba7a6598eeaeb284a1e) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.sh6", 0x0800000, 0x0800000, CRC(1885039b) SHA1(23f832ee7493d11f78ea06954da748ff1fa3c595) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.sh5", 0x400000, 0x400000, CRC(eae5bf80) SHA1(5052849cb1ea573ee98188c594b4a449c195e441) )
+ROM_END
+
+ROM_START( kovsh7 ) // set has 3 p roms (all encrypted, and 2 b601 roms, and 1 a603 rom, not coded atm
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600h.sh7", 0x100000, 0x400000, CRC(7c05aa5c) SHA1(85aa625187f79a4a7401386ffb6ea3c2492e1be3) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, BAD_DUMP CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) ) // this is the kovsh ARM rom, we intercept and modify protection calls
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x2000000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0540.rom", 0x1800000, 0x0800000, CRC(4fd3413e) SHA1(5e8f3e421342bf558c77e59635f9b5d713e825c2) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0540.rom", 0x0800000, 0x0800000, CRC(60999757) SHA1(118cf058e67858958bcb931e14f5d160c7de87cc) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovsh8 ) // encrypted
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600.sh8", 0x100000, 0x400000, CRC(617e53fb) SHA1(5f8b05c11e08d1bef60cda563d15dc7537b5c8f0) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1e00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+ ROM_LOAD( "a0604.rom", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+ ROM_LOAD( "b0602.rom", 0x0c00000, 0x0100000, CRC(9df77934) SHA1(99a3fe337c13702c9aa2373bcd1bb1befd0e2a13) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovsh9 ) // encrypted
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600.sh9", 0x100000, 0x400000, CRC(12463832) SHA1(7ace58653ab4e9b49556e0969596aeceb2c6dfae) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1e00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+ ROM_LOAD( "a0604.rom", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+ ROM_LOAD( "b0602.rom", 0x0c00000, 0x0100000, CRC(9df77934) SHA1(99a3fe337c13702c9aa2373bcd1bb1befd0e2a13) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovsh10 ) // not set up yet, most likely to be encrypted
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600.322", 0x100000, 0x400000, CRC(7c78e5f3) SHA1(9b1e4bd63fb1294ebeb539966842273c8dc7683b) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1e00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+ ROM_LOAD( "a0604.rom", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+ ROM_LOAD( "b0602.rom", 0x0c00000, 0x0100000, CRC(9df77934) SHA1(99a3fe337c13702c9aa2373bcd1bb1befd0e2a13) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovsh11 ) // p rom same as kovsh8
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600.322", 0x100000, 0x400000, CRC(7c78e5f3) SHA1(9b1e4bd63fb1294ebeb539966842273c8dc7683b) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1e00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+ ROM_LOAD( "a0604.rom", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+ ROM_LOAD( "b0602.rom", 0x0c00000, 0x0100000, CRC(9df77934) SHA1(99a3fe337c13702c9aa2373bcd1bb1befd0e2a13) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovsh12 ) // encrypted
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600.sh12", 0x100000, 0x400000, CRC(97330917) SHA1(99bff51d6d007d8f3f45dd36f43e4690ed5f4946) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, CRC(7ece721c) SHA1(3aa11f11803643f9aa4bdafa35421626d066c4e9) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1e00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+ ROM_LOAD( "a0604.rom", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+ ROM_LOAD( "b0602.rom", 0x0c00000, 0x0100000, CRC(9df77934) SHA1(99a3fe337c13702c9aa2373bcd1bb1befd0e2a13) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovsh13 ) // encrypted
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600.sh13", 0x100000, 0x400000, CRC(d80651ec) SHA1(90ccb02b9e7c549ad0bd36379c72127cce4159cb) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1e00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+ ROM_LOAD( "a0604.rom", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+ ROM_LOAD( "b0602.rom", 0x0c00000, 0x0100000, CRC(9df77934) SHA1(99a3fe337c13702c9aa2373bcd1bb1befd0e2a13) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovsh14 ) // encrypted
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600.sh14", 0x100000, 0x400000, CRC(bba16fe0) SHA1(ce9c42cde5d66913f73a34b66b9615a497103d3b) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1e00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+ ROM_LOAD( "a0604.rom", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+ ROM_LOAD( "b0602.rom", 0x0c00000, 0x0100000, CRC(9df77934) SHA1(99a3fe337c13702c9aa2373bcd1bb1befd0e2a13) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovsh15 ) // encrypted
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600.sh15", 0x100000, 0x400000, CRC(54f6c5d9) SHA1(9abf1fed12261fdddd2e40d30d6ce536e91c1c55) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1e00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+ ROM_LOAD( "a0604.rom", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+ ROM_LOAD( "b0602.rom", 0x0c00000, 0x0100000, CRC(9df77934) SHA1(99a3fe337c13702c9aa2373bcd1bb1befd0e2a13) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovsh16 ) // encrypted
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600.sh15", 0x100000, 0x400000, CRC(54f6c5d9) SHA1(9abf1fed12261fdddd2e40d30d6ce536e91c1c55) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1e00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+ ROM_LOAD( "a0604.rom", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+ ROM_LOAD( "b0602.rom", 0x0c00000, 0x0100000, CRC(9df77934) SHA1(99a3fe337c13702c9aa2373bcd1bb1befd0e2a13) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovsh17 ) // encrypted - was kovshq
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600q.322", 0x100000, 0x400000, CRC(f9e0bdc3) SHA1(fc7080d1255cae6b3a241fbbea24355530de0a8f) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1e00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+ ROM_LOAD( "a0604.rom", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+ ROM_LOAD( "b0602.rom", 0x0c00000, 0x0100000, CRC(9df77934) SHA1(99a3fe337c13702c9aa2373bcd1bb1befd0e2a13) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovsh18 ) // Gem Fighter hack
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600.sh18", 0x100000, 0x400000, CRC(24f9d4dc) SHA1(5e32c9faab39a735fa9c26aac09a7e87d84c252b) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1e00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.sh18", 0x0000000, 0x0800000, CRC(7bd1a62d) SHA1(8dee71a336a21b8ba967066477f0285e310686e4) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+ ROM_LOAD( "a0604.rom", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.sh18", 0x0000000, 0x0800000, CRC(52f5ba74) SHA1(05abef7cdfc9632601628bc2e8df142fc348b914) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+ ROM_LOAD( "b0602.rom", 0x0c00000, 0x0100000, CRC(9df77934) SHA1(99a3fe337c13702c9aa2373bcd1bb1befd0e2a13) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovsh19 ) // Rugal 98 hack
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600.sh19", 0x100000, 0x400000, CRC(ed4a87a8) SHA1(70845ccd41eee2b31ffb93cd76fc53e2f6e4d5a8) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1e00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.sh19", 0x0000000, 0x0800000, CRC(ba94a9ac) SHA1(6bd779196cbcc89864b7f5aae6d363eacd93ed68) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+ ROM_LOAD( "a0604.rom", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.sh19", 0x0000000, 0x0800000, CRC(3d90f533) SHA1(7026a2193ed16ec3097f024326fdae08bc639f50) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+ ROM_LOAD( "b0602.rom", 0x0c00000, 0x0100000, CRC(9df77934) SHA1(99a3fe337c13702c9aa2373bcd1bb1befd0e2a13) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.sh19", 0x400000, 0x400000, CRC(4a6053b0) SHA1(64b37dc52f7924a727f549a4c2c2682851f9405e) )
+ROM_END
+
+// same problem as MAME kovsgqyza: it crashes after the 2nd attract cycle
+ROM_START( kovsgqyzc )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "pgm_sgqyzc.rom", 0x100000, 0x400000, CRC(09774a3e) SHA1(f5131d07abb048cd3e3549bf0223c9cb485ce7f6) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kovsgqyzc_igs027a.bin", 0x000000, 0x04000, NO_DUMP ) // bootleg is probably a different device
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x2000000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "qyza0603.rom", 0x1800000, 0x0800000, CRC(c8b92220) SHA1(4f9c43970d92ac8a8f1563021022797ae8e32012) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "qyzb0601.rom", 0x0800000, 0x0800000, CRC(64f55882) SHA1(ab9ac1396587c3d78d06f6ec83cab61d6a9faacd) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+
+
+
+GAME( 2002, ketarrb, ket, pgm_arm_type1_cave, pgm, pgm_arm_type1_state, ket, ROT270, "trap15", "Ketsui: Kizuna Jigoku Tachi (2012/04/17 BACK. VER)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, orlegendh, orlegend, pgm_asic3, orlegend, pgm_asic3_state, orlegend, ROT0, "Hack", "Oriental Legend Plus / Xi You Shi E Zhuan Plus (ver. 2.0 by Enbrow)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1997, orlegendcs, orlegend, pgm_asic3, orlegend, pgm_asic3_state, orlegend, ROT0, "Kryso", "Oriental Legend / Xi Yo Gi Shi Re Zuang (Hack)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 2006, pgemeni, pgm, pgm_asic3, pgm, pgm_asic3_state, orlegend, ROT0, "Blastar", "P-Gemeni", MACHINE_SUPPORTS_SAVE ) // has no sound
+GAME( 1997, pgmdemo, pgm, pgm_asic3, pgm, pgm_asic3_state, orlegend, ROT0, "Charles Doty", "Demo - PGM", MACHINE_SUPPORTS_SAVE ) // has no sound
+GAME( 2006, pgmfrog, pgm, pgm_asic3, pgm, pgm_asic3_state, orlegend, ROT0, "Rastersoft", "Frog Feast (PGM)", MACHINE_SUPPORTS_SAVE )
+//GAME( 1999, kovassg, kov, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour (hack set assg)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+//GAME( 2008, kovassg, kovshp, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovassg, ROT0, "bootleg", "Knights of Valour: Aoshi Sanguo / Sangoku Senki: Aoshi Sanguo (ver. 315CN)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) /* need internal rom of IGS027A */
+GAME( 1999, kovdf, kov, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour (hack set df)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovsgqyzc, 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 4)", MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kov2h1, kov2p, pgm_arm_type2, kov2, pgm_arm_type2_state, kov2p, ROT0, "Hack", "Knights of Valour 2 Plus (hack set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kov2h2, kov2p, pgm_arm_type2, kov2, pgm_arm_type2_state, kov2p, ROT0, "Hack", "Knights of Valour 2 Plus (hack set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kov2h3, kov2p, pgm_arm_type2, kov2, pgm_arm_type2_state, kov2p, ROT0, "Hack", "Knights of Valour 2 Plus (hack set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kov2h4, kov2p, pgm_arm_type2, kov2, pgm_arm_type2_state, kov2p, ROT0, "Hack", "Knights of Valour 2 Plus (hack set 4)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kov2h5, kov2p, pgm_arm_type2, kov2, pgm_arm_type2_state, kov2p, ROT0, "IGS", "Knights of Valour 2 Plus (ver M204XX)(hack set 5)", MACHINE_SUPPORTS_SAVE )
+GAME( 2007, kovph1, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus 2007 (hack set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovph2, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (hack set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovph3, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus A948 (hack set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 2006, kovph4, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "XM", "Knights of Valour Plus 2006 (hack set 4)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovph5, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (hack set 5)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovph6, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (hack set 6)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovph7, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (hack set 7)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovph8, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Fangzhoo", "Knights of Valour Plus HACK (hack set 8)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovph9, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (hack set 9)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovph10, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (hack set 10)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovph11, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (hack set 11)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovph12, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (hack set 12)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovph13, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (hack set 13)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovph14, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (hack set 14)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) // crashes in attract mode, but plays ok
+GAME( 1999, kovph15, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (hack set 15)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovph16, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (hack set 16)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 2012, kovph17, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hui Yi", "Knights of Valour Plus 2012 (hack set 17)", MACHINE_SUPPORTS_SAVE )
+GAME( 2012, kovph18, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hui Yi", "Knights of Valour Plus 2012 (hack set 18)", MACHINE_SUPPORTS_SAVE )
+GAME( 2012, kovph19, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (hack set 19)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 2012, kovph20, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (hack set 20)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 2012, kovph21, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (hack set 21)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovph22, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (hack set 22)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovph23, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (hack set 23)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovph24, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Huangxu", "Knights of Valour Plus / Sangoku Senki Plus (hack set 24)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovph25, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "IGS", "Knights of Valour Plus / Sangoku Senki Plus (ver. 120)(hack set 25)", MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovsh1, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (hack set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovsh2, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (hack set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovsh3, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (hack set 3)", MACHINE_SUPPORTS_SAVE )
+// Note: kovsh4-17 all have encrypted p-rom, and most of the other altered roms haven't been coded in yet
+GAME( 1999, kovsh4, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (hack set 4)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovsh5, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (hack set 5)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovsh6, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (hack set 6)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovsh7, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (hack set 7)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovsh8, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (hack set 8)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovsh9, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (hack set 9)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovsh10, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (hack set 10)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovsh11, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (hack set 11)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovsh12, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (hack set 12)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovsh13, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (hack set 13)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovsh14, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (hack set 14)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovsh15, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (hack set 15)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovsh16, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (hack set 16)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovsh17, kovsh, pgm_arm_type1_sim, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Sertsuna", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (ver. 320)(hack set 17)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovsh18, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (v104, Gem Fighters, hack set 18)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovsh19, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (v104, Rugal 98, hack set 19)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+
+
+#if 0
+// unused code from mame plus
+
+void pgm_arm_type1_state::kovplus_fix_patch()
+{
+ UINT8 *mem8 = (UINT8 *)(memregion("maincpu")->base());
+
+ mem8[0x1085D4] = 0x1B;
+ mem8[0x1085D5] = 0x3;
+ mem8[0x1085D6] = 0x1B;
+ mem8[0x1085D7] = 0xA4;
+ mem8[0x10EBEE] = 0x10;
+ mem8[0x10EBEF] = 0x15;
+ mem8[0x10EBF0] = 0x1A;
+ mem8[0x10EBF1] = 0x11;
+ mem8[0x11D3E4] = 0xC9;
+ mem8[0x11D3E5] = 0xF8;
+ mem8[0x11D3E6] = 0xB4;
+ mem8[0x11D3E7] = 0x9A;
+ mem8[0x11D492] = 0xA;
+ mem8[0x11D493] = 0x5A;
+ mem8[0x11D494] = 0xA;
+ mem8[0x11D495] = 0x6D;
+ mem8[0x11DAC6] = 0x18;
+ mem8[0x11DAC7] = 0x3B;
+ mem8[0x11DAC8] = 0xD1;
+ mem8[0x11DAC9] = 0xFE;
+ mem8[0x11DACA] = 0xE9;
+ mem8[0x11DACB] = 0xE;
+ mem8[0x11DACC] = 0x90;
+ mem8[0x11DACD] = 0x6B;
+ mem8[0x11DACE] = 0x90;
+ mem8[0x11DACF] = 0xF;
+ mem8[0x11DAD1] = 0x41;
+ mem8[0x11DE56] = 0x12;
+ mem8[0x11DE57] = 0x7F;
+ mem8[0x11DE58] = 0xD3;
+ mem8[0x11DE59] = 0x1C;
+ mem8[0x11DE5A] = 0xEB;
+ mem8[0x11DE5B] = 0xEA;
+ mem8[0x11DE5D] = 0x86;
+ mem8[0x11DE60] = 0x10;
+ mem8[0x11DE61] = 0x7F;
+ mem8[0x11DE62] = 0xD1;
+ mem8[0x11DE63] = 0x82;
+ mem8[0x11DE64] = 0xE9;
+ mem8[0x11DE65] = 0xB6;
+ mem8[0x11DF72] = 0x12;
+ mem8[0x11DF73] = 0x53;
+ mem8[0x11DF74] = 0xD3;
+ mem8[0x11DF75] = 0x84;
+ mem8[0x11DF76] = 0xEB;
+ mem8[0x11DF77] = 0xB8;
+ mem8[0x11DF79] = 0x2A;
+ mem8[0x11DF7C] = 0x12;
+ mem8[0x11DF7D] = 0x23;
+ mem8[0x11DF7E] = 0xD3;
+ mem8[0x11DF7F] = 0xDC;
+ mem8[0x11DF80] = 0x69;
+ mem8[0x11DF81] = 0x7C;
+ mem8[0x12E7A4] = 0x95;
+ mem8[0x12E7A5] = 0xCA;
+ mem8[0x12E7A6] = 0x54;
+ mem8[0x12E7A8] = 0x6C;
+ mem8[0x12E7A9] = 0x5;
+ mem8[0x13B25E] = 0xBA;
+ mem8[0x13B25F] = 0xBF;
+ mem8[0x1463A0] = 0x95;
+ mem8[0x1463A1] = 0x87;
+ mem8[0x1463A2] = 0x7F;
+ mem8[0x1463A3] = 0x95;
+ mem8[0x1463A4] = 0xB4;
+ mem8[0x1463A5] = 0x31;
+ mem8[0x1463A6] = 0x15;
+ mem8[0x1463A8] = 0x1D;
+ mem8[0x162408] = 0xB9;
+ mem8[0x162409] = 0x63;
+ mem8[0x1655E0] = 0x54;
+ mem8[0x1655E2] = 0x68;
+ mem8[0x1655E4] = 0x4D;
+ mem8[0x1655E5] = 0xBA;
+ mem8[0x1655E6] = 0xD1;
+ mem8[0x1655E7] = 0x23;
+ mem8[0x1655E8] = 0xE9;
+ mem8[0x1655EA] = 0x28;
+ mem8[0x1655EB] = 0x6A;
+ mem8[0x183476] = 0xDC;
+ mem8[0x183477] = 0xE7;
+ mem8[0x183DB6] = 0x3D;
+ mem8[0x32A00A] = 0x21;
+ mem8[0x32A00C] = 0x46;
+ mem8[0x32A00D] = 0x93;
+ mem8[0x32A01E] = 0x8B;
+ mem8[0x32A020] = 0x7E;
+ mem8[0x32A021] = 0xD0;
+ mem8[0x381000] = 0x50;
+ mem8[0x381001] = 0x45;
+ mem8[0x381002] = 0xE9;
+ mem8[0x381003] = 0x1C;
+ mem8[0x381004] = 0x87;
+ mem8[0x381005] = 0x3F;
+ mem8[0x381006] = 0x50;
+ mem8[0x381007] = 0xE;
+ mem8[0x381008] = 0x43;
+ mem8[0x381009] = 0x62;
+ mem8[0x38100A] = 0xC9;
+ mem8[0x38100B] = 0x59;
+ mem8[0x38100C] = 0xA7;
+ mem8[0x38100D] = 0x4B;
+ mem8[0x38100E] = 0xB0;
+ mem8[0x38100F] = 0x4;
+ mem8[0x381010] = 0x78;
+ mem8[0x381011] = 0x67;
+ mem8[0x381012] = 0xB9;
+ mem8[0x381013] = 0x97;
+ mem8[0x382000] = 0x50;
+ mem8[0x382001] = 0x1B;
+ mem8[0x382002] = 0x63;
+ mem8[0x382003] = 0x1C;
+ mem8[0x382004] = 0xE9;
+ mem8[0x382005] = 0xE3;
+ mem8[0x382006] = 0x87;
+ mem8[0x382007] = 0xDE;
+ mem8[0x382008] = 0xB0;
+ mem8[0x382009] = 0x2C;
+ mem8[0x38200A] = 0x58;
+ mem8[0x38200B] = 0x59;
+ mem8[0x38200C] = 0x15;
+ mem8[0x38200D] = 0x49;
+ mem8[0x383000] = 0x50;
+ mem8[0x383001] = 0x1B;
+ mem8[0x383002] = 0x60;
+ mem8[0x383003] = 0x1C;
+ mem8[0x383004] = 0xE9;
+ mem8[0x383005] = 0xE3;
+ mem8[0x383006] = 0x87;
+ mem8[0x383007] = 0xDE;
+ mem8[0x383008] = 0xB0;
+ mem8[0x383009] = 0x2C;
+ mem8[0x38300A] = 0x58;
+ mem8[0x38300B] = 0x59;
+ mem8[0x38300C] = 0x2F;
+ mem8[0x38300D] = 0x49;
+ mem8[0x384000] = 0x50;
+ mem8[0x384001] = 0x1B;
+ mem8[0x384002] = 0x63;
+ mem8[0x384003] = 0x1C;
+ mem8[0x384004] = 0xE9;
+ mem8[0x384005] = 0xE3;
+ mem8[0x384006] = 0x87;
+ mem8[0x384007] = 0xDE;
+ mem8[0x384008] = 0x90;
+ mem8[0x384009] = 0x2C;
+ mem8[0x38400A] = 0x78;
+ mem8[0x38400B] = 0x59;
+ mem8[0x38400C] = 0x11;
+ mem8[0x38400D] = 0x48;
+ mem8[0x385000] = 0x50;
+ mem8[0x385001] = 0x1B;
+ mem8[0x385002] = 0x60;
+ mem8[0x385003] = 0x1C;
+ mem8[0x385004] = 0xE9;
+ mem8[0x385005] = 0xE3;
+ mem8[0x385006] = 0x87;
+ mem8[0x385007] = 0xDE;
+ mem8[0x385008] = 0x90;
+ mem8[0x385009] = 0x2C;
+ mem8[0x38500A] = 0x78;
+ mem8[0x38500B] = 0x59;
+ mem8[0x38500C] = 0xEB;
+ mem8[0x38500D] = 0x48;
+ mem8[0x386000] = 0x5;
+ mem8[0x386001] = 0x5D;
+ mem8[0x386002] = 0x71;
+ mem8[0x386003] = 0x1C;
+ mem8[0x386004] = 0x6D;
+ mem8[0x386005] = 0x84;
+ mem8[0x386006] = 0x5;
+ mem8[0x386007] = 0x40;
+ mem8[0x386008] = 0x71;
+ mem8[0x386009] = 0x62;
+ mem8[0x38600A] = 0xC5;
+ mem8[0x38600B] = 0x51;
+ mem8[0x38600C] = 0x6C;
+ mem8[0x38600D] = 0x97;
+ mem8[0x38600E] = 0x79;
+ mem8[0x38600F] = 0x4B;
+ mem8[0x386010] = 0x90;
+ mem8[0x386011] = 0x29;
+ mem8[0x386012] = 0x7B;
+ mem8[0x386013] = 0x4D;
+ mem8[0x386014] = 0xC3;
+ mem8[0x386015] = 0xF8;
+}
+
+void pgm_arm_type1_state::kovboot_fix_patch()
+{
+ UINT8 *mem8 = (UINT8 *)(memregion("maincpu")->base());
+
+ mem8[0x1085D4] = 0x71;
+ mem8[0x1085D5] = 0x4E;
+ mem8[0x1085D6] = 0x71;
+ mem8[0x1085D7] = 0x4E;
+ mem8[0x11D3E4] = 0x29;
+ mem8[0x11D3E5] = 0x42;
+ mem8[0x11D3E6] = 0x54;
+ mem8[0x11D3E7] = 0x29;
+ mem8[0x11D492] = 0x71;
+ mem8[0x11D493] = 0x4E;
+ mem8[0x11D494] = 0x71;
+ mem8[0x11D495] = 0x4E;
+ mem8[0x11DAC6] = 0xF9;
+ mem8[0x11DAC7] = 0x4E;
+ mem8[0x11DAC8] = 0x38;
+ mem8[0x11DAC9] = 0x0;
+ mem8[0x11DACA] = 0x0;
+ mem8[0x11DACB] = 0xF;
+ mem8[0x11DACC] = 0x71;
+ mem8[0x11DACD] = 0x4E;
+ mem8[0x11DACE] = 0x71;
+ mem8[0x11DACF] = 0x4E;
+ mem8[0x11DAD1] = 0x65;
+ mem8[0x11DE56] = 0xF9;
+ mem8[0x11DE57] = 0x4E;
+ mem8[0x11DE58] = 0x38;
+ mem8[0x11DE59] = 0x0;
+ mem8[0x11DE5A] = 0x20;
+ mem8[0x11DE5B] = 0xF;
+ mem8[0x11DE5D] = 0x64;
+ mem8[0x11DE60] = 0xF9;
+ mem8[0x11DE61] = 0x4E;
+ mem8[0x11DE62] = 0x38;
+ mem8[0x11DE63] = 0x0;
+ mem8[0x11DE64] = 0x30;
+ mem8[0x11DE65] = 0x0F;
+ mem8[0x11DF72] = 0xF9;
+ mem8[0x11DF73] = 0x4E;
+ mem8[0x11DF74] = 0x38;
+ mem8[0x11DF75] = 0x0;
+ mem8[0x11DF76] = 0x40;
+ mem8[0x11DF77] = 0x0F;
+ mem8[0x11DF79] = 0x64;
+ mem8[0x11DF7C] = 0xF9;
+ mem8[0x11DF7D] = 0x4E;
+ mem8[0x11DF7E] = 0x38;
+ mem8[0x11DF7F] = 0x0;
+ mem8[0x11DF80] = 0x50;
+ mem8[0x11DF81] = 0x0F;
+ mem8[0x12E7A4] = 0xF9;
+ mem8[0x12E7A5] = 0x4E;
+ mem8[0x12E7A6] = 0x38;
+ mem8[0x12E7A8] = 0x60;
+ mem8[0x12E7A9] = 0x0F;
+ mem8[0x13B25E] = 0x71;
+ mem8[0x13B25F] = 0x4E;
+ mem8[0x1463A0] = 0xF9;
+ mem8[0x1463A1] = 0x4E;
+ mem8[0x1463A2] = 0x13;
+ mem8[0x1463A3] = 0x0;
+ mem8[0x1463A4] = 0xD0;
+ mem8[0x1463A5] = 0xB5;
+ mem8[0x1463A6] = 0x71;
+ mem8[0x1463A8] = 0x71;
+ mem8[0x162408] = 0xD0;
+ mem8[0x162409] = 0x1;
+ mem8[0x1655E0] = 0x3C;
+ mem8[0x1655E2] = 0x0;
+ mem8[0x1655E4] = 0x25;
+ mem8[0x1655E5] = 0x0;
+ mem8[0x1655E6] = 0xB9;
+ mem8[0x1655E7] = 0x90;
+ mem8[0x1655E8] = 0x81;
+ mem8[0x1655EA] = 0x40;
+ mem8[0x1655EB] = 0xB2;
+ mem8[0x183476] = 0xB5;
+ mem8[0x183477] = 0x1;
+ mem8[0x183DB6] = 0x50;
+ mem8[0x32A00A] = 0x68;
+ mem8[0x32A00C] = 0xF;
+ mem8[0x32A00D] = 0x4;
+ mem8[0x32A01E] = 0xC0;
+ mem8[0x32A020] = 0x13;
+ mem8[0x32A021] = 0x2;
+ mem8[0x380F00] = 0x39;
+ mem8[0x380F01] = 0x52;
+ mem8[0x380F02] = 0x80;
+ mem8[0x380F03] = 0x0;
+ mem8[0x380F04] = 0xEE;
+ mem8[0x380F05] = 0xDC;
+ mem8[0x380F06] = 0x39;
+ mem8[0x380F07] = 0xC;
+ mem8[0x380F08] = 0xA;
+ mem8[0x380F09] = 0x0;
+ mem8[0x380F0A] = 0x80;
+ mem8[0x380F0B] = 0x0;
+ mem8[0x380F0C] = 0xEE;
+ mem8[0x380F0D] = 0xDC;
+ mem8[0x380F0E] = 0xF9;
+ mem8[0x380F0F] = 0x4E;
+ mem8[0x380F10] = 0x11;
+ mem8[0x380F11] = 0x0;
+ mem8[0x380F12] = 0xD0;
+ mem8[0x380F13] = 0xDA;
+ mem8[0x380F20] = 0x39;
+ mem8[0x380F21] = 0xC;
+ mem8[0x380F22] = 0xA;
+ mem8[0x380F23] = 0x0;
+ mem8[0x380F24] = 0x80;
+ mem8[0x380F25] = 0x0;
+ mem8[0x380F26] = 0xEE;
+ mem8[0x380F27] = 0xDC;
+ mem8[0x380F28] = 0xF9;
+ mem8[0x380F29] = 0x4E;
+ mem8[0x380F2A] = 0x11;
+ mem8[0x380F2B] = 0x0;
+ mem8[0x380F2C] = 0x5C;
+ mem8[0x380F2D] = 0xDE;
+ mem8[0x380F30] = 0x39;
+ mem8[0x380F31] = 0xC;
+ mem8[0x380F32] = 0x9;
+ mem8[0x380F33] = 0x0;
+ mem8[0x380F34] = 0x80;
+ mem8[0x380F35] = 0x0;
+ mem8[0x380F36] = 0xEE;
+ mem8[0x380F37] = 0xDC;
+ mem8[0x380F38] = 0xF9;
+ mem8[0x380F39] = 0x4E;
+ mem8[0x380F3A] = 0x11;
+ mem8[0x380F3B] = 0x0;
+ mem8[0x380F3C] = 0x66;
+ mem8[0x380F3D] = 0xDE;
+ mem8[0x380F40] = 0x39;
+ mem8[0x380F41] = 0xC;
+ mem8[0x380F42] = 0xA;
+ mem8[0x380F43] = 0x0;
+ mem8[0x380F44] = 0x80;
+ mem8[0x380F45] = 0x0;
+ mem8[0x380F46] = 0xEE;
+ mem8[0x380F47] = 0xDC;
+ mem8[0x380F48] = 0xF9;
+ mem8[0x380F49] = 0x4E;
+ mem8[0x380F4A] = 0x11;
+ mem8[0x380F4B] = 0x0;
+ mem8[0x380F4C] = 0x78;
+ mem8[0x380F4D] = 0xDF;
+ mem8[0x380F50] = 0x39;
+ mem8[0x380F51] = 0xC;
+ mem8[0x380F52] = 0x9;
+ mem8[0x380F53] = 0x0;
+ mem8[0x380F54] = 0x80;
+ mem8[0x380F55] = 0x0;
+ mem8[0x380F56] = 0xEE;
+ mem8[0x380F57] = 0xDC;
+ mem8[0x380F58] = 0xF9;
+ mem8[0x380F59] = 0x4E;
+ mem8[0x380F5A] = 0x11;
+ mem8[0x380F5B] = 0x0;
+ mem8[0x380F5C] = 0x82;
+ mem8[0x380F5D] = 0xDF;
+ mem8[0x380F60] = 0x6C;
+ mem8[0x380F61] = 0x4A;
+ mem8[0x380F62] = 0x18;
+ mem8[0x380F63] = 0x0;
+ mem8[0x380F64] = 0x4;
+ mem8[0x380F65] = 0x67;
+ mem8[0x380F66] = 0x6C;
+ mem8[0x380F67] = 0x42;
+ mem8[0x380F68] = 0x18;
+ mem8[0x380F69] = 0x0;
+ mem8[0x380F6A] = 0xAC;
+ mem8[0x380F6B] = 0x8;
+ mem8[0x380F6C] = 0x5;
+ mem8[0x380F6D] = 0x0;
+ mem8[0x380F6E] = 0x10;
+ mem8[0x380F6F] = 0x1;
+ mem8[0x380F70] = 0xF9;
+ mem8[0x380F71] = 0x4E;
+ mem8[0x380F72] = 0x12;
+ mem8[0x380F73] = 0x0;
+ mem8[0x380F74] = 0xAA;
+ mem8[0x380F75] = 0xE7;
+}
+
+void pgm_arm_type1_state::kovshp_fix_patch()
+{
+ UINT8 *mem8 = (UINT8 *)(memregion("prot")->base());
+
+ mem8[0x2892] = 0x1;
+ mem8[0x2893] = 0x1;
+ mem8[0x289F] = 0x1;
+ mem8[0x28A5] = 0x1;
+ mem8[0x28A8] = 0x1;
+ mem8[0x28A9] = 0x1;
+ mem8[0x2BF3] = 0x48;
+ mem8[0x2BF5] = 0x80;
+ mem8[0x2C92] = 0xF;
+ mem8[0x2C93] = 0x40;
+ mem8[0x2CE1] = 0x6C;
+ mem8[0x2CE2] = 0x48;
+}
+
+DRIVER_INIT_MEMBER(pgm_arm_type1_state,kovshp)
+{
+ pgm_basic_init();
+ kovshp_fix_patch(); // extra line here
+ pgm_kovshp_decrypt(machine());
+ pgm_arm7_type1_latch_init();
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x4f0008, 0x4f0009, read16_delegate(FUNC(pgm_arm_type1_state::kovsh_fake_region_r),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x500000, 0x500005, write16_delegate(FUNC(pgm_arm_type1_state::kovshp_asic27a_write_word),this));
+}
+
+DRIVER_INIT_MEMBER(pgm_arm_type1_state,kovassga)
+{
+ pgm_basic_init();
+ kovshp_fix_patch(); // extra line here
+// pgm_kovshp_decrypt(machine());
+ pgm_arm7_type1_latch_init();
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x4f0008, 0x4f0009, read16_delegate(FUNC(pgm_arm_type1_state::kovsh_fake_region_r),this));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0x500000, 0x500005, write16_delegate(FUNC(pgm_arm_type1_state::kovshp_asic27a_write_word),this));
+}
+
+void pgm_arm_type1_state::pgm_decode_kovassg_program()
+{
+ int i;
+ UINT16 *src = (UINT16 *)(memregion("maincpu")->base() + 0x100000);
+ std::vector<UINT16> dst(0x400000);
+
+ for (i = 0; i < 0x400000 / 2; i++)
+ {
+ int j = (i & ~0xffff) | (BITSWAP16(i, 15, 14, 13, 12, 11, 10, 7, 3, 1, 9, 4, 8, 6, 0, 2, 5) ^ 0x019c);
+
+ dst[j] = BITSWAP16(src[j], 13, 9, 10, 11, 2, 0, 12 ,5, 4, 1, 14, 8, 15, 6, 3, 7) ^ 0x9d05;
+ }
+
+ memcpy( src, &dst[0], 0x400000 );
+}
+
+DRIVER_INIT_MEMBER(pgm_arm_type1_state,kovassg)
+{
+ pgm_decode_kovassg_program();
+ pgm_decode_kovlsqh2_tiles();
+
+ pgm_decode_kovlsqh2_sprites(memregion("sprcol")->base() + 0x0000000);
+ pgm_decode_kovlsqh2_sprites(memregion("sprcol")->base() + 0x0800000);
+ pgm_decode_kovlsqh2_sprites(memregion("sprcol")->base() + 0x1000000);
+ pgm_decode_kovlsqh2_sprites(memregion("sprcol")->base() + 0x1800000);
+ pgm_decode_kovlsqh2_sprites(memregion("sprcol")->base() + 0x2000000);
+ pgm_decode_kovlsqh2_sprites(memregion("sprcol")->base() + 0x2800000);
+ pgm_decode_kovlsqh2_sprites(memregion("sprmask")->base() + 0x0000000);
+ pgm_decode_kovlsqh2_sprites(memregion("sprmask")->base() + 0x0800000);
+
+ pgm_decode_kovlsqh2_samples();
+ pgm_basic_init();
+ pgm_arm7_type1_latch_init();
+ /* we only have a china internal ROM dumped for now.. allow region to be changed for debugging (to ensure all alt titles / regions can be seen) */
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x4f0008, 0x4f0009, read16_delegate(FUNC(pgm_arm_type1_state::kovsh_fake_region_r),this));
+}
+
+DRIVER_INIT_MEMBER(pgm_arm_type1_state,kovplus)
+{
+ pgm_basic_init();
+ kovplus_fix_patch(); // extra line here
+ pgm_kov_decrypt(machine());
+ pgm_arm7_type1_latch_init();
+ m_curslots = 0;
+ m_kov_c0_value = 0;
+ m_kov_cb_value = 0;
+ m_kov_fe_value = 0;
+ arm_sim_handler = &pgm_arm_type1_state::command_handler_kov;
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x500000, 0x500005, read16_delegate(FUNC(pgm_arm_type1_state::pgm_arm7_type1_sim_r),this), write16_delegate(FUNC(pgm_arm_type1_state::pgm_arm7_type1_sim_w),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x4f0000, 0x4f003f, read16_delegate(FUNC(pgm_arm_type1_state::pgm_arm7_type1_sim_protram_r),this));
+}
+
+DRIVER_INIT_MEMBER(pgm_arm_type1_state,kovboot)
+{
+ pgm_basic_init();
+// pgm_kov_decrypt(machine());
+ kovboot_fix_patch(); // extra line here
+ pgm_arm7_type1_latch_init();
+ m_curslots = 0;
+ m_kov_c0_value = 0;
+ m_kov_cb_value = 0;
+ m_kov_fe_value = 0;
+ arm_sim_handler = &pgm_arm_type1_state::command_handler_kov;
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x500000, 0x500005, read16_delegate(FUNC(pgm_arm_type1_state::pgm_arm7_type1_sim_r),this), write16_delegate(FUNC(pgm_arm_type1_state::pgm_arm7_type1_sim_w),this));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x4f0000, 0x4f003f, read16_delegate(FUNC(pgm_arm_type1_state::pgm_arm7_type1_sim_protram_r),this));
+
+}
+#endif
+
+//PSmame (c) galston90
+
+/*****************************************
+ The Killing Blade
+*****************************************/
+
+ROM_START( killblds01 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_BYTE( "kbhc01.u3", 0x100001, 0x080000, CRC(fb49caf7) SHA1(cdeb5a5dcd1679f66ab81dbb68c3c77324c6a44a) )
+ ROM_LOAD16_BYTE( "kb_u6_v104.u6", 0x100000, 0x080000, CRC(31ecc978) SHA1(82666d534e4151775063af6d39f575faba0f1047) )
+ ROM_LOAD16_BYTE( "kb_u4_v104.u4", 0x200001, 0x080000, CRC(1ed8b2e7) SHA1(331c037640cfc1fe743cd0e65a1156c470b3303e) )
+ ROM_LOAD16_BYTE( "kb_u5_v104.u5", 0x200000, 0x080000, CRC(a0bafc29) SHA1(b20db7c16353c6f87ed3c08c9d037b07336711f1) )
+
+ ROM_REGION( 0x010000, "igs022data", 0 ) /* Protection Data */
+ ROM_LOAD( "kb_u2_v104.u2", 0x000000, 0x010000, CRC(c970f6d5) SHA1(399fc6f80262784c566363c847dc3fdc4fb37494) )
+
+ ROM_REGION( 0x800000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0300.u14", 0x180000, 0x400000, CRC(0922f7d9) SHA1(4302b4b7369e13f315fad14f7d6cad1321101d24) )
+
+ ROM_REGION( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a0300.u9", 0x0000000, 0x0400000, CRC(3f9455d3) SHA1(3718ce00ad93975383aafc14e5a74dc297b011a1) )
+ ROM_LOAD( "a0301.u10", 0x0400000, 0x0400000, CRC(92776889) SHA1(6d677837fefff47bfd1c6166322f69f89989a5e2) )
+ ROM_LOAD( "a0303.u11", 0x0800000, 0x0400000, CRC(33f5cc69) SHA1(9cacd5058d4bb25b77f71658bbbbd4b38d0a6b6a) )
+ ROM_LOAD( "a0306.u12", 0x0c00000, 0x0400000, CRC(cc018a8e) SHA1(37752d46f238fb57c0ab5a4f96b1e013f2077347) )
+ ROM_LOAD( "a0307.u2", 0x1000000, 0x0400000, CRC(bc772e39) SHA1(079cc42a190cb916f02b59bca8fa90e524acefe9) )
+// ROM_LOAD( "a0302.u3", 0x1400000, 0x0200000, CRC(a4810e38) SHA1(c31fe641feab2c93795fc35bf71d4f37af1056d4) ) // from lord of gun! unused..
+// ROM_LOAD( "a0304.u4", 0x1600000, 0x0200000, CRC(3096de1c) SHA1(d010990d21cfda9cb8ab5b4bc0e329c23b7719f5) ) // from lord of gun! unused..
+// ROM_LOAD( "a0305.u5", 0x1800000, 0x0200000, CRC(2234531e) SHA1(58a82e31a1c0c1a4dd026576319f4e7ecffd140e) ) // from lord of gun! unused..
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b0300.u13", 0x0000000, 0x0400000, CRC(7f876981) SHA1(43555a200929ad5ecc42137fc9aeb42dc4f50d20) )
+ ROM_LOAD( "b0302.u14", 0x0400000, 0x0400000, CRC(eea9c502) SHA1(04b3972c7111ea59a3cceab6ad124080c4ce3520) )
+ ROM_LOAD( "b0303.u15", 0x0800000, 0x0200000, CRC(77a9652e) SHA1(2342f643d37945fbda224a5034c013796e5134ca) )
+// ROM_LOAD( "b0301.u8", 0x0a00000, 0x0200000, CRC(400abe33) SHA1(20de1eb626424ea41bd55eb3cecd6b50be744ee0) ) // from lord of gun! unused..
+
+ ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0300.u1", 0x400000, 0x400000, CRC(93159695) SHA1(50c5976c9b681bd3d1ebefa3bfa9fe6e72dcb96f) )
+ROM_END
+
+ /****************************************
+ Knights of Valour 2 Plus
+*****************************************/
+
+ROM_START( kov2s01 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p1200hc01.201", 0x100000, 0x400000, CRC(966d96f8) SHA1(b356a565f6393a230521659722cf95027e29efdc) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ // supplied rom freezes mame when attract mode starts, this one works
+ ROM_LOAD( "kov2p_igs027a_china.bin", 0x000000, 0x04000, CRC(19a0bd95) SHA1(83e9f22512832a51d41c588debe8be7adb3b1df7) )
+
+ ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */
+ ROM_LOAD( "v200-16.rom", 0x000000, 0x200000, CRC(16a0c11f) SHA1(ce449cef76ebd5657d49b57951e2eb0f132e203e) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t1200.rom", 0x180000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) )
+
+ ROM_REGION( 0x2800000, "sprcol", 0 )
+ ROM_LOAD( "a1200.rom", 0x0000000, 0x0800000, CRC(ceeb81d8) SHA1(5476729443fc1bc9593ae10fbf7cbc5d7290b017) )
+ ROM_LOAD( "a1201.rom", 0x0800000, 0x0800000, CRC(21063ca7) SHA1(cf561b44902425a920d5cbea5bf65dd9530b2289) )
+ ROM_LOAD( "a1202.rom", 0x1000000, 0x0800000, CRC(4bb92fae) SHA1(f0b6d72ed425de1c69dc8f8d5795ea760a4a59b0) )
+ ROM_LOAD( "a1203.rom", 0x1800000, 0x0800000, CRC(e73cb627) SHA1(4c6e48b845a5d1e8f9899010fbf273d54c2b8899) )
+ ROM_LOAD( "a1204.rom", 0x2000000, 0x0200000, CRC(14b4b5bb) SHA1(d7db5740eec971f2782fb2885ee3af8f2a796550) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b1200.rom", 0x0000000, 0x0800000, CRC(bed7d994) SHA1(019dfba8154256d64cd249eb0fa4c451edce34b8) )
+ ROM_LOAD( "b1201.rom", 0x0800000, 0x0800000, CRC(f251eb57) SHA1(56a5fc14ab7822f83379cecb26638e5bb266349a) )
+
+ ROM_REGION( 0x1000000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m1200.rom", 0x800000, 0x800000, CRC(b0d88720) SHA1(44ab137e3f8e15b7cb5697ffbd9b1143d8210c4f) )
+ROM_END
+
+ROM_START( kov2s02 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p1200hc02.201", 0x100000, 0x400000, CRC(c68c57f4) SHA1(a3884eb101314cfdf11be18a678e2970e44da1c4) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ // supplied rom freezes mame when attract mode starts, this one works
+ ROM_LOAD( "kov2p_igs027a_china.bin", 0x000000, 0x04000, CRC(19a0bd95) SHA1(83e9f22512832a51d41c588debe8be7adb3b1df7) )
+
+ ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */
+ ROM_LOAD( "v200-16.rom", 0x000000, 0x200000, CRC(16a0c11f) SHA1(ce449cef76ebd5657d49b57951e2eb0f132e203e) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t1200.rom", 0x180000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) )
+
+ ROM_REGION( 0x2800000, "sprcol", 0 )
+ ROM_LOAD( "a1200.rom", 0x0000000, 0x0800000, CRC(ceeb81d8) SHA1(5476729443fc1bc9593ae10fbf7cbc5d7290b017) )
+ ROM_LOAD( "a1201.rom", 0x0800000, 0x0800000, CRC(21063ca7) SHA1(cf561b44902425a920d5cbea5bf65dd9530b2289) )
+ ROM_LOAD( "a1202.rom", 0x1000000, 0x0800000, CRC(4bb92fae) SHA1(f0b6d72ed425de1c69dc8f8d5795ea760a4a59b0) )
+ ROM_LOAD( "a1203.rom", 0x1800000, 0x0800000, CRC(e73cb627) SHA1(4c6e48b845a5d1e8f9899010fbf273d54c2b8899) )
+ ROM_LOAD( "a1204.rom", 0x2000000, 0x0200000, CRC(14b4b5bb) SHA1(d7db5740eec971f2782fb2885ee3af8f2a796550) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b1200.rom", 0x0000000, 0x0800000, CRC(bed7d994) SHA1(019dfba8154256d64cd249eb0fa4c451edce34b8) )
+ ROM_LOAD( "b1201.rom", 0x0800000, 0x0800000, CRC(f251eb57) SHA1(56a5fc14ab7822f83379cecb26638e5bb266349a) )
+
+ ROM_REGION( 0x1000000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m1200.rom", 0x800000, 0x800000, CRC(b0d88720) SHA1(44ab137e3f8e15b7cb5697ffbd9b1143d8210c4f) )
+ROM_END
+
+ROM_START( kov2s03 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p1200hc03.201", 0x100000, 0x400000, CRC(93947935) SHA1(00ebf73dd9988307f1a94e20eae1d34a78bd89fe) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ // supplied rom freezes mame when attract mode starts, this one works
+ ROM_LOAD( "kov2p_igs027a_china.bin", 0x000000, 0x04000, CRC(19a0bd95) SHA1(83e9f22512832a51d41c588debe8be7adb3b1df7) )
+
+ ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */
+ ROM_LOAD( "v200-16.rom", 0x000000, 0x200000, CRC(16a0c11f) SHA1(ce449cef76ebd5657d49b57951e2eb0f132e203e) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t1200.rom", 0x180000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) )
+
+ ROM_REGION( 0x2800000, "sprcol", 0 )
+ ROM_LOAD( "a1200.rom", 0x0000000, 0x0800000, CRC(ceeb81d8) SHA1(5476729443fc1bc9593ae10fbf7cbc5d7290b017) )
+ ROM_LOAD( "a1201.rom", 0x0800000, 0x0800000, CRC(21063ca7) SHA1(cf561b44902425a920d5cbea5bf65dd9530b2289) )
+ ROM_LOAD( "a1202.rom", 0x1000000, 0x0800000, CRC(4bb92fae) SHA1(f0b6d72ed425de1c69dc8f8d5795ea760a4a59b0) )
+ ROM_LOAD( "a1203.rom", 0x1800000, 0x0800000, CRC(e73cb627) SHA1(4c6e48b845a5d1e8f9899010fbf273d54c2b8899) )
+ ROM_LOAD( "a1204.rom", 0x2000000, 0x0200000, CRC(14b4b5bb) SHA1(d7db5740eec971f2782fb2885ee3af8f2a796550) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b1200.rom", 0x0000000, 0x0800000, CRC(bed7d994) SHA1(019dfba8154256d64cd249eb0fa4c451edce34b8) )
+ ROM_LOAD( "b1201.rom", 0x0800000, 0x0800000, CRC(f251eb57) SHA1(56a5fc14ab7822f83379cecb26638e5bb266349a) )
+
+ ROM_REGION( 0x1000000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m1200.rom", 0x800000, 0x800000, CRC(b0d88720) SHA1(44ab137e3f8e15b7cb5697ffbd9b1143d8210c4f) )
+ROM_END
+
+ROM_START( kov2s04 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p1200hc04.201", 0x100000, 0x400000, CRC(e85a7fd7) SHA1(40bcf31eb53f5fd317521eda38438e889573ead0) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ // supplied rom freezes mame when attract mode starts, this one works
+ ROM_LOAD( "kov2p_igs027a_china.bin", 0x000000, 0x04000, CRC(19a0bd95) SHA1(83e9f22512832a51d41c588debe8be7adb3b1df7) )
+
+ ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */
+ ROM_LOAD( "v200-16.rom", 0x000000, 0x200000, CRC(16a0c11f) SHA1(ce449cef76ebd5657d49b57951e2eb0f132e203e) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t1200.rom", 0x180000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) )
+
+ ROM_REGION( 0x2800000, "sprcol", 0 )
+ ROM_LOAD( "a1200.rom", 0x0000000, 0x0800000, CRC(ceeb81d8) SHA1(5476729443fc1bc9593ae10fbf7cbc5d7290b017) )
+ ROM_LOAD( "a1201.rom", 0x0800000, 0x0800000, CRC(21063ca7) SHA1(cf561b44902425a920d5cbea5bf65dd9530b2289) )
+ ROM_LOAD( "a1202.rom", 0x1000000, 0x0800000, CRC(4bb92fae) SHA1(f0b6d72ed425de1c69dc8f8d5795ea760a4a59b0) )
+ ROM_LOAD( "a1203.rom", 0x1800000, 0x0800000, CRC(e73cb627) SHA1(4c6e48b845a5d1e8f9899010fbf273d54c2b8899) )
+ ROM_LOAD( "a1204.rom", 0x2000000, 0x0200000, CRC(14b4b5bb) SHA1(d7db5740eec971f2782fb2885ee3af8f2a796550) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b1200.rom", 0x0000000, 0x0800000, CRC(bed7d994) SHA1(019dfba8154256d64cd249eb0fa4c451edce34b8) )
+ ROM_LOAD( "b1201.rom", 0x0800000, 0x0800000, CRC(f251eb57) SHA1(56a5fc14ab7822f83379cecb26638e5bb266349a) )
+
+ ROM_REGION( 0x1000000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m1200.rom", 0x800000, 0x800000, CRC(b0d88720) SHA1(44ab137e3f8e15b7cb5697ffbd9b1143d8210c4f) )
+ROM_END
+
+ROM_START( kov2s05 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p1200hc05.201", 0x100000, 0x400000, CRC(4f9cc851) SHA1(6365f6c7ae9488355b963fef84543d42a32afeb4) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ // supplied rom freezes mame when attract mode starts, this one works
+ ROM_LOAD( "kov2p_igs027a_china.bin", 0x000000, 0x04000, CRC(19a0bd95) SHA1(83e9f22512832a51d41c588debe8be7adb3b1df7) )
+
+ ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */
+ ROM_LOAD( "v200-16.rom", 0x000000, 0x200000, CRC(16a0c11f) SHA1(ce449cef76ebd5657d49b57951e2eb0f132e203e) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t1200.rom", 0x180000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) )
+
+ ROM_REGION( 0x2800000, "sprcol", 0 )
+ ROM_LOAD( "a1200.rom", 0x0000000, 0x0800000, CRC(ceeb81d8) SHA1(5476729443fc1bc9593ae10fbf7cbc5d7290b017) )
+ ROM_LOAD( "a1201.rom", 0x0800000, 0x0800000, CRC(21063ca7) SHA1(cf561b44902425a920d5cbea5bf65dd9530b2289) )
+ ROM_LOAD( "a1202.rom", 0x1000000, 0x0800000, CRC(4bb92fae) SHA1(f0b6d72ed425de1c69dc8f8d5795ea760a4a59b0) )
+ ROM_LOAD( "a1203.rom", 0x1800000, 0x0800000, CRC(e73cb627) SHA1(4c6e48b845a5d1e8f9899010fbf273d54c2b8899) )
+ ROM_LOAD( "a1204.rom", 0x2000000, 0x0200000, CRC(14b4b5bb) SHA1(d7db5740eec971f2782fb2885ee3af8f2a796550) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b1200.rom", 0x0000000, 0x0800000, CRC(bed7d994) SHA1(019dfba8154256d64cd249eb0fa4c451edce34b8) )
+ ROM_LOAD( "b1201.rom", 0x0800000, 0x0800000, CRC(f251eb57) SHA1(56a5fc14ab7822f83379cecb26638e5bb266349a) )
+
+ ROM_REGION( 0x1000000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m1200.rom", 0x800000, 0x800000, CRC(b0d88720) SHA1(44ab137e3f8e15b7cb5697ffbd9b1143d8210c4f) )
+ROM_END
+
+ROM_START( kov2s06 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p1200hc06.201", 0x100000, 0x400000, CRC(f8f78955) SHA1(86d16a8417836795936c7d7eebc1f0710c4b7ee9) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ // supplied rom freezes mame when attract mode starts, this one works
+ ROM_LOAD( "kov2p_igs027a_china.bin", 0x000000, 0x04000, CRC(19a0bd95) SHA1(83e9f22512832a51d41c588debe8be7adb3b1df7) )
+
+ ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */
+ ROM_LOAD( "v200-16.rom", 0x000000, 0x200000, CRC(16a0c11f) SHA1(ce449cef76ebd5657d49b57951e2eb0f132e203e) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t1200.rom", 0x180000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) )
+
+ ROM_REGION( 0x2800000, "sprcol", 0 )
+ ROM_LOAD( "a1200.rom", 0x0000000, 0x0800000, CRC(ceeb81d8) SHA1(5476729443fc1bc9593ae10fbf7cbc5d7290b017) )
+ ROM_LOAD( "a1201.rom", 0x0800000, 0x0800000, CRC(21063ca7) SHA1(cf561b44902425a920d5cbea5bf65dd9530b2289) )
+ ROM_LOAD( "a1202.rom", 0x1000000, 0x0800000, CRC(4bb92fae) SHA1(f0b6d72ed425de1c69dc8f8d5795ea760a4a59b0) )
+ ROM_LOAD( "a1203.rom", 0x1800000, 0x0800000, CRC(e73cb627) SHA1(4c6e48b845a5d1e8f9899010fbf273d54c2b8899) )
+ ROM_LOAD( "a1204.rom", 0x2000000, 0x0200000, CRC(14b4b5bb) SHA1(d7db5740eec971f2782fb2885ee3af8f2a796550) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b1200.rom", 0x0000000, 0x0800000, CRC(bed7d994) SHA1(019dfba8154256d64cd249eb0fa4c451edce34b8) )
+ ROM_LOAD( "b1201.rom", 0x0800000, 0x0800000, CRC(f251eb57) SHA1(56a5fc14ab7822f83379cecb26638e5bb266349a) )
+
+ ROM_REGION( 0x1000000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m1200.rom", 0x800000, 0x800000, CRC(b0d88720) SHA1(44ab137e3f8e15b7cb5697ffbd9b1143d8210c4f) )
+ROM_END
+
+ROM_START( kov2s07 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p1200hc07.201", 0x100000, 0x400000, CRC(ecb3a04e) SHA1(529b24d980cde4489db66a8ad596c054b7c5ba01) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ // supplied rom freezes mame when attract mode starts, this one works
+ ROM_LOAD( "kov2p_igs027a_china.bin", 0x000000, 0x04000, CRC(19a0bd95) SHA1(83e9f22512832a51d41c588debe8be7adb3b1df7) )
+
+ ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */
+ ROM_LOAD( "v200-16.rom", 0x000000, 0x200000, CRC(16a0c11f) SHA1(ce449cef76ebd5657d49b57951e2eb0f132e203e) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t1200.rom", 0x180000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) )
+
+ ROM_REGION( 0x2800000, "sprcol", 0 )
+ ROM_LOAD( "a1200.rom", 0x0000000, 0x0800000, CRC(ceeb81d8) SHA1(5476729443fc1bc9593ae10fbf7cbc5d7290b017) )
+ ROM_LOAD( "a1201.rom", 0x0800000, 0x0800000, CRC(21063ca7) SHA1(cf561b44902425a920d5cbea5bf65dd9530b2289) )
+ ROM_LOAD( "a1202.rom", 0x1000000, 0x0800000, CRC(4bb92fae) SHA1(f0b6d72ed425de1c69dc8f8d5795ea760a4a59b0) )
+ ROM_LOAD( "a1203.rom", 0x1800000, 0x0800000, CRC(e73cb627) SHA1(4c6e48b845a5d1e8f9899010fbf273d54c2b8899) )
+ ROM_LOAD( "a1204.rom", 0x2000000, 0x0200000, CRC(14b4b5bb) SHA1(d7db5740eec971f2782fb2885ee3af8f2a796550) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b1200.rom", 0x0000000, 0x0800000, CRC(bed7d994) SHA1(019dfba8154256d64cd249eb0fa4c451edce34b8) )
+ ROM_LOAD( "b1201.rom", 0x0800000, 0x0800000, CRC(f251eb57) SHA1(56a5fc14ab7822f83379cecb26638e5bb266349a) )
+
+ ROM_REGION( 0x1000000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m1200.rom", 0x800000, 0x800000, CRC(b0d88720) SHA1(44ab137e3f8e15b7cb5697ffbd9b1143d8210c4f) )
+ROM_END
+
+ROM_START( kov2s08 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p1200hc08.201", 0x100000, 0x400000, CRC(6396688b) SHA1(c5975d4fe9f805d0daf37fc5907f9097d4d1f95c) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ // supplied rom freezes mame when attract mode starts, this one works
+ ROM_LOAD( "kov2p_igs027a_china.bin", 0x000000, 0x04000, CRC(19a0bd95) SHA1(83e9f22512832a51d41c588debe8be7adb3b1df7) )
+
+ ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */
+ ROM_LOAD( "v200-16.rom", 0x000000, 0x200000, CRC(16a0c11f) SHA1(ce449cef76ebd5657d49b57951e2eb0f132e203e) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t1200.rom", 0x180000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) )
+
+ ROM_REGION( 0x2800000, "sprcol", 0 )
+ ROM_LOAD( "a1200.rom", 0x0000000, 0x0800000, CRC(ceeb81d8) SHA1(5476729443fc1bc9593ae10fbf7cbc5d7290b017) )
+ ROM_LOAD( "a1201.rom", 0x0800000, 0x0800000, CRC(21063ca7) SHA1(cf561b44902425a920d5cbea5bf65dd9530b2289) )
+ ROM_LOAD( "a1202.rom", 0x1000000, 0x0800000, CRC(4bb92fae) SHA1(f0b6d72ed425de1c69dc8f8d5795ea760a4a59b0) )
+ ROM_LOAD( "a1203.rom", 0x1800000, 0x0800000, CRC(e73cb627) SHA1(4c6e48b845a5d1e8f9899010fbf273d54c2b8899) )
+ ROM_LOAD( "a1204.rom", 0x2000000, 0x0200000, CRC(14b4b5bb) SHA1(d7db5740eec971f2782fb2885ee3af8f2a796550) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b1200.rom", 0x0000000, 0x0800000, CRC(bed7d994) SHA1(019dfba8154256d64cd249eb0fa4c451edce34b8) )
+ ROM_LOAD( "b1201.rom", 0x0800000, 0x0800000, CRC(f251eb57) SHA1(56a5fc14ab7822f83379cecb26638e5bb266349a) )
+
+ ROM_REGION( 0x1000000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m1200.rom", 0x800000, 0x800000, CRC(b0d88720) SHA1(44ab137e3f8e15b7cb5697ffbd9b1143d8210c4f) )
+ROM_END
+
+ROM_START( kov2s09 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p1200hc09.201", 0x100000, 0x400000, CRC(fe56006c) SHA1(bed646cfa8e5921eb2b29ae9ae2c605d69bd33b2) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ // supplied rom freezes mame when attract mode starts, this one works
+ ROM_LOAD( "kov2p_igs027a_china.bin", 0x000000, 0x04000, CRC(19a0bd95) SHA1(83e9f22512832a51d41c588debe8be7adb3b1df7) )
+
+ ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */
+ ROM_LOAD( "v200-16.rom", 0x000000, 0x200000, CRC(16a0c11f) SHA1(ce449cef76ebd5657d49b57951e2eb0f132e203e) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t1200.rom", 0x180000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) )
+
+ ROM_REGION( 0x2800000, "sprcol", 0 )
+ ROM_LOAD( "a1200.rom", 0x0000000, 0x0800000, CRC(ceeb81d8) SHA1(5476729443fc1bc9593ae10fbf7cbc5d7290b017) )
+ ROM_LOAD( "a1201.rom", 0x0800000, 0x0800000, CRC(21063ca7) SHA1(cf561b44902425a920d5cbea5bf65dd9530b2289) )
+ ROM_LOAD( "a1202.rom", 0x1000000, 0x0800000, CRC(4bb92fae) SHA1(f0b6d72ed425de1c69dc8f8d5795ea760a4a59b0) )
+ ROM_LOAD( "a1203.rom", 0x1800000, 0x0800000, CRC(e73cb627) SHA1(4c6e48b845a5d1e8f9899010fbf273d54c2b8899) )
+ ROM_LOAD( "a1204.rom", 0x2000000, 0x0200000, CRC(14b4b5bb) SHA1(d7db5740eec971f2782fb2885ee3af8f2a796550) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b1200.rom", 0x0000000, 0x0800000, CRC(bed7d994) SHA1(019dfba8154256d64cd249eb0fa4c451edce34b8) )
+ ROM_LOAD( "b1201.rom", 0x0800000, 0x0800000, CRC(f251eb57) SHA1(56a5fc14ab7822f83379cecb26638e5bb266349a) )
+
+ ROM_REGION( 0x1000000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m1200.rom", 0x800000, 0x800000, CRC(b0d88720) SHA1(44ab137e3f8e15b7cb5697ffbd9b1143d8210c4f) )
+ROM_END
+
+ROM_START( kov2s10 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p1200hc10.201", 0x100000, 0x400000, CRC(aa65f087) SHA1(140bc774d46b2ea8e704128247ab4792e771a1fb) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ // supplied rom freezes mame when attract mode starts, this one works
+ ROM_LOAD( "kov2p_igs027a_china.bin", 0x000000, 0x04000, CRC(19a0bd95) SHA1(83e9f22512832a51d41c588debe8be7adb3b1df7) )
+
+ ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */
+ ROM_LOAD( "v200-16.rom", 0x000000, 0x200000, CRC(16a0c11f) SHA1(ce449cef76ebd5657d49b57951e2eb0f132e203e) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t1200.rom", 0x180000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) )
+
+ ROM_REGION( 0x2800000, "sprcol", 0 )
+ ROM_LOAD( "a1200.rom", 0x0000000, 0x0800000, CRC(ceeb81d8) SHA1(5476729443fc1bc9593ae10fbf7cbc5d7290b017) )
+ ROM_LOAD( "a1201hc10.rom", 0x0800000, 0x0800000, CRC(82f0a878) SHA1(ddd13e404252a71de1b2b3b974b910f899f51c38) )
+ ROM_LOAD( "a1202.rom", 0x1000000, 0x0800000, CRC(4bb92fae) SHA1(f0b6d72ed425de1c69dc8f8d5795ea760a4a59b0) )
+ ROM_LOAD( "a1203.rom", 0x1800000, 0x0800000, CRC(e73cb627) SHA1(4c6e48b845a5d1e8f9899010fbf273d54c2b8899) )
+ ROM_LOAD( "a1204hc04.325", 0x2000000, 0x0800000, CRC(27527099) SHA1(e23cf366bdeaca1e009a5cec6b13164310a34384) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b1200.rom", 0x0000000, 0x0800000, CRC(bed7d994) SHA1(019dfba8154256d64cd249eb0fa4c451edce34b8) )
+ ROM_LOAD( "b1201.rom", 0x0800000, 0x0800000, CRC(f251eb57) SHA1(56a5fc14ab7822f83379cecb26638e5bb266349a) )
+
+ ROM_REGION( 0x1000000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m1200.rom", 0x800000, 0x800000, CRC(b0d88720) SHA1(44ab137e3f8e15b7cb5697ffbd9b1143d8210c4f) )
+ROM_END
+
+ROM_START( kov2s11 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p1200hc11.201", 0x100000, 0x400000, CRC(aa67fda8) SHA1(404ac2a8b5598b0c62595906c7c7230c54a540a9) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ // supplied rom freezes mame when attract mode starts, this one works
+ ROM_LOAD( "kov2p_igs027a_china.bin", 0x000000, 0x04000, CRC(19a0bd95) SHA1(83e9f22512832a51d41c588debe8be7adb3b1df7) )
+
+ ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */
+ ROM_LOAD( "v200-16.rom", 0x000000, 0x200000, CRC(16a0c11f) SHA1(ce449cef76ebd5657d49b57951e2eb0f132e203e) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t1200.rom", 0x180000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) )
+
+ ROM_REGION( 0x2800000, "sprcol", 0 )
+ ROM_LOAD( "a1200.rom", 0x0000000, 0x0800000, CRC(ceeb81d8) SHA1(5476729443fc1bc9593ae10fbf7cbc5d7290b017) )
+ ROM_LOAD( "a1201.rom", 0x0800000, 0x0800000, CRC(21063ca7) SHA1(cf561b44902425a920d5cbea5bf65dd9530b2289) )
+ ROM_LOAD( "a1202.rom", 0x1000000, 0x0800000, CRC(4bb92fae) SHA1(f0b6d72ed425de1c69dc8f8d5795ea760a4a59b0) )
+ ROM_LOAD( "a1203.rom", 0x1800000, 0x0800000, CRC(e73cb627) SHA1(4c6e48b845a5d1e8f9899010fbf273d54c2b8899) )
+ ROM_LOAD( "a1204.rom", 0x2000000, 0x0200000, CRC(14b4b5bb) SHA1(d7db5740eec971f2782fb2885ee3af8f2a796550) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b1200.rom", 0x0000000, 0x0800000, CRC(bed7d994) SHA1(019dfba8154256d64cd249eb0fa4c451edce34b8) )
+ ROM_LOAD( "b1201.rom", 0x0800000, 0x0800000, CRC(f251eb57) SHA1(56a5fc14ab7822f83379cecb26638e5bb266349a) )
+
+ ROM_REGION( 0x1000000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m1200.rom", 0x800000, 0x800000, CRC(b0d88720) SHA1(44ab137e3f8e15b7cb5697ffbd9b1143d8210c4f) )
+ROM_END
+
+ROM_START( kov2s12 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p1200hc12.201", 0x100000, 0x400000, CRC(e861186e) SHA1(3e40a2c441765d8ea56329a7b904db864cbb1999) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ // supplied rom freezes mame when attract mode starts, this one works
+ ROM_LOAD( "kov2p_igs027a_china.bin", 0x000000, 0x04000, CRC(19a0bd95) SHA1(83e9f22512832a51d41c588debe8be7adb3b1df7) )
+
+ ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */
+ ROM_LOAD( "v200-16.rom", 0x000000, 0x200000, CRC(16a0c11f) SHA1(ce449cef76ebd5657d49b57951e2eb0f132e203e) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t1200.rom", 0x180000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) )
+
+ ROM_REGION( 0x2800000, "sprcol", 0 )
+ ROM_LOAD( "a1200.rom", 0x0000000, 0x0800000, CRC(ceeb81d8) SHA1(5476729443fc1bc9593ae10fbf7cbc5d7290b017) )
+ ROM_LOAD( "a1201.rom", 0x0800000, 0x0800000, CRC(21063ca7) SHA1(cf561b44902425a920d5cbea5bf65dd9530b2289) )
+ ROM_LOAD( "a1202.rom", 0x1000000, 0x0800000, CRC(4bb92fae) SHA1(f0b6d72ed425de1c69dc8f8d5795ea760a4a59b0) )
+ ROM_LOAD( "a1203.rom", 0x1800000, 0x0800000, CRC(e73cb627) SHA1(4c6e48b845a5d1e8f9899010fbf273d54c2b8899) )
+ ROM_LOAD( "a1204.rom", 0x2000000, 0x0200000, CRC(14b4b5bb) SHA1(d7db5740eec971f2782fb2885ee3af8f2a796550) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b1200.rom", 0x0000000, 0x0800000, CRC(bed7d994) SHA1(019dfba8154256d64cd249eb0fa4c451edce34b8) )
+ ROM_LOAD( "b1201.rom", 0x0800000, 0x0800000, CRC(f251eb57) SHA1(56a5fc14ab7822f83379cecb26638e5bb266349a) )
+
+ ROM_REGION( 0x1000000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m1200.rom", 0x800000, 0x800000, CRC(b0d88720) SHA1(44ab137e3f8e15b7cb5697ffbd9b1143d8210c4f) )
+ROM_END
+
+ROM_START( kov2s13 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p1200hc13.201", 0x100000, 0x400000, CRC(643ea71b) SHA1(8bb95d908dee1e8553973a32287e080dd278eddf) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ // supplied rom freezes mame when attract mode starts, this one works
+ ROM_LOAD( "kov2p_igs027a_china.bin", 0x000000, 0x04000, CRC(19a0bd95) SHA1(83e9f22512832a51d41c588debe8be7adb3b1df7) )
+
+ ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */
+ ROM_LOAD( "v200-16.rom", 0x000000, 0x200000, CRC(16a0c11f) SHA1(ce449cef76ebd5657d49b57951e2eb0f132e203e) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t1200.rom", 0x180000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) )
+
+ ROM_REGION( 0x2800000, "sprcol", 0 )
+ ROM_LOAD( "a1200.rom", 0x0000000, 0x0800000, CRC(ceeb81d8) SHA1(5476729443fc1bc9593ae10fbf7cbc5d7290b017) )
+ ROM_LOAD( "a1201.rom", 0x0800000, 0x0800000, CRC(21063ca7) SHA1(cf561b44902425a920d5cbea5bf65dd9530b2289) )
+ ROM_LOAD( "a1202.rom", 0x1000000, 0x0800000, CRC(4bb92fae) SHA1(f0b6d72ed425de1c69dc8f8d5795ea760a4a59b0) )
+ ROM_LOAD( "a1203.rom", 0x1800000, 0x0800000, CRC(e73cb627) SHA1(4c6e48b845a5d1e8f9899010fbf273d54c2b8899) )
+ ROM_LOAD( "a1204.rom", 0x2000000, 0x0200000, CRC(14b4b5bb) SHA1(d7db5740eec971f2782fb2885ee3af8f2a796550) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b1200.rom", 0x0000000, 0x0800000, CRC(bed7d994) SHA1(019dfba8154256d64cd249eb0fa4c451edce34b8) )
+ ROM_LOAD( "b1201.rom", 0x0800000, 0x0800000, CRC(f251eb57) SHA1(56a5fc14ab7822f83379cecb26638e5bb266349a) )
+
+ ROM_REGION( 0x1000000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m1200.rom", 0x800000, 0x800000, CRC(b0d88720) SHA1(44ab137e3f8e15b7cb5697ffbd9b1143d8210c4f) )
+ROM_END
+
+ROM_START( kov2s14 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p1200hc14.201", 0x100000, 0x400000, CRC(4c2ab419) SHA1(e7dae915d4d0445a2aa685719bf8858873de22f6) )
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kov2p_igs027a_china.bin", 0x000000, 0x04000, CRC(19a0bd95) SHA1(83e9f22512832a51d41c588debe8be7adb3b1df7) )
+
+ ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */
+ ROM_LOAD( "v200-16.rom", 0x000000, 0x200000, CRC(16a0c11f) SHA1(ce449cef76ebd5657d49b57951e2eb0f132e203e) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t1200.rom", 0x180000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) )
+
+ ROM_REGION( 0x2800000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a1200.rom", 0x0000000, 0x0800000, CRC(ceeb81d8) SHA1(5476729443fc1bc9593ae10fbf7cbc5d7290b017) )
+ ROM_LOAD( "a1201.rom", 0x0800000, 0x0800000, CRC(21063ca7) SHA1(cf561b44902425a920d5cbea5bf65dd9530b2289) )
+ ROM_LOAD( "a1202.rom", 0x1000000, 0x0800000, CRC(4bb92fae) SHA1(f0b6d72ed425de1c69dc8f8d5795ea760a4a59b0) )
+ ROM_LOAD( "a1203.rom", 0x1800000, 0x0800000, CRC(e73cb627) SHA1(4c6e48b845a5d1e8f9899010fbf273d54c2b8899) )
+ ROM_LOAD( "a1204.rom", 0x2000000, 0x0200000, CRC(14b4b5bb) SHA1(d7db5740eec971f2782fb2885ee3af8f2a796550) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b1200.rom", 0x0000000, 0x0800000, CRC(bed7d994) SHA1(019dfba8154256d64cd249eb0fa4c451edce34b8) )
+ ROM_LOAD( "b1201.rom", 0x0800000, 0x0800000, CRC(f251eb57) SHA1(56a5fc14ab7822f83379cecb26638e5bb266349a) )
+
+ ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m1200.rom", 0x800000, 0x800000, CRC(b0d88720) SHA1(44ab137e3f8e15b7cb5697ffbd9b1143d8210c4f) )
+ROM_END
+
+ROM_START( kov2s15 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p1200hc15.201", 0x100000, 0x454f4d, CRC(2eb8fa40) SHA1(3aca7210c105b635f79a64621da5870a260ffbe5) )
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kov2p_igs027a_china.bin", 0x000000, 0x04000, CRC(19a0bd95) SHA1(83e9f22512832a51d41c588debe8be7adb3b1df7) )
+
+ ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */
+ ROM_LOAD( "v200-16.rom", 0x000000, 0x200000, CRC(16a0c11f) SHA1(ce449cef76ebd5657d49b57951e2eb0f132e203e) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t1200.rom", 0x180000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) )
+
+ ROM_REGION( 0x2800000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a1200.rom", 0x0000000, 0x0800000, CRC(ceeb81d8) SHA1(5476729443fc1bc9593ae10fbf7cbc5d7290b017) )
+ ROM_LOAD( "a1201.rom", 0x0800000, 0x0800000, CRC(21063ca7) SHA1(cf561b44902425a920d5cbea5bf65dd9530b2289) )
+ ROM_LOAD( "a1202.rom", 0x1000000, 0x0800000, CRC(4bb92fae) SHA1(f0b6d72ed425de1c69dc8f8d5795ea760a4a59b0) )
+ ROM_LOAD( "a1203.rom", 0x1800000, 0x0800000, CRC(e73cb627) SHA1(4c6e48b845a5d1e8f9899010fbf273d54c2b8899) )
+ ROM_LOAD( "a1204.rom", 0x2000000, 0x0200000, CRC(14b4b5bb) SHA1(d7db5740eec971f2782fb2885ee3af8f2a796550) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b1200.rom", 0x0000000, 0x0800000, CRC(bed7d994) SHA1(019dfba8154256d64cd249eb0fa4c451edce34b8) )
+ ROM_LOAD( "b1201.rom", 0x0800000, 0x0800000, CRC(f251eb57) SHA1(56a5fc14ab7822f83379cecb26638e5bb266349a) )
+
+ ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m1200.rom", 0x800000, 0x800000, CRC(b0d88720) SHA1(44ab137e3f8e15b7cb5697ffbd9b1143d8210c4f) )
+ROM_END
+
+ROM_START( kov2s16 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p1200hc16.201", 0x100000, 0x454f48, CRC(203fc30d) SHA1(58b5f344fe97be06acd7b34c1bee4835711367d3) )
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kov2p_igs027a_china.bin", 0x000000, 0x04000, CRC(19a0bd95) SHA1(83e9f22512832a51d41c588debe8be7adb3b1df7) )
+
+ ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */
+ ROM_LOAD( "v200-16.rom", 0x000000, 0x200000, CRC(16a0c11f) SHA1(ce449cef76ebd5657d49b57951e2eb0f132e203e) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t1200.rom", 0x180000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) )
+
+ ROM_REGION( 0x2800000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a1200.rom", 0x0000000, 0x0800000, CRC(ceeb81d8) SHA1(5476729443fc1bc9593ae10fbf7cbc5d7290b017) )
+ ROM_LOAD( "a1201.rom", 0x0800000, 0x0800000, CRC(21063ca7) SHA1(cf561b44902425a920d5cbea5bf65dd9530b2289) )
+ ROM_LOAD( "a1202.rom", 0x1000000, 0x0800000, CRC(4bb92fae) SHA1(f0b6d72ed425de1c69dc8f8d5795ea760a4a59b0) )
+ ROM_LOAD( "a1203.rom", 0x1800000, 0x0800000, CRC(e73cb627) SHA1(4c6e48b845a5d1e8f9899010fbf273d54c2b8899) )
+ ROM_LOAD( "a1204.rom", 0x2000000, 0x0200000, CRC(14b4b5bb) SHA1(d7db5740eec971f2782fb2885ee3af8f2a796550) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b1200.rom", 0x0000000, 0x0800000, CRC(bed7d994) SHA1(019dfba8154256d64cd249eb0fa4c451edce34b8) )
+ ROM_LOAD( "b1201.rom", 0x0800000, 0x0800000, CRC(f251eb57) SHA1(56a5fc14ab7822f83379cecb26638e5bb266349a) )
+
+ ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m1200.rom", 0x800000, 0x800000, CRC(b0d88720) SHA1(44ab137e3f8e15b7cb5697ffbd9b1143d8210c4f) )
+ROM_END
+
+ROM_START( kov2s17 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p1200hc17.201", 0x100000, 0x454F48, CRC(0f69ac48) SHA1(75860d5e5c1585b6bd9e71daff078a54fcadce8e) )
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kov2p_igs027a_china.bin", 0x000000, 0x04000, CRC(19a0bd95) SHA1(83e9f22512832a51d41c588debe8be7adb3b1df7) )
+
+ ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */
+ ROM_LOAD( "v200-16.rom", 0x000000, 0x200000, CRC(16a0c11f) SHA1(ce449cef76ebd5657d49b57951e2eb0f132e203e) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t1200.rom", 0x180000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) )
+
+ ROM_REGION( 0x2800000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a1200.rom", 0x0000000, 0x0800000, CRC(ceeb81d8) SHA1(5476729443fc1bc9593ae10fbf7cbc5d7290b017) )
+ ROM_LOAD( "a1201hc01.325", 0x0800000, 0x0800000, CRC(82f0a878) SHA1(ddd13e404252a71de1b2b3b974b910f899f51c38) )
+ ROM_LOAD( "a1202.rom", 0x1000000, 0x0800000, CRC(4bb92fae) SHA1(f0b6d72ed425de1c69dc8f8d5795ea760a4a59b0) )
+ ROM_LOAD( "a1203.rom", 0x1800000, 0x0800000, CRC(e73cb627) SHA1(4c6e48b845a5d1e8f9899010fbf273d54c2b8899) )
+ ROM_LOAD( "a1204hc04.325", 0x2000000, 0x0800000, CRC(27527099) SHA1(e23cf366bdeaca1e009a5cec6b13164310a34384) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b1200.rom", 0x0000000, 0x0800000, CRC(bed7d994) SHA1(019dfba8154256d64cd249eb0fa4c451edce34b8) )
+ ROM_LOAD( "b1201.rom", 0x0800000, 0x0800000, CRC(f251eb57) SHA1(56a5fc14ab7822f83379cecb26638e5bb266349a) )
+
+ ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m1200.rom", 0x800000, 0x800000, CRC(b0d88720) SHA1(44ab137e3f8e15b7cb5697ffbd9b1143d8210c4f) )
+ROM_END
+
+ROM_START( kov2s18 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p1200hc18.201", 0x100000, 0x454F48, CRC(190f7751) SHA1(c766ac92942cfdc337fdd664f0cf7b242643db18) )
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kov2p_igs027a_china.bin", 0x000000, 0x04000, CRC(19a0bd95) SHA1(83e9f22512832a51d41c588debe8be7adb3b1df7) )
+
+ ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */
+ ROM_LOAD( "v200-16.rom", 0x000000, 0x200000, CRC(16a0c11f) SHA1(ce449cef76ebd5657d49b57951e2eb0f132e203e) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t1200.rom", 0x180000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) )
+
+ ROM_REGION( 0x2800000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a1200.rom", 0x0000000, 0x0800000, CRC(ceeb81d8) SHA1(5476729443fc1bc9593ae10fbf7cbc5d7290b017) )
+ ROM_LOAD( "a1201.rom", 0x0800000, 0x0800000, CRC(21063ca7) SHA1(cf561b44902425a920d5cbea5bf65dd9530b2289) )
+ ROM_LOAD( "a1202.rom", 0x1000000, 0x0800000, CRC(4bb92fae) SHA1(f0b6d72ed425de1c69dc8f8d5795ea760a4a59b0) )
+ ROM_LOAD( "a1203.rom", 0x1800000, 0x0800000, CRC(e73cb627) SHA1(4c6e48b845a5d1e8f9899010fbf273d54c2b8899) )
+ ROM_LOAD( "a1204.rom", 0x2000000, 0x0200000, CRC(14b4b5bb) SHA1(d7db5740eec971f2782fb2885ee3af8f2a796550) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b1200.rom", 0x0000000, 0x0800000, CRC(bed7d994) SHA1(019dfba8154256d64cd249eb0fa4c451edce34b8) )
+ ROM_LOAD( "b1201.rom", 0x0800000, 0x0800000, CRC(f251eb57) SHA1(56a5fc14ab7822f83379cecb26638e5bb266349a) )
+
+ ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m1200.rom", 0x800000, 0x800000, CRC(b0d88720) SHA1(44ab137e3f8e15b7cb5697ffbd9b1143d8210c4f) )
+ROM_END
+
+ROM_START( kov2s19 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p1200hc19.201", 0x100000, 0x455272, CRC(6dbe3dd1) SHA1(635d94ba4fcd4b54d6171e14c818a1325523eae2) )
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kov2p_igs027a_china.bin", 0x000000, 0x04000, CRC(19a0bd95) SHA1(83e9f22512832a51d41c588debe8be7adb3b1df7) )
+
+ ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */
+ ROM_LOAD( "v200-16.rom", 0x000000, 0x200000, CRC(16a0c11f) SHA1(ce449cef76ebd5657d49b57951e2eb0f132e203e) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t1200.rom", 0x180000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) )
+
+ ROM_REGION( 0x2800000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a1200.rom", 0x0000000, 0x0800000, CRC(ceeb81d8) SHA1(5476729443fc1bc9593ae10fbf7cbc5d7290b017) )
+ ROM_LOAD( "a1201.rom", 0x0800000, 0x0800000, CRC(21063ca7) SHA1(cf561b44902425a920d5cbea5bf65dd9530b2289) )
+ ROM_LOAD( "a1202.rom", 0x1000000, 0x0800000, CRC(4bb92fae) SHA1(f0b6d72ed425de1c69dc8f8d5795ea760a4a59b0) )
+ ROM_LOAD( "a1203.rom", 0x1800000, 0x0800000, CRC(e73cb627) SHA1(4c6e48b845a5d1e8f9899010fbf273d54c2b8899) )
+ ROM_LOAD( "a1204.rom", 0x2000000, 0x0200000, CRC(14b4b5bb) SHA1(d7db5740eec971f2782fb2885ee3af8f2a796550) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b1200.rom", 0x0000000, 0x0800000, CRC(bed7d994) SHA1(019dfba8154256d64cd249eb0fa4c451edce34b8) )
+ ROM_LOAD( "b1201.rom", 0x0800000, 0x0800000, CRC(f251eb57) SHA1(56a5fc14ab7822f83379cecb26638e5bb266349a) )
+
+ ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m1200.rom", 0x800000, 0x800000, CRC(b0d88720) SHA1(44ab137e3f8e15b7cb5697ffbd9b1143d8210c4f) )
+ROM_END
+
+ROM_START( kov2s20 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p1200hc20.201", 0x100000, 0x454F48, CRC(24a6418a) SHA1(bc7baae6c27c799e1ae0bfbf588cb1da5bb93bda) )
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kov2p_igs027a_china.bin", 0x000000, 0x04000, CRC(19a0bd95) SHA1(83e9f22512832a51d41c588debe8be7adb3b1df7) )
+
+ ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */
+ ROM_LOAD( "v200-16.rom", 0x000000, 0x200000, CRC(16a0c11f) SHA1(ce449cef76ebd5657d49b57951e2eb0f132e203e) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t1200.rom", 0x180000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) )
+
+ ROM_REGION( 0x2800000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a1200.rom", 0x0000000, 0x0800000, CRC(ceeb81d8) SHA1(5476729443fc1bc9593ae10fbf7cbc5d7290b017) )
+ ROM_LOAD( "a1201.rom", 0x0800000, 0x0800000, CRC(21063ca7) SHA1(cf561b44902425a920d5cbea5bf65dd9530b2289) )
+ ROM_LOAD( "a1202.rom", 0x1000000, 0x0800000, CRC(4bb92fae) SHA1(f0b6d72ed425de1c69dc8f8d5795ea760a4a59b0) )
+ ROM_LOAD( "a1203.rom", 0x1800000, 0x0800000, CRC(e73cb627) SHA1(4c6e48b845a5d1e8f9899010fbf273d54c2b8899) )
+ ROM_LOAD( "a1204.rom", 0x2000000, 0x0200000, CRC(14b4b5bb) SHA1(d7db5740eec971f2782fb2885ee3af8f2a796550) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b1200.rom", 0x0000000, 0x0800000, CRC(bed7d994) SHA1(019dfba8154256d64cd249eb0fa4c451edce34b8) )
+ ROM_LOAD( "b1201.rom", 0x0800000, 0x0800000, CRC(f251eb57) SHA1(56a5fc14ab7822f83379cecb26638e5bb266349a) )
+
+ ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m1200.rom", 0x800000, 0x800000, CRC(b0d88720) SHA1(44ab137e3f8e15b7cb5697ffbd9b1143d8210c4f) )
+ROM_END
+
+ROM_START( kov2s21 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p1200hc21.201", 0x100000, 0x454F56, CRC(d55aeeed) SHA1(2fe789ec6afa05528caa2defee50f728f16ea8ff) )
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kov2p_igs027a_china.bin", 0x000000, 0x04000, CRC(19a0bd95) SHA1(83e9f22512832a51d41c588debe8be7adb3b1df7) )
+
+ ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */
+ ROM_LOAD( "v200-16.rom", 0x000000, 0x200000, CRC(16a0c11f) SHA1(ce449cef76ebd5657d49b57951e2eb0f132e203e) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t1200.rom", 0x180000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) )
+
+ ROM_REGION( 0x2800000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a1200.rom", 0x0000000, 0x0800000, CRC(ceeb81d8) SHA1(5476729443fc1bc9593ae10fbf7cbc5d7290b017) )
+ ROM_LOAD( "a1201.rom", 0x0800000, 0x0800000, CRC(21063ca7) SHA1(cf561b44902425a920d5cbea5bf65dd9530b2289) )
+ ROM_LOAD( "a1202.rom", 0x1000000, 0x0800000, CRC(4bb92fae) SHA1(f0b6d72ed425de1c69dc8f8d5795ea760a4a59b0) )
+ ROM_LOAD( "a1203.rom", 0x1800000, 0x0800000, CRC(e73cb627) SHA1(4c6e48b845a5d1e8f9899010fbf273d54c2b8899) )
+ ROM_LOAD( "a1204.rom", 0x2000000, 0x0200000, CRC(14b4b5bb) SHA1(d7db5740eec971f2782fb2885ee3af8f2a796550) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b1200.rom", 0x0000000, 0x0800000, CRC(bed7d994) SHA1(019dfba8154256d64cd249eb0fa4c451edce34b8) )
+ ROM_LOAD( "b1201.rom", 0x0800000, 0x0800000, CRC(f251eb57) SHA1(56a5fc14ab7822f83379cecb26638e5bb266349a) )
+
+ ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m1200.rom", 0x800000, 0x800000, CRC(b0d88720) SHA1(44ab137e3f8e15b7cb5697ffbd9b1143d8210c4f) )
+ROM_END
+
+ROM_START( kov2s22 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p1200hc22.201", 0x100000, 0x454F47, CRC(3310c1f2) SHA1(1ae05679c50f09aae588165c6b9f0f0434689f72) )
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kov2p_igs027a_china.bin", 0x000000, 0x04000, CRC(19a0bd95) SHA1(83e9f22512832a51d41c588debe8be7adb3b1df7) )
+
+ ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */
+ ROM_LOAD( "v200-16.rom", 0x000000, 0x200000, CRC(16a0c11f) SHA1(ce449cef76ebd5657d49b57951e2eb0f132e203e) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t1200.rom", 0x180000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) )
+
+ ROM_REGION( 0x2800000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a1200.rom", 0x0000000, 0x0800000, CRC(ceeb81d8) SHA1(5476729443fc1bc9593ae10fbf7cbc5d7290b017) )
+ ROM_LOAD( "a1201.rom", 0x0800000, 0x0800000, CRC(21063ca7) SHA1(cf561b44902425a920d5cbea5bf65dd9530b2289) )
+ ROM_LOAD( "a1202.rom", 0x1000000, 0x0800000, CRC(4bb92fae) SHA1(f0b6d72ed425de1c69dc8f8d5795ea760a4a59b0) )
+ ROM_LOAD( "a1203.rom", 0x1800000, 0x0800000, CRC(e73cb627) SHA1(4c6e48b845a5d1e8f9899010fbf273d54c2b8899) )
+ ROM_LOAD( "a1204.rom", 0x2000000, 0x0200000, CRC(14b4b5bb) SHA1(d7db5740eec971f2782fb2885ee3af8f2a796550) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b1200.rom", 0x0000000, 0x0800000, CRC(bed7d994) SHA1(019dfba8154256d64cd249eb0fa4c451edce34b8) )
+ ROM_LOAD( "b1201.rom", 0x0800000, 0x0800000, CRC(f251eb57) SHA1(56a5fc14ab7822f83379cecb26638e5bb266349a) )
+
+ ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m1200.rom", 0x800000, 0x800000, CRC(b0d88720) SHA1(44ab137e3f8e15b7cb5697ffbd9b1143d8210c4f) )
+ROM_END
+
+ROM_START( kov2s23 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p1200hc23.201", 0x100000, 0x40032A, CRC(5040774c) SHA1(9f8351f1b4bae6ac95d161217254f3b7d721bace) )
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kov2p_igs027a_china.bin", 0x000000, 0x04000, CRC(19a0bd95) SHA1(83e9f22512832a51d41c588debe8be7adb3b1df7) )
+
+ ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */
+ ROM_LOAD( "v200-16.rom", 0x000000, 0x200000, CRC(16a0c11f) SHA1(ce449cef76ebd5657d49b57951e2eb0f132e203e) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t1200.rom", 0x180000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) )
+
+ ROM_REGION( 0x2800000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a1200.rom", 0x0000000, 0x0800000, CRC(ceeb81d8) SHA1(5476729443fc1bc9593ae10fbf7cbc5d7290b017) )
+ ROM_LOAD( "a1201.rom", 0x0800000, 0x0800000, CRC(21063ca7) SHA1(cf561b44902425a920d5cbea5bf65dd9530b2289) )
+ ROM_LOAD( "a1202.rom", 0x1000000, 0x0800000, CRC(4bb92fae) SHA1(f0b6d72ed425de1c69dc8f8d5795ea760a4a59b0) )
+ ROM_LOAD( "a1203.rom", 0x1800000, 0x0800000, CRC(e73cb627) SHA1(4c6e48b845a5d1e8f9899010fbf273d54c2b8899) )
+ ROM_LOAD( "a1204.rom", 0x2000000, 0x0200000, CRC(14b4b5bb) SHA1(d7db5740eec971f2782fb2885ee3af8f2a796550) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b1200.rom", 0x0000000, 0x0800000, CRC(bed7d994) SHA1(019dfba8154256d64cd249eb0fa4c451edce34b8) )
+ ROM_LOAD( "b1201.rom", 0x0800000, 0x0800000, CRC(f251eb57) SHA1(56a5fc14ab7822f83379cecb26638e5bb266349a) )
+
+ ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m1200.rom", 0x800000, 0x800000, CRC(b0d88720) SHA1(44ab137e3f8e15b7cb5697ffbd9b1143d8210c4f) )
+ROM_END
+
+/***************************************
+ Knights of Valour 2
+***************************************/
+
+ROM_START( kov2h01 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc01.325", 0x100000, 0x400000, CRC(a6328b82) SHA1(535b583552b7fbb2cdc7ff91fd7a7a69474c6ea5) )
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kov2_v100_hongkong.asic", 0x000000, 0x04000, CRC(e0d7679f) SHA1(e1c2d127eba4ddbeb8ad173c55b90ac1467e1ca8) )
+
+ ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */
+ ROM_LOAD( "v0600hc01.325", 0x000000, 0x200000, CRC(8c35f2fe) SHA1(d4858f97fcfad0f342fccbc9cf1590276cc3c69c) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t1200.rom", 0x180000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) )
+
+ ROM_REGION( 0x2800000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a1200.rom", 0x0000000, 0x0800000, CRC(ceeb81d8) SHA1(5476729443fc1bc9593ae10fbf7cbc5d7290b017) )
+ ROM_LOAD( "a1201.rom", 0x0800000, 0x0800000, CRC(21063ca7) SHA1(cf561b44902425a920d5cbea5bf65dd9530b2289) )
+ ROM_LOAD( "a1202.rom", 0x1000000, 0x0800000, CRC(4bb92fae) SHA1(f0b6d72ed425de1c69dc8f8d5795ea760a4a59b0) )
+ ROM_LOAD( "a1203.rom", 0x1800000, 0x0800000, CRC(e73cb627) SHA1(4c6e48b845a5d1e8f9899010fbf273d54c2b8899) )
+ ROM_LOAD( "a1204.rom", 0x2000000, 0x0200000, CRC(14b4b5bb) SHA1(d7db5740eec971f2782fb2885ee3af8f2a796550) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b1200.rom", 0x0000000, 0x0800000, CRC(bed7d994) SHA1(019dfba8154256d64cd249eb0fa4c451edce34b8) )
+ ROM_LOAD( "b1201.rom", 0x0800000, 0x0800000, CRC(f251eb57) SHA1(56a5fc14ab7822f83379cecb26638e5bb266349a) )
+
+ ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m1200.rom", 0x800000, 0x800000, CRC(b0d88720) SHA1(44ab137e3f8e15b7cb5697ffbd9b1143d8210c4f) )
+ROM_END
+
+ROM_START( kov2h02 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc02.325", 0x100000, 0x400000, CRC(c0d5f63e) SHA1(ed571a0401bac2fa812862df1d10ee98aa12825d) )
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kov2_v100_hongkong.asic", 0x000000, 0x04000, CRC(e0d7679f) SHA1(e1c2d127eba4ddbeb8ad173c55b90ac1467e1ca8) )
+
+ ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */
+ ROM_LOAD( "v0600hc01.325", 0x000000, 0x200000, CRC(8c35f2fe) SHA1(d4858f97fcfad0f342fccbc9cf1590276cc3c69c) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t1200.rom", 0x180000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) )
+
+ ROM_REGION( 0x2800000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a1200.rom", 0x0000000, 0x0800000, CRC(ceeb81d8) SHA1(5476729443fc1bc9593ae10fbf7cbc5d7290b017) )
+ ROM_LOAD( "a1201hc01.325", 0x0800000, 0x0800000, CRC(82f0a878) SHA1(ddd13e404252a71de1b2b3b974b910f899f51c38) )
+ ROM_LOAD( "a1202.rom", 0x1000000, 0x0800000, CRC(4bb92fae) SHA1(f0b6d72ed425de1c69dc8f8d5795ea760a4a59b0) )
+ ROM_LOAD( "a1203.rom", 0x1800000, 0x0800000, CRC(e73cb627) SHA1(4c6e48b845a5d1e8f9899010fbf273d54c2b8899) )
+ ROM_LOAD( "a1204hc00.325", 0x2000000, 0x0800000, CRC(3a26b7df) SHA1(d39e451f956e7555069d274eb72ca464770fcac3) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b1200.rom", 0x0000000, 0x0800000, CRC(bed7d994) SHA1(019dfba8154256d64cd249eb0fa4c451edce34b8) )
+ ROM_LOAD( "b1201.rom", 0x0800000, 0x0800000, CRC(f251eb57) SHA1(56a5fc14ab7822f83379cecb26638e5bb266349a) )
+
+ ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m1200.rom", 0x800000, 0x800000, CRC(b0d88720) SHA1(44ab137e3f8e15b7cb5697ffbd9b1143d8210c4f) )
+ROM_END
+
+ROM_START( kov2h03 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc03.325", 0x100000, 0x400000, CRC(ec1d4ecc) SHA1(03b13bbf9b1a29f00660a0e1dcba068e0f95ba2a) )
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kov2_v100_hongkong.asic", 0x000000, 0x04000, CRC(e0d7679f) SHA1(e1c2d127eba4ddbeb8ad173c55b90ac1467e1ca8) )
+
+ ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */
+ ROM_LOAD( "v0600hc01.325", 0x000000, 0x200000, CRC(8c35f2fe) SHA1(d4858f97fcfad0f342fccbc9cf1590276cc3c69c) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t1200.rom", 0x180000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) )
+
+ ROM_REGION( 0x2800000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a1200.rom", 0x0000000, 0x0800000, CRC(ceeb81d8) SHA1(5476729443fc1bc9593ae10fbf7cbc5d7290b017) )
+ ROM_LOAD( "a1201hc01.325", 0x0800000, 0x0800000, CRC(82f0a878) SHA1(ddd13e404252a71de1b2b3b974b910f899f51c38) )
+ ROM_LOAD( "a1202.rom", 0x1000000, 0x0800000, CRC(4bb92fae) SHA1(f0b6d72ed425de1c69dc8f8d5795ea760a4a59b0) )
+ ROM_LOAD( "a1203.rom", 0x1800000, 0x0800000, CRC(e73cb627) SHA1(4c6e48b845a5d1e8f9899010fbf273d54c2b8899) )
+ ROM_LOAD( "a1204hc04.325", 0x2000000, 0x0800000, CRC(27527099) SHA1(e23cf366bdeaca1e009a5cec6b13164310a34384) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b1200.rom", 0x0000000, 0x0800000, CRC(bed7d994) SHA1(019dfba8154256d64cd249eb0fa4c451edce34b8) )
+ ROM_LOAD( "b1201.rom", 0x0800000, 0x0800000, CRC(f251eb57) SHA1(56a5fc14ab7822f83379cecb26638e5bb266349a) )
+
+ ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m1200.rom", 0x800000, 0x800000, CRC(b0d88720) SHA1(44ab137e3f8e15b7cb5697ffbd9b1143d8210c4f) )
+ROM_END
+
+ROM_START( kov2h04 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc04.325", 0x100000, 0x400000, CRC(c5ac039b) SHA1(6e0076022639773672c7356418190c4c337e4ce6) )
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kov2_v100_hongkong.asic", 0x000000, 0x04000, CRC(e0d7679f) SHA1(e1c2d127eba4ddbeb8ad173c55b90ac1467e1ca8) )
+
+ ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */
+ ROM_LOAD( "v0600hc01.325", 0x000000, 0x200000, CRC(8c35f2fe) SHA1(d4858f97fcfad0f342fccbc9cf1590276cc3c69c) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t1200.rom", 0x180000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) )
+
+ ROM_REGION( 0x2800000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a1200.rom", 0x0000000, 0x0800000, CRC(ceeb81d8) SHA1(5476729443fc1bc9593ae10fbf7cbc5d7290b017) )
+ ROM_LOAD( "a1201hc01.325", 0x0800000, 0x0800000, CRC(82f0a878) SHA1(ddd13e404252a71de1b2b3b974b910f899f51c38) )
+ ROM_LOAD( "a1202.rom", 0x1000000, 0x0800000, CRC(4bb92fae) SHA1(f0b6d72ed425de1c69dc8f8d5795ea760a4a59b0) )
+ ROM_LOAD( "a1203.rom", 0x1800000, 0x0800000, CRC(e73cb627) SHA1(4c6e48b845a5d1e8f9899010fbf273d54c2b8899) )
+ ROM_LOAD( "a1204hc04.325", 0x2000000, 0x0800000, CRC(27527099) SHA1(e23cf366bdeaca1e009a5cec6b13164310a34384) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b1200.rom", 0x0000000, 0x0800000, CRC(bed7d994) SHA1(019dfba8154256d64cd249eb0fa4c451edce34b8) )
+ ROM_LOAD( "b1201.rom", 0x0800000, 0x0800000, CRC(f251eb57) SHA1(56a5fc14ab7822f83379cecb26638e5bb266349a) )
+
+ ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m1200.rom", 0x800000, 0x800000, CRC(b0d88720) SHA1(44ab137e3f8e15b7cb5697ffbd9b1143d8210c4f) )
+ROM_END
+
+ROM_START( kov2h05 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc05.325", 0x100000, 0x400000, CRC(c09b22eb) SHA1(6a170611de180b8e4a8ff420dfddd1858dc5d4b6) )
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kov2_v100_hongkong.asic", 0x000000, 0x04000, CRC(e0d7679f) SHA1(e1c2d127eba4ddbeb8ad173c55b90ac1467e1ca8) )
+
+ ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */
+ ROM_LOAD( "v0600hc05.325", 0x000000, 0x200000, CRC(462e2980) SHA1(3da7c3d2c65b59f50c78be1c25922b71d40f6080) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t1200.rom", 0x180000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) )
+
+ ROM_REGION( 0x2800000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a1200.rom", 0x0000000, 0x0800000, CRC(ceeb81d8) SHA1(5476729443fc1bc9593ae10fbf7cbc5d7290b017) )
+ ROM_LOAD( "a1201hc01.325", 0x0800000, 0x0800000, CRC(82f0a878) SHA1(ddd13e404252a71de1b2b3b974b910f899f51c38) )
+ ROM_LOAD( "a1202.rom", 0x1000000, 0x0800000, CRC(4bb92fae) SHA1(f0b6d72ed425de1c69dc8f8d5795ea760a4a59b0) )
+ ROM_LOAD( "a1203.rom", 0x1800000, 0x0800000, CRC(e73cb627) SHA1(4c6e48b845a5d1e8f9899010fbf273d54c2b8899) )
+ ROM_LOAD( "a1204hc00.325", 0x2000000, 0x0800000, CRC(3a26b7df) SHA1(d39e451f956e7555069d274eb72ca464770fcac3) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b1200.rom", 0x0000000, 0x0800000, CRC(bed7d994) SHA1(019dfba8154256d64cd249eb0fa4c451edce34b8) )
+ ROM_LOAD( "b1201.rom", 0x0800000, 0x0800000, CRC(f251eb57) SHA1(56a5fc14ab7822f83379cecb26638e5bb266349a) )
+
+ ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m1200.rom", 0x800000, 0x800000, CRC(b0d88720) SHA1(44ab137e3f8e15b7cb5697ffbd9b1143d8210c4f) )
+ROM_END
+
+ROM_START( kov2h06 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc06.322", 0x100000, 0x454F4A, CRC(c8f583bd) SHA1(1c3f44a65e9c379c9e9a1638841f583eebac28ae) )
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kov2_v100_hongkong.asic", 0x000000, 0x04000, CRC(e0d7679f) SHA1(e1c2d127eba4ddbeb8ad173c55b90ac1467e1ca8) )
+
+ ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */
+ ROM_LOAD( "u19.101", 0x000000, 0x200000, CRC(8c35f2fe) SHA1(d4858f97fcfad0f342fccbc9cf1590276cc3c69c) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t1200.rom", 0x180000, 0x800000, CRC(d7e26609) SHA1(bdad810f82fcf1d50a8791bdc495374ec5a309c6) )
+
+ ROM_REGION( 0x2800000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a1200.rom", 0x0000000, 0x0800000, CRC(ceeb81d8) SHA1(5476729443fc1bc9593ae10fbf7cbc5d7290b017) )
+ ROM_LOAD( "a1201.rom", 0x0800000, 0x0800000, CRC(21063ca7) SHA1(cf561b44902425a920d5cbea5bf65dd9530b2289) )
+ ROM_LOAD( "a1202.rom", 0x1000000, 0x0800000, CRC(4bb92fae) SHA1(f0b6d72ed425de1c69dc8f8d5795ea760a4a59b0) )
+ ROM_LOAD( "a1203.rom", 0x1800000, 0x0800000, CRC(e73cb627) SHA1(4c6e48b845a5d1e8f9899010fbf273d54c2b8899) )
+ ROM_LOAD( "a1204.rom", 0x2000000, 0x0200000, CRC(14b4b5bb) SHA1(d7db5740eec971f2782fb2885ee3af8f2a796550) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b1200.rom", 0x0000000, 0x0800000, CRC(bed7d994) SHA1(019dfba8154256d64cd249eb0fa4c451edce34b8) )
+ ROM_LOAD( "b1201.rom", 0x0800000, 0x0800000, CRC(f251eb57) SHA1(56a5fc14ab7822f83379cecb26638e5bb266349a) )
+
+ ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m1200.rom", 0x800000, 0x800000, CRC(b0d88720) SHA1(44ab137e3f8e15b7cb5697ffbd9b1143d8210c4f) )
+ROM_END
+
+/***************************************
+ Knights of Valour SanGuo QunYingZhuan
+***************************************/
+
+ROM_START( kovs01 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc01.120", 0x100000, 0x400000, CRC(49122860) SHA1(ef4893d63daa0e940b4e8c4a84cf1100e1d035d5) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600s01.rom", 0x180000, 0x800000, CRC(a51f6c60) SHA1(e2c184d6e4bb1e6fc02ee2e5953693c7461746be) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovs02 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc02.120", 0x100000, 0x400000, CRC(0239cb3b) SHA1(72783d664050760113f9ac05bde997d4667c9485) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600s01.rom", 0x180000, 0x800000, CRC(a51f6c60) SHA1(e2c184d6e4bb1e6fc02ee2e5953693c7461746be) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovs03 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc03.120", 0x100000, 0x400000, CRC(694e68be) SHA1(e9e98aa5e65fa4080446312ff262837312bb1ca0) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.ph17", 0x180000, 0x800000, CRC(84567fa4) SHA1(932fdd8095b499acbac69035c12929a2dc9a5564) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600hc03.120", 0x0000000, 0x0800000, CRC(07d91ea3) SHA1(8713409439eb4a2875baffbda711587f283a652b) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600s03.rom", 0x400000, 0x400000, CRC(01059d4f) SHA1(a18a960afd90e2574b31ef8b347ba1d38a12ef89) )
+ROM_END
+
+ROM_START( kovs04 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600s04.120", 0x100000, 0x400000, CRC(f5ee44ad) SHA1(003efd6e0e9c29a861b6b6e359bd025c5747216c) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovs05 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc05.120", 0x100000, 0x400000, CRC(d4692dd1) SHA1(2f7b6f002c89159a175bad52a86428b7ec701783) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600hc05.120", 0x180000, 0x800000, CRC(e451df7f) SHA1(123c7d9e9a3efdbd192e9da61ea64801744fc090) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600hc05.120", 0x0000000, 0x0800000, CRC(783df23c) SHA1(5458a1b84d0d52ef0490bec0b1fe5b503b7965fc) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602lw.rom", 0x1000000, 0x0800000, CRC(71c8a46c) SHA1(6391eb95e1f2933b0e02518232a4bbcf7c91b73f) )
+ ROM_LOAD( "a0603hc05.120", 0x1800000, 0x0400000, CRC(4d755da5) SHA1(8b04020578e96030b86359a9f0ba892adb703bf5) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600hc05.120", 0x0000000, 0x0800000, CRC(e3bf000f) SHA1(154753a31913b931878ea3aafbb677f7d6174a54) )
+ ROM_LOAD( "b0601hc05.120", 0x0800000, 0x0400000, CRC(47a9af9c) SHA1(87596e64c2f6c4ed039928d2d69a04e669aeb930) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600s05.126", 0x400000, 0x400000, CRC(d84343ec) SHA1(c621a25a497cd58ec9af7374c5bd733d3d940937) )
+ROM_END
+
+ROM_START( kovs06 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc06.120", 0x100000, 0x400000, CRC(94f03220) SHA1(757a3aa5ecab3d01334f87a0af7c67b031df3efd) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600hc06.120", 0x180000, 0x800000, CRC(ea123375) SHA1(8ffff9eae6927824c3e4f7891939153854004857) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600hc06.120", 0x0000000, 0x0800000, CRC(5bd7ea9f) SHA1(0eb33bd0e23441394ae7c6fa28aafe11adf0b22f) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600hc03.120", 0x0000000, 0x0800000, CRC(07d91ea3) SHA1(8713409439eb4a2875baffbda711587f283a652b) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600hc06.120", 0x400000, 0x400000, CRC(8865131e) SHA1(6b4b52c88353d3c0cea4378db26d608bca311979) )
+ROM_END
+
+ROM_START( kovs07 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc07.120", 0x100000, 0x400000, CRC(06ce91ea) SHA1(a06e165c0fa8b5d9abcc43fbbb3a1998eeb042fe) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600hc07.120", 0x180000, 0x800000, CRC(d8600807) SHA1(0607cec77d895e2d593c174da8b9c6ae1d345302) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602hc07.120", 0x1000000, 0x0800000, CRC(d9ea9298) SHA1(abaab6400613c1f2ff534fc0a9625e7dcf88a351) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601hc07.120", 0x0800000, 0x0400000, CRC(b0809a1e) SHA1(3e9a20d38afea5eedbe0e7fd790c3223c88e20f8) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovs08 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc08.120", 0x100000, 0x400000, CRC(735e272b) SHA1(25f179175bfcb7b349b036593fbbb954e762be70) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600hc08.120", 0x0000000, 0x0800000, CRC(098cd614) SHA1(663e8ad60d1bdbdea22f8b186454649b4e432092) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600hc08.120", 0x0000000, 0x0800000, CRC(b3691ed3) SHA1(3664fbd8bd775817a5f51326ecc05180c83c5e19) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovs09 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc09.120", 0x100000, 0x400000, CRC(850b3f37) SHA1(63500e57dc6ba4c3e7f2f12cb212da80a3c68ed4) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600hc08.120", 0x0000000, 0x0800000, CRC(098cd614) SHA1(663e8ad60d1bdbdea22f8b186454649b4e432092) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600hc08.120", 0x0000000, 0x0800000, CRC(b3691ed3) SHA1(3664fbd8bd775817a5f51326ecc05180c83c5e19) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovs10 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc10.120", 0x100000, 0x400000, CRC(58c4e318) SHA1(54786350d463533240d680f037a0442c44115080) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600hc08.120", 0x0000000, 0x0800000, CRC(098cd614) SHA1(663e8ad60d1bdbdea22f8b186454649b4e432092) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600hc08.120", 0x0000000, 0x0800000, CRC(b3691ed3) SHA1(3664fbd8bd775817a5f51326ecc05180c83c5e19) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovs11 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc11.120", 0x100000, 0x400000, CRC(59881d09) SHA1(33d718647c5d85f5d8cc14d0a2e2615b9d816379) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600hc11.120", 0x0000000, 0x0800000, CRC(10297593) SHA1(7ec25fb8e31c2cbdeb6d5d7b599f00a72f1470f7) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600hc11.120", 0x0000000, 0x0800000, CRC(2fda37e0) SHA1(afffe7769c613434dbeb217c2e66d70d052c2026) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovs12 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc12.120", 0x100000, 0x400000, CRC(b2b6d1eb) SHA1(525f5e3ab964f83b58bd68f3f130540049a88150) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600hc12.120", 0x180000, 0x800000, CRC(c70efb8c) SHA1(0254abce39cd85e163b26078d512babc45522e39) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovs13 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc01.117", 0x100000, 0x454F8A, CRC(b5053980) SHA1(e3e8ecf40eb1c57123c67fc217af30e377ca4703) )
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a0600hc06.120", 0x0000000, 0x0800000, CRC(5bd7ea9f) SHA1(0eb33bd0e23441394ae7c6fa28aafe11adf0b22f) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0602hc42.120", 0x1000000, 0x0800000, CRC(b64e6473) SHA1(d231b85d1a3466565a90b2bb1489ef3038377fd2) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601hc42.120", 0x0800000, 0x0400000, CRC(3737c3f7) SHA1(ed01d926ac080991fd5b98b04977dde84152f8e1) )
+
+ ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600hc42.120", 0x400000, 0x400000, CRC(730640d6) SHA1(d0d7e7c85fd47e4c1cebc7953269979922da869d) )
+ROM_END
+
+ROM_START( kovs14 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600s14.120", 0x100000, 0x400000, CRC(f5ee44ad) SHA1(003efd6e0e9c29a861b6b6e359bd025c5747216c) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovs15 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc15.120", 0x100000, 0x400000, CRC(82e614f9) SHA1(e78073694b846f228673de4a2d5dbb220e2e4ce6) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovs16 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc16.120", 0x100000, 0x400000, CRC(9b742e1d) SHA1(33d9cbcd623acbc8d207d7449b64aaac3af86a73) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600s01.rom", 0x180000, 0x800000, CRC(a51f6c60) SHA1(e2c184d6e4bb1e6fc02ee2e5953693c7461746be) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovs17 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc17.120", 0x100000, 0x400000, CRC(664d3cae) SHA1(135b0d18c451456713a314389a607d92936ddc7b) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600s01.rom", 0x180000, 0x800000, CRC(a51f6c60) SHA1(e2c184d6e4bb1e6fc02ee2e5953693c7461746be) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovs18 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc18.120", 0x100000, 0x400000, CRC(63d2b915) SHA1(0f18be20184ee5e83d47c35daaeb27b70bdffb67) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600s01.rom", 0x180000, 0x800000, CRC(a51f6c60) SHA1(e2c184d6e4bb1e6fc02ee2e5953693c7461746be) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovs19 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc19.120", 0x100000, 0x400000, CRC(6254b6b3) SHA1(d89406c58f396a427769dca1a935b36a4dbd1dc9) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600s01.rom", 0x180000, 0x800000, CRC(a51f6c60) SHA1(e2c184d6e4bb1e6fc02ee2e5953693c7461746be) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovs20 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc20.120", 0x100000, 0x400000, CRC(06a49bf9) SHA1(f3e0e50d4f5499ae99da13d88c24c3034c6c4e6e) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600s01.rom", 0x180000, 0x800000, CRC(a51f6c60) SHA1(e2c184d6e4bb1e6fc02ee2e5953693c7461746be) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovs21 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc21.120", 0x100000, 0x400000, CRC(9b385a0a) SHA1(2340131a3bf9d606a0400f571793efd3adff9ddc) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600s01.rom", 0x180000, 0x800000, CRC(a51f6c60) SHA1(e2c184d6e4bb1e6fc02ee2e5953693c7461746be) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovs22 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc22.120", 0x100000, 0x400000, CRC(c8cbac70) SHA1(906dde330a6e69782d03aa87b4e55df6a40a4779) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600s01.rom", 0x180000, 0x800000, CRC(a51f6c60) SHA1(e2c184d6e4bb1e6fc02ee2e5953693c7461746be) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovs23 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc23.120", 0x100000, 0x400000, CRC(6f50ed25) SHA1(ce7bc274b4551b4b283d7dbc31c66cbc7247c628) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600s01.rom", 0x180000, 0x800000, CRC(a51f6c60) SHA1(e2c184d6e4bb1e6fc02ee2e5953693c7461746be) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovs24 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc24.120", 0x100000, 0x400000, CRC(31da32d7) SHA1(bd9746e4328e038c466167f49a9ef6e4021644b3) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600s01.rom", 0x180000, 0x800000, CRC(a51f6c60) SHA1(e2c184d6e4bb1e6fc02ee2e5953693c7461746be) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovs25 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc25.120", 0x100000, 0x400000, CRC(c1fb6394) SHA1(1c8a71db04d3be94304ccab8e3be1ae2e8f046a7) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600s01.rom", 0x180000, 0x800000, CRC(a51f6c60) SHA1(e2c184d6e4bb1e6fc02ee2e5953693c7461746be) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovs26 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc26.120", 0x100000, 0x400000, CRC(76757e47) SHA1(89cf8dec2ea5709e682de45e701633922820daf5) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600s01.rom", 0x180000, 0x800000, CRC(a51f6c60) SHA1(e2c184d6e4bb1e6fc02ee2e5953693c7461746be) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovs27 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc27.120", 0x100000, 0x400000, CRC(7ddcef67) SHA1(f101b77f17263b5743af43b24f134dafcea2f45a) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600s01.rom", 0x180000, 0x800000, CRC(a51f6c60) SHA1(e2c184d6e4bb1e6fc02ee2e5953693c7461746be) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovs28 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc28.120", 0x100000, 0x400000, CRC(19f501b9) SHA1(8a12169568de895c7244638e0edfd444bb368ead) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600s01.rom", 0x180000, 0x800000, CRC(a51f6c60) SHA1(e2c184d6e4bb1e6fc02ee2e5953693c7461746be) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovs29 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc29.120", 0x100000, 0x400000, CRC(95a28658) SHA1(0e5fb2226709ddd651edcdd04f05ea4943d4935a) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600s01.rom", 0x180000, 0x800000, CRC(a51f6c60) SHA1(e2c184d6e4bb1e6fc02ee2e5953693c7461746be) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovs30 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc30.120", 0x100000, 0x400000, CRC(bb061dd2) SHA1(28094952e3fa6ed92d142d17b1bfd48e2c09e67f) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600s01.rom", 0x180000, 0x800000, CRC(a51f6c60) SHA1(e2c184d6e4bb1e6fc02ee2e5953693c7461746be) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovs31 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc31.120", 0x100000, 0x400000, CRC(f70948ec) SHA1(ff17ef0dd87ddc769504407fd6e4c75231119ce0) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600s01.rom", 0x180000, 0x800000, CRC(a51f6c60) SHA1(e2c184d6e4bb1e6fc02ee2e5953693c7461746be) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovs32 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc32.120", 0x100000, 0x400000, CRC(f4ebae89) SHA1(fd73250aff66af48c6fbd37c43ed6888c80f1cd8) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600s01.rom", 0x180000, 0x800000, CRC(a51f6c60) SHA1(e2c184d6e4bb1e6fc02ee2e5953693c7461746be) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovs33 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc33.120", 0x100000, 0x400000, CRC(0ad3eaf2) SHA1(b7b8592d8ed49894fcd64d846d55194edfce7958) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600s01.rom", 0x180000, 0x800000, CRC(a51f6c60) SHA1(e2c184d6e4bb1e6fc02ee2e5953693c7461746be) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovs34 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc34.120", 0x100000, 0x400000, CRC(a6634b58) SHA1(78ce572e25ae4c708580987e915fa01d622a1a61) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600s01.rom", 0x180000, 0x800000, CRC(a51f6c60) SHA1(e2c184d6e4bb1e6fc02ee2e5953693c7461746be) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovs35 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc35.120", 0x100000, 0x400000, CRC(9946638a) SHA1(97c89cf4e6b4d86bab70a2e291b64586dd477fa9) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600s01.rom", 0x180000, 0x800000, CRC(a51f6c60) SHA1(e2c184d6e4bb1e6fc02ee2e5953693c7461746be) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovs36 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc36.120", 0x100000, 0x400000, CRC(4283f8c6) SHA1(207a2390fc4f7f4ba77fff74e1d1b040c8c91237) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600hc05.120", 0x180000, 0x800000, CRC(e451df7f) SHA1(123c7d9e9a3efdbd192e9da61ea64801744fc090) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600hc05.120", 0x0000000, 0x0800000, CRC(783df23c) SHA1(5458a1b84d0d52ef0490bec0b1fe5b503b7965fc) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602lw.rom", 0x1000000, 0x0800000, CRC(71c8a46c) SHA1(6391eb95e1f2933b0e02518232a4bbcf7c91b73f) )
+ ROM_LOAD( "a0603hc05.120", 0x1800000, 0x0400000, CRC(4d755da5) SHA1(8b04020578e96030b86359a9f0ba892adb703bf5) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600hc05.120", 0x0000000, 0x0800000, CRC(e3bf000f) SHA1(154753a31913b931878ea3aafbb677f7d6174a54) )
+ ROM_LOAD( "b0601hc05.120", 0x0800000, 0x0400000, CRC(47a9af9c) SHA1(87596e64c2f6c4ed039928d2d69a04e669aeb930) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600s05.126", 0x400000, 0x400000, CRC(d84343ec) SHA1(c621a25a497cd58ec9af7374c5bd733d3d940937) )
+ROM_END
+
+ROM_START( kovs37 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc37.119", 0x100000, 0x400000, CRC(155eda1e) SHA1(9f10594be15cf60f5fe8a17a3b95073b537a35a8) )
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600hc12.120", 0x180000, 0x800000, CRC(c70efb8c) SHA1(0254abce39cd85e163b26078d512babc45522e39) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600hc37.rom", 0x400000, 0x400000, CRC(25f4f240) SHA1(63c52b55da5c0dc4c9cc7db587bdd3fbfb128745) )
+ROM_END
+
+ROM_START( kovs38 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc38.120", 0x100000, 0x2bc000, CRC(92a520a8) SHA1(b6ee189ac1257e2532bd080d59111d09e214e58b) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovs39 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc39.120", 0x100000, 0x454fd6, CRC(2602c386) SHA1(24e6fdcb262c6f18c7e0e87a49f072fb5dbe13bd) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600hc39.120", 0x180000, 0x800000, CRC(ff6b643b) SHA1(b6b75c0988165297cbbfe974c9f5a5c7c4d4c46f) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602hc39.120", 0x1000000, 0x0800000, CRC(6fe3c258) SHA1(f8fcacd5ba2d13b32e867c8ef1cd2efb72a90208) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovs40 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc40.120", 0x100000, 0x454FBE, CRC(b669683f) SHA1(9b88c8c0658dd2b23e3428969f45d306d4d5ea32) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600hc40.120", 0x180000, 0x800000, CRC(806cfc9a) SHA1(d092de39ca8c625c752473461eaca877fce80e7a) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovs41 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc41.120", 0x100000, 0x454FBE, CRC(eb1bcf98) SHA1(edfc25854dc57d1af5abde9d7fa0ca1e24826e8b) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600hc41.120", 0x180000, 0x800000, CRC(40ede14b) SHA1(9e7f84f2dd54c5aa909529468bdfbc301c2dee43) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600hc41.rom", 0x0000000, 0x0800000, CRC(3a73f446) SHA1(102ac046ea44e704195105081d40125a54c42d69) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600hc41.rom", 0x0000000, 0x0800000, CRC(0b0ab3dc) SHA1(05e666b6c0dddafd531e7472db053b21ecc35ba8) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovs42 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc42.120", 0x100000, 0x454F8A, CRC(9b0f2d34) SHA1(2f2ce07b2295cd9b1e7c505ce254d05d217d2a4e) )
+
+ ROM_REGION( 0x4000, "prot", 0 )
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600hc42.120", 0x180000, 0x800000, CRC(ea123375) SHA1(8ffff9eae6927824c3e4f7891939153854004857) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 )
+ ROM_LOAD( "a0600hc06.120", 0x0000000, 0x0800000, CRC(5bd7ea9f) SHA1(0eb33bd0e23441394ae7c6fa28aafe11adf0b22f) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) )
+ ROM_LOAD( "a0602hc42.120", 0x1000000, 0x0800000, CRC(b64e6473) SHA1(d231b85d1a3466565a90b2bb1489ef3038377fd2) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 )
+ ROM_LOAD( "b0600hc03.120", 0x0000000, 0x0800000, CRC(07d91ea3) SHA1(8713409439eb4a2875baffbda711587f283a652b) )
+ ROM_LOAD( "b0601hc42.120", 0x0800000, 0x0400000, CRC(3737c3f7) SHA1(ed01d926ac080991fd5b98b04977dde84152f8e1) )
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600hc42.120", 0x400000, 0x400000, CRC(730640d6) SHA1(d0d7e7c85fd47e4c1cebc7953269979922da869d) )
+ROM_END
+
+ROM_START( kovs43 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc43.115", 0x100000, 0x454F8A, CRC(47eb51e3) SHA1(9a1f81e6a4aa022559fc76993ab9f3b382022104) )
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovs44 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc44.119", 0x100000, 0x454F8A, CRC(0e971e4e) SHA1(bb829c39d05c73a036dd0f165622aaf438e96347) )
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600s01.rom", 0x180000, 0x800000, CRC(a51f6c60) SHA1(e2c184d6e4bb1e6fc02ee2e5953693c7461746be) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovs45 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc45.119", 0x100000, 0x454F8A, CRC(6c115d7e) SHA1(7e0935bf4bbb3f54fb9f2dae939baeac9b6fbb7b) )
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600hc06.120", 0x180000, 0x800000, CRC(ea123375) SHA1(8ffff9eae6927824c3e4f7891939153854004857) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a0600hc06.120", 0x0000000, 0x0800000, CRC(5bd7ea9f) SHA1(0eb33bd0e23441394ae7c6fa28aafe11adf0b22f) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600hc06.120", 0x400000, 0x400000, CRC(8865131e) SHA1(6b4b52c88353d3c0cea4378db26d608bca311979) )
+ROM_END
+
+ROM_START( kovs46 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc46.119", 0x100000, 0x454F8A, CRC(6c115d7e) SHA1(7e0935bf4bbb3f54fb9f2dae939baeac9b6fbb7b) )
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600hc06.120", 0x180000, 0x800000, CRC(ea123375) SHA1(8ffff9eae6927824c3e4f7891939153854004857) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a0600hc06.120", 0x0000000, 0x0800000, CRC(5bd7ea9f) SHA1(0eb33bd0e23441394ae7c6fa28aafe11adf0b22f) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600hc06.120", 0x400000, 0x400000, CRC(8865131e) SHA1(6b4b52c88353d3c0cea4378db26d608bca311979) )
+ROM_END
+
+ROM_START( kovs47 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc47.119", 0x100000, 0x454F8A, CRC(b5053980) SHA1(e3e8ecf40eb1c57123c67fc217af30e377ca4703) )
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600hc06.120", 0x180000, 0x800000, CRC(ea123375) SHA1(8ffff9eae6927824c3e4f7891939153854004857) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a0600hc06.120", 0x0000000, 0x0800000, CRC(5bd7ea9f) SHA1(0eb33bd0e23441394ae7c6fa28aafe11adf0b22f) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0602hc42.120", 0x1000000, 0x0800000, CRC(b64e6473) SHA1(d231b85d1a3466565a90b2bb1489ef3038377fd2) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b0600hc03.120", 0x0000000, 0x0800000, CRC(07d91ea3) SHA1(8713409439eb4a2875baffbda711587f283a652b) )
+ ROM_LOAD( "b0601hc42.120", 0x0800000, 0x0400000, CRC(3737c3f7) SHA1(ed01d926ac080991fd5b98b04977dde84152f8e1) )
+
+ ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600hc42.120", 0x400000, 0x400000, CRC(730640d6) SHA1(d0d7e7c85fd47e4c1cebc7953269979922da869d) )
+ROM_END
+
+ROM_START( kovs48 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc48.119", 0x100000, 0x454F8A, CRC(ef0a7668) SHA1(783e017a0b054c23e6cdf86d9b50488071a542d0) )
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600hc47.119", 0x180000, 0x800000, CRC(4fc07af6) SHA1(3f108d9b150ea9c6dc0685e926576724f8489d31) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovs49 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc49.119", 0x100000, 0x400000, CRC(c7a96121) SHA1(42454054ab917357c734b5cdec66f468ef41366b) )
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0x1400000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600hc49.119", 0x180000, 0xF0CBF1, CRC(77798793) SHA1(365de45c9c81472b8b1948fc12869e89dc5feb73) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a0600hc06.120", 0x0000000, 0x0800000, CRC(5bd7ea9f) SHA1(0eb33bd0e23441394ae7c6fa28aafe11adf0b22f) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0602hc42.120", 0x1000000, 0x0800000, CRC(b64e6473) SHA1(d231b85d1a3466565a90b2bb1489ef3038377fd2) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601hc42.120", 0x0800000, 0x0400000, CRC(3737c3f7) SHA1(ed01d926ac080991fd5b98b04977dde84152f8e1) )
+
+ ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600hc42.120", 0x400000, 0x400000, CRC(730640d6) SHA1(d0d7e7c85fd47e4c1cebc7953269979922da869d) )
+ROM_END
+
+ROM_START( kovs50 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc50.119", 0x100000, 0x454F8A, CRC(8ae17e93) SHA1(bd3a5c22453e5ce1036fce1f4224f21156049652) )
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600hc50.120", 0x180000, 0x800000, CRC(1bcf658c) SHA1(f29b3475437864adf653a7eab35868db16618866) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a0600hc50.rom", 0x0000000, 0x0800000, CRC(b64be5d6) SHA1(7a62429e095a11370dcf7cb80233fd463862e810) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b0600hc50.rom", 0x0000000, 0x0800000, CRC(759b172f) SHA1(d5c721ce3e490773b0ed7d3df21330225da12913) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovs51 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc51.119", 0x100000, 0x455145, CRC(cf978606) SHA1(be3eb0290a2829104a65f88d48fbe71d8881e48b) )
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600hc51.120", 0x180000, 0x800000, CRC(f7b6f432) SHA1(1c450f5eac830a41248c93b3e3f67abc217e18c3) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a0600hc51.rom", 0x0000000, 0x0800000, CRC(b2a208a1) SHA1(3c4191336aa760e6077eee9983c809dfbe3eb57a) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b0600hc51.rom", 0x0000000, 0x0800000, CRC(e0a70b54) SHA1(ad94e39fb418770af677083406c3db7a0279c865) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600hc51.rom", 0x400000, 0x454F47, CRC(132765c9) SHA1(b4f56dfeba59fea248ec4e04255033e2cb3ec8fb) )
+ROM_END
+
+ROM_START( kovs52 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc52.119", 0x100000, 0x454F8A, CRC(b03480a8) SHA1(91f982396e8026075807ff29c9d9a721fa879f08) )
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600hc52.120", 0x180000, 0x800000, CRC(14a294bc) SHA1(e1cb412612e98e143495f60208c6425224c2a183) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a0600hc41.rom", 0x0000000, 0x0800000, CRC(3a73f446) SHA1(102ac046ea44e704195105081d40125a54c42d69) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b0600hc41.rom", 0x0000000, 0x0800000, CRC(0b0ab3dc) SHA1(05e666b6c0dddafd531e7472db053b21ecc35ba8) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovs53 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc53.119", 0x100000, 0x454FBE, CRC(f3807138) SHA1(41e7c2a0e55de0c7ff3ee41557a9c3666c98541a) )
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600hc53.120", 0x180000, 0x800000, CRC(169b4e8b) SHA1(dec35a62db009075fa4fc4181730985366b0df65) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a0600hc53.rom", 0x0000000, 0x0800000, CRC(bb79255a) SHA1(3b378f905468d43ba0322e03927d41caee38dc2c) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b0600hc53.rom", 0x0000000, 0x0800000, CRC(383b4a57) SHA1(11667cd3e46679bffac9ccdf884cce8aea5270cf) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovs54 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc54.119", 0x100000, 0x46124A, CRC(b0b81cbb) SHA1(5d69fd98379d390ceaa24dfefaef1a7128f1dbae) )
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600hc54.120", 0x180000, 0x800000, CRC(657bc51d) SHA1(ecc451788779000009ff15c4895d93408a51c3ce) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovs55 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc55.119", 0x100000, 0x454F47, CRC(869f4a10) SHA1(f63cb7d1be50a99611cbfaa1fac0094b001ab927) )
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600s01.rom", 0x180000, 0x800000, CRC(a51f6c60) SHA1(e2c184d6e4bb1e6fc02ee2e5953693c7461746be) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovs56 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc56.119", 0x100000, 0x454F8A, CRC(0daecbde) SHA1(e09f57356bbbe3ad2ab77d832be4117319b88887) )
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600hc56.rom", 0x180000, 0x800000, CRC(214a45e1) SHA1(3b612190fe8a97666e489fcf30fd49c0063dfa9d) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovs57 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc57.119", 0x100000, 0x454F8A, CRC(60ef7fd0) SHA1(7b7116d95fe3b4083e7d857e04976b9cb4dbf545) )
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600hc57.119", 0x180000, 0x800000, CRC(7db8f663) SHA1(e712d332232451713ccd4bf11442c8f022bc5e96) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0602hc57.119", 0x1000000, 0x0800000, CRC(a03b62f3) SHA1(527df9ade8d093917955f6b607783efbec0b9952) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601hc57.119", 0x0800000, 0x0400000, CRC(1e86ebb8) SHA1(0bcac7ff634a43539e910411284928dfaa3005d0) )
+
+ ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovs58 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc58.119", 0x100000, 0x454FBE, CRC(ef89f5fc) SHA1(148b2eded3af19bded96e95049da161fe707e988) )
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600hc58.119", 0x180000, 0x800000, CRC(5bafcba9) SHA1(5a30db15bd2148710dc0b9d2e6022b81c8ca44c3) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a0600hc06.120", 0x0000000, 0x0800000, CRC(5bd7ea9f) SHA1(0eb33bd0e23441394ae7c6fa28aafe11adf0b22f) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0602hc42.120", 0x1000000, 0x0800000, CRC(b64e6473) SHA1(d231b85d1a3466565a90b2bb1489ef3038377fd2) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601hc42.120", 0x0800000, 0x0400000, CRC(3737c3f7) SHA1(ed01d926ac080991fd5b98b04977dde84152f8e1) )
+
+ ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600hc42.120", 0x400000, 0x400000, CRC(730640d6) SHA1(d0d7e7c85fd47e4c1cebc7953269979922da869d) )
+ROM_END
+
+ROM_START( kovs59 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc59.119", 0x100000, 0x454FBE, CRC(23e6ec2f) SHA1(43debef6c532952df6cb6603d15ec30f1790ce5e) )
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600hc59.119", 0x180000, 0x800000, CRC(c5a5ecbe) SHA1(7337a5b9f2f1450890c617f99aafef67d170fb8b) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a0600hc06.120", 0x0000000, 0x0800000, CRC(5bd7ea9f) SHA1(0eb33bd0e23441394ae7c6fa28aafe11adf0b22f) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0602hc42.120", 0x1000000, 0x0800000, CRC(b64e6473) SHA1(d231b85d1a3466565a90b2bb1489ef3038377fd2) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601hc42.120", 0x0800000, 0x0400000, CRC(3737c3f7) SHA1(ed01d926ac080991fd5b98b04977dde84152f8e1) )
+
+ ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600hc42.120", 0x400000, 0x400000, CRC(730640d6) SHA1(d0d7e7c85fd47e4c1cebc7953269979922da869d) )
+ROM_END
+
+ROM_START( kovs60 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc60.119", 0x100000, 0x454F8A, CRC(565084f2) SHA1(5af568ef2ee13d09c80eea501306b19af313d0c7) )
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a0600hc11.120", 0x0000000, 0x0800000, CRC(10297593) SHA1(7ec25fb8e31c2cbdeb6d5d7b599f00a72f1470f7) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b0600hc11.120", 0x0000000, 0x0800000, CRC(2fda37e0) SHA1(afffe7769c613434dbeb217c2e66d70d052c2026) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovs61 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc61.119", 0x100000, 0x454FBE, CRC(a26c1067) SHA1(aa9a724cb6f97be097ef4d436911531619641b18) )
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovs62 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc62.119", 0x100000, 0x454FBE, CRC(7dff5c82) SHA1(f4cf18c41c731b377c13cc4abc060a23b4eb0f24) )
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600hc54.120", 0x180000, 0x800000, CRC(657bc51d) SHA1(ecc451788779000009ff15c4895d93408a51c3ce) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a0600hc08.120", 0x0000000, 0x0800000, CRC(098cd614) SHA1(663e8ad60d1bdbdea22f8b186454649b4e432092) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b0600hc08.120", 0x0000000, 0x0800000, CRC(b3691ed3) SHA1(3664fbd8bd775817a5f51326ecc05180c83c5e19) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovs63 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc63.119", 0x100000, 0x46124A, CRC(5fad29b7) SHA1(806ce8b4d8e8b47d5d4ea7f1155ea537f33bbde9) )
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovs64 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc64.119", 0x100000, 0x454F54, CRC(146e77f1) SHA1(b1ffe66f495362521f0f595ce08d25caedc71fe6) )
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovs65 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc65.119", 0x100000, 0x454F5C, CRC(fe8a5ed0) SHA1(48611e4eb30f1cdece378693ca6003c8e925450b) )
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600s01.rom", 0x180000, 0x800000, CRC(a51f6c60) SHA1(e2c184d6e4bb1e6fc02ee2e5953693c7461746be) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovs66 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc66.119", 0x100000, 0x454F8A, CRC(a95e96ed) SHA1(11d7cdf3483608efe9200300eba07a357cc0ae01) )
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600s01.rom", 0x180000, 0x800000, CRC(a51f6c60) SHA1(e2c184d6e4bb1e6fc02ee2e5953693c7461746be) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovs67 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc67.119", 0x100000, 0x454F4C, CRC(2b5c49c3) SHA1(5d88575b28bad9bb02b40ac0e9d1cf5bcd7593c7) )
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600hc67.rom", 0x180000, 0x800000, CRC(111a5f5e) SHA1(fe968951fb971df9a927e02d7e6e6d28069d6875) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601hc07.120", 0x0800000, 0x0400000, CRC(b0809a1e) SHA1(3e9a20d38afea5eedbe0e7fd790c3223c88e20f8) )
+
+ ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovs68 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc68.119", 0x100000, 0x454FBE, CRC(dea6b22b) SHA1(93772f6d56e884e7b0f05b9abd560bf0ed3f318a) )
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600hc68.119", 0x180000, 0x800000, CRC(8d0f177a) SHA1(68731c99f684f294c038c9b5e831fd6dc334aa11) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a0600hc68.119", 0x0000000, 0x0800000, CRC(24091941) SHA1(7fc28b716aa115815470add57f07d99c21e53f38) )
+ ROM_LOAD( "a0601hc68.119", 0x0800000, 0x0800000, CRC(5f01af74) SHA1(a150902df6427463da17016d8263ee5e6ee52ae3) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b0600hc68.rom", 0x0000000, 0x0800000, CRC(1ce751b1) SHA1(6bb9297eb66d88ba4c6202bdc3b4142df51b13bd) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovs69 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc69.119", 0x100000, 0x454F8A, CRC(3fa3ca71) SHA1(727d0e61911e124b767be7bb6c94f70e2762b87d) )
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600hc69.119", 0x180000, 0x800000, CRC(a2b8c8b1) SHA1(a000402ecbe90d05f7dd3f933a31233ef482d09a) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a0600hc68.119", 0x0000000, 0x0800000, CRC(24091941) SHA1(7fc28b716aa115815470add57f07d99c21e53f38) )
+ ROM_LOAD( "a0601hc68.119", 0x0800000, 0x0800000, CRC(5f01af74) SHA1(a150902df6427463da17016d8263ee5e6ee52ae3) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b0600hc68.rom", 0x0000000, 0x0800000, CRC(1ce751b1) SHA1(6bb9297eb66d88ba4c6202bdc3b4142df51b13bd) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovs70 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc70.119", 0x100000, 0x400000, CRC(d1ba41e3) SHA1(a586d873aa29fbc76c5eb2d1e82a422bdc7980b2) )
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0x1400000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600hc70.119", 0x180000, 0xF0CBF1, CRC(a39397d4) SHA1(b8afc89fc85a3dd6bb36c1628d89594446f6ec90) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0602hc07.120", 0x1000000, 0x0800000, CRC(d9ea9298) SHA1(abaab6400613c1f2ff534fc0a9625e7dcf88a351) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601hc07.120", 0x0800000, 0x0400000, CRC(b0809a1e) SHA1(3e9a20d38afea5eedbe0e7fd790c3223c88e20f8) )
+
+ ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovs71 )
+ ROM_REGION( 0xE00000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc71.119", 0x100000, 0x751CE8, CRC(1b9d9073) SHA1(c91fa67713e0c9cff7c38661d8746820b79f4afb) )
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0x1400000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600hc71.119", 0x180000, 0x800000, CRC(6459e292) SHA1(4d24ea61ee400a7f2cef9f37a6e98599bcfcddde) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a0600hc50.rom", 0x0000000, 0x0800000, CRC(b64be5d6) SHA1(7a62429e095a11370dcf7cb80233fd463862e810) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b0600hc50.rom", 0x0000000, 0x0800000, CRC(759b172f) SHA1(d5c721ce3e490773b0ed7d3df21330225da12913) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+
+ ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovs72 )
+ ROM_REGION( 0xE00000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc72.119", 0x100000, 0x751CE8, CRC(ff1dad51) SHA1(c7730c52ffceead200c3b3ce73800a140a1235a0) )
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kov_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0x1400000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600hc72.119", 0x180000, 0x800000, CRC(92b89388) SHA1(a3ec0761858a77f3d74b7c56078190db239f5ca4) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a0600hc08.120", 0x0000000, 0x0800000, CRC(098cd614) SHA1(663e8ad60d1bdbdea22f8b186454649b4e432092) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0602hc72.119", 0x1000000, 0x0800000, CRC(efb30f14) SHA1(ab5b4232b2dfc9f4e3a77112028a903f30b41fb9) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b0600hc08.120", 0x0000000, 0x0800000, CRC(b3691ed3) SHA1(3664fbd8bd775817a5f51326ecc05180c83c5e19) )
+ ROM_LOAD( "b0601hc72.119", 0x0800000, 0x0400000, CRC(f43e4276) SHA1(b0ad317f70681e4300228f34bb8f4bead50111ea) )
+
+ ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+/***************************************
+ Knights of Valour Super Heroes
+***************************************/
+
+ROM_START( kovsh01 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc01.322", 0x100000, 0x400000, CRC(3ea84d27) SHA1(a35c5a7f4f9a0a64d15127dcccde1838db2e5484) )
+ //ROM_LOAD16_WORD_SWAP( "kovsh-v0104-u1.bin", 0x100000, 0x400000, CRC(4e2ba39b) SHA1(f3b5aa6f45cfd5a7f1e2a2e893d1652a3f23d6b8) ) // identical but the last 1MB is filled with 0xff instead of 0x00
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600hc01.322", 0x180000, 0x800000, CRC(28dd8d3a) SHA1(b872e026d9f0df87365e9ced275dd4683c280b11) )
+
+ /* all roms below need checking to see if they're the same on this board */
+ ROM_REGION( 0x1e00000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+ ROM_LOAD( "a0604.rom", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+ ROM_LOAD( "b0602.rom", 0x0c00000, 0x0100000, CRC(9df77934) SHA1(99a3fe337c13702c9aa2373bcd1bb1befd0e2a13) )
+
+ ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovsh02 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc02.322", 0x100000, 0x400000, CRC(612ffef0) SHA1(29b5b86f889096d571233b376726737e11780341) )
+ //ROM_LOAD16_WORD_SWAP( "kovsh-v0104-u1.bin", 0x100000, 0x400000, CRC(4e2ba39b) SHA1(f3b5aa6f45cfd5a7f1e2a2e893d1652a3f23d6b8) ) // identical but the last 1MB is filled with 0xff instead of 0x00
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kovsh_v100_china.322", 0x000000, 0x04000, CRC(a09af141) SHA1(fa7430874cb2f18437ea1192445fcd85fb2b3211) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600hc02.322", 0x180000, 0x800000, CRC(c9077658) SHA1(708c63fccc8dc88513492fc8cd803aca3a62e9fb) )
+
+ /* all roms below need checking to see if they're the same on this board */
+ ROM_REGION( 0x1e00000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a0600hc02.322", 0x0000000, 0x0800000, CRC(b41159b2) SHA1(3f563fda2984aa9db14203fd8ba482db1a8ad0af) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0602.324", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0602hc02.322", 0x1000000, 0x0800000, CRC(f86395c0) SHA1(86db74a862ea316cb7ac30ed0ddd90181809f6f4) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0603hc02.322", 0x1800000, 0x0400000, CRC(fc061deb) SHA1(2f6906117c63dd6ee13c5aad70d8b9e7541c23cc) )
+ ROM_LOAD( "a0604hc02.322", 0x1a00000, 0x0400000, CRC(87ff1a5e) SHA1(02a6f4d6976f0b3ca3fe993725e4419231697f07) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b0600hc02.322", 0x0000000, 0x0800000, CRC(895a1902) SHA1(d84fd403fdc8f4d707135fdecfe05eca950bb67b) )
+ ROM_LOAD( "b0601hc02.322", 0x0800000, 0x0400000, CRC(388ab398) SHA1(bff124d2ed3b74cb460433dea1317b88d3b4d22d) )
+ ROM_LOAD( "b0602hc02.322", 0x0c00000, 0x0100000, CRC(3346e6c7) SHA1(e0a59a81918118f8da5ad382a6f0071d5309f3dc) )
+
+ ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600hc2.332", 0x400000, 0x400000, CRC(baf0b56e) SHA1(ed6f30a7f62aee1f263efc12ffd3f908191cd171) )
+ROM_END
+
+ROM_START( kovsh03 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc03.322", 0x100000, 0x400000, CRC(f9e0bdc3) SHA1(fc7080d1255cae6b3a241fbbea24355530de0a8f) )
+ //ROM_LOAD16_WORD_SWAP( "kovsh-v0104-u1.bin", 0x100000, 0x400000, CRC(4e2ba39b) SHA1(f3b5aa6f45cfd5a7f1e2a2e893d1652a3f23d6b8) ) // identical but the last 1MB is filled with 0xff instead of 0x00
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kovsharm.bin", 0x000000, 0x04000, CRC(9d8ecc0c) SHA1(51f288e8aa3dd1d4b7f24155fea9c6a7f4cd1144) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ /* all roms below need checking to see if they're the same on this board */
+ ROM_REGION( 0x1e00000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+ ROM_LOAD( "a0604.rom", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+ ROM_LOAD( "b0602.rom", 0x0c00000, 0x0100000, CRC(9df77934) SHA1(99a3fe337c13702c9aa2373bcd1bb1befd0e2a13) )
+
+ ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovsh04 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc04.322", 0x100000, 0x400000, CRC(664fca69) SHA1(4d8e92b4616308e49291fe4846fc00255ae5509a) )
+ //ROM_LOAD16_WORD_SWAP( "kovsh-v0104-u1.bin", 0x100000, 0x400000, CRC(4e2ba39b) SHA1(f3b5aa6f45cfd5a7f1e2a2e893d1652a3f23d6b8) ) // identical but the last 1MB is filled with 0xff instead of 0x00
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ /* all roms below need checking to see if they're the same on this board */
+ ROM_REGION( 0x1e00000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+ ROM_LOAD( "a0604.rom", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+ ROM_LOAD( "b0602.rom", 0x0c00000, 0x0100000, CRC(9df77934) SHA1(99a3fe337c13702c9aa2373bcd1bb1befd0e2a13) )
+
+ ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovsh05 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc05.322", 0x100000, 0x400000, CRC(15ff59de) SHA1(1583053c16c9837079f5571f114ddf6ebf4bc234) )
+ //ROM_LOAD16_WORD_SWAP( "kovsh-v0104-u1.bin", 0x100000, 0x400000, CRC(4e2ba39b) SHA1(f3b5aa6f45cfd5a7f1e2a2e893d1652a3f23d6b8) ) // identical but the last 1MB is filled with 0xff instead of 0x00
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600hc01.322", 0x180000, 0x800000, CRC(28dd8d3a) SHA1(b872e026d9f0df87365e9ced275dd4683c280b11) )
+
+ /* all roms below need checking to see if they're the same on this board */
+ ROM_REGION( 0x1e00000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+ ROM_LOAD( "a0604.rom", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+ ROM_LOAD( "b0602.rom", 0x0c00000, 0x0100000, CRC(9df77934) SHA1(99a3fe337c13702c9aa2373bcd1bb1befd0e2a13) )
+
+ ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovsh06 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc06.322", 0x100000, 0x400000, CRC(3d18aa52) SHA1(0bc8afd55fc391a766c653aa02e73b8ac2963d03) )
+ //ROM_LOAD16_WORD_SWAP( "kovsh-v0104-u1.bin", 0x100000, 0x400000, CRC(4e2ba39b) SHA1(f3b5aa6f45cfd5a7f1e2a2e893d1652a3f23d6b8) ) // identical but the last 1MB is filled with 0xff instead of 0x00
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ /* all roms below need checking to see if they're the same on this board */
+ ROM_REGION( 0x1e00000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+ ROM_LOAD( "a0604.rom", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+ ROM_LOAD( "b0602.rom", 0x0c00000, 0x0100000, CRC(9df77934) SHA1(99a3fe337c13702c9aa2373bcd1bb1befd0e2a13) )
+
+ ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovsh07 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc07.322", 0x100000, 0x400000, CRC(558a4797) SHA1(3f1b41472d36fe800777fcefcb21ab7f67922bd7) )
+ //ROM_LOAD16_WORD_SWAP( "kovsh-v0104-u1.bin", 0x100000, 0x400000, CRC(4e2ba39b) SHA1(f3b5aa6f45cfd5a7f1e2a2e893d1652a3f23d6b8) ) // identical but the last 1MB is filled with 0xff instead of 0x00
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ /* all roms below need checking to see if they're the same on this board */
+ ROM_REGION( 0x1e00000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+ ROM_LOAD( "a0604.rom", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+ ROM_LOAD( "b0602.rom", 0x0c00000, 0x0100000, CRC(9df77934) SHA1(99a3fe337c13702c9aa2373bcd1bb1befd0e2a13) )
+
+ ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovsh08 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc08.322", 0x100000, 0x400000, CRC(0aa92f67) SHA1(be22c9388f30b692c20d442ac0f11efbcd4ab76c) )
+ //ROM_LOAD16_WORD_SWAP( "kovsh-v0104-u1.bin", 0x100000, 0x400000, CRC(4e2ba39b) SHA1(f3b5aa6f45cfd5a7f1e2a2e893d1652a3f23d6b8) ) // identical but the last 1MB is filled with 0xff instead of 0x00
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ /* all roms below need checking to see if they're the same on this board */
+ ROM_REGION( 0x1e00000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+ ROM_LOAD( "a0604.rom", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+ ROM_LOAD( "b0602.rom", 0x0c00000, 0x0100000, CRC(9df77934) SHA1(99a3fe337c13702c9aa2373bcd1bb1befd0e2a13) )
+
+ ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovsh09 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc09.322", 0x100000, 0x400000, CRC(4d3915de) SHA1(bd05be5ba9bd97f4bfc22944d1444cb49893801c) )
+ //ROM_LOAD16_WORD_SWAP( "kovsh-v0104-u1.bin", 0x100000, 0x400000, CRC(4e2ba39b) SHA1(f3b5aa6f45cfd5a7f1e2a2e893d1652a3f23d6b8) ) // identical but the last 1MB is filled with 0xff instead of 0x00
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kovsh_h09_china.asic", 0x000000, 0x04000, CRC(95b190a7) SHA1(6379acd02919fbf0dd77d86648cf17a3c3b81546) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600s09.322", 0x180000, 0x800000, CRC(d049c5bf) SHA1(8f75b6f3171d5dda9010be325a4c8f880b8fc645) )
+
+ /* all roms below need checking to see if they're the same on this board */
+ ROM_REGION( 0x1e00000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a0600hc02.322", 0x0000000, 0x0800000, CRC(b41159b2) SHA1(3f563fda2984aa9db14203fd8ba482db1a8ad0af) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+ ROM_LOAD( "a0604hc9.322", 0x1a00000, 0x0400000, CRC(93798795) SHA1(a178c6554c5034a670e882390587a101d4289872) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b0600hc02.322", 0x0000000, 0x0800000, CRC(895a1902) SHA1(d84fd403fdc8f4d707135fdecfe05eca950bb67b) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+ ROM_LOAD( "b0602hc9.322", 0x0c00000, 0x0100000, CRC(0f39414a) SHA1(0e8daa5c73f86e26da7c702b35d20112ebe91cf0) )
+
+ ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovsh010 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc10.322", 0x100000, 0x400000, CRC(125056e3) SHA1(f232dd877dd6b2ec6c5476e5f7a5f27b07a7904f) )
+ //ROM_LOAD16_WORD_SWAP( "kovsh-v0104-u1.bin", 0x100000, 0x400000, CRC(4e2ba39b) SHA1(f3b5aa6f45cfd5a7f1e2a2e893d1652a3f23d6b8) ) // identical but the last 1MB is filled with 0xff instead of 0x00
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600hc01.132", 0x180000, 0x800000, CRC(a919ec0f) SHA1(b464490abba8a5e651c407a7833c3a2e3befa5b8) )
+
+ /* all roms below need checking to see if they're the same on this board */
+ ROM_REGION( 0x1e00000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+ ROM_LOAD( "a0604.rom", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+ ROM_LOAD( "b0602.rom", 0x0c00000, 0x0100000, CRC(9df77934) SHA1(99a3fe337c13702c9aa2373bcd1bb1befd0e2a13) )
+
+ ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovsh011 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc11.322", 0x100000, 0x454F84, CRC(3fd33f08) SHA1(499b95f8beaf85eceff1ebbe7e043a504c31ec90) )
+ //ROM_LOAD16_WORD_SWAP( "kovsh-v0104-u1.bin", 0x100000, 0x400000, CRC(4e2ba39b) SHA1(f3b5aa6f45cfd5a7f1e2a2e893d1652a3f23d6b8) ) // identical but the last 1MB is filled with 0xff instead of 0x00
+
+ ROM_REGION( 0x454F4B, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kovshc11_v100_china.322", 0x000000, 0x454F4B, CRC(c35d713e) SHA1(9d1c526234706df0224f5b508d0f52561327a6b9) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600hc01.132", 0x180000, 0x800000, CRC(a919ec0f) SHA1(b464490abba8a5e651c407a7833c3a2e3befa5b8) )
+
+ /* all roms below need checking to see if they're the same on this board */
+ ROM_REGION( 0x1e00000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+ ROM_LOAD( "a0604.rom", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+ ROM_LOAD( "b0602.rom", 0x0c00000, 0x0100000, CRC(9df77934) SHA1(99a3fe337c13702c9aa2373bcd1bb1befd0e2a13) )
+
+ ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovsh012 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc12.322", 0x100000, 0x454FD8, CRC(3c13a89c) SHA1(b9ebbc6974b4fc6a13b1960891de9912222796ae) )
+ //ROM_LOAD16_WORD_SWAP( "kovsh-v0104-u1.bin", 0x100000, 0x400000, CRC(4e2ba39b) SHA1(f3b5aa6f45cfd5a7f1e2a2e893d1652a3f23d6b8) ) // identical but the last 1MB is filled with 0xff instead of 0x00
+
+ ROM_REGION( 0x454F4B, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kovshc11_v100_china.322", 0x000000, 0x454F4B, CRC(c35d713e) SHA1(9d1c526234706df0224f5b508d0f52561327a6b9) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600hc01.322", 0x180000, 0x800000, CRC(28dd8d3a) SHA1(b872e026d9f0df87365e9ced275dd4683c280b11) )
+
+ /* all roms below need checking to see if they're the same on this board */
+ ROM_REGION( 0x1e00000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a0600hc12.rom", 0x0000000, 0x0800000, CRC(51ace493) SHA1(a3749be3f847c3de47dc5d8fcefb53ba2957f3d5) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+ ROM_LOAD( "a0604.rom", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b0600hc12.rom", 0x0000000, 0x0800000, CRC(5bda3ffe) SHA1(b246b62db5150b398f8f9980723d12e348d40540) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+ ROM_LOAD( "b0602.sh3", 0x0c00000, 0x0400000, CRC(c3e0b454) SHA1(7aaa9b1abf9f1e7fe9acbba757ff7fbfa46557d3) )
+
+ ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovsh013 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc13.322", 0x100000, 0x454F84, CRC(9bd5eef6) SHA1(7075cea6e75265ea20a5a6f0ace69f19588a091e) )
+ //ROM_LOAD16_WORD_SWAP( "kovsh-v0104-u1.bin", 0x100000, 0x400000, CRC(4e2ba39b) SHA1(f3b5aa6f45cfd5a7f1e2a2e893d1652a3f23d6b8) ) // identical but the last 1MB is filled with 0xff instead of 0x00
+
+ ROM_REGION( 0x454F4B, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kovshc11_v100_china.322", 0x000000, 0x454F4B, CRC(c35d713e) SHA1(9d1c526234706df0224f5b508d0f52561327a6b9) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ /* all roms below need checking to see if they're the same on this board */
+ ROM_REGION( 0x1e00000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+ ROM_LOAD( "a0604.rom", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+ ROM_LOAD( "b0602.sh3", 0x0c00000, 0x0400000, CRC(c3e0b454) SHA1(7aaa9b1abf9f1e7fe9acbba757ff7fbfa46557d3) )
+
+ ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovsh014 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc14.322", 0x100000, 0x454F84, CRC(9bd5eef6) SHA1(7075cea6e75265ea20a5a6f0ace69f19588a091e) )
+ //ROM_LOAD16_WORD_SWAP( "kovsh-v0104-u1.bin", 0x100000, 0x400000, CRC(4e2ba39b) SHA1(f3b5aa6f45cfd5a7f1e2a2e893d1652a3f23d6b8) ) // identical but the last 1MB is filled with 0xff instead of 0x00
+
+ ROM_REGION( 0x454F4B, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kovshc11_v100_china.322", 0x000000, 0x454F4B, CRC(c35d713e) SHA1(9d1c526234706df0224f5b508d0f52561327a6b9) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ /* all roms below need checking to see if they're the same on this board */
+ ROM_REGION( 0x1e00000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+ ROM_LOAD( "a0604.rom", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+ ROM_LOAD( "b0602.sh3", 0x0c00000, 0x0400000, CRC(c3e0b454) SHA1(7aaa9b1abf9f1e7fe9acbba757ff7fbfa46557d3) )
+
+ ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovsh015 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc15.322", 0x100000, 0x454F47, CRC(f026142c) SHA1(3e6b8fe26f687ae21c6621e905b09c763645272c) )
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ /* all roms below need checking to see if they're the same on this board */
+ ROM_REGION( 0x1e00000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+ ROM_LOAD( "a0604.rom", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601.rom", 0x0800000, 0x0400000, CRC(a0bb1c2f) SHA1(0542348c6e27779e0a98de16f04f9c18158f2b28) )
+ ROM_LOAD( "b0602.rom", 0x0c00000, 0x0100000, CRC(9df77934) SHA1(99a3fe337c13702c9aa2373bcd1bb1befd0e2a13) )
+
+ ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovsh016 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc16.322", 0x100000, 0x400000, CRC(451082f3) SHA1(788becbabc80a7a22afa7cc42a0919811197b2fb) )
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kovsh016_v100_china.asic", 0x000000, 0x04000, CRC(d79943df) SHA1(d3c32b30aed245fec3ce18e7cd0fcab1de06d74d) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600hc16.322", 0x180000, 0x800000, CRC(c62ba437) SHA1(a120a9db95306749a1e2589db872d54dc9751210) )
+
+ /* all roms below need checking to see if they're the same on this board */
+ ROM_REGION( 0x1e00000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a0600hc16.322", 0x0000000, 0x0800000, CRC(a616c24d) SHA1(3d972ae65f28b16f56d7ed86d65060705eaa0483) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0602hc16.322", 0x1000000, 0x0800000, CRC(ab94d8a0) SHA1(f54843fc3ec6f2e0d56da5f8e2a55880bf603109) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+ ROM_LOAD( "a0604hc16.322", 0x1a00000, 0x0400000, CRC(8e3c32bc) SHA1(296376cefcf2d04e8c62a9131ca141162fafa3b0) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b0600hc16.322", 0x0000000, 0x0800000, CRC(2c5421a6) SHA1(fdb9d9b1d1b716f8835e093ffbb7f7d84b8fb630) )
+ ROM_LOAD( "b0601hc16.322", 0x0800000, 0x0400000, CRC(1e917e36) SHA1(480c691c0c3df7225145e163848c46404306fcb4) )
+ ROM_LOAD( "b0602hc16.322", 0x0c00000, 0x0400000, CRC(caec6b2c) SHA1(c27805d016c8ba7c35ffa01a3ccc4fa8ae900ead) )
+
+ ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovsh017 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc17.322", 0x100000, 0x454F49, CRC(72146042) SHA1(ded04e61c4297bade13d5766c419cc31016254d6) )
+ //ROM_LOAD16_WORD_SWAP( "kovsh-v0104-u1.bin", 0x100000, 0x400000, CRC(4e2ba39b) SHA1(f3b5aa6f45cfd5a7f1e2a2e893d1652a3f23d6b8) ) // identical but the last 1MB is filled with 0xff instead of 0x00
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kovsh016_v100_china.asic", 0x000000, 0x04000, CRC(d79943df) SHA1(d3c32b30aed245fec3ce18e7cd0fcab1de06d74d) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600hc17.322", 0x180000, 0x800000, CRC(12097ed8) SHA1(b154e025c77f54109c442822158fdf5cc0320e11) )
+
+ /* all roms below need checking to see if they're the same on this board */
+ ROM_REGION( 0x1e00000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a0600hc17.322", 0x0000000, 0x0800000, CRC(26b3b2ee) SHA1(46a5523204e7177902ed25f6a58903eea28beb21) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0602hc16.322", 0x1000000, 0x0800000, CRC(ab94d8a0) SHA1(f54843fc3ec6f2e0d56da5f8e2a55880bf603109) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+ ROM_LOAD( "a0604hc17.322", 0x1a00000, 0x0400000, CRC(d1bb8945) SHA1(a5019f11ceedbc8bd787bba5b1189e244b83c026) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b0600hc17.322", 0x0000000, 0x0800000, CRC(9ca61576) SHA1(8f57c7d98d4dc9cb433239230f2e48bfe8dcec72) )
+ ROM_LOAD( "b0601hc16.322", 0x0800000, 0x0400000, CRC(1e917e36) SHA1(480c691c0c3df7225145e163848c46404306fcb4) )
+ ROM_LOAD( "b0602hc17.322", 0x0c00000, 0x0400000, CRC(79a0c0e1) SHA1(a2eb32110e70a1946872b93fc241addf7d9cda2c) )
+
+ ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovsh018 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc18.322", 0x100000, 0x400000, CRC(5327ed6f) SHA1(fbe4e6a665dfee5fa9010839906168dd6d197075) )
+ //ROM_LOAD16_WORD_SWAP( "kovsh-v0104-u1.bin", 0x100000, 0x400000, CRC(4e2ba39b) SHA1(f3b5aa6f45cfd5a7f1e2a2e893d1652a3f23d6b8) ) // identical but the last 1MB is filled with 0xff instead of 0x00
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600hc18.rom", 0x180000, 0x800000, CRC(f4e822c0) SHA1(6a51d4c3ca6ed25fd838c6a6554bcd95a849cce5) )
+
+ /* all roms below need checking to see if they're the same on this board */
+ ROM_REGION( 0x1e00000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a0600hc18.rom", 0x0000000, 0x0800000, CRC(f96de31a) SHA1(b93a8683ef0437f92a946cc7fa425e748b669730) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0602hc18.rom", 0x1000000, 0x0800000, CRC(a9662e72) SHA1(1d8e10eb6b79399d2685c9678807a01743d6f8a8) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+ ROM_LOAD( "a0604hc18.rom", 0x1a00000, 0x0400000, CRC(cf060122) SHA1(587858e0aac2d703b0a94358c24e29d0832b2329) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b0600hc18.rom", 0x0000000, 0x0800000, CRC(7db37aa0) SHA1(d43f31551c9b0531cde51e5c77331c592e5c23b8) )
+ ROM_LOAD( "b0601hc18.rom", 0x0800000, 0x0400000, CRC(89a894d7) SHA1(5ae7cd79c7e80453b064cca82292537be76b7b54) )
+ ROM_LOAD( "b0602hc18.rom", 0x0c00000, 0x0400000, CRC(7638b82e) SHA1(14263da02ee20b382962039728550888005c6e10) )
+
+ ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovsh019 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc19.322", 0x100000, 0x400000, CRC(adac24c7) SHA1(386bcc440cd4595e661479faf743795722f422a4) )
+ //ROM_LOAD16_WORD_SWAP( "kovsh-v0104-u1.bin", 0x100000, 0x400000, CRC(4e2ba39b) SHA1(f3b5aa6f45cfd5a7f1e2a2e893d1652a3f23d6b8) ) // identical but the last 1MB is filled with 0xff instead of 0x00
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kovsh019_v100_china.asic", 0x000000, 0x04000, CRC(0f97efea) SHA1(af4b7222dbd774af759cf59f3277d6a784110afe) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600hc19.rom", 0x180000, 0x800000, CRC(809b5eaa) SHA1(b492781c7a13b39cccfa4f28a9660c8577360fbc) )
+
+ /* all roms below need checking to see if they're the same on this board */
+ ROM_REGION( 0x1e00000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0602hc16.322", 0x1000000, 0x0800000, CRC(ab94d8a0) SHA1(f54843fc3ec6f2e0d56da5f8e2a55880bf603109) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+ ROM_LOAD( "a0604hc16.322", 0x1a00000, 0x0400000, CRC(8e3c32bc) SHA1(296376cefcf2d04e8c62a9131ca141162fafa3b0) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601hc16.322", 0x0800000, 0x0400000, CRC(1e917e36) SHA1(480c691c0c3df7225145e163848c46404306fcb4) )
+ ROM_LOAD( "b0602hc16.322", 0x0c00000, 0x0400000, CRC(caec6b2c) SHA1(c27805d016c8ba7c35ffa01a3ccc4fa8ae900ead) )
+
+ ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovsh020 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc20.322", 0x100000, 0x400000, CRC(e1e08bec) SHA1(a432c1b2518977f6da1cc49c0a67c45298e9f04b) )
+ //ROM_LOAD16_WORD_SWAP( "kovsh-v0104-u1.bin", 0x100000, 0x400000, CRC(4e2ba39b) SHA1(f3b5aa6f45cfd5a7f1e2a2e893d1652a3f23d6b8) ) // identical but the last 1MB is filled with 0xff instead of 0x00
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kovsh016_v100_china.asic", 0x000000, 0x04000, CRC(d79943df) SHA1(d3c32b30aed245fec3ce18e7cd0fcab1de06d74d) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600hc19.rom", 0x180000, 0x800000, CRC(809b5eaa) SHA1(b492781c7a13b39cccfa4f28a9660c8577360fbc) )
+
+ /* all roms below need checking to see if they're the same on this board */
+ ROM_REGION( 0x1e00000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a0600hc02.322", 0x0000000, 0x0800000, CRC(b41159b2) SHA1(3f563fda2984aa9db14203fd8ba482db1a8ad0af) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0602hc16.322", 0x1000000, 0x0800000, CRC(ab94d8a0) SHA1(f54843fc3ec6f2e0d56da5f8e2a55880bf603109) )
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+ ROM_LOAD( "a0604hc16.322", 0x1a00000, 0x0400000, CRC(8e3c32bc) SHA1(296376cefcf2d04e8c62a9131ca141162fafa3b0) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b0600hc02.322", 0x0000000, 0x0800000, CRC(895a1902) SHA1(d84fd403fdc8f4d707135fdecfe05eca950bb67b) )
+ ROM_LOAD( "b0601hc16.322", 0x0800000, 0x0400000, CRC(1e917e36) SHA1(480c691c0c3df7225145e163848c46404306fcb4) )
+ ROM_LOAD( "b0602hc16.322", 0x0c00000, 0x0400000, CRC(caec6b2c) SHA1(c27805d016c8ba7c35ffa01a3ccc4fa8ae900ead) )
+
+ ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovsh021 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc21.322", 0x100000, 0x454F48, CRC(67aa4f1c) SHA1(4551e70934f63ab424af9720691754dbf5ec527f) )
+ //ROM_LOAD16_WORD_SWAP( "kovsh-v0104-u1.bin", 0x100000, 0x400000, CRC(4e2ba39b) SHA1(f3b5aa6f45cfd5a7f1e2a2e893d1652a3f23d6b8) ) // identical but the last 1MB is filled with 0xff instead of 0x00
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600hc21.322", 0x180000, 0x800000, CRC(7d3b36e0) SHA1(b80bce569393d3ce381d7657241d08d8cafea4e9) )
+
+ /* all roms below need checking to see if they're the same on this board */
+ ROM_REGION( 0x1e00000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0603.rom", 0x1800000, 0x0400000, CRC(ec31abda) SHA1(ee526655369bae63b0ef0730e9768b765c9950fc) )
+ ROM_LOAD( "a0604.rom", 0x1a00000, 0x0400000, CRC(26b59fd3) SHA1(53219376056f4766dc5236735599d982ceb56b84) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0601hc21.322", 0x0800000, 0x0400000, CRC(88f01bfb) SHA1(df14e280eb5b22c1bcedc16112ead97a3c344ab1) )
+ ROM_LOAD( "b0602.rom", 0x0c00000, 0x0100000, CRC(9df77934) SHA1(99a3fe337c13702c9aa2373bcd1bb1befd0e2a13) )
+
+ ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovqhs01 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "qhsghc01.rom", 0x100000, 0x400000, CRC(4c5ea070) SHA1(1f7db4e4c7e407d2994adc1ddbc8458688f64df2) )
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "qhsg_prot.c51", 0x000000, 0x04000, BAD_DUMP CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "lsqh2_t01.rom",0x180000, 0x800000, CRC(d498d97f) SHA1(97a7b6d2ed1170449e7c2899448af7cbbca4c94f) )
+ ROM_IGNORE( 0x800000 ) // second half identical
+
+ ROM_REGION( 0x3000000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "lsqh2_a01.rom", 0x0000000, 0x1000000, CRC(25ae3efd) SHA1(083d977602ddb5ad54fbdcba000cd4287de8d463) )
+ ROM_LOAD( "lsqh2_a23.rom", 0x1000000, 0x1000000, CRC(7a779112) SHA1(0a7d36b3715063d8eac629b95a9bb3ecd8e54fca) )
+ ROM_LOAD( "lsqh2_a45.rom", 0x2000000, 0x1000000, CRC(5d7de052) SHA1(7663b6cf09f65c4644661005a38f9aba84a32913) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "lsqh2_b01.rom", 0x0000000, 0x1000000, CRC(df7ca696) SHA1(7af3d27957a39de7e4873867c9972c05af7e7964) )
+
+ ROM_REGION( 0xc00000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "lsqh2_m01.rom",0x400000, 0x400000, CRC(01af1b65) SHA1(6cf523fa8f1e03f974771611bb9a4e08a4d4443f) )
+ ROM_IGNORE( 0x400000 ) // 400000-7fffff empty
+ ROM_CONTINUE( 0x800000, 0x400000 )
+ ROM_IGNORE( 0x400000 ) // c00000-ffffff empty
+ROM_END
+
+/***************************************
+ Knights of Valour Super Heroes Plus
+***************************************/
+
+ROM_START( kovsho01 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc01.132", 0x100000, 0x400000, CRC(8102c945) SHA1(f2f168974fe1b1b2d345456d3f2ce90d8f8a5221) )
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kovsh_v100_china.134", 0x000000, 0x04000, BAD_DUMP CRC(7ece721c) SHA1(3aa11f11803643f9aa4bdafa35421626d066c4e9) ) // this is the kovsh ARM rom, we intercept and modify protection calls
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600hc01.132", 0x180000, 0x800000, CRC(a919ec0f) SHA1(b464490abba8a5e651c407a7833c3a2e3befa5b8) )
+
+ ROM_REGION( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a0600hc01.132", 0x0000000, 0x0800000, CRC(eaa46772) SHA1(b70b2b7aaf87cd1c56f860eb2a88aed3564996da) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0601hc01.132", 0x0800000, 0x0800000, CRC(d94abe4b) SHA1(58ee22308ca8eaa73ee6532cefbb574f0a994eee) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0540hc01.132", 0x1800000, 0x0800000, CRC(631a868d) SHA1(cb15835b49f10c923c8e083579c9810dfc0424d2) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b0600hc01.132", 0x0000000, 0x0800000, CRC(f2a85ce6) SHA1(815c8f74909a0d37299aa7f4d22b5c0550674c55) )
+ ROM_LOAD( "b0540hc01.132", 0x0800000, 0x0800000, CRC(53002691) SHA1(d65477c93da089a7e54ffb1e00a122a787062ae0) )
+
+ ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovsho02 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc02.132", 0x100000, 0x400000, CRC(51f2fd47) SHA1(8bb7330c576995578f986a5dacab831caa736d5e) )
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kovsh_v100_china.134", 0x000000, 0x04000, BAD_DUMP CRC(7ece721c) SHA1(3aa11f11803643f9aa4bdafa35421626d066c4e9) ) // this is the kovsh ARM rom, we intercept and modify protection calls
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600hc01.132", 0x180000, 0x800000, CRC(a919ec0f) SHA1(b464490abba8a5e651c407a7833c3a2e3befa5b8) )
+
+ ROM_REGION( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a0600hc01.132", 0x0000000, 0x0800000, CRC(eaa46772) SHA1(b70b2b7aaf87cd1c56f860eb2a88aed3564996da) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0601hc01.132", 0x0800000, 0x0800000, CRC(d94abe4b) SHA1(58ee22308ca8eaa73ee6532cefbb574f0a994eee) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0540hc01.132", 0x1800000, 0x0800000, CRC(631a868d) SHA1(cb15835b49f10c923c8e083579c9810dfc0424d2) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b0600hc01.132", 0x0000000, 0x0800000, CRC(f2a85ce6) SHA1(815c8f74909a0d37299aa7f4d22b5c0550674c55) )
+ ROM_LOAD( "b0540hc01.132", 0x0800000, 0x0800000, CRC(53002691) SHA1(d65477c93da089a7e54ffb1e00a122a787062ae0) )
+
+ ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovsho03 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600h03.132", 0x100000, 0x400000, CRC(4958c43f) SHA1(31852f58e89f53b2ff7196b033771c42fee6338e) )
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kovsh_v100_china.134", 0x000000, 0x04000, BAD_DUMP CRC(7ece721c) SHA1(3aa11f11803643f9aa4bdafa35421626d066c4e9) ) // this is the kovsh ARM rom, we intercept and modify protection calls
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600hc01.132", 0x180000, 0x800000, CRC(a919ec0f) SHA1(b464490abba8a5e651c407a7833c3a2e3befa5b8) )
+
+ ROM_REGION( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a0600hc01.132", 0x0000000, 0x0800000, CRC(eaa46772) SHA1(b70b2b7aaf87cd1c56f860eb2a88aed3564996da) )
+ ROM_LOAD( "a0601hc01.132", 0x0800000, 0x0800000, CRC(d94abe4b) SHA1(58ee22308ca8eaa73ee6532cefbb574f0a994eee) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0540hc01.132", 0x1800000, 0x0800000, CRC(631a868d) SHA1(cb15835b49f10c923c8e083579c9810dfc0424d2) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b0600hc01.132", 0x0000000, 0x0800000, CRC(f2a85ce6) SHA1(815c8f74909a0d37299aa7f4d22b5c0550674c55) )
+ ROM_LOAD( "b0540hc01.132", 0x0800000, 0x0800000, CRC(53002691) SHA1(d65477c93da089a7e54ffb1e00a122a787062ae0) )
+
+ ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovsho04 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc04.132", 0x100000, 0x400000, CRC(14f0ce80) SHA1(c155d9104fbe257d77789bedccb018a6677b149c) )
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kovsh_v100_china.132", 0x000000, 0x04000, BAD_DUMP CRC(0d87d4a1) SHA1(bc981c20da426143c5e49d9fadf680b185002dd1) ) // this is the kovsh ARM rom, we intercept and modify protection calls
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600hc01.132", 0x180000, 0x800000, CRC(a919ec0f) SHA1(b464490abba8a5e651c407a7833c3a2e3befa5b8) )
+
+ ROM_REGION( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0540hc04.132", 0x1800000, 0x0800000, CRC(e6153471) SHA1(98f28e7cd661d9c51838d8413a289331d3b822fe) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0540h04.132", 0x0800000, 0x0800000, CRC(aa236e3b) SHA1(a9fb4e7107cd2eaabc32df2c633b4fbac1563205) )
+
+ ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovsho05 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc05.132", 0x100000, 0x400000, CRC(5399b60e) SHA1(7c896961177a66b0e5e79f2f97ba25a7fa8e9500) )
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kovsh_v100_china.132", 0x000000, 0x04000, BAD_DUMP CRC(0d87d4a1) SHA1(bc981c20da426143c5e49d9fadf680b185002dd1) ) // this is the kovsh ARM rom, we intercept and modify protection calls
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600hc01.132", 0x180000, 0x800000, CRC(a919ec0f) SHA1(b464490abba8a5e651c407a7833c3a2e3befa5b8) )
+
+ ROM_REGION( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0540hc04.132", 0x1800000, 0x0800000, CRC(e6153471) SHA1(98f28e7cd661d9c51838d8413a289331d3b822fe) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0540h04.132", 0x0800000, 0x0800000, CRC(aa236e3b) SHA1(a9fb4e7107cd2eaabc32df2c633b4fbac1563205) )
+
+ ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovsho06 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc06.132", 0x100000, 0x400000, CRC(96d87c9d) SHA1(55cc1bced4f3990b55295de5de8d6b9be48fd2b3) )
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kovsh_v100_china.133", 0x000000, 0x04000, BAD_DUMP CRC(b3123ccb) SHA1(ac13a9a3bcf86ea7dfd93e58e4b6772a9ca5ab35) ) // this is the kovsh ARM rom, we intercept and modify protection calls
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600hc01.132", 0x180000, 0x800000, CRC(a919ec0f) SHA1(b464490abba8a5e651c407a7833c3a2e3befa5b8) )
+
+ ROM_REGION( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a0600hc01.132", 0x0000000, 0x0800000, CRC(eaa46772) SHA1(b70b2b7aaf87cd1c56f860eb2a88aed3564996da) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0601hc01.132", 0x0800000, 0x0800000, CRC(d94abe4b) SHA1(58ee22308ca8eaa73ee6532cefbb574f0a994eee) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0540hc06.132", 0x1800000, 0x0800000, CRC(4f4ac911) SHA1(436e4534ce953a301f3eaacd483f68b320171c59) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b0600hc01.132", 0x0000000, 0x0800000, CRC(f2a85ce6) SHA1(815c8f74909a0d37299aa7f4d22b5c0550674c55) )
+ ROM_LOAD( "b0540h06.132", 0x0800000, 0x0800000, CRC(94eb0579) SHA1(3041c7e3cc8fedbbe94a58b2c6aba3f32a3ac01c) )
+
+ ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovsho07 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc07.132", 0x100000, 0x454F4C, CRC(e153264e) SHA1(28697741308d4670b3c078f3c13ef107810edbdd) )
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kovshc07_v100_china.asic", 0x000000, 0x04000, BAD_DUMP CRC(8427c690) SHA1(e08ac566e98fa604fb819ce6c7871e112969f305) ) // this is the kovsh ARM rom, we intercept and modify protection calls
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600.rom", 0x180000, 0x800000, CRC(4acc1ad6) SHA1(0668dbd5e856c2406910c6b7382548b37c631780) )
+
+ ROM_REGION( 0x2800000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a0600hc07.rom", 0x0000000, 0x0800000, CRC(0f73015a) SHA1(8d41f1892163b38bf1531283e867ced985304679) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0601hc08.132", 0x0800000, 0x0800000, CRC(cd391de8) SHA1(c593f61ba9e0c42c4a48e549b217c396099ca840) )
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0540hc07.132", 0x1800000, 0x1000000, CRC(7d85204b) SHA1(b73fa7fa576089d510f73cc6c79bac5e5ed8cc20) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b0600hc08.123", 0x0000000, 0x0800000, CRC(437a3c51) SHA1(f1d444fe6e66e22aa3ce412de7ef34a647a43554) )
+ ROM_LOAD( "b0540hc08.132", 0x0800000, 0x0800000, CRC(6e21727b) SHA1(1b23ec0beca8daf8020a4bbab42961c8f5557e1e) )
+
+ ROM_REGION( 0x900000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600hc07.rom", 0x400000, 0x40001C, CRC(ae740508) SHA1(86d79163028d4615e7f34e4eaea499126a2db7dd) )
+ROM_END
+
+ROM_START( kovsho08 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc08.132", 0x100000, 0x454F4A, CRC(843d3523) SHA1(3f1d331e6b315efd881df8dde54d6f11edd0a08f) )
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kovshc08_v100_china.132", 0x000000, 0x04000, BAD_DUMP CRC(9af4d680) SHA1(5512504272a0940274f3cf7cd8e15ff4fa9d594b) ) // this is the kovsh ARM rom, we intercept and modify protection calls
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600hc01.132", 0x180000, 0x800000, CRC(a919ec0f) SHA1(b464490abba8a5e651c407a7833c3a2e3befa5b8) )
+
+ ROM_REGION( 0x2800000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a0600hc01.132", 0x0000000, 0x0800000, CRC(eaa46772) SHA1(b70b2b7aaf87cd1c56f860eb2a88aed3564996da) )
+ ROM_LOAD( "a0601hc08.132", 0x0800000, 0x0800000, CRC(cd391de8) SHA1(c593f61ba9e0c42c4a48e549b217c396099ca840) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0540hc08.132", 0x1800000, 0x1000000, CRC(7d85204b) SHA1(b73fa7fa576089d510f73cc6c79bac5e5ed8cc20) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b0600hc08.132", 0x0000000, 0x0800000, CRC(8e650b67) SHA1(cfd600a2cf1d86d493af50e2759022aaa1b61ac6) )
+ ROM_LOAD( "b0540hc08.132", 0x0800000, 0x0800000, CRC(6e21727b) SHA1(1b23ec0beca8daf8020a4bbab42961c8f5557e1e) )
+
+ ROM_REGION( 0x900000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600hc08.132", 0x400000, 0x40001C, CRC(c68e36b6) SHA1(690b5f4734a4f48fa010df0611d7188f3dff4deb) )
+ROM_END
+
+ROM_START( kovsho09 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc014.132", 0x100000, 0x454F84, CRC(a360fdf7) SHA1(2820c24ef9134b198976fde70f3eccc574b06c00) )
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kovsh_v100_china.asic", 0x000000, 0x04000, BAD_DUMP CRC(0f09a5c1) SHA1(621b38c05f33277608d58b49822aebc930ae4870) ) // this is the kovsh ARM rom, we intercept and modify protection calls
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600hc01.132", 0x180000, 0x800000, CRC(a919ec0f) SHA1(b464490abba8a5e651c407a7833c3a2e3befa5b8) )
+
+ ROM_REGION( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a0600.rom", 0x0000000, 0x0800000, CRC(d8167834) SHA1(fa55a99629d03b2ea253392352f70d2c8639a991) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0540.rom", 0x1800000, 0x0800000, CRC(4fd3413e) SHA1(5e8f3e421342bf558c77e59635f9b5d713e825c2) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0540.rom", 0x0800000, 0x0800000, CRC(60999757) SHA1(118cf058e67858958bcb931e14f5d160c7de87cc) )
+
+ ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600.rom", 0x400000, 0x400000, CRC(3ada4fd6) SHA1(4c87adb25d31cbd41f04fbffe31f7bc37173da76) )
+ROM_END
+
+ROM_START( kovsho10 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc10.132", 0x100000, 0x454F48, CRC(645f924f) SHA1(7d5ce45910a6ead39b0d0457d9e98e7609b0c3cb) )
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kovshc07_v100_china.asic", 0x000000, 0x04000, BAD_DUMP CRC(8427c690) SHA1(e08ac566e98fa604fb819ce6c7871e112969f305) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600hc01.132", 0x180000, 0x800000, CRC(a919ec0f) SHA1(b464490abba8a5e651c407a7833c3a2e3befa5b8) )
+
+ ROM_REGION( 0x2800000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a0600hc07.rom", 0x0000000, 0x0800000, CRC(0f73015a) SHA1(8d41f1892163b38bf1531283e867ced985304679) )
+ ROM_LOAD( "a0601hc08.132", 0x0800000, 0x0800000, CRC(cd391de8) SHA1(c593f61ba9e0c42c4a48e549b217c396099ca840) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0540hc08.132", 0x1800000, 0x1000000, CRC(7d85204b) SHA1(b73fa7fa576089d510f73cc6c79bac5e5ed8cc20) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b0600hc08.123", 0x0000000, 0x0800000, CRC(437a3c51) SHA1(f1d444fe6e66e22aa3ce412de7ef34a647a43554) )
+ ROM_LOAD( "b0540hc08.132", 0x0800000, 0x0800000, CRC(6e21727b) SHA1(1b23ec0beca8daf8020a4bbab42961c8f5557e1e) )
+
+ ROM_REGION( 0x900000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600hc07.rom", 0x400000, 0x40001C, CRC(ae740508) SHA1(86d79163028d4615e7f34e4eaea499126a2db7dd) )
+ROM_END
+
+ROM_START( kovsho11 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0600hc11.132", 0x100000, 0x454F46, CRC(2c4ed676) SHA1(7f30986859604f5ab90b22ac39614995f53ce7ce) )
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "kovsh11_v100_china.asic", 0x000000, 0x04000, BAD_DUMP CRC(537b628d) SHA1(013be0cbff49ccca97d0fcb2df3e70da1dfeca3a) ) // this is the kovsh ARM rom, we intercept and modify protection calls
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0600hc01.132", 0x180000, 0x800000, CRC(a919ec0f) SHA1(b464490abba8a5e651c407a7833c3a2e3befa5b8) )
+
+ ROM_REGION( 0x2800000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a0600hc07.rom", 0x0000000, 0x0800000, CRC(0f73015a) SHA1(8d41f1892163b38bf1531283e867ced985304679) )
+ ROM_LOAD( "a0601.rom", 0x0800000, 0x0800000, CRC(ff7a4373) SHA1(7def9fca7513ad5a117da230bebd2e3c78679041) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0602.rom", 0x1000000, 0x0800000, CRC(e7a32959) SHA1(3d0ed684dc5b269238890836b2ce7ef46aa5265b) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a0540hc11.132", 0x1800000, 0x0800000, CRC(eaa23882) SHA1(ab2e26f13d9f965b1870b4dd373427e43e4c03a8) )
+ ROM_LOAD( "a0541hc11.132", 0x2000000, 0x0800000, CRC(a723f320) SHA1(b4d4576d0748e9d40a81c0ccabd2d7ee46cf999d) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b0600.rom", 0x0000000, 0x0800000, CRC(7d3cd059) SHA1(00cf994b63337e0e4ebe96453daf45f24192af1c) )
+ ROM_LOAD( "b0540hc11.132", 0x0800000, 0x0800000, CRC(c3eefa33) SHA1(0d4a47e3c5661268e2f32d3b982b95e765c9b2ad) )
+
+
+ ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0600hc11.132", 0x400000, 0x400000, CRC(459ad15f) SHA1(6dda85c32e5472db60551870cb522e9333013b32) )
+ROM_END
+
+ROM_START( martmasthc01 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "v104hc01_32m.u9", 0x100000, 0x400000, CRC(c8b39568) SHA1(f377a3ba3461f2b84f3acf8febf98707a7f2a62b) )
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "martial_masters_v101_cn.asic", 0x000000, 0x04000, CRC(b3e25b7d) SHA1(6147d7ee2e11636521df1bb96ed5da8ad21b2a57) ) // not verified, could be bad
+
+ ROM_REGION32_LE( 0x400000, "user1", 0 ) /* Protection Data (encrypted external ARM data) */
+ ROM_LOAD( "v102_16m.u10", 0x000000, 0x200000, CRC(18b745e6) SHA1(7bcb58dd3a2d6072f492cf0dd7181cb061c1f49d) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t1000.u3", 0x180000, 0x800000, CRC(bbf879b5) SHA1(bd9a6aea34ad4001e89e62ff4b7a2292eb833c00) )
+
+ ROM_REGION( 0x2800000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a1000.u3", 0x0000000, 0x0800000, CRC(43577ac8) SHA1(6eea8b455985d5bac74dcc9943cdc3c0902de6cc) )
+ ROM_LOAD( "a1001.u4", 0x0800000, 0x0800000, CRC(fe7a476f) SHA1(a8c7f1f0dd3e53141aed6d927eb88a3ceebb81e4) )
+ ROM_LOAD( "a1002.u6", 0x1000000, 0x0800000, CRC(62e33d38) SHA1(96163d583e25073594f8413ce263e56b66bd69a1) )
+ ROM_LOAD( "a1003.u8", 0x1800000, 0x0800000, CRC(b2c4945a) SHA1(7b18287a2db56db3651cfd4deb607af53522fefd) )
+ ROM_LOAD( "a1004.u10", 0x2000000, 0x0400000, CRC(9fd3f5fd) SHA1(057531f91062be51589c6cf8f4170089b9be6380) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b1000.u9", 0x0000000, 0x0800000, CRC(c5961f6f) SHA1(a68060b10edbd084cbde79d2ed1c9084777beb10) )
+ ROM_LOAD( "b1001.u11", 0x0800000, 0x0800000, CRC(0b7e1c06) SHA1(545e15e0087f8621d593fecd8b4013f7ca311686) )
+
+ ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m1000.u5", 0x400000, 0x800000, CRC(ed407ae8) SHA1(a6e9c09b39c13e8fb7fbc89fa9f823cbeb66e901) )
+ ROM_LOAD( "m1001.u7", 0xc00000, 0x400000, CRC(662d2d48) SHA1(2fcc3099d9c04456cae3b13035fb28eaf709e7d8) )
+ROM_END
+
+ROM_START( olds100s01 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0500hc01.v103",0x100000, 0x400000, CRC(64dc8f38) SHA1(6be1377ae6a837a93e22ba39c5132a9bf05f114e) )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0500.rom", 0x180000, 0x400000, CRC(d881726c) SHA1(a82517e665996f7b7017c940f1fcf016fccb65c2) )
+ ROM_LOAD( "t0501.rom", 0x580000, 0x200000, CRC(d2106864) SHA1(65d827135b87d82196433aea3279608ee263feca) )
+
+ ROM_REGION( 0x1c00000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a0500.rom", 0x0000000, 0x400000, CRC(80a59197) SHA1(7d0108e2f0d0347d43ace2d96c0388202c05fdfb) )
+ ROM_LOAD( "a0501.rom", 0x0400000, 0x400000, CRC(98c931b1) SHA1(9b70d1a7beb4c3a0c1436c25fd1fb76e47539538) )
+ ROM_LOAD( "a0502.rom", 0x0800000, 0x400000, CRC(c3fcdf1d) SHA1(107585fd103fcd0af0fb7db283be4f7c7058aef7) )
+ ROM_LOAD( "a0503.rom", 0x0c00000, 0x400000, CRC(066dffec) SHA1(f023032a7202b7090fb609a39e0f19018e664bf3) )
+ ROM_LOAD( "a0504.rom", 0x1000000, 0x400000, CRC(45337583) SHA1(c954d0e5bf7fa99c90b0d154e7119d2b0c461f1c) )
+ ROM_LOAD( "a0505.rom", 0x1400000, 0x400000, CRC(5b8cf3a5) SHA1(856d1e47b5d9a66dcfbdc74a51ed646fd7d96a35) )
+ ROM_LOAD( "a0506.rom", 0x1800000, 0x400000, CRC(087ac60c) SHA1(3d5bf7dd40c8a3c1224cf82e12410ca904c0c5db) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b0500.rom", 0x0000000, 0x400000, CRC(cde07f74) SHA1(1fe90db7c57faa28f3a054b2c07909bef89e3efb) )
+ ROM_LOAD( "b0501.rom", 0x0400000, 0x400000, CRC(1546c2e9) SHA1(a7b9c8b44203db54a59d49fe469bb52bba807ba2) )
+ ROM_LOAD( "b0502.rom", 0x0800000, 0x400000, CRC(e97b31c3) SHA1(1a7ca4f6c8644e84a33ae41cd4637f21046b14c5) )
+ ROM_LOAD( "b0503.u16", 0x0c00000, 0x400000, CRC(e41d98e4) SHA1(f80b27fcee81762993e09bf1b3cad6e85274760c) )
+
+ ROM_REGION( 0x1000000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0500.rom", 0x400000, 0x200000, CRC(37928cdd) SHA1(e80498cabc2a6a54d4f3ebcb097d4b3fad96fe55) )
+ROM_END
+
+/***************************************
+ Oriental Legend Plus
+***************************************/
+
+ROM_START( orlegends01 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0101hc01.s160", 0x100000, 0x200000, CRC(13e7486d) SHA1(fc42e807845443fe477b51fdb095b68cdadda6d8) )
+
+ ROM_REGION( 0x800000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0100.u8", 0x180000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) )
+
+ ROM_REGION( 0x1800000, "sprcol", 0 )
+ 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 )
+ 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 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0100.u1", 0x400000, 0x200000, CRC(e5c36c83) SHA1(50c6f66770e8faa3df349f7d68c407a7ad021716) )
+ROM_END
+
+ROM_START( orlegends02 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0101hc02.s160", 0x100000, 0x200000, CRC(47bd218f) SHA1(877eab1ab4ee9002b7f060e2dd4af05bccc19fad) )
+
+ ROM_REGION( 0x800000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0100s02.u8", 0x180000, 0x400000, CRC(d69009ed) SHA1(ac5834a082d7912fe9b36722490446d13ca23c83) )
+
+ ROM_REGION( 0x1800000, "sprcol", 0 )
+ 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 )
+ 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 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0100.u1", 0x400000, 0x200000, CRC(e5c36c83) SHA1(50c6f66770e8faa3df349f7d68c407a7ad021716) )
+ROM_END
+
+ROM_START( orlegends03 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0103hc03.s160", 0x100000, 0x200000, CRC(660f3956) SHA1(d58be714ce0d4628400c2c39a32d5cd28a1de600) )
+
+ ROM_REGION( 0x800000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0100.u8", 0x180000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) )
+
+ ROM_REGION( 0x1800000, "sprcol", 0 )
+ 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 )
+ 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 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0100.u1", 0x400000, 0x200000, CRC(e5c36c83) SHA1(50c6f66770e8faa3df349f7d68c407a7ad021716) )
+ROM_END
+
+ROM_START( orlegends04 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0103hc04.s160", 0x100000, 0x200000, CRC(3b8812c8) SHA1(d5e74bbe6e843cbd538536b60921c0cebab264c8) )
+
+ ROM_REGION( 0x800000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0100.u8", 0x180000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) )
+
+ ROM_REGION( 0x1800000, "sprcol", 0 )
+ 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 )
+ 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 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0100.u1", 0x400000, 0x200000, CRC(e5c36c83) SHA1(50c6f66770e8faa3df349f7d68c407a7ad021716) )
+ROM_END
+
+ROM_START( orlegends05 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0103hc05.s160", 0x100000, 0x200000, CRC(85b49375) SHA1(d8371fd2abe4c7f4a07ddbc0698e1e641a1e0531) )
+
+ ROM_REGION( 0x800000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0100.u8", 0x180000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) )
+
+ ROM_REGION( 0x1800000, "sprcol", 0 )
+ 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 )
+ 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 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0100.u1", 0x400000, 0x200000, CRC(e5c36c83) SHA1(50c6f66770e8faa3df349f7d68c407a7ad021716) )
+ROM_END
+
+ROM_START( orlegends06 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0103hc06.s160", 0x100000, 0x200000, CRC(bab2066c) SHA1(8d60fa73b103bdabb5bb798223acd44b63e5dd2b) )
+
+ ROM_REGION( 0x800000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0100.u8", 0x180000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) )
+
+ ROM_REGION( 0x1800000, "sprcol", 0 )
+ 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 )
+ 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 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0100.u1", 0x400000, 0x200000, CRC(e5c36c83) SHA1(50c6f66770e8faa3df349f7d68c407a7ad021716) )
+ROM_END
+
+ROM_START( orlegends07 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0103hc07.s160", 0x100000, 0x200000, CRC(3fcaa3b8) SHA1(4dbedb20653cf0f6308fe3b00195cd24119332cf) )
+
+ ROM_REGION( 0x800000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0100.u8", 0x180000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) )
+
+ ROM_REGION( 0x1800000, "sprcol", 0 )
+ 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 )
+ 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 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0100.u1", 0x400000, 0x200000, CRC(e5c36c83) SHA1(50c6f66770e8faa3df349f7d68c407a7ad021716) )
+ROM_END
+
+ROM_START( orlegends08 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0103hc08.s160", 0x100000, 0x200000, CRC(825aa3be) SHA1(eefcd9e420ff58f0415ed3cf3e96218b0699fff2) )
+
+ ROM_REGION( 0x800000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0100.u8", 0x180000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) )
+
+ ROM_REGION( 0x1800000, "sprcol", 0 )
+ 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 )
+ 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 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0100.u1", 0x400000, 0x200000, CRC(e5c36c83) SHA1(50c6f66770e8faa3df349f7d68c407a7ad021716) )
+ROM_END
+
+ROM_START( orlegends09 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0103hc09.s160", 0x100000, 0x200000, CRC(2335a6c1) SHA1(82613afc72441cd01e321cf17ef71d3c7a4fed4b) )
+
+ ROM_REGION( 0x800000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0100.u8", 0x180000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) )
+
+ ROM_REGION( 0x1800000, "sprcol", 0 )
+ 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 )
+ 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 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0100.u1", 0x400000, 0x200000, CRC(e5c36c83) SHA1(50c6f66770e8faa3df349f7d68c407a7ad021716) )
+ROM_END
+
+ROM_START( orlegends10 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0103hc10.s160", 0x100000, 0x200000, CRC(0a5bf0fc) SHA1(ebd5f323f8e1150b96ee2c15ffc6140ad073c9fd) )
+
+ ROM_REGION( 0x800000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0100.u8", 0x180000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) )
+
+ ROM_REGION( 0x1800000, "sprcol", 0 )
+ 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 )
+ 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 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0100.u1", 0x400000, 0x200000, CRC(e5c36c83) SHA1(50c6f66770e8faa3df349f7d68c407a7ad021716) )
+ROM_END
+
+ROM_START( orlegends11 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0103hc11.s160", 0x100000, 0x200000, CRC(10f32d7c) SHA1(d8a845d01207c0d21031cc17dd9770e6ac45d0a4) )
+
+ ROM_REGION( 0x800000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0100.u8", 0x180000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) )
+
+ ROM_REGION( 0x1800000, "sprcol", 0 )
+ 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 )
+ 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 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0100.u1", 0x400000, 0x200000, CRC(e5c36c83) SHA1(50c6f66770e8faa3df349f7d68c407a7ad021716) )
+ROM_END
+
+ROM_START( orlegends12 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0103hc12.s160", 0x100000, 0x201228, CRC(d473702c) SHA1(35c86f453463990acfb550c3b94823e6b117ecdb) )
+
+ ROM_REGION( 0x800000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0100.u8", 0x180000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) )
+
+ ROM_REGION( 0x1800000, "sprcol", 0 )
+ 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 )
+ 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 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0100.u1", 0x400000, 0x200000, CRC(e5c36c83) SHA1(50c6f66770e8faa3df349f7d68c407a7ad021716) )
+ROM_END
+
+ROM_START( orlegends13 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0103hc13.s160", 0x100000, 0x200000, CRC(3b0b3733) SHA1(f1035f3f9c7c90d091d19bb3d779e5337ed83eef) )
+
+ ROM_REGION( 0x800000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0100.u8", 0x180000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) )
+
+ ROM_REGION( 0x1800000, "sprcol", 0 )
+ 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 )
+ 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 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0100.u1", 0x400000, 0x200000, CRC(e5c36c83) SHA1(50c6f66770e8faa3df349f7d68c407a7ad021716) )
+ROM_END
+
+ROM_START( orlegends14 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0103hc14.s160", 0x100000, 0x200000, CRC(a7d2097e) SHA1(1ba3ce24bedd599788e28dd62906ffb6571c8135) )
+
+ ROM_REGION( 0x800000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0100.u8", 0x180000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) )
+
+ ROM_REGION( 0x1800000, "sprcol", 0 )
+ 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 )
+ 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 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0100.u1", 0x400000, 0x200000, CRC(e5c36c83) SHA1(50c6f66770e8faa3df349f7d68c407a7ad021716) )
+ROM_END
+
+ROM_START( orlegends15 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0103hc15.s160", 0x100000, 0x200000, CRC(c06bf0d8) SHA1(19ca4fc33273715eb9ff840b5c4b3d19ab5ba96a) )
+
+ ROM_REGION( 0x800000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0100.u8", 0x180000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) )
+
+ ROM_REGION( 0x1800000, "sprcol", 0 )
+ 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 )
+ 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 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0100.u1", 0x400000, 0x200000, CRC(e5c36c83) SHA1(50c6f66770e8faa3df349f7d68c407a7ad021716) )
+ROM_END
+
+ROM_START( orlegends16 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0103hc16.s160", 0x100000, 0x200000, CRC(193f6fb7) SHA1(544b590097e2d925ed1d70ee85a49d5a5ebeb1a0) )
+
+ ROM_REGION( 0x800000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0100.u8", 0x180000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) )
+
+ ROM_REGION( 0x1800000, "sprcol", 0 )
+ 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 )
+ 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 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0100.u1", 0x400000, 0x200000, CRC(e5c36c83) SHA1(50c6f66770e8faa3df349f7d68c407a7ad021716) )
+ROM_END
+
+ROM_START( orlegends17 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0103hc17.s160", 0x100000, 0x200000, CRC(da526a83) SHA1(7572f1cc07061f017c1d009a509efbdae6b1e176) )
+
+ ROM_REGION( 0x800000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0100.u8", 0x180000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) )
+
+ ROM_REGION( 0x1800000, "sprcol", 0 )
+ 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 )
+ 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 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0100.u1", 0x400000, 0x200000, CRC(e5c36c83) SHA1(50c6f66770e8faa3df349f7d68c407a7ad021716) )
+ROM_END
+
+ROM_START( orlegends18 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0103hc18.s160", 0x100000, 0x200000, CRC(7d12e593) SHA1(ff825c8af0decfcbcb585f032104d5ab9fde99b9) )
+
+ ROM_REGION( 0x800000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0100.u8", 0x180000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) )
+
+ ROM_REGION( 0x1800000, "sprcol", 0 )
+ 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 )
+ 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 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0100.u1", 0x400000, 0x200000, CRC(e5c36c83) SHA1(50c6f66770e8faa3df349f7d68c407a7ad021716) )
+ROM_END
+
+ROM_START( orlegends19 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0103hc19.s160", 0x100000, 0x200000, CRC(b767a94b) SHA1(15f14ab24b09cd2197cfd8b61c9824fda0aa95d8) )
+
+ ROM_REGION( 0x800000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0100.u8", 0x180000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) )
+
+ ROM_REGION( 0x1800000, "sprcol", 0 )
+ 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 )
+ 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 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0100.u1", 0x400000, 0x200000, CRC(e5c36c83) SHA1(50c6f66770e8faa3df349f7d68c407a7ad021716) )
+ROM_END
+
+ROM_START( orlegends20 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0103hc20.s160", 0x100000, 0x200000, CRC(c274f1d0) SHA1(4970a144a3e6e8fbd383a62c2474a1a37e79773c) )
+
+ ROM_REGION( 0x800000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0100.u8", 0x180000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) )
+
+ ROM_REGION( 0x1800000, "sprcol", 0 )
+ 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 )
+ 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 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0100.u1", 0x400000, 0x200000, CRC(e5c36c83) SHA1(50c6f66770e8faa3df349f7d68c407a7ad021716) )
+ROM_END
+
+ROM_START( orlegends21 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0103hc21.s160", 0x100000, 0x200000, CRC(0c71b594) SHA1(6f696f32ec2415a7cd9984006a99765c1342b1f4) )
+
+ ROM_REGION( 0x800000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0100.u8", 0x180000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) )
+
+ ROM_REGION( 0x1800000, "sprcol", 0 )
+ 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 )
+ 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 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0100.u1", 0x400000, 0x200000, CRC(e5c36c83) SHA1(50c6f66770e8faa3df349f7d68c407a7ad021716) )
+ROM_END
+
+ROM_START( orlegends22 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0103hc22.s160", 0x100000, 0x200000, CRC(a9f92eb3) SHA1(8255698bd5281f727866481d49ce2dd028760502) )
+
+ ROM_REGION( 0x800000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0100.u8", 0x180000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) )
+
+ ROM_REGION( 0x1800000, "sprcol", 0 )
+ 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 )
+ 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 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0100.u1", 0x400000, 0x200000, CRC(e5c36c83) SHA1(50c6f66770e8faa3df349f7d68c407a7ad021716) )
+ROM_END
+
+ROM_START( orlegends23 )
+ ROM_REGION( 0x600000, "maincpu", 0 )
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p0103hc23.s160", 0x100000, 0x200000, CRC(26ddf8bc) SHA1(cf48388c3c2f54475cb6920e5a55235fe79b4dc6) )
+
+ ROM_REGION( 0x800000, "tiles", 0 )
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0100.u8", 0x180000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) )
+
+ ROM_REGION( 0x1800000, "sprcol", 0 )
+ ROM_LOAD( "p0103hc23.u5", 0x0000000, 0x400000, CRC(1bc35928) SHA1(a7898a69fab119501b6107214d35c5971ba4dac2) )
+ ROM_LOAD( "p0103hc23.u6", 0x0400000, 0x400000, CRC(97cf4912) SHA1(0c7a908b09cddf4ba5887cedc599c6197b325b9c) )
+ 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 )
+ ROM_LOAD( "p0103hc23.u9", 0x0000000, 0x400000, CRC(5a914019) SHA1(8fa854f8546e09e60dabd80647974eefe4971cac) )
+ 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 )
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0100.u1", 0x400000, 0x200000, CRC(e5c36c83) SHA1(50c6f66770e8faa3df349f7d68c407a7ad021716) )
+ROM_END
+/***************************************
+ * Oriental Legend Special Plus
+ ***************************************/
+
+ROM_START( oldsplus01 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p05301hc01.rom", 0x100000, 0x454F48, CRC(10d59a7d) SHA1(25207cc1b879ec9cc39815e31ef8e9d506c59e94) )
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "oldsplus_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0x800000, "user1", ROMREGION_ERASE00 )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t05301.rom", 0x180000, 0x800000, CRC(8257bbb0) SHA1(b48067b7e7081a15fddf21739b641d677c2df3d9) )
+
+ ROM_REGION( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a05301.rom", 0x0000000, 0x0800000, CRC(57946fd2) SHA1(5d79bc71a1881f3099821a9b255a5f271e0eeff6) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a05302.rom", 0x0800000, 0x0800000, CRC(3459a0b8) SHA1(94ab6f980b5582f1db9bb12019d03f0b6e0a06df) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a05303.rom", 0x1000000, 0x0800000, CRC(13475d85) SHA1(4683a3bf304fdc15ffb1c61b7957ad68b023fa33) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a05304.rom", 0x1800000, 0x0800000, CRC(f03ef7a6) SHA1(c18b1b622b430d5e031e65daa6819b84c3e12ef5) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b05301.rom", 0x0000000, 0x0800000, CRC(fd98f503) SHA1(02046ab1aa89f63bff149003d9d61776e025a92a) )
+ ROM_LOAD( "b05302.rom", 0x0800000, 0x0800000, CRC(9f6094a8) SHA1(69f6f2003ab975eae13ea6b5c2ffa40df6e6bdf6) )
+
+ ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m05301.rom", 0x400000, 0x400000, CRC(86ec83bc) SHA1(067cb7ec449eacd1f49298f45a364368934db5dd) )
+ROM_END
+
+ROM_START( oldsplus02 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p05301hc02.rom", 0x100000, 0x454F99, CRC(3f404202) SHA1(d8f5f52b2eae7a111763dd6b44783313eeaf94cc) )
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "oldsplus_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0x800000, "user1", ROMREGION_ERASE00 )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t05301.rom", 0x180000, 0x800000, CRC(8257bbb0) SHA1(b48067b7e7081a15fddf21739b641d677c2df3d9) )
+
+ ROM_REGION( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a05301.rom", 0x0000000, 0x0800000, CRC(57946fd2) SHA1(5d79bc71a1881f3099821a9b255a5f271e0eeff6) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a05302.rom", 0x0800000, 0x0800000, CRC(3459a0b8) SHA1(94ab6f980b5582f1db9bb12019d03f0b6e0a06df) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a05303.rom", 0x1000000, 0x0800000, CRC(13475d85) SHA1(4683a3bf304fdc15ffb1c61b7957ad68b023fa33) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a05304.rom", 0x1800000, 0x0800000, CRC(f03ef7a6) SHA1(c18b1b622b430d5e031e65daa6819b84c3e12ef5) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b05301.rom", 0x0000000, 0x0800000, CRC(fd98f503) SHA1(02046ab1aa89f63bff149003d9d61776e025a92a) )
+ ROM_LOAD( "b05302.rom", 0x0800000, 0x0800000, CRC(9f6094a8) SHA1(69f6f2003ab975eae13ea6b5c2ffa40df6e6bdf6) )
+
+ ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m05301.rom", 0x400000, 0x400000, CRC(86ec83bc) SHA1(067cb7ec449eacd1f49298f45a364368934db5dd) )
+ROM_END
+
+ROM_START( oldsplus03 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p05301hc03.rom", 0x100000, 0x454F48, CRC(a3dde0f7) SHA1(ab2ef26e5b41e7648f478a4c5a77254632f762c6) )
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "oldsplus_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0x800000, "user1", ROMREGION_ERASE00 )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t05301.rom", 0x180000, 0x800000, CRC(8257bbb0) SHA1(b48067b7e7081a15fddf21739b641d677c2df3d9) )
+
+ ROM_REGION( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a05301.rom", 0x0000000, 0x0800000, CRC(57946fd2) SHA1(5d79bc71a1881f3099821a9b255a5f271e0eeff6) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a05302.rom", 0x0800000, 0x0800000, CRC(3459a0b8) SHA1(94ab6f980b5582f1db9bb12019d03f0b6e0a06df) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a05303.rom", 0x1000000, 0x0800000, CRC(13475d85) SHA1(4683a3bf304fdc15ffb1c61b7957ad68b023fa33) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a05304.rom", 0x1800000, 0x0800000, CRC(f03ef7a6) SHA1(c18b1b622b430d5e031e65daa6819b84c3e12ef5) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b05301.rom", 0x0000000, 0x0800000, CRC(fd98f503) SHA1(02046ab1aa89f63bff149003d9d61776e025a92a) )
+ ROM_LOAD( "b05302.rom", 0x0800000, 0x0800000, CRC(9f6094a8) SHA1(69f6f2003ab975eae13ea6b5c2ffa40df6e6bdf6) )
+
+ ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m05301.rom", 0x400000, 0x400000, CRC(86ec83bc) SHA1(067cb7ec449eacd1f49298f45a364368934db5dd) )
+ROM_END
+
+ROM_START( oldsplus04 )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_WORD_SWAP( "p05301hc04.rom", 0x100000, 0x454F99, CRC(861ce19f) SHA1(f53612050fa9df90cb8bcb4b3c1602bf78652c5a) )
+
+ ROM_REGION( 0x4000, "prot", 0 ) /* ARM protection ASIC - internal rom */
+ ROM_LOAD( "oldsplus_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
+
+ ROM_REGION( 0x800000, "user1", ROMREGION_ERASE00 )
+
+ ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t05301.rom", 0x180000, 0x800000, CRC(8257bbb0) SHA1(b48067b7e7081a15fddf21739b641d677c2df3d9) )
+
+ ROM_REGION( 0x2000000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a05301hc04.rom", 0x0000000, 0x0800000, CRC(802266a0) SHA1(098a3b08462328912087384048c3538b705f001d) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a05302.rom", 0x0800000, 0x0800000, CRC(3459a0b8) SHA1(94ab6f980b5582f1db9bb12019d03f0b6e0a06df) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a05303.rom", 0x1000000, 0x0800000, CRC(13475d85) SHA1(4683a3bf304fdc15ffb1c61b7957ad68b023fa33) ) // FIXED BITS (xxxxxxxx1xxxxxxx)
+ ROM_LOAD( "a05304.rom", 0x1800000, 0x0800000, CRC(f03ef7a6) SHA1(c18b1b622b430d5e031e65daa6819b84c3e12ef5) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b05301hc04.rom", 0x0000000, 0x0800000, CRC(bb7b3060) SHA1(1d299440fe634b2fb1f69a0a3f09eceb3d3c70c0) )
+ ROM_LOAD( "b05302.rom", 0x0800000, 0x0800000, CRC(9f6094a8) SHA1(69f6f2003ab975eae13ea6b5c2ffa40df6e6bdf6) )
+
+ ROM_REGION( 0x800000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m05301.rom", 0x400000, 0x400000, CRC(86ec83bc) SHA1(067cb7ec449eacd1f49298f45a364368934db5dd) )
+ROM_END
+
+/*************************************
+ *
+ * Game driver(s)
+ *
+ *************************************/
+// Proyecto Shadows Mame Plus
+/* YEAR NAME PARENT MACHINE INPUT INIT MONITOR COMPANY FULLNAME FLAGS */
+// The Killing Blade
+GAME( 1998, killblds01, killbld, pgm_022_025_killbld,killbld, pgm_022_025_state, killbld, ROT0, "Hack", "The Killing Blade (Description Of Unknown Origin 01)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+// Knights of Valour 2 Plus
+GAME( 2001, kov2s01, kov2p, pgm_arm_type2, kov2, pgm_arm_type2_state, kov2p, ROT0, "Hack", "Knights of Valour 2 Plus (Ver. M204XX, Boss Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kov2s02, kov2p, pgm_arm_type2, kov2, pgm_arm_type2_state, kov2p, ROT0, "Hack", "Knights of Valour 2 Plus (Ver. M204XX, Special Revision Hack By Fenguan34)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kov2s03, kov2p, pgm_arm_type2, kov2, pgm_arm_type2_state, kov2p, ROT0, "Hack", "Knights of Valour 2 Plus (Ver. M204XX, Warlords Furious Hack Beta 11/12/06)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kov2s04, kov2p, pgm_arm_type2, kov2, pgm_arm_type2_state, kov2p, ROT0, "Hack", "Knights of Valour 2 Plus (ver. M204XX, Warlords Furious Hack Beta 20/12/06)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kov2s05, kov2p, pgm_arm_type2, kov2, pgm_arm_type2_state, kov2p, ROT0, "Hack", "Knights of Valour 2 Plus (Ver. M204XX, Warlords Furious Hack Beta 08/11/06)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kov2s06, kov2p, pgm_arm_type2, kov2, pgm_arm_type2_state, kov2p, ROT0, "Hack", "Knights of Valour 2 Plus (ver. M204XX, Warlords Original Hack v3.0)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kov2s07, kov2p, pgm_arm_type2, kov2, pgm_arm_type2_state, kov2p, ROT0, "Hack", "Knights of Valour 2 Plus (ver. M204XX, King Of the World V1.10 Hack By 67667667)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kov2s08, kov2p, pgm_arm_type2, kov2, pgm_arm_type2_state, kov2p, ROT0, "Hack", "Knights of Valour 2 Plus (Max Power, Hacks Alternate Set 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kov2s09, kov2p, pgm_arm_type2, kov2, pgm_arm_type2_state, kov2p, ROT0, "Hack", "Knights of Valour 2 Plus (Ver. M205XX, Plus Storm Version)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kov2s10, kov2p, pgm_arm_type2, kov2, pgm_arm_type2_state, kov2p, ROT0, "Hack", "Knights of Valour 2 Plus (Add character, Max Power, Max Live, Hacks Alternate Set 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kov2s11, kov2p, pgm_arm_type2, kov2, pgm_arm_type2_state, kov2p, ROT0, "Hack", "Knights of Valour 2 Plus (Ver. M204XX, Full Hack Version)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kov2s12, kov2p, pgm_arm_type2, kov2, pgm_arm_type2_state, kov2p, ROT0, "Hack", "Knights of Valour 2 Plus (Ver. M204XX, Enhanced v2.0)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kov2s13, kov2p, pgm_arm_type2, kov2, pgm_arm_type2_state, kov2p, ROT0, "Hack", "Knights of Valour 2 Plus (Magic Weapon Updated Version Set 01)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kov2s14, kov2p, pgm_arm_type2, kov2, pgm_arm_type2_state, kov2p, ROT0, "Hack", "Knights of Valour 2 Plus (Magic Weapon Updated Version Set 02)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kov2s15, kov2p, pgm_arm_type2, kov2, pgm_arm_type2_state, kov2p, ROT0, "Hack", "Knights of Valour 2 Plus (Three 2 Soaring)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kov2s16, kov2p, pgm_arm_type2, kov2, pgm_arm_type2_state, kov2p, ROT0, "Hack", "Knights of Valour 2 Plus (Three Wars 2 Warriors Beat Fifty-One New Version)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kov2s17, kov2p, pgm_arm_type2, kov2, pgm_arm_type2_state, kov2p, ROT0, "Hack", "Knights of Valour 2 Plus (Matchless Situation)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kov2s18, kov2p, pgm_arm_type2, kov2, pgm_arm_type2_state, kov2p, ROT0, "Hack", "Knights of Valour 2 Plus (Warriors Beat)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kov2s19, kov2p, pgm_arm_type2, kov2, pgm_arm_type2_state, kov2p, ROT0, "Hack", "Knights of Valour 2 Plus (Description Of Unknown Origin 03)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kov2s20, kov2p, pgm_arm_type2, kov2, pgm_arm_type2_state, kov2p, ROT0, "Hack", "Knights of Valour 2 Plus (Description Of Unknown Origin 04)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kov2s21, kov2p, pgm_arm_type2, kov2, pgm_arm_type2_state, kov2p, ROT0, "Hack", "Knights of Valour 2 Plus (Description Of Unknown Origin 05)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kov2s22, kov2p, pgm_arm_type2, kov2, pgm_arm_type2_state, kov2p, ROT0, "Hack", "Knights of Valour 2 Plus (Description Of Unknown Origin 06)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 2001, kov2s23, kov2p, pgm_arm_type2, kov2, pgm_arm_type2_state, kov2p, ROT0, "Hack", "Knights of Valour 2 Plus (Description Of Unknown Origin 07)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+// Knights of Valour 2
+GAME( 2000, kov2h01, kov2, pgm_arm_type2, kov2, pgm_arm_type2_state, kov2, ROT0, "Hack", "Knights of Valour 2 (Description Of Unknown Origin 01)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kov2h02, kov2, pgm_arm_type2, kov2, pgm_arm_type2_state, kov2, ROT0, "Hack", "Knights of Valour 2 (Easy Max Power, Hacks Alternate Set 01)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kov2h03, kov2, pgm_arm_type2, kov2, pgm_arm_type2_state, kov2, ROT0, "Hack", "Knights of Valour 2 (Boss,Hack Alternate Set)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kov2h04, kov2, pgm_arm_type2, kov2, pgm_arm_type2_state, kov2, ROT0, "Hack", "Knights of Valour 2 (Easy Max Power, Hacks Alternate Set 02)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kov2h05, kov2, pgm_arm_type2, kov2, pgm_arm_type2_state, kov2, ROT0, "Hack", "Knights of Valour 2 (Easy Max Power, Life Max, Hacks Alternate Set 03)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 2000, kov2h06, kov2, pgm_arm_type2, kov2, pgm_arm_type2_state, kov2, ROT0, "Hack", "Knights of Valour 2 (Description Of Unknown Origin 02)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+// Knights of Valour SanGuo QunYingZhuan
+GAME( 1999, kovs01, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus Sanguozhanji Shadow Three Sango Fighter", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovs02, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (2012 Add character, Easy Max Power, Hacks Alternate Set 01)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovs03, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (2015 Authentic Nightmare Come)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovs04, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (Add New character, Max Power, Hacks Alternate Set 02)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovs05, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (Add New character, New Boss Start, Max Power, Hacks Alternate Set 03)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovs06, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (2015 Authentic Nightmare Edicion)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovs07, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (Qin Double True Hero Love War 2016)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovs08, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (Three Wars Legend Moye)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovs09, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (Three Wars Moye Fly Overhead)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovs10, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (Add New character, Hacks Alternate Set 04)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovs11, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (Three Wars Moye Sword 2)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovs12, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (Three Wars Unparalleled Flurry 2016)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovs13, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (Unparalleled Authentic 2015 Edition)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovs14, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (Description Of Unknown Origin 01)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovs15, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (Add New character, Max Power, Hacks Alternate Set 05)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovs16, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (Ver. 115, Chinese Luxun Hack)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovs17, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (Ver. 115, Plus 2007 FZ Hack)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovs18, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (Ver. 119, 948 FBA v7)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovs19, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (Ver. 119, 948 XXXX Version)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovs20, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (Ver. 119, LWsp Chaotic Dance Special)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovs21, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (Ver. 119, Animality: Tiger Edition)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovs22, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (Ver. 119, Enhanced Version Hack By Fenguan34)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovs23, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (Ver. 119, Enhanced Version)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovs24, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (Ver. 119, Kallor hack)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovs25, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (Ver. 119, Special Boss Hack)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovs26, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (Ver. 119, Xin Lin Hack)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovs27, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (Ver. 119, Hero Chinese Hack)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovs28, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (Ver. 119, Heros Chineses Hacks)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovs29, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (Ver. 119, Revision Hack By Sertsuna)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovs30, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (Ver. 120, Hack Rev Final (FZ))", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovs31, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (Ver. 119, Miss 2006)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovs32, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (Ver. 119, Super Chinese Hack)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovs33, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (Ver. 120, Rev Final SP2 Hack By Sertsuna)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovs34, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (Ver. 119, Style Moves Revision Hack)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovs35, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (Ver. 119, Super hack By Xin Lin)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovs36, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (World Series Tour Poly Edition 2015)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovs37, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (Three Kingdoms 2016 Unparalleled Flurry New)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovs38, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (Ver. 119, Combo Hack)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovs39, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (Piano Double Boss)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovs40, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (Three Wars A948 World Hegemony)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovs41, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (Three Wars Evil Feng Liu Bei Battle)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovs42, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (Three Wars 2015 Variety purgatory)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovs43, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (Description Of Unknown Origin 02)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovs44, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (Description Of Unknown Origin 03)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovs45, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (2012 Authentic Nightmare Come)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovs46, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (Sanguozhanji Warriors 2012)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovs47, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (Three Wars Authentic 2015 Warlords Biography)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovs48, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (Sanguozhanji Warriors 2015)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovs49, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (2016 Authentic Nightmare Come)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )//Problema De Memoria
+GAME( 1999, kovs50, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (2015 Authentic Six Swords Legend)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovs51, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (2016/2017 Authentic Nightmare Come)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovs52, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (Description Of Unknown Origin 04)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovs53, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (Sanguozhanji Savior)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovs54, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (Sanguozhanji Authentic King Spike)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovs55, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (Dragon World)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovs56, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (Riboud Sanguozhanji Legend)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovs57, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (Riboud Sanguozhanji Troubled Times)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovs58, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (2015 Warriors Warriors Purgatory)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovs59, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (2015 Variety Unparalleled Purgatory)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovs60, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (Sanguozhanji Moye Sword)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovs61, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (Sanguozhanji Shu Renaissance)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovs62, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (Moye Sanguozhanji Legend)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovs63, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (Sanguozhanji Souls Three Kingdoms)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovs64, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (Wu Chuan Wei Sanguozhanji 2015)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovs65, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (Sanguozhanji Five Reversal)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovs66, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (Sanguozhanji Brave Edge)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovs67, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (Description Of Unknown Origin 05)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovs68, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (Sanguozhanji Unparalleled Ares 2015)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovs69, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (2016 Warriors Ares)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovs70, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (Qin Double Sanguozhanji Love War 2015 Enhanced Version)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovs71, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (Qin Double Sanguozhanji 001)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovs72, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "Hack", "Knights of Valour Plus (Qin Double Sanguozhanji 002)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+// Knights of Valour Super Heroes
+GAME( 1999, kovsh01, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes (FY 2016 4th Edition)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovsh02, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes (Description Of Unknown Origin 01)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovsh03, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes (Ver. 320, Hack By Sertsuna)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovsh04, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes (Three Wars Revival Original 2016 Remake)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovsh05, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes (Three Wars Chaotic Situation 3 Mode)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovsh06, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes (ver. 104, Zhao Mystery Hack By Shuanger)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovsh07, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes (Ver. 106, Xin Lin Hack V1.01)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovsh08, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes (Ver. 106, BETA 1 Hack By Sertsuna)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovsh09, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes (Ver. 322, KOF Special (Xnozcom FZ166 Hack v6.5)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovsh010, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes (Three Kingdoms War Situation 2016 Sixth Edition)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovsh011, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes (Storm Generals True Hero Unparalleled Flurry)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovsh012, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes (Sango Fighter Three)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovsh013, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes (Sango Fighter Zero Chunli)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovsh014, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes (Description Of Unknown Origin 02)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovsh015, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes (Sanguozhanji FY 2016)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovsh016, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes (Description Of Unknown Origin 02)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovsh017, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes (Description Of Unknown Origin 03)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovsh018, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes (Character Selection Fatal Fury/Kof)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovsh019, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes (Sanguozhanji Revival Really Troubled Heroes)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovsh020, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes (Sanguozhanji Revival New Heroes Troubled Times)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovsh021, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "Hack", "Knights of Valour Super Heroes (Sanguozhanji Revival Chaotic Situation)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kovqhs01, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovqhsgs, ROT0, "Hack", "Knights of Valour Super Heroes (Description Of Unknown Origin H 01)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+// Knights of Valour Super Heroes Plus
+GAME( 2004, kovsho01, kovshp, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovshp, ROT0, "Hack", "Knights of Valour Super Heroes Plus (Description Of Unknown Origin 01)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 2004, kovsho02, kovshp, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovshp, ROT0, "Hack", "Knights of Valour Super Heroes Plus (Lawrence of chaos Sanguozhanji Enhanced Version 1.8)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 2004, kovsho03, kovshp, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovshp, ROT0, "Hack", "Knights of Valour Super Heroes Plus (Lawrence of chaos Sanguozhanji Enhanced Version Of 2014)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 2004, kovsho04, kovshp, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovshp, ROT0, "Hack", "Knights of Valour Super Heroes Plus (Three Troubled Times Enhanced Version Taiping)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 2004, kovsho05, kovshp, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovshp, ROT0, "Hack", "Knights of Valour Super Heroes Plus (Three Pacific Troubled Times Enhanced Version 2)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 2004, kovsho06, kovshp, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovshp, ROT0, "Hack", "Knights of Valour Super Heroes Plus (Three Troubled Times Lawrence Of The New Enhanced Version Fifty-One 2nd Edition)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 2004, kovsho07, kovshp, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovshp, ROT0, "Hack", "Knights of Valour Super Heroes Plus (Three Troubled Times Enhanced Version Kof 94/95 Set 01)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 2004, kovsho08, kovshp, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovshp, ROT0, "Hack", "Knights of Valour Super Heroes Plus (Three Troubled Times Enhanced Version Kof 94/95 Set 02)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 2004, kovsho09, kovshp, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovshp, ROT0, "Hack", "Knights of Valour Super Heroes Plus (Three Troubled Times Lawrence Of Version 103)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 2004, kovsho10, kovshp, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovshp, ROT0, "Hack", "Knights of Valour Super Heroes Plus (Three Troubled Times Enhanced Version Kof 94/95 Set 03)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 2004, kovsho11, kovshp, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovshp, ROT0, "Hack", "Knights of Valour Super Heroes Plus (Three)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+
+GAME( 2001, martmasthc01, martmast, pgm_arm_type2, martmast, pgm_arm_type2_state, martmast, ROT0, "Hack", "Martial Masters (Ver. 102, Boss Hack By 0 Days (EGHT))", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+
+//Oriental Legend Special
+GAME( 1998, olds100s01, olds, pgm, pgm, pgm_state, pgm, ROT0, "Hack", "Oriental Legend Special (Collection Of Hacks Set 01)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+// Oriental Legend Plus
+GAME( 1997, orlegends01, orlegend, pgm_asic3, orlegend, pgm_asic3_state, orlegend, ROT0, "Hack", "Oriental Legend Plus (Description Of Unknown Origin 01)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1997, orlegends02, orlegend, pgm_asic3, orlegend, pgm_asic3_state, orlegend, ROT0, "Hack", "Oriental Legend Plus (Description Of Unknown Origin 02)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1997, orlegends03, orlegend, pgm_asic3, orlegend, pgm_asic3_state, orlegend, ROT0, "Hack", "Oriental Legend Plus (Description Of Unknown Origin 03)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1997, orlegends04, orlegend, pgm_asic3, orlegend, pgm_asic3_state, orlegend, ROT0, "Hack", "Oriental Legend Plus (Ver. 112, Kamikemono Fukkatsu Plus)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1997, orlegends05, orlegend, pgm_asic3, orlegend, pgm_asic3_state, orlegend, ROT0, "Hack", "Oriental Legend Plus (Ver. 112, Unknow Hack)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1997, orlegends06, orlegend, pgm_asic3, orlegend, pgm_asic3_state, orlegend, ROT0, "Hack", "Oriental Legend Plus (Ver. 112, Ultra 2008 v1.0)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1997, orlegends07, orlegend, pgm_asic3, orlegend, pgm_asic3_state, orlegend, ROT0, "Hack", "Oriental Legend Plus (Ver. 112, Ultra 2008 v2.0)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1997, orlegends08, orlegend, pgm_asic3, orlegend, pgm_asic3_state, orlegend, ROT0, "Hack", "Oriental Legend Plus (Ver. 112, Hacked By Abcluoasp)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1997, orlegends09, orlegend, pgm_asic3, orlegend, pgm_asic3_state, orlegend, ROT0, "Hack", "Oriental Legend Plus (Ver. 112, Pro Silver Edition)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1997, orlegends10, orlegend, pgm_asic3, orlegend, pgm_asic3_state, orlegend, ROT0, "Hack", "Oriental Legend Plus (Ver. 112, Evil Spirit Plus)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1997, orlegends11, orlegend, pgm_asic3, orlegend, pgm_asic3_state, orlegend, ROT0, "Hack", "Oriental Legend Plus (Ver. 112, Plus v2.0a Hack By Enbrow)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1997, orlegends12, orlegend, pgm_asic3, orlegend, pgm_asic3_state, orlegend, ROT0, "Hack", "Oriental Legend Plus (Ver. 112, Plus Revision Hack)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1997, orlegends13, orlegend, pgm_asic3, orlegend, pgm_asic3_state, orlegend, ROT0, "Hack", "Oriental Legend Plus (Ver. 112, Super 2008)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1997, orlegends14, orlegend, pgm_asic3, orlegend, pgm_asic3_state, orlegend, ROT0, "Hack", "Oriental Legend Plus (Ver. 112, Kamikemono Fukkatsu Special Set 2)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1997, orlegends15, orlegend, pgm_asic3, orlegend, pgm_asic3_state, orlegend, ROT0, "Hack", "Oriental Legend Plus (Ver. 112, Kamikemono Fukkatsu Special Set 1)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1997, orlegends16, orlegend, pgm_asic3, orlegend, pgm_asic3_state, orlegend, ROT0, "Hack", "Oriental Legend Plus (Ver. 112, Kamikemono Fukkatsu)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1997, orlegends17, orlegend, pgm_asic3, orlegend, pgm_asic3_state, orlegend, ROT0, "Hack", "Oriental Legend Plus (Ver. 112, Ultra Version EX)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1997, orlegends18, orlegend, pgm_asic3, orlegend, pgm_asic3_state, orlegend, ROT0, "Hack", "Oriental Legend Plus (Ver. 112, Ultra Version)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1997, orlegends19, orlegend, pgm_asic3, orlegend, pgm_asic3_state, orlegend, ROT0, "Hack", "Oriental Legend Plus (Ver. 112, Boss Hack v1.0 Beta 01)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1997, orlegends20, orlegend, pgm_asic3, orlegend, pgm_asic3_state, orlegend, ROT0, "Hack", "Oriental Legend Plus (Ver. 112, Plus v1.3 Hack By Enbrow)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1997, orlegends21, orlegend, pgm_asic3, orlegend, pgm_asic3_state, orlegend, ROT0, "Hack", "Oriental Legend Plus (Ver. 112, Plus v3.0)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1997, orlegends22, orlegend, pgm_asic3, orlegend, pgm_asic3_state, orlegend, ROT0, "Hack", "Oriental Legend Plus (Ver. 112, Plus v2.0)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1997, orlegends23, orlegend, pgm_asic3, orlegend, pgm_asic3_state, orlegend, ROT0, "Hack", "Oriental Legend Plus (Ver. 112, Plus 2008 Hack By Abcxiaog)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+// Oriental Legend Special Plus
+GAME( 2004, oldsplus01, oldsplus, pgm_arm_type1_sim, oldsplus, pgm_arm_type1_state, oldsplus, ROT0, "IGS", "Oriental Legend Special Plus (Journey To The West Buddhism Adversity Biography Super Dance Macabre 2016 Edition)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 2004, oldsplus02, oldsplus, pgm_arm_type1_sim, oldsplus, pgm_arm_type1_state, oldsplus, ROT0, "IGS", "Oriental Legend Special Plus (Description Of Unknown Origin 01)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 2004, oldsplus03, oldsplus, pgm_arm_type1_sim, oldsplus, pgm_arm_type1_state, oldsplus, ROT0, "IGS", "Oriental Legend Special Plus (Journey To The West Buddhism Adversity Super Dance Macabre 2017 Edition)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 2004, oldsplus04, oldsplus, pgm_arm_type1_sim, oldsplus, pgm_arm_type1_state, oldsplus, ROT0, "IGS", "Oriental Legend Special Plus (Journey To The West Buddhism Adversity Biography Super Edition Macabre Enhanced Version)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+
diff --git a/src/hbmame/drivers/phoenix.cpp b/src/hbmame/drivers/phoenix.cpp
new file mode 100644
index 00000000000..defdcac1620
--- /dev/null
+++ b/src/hbmame/drivers/phoenix.cpp
@@ -0,0 +1,56 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/phoenix.cpp"
+
+ROM_START( phoenixr )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "phoenix.45", 0x0000, 0x0800, CRC(5b8c55a8) SHA1(839c1ca9766f730ec3accd48db70f6429a9c3362) )
+ ROM_LOAD( "phoenix3.46", 0x0800, 0x0800, CRC(5748f486) SHA1(49e6fd836d26ec24105e95227b24cf668e8a470a) )
+ ROM_LOAD( "phoenix.47", 0x1000, 0x0800, CRC(cbbb8839) SHA1(b7f449374cac111081559e39646f973e7e99fd64) )
+ ROM_LOAD( "phoenixr.48", 0x1800, 0x0800, CRC(9253e642) SHA1(9f72d7beb22ffc8dffc43765356e34def36efc12) )
+ ROM_LOAD( "h5-ic49.5a", 0x2000, 0x0800, CRC(a105e4e7) SHA1(b35142a91b6b7fdf7535202671793393c9f4685f) )
+ ROM_LOAD( "h6-ic50.6a", 0x2800, 0x0800, CRC(ac5e9ec1) SHA1(0402e5241d99759d804291998efd43f37ce99917) )
+ ROM_LOAD( "h7-ic51.7a", 0x3000, 0x0800, CRC(2eab35b4) SHA1(849bf8273317cc869bdd67e50c68399ee8ece81d) )
+ ROM_LOAD( "phoenix3.52", 0x3800, 0x0800, CRC(d2c5c984) SHA1(a9432f9aff8a2f5ca1d347443efc008a177d8ae0) )
+
+ ROM_REGION( 0x1000, "bgtiles", 0 )
+ ROM_LOAD( "r_ic23", 0x0000, 0x0800, CRC(02bc87ea) SHA1(bd672a5c62339e18d627d5bb195a9da2a76fd239) )
+ ROM_LOAD( "r_ic24", 0x0800, 0x0800, CRC(675388ee) SHA1(4bef2b7cd28b2311a5775f89ee8756caf405c182) )
+
+ ROM_REGION( 0x1000, "fgtiles", 0 )
+ ROM_LOAD( "r_ic39", 0x0000, 0x0800, CRC(8b1653ba) SHA1(5677fd96d49165b4d71047771e4a0bd8d6fb2400) )
+ ROM_LOAD( "r_ic40", 0x0800, 0x0800, CRC(3b811dfb) SHA1(e2a9fada30bdb096ddfd35abc4717e1cac38c943) )
+
+ ROM_REGION( 0x0200, "proms", 0 )
+ ROM_LOAD( "mmi6301.ic40", 0x0000, 0x0100, CRC(79350b25) SHA1(57411be4c1d89677f7919ae295446da90612c8a8) )
+ ROM_LOAD( "mmi6301.ic41", 0x0100, 0x0100, CRC(e176b768) SHA1(e2184dd495ed579f10b6da0b78379e02d7a6229f) )
+ROM_END
+
+ROM_START( phoenixg )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "phoenix.45", 0x0000, 0x0800, CRC(5b8c55a8) SHA1(839c1ca9766f730ec3accd48db70f6429a9c3362) )
+ ROM_LOAD( "phoenix.46", 0x0800, 0x0800, CRC(dbc942fa) SHA1(9fe224e6ced407289dfa571468259a021d942b7d) )
+ ROM_LOAD( "phoenix.47", 0x1000, 0x0800, CRC(cbbb8839) SHA1(b7f449374cac111081559e39646f973e7e99fd64) )
+ ROM_LOAD( "phoenixg.48", 0x1800, 0x0800, CRC(63d4c322) SHA1(96bac0950940f6a3a7972ed403431c6fb1941667) )
+ ROM_LOAD( "phoenix.49", 0x2000, 0x0800, CRC(c8a5d6d6) SHA1(ef6ade323544e3edd4101609138ecf35e8cb9577) )
+ ROM_LOAD( "h6-ic50.6a", 0x2800, 0x0800, CRC(ac5e9ec1) SHA1(0402e5241d99759d804291998efd43f37ce99917) )
+ ROM_LOAD( "h7-ic51.7a", 0x3000, 0x0800, CRC(2eab35b4) SHA1(849bf8273317cc869bdd67e50c68399ee8ece81d) )
+ ROM_LOAD( "phoenix.52", 0x3800, 0x0800, CRC(b9915263) SHA1(f61396077b23364b5b26f62c6923394d23a37eb3) )
+
+ ROM_REGION( 0x1000, "bgtiles", 0 )
+ ROM_LOAD( "ic23.3d", 0x0000, 0x0800, CRC(3c7e623f) SHA1(e7ff5fc371664af44785c079e92eeb2d8530187b) )
+ ROM_LOAD( "ic24.4d", 0x0800, 0x0800, CRC(59916d3b) SHA1(71aec70a8e096ed1f0c2297b3ae7dca1b8ecc38d) )
+
+ ROM_REGION( 0x1000, "fgtiles", 0 )
+ ROM_LOAD( "ic39g", 0x0000, 0x0800, CRC(0ed46d30) SHA1(dd21172c11ef60351921ed7067736682237a8db9) )
+ ROM_LOAD( "b2-ic40.4b", 0x0800, 0x0800, CRC(0be2ba91) SHA1(af9243ee23377b632b9b7d0b84d341d06bf22480) )
+
+ ROM_REGION( 0x0200, "proms", 0 )
+ ROM_LOAD( "mmi6301.ic40", 0x0000, 0x0100, CRC(79350b25) SHA1(57411be4c1d89677f7919ae295446da90612c8a8) )
+ ROM_LOAD( "mmi6301.ic41", 0x0100, 0x0100, CRC(e176b768) SHA1(e2184dd495ed579f10b6da0b78379e02d7a6229f) )
+ROM_END
+
+
+
+GAME( 2000, phoenixr, phoenix, phoenix, phoenix , phoenix_state, 0, ROT90, "CYBERYOGI =CO= Windler", "PhoenixR (GDR hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, phoenixg, phoenix, phoenix, phoenixt, phoenix_state, 0, ROT90, "GreekRoms", "Phoenix (Greek)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/playch10.cpp b/src/hbmame/drivers/playch10.cpp
new file mode 100644
index 00000000000..c8a712e1307
--- /dev/null
+++ b/src/hbmame/drivers/playch10.cpp
@@ -0,0 +1,237 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/playch10.cpp"
+
+ROM_START( pc_ark ) /* Arkanoid (1942) */
+ BIOS_CPU
+ ROM_LOAD( "u3", 0x0c000, 0x2000, CRC(415b8807) SHA1(9d6161bbc6dec5873cc6d8a570141d4af42fa232) ) /* extra bios code for this game */
+ BIOS_GFX
+
+ ROM_REGION( 0x10000, "cart", 0 ) /* 64k for code */
+ ROM_LOAD( "arkanoid-u1", 0x08000, 0x8000, CRC(95dbb274) SHA1(792420b622b59d40ec0a264bf0bcd5faf9b652dc) )
+
+ ROM_REGION( 0x02000, "gfx2", 0 ) /* cart gfx */
+ ROM_LOAD( "arkanoid-u2", 0x00000, 0x2000, CRC(bb8dae70) SHA1(91bdab01839e2ad3d9aaa9041e0855ba26583a9f) )
+
+ ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
+ ROM_LOAD( "29893c7f.prm", 0x00000, 0x10, CRC(29893c7f) SHA1(58478b7de2177c8dc1d6885bd34eeeeb5e46d7a3) )
+ROM_END
+
+ROM_START( pc_bb2 ) /* Bubble Bobble Part 2 (Power Blade) */
+ BIOS_CPU
+ ROM_LOAD( "bb2-u3", 0x0c000, 0x2000, CRC(edcc21c6) SHA1(5d73c6a747cfe951dc7c6ddfbb29859e9548aded) ) /* extra bios code for this game */
+ BIOS_GFX
+
+ ROM_REGION( 0x50000, "cart", 0 ) /* 64k for code */
+ ROM_LOAD( "bb2-u5", 0x10000, 0x20000, CRC(5f7c1d17) SHA1(48608c9ebd8c0feb9e1126eb4070f185c41d9a19) ) /* banked */
+ ROM_RELOAD( 0x30000, 0x20000 )
+
+ ROM_REGION( 0x20000, "gfx2", 0 ) /* cart gfx */
+ ROM_LOAD( "bb2-u1", 0x00000, 0x20000, CRC(5e59afae) SHA1(5ed7d7c1ed50dbdc01e0a80e6ed5a246349726aa) )
+
+ ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
+ ROM_LOAD( "31a05a48.prm", 0x00000, 0x10, CRC(31a05a48) SHA1(8b340600feae03bb5cdab852a9879ecffcc8a2b9) )
+ROM_END
+
+ROM_START( pc_cch ) /* Circus Charlie (Golf) */
+ BIOS_CPU
+ ROM_LOAD( "gf-u3", 0x0c000, 0x2000, CRC(882dea87) SHA1(e3bbca36efa66231b933713dec032bbb926b36e5) ) /* extra bios code for this game */
+ BIOS_GFX
+
+ ROM_REGION( 0x10000, "cart", 0 ) /* 64k for code */
+ ROM_LOAD( "circusch.u1", 0x0c000, 0x4000, CRC(2cb269d5) SHA1(28a700b4fa5c580adf3ef9891506585ef6a40725) )
+
+ ROM_REGION( 0x02000, "gfx2", 0 ) /* cart gfx */
+ ROM_LOAD( "circusch.u2", 0x00000, 0x2000, CRC(f76c592a) SHA1(c8bc574c43d26d5072869922573edaaab7a37050) )
+
+ ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
+ ROM_LOAD( "2cd98ef6.prm", 0x00000, 0x10, CRC(2cd98ef6) SHA1(bd5142c6a29df674ab835c8beafff7e93712d88f) )
+ROM_END
+
+ROM_START( pc_ctfrc ) /* Contra Force (Power Blade) */
+ BIOS_CPU
+ ROM_LOAD( "ctfrc-u3", 0x0c000, 0x2000, CRC(edcc21c6) SHA1(5d73c6a747cfe951dc7c6ddfbb29859e9548aded) ) /* extra bios code for this game */
+ BIOS_GFX
+
+ ROM_REGION( 0x50000, "cart", 0 ) /* 64k for code */
+ ROM_LOAD( "ctfrc-u5", 0x10000, 0x20000, CRC(1ff7fc0d) SHA1(bbf1fb616c13795c9c8e447a72f009ee3746bd90) ) /* banked */
+ ROM_RELOAD( 0x30000, 0x20000 )
+
+ ROM_REGION( 0x20000, "gfx2", 0 ) /* cart gfx */
+ ROM_LOAD( "ctfrc-u1", 0x00000, 0x20000, CRC(7ff2a7f8) SHA1(234041d4c880ccd4acd295c9b2a3d6e37089beda) )
+
+ ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
+ ROM_LOAD( "31a05a48.prm", 0x00000, 0x10, CRC(31a05a48) SHA1(8b340600feae03bb5cdab852a9879ecffcc8a2b9) )
+ROM_END
+
+ROM_START( pc_digdg ) /* Dig Dug (1942) */
+ BIOS_CPU
+ ROM_LOAD( "u3", 0x0c000, 0x2000, CRC(415b8807) SHA1(9d6161bbc6dec5873cc6d8a570141d4af42fa232) ) /* extra bios code for this game */
+ BIOS_GFX
+
+ ROM_REGION( 0x10000, "cart", 0 ) /* 64k for code */
+ ROM_LOAD( "digdug.u1", 0x08000, 0x8000, CRC(a26ae22e) SHA1(0f95aa5f74ef2b192e355381987cf4624fce5653) )
+
+ ROM_REGION( 0x02000, "gfx2", 0 ) /* cart gfx */
+ ROM_LOAD( "digdug.u2", 0x00000, 0x2000, CRC(2dabc198) SHA1(79f1e65eea2a2841dc47916cb86fbf992b936bd5) )
+
+ ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
+ ROM_LOAD( "29893c7f.prm", 0x00000, 0x10, CRC(29893c7f) SHA1(58478b7de2177c8dc1d6885bd34eeeeb5e46d7a3) )
+ROM_END
+
+ROM_START( pc_dk ) /* Donkey Kong (Golf) */
+ BIOS_CPU
+ ROM_LOAD( "gf-u3", 0x0c000, 0x2000, CRC(882dea87) SHA1(e3bbca36efa66231b933713dec032bbb926b36e5) ) /* extra bios code for this game */
+ BIOS_GFX
+
+ ROM_REGION( 0x10000, "cart", 0 ) /* 64k for code */
+ ROM_LOAD( "dk.u1", 0x0c000, 0x4000, CRC(f56a5b10) SHA1(2c4b1d653194df0996d54d9de9188b270d0337d9) )
+
+ ROM_REGION( 0x02000, "gfx2", 0 ) /* cart gfx */
+ ROM_LOAD( "dk.u2", 0x00000, 0x2000, CRC(e472a17c) SHA1(3e3d5a2213c132fcb86a97089f03a7ebf8384d36) )
+
+ ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
+ ROM_LOAD( "2cd98ef6.prm", 0x00000, 0x10, CRC(2cd98ef6) SHA1(bd5142c6a29df674ab835c8beafff7e93712d88f) )
+ROM_END
+
+ROM_START( pc_dk3 ) /* Donkey Kong 3 (1942) */
+ BIOS_CPU
+ ROM_LOAD( "u3", 0x0c000, 0x2000, CRC(415b8807) SHA1(9d6161bbc6dec5873cc6d8a570141d4af42fa232) ) /* extra bios code for this game */
+ BIOS_GFX
+
+ ROM_REGION( 0x10000, "cart", 0 ) /* 64k for code */
+ ROM_LOAD( "dk3.u1", 0x08000, 0x8000, CRC(01eb0432) SHA1(94546c80c0bd41acc85f6e73a1425125c967d5db) )
+
+ ROM_REGION( 0x02000, "gfx2", 0 ) /* cart gfx */
+ ROM_LOAD( "dk3.u2", 0x00000, 0x2000, CRC(85d06c57) SHA1(803adef82721452704607fbf70027ff792636325) )
+
+ ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
+ ROM_LOAD( "29893c7f.prm", 0x00000, 0x10, CRC(29893c7f) SHA1(58478b7de2177c8dc1d6885bd34eeeeb5e46d7a3) )
+ROM_END
+
+ROM_START( pc_galag ) /* Galaga (1942) */
+ BIOS_CPU
+ ROM_LOAD( "u3", 0x0c000, 0x2000, CRC(415b8807) SHA1(9d6161bbc6dec5873cc6d8a570141d4af42fa232) ) /* extra bios code for this game */
+ BIOS_GFX
+
+ ROM_REGION( 0x10000, "cart", 0 ) /* 64k for code */
+ ROM_LOAD( "galaga.u1", 0x08000, 0x8000, CRC(b4c4c5fe) SHA1(16e53935fc998de1eb8a88f73217ef1e2005d026) )
+
+ ROM_REGION( 0x02000, "gfx2", 0 ) /* cart gfx */
+ ROM_LOAD( "galaga.u2", 0x00000, 0x2000, CRC(e2d5964e) SHA1(62b2cd49a6a4c6f1e2b0742db3b7493e167e9a23) )
+
+ ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
+ ROM_LOAD( "29893c7f.prm", 0x00000, 0x10, CRC(29893c7f) SHA1(58478b7de2177c8dc1d6885bd34eeeeb5e46d7a3) )
+ROM_END
+
+ROM_START( pc_gyrus ) /* Gyruss (Dr Mario) */
+ BIOS_CPU
+ ROM_LOAD( "vu-u2", 0x0c000, 0x2000, CRC(4b7869ac) SHA1(37afb84d963233ad92cc424fcf992aa76ea0599f) ) /* extra bios code for this game */
+ BIOS_GFX
+
+ ROM_REGION( 0x30000, "cart", 0 ) /* 64k for code */
+ ROM_LOAD( "gyruss-u4", 0x10000, 0x08000, CRC(48ecc48a) SHA1(0afdb50a07ae9610f5c62dc8cca661ca359352be) ) /* banked */
+ ROM_RELOAD( 0x18000, 0x08000 )
+ ROM_RELOAD( 0x20000, 0x08000 )
+ ROM_RELOAD( 0x28000, 0x08000 )
+
+ ROM_REGION( 0x20000, "gfx2", 0 ) /* cart gfx */
+ ROM_LOAD( "gyruss-u1", 0x00000, 0x08000, CRC(3eb77902) SHA1(2419437ad701f5e165778af02b888da268c9a74d) )
+ ROM_RELOAD( 0x08000, 0x08000 )
+ ROM_RELOAD( 0x10000, 0x08000 )
+ ROM_RELOAD( 0x18000, 0x08000 )
+
+ ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
+ ROM_LOAD( "1b26e58c.prm", 0x00000, 0x10, CRC(1b26e58c) SHA1(bd2d81d3cc54966ef154b3487d43ecbc316d6d22) )
+ROM_END
+
+ROM_START( pc_krsty ) /* Krusty's Funhouse (Power Blade) */
+ BIOS_CPU
+ ROM_LOAD( "xu-u3", 0x0c000, 0x2000, CRC(c3984e09) SHA1(70d7e5d9cf9b1f358e1be84a0e8c5997b1aae2d9) ) /* extra bios code for this game */
+ BIOS_GFX
+
+ ROM_REGION( 0x50000, "cart", 0 ) /* 64k for code */
+ ROM_LOAD( "xu-u4", 0x10000, 0x20000, CRC(1f4103e5) SHA1(0a45c9b140df98aac7936c84e732410d796a35d7) ) /* banked */
+ ROM_LOAD( "xu-u5", 0x30000, 0x20000, CRC(778c4115) SHA1(beab60c8237ffba27f6730fe7f4c45173cf892e0) ) /* banked */
+
+ ROM_REGION( 0x020000, "gfx2", 0 ) /* cart gfx */
+ ROM_LOAD( "xu-u1", 0x00000, 0x20000, CRC(fce8e0ea) SHA1(808f74e9124f273aab7adf5f31c2d5893b06323e) )
+
+ ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
+ ROM_LOAD( "0fe6e900.prm", 0x00000, 0x10, CRC(0fe6e900) SHA1(544d8af1aa9186bf76d0a35e78b20e94d3afbcb5) )
+ROM_END
+
+ROM_START( pc_mman5 ) /* Megaman 5 (TMNT2) */
+ BIOS_CPU
+ ROM_LOAD( "2n-u3", 0x0c000, 0x2000, CRC(65298370) SHA1(fd120f43e465a2622f2e2679ace2fb0fe7e709b1) ) /* extra bios code for this game */
+ BIOS_GFX
+
+ ROM_REGION( 0x50000, "cart", 0 ) /* 64k for code */
+ ROM_LOAD( "2n-u5", 0x10000, 0x40000, CRC(f3c743aa) SHA1(ee907c7279dba52320e35906ab5b0a1bdbbf0bfb) ) /* banked */
+
+ ROM_REGION( 0x40000, "gfx2", 0 ) /* cart gfx */
+ ROM_LOAD( "2n-u1", 0x00000, 0x40000, CRC(25e0ae72) SHA1(45d3ffbb5e399c891df6fcbd78b94b866be9b663) )
+
+ ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
+ ROM_LOAD( "237e8519.prm", 0x00000, 0x10, CRC(237e8519) SHA1(81b368d0784e4172c5cf9f4f4b92e29e05d34ae7) )
+ROM_END
+
+ROM_START( pc_pacm ) /* Pacman (Golf) */
+ BIOS_CPU
+ ROM_LOAD( "gf-u3", 0x0c000, 0x2000, CRC(882dea87) SHA1(e3bbca36efa66231b933713dec032bbb926b36e5) ) /* extra bios code for this game */
+ BIOS_GFX
+
+ ROM_REGION( 0x10000, "cart", 0 ) /* 64k for code */
+ ROM_LOAD( "pacman.u1", 0x0c000, 0x4000, CRC(de2070ab) SHA1(a9324a94fa3d5ae6396a90c3d6d8399de8f93bd1) )
+
+ ROM_REGION( 0x02000, "gfx2", 0 ) /* cart gfx */
+ ROM_LOAD( "pacman.u2", 0x00000, 0x2000, CRC(db6c9324) SHA1(f0d0fa49fbccc3b005742fc72a8dd3dce63909d1) )
+
+ ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
+ ROM_LOAD( "2cd98ef6.prm", 0x00000, 0x10, CRC(2cd98ef6) SHA1(bd5142c6a29df674ab835c8beafff7e93712d88f) )
+ROM_END
+
+ROM_START( pc_parsl ) /* Parasol Stars - The Story of Bubble Bobble 3 (Ninja Gaiden) */
+ BIOS_CPU
+ ROM_LOAD( "parsl-u2", 0x0c000, 0x2000, CRC(7505de96) SHA1(a9cbe6d4d2d33aeecb3e041315fbb266c886ebf1) ) /* extra bios code for this game */
+ BIOS_GFX
+
+ ROM_REGION( 0x30000, "cart", 0 ) /* 64k for code */
+ ROM_LOAD( "parsl-u4", 0x10000, 0x20000, CRC(15382139) SHA1(50991602680588a9e7b03e06d45ee607fc00db13) ) /* banked */
+
+ ROM_REGION( 0x20000, "gfx2", 0 ) /* cart gfx */
+ ROM_LOAD( "parsl-u1", 0x00000, 0x20000, CRC(af5400dc) SHA1(68258fedf7e2ba3afcf20e8261ad93d282c10bd9) ) /* banked */
+
+ ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
+ ROM_LOAD( "ec5641d6.prm", 0x00000, 0x10, CRC(ec5641d6) SHA1(05f546aec5a9db167688a9abbac922f5ced7f7c5) )
+ROM_END
+
+ROM_START( pc_skykd ) /* Sky Kid (Ninja Gaiden) */
+ BIOS_CPU
+ ROM_LOAD( "u2ng", 0x0c000, 0x2000, CRC(7505de96) SHA1(a9cbe6d4d2d33aeecb3e041315fbb266c886ebf1) ) /* extra bios code for this game */
+ BIOS_GFX
+
+ ROM_REGION( 0x30000, "cart", 0 ) /* 64k for code */
+ ROM_LOAD( "skykid.u4", 0x10000, 0x20000, CRC(c1918ec3) SHA1(e34bd36d9a7df7197b06a0a537b9d786f2303a98) ) /* banked */
+
+ ROM_REGION( 0x20000, "gfx2", 0 ) /* cart gfx */
+ ROM_LOAD( "skykid.u1", 0x00000, 0x20000, CRC(0f58923f) SHA1(805cc304ab0e20337c0b0dcd5ca7f2b7bf8e4656) ) /* banked */
+
+ ROM_REGION( 0x10, "rp5h01", 0 ) /* rp5h01 data */
+ ROM_LOAD( "ec5641d6.prm", 0x00000, 0x10, CRC(ec5641d6) SHA1(05f546aec5a9db167688a9abbac922f5ced7f7c5) )
+ROM_END
+
+GAME( 2002, pc_ark, playch10, playch10, playch10, playch10_state, pc_hrz, ROT0, "NES->PC-10", "Arkanoid (PlayChoice-10)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, pc_bb2, playch10, playch10, playch10, playch10_state, pcgboard, ROT0, "NES->PC-10", "Bubble Bobble 2 (PlayChoice-10)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, pc_cch, playch10, playch10, playch10, playch10_state, playch10, ROT0, "NES->PC-10", "Circus Charlie (PlayChoice-10)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, pc_ctfrc, playch10, playch10, playch10, playch10_state, pcgboard, ROT0, "NES->PC-10", "Contra Force (PlayChoice-10)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, pc_digdg, playch10, playch10, playch10, playch10_state, pc_hrz, ROT0, "NES->PC-10", "Dig Dug (PlayChoice-10)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, pc_dk, playch10, playch10, playch10, playch10_state, playch10, ROT0, "NES->PC-10", "Donkey Kong (PlayChoice-10)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, pc_dk3, playch10, playch10, playch10, playch10_state, pc_hrz, ROT0, "NES->PC-10", "Donkey Kong 3 (PlayChoice-10)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, pc_galag, playch10, playch10, playch10, playch10_state, pc_hrz, ROT0, "NES->PC-10", "Galaga (PlayChoice-10)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, pc_gyrus, playch10, playch10, playch10, playch10_state, pcfboard, ROT0, "NES->PC-10", "Gyruss (PlayChoice-10)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS )
+GAME( 2002, pc_krsty, playch10, playch10, playch10, playch10_state, pcgboard, ROT0, "NES->PC-10", "Krusty's Funhouse (PlayChoice-10)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, pc_mman5, playch10, playch10, playch10, playch10_state, pcgboard, ROT0, "NES->PC-10", "Megaman 5 (PlayChoice-10)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, pc_pacm, playch10, playch10, playch10, playch10_state, playch10, ROT0, "NES->PC-10", "Pacman (PlayChoice-10)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, pc_parsl, playch10, playch10, playch10, playch10_state, pcfboard, ROT0, "NES->PC-10", "Parasol Stars-The Story of Bubble Bobble 3 (PlayChoice-10)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, pc_skykd, playch10, playch10, playch10, playch10_state, pcfboard, ROT0, "NES->PC-10", "Sky Kid (PlayChoice-10)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/pooyan.cpp b/src/hbmame/drivers/pooyan.cpp
new file mode 100644
index 00000000000..8883783839d
--- /dev/null
+++ b/src/hbmame/drivers/pooyan.cpp
@@ -0,0 +1,48 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/pooyan.cpp"
+
+
+/*************************************
+ *
+ * ROM definitions
+ *
+ *************************************/
+
+// Hold down P2 start while booting, to get into more diagnostic tests (In HBMAME, hold down 2 and hit F3)
+
+ROM_START( pooyandiag )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "diag.4a", 0x0000, 0x2000, CRC(a583d5c9) SHA1(9736e62c4fddafe46374abda069f12b492172c6c) )
+ ROM_LOAD( "2.5a", 0x2000, 0x2000, CRC(a1463d98) SHA1(b23cc7e61276c61a78e80fe08c7f0c8adadf2ffe) )
+ ROM_LOAD( "3.6a", 0x4000, 0x2000, CRC(fe1a9e08) SHA1(5206893760f188ac71a5e6bd42561cf25fcc3d49) )
+ ROM_LOAD( "4.7a", 0x6000, 0x2000, CRC(9e0f9bcc) SHA1(4d9707423ad531ac535db432e329b3d52cbb4559) )
+
+ ROM_REGION( 0x10000, "tpsound", 0 )
+ ROM_LOAD( "xx.7a", 0x0000, 0x1000, CRC(fbe2b368) SHA1(5689a84ef110bdc0039ad1a6c5778e0b8eccfce0) )
+ ROM_LOAD( "xx.8a", 0x1000, 0x1000, CRC(e1795b3d) SHA1(9ab4e5362f9f7d9b46b750e14b1d9d71c57be40f) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "8.10g", 0x0000, 0x1000, CRC(931b29eb) SHA1(0325c1c1fdb44e0044b82b7c79b5eeabf5c11ce7) )
+ ROM_LOAD( "7.9g", 0x1000, 0x1000, CRC(bbe6d6e4) SHA1(de5447d59a99c4c08c4f40c0b7dd3c3c609c11d4) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "6.9a", 0x0000, 0x1000, CRC(b2d8c121) SHA1(189ad488869f34d7a38b82ef70eb805acfe04312) )
+ ROM_LOAD( "5.8a", 0x1000, 0x1000, CRC(1097c2b6) SHA1(c815f0d27593efd23923511bdd13835456ef7f76) )
+
+ ROM_REGION( 0x0220, "proms", 0 )
+ ROM_LOAD( "pooyan.pr1", 0x0000, 0x0020, CRC(a06a6d0e) SHA1(ae131320b66d76d4bc9108da6708f6f874b2e123) )
+ ROM_LOAD( "pooyan.pr3", 0x0020, 0x0100, CRC(8cd4cd60) SHA1(e0188ecd5b53a8e6e28c1de80def676740772334) )
+ ROM_LOAD( "pooyan.pr2", 0x0120, 0x0100, CRC(82748c0b) SHA1(9ce8eb92e482eba5a9077e9db99841d65b011346) )
+ROM_END
+
+
+
+/*************************************
+ *
+ * Game drivers
+ *
+ *************************************/
+
+// YEAR, NAME, PARENT, MACHINE,INPUT, CLASS, INIT,MONITOR, COMPANY, FULLNAME, FLAGS
+GAME( 2017, pooyandiag, pooyan, pooyan, pooyan, pooyan_state, 0, ROT90, "Shoestring", "Pooyan Tester", MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/powerins.cpp b/src/hbmame/drivers/powerins.cpp
new file mode 100644
index 00000000000..1a0610daaf1
--- /dev/null
+++ b/src/hbmame/drivers/powerins.cpp
@@ -0,0 +1,98 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/powerins.cpp"
+
+ROM_START( powernbr )
+ ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 Code */
+ ROM_LOAD16_WORD_SWAP( "93095-3br.u108", 0x00000, 0x80000, CRC(522e776a) SHA1(4b3965a3388fdbb438d5cdbff7194cc3344a51e7) )
+ ROM_LOAD16_WORD_SWAP( "93095-4.u109", 0x80000, 0x80000, CRC(d3d7a782) SHA1(7846de0ebb09bd9b2534cd451ff9aa5175e60647) )
+
+ ROM_REGION( 0x20000, "soundcpu", 0 ) /* Z80 Code */
+ ROM_LOAD( "93095-2.u90", 0x00000, 0x20000, CRC(4b123cc6) SHA1(ed61d3a2ab20c86b91fd7bafa717be3ce26159be) )
+
+ ROM_REGION( 0x280000, "gfx1", 0 ) /* Layer 0 */
+ ROM_LOAD( "93095-5.u16", 0x000000, 0x100000, CRC(b1371808) SHA1(15fca313314ff2e0caff35841a2fdda97f6235a8) )
+ ROM_LOAD( "93095-6br.u17", 0x100000, 0x100000, CRC(4a7a6bd8) SHA1(953bba9606795ec32c9c0e4e0fd4e88da9708cf8) )
+ ROM_LOAD( "93095-7.u18", 0x200000, 0x080000, CRC(2dd76149) SHA1(975e4d371fdfbbd9a568da4d4c91ffd3f0ae636e) )
+
+ ROM_REGION( 0x100000, "gfx2", 0 ) /* Layer 1 */
+ ROM_LOAD( "93095-1br.u15", 0x000000, 0x020000, CRC(7e73e1d8) SHA1(ff8d8ecbb01122291404f93a60d6e0c3fc56c3c7) )
+
+ ROM_REGION( 0x800000, "gfx3", 0 ) /* Sprites */
+ ROM_LOAD( "93095-12.u116", 0x000000, 0x100000, CRC(35f3c2a3) SHA1(70efebfe248401ba3d766dc0e4bcc2846cd0d9a0) )
+ ROM_LOAD( "93095-13.u117", 0x100000, 0x100000, CRC(1ebd45da) SHA1(99b0ac734890673064b2a4b4b57ff2694e338dea) )
+ ROM_LOAD( "93095-14.u118", 0x200000, 0x100000, CRC(760d871b) SHA1(4887122ad0518c90f08c11a7a6b694f3fd218498) )
+ ROM_LOAD( "93095-15.u119", 0x300000, 0x100000, CRC(d011be88) SHA1(837409a2584abdf22e022b0f06181a600a974cbe) )
+ ROM_LOAD( "93095-16.u120", 0x400000, 0x100000, CRC(a9c16c9c) SHA1(a34e81324c875c2a57f778d1dbdda8da81850a29) )
+ ROM_LOAD( "93095-17.u121", 0x500000, 0x100000, CRC(51b57288) SHA1(821473d51565bc0a8b9a979723ce1307b97e517e) )
+ ROM_LOAD( "93095-18.u122", 0x600000, 0x100000, CRC(b135e3f2) SHA1(339fb4007ca0f379b7554a1c4f711f494a371fb2) )
+ ROM_LOAD( "93095-19.u123", 0x700000, 0x100000, CRC(67695537) SHA1(4c78ce3e36f27d2a6a9e50e8bf896335d4d0958a) )
+
+ ROM_REGION( 0x240000, "oki1", 0 ) /* 8 bit adpcm (banked) */
+ ROM_LOAD( "93095-10.u48", 0x040000, 0x100000, CRC(329ac6c5) SHA1(e809b94e2623141f5a48995cfa97fe1ead7ab40b) )
+ ROM_LOAD( "93095-11.u49", 0x140000, 0x100000, CRC(75d6097c) SHA1(3c89a7c9b12087e2d969b822419d3e5f98f5cb1d) )
+
+ ROM_REGION( 0x240000, "oki2", 0 ) /* 8 bit adpcm (banked) */
+ ROM_LOAD( "93095-8.u46", 0x040000, 0x100000, CRC(f019bedb) SHA1(4b6e10f85671c75b666e547887d403d6e607cec8) )
+ ROM_LOAD( "93095-9.u47", 0x140000, 0x100000, CRC(adc83765) SHA1(9e760443f9de21c1bb7e33eaa1541023fcdc60ab) )
+
+ ROM_REGION( 0x0220, "proms", 0 ) /* unknown */
+ ROM_LOAD( "22.u81", 0x000000, 0x0020, CRC(67d5ec4b) SHA1(87d32948a0c88277dcdd0eaa035bde40fc7db5fe) )
+ ROM_LOAD( "21.u71", 0x000020, 0x0100, CRC(182cd81f) SHA1(3a76bea81b34ea7ccf56044206721058aa5b03e6) )
+ ROM_LOAD( "20.u54", 0x000100, 0x0100, CRC(38bd0e2f) SHA1(20d311869642cd96bb831fdf4a458e0d872f03eb) )
+ROM_END
+
+GAME( 2006, powernbr, powerins, powerins, powerins, powerins_state, 0, ROT0, "Neogeo BR team", "Power Instinct (Brasil)", MACHINE_SUPPORTS_SAVE ) // 06.04.25 date
+
+//PSmame galston90
+
+ROM_START( powerns01 )
+ ROM_REGION( 0x900000, "maincpu", 0 ) /* 68000 Code */
+ ROM_LOAD16_WORD_SWAP( "93095hc01-3br.u108", 0x00000, 0x454F48, CRC(1aa0b604) SHA1(67bc37584e7d697b28537eb43622fccf83dd87e7) )
+ ROM_LOAD16_WORD_SWAP( "93095-4.u109", 0x80000, 0x80000, CRC(d3d7a782) SHA1(7846de0ebb09bd9b2534cd451ff9aa5175e60647) )
+
+ ROM_REGION( 0x20000, "soundcpu", 0 ) /* Z80 Code */
+ ROM_LOAD( "93095-2.u90", 0x00000, 0x20000, CRC(4b123cc6) SHA1(ed61d3a2ab20c86b91fd7bafa717be3ce26159be) )
+
+ ROM_REGION( 0x280000, "gfx1", 0 ) /* Layer 0 */
+ ROM_LOAD( "93095-5.u16", 0x000000, 0x100000, CRC(b1371808) SHA1(15fca313314ff2e0caff35841a2fdda97f6235a8) )
+ ROM_LOAD( "93095-6br.u17", 0x100000, 0x100000, CRC(4a7a6bd8) SHA1(953bba9606795ec32c9c0e4e0fd4e88da9708cf8) )
+ ROM_LOAD( "93095-7.u18", 0x200000, 0x080000, CRC(2dd76149) SHA1(975e4d371fdfbbd9a568da4d4c91ffd3f0ae636e) )
+
+ ROM_REGION( 0x100000, "gfx2", 0 ) /* Layer 1 */
+ ROM_LOAD( "93095-1br.u15", 0x000000, 0x020000, CRC(7e73e1d8) SHA1(ff8d8ecbb01122291404f93a60d6e0c3fc56c3c7) )
+
+ ROM_REGION( 0x800000, "gfx3", 0 ) /* Sprites */
+ ROM_LOAD( "93095-12.u116", 0x000000, 0x100000, CRC(35f3c2a3) SHA1(70efebfe248401ba3d766dc0e4bcc2846cd0d9a0) )
+ ROM_LOAD( "93095-13.u117", 0x100000, 0x100000, CRC(1ebd45da) SHA1(99b0ac734890673064b2a4b4b57ff2694e338dea) )
+ ROM_LOAD( "93095-14.u118", 0x200000, 0x100000, CRC(760d871b) SHA1(4887122ad0518c90f08c11a7a6b694f3fd218498) )
+ ROM_LOAD( "93095-15.u119", 0x300000, 0x100000, CRC(d011be88) SHA1(837409a2584abdf22e022b0f06181a600a974cbe) )
+ ROM_LOAD( "93095-16.u120", 0x400000, 0x100000, CRC(a9c16c9c) SHA1(a34e81324c875c2a57f778d1dbdda8da81850a29) )
+ ROM_LOAD( "93095-17.u121", 0x500000, 0x100000, CRC(51b57288) SHA1(821473d51565bc0a8b9a979723ce1307b97e517e) )
+ ROM_LOAD( "93095-18.u122", 0x600000, 0x100000, CRC(b135e3f2) SHA1(339fb4007ca0f379b7554a1c4f711f494a371fb2) )
+ ROM_LOAD( "93095-19.u123", 0x700000, 0x100000, CRC(67695537) SHA1(4c78ce3e36f27d2a6a9e50e8bf896335d4d0958a) )
+
+ ROM_REGION( 0x240000, "oki1", 0 ) /* 8 bit adpcm (banked) */
+ ROM_LOAD( "93095-10.u48", 0x040000, 0x100000, CRC(329ac6c5) SHA1(e809b94e2623141f5a48995cfa97fe1ead7ab40b) )
+ ROM_LOAD( "93095-11.u49", 0x140000, 0x100000, CRC(75d6097c) SHA1(3c89a7c9b12087e2d969b822419d3e5f98f5cb1d) )
+
+ ROM_REGION( 0x240000, "oki2", 0 ) /* 8 bit adpcm (banked) */
+ ROM_LOAD( "93095-8.u46", 0x040000, 0x100000, CRC(f019bedb) SHA1(4b6e10f85671c75b666e547887d403d6e607cec8) )
+ ROM_LOAD( "93095-9.u47", 0x140000, 0x100000, CRC(adc83765) SHA1(9e760443f9de21c1bb7e33eaa1541023fcdc60ab) )
+
+ ROM_REGION( 0x0220, "proms", 0 ) /* unknown */
+ ROM_LOAD( "22.u81", 0x000000, 0x0020, CRC(67d5ec4b) SHA1(87d32948a0c88277dcdd0eaa035bde40fc7db5fe) )
+ ROM_LOAD( "21.u71", 0x000020, 0x0100, CRC(182cd81f) SHA1(3a76bea81b34ea7ccf56044206721058aa5b03e6) )
+ ROM_LOAD( "20.u54", 0x000100, 0x0100, CRC(38bd0e2f) SHA1(20d311869642cd96bb831fdf4a458e0d872f03eb) )
+ROM_END
+
+/*************************************
+ *
+ * Game driver(s)
+ *
+ *************************************/
+// Proyecto Shadows Mame Build Plus
+/* YEAR NAME PARENT MACHINE INPUT INIT MONITOR COMPANY FULLNAME FLAGS */
+//Power Instinct
+GAME( 2006, powerns01, powerins, powerins, powerins, driver_device, 0, ROT0, "Hacks", "Power Instinct (Description Of Unknown Origin 01)", MACHINE_SUPPORTS_SAVE )
+
diff --git a/src/hbmame/drivers/psikyosh.cpp b/src/hbmame/drivers/psikyosh.cpp
new file mode 100644
index 00000000000..d013f330591
--- /dev/null
+++ b/src/hbmame/drivers/psikyosh.cpp
@@ -0,0 +1,97 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/psikyosh.cpp"
+
+ROM_START( s1945iiex )
+ ROM_REGION( 0x200000, "maincpu", 0) /* Code */
+ ROM_LOAD32_WORD_SWAP( "2_prog_l.u18-ex", 0x000002, 0x080000, CRC(56276eb7) SHA1(28530132058621382697c678426967d720741853) )
+ ROM_LOAD32_WORD_SWAP( "1_prog_h.u17-ex", 0x000000, 0x080000, CRC(99658d0d) SHA1(f8b7a697819dc1e4993557d9e854aa53964eb4a3) )
+
+ ROM_REGION( 0x2000000, "gfx1", 0 ) /* Tiles */
+ ROM_LOAD32_WORD( "0l.u4", 0x0000000, 0x400000, CRC(bfacf98d) SHA1(19954f12881e6e95e808bd1f2c2f5a425786727f) )
+ ROM_LOAD32_WORD( "0h.u13", 0x0000002, 0x400000, CRC(1266f67c) SHA1(cf93423a827aa92aa54afbbecf8509d2590edc9b) )
+ ROM_LOAD32_WORD( "1l.u3", 0x0800000, 0x400000, CRC(2d3332c9) SHA1(f2e54100a48061bfd589e8765f59ca051176a38b) )
+ ROM_LOAD32_WORD( "1h.u12", 0x0800002, 0x400000, CRC(27b32c3e) SHA1(17a80b3c919d8a282169c019ede8a22d2079c018) )
+ ROM_LOAD32_WORD( "2l.u2", 0x1000000, 0x400000, CRC(91ba6d23) SHA1(fd016a90204b2de43bb709971f7cd891f839de1a) )
+ ROM_LOAD32_WORD( "2h.u20", 0x1000002, 0x400000, CRC(fabf4334) SHA1(f8ec43e083b674700f532575f0d067bd49c5aaf7) )
+ ROM_LOAD32_WORD( "3l.u1", 0x1800000, 0x400000, CRC(a6c3704e) SHA1(cb9881e4235cc8e4bcca4c6ccbd8d8d8634e3624) )
+ ROM_LOAD32_WORD( "3h.u19", 0x1800002, 0x400000, CRC(4cd3ca70) SHA1(5b0a6ea4fe0e821cebe6e840596f648e24dded51) )
+
+ ROM_REGION( 0x400000, "ymf", 0 ) /* Samples */
+ ROM_LOAD( "sound.u32", 0x000000, 0x400000, CRC(ba680ca7) SHA1(b645896e297aad426784aa656bff738e1b33c2a2) )
+
+ ROM_REGION( 0x100, "eeprom", 0 )
+ ROM_LOAD( "eeprom-s1945ii.bin", 0x0000, 0x0100, CRC(7ac38846) SHA1(c5f4b05a94211f3c96b8c472adbe634f2e77d753) )
+ROM_END
+
+ROM_START( s1945sr3 )
+ ROM_REGION( 0x180000, "maincpu", 0)
+ ROM_LOAD32_WORD_SWAP( "2_progl.u16", 0x000002, 0x080000, CRC(16b4e78e) SHA1(ac16e3d7b959e7d28f1afc6eb6c590afa96fa379) )
+ ROM_LOAD32_WORD_SWAP( "1_progh.u17", 0x000000, 0x080000, CRC(6607b00e) SHA1(958d00880deb3d57c607402b8a87adaaa720914c) )
+ ROM_LOAD16_WORD_SWAP( "3_data.u1", 0x100000, 0x080000, CRC(8ff5f7d3) SHA1(420a3d7f2d5ab6a56789d36b418431f12f5f73f5) )
+
+ ROM_REGION( 0x3800000, "gfx1", 0 )
+ ROM_LOAD32_WORD( "0l.u3", 0x0000000, 0x800000, CRC(70a0d52c) SHA1(c9d9534da59123b577dc22020273b94ccdeeb67d) )
+ ROM_LOAD32_WORD( "0h.u10", 0x0000002, 0x800000, CRC(4dcd22b4) SHA1(2df7a7d08df17d2a62d574fccc8ba40aaae21a13) )
+ ROM_LOAD32_WORD( "1l.u4", 0x1000000, 0x800000, CRC(de1042ff) SHA1(468f6dfd5c1f2084c573b6851e314ff2826dc350) )
+ ROM_LOAD32_WORD( "1h.u11", 0x1000002, 0x800000, CRC(b51a4430) SHA1(b51117591b0e351e922f9a6a7930e8b50237e54e) )
+ ROM_LOAD32_WORD( "2l.u5", 0x2000000, 0x800000, CRC(23b02dca) SHA1(0249dceca02b312301a917d98fac481b6a0a9122) )
+ ROM_LOAD32_WORD( "2h.u12", 0x2000002, 0x800000, CRC(9933ab04) SHA1(710e6b20e111c1898666b4466554d039309883cc) )
+ ROM_LOAD32_WORD( "3l.u6", 0x3000000, 0x400000, CRC(f693438c) SHA1(d70e25a3f56aae6575c696d9b7b6d7a9d04f0104) )
+ ROM_LOAD32_WORD( "3h.u13", 0x3000002, 0x400000, CRC(2d0c334f) SHA1(74d94abb34484c7b79dbb989645f53124e53e3b7) )
+
+ ROM_REGION( 0x400000, "ymf", 0 ) /* Samples */
+ ROM_LOAD( "sound.u9", 0x000000, 0x400000, CRC(c5374beb) SHA1(d13e12cbd249246d953c45bb3bfa576a0ec75595) )
+
+ ROM_REGION( 0x100, "eeprom", 0 )
+ ROM_LOAD( "eeprom-s1945iii.bin", 0x0000, 0x0100, CRC(b39f3604) SHA1(d7c66210598096fcafb20adac2f0b293755f4926) )
+ROM_END
+
+
+
+/* YEAR NAME PARENT MACHINE INPUT CLASS INIT MONITOR COMPANY FULLNAME FLAGS */
+GAME( 2009, s1945iiex, s1945ii, psikyo3v1, s1945ii, psikyosh_state, ps3, ROT270, "Pipi899", "Strikers 1945 II (EX Super Version)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, s1945sr3, s1945iii, psikyo5, s1945iii, psikyosh_state, ps5, ROT270, "hack", "Strikers 1945 III (hack R3)", MACHINE_SUPPORTS_SAVE )
+
+//PSmame
+
+ROM_START( darakuhc01 )
+ /* main program */
+ ROM_REGION( 0x200000, "maincpu", 0)
+ ROM_LOAD32_WORD_SWAP( "4_proghc01.u18", 0x000002, 0x080000, CRC(a599fe9f) SHA1(12680fcab83b5cc3b53b19372096a97067e58fdc) )
+ ROM_LOAD32_WORD_SWAP( "3_proghc01.u17", 0x000000, 0x080000, CRC(2033dd8b) SHA1(b787b4f94b268f8585edc2ffa75dc2ccba5ad6f8) )
+ ROM_LOAD16_WORD_SWAP( "prog.u16", 0x100000, 0x100000, CRC(3742e990) SHA1(dd4b8777e57245151b3d520ed1bdab207530420b) )
+
+ ROM_REGION( 0x3400000, "gfx1", 0 )
+ ROM_LOAD32_WORD( "0l.u4", 0x0000000, 0x400000, CRC(565d8427) SHA1(090ce9213c530d29e488cfb89bb39fd7169985d5) )
+ ROM_LOAD32_WORD( "0h.u13", 0x0000002, 0x400000, CRC(9a602630) SHA1(ab176490b36aec7ce30d1cf20b57c02c926c59d3) )
+ ROM_LOAD32_WORD( "1l.u3", 0x0800000, 0x400000, CRC(ac5ce8e1) SHA1(7df6a04ea2530cc669581474e8b8ee6f59caae1b) )
+ ROM_LOAD32_WORD( "1h.u12", 0x0800002, 0x400000, CRC(b0a59f7b) SHA1(8704705aa0977f11da8bcdafae6e2531190878d0) )
+ ROM_LOAD32_WORD( "2l.u2", 0x1000000, 0x400000, CRC(2daa03b2) SHA1(475badc60cbd26786242d685a3d7dbaf385862a8) )
+ ROM_LOAD32_WORD( "2h.u20", 0x1000002, 0x400000, CRC(e98e185a) SHA1(124d5fcf6cfb1faf70d665b687564bf6589d17c4) )
+ ROM_LOAD32_WORD( "3l.u1", 0x1800000, 0x400000, CRC(1d372aa1) SHA1(e5965a1d8919409a314dfd56482a848d6ab9f5ac) )
+ ROM_LOAD32_WORD( "3h.u19", 0x1800002, 0x400000, CRC(597f3f15) SHA1(62bf74ed29732e6cc1979458745cdb53a8edddf3) )
+ ROM_LOAD32_WORD( "4l.u10", 0x2000000, 0x400000, CRC(e3d58cd8) SHA1(9482d0b71f840d72b20029804cfc8dca207462de) )
+ ROM_LOAD32_WORD( "4h.u31", 0x2000002, 0x400000, CRC(aebc9cd0) SHA1(c20a1f9851ace74e00f1a0746e0c9e751ccec336) )
+ ROM_LOAD32_WORD( "5l.u9", 0x2800000, 0x400000, CRC(eab5a50b) SHA1(76ce96e89afc438bafb9f8caa86eb48fb7e4e154) )
+ ROM_LOAD32_WORD( "5h.u30", 0x2800002, 0x400000, CRC(f157474f) SHA1(89509f0772a40829070cea708c21438ff61d1019) )
+ ROM_LOAD32_WORD( "6l.u8", 0x3000000, 0x200000, CRC(9f008d1b) SHA1(9607e09bde430eefe126569a6e251114bc8f754b) )
+ ROM_LOAD32_WORD( "6h.u37", 0x3000002, 0x200000, CRC(acd2d0e3) SHA1(dee96bdf3b8efde1298b73c5e7dd62abcdc101cf) )
+
+ ROM_REGION( 0x400000, "ymf", 0 ) /* Samples */
+ ROM_LOAD( "sound.u32", 0x000000, 0x400000, CRC(ef2c781d) SHA1(1313f082f6dbe4da0efaf261226085eb7325667f) )
+
+ ROM_REGION( 0x100, "eeprom", 0 )
+ ROM_LOAD( "eeprom-daraku.bin", 0x0000, 0x0100, CRC(a9715297) SHA1(fcd32b936e0d05bad4ba4969ddec24aae7768cea) )
+ROM_END
+
+/*************************************
+ *
+ * Game driver(s)
+ *
+ *************************************/
+// Proyecto Shadows Mame Build Plus
+/* YEAR NAME PARENT MACHINE INPUT INIT MONITOR COMPANY FULLNAME FLAGS */
+//Daraku Tenshi
+GAME( 1998, darakuhc01, daraku, psikyo3v1, daraku, psikyosh_state, ps3, ROT0, "Hacks", "Daraku Tenshi (Description Of Unknown Origin 01)", MACHINE_SUPPORTS_SAVE )
+
diff --git a/src/hbmame/drivers/rallyx.cpp b/src/hbmame/drivers/rallyx.cpp
new file mode 100644
index 00000000000..65ffffbfab2
--- /dev/null
+++ b/src/hbmame/drivers/rallyx.cpp
@@ -0,0 +1,97 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/rallyx.cpp"
+
+INPUT_PORTS_START( nrallyv )
+ PORT_START("P1")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN3 )
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 )
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START1 )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
+
+ PORT_START("P2")
+ PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( Upright ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 )
+
+ PORT_START("DSW")
+ PORT_SERVICE( 0x01, IP_ACTIVE_LOW )
+ /* TODO: the bonus score depends on the number of lives */
+ PORT_DIPNAME( 0x06, 0x02, DEF_STR( Bonus_Life ) )
+ PORT_DIPSETTING( 0x02, "A" )
+ PORT_DIPSETTING( 0x04, "B" )
+ PORT_DIPSETTING( 0x06, "C" )
+ PORT_DIPSETTING( 0x00, DEF_STR( None ) )
+ PORT_DIPNAME( 0x38, 0x00, DEF_STR( Difficulty ) )
+ PORT_DIPSETTING( 0x10, "1 Car, Medium" )
+ PORT_DIPSETTING( 0x28, "1 Car, Hard" )
+ PORT_DIPSETTING( 0x18, "2 Cars, Medium" )
+ PORT_DIPSETTING( 0x30, "2 Cars, Hard" )
+ PORT_DIPSETTING( 0x00, "3 Cars, Easy" )
+ PORT_DIPSETTING( 0x20, "3 Cars, Medium" )
+ PORT_DIPSETTING( 0x38, "3 Cars, Hard" )
+ PORT_DIPSETTING( 0x08, "4 Cars, Easy" )
+ PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Coinage ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( 2C_1C ) )
+ PORT_DIPSETTING( 0xc0, DEF_STR( 1C_1C ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( 1C_2C ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) )
+INPUT_PORTS_END
+
+ROM_START( rxtron ) // roms from rallyx except where marked
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "1b", 0x0000, 0x1000, CRC(5882700d) SHA1(b6029e9730f1694894fe8b729ac0ba8d6712dea9) )
+ ROM_LOAD( "rxtron.1e", 0x1000, 0x1000, CRC(8d5b88e5) SHA1(95a8bde287325f88cfc7ce12ad900647831b861e) )
+ ROM_LOAD( "rxtron.1h", 0x2000, 0x1000, CRC(1ecfddc0) SHA1(e800a3bb0e2d35dbfba49c7724689d29ab1912fd) )
+ ROM_LOAD( "rxtron.1k", 0x3000, 0x1000, CRC(2729e00a) SHA1(1f3d17e8342d8a7db57d64fd890b70e64315752a) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "rxtron.8e", 0x0000, 0x1000, CRC(91538868) SHA1(4ba04a56a6255895214bca1e0249e365b95f566d) )
+
+ ROM_REGION( 0x0100, "gfx2", 0 )
+ ROM_LOAD( "rx1-6.8m", 0x0000, 0x0100, CRC(3c16f62c) SHA1(7a3800be410e306cf85753b9953ffc5575afbcd6) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD( "rx1-1.11n", 0x0000, 0x0020, CRC(c7865434) SHA1(70c1c9610ba6f1ead77f347e7132958958bccb31) )
+ ROM_LOAD( "rx1-7.8p", 0x0020, 0x0100, CRC(834d4fda) SHA1(617864d3df0917a513e8255ad8d96ae7a04da5a1) )
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "rx1-5.3p", 0x0000, 0x0100, CRC(4bad7017) SHA1(3e6da9d798f5e07fa18d6ce7d0b148be98c766d5) )
+ ROM_LOAD( "rx1-4.2m", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) )
+ROM_END
+
+ROM_START( nrallyv )
+ ROM_REGION( 0x10000, "maincpu", 0 ) // from nrallyxb except where marked
+ ROM_LOAD( "nrallyx.1b", 0x0000, 0x1000, CRC(9404c8d6) SHA1(ee7e45c22a2fbf72d3ac5ac26ab1111a22623fc5) )
+ ROM_LOAD( "nrallyx.1e", 0x1000, 0x1000, CRC(ac01bf3f) SHA1(8e1a7cce92ef709d18727db6ee7f89936f4b8df8) )
+ ROM_LOAD( "nrallyx.1h", 0x2000, 0x1000, CRC(aeba29b5) SHA1(2a6e4568729b83c430bf70e43c4146ad6a556b1b) )
+ ROM_LOAD( "nrallyx.1k", 0x3000, 0x1000, CRC(78f17da7) SHA1(1e035746a10f91e898166a58093d45bdb158ae47) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "nrallyv.8e", 0x0000, 0x1000, CRC(031acfc5) SHA1(7e0df966b7f2be416e22ec2c36bb86425138c203) )
+
+ ROM_REGION( 0x0100, "gfx2", 0 )
+ ROM_LOAD( "rx1-6.8m", 0x0000, 0x0100, CRC(3c16f62c) SHA1(7a3800be410e306cf85753b9953ffc5575afbcd6) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD( "nrx1-1.11n", 0x0000, 0x0020, CRC(a0a49017) SHA1(494c920a157e9f876d533c1b0146275a366c4989) )
+ ROM_LOAD( "nrallyv.pr2", 0x0020, 0x0100, CRC(b2b7ca15) SHA1(e604d58f2f20ebf042f28b01e74eddeacf5baba9) )
+
+ ROM_REGION( 0x0200, "namco", 0 )
+ ROM_LOAD( "nrallyv.spr", 0x0000, 0x0100, CRC(b75c4e87) SHA1(450f79a5ae09e34f7624d37769815baf93c0028e) )
+ ROM_LOAD( "rx1-4.2m", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) )
+ROM_END
+
+GAME( 1998, rxtron, rallyx, rallyx, rallyx, rallyx_state, 0, ROT0, "Jerky and Sil", "Rally-X Tron", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, nrallyv, rallyx, rallyx, nrallyv, rallyx_state, 0, ROT90, "hack", "New Rally X (Vertical Screen)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/rastan.cpp b/src/hbmame/drivers/rastan.cpp
new file mode 100644
index 00000000000..8fab01d79a2
--- /dev/null
+++ b/src/hbmame/drivers/rastan.cpp
@@ -0,0 +1,155 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/rastan.cpp"
+
+ROM_START( rastwack )
+ ROM_REGION( 0x60000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "rs19_38.bin", 0x00000, 0x10000, CRC(a38ac909) SHA1(66d792fee03c6bd87d15060b9d5cae74137c5ebd) )
+ ROM_LOAD16_BYTE( "wk_rs07_37.bin", 0x00001, 0x10000, CRC(bad60872) SHA1(e020f79b3ac3d2abccfcd5d135d2dc49e1335c7d) )
+ ROM_LOAD16_BYTE( "wk_rs20_40.bin", 0x20000, 0x10000, CRC(6bcf70dc) SHA1(3e369548ac01981c503150b44c2747e6c2cec12a) )
+ ROM_LOAD16_BYTE( "wk_rs08_39.bin", 0x20001, 0x10000, CRC(8838ecc5) SHA1(42b43ab77969bbacdf178fbe73a0a27652ccb297) )
+ ROM_LOAD16_BYTE( "wk_rs21_42.bin", 0x40000, 0x10000, CRC(b626c439) SHA1(976e820edc4ba107c5b579edaaee1e354e85fb67) )
+ ROM_LOAD16_BYTE( "wk_rs09_43.bin", 0x40001, 0x10000, CRC(c928a516) SHA1(fe87fdf2d1b7ba93e1986460eb6af648b58f42e4) )
+
+ ROM_REGION( 0x1c000, "audiocpu", 0 )
+ ROM_LOAD( "b04-19.49", 0x00000, 0x4000, CRC(ee81fdd8) SHA1(fa59dac2583a7d2979550dffc6f9c6c2bd67bfd5) )
+ ROM_CONTINUE( 0x10000, 0xc000 )
+
+ ROM_REGION( 0x080000, "gfx1", 0 )
+ ROM_LOAD( "wk_ic40_01.bin", 0x00000, 0x20000, CRC(f2111c1f) SHA1(bfdb46aeffe3f08fd5095440a7fa439f52d93d92) )
+ ROM_LOAD( "wk_ic39_03.bin", 0x20000, 0x20000, CRC(a25b10c1) SHA1(6a163e12e00b599cf8430d73e39b5a47a94db41e) )
+ ROM_LOAD( "wk_ic67_02.bin", 0x40000, 0x20000, CRC(a465449c) SHA1(7cae41f4c64641fb6ed8115ae7b934c013b964b2) )
+ ROM_LOAD( "wk_ic66_04.bin", 0x60000, 0x20000, CRC(9d4f8e36) SHA1(4f6634a5c2eeb7be4582f0a2596bb7caa7fddac3) )
+
+ ROM_REGION( 0x080000, "gfx2", 0 )
+ ROM_LOAD( "wk_ic15_05.bin", 0x00000, 0x20000, CRC(edc6f1bb) SHA1(567e88a4e2bfc39e9f056a9c3aa735297363a376) )
+ ROM_LOAD( "wk_ic14_07.bin", 0x20000, 0x20000, CRC(c672101c) SHA1(5759adc762f9cffb85175ee66c237a195dc2b656) )
+ ROM_LOAD( "wk_ic28_06.bin", 0x40000, 0x20000, CRC(f6ada09a) SHA1(6ddc23f2499164d4a403d4c519e9b14492a1604b) )
+ ROM_LOAD( "wk_ic27_08.bin", 0x60000, 0x20000, CRC(533d567e) SHA1(e61082c4c3e9d1422ff01646bb5fded9fda96f65) )
+
+ ROM_REGION( 0x10000, "adpcm", 0 )
+ ROM_LOAD( "b04-20.76", 0x0000, 0x10000, CRC(fd1a34cc) SHA1(b1682959521fa295769207b75cf7d839e9ec95fd) )
+ROM_END
+
+ROM_START( rastandh )
+ ROM_REGION( 0x60000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "b04-38.19", 0x00000, 0x10000, CRC(1c91dbb1) SHA1(17fc55e8546cc0b847aebd67fb4570a1e9f128f3) )
+ ROM_LOAD16_BYTE( "b04-37.7", 0x00001, 0x10000, CRC(ecf20bdd) SHA1(92e46b1edef40a19be17091c09daba598d77bca8) )
+ ROM_LOAD16_BYTE( "dh_ic20_40.bin", 0x20000, 0x10000, CRC(8f1ab70d) SHA1(58356b1b02d7c7de9f59bb8413782f655ebf0012) )
+ ROM_LOAD16_BYTE( "dh_ic08_39.bin", 0x20001, 0x10000, CRC(553a1ed8) SHA1(ef872bcdf681dd5f723907da3a36c065b618c563) )
+ ROM_LOAD16_BYTE( "dh_ic21_42.bin", 0x40000, 0x10000, CRC(08dc89b1) SHA1(836d87bcf2a12586722867fdd7d0d65f823008b7) )
+ ROM_LOAD16_BYTE( "dh_ic09_43.bin", 0x40001, 0x10000, CRC(a93fc337) SHA1(4117a31e3844cc981cae4323dd4c8878b1f77eb1) )
+
+ ROM_REGION( 0x1c000, "audiocpu", 0 )
+ ROM_LOAD( "b04-19.49", 0x00000, 0x4000, CRC(ee81fdd8) SHA1(fa59dac2583a7d2979550dffc6f9c6c2bd67bfd5) )
+ ROM_CONTINUE( 0x10000, 0xc000 )
+
+ ROM_REGION( 0x080000, "gfx1", 0 )
+ ROM_LOAD( "b04-01.40", 0x00000, 0x20000, CRC(cd30de19) SHA1(f8d158d38cd07a24cb5ddefd4ce90beec706924d) )
+ ROM_LOAD( "b04-03.39", 0x20000, 0x20000, CRC(ab67e064) SHA1(5c49f0ff9221cba9f2bb8da86eb4448c73012410) )
+ ROM_LOAD( "b04-02.67", 0x40000, 0x20000, CRC(54040fec) SHA1(a2bea2ce1cebd25b33be41723299ca0512d95f9e) )
+ ROM_LOAD( "b04-04.66", 0x60000, 0x20000, CRC(94737e93) SHA1(3df7f085fe6468bda11fab2e86252df6f74f7a99) )
+
+ ROM_REGION( 0x080000, "gfx2", 0 )
+ ROM_LOAD( "b04-05.15", 0x00000, 0x20000, CRC(c22d94ac) SHA1(04f69f9af7ac4242e95dba32988afa3616d75a92) )
+ ROM_LOAD( "b04-07.14", 0x20000, 0x20000, CRC(b5632a51) SHA1(da6ebe6afe245443a76b33714213549356c0c5c3) )
+ ROM_LOAD( "b04-06.28", 0x40000, 0x20000, CRC(002ccf39) SHA1(fdc29f39198f9b488e298ee89b0eeb3417527733) )
+ ROM_LOAD( "b04-08.27", 0x60000, 0x20000, CRC(feafca05) SHA1(9de9ff1fcf037e5ab25c181b678245041238d6ae) )
+
+ ROM_REGION( 0x10000, "adpcm", 0 )
+ ROM_LOAD( "b04-20.76", 0x0000, 0x10000, CRC(fd1a34cc) SHA1(b1682959521fa295769207b75cf7d839e9ec95fd) )
+ROM_END
+
+ROM_START( rastand2 )
+ ROM_REGION( 0x60000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "b04-38.19", 0x00000, 0x10000, CRC(1c91dbb1) SHA1(17fc55e8546cc0b847aebd67fb4570a1e9f128f3) )
+ ROM_LOAD16_BYTE( "b04-37.7", 0x00001, 0x10000, CRC(ecf20bdd) SHA1(92e46b1edef40a19be17091c09daba598d77bca8) )
+ ROM_LOAD16_BYTE( "dh_ic20_40.bin", 0x20000, 0x10000, CRC(8f1ab70d) SHA1(58356b1b02d7c7de9f59bb8413782f655ebf0012) )
+ ROM_LOAD16_BYTE( "dh_ic08_39.bin", 0x20001, 0x10000, CRC(553a1ed8) SHA1(ef872bcdf681dd5f723907da3a36c065b618c563) )
+ ROM_LOAD16_BYTE( "b04-42.21", 0x40000, 0x10000, CRC(1857a7cb) SHA1(7d967d04ade648c6ddb19aad9e184b6e272856da) )
+ ROM_LOAD16_BYTE( "d2_ic09_43.bin", 0x40001, 0x10000, CRC(e08d2b2d) SHA1(917017bdc64dc2d1ba15534baef80e581cacf7c1) )
+
+ ROM_REGION( 0x1c000, "audiocpu", 0 )
+ ROM_LOAD( "b04-19.49", 0x00000, 0x4000, CRC(ee81fdd8) SHA1(fa59dac2583a7d2979550dffc6f9c6c2bd67bfd5) )
+ ROM_CONTINUE( 0x10000, 0xc000 )
+
+ ROM_REGION( 0x080000, "gfx1", 0 )
+ ROM_LOAD( "b04-01.40", 0x00000, 0x20000, CRC(cd30de19) SHA1(f8d158d38cd07a24cb5ddefd4ce90beec706924d) )
+ ROM_LOAD( "b04-03.39", 0x20000, 0x20000, CRC(ab67e064) SHA1(5c49f0ff9221cba9f2bb8da86eb4448c73012410) )
+ ROM_LOAD( "b04-02.67", 0x40000, 0x20000, CRC(54040fec) SHA1(a2bea2ce1cebd25b33be41723299ca0512d95f9e) )
+ ROM_LOAD( "b04-04.66", 0x60000, 0x20000, CRC(94737e93) SHA1(3df7f085fe6468bda11fab2e86252df6f74f7a99) )
+
+ ROM_REGION( 0x080000, "gfx2", 0 )
+ ROM_LOAD( "b04-05.15", 0x00000, 0x20000, CRC(c22d94ac) SHA1(04f69f9af7ac4242e95dba32988afa3616d75a92) )
+ ROM_LOAD( "b04-07.14", 0x20000, 0x20000, CRC(b5632a51) SHA1(da6ebe6afe245443a76b33714213549356c0c5c3) )
+ ROM_LOAD( "b04-06.28", 0x40000, 0x20000, CRC(002ccf39) SHA1(fdc29f39198f9b488e298ee89b0eeb3417527733) )
+ ROM_LOAD( "b04-08.27", 0x60000, 0x20000, CRC(feafca05) SHA1(9de9ff1fcf037e5ab25c181b678245041238d6ae) )
+
+ ROM_REGION( 0x10000, "adpcm", 0 )
+ ROM_LOAD( "b04-20.76", 0x0000, 0x10000, CRC(fd1a34cc) SHA1(b1682959521fa295769207b75cf7d839e9ec95fd) )
+ROM_END
+
+ROM_START( rastaneh )
+ ROM_REGION( 0x60000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "b04-38.19", 0x00000, 0x10000, CRC(1c91dbb1) SHA1(17fc55e8546cc0b847aebd67fb4570a1e9f128f3) )
+ ROM_LOAD16_BYTE( "b04-37.7", 0x00001, 0x10000, CRC(ecf20bdd) SHA1(92e46b1edef40a19be17091c09daba598d77bca8) )
+ ROM_LOAD16_BYTE( "dh_ic20_40.bin", 0x20000, 0x10000, CRC(8f1ab70d) SHA1(58356b1b02d7c7de9f59bb8413782f655ebf0012) )
+ ROM_LOAD16_BYTE( "dh_ic08_39.bin", 0x20001, 0x10000, CRC(553a1ed8) SHA1(ef872bcdf681dd5f723907da3a36c065b618c563) )
+ ROM_LOAD16_BYTE( "b04-42.21", 0x40000, 0x10000, CRC(1857a7cb) SHA1(7d967d04ade648c6ddb19aad9e184b6e272856da) )
+ ROM_LOAD16_BYTE( "eh_ic09_43.bin", 0x40001, 0x10000, CRC(71037966) SHA1(f32d87a47535c6eae9016b7cc027d347236c217e) )
+
+ ROM_REGION( 0x1c000, "audiocpu", 0 )
+ ROM_LOAD( "b04-19.49", 0x00000, 0x4000, CRC(ee81fdd8) SHA1(fa59dac2583a7d2979550dffc6f9c6c2bd67bfd5) )
+ ROM_CONTINUE( 0x10000, 0xc000 )
+
+ ROM_REGION( 0x080000, "gfx1", 0 )
+ ROM_LOAD( "b04-01.40", 0x00000, 0x20000, CRC(cd30de19) SHA1(f8d158d38cd07a24cb5ddefd4ce90beec706924d) )
+ ROM_LOAD( "b04-03.39", 0x20000, 0x20000, CRC(ab67e064) SHA1(5c49f0ff9221cba9f2bb8da86eb4448c73012410) )
+ ROM_LOAD( "b04-02.67", 0x40000, 0x20000, CRC(54040fec) SHA1(a2bea2ce1cebd25b33be41723299ca0512d95f9e) )
+ ROM_LOAD( "b04-04.66", 0x60000, 0x20000, CRC(94737e93) SHA1(3df7f085fe6468bda11fab2e86252df6f74f7a99) )
+
+ ROM_REGION( 0x080000, "gfx2", 0 )
+ ROM_LOAD( "b04-05.15", 0x00000, 0x20000, CRC(c22d94ac) SHA1(04f69f9af7ac4242e95dba32988afa3616d75a92) )
+ ROM_LOAD( "b04-07.14", 0x20000, 0x20000, CRC(b5632a51) SHA1(da6ebe6afe245443a76b33714213549356c0c5c3) )
+ ROM_LOAD( "b04-06.28", 0x40000, 0x20000, CRC(002ccf39) SHA1(fdc29f39198f9b488e298ee89b0eeb3417527733) )
+ ROM_LOAD( "b04-08.27", 0x60000, 0x20000, CRC(feafca05) SHA1(9de9ff1fcf037e5ab25c181b678245041238d6ae) )
+
+ ROM_REGION( 0x10000, "adpcm", 0 )
+ ROM_LOAD( "b04-20.76", 0x0000, 0x10000, CRC(fd1a34cc) SHA1(b1682959521fa295769207b75cf7d839e9ec95fd) )
+ROM_END
+
+ROM_START( rastane2 )
+ ROM_REGION( 0x60000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "b04-38.19", 0x00000, 0x10000, CRC(1c91dbb1) SHA1(17fc55e8546cc0b847aebd67fb4570a1e9f128f3) )
+ ROM_LOAD16_BYTE( "b04-37.7", 0x00001, 0x10000, CRC(ecf20bdd) SHA1(92e46b1edef40a19be17091c09daba598d77bca8) )
+ ROM_LOAD16_BYTE( "dh_ic20_40.bin", 0x20000, 0x10000, CRC(8f1ab70d) SHA1(58356b1b02d7c7de9f59bb8413782f655ebf0012) )
+ ROM_LOAD16_BYTE( "dh_ic08_39.bin", 0x20001, 0x10000, CRC(553a1ed8) SHA1(ef872bcdf681dd5f723907da3a36c065b618c563) )
+ ROM_LOAD16_BYTE( "e2_ic21_42.bin", 0x40000, 0x10000, CRC(27845873) SHA1(b6197e15ee2655135d0fc8e72cc44fa3bcc73c10) )
+ ROM_LOAD16_BYTE( "e2_ic09_43.bin", 0x40001, 0x10000, CRC(a38131f3) SHA1(f46cda36d698c688f1b1bfee9945915194a30ebd) )
+
+ ROM_REGION( 0x1c000, "audiocpu", 0 )
+ ROM_LOAD( "b04-19.49", 0x00000, 0x4000, CRC(ee81fdd8) SHA1(fa59dac2583a7d2979550dffc6f9c6c2bd67bfd5) )
+ ROM_CONTINUE( 0x10000, 0xc000 )
+
+ ROM_REGION( 0x080000, "gfx1", 0 )
+ ROM_LOAD( "b04-01.40", 0x00000, 0x20000, CRC(cd30de19) SHA1(f8d158d38cd07a24cb5ddefd4ce90beec706924d) )
+ ROM_LOAD( "b04-03.39", 0x20000, 0x20000, CRC(ab67e064) SHA1(5c49f0ff9221cba9f2bb8da86eb4448c73012410) )
+ ROM_LOAD( "b04-02.67", 0x40000, 0x20000, CRC(54040fec) SHA1(a2bea2ce1cebd25b33be41723299ca0512d95f9e) )
+ ROM_LOAD( "b04-04.66", 0x60000, 0x20000, CRC(94737e93) SHA1(3df7f085fe6468bda11fab2e86252df6f74f7a99) )
+
+ ROM_REGION( 0x080000, "gfx2", 0 )
+ ROM_LOAD( "b04-05.15", 0x00000, 0x20000, CRC(c22d94ac) SHA1(04f69f9af7ac4242e95dba32988afa3616d75a92) )
+ ROM_LOAD( "b04-07.14", 0x20000, 0x20000, CRC(b5632a51) SHA1(da6ebe6afe245443a76b33714213549356c0c5c3) )
+ ROM_LOAD( "b04-06.28", 0x40000, 0x20000, CRC(002ccf39) SHA1(fdc29f39198f9b488e298ee89b0eeb3417527733) )
+ ROM_LOAD( "b04-08.27", 0x60000, 0x20000, CRC(feafca05) SHA1(9de9ff1fcf037e5ab25c181b678245041238d6ae) )
+
+ ROM_REGION( 0x10000, "adpcm", 0 )
+ ROM_LOAD( "b04-20.76", 0x0000, 0x10000, CRC(fd1a34cc) SHA1(b1682959521fa295769207b75cf7d839e9ec95fd) )
+ROM_END
+
+
+GAME( 2000, rastwack, rastan, rastan, rastsaga, rastan_state, 0, ROT0, "Vogel", "Wacky Rastan", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, rastandh, rastan, rastan, rastsaga, rastan_state, 0, ROT0, "Neil Pearce", "Rastan Dragon Hack", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, rastand2, rastan, rastan, rastsaga, rastan_state, 0, ROT0, "Neil Pearce", "Rastan Dragon Hack (set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, rastaneh, rastan, rastan, rastsaga, rastan_state, 0, ROT0, "Neil Pearce", "Rastan Enemy Hack", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, rastane2, rastan, rastan, rastsaga, rastan_state, 0, ROT0, "Neil Pearce", "Rastan Enemy Hack (set 2)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/retofinv.cpp b/src/hbmame/drivers/retofinv.cpp
new file mode 100644
index 00000000000..3c1179efe00
--- /dev/null
+++ b/src/hbmame/drivers/retofinv.cpp
@@ -0,0 +1,40 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/retofinv.cpp"
+
+ROM_START( retofinv4 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "a37-03.70", 0x0000, 0x2000, CRC(eae7459d) SHA1(c105f6adbd4c09decaad68ed13163d8f9b55e646) )
+ ROM_LOAD( "a37-02.71", 0x2000, 0x2000, CRC(72895e37) SHA1(42fb904338e9f92a79d587eac401d456e7fb6e55) )
+ ROM_LOAD( "a37-01.72", 0x4000, 0x2000, CRC(505dd20b) SHA1(3a34b1515bb834ff9e2d86b0b43a752d9619307b) )
+
+ ROM_REGION( 0x10000, "sub", 0 )
+ ROM_LOAD( "a37-04.62", 0x0000, 0x2000, CRC(d2899cc1) SHA1(fdbec743b06f4cdcc134ef863e4e71337ad0b2c5) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "a37-05.17", 0x0000, 0x2000, CRC(9025abea) SHA1(2f03e8572f23624d7cd1215a55109e97fd66e271) )
+
+ ROM_REGION( 0x0800, "68705:mcu", 0 )
+ ROM_LOAD( "a37-09.37", 0x00000, 0x0800, BAD_DUMP CRC(79bd6ded) SHA1(4967e95b4461c1bfb4e933d1804677799014f77b) )
+
+ ROM_REGION( 0x02000, "gfx1", 0 )
+ ROM_LOAD( "4_a37-16.61", 0x0000, 0x2000, CRC(e0de0cc4) SHA1(a9a19ed25de26306a328cc158843f43ade6eede1) )
+
+ ROM_REGION( 0x08000, "gfx2", 0 )
+ ROM_LOAD( "4_a37-10.8", 0x0000, 0x2000, CRC(c691fdbe) SHA1(b2f4c41cb0d059c9aa8045fc3e8e684bcc96b309) )
+ ROM_LOAD( "4_a37-11.9", 0x2000, 0x2000, CRC(0ff8cf5b) SHA1(46a67a8d7d59cdbf1a4ce9e8b9361a5766880e96) )
+ ROM_LOAD( "4_a37-12.10", 0x4000, 0x2000, CRC(90fd7496) SHA1(db2a98f4b07996d178c99a2653e1df1be4619644) )
+ ROM_LOAD( "4_a37-13.11", 0x6000, 0x2000, CRC(a2526b5e) SHA1(a31999c86aff8977cbec4bd24056a097aaa738c7) )
+
+ ROM_REGION( 0x04000, "gfx3", 0 )
+ ROM_LOAD( "4_a37-14.55", 0x0000, 0x2000, CRC(f233c421) SHA1(77da9750f88d032143968104e0b400ed1a07adca) )
+ ROM_LOAD( "4_a37-15.56", 0x2000, 0x2000, CRC(58c3f1c9) SHA1(5e0c46a5cd6adfcccba5cf33271a51a23ff9752a) )
+
+ ROM_REGION( 0x0b00, "proms", 0 )
+ ROM_LOAD( "a37-06.13", 0x0000, 0x0100, CRC(e9643b8b) SHA1(7bbb92a42e7c3effb701fc7b2c24f2470f31b063) )
+ ROM_LOAD( "a37-07.4", 0x0100, 0x0100, CRC(e8f34e11) SHA1(8f438561b8d46ffff00747ed8baf0ebb6a081615) )
+ ROM_LOAD( "a37-08.3", 0x0200, 0x0100, CRC(50030af0) SHA1(e748ae0b8702b7d20fb65c254dceee23246b3d13) )
+ ROM_LOAD( "82s191n", 0x0300, 0x0800, CRC(93c891e3) SHA1(643a0107717b6a434432dda73a0102e6e8adbca7) )
+ROM_END
+
+GAME( 2011, retofinv4, retofinv, retofinv, retofinv, retofinv_state, 0, ROT90, "Paul Smith", "Return of the Invaders (hack)", 0 )
diff --git a/src/hbmame/drivers/schaser.cpp b/src/hbmame/drivers/schaser.cpp
new file mode 100644
index 00000000000..0aeb29daf39
--- /dev/null
+++ b/src/hbmame/drivers/schaser.cpp
@@ -0,0 +1,603 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+/****************************************************************************************
+
+Space Chaser (CV version)
+
+August, 2008 by Robbbert
+
+No diagram, therefore this is a Hack Job.
+
+
+These cheats exist in this game:
+1. Hold down 2P DOWN (the F key) while it says INSERT COIN. Then insert a coin
+ and play. You will have 2 extra ships.
+2. In the Hard difficulty setting, you normally start at level 4. Hold down the
+ 1P START (the 1 key) while it says INSERT COIN. Then insert a coin and play.
+ You will start at level 5.
+
+
+Changes:
+1. Used the existing Discrete System for all sounds
+2. Removed IN0 as it is never referenced
+3. Identified and documented input cheats
+4. Added watchdog
+5. Added coin lockout
+
+*******************************************************************************************/
+
+#include "emu.h"
+#include "cpu/i8085/i8085.h"
+#include "machine/mb14241.h"
+#include "machine/timer.h"
+#include "sound/sn76477.h"
+#include "sound/discrete.h"
+#include "screen.h"
+#include "speaker.h"
+
+#define MW8080BW_MASTER_CLOCK (19968000.0)
+#define MW8080BW_CPU_CLOCK (MW8080BW_MASTER_CLOCK / 10)
+#define MW8080BW_PIXEL_CLOCK (MW8080BW_MASTER_CLOCK / 4)
+#define MW8080BW_HTOTAL (0x140)
+#define MW8080BW_HBEND (0x000)
+#define MW8080BW_HBSTART (0x100)
+#define MW8080BW_VTOTAL (0x106)
+#define MW8080BW_VBEND (0x000)
+#define MW8080BW_VBSTART (0x0e0)
+#define MW8080BW_VCOUNTER_START_NO_VBLANK (0x020)
+#define MW8080BW_VCOUNTER_START_VBLANK (0x0da)
+#define MW8080BW_INT_TRIGGER_COUNT_1 (0x080)
+#define MW8080BW_INT_TRIGGER_VBLANK_1 (0)
+#define MW8080BW_INT_TRIGGER_COUNT_2 MW8080BW_VCOUNTER_START_VBLANK
+#define MW8080BW_INT_TRIGGER_VBLANK_2 (1)
+#define MW8080BW_HPIXCOUNT MW8080BW_HBSTART
+
+class sc_state : public driver_device
+{
+public:
+ sc_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag)
+ , m_maincpu(*this,"maincpu")
+ , m_p_ram(*this, "ram")
+ , m_p_colorram(*this, "colorram")
+ , m_sn(*this, "snsnd")
+ , m_discrete(*this, "discrete")
+ , m_555_timer(*this, "schaser_sh_555")
+ , m_screen(*this, "screen")
+ { }
+
+ DECLARE_READ8_MEMBER(mw8080bw_shift_result_rev_r);
+ DECLARE_READ8_MEMBER(mw8080bw_reversable_shift_result_r);
+ DECLARE_WRITE8_MEMBER(mw8080bw_reversable_shift_count_w);
+ DECLARE_READ8_MEMBER(port02_r);
+ DECLARE_WRITE8_MEMBER(port03_w);
+ DECLARE_WRITE8_MEMBER(port05_w);
+ DECLARE_WRITE8_MEMBER(colour_w);
+ DECLARE_MACHINE_START(sc);
+ DECLARE_MACHINE_RESET(sc);
+ TIMER_DEVICE_CALLBACK_MEMBER(schaser_effect_555_cb);
+ TIMER_CALLBACK_MEMBER(mw8080bw_interrupt_callback);
+ uint32_t screen_update_schasercv(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+private:
+
+ bool m_flip_screen;
+ bool m_sound_enabled;
+ bool m_explosion;
+ bool m_555_is_low;
+ attotime m_555_time_remain;
+ int32_t m_555_time_remain_savable;
+ uint8_t m_last_effect;
+ uint8_t m_sound_seq;
+ emu_timer *m_interrupt_timer;
+ uint8_t vpos_to_vysnc_chain_counter( int vpos );
+ int vysnc_chain_counter_to_vpos( uint8_t counter, int vblank );
+ void schaser_reinit_555_time_remain();
+ void mw8080bw_create_interrupt_timer( );
+ void mw8080bw_start_interrupt_timer( );
+ required_device<cpu_device> m_maincpu;
+ required_shared_ptr<uint8_t> m_p_ram;
+ required_shared_ptr<uint8_t> m_p_colorram;
+ required_device<sn76477_device> m_sn;
+ required_device<discrete_device> m_discrete;
+ required_device<timer_device> m_555_timer;
+ required_device<screen_device> m_screen;
+};
+
+/*
+ * The dot sound is a square wave clocked by either the
+ * the 8V or 4V signals
+ *
+ * The frequencies are (for the 8V signal):
+ *
+ * 19.968 MHz crystal / 2 (Qa of 74160 #10) -> 9.984MHz
+ * / 2 (7474 #14) -> 4.992MHz
+ * / 256+16 (74161 #5 and #8) -> 18352.94Hz
+ * / 8 (8V) -> 2294.12 Hz
+ * / 2 the final freq. is 2 toggles -> 1147.06Hz
+ *
+ * for 4V, it's double at 2294.12Hz
+ */
+#define SCHASER_HSYNC 18352.94
+#define SCHASER_4V SCHASER_HSYNC /2 /4
+#define SCHASER_8V SCHASER_HSYNC /2 /8
+
+/* Nodes - Inputs */
+#define SCHASER_DOT_EN NODE_01
+#define SCHASER_DOT_SEL NODE_02
+#define SCHASER_EXP_STREAM NODE_03
+#define SCHASER_MUSIC_BIT NODE_04
+#define SCHASER_SND_EN NODE_05
+/* Nodes - Adjusters */
+#define SCHASER_VR1 NODE_07
+#define SCHASER_VR2 NODE_08
+#define SCHASER_VR3 NODE_09
+/* Nodes - Sounds */
+#define SCHASER_DOT_SND NODE_10
+#define SCHASER_EXP_SND NODE_11
+#define SCHASER_MUSIC_SND NODE_12
+
+DISCRETE_SOUND_START(schaser)
+ /************************************************/
+ /* Input register mapping for schaser */
+ /************************************************/
+ DISCRETE_INPUT_LOGIC (SCHASER_DOT_EN)
+ DISCRETE_INPUT_LOGIC (SCHASER_DOT_SEL)
+ // scale to 0-3.5V
+ DISCRETE_INPUTX_STREAM(SCHASER_EXP_STREAM, 0, 1.0/14100, 2.323)
+ DISCRETE_INPUTX_LOGIC (SCHASER_MUSIC_BIT, DEFAULT_TTL_V_LOGIC_1, 0, 0.0)
+ DISCRETE_INPUT_LOGIC (SCHASER_SND_EN)
+
+ /************************************************/
+ /* Volume adjusters. */
+ /* We will set them to adjust the relative */
+ /* gains. */
+ /************************************************/
+ DISCRETE_ADJUSTMENT(SCHASER_VR1, 0, RES_K(50)/(RES_K(50) + RES_K(470)), DISC_LINADJ, "VR1")
+ DISCRETE_ADJUSTMENT(SCHASER_VR2, 0, RES_K(50)/(RES_K(50) + 560 + RES_K(6.8) + RES_K(2)), DISC_LINADJ, "VR2")
+ DISCRETE_ADJUSTMENT(SCHASER_VR3, 0, RES_K(50)/(RES_K(50) + 560 + RES_K(6.8) + RES_K(10)), DISC_LINADJ, "VR3")
+
+ /************************************************/
+ /* Dot selection just selects between 4V and 8V */
+ /************************************************/
+ DISCRETE_SQUAREWFIX(NODE_20, 1, SCHASER_4V, DEFAULT_TTL_V_LOGIC_1, 50, 0, 0)
+ DISCRETE_SQUAREWFIX(NODE_21, 1, SCHASER_8V, DEFAULT_TTL_V_LOGIC_1, 50, 0, 0)
+ DISCRETE_SWITCH(NODE_22, SCHASER_DOT_EN, SCHASER_DOT_SEL, NODE_20, NODE_21)
+ DISCRETE_RCFILTER(NODE_23, NODE_22, 560, CAP_U(.1))
+ DISCRETE_RCFILTER(NODE_24, NODE_23, RES_K(6.8) + 560, CAP_U(.1))
+ DISCRETE_MULTIPLY(SCHASER_DOT_SND, NODE_24, SCHASER_VR3)
+
+ /************************************************/
+ /* Explosion/Effect filtering */
+ /************************************************/
+ DISCRETE_RCFILTER(NODE_30, SCHASER_EXP_STREAM, 560, CAP_U(.1))
+ DISCRETE_RCFILTER(NODE_31, NODE_30, RES_K(6.8) + 560, CAP_U(.1))
+ DISCRETE_CRFILTER(NODE_32, NODE_31, RES_K(6.8) + 560 + RES_K(2) + RES_K(50), CAP_U(1))
+ DISCRETE_MULTIPLY(SCHASER_EXP_SND, NODE_32, SCHASER_VR2)
+
+ /************************************************/
+ /* Music is just a 1 bit DAC */
+ /************************************************/
+ DISCRETE_CRFILTER(NODE_40, SCHASER_MUSIC_BIT, RES_K(470) + RES_K(50), CAP_U(.01))
+ DISCRETE_MULTIPLY(SCHASER_MUSIC_SND, NODE_40, SCHASER_VR1)
+
+ /************************************************/
+ /* Final mix with gain */
+ /************************************************/
+ DISCRETE_ADDER3(NODE_90, SCHASER_SND_EN, SCHASER_DOT_SND, SCHASER_EXP_SND, SCHASER_MUSIC_SND)
+
+ DISCRETE_OUTPUT(NODE_90, 33080)
+DISCRETE_SOUND_END
+
+static const double schaser_effect_rc[8] =
+{
+ 0,
+ (RES_K(15) + RES_K(20)) * CAP_U(1),
+ (RES_K(39) + RES_K(20)) * CAP_U(1),
+ (1.0/ (1.0/RES_K(15) + 1.0/RES_K(39)) + RES_K(20)) * CAP_U(1),
+ (RES_K(82) + RES_K(20)) * CAP_U(1),
+ (1.0/ (1.0/RES_K(15) + 1.0/RES_K(82)) + RES_K(20)) * CAP_U(1),
+ (1.0/ (1.0/RES_K(15) + 1.0/RES_K(82)) + RES_K(20)) * CAP_U(1),
+ (1.0/ (1.0/RES_K(15) + 1.0/RES_K(39) + 1.0/RES_K(82)) + RES_K(20)) * CAP_U(1)
+};
+
+WRITE8_MEMBER(sc_state::port03_w)
+{
+ /* bit 1 - Dot Sound Enable
+ bit 2 - Effect Sound A (a stream of pulses)
+ bit 3 - Effect Sound B (a stream of pulses)
+ bit 4 - Explosion (a stream of ff's with some fe's thrown in)
+ bit 5 - Goes high when first dot hit */
+
+ uint8_t effect = 0, byte = data & 0x2c;
+
+ /* If you use fuel, the dot sound turns into a continuous beep.
+
+ The effect sequence is really bizarre, however a pattern exists. */
+
+ m_explosion = BIT(data, 4);
+ if (!m_explosion) m_discrete->write(space, SCHASER_DOT_EN, BIT(data, 1)); /* prevents beep during explosion */
+
+ if (!m_sound_enabled) /* sound disabled */
+ m_sound_seq=0;
+ else
+ if ((m_sound_seq == 0) && (m_sound_enabled)) /* normal play */
+ m_sound_seq=1;
+ else
+ if ((m_sound_seq == 1) && (byte == 0x28)) /* going faster... */
+ m_sound_seq=2;
+ else
+ if ((m_sound_seq == 2) && (byte == 0x24)) /* and faster... */
+ m_sound_seq=3;
+ else
+ if ((m_sound_seq < 4) && (byte == 0x2c)) /* died */
+ m_sound_seq=4;
+ else
+ if ((m_sound_seq > 2) && (byte == 0)) /* finished stage, and the pause before a stage starts */
+ m_sound_seq=5;
+
+ if (m_sound_seq == 1) effect=4; /* normal speed */
+ else
+ if (m_sound_seq == 2) effect=2; /* going faster... */
+ else
+ if (m_sound_seq == 3) effect=1; /* and faster... */
+ /* effect = 0 when no missile on screen, or in attract mode */
+
+
+ if (m_last_effect != effect)
+ {
+ if (effect)
+ {
+ if (m_555_time_remain != attotime::zero)
+ {
+ /* timer re-enabled, use up remaining 555 high time */
+ m_555_timer->adjust(m_555_time_remain, effect);
+ }
+ else if (!m_555_is_low)
+ {
+ /* set 555 high time */
+ attotime new_time = attotime(0, ATTOSECONDS_PER_SECOND * .8873 * schaser_effect_rc[effect]);
+ m_555_timer->adjust(new_time, effect);
+ }
+ }
+ else
+ {
+ /* disable effect - stops at end of low cycle */
+ if (!m_555_is_low)
+ {
+ m_555_time_remain = attotime::zero;
+ m_555_time_remain_savable = m_555_time_remain.as_double();
+ m_555_timer->adjust(attotime::never);
+ }
+ }
+ m_last_effect = effect;
+ }
+
+ if (m_explosion)
+ m_sn->amplitude_res_w(1.0 / (1.0/RES_K(200) + 1.0/RES_K(68)));
+ else
+ m_sn->amplitude_res_w(RES_K(200));
+
+ m_sn->enable_w(!(m_555_is_low | m_explosion));
+ m_sn->one_shot_cap_voltage_w(!(m_555_is_low | m_explosion) ? 0 : sn76477_device::EXTERNAL_VOLTAGE_DISCONNECT);
+ m_sn->mixer_b_w(m_explosion);
+}
+
+WRITE8_MEMBER(sc_state::port05_w)
+{
+ /* bit 0 - Music (DAC)
+ bit 2 - Coin Lockout
+ bit 4 - Sound Enable
+ bit 5 - Flip Screen
+ There are no field control bits. Therefore the green mask can never appear.
+ The sound is enabled early on the stages that should have the mask. */
+
+ m_discrete->write(space, SCHASER_MUSIC_BIT, BIT(data, 0));
+
+ m_sound_enabled = BIT(data, 4);
+ m_discrete->write(space, SCHASER_SND_EN, m_sound_enabled);
+ machine().sound().system_enable(m_sound_enabled);
+
+ machine().bookkeeping().coin_lockout_global_w(BIT(data, 2));
+
+ m_flip_screen = BIT(data, 5) & ioport("CAB")->read();
+}
+
+
+TIMER_DEVICE_CALLBACK_MEMBER(sc_state::schaser_effect_555_cb)
+{
+ uint8_t effect = param;
+ attotime new_time;
+
+ /* Toggle 555 output */
+ m_555_is_low ^= 1;
+ m_555_time_remain = attotime::zero;
+ m_555_time_remain_savable = m_555_time_remain.as_double();
+
+ if (m_555_is_low)
+ new_time = PERIOD_OF_555_ASTABLE(0, RES_K(20), CAP_U(1)) / 2;
+ else
+ {
+ if (effect)
+ new_time = attotime(0, ATTOSECONDS_PER_SECOND * .8873 * schaser_effect_rc[effect]);
+ else
+ new_time = attotime::never;
+ }
+ m_555_timer->adjust(new_time, effect);
+ m_sn->enable_w(!(m_555_is_low | m_explosion));
+ m_sn->one_shot_cap_voltage_w(!(m_555_is_low | m_explosion) ? 0 : sn76477_device::EXTERNAL_VOLTAGE_DISCONNECT);
+}
+
+
+void sc_state::schaser_reinit_555_time_remain()
+{
+ m_555_time_remain = attotime::from_double(m_555_time_remain_savable);
+}
+
+
+MACHINE_START_MEMBER( sc_state, sc )
+{
+ save_item(NAME(m_flip_screen));
+ save_item(NAME(m_sound_enabled));
+ save_item(NAME(m_explosion));
+ save_item(NAME(m_last_effect));
+ save_item(NAME(m_sound_seq));
+ save_item(NAME(m_555_is_low));
+ save_item(NAME(m_555_time_remain_savable));
+ machine().save().register_postload(save_prepost_delegate(FUNC(sc_state::schaser_reinit_555_time_remain), this));
+ mw8080bw_create_interrupt_timer();
+}
+
+
+MACHINE_RESET_MEMBER( sc_state, sc )
+{
+ m_flip_screen = 0;
+ m_sound_enabled = 0;
+ m_explosion = 0;
+ m_last_effect = 0xff;
+ m_sound_seq = 0;
+ m_555_is_low = 0;
+ m_555_time_remain = attotime::zero;
+ m_555_time_remain_savable = m_555_time_remain.as_double();
+ m_555_timer->adjust(attotime::never);
+
+ address_space &space = m_maincpu->space(AS_PROGRAM);
+ port03_w(space, 0, 0);
+ port05_w(space, 0, 0);
+ mw8080bw_start_interrupt_timer();
+}
+
+uint8_t sc_state::vpos_to_vysnc_chain_counter( int vpos )
+{
+ /* convert from a vertical position to the actual values on the vertical sync counters */
+ uint8_t counter;
+ int vblank = (vpos >= MW8080BW_VBSTART);
+
+ if (vblank)
+ counter = vpos - MW8080BW_VBSTART + MW8080BW_VCOUNTER_START_VBLANK;
+ else
+ counter = vpos + MW8080BW_VCOUNTER_START_NO_VBLANK;
+
+ return counter;
+}
+
+
+int sc_state::vysnc_chain_counter_to_vpos( uint8_t counter, int vblank )
+{
+ /* convert from the vertical sync counters to an actual vertical position */
+ int vpos;
+
+ if (vblank)
+ vpos = counter - MW8080BW_VCOUNTER_START_VBLANK + MW8080BW_VBSTART;
+ else
+ vpos = counter - MW8080BW_VCOUNTER_START_NO_VBLANK;
+
+ return vpos;
+}
+
+
+TIMER_CALLBACK_MEMBER(sc_state::mw8080bw_interrupt_callback)
+{
+ uint8_t next_counter;
+ int next_vpos;
+ int next_vblank;
+
+ /* compute vector and set the interrupt line */
+ int vpos = m_screen->vpos();
+ uint8_t counter = vpos_to_vysnc_chain_counter(vpos);
+ uint8_t vector = 0xc7 | ((counter & 0x40) >> 2) | ((~counter & 0x40) >> 3);
+ m_maincpu->set_input_line_and_vector(0, HOLD_LINE, vector);
+
+ /* set up for next interrupt */
+ if (counter == MW8080BW_INT_TRIGGER_COUNT_1)
+ {
+ next_counter = MW8080BW_INT_TRIGGER_COUNT_2;
+ next_vblank = MW8080BW_INT_TRIGGER_VBLANK_2;
+ }
+ else
+ {
+ next_counter = MW8080BW_INT_TRIGGER_COUNT_1;
+ next_vblank = MW8080BW_INT_TRIGGER_VBLANK_1;
+ }
+
+ next_vpos = vysnc_chain_counter_to_vpos(next_counter, next_vblank);
+ m_interrupt_timer->adjust(m_screen->time_until_pos(next_vpos));
+}
+
+
+void sc_state::mw8080bw_create_interrupt_timer( )
+{
+ m_interrupt_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(sc_state::mw8080bw_interrupt_callback),this));
+}
+
+
+void sc_state::mw8080bw_start_interrupt_timer( )
+{
+ int vpos = vysnc_chain_counter_to_vpos(MW8080BW_INT_TRIGGER_COUNT_1, MW8080BW_INT_TRIGGER_VBLANK_1);
+ m_interrupt_timer->adjust(m_screen->time_until_pos(vpos));
+}
+
+
+
+uint32_t sc_state::screen_update_schasercv(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
+{
+ pen_t pens[8];
+ offs_t offs;
+ uint8_t i, x, y, data, fg, color;
+
+ for (i = 0; i < 8; i++)
+ pens[i] = rgb_t(pal1bit(i >> 0), pal1bit(i >> 2), pal1bit(i >> 1));
+
+ for (offs = 0; offs < m_p_ram.bytes(); offs++)
+ {
+ y = offs >> 5;
+ x = offs << 3;
+
+ data = m_p_ram[offs];
+ fg = m_p_colorram[offs & 0x1f9f] & 0x07;
+
+ for (i = 0; i < 8; i++)
+ {
+ color = BIT(data, i) ? fg : 2;
+
+ if (y >= MW8080BW_VCOUNTER_START_NO_VBLANK)
+ {
+ if (m_flip_screen)
+ bitmap.pix32(MW8080BW_VBSTART - 1 - (y - MW8080BW_VCOUNTER_START_NO_VBLANK), MW8080BW_HPIXCOUNT - 1 - x) = pens[color];
+ else
+ bitmap.pix32(y - MW8080BW_VCOUNTER_START_NO_VBLANK, x) = pens[color];
+ }
+
+ x++;
+ }
+ }
+
+ return 0;
+}
+
+READ8_MEMBER(sc_state::port02_r)
+{
+ uint8_t data = ioport("IN2")->read();
+ if (m_flip_screen) return data;
+ uint8_t in1 = ioport("IN1")->read();
+ return (data & 0x89) | (in1 & 0x70) | (BIT(in1, 3) << 1) | (BIT(in1, 7) << 2);
+}
+
+WRITE8_MEMBER( sc_state::colour_w )
+{
+ m_p_colorram[offset & 0x1f9f] = data;
+}
+
+static ADDRESS_MAP_START( schaser_map, AS_PROGRAM, 8, sc_state )
+ AM_RANGE(0x0000, 0x1fff) AM_ROM
+ AM_RANGE(0x2000, 0x3fff) AM_RAM AM_SHARE("ram")
+ AM_RANGE(0x4000, 0x5fff) AM_ROM
+ AM_RANGE(0xc000, 0xdfff) AM_SHARE("colorram") AM_WRITE(colour_w)
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( schasercv_io_map, AS_IO, 8, sc_state )
+ AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
+ AM_RANGE(0x02, 0x02) AM_READ(port02_r) AM_DEVWRITE("mb14241", mb14241_device, shift_count_w)
+ AM_RANGE(0x03, 0x03) AM_DEVREAD("mb14241", mb14241_device, shift_result_r) AM_WRITE(port03_w)
+ AM_RANGE(0x04, 0x04) AM_DEVWRITE("mb14241", mb14241_device, shift_data_w)
+ AM_RANGE(0x05, 0x05) AM_WRITE(port05_w)
+ AM_RANGE(0x06, 0x06) AM_WRITENOP //(watchdog_reset_w)
+ADDRESS_MAP_END
+
+
+static INPUT_PORTS_START( schasercv )
+ PORT_START("IN1")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 )
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 )
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 )
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY
+
+ PORT_START("IN2")
+ PORT_DIPNAME( 0x01, 0x00, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:1")
+ PORT_DIPSETTING( 0x00, "3" )
+ PORT_DIPSETTING( 0x01, "4" )
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_PLAYER(2)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY PORT_PLAYER(2)
+ PORT_DIPNAME( 0x08, 0x00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:2")
+ PORT_DIPSETTING( 0x00, DEF_STR( Easy ) )
+ PORT_DIPSETTING( 0x08, DEF_STR( Hard ) )
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_DIPLOCATION("SW1:5")
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_PLAYER(2) PORT_DIPLOCATION("SW1:6")
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_PLAYER(2) PORT_DIPLOCATION("SW1:7")
+ PORT_DIPUNKNOWN_DIPLOC( 0x80, 0x00, "SW1:3" ) /* doesn't do anything */
+
+ PORT_START("VR1")
+ PORT_ADJUSTER( 70, "VR1 - Music Volume" )
+
+ PORT_START("VR2")
+ PORT_ADJUSTER( 90, "VR2 - Explosion/Effect Volume" )
+
+ PORT_START("VR3")
+ PORT_ADJUSTER( 70, "VR3 - Dot Volume" )
+
+ PORT_START("CAB")
+ PORT_CONFNAME( 0x01, 0x00, DEF_STR( Cabinet ) )
+ PORT_CONFSETTING( 0x00, DEF_STR( Upright ) )
+ PORT_CONFSETTING( 0x01, DEF_STR( Cocktail ) )
+INPUT_PORTS_END
+
+static MACHINE_CONFIG_START( schasercv )
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu",I8080,MW8080BW_CPU_CLOCK)
+ MCFG_CPU_PROGRAM_MAP(schaser_map)
+ MCFG_CPU_IO_MAP(schasercv_io_map)
+ MCFG_MACHINE_START_OVERRIDE(sc_state,sc)
+ MCFG_MACHINE_RESET_OVERRIDE(sc_state,sc)
+
+ /* video hardware */
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_RAW_PARAMS(MW8080BW_PIXEL_CLOCK, MW8080BW_HTOTAL, MW8080BW_HBEND, MW8080BW_HPIXCOUNT, MW8080BW_VTOTAL, MW8080BW_VBEND, MW8080BW_VBSTART)
+ MCFG_SCREEN_UPDATE_DRIVER(sc_state, screen_update_schasercv)
+
+ /* add shifter */
+ MCFG_MB14241_ADD("mb14241")
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+
+ MCFG_SOUND_ADD("snsnd", SN76477, 0)
+ MCFG_SN76477_NOISE_PARAMS(RES_K(47), RES_K(330), CAP_P(470)) // noise + filter
+ MCFG_SN76477_DECAY_RES(RES_M(2.2)) // decay_res
+ MCFG_SN76477_ATTACK_PARAMS(CAP_U(1.0), RES_K(4.7)) // attack_decay_cap + attack_res
+ MCFG_SN76477_AMP_RES(0) // amplitude_res
+ MCFG_SN76477_FEEDBACK_RES(RES_K(33)) // feedback_res
+ MCFG_SN76477_VCO_PARAMS(0, CAP_U(0.1), RES_K(39)) // VCO volt + cap + res
+ MCFG_SN76477_PITCH_VOLTAGE(5.0) // pitch_voltage
+ MCFG_SN76477_SLF_PARAMS(CAP_U(1.0), RES_K(120)) // slf caps + res
+ MCFG_SN76477_ONESHOT_PARAMS(CAP_U(0.1), RES_K(220)) // oneshot caps + res
+ MCFG_SN76477_VCO_MODE(1) // VCO mode
+ MCFG_SN76477_MIXER_PARAMS(0, 0, 0) // mixer A, B, C
+ MCFG_SN76477_ENVELOPE_PARAMS(1, 0) // envelope 1, 2
+ MCFG_SN76477_ENABLE(1) // enable
+ MCFG_SOUND_ROUTE_EX(0, "discrete", 1.0, 0)
+
+ MCFG_SOUND_ADD("discrete", DISCRETE, 0)
+ MCFG_DISCRETE_INTF(schaser)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
+
+ MCFG_TIMER_DRIVER_ADD("schaser_sh_555", sc_state, schaser_effect_555_cb)
+MACHINE_CONFIG_END
+
+ROM_START( schasrcv )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "1", 0x0000, 0x0400, CRC(bec2b16b) SHA1(c62210ecb64d7c38e5b63481d7fe04eb59bb1068) )
+ ROM_LOAD( "2", 0x0400, 0x0400, CRC(9d25e608) SHA1(4cc52a93a3ab96a0ec1d07593e17832fa59b30a1) )
+ ROM_LOAD( "3", 0x0800, 0x0400, CRC(113d0635) SHA1(ab5e98d0b5fc37d7d69bb5c541681a0f66460440) )
+ ROM_LOAD( "4", 0x0c00, 0x0400, CRC(f3a43c8d) SHA1(29a7a8b7d1de763a255cfec79157fd95e7bff551) )
+ ROM_LOAD( "5", 0x1000, 0x0400, CRC(47c84f23) SHA1(61b475fa92b8335f8edd3a128d8ac8561658e464) )
+ ROM_LOAD( "6", 0x1400, 0x0400, CRC(02ff2199) SHA1(e12c235b2064cb4bb426145172e523256e3c6358) )
+ ROM_LOAD( "7", 0x1800, 0x0400, CRC(87d06b88) SHA1(2d743161f85e47cb8ee2a600cbee790b1ad7ad99) )
+ ROM_LOAD( "8", 0x1c00, 0x0400, CRC(6dfaad08) SHA1(2184c4e2f4b6bffdc4fe13e178134331fcd43253) )
+ ROM_LOAD( "9", 0x4000, 0x0400, CRC(3d1a2ae3) SHA1(672ad6590aebdfebc2748455fa638107f3934c41) )
+ ROM_LOAD( "10", 0x4400, 0x0400, CRC(037edb99) SHA1(f2fc5e61f962666e7f6bb81753ac24ea0b97e581) )
+ROM_END
+
+GAME( 1979, schasrcv, 0, schasercv, schasercv, sc_state, 0, ROT270, "Taito", "Space Chaser (CV version)(Extra Sounds)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_COLORS )
diff --git a/src/hbmame/drivers/segac2.cpp b/src/hbmame/drivers/segac2.cpp
new file mode 100644
index 00000000000..346dbb2e597
--- /dev/null
+++ b/src/hbmame/drivers/segac2.cpp
@@ -0,0 +1,15 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/segac2.cpp"
+
+/* http://frogfeast.rastersoft.net/SegaC2.html
+ It appears from the source that the sound is going through a Z80 - but the C2 hardware doesn't have one...
+ Also there are unmapped writes to A00000-A00100, A11100, A11200. */
+
+ROM_START( c2frog )
+ ROM_REGION( 0x1000000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "epr13114.32", 0x000000, 0x020000, CRC(d7039bd3) SHA1(82b9e3a760ebc845afe7bd78f22b897e1a530651) )
+ ROM_LOAD16_BYTE( "epr13113.31", 0x000001, 0x020000, CRC(754b111a) SHA1(5542fc3b955df843e15e7c98aebc4f80c7d44b69) )
+ROM_END
+
+GAME( 2007, c2frog, 0, segac, columns, segac2_state, columns, ROT0, "Rastersoft", "Frog Feast (Sega C2 hardware)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/segag80r.cpp b/src/hbmame/drivers/segag80r.cpp
new file mode 100644
index 00000000000..69189ad81ba
--- /dev/null
+++ b/src/hbmame/drivers/segag80r.cpp
@@ -0,0 +1,38 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/segag80r.cpp"
+
+ROM_START( astrob2h ) // same as astrob2 except u2 and u4
+ ROM_REGION( 0xc000, "maincpu", 0 )
+ ROM_LOAD( "829b.cpu-u25", 0x0000, 0x0800, CRC(14ae953c) SHA1(eb63d1b95faa5193db7fa6ab245e99325d519b5e) )
+ ROM_LOAD( "888a.prom-u1", 0x0800, 0x0800, CRC(42601744) SHA1(6bb58384c28b2105746a2f410f5e0979609db9bf) )
+ ROM_LOAD( "889b2h.u2", 0x1000, 0x0800, CRC(9fcdc62f) SHA1(6dbf7e1ad62548263ca5edaa81d38cbc7a9a281f) )
+ ROM_LOAD( "890.prom-u3", 0x1800, 0x0800, CRC(26f5b4cf) SHA1(be45e802f976b8847689ae8de7159843ac9100eb) )
+ ROM_LOAD( "891b2h.u4", 0x2000, 0x0800, CRC(74f906dc) SHA1(edf9efc0ec25f578214b26010d99385c0bace3ad) )
+ ROM_LOAD( "892.prom-u5", 0x2800, 0x0800, CRC(2d3c949b) SHA1(17e3c5300793f2345ff6e28e82cd7a22f1d6e41f) )
+ ROM_LOAD( "893.prom-u6", 0x3000, 0x0800, CRC(ccdb1a76) SHA1(1c8f0555e397c5558bbfca1fa1487cc32aca8592) )
+ ROM_LOAD( "894.prom-u7", 0x3800, 0x0800, CRC(66ae5ced) SHA1(81bb6e3adcc76ffbeafefecce5fe5541a7eefc37) )
+ ROM_LOAD( "895.prom-u8", 0x4000, 0x0800, CRC(202cf3a3) SHA1(26fcccfb3e94b2a01d38c14daa66713c223efb18) )
+ ROM_LOAD( "896.prom-u9", 0x4800, 0x0800, CRC(b603fe23) SHA1(3128877355a9c5bba5cd22e9addf4c8b79ee39d2) )
+ ROM_LOAD( "897.prom-u10", 0x5000, 0x0800, CRC(989198c6) SHA1(3344bf7272e388571026c4e68a2e4e5e0ebbc5e3) )
+ ROM_LOAD( "898.prom-u11", 0x5800, 0x0800, CRC(ef2bab04) SHA1(108a9812cb9d1ec4629b0306c45ba164f94ab426) )
+ ROM_LOAD( "899.prom-u12", 0x6000, 0x0800, CRC(e0d189ee) SHA1(dcab31d64e6b2d248a82cbae9e37afe031dfc6cd) )
+ ROM_LOAD( "900.prom-u13", 0x6800, 0x0800, CRC(682d4604) SHA1(6ac0d2d8ff407cc7e10b460736ae7fbc21148640) )
+ ROM_LOAD( "901.prom-u14", 0x7000, 0x0800, CRC(9ed11c61) SHA1(dd965c06d2013acdabd958e713109eeb049d5d5e) )
+ ROM_LOAD( "902.prom-u15", 0x7800, 0x0800, CRC(b4d6c330) SHA1(922a562b5f1a8a286e6777ba7d141bd0db6e2a92) )
+ ROM_LOAD( "903a.prom-u16", 0x8000, 0x0800, CRC(84acc38c) SHA1(86bed143ac2d95116e50e77b5c262d67156c6a59) )
+ ROM_LOAD( "904.prom-u17", 0x8800, 0x0800, CRC(5eba3097) SHA1(e785d1c1cea50aa25e5eea5e58a0c48fd53208c6) )
+ ROM_LOAD( "905.prom-u18", 0x9000, 0x0800, CRC(4f08f9f4) SHA1(755a825b18ed50caa7bf274a0a5c3a1b00b1c070) )
+ ROM_LOAD( "906.prom-u19", 0x9800, 0x0800, CRC(58149df1) SHA1(2bba56576a225ca47ce31a5b6dcc491546dfffec) )
+
+ ROM_REGION( 0x0800, "audiocpu", 0 )
+ ROM_LOAD( "808b.speech-u7", 0x0000, 0x0800, CRC(5988c767) SHA1(3b91a8cd46aa7e714028cc40f700fea32287afb1) )
+
+ ROM_REGION( 0x4000, "speech", 0 )
+ ROM_LOAD( "809a.speech-u6", 0x0000, 0x0800, CRC(893f228d) SHA1(41c08210d322105f5446cfaa1258c194dd078a34) )
+ ROM_LOAD( "810.speech-u5", 0x0800, 0x0800, CRC(ff0163c5) SHA1(158a12f9bf01d25c7e98f34fce56df51d49e5a85) )
+ ROM_LOAD( "811.speech-u4", 0x1000, 0x0800, CRC(219f3978) SHA1(728edb9251f7cde237fa3b005971366a099c6342) )
+ ROM_LOAD( "812a.speech-u3", 0x1800, 0x0800, CRC(410ad0d2) SHA1(9b5f05bb64a6ecfe3543025a10c6ec67de797333) )
+ROM_END
+
+GAME( 1981, astrob2h, astrob, astrob, astrob2, segag80r_state, astrob, ROT270, "Clay Cowgill", "Astro Blaster (ver 2 Hack)", 0 )
diff --git a/src/hbmame/drivers/segaorun.cpp b/src/hbmame/drivers/segaorun.cpp
new file mode 100644
index 00000000000..61a6de18ccd
--- /dev/null
+++ b/src/hbmame/drivers/segaorun.cpp
@@ -0,0 +1,359 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/segaorun.cpp"
+
+ROM_START( outrunen )
+ ROM_REGION( 0x60000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "outrunen.133", 0x000000, 0x10000, CRC(90e6ecec) SHA1(a2dfb4934770c107504f358e0b0c1ed6b4dece40) )
+ ROM_LOAD16_BYTE( "outrunen.118", 0x000001, 0x10000, CRC(e227af3c) SHA1(f5387d50b6c1cfa426b89aaaef521217e8c6530a) )
+ ROM_LOAD16_BYTE( "outrunen.132", 0x020000, 0x10000, CRC(0c87bce3) SHA1(25bdbd94d4574d90214a1df9d5a9c56f43675aaf) )
+ ROM_LOAD16_BYTE( "outrunen.117", 0x020001, 0x10000, CRC(28a5e93e) SHA1(7dda2eef158783562b17fd57ad1a94f061e34d5d) )
+
+ ROM_REGION( 0x60000, "subcpu", 0 )
+ ROM_LOAD16_BYTE( "epr-10327a.76", 0x00000, 0x10000, CRC(e28a5baf) SHA1(f715bde96c73ed47035acf5a41630fdeb41bb2f9) )
+ ROM_LOAD16_BYTE( "epr-10329a.58", 0x00001, 0x10000, CRC(da131c81) SHA1(57d5219bd0e2fd886217e37e8773fd76be9b40eb) )
+ ROM_LOAD16_BYTE( "epr-10328a.75", 0x20000, 0x10000, CRC(d5ec5e5d) SHA1(a4e3cfca4d803e72bc4fcf91ab00e21bf3f8959f) )
+ ROM_LOAD16_BYTE( "epr-10330a.57", 0x20001, 0x10000, CRC(ba9ec82a) SHA1(2136c9572e26b7ae6de402c0cd53174407cc6018) )
+
+ ROM_REGION( 0x30000, "gfx1", 0 )
+ ROM_LOAD( "opr-10268.99", 0x00000, 0x08000, CRC(95344b04) SHA1(b3480714b11fc49b449660431f85d4ba92f799ba) )
+ ROM_LOAD( "opr-10232.102", 0x08000, 0x08000, CRC(776ba1eb) SHA1(e3477961d19e694c97643066534a1f720e0c4327) )
+ ROM_LOAD( "opr-10267.100", 0x10000, 0x08000, CRC(a85bb823) SHA1(a7e0143dee5a47e679fd5155e58e717813912692) )
+ ROM_LOAD( "opr-10231.103", 0x18000, 0x08000, CRC(8908bcbf) SHA1(8e1237b640a6f26bdcbfd5e201dadb2687c4febb) )
+ ROM_LOAD( "opr-10266.101", 0x20000, 0x08000, CRC(9f6f1a74) SHA1(09164e858ebeedcff4d389524ddf89e7c216dcae) )
+ ROM_LOAD( "opr-10230.104", 0x28000, 0x08000, CRC(686f5e50) SHA1(03697b892f911177968aa40de6c5f464eb0258e7) )
+
+ ROM_REGION32_LE( 0x100000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "mpr-10371.9", 0x00000, 0x20000, CRC(7cc86208) SHA1(21320f945f7c8e990c97c9b1232a0f4b6bd00f8f) )
+ ROM_LOAD32_BYTE( "mpr-10373.10", 0x00001, 0x20000, CRC(b0d26ac9) SHA1(3a9ce8547cd43b7b04abddf9a9ab5634e0bbfaba) )
+ ROM_LOAD32_BYTE( "mpr-10375.11", 0x00002, 0x20000, CRC(59b60bd7) SHA1(e5d8c67e020608edd24ba87b7687b2ac2483ee7f) )
+ ROM_LOAD32_BYTE( "mpr-10377.12", 0x00003, 0x20000, CRC(17a1b04a) SHA1(9f7210cb4153ac9029a785dcd4b45f4513a4b008) )
+ ROM_LOAD32_BYTE( "mpr-10372.13", 0x80000, 0x20000, CRC(b557078c) SHA1(a3746a2da077a8df4932348f650a061f413e8430) )
+ ROM_LOAD32_BYTE( "mpr-10374.14", 0x80001, 0x20000, CRC(8051e517) SHA1(9c8509fbed170b4ac74c169da573393e54774f49) )
+ ROM_LOAD32_BYTE( "mpr-10376.15", 0x80002, 0x20000, CRC(f3b8f318) SHA1(a5f2532613f33a64441e0f75443c10ba78dccc6e) )
+ ROM_LOAD32_BYTE( "mpr-10378.16", 0x80003, 0x20000, CRC(a1062984) SHA1(4399030a155caf71f2dec7f75c4b65531ab53576) )
+
+ ROM_REGION( 0x10000, "gfx3", 0 ) // road gfx (2 identical roms, 1 for each road)
+ ROM_LOAD( "opr-10186.47", 0x0000, 0x8000, CRC(22794426) SHA1(a554d4b68e71861a0d0da4d031b3b811b246f082) )
+ ROM_LOAD( "opr-10185.11", 0x8000, 0x8000, CRC(22794426) SHA1(a554d4b68e71861a0d0da4d031b3b811b246f082) )
+
+ ROM_REGION( 0x10000, "soundcpu", 0 )
+ ROM_LOAD( "epr-10187.88", 0x00000, 0x8000, CRC(a10abaa9) SHA1(01c8a819587a66d2ee4d255656e36fa0904377b0) )
+
+ ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF )
+ ROM_LOAD( "opr-10193.66", 0x00000, 0x08000, CRC(bcd10dde) SHA1(417ce1d7242884640c5b14f4db8ee57cde7d085d) )
+ ROM_RELOAD( 0x08000, 0x08000 )
+ ROM_LOAD( "opr-10192.67", 0x10000, 0x08000, CRC(770f1270) SHA1(686bdf44d45c1d6002622f6658f037735382f3e0) )
+ ROM_RELOAD( 0x18000, 0x08000 )
+ ROM_LOAD( "opr-10191.68", 0x20000, 0x08000, CRC(20a284ab) SHA1(7c9027416d4122791ba53782fe2230cf02b7d506) )
+ ROM_RELOAD( 0x28000, 0x08000 )
+ ROM_LOAD( "opr-10190.69", 0x30000, 0x08000, CRC(7cab70e2) SHA1(a3c581d2b438630d0d4c39481dcfd85681c9f889) )
+ ROM_RELOAD( 0x38000, 0x08000 )
+ ROM_LOAD( "opr-10189.70", 0x40000, 0x08000, CRC(01366b54) SHA1(f467a6b807694d5832a985f5381c170d24aaee4e) )
+ ROM_RELOAD( 0x48000, 0x08000 )
+ ROM_LOAD( "outrunen.71", 0x50000, 0x08000, CRC(37598616) SHA1(e7c8ae6c59742e1de7ec5a95c5aebfab5716d959) )
+ ROM_RELOAD( 0x58000, 0x08000 )
+ROM_END
+
+ROM_START( outrunen0 )
+ ROM_REGION( 0x60000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "outrunen0.133", 0x000000, 0x10000, CRC(f4d07c15) SHA1(7d1ba7683e2f8c1942281d5de1ce636eec1ea3a1) )
+ ROM_LOAD16_BYTE( "outrunen0.118", 0x000001, 0x10000, CRC(8f97042f) SHA1(ff587eba8fa0c31c30266e6030aa7df3de90e98d) )
+ ROM_LOAD16_BYTE( "outrunen.132", 0x020000, 0x10000, CRC(0c87bce3) SHA1(25bdbd94d4574d90214a1df9d5a9c56f43675aaf) )
+ ROM_LOAD16_BYTE( "outrunen0.117", 0x020001, 0x10000, CRC(ffc9884b) SHA1(35409afaf32a68bcfca4af60a036e66b2defa7fe) )
+
+ ROM_REGION( 0x60000, "subcpu", 0 )
+ ROM_LOAD16_BYTE( "epr-10327a.76", 0x00000, 0x10000, CRC(e28a5baf) SHA1(f715bde96c73ed47035acf5a41630fdeb41bb2f9) )
+ ROM_LOAD16_BYTE( "epr-10329a.58", 0x00001, 0x10000, CRC(da131c81) SHA1(57d5219bd0e2fd886217e37e8773fd76be9b40eb) )
+ ROM_LOAD16_BYTE( "epr-10328a.75", 0x20000, 0x10000, CRC(d5ec5e5d) SHA1(a4e3cfca4d803e72bc4fcf91ab00e21bf3f8959f) )
+ ROM_LOAD16_BYTE( "epr-10330a.57", 0x20001, 0x10000, CRC(ba9ec82a) SHA1(2136c9572e26b7ae6de402c0cd53174407cc6018) )
+
+ ROM_REGION( 0x30000, "gfx1", 0 )
+ ROM_LOAD( "opr-10268.99", 0x00000, 0x08000, CRC(95344b04) SHA1(b3480714b11fc49b449660431f85d4ba92f799ba) )
+ ROM_LOAD( "opr-10232.102", 0x08000, 0x08000, CRC(776ba1eb) SHA1(e3477961d19e694c97643066534a1f720e0c4327) )
+ ROM_LOAD( "opr-10267.100", 0x10000, 0x08000, CRC(a85bb823) SHA1(a7e0143dee5a47e679fd5155e58e717813912692) )
+ ROM_LOAD( "opr-10231.103", 0x18000, 0x08000, CRC(8908bcbf) SHA1(8e1237b640a6f26bdcbfd5e201dadb2687c4febb) )
+ ROM_LOAD( "opr-10266.101", 0x20000, 0x08000, CRC(9f6f1a74) SHA1(09164e858ebeedcff4d389524ddf89e7c216dcae) )
+ ROM_LOAD( "opr-10230.104", 0x28000, 0x08000, CRC(686f5e50) SHA1(03697b892f911177968aa40de6c5f464eb0258e7) )
+
+ ROM_REGION32_LE( 0x100000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "mpr-10371.9", 0x00000, 0x20000, CRC(7cc86208) SHA1(21320f945f7c8e990c97c9b1232a0f4b6bd00f8f) )
+ ROM_LOAD32_BYTE( "mpr-10373.10", 0x00001, 0x20000, CRC(b0d26ac9) SHA1(3a9ce8547cd43b7b04abddf9a9ab5634e0bbfaba) )
+ ROM_LOAD32_BYTE( "mpr-10375.11", 0x00002, 0x20000, CRC(59b60bd7) SHA1(e5d8c67e020608edd24ba87b7687b2ac2483ee7f) )
+ ROM_LOAD32_BYTE( "mpr-10377.12", 0x00003, 0x20000, CRC(17a1b04a) SHA1(9f7210cb4153ac9029a785dcd4b45f4513a4b008) )
+ ROM_LOAD32_BYTE( "mpr-10372.13", 0x80000, 0x20000, CRC(b557078c) SHA1(a3746a2da077a8df4932348f650a061f413e8430) )
+ ROM_LOAD32_BYTE( "mpr-10374.14", 0x80001, 0x20000, CRC(8051e517) SHA1(9c8509fbed170b4ac74c169da573393e54774f49) )
+ ROM_LOAD32_BYTE( "mpr-10376.15", 0x80002, 0x20000, CRC(f3b8f318) SHA1(a5f2532613f33a64441e0f75443c10ba78dccc6e) )
+ ROM_LOAD32_BYTE( "mpr-10378.16", 0x80003, 0x20000, CRC(a1062984) SHA1(4399030a155caf71f2dec7f75c4b65531ab53576) )
+
+ ROM_REGION( 0x10000, "gfx3", 0 ) // road gfx (2 identical roms, 1 for each road)
+ ROM_LOAD( "opr-10186.47", 0x0000, 0x8000, CRC(22794426) SHA1(a554d4b68e71861a0d0da4d031b3b811b246f082) )
+ ROM_LOAD( "opr-10185.11", 0x8000, 0x8000, CRC(22794426) SHA1(a554d4b68e71861a0d0da4d031b3b811b246f082) )
+
+ ROM_REGION( 0x10000, "soundcpu", 0 )
+ ROM_LOAD( "epr-10187.88", 0x00000, 0x8000, CRC(a10abaa9) SHA1(01c8a819587a66d2ee4d255656e36fa0904377b0) )
+
+ ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF )
+ ROM_LOAD( "opr-10193.66", 0x00000, 0x08000, CRC(bcd10dde) SHA1(417ce1d7242884640c5b14f4db8ee57cde7d085d) )
+ ROM_RELOAD( 0x08000, 0x08000 )
+ ROM_LOAD( "opr-10192.67", 0x10000, 0x08000, CRC(770f1270) SHA1(686bdf44d45c1d6002622f6658f037735382f3e0) )
+ ROM_RELOAD( 0x18000, 0x08000 )
+ ROM_LOAD( "opr-10191.68", 0x20000, 0x08000, CRC(20a284ab) SHA1(7c9027416d4122791ba53782fe2230cf02b7d506) )
+ ROM_RELOAD( 0x28000, 0x08000 )
+ ROM_LOAD( "opr-10190.69", 0x30000, 0x08000, CRC(7cab70e2) SHA1(a3c581d2b438630d0d4c39481dcfd85681c9f889) )
+ ROM_RELOAD( 0x38000, 0x08000 )
+ ROM_LOAD( "opr-10189.70", 0x40000, 0x08000, CRC(01366b54) SHA1(f467a6b807694d5832a985f5381c170d24aaee4e) )
+ ROM_RELOAD( 0x48000, 0x08000 )
+ ROM_LOAD( "opr-10188.71", 0x50000, 0x08000, CRC(bad30ad9) SHA1(f70dd3a6362c314adef313b064102f7a250401c8) )
+ ROM_RELOAD( 0x58000, 0x08000 )
+ROM_END
+
+ROM_START( outrunen1 )
+ ROM_REGION( 0x60000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "outrunen1.133", 0x000000, 0x10000, CRC(5ea17a9e) SHA1(accd6a4412542857e07239ceea72a7f6ec9fb2da) )
+ ROM_LOAD16_BYTE( "outrunen1.118", 0x000001, 0x10000, CRC(455e67d8) SHA1(b3f3bcde8f5655ba3dc743573b6d91b8ca2faddc) )
+ ROM_LOAD16_BYTE( "outrunen.132", 0x020000, 0x10000, CRC(0c87bce3) SHA1(25bdbd94d4574d90214a1df9d5a9c56f43675aaf) )
+ ROM_LOAD16_BYTE( "outrunen0.117", 0x020001, 0x10000, CRC(ffc9884b) SHA1(35409afaf32a68bcfca4af60a036e66b2defa7fe) )
+
+ ROM_REGION( 0x60000, "subcpu", 0 )
+ ROM_LOAD16_BYTE( "epr-10327a.76", 0x00000, 0x10000, CRC(e28a5baf) SHA1(f715bde96c73ed47035acf5a41630fdeb41bb2f9) )
+ ROM_LOAD16_BYTE( "epr-10329a.58", 0x00001, 0x10000, CRC(da131c81) SHA1(57d5219bd0e2fd886217e37e8773fd76be9b40eb) )
+ ROM_LOAD16_BYTE( "epr-10328a.75", 0x20000, 0x10000, CRC(d5ec5e5d) SHA1(a4e3cfca4d803e72bc4fcf91ab00e21bf3f8959f) )
+ ROM_LOAD16_BYTE( "epr-10330a.57", 0x20001, 0x10000, CRC(ba9ec82a) SHA1(2136c9572e26b7ae6de402c0cd53174407cc6018) )
+
+ ROM_REGION( 0x30000, "gfx1", 0 )
+ ROM_LOAD( "opr-10268.99", 0x00000, 0x08000, CRC(95344b04) SHA1(b3480714b11fc49b449660431f85d4ba92f799ba) )
+ ROM_LOAD( "opr-10232.102", 0x08000, 0x08000, CRC(776ba1eb) SHA1(e3477961d19e694c97643066534a1f720e0c4327) )
+ ROM_LOAD( "opr-10267.100", 0x10000, 0x08000, CRC(a85bb823) SHA1(a7e0143dee5a47e679fd5155e58e717813912692) )
+ ROM_LOAD( "opr-10231.103", 0x18000, 0x08000, CRC(8908bcbf) SHA1(8e1237b640a6f26bdcbfd5e201dadb2687c4febb) )
+ ROM_LOAD( "opr-10266.101", 0x20000, 0x08000, CRC(9f6f1a74) SHA1(09164e858ebeedcff4d389524ddf89e7c216dcae) )
+ ROM_LOAD( "opr-10230.104", 0x28000, 0x08000, CRC(686f5e50) SHA1(03697b892f911177968aa40de6c5f464eb0258e7) )
+
+ ROM_REGION32_LE( 0x100000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "mpr-10371.9", 0x00000, 0x20000, CRC(7cc86208) SHA1(21320f945f7c8e990c97c9b1232a0f4b6bd00f8f) )
+ ROM_LOAD32_BYTE( "mpr-10373.10", 0x00001, 0x20000, CRC(b0d26ac9) SHA1(3a9ce8547cd43b7b04abddf9a9ab5634e0bbfaba) )
+ ROM_LOAD32_BYTE( "mpr-10375.11", 0x00002, 0x20000, CRC(59b60bd7) SHA1(e5d8c67e020608edd24ba87b7687b2ac2483ee7f) )
+ ROM_LOAD32_BYTE( "mpr-10377.12", 0x00003, 0x20000, CRC(17a1b04a) SHA1(9f7210cb4153ac9029a785dcd4b45f4513a4b008) )
+ ROM_LOAD32_BYTE( "mpr-10372.13", 0x80000, 0x20000, CRC(b557078c) SHA1(a3746a2da077a8df4932348f650a061f413e8430) )
+ ROM_LOAD32_BYTE( "mpr-10374.14", 0x80001, 0x20000, CRC(8051e517) SHA1(9c8509fbed170b4ac74c169da573393e54774f49) )
+ ROM_LOAD32_BYTE( "mpr-10376.15", 0x80002, 0x20000, CRC(f3b8f318) SHA1(a5f2532613f33a64441e0f75443c10ba78dccc6e) )
+ ROM_LOAD32_BYTE( "mpr-10378.16", 0x80003, 0x20000, CRC(a1062984) SHA1(4399030a155caf71f2dec7f75c4b65531ab53576) )
+
+ ROM_REGION( 0x10000, "gfx3", 0 ) // road gfx (2 identical roms, 1 for each road)
+ ROM_LOAD( "opr-10186.47", 0x0000, 0x8000, CRC(22794426) SHA1(a554d4b68e71861a0d0da4d031b3b811b246f082) )
+ ROM_LOAD( "opr-10185.11", 0x8000, 0x8000, CRC(22794426) SHA1(a554d4b68e71861a0d0da4d031b3b811b246f082) )
+
+ ROM_REGION( 0x10000, "soundcpu", 0 )
+ ROM_LOAD( "epr-10187.88", 0x00000, 0x8000, CRC(a10abaa9) SHA1(01c8a819587a66d2ee4d255656e36fa0904377b0) )
+
+ ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF )
+ ROM_LOAD( "opr-10193.66", 0x00000, 0x08000, CRC(bcd10dde) SHA1(417ce1d7242884640c5b14f4db8ee57cde7d085d) )
+ ROM_RELOAD( 0x08000, 0x08000 )
+ ROM_LOAD( "opr-10192.67", 0x10000, 0x08000, CRC(770f1270) SHA1(686bdf44d45c1d6002622f6658f037735382f3e0) )
+ ROM_RELOAD( 0x18000, 0x08000 )
+ ROM_LOAD( "opr-10191.68", 0x20000, 0x08000, CRC(20a284ab) SHA1(7c9027416d4122791ba53782fe2230cf02b7d506) )
+ ROM_RELOAD( 0x28000, 0x08000 )
+ ROM_LOAD( "opr-10190.69", 0x30000, 0x08000, CRC(7cab70e2) SHA1(a3c581d2b438630d0d4c39481dcfd85681c9f889) )
+ ROM_RELOAD( 0x38000, 0x08000 )
+ ROM_LOAD( "opr-10189.70", 0x40000, 0x08000, CRC(01366b54) SHA1(f467a6b807694d5832a985f5381c170d24aaee4e) )
+ ROM_RELOAD( 0x48000, 0x08000 )
+ ROM_LOAD( "opr-10188.71", 0x50000, 0x08000, CRC(bad30ad9) SHA1(f70dd3a6362c314adef313b064102f7a250401c8) )
+ ROM_RELOAD( 0x58000, 0x08000 )
+ROM_END
+
+ROM_START( outrunen2 )
+ ROM_REGION( 0x60000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "outrunen2.133", 0x000000, 0x10000, CRC(c2db4cb7) SHA1(64c3f87f759204efe2a9014e8daee8cf7396ee76) )
+ ROM_LOAD16_BYTE( "outrunen2.118", 0x000001, 0x10000, CRC(c330de11) SHA1(72cb40a0f60eae452619e64c70ae49d00857a039) )
+ ROM_LOAD16_BYTE( "outrunen.132", 0x020000, 0x10000, CRC(0c87bce3) SHA1(25bdbd94d4574d90214a1df9d5a9c56f43675aaf) )
+ ROM_LOAD16_BYTE( "outrunen.117", 0x020001, 0x10000, CRC(28a5e93e) SHA1(7dda2eef158783562b17fd57ad1a94f061e34d5d) )
+
+ ROM_REGION( 0x60000, "subcpu", 0 )
+ ROM_LOAD16_BYTE( "epr-10327a.76", 0x00000, 0x10000, CRC(e28a5baf) SHA1(f715bde96c73ed47035acf5a41630fdeb41bb2f9) )
+ ROM_LOAD16_BYTE( "epr-10329a.58", 0x00001, 0x10000, CRC(da131c81) SHA1(57d5219bd0e2fd886217e37e8773fd76be9b40eb) )
+ ROM_LOAD16_BYTE( "epr-10328a.75", 0x20000, 0x10000, CRC(d5ec5e5d) SHA1(a4e3cfca4d803e72bc4fcf91ab00e21bf3f8959f) )
+ ROM_LOAD16_BYTE( "epr-10330a.57", 0x20001, 0x10000, CRC(ba9ec82a) SHA1(2136c9572e26b7ae6de402c0cd53174407cc6018) )
+
+ ROM_REGION( 0x30000, "gfx1", 0 )
+ ROM_LOAD( "opr-10268.99", 0x00000, 0x08000, CRC(95344b04) SHA1(b3480714b11fc49b449660431f85d4ba92f799ba) )
+ ROM_LOAD( "opr-10232.102", 0x08000, 0x08000, CRC(776ba1eb) SHA1(e3477961d19e694c97643066534a1f720e0c4327) )
+ ROM_LOAD( "opr-10267.100", 0x10000, 0x08000, CRC(a85bb823) SHA1(a7e0143dee5a47e679fd5155e58e717813912692) )
+ ROM_LOAD( "opr-10231.103", 0x18000, 0x08000, CRC(8908bcbf) SHA1(8e1237b640a6f26bdcbfd5e201dadb2687c4febb) )
+ ROM_LOAD( "opr-10266.101", 0x20000, 0x08000, CRC(9f6f1a74) SHA1(09164e858ebeedcff4d389524ddf89e7c216dcae) )
+ ROM_LOAD( "opr-10230.104", 0x28000, 0x08000, CRC(686f5e50) SHA1(03697b892f911177968aa40de6c5f464eb0258e7) )
+
+ ROM_REGION32_LE( 0x100000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "mpr-10371.9", 0x00000, 0x20000, CRC(7cc86208) SHA1(21320f945f7c8e990c97c9b1232a0f4b6bd00f8f) )
+ ROM_LOAD32_BYTE( "mpr-10373.10", 0x00001, 0x20000, CRC(b0d26ac9) SHA1(3a9ce8547cd43b7b04abddf9a9ab5634e0bbfaba) )
+ ROM_LOAD32_BYTE( "mpr-10375.11", 0x00002, 0x20000, CRC(59b60bd7) SHA1(e5d8c67e020608edd24ba87b7687b2ac2483ee7f) )
+ ROM_LOAD32_BYTE( "mpr-10377.12", 0x00003, 0x20000, CRC(17a1b04a) SHA1(9f7210cb4153ac9029a785dcd4b45f4513a4b008) )
+ ROM_LOAD32_BYTE( "mpr-10372.13", 0x80000, 0x20000, CRC(b557078c) SHA1(a3746a2da077a8df4932348f650a061f413e8430) )
+ ROM_LOAD32_BYTE( "mpr-10374.14", 0x80001, 0x20000, CRC(8051e517) SHA1(9c8509fbed170b4ac74c169da573393e54774f49) )
+ ROM_LOAD32_BYTE( "mpr-10376.15", 0x80002, 0x20000, CRC(f3b8f318) SHA1(a5f2532613f33a64441e0f75443c10ba78dccc6e) )
+ ROM_LOAD32_BYTE( "mpr-10378.16", 0x80003, 0x20000, CRC(a1062984) SHA1(4399030a155caf71f2dec7f75c4b65531ab53576) )
+
+ ROM_REGION( 0x10000, "gfx3", 0 ) // road gfx (2 identical roms, 1 for each road)
+ ROM_LOAD( "opr-10186.47", 0x0000, 0x8000, CRC(22794426) SHA1(a554d4b68e71861a0d0da4d031b3b811b246f082) )
+ ROM_LOAD( "opr-10185.11", 0x8000, 0x8000, CRC(22794426) SHA1(a554d4b68e71861a0d0da4d031b3b811b246f082) )
+
+ ROM_REGION( 0x10000, "soundcpu", 0 )
+ ROM_LOAD( "epr-10187.88", 0x00000, 0x8000, CRC(a10abaa9) SHA1(01c8a819587a66d2ee4d255656e36fa0904377b0) )
+
+ ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF )
+ ROM_LOAD( "opr-10193.66", 0x00000, 0x08000, CRC(bcd10dde) SHA1(417ce1d7242884640c5b14f4db8ee57cde7d085d) )
+ ROM_RELOAD( 0x08000, 0x08000 )
+ ROM_LOAD( "opr-10192.67", 0x10000, 0x08000, CRC(770f1270) SHA1(686bdf44d45c1d6002622f6658f037735382f3e0) )
+ ROM_RELOAD( 0x18000, 0x08000 )
+ ROM_LOAD( "opr-10191.68", 0x20000, 0x08000, CRC(20a284ab) SHA1(7c9027416d4122791ba53782fe2230cf02b7d506) )
+ ROM_RELOAD( 0x28000, 0x08000 )
+ ROM_LOAD( "opr-10190.69", 0x30000, 0x08000, CRC(7cab70e2) SHA1(a3c581d2b438630d0d4c39481dcfd85681c9f889) )
+ ROM_RELOAD( 0x38000, 0x08000 )
+ ROM_LOAD( "opr-10189.70", 0x40000, 0x08000, CRC(01366b54) SHA1(f467a6b807694d5832a985f5381c170d24aaee4e) )
+ ROM_RELOAD( 0x48000, 0x08000 )
+ ROM_LOAD( "opr-10188.71", 0x50000, 0x08000, CRC(bad30ad9) SHA1(f70dd3a6362c314adef313b064102f7a250401c8) )
+ ROM_RELOAD( 0x58000, 0x08000 )
+ROM_END
+
+GAMEL(2012, outrunen, outrun, outrun, outrun, segaorun_state, outrun, ROT0, "Chris White and Darren Finck", "Out Run Enhanced Edition v1.0.3", 0, layout_outrun )
+GAMEL(2012, outrunen2, outrun, outrun, outrun, segaorun_state, outrun, ROT0, "Chris White and Darren Finck", "Out Run Enhanced Edition v1.0.2", 0, layout_outrun )
+GAMEL(2012, outrunen1, outrun, outrun, outrun, segaorun_state, outrun, ROT0, "Chris White and Darren Finck", "Out Run Enhanced Edition v1.0.1", 0, layout_outrun )
+GAMEL(2012, outrunen0, outrun, outrun, outrun, segaorun_state, outrun, ROT0, "Chris White and Darren Finck", "Out Run Enhanced Edition v1.0.0", 0, layout_outrun )
+
+
+/***************************** OUTRUNM *********************************************/
+
+// sound_bank0_w and sound_bank1_w -
+// handle sound board banking the entire z80 60k rom space
+// to the first or second half of the 128k sound rom space
+// This does not work on the original outrun boardset;
+// The PAL/GAL/PLS chip which handles the z80 address/io
+// decoding has to be replaced and 3 flying wires added.
+
+// segaorun.h - have to make all members public (comment out "protected:")
+
+#include "machine/bankdev.h"
+
+class outrunm_state : public segaorun_state
+{
+public:
+ outrunm_state(const machine_config &mconfig, device_type type, const char *tag)
+ : segaorun_state(mconfig, type, tag)
+ , m_soundbank(*this, "soundbank")
+ { }
+
+ DECLARE_WRITE8_MEMBER( sound_rombank0_w );
+ DECLARE_WRITE8_MEMBER( sound_rombank1_w );
+ DECLARE_DRIVER_INIT(init);
+
+private:
+
+ required_device<address_map_bank_device> m_soundbank;
+};
+
+
+WRITE8_MEMBER( outrunm_state::sound_rombank0_w )
+{
+ m_soundbank->set_bank(0);
+}
+
+WRITE8_MEMBER( outrunm_state::sound_rombank1_w )
+{
+ m_soundbank->set_bank(1);
+}
+
+static ADDRESS_MAP_START( sound_map_banked, AS_PROGRAM, 8, outrunm_state )
+ ADDRESS_MAP_UNMAP_HIGH
+ AM_RANGE(0x0000, 0xefff) AM_DEVICE("soundbank", address_map_bank_device, amap8)
+ AM_RANGE(0xf000, 0xf0ff) AM_MIRROR(0x0700) AM_DEVREADWRITE("pcm", segapcm_device, sega_pcm_r, sega_pcm_w)
+ AM_RANGE(0xf800, 0xffff) AM_RAM
+ ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( sound_portmap_banked, AS_IO, 8, outrunm_state )
+ ADDRESS_MAP_UNMAP_HIGH
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
+ AM_RANGE(0x00, 0x01) AM_MIRROR(0x3e) AM_DEVREADWRITE("ymsnd", ym2151_device, read, write)
+ AM_RANGE(0x40, 0x7f) AM_READ(sound_data_r)
+ AM_RANGE(0x80, 0xbf) AM_WRITE(sound_rombank0_w)
+ AM_RANGE(0xc0, 0xff) AM_WRITE(sound_rombank1_w)
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( soundbank_map, AS_PROGRAM, 8, outrunm_state )
+ ADDRESS_MAP_UNMAP_HIGH
+ AM_RANGE(0x0000, 0x1ffff) AM_ROM AM_REGION("soundcpu", 0)
+ADDRESS_MAP_END
+
+static MACHINE_CONFIG_DERIVED( outrunm, outrun )
+ MCFG_CPU_REPLACE("soundcpu", Z80, SOUND_CLOCK/4)
+ MCFG_CPU_PROGRAM_MAP(sound_map_banked)
+ MCFG_CPU_IO_MAP(sound_portmap_banked)
+
+ MCFG_DEVICE_ADD("soundbank", ADDRESS_MAP_BANK, 0)
+ MCFG_DEVICE_PROGRAM_MAP(soundbank_map)
+ MCFG_ADDRESS_MAP_BANK_ENDIANNESS(ENDIANNESS_LITTLE)
+ MCFG_ADDRESS_MAP_BANK_DATA_WIDTH(8)
+ MCFG_ADDRESS_MAP_BANK_STRIDE(0x10000)
+MACHINE_CONFIG_END
+
+DRIVER_INIT_MEMBER(outrunm_state,init)
+{
+ DRIVER_INIT_CALL(generic);
+ m_custom_io_r = read16_delegate(FUNC(segaorun_state::outrun_custom_io_r), this);
+ m_custom_io_w = write16_delegate(FUNC(segaorun_state::outrun_custom_io_w), this);
+}
+
+ROM_START( outrunm )
+ ROM_REGION( 0x60000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "music-epr-10380b.133", 0x00000, 0x10000, CRC(9bf1d4df) SHA1(4d4be736c25f0e2f60851d26150ed6807014466a) ) // new
+ ROM_LOAD16_BYTE( "music-epr-10382b.118", 0x00001, 0x10000, CRC(86f90666) SHA1(e6a40afdbd5390266e9b43073cb41ec38b01d67c) ) // new
+ ROM_LOAD16_BYTE( "music-epr-10381b.132", 0x20000, 0x10000, CRC(cbec3f7e) SHA1(094d23afccf52bd25ae9ae9fdb9087cf3ac41709) ) // new
+ ROM_LOAD16_BYTE( "music-epr-10383b.117", 0x20001, 0x10000, CRC(e3c5cdca) SHA1(629dac90615deb2f68368012d5c67442b93c39b3) ) // new
+
+ ROM_REGION( 0x60000, "subcpu", 0 ) // second 68000 CPU
+ ROM_LOAD16_BYTE( "epr-10327a.76", 0x00000, 0x10000, CRC(e28a5baf) SHA1(f715bde96c73ed47035acf5a41630fdeb41bb2f9) )
+ ROM_LOAD16_BYTE( "epr-10329a.58", 0x00001, 0x10000, CRC(da131c81) SHA1(57d5219bd0e2fd886217e37e8773fd76be9b40eb) )
+ ROM_LOAD16_BYTE( "epr-10328a.75", 0x20000, 0x10000, CRC(d5ec5e5d) SHA1(a4e3cfca4d803e72bc4fcf91ab00e21bf3f8959f) )
+ ROM_LOAD16_BYTE( "epr-10330a.57", 0x20001, 0x10000, CRC(ba9ec82a) SHA1(2136c9572e26b7ae6de402c0cd53174407cc6018) )
+
+ ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "opr-10268.99", 0x00000, 0x08000, CRC(95344b04) SHA1(b3480714b11fc49b449660431f85d4ba92f799ba) )
+ ROM_LOAD( "opr-10232.102", 0x08000, 0x08000, CRC(776ba1eb) SHA1(e3477961d19e694c97643066534a1f720e0c4327) )
+ ROM_LOAD( "opr-10267.100", 0x10000, 0x08000, CRC(a85bb823) SHA1(a7e0143dee5a47e679fd5155e58e717813912692) )
+ ROM_LOAD( "opr-10231.103", 0x18000, 0x08000, CRC(8908bcbf) SHA1(8e1237b640a6f26bdcbfd5e201dadb2687c4febb) )
+ ROM_LOAD( "opr-10266.101", 0x20000, 0x08000, CRC(9f6f1a74) SHA1(09164e858ebeedcff4d389524ddf89e7c216dcae) )
+ ROM_LOAD( "opr-10230.104", 0x28000, 0x08000, CRC(686f5e50) SHA1(03697b892f911177968aa40de6c5f464eb0258e7) )
+
+ ROM_REGION32_LE( 0x100000, "sprites", 0 ) // sprites
+ // VIDEO BD 837-6064-02 uses mask roms four times the size of those used on VIDEO BD 837-6064-01, same data
+ ROM_LOAD32_BYTE( "mpr-10371.9", 0x00000, 0x20000, CRC(7cc86208) SHA1(21320f945f7c8e990c97c9b1232a0f4b6bd00f8f) )
+ ROM_LOAD32_BYTE( "mpr-10373.10", 0x00001, 0x20000, CRC(b0d26ac9) SHA1(3a9ce8547cd43b7b04abddf9a9ab5634e0bbfaba) )
+ ROM_LOAD32_BYTE( "mpr-10375.11", 0x00002, 0x20000, CRC(59b60bd7) SHA1(e5d8c67e020608edd24ba87b7687b2ac2483ee7f) )
+ ROM_LOAD32_BYTE( "mpr-10377.12", 0x00003, 0x20000, CRC(17a1b04a) SHA1(9f7210cb4153ac9029a785dcd4b45f4513a4b008) )
+ ROM_LOAD32_BYTE( "mpr-10372.13", 0x80000, 0x20000, CRC(b557078c) SHA1(a3746a2da077a8df4932348f650a061f413e8430) )
+ ROM_LOAD32_BYTE( "mpr-10374.14", 0x80001, 0x20000, CRC(8051e517) SHA1(9c8509fbed170b4ac74c169da573393e54774f49) )
+ ROM_LOAD32_BYTE( "mpr-10376.15", 0x80002, 0x20000, CRC(f3b8f318) SHA1(a5f2532613f33a64441e0f75443c10ba78dccc6e) )
+ ROM_LOAD32_BYTE( "mpr-10378.16", 0x80003, 0x20000, CRC(a1062984) SHA1(4399030a155caf71f2dec7f75c4b65531ab53576) )
+
+ ROM_REGION( 0x10000, "gfx3", 0 ) // road gfx (2 identical roms, 1 for each road)
+ ROM_LOAD( "opr-10186.47", 0x0000, 0x8000, CRC(22794426) SHA1(a554d4b68e71861a0d0da4d031b3b811b246f082) )
+ ROM_LOAD( "opr-10185.11", 0x8000, 0x8000, CRC(22794426) SHA1(a554d4b68e71861a0d0da4d031b3b811b246f082) )
+
+ ROM_REGION( 0x20000, "soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "music-epr-10187.88", 0x00000, 0x20000, CRC(9f89439e) SHA1(a7c7610327e91647b41d73635a87ef2b95eee698) ) // new
+
+ ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // sound PCM data
+ ROM_LOAD( "opr-10193.66", 0x00000, 0x08000, CRC(bcd10dde) SHA1(417ce1d7242884640c5b14f4db8ee57cde7d085d) )
+ ROM_RELOAD( 0x08000, 0x08000 )
+ ROM_LOAD( "opr-10192.67", 0x10000, 0x08000, CRC(770f1270) SHA1(686bdf44d45c1d6002622f6658f037735382f3e0) )
+ ROM_RELOAD( 0x18000, 0x08000 )
+ ROM_LOAD( "opr-10191.68", 0x20000, 0x08000, CRC(20a284ab) SHA1(7c9027416d4122791ba53782fe2230cf02b7d506) )
+ ROM_RELOAD( 0x28000, 0x08000 )
+ ROM_LOAD( "opr-10190.69", 0x30000, 0x08000, CRC(7cab70e2) SHA1(a3c581d2b438630d0d4c39481dcfd85681c9f889) )
+ ROM_RELOAD( 0x38000, 0x08000 )
+ ROM_LOAD( "opr-10189.70", 0x40000, 0x08000, CRC(01366b54) SHA1(f467a6b807694d5832a985f5381c170d24aaee4e) )
+ ROM_RELOAD( 0x48000, 0x08000 )
+ ROM_LOAD( "opr-10188a.71", 0x50000, 0x08000, CRC(c2de09b2) SHA1(00777e08ad8eddd48fe58686d4d1db68a78d3d6f) ) // new, recovered data from sega development disk
+ ROM_RELOAD( 0x58000, 0x08000 )
+ROM_END
+
+GAMEL(2016, outrunm, outrun, outrunm, outrun, outrunm_state, init, ROT0, "cmonkey", "Out Run (sitdown/upright, Rev B) (added music)", 0, layout_outrun ) // March? 2016
+
diff --git a/src/hbmame/drivers/segas16b.cpp b/src/hbmame/drivers/segas16b.cpp
new file mode 100644
index 00000000000..badecf5e8e2
--- /dev/null
+++ b/src/hbmame/drivers/segas16b.cpp
@@ -0,0 +1,34 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/segas16b.cpp"
+
+ROM_START( altbeastfr )
+ ROM_REGION( 0x040000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "altbeastfr.a7", 0x000000, 0x20000, CRC(309d3a0a) SHA1(646dcafe7ac2831e241eb0643a06f8c32bdba77a) )
+ ROM_LOAD16_BYTE( "altbeastfr.a5", 0x000001, 0x20000, CRC(39cd8368) SHA1(6b5890d44b549c3bbe18345ac86943c55f7b9d26) )
+
+ ROM_REGION( 0x60000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "opr-11674.a14", 0x00000, 0x20000, CRC(a57a66d5) SHA1(5103583d48997abad12a0c5fee26431c486ced52) )
+ ROM_LOAD( "opr-11675.a15", 0x20000, 0x20000, CRC(2ef2f144) SHA1(38d22d609db2d9b6067b5d12f6499436de4605cb) )
+ ROM_LOAD( "opr-11676.a16", 0x40000, 0x20000, CRC(0c04acac) SHA1(87fe2a0dd9913f9550e9b4cbc7e7465b61640e07) )
+
+ ROM_REGION16_BE( 0x100000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "epr-11677.b1", 0x00001, 0x20000, CRC(a01425cd) SHA1(72be5ec29e476601f9bf6aaedef9b73cedeb42f0) )
+ ROM_LOAD16_BYTE( "epr-11681.b5", 0x00000, 0x20000, CRC(d9e03363) SHA1(995a7c6a8f0c61468b57a3bb407461a2a3ae8adc) )
+ ROM_LOAD16_BYTE( "epr-11678.b2", 0x40001, 0x20000, CRC(17a9fc53) SHA1(85a9a605742ae5aab86db37189b9ee4d54c70e56) )
+ ROM_LOAD16_BYTE( "epr-11682.b6", 0x40000, 0x20000, CRC(e3f77c5e) SHA1(6b3cb7918ab0c7c97a51cc5ea19ced3374ff3914) )
+ ROM_LOAD16_BYTE( "epr-11679.b3", 0x80001, 0x20000, CRC(14dcc245) SHA1(1ca1b6e0f2b7bedad2a8ab70f52da8c54d40d3cf) )
+ ROM_LOAD16_BYTE( "epr-11683.b7", 0x80000, 0x20000, CRC(f9a60f06) SHA1(0cffcfdb02733feaa869198b7e668c58b47c321a) )
+ ROM_LOAD16_BYTE( "epr-11680.b4", 0xc0001, 0x20000, CRC(f43dcdec) SHA1(2941500cf33afca487f19f2329033d5d17aad826) )
+ ROM_LOAD16_BYTE( "epr-11684.b8", 0xc0000, 0x20000, CRC(b20c0edb) SHA1(6c8694d05e3adac37c9015037ab800233371db36) )
+
+ 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_REGION( 0x1000, "mcu", 0 ) // Intel i8751 protection MCU
+ ROM_LOAD( "317-0078.c2", 0x00000, 0x1000, CRC(8101925f) SHA1(a45d772ebe2fd1a577a6ccac8c6c76bb622258bb) )
+ROM_END
+
+GAME( 1988, altbeastfr, altbeast, system16b_i8751, altbeast, segas16b_state, generic_5521, ROT0, "Arkatrad", "Altered Beast (French)", MACHINE_NOT_WORKING )
diff --git a/src/hbmame/drivers/shaolins.cpp b/src/hbmame/drivers/shaolins.cpp
new file mode 100644
index 00000000000..83cb112de88
--- /dev/null
+++ b/src/hbmame/drivers/shaolins.cpp
@@ -0,0 +1,27 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/shaolins.cpp"
+
+ROM_START( kfjohnny ) // same as kicker except for gfx roms
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "477-l03.d9", 0x6000, 0x2000, CRC(2598dfdd) SHA1(70a9d81b73bbd4ff6b627a3e4102d5328a946d20) )
+ ROM_LOAD( "477-l04.d10", 0x8000, 0x4000, CRC(0cf0351a) SHA1(a9da783b29a63a46912a29715e8d11dc4cd22265) )
+ ROM_LOAD( "477-l05.d11", 0xC000, 0x4000, CRC(654037f8) SHA1(52d098386fe87ae97d4dfefab0bd3a902f66d70b) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "kfjohnny.a10", 0x0000, 0x2000, CRC(be0310d0) SHA1(e615aec557c656121761cf77d9ec4a6d1a6ddbea) )
+ ROM_LOAD( "kfjohnny.a11", 0x2000, 0x2000, CRC(fab8c880) SHA1(b90ae46ee72a000983ec68884f4ea0e406030ba3) )
+
+ ROM_REGION( 0x8000, "gfx2", 0 )
+ ROM_LOAD( "kfjohnny.h15", 0x0000, 0x4000, CRC(f7fbbb9c) SHA1(4b85c1b50a6232be2f6e7b2e497dca86dda387d8) )
+ ROM_LOAD( "kfjohnny.h14", 0x4000, 0x4000, CRC(84bc0cfd) SHA1(2140fe066262a5bdeb1e89d2d6cfa737f88de25d) )
+
+ ROM_REGION( 0x0500, "proms", 0 )
+ ROM_LOAD( "477j10.a12", 0x0000, 0x0100, CRC(b09db4b4) SHA1(d21176cdc7def760da109083eb52e5b6a515021f) )
+ ROM_LOAD( "477j11.a13", 0x0100, 0x0100, CRC(270a2bf3) SHA1(c0aec04bd3bceccddf5f5a814a560a893b29ef6b) )
+ ROM_LOAD( "477j12.a14", 0x0200, 0x0100, CRC(83e95ea8) SHA1(e0bfa20600488f5c66233e13ea6ad857f62acb7c) )
+ ROM_LOAD( "477j09.b8", 0x0300, 0x0100, CRC(aa900724) SHA1(c5343273d0a7101b8ba6876c4f22e43d77610c75) )
+ ROM_LOAD( "477j08.f16", 0x0400, 0x0100, CRC(80009cf5) SHA1(a367f3f55d75a9d5bf4d43f9d77272eb910a1344) )
+ROM_END
+
+GAME( 2002, kfjohnny, kicker, shaolins, shaolins, shaolins_state, 0, ROT90, "Smitdogg", "Kung-Fu Johnny", MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/simple_st0016.cpp b/src/hbmame/drivers/simple_st0016.cpp
new file mode 100644
index 00000000000..cf82b3542ed
--- /dev/null
+++ b/src/hbmame/drivers/simple_st0016.cpp
@@ -0,0 +1,11 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/simple_st0016.cpp"
+
+ROM_START( renjuk )
+ ROM_REGION( 0x290000, "maincpu", 0 )
+ ROM_LOAD( "renjuk.u31", 0x000000, 0x200000, CRC(2bd052c5) SHA1(724662d6d2ead1ef9dce1fa95d7c15d35fcb5a51) )
+ ROM_LOAD( "rnj2.u32", 0x200000, 0x080000, CRC(2015289c) SHA1(5223b6d3dbe4657cd63cf5b527eaab84cf23587a) )
+ROM_END
+
+GAME( 1994, renjuk, renju, renju, renju, st0016_state, renju, ROT0, "Visco", "Renju Kizoku (Korean)", 0 )
diff --git a/src/hbmame/drivers/snk6502.cpp b/src/hbmame/drivers/snk6502.cpp
new file mode 100644
index 00000000000..58d795b65ae
--- /dev/null
+++ b/src/hbmame/drivers/snk6502.cpp
@@ -0,0 +1,25 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/snk6502.cpp"
+
+ROM_START( vantris )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "vantris.ic13", 0x8000, 0x1000, CRC(f9f367a5) SHA1(49249a73951ae9a8a965954d8b03627b5fcf4fe3) )
+ ROM_RELOAD( 0xf000, 0x1000 ) // for the reset and interrupt vectors
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "vantris.ic50", 0x0000, 0x0800, CRC(a7061526) SHA1(f5f5860a9dc468cb4177348e0b0592e5adda28f1) )
+ ROM_LOAD( "vantris.ic51", 0x0800, 0x0800, CRC(67bd31ed) SHA1(24f03cf097e5382500a85483351f21913a98fdd5) )
+
+ ROM_REGION( 0x0040, "proms", 0 )
+ ROM_LOAD( "vantris.ic7", 0x0000, 0x0020, CRC(90f17fc1) SHA1(fc92864178cbceccd6f7f2c75249b5c568bdbea8) )
+ ROM_RELOAD( 0x0020, 0x0020 )
+
+ ROM_REGION( 0x1000, "snk6502", 0 )
+ ROM_LOAD( "vantris.ic53", 0x0000, 0x0800, CRC(fd4d8bb0) SHA1(d59ec7569147263aed50041b15aed2ca4f395c23) )
+ ROM_LOAD( "sk4_ic52.bin", 0x0800, 0x0800, CRC(cc4a0b6f) SHA1(251b24d60083d516c4ba686d75b41e04d10f7198) )
+
+ ROM_REGION( 0x5800, "speech", ROMREGION_ERASE00 )
+ROM_END
+
+GAME( 1998, vantris, 0, vanguard, vanguard, snk6502_state, 0, ROT90, "Norbert Kehrer", "Vantris 98", MACHINE_SUPPORTS_SAVE ) // http://web.utanet.at/nkehrer/vantris.html
diff --git a/src/hbmame/drivers/spacmiss.cpp b/src/hbmame/drivers/spacmiss.cpp
new file mode 100644
index 00000000000..15e7664dd30
--- /dev/null
+++ b/src/hbmame/drivers/spacmiss.cpp
@@ -0,0 +1,486 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+/****************************************************************************************
+
+Space Missile
+
+Galaxian running on Space Invaders hardware
+
+2013-06-26
+
+*******************************************************************************************/
+
+#include "emu.h"
+#include "cpu/i8085/i8085.h"
+#include "machine/mb14241.h"
+#include "sound/discrete.h"
+#include "sound/samples.h"
+#include "screen.h"
+#include "speaker.h"
+#include "spacmissx.lh"
+
+#define MW8080BW_MASTER_CLOCK (19968000.0)
+#define MW8080BW_CPU_CLOCK (MW8080BW_MASTER_CLOCK / 10)
+#define MW8080BW_PIXEL_CLOCK (MW8080BW_MASTER_CLOCK / 4)
+#define MW8080BW_HTOTAL (0x140)
+#define MW8080BW_HBEND (0x000)
+#define MW8080BW_HBSTART (0x100)
+#define MW8080BW_VTOTAL (0x106)
+#define MW8080BW_VBEND (0x000)
+#define MW8080BW_VBSTART (0x0e0)
+#define MW8080BW_VCOUNTER_START_NO_VBLANK (0x020)
+#define MW8080BW_VCOUNTER_START_VBLANK (0x0da)
+#define MW8080BW_INT_TRIGGER_COUNT_1 (0x080)
+#define MW8080BW_INT_TRIGGER_VBLANK_1 (0)
+#define MW8080BW_INT_TRIGGER_COUNT_2 MW8080BW_VCOUNTER_START_VBLANK
+#define MW8080BW_INT_TRIGGER_VBLANK_2 (1)
+#define MW8080BW_HPIXCOUNT MW8080BW_HBSTART + 6
+
+class sm_state : public driver_device
+{
+public:
+ sm_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag)
+ , m_maincpu(*this,"maincpu")
+ , m_p_ram(*this, "ram")
+ , m_discrete(*this, "discrete")
+ , m_samples(*this, "samples")
+ , m_screen(*this, "screen")
+ { }
+
+ /* device/memory pointers */
+ required_device<cpu_device> m_maincpu;
+ required_shared_ptr<uint8_t> m_p_ram;
+ required_device<discrete_device> m_discrete;
+ required_device<samples_device> m_samples;
+ required_device<screen_device> m_screen;
+
+ bool m_flip_screen;
+ bool m_screen_red;
+ bool m_sound_enabled;
+ uint8_t m_port_1_last_extra;
+ uint8_t m_port_2_last_extra;
+
+ /* timer */
+ emu_timer *m_interrupt_timer;
+
+ DECLARE_READ8_MEMBER(mw8080bw_shift_result_rev_r);
+ DECLARE_READ8_MEMBER(mw8080bw_reversable_shift_result_r);
+ DECLARE_WRITE8_MEMBER(mw8080bw_reversable_shift_count_w);
+ DECLARE_READ8_MEMBER(spacmissx_02_r);
+ DECLARE_WRITE8_MEMBER(spacmissx_03_w);
+ DECLARE_WRITE8_MEMBER(spacmissx_05_w);
+ DECLARE_WRITE8_MEMBER(spacmissx_07_w);
+ DECLARE_MACHINE_START(sm);
+ DECLARE_MACHINE_RESET(sm);
+ uint8_t vpos_to_vysnc_chain_counter( int vpos );
+ int vysnc_chain_counter_to_vpos( uint8_t counter, int vblank );
+ uint32_t screen_update_spacmissx(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ TIMER_CALLBACK_MEMBER(mw8080bw_interrupt_callback);
+ void mw8080bw_create_interrupt_timer( );
+ void mw8080bw_start_interrupt_timer( );
+};
+
+static const discrete_dac_r1_ladder spacmissx_music_dac =
+ {3, {0, RES_K(47), RES_K(12)}, 0, 0, 0, CAP_U(0.1)};
+
+static const discrete_comp_adder_table invaders_thump_resistors =
+{
+ DISC_COMP_P_RESISTOR,
+ 0, /* no cDefault */
+ 4, /* length */
+ { RES_K(20) + RES_K(20), /* R126 + R127 */
+ RES_K(68), /* R128 */
+ RES_K(82), /* R129 */
+ RES_K(100) } /* R130 */
+};
+
+
+static const discrete_555_desc invaders_thump_555 =
+{
+ DISC_555_OUT_ENERGY | DISC_555_OUT_DC,
+ 5,
+ 5.0 - 0.6, /* 5V - diode drop */
+ DEFAULT_TTL_V_LOGIC_1 /* Output of F3 7411 buffer */
+};
+
+static const discrete_mixer_desc mix1 =
+{
+ DISC_MIXER_IS_RESISTOR,
+ {RES_K(22), RES_K(22)},
+ {0},
+ {CAP_U(.1), CAP_U(.1)},
+ 0, RES_K(100), 0, CAP_U(.1), 0, 20
+};
+
+#define spacmissx_MUSIC_CLK (150000)
+
+/* Nodes - Inputs */
+/* Nodes - Sounds */
+/************************************************
+ * Fleet movement
+ ************************************************/
+
+DISCRETE_SOUND_START(spacmissx)
+/******************************************************************************
+ *
+ * Background Hum
+ *
+ ******************************************************************************/
+ DISCRETE_INPUT_DATA(NODE_02) \
+ DISCRETE_COMP_ADDER(NODE_30, \
+ NODE_02, /* DATA */ \
+ &invaders_thump_resistors) \
+ DISCRETE_555_ASTABLE(NODE_31, /* IC F3, pin 6 */ \
+ 1, /* RESET */ \
+ NODE_30, /* R1 */ \
+ RES_K(75), /* R131 */ \
+ CAP_U(0.1), /* C29 */ \
+ &invaders_thump_555) \
+ DISCRETE_RCFILTER(NODE_32, \
+ NODE_31, /* IN0 */ \
+ 100, /* R132 */ \
+ CAP_U(4.7) ) /* C31 */ \
+ DISCRETE_RCFILTER(NODE_12, \
+ NODE_32, /* IN0 */ \
+ 100 + 100, /* R132 + R133 */ \
+ CAP_U(10) ) /* C32 */
+
+
+/******************************************************************************
+ *
+ * Music Generator
+ *
+ ******************************************************************************/
+ DISCRETE_INPUT_DATA (NODE_01)
+
+ DISCRETE_NOTE(NODE_20, 1, spacmissx_MUSIC_CLK, NODE_01, 255, 5, DISC_CLK_IS_FREQ)
+
+ // Convert count to 7492 output
+ DISCRETE_TRANSFORM2(NODE_21, NODE_20, 2, "01>0+")
+
+ DISCRETE_DAC_R1(NODE_22, NODE_21, DEFAULT_TTL_V_LOGIC_1, &spacmissx_music_dac)
+
+/******************************************************************************
+ *
+ * Final Mixing and Output
+ *
+ ******************************************************************************/
+ DISCRETE_CRFILTER(NODE_80, NODE_22, RES_K(10), CAP_U(0.1))
+
+ DISCRETE_MIXER2(NODE_90, \
+ 1, /* ENAB */ \
+ NODE_80, \
+ NODE_12, \
+ &mix1)
+
+ DISCRETE_OUTPUT(NODE_90, 2500)
+
+DISCRETE_SOUND_END
+
+WRITE8_MEMBER( sm_state::spacmissx_07_w )
+{
+ m_discrete->write(space, NODE_01, data | 0xc0);
+}
+
+WRITE8_MEMBER(sm_state::spacmissx_03_w)
+{
+ uint8_t rising_bits = data & ~m_port_1_last_extra;
+
+ if (BIT(rising_bits, 1)) m_samples->start(2, 2); /* Killed an enemy */
+ if (BIT(rising_bits, 2)) m_samples->start(1, 1); /* Lost a life */
+
+ m_port_1_last_extra = data;
+}
+
+// bits 0-3 make a variable background tone
+WRITE8_MEMBER(sm_state::spacmissx_05_w)
+{
+ if (BIT(m_port_1_last_extra, 5))
+ m_discrete->write(space, NODE_02, data & 0x0f);
+ else
+ m_discrete->write(space, NODE_02, 0);
+
+ uint8_t rising_bits = data & ~m_port_2_last_extra;
+
+ if (BIT(rising_bits, 4)) m_samples->start(0, 0); /* Shoot */
+
+ m_flip_screen = BIT(data, 5) & ioport("CAB")->read();
+
+ m_port_2_last_extra = data;
+}
+
+uint8_t sm_state::vpos_to_vysnc_chain_counter( int vpos )
+{
+ /* convert from a vertical position to the actual values on the vertical sync counters */
+ uint8_t counter;
+ int vblank = (vpos >= MW8080BW_VBSTART);
+
+ if (vblank)
+ counter = vpos - MW8080BW_VBSTART + MW8080BW_VCOUNTER_START_VBLANK;
+ else
+ counter = vpos + MW8080BW_VCOUNTER_START_NO_VBLANK;
+
+ return counter;
+}
+
+
+int sm_state::vysnc_chain_counter_to_vpos( uint8_t counter, int vblank )
+{
+ /* convert from the vertical sync counters to an actual vertical position */
+ int vpos;
+
+ if (vblank)
+ vpos = counter - MW8080BW_VCOUNTER_START_VBLANK + MW8080BW_VBSTART;
+ else
+ vpos = counter - MW8080BW_VCOUNTER_START_NO_VBLANK;
+
+ return vpos;
+}
+
+
+TIMER_CALLBACK_MEMBER(sm_state::mw8080bw_interrupt_callback)
+{
+ uint8_t next_counter;
+ int next_vpos;
+ int next_vblank;
+
+ /* compute vector and set the interrupt line */
+ int vpos = m_screen->vpos();
+ uint8_t counter = vpos_to_vysnc_chain_counter(vpos);
+ uint8_t vector = 0xc7 | ((counter & 0x40) >> 2) | ((~counter & 0x40) >> 3);
+ m_maincpu->set_input_line_and_vector(0, HOLD_LINE, vector);
+
+ /* set up for next interrupt */
+ if (counter == MW8080BW_INT_TRIGGER_COUNT_1)
+ {
+ next_counter = MW8080BW_INT_TRIGGER_COUNT_2;
+ next_vblank = MW8080BW_INT_TRIGGER_VBLANK_2;
+ }
+ else
+ {
+ next_counter = MW8080BW_INT_TRIGGER_COUNT_1;
+ next_vblank = MW8080BW_INT_TRIGGER_VBLANK_1;
+ }
+
+ next_vpos = vysnc_chain_counter_to_vpos(next_counter, next_vblank);
+ m_interrupt_timer->adjust(m_screen->time_until_pos(next_vpos));
+}
+
+
+void sm_state::mw8080bw_create_interrupt_timer( )
+{
+ m_interrupt_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(sm_state::mw8080bw_interrupt_callback),this));
+}
+
+
+void sm_state::mw8080bw_start_interrupt_timer( )
+{
+ int vpos = vysnc_chain_counter_to_vpos(MW8080BW_INT_TRIGGER_COUNT_1, MW8080BW_INT_TRIGGER_VBLANK_1);
+ m_interrupt_timer->adjust(m_screen->time_until_pos(vpos));
+}
+
+/*************************************
+ *
+ * Machine setup
+ *
+ *************************************/
+
+MACHINE_START_MEMBER( sm_state, sm )
+{
+ mw8080bw_create_interrupt_timer();
+}
+
+
+/*************************************
+ *
+ * Machine reset
+ *
+ *************************************/
+
+MACHINE_RESET_MEMBER( sm_state, sm )
+{
+ mw8080bw_start_interrupt_timer();
+}
+
+
+
+uint32_t sm_state::screen_update_spacmissx(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
+{
+ uint8_t x = 0;
+ uint8_t y = MW8080BW_VCOUNTER_START_NO_VBLANK;
+ uint8_t video_data = 0;
+ uint8_t flip = m_flip_screen;
+
+ while (1)
+ {
+ /* plot the current pixel */
+ pen_t pen = (video_data & 0x01) ? rgb_t(255,255,255) : rgb_t(0,0,0);
+
+ if (flip)
+ bitmap.pix32(MW8080BW_VBSTART - 1 - (y - MW8080BW_VCOUNTER_START_NO_VBLANK), MW8080BW_HPIXCOUNT - 1 - x) = pen;
+ else
+ bitmap.pix32(y - MW8080BW_VCOUNTER_START_NO_VBLANK, x) = pen;
+
+ /* next pixel */
+ video_data = video_data >> 1;
+ x = x + 1;
+
+ /* end of line? */
+ if (x == 0)
+ {
+ /* yes, flush out the shift register */
+ int i;
+
+ for (i = 0; i < 4; i++)
+ {
+ pen = (video_data & 0x01) ? rgb_t(255,255,255) : rgb_t(0,0,0);
+
+ if (flip)
+ bitmap.pix32(MW8080BW_VBSTART - 1 - (y - MW8080BW_VCOUNTER_START_NO_VBLANK), MW8080BW_HPIXCOUNT - 1 - (256 + i)) = pen;
+ else
+ bitmap.pix32(y - MW8080BW_VCOUNTER_START_NO_VBLANK, 256 + i) = pen;
+
+ video_data = video_data >> 1;
+ }
+
+ /* next row, video_data is now 0, so the next line will start
+ with 4 blank pixels */
+ y = y + 1;
+
+ /* end of screen? */
+ if (y == 0)
+ break;
+ }
+ /* the video RAM is read at every 8 pixels starting with pixel 4 */
+ else if ((x & 0x07) == 0x04)
+ {
+ offs_t offs = ((offs_t)y << 5) | (x >> 3);
+ video_data = m_p_ram[offs];
+ }
+ }
+
+ return 0;
+}
+
+READ8_MEMBER(sm_state::spacmissx_02_r)
+{
+ uint8_t data = ioport("IN2")->read();
+ if (m_flip_screen) return data;
+ return (data & 0x8f) | (ioport("IN1")->read() & 0x70);
+}
+
+static ADDRESS_MAP_START( spacmissx_map, AS_PROGRAM, 8, sm_state )
+ ADDRESS_MAP_GLOBAL_MASK(0x7fff)
+ AM_RANGE(0x0000, 0x1fff) AM_ROM AM_WRITENOP
+ AM_RANGE(0x2000, 0x3fff) AM_MIRROR(0x4000) AM_RAM AM_SHARE("ram")
+ AM_RANGE(0x4000, 0x5fff) AM_ROM AM_WRITENOP
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( spacmissx_io_map, AS_IO, 8, sm_state )
+ AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0")
+ AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
+ AM_RANGE(0x02, 0x02) AM_READ(spacmissx_02_r) AM_DEVWRITE("mb14241", mb14241_device, shift_count_w)
+ AM_RANGE(0x03, 0x03) AM_DEVREAD("mb14241", mb14241_device, shift_result_r) AM_WRITE(spacmissx_03_w)
+ AM_RANGE(0x04, 0x04) AM_DEVWRITE("mb14241", mb14241_device, shift_data_w)
+ AM_RANGE(0x05, 0x05) AM_WRITE(spacmissx_05_w)
+ AM_RANGE(0x06, 0x06) AM_WRITENOP //(watchdog_reset_w)
+ AM_RANGE(0x07, 0x07) AM_WRITE(spacmissx_07_w)
+ADDRESS_MAP_END
+
+static const char *const invaders_sample_names[] =
+{
+ "*invaders",
+ "1", /* shot/missle */
+ "2", /* base hit/explosion */
+ "3", /* invader hit */
+ "4", /* fleet move 1 */
+ "5", /* fleet move 2 */
+ "6", /* fleet move 3 */
+ "7", /* fleet move 4 */
+ "8", /* UFO/saucer hit */
+ "9", /* bonus base */
+ 0
+};
+
+
+static MACHINE_CONFIG_START( spacmissx )
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu",I8080,MW8080BW_CPU_CLOCK)
+ MCFG_CPU_PROGRAM_MAP(spacmissx_map)
+ MCFG_CPU_IO_MAP(spacmissx_io_map)
+ MCFG_MACHINE_START_OVERRIDE(sm_state,sm)
+ MCFG_MACHINE_RESET_OVERRIDE(sm_state,sm)
+
+ /* video hardware */
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_RAW_PARAMS(MW8080BW_PIXEL_CLOCK, MW8080BW_HTOTAL, MW8080BW_HBEND, MW8080BW_HPIXCOUNT, MW8080BW_VTOTAL, MW8080BW_VBEND, MW8080BW_VBSTART)
+ MCFG_SCREEN_UPDATE_DRIVER(sm_state, screen_update_spacmissx)
+
+ /* add shifter */
+ MCFG_MB14241_ADD("mb14241")
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+ MCFG_SOUND_ADD("samples", SAMPLES, 0)
+ MCFG_SAMPLES_CHANNELS(6)
+ MCFG_SAMPLES_NAMES(invaders_sample_names)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
+ MCFG_DISCRETE_ADD("discrete", 0, spacmissx)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
+MACHINE_CONFIG_END
+
+
+static INPUT_PORTS_START( spacmissx )
+ PORT_START("IN0")
+ PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNKNOWN ) // gets read into memory (0x2012) then never used
+
+ PORT_START("IN1")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 )
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 )
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN )
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 )
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
+
+ PORT_START("IN2")
+ PORT_DIPNAME( 0x03, 0x02, DEF_STR( Bonus_Life ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x01, "4000" )
+ PORT_DIPSETTING( 0x02, "5000" )
+ PORT_DIPSETTING( 0x03, "7000" )
+ 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( Lives ) )
+ PORT_DIPSETTING( 0x00, "3" )
+ PORT_DIPSETTING( 0x08, "6" )
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2)
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(2)
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(2)
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
+
+ /* Dummy port for cocktail mode */
+ PORT_START("CAB")
+ PORT_CONFNAME( 0x01, 0x00, DEF_STR( Cabinet ) )
+ PORT_CONFSETTING( 0x00, DEF_STR( Upright ) )
+ PORT_CONFSETTING( 0x01, DEF_STR( Cocktail ) )
+INPUT_PORTS_END
+
+ROM_START( spacmissx )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "1", 0x0000, 0x0800, CRC(e212dc88) SHA1(bc56052bf43d18081f777b936b2be792e91ba842) )
+ ROM_LOAD( "2", 0x0800, 0x0800, CRC(f97410ee) SHA1(47f1f296c905fa13f6c521edc12c10f1f0e42400) )
+ ROM_LOAD( "3", 0x1000, 0x0800, CRC(c1175feb) SHA1(83bf955ed3a52e1ce8c688d89725d8dee1bcc866) )
+ ROM_LOAD( "4", 0x1800, 0x0800, CRC(b4451d7c) SHA1(62a18e8e927ef00a7f6cb933cdc5aeae9f074dc0) )
+ ROM_LOAD( "5", 0x4000, 0x0800, CRC(74c9da61) SHA1(cb98105729f0fa4343b71af3c658b378ade1ed46) )
+ ROM_LOAD( "6", 0x4800, 0x0800, CRC(5e7c6c44) SHA1(be7eeef10462377909018cf40503766f38466022) )
+ ROM_LOAD( "7", 0x5000, 0x0800, CRC(02619e18) SHA1(4c59f17fbc96ca08090f08c41ca9fc72c074e9c0) )
+
+ ROM_REGION( 0x0800, "user1", 0 )
+ ROM_LOAD( "8", 0x0000, 0x0800, CRC(942e5261) SHA1(e8af51d644eab4e7b31c14dc66bb036ad8940c42) ) // ?
+ROM_END
+
+GAMEL(1980?,spacmissx, 0, spacmissx, spacmissx, sm_state, 0, ROT270, "bootleg?", "Space Missile - Space Fighting Game (Extra Sounds)", MACHINE_SUPPORTS_SAVE, layout_spacmissx )
diff --git a/src/hbmame/drivers/system1.cpp b/src/hbmame/drivers/system1.cpp
new file mode 100644
index 00000000000..021e4815c17
--- /dev/null
+++ b/src/hbmame/drivers/system1.cpp
@@ -0,0 +1,76 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/system1.cpp"
+
+ROM_START( wbmlbit )
+ ROM_REGION( 0x40000, "maincpu", 0 )
+ ROM_LOAD( "wbml.01", 0x20000, 0x8000, CRC(66482638) SHA1(887f93015f0effa2d0fa1f1f59082f75ac072221) )
+ ROM_CONTINUE( 0x00000, 0x8000 )
+ ROM_LOAD( "wbml.02it", 0x30000, 0x8000, CRC(680f2186) SHA1(bb7b43a8d8438ec9dc55f219db284934a57ea81a) )
+ ROM_CONTINUE( 0x10000, 0x8000 )
+ ROM_LOAD( "wbml.03", 0x38000, 0x8000, CRC(d57ba8aa) SHA1(16f095cb78e31af5ce76d36c20fe4c3e0d027aea) )
+ ROM_CONTINUE( 0x18000, 0x8000 )
+
+ ROM_REGION( 0x2000, "maincpu:key", 0 ) /* MC8123 key */
+ ROM_LOAD( "317-0043.key", 0x0000, 0x2000, CRC(e354abfc) SHA1(07b0d3c51301ebb25909234b6220a3ed20dbcc7d) )
+
+ ROM_REGION( 0x10000, "soundcpu", 0 )
+ ROM_LOAD( "epr11037.126", 0x0000, 0x8000, CRC(7a4ee585) SHA1(050436106cced5dcbf40a3d94d48202eedddc3ad) )
+
+ ROM_REGION( 0x18000, "tiles", 0 )
+ ROM_LOAD( "wbml.08it", 0x00000, 0x8000, CRC(bc2846d3) SHA1(6777ef6ca5b92600aa6038d773cdd8263639b1cb) )
+ ROM_LOAD( "wbml.09it", 0x08000, 0x8000, CRC(c61fd58e) SHA1(f17dba3195e8b3c3d443d696cce63604cdc64a5e) )
+ ROM_LOAD( "wbml.10it", 0x10000, 0x8000, CRC(e0386c02) SHA1(bdfa5fa2bbf641730865d74057203e41dcae80fa) )
+
+ ROM_REGION( 0x20000, "sprites", 0 )
+ ROM_LOAD( "epr11028.87", 0x00000, 0x8000, CRC(af0b3972) SHA1(413825f66b84c7e45aa1855131482abead8f7f3b) )
+ ROM_LOAD( "epr11027.86", 0x08000, 0x8000, CRC(277d8f1d) SHA1(7854673503ed03d276abe971805a11f8c992f6d6) )
+ ROM_LOAD( "epr11030.89", 0x10000, 0x8000, CRC(f05ffc76) SHA1(f3dbb518240f86430840c3d4cda04bac79c20f69) )
+ ROM_LOAD( "epr11029.88", 0x18000, 0x8000, CRC(cedc9c61) SHA1(dbe5744f9b6f2a406b52b910dd4e133db7bce6b2) )
+
+ ROM_REGION( 0x0300, "palette", 0 )
+ ROM_LOAD( "pr11026.20", 0x0000, 0x0100, CRC(27057298) SHA1(654be7abb937bb0720263ee6512e31194662effe) )
+ ROM_LOAD( "pr11025.14", 0x0100, 0x0100, CRC(41e4d86b) SHA1(a86e8bb0a465d01b04410edfbb82eb96f12b909f) )
+ ROM_LOAD( "pr11024.8", 0x0200, 0x0100, CRC(08d71954) SHA1(df045dbfb3d669e4d42fbdba1e7191cd046f7b47) )
+
+ ROM_REGION( 0x0100, "proms", 0 )
+ ROM_LOAD( "pr5317.37", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) )
+ROM_END
+
+ROM_START( wbmlkb )
+ ROM_REGION( 0x40000, "maincpu", 0 )
+ ROM_LOAD( "wbml.01", 0x20000, 0x8000, CRC(66482638) SHA1(887f93015f0effa2d0fa1f1f59082f75ac072221) )
+ ROM_CONTINUE( 0x00000, 0x8000 )
+ ROM_LOAD( "m-6k.bin", 0x30000, 0x8000, CRC(7dd0b45a) SHA1(ae715437c225013bade54cf021be708c5145a84f) )
+ ROM_CONTINUE( 0x10000, 0x8000 )
+ ROM_LOAD( "m-7.bin", 0x38000, 0x8000, CRC(11881703) SHA1(b5e4d477158e7653b0fef5a4806be7b4871e917d) )
+ ROM_CONTINUE( 0x18000, 0x8000 )
+
+ ROM_REGION( 0x2000, "maincpu:key", 0 ) /* MC8123 key */
+ ROM_LOAD( "317-0043.key", 0x0000, 0x2000, CRC(e354abfc) SHA1(07b0d3c51301ebb25909234b6220a3ed20dbcc7d) )
+
+ ROM_REGION( 0x10000, "soundcpu", 0 )
+ ROM_LOAD( "epr11037.126", 0x0000, 0x8000, CRC(7a4ee585) SHA1(050436106cced5dcbf40a3d94d48202eedddc3ad) )
+
+ ROM_REGION( 0x18000, "tiles", 0 )
+ ROM_LOAD( "epr11034.4k", 0x00000, 0x8000, CRC(7e631c73) SHA1(ef7bc9c8b15083680f8169fa8d322cfbfa7d54ac) )
+ ROM_LOAD( "epr11035.5k", 0x08000, 0x8000, CRC(4c67a9a6) SHA1(eac1f97aac3f5b0ce96dd082c7741033caa4b55b) )
+ ROM_LOAD( "epr11036.6k", 0x10000, 0x8000, CRC(0440b0c7) SHA1(f0e321dc6c979807852c375c8a6905fd32336dde) )
+
+ ROM_REGION( 0x20000, "sprites", 0 )
+ ROM_LOAD( "epr11028.87", 0x00000, 0x8000, CRC(af0b3972) SHA1(413825f66b84c7e45aa1855131482abead8f7f3b) )
+ ROM_LOAD( "epr11027.86", 0x08000, 0x8000, CRC(277d8f1d) SHA1(7854673503ed03d276abe971805a11f8c992f6d6) )
+ ROM_LOAD( "epr11030.89", 0x10000, 0x8000, CRC(f05ffc76) SHA1(f3dbb518240f86430840c3d4cda04bac79c20f69) )
+ ROM_LOAD( "epr11029.88", 0x18000, 0x8000, CRC(cedc9c61) SHA1(dbe5744f9b6f2a406b52b910dd4e133db7bce6b2) )
+
+ ROM_REGION( 0x0300, "palette", 0 )
+ ROM_LOAD( "pr11026.20", 0x0000, 0x0100, CRC(27057298) SHA1(654be7abb937bb0720263ee6512e31194662effe) )
+ ROM_LOAD( "pr11025.14", 0x0100, 0x0100, CRC(41e4d86b) SHA1(a86e8bb0a465d01b04410edfbb82eb96f12b909f) )
+ ROM_LOAD( "pr11024.8", 0x0200, 0x0100, CRC(08d71954) SHA1(df045dbfb3d669e4d42fbdba1e7191cd046f7b47) )
+
+ ROM_REGION( 0x0100, "proms", 0 )
+ ROM_LOAD( "pr5317.37", 0x0000, 0x0100, CRC(648350b8) SHA1(c7986aa9127ef5b50b845434cb4e81dff9861cd2) )
+ROM_END
+
+GAME( 1987, wbmlbit, wbml, sys2xb, wbml, system1_state, bootsys2, ROT0, "Michele", "Wonder Boy in Monster Land (Italian - v0.99)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
+GAME( 1987, wbmlkb, wbml, sys2xb, wbml, system1_state, bootsys2, ROT0, "hack", "Wonder Boy in Monster Land (Korean)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/system16.cpp b/src/hbmame/drivers/system16.cpp
new file mode 100644
index 00000000000..4e756d9f738
--- /dev/null
+++ b/src/hbmame/drivers/system16.cpp
@@ -0,0 +1,28 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/system16.cpp"
+
+// Sprite processing has been disabled because the sprite processor (sega16sp.c) freezes
+// the moment anything is written to sprite ram.
+
+ROM_START( sys16dem )
+ ROM_REGION( 0x040000, "maincpu", ROMREGION_ERASEFF ) /* 68000 code */
+ ROM_LOAD16_BYTE( "rom2dm.bin", 0x00000, 0x10000, CRC(671c5eac) SHA1(5fa7f8ba9d31a6c31a0b5a32c2cd869200032461) )
+ ROM_LOAD16_BYTE( "rom1dm.bin", 0x00001, 0x10000, CRC(6461ebd9) SHA1(16dc373408342560eb48e3c037a8f42636796560) )
+ ROM_FILL(0x686, 1, 0x4e)
+ ROM_FILL(0x687, 1, 0x71) // cancel writing to sprite ram
+
+ ROM_REGION( 0x30000, "gfx1", 0 ) /* tiles */
+ ROM_LOAD( "scr01dm.b9", 0x00000, 0x10000, CRC(2fdb9b09) SHA1(bec9ca842921695b06915825acfba076443a7e8b) )
+ ROM_LOAD( "scr02dm.b10", 0x10000, 0x10000, CRC(0e880750) SHA1(d6b7c84c00dfb3c1fcf966587f700f3ea3313b94) )
+ ROM_LOAD( "scr03dm.b11", 0x20000, 0x10000, CRC(3e76f2ba) SHA1(9177850b5d0b914a672af414e7e134e15d554fb8) )
+
+ ROM_REGION16_BE( 0x020000, "sprites", 0 ) /* sprites */
+ ROM_LOAD16_BYTE( "dm-obj0-o.rom", 0x00001, 0x10000, CRC(82ec3f29) SHA1(0c0b28e98348f8981314f8d940ccd17d790bf335) )
+ ROM_LOAD16_BYTE( "dm-obj0-e.rom", 0x00000, 0x10000, CRC(6eca3b5c) SHA1(f58ac53d24b167db4787d6fe91e4799f3c3256d6) )
+
+ ROM_REGION( 0x40000, "soundcpu", 0 ) /* sound CPU */
+ ROM_LOAD( "epr12168.a7", 0x0000, 0x8000, CRC(bd9ba01b) SHA1(fafa7dc36cc057a50ae4cdf7a35f3594292336f4) )
+ROM_END
+
+GAME( 1988, sys16dem, 0, tetrisbl, tetris, segas1x_bootleg_state, dduxbl, ROT0, "Charles Doty", "Demo - Sega System 16", MACHINE_IMPERFECT_GRAPHICS )
diff --git a/src/hbmame/drivers/taito_b.cpp b/src/hbmame/drivers/taito_b.cpp
new file mode 100644
index 00000000000..c77f59dc40e
--- /dev/null
+++ b/src/hbmame/drivers/taito_b.cpp
@@ -0,0 +1,21 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/taito_b.cpp"
+
+ROM_START( bubbleb ) // same as pbobble except for ic2
+ ROM_REGION( 0x80000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "pb-1c18.bin", 0x00000, 0x40000, CRC(5de14f49) SHA1(91d537748f26e19a5c32de4b8dad341750de39ef) )
+ ROM_LOAD16_BYTE( "pb-ic2.usa", 0x00001, 0x40000, CRC(b3b7566b) SHA1(455342b6988741f8c83ed97ef1a2d3b885cbc9d1) )
+
+ ROM_REGION( 0x20000, "audiocpu", 0 )
+ ROM_LOAD( "pb-ic27.bin", 0x00000, 0x20000, CRC(26efa4c4) SHA1(795af8f6d23c2cbe2c811ec9ab1f14a4eee3f99e) )
+
+ ROM_REGION( 0x100000, "gfx1", 0 )
+ ROM_LOAD( "pb-ic14.bin", 0x00000, 0x80000, CRC(55f90ea4) SHA1(793c79e5b72171124368ad09dd31235252c541f5) )
+ ROM_LOAD( "pb-ic9.bin", 0x80000, 0x80000, CRC(3253aac9) SHA1(916d85aa96e2914630833292a0655b0389b4a39b) )
+
+ ROM_REGION( 0x100000, "ymsnd", 0 )
+ ROM_LOAD( "pb-ic15.bin", 0x000000, 0x100000, CRC(0840cbc4) SHA1(1adbd7aef44fa80832f63dfb8efdf69fd7256a57) )
+ROM_END
+
+GAME( 1994, bubbleb, pbobble, pbobble, pbobble, taitob_state, taito_b, ROT0, "Taito Corporation", "Bubble Buster", MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/taito_f2.cpp b/src/hbmame/drivers/taito_f2.cpp
new file mode 100644
index 00000000000..2524a156fee
--- /dev/null
+++ b/src/hbmame/drivers/taito_f2.cpp
@@ -0,0 +1,85 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/taito_f2.cpp"
+
+static MACHINE_CONFIG_START( f2demo )
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", M68000, 24000000/2) /* 12 MHz */
+ MCFG_CPU_PROGRAM_MAP(liquidk_map)
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", taitof2_state, taitof2_interrupt)
+
+ MCFG_CPU_ADD("audiocpu", Z80, 24000000/6) /* 4 MHz */
+ MCFG_CPU_PROGRAM_MAP(sound_map)
+
+ MCFG_MACHINE_START_OVERRIDE(taitof2_state,f2)
+
+ /* video hardware */
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_REFRESH_RATE(60)
+ MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0) /* frames per second, vblank duration */)
+ MCFG_SCREEN_SIZE(120*8, 32*8)
+ MCFG_SCREEN_VISIBLE_AREA(40*8, 106*8-1, 2*8, 32*8-1)
+ MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri)
+ MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(taitof2_state, screen_vblank_partial_buffer_delayed))
+ MCFG_SCREEN_PALETTE("palette")
+ MCFG_GFXDECODE_ADD("gfxdecode", "palette", taitof2)
+ MCFG_PALETTE_ADD("palette", 4096)
+ MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx)
+ MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_megab)
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
+
+ MCFG_SOUND_ADD("ymsnd", YM2610, 24000000/3) /* Was 16000000/2, but only a 24Mhz OSC */
+ MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
+ MCFG_SOUND_ROUTE(0, "lspeaker", 0.25)
+ MCFG_SOUND_ROUTE(0, "rspeaker", 0.25)
+ MCFG_SOUND_ROUTE(1, "lspeaker", 1.0)
+ MCFG_SOUND_ROUTE(2, "rspeaker", 1.0)
+
+ MCFG_DEVICE_ADD("tc0140syt", TC0140SYT, 0)
+ MCFG_TC0140SYT_MASTER_CPU("maincpu")
+ MCFG_TC0140SYT_SLAVE_CPU("audiocpu")
+
+ MCFG_DEVICE_ADD("tc0220ioc", TC0220IOC, 0)
+ MCFG_TC0220IOC_READ_0_CB(IOPORT("DSWA"))
+ MCFG_TC0220IOC_READ_1_CB(IOPORT("DSWB"))
+ MCFG_TC0220IOC_READ_2_CB(IOPORT("IN0"))
+ MCFG_TC0220IOC_READ_3_CB(IOPORT("IN1"))
+ MCFG_TC0220IOC_READ_7_CB(IOPORT("IN2"))
+
+ MCFG_DEVICE_ADD("tc0100scn", TC0100SCN, 0)
+ MCFG_TC0100SCN_GFX_REGION(1)
+ MCFG_TC0100SCN_TX_REGION(2)
+ MCFG_TC0100SCN_OFFSETS(3, 0)
+ MCFG_TC0100SCN_GFXDECODE("gfxdecode")
+ MCFG_TC0100SCN_PALETTE("palette")
+
+ MCFG_TC0360PRI_ADD("tc0360pri")
+MACHINE_CONFIG_END
+
+// Game has no sound
+ROM_START( f2demo )
+ ROM_REGION( 0x80000, "maincpu", 0 ) /* 512k for 68000 code */
+ ROM_LOAD16_BYTE( "lq09.bin", 0x00000, 0x20000, CRC(809a968b) SHA1(06e8be120869371d33c61fa14c48fe4e5fd659ec) )
+ ROM_LOAD16_BYTE( "lq11.bin", 0x00001, 0x20000, CRC(7ba3a5cb) SHA1(08f5392296cceadcae0cd34e9dfe76c835583231) )
+
+ ROM_REGION( 0x080000, "gfx1", 0 ) /* SCR */
+ ROM_LOAD( "f2d_scr.bin", 0x000000, 0x80000, CRC(b178fb05) SHA1(3d33dd822622579c75b55971926f6eb04d33f5a6) ) /* TC0100SCN #1 */
+
+ ROM_REGION( 0x100000, "gfx2", 0 ) /* OBJ */
+ ROM_LOAD( "f2d_obj0.bin", 0x00000, 0x80000, CRC(1bb8aa37) SHA1(9051270485a7a995779c80b4e692b8395503d6c3) )
+ ROM_LOAD( "f2d_obj1.bin", 0x80000, 0x80000, CRC(75660aac) SHA1(6a521e1d2a632c26e53b83d2cc4b0edecfc1e68c) )
+
+ ROM_REGION( 0x1c000, "audiocpu", 0 ) /* sound cpu */
+ ROM_LOAD( "c49-08.9", 0x00000, 0x04000, CRC(413c310c) SHA1(cecb1c0c9fe3c8b744f95ce29009650a289107ab) )
+ ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */
+
+ ROM_REGION( 0x80000, "ymsnd", 0 ) /* ADPCM samples */
+ ROM_LOAD( "lk_snd.bin", 0x00000, 0x80000, CRC(474d45a4) SHA1(20cb818d753a185973098007e645f1aa75c5528d) )
+
+ /* no Delta-T samples */
+ROM_END
+
+GAME( 1990, f2demo, 0, f2demo, liquidk, taitof2_state, 0, ROT180, "Charles Doty", "Demo - Taito F2", MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/taito_f3.cpp b/src/hbmame/drivers/taito_f3.cpp
new file mode 100644
index 00000000000..67004254b7a
--- /dev/null
+++ b/src/hbmame/drivers/taito_f3.cpp
@@ -0,0 +1,223 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/taito_f3.cpp"
+
+ROM_START( cleopath )
+ ROM_REGION(0x200000, "maincpu", 0)
+ ROM_LOAD32_BYTE("e28-10.bin", 0x000000, 0x80000, CRC(013fbc39) SHA1(d36ac44609b88e1da35c98dda381042e0112ea00) )
+ ROM_LOAD32_BYTE("e28-09.bin", 0x000001, 0x80000, CRC(1c48a1f9) SHA1(791d321c03073cdd0269b970f926897446d2a6fb) )
+ ROM_LOAD32_BYTE("e28-08.bin", 0x000002, 0x80000, CRC(7564f199) SHA1(ec4b19edb0660ad478f6c0ec27d701368696a2e4) )
+ ROM_LOAD32_BYTE("e28-wrd.bin", 0x000003, 0x80000, CRC(544dd2e9) SHA1(11ad1ce4202937108f23c44de2244da570452ce1) )
+
+ ROM_REGION(0x200000, "gfx1" , 0)
+ ROM_LOAD16_BYTE("e28-02.bin", 0x000000, 0x080000, CRC(b20d47cb) SHA1(6888e5564688840fed1c123ab38467066cd59c7f) )
+ ROM_LOAD16_BYTE("e28-01.bin", 0x000001, 0x080000, CRC(4440e659) SHA1(71dece81bac8d638473c6531fed5c32798096af9) )
+ ROM_FILL ( 0x100000, 0x100000, 0 )
+
+ ROM_REGION(0x400000, "gfx2" , 0)
+ ROM_LOAD16_BYTE("e28-06.bin", 0x000000, 0x100000, CRC(21d0c454) SHA1(f4c815984b19321cfab303fa6f21d9cad35b09f2) )
+ ROM_LOAD16_BYTE("e28-05.bin", 0x000001, 0x100000, CRC(2870dbbc) SHA1(4e412b90cbd9a05956cde3d8cff615ebadca9db6) )
+ ROM_LOAD ("e28-04.bin", 0x300000, 0x100000, CRC(57aef029) SHA1(5c07209015d4749d1ffb3e9c1a890e6cfeec8cb0) )
+ ROM_FILL ( 0x200000, 0x100000, 0 )
+
+ ROM_REGION(0x140000, "taito_en:audiocpu", 0)
+ ROM_LOAD16_BYTE("e28-11.bin", 0x100000, 0x20000, CRC(01a06950) SHA1(94d22cd839f9027e9d45264c366e0cb5d698e0b6) )
+ ROM_LOAD16_BYTE("e28-12.bin", 0x100001, 0x20000, CRC(dc19260f) SHA1(fa0ca03a236326652e4f9898d07cd837c1507a9d) )
+
+ ROM_REGION16_BE(0x400000, "ensoniq.0" , ROMREGION_ERASE00 )
+ ROM_LOAD16_BYTE("e28-03.bin", 0x000000, 0x200000, CRC(15c7989d) SHA1(7cc63d93e5c1f9f52f889e973bbefd5e6f7ce807) )
+ROM_END
+
+ROM_START( driusgxh )
+ ROM_REGION(0x200000, "maincpu", 0)
+ ROM_LOAD32_BYTE("dge_mpr3.bin", 0x000000, 0x80000, CRC(1c1e24a7) SHA1(eafde331c3be5be55d0d838a84017f357ff92634) )
+ ROM_LOAD32_BYTE("dge_mpr2.bin", 0x000001, 0x80000, CRC(7be23e23) SHA1(4764355f51e207f4538dd753aea59bf2689835de) )
+ ROM_LOAD32_BYTE("dge_mpr1.bin", 0x000002, 0x80000, CRC(bc030f6f) SHA1(841396911d26ddfae0c9863431e02e0b5e762ac6) )
+ ROM_LOAD32_BYTE("dge_wrd.bin", 0x000003, 0x80000, CRC(2bb37270) SHA1(98bc07894e92ca9cce34fc7390f40d3357783e3f) )
+
+ ROM_REGION(0x800000, "gfx1" , 0)
+ ROM_LOAD16_BYTE("d87-03.bin", 0x000000, 0x200000, CRC(4be1666e) SHA1(35ba7bcf29ec7a8f8b6944ee3544693d4df1bfc2) )
+ ROM_LOAD16_BYTE("d87-04.bin", 0x000001, 0x200000, CRC(2616002c) SHA1(003f98b740a697274385b8da03c78f3c6f7b5e89) )
+ ROM_LOAD ("d87-05.bin", 0x600000, 0x200000, CRC(4e5891a9) SHA1(fd08d848079841c9237fa359a850980fd00114d8) )
+ ROM_FILL ( 0x400000, 0x200000, 0 )
+
+ ROM_REGION(0x800000, "gfx2" , 0)
+ ROM_LOAD16_BYTE("d87-06.bin", 0x000000, 0x200000, CRC(3b97a07c) SHA1(72cdeffedeab0c1bd0e47f03172085390a2be393) )
+ ROM_LOAD16_BYTE("d87-17.bin", 0x000001, 0x200000, CRC(e601d63e) SHA1(256a6aeb5633fe1db407fad567169a9d0c911219) )
+ ROM_LOAD ("d87-08.bin", 0x600000, 0x200000, CRC(76d23602) SHA1(ca53ea6641182c44a4038bbeaa5effb1687f1980) )
+ ROM_FILL ( 0x400000, 0x200000, 0 )
+
+ ROM_REGION(0x180000, "taito_en:audiocpu", 0)
+ ROM_LOAD16_BYTE("d87-13.bin", 0x100000, 0x40000, CRC(15b1fff4) SHA1(28692b731ae98a47c2c5e11a8a71b61a813d9a64) )
+ ROM_LOAD16_BYTE("d87-14.bin", 0x100001, 0x40000, CRC(eecda29a) SHA1(6eb238e47bc7bf635ffbdbb25fb06a37db980ef8) )
+
+ ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 )
+ ROM_LOAD16_BYTE("d87-01.bin", 0x000000, 0x200000, CRC(3848a110) SHA1(802e91695a526f665c7fd261f0a7639a0b883c9e) )
+ ROM_LOAD16_BYTE("d87-02.bin", 0x400000, 0x200000, CRC(9250abae) SHA1(07cae8edbc3cca0a95022d9b40a5c18a55350b67) )
+ROM_END
+
+ROM_START( f3demo )
+ ROM_REGION(0x200000, "maincpu", ROMREGION_ERASE00)
+ ROM_LOAD("f3demo.bin", 0, 0x194c, CRC(08587aea) SHA1(4850d170b935fd4b6726c03693eb25e5ac3b6198) )
+ ROM_FILL(0x043A, 1, 0x4E)
+ ROM_FILL(0x043B, 1, 0xB8)
+ ROM_FILL(0x043C, 1, 0x19)
+ ROM_FILL(0x043D, 1, 0x4C)
+ ROM_FILL(0x194C, 1, 0x41)
+ ROM_FILL(0x194D, 1, 0xF9)
+ ROM_FILL(0x194F, 1, 0x66)
+ ROM_FILL(0x1951, 1, 0x18)
+ ROM_FILL(0x1952, 1, 0x30)
+ ROM_FILL(0x1953, 1, 0x3C)
+ ROM_FILL(0x1955, 1, 0x9E)
+ ROM_FILL(0x1956, 1, 0x31)
+ ROM_FILL(0x1957, 1, 0x40)
+ ROM_FILL(0x195A, 1, 0x30)
+ ROM_FILL(0x195B, 1, 0x3C)
+ ROM_FILL(0x195D, 1, 0xF1)
+ ROM_FILL(0x195E, 1, 0x31)
+ ROM_FILL(0x195F, 1, 0x40)
+ ROM_FILL(0x1961, 1, 0x02)
+ ROM_FILL(0x1962, 1, 0x60)
+ ROM_FILL(0x1963, 1, 0xFE)
+
+ ROM_REGION(0x800000, "gfx1" , 0)
+ ROM_LOAD16_BYTE("d87-03.bin", 0x000000, 0x200000, CRC(4be1666e) SHA1(35ba7bcf29ec7a8f8b6944ee3544693d4df1bfc2) )
+ ROM_LOAD16_BYTE("d87-04.bin", 0x000001, 0x200000, CRC(2616002c) SHA1(003f98b740a697274385b8da03c78f3c6f7b5e89) )
+ ROM_LOAD ("d87-05.bin", 0x600000, 0x200000, CRC(4e5891a9) SHA1(fd08d848079841c9237fa359a850980fd00114d8) )
+ ROM_FILL ( 0x400000, 0x200000, 0 )
+
+ ROM_REGION(0x800000, "gfx2" , 0)
+ ROM_LOAD16_BYTE("d87-06.bin", 0x000000, 0x200000, CRC(3b97a07c) SHA1(72cdeffedeab0c1bd0e47f03172085390a2be393) )
+ ROM_LOAD16_BYTE("d87-17.bin", 0x000001, 0x200000, CRC(e601d63e) SHA1(256a6aeb5633fe1db407fad567169a9d0c911219) )
+ ROM_LOAD ("d87-08.bin", 0x600000, 0x200000, CRC(76d23602) SHA1(ca53ea6641182c44a4038bbeaa5effb1687f1980) )
+ ROM_FILL ( 0x400000, 0x200000, 0 )
+
+ ROM_REGION(0x180000, "taito_en:audiocpu", 0)
+ ROM_LOAD16_BYTE("d87-13.bin", 0x100000, 0x40000, CRC(15b1fff4) SHA1(28692b731ae98a47c2c5e11a8a71b61a813d9a64) )
+ ROM_LOAD16_BYTE("d87-14.bin", 0x100001, 0x40000, CRC(eecda29a) SHA1(6eb238e47bc7bf635ffbdbb25fb06a37db980ef8) )
+
+ ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 )
+ ROM_LOAD16_BYTE("d87-01.bin", 0x000000, 0x200000, CRC(3848a110) SHA1(802e91695a526f665c7fd261f0a7639a0b883c9e) )
+ ROM_LOAD16_BYTE("d87-02.bin", 0x400000, 0x200000, CRC(9250abae) SHA1(07cae8edbc3cca0a95022d9b40a5c18a55350b67) )
+ROM_END
+
+ROM_START( gekiridh )
+ ROM_REGION(0x200000, "maincpu", 0)
+ ROM_LOAD32_BYTE("e11-12.ic20", 0x000000, 0x40000, CRC(6a7aaacf) SHA1(a8114c84e76c75c908a61d985d96aa4eb9a0ac5a) )
+ ROM_LOAD32_BYTE("e11-11.ic19", 0x000001, 0x40000, CRC(2284a08e) SHA1(3dcb91be0d3491ad5e77efd30bacd506dad0f848) )
+ ROM_LOAD32_BYTE("e11-10.ic18", 0x000002, 0x40000, CRC(8795e6ba) SHA1(9128c29fdce3276f55aad47451e4a507470c8b9f) )
+ ROM_LOAD32_BYTE("e11-15.ic17", 0x000003, 0x40000, CRC(5aef1fd8) SHA1(a94884e39172e664759bff53a6dd2f93422d3299) )
+
+ ROM_REGION(0x800000, "gfx1" , 0)
+ ROM_LOAD16_BYTE("e11-03.ic12", 0x000000, 0x200000, CRC(f73877c5) SHA1(1f6b7c0b8a0aaab3e5427d21de7fad3d3cbf737a) )
+ ROM_LOAD16_BYTE("e11-02.ic8", 0x000001, 0x200000, CRC(5722a83b) SHA1(823c20a33016a5506ca5415ec615c3d2546ca9ab) )
+ ROM_LOAD ("e11-01.ic4", 0x600000, 0x200000, CRC(c2cd1069) SHA1(9744dd3d8a6d9200cea4429dafce5620b60e2960) )
+ ROM_FILL ( 0x400000, 0x200000, 0 )
+
+ ROM_REGION(0x800000, "gfx2" , 0)
+ ROM_LOAD16_BYTE("e11-08.ic47", 0x000000, 0x200000, CRC(907f69d3) SHA1(0899ed58edcae22144625c349c9d2fe4d46d11e3) )
+ ROM_LOAD16_BYTE("e11-07.ic45", 0x000001, 0x200000, CRC(ef018607) SHA1(61b602b13754c3be21caf76acbfc10c87518ba47) )
+ ROM_LOAD ("e11-06.ic43", 0x600000, 0x200000, CRC(200ce305) SHA1(c80a0b96510913a6411e6763fb72bf413fb792da) )
+ ROM_FILL ( 0x400000, 0x200000, 0 )
+
+ ROM_REGION(0x140000, "taito_en:audiocpu", 0)
+ ROM_LOAD16_BYTE("e11-13.bin", 0x100000, 0x20000, CRC(51a11ff7) SHA1(c03042489d71423667f25856d15aa6a363ea6c92) )
+ ROM_LOAD16_BYTE("e11-14.bin", 0x100001, 0x20000, CRC(dce2ba91) SHA1(00bc353c7747a7954365b587d7bc759ee5dc09c2) )
+
+ ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 )
+ ROM_LOAD16_BYTE("e11-04.ic38", 0x000000, 0x200000, CRC(e0ff4fb1) SHA1(81e186e3a692af1da316b8085a729c4f103d9a52) )
+ ROM_LOAD16_BYTE("e11-05.ic41", 0x400000, 0x200000, CRC(a4d08cf1) SHA1(ae2cabef7b7bcb8a788988c73d7af6fa4bb2c444) )
+ROM_END
+
+ROM_START( gekiridoc )
+ ROM_REGION(0x200000, "maincpu", 0)
+ ROM_LOAD32_BYTE("e11-12c.bin", 0x000000, 0x40000, CRC(448308ce) SHA1(22eac25158bd3a0349aa4f1f041473b93030ee43) )
+ ROM_LOAD32_BYTE("e11-11c.bin", 0x000001, 0x40000, CRC(8ae457c4) SHA1(f1d74d99c916df90a74be0ff80b05b0f31284306) )
+ ROM_LOAD32_BYTE("e11-10c.bin", 0x000002, 0x40000, CRC(b1ff4529) SHA1(9e8366d9d90ad4155aab3828523daff09e3d400d) )
+ ROM_LOAD32_BYTE("e11-09c.bin", 0x000003, 0x40000, CRC(24d884ff) SHA1(35ddb21608c781a0674a4244c8e5c0aa6dc220eb) )
+
+ ROM_REGION(0x800000, "gfx1" , 0)
+ ROM_LOAD16_BYTE("e11-03c.bin", 0x000000, 0x200000, CRC(2b0dab58) SHA1(7c70a2104fbbfde32fa006bfafe30c3d9708cb10) )
+ ROM_LOAD16_BYTE("e11-02c.bin", 0x000001, 0x200000, CRC(a2c4fa4f) SHA1(2ad73ce8431f1199dd32df83352dc4f85345529f) )
+ ROM_LOAD ("e11-01c.bin", 0x600000, 0x200000, CRC(e19874b3) SHA1(a8d6806133977a7decefafff5d7b249803add70b) )
+ ROM_FILL ( 0x400000, 0x200000, 0 )
+
+ ROM_REGION(0x800000, "gfx2" , 0)
+ ROM_LOAD16_BYTE("e11-08c.bin", 0x000000, 0x200000, CRC(93884253) SHA1(6d0530db64c84bf7b2ad47e94036ecd8c81418b6) )
+ ROM_LOAD16_BYTE("e11-07c.bin", 0x000001, 0x200000, CRC(15ca8ac2) SHA1(33cbcc96e5144e5910c67c99815958d8f004287e) )
+ ROM_LOAD ("e11-06c.bin", 0x600000, 0x200000, CRC(0acc71d3) SHA1(455c70ec8f1087189170160d5683545bbea1fe9a) )
+ ROM_FILL ( 0x400000, 0x200000, 0 )
+
+ ROM_REGION(0x140000, "taito_en:audiocpu", 0)
+ ROM_LOAD16_BYTE("e11-13.bin", 0x100000, 0x20000, CRC(51a11ff7) SHA1(c03042489d71423667f25856d15aa6a363ea6c92) )
+ ROM_LOAD16_BYTE("e11-14.bin", 0x100001, 0x20000, CRC(dce2ba91) SHA1(00bc353c7747a7954365b587d7bc759ee5dc09c2) )
+
+ ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 )
+ ROM_LOAD16_BYTE("e11-04.ic38", 0x000000, 0x200000, CRC(e0ff4fb1) SHA1(81e186e3a692af1da316b8085a729c4f103d9a52) )
+ ROM_LOAD16_BYTE("e11-05.ic41", 0x400000, 0x200000, CRC(a4d08cf1) SHA1(ae2cabef7b7bcb8a788988c73d7af6fa4bb2c444) )
+ROM_END
+
+ROM_START( landmakh )
+ ROM_REGION(0x200000, "maincpu", 0)
+ ROM_LOAD32_BYTE("e61-13.20", 0x000000, 0x80000, CRC(0af756a2) SHA1(2dadac6873f2491ee77703f07f00dde2aa909355) )
+ ROM_LOAD32_BYTE("e61-12.19", 0x000001, 0x80000, CRC(636b3df9) SHA1(78a5bf4977bb90d710942188ce5016f3df499feb) )
+ ROM_LOAD32_BYTE("e61-11.18", 0x000002, 0x80000, CRC(279a0ee4) SHA1(08380286737b33db76a79b27d0df5faba17dfb96) )
+ ROM_LOAD32_BYTE("e61-wrd.17", 0x000003, 0x80000, CRC(34a5939e) SHA1(4fbcdd0b57cbd589b554d1751394df8389293966) )
+
+ ROM_REGION(0x800000, "gfx1" , 0)
+ ROM_LOAD16_BYTE("e61-03.12",0x000000, 0x200000, CRC(e8abfc46) SHA1(fbde006f9822af3ed8debec525270d329981ea21) )
+ ROM_LOAD16_BYTE("e61-02.08",0x000001, 0x200000, CRC(1dc4a164) SHA1(33b412d9653099aaff8ed5e62d1ba4fc30aa9058) )
+ ROM_LOAD ("e61-01.04",0x600000, 0x200000, CRC(6cdd8311) SHA1(7810a5a81f3b5a730d2088c79b12fffd77659b5b) )
+ ROM_FILL ( 0x400000, 0x200000, 0 )
+
+ ROM_REGION(0x800000, "gfx2" , 0)
+ ROM_LOAD16_BYTE("e61-09.47", 0x000000, 0x200000, CRC(6ba29987) SHA1(b63c12523e19da66b3ca07c3548ac81bf57b59a1) )
+ ROM_LOAD16_BYTE("e61-08.45", 0x000001, 0x200000, CRC(76c98e14) SHA1(c021c325ab4ae410fa54e2eab61d34318867432b) )
+ ROM_LOAD ("e61-07.43", 0x600000, 0x200000, CRC(4a57965d) SHA1(8e80788e0f47fb242da9af3aa19077dc0ec829b8) )
+ ROM_FILL ( 0x400000, 0x200000, 0 )
+
+ ROM_REGION(0x140000, "taito_en:audiocpu", 0)
+ ROM_LOAD16_BYTE("e61-14.32", 0x100000, 0x20000, CRC(b905f4a7) SHA1(613b954e3e129fd44b4ce64958f16e5636012d6e) )
+ ROM_LOAD16_BYTE("e61-15.33", 0x100001, 0x20000, CRC(87909869) SHA1(7b90c23899a673966cac3352d375d17b83e66596) )
+
+ ROM_REGION16_BE(0x1000000, "ensoniq.0" , ROMREGION_ERASE00 )
+ ROM_LOAD16_BYTE("e61-04.38", 0x400000, 0x200000, CRC(c27aec0c) SHA1(e95da2db07a20a53662ebd45c033966e8a22a15a) )
+ ROM_LOAD16_BYTE("e61-05.39", 0x800000, 0x200000, CRC(83920d9d) SHA1(019e39ae85d1129f6d3b8460c4b1bd925f868ee2) )
+ ROM_LOAD16_BYTE("e61-06.40", 0xc00000, 0x200000, CRC(2e717bfe) SHA1(1be54cd2ec65d8fd49a5c09b5d27791fd7a320d4) )
+ROM_END
+
+ROM_START( pbobl2xh )
+ ROM_REGION(0x200000, "maincpu", 0)
+ ROM_LOAD32_BYTE("e10-29.20", 0x000000, 0x40000, CRC(f1e9ad3f) SHA1(8689d85f30e075d21e4be01a2a097a850a921c47) )
+ ROM_LOAD32_BYTE("e10-28.19", 0x000001, 0x40000, CRC(412a3602) SHA1(d754e6ac886676d2c1eb52de3a727894f316e6b5) )
+ ROM_LOAD32_BYTE("e10-27.18", 0x000002, 0x40000, CRC(88cc0b5c) SHA1(bb08a7b8b37356376052ed03f8515677811823c0) )
+ ROM_LOAD32_BYTE("e10-wrd.17", 0x000003, 0x40000, CRC(4bcc216b) SHA1(45e9250414201fa5ad866b32b0285973fd06367c) )
+
+ ROM_REGION(0x400000, "gfx1" , 0)
+ ROM_LOAD16_BYTE("e10-02.rom", 0x000000, 0x100000, CRC(c0564490) SHA1(cbe9f880192c08f4d1db21d5ba14073b97e5f1d3) )
+ ROM_LOAD16_BYTE("e10-01.rom", 0x000001, 0x100000, CRC(8c26ff49) SHA1(cbb514c061106003d2ae2b6c43958b24feaad656) )
+ ROM_FILL ( 0x200000, 0x200000, 0 )
+
+ ROM_REGION(0x400000, "gfx2" , ROMREGION_ERASE00)
+ ROM_LOAD16_BYTE("e10-07.rom", 0x000000, 0x100000, CRC(dcb3c29b) SHA1(b80c3a8ce53d696c57675e654c9927ef8687759e) )
+ ROM_LOAD16_BYTE("e10-06.rom", 0x000001, 0x100000, CRC(1b0f20e2) SHA1(66b44d059c2896abac2f0e7fc932489dee440ba0) )
+ ROM_LOAD ("e10-05.rom", 0x300000, 0x100000, CRC(81266151) SHA1(aa3b144f32995425db97efce440e234a3c7a6715) )
+
+ ROM_REGION(0x180000, "taito_en:audiocpu", 0)
+ ROM_LOAD16_BYTE("e10-30.32", 0x100000, 0x40000, CRC(bb090c1e) SHA1(af2ff23d6f9bd56c25530cb9bf9f452b6f5210f5) )
+ ROM_LOAD16_BYTE("e10-31.33", 0x100001, 0x40000, CRC(f4b88d65) SHA1(c74dcb4bed979039fad1d5c7528c14ce4db1d5ec) )
+
+ ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 )
+ ROM_LOAD16_BYTE("e10-04.rom", 0x000000, 0x200000, CRC(5c0862a6) SHA1(f916f63b8629239e3221e1e231e1b39962ef38ba) )
+ ROM_LOAD16_BYTE("e10-03.rom", 0x400000, 0x200000, CRC(46d68ac8) SHA1(ad014e9f0d458308014959ca6823077f581ab088) )
+ROM_END
+
+
+GAME( 1996, cleopath, cleopatr, f3_224a, f3, taito_f3_state, cleopatr, ROT0, "hack", "Cleopatra Fortune (World Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, driusgxh, dariusg, f3, f3, taito_f3_state, dariusg, ROT0, "hack", "Darius Gaiden (World Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, f3demo, 0, f3, f3, taito_f3_state, pbobble3, ROT0, "Antiriad", "Demo - Taito F3", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1995, gekiridh, gekiridn, f3, f3, taito_f3_state, gekirido, ROT270, "hack", "Gekirindan (World Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, gekiridoc, gekiridn, f3, f3, taito_f3_state, gekirido, ROT270, "Taito Corporation", "Gekirindan (Ver 2.3C 1995/09/21)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, landmakh, landmakr, f3, f3, taito_f3_state, landmakr, ROT0, "hack", "Land Maker (World Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, pbobl2xh, pbobble2, f3, f3, taito_f3_state, pbobbl2x, ROT0, "hack", "Puzzle Bobble 2X (World Hack)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/taito_l.cpp b/src/hbmame/drivers/taito_l.cpp
new file mode 100644
index 00000000000..c0bcd996105
--- /dev/null
+++ b/src/hbmame/drivers/taito_l.cpp
@@ -0,0 +1,72 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/taito_l.cpp"
+
+ROM_START( evilstonfr )
+ ROM_REGION( 0x40000, "maincpu", 0 )
+ ROM_LOAD( "c67-03fr.ic2", 0x00000, 0x20000, CRC(3fa7e884) SHA1(94716256c199b5f347bbe122d04adbab1a54b1ce) )
+ ROM_LOAD( "c67-04fr.ic6", 0x20000, 0x20000, CRC(8c43dc76) SHA1(ee395d55ee8e66c86e12f604774799ca7cfe1858) )
+
+ ROM_REGION( 0x80000, "audiocpu", 0 )
+ ROM_LOAD( "c67-05.ic22", 0x00000, 0x20000, CRC(94d3a642) SHA1(af20aa5bb60a45c05eb1deba23ba30e6640ca235) )
+
+ ROM_REGION( 0x100000, "gfx1", 0 )
+ ROM_LOAD( "c67-01.ic1", 0x00000, 0x80000, CRC(2f351bf4) SHA1(0fb37abf3413cd11baece1c9bbca5a51b0f28938) )
+ ROM_LOAD( "c67-02.ic5", 0x80000, 0x80000, CRC(eb4f895c) SHA1(2c902572fe5a5d4442e4dd29e8a85cb40c384140) )
+ROM_END
+
+ROM_START( sokoban )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "sokoban.ic10", 0x00000, 0x10000, CRC(5959ddb4) SHA1(73f206e19cdfd151426092aa3eea6f72093f360b) )
+
+ ROM_REGION( 0x20000, "gfx1", 0 )
+ ROM_LOAD16_BYTE( "sokoban.ic9", 0x00000, 0x10000, CRC(859e1ff4) SHA1(899b71bd0eb9923e88cf7142ed634b36b3e34c6c) )
+ ROM_LOAD16_BYTE( "sokoban.ic8", 0x00001, 0x10000, CRC(439a6670) SHA1(79144e3ba5205f5356f28d3b23ef32d3d4fca51c) )
+
+ // came with the zipfile but not used
+ ROM_REGION( 0x0200, "plds", 0 )
+ ROM_LOAD_OPTIONAL( "gal16v8-b86-04.bin", 0x0000, 0x0117, CRC(bf8c0ea0) SHA1(e0a00f1f6363fb79650202f90a56329990876d49) )
+ROM_END
+
+ROM_START( speccies )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "speccies.ic10", 0x00000, 0x55e9, CRC(29e126ac) SHA1(1e3e1379f964e0967d6ea5ef6a84741319b5108f) )
+
+ // came with the zipfile but not used
+ ROM_REGION( 0x0800, "mcu", 0 )
+ ROM_LOAD_OPTIONAL( "mc68705p3.ic4", 0x0000, 0x0800, CRC(085f68b4) SHA1(2dbc7e2c015220dc59ee1f1208540744e5b9b7cc) )
+
+ ROM_REGION( 0x20000, "gfx1", 0 )
+ ROM_LOAD16_BYTE( "speccies.ic9", 0x00000, 0x10000, CRC(11ed1528) SHA1(55f0b63bcbbbe4ad4d1041dca980b55ccb7a7aea) )
+ ROM_LOAD16_BYTE( "speccies.ic8", 0x00001, 0x10000, CRC(fcfeb89f) SHA1(fc0e811c72313b371d3a6530b27f9023ff201e31) )
+
+ // came with the zipfile but not used
+ ROM_REGION( 0x0200, "plds", 0 )
+ ROM_LOAD_OPTIONAL( "gal16v8-b86-04.bin", 0x0000, 0x0117, CRC(bf8c0ea0) SHA1(e0a00f1f6363fb79650202f90a56329990876d49) )
+ROM_END
+
+ROM_START( tldemo )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "tldemo.ic10", 0x00000, 0x56a4, CRC(fda3d418) SHA1(e0171cc1c035d1f800702c3766825b63f6acd291) )
+
+ ROM_REGION( 0x20000, "gfx1", 0 )
+ ROM_LOAD16_BYTE( "tldemo.ic9", 0x00000, 0x10000, CRC(792b8c11) SHA1(0592481b586bfca0f8f8eb096bee46690943596b) )
+ ROM_LOAD16_BYTE( "tldemo.ic8", 0x00001, 0x10000, CRC(59cfc5ab) SHA1(133084eeacdf978ed13db565f64d155c08ecaade) )
+ROM_END
+
+ROM_START( tldemo2 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "tldemo2.ic10", 0x00000, 0x7142, CRC(1292a22c) SHA1(e351ac5381f7d73de0087586c7fb28d9eccd72cb) )
+ // This one below is the old version, works fine in MAME but is buggy in real hardware.
+ //ROM_LOAD( "tldemo2.ic10", 0x00000, 0x6514, CRC(efd21b6b) SHA1(1c3bfb64dacfb5a1da55201cd4d4202694e06d37) )
+
+ ROM_REGION( 0x20000, "gfx1", 0 )
+ ROM_LOAD16_BYTE( "tldemo2.ic9", 0x00000, 0x10000, CRC(fcc75ddb) SHA1(e702480b84379e3106cb6d575d237a8f9701f49e) )
+ ROM_LOAD16_BYTE( "tldemo2.ic8", 0x00001, 0x10000, CRC(33e70f71) SHA1(5a0caa0912dd7d76dd7e788e21b4cc7f320156ad) )
+ROM_END
+
+GAME( 2007, evilstonfr, evilston, evilston, evilston, taitol_2cpu_state, 0, ROT270, "Arkatrad", "Evil Stone (French)", MACHINE_IMPERFECT_SOUND )
+GAME( 2015, sokoban, 0, plotting, plotting, taitol_1cpu_state, 0, ROT0, "cmonkey", "Sokoban LE", 0 )
+GAME( 2015, speccies, 0, plotting, plotting, taitol_1cpu_state, 0, ROT0, "Sokurah", "Speccies 2", 0 )
+GAME( 2014, tldemo, 0, plotting, plotting, taitol_1cpu_state, 0, ROT0, "cmonkey", "Demo - System Timed Cheat Tool", 0 )
+GAME( 2015, tldemo2, 0, plotting, plotting, taitol_1cpu_state, 0, ROT0, "cmonkey", "Demo - 256 colours", 0 )
diff --git a/src/hbmame/drivers/tecmo.cpp b/src/hbmame/drivers/tecmo.cpp
new file mode 100644
index 00000000000..8df56115e5c
--- /dev/null
+++ b/src/hbmame/drivers/tecmo.cpp
@@ -0,0 +1,73 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/tecmo.cpp"
+
+ROM_START( geminit ) // same as gemini except for 1c
+ ROM_REGION( 0x20000, "maincpu", 0 )
+ ROM_LOAD( "gw04-5s.rom", 0x00000, 0x10000, CRC(ff9de855) SHA1(34167af8456a081f68b338f10d4319ce1e703fd4) )
+ ROM_LOAD( "gw05-6s.rom", 0x10000, 0x10000, CRC(5a6947a9) SHA1(18b7aeb0f0e2c396bc759118dd7c45fd6070b804) )
+
+ ROM_REGION( 0x10000, "soundcpu", 0 )
+ ROM_LOAD( "gw03-5h.rom", 0x0000, 0x8000, CRC(9bc79596) SHA1(61de9ddd45140e8ed88173294bd26147e2abfa21) )
+
+ ROM_REGION( 0x08000, "gfx1", 0 )
+ ROM_LOAD( "gw02-3h.rom", 0x00000, 0x08000, CRC(7acc8d35) SHA1(05056e9f077e7571b314390b508c72d56ad0f43b) )
+
+ ROM_REGION( 0x40000, "gfx2", 0 )
+ ROM_LOAD( "geminit.1c", 0x00000, 0x10000, CRC(c47b1c97) SHA1(7d8680afe4bc76ac712ef2e86bb43bbe02c77199) )
+ ROM_LOAD( "gw07-1d.rom", 0x10000, 0x10000, CRC(da42637e) SHA1(9885c52823279f26871092c77bdbe027df08268f) )
+ ROM_LOAD( "gw08-1f.rom", 0x20000, 0x10000, CRC(0b4e8d70) SHA1(55069f3df1c8db83f306d46b8262fd23585e6013) )
+ ROM_LOAD( "gw09-1h.rom", 0x30000, 0x10000, CRC(b65c5e4c) SHA1(699e1a9e72b8d94edae7382ba119fe5da113514d) )
+
+ ROM_REGION( 0x40000, "gfx3", 0 )
+ ROM_LOAD( "gw10-1n.rom", 0x00000, 0x10000, CRC(5e84cd4f) SHA1(e85320291027a16619c87fc2365448367bda454a) )
+ ROM_LOAD( "gw11-2na.rom", 0x10000, 0x10000, CRC(08b458e1) SHA1(b3426faa57dca51dc053db44fa4968425d8bf3ee) )
+ ROM_LOAD( "gw12-2nb.rom", 0x20000, 0x10000, CRC(229c9714) SHA1(f4f47d6b379c973c22f9ae7d7bec7041cdf3f737) )
+ ROM_LOAD( "gw13-3n.rom", 0x30000, 0x10000, CRC(c5dfaf47) SHA1(c3202ca8c7f3c5c7dc9acdc09c1c894e168ef9fe) )
+
+ ROM_REGION( 0x40000, "gfx4", 0 )
+ ROM_LOAD( "gw14-1r.rom", 0x00000, 0x10000, CRC(9c10e5b5) SHA1(a81399b85d8f3ddca26883ec3535cb9044c35ada) )
+ ROM_LOAD( "gw15-2ra.rom", 0x10000, 0x10000, CRC(4cd18cfa) SHA1(c197a098a7c1e5220aad039383a40702fe7c4f21) )
+ ROM_LOAD( "gw16-2rb.rom", 0x20000, 0x10000, CRC(f911c7be) SHA1(3f49f6c4734f2b644d93c4a54249aae6ff080e1d) )
+ ROM_LOAD( "gw17-3r.rom", 0x30000, 0x10000, CRC(79a9ce25) SHA1(74e3917b8e7a920ceb2135d7ef8fb2f2c5176b21) )
+
+ ROM_REGION( 0x8000, "adpcm", 0 )
+ ROM_LOAD( "gw01-6a.rom", 0x0000, 0x8000, CRC(d78afa05) SHA1(b02a739b045f5cddf943ce59226ef234463eeebe) )
+ROM_END
+
+ROM_START( rygark ) // same as rygarj except for gfx1
+ ROM_REGION( 0x18000, "maincpu", 0 )
+ ROM_LOAD( "cpuj_5p.bin", 0x00000, 0x08000, CRC(b39698ba) SHA1(01a5a12a71973ad117b0bbd763e470f89c439e45) )
+ ROM_LOAD( "cpuj_5m.bin", 0x08000, 0x04000, CRC(3f180979) SHA1(c4c2e9f83b06b8677978800bfcc39f4ba3b344ab) )
+ ROM_LOAD( "cpuj_5j.bin", 0x10000, 0x08000, CRC(69e44e8f) SHA1(e979760a3582e64788c043adf7e475f0e1b75033) )
+
+ ROM_REGION( 0x10000, "soundcpu", 0 )
+ ROM_LOAD( "cpu_4h.bin", 0x0000, 0x2000, CRC(e4a2fa87) SHA1(ed58187dbbcf59358496a98ffd6c227a87d6c433) )
+
+ ROM_REGION( 0x08000, "gfx1", 0 )
+ ROM_LOAD( "rygark.8k", 0x00000, 0x08000, CRC(370bd8c0) SHA1(a4f140c8890608afdee4617ad1165b491cd103d8) )
+
+ ROM_REGION( 0x20000, "gfx2", 0 )
+ ROM_LOAD( "vid_6k.bin", 0x00000, 0x08000, CRC(aba6db9e) SHA1(43eb6f4f92afb5fbc11adc7e2ab04878ab56cb17) )
+ ROM_LOAD( "vid_6j.bin", 0x08000, 0x08000, CRC(ae1f2ed6) SHA1(6e6a33e665ba0884b7f57e9ad69d3f51e41d9e7b) )
+ ROM_LOAD( "vid_6h.bin", 0x10000, 0x08000, CRC(46d9e7df) SHA1(a24e0bea310a03636af704a0ad3f1a9cc4aafe12) )
+ ROM_LOAD( "vid_6g.bin", 0x18000, 0x08000, CRC(45839c9a) SHA1(eaee5767d8b0b62b991c089ef51b922e89850b79) )
+
+ ROM_REGION( 0x20000, "gfx3", 0 )
+ ROM_LOAD( "vid_6p.bin", 0x00000, 0x08000, CRC(9eae5f8e) SHA1(ed83b608ca57b9bf69fa866d9b8f55d16b7cff63) )
+ ROM_LOAD( "vid_6o.bin", 0x08000, 0x08000, CRC(5a10a396) SHA1(12ebed3952ff35a2c275cb27c915f82183048cd4) )
+ ROM_LOAD( "vid_6n.bin", 0x10000, 0x08000, CRC(7b12cf3f) SHA1(6b9d8cad6e15317df01bab0591fab09199ca6d40) )
+ ROM_LOAD( "vid_6l.bin", 0x18000, 0x08000, CRC(3cea7eaa) SHA1(1dd194d5672dfe71c2b27d2d7b76f5a611cff76f) )
+
+ ROM_REGION( 0x20000, "gfx4", 0 )
+ ROM_LOAD( "vid_6f.bin", 0x00000, 0x08000, CRC(9840edd8) SHA1(f19a1a1d932214037144c533ad07ed81256c34e7) )
+ ROM_LOAD( "vid_6e.bin", 0x08000, 0x08000, CRC(ff65e074) SHA1(513c1bad336ef5d871f15d6ba8943020f98d1f4a) )
+ ROM_LOAD( "vid_6c.bin", 0x10000, 0x08000, CRC(89868c85) SHA1(f21550f40e7a177e95c40f2726c651f85ca8edce) )
+ ROM_LOAD( "vid_6b.bin", 0x18000, 0x08000, CRC(35389a7b) SHA1(a887a89f9bbb5979bb589468d80efba1f243690b) )
+
+ ROM_REGION( 0x4000, "adpcm", 0 )
+ ROM_LOAD( "cpu_1f.bin", 0x0000, 0x4000, CRC(3cc98c5a) SHA1(ea1035be939ed1a994f3273b33412c85dda0973e) )
+ROM_END
+
+GAME( 2002, geminit, gemini, gemini, gemini, tecmo_state, gemini, ROT90, "Twisty", "Gemini Wing Hack", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, rygark, rygar, rygar, rygar, tecmo_state, rygar, ROT0, "Hack", "Rygar (Korean)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/tecmo16.cpp b/src/hbmame/drivers/tecmo16.cpp
new file mode 100644
index 00000000000..f624a90dd59
--- /dev/null
+++ b/src/hbmame/drivers/tecmo16.cpp
@@ -0,0 +1,32 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/tecmo16.cpp"
+
+
+
+ROM_START( fstarfrcc )
+ ROM_REGION( 0x80000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "fstarfc01.rom", 0x00000, 0x40000, CRC(28a0b648) SHA1(b9b1ad7a7823b0c4e96bf1a3c4ede0192a78fe38) )
+ ROM_LOAD16_BYTE( "fstarfc02.rom", 0x00001, 0x40000, CRC(cd49179f) SHA1(b1093a999c5c918cf399589fba6d175cd6899e6a) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "fstarf07.rom", 0x00000, 0x10000, CRC(e0ad5de1) SHA1(677237341e837061b6cc02200c0752964caed907) )
+
+ ROM_REGION( 0x20000, "gfx1", 0 )
+ ROM_LOAD( "fstarfc03.rom", 0x00000, 0x20000, CRC(4bedd245) SHA1(55a5dfac11dbd0c615025d25d24a5917a54955c7) )
+
+ ROM_REGION( 0x100000, "gfx2", 0 )
+ ROM_LOAD16_BYTE( "fstarf05.rom", 0x00000, 0x80000, CRC(77a281e7) SHA1(a87a90c2c856d45785cb56185b1a7dff3404b5cb) )
+ ROM_LOAD16_BYTE( "fstarf04.rom", 0x00001, 0x80000, CRC(398a920d) SHA1(eecc167803f48517348d68ce70f15e87eac204bb) )
+
+ ROM_REGION( 0x100000, "gfx3", 0 )
+ ROM_LOAD16_BYTE( "fstarf09.rom", 0x00000, 0x80000, CRC(d51341d2) SHA1(e46c319158046d407d4387cb2d8f0b6cfd7be576) )
+ ROM_LOAD16_BYTE( "fstarf06.rom", 0x00001, 0x80000, CRC(07e40e87) SHA1(22867e52a8267ae8ae0ff0dba6bb846cb3e1b63d) )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "fstarf08.rom", 0x00000, 0x20000, CRC(f0ad5693) SHA1(a0202801bb9f9c86175ca7989fbc9efa47183188) )
+ROM_END
+
+
+
+GAME( 1992, fstarfrcc, fstarfrc, fstarfrc, fstarfrc, tecmo16_state, 0, ROT90, "Tecmo", "Final Star Force (Chinese)", 0 )
diff --git a/src/hbmame/drivers/tehkanwc.cpp b/src/hbmame/drivers/tehkanwc.cpp
new file mode 100644
index 00000000000..90d858f8817
--- /dev/null
+++ b/src/hbmame/drivers/tehkanwc.cpp
@@ -0,0 +1,123 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/tehkanwc.cpp"
+
+ROM_START( ballonwc )
+ ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */
+ ROM_LOAD( "twc-1.bin", 0x0000, 0x4000, CRC(34d6d5ff) SHA1(72f4d408b8a7766d348f6a229d395e0c98215c40) )
+ ROM_LOAD( "twc-2.bin", 0x4000, 0x4000, CRC(7017a221) SHA1(4b4700af0a6ff64f976db369ba4b9d97cee1fd5f) )
+ ROM_LOAD( "twc-3.bin", 0x8000, 0x4000, CRC(8b662902) SHA1(13bcd4bf23e34dd7193545561e05bb2cb2c95f9b) )
+
+ ROM_REGION( 0x10000, "sub", 0 ) /* 64k for code */
+ ROM_LOAD( "twc-4.bin", 0x0000, 0x8000, CRC(70a9f883) SHA1(ace04359265271eb37512a89eb0217eb013aecb7) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for code */
+ ROM_LOAD( "twc-6.bin", 0x0000, 0x4000, CRC(e3112be2) SHA1(7859e51b4312dc5df01c88e1d97cf608abc7ca72) )
+
+ ROM_REGION( 0x04000, "gfx1", 0 )
+ ROM_LOAD( "twc-12.bin", 0x00000, 0x4000, CRC(a9e274f8) SHA1(02b46e1b149a856f0be74a23faaeb792935b66c7) ) /* fg tiles */
+
+ ROM_REGION( 0x10000, "gfx2", 0 )
+ ROM_LOAD( "blwc-8.bin", 0x00000, 0x8000, CRC(a0f75389) SHA1(60c5117430ac3471768efd0341ea533f49e8b1bd) ) /* sprites */
+ ROM_LOAD( "twc-7.bin", 0x08000, 0x8000, CRC(59faebe7) SHA1(85dad90928369601e039467d575750539410fcf6) )
+
+ ROM_REGION( 0x10000, "gfx3", 0 )
+ ROM_LOAD( "twc-11.bin", 0x00000, 0x8000, CRC(669389fc) SHA1(a93e8455060ce5242cb65f78e47b4840aa13ab13) ) /* bg tiles */
+ ROM_LOAD( "twc-9.bin", 0x08000, 0x8000, CRC(347ef108) SHA1(bb9c2f51d65f28655404e10c3be44d7ade98711b) )
+
+ ROM_REGION( 0x8000, "adpcm", 0 ) /* ADPCM samples */
+ ROM_LOAD( "twc-5.bin", 0x0000, 0x4000, CRC(444b5544) SHA1(0786d6d9ada7fe49c8ab9751b049095474d2e598) )
+ROM_END
+
+ROM_START( tehkangc )
+ ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */
+ ROM_LOAD( "twc-1.bin", 0x0000, 0x4000, CRC(34d6d5ff) SHA1(72f4d408b8a7766d348f6a229d395e0c98215c40) )
+ ROM_LOAD( "twc-2.bin", 0x4000, 0x4000, CRC(7017a221) SHA1(4b4700af0a6ff64f976db369ba4b9d97cee1fd5f) )
+ ROM_LOAD( "twc-3.bin", 0x8000, 0x4000, CRC(8b662902) SHA1(13bcd4bf23e34dd7193545561e05bb2cb2c95f9b) )
+
+ ROM_REGION( 0x10000, "sub", 0 ) /* 64k for code */
+ ROM_LOAD( "twc-4.bin", 0x0000, 0x8000, CRC(70a9f883) SHA1(ace04359265271eb37512a89eb0217eb013aecb7) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for code */
+ ROM_LOAD( "twc-6.bin", 0x0000, 0x4000, CRC(e3112be2) SHA1(7859e51b4312dc5df01c88e1d97cf608abc7ca72) )
+
+ ROM_REGION( 0x04000, "gfx1", 0 )
+ ROM_LOAD( "tgc-12.bin", 0x00000, 0x4000, CRC(dbf5cede) SHA1(ec2d21f62ab331ce64c7765f6b05a8c3c69e8ddd) ) /* fg tiles */
+
+ ROM_REGION( 0x10000, "gfx2", 0 )
+ ROM_LOAD( "tgc-8.bin", 0x00000, 0x8000, CRC(1177c8a0) SHA1(be0e0c763f2ac08ede546884e616073eb9a5517d) ) /* sprites */
+ ROM_LOAD( "tgc-7.bin", 0x08000, 0x8000, CRC(7f01d5a4) SHA1(4494ca82c9d16a4047591de7b588a8ab53ce5170) )
+
+ ROM_REGION( 0x10000, "gfx3", 0 )
+ ROM_LOAD( "twc-11.bin", 0x00000, 0x8000, CRC(669389fc) SHA1(a93e8455060ce5242cb65f78e47b4840aa13ab13) ) /* bg tiles */
+ ROM_LOAD( "twc-9.bin", 0x08000, 0x8000, CRC(347ef108) SHA1(bb9c2f51d65f28655404e10c3be44d7ade98711b) )
+
+ ROM_REGION( 0x8000, "adpcm", 0 ) /* ADPCM samples */
+ ROM_LOAD( "twc-5.bin", 0x0000, 0x4000, CRC(444b5544) SHA1(0786d6d9ada7fe49c8ab9751b049095474d2e598) )
+ROM_END
+
+ROM_START( tankwc )
+ ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */
+ ROM_LOAD( "twc-1.bin", 0x0000, 0x4000, CRC(34d6d5ff) SHA1(72f4d408b8a7766d348f6a229d395e0c98215c40) )
+ ROM_LOAD( "twc-2.bin", 0x4000, 0x4000, CRC(7017a221) SHA1(4b4700af0a6ff64f976db369ba4b9d97cee1fd5f) )
+ ROM_LOAD( "twc-3.bin", 0x8000, 0x4000, CRC(8b662902) SHA1(13bcd4bf23e34dd7193545561e05bb2cb2c95f9b) )
+
+ ROM_REGION( 0x10000, "sub", 0 ) /* 64k for code */
+ ROM_LOAD( "twc-4.bin", 0x0000, 0x8000, CRC(70a9f883) SHA1(ace04359265271eb37512a89eb0217eb013aecb7) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for code */
+ ROM_LOAD( "twc-6.bin", 0x0000, 0x4000, CRC(e3112be2) SHA1(7859e51b4312dc5df01c88e1d97cf608abc7ca72) )
+
+ ROM_REGION( 0x04000, "gfx1", 0 )
+ ROM_LOAD( "tkwc-12.bin", 0x00000, 0x4000, CRC(cf5e084a) SHA1(bba909898135467a8cbe8ca7ba7d14254ad52135) ) /* fg tiles */
+
+ ROM_REGION( 0x10000, "gfx2", 0 )
+ ROM_LOAD( "tkwc-8.bin", 0x00000, 0x8000, CRC(068210d1) SHA1(f2f21fa9452ba6d47ccdb4de3ddab833956d3fea) ) /* sprites */
+ ROM_LOAD( "tkwc-7.bin", 0x08000, 0x8000, CRC(8e7dca59) SHA1(4ae3d6c0faf99d16db5b3c49ae96aa87741f635c) )
+
+ ROM_REGION( 0x10000, "gfx3", 0 )
+ ROM_LOAD( "tkwc-11.bin", 0x00000, 0x8000, CRC(1f8536e3) SHA1(de44a066fc5862bac7de039053262ec167b70c35) ) /* bg tiles */
+ ROM_LOAD( "tkwc-9.bin", 0x08000, 0x8000, CRC(f88f52ed) SHA1(33fa29582f81f2da7dcb671ccb0c7121b95b545f) )
+
+ ROM_REGION( 0x8000, "adpcm", 0 ) /* ADPCM samples */
+ ROM_LOAD( "twc-5.bin", 0x0000, 0x4000, CRC(444b5544) SHA1(0786d6d9ada7fe49c8ab9751b049095474d2e598) )
+ROM_END
+
+ROM_START( twc_gr )
+ ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */
+ ROM_LOAD( "twc-1gr.bin", 0x0000, 0x4000, CRC(0686377f) SHA1(69c4d63c216e0b640ad514568a07c414a94bae7c) )
+ ROM_LOAD( "twc-2.bin", 0x4000, 0x4000, CRC(7017a221) SHA1(4b4700af0a6ff64f976db369ba4b9d97cee1fd5f) )
+ ROM_LOAD( "twc-3gr.bin", 0x8000, 0x4000, CRC(9a10118d) SHA1(1319e465620ab297bf70aed6eed426b68580a327) )
+
+ ROM_REGION( 0x10000, "sub", 0 ) /* 64k for code */
+ ROM_LOAD( "twc-4gr.bin", 0x0000, 0x8000, CRC(8a13d6ac) SHA1(cc9b7a0836d6b4ff5f037a165451f6cf2f967d21) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for code */
+ ROM_LOAD( "twc-6.bin", 0x0000, 0x4000, CRC(e3112be2) SHA1(7859e51b4312dc5df01c88e1d97cf608abc7ca72) )
+
+ ROM_REGION( 0x04000, "gfx1", 0 )
+ ROM_LOAD( "twc-12gr.bin", 0x00000, 0x4000, CRC(17808225) SHA1(259c0162c4eef4eceb889f4a1a142b541376e04d) ) /* fg tiles */
+
+ ROM_REGION( 0x10000, "gfx2", 0 )
+ ROM_LOAD( "twc-8.bin", 0x00000, 0x8000, CRC(055a5264) SHA1(fe294ba57c2c858952e2fab0be1b8859730846cb) ) /* sprites */
+ ROM_LOAD( "twc-7.bin", 0x08000, 0x8000, CRC(59faebe7) SHA1(85dad90928369601e039467d575750539410fcf6) )
+
+ ROM_REGION( 0x10000, "gfx3", 0 )
+ ROM_LOAD( "twc-11gr.bin", 0x00000, 0x8000, CRC(ceab1e34) SHA1(f803965ef8b69a5951656f890f0e411dfdeef7ab) ) /* bg tiles */
+ ROM_LOAD( "twc-9gr.bin", 0x08000, 0x8000, CRC(b120fbee) SHA1(a7012ec3ecbedfb3d04477bdda6f87f1fe819919) )
+
+ ROM_REGION( 0x8000, "adpcm", 0 ) /* ADPCM samples */
+ ROM_LOAD( "twc-5.bin", 0x0000, 0x4000, CRC(444b5544) SHA1(0786d6d9ada7fe49c8ab9751b049095474d2e598) )
+ROM_END
+
+GAME( 1985, ballonwc, tehkanwc, tehkanwc, tehkanwc, tehkanwc_state, 0, ROT0, "Grand Master Peter", "Ballon World Cup", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, tehkangc, tehkanwc, tehkanwc, tehkanwc, tehkanwc_state, 0, ROT0, "Grand Master Peter", "Tehkan Greek Cup", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, tankwc, tehkanwc, tehkanwc, tehkanwc, tehkanwc_state, 0, ROT0, "Kazzy", "Tank World Cup", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, twc_gr, tehkanwc, tehkanwc, tehkanwc, tehkanwc_state, 0, ROT0, "GreekRoms", "Tehkan World Cup (Greek)", MACHINE_SUPPORTS_SAVE )
+
+/* Notes on E602 - Tehkan World Cup (set 3 bootleg) (1986)
+ - Year is 1986 instead of 1985 - seems this is possibly the Spanish version
+ - Rom 1 is overdumped, after fixing this, noticed last byte changed from 27 to FF
+ - 4 bytes in rom 9 changed - this rom makes the gfx on the title screen
+ - Could not see any visual or other differences
+ - Therefore, game not added */
diff --git a/src/hbmame/drivers/tempest.cpp b/src/hbmame/drivers/tempest.cpp
new file mode 100644
index 00000000000..d1e6c0e2eeb
--- /dev/null
+++ b/src/hbmame/drivers/tempest.cpp
@@ -0,0 +1,782 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/tempest.cpp"
+
+
+/* most of these inputs are not verified */
+static INPUT_PORTS_START( aliensv )
+ PORT_START("IN0")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN3 )
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN1 )
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_TILT ) /* no tilt */
+ PORT_SERVICE( 0x10, IP_ACTIVE_LOW )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Diagnostic Step") PORT_CODE(KEYCODE_F1)
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER("avg", avg_tempest_device, done_r, NULL)
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, tempest_state,clock_r, NULL)
+
+ PORT_START("IN1/DSW0")
+ PORT_BIT( 0x0f, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, tempest_state,tempest_knob_r, NULL)
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Cabinet ) )
+ PORT_DIPSETTING( 0x10, DEF_STR( Upright ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) /* controls change but no flip */
+ 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("IN2")
+ PORT_DIPNAME( 0x03, 0x03, DEF_STR( Difficulty ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( Easy ) )
+ PORT_DIPSETTING( 0x03, "Medium1" )
+ PORT_DIPSETTING( 0x00, "Medium2" )
+ PORT_DIPSETTING( 0x01, DEF_STR( Hard ) )
+ PORT_DIPNAME( 0x04, 0x04, "Rating" )
+ PORT_DIPSETTING( 0x04, "1, 3, 5, 7, 9" )
+ PORT_DIPSETTING( 0x00, "tied to high score" )
+ PORT_BIT(0x18, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, tempest_state,tempest_buttons_r, NULL)
+ PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_START1 )
+ PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_START2 )
+ PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("DSW1")
+ PORT_DIPNAME( 0x03, 0x02, DEF_STR( Coinage ) ) /* coinage verified */
+ PORT_DIPSETTING( 0x03, DEF_STR( 2C_1C ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( 1C_1C ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( 1C_2C ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) )
+ PORT_DIPNAME( 0x0c, 0x00, "Right Coin" )
+ PORT_DIPSETTING( 0x00, "*1" )
+ PORT_DIPSETTING( 0x04, "*4" )
+ PORT_DIPSETTING( 0x08, "*5" )
+ PORT_DIPSETTING( 0x0c, "*6" )
+ PORT_DIPNAME( 0x10, 0x00, "Left Coin" )
+ PORT_DIPSETTING( 0x00, "*1" )
+ PORT_DIPSETTING( 0x10, "*2" )
+ PORT_DIPNAME( 0xe0, 0x00, "Bonus Coins" )
+ PORT_DIPSETTING( 0x00, DEF_STR( None ) )
+ PORT_DIPSETTING( 0x80, "1 each 5" )
+ PORT_DIPSETTING( 0x40, "1 each 4 (+Demo)" )
+ PORT_DIPSETTING( 0xa0, "1 each 3" )
+ PORT_DIPSETTING( 0x60, "2 each 4 (+Demo)" )
+ PORT_DIPSETTING( 0x20, "1 each 2" )
+ PORT_DIPSETTING( 0xc0, "Freeze Mode" )
+ PORT_DIPSETTING( 0xe0, "Freeze Mode" )
+
+ PORT_START("DSW2") /* DSW2 all dips verified */
+ PORT_DIPNAME( 0x01, 0x00, "Minimum" )
+ PORT_DIPSETTING( 0x00, "1 Credit" )
+ PORT_DIPSETTING( 0x01, "2 Credit" )
+ PORT_DIPNAME( 0x0c, 0x04, DEF_STR( Lives ) )
+ PORT_DIPSETTING( 0x00, "2" )
+ PORT_DIPSETTING( 0x04, "3" )
+ PORT_DIPSETTING( 0x08, "4" )
+ PORT_DIPSETTING( 0x0c, "5" )
+ PORT_DIPNAME( 0x30, 0x00, DEF_STR( Language ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( English ) )
+ PORT_DIPSETTING( 0x10, DEF_STR( French ) )
+ PORT_DIPSETTING( 0x20, DEF_STR( German ) )
+ PORT_DIPSETTING( 0x30, DEF_STR( Spanish ) )
+ PORT_DIPNAME( 0x02, 0x00, DEF_STR( Bonus_Life ) )
+ PORT_DIPSETTING( 0x00, "10000" )
+ PORT_DIPSETTING( 0x02, "20000" )
+ PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( On ) )
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED ) // if high it freezes
+
+ PORT_START(TEMPEST_KNOB_P1_TAG )
+ /* This is the Tempest spinner input. It only uses 4 bits. */
+ PORT_BIT( 0x0f, 0x00, IPT_DIAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(20) PORT_PLAYER(1) PORT_FULL_TURN_COUNT(72)
+ PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED )
+
+ PORT_START(TEMPEST_KNOB_P2_TAG )
+ /* This is the Tempest spinner input. It only uses 4 bits. */
+ PORT_BIT( 0x0f, 0x00, IPT_DIAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(20) PORT_PLAYER(2) PORT_FULL_TURN_COUNT(72)
+ PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED )
+
+ PORT_START(TEMPEST_BUTTONS_P1_TAG )
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
+ PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNUSED )
+
+ PORT_START(TEMPEST_BUTTONS_P2_TAG )
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
+ PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNUSED )
+INPUT_PORTS_END
+
+ROM_START( temped )
+ ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */
+ ROM_LOAD( "136002.113", 0x9000, 0x0800, CRC(65d61fe7) SHA1(38a1e8a8f65b7887cf3e190269fe4ce2c6f818aa) )
+ ROM_LOAD( "136002-114.e1", 0x9800, 0x0800, CRC(11077375) SHA1(ed8ff0ca969da6672a7683b93d4fcf2935a0d903) )
+ ROM_LOAD( "136002.115", 0xa000, 0x0800, CRC(f3e2827a) SHA1(bd04fcfbbba995e08c3144c1474fcddaaeb1c700) )
+ ROM_LOAD( "136002.316", 0xa800, 0x0800, CRC(aeb0f7e9) SHA1(a5cc25015b98692673cfc1c7c2e9634efd750870) )
+ ROM_LOAD( "136002.217", 0xb000, 0x0800, CRC(ef2eb645) SHA1(b1a2c969e8897e335d5354de6ae04a65d4b2a1e4) )
+ ROM_LOAD( "temped.118", 0xb800, 0x0800, CRC(4825ee42) SHA1(7082c4a2f4b945c004b3b17166e0e58484fda3d2) )
+ ROM_LOAD( "136002.119", 0xc000, 0x0800, CRC(a4de050f) SHA1(ea302e43a313a5a18115e74ddbaaedde0fbecda7) )
+ ROM_LOAD( "136002.120", 0xc800, 0x0800, CRC(35619648) SHA1(48f1e8bed7ec6afa0b4c549a30e5ec331c071e40) )
+ ROM_LOAD( "136002.121", 0xd000, 0x0800, CRC(73d38e47) SHA1(9980606376a79ba94f8e2a325871a6c8d10d83fc) )
+ ROM_LOAD( "136002.222", 0xd800, 0x0800, CRC(707bd5c3) SHA1(2f0af6fb7154c244c794f7247e5c16a1e06ddf7d) )
+ ROM_RELOAD( 0xf800, 0x0800 ) /* for reset/interrupt vectors */
+ /* Vector ROM */
+ ROM_LOAD( "136002-123.np3", 0x3000, 0x0800, CRC(29f7e937) SHA1(686c8b9b8901262e743497cee7f2f7dd5cb3af7e) ) /* May be labeled "136002-111", same data */
+ ROM_LOAD( "136002-124.r3", 0x3800, 0x0800, CRC(c16ec351) SHA1(a30a3662c740810c0f20e3712679606921b8ca06) ) /* May be labeled "136002-112", same data */
+
+ /* AVG PROM */
+ ROM_REGION( 0x100, "user1", 0 )
+ ROM_LOAD( "136002-125.d7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
+
+ /* Mathbox PROMs */
+ ROM_REGION( 0x20, "user2", 0 )
+ ROM_LOAD( "136002.126", 0x0000, 0x0020, CRC(8b04f921) SHA1(317b3397482f13b2d1bc21f296d3b3f9a118787b) )
+
+ ROM_REGION32_BE( 0x400, "user3", 0 )
+ ROMX_LOAD( "136002.132", 0, 0x100, CRC(2af82e87) SHA1(3816835a9ccf99a76d246adf204989d9261bb065), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.131", 0, 0x100, CRC(b31f6e24) SHA1(ce5f8ca34d06a5cfa0076b47400e61e0130ffe74), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ ROMX_LOAD( "136002.130", 1, 0x100, CRC(8119b847) SHA1(c4fbaedd4ce1ad6a4128cbe902b297743edb606a), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.129", 1, 0x100, CRC(09f5a4d5) SHA1(d6f2ac07ca9ee385c08831098b0dcaf56808993b), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ ROMX_LOAD( "136002.128", 2, 0x100, CRC(823b61ae) SHA1(d99a839874b45f64e14dae92a036e47a53705d16), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.127", 2, 0x100, CRC(276eadd5) SHA1(55718cd8ec4bcf75076d5ef0ee1ed2551e19d9ba), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ROM_END
+
+ROM_START( tempestm )
+ ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */
+ ROM_LOAD( "136002.113", 0x9000, 0x0800, CRC(65d61fe7) SHA1(38a1e8a8f65b7887cf3e190269fe4ce2c6f818aa) )
+ ROM_LOAD( "136002-114.e1", 0x9800, 0x0800, CRC(11077375) SHA1(ed8ff0ca969da6672a7683b93d4fcf2935a0d903) )
+ ROM_LOAD( "136002.115", 0xa000, 0x0800, CRC(f3e2827a) SHA1(bd04fcfbbba995e08c3144c1474fcddaaeb1c700) )
+ ROM_LOAD( "136002.316", 0xa800, 0x0800, CRC(aeb0f7e9) SHA1(a5cc25015b98692673cfc1c7c2e9634efd750870) )
+ ROM_LOAD( "136002.217", 0xb000, 0x0800, CRC(ef2eb645) SHA1(b1a2c969e8897e335d5354de6ae04a65d4b2a1e4) )
+ ROM_LOAD( "tempestm.118", 0xb800, 0x0800, CRC(b5e00840) SHA1(912e98b6766143ff5a1bc09c4d9685379408ee85) )
+ ROM_LOAD( "tempestm.119", 0xc000, 0x0800, CRC(ed4f2132) SHA1(b7deb31b23c28d0e084772bbed80a1c5997eac12) )
+ ROM_LOAD( "136002.120", 0xc800, 0x0800, CRC(35619648) SHA1(48f1e8bed7ec6afa0b4c549a30e5ec331c071e40) )
+ ROM_LOAD( "136002.121", 0xd000, 0x0800, CRC(73d38e47) SHA1(9980606376a79ba94f8e2a325871a6c8d10d83fc) )
+ ROM_LOAD( "136002.222", 0xd800, 0x0800, CRC(707bd5c3) SHA1(2f0af6fb7154c244c794f7247e5c16a1e06ddf7d) )
+ ROM_RELOAD( 0xf800, 0x0800 ) /* for reset/interrupt vectors */
+ /* Vector ROM */
+ ROM_LOAD( "136002-123.np3", 0x3000, 0x0800, CRC(29f7e937) SHA1(686c8b9b8901262e743497cee7f2f7dd5cb3af7e) ) /* May be labeled "136002-111", same data */
+ ROM_LOAD( "136002-124.r3", 0x3800, 0x0800, CRC(c16ec351) SHA1(a30a3662c740810c0f20e3712679606921b8ca06) ) /* May be labeled "136002-112", same data */
+
+ /* AVG PROM */
+ ROM_REGION( 0x100, "user1", 0 )
+ ROM_LOAD( "136002-125.d7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
+
+ /* Mathbox PROMs */
+ ROM_REGION( 0x20, "user2", 0 )
+ ROM_LOAD( "136002.126", 0x0000, 0x0020, CRC(8b04f921) SHA1(317b3397482f13b2d1bc21f296d3b3f9a118787b) )
+
+ ROM_REGION32_BE( 0x400, "user3", 0 )
+ ROMX_LOAD( "136002.132", 0, 0x100, CRC(2af82e87) SHA1(3816835a9ccf99a76d246adf204989d9261bb065), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.131", 0, 0x100, CRC(b31f6e24) SHA1(ce5f8ca34d06a5cfa0076b47400e61e0130ffe74), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ ROMX_LOAD( "136002.130", 1, 0x100, CRC(8119b847) SHA1(c4fbaedd4ce1ad6a4128cbe902b297743edb606a), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.129", 1, 0x100, CRC(09f5a4d5) SHA1(d6f2ac07ca9ee385c08831098b0dcaf56808993b), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ ROMX_LOAD( "136002.128", 2, 0x100, CRC(823b61ae) SHA1(d99a839874b45f64e14dae92a036e47a53705d16), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.127", 2, 0x100, CRC(276eadd5) SHA1(55718cd8ec4bcf75076d5ef0ee1ed2551e19d9ba), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ROM_END
+
+ROM_START( tempall ) /* rev 3 */
+ ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */
+ ROM_LOAD( "tempall.113", 0x9000, 0x0800, CRC(a9000137) SHA1(1dfb23f5d47e49923c681d4483d744795d589af0) )
+ ROM_LOAD( "136002-114.e1", 0x9800, 0x0800, CRC(11077375) SHA1(ed8ff0ca969da6672a7683b93d4fcf2935a0d903) )
+ ROM_LOAD( "136002.115", 0xa000, 0x0800, CRC(f3e2827a) SHA1(bd04fcfbbba995e08c3144c1474fcddaaeb1c700) )
+ ROM_LOAD( "136002.316", 0xa800, 0x0800, CRC(aeb0f7e9) SHA1(a5cc25015b98692673cfc1c7c2e9634efd750870) )
+ ROM_LOAD( "136002.217", 0xb000, 0x0800, CRC(ef2eb645) SHA1(b1a2c969e8897e335d5354de6ae04a65d4b2a1e4) )
+ ROM_LOAD( "tempall.118", 0xb800, 0x0800, CRC(beb352ab) SHA1(f213166d3970e0bd0f29d8dea8d6afa6990cce38) )
+ ROM_LOAD( "136002.119", 0xc000, 0x0800, CRC(a4de050f) SHA1(ea302e43a313a5a18115e74ddbaaedde0fbecda7) )
+ ROM_LOAD( "136002.120", 0xc800, 0x0800, CRC(35619648) SHA1(48f1e8bed7ec6afa0b4c549a30e5ec331c071e40) )
+ ROM_LOAD( "136002.121", 0xd000, 0x0800, CRC(73d38e47) SHA1(9980606376a79ba94f8e2a325871a6c8d10d83fc) )
+ ROM_LOAD( "136002.222", 0xd800, 0x0800, CRC(707bd5c3) SHA1(2f0af6fb7154c244c794f7247e5c16a1e06ddf7d) )
+ ROM_RELOAD( 0xf800, 0x0800 ) /* for reset/interrupt vectors */
+ /* Vector ROM */
+ ROM_LOAD( "136002-123.np3", 0x3000, 0x0800, CRC(29f7e937) SHA1(686c8b9b8901262e743497cee7f2f7dd5cb3af7e) ) /* May be labeled "136002-111", same data */
+ ROM_LOAD( "136002-124.r3", 0x3800, 0x0800, CRC(c16ec351) SHA1(a30a3662c740810c0f20e3712679606921b8ca06) ) /* May be labeled "136002-112", same data */
+
+ /* AVG PROM */
+ ROM_REGION( 0x100, "user1", 0 )
+ ROM_LOAD( "136002-125.d7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
+
+ /* Mathbox PROMs */
+ ROM_REGION( 0x20, "user2", 0 )
+ ROM_LOAD( "136002.126", 0x0000, 0x0020, CRC(8b04f921) SHA1(317b3397482f13b2d1bc21f296d3b3f9a118787b) )
+
+ ROM_REGION32_BE( 0x400, "user3", 0 )
+ ROMX_LOAD( "136002.132", 0, 0x100, CRC(2af82e87) SHA1(3816835a9ccf99a76d246adf204989d9261bb065), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.131", 0, 0x100, CRC(b31f6e24) SHA1(ce5f8ca34d06a5cfa0076b47400e61e0130ffe74), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ ROMX_LOAD( "136002.130", 1, 0x100, CRC(8119b847) SHA1(c4fbaedd4ce1ad6a4128cbe902b297743edb606a), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.129", 1, 0x100, CRC(09f5a4d5) SHA1(d6f2ac07ca9ee385c08831098b0dcaf56808993b), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ ROMX_LOAD( "136002.128", 2, 0x100, CRC(823b61ae) SHA1(d99a839874b45f64e14dae92a036e47a53705d16), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.127", 2, 0x100, CRC(276eadd5) SHA1(55718cd8ec4bcf75076d5ef0ee1ed2551e19d9ba), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ROM_END
+
+ROM_START( temptwst ) /* rev 3 */
+ ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */
+ ROM_LOAD( "tempall.113", 0x9000, 0x0800, CRC(a9000137) SHA1(1dfb23f5d47e49923c681d4483d744795d589af0) )
+ ROM_LOAD( "136002-114.e1", 0x9800, 0x0800, CRC(11077375) SHA1(ed8ff0ca969da6672a7683b93d4fcf2935a0d903) )
+ ROM_LOAD( "136002.115", 0xa000, 0x0800, CRC(f3e2827a) SHA1(bd04fcfbbba995e08c3144c1474fcddaaeb1c700) )
+ ROM_LOAD( "136002.316", 0xa800, 0x0800, CRC(aeb0f7e9) SHA1(a5cc25015b98692673cfc1c7c2e9634efd750870) )
+ ROM_LOAD( "136002.217", 0xb000, 0x0800, CRC(ef2eb645) SHA1(b1a2c969e8897e335d5354de6ae04a65d4b2a1e4) )
+ ROM_LOAD( "temptwst.118", 0xb800, 0x0800, CRC(f30afe2d) SHA1(b83b0fd7c8f4c51e2c2dc1f516212ce53fa8b240) )
+ ROM_LOAD( "temptwst.119", 0xc000, 0x0800, CRC(571b1799) SHA1(d6e5615032bcae0018e388d7e7d8a00c42ff0c5a) )
+ ROM_LOAD( "136002.120", 0xc800, 0x0800, CRC(35619648) SHA1(48f1e8bed7ec6afa0b4c549a30e5ec331c071e40) )
+ ROM_LOAD( "temptwst.121", 0xd000, 0x0800, CRC(67619e6e) SHA1(4cf91abc535cc8c5de7e5f30fabe0876a5182b39) )
+ ROM_LOAD( "136002.222", 0xd800, 0x0800, CRC(707bd5c3) SHA1(2f0af6fb7154c244c794f7247e5c16a1e06ddf7d) )
+ ROM_RELOAD( 0xf800, 0x0800 ) /* for reset/interrupt vectors */
+ /* Vector ROM */
+ ROM_LOAD( "136002-123.np3", 0x3000, 0x0800, CRC(29f7e937) SHA1(686c8b9b8901262e743497cee7f2f7dd5cb3af7e) ) /* May be labeled "136002-111", same data */
+ ROM_LOAD( "136002-124.r3", 0x3800, 0x0800, CRC(c16ec351) SHA1(a30a3662c740810c0f20e3712679606921b8ca06) ) /* May be labeled "136002-112", same data */
+
+ /* AVG PROM */
+ ROM_REGION( 0x100, "user1", 0 )
+ ROM_LOAD( "136002-125.d7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
+
+ /* Mathbox PROMs */
+ ROM_REGION( 0x20, "user2", 0 )
+ ROM_LOAD( "136002.126", 0x0000, 0x0020, CRC(8b04f921) SHA1(317b3397482f13b2d1bc21f296d3b3f9a118787b) )
+
+ ROM_REGION32_BE( 0x400, "user3", 0 )
+ ROMX_LOAD( "136002.132", 0, 0x100, CRC(2af82e87) SHA1(3816835a9ccf99a76d246adf204989d9261bb065), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.131", 0, 0x100, CRC(b31f6e24) SHA1(ce5f8ca34d06a5cfa0076b47400e61e0130ffe74), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ ROMX_LOAD( "136002.130", 1, 0x100, CRC(8119b847) SHA1(c4fbaedd4ce1ad6a4128cbe902b297743edb606a), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.129", 1, 0x100, CRC(09f5a4d5) SHA1(d6f2ac07ca9ee385c08831098b0dcaf56808993b), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ ROMX_LOAD( "136002.128", 2, 0x100, CRC(823b61ae) SHA1(d99a839874b45f64e14dae92a036e47a53705d16), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.127", 2, 0x100, CRC(276eadd5) SHA1(55718cd8ec4bcf75076d5ef0ee1ed2551e19d9ba), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ROM_END
+
+ROM_START( tmptwsta ) /* rev 3 */
+ ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */
+ ROM_LOAD( "tempall.113", 0x9000, 0x0800, CRC(a9000137) SHA1(1dfb23f5d47e49923c681d4483d744795d589af0) )
+ ROM_LOAD( "136002-114.e1", 0x9800, 0x0800, CRC(11077375) SHA1(ed8ff0ca969da6672a7683b93d4fcf2935a0d903) )
+ ROM_LOAD( "136002.115", 0xa000, 0x0800, CRC(f3e2827a) SHA1(bd04fcfbbba995e08c3144c1474fcddaaeb1c700) )
+ ROM_LOAD( "136002.316", 0xa800, 0x0800, CRC(aeb0f7e9) SHA1(a5cc25015b98692673cfc1c7c2e9634efd750870) )
+ ROM_LOAD( "136002.217", 0xb000, 0x0800, CRC(ef2eb645) SHA1(b1a2c969e8897e335d5354de6ae04a65d4b2a1e4) )
+ ROM_LOAD( "tmptwsta.118", 0xb800, 0x0800, CRC(a45add57) SHA1(79748a415dbc0a5f600d38ac098bd2d63a4f9ecc) )
+ ROM_LOAD( "temptwst.119", 0xc000, 0x0800, CRC(571b1799) SHA1(d6e5615032bcae0018e388d7e7d8a00c42ff0c5a) )
+ ROM_LOAD( "136002.120", 0xc800, 0x0800, CRC(35619648) SHA1(48f1e8bed7ec6afa0b4c549a30e5ec331c071e40) )
+ ROM_LOAD( "temptwst.121", 0xd000, 0x0800, CRC(67619e6e) SHA1(4cf91abc535cc8c5de7e5f30fabe0876a5182b39) )
+ ROM_LOAD( "136002.222", 0xd800, 0x0800, CRC(707bd5c3) SHA1(2f0af6fb7154c244c794f7247e5c16a1e06ddf7d) )
+ ROM_RELOAD( 0xf800, 0x0800 ) /* for reset/interrupt vectors */
+ /* Vector ROM */
+ ROM_LOAD( "136002-123.np3", 0x3000, 0x0800, CRC(29f7e937) SHA1(686c8b9b8901262e743497cee7f2f7dd5cb3af7e) ) /* May be labeled "136002-111", same data */
+ ROM_LOAD( "136002-124.r3", 0x3800, 0x0800, CRC(c16ec351) SHA1(a30a3662c740810c0f20e3712679606921b8ca06) ) /* May be labeled "136002-112", same data */
+
+ /* AVG PROM */
+ ROM_REGION( 0x100, "user1", 0 )
+ ROM_LOAD( "136002-125.d7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
+
+ /* Mathbox PROMs */
+ ROM_REGION( 0x20, "user2", 0 )
+ ROM_LOAD( "136002.126", 0x0000, 0x0020, CRC(8b04f921) SHA1(317b3397482f13b2d1bc21f296d3b3f9a118787b) )
+
+ ROM_REGION32_BE( 0x400, "user3", 0 )
+ ROMX_LOAD( "136002.132", 0, 0x100, CRC(2af82e87) SHA1(3816835a9ccf99a76d246adf204989d9261bb065), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.131", 0, 0x100, CRC(b31f6e24) SHA1(ce5f8ca34d06a5cfa0076b47400e61e0130ffe74), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ ROMX_LOAD( "136002.130", 1, 0x100, CRC(8119b847) SHA1(c4fbaedd4ce1ad6a4128cbe902b297743edb606a), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.129", 1, 0x100, CRC(09f5a4d5) SHA1(d6f2ac07ca9ee385c08831098b0dcaf56808993b), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ ROMX_LOAD( "136002.128", 2, 0x100, CRC(823b61ae) SHA1(d99a839874b45f64e14dae92a036e47a53705d16), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.127", 2, 0x100, CRC(276eadd5) SHA1(55718cd8ec4bcf75076d5ef0ee1ed2551e19d9ba), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ROM_END
+
+ROM_START( tmptwst2 ) /* rev 3 */
+ ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */
+ ROM_LOAD( "tempall.113", 0x9000, 0x0800, CRC(a9000137) SHA1(1dfb23f5d47e49923c681d4483d744795d589af0) )
+ ROM_LOAD( "136002-114.e1", 0x9800, 0x0800, CRC(11077375) SHA1(ed8ff0ca969da6672a7683b93d4fcf2935a0d903) )
+ ROM_LOAD( "136002.115", 0xa000, 0x0800, CRC(f3e2827a) SHA1(bd04fcfbbba995e08c3144c1474fcddaaeb1c700) )
+ ROM_LOAD( "136002.316", 0xa800, 0x0800, CRC(aeb0f7e9) SHA1(a5cc25015b98692673cfc1c7c2e9634efd750870) )
+ ROM_LOAD( "136002.217", 0xb000, 0x0800, CRC(ef2eb645) SHA1(b1a2c969e8897e335d5354de6ae04a65d4b2a1e4) )
+ ROM_LOAD( "tmptwst2.118", 0xb800, 0x0800, CRC(1c6827cb) SHA1(d5a555f6ad59630e6d33c4bacad80ee429349e59) )
+ ROM_LOAD( "temptwst.119", 0xc000, 0x0800, CRC(571b1799) SHA1(d6e5615032bcae0018e388d7e7d8a00c42ff0c5a) )
+ ROM_LOAD( "136002.120", 0xc800, 0x0800, CRC(35619648) SHA1(48f1e8bed7ec6afa0b4c549a30e5ec331c071e40) )
+ ROM_LOAD( "tmptwst2.121", 0xd000, 0x0800, CRC(c1bc4a69) SHA1(a60491fd7d6715118ed0d59dac0064c4263e15c6) )
+ ROM_LOAD( "136002.222", 0xd800, 0x0800, CRC(707bd5c3) SHA1(2f0af6fb7154c244c794f7247e5c16a1e06ddf7d) )
+ ROM_RELOAD( 0xf800, 0x0800 ) /* for reset/interrupt vectors */
+ /* Vector ROM */
+ ROM_LOAD( "136002-123.np3", 0x3000, 0x0800, CRC(29f7e937) SHA1(686c8b9b8901262e743497cee7f2f7dd5cb3af7e) ) /* May be labeled "136002-111", same data */
+ ROM_LOAD( "136002-124.r3", 0x3800, 0x0800, CRC(c16ec351) SHA1(a30a3662c740810c0f20e3712679606921b8ca06) ) /* May be labeled "136002-112", same data */
+
+ /* AVG PROM */
+ ROM_REGION( 0x100, "user1", 0 )
+ ROM_LOAD( "136002-125.d7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
+
+ /* Mathbox PROMs */
+ ROM_REGION( 0x20, "user2", 0 )
+ ROM_LOAD( "136002.126", 0x0000, 0x0020, CRC(8b04f921) SHA1(317b3397482f13b2d1bc21f296d3b3f9a118787b) )
+
+ ROM_REGION32_BE( 0x400, "user3", 0 )
+ ROMX_LOAD( "136002.132", 0, 0x100, CRC(2af82e87) SHA1(3816835a9ccf99a76d246adf204989d9261bb065), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.131", 0, 0x100, CRC(b31f6e24) SHA1(ce5f8ca34d06a5cfa0076b47400e61e0130ffe74), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ ROMX_LOAD( "136002.130", 1, 0x100, CRC(8119b847) SHA1(c4fbaedd4ce1ad6a4128cbe902b297743edb606a), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.129", 1, 0x100, CRC(09f5a4d5) SHA1(d6f2ac07ca9ee385c08831098b0dcaf56808993b), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ ROMX_LOAD( "136002.128", 2, 0x100, CRC(823b61ae) SHA1(d99a839874b45f64e14dae92a036e47a53705d16), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.127", 2, 0x100, CRC(276eadd5) SHA1(55718cd8ec4bcf75076d5ef0ee1ed2551e19d9ba), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ROM_END
+
+ROM_START( tmptwst3 ) /* rev 3 */
+ ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */
+ ROM_LOAD( "tempall.113", 0x9000, 0x0800, CRC(a9000137) SHA1(1dfb23f5d47e49923c681d4483d744795d589af0) )
+ ROM_LOAD( "136002-114.e1", 0x9800, 0x0800, CRC(11077375) SHA1(ed8ff0ca969da6672a7683b93d4fcf2935a0d903) )
+ ROM_LOAD( "136002.115", 0xa000, 0x0800, CRC(f3e2827a) SHA1(bd04fcfbbba995e08c3144c1474fcddaaeb1c700) )
+ ROM_LOAD( "136002.316", 0xa800, 0x0800, CRC(aeb0f7e9) SHA1(a5cc25015b98692673cfc1c7c2e9634efd750870) )
+ ROM_LOAD( "136002.217", 0xb000, 0x0800, CRC(ef2eb645) SHA1(b1a2c969e8897e335d5354de6ae04a65d4b2a1e4) )
+ ROM_LOAD( "tmptwst3.118", 0xb800, 0x0800, CRC(c8e7693f) SHA1(18914841f3dc685d9a72bc2aaae940f6b6711e27) )
+ ROM_LOAD( "temptwst.119", 0xc000, 0x0800, CRC(571b1799) SHA1(d6e5615032bcae0018e388d7e7d8a00c42ff0c5a) )
+ ROM_LOAD( "136002.120", 0xc800, 0x0800, CRC(35619648) SHA1(48f1e8bed7ec6afa0b4c549a30e5ec331c071e40) )
+ ROM_LOAD( "tmptwst3.121", 0xd000, 0x0800, CRC(194b34a9) SHA1(86c34dcccc2054cad4f8c175c4db4d3856172f66) )
+ ROM_LOAD( "136002.222", 0xd800, 0x0800, CRC(707bd5c3) SHA1(2f0af6fb7154c244c794f7247e5c16a1e06ddf7d) )
+ ROM_RELOAD( 0xf800, 0x0800 ) /* for reset/interrupt vectors */
+ /* Vector ROM */
+ ROM_LOAD( "136002-123.np3", 0x3000, 0x0800, CRC(29f7e937) SHA1(686c8b9b8901262e743497cee7f2f7dd5cb3af7e) ) /* May be labeled "136002-111", same data */
+ ROM_LOAD( "136002-124.r3", 0x3800, 0x0800, CRC(c16ec351) SHA1(a30a3662c740810c0f20e3712679606921b8ca06) ) /* May be labeled "136002-112", same data */
+
+ /* AVG PROM */
+ ROM_REGION( 0x100, "user1", 0 )
+ ROM_LOAD( "136002-125.d7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
+
+ /* Mathbox PROMs */
+ ROM_REGION( 0x20, "user2", 0 )
+ ROM_LOAD( "136002.126", 0x0000, 0x0020, CRC(8b04f921) SHA1(317b3397482f13b2d1bc21f296d3b3f9a118787b) )
+
+ ROM_REGION32_BE( 0x400, "user3", 0 )
+ ROMX_LOAD( "136002.132", 0, 0x100, CRC(2af82e87) SHA1(3816835a9ccf99a76d246adf204989d9261bb065), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.131", 0, 0x100, CRC(b31f6e24) SHA1(ce5f8ca34d06a5cfa0076b47400e61e0130ffe74), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ ROMX_LOAD( "136002.130", 1, 0x100, CRC(8119b847) SHA1(c4fbaedd4ce1ad6a4128cbe902b297743edb606a), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.129", 1, 0x100, CRC(09f5a4d5) SHA1(d6f2ac07ca9ee385c08831098b0dcaf56808993b), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ ROMX_LOAD( "136002.128", 2, 0x100, CRC(823b61ae) SHA1(d99a839874b45f64e14dae92a036e47a53705d16), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.127", 2, 0x100, CRC(276eadd5) SHA1(55718cd8ec4bcf75076d5ef0ee1ed2551e19d9ba), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ROM_END
+
+ROM_START( tmptwst4 ) /* rev 3 */
+ ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */
+ ROM_LOAD( "tempall.113", 0x9000, 0x0800, CRC(a9000137) SHA1(1dfb23f5d47e49923c681d4483d744795d589af0) )
+ ROM_LOAD( "136002-114.e1", 0x9800, 0x0800, CRC(11077375) SHA1(ed8ff0ca969da6672a7683b93d4fcf2935a0d903) )
+ ROM_LOAD( "136002.115", 0xa000, 0x0800, CRC(f3e2827a) SHA1(bd04fcfbbba995e08c3144c1474fcddaaeb1c700) )
+ ROM_LOAD( "136002.316", 0xa800, 0x0800, CRC(aeb0f7e9) SHA1(a5cc25015b98692673cfc1c7c2e9634efd750870) )
+ ROM_LOAD( "136002.217", 0xb000, 0x0800, CRC(ef2eb645) SHA1(b1a2c969e8897e335d5354de6ae04a65d4b2a1e4) )
+ ROM_LOAD( "tmptwst4.118", 0xb800, 0x0800, CRC(2b6fcca4) SHA1(adfd65c94c46235ba47017e726a7b3c554e8e07a) )
+ ROM_LOAD( "temptwst.119", 0xc000, 0x0800, CRC(571b1799) SHA1(d6e5615032bcae0018e388d7e7d8a00c42ff0c5a) )
+ ROM_LOAD( "136002.120", 0xc800, 0x0800, CRC(35619648) SHA1(48f1e8bed7ec6afa0b4c549a30e5ec331c071e40) )
+ ROM_LOAD( "tmptwst4.121", 0xd000, 0x0800, CRC(7fde0be4) SHA1(3d06b0f0ef71132b3fa67ad8930e2dd334e90932) )
+ ROM_LOAD( "136002.222", 0xd800, 0x0800, CRC(707bd5c3) SHA1(2f0af6fb7154c244c794f7247e5c16a1e06ddf7d) )
+ ROM_RELOAD( 0xf800, 0x0800 ) /* for reset/interrupt vectors */
+ /* Vector ROM */
+ ROM_LOAD( "136002-123.np3", 0x3000, 0x0800, CRC(29f7e937) SHA1(686c8b9b8901262e743497cee7f2f7dd5cb3af7e) ) /* May be labeled "136002-111", same data */
+ ROM_LOAD( "136002-124.r3", 0x3800, 0x0800, CRC(c16ec351) SHA1(a30a3662c740810c0f20e3712679606921b8ca06) ) /* May be labeled "136002-112", same data */
+
+ /* AVG PROM */
+ ROM_REGION( 0x100, "user1", 0 )
+ ROM_LOAD( "136002-125.d7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
+
+ /* Mathbox PROMs */
+ ROM_REGION( 0x20, "user2", 0 )
+ ROM_LOAD( "136002.126", 0x0000, 0x0020, CRC(8b04f921) SHA1(317b3397482f13b2d1bc21f296d3b3f9a118787b) )
+
+ ROM_REGION32_BE( 0x400, "user3", 0 )
+ ROMX_LOAD( "136002.132", 0, 0x100, CRC(2af82e87) SHA1(3816835a9ccf99a76d246adf204989d9261bb065), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.131", 0, 0x100, CRC(b31f6e24) SHA1(ce5f8ca34d06a5cfa0076b47400e61e0130ffe74), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ ROMX_LOAD( "136002.130", 1, 0x100, CRC(8119b847) SHA1(c4fbaedd4ce1ad6a4128cbe902b297743edb606a), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.129", 1, 0x100, CRC(09f5a4d5) SHA1(d6f2ac07ca9ee385c08831098b0dcaf56808993b), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ ROMX_LOAD( "136002.128", 2, 0x100, CRC(823b61ae) SHA1(d99a839874b45f64e14dae92a036e47a53705d16), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.127", 2, 0x100, CRC(276eadd5) SHA1(55718cd8ec4bcf75076d5ef0ee1ed2551e19d9ba), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ROM_END
+
+ROM_START( vbrakout )
+ ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */
+ ROM_LOAD( "vbrakout.113", 0x9000, 0x0800, CRC(6fd3efe5) SHA1(d195d08984ad8797607bc1989e8a606d51547c68) )
+ ROM_LOAD( "vbrakout.114", 0x9800, 0x0800, CRC(9974b9a5) SHA1(6ecc6f72070895bb15992977348f58835233911f) )
+ ROM_LOAD( "vbrakout.115", 0xa000, 0x0800, CRC(44d611d8) SHA1(82cd63fc9067ea1f00feeffbee66e7d750cab7e5) )
+ ROM_LOAD( "vbrakout.116", 0xa800, 0x0800, CRC(cd58fc11) SHA1(060e31e55183ccef67a1adc91fb48c22424a4ba5) )
+ ROM_LOAD( "vbrakout.122", 0xd800, 0x0800, CRC(1ae2dd53) SHA1(b908ba6b59195aea853380a56a243aa8fa2fba71) )
+ ROM_RELOAD( 0xf800, 0x0800 ) /* for reset/interrupt vectors */
+ /* Vector ROM */
+ ROM_LOAD( "136002-123.np3", 0x3000, 0x0800, CRC(29f7e937) SHA1(686c8b9b8901262e743497cee7f2f7dd5cb3af7e) ) /* May be labeled "136002-111", same data */
+ ROM_LOAD( "136002-124.r3", 0x3800, 0x0800, CRC(c16ec351) SHA1(a30a3662c740810c0f20e3712679606921b8ca06) ) /* May be labeled "136002-112", same data */
+
+ /* AVG PROM */
+ ROM_REGION( 0x100, "user1", 0 )
+ ROM_LOAD( "136002-125.d7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
+
+ /* Mathbox PROMs */
+ ROM_REGION( 0x20, "user2", 0 )
+ ROM_LOAD( "136002.126", 0x0000, 0x0020, CRC(8b04f921) SHA1(317b3397482f13b2d1bc21f296d3b3f9a118787b) )
+
+ ROM_REGION32_BE( 0x400, "user3", 0 )
+ ROMX_LOAD( "136002.132", 0, 0x100, CRC(2af82e87) SHA1(3816835a9ccf99a76d246adf204989d9261bb065), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.131", 0, 0x100, CRC(b31f6e24) SHA1(ce5f8ca34d06a5cfa0076b47400e61e0130ffe74), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ ROMX_LOAD( "136002.130", 1, 0x100, CRC(8119b847) SHA1(c4fbaedd4ce1ad6a4128cbe902b297743edb606a), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.129", 1, 0x100, CRC(09f5a4d5) SHA1(d6f2ac07ca9ee385c08831098b0dcaf56808993b), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ ROMX_LOAD( "136002.128", 2, 0x100, CRC(823b61ae) SHA1(d99a839874b45f64e14dae92a036e47a53705d16), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.127", 2, 0x100, CRC(276eadd5) SHA1(55718cd8ec4bcf75076d5ef0ee1ed2551e19d9ba), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ROM_END
+
+ROM_START( temptlm )
+ ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */
+ ROM_LOAD( "temptlm.113", 0x9000, 0x0800, CRC(44103863) )
+ ROM_LOAD( "136002-114.e1", 0x9800, 0x0800, CRC(11077375) SHA1(ed8ff0ca969da6672a7683b93d4fcf2935a0d903) )
+ ROM_LOAD( "136002.115", 0xa000, 0x0800, CRC(f3e2827a) SHA1(bd04fcfbbba995e08c3144c1474fcddaaeb1c700) )
+ ROM_LOAD( "136002.316", 0xa800, 0x0800, CRC(aeb0f7e9) SHA1(a5cc25015b98692673cfc1c7c2e9634efd750870) )
+ ROM_LOAD( "136002.217", 0xb000, 0x0800, CRC(ef2eb645) SHA1(b1a2c969e8897e335d5354de6ae04a65d4b2a1e4) )
+ ROM_LOAD( "136002.118", 0xb800, 0x0800, CRC(beb352ab) SHA1(f213166d3970e0bd0f29d8dea8d6afa6990cce38) )
+ ROM_LOAD( "136002.119", 0xc000, 0x0800, CRC(a4de050f) SHA1(ea302e43a313a5a18115e74ddbaaedde0fbecda7) )
+ ROM_LOAD( "temptlm.120", 0xc800, 0x0800, CRC(d27ed181) )
+ ROM_LOAD( "136002.121", 0xd000, 0x0800, CRC(73d38e47) SHA1(9980606376a79ba94f8e2a325871a6c8d10d83fc) )
+ ROM_LOAD( "136002.222", 0xd800, 0x0800, CRC(707bd5c3) SHA1(2f0af6fb7154c244c794f7247e5c16a1e06ddf7d) )
+ ROM_RELOAD( 0xf800, 0x0800 ) /* for reset/interrupt vectors */
+ /* Vector ROM */
+ ROM_LOAD( "136002-123.np3", 0x3000, 0x0800, CRC(29f7e937) SHA1(686c8b9b8901262e743497cee7f2f7dd5cb3af7e) ) /* May be labeled "136002-111", same data */
+ ROM_LOAD( "136002-124.r3", 0x3800, 0x0800, CRC(c16ec351) SHA1(a30a3662c740810c0f20e3712679606921b8ca06) ) /* May be labeled "136002-112", same data */
+
+ /* AVG PROM */
+ ROM_REGION( 0x100, "user1", 0 )
+ ROM_LOAD( "136002-125.d7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
+
+ /* Mathbox PROMs */
+ ROM_REGION( 0x20, "user2", 0 )
+ ROM_LOAD( "136002.126", 0x0000, 0x0020, CRC(8b04f921) SHA1(317b3397482f13b2d1bc21f296d3b3f9a118787b) )
+
+ ROM_REGION32_BE( 0x400, "user3", 0 )
+ ROMX_LOAD( "136002.132", 0, 0x100, CRC(2af82e87) SHA1(3816835a9ccf99a76d246adf204989d9261bb065), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.131", 0, 0x100, CRC(b31f6e24) SHA1(ce5f8ca34d06a5cfa0076b47400e61e0130ffe74), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ ROMX_LOAD( "136002.130", 1, 0x100, CRC(8119b847) SHA1(c4fbaedd4ce1ad6a4128cbe902b297743edb606a), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.129", 1, 0x100, CRC(09f5a4d5) SHA1(d6f2ac07ca9ee385c08831098b0dcaf56808993b), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ ROMX_LOAD( "136002.128", 2, 0x100, CRC(823b61ae) SHA1(d99a839874b45f64e14dae92a036e47a53705d16), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.127", 2, 0x100, CRC(276eadd5) SHA1(55718cd8ec4bcf75076d5ef0ee1ed2551e19d9ba), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ROM_END
+
+
+/* The following prototypes, if run on the real hardware, can ruin your monitor... */
+/* or, as written in the readme, "DONT RUN IT ON REAL HARDWARE - IT CAN FUCK THE MONITOR." ;) */
+
+ROM_START( tvortex ) /* rev 1 */
+ ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */
+ ROM_LOAD( "d1.bin", 0x9000, 0x0800, CRC(3aff3417) SHA1(3b7c31f01b7467757ec85e98a17038e5df5720bb) )
+ ROM_LOAD( "e1.bin", 0x9800, 0x0800, CRC(11861be3) SHA1(a35797c649e8286c844cee6dac86ac50f4fbd669) )
+ ROM_LOAD( "f1.bin", 0xa000, 0x0800, CRC(1d251111) SHA1(2912a21dc708231e28d6164e54e593a8300b9c4a) )
+ ROM_LOAD( "h1.bin", 0xa800, 0x0800, CRC(937a9859) SHA1(336b25291533d19294f1ced730bbf20971849adf) )
+ ROM_LOAD( "j1.bin", 0xb000, 0x0800, CRC(79481246) SHA1(c5362670fd29ef1432f8e626323da395d6e8a675) )
+ ROM_LOAD( "k1.bin", 0xb800, 0x0800, CRC(390f872a) SHA1(c5463ea2d2307e21c941b5b459e3652c12154609) )
+ ROM_LOAD( "lm1.bin", 0xc000, 0x0800, CRC(515760dd) SHA1(773f06c9a64e72f9d3d8a5c622bf3ec2b4ba678d) )
+ ROM_LOAD( "mn1.bin", 0xc800, 0x0800, CRC(c6c41c68) SHA1(9323c07fc80a947142dde008c53f5e8c0b0c572d) )
+ ROM_LOAD( "p1.bin", 0xd000, 0x0800, CRC(3c2ff130) SHA1(32ebabcb2cbd7aab5e29de2b873f02ed78776ae6) )
+ ROM_LOAD( "r1.bin", 0xd800, 0x0800, CRC(67cafbb1) SHA1(467515733d843398e6fe29661002536a1e6c8fc9) )
+ ROM_RELOAD( 0xf800, 0x0800 ) /* for reset/interrupt vectors */
+ /* Vector ROM */
+ ROM_LOAD( "n3.bin", 0x3000, 0x0800, CRC(29c6a1cb) SHA1(290702a1c0942a68e288b37963e51eba02177a3f) )
+ ROM_LOAD( "r3.bin", 0x3800, 0x0800, CRC(7fbe5e21) SHA1(e5de6c3af82e64444b0ddcda559e9cb4fbf6c1da) )
+
+ /* AVG PROM */
+ ROM_REGION( 0x100, "user1", 0 )
+ ROM_LOAD( "136002-125.d7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
+
+ /* Mathbox PROMs */
+ ROM_REGION( 0x20, "user2", 0 )
+ ROM_LOAD( "136002.126", 0x0000, 0x0020, CRC(8b04f921) SHA1(317b3397482f13b2d1bc21f296d3b3f9a118787b) )
+
+ ROM_REGION32_BE( 0x400, "user3", 0 )
+ ROMX_LOAD( "136002.132", 0, 0x100, CRC(2af82e87) SHA1(3816835a9ccf99a76d246adf204989d9261bb065), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.131", 0, 0x100, CRC(b31f6e24) SHA1(ce5f8ca34d06a5cfa0076b47400e61e0130ffe74), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ ROMX_LOAD( "136002.130", 1, 0x100, CRC(8119b847) SHA1(c4fbaedd4ce1ad6a4128cbe902b297743edb606a), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.129", 1, 0x100, CRC(09f5a4d5) SHA1(d6f2ac07ca9ee385c08831098b0dcaf56808993b), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ ROMX_LOAD( "136002.128", 2, 0x100, CRC(823b61ae) SHA1(d99a839874b45f64e14dae92a036e47a53705d16), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.127", 2, 0x100, CRC(276eadd5) SHA1(55718cd8ec4bcf75076d5ef0ee1ed2551e19d9ba), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ROM_END
+
+ROM_START( tvortexa ) /* rev 2? */
+ ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */
+ ROM_LOAD( "d1.bin", 0x9000, 0x0800, CRC(3aff3417) SHA1(3b7c31f01b7467757ec85e98a17038e5df5720bb) )
+ ROM_LOAD( "e1.bin", 0x9800, 0x0800, CRC(11861be3) SHA1(a35797c649e8286c844cee6dac86ac50f4fbd669) )
+ ROM_LOAD( "f1.bin", 0xa000, 0x0800, CRC(1d251111) SHA1(2912a21dc708231e28d6164e54e593a8300b9c4a) )
+ ROM_LOAD( "h1.bin", 0xa800, 0x0800, CRC(937a9859) SHA1(336b25291533d19294f1ced730bbf20971849adf) )
+ ROM_LOAD( "j1.bin", 0xb000, 0x0800, CRC(79481246) SHA1(c5362670fd29ef1432f8e626323da395d6e8a675) )
+ ROM_LOAD( "k1.bin", 0xb800, 0x0800, CRC(390f872a) SHA1(c5463ea2d2307e21c941b5b459e3652c12154609) )
+ ROM_LOAD( "lm1.bin", 0xc000, 0x0800, CRC(515760dd) SHA1(773f06c9a64e72f9d3d8a5c622bf3ec2b4ba678d) )
+ ROM_LOAD( "mn1.bin", 0xc800, 0x0800, CRC(c6c41c68) SHA1(9323c07fc80a947142dde008c53f5e8c0b0c572d) )
+ ROM_LOAD( "p1.bin", 0xd000, 0x0800, CRC(3c2ff130) SHA1(32ebabcb2cbd7aab5e29de2b873f02ed78776ae6) )
+ ROM_LOAD( "r1_alt.bin", 0xd800, 0x0800, CRC(2711c2cc) SHA1(f5e43dd46c24828e733b70f7bd678522c34e318a) )
+ ROM_RELOAD( 0xf800, 0x0800 ) /* for reset/interrupt vectors */
+ /* Vector ROM */
+ ROM_LOAD( "n3.bin", 0x3000, 0x0800, CRC(29c6a1cb) SHA1(290702a1c0942a68e288b37963e51eba02177a3f) )
+ ROM_LOAD( "r3.bin", 0x3800, 0x0800, CRC(7fbe5e21) SHA1(e5de6c3af82e64444b0ddcda559e9cb4fbf6c1da) )
+
+ /* AVG PROM */
+ ROM_REGION( 0x100, "user1", 0 )
+ ROM_LOAD( "136002-125.d7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
+
+ /* Mathbox PROMs */
+ ROM_REGION( 0x20, "user2", 0 )
+ ROM_LOAD( "136002.126", 0x0000, 0x0020, CRC(8b04f921) SHA1(317b3397482f13b2d1bc21f296d3b3f9a118787b) )
+
+ ROM_REGION32_BE( 0x400, "user3", 0 )
+ ROMX_LOAD( "136002.132", 0, 0x100, CRC(2af82e87) SHA1(3816835a9ccf99a76d246adf204989d9261bb065), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.131", 0, 0x100, CRC(b31f6e24) SHA1(ce5f8ca34d06a5cfa0076b47400e61e0130ffe74), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ ROMX_LOAD( "136002.130", 1, 0x100, CRC(8119b847) SHA1(c4fbaedd4ce1ad6a4128cbe902b297743edb606a), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.129", 1, 0x100, CRC(09f5a4d5) SHA1(d6f2ac07ca9ee385c08831098b0dcaf56808993b), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ ROMX_LOAD( "136002.128", 2, 0x100, CRC(823b61ae) SHA1(d99a839874b45f64e14dae92a036e47a53705d16), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.127", 2, 0x100, CRC(276eadd5) SHA1(55718cd8ec4bcf75076d5ef0ee1ed2551e19d9ba), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ROM_END
+
+ROM_START( aliensv ) /* rev 1 */
+ ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */
+ ROM_LOAD( "aliens_d1.bin", 0x9000, 0x0800, CRC(337e21f6) SHA1(7adadeaa975e22f0b20e8f1fb6ad68b5c3934133) )
+ ROM_LOAD( "aliens_e1.bin", 0x9800, 0x0800, CRC(337e21f6) SHA1(7adadeaa975e22f0b20e8f1fb6ad68b5c3934133) )
+ ROM_LOAD( "aliens_f1.bin", 0xa000, 0x0800, CRC(4d2aabb0) SHA1(31106a1fc22d2a19866f07b8d6c6f4bf76007909) )
+ ROM_LOAD( "aliens_h1.bin", 0xa800, 0x0800, CRC(a503f54a) SHA1(91ebf9f69a183a04a5bf55fcdd9e191523bb66bb) )
+ ROM_LOAD( "aliens_j1.bin", 0xb000, 0x0800, CRC(5487d531) SHA1(c95f037151b824345af03f27a6c3c7eb8a899b2c) )
+ ROM_LOAD( "aliens_k1.bin", 0xb800, 0x0800, CRC(0ac96e87) SHA1(37461e84e6f46516c25dbf4ddb2ffd65877445c0) )
+ ROM_LOAD( "aliens_l1.bin", 0xc000, 0x0800, CRC(cd246ac2) SHA1(de2e6fe2e72c092c3874e797fc302a71dbf57710) )
+ ROM_LOAD( "aliens_n1.bin", 0xc800, 0x0800, CRC(bd98c5f3) SHA1(268487d9cf46b4b7b49eab7420d078bf676e636c) )
+ ROM_LOAD( "aliens_p1.bin", 0xd000, 0x0800, CRC(7c10adbd) SHA1(38579128a90bff4a7a4ae46d6aaa42118b8bc218) )
+ ROM_LOAD( "aliens_r1.bin", 0xd800, 0x0800, CRC(555c3070) SHA1(032f03af23c7ccac8a2bf50c3c646e141921ffee) )
+ ROM_RELOAD( 0xf800, 0x0800 ) /* for reset/interrupt vectors */
+ /* Vector ROM */
+ ROM_LOAD( "aliens_n3.bin", 0x3000, 0x0800, CRC(5c8fd38b) SHA1(bb0d6bd062eba53b5d64b3f444d5ce0a34728bf5) )
+ ROM_LOAD( "aliens_r3.bin", 0x3800, 0x0800, CRC(6cabcd08) SHA1(e3950de50f3dfbc4d4d2f4fe26625d8ef94c0819) )
+
+ /* AVG PROM */
+ ROM_REGION( 0x100, "user1", 0 )
+ ROM_LOAD( "136002-125.d7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
+
+ /* Mathbox PROMs */
+ ROM_REGION( 0x20, "user2", 0 )
+ ROM_LOAD( "136002.126", 0x0000, 0x0020, CRC(8b04f921) SHA1(317b3397482f13b2d1bc21f296d3b3f9a118787b) )
+
+ ROM_REGION32_BE( 0x400, "user3", 0 )
+ ROMX_LOAD( "136002.132", 0, 0x100, CRC(2af82e87) SHA1(3816835a9ccf99a76d246adf204989d9261bb065), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.131", 0, 0x100, CRC(b31f6e24) SHA1(ce5f8ca34d06a5cfa0076b47400e61e0130ffe74), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ ROMX_LOAD( "136002.130", 1, 0x100, CRC(8119b847) SHA1(c4fbaedd4ce1ad6a4128cbe902b297743edb606a), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.129", 1, 0x100, CRC(09f5a4d5) SHA1(d6f2ac07ca9ee385c08831098b0dcaf56808993b), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ ROMX_LOAD( "136002.128", 2, 0x100, CRC(823b61ae) SHA1(d99a839874b45f64e14dae92a036e47a53705d16), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.127", 2, 0x100, CRC(276eadd5) SHA1(55718cd8ec4bcf75076d5ef0ee1ed2551e19d9ba), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ROM_END
+
+ROM_START( aliensva ) /* rev 2? */
+ ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code */
+ ROM_LOAD( "aliens_d1.bin", 0x9000, 0x0800, CRC(337e21f6) SHA1(7adadeaa975e22f0b20e8f1fb6ad68b5c3934133) )
+ ROM_LOAD( "aliens_e1.bin", 0x9800, 0x0800, CRC(337e21f6) SHA1(7adadeaa975e22f0b20e8f1fb6ad68b5c3934133) )
+ ROM_LOAD( "aliens_f1.bin", 0xa000, 0x0800, CRC(4d2aabb0) SHA1(31106a1fc22d2a19866f07b8d6c6f4bf76007909) )
+ ROM_LOAD( "aliens_h1.bin", 0xa800, 0x0800, CRC(a503f54a) SHA1(91ebf9f69a183a04a5bf55fcdd9e191523bb66bb) )
+ ROM_LOAD( "aliens_j1.bin", 0xb000, 0x0800, CRC(5487d531) SHA1(c95f037151b824345af03f27a6c3c7eb8a899b2c) )
+ ROM_LOAD( "aliens_k1.bin", 0xb800, 0x0800, CRC(0ac96e87) SHA1(37461e84e6f46516c25dbf4ddb2ffd65877445c0) )
+ ROM_LOAD( "aliens_l1.bin", 0xc000, 0x0800, CRC(cd246ac2) SHA1(de2e6fe2e72c092c3874e797fc302a71dbf57710) )
+ ROM_LOAD( "aliens_n1.bin", 0xc800, 0x0800, CRC(bd98c5f3) SHA1(268487d9cf46b4b7b49eab7420d078bf676e636c) )
+ ROM_LOAD( "aliens_p1.bin", 0xd000, 0x0800, CRC(7c10adbd) SHA1(38579128a90bff4a7a4ae46d6aaa42118b8bc218) )
+ ROM_LOAD( "aliens_r1a.bin", 0xd800, 0x0800, CRC(4da6627d) SHA1(01d8eea45373e3e87c81bc3b31d85ba8c7f4fcb3) )
+ ROM_RELOAD( 0xf800, 0x0800 ) /* for reset/interrupt vectors */
+ /* Vector ROM */
+ ROM_LOAD( "aliens_n3.bin", 0x3000, 0x0800, CRC(5c8fd38b) SHA1(bb0d6bd062eba53b5d64b3f444d5ce0a34728bf5) )
+ ROM_LOAD( "aliens_r3.bin", 0x3800, 0x0800, CRC(6cabcd08) SHA1(e3950de50f3dfbc4d4d2f4fe26625d8ef94c0819) )
+
+ /* AVG PROM */
+ ROM_REGION( 0x100, "user1", 0 )
+ ROM_LOAD( "136002-125.d7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
+
+ /* Mathbox PROMs */
+ ROM_REGION( 0x20, "user2", 0 )
+ ROM_LOAD( "136002.126", 0x0000, 0x0020, CRC(8b04f921) SHA1(317b3397482f13b2d1bc21f296d3b3f9a118787b) )
+
+ ROM_REGION32_BE( 0x400, "user3", 0 )
+ ROMX_LOAD( "136002.132", 0, 0x100, CRC(2af82e87) SHA1(3816835a9ccf99a76d246adf204989d9261bb065), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.131", 0, 0x100, CRC(b31f6e24) SHA1(ce5f8ca34d06a5cfa0076b47400e61e0130ffe74), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ ROMX_LOAD( "136002.130", 1, 0x100, CRC(8119b847) SHA1(c4fbaedd4ce1ad6a4128cbe902b297743edb606a), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.129", 1, 0x100, CRC(09f5a4d5) SHA1(d6f2ac07ca9ee385c08831098b0dcaf56808993b), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ ROMX_LOAD( "136002.128", 2, 0x100, CRC(823b61ae) SHA1(d99a839874b45f64e14dae92a036e47a53705d16), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.127", 2, 0x100, CRC(276eadd5) SHA1(55718cd8ec4bcf75076d5ef0ee1ed2551e19d9ba), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ROM_END
+
+/* tempest multigame */
+
+class tempmg_state : public tempest_state
+{
+public:
+ tempmg_state(const machine_config &mconfig, device_type type, const char *tag)
+ : tempest_state(mconfig, type, tag)
+ , m_maincpu(*this, "maincpu")
+ { }
+
+ DECLARE_WRITE8_MEMBER(tempmg_rombank_w);
+ DECLARE_MACHINE_RESET(tempmg);
+ DECLARE_DRIVER_INIT(tempmg);
+ required_device<cpu_device> m_maincpu;
+};
+
+WRITE8_MEMBER( tempmg_state::tempmg_rombank_w )
+{
+ uint8_t *RAM = memregion("maincpu")->base();
+ membank("bank1")->set_entry(data);
+ membank("bank2")->set_entry(data);
+ /* standard rom banking would not work here, using memcpy instead */
+ if (data < 4) memcpy(&RAM[0x3000], &RAM[0x16000+(data<<15)],0x1000);
+}
+
+MACHINE_RESET_MEMBER( tempmg_state, tempmg )
+{
+ address_space &space = m_maincpu->space(AS_PROGRAM);
+ tempmg_rombank_w (space, 0,0);
+}
+
+DRIVER_INIT_MEMBER( tempmg_state, tempmg )
+{
+ address_space &space = m_maincpu->space(AS_PROGRAM);
+ uint8_t *RAM = memregion("maincpu")->base();
+ membank("bank1")->configure_entries(0, 8, &RAM[0x11000], 0x8000); // main roms
+ membank("bank2")->configure_entries(0, 8, &RAM[0x17800], 0x8000); // vectors
+ tempmg_rombank_w (space, 0,0);
+}
+
+static ADDRESS_MAP_START( tempmg_map, AS_PROGRAM, 8, tempmg_state )
+ AM_RANGE(0x0000, 0x07ff) AM_RAM
+ AM_RANGE(0x0800, 0x080f) AM_WRITEONLY AM_SHARE("colorram")
+ AM_RANGE(0x0c00, 0x0c00) AM_READ_PORT("IN0")
+ AM_RANGE(0x0d00, 0x0d00) AM_READ_PORT("DSW1")
+ AM_RANGE(0x0e00, 0x0e00) AM_READ_PORT("DSW2")
+ AM_RANGE(0x2000, 0x2fff) AM_RAM AM_SHARE("vectorram") AM_REGION("maincpu", 0x2000)
+ AM_RANGE(0x3000, 0x3fff) AM_ROM
+ AM_RANGE(0x4000, 0x4000) AM_WRITE(tempest_coin_w)
+ AM_RANGE(0x4800, 0x4800) AM_DEVWRITE("avg", avg_tempest_device, go_w)
+ AM_RANGE(0x5000, 0x5000) AM_WRITE(wdclr_w)
+ AM_RANGE(0x5800, 0x5800) AM_DEVWRITE("avg", avg_tempest_device, reset_w)
+ AM_RANGE(0x6000, 0x603f) AM_DEVWRITE("earom", atari_vg_earom_device, write)
+ AM_RANGE(0x6040, 0x6040) AM_DEVREAD("mathbox", mathbox_device, status_r) AM_DEVWRITE("earom", atari_vg_earom_device, ctrl_w)
+ AM_RANGE(0x6050, 0x6050) AM_DEVREAD("earom", atari_vg_earom_device, read)
+ AM_RANGE(0x6060, 0x6060) AM_DEVREAD("mathbox", mathbox_device, lo_r)
+ AM_RANGE(0x6070, 0x6070) AM_DEVREAD("mathbox", mathbox_device, hi_r)
+ AM_RANGE(0x6080, 0x609f) AM_DEVWRITE("mathbox", mathbox_device, go_w)
+ AM_RANGE(0x60c0, 0x60cf) AM_DEVREADWRITE("pokey1", pokey_device, read, write)
+ AM_RANGE(0x60d0, 0x60df) AM_DEVREADWRITE("pokey2", pokey_device, read, write)
+ AM_RANGE(0x60e0, 0x60e0) AM_WRITE(tempest_led_w)
+ AM_RANGE(0x9000, 0xdfff) AM_ROMBANK("bank1")
+ AM_RANGE(0xe000, 0xe000) AM_WRITE(tempmg_rombank_w)
+ AM_RANGE(0xf800, 0xffff) AM_ROMBANK("bank2")
+ADDRESS_MAP_END
+
+static MACHINE_CONFIG_DERIVED( tempmg, tempest ) // new cfg, old cfg, new class
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(tempmg_map)
+ MCFG_MACHINE_RESET_OVERRIDE(tempmg_state, tempmg)
+MACHINE_CONFIG_END
+
+ROM_START( tempmg )
+ ROM_REGION( 0x50000, "maincpu", 0 )
+ ROM_LOAD( "tempmg-113.d1", 0x11000, 0x0800, CRC(8a6633fb) SHA1(b143a5d2019f24666b350b40b0dab2924bb9c7c0) )
+ ROM_LOAD( "tempmg-114.e1", 0x11800, 0x0800, CRC(2eedfdf6) SHA1(2ed494bd8610bebd07284289ca8b7059fd805300) )
+ ROM_LOAD( "tempmg-115.f1", 0x12000, 0x0800, CRC(12f62746) SHA1(37356b5738c27ffe4c38f1b6cf99ae21441d8e8e) )
+ ROM_LOAD( "tempmg-222.r1", 0x15800, 0x0800, CRC(1d8f194a) SHA1(c77f6b83f5c498c0f2d5372089a4604913a4aad5) )
+ ROM_RELOAD( 0x17800, 0x0800 )
+ ROM_LOAD( "aliens_d1.bin", 0x19000, 0x0800, CRC(337e21f6) SHA1(7adadeaa975e22f0b20e8f1fb6ad68b5c3934133) )
+ ROM_RELOAD( 0x19800, 0x0800 )
+ ROM_LOAD( "aliens_f1.bin", 0x1a000, 0x0800, CRC(4d2aabb0) SHA1(31106a1fc22d2a19866f07b8d6c6f4bf76007909) )
+ ROM_LOAD( "aliens_h1.bin", 0x1a800, 0x0800, CRC(a503f54a) SHA1(91ebf9f69a183a04a5bf55fcdd9e191523bb66bb) )
+ ROM_LOAD( "aliens_j1.bin", 0x1b000, 0x0800, CRC(5487d531) SHA1(c95f037151b824345af03f27a6c3c7eb8a899b2c) )
+ ROM_LOAD( "aliens_k1.bin", 0x1b800, 0x0800, CRC(0ac96e87) SHA1(37461e84e6f46516c25dbf4ddb2ffd65877445c0) )
+ ROM_LOAD( "aliens_l1.bin", 0x1c000, 0x0800, CRC(cd246ac2) SHA1(de2e6fe2e72c092c3874e797fc302a71dbf57710) )
+ ROM_LOAD( "aliens_n1.bin", 0x1c800, 0x0800, CRC(bd98c5f3) SHA1(268487d9cf46b4b7b49eab7420d078bf676e636c) )
+ ROM_LOAD( "aliens_p1.bin", 0x1d000, 0x0800, CRC(7c10adbd) SHA1(38579128a90bff4a7a4ae46d6aaa42118b8bc218) )
+ ROM_LOAD( "aliens_r1.bin", 0x1d800, 0x0800, CRC(555c3070) SHA1(032f03af23c7ccac8a2bf50c3c646e141921ffee) )
+ ROM_RELOAD( 0x1f800, 0x0800 ) /* for reset/interrupt vectors */
+ ROM_LOAD( "vb_d1.bin", 0x21000, 0x0800, CRC(6fd3efe5) SHA1(d195d08984ad8797607bc1989e8a606d51547c68) )
+ ROM_LOAD( "vb_e1.bin", 0x21800, 0x0800, CRC(9974b9a5) SHA1(6ecc6f72070895bb15992977348f58835233911f) )
+ ROM_LOAD( "vb_f1.bin", 0x22000, 0x0800, CRC(44d611d8) SHA1(82cd63fc9067ea1f00feeffbee66e7d750cab7e5) )
+ ROM_LOAD( "vb_h1.bin", 0x22800, 0x0800, CRC(cd58fc11) SHA1(060e31e55183ccef67a1adc91fb48c22424a4ba5) )
+ ROM_LOAD( "vb_r1.bin", 0x25800, 0x0800, CRC(1ae2dd53) SHA1(b908ba6b59195aea853380a56a243aa8fa2fba71) )
+ ROM_RELOAD( 0x27800, 0x0800 ) /* for reset/interrupt vectors */
+ ROM_LOAD( "d1.bin", 0x29000, 0x0800, CRC(3aff3417) SHA1(3b7c31f01b7467757ec85e98a17038e5df5720bb) )
+ ROM_LOAD( "e1.bin", 0x29800, 0x0800, CRC(11861be3) SHA1(a35797c649e8286c844cee6dac86ac50f4fbd669) )
+ ROM_LOAD( "f1.bin", 0x2a000, 0x0800, CRC(1d251111) SHA1(2912a21dc708231e28d6164e54e593a8300b9c4a) )
+ ROM_LOAD( "h1.bin", 0x2a800, 0x0800, CRC(937a9859) SHA1(336b25291533d19294f1ced730bbf20971849adf) )
+ ROM_LOAD( "j1.bin", 0x2b000, 0x0800, CRC(79481246) SHA1(c5362670fd29ef1432f8e626323da395d6e8a675) )
+ ROM_LOAD( "k1.bin", 0x2b800, 0x0800, CRC(390f872a) SHA1(c5463ea2d2307e21c941b5b459e3652c12154609) )
+ ROM_LOAD( "lm1.bin", 0x2c000, 0x0800, CRC(515760dd) SHA1(773f06c9a64e72f9d3d8a5c622bf3ec2b4ba678d) )
+ ROM_LOAD( "mn1.bin", 0x2c800, 0x0800, CRC(c6c41c68) SHA1(9323c07fc80a947142dde008c53f5e8c0b0c572d) )
+ ROM_LOAD( "p1.bin", 0x2d000, 0x0800, CRC(3c2ff130) SHA1(32ebabcb2cbd7aab5e29de2b873f02ed78776ae6) )
+ ROM_LOAD( "r1.bin", 0x2d800, 0x0800, CRC(67cafbb1) SHA1(467515733d843398e6fe29661002536a1e6c8fc9) )
+ ROM_RELOAD( 0x2f800, 0x0800 ) /* for reset/interrupt vectors */
+ ROM_LOAD( "136002-113.d1", 0x31000, 0x0800, CRC(65d61fe7) SHA1(38a1e8a8f65b7887cf3e190269fe4ce2c6f818aa) )
+ ROM_RELOAD( 0x39000, 0x0800 )
+ ROM_RELOAD( 0x41000, 0x0800 )
+ ROM_RELOAD( 0x49000, 0x0800 )
+ ROM_LOAD( "136002-114.e1", 0x31800, 0x0800, CRC(11077375) SHA1(ed8ff0ca969da6672a7683b93d4fcf2935a0d903) )
+ ROM_RELOAD( 0x39800, 0x0800 )
+ ROM_RELOAD( 0x41800, 0x0800 )
+ ROM_RELOAD( 0x49800, 0x0800 )
+ ROM_LOAD( "136002-115.f1", 0x32000, 0x0800, CRC(f3e2827a) SHA1(bd04fcfbbba995e08c3144c1474fcddaaeb1c700) )
+ ROM_RELOAD( 0x3a000, 0x0800 )
+ ROM_RELOAD( 0x42000, 0x0800 )
+ ROM_RELOAD( 0x4a000, 0x0800 )
+ ROM_LOAD( "136002-316.h1", 0x32800, 0x0800, CRC(aeb0f7e9) SHA1(a5cc25015b98692673cfc1c7c2e9634efd750870) )
+ ROM_RELOAD( 0x4a800, 0x0800 )
+ ROM_RELOAD( 0x12800, 0x0800 )
+ ROM_LOAD( "136002-217.j1", 0x33000, 0x0800, CRC(ef2eb645) SHA1(b1a2c969e8897e335d5354de6ae04a65d4b2a1e4) )
+ ROM_RELOAD( 0x43000, 0x0800 )
+ ROM_RELOAD( 0x4b000, 0x0800 )
+ ROM_RELOAD( 0x13000, 0x0800 )
+ ROM_LOAD( "tube-118.k1", 0x33800, 0x0800, CRC(cefb03f0) SHA1(41ddfa4991fa49a31d4740a04551556acca66196) )
+ ROM_LOAD( "136002-119.lm1", 0x34000, 0x0800, CRC(a4de050f) SHA1(ea302e43a313a5a18115e74ddbaaedde0fbecda7) )
+ ROM_RELOAD( 0x3c000, 0x0800 )
+ ROM_RELOAD( 0x44000, 0x0800 )
+ ROM_RELOAD( 0x4c000, 0x0800 )
+ ROM_RELOAD( 0x14000, 0x0800 )
+ ROM_LOAD( "136002-120.mn1", 0x34800, 0x0800, CRC(35619648) SHA1(48f1e8bed7ec6afa0b4c549a30e5ec331c071e40) )
+ ROM_RELOAD( 0x3c800, 0x0800 )
+ ROM_RELOAD( 0x44800, 0x0800 )
+ ROM_RELOAD( 0x4c800, 0x0800 )
+ ROM_RELOAD( 0x14800, 0x0800 )
+ ROM_LOAD( "136002-121.p1", 0x35000, 0x0800, CRC(73d38e47) SHA1(9980606376a79ba94f8e2a325871a6c8d10d83fc) )
+ ROM_RELOAD( 0x3d000, 0x0800 )
+ ROM_RELOAD( 0x45000, 0x0800 )
+ ROM_RELOAD( 0x4d000, 0x0800 )
+ ROM_RELOAD( 0x15000, 0x0800 )
+ ROM_LOAD( "136002-222.r1", 0x35800, 0x0800, CRC(707bd5c3) SHA1(2f0af6fb7154c244c794f7247e5c16a1e06ddf7d) )
+ ROM_RELOAD( 0x37800, 0x0800 )
+ ROM_RELOAD( 0x45800, 0x0800 )
+ ROM_RELOAD( 0x47800, 0x0800 )
+ ROM_RELOAD( 0x4d800, 0x0800 )
+ ROM_RELOAD( 0x4f800, 0x0800 )
+ ROM_LOAD( "136002-116.h1", 0x3a800, 0x0800, CRC(7356896c) SHA1(a013ede292189a8f5a907de882ee1a573d784b3c) )
+ ROM_RELOAD( 0x42800, 0x0800 )
+ ROM_LOAD( "136002-117.j1", 0x3b000, 0x0800, CRC(55952119) SHA1(470d914fa52fce3786cb6330889876d3547dca65) )
+ ROM_LOAD( "136002-118.k1", 0x3b800, 0x0800, CRC(beb352ab) SHA1(f213166d3970e0bd0f29d8dea8d6afa6990cce38) )
+ ROM_RELOAD( 0x43800, 0x0800 )
+ ROM_RELOAD( 0x4b800, 0x0800 )
+ ROM_RELOAD( 0x13800, 0x0800 )
+ ROM_LOAD( "136002-122.r1", 0x3d800, 0x0800, CRC(796a9918) SHA1(c862a0d4ea330161e4c3cc8e5e9ad38893fffbd4) )
+ ROM_RELOAD( 0x3f800, 0x0800 )
+ /* Vector ROMs */
+ ROM_LOAD( "136002-123.np3", 0x16000, 0x0800, CRC(29f7e937) SHA1(686c8b9b8901262e743497cee7f2f7dd5cb3af7e) )
+ ROM_RELOAD( 0x26000, 0x0800 )
+ ROM_LOAD( "136002-124.r3", 0x16800, 0x0800, CRC(c16ec351) SHA1(a30a3662c740810c0f20e3712679606921b8ca06) )
+ ROM_RELOAD( 0x26800, 0x0800 )
+ ROM_LOAD( "aliens_n3.bin", 0x1e000, 0x0800, CRC(5c8fd38b) SHA1(bb0d6bd062eba53b5d64b3f444d5ce0a34728bf5) )
+ ROM_LOAD( "aliens_r3.bin", 0x1e800, 0x0800, CRC(6cabcd08) SHA1(e3950de50f3dfbc4d4d2f4fe26625d8ef94c0819) )
+ ROM_LOAD( "n3.bin", 0x2e000, 0x0800, CRC(29c6a1cb) SHA1(290702a1c0942a68e288b37963e51eba02177a3f) )
+ ROM_LOAD( "r3.bin", 0x2e800, 0x0800, CRC(7fbe5e21) SHA1(e5de6c3af82e64444b0ddcda559e9cb4fbf6c1da) )
+
+ /* AVG PROM */
+ ROM_REGION( 0x100, "user1", 0 )
+ ROM_LOAD( "136002-125.d7", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
+
+ /* Mathbox PROMs */
+ ROM_REGION( 0x20, "user2", 0 )
+ ROM_LOAD( "136002.126", 0x0000, 0x0020, CRC(8b04f921) SHA1(317b3397482f13b2d1bc21f296d3b3f9a118787b) )
+
+ ROM_REGION32_BE( 0x400, "user3", 0 )
+ ROMX_LOAD( "136002.132", 0, 0x100, CRC(2af82e87) SHA1(3816835a9ccf99a76d246adf204989d9261bb065), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.131", 0, 0x100, CRC(b31f6e24) SHA1(ce5f8ca34d06a5cfa0076b47400e61e0130ffe74), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ ROMX_LOAD( "136002.130", 1, 0x100, CRC(8119b847) SHA1(c4fbaedd4ce1ad6a4128cbe902b297743edb606a), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.129", 1, 0x100, CRC(09f5a4d5) SHA1(d6f2ac07ca9ee385c08831098b0dcaf56808993b), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ ROMX_LOAD( "136002.128", 2, 0x100, CRC(823b61ae) SHA1(d99a839874b45f64e14dae92a036e47a53705d16), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(3))
+ ROMX_LOAD( "136002.127", 2, 0x100, CRC(276eadd5) SHA1(55718cd8ec4bcf75076d5ef0ee1ed2551e19d9ba), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(3))
+ROM_END
+
+
+GAME( 2000, temped, tempest, tempest, tempest, tempest_state, 0, ROT270, "hack", "TempEd", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, tempall, tempest, tempest, tempest, tempest_state, 0, ROT270, "hack", "Tempest All Levels", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, temptwst, tempest, tempest, tempest, tempest_state, 0, ROT270, "Twisty", "Tempest Twisted", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, tmptwsta, tempest, tempest, tempest, tempest_state, 0, ROT270, "Twisty", "Tempest Twisted (Alt)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, tmptwst2, tempest, tempest, tempest, tempest_state, 0, ROT270, "Twisty", "Tempest Twisty's Revenge", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, tmptwst3, tempest, tempest, tempest, tempest_state, 0, ROT270, "Twisty", "Tempest Psycho Twist", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, tmptwst4, tempest, tempest, tempest, tempest_state, 0, ROT270, "Twisty", "Tempest Twisted Maniac", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, tempestm, tempest, tempest, tempest, tempest_state, 0, ROT270, "hack", "Tempest Mark's Hacks", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, tempmg, tempest, tempmg, tempest, tempmg_state, tempmg, ROT270, "Clay Cowgill", "Tempest Multigame", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, vbrakout, tempest, tempest, tempest, tempest_state, 0, ROT270, "Clay Cowgill", "Vector Breakout [h]", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, temptlm, tempest, tempest, tempest, tempest_state, 0, ROT270, "hack", "Tempest Level Man", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, tvortex, tempest, tempest, tempest, tempest_state, 0, ROT270, "Atari", "Vortex", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, tvortexa, tempest, tempest, tempest, tempest_state, 0, ROT270, "Atari", "Vortex alt version", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, aliensv, tempest, tempest, aliensv, tempest_state, 0, ROT270, "Atari", "Aliens", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, aliensva, tempest, tempest, aliensv, tempest_state, 0, ORIENTATION_FLIP_Y ^ ROT270, "Atari", "Aliens alt version", MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/terracre.cpp b/src/hbmame/drivers/terracre.cpp
new file mode 100644
index 00000000000..9f83ef8ea59
--- /dev/null
+++ b/src/hbmame/drivers/terracre.cpp
@@ -0,0 +1,50 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/terracre.cpp"
+
+ROM_START( terracrc )
+ ROM_REGION( 0x20000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "terracrc.8", 0x00000, 0x4000, CRC(44e29950) SHA1(0446c803771e624a812b5b7bd422505a58fa2f9d) )
+ ROM_LOAD16_BYTE( "terracrc.12", 0x00001, 0x4000, CRC(5d2d4fef) SHA1(b31c2c496013163a5504343f06b4f9cc9834f78a) )
+ ROM_LOAD16_BYTE( "terracrc.7", 0x08000, 0x4000, CRC(907968e6) SHA1(8b8a17b87a08e2a5e4223d9bdbc4a7df0726a589) )
+ ROM_LOAD16_BYTE( "terracrc.11", 0x08001, 0x4000, CRC(f5dcd168) SHA1(d58c76d1f199e664caae6a89b39d8dddb758d593) )
+ ROM_LOAD16_BYTE( "terracrc.6", 0x10000, 0x4000, CRC(b2cb4442) SHA1(a7a3a2d2a509bfcc905c7bfda516147626e09782) )
+ ROM_LOAD16_BYTE( "terracrc.10", 0x10001, 0x4000, CRC(66db3b3b) SHA1(637b6dec3e03bd80ba4efdb08e9604bf3deea49b) )
+ ROM_LOAD16_BYTE( "terracrc.5", 0x18000, 0x4000, CRC(a1bea44f) SHA1(cda2f0f7feac9060f86392704907b86cb5857b47) )
+ ROM_LOAD16_BYTE( "1a_9b.rom", 0x18001, 0x4000, CRC(69227b56) SHA1(58c8aa4baa1f5ddfc151f5ed6284a06e87866dd7) )
+ ROM_FILL(0x1c16,1,1)
+ ROM_FILL(0x1c17,1,0x1c) // bypass rom checksum - one of the roms might be bad
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "bk2_11.15b", 0x0000, 0x4000, CRC(604c3b11) SHA1(c01d1ddae40fa8b65dfc72f959942cb9664a548b) )
+ ROM_LOAD( "terracrc.19", 0x4000, 0x4000, CRC(20fd3b53) SHA1(baf494f64a66fc4ae9d2fef12ae7c6f61ad82d94) )
+ ROM_LOAD( "bk2_13.18b", 0x8000, 0x4000, CRC(302dc0ab) SHA1(4db8f12e70f9adf1eb993c6a8af68b5edbf79773) )
+
+ ROM_REGION( 0x02000, "gfx1", 0 )
+ ROM_LOAD( "bk2_14.16g", 0x00000, 0x2000, CRC(591a3804) SHA1(e1b46f5652e7f9677d75f01c6132975ace4facdd) )
+
+ ROM_REGION( 0x10000, "gfx2", 0 )
+ ROM_LOAD( "terracrc.4", 0x0000, 0x4000, CRC(3597f737) SHA1(443ad8b868a20a28a739df2f677803cb94012919) )
+ ROM_LOAD( "terracrc.2", 0x4000, 0x4000, CRC(26474fd6) SHA1(7e8b725d5a29cc328925eea1ccdc2edaa2e7a927) )
+ ROM_LOAD( "terracrc.3", 0x8000, 0x4000, CRC(f5f66a67) SHA1(d7761634fd0ea725e4fdaff698171285f9042f0f) )
+ ROM_LOAD( "terracrc.1", 0xc000, 0x4000, CRC(55f80572) SHA1(a32749f8539a2a908532365f7f5650c92fc19f42) )
+
+ ROM_REGION( 0x10000, "gfx3", 0 )
+ ROM_LOAD( "bk2_7.6e", 0x00000, 0x4000, CRC(bcf7740b) SHA1(8701862c35eb8fb1ec239253136a3858ebea4d0c) )
+ ROM_LOAD( "bk2_8.7e", 0x04000, 0x4000, CRC(a70b565c) SHA1(153e5f5a9927c294660dd0d636a9f651d4984d6d) )
+ ROM_LOAD( "bk2_9.6g", 0x08000, 0x4000, CRC(4a9ec3e6) SHA1(0a35b82fb49ecf7edafd02744a48490e744c0a00) )
+ ROM_LOAD( "bk2_10.7g", 0x0c000, 0x4000, CRC(450749fc) SHA1(376ab98ab8db56ed45f7d97a221dfd52e389cb5a) )
+
+ ROM_REGION( 0x0504, "proms", 0 ) /* first 4 not supplied - using from terracre */
+ ROM_LOAD( "bk1_3.10f", 0x0000, 0x0100, CRC(ce07c544) SHA1(c3691cb420c88f1887a55e3035b5d017decbc17a) )
+ ROM_LOAD( "bk1_2.11f", 0x0100, 0x0100, CRC(566d323a) SHA1(fe83585a0d9c7f942a5e54620b627a5a17a0fcf4) )
+ ROM_LOAD( "bk1_1.12f", 0x0200, 0x0100, CRC(7ea63946) SHA1(d7b89694a80736c7605b5c83d25d8b706f4504ab) )
+ ROM_LOAD( "bk2_4.2g", 0x0300, 0x0100, CRC(08609bad) SHA1(e5daee3c3fea6620e3c2b91becd93bc4d3cdf011) )
+ /* This came with dump - no idea what it does - not hooked up */
+ ROM_LOAD_OPTIONAL( "pal16r4.bin", 0x0400, 0x0104, CRC(119ef878) SHA1(4cc68200c755d646789f6af1c7a52273f07f597c) )
+
+ ROM_REGION( 0x0100, "user1", 0 ) /* not supplied - using from terracre */
+ ROM_LOAD( "bk2_5.4e", 0x0000, 0x0100, CRC(2c43991f) SHA1(312112832bee511b0545524295aa9bc2e756db0f) )
+ROM_END
+
+GAME( 1985, terracrc, terracre, ym3526, terracre, terracre_state, 0, ROT270, "Nichibutsu", "Terra Cresta (alt)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/timelimit.cpp b/src/hbmame/drivers/timelimit.cpp
new file mode 100644
index 00000000000..6bb2b473021
--- /dev/null
+++ b/src/hbmame/drivers/timelimit.cpp
@@ -0,0 +1,114 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/timelimt.cpp"
+
+/* Changes to MAME's timelimt:
+- Added a handcrafted clr.57 from Dink
+- Added an alternate clr.48 from my collection
+- Run the game at half speed, unplayable otherwise
+*/
+
+class timelimt_hbmame : public timelimt_state
+{
+public:
+ timelimt_hbmame(const machine_config &mconfig, device_type type, const char *tag)
+ : timelimt_state(mconfig, type, tag)
+ , m_irq_state(false)
+ { }
+
+ INTERRUPT_GEN_MEMBER(hb_irq);
+private:
+ bool m_irq_state;
+};
+
+INTERRUPT_GEN_MEMBER(timelimt_hbmame::hb_irq)
+{
+ if ( m_nmi_enabled )
+ {
+ m_irq_state = (m_irq_state) ? false : true;
+ if (m_irq_state)
+ device.execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
+ }
+}
+
+static MACHINE_CONFIG_START( timelimit )
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", Z80, 5000000) /* 5.000 MHz */
+ MCFG_CPU_PROGRAM_MAP(main_map)
+ MCFG_CPU_IO_MAP(main_io_map)
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", timelimt_hbmame, hb_irq)
+
+ MCFG_CPU_ADD("audiocpu", Z80,18432000/6) /* 3.072 MHz */
+ MCFG_CPU_PROGRAM_MAP(sound_map)
+ MCFG_CPU_IO_MAP(sound_io_map)
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", timelimt_state, irq0_line_hold) /* ? */
+
+ MCFG_QUANTUM_TIME(attotime::from_hz(3000))
+
+ MCFG_DEVICE_ADD("mainlatch", LS259, 0) // IC15
+ MCFG_ADDRESSABLE_LATCH_Q0_OUT_CB(WRITELINE(timelimt_state, nmi_enable_w))
+ MCFG_ADDRESSABLE_LATCH_Q2_OUT_CB(WRITELINE(timelimt_state, coin_lockout_w))
+ MCFG_ADDRESSABLE_LATCH_Q3_OUT_CB(INPUTLINE("audiocpu", INPUT_LINE_RESET)) MCFG_DEVCB_INVERT
+ MCFG_ADDRESSABLE_LATCH_Q6_OUT_CB(NOOP) // probably flip screen
+ MCFG_ADDRESSABLE_LATCH_Q7_OUT_CB(NOOP) // probably flip screen
+
+ MCFG_WATCHDOG_ADD("watchdog")
+
+ /* video hardware */
+ 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(timelimt_state, screen_update)
+ MCFG_SCREEN_PALETTE("palette")
+
+ MCFG_GFXDECODE_ADD("gfxdecode", "palette", timelimt)
+ MCFG_PALETTE_ADD("palette", 64+32)
+ MCFG_PALETTE_INIT_OWNER(timelimt_state, timelimt)
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+
+ MCFG_GENERIC_LATCH_8_ADD("soundlatch")
+
+ MCFG_SOUND_ADD("ay1", AY8910, 18432000/12)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
+
+ MCFG_SOUND_ADD("ay2", AY8910, 18432000/12)
+ MCFG_AY8910_PORT_A_READ_CB(DEVREAD8("soundlatch", generic_latch_8_device, read))
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
+MACHINE_CONFIG_END
+
+ROM_START( timelimit )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "t8", 0x0000, 0x2000, CRC(006767ca) SHA1(a5d528c58cd73c0101ffa9ab783ec870668256db) )
+ ROM_LOAD( "t7", 0x2000, 0x2000, CRC(cbe7cd86) SHA1(502a78c14c9717a466ea24cdc63da4c0f3bec1f9) )
+ ROM_LOAD( "t6", 0x4000, 0x2000, CRC(f5f17e39) SHA1(7d78f551ce73276725c349703a790f2a63bb5503) )
+ ROM_LOAD( "t9", 0x6000, 0x2000, CRC(2d72ab45) SHA1(01d4afacc01b9e7c49355123efd5f5ad4d79a9cd) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "tl5", 0x0000, 0x1000, CRC(5b782e4a) SHA1(2f4fe2beb8efa5a636fefc1ee172d0200d1c9497) )
+ ROM_LOAD( "tl4", 0x1000, 0x1000, CRC(a32883a9) SHA1(26e1725b67be87db28855672facb1504b8ac84d6) )
+
+ ROM_REGION( 0x2000, "tiles_1", 0 )
+ ROM_LOAD( "tl11", 0x0000, 0x1000, CRC(46676307) SHA1(38fe80722972b6b3ba32705469a0dcb868fb76a9) )
+ ROM_LOAD( "tl10", 0x1000, 0x1000, CRC(2336908a) SHA1(345fc209ce891cc6f8f111c6d3a9e0f65ee6d818) )
+
+ ROM_REGION( 0x2000, "tiles_2", 0 )
+ ROM_LOAD( "tl13", 0x0000, 0x1000, CRC(072e4053) SHA1(209edf7b371078e38d1c2812fa6a3d1a78193b3f) )
+ ROM_LOAD( "tl12", 0x1000, 0x1000, CRC(ce960389) SHA1(57ee52cfa1b5a3832b362b38c8b7aa411dfc782b) )
+
+ ROM_REGION( 0x6000, "sprites", 0 )
+ ROM_LOAD( "tl3", 0x0000, 0x2000, CRC(01a9fd95) SHA1(cd1078700c97a3539c9d9447c55efbd27540a1b3) )
+ ROM_LOAD( "tl2", 0x2000, 0x2000, CRC(4693b849) SHA1(fbebedde53599fb1eaedc648bd704b321ab096b5) )
+ ROM_LOAD( "tl1", 0x4000, 0x2000, CRC(c4007caf) SHA1(ae05af3319545d5ca98a046bfc100138a5a3ed96) )
+
+ ROM_REGION( 0x0060, "proms", 0 )
+ ROM_LOAD( "clr.35", 0x0000, 0x0020, CRC(9c9e6073) SHA1(98496175bf19a8cdb0018705bc1a2193b8a782e1) )
+ ROM_LOAD( "clr.48", 0x0020, 0x0020, CRC(813e17c7) SHA1(25a65d8a841538748348368ebcfce101976406a9) )
+ ROM_LOAD( "clr.57", 0x0040, 0x0020, CRC(aaa6f23e) SHA1(9fcb6af82f725517e8eff86d748701f836a05eba) )
+ROM_END
+
+GAME( 2017, timelimit, timelimt, timelimit, timelimt, timelimt_hbmame, 0, ROT90, "Dink", "Time Limit (colour hack)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/timeplt.cpp b/src/hbmame/drivers/timeplt.cpp
new file mode 100644
index 00000000000..7acb4c37877
--- /dev/null
+++ b/src/hbmame/drivers/timeplt.cpp
@@ -0,0 +1,50 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/timeplt.cpp"
+
+
+/*************************************
+ *
+ * ROM definitions
+ *
+ *************************************/
+
+
+// At normal use, the rom screen is flipped.
+// For proper diagnostics, you must adjust the dips so the SW2 switches are all up (3rd switch doesn't matter).
+// You can then press 1 to get the screen right way up. Follow on-screen prompts for other tests.
+
+
+ROM_START( timepltdiag )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "tm1", 0x0000, 0x2000, CRC(1551f1b9) SHA1(c72f30988ac00cbe6549b71c3bcb414511e8b997) )
+ ROM_LOAD( "tm2", 0x2000, 0x2000, CRC(58636cb5) SHA1(ab517efa93ae7be780af55faea82a6e83edd828c) )
+ ROM_LOAD( "tm3", 0x4000, 0x2000, CRC(ff4e0d83) SHA1(ef98a1abb45b22d7498a0aca520f43bbee248b22) )
+ ROM_LOAD( "diag.5h", 0x6000, 0x2000, CRC(020eac50) SHA1(5459248dbd590393936af4ceef8fabc4a30b0315) )
+
+ ROM_REGION( 0x10000, "tpsound", 0 )
+ ROM_LOAD( "tm7", 0x0000, 0x1000, CRC(d66da813) SHA1(408fca4515e8af84211df3e204c8776b2f8adb23) )
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "tm6", 0x0000, 0x2000, CRC(c2507f40) SHA1(07221875e3f81d9def67c57a7ccd82d52ce65e01) )
+
+ ROM_REGION( 0x4000, "gfx2", 0 )
+ ROM_LOAD( "tm4", 0x0000, 0x2000, CRC(7e437c3e) SHA1(cbe2ccd2cd503af62f009cd5aab73aa7366230b1) )
+ ROM_LOAD( "tm5", 0x2000, 0x2000, CRC(e8ca87b9) SHA1(5dd30d3fb9fd8cf9e6a8e37e7ea858c7fd038a7e) )
+
+ ROM_REGION( 0x0240, "proms", 0 )
+ ROM_LOAD( "timeplt.b4", 0x0000, 0x0020, CRC(34c91839) SHA1(f62e279e21fce171231d3139be7adabe1f4b8c2e) )
+ ROM_LOAD( "timeplt.b5", 0x0020, 0x0020, CRC(463b2b07) SHA1(9ad275365eba4869f94749f39ff8705d92056a10) )
+ ROM_LOAD( "timeplt.e9", 0x0040, 0x0100, CRC(4bbb2150) SHA1(678433b21aae1daa938e32d3293eeed529a42ef9) )
+ ROM_LOAD( "timeplt.e12", 0x0140, 0x0100, CRC(f7b7663e) SHA1(151bd2dff4e4ef76d6438c1ab2cae71f987b9dad) )
+ROM_END
+
+
+
+/*************************************
+ *
+ * Game drivers
+ *
+ *************************************/
+
+GAME( 2015, timepltdiag, timeplt, timeplt, timeplt, timeplt_state, 0, ROT90, "Shoestring", "Time Pilot Tester", MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/tmnt.cpp b/src/hbmame/drivers/tmnt.cpp
new file mode 100644
index 00000000000..81c85ba4152
--- /dev/null
+++ b/src/hbmame/drivers/tmnt.cpp
@@ -0,0 +1,33 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/tmnt.cpp"
+
+ROM_START( ssridersaex )
+ ROM_REGION( 0xc0000, "maincpu", 0 ) /* 2*256k and 2*128k for 68000 code */
+ ROM_LOAD16_BYTE( "064eac02.8e-ex", 0x000000, 0x40000, CRC(536d4a79) SHA1(dec7f827e3a1300ee32e6134b8141ae99a89b50a) )
+ ROM_LOAD16_BYTE( "064eac03.8g-ex", 0x000001, 0x40000, CRC(8ea4c0e8) SHA1(c971df7fdaa801c6351a5df401a7528f000bee06) )
+ ROM_LOAD16_BYTE( "064eab04.10e", 0x080000, 0x20000, CRC(ef2315bd) SHA1(2c8b11321cb5fdb78d760fabca666c0d8cc5b298) )
+ ROM_LOAD16_BYTE( "064eab05.10g", 0x080001, 0x20000, CRC(51d6fbc4) SHA1(e80de7d155b7f263c48ef4ae2702059be3c18e76) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "064e01.2f", 0x0000, 0x10000, CRC(44b9bc52) SHA1(4654d6e14c6956c40a19cb41155accb63f0da338) )
+
+ ROM_REGION( 0x100000, "k052109", 0 ) /* tiles */
+ ROM_LOAD32_WORD( "064e12.16k", 0x000000, 0x080000, CRC(e2bdc619) SHA1(04449deb267b0beacfa33640b593eb16194aa0d9) )
+ ROM_LOAD32_WORD( "064e11.12k", 0x000002, 0x080000, CRC(2d8ca8b0) SHA1(7c882f79c2402cf75979c681071007d76e4db9ae) )
+
+ ROM_REGION( 0x200000, "k053245", 0 ) /* graphics (addressable by the main CPU) */
+ ROM_LOAD32_WORD( "064e09.7l", 0x000000, 0x100000, CRC(4160c372) SHA1(0b36181e5ccd785c7fb89b9f41e458066a42c3b0) ) /* sprites */
+ ROM_LOAD32_WORD( "064e07.3l", 0x000002, 0x100000, CRC(64dd673c) SHA1(bea4d17a71dd21c635866ee69b4892dc9d0ab455) )
+
+ ROM_REGION( 0x100000, "k053260", 0 ) /* samples for the 053260 */
+ ROM_LOAD( "064e06.1d", 0x0000, 0x100000, CRC(59810df9) SHA1(a0affc6330bdbfab1447dc0cf13c20ff708c2c71) )
+
+ ROM_REGION( 0x80, "eeprom", 0 ) // default eeprom to prevent game booting upside down with error
+ ROM_LOAD( "ssriders_abd.nv", 0x0000, 0x080, CRC(bfdafedf) SHA1(bc786d4fb3495a6baf2ae13c19392c6740a2be6d) )
+ //ROM_LOAD( "ssriders_eac.nv", 0x0000, 0x080, CRC(f6d641a7) SHA1(6c680d49e1b07a47b29ff263a6009d226bd120cf) )
+ROM_END
+
+
+// YEAR, NAME, PARENT, MACHINE, INPUT, INIT, MONITOR,COMPANY,FULLNAME,FLAGS
+GAME( 2009, ssridersaex, ssriders, ssriders, ssriders, tmnt_state, 0, ROT0, "Pipi899","Sunset Riders (2 Players ver ABD EX Super Version)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/toaplan2.cpp b/src/hbmame/drivers/toaplan2.cpp
new file mode 100644
index 00000000000..f31fab605fe
--- /dev/null
+++ b/src/hbmame/drivers/toaplan2.cpp
@@ -0,0 +1,117 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/toaplan2.cpp"
+
+ROM_START( batsugunt )
+ ROM_REGION( 0x080000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "tp030_01t.bin", 0x000000, 0x080000, CRC(63d28fd3) SHA1(aa3e111d596f408b735e4f79ab654eea24bd6f0c) )
+
+ ROM_REGION( 0x400000, "gp9001", 0 )
+ ROM_LOAD( "tp030_3l.bin", 0x000000, 0x100000, CRC(3024b793) SHA1(e161db940f069279356fca2c5bf2753f07773705) )
+ ROM_LOAD( "tp030_3h.bin", 0x100000, 0x100000, CRC(ed75730b) SHA1(341f0f728144a049486d996c9bb14078578c6879) )
+ ROM_LOAD( "tp030_4l.bin", 0x200000, 0x100000, CRC(fedb9861) SHA1(4b0917056bd359b21935358c6bcc729262be6417) )
+ ROM_LOAD( "tp030_4h.bin", 0x300000, 0x100000, CRC(d482948b) SHA1(31be7dc5cff072403b783bf203b9805ffcad7284) )
+
+ ROM_REGION( 0x200000, "gp9001_1", 0 )
+ ROM_LOAD( "tp030_5.bin", 0x000000, 0x100000, CRC(bcf5ba05) SHA1(40f98888a29cdd30cda5dfb60fdc667c69b0fdb0) )
+ ROM_LOAD( "tp030_6.bin", 0x100000, 0x100000, CRC(0666fecd) SHA1(aa8f921fc51590b5b05bbe0b0ad0cce5ff359c64) )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "tp030_2.bin", 0x00000, 0x40000, CRC(276146f5) SHA1(bf11d1f6782cefcad77d52af4f7e6054a8f93440) )
+ROM_END
+
+ROM_START( bgareggz )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "prg0z.bin", 0x000000, 0x080000, CRC(6f4af466) SHA1(fb77f3b86c0b25941ae0efe70ca779d06f66f02b) )
+ ROM_LOAD16_BYTE( "prg1z.bin", 0x000001, 0x080000, CRC(b4dc9a48) SHA1(9310a8c1de2a64e5597206a9974f25351d7825c2) )
+
+ ROM_REGION( 0x20000, "audiocpu", 0 )
+ ROM_LOAD( "snd.bin", 0x00000, 0x20000, CRC(68632952) SHA1(fb834db83157948e2b420b6051102a9c6ac3969b) )
+
+ ROM_REGION( 0x800000, "gp9001", 0 )
+ ROM_LOAD( "rom4.bin", 0x000000, 0x200000, CRC(b333d81f) SHA1(5481465f1304334fd55798be2f44324c57c2dbcb) )
+ ROM_LOAD( "rom3.bin", 0x200000, 0x200000, CRC(51b9ebfb) SHA1(30e0c326f5175aa436df8dba08f6f4e08130b92f) )
+ ROM_LOAD( "rom2.bin", 0x400000, 0x200000, CRC(b330e5e2) SHA1(5d48e9d56f99d093b6390e0af1609fd796df2d35) )
+ ROM_LOAD( "rom1.bin", 0x600000, 0x200000, CRC(7eafdd70) SHA1(7c8da8e86c3f9491719b1d7d5d285568d7614f38) )
+
+ ROM_REGION( 0x010000, "text", 0 )
+ ROM_LOAD( "text.u81", 0x00000, 0x08000, CRC(e67fd534) SHA1(987d0edffc2c243a13d4567319ea3d185eaadbf8) )
+
+ ROM_REGION( 0x140000, "oki", 0 )
+ ROM_LOAD( "rom5.bin", 0x040000, 0x100000, CRC(f6d49863) SHA1(3a3c354852adad06e8a051511abfab7606bce382) )
+ROM_END
+
+
+/* This game can be obtained from the Raine site, use a hex editor to zero out the last 4 bytes,
+ and rename the result to "kgpe.05". Thanks goes to the Raine devs for the idea and the rom,
+ and Tourniquet for the byte modification. Without this mod, the rom has the same crc as "ma02rom5.eng"
+ from "kingdmgp", which caused all sorts of confusion and problems. */
+ROM_START( kgpe ) // same as kingdmgp and shippumd, except for rom 05
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "ma02rom1.bin", 0x000000, 0x080000, CRC(a678b149) SHA1(8c1a631e023dbba0a3fa6cd1b7d10dec1663213a) )
+ ROM_LOAD16_BYTE( "ma02rom0.bin", 0x000001, 0x080000, CRC(f226a212) SHA1(526acf3d05fdc88054a772fbea3de2af532bf3d2) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "ma02rom2.bin", 0x00000, 0x10000, CRC(dde8a57e) SHA1(f522a3f17e229c71512464349760a9e27778bf6a) )
+
+ ROM_REGION( 0x400000, "gp9001", 0 )
+ ROM_LOAD( "ma02rom3.bin", 0x000000, 0x200000, CRC(0e797142) SHA1(a480ccd151e49b886d3175a6deff56e1f2c26c3e) )
+ ROM_LOAD( "ma02rom4.bin", 0x200000, 0x200000, CRC(72a6fa53) SHA1(ce92e65205b84361cfb90305a61e9541b5c4dc2f) )
+
+ ROM_REGION( 0x008000, "text", 0 )
+ ROM_LOAD( "kgpe.05", 0x000000, 0x008000, CRC(a0707702) SHA1(b6105291c1ae3d0792e69fd2495c31b56fbf61b7) )
+
+ ROM_REGION( 0x80000, "oki", 0 )
+ ROM_LOAD( "ma02rom6.bin", 0x00000, 0x80000, CRC(199e7cae) SHA1(0f5e13cc8ec42c80bb4bbff90aba29cdb15213d4) )
+ROM_END
+
+ROM_START( mahoudcn )
+ ROM_REGION( 0x080000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "ra_ma_01_01.u65", 0x000000, 0x080000, CRC(970ccc5c) SHA1(c87cab83bde0284e631f02e50068407fee81d941) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "ra-ma-01_02.u66", 0x00000, 0x10000, CRC(eabfa46d) SHA1(402c99ebf88f9025f74f0a28ced22b7882a65eb3) )
+
+ ROM_REGION( 0x200000, "gp9001", 0 )
+ ROM_LOAD( "ra_ma_01_cn.03", 0x000000, 0x100000, CRC(7441e469) SHA1(ba1b127b6878ec45054c7220510a1ec0a8c06a0a) )
+ ROM_LOAD( "ra_ma_01_cn.04", 0x100000, 0x100000, CRC(eb9f8159) SHA1(db8e10b847b0fbb34136c1a320ca0a160ac2646e) )
+
+ ROM_REGION( 0x008000, "text", 0 )
+ ROM_LOAD( "ra_ma_01_05.u81", 0x000000, 0x008000, CRC(c00d1e80) SHA1(53e64c4c0c6309130b37597d13b44a9e95b717d8) )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "ra-ma01-rom1.u57", 0x00000, 0x40000, CRC(6edb2ab8) SHA1(e3032e8eda2686f30df4b7a088c5a4d4d45782ed) )
+ROM_END
+
+
+
+GAME( 1993, batsugunt, batsugun, batsugun, batsugun, toaplan2_state, dogyuun, ROT270, "Eezezy", "Batsugun Transparent (HACK BY EEZEZY(LB70))", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, bgareggz, bgaregga, bgaregga, bgaregga, toaplan2_state, bgaregga, ROT270, "Zack", "Battle Garegga (Europe / USA / Japan / Asia) (Zakk version)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, kgpe, kingdmgp, shippumd, kingdmgp, toaplan2_state, 0, ROT270, "Neil Corlett", "Kingdom Grand Prix" , MACHINE_SUPPORTS_SAVE )
+GAME( 1993, mahoudcn, sstriker, mahoudai, mahoudai, toaplan2_state, 0, ROT270, "Raizing (Able license)", "Mahou Daisakusen (Chinese)", MACHINE_SUPPORTS_SAVE )
+
+//PSmame
+
+ROM_START( snowbro2xs )
+ ROM_REGION( 0x080000, "maincpu", 0 )
+ ROM_LOAD16_WORD_SWAP( "pro-4xs", 0x000000, 0x080000, CRC(1ad75ae7) SHA1(4c9d7480df4b94aaee5616939547456a0c560f19) )
+
+ ROM_REGION( 0x300000, "gp9001", 0 )
+ ROM_LOAD( "rom2-l", 0x000000, 0x100000, CRC(e9d366a9) SHA1(e87e3966fce3395324b90db6c134b3345104c04b) )
+ ROM_LOAD( "rom2-h", 0x100000, 0x080000, CRC(9aab7a62) SHA1(611f6a15fdbac5d3063426a365538c1482e996bf) )
+ ROM_LOAD( "rom3-l", 0x180000, 0x100000, CRC(eb06e332) SHA1(7cd597bfffc153d178530c0f0903bebd751c9dd1) )
+ ROM_LOAD( "rom3-h", 0x280000, 0x080000, CRC(df4a952a) SHA1(b76af61c8437caca573ff1312832898666a611aa) )
+
+ ROM_REGION( 0x80000, "oki", 0 )
+ ROM_LOAD( "rom4", 0x00000, 0x80000, CRC(638f341e) SHA1(aa3fca25f099339ece1878ea730c5e9f18ec4823) )
+ROM_END
+
+/*************************************
+ *
+ * Game driver(s)
+ *
+ *************************************/
+// Proyecto Shadows Mame Build Plus
+/* YEAR NAME PARENT MACHINE INPUT INIT MONITOR COMPANY FULLNAME FLAGS */
+GAME( 1994, snowbro2xs, snowbro2, snowbro2, snowbro2, driver_device, 0, ROT0, "Hacks", "Snow Bros 2 (Max Power, Easy Change The Character)", MACHINE_SUPPORTS_SAVE )
+
diff --git a/src/hbmame/drivers/trackfld.cpp b/src/hbmame/drivers/trackfld.cpp
new file mode 100644
index 00000000000..885d23adcf4
--- /dev/null
+++ b/src/hbmame/drivers/trackfld.cpp
@@ -0,0 +1,75 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/trackfld.cpp"
+
+ROM_START( athens04 ) // same as trackfld except where indicated
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "a01_e01.bin", 0x6000, 0x2000, CRC(2882f6d4) SHA1(f7ddae2c5412a2849efd7f9629e92a5b0328e7cb) )
+ ROM_LOAD( "a02_e02.bin", 0x8000, 0x2000, CRC(1743b5ee) SHA1(31301031a525f893c31461f634350f01a9492ef4) )
+ ROM_LOAD( "athens04.k03", 0xa000, 0x2000, CRC(2dd0e765) SHA1(4f832db55d9614ea733eaf53bf8a35d673bf5cba) )
+ ROM_LOAD( "a04_e04.bin", 0xc000, 0x2000, CRC(21d6c448) SHA1(6c42cc76302485954a31520bdd08469fa948c72f) )
+ ROM_LOAD( "a05_e05.bin", 0xe000, 0x2000, CRC(f08c7b7e) SHA1(50e65d9b0ea37d2afb2dfdf1f3e1378e3290bc81) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "c2_d13.bin", 0x0000, 0x2000, CRC(95bf79b6) SHA1(ea9135acd7ad162c19c5cdde356e69792d61b675) )
+
+ ROM_REGION( 0x8000, "gfx1", 0 )
+ ROM_LOAD( "c11_d06.bin", 0x0000, 0x2000, CRC(82e2185a) SHA1(1da9ea20e7af0b49c62fb39834a7ec686491af04) )
+ ROM_LOAD( "c12_d07.bin", 0x2000, 0x2000, CRC(800ff1f1) SHA1(33d73b18903e3e6bfb30f1a06db4b8105d4040d8) )
+ ROM_LOAD( "c13_d08.bin", 0x4000, 0x2000, CRC(d9faf183) SHA1(4448b6242790783d37acf50704d597af5878c2ab) )
+ ROM_LOAD( "c14_d09.bin", 0x6000, 0x2000, CRC(5886c802) SHA1(884a12a8f63600da4f23b29be6dbaacef37add20) )
+
+ ROM_REGION( 0x6000, "gfx2", 0 )
+ ROM_LOAD( "athens04.e12", 0x0000, 0x2000, CRC(29908ce9) SHA1(6f80f4962059f3422282f3e30c55c73407d9cf4c) )
+ ROM_LOAD( "athens04.e11", 0x2000, 0x2000, CRC(7a534ca1) SHA1(0bcf582662e93f96a2ebe6bd52ee8f8e8f36c24c) )
+ ROM_LOAD( "h14_e10.bin", 0x4000, 0x2000, CRC(c2166a5c) SHA1(5ba25900e653ce4edcf35f1fbce758a327a715ce) )
+
+ ROM_REGION( 0x0220, "proms", 0 )
+ ROM_LOAD( "361b16.f1", 0x0000, 0x0020, CRC(d55f30b5) SHA1(4d6a851f4886778307f75771645078b97ad55f5f) )
+ ROM_LOAD( "361b17.b16", 0x0020, 0x0100, CRC(d2ba4d32) SHA1(894b5cedf01ba9225a0d6215291857e455b84903) )
+ ROM_LOAD( "361b18.e15", 0x0120, 0x0100, CRC(053e5861) SHA1(6740a62cf7b6938a4f936a2fed429704612060a5) )
+
+ ROM_REGION( 0x2000, "vlm", 0 )
+ ROM_LOAD( "c9_d15.bin", 0x0000, 0x2000, CRC(f546a56b) SHA1(caee3d8546eb7a75ce2a578c6a1a630246aec6b8) )
+ROM_END
+
+/* ATHENS 2004
+
+HACK by The Gameland Crew (http://www.gameland.gr)
+Maddog, Whacker, Badge, Geoanas */
+
+GAME( 2004, athens04, trackfld, trackfld, trackfld, trackfld_state, trackfld, ROT0, "Gameland.gr", "Athens 2004", MACHINE_SUPPORTS_SAVE )
+
+ROM_START( tst_trkfld )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "testrom13beta", 0x6000, 0x2000, CRC(81f91de1) SHA1(66d1bfec31167c1acda7b1ff0b534730ff58ff3e) )
+ ROM_LOAD( "a02_e02.bin", 0x8000, 0x2000, CRC(1743b5ee) SHA1(31301031a525f893c31461f634350f01a9492ef4) )
+ ROM_LOAD( "a03_k03.bin", 0xa000, 0x2000, CRC(6c0d1ee9) SHA1(380ab2162153a61910a6fe5b6d091ca9451ad4fd) )
+ ROM_LOAD( "a04_e04.bin", 0xc000, 0x2000, CRC(21d6c448) SHA1(6c42cc76302485954a31520bdd08469fa948c72f) )
+ ROM_LOAD( "a05_e05.bin", 0xe000, 0x2000, CRC(f08c7b7e) SHA1(50e65d9b0ea37d2afb2dfdf1f3e1378e3290bc81) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "c2_d13.bin", 0x0000, 0x2000, CRC(95bf79b6) SHA1(ea9135acd7ad162c19c5cdde356e69792d61b675) )
+
+ ROM_REGION( 0x8000, "gfx1", 0 )
+ ROM_LOAD( "c11_d06.bin", 0x0000, 0x2000, CRC(82e2185a) SHA1(1da9ea20e7af0b49c62fb39834a7ec686491af04) )
+ ROM_LOAD( "c12_d07.bin", 0x2000, 0x2000, CRC(800ff1f1) SHA1(33d73b18903e3e6bfb30f1a06db4b8105d4040d8) )
+ ROM_LOAD( "c13_d08.bin", 0x4000, 0x2000, CRC(d9faf183) SHA1(4448b6242790783d37acf50704d597af5878c2ab) )
+ ROM_LOAD( "c14_d09.bin", 0x6000, 0x2000, CRC(5886c802) SHA1(884a12a8f63600da4f23b29be6dbaacef37add20) )
+
+ ROM_REGION( 0x6000, "gfx2", 0 )
+ ROM_LOAD( "h16_e12.bin", 0x0000, 0x2000, CRC(50075768) SHA1(dfff92c0f59dd3d8d3d6256944bfd48792cef6a9) )
+ ROM_LOAD( "h15_e11.bin", 0x2000, 0x2000, CRC(dda9e29f) SHA1(0f41cde82bb60c3f1591ee14dc3cff4642bbddc1) )
+ ROM_LOAD( "h14_e10.bin", 0x4000, 0x2000, CRC(c2166a5c) SHA1(5ba25900e653ce4edcf35f1fbce758a327a715ce) )
+
+ ROM_REGION( 0x0220, "proms", 0 )
+ ROM_LOAD( "361b16.f1", 0x0000, 0x0020, CRC(d55f30b5) SHA1(4d6a851f4886778307f75771645078b97ad55f5f) )
+ ROM_LOAD( "361b17.b16", 0x0020, 0x0100, CRC(d2ba4d32) SHA1(894b5cedf01ba9225a0d6215291857e455b84903) )
+ ROM_LOAD( "361b18.e15", 0x0120, 0x0100, CRC(053e5861) SHA1(6740a62cf7b6938a4f936a2fed429704612060a5) )
+
+ ROM_REGION( 0x2000, "vlm", 0 )
+ ROM_LOAD( "c9_d15.bin", 0x0000, 0x2000, CRC(f546a56b) SHA1(caee3d8546eb7a75ce2a578c6a1a630246aec6b8) )
+ROM_END
+
+// http://www.jammarcade.net/track-field-test-rom-beta/
+GAME( 2015, tst_trkfld, trackfld, trackfld, trackfld, trackfld_state, trackfld, ROT0, "Shoestring", "Test Rom - Track and Field", MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/twincobr.cpp b/src/hbmame/drivers/twincobr.cpp
new file mode 100644
index 00000000000..105031d7f30
--- /dev/null
+++ b/src/hbmame/drivers/twincobr.cpp
@@ -0,0 +1,96 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/twincobr.cpp"
+
+ROM_START( twincbu2 )
+ ROM_REGION( 0x30000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "b30_01.7j", 0x00000, 0x10000, CRC(07f64d13) SHA1(864ce0f9369c40c3ae792fc4ab2444a168214749) )
+ ROM_LOAD16_BYTE( "b30_03.7h", 0x00001, 0x10000, CRC(41be6978) SHA1(4784804b738a332c7f24a43bcbb7a1e607365735) )
+ ROM_LOAD16_BYTE( "tcbra26.bin", 0x20000, 0x08000, CRC(bdd00ba4) SHA1(b76b22f03eb4b821a8c555edd9fcee814f2e66a7) )
+ ROM_LOAD16_BYTE( "tcbra27.bin", 0x20001, 0x08000, CRC(ed600907) SHA1(e5964db9eab2c334940795d71cb90f6679490227) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "b30-05", 0x00000, 0x08000, CRC(1a8f1e10) SHA1(0c37a7a50b2523506ad77ac03ae752eb94092ff6) )
+
+ ROM_REGION( 0x2000, "dsp", 0 )
+ ROM_LOAD16_BYTE( "dsp_22.bin", 0x0001, 0x0800, CRC(79389a71) SHA1(14ec4c1c9b06702319e89a7a250d0038393437f4) )
+ ROM_LOAD16_BYTE( "dsp_21.bin", 0x0000, 0x0800, CRC(2d135376) SHA1(67a2cc774d272ee1cd6e6bc1c5fc33fc6968837e) )
+
+ ROM_REGION( 0x0c000, "gfx1", 0 )
+ ROM_LOAD( "b30_08.8c", 0x00000, 0x04000, CRC(0a254133) SHA1(17e9cc5e36fb4696012d0f9229fa172034cd843a) )
+ ROM_LOAD( "b30_07.128", 0x04000, 0x04000, CRC(3160894d) SHA1(234951e2aa4002e23781f8ed3be64b71b0400e9f) )
+ ROM_LOAD( "b30_06.8b", 0x08000, 0x04000, CRC(a599d845) SHA1(732001f2d378d890f148e6b616c287d71fae832a) )
+
+ ROM_REGION( 0x40000, "gfx2", 0 )
+ ROM_LOAD( "b30_15.512", 0x00000, 0x10000, CRC(88795b18) SHA1(73bd28ef12576cf54630304c3c0f8a08141a321f) )
+ ROM_LOAD( "b30_16.512", 0x10000, 0x10000, CRC(e6f421d2) SHA1(82da99d017780d0e52988dc8ebfcd16b54d34b6b) )
+ ROM_LOAD( "b30_13.18c", 0x20000, 0x10000, CRC(13daeac8) SHA1(1cb103f434e2ecf193fa936ca7ea9194064c5b39) )
+ ROM_LOAD( "b30_14.20c", 0x30000, 0x10000, CRC(8cc79357) SHA1(31064df2b796ca85ad3caccf626b684dff1104a1) )
+
+ ROM_REGION( 0x20000, "gfx3", 0 )
+ ROM_LOAD( "b30_12.16c", 0x00000, 0x08000, CRC(b5d48389) SHA1(a00c5b9c231d3d580fa20c7ad3f8b6fd990e6594) )
+ ROM_LOAD( "b30_11.14c", 0x08000, 0x08000, CRC(97f20fdc) SHA1(7cb3cd0637b0db889a3d552fd7c1a916eee5ca27) )
+ ROM_LOAD( "b30_10.12c", 0x10000, 0x08000, CRC(170c01db) SHA1(f4c5a1600f6cbb48abbace66c6f7514f79138e8b) )
+ ROM_LOAD( "b30_09.10c", 0x18000, 0x08000, CRC(44f5accd) SHA1(2f9bdebe71c8be195332356df68992fd38d86994) )
+
+ ROM_REGION( 0x40000, "scu", 0 )
+ ROM_LOAD( "b30_20.12d", 0x00000, 0x10000, CRC(cb4092b8) SHA1(35b1d1e04af760fa106124bd5a94174d63ff9705) )
+ ROM_LOAD( "b30_19.512", 0x10000, 0x10000, CRC(4043ad5a) SHA1(bf14829ec800dab9ac6e385bddcab303301df530) )
+ ROM_LOAD( "b30_18.512", 0x20000, 0x10000, CRC(cdc16155) SHA1(9f41695409dbf72c2a66911aaa94b8fe5f6acc01) )
+ ROM_LOAD( "b30_17.16d", 0x30000, 0x10000, CRC(4264bff8) SHA1(3271b8b23f51346d1928ae01f8b547fed49181e6) )
+
+ ROM_REGION( 0x260, "proms", 0 )
+ ROM_LOAD( "82s129.d3", 0x000, 0x100, CRC(24e7d62f) SHA1(1c06a1ef1b6a722794ca1d5ee2c476ecaa5178a3) )
+ ROM_LOAD( "82s129.d4", 0x100, 0x100, CRC(a50cef09) SHA1(55cafb5b2551b80ae708e9b966cf37c70a16d310) )
+ ROM_LOAD( "82s123.d2", 0x200, 0x020, CRC(f72482db) SHA1(b0cb911f9c81f6088a5aa8760916ddae1f8534d7) )
+ ROM_LOAD( "82s123.e18", 0x220, 0x020, CRC(bc88cced) SHA1(5055362710c0f58823c05fb4c0e0eec638b91e3d) )
+ ROM_LOAD( "82s123.b24", 0x240, 0x020, CRC(4fb5df2a) SHA1(506ef2c8e4cf45c256d6831a0a5760732f2de422) )
+ROM_END
+
+ROM_START( twintwst )
+ ROM_REGION( 0x30000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "b30_01.7j", 0x00000, 0x10000, CRC(07f64d13) SHA1(864ce0f9369c40c3ae792fc4ab2444a168214749) )
+ ROM_LOAD16_BYTE( "b30_03.7h", 0x00001, 0x10000, CRC(41be6978) SHA1(4784804b738a332c7f24a43bcbb7a1e607365735) )
+ ROM_LOAD16_BYTE( "b30_26_ii.8j", 0x20000, 0x08000, CRC(3a646618) SHA1(fc1ed8f3c491f5cf16a17e5ce08c5d8f3ce03683) )
+ ROM_LOAD16_BYTE( "b30_27_ii.8h", 0x20001, 0x08000, CRC(d7d1e317) SHA1(57b8433b1677a390a7c7e00a1464bb8ed9cbfc73) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "b30_05_ii.4f", 0x00000, 0x08000, CRC(e37b3c44) SHA1(5fed10b29c14e27aee0cd92ecde5c5cb422273b1) )
+
+ ROM_REGION( 0x2000, "dsp", 0 )
+ ROM_LOAD16_BYTE( "dsp_22.bin", 0x0001, 0x0800, CRC(79389a71) SHA1(14ec4c1c9b06702319e89a7a250d0038393437f4) )
+ ROM_LOAD16_BYTE( "dsp_21.bin", 0x0000, 0x0800, CRC(2d135376) SHA1(67a2cc774d272ee1cd6e6bc1c5fc33fc6968837e) )
+
+ ROM_REGION( 0x0c000, "gfx1", 0 )
+ ROM_LOAD( "b30_08.8c", 0x00000, 0x04000, CRC(0a254133) SHA1(17e9cc5e36fb4696012d0f9229fa172034cd843a) )
+ ROM_LOAD( "b30_07.10b", 0x04000, 0x04000, CRC(e9e2d4b1) SHA1(e0a19dd46a9ba85d95bba7fbf81d8dc36dbfeabd) )
+ ROM_LOAD( "b30_06.8b", 0x08000, 0x04000, CRC(a599d845) SHA1(732001f2d378d890f148e6b616c287d71fae832a) )
+
+ ROM_REGION( 0x40000, "gfx2", 0 )
+ ROM_LOAD( "b30_16.20b", 0x00000, 0x10000, CRC(15b3991d) SHA1(f5e7ed7a7721ed7e6dfd440634160390b7a294e4) )
+ ROM_LOAD( "b30_15.18b", 0x10000, 0x10000, CRC(d9e2e55d) SHA1(0409e6df836d1d5198b64b21b42192631aa6d096) )
+ ROM_LOAD( "b30_13.18c", 0x20000, 0x10000, CRC(13daeac8) SHA1(1cb103f434e2ecf193fa936ca7ea9194064c5b39) )
+ ROM_LOAD( "b30_14.20c", 0x30000, 0x10000, CRC(8cc79357) SHA1(31064df2b796ca85ad3caccf626b684dff1104a1) )
+
+ ROM_REGION( 0x20000, "gfx3", 0 )
+ ROM_LOAD( "b30_12.16c", 0x00000, 0x08000, CRC(b5d48389) SHA1(a00c5b9c231d3d580fa20c7ad3f8b6fd990e6594) )
+ ROM_LOAD( "b30_11.14c", 0x08000, 0x08000, CRC(97f20fdc) SHA1(7cb3cd0637b0db889a3d552fd7c1a916eee5ca27) )
+ ROM_LOAD( "b30_10.12c", 0x10000, 0x08000, CRC(170c01db) SHA1(f4c5a1600f6cbb48abbace66c6f7514f79138e8b) )
+ ROM_LOAD( "b30_09.10c", 0x18000, 0x08000, CRC(44f5accd) SHA1(2f9bdebe71c8be195332356df68992fd38d86994) )
+
+ ROM_REGION( 0x40000, "scu", 0 )
+ ROM_LOAD( "tcw20", 0x00000, 0x10000, CRC(41c8f4ea) SHA1(9da6911b89b5cf49b64a8bcb12ab191cc98316f2) )
+ ROM_LOAD( "tcw19", 0x10000, 0x10000, CRC(8d5db99e) SHA1(33a1a51396fd289ee23ea1c645bc85bfed37848d) )
+ ROM_LOAD( "tcw18", 0x20000, 0x10000, CRC(eade1ca3) SHA1(af62d4b3a4072d6b0970a47ab6ef68987bac9c93) )
+ ROM_LOAD( "tcw17", 0x30000, 0x10000, CRC(6a559622) SHA1(8a07f792efea9d521a5fd0169a5d6c15fe615d5d) )
+
+ ROM_REGION( 0x260, "proms", 0 )
+ ROM_LOAD( "82s129.d3", 0x000, 0x100, CRC(24e7d62f) SHA1(1c06a1ef1b6a722794ca1d5ee2c476ecaa5178a3) )
+ ROM_LOAD( "82s129.d4", 0x100, 0x100, CRC(a50cef09) SHA1(55cafb5b2551b80ae708e9b966cf37c70a16d310) )
+ ROM_LOAD( "82s123.d2", 0x200, 0x020, CRC(f72482db) SHA1(b0cb911f9c81f6088a5aa8760916ddae1f8534d7) )
+ ROM_LOAD( "82s123.e18", 0x220, 0x020, CRC(bc88cced) SHA1(5055362710c0f58823c05fb4c0e0eec638b91e3d) )
+ ROM_LOAD( "82s123.b24", 0x240, 0x020, CRC(4fb5df2a) SHA1(506ef2c8e4cf45c256d6831a0a5760732f2de422) )
+ROM_END
+
+GAME( 2002, twincbu2, twincobr, twincobr, twincobru, twincobr_state, twincobr, ROT270, "[Hack]", "Twin Cobra (Hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, twintwst, twincobr, twincobr, twincobr, twincobr_state, twincobr, ROT270, "[Hack]", "Twin Twist (Twin Cobra Hack)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/volfied.cpp b/src/hbmame/drivers/volfied.cpp
new file mode 100644
index 00000000000..8e1b37d236e
--- /dev/null
+++ b/src/hbmame/drivers/volfied.cpp
@@ -0,0 +1,36 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/volfied.cpp"
+
+ROM_START( volfiedg ) // roms that don't end in g are same as volfied
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "c04-12-1.30g", 0x00000, 0x10000, CRC(f13c5621) SHA1(b50aaadb1a3128aa5ecbab2a1450c5e817f33620) )
+ ROM_LOAD16_BYTE( "c04-08-1.10g", 0x00001, 0x10000, CRC(b7e5472e) SHA1(68323e46ffee7cf8d2119405543353691673ac05) )
+ ROM_LOAD16_BYTE( "c04-11-1.29g", 0x20000, 0x10000, CRC(54730fe3) SHA1(796693cd2cfb539f6691aa4e359c47cfd7348734) )
+ ROM_LOAD16_BYTE( "c04-25-1.9g", 0x20001, 0x10000, CRC(cff7aee1) SHA1(1d9a3ddebafb8b8b4075de2946a250156f81fb54) )
+ ROM_LOAD16_BYTE( "c04-20.7g", 0x80000, 0x20000, CRC(7614c798) SHA1(7465f2eaeab73f047cc9f41f5a00173c34636513) )
+ ROM_LOAD16_BYTE( "c04-22.9g", 0x80001, 0x20000, CRC(aa6e8da8) SHA1(014eb2b5ba89e267a915ea647a71fdd8413099c7) )
+ ROM_LOAD16_BYTE( "c04-19.6", 0xc0000, 0x20000, CRC(231493ae) SHA1(2658e6556fd0e75ddd0f0b8628cfa5237c187a06) )
+ ROM_LOAD16_BYTE( "c04-21.8", 0xc0001, 0x20000, CRC(8598d38e) SHA1(4ec1b819586b50e2f6aff2aaa5e3b06704b9bec2) )
+
+ ROM_REGION( 0x2000, "cchip:cchip_eprom", ROMREGION_ERASE00 )
+
+ ROM_REGION( 0xc0000, "gfx1", 0 )
+ ROM_LOAD16_BYTE( "c04-16.2g", 0x00000, 0x20000, CRC(1c6963a9) SHA1(2dc4b6838c95497e019c03582a8f7ecb48fa97a8) )
+ ROM_LOAD16_BYTE( "c04-18.4g", 0x00001, 0x20000, CRC(67ea587f) SHA1(2b43ba53cc563d3462a4bec430427f92290f2b23) )
+ ROM_LOAD16_BYTE( "c04-15.1", 0x40000, 0x20000, CRC(7c50b978) SHA1(aa9cad5f09f5d9dceaf4e06bcd347f1d5d02d292) )
+ ROM_LOAD16_BYTE( "c04-17.3", 0x40001, 0x20000, CRC(c62fdeb8) SHA1(a9f6ca8335071169d772e65a9f5315a22a310b25) )
+ ROM_LOAD16_BYTE( "c04-10.15", 0x80000, 0x10000, CRC(429b6b49) SHA1(dcb0c8bc9d67643d96b2ffdf5ccd747318704c37) )
+ ROM_RELOAD ( 0xa0000, 0x10000 )
+ ROM_LOAD16_BYTE( "c04-09.14", 0x80001, 0x10000, CRC(c78cf057) SHA1(097982e57b1d20fbdf21986c23684adefe6f1ce1) )
+ ROM_RELOAD ( 0xa0001, 0x10000 )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "c04-06.71", 0x0000, 0x8000, CRC(b70106b2) SHA1(d71062f9d9b11492e13fc93982b95883f564f902) )
+
+ ROM_REGION( 0x00400, "proms", 0 ) /* unused PROMs */
+ ROM_LOAD_OPTIONAL( "c04-4-1.3", 0x00000, 0x00200, CRC(ab9fae65) SHA1(e2b29606aa63e42e041d3c47216551f62846bd99) )
+ ROM_LOAD_OPTIONAL( "c04-5.75", 0x00200, 0x00200, CRC(2763ec89) SHA1(1e8339e21ee35b526d8604a21cfed9a1ac6455e8) )
+ROM_END
+
+GAME( 2005, volfiedg, volfied, volfied, volfied, volfied_state, 0, ROT270, "GreekRoms", "Volfied (Greek)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/vsnes.cpp b/src/hbmame/drivers/vsnes.cpp
new file mode 100644
index 00000000000..d9c343df629
--- /dev/null
+++ b/src/hbmame/drivers/vsnes.cpp
@@ -0,0 +1,34 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/vsnes.cpp"
+
+ROM_START( mrio2002 )
+ ROM_REGION( 0x10000,"maincpu", 0 ) /* 6502 memory */
+ ROM_LOAD( "mds-sm4.1d", 0x8000, 0x2000, CRC(be4d5436) SHA1(08162a7c987f1939d09bebdb676f596c86abf465) )
+ ROM_LOAD( "mds-sm4.1c", 0xa000, 0x2000, CRC(0011fc5a) SHA1(5c2c49938a12affc03e64e5bdab307998be20020) )
+ ROM_LOAD( "mds-sm4.1b", 0xc000, 0x2000, CRC(b1b87893) SHA1(8563ceaca664cf4495ef1020c07179ca7e4af9f3) )
+ ROM_LOAD( "mds-sm4.1a", 0xe000, 0x2000, CRC(1abf053c) SHA1(f17db88ce0c9bf1ed88dc16b9650f11d10835cec) )
+
+ ROM_REGION( 0x4000,"gfx1", 0 ) /* PPU memory */
+ ROM_LOAD( "mrio2002.2b", 0x0000, 0x2000, CRC(1feda640) SHA1(f26be31f43dacdaa9d8bffa75f4fcd9d8d04953a) )
+ ROM_LOAD( "mds-sm4.2a", 0x2000, 0x2000, CRC(15506b86) SHA1(69ecf7a3cc8bf719c1581ec7c0d68798817d416f) )
+
+ PALETTE_2C04_0004
+ROM_END
+
+ROM_START( suprsktr )
+ ROM_REGION( 0x10000,"maincpu", 0 ) /* 6502 memory */
+ ROM_LOAD( "mds-sm4.1d", 0x8000, 0x2000, CRC(be4d5436) SHA1(08162a7c987f1939d09bebdb676f596c86abf465) )
+ ROM_LOAD( "mds-sm4.1c", 0xa000, 0x2000, CRC(0011fc5a) SHA1(5c2c49938a12affc03e64e5bdab307998be20020) )
+ ROM_LOAD( "mds-sm4.1b", 0xc000, 0x2000, CRC(b1b87893) SHA1(8563ceaca664cf4495ef1020c07179ca7e4af9f3) )
+ ROM_LOAD( "mds-sm4.1a", 0xe000, 0x2000, CRC(1abf053c) SHA1(f17db88ce0c9bf1ed88dc16b9650f11d10835cec) )
+
+ ROM_REGION( 0x4000,"gfx1", 0 ) /* PPU memory */
+ ROM_LOAD( "suprsktr.2b", 0x0000, 0x2000, CRC(f3980303) SHA1(b9a25c906d1861c89e2e40e878a34d318daf6619) )
+ ROM_LOAD( "mds-sm4.2a", 0x2000, 0x2000, CRC(15506b86) SHA1(69ecf7a3cc8bf719c1581ec7c0d68798817d416f) )
+
+ PALETTE_2C04_0004
+ROM_END
+
+GAME( 2002, mrio2002, suprmrio, vsnes, suprmrio, vsnes_state, vsnormal, ROT0, "Nintendo", "Vs. Super Mario Bros. 2002", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, suprsktr, suprmrio, vsnes, suprmrio, vsnes_state, vsnormal, ROT0, "Nintendo", "Vs. Super Skater Bros.", MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/williams.cpp b/src/hbmame/drivers/williams.cpp
new file mode 100644
index 00000000000..e8384b577d8
--- /dev/null
+++ b/src/hbmame/drivers/williams.cpp
@@ -0,0 +1,130 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/williams.cpp"
+
+ROM_START( defender2 )
+ ROM_REGION( 0x19000, "maincpu", 0 )
+ ROM_LOAD( "10", 0x0d000, 0x1000, CRC(4d82fc2f) SHA1(b11dc3f3f2100ab14ad5b26cd333b212c454cc8d) )
+ ROM_LOAD( "11", 0x0e000, 0x1000, CRC(561fad3f) SHA1(597851e78423f30341f682f3fc62bf24cf9e8a91) )
+ ROM_LOAD( "12", 0x0f000, 0x1000, CRC(836eacca) SHA1(f788fc2a25adffa21e02a3dfe2074e8719405200) )
+ ROM_LOAD( "01", 0x10000, 0x1000, CRC(88824d18) SHA1(f003a5a9319c4eb8991fa2aae3f10c72d6b8e81a) )
+ ROM_LOAD( "02", 0x11000, 0x1000, CRC(afc614c5) SHA1(087c6da93318e8dc922d3d22e0a2af7b9759701c) )
+ ROM_LOAD( "03", 0x12000, 0x1000, CRC(6dd57970) SHA1(1fdee9180bfb835f35ac786116e0f8d7833f2c3f) )
+ ROM_LOAD( "04", 0x13000, 0x1000, CRC(a8b4bf0f) SHA1(6b4d47c2899fe9f14f9dab5928499f12078c437d) )
+ ROM_LOAD( "05", 0x14000, 0x1000, CRC(2d306074) SHA1(54f871983699113e31bb756d4ca885c26c2d66b4) )
+ ROM_LOAD( "06", 0x15000, 0x1000, CRC(53598dde) SHA1(54b02d944caf95283c9b6f0160e75ea8c4ccc97b) )
+ ROM_LOAD( "07", 0x16000, 0x1000, CRC(55b5b0d2) SHA1(dcf392a899fb6c225c4e31034e242e575c3dc94d) )
+ ROM_LOAD( "08", 0x17000, 0x1000, CRC(b4f22d4d) SHA1(2486e895628df9ae1268d9eb2434f240dba99f70) )
+ ROM_LOAD( "09", 0x18000, 0x1000, CRC(6df7463d) SHA1(b80c2872fc47b4b604967f176e3931cd992dd692) )
+
+ ROM_REGION( 0x10000, "soundcpu", 0 )
+ ROM_LOAD( "sg.snd", 0xf800, 0x0800, CRC(2fcf6c4d) SHA1(9c4334ac3ff15d94001b22fc367af40f9deb7d57) )
+
+ ROM_REGION( 0x0400, "proms", 0 )
+ ROM_LOAD( "decoder.4", 0x0000, 0x0200, CRC(e6631c23) SHA1(9988723269367fb44ef83f627186a1c88cf7877e) )
+ ROM_LOAD( "decoder.5", 0x0200, 0x0200, CRC(f921c5fe) SHA1(9cebb8bb935315101d248140d1b4503993ebdf8a) )
+ROM_END
+
+ROM_START( splatsc1 )
+ ROM_REGION( 0x19000, "maincpu", 0 )
+ ROM_LOAD( "splatsc1.10", 0x0d000, 0x1000, CRC(6cc2988a) SHA1(bd0648185ab859afc981d4e8ab954ed1f39303e4) )
+ ROM_LOAD( "splatsc1.11", 0x0e000, 0x1000, CRC(ee960115) SHA1(b3a03b14f7ee97d55b948ecc09c5e4006c31f0ce) )
+ ROM_LOAD( "splatsc1.12", 0x0f000, 0x1000, CRC(21916fce) SHA1(6896afd10c30d90b807b60f90fced7114b1812e3) )
+ ROM_LOAD( "splat.01", 0x10000, 0x1000, CRC(1cf26e48) SHA1(6ba4de6cc7d1359ed450da7bae1000552373f873) )
+ ROM_LOAD( "splat.02", 0x11000, 0x1000, CRC(ac0d4276) SHA1(710aba98909d5d63c4b9b08579021f9c026b3111) )
+ ROM_LOAD( "splat.03", 0x12000, 0x1000, CRC(74873e59) SHA1(727c9da682fd10353f3969ef02e9f1826d8cb77a) )
+ ROM_LOAD( "splat.04", 0x13000, 0x1000, CRC(70a7064e) SHA1(7e6440585462b68b62d6d571d83635bf17149f1a) )
+ ROM_LOAD( "splatsc1.05", 0x14000, 0x1000, CRC(6989e923) SHA1(383d831084cf79e3961125142d1e3bf4fad1ac66) )
+ ROM_LOAD( "splatsc1.06", 0x15000, 0x1000, CRC(82b22e55) SHA1(d71c6598f6a43f47f6752c803069efeb877bf1f0) )
+ ROM_LOAD( "splatsc1.07", 0x16000, 0x1000, CRC(e0c4230c) SHA1(2795732725f63e766ee23744147bf002373bc5f7) )
+ ROM_LOAD( "splatsc1.08", 0x17000, 0x1000, CRC(42ff589f) SHA1(72c9b40c9291a6b97f637c6424265b30227d87c6) )
+ ROM_LOAD( "splatsc1.09", 0x18000, 0x1000, CRC(f67564be) SHA1(3fda9032953e4f75df838616d1c7023a1f2e9861) )
+
+ ROM_REGION( 0x10000, "soundcpu", 0 )
+ ROM_LOAD( "splat.snd", 0xf000, 0x1000, CRC(a878d5f3) SHA1(f3347a354cb54ca228fe0971f0ae3bc778e2aecf) )
+
+ ROM_REGION( 0x0400, "proms", 0 )
+ ROM_LOAD( "decoder.4", 0x0000, 0x0200, CRC(e6631c23) SHA1(9988723269367fb44ef83f627186a1c88cf7877e) )
+ ROM_LOAD( "decoder.6", 0x0200, 0x0200, CRC(83faf25e) SHA1(30002643d08ed983a6701a7c4b5ee74a2f4a1adb) )
+ROM_END
+
+ROM_START( robotron201 )
+ ROM_REGION( 0x19000, "maincpu", 0 )
+ ROM_LOAD( "robotron.sba", 0x0d000, 0x1000, CRC(13797024) SHA1(d426a50e75dabe936de643c83a548da5e399331c) )
+ ROM_LOAD( "robotronp.sbb", 0x0e000, 0x1000, CRC(e83a2eda) SHA1(4a62fcd2f91dfb609c3d2c300bd9e6cb60edf52e) )
+ ROM_LOAD( "robotron.sbc", 0x0f000, 0x1000, CRC(645d543e) SHA1(fad7cea868ebf17347c4bc5193d647bbd8f9517b) )
+ ROM_LOAD( "robotron.sb1", 0x10000, 0x1000, CRC(66c7d3ef) SHA1(f6d60e26c209c1df2cc01ac07ad5559daa1b7118) )
+ ROM_LOAD( "robotron.sb2", 0x11000, 0x1000, CRC(5bc6c614) SHA1(4d6e82bc29f49100f7751ccfc6a9ff35695b84b3) )
+ ROM_LOAD( "robotron201.3", 0x12000, 0x1000, CRC(85eb583e) SHA1(b6c4280415515de6f56b358206dc3bd93a12bfce) )
+ ROM_LOAD( "robotron.sb4", 0x13000, 0x1000, CRC(afb1c561) SHA1(aaf89c19fd8f4e8750717169eb1af476aef38a5e) )
+ ROM_LOAD( "robotronp.5", 0x14000, 0x1000, CRC(827cb5c9) SHA1(1732d16cd88e0662f1cffce1aeda5c8aa8c31338) )
+ ROM_LOAD( "robotron.sb6", 0x15000, 0x1000, CRC(bd2c853d) SHA1(f76ec5432a7939b33a27be1c6855e2dbe6d9fdc8) )
+ ROM_LOAD( "robotron.sb7", 0x16000, 0x1000, CRC(49ac400c) SHA1(06eae5138254723819a5e93cfd9e9f3285fcddf5) )
+ ROM_LOAD( "robotron.sb8", 0x17000, 0x1000, CRC(3a96e88c) SHA1(7ae38a609ed9a6f62ca003cab719740ed7651b7c) )
+ ROM_LOAD( "robotron.sb9", 0x18000, 0x1000, CRC(b124367b) SHA1(fd9d75b866f0ebbb723f84889337e6814496a103) )
+
+ ROM_REGION( 0x10000, "soundcpu", 0 )
+ ROM_LOAD( "robotron.snd", 0xf000, 0x1000, CRC(c56c1d28) SHA1(15afefef11bfc3ab78f61ab046701db78d160ec3) )
+
+ ROM_REGION( 0x0400, "proms", 0 )
+ ROM_LOAD( "decoder.4", 0x0000, 0x0200, CRC(e6631c23) SHA1(9988723269367fb44ef83f627186a1c88cf7877e) )
+ ROM_LOAD( "decoder.6", 0x0200, 0x0200, CRC(83faf25e) SHA1(30002643d08ed983a6701a7c4b5ee74a2f4a1adb) )
+ROM_END
+
+ROM_START( robotronp )
+ ROM_REGION( 0x19000, "maincpu", 0 )
+ ROM_LOAD( "robotron.sba", 0x0d000, 0x1000, CRC(13797024) SHA1(d426a50e75dabe936de643c83a548da5e399331c) )
+ ROM_LOAD( "robotronp.sbb", 0x0e000, 0x1000, CRC(e83a2eda) SHA1(4a62fcd2f91dfb609c3d2c300bd9e6cb60edf52e) )
+ ROM_LOAD( "robotron.sbc", 0x0f000, 0x1000, CRC(645d543e) SHA1(fad7cea868ebf17347c4bc5193d647bbd8f9517b) )
+ ROM_LOAD( "robotron.sb1", 0x10000, 0x1000, CRC(66c7d3ef) SHA1(f6d60e26c209c1df2cc01ac07ad5559daa1b7118) )
+ ROM_LOAD( "robotron.sb2", 0x11000, 0x1000, CRC(5bc6c614) SHA1(4d6e82bc29f49100f7751ccfc6a9ff35695b84b3) )
+ ROM_LOAD( "robotron.sb3", 0x12000, 0x1000, CRC(e99a82be) SHA1(06a8c8dd0b4726eb7f0bb0e89c8533931d75fc1c) )
+ ROM_LOAD( "robotron.sb4", 0x13000, 0x1000, CRC(afb1c561) SHA1(aaf89c19fd8f4e8750717169eb1af476aef38a5e) )
+ ROM_LOAD( "robotronp.5", 0x14000, 0x1000, CRC(827cb5c9) SHA1(1732d16cd88e0662f1cffce1aeda5c8aa8c31338) )
+ ROM_LOAD( "robotron.sb6", 0x15000, 0x1000, CRC(bd2c853d) SHA1(f76ec5432a7939b33a27be1c6855e2dbe6d9fdc8) )
+ ROM_LOAD( "robotron.sb7", 0x16000, 0x1000, CRC(49ac400c) SHA1(06eae5138254723819a5e93cfd9e9f3285fcddf5) )
+ ROM_LOAD( "robotron.sb8", 0x17000, 0x1000, CRC(3a96e88c) SHA1(7ae38a609ed9a6f62ca003cab719740ed7651b7c) )
+ ROM_LOAD( "robotron.sb9", 0x18000, 0x1000, CRC(b124367b) SHA1(fd9d75b866f0ebbb723f84889337e6814496a103) )
+
+ ROM_REGION( 0x10000, "soundcpu", 0 )
+ ROM_LOAD( "robotron.snd", 0xf000, 0x1000, CRC(c56c1d28) SHA1(15afefef11bfc3ab78f61ab046701db78d160ec3) )
+
+ ROM_REGION( 0x0400, "proms", 0 )
+ ROM_LOAD( "decoder.4", 0x0000, 0x0200, CRC(e6631c23) SHA1(9988723269367fb44ef83f627186a1c88cf7877e) )
+ ROM_LOAD( "decoder.6", 0x0200, 0x0200, CRC(83faf25e) SHA1(30002643d08ed983a6701a7c4b5ee74a2f4a1adb) )
+ROM_END
+
+ROM_START( robotrontie )
+ ROM_REGION( 0x19000, "maincpu", 0 )
+ ROM_LOAD( "robotrontie.a", 0x0d000, 0x1000, CRC(952bea55) SHA1(80f51d8e7ec62518afad7e56a47e0756f83f813c) )
+ ROM_LOAD( "robotrontie.b", 0x0e000, 0x1000, CRC(4c05fd3c) SHA1(0d727458454826fd8222e4022b755d686ccb065f) )
+ ROM_LOAD( "robotron.sbc", 0x0f000, 0x1000, CRC(645d543e) SHA1(fad7cea868ebf17347c4bc5193d647bbd8f9517b) )
+ ROM_LOAD( "robotron.sb1", 0x10000, 0x1000, CRC(66c7d3ef) SHA1(f6d60e26c209c1df2cc01ac07ad5559daa1b7118) )
+ ROM_LOAD( "robotron.sb2", 0x11000, 0x1000, CRC(5bc6c614) SHA1(4d6e82bc29f49100f7751ccfc6a9ff35695b84b3) )
+ ROM_LOAD( "robotron.sb3", 0x12000, 0x1000, CRC(e99a82be) SHA1(06a8c8dd0b4726eb7f0bb0e89c8533931d75fc1c) )
+ ROM_LOAD( "robotrontie.4", 0x13000, 0x1000, CRC(e8238019) SHA1(0ce29f4bf6bdee677c8e80c2d5e66fc556ba349f) )
+ ROM_LOAD( "robotronp.5", 0x14000, 0x1000, CRC(827cb5c9) SHA1(1732d16cd88e0662f1cffce1aeda5c8aa8c31338) )
+ ROM_LOAD( "robotron.sb6", 0x15000, 0x1000, CRC(bd2c853d) SHA1(f76ec5432a7939b33a27be1c6855e2dbe6d9fdc8) )
+ ROM_LOAD( "robotrontie.7", 0x16000, 0x1000, CRC(3ecf4620) SHA1(3c670a1f8df35d18451c82f220a02448bf5ef5ac) )
+ ROM_LOAD( "robotrontie.8", 0x17000, 0x1000, CRC(752d7a46) SHA1(85dd58d14d527ca75d6c546d6271bf8ee5a82c8c) )
+ ROM_LOAD( "robotron.sb9", 0x18000, 0x1000, CRC(b124367b) SHA1(fd9d75b866f0ebbb723f84889337e6814496a103) )
+
+ ROM_REGION( 0x10000, "soundcpu", 0 )
+ ROM_LOAD( "robotron.snd", 0xf000, 0x1000, CRC(c56c1d28) SHA1(15afefef11bfc3ab78f61ab046701db78d160ec3) )
+
+ ROM_REGION( 0x0400, "proms", 0 )
+ ROM_LOAD( "decoder.4", 0x0000, 0x0200, CRC(e6631c23) SHA1(9988723269367fb44ef83f627186a1c88cf7877e) )
+ ROM_LOAD( "decoder.6", 0x0200, 0x0200, CRC(83faf25e) SHA1(30002643d08ed983a6701a7c4b5ee74a2f4a1adb) )
+ROM_END
+
+/*******************************************************
+ *
+ * Game Driver
+ *
+ *******************************************************/
+
+GAME( 1981, defender2, defender, williams, stargate, williams_state, stargate, ROT0, "Jeff Vavasour", "Defender II", MACHINE_SUPPORTS_SAVE )
+GAME( 1982, splatsc1, splat, williams, splat, williams_state, joust, ROT0, "Williams", "Splat! (sc1 hardware)", MACHINE_SUPPORTS_SAVE )
+GAME( 2012, robotron201, robotron, williams, robotron, williams_state, robotron, ROT0, "Sean Riddle", "Robotron: 2084 (Hacked Patched Blue-201)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, robotronp, robotron, williams, robotron, williams_state, robotron, ROT0, "Christian Gingras / Sean Riddle", "Robotron: 2084 (patched)", MACHINE_SUPPORTS_SAVE )
+GAME( 2014, robotrontie, robotron, williams, robotron, williams_state, robotron, ROT0, "Vid Kidz", "Robotron: 2084 (Tie Die)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/drivers/yiear.cpp b/src/hbmame/drivers/yiear.cpp
new file mode 100644
index 00000000000..adc80dff658
--- /dev/null
+++ b/src/hbmame/drivers/yiear.cpp
@@ -0,0 +1,27 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/drivers/yiear.cpp"
+
+ROM_START( nacho )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "nacho.8", 0x08000, 0x4000, CRC(ad779f38) SHA1(057f05f789261f0b9a0f9d32623c3de10d5ed5e6) )
+ ROM_LOAD( "nacho.7", 0x0c000, 0x4000, CRC(6d9b7c36) SHA1(634c68617df9d3078be85ccaefda3719b9e06bab) )
+
+ ROM_REGION( 0x04000, "gfx1", 0 )
+ ROM_LOAD( "nacho.1", 0x00000, 0x2000, CRC(7f1139ef) SHA1(04872803bcfd468490aa68b6b4b8c6219d0e3805) )
+ ROM_LOAD( "nacho.2", 0x02000, 0x2000, CRC(cd8be306) SHA1(7e6fe875e808def4da7d5b19e291481d736e418c) )
+
+ ROM_REGION( 0x10000, "gfx2", 0 )
+ ROM_LOAD( "nacho.5", 0x00000, 0x4000, CRC(2da87538) SHA1(37f17b8a6e1ad2fc2a94f90e54fa9ae8a5380b45) )
+ ROM_LOAD( "nacho.6", 0x04000, 0x4000, CRC(b48393a9) SHA1(d8f4011423027e9f22f3a62e16e9f77e0fbfdb2c) )
+ ROM_LOAD( "nacho.3", 0x08000, 0x4000, CRC(75bad724) SHA1(b6fad1771b7600867de3cafddd7555a8ab0f4f98) )
+ ROM_LOAD( "nacho.4", 0x0c000, 0x4000, CRC(3ecb72e4) SHA1(4fc494bf3025b3b9fd05fc9f4f6d865039b3ffc8) )
+
+ ROM_REGION( 0x0020, "proms", 0 )
+ ROM_LOAD( "407c10.1g", 0x00000, 0x0020, CRC(c283d71f) SHA1(10cd39f4e951ba6ca5610081c8c1fcd9d68b34d2) )
+
+ ROM_REGION( 0x2000, "vlm", 0 )
+ ROM_LOAD( "407_c09.8b", 0x00000, 0x2000, CRC(f75a1539) SHA1(f139f6cb41351eb81ee47d777db03012aa5fadb1) )
+ROM_END
+
+GAME( 2009, nacho, yiear, yiear, yiear, yiear_state, 0, ROT0, "Gatinho", "Nacho Libre", MACHINE_SUPPORTS_SAVE )
diff --git a/src/hbmame/hbmame.cpp b/src/hbmame/hbmame.cpp
new file mode 100644
index 00000000000..576a487f8ec
--- /dev/null
+++ b/src/hbmame/hbmame.cpp
@@ -0,0 +1,24 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+/***************************************************************************
+
+ hbmame.c
+
+ Specific (per target) constants
+
+****************************************************************************/
+
+#include "emu.h"
+
+#define APPNAME "HBMAME"
+#define APPNAME_LOWER "hbmame"
+#define CONFIGNAME "hbmame"
+#define COPYRIGHT "Copyright Robbbert\nand the MAME team\nhttp://mamedev.org"
+#define COPYRIGHT_INFO "\nMAME portions are copyright the MAME team.\n" \
+ "HBMAME portions are copyright Robbbert."
+
+const char * emulator_info::get_appname() { return APPNAME;}
+const char * emulator_info::get_appname_lower() { return APPNAME_LOWER;}
+const char * emulator_info::get_configname() { return CONFIGNAME;}
+const char * emulator_info::get_copyright() { return COPYRIGHT;}
+const char * emulator_info::get_copyright_info() { return COPYRIGHT_INFO;}
diff --git a/src/hbmame/hbmame.lst b/src/hbmame/hbmame.lst
new file mode 100644
index 00000000000..4c8de232586
--- /dev/null
+++ b/src/hbmame/hbmame.lst
@@ -0,0 +1,4816 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+/******************************************************************************
+
+ hbmame.lst
+
+ List of all enabled drivers in the system.
+
+****************************************************************************
+
+
+ /* 1942 */
+1942 //parent
+1942h
+1942c64 // 1942 with C64 sounds (by minwah)
+1942fpa // 1942 with free play (by cmonkey)
+galagax /* Jerky - Chris Moore hack of 1942 */
+
+ /* 1943 */
+1943 //parent
+1943h /* Hacked to have the vendor name and phone number */
+
+ /* 8080bw */
+invaders //parent
+tst_invd // test rom
+invmulti //parent
+invmultim1a
+invmultim2a
+invmultim2c
+invmultim3a
+invmultip
+invmultis1a
+invmultis2a
+invmultis3a
+invmultit3d
+invrvnge //parent for ir
+
+ /* arkanoid */
+arkanoid //parent
+akblc2dx /* hack */
+akgcdx /* hack */
+aktaytdx /* hack */
+arkll32 /* LLMAME 32 */
+
+ /* asteroid */
+asteroid //parent
+asteroid6 /* Clay Cowgill Bullet Hack */
+astdelux4
+starslayer // star destroyer, hack of asteroid2
+//amg // test only
+
+ /* astrocde */
+tst_gorf /* Gorf test rom */
+tst_gor1 /* Gorf test rom */
+tst_wow2 /* Wow test rom */
+tst_wow3 /* Wow test rom */
+
+ /* astrof */
+astrof //parent
+astrofbl /* Black Background */
+
+ /* asuka */
+asuka //parent
+asukac // chinese
+
+ /* atarisy1 */
+atarisy1 //bios
+indytemp //parent
+ataris1hw
+ataris1rt
+
+ /* atari_s1 */
+//atarians //parent
+//atarianb /* hack for emulators */
+
+ /* bagman */
+bagman //parent
+bagturbo
+pickin //parent
+pickinpi /* Color Hack by Pi */
+
+ /* blktiger */
+blktiger //parent
+blkdrgonk /* Korean Translation */
+
+ /* bombjack */
+bombjack //parent
+bmbjckgr /* Vag @ GreekRoms */
+bombjckb /* bootleg */
+bombjred /* hack by unknown French person */
+
+ /* btime */
+btime //parent
+brubber //parent
+lnc //parent
+bnjr /* Bump N Jump Reverse Mod */
+pnc /* Pac N Chase */
+stictime /* Marks Hack of btime */
+vecbtime /* T-Bone hack of Burgertime */
+
+ /* bublbobl */
+bublbobl //parent
+boblcave
+bublcave
+bublcave10
+bublcave11
+bbaladar /* Aladar Bootleg */
+bb2bmh /* Overclocked Bubblebobble Memories Hack */
+bbhackv1 /* Overclocked Level Hack */
+bbredux1 /* Punji - Bubble Bobble Redux with Level Skip */
+bbredux2 /* Punji - Bubble Bobble Redux with Level Skip and Game Continue */
+bbredux3 /* Punji - Bubble Bobble Redux with Level Skip, Game Continue, and High Score Save */
+bublbobf /* Arkatrad */
+sboblboblh /* level select hack */
+
+ /* bwidow */
+spacwarp /* Jeff Hendrix - Proto on Space Duel HW */
+
+ /* cave */
+ddonpach //parent
+ddonpacha // trap15 hack
+pwrinst2 //parent
+pwrinst2h /* 2013 Hack by TT */
+pwrinst2z
+//pwrinst2s01 roms to find
+//plegends //parent
+//plegendsjs01 roms to find
+
+ /* cball */
+cball //parent
+cballfix // With MASH 'fixed' gfx rom
+
+ /* cclimber */
+ckong //parent
+cclimber //parent
+tongypac
+ckongfix /* Graphics Fix */
+ckonga2
+ckonga3
+cclimbrm /* Tim Arcadecollecting Modded Version */
+
+ /* centiped */
+centiped //parent
+milliped //parent
+astroped /* Twisty Hack of Centipede */
+astropd2 /* Twisty Hack of Centipede */
+cemescry /* NoSync hack of Centipede */
+killiped /* The Dog hack of Centipede */
+pacipede /* Jeff Coleburn hack of Centiped */
+silliped /* Andy hack of Millipede */
+vectiped /* The Dog hack of Centipede */
+vectrped /* T-Bone hack of Centipede */
+centipb /* bootleg of centipdb */
+magworm2 /* bootleg of magworm */
+
+ /* cinemat */
+bbugtest /* Test Rom */
+
+ /* commando */
+commando //parent
+comdelux /* Twisty Hack */
+comdlux1 /* Twisty Hack */
+
+ /* cps1 */
+3wonders // parent
+captcomm // parent
+cawing // parent
+dino // parent
+ffight // parent
+ghouls // parent
+kod // parent
+knights // parent
+megaman // parent
+pnickj // parent
+punisher // parent
+sf2 // parent
+sf2ce // parent
+slammast // parent
+strider // parent
+wof // parent
+
+ /* cps1mis */
+3wondrud
+//captcocc // not working
+captcomc // chinese
+captcomh
+captcoud
+//captcovs // not working
+cawingb
+cps1demo /* Charles Doty */
+cps1frog /* Charles Doty */
+cps1testm /* Cal2 */
+cps1testma /* Cal2 */
+cps1tests /* Cal2 */
+cps1testsa /* Cal2 */
+daimakb /* Found in Mame Plus */
+dino08h2
+dino08h3
+dino08hp
+dinob /* 1993 Cadillacs and Dinosaurs (bootleg) */
+dinobt
+dinobtpp
+dinocgba
+dinocgbb
+dinocgbc
+dinoeh
+dinoex
+dinoh /* 1993 Cadillacs and Dinosaurs (Hack) */
+dinoha /* 1993 Cadillacs and Dinosaurs (Hack) */
+dinohb /* 1993 Cadillacs and Dinosaurs (Hack) */
+dinohp
+//dinohx // crashes in the "underground", demo sound only works on first run.
+dinojp // 2010 Pipi899, RockWall, Zhyxxxx
+dinorp
+//dinosf2
+dinoslice
+dinouphp
+dinoz /* Boss Hack */
+ffightb
+knight21 // debug
+//knightsa // - rom missing
+knightsb2
+knightsh /* 1991 Knights of the Round (Hack) */
+knightsha /* 1991 Knights of the Round (Hack) */
+knightsjb
+knightsro // Sebastian Mihai - Romanian translation 2015
+knightud
+//kodd // not working
+kodh
+kodsp
+//kodud // not working
+pnicku /* 06/08/1994 (c) 1994 + Compile license (Japan) not listed on Capcom's site */
+punisherb /* Found in neht build */
+punisherf /* Flash version 24/7/2009 by Zhyxxxx */
+punisherje1
+punisherjh
+punisherjh1
+punisherjha
+punisherud1
+punisherud2
+sf2bhj
+sf2c // sf2, chinese
+sf2cebr /* hack, Brasil 920313 */
+sf2ced /* hack, Hispanic 990804 */
+sf2ceda /* hack, Hispanic 990804 */
+sf2ceh /* hack, Hispanic 990804 */
+sf2cehk
+sf2cehp
+sf2cejem
+sf2jbh // sf2jbh2014
+sf2koryuh /* Hack by TT */
+sf2h9 /* Found in Mame Plus */
+sf2h10 /* Found in Mame Plus */
+sf2h11 /* Found in Mame Plus */
+sf2h12 /* Found in Mame Plus */
+sf2h13 /* hack */
+sf2pun /* Drakon, Punishment Edition v1 Final */
+sf2sl73a /* Drakon, Sheng Long v7.3a */
+sf2th
+sf2tha
+sf2tlona /* hack, Tu Long set 1 */
+sf2tlonb /* hack, Tu Long set 2 */
+sf2tlonc /* hack, Tu Long set 3 */
+sf2turyu /* hack, Tu Long prototype */
+sf2yyc3d5
+sf2yyc3g
+sf2yyc6
+sk2h1 /* 1999 Legend of Three Kingdoms' Heroes / Sanguo Yingxiong Zhuan */
+sk2h1q // qsound version of sk2h1
+sk2h2 /* 1999 Legend of Three Kingdoms' Heroes / Sanguo Yingxiong Zhuan */
+sk2h2q
+sk2h3 // mame sgyxz for testing
+sk2h4q
+sk2h5q
+sk2h6q
+sk2h11 /* 1992 Sangokushi II (Hack 1) */
+sk2h12 /* 1992 Sangokushi II (Hack 2) */
+sk2h13 /* 1992 Sangokushi II (Hack 3) */
+sk2h14 /* Chinese language */
+sk2h15 // wofaehp
+sk2h16 // wofahp2
+sk2h21 /* 1997 Three Sword Masters / San Jian Sheng */
+sk2h22 // San Jian Sheng (Chinese bootleg of Sangokushi II
+sk2h31 /* 1997 Three Holy Swords / San Sheng Jian */
+sk2h32 /* 1997 Three Holy Swords / San Sheng Jian */
+sk2h33 /* 1995 Holy Sword Three Kingdoms / Sheng Jian San Guo */
+sk2h34 /* 1995 Holy Sword Three Kingdoms / Sheng Jian San Guo */
+sk2h35 /* 1995 Holy Sword Three Kingdoms / Sheng Jian San Guo */
+sk2h31q
+sk2h32q
+sk2h33q
+sk2h34q
+sk3p1 // wofchdx
+sk3p2 // wofchdx1
+sk3p3 // wofchdx2
+slammastud
+stridergf // fix unwanted black specks
+stridergh // as above, and uncensored
+tk2c1 // wofbio
+tk2c2 // wofbt
+tk2c3 // wofctj
+tk2c4 // wofdy
+tk2c5 // wofdyg
+tk2c6 // woffh
+tk2c7 // wofgyc
+tk2c8 // wofgyq
+tk2c9 // wofhgz
+tk2c10 // wofhzj
+tk2c11 // wofjjq
+tk2c12 // wofjqz
+tk2c13 // wofmr
+tk2c14 // wofsbl
+tk2c15 // wofsjj
+tk2c16 // wofsz
+tk2c17 // wofyjs
+tk2c18 // wofyxg
+tk2c19 // wofzhs
+tk2c20 // wofzhy
+tk2c21 // wofzy2
+tk2c22 // wofzy3
+tk2c23 // wofzyq
+tk2h1 // wofjh
+tk2h2 // wofjhb, was dynwarjh before rom loading was figured out
+tk2h3 // wofjhc, was dynwarj2 before rom loading was figured out
+tk2h4 // wofjh2
+tk2h5 // wofjcn
+tk2h6 // wofjd
+tk2h7 // wofjehp
+tk2h8 // wofjhdwb
+tk2h9 // wofjhp2
+tk2h10 // wofjm
+tk2h11 // wofjmjp
+tk2h12 // wofjpsrw
+tk2h13 // wofjrabh
+tk2h14 // wofjrlb
+//tk2h15 // wofjrpbs exception in first demo
+//tk2h16 // wofjv10s exception in first demo
+tk2h17 // wofjzcr1
+tk2h18 // wofjzero
+tk2p2 // wofch_v3
+tk2p3 // wofchspp
+wofb
+wofch // tk2p1
+wofes
+woffr /* Neo-Arc French Trans */
+wofr1h
+wofsf2
+wofud
+// from here will be added when roms found
+//captcomms01
+//captcomms02
+//captcomms03
+//captcomms04
+//captcomms05
+//dinos01
+//dinos02
+//dinos03
+//dinos04
+//dinos05
+//dinos06
+//dinos07
+//dinos08
+//dinos09
+//dinos10
+//dinos11
+//dinos12
+//dinos13
+//dinos14
+//dinos15
+//dinos16
+//dinos17
+//dinos18
+//dinos19
+//dinos20
+//dinos21
+//dinos22
+//dinos23
+//dinos24
+//dinos25
+//dinos26
+//dinos27
+//dinos28
+//dinos29
+//dinos30
+//dinos31
+//dinos32
+//dinos33
+//dinos34
+//dinos35
+//dinos36
+//dinos37
+//dinos38
+//dinos39
+//dinos40
+//dinos41
+//dinos42
+// dinos43
+//dinos44
+//dinos45
+//dinos46
+//dinos47
+// dinos48
+//dinos49
+//dinos50
+//dinos51
+//dinos52
+//dinos53
+//dinos54
+//dinos55
+//koduhc01
+//knightsh01
+//punishers01
+//punishers02
+//wofs01
+//wofs02
+//wofs03
+//wofs04
+//wofs05
+//wofs06
+//wofs07
+//wofs08
+//wofs09
+//wofs10
+//wofs11
+//wofs12
+//wofs13
+//wofs14
+//wofs15
+//wofs16
+//wofs17
+//wofs18
+//wofs19
+//wofs20
+//wofs21
+//wofs22
+//wofs23
+//wofs24
+//wofs25
+//wofs26
+//wofs27
+//wofs28 exception in attract mode
+//wofs29
+//wofs30
+//wofs31
+wofs32
+wofs33
+//wofs34
+//wofs35
+//wofs36
+//wofs37
+//wofs38
+//wofhl01
+//wofhl02
+//wofh01
+//wofh02
+//wofh03
+
+ /* cps2 */
+// CPS2 PARENTS ***
+1944
+19xx
+armwar
+avsp
+batcir
+csclub
+cybots
+ddsom
+ddtod
+dimahoo
+dstlk
+ecofghtr
+gigawing
+hsf2
+megaman2
+mmatrix
+mpang
+msh
+mshvsf
+mvsc
+nwarr
+progear
+ringdest
+sfa
+sfa2
+sfa3
+sfz2al
+sgemf
+spf2t
+ssf2
+ssf2t
+vhunt2
+vsav
+vsav2
+xmcota
+xmvsf
+// CPS2 HACKS ***
+1944fp
+ddsomavs
+ddsomchs
+ddsomhp
+ddsomjfs
+halfway // progear hack by The Halfway House
+mshjphp
+mshvsemb
+mshvsfjh
+mshvsfjphp
+mshyh
+mvscjemb
+mvscjphp
+//mvscrcp // reboots shortly after start
+//mvscuh // reboots shortly after start
+pfghtjrm
+suicide /* Razoola */
+suicide2 /* Razoola */
+sfa2h
+sfa3br
+sfa3dp
+sfa3nc
+sfa3nch
+sfa3sp2
+sfa3spp
+sfa3uhd
+sfz2abr
+sfz2ajhp
+sfz2aldp
+sfz2aldp2
+sfz2jyh
+sfz3jb
+sfz3jemb
+sfz3jhp
+sfz3jsep
+sfzjboss
+sfzjyh
+sgemfch
+spf2tb // boss hack
+ssf2tfp
+ssf2tfr
+ssf2tpls
+ssf2xjhy
+ssf2xjjs
+ssf2xjnc
+ssf2zhp
+vampjb
+vsav2emb
+xmcotajb
+xmcotajphp
+xmvsfjphp
+xmvsfrm
+xmvsfryh
+// CPS2 PHOENIX ***
+1944d
+1944da
+19xxd
+armwar1d
+avspd
+batcird
+csclub1d
+cybotsud
+cybotsjd
+dimahoud
+ddsomud
+ddtodd
+dstlku1d
+ecofghtrd
+gigaman2
+gigawingd
+gigawingjd
+hsf2d
+megamn2d
+mmatrixd
+mpangjd
+mshud
+mshvsfu1d
+mvscud
+nwarrud
+progearud
+progearjd
+progearjbl
+ringdstd
+sfa3ud
+sfad
+sfaud
+sfz2ad
+sfz2ald
+sfz2jd
+sfz3jr2d
+sgemfd
+spf2td
+ssf2r1d
+ssf2td
+spf2xjd
+ssf2tad
+ssf2tbd
+ssf2ud
+ssf2xjr1d
+vhunt2d
+vsavd
+vsav2d
+xmcotar1d
+xmvsfu1d
+// waiting for roms
+//ssf2e01
+//ssf2j01 //Super Street Fighter II X: Grand Master Challenge (Todos los Roms Hacks Coleccion)
+//ssf2j02
+//ssf2j03
+//mvsh01
+
+ /* cps3 */
+jojo //parent
+jojoba //parent
+redearth //parent
+sfiii //parent
+sfiii2 //parent
+sfiii3 //parent
+jojobbh2
+jojobbss
+jojobpow
+jojonbss
+jojonpow
+// waiting for roms
+//jojos01
+//jojos02
+//jojos03 //JoJo's Bizarre Adventure (Todos los Roms Hacks Coleccion)
+//jojos04
+//jojos05
+//jojos06
+redearex
+redeartn // no-cd version
+redeartno // no-cd version with old roms from multijet
+sfiiibhp
+sfiiipmp
+sfiii2bh
+sfiii2np
+sfiii2pl
+sfiii3an // hack
+sfiii3bh
+sfiii3mh
+sfiii3ng
+sfiii3np
+sfiii4rd // hack
+
+ /* dec0 */
+baddudes //parent
+baddudef /* Arkatrad */
+decodemo /* Charles Doty */
+
+ /* dkong */
+dkong //parent
+dkong2m
+dkongex /* Jeff's Hack with Foundry Level */
+dkongf
+dkongp /* Fix for level 22 kill screen by Don Hodges */
+dkongpac /* Tim Appleton - Donkey Kong with Pacman graphics */
+dkongpe
+dkongx
+dkongx11
+dkrainbow
+dkrdemo
+kong2600 /* Vic Twenty George hack of Donkey Kong */
+nadkong
+
+ /* docastle */
+dorunrun //parent
+sdreturn
+
+ /* dotrikun */
+dotrikun //parent
+dotrikun2
+dotriman
+mineswp /* Minesweeper */
+
+ /* ertictac */
+//armdemo /* Charles Doty */ // totally broken
+
+ /* exidy */
+targ //parent
+targtest // Targ Test Rom
+teetert //parent
+teetertfp // free play hack
+
+ /* exerion */
+exerion //parent
+exerionj /* Japanese version */
+exeriongr /* Vag @ GreekRoms 2004 */
+
+ /* fcrash */
+fcrash
+captcommb2
+ffightbl
+ffightbla
+kodb
+
+ /* galaga */
+galaga //parent
+xevious //parent
+galagads
+galagab2
+galaga84
+galaga99 /* Jerky and Sil hack of Galaga */
+galagabl /* Namco 1982 version of Gallag */
+galagaf /* Fast Shoot Hack */
+galagap /* Patch to fix level 0 crash, by Don Hodges */
+galagix /* Galaga Meets Phoenix */
+galagost /* Twisty Hack of Galaga */
+galagosb /* Twisty Hack of Galaga 20021128 */
+galaped /* Cary Barnhard hack of Galaga */
+galgaxin /* T-Bone hack of Galaga */
+terror /* Galaga Terrorist Hack */
+galagaef /* Galaga Terrorist Hack */
+vgalaga /* Galaga Vector Hack */
+vgalagam
+vgalagaf
+battlesh /* Battles 2002 */
+gaous /* Xevious Hack */
+mrdonm /* Mr Do Nightmare */
+sxvioush /* Super Xevious 2002 */
+xevioush /* Xevious 2002 */
+xviousah
+xeviousp /* Xevious Plus! */
+xevious3 /* Xevious 2003 */
+xevious4 /* Xevious 2004 */
+xevious5 /* Xevious 2005 */
+xeviblk /* Xevious Black */
+
+ /* galaxian */
+amidar //parent
+mooncrst //parent
+pisces //parent
+scramble //parent
+frogger //parent
+amidarf /* ArkaMAME */
+amidargr /* GreekRoms 2004 */
+andromd /* hack - Renamed to avoid confusion with andromed (ex TestDriver) */
+buglaxn /* The Dog hack of Galaxian */
+fourplay
+galaxiab /* unknown hack of Galaxian */
+galaxkyo /* unknown hack of Galaxian Part X */
+galaxni /* Petaco bootleg of Galaxian Part X */
+galinvad /* T-Bone hack of Galaxian */
+galnamco /* The Original Namco */
+gaylaxn /* The Dog hack of Galaxian Part X */
+jumpbugx // extra sounds
+kazzy
+monstrz // monster zero hacked to partially work
+mooncmst
+mooncrs5 /* clone of fantazia */
+offender /* Chris Henry hack of scramble */
+starfgh2 /* Bootleg of Pisces */
+superdog /* Jerky Hack Hack of scramble */
+trukker /* Grimlick hack of Frogger */
+tst_frog /* JROK */
+vectrgal /* T-Bone hack of Galaxian */
+videight /* 8in1 multigame */
+wbeast /* Bootleg of War-of-Bug */
+
+ /* gauntlet */
+gaunt2 //parent
+gaunt2ls // Orange Elf - new levels
+gaunt2s /* Speed Hack */
+gaunt2f // graphics hack
+
+ /* gottlieb */
+qbert //parent
+711qbert /* Hack of Mello Yellow QBert */
+pbert
+qbertb
+vbert
+
+ /* ir */
+ir // extra sounds
+
+ /* itech8 */
+itecdemo /* Charles Doty */
+
+ /* jrpacman */
+jrpacman //parent
+jr1000 /* Blue Justice */
+jr1000_2 /* Blue Justice */
+jr2000 /* Blue Justice */
+jr2001 /* Blue Justice */
+jr2001p /* Blue Justice */
+jr2002 /* Blue Justice */
+jr2002p /* Blue Justice */
+jr2003 /* Blue Justice */
+jr2003p /* Blue Justice */
+jr2004 /* Blue Justice */
+jr2004p /* Blue Justice */
+jr2005 /* Blue Justice */
+jr2005p /* Blue Justice */
+jr3000p /* Blue Justice */
+jr4000p /* Blue Justice */
+jr5000p /* Blue Justice */
+jr6000 /* Blue Justice */
+jr7000 /* Blue Justice */
+jr7000p /* Blue Justice */
+jr8000 /* Blue Justice */
+jr8000p /* Blue Justice */
+jr9000p /* Blue Justice */
+jrdeluxe /* Blue Justice */
+jrhearts
+jrpacad
+jrpacjr /* Blue Justice */
+jrpacjrp /* Blue Justice */
+jrpacp /* Blue Justice */
+jrvectr /* T-Bone hack of Jr. Pac-Man */
+jrfast
+jrcheat
+jrspeed
+jryumyum /* Tim Appleton: Jr.Pacman vs Yum Yum */
+
+ /* kaneko */
+shogwarr //parent
+fjbusterbh
+shogwarrbh
+
+ /* kof94 */
+kof94b
+kof94bc
+kof94blk
+kof94br
+kof94cg
+kof94cn
+kof94cyk
+kof94eh
+//kof94h rom missing
+kof94k
+kof94kh
+kof94qaq
+kof94ru
+kof94ruj
+kof94rz
+kof94seh
+kof94sri
+kof94y
+
+ /* kof95 */
+kof95b
+kof95bln
+kof95brz
+kof95ce
+kof95d
+kof95eh
+kof95hp
+kof95k
+kof95neo
+kof95pjc
+kof95ru
+kof95seh
+kof95sp
+kof95sp2
+kof95xg
+kof95y
+
+ /* kof96 */
+kof96a
+kof96ae
+kof96ae1
+kof96ae1a
+kof96ae1b
+kof96b
+kof96b1
+kof96bb
+kof96c
+kof96cbi
+kof96ckvs
+kof96cn
+kof96cr
+kof96chj
+kof96de
+kof96dr1
+kof96eh
+kof96ep
+kof96ep2
+kof96ep3
+kof96evo
+kof96evoo
+kof96evsp
+kof96ey
+kof96hp
+kof96hp1
+kof96hpr
+kof96k
+kof96k1
+kof96k3
+kof96k3o
+kof96kt // supposedly a korean translation, but looks the same to me.
+kof96lx
+kof96ncd
+kof96oib //IsmaMj
+kof96oib2 //IsmaMj
+kof96oih
+kof96oir
+kof96pch
+kof96pjc
+kof96pm
+kof96rcw
+kof96rf
+kof96rfs
+kof96rfsa
+kof96ri
+kof96ri1
+kof96ri2
+kof96ri3
+kof96ri4
+kof96ri5
+kof96rm
+kof96rp
+kof96rp1
+kof96rss
+kof96ru
+kof96ru2
+kof96rw
+kof96ryu
+kof96seh
+
+ /* kof97 */
+kof97aa
+kof97ae
+kof97ae1
+kof97aot
+kof97bh
+kof97bng
+kof97bs
+kof97cb2
+kof97chris
+kof97cn
+kof97co // combo 2010-02-07
+kof97co6 // combo 2006
+kof97cr
+kof97chl
+kof97chl2
+kof97cy
+kof97dse
+kof97eh
+kof97eh2
+kof97eho
+kof97ei // combo 2010-02-07 different colours
+kof97evo
+kof97evoa
+kof97frb
+kof97irgc
+kof97irgc2
+kof97hk
+kof97hl
+kof97hxd
+kof97ice
+kof97kai
+kof97kp
+kof97kp1
+kof97lb
+kof97lc
+kof97lr
+kof97m
+kof97mit
+kof97mj
+kof97nd
+kof97ne
+kof97neo
+kof97nude
+kof97phl
+kof97pj
+kof97pjc
+kof97pl2
+kof97pl3
+kof97pla
+kof97plc
+kof97plus
+kof97pm
+kof97ps
+kof97rev
+kof97ribe
+kof97rk
+kof97rst
+kof97rst2
+kof97rst3
+kof97rv
+kof97saw
+kof97sex
+kof97shi
+kof97sm
+kof97svs
+kof97svsb2
+kof97sw
+kof97tse
+kof97wh
+kof97wpls
+kof97xbt
+kof97xi
+kof97xp
+kof97xt
+kof97xt1
+kof97xxx
+kof97y
+kof97ya
+kof97yb
+kof97ye
+kof97yg
+kof97yh
+kof97yk
+kof97yk1
+kof97yk2
+kof97yk83
+kof97yk85
+kof97yl
+kof97yl2
+kof97yo
+kof97z
+kof97zm
+
+ /* kof98 */
+kof98aas
+//kof98ae //test only, do not enable
+kof98ae0 //black splashes all over fight scene where cars speed past
+kof98ae1 //black splashes all over fight scene where cars speed past
+kof98ae2 //black splashes all over fight scene where cars speed past
+kof98ae3 //black splashes all over fight scene where cars speed past
+kof98ae20160308 //black splashes all over fight scene where cars speed past
+kof98ae20160827 //black splashes all over fight scene where cars speed past
+kof98bge
+kof98bh
+//kof98bvi // reboots in first demo
+kof98c2006
+kof98c20060214 // date cannot be confirmed
+kof98c20070720 // sometimes reboots itself
+kof98c20070923 // sometimes reboots itself
+kof98c20080330 // sometimes reboots itself while in China with Benimaru
+kof98c20080524 // sometimes reboots itself
+kof98c20080616 // sometimes reboots itself
+kof98c20080712 // sometimes reboots itself
+kof98c20090620 // sometimes reboots itself
+kof98c20090923
+kof98c20100214
+kof98c20100304
+kof98c20110114
+kof98c20110314
+kof98c20120116
+kof98c20120915
+kof98c20130213
+kof98c20130311
+kof98c20130509
+kof98c20130528
+kof98c20130617
+kof98c20130808
+kof98c20130820
+kof98c20131113
+kof98c20140101
+kof98c20140110
+kof98c20140118
+kof98c20140204
+kof98c20140213
+kof98c20140217
+kof98c20140228
+kof98c20140302
+kof98c20140310
+kof98c20140317
+kof98c20140403
+kof98c20140412
+kof98c20140416
+kof98c20140419
+kof98c20140428
+kof98c20140504
+kof98c20140524
+kof98c20140606
+kof98c20140620
+kof98c20140717
+kof98c20140809
+kof98c20140816
+kof98c20140824
+kof98c20140906
+kof98c20140924
+kof98c20141002
+kof98c20141020
+kof98c20150201
+kof98c20150228
+kof98c20150302
+kof98c20150310
+kof98c20150330
+kof98c20150528
+kof98c20150614
+kof98c20150705
+kof98c20150729
+kof98c20150827
+kof98c20151103
+kof98c20151108
+kof98c20151110
+kof98c20151223
+kof98c20160320
+kof98c20160907
+kof98cd
+kof98cd1
+kof98cd2
+kof98ch
+kof98ch1
+kof98chl
+kof98chris
+kof98cn
+kof98cn1
+kof98cos
+kof98cos1
+kof98cos2
+kof98cta // (kof98c20080801) - sometimes reboots itself
+kof98dc
+kof98ecm
+kof98ehr
+kof98evl
+kof98evo
+kof98evo2
+kof98evr
+kof98f
+kof98fr
+kof98fro
+kof98fro2
+kof98frp //slutfest
+kof98fv
+kof98fv2
+kof98gold
+kof98hk
+kof98ice
+kof98ico
+kof98iori
+kof98izh
+kof98jh
+kof98k95
+kof98klc
+kof98lb
+kof98lv
+kof98m
+kof98mev
+kof98mix
+kof98nc
+kof98ncdh
+kof98new
+kof98pjc
+kof98rh
+kof98rh1
+kof98rl
+kof98rm
+kof98rsa
+kof98rup
+kof98seh
+kof98seho
+kof98sof
+kof98sp
+kof98sp2
+kof98sr
+kof98sv
+kof98tim
+kof98ul
+kof98ur
+kof98urf
+kof98wh
+kof98wh1
+kof98wh2
+kof98xi
+kof98y
+kof98yh
+kof98zy
+
+ /* kof99 */
+kof99ab
+kof99ae /* Anniversary Edition */
+kof99ae0
+kof99ae20140408
+kof99ae20140624
+kof99ae20150121
+kof99ae20150520
+kof99ae20150711
+kof99ae20160411
+kof99ae20160419
+kof99aes
+kof99bh
+kof99bhp2
+kof99bhs
+kof99bs
+kof99bs2
+kof99ch
+kof99chf
+kof99co
+kof99co2
+kof99d
+kof99eh
+kof99ehr
+kof99eur
+kof99eur1
+kof99eur2
+kof99eur3
+kof99eur4
+kof99ev2
+kof99evo
+kof99evos
+kof99fc
+kof99fc0
+kof99fc1
+kof99fc2
+kof99fix
+kof99fix1
+kof99fix2
+kof99fmi
+kof99hbi
+kof99hp
+kof99iori
+kof99jh
+kof99jho
+kof99kp
+kof99lb
+kof99m
+kof99nd
+kof99ndh
+kof99ndis
+kof99nevo
+kof99ob
+kof99ob2
+kof99pb
+kof99phl
+kof99pjc1
+kof99pjc2
+kof99pjc3
+kof99pjco
+kof99pk
+kof99pko
+kof99pm
+kof99pt
+kof99py
+kof99r
+kof99rd
+kof99rev
+kof99revo
+kof99roll
+kof99rp
+kof99rp0
+kof99rp1
+kof99rp2
+kof99rp3
+kof99rp4
+kof99rp5
+kof99rp6
+kof99rp7
+kof99rp8
+kof99rp9
+kof99rpa
+kof99rpb
+kof99rpc
+kof99rpp
+kof99rr
+kof99rs
+kof99rsm
+kof99rsp
+kof99seh
+kof99sp
+kof99spd
+kof99sr
+kof99srr
+kof99srr1
+kof99the4
+kof99the42
+//kof99vor // corrupt gfx
+kof99wet
+kof99wh1
+kof99wh2
+kof99wh3
+kof99wh4
+kof99xpsa
+kof99xpsf
+kof99xpsp
+kof99xxx
+kof99y
+kof99yb
+kof99yd
+
+ /* kof2000 */
+kof2000d
+kof2000ev
+kof2000r
+kof2kbh
+kof2kbj
+kof2kbsd
+kof2kce
+kof2kch
+kof2kcp
+kof2keh
+kof2kehr
+kof2kevo
+kof2kevo1
+kof2kevo2
+kof2kevo3
+kof2kgbh
+kof2kgold
+kof2kice
+kof2kiori
+kof2kjlc
+kof2kkf1
+kof2kkvs
+kof2kkzs
+kof2knd
+kof2kpjc
+kof2kpjc1
+kof2kpjc2
+kof2kpjc3
+kof2kpls
+kof2krm
+kof2krp
+kof2kryu
+kof2kseh
+kof2kst
+kof2kwh
+kof2kwh2
+kof2kxxx
+kof2ky
+kof2kyd
+kof2kyg
+kof2kz
+kof2kzs
+
+ /* kof2001 */
+kof2001d
+kof2001n
+kof2k1ay
+kof2k1b
+kof2k1b1
+kof2k1b3
+kof2k1b4
+kof2k1bd2
+kof2k1bh
+kof2k1bh1
+kof2k1bs
+kof2k1bs2
+kof2k1ce
+kof2k1cfc
+kof2k1cf1
+kof2k1ch
+kof2k1clr
+kof2k1cp
+kof2k1cp1
+kof2k1cp2
+kof2k1cp3
+kof2k1cp4
+kof2k1cp5
+kof2k1cp6
+kof2k1cp7
+kof2k1cr
+kof2k1eh
+kof2k1ehc
+kof2k1ehr
+kof2k1gm
+kof2k1guan
+kof2k1ha
+kof2k1ha2
+kof2k1hao
+kof2k1hb
+kof2k1hgm
+kof2k1ice
+kof2k1ic2
+kof2k1k3o
+kof2k1k32
+kof2k1k33
+kof2k1k34
+kof2k1k35
+kof2k1k36
+kof2k1k37
+kof2k1k38
+kof2k1k39
+kof2k1k3a
+kof2k1k3b
+kof2k1k3c
+kof2k1k3d
+kof2k1k3e
+kof2k1k3f
+kof2k1k3g
+kof2k1k3h
+kof2k1ki
+kof2k1lse
+kof2k1mk2
+kof2k1mk
+kof2k1mke
+kof2k1pa
+kof2k1pa2
+kof2k1pjc
+kof2k1pjo
+kof2k1pj1
+kof2k1pj2
+kof2k1pj3
+kof2k1pls
+kof2k1rm
+kof2k1rp
+kof2k1rp0
+kof2k1rp1
+kof2k1rpo
+kof2k1ru
+kof2k1ru0
+kof2k1seh
+kof2k1sob
+kof2k1st
+kof2k1st2
+kof2k1wh
+kof2k1z1
+kof2k1z2
+//kf2k1pa
+//kf2k1pls
+
+ /* kof2002 */
+kof200215
+kof2002d
+kof2002x
+kof2k2ath
+kof2k2b // no sound in attract mode
+kof2k2b1
+kof2k2bd //not working
+kof2k2bh
+kof2k2bjh
+kof2k2bjo
+kof2k2bl3
+kof2k2bl4
+kof2k2bld
+kof2k2blood2
+kof2k2br
+kof2k2br1
+kof2k2br2
+kof2k2bs
+kof2k2c2
+kof2k2cf1
+kof2k2cf2
+kof2k2cf3
+kof2k2cfc
+kof2k2ch
+kof2k2chl
+kof2k2cl2
+kof2k2cl3
+kof2k2cn
+kof2k2cori
+kof2k2dbh
+kof2k2e1
+kof2k2e2
+kof2k2e3
+kof2k2ehr
+kof2k2er2
+kof2k2er3
+kof2k2er4
+kof2k2erx
+kof2k2evo
+kof2k2evo2
+kof2k2fy
+kof2k2gc
+kof2k2gc2
+kof2k2gf
+kof2k2green
+kof2k2ht
+kof2k2ibp
+kof2k2ic1
+kof2k2ic2
+kof2k2ice
+kof2k2jc
+kof2k2js
+kof2k2js2
+kof2k2js4
+kof2k2k2
+kof2k2k3o
+kof2k2k32
+kof2k2k33
+kof2k2k34
+kof2k2k35
+kof2k2k36
+kof2k2k37
+kof2k2k38
+kof2k2k39
+kof2k2k3a
+kof2k2k3b
+kof2k2k3c
+kof2k2k3d
+kof2k2k3e
+kof2k2k3f
+kof2k2k3g
+kof2k2kai
+kof2k2kc
+kof2k2kc2
+kof2k2kk
+kof2k2lb // no sound in attract mode
+kof2k2leon
+kof2k2mcr
+kof2k2moi2
+kof2k2moir // no sound in attract mode
+kof2k2mp1 /* Magic Plus */
+kof2k2mp3 /* Magic Plus III - Ismamj */
+kof2k2mpu
+kof2k2ngp
+kof2k2nu
+kof2k2olp
+kof2k2omg
+kof2k2omg8
+kof2k2omg9
+kof2k2omg9b
+kof2k2on
+kof2k2or
+kof2k2ori
+kof2k2ori2
+kof2k2pa
+kof2k2pjw // no sound in attract mode
+kof2k2pl17
+kof2k2plb
+kof2k2pr
+kof2k2pro
+kof2k2ps2
+kof2k2ps2a
+kof2k2ps2mp
+kof2k2pur
+kof2k2ra
+kof2k2rgl // no sound in attract mode
+kof2k2rm
+kof2k2rma
+kof2k2rmb
+kof2k2rm1
+kof2k2rm2
+kof2k2rm3
+kof2k2rm13 // no sound in attract mode
+kof2k2rr // no sound in attract mode
+kof2k2rr1
+kof2k2rr2 // no sound in attract mode
+kof2k2rr3
+kof2k2rr4
+kof2k2rr5
+kof2k2rr6
+kof2k2rr7
+kof2k2rr8 // no sound in attract mode
+kof2k2rs
+kof2k2rs2
+kof2k2ru
+kof2k2rw
+kof2k2sb
+kof2k2seh
+kof2k2se2
+kof2k2sm // bad gfx on train scene
+kof2k2smf
+kof2k2smg
+kof2k2smg2
+kof2k2soi
+kof2k2sp
+kof2k2spl
+kof2k2spls
+kof2k2spo
+kof2k2tc
+kof2k2ul
+kof2k2ule
+kof2k2wuk // no sound in attract mode
+kof2k2xxx
+//kf2k2plc
+
+ /* kof2003 */
+kof2003d
+kof2003f
+kof2003rebh
+kof2k3b
+kof2k3bl2
+kof2k3br
+kof2k3bs1
+kof2k3bs2
+kof2k3bs3
+kof2k3bs4
+kof2k3d
+kof2k3evo
+kof2k3gc
+kof2k3hd
+kof2k3nd
+kof2k3nrx
+kof2k3pcd
+kof2k3pch
+kof2k3ps2
+kof2k3ps3
+kof2k3ryu
+kof2k3sc
+kof2k3ss
+kof2k3tc
+kof2k3zgf
+//kof2k3bd
+//kof2k3pd
+//kof2k3upd
+
+ /* kyugo */
+airwolf //parent
+airwolffr // french
+
+ /* m52 */
+alpha1v // Kyle Hodgetts
+mpatrol //parent
+spatrol /* Sponge Patrol - Gatinho 2008 */
+
+ /* maketrax */
+eyes //parent
+aa /* Widel's Games */
+abscam // GL 1982
+absurd /* scott - nonworking alpha ver 3 */
+alpaca7 /* Jerronimo (useless) */
+alpaca8 /* Jerronimo (useless) */
+bace /* Widel's Games */
+crashh /* PacMAME Hacks */
+deathstar
+dderby /* Widel's Games */
+eyesb
+ghohunt // Hurray Banana
+kangaroh /* Widel's Games */
+lazybug
+lazybug1
+mtturbo /* Tim - Make Trax Turbo Hack */
+pachello /* Jerronimo */
+pacmatri /* Jerronimo */
+pactest /* Widel's Games */
+pactetris
+ppong /* Widel's Games */
+ppong2 /* Widel's Games */
+rainboh /* Widel's Games */
+scroller
+seq1 /* Jerronimo */
+seq2 /* Jerronimo */
+snakes
+tst_pacm
+wavybug
+zap /* Widel's Games */
+
+ /* mappy */
+mappy //parent
+superpac //parent
+crackhea /* Cary Barnhard hack of Mappy */
+housepty /* Jerky hack of Mappy */
+marpy
+superpc1 /* Paul Smith */
+superpcn /* Blue Justice */
+superpcp /* Blue Justice */
+superpcs /* Paul Smith */
+vectrsup /* T-Bone hack of Super Pac-Man */
+
+ /* mario */
+mario //parent
+cenmario
+
+ /* mcr */
+shollow //parent
+tron //parent
+tapper //parent
+handiman /* Bobby Tribble hack of Tron */
+shtron /* Jerronimo */
+stapper /* Tapper Simpsons Hack */
+stapper1 /* Tapper Simpsons Hack ver .81 */
+
+ /* mcr3 */
+sarge //parent
+sargex /* Gatinho Sarge x-rated */
+
+ /* mgd2 */
+bstarsd /* 0002 (c) 1990 SNK */
+tpgolfd /* 0003 (c) 1990 SNK */
+maglordd /* 0005 (c) 1990 Alpha Denshi Co. */
+ridherod /* 0006 (c) 1990 SNK */
+alpham2d /* 0007 (c) 1991 SNK */
+ncombatd /* 0009 (c) 1990 Alpha Denshi Co. */
+cyberlipd /* 0010 (c) 1990 SNK */
+superspyd /* 0011 (c) 1990 SNK */
+mutnatd /* 0014 (c) 1992 SNK */
+kotmd /* 0016 (c) 1991 SNK */
+sengokud /* 0017 (c) 1991 SNK */
+burningfd /* 0018 (c) 1991 SNK */
+lbowlingd /* 0019 (c) 1990 SNK */
+gpilotsd /* 0020 (c) 1991 SNK */
+joyjoyd /* 0021 (c) 1990 SNK */
+lresortd /* 0024 (c) 1992 SNK */
+eightmand /* 0025 (c) 1991 SNK / Pallas */
+minasand /* 0027 (c) 1990 Monolith Corp. */
+2020bbd /* 0030 (c) 1991 SNK / Pallas */
+socbrawld /* 0031 (c) 1991 SNK */
+roboarmyd /* 0032 (c) 1991 SNK */
+fatfury1d /* 0033 (c) 1991 SNK */
+fbfrenzyd /* 0034 (c) 1992 SNK */
+bakatonod /* 0036 (c) 1991 Monolith Corp. */
+crswordd /* 0037 (c) 1991 Alpha Denshi Co. */
+trallyd /* 0038 (c) 1991 Alpha Denshi Co. */
+sengoku2d /* 0040 (c) 1993 SNK */
+3countbd /* 0043 (c) 1993 SNK */
+aofd /* 0044 (c) 1992 SNK */
+androdund /* 0049 (c) 1992 Visco */
+ncommandd /* 0050 (c) 1992 Alpha Denshi Co. */
+wh1d /* 0053 (c) 1992 Alpha Denshi Co. */
+
+ /* midtunit */
+mk //parent
+mkfr // french
+mkturbod /* MK protection hack */
+mktturboen // Zenomorp 2012 Turbo Endurance
+mktturbopi // Zenomorp 2012 Turbo Projectile Insanity
+mk2 //parent Mortal Kombat II r3.1
+mk2fr // french
+mk2r33 // Mortal Kombat II r3.3
+mk2v28b1 // Mortal Kombat II v2.8 beta 1
+umk2te50 // Ultimate MKII Tournament Edition r5.0.050
+umk2te51 // Ultimate MKII Tournament Edition r5.0.051
+umk2te52 // Ultimate MKII Tournament Edition r5.0.052
+// waiting for roms
+//mk2fr01
+//mk2fr02 //Mortal Kombat II (Todos los Roms Hacks Coleccion)
+//mk2fr03 //Mortal Kombat II (Todos los Roms Hacks Coleccion)
+//mk2fr04
+
+
+ /* midwunit */
+umk3 //parent
+umk3j /* UMK3 1.2 Juggernaut Hack v1.0 */
+umk3r13b1 /* UMK3 1.3 public beta 1 */
+umk3te /* UMK3 Tournament Edition 2.0.032b8 */
+umk3te2 /* UMK3 Tournament Edition 2.0.035 */
+umk3z /* UMK3 1.2 Zeus hack */
+umk3ze
+
+ /* midyunit */
+mkla4d /* MK protection hack */
+
+ /* mitchell */
+mitcdemo /* Charles Doty */
+
+ /* model2 */
+srallyc //parent
+srallyp // Kyle Hodgetts Sega Rally Pro Drivin'
+
+ /* monaco */
+monaco
+
+ /* mrdo */
+mrdo //parent
+mrdigdo /* Justin Clark hack of Mr. Do! */
+mrdofast /* Speedup hack from Evil Exidy*/
+mrpac /* Twist Hack 20020813 */
+mrpacb
+newdigdo /* Vic 20 George and Jerky hack of... */
+stickydo /* Marck's Hacks */
+
+ /* mslug */
+msboot
+mslugeh
+mslug2eh
+mslug2eh0
+mslug2eh1
+mslug2eh2
+mslug2eh3
+mslug2eh4
+mslug2fr
+mslug2fro
+mslug2sh
+mslug2t // 2015 trap15 - remove slowdowns that plague gameplay
+mslugxce
+mslugxeb
+mslugxeh
+mslugxeh1
+mslugxex
+mslugxfe
+mslugxfr
+mslugxfro
+mslugxhp
+mslugxit
+mslugxjdkj
+mslugxmfb
+mslugxres
+mslugxsef
+mslugxsvb
+mslugxp
+mslugxr
+mslugxst
+mslug3d
+mslug3eha
+mslug3ehs
+mslug3e02
+mslug3e03
+mslug3e04
+mslug3e05
+mslug3e06
+mslug3e07
+mslug3e08
+mslug3e09
+mslug3e10
+mslug3e11
+mslug3e12
+mslug3e13
+mslug3e14
+mslug3e15
+mslug3e16
+mslug3e17
+mslug3e18
+mslug3e19
+mslug3e20
+mslug3e21
+mslug3e22
+mslug3eb
+mslug3fr
+mslug3fro
+mslug3hev
+mslug3kh
+mslug3kho
+mslug3nd
+mslug3v /* EEZEZY Violence Edition */
+mslug4d
+mslug4dh /* Super D version */
+mslug4dh1
+mslug4eh
+mslug4eh2
+mslug4eh3
+mslug4eh4
+mslug4eh5
+mslug4eh6
+mslug4eho
+mslug4fr
+mslug4i
+mslug4i1
+mslug4kh
+//mslug4lw // not working - p roms are encrypted
+mslug4nd
+mslug4sp
+mslug5b
+mslug5d
+mslug5d1
+mslug5f
+mslug5fr
+mslug5fr1
+//mslug5fu // not working - p roms are encrypted
+mslug5hd
+mslug5l9a
+mslug5l9b
+mslug5lvf
+mslug5lvnc
+mslug5nd
+mslug5w
+ms5boot
+ms5pcbd
+ms5sp
+
+ /* mspacman */
+mspacman //parent
+chtmsatk /* PacMAME Hacks */
+chtmspa /* PacMAME Hacks */
+cookiem
+cottoh /* Gatinho hack of mspacman, to simulate what Crazy Otto might have been like */
+cottoh2 /* Gatinho hack of mspacman, to simulate what Crazy Otto might have been like */
+fasthang
+fastpuck
+fasthear /* PacMAME Hacks */
+fastmspa /* PacMAME Hacks */
+fastpop
+faststrm /* PacMAME Hacks */
+fstmsatk /* PacMAME Hacks */
+fstpman2
+heartbn2 /* PacMAME Hacks */
+heartbrn /* unknown hack of Ms. Pac-Man */
+horizpab /* Jerronimo v1.0 2004 */
+horizpac /* Jerronimo */
+mrmrspac
+mrpacman
+ms1000 /* Blue Justice */
+ms2000 /* Blue Justice */
+ms2600 /* T-Bone hack of Ms. Pac-Man */
+ms3000 /* Blue Justice */
+ms4000p /* Blue Justice */
+ms5000 /* Blue Justice */
+ms5000p /* Blue Justice */
+msatk2ad /* PacMAME Hacks */
+msatkad
+msbaby /* T-Bone hack */
+msberzk /* Bobby Tribble hack of Ms. Pac-Man */
+mscrzyma /* Blue Justice */
+mscrzymp /* Blue Justice */
+msdroid /* Grendal74 */
+msdstorm /* Mike Naylor hack of Ms. Pac-Man */
+mselton /* Sil hack of Ms. Pac-Man */
+msextra /* Blue Justice */
+msextrap /* Blue Justice */
+msf1pac /* Sil hack of Ms. Pac-Man */
+msgrkatk /* Grendal74 */
+msgrkb /* Grendal74 */
+mshangly /* PacMAME Hacks */
+mshearts /* PacMAME Hacks */
+msheartb
+msindy /* Sil hack of Ms. Pac-Man */
+msmini /* T-Bone hack of Ms. Pac-Man */
+msminia /* T-Bone hack of Ms. Pac-Man */
+msmspac /* Blue Justice */
+msnes4a /* T-Bone hack of Ms. Pac-Man */
+msnes62 /* T-Bone hack of Ms. Pac-Man */
+msnes63 /* T-Bone hack of Ms. Pac-Man */
+msnes6m /* T-Bone hack of Ms. Pac-Man */
+msnes6m2 /* T-Bone hack of Ms. Pac-Man */
+msnes6m3 /* T-Bone hack of Ms. Pac-Man */
+msnes6m4 /* T-Bone hack of Ms. Pac-Man */
+mspac1 /* from Greekmame 0.87 */
+mspac6m /* Sil hack of Ms. Pac-Man */
+mspac6m2 /* Sil hack of Ms. Pac-Man (fixed) */
+mspacad /* Sil hack of Ms. Pac-Man */
+mspacat2 /* Sil hack of Miss Pac Plus */
+mspacatb
+mspacde
+mspacdel /* Blue Justice */
+mspacfnt
+mspachi
+mspacii
+mspacit
+mspacit2
+mspacj
+mspacmap /* Don Hodges patch to fix various bugs in mspacmab */
+mspacmbg
+mspacnes /* T-Bone hack of Ms. Pac-Man */
+mspacp /* Blue Justice */
+mspacpbl /* Dav/PMP bootleg */
+mspacren /* T-Bone hack of Ms. Pac-Man */
+mspacrip /* R3mer hack of Ms. Pac-Man */
+mspacsup /* Super Ms. Pac-Man */
+mspacwf /* Tim Appleton - Ms. PacMan Weird Fruit */
+mspamsba /* Blue Justice */
+mspc6mad /* T-Bone hack of Ms. Pac-Man */
+msplus /* Blue Justice 20010824 */
+msrumble
+mssilad /* PacMAME Hacks */
+msstrmaz /* Blue Justice */
+msultra
+msvctr6m /* T-Bone hack of Ms. Pac-Man */
+msvectr /* PacMAME Hacks */
+msyakman /* PacMAME Hacks */
+ottop1
+ottop2
+ottop3
+ottopz
+pacatk /* Widel's Games */
+pacgalu
+pacgent
+pacrab
+pacsnoop /* Jerronimo */
+petshop
+pheartb
+piranha2
+ramsnoop /* Jerronimo */
+sueworlb
+sueworld
+superp4g
+superp4m
+supmspac /* Spedic Vending bootleg */
+tinyworld
+vectratk /* Sil and T-Bone hack of Ms. Pac-Man */
+womanp5
+zolamaze
+zolaad /* PacMAME Hacks */
+zolaatk /* PacMAME Hacks */
+zolapac /* PacMAME Hacks */
+zolaslow /* PacMAME Hacks */
+zolatunl /* PacMAME Hacks */
+zolavect /* PacMAME Hacks */
+ /* "Pacman hardware" games (hires hacks) */
+mschampx
+mspacmnx
+mspacmfx
+mspacatx
+mspacmbx
+mspacplx
+pacgalx
+
+ /* multipac */
+96in1 /* Widel's Games */
+96in1a /* Widel's Games */
+96in1b /* Widel's Games */
+96in1c /* Widel's Games */
+hackypac /* Widel's Games */
+madpac /* Widel's Games */
+multi10 /* bootleg */
+multi11 /* bootleg */
+multi13 /* bootleg */
+multi14 /* bootleg */
+multi15 /* bootleg */
+mspaceur
+pm4n1
+pm4n1a
+pm4n1b
+pm4n1c
+pm4n1d
+pm4n1e
+superabc
+superabco
+
+ /* nemesis */
+salamand //parent
+spclone // v0.7.3
+spcloneo // v0.7.2.2
+
+ /* neogeo */
+// These are the parents of our hacks
+neogeo
+2020bb // 030
+3countb // 043
+alpham2 // 007
+androdun // 049
+//aodk // 074 not needed
+aof // 044
+aof2 // 056
+aof3 // 096
+b2b // 071
+bakatono // 036
+bangbead // 259
+bjourney // 022
+//blazstar // 239 not needed
+breakers // 230
+breakrev // 245
+bstars // 002
+//bstars2 // 041 not needed
+burningf // 018
+crsword // 037
+crswd2bl // 054
+ctomaday // 249
+cyberlip // 010
+doubledr // 082
+eightman // 025
+fatfury1 // 033
+fatfury2 // 047
+fatfury3 // 069
+fatfursp // 058
+fbfrenzy // 034
+fightfev // 060
+flipshot // 247
+galaxyfg // 078
+ganryu // 252
+garou // 253
+ghostlop // 228
+//goalx3 // 209 not needed
+gowcaizr // 094
+gpilots // 020
+//gururin // 067 not needed
+ironclad // 220
+//irrmaze // 236 not needed
+//janshin // 048 not needed
+jockeygp // 331
+joyjoy // 021
+kabukikl // 092
+karnovr // 066
+kizuna // 216
+kof94 // 055
+kof95 // 084
+kof96 // 214
+kof97 // 232
+kof98 // 242
+kof99 // 251
+kof2000 // 257
+kof2001 // 262
+kof2002 // 265
+kof2003 // 271
+kf2k3pcb
+kotm // 016
+//kotm2 // 039 not needed
+lastblad // 234
+lastbld2 // 243
+lasthope // 802
+lbowling // 019
+//legendos // 029 not needed
+lresort // 024
+//magdrop2 // 221 not needed
+magdrop3 // 233
+maglord // 005
+//mahretsu // 004 not needed
+//marukodq // 206 not needed
+matrim // 266
+miexchng // 231
+minasan // 027
+mosyougi // 203
+ms5pcb
+mslug // 201
+mslug2 // 241
+mslugx // 250
+mslug3 // 256
+mslug4 // 263
+mslug5 // 268
+mutnat // 014
+nam1975 // 001
+ncombat // 009
+ncommand // 050
+//neobombe // 093 not needed
+neocup98 // 244
+//neodrift // 213 not needed
+//neomrdo // 207 not needed
+ninjamas // 217
+nitd // 260
+overtop // 212
+//panicbom // 073 not needed
+//pbobbl2n // 248 not needed
+pbobblen // 083
+//pgoal // 219 not needed
+pnyaa // 267
+//popbounc // 237 not needed
+preisle2 // 255
+//pspikes2 // 068 not needed
+//pulstar // 089
+puzzledp // 202
+puzzldpr // 235
+//quizdais // 023 not needed
+//quizdai2 // 042 not needed
+//quizkof // 080 not needed
+ragnagrd // 218
+rbff1 // 095
+rbff2 // 240
+rbffspec // 223
+ridhero // 006
+roboarmy // 032
+rotd // 264
+s1945p // 254
+samsho // 045
+samsho2 // 063
+samsho3 // 087
+samsho4 // 222
+samsho5 // 270
+samsh5sp // 272
+savagere // 059
+//sbp // 338 not working
+sdodgeb // 208
+sengoku // 017
+sengoku2 // 040
+sengoku3 // 261
+shocktr2 // 246
+shocktro // 238
+socbrawl // 031
+sonicwi2 // 075
+sonicwi3 // 097
+spinmast // 062
+ssideki // 052
+//ssideki2 // 061 not needed
+//ssideki3 // 081 not needed
+//ssideki4 // 215 not needed
+//stakwin // 088 not needed
+//stakwin2 // 227 not needed
+strhoop // 079
+superspy // 011
+svc // 269
+svcpcb
+tophuntr // 046
+tpgolf // 003
+trally // 038
+//turfmast // 200 not needed
+twinspri // 224
+//tws96 // 086 not needed
+viewpoin // 051
+//vliner // 332 not needed
+wakuwak7 // 225
+wh1 // 053
+wh2 // 057
+wh2j // 064
+whp // 090
+wjammers // 065
+//zedblade // 076 not needed
+zintrckb // 211
+zupapa // 070
+
+ /* neogeohb */
+akiradmo
+beast /* 2002 (c) 1989 Psygnosis */
+cndi /* Chip n Dale Intro */
+cnbe
+cphd
+columnsn /* 2000 (c) 1990 Sega */
+columnsncd
+//csw2 //not working & roms missing
+didemo
+dti // Duck Tales Intro
+dwi /* DarkWing Duck Intro */
+ffeast // Frog Feast
+ffeastd // Frog Feast demo
+fr2 // 098 Idol Mahjong - final romance 2
+fr2cd /* 098 (c) 1995 Video Systems Co. */
+fr2ch /* 098 (c) 1995 Video Systems Co. */
+gbi /* Ghostbusters Intro */
+iocero // BEY
+knacki // KnackiBalls by Furrtek
+lhcdb /* 2007 (c) Last Hope CD beta */
+lhcdba
+//lhopecd //not working
+//lhopecdh // not working
+ltorb
+neo2500 /* Blastar */
+neo3d // Oxygene
+neobadapple // BEY
+neobubble
+neocstlv // BarfHappy
+neodemo /* Charles Doty */
+neofight // Kannagi
+neofightb
+neofighto
+neogal1 // BEY
+neogal1d // BEY
+neogal1t // BEY
+neogal2 // BEY
+neonopon /* (c) 2002-10-05 Blastar */
+neonopon_d1 // unplayable demo
+neonopon_d2 // unplayable demo
+neonopon_d3 // unplayable demo
+neopong /* (c) 2002 Neodev */
+neoponga /* (c) 2002 Neodev */
+neoromjb // CeL
+neotest // BEY
+neothund // Sebastian Mihai
+ngem2k
+ngftdemo // CeL
+ngmontst
+ngtd2
+ngtetris
+nyan
+pcmademo // 2015 freem
+pcmbdemo // 2015 freem
+poknight /* 2003 (c) 200? JMK */
+poknightcd
+poknightfr
+rci /* Robocop intro */
+santabll
+smi /* Spiderman intro */
+snddemo // Sound-Loop Demo by Freem
+spriteex // furrtek Sprite Experimenter
+syscheck
+test01 // MVS Test 01 by Furrtek
+timesupd // CeL
+tmnti /* TMNT intro */
+totc // Treasure of the Caribbean
+twister // Blastar 2015
+ww2demo
+zintrckbh
+zintrkcd /* 211 (c) 1996 ADK / SNK */
+zintrkcd1
+zintrkm
+
+ /* neogeo1 */
+2020bbcd
+androdunpx
+aofbh
+aof2b
+aof2b1
+aof2bh
+aof2br2
+aof3b
+aof3bh
+bangbeadp
+bjourneypx
+breakersbh
+breakersp
+breakersy
+breakrevb
+breakrevpp
+breakrevy
+burningfhp
+ctomadaypx
+dragons1
+eightmaneb
+fightfevbs
+fightfevk
+flipshotk
+galaxyfgb
+galaxyfgbh
+ganryud
+gowcaizrb
+gowcaizrbs
+gowcaizrrv
+gowcaizry
+gpilotscd
+gpilotse
+gpilotspx
+ironcladb
+//ironcladcd // not working
+jockeygpd
+joyjoycd
+joyjoycd1
+kabukiklb
+kabukikleh
+kabukiklgm
+kabukiklgmc
+kabukiklmc
+kabukiklyc
+karnovreh
+kizunab
+kizunaeh
+lans2k4d
+lbowlingcd
+lresortpx
+magdrop3fr /* Neo-Arc French Trans */
+maglordpx
+matrima
+matrimbh
+matrimd
+matrimdh
+matrimeh
+matrimehc
+matrimnd
+miexchngfr /* Neo-Arc French Trans */
+mutnatex
+nam1975g
+nam1975h
+ncombatpk
+ncommandsp
+neocup98k
+ninjamasasp
+ninjamaschl
+ninjamaseh
+ninjamasehc
+ninjamasehyc
+ninjamasha
+ninjamashb
+nitdd
+nitdfr /* Neo-Arc French Trans */
+nitdfro /* Neo-Arc French Trans */
+nitdfro1
+nitdpx
+nitdsp
+nitdsp1 // Spanish.Rev2
+nitdsp2
+pbcrazyb1
+pbcrazyb2
+pbobblenba
+pbobblencd
+pbobblendx
+pnyaad
+preisle2d
+preisle2px
+//pspikes2cd // not working
+ragnagrdbe
+ragnagrdbs
+ragnagrdeh
+ragnagrdsb
+s1945pd
+s1945peh
+s1945ph
+s1945pwe
+savagereb
+savageredb
+sdodgebp
+shocktr2px
+shocktr2w
+shocktrosp
+sonicwi2eh
+sonicwi2px
+sonicwi3eh
+sonicwi3h
+sonicwi3px
+spinmasth
+spinmastpx
+ssidekicd
+strhoopcd
+superspycd
+tophuntrpx
+tpgolfcd
+trallycd
+twinsprih
+viewpoinf
+viewpointr
+wakuwak7bh
+wakuwak7h
+wjammersf
+wjammersk
+zupapad
+//diggerma duplicate name, to check
+
+
+ /* ngdoubledr */
+dbdehy
+dbdy
+dbdeh
+dbdq
+dbdqb
+dbdqp
+dbdqeh
+doubledre2
+doubledres
+doubledrhp
+doubledrsp
+
+ /* nggaroup */
+garoub
+garoud
+garoupamu
+garoupeh
+garoupehc
+garoupy
+garoupf
+garoupfu
+garoupfp
+garoupx11
+garoupy1
+
+ /* ngkofmisc */
+cthd2k3b
+//cthd2k3a // not working, "not responding"
+ct2k3eh
+ct2k3ifz
+ct2k3k3
+ct2k3k3o
+ct2k3spi
+ct2k3xx
+ct2k3ys
+//ct2k3ad
+//ct2k3spd
+//cthd2k3a
+//cthd2k3d
+kof2k4mp
+kof2k4omg
+kof2k4ru // no sound in attract mode
+kof2k4se1
+kof2k4se2
+//kof2k4pls
+kof2k4seb
+kof2k4spl
+kof2k8uni
+//kof10thbr
+//kof10thd
+//kof10thd16 // not working, p1 needs unscrambling
+kof10thep15
+kof10thu
+kof10thub
+kof10thud
+kogd
+kogf
+koggv
+kogmxpls
+kogplus
+kogplus1
+kogplusf
+kogsm
+
+ /* nglastblade */
+lba
+lbb
+lbd
+lbe
+lbboss
+lbeh
+lbeh2
+lbeho
+lbha
+lbseh
+lbsk
+lbsp
+lbsp2
+lby
+lb2a
+lb2b
+lb2bh
+lb2bhd
+lb2easy
+lb2ed
+lb2ebd
+lb2eh
+lb2eh2
+lb2eho
+lb2ehu
+lb2pl
+lb2te
+lb2uh
+lb2wh
+lb2yd
+
+ /* ngrbff */
+fatfury2b
+fatfury3b
+fatfury3bd
+fatfury3bh
+fatfury3eh
+fatfurspb
+fatfurspbs
+fatfurspbt
+fatfurspeh
+rbff1ud
+rbffsehd
+rbffsb
+rbffseh
+rbffspecbs
+rbffspy
+rbffspbd
+rbffsud
+rbff2b
+rbff2bh
+rbff2eh
+rbff2ehc
+rbff2eh2
+rbff2eho
+rbff2fc
+rbff2ud
+rbff2y
+
+ /* ngrotd */
+rotdb
+rotdb1
+rotdbh
+rotdbr
+rotdbr1
+rotdbr2
+rotdbr2d
+rotdcre
+rotdcreb
+rotdd
+rotddh
+rotdeh
+rotdehc
+rotdfw
+rotdfy
+rotdh2b
+rotdhab
+rotdhab1
+rotdhar
+rotdhfw
+rotdhfwb
+rotdnd
+rotdyc
+
+ /* ngsamsho */
+fswordsb1
+fswordsb2
+fswordsbf
+samshob
+samshoeh
+samshoeh2
+samshos1
+samshozk
+samsho2eh
+samsho2emb
+samsho2hy
+samsho2mb
+samsho2q
+samsho2s2
+samsho2sp
+samsho2sp2
+samsho2sp3
+samsho2sp4
+samsho2sp5
+samsho2sq
+samsho2ss
+samsho2yc
+samsho2zk
+samsho3eh
+samsho3hb
+samsho3s2
+samsho3se
+samsho3ss
+samsho3yc
+samsho3zk
+samsho4bh
+samsho4cz
+samsho4eh
+samsho4es
+samsho4ev
+samsho4ew
+samsho4fc
+samsho4kw
+samsho4kz
+samsho4mb
+samsho4pm
+samsho4ps
+samsho4s2
+samsho4sp
+samsho4wh
+samsho4zk
+samsho5ba
+samsho5bd
+samsho5bh
+samsho5bs
+samsho5ch
+samsho5d
+samsho5d1
+samsho5ge
+samsho5hd
+samsho5s2
+samsho5x
+samsho5zk
+samsh5spd
+samsh5spd1
+samsh5spd2
+samsh5sph1
+samsh5spha
+samsh5sphb
+samsh5sphc
+samsh5sphd
+samsh5spn
+samsh5spnd
+samsh5spnh3
+samsh5spnzk
+
+ /* ngsengoku */
+sengokucd
+sengoku3b
+sengoku3c
+sengoku3d
+sengoku3eb
+sengoku3eh
+sengoku3ha
+sengoku3k
+sengoku3kc
+sengoku3p
+sengoku3pl
+sengoku3s
+sengoku3ya
+sengoku3yk
+
+ /* ngsvc */
+svccprw
+svcd
+svcd1
+svcee
+svcesv
+svcg
+svch
+svch2
+svcice
+svclspc
+svcnd
+svcnh
+svcpcbd
+svcplusa2016
+svcplusb
+svcplusd
+svcplusg
+svcplusp
+svcplusp2
+svcpryu
+svcps2
+svcrm
+svcryu
+svcspjoy
+svcsplus2016
+svcspryu
+svcstdse
+svcxlb
+
+ /* ngwh */
+whpb
+whpb2
+whpbh
+whpbho
+whpbho2
+whpeh
+whpeho
+whphez
+whpsp
+whpss
+wh1bs
+wh2bs
+wh2ey
+wh2ja
+wh2jb
+
+ /* nmk16 */
+//tdragon //parent
+//tdragonp // trap15 - not working
+tdragon2 //parent
+tdragon2p // trap15
+
+ /* pacland */
+pacland //parent
+mariopac
+paclandb
+paclandd /* Blue Justice */
+
+ /* pacman */
+abortman /* Paul C Copeland hack of Puckman */
+baby2 /* T-Bone hack */
+baby3 /* T-Bone hack */
+baby4 /* T-Bone hack */
+brakman /* Jerry Lawrence hack of Pac-Man (Midway) */
+bucaneer /* PacMAME Hacks */
+caterpil
+chtpac
+chtpac3d
+chtpman2
+chtpop
+chtpuck
+crazypac
+dizzy
+eltonpac /* Sil hack of Pac-Man (Midway) */
+europac /* Stefano 'Jojo' Priore hack of Pac-Man (Midway) */
+fpnleash
+hanglyad
+hmhearts /* hack */
+hearts
+hellowp // cmonkey UKVAC
+hm1000 /* Blue Justice */
+hm2000 /* Blue Justice */
+hmba5000 /* Blue Justice */
+hmba7000 /* Blue Justice */
+hmbabymz /* Blue Justice */
+hmbluep /* Blue Justice */
+hmgrenp /* Blue Justice */
+hmpopey /* */
+hmplus /* Blue Justice */
+homercid /* David Widel */
+jacman
+jpmmunch /* JPM bootleg */
+mazeman /* Sil hack of Pac-Man */
+namcosil /* Sil hack of Pac-Man (Namco) */
+newpuck2 /* Scotty hack of Pac-Man */
+newpuck3
+nwpuc2b
+pac2600 /* Bobby Tribble hack of Pac-Man (Midway) */
+pac2600a
+pacbaby
+pacbaby2
+pacbaby3
+pacbell
+pacelec
+pacfnt
+pacinvis
+pacjail
+pacjr1
+pacjr2
+pacjr3
+pacjr4
+pacm255 /* Mark Spaeth patch for level 256 */
+pacman25 /* Jerronimo v1.0 2004 */
+pacman3d /* Sil hack of Pac-Man (Midway) */
+pacman6
+pacmanp /* Don Hodges patch for level 256 */
+pacmar /* PacMAME Hacks */
+pacminer
+pacmini /* Bobby Tribble hack of Pac-Man (Midway) */
+pacmini2 /* Bobby Tribble hack of Pac-Man (Midway) */
+pacmn6m2
+pacms1
+pacms2
+pacms3
+pacms4
+pacmsa1
+pacmsa2
+pacmsa3
+pacmsa4
+pacmulti
+puck255
+pacplusc
+pacpopey /* unknown hack of Pac-Man (Namco) */
+pacshuf
+pacspeed
+pacweird
+pacwf /* Tim Appleton - Weird Fruit */
+pcrunchy
+pengman /* Jerry Lawrence hack of Pac-Man (Midway) */
+pm1000 /* Blue Justice */
+pm2000 /* Blue Justice */
+pm3000 /* Blue Justice */
+pm4000p /* Blue Justice */
+pm5000p /* Blue Justice */
+pm6000 /* Blue Justice */
+pm7000 /* Blue Justice */
+pm7000p /* Blue Justice */
+pmad /* SirScotty and Sil hack of Pac-Man (Midway) */
+pmad00
+pmad6m /* T-Bone hack */
+pmada
+pmba2000 /* Blue Justice */
+pmba3000 /* Blue Justice */
+pmba4000 /* Blue Justice */
+pmba6000 /* Blue Justice */
+pmba8000 /* Blue Justice */
+pmbamaz /* Blue Justice */
+pmbaplus /* Blue Justice */
+pmbluep /* Blue Justice */
+pmdeluxe /* Blue Justice */
+pmextra /* Blue Justice */
+pmextrap /* Blue Justice */
+pmfever /* Blue Justice */
+pmgrenp /* Blue Justice */
+pmheart
+newpuc1 /* Italian dump */
+pplusad
+puckman //our parent (not same as mame)
+puckmano
+puckmoti
+puckmot1
+puckren
+puckrenc
+punleash
+roboman
+snakeyes /* T-Bone hack */
+snowpac /* T-Bone hack */
+spuckman
+sumeltob
+sumelton
+tbone /* T-Bone hack */
+ultra2 /* PacMAME Hacks */
+ultrapac
+vcrunchy
+vecbaby
+vecbaby2
+vecbaby3
+vecpac /* T-Bone hack of Pac-Man (Midway) */
+vectplus
+vectr6m /* T-Bone hack */
+vectr6tb /* T-Bone hack */
+vectxens
+vhangly
+vhangly3
+vpacbell
+vpacelec
+vpacjail
+vpacms1
+vpacms2
+vpacms3
+vpacms4
+vpacmsa1
+vpacmsa2
+vpacmsa3
+vpacmsa4
+vpacshuf
+vpspeed
+xensad
+xensrev
+ /* "Pacman hardware" games (hires hacks) */
+puckmanx
+puckmnax
+puckmnfx
+puckmnhx
+pacmanx
+pacmanfx
+puckmodx
+pacmodx
+newpuc2x
+nwpuc2bx
+nwpuckxx
+hanglyx
+hangly2x
+hangly3x
+pacplusx
+pheartx
+
+ /* pcktgal */
+pcktgal //parent
+pckgalgr /* Vag @ GreekRoms */
+pcktgalk /* Korean Translation */
+
+ /* pengo */
+pengo //parent
+pacpen
+pengopop
+vecpengo /* T-Bone hack of Pengo */
+alpacap7 /* "Jerronimo", "Alpaca v0.7 (Pengo Hardware) useless */
+alpacap8 /* "Jerronimo", "Alpaca v0.8 (Pengo Hardware) useless */
+
+ /* pgm */
+pgm //required bios
+ket
+//kov //parent
+//kov2 //parent
+kovplus
+kovsh
+kov2p
+pgemeni /* Blastar */
+pgmdemo /* Charles Doty */
+pgmfrog /* Rastersoft */
+ketarr // trap15 hack
+ketarrb // trap15 hack
+ketarr10 // trap15 hack
+ketarr15 // trap15 hack
+ketarr151 // trap15 hack
+ketarrf // trap15 hack
+ketarrs15 // trap15 hack
+ketarrs151 // trap15 hack
+orlegend //parent
+orlegendcs
+orlegendh
+//kovassg
+//kovdf
+kovsgqyzc // similar to kovsgqyza
+kov2h1
+kov2h2
+kov2h3
+kov2h4
+kov2h5 // was kov2psv
+kovph1
+kovph2
+kovph3
+kovph4
+kovph5
+kovph6
+//kovph7
+kovph8
+//kovph9
+//kovph10
+kovph11
+kovph12
+kovph13
+kovph14
+kovph15
+//kovph16
+kovph17
+kovph18
+//kovph19
+//kovph20
+//kovph21
+//kovph22
+//kovph23
+kovph24 // was kvplusjq
+kovph25 // was kovplusq
+kovsh1
+kovsh2
+kovsh3
+//kovsh4 // all of these are encrypted, not working
+//kovsh5
+//kovsh6
+//kovsh7
+//kovsh8
+//kovsh9
+//kovsh10
+//kovsh11
+//kovsh12
+//kovsh13
+//kovsh14
+//kovsh15
+//kovsh16
+//kovsh17
+kovsh18 // gem fighters
+kovsh19 // rugal 98
+// waiting for roms
+//kov2 //parent
+//killbld //parent
+//kovshp //parent
+//oldsplus //parent
+//olds //parent
+//martmast //parent
+//killblds01 //The Killing Blade (Todos los Roms Hacks Coleccion)
+//kov2s01
+//kov2s02
+//kov2s03
+//kov2s04
+//kov2s05 //Knights of Valour 2 Plus (Todos los Roms Hacks Coleccion)
+//kov2s06
+//kov2s07
+//kov2s08
+//kov2s09
+//kov2s10
+//kov2s11
+//kov2s12
+//kov2s13
+//kov2s14
+//kov2s15
+//kov2s16
+//kov2s17
+//kov2s18
+//kov2s19
+//kov2s20
+//kov2s21
+//kov2s22
+//kov2s23
+//kov2h01
+//kov2h02 //Knights of Valour 2 (Todos los Roms Hacks Coleccion)
+//kov2h03
+//kov2h04
+//kov2h05
+//kov2h06
+//kovs01
+//kovs02
+//kovs03
+//kovs04
+//kovs05
+//kovs06
+//kovs07
+//kovs08
+//kovs09
+//kovs10
+//kovs11
+//kovs12
+//kovs13
+//kovs15
+//kovs16
+//kovs17
+//kovs18
+//kovs19
+//kovs20
+//kovs21
+//kovs22
+//kovs23 //Knights of Valour Plus (Todos los Roms Hacks Coleccion)
+//kovs24
+//kovs25
+//kovs26
+//kovs27
+//kovs28
+//kovs29
+//kovs30
+//kovs31
+//kovs32
+//kovs33
+//kovs34
+//kovs35
+//kovs36
+//kovs37
+//kovs38
+//kovs39
+//kovs40
+//kovs41
+//kovs42
+//kovs43
+//kovs44
+//kovs45
+//kovs46
+//kovs47
+//kovs48
+//kovs49
+//kovs50
+//kovs51
+//kovs52
+//kovs53
+//kovs54
+//kovs55
+//kovs56
+//kovs57
+//kovs58
+//kovs59
+//kovs60
+//kovs61
+//kovs62
+//kovs63
+//kovs64
+//kovs65
+//kovs66
+//kovs67
+//kovs68
+//kovs69
+//kovs70
+//kovs71
+//kovsh01
+//kovsh02
+//kovsh03
+//kovsh04
+//kovsh05
+//kovsh06 //Knights of Valour Super Heroes (Todos los Roms Hacks Coleccion)
+//kovsh07
+//kovsh08
+//kovsh09
+//kovsh010
+//kovsh011
+//kovsh012
+//kovsh013
+//kovsh015
+//kovsh016
+//kovsh017
+//kovsh018
+//kovsh019
+//kovsh020
+//kovsh021
+//kovsho01
+//kovsho02
+//kovsho03
+//kovsho04 //Knights of Valour Super Heroes Plus (Todos los Roms Hacks Coleccion)
+//kovsho05
+//kovsho06
+//kovsho07
+//kovsho08
+//kovsho09
+//kovsho10
+//kovsho11
+//kovqhs01
+//martmasthc01
+//orlegends01
+//orlegends02 //Oriental Legend Plus (Todos los Roms Hacks Coleccion)
+//orlegends03
+//orlegends04
+//orlegends05
+//orlegends06
+//orlegends07
+//orlegends08
+//orlegends09
+//orlegends10
+//orlegends11
+//orlegends12
+//orlegends13
+//orlegends14
+//orlegends15
+//orlegends16
+//orlegends17
+//orlegends18
+//orlegends19
+//orlegends20
+//orlegends21
+//orlegends22
+//orlegends23
+//oldsplus01
+//oldsplus02
+//oldsplus03
+//oldsplus04
+//olds100s01
+
+
+ /* phoenix */
+phoenix //parent
+phoenixg /* Vag @ GreekRoms */
+phoenixr /* CYBERYOGI =CO= Windler hack of Phoenix */
+
+ /* playch10 */
+playch10 //bios
+pc_bb2 /* NES->PC-10 */
+pc_ctfrc /* NES->PC-10 */
+pc_digdg /* NES->PC-10 */
+pc_krsty /* NES->PC-10 */
+pc_mman5 /* NES->PC-10 */
+pc_parsl /* NES->PC-10 */
+pc_ark /* NES->PC-10 */
+pc_dk3 /* NES->PC-10 */
+pc_galag /* NES->PC-10 */
+pc_cch /* NES->PC-10 */
+pc_dk /* NES->PC-10 */
+pc_pacm /* NES->PC-10 */
+pc_gyrus /* NES->PC-10 */
+pc_skykd /* NES->PC-10 */
+
+ /* pooyan */
+pooyan // parent
+pooyandiag
+
+ /* powerins */
+powerins //parent
+powernbr // Brazil translation
+//powerns01 need roms
+
+ /* psikyosh */
+s1945ii //parent
+s1945iiex
+s1945iii //parent
+s1945sr3
+//daraku //parent
+//darakuhc01 need roms
+
+ /* rallyx */
+rallyx //parent
+rxtron /* Jerky and Sil hack of Rally-X */
+nrallyv /* New Rally-X (vertical) */
+
+ /* rastan */
+rastan //parent
+rastandh /* Neil Pearce Hack */
+rastand2 /* Neil Pearce Hack */
+rastaneh /* Neil Pearce Hack */
+rastane2 /* Neil Pearce Hack */
+rastwack /* Vogel Hack */
+
+ /* retofinv */
+retofinv //parent
+retofinv4 /* Paul Smith hack */
+
+ /* schaser */
+schasrcv // extra sounds
+
+ /* segac2 */
+c2frog
+
+ /* segaorun */
+outrun //parent
+outrunen
+outrunen0
+outrunen1
+outrunen2
+outrunm
+
+ /* segag80r */
+astrob //parent
+astrob2h
+
+ /* segas16b */
+//altbeast //parent
+//altbeastfr // french - Arkatrad - not working
+
+ /* shaolins */
+kicker //parent
+kfjohnny /* hack by Smitdogg*/
+
+ /* skimaxx */
+skimaxx // Kyle Hodgetts
+
+ /* snk6502 */
+vantris /* (c) 1998 Norbert Kehrer */
+
+ /* simple_st0016 */
+renju //parent
+renjuk /* Korean Translation */
+
+ /* spacmiss */
+spacmissx // extra sounds
+
+ /* system1 */
+wbml //parent
+wbmlbit /* Italian Translation */
+wbmlkb /* Korean Translation */
+
+ /* system16 */
+sys16dem // Charles Doty
+
+ /* taito_b */
+pbobble //parent
+bubbleb /* pbobble USA Region Hack */
+
+ /* taito_f2 */
+f2demo /* Charles Doty */
+
+ /* taito_f3 */
+cleopatr //parent
+dariusg //parent
+gekiridn //parent
+landmakr //parent
+pbobble2 //parent
+cleopath
+driusgxh
+//f3demo /* Antiriad (a demo made for Raine, not tested on real hardware) - not working */
+gekiridh
+gekiridoc
+landmakh
+pbobl2xh
+
+ /* taito_l */
+evilston //parent
+evilstonfr // French
+sokoban // Sokoban LE by cmonkey
+speccies // Speccies 2 by Sokurah
+tldemo // cmonkey
+tldemo2 // cmonkey
+
+ /* tecmo */
+gemini //parent
+geminit /* Twisty Hack */
+rygar //parent
+rygark /* Korean Translation */
+
+ /* tecmo16 */
+fstarfrc //parent
+fstarfrcc
+
+ /* tehkanwc */
+tehkanwc //parent
+ballonwc
+tehkangc
+tankwc
+twc_gr /* Vag @ GreekRoms */
+
+ /* tempest */
+tempest //parent
+tempall
+temped /* Tempest TempEd Hack */
+tempestm
+temptwst /* Twisty Hack */
+tmptwsta /* Twisty Hack 2000 */
+tmptwst2 /* Twisty Hack */
+tmptwst3 /* Twisty Hack */
+tmptwst4 /* Twisty Hack */
+vbrakout /* Clay Cowgill */
+tempmg /* Clay Cowgill Multi-Tempest */
+temptlm
+tvortex /* Tempest Prototype */
+tvortexa /* Tempest Prototype */
+aliensv /* Tempest Prototype */
+aliensva /* Tempest Prototype */
+
+ /* terracre */
+terracre //parent
+terracrc
+
+ /* timelimit */
+timelimt //parent
+timelimit // dink colour hack
+
+ /* timeplt */
+timeplt // parent
+timepltdiag
+
+ /* tmnt */
+ssriders //parent
+ssridersaex
+
+ /* toaplan1 */
+fireshrk //parent
+samesamenh // Trap15
+
+ /* toaplan2 */
+kingdmgp //parent
+kgpe /* Neill Corlett hack */
+sstriker //parent
+mahoudcn
+batsugun //parent
+batsugunt
+bgaregga //parent
+bgareggz
+//snowbro2 //parent
+//snowbro2xs //Snow Bros 2 (Todos los Roms Hacks Coleccion)
+
+ /* trackfld */
+trackfld //parent
+athens04 /* Athens 2004 - Hack by The Gameland Crew (http://www.gameland.gr): Maddog, Whacker, Badge, Geoanas */
+tst_trkfld
+
+ /* twincobr */
+twincobr //parent
+twincbu2
+twintwst
+
+ /* volfied */
+volfied //parent
+volfiedg /* Vag @ GreekRoms 2005 */
+
+ /* vsnes */
+suprmrio //parent
+mrio2002 /* Vs. Super Mario Bros. 2002 */
+suprsktr /* Vs. Super Skater Bros. - Vs. Super Mario Skaters */
+
+ /* wc90 */
+pac90
+
+ /* williams */
+defender //parent
+defender2
+robotron //parent
+robotron201 // start at level 201 (Sean Riddle)
+robotronp /* Patched to remove the 'in the corner' crash */
+robotrontie // Tie Die set (Vid Kidz)
+splat //parent
+splatsc1
+
+ /* wmg */
+wmg
+
+ /* yiear */
+yiear //parent
+nacho /* Gatinho - Nacho Libre */
+
+
+/*
+neogeo roms to be found
+mslug3b6 //parent
+ms4plus //parent
+neobombe //parent
+aof2s01
+aof2s02 //Art of Fighting 2 (A Collection Of Hacks Set 02)
+aof2s03
+ct2k3k3s01
+ct2k3k3s02 //Crouching Tiger Hidden Dragon 2003 (A Collection Of Hacks Set 02)
+ct2k3k3s03
+ct2k3k3s04
+ct2k3k3s05
+ct2k3k3s06
+ct2k3k3s07
+ct2k3k3s08
+ct2k3k3s09
+ct2k3k3s10
+ct2k3k3s11
+ct2k3k3s12
+ct2k3k3s13
+ct2k3k3s14
+ct2k3k3s15
+ct2k3k3s16
+ct2k3k3s17
+ct2k3k3s18
+ct2k3k3s19
+ct2k3k3s20
+ct2k3k3s21
+ct2k3k3s22
+ct2k3k3s23
+ct2k3k3s24
+ct2k3k3s25
+ct2k3k3s26
+ct2k3k3s27
+ct2k3k3s28
+ct2k3k3s29
+ct2k3k3s30
+ct2k3k3s31
+fatfury1s01 //Fatal Fury - King of Fighters (Todos los Roms Hacks Coleccion)
+fatfury3s01
+fatfury3s02 //Fatal Fury 3 (Todos los Roms Hacks Coleccion)
+galaxyfs01 //Galaxy Fight (Todos los Roms Hacks Coleccion)
+gowcaizrs01 //Voltage Fighter (Todos los Roms Hacks Coleccion)
+gowcaizrs02
+garoups01 //Garou - Mark of the Wolves (Todos los Roms Hacks Coleccion)
+garoups02
+kabukikls01
+kabukikls02 //Far East of Eden - Kabuki Klash (Todos los Roms Hacks Coleccion)
+karnovres01 //Karnov's Revenge (Todos los Roms Hacks Coleccion)
+kof94s01
+kof94s02
+kof94s03
+kof94s04
+kof94s05
+kof94s06
+kof94s07
+kof94s08 //The King of Fighters '94 (Todos los Roms Hacks Coleccion)
+kof94s09 //The King of Fighters '94 (Todos los Roms Hacks Coleccion)
+kof94s10
+kof94s11
+kof94s12
+kof94s13
+kof94s14
+kof94s15
+kof94s16
+kof95s01
+kof95s02
+kof95s03
+kof95s04
+kof95s05
+kof95s06
+kof95s07
+kof95s08
+kof95s09 //The King of Fighters '95 (A Collection Of Hacks Set 09)
+kof95s10 //The King of Fighters '95 (A Collection Of Hacks Set 10)
+kof95s11
+kof95s12
+kof95s13
+kof95s14
+kof95s15
+kof95s16
+kof95s17
+kof96s01
+kof96s02
+kof96s03
+kof96s04
+kof96s05
+kof96s06
+kof96s08
+kof96s09
+kof96s10
+kof96s12
+kof96s13
+kof96s14
+kof96s16
+kof96s17
+kof96s18
+kof96s19
+kof96s20
+kof96s21
+kof96s22
+kof96s23
+kof96s24 //The King of Fighters '96 (A Collection Of Hacks Set 21)
+kof96s25 //The King of Fighters '96 (A Collection Of Hacks Set 22)
+kof96s26
+kof96s27
+kof96s28
+kof96s29
+kof96s30
+kof96s31
+kof96s32
+kof96s33
+kof96s34
+kof96s35
+kof96s36
+kof96s37
+kof96s38
+kof96s39
+kof96s40
+kof96s41
+kof96s42
+kof96s43
+kof96s44
+kof96s45
+kof96s47
+kof96s48
+kof96s49
+kof96s50
+kof96s51
+kof96s53
+kof96s54
+kof96s55
+kof96s56
+kof96s57
+kof96s58
+kof97s01
+kof97s02
+kof97s03
+kof97s04
+kof97s05
+kof97s06
+kof97s07
+kof97s08
+kof97s09
+kof97s10
+kof97s11
+kof97s12
+kof97s13
+kof97s14
+kof97s15
+kof97s16
+kof97s17
+kof97s18
+kof97s19
+kof97s20
+kof97s21
+kof97s22
+kof97s23
+kof97s24
+kof97s25
+kof97s26
+kof97s27
+kof97s28
+kof97s29
+kof97s30
+kof97s31
+kof97s32
+kof97s33
+kof97s34
+kof97s35
+kof97s36
+kof97s37
+//kof97s38
+kof97s39
+kof97s40
+kof97s41
+kof97s42
+kof97s43
+kof97s44
+kof97s45
+kof97s46
+kof97s47
+kof97s48
+kof97s49
+kof97s50
+kof97s51
+kof97s52 //The King of Fighters '97 (A Collection Of Hacks Set 56)
+kof97s53 //The King of Fighters '97 (A Collection Of Hacks Set 57)
+kof97s54
+kof97s55
+kof97s56
+kof97s57
+kof97s58
+kof97s59
+kof97s60
+kof97s61
+kof97s62
+kof97s63
+kof97s64
+kof97s65
+kof97s66
+kof97s67
+kof97s68
+kof97s69
+kof97s70
+kof97s71
+kof97s72
+kof97s73
+kof97s74
+kof97s75
+kof97s76
+kof97s77
+kof97s78
+kof97s79
+kof97s80
+kof97s81
+kof97s82
+kof97s83
+kof97s84
+kof97s85
+kof97s86
+kof97s87
+kof97s88
+kof97s89
+kof97s90
+kof97s91
+kof97s92
+kof97s93
+kof97s94
+kof97s95
+kof97s96
+kof97s97
+kof97s98
+kof97s99
+kof97h01
+// kof97h03 //Duplicado
+kof97h04
+kof97h05
+kof97h06
+kof97h07
+kof97h08
+kof97h09
+kof97h10
+kof97h11
+kof97h12
+kof97h13
+// kof97h14 //Duplicado
+kof97h15
+kof97h16
+kof97h17
+kof97h18
+kof97h19
+kof97h20
+kof97h21
+kof98s01
+kof98s02
+kof98s03
+kof98s04
+kof98s05
+kof98s06
+kof98s07
+kof98s08
+kof98s09
+kof98s10
+kof98s12
+kof98s13
+kof98s14
+kof98s15
+kof98s16
+kof98s17
+kof98s18
+kof98s20
+kof98s21
+kof98s22
+kof98s23
+kof98s24
+kof98s25 //The King of Fighters '98 (A Collection Of Hacks Set 25)
+kof98s27 //The King of Fighters '98 (A Collection Of Hacks Set 27)
+kof98s28
+kof98s29
+kof98s30
+kof98s31
+kof98s32
+kof98s33
+kof98s34
+kof98s35
+kof98s36
+kof98s37
+kof98s38
+kof98s39
+kof98s40
+kof98s41
+// kof98s42 //Duplicado
+kof98s43
+kof98s44
+kof98s45
+kof98s46
+kof98s47
+kof98s48
+kof98s49
+kof98s50
+kof98s51
+kof98s52
+kof98s53
+kof98s54
+kof99s01
+kof99s02
+kof99s03
+kof99s04
+kof99s05
+kof99s06
+kof99s07
+kof99s08
+kof99s09
+kof99s10
+kof99s11
+kof99s12
+kof99s13
+// kof99s14 //Duplicado
+kof99s15
+kof99s16
+kof99s17
+kof99s18
+kof99s19
+kof99s20
+kof99s21
+kf2k5hc1
+kof2001hc01
+kof2k2s01
+kof2k2s02
+kof2k2s03
+kof2k2s04
+kof2k2s05
+kof2k2s06
+kof2k2s07
+kof2k2s08
+kof2k2s09
+kof2k2s10
+kof2k2s11
+kof2k2s12
+kof2k2s13
+kof2k2s14
+kof2k2s15
+kof2k2s16
+kof2k2s17
+kof2k2s18
+kof2k2s19
+kof2k2s20
+kof2k2s21
+// kof2k2s22 //Duplicado
+kof2k2s23
+kof2k2s24
+kof2k2s25
+kof2k2s26
+kof2k2s27
+kof2k2s28
+kof2k2s29
+kof2k2s30
+kof2k3s01
+kof2k3s02
+kof2k3s03
+kof2k3s04
+kof2k3s05
+kof2k3s06
+lastblads01
+lastblads02
+lastblads03
+lastblads04
+lastblads05
+lastblads06
+lastblads07
+lastblads08 //Last Blade (Todos los Roms Hacks Coleccion)
+lastblads09 //Last Blade (Todos los Roms Hacks Coleccion)
+lastblads10
+lastblads11
+lastblads12
+lastblads13
+lastblads14
+lastblads15
+lastblads16
+lastblads17
+lastblads18
+lastblads19
+matrims01
+matrims02
+matrims03 //Matrimelee (Todos los Roms Hacks Coleccion)
+matrims04 //Matrimelee (Todos los Roms Hacks Coleccion)
+matrims05
+matrims06
+matrims07
+mslugs01
+mslugs02
+mslugs03
+mslugs04 //Metal Slug (Todos los Roms Hacks Coleccion)
+mslugs05 //Metal Slug (Todos los Roms Hacks Coleccion)
+mslugs06
+mslugs07
+mslugs08
+mslugs09
+mslugs10
+mslug2s01
+mslug2s02
+mslug2s03
+mslug2s04
+mslug2s05
+mslug2s06 //Metal Slug 2 (Todos los Roms Hacks Coleccion)
+mslug2s07 //Metal Slug 2 (Todos los Roms Hacks Coleccion)
+mslug2s08
+mslug2s09
+mslug2s10
+mslug2s11
+mslug2s12
+mslug2s13
+mslug2s14
+mslug2s15
+mslugxs01
+mslugxs02
+mslugxs03
+mslugxs04
+mslugxs05
+mslugxs06
+mslugxs07
+mslugxs08
+mslugxs09
+mslugxs10
+mslugxs11
+mslugxs12
+mslugxs13
+mslugxs14
+mslugxs15
+mslugxs16
+mslugxs17
+mslugxs18
+mslugxs19
+mslugxs20
+mslugxs21
+mslugxs22
+mslugxs23
+mslugxs24
+mslugxs25
+mslugxs26
+mslugxs27
+mslugxs28
+mslugxs29
+mslugxs30
+mslugxs31
+mslugxs32
+mslugxs33
+mslugxs34
+mslugxs35
+mslugxs36
+mslugxe01
+mslugxe02
+mslugxe03
+mslugxe04
+mslugxe05
+mslugxe06
+mslugxe07
+mslugxe08
+mslugxe09
+mslugxe10
+mslugxe11
+mslugxe12
+mslugxe13
+mslugxe14
+mslugxe15
+mslugxe16 //Metal Slug X (Todos los Roms Hacks Coleccion)
+mslugxe17 //Metal Slug X (Todos los Roms Hacks Coleccion)
+mslugxe18
+mslugxe19
+mslugxe20
+mslugxe21
+mslugxe22
+mslugxe23
+mslugxe24
+mslugxe25
+mslugxe26
+mslugxe27
+mslugxe28
+mslugxe29
+mslugxe30
+mslugxe31
+mslugxe32
+mslugxe33
+mslugxe34
+mslugxe35
+mslugxe36
+mslugxe37
+mslugxh01
+mslugxh02
+mslugxh03
+mslugxh04
+mslugxh05
+mslugxh06
+mslugxh07
+mslugxh08
+mslugxh09
+mslugxh10
+mslugxh11
+mslugxh12
+mslugxh13
+mslugxh14
+mslugxh15
+mslugxh16
+mslugxh17
+mslugxh18
+mslugxh19
+mslugxh20
+mslugxh21
+mslugxh22
+mslugxh23
+mslugxh24
+mslugxh25
+mslugxh26
+mslugxh27
+mslugxh28
+mslugxh29
+mslugxh30
+mslugxh31
+mslugxh32
+mslugxh33
+mslugxh34
+mslugxh35
+mslugxh36
+mslugxh37
+mslugxw01 //Metal Slug X (Todos los Roms Hacks Coleccion)
+mslugxw02 //Metal Slug X (Todos los Roms Hacks Coleccion)
+mslugxw03
+mslugxw04
+mslugxw05
+mslugxw06
+mslugxw07
+mslugxw08
+mslugxw09
+mslugxw10
+mslugxw11
+mslugxw12
+mslugxw13
+mslugxw14
+mslugxw15
+mslugxw16
+mslugxw17
+mslugxw18
+mslugxw19
+mslugxw20
+mslugxw21
+mslugxw22
+mslugxw23
+mslugxz01
+mslugxz02
+mslugxw24
+mslugxz04
+mslugxz05
+mslugxz06
+mslugxz07
+mslugxz08
+mslugxz09
+mslugxz10
+mslugxz11
+mslugxz12
+mslugxz13
+mslugxz14
+mslugxz15
+mslugxz16
+mslugxz17
+mslugxz18
+mslugxz19
+mslugxz20
+mslugxz21
+mslugxz22
+mslugxz23
+mslugxz24
+mslugxz25
+//mslugxz26 //El Error Lo Genera Los Codigo De Mame
+mslugxz27
+mslugxz28
+mslugxz29
+mslugxj01
+mslugxj02
+mslugxj03
+mslugxj04
+mslugxj05
+mslugxj06
+mslugxj07
+mslugxj08
+mslugxj09
+mslugxj10
+mslugxj11
+mslugxj12
+mslugxj13
+mslugxj14
+mslugxj15
+mslugxj16
+mslugxj17
+mslugxj18
+mslugxj19
+mslugxj20
+mslugxj21
+mslugxj22
+mslugxj23
+mslugxj24
+mslugxj25
+// mslugxj26
+mslugxj27
+mslugxj28
+mslugxj29
+mslugxj30
+mslugxj31
+mslugxj32
+mslugxj33
+mslugxj34
+mslugxj35
+mslugxj36
+mslugxj37
+mslugxj38
+mslugxj39
+mslugxj40
+mslugxj41
+mslugxj42
+mslugxj43
+mslugxj44
+mslugxj45
+mslugxj46
+mslugxj47
+mslugxj48
+mslugxj49
+mslugxj50
+mslugxj51
+mslugxj52
+mslugxj53
+mslugxj54
+mslugxj55
+mslugxj56
+mslugxj57
+mslugxj58
+mslugxj59
+mslugxj60
+mslugxj61
+mslugxj62
+mslugxj63
+mslugxj64
+mslugxj65
+mslugxj66
+mslugxj67
+mslugxj68
+mslugxj69
+mslugxj70
+mslugxj71
+mslugxj72
+mslugxj73
+mslugxj74
+mslugxj75
+mslugxj76
+mslugxj77
+//mslugxj78
+mslugxj79
+mslugxj80
+mslugxj81
+mslugxj82
+mslugxj83
+mslugxj84
+mslugxj85
+mslugxj86
+mslugxj87
+mslugxj88
+mslugxj89
+mslugxj90
+mslugxj91
+mslugxj92
+mslugxj93
+mslugxj94
+mslugxj95
+mslugxj96
+mslugxj97
+mslugxj98
+mslugxj99
+mslugxj100
+mslugxj101
+mslugxj102
+mslugxjx01
+mslugxjx02
+mslugxjx03
+mslugxjx04
+mslugxjx05
+mslugxjx06
+mslugxjx07
+mslugxjx08
+mslugxjx09
+mslugxjx10
+mslugxjx11
+mslugxjx12
+mslugxjx13
+mslugxjx14
+mslugxjx15
+mslugxjx16
+mslugxjx17
+mslugxjx18
+mslugxjx19
+mslugxjx20
+mslugxjx21
+mslugxjx22
+mslugxjx23
+mslugxjx24
+mslugxjx25
+mslugxjx26
+mslugxjx27
+mslugxjx28
+mslugxjx29
+mslugxjx30
+mslugxjx31
+mslugxjx32
+mslugxjx33
+mslugxjx34
+mslugxjx35
+mslugxjx36
+mslugxjx37
+mslugxjx38
+mslugxjx39
+mslugxjx40
+mslugxjx41
+mslugxjx42
+mslugxjx43
+mslugxjx44
+mslugxjx45
+mslugxjx46
+mslugxjx47
+mslugxjx48
+mslugxjx49
+mslugxjx50
+mslugxjx51
+mslugxjx52
+mslugxjx53
+mslugxjx54
+mslugxjx55
+mslugxjx56
+mslugxjx57
+mslugxjx58
+mslugxjx59
+mslugxjx60
+mslugxjx61
+mslugxjx62
+mslugxjx63
+mslugxjx64
+mslugxjx65
+mslugxjx66
+mslugxjx67
+mslugxjx68
+mslugxjx69
+mslugxjx70
+mslugxjx71
+mslugxjx72
+mslugxjx73
+mslugxjx74
+mslugxjx75
+mslugxjx76
+//mslugxjx77
+mslugxjx78
+mslugxjx79
+mslugxjx80
+mslugxjx81
+mslugxjx82
+mslugxjx83
+mslugxjx84
+mslugxjx85
+mslugxjx86
+mslugxjx87
+mslugxjx88
+mslugxjx89
+mslugxjx90
+mslugxjx91
+mslugxjx92
+mslugxjx93
+mslugxjx94
+mslugxjx95
+mslugxjx96
+mslugxjx97
+mslugxjx98
+mslugxjx99
+mslugxjx100
+mslugxjx101
+mslugxjy01
+mslugxjy02
+mslugxjy03
+mslugxjy04
+mslugxjy05
+mslugxjy06
+mslugxjy07
+mslugxjy08
+mslugxjy09
+mslugxjy10
+mslugxjy11
+mslugxjy12
+mslugxjy13
+mslugxjy14
+mslugxjy15
+mslugxjy16
+mslugxjy17
+mslugxjy18
+mslugxjy19
+mslugxjy20
+mslugxjy21
+mslugxjy22
+mslugxjy23
+mslugxjy24
+mslugxjy25
+mslugxjy26
+mslugxjy27
+mslugxjy28
+mslugxjy29
+mslugxjy30
+mslugxjy31
+mslugxjy32
+mslugxjy33
+mslugxjy34
+mslugxjy35
+mslugxjy36
+mslugxjy37
+mslugxjy38
+// mslugxjy39
+mslugxjy40
+mslugxjy41
+mslugxjy42
+mslugxjy43
+mslugxjy44
+mslugxjy45
+mslugxjy46
+mslugxjy47
+mslugxjy48
+mslugxjy49
+mslugxjy50
+mslugxjy51
+mslugxjy52
+mslugxjy53
+mslugxjy54
+mslugxjy55
+mslugxjy56
+mslugxjy57
+mslugxjy58
+mslugxjy59
+mslugxjy60
+mslugxjy61
+mslugxjy62
+mslugxjy63
+mslugxjy64
+mslugxjy65
+mslugxjy66
+mslugxjy67
+mslugxjy68
+mslugxjy69
+mslugxjy70
+mslugxjy71
+mslugxjy72
+mslugxjy73
+mslugxjy74
+mslugxjy75
+mslugxjy76
+mslugxjy77
+// mslugxjy78
+mslugxjy79
+mslugxjy80
+mslugxjy81
+mslugxjy82
+mslugxjy83
+mslugxjy84
+mslugxjy85
+mslugxjy86
+mslugxjy87
+mslugxjy88
+mslugxjy89
+mslugxjy90
+mslugxjy91
+mslugxjy92
+mslugxjy93
+mslugxjy94
+mslugxjy95
+mslugxjy96
+mslugxjy97
+mslugxjy98
+mslugxjy99
+mslugxjy100
+mslugxjy101
+mslugxjy102
+mslugxjfr01
+mslugxjfr02
+mslugxjfr03
+mslugxjfr04
+mslugxjfr05
+mslugxjfr06
+mslugxjfr07
+mslugxjfr08
+mslugxjfr09
+mslugxjfr10
+mslugxjfr11
+mslugxjfr12
+mslugxjfr13
+mslugxjfr14
+mslugxjfr15
+mslugxjfr16
+mslugxjfr17
+mslugxjfr18
+mslugxjfr19
+mslugxjfr20
+mslugxjfr21
+mslugxjfr22
+mslugxjfr23
+mslugxjfr24
+mslugxjfr25
+mslugxjfr26
+mslugxjfr27
+mslugxjfr28
+mslugxjfr29
+mslugxjfr30
+mslugxjfr31
+mslugxjfr32
+mslugxjfr33
+mslugxjfr34
+mslugxjfr35
+mslugxjfr36
+mslugxjfr37
+mslugxjfr38
+//mslugxjfr39
+mslugxjfr40
+mslugxjfr41
+mslugxjfr42
+mslugxjfr43
+mslugxjfr44
+mslugxjfr45
+mslugxjfr46
+mslugxjfr47
+mslugxjfr48
+mslugxjfr49
+mslugxjfr50
+mslugxjfr51
+mslugxjfr52
+mslugxjfr53
+mslugxjfr54
+mslugxjfr55
+mslugxjfr56
+mslugxjfr57
+mslugxjfr58
+mslugxjfr59
+mslugxjfr60
+mslugxjfr61
+mslugxjfr62
+mslugxjfr63
+mslugxjfr64
+mslugxjfr65
+mslugxjfr66
+mslugxjfr67
+mslugxjfr68
+mslugxjfr69
+mslugxjfr70
+mslugxjfr71
+mslugxjfr72
+mslugxjfr73
+mslugxjfr74
+mslugxjfr75
+mslugxjfr76
+mslugxjfr77
+//mslugxjfr78
+mslugxjfr79
+mslugxjfr80
+mslugxjfr81
+mslugxjfr82
+mslugxjfr83
+mslugxjfr84
+mslugxjfr85
+mslugxjfr86
+mslugxjfr87
+mslugxjfr88
+mslugxjfr89
+mslugxjfr90
+//mslugxjfr91
+mslugxjfr92
+mslugxjfr93
+mslugxjfr94
+mslugxjfr95
+mslugxjfr96
+mslugxjfr97
+mslugxjfr98
+mslugxjfr99
+mslugxjfr100
+mslugxjfr101
+mslugxjfr102
+mslugxjfr103
+mslugxjfrx01
+mslugxjfrx02
+mslugxjfrx03
+mslugxjfrx04
+mslugxjfrx05
+mslugxjfrx06
+mslugxjfrx07
+mslugxjfrx08
+mslugxjfrx09
+mslugxjfrx10
+mslugxjfrx11
+mslugxjfrx12
+mslugxjfrx13
+mslugxjfrx14
+mslugxjfrx15
+mslugxjfrx16
+mslugxjfrx17
+mslugxjfrx18
+mslugxjfrx19
+mslugxjfrx20
+mslugxjfrx21
+mslugxjfrx22
+mslugxjfrx23
+mslugxjfrx24
+mslugxjfrx25
+mslugxjfrx26
+mslugxjfrx27
+mslugxjfrx28
+mslugxjfrx29
+mslugxjfrx30
+mslugxjfrx31
+mslugxjfrx32
+mslugxjfrx33
+mslugxjfrx34
+mslugxjfrx35
+mslugxjfrx36
+mslugxjfrx37
+mslugxjfrx38
+// mslugxjfrx39
+mslugxjfrx40
+mslugxjfrx41
+mslugxjfrx42
+mslugxjfrx43
+mslugxjfrx44
+mslugxjfrx45
+mslugxjfrx46
+mslugxjfrx47
+mslugxjfrx48
+mslugxjfrx49
+mslugxjfrx50
+mslugxjfrx51
+mslugxjfrx52
+mslugxjfrx53
+mslugxjfrx54
+mslugxjfrx55
+mslugxjfrx56
+mslugxjfrx57
+mslugxjfrx58
+mslugxjfrx59
+mslugxjfrx60
+mslugxjfrx61
+mslugxjfrx62
+mslugxjfrx63
+mslugxjfrx64
+mslugxjfrx65
+mslugxjfrx66
+mslugxjfrx67
+mslugxjfrx68
+mslugxjfrx69
+mslugxjfrx70
+mslugxjfrx71
+mslugxjfrx72
+mslugxjfrx73
+mslugxjfrx74
+mslugxjfrx75
+mslugxjfrx76
+mslugxjfrx77
+//mslugxjfrx78
+mslugxjfrx79
+mslugxjfrx80
+mslugxjfrx81
+mslugxjfrx82
+mslugxjfrx83
+mslugxjfrx84
+mslugxjfrx85
+mslugxjfrx86
+mslugxjfrx87
+mslugxjfrx88
+mslugxjfrx89
+mslugxjfrx90
+mslugxjfrx91
+mslugxjfrx92
+mslugxjfrx93
+mslugxjfrx94
+mslugxjfrx95
+mslugxjfrx96
+mslugxjfrx97
+mslugxjfrx98
+mslugxjfrx99
+mslugxjfrx100
+mslugxjfrx101
+mslugxjfrx102
+mslugxjfry01
+mslugxjfry02
+mslugxjfry03
+mslugxjfry04
+mslugxjfry05
+mslugxjfry06
+mslugxjfry07
+mslugxjfry08
+mslugxjfry09
+mslugxjfry10
+mslugxjfry11
+mslugxjfry12
+mslugxjfry13
+mslugxjfry14
+mslugxjfry15
+mslugxjfry16
+// mslugxjfry17
+mslugxjfry18
+mslugxjfry19
+mslugxjfry20
+mslugxjfry21
+mslugxjfry22
+mslugxjfry23
+mslugxjfry24
+mslugxjfry25
+mslugxjfry26
+mslugxjfry27
+mslugxjfry28
+mslugxjfry29
+mslugxjfry30
+mslugxjfry31
+mslugxjfry32
+mslugxjfry33
+mslugxjfry34
+mslugxjfry35
+mslugxjfry36
+mslugxjfry37
+mslugxjfry38
+// mslugxjfry39
+mslugxjfry40
+mslugxjfry41
+mslugxjfry42
+mslugxjfry43
+mslugxjfry44
+mslugxjfry45
+mslugxjfry46
+mslugxjfry47
+mslugxjfry48
+mslugxjfry49
+mslugxjfry50
+mslugxjfry51
+mslugxjfry52
+mslugxjfry53
+mslugxjfry54
+mslugxjfry55
+mslugxjfry56
+mslugxjfry57
+mslugxjfry58
+mslugxjfry59
+mslugxjfry60
+mslugxjfry61
+mslugxjfry62
+mslugxjfry63
+mslugxjfry64
+mslugxjfry65
+mslugxjfry66
+mslugxjfry67
+mslugxjfry68
+mslugxjfry69
+mslugxjfry70
+mslugxjfry71
+mslugxjfry72
+mslugxjfry73
+mslugxjfry74
+mslugxjfry75
+mslugxjfry76
+mslugxjfry77
+mslugxjfry78
+mslugxjfry79
+mslugxjfry80
+mslugxjfry81
+mslugxjfry82
+mslugxjfry83
+mslugxjfry84
+mslugxjfry85
+mslugxjfry86
+mslugxjfry87
+mslugxjfry88
+mslugxjfry89
+mslugxjfry90
+mslugxjfry91
+mslugxjfry92
+mslugxjfry93
+mslugxjfry94
+mslugxjfry95
+mslugxjfry96
+mslugxjfry97
+mslugxjfry98
+mslugxjfry99
+mslugxjfry100
+mslugxjfry101
+mslug3s01
+mslug3s02
+mslug3s03
+mslug3s04
+mslug3s05
+mslug3s06
+mslug3s08
+mslug3s09
+mslug3s10
+mslug3s11
+mslug3s12 //Metal Slug 3 (Todos los Roms Hacks Coleccion)
+mslug3s13 //Metal Slug 3 (Todos los Roms Hacks Coleccion)
+mslug3s14
+mslug3s15
+mslug3s16
+mslug3s17
+mslug3s18
+mslug3s19
+mslug3s20
+mslug3s21
+mslug3s22
+mslug3s23
+mslug3s24
+mslug3s25
+mslug4s01
+mslug4s02
+mslug4s03
+mslug4s04
+mslug4s05
+mslug4s06
+mslug4s07
+mslug4s08
+mslug4s09
+mslug4s10
+mslug4s11
+mslug4s12
+mslug4s13
+mslug4s14
+mslug4s15
+mslug4s16
+mslug4s17
+mslug4s18
+mslug4s19
+mslug4s21
+mslug4s22
+mslug4s23
+mslug4s24
+mslug4s25 //Metal Slug 4 (Todos los Roms Hacks Coleccion)
+mslug4s26 //Metal Slug 4 (Todos los Roms Hacks Coleccion)
+mslug4s27
+mslug4s28
+mslug4s29
+mslug4s30
+mslug4s31
+mslug4s32
+mslug4s33
+mslug4s34
+mslug4s35
+mslug4s36
+mslug4s37
+mslug4s38
+mslug4s39
+mslug5s01
+mslug5s02
+mslug5s03
+mslug5s04
+mslug5s05
+mslug5s06
+mslug5s07
+mslug5s08
+mslug5s09
+mslug5s10
+mslug5s11
+mslug5s12
+mslug5s13
+mslug5s14
+mslug5s15
+mslug5s16 //Metal Slug 5 (Todos los Roms Hacks Coleccion)
+mslug5s17 //Metal Slug 5 (Todos los Roms Hacks Coleccion)
+mslug5s18
+mslug5s19
+mslug5s20
+mslug5s21
+mslug5s22
+mslug5s23
+mslug5s24
+mslug5s25
+mslug5s26
+mslug5s27
+mslug5s28
+mslug5s29
+mslug5s30
+mslug5s31
+mslug5s32
+mslug5s33
+mslug5s34
+mslug5s35
+mslug5s36
+mslug5s37
+mslug5s38
+mslug5s39
+mslug5s40
+mslug5s41
+mslug5s42
+mslug5s43
+mslug5s44
+mslug5s45
+neobombes01
+nitds01
+preisle2s01
+rbffss01
+rbffss02
+rbffss03
+rbffss04
+rbff2bs01
+rbff2bs02
+rbff2bs03
+rotds01
+rotds02
+rotds03
+rotds04
+rotds05
+rotds06
+rotds07
+rotds08
+rotds09
+rotds10
+rotds11
+rotds12
+rotds13
+rotds14
+rotds15
+sengoku3s01
+samshos01
+samshos02
+samshos03
+samshos04
+samshos07
+samsho2s01
+samsho2s02
+samsho2s03
+samsho2s04
+samsho2s05
+samsho2s06
+samsho2s07
+samsho2s08
+samsho2s09
+samsho2s10
+samsho2s11
+samsho2s12
+samsho2s13
+samsho3s01
+samsho3s02
+samsho3s03
+samsho3s04
+samsho3s05
+samsho3s06
+samsho3s07
+samsho3s08
+samsho3s09
+samsho4s01
+samsho4s02
+samsho4s03
+samsho4s04
+samsho4s05
+samsho5s01
+samsho5s02
+samsho5s03
+samsho5s04
+samsho5s05
+samsho5s06
+samsho5s07
+samsho5s08
+samsho5s09
+samsho5s10
+samsho5s11
+samsho5s12
+samsho5s13
+samsho5s14
+samsho5s15
+samsho5s16
+samsho5s17
+samsho5s18
+samsho5s19
+samsho5s20
+samsho5s21
+samsho5s22
+samsho5s23
+samsho5s24
+samsho5s25
+samsho5s26
+samsho5s27
+samsho5s28
+samsho5s29
+samsho5s30
+samsho5s31
+samsho5s32
+samsho5s33
+samsho5s34
+samsho5s35
+samsho5s36
+samsh5sp01
+samsh5sp02
+samsh5sp03
+samsh5sp05
+samsh5sp06
+samsh5sp08
+samsh5sp09
+svcs01
+svcs02
+svcs03
+svcs04
+svcs05
+svcs06
+svcs07
+svcs08
+svcs09
+svcs10
+svcs11
+svcs12
+svcs13
+svcs14
+svcs15
+svcs16
+svcs17
+svcs18
+svcs19
+svcs20
+svcs21
+svcs22
+svcs23
+svcs24
+svcs25
+svcs26
+svcs27
+svcs28
+svcs29
+svcs30
+svcs31
+svcs32
+svcs33
+svcs34
+svcs35
+svcs36
+svcs37
+svcs38
+svcs39
+svcs40
+svcs41
+svcs42
+svcs43
+svcs44
+svcs45
+svcs46
+svcs47
+svcs48
+svcs49
+svcs50
+svcs51
+svcs52
+svcs53
+svcs54
+svcs55
+svcs56
+svcs57
+svcs58
+svcs59
+svcs60
+svcs61
+svcs62
+svcs63
+svcs64
+svcs65
+svcs66
+svcs67
+svcs68
+svcs69
+svcs70
+svcs71
+svcs72
+svcs73
+svcs74
+svcs75
+svcs77
+svcs78
+svcs79
+svcs80
+svcs81
+svcs82
+svcs83
+svcs84
+svcpcbs01
+svcpcbs02
+svcpcbs03
+svcpcbs04
+svcpcbs05
+svcpcbs06
+svcpcbs07
+svcpcbs08
+svcpcbs09
+svcpcbs10
+svcsplus01
+svcsplus02
+svcsplus03
+svcsplus04
+svcsplus05
+svcsplus06
+whps01
+whps02
+whps03
+whps04
+wh1s01
+wh2s01
+*/
+
diff --git a/src/hbmame/hbmame.mak b/src/hbmame/hbmame.mak
new file mode 100644
index 00000000000..559272f373c
--- /dev/null
+++ b/src/hbmame/hbmame.mak
@@ -0,0 +1,62 @@
+# license:BSD-3-Clause
+# copyright-holders:Robbbert
+###########################################################################
+#
+# makefile
+#
+# Additional makefile for building HBMAME
+#
+###########################################################################
+
+GEN_FOLDERS += $(GENDIR)/mame/layout/
+
+# MAME layouts that we use
+LAYOUTS += \
+ $(SRC)/mame/layout/dotrikun.lay \
+ $(SRC)/hbmame/layout/spacmissx.lay
+# $(SRC)/mame/layout/atari_s1.lay
+
+# MAME layouts that are needed for compile to succeed, not used by HBMAME
+LAYOUTS += \
+ $(SRC)/mame/layout/gorf.lay \
+ $(SRC)/mame/layout/tenpindx.lay \
+ $(SRC)/mame/layout/spacezap.lay \
+ $(SRC)/mame/layout/seawolf2.lay \
+ $(SRC)/mame/layout/gridiron.lay \
+ $(SRC)/mame/layout/turbotag.lay \
+ $(SRC)/mame/layout/spyhunt.lay \
+ $(SRC)/mame/layout/dpoker.lay \
+ $(SRC)/mame/layout/astdelux.lay \
+ $(SRC)/mame/layout/outrun.lay \
+ $(SRC)/mame/layout/polepos.lay \
+ $(SRC)/mame/layout/topracer.lay \
+ $(SRC)/mame/layout/armora.lay \
+ $(SRC)/mame/layout/barrier.lay \
+ $(SRC)/mame/layout/demon.lay \
+ $(SRC)/mame/layout/solarq.lay \
+ $(SRC)/mame/layout/starcas.lay \
+ $(SRC)/mame/layout/sundance.lay \
+ $(SRC)/mame/layout/tailg.lay \
+ $(SRC)/mame/layout/wotw.lay \
+ $(SRC)/mame/layout/ppsatan.lay \
+ $(SRC)/mame/layout/konamigt.lay \
+ $(SRC)/mame/layout/sfiii2.lay \
+ $(SRC)/mame/layout/280zzzap.lay \
+ $(SRC)/mame/layout/attackfc.lay \
+ $(SRC)/mame/layout/clowns.lay \
+ $(SRC)/mame/layout/cosmicm.lay \
+ $(SRC)/mame/layout/escmars.lay \
+ $(SRC)/mame/layout/galactic.lay \
+ $(SRC)/mame/layout/gunchamp.lay \
+ $(SRC)/mame/layout/gunfight.lay \
+ $(SRC)/mame/layout/invad2ct.lay \
+ $(SRC)/mame/layout/invaders.lay \
+ $(SRC)/mame/layout/lagunar.lay \
+ $(SRC)/mame/layout/maze.lay \
+ $(SRC)/mame/layout/phantom2.lay \
+ $(SRC)/mame/layout/seawolf.lay \
+ $(SRC)/mame/layout/shuttlei.lay \
+ $(SRC)/mame/layout/spacecom.lay \
+ $(SRC)/mame/layout/spacwalk.lay \
+ $(SRC)/mame/layout/spcenctr.lay \
+
diff --git a/src/hbmame/includes/cps1.h b/src/hbmame/includes/cps1.h
new file mode 100644
index 00000000000..b911c6338e3
--- /dev/null
+++ b/src/hbmame/includes/cps1.h
@@ -0,0 +1,484 @@
+// license:BSD-3-Clause
+// copyright-holders:Paul Leaman
+/***************************************************************************
+
+ Capcom CPS1/2 hardware
+
+***************************************************************************/
+
+#ifndef _CPS1_H_
+#define _CPS1_H_
+
+#include "sound/msm5205.h"
+#include "sound/qsound.h"
+#include "sound/okim6295.h"
+#include "machine/gen_latch.h"
+#include "machine/timekpr.h"
+#include "machine/timer.h"
+#include "cpu/m68000/m68000.h"
+#include "screen.h"
+#include "speaker.h"
+
+// Video raw params
+// measured clocks:
+// CPS2(Guru): V = 59.6376Hz, H = 15,4445kHz *H is probably measured too low!
+// CPS1 GNG: V = 59.61Hz
+/* CPS1(Charles MacDonald):
+ Pixel clock: 8.00 MHz
+ Total pixel clocks per scanline: 512 clocks
+ Horizontal sync pulse width : 36 clocks
+ Horizontal display and blanking period: 476 clocks
+ Frame size: 262 scanlines
+ Refresh rate: 59.63 MHz.
+*/
+#define CPS_PIXEL_CLOCK (XTAL_16MHz/2)
+
+#define CPS_HTOTAL (512)
+#define CPS_HBEND (64)
+#define CPS_HBSTART (448)
+
+#define CPS_VTOTAL (262)
+#define CPS_VBEND (16)
+#define CPS_VBSTART (240)
+
+
+struct gfx_range
+{
+ // start and end are as passed by the game (shift adjusted to be all
+ // in the same scale a 8x8 tiles): they don't necessarily match the
+ // position in ROM.
+ int type;
+ int start;
+ int end;
+ int bank;
+};
+
+struct CPS1config
+{
+ const char *name; /* game driver name */
+
+ /* Some games interrogate a couple of registers on bootup. */
+ /* These are CPS1 board B self test checks. They wander from game to */
+ /* game. */
+ int cpsb_addr; /* CPS board B test register address */
+ int cpsb_value; /* CPS board B test register expected value */
+
+ /* some games use as a protection check the ability to do 16-bit multiplies */
+ /* with a 32-bit result, by writing the factors to two ports and reading the */
+ /* result from two other ports. */
+ /* It looks like this feature was introduced with 3wonders (CPSB ID = 08xx) */
+ int mult_factor1;
+ int mult_factor2;
+ int mult_result_lo;
+ int mult_result_hi;
+
+ /* unknown registers which might be related to the multiply protection */
+ int unknown1;
+ int unknown2;
+ int unknown3;
+
+ int layer_control;
+ int priority[4];
+ int palette_control;
+
+ /* ideally, the layer enable masks should consist of only one bit, */
+ /* but in many cases it is unknown which bit is which. */
+ int layer_enable_mask[5];
+
+ /* these depend on the B-board model and PAL */
+ int bank_sizes[4];
+ const struct gfx_range *bank_mapper;
+
+ /* some C-boards have additional I/O for extra buttons/extra players */
+ int in2_addr;
+ int in3_addr;
+ int out2_addr;
+
+ int bootleg_kludge;
+};
+
+
+class cps_state : public driver_device
+{
+public:
+ cps_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag),
+ m_mainram(*this, "mainram"),
+ m_gfxram(*this, "gfxram"),
+ m_cps_a_regs(*this, "cps_a_regs"),
+ m_cps_b_regs(*this, "cps_b_regs"),
+ m_qsound_sharedram1(*this, "qsound_ram1"),
+ m_qsound_sharedram2(*this, "qsound_ram2"),
+ m_objram1(*this, "objram1"),
+ m_objram2(*this, "objram2"),
+ m_output(*this, "output"),
+ m_io_in0(*this, "IN0"),
+ m_io_in1(*this, "IN1"),
+ m_cps2_dial_type(0),
+ m_ecofghtr_dial_direction0(0),
+ m_ecofghtr_dial_direction1(0),
+ m_ecofghtr_dial_last0(0),
+ m_ecofghtr_dial_last1(0),
+ m_maincpu(*this, "maincpu"),
+ m_audiocpu(*this, "audiocpu"),
+ m_oki(*this, "oki"),
+ m_m48t35(*this,"m48t35"),
+ m_msm_1(*this, "msm1"),
+ m_msm_2(*this, "msm2"),
+ m_gfxdecode(*this, "gfxdecode"),
+ m_screen(*this, "screen"),
+ m_palette(*this, "palette"),
+ m_soundlatch(*this, "soundlatch"),
+ m_soundlatch2(*this, "soundlatch2"),
+ m_decrypted_opcodes(*this, "decrypted_opcodes"),
+ m_region_key(*this, "key"),
+ m_region_stars(*this, "stars")
+ { }
+
+ // cps config for new
+ int m_cpsb_addr;
+ int m_cpsb_value;
+ int m_mult_factor1;
+ int m_mult_factor2;
+ int m_mult_result_lo;
+ int m_mult_result_hi;
+ int m_layer_control;
+ int m_priority[4];
+ int m_palette_control;
+ int m_layer_enable_mask[5];
+ int m_bank_sizes[4];
+ int m_in2_addr;
+ int m_in3_addr;
+ int m_out2_addr;
+ int m_bootleg_kludge;
+ u8 m_scrollx1;
+ u8 m_scrollx2;
+ u8 m_scrollx3;
+ u32 m_bank_type[32];
+
+ /* memory pointers */
+ // cps1
+ optional_shared_ptr<uint16_t> m_mainram;
+ required_shared_ptr<uint16_t> m_gfxram;
+ required_shared_ptr<uint16_t> m_cps_a_regs;
+ required_shared_ptr<uint16_t> m_cps_b_regs;
+ uint16_t * m_scroll1;
+ uint16_t * m_scroll2;
+ uint16_t * m_scroll3;
+ uint16_t * m_obj;
+ uint16_t * m_other;
+ std::unique_ptr<uint16_t[]> m_buffered_obj;
+ optional_shared_ptr<uint8_t> m_qsound_sharedram1;
+ optional_shared_ptr<uint8_t> m_qsound_sharedram2;
+ std::unique_ptr<uint8_t[]> m_decrypt_kabuki;
+ // cps2
+ optional_shared_ptr<uint16_t> m_objram1;
+ optional_shared_ptr<uint16_t> m_objram2;
+ optional_shared_ptr<uint16_t> m_output;
+
+ optional_ioport m_io_in0;
+ optional_ioport m_io_in1;
+ std::unique_ptr<uint16_t[]> m_cps2_buffered_obj;
+ // game-specific
+ std::unique_ptr<uint16_t[]> m_gigaman2_dummyqsound_ram;
+ uint16_t sf2ceblp_prot;
+
+ /* video-related */
+ tilemap_t *m_bg_tilemap[3];
+ int m_scanline1;
+ int m_scanline2;
+ int m_scancalls;
+
+ int m_scroll1x;
+ int m_scroll1y;
+ int m_scroll2x;
+ int m_scroll2y;
+ int m_scroll3x;
+ int m_scroll3y;
+
+ int m_stars_enabled[2]; /* Layer enabled [Y/N] */
+ int m_stars1x;
+ int m_stars1y;
+ int m_stars2x;
+ int m_stars2y;
+ int m_last_sprite_offset; /* Offset of the last sprite */
+ int m_cps2_last_sprite_offset; /* Offset of the last sprite */
+ int m_pri_ctrl; /* Sprite layer priorities */
+ int m_objram_bank;
+
+ /* misc */
+ int m_dial[2]; // forgottn
+ int m_readpaddle; // pzloop2
+ int m_cps2networkpresent;
+ int m_cps2digitalvolumelevel;
+ int m_cps2disabledigitalvolume;
+ emu_timer *m_digital_volume_timer;
+ int m_cps2_dial_type;
+ int m_ecofghtr_dial_direction0;
+ int m_ecofghtr_dial_direction1;
+ int m_ecofghtr_dial_last0;
+ int m_ecofghtr_dial_last1;
+
+
+ /* fcrash sound hw */
+ int m_sample_buffer1;
+ int m_sample_buffer2;
+ int m_sample_select1;
+ int m_sample_select2;
+
+ /* video config (never changed after video_start) */
+ const struct CPS1config *m_game_config;
+ int m_scroll_size;
+ int m_obj_size;
+ int m_cps2_obj_size;
+ int m_other_size;
+ int m_palette_align;
+ int m_palette_size;
+ int m_stars_rom_size;
+ uint8_t m_empty_tile[32*32];
+ int m_cps_version;
+
+ /* fcrash video config */
+ uint8_t m_layer_enable_reg;
+ uint8_t m_layer_mask_reg[4];
+ int m_layer_scroll1x_offset;
+ int m_layer_scroll2x_offset;
+ int m_layer_scroll3x_offset;
+ int m_sprite_base;
+ int m_sprite_list_end_marker;
+ int m_sprite_x_offset;
+ std::unique_ptr<uint16_t[]> m_bootleg_sprite_ram;
+ std::unique_ptr<uint16_t[]> m_bootleg_work_ram;
+
+ /* devices */
+ required_device<m68000_base_device> m_maincpu;
+ optional_device<cpu_device> m_audiocpu;
+ optional_device<okim6295_device> m_oki;
+ optional_device<m48t35_device> m_m48t35;
+ optional_device<msm5205_device> m_msm_1; // fcrash
+ optional_device<msm5205_device> m_msm_2; // fcrash
+ required_device<gfxdecode_device> m_gfxdecode;
+ required_device<screen_device> m_screen;
+ required_device<palette_device> m_palette;
+ optional_device<generic_latch_8_device> m_soundlatch;
+ optional_device<generic_latch_8_device> m_soundlatch2;
+ optional_shared_ptr<uint16_t> m_decrypted_opcodes;
+ optional_memory_region m_region_key;
+ optional_memory_region m_region_stars;
+
+ DECLARE_READ16_MEMBER(cps1_hack_dsw_r);
+ DECLARE_READ16_MEMBER(cps1_in1_r);
+ DECLARE_READ16_MEMBER(cps1_in2_r);
+ DECLARE_READ16_MEMBER(cps1_in3_r);
+ DECLARE_READ16_MEMBER(forgottn_dial_0_r);
+ DECLARE_READ16_MEMBER(forgottn_dial_1_r);
+ DECLARE_WRITE16_MEMBER(forgottn_dial_0_reset_w);
+ DECLARE_WRITE16_MEMBER(forgottn_dial_1_reset_w);
+ DECLARE_WRITE8_MEMBER(cps1_snd_bankswitch_w);
+ DECLARE_WRITE16_MEMBER(cps1_soundlatch_w);
+ DECLARE_WRITE16_MEMBER(cps1_soundlatch2_w);
+ DECLARE_WRITE16_MEMBER(cpsq_coinctrl2_w);
+ DECLARE_READ16_MEMBER(qsound_rom_r);
+ DECLARE_READ16_MEMBER(qsound_sharedram2_r);
+ DECLARE_WRITE16_MEMBER(qsound_sharedram2_w);
+ DECLARE_WRITE8_MEMBER(qsound_banksw_w);
+ DECLARE_READ16_MEMBER(sf2rb_prot_r);
+ DECLARE_READ16_MEMBER(sf2rb2_prot_r);
+ DECLARE_READ16_MEMBER(sf2dongb_prot_r);
+ DECLARE_READ16_MEMBER(sf2ceblp_prot_r);
+ DECLARE_WRITE16_MEMBER(sf2ceblp_prot_w);
+ DECLARE_READ16_MEMBER(cps1_dsw_r);
+ DECLARE_WRITE16_MEMBER(cps1_coinctrl_w);
+ DECLARE_READ16_MEMBER(qsound_sharedram1_r);
+ DECLARE_WRITE16_MEMBER(qsound_sharedram1_w);
+ DECLARE_READ16_MEMBER(ganbare_ram_r);
+ DECLARE_WRITE16_MEMBER(ganbare_ram_w);
+ DECLARE_WRITE16_MEMBER(cps1_cps_a_w);
+ DECLARE_READ16_MEMBER(cps1_cps_b_r);
+ DECLARE_WRITE16_MEMBER(cps1_cps_b_w);
+ DECLARE_WRITE16_MEMBER(cps1_gfxram_w);
+ DECLARE_WRITE16_MEMBER(cps2_objram_bank_w);
+ DECLARE_READ16_MEMBER(cps2_objram1_r);
+ DECLARE_READ16_MEMBER(cps2_objram2_r);
+ DECLARE_WRITE16_MEMBER(cps2_objram1_w);
+ DECLARE_WRITE16_MEMBER(cps2_objram2_w);
+ DECLARE_WRITE8_MEMBER(cps1_oki_pin7_w);
+ DECLARE_WRITE16_MEMBER(sf2m1_layer_w);
+ DECLARE_WRITE16_MEMBER(sf2m3_layer_w);
+ DECLARE_READ16_MEMBER(dinohunt_sound_r);
+ DECLARE_DRIVER_INIT(sf2rb);
+ DECLARE_DRIVER_INIT(sf2rb2);
+ DECLARE_DRIVER_INIT(sf2thndr);
+ DECLARE_DRIVER_INIT(dinohunt);
+ DECLARE_DRIVER_INIT(forgottn);
+ DECLARE_DRIVER_INIT(sf2hack);
+ DECLARE_DRIVER_INIT(slammast);
+ DECLARE_DRIVER_INIT(pang3b);
+ DECLARE_DRIVER_INIT(pang3);
+ DECLARE_DRIVER_INIT(sf2ee);
+ DECLARE_DRIVER_INIT(sf2m8);
+ DECLARE_DRIVER_INIT(cps1);
+ DECLARE_DRIVER_INIT(dino);
+ DECLARE_DRIVER_INIT(punisher);
+ DECLARE_DRIVER_INIT(wof);
+ DECLARE_DRIVER_INIT(ganbare);
+ DECLARE_DRIVER_INIT(cps2_video);
+ DECLARE_DRIVER_INIT(cps2);
+ DECLARE_DRIVER_INIT(cps2nc);
+ DECLARE_DRIVER_INIT(cps2crypt);
+ DECLARE_DRIVER_INIT(ssf2tb);
+ DECLARE_DRIVER_INIT(pzloop2);
+ DECLARE_DRIVER_INIT(singbrd);
+ DECLARE_DRIVER_INIT(gigaman2);
+ DECLARE_DRIVER_INIT(ecofghtr);
+ DECLARE_DRIVER_INIT(sf2dongb);
+ DECLARE_DRIVER_INIT(sf2ceblp);
+ TILEMAP_MAPPER_MEMBER(tilemap0_scan);
+ TILEMAP_MAPPER_MEMBER(tilemap1_scan);
+ TILEMAP_MAPPER_MEMBER(tilemap2_scan);
+ TILE_GET_INFO_MEMBER(get_tile0_info);
+ TILE_GET_INFO_MEMBER(get_tile1_info);
+ TILE_GET_INFO_MEMBER(get_tile2_info);
+ DECLARE_MACHINE_START(cps1);
+ DECLARE_VIDEO_START(cps1);
+ DECLARE_MACHINE_START(common);
+ DECLARE_MACHINE_START(cps2);
+ DECLARE_VIDEO_START(cps2);
+ DECLARE_MACHINE_START(qsound);
+ DECLARE_MACHINE_START(ganbare);
+ DECLARE_MACHINE_RESET(cps);
+ DECLARE_VIDEO_START(cps);
+ DECLARE_MACHINE_START(sf2m1);
+ uint32_t screen_update_cps1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ DECLARE_WRITE_LINE_MEMBER(screen_vblank_cps1);
+ INTERRUPT_GEN_MEMBER(cps1_interrupt);
+ TIMER_DEVICE_CALLBACK_MEMBER(ganbare_interrupt);
+ TIMER_DEVICE_CALLBACK_MEMBER(cps2_interrupt);
+ TIMER_CALLBACK_MEMBER(cps2_update_digital_volume);
+
+ void kabuki_setup(void (*decode)(uint8_t *src, uint8_t *dst));
+
+ /* fcrash handlers */
+ DECLARE_DRIVER_INIT(kodb);
+ DECLARE_DRIVER_INIT(cawingbl);
+ DECLARE_DRIVER_INIT(dinopic);
+ DECLARE_DRIVER_INIT(knightsb);
+ DECLARE_DRIVER_INIT(punipic);
+ DECLARE_DRIVER_INIT(punipic3);
+ DECLARE_DRIVER_INIT(sf2m1);
+ DECLARE_DRIVER_INIT(sf2mdt);
+ DECLARE_DRIVER_INIT(sf2mdta);
+ DECLARE_DRIVER_INIT(sf2mdtb);
+ DECLARE_DRIVER_INIT(sf2b);
+ DECLARE_DRIVER_INIT(slampic);
+ DECLARE_MACHINE_START(fcrash);
+ DECLARE_MACHINE_RESET(fcrash);
+ DECLARE_MACHINE_START(cawingbl);
+ DECLARE_MACHINE_START(dinopic);
+ DECLARE_MACHINE_START(knightsb);
+ DECLARE_MACHINE_START(kodb);
+ DECLARE_MACHINE_START(punipic);
+ DECLARE_MACHINE_START(sf2mdt);
+ DECLARE_MACHINE_START(slampic);
+ DECLARE_MACHINE_START(sgyxz);
+ DECLARE_WRITE16_MEMBER(cawingbl_soundlatch_w);
+ DECLARE_WRITE16_MEMBER(dinopic_layer_w);
+ DECLARE_WRITE16_MEMBER(dinopic_layer2_w);
+ DECLARE_WRITE16_MEMBER(knightsb_layer_w);
+ DECLARE_WRITE16_MEMBER(kodb_layer_w);
+ DECLARE_WRITE16_MEMBER(punipic_layer_w);
+ DECLARE_WRITE16_MEMBER(sf2mdt_layer_w);
+ DECLARE_WRITE16_MEMBER(sf2mdta_layer_w);
+ DECLARE_WRITE16_MEMBER(slampic_layer_w);
+ DECLARE_WRITE16_MEMBER(fcrash_soundlatch_w);
+ DECLARE_WRITE8_MEMBER(fcrash_snd_bankswitch_w);
+ DECLARE_WRITE8_MEMBER(sf2mdt_snd_bankswitch_w);
+ DECLARE_WRITE8_MEMBER(knightsb_snd_bankswitch_w);
+ DECLARE_WRITE8_MEMBER(fcrash_msm5205_0_data_w);
+ DECLARE_WRITE8_MEMBER(fcrash_msm5205_1_data_w);
+ DECLARE_WRITE16_MEMBER(varthb_layer_w);
+ uint32_t screen_update_fcrash(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void fcrash_update_transmasks();
+ void fcrash_render_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void fcrash_render_layer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int primask);
+ void fcrash_render_high_layer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int layer);
+ void fcrash_build_palette();
+
+
+ /* cps video */
+ inline uint16_t *cps1_base( int offset, int boundary );
+ void cps1_get_video_base();
+ void unshuffle(uint64_t *buf, int len);
+ void cps2_gfx_decode();
+ int gfxrom_bank_mapper(int type, int code);
+ void cps1_update_transmasks();
+ void cps1_build_palette(const uint16_t* const palette_base);
+ void cps1_find_last_sprite();
+ void cps1_render_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void cps2_find_last_sprite();
+ void cps2_render_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int *primasks);
+ void cps1_render_stars(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void cps1_render_layer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int primask);
+ void cps1_render_high_layer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int layer);
+ void cps2_set_sprite_priorities();
+ void cps2_objram_latch();
+ uint16_t *cps2_objbase();
+
+
+ /* cps2 driver */
+ void init_digital_volume();
+ DECLARE_READ16_MEMBER(gigaman2_dummyqsound_r);
+ DECLARE_WRITE16_MEMBER(gigaman2_dummyqsound_w);
+ void gigaman2_gfx_reorder();
+ DECLARE_WRITE16_MEMBER(cps2_eeprom_port_w);
+ DECLARE_READ16_MEMBER(cps2_qsound_volume_r);
+ DECLARE_READ16_MEMBER(kludge_r);
+ DECLARE_READ16_MEMBER(joy_or_paddle_r);
+ DECLARE_READ16_MEMBER(joy_or_paddle_ecofghtr_r);
+ DECLARE_WRITE_LINE_MEMBER(m5205_int1);
+ DECLARE_WRITE_LINE_MEMBER(m5205_int2);
+// HBMAME start
+
+ DECLARE_WRITE16_MEMBER(dinoh_sound_command_w);
+ DECLARE_WRITE16_MEMBER(daimakb_layer_w);
+ DECLARE_WRITE16_MEMBER(daimakb_palctrl_w);
+ DECLARE_DRIVER_INIT(dinoeh);
+ DECLARE_DRIVER_INIT(dinoh);
+ DECLARE_DRIVER_INIT(dinoz);
+ DECLARE_DRIVER_INIT(dinohb);
+ DECLARE_DRIVER_INIT(punisherb);
+ DECLARE_DRIVER_INIT(sf2h9);
+ DECLARE_DRIVER_INIT(sf2h13);
+ DECLARE_DRIVER_INIT(sk2h1);
+ DECLARE_DRIVER_INIT(sk2h1q);
+ DECLARE_DRIVER_INIT(sk2h3);
+ DECLARE_DRIVER_INIT(sk2h21);
+ DECLARE_DRIVER_INIT(sk2h22);
+ DECLARE_DRIVER_INIT(sk2h31);
+ DECLARE_DRIVER_INIT(sk2h35);
+ DECLARE_DRIVER_INIT(wofb);
+ DECLARE_MACHINE_START(captcommb2);
+
+// HBMAME end
+};
+
+/*----------- defined in drivers/cps1.c -----------*/
+
+MACHINE_CONFIG_EXTERN(cps1_12MHz);
+
+ADDRESS_MAP_EXTERN( qsound_sub_map, 8 );
+
+GFXDECODE_EXTERN( cps1 );
+
+INPUT_PORTS_EXTERN( dino );
+INPUT_PORTS_EXTERN( knights );
+INPUT_PORTS_EXTERN( punisher );
+INPUT_PORTS_EXTERN( sf2 );
+INPUT_PORTS_EXTERN( slammast );
+INPUT_PORTS_EXTERN( varth );
+// HBMAME start
+INPUT_PORTS_EXTERN( captcomm );
+// HBMAME end
+
+
+#endif
diff --git a/src/hbmame/includes/galaga.h b/src/hbmame/includes/galaga.h
new file mode 100644
index 00000000000..d4144c43b70
--- /dev/null
+++ b/src/hbmame/includes/galaga.h
@@ -0,0 +1,21 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/includes/galaga.h"
+#include "sound/samples.h"
+#include "machine/namco06.h"
+
+class galaga_hbmame : public galaga_state
+{
+public:
+ galaga_hbmame(const machine_config &mconfig, device_type type, const char *tag)
+ : galaga_state(mconfig, type, tag)
+ , m_samples(*this, "samples")
+ , m_06xx(*this, "06xx")
+ { }
+
+ DECLARE_WRITE8_MEMBER(galaga_sample_w);
+
+private:
+ optional_device<samples_device> m_samples;
+ optional_device<namco_06xx_device> m_06xx;
+};
diff --git a/src/hbmame/includes/galaxian.h b/src/hbmame/includes/galaxian.h
new file mode 100644
index 00000000000..d5fc0bf0950
--- /dev/null
+++ b/src/hbmame/includes/galaxian.h
@@ -0,0 +1,344 @@
+// license:BSD-3-Clause
+// copyright-holders:Aaron Giles, Couriersud
+/***************************************************************************
+
+ Galaxian hardware family
+
+***************************************************************************/
+
+#include "machine/gen_latch.h"
+#include "machine/i8255.h"
+#include "machine/timer.h"
+#include "sound/ay8910.h"
+#include "sound/dac.h"
+#include "sound/digitalk.h"
+#include "screen.h"
+
+/* we scale horizontally by 3 to render stars correctly */
+#define GALAXIAN_XSCALE 3
+
+/* master clocks */
+#define GALAXIAN_MASTER_CLOCK (XTAL_18_432MHz)
+#define GALAXIAN_PIXEL_CLOCK (GALAXIAN_XSCALE*GALAXIAN_MASTER_CLOCK/3)
+
+/* H counts from 128->511, HBLANK starts at 130 and ends at 250 */
+/* we normalize this here so that we count 0->383 with HBLANK */
+/* from 264-383 */
+#define GALAXIAN_HTOTAL (384*GALAXIAN_XSCALE)
+#define GALAXIAN_HBEND (0*GALAXIAN_XSCALE)
+//#define GALAXIAN_H0START (6*GALAXIAN_XSCALE)
+//#define GALAXIAN_HBSTART (264*GALAXIAN_XSCALE)
+#define GALAXIAN_H0START (0*GALAXIAN_XSCALE)
+#define GALAXIAN_HBSTART (256*GALAXIAN_XSCALE)
+
+#define GALAXIAN_VTOTAL (264)
+#define GALAXIAN_VBEND (16)
+#define GALAXIAN_VBSTART (224+16)
+
+
+class galaxian_state : public driver_device
+{
+public:
+ galaxian_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_audio2(*this, "audio2"),
+ m_dac(*this, "dac"),
+ m_ay8910(*this, "8910.%u", 0),
+ m_ay8910_cclimber(*this, "cclimber_audio:aysnd"),
+ m_digitalker(*this, "digitalker"),
+ m_ppi8255(*this, "ppi8255_%u", 0),
+ m_gfxdecode(*this, "gfxdecode"),
+ m_screen(*this, "screen"),
+ m_palette(*this, "palette"),
+ m_soundlatch(*this, "soundlatch"),
+ m_fake_select(*this, "FAKE_SELECT"),
+ m_tenspot_game_dsw(*this, {"IN2_GAME0", "IN2_GAME1", "IN2_GAME2", "IN2_GAME3", "IN2_GAME4", "IN2_GAME5", "IN2_GAME6", "IN2_GAME7", "IN2_GAME8", "IN2_GAME9"}),
+ m_spriteram(*this, "spriteram"),
+ m_videoram(*this, "videoram"),
+ m_decrypted_opcodes(*this, "decrypted_opcodes") { }
+
+ required_device<cpu_device> m_maincpu;
+ optional_device<cpu_device> m_audiocpu;
+ optional_device<cpu_device> m_audio2;
+ optional_device<dac_byte_interface> m_dac;
+ optional_device_array<ay8910_device, 3> m_ay8910;
+ optional_device<ay8910_device> m_ay8910_cclimber;
+ optional_device<digitalker_device> m_digitalker;
+ optional_device_array<i8255_device, 3> m_ppi8255;
+ required_device<gfxdecode_device> m_gfxdecode;
+ required_device<screen_device> m_screen;
+ required_device<palette_device> m_palette;
+ optional_device<generic_latch_8_device> m_soundlatch;
+
+ optional_ioport m_fake_select;
+ optional_ioport_array<10> m_tenspot_game_dsw;
+
+ required_shared_ptr<uint8_t> m_spriteram;
+ required_shared_ptr<uint8_t> m_videoram;
+ optional_shared_ptr<uint8_t> m_decrypted_opcodes;
+
+ int m_bullets_base;
+ int m_sprites_base;
+ int m_numspritegens;
+ int m_counter_74ls161[2];
+ int m_direction[2];
+ uint8_t m_gmgalax_selected_game;
+ uint8_t m_zigzag_ay8910_latch;
+ uint8_t m_kingball_speech_dip;
+ uint8_t m_kingball_sound;
+ uint8_t m_mshuttle_ay8910_cs;
+ uint16_t m_protection_state;
+ uint8_t m_protection_result;
+ uint8_t m_konami_sound_control;
+ uint8_t m_sfx_sample_control;
+ uint8_t m_moonwar_port_select;
+ uint8_t m_irq_enabled;
+ int m_irq_line;
+ int m_tenspot_current_game;
+ uint8_t m_frogger_adjust;
+ uint8_t m_sfx_tilemap;
+
+ /* video extension callbacks */
+ typedef void (galaxian_state::*galaxian_extend_tile_info_func)(uint16_t *code, uint8_t *color, uint8_t attrib, uint8_t x);
+ typedef void (galaxian_state::*galaxian_extend_sprite_info_func)(const uint8_t *base, uint8_t *sx, uint8_t *sy, uint8_t *flipx, uint8_t *flipy, uint16_t *code, uint8_t *color);
+ typedef void (galaxian_state::*galaxian_draw_bullet_func)(bitmap_rgb32 &bitmap, const rectangle &cliprect, int offs, int x, int y);
+ typedef void (galaxian_state::*galaxian_draw_background_func)(bitmap_rgb32 &bitmap, const rectangle &cliprect);
+
+ galaxian_extend_tile_info_func m_extend_tile_info_ptr;
+ galaxian_extend_sprite_info_func m_extend_sprite_info_ptr;
+ galaxian_draw_bullet_func m_draw_bullet_ptr;
+ galaxian_draw_background_func m_draw_background_ptr;
+
+ tilemap_t *m_bg_tilemap;
+ uint8_t m_flipscreen_x;
+ uint8_t m_flipscreen_y;
+ uint8_t m_background_enable;
+ uint8_t m_background_red;
+ uint8_t m_background_green;
+ uint8_t m_background_blue;
+ uint32_t m_star_rng_origin;
+ uint32_t m_star_rng_origin_frame;
+ rgb_t m_star_color[64];
+ std::unique_ptr<uint8_t[]> m_stars;
+ uint8_t m_stars_enabled;
+ uint8_t m_stars_blink_state;
+ rgb_t m_bullet_color[8];
+ uint8_t m_gfxbank[5];
+ DECLARE_WRITE8_MEMBER(galaxian_videoram_w);
+ DECLARE_WRITE8_MEMBER(galaxian_objram_w);
+ DECLARE_WRITE8_MEMBER(galaxian_flip_screen_x_w);
+ DECLARE_WRITE8_MEMBER(galaxian_flip_screen_y_w);
+ DECLARE_WRITE8_MEMBER(galaxian_flip_screen_xy_w);
+ DECLARE_WRITE8_MEMBER(galaxian_stars_enable_w);
+ DECLARE_WRITE8_MEMBER(scramble_background_enable_w);
+ DECLARE_WRITE8_MEMBER(scramble_background_red_w);
+ DECLARE_WRITE8_MEMBER(scramble_background_green_w);
+ DECLARE_WRITE8_MEMBER(scramble_background_blue_w);
+ DECLARE_WRITE8_MEMBER(galaxian_gfxbank_w);
+ DECLARE_CUSTOM_INPUT_MEMBER(scramble_protection_alt_r);
+ DECLARE_CUSTOM_INPUT_MEMBER(gmgalax_port_r);
+ DECLARE_CUSTOM_INPUT_MEMBER(azurian_port_r);
+ DECLARE_CUSTOM_INPUT_MEMBER(kingball_muxbit_r);
+ DECLARE_CUSTOM_INPUT_MEMBER(kingball_noise_r);
+ DECLARE_CUSTOM_INPUT_MEMBER(moonwar_dial_r);
+ DECLARE_WRITE8_MEMBER(irq_enable_w);
+ DECLARE_WRITE8_MEMBER(start_lamp_w);
+ DECLARE_WRITE8_MEMBER(coin_lock_w);
+ DECLARE_WRITE8_MEMBER(coin_count_0_w);
+ DECLARE_WRITE8_MEMBER(coin_count_1_w);
+ DECLARE_READ8_MEMBER(konami_ay8910_r);
+ DECLARE_WRITE8_MEMBER(konami_ay8910_w);
+ DECLARE_WRITE8_MEMBER(konami_sound_filter_w);
+ DECLARE_READ8_MEMBER(theend_ppi8255_r);
+ DECLARE_WRITE8_MEMBER(theend_ppi8255_w);
+ DECLARE_WRITE8_MEMBER(explorer_sound_control_w);
+ DECLARE_READ8_MEMBER(sfx_sample_io_r);
+ DECLARE_WRITE8_MEMBER(sfx_sample_io_w);
+ DECLARE_READ8_MEMBER(monsterz_protection_r);
+ DECLARE_READ8_MEMBER(frogger_ppi8255_r);
+ DECLARE_WRITE8_MEMBER(frogger_ppi8255_w);
+ DECLARE_READ8_MEMBER(frogger_ay8910_r);
+ DECLARE_WRITE8_MEMBER(frogger_ay8910_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);
+ DECLARE_READ8_MEMBER(turtles_ppi8255_1_r);
+ DECLARE_WRITE8_MEMBER(turtles_ppi8255_0_w);
+ DECLARE_WRITE8_MEMBER(turtles_ppi8255_1_w);
+ DECLARE_READ8_MEMBER(scorpion_ay8910_r);
+ DECLARE_WRITE8_MEMBER(scorpion_ay8910_w);
+ DECLARE_READ8_MEMBER(scorpion_digitalker_intr_r);
+ DECLARE_WRITE8_MEMBER(zigzag_bankswap_w);
+ DECLARE_WRITE8_MEMBER(zigzag_ay8910_w);
+ DECLARE_WRITE8_MEMBER(kingball_speech_dip_w);
+ DECLARE_WRITE8_MEMBER(kingball_sound1_w);
+ DECLARE_WRITE8_MEMBER(kingball_sound2_w);
+ DECLARE_WRITE8_MEMBER(mshuttle_ay8910_cs_w);
+ DECLARE_WRITE8_MEMBER(mshuttle_ay8910_control_w);
+ DECLARE_WRITE8_MEMBER(mshuttle_ay8910_data_w);
+ DECLARE_READ8_MEMBER(mshuttle_ay8910_data_r);
+ DECLARE_READ8_MEMBER(jumpbug_protection_r);
+ DECLARE_WRITE8_MEMBER(checkman_sound_command_w);
+ DECLARE_READ8_MEMBER(checkmaj_protection_r);
+ DECLARE_READ8_MEMBER(dingo_3000_r);
+ DECLARE_READ8_MEMBER(dingo_3035_r);
+ DECLARE_READ8_MEMBER(dingoe_3001_r);
+ DECLARE_WRITE8_MEMBER(tenspot_unk_6000_w);
+ DECLARE_WRITE8_MEMBER(tenspot_unk_8000_w);
+ DECLARE_WRITE8_MEMBER(tenspot_unk_e000_w);
+ DECLARE_READ8_MEMBER(froggeram_ppi8255_r);
+ DECLARE_WRITE8_MEMBER(froggeram_ppi8255_w);
+ DECLARE_WRITE8_MEMBER(artic_gfxbank_w);
+ DECLARE_READ8_MEMBER(tenspot_dsw_read);
+ DECLARE_INPUT_CHANGED_MEMBER(gmgalax_game_changed);
+ DECLARE_WRITE8_MEMBER(konami_sound_control_w);
+ DECLARE_READ8_MEMBER(konami_sound_timer_r);
+ DECLARE_WRITE8_MEMBER(konami_portc_0_w);
+ DECLARE_WRITE8_MEMBER(konami_portc_1_w);
+ DECLARE_WRITE8_MEMBER(theend_coin_counter_w);
+ DECLARE_WRITE8_MEMBER(scramble_protection_w);
+ DECLARE_READ8_MEMBER(scramble_protection_r);
+ DECLARE_READ8_MEMBER(explorer_sound_latch_r);
+ DECLARE_WRITE8_MEMBER(sfx_sample_control_w);
+ DECLARE_WRITE8_MEMBER(monsterz_porta_1_w);
+ DECLARE_WRITE8_MEMBER(monsterz_portb_1_w);
+ DECLARE_WRITE8_MEMBER(monsterz_portc_1_w);
+ DECLARE_READ8_MEMBER(frogger_sound_timer_r);
+ DECLARE_READ8_MEMBER(scorpion_protection_r);
+ DECLARE_WRITE8_MEMBER(scorpion_protection_w);
+ DECLARE_WRITE8_MEMBER(scorpion_digitalker_control_w);
+ DECLARE_WRITE8_MEMBER(kingball_dac_w);
+ DECLARE_WRITE8_MEMBER(moonwar_port_select_w);
+ DECLARE_DRIVER_INIT(galaxian);
+ DECLARE_DRIVER_INIT(nolock);
+ DECLARE_DRIVER_INIT(azurian);
+ DECLARE_DRIVER_INIT(gmgalax);
+ DECLARE_DRIVER_INIT(pisces);
+ DECLARE_DRIVER_INIT(batman2);
+ DECLARE_DRIVER_INIT(frogg);
+ DECLARE_DRIVER_INIT(mooncrst);
+ DECLARE_DRIVER_INIT(mooncrsu);
+ DECLARE_DRIVER_INIT(mooncrgx);
+ DECLARE_DRIVER_INIT(moonqsr);
+ DECLARE_DRIVER_INIT(pacmanbl);
+ DECLARE_DRIVER_INIT(tenspot);
+ DECLARE_DRIVER_INIT(devilfsg);
+ DECLARE_DRIVER_INIT(zigzag);
+ DECLARE_DRIVER_INIT(jumpbug);
+ DECLARE_DRIVER_INIT(checkman);
+ DECLARE_DRIVER_INIT(checkmaj);
+ DECLARE_DRIVER_INIT(dingo);
+ DECLARE_DRIVER_INIT(dingoe);
+ DECLARE_DRIVER_INIT(skybase);
+ DECLARE_DRIVER_INIT(kong);
+ DECLARE_DRIVER_INIT(mshuttle);
+ DECLARE_DRIVER_INIT(mshuttlj);
+ DECLARE_DRIVER_INIT(fantastc);
+ DECLARE_DRIVER_INIT(timefgtr);
+ DECLARE_DRIVER_INIT(kingball);
+ DECLARE_DRIVER_INIT(scorpnmc);
+ DECLARE_DRIVER_INIT(thepitm);
+ DECLARE_DRIVER_INIT(theend);
+ DECLARE_DRIVER_INIT(scramble);
+ DECLARE_DRIVER_INIT(explorer);
+ DECLARE_DRIVER_INIT(mandinga);
+ 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(froggermc);
+ DECLARE_DRIVER_INIT(froggers);
+ DECLARE_DRIVER_INIT(quaak);
+ DECLARE_DRIVER_INIT(turtles);
+ DECLARE_DRIVER_INIT(scorpion);
+ DECLARE_DRIVER_INIT(anteater);
+ DECLARE_DRIVER_INIT(anteateruk);
+ DECLARE_DRIVER_INIT(superbon);
+ DECLARE_DRIVER_INIT(calipso);
+ DECLARE_DRIVER_INIT(moonwar);
+ DECLARE_DRIVER_INIT(ghostmun);
+ DECLARE_DRIVER_INIT(froggrs);
+ DECLARE_DRIVER_INIT(warofbugg);
+ DECLARE_DRIVER_INIT(jungsub);
+ DECLARE_DRIVER_INIT(victoryc);
+ DECLARE_DRIVER_INIT(victorycb);
+ TILE_GET_INFO_MEMBER(bg_get_tile_info);
+ virtual void video_start() override;
+ DECLARE_PALETTE_INIT(galaxian);
+ DECLARE_PALETTE_INIT(moonwar);
+ void tenspot_set_game_bank(int bank, int from_game);
+ uint32_t screen_update_galaxian(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ INTERRUPT_GEN_MEMBER(interrupt_gen);
+ INTERRUPT_GEN_MEMBER(fakechange_interrupt_gen);
+ TIMER_DEVICE_CALLBACK_MEMBER(checkmaj_irq0_gen);
+ TIMER_DEVICE_CALLBACK_MEMBER(scramble_stars_blink_timer);
+ TIMER_DEVICE_CALLBACK_MEMBER(timefgtr_scanline);
+ void state_save_register();
+ void sprites_draw(bitmap_rgb32 &bitmap, const rectangle &cliprect, const uint8_t *spritebase);
+ void bullets_draw(bitmap_rgb32 &bitmap, const rectangle &cliprect, const uint8_t *base);
+ void stars_init();
+ void stars_update_origin();
+ void stars_draw_row(bitmap_rgb32 &bitmap, int maxx, int y, uint32_t star_offs, uint8_t starmask);
+ void galaxian_draw_background(bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ void background_draw_colorsplit(bitmap_rgb32 &bitmap, const rectangle &cliprect, rgb_t color, int split, int split_flipped);
+ void scramble_draw_stars(bitmap_rgb32 &bitmap, const rectangle &cliprect, int maxx);
+ void scramble_draw_background(bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ void anteater_draw_background(bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ void jumpbug_draw_background(bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ void turtles_draw_background(bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ void frogger_draw_background(bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ void quaak_draw_background(bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ inline void galaxian_draw_pixel(bitmap_rgb32 &bitmap, const rectangle &cliprect, int y, int x, rgb_t color);
+ void galaxian_draw_bullet(bitmap_rgb32 &bitmap, const rectangle &cliprect, int offs, int x, int y);
+ void mshuttle_draw_bullet(bitmap_rgb32 &bitmap, const rectangle &cliprect, int offs, int x, int y);
+ void scramble_draw_bullet(bitmap_rgb32 &bitmap, const rectangle &cliprect, int offs, int x, int y);
+ void theend_draw_bullet(bitmap_rgb32 &bitmap, const rectangle &cliprect, int offs, int x, int y);
+ void upper_extend_tile_info(uint16_t *code, uint8_t *color, uint8_t attrib, uint8_t x);
+ void upper_extend_sprite_info(const uint8_t *base, uint8_t *sx, uint8_t *sy, uint8_t *flipx, uint8_t *flipy, uint16_t *code, uint8_t *color);
+ void frogger_extend_tile_info(uint16_t *code, uint8_t *color, uint8_t attrib, uint8_t x);
+ void frogger_extend_sprite_info(const uint8_t *base, uint8_t *sx, uint8_t *sy, uint8_t *flipx, uint8_t *flipy, uint16_t *code, uint8_t *color);
+ void gmgalax_extend_tile_info(uint16_t *code, uint8_t *color, uint8_t attrib, uint8_t x);
+ void gmgalax_extend_sprite_info(const uint8_t *base, uint8_t *sx, uint8_t *sy, uint8_t *flipx, uint8_t *flipy, uint16_t *code, uint8_t *color);
+ void pisces_extend_tile_info(uint16_t *code, uint8_t *color, uint8_t attrib, uint8_t x);
+ void pisces_extend_sprite_info(const uint8_t *base, uint8_t *sx, uint8_t *sy, uint8_t *flipx, uint8_t *flipy, uint16_t *code, uint8_t *color);
+ void batman2_extend_tile_info(uint16_t *code, uint8_t *color, uint8_t attrib, uint8_t x);
+ void mooncrst_extend_tile_info(uint16_t *code, uint8_t *color, uint8_t attrib, uint8_t x);
+ void mooncrst_extend_sprite_info(const uint8_t *base, uint8_t *sx, uint8_t *sy, uint8_t *flipx, uint8_t *flipy, uint16_t *code, uint8_t *color);
+ void moonqsr_extend_tile_info(uint16_t *code, uint8_t *color, uint8_t attrib, uint8_t x);
+ void moonqsr_extend_sprite_info(const uint8_t *base, uint8_t *sx, uint8_t *sy, uint8_t *flipx, uint8_t *flipy, uint16_t *code, uint8_t *color);
+ void mshuttle_extend_tile_info(uint16_t *code, uint8_t *color, uint8_t attrib, uint8_t x);
+ void mshuttle_extend_sprite_info(const uint8_t *base, uint8_t *sx, uint8_t *sy, uint8_t *flipx, uint8_t *flipy, uint16_t *code, uint8_t *color);
+ void calipso_extend_sprite_info(const uint8_t *base, uint8_t *sx, uint8_t *sy, uint8_t *flipx, uint8_t *flipy, uint16_t *code, uint8_t *color);
+ void jumpbug_extend_tile_info(uint16_t *code, uint8_t *color, uint8_t attrib, uint8_t x);
+ void jumpbug_extend_sprite_info(const uint8_t *base, uint8_t *sx, uint8_t *sy, uint8_t *flipx, uint8_t *flipy, uint16_t *code, uint8_t *color);
+ void monsterz_set_latch();
+ void decode_mooncrst(int length, uint8_t *dest);
+ 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();
+ void decode_superbon();
+ void decode_victoryc();
+ void mshuttle_decode(const uint8_t convtable[8][16]);
+ void common_init(galaxian_draw_bullet_func draw_bullet,galaxian_draw_background_func draw_background,
+ galaxian_extend_tile_info_func extend_tile_info,galaxian_extend_sprite_info_func extend_sprite_info);
+//HBMAME start
+ DECLARE_WRITE8_MEMBER(fourplay_rombank_w);
+ DECLARE_WRITE8_MEMBER(videight_rombank_w);
+ DECLARE_WRITE8_MEMBER(videight_gfxbank_w);
+ DECLARE_DRIVER_INIT(fourplay);
+ DECLARE_DRIVER_INIT(trukker);
+ DECLARE_DRIVER_INIT(videight);
+ void videight_extend_tile_info(uint16_t *code, uint8_t *color, uint8_t attrib, uint8_t x);
+ void videight_extend_sprite_info(const uint8_t *base, uint8_t *sx, uint8_t *sy, uint8_t *flipx, uint8_t *flipy, uint16_t *code, uint8_t *color);
+//HBMAME end
+};
diff --git a/src/hbmame/includes/neogeo.h b/src/hbmame/includes/neogeo.h
new file mode 100644
index 00000000000..8c30a57fa4a
--- /dev/null
+++ b/src/hbmame/includes/neogeo.h
@@ -0,0 +1,508 @@
+// license:BSD-3-Clause
+// copyright-holders:Bryan McPhail,Ernesto Corvi,Andrew Prime,Zsolt Vasvari
+// thanks-to:Fuzz
+/*************************************************************************
+
+ Neo-Geo hardware
+
+*************************************************************************/
+
+#include "machine/upd1990a.h"
+#include "machine/ng_memcard.h"
+#include "machine/gen_latch.h"
+#include "video/neogeo_spr.h"
+#include "bus/neogeo/prot.h"
+#include "bus/neogeo/banked_cart.h"
+#include "bus/neogeo_ctrl/ctrl.h"
+#include "screen.h"
+#include "speaker.h"
+
+// On scanline 224, /VBLANK goes low 56 mclks (14 pixels) from the rising edge of /HSYNC.
+// Two mclks after /VBLANK goes low, the hardware sets a pending IRQ1 flip-flop.
+#define NEOGEO_VBLANK_IRQ_HTIM (attotime::from_ticks(56+2, NEOGEO_MASTER_CLOCK))
+
+class neogeo_state : public driver_device
+{
+public:
+ neogeo_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag),
+ m_banked_cart(*this, "banked_cart"),
+ m_maincpu(*this, "maincpu"),
+ m_audiocpu(*this, "audiocpu"),
+ m_region_maincpu(*this, "maincpu"),
+ m_region_sprites(*this, "sprites"),
+ m_region_fixed(*this, "fixed"),
+ m_region_fixedbios(*this, "fixedbios"),
+ m_bank_audio_main(*this, "audio_main"),
+ m_upd4990a(*this, "upd4990a"),
+ m_save_ram(*this, "saveram"),
+ m_screen(*this, "screen"),
+ m_palette(*this, "palette"),
+ m_memcard(*this, "memcard"),
+ m_dsw(*this, "DSW"),
+ m_trackx(*this, "TRACK_X"),
+ m_tracky(*this, "TRACK_Y"),
+ m_edge(*this, "edge"),
+ m_ctrl1(*this, "ctrl1"),
+ m_ctrl2(*this, "ctrl2"),
+ m_sprgen(*this, "spritegen"),
+ m_soundlatch(*this, "soundlatch"),
+ m_soundlatch2(*this, "soundlatch2"),
+ m_use_cart_vectors(0),
+ m_use_cart_audio(0)
+ { }
+
+ DECLARE_WRITE8_MEMBER(io_control_w);
+ DECLARE_READ16_MEMBER(memcard_r);
+ DECLARE_WRITE16_MEMBER(memcard_w);
+ DECLARE_WRITE8_MEMBER(audio_command_w);
+ DECLARE_READ8_MEMBER(audio_command_r);
+ DECLARE_READ8_MEMBER(audio_cpu_bank_select_r);
+ DECLARE_WRITE8_MEMBER(audio_cpu_enable_nmi_w);
+ DECLARE_WRITE8_MEMBER(system_control_w);
+ DECLARE_READ16_MEMBER(neogeo_unmapped_r);
+ DECLARE_READ16_MEMBER(neogeo_paletteram_r);
+ DECLARE_WRITE16_MEMBER(neogeo_paletteram_w);
+ DECLARE_READ16_MEMBER(neogeo_video_register_r);
+ DECLARE_WRITE16_MEMBER(neogeo_video_register_w);
+ READ16_MEMBER(banked_vectors_r);
+ DECLARE_READ16_MEMBER(in0_r);
+ DECLARE_READ16_MEMBER(in1_r);
+
+ void set_slot_number(int slot);
+
+ DECLARE_CUSTOM_INPUT_MEMBER(get_memcard_status);
+ DECLARE_CUSTOM_INPUT_MEMBER(get_audio_result);
+
+ TIMER_CALLBACK_MEMBER(display_position_interrupt_callback);
+ TIMER_CALLBACK_MEMBER(display_position_vblank_callback);
+ TIMER_CALLBACK_MEMBER(vblank_interrupt_callback);
+
+ // MVS-specific
+ DECLARE_WRITE16_MEMBER(save_ram_w);
+ DECLARE_CUSTOM_INPUT_MEMBER(kizuna4p_start_r);
+ DECLARE_INPUT_CHANGED_MEMBER(select_bios);
+
+ uint32_t screen_update_neogeo(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+
+ DECLARE_DRIVER_INIT(neogeo);
+ DECLARE_DRIVER_INIT(mvs);
+
+ optional_device<neogeo_banked_cart_device> m_banked_cart;
+
+protected:
+ void neogeo_postload();
+ void update_interrupts();
+ void create_interrupt_timers();
+ void start_interrupt_timers();
+ void neogeo_acknowledge_interrupt(uint16_t data);
+
+ void neogeo_main_cpu_banking_init();
+ void neogeo_audio_cpu_banking_init(int set_entry);
+ void adjust_display_position_interrupt_timer();
+ void neogeo_set_display_position_interrupt_control(uint16_t data);
+ void neogeo_set_display_counter_msb(uint16_t data);
+ void neogeo_set_display_counter_lsb(uint16_t data);
+ void set_video_control( uint16_t data );
+
+ void create_rgb_lookups();
+ void set_pens();
+ void neogeo_set_screen_shadow( int data );
+ void neogeo_set_palette_bank( int data );
+
+ void audio_cpu_check_nmi();
+ void set_save_ram_unlock( uint8_t data );
+ void set_outputs( );
+ void set_output_latch( uint8_t data );
+ void set_output_data( uint8_t data );
+
+
+ // device overrides
+ virtual void machine_start() override;
+ virtual void machine_reset() override;
+
+ // devices
+ required_device<cpu_device> m_maincpu;
+ required_device<cpu_device> m_audiocpu;
+
+ // memory
+ required_memory_region m_region_maincpu;
+ required_memory_region m_region_sprites;
+ required_memory_region m_region_fixed;
+ optional_memory_region m_region_fixedbios;
+ optional_memory_bank m_bank_audio_main; // optional because of neocd
+ memory_bank *m_bank_audio_cart[4];
+
+ // MVS-specific devices
+ optional_device<upd4990a_device> m_upd4990a;
+ optional_shared_ptr<uint16_t> m_save_ram;
+
+ required_device<screen_device> m_screen;
+ optional_device<palette_device> m_palette;
+ optional_device<ng_memcard_device> m_memcard;
+
+ // configuration
+ enum {NEOGEO_MVS, NEOGEO_AES, NEOGEO_CD} m_type;
+
+ // internal state
+ bool m_recurse;
+ bool m_audio_cpu_nmi_enabled;
+ bool m_audio_cpu_nmi_pending;
+
+ // MVS-specific state
+ uint8_t m_save_ram_unlocked;
+ uint8_t m_output_data;
+ uint8_t m_output_latch;
+ uint8_t m_el_value;
+ uint8_t m_led1_value;
+ uint8_t m_led2_value;
+
+ optional_ioport m_dsw;
+ optional_ioport m_trackx;
+ optional_ioport m_tracky;
+ optional_device<neogeo_ctrl_edge_port_device> m_edge;
+ optional_device<neogeo_control_port_device> m_ctrl1;
+ optional_device<neogeo_control_port_device> m_ctrl2;
+
+ // video hardware, including maincpu interrupts
+ // TODO: make into a device
+ virtual void video_start() override;
+ virtual void video_reset() override;
+
+ emu_timer *m_display_position_interrupt_timer;
+ emu_timer *m_display_position_vblank_timer;
+ emu_timer *m_vblank_interrupt_timer;
+ uint32_t m_display_counter;
+ uint8_t m_vblank_interrupt_pending;
+ uint8_t m_display_position_interrupt_pending;
+ uint8_t m_irq3_pending;
+ uint8_t m_display_position_interrupt_control;
+ uint8_t m_vblank_level;
+ uint8_t m_raster_level;
+
+ required_device<neosprite_device> m_sprgen;
+ optional_device<generic_latch_8_device> m_soundlatch;
+ optional_device<generic_latch_8_device> m_soundlatch2;
+ uint16_t get_video_control( );
+
+ // color/palette related
+ std::vector<uint16_t> m_paletteram;
+ uint8_t m_palette_lookup[32][4];
+ const pen_t *m_bg_pen;
+ int m_screen_shadow;
+ int m_palette_bank;
+
+ int m_use_cart_vectors;
+ int m_use_cart_audio;
+
+
+public:
+ DECLARE_READ16_MEMBER(neogeo_slot_rom_low_r);
+ DECLARE_READ16_MEMBER(neogeo_slot_rom_low_bectors_r);
+
+};
+
+
+class neogeo_noslot_state : public neogeo_state
+{
+ public:
+ neogeo_noslot_state(const machine_config &mconfig, device_type type, const char *tag)
+ : neogeo_state(mconfig, type, tag),
+ /* legacy cartridge specifics */
+ m_mslugx_prot(*this, "mslugx_prot"),
+ m_sma_prot(*this, "sma_prot"),
+ m_cmc_prot(*this, "cmc_prot"),
+ m_pcm2_prot(*this, "pcm2_prot"),
+ m_pvc_prot(*this, "pvc_prot"),
+ m_bootleg_prot(*this, "bootleg_prot"),
+ m_kof2002_prot(*this, "kof2002_prot"),
+ m_fatfury2_prot(*this, "fatfury2_prot"),
+ m_kof98_prot(*this, "kof98_prot"),
+ m_sbp_prot(*this, "sbp_prot") {}
+
+ DECLARE_DRIVER_INIT(fatfury2);
+ DECLARE_DRIVER_INIT(zupapa);
+ DECLARE_DRIVER_INIT(kof98);
+ DECLARE_DRIVER_INIT(mslugx);
+ DECLARE_DRIVER_INIT(kof99);
+ DECLARE_DRIVER_INIT(kof99k);
+ DECLARE_DRIVER_INIT(garou);
+ DECLARE_DRIVER_INIT(garouh);
+ DECLARE_DRIVER_INIT(garoubl);
+ DECLARE_DRIVER_INIT(mslug3);
+ DECLARE_DRIVER_INIT(mslug3h);
+ DECLARE_DRIVER_INIT(mslug3b6);
+ DECLARE_DRIVER_INIT(kof2000);
+ DECLARE_DRIVER_INIT(kof2000n);
+ DECLARE_DRIVER_INIT(kof2001);
+ DECLARE_DRIVER_INIT(cthd2003);
+ DECLARE_DRIVER_INIT(ct2k3sp);
+ DECLARE_DRIVER_INIT(ct2k3sa);
+ DECLARE_DRIVER_INIT(mslug4);
+ DECLARE_DRIVER_INIT(ms4plus);
+ DECLARE_DRIVER_INIT(ganryu);
+ DECLARE_DRIVER_INIT(s1945p);
+ DECLARE_DRIVER_INIT(preisle2);
+ DECLARE_DRIVER_INIT(bangbead);
+ DECLARE_DRIVER_INIT(nitd);
+ DECLARE_DRIVER_INIT(sengoku3);
+ DECLARE_DRIVER_INIT(rotd);
+ DECLARE_DRIVER_INIT(kof2002);
+ DECLARE_DRIVER_INIT(kof2002b);
+ DECLARE_DRIVER_INIT(kf2k2pls);
+ DECLARE_DRIVER_INIT(kf2k2mp);
+ DECLARE_DRIVER_INIT(kf2k2mp2);
+ DECLARE_DRIVER_INIT(kof10th);
+ DECLARE_DRIVER_INIT(kf10thep);
+ DECLARE_DRIVER_INIT(kf2k5uni);
+ DECLARE_DRIVER_INIT(kof2k4se);
+ DECLARE_DRIVER_INIT(matrim);
+ DECLARE_DRIVER_INIT(matrimbl);
+ DECLARE_DRIVER_INIT(pnyaa);
+ DECLARE_DRIVER_INIT(mslug5);
+ DECLARE_DRIVER_INIT(ms5pcb);
+ DECLARE_DRIVER_INIT(ms5plus);
+ DECLARE_DRIVER_INIT(svcpcb);
+ DECLARE_DRIVER_INIT(svc);
+ DECLARE_DRIVER_INIT(svcboot);
+ DECLARE_DRIVER_INIT(svcplus);
+ DECLARE_DRIVER_INIT(svcplusa);
+ DECLARE_DRIVER_INIT(svcsplus);
+ DECLARE_DRIVER_INIT(samsho5);
+ DECLARE_DRIVER_INIT(samsho5b);
+ DECLARE_DRIVER_INIT(kf2k3pcb);
+ DECLARE_DRIVER_INIT(kof2003);
+ DECLARE_DRIVER_INIT(kof2003h);
+ DECLARE_DRIVER_INIT(kf2k3bl);
+ DECLARE_DRIVER_INIT(kf2k3pl);
+ DECLARE_DRIVER_INIT(kf2k3upl);
+ DECLARE_DRIVER_INIT(samsh5sp);
+ DECLARE_DRIVER_INIT(jockeygp);
+ DECLARE_DRIVER_INIT(vliner);
+ DECLARE_DRIVER_INIT(kof97oro);
+ DECLARE_DRIVER_INIT(lans2004);
+ DECLARE_DRIVER_INIT(sbp);
+ DECLARE_DRIVER_INIT(irrmaze);
+
+ void install_banked_bios();
+
+ // legacy
+ optional_device<mslugx_prot_device> m_mslugx_prot;
+ optional_device<sma_prot_device> m_sma_prot;
+ optional_device<cmc_prot_device> m_cmc_prot;
+ optional_device<pcm2_prot_device> m_pcm2_prot;
+ optional_device<pvc_prot_device> m_pvc_prot;
+ optional_device<ngbootleg_prot_device> m_bootleg_prot;
+ optional_device<kof2002_prot_device> m_kof2002_prot;
+ optional_device<fatfury2_prot_device> m_fatfury2_prot;
+ optional_device<kof98_prot_device> m_kof98_prot;
+ optional_device<sbp_prot_device> m_sbp_prot;
+};
+
+class neogeo_noslot_kog_state : public neogeo_state
+{
+public:
+ neogeo_noslot_kog_state(const machine_config &mconfig, device_type type, const char *tag)
+ : neogeo_state(mconfig, type, tag),
+ /* legacy cartridge specifics */
+ m_bootleg_prot(*this, "bootleg_prot"),
+ m_kog_prot(*this, "kog_prot") {}
+
+
+ DECLARE_DRIVER_INIT(kog);
+
+ // legacy
+ optional_device<ngbootleg_prot_device> m_bootleg_prot;
+ optional_device<kog_prot_device> m_kog_prot;
+};
+
+/*----------- defined in drivers/neogeo.c -----------*/
+
+MACHINE_CONFIG_EXTERN( neogeo_base );
+MACHINE_CONFIG_EXTERN( neogeo_arcade );
+INPUT_PORTS_EXTERN(neogeo);
+ADDRESS_MAP_EXTERN(neogeo_main_map,16);
+
+/*************************************
+ *
+ * Neo-Geo bios
+ *
+ *************************************
+
+ These are the known Bios Roms, Set options.bios to the one you want.
+
+ The Universe bios roms are supported because they're now used on enough PCBs
+ to be considered 'in active arcade use' rather than just homebrew hacks.
+ Some may be missing, there have been multiple CRCs reported for the same
+ revision in some cases (the Universe bios has an option for entering / displaying
+ a serial number; these should be noted as such if they're added).
+ Universe bios prior to version 1.3 was incompatible with AES.
+
+ The 'japan-hotel' BIOS is a dump of an MVS which could be found in some japanese
+ hotels. it is a custom MVS mobo which uses MVS carts but it hasn't jamma
+ connector and it's similar to a console with a coin mechanism, so it's a sort
+ of little coin op console installed in hotels.
+
+ The sp-45.sp1 bios is the latest 'ASIA' revision. Japan-j3.bin is the latest 'JAPAN'
+ revision. Both of them are also used in the sp-4x.sp1 bios of the Jamma PCB boards.
+
+ The current Neo-Geo MVS system set (SFIX/SM1/000-LO) used is from a NEO-MVH MV1FS board.
+ Other boards (MV1xx / MV2x / MV4x /MV6x) other system sets?
+
+ Zoom ROM (LO) 128K TC531000CP 1x 128Kx8 Zoom look-up table ROM
+ Fix ROM (SFIX) 128K 27C1000 1x 128Kx8 Text layer graphics ROM
+ Sound ROM (SM1) 128K 27C1000/23C1000 1x 128Kx8 Z80 program ROM
+
+*/
+
+#define ROM_LOAD16_WORD_SWAP_BIOS(bios,name,offset,length,hash) \
+ ROMX_LOAD(name, offset, length, hash, ROM_GROUPWORD | ROM_REVERSE | ROM_OPTIONAL | ROM_BIOS(bios+1)) /* Note '+1' */
+
+#define NEOGEO_UNIBIOS(x) \
+ ROM_SYSTEM_BIOS( x+ 0, "unibios32", "Universe Bios (Hack, Ver. 3.2)" ) \
+ ROM_LOAD16_WORD_SWAP_BIOS( x+ 0, "uni-bios_3_2.rom", 0x00000, 0x020000, CRC(a4e8b9b3) SHA1(c92f18c3f1edda543d264ecd0ea915240e7c8258) ) /* Universe Bios v3.2 (hack) */ \
+ ROM_SYSTEM_BIOS( x+ 1, "unibios31", "Universe Bios (Hack, Ver. 3.1)" ) \
+ ROM_LOAD16_WORD_SWAP_BIOS( x+ 1, "uni-bios_3_1.rom", 0x00000, 0x020000, CRC(0c58093f) SHA1(29329a3448c2505e1ff45ffa75e61e9693165153) ) /* Universe Bios v3.1 (hack) */ \
+ ROM_SYSTEM_BIOS( x+ 2, "unibios30", "Universe Bios (Hack, Ver. 3.0)" ) \
+ ROM_LOAD16_WORD_SWAP_BIOS( x+ 2, "uni-bios_3_0.rom", 0x00000, 0x020000, CRC(a97c89a9) SHA1(97a5eff3b119062f10e31ad6f04fe4b90d366e7f) ) /* Universe Bios v3.0 (hack) */ \
+ ROM_SYSTEM_BIOS( x+ 3, "unibios23", "Universe Bios (Hack, Ver. 2.3)" ) \
+ ROM_LOAD16_WORD_SWAP_BIOS( x+ 3, "uni-bios_2_3.rom", 0x00000, 0x020000, CRC(27664eb5) SHA1(5b02900a3ccf3df168bdcfc98458136fd2b92ac0) ) /* Universe Bios v2.3 (hack) */ \
+ ROM_SYSTEM_BIOS( x+ 4, "unibios23o", "Universe Bios (Hack, Ver. 2.3, older?)" ) \
+ ROM_LOAD16_WORD_SWAP_BIOS( x+ 4, "uni-bios_2_3o.rom", 0x00000, 0x020000, CRC(601720ae) SHA1(1b8a72c720cdb5ee3f1d735bbcf447b09204b8d9) ) /* Universe Bios v2.3 (hack) alt version, withdrawn? */ \
+ ROM_SYSTEM_BIOS( x+ 5, "unibios22", "Universe Bios (Hack, Ver. 2.2)" ) \
+ ROM_LOAD16_WORD_SWAP_BIOS( x+ 5, "uni-bios_2_2.rom", 0x00000, 0x020000, CRC(2d50996a) SHA1(5241a4fb0c63b1a23fd1da8efa9c9a9bd3b4279c) ) /* Universe Bios v2.2 (hack) */ \
+ ROM_SYSTEM_BIOS( x+ 6, "unibios21", "Universe Bios (Hack, Ver. 2.1)" ) \
+ ROM_LOAD16_WORD_SWAP_BIOS( x+ 6, "uni-bios_2_1.rom", 0x00000, 0x020000, CRC(8dabf76b) SHA1(c23732c4491d966cf0373c65c83c7a4e88f0082c) ) /* Universe Bios v2.1 (hack) */ \
+ ROM_SYSTEM_BIOS( x+ 7, "unibios20", "Universe Bios (Hack, Ver. 2.0)" ) \
+ ROM_LOAD16_WORD_SWAP_BIOS( x+ 7, "uni-bios_2_0.rom", 0x00000, 0x020000, CRC(0c12c2ad) SHA1(37bcd4d30f3892078b46841d895a6eff16dc921e) ) /* Universe Bios v2.0 (hack) */ \
+ ROM_SYSTEM_BIOS( x+ 8, "unibios13", "Universe Bios (Hack, Ver. 1.3)" ) \
+ ROM_LOAD16_WORD_SWAP_BIOS( x+ 8, "uni-bios_1_3.rom", 0x00000, 0x020000, CRC(b24b44a0) SHA1(eca8851d30557b97c309a0d9f4a9d20e5b14af4e) ) /* Universe Bios v1.3 (hack) */
+#define NEOGEO_UNIBIOS_1_2_AND_OLDER(x) \
+ ROM_SYSTEM_BIOS( x+ 9, "unibios12", "Universe Bios (Hack, Ver. 1.2)" ) \
+ ROM_LOAD16_WORD_SWAP_BIOS( x+ 9, "uni-bios_1_2.rom", 0x00000, 0x020000, CRC(4fa698e9) SHA1(682e13ec1c42beaa2d04473967840c88fd52c75a) ) /* Universe Bios v1.2 (hack) */ \
+ ROM_SYSTEM_BIOS( x+10, "unibios12o", "Universe Bios (Hack, Ver. 1.2, older)" ) \
+ ROM_LOAD16_WORD_SWAP_BIOS( x+10, "uni-bios_1_2o.rom", 0x00000, 0x020000, CRC(e19d3ce9) SHA1(af88ef837f44a3af2d7144bb46a37c8512b67770) ) /* Universe Bios v1.2 (hack) alt version */ \
+ ROM_SYSTEM_BIOS( x+11, "unibios11", "Universe Bios (Hack, Ver. 1.1)" ) \
+ ROM_LOAD16_WORD_SWAP_BIOS( x+11, "uni-bios_1_1.rom", 0x00000, 0x020000, CRC(5dda0d84) SHA1(4153d533c02926a2577e49c32657214781ff29b7) ) /* Universe Bios v1.1 (hack) */ \
+ ROM_SYSTEM_BIOS( x+12, "unibios10", "Universe Bios (Hack, Ver. 1.0)" ) \
+ ROM_LOAD16_WORD_SWAP_BIOS( x+12, "uni-bios_1_0.rom", 0x00000, 0x020000, CRC(0ce453a0) SHA1(3b4c0cd26c176fc6b26c3a2f95143dd478f6abf9) ) /* Universe Bios v1.0 (hack) */
+
+#define NEOGEO_BIOS \
+ ROM_REGION16_BE( 0x80000, "mainbios", 0 ) \
+ ROM_SYSTEM_BIOS( 0, "euro", "Europe MVS (Ver. 2)" ) \
+ ROMX_LOAD("euro_s1", 0, 0x20000, CRC(9036d879) SHA1(4f5ed7105b7128794654ce82b51723e16e389543), ROM_GROUPWORD | ROM_REVERSE | ROM_OPTIONAL | ROM_BIOS(1)) \
+ ROM_SYSTEM_BIOS( 1, "euro-s1", "Europe MVS (Ver. 1)" ) \
+ ROM_LOAD16_WORD_SWAP_BIOS( 1, "sp-s.sp1", 0x00000, 0x020000, CRC(c7f2fa45) SHA1(09576ff20b4d6b365e78e6a5698ea450262697cd) ) /* Europe, 4 Slot */ \
+ ROM_SYSTEM_BIOS( 2, "us", "US MVS (Ver. 2?)" ) \
+ ROM_LOAD16_WORD_SWAP_BIOS( 2, "sp-u2.sp1", 0x00000, 0x020000, CRC(e72943de) SHA1(5c6bba07d2ec8ac95776aa3511109f5e1e2e92eb) ) /* US, 2 Slot */ \
+ ROM_SYSTEM_BIOS( 3, "us-e", "US MVS (Ver. 1)" ) \
+ ROM_LOAD16_WORD_SWAP_BIOS( 3, "sp-e.sp1", 0x00000, 0x020000, CRC(2723a5b5) SHA1(5dbff7531cf04886cde3ef022fb5ca687573dcb8) ) /* US, 6 Slot (V5?) */ \
+ ROM_SYSTEM_BIOS( 4, "us-v2", "US MVS (4 slot, Ver 2)" ) \
+ ROM_LOAD16_WORD_SWAP_BIOS( 4, "v2.bin", 0x00000, 0x020000, CRC(62f021f4) SHA1(62d372269e1b3161c64ae21123655a0a22ffd1bb) ) /* US, 4 slot */ \
+ ROM_SYSTEM_BIOS( 5, "asia", "Asia MVS (Ver. 3)" ) \
+ ROM_LOAD16_WORD_SWAP_BIOS( 5, "asia-s3.rom", 0x00000, 0x020000, CRC(91b64be3) SHA1(720a3e20d26818632aedf2c2fd16c54f213543e1) ) /* Asia */ \
+ ROM_SYSTEM_BIOS( 6, "japan", "Japan MVS (Ver. 3)" ) \
+ ROM_LOAD16_WORD_SWAP_BIOS( 6, "vs-bios.rom", 0x00000, 0x020000, CRC(f0e8f27d) SHA1(ecf01eda815909f1facec62abf3594eaa8d11075) ) /* Japan, Ver 6 VS Bios */ \
+ ROM_SYSTEM_BIOS( 7, "japan-s2", "Japan MVS (Ver. 2)" ) \
+ ROM_LOAD16_WORD_SWAP_BIOS( 7, "sp-j2.sp1", 0x00000, 0x020000, CRC(acede59c) SHA1(b6f97acd282fd7e94d9426078a90f059b5e9dd91) ) /* Japan, Older */ \
+ ROM_SYSTEM_BIOS( 8, "japan-s1", "Japan MVS (Ver. 1)" ) \
+ ROM_LOAD16_WORD_SWAP_BIOS( 8, "sp1.jipan.1024", 0x00000, 0x020000, CRC(9fb0abe4) SHA1(18a987ce2229df79a8cf6a84f968f0e42ce4e59d) ) /* Japan, Older */ \
+ ROM_SYSTEM_BIOS( 9, "mv1c", "NEO-MVH MV1C" ) \
+ ROM_LOAD16_WORD_SWAP_BIOS( 9, "sp-45.sp1", 0x00000, 0x080000, CRC(03cc9f6a) SHA1(cdf1f49e3ff2bac528c21ed28449cf35b7957dc1) ) /* Latest Asia bios */ \
+ ROM_SYSTEM_BIOS( 10, "japan-j3", "Japan MVS (J3)" ) \
+ ROM_LOAD16_WORD_SWAP_BIOS( 10, "japan-j3.bin", 0x00000, 0x020000, CRC(dff6d41f) SHA1(e92910e20092577a4523a6b39d578a71d4de7085) ) /* Latest Japan bios; correct chip label unknown */ \
+ ROM_SYSTEM_BIOS( 11, "japan-hotel", "Custom Japanese Hotel" ) \
+ ROM_LOAD16_WORD_SWAP_BIOS( 11, "sp-1v1_3db8c.bin", 0x00000, 0x020000, CRC(162f0ebe) SHA1(fe1c6dd3dfcf97d960065b1bb46c1e11cb7bf271) ) /* 'rare MVS found in japanese hotels' shows v1.3 in test mode */ \
+ \
+ NEOGEO_UNIBIOS(12) \
+ NEOGEO_UNIBIOS_1_2_AND_OLDER(12)
+
+
+#define NEO_BIOS_AUDIO_64K(name, hash) \
+ NEOGEO_BIOS \
+ ROM_REGION( 0x20000, "audiobios", 0 ) \
+ ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) ) \
+ ROM_REGION( 0x20000, "audiocpu", 0 ) \
+ ROM_LOAD( name, 0x00000, 0x10000, hash ) \
+ ROM_RELOAD( 0x10000, 0x10000 )
+
+#define NEO_BIOS_AUDIO_128K(name, hash) \
+ NEOGEO_BIOS \
+ ROM_REGION( 0x20000, "audiobios", 0 ) \
+ ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) ) \
+ ROM_REGION( 0x30000, "audiocpu", 0 ) \
+ ROM_LOAD( name, 0x00000, 0x20000, hash ) \
+ ROM_RELOAD( 0x10000, 0x20000 )
+
+#define NEO_BIOS_AUDIO_256K(name, hash) \
+ NEOGEO_BIOS \
+ ROM_REGION( 0x20000, "audiobios", 0 ) \
+ ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) ) \
+ ROM_REGION( 0x50000, "audiocpu", 0 ) \
+ ROM_LOAD( name, 0x00000, 0x40000, hash ) \
+ ROM_RELOAD( 0x10000, 0x40000 )
+
+#define NEO_BIOS_AUDIO_512K(name, hash) \
+ NEOGEO_BIOS \
+ ROM_REGION( 0x20000, "audiobios", 0 ) \
+ ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) ) \
+ ROM_REGION( 0x90000, "audiocpu", 0 ) \
+ ROM_LOAD( name, 0x00000, 0x80000, hash ) \
+ ROM_RELOAD( 0x10000, 0x80000 )
+
+
+#define NEO_BIOS_AUDIO_ENCRYPTED_128K(name, hash) \
+ NEOGEO_BIOS \
+ ROM_REGION( 0x20000, "audiobios", 0 ) \
+ ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) ) \
+ ROM_REGION( 0x90000, "audiocpu", ROMREGION_ERASEFF ) \
+ ROM_REGION( 0x80000, "audiocrypt", 0 ) \
+ ROM_LOAD( name, 0x00000, 0x20000, hash )
+#define NEO_BIOS_AUDIO_ENCRYPTED_256K(name, hash) \
+ NEOGEO_BIOS \
+ ROM_REGION( 0x20000, "audiobios", 0 ) \
+ ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) ) \
+ ROM_REGION( 0x90000, "audiocpu", ROMREGION_ERASEFF ) \
+ ROM_REGION( 0x80000, "audiocrypt", 0 ) \
+ ROM_LOAD( name, 0x00000, 0x40000, hash )
+#define NEO_BIOS_AUDIO_ENCRYPTED_512K(name, hash) \
+ NEOGEO_BIOS \
+ ROM_REGION( 0x20000, "audiobios", 0 ) \
+ ROM_LOAD( "sm1.sm1", 0x00000, 0x20000, CRC(94416d67) SHA1(42f9d7ddd6c0931fd64226a60dc73602b2819dcf) ) \
+ ROM_REGION( 0x90000, "audiocpu", ROMREGION_ERASEFF ) \
+ ROM_REGION( 0x80000, "audiocrypt", 0 ) \
+ ROM_LOAD( name, 0x00000, 0x80000, hash )
+
+
+#define ROM_Y_ZOOM \
+ ROM_REGION( 0x20000, "zoomy", 0 ) \
+ ROM_LOAD( "000-lo.lo", 0x00000, 0x20000, CRC(5a86cff2) SHA1(5992277debadeb64d1c1c64b0a92d9293eaf7e4a) )
+
+#define NEO_SFIX_MT(bytes) \
+ ROM_Y_ZOOM \
+ ROM_REGION( 0x20000, "fixedbios", 0 ) \
+ ROM_LOAD( "sfix.sfix", 0, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) ) \
+ ROM_REGION( bytes, "fixed", ROMREGION_ERASE00 )
+
+#define NEO_SFIX_MT_128K \
+ NEO_SFIX_MT( 0x20000 )
+
+#define NEO_SFIX_MT_512K \
+ NEO_SFIX_MT( 0x80000 )
+
+#define NEO_SFIX_MSLUG(name, hash) \
+ NEO_SFIX_MT( 0x80000 ) \
+ ROM_LOAD( name, 0x00000, 0x20000, hash ) \
+ ROM_RELOAD( 0x20000, 0x20000 ) \
+ ROM_RELOAD( 0x40000, 0x20000 ) \
+ ROM_RELOAD( 0x60000, 0x20000 )
+
+#define NEO_SFIX(bytes, name, hash) \
+ NEO_SFIX_MT( bytes ) \
+ ROM_LOAD( name, 0x00000, bytes, hash )
+
+#define NEO_SFIX_64K(name, hash) \
+ NEO_SFIX( 0x10000, name, hash )
+
+#define NEO_SFIX_128K(name, hash) \
+ NEO_SFIX( 0x20000, name, hash )
diff --git a/src/hbmame/includes/pacman.h b/src/hbmame/includes/pacman.h
new file mode 100644
index 00000000000..df6c965724c
--- /dev/null
+++ b/src/hbmame/includes/pacman.h
@@ -0,0 +1,230 @@
+// license:BSD-3-Clause
+// copyright-holders:Nicola Salmoria
+#include "machine/watchdog.h"
+#include "sound/namco.h"
+#include "machine/74259.h"
+#include "screen.h"
+#include "speaker.h"
+
+/*************************************************************************
+
+ Namco PuckMan
+
+**************************************************************************/
+
+class pacman_state : public driver_device
+{
+public:
+ pacman_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag),
+ m_maincpu(*this, "maincpu"),
+ m_namco_sound(*this, "namco"),
+ m_watchdog(*this, "watchdog"),
+ m_spriteram(*this, "spriteram"),
+ m_spriteram2(*this, "spriteram2"),
+ m_s2650_spriteram(*this, "s2650_spriteram"),
+ m_videoram(*this, "videoram"),
+ m_colorram(*this, "colorram"),
+ m_s2650games_tileram(*this, "s2650_tileram"),
+ m_rocktrv2_prot_data(*this, "rocktrv2_prot"),
+ m_gfxdecode(*this, "gfxdecode"),
+ m_palette(*this, "palette"),
+ m_patched_opcodes(*this, "patched_opcodes")
+ , m_p_maincpu(*this, "maincpu") // HBMAME
+ , m_io_fake(*this, "FAKE") // HBMAME
+ { }
+
+ required_device<cpu_device> m_maincpu;
+ optional_device<namco_device> m_namco_sound;
+ required_device<watchdog_timer_device> m_watchdog;
+ optional_shared_ptr<uint8_t> m_spriteram;
+ optional_shared_ptr<uint8_t> m_spriteram2;
+ optional_shared_ptr<uint8_t> m_s2650_spriteram;
+ required_shared_ptr<uint8_t> m_videoram;
+ optional_shared_ptr<uint8_t> m_colorram;
+ optional_shared_ptr<uint8_t> m_s2650games_tileram;
+ optional_shared_ptr<uint8_t> m_rocktrv2_prot_data;
+ required_device<gfxdecode_device> m_gfxdecode;
+ required_device<palette_device> m_palette;
+ optional_shared_ptr<uint8_t> m_patched_opcodes;
+ optional_region_ptr<u8> m_p_maincpu; // HBMAME
+ optional_ioport m_io_fake; // HBMAME
+
+ uint8_t m_cannonb_bit_to_read;
+ int m_mystery;
+ uint8_t m_counter;
+ int m_bigbucks_bank;
+ uint8_t m_rocktrv2_question_bank;
+ tilemap_t *m_bg_tilemap;
+ uint8_t m_charbank;
+ uint8_t m_spritebank;
+ uint8_t m_palettebank;
+ uint8_t m_colortablebank;
+ uint8_t m_flipscreen;
+ uint8_t m_bgpriority;
+ int m_xoffsethack;
+ uint8_t m_inv_spr;
+ uint8_t m_irq_mask;
+ uint8_t m_maketrax_counter;
+ uint8_t m_maketrax_offset;
+ int m_maketrax_disable_protection;
+
+ DECLARE_WRITE8_MEMBER(pacman_interrupt_vector_w);
+ DECLARE_WRITE8_MEMBER(piranha_interrupt_vector_w);
+ DECLARE_WRITE8_MEMBER(nmouse_interrupt_vector_w);
+ DECLARE_WRITE_LINE_MEMBER(led1_w);
+ DECLARE_WRITE_LINE_MEMBER(led2_w);
+ DECLARE_WRITE_LINE_MEMBER(coin_counter_w);
+ DECLARE_WRITE_LINE_MEMBER(coin_lockout_global_w);
+ DECLARE_WRITE8_MEMBER(alibaba_sound_w);
+ DECLARE_READ8_MEMBER(alibaba_mystery_1_r);
+ DECLARE_READ8_MEMBER(alibaba_mystery_2_r);
+ DECLARE_WRITE8_MEMBER(maketrax_protection_w);
+ DECLARE_READ8_MEMBER(maketrax_special_port2_r);
+ DECLARE_READ8_MEMBER(maketrax_special_port3_r);
+ DECLARE_READ8_MEMBER(korosuke_special_port2_r);
+ DECLARE_READ8_MEMBER(korosuke_special_port3_r);
+ DECLARE_READ8_MEMBER(mschamp_kludge_r);
+ DECLARE_WRITE8_MEMBER(bigbucks_bank_w);
+ DECLARE_READ8_MEMBER(bigbucks_question_r);
+ DECLARE_WRITE8_MEMBER(porky_banking_w);
+ DECLARE_READ8_MEMBER(drivfrcp_port1_r);
+ DECLARE_READ8_MEMBER(_8bpm_port1_r);
+ DECLARE_READ8_MEMBER(porky_port1_r);
+ DECLARE_READ8_MEMBER(rocktrv2_prot1_data_r);
+ DECLARE_READ8_MEMBER(rocktrv2_prot2_data_r);
+ DECLARE_READ8_MEMBER(rocktrv2_prot3_data_r);
+ DECLARE_READ8_MEMBER(rocktrv2_prot4_data_r);
+ DECLARE_WRITE8_MEMBER(rocktrv2_prot_data_w);
+ DECLARE_WRITE8_MEMBER(rocktrv2_question_bank_w);
+ DECLARE_READ8_MEMBER(rocktrv2_question_r);
+ DECLARE_READ8_MEMBER(pacman_read_nop);
+ DECLARE_READ8_MEMBER(mspacman_disable_decode_r_0x0038);
+ DECLARE_READ8_MEMBER(mspacman_disable_decode_r_0x03b0);
+ DECLARE_READ8_MEMBER(mspacman_disable_decode_r_0x1600);
+ DECLARE_READ8_MEMBER(mspacman_disable_decode_r_0x2120);
+ DECLARE_READ8_MEMBER(mspacman_disable_decode_r_0x3ff0);
+ DECLARE_READ8_MEMBER(mspacman_disable_decode_r_0x8000);
+ DECLARE_READ8_MEMBER(mspacman_disable_decode_r_0x97f0);
+ DECLARE_WRITE8_MEMBER(mspacman_disable_decode_w);
+ DECLARE_READ8_MEMBER(mspacman_enable_decode_r_0x3ff8);
+ DECLARE_WRITE8_MEMBER(mspacman_enable_decode_w);
+ DECLARE_WRITE_LINE_MEMBER(irq_mask_w);
+ DECLARE_READ8_MEMBER(mspacii_protection_r);
+ DECLARE_READ8_MEMBER(cannonbp_protection_r);
+ DECLARE_WRITE8_MEMBER(pacman_videoram_w);
+ DECLARE_WRITE8_MEMBER(pacman_colorram_w);
+ DECLARE_WRITE_LINE_MEMBER(flipscreen_w);
+ DECLARE_WRITE_LINE_MEMBER(pengo_palettebank_w);
+ DECLARE_WRITE_LINE_MEMBER(pengo_colortablebank_w);
+ DECLARE_WRITE_LINE_MEMBER(pengo_gfxbank_w);
+ DECLARE_WRITE8_MEMBER(s2650games_videoram_w);
+ DECLARE_WRITE8_MEMBER(s2650games_colorram_w);
+ DECLARE_WRITE8_MEMBER(s2650games_scroll_w);
+ DECLARE_WRITE8_MEMBER(s2650games_tilesbank_w);
+ DECLARE_WRITE8_MEMBER(jrpacman_videoram_w);
+ DECLARE_WRITE_LINE_MEMBER(jrpacman_charbank_w);
+ DECLARE_WRITE_LINE_MEMBER(jrpacman_spritebank_w);
+ DECLARE_WRITE8_MEMBER(jrpacman_scroll_w);
+ DECLARE_WRITE_LINE_MEMBER(jrpacman_bgpriority_w);
+ DECLARE_WRITE8_MEMBER(superabc_bank_w);
+ DECLARE_DRIVER_INIT(maketrax);
+ DECLARE_DRIVER_INIT(drivfrcp);
+ DECLARE_DRIVER_INIT(mspacmbe);
+ DECLARE_DRIVER_INIT(ponpoko);
+ DECLARE_DRIVER_INIT(eyes);
+ DECLARE_DRIVER_INIT(woodpek);
+ DECLARE_DRIVER_INIT(cannonbp);
+ DECLARE_DRIVER_INIT(jumpshot);
+ DECLARE_DRIVER_INIT(korosuke);
+ DECLARE_DRIVER_INIT(mspacii);
+ DECLARE_DRIVER_INIT(pacplus);
+ DECLARE_DRIVER_INIT(rocktrv2);
+ DECLARE_DRIVER_INIT(superabc);
+ DECLARE_DRIVER_INIT(8bpm);
+ DECLARE_DRIVER_INIT(porky);
+ DECLARE_DRIVER_INIT(mspacman);
+ DECLARE_DRIVER_INIT(mschamp);
+ TILEMAP_MAPPER_MEMBER(pacman_scan_rows);
+ TILE_GET_INFO_MEMBER(pacman_get_tile_info);
+ TILE_GET_INFO_MEMBER(s2650_get_tile_info);
+ TILEMAP_MAPPER_MEMBER(jrpacman_scan_rows);
+ TILE_GET_INFO_MEMBER(jrpacman_get_tile_info);
+ DECLARE_VIDEO_START(pacman);
+ DECLARE_PALETTE_INIT(pacman);
+ DECLARE_VIDEO_START(birdiy);
+ DECLARE_VIDEO_START(s2650games);
+ DECLARE_MACHINE_RESET(mschamp);
+ DECLARE_MACHINE_RESET(superabc);
+ DECLARE_MACHINE_RESET(maketrax);
+ DECLARE_VIDEO_START(pengo);
+ DECLARE_VIDEO_START(jrpacman);
+ uint32_t screen_update_pacman(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ uint32_t screen_update_s2650games(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ INTERRUPT_GEN_MEMBER(vblank_irq);
+ INTERRUPT_GEN_MEMBER(vblank_nmi);
+ INTERRUPT_GEN_MEMBER(s2650_interrupt);
+ void init_save_state();
+ void jrpacman_mark_tile_dirty( int offset );
+ void korosuke_rom_decode();
+ void eyes_decode(uint8_t *data);
+ void mspacman_install_patches(uint8_t *ROM);
+
+ // epos.c
+ DECLARE_READ8_MEMBER(epos_decryption_w);
+ DECLARE_MACHINE_START(theglobp);
+ DECLARE_MACHINE_RESET(theglobp);
+ DECLARE_MACHINE_START(eeekk);
+ DECLARE_MACHINE_RESET(eeekk);
+ DECLARE_MACHINE_START(acitya);
+ DECLARE_MACHINE_RESET(acitya);
+
+ // pacplus.c
+ uint8_t pacplus_decrypt(int addr, uint8_t e);
+ void pacplus_decode();
+
+ // jumpshot.c
+ uint8_t jumpshot_decrypt(int addr, uint8_t e);
+ void jumpshot_decode();
+// HBMAME extras
+ DECLARE_VIDEO_START(pacmanx);
+ DECLARE_VIDEO_START(multipac);
+ uint32_t screen_update_pacmanx(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ uint32_t screen_update_multipac(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ uint32_t screen_update_pengo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ DECLARE_PALETTE_INIT(multipac);
+ DECLARE_PALETTE_INIT(pengo);
+ void m96in1b_gfxbank_w(uint8_t gfxbank);
+ void madpac_gfxbank_w(uint8_t gfxbank);
+ DECLARE_WRITE8_MEMBER(multipac_gfxbank_w);
+ DECLARE_WRITE8_MEMBER(multipac_palbank_w);
+ TILE_GET_INFO_MEMBER(multipac_get_tile_info);
+ uint8_t m_speedcheat;
+ uint8_t m_timerthing;
+ DECLARE_READ8_MEMBER(mspacii_prot_r);
+ DECLARE_READ8_MEMBER(zolatimer_r);
+ DECLARE_WRITE8_MEMBER(zolatimer_w);
+ DECLARE_MACHINE_RESET(mspacman);
+ DECLARE_WRITE8_MEMBER(m96in1_rombank_w);
+ DECLARE_WRITE8_MEMBER(m96in1b_rombank_w);
+ DECLARE_WRITE8_MEMBER(hackypac_rombank_w);
+ DECLARE_WRITE8_MEMBER(madpac_rombank_w);
+ DECLARE_WRITE8_MEMBER(multipac_rombank_w);
+ DECLARE_WRITE8_MEMBER(pm4n1_rombank_w);
+ DECLARE_WRITE8_MEMBER(pm4n1d_rombank_w);
+ DECLARE_WRITE8_MEMBER(superabc_rombank_w);
+ DECLARE_MACHINE_RESET(96in1);
+ DECLARE_MACHINE_RESET(hackypac);
+ DECLARE_MACHINE_RESET(madpac);
+ DECLARE_MACHINE_RESET(multipac);
+ DECLARE_MACHINE_RESET(mspaceur);
+ DECLARE_MACHINE_RESET(pm4n1);
+ DECLARE_DRIVER_INIT(96in1);
+ DECLARE_DRIVER_INIT(madpac);
+ DECLARE_DRIVER_INIT(mspaceur);
+ DECLARE_DRIVER_INIT(multipac);
+ DECLARE_DRIVER_INIT(pm4n1);
+ DECLARE_DRIVER_INIT(pengo);
+ uint8_t hbmame_pacplus_decode(offs_t addr, uint8_t e);
+// END HBMAME
+};
diff --git a/src/hbmame/layout/monaco.lay b/src/hbmame/layout/monaco.lay
new file mode 100644
index 00000000000..311d5b4572b
--- /dev/null
+++ b/src/hbmame/layout/monaco.lay
@@ -0,0 +1,92 @@
+<?xml version="1.0"?>
+<mamelayout version="2">
+<element name="digit" defstate="10">
+ <led7seg>
+ <color red="1.0" green="0.3" blue="0.0" />
+ </led7seg>
+</element>
+
+<view name="Lamps and Timer">
+ <screen index="0">
+ <bounds left="1" top="0" right="8" bottom="8" />
+ </screen>
+ <bezel name="digit5" element="digit">
+ <bounds x="0.49" y="2.1" width="0.145" height="0.2" />
+ </bezel>
+ <bezel name="digit4" element="digit">
+ <bounds x="0.345" y="2.1" width="0.145" height="0.2" />
+ </bezel>
+ <bezel name="digit3" element="digit">
+ <bounds x="0.635" y="1.8" width="0.145" height="0.2" />
+ </bezel>
+ <bezel name="digit2" element="digit">
+ <bounds x="0.49" y="1.8" width="0.145" height="0.2" />
+ </bezel>
+ <bezel name="digit1" element="digit">
+ <bounds x="0.345" y="1.8" width="0.145" height="0.2" />
+ </bezel>
+ <bezel name="digit0" element="digit">
+ <bounds x="0.2" y="1.8" width="0.145" height="0.2" />
+ </bezel>
+ <bezel name="digit53" element="digit">
+ <bounds x="0.635" y="1.3" width="0.145" height="0.2" />
+ </bezel>
+ <bezel name="digit52" element="digit">
+ <bounds x="0.49" y="1.3" width="0.145" height="0.2" />
+ </bezel>
+ <bezel name="digit51" element="digit">
+ <bounds x="0.345" y="1.3" width="0.145" height="0.2" />
+ </bezel>
+ <bezel name="digit50" element="digit">
+ <bounds x="0.2" y="1.3" width="0.145" height="0.2" />
+ </bezel>
+ <bezel name="digit43" element="digit">
+ <bounds x="0.635" y="1.0" width="0.145" height="0.2" />
+ </bezel>
+ <bezel name="digit42" element="digit">
+ <bounds x="0.49" y="1.0" width="0.145" height="0.2" />
+ </bezel>
+ <bezel name="digit41" element="digit">
+ <bounds x="0.345" y="1.0" width="0.145" height="0.2" />
+ </bezel>
+ <bezel name="digit40" element="digit">
+ <bounds x="0.2" y="1.0" width="0.145" height="0.2" />
+ </bezel>
+ <bezel name="digit33" element="digit">
+ <bounds x="0.635" y="0.7" width="0.145" height="0.2" />
+ </bezel>
+ <bezel name="digit32" element="digit">
+ <bounds x="0.49" y="0.7" width="0.145" height="0.2" />
+ </bezel>
+ <bezel name="digit31" element="digit">
+ <bounds x="0.345" y="0.7" width="0.145" height="0.2" />
+ </bezel>
+ <bezel name="digit30" element="digit">
+ <bounds x="0.2" y="0.7" width="0.145" height="0.2" />
+ </bezel>
+ <bezel name="digit23" element="digit">
+ <bounds x="0.635" y="0.4" width="0.145" height="0.2" />
+ </bezel>
+ <bezel name="digit22" element="digit">
+ <bounds x="0.49" y="0.4" width="0.145" height="0.2" />
+ </bezel>
+ <bezel name="digit21" element="digit">
+ <bounds x="0.345" y="0.4" width="0.145" height="0.2" />
+ </bezel>
+ <bezel name="digit20" element="digit">
+ <bounds x="0.2" y="0.4" width="0.145" height="0.2" />
+ </bezel>
+ <bezel name="digit13" element="digit">
+ <bounds x="0.635" y="0.1" width="0.145" height="0.2" />
+ </bezel>
+ <bezel name="digit12" element="digit">
+ <bounds x="0.49" y="0.1" width="0.145" height="0.2" />
+ </bezel>
+ <bezel name="digit11" element="digit">
+ <bounds x="0.345" y="0.1" width="0.145" height="0.2" />
+ </bezel>
+ <bezel name="digit10" element="digit">
+ <bounds x="0.2" y="0.1" width="0.145" height="0.2" />
+ </bezel>
+ </view>
+</mamelayout> \ No newline at end of file
diff --git a/src/hbmame/layout/neogeo.lay b/src/hbmame/layout/neogeo.lay
new file mode 100644
index 00000000000..bdaa722b17d
--- /dev/null
+++ b/src/hbmame/layout/neogeo.lay
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<mamelayout version="2">
+ <element name="blank">
+ <rect>
+ <color red="0" green="0" blue="0" />
+ </rect>
+ </element>
+
+ <view name="Screen 0 Standard (4:3)">
+ <screen index="0">
+ <bounds left="0" top="0" right="4" bottom="3" />
+ </screen>
+ </view>
+
+ <view name="Screen 0 Cropped (304x224)">
+ <bezel name="blank" element="blank">
+ <bounds left="0" top="0" right="0.1" bottom="3" />
+ </bezel>
+ <bezel name="blank" element="blank">
+ <bounds left="3.9" top="0" right="4" bottom="3" />
+ </bezel>
+ <screen index="0">
+ <bounds left="0" top="0" right="4" bottom="3" />
+ </screen>
+ </view>
+
+ <view name="Screen 0 Stretched (304x224)">
+ <bounds left="0" top="0" right="4" bottom="3" />
+ <screen index="0">
+ <bounds left="-0.105263" top="0" right="4.105263" bottom="3" />
+ </screen>
+ </view>
+
+ <view name="Screen 0 Stretched (272x224)">
+ <bounds left="0" top="0" right="4" bottom="3" />
+ <screen index="0">
+ <bounds left="-0.210526" top="0" right="4.205263" bottom="3" />
+ </screen>
+ </view>
+</mamelayout>
diff --git a/src/hbmame/layout/spacmissx.lay b/src/hbmame/layout/spacmissx.lay
new file mode 100644
index 00000000000..2c306daf5bb
--- /dev/null
+++ b/src/hbmame/layout/spacmissx.lay
@@ -0,0 +1,30 @@
+<?xml version="1.0"?>
+<mamelayout version="2">
+ <element name="overlay">
+ <rect>
+ <bounds left="0" top="0" right="224" bottom="260" />
+ <color red="0" green="1" blue="0.4" />
+ </rect>
+ <rect>
+ <bounds left="0" top="47" right="224" bottom="70" />
+ <color red="1" green="0.2" blue="0.15" />
+ </rect>
+ <rect>
+ <bounds left="0" top="70" right="224" bottom="192" />
+ <color red="1" green="1" blue="0.2" />
+ </rect>
+ <rect>
+ <bounds left="0" top="192" right="224" bottom="214" />
+ <color red="0.2" green="0.6" blue="1" />
+ </rect>
+ </element>
+
+ <view name="Color_Overlay">
+ <screen index="0">
+ <bounds x="0" y="0" width="3" height="4" />
+ </screen>
+ <overlay element="overlay">
+ <bounds x="0" y="0" width="3" height="4" />
+ </overlay>
+ </view>
+</mamelayout>
diff --git a/src/hbmame/machine/arkanoid.cpp b/src/hbmame/machine/arkanoid.cpp
new file mode 100644
index 00000000000..d05697a39b8
--- /dev/null
+++ b/src/hbmame/machine/arkanoid.cpp
@@ -0,0 +1,634 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+/***************************************************************************
+
+ machine.c
+
+ Functions to emulate general aspects of the machine (RAM, ROM, interrupts,
+ I/O ports)
+
+***************************************************************************/
+
+#include "emu.h"
+#include "includes/arkanoid.h"
+
+
+/* To log specific reads and writes of the bootlegs */
+#define ARKANOID_BOOTLEG_VERBOSE 1
+
+
+READ8_MEMBER(arkanoid_state::arkanoid_Z80_mcu_r)
+{
+ /* return the last value the 68705 wrote, and mark that we've read it */
+ m_m68705write = 0;
+ return m_toz80;
+}
+
+TIMER_CALLBACK_MEMBER(arkanoid_state::test)
+{
+ m_z80write = 1;
+ m_fromz80 = param;
+}
+
+WRITE8_MEMBER(arkanoid_state::arkanoid_Z80_mcu_w)
+{
+ machine().scheduler().synchronize(timer_expired_delegate(FUNC(arkanoid_state::test),this), data);
+ /* boost the interleave for a few usecs to make sure it is read successfully */
+ machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(10));
+}
+
+READ8_MEMBER(arkanoid_state::arkanoid_68705_port_a_r)
+{
+ return (m_port_a_out & m_ddr_a) | (m_port_a_in & ~m_ddr_a);
+}
+
+WRITE8_MEMBER(arkanoid_state::arkanoid_68705_port_a_w)
+{
+ m_port_a_out = data;
+}
+
+WRITE8_MEMBER(arkanoid_state::arkanoid_68705_ddr_a_w)
+{
+ m_ddr_a = data;
+}
+
+
+READ8_MEMBER(arkanoid_state::arkanoid_68705_port_c_r)
+{
+ int res = 0;
+
+ /* bit 0 is high on a write strobe; clear it once we've detected it */
+ if (m_z80write)
+ res |= 0x01;
+
+ /* bit 1 is high if the previous write has been read */
+ if (!m_m68705write)
+ res |= 0x02;
+
+ return (m_port_c_out & m_ddr_c) | (res & ~m_ddr_c);
+}
+
+WRITE8_MEMBER(arkanoid_state::arkanoid_68705_port_c_w)
+{
+ if ((m_ddr_c & 0x04) && (~data & 0x04) && (m_port_c_out & 0x04))
+ {
+ /* return the last value the Z80 wrote */
+ m_z80write = 0;
+ m_port_a_in = m_fromz80;
+ }
+ if ((m_ddr_c & 0x08) && (~data & 0x08) && (m_port_c_out & 0x08))
+ {
+ /* a write from the 68705 to the Z80; remember its value */
+ m_m68705write = 1;
+ m_toz80 = m_port_a_out;
+ }
+
+ m_port_c_out = data;
+}
+
+WRITE8_MEMBER(arkanoid_state::arkanoid_68705_ddr_c_w)
+{
+ m_ddr_c = data;
+}
+
+CUSTOM_INPUT_MEMBER(arkanoid_state::arkanoid_68705_input_r)
+{
+ int res = 0;
+
+ /* bit 0x40 of comes from the sticky bit */
+ if (!m_z80write)
+ res |= 0x01;
+
+ /* bit 0x80 comes from a write latch */
+ if (m_mcu) // HBMAME fix for bootlegs
+ if (!m_m68705write)
+ res |= 0x02;
+
+ return res;
+}
+
+CUSTOM_INPUT_MEMBER(arkanoid_state::arkanoid_input_mux)
+{
+ const char *tag1 = (const char *)param;
+ const char *tag2 = tag1 + strlen(tag1) + 1;
+ return ioport((m_paddle_select == 0) ? tag1 : tag2)->read();
+}
+
+/*
+
+Bootlegs stuff
+
+The bootlegs simulate the missing MCU behaviour with writes to 0xd018 and reads value back from 0xf002.
+Fortunately, 'arkangc', 'arkangc2', 'block2', 'arkbloc2' and 'arkblock' has patched code not to bother with that.
+So I've fixed 'arkbl3' and 'paddle2' to return the expected values (code is strongly similar).
+However, 'block2' is the only bootleg that writes some values to 0xd018 and reads them back from 0xf000.
+
+Some bootlegs also test some bits from 0xd008 after reading the paddle value at 0xd018.
+Their effect is completely unknown but I need to set some bits to 1 so the games are playable :
+
+ - 'arkangc' : NO read from 0xd008 !
+ - 'arkangc2' :
+ * bit 1 must be set to 1 or you enter sort of endless "demo mode" when you start :
+ . you can't select your starting level (it always starts at level 1)
+ . you can't control the paddle (it automoves by following the ball)
+ . you can use the "fire" button (the game never shoots)
+ . you are awarded points as in a normal game
+ . sounds are played
+ - 'block2' :
+ * bit 1 must be set to 1 or you enter sort of endless "demo mode" when you start :
+ . you can't control the paddle (it automoves by following the ball)
+ . you can use the "fire" button (the game never shoots)
+ . you are awarded points as in a normal game
+ . sounds are played
+ - 'arkblock' : NO read from 0xd008 !
+ - 'arkbloc2' :
+ * bit 5 must sometimes be set to 1 or you can't reach right side of the screen
+ nor select all levels at the beginning of the game
+ - 'arkgcbl' :
+ * bit 1 must be set to 1 or you enter sort of endless "demo mode" when you start :
+ . you can't select your starting level (it always starts at level 1)
+ . you can't control the paddle (it automoves by following the ball)
+ . you can use the "fire" button (the game never shoots)
+ . you are awarded points as in a normal game
+ . sounds are played
+ * bit 5 must sometimes be set to 1 or you can't reach right side of the screen
+ nor select all levels at the beginning of the game
+ - 'paddle2' :
+ * bits 0 and 1 must be set to 1 or the paddle goes up (joystick issue ?)
+ * bits 2 and 3 must be set to 1 or the paddle goes down (joystick issue ?)
+ * bit 5 must sometimes be set to 1 or you can't reach right side of the screen
+ nor select all levels at the beginning of the game
+
+
+TO DO (2006.09.12) :
+
+ - understand reads from 0xd008 (even if the games are playable)
+ - try to document writes to 0xd018 with unknown effect
+
+*/
+
+
+#define LOG_F000_R if (ARKANOID_BOOTLEG_VERBOSE) logerror("%04x: arkanoid_bootleg_f000_r - cmd = %02x - val = %02x\n", space.device().safe_pc(), m_bootleg_cmd, arkanoid_bootleg_val);
+#define LOG_F002_R if (ARKANOID_BOOTLEG_VERBOSE) logerror("%04x: arkanoid_bootleg_f002_r - cmd = %02x - val = %02x\n", space.device().safe_pc(), m_bootleg_cmd, arkanoid_bootleg_val);
+#define LOG_D018_W if (ARKANOID_BOOTLEG_VERBOSE) logerror("%04x: arkanoid_bootleg_d018_w - data = %02x - cmd = %02x\n", space.device().safe_pc(), data, m_bootleg_cmd);
+#define LOG_D008_R if (ARKANOID_BOOTLEG_VERBOSE) logerror("%04x: arkanoid_bootleg_d008_r - val = %02x\n", space.device().safe_pc(), arkanoid_bootleg_d008_val);
+
+
+/* Kludge for some bootlegs that read this address */
+READ8_MEMBER(arkanoid_state::arkanoid_bootleg_f000_r)
+{
+ uint8_t arkanoid_bootleg_val = 0x00;
+
+ switch (m_bootleg_id)
+ {
+ case ARKANGC: /* There are no reads from 0xf000 in these bootlegs */
+ case ARKBLOCK:
+ case ARKANGC2:
+ case ARKBLOC2:
+ case ARKGCBL:
+ case PADDLE2:
+ switch (m_bootleg_cmd)
+ {
+ default:
+ break;
+ }
+ LOG_F000_R
+ break;
+ case BLOCK2:
+ switch (m_bootleg_cmd)
+ {
+ case 0x05: /* Check 1 */
+ arkanoid_bootleg_val = 0x05;
+ break;
+ case 0x0a: /* Check 2 */
+ arkanoid_bootleg_val = 0x0a;
+ break;
+ default:
+ break;
+ }
+ LOG_F000_R
+ break;
+ default:
+ logerror("%04x: arkanoid_bootleg_f000_r - cmd = %02x - unknown bootleg !\n", space.device().safe_pc(), m_bootleg_cmd);
+ break;
+ }
+
+ return arkanoid_bootleg_val;
+}
+
+/* Kludge for some bootlegs that read this address */
+READ8_MEMBER(arkanoid_state::arkanoid_bootleg_f002_r)
+{
+ uint8_t arkanoid_bootleg_val = 0x00;
+
+ switch (m_bootleg_id)
+ {
+ case ARKANGC:
+ case ARKBLOCK:
+ switch (m_bootleg_cmd)
+ {
+ default:
+ break;
+ }
+ LOG_F002_R
+ break;
+ case ARKANGC2: /* There are no reads from 0xf002 in these bootlegs */
+ case BLOCK2:
+ switch (m_bootleg_cmd)
+ {
+ default:
+ break;
+ }
+ LOG_F002_R
+ break;
+ case ARKBLOC2:
+ switch (m_bootleg_cmd)
+ {
+ default:
+ break;
+ }
+ LOG_F002_R
+ break;
+ case ARKGCBL:
+ switch (m_bootleg_cmd)
+ {
+ case 0x8a: /* Current level (fixed routine) */
+ arkanoid_bootleg_val = 0xa5;
+ break;
+ case 0xff: /* Avoid "BAD HARDWARE " message (fixed routine) */
+ arkanoid_bootleg_val = 0xe2;
+ break;
+ default:
+ break;
+ }
+ LOG_F002_R
+ break;
+ case PADDLE2:
+ switch (m_bootleg_cmd)
+ {
+ case 0x24: /* Avoid bad jump to 0x0066 */
+ arkanoid_bootleg_val = 0x9b;
+ break;
+ case 0x36: /* Avoid "BAD HARDWARE " message */
+ arkanoid_bootleg_val = 0x2d;
+ break;
+ case 0x38: /* Start of levels table (fixed offset) */
+ arkanoid_bootleg_val = 0xf3;
+ break;
+ case 0x8a: /* Current level (fixed routine) */
+ arkanoid_bootleg_val = 0xa5;
+ break;
+ case 0xc3: /* Avoid bad jump to 0xf000 */
+ arkanoid_bootleg_val = 0x1d;
+ break;
+ case 0xe3: /* Number of bricks left (fixed offset) */
+ arkanoid_bootleg_val = 0x61;
+ break;
+ case 0xf7: /* Avoid "U69" message */
+ arkanoid_bootleg_val = 0x00;
+ break;
+ case 0xff: /* Avoid "BAD HARDWARE " message (fixed routine) */
+ arkanoid_bootleg_val = 0xe2;
+ break;
+ default:
+ break;
+ }
+ LOG_F002_R
+ break;
+ default:
+ logerror("%04x: arkanoid_bootleg_f002_r - cmd = %02x - unknown bootleg !\n", space.device().safe_pc(), m_bootleg_cmd);
+ break;
+ }
+
+ return arkanoid_bootleg_val;
+}
+
+/* Kludge for some bootlegs that write this address */
+WRITE8_MEMBER(arkanoid_state::arkanoid_bootleg_d018_w)
+{
+ m_bootleg_cmd = 0x00;
+
+ switch (m_bootleg_id)
+ {
+ case ARKANGC:
+ case ARKBLOCK:
+ switch (data)
+ {
+ case 0x36: /* unneeded value : no call 0x2050, unused A and overwritten HL (0x0313 -> 0x0340) */
+ if (space.device().safe_pc() == 0x7c47)
+ m_bootleg_cmd = 0x00;
+ break;
+ case 0x38: /* unneeded value : no call 0x2050, unused A and fixed HL (0x7bd5) */
+ if (space.device().safe_pc() == 0x7b87)
+ m_bootleg_cmd = 0x00;
+ break;
+ case 0x8a: /* unneeded value : no call 0x2050, unused A and overwritten HL (0x7b77 -> 0x7c1c) */
+ if (space.device().safe_pc() == 0x9661)
+ m_bootleg_cmd = 0x00;
+ break;
+ case 0xe3: /* unneeded value : call 0x2050 but fixed A (0x00) and fixed HL (0xed83) */
+ if (space.device().safe_pc() == 0x67e3)
+ m_bootleg_cmd = 0x00;
+ break;
+ case 0xf7: /* unneeded value : 3 * 'NOP' at 0x034f + 2 * 'NOP' at 0x35b */
+ if (space.device().safe_pc() == 0x0349)
+ m_bootleg_cmd = 0x00;
+ break;
+ case 0xff: /* unneeded value : no call 0x2050, unused A and overwritten HL (0x7c4f -> 0x7d31) */
+ if (space.device().safe_pc() == 0x9670)
+ m_bootleg_cmd = 0x00;
+ break;
+ default:
+ m_bootleg_cmd = 0x00;
+ break;
+ }
+ LOG_D018_W
+ break;
+ case ARKANGC2:
+ switch (data)
+ {
+ case 0x36: /* unneeded value : call 0x2050 but fixed A (0x2d) */
+ if (space.device().safe_pc() == 0x7c4c)
+ m_bootleg_cmd = 0x00;
+ break;
+ case 0x38: /* unneeded value : call 0x2050 but fixed A (0xf3) */
+ if (space.device().safe_pc() == 0x7b87)
+ m_bootleg_cmd = 0x00;
+ break;
+ case 0x88: /* unneeded value : no read back */
+ if (space.device().safe_pc() == 0x67e3)
+ m_bootleg_cmd = 0x00;
+ if (space.device().safe_pc() == 0x7c47)
+ m_bootleg_cmd = 0x00;
+ break;
+ case 0x89: /* unneeded value : no read back */
+ if (space.device().safe_pc() == 0x67e5)
+ m_bootleg_cmd = 0x00;
+ break;
+ case 0x8a: /* unneeded value : call 0x2050 but fixed A (0xa5) */
+ if (space.device().safe_pc() == 0x9661)
+ m_bootleg_cmd = 0x00;
+ break;
+ case 0xc0: /* unneeded value : no read back */
+ if (space.device().safe_pc() == 0x67e7)
+ m_bootleg_cmd = 0x00;
+ break;
+ case 0xe3: /* unneeded value : call 0x2050 but fixed A (0x61) */
+ if (space.device().safe_pc() == 0x67e9)
+ m_bootleg_cmd = 0x00;
+ break;
+ case 0xff: /* unneeded value : call 0x2050 but fixed A (0xe2) */
+ if (space.device().safe_pc() == 0x9670)
+ m_bootleg_cmd = 0x00;
+ break;
+ default:
+ m_bootleg_cmd = 0x00;
+ break;
+ }
+ LOG_D018_W
+ break;
+ case BLOCK2:
+ switch (data)
+ {
+ case 0x05: /* Check 1 */
+ if (space.device().safe_pc() == 0x0363)
+ m_bootleg_cmd = 0x05;
+ break;
+ case 0x0a: /* Check 2 */
+ if (space.device().safe_pc() == 0x0372)
+ m_bootleg_cmd = 0x0a;
+ break;
+ default:
+ m_bootleg_cmd = 0x00;
+ break;
+ }
+ LOG_D018_W
+ break;
+ case ARKBLOC2:
+ switch (data)
+ {
+ case 0x36: /* unneeded value : call 0x2050 but fixed A (0x2d) */
+ if (space.device().safe_pc() == 0x7c4c)
+ m_bootleg_cmd = 0x00;
+ break;
+ case 0x38: /* unneeded value : call 0x2050 but fixed A (0xf3) */
+ if (space.device().safe_pc() == 0x7b87)
+ m_bootleg_cmd = 0x00;
+ break;
+ case 0x88: /* unneeded value : no read back */
+ if (space.device().safe_pc() == 0x67e3)
+ m_bootleg_cmd = 0x00;
+ if (space.device().safe_pc() == 0x7c47)
+ m_bootleg_cmd = 0x00;
+ break;
+ case 0x89: /* unneeded value : no read back */
+ if (space.device().safe_pc() == 0x67e5)
+ m_bootleg_cmd = 0x00;
+ break;
+ case 0x8a: /* unneeded value : call 0x2050 but unused HL and fixed DE (0x7c1c) */
+ if (space.device().safe_pc() == 0x9661)
+ m_bootleg_cmd = 0x00;
+ break;
+ case 0xc0: /* unneeded value : no read back */
+ if (space.device().safe_pc() == 0x67e7)
+ m_bootleg_cmd = 0x00;
+ break;
+ case 0xe3: /* unneeded value : call 0x2050 but fixed A (0x61) */
+ if (space.device().safe_pc() == 0x67e9)
+ m_bootleg_cmd = 0x00;
+ break;
+ case 0xf7: /* unneeded value : call 0x2050 but never called (check code at 0x0340) */
+ if (space.device().safe_pc() == 0x0349)
+ m_bootleg_cmd = 0x00;
+ break;
+ case 0xff: /* unneeded value : no call 0x2050, unused A and fixed HL (0x7d31) */
+ if (space.device().safe_pc() == 0x9670)
+ m_bootleg_cmd = 0x00;
+ break;
+ default:
+ m_bootleg_cmd = 0x00;
+ break;
+ }
+ LOG_D018_W
+ break;
+ case ARKGCBL:
+ switch (data)
+ {
+ case 0x36: /* unneeded value : call 0x2050 but fixed A (0x2d) */
+ if (space.device().safe_pc() == 0x7c4c)
+ m_bootleg_cmd = 0x00;
+ break;
+ case 0x38: /* unneeded value : call 0x2050 but fixed A (0xf3) */
+ if (space.device().safe_pc() == 0x7b87)
+ m_bootleg_cmd = 0x00;
+ break;
+ case 0x88: /* unneeded value : no read back */
+ if (space.device().safe_pc() == 0x67e3)
+ m_bootleg_cmd = 0x00;
+ if (space.device().safe_pc() == 0x7c47)
+ m_bootleg_cmd = 0x00;
+ case 0x89: /* unneeded value : no read back */
+ if (space.device().safe_pc() == 0x67e5)
+ m_bootleg_cmd = 0x00;
+ break;
+ case 0x8a: /* call 0x2050 with A read from 0xf002 and wrong HL */
+ if (space.device().safe_pc() == 0x9661)
+ m_bootleg_cmd = data;
+ break;
+ case 0xc0: /* unneeded value : no read back */
+ if (space.device().safe_pc() == 0x67e7)
+ m_bootleg_cmd = 0x00;
+ break;
+ case 0xe3: /* unneeded value : call 0x2050 but fixed A (0x61) */
+ if (space.device().safe_pc() == 0x67e9)
+ m_bootleg_cmd = 0x00;
+ break;
+ case 0xf7: /* unneeded value : 3 * 'NOP' at 0x034f + 'JR NZ,$035D' at 0x35b */
+ if (space.device().safe_pc() == 0x0349)
+ m_bootleg_cmd = 0x00;
+ break;
+ case 0xff: /* call 0x2050 with A read from 0xf002 and wrong HL */
+ if (space.device().safe_pc() == 0x9670)
+ m_bootleg_cmd = data;
+ break;
+ default:
+ m_bootleg_cmd = 0x00;
+ break;
+ }
+ LOG_D018_W
+ break;
+ case PADDLE2:
+ switch (data)
+ {
+ case 0x24: /* A read from 0xf002 (expected to be 0x9b) */
+ if (space.device().safe_pc() == 0xbd7a)
+ m_bootleg_cmd = data;
+ break;
+ case 0x36: /* call 0x2050 with A read from 0xf002 and wrong HL */
+ if (space.device().safe_pc() == 0x7c4c)
+ m_bootleg_cmd = data;
+ break;
+ case 0x38: /* call 0x2050 with A read from 0xf002 and wrong HL */
+ if (space.device().safe_pc() == 0x7b87)
+ m_bootleg_cmd = data;
+ break;
+ case 0x88: /* unneeded value : no read back */
+ if (space.device().safe_pc() == 0x67e3)
+ m_bootleg_cmd = 0x00;
+ if (space.device().safe_pc() == 0x7c47)
+ m_bootleg_cmd = 0x00;
+ case 0x89: /* unneeded value : no read back */
+ if (space.device().safe_pc() == 0x67e5)
+ m_bootleg_cmd = 0x00;
+ break;
+ case 0x8a: /* call 0x2050 with A read from 0xf002 and wrong HL */
+ if (space.device().safe_pc() == 0x9661)
+ m_bootleg_cmd = data;
+ break;
+ case 0xc0: /* unneeded value : no read back */
+ if (space.device().safe_pc() == 0x67e7)
+ m_bootleg_cmd = 0x00;
+ break;
+ case 0xc3: /* A read from 0xf002 (expected to be 0x1d) */
+ if (space.device().safe_pc() == 0xbd8a)
+ m_bootleg_cmd = data;
+ break;
+ case 0xe3: /* call 0x2050 with A read from 0xf002 and wrong HL */
+ if (space.device().safe_pc() == 0x67e9)
+ m_bootleg_cmd = data;
+ break;
+ case 0xf7: /* call 0x2050 with A read from 0xf002 and wrong HL */
+ if (space.device().safe_pc() == 0x0349)
+ m_bootleg_cmd = data;
+ break;
+ case 0xff: /* call 0x2050 with A read from 0xf002 and wrong HL */
+ if (space.device().safe_pc() == 0x9670)
+ m_bootleg_cmd = data;
+ break;
+ default:
+ m_bootleg_cmd = 0x00;
+ break;
+ }
+ LOG_D018_W
+ break;
+
+ default:
+ logerror("%04x: arkanoid_bootleg_d018_w - data = %02x - unknown bootleg !\n", space.device().safe_pc(), data);
+ break;
+ }
+}
+
+#ifdef UNUSED_CODE
+READ8_MEMBER(arkanoid_state::block2_bootleg_f000_r)
+{
+ return m_bootleg_cmd;
+}
+#endif
+
+/* Kludge for some bootlegs that read this address */
+READ8_MEMBER(arkanoid_state::arkanoid_bootleg_d008_r)
+{
+ uint8_t arkanoid_bootleg_d008_bit[8];
+ uint8_t arkanoid_bootleg_d008_val;
+ uint8_t arkanoid_paddle_value = ioport("MUX")->read();
+ int b;
+
+ arkanoid_bootleg_d008_bit[4] = arkanoid_bootleg_d008_bit[6] = arkanoid_bootleg_d008_bit[7] = 0; /* untested bits */
+
+ switch (m_bootleg_id)
+ {
+ case ARKANGC:
+ case ARKBLOCK:
+ arkanoid_bootleg_d008_bit[0] = 0; /* untested bit */
+ arkanoid_bootleg_d008_bit[1] = 0; /* untested bit */
+ arkanoid_bootleg_d008_bit[2] = 0; /* untested bit */
+ arkanoid_bootleg_d008_bit[3] = 0; /* untested bit */
+ arkanoid_bootleg_d008_bit[5] = 0; /* untested bit */
+ break;
+ case ARKANGC2:
+ case BLOCK2:
+ arkanoid_bootleg_d008_bit[0] = 0; /* untested bit */
+ arkanoid_bootleg_d008_bit[1] = 1; /* check code at 0x0cad */
+ arkanoid_bootleg_d008_bit[2] = 0; /* untested bit */
+ arkanoid_bootleg_d008_bit[3] = 0; /* untested bit */
+ arkanoid_bootleg_d008_bit[5] = 0; /* untested bit */
+ break;
+ case ARKBLOC2:
+ arkanoid_bootleg_d008_bit[0] = 0; /* untested bit */
+ arkanoid_bootleg_d008_bit[1] = 0; /* untested bit */
+ arkanoid_bootleg_d008_bit[2] = 0; /* untested bit */
+ arkanoid_bootleg_d008_bit[3] = 0; /* untested bit */
+ arkanoid_bootleg_d008_bit[5] = (arkanoid_paddle_value < 0x40); /* check code at 0x96b0 */
+ break;
+ case ARKGCBL:
+ arkanoid_bootleg_d008_bit[0] = 0; /* untested bit */
+ arkanoid_bootleg_d008_bit[1] = 1; /* check code at 0x0cad */
+ arkanoid_bootleg_d008_bit[2] = 0; /* untested bit */
+ arkanoid_bootleg_d008_bit[3] = 0; /* untested bit */
+ arkanoid_bootleg_d008_bit[5] = (arkanoid_paddle_value < 0x40); /* check code at 0x96b0 */
+ break;
+ case PADDLE2:
+ arkanoid_bootleg_d008_bit[0] = 1; /* check code at 0x7d65 */
+ arkanoid_bootleg_d008_bit[1] = 1; /* check code at 0x7d65 */
+ arkanoid_bootleg_d008_bit[2] = 1; /* check code at 0x7d65 */
+ arkanoid_bootleg_d008_bit[3] = 1; /* check code at 0x7d65 */
+ arkanoid_bootleg_d008_bit[5] = (arkanoid_paddle_value < 0x40); /* check code at 0x96b0 */
+ break;
+ default:
+ arkanoid_bootleg_d008_bit[0] = 0; /* untested bit */
+ arkanoid_bootleg_d008_bit[1] = 0; /* untested bit */
+ arkanoid_bootleg_d008_bit[2] = 0; /* untested bit */
+ arkanoid_bootleg_d008_bit[3] = 0; /* untested bit */
+ arkanoid_bootleg_d008_bit[5] = 0; /* untested bit */
+ logerror("%04x: arkanoid_bootleg_d008_r - unknown bootleg !\n",space.device().safe_pc());
+ break;
+ }
+
+ arkanoid_bootleg_d008_val = 0;
+ for (b = 0; b < 8; b++)
+ arkanoid_bootleg_d008_val |= (arkanoid_bootleg_d008_bit[b] << b);
+
+ LOG_D008_R
+
+ return arkanoid_bootleg_d008_val;
+}
diff --git a/src/hbmame/machine/ng_memcard.cpp b/src/hbmame/machine/ng_memcard.cpp
new file mode 100644
index 00000000000..09801c13484
--- /dev/null
+++ b/src/hbmame/machine/ng_memcard.cpp
@@ -0,0 +1,83 @@
+// license:BSD-3-Clause
+// copyright-holders:Miodrag Milanovic
+/*********************************************************************
+
+ ng_memcard.c
+
+ NEOGEO Memory card functions.
+
+*********************************************************************/
+
+#include "emu.h"
+#include "emuopts.h"
+#include "ng_memcard.h"
+
+// device type definition
+DEFINE_DEVICE_TYPE(NG_MEMCARD, ng_memcard_device, "ng_memcard", "NeoGeo Memory Card")
+
+//-------------------------------------------------
+// ng_memcard_device - constructor
+//-------------------------------------------------
+
+ng_memcard_device::ng_memcard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : device_t(mconfig, NG_MEMCARD, tag, owner, clock),
+ device_image_interface(mconfig, *this)
+{
+}
+
+
+
+//-------------------------------------------------
+// device_start - device-specific startup
+//-------------------------------------------------
+
+void ng_memcard_device::device_start()
+{
+ save_item(NAME(m_memcard_data));
+}
+
+/*-------------------------------------------------
+ memcard_insert - insert an existing memory card
+ with the given index
+-------------------------------------------------*/
+
+image_init_result ng_memcard_device::call_load()
+{
+ if(length() != 0x800)
+ return image_init_result::FAIL;
+
+ fseek(0, SEEK_SET);
+ size_t ret = fread(m_memcard_data, 0x800);
+ if(ret != 0x800)
+ return image_init_result::FAIL;
+
+ return image_init_result::PASS;
+}
+
+void ng_memcard_device::call_unload()
+{
+ fseek(0, SEEK_SET);
+ fwrite(m_memcard_data, 0x800);
+}
+
+image_init_result ng_memcard_device::call_create(int format_type, util::option_resolution *format_options)
+{
+ memset(m_memcard_data, 0, 0x800);
+
+ size_t ret = fwrite(m_memcard_data, 0x800);
+ if(ret != 0x800)
+ return image_init_result::FAIL;
+
+ return image_init_result::PASS;
+}
+
+
+READ8_MEMBER(ng_memcard_device::read)
+{
+ return m_memcard_data[offset];
+}
+
+WRITE8_MEMBER(ng_memcard_device::write)
+{
+ m_memcard_data[offset] = data;
+}
diff --git a/src/hbmame/machine/ng_memcard.h b/src/hbmame/machine/ng_memcard.h
new file mode 100644
index 00000000000..2c7fa81af40
--- /dev/null
+++ b/src/hbmame/machine/ng_memcard.h
@@ -0,0 +1,65 @@
+// license:BSD-3-Clause
+// copyright-holders:Miodrag Milanovic
+/*********************************************************************
+
+ ng_memcard.h
+
+ NEOGEO Memory card functions.
+
+*********************************************************************/
+
+#pragma once
+
+#ifndef __NG_MEMCARD_H__
+#define __NG_MEMCARD_H__
+
+//**************************************************************************
+// INTERFACE CONFIGURATION MACROS
+//**************************************************************************
+
+#define MCFG_NEOGEO_MEMCARD_ADD(_tag) \
+ MCFG_DEVICE_ADD(_tag, NG_MEMCARD, 0)
+
+/***************************************************************************
+ FUNCTION PROTOTYPES
+***************************************************************************/
+
+// ======================> ng_memcard_device
+
+class ng_memcard_device : public device_t, public device_image_interface
+{
+public:
+ // construction/destruction
+ ng_memcard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
+ virtual iodevice_t image_type() const override { return IO_MEMCARD; }
+
+ virtual bool is_readable() const override { return true; }
+ virtual bool is_writeable() const override { return true; }
+ virtual bool is_creatable() const override { return true; }
+ virtual bool must_be_loaded() const override { return false; }
+ virtual bool is_reset_on_load() const override { return false; }
+ virtual const char *file_extensions() const override { return "neo"; }
+
+ virtual image_init_result call_load() override;
+ virtual void call_unload() override;
+ virtual image_init_result call_create(int format_type, util::option_resolution *format_options) override;
+
+ // device-level overrides
+ virtual void device_start() override;
+
+ DECLARE_READ8_MEMBER(read);
+ DECLARE_WRITE8_MEMBER(write);
+
+ /* returns the index of the current memory card, or -1 if none */
+ int present() { return is_loaded() ? 0 : -1; }
+private:
+ uint8_t m_memcard_data[0x800];
+};
+
+
+// device type definition
+DECLARE_DEVICE_TYPE(NG_MEMCARD, ng_memcard_device)
+
+
+#endif /* __NG_MEMCARD_H__ */
diff --git a/src/hbmame/osd/windows/hbmame.man b/src/hbmame/osd/windows/hbmame.man
new file mode 100644
index 00000000000..cd8abb329c5
--- /dev/null
+++ b/src/hbmame/osd/windows/hbmame.man
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+ <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
+ <assemblyIdentity version="1.0.0.0" processorArchitecture="*" name="HBMAME" type="win32" />
+ <description>Homebrew M.A.M.E.</description>
+ <dependency>
+ <dependentAssembly>
+ <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" publicKeyToken="6595b64144ccf1df" language="*" processorArchitecture="*"/>
+ </dependentAssembly>
+ </dependency>
+</assembly>
diff --git a/src/hbmame/osd/windows/hbmame.rc b/src/hbmame/osd/windows/hbmame.rc
new file mode 100644
index 00000000000..e9fd900c163
--- /dev/null
+++ b/src/hbmame/osd/windows/hbmame.rc
@@ -0,0 +1,49 @@
+//============================================================
+//
+// mess.rc - Minimal resource file for Win32 MAME
+//
+//============================================================
+//
+// Copyright Aaron Giles
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or
+// without modification, are permitted provided that the
+// following conditions are met:
+//
+// * Redistributions of source code must retain the above
+// copyright notice, this list of conditions and the
+// following disclaimer.
+// * Redistributions in binary form must reproduce the
+// above copyright notice, this list of conditions and
+// the following disclaimer in the documentation and/or
+// other materials provided with the distribution.
+// * Neither the name 'MAME' nor the names of its
+// contributors may be used to endorse or promote
+// products derived from this software without specific
+// prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY AARON GILES ''AS IS'' AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+// FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+// EVENT SHALL AARON GILES BE LIABLE FOR ANY DIRECT,
+// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGE (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+// IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+//============================================================
+
+#define NOWINRES
+#include "windows.h"
+#include "commctrl.h"
+//#include "hbmamevers.rc"
+
+1 24 MOVEABLE PURE "hbmame.man"
+
+2 ICON DISCARDABLE "../../osd/winui/res/hbmame.ico"
diff --git a/src/hbmame/osd/windows/hbmame/hbmame.ico b/src/hbmame/osd/windows/hbmame/hbmame.ico
new file mode 100644
index 00000000000..845ec9aedd7
--- /dev/null
+++ b/src/hbmame/osd/windows/hbmame/hbmame.ico
Binary files differ
diff --git a/src/hbmame/osd/windows/hbmame/hbmame.man b/src/hbmame/osd/windows/hbmame/hbmame.man
new file mode 100644
index 00000000000..dea8c25868e
--- /dev/null
+++ b/src/hbmame/osd/windows/hbmame/hbmame.man
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+ <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
+ <assemblyIdentity version="1.0.0.0" processorArchitecture="*" name="HBMAME" type="win32" />
+ <description>Home Brew Multiple Arcade Machine Emulator</description>
+ <dependency>
+ <dependentAssembly>
+ <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" publicKeyToken="6595b64144ccf1df" language="*" processorArchitecture="*"/>
+ </dependentAssembly>
+ </dependency>
+ <asmv3:application>
+ <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
+ <dpiAware>true</dpiAware>
+ </asmv3:windowsSettings>
+ </asmv3:application>
+</assembly>
diff --git a/src/hbmame/osd/windows/hbmame/hbmame.rc b/src/hbmame/osd/windows/hbmame/hbmame.rc
new file mode 100644
index 00000000000..ca578cfb58c
--- /dev/null
+++ b/src/hbmame/osd/windows/hbmame/hbmame.rc
@@ -0,0 +1,11 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+
+//#define NOWINRES
+#include "windows.h"
+//#include "commctrl.h"
+//#include "hbmamevers.rc"
+
+1 24 MOVEABLE PURE "hbmame.man"
+
+2 ICON DISCARDABLE "hbmame.ico"
diff --git a/src/hbmame/video/cps1.cpp b/src/hbmame/video/cps1.cpp
new file mode 100644
index 00000000000..460919dacb4
--- /dev/null
+++ b/src/hbmame/video/cps1.cpp
@@ -0,0 +1,3048 @@
+// license:BSD-3-Clause
+// copyright-holders:Paul Leaman
+/*****************************************************************************************************************************
+
+Format of the .key files:
+
+All values are little-endian
+
+Offset Purpose
+00 0x55 file header
+01 cpsb_addr
+02,03 cpsb_value
+04 mult_factor1
+05 mult_factor2
+06 mult_result_lo
+07 mult_result_hi
+08 layer_control
+09 priority[0]
+0A priority[1]
+0B priority[2]
+0C priority[3]
+0D palette_control
+0E layer_enable_mask[0]
+0F layer_enable_mask[1]
+10 layer_enable_mask[2]
+11 layer_enable_mask[3]
+12 layer_enable_mask[4]
+13 in2_addr
+14 in3_addr
+15 out2_addr
+16,17 bootleg_kludge
+18 scrollx1 offset for bootlegs (negative values are subtracted, e.g 0x81 = subtract 1)
+19 scrollx2 offset for bootlegs (as above)
+1A scrollx3 offset for bootlegs (as above)
+1B,1C,1D bank_sizes[0]
+1E,1F,20 bank_sizes[1]
+21,22,23 bank_sizes[2]
+24,25,26 bank_sizes[3]
+27 bank_type.type(bits 0-4) and bank_number(bits 6-7)
+28,29,2A bank_type.start
+2B,2C,2D bank_type.end
+The bank_type occurs 8 times for the 8 possible combinations
+After that, the remainder of the file is binary zeroes.
+
+*****************************************************************************************************************************/
+#include "emu.h"
+#include "includes/cps1.h"
+
+/********************************************************************
+
+ Configuration table:
+
+********************************************************************/
+#define WRITE_FILE 0
+
+/* Game specific data */
+
+#define GFXTYPE_SPRITES (1<<0)
+#define GFXTYPE_SCROLL1 (1<<1)
+#define GFXTYPE_SCROLL2 (1<<2)
+#define GFXTYPE_SCROLL3 (1<<3)
+#define GFXTYPE_STARS (1<<4)
+
+
+#define __not_applicable__ -1,-1,-1,-1,-1,-1,-1
+
+/* CPSB ID multiply protection unknown ctrl priority masks palctrl layer enable masks */
+#define CPS_B_01 -1, 0x0000, __not_applicable__, 0x26,{0x28,0x2a,0x2c,0x2e},0x30, {0x02,0x04,0x08,0x30,0x30}
+#define CPS_B_02 0x20,0x0002, __not_applicable__, 0x2c,{0x2a,0x28,0x26,0x24},0x22, {0x02,0x04,0x08,0x00,0x00}
+#define CPS_B_03 -1, 0x0000, __not_applicable__, 0x30,{0x2e,0x2c,0x2a,0x28},0x26, {0x20,0x10,0x08,0x00,0x00}
+#define CPS_B_04 0x20,0x0004, __not_applicable__, 0x2e,{0x26,0x30,0x28,0x32},0x2a, {0x02,0x04,0x08,0x00,0x00}
+#define CPS_B_05 0x20,0x0005, __not_applicable__, 0x28,{0x2a,0x2c,0x2e,0x30},0x32, {0x02,0x08,0x20,0x14,0x14}
+#define CPS_B_11 0x32,0x0401, __not_applicable__, 0x26,{0x28,0x2a,0x2c,0x2e},0x30, {0x08,0x10,0x20,0x00,0x00}
+#define CPS_B_12 0x20,0x0402, __not_applicable__, 0x2c,{0x2a,0x28,0x26,0x24},0x22, {0x02,0x04,0x08,0x00,0x00}
+#define CPS_B_13 0x2e,0x0403, __not_applicable__, 0x22,{0x24,0x26,0x28,0x2a},0x2c, {0x20,0x02,0x04,0x00,0x00}
+#define CPS_B_14 0x1e,0x0404, __not_applicable__, 0x12,{0x14,0x16,0x18,0x1a},0x1c, {0x08,0x20,0x10,0x00,0x00}
+#define CPS_B_15 0x0e,0x0405, __not_applicable__, 0x02,{0x04,0x06,0x08,0x0a},0x0c, {0x04,0x02,0x20,0x00,0x00}
+#define CPS_B_16 0x00,0x0406, __not_applicable__, 0x0c,{0x0a,0x08,0x06,0x04},0x02, {0x10,0x0a,0x0a,0x00,0x00}
+#define CPS_B_17 0x08,0x0407, __not_applicable__, 0x14,{0x12,0x10,0x0e,0x0c},0x0a, {0x08,0x14,0x02,0x00,0x00} // the sf2 -> strider conversion needs 0x04 for the 2nd layer enable on one level, gfx confirmed to appear on the PCB, register at the time is 0x8e, so 0x10 is not set.
+#define CPS_B_18 0x10,0x0408, __not_applicable__, 0x1c,{0x1a,0x18,0x16,0x14},0x12, {0x10,0x08,0x02,0x00,0x00}
+#define CPS_B_21_DEF 0x32, -1, 0x00,0x02,0x04,0x06, 0x08, -1, -1, 0x26,{0x28,0x2a,0x2c,0x2e},0x30, {0x02,0x04,0x08,0x30,0x30} // pang3 sets layer enable to 0x26 on startup
+#define CPS_B_21_BT1 0x32,0x0800, 0x0e,0x0c,0x0a,0x08, 0x06,0x04,0x02, 0x28,{0x26,0x24,0x22,0x20},0x30, {0x20,0x04,0x08,0x12,0x12}
+#define CPS_B_21_BT2 -1, -1, 0x1e,0x1c,0x1a,0x18, -1, 0x0c,0x0a, 0x20,{0x2e,0x2c,0x2a,0x28},0x30, {0x30,0x08,0x30,0x00,0x00}
+#define CPS_B_21_BT3 -1, -1, 0x06,0x04,0x02,0x00, 0x0e,0x0c,0x0a, 0x20,{0x2e,0x2c,0x2a,0x28},0x30, {0x20,0x12,0x12,0x00,0x00}
+#define CPS_B_21_BT4 -1, -1, 0x06,0x04,0x02,0x00, 0x1e,0x1c,0x1a, 0x28,{0x26,0x24,0x22,0x20},0x30, {0x20,0x10,0x02,0x00,0x00}
+#define CPS_B_21_BT5 0x32, -1, 0x0e,0x0c,0x0a,0x08, 0x1e,0x1c,0x1a, 0x20,{0x2e,0x2c,0x2a,0x28},0x30, {0x20,0x04,0x02,0x00,0x00}
+#define CPS_B_21_BT6 -1, -1, -1, -1, -1, -1, -1, -1, -1, 0x20,{0x2e,0x2c,0x2a,0x28},0x30, {0x20,0x14,0x14,0x00,0x00}
+#define CPS_B_21_BT7 -1, -1, -1, -1, -1, -1, -1, -1, -1, 0x2c,{ -1, -1, -1, -1 },0x12, {0x14,0x02,0x14,0x00,0x00}
+#define CPS_B_21_QS1 -1, -1, -1, -1, -1, -1, -1, -1, -1, 0x22,{0x24,0x26,0x28,0x2a},0x2c, {0x10,0x08,0x04,0x00,0x00}
+#define CPS_B_21_QS2 -1, -1, -1, -1, -1, -1, -1, 0x2e,0x20, 0x0a,{0x0c,0x0e,0x00,0x02},0x04, {0x16,0x16,0x16,0x00,0x00}
+#define CPS_B_21_QS3 0x0e,0x0c00, -1, -1, -1, -1, 0x2c, -1, -1, 0x12,{0x14,0x16,0x08,0x0a},0x0c, {0x04,0x02,0x20,0x00,0x00}
+#define CPS_B_21_QS4 0x2e,0x0c01, -1, -1, -1, -1, 0x1c,0x1e,0x08, 0x16,{0x00,0x02,0x28,0x2a},0x2c, {0x04,0x08,0x10,0x00,0x00}
+#define CPS_B_21_QS5 0x1e,0x0c02, -1, -1, -1, -1, 0x0c, -1, -1, 0x2a,{0x2c,0x2e,0x30,0x32},0x1c, {0x04,0x08,0x10,0x00,0x00}
+#define HACK_B_1 -1, -1, -1, -1, -1, -1, -1, -1, -1, 0x14,{0x12,0x10,0x0e,0x0c},0x0a, {0x0e,0x0e,0x0e,0x30,0x30}
+#define HACK_B_2 -1, -1, 0x0e,0x0c,0x0a,0x08, 0x06,0x04,0x02, 0x28,{0x26,0x24,0x22,0x20},0x22, {0x20,0x04,0x08,0x12,0x12}
+
+// HBMAME extras
+
+#define HACK_H_2 -1, -1, -1, -1, -1, -1, -1, -1, -1, 0x20,{ -1, -1, -1, -1 },0x2a, {0x02,0x02,0x02,0x00,0x00} // wofh etc
+#define HACK_H_3 -1, -1, -1, -1, -1, -1, -1, -1, -1, 0x04,{0x12,0x10,0x0e,0x0c},0x0a, {0x02,0x02,0x02,0x00,0x00} // not used
+#define HACK_H_4 -1, -1, -1, -1, -1, -1, -1, -1, -1, 0x30,{0x2e,0x2c,0x2a,0x28},0x26, {0x02,0x04,0x08,0x00,0x00} // not used
+#define HACK_H_5 -1, 0x0000, __not_applicable__, 0x26,{0x28,0x2a,0x2c,0x2e},0x30, {0x40,0x40,0x40,0x00,0x00} // daimakb
+#define HACK_H_6 -1, -1, 0x06,0x04,0x02,0x00, 0x1e,0x1c,0x1a, 0x28,{0x26,0x24,0x22,0x20},0x30, {0x40,0x10,0x02,0x00,0x00} // knightsb2
+#define HACK_H_7 -1, -1, 0x06,0x04,0x02,0x00, 0x1e,0x1c,0x1a, 0x26,{0x28,0x2a,0x2c,0x2e},0x30, {0x20,0x10,0x02,0x00,0x00} // knightsha
+#define HACK_H_8 -1, -1, -1, -1, -1, -1, -1, -1, -1, 0x20,{0x00,0x00,0x00,0x00},0x00, {0x80,0x80,0x80,0x00,0x00}
+
+/*
+CPS_B_21_DEF is CPS-B-21 at default settings (no battery)
+CPS_B_21_BTx are various battery configurations
+CPS_B_21_QSx are various battery configurations in Q-Sound games
+*/
+
+
+// LWCHR and LW621 are equivalent as far as the game is concerned, though the
+// equations are different
+
+#define mapper_LWCHR { 0x8000, 0x8000, 0, 0 }, mapper_LWCHR_table
+static const struct gfx_range mapper_LWCHR_table[] =
+{
+ // verified from PAL dump (PAL16P8B @ 3A):
+ // bank 0 = pin 19 (ROMs 1,5,8,12)
+ // bank 1 = pin 16 (ROMs 2,6,9,13)
+ // pin 12 and pin 14 are always enabled (except for stars)
+ // note that allowed codes go up to 0x1ffff but physical ROM is half that size
+
+ /* type start end bank */
+ { GFXTYPE_SPRITES, 0x00000, 0x07fff, 0 },
+ { GFXTYPE_SCROLL1, 0x00000, 0x1ffff, 0 },
+ { GFXTYPE_STARS, 0x00000, 0x1ffff, 1 },
+ { GFXTYPE_SCROLL2, 0x00000, 0x1ffff, 1 },
+ { GFXTYPE_SCROLL3, 0x00000, 0x1ffff, 1 },
+ { 0 }
+};
+
+#define mapper_LW621 { 0x8000, 0x8000, 0, 0 }, mapper_LW621_table
+static const struct gfx_range mapper_LW621_table[] =
+{
+ // verified from PAL dump (PAL @ 1A):
+ // bank 0 = pin 18
+ // bank 1 = pin 14
+ // pins 19, 16, 17, and 12 give an alternate half-size mapping which would
+ // allow to use smaller ROMs:
+ // pin 19
+ // 0 00000-03fff
+ // pin 16
+ // 0 04000-07fff
+ // 1 00000-1ffff
+ // pin 17
+ // 2 00000-1ffff
+ // 3 00000-1ffff
+ // 4 00000-1ffff
+ // pin 12
+ // 3 00000-1ffff
+ //
+ // note that allowed codes go up to 0x1ffff but physical ROM is half that size
+
+ /* type start end bank */
+ { GFXTYPE_SPRITES, 0x00000, 0x07fff, 0 },
+ { GFXTYPE_SCROLL1, 0x00000, 0x1ffff, 0 },
+ { GFXTYPE_STARS, 0x00000, 0x1ffff, 1 },
+ { GFXTYPE_SCROLL2, 0x00000, 0x1ffff, 1 },
+ { GFXTYPE_SCROLL3, 0x00000, 0x1ffff, 1 },
+ { 0 }
+};
+
+
+// DM620, DM22A and DAM63B are equivalent as far as the game is concerned, though
+// the equations are quite different
+
+#define mapper_DM620 { 0x8000, 0x2000, 0x2000, 0 }, mapper_DM620_table
+static const struct gfx_range mapper_DM620_table[] =
+{
+ // verified from PAL dump (PAL16P8B @ 2A):
+ // bank 0 = pin 19 (ROMs 5,6,7,8)
+ // bank 1 = pin 16 (ROMs 9,11,13,15,18,20,22,24)
+ // bank 2 = pin 14 (ROMs 10,12,14,16,19,21,23,25)
+ // pin 12 is never enabled
+ // note that bank 0 is enabled whenever banks 1 or 2 are not enabled,
+ // which would make it highly redundant, so I'm relying on the table
+ // to be scanned top to bottom and using a catch-all clause at the end.
+
+ /* type start end bank */
+ { GFXTYPE_SCROLL3, 0x8000, 0xbfff, 1 },
+ { GFXTYPE_SPRITES, 0x2000, 0x3fff, 2 },
+ { GFXTYPE_STARS | GFXTYPE_SPRITES | GFXTYPE_SCROLL1 | GFXTYPE_SCROLL2 | GFXTYPE_SCROLL3, 0x00000, 0x1ffff, 0 },
+ { 0 }
+};
+
+#define mapper_DM22A { 0x4000, 0x4000, 0x2000, 0x2000 }, mapper_DM22A_table
+static const struct gfx_range mapper_DM22A_table[] =
+{
+ // verified from PAL dump
+ // bank 0 = pin 19
+ // bank 1 = pin 16
+ // bank 2 = pin 14
+ // bank 3 = pin 12
+
+ /* type start end bank */
+ { GFXTYPE_SPRITES, 0x00000, 0x01fff, 0 },
+ { GFXTYPE_SCROLL1, 0x02000, 0x03fff, 0 },
+ { GFXTYPE_SCROLL2, 0x04000, 0x07fff, 1 },
+ { GFXTYPE_SCROLL3, 0x00000, 0x1ffff, 2 },
+ { GFXTYPE_SPRITES, 0x02000, 0x03fff, 3 },
+ { 0 }
+};
+
+#define mapper_DAM63B { 0x8000, 0x8000, 0, 0 }, mapper_DAM63B_table
+static const struct gfx_range mapper_DAM63B_table[] =
+{
+ // verified from PAL dump:
+ // bank0 = pin 19 (ROMs 1,3) & pin 18 (ROMs 2,4)
+ // bank1 = pin 17 (ROMs 5,7) & pin 16 (ROMs 6,8)
+ // pins 12,13,14,15 are always enabled
+
+ /* type start end bank */
+ { GFXTYPE_SPRITES, 0x00000, 0x01fff, 0 },
+ { GFXTYPE_SCROLL1, 0x02000, 0x02fff, 0 },
+ { GFXTYPE_SCROLL2, 0x04000, 0x07fff, 0 },
+ { GFXTYPE_SCROLL3, 0x00000, 0x1ffff, 1 },
+ { GFXTYPE_SPRITES, 0x02000, 0x03fff, 1 },
+ { 0 }
+};
+
+
+// ST24M1 and ST22B are equivalent except for the stars range which is
+// different. This has no practical effect.
+
+#define mapper_ST24M1 { 0x8000, 0x8000, 0, 0 }, mapper_ST24M1_table
+static const struct gfx_range mapper_ST24M1_table[] =
+{
+ // verified from PAL dump
+ // bank 0 = pin 19 (ROMs 2,4,6,8)
+ // bank 1 = pin 16 (ROMs 1,3,5,7)
+ // pin 12 and pin 14 are never enabled
+
+ /* type start end bank */
+ { GFXTYPE_STARS, 0x00000, 0x003ff, 0 },
+ { GFXTYPE_SPRITES, 0x00000, 0x04fff, 0 },
+ { GFXTYPE_SCROLL2, 0x04000, 0x07fff, 0 },
+ { GFXTYPE_SCROLL3, 0x00000, 0x07fff, 1 },
+ { GFXTYPE_SCROLL1, 0x07000, 0x07fff, 1 },
+ { 0 }
+};
+
+#define mapper_ST22B { 0x4000, 0x4000, 0x4000, 0x4000 }, mapper_ST22B_table
+static const struct gfx_range mapper_ST22B_table[] =
+{
+ // verified from PAL dump
+ // bank 0 = pin 19 (ROMs 1,5, 9,13,17,24,32,38)
+ // bank 1 = pin 16 (ROMs 2,6,10,14,18,25,33,39)
+ // bank 2 = pin 14 (ROMs 3,7,11,15,19,21,26,28)
+ // bank 3 = pin 12 (ROMS 4,8,12,16,20,22,27,29)
+
+ /* type start end bank */
+ { GFXTYPE_STARS, 0x00000, 0x1ffff, 0 },
+ { GFXTYPE_SPRITES, 0x00000, 0x03fff, 0 },
+ { GFXTYPE_SPRITES, 0x04000, 0x04fff, 1 },
+ { GFXTYPE_SCROLL2, 0x04000, 0x07fff, 1 },
+ { GFXTYPE_SCROLL3, 0x00000, 0x03fff, 2 },
+ { GFXTYPE_SCROLL3, 0x04000, 0x07fff, 3 },
+ { GFXTYPE_SCROLL1, 0x07000, 0x07fff, 3 },
+ { 0 }
+};
+
+
+#define mapper_TK22B { 0x4000, 0x4000, 0x4000, 0x4000 }, mapper_TK22B_table
+static const struct gfx_range mapper_TK22B_table[] =
+{
+ // verified from PAL dump:
+ // bank 0 = pin 19 (ROMs 1,5, 9,13,17,24,32,38)
+ // bank 1 = pin 16 (ROMs 2,6,10,14,18,25,33,39)
+ // bank 2 = pin 14 (ROMs 3,7,11,15,19,21,26,28)
+ // bank 3 = pin 12 (ROMS 4,8,12,16,20,22,27,29)
+
+ /* type start end bank */
+ { GFXTYPE_SPRITES, 0x0000, 0x3fff, 0 },
+ { GFXTYPE_SPRITES, 0x4000, 0x5fff, 1 },
+ { GFXTYPE_SCROLL1, 0x6000, 0x7fff, 1 },
+ { GFXTYPE_SCROLL3, 0x0000, 0x3fff, 2 },
+ { GFXTYPE_SCROLL2, 0x4000, 0x7fff, 3 },
+ { 0 }
+};
+
+
+#define mapper_WL24B { 0x8000, 0x8000, 0, 0 }, mapper_WL24B_table
+static const struct gfx_range mapper_WL24B_table[] =
+{
+ // verified from PAL dump:
+ // bank 0 = pin 16 (ROMs 1,3,5,7)
+ // bank 1 = pin 12 (ROMs 10,12,14,16,20,22,24,26)
+ // pin 14 and pin 19 are never enabled
+
+ /* type start end bank */
+ { GFXTYPE_SPRITES, 0x0000, 0x4fff, 0 },
+ { GFXTYPE_SCROLL3, 0x5000, 0x6fff, 0 },
+ { GFXTYPE_SCROLL1, 0x7000, 0x7fff, 0 },
+ { GFXTYPE_SCROLL2, 0x0000, 0x3fff, 1 },
+ { 0 }
+};
+
+
+#define mapper_S224B { 0x8000, 0, 0, 0 }, mapper_S224B_table
+static const struct gfx_range mapper_S224B_table[] =
+{
+ // verified from PAL dump:
+ // bank 0 = pin 16 (ROMs 1,3,5,7)
+ // pin 12 & pin 14 give an alternate half-size mapping which would allow to
+ // populate the 8-bit ROM sockets instead of the 16-bit ones:
+ // pin 12
+ // 0 00000 - 03fff
+ // pin 14
+ // 0 04000 - 043ff
+ // 1 04400 - 04bff
+ // 2 06000 - 07fff
+ // 3 04c00 - 05fff
+ // pin 19 is never enabled
+
+ /* type start end bank */
+ { GFXTYPE_SPRITES, 0x0000, 0x43ff, 0 },
+ { GFXTYPE_SCROLL1, 0x4400, 0x4bff, 0 },
+ { GFXTYPE_SCROLL3, 0x4c00, 0x5fff, 0 },
+ { GFXTYPE_SCROLL2, 0x6000, 0x7fff, 0 },
+ { 0 }
+};
+
+
+#define mapper_YI24B { 0x8000, 0, 0, 0 }, mapper_YI24B_table
+static const struct gfx_range mapper_YI24B_table[] =
+{
+ // verified from JED:
+ // bank 0 = pin 16 (ROMs 1,3,5,7)
+ // pin 12 & pin 14 give an alternate half-size mapping which would allow to
+ // populate the 8-bit ROM sockets instead of the 16-bit ones:
+ // pin 12
+ // 0 0000-1fff
+ // 3 2000-3fff
+ // pin 14
+ // 1 4000-47ff
+ // 2 4800-7fff
+ // pin 19 is never enabled
+
+ /* type start end bank */
+ { GFXTYPE_SPRITES, 0x0000, 0x1fff, 0 },
+ { GFXTYPE_SCROLL3, 0x2000, 0x3fff, 0 },
+ { GFXTYPE_SCROLL1, 0x4000, 0x47ff, 0 },
+ { GFXTYPE_SCROLL2, 0x4800, 0x7fff, 0 },
+ { 0 }
+};
+
+
+// AR24B and AR22B are equivalent, but since we could dump both PALs we are
+// documenting both.
+
+#define mapper_AR24B { 0x8000, 0, 0, 0 }, mapper_AR24B_table
+static const struct gfx_range mapper_AR24B_table[] =
+{
+ // verified from JED:
+ // bank 0 = pin 16 (ROMs 1,3,5,7)
+ // pin 12 & pin 14 give an alternate half-size mapping which would allow to
+ // populate the 8-bit ROM sockets instead of the 16-bit ones:
+ // pin 12
+ // 0 0000-2fff
+ // 1 3000-3fff
+ // pin 14
+ // 2 4000-5fff
+ // 3 6000-7fff
+ // pin 19 is never enabled
+
+ /* type start end bank */
+ { GFXTYPE_SPRITES, 0x0000, 0x2fff, 0 },
+ { GFXTYPE_SCROLL1, 0x3000, 0x3fff, 0 },
+ { GFXTYPE_SCROLL2, 0x4000, 0x5fff, 0 },
+ { GFXTYPE_SCROLL3, 0x6000, 0x7fff, 0 },
+ { 0 }
+};
+
+#define mapper_AR22B { 0x4000, 0x4000, 0, 0 }, mapper_AR22B_table
+static const struct gfx_range mapper_AR22B_table[] =
+{
+ // verified from PAL dump:
+ // bank 0 = pin 19 (ROMs 1,5, 9,13,17,24,32,38)
+ // bank 1 = pin 16 (ROMs 2,6,10,14,18,25,33,39)
+ // pins 12 and 14 are tristated
+
+ /* type start end bank */
+ { GFXTYPE_SPRITES, 0x0000, 0x2fff, 0 },
+ { GFXTYPE_SCROLL1, 0x3000, 0x3fff, 0 },
+ { GFXTYPE_SCROLL2, 0x4000, 0x5fff, 1 },
+ { GFXTYPE_SCROLL3, 0x6000, 0x7fff, 1 },
+ { 0 }
+};
+
+
+#define mapper_O224B { 0x8000, 0x4000, 0, 0 }, mapper_O224B_table
+static const struct gfx_range mapper_O224B_table[] =
+{
+ // verified from PAL dump:
+ // bank 0 = pin 19 (ROMs 2,4,6,8)
+ // bank 1 = pin 12 (ROMs 10,12,14,16,20,22,24,26)
+ // pin 16 & pin 14 appear to be an alternate half-size mapping for bank 0
+ // but scroll1 is missing:
+ // pin 16
+ // 2 00c00 - 03bff
+ // 3 03c00 - 03fff
+ // pin 14
+ // 3 04000 - 04bff
+ // 0 04c00 - 07fff
+
+ /* type start end bank */
+ { GFXTYPE_SCROLL1, 0x0000, 0x0bff, 0 },
+ { GFXTYPE_SCROLL2, 0x0c00, 0x3bff, 0 },
+ { GFXTYPE_SCROLL3, 0x3c00, 0x4bff, 0 },
+ { GFXTYPE_SPRITES, 0x4c00, 0x7fff, 0 },
+ { GFXTYPE_SPRITES, 0x8000, 0xa7ff, 1 },
+ { GFXTYPE_SCROLL2, 0xa800, 0xb7ff, 1 },
+ { GFXTYPE_SCROLL3, 0xb800, 0xbfff, 1 },
+ { 0 }
+};
+
+
+#define mapper_MS24B { 0x8000, 0, 0, 0 }, mapper_MS24B_table
+static const struct gfx_range mapper_MS24B_table[] =
+{
+ // verified from PAL dump:
+ // bank 0 = pin 16 (ROMs 1,3,5,7)
+ // pin 14 duplicates pin 16 allowing to populate the 8-bit ROM sockets
+ // instead of the 16-bit ones.
+ // pin 12 is enabled only for sprites:
+ // 0 0000-3fff
+ // pin 19 is never enabled
+
+ /* type start end bank */
+ { GFXTYPE_SPRITES, 0x0000, 0x3fff, 0 },
+ { GFXTYPE_SCROLL1, 0x4000, 0x4fff, 0 },
+ { GFXTYPE_SCROLL2, 0x5000, 0x6fff, 0 },
+ { GFXTYPE_SCROLL3, 0x7000, 0x7fff, 0 },
+ { 0 }
+};
+
+
+#define mapper_CK24B { 0x8000, 0, 0, 0 }, mapper_CK24B_table
+static const struct gfx_range mapper_CK24B_table[] =
+{
+ /* type start end bank */
+ { GFXTYPE_SPRITES, 0x0000, 0x2fff, 0 },
+ { GFXTYPE_SCROLL1, 0x3000, 0x3fff, 0 },
+ { GFXTYPE_SCROLL2, 0x4000, 0x6fff, 0 },
+ { GFXTYPE_SCROLL3, 0x7000, 0x7fff, 0 },
+ { 0 }
+};
+
+
+#define mapper_NM24B { 0x8000, 0, 0, 0 }, mapper_NM24B_table
+static const struct gfx_range mapper_NM24B_table[] =
+{
+ // verified from PAL dump:
+ // bank 0 = pin 16 (ROMs 1,3,5,7)
+ // pin 12 & pin 14 give an alternate half-size mapping which would allow to
+ // populate the 8-bit ROM sockets instead of the 16-bit ones:
+ // pin 12
+ // 0 00000 - 03fff
+ // 2 00000 - 03fff
+ // pin 14
+ // 1 04000 - 047ff
+ // 0 04800 - 067ff
+ // 2 04800 - 067ff
+ // 3 06800 - 07fff
+ // pin 19 is never enabled
+
+ /* type start end bank */
+ { GFXTYPE_SPRITES, 0x0000, 0x3fff, 0 },
+ { GFXTYPE_SCROLL2, 0x0000, 0x3fff, 0 },
+ { GFXTYPE_SCROLL1, 0x4000, 0x47ff, 0 },
+ { GFXTYPE_SPRITES, 0x4800, 0x67ff, 0 },
+ { GFXTYPE_SCROLL2, 0x4800, 0x67ff, 0 },
+ { GFXTYPE_SCROLL3, 0x6800, 0x7fff, 0 },
+ { 0 }
+};
+
+
+// CA24B and CA22B are equivalent, but since we could dump both PALs we are
+// documenting both.
+
+#define mapper_CA24B { 0x8000, 0, 0, 0 }, mapper_CA24B_table
+static const struct gfx_range mapper_CA24B_table[] =
+{
+ // verified from PAL dump:
+ // bank 0 = pin 16 (ROMs 1,3,5,7)
+ // pin 12 & pin 14 give an alternate half-size mapping which would allow to
+ // populate the 8-bit ROM sockets instead of the 16-bit ones:
+ // pin 12
+ // 0 0000-2fff
+ // 2 0000-2fff
+ // 3 3000-3fff
+ // pin 14
+ // 3 4000-4fff
+ // 1 5000-57ff
+ // 0 5800-7fff
+ // 2 5800-7fff
+ // pin 19 is never enabled (actually it is always enabled when PAL pin 1 is 1, purpose unknown)
+
+ /* type start end bank */
+ { GFXTYPE_SPRITES, 0x0000, 0x2fff, 0 },
+ { GFXTYPE_SCROLL2, 0x0000, 0x2fff, 0 },
+ { GFXTYPE_SCROLL3, 0x3000, 0x4fff, 0 },
+ { GFXTYPE_SCROLL1, 0x5000, 0x57ff, 0 },
+ { GFXTYPE_SPRITES, 0x5800, 0x7fff, 0 },
+ { GFXTYPE_SCROLL2, 0x5800, 0x7fff, 0 },
+ { 0 }
+};
+
+#define mapper_CA22B { 0x4000, 0x4000, 0, 0 }, mapper_CA22B_table
+static const struct gfx_range mapper_CA22B_table[] =
+{
+ // verified from PAL dump:
+ // bank 0 = pin 19 (ROMs 1,5, 9,13,17,24,32,38)
+ // bank 1 = pin 16 (ROMs 2,6,10,14,18,25,33,39)
+ // pin 12 and pin 14 are never enabled
+
+ /* type start end bank */
+ { GFXTYPE_SPRITES, 0x0000, 0x2fff, 0 },
+ { GFXTYPE_SCROLL2, 0x0000, 0x2fff, 0 },
+ { GFXTYPE_SCROLL3, 0x3000, 0x3fff, 0 },
+ { GFXTYPE_SCROLL3, 0x4000, 0x4fff, 1 },
+ { GFXTYPE_SCROLL1, 0x5000, 0x57ff, 1 },
+ { GFXTYPE_SPRITES, 0x5800, 0x7fff, 1 },
+ { GFXTYPE_SCROLL2, 0x5800, 0x7fff, 1 },
+ { 0 }
+};
+
+
+#define mapper_STF29 { 0x8000, 0x8000, 0x8000, 0 }, mapper_STF29_table
+static const struct gfx_range mapper_STF29_table[] =
+{
+ // verified from PAL dump:
+ // bank 0 = pin 19 (ROMs 5,6,7,8)
+ // bank 1 = pin 14 (ROMs 14,15,16,17)
+ // bank 2 = pin 12 (ROMS 24,25,26,27)
+
+ /* type start end bank */
+ { GFXTYPE_SPRITES, 0x00000, 0x07fff, 0 },
+ { GFXTYPE_SPRITES, 0x08000, 0x0ffff, 1 },
+ { GFXTYPE_SPRITES, 0x10000, 0x11fff, 2 },
+ { GFXTYPE_SCROLL3, 0x02000, 0x03fff, 2 },
+ { GFXTYPE_SCROLL1, 0x04000, 0x04fff, 2 },
+ { GFXTYPE_SCROLL2, 0x05000, 0x07fff, 2 },
+ { 0 }
+};
+
+
+// RT24B and RT22B are equivalent, but since we could dump both PALs we are
+// documenting both.
+
+#define mapper_RT24B { 0x8000, 0x8000, 0, 0 }, mapper_RT24B_table
+static const struct gfx_range mapper_RT24B_table[] =
+{
+ // verified from PAL dump:
+ // bank 0 = pin 16 (ROMs 1,3,5,7)
+ // bank 1 = pin 19 (ROMs 2,4,6,8)
+ // pin 12 & pin 14 are never enabled
+
+ /* type start end bank */
+ { GFXTYPE_SPRITES, 0x0000, 0x53ff, 0 },
+ { GFXTYPE_SCROLL1, 0x5400, 0x6fff, 0 },
+ { GFXTYPE_SCROLL3, 0x7000, 0x7fff, 0 },
+ { GFXTYPE_SCROLL3, 0x0000, 0x3fff, 1 },
+ { GFXTYPE_SCROLL2, 0x2800, 0x7fff, 1 },
+ { GFXTYPE_SPRITES, 0x5400, 0x7fff, 1 },
+ { 0 }
+};
+
+#define mapper_RT22B { 0x4000, 0x4000, 0x4000, 0x4000 }, mapper_RT22B_table
+static const struct gfx_range mapper_RT22B_table[] =
+{
+ // verified from PAL dump:
+ // bank 0 = pin 19 (ROMs 1,5, 9,13,17,24,32,38)
+ // bank 1 = pin 16 (ROMs 2,6,10,14,18,25,33,39)
+ // bank 2 = pin 14 (ROMs 3,7,11,15,19,21,26,28)
+ // bank 3 = pin 12 (ROMS 4,8,12,16,20,22,27,29)
+
+ /* type start end bank */
+ { GFXTYPE_SPRITES, 0x0000, 0x3fff, 0 },
+ { GFXTYPE_SPRITES, 0x4000, 0x53ff, 1 },
+ { GFXTYPE_SCROLL1, 0x5400, 0x6fff, 1 },
+ { GFXTYPE_SCROLL3, 0x7000, 0x7fff, 1 },
+ { GFXTYPE_SCROLL3, 0x0000, 0x3fff, 2 },
+ { GFXTYPE_SCROLL2, 0x2800, 0x3fff, 2 },
+ { GFXTYPE_SCROLL2, 0x4000, 0x7fff, 3 },
+ { GFXTYPE_SPRITES, 0x5400, 0x7fff, 3 },
+ { 0 }
+};
+
+
+#define mapper_KD29B { 0x8000, 0x8000, 0, 0 }, mapper_KD29B_table
+static const struct gfx_range mapper_KD29B_table[] =
+{
+ // verified from PAL dump:
+ // bank 0 = pin 19 (ROMs 1,2,3,4)
+ // bank 1 = pin 14 (ROMs 10,11,12,13)
+ // pin 12 is never enabled
+
+ /* type start end bank */
+ { GFXTYPE_SPRITES, 0x0000, 0x7fff, 0 },
+ { GFXTYPE_SPRITES, 0x8000, 0x8fff, 1 },
+ { GFXTYPE_SCROLL2, 0x9000, 0xbfff, 1 },
+ { GFXTYPE_SCROLL1, 0xc000, 0xd7ff, 1 },
+ { GFXTYPE_SCROLL3, 0xd800, 0xffff, 1 },
+ { 0 }
+};
+
+
+#define mapper_CC63B { 0x8000, 0x8000, 0, 0 }, mapper_CC63B_table
+static const struct gfx_range mapper_CC63B_table[] =
+{
+ // verified from PAL dump:
+ // bank0 = pin 19 (ROMs 1,3) & pin 18 (ROMs 2,4)
+ // bank1 = pin 17 (ROMs 5,7) & pin 16 (ROMs 6,8)
+ // pins 12,13,14,15 are always enabled
+
+ /* type start end bank */
+ { GFXTYPE_SPRITES, 0x0000, 0x7fff, 0 },
+ { GFXTYPE_SCROLL2, 0x0000, 0x7fff, 0 },
+ { GFXTYPE_SPRITES, 0x8000, 0xffff, 1 },
+ { GFXTYPE_SCROLL1, 0x8000, 0xffff, 1 },
+ { GFXTYPE_SCROLL2, 0x8000, 0xffff, 1 },
+ { GFXTYPE_SCROLL3, 0x8000, 0xffff, 1 },
+ { 0 }
+};
+
+
+#define mapper_KR63B { 0x8000, 0x8000, 0, 0 }, mapper_KR63B_table
+static const struct gfx_range mapper_KR63B_table[] =
+{
+ // verified from PAL dump:
+ // bank0 = pin 19 (ROMs 1,3) & pin 18 (ROMs 2,4)
+ // bank1 = pin 17 (ROMs 5,7) & pin 16 (ROMs 6,8)
+ // pins 12,13,14,15 are always enabled
+
+ /* type start end bank */
+ { GFXTYPE_SPRITES, 0x0000, 0x7fff, 0 },
+ { GFXTYPE_SCROLL2, 0x0000, 0x7fff, 0 },
+ { GFXTYPE_SCROLL1, 0x8000, 0x9fff, 1 },
+ { GFXTYPE_SPRITES, 0x8000, 0xcfff, 1 },
+ { GFXTYPE_SCROLL2, 0x8000, 0xcfff, 1 },
+ { GFXTYPE_SCROLL3, 0xd000, 0xffff, 1 },
+ { 0 }
+};
+
+
+#define mapper_S9263B { 0x8000, 0x8000, 0x8000, 0 }, mapper_S9263B_table
+static const struct gfx_range mapper_S9263B_table[] =
+{
+ // verified from PAL dump:
+ // FIXME there is some problem with this dump since pin 14 is never enabled
+ // instead of being the same as pin 15 as expected
+ // bank0 = pin 19 (ROMs 1,3) & pin 18 (ROMs 2,4)
+ // bank1 = pin 17 (ROMs 5,7) & pin 16 (ROMs 6,8)
+ // bank2 = pin 15 (ROMs 10,12) & pin 14 (ROMs 11,13)
+ // pins 12 and 13 are the same as 14 and 15
+
+ /* type start end bank */
+ { GFXTYPE_SPRITES, 0x00000, 0x07fff, 0 },
+ { GFXTYPE_SPRITES, 0x08000, 0x0ffff, 1 },
+ { GFXTYPE_SPRITES, 0x10000, 0x11fff, 2 },
+ { GFXTYPE_SCROLL3, 0x02000, 0x03fff, 2 },
+ { GFXTYPE_SCROLL1, 0x04000, 0x04fff, 2 },
+ { GFXTYPE_SCROLL2, 0x05000, 0x07fff, 2 },
+ { 0 }
+};
+
+
+// VA22B and VA63B are equivalent, but since we could dump both PALs we are
+// documenting both.
+
+#define mapper_VA22B { 0x4000, 0x4000, 0, 0 }, mapper_VA22B_table
+static const struct gfx_range mapper_VA22B_table[] =
+{
+ // verified from PAL dump:
+ // bank 0 = pin 19 (ROMs 1,5, 9,13,17,24,32,38)
+ // bank 1 = pin 16 (ROMs 2,6,10,14,18,25,33,39)
+ // pin 12 and pin 14 are never enabled
+
+ /* type start end bank */
+ { GFXTYPE_SPRITES | GFXTYPE_SCROLL1 | GFXTYPE_SCROLL2 | GFXTYPE_SCROLL3, 0x00000, 0x03fff, 0 },
+ { GFXTYPE_SPRITES | GFXTYPE_SCROLL1 | GFXTYPE_SCROLL2 | GFXTYPE_SCROLL3, 0x04000, 0x07fff, 1 },
+ { 0 }
+};
+
+#define mapper_VA63B { 0x8000, 0, 0, 0 }, mapper_VA63B_table
+static const struct gfx_range mapper_VA63B_table[] =
+{
+ // verified from PAL dump (PAL # uncertain):
+ // bank0 = pin 19 (ROMs 1,3) & pin 18 (ROMs 2,4)
+ // pins 12,13,14,15,16,17 are never enabled
+
+ /* type start end bank */
+ { GFXTYPE_SPRITES | GFXTYPE_SCROLL1 | GFXTYPE_SCROLL2 | GFXTYPE_SCROLL3, 0x00000, 0x07fff, 0 },
+ { 0 }
+};
+
+
+#define mapper_Q522B { 0x8000, 0, 0, 0 }, mapper_Q522B_table
+static const struct gfx_range mapper_Q522B_table[] =
+{
+ /* type start end bank */
+ { GFXTYPE_SPRITES | GFXTYPE_SCROLL2, 0x0000, 0x6fff, 0 },
+ { GFXTYPE_SCROLL3, 0x7000, 0x77ff, 0 },
+ { GFXTYPE_SCROLL1, 0x7800, 0x7fff, 0 },
+ { 0 }
+};
+
+
+#define mapper_TK263B { 0x8000, 0x8000, 0, 0 }, mapper_TK263B_table
+static const struct gfx_range mapper_TK263B_table[] =
+{
+ // verified from PAL dump:
+ // bank0 = pin 19 (ROMs 1,3) & pin 18 (ROMs 2,4)
+ // bank1 = pin 17 (ROMs 5,7) & pin 16 (ROMs 6,8)
+ // pins 12,13,14,15 are always enabled
+
+ /* type start end bank */
+ { GFXTYPE_SPRITES | GFXTYPE_SCROLL1 | GFXTYPE_SCROLL2 | GFXTYPE_SCROLL3, 0x00000, 0x07fff, 0 },
+ { GFXTYPE_SPRITES | GFXTYPE_SCROLL1 | GFXTYPE_SCROLL2 | GFXTYPE_SCROLL3, 0x08000, 0x0ffff, 1 },
+ { 0 }
+};
+
+
+#define mapper_CD63B { 0x8000, 0x8000, 0, 0 }, mapper_CD63B_table
+static const struct gfx_range mapper_CD63B_table[] =
+{
+ /* type start end bank */
+ { GFXTYPE_SCROLL1, 0x0000, 0x0fff, 0 },
+ { GFXTYPE_SPRITES, 0x1000, 0x7fff, 0 },
+ { GFXTYPE_SPRITES | GFXTYPE_SCROLL2, 0x8000, 0xdfff, 1 },
+ { GFXTYPE_SCROLL3, 0xe000, 0xffff, 1 },
+ { 0 }
+};
+
+
+#define mapper_PS63B { 0x8000, 0x8000, 0, 0 }, mapper_PS63B_table
+static const struct gfx_range mapper_PS63B_table[] =
+{
+ /* type start end bank */
+ { GFXTYPE_SCROLL1, 0x0000, 0x0fff, 0 },
+ { GFXTYPE_SPRITES, 0x1000, 0x7fff, 0 },
+ { GFXTYPE_SPRITES | GFXTYPE_SCROLL2, 0x8000, 0xdbff, 1 },
+ { GFXTYPE_SCROLL3, 0xdc00, 0xffff, 1 },
+ { 0 }
+};
+
+
+#define mapper_MB63B { 0x8000, 0x8000, 0x8000, 0 }, mapper_MB63B_table
+static const struct gfx_range mapper_MB63B_table[] =
+{
+ /* type start end bank */
+ { GFXTYPE_SCROLL1, 0x00000, 0x00fff, 0 },
+ { GFXTYPE_SPRITES | GFXTYPE_SCROLL2, 0x01000, 0x07fff, 0 },
+ { GFXTYPE_SPRITES | GFXTYPE_SCROLL2, 0x08000, 0x0ffff, 1 },
+ { GFXTYPE_SPRITES | GFXTYPE_SCROLL2, 0x10000, 0x167ff, 2 },
+ { GFXTYPE_SCROLL3, 0x16800, 0x17fff, 2 },
+ { 0 }
+};
+
+
+#define mapper_QD22B { 0x4000, 0, 0, 0 }, mapper_QD22B_table
+static const struct gfx_range mapper_QD22B_table[] =
+{
+ // verified from PAL dump:
+ // bank 0 = pin 19
+
+ /* type start end bank */
+ { GFXTYPE_SPRITES, 0x0000, 0x3fff, 0 },
+ { GFXTYPE_SCROLL1, 0x0000, 0x3fff, 0 },
+ { GFXTYPE_SCROLL2, 0x0000, 0x3fff, 0 },
+ { GFXTYPE_SCROLL3, 0x0000, 0x3fff, 0 },
+ { 0 }
+};
+
+
+#define mapper_QAD63B { 0x8000, 0, 0, 0 }, mapper_QAD63B_table
+static const struct gfx_range mapper_QAD63B_table[] =
+{
+ /* type start end bank */
+ { GFXTYPE_SCROLL1, 0x0000, 0x07ff, 0 },
+ { GFXTYPE_SCROLL3, 0x0800, 0x1fff, 0 },
+ { GFXTYPE_SPRITES | GFXTYPE_SCROLL2, 0x2000, 0x7fff, 0 },
+ { 0 }
+};
+
+
+#define mapper_TN2292 { 0x8000, 0x8000, 0, 0 }, mapper_TN2292_table
+static const struct gfx_range mapper_TN2292_table[] =
+{
+ /* type start end bank */
+ { GFXTYPE_SCROLL1, 0x0000, 0x0fff, 0 },
+ { GFXTYPE_SCROLL3, 0x1000, 0x3fff, 0 },
+ { GFXTYPE_SPRITES | GFXTYPE_SCROLL2, 0x4000, 0x7fff, 0 },
+ { GFXTYPE_SPRITES | GFXTYPE_SCROLL2, 0x8000, 0xffff, 1 },
+ { 0 }
+};
+
+
+#define mapper_RCM63B { 0x8000, 0x8000, 0x8000, 0x8000 }, mapper_RCM63B_table
+static const struct gfx_range mapper_RCM63B_table[] =
+{
+ // verified from PAL dump:
+ // bank0 = pin 19 (ROMs 1,3) & pin 18 (ROMs 2,4)
+ // bank1 = pin 17 (ROMs 5,7) & pin 16 (ROMs 6,8)
+ // bank0 = pin 15 (ROMs 10,12) & pin 14 (ROMs 11,13)
+ // bank1 = pin 13 (ROMs 14,16) & pin 12 (ROMs 15,17)
+
+ /* type start end bank */
+ { GFXTYPE_SPRITES | GFXTYPE_SCROLL1 | GFXTYPE_SCROLL2 | GFXTYPE_SCROLL3, 0x00000, 0x07fff, 0 },
+ { GFXTYPE_SPRITES | GFXTYPE_SCROLL1 | GFXTYPE_SCROLL2 | GFXTYPE_SCROLL3, 0x08000, 0x0ffff, 1 },
+ { GFXTYPE_SPRITES | GFXTYPE_SCROLL1 | GFXTYPE_SCROLL2 | GFXTYPE_SCROLL3, 0x10000, 0x17fff, 2 },
+ { GFXTYPE_SPRITES | GFXTYPE_SCROLL1 | GFXTYPE_SCROLL2 | GFXTYPE_SCROLL3, 0x18000, 0x1ffff, 3 },
+ { 0 }
+};
+
+
+#define mapper_PKB10B { 0x8000, 0, 0, 0 }, mapper_PKB10B_table
+static const struct gfx_range mapper_PKB10B_table[] =
+{
+ /* type start end bank */
+ { GFXTYPE_SCROLL1, 0x0000, 0x0fff, 0 },
+ { GFXTYPE_SPRITES | GFXTYPE_SCROLL2, 0x1000, 0x5fff, 0 },
+ { GFXTYPE_SCROLL3, 0x6000, 0x7fff, 0 },
+ { 0 }
+};
+
+
+#define mapper_pang3 { 0x8000, 0x8000, 0, 0 }, mapper_pang3_table
+static const struct gfx_range mapper_pang3_table[] =
+{
+ /* type start end bank */
+ { GFXTYPE_SPRITES | GFXTYPE_SCROLL2, 0x0000, 0x7fff, 0 },
+ { GFXTYPE_SPRITES | GFXTYPE_SCROLL2, 0x8000, 0x9fff, 1 },
+ { GFXTYPE_SCROLL1, 0xa000, 0xbfff, 1 },
+ { GFXTYPE_SCROLL3, 0xc000, 0xffff, 1 },
+ { 0 }
+};
+
+
+#define mapper_sfzch { 0x20000, 0, 0, 0 }, mapper_sfzch_table
+static const struct gfx_range mapper_sfzch_table[] =
+{
+ /* type start end bank */
+ { GFXTYPE_SPRITES | GFXTYPE_SCROLL1 | GFXTYPE_SCROLL2 | GFXTYPE_SCROLL3, 0x00000, 0x1ffff, 0 },
+ { 0 }
+};
+
+/*
+ I don't know if CPS2 ROM boards use PALs as well; since all games seem to be
+ well behaved, I'll just assume that there is no strong checking of gfx type.
+ (sprites are not listed here because they are addressed linearly by the CPS2
+ sprite code)
+ */
+#define mapper_cps2 { 0x20000, 0x20000, 0, 0 }, mapper_cps2_table
+static const struct gfx_range mapper_cps2_table[] =
+{
+ /* type start end bank */
+ { GFXTYPE_SCROLL1 | GFXTYPE_SCROLL2 | GFXTYPE_SCROLL3, 0x00000, 0x1ffff, 1 }, // 20000-3ffff physical
+ { 0 }
+};
+
+
+#define mapper_KNM10B { 0x8000, 0x8000, 0x8000, 0 }, mapper_KNM10B_table
+static const struct gfx_range mapper_KNM10B_table[] =
+{
+ /* type start end bank */
+
+ { GFXTYPE_SPRITES , 0x00000, 0x07fff, 0 },
+ { GFXTYPE_SPRITES , 0x08000, 0x0ffff, 1 },
+ { GFXTYPE_SPRITES , 0x10000, 0x17fff, 2 },
+ { GFXTYPE_SCROLL2 , 0x04000, 0x07fff, 2 },
+ { GFXTYPE_SCROLL1, 0x01000, 0x01fff, 2 },
+ { GFXTYPE_SCROLL3 , 0x02000, 0x03fff, 2 },
+ { 0 }
+};
+
+#if 0
+#define mapper_frog { 0x8000, 0, 0, 0 }, mapper_frog_table
+static const struct gfx_range mapper_frog_table[] =
+{
+ /* type start end bank */
+ { GFXTYPE_SPRITES, 0x04e0, 0x050f, 0 }, // frogs and bugs
+ { GFXTYPE_SCROLL1, 0x0000, 0x003f, 0 }, // text
+ { GFXTYPE_SCROLL2, 0x0140, 0x025f, 0 }, // frog feast title
+ { GFXTYPE_SCROLL3, 0x0040, 0x04df, 0 }, // logo and background
+ { 0 }
+};
+
+#define mapper_demo { 0x8000, 0, 0, 0 }, mapper_demo_table
+static const struct gfx_range mapper_demo_table[] =
+{
+ /* type start end bank */
+ { GFXTYPE_SPRITES, 0x0000, 0x003f, 0 }, // moveable chaos
+ { GFXTYPE_SCROLL1, 0x4400, 0x445f, 0 }, // text
+ { GFXTYPE_SCROLL2, 0x0040, 0x00ff, 0 }, // logo, blue box, 10th
+ { GFXTYPE_SCROLL3, 0x0100, 0x011f, 0 }, // must not allow access to 0000, otherwise not used
+ { 0 }
+};
+#endif
+
+
+static const struct CPS1config cps1_config_table[]=
+{
+ /* name CPSB gfx mapper in2 in3 out2 kludge */
+ {"forgottn", CPS_B_01, mapper_LW621 },
+ {"forgottna", CPS_B_01, mapper_LW621 },
+ {"forgottnu", CPS_B_01, mapper_LW621 },
+ {"forgottnu1", CPS_B_01, mapper_LWCHR },
+ {"forgottnua", CPS_B_01, mapper_LWCHR },
+ {"forgottnuaa", CPS_B_01, mapper_LWCHR },
+ {"lostwrld", CPS_B_01, mapper_LWCHR },
+ {"lostwrldo", CPS_B_01, mapper_LWCHR },
+ {"ghouls", CPS_B_01, mapper_DM620 },
+ {"ghoulsu", CPS_B_01, mapper_DM620 },
+ {"daimakai", CPS_B_01, mapper_DM22A }, // equivalent to DM620
+ {"daimakair", CPS_B_21_DEF, mapper_DAM63B }, // equivalent to DM620, also CPS_B_21_DEF is equivalent to CPS_B_01
+ {"strider", CPS_B_01, mapper_ST24M1 },
+ {"striderua", CPS_B_01, mapper_ST24M1 }, // wrong, this set uses ST24B2, still not dumped
+ {"strideruc", CPS_B_17, mapper_ST24M1 }, // wrong?
+ {"striderj", CPS_B_01, mapper_ST22B }, // equivalent to ST24M1
+ {"striderjr", CPS_B_21_DEF, mapper_ST24M1 }, // wrong, this set uses STH63B, still not dumped
+ {"dynwar", CPS_B_02, mapper_TK22B }, // wrong, this set uses TK24B1, dumped but equations still not added
+ {"dynwara", CPS_B_02, mapper_TK22B },
+ {"dynwarj", CPS_B_02, mapper_TK22B },
+ {"dynwarjr", CPS_B_21_DEF, mapper_TK22B }, // wrong, this set uses TK163B, still not dumped
+ {"willow", CPS_B_03, mapper_WL24B },
+ {"willowu", CPS_B_03, mapper_WL24B },
+ {"willowuo", CPS_B_03, mapper_WL24B },
+ {"willowj", CPS_B_03, mapper_WL24B }, // wrong, this set uses WL22B, still not dumped
+ {"ffight", CPS_B_04, mapper_S224B },
+ {"ffighta", CPS_B_04, mapper_S224B },
+ {"ffightu", CPS_B_04, mapper_S224B },
+ {"ffightu1", CPS_B_04, mapper_S224B },
+ {"ffightua", CPS_B_01, mapper_S224B },
+ {"ffightub", CPS_B_03, mapper_S224B }, // had 04 handwritten on the CPS_B chip, but clearly isn't.
+ {"ffightuc", CPS_B_05, mapper_S224B },
+ {"ffightj", CPS_B_04, mapper_S224B }, // wrong, this set uses S222B
+ {"ffightj1", CPS_B_01, mapper_S224B }, // wrong, this set uses S222B
+ {"ffightj2", CPS_B_02, mapper_S224B }, // wrong, this set uses S222B
+ {"ffightj3", CPS_B_05, mapper_S224B }, // wrong, this set uses S222B
+ {"ffightjh", CPS_B_01, mapper_S224B }, // wrong, ffightjh hack doesn't even use the S222B PAL, since replaced with a GAL.
+ {"1941", CPS_B_05, mapper_YI24B },
+ {"1941r1", CPS_B_05, mapper_YI24B },
+ {"1941u", CPS_B_05, mapper_YI24B },
+ {"1941j", CPS_B_05, mapper_YI24B }, // wrong, this set uses YI22B, still not dumped
+ {"unsquad", CPS_B_11, mapper_AR24B },
+ {"area88", CPS_B_11, mapper_AR22B }, // equivalent to AR24B
+ {"area88r", CPS_B_21_DEF, mapper_AR22B }, // wrong, this set uses ARA63B, still not dumped
+ {"mercs", CPS_B_12, mapper_O224B, 0x36, 0, 0x34 },
+ {"mercsu", CPS_B_12, mapper_O224B, 0x36, 0, 0x34 },
+ {"mercsur1", CPS_B_12, mapper_O224B, 0x36, 0, 0x34 },
+ {"mercsj", CPS_B_12, mapper_O224B, 0x36, 0, 0x34 }, // wrong, this set uses O222B, still not dumped
+ {"msword", CPS_B_13, mapper_MS24B },
+ {"mswordr1", CPS_B_13, mapper_MS24B },
+ {"mswordu", CPS_B_13, mapper_MS24B },
+ {"mswordj", CPS_B_13, mapper_MS24B }, // wrong, this set uses MS22B, dumped but equations still not added
+ {"mtwins", CPS_B_14, mapper_CK24B },
+ {"chikij", CPS_B_14, mapper_CK24B }, // wrong, this set uses CK22B, dumped but equations still not added
+ {"nemo", CPS_B_15, mapper_NM24B },
+ {"nemor1", CPS_B_15, mapper_NM24B },
+ {"nemoj", CPS_B_15, mapper_NM24B }, // wrong, this set uses NM22B, still not dumped
+ {"cawing", CPS_B_16, mapper_CA24B },
+ {"cawingr1", CPS_B_16, mapper_CA24B },
+ {"cawingu", CPS_B_16, mapper_CA24B },
+ {"cawingj", CPS_B_16, mapper_CA22B }, // equivalent to CA24B
+ {"cawingbl", CPS_B_16, mapper_CA22B }, // equivalent to CA24B
+ {"sf2", CPS_B_11, mapper_STF29, 0x36 },
+ {"sf2eb", CPS_B_17, mapper_STF29, 0x36 },
+ {"sf2ed", CPS_B_05, mapper_STF29, 0x36 },
+ {"sf2ee", CPS_B_18, mapper_STF29, 0x3c },
+ {"sf2ebbl", CPS_B_17, mapper_STF29, 0x36, 0, 0, 1 },
+ {"sf2ebbl2", CPS_B_17, mapper_STF29, 0x36, 0, 0, 1 },
+ {"sf2ebbl3", CPS_B_17, mapper_STF29, 0x36, 0, 0, 1 },
+ {"sf2stt", CPS_B_17, mapper_STF29, 0x36, 0, 0, 1 },
+ {"sf2rk", CPS_B_17, mapper_STF29, 0x36, 0, 0, 1 },
+ {"sf2ua", CPS_B_17, mapper_STF29, 0x36 },
+ {"sf2ub", CPS_B_17, mapper_STF29, 0x36 },
+ {"sf2uc", CPS_B_12, mapper_STF29, 0x36 },
+ {"sf2ud", CPS_B_05, mapper_STF29, 0x36 },
+ {"sf2ue", CPS_B_18, mapper_STF29, 0x3c },
+ {"sf2uf", CPS_B_15, mapper_STF29, 0x36 },
+ {"sf2ug", CPS_B_11, mapper_STF29, 0x36 },
+ {"sf2ui", CPS_B_14, mapper_STF29, 0x36 },
+ {"sf2uk", CPS_B_17, mapper_STF29, 0x36 },
+ {"sf2j", CPS_B_13, mapper_STF29, 0x36 },
+ {"sf2ja", CPS_B_17, mapper_STF29, 0x36 },
+ {"sf2jc", CPS_B_12, mapper_STF29, 0x36 },
+ {"sf2jf", CPS_B_15, mapper_STF29, 0x36 },
+ {"sf2jh", CPS_B_13, mapper_STF29, 0x36 },
+ {"sf2jl", CPS_B_17, mapper_STF29, 0x36 },
+ {"sf2qp1", CPS_B_17, mapper_STF29, 0x36 },
+ {"sf2thndr", CPS_B_17, mapper_STF29, 0x36 },
+
+ /* from here onwards the CPS-B board has suicide battery and multiply protection */
+
+ {"3wonders", CPS_B_21_BT1, mapper_RT24B },
+ {"3wondersr1", CPS_B_21_BT1, mapper_RT24B },
+ {"3wondersu", CPS_B_21_BT1, mapper_RT24B },
+ {"wonder3", CPS_B_21_BT1, mapper_RT22B }, // equivalent to RT24B
+ {"3wondersb", CPS_B_21_BT1, mapper_RT24B, 0x36, 0, 0, 0x88 }, // same as 3wonders except some registers are hard wired rather than written to
+ {"3wondersh", HACK_B_2, mapper_RT24B }, // one port is changed from 3wonders, and no protection
+ {"kod", CPS_B_21_BT2, mapper_KD29B, 0x36, 0, 0x34 },
+ {"kodr1", CPS_B_21_BT2, mapper_KD29B, 0x36, 0, 0x34 },
+ {"kodu", CPS_B_21_BT2, mapper_KD29B, 0x36, 0, 0x34 },
+ {"kodj", CPS_B_21_BT2, mapper_KD29B, 0x36, 0, 0x34 },
+ {"kodja", CPS_B_21_BT2, mapper_KD29B, 0x36, 0, 0x34 }, // wrong, this set uses KD22B, still not dumped
+ {"kodb", CPS_B_21_BT2, mapper_KD29B, 0x36, 0, 0x34 }, /* bootleg, doesn't use multiply protection */
+ {"captcomm", CPS_B_21_BT3, mapper_CC63B, 0x36, 0x38, 0x34 },
+ {"captcommr1", CPS_B_21_BT3, mapper_CC63B, 0x36, 0x38, 0x34 },
+ {"captcommu", CPS_B_21_BT3, mapper_CC63B, 0x36, 0x38, 0x34 },
+ {"captcommj", CPS_B_21_BT3, mapper_CC63B, 0x36, 0x38, 0x34 },
+ {"captcommjr1", CPS_B_21_BT3, mapper_CC63B, 0x36, 0x38, 0x34 },
+ {"captcommb", CPS_B_21_BT3, mapper_CC63B, 0x36, 0x38, 0x34, 3 },
+ {"knights", CPS_B_21_BT4, mapper_KR63B, 0x36, 0, 0x34 },
+ {"knightsu", CPS_B_21_BT4, mapper_KR63B, 0x36, 0, 0x34 },
+ {"knightsj", CPS_B_21_BT4, mapper_KR63B, 0x36, 0, 0x34 },
+ {"knightsja", CPS_B_21_BT4, mapper_KR63B, 0x36, 0, 0x34 }, // wrong, this set uses KR22B, still not dumped
+ //{"knightsb", CPS_B_21_BT4, mapper_KR63B, 0x36, 0, 0x34 }, // wrong, knightsb bootleg doesn't use the KR63B PAL
+ {"sf2ce", CPS_B_21_DEF, mapper_S9263B, 0x36 },
+ {"sf2ceea", CPS_B_21_DEF, mapper_S9263B, 0x36 },
+ {"sf2ceua", CPS_B_21_DEF, mapper_S9263B, 0x36 },
+ {"sf2ceub", CPS_B_21_DEF, mapper_S9263B, 0x36 },
+ {"sf2ceuc", CPS_B_21_DEF, mapper_S9263B, 0x36 },
+ {"sf2ceja", CPS_B_21_DEF, mapper_S9263B, 0x36 },
+ {"sf2cejb", CPS_B_21_DEF, mapper_S9263B, 0x36 },
+ {"sf2cejc", CPS_B_21_DEF, mapper_S9263B, 0x36 },
+ {"sf2bhh", CPS_B_21_DEF, mapper_S9263B, 0x36 },
+ {"sf2rb", CPS_B_21_DEF, mapper_S9263B, 0x36 },
+ {"sf2rb2", CPS_B_21_DEF, mapper_S9263B, 0x36 },
+ {"sf2rb3", CPS_B_21_DEF, mapper_S9263B, 0x36 },
+ {"sf2red", CPS_B_21_DEF, mapper_S9263B, 0x36 },
+ {"sf2v004", CPS_B_21_DEF, mapper_S9263B, 0x36 },
+ {"sf2acc", CPS_B_21_DEF, mapper_S9263B, 0x36 },
+ {"sf2ceblp", CPS_B_21_DEF, mapper_S9263B, 0x36 },
+ {"sf2cebltw", CPS_B_21_DEF, mapper_S9263B, 0x36 },
+ {"sf2acca", CPS_B_21_DEF, mapper_S9263B, 0x36 },
+ {"sf2accp2", CPS_B_21_DEF, mapper_S9263B, 0x36 },
+ {"sf2amf", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 1 }, // probably wrong but this set is not completely dumped anyway
+ {"sf2amf2", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 1 },
+ {"sf2dkot2", CPS_B_21_DEF, mapper_S9263B, 0x36 },
+ {"sf2m1", CPS_B_21_DEF, mapper_S9263B, 0x36 },
+ {"sf2m2", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 1 },
+ {"sf2m3", HACK_B_1, mapper_S9263B, 0, 0, 0, 2 },
+ {"sf2m4", HACK_B_1, mapper_S9263B, 0x36, 0, 0, 1 },
+ {"sf2m5", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 1 },
+ {"sf2m6", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 1 },
+ {"sf2m7", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 1 },
+ {"sf2m8", HACK_B_1, mapper_S9263B, 0, 0, 0, 2 },
+ {"sf2m9", CPS_B_21_DEF, mapper_S9263B, 0x36 },
+ {"sf2m10", HACK_B_1, mapper_S9263B, 0x36, 0, 0, 1 },
+ {"sf2dongb", CPS_B_21_DEF, mapper_S9263B, 0x36 },
+ {"sf2yyc", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 1 },
+ {"sf2koryu", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 1 },
+ {"sf2mdt", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 1 },
+ {"sf2mdta", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 1 },
+ {"sf2mdtb", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 1 },
+ {"sf2b", CPS_B_17, mapper_STF29, 0x36, 0, 0, 1 },
+ {"varth", CPS_B_04, mapper_VA63B }, /* CPSB test has been patched out (60=0008) register is also written to, possibly leftover from development */ // wrong, this set uses VA24B, dumped but equations still not added
+ {"varthb", CPS_B_04, mapper_VA63B, 0, 0, 0, 0x0F },
+ {"varthr1", CPS_B_04, mapper_VA63B }, /* CPSB test has been patched out (60=0008) register is also written to, possibly leftover from development */ // wrong, this set uses VA24B, dumped but equations still not added
+ {"varthu", CPS_B_04, mapper_VA63B }, /* CPSB test has been patched out (60=0008) register is also written to, possibly leftover from development */
+ {"varthj", CPS_B_21_BT5, mapper_VA22B }, /* CPSB test has been patched out (72=0001) register is also written to, possibly leftover from development */
+ {"varthjr", CPS_B_21_BT5, mapper_VA63B }, /* CPSB test has been patched out (72=0001) register is also written to, possibly leftover from development */
+ {"cworld2j", CPS_B_21_BT6, mapper_Q522B, 0x36, 0, 0x34 }, /* (ports 36, 34 probably leftover input code from another game) */
+ {"cworld2ja", CPS_B_21_DEF, mapper_Q522B }, // patched set, no battery, could be desuicided // wrong, this set uses Q529B, still not dumped
+ {"cworld2jb", CPS_B_21_BT6, mapper_Q522B, 0x36, 0, 0x34 }, // wrong, this set uses Q563B, still not dumped
+ {"wof", CPS_B_21_QS1, mapper_TK263B },
+ {"wofr1", CPS_B_21_DEF, mapper_TK263B }, // patched set coming from a desuicided board?
+ {"wofa", CPS_B_21_DEF, mapper_TK263B }, // patched set coming from a desuicided board?
+ {"wofu", CPS_B_21_QS1, mapper_TK263B },
+ {"wofj", CPS_B_21_QS1, mapper_TK263B },
+ {"wofhfh", CPS_B_21_DEF, mapper_TK263B, 0x36 }, /* Chinese bootleg */
+ {"dino", CPS_B_21_QS2, mapper_CD63B }, /* layer enable never used */
+ {"dinou", CPS_B_21_QS2, mapper_CD63B }, /* layer enable never used */
+ {"dinoj", CPS_B_21_QS2, mapper_CD63B }, /* layer enable never used */
+ {"dinopic", CPS_B_21_QS2, mapper_CD63B }, /* layer enable never used */
+ {"dinopic2", CPS_B_21_QS2, mapper_CD63B }, /* layer enable never used */
+ {"dinohunt", CPS_B_21_DEF, mapper_CD63B }, /* Chinese bootleg */
+ {"punisher", CPS_B_21_QS3, mapper_PS63B },
+ {"punisheru", CPS_B_21_QS3, mapper_PS63B },
+ {"punisherh", CPS_B_21_QS3, mapper_PS63B },
+ {"punisherj", CPS_B_21_QS3, mapper_PS63B },
+ {"punipic", CPS_B_21_QS3, mapper_PS63B },
+ {"punipic2", CPS_B_21_QS3, mapper_PS63B },
+ {"punipic3", CPS_B_21_QS3, mapper_PS63B },
+ {"punisherbz", CPS_B_21_DEF, mapper_PS63B }, /* Chinese bootleg */
+ {"slammast", CPS_B_21_QS4, mapper_MB63B },
+ {"slammastu", CPS_B_21_QS4, mapper_MB63B },
+ {"slampic", CPS_B_21_QS4, mapper_MB63B },
+ {"mbomberj", CPS_B_21_QS4, mapper_MB63B },
+ {"mbombrd", CPS_B_21_QS5, mapper_MB63B },
+ {"mbombrdj", CPS_B_21_QS5, mapper_MB63B },
+ {"sf2hf", CPS_B_21_DEF, mapper_S9263B, 0x36 },
+ {"sf2hfu", CPS_B_21_DEF, mapper_S9263B, 0x36 },
+ {"sf2hfj", CPS_B_21_DEF, mapper_S9263B, 0x36 },
+ {"qad", CPS_B_21_BT7, mapper_QD22B, 0x36 }, /* TODO: layer enable (port 36 probably leftover input code from another game) */
+ {"qadjr", CPS_B_21_DEF, mapper_QAD63B, 0x36, 0x38, 0x34 }, /* (ports 36, 38, 34 probably leftover input code from another game) */
+ {"qtono2j", CPS_B_21_DEF, mapper_TN2292, 0x36, 0x38, 0x34 }, /* (ports 36, 38, 34 probably leftover input code from another game) */
+ {"megaman", CPS_B_21_DEF, mapper_RCM63B },
+ {"megamana", CPS_B_21_DEF, mapper_RCM63B },
+ {"rockmanj", CPS_B_21_DEF, mapper_RCM63B },
+ {"pnickj", CPS_B_21_DEF, mapper_PKB10B },
+ {"pang3", CPS_B_21_DEF, mapper_pang3 }, /* EEPROM port is among the CPS registers (handled by DRIVER_INIT) */ // should use one of these three CP1B1F,CP1B8K,CP1B9KA
+ {"pang3r1", CPS_B_21_DEF, mapper_pang3 }, /* EEPROM port is among the CPS registers (handled by DRIVER_INIT) */ // should use one of these three CP1B1F,CP1B8K,CP1B9K
+ {"pang3j", CPS_B_21_DEF, mapper_pang3 }, /* EEPROM port is among the CPS registers (handled by DRIVER_INIT) */ // should use one of these three CP1B1F,CP1B8K,CP1B9K
+ {"pang3b", CPS_B_21_DEF, mapper_pang3 }, /* EEPROM port is among the CPS registers (handled by DRIVER_INIT) */ // should use one of these three CP1B1F,CP1B8K,CP1B9K
+ {"ganbare", CPS_B_21_DEF, mapper_sfzch }, // wrong, this set uses GBPR2, dumped but equations still not added
+
+ /* CPS Changer */
+
+ {"sfach", CPS_B_21_DEF, mapper_sfzch }, // wrong, this set uses an unknown PAL, still not dumped
+ {"sfzbch", CPS_B_21_DEF, mapper_sfzch }, // wrong, this set uses an unknown PAL, still not dumped
+ {"sfzch", CPS_B_21_DEF, mapper_sfzch }, // wrong, this set uses an unknown PAL, still not dumped
+ {"wofch", CPS_B_21_DEF, mapper_TK263B },
+
+ /* CPS2 games */
+
+ {"cps2", CPS_B_21_DEF, mapper_cps2 },
+
+ /* CPS1 board + extra support boards */
+
+ {"kenseim", CPS_B_21_DEF, mapper_KNM10B }, // wrong, need to convert equations from PAL
+
+// HBMAME
+ {"captcocc", CPS_B_21_BT3, mapper_CC63B, 0x36, 0x38, 0x34 }, // nw
+ {"captcovs", CPS_B_21_BT3, mapper_CC63B, 0x36, 0x38, 0x34 }, // nw
+ {"dinosf2", CPS_B_21_QS2, mapper_CD63B }, // nw
+ {"kodd", CPS_B_21_DEF, mapper_KD29B, 0x36, 0, 0x34 }, // nw
+ {"kodud", CPS_B_21_DEF, mapper_KD29B, 0x36, 0, 0x34 }, // nw
+#if 0
+ {"3wondrud", CPS_B_21_DEF, mapper_RT24B }, //works
+ {"captcoud", CPS_B_21_DEF, mapper_CC63B, 0x36, 0x38, 0x34 }, //works
+ {"captcomc", CPS_B_21_BT3, mapper_CC63B, 0x36, 0x38, 0x34 }, //works
+ {"captcomh", CPS_B_21_BT3, mapper_CC63B, 0x36, 0x38, 0x34 }, //works
+ {"captcommb2", CPS_B_21_BT3, mapper_CC63B, 0x36, 0x38, 0x34 }, //works
+ //{"cawingb", CPS_B_16, mapper_CA24B, 0, 0, 0, 0x8F }, // no sprites here, ok in fcrash.cpp
+ //{"cawingb", CPS_B_16, mapper_CA24B, 0, 0, 0, 0x8F }, // no sprites here, ok in fcrash.cpp
+ //{"knightsa", CPS_B_21_BT4, mapper_KR63B, 0x36, 0, 0x34 }, // a rom is unobtainable
+ {"cps1demo", CPS_B_04, mapper_demo, 0, 0, 0, 0x80 }, //works
+ {"cps1frog", CPS_B_04, mapper_frog, 0, 0, 0, 0x80 }, //works
+ {"cps1test", CPS_B_21_DEF, mapper_S9263B, 0x36 }, //works
+ {"cps1testa", CPS_B_21_DEF, mapper_RCM63B }, //works
+ {"daimakb", HACK_H_5, mapper_DM22A }, //works
+ {"dino08h2", CPS_B_21_QS2, mapper_CD63B }, //works
+ {"dino08h3", CPS_B_21_QS2, mapper_CD63B }, //works
+ {"dino08hp", CPS_B_21_QS2, mapper_CD63B }, //works
+ {"dinob", CPS_B_21_QS2, mapper_CD63B, 0, 0, 0, 0x0F }, //works
+ {"dinobt", CPS_B_21_QS2, mapper_CD63B }, //works
+ {"dinobtpp", CPS_B_21_QS2, mapper_CD63B }, //works
+ {"dinocgba", CPS_B_21_QS2, mapper_CD63B }, //works
+ {"dinocgbb", CPS_B_21_QS2, mapper_CD63B }, //works
+ {"dinocgbc", CPS_B_21_QS2, mapper_CD63B }, //works
+ {"dinoeh", CPS_B_21_QS2, mapper_CD63B }, //works
+ {"dinoex", CPS_B_21_DEF, mapper_CD63B }, //works
+ {"dinoh", CPS_B_21_DEF, mapper_CD63B, 0x36 }, //works
+ {"dinoha", CPS_B_21_DEF, mapper_CD63B, 0x36 }, //works
+ {"dinohb", CPS_B_21_QS2, mapper_CD63B, 0, 0, 0, 0x0F }, //works
+ {"dinohp", CPS_B_21_QS2, mapper_CD63B }, //works
+ {"dinohx", CPS_B_21_DEF, mapper_CD63B, 0x36 }, //works
+ {"dinojp", CPS_B_21_QS2, mapper_CD63B }, //works
+ {"dinorp", CPS_B_21_QS2, mapper_CD63B }, //works
+ {"dinoslice", CPS_B_21_QS2, mapper_CD63B }, //works
+ {"dinouphp", CPS_B_21_QS2, mapper_CD63B }, //works
+ {"dinoz", CPS_B_21_QS2, mapper_CD63B }, //works
+ {"ffightb", CPS_B_01, mapper_S224B }, //works
+ {"knight21", CPS_B_21_BT4, mapper_KR63B, 0x36, 0, 0x34 }, //works
+ //{"knightsa", CPS_B_21_BT4, mapper_KR63B, 0x36, 0, 0x34 }, // a rom is unobtainable
+ {"knightsb2", HACK_H_6, mapper_KR63B, 0x36, 0, 0x34, 0x44 }, //works
+ {"knightsh", CPS_B_21_DEF, mapper_KR63B, 0x36, 0, 0x34 }, //works (intro screen is crap)
+ {"knightsha", HACK_H_7, mapper_KR63B, 0x36, 0, 0x34 }, //works
+ {"knightsjb", CPS_B_21_DEF, mapper_KR63B, 0x36, 0, 0x34 }, //works
+ {"knightsro", CPS_B_21_BT4, mapper_KR63B, 0x36, 0, 0x34 }, //works
+ {"knightud", CPS_B_21_DEF, mapper_KR63B, 0x36, 0, 0x34 }, //works
+ {"kodh", CPS_B_21_DEF, mapper_KD29B, 0x36, 0, 0x34 }, //works
+ {"kodsp", CPS_B_21_BT2, mapper_KD29B, 0x36, 0, 0x34 }, //works
+ {"pnicku", CPS_B_21_DEF, mapper_PKB10B }, //works
+ {"punisherb", CPS_B_21_QS3, mapper_PS63B, 0, 0, 0, 0x0E }, //works
+ {"punisherf", CPS_B_21_QS3, mapper_PS63B }, //works
+ {"punisherje1", CPS_B_21_QS3, mapper_PS63B }, //works
+ {"punisherjh", CPS_B_21_QS3, mapper_PS63B }, //works
+ {"punisherjh1", CPS_B_21_QS3, mapper_PS63B }, //works
+ {"punisherjha", CPS_B_21_QS3, mapper_PS63B }, //works
+ {"punisherud1", CPS_B_21_DEF, mapper_PS63B }, //works
+ {"punisherud2", CPS_B_21_DEF, mapper_PS63B }, //works
+ {"sf2bhj", CPS_B_12, mapper_STF29, 0x36 }, //works
+ {"sf2c", CPS_B_13, mapper_STF29, 0x36 }, //works
+ {"sf2cebr", CPS_B_21_DEF, mapper_S9263B, 0x36 }, //works
+ {"sf2ced", CPS_B_21_DEF, mapper_S9263B, 0x36 }, //works
+ {"sf2ceda", CPS_B_21_DEF, mapper_S9263B, 0x36 }, //works
+ {"sf2ceh", CPS_B_21_DEF, mapper_S9263B, 0x36 }, //works
+ {"sf2cehk", CPS_B_21_DEF, mapper_S9263B, 0x36 }, //works
+ {"sf2cehp", CPS_B_21_DEF, mapper_S9263B, 0x36 }, //works
+ {"sf2cejem", CPS_B_21_DEF, mapper_S9263B, 0x36 }, //works
+ {"sf2koryuh", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 0x41 }, //works
+ {"sf2h9", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 0x41 }, //works
+ {"sf2h10", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 0x41 }, //works
+ {"sf2h11", HACK_B_1, mapper_S9263B, 0x36, 0, 0, 0x41 }, //works
+ {"sf2h12", HACK_B_1, mapper_S9263B, 0x36, 0, 0, 0x41 }, //works
+ {"sf2h13", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 0x41 }, //works
+ {"sf2pun", CPS_B_21_DEF, mapper_S9263B, 0x36 }, //works
+ {"sf2sl73a", CPS_B_21_DEF, mapper_S9263B, 0x36 }, //works
+ {"sf2th", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 0x41 }, //works
+ {"sf2tha", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 0x41 }, //works
+ {"sf2tlona", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 0x41 }, //works
+ {"sf2tlonb", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 0x41 }, //works
+ {"sf2tlonc", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 0x41 }, //works
+ {"sf2turyu", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 0x41 }, //works
+ {"sf2yyc3d5", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 0x41 }, //works
+ {"sf2yyc3g", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 0x41 }, //works
+ {"sf2yyc6", CPS_B_21_DEF, mapper_S9263B, 0x36, 0, 0, 0x41 }, //works
+ {"sk2h1", HACK_H_2, mapper_TK263B, 0, 0, 0, 0x8F }, //works, priorities
+ {"sk2h1q", HACK_H_2, mapper_TK263B, 0, 0, 0, 0x8F }, //works, priorities
+ {"sk2h2", HACK_H_2, mapper_TK263B, 0, 0, 0, 0x8F }, //works, priorities
+ {"sk2h2q", HACK_H_2, mapper_TK263B, 0, 0, 0, 0x8F }, //works, priorities
+ {"sk2h3", HACK_H_2, mapper_TK263B, 0, 0, 0, 0x8F }, //works, priorities
+ {"sk2h4q", HACK_H_2, mapper_TK263B, 0, 0, 0, 0x8F }, //works, priorities
+ {"sk2h5q", HACK_H_2, mapper_TK263B, 0, 0, 0, 0x8F }, //works, priorities
+ {"sk2h6q", HACK_H_2, mapper_TK263B, 0, 0, 0, 0x8F }, //works, priorities
+ {"sk2h11", CPS_B_21_DEF, mapper_TK263B }, //works
+ {"sk2h12", CPS_B_21_DEF, mapper_TK263B }, //works
+ {"sk2h13", CPS_B_21_DEF, mapper_TK263B }, //works
+ {"sk2h14", CPS_B_21_DEF, mapper_TK263B }, //works
+ {"sk2h15", CPS_B_21_DEF, mapper_TK263B }, //works
+ {"sk2h16", CPS_B_21_DEF, mapper_TK263B }, //works
+ {"sk2h21", CPS_B_21_DEF, mapper_TK263B, 0x36 }, //works
+ {"sk2h22", HACK_H_2, mapper_TK263B, 0x36, 0, 0, 0x8F }, //works, priorities
+ {"sk2h31", HACK_H_2, mapper_TK263B, 0x36, 0, 0, 0x8F }, //works, priorities
+ {"sk2h31q", HACK_H_2, mapper_TK263B, 0x36, 0, 0, 0x8F }, //works, priorities
+ {"sk2h32", HACK_H_2, mapper_TK263B, 0x36, 0, 0, 0x8F }, //works, priorities
+ {"sk2h32q", HACK_H_2, mapper_TK263B, 0x36, 0, 0, 0x8F }, //works, priorities
+ {"sk2h33", HACK_H_2, mapper_TK263B, 0x36, 0, 0, 0x8F }, //works, priorities
+ {"sk2h33q", HACK_H_2, mapper_TK263B, 0x36, 0, 0, 0x8F }, //works, priorities
+ {"sk2h34", HACK_H_2, mapper_TK263B, 0x36, 0, 0, 0x8F }, //works, priorities
+ {"sk2h34q", HACK_H_2, mapper_TK263B, 0x36, 0, 0, 0x8F }, //works, priorities
+ {"sk2h35", CPS_B_21_DEF, mapper_TK263B, 0x36 }, //works
+ {"sk3p1", CPS_B_21_DEF, mapper_sfzch }, //works
+ {"sk3p2", CPS_B_21_DEF, mapper_TK263B }, //works
+ {"sk3p3", CPS_B_21_DEF, mapper_TK263B }, //works
+ {"slammastud", CPS_B_21_DEF, mapper_MB63B }, //works
+ {"stridergf", CPS_B_01, mapper_ST24M1 }, //works
+ {"stridergh", CPS_B_01, mapper_ST24M1 }, //works
+ {"tk2c1", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2c2", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2c3", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2c4", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2c5", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2c6", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2c7", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2c8", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2c9", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2c10", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2c11", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2c12", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2c13", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2c14", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2c15", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2c16", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2c17", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2c18", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2c19", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2c20", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2c21", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2c22", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2c23", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2h1", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2h2", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2h3", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2h4", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2h5", CPS_B_21_QS1, mapper_TK263B }, // problem with chinese language roms
+ {"tk2h6", CPS_B_21_DEF, mapper_TK263B }, //works
+ {"tk2h7", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2h8", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2h9", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2h10", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2h11", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2h12", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2h13", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2h14", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2h15", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2h16", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2h17", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2h18", CPS_B_21_QS1, mapper_TK263B }, //works
+ {"tk2p2", CPS_B_21_DEF, mapper_sfzch }, //works
+ {"tk2p3", CPS_B_21_DEF, mapper_TK263B }, //works
+ {"varthb", CPS_B_04, mapper_VA63B, 0, 0, 0, 0x0F }, //works
+ {"wofb", CPS_B_21_DEF, mapper_TK263B }, //works
+ {"wofes", CPS_B_21_DEF, mapper_TK263B }, //works
+ {"woffr", CPS_B_21_DEF, mapper_sfzch }, //works
+ {"wofr1h", CPS_B_21_DEF, mapper_TK263B }, //works
+ {"wofsf2", CPS_B_21_QS1, mapper_TK263B, 0x36 }, //works
+ {"wofud", CPS_B_21_DEF, mapper_TK263B }, //works
+#endif
+ // HBMAME end
+ // PSMame Build Plus
+ {"captcomms01", CPS_B_21_BT3, mapper_CC63B, 0x36, 0x38, 0x34 },
+ {"captcomms02", CPS_B_21_BT3, mapper_CC63B, 0x36, 0x38, 0x34 },
+ {"captcomms03", CPS_B_21_BT3, mapper_CC63B, 0x36, 0x38, 0x34 },
+ {"captcomms04", CPS_B_21_BT3, mapper_CC63B, 0x36, 0x38, 0x34 },
+ {"captcomms05", CPS_B_21_BT3, mapper_CC63B, 0x36, 0x38, 0x34 },
+ {"dinos01", CPS_B_21_QS2, mapper_CD63B },
+ {"dinos02", CPS_B_21_QS2, mapper_CD63B },
+ {"dinos03", CPS_B_21_QS2, mapper_CD63B },
+ {"dinos04", CPS_B_21_QS2, mapper_CD63B },
+ {"dinos05", CPS_B_21_QS2, mapper_CD63B },
+ {"dinos06", CPS_B_21_QS2, mapper_CD63B },
+ {"dinos07", CPS_B_21_QS2, mapper_CD63B },
+ {"dinos08", CPS_B_21_QS2, mapper_CD63B },
+ {"dinos09", CPS_B_21_QS2, mapper_CD63B },
+ {"dinos10", CPS_B_21_QS2, mapper_CD63B },
+ {"dinos11", CPS_B_21_QS2, mapper_CD63B },
+ {"dinos12", CPS_B_21_QS2, mapper_CD63B },
+ {"dinos13", CPS_B_21_QS2, mapper_CD63B },
+ {"dinos14", CPS_B_21_QS2, mapper_CD63B },
+ {"dinos15", CPS_B_21_QS2, mapper_CD63B },
+ {"dinos16", CPS_B_21_QS2, mapper_CD63B },
+ {"dinos17", CPS_B_21_QS2, mapper_CD63B },
+ {"dinos18", CPS_B_21_QS2, mapper_CD63B },
+ {"dinos19", CPS_B_21_QS2, mapper_CD63B },
+ {"dinos20", CPS_B_21_QS2, mapper_CD63B },
+ {"dinos21", CPS_B_21_QS2, mapper_CD63B },
+ {"dinos22", CPS_B_21_QS2, mapper_CD63B },
+ {"dinos23", CPS_B_21_QS2, mapper_CD63B },
+ {"dinos24", CPS_B_21_QS2, mapper_CD63B },
+ {"dinos25", CPS_B_21_QS2, mapper_CD63B },
+ {"dinos26", CPS_B_21_QS2, mapper_CD63B },
+ {"dinos27", CPS_B_21_QS2, mapper_CD63B },
+ {"dinos28", CPS_B_21_QS2, mapper_CD63B },
+ {"dinos29", CPS_B_21_QS2, mapper_CD63B },
+ {"dinos30", CPS_B_21_QS2, mapper_CD63B },
+ {"dinos31", CPS_B_21_QS2, mapper_CD63B },
+ {"dinos32", CPS_B_21_QS2, mapper_CD63B },
+ {"dinos33", CPS_B_21_QS2, mapper_CD63B },
+ {"dinos34", CPS_B_21_QS2, mapper_CD63B },
+ {"dinos35", CPS_B_21_QS2, mapper_CD63B },
+ {"dinos36", CPS_B_21_QS2, mapper_CD63B },
+ {"dinos37", CPS_B_21_QS2, mapper_CD63B },
+ {"dinos38", CPS_B_21_QS2, mapper_CD63B },
+ {"dinos39", CPS_B_21_QS2, mapper_CD63B },
+ {"dinos40", CPS_B_21_QS2, mapper_CD63B },
+ {"dinos41", CPS_B_21_QS2, mapper_CD63B },
+ {"dinos42", CPS_B_21_QS2, mapper_CD63B },
+ {"dinos43", CPS_B_21_QS2, mapper_CD63B },
+ {"dinos44", CPS_B_21_QS2, mapper_CD63B },
+ {"dinos45", CPS_B_21_QS2, mapper_CD63B },
+ {"dinos46", CPS_B_21_QS2, mapper_CD63B },
+ {"dinos47", CPS_B_21_QS2, mapper_CD63B },
+ {"dinos48", CPS_B_21_QS2, mapper_CD63B },
+ {"dinos49", CPS_B_21_QS2, mapper_CD63B },
+ {"dinos50", CPS_B_21_QS2, mapper_CD63B },
+ {"dinos51", CPS_B_21_QS2, mapper_CD63B },
+ {"dinos52", CPS_B_21_QS2, mapper_CD63B },
+ {"dinos53", CPS_B_21_QS2, mapper_CD63B },
+ {"dinos54", CPS_B_21_QS2, mapper_CD63B },
+ {"dinos55", CPS_B_21_QS2, mapper_CD63B },
+ {"wofs01", CPS_B_21_DEF, mapper_TK263B },
+ {"wofs02", CPS_B_21_DEF, mapper_TK263B },
+ {"wofs03", CPS_B_21_DEF, mapper_TK263B },
+ {"wofs04", CPS_B_21_QS1, mapper_TK263B },
+ {"wofs05", CPS_B_21_DEF, mapper_TK263B },
+ {"wofs06", CPS_B_21_QS1, mapper_TK263B },
+ {"wofs07", CPS_B_21_QS1, mapper_TK263B },
+ {"wofs08", CPS_B_21_QS1, mapper_TK263B },
+ {"wofs09", CPS_B_21_QS1, mapper_TK263B },
+ {"wofs10", CPS_B_21_QS1, mapper_TK263B },
+ {"wofs11", CPS_B_21_QS1, mapper_TK263B },
+ {"wofs12", CPS_B_21_DEF, mapper_TK263B },
+ {"wofs13", CPS_B_21_QS1, mapper_TK263B },
+ {"wofs14", CPS_B_21_QS1, mapper_TK263B },
+ {"wofs15", CPS_B_21_QS1, mapper_TK263B },
+ {"wofs16", CPS_B_21_QS1, mapper_TK263B },
+ {"wofs17", CPS_B_21_DEF, mapper_TK263B },
+ {"wofs18", CPS_B_21_QS1, mapper_TK263B },
+ {"wofs19", CPS_B_21_QS1, mapper_TK263B },
+ {"wofs20", CPS_B_21_QS1, mapper_TK263B },
+ {"wofs21", CPS_B_21_QS1, mapper_TK263B },
+ {"wofs22", CPS_B_21_QS1, mapper_TK263B },
+ {"wofs23", CPS_B_21_QS1, mapper_TK263B },
+ {"wofs24", CPS_B_21_QS1, mapper_TK263B },
+ {"wofs25", CPS_B_21_QS1, mapper_TK263B },
+ {"wofs26", CPS_B_21_QS1, mapper_TK263B },
+ {"wofs27", CPS_B_21_QS1, mapper_TK263B },
+ {"wofs28", CPS_B_21_DEF, mapper_TK263B },
+ {"wofs29", CPS_B_21_QS1, mapper_TK263B },
+ {"wofs30", CPS_B_21_QS1, mapper_TK263B },
+ {"wofs31", CPS_B_21_QS1, mapper_TK263B },
+ {"wofs32", CPS_B_21_QS1, mapper_TK263B },
+ {"wofs33", CPS_B_21_QS1, mapper_TK263B },
+ {"wofs34", CPS_B_21_QS1, mapper_TK263B },
+ {"wofs35", CPS_B_21_QS1, mapper_TK263B },
+ {"wofs36", CPS_B_21_DEF, mapper_TK263B },
+ {"wofs37", CPS_B_21_DEF, mapper_TK263B },
+ {"wofs38", CPS_B_21_DEF, mapper_TK263B },
+ {"wofhl01", CPS_B_21_DEF, mapper_sfzch },
+ {"wofhl02", CPS_B_21_DEF, mapper_sfzch },
+ {"wofh01", HACK_H_2, mapper_TK263B, 0, 0, 0, 0x8F },
+ {"wofh02", HACK_H_2, mapper_TK263B, 0, 0, 0, 0x8F },
+ {"wofh03", HACK_H_2, mapper_TK263B, 0, 0, 0, 0x8F },
+ {"punishers01", CPS_B_21_QS3, mapper_PS63B },
+ {"punishers02", CPS_B_21_QS3, mapper_PS63B },
+ {"knightsh01", CPS_B_21_BT4, mapper_KR63B, 0x36, 0, 0x34 },
+ {"knightsh02", CPS_B_21_BT4, mapper_KR63B, 0x36, 0, 0x34 },
+ {"koduhc01", CPS_B_21_BT2, mapper_KD29B, 0x36, 0, 0x34 },
+ //PSMame Build Plus End
+ {nullptr} /* End of table */
+};
+
+
+
+
+/* Offset of each palette entry */
+#define cps1_palette_entries (32*6) /* Number colour schemes in palette */
+
+
+/* CPS-A registers */
+#define CPS1_OBJ_BASE (0x00/2) /* Base address of objects */
+#define CPS1_SCROLL1_BASE (0x02/2) /* Base address of scroll 1 */
+#define CPS1_SCROLL2_BASE (0x04/2) /* Base address of scroll 2 */
+#define CPS1_SCROLL3_BASE (0x06/2) /* Base address of scroll 3 */
+#define CPS1_OTHER_BASE (0x08/2) /* Base address of other video */
+#define CPS1_PALETTE_BASE (0x0a/2) /* Base address of palette */
+#define CPS1_SCROLL1_SCROLLX (0x0c/2) /* Scroll 1 X */
+#define CPS1_SCROLL1_SCROLLY (0x0e/2) /* Scroll 1 Y */
+#define CPS1_SCROLL2_SCROLLX (0x10/2) /* Scroll 2 X */
+#define CPS1_SCROLL2_SCROLLY (0x12/2) /* Scroll 2 Y */
+#define CPS1_SCROLL3_SCROLLX (0x14/2) /* Scroll 3 X */
+#define CPS1_SCROLL3_SCROLLY (0x16/2) /* Scroll 3 Y */
+#define CPS1_STARS1_SCROLLX (0x18/2) /* Stars 1 X */
+#define CPS1_STARS1_SCROLLY (0x1a/2) /* Stars 1 Y */
+#define CPS1_STARS2_SCROLLX (0x1c/2) /* Stars 2 X */
+#define CPS1_STARS2_SCROLLY (0x1e/2) /* Stars 2 Y */
+#define CPS1_ROWSCROLL_OFFS (0x20/2) /* base of row scroll offsets in other RAM */
+#define CPS1_VIDEOCONTROL (0x22/2) /* flip screen, rowscroll enable */
+
+
+/*
+CPS1 VIDEO RENDERER
+
+*/
+#define CPS2_OBJ_BASE 0x00 /* Unknown (not base address of objects). Could be bass address of bank used when object swap bit set? */
+#define CPS2_OBJ_UK1 0x02 /* Unknown (nearly always 0x807d, or 0x808e when screen flipped) */
+#define CPS2_OBJ_PRI 0x04 /* Layers priorities */
+#define CPS2_OBJ_UK2 0x06 /* Unknown (usually 0x0000, 0x1101 in ssf2, 0x0001 in 19XX) */
+#define CPS2_OBJ_XOFFS 0x08 /* X offset (usually 0x0040) */
+#define CPS2_OBJ_YOFFS 0x0a /* Y offset (always 0x0010) */
+
+
+MACHINE_RESET_MEMBER(cps_state,cps)
+{
+ const char *gamename = machine().system().name;
+ u8 tt = 0;
+ u8 *rom = 0;
+ if (memregion("control"))
+ {
+ rom = memregion("control")->base();
+ tt = rom[0x00];
+ }
+ if (tt == 0x55)
+ {
+ tt = 1;
+ m_cpsb_addr = rom[tt++];
+ m_cpsb_value = rom[tt] | (rom[tt+1] << 8); tt += 2;
+ m_mult_factor1 = rom[tt++];
+ m_mult_factor2 = rom[tt++];
+ m_mult_result_lo = rom[tt++];
+ m_mult_result_hi = rom[tt++];
+ m_layer_control = rom[tt++];
+ m_priority[0] = rom[tt++];
+ m_priority[1] = rom[tt++];
+ m_priority[2] = rom[tt++];
+ m_priority[3] = rom[tt++];
+ m_palette_control = rom[tt++];
+ m_layer_enable_mask[0] = rom[tt++];
+ m_layer_enable_mask[1] = rom[tt++];
+ m_layer_enable_mask[2] = rom[tt++];
+ m_layer_enable_mask[3] = rom[tt++];
+ m_layer_enable_mask[4] = rom[tt++];
+ m_in2_addr = rom[tt++];
+ m_in3_addr = rom[tt++];
+ m_out2_addr = rom[tt++];
+ m_bootleg_kludge = rom[tt] | (rom[tt+1] << 8); tt += 2;
+ m_scrollx1 = rom[tt++];
+ m_scrollx2 = rom[tt++];
+ m_scrollx3 = rom[tt++];
+ m_bank_sizes[0] = rom[tt] | (rom[tt+1] << 8) | (rom[tt+2] << 16); tt += 3;
+ m_bank_sizes[1] = rom[tt] | (rom[tt+1] << 8) | (rom[tt+2] << 16); tt += 3;
+ m_bank_sizes[2] = rom[tt] | (rom[tt+1] << 8) | (rom[tt+2] << 16); tt += 3;
+ m_bank_sizes[3] = rom[tt] | (rom[tt+1] << 8) | (rom[tt+2] << 16); tt += 3;
+
+ for (u8 i = 0; i < 8; i++)
+ {
+ m_bank_type[i*4] = rom[tt] & 0x1f;
+ m_bank_type[i*4+1] = rom[tt+1] | (rom[tt+2] << 8) | (rom[tt+3] << 16);
+ m_bank_type[i*4+2] = rom[tt+4] | (rom[tt+5] << 8) | (rom[tt+6] << 16);
+ m_bank_type[i*4+3] = rom[tt] >> 6;
+ tt += 7;
+ }
+ }
+ else
+ {
+ const struct CPS1config *pCFG = &cps1_config_table[0];
+ while (pCFG->name)
+ {
+ if (strcmp(pCFG->name, gamename) == 0)
+ break;
+
+ pCFG++;
+ }
+
+ m_game_config = pCFG;
+
+ if (!m_game_config->name)
+ {
+ gamename = "cps2";
+ pCFG = &cps1_config_table[0];
+
+ while(pCFG->name)
+ {
+ if (strcmp(pCFG->name, gamename) == 0)
+ break;
+
+ pCFG++;
+ }
+
+ m_game_config = pCFG;
+ }
+
+ // convert legacy to new
+ m_cpsb_addr = m_game_config->cpsb_addr;
+ m_cpsb_value = m_game_config->cpsb_value;
+ m_mult_factor1 = m_game_config->mult_factor1;
+ m_mult_factor2 = m_game_config->mult_factor2;
+ m_mult_result_lo = m_game_config->mult_result_lo;
+ m_mult_result_hi = m_game_config->mult_result_hi;
+ m_layer_control = m_game_config->layer_control;
+ m_palette_control = m_game_config->palette_control;
+ m_in2_addr = m_game_config->in2_addr;
+ m_in3_addr = m_game_config->in3_addr;
+ m_out2_addr = m_game_config->out2_addr;
+ m_bootleg_kludge = m_game_config->bootleg_kludge;
+
+ for (u8 i = 0; i < 4; i++)
+ {
+ m_priority[i] = m_game_config->priority[i];
+ m_layer_enable_mask[i] = m_game_config->layer_enable_mask[i];
+ m_bank_sizes[i] = m_game_config->bank_sizes[i];
+ }
+ m_layer_enable_mask[4] = m_game_config->layer_enable_mask[4];
+
+ for (u8 i = 0; i < 32; i++)
+ m_bank_type[i] = 0;
+ const struct gfx_range *range = m_game_config->bank_mapper;
+ u8 tu = 0;
+ while ((range->type) && (tu < 32))
+ {
+ m_bank_type[tu++] = range->type;
+ m_bank_type[tu++] = range->start;
+ m_bank_type[tu++] = range->end;
+ m_bank_type[tu++] = range->bank;
+ ++range;
+ }
+ }
+#if 0
+ if (strcmp(gamename, "sf2accp2") == 0)
+ {
+ /* Patch out a odd branch which would be incorrectly interpreted
+ by the cpu core as a 32-bit branch. This branch would make the
+ game crash (address error, since it would branch to an odd address)
+ if location 180ca6 (outside ROM space) isn't 0. Protection check? */
+ uint16_t *rom = (uint16_t *)memregion("maincpu")->base();
+ rom[0x11756 / 2] = 0x4e71;
+ }
+ else if (strcmp(gamename, "ghouls") == 0)
+ {
+ /* Patch out self-test... it takes forever */
+ uint16_t *rom = (uint16_t *)memregion("maincpu")->base();
+ rom[0x61964 / 2] = 0x4ef9;
+ rom[0x61966 / 2] = 0x0000;
+ rom[0x61968 / 2] = 0x0400;
+ }
+#endif
+#if WRITE_FILE
+ // Write the config to a file
+ FILE *fp;
+ fp = fopen(gamename, "wb");
+ fprintf(fp, "%s", "U");
+ fprintf(fp, "%c", m_cpsb_addr);
+ fprintf(fp, "%c%c", m_cpsb_value&0xff, (m_cpsb_value >> 8) & 0xff);
+ fprintf(fp, "%c", m_mult_factor1);
+ fprintf(fp, "%c", m_mult_factor2);
+ fprintf(fp, "%c", m_mult_result_lo);
+ fprintf(fp, "%c", m_mult_result_hi);
+ fprintf(fp, "%c", m_layer_control);
+ fprintf(fp, "%c", m_priority[0]);
+ fprintf(fp, "%c", m_priority[1]);
+ fprintf(fp, "%c", m_priority[2]);
+ fprintf(fp, "%c", m_priority[3]);
+ fprintf(fp, "%c", m_palette_control);
+ fprintf(fp, "%c", m_layer_enable_mask[0]);
+ fprintf(fp, "%c", m_layer_enable_mask[1]);
+ fprintf(fp, "%c", m_layer_enable_mask[2]);
+ fprintf(fp, "%c", m_layer_enable_mask[3]);
+ fprintf(fp, "%c", m_layer_enable_mask[4]);
+ fprintf(fp, "%c", m_in2_addr);
+ fprintf(fp, "%c", m_in3_addr);
+ fprintf(fp, "%c", m_out2_addr);
+ fprintf(fp, "%c%c", m_bootleg_kludge&0xff, (m_bootleg_kludge >> 8) & 0xff);
+ u8 scroll1x = 0, scroll2x = 0, scroll3x = 0;
+ switch (m_bootleg_kludge&0x0f)
+ {
+ case 0x01:
+ scroll1x = 0x8c;
+ scroll2x = 0x8e;
+ scroll3x = 0x90;
+ break;
+ case 0x02:
+ scroll1x = 0x8c;
+ scroll2x = 0x90;
+ scroll3x = 0x90;
+ break;
+ case 0x03:
+ scroll1x = 0x88;
+ scroll2x = 0x8b;
+ scroll3x = 0x8c;
+ break;
+ case 0x08:
+ scroll1x = 0x04;
+ scroll2x = 0x06;
+ scroll3x = 0x0a;
+ break;
+ case 0x0E:
+ scroll1x = 0xc6;
+ scroll2x = 0xc0;
+ scroll3x = 0xc6;
+ break;
+ case 0x0F:
+ scroll1x = 0xc0;
+ scroll2x = 0xc0;
+ scroll3x = 0xc0;
+ }
+ fprintf(fp, "%c%c%c", scroll1x, scroll2x, scroll3x);
+ fprintf(fp, "%c%c%c", m_bank_sizes[0]&0xff, (m_bank_sizes[0] >> 8)&0xff, m_bank_sizes[0] >> 16);
+ fprintf(fp, "%c%c%c", m_bank_sizes[1]&0xff, (m_bank_sizes[1] >> 8)&0xff, m_bank_sizes[1] >> 16);
+ fprintf(fp, "%c%c%c", m_bank_sizes[2]&0xff, (m_bank_sizes[2] >> 8)&0xff, m_bank_sizes[2] >> 16);
+ fprintf(fp, "%c%c%c", m_bank_sizes[3]&0xff, (m_bank_sizes[3] >> 8)&0xff, m_bank_sizes[3] >> 16);
+
+ for (u8 i = 0; i < 8; i++)
+ {
+ fprintf(fp, "%c", m_bank_type[i*4] | (m_bank_type[i*4+3] << 6));
+ fprintf(fp, "%c%c%c", m_bank_type[i*4+1] & 0xff, (m_bank_type[i*4+1] >> 8)&0xff, m_bank_type[i*4+1] >> 16);
+ fprintf(fp, "%c%c%c", m_bank_type[i*4+2] & 0xff, (m_bank_type[i*4+2] >> 8)&0xff, m_bank_type[i*4+2] >> 16);
+ printf("%X,%X,%X,%X\n",m_bank_type[i*4],m_bank_type[i*4+1],m_bank_type[i*4+2],m_bank_type[i*4+3]);
+ }
+ for (u8 i = ftell(fp); i < 0x80; i++)
+ fprintf(fp, "%c", 0);
+ fclose(fp);
+#endif
+}
+
+
+inline uint16_t *cps_state::cps1_base( int offset, int boundary )
+{
+ int base = m_cps_a_regs[offset] * 256;
+
+ /*
+ The scroll RAM must start on a 0x4000 boundary.
+ Some games do not do this.
+ For example:
+ Captain commando - continue screen will not display
+ Muscle bomber games - will animate garbage during gameplay
+ Mask out the irrelevant bits.
+ */
+ base &= ~(boundary - 1);
+ return &m_gfxram[(base & 0x3ffff) / 2];
+}
+
+
+
+WRITE16_MEMBER(cps_state::cps1_cps_a_w)
+{
+ data = COMBINE_DATA(&m_cps_a_regs[offset]);
+
+ /*
+ The main CPU writes the palette to gfxram, and the CPS-B custom copies it
+ to the real palette RAM, which is separated from gfxram.
+ This is done ONLY after the palette base register is written to. It is not
+ known what the exact timing should be, how long it should take and when it
+ should happen. We are assuming that the copy happens immediately, since it
+ fixes glitches in the ghouls intro, but it might happen at next vblank.
+ */
+ if (offset == CPS1_PALETTE_BASE)
+ cps1_build_palette(cps1_base(CPS1_PALETTE_BASE, m_palette_align));
+
+ // pzloop2 write to register 24 on startup. This is probably just a bug.
+ if (offset == 0x24 / 2 && m_cps_version == 2)
+ return;
+
+#ifdef MAME_DEBUG
+ if (offset > CPS1_VIDEOCONTROL)
+ popmessage("write to CPS-A register %02x contact MAMEDEV", offset * 2);
+#endif
+}
+
+
+READ16_MEMBER(cps_state::cps1_cps_b_r)
+{
+ /* Some games interrogate a couple of registers on bootup. */
+ /* These are CPS1 board B self test checks. They wander from game to */
+ /* game. */
+ if (offset == m_cpsb_addr / 2)
+ return m_cpsb_value;
+ else
+ /* some games use as a protection check the ability to do 16-bit multiplications */
+ /* with a 32-bit result, by writing the factors to two ports and reading the */
+ /* result from two other ports. */
+ if (offset == m_mult_result_lo / 2)
+ {
+ //printf("Multiply protection lo at %s\n",machine().describe_context());
+ return (m_cps_b_regs[m_mult_factor1 / 2] *
+ m_cps_b_regs[m_mult_factor2 / 2]) & 0xffff;
+ }
+ else
+ if (offset == m_mult_result_hi / 2)
+ {
+ //printf("Multiply protection hi\n");
+ return (m_cps_b_regs[m_mult_factor1 / 2] *
+ m_cps_b_regs[m_mult_factor2 / 2]) >> 16;
+ }
+ else
+ if (offset == m_in2_addr / 2) /* Extra input ports (on C-board) */
+ return cps1_in2_r(space, 0, 0); // HBMAME ioport("IN2")->read();
+ else
+ if (offset == m_in3_addr / 2) /* Player 4 controls (on C-board) ("Captain Commando") */
+ return cps1_in3_r(space, 0, 0); // HBMAME ioport("IN3")->read();
+ else
+ if (m_cps_version == 2)
+ {
+ if (offset == 0x10/2)
+ {
+ // UNKNOWN--only mmatrix appears to read this, and I'm not sure if the result is actually used
+ return m_cps_b_regs[0x10 / 2];
+ }
+ if (offset == 0x12/2)
+ return m_cps_b_regs[0x12 / 2];
+ }
+#ifdef MAME_DEBUG
+ popmessage("CPS-B read port %02x contact MAMEDEV", offset * 2);
+#endif
+ return 0xffff;
+}
+
+
+WRITE16_MEMBER(cps_state::cps1_cps_b_w)
+{
+ data = COMBINE_DATA(&m_cps_b_regs[offset]);
+
+ if (m_cps_version == 2)
+ {
+ /* To mark scanlines for raster effects */
+ if (offset == 0x0e/2)
+ {
+ // UNKNOWN
+ return;
+ }
+ if (offset == 0x10/2)
+ {
+ m_scanline1 = (data & 0x1ff);
+ return;
+ }
+ if (offset == 0x12/2)
+ {
+ m_scanline2 = (data & 0x1ff);
+ return;
+ }
+ }
+
+
+ // additional outputs on C-board
+ if (offset == m_out2_addr / 2)
+ {
+ if (ACCESSING_BITS_0_7)
+ {
+ if (m_cpsb_value == 0x0402) // Mercs (CN2 connector)
+ {
+ machine().bookkeeping().coin_lockout_w(2, ~data & 0x01);
+ output().set_led_value(0, data & 0x02);
+ output().set_led_value(1, data & 0x04);
+ output().set_led_value(2, data & 0x08);
+ }
+ else // kod, captcomm, knights
+ {
+ machine().bookkeeping().coin_lockout_w(2, ~data & 0x02);
+ machine().bookkeeping().coin_lockout_w(3, ~data & 0x08);
+ }
+ }
+ }
+
+#ifdef MAME_DEBUG
+ if (offset != m_cpsb_addr / 2 && // only varth writes here
+ offset != m_mult_factor1 / 2 &&
+ offset != m_mult_factor2 / 2 &&
+ offset != m_layer_control / 2 &&
+ offset != m_unknown1 / 2 &&
+ offset != m_unknown2 / 2 &&
+ offset != m_unknown3 / 2 &&
+ offset != m_priority[0] / 2 &&
+ offset != m_priority[1] / 2 &&
+ offset != m_priority[2] / 2 &&
+ offset != m_priority[3] / 2 &&
+ offset != m_palette_control / 2 &&
+ offset != m_out2_addr / 2 &&
+ !m_bootleg_kludge)
+ popmessage("CPS-B write %04x to port %02x contact MAMEDEV", data, offset * 2);
+#endif
+}
+
+
+void cps_state::unshuffle( uint64_t *buf, int len )
+{
+ int i;
+ uint64_t t;
+
+ if (len == 2)
+ return;
+
+ assert(len % 4 == 0); /* must not happen */
+
+ len /= 2;
+
+ unshuffle(buf, len);
+ unshuffle(buf + len, len);
+
+ for (i = 0; i < len / 2; i++)
+ {
+ t = buf[len / 2 + i];
+ buf[len / 2 + i] = buf[len + i];
+ buf[len + i] = t;
+ }
+}
+
+
+void cps_state::cps2_gfx_decode()
+{
+ const int banksize = 0x200000;
+ int size = memregion("gfx")->bytes();
+ int i;
+
+ for (i = 0; i < size; i += banksize)
+ unshuffle((uint64_t *)(memregion("gfx")->base() + i), banksize / 8);
+}
+
+
+DRIVER_INIT_MEMBER(cps_state,cps1)
+{
+ m_scanline1 = 0;
+ m_scanline2 = 0;
+ m_scancalls = 0;
+ m_last_sprite_offset = 0;
+ m_pri_ctrl = 0;
+ m_objram_bank = 0;
+}
+
+
+
+DRIVER_INIT_MEMBER(cps_state,cps2_video)
+{
+ cps2_gfx_decode();
+
+ m_scanline1 = 262;
+ m_scanline2 = 262;
+ m_scancalls = 0;
+ m_last_sprite_offset = 0;
+ m_cps2_last_sprite_offset = 0;
+ m_pri_ctrl = 0;
+ m_objram_bank = 0;
+}
+
+
+void cps_state::cps1_get_video_base()
+{
+ // HBMAME start
+ int layercontrol=0, videocontrol=0, scroll1xoff=0, scroll2xoff=0, scroll3xoff=0;
+
+ if (BIT(m_scrollx1, 7))
+ scroll1xoff = 0 - (m_scrollx1 & 0x7f);
+ else
+ scroll1xoff = m_scrollx1;
+
+ if (BIT(m_scrollx2, 7))
+ scroll2xoff = 0 - (m_scrollx2 & 0x7f);
+ else
+ scroll2xoff = m_scrollx2;
+
+ if (BIT(m_scrollx3, 7))
+ scroll3xoff = 0 - (m_scrollx3 & 0x7f);
+ else
+ scroll3xoff = m_scrollx3;
+ // HBMAME end
+
+ /* Re-calculate the VIDEO RAM base */
+ if (m_scroll1 != cps1_base(CPS1_SCROLL1_BASE, m_scroll_size))
+ {
+ m_scroll1 = cps1_base(CPS1_SCROLL1_BASE, m_scroll_size);
+ m_bg_tilemap[0]->mark_all_dirty();
+ }
+ if (m_scroll2 != cps1_base(CPS1_SCROLL2_BASE, m_scroll_size))
+ {
+ m_scroll2 = cps1_base(CPS1_SCROLL2_BASE, m_scroll_size);
+ m_bg_tilemap[1]->mark_all_dirty();
+ }
+ if (m_scroll3 != cps1_base(CPS1_SCROLL3_BASE, m_scroll_size))
+ {
+ m_scroll3 = cps1_base(CPS1_SCROLL3_BASE, m_scroll_size);
+ m_bg_tilemap[2]->mark_all_dirty();
+ }
+
+ // HBMAME start
+ /* Some of the sf2 hacks use only sprite port 0x9100 and the scroll layers are offset */
+ uint8_t kludge = m_bootleg_kludge & 15;
+ if (kludge == 0x01 || kludge == 0x02)
+ m_cps_a_regs[CPS1_OBJ_BASE] = 0x9100;
+ else
+ if (kludge == 0x08) // 3wondersb
+ {
+ m_cps_b_regs[0x30/2] = 0x3f;
+ m_cps_a_regs[CPS1_VIDEOCONTROL] = 0x3e;
+ m_cps_a_regs[CPS1_SCROLL2_BASE] = 0x90c0;
+ m_cps_a_regs[CPS1_SCROLL3_BASE] = 0x9100;
+ m_cps_a_regs[CPS1_PALETTE_BASE] = 0x9140;
+ }
+ // HBMAME end
+
+ m_obj = cps1_base(CPS1_OBJ_BASE, m_obj_size);
+ m_other = cps1_base(CPS1_OTHER_BASE, m_other_size);
+
+ /* Get scroll values */
+ m_scroll1x = m_cps_a_regs[CPS1_SCROLL1_SCROLLX] + scroll1xoff;
+ m_scroll1y = m_cps_a_regs[CPS1_SCROLL1_SCROLLY];
+ m_scroll2x = m_cps_a_regs[CPS1_SCROLL2_SCROLLX] + scroll2xoff;
+ m_scroll2y = m_cps_a_regs[CPS1_SCROLL2_SCROLLY];
+ m_scroll3x = m_cps_a_regs[CPS1_SCROLL3_SCROLLX] + scroll3xoff;
+ m_scroll3y = m_cps_a_regs[CPS1_SCROLL3_SCROLLY];
+ m_stars1x = m_cps_a_regs[CPS1_STARS1_SCROLLX];
+ m_stars1y = m_cps_a_regs[CPS1_STARS1_SCROLLY];
+ m_stars2x = m_cps_a_regs[CPS1_STARS2_SCROLLX];
+ m_stars2y = m_cps_a_regs[CPS1_STARS2_SCROLLY];
+
+ /* Get layer enable bits */
+ layercontrol = m_cps_b_regs[m_layer_control / 2];
+ videocontrol = m_cps_a_regs[CPS1_VIDEOCONTROL];
+ m_bg_tilemap[0]->enable(layercontrol & m_layer_enable_mask[0]);
+ m_bg_tilemap[1]->enable((layercontrol & m_layer_enable_mask[1]) && (videocontrol & 4));
+ m_bg_tilemap[2]->enable((layercontrol & m_layer_enable_mask[2]) && (videocontrol & 8));
+ m_stars_enabled[0] = layercontrol & m_layer_enable_mask[3];
+ m_stars_enabled[1] = layercontrol & m_layer_enable_mask[4];
+
+#ifdef MAME_DEBUG
+{
+ int enablemask = 0;
+
+ if (m_layer_enable_mask[0] == m_layer_enable_mask[1])
+ enablemask = m_layer_enable_mask[0];
+
+ if (m_layer_enable_mask[0] == m_layer_enable_mask[2])
+ enablemask = m_layer_enable_mask[0];
+
+ if (m_layer_enable_mask[1] == m_layer_enable_mask[2])
+ enablemask = m_layer_enable_mask[1];
+
+ if (enablemask)
+ {
+ if (((layercontrol & enablemask) && (layercontrol & enablemask) != enablemask))
+ popmessage("layer %02x contact MAMEDEV", layercontrol & 0xc03f);
+ }
+
+ enablemask = m_layer_enable_mask[0] | m_layer_enable_mask[1]
+ | m_layer_enable_mask[2]
+ | m_layer_enable_mask[3] | m_layer_enable_mask[4];
+
+ if (((layercontrol & ~enablemask) & 0x003e) != 0)
+ popmessage("layer %02x contact MAMEDEV", layercontrol & 0xc03f);
+}
+#endif
+
+}
+
+
+WRITE16_MEMBER(cps_state::cps1_gfxram_w)
+{
+ int page = (offset >> 7) & 0x3c0;
+ COMBINE_DATA(&m_gfxram[offset]);
+
+ if (page == (m_cps_a_regs[CPS1_SCROLL1_BASE] & 0x3c0))
+ m_bg_tilemap[0]->mark_tile_dirty(offset / 2 & 0x0fff);
+
+ if (page == (m_cps_a_regs[CPS1_SCROLL2_BASE] & 0x3c0))
+ m_bg_tilemap[1]->mark_tile_dirty(offset / 2 & 0x0fff);
+
+ if (page == (m_cps_a_regs[CPS1_SCROLL3_BASE] & 0x3c0))
+ m_bg_tilemap[2]->mark_tile_dirty(offset / 2 & 0x0fff);
+}
+
+
+
+int cps_state::gfxrom_bank_mapper( int type, int code )
+{
+ int shift = 0;
+
+ switch (type)
+ {
+ case GFXTYPE_SPRITES: shift = 1; break;
+ case GFXTYPE_SCROLL1: shift = 0; break;
+ case GFXTYPE_SCROLL2: shift = 1; break;
+ case GFXTYPE_SCROLL3: shift = 3; break;
+ }
+
+ code <<= shift;
+
+ for (u8 i = 0; i < 8; i++)
+ {
+ if (code >= m_bank_type[i*4+1] && code <= m_bank_type[i*4+2])
+ {
+ if (m_bank_type[i*4] & type)
+ {
+ int base = 0;
+ for (int j = 0; j < m_bank_type[i*4+3]; ++j)
+ base += m_bank_sizes[j];
+
+ return (base + (code & (m_bank_sizes[m_bank_type[i*4+3]] - 1))) >> shift;
+ }
+ }
+ }
+
+#ifdef MAME_DEBUG
+// popmessage("tile %02x/%04x out of range", type, code >> shift);
+#endif
+
+ return -1;
+}
+
+
+/***************************************************************************
+
+ Start the video hardware emulation.
+
+***************************************************************************/
+
+TILEMAP_MAPPER_MEMBER(cps_state::tilemap0_scan)
+{
+ /* logical (col,row) -> memory offset */
+ return (row & 0x1f) + ((col & 0x3f) << 5) + ((row & 0x20) << 6);
+}
+
+TILEMAP_MAPPER_MEMBER(cps_state::tilemap1_scan)
+{
+ /* logical (col,row) -> memory offset */
+ return (row & 0x0f) + ((col & 0x3f) << 4) + ((row & 0x30) << 6);
+}
+
+TILEMAP_MAPPER_MEMBER(cps_state::tilemap2_scan)
+{
+ /* logical (col,row) -> memory offset */
+ return (row & 0x07) + ((col & 0x3f) << 3) + ((row & 0x38) << 6);
+}
+
+TILE_GET_INFO_MEMBER(cps_state::get_tile0_info)
+{
+ int code = m_scroll1[2 * tile_index];
+ int attr = m_scroll1[2 * tile_index + 1];
+ int gfxset;
+
+ code = gfxrom_bank_mapper(GFXTYPE_SCROLL1, code);
+
+ /* allows us to reproduce a problem seen with a ffight board where USA and Japanese
+ roms have been mixed to be reproduced (ffightub) -- it looks like each column
+ should alternate between the left and right side of the 16x16 tiles */
+ gfxset = (tile_index & 0x20) >> 5;
+
+ SET_TILE_INFO_MEMBER(gfxset,
+ code,
+ (attr & 0x1f) + 0x20,
+ TILE_FLIPYX((attr & 0x60) >> 5));
+ tileinfo.group = (attr & 0x0180) >> 7;
+
+ // for out of range tiles, switch to fully transparent data
+ // (but still call SET_TILE_INFO_MEMBER, otherwise problems might occur on boot e.g. unsquad)
+ if (code == -1)
+ tileinfo.pen_data = m_empty_tile;
+}
+
+TILE_GET_INFO_MEMBER(cps_state::get_tile1_info)
+{
+ int code = m_scroll2[2 * tile_index];
+ int attr = m_scroll2[2 * tile_index + 1];
+
+ code = gfxrom_bank_mapper(GFXTYPE_SCROLL2, code);
+
+ SET_TILE_INFO_MEMBER(2,
+ code,
+ (attr & 0x1f) + 0x40,
+ TILE_FLIPYX((attr & 0x60) >> 5));
+ tileinfo.group = (attr & 0x0180) >> 7;
+
+ // for out of range tiles, switch to fully transparent data
+ if (code == -1)
+ tileinfo.pen_data = m_empty_tile;
+}
+
+TILE_GET_INFO_MEMBER(cps_state::get_tile2_info)
+{
+ int code = m_scroll3[2 * tile_index] & 0x3fff;
+ int attr = m_scroll3[2 * tile_index + 1];
+
+ code = gfxrom_bank_mapper(GFXTYPE_SCROLL3, code);
+
+ SET_TILE_INFO_MEMBER(3,
+ code,
+ (attr & 0x1f) + 0x60,
+ TILE_FLIPYX((attr & 0x60) >> 5));
+ tileinfo.group = (attr & 0x0180) >> 7;
+
+ // for out of range tiles, switch to fully transparent data
+ // (but still call SET_TILE_INFO_MEMBER, otherwise problems might occur on boot e.g. unsquad)
+ if (code == -1)
+ tileinfo.pen_data = m_empty_tile;
+}
+
+
+
+void cps_state::cps1_update_transmasks()
+{
+ int i;
+
+ for (i = 0; i < 4; i++)
+ {
+ int mask;
+
+ /* Get transparency registers */
+ if (m_priority[i] != -1)
+ mask = m_cps_b_regs[m_priority[i] / 2] ^ 0xffff;
+ else
+ mask = 0xffff; /* completely transparent if priority masks not defined (qad) */
+
+ m_bg_tilemap[0]->set_transmask(i, mask, 0x8000);
+ m_bg_tilemap[1]->set_transmask(i, mask, 0x8000);
+ m_bg_tilemap[2]->set_transmask(i, mask, 0x8000);
+ }
+}
+
+VIDEO_START_MEMBER(cps_state,cps)
+{
+ int i;
+
+ MACHINE_RESET_CALL_MEMBER(cps);
+
+ /* Put in some const */
+ m_scroll_size = 0x4000; /* scroll1, scroll2, scroll3 */
+ m_obj_size = 0x0800;
+ m_cps2_obj_size = 0x2000;
+ m_other_size = 0x0800;
+ m_palette_align = 0x0400; /* minimum alignment is a single palette page (512 colors). Verified on pcb. */
+ m_palette_size = cps1_palette_entries * 32; /* Size of palette RAM */
+ m_stars_rom_size = 0x2000; /* first 0x4000 of gfx ROM are used, but 0x0000-0x1fff is == 0x2000-0x3fff */
+
+ /* create tilemaps */
+ m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cps_state::get_tile0_info),this), tilemap_mapper_delegate(FUNC(cps_state::tilemap0_scan),this), 8, 8, 64, 64);
+ m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cps_state::get_tile1_info),this), tilemap_mapper_delegate(FUNC(cps_state::tilemap1_scan),this), 16, 16, 64, 64);
+ m_bg_tilemap[2] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(cps_state::get_tile2_info),this), tilemap_mapper_delegate(FUNC(cps_state::tilemap2_scan),this), 32, 32, 64, 64);
+
+ /* create empty tiles */
+ memset(m_empty_tile, 0x0f, sizeof(m_empty_tile));
+
+ /* front masks will change at runtime to handle sprite occluding */
+ cps1_update_transmasks();
+
+ for (i = 0; i < cps1_palette_entries * 16; i++)
+ m_palette->set_pen_color(i, rgb_t(0,0,0));
+
+ m_buffered_obj = make_unique_clear<uint16_t[]>(m_obj_size / 2);
+
+ if (m_cps_version == 2)
+ m_cps2_buffered_obj = make_unique_clear<uint16_t[]>(m_cps2_obj_size / 2);
+
+ /* clear RAM regions */
+ memset(m_gfxram, 0, m_gfxram.bytes()); /* Clear GFX RAM */
+ memset(m_cps_a_regs, 0, 0x40); /* Clear CPS-A registers */
+ memset(m_cps_b_regs, 0, 0x40); /* Clear CPS-B registers */
+
+ m_cps_b_regs[m_palette_control/2] = 0x3F; // HBMAME
+
+ if (m_cps_version == 2)
+ {
+ memset(m_objram1, 0, m_cps2_obj_size);
+ memset(m_objram2, 0, m_cps2_obj_size);
+ }
+
+ /* Put in some defaults */
+ m_cps_a_regs[CPS1_OBJ_BASE] = 0x9200;
+ m_cps_a_regs[CPS1_SCROLL1_BASE] = 0x9000;
+ m_cps_a_regs[CPS1_SCROLL2_BASE] = 0x9040;
+ m_cps_a_regs[CPS1_SCROLL3_BASE] = 0x9080;
+ m_cps_a_regs[CPS1_OTHER_BASE] = 0x9100;
+
+ /* Set up old base */
+ m_scroll1 = nullptr;
+ m_scroll2 = nullptr;
+ m_scroll3 = nullptr;
+ m_obj = nullptr;
+ m_other = nullptr;
+ cps1_get_video_base(); /* Calculate base pointers */
+ cps1_get_video_base(); /* Calculate old base pointers */
+
+ /* state save register */
+ save_item(NAME(m_scanline1));
+ save_item(NAME(m_scanline2));
+ save_item(NAME(m_scancalls));
+#if 0
+ /* these do not need to be saved, because they are recovered from cps_a_regs in cps1_postload */
+ save_item(NAME(m_scroll1x));
+ save_item(NAME(m_scroll1y));
+ save_item(NAME(m_scroll2x));
+ save_item(NAME(m_scroll2y));
+ save_item(NAME(m_scroll3x));
+ save_item(NAME(m_scroll3y));
+ save_item(NAME(m_stars1x));
+ save_item(NAME(m_stars1y));
+ save_item(NAME(m_stars2x));
+ save_item(NAME(m_stars2y));
+ save_item(NAME(m_stars_enabled));
+#endif
+ save_item(NAME(m_last_sprite_offset));
+ save_item(NAME(m_pri_ctrl));
+ save_item(NAME(m_objram_bank));
+
+ save_pointer(NAME(m_buffered_obj.get()), m_obj_size / 2);
+ if (m_cps_version == 2)
+ {
+ save_item(NAME(m_cps2_last_sprite_offset));
+ save_pointer(NAME(m_cps2_buffered_obj.get()), m_cps2_obj_size / 2);
+ }
+
+ machine().save().register_postload(save_prepost_delegate(FUNC(cps_state::cps1_get_video_base), this));
+}
+
+VIDEO_START_MEMBER(cps_state,cps1)
+{
+ m_cps_version = 1;
+ VIDEO_START_CALL_MEMBER(cps);
+}
+
+VIDEO_START_MEMBER(cps_state,cps2)
+{
+ m_cps_version = 2;
+ VIDEO_START_CALL_MEMBER(cps);
+}
+
+/***************************************************************************
+
+ Build palette from palette RAM
+
+ 12 bit RGB with a 4 bit brightness value.
+
+***************************************************************************/
+
+void cps_state::cps1_build_palette( const uint16_t* const palette_base )
+{
+ int offset, page;
+ const uint16_t *palette_ram = palette_base;
+ int ctrl = m_cps_b_regs[m_palette_control/2];
+
+ /*
+ The palette is copied only for pages that are enabled in the ctrl
+ register. Note that if the first palette pages are skipped, all
+ the following pages are scaled down.
+ */
+ for (page = 0; page < 6; ++page)
+ {
+ if (BIT(ctrl, page))
+ {
+ for (offset = 0; offset < 0x200; ++offset)
+ {
+ int palette = *(palette_ram++);
+ int r, g, b, bright;
+
+ // from my understanding of the schematics, when the 'brightness'
+ // component is set to 0 it should reduce brightness to 1/3
+
+ // HBMAME start
+ u8 b_adj = 0x0f;
+ u8 b_div = 0x1e + b_adj;
+ bright = b_adj + ((palette >> 12) << 1);
+
+ // New code to get rid of grey squares
+ r = (palette >> 8) & 0x0f;
+ g = (palette >> 4) & 0x0f;
+ b = palette & 0x0f;
+ r = (r > 1) ? r * 0x11 * bright / b_div : 0;
+ g = (g > 1) ? g * 0x11 * bright / b_div : 0;
+ b = (b > 1) ? b * 0x11 * bright / b_div : 0;
+ // HBMAME end
+
+ m_palette->set_pen_color (0x200 * page + offset, rgb_t(r, g, b));
+ }
+ }
+ else
+ {
+ // skip page in gfxram, but only if we have already copied at least one page
+ if (palette_ram != palette_base)
+ palette_ram += 0x200;
+ }
+ }
+}
+
+
+
+/***************************************************************************
+
+ Sprites
+ =======
+
+ Sprites are represented by a number of 8 byte values
+
+ xx xx yy yy nn nn aa aa
+
+ where xxxx = x position
+ yyyy = y position
+ nnnn = tile number
+ aaaa = attribute word
+ 0x0001 colour
+ 0x0002 colour
+ 0x0004 colour
+ 0x0008 colour
+ 0x0010 colour
+ 0x0020 X Flip
+ 0x0040 Y Flip
+ 0x0080 X & Y offset toggle (used in Marvel vs. Capcom.)
+ 0x0100 X block size (in sprites)
+ 0x0200 X block size
+ 0x0400 X block size
+ 0x0800 X block size
+ 0x1000 Y block size (in sprites)
+ 0x2000 Y block size
+ 0x4000 Y block size
+ 0x8000 Y block size
+
+ The end of the table (may) be marked by an attribute value of 0xff00.
+
+***************************************************************************/
+
+void cps_state::cps1_find_last_sprite() /* Find the offset of last sprite */
+{
+ int offset = 0;
+ /* Locate the end of table marker */
+ while (offset < m_obj_size / 2)
+ {
+ if (m_bootleg_kludge == 3) {
+ /* captcommb - same end of sprite marker as CPS-2 */
+ int colour = m_buffered_obj[offset + 1];
+ if (colour >= 0x8000)
+ {
+ /* Marker found. This is the last sprite. */
+ m_last_sprite_offset = offset - 4;
+ return;
+ }
+ }
+ else
+ {
+ int colour = m_buffered_obj[offset + 3];
+ if ((colour & 0xff00) == 0xff00)
+ {
+ /* Marker found. This is the last sprite. */
+ m_last_sprite_offset = offset - 4;
+ return;
+ }
+ }
+
+ offset += 4;
+ }
+ /* Sprites must use full sprite RAM */
+ m_last_sprite_offset = m_obj_size / 2 - 4;
+}
+
+
+void cps_state::cps1_render_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect )
+{
+#define DRAWSPRITE(CODE,COLOR,FLIPX,FLIPY,SX,SY) \
+{ \
+ if (flip_screen()) \
+ m_gfxdecode->gfx(2)->prio_transpen(bitmap,\
+ cliprect, \
+ CODE, \
+ COLOR, \
+ !(FLIPX),!(FLIPY), \
+ 512-16-(SX),256-16-(SY), screen.priority(),0x02,15); \
+ else \
+ m_gfxdecode->gfx(2)->prio_transpen(bitmap,\
+ cliprect, \
+ CODE, \
+ COLOR, \
+ FLIPX,FLIPY, \
+ SX,SY, screen.priority(),0x02,15); \
+}
+
+
+ int i, baseadd;
+ uint16_t *base = m_buffered_obj.get();
+
+ /* some sf2 hacks draw the sprites in reverse order */
+ if (BIT(m_bootleg_kludge, 6)) // HBMAME
+ {
+ base += m_last_sprite_offset;
+ baseadd = -4;
+ }
+ else
+ {
+ baseadd = 4;
+ }
+
+ for (i = m_last_sprite_offset; i >= 0; i -= 4)
+ {
+ int x = *(base + 0);
+ int y = *(base + 1);
+ int code = *(base + 2);
+ int colour = *(base + 3);
+ int col = colour & 0x1f;
+
+// x -= 0x20;
+// y += 0x20;
+
+ code = gfxrom_bank_mapper(GFXTYPE_SPRITES, code);
+
+ if (code != -1)
+ {
+ if (colour & 0xff00 )
+ {
+ /* handle blocked sprites */
+ int nx = (colour & 0x0f00) >> 8;
+ int ny = (colour & 0xf000) >> 12;
+ int nxs, nys, sx, sy;
+ nx++;
+ ny++;
+
+ if (colour & 0x40)
+ {
+ /* Y flip */
+ if (colour & 0x20)
+ {
+ for (nys = 0; nys < ny; nys++)
+ {
+ for (nxs = 0; nxs < nx; nxs++)
+ {
+ sx = (x + nxs * 16) & 0x1ff;
+ sy = (y + nys * 16) & 0x1ff;
+
+ DRAWSPRITE(
+// code + (nx - 1) - nxs + 0x10 * (ny - 1 - nys),
+ (code & ~0xf) + ((code + (nx - 1) - nxs) & 0xf) + 0x10 * (ny - 1 - nys),
+ (col & 0x1f),
+ 1,1,
+ sx,sy);
+ }
+ }
+ }
+ else
+ {
+ for (nys = 0; nys < ny; nys++)
+ {
+ for (nxs = 0; nxs < nx; nxs++)
+ {
+ sx = (x + nxs * 16) & 0x1ff;
+ sy = (y + nys * 16) & 0x1ff;
+
+ DRAWSPRITE(
+// code + nxs + 0x10 * (ny - 1 - nys),
+ (code & ~0xf) + ((code + nxs) & 0xf) + 0x10 * (ny - 1 - nys),
+ (col & 0x1f),
+ 0,1,
+ sx,sy);
+ }
+ }
+ }
+ }
+ else
+ {
+ if (colour & 0x20)
+ {
+ for (nys = 0; nys < ny; nys++)
+ {
+ for (nxs = 0; nxs<nx; nxs++)
+ {
+ sx = (x + nxs * 16) & 0x1ff;
+ sy = (y + nys * 16) & 0x1ff;
+
+ DRAWSPRITE(
+// code + (nx - 1) - nxs + 0x10 * nys,
+ (code & ~0xf) + ((code + (nx - 1) - nxs) & 0xf) + 0x10 * nys,
+ (col & 0x1f),
+ 1,0,
+ sx,sy);
+ }
+ }
+ }
+ else
+ {
+ for (nys = 0; nys < ny; nys++)
+ {
+ for (nxs = 0; nxs < nx; nxs++)
+ {
+ sx = (x + nxs * 16) & 0x1ff;
+ sy = (y + nys * 16) & 0x1ff;
+
+ DRAWSPRITE(
+// code + nxs + 0x10 * nys,
+ (code & ~0xf) + ((code + nxs) & 0xf) + 0x10 * nys, // fix 00406: qadjr: When playing as the ninja, there is one broken frame in his animation loop when walking.
+ (col & 0x1f),
+ 0,0,
+ sx,sy);
+ }
+ }
+ }
+ }
+ }
+ else
+ {
+ /* Simple case... 1 sprite */
+ DRAWSPRITE(
+ code,
+ (col & 0x1f),
+ colour&0x20,colour&0x40,
+ x & 0x1ff,y & 0x1ff);
+ }
+ }
+ base += baseadd;
+ }
+#undef DRAWSPRITE
+}
+
+
+
+
+WRITE16_MEMBER(cps_state::cps2_objram_bank_w)
+{
+ if (ACCESSING_BITS_0_7)
+ m_objram_bank = data & 1;
+}
+
+READ16_MEMBER(cps_state::cps2_objram1_r)
+{
+ if (m_objram_bank & 1)
+ return m_objram2[offset];
+ else
+ return m_objram1[offset];
+}
+
+READ16_MEMBER(cps_state::cps2_objram2_r)
+{
+ if (m_objram_bank & 1)
+ return m_objram1[offset];
+ else
+ return m_objram2[offset];
+}
+
+WRITE16_MEMBER(cps_state::cps2_objram1_w)
+{
+ if (m_objram_bank & 1)
+ COMBINE_DATA(&m_objram2[offset]);
+ else
+ COMBINE_DATA(&m_objram1[offset]);
+}
+
+WRITE16_MEMBER(cps_state::cps2_objram2_w)
+{
+ if (m_objram_bank & 1)
+ COMBINE_DATA(&m_objram1[offset]);
+ else
+ COMBINE_DATA(&m_objram2[offset]);
+}
+
+uint16_t *cps_state::cps2_objbase()
+{
+ int baseptr;
+ baseptr = 0x7000;
+
+ if (m_objram_bank & 1)
+ baseptr ^= 0x0080;
+
+//popmessage("%04x %d", cps2_port(machine, CPS2_OBJ_BASE), m_objram_bank & 1);
+
+ if (baseptr == 0x7000)
+ return m_objram1;
+ else //if (baseptr == 0x7080)
+ return m_objram2;
+}
+
+
+void cps_state::cps2_find_last_sprite() /* Find the offset of last sprite */
+{
+ int offset = 0;
+ uint16_t *base = m_cps2_buffered_obj.get();
+
+ /* Locate the end of table marker */
+ while (offset < m_cps2_obj_size / 2)
+ {
+ if (base[offset + 1] >= 0x8000 || base[offset + 3] >= 0xff00)
+ {
+ /* Marker found. This is the last sprite. */
+ m_cps2_last_sprite_offset = offset - 4;
+ return;
+ }
+
+ offset += 4;
+ }
+ /* Sprites must use full sprite RAM */
+ m_cps2_last_sprite_offset = m_cps2_obj_size / 2 - 4;
+}
+
+void cps_state::cps2_render_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int *primasks )
+{
+#define DRAWSPRITE(CODE,COLOR,FLIPX,FLIPY,SX,SY) \
+{ \
+ if (flip_screen()) \
+ m_gfxdecode->gfx(2)->prio_transpen(bitmap,\
+ cliprect, \
+ CODE, \
+ COLOR, \
+ !(FLIPX),!(FLIPY), \
+ 512-16-(SX),256-16-(SY), screen.priority(),primasks[priority],15); \
+ else \
+ m_gfxdecode->gfx(2)->prio_transpen(bitmap,\
+ cliprect, \
+ CODE, \
+ COLOR, \
+ FLIPX,FLIPY, \
+ SX,SY, screen.priority(),primasks[priority],15); \
+}
+
+ int i;
+ uint16_t *base = m_cps2_buffered_obj.get();
+ int xoffs = 64 - m_output[CPS2_OBJ_XOFFS /2];
+ int yoffs = 16 - m_output[CPS2_OBJ_YOFFS /2];
+
+#ifdef MAME_DEBUG
+ if (machine().input().code_pressed(KEYCODE_Z) && machine().input().code_pressed(KEYCODE_R))
+ {
+ return;
+ }
+#endif
+
+ for (i = m_cps2_last_sprite_offset; i >= 0; i -= 4)
+ {
+ int x = base[i + 0];
+ int y = base[i + 1];
+ int priority = (x >> 13) & 0x07;
+ int code = base[i + 2] + ((y & 0x6000) << 3);
+ int colour = base[i + 3];
+ int col = colour & 0x1f;
+
+ if (colour & 0x80)
+ {
+ x += m_output[CPS2_OBJ_XOFFS /2]; /* fix the offset of some games */
+ y += m_output[CPS2_OBJ_YOFFS /2]; /* like Marvel vs. Capcom ending credits */
+ }
+
+ if (colour & 0xff00)
+ {
+ /* handle blocked sprites */
+ int nx = (colour & 0x0f00) >> 8;
+ int ny = (colour & 0xf000) >> 12;
+ int nxs, nys, sx, sy;
+ nx++;
+ ny++;
+
+ if (colour & 0x40)
+ {
+ /* Y flip */
+ if (colour & 0x20)
+ {
+ for (nys = 0; nys < ny; nys++)
+ {
+ for (nxs = 0; nxs < nx; nxs++)
+ {
+ sx = (x + nxs * 16 + xoffs) & 0x3ff;
+ sy = (y + nys * 16 + yoffs) & 0x3ff;
+ DRAWSPRITE(
+ code + (nx - 1) - nxs + 0x10 * (ny - 1 - nys),
+ (col & 0x1f),
+ 1,1,
+ sx,sy);
+ }
+ }
+ }
+ else
+ {
+ for (nys = 0; nys < ny; nys++)
+ {
+ for (nxs = 0; nxs < nx; nxs++)
+ {
+ sx = (x + nxs * 16 + xoffs) & 0x3ff;
+ sy = (y + nys * 16 + yoffs) & 0x3ff;
+
+ DRAWSPRITE(
+ code + nxs + 0x10 * (ny - 1 - nys),
+ (col & 0x1f),
+ 0,1,
+ sx,sy);
+ }
+ }
+ }
+ }
+ else
+ {
+ if (colour & 0x20)
+ {
+ for (nys = 0; nys < ny; nys++)
+ {
+ for (nxs = 0; nxs < nx; nxs++)
+ {
+ sx = (x + nxs * 16 + xoffs) & 0x3ff;
+ sy = (y + nys * 16 + yoffs) & 0x3ff;
+
+ DRAWSPRITE(
+ code + (nx - 1) - nxs + 0x10 * nys,
+ (col & 0x1f),
+ 1,0,
+ sx,sy);
+ }
+ }
+ }
+ else
+ {
+ for (nys = 0; nys < ny; nys++)
+ {
+ for (nxs = 0; nxs < nx; nxs++)
+ {
+ sx = (x + nxs * 16 + xoffs) & 0x3ff;
+ sy = (y + nys * 16 + yoffs) & 0x3ff;
+
+ DRAWSPRITE(
+// code + nxs + 0x10 * nys,
+ (code & ~0xf) + ((code + nxs) & 0xf) + 0x10 * nys, // pgear fix
+ (col & 0x1f),
+ 0,0,
+ sx,sy);
+ }
+ }
+ }
+ }
+ }
+ else
+ {
+ /* Simple case... 1 sprite */
+ DRAWSPRITE(
+ code,
+ (col & 0x1f),
+ colour&0x20,colour&0x40,
+ (x+xoffs) & 0x3ff,(y+yoffs) & 0x3ff);
+ }
+ }
+}
+
+
+
+
+void cps_state::cps1_render_stars( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect )
+{
+ int offs;
+ uint8_t *stars_rom = m_region_stars->base();
+
+ if (!stars_rom && (m_stars_enabled[0] || m_stars_enabled[1]))
+ {
+#ifdef MAME_DEBUG
+// popmessage("stars enabled but no stars ROM");
+#endif
+ return;
+ }
+
+ if (m_stars_enabled[0])
+ {
+ for (offs = 0; offs < m_stars_rom_size / 2; offs++)
+ {
+ int col = stars_rom[8 * offs + 4];
+ if (col != 0x0f)
+ {
+ int sx = (offs / 256) * 32;
+ int sy = (offs % 256);
+ sx = (sx - m_stars2x + (col & 0x1f)) & 0x1ff;
+ sy = (sy - m_stars2y) & 0xff;
+ if (flip_screen())
+ {
+ sx = 512 - sx;
+ sy = 256 - sy;
+ }
+
+ col = ((col & 0xe0) >> 1) + (screen.frame_number() / 16 & 0x0f);
+
+ if (cliprect.contains(sx, sy))
+ bitmap.pix16(sy, sx) = 0xa00 + col;
+ }
+ }
+ }
+
+ if (m_stars_enabled[1])
+ {
+ for (offs = 0; offs < m_stars_rom_size / 2; offs++)
+ {
+ int col = stars_rom[8*offs];
+ if (col != 0x0f)
+ {
+ int sx = (offs / 256) * 32;
+ int sy = (offs % 256);
+ sx = (sx - m_stars1x + (col & 0x1f)) & 0x1ff;
+ sy = (sy - m_stars1y) & 0xff;
+ if (flip_screen())
+ {
+ sx = 512 - sx;
+ sy = 256 - sy;
+ }
+
+ col = ((col & 0xe0) >> 1) + (screen.frame_number() / 16 & 0x0f);
+
+ if (cliprect.contains(sx, sy))
+ bitmap.pix16(sy, sx) = 0x800 + col;
+ }
+ }
+ }
+}
+
+
+void cps_state::cps1_render_layer( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int primask )
+{
+ switch (layer)
+ {
+ case 0:
+ cps1_render_sprites(screen, bitmap, cliprect);
+ break;
+ case 1:
+ case 2:
+ case 3:
+ m_bg_tilemap[layer - 1]->draw(screen, bitmap, cliprect, TILEMAP_DRAW_LAYER1, primask);
+ break;
+ }
+}
+
+void cps_state::cps1_render_high_layer( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int layer )
+{
+ bitmap_ind16 dummy_bitmap;
+ switch (layer)
+ {
+ case 0:
+ /* there are no high priority sprites */
+ break;
+ case 1:
+ case 2:
+ case 3:
+ m_bg_tilemap[layer - 1]->draw(screen, dummy_bitmap, cliprect, TILEMAP_DRAW_LAYER0, 1);
+ break;
+ }
+}
+
+
+/***************************************************************************
+
+ Refresh screen
+
+***************************************************************************/
+
+uint32_t cps_state::screen_update_cps1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+{
+ int layercontrol, l0, l1, l2, l3;
+ int videocontrol = m_cps_a_regs[CPS1_VIDEOCONTROL];
+
+ flip_screen_set(videocontrol & 0x8000);
+
+ layercontrol = m_cps_b_regs[m_layer_control / 2];
+
+ /* Get video memory base registers */
+ cps1_get_video_base();
+
+ /* Find the offset of the last sprite in the sprite table */
+ cps1_find_last_sprite();
+
+ if (m_cps_version == 2)
+ cps2_find_last_sprite();
+
+ cps1_update_transmasks();
+
+ m_bg_tilemap[0]->set_scrollx(0, m_scroll1x);
+ m_bg_tilemap[0]->set_scrolly(0, m_scroll1y);
+
+ if (videocontrol & 0x01) /* linescroll enable */
+ {
+ int scrly = -m_scroll2y;
+
+ m_bg_tilemap[1]->set_scroll_rows(1024);
+
+ int otheroffs = m_cps_a_regs[CPS1_ROWSCROLL_OFFS];
+
+ for (int i = 0; i < 256; i++)
+ m_bg_tilemap[1]->set_scrollx((i - scrly) & 0x3ff, m_scroll2x + m_other[(i + otheroffs) & 0x3ff]);
+ }
+ else
+ {
+ m_bg_tilemap[1]->set_scroll_rows(1);
+ m_bg_tilemap[1]->set_scrollx(0, m_scroll2x);
+ }
+ m_bg_tilemap[1]->set_scrolly(0, m_scroll2y);
+ m_bg_tilemap[2]->set_scrollx(0, m_scroll3x);
+ m_bg_tilemap[2]->set_scrolly(0, m_scroll3y);
+
+
+ /* Blank screen */
+ if (m_cps_version == 1)
+ {
+ // CPS1 games use pen 0xbff as background color; this is used in 3wonders,
+ // mtwins (explosion during attract), mercs (intermission).
+ bitmap.fill(0xbff, cliprect);
+ }
+ else
+ {
+ // CPS2 apparently always force the background to black. Several games would
+ // should a blue screen during boot if we used the same code as CPS1.
+ // Maybe Capcom changed the background handling due to the problems that
+ // it caused on several monitors (because the background extended into the
+ // blanking area instead of going black, causing the monitor to clip).
+ bitmap.fill(m_palette->black_pen(), cliprect);
+ }
+
+ if (m_region_stars)
+ {
+ cps1_render_stars(screen, bitmap, cliprect);
+ }
+
+ /* Draw layers (0 = sprites, 1-3 = tilemaps) */
+ l0 = (layercontrol >> 0x06) & 03;
+ l1 = (layercontrol >> 0x08) & 03;
+ l2 = (layercontrol >> 0x0a) & 03;
+ l3 = (layercontrol >> 0x0c) & 03;
+ screen.priority().fill(0, cliprect);
+
+ if (m_cps_version == 1)
+ {
+ if (BIT(m_bootleg_kludge, 7))
+ cps1_build_palette(cps1_base(CPS1_PALETTE_BASE, m_palette_align));
+
+ cps1_render_layer(screen, bitmap, cliprect, l0, 0);
+
+ if (l1 == 0)
+ cps1_render_high_layer(screen, bitmap, cliprect, l0); /* prepare mask for sprites */
+
+ cps1_render_layer(screen, bitmap, cliprect, l1, 0);
+
+ if (l2 == 0)
+ cps1_render_high_layer(screen, bitmap, cliprect, l1); /* prepare mask for sprites */
+
+ cps1_render_layer(screen, bitmap, cliprect, l2, 0);
+
+ if (l3 == 0)
+ cps1_render_high_layer(screen, bitmap, cliprect, l2); /* prepare mask for sprites */
+
+ cps1_render_layer(screen, bitmap, cliprect, l3, 0);
+ }
+ else
+ {
+ int l0pri, l1pri, l2pri, l3pri;
+ int primasks[8], i;
+ l0pri = (m_pri_ctrl >> 4 * l0) & 0x0f;
+ l1pri = (m_pri_ctrl >> 4 * l1) & 0x0f;
+ l2pri = (m_pri_ctrl >> 4 * l2) & 0x0f;
+ l3pri = (m_pri_ctrl >> 4 * l3) & 0x0f;
+
+#if 0
+if ( (m_output[CPS2_OBJ_BASE /2] != 0x7080 && m_output[CPS2_OBJ_BASE /2] != 0x7000) ||
+ m_output[CPS2_OBJ_UK1 /2] != 0x807d ||
+ (m_output[CPS2_OBJ_UK2 /2] != 0x0000 && m_output[CPS2_OBJ_UK2 /2] != 0x1101 && m_output[CPS2_OBJ_UK2 /2] != 0x0001))
+ popmessage("base %04x uk1 %04x uk2 %04x",
+ m_output[CPS2_OBJ_BASE /2],
+ m_output[CPS2_OBJ_UK1 /2],
+ m_output[CPS2_OBJ_UK2 /2]);
+
+if (0 && machine().input().code_pressed(KEYCODE_Z))
+ popmessage("order: %d (%d) %d (%d) %d (%d) %d (%d)",l0,l0pri,l1,l1pri,l2,l2pri,l3,l3pri);
+#endif
+
+ /* take out the CPS1 sprites layer */
+ if (l0 == 0) { l0 = l1; l1 = 0; l0pri = l1pri; }
+ if (l1 == 0) { l1 = l2; l2 = 0; l1pri = l2pri; }
+ if (l2 == 0) { l2 = l3; l3 = 0; l2pri = l3pri; }
+
+ {
+ int mask0 = 0xaa;
+ int mask1 = 0xcc;
+ if (l0pri > l1pri) mask0 &= ~0x88;
+ if (l0pri > l2pri) mask0 &= ~0xa0;
+ if (l1pri > l2pri) mask1 &= ~0xc0;
+
+ primasks[0] = 0xff;
+ for (i = 1; i < 8; i++)
+ {
+ if (i <= l0pri && i <= l1pri && i <= l2pri)
+ {
+ primasks[i] = 0xfe;
+ continue;
+ }
+ primasks[i] = 0;
+ if (i <= l0pri) primasks[i] |= mask0;
+ if (i <= l1pri) primasks[i] |= mask1;
+ if (i <= l2pri) primasks[i] |= 0xf0;
+ }
+ }
+
+ cps1_render_layer(screen, bitmap, cliprect, l0, 1);
+ cps1_render_layer(screen, bitmap, cliprect, l1, 2);
+ cps1_render_layer(screen, bitmap, cliprect, l2, 4);
+ cps2_render_sprites(screen, bitmap, cliprect, primasks);
+ }
+
+ return 0;
+}
+
+WRITE_LINE_MEMBER(cps_state::screen_vblank_cps1)
+{
+ // rising edge
+ if (state)
+ {
+ /* Get video memory base registers */
+ cps1_get_video_base();
+
+ if (m_cps_version == 1)
+ {
+ /* CPS1 sprites have to be delayed one frame */
+ memcpy(m_buffered_obj.get(), m_obj, m_obj_size);
+ }
+ }
+}
+
+void cps_state::cps2_set_sprite_priorities()
+{
+ m_pri_ctrl = m_output[CPS2_OBJ_PRI /2];
+}
+
+void cps_state::cps2_objram_latch()
+{
+ cps2_set_sprite_priorities();
+ memcpy(m_cps2_buffered_obj.get(), cps2_objbase(), m_cps2_obj_size);
+}
diff --git a/src/hbmame/video/galaxian.cpp b/src/hbmame/video/galaxian.cpp
new file mode 100644
index 00000000000..c94dac4e83f
--- /dev/null
+++ b/src/hbmame/video/galaxian.cpp
@@ -0,0 +1,87 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/video/galaxian.cpp"
+
+
+/***************************************************************************
+
+ HBMAME Video support for extra games
+
+***************************************************************************/
+
+
+
+
+
+/*************************************
+ *
+ * Four Play extensions
+ *
+ *************************************/
+
+/* gfxbank[4] is used as a cpu bank number, and gfxbank[0] for graphics banking */
+WRITE8_MEMBER( galaxian_state::fourplay_rombank_w )
+{
+ m_gfxbank[4] = (m_gfxbank[4] & (2 - offset)) | (data << offset);
+
+ m_gfxbank[0] = (m_gfxbank[4] == 3); // 1 = true, 0 = false
+
+ membank("bank1")->set_entry( m_gfxbank[4] );
+}
+
+
+
+/*************************************
+ *
+ * Video Eight extensions
+ *
+ *************************************/
+
+void galaxian_state::videight_extend_tile_info(uint16_t *code, uint8_t *color, uint8_t attrib, uint8_t x)
+{
+ *code |= (m_gfxbank[0] << 8);
+ *color |= (m_gfxbank[4] << 3);
+}
+
+void galaxian_state::videight_extend_sprite_info(const uint8_t *base, uint8_t *sx, uint8_t *sy, uint8_t *flipx, uint8_t *flipy, uint16_t *code, uint8_t *color)
+{
+ *code |= (m_gfxbank[0] << 6);
+ *color |= (m_gfxbank[4] << 3);
+}
+
+
+/* This handles the main bankswitching for code and one-bank gfx games */
+WRITE8_MEMBER( galaxian_state::videight_rombank_w )
+{
+ uint8_t gfxbanks[] = { 0, 10, 2, 8, 1, 9, 4, 11 };
+ if (offset == 2)
+ galaxian_stars_enable_w( space, 0, data );
+ else
+ {
+ m_gfxbank[4] = (m_gfxbank[4] & (6 - offset)) | (data << ((offset + 1) >> 1));
+ galaxian_gfxbank_w (space, 0, gfxbanks[m_gfxbank[4]]);
+ membank("bank1")->set_entry( m_gfxbank[4] );
+ }
+}
+
+/* This handles those games with multiple gfx banks */
+WRITE8_MEMBER( galaxian_state::videight_gfxbank_w )
+{
+ /* Moon Cresta (mooncrgx) */
+ if (( data < 2 ) && (m_gfxbank[4] == 3))
+ {
+ uint8_t gfxbanks[] = { 8, 12, 8, 14, 8, 13, 8, 15 };
+ if (!offset) m_gfxbank[3] = (m_gfxbank[3] & 6) | data;
+ if (offset == 1) m_gfxbank[3] = (m_gfxbank[3] & 5) | (data << 1);
+ if (offset == 2) m_gfxbank[3] = (m_gfxbank[3] & 3) | (data << 2);
+ galaxian_gfxbank_w(space, 0, gfxbanks[m_gfxbank[3]]);
+ }
+
+ /* Uniwar S */
+ if (( data < 2 ) && (m_gfxbank[4] == 2) && (offset == 2))
+ galaxian_gfxbank_w( space, 0, data+2 );
+
+ /* Pisces (piscesb) */
+ if (( data < 2 ) && (m_gfxbank[4] == 6) && (offset == 2))
+ galaxian_gfxbank_w( space, 0, data+4 );
+}
diff --git a/src/hbmame/video/neogeo.cpp b/src/hbmame/video/neogeo.cpp
new file mode 100644
index 00000000000..35227dd4d72
--- /dev/null
+++ b/src/hbmame/video/neogeo.cpp
@@ -0,0 +1,279 @@
+// license:BSD-3-Clause
+// copyright-holders:Bryan McPhail,Ernesto Corvi,Andrew Prime,Zsolt Vasvari
+// thanks-to:Fuzz
+/***************************************************************************
+
+ Neo-Geo hardware
+
+****************************************************************************/
+
+#include "emu.h"
+#include "includes/neogeo.h"
+#include "video/resnet.h"
+
+#define NUM_PENS (0x1000)
+#define VERBOSE (0)
+
+
+
+/*************************************
+ *
+ * Palette handling
+ *
+ *************************************/
+
+void neogeo_state::create_rgb_lookups()
+{
+ static const int resistances[] = {3900, 2200, 1000, 470, 220};
+
+ /* compute four sets of weights - with or without the pulldowns -
+ ensuring that we use the same scaler for all */
+ double weights_normal[5];
+ double scaler = compute_resistor_weights(0, 255, -1,
+ 5, resistances, weights_normal, 0, 0,
+ 0, nullptr, nullptr, 0, 0,
+ 0, nullptr, nullptr, 0, 0);
+
+ double weights_dark[5];
+ compute_resistor_weights(0, 255, scaler,
+ 5, resistances, weights_dark, 8200, 0,
+ 0, nullptr, nullptr, 0, 0,
+ 0, nullptr, nullptr, 0, 0);
+
+ double weights_shadow[5];
+ compute_resistor_weights(0, 255, scaler,
+ 5, resistances, weights_shadow, 150, 0,
+ 0, nullptr, nullptr, 0, 0,
+ 0, nullptr, nullptr, 0, 0);
+
+ double weights_dark_shadow[5];
+ compute_resistor_weights(0, 255, scaler,
+ 5, resistances, weights_dark_shadow, 1.0 / ((1.0 / 8200) + (1.0 / 150)), 0,
+ 0, nullptr, nullptr, 0, 0,
+ 0, nullptr, nullptr, 0, 0);
+
+ for (int i = 0; i < 32; i++)
+ {
+ int i4 = (i >> 4) & 1;
+ int i3 = (i >> 3) & 1;
+ int i2 = (i >> 2) & 1;
+ int i1 = (i >> 1) & 1;
+ int i0 = (i >> 0) & 1;
+ m_palette_lookup[i][0] = combine_5_weights(weights_normal, i0, i1, i2, i3, i4);
+ m_palette_lookup[i][1] = combine_5_weights(weights_dark, i0, i1, i2, i3, i4);
+ m_palette_lookup[i][2] = combine_5_weights(weights_shadow, i0, i1, i2, i3, i4);
+ m_palette_lookup[i][3] = combine_5_weights(weights_dark_shadow, i0, i1, i2, i3, i4);
+ }
+}
+
+void neogeo_state::set_pens()
+{
+ const pen_t *pen_base = m_palette->pens() + m_palette_bank + (m_screen_shadow ? 0x2000 : 0);
+ m_sprgen->set_pens(pen_base);
+ m_bg_pen = pen_base + 0xfff;
+}
+
+
+void neogeo_state::neogeo_set_screen_shadow( int data )
+{
+ m_screen_shadow = data;
+ set_pens();
+}
+
+
+void neogeo_state::neogeo_set_palette_bank( int data )
+{
+ m_palette_bank = data ? 0x1000 : 0;
+ set_pens();
+}
+
+
+READ16_MEMBER(neogeo_state::neogeo_paletteram_r)
+{
+ return m_paletteram[m_palette_bank + offset];
+}
+
+
+WRITE16_MEMBER(neogeo_state::neogeo_paletteram_w)
+{
+ offset += m_palette_bank;
+ data = COMBINE_DATA(&m_paletteram[offset]);
+
+ int dark = data >> 15;
+ int r = ((data >> 14) & 0x1) | ((data >> 7) & 0x1e);
+ int g = ((data >> 13) & 0x1) | ((data >> 3) & 0x1e);
+ int b = ((data >> 12) & 0x1) | ((data << 1) & 0x1e);
+
+ m_palette->set_pen_color(offset,
+ m_palette_lookup[r][dark],
+ m_palette_lookup[g][dark],
+ m_palette_lookup[b][dark]); // normal
+
+ m_palette->set_pen_color(offset + 0x2000,
+ m_palette_lookup[r][dark+2],
+ m_palette_lookup[g][dark+2],
+ m_palette_lookup[b][dark+2]); // shadow
+}
+
+
+
+/*************************************
+ *
+ * Video system start
+ *
+ *************************************/
+
+void neogeo_state::video_start()
+{
+ create_rgb_lookups();
+
+ m_paletteram.resize(0x1000 * 2);
+ memset(&m_paletteram[0], 0, 0x1000 * 2 * sizeof(m_paletteram[0]));
+
+ m_screen_shadow = 0;
+ m_palette_bank = 0;
+
+ save_item(NAME(m_paletteram));
+ save_item(NAME(m_screen_shadow));
+ save_item(NAME(m_palette_bank));
+ machine().save().register_postload(save_prepost_delegate(FUNC(neogeo_state::set_pens), this));
+
+ set_pens();
+}
+
+
+
+/*************************************
+ *
+ * Video system reset
+ *
+ *************************************/
+
+void neogeo_state::video_reset()
+{
+}
+
+
+
+/*************************************
+ *
+ * Video update
+ *
+ *************************************/
+
+uint32_t neogeo_state::screen_update_neogeo(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
+{
+ // fill with background color first
+ bitmap.fill(*m_bg_pen, cliprect);
+
+ m_sprgen->draw_sprites(bitmap, cliprect.min_y);
+
+ m_sprgen->draw_fixed_layer(bitmap, cliprect.min_y);
+
+ return 0;
+}
+
+
+
+/*************************************
+ *
+ * Video control
+ *
+ *************************************/
+
+uint16_t neogeo_state::get_video_control( )
+{
+ uint16_t ret;
+ uint16_t v_counter;
+
+ /*
+ The format of this very important location is: AAAA AAAA A??? BCCC
+
+ A is the raster line counter. mosyougi relies solely on this to do the
+ raster effects on the title screen; sdodgeb loops waiting for the top
+ bit to be 1; zedblade heavily depends on it to work correctly (it
+ checks the top bit in the IRQ2 handler).
+ B is definitely a PAL/NTSC flag. (LSPC2 only) Evidence:
+ 1) trally changes the position of the speed indicator depending on
+ it (0 = lower 1 = higher).
+ 2) samsho3 sets a variable to 60 when the bit is 0 and 50 when it's 1.
+ This is obviously the video refresh rate in Hz.
+ 3) samsho3 sets another variable to 256 or 307. This could be the total
+ screen height (including vblank), or close to that.
+ Some games (e.g. lstbld2, samsho3) do this (or similar):
+ bclr #$0, $3c000e.l
+ when the bit is set, so 3c000e (whose function is unknown) has to be
+ related
+ C animation counter lower 3 bits
+ */
+
+ /* the vertical counter chain goes from 0xf8 - 0x1ff */
+ v_counter = m_screen->vpos() + 0x100;
+
+ if (v_counter >= 0x200)
+ v_counter = v_counter - NEOGEO_VTOTAL;
+
+ ret = (v_counter << 7) | (m_sprgen->neogeo_get_auto_animation_counter() & 0x0007);
+
+ if (VERBOSE) logerror("%s: video_control read (%04x)\n", machine().describe_context(), ret);
+
+ return ret;
+}
+
+
+void neogeo_state::set_video_control( uint16_t data )
+{
+ if (VERBOSE) logerror("%s: video control write %04x\n", machine().describe_context(), data);
+
+ m_sprgen->set_auto_animation_speed(data >> 8);
+ m_sprgen->set_auto_animation_disabled(data & 0x0008);
+
+ neogeo_set_display_position_interrupt_control(data & 0x00f0);
+}
+
+
+READ16_MEMBER(neogeo_state::neogeo_video_register_r)
+{
+ uint16_t ret;
+
+ /* accessing the LSB only is not mapped */
+ if (mem_mask == 0x00ff)
+ ret = neogeo_unmapped_r(space, 0, 0xffff) & 0x00ff;
+ else
+ {
+ switch (offset)
+ {
+ default:
+ case 0x00:
+ case 0x01: ret = m_sprgen->get_videoram_data(); break;
+ case 0x02: ret = m_sprgen->get_videoram_modulo(); break;
+ case 0x03: ret = get_video_control(); break;
+ }
+ }
+
+ return ret;
+}
+
+
+WRITE16_MEMBER(neogeo_state::neogeo_video_register_w)
+{
+ /* accessing the LSB only is not mapped */
+ if (mem_mask != 0x00ff)
+ {
+ /* accessing the MSB only stores same data in MSB and LSB */
+ if (mem_mask == 0xff00)
+ data = (data & 0xff00) | (data >> 8);
+
+ switch (offset)
+ {
+ case 0x00: m_sprgen->set_videoram_offset(data); break;
+ case 0x01: m_sprgen->set_videoram_data(data); break;
+ case 0x02: m_sprgen->set_videoram_modulo(data); break;
+ case 0x03: set_video_control(data); break;
+ case 0x04: neogeo_set_display_counter_msb(data); break;
+ case 0x05: neogeo_set_display_counter_lsb(data); break;
+ case 0x06: neogeo_acknowledge_interrupt(data); break;
+ case 0x07: break; // d0: pause timer for 32 lines when in PAL mode (LSPC2 only)
+ }
+ }
+}
diff --git a/src/hbmame/video/neogeo_spr.cpp b/src/hbmame/video/neogeo_spr.cpp
new file mode 100644
index 00000000000..86f1bd75fb4
--- /dev/null
+++ b/src/hbmame/video/neogeo_spr.cpp
@@ -0,0 +1,644 @@
+// license:BSD-3-Clause
+// copyright-holders:Bryan McPhail,Ernesto Corvi,Andrew Prime,Zsolt Vasvari
+// thanks-to:Fuzz
+/* NeoGeo sprites (and fixed text layer) */
+
+#include "emu.h"
+#include "neogeo_spr.h"
+#include "screen.h"
+
+DEFINE_DEVICE_TYPE(NEOGEO_SPRITE, neosprite_device, "neosprite", "Neo-Geo Sprites")
+
+neosprite_device::neosprite_device
+ (const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : device_t(mconfig, NEOGEO_SPRITE, tag, owner, clock)
+ , m_bppshift(4)
+ , m_spritegfx8(nullptr)
+ { }
+
+void neosprite_device::device_start()
+{
+ m_videoram = std::make_unique<uint16_t[]>(0x8000 + 0x800);
+ m_videoram_drawsource = m_videoram.get();
+
+ /* clear allocated memory */
+ memset(m_videoram.get(), 0x00, (0x8000 + 0x800) * sizeof(uint16_t));
+
+ create_sprite_line_timer();
+ create_auto_animation_timer();
+
+ /* initialize values that are not modified on a reset */
+ m_vram_offset = 0;
+ m_vram_read_buffer = 0;
+ m_vram_modulo = 0;
+ m_auto_animation_speed = 0;
+ m_auto_animation_disabled = 0;
+ m_auto_animation_counter = 0;
+ m_auto_animation_frame_counter = 0;
+
+ /* register for state saving */
+ save_pointer(NAME(m_videoram.get()), 0x8000 + 0x800);
+ save_item(NAME(m_vram_offset));
+ save_item(NAME(m_vram_read_buffer));
+ save_item(NAME(m_vram_modulo));
+ save_item(NAME(m_fixed_layer_source));
+
+ save_item(NAME(m_auto_animation_speed));
+ save_item(NAME(m_auto_animation_disabled));
+ save_item(NAME(m_auto_animation_counter));
+ save_item(NAME(m_auto_animation_frame_counter));
+
+ m_region_zoomy = memregion(":zoomy")->base();
+}
+
+void neosprite_device::device_reset()
+{
+ //m_sprite_gfx_address_mask = 0;
+ optimize_sprite_data();
+
+ start_sprite_line_timer();
+ start_auto_animation_timer();
+}
+
+
+
+/*************************************
+ *
+ * Video RAM access
+ *
+ *************************************/
+
+void neosprite_device::set_videoram_offset( uint16_t data )
+{
+ m_vram_offset = (data & 0x8000 ? data & 0x87ff : data);
+
+ /* the read happens right away */
+ m_vram_read_buffer = m_videoram[m_vram_offset];
+}
+
+
+uint16_t neosprite_device::get_videoram_data( )
+{
+ return m_vram_read_buffer;
+}
+
+
+void neosprite_device::set_videoram_data( uint16_t data)
+{
+ m_videoram[m_vram_offset] = data;
+
+ /* auto increment/decrement the current offset - A15 is NOT affected */
+ set_videoram_offset((m_vram_offset & 0x8000) | ((m_vram_offset + m_vram_modulo) & 0x7fff));
+}
+
+
+void neosprite_device::set_videoram_modulo( uint16_t data)
+{
+ m_vram_modulo = data;
+}
+
+
+uint16_t neosprite_device::get_videoram_modulo( )
+{
+ return m_vram_modulo;
+}
+
+
+
+/*************************************
+ *
+ * Auto animation
+ *
+ *************************************/
+
+void neosprite_device::set_auto_animation_speed( uint8_t data)
+{
+ m_auto_animation_speed = data;
+}
+
+
+void neosprite_device::set_auto_animation_disabled( uint8_t data)
+{
+ m_auto_animation_disabled = data;
+}
+
+
+uint8_t neosprite_device::neogeo_get_auto_animation_counter( )
+{
+ return m_auto_animation_counter;
+}
+
+
+TIMER_CALLBACK_MEMBER(neosprite_device::auto_animation_timer_callback)
+{
+ if (m_auto_animation_frame_counter == 0)
+ {
+ m_auto_animation_frame_counter = m_auto_animation_speed;
+ m_auto_animation_counter += 1;
+ }
+ else
+ m_auto_animation_frame_counter = m_auto_animation_frame_counter - 1;
+
+ m_auto_animation_timer->adjust(m_screen->time_until_pos(NEOGEO_VSSTART));
+}
+
+
+void neosprite_device::create_auto_animation_timer( )
+{
+ m_auto_animation_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(neosprite_device::auto_animation_timer_callback),this));
+}
+
+
+void neosprite_device::start_auto_animation_timer( )
+{
+ m_auto_animation_timer->adjust(m_screen->time_until_pos(NEOGEO_VSSTART));
+}
+
+
+
+/*************************************
+ *
+ * Fixed layer
+ *
+ *************************************/
+
+void neosprite_device::neogeo_set_fixed_layer_source( uint8_t data )
+{
+ m_fixed_layer_source = data;
+}
+
+
+void neosprite_device::draw_fixed_layer( bitmap_rgb32 &bitmap, int scanline )
+{
+ uint8_t* gfx_base = m_fixed_layer_source ? m_region_fixed : m_region_fixedbios->base();
+ uint32_t addr_mask = ( m_fixed_layer_source ? m_region_fixed_size : m_region_fixedbios->bytes() ) - 1;
+ uint16_t *video_data = &m_videoram_drawsource[0x7000 | (scanline >> 3)];
+ uint32_t *pixel_addr = &bitmap.pix32(scanline, NEOGEO_HBEND);
+
+ uint8_t garouoffsets[32];
+ bool banked = m_fixed_layer_source && (addr_mask > 0x1ffff);
+
+ /* thanks to Mr K for the garou & kof2000 banking info */
+ /* Build line banking table for Garou & MS3 before starting render */
+ if (banked && m_fixed_layer_bank_type == 1)
+ {
+ uint8_t garoubank = 0, k = 0, y = 0;
+ while (y < 32)
+ {
+ if (m_videoram_drawsource[0x7500 + k] == 0x0200 && (m_videoram_drawsource[0x7580 + k] & 0xff00) == 0xff00)
+ {
+ garoubank = m_videoram_drawsource[0x7580 + k] & 3;
+ garouoffsets[y++] = garoubank;
+ }
+ garouoffsets[y++] = garoubank;
+ k += 2;
+ }
+ }
+
+ for (uint8_t x = 0; x < 40; x++)
+ {
+ uint16_t code_and_palette = *video_data;
+ uint16_t code = code_and_palette & 0x0fff;
+
+ if (banked)
+ {
+ int y = scanline >> 3;
+ switch (m_fixed_layer_bank_type)
+ {
+ case 1:
+ /* Garou, MSlug 3 */
+ code += 0x1000 * (garouoffsets[(y - 2) & 31] ^ 3);
+ break;
+ case 2:
+ code += 0x1000 * (((m_videoram_drawsource[0x7500 + ((y - 1) & 31) + 32 * (x / 6)] >> (5 - (x % 6)) * 2) & 3) ^ 3);
+ break;
+ }
+ }
+
+ {
+ int gfx_offset = ((code << 5) | (scanline & 0x07)) & addr_mask;
+
+ const pen_t *char_pens;
+
+ char_pens = &m_pens[code_and_palette >> 12 << m_bppshift];
+
+ static const uint32_t pix_offsets[] = { 0x10, 0x18, 0x00, 0x08 };
+
+ for (u8 i = 0; i < 4; i++)
+ draw_fixed_layer_2pixels(pixel_addr, gfx_offset + pix_offsets[i], gfx_base, char_pens);
+ }
+
+ video_data += 0x20;
+ }
+}
+
+
+inline void neosprite_device::draw_fixed_layer_2pixels(uint32_t*&pixel_addr, int offset, uint8_t* gfx_base, const pen_t* char_pens)
+{
+ uint8_t data = gfx_base[offset];
+
+ if (data & 0x0f)
+ *pixel_addr = char_pens[data & 0x0f];
+ pixel_addr++;
+
+ if (data & 0xf0)
+ *pixel_addr = char_pens[data >> 4];
+ pixel_addr++;
+}
+
+/*************************************
+ *
+ * Sprite hardware
+ *
+ *************************************/
+
+#define MAX_SPRITES_PER_SCREEN (381)
+// HBMAME
+//#define MAX_SPRITES_PER_LINE (96)
+// beast requires 236 sprites, also fixes neopong and lhcdb
+#define MAX_SPRITES_PER_LINE (236)
+
+
+/* horizontal zoom table - verified on real hardware */
+static const int zoom_x_tables[][16] =
+{
+ { 0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 },
+ { 0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0 },
+ { 0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0 },
+ { 0,0,1,0,1,0,0,0,1,0,0,0,1,0,0,0 },
+ { 0,0,1,0,1,0,0,0,1,0,0,0,1,0,1,0 },
+ { 0,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0 },
+ { 0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0 },
+ { 1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0 },
+ { 1,0,1,0,1,0,1,0,1,1,1,0,1,0,1,0 },
+ { 1,0,1,1,1,0,1,0,1,1,1,0,1,0,1,0 },
+ { 1,0,1,1,1,0,1,0,1,1,1,0,1,0,1,1 },
+ { 1,0,1,1,1,0,1,1,1,1,1,0,1,0,1,1 },
+ { 1,0,1,1,1,0,1,1,1,1,1,0,1,1,1,1 },
+ { 1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1 },
+ { 1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1 },
+ { 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 }
+};
+
+
+
+inline bool neosprite_device::sprite_on_scanline(int scanline, int y, int rows)
+{
+ return (rows == 0) || (rows >= 0x20) || ((scanline - y) & 0x1ff) < (rows * 0x10);
+}
+
+
+
+
+void neosprite_device::draw_sprites( bitmap_rgb32 &bitmap, int scanline )
+{
+ int sprite_index;
+ int max_sprite_index;
+
+ int y = 0;
+ int x = 0;
+ int rows = 0;
+ int zoom_y = 0;
+ int zoom_x = 0;
+ uint16_t *sprite_list;
+
+ /* select the active list */
+ if (scanline & 0x01)
+ sprite_list = &m_videoram_drawsource[0x8680];
+ else
+ sprite_list = &m_videoram_drawsource[0x8600];
+
+ /* optimization -- find last non-zero entry and only draw that many +1
+ sprite. This is not 100% correct as the hardware will keep drawing
+ the #0 sprite over and over, but we need the speed */
+ for (max_sprite_index = (MAX_SPRITES_PER_LINE - 1); max_sprite_index >= 0; max_sprite_index--)
+ {
+ if (sprite_list[max_sprite_index] != 0)
+ break;
+ }
+
+ /* add the +1 now, just in case the 0 at the end is real sprite */
+ if (max_sprite_index != (MAX_SPRITES_PER_LINE - 1))
+ max_sprite_index = max_sprite_index + 1;
+
+ for (sprite_index = 0; sprite_index <= max_sprite_index; sprite_index++)
+ {
+ uint16_t sprite_number = sprite_list[sprite_index] & 0x01ff;
+ uint16_t y_control = m_videoram_drawsource[0x8200 | sprite_number];
+ uint16_t zoom_control = m_videoram_drawsource[0x8000 | sprite_number];
+
+ /* if chained, go to next X coordinate and get new X zoom */
+ if (y_control & 0x40)
+ {
+ x = (x + zoom_x + 1) & 0x01ff;
+ zoom_x = (zoom_control >> 8) & 0x0f;
+ }
+ /* new block */
+ else
+ {
+ y = 0x200 - (y_control >> 7);
+ x = m_videoram_drawsource[0x8400 | sprite_number] >> 7;
+
+ zoom_y = (zoom_control & 0xff);
+
+ zoom_x = (zoom_control >> 8) & 0x0f;
+ rows = y_control & 0x3f;
+ }
+
+ /* skip if falls completely outside the screen */
+ if ((x >= 0x140) && (x <= 0x1f0))
+ continue;
+
+ /* double check the Y coordinate, in case somebody modified the sprite coordinate
+ since we buffered it */
+ if (sprite_on_scanline(scanline, y, rows))
+ {
+ int sprite_y;
+ int tile;
+ uint8_t sprite_y_and_tile;
+ offs_t attr_and_code_offs;
+ uint16_t attr;
+ uint32_t code;
+ const int *zoom_x_table;
+ const pen_t *line_pens;
+ int x_inc;
+
+ int sprite_line = (scanline - y) & 0x1ff;
+ int zoom_line = sprite_line & 0xff;
+ int invert = sprite_line & 0x100;
+
+ if (invert)
+ zoom_line ^= 0xff;
+
+ if (rows > 0x20)
+ {
+ zoom_line = zoom_line % ((zoom_y + 1) << 1);
+
+ if (zoom_line > zoom_y)
+ {
+ zoom_line = ((zoom_y + 1) << 1) - 1 - zoom_line;
+ invert = !invert;
+ }
+ }
+
+ sprite_y_and_tile = m_region_zoomy[(zoom_y << 8) | zoom_line];
+
+ sprite_y = sprite_y_and_tile & 0x0f;
+ tile = sprite_y_and_tile >> 4;
+
+ if (invert)
+ {
+ sprite_y ^= 0x0f;
+ tile ^= 0x1f;
+ }
+
+ attr_and_code_offs = (sprite_number << 6) | (tile << 1);
+ attr = m_videoram_drawsource[attr_and_code_offs + 1];
+ code = ((attr << 12) & 0x70000) | m_videoram_drawsource[attr_and_code_offs];
+
+ /* substitute auto animation bits */
+ if (!m_auto_animation_disabled)
+ {
+ if (attr & 0x0008)
+ code = (code & ~0x07) | (m_auto_animation_counter & 0x07);
+ else if (attr & 0x0004)
+ code = (code & ~0x03) | (m_auto_animation_counter & 0x03);
+ }
+
+ /* vertical flip? */
+ if (attr & 0x0002)
+ sprite_y ^= 0x0f;
+
+ zoom_x_table = zoom_x_tables[zoom_x];
+
+ /* compute offset in gfx ROM and mask it to the number of bits available */
+ int gfx_base = ((code << 8) | (sprite_y << 4)) & m_sprite_gfx_address_mask;
+
+ line_pens = &m_pens[attr >> 8 << m_bppshift];
+
+ /* horizontal flip? */
+ if (attr & 0x0001)
+ {
+ gfx_base = gfx_base + 0x0f;
+ x_inc = -1;
+ }
+ else
+ x_inc = 1;
+
+ /* draw the line - no wrap-around */
+ if (x <= 0x01f0)
+ {
+ int i;
+
+ uint32_t *pixel_addr = &bitmap.pix32(scanline, x + NEOGEO_HBEND);
+
+ for (i = 0; i < 0x10; i++)
+ {
+ if (*zoom_x_table)
+ {
+ draw_pixel(gfx_base, pixel_addr, line_pens);
+
+ pixel_addr++;
+ }
+
+ zoom_x_table++;
+ gfx_base += x_inc;
+ }
+ }
+ /* wrap-around */
+ else
+ {
+ int i;
+
+ int x_save = x;
+ uint32_t *pixel_addr = &bitmap.pix32(scanline, NEOGEO_HBEND);
+
+ for (i = 0; i < 0x10; i++)
+ {
+ if (*zoom_x_table)
+ {
+ if (x >= 0x200)
+ {
+ draw_pixel(gfx_base, pixel_addr, line_pens);
+
+ pixel_addr++;
+ }
+
+ x++;
+ }
+
+ zoom_x_table++;
+ gfx_base += x_inc;
+ }
+
+ x = x_save;
+ }
+ }
+ }
+}
+
+
+void neosprite_device::parse_sprites( int scanline )
+{
+ uint16_t sprite_number;
+ int y = 0;
+ int rows = 0;
+ uint16_t *sprite_list;
+
+ int active_sprite_count = 0;
+
+ /* select the active list */
+ if (scanline & 0x01)
+ sprite_list = &m_videoram_drawsource[0x8680];
+ else
+ sprite_list = &m_videoram_drawsource[0x8600];
+
+ /* scan all sprites */
+ for (sprite_number = 0; sprite_number < MAX_SPRITES_PER_SCREEN; sprite_number++)
+ {
+ uint16_t y_control = m_videoram_drawsource[0x8200 | sprite_number];
+
+ /* if not chained, get Y position and height, otherwise use previous values */
+ if (~y_control & 0x40)
+ {
+ y = 0x200 - (y_control >> 7);
+ rows = y_control & 0x3f;
+ }
+
+ /* skip sprites with 0 rows */
+ if (rows == 0)
+ continue;
+
+ if (!sprite_on_scanline(scanline, y, rows))
+ continue;
+
+ /* sprite is on this scanline, add it to active list */
+ *sprite_list = sprite_number;
+
+ sprite_list++;
+
+ /* increment sprite count, and if we reached the max, bail out */
+ active_sprite_count++;
+
+ if (active_sprite_count == MAX_SPRITES_PER_LINE)
+ break;
+ }
+
+ /* fill the rest of the sprite list with 0, including one extra entry */
+ memset(sprite_list, 0, sizeof(sprite_list[0]) * (MAX_SPRITES_PER_LINE - active_sprite_count + 1));
+}
+
+
+TIMER_CALLBACK_MEMBER(neosprite_device::sprite_line_timer_callback)
+{
+ int scanline = param;
+
+ // we are at the beginning of a scanline - we need to draw the previous scanline and parse the sprites on the current one
+ if (scanline != 0)
+ m_screen->update_partial(scanline - 1);
+
+ parse_sprites(scanline);
+
+ // let's come back at the beginning of the next line
+ scanline = (scanline + 1) % NEOGEO_VTOTAL;
+
+ m_sprite_line_timer->adjust(m_screen->time_until_pos(scanline), scanline);
+}
+
+
+void neosprite_device::create_sprite_line_timer( )
+{
+ m_sprite_line_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(neosprite_device::sprite_line_timer_callback),this));
+}
+
+
+void neosprite_device::start_sprite_line_timer( )
+{
+ m_sprite_line_timer->adjust(m_screen->time_until_pos(0));
+}
+
+
+// these are for passing in pointers from the main system
+void neosprite_device::set_sprite_region(uint8_t* region_sprites, uint32_t region_sprites_size)
+{
+ m_region_sprites = region_sprites;
+ m_region_sprites_size = region_sprites_size;
+}
+
+void neosprite_device::set_fixed_regions(uint8_t* fix_cart, uint32_t fix_cart_size, memory_region* fix_bios)
+{
+ m_region_fixed = fix_cart;
+ m_region_fixed_size = fix_cart_size;
+ m_region_fixedbios = fix_bios;
+}
+
+void neosprite_device::set_screen(screen_device* screen)
+{
+ m_screen = screen;
+}
+
+void neosprite_device::set_pens(const pen_t* pens)
+{
+ m_pens = pens;
+}
+
+
+
+/*********************************************************************************************************************************/
+/* Regular NeoGeo sprite handling with pre-decode optimization */
+/* */
+/* this is closer to the old MAME implementation where the 4bpp graphics have been expanded to an easier to draw 8bpp format */
+/* for additional speed */
+/*********************************************************************************************************************************/
+
+
+// convert the sprite graphics data into a format that allows faster blitting
+void neosprite_device::optimize_sprite_data()
+{
+ uint32_t mask = 0xffffffff, len = m_region_sprites_size * 2 - 1;
+ uint8_t bit;
+
+ for (bit = 31; bit != 0; bit--)
+ if (BIT(len, bit))
+ break;
+
+ mask >>= (31-bit);
+
+ m_sprite_gfx.resize(mask + 1);
+ m_sprite_gfx_address_mask = mask;
+
+ uint8_t *src = m_region_sprites;
+ uint8_t *dest = &m_sprite_gfx[0];
+
+ for (unsigned i = 0; i < m_region_sprites_size; i += 0x80, src += 0x80)
+ {
+ for (unsigned y = 0; y < 0x10; y++)
+ {
+ for (unsigned x = 0; x < 8; x++)
+ {
+ *(dest++) = (((src[0x43 | (y << 2)] >> x) & 0x01) << 3) |
+ (((src[0x41 | (y << 2)] >> x) & 0x01) << 2) |
+ (((src[0x42 | (y << 2)] >> x) & 0x01) << 1) |
+ (((src[0x40 | (y << 2)] >> x) & 0x01) << 0);
+ }
+
+ for (unsigned x = 0; x < 8; x++)
+ {
+ *(dest++) = (((src[0x03 | (y << 2)] >> x) & 0x01) << 3) |
+ (((src[0x01 | (y << 2)] >> x) & 0x01) << 2) |
+ (((src[0x02 | (y << 2)] >> x) & 0x01) << 1) |
+ (((src[0x00 | (y << 2)] >> x) & 0x01) << 0);
+ }
+ }
+ }
+
+ m_spritegfx8 = &m_sprite_gfx[0];
+}
+
+inline void neosprite_device::draw_pixel(int romaddr, uint32_t* dst, const pen_t *line_pens)
+{
+ const uint8_t gfx = m_spritegfx8[romaddr];
+
+ if (gfx)
+ *dst = line_pens[gfx];
+}
diff --git a/src/hbmame/video/neogeo_spr.h b/src/hbmame/video/neogeo_spr.h
new file mode 100644
index 00000000000..e5ab6d4cfb2
--- /dev/null
+++ b/src/hbmame/video/neogeo_spr.h
@@ -0,0 +1,87 @@
+// license:BSD-3-Clause
+// copyright-holders:Bryan McPhail,Ernesto Corvi,Andrew Prime,Zsolt Vasvari
+// thanks-to:Fuzz
+
+// todo, move these back, currently the sprite code needs some of the values tho
+#define NEOGEO_MASTER_CLOCK (24000000)
+#define NEOGEO_MAIN_CPU_CLOCK (NEOGEO_MASTER_CLOCK / 2)
+#define NEOGEO_AUDIO_CPU_CLOCK (NEOGEO_MASTER_CLOCK / 6)
+#define NEOGEO_YM2610_CLOCK (NEOGEO_MASTER_CLOCK / 3)
+#define NEOGEO_PIXEL_CLOCK (NEOGEO_MASTER_CLOCK / 4)
+#define NEOGEO_HTOTAL (0x180)
+#define NEOGEO_HBEND (0x01e) /* this should really be 29.5 */
+#define NEOGEO_HBSTART (0x15e) /* this should really be 349.5 */
+#define NEOGEO_VTOTAL (0x108)
+#define NEOGEO_VBEND (0x010)
+#define NEOGEO_VBSTART (0x0f0)
+#define NEOGEO_VSSTART (0x100)
+
+
+class neosprite_device : public device_t
+{
+public:
+ neosprite_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ uint8_t m_fixed_layer_bank_type;
+ uint8_t m_fixed_layer_source;
+ uint16_t get_videoram_data( );
+ uint16_t get_videoram_modulo( );
+ uint8_t neogeo_get_auto_animation_counter( );
+ void set_videoram_data( uint16_t data);
+ void set_videoram_offset( uint16_t data );
+ void set_videoram_modulo( uint16_t data);
+ void set_auto_animation_speed( uint8_t data);
+ void set_auto_animation_disabled( uint8_t data);
+ void set_screen(screen_device* screen);
+ void set_pens(const pen_t* pens);
+ virtual void set_sprite_region(uint8_t* region_sprites, uint32_t region_sprites_size);
+ void set_fixed_regions(uint8_t* fix_cart, uint32_t fix_cart_size, memory_region* fix_bios);
+ void draw_fixed_layer( bitmap_rgb32 &bitmap, int scanline );
+ void draw_sprites( bitmap_rgb32 &bitmap, int scanline );
+ void neogeo_set_fixed_layer_source( uint8_t data );
+
+private:
+ virtual void draw_fixed_layer_2pixels(uint32_t*&pixel_addr, int offset, uint8_t* gfx_base, const pen_t* char_pens);
+ void create_auto_animation_timer( );
+ void start_auto_animation_timer( );
+ inline bool sprite_on_scanline(int scanline, int y, int rows);
+ void parse_sprites( int scanline );
+ void create_sprite_line_timer( );
+ void start_sprite_line_timer( );
+ virtual void optimize_sprite_data();
+ virtual void draw_pixel(int romaddr, uint32_t* dst, const pen_t *line_pens);
+
+ std::unique_ptr<uint16_t[]> m_videoram;
+ std::vector<uint8_t> m_sprite_gfx;
+
+ uint16_t *m_videoram_drawsource;
+ uint16_t m_vram_offset;
+ uint16_t m_vram_read_buffer;
+ uint16_t m_vram_modulo;
+ const uint8_t *m_region_zoomy;
+ uint32_t m_sprite_gfx_address_mask;
+ uint8_t m_auto_animation_speed;
+ uint8_t m_auto_animation_disabled;
+ uint8_t m_auto_animation_counter;
+ uint8_t m_auto_animation_frame_counter;
+
+ emu_timer *m_auto_animation_timer;
+ emu_timer *m_sprite_line_timer;
+
+ TIMER_CALLBACK_MEMBER(auto_animation_timer_callback);
+ TIMER_CALLBACK_MEMBER(sprite_line_timer_callback);
+
+ uint8_t m_bppshift; // 4 for 4bpp gfx (NeoGeo) 8 for 8bpp gfx (Midas)
+
+ virtual void device_start() override;
+ virtual void device_reset() override;
+ uint8_t* m_region_sprites;
+ uint32_t m_region_sprites_size;
+ uint8_t* m_region_fixed;
+ uint32_t m_region_fixed_size;
+ memory_region* m_region_fixedbios;
+ screen_device* m_screen;
+ const pen_t *m_pens;
+ uint8_t* m_spritegfx8;
+};
+
+DECLARE_DEVICE_TYPE(NEOGEO_SPRITE, neosprite_device)
diff --git a/src/hbmame/video/pacman.cpp b/src/hbmame/video/pacman.cpp
new file mode 100644
index 00000000000..a1a38546b14
--- /dev/null
+++ b/src/hbmame/video/pacman.cpp
@@ -0,0 +1,360 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+#include "../mame/video/pacman.cpp"
+
+
+VIDEO_START_MEMBER( pacman_state, pacmanx )
+{
+ init_save_state();
+ m_charbank = 0;
+ m_spritebank = 0;
+ m_palettebank = 0;
+ m_colortablebank = 0;
+ m_flipscreen = 0;
+ m_bgpriority = 0;
+ m_inv_spr = 0;
+ m_xoffsethack = 2;
+
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pacman_state::pacman_get_tile_info),this), tilemap_mapper_delegate(FUNC(pacman_state::pacman_scan_rows),this), 16, 16, 36, 28 );
+
+ m_bg_tilemap->set_scrolldx(0, 384*2 - 288*2 );
+ m_bg_tilemap->set_scrolldy(0, 264*2 - 224*2 );
+}
+
+uint32_t pacman_state::screen_update_pacmanx(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+{
+ if (m_bgpriority)
+ bitmap.fill(0,cliprect);
+ else
+ m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
+
+ if( m_spriteram )
+ {
+ uint8_t *spriteram = m_spriteram;
+ uint8_t *spriteram_2 = m_spriteram2;
+ int offs;
+
+ rectangle spriteclip(2*2*8, 2*68*8-1, 0*8, 2*56*8-1);
+ spriteclip &= cliprect;
+
+ /* Draw the sprites. Note that it is important to draw them exactly in this */
+ /* order, to have the correct priorities. */
+ for (offs = m_spriteram.bytes() - 2;offs > 2*2;offs -= 2)
+ {
+ int color;
+ int sx,sy;
+ uint8_t fx,fy;
+
+ if(m_inv_spr)
+ {
+ sx = spriteram_2[offs + 1]*2;
+ sy = 480 - (spriteram_2[offs]*2);
+ }
+ else
+ {
+ sx = 544 - spriteram_2[offs + 1]*2;
+ sy = (spriteram_2[offs] - 31)*2;
+ }
+
+ fx = (spriteram[offs] & 1) ^ m_inv_spr;
+ fy = (spriteram[offs] & 2) ^ ((m_inv_spr) << 1);
+
+ color = ( spriteram[offs + 1] & 0x1f ) | (m_colortablebank << 5) | (m_palettebank << 6 );
+
+ m_gfxdecode->gfx(1)->transmask(bitmap,spriteclip,
+ ( spriteram[offs] >> 2 ) | (m_spritebank << 6),
+ color,
+ fx,fy,
+ sx,sy,
+ m_palette->transpen_mask(*m_gfxdecode->gfx(1), color & 0x3f, 0));
+
+ /* also plot the sprite with wraparound (tunnel in Crush Roller) */
+ m_gfxdecode->gfx(1)->transmask(bitmap,spriteclip,
+ ( spriteram[offs] >> 2 ) | (m_spritebank << 6),
+ color,
+ fx,fy,
+ sx - 512,sy,
+ m_palette->transpen_mask(*m_gfxdecode->gfx(1), color & 0x3f, 0));
+ }
+ /* In the Pac Man based games (NOT Pengo) the first two sprites must be offset */
+ /* one pixel to the left to get a more correct placement */
+ for (offs = 2*2;offs >= 0;offs -= 2)
+ {
+ int color;
+ int sx,sy;
+ uint8_t fx,fy;
+
+ if(m_inv_spr)
+ {
+ sx = spriteram_2[offs + 1]*2;
+ sy = 480 - (spriteram_2[offs]*2);
+ }
+ else
+ {
+ sx = 544 - spriteram_2[offs + 1]*2;
+ sy = (spriteram_2[offs] - 31)*2;
+ }
+ color = ( spriteram[offs + 1] & 0x1f ) | (m_colortablebank << 5) | (m_palettebank << 6 );
+
+ fx = (spriteram[offs] & 1) ^ m_inv_spr;
+ fy = (spriteram[offs] & 2) ^ ((m_inv_spr) << 1);
+
+ m_gfxdecode->gfx(1)->transmask(bitmap,spriteclip,
+ ( spriteram[offs] >> 2 ) | (m_spritebank << 6),
+ color,
+ fx,fy,
+ sx,sy + m_xoffsethack,
+ m_palette->transpen_mask(*m_gfxdecode->gfx(1), color & 0x3f, 0));
+
+ /* also plot the sprite with wraparound (tunnel in Crush Roller) */
+ m_gfxdecode->gfx(1)->transmask(bitmap,spriteclip,
+ ( spriteram[offs] >> 2 ) | (m_spritebank << 6),
+ color,
+ fy,fx, //FIXME: flipping bits are really supposed to be inverted here?
+ sx - 512,sy + m_xoffsethack,
+ m_palette->transpen_mask(*m_gfxdecode->gfx(1), color & 0x3f, 0));
+ }
+ }
+
+ if (m_bgpriority != 0)
+ m_bg_tilemap->draw(screen, bitmap, cliprect, 0,0);
+ return 0;
+}
+
+
+
+
+
+/************************************************************************
+ MULTIPAC adapted for HBMAME by Robbbert
+ ************************************************************************/
+
+static void init_save_state_multipac(running_machine &machine)
+{
+ pacman_state *state = machine.driver_data<pacman_state>();
+ state->save_item(NAME(state->m_charbank));
+ state->save_item(NAME(state->m_spritebank));
+ state->save_item(NAME(state->m_palettebank));
+ state->save_item(NAME(state->m_colortablebank));
+ state->save_item(NAME(state->m_flipscreen));
+ state->save_item(NAME(state->m_bgpriority));
+}
+
+TILE_GET_INFO_MEMBER(pacman_state::multipac_get_tile_info )
+{
+ int code = m_videoram[tile_index] | (m_charbank << 8);
+ int attr = (m_colorram[tile_index] & 0x1f) | (m_colortablebank << 5);
+
+ SET_TILE_INFO_MEMBER(0,code,attr,0);
+}
+
+VIDEO_START_MEMBER( pacman_state, multipac )
+{
+ init_save_state_multipac(machine());
+
+ m_charbank = 0;
+ m_spritebank = 0;
+ m_colortablebank = 0;
+ m_flipscreen = 0;
+ m_bgpriority = 0;
+ m_inv_spr = 0;
+ m_xoffsethack = 1;
+
+ m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(pacman_state::multipac_get_tile_info),this), tilemap_mapper_delegate(FUNC(pacman_state::pacman_scan_rows),this), 8, 8, 36, 28 );
+
+ m_bg_tilemap->set_scrolldx(0, 384 - 288 );
+ m_bg_tilemap->set_scrolldy(0, 264 - 224 );
+}
+
+PALETTE_INIT_MEMBER( pacman_state, multipac )
+{
+ uint16_t i;
+ static const int resistances[3] = { 1000, 470, 220 };
+ double rweights[3], gweights[3], bweights[2];
+ uint8_t bit0, bit1, bit2, r, g, b;
+ uint16_t entries = palette.indirect_entries();
+ uint16_t bank,banks = entries >> 5;
+ const uint8_t *color_prom = machine().root_device().memregion("proms")->base();
+ const uint8_t *m_p_prom = machine().root_device().memregion("proms")->base() + entries;
+
+ /* compute the color output resistor weights */
+ compute_resistor_weights(0, 255, -1.0,
+ 3, &resistances[0], rweights, 0, 0,
+ 3, &resistances[0], gweights, 0, 0,
+ 2, &resistances[1], bweights, 0, 0);
+
+ for (bank = 0; bank < banks; bank++)
+ {
+ uint16_t obank = bank << 7;
+ uint16_t ibank = bank << 5;
+
+ /* create a lookup table for the palette */
+ for (i = ibank; i < (ibank+32); i++)
+ {
+ /* red component */
+ bit0 = BIT(color_prom[i], 0);
+ bit1 = BIT(color_prom[i], 1);
+ bit2 = BIT(color_prom[i], 2);
+ r = combine_3_weights(rweights, bit0, bit1, bit2);
+
+ /* green component */
+ bit0 = BIT(color_prom[i], 3);
+ bit1 = BIT(color_prom[i], 4);
+ bit2 = BIT(color_prom[i], 5);
+ g = combine_3_weights(gweights, bit0, bit1, bit2);
+
+ /* blue component */
+ bit0 = BIT(color_prom[i], 6);
+ bit1 = BIT(color_prom[i], 7);
+ b = combine_2_weights(bweights, bit0, bit1);
+
+ palette.set_indirect_color(i, rgb_t(r, g, b));
+ }
+
+ for (i = obank;i < (obank+128);i++)
+ {
+ if (m_p_prom[i] & 15)
+ palette.set_pen_indirect(i,(m_p_prom[i] & 15) | ibank);
+ else
+ palette.set_pen_indirect(i, 0); /* preserve transparency */
+ }
+ }
+}
+
+uint32_t pacman_state::screen_update_multipac(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+{
+ if (m_bgpriority != 0)
+ bitmap.fill(0, cliprect);
+ else
+ m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
+
+ if( m_spriteram != NULL )
+ {
+ uint8_t *spriteram = m_spriteram;
+ uint8_t *spriteram_2 = m_spriteram2;
+ int offs;
+
+ rectangle spriteclip(2*8, 34*8-1, 0*8, 28*8-1);
+ spriteclip &= cliprect;
+
+ /* Draw the sprites. Note that it is important to draw them exactly in this */
+ /* order, to have the correct priorities. */
+ for (offs = m_spriteram.bytes() - 2;offs > 2*2;offs -= 2)
+ {
+ int color;
+ int sx,sy;
+ uint8_t fx,fy;
+
+ if(m_inv_spr)
+ {
+ sx = spriteram_2[offs + 1];
+ sy = 240 - (spriteram_2[offs]);
+ }
+ else
+ {
+ sx = 272 - spriteram_2[offs + 1];
+ sy = spriteram_2[offs] - 31;
+ }
+
+ fx = (spriteram[offs] & 1) ^ m_inv_spr;
+ fy = (spriteram[offs] & 2) ^ ((m_inv_spr) << 1);
+
+ color = ( spriteram[offs + 1] & 0x1f ) | (m_colortablebank << 5) | (m_palettebank << 6 );
+
+ m_gfxdecode->gfx(1)->transmask(bitmap,spriteclip,
+ ( spriteram[offs] >> 2 ) | (m_spritebank << 6),
+ color,
+ fx,fy,
+ sx,sy,
+ m_palette->transpen_mask(*m_gfxdecode->gfx(1), color, 0));
+
+ /* also plot the sprite with wraparound (tunnel in Crush Roller) */
+ m_gfxdecode->gfx(1)->transmask(bitmap,spriteclip,
+ ( spriteram[offs] >> 2 ) | (m_spritebank << 6),
+ color,
+ fx,fy,
+ sx - 256,sy,
+ m_palette->transpen_mask(*m_gfxdecode->gfx(1), color, 0));
+ }
+ /* In the Pac Man based games (NOT Pengo) the first two sprites must be offset */
+ /* one pixel to the left to get a more correct placement */
+ for (offs = 2*2;offs >= 0;offs -= 2)
+ {
+ int color;
+ int sx,sy;
+ uint8_t fx,fy;
+
+ if(m_inv_spr)
+ {
+ sx = spriteram_2[offs + 1];
+ sy = 240 - (spriteram_2[offs]);
+ }
+ else
+ {
+ sx = 272 - spriteram_2[offs + 1];
+ sy = spriteram_2[offs] - 31;
+ }
+ color = ( spriteram[offs + 1] & 0x1f ) | (m_colortablebank << 5) | (m_palettebank << 6 );
+
+ fx = (spriteram[offs] & 1) ^ m_inv_spr;
+ fy = (spriteram[offs] & 2) ^ ((m_inv_spr) << 1);
+
+ m_gfxdecode->gfx(1)->transmask(bitmap,spriteclip,
+ ( spriteram[offs] >> 2 ) | (m_spritebank << 6),
+ color,
+ fx,fy,
+ sx,sy,
+ m_palette->transpen_mask(*m_gfxdecode->gfx(1), color, 0));
+
+ /* also plot the sprite with wraparound (tunnel in Crush Roller) */
+ m_gfxdecode->gfx(1)->transmask(bitmap,spriteclip,
+ ( spriteram[offs] >> 2 ) | (m_spritebank << 6),
+ color,
+ fx,fy,
+ sx - 256,sy,
+ m_palette->transpen_mask(*m_gfxdecode->gfx(1), color, 0));
+ }
+ }
+
+ if (m_bgpriority != 0)
+ m_bg_tilemap->draw(screen, bitmap, cliprect, 0,0);
+ return 0;
+}
+
+
+WRITE8_MEMBER( pacman_state::multipac_gfxbank_w )
+{
+ m_charbank = data;
+ m_spritebank = data;
+}
+
+/* multipac passes bankselect info for the 4a and 7f roms on separate bytes. MAME can only use one of them */
+WRITE8_MEMBER( pacman_state::multipac_palbank_w )
+{
+ if (offset) m_colortablebank = data;
+}
+
+
+/* =============================================
+ 96in1 / Mad Pac by Robbbert, July 2007
+ ============================================= */
+
+
+void pacman_state::m96in1b_gfxbank_w ( uint8_t gfxbank )
+{
+ uint8_t banks[] = { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 7, 4, 2, 3, 5, 6, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0 };
+ m_charbank = gfxbank;
+ m_spritebank = gfxbank;
+ m_colortablebank = banks[gfxbank];
+}
+
+void pacman_state::madpac_gfxbank_w ( uint8_t gfxbank )
+{
+ m_charbank = gfxbank;
+ m_spritebank = gfxbank;
+
+ if (gfxbank > 15)
+ m_colortablebank = gfxbank - 15;
+ else
+ m_colortablebank = 0;
+}
diff --git a/src/mame/drivers/jrpacman.cpp b/src/mame/drivers/jrpacman.cpp
index caed76f7cf8..73fa539525f 100644
--- a/src/mame/drivers/jrpacman.cpp
+++ b/src/mame/drivers/jrpacman.cpp
@@ -154,6 +154,14 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, jrpacman_state )
AM_RANGE(0x5080, 0x5080) AM_WRITE(jrpacman_scroll_w)
AM_RANGE(0x50c0, 0x50c0) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
AM_RANGE(0x8000, 0xdfff) AM_ROM
+// HBMAME extras
+ AM_RANGE(0x5002, 0x5002) AM_WRITENOP
+ AM_RANGE(0x5004, 0x5005) AM_WRITE(pacman_leds_w)
+ AM_RANGE(0x5006, 0x5006) AM_WRITENOP
+ AM_RANGE(0x5007, 0x5007) AM_WRITENOP
+ AM_RANGE(0x5072, 0x5072) AM_WRITENOP
+ AM_RANGE(0x5076, 0x507f) AM_WRITENOP
+ AM_RANGE(0xfffc, 0xffff) AM_RAM /* for jrfast and fastjr */
ADDRESS_MAP_END
@@ -176,9 +184,8 @@ static INPUT_PORTS_START( jrpacman )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_4WAY
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_4WAY
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_4WAY
- PORT_DIPNAME( 0x10, 0x10, "Rack Test (Cheat)" ) PORT_CODE(KEYCODE_F1)
- PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ /* Press this to instantly finish the level - HBMAME */
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Finish Level (Cheat)") PORT_CODE(KEYCODE_8)
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN3 )
@@ -217,6 +224,21 @@ static INPUT_PORTS_START( jrpacman )
PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:8")
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+
+// HBMAME extras
+ PORT_START ("FAKE")
+ /* This fake input port is used to get the status of the fire button */
+ /* and activate the speedup cheat. */
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME( "Speed (Cheat)" )
+ PORT_DIPNAME( 0x06, 0x02, "Speed Cheat" )
+ PORT_DIPSETTING( 0x00, "Disabled" )
+ PORT_DIPSETTING( 0x02, "Enabled with Button" )
+ PORT_DIPSETTING( 0x04, "Enabled Always" )
+
+ PORT_START ("CONFIG")
+ PORT_CONFNAME( 0x01, 0x01, "Level" )
+ PORT_CONFSETTING( 0x00, DEF_STR( Off ) )
+ PORT_CONFSETTING( 0x01, DEF_STR( On ) )
INPUT_PORTS_END
@@ -276,7 +298,8 @@ static MACHINE_CONFIG_START( jrpacman )
MCFG_CPU_ADD("maincpu", Z80, 18432000/6) /* 3.072 MHz */
MCFG_CPU_PROGRAM_MAP(main_map)
MCFG_CPU_IO_MAP(port_map)
- MCFG_CPU_VBLANK_INT_DRIVER("screen", jrpacman_state, vblank_irq)
+// MCFG_CPU_VBLANK_INT_DRIVER("screen", jrpacman_state, vblank_irq)
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", pacman_state, pacman_interrupt) // HBMAME
MCFG_DEVICE_ADD("latch1", LS259, 0) // 5P
MCFG_ADDRESSABLE_LATCH_Q0_OUT_CB(WRITELINE(jrpacman_state, irq_mask_w))
diff --git a/src/mame/drivers/timeplt.cpp b/src/mame/drivers/timeplt.cpp
index 79673d94d59..2257f2fff90 100644
--- a/src/mame/drivers/timeplt.cpp
+++ b/src/mame/drivers/timeplt.cpp
@@ -133,7 +133,7 @@ CUSTOM_INPUT_MEMBER(timeplt_state::chkun_hopper_status_r)
static ADDRESS_MAP_START( timeplt_main_map, AS_PROGRAM, 8, timeplt_state )
ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE(0x0000, 0x5fff) AM_ROM
+ AM_RANGE(0x0000, 0x7fff) AM_ROM // HBMAME
AM_RANGE(0xa000, 0xa3ff) AM_RAM_WRITE(colorram_w) AM_SHARE("colorram")
AM_RANGE(0xa400, 0xa7ff) AM_RAM_WRITE(videoram_w) AM_SHARE("videoram")
AM_RANGE(0xa800, 0xafff) AM_RAM
diff --git a/src/mame/includes/segaorun.h b/src/mame/includes/segaorun.h
index 5cdd41ebdcc..17a530552f6 100644
--- a/src/mame/includes/segaorun.h
+++ b/src/mame/includes/segaorun.h
@@ -93,7 +93,7 @@ public:
CUSTOM_INPUT_MEMBER( bankmotor_pos_r );
TIMER_DEVICE_CALLBACK_MEMBER(bankmotor_update);
-protected:
+//protected: // HBMAME
// timer IDs
enum
{
diff --git a/src/mame/old/about-0.bmp b/src/mame/old/about-0.bmp
new file mode 100644
index 00000000000..39d48d2d81d
--- /dev/null
+++ b/src/mame/old/about-0.bmp
Binary files differ
diff --git a/src/mame/old/about-1.png b/src/mame/old/about-1.png
new file mode 100644
index 00000000000..9afa02b6723
--- /dev/null
+++ b/src/mame/old/about-1.png
Binary files differ
diff --git a/src/mame/old/bootleg_cart.cpp b/src/mame/old/bootleg_cart.cpp
new file mode 100644
index 00000000000..63532e05b2a
--- /dev/null
+++ b/src/mame/old/bootleg_cart.cpp
@@ -0,0 +1,378 @@
+// license:BSD-3-Clause
+// copyright-holders:S. Smith,David Haywood
+/***********************************************************************************************************
+
+ NEOGEO ROM cart emulation
+
+ ***********************************************************************************************************/
+
+
+#include "emu.h"
+#include "bootleg_cart.h"
+
+
+//-------------------------------------------------
+// neogeo_bootleg_cart - constructor
+//-------------------------------------------------
+
+const device_type NEOGEO_BOOTLEG_CART = device_creator<neogeo_bootleg_cart>;
+
+
+neogeo_bootleg_cart::neogeo_bootleg_cart(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint16_t clock, const char *shortname, const char *source)
+ : device_t(mconfig, type, name, tag, owner, clock, shortname, source),
+ device_neogeo_cart_interface(mconfig, *this),
+ m_banked_cart(*this, "banked_cart"),
+ m_bootleg_prot(*this, "bootleg_prot")
+
+{
+}
+
+neogeo_bootleg_cart::neogeo_bootleg_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock)
+ : device_t(mconfig, NEOGEO_BOOTLEG_CART, "NEOGEO Bootleg Cart", tag, owner, clock, "neogeo_rom", __FILE__),
+ device_neogeo_cart_interface(mconfig, *this),
+ m_banked_cart(*this, "banked_cart"),
+ m_bootleg_prot(*this, "bootleg_prot")
+{
+}
+
+
+//-------------------------------------------------
+// mapper specific start/reset
+//-------------------------------------------------
+
+void neogeo_bootleg_cart::device_start()
+{
+}
+
+void neogeo_bootleg_cart::device_reset()
+{
+}
+
+
+/*-------------------------------------------------
+ mapper specific handlers
+ -------------------------------------------------*/
+
+READ16_MEMBER(neogeo_bootleg_cart::read_rom)
+{
+ return m_rom[offset];
+}
+
+static MACHINE_CONFIG_FRAGMENT( bootleg_cart )
+ MCFG_NEOGEO_BANKED_CART_ADD("banked_cart")
+ MCFG_NGBOOTLEG_PROT_ADD("bootleg_prot")
+MACHINE_CONFIG_END
+
+machine_config_constructor neogeo_bootleg_cart::device_mconfig_additions() const
+{
+ return MACHINE_CONFIG_NAME( bootleg_cart );
+}
+
+
+
+/* Individual cartridge types (mirror DRIVER_INIT functionality) */
+
+
+/*************************************************
+ garoubl
+**************************************************/
+
+const device_type NEOGEO_BOOTLEG_GAROUBL_CART = device_creator<neogeo_bootleg_garoubl_cart>;
+
+neogeo_bootleg_garoubl_cart::neogeo_bootleg_garoubl_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : neogeo_bootleg_cart(mconfig, NEOGEO_BOOTLEG_GAROUBL_CART, "NEOGEO BOOT garoubl Cart", tag, owner, clock, "boot_garoubl_cart", __FILE__) {}
+
+void neogeo_bootleg_garoubl_cart::activate_cart(ACTIVATE_CART_PARAMS)
+{
+ m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size);
+
+}
+
+void neogeo_bootleg_garoubl_cart::decrypt_all(DECRYPT_ALL_PARAMS)
+{
+ m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,2);
+ m_bootleg_prot->neogeo_bootleg_cx_decrypt(spr_region, spr_region_size);
+}
+
+/*************************************************
+ cthd2003
+**************************************************/
+
+const device_type NEOGEO_BOOTLEG_CTHD2003_CART = device_creator<neogeo_bootleg_cthd2003_cart>;
+
+neogeo_bootleg_cthd2003_cart::neogeo_bootleg_cthd2003_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : neogeo_bootleg_cart(mconfig, NEOGEO_BOOTLEG_CTHD2003_CART, "NEOGEO BOOT cthd2003 Cart", tag, owner, clock, "boot_cthd2003_cart", __FILE__) {}
+
+void neogeo_bootleg_cthd2003_cart::activate_cart(ACTIVATE_CART_PARAMS)
+{
+ m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size);
+ m_bootleg_prot->patch_cthd2003(maincpu,m_banked_cart, cpuregion, cpuregion_size);
+}
+
+void neogeo_bootleg_cthd2003_cart::decrypt_all(DECRYPT_ALL_PARAMS)
+{
+ m_bootleg_prot->decrypt_cthd2003(spr_region, spr_region_size, audiocpu_region, audio_region_size, fix_region, fix_region_size);
+}
+
+/******/
+
+const device_type NEOGEO_BOOTLEG_CT2K3SP_CART = device_creator<neogeo_bootleg_ct2k3sp_cart>;
+
+neogeo_bootleg_ct2k3sp_cart::neogeo_bootleg_ct2k3sp_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : neogeo_bootleg_cart(mconfig, NEOGEO_BOOTLEG_CT2K3SP_CART, "NEOGEO BOOT ct2k3sp Cart", tag, owner, clock, "boot_ct2k3sp_cart", __FILE__) {}
+
+void neogeo_bootleg_ct2k3sp_cart::activate_cart(ACTIVATE_CART_PARAMS)
+{
+ m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size);
+ m_bootleg_prot->patch_cthd2003(maincpu,m_banked_cart, cpuregion, cpuregion_size);
+}
+
+void neogeo_bootleg_ct2k3sp_cart::decrypt_all(DECRYPT_ALL_PARAMS)
+{
+ m_bootleg_prot->decrypt_ct2k3sp(spr_region, spr_region_size, audiocpu_region, audio_region_size, fix_region, fix_region_size);
+}
+
+/******/
+
+const device_type NEOGEO_BOOTLEG_CT2K3SA_CART = device_creator<neogeo_bootleg_ct2k3sa_cart>;
+
+neogeo_bootleg_ct2k3sa_cart::neogeo_bootleg_ct2k3sa_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : neogeo_bootleg_cart(mconfig, NEOGEO_BOOTLEG_CT2K3SA_CART, "NEOGEO BOOT ct2k3sa Cart", tag, owner, clock, "boot_ct2k3sa_cart", __FILE__) {}
+
+void neogeo_bootleg_ct2k3sa_cart::activate_cart(ACTIVATE_CART_PARAMS)
+{
+ m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size);
+}
+
+void neogeo_bootleg_ct2k3sa_cart::decrypt_all(DECRYPT_ALL_PARAMS)
+{
+ m_bootleg_prot->decrypt_ct2k3sa(spr_region, spr_region_size, audiocpu_region, audio_region_size);
+ m_bootleg_prot->patch_ct2k3sa(cpuregion, cpuregion_size);
+}
+
+/*************************************************
+ kf10thep
+**************************************************/
+
+const device_type NEOGEO_BOOTLEG_KF10THEP_CART = device_creator<neogeo_bootleg_kf10thep_cart>;
+
+neogeo_bootleg_kf10thep_cart::neogeo_bootleg_kf10thep_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : neogeo_bootleg_cart(mconfig, NEOGEO_BOOTLEG_KF10THEP_CART, "NEOGEO BOOT kf10thep Cart", tag, owner, clock, "boot_kf10thep_cart", __FILE__) {}
+
+void neogeo_bootleg_kf10thep_cart::activate_cart(ACTIVATE_CART_PARAMS)
+{
+ m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size);
+
+}
+
+void neogeo_bootleg_kf10thep_cart::decrypt_all(DECRYPT_ALL_PARAMS)
+{
+ m_bootleg_prot->kf10thep_px_decrypt(cpuregion, cpuregion_size);
+ m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region,fix_region_size,1);
+}
+
+
+/*************************************************
+ kf2k5uni
+**************************************************/
+
+const device_type NEOGEO_BOOTLEG_KF2K5UNI_CART = device_creator<neogeo_bootleg_kf2k5uni_cart>;
+
+neogeo_bootleg_kf2k5uni_cart::neogeo_bootleg_kf2k5uni_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : neogeo_bootleg_cart(mconfig, NEOGEO_BOOTLEG_KF2K5UNI_CART, "NEOGEO BOOT kf2k5uni Cart", tag, owner, clock, "boot_kf2k5uni_cart", __FILE__) {}
+
+void neogeo_bootleg_kf2k5uni_cart::activate_cart(ACTIVATE_CART_PARAMS)
+{
+ m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size);
+
+}
+
+void neogeo_bootleg_kf2k5uni_cart::decrypt_all(DECRYPT_ALL_PARAMS)
+{
+ m_bootleg_prot->decrypt_kf2k5uni(cpuregion,cpuregion_size, audiocpu_region, audio_region_size, fix_region, fix_region_size);
+}
+
+
+/*************************************************
+ kf2k4se
+**************************************************/
+
+const device_type NEOGEO_BOOTLEG_KF2K4SE_CART = device_creator<neogeo_bootleg_kf2k4se_cart>;
+
+neogeo_bootleg_kf2k4se_cart::neogeo_bootleg_kf2k4se_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : neogeo_bootleg_cart(mconfig, NEOGEO_BOOTLEG_KF2K4SE_CART, "NEOGEO BOOT kf2k4se Cart", tag, owner, clock, "boot_kf2k4se_cart", __FILE__) {}
+
+void neogeo_bootleg_kf2k4se_cart::activate_cart(ACTIVATE_CART_PARAMS)
+{
+ m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size);
+
+}
+
+void neogeo_bootleg_kf2k4se_cart::decrypt_all(DECRYPT_ALL_PARAMS)
+{
+ m_bootleg_prot->decrypt_kof2k4se_68k(cpuregion, cpuregion_size);
+}
+
+
+
+/*************************************************
+ svcplus
+**************************************************/
+
+const device_type NEOGEO_BOOTLEG_SVCPLUS_CART = device_creator<neogeo_bootleg_svcplus_cart>;
+
+neogeo_bootleg_svcplus_cart::neogeo_bootleg_svcplus_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : neogeo_bootleg_cart(mconfig, NEOGEO_BOOTLEG_SVCPLUS_CART, "NEOGEO BOOT svcplus Cart", tag, owner, clock, "boot_svcplus_cart", __FILE__) {}
+
+void neogeo_bootleg_svcplus_cart::activate_cart(ACTIVATE_CART_PARAMS)
+{
+ m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size);
+
+}
+
+void neogeo_bootleg_svcplus_cart::decrypt_all(DECRYPT_ALL_PARAMS)
+{
+ m_bootleg_prot->svcplus_px_decrypt(cpuregion, cpuregion_size);
+ m_bootleg_prot->svcboot_cx_decrypt(spr_region, spr_region_size);
+ m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size, 1);
+ m_bootleg_prot->svcplus_px_hack(cpuregion, cpuregion_size);
+}
+
+
+/*************************************************
+ svcplusaa
+**************************************************/
+
+const device_type NEOGEO_BOOTLEG_SVCPLUSA_CART = device_creator<neogeo_bootleg_svcplusa_cart>;
+
+neogeo_bootleg_svcplusa_cart::neogeo_bootleg_svcplusa_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : neogeo_bootleg_cart(mconfig, NEOGEO_BOOTLEG_SVCPLUSA_CART, "NEOGEO BOOT svcplusa Cart", tag, owner, clock, "boot_svcplusa_cart", __FILE__) {}
+
+void neogeo_bootleg_svcplusa_cart::activate_cart(ACTIVATE_CART_PARAMS)
+{
+ m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size);
+
+}
+
+void neogeo_bootleg_svcplusa_cart::decrypt_all(DECRYPT_ALL_PARAMS)
+{
+ m_bootleg_prot->svcplusa_px_decrypt(cpuregion, cpuregion_size);
+ m_bootleg_prot->svcboot_cx_decrypt(spr_region, spr_region_size);
+ m_bootleg_prot->svcplus_px_hack(cpuregion, cpuregion_size);
+}
+
+/*************************************************
+ samsho5b
+**************************************************/
+
+const device_type NEOGEO_BOOTLEG_SAMSHO5B_CART = device_creator<neogeo_bootleg_samsho5b_cart>;
+
+neogeo_bootleg_samsho5b_cart::neogeo_bootleg_samsho5b_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : neogeo_bootleg_cart(mconfig, NEOGEO_BOOTLEG_SAMSHO5B_CART, "NEOGEO BOOT samsho5b Cart", tag, owner, clock, "boot_samsho5b_cart", __FILE__) {}
+
+void neogeo_bootleg_samsho5b_cart::activate_cart(ACTIVATE_CART_PARAMS)
+{
+ m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size);
+
+}
+
+void neogeo_bootleg_samsho5b_cart::decrypt_all(DECRYPT_ALL_PARAMS)
+{
+ m_bootleg_prot->samsho5b_px_decrypt(cpuregion, cpuregion_size);
+ m_bootleg_prot->samsho5b_vx_decrypt(ym_region, ym_region_size);
+ m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,1);
+ m_bootleg_prot->neogeo_bootleg_cx_decrypt(spr_region, spr_region_size);
+}
+
+
+/*************************************************
+ kof97oro
+**************************************************/
+
+const device_type NEOGEO_BOOTLEG_KOF97ORO_CART = device_creator<neogeo_bootleg_kof97oro_cart>;
+
+neogeo_bootleg_kof97oro_cart::neogeo_bootleg_kof97oro_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : neogeo_bootleg_cart(mconfig, NEOGEO_BOOTLEG_KOF97ORO_CART, "NEOGEO BOOT kof97oro Cart", tag, owner, clock, "boot_kof97oro_cart", __FILE__) {}
+
+void neogeo_bootleg_kof97oro_cart::activate_cart(ACTIVATE_CART_PARAMS)
+{
+ m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size);
+
+}
+
+void neogeo_bootleg_kof97oro_cart::decrypt_all(DECRYPT_ALL_PARAMS)
+{
+ m_bootleg_prot->kof97oro_px_decode(cpuregion, cpuregion_size);
+ m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,1);
+ m_bootleg_prot->neogeo_bootleg_cx_decrypt(spr_region, spr_region_size);
+}
+
+
+/*************************************************
+ lans2004
+**************************************************/
+
+const device_type NEOGEO_BOOTLEG_LANS2004_CART = device_creator<neogeo_bootleg_lans2004_cart>;
+
+neogeo_bootleg_lans2004_cart::neogeo_bootleg_lans2004_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : neogeo_bootleg_cart(mconfig, NEOGEO_BOOTLEG_LANS2004_CART, "NEOGEO BOOT lans2004 Cart", tag, owner, clock, "boot_lans2004_cart", __FILE__) {}
+
+void neogeo_bootleg_lans2004_cart::activate_cart(ACTIVATE_CART_PARAMS)
+{
+ m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size);
+
+}
+
+void neogeo_bootleg_lans2004_cart::decrypt_all(DECRYPT_ALL_PARAMS)
+{
+ m_bootleg_prot->lans2004_decrypt_68k(cpuregion, cpuregion_size);
+ m_bootleg_prot->lans2004_vx_decrypt(ym_region, ym_region_size);
+ m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,1);
+ m_bootleg_prot->neogeo_bootleg_cx_decrypt(spr_region, spr_region_size);
+}
+
+
+/*************************************************
+ kof10th
+**************************************************/
+
+const device_type NEOGEO_BOOTLEG_KOF10TH_CART = device_creator<neogeo_bootleg_kof10th_cart>;
+
+neogeo_bootleg_kof10th_cart::neogeo_bootleg_kof10th_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : neogeo_bootleg_cart(mconfig, NEOGEO_BOOTLEG_KOF10TH_CART, "NEOGEO BOOT kof10th Cart", tag, owner, clock, "boot_kof10th_cart", __FILE__) {}
+
+void neogeo_bootleg_kof10th_cart::activate_cart(ACTIVATE_CART_PARAMS)
+{
+ m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size);
+ m_bootleg_prot->install_kof10th_protection(maincpu,m_banked_cart, cpuregion, cpuregion_size, fixedregion, fixedregion_size);
+
+}
+
+void neogeo_bootleg_kof10th_cart::decrypt_all(DECRYPT_ALL_PARAMS)
+{
+ m_bootleg_prot->decrypt_kof10th(cpuregion, cpuregion_size);
+}
+
+
+
+/*************************************************
+ kog
+**************************************************/
+
+const device_type NEOGEO_BOOTLEG_KOG_CART = device_creator<neogeo_bootleg_kog_cart>;
+
+neogeo_bootleg_kog_cart::neogeo_bootleg_kog_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : neogeo_bootleg_cart(mconfig, NEOGEO_BOOTLEG_KOG_CART, "NEOGEO BOOT kog Cart", tag, owner, clock, "boot_kog_cart", __FILE__),
+ m_kog_prot(*this, "kog_prot")
+{}
+
+static MACHINE_CONFIG_FRAGMENT( kog_bootleg_cart )
+ MCFG_NEOGEO_BANKED_CART_ADD("banked_cart")
+ MCFG_NGBOOTLEG_PROT_ADD("bootleg_prot")
+ MCFG_KOG_PROT_ADD("kog_prot")
+MACHINE_CONFIG_END
+
+machine_config_constructor neogeo_bootleg_kog_cart::device_mconfig_additions() const
+{
+ return MACHINE_CONFIG_NAME( kog_bootleg_cart );
+}
+
+
+void neogeo_bootleg_kog_cart::activate_cart(ACTIVATE_CART_PARAMS)
+{
+ m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size);
+ m_kog_prot->kog_install_protection(maincpu);
+}
+
+void neogeo_bootleg_kog_cart::decrypt_all(DECRYPT_ALL_PARAMS)
+{
+ m_kog_prot->kog_px_decrypt(cpuregion, cpuregion_size);
+ m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,1);
+ m_bootleg_prot->neogeo_bootleg_cx_decrypt(spr_region, spr_region_size);
+}
diff --git a/src/mame/old/bootleg_cart.h b/src/mame/old/bootleg_cart.h
new file mode 100644
index 00000000000..6eda13fdfc2
--- /dev/null
+++ b/src/mame/old/bootleg_cart.h
@@ -0,0 +1,250 @@
+// license:BSD-3-Clause
+// copyright-holders:S. Smith,David Haywood
+#ifndef __NEOGEO_BOOTLEG_CART_H
+#define __NEOGEO_BOOTLEG_CART_H
+
+#include "neogeo_slot.h"
+#include "banked_cart.h"
+#include "sma_prot.h"
+#include "bootleg_prot.h"
+#include "kog_prot.h"
+
+// ======================> neogeo_bootleg_cart
+
+class neogeo_bootleg_cart : public device_t,
+ public device_neogeo_cart_interface
+{
+public:
+ // construction/destruction
+ neogeo_bootleg_cart(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint16_t clock, const char *shortname, const char *source);
+ neogeo_bootleg_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock);
+
+ // device-level overrides
+ virtual void device_start() override;
+ virtual void device_reset() override;
+ virtual machine_config_constructor device_mconfig_additions() const override;
+
+ // reading and writing
+ virtual DECLARE_READ16_MEMBER(read_rom) override;
+
+ virtual void activate_cart(ACTIVATE_CART_PARAMS) override {}
+ virtual void decrypt_all(DECRYPT_ALL_PARAMS) override {}
+ virtual int get_fixed_bank_type(void) override { return 0; }
+
+ required_device<neogeo_banked_cart_device> m_banked_cart;
+ required_device<ngbootleg_prot_device> m_bootleg_prot;
+};
+
+
+
+// device type definition
+extern const device_type NEOGEO_BOOTLEG_CART;
+
+
+/*************************************************
+ GAROUBL
+**************************************************/
+
+class neogeo_bootleg_garoubl_cart : public neogeo_bootleg_cart
+{
+public:
+ neogeo_bootleg_garoubl_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ void activate_cart(ACTIVATE_CART_PARAMS) override;
+ virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
+ virtual int get_fixed_bank_type(void) override { return 0; }
+};
+extern const device_type NEOGEO_BOOTLEG_GAROUBL_CART;
+
+
+/*************************************************
+ CTHD2003
+**************************************************/
+
+class neogeo_bootleg_cthd2003_cart : public neogeo_bootleg_cart
+{
+public:
+ neogeo_bootleg_cthd2003_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ void activate_cart(ACTIVATE_CART_PARAMS) override;
+ virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
+ virtual int get_fixed_bank_type(void) override { return 0; }
+};
+extern const device_type NEOGEO_BOOTLEG_CTHD2003_CART;
+
+class neogeo_bootleg_ct2k3sp_cart : public neogeo_bootleg_cart
+{
+public:
+ neogeo_bootleg_ct2k3sp_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ void activate_cart(ACTIVATE_CART_PARAMS) override;
+ virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
+ virtual int get_fixed_bank_type(void) override { return 0; }
+};
+extern const device_type NEOGEO_BOOTLEG_CT2K3SP_CART;
+
+class neogeo_bootleg_ct2k3sa_cart : public neogeo_bootleg_cart
+{
+public:
+ neogeo_bootleg_ct2k3sa_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ void activate_cart(ACTIVATE_CART_PARAMS) override;
+ virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
+ virtual int get_fixed_bank_type(void) override { return 0; }
+};
+extern const device_type NEOGEO_BOOTLEG_CT2K3SA_CART;
+
+
+/*************************************************
+ KF10THEP
+**************************************************/
+
+class neogeo_bootleg_kf10thep_cart : public neogeo_bootleg_cart
+{
+public:
+ neogeo_bootleg_kf10thep_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ void activate_cart(ACTIVATE_CART_PARAMS) override;
+ virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
+ virtual int get_fixed_bank_type(void) override { return 0; }
+};
+extern const device_type NEOGEO_BOOTLEG_KF10THEP_CART;
+
+
+/*************************************************
+ KF2K5UNI
+**************************************************/
+
+class neogeo_bootleg_kf2k5uni_cart : public neogeo_bootleg_cart
+{
+public:
+ neogeo_bootleg_kf2k5uni_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ void activate_cart(ACTIVATE_CART_PARAMS) override;
+ virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
+ virtual int get_fixed_bank_type(void) override { return 0; }
+};
+extern const device_type NEOGEO_BOOTLEG_KF2K5UNI_CART;
+
+/*************************************************
+ KF2K4SE
+**************************************************/
+
+class neogeo_bootleg_kf2k4se_cart : public neogeo_bootleg_cart
+{
+public:
+ neogeo_bootleg_kf2k4se_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ void activate_cart(ACTIVATE_CART_PARAMS) override;
+ virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
+ virtual int get_fixed_bank_type(void) override { return 0; }
+};
+extern const device_type NEOGEO_BOOTLEG_KF2K4SE_CART;
+
+
+/*************************************************
+ SVCPLUS
+**************************************************/
+
+class neogeo_bootleg_svcplus_cart : public neogeo_bootleg_cart
+{
+public:
+ neogeo_bootleg_svcplus_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ void activate_cart(ACTIVATE_CART_PARAMS) override;
+ virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
+ virtual int get_fixed_bank_type(void) override { return 0; }
+};
+extern const device_type NEOGEO_BOOTLEG_SVCPLUS_CART;
+
+/*************************************************
+ SVCPLUSA
+**************************************************/
+
+class neogeo_bootleg_svcplusa_cart : public neogeo_bootleg_cart
+{
+public:
+ neogeo_bootleg_svcplusa_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ void activate_cart(ACTIVATE_CART_PARAMS) override;
+ virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
+ virtual int get_fixed_bank_type(void) override { return 0; }
+};
+extern const device_type NEOGEO_BOOTLEG_SVCPLUSA_CART;
+
+/*************************************************
+ SAMSHO5B
+**************************************************/
+
+class neogeo_bootleg_samsho5b_cart : public neogeo_bootleg_cart
+{
+public:
+ neogeo_bootleg_samsho5b_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ void activate_cart(ACTIVATE_CART_PARAMS) override;
+ virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
+ virtual int get_fixed_bank_type(void) override { return 0; }
+};
+extern const device_type NEOGEO_BOOTLEG_SAMSHO5B_CART;
+
+
+/*************************************************
+ KOF97ORO
+**************************************************/
+
+class neogeo_bootleg_kof97oro_cart : public neogeo_bootleg_cart
+{
+public:
+ neogeo_bootleg_kof97oro_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ void activate_cart(ACTIVATE_CART_PARAMS) override;
+ virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
+ virtual int get_fixed_bank_type(void) override { return 0; }
+};
+extern const device_type NEOGEO_BOOTLEG_KOF97ORO_CART;
+
+
+/*************************************************
+ LANS2004
+**************************************************/
+
+class neogeo_bootleg_lans2004_cart : public neogeo_bootleg_cart
+{
+public:
+ neogeo_bootleg_lans2004_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ void activate_cart(ACTIVATE_CART_PARAMS) override;
+ virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
+ virtual int get_fixed_bank_type(void) override { return 0; }
+};
+extern const device_type NEOGEO_BOOTLEG_LANS2004_CART;
+
+/*************************************************
+ KOF10TH
+**************************************************/
+
+class neogeo_bootleg_kof10th_cart : public neogeo_bootleg_cart
+{
+public:
+ neogeo_bootleg_kof10th_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ void activate_cart(ACTIVATE_CART_PARAMS) override;
+ virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
+ virtual int get_fixed_bank_type(void) override { return 0; }
+};
+extern const device_type NEOGEO_BOOTLEG_KOF10TH_CART;
+
+
+
+/*************************************************
+ KOG
+**************************************************/
+
+class neogeo_bootleg_kog_cart : public neogeo_bootleg_cart
+{
+public:
+ neogeo_bootleg_kog_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ void activate_cart(ACTIVATE_CART_PARAMS) override;
+ virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
+ virtual int get_fixed_bank_type(void) override { return 0; }
+
+ virtual machine_config_constructor device_mconfig_additions() const override;
+
+ required_device<kog_prot_device> m_kog_prot;
+};
+extern const device_type NEOGEO_BOOTLEG_KOG_CART;
+
+
+
+
+
+
+
+#endif
diff --git a/src/mame/old/bootleg_hybrid_cart.cpp b/src/mame/old/bootleg_hybrid_cart.cpp
new file mode 100644
index 00000000000..ef24dcde447
--- /dev/null
+++ b/src/mame/old/bootleg_hybrid_cart.cpp
@@ -0,0 +1,319 @@
+// license:BSD-3-Clause
+// copyright-holders:S. Smith,David Haywood
+/***********************************************************************************************************
+
+ NEOGEO ROM cart emulation
+
+ these are bootlegs using a mix of reimplemented original features, could be further sorted
+
+ ***********************************************************************************************************/
+
+
+#include "emu.h"
+#include "bootleg_hybrid_cart.h"
+
+
+//-------------------------------------------------
+// neogeo_bootleg_hybrid_hybrid_cart - constructor
+//-------------------------------------------------
+
+const device_type NEOGEO_BOOTLEG_HYBRID_HYBRID_CART = device_creator<neogeo_bootleg_hybrid_hybrid_cart>;
+
+
+neogeo_bootleg_hybrid_hybrid_cart::neogeo_bootleg_hybrid_hybrid_cart(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint16_t clock, const char *shortname, const char *source)
+ : device_t(mconfig, type, name, tag, owner, clock, shortname, source),
+ device_neogeo_cart_interface(mconfig, *this),
+ m_banked_cart(*this, "banked_cart"),
+ m_bootleg_prot(*this, "bootleg_prot"),
+ m_cmc_prot(*this, "cmc_prot"),
+ m_pcm2_prot(*this, "pcm2_prot"),
+ m_kof2002_prot(*this, "kof2002_prot"),
+ m_pvc_prot(*this, "pvc_prot")
+{
+}
+
+neogeo_bootleg_hybrid_hybrid_cart::neogeo_bootleg_hybrid_hybrid_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock)
+ : device_t(mconfig, NEOGEO_BOOTLEG_HYBRID_HYBRID_CART, "NEOGEO SMA Cart", tag, owner, clock, "neogeo_rom", __FILE__),
+ device_neogeo_cart_interface(mconfig, *this),
+ m_banked_cart(*this, "banked_cart"),
+ m_bootleg_prot(*this, "bootleg_prot"),
+ m_cmc_prot(*this, "cmc_prot"),
+ m_pcm2_prot(*this, "pcm2_prot"),
+ m_kof2002_prot(*this, "kof2002_prot"),
+ m_pvc_prot(*this, "pvc_prot")
+
+{
+}
+
+
+//-------------------------------------------------
+// mapper specific start/reset
+//-------------------------------------------------
+
+void neogeo_bootleg_hybrid_hybrid_cart::device_start()
+{
+}
+
+void neogeo_bootleg_hybrid_hybrid_cart::device_reset()
+{
+}
+
+
+/*-------------------------------------------------
+ mapper specific handlers
+ -------------------------------------------------*/
+
+READ16_MEMBER(neogeo_bootleg_hybrid_hybrid_cart::read_rom)
+{
+ return m_rom[offset];
+}
+
+static MACHINE_CONFIG_FRAGMENT( bootleg_hybrid_cart )
+ MCFG_NEOGEO_BANKED_CART_ADD("banked_cart")
+ MCFG_NGBOOTLEG_PROT_ADD("bootleg_prot")
+ MCFG_CMC_PROT_ADD("cmc_prot")
+ MCFG_PCM2_PROT_ADD("pcm2_prot")
+ MCFG_KOF2002_PROT_ADD("kof2002_prot")
+ MCFG_PVC_PROT_ADD("pvc_prot")
+MACHINE_CONFIG_END
+
+machine_config_constructor neogeo_bootleg_hybrid_hybrid_cart::device_mconfig_additions() const
+{
+ return MACHINE_CONFIG_NAME( bootleg_hybrid_cart );
+}
+
+
+
+/* Individual cartridge types (mirror DRIVER_INIT functionality) */
+
+
+/*************************************************
+ mslug3b6
+**************************************************/
+
+const device_type NEOGEO_BOOTLEG_HYBRID_MSLUG3B6_CART = device_creator<neogeo_bootleg_hybrid_mslug3b6_cart>;
+
+neogeo_bootleg_hybrid_mslug3b6_cart::neogeo_bootleg_hybrid_mslug3b6_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : neogeo_bootleg_hybrid_hybrid_cart(mconfig, NEOGEO_BOOTLEG_HYBRID_MSLUG3B6_CART, "NEOGEO BOOT mslug3b6 Cart", tag, owner, clock, "boot_mslug3b6_cart", __FILE__) {}
+
+void neogeo_bootleg_hybrid_mslug3b6_cart::activate_cart(ACTIVATE_CART_PARAMS)
+{
+ m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size);
+
+}
+
+void neogeo_bootleg_hybrid_mslug3b6_cart::decrypt_all(DECRYPT_ALL_PARAMS)
+{
+ m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,2);
+ m_cmc_prot->cmc42_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, MSLUG3_GFX_KEY);
+}
+
+/*************************************************
+ kof2002b
+**************************************************/
+
+const device_type NEOGEO_BOOTLEG_HYBRID_KOF2002B_CART = device_creator<neogeo_bootleg_hybrid_kof2002b_cart>;
+
+neogeo_bootleg_hybrid_kof2002b_cart::neogeo_bootleg_hybrid_kof2002b_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : neogeo_bootleg_hybrid_hybrid_cart(mconfig, NEOGEO_BOOTLEG_HYBRID_KOF2002B_CART, "NEOGEO BOOT kof2002b Cart", tag, owner, clock, "boot_kof2002b_cart", __FILE__) {}
+
+void neogeo_bootleg_hybrid_kof2002b_cart::activate_cart(ACTIVATE_CART_PARAMS)
+{
+ m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size);
+
+}
+
+void neogeo_bootleg_hybrid_kof2002b_cart::decrypt_all(DECRYPT_ALL_PARAMS)
+{
+ m_kof2002_prot->kof2002_decrypt_68k(cpuregion, cpuregion_size);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 0);
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size);
+ m_bootleg_prot->kof2002b_gfx_decrypt(spr_region,0x4000000);
+ m_bootleg_prot->kof2002b_gfx_decrypt(fix_region,0x20000);
+}
+
+/***/
+
+const device_type NEOGEO_BOOTLEG_HYBRID_KF2K2MP_CART = device_creator<neogeo_bootleg_hybrid_kf2k2mp_cart>;
+
+neogeo_bootleg_hybrid_kf2k2mp_cart::neogeo_bootleg_hybrid_kf2k2mp_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : neogeo_bootleg_hybrid_hybrid_cart(mconfig, NEOGEO_BOOTLEG_HYBRID_KF2K2MP_CART, "NEOGEO BOOT kf2k2mp Cart", tag, owner, clock, "boot_kf2k2mp_cart", __FILE__) {}
+
+void neogeo_bootleg_hybrid_kf2k2mp_cart::activate_cart(ACTIVATE_CART_PARAMS)
+{
+ m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size);
+
+}
+
+void neogeo_bootleg_hybrid_kf2k2mp_cart::decrypt_all(DECRYPT_ALL_PARAMS)
+{
+ m_bootleg_prot->kf2k2mp_decrypt(cpuregion, cpuregion_size);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 0);
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size);
+ m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,2);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, KOF2002_GFX_KEY);
+}
+
+/***/
+
+const device_type NEOGEO_BOOTLEG_HYBRID_KF2K2MP2_CART = device_creator<neogeo_bootleg_hybrid_kf2k2mp2_cart>;
+
+neogeo_bootleg_hybrid_kf2k2mp2_cart::neogeo_bootleg_hybrid_kf2k2mp2_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : neogeo_bootleg_hybrid_hybrid_cart(mconfig, NEOGEO_BOOTLEG_HYBRID_KF2K2MP2_CART, "NEOGEO BOOT kf2k2mp2 Cart", tag, owner, clock, "boot_kf2k2mp2_cart", __FILE__) {}
+
+void neogeo_bootleg_hybrid_kf2k2mp2_cart::activate_cart(ACTIVATE_CART_PARAMS)
+{
+ m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size);
+
+}
+
+void neogeo_bootleg_hybrid_kf2k2mp2_cart::decrypt_all(DECRYPT_ALL_PARAMS)
+{
+ m_bootleg_prot->kf2k2mp2_px_decrypt(cpuregion, cpuregion_size);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 0);
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size);
+ m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,1);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, KOF2002_GFX_KEY);
+}
+
+/*************************************************
+ matrimbl
+**************************************************/
+
+const device_type NEOGEO_BOOTLEG_HYBRID_MATRIMBL_CART = device_creator<neogeo_bootleg_hybrid_matrimbl_cart>;
+
+neogeo_bootleg_hybrid_matrimbl_cart::neogeo_bootleg_hybrid_matrimbl_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : neogeo_bootleg_hybrid_hybrid_cart(mconfig, NEOGEO_BOOTLEG_HYBRID_MATRIMBL_CART, "NEOGEO BOOT matrimbl Cart", tag, owner, clock, "boot_matrimbl_cart", __FILE__) {}
+
+void neogeo_bootleg_hybrid_matrimbl_cart::activate_cart(ACTIVATE_CART_PARAMS)
+{
+ m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size);
+
+}
+
+void neogeo_bootleg_hybrid_matrimbl_cart::decrypt_all(DECRYPT_ALL_PARAMS)
+{
+ m_kof2002_prot->matrim_decrypt_68k(cpuregion, cpuregion_size);
+ m_bootleg_prot->matrimbl_decrypt(spr_region, spr_region_size, audiocpu_region,audio_region_size);
+ m_cmc_prot->neogeo_sfix_decrypt(spr_region, spr_region_size, fix_region, fix_region_size); /* required for text layer */
+}
+
+/*************************************************
+ ms5plus
+**************************************************/
+
+const device_type NEOGEO_BOOTLEG_HYBRID_MS5PLUS_CART = device_creator<neogeo_bootleg_hybrid_ms5plus_cart>;
+
+neogeo_bootleg_hybrid_ms5plus_cart::neogeo_bootleg_hybrid_ms5plus_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : neogeo_bootleg_hybrid_hybrid_cart(mconfig, NEOGEO_BOOTLEG_HYBRID_MS5PLUS_CART, "NEOGEO BOOT ms5plus Cart", tag, owner, clock, "boot_ms5plus_cart", __FILE__) {}
+
+void neogeo_bootleg_hybrid_ms5plus_cart::activate_cart(ACTIVATE_CART_PARAMS)
+{
+ m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size);
+ m_bootleg_prot->install_ms5plus_protection(maincpu,m_banked_cart);
+}
+
+void neogeo_bootleg_hybrid_ms5plus_cart::decrypt_all(DECRYPT_ALL_PARAMS)
+{
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, MSLUG5_GFX_KEY);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 2);
+ m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,1);
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size);
+}
+
+/*************************************************
+ svcboot
+**************************************************/
+
+const device_type NEOGEO_BOOTLEG_HYBRID_SVCBOOT_CART = device_creator<neogeo_bootleg_hybrid_svcboot_cart>;
+
+neogeo_bootleg_hybrid_svcboot_cart::neogeo_bootleg_hybrid_svcboot_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : neogeo_bootleg_hybrid_hybrid_cart(mconfig, NEOGEO_BOOTLEG_HYBRID_SVCBOOT_CART, "NEOGEO BOOT svcboot Cart", tag, owner, clock, "boot_svcboot_cart", __FILE__) {}
+
+void neogeo_bootleg_hybrid_svcboot_cart::activate_cart(ACTIVATE_CART_PARAMS)
+{
+ m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size);
+ m_pvc_prot->install_pvc_protection(maincpu,m_banked_cart);
+}
+
+void neogeo_bootleg_hybrid_svcboot_cart::decrypt_all(DECRYPT_ALL_PARAMS)
+{
+ m_bootleg_prot->svcboot_px_decrypt(cpuregion, cpuregion_size);
+ m_bootleg_prot->svcboot_cx_decrypt(spr_region, spr_region_size);
+}
+
+/***/
+
+const device_type NEOGEO_BOOTLEG_HYBRID_SVCSPLUS_CART = device_creator<neogeo_bootleg_hybrid_svcsplus_cart>;
+
+neogeo_bootleg_hybrid_svcsplus_cart::neogeo_bootleg_hybrid_svcsplus_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : neogeo_bootleg_hybrid_hybrid_cart(mconfig, NEOGEO_BOOTLEG_HYBRID_SVCSPLUS_CART, "NEOGEO BOOT svcsplus Cart", tag, owner, clock, "boot_svcsplus_cart", __FILE__) {}
+
+void neogeo_bootleg_hybrid_svcsplus_cart::activate_cart(ACTIVATE_CART_PARAMS)
+{
+ m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size);
+ m_pvc_prot->install_pvc_protection(maincpu,m_banked_cart);
+
+}
+
+void neogeo_bootleg_hybrid_svcsplus_cart::decrypt_all(DECRYPT_ALL_PARAMS)
+{
+ m_bootleg_prot->svcsplus_px_decrypt(cpuregion, cpuregion_size);
+ m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,2);
+ m_bootleg_prot->svcboot_cx_decrypt(spr_region, spr_region_size);
+ m_bootleg_prot->svcsplus_px_hack(cpuregion, cpuregion_size);
+}
+
+
+/*************************************************
+ kf2k3bl
+**************************************************/
+
+const device_type NEOGEO_BOOTLEG_HYBRID_KF2K3BL_CART = device_creator<neogeo_bootleg_hybrid_kf2k3bl_cart>;
+
+neogeo_bootleg_hybrid_kf2k3bl_cart::neogeo_bootleg_hybrid_kf2k3bl_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : neogeo_bootleg_hybrid_hybrid_cart(mconfig, NEOGEO_BOOTLEG_HYBRID_KF2K3BL_CART, "NEOGEO BOOT kf2k3bl Cart", tag, owner, clock, "boot_kf2k3bl_cart", __FILE__) {}
+
+void neogeo_bootleg_hybrid_kf2k3bl_cart::activate_cart(ACTIVATE_CART_PARAMS)
+{
+ m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size);
+ m_bootleg_prot->kf2k3bl_install_protection(maincpu,m_banked_cart, cpuregion, cpuregion_size);
+
+}
+
+void neogeo_bootleg_hybrid_kf2k3bl_cart::decrypt_all(DECRYPT_ALL_PARAMS)
+{
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, KOF2003_GFX_KEY);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 5);
+ m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,1);
+
+}
+
+const device_type NEOGEO_BOOTLEG_HYBRID_KF2K3PL_CART = device_creator<neogeo_bootleg_hybrid_kf2k3pl_cart>;
+
+neogeo_bootleg_hybrid_kf2k3pl_cart::neogeo_bootleg_hybrid_kf2k3pl_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : neogeo_bootleg_hybrid_hybrid_cart(mconfig, NEOGEO_BOOTLEG_HYBRID_KF2K3PL_CART, "NEOGEO BOOT kf2k3pl Cart", tag, owner, clock, "boot_kf2k3pl_cart", __FILE__) {}
+
+void neogeo_bootleg_hybrid_kf2k3pl_cart::activate_cart(ACTIVATE_CART_PARAMS)
+{
+ m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size);
+ m_bootleg_prot->kf2k3pl_install_protection(maincpu,m_banked_cart, cpuregion, cpuregion_size);
+}
+
+void neogeo_bootleg_hybrid_kf2k3pl_cart::decrypt_all(DECRYPT_ALL_PARAMS)
+{
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, KOF2003_GFX_KEY);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 5);
+ m_bootleg_prot->kf2k3pl_px_decrypt(cpuregion, cpuregion_size);
+ m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,1);
+}
+
+
+const device_type NEOGEO_BOOTLEG_HYBRID_KF2K3UPL_CART = device_creator<neogeo_bootleg_hybrid_kf2k3upl_cart>;
+
+neogeo_bootleg_hybrid_kf2k3upl_cart::neogeo_bootleg_hybrid_kf2k3upl_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : neogeo_bootleg_hybrid_hybrid_cart(mconfig, NEOGEO_BOOTLEG_HYBRID_KF2K3UPL_CART, "NEOGEO BOOT kf2k3upl Cart", tag, owner, clock, "boot_kf2k3upl_cart", __FILE__) {}
+
+void neogeo_bootleg_hybrid_kf2k3upl_cart::activate_cart(ACTIVATE_CART_PARAMS)
+{
+ m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size);
+ m_bootleg_prot->kf2k3bl_install_protection(maincpu,m_banked_cart, cpuregion, cpuregion_size);
+
+}
+
+void neogeo_bootleg_hybrid_kf2k3upl_cart::decrypt_all(DECRYPT_ALL_PARAMS)
+{
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, KOF2003_GFX_KEY);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 5);
+ m_bootleg_prot->kf2k3upl_px_decrypt(cpuregion, cpuregion_size);
+ m_bootleg_prot->neogeo_bootleg_sx_decrypt(fix_region, fix_region_size,2);
+}
diff --git a/src/mame/old/bootleg_hybrid_cart.h b/src/mame/old/bootleg_hybrid_cart.h
new file mode 100644
index 00000000000..9d26c866248
--- /dev/null
+++ b/src/mame/old/bootleg_hybrid_cart.h
@@ -0,0 +1,192 @@
+// license:BSD-3-Clause
+// copyright-holders:S. Smith,David Haywood
+#ifndef __NEOGEO_BOOTLEG_HYBRID_HYBRID_CART_H
+#define __NEOGEO_BOOTLEG_HYBRID_HYBRID_CART_H
+
+#include "neogeo_slot.h"
+#include "banked_cart.h"
+#include "bootleg_prot.h"
+#include "pcm2_prot.h"
+#include "cmc_prot.h"
+#include "kof2002_prot.h"
+#include "pvc_prot.h"
+
+// ======================> neogeo_bootleg_hybrid_hybrid_cart
+
+class neogeo_bootleg_hybrid_hybrid_cart : public device_t,
+ public device_neogeo_cart_interface
+{
+public:
+ // construction/destruction
+ neogeo_bootleg_hybrid_hybrid_cart(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint16_t clock, const char *shortname, const char *source);
+ neogeo_bootleg_hybrid_hybrid_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock);
+
+ // device-level overrides
+ virtual void device_start() override;
+ virtual void device_reset() override;
+ virtual machine_config_constructor device_mconfig_additions() const override;
+
+ // reading and writing
+ virtual DECLARE_READ16_MEMBER(read_rom) override;
+
+ virtual void activate_cart(ACTIVATE_CART_PARAMS) override {}
+ virtual void decrypt_all(DECRYPT_ALL_PARAMS) override {}
+ virtual int get_fixed_bank_type(void) override { return 0; }
+
+ required_device<neogeo_banked_cart_device> m_banked_cart;
+ required_device<ngbootleg_prot_device> m_bootleg_prot;
+ required_device<cmc_prot_device> m_cmc_prot;
+ required_device<pcm2_prot_device> m_pcm2_prot;
+ required_device<kof2002_prot_device> m_kof2002_prot;
+ required_device<pvc_prot_device> m_pvc_prot;
+};
+
+
+
+// device type definition
+extern const device_type NEOGEO_BOOTLEG_HYBRID_HYBRID_CART;
+
+
+
+/*************************************************
+ MSLUG3B6
+**************************************************/
+
+class neogeo_bootleg_hybrid_mslug3b6_cart : public neogeo_bootleg_hybrid_hybrid_cart
+{
+public:
+ neogeo_bootleg_hybrid_mslug3b6_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ void activate_cart(ACTIVATE_CART_PARAMS) override;
+ virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
+ virtual int get_fixed_bank_type(void) override { return 0; }
+};
+extern const device_type NEOGEO_BOOTLEG_HYBRID_MSLUG3B6_CART;
+
+
+/*************************************************
+ KOF2002B
+**************************************************/
+
+class neogeo_bootleg_hybrid_kof2002b_cart : public neogeo_bootleg_hybrid_hybrid_cart
+{
+public:
+ neogeo_bootleg_hybrid_kof2002b_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ void activate_cart(ACTIVATE_CART_PARAMS) override;
+ virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
+ virtual int get_fixed_bank_type(void) override { return 0; }
+};
+extern const device_type NEOGEO_BOOTLEG_HYBRID_KOF2002B_CART;
+
+class neogeo_bootleg_hybrid_kf2k2mp_cart : public neogeo_bootleg_hybrid_hybrid_cart
+{
+public:
+ neogeo_bootleg_hybrid_kf2k2mp_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ void activate_cart(ACTIVATE_CART_PARAMS) override;
+ virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
+ virtual int get_fixed_bank_type(void) override { return 0; }
+};
+extern const device_type NEOGEO_BOOTLEG_HYBRID_KF2K2MP_CART;
+
+class neogeo_bootleg_hybrid_kf2k2mp2_cart : public neogeo_bootleg_hybrid_hybrid_cart
+{
+public:
+ neogeo_bootleg_hybrid_kf2k2mp2_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ void activate_cart(ACTIVATE_CART_PARAMS) override;
+ virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
+ virtual int get_fixed_bank_type(void) override { return 0; }
+};
+extern const device_type NEOGEO_BOOTLEG_HYBRID_KF2K2MP2_CART;
+
+
+/*************************************************
+ MATRIMBL
+**************************************************/
+
+class neogeo_bootleg_hybrid_matrimbl_cart : public neogeo_bootleg_hybrid_hybrid_cart
+{
+public:
+ neogeo_bootleg_hybrid_matrimbl_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ void activate_cart(ACTIVATE_CART_PARAMS) override;
+ virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
+ virtual int get_fixed_bank_type(void) override { return 2; }
+};
+extern const device_type NEOGEO_BOOTLEG_HYBRID_MATRIMBL_CART;
+
+/*************************************************
+ MS5PLUS
+**************************************************/
+
+class neogeo_bootleg_hybrid_ms5plus_cart : public neogeo_bootleg_hybrid_hybrid_cart
+{
+public:
+ neogeo_bootleg_hybrid_ms5plus_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ void activate_cart(ACTIVATE_CART_PARAMS) override;
+ virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
+ virtual int get_fixed_bank_type(void) override { return 1; }
+};
+extern const device_type NEOGEO_BOOTLEG_HYBRID_MS5PLUS_CART;
+
+/*************************************************
+ SVCBOOT
+**************************************************/
+
+class neogeo_bootleg_hybrid_svcboot_cart : public neogeo_bootleg_hybrid_hybrid_cart
+{
+public:
+ neogeo_bootleg_hybrid_svcboot_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ void activate_cart(ACTIVATE_CART_PARAMS) override;
+ virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
+ virtual int get_fixed_bank_type(void) override { return 0; }
+};
+extern const device_type NEOGEO_BOOTLEG_HYBRID_SVCBOOT_CART;
+
+class neogeo_bootleg_hybrid_svcsplus_cart : public neogeo_bootleg_hybrid_hybrid_cart
+{
+public:
+ neogeo_bootleg_hybrid_svcsplus_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ void activate_cart(ACTIVATE_CART_PARAMS) override;
+ virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
+ virtual int get_fixed_bank_type(void) override { return 0; }
+};
+extern const device_type NEOGEO_BOOTLEG_HYBRID_SVCSPLUS_CART;
+
+
+
+/*************************************************
+ KF2K3BL
+**************************************************/
+
+class neogeo_bootleg_hybrid_kf2k3bl_cart : public neogeo_bootleg_hybrid_hybrid_cart
+{
+public:
+ neogeo_bootleg_hybrid_kf2k3bl_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ void activate_cart(ACTIVATE_CART_PARAMS) override;
+ virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
+ virtual int get_fixed_bank_type(void) override { return 0; }
+};
+extern const device_type NEOGEO_BOOTLEG_HYBRID_KF2K3BL_CART;
+
+class neogeo_bootleg_hybrid_kf2k3pl_cart : public neogeo_bootleg_hybrid_hybrid_cart
+{
+public:
+ neogeo_bootleg_hybrid_kf2k3pl_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ void activate_cart(ACTIVATE_CART_PARAMS) override;
+ virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
+ virtual int get_fixed_bank_type(void) override { return 0; }
+};
+extern const device_type NEOGEO_BOOTLEG_HYBRID_KF2K3PL_CART;
+
+
+class neogeo_bootleg_hybrid_kf2k3upl_cart : public neogeo_bootleg_hybrid_hybrid_cart
+{
+public:
+ neogeo_bootleg_hybrid_kf2k3upl_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ void activate_cart(ACTIVATE_CART_PARAMS) override;
+ virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
+ virtual int get_fixed_bank_type(void) override { return 0; }
+};
+extern const device_type NEOGEO_BOOTLEG_HYBRID_KF2K3UPL_CART;
+
+
+
+#endif
diff --git a/src/mame/old/bootleg_prot.cpp b/src/mame/old/bootleg_prot.cpp
new file mode 100644
index 00000000000..08ff2d2eafa
--- /dev/null
+++ b/src/mame/old/bootleg_prot.cpp
@@ -0,0 +1,1073 @@
+// license:BSD-3-Clause
+// copyright-holders:S. Smith,David Haywood
+
+#include "emu.h"
+#include "bootleg_prot.h"
+#include "screen.h"
+
+
+
+const device_type NGBOOTLEG_PROT = device_creator<ngbootleg_prot_device>;
+
+
+ngbootleg_prot_device::ngbootleg_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : device_t(mconfig, NGBOOTLEG_PROT, "NeoGeo Protection (Bootleg)", tag, owner, clock, "ngbootleg_prot", __FILE__),
+ kof2k3_overlay(0),
+ m_mainrom(nullptr),
+ m_fixedrom(nullptr),
+ m_bankdev(nullptr)
+{
+}
+
+
+void ngbootleg_prot_device::device_start()
+{
+ memset(m_cartridge_ram, 0x00, 0x2000);
+
+ save_item(NAME(m_cartridge_ram));
+}
+
+void ngbootleg_prot_device::device_reset()
+{
+}
+
+
+
+/***************************************************************************
+
+ Neo-Geo hardware encryption and protection used on bootleg cartridges
+
+ Many of the NeoGeo bootlegs use their own form of encryption and
+ protection, presumably to make them harder for other bootleggers to
+ copy. This encryption often involves non-trivial scrambling of the
+ program roms and the games are protected using an Altera chip which
+ provides some kind of rom overlay, patching parts of the code.
+ The graphics roms are usually scrambled in a different way to the
+ official SNK cartridges too.
+
+***************************************************************************/
+
+#include "emu.h"
+#include "includes/neogeo.h"
+
+
+/* General Bootleg Functions - used by more than 1 game */
+
+
+void ngbootleg_prot_device::neogeo_bootleg_cx_decrypt(uint8_t*sprrom, uint32_t sprrom_size)
+{
+ int i;
+ int cx_size = sprrom_size;
+ uint8_t *rom = sprrom;
+ std::vector<uint8_t> buf( cx_size );
+
+ memcpy( &buf[0], rom, cx_size );
+
+ for( i = 0; i < cx_size / 0x40; i++ ){
+ memcpy( &rom[ i * 0x40 ], &buf[ (i ^ 1) * 0x40 ], 0x40 );
+ }
+}
+
+
+void ngbootleg_prot_device::neogeo_bootleg_sx_decrypt(uint8_t* fixed, uint32_t fixed_size, int value )
+{
+ int sx_size = fixed_size;
+ uint8_t *rom = fixed;
+ int i;
+
+ if (value == 1)
+ {
+ std::vector<uint8_t> buf( sx_size );
+ memcpy( &buf[0], rom, sx_size );
+
+ for( i = 0; i < sx_size; i += 0x10 )
+ {
+ memcpy( &rom[ i ], &buf[ i + 8 ], 8 );
+ memcpy( &rom[ i + 8 ], &buf[ i ], 8 );
+ }
+ }
+ else if (value == 2)
+ {
+ for( i = 0; i < sx_size; i++ )
+ rom[ i ] = BITSWAP8( rom[ i ], 7, 6, 0, 4, 3, 2, 1, 5 );
+ }
+}
+
+
+
+/* The King of Fighters '97 Oroshi Plus 2003 (bootleg) */
+
+void ngbootleg_prot_device::kof97oro_px_decode(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ int i;
+ std::vector<uint16_t> tmp( 0x500000 );
+ uint16_t *src = (uint16_t*)cpurom;
+
+ for (i = 0; i < 0x500000/2; i++) {
+ tmp[i] = src[i ^ 0x7ffef];
+ }
+
+ memcpy (src, &tmp[0], 0x500000);
+}
+
+
+/* The King of Fighters 10th Anniversary (The King of Fighters 2002 bootleg) */
+
+
+/* this uses RAM based tiles for the text layer, however the implementation
+ is incomplete, at the moment the S data is copied from the program rom on
+ start-up instead */
+
+void ngbootleg_prot_device::kof10thBankswitch(address_space &space, uint16_t nBank)
+{
+ uint32_t bank = 0x100000 + ((nBank & 7) << 20);
+ if (bank >= 0x700000)
+ bank = 0x100000;
+ m_bankdev->neogeo_set_main_cpu_bank_address(bank);
+}
+
+READ16_MEMBER( ngbootleg_prot_device::kof10th_RAMB_r )
+{
+ return m_cartridge_ram[offset];
+}
+
+READ16_MEMBER(ngbootleg_prot_device::kof10th_RAM2_r)
+{
+// printf("kof10th_RAM2_r\n");
+ return m_cartridge_ram2[offset];
+}
+
+WRITE16_MEMBER( ngbootleg_prot_device::kof10th_custom_w )
+{
+ if (!m_cartridge_ram[0xFFE]) { // Write to RAM bank A
+ //uint16_t *prom = (uint16_t*)m_mainrom;
+ COMBINE_DATA(&m_cartridge_ram2[(0x00000/2) + (offset & 0xFFFF)]);
+ } else { // Write S data on-the-fly
+ m_fixedrom[offset] = BITSWAP8(data,7,6,0,4,3,2,1,5);
+ }
+}
+
+WRITE16_MEMBER( ngbootleg_prot_device::kof10th_bankswitch_w )
+{
+ if (offset >= 0x5F000) {
+ if (offset == 0x5FFF8) { // Standard bankswitch
+ kof10thBankswitch(space, data);
+ } else if (offset == 0x5FFFC && m_cartridge_ram[0xFFC] != data) { // Special bankswitch
+ uint8_t *src = m_mainrom;
+ memcpy (src + 0x10000, src + ((data & 1) ? 0x810000 : 0x710000), 0xcffff);
+ }
+ COMBINE_DATA(&m_cartridge_ram[offset & 0xFFF]);
+ }
+}
+
+void ngbootleg_prot_device::install_kof10th_protection (cpu_device* maincpu, neogeo_banked_cart_device* bankdev, uint8_t* cpurom, uint32_t cpurom_size, uint8_t* fixedrom, uint32_t fixedrom_size)
+{
+ m_mainrom = cpurom;
+ m_fixedrom = fixedrom;
+ m_bankdev = bankdev;
+
+ maincpu->space(AS_PROGRAM).install_read_handler(0x0e0000, 0x0fffff, read16_delegate(FUNC(ngbootleg_prot_device::kof10th_RAM2_r),this));
+
+ maincpu->space(AS_PROGRAM).install_read_handler(0x2fe000, 0x2fffff, read16_delegate(FUNC(ngbootleg_prot_device::kof10th_RAMB_r),this));
+ maincpu->space(AS_PROGRAM).install_write_handler(0x200000, 0x23ffff, write16_delegate(FUNC(ngbootleg_prot_device::kof10th_custom_w),this));
+ maincpu->space(AS_PROGRAM).install_write_handler(0x240000, 0x2fffff, write16_delegate(FUNC(ngbootleg_prot_device::kof10th_bankswitch_w),this));
+ memcpy(m_cartridge_ram2, cpurom + 0xe0000, 0x20000);
+
+ // HACK: only save this at device_start (not allowed later)
+ if (machine().phase() <= MACHINE_PHASE_INIT)
+ save_pointer(NAME(m_fixedrom), 0x40000);
+}
+
+void ngbootleg_prot_device::decrypt_kof10th(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ int i, j;
+ std::vector<uint8_t> dst(0x900000);
+ uint8_t *src = cpurom;
+
+ memcpy(&dst[0x000000], src + 0x700000, 0x100000); // Correct (Verified in Uni-bios)
+ memcpy(&dst[0x100000], src + 0x000000, 0x800000);
+
+ for (i = 0; i < 0x900000; i++) {
+ j = BITSWAP24(i,23,22,21,20,19,18,17,16,15,14,13,12,11,2,9,8,7,1,5,4,3,10,6,0);
+ src[j] = dst[i];
+ }
+
+ // Altera protection chip patches these over P ROM
+ ((uint16_t*)src)[0x0124/2] = 0x000d; // Enables XOR for RAM moves, forces SoftDIPs, and USA region
+ ((uint16_t*)src)[0x0126/2] = 0xf7a8;
+
+ ((uint16_t*)src)[0x8bf4/2] = 0x4ef9; // Run code to change "S" data
+ ((uint16_t*)src)[0x8bf6/2] = 0x000d;
+ ((uint16_t*)src)[0x8bf8/2] = 0xf980;
+
+}
+
+
+/* The King of Fighters 10th Anniversary Extra Plus (The King of Fighters 2002 bootleg) */
+
+
+void ngbootleg_prot_device::kf10thep_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ uint16_t *rom = (uint16_t*)cpurom;
+ std::vector<uint16_t> buf(0x100000/2);
+
+ memcpy(&buf[0x000000/2], &rom[0x060000/2], 0x20000);
+ memcpy(&buf[0x020000/2], &rom[0x100000/2], 0x20000);
+ memcpy(&buf[0x040000/2], &rom[0x0e0000/2], 0x20000);
+ memcpy(&buf[0x060000/2], &rom[0x180000/2], 0x20000);
+ memcpy(&buf[0x080000/2], &rom[0x020000/2], 0x20000);
+ memcpy(&buf[0x0a0000/2], &rom[0x140000/2], 0x20000);
+ memcpy(&buf[0x0c0000/2], &rom[0x0c0000/2], 0x20000);
+ memcpy(&buf[0x0e0000/2], &rom[0x1a0000/2], 0x20000);
+ memcpy(&buf[0x0002e0/2], &rom[0x0402e0/2], 0x6a); // copy banked code to a new memory region
+ memcpy(&buf[0x0f92bc/2], &rom[0x0492bc/2], 0xb9e); // copy banked code to a new memory region
+ memcpy(rom, &buf[0], 0x100000);
+
+ for (int i = 0xf92bc/2; i < 0xf9e58/2; i++)
+ {
+ if (rom[i+0] == 0x4eb9 && rom[i+1] == 0x0000) rom[i+1] = 0x000F; // correct JSR in moved code
+ if (rom[i+0] == 0x4ef9 && rom[i+1] == 0x0000) rom[i+1] = 0x000F; // correct JMP in moved code
+ }
+ rom[0x00342/2] = 0x000f;
+
+ memmove(&rom[0x100000/2], &rom[0x200000/2], 0x600000);
+}
+
+
+/* The King of Fighters 10th Anniversary 2005 Unique (The King of Fighters 2002 bootleg) */
+
+
+void ngbootleg_prot_device::kf2k5uni_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ int i, j, ofst;
+ uint8_t *src = cpurom;
+ uint8_t dst[0x80];
+
+ for (i = 0; i < 0x800000; i+=0x80)
+ {
+ for (j = 0; j < 0x80; j+=2)
+ {
+ ofst = BITSWAP8(j, 0, 3, 4, 5, 6, 1, 2, 7);
+ memcpy(&dst[j], src + i + ofst, 2);
+ }
+ memcpy(src + i, &dst[0], 0x80);
+ }
+
+ memcpy(src, src + 0x600000, 0x100000); // Seems to be the same as kof10th
+}
+
+void ngbootleg_prot_device::kf2k5uni_sx_decrypt(uint8_t* fixedrom, uint32_t fixedrom_size)
+{
+ int i;
+ uint8_t *srom = fixedrom;
+
+ for (i = 0; i < 0x20000; i++)
+ srom[i] = BITSWAP8(srom[i], 4, 5, 6, 7, 0, 1, 2, 3);
+}
+
+void ngbootleg_prot_device::kf2k5uni_mx_decrypt(uint8_t* audiorom, uint32_t audiorom_size)
+{
+ int i;
+ uint8_t *mrom = audiorom;
+
+ for (i = 0; i < 0x30000; i++)
+ mrom[i] = BITSWAP8(mrom[i], 4, 5, 6, 7, 0, 1, 2, 3);
+}
+
+void ngbootleg_prot_device::decrypt_kf2k5uni(uint8_t* cpurom, uint32_t cpurom_size, uint8_t* audiorom, uint32_t audiorom_size, uint8_t* fixedrom, uint32_t fixedrom_size)
+{
+ kf2k5uni_px_decrypt(cpurom, cpurom_size);
+ kf2k5uni_sx_decrypt(fixedrom, fixedrom_size);
+ kf2k5uni_mx_decrypt(audiorom, audiorom_size);
+}
+
+
+/* The King of Fighters 2002 (bootleg) */
+
+
+void ngbootleg_prot_device::kof2002b_gfx_decrypt(uint8_t *src, int size)
+{
+ int i, j;
+ static const uint8_t t[ 8 ][ 6 ] =
+ {
+ { 0, 8, 7, 6, 2, 1 },
+ { 1, 0, 8, 7, 6, 2 },
+ { 2, 1, 0, 8, 7, 6 },
+ { 6, 2, 1, 0, 8, 7 },
+ { 7, 6, 2, 1, 0, 8 },
+ { 0, 1, 2, 6, 7, 8 },
+ { 2, 1, 0, 6, 7, 8 },
+ { 8, 0, 7, 6, 2, 1 },
+ };
+
+ std::vector<uint8_t> dst( 0x10000 );
+
+ for ( i = 0; i < size; i+=0x10000 )
+ {
+ memcpy( &dst[0], src+i, 0x10000 );
+
+ for ( j = 0; j < 0x200; j++ )
+ {
+ int n = (j & 0x38) >> 3;
+ int ofst = BITSWAP16(j, 15, 14, 13, 12, 11, 10, 9, t[n][0], t[n][1], t[n][2], 5, 4, 3, t[n][3], t[n][4], t[n][5]);
+ memcpy( src+i+ofst*128, &dst[j*128], 128 );
+ }
+ }
+}
+
+
+/* The King of Fighters 2002 Magic Plus (bootleg) */
+
+
+void ngbootleg_prot_device::kf2k2mp_decrypt(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ int i,j;
+
+ uint8_t *src = cpurom;
+ uint8_t dst[0x80];
+
+ memmove(src, src + 0x300000, 0x500000);
+
+ for (i = 0; i < 0x800000; i+=0x80)
+ {
+ for (j = 0; j < 0x80 / 2; j++)
+ {
+ int ofst = BITSWAP8( j, 6, 7, 2, 3, 4, 5, 0, 1 );
+ memcpy(dst + j * 2, src + i + ofst * 2, 2);
+ }
+ memcpy(src + i, dst, 0x80);
+ }
+}
+
+
+/* The King of Fighters 2002 Magic Plus II (bootleg) */
+
+
+void ngbootleg_prot_device::kf2k2mp2_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ uint8_t *src = cpurom;
+ std::vector<uint8_t> dst(0x600000);
+
+ memcpy (&dst[0x000000], &src[0x1C0000], 0x040000);
+ memcpy (&dst[0x040000], &src[0x140000], 0x080000);
+ memcpy (&dst[0x0C0000], &src[0x100000], 0x040000);
+ memcpy (&dst[0x100000], &src[0x200000], 0x400000);
+ memcpy (&src[0x000000], &dst[0x000000], 0x600000);
+}
+
+
+/* Crouching Tiger Hidden Dragon 2003 (bootleg of King of Fighters 2001) */
+
+
+/* descrambling information from razoola */
+void ngbootleg_prot_device::cthd2003_neogeo_gfx_address_fix_do(uint8_t* sprrom, uint32_t sprrom_size, int start, int end, int bit3shift, int bit2shift, int bit1shift, int bit0shift)
+{
+ int i,j;
+ int tilesize=128;
+
+ std::vector<uint8_t> rom(16*tilesize); // 16 tiles buffer
+ uint8_t* realrom = sprrom + start*tilesize;
+
+ for (i = 0; i < (end-start)/16; i++) {
+ for (j = 0; j < 16; j++) {
+ int offset = (((j&1)>>0)<<bit0shift)
+ +(((j&2)>>1)<<bit1shift)
+ +(((j&4)>>2)<<bit2shift)
+ +(((j&8)>>3)<<bit3shift);
+
+ memcpy(&rom[j*tilesize], realrom+offset*tilesize, tilesize);
+ }
+ memcpy(realrom,&rom[0],tilesize*16);
+ realrom+=16*tilesize;
+ }
+}
+
+void ngbootleg_prot_device::cthd2003_neogeo_gfx_address_fix(uint8_t* sprrom, uint32_t sprrom_size, int start, int end)
+{
+ cthd2003_neogeo_gfx_address_fix_do(sprrom, sprrom_size, start+512*0, end+512*0, 0,3,2,1);
+ cthd2003_neogeo_gfx_address_fix_do(sprrom, sprrom_size, start+512*1, end+512*1, 1,0,3,2);
+ cthd2003_neogeo_gfx_address_fix_do(sprrom, sprrom_size, start+512*2, end+512*2, 2,1,0,3);
+ // skip 3 & 4
+ cthd2003_neogeo_gfx_address_fix_do(sprrom, sprrom_size, start+512*5, end+512*5, 0,1,2,3);
+ cthd2003_neogeo_gfx_address_fix_do(sprrom, sprrom_size, start+512*6, end+512*6, 0,1,2,3);
+ cthd2003_neogeo_gfx_address_fix_do(sprrom, sprrom_size, start+512*7, end+512*7, 0,2,3,1);
+}
+
+void ngbootleg_prot_device::cthd2003_c(uint8_t* sprrom, uint32_t sprrom_size, int pow)
+{
+ int i;
+
+ for (i=0; i<=192; i+=8)
+ cthd2003_neogeo_gfx_address_fix(sprrom, sprrom_size, i*512,i*512+512);
+
+ for (i=200; i<=392; i+=8)
+ cthd2003_neogeo_gfx_address_fix(sprrom, sprrom_size, i*512,i*512+512);
+
+ for (i=400; i<=592; i+=8)
+ cthd2003_neogeo_gfx_address_fix(sprrom, sprrom_size, i*512,i*512+512);
+
+ for (i=600; i<=792; i+=8)
+ cthd2003_neogeo_gfx_address_fix(sprrom, sprrom_size, i*512,i*512+512);
+
+ for (i=800; i<=992; i+=8)
+ cthd2003_neogeo_gfx_address_fix(sprrom, sprrom_size, i*512,i*512+512);
+
+ for (i=1000; i<=1016; i+=8)
+ cthd2003_neogeo_gfx_address_fix(sprrom, sprrom_size, i*512,i*512+512);
+}
+
+void ngbootleg_prot_device::decrypt_cthd2003(uint8_t* sprrom, uint32_t sprrom_size, uint8_t* audiorom, uint32_t audiorom_size, uint8_t* fixedrom, uint32_t fixedrom_size)
+{
+ uint8_t *romdata = fixedrom;
+ std::vector<uint8_t> tmp(8*128*128);
+
+ memcpy(&tmp[8*0*128], romdata+8*0*128, 8*32*128);
+ memcpy(&tmp[8*32*128], romdata+8*64*128, 8*32*128);
+ memcpy(&tmp[8*64*128], romdata+8*32*128, 8*32*128);
+ memcpy(&tmp[8*96*128], romdata+8*96*128, 8*32*128);
+ memcpy(romdata, &tmp[0], 8*128*128);
+
+ romdata = audiorom+0x10000;
+ memcpy(&tmp[8*0*128], romdata+8*0*128, 8*32*128);
+ memcpy(&tmp[8*32*128], romdata+8*64*128, 8*32*128);
+ memcpy(&tmp[8*64*128], romdata+8*32*128, 8*32*128);
+ memcpy(&tmp[8*96*128], romdata+8*96*128, 8*32*128);
+ memcpy(romdata, &tmp[0], 8*128*128);
+
+ memcpy(romdata-0x10000,romdata,0x10000);
+
+ cthd2003_c(sprrom, sprrom_size, 0);
+}
+
+WRITE16_MEMBER( ngbootleg_prot_device::cthd2003_bankswitch_w )
+{
+ int bankaddress;
+ static const int cthd2003_banks[8] =
+ {
+ 1,0,1,0,1,0,3,2,
+ };
+ if (offset == 0)
+ {
+ bankaddress = 0x100000 + cthd2003_banks[data&7]*0x100000;
+ m_bankdev->neogeo_set_main_cpu_bank_address(bankaddress);
+ }
+}
+
+void ngbootleg_prot_device::patch_cthd2003(cpu_device* maincpu, neogeo_banked_cart_device* bankdev, uint8_t* cpurom, uint32_t cpurom_size)
+{
+ /* patches thanks to razoola */
+ int i;
+ uint16_t *mem16 = (uint16_t *)cpurom;
+
+ /* special ROM banking handler */
+ maincpu->space(AS_PROGRAM).install_write_handler(0x2ffff0, 0x2fffff, write16_delegate(FUNC(ngbootleg_prot_device::cthd2003_bankswitch_w),this));
+ m_bankdev = bankdev;
+
+ // theres still a problem on the character select screen but it seems to be related to cpu core timing issues,
+ // overclocking the 68k prevents it.
+
+ // fix garbage on s1 layer over everything
+ mem16[0xf415a/2] = 0x4ef9;
+ mem16[0xf415c/2] = 0x000f;
+ mem16[0xf415e/2] = 0x4cf2;
+ // Fix corruption in attract mode before title screen
+ for (i=0x1ae290/2;i < 0x1ae8d0/2; i=i+1)
+ {
+ mem16[i] = 0x0000;
+ }
+
+ // Fix for title page
+ for (i=0x1f8ef0/2;i < 0x1fa1f0/2; i=i+2)
+ {
+ mem16[i] -= 0x7000;
+ mem16[i+1] -= 0x0010;
+ }
+
+ // Fix for green dots on title page
+ for (i=0xac500/2;i < 0xac520/2; i=i+1)
+ {
+ mem16[i] = 0xFFFF;
+ }
+ // Fix for blanks as screen change level end clear
+ mem16[0x991d0/2] = 0xdd03;
+ mem16[0x99306/2] = 0xdd03;
+ mem16[0x99354/2] = 0xdd03;
+ mem16[0x9943e/2] = 0xdd03;
+}
+
+
+/* Crouching Tiger Hidden Dragon 2003 Super Plus (bootleg of King of Fighters 2001) */
+
+
+void ngbootleg_prot_device::ct2k3sp_sx_decrypt( uint8_t* fixedrom, uint32_t fixedrom_size )
+{
+ int rom_size = fixedrom_size;
+ uint8_t *rom = fixedrom;
+ std::vector<uint8_t> buf( rom_size );
+ int i;
+ int ofst;
+
+ memcpy( &buf[0], rom, rom_size );
+
+ for( i = 0; i < rom_size; i++ ){
+ ofst = BITSWAP24( (i & 0x1ffff), 23, 22, 21, 20, 19, 18, 17, 3,
+ 0, 1, 4, 2, 13, 14, 16, 15,
+ 5, 6, 11, 10, 9, 8, 7, 12 );
+
+ ofst += (i >> 17) << 17;
+
+ rom[ i ] = buf[ ofst ];
+ }
+
+ memcpy( &buf[0], rom, rom_size );
+
+ memcpy( &rom[ 0x08000 ], &buf[ 0x10000 ], 0x8000 );
+ memcpy( &rom[ 0x10000 ], &buf[ 0x08000 ], 0x8000 );
+ memcpy( &rom[ 0x28000 ], &buf[ 0x30000 ], 0x8000 );
+ memcpy( &rom[ 0x30000 ], &buf[ 0x28000 ], 0x8000 );
+}
+
+void ngbootleg_prot_device::decrypt_ct2k3sp(uint8_t* sprrom, uint32_t sprrom_size, uint8_t* audiorom, uint32_t audiorom_size, uint8_t* fixedrom, uint32_t fixedrom_size)
+{
+ uint8_t *romdata = audiorom+0x10000;
+ std::vector<uint8_t> tmp(8*128*128);
+ memcpy(&tmp[8*0*128], romdata+8*0*128, 8*32*128);
+ memcpy(&tmp[8*32*128], romdata+8*64*128, 8*32*128);
+ memcpy(&tmp[8*64*128], romdata+8*32*128, 8*32*128);
+ memcpy(&tmp[8*96*128], romdata+8*96*128, 8*32*128);
+ memcpy(romdata, &tmp[0], 8*128*128);
+
+ memcpy(romdata-0x10000,romdata,0x10000);
+ ct2k3sp_sx_decrypt(fixedrom, fixedrom_size);
+ cthd2003_c(sprrom,sprrom_size,0);
+}
+
+
+/* Crouching Tiger Hidden Dragon 2003 Super Plus alternate (bootleg of King of Fighters 2001) */
+
+
+void ngbootleg_prot_device::decrypt_ct2k3sa(uint8_t* sprrom, uint32_t sprrom_size, uint8_t* audiorom, uint32_t audiorom_size )
+{
+ uint8_t *romdata = audiorom+0x10000;
+ std::vector<uint8_t> tmp(8*128*128);
+ memcpy(&tmp[8*0*128], romdata+8*0*128, 8*32*128);
+ memcpy(&tmp[8*32*128], romdata+8*64*128, 8*32*128);
+ memcpy(&tmp[8*64*128], romdata+8*32*128, 8*32*128);
+ memcpy(&tmp[8*96*128], romdata+8*96*128, 8*32*128);
+ memcpy(romdata, &tmp[0], 8*128*128);
+
+ memcpy(romdata-0x10000,romdata,0x10000);
+ cthd2003_c(sprrom,sprrom_size, 0);
+}
+
+void ngbootleg_prot_device::patch_ct2k3sa(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ /* patches thanks to razoola - same as for cthd2003*/
+ int i;
+ uint16_t *mem16 = (uint16_t *)cpurom;
+
+ // theres still a problem on the character select screen but it seems to be related to cpu core timing issues,
+ // overclocking the 68k prevents it.
+
+ // fix garbage on s1 layer over everything
+ mem16[0xf415a/2] = 0x4ef9;
+ mem16[0xf415c/2] = 0x000f;
+ mem16[0xf415e/2] = 0x4cf2;
+
+ // Fix corruption in attract mode before title screen
+ for (i=0x1ae290/2;i < 0x1ae8d0/2; i=i+1)
+ {
+ mem16[i] = 0x0000;
+ }
+
+ // Fix for title page
+ for (i=0x1f8ef0/2;i < 0x1fa1f0/2; i=i+2)
+ {
+ mem16[i] -= 0x7000;
+ mem16[i+1] -= 0x0010;
+ }
+
+ // Fix for green dots on title page
+ for (i=0xac500/2;i < 0xac520/2; i=i+1)
+ {
+ mem16[i] = 0xFFFF;
+ }
+ // Fix for blanks as screen change level end clear
+ mem16[0x991d0/2] = 0xdd03;
+ mem16[0x99306/2] = 0xdd03;
+ mem16[0x99354/2] = 0xdd03;
+ mem16[0x9943e/2] = 0xdd03;
+}
+
+
+/* King of Fighters Special Edition 2004 (bootleg of King of Fighters 2002) */
+
+
+void ngbootleg_prot_device::decrypt_kof2k4se_68k(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ uint8_t *src = cpurom+0x100000;
+ std::vector<uint8_t> dst(0x400000);
+ int i;
+ static const int sec[] = {0x300000,0x200000,0x100000,0x000000};
+ memcpy(&dst[0],src,0x400000);
+
+ for(i = 0; i < 4; ++i)
+ {
+ memcpy(src+i*0x100000,&dst[sec[i]],0x100000);
+ }
+}
+
+
+/* Lansquenet 2004 (Shock Troopers - 2nd Squad bootleg) */
+
+
+void ngbootleg_prot_device::lans2004_vx_decrypt(uint8_t* ymsndrom, uint32_t ymsndrom_size)
+{
+ int i;
+ uint8_t *rom = ymsndrom;
+ for (i = 0; i < 0xA00000; i++)
+ rom[i] = BITSWAP8(rom[i], 0, 1, 5, 4, 3, 2, 6, 7);
+}
+
+void ngbootleg_prot_device::lans2004_decrypt_68k(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ /* Descrambling P ROMs - Thanks to Razoola for the info */
+ int i;
+ uint8_t *src = cpurom;
+ uint16_t *rom = (uint16_t*)cpurom;
+
+ {
+ static const int sec[] = { 0x3, 0x8, 0x7, 0xC, 0x1, 0xA, 0x6, 0xD };
+ std::vector<uint8_t> dst(0x600000);
+
+ for (i = 0; i < 8; i++)
+ memcpy (&dst[i * 0x20000], src + sec[i] * 0x20000, 0x20000);
+
+ memcpy (&dst[0x0BBB00], src + 0x045B00, 0x001710);
+ memcpy (&dst[0x02FFF0], src + 0x1A92BE, 0x000010);
+ memcpy (&dst[0x100000], src + 0x200000, 0x400000);
+ memcpy (src, &dst[0], 0x600000);
+ }
+
+ for (i = 0xBBB00/2; i < 0xBE000/2; i++) {
+ if ((((rom[i]&0xFFBF)==0x4EB9) || ((rom[i]&0xFFBF)==0x43B9)) && (rom[i+1]==0x0000)) {
+ rom[i + 1] = 0x000B;
+ rom[i + 2] += 0x6000;
+ }
+ }
+
+ /* Patched by protection chip (Altera) ? */
+ rom[0x2D15C/2] = 0x000B;
+ rom[0x2D15E/2] = 0xBB00;
+ rom[0x2D1E4/2] = 0x6002;
+ rom[0x2EA7E/2] = 0x6002;
+ rom[0xBBCD0/2] = 0x6002;
+ rom[0xBBDF2/2] = 0x6002;
+ rom[0xBBE42/2] = 0x6002;
+}
+
+
+/* Metal Slug 5 Plus (bootleg) */
+
+
+READ16_MEMBER( ngbootleg_prot_device::mslug5_prot_r )
+{
+ logerror("PC %06x: access protected\n",space.device().safe_pc());
+ return 0xa0;
+}
+
+WRITE16_MEMBER( ngbootleg_prot_device::ms5plus_bankswitch_w )
+{
+ int bankaddress;
+ logerror("offset: %06x PC %06x: set banking %04x\n",offset,space.device().safe_pc(),data);
+ if ((offset == 0)&&(data == 0xa0))
+ {
+ bankaddress=0xa0;
+ m_bankdev->neogeo_set_main_cpu_bank_address(bankaddress);
+ logerror("offset: %06x PC %06x: set banking %04x\n\n",offset,space.device().safe_pc(),bankaddress);
+ }
+ else if(offset == 2)
+ {
+ data=data>>4;
+ //data=data&7;
+ bankaddress=data*0x100000;
+ m_bankdev->neogeo_set_main_cpu_bank_address(bankaddress);
+ logerror("offset: %06x PC %06x: set banking %04x\n\n",offset,space.device().safe_pc(),bankaddress);
+ }
+}
+
+void ngbootleg_prot_device::install_ms5plus_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev)
+{
+ // special ROM banking handler / additional protection
+ maincpu->space(AS_PROGRAM).install_readwrite_handler(0x2ffff0, 0x2fffff,read16_delegate(FUNC(ngbootleg_prot_device::mslug5_prot_r),this), write16_delegate(FUNC(ngbootleg_prot_device::ms5plus_bankswitch_w),this));
+ m_bankdev = bankdev;
+
+}
+
+
+/* SNK vs. CAPCOM SVC CHAOS (bootleg) */
+
+
+void ngbootleg_prot_device::svcboot_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ static const uint8_t sec[] = {
+ 0x06, 0x07, 0x01, 0x02, 0x03, 0x04, 0x05, 0x00
+ };
+ int i;
+ int size = cpurom_size;
+ uint8_t *src = cpurom;
+ std::vector<uint8_t> dst( size );
+ int ofst;
+ for( i = 0; i < size / 0x100000; i++ ){
+ memcpy( &dst[ i * 0x100000 ], &src[ sec[ i ] * 0x100000 ], 0x100000 );
+ }
+ for( i = 0; i < size / 2; i++ ){
+ ofst = BITSWAP8( (i & 0x0000ff), 7, 6, 1, 0, 3, 2, 5, 4 );
+ ofst += (i & 0xffff00);
+ memcpy( &src[ i * 2 ], &dst[ ofst * 2 ], 0x02 );
+ }
+}
+
+void ngbootleg_prot_device::svcboot_cx_decrypt(uint8_t*sprrom, uint32_t sprrom_size)
+{
+ static const uint8_t idx_tbl[ 0x10 ] = {
+ 0, 1, 0, 1, 2, 3, 2, 3, 3, 4, 3, 4, 4, 5, 4, 5,
+ };
+ static const uint8_t bitswap4_tbl[ 6 ][ 4 ] = {
+ { 3, 0, 1, 2 },
+ { 2, 3, 0, 1 },
+ { 1, 2, 3, 0 },
+ { 0, 1, 2, 3 },
+ { 3, 2, 1, 0 },
+ { 3, 0, 2, 1 },
+ };
+ int i;
+ int size = sprrom_size;
+ uint8_t *src = sprrom;
+ std::vector<uint8_t> dst( size );
+ int ofst;
+ memcpy( &dst[0], src, size );
+ for( i = 0; i < size / 0x80; i++ ){
+ int idx = idx_tbl[ (i & 0xf00) >> 8 ];
+ int bit0 = bitswap4_tbl[ idx ][ 0 ];
+ int bit1 = bitswap4_tbl[ idx ][ 1 ];
+ int bit2 = bitswap4_tbl[ idx ][ 2 ];
+ int bit3 = bitswap4_tbl[ idx ][ 3 ];
+ ofst = BITSWAP8( (i & 0x0000ff), 7, 6, 5, 4, bit3, bit2, bit1, bit0 );
+ ofst += (i & 0xfffff00);
+ memcpy( &src[ i * 0x80 ], &dst[ ofst * 0x80 ], 0x80 );
+ }
+}
+
+
+/* SNK vs. CAPCOM SVC CHAOS Plus (bootleg set 1) */
+
+
+void ngbootleg_prot_device::svcplus_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ static const int sec[] = {
+ 0x00, 0x03, 0x02, 0x05, 0x04, 0x01
+ };
+ int size = cpurom_size;
+ uint8_t *src = cpurom;
+ std::vector<uint8_t> dst( size );
+ int i;
+ int ofst;
+ memcpy( &dst[0], src, size );
+ for( i = 0; i < size / 2; i++ ){
+ ofst = BITSWAP24( (i & 0xfffff), 0x17, 0x16, 0x15, 0x14, 0x13, 0x00, 0x01, 0x02,
+ 0x0f, 0x0e, 0x0d, 0x0c, 0x0b, 0x0a, 0x09, 0x08,
+ 0x07, 0x06, 0x05, 0x04, 0x03, 0x10, 0x11, 0x12 );
+ ofst ^= 0x0f0007;
+ ofst += (i & 0xff00000);
+ memcpy( &src[ i * 0x02 ], &dst[ ofst * 0x02 ], 0x02 );
+ }
+ memcpy( &dst[0], src, size );
+ for( i = 0; i < 6; i++ ){
+ memcpy( &src[ i * 0x100000 ], &dst[ sec[ i ] * 0x100000 ], 0x100000 );
+ }
+}
+
+void ngbootleg_prot_device::svcplus_px_hack(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ /* patched by the protection chip? */
+ uint16_t *mem16 = (uint16_t *)cpurom;
+ mem16[0x0f8016/2] = 0x33c1;
+}
+
+
+/* SNK vs. CAPCOM SVC CHAOS Plus (bootleg set 2) */
+
+
+void ngbootleg_prot_device::svcplusa_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ int i;
+ static const int sec[] = {
+ 0x01, 0x02, 0x03, 0x04, 0x05, 0x00
+ };
+ int size = cpurom_size;
+ uint8_t *src = cpurom;
+ std::vector<uint8_t> dst( size );
+ memcpy( &dst[0], src, size );
+ for( i = 0; i < 6; i++ ){
+ memcpy( &src[ i * 0x100000 ], &dst[ sec[ i ] * 0x100000 ], 0x100000 );
+ }
+}
+
+
+/* SNK vs. CAPCOM SVC CHAOS Super Plus (bootleg) */
+
+
+void ngbootleg_prot_device::svcsplus_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ static const int sec[] = {
+ 0x06, 0x07, 0x01, 0x02, 0x03, 0x04, 0x05, 0x00
+ };
+ int size = cpurom_size;
+ uint8_t *src = cpurom;
+ std::vector<uint8_t> dst( size );
+ int i;
+ int ofst;
+ memcpy( &dst[0], src, size );
+ for( i = 0; i < size / 2; i++ ){
+ ofst = BITSWAP16( (i & 0x007fff), 0x0f, 0x00, 0x08, 0x09, 0x0b, 0x0a, 0x0c, 0x0d,
+ 0x04, 0x03, 0x01, 0x07, 0x06, 0x02, 0x05, 0x0e );
+
+ ofst += (i & 0x078000);
+ ofst += sec[ (i & 0xf80000) >> 19 ] << 19;
+ memcpy( &src[ i * 2 ], &dst[ ofst * 2 ], 0x02 );
+ }
+}
+
+void ngbootleg_prot_device::svcsplus_px_hack(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ /* patched by the protection chip? */
+ uint16_t *mem16 = (uint16_t *)cpurom;
+ mem16[0x9e90/2] = 0x000f;
+ mem16[0x9e92/2] = 0xc9c0;
+ mem16[0xa10c/2] = 0x4eb9;
+ mem16[0xa10e/2] = 0x000e;
+ mem16[0xa110/2] = 0x9750;
+}
+
+
+/* The King of Fighters 2003 (bootleg set 1) */
+
+
+READ16_MEMBER( ngbootleg_prot_device::kof2003_r)
+{
+ return m_cartridge_ram[offset];
+}
+
+READ16_MEMBER(ngbootleg_prot_device::kof2003_overlay_r) // hack?
+{
+ return kof2k3_overlay;
+}
+
+WRITE16_MEMBER( ngbootleg_prot_device::kof2003_w )
+{
+ data = COMBINE_DATA(&m_cartridge_ram[offset]);
+ if (offset == 0x1ff0/2 || offset == 0x1ff2/2) {
+ uint8_t* cr = (uint8_t *)m_cartridge_ram;
+ uint32_t address = (cr[BYTE_XOR_LE(0x1ff3)]<<16)|(cr[BYTE_XOR_LE(0x1ff2)]<<8)|cr[BYTE_XOR_LE(0x1ff1)];
+ uint8_t prt = cr[BYTE_XOR_LE(0x1ff2)];
+
+ cr[BYTE_XOR_LE(0x1ff0)] = 0xa0;
+ cr[BYTE_XOR_LE(0x1ff1)] &= 0xfe;
+ cr[BYTE_XOR_LE(0x1ff3)] &= 0x7f;
+ m_bankdev->neogeo_set_main_cpu_bank_address(address+0x100000);
+
+ kof2k3_overlay = (prt & 0x00ff) | (kof2k3_overlay & 0xff00);
+ }
+}
+
+WRITE16_MEMBER( ngbootleg_prot_device::kof2003p_w )
+{
+ data = COMBINE_DATA(&m_cartridge_ram[offset]);
+ if (offset == 0x1ff0/2 || offset == 0x1ff2/2) {
+ uint8_t* cr = (uint8_t *)m_cartridge_ram;
+ uint32_t address = (cr[BYTE_XOR_LE(0x1ff3)]<<16)|(cr[BYTE_XOR_LE(0x1ff2)]<<8)|cr[BYTE_XOR_LE(0x1ff0)];
+ uint8_t prt = cr[BYTE_XOR_LE(0x1ff2)];
+
+ cr[BYTE_XOR_LE(0x1ff0)] &= 0xfe;
+ cr[BYTE_XOR_LE(0x1ff3)] &= 0x7f;
+ m_bankdev->neogeo_set_main_cpu_bank_address(address+0x100000);
+
+ kof2k3_overlay = (prt & 0x00ff) | (kof2k3_overlay & 0xff00);
+ }
+}
+
+void ngbootleg_prot_device::kf2k3bl_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ int i;
+ static const uint8_t sec[] = {
+ 0x07, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06
+ };
+
+ int rom_size = 0x800000;
+ uint8_t *rom = cpurom;
+ std::vector<uint8_t> buf( rom_size );
+ memcpy( &buf[0], rom, rom_size );
+
+ for( i = 0; i < rom_size / 0x100000; i++ ){
+ memcpy( &rom[ i * 0x100000 ], &buf[ sec[ i ] * 0x100000 ], 0x100000 );
+ }
+}
+
+void ngbootleg_prot_device::kf2k3bl_install_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev, uint8_t* cpurom, uint32_t cpurom_size)
+{
+ m_mainrom = cpurom;
+
+ maincpu->space(AS_PROGRAM).install_read_handler(0x58196, 0x58197, read16_delegate(FUNC(ngbootleg_prot_device::kof2003_overlay_r),this) );
+
+ maincpu->space(AS_PROGRAM).install_readwrite_handler(0x2fe000, 0x2fffff, read16_delegate(FUNC(ngbootleg_prot_device::kof2003_r),this), write16_delegate(FUNC(ngbootleg_prot_device::kof2003_w),this) );
+ m_bankdev = bankdev;
+
+}
+
+
+/* The King of Fighters 2004 Plus / Hero (The King of Fighters 2003 bootleg) */
+
+
+void ngbootleg_prot_device::kf2k3pl_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ std::vector<uint16_t> tmp(0x100000/2);
+ uint16_t*rom16 = (uint16_t*)cpurom;
+ int j;
+ int i;
+
+ for (i = 0;i < 0x700000/2;i+=0x100000/2)
+ {
+ memcpy(&tmp[0],&rom16[i],0x100000);
+ for (j = 0;j < 0x100000/2;j++)
+ rom16[i+j] = tmp[BITSWAP24(j,23,22,21,20,19,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18)];
+ }
+
+ /* patched by Altera protection chip on PCB */
+ rom16[0xf38ac/2] = 0x4e75;
+
+ kof2k3_overlay = rom16[0x58196 / 2];
+}
+
+void ngbootleg_prot_device::kf2k3pl_install_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev, uint8_t* cpurom, uint32_t cpurom_size)
+{
+ m_mainrom = cpurom;
+ maincpu->space(AS_PROGRAM).install_readwrite_handler(0x2fe000, 0x2fffff, read16_delegate(FUNC(ngbootleg_prot_device::kof2003_r),this), write16_delegate(FUNC(ngbootleg_prot_device::kof2003p_w),this) );
+ m_bankdev = bankdev;
+}
+
+
+/* The King of Fighters 2004 Ultra Plus (The King of Fighters 2003 bootleg) */
+
+
+void ngbootleg_prot_device::kf2k3upl_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ {
+ uint8_t *src = cpurom;
+ memmove(src+0x100000, src, 0x600000);
+ memmove(src, src+0x700000, 0x100000);
+ }
+
+ {
+ int ofst;
+ int i;
+ uint8_t *rom = cpurom + 0xfe000;
+ uint8_t *buf = cpurom + 0xd0610;
+
+ for( i = 0; i < 0x2000 / 2; i++ ){
+ ofst = (i & 0xff00) + BITSWAP8( (i & 0x00ff), 7, 6, 0, 4, 3, 2, 1, 5 );
+ memcpy( &rom[ i * 2 ], &buf[ ofst * 2 ], 2 );
+ }
+ }
+
+ uint16_t*rom16 = (uint16_t*)cpurom;
+ kof2k3_overlay = rom16[0x58196 / 2];
+
+
+}
+
+
+/* Samurai Shodown V / Samurai Spirits Zero (bootleg) */
+
+
+void ngbootleg_prot_device::samsho5b_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ int px_size = cpurom_size;
+ uint8_t *rom = cpurom;
+ std::vector<uint8_t> buf( px_size );
+ int ofst;
+ int i;
+
+ memcpy( &buf[0], rom, px_size );
+
+ for( i = 0; i < px_size / 2; i++ ){
+ ofst = BITSWAP8( (i & 0x000ff), 7, 6, 5, 4, 3, 0, 1, 2 );
+ ofst += (i & 0xfffff00);
+ ofst ^= 0x060005;
+
+ memcpy( &rom[ i * 2 ], &buf[ ofst * 2 ], 0x02 );
+ }
+
+ memcpy( &buf[0], rom, px_size );
+
+ memcpy( &rom[ 0x000000 ], &buf[ 0x700000 ], 0x100000 );
+ memcpy( &rom[ 0x100000 ], &buf[ 0x000000 ], 0x700000 );
+}
+
+
+void ngbootleg_prot_device::samsho5b_vx_decrypt(uint8_t* ymsndrom, uint32_t ymsndrom_size)
+{
+ int vx_size = ymsndrom_size;
+ uint8_t *rom = ymsndrom;
+ int i;
+
+ for( i = 0; i < vx_size; i++ )
+ rom[ i ] = BITSWAP8( rom[ i ], 0, 1, 5, 4, 3, 2, 6, 7 );
+}
+
+
+/* Matrimelee / Shin Gouketsuji Ichizoku Toukon (bootleg) */
+
+
+#define MATRIMBLZ80( i ) ( i^(BITSWAP8(i&0x3,4,3,1,2,0,7,6,5)<<8) )
+
+void ngbootleg_prot_device::matrimbl_decrypt(uint8_t* sprrom, uint32_t sprrom_size, uint8_t* audiorom, uint32_t audiorom_size)
+{
+ /* decrypt Z80 */
+ uint8_t *rom = audiorom+0x10000;
+ std::vector<uint8_t> buf( 0x20000 );
+ int i, j;
+ memcpy( &buf[0], rom, 0x20000 );
+ for( i=0x00000; i<0x20000; i++ )
+ {
+ if ( i&0x10000 )
+ {
+ if ( i&0x800 )
+ {
+ j=MATRIMBLZ80( i );
+ j=j^0x10000;
+ }
+ else
+ {
+ j=MATRIMBLZ80(( i^0x01 ));
+ }
+ }
+ else
+ {
+ if ( i&0x800 )
+ {
+ j=MATRIMBLZ80(( i^0x01 ));
+ j=j^0x10000;
+ }
+ else
+ {
+ j=MATRIMBLZ80( i );
+ }
+ }
+ rom[ j ]=buf[ i ];
+ }
+ memcpy( rom-0x10000, rom, 0x10000 );
+
+ /* decrypt gfx */
+ cthd2003_c(sprrom,sprrom_size, 0 );
+}
diff --git a/src/mame/old/bootleg_prot.h b/src/mame/old/bootleg_prot.h
new file mode 100644
index 00000000000..f41d79ab528
--- /dev/null
+++ b/src/mame/old/bootleg_prot.h
@@ -0,0 +1,92 @@
+// license:BSD-3-Clause
+// copyright-holders:S. Smith,David Haywood
+
+#pragma once
+
+#include "banked_cart.h"
+
+#ifndef __NGBOOTLEG_PROT__
+#define __NGBOOTLEG_PROT__
+
+extern const device_type NGBOOTLEG_PROT;
+
+#define MCFG_NGBOOTLEG_PROT_ADD(_tag) \
+ MCFG_DEVICE_ADD(_tag, NGBOOTLEG_PROT, 0)
+
+
+class ngbootleg_prot_device : public device_t
+{
+public:
+ // construction/destruction
+ ngbootleg_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
+ void neogeo_bootleg_cx_decrypt(uint8_t*sprrom, uint32_t sprrom_size);
+ void neogeo_bootleg_sx_decrypt(uint8_t* fixed, uint32_t fixed_size, int value);
+ void kof97oro_px_decode(uint8_t* cpurom, uint32_t cpurom_size);
+ void kof10thBankswitch(address_space &space, uint16_t nBank);
+ DECLARE_READ16_MEMBER(kof10th_RAM2_r);
+ DECLARE_READ16_MEMBER(kof10th_RAMB_r);
+ DECLARE_WRITE16_MEMBER(kof10th_custom_w);
+ DECLARE_WRITE16_MEMBER(kof10th_bankswitch_w);
+ void install_kof10th_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev, uint8_t* cpurom, uint32_t cpurom_size, uint8_t* fixedrom, uint32_t fixedrom_size);
+ void decrypt_kof10th(uint8_t* cpurom, uint32_t cpurom_size);
+ void kf10thep_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size);
+ void kf2k5uni_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size);
+ void kf2k5uni_sx_decrypt(uint8_t* fixedrom, uint32_t fixedrom_size);
+ void kf2k5uni_mx_decrypt(uint8_t* audiorom, uint32_t audiorom_size);
+ void decrypt_kf2k5uni(uint8_t* cpurom, uint32_t cpurom_size, uint8_t* audiorom, uint32_t audiorom_size, uint8_t* fixedrom, uint32_t fixedrom_size);
+ void kof2002b_gfx_decrypt(uint8_t *src, int size);
+ void kf2k2mp_decrypt(uint8_t* cpurom, uint32_t cpurom_size);
+ void kf2k2mp2_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size);
+ void cthd2003_neogeo_gfx_address_fix_do(uint8_t* sprrom, uint32_t sprrom_size, int start, int end, int bit3shift, int bit2shift, int bit1shift, int bit0shift);
+ void cthd2003_neogeo_gfx_address_fix(uint8_t* sprrom, uint32_t sprrom_size, int start, int end);
+ void cthd2003_c(uint8_t* sprrom, uint32_t sprrom_size, int pow);
+ void decrypt_cthd2003(uint8_t* sprrom, uint32_t sprrom_size, uint8_t* audiorom, uint32_t audiorom_size, uint8_t* fixedrom, uint32_t fixedrom_size);
+ DECLARE_WRITE16_MEMBER(cthd2003_bankswitch_w);
+ void patch_cthd2003(cpu_device* maincpu, neogeo_banked_cart_device* bankdev, uint8_t* cpurom, uint32_t cpurom_size);
+ void ct2k3sp_sx_decrypt(uint8_t* fixedrom, uint32_t fixedrom_size);
+ void decrypt_ct2k3sp(uint8_t* sprrom, uint32_t sprrom_size, uint8_t* audiorom, uint32_t audiorom_size, uint8_t* fixedrom, uint32_t fixedrom_size);
+ void decrypt_ct2k3sa(uint8_t* sprrom, uint32_t sprrom_size, uint8_t* audiorom, uint32_t audiorom_size);
+ void patch_ct2k3sa(uint8_t* cpurom, uint32_t cpurom_size);
+ void decrypt_kof2k4se_68k(uint8_t* cpurom, uint32_t cpurom_size);
+ void lans2004_vx_decrypt(uint8_t* ymsndrom, uint32_t ymsndrom_size);
+ void lans2004_decrypt_68k(uint8_t* cpurom, uint32_t cpurom_size);
+ DECLARE_READ16_MEMBER(mslug5_prot_r);
+ DECLARE_WRITE16_MEMBER(ms5plus_bankswitch_w);
+ void install_ms5plus_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev);
+ void svcboot_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size);
+ void svcboot_cx_decrypt(uint8_t*sprrom, uint32_t sprrom_size);
+ void svcplus_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size);
+ void svcplus_px_hack(uint8_t* cpurom, uint32_t cpurom_size);
+ void svcplusa_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size);
+ void svcsplus_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size);
+ void svcsplus_px_hack(uint8_t* cpurom, uint32_t cpurom_size);
+ DECLARE_READ16_MEMBER(kof2003_r);
+ DECLARE_WRITE16_MEMBER(kof2003_w);
+ DECLARE_WRITE16_MEMBER(kof2003p_w);
+ DECLARE_READ16_MEMBER(kof2003_overlay_r);
+ void kf2k3bl_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size);
+ void kf2k3bl_install_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev, uint8_t* cpurom, uint32_t cpurom_size);
+ void kf2k3pl_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size);
+ void kf2k3pl_install_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev, uint8_t* cpurom, uint32_t cpurom_size);
+ uint16_t kof2k3_overlay;
+
+ void kf2k3upl_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size);
+ void samsho5b_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size);
+ void samsho5b_vx_decrypt(uint8_t* ymsndrom, uint32_t ymsndrom_size);
+ void matrimbl_decrypt(uint8_t* sprrom, uint32_t sprrom_size, uint8_t* audiorom, uint32_t audiorom_size);
+
+ uint16_t m_cartridge_ram[0x1000]; // bootlegs
+
+ // for kof10th
+ uint8_t* m_mainrom;
+ uint8_t* m_fixedrom;
+ neogeo_banked_cart_device* m_bankdev;
+ uint16_t m_cartridge_ram2[0x10000];
+
+protected:
+ virtual void device_start() override;
+ virtual void device_reset() override;
+};
+
+#endif
diff --git a/src/mame/old/cmc_cart.cpp b/src/mame/old/cmc_cart.cpp
new file mode 100644
index 00000000000..55c953c0713
--- /dev/null
+++ b/src/mame/old/cmc_cart.cpp
@@ -0,0 +1,223 @@
+// license:BSD-3-Clause
+// copyright-holders:S. Smith,David Haywood
+/***********************************************************************************************************
+
+ NEOGEO ROM cart emulation
+
+ ***********************************************************************************************************/
+
+
+#include "emu.h"
+#include "cmc_cart.h"
+
+
+//-------------------------------------------------
+// neogeo_cmc_cart - constructor
+//-------------------------------------------------
+
+const device_type NEOGEO_CMC_CART = device_creator<neogeo_cmc_cart>;
+
+
+neogeo_cmc_cart::neogeo_cmc_cart(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint16_t clock, const char *shortname, const char *source)
+ : device_t(mconfig, type, name, tag, owner, clock, shortname, source),
+ device_neogeo_cart_interface(mconfig, *this),
+ m_banked_cart(*this, "banked_cart"),
+ m_cmc_prot(*this, "cmc_prot")
+
+{
+}
+
+neogeo_cmc_cart::neogeo_cmc_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock)
+ : device_t(mconfig, NEOGEO_CMC_CART, "NEOGEO SMA Cart", tag, owner, clock, "neogeo_rom", __FILE__),
+ device_neogeo_cart_interface(mconfig, *this),
+ m_banked_cart(*this, "banked_cart"),
+ m_cmc_prot(*this, "cmc_prot")
+{
+}
+
+
+//-------------------------------------------------
+// mapper specific start/reset
+//-------------------------------------------------
+
+void neogeo_cmc_cart::device_start()
+{
+}
+
+void neogeo_cmc_cart::device_reset()
+{
+}
+
+
+/*-------------------------------------------------
+ mapper specific handlers
+ -------------------------------------------------*/
+
+READ16_MEMBER(neogeo_cmc_cart::read_rom)
+{
+ return m_rom[offset];
+}
+
+static MACHINE_CONFIG_FRAGMENT( cmc_cart )
+ MCFG_NEOGEO_BANKED_CART_ADD("banked_cart")
+ MCFG_CMC_PROT_ADD("cmc_prot")
+MACHINE_CONFIG_END
+
+machine_config_constructor neogeo_cmc_cart::device_mconfig_additions() const
+{
+ return MACHINE_CONFIG_NAME( cmc_cart );
+}
+
+
+
+/* Individual cartridge types (mirror DRIVER_INIT functionality) */
+
+/*************************************************
+ Zupapa
+**************************************************/
+
+const device_type NEOGEO_CMC_ZUPAPA_CART = device_creator<neogeo_cmc_zupapa_cart>;
+
+neogeo_cmc_zupapa_cart::neogeo_cmc_zupapa_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : neogeo_cmc_cart(mconfig, NEOGEO_CMC_ZUPAPA_CART, "NEOGEO CMC zupapa Cart", tag, owner, clock, "cmc_zupapa_cart", __FILE__) {}
+
+void neogeo_cmc_zupapa_cart::decrypt_all(DECRYPT_ALL_PARAMS)
+{
+ m_cmc_prot->kof99_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, ZUPAPA_GFX_KEY);
+}
+
+
+/*************************************************
+ Zupapa
+**************************************************/
+
+const device_type NEOGEO_CMC_MSLUG3H_CART = device_creator<neogeo_cmc_mslug3h_cart>;
+
+neogeo_cmc_mslug3h_cart::neogeo_cmc_mslug3h_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : neogeo_cmc_cart(mconfig, NEOGEO_CMC_MSLUG3H_CART, "NEOGEO CMC mslug3h Cart", tag, owner, clock, "cmc_mslug3h_cart", __FILE__) {}
+
+void neogeo_cmc_mslug3h_cart::decrypt_all(DECRYPT_ALL_PARAMS)
+{
+ m_cmc_prot->kof99_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, MSLUG3_GFX_KEY);
+}
+
+
+/*************************************************
+ Ganryu
+**************************************************/
+
+const device_type NEOGEO_CMC_GANRYU_CART = device_creator<neogeo_cmc_ganryu_cart>;
+
+neogeo_cmc_ganryu_cart::neogeo_cmc_ganryu_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : neogeo_cmc_cart(mconfig, NEOGEO_CMC_GANRYU_CART, "NEOGEO CMC ganryu Cart", tag, owner, clock, "cmc_ganryu_cart", __FILE__) {}
+
+void neogeo_cmc_ganryu_cart::decrypt_all(DECRYPT_ALL_PARAMS)
+{
+ m_cmc_prot->kof99_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, GANRYU_GFX_KEY);
+}
+
+
+/*************************************************
+ S1945P
+**************************************************/
+
+const device_type NEOGEO_CMC_S1945P_CART = device_creator<neogeo_cmc_s1945p_cart>;
+
+neogeo_cmc_s1945p_cart::neogeo_cmc_s1945p_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : neogeo_cmc_cart(mconfig, NEOGEO_CMC_S1945P_CART, "NEOGEO CMC s1945p Cart", tag, owner, clock, "cmc_s1945p_cart", __FILE__) {}
+
+void neogeo_cmc_s1945p_cart::decrypt_all(DECRYPT_ALL_PARAMS)
+{
+ m_cmc_prot->kof99_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, S1945P_GFX_KEY);
+}
+
+/*************************************************
+ PREISLE2
+**************************************************/
+
+const device_type NEOGEO_CMC_PREISLE2_CART = device_creator<neogeo_cmc_preisle2_cart>;
+
+neogeo_cmc_preisle2_cart::neogeo_cmc_preisle2_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : neogeo_cmc_cart(mconfig, NEOGEO_CMC_PREISLE2_CART, "NEOGEO CMC preisle2 Cart", tag, owner, clock, "cmc_preisle2_cart", __FILE__) {}
+
+void neogeo_cmc_preisle2_cart::decrypt_all(DECRYPT_ALL_PARAMS)
+{
+ m_cmc_prot->kof99_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, PREISLE2_GFX_KEY);
+}
+
+/*************************************************
+ BANGBEAD
+**************************************************/
+
+const device_type NEOGEO_CMC_BANGBEAD_CART = device_creator<neogeo_cmc_bangbead_cart>;
+
+neogeo_cmc_bangbead_cart::neogeo_cmc_bangbead_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : neogeo_cmc_cart(mconfig, NEOGEO_CMC_BANGBEAD_CART, "NEOGEO CMC bangbead Cart", tag, owner, clock, "cmc_bangbead_cart", __FILE__) {}
+
+void neogeo_cmc_bangbead_cart::decrypt_all(DECRYPT_ALL_PARAMS)
+{
+ m_cmc_prot->kof99_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, BANGBEAD_GFX_KEY);
+}
+
+/*************************************************
+ NITD
+**************************************************/
+
+const device_type NEOGEO_CMC_NITD_CART = device_creator<neogeo_cmc_nitd_cart>;
+
+neogeo_cmc_nitd_cart::neogeo_cmc_nitd_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : neogeo_cmc_cart(mconfig, NEOGEO_CMC_NITD_CART, "NEOGEO CMC nitd Cart", tag, owner, clock, "cmc_nitd_cart", __FILE__) {}
+
+void neogeo_cmc_nitd_cart::decrypt_all(DECRYPT_ALL_PARAMS)
+{
+ m_cmc_prot->kof99_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, NITD_GFX_KEY);
+}
+
+
+/*************************************************
+ SENGOKU3
+**************************************************/
+
+const device_type NEOGEO_CMC_SENGOKU3_CART = device_creator<neogeo_cmc_sengoku3_cart>;
+
+neogeo_cmc_sengoku3_cart::neogeo_cmc_sengoku3_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : neogeo_cmc_cart(mconfig, NEOGEO_CMC_SENGOKU3_CART, "NEOGEO CMC sengoku3 Cart", tag, owner, clock, "cmc_sengoku3_cart", __FILE__) {}
+
+void neogeo_cmc_sengoku3_cart::decrypt_all(DECRYPT_ALL_PARAMS)
+{
+ m_cmc_prot->kof99_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, SENGOKU3_GFX_KEY);
+}
+
+/*************************************************
+ KOF99K
+**************************************************/
+
+const device_type NEOGEO_CMC_KOF99K_CART = device_creator<neogeo_cmc_kof99k_cart>;
+
+neogeo_cmc_kof99k_cart::neogeo_cmc_kof99k_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : neogeo_cmc_cart(mconfig, NEOGEO_CMC_KOF99K_CART, "NEOGEO CMC kof99k Cart", tag, owner, clock, "cmc_kof99k_cart", __FILE__) {}
+
+void neogeo_cmc_kof99k_cart::decrypt_all(DECRYPT_ALL_PARAMS)
+{
+ m_cmc_prot->kof99_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, KOF99_GFX_KEY);
+}
+
+
+/*************************************************
+ KOF2001
+**************************************************/
+
+const device_type NEOGEO_CMC_KOF2001_CART = device_creator<neogeo_cmc_kof2001_cart>;
+
+neogeo_cmc_kof2001_cart::neogeo_cmc_kof2001_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : neogeo_cmc_cart(mconfig, NEOGEO_CMC_KOF2001_CART, "NEOGEO CMC kof2001 Cart", tag, owner, clock, "cmc_kof2001_cart", __FILE__) {}
+
+void neogeo_cmc_kof2001_cart::decrypt_all(DECRYPT_ALL_PARAMS)
+{
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size);
+ m_cmc_prot->kof2000_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, KOF2001_GFX_KEY);
+}
+
+/*************************************************
+ KOF2000N
+**************************************************/
+
+const device_type NEOGEO_CMC_KOF2000N_CART = device_creator<neogeo_cmc_kof2000n_cart>;
+
+neogeo_cmc_kof2000n_cart::neogeo_cmc_kof2000n_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : neogeo_cmc_cart(mconfig, NEOGEO_CMC_KOF2000N_CART, "NEOGEO CMC kof2000n Cart", tag, owner, clock, "cmc_kof2000n_cart", __FILE__) {}
+
+void neogeo_cmc_kof2000n_cart::decrypt_all(DECRYPT_ALL_PARAMS)
+{
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size);
+ m_cmc_prot->kof2000_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, KOF2000_GFX_KEY);
+}
diff --git a/src/mame/old/cmc_cart.h b/src/mame/old/cmc_cart.h
new file mode 100644
index 00000000000..bedfffb0376
--- /dev/null
+++ b/src/mame/old/cmc_cart.h
@@ -0,0 +1,191 @@
+// license:BSD-3-Clause
+// copyright-holders:S. Smith,David Haywood
+#ifndef __NEOGEO_CMC_CART_H
+#define __NEOGEO_CMC_CART_H
+
+#include "neogeo_slot.h"
+#include "banked_cart.h"
+#include "sma_prot.h"
+#include "cmc_prot.h"
+
+// ======================> neogeo_cmc_cart
+
+class neogeo_cmc_cart : public device_t,
+ public device_neogeo_cart_interface
+{
+public:
+ // construction/destruction
+ neogeo_cmc_cart(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint16_t clock, const char *shortname, const char *source);
+ neogeo_cmc_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock);
+
+ // device-level overrides
+ virtual void device_start() override;
+ virtual void device_reset() override;
+ virtual machine_config_constructor device_mconfig_additions() const override;
+
+ // reading and writing
+ virtual DECLARE_READ16_MEMBER(read_rom) override;
+
+ virtual void activate_cart(ACTIVATE_CART_PARAMS) override { m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size); }
+ virtual void decrypt_all(DECRYPT_ALL_PARAMS) override {}
+ virtual int get_fixed_bank_type(void) override { return 0; }
+
+ required_device<neogeo_banked_cart_device> m_banked_cart;
+ required_device<cmc_prot_device> m_cmc_prot;
+};
+
+
+
+// device type definition
+extern const device_type NEOGEO_CMC_CART;
+
+
+/*************************************************
+ ZUPAPA
+**************************************************/
+
+class neogeo_cmc_zupapa_cart : public neogeo_cmc_cart
+{
+public:
+ neogeo_cmc_zupapa_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
+ virtual int get_fixed_bank_type(void) override { return 1; }
+};
+extern const device_type NEOGEO_CMC_ZUPAPA_CART;
+
+/*************************************************
+ MSLUG3H
+**************************************************/
+
+class neogeo_cmc_mslug3h_cart : public neogeo_cmc_cart
+{
+public:
+ neogeo_cmc_mslug3h_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
+ virtual int get_fixed_bank_type(void) override { return 1; }
+};
+extern const device_type NEOGEO_CMC_MSLUG3H_CART;
+
+
+/*************************************************
+ GANRYU
+**************************************************/
+
+class neogeo_cmc_ganryu_cart : public neogeo_cmc_cart
+{
+public:
+ neogeo_cmc_ganryu_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
+ virtual int get_fixed_bank_type(void) override { return 1; }
+};
+extern const device_type NEOGEO_CMC_GANRYU_CART;
+
+/*************************************************
+ S1945P
+**************************************************/
+
+class neogeo_cmc_s1945p_cart : public neogeo_cmc_cart
+{
+public:
+ neogeo_cmc_s1945p_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
+ virtual int get_fixed_bank_type(void) override { return 1; }
+};
+extern const device_type NEOGEO_CMC_S1945P_CART;
+
+
+/*************************************************
+ PREISLE2
+**************************************************/
+
+class neogeo_cmc_preisle2_cart : public neogeo_cmc_cart
+{
+public:
+ neogeo_cmc_preisle2_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
+ virtual int get_fixed_bank_type(void) override { return 1; }
+};
+extern const device_type NEOGEO_CMC_PREISLE2_CART;
+
+/*************************************************
+ BANGBEAD
+**************************************************/
+
+class neogeo_cmc_bangbead_cart : public neogeo_cmc_cart
+{
+public:
+ neogeo_cmc_bangbead_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
+ virtual int get_fixed_bank_type(void) override { return 1; }
+};
+extern const device_type NEOGEO_CMC_BANGBEAD_CART;
+
+
+/*************************************************
+ NITD
+**************************************************/
+
+class neogeo_cmc_nitd_cart : public neogeo_cmc_cart
+{
+public:
+ neogeo_cmc_nitd_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
+ virtual int get_fixed_bank_type(void) override { return 1; }
+};
+extern const device_type NEOGEO_CMC_NITD_CART;
+
+/*************************************************
+ SENGOKU3
+**************************************************/
+
+class neogeo_cmc_sengoku3_cart : public neogeo_cmc_cart
+{
+public:
+ neogeo_cmc_sengoku3_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
+ virtual int get_fixed_bank_type(void) override { return 1; }
+};
+extern const device_type NEOGEO_CMC_SENGOKU3_CART;
+
+/*************************************************
+ KOF99K
+**************************************************/
+
+class neogeo_cmc_kof99k_cart : public neogeo_cmc_cart
+{
+public:
+ neogeo_cmc_kof99k_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
+ virtual int get_fixed_bank_type(void) override { return 1; }
+};
+extern const device_type NEOGEO_CMC_KOF99K_CART;
+
+/*************************************************
+ KOF2001
+**************************************************/
+
+class neogeo_cmc_kof2001_cart : public neogeo_cmc_cart
+{
+public:
+ neogeo_cmc_kof2001_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
+ virtual int get_fixed_bank_type(void) override { return 1; }
+};
+extern const device_type NEOGEO_CMC_KOF2001_CART;
+
+/*************************************************
+ KOF2000N
+**************************************************/
+
+class neogeo_cmc_kof2000n_cart : public neogeo_cmc_cart
+{
+public:
+ neogeo_cmc_kof2000n_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
+ virtual int get_fixed_bank_type(void) override { return 2; }
+};
+extern const device_type NEOGEO_CMC_KOF2000N_CART;
+
+
+
+#endif
diff --git a/src/mame/old/cmc_prot.cpp b/src/mame/old/cmc_prot.cpp
new file mode 100644
index 00000000000..7a3979e2232
--- /dev/null
+++ b/src/mame/old/cmc_prot.cpp
@@ -0,0 +1,798 @@
+// license:BSD-3-Clause
+// copyright-holders:S. Smith,David Haywood
+
+#include "emu.h"
+#include "cmc_prot.h"
+
+
+
+const device_type CMC_PROT = device_creator<cmc_prot_device>;
+
+
+cmc_prot_device::cmc_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : device_t(mconfig, CMC_PROT, "NeoGeo Protection (CMC)", tag, owner, clock, "cmc_prot", __FILE__),
+ type0_t03(nullptr),
+ type0_t12(nullptr),
+ type1_t03(nullptr),
+ type1_t12(nullptr),
+ address_8_15_xor1(nullptr),
+ address_8_15_xor2(nullptr),
+ address_16_23_xor1(nullptr),
+ address_16_23_xor2(nullptr),
+ address_0_7_xor(nullptr)
+{
+}
+
+
+void cmc_prot_device::device_start()
+{
+}
+
+void cmc_prot_device::device_reset()
+{
+}
+
+
+
+
+
+
+
+/***************************************************************************
+
+NeoGeo 'C' ROM encryption
+
+Starting with KOF99, all NeoGeo games have encrypted graphics. Additionally
+to that, the data for the front text layer, which was previously stored in
+a separate ROM, is stored at the end of the tile data.
+
+The encryption is one of the nastiest implementation of a XOR scheme ever
+seen, involving 9 seemingly uncorrelated 256-byte tables. All known games use
+the same tables except KOF2000 and MS4 which use a different set.
+
+The 32 data bits of every longword are decrypted in a single step (one byte at
+a time), but the values to use for the xor are determined in a convoluted way.
+It's actually so convoluted that it's too difficult to describe - please refer
+to the source below.
+Suffice to say that bytes are handled in couples (0&3 and 1&2), and the two xor
+values are taken from three tables, the indexes inside the tables depending on
+bits 0-7 and 8-15 of the address, in one case further xored through the table
+used in step 5) below. Additionally, the bytes in a couple can be swapped,
+depending either on bit 8 of the address, or on bit 16 xored with the table
+used in step 4) below.
+
+The 24 address bits are encrypted in five steps. Each step xors 8 bits with a
+value taken from a different table; the index inside the table depends on 8
+other bits.
+0) xor bits 0-7 with a fixed value that changes from game to game
+1) xor bits 8-15 depending on bits 16-23
+2) xor bits 8-15 depending on bits 0-7
+3) xor bits 16-23 depending on bits 0-7
+4) xor bits 16-23 depending on bits 8-15
+5) xor bits 0-7 depending on bits 8-15
+
+Each step acts on the current value, so e.g. step 4) uses bits 8-15 as modified
+by step 2).
+
+[Note: the table used in step 1) is currently incomplete due to lack of data to
+analyze]
+
+
+There are two major weaknesses in this encryption algorithm, that exposed it to
+a known plaintext attack.
+
+The first weakness is that the data xor depends on the address inside the
+encrypted ROM instead that on the decrypted address; together with the high
+concentration of 0x00 and 0xFF in the decrypted data (more than 60% of the
+total), this exposed easily recognizable patterns in the encrypted data, which
+could be exploited with some simple statistical checks. The deviousness of the
+xor scheme was the major difficulty.
+
+The second weakness is that the address scrambling works on 32-bit words. Since
+there are a large number of 32-bit values that appear only once in the whole
+encrypted ROM space, this means that once the xor layer was broken, a large
+table of encrypted-decrypted address correspondencies could be built and
+analyzed, quickly leading to the algorithm.
+
+***************************************************************************/
+
+static const uint8_t kof99_type0_t03[256] =
+{
+ 0xfb, 0x86, 0x9d, 0xf1, 0xbf, 0x80, 0xd5, 0x43, 0xab, 0xb3, 0x9f, 0x6a, 0x33, 0xd9, 0xdb, 0xb6,
+ 0x66, 0x08, 0x69, 0x88, 0xcc, 0xb7, 0xde, 0x49, 0x97, 0x64, 0x1f, 0xa6, 0xc0, 0x2f, 0x52, 0x42,
+ 0x44, 0x5a, 0xf2, 0x28, 0x98, 0x87, 0x96, 0x8a, 0x83, 0x0b, 0x03, 0x61, 0x71, 0x99, 0x6b, 0xb5,
+ 0x1a, 0x8e, 0xfe, 0x04, 0xe1, 0xf7, 0x7d, 0xdd, 0xed, 0xca, 0x37, 0xfc, 0xef, 0x39, 0x72, 0xda,
+ 0xb8, 0xbe, 0xee, 0x7f, 0xe5, 0x31, 0x78, 0xf3, 0x91, 0x9a, 0xd2, 0x11, 0x19, 0xb9, 0x09, 0x4c,
+ 0xfd, 0x6d, 0x2a, 0x4d, 0x65, 0xa1, 0x89, 0xc7, 0x75, 0x50, 0x21, 0xfa, 0x16, 0x00, 0xe9, 0x12,
+ 0x74, 0x2b, 0x1e, 0x4f, 0x14, 0x01, 0x70, 0x3a, 0x4e, 0x3f, 0xf5, 0xf4, 0x1d, 0x3d, 0x15, 0x27,
+ 0xa7, 0xff, 0x45, 0xe0, 0x6e, 0xf9, 0x54, 0xc8, 0x48, 0xad, 0xa5, 0x0a, 0xf6, 0x2d, 0x2c, 0xe2,
+ 0x68, 0x67, 0xd6, 0x85, 0xb4, 0xc3, 0x34, 0xbc, 0x62, 0xd3, 0x5f, 0x84, 0x06, 0x5b, 0x0d, 0x95,
+ 0xea, 0x5e, 0x9e, 0xd4, 0xeb, 0x90, 0x7a, 0x05, 0x81, 0x57, 0xe8, 0x60, 0x2e, 0x20, 0x25, 0x7c,
+ 0x46, 0x0c, 0x93, 0xcb, 0xbd, 0x17, 0x7e, 0xec, 0x79, 0xb2, 0xc2, 0x22, 0x41, 0xb1, 0x10, 0xac,
+ 0xa8, 0xbb, 0x9b, 0x82, 0x4b, 0x9c, 0x8b, 0x07, 0x47, 0x35, 0x24, 0x56, 0x8d, 0xaf, 0xe6, 0x26,
+ 0x40, 0x38, 0xc4, 0x5d, 0x1b, 0xc5, 0xd1, 0x0f, 0x6c, 0x7b, 0xb0, 0xe3, 0xa3, 0x23, 0x6f, 0x58,
+ 0xc1, 0xba, 0xcf, 0xd7, 0xa2, 0xe7, 0xd0, 0x63, 0x5c, 0xf8, 0x73, 0xa0, 0x13, 0xdc, 0x29, 0xcd,
+ 0xc9, 0x76, 0xae, 0x8f, 0xe4, 0x59, 0x30, 0xaa, 0x94, 0x1c, 0x3c, 0x0e, 0x55, 0x92, 0x77, 0x32,
+ 0xc6, 0xce, 0x18, 0x36, 0xdf, 0xa9, 0x8c, 0xd8, 0xa4, 0xf0, 0x3b, 0x51, 0x4a, 0x02, 0x3e, 0x53,
+};
+
+
+static const uint8_t kof99_type0_t12[256] =
+{
+ 0x1f, 0xac, 0x4d, 0xcd, 0xca, 0x70, 0x02, 0x6b, 0x18, 0x40, 0x62, 0xb2, 0x3f, 0x9b, 0x5b, 0xef,
+ 0x69, 0x68, 0x71, 0x3b, 0xcb, 0xd4, 0x30, 0xbc, 0x47, 0x72, 0x74, 0x5e, 0x84, 0x4c, 0x1b, 0xdb,
+ 0x6a, 0x35, 0x1d, 0xf5, 0xa1, 0xb3, 0x87, 0x5d, 0x57, 0x28, 0x2f, 0xc4, 0xfd, 0x24, 0x26, 0x36,
+ 0xad, 0xbe, 0x61, 0x63, 0x73, 0xaa, 0x82, 0xee, 0x29, 0xd0, 0xdf, 0x8c, 0x15, 0xb5, 0x96, 0xf3,
+ 0xdd, 0x7e, 0x3a, 0x37, 0x58, 0x7f, 0x0c, 0xfc, 0x0b, 0x07, 0xe8, 0xf7, 0xf4, 0x14, 0xb8, 0x81,
+ 0xb6, 0xd7, 0x1e, 0xc8, 0x85, 0xe6, 0x9d, 0x33, 0x60, 0xc5, 0x95, 0xd5, 0x55, 0x00, 0xa3, 0xb7,
+ 0x7d, 0x50, 0x0d, 0xd2, 0xc1, 0x12, 0xe5, 0xed, 0xd8, 0xa4, 0x9c, 0x8f, 0x2a, 0x4f, 0xa8, 0x01,
+ 0x52, 0x83, 0x65, 0xea, 0x9a, 0x6c, 0x44, 0x4a, 0xe2, 0xa5, 0x2b, 0x46, 0xe1, 0x34, 0x25, 0xf8,
+ 0xc3, 0xda, 0xc7, 0x6e, 0x48, 0x38, 0x7c, 0x78, 0x06, 0x53, 0x64, 0x16, 0x98, 0x3c, 0x91, 0x42,
+ 0x39, 0xcc, 0xb0, 0xf1, 0xeb, 0x13, 0xbb, 0x05, 0x32, 0x86, 0x0e, 0xa2, 0x0a, 0x9e, 0xfa, 0x66,
+ 0x54, 0x8e, 0xd3, 0xe7, 0x19, 0x20, 0x77, 0xec, 0xff, 0xbd, 0x6d, 0x43, 0x23, 0x03, 0xab, 0x75,
+ 0x3d, 0xcf, 0xd1, 0xde, 0x92, 0x31, 0xa7, 0x45, 0x4b, 0xc2, 0x97, 0xf9, 0x7a, 0x88, 0xd9, 0x1c,
+ 0xe9, 0xe4, 0x10, 0xc9, 0x22, 0x2d, 0x90, 0x76, 0x17, 0x79, 0x04, 0x51, 0x1a, 0x5a, 0x5f, 0x2c,
+ 0x21, 0x6f, 0x3e, 0xe0, 0xf0, 0xbf, 0xd6, 0x94, 0x0f, 0x80, 0x11, 0xa0, 0x5c, 0xa9, 0x49, 0x2e,
+ 0xce, 0xaf, 0xa6, 0x9f, 0x7b, 0x99, 0xb9, 0xb4, 0xe3, 0xfb, 0xf6, 0x27, 0xf2, 0x93, 0xfe, 0x08,
+ 0x67, 0xae, 0x09, 0x89, 0xdc, 0x4e, 0xc6, 0xc0, 0x8a, 0xb1, 0x59, 0x8b, 0x41, 0x56, 0x8d, 0xba,
+};
+
+
+static const uint8_t kof99_type1_t03[256] =
+{
+ 0xa9, 0x17, 0xaf, 0x0d, 0x34, 0x6e, 0x53, 0xb6, 0x7f, 0x58, 0xe9, 0x14, 0x5f, 0x55, 0xdb, 0xd4,
+ 0x42, 0x80, 0x99, 0x59, 0xa8, 0x3a, 0x57, 0x5d, 0xd5, 0x6f, 0x4c, 0x68, 0x35, 0x46, 0xa6, 0xe7,
+ 0x7b, 0x71, 0xe0, 0x93, 0xa2, 0x1f, 0x64, 0x21, 0xe3, 0xb1, 0x98, 0x26, 0xab, 0xad, 0xee, 0xe5,
+ 0xbb, 0xd9, 0x1e, 0x2e, 0x95, 0x36, 0xef, 0x23, 0x79, 0x45, 0x04, 0xed, 0x13, 0x1d, 0xf4, 0x85,
+ 0x96, 0xec, 0xc2, 0x32, 0xaa, 0x7c, 0x15, 0xd8, 0xda, 0x92, 0x90, 0x9d, 0xb7, 0x56, 0x6a, 0x66,
+ 0x41, 0xfc, 0x00, 0xf6, 0x50, 0x24, 0xcf, 0xfb, 0x11, 0xfe, 0x82, 0x48, 0x9b, 0x27, 0x1b, 0x67,
+ 0x4e, 0x84, 0x69, 0x97, 0x6d, 0x8c, 0xd2, 0xba, 0x74, 0xf9, 0x8f, 0xa5, 0x54, 0x5c, 0xcd, 0x73,
+ 0x07, 0xd1, 0x01, 0x09, 0xf1, 0x19, 0x3b, 0x5e, 0x87, 0x30, 0x76, 0xcc, 0xc0, 0x5a, 0xa7, 0x49,
+ 0x22, 0xfa, 0x16, 0x02, 0xdf, 0xa4, 0xff, 0xb3, 0x75, 0x33, 0xbd, 0x88, 0x2f, 0xcb, 0x2a, 0x44,
+ 0xb8, 0xbf, 0x1c, 0x0f, 0x81, 0x10, 0x43, 0xb4, 0xc8, 0x7e, 0x9a, 0x25, 0xea, 0x83, 0x4b, 0x38,
+ 0x7a, 0xd7, 0x3d, 0x1a, 0x4f, 0x62, 0x51, 0xc9, 0x47, 0x0e, 0xce, 0x3f, 0xc7, 0x4d, 0x2c, 0xa1,
+ 0x86, 0xb9, 0xc5, 0xca, 0xdd, 0x6b, 0x70, 0x6c, 0x91, 0x9c, 0xbe, 0x0a, 0x9f, 0xf5, 0x94, 0xbc,
+ 0x18, 0x2b, 0x60, 0x20, 0x29, 0xf7, 0xf2, 0x28, 0xc4, 0xa0, 0x0b, 0x65, 0xde, 0x8d, 0x78, 0x12,
+ 0x3e, 0xd0, 0x77, 0x08, 0x8b, 0xae, 0x05, 0x31, 0x3c, 0xd6, 0xa3, 0x89, 0x06, 0xdc, 0x52, 0x72,
+ 0xb0, 0xb5, 0x37, 0xd3, 0xc3, 0x8a, 0xc6, 0xf0, 0xc1, 0x61, 0xfd, 0x4a, 0x5b, 0x7d, 0x9e, 0xf3,
+ 0x63, 0x40, 0x2d, 0xe8, 0xb2, 0xe6, 0x39, 0x03, 0xeb, 0x8e, 0xe1, 0x0c, 0xe4, 0xe2, 0xf8, 0xac,
+};
+
+
+static const uint8_t kof99_type1_t12[256] =
+{
+ 0xea, 0xe6, 0x5e, 0xa7, 0x8e, 0xac, 0x34, 0x03, 0x30, 0x97, 0x52, 0x53, 0x76, 0xf2, 0x62, 0x0b,
+ 0x0a, 0xfc, 0x94, 0xb8, 0x67, 0x36, 0x11, 0xbc, 0xae, 0xca, 0xfa, 0x15, 0x04, 0x2b, 0x17, 0xc4,
+ 0x3e, 0x5b, 0x59, 0x01, 0x57, 0xe2, 0xba, 0xb7, 0xd1, 0x3f, 0xf0, 0x6a, 0x9c, 0x2a, 0xcb, 0xa9,
+ 0xe3, 0x2c, 0xc0, 0x0f, 0x46, 0x91, 0x8a, 0xd0, 0x98, 0xc5, 0xa6, 0x1b, 0x96, 0x29, 0x12, 0x09,
+ 0x63, 0xed, 0xe0, 0xa2, 0x86, 0x77, 0xbe, 0xe5, 0x65, 0xdb, 0xbd, 0x50, 0xb3, 0x9d, 0x1a, 0x4e,
+ 0x79, 0x0c, 0x00, 0x43, 0xdf, 0x3d, 0x54, 0x33, 0x8f, 0x89, 0xa8, 0x7b, 0xf9, 0xd5, 0x27, 0x82,
+ 0xbb, 0xc2, 0x8c, 0x47, 0x88, 0x6b, 0xb4, 0xc3, 0xf8, 0xaa, 0x06, 0x1e, 0x83, 0x7d, 0x05, 0x78,
+ 0x85, 0xf6, 0x6e, 0x2e, 0xec, 0x5a, 0x31, 0x45, 0x38, 0x14, 0x16, 0x8b, 0x02, 0xe4, 0x4f, 0xb0,
+ 0xbf, 0xab, 0xa4, 0x9e, 0x48, 0x60, 0x19, 0x35, 0x08, 0xde, 0xdd, 0x66, 0x90, 0x51, 0xcc, 0xa3,
+ 0xaf, 0x70, 0x9b, 0x75, 0x95, 0x49, 0x6c, 0x64, 0x72, 0x7e, 0x44, 0xa0, 0x73, 0x25, 0x68, 0x55,
+ 0x1f, 0x40, 0x7a, 0x74, 0x0e, 0x8d, 0xdc, 0x1c, 0x71, 0xc8, 0xcf, 0xd7, 0xe8, 0xce, 0xeb, 0x32,
+ 0x3a, 0xee, 0x07, 0x61, 0x4d, 0xfe, 0x5c, 0x7c, 0x56, 0x2f, 0x2d, 0x5f, 0x6f, 0x9f, 0x81, 0x22,
+ 0x58, 0x4b, 0xad, 0xda, 0xb9, 0x10, 0x18, 0x23, 0xe1, 0xf3, 0x6d, 0xe7, 0xe9, 0x28, 0xd6, 0xd8,
+ 0xf4, 0x4c, 0x39, 0x21, 0xb2, 0x84, 0xc1, 0x24, 0x26, 0xf1, 0x93, 0x37, 0xc6, 0x4a, 0xcd, 0x20,
+ 0xc9, 0xd9, 0xc7, 0xb1, 0xff, 0x99, 0xd4, 0x5d, 0xb5, 0xa1, 0x87, 0x0d, 0x69, 0x92, 0x13, 0x80,
+ 0xd2, 0xd3, 0xfd, 0x1d, 0xf5, 0x3b, 0xa5, 0x7f, 0xef, 0x9a, 0xb6, 0x42, 0xfb, 0x3c, 0xf7, 0x41,
+};
+
+
+/* underlined values are wrong (not enough evidence, FF fill in kof99 and garou) */
+/* they correspond to tiles 7d000-7efff */
+static const uint8_t kof99_address_8_15_xor1[256] =
+{
+ 0x00, 0xb1, 0x1e, 0xc5, 0x3d, 0x40, 0x45, 0x5e, 0xf2, 0xf8, 0x04, 0x63, 0x36, 0x87, 0x88, 0xbf,
+ 0xab, 0xcc, 0x78, 0x08, 0xdd, 0x20, 0xd4, 0x35, 0x09, 0x8e, 0x44, 0xae, 0x33, 0xa9, 0x9e, 0xcd,
+ 0xb3, 0xe5, 0xad, 0x41, 0xda, 0xbe, 0xf4, 0x16, 0x57, 0x2e, 0x53, 0x67, 0xaf, 0xdb, 0x8a, 0xd8,
+ 0x34, 0x17, 0x3c, 0x01, 0x55, 0x73, 0xcf, 0xe3, 0xe8, 0xc7, 0x0d, 0xe9, 0xa3, 0x13, 0x0c, 0xf6,
+ 0x90, 0x4e, 0xfb, 0x97, 0x6d, 0x5f, 0xa8, 0x71, 0x11, 0xfc, 0xd1, 0x95, 0x81, 0xba, 0x8c, 0x1b,
+ 0x39, 0xfe, 0xa2, 0x15, 0xa6, 0x52, 0x4d, 0x5b, 0x59, 0xa5, 0xe0, 0x96, 0xd9, 0x8f, 0x7b, 0xed,
+ 0x29, 0xd3, 0x1f, 0x0e, 0xec, 0x23, 0x0f, 0xb8, 0x6c, 0x6f, 0x7d, 0x18, 0x46, 0xd6, 0xe4, 0xb5,
+ 0x9a, 0x79, 0x02, 0xf5, 0x03, 0xc0, 0x60, 0x66, 0x5c, 0x2f, 0x76, 0x85, 0x9d, 0x54, 0x1a, 0x6a,
+ 0x28, 0xce, 0x7f, 0x7c, 0x91, 0x99, 0x4c, 0x83, 0x3e, 0xb4, 0x1d, 0x05, 0xc1, 0xc3, 0xd7, 0x47,
+ 0xde, 0xbc, 0x62, 0x6e, 0x86, 0x14, 0x80, 0x77, 0xeb, 0xf3, 0x07, 0x31, 0x56, 0xd2, 0xc2, 0xc6,
+ 0x6b, 0xdc, 0xfd, 0x22, 0x92, 0xf0, 0x06, 0x51, 0x2d, 0x38, 0xe6, 0xa0, 0x25, 0xdf, 0xd5, 0x2c,
+ 0x1c, 0x94, 0x12, 0x9c, 0xb0, 0x9b, 0xc4, 0x0b, 0xc8, 0xd0, 0xf7, 0x30, 0xcb, 0x27, 0xfa, 0x7a,
+ 0x10, 0x61, 0xaa, 0xa4, 0x70, 0xb7, 0x2a, 0x5a, 0xc9, 0xf1, 0x0a, 0x49, 0x65, 0xee, 0x69, 0x4b,
+ 0x3a, 0x8d, 0x32, 0x5d, 0x68, 0xb9, 0x9f, 0x75, 0x19, 0x3f, 0xac, 0x37, 0x4f, 0xe7, 0x93, 0x89,
+ 0x7e, 0x4a, 0x3b, 0xea, 0x74, 0x72, 0x43, 0xbd, 0x24, 0xef, 0xb6, 0xff, 0x64, 0x58, 0x84, 0x8b,
+ 0xa7, 0xbb, 0xb2, 0xe1, 0x26, 0x2b, 0x50, 0xca, 0x21, 0xf9, 0x98, 0xa1, 0xe2, 0x42, 0x82, 0x48,
+// ^^^^ ^^^^ ^^^^ ^^^^
+};
+
+
+static const uint8_t kof99_address_8_15_xor2[256] =
+{
+ 0x9b, 0x9d, 0xc1, 0x3d, 0xa9, 0xb8, 0xf4, 0x6f, 0xf6, 0x25, 0xc7, 0x47, 0xd5, 0x97, 0xdf, 0x6b,
+ 0xeb, 0x90, 0xa4, 0xb2, 0x5d, 0xf5, 0x66, 0xb0, 0xb9, 0x8b, 0x93, 0x64, 0xec, 0x7b, 0x65, 0x8c,
+ 0xf1, 0x43, 0x42, 0x6e, 0x45, 0x9f, 0xb3, 0x35, 0x06, 0x71, 0x96, 0xdb, 0xa0, 0xfb, 0x0b, 0x3a,
+ 0x1f, 0xf8, 0x8e, 0x69, 0xcd, 0x26, 0xab, 0x86, 0xa2, 0x0c, 0xbd, 0x63, 0xa5, 0x7a, 0xe7, 0x6a,
+ 0x5f, 0x18, 0x9e, 0xbf, 0xad, 0x55, 0xb1, 0x1c, 0x5c, 0x03, 0x30, 0xc6, 0x37, 0x20, 0xe3, 0xc9,
+ 0x52, 0xe8, 0xee, 0x4f, 0x01, 0x70, 0xc4, 0x77, 0x29, 0x2a, 0xba, 0x53, 0x12, 0x04, 0x7d, 0xaf,
+ 0x33, 0x8f, 0xa8, 0x4d, 0xaa, 0x5b, 0xb4, 0x0f, 0x92, 0xbb, 0xed, 0xe1, 0x2f, 0x50, 0x6c, 0xd2,
+ 0x2c, 0x95, 0xd9, 0xf9, 0x98, 0xc3, 0x76, 0x4c, 0xf2, 0xe4, 0xe5, 0x2b, 0xef, 0x9c, 0x49, 0xb6,
+ 0x31, 0x3b, 0xbc, 0xa1, 0xca, 0xde, 0x62, 0x74, 0xea, 0x81, 0x00, 0xdd, 0xa6, 0x46, 0x88, 0x3f,
+ 0x39, 0xd6, 0x23, 0x54, 0x24, 0x4a, 0xd8, 0xdc, 0xd7, 0xd1, 0xcc, 0xbe, 0x57, 0x7c, 0xda, 0x44,
+ 0x61, 0xce, 0xd3, 0xd4, 0xe9, 0x28, 0x80, 0xe0, 0x56, 0x8a, 0x09, 0x05, 0x9a, 0x89, 0x1b, 0xf7,
+ 0xf3, 0x99, 0x6d, 0x5e, 0x48, 0x91, 0xc0, 0xd0, 0xc5, 0x79, 0x78, 0x41, 0x59, 0x21, 0x2e, 0xff,
+ 0xc2, 0x4b, 0x38, 0x83, 0x32, 0xe6, 0xe2, 0x7f, 0x1e, 0x17, 0x58, 0x1d, 0x1a, 0xfa, 0x85, 0x82,
+ 0x94, 0xc8, 0x72, 0x7e, 0xb7, 0xac, 0x0e, 0xfc, 0xfd, 0x16, 0x27, 0x75, 0x8d, 0xcb, 0x08, 0xfe,
+ 0x0a, 0x02, 0x0d, 0x36, 0x11, 0x22, 0x84, 0x40, 0x34, 0x3e, 0x2d, 0x68, 0x5a, 0xa7, 0x67, 0xae,
+ 0x87, 0x07, 0x10, 0x60, 0x14, 0x73, 0x3c, 0x51, 0x19, 0xa3, 0xb5, 0xcf, 0x13, 0xf0, 0x15, 0x4e,
+};
+
+
+static const uint8_t kof99_address_16_23_xor1[256] =
+{
+ 0x00, 0x5f, 0x03, 0x52, 0xce, 0xe3, 0x7d, 0x8f, 0x6b, 0xf8, 0x20, 0xde, 0x7b, 0x7e, 0x39, 0xbe,
+ 0xf5, 0x94, 0x18, 0x78, 0x80, 0xc9, 0x7f, 0x7a, 0x3e, 0x63, 0xf2, 0xe0, 0x4e, 0xf7, 0x87, 0x27,
+ 0x69, 0x6c, 0xa4, 0x1d, 0x85, 0x5b, 0xe6, 0x44, 0x25, 0x0c, 0x98, 0xc7, 0x01, 0x02, 0xa3, 0x26,
+ 0x09, 0x38, 0xdb, 0xc3, 0x1e, 0xcf, 0x23, 0x45, 0x68, 0x76, 0xd6, 0x22, 0x5d, 0x5a, 0xae, 0x16,
+ 0x9f, 0xa2, 0xb5, 0xcd, 0x81, 0xea, 0x5e, 0xb8, 0xb9, 0x9d, 0x9c, 0x1a, 0x0f, 0xff, 0xe1, 0xe7,
+ 0x74, 0xaa, 0xd4, 0xaf, 0xfc, 0xc6, 0x33, 0x29, 0x5c, 0xab, 0x95, 0xf0, 0x19, 0x47, 0x59, 0x67,
+ 0xf3, 0x96, 0x60, 0x1f, 0x62, 0x92, 0xbd, 0x89, 0xee, 0x28, 0x13, 0x06, 0xfe, 0xfa, 0x32, 0x6d,
+ 0x57, 0x3c, 0x54, 0x50, 0x2c, 0x58, 0x49, 0xfb, 0x17, 0xcc, 0xef, 0xb2, 0xb4, 0xf9, 0x07, 0x70,
+ 0xc5, 0xa9, 0xdf, 0xd5, 0x3b, 0x86, 0x2b, 0x0d, 0x6e, 0x4d, 0x0a, 0x90, 0x43, 0x31, 0xc1, 0xf6,
+ 0x88, 0x0b, 0xda, 0x53, 0x14, 0xdc, 0x75, 0x8e, 0xb0, 0xeb, 0x99, 0x46, 0xa1, 0x15, 0x71, 0xc8,
+ 0xe9, 0x3f, 0x4a, 0xd9, 0x73, 0xe5, 0x7c, 0x30, 0x77, 0xd3, 0xb3, 0x4b, 0x37, 0x72, 0xc2, 0x04,
+ 0x97, 0x08, 0x36, 0xb1, 0x3a, 0x61, 0xec, 0xe2, 0x1c, 0x9a, 0x8b, 0xd1, 0x1b, 0x2e, 0x9e, 0x8a,
+ 0xd8, 0x41, 0xe4, 0xc4, 0x40, 0x2f, 0xad, 0xc0, 0xb6, 0x84, 0x51, 0x66, 0xbb, 0x12, 0xe8, 0xdd,
+ 0xcb, 0xbc, 0x6f, 0xd0, 0x11, 0x83, 0x56, 0x4c, 0xca, 0xbf, 0x05, 0x10, 0xd7, 0xba, 0xfd, 0xed,
+ 0x8c, 0x0e, 0x4f, 0x3d, 0x35, 0x91, 0xb7, 0xac, 0x34, 0x64, 0x2a, 0xf1, 0x79, 0x6a, 0x9b, 0x2d,
+ 0x65, 0xf4, 0x42, 0xa0, 0x8d, 0xa7, 0x48, 0x55, 0x21, 0x93, 0x24, 0xd2, 0xa6, 0xa5, 0xa8, 0x82,
+};
+
+
+static const uint8_t kof99_address_16_23_xor2[256] =
+{
+ 0x29, 0x97, 0x1a, 0x2c, 0x0b, 0x94, 0x3e, 0x75, 0x01, 0x0d, 0x1b, 0xe1, 0x4d, 0x38, 0x39, 0x8f,
+ 0xe7, 0xd0, 0x60, 0x90, 0xb2, 0x0f, 0xbb, 0x70, 0x1f, 0xe6, 0x5b, 0x87, 0xb4, 0x43, 0xfd, 0xf5,
+ 0xf6, 0xf9, 0xad, 0xc0, 0x98, 0x17, 0x9f, 0x91, 0x15, 0x51, 0x55, 0x64, 0x6c, 0x18, 0x61, 0x0e,
+ 0xd9, 0x93, 0xab, 0xd6, 0x24, 0x2f, 0x6a, 0x3a, 0x22, 0xb1, 0x4f, 0xaa, 0x23, 0x48, 0xed, 0xb9,
+ 0x88, 0x8b, 0xa3, 0x6b, 0x26, 0x4c, 0xe8, 0x2d, 0x1c, 0x99, 0xbd, 0x5c, 0x58, 0x08, 0x50, 0xf2,
+ 0x2a, 0x62, 0xc1, 0x72, 0x66, 0x04, 0x10, 0x37, 0x6e, 0xfc, 0x44, 0xa9, 0xdf, 0xd4, 0x20, 0xdd,
+ 0xee, 0x41, 0xdb, 0x73, 0xde, 0x54, 0xec, 0xc9, 0xf3, 0x4b, 0x2e, 0xae, 0x5a, 0x4a, 0x5e, 0x47,
+ 0x07, 0x2b, 0x76, 0xa4, 0xe3, 0x28, 0xfe, 0xb0, 0xf0, 0x02, 0x06, 0xd1, 0xaf, 0x42, 0xc2, 0xa5,
+ 0xe0, 0x67, 0xbf, 0x16, 0x8e, 0x35, 0xce, 0x8a, 0xe5, 0x3d, 0x7b, 0x96, 0xd7, 0x79, 0x52, 0x1e,
+ 0xa1, 0xfb, 0x9b, 0xbe, 0x21, 0x9c, 0xe9, 0x56, 0x14, 0x7f, 0xa0, 0xe4, 0xc3, 0xc4, 0x46, 0xea,
+ 0xf7, 0xd2, 0x1d, 0x31, 0x0a, 0x5f, 0xeb, 0xa2, 0x68, 0x8d, 0xb5, 0xc5, 0x74, 0x0c, 0xdc, 0x82,
+ 0x80, 0x09, 0x19, 0x95, 0x71, 0x9a, 0x11, 0x57, 0x77, 0x4e, 0xc6, 0xff, 0x12, 0x03, 0xa7, 0xc7,
+ 0xf4, 0xc8, 0xb6, 0x7a, 0x59, 0x36, 0x3c, 0x53, 0xe2, 0x69, 0x8c, 0x25, 0x05, 0x45, 0x63, 0xf8,
+ 0x34, 0x89, 0x33, 0x3f, 0x85, 0x27, 0xbc, 0x65, 0xfa, 0xa8, 0x6d, 0x84, 0x5d, 0xba, 0x40, 0x32,
+ 0x30, 0xef, 0x83, 0x13, 0xa6, 0x78, 0xcc, 0x81, 0x9e, 0xda, 0xca, 0xd3, 0x7e, 0x9d, 0x6f, 0xcd,
+ 0xb7, 0xb3, 0xd8, 0xcf, 0x3b, 0x00, 0x92, 0xb8, 0x86, 0xac, 0x49, 0x7c, 0xf1, 0xd5, 0xcb, 0x7d,
+};
+
+
+static const uint8_t kof99_address_0_7_xor[256] =
+{
+ 0x74, 0xad, 0x5d, 0x1d, 0x9e, 0xc3, 0xfa, 0x4e, 0xf7, 0xdb, 0xca, 0xa2, 0x64, 0x36, 0x56, 0x0c,
+ 0x4f, 0xcf, 0x43, 0x66, 0x1e, 0x91, 0xe3, 0xa5, 0x58, 0xc2, 0xc1, 0xd4, 0xb9, 0xdd, 0x76, 0x16,
+ 0xce, 0x61, 0x75, 0x01, 0x2b, 0x22, 0x38, 0x55, 0x50, 0xef, 0x6c, 0x99, 0x05, 0xe9, 0xe8, 0xe0,
+ 0x2d, 0xa4, 0x4b, 0x4a, 0x42, 0xae, 0xba, 0x8c, 0x6f, 0x93, 0x14, 0xbd, 0x71, 0x21, 0xb0, 0x02,
+ 0x15, 0xc4, 0xe6, 0x60, 0xd7, 0x44, 0xfd, 0x85, 0x7e, 0x78, 0x8f, 0x00, 0x81, 0xf1, 0xa7, 0x3b,
+ 0xa0, 0x10, 0xf4, 0x9f, 0x39, 0x88, 0x35, 0x62, 0xcb, 0x19, 0x31, 0x11, 0x51, 0xfb, 0x2a, 0x20,
+ 0x45, 0xd3, 0x7d, 0x92, 0x1b, 0xf2, 0x09, 0x0d, 0x97, 0xa9, 0xb5, 0x3c, 0xee, 0x5c, 0xaf, 0x7b,
+ 0xd2, 0x3a, 0x49, 0x8e, 0xb6, 0xcd, 0xd9, 0xde, 0x8a, 0x29, 0x6e, 0xd8, 0x0b, 0xe1, 0x69, 0x87,
+ 0x1a, 0x96, 0x18, 0xcc, 0xdf, 0xe7, 0xc5, 0xc7, 0xf8, 0x52, 0xc9, 0xf0, 0xb7, 0xe5, 0x33, 0xda,
+ 0x67, 0x9d, 0xa3, 0x03, 0x0e, 0x72, 0x26, 0x79, 0xe2, 0xb8, 0xfc, 0xaa, 0xfe, 0xb4, 0x86, 0xc8,
+ 0xd1, 0xbc, 0x12, 0x08, 0x77, 0xeb, 0x40, 0x8d, 0x04, 0x25, 0x4d, 0x5a, 0x6a, 0x7a, 0x2e, 0x41,
+ 0x65, 0x1c, 0x13, 0x94, 0xb2, 0x63, 0x28, 0x59, 0x5e, 0x9a, 0x30, 0x07, 0xc6, 0xbf, 0x17, 0xf5,
+ 0x0f, 0x89, 0xf3, 0x1f, 0xea, 0x6d, 0xb3, 0xc0, 0x70, 0x47, 0xf9, 0x53, 0xf6, 0xd6, 0x54, 0xed,
+ 0x6b, 0x4c, 0xe4, 0x8b, 0x83, 0x24, 0x90, 0xb1, 0x7c, 0xbb, 0x73, 0xab, 0xd5, 0x2f, 0x5f, 0xec,
+ 0x9c, 0x2c, 0xa8, 0x34, 0x46, 0x37, 0x27, 0xa1, 0x0a, 0x06, 0x80, 0x68, 0x82, 0x32, 0x84, 0xff,
+ 0x48, 0xac, 0x7f, 0x3f, 0x95, 0xdc, 0x98, 0x9b, 0xbe, 0x23, 0x57, 0x3e, 0x5b, 0xd0, 0x3d, 0xa6,
+};
+
+
+static const uint8_t kof2000_type0_t03[256] =
+{
+ 0x10, 0x61, 0xf1, 0x78, 0x85, 0x52, 0x68, 0xe3, 0x12, 0x0d, 0xfa, 0xf0, 0xc9, 0x36, 0x5e, 0x3d,
+ 0xf9, 0xa6, 0x01, 0x2e, 0xc7, 0x84, 0xea, 0x2b, 0x6d, 0x14, 0x38, 0x4f, 0x55, 0x1c, 0x9d, 0xa7,
+ 0x7a, 0xc6, 0xf8, 0x9a, 0xe6, 0x42, 0xb5, 0xed, 0x7d, 0x3a, 0xb1, 0x05, 0x43, 0x4a, 0x22, 0xfd,
+ 0xac, 0xa4, 0x31, 0xc3, 0x32, 0x76, 0x95, 0x9e, 0x7e, 0x88, 0x8e, 0xa2, 0x97, 0x18, 0xbe, 0x2a,
+ 0xf5, 0xd6, 0xca, 0xcc, 0x72, 0x3b, 0x87, 0x6c, 0xde, 0x75, 0xd7, 0x21, 0xcb, 0x0b, 0xdd, 0xe7,
+ 0xe1, 0x65, 0xaa, 0xb9, 0x44, 0xfb, 0x66, 0x15, 0x1a, 0x3c, 0x98, 0xcf, 0x8a, 0xdf, 0x37, 0xa5,
+ 0x2f, 0x67, 0xd2, 0x83, 0xb6, 0x6b, 0xfc, 0xe0, 0xb4, 0x7c, 0x08, 0xdc, 0x93, 0x30, 0xab, 0xe4,
+ 0x19, 0xc2, 0x8b, 0xeb, 0xa0, 0x0a, 0xc8, 0x03, 0xc0, 0x4b, 0x64, 0x71, 0x86, 0x9c, 0x9b, 0x16,
+ 0x79, 0xff, 0x70, 0x09, 0x8c, 0xd0, 0xf6, 0x53, 0x07, 0x73, 0xd4, 0x89, 0xb3, 0x00, 0xe9, 0xfe,
+ 0xec, 0x8f, 0xbc, 0xb2, 0x1e, 0x5d, 0x11, 0x35, 0xa9, 0x06, 0x59, 0x9f, 0xc1, 0xd3, 0x7b, 0xf2,
+ 0xc5, 0x77, 0x4e, 0x39, 0x20, 0xd5, 0x6a, 0x82, 0xda, 0x45, 0xf3, 0x33, 0x81, 0x23, 0xba, 0xe2,
+ 0x1d, 0x5f, 0x5c, 0x51, 0x49, 0xae, 0x8d, 0xc4, 0xa8, 0xf7, 0x1f, 0x0f, 0x34, 0x28, 0xa1, 0xd9,
+ 0x27, 0xd8, 0x4c, 0x2c, 0xbf, 0x91, 0x3e, 0x69, 0x57, 0x41, 0x25, 0x0c, 0x5a, 0x90, 0x92, 0xb0,
+ 0x63, 0x6f, 0x40, 0xaf, 0x74, 0xb8, 0x2d, 0x80, 0xbb, 0x46, 0x94, 0xe5, 0x29, 0xee, 0xb7, 0x1b,
+ 0x96, 0xad, 0x13, 0x0e, 0x58, 0x99, 0x60, 0x4d, 0x17, 0x26, 0xce, 0xe8, 0xdb, 0xef, 0x24, 0xa3,
+ 0x6e, 0x7f, 0x54, 0x3f, 0x02, 0xd1, 0x5b, 0x50, 0x56, 0x48, 0xf4, 0xbd, 0x62, 0x47, 0x04, 0xcd,
+};
+
+
+static const uint8_t kof2000_type0_t12[256] =
+{
+ 0xf4, 0x28, 0xb4, 0x8f, 0xfa, 0xeb, 0x8e, 0x54, 0x2b, 0x49, 0xd1, 0x76, 0x71, 0x47, 0x8b, 0x57,
+ 0x92, 0x85, 0x7c, 0xb8, 0x5c, 0x22, 0xf9, 0x26, 0xbc, 0x5b, 0x6d, 0x67, 0xae, 0x5f, 0x6f, 0xf5,
+ 0x9f, 0x48, 0x66, 0x40, 0x0d, 0x11, 0x4e, 0xb2, 0x6b, 0x35, 0x15, 0x0f, 0x18, 0x25, 0x1d, 0xba,
+ 0xd3, 0x69, 0x79, 0xec, 0xa8, 0x8c, 0xc9, 0x7f, 0x4b, 0xdb, 0x51, 0xaf, 0xca, 0xe2, 0xb3, 0x81,
+ 0x12, 0x5e, 0x7e, 0x38, 0xc8, 0x95, 0x01, 0xff, 0xfd, 0xfb, 0xf2, 0x74, 0x62, 0x14, 0xa5, 0x98,
+ 0xa6, 0xda, 0x80, 0x53, 0xe8, 0x56, 0xac, 0x1b, 0x52, 0xd0, 0xf1, 0x45, 0x42, 0xb6, 0x1a, 0x4a,
+ 0x3a, 0x99, 0xfc, 0xd2, 0x9c, 0xcf, 0x31, 0x2d, 0xdd, 0x86, 0x2f, 0x29, 0xe1, 0x03, 0x19, 0xa2,
+ 0x41, 0x33, 0x83, 0x90, 0xc1, 0xbf, 0x0b, 0x08, 0x3d, 0xd8, 0x8d, 0x6c, 0x39, 0xa0, 0xe3, 0x55,
+ 0x02, 0x50, 0x46, 0xe6, 0xc3, 0x82, 0x36, 0x13, 0x75, 0xab, 0x27, 0xd7, 0x1f, 0x0a, 0xd4, 0x89,
+ 0x59, 0x4f, 0xc0, 0x5d, 0xc6, 0xf7, 0x88, 0xbd, 0x3c, 0x00, 0xef, 0xcd, 0x05, 0x1c, 0xaa, 0x9b,
+ 0xed, 0x7a, 0x61, 0x17, 0x93, 0xfe, 0x23, 0xb9, 0xf3, 0x68, 0x78, 0xf6, 0x5a, 0x7b, 0xe0, 0xe4,
+ 0xa3, 0xee, 0x16, 0x72, 0xc7, 0x3b, 0x8a, 0x37, 0x2a, 0x70, 0xa9, 0x2c, 0x21, 0xf8, 0x24, 0x09,
+ 0xce, 0x20, 0x9e, 0x06, 0x87, 0xc5, 0x04, 0x64, 0x43, 0x7d, 0x4d, 0x10, 0xd6, 0xa4, 0x94, 0x4c,
+ 0x60, 0xde, 0xdf, 0x58, 0xb1, 0x44, 0x3f, 0xb0, 0xd9, 0xe5, 0xcb, 0xbb, 0xbe, 0xea, 0x07, 0x34,
+ 0x73, 0x6a, 0x77, 0xf0, 0x9d, 0x0c, 0x2e, 0x0e, 0x91, 0x9a, 0xcc, 0xc2, 0xb7, 0x63, 0x97, 0xd5,
+ 0xdc, 0xc4, 0x32, 0xe7, 0x84, 0x3e, 0x30, 0xa1, 0x1e, 0xb5, 0x6e, 0x65, 0xe9, 0xad, 0xa7, 0x96,
+};
+
+
+static const uint8_t kof2000_type1_t03[256] =
+{
+ 0x9a, 0x2f, 0xcc, 0x4e, 0x40, 0x69, 0xac, 0xca, 0xa5, 0x7b, 0x0a, 0x61, 0x91, 0x0d, 0x55, 0x74,
+ 0xcd, 0x8b, 0x0b, 0x80, 0x09, 0x5e, 0x38, 0xc7, 0xda, 0xbf, 0xf5, 0x37, 0x23, 0x31, 0x33, 0xe9,
+ 0xae, 0x87, 0xe5, 0xfa, 0x6e, 0x5c, 0xad, 0xf4, 0x76, 0x62, 0x9f, 0x2e, 0x01, 0xe2, 0xf6, 0x47,
+ 0x8c, 0x7c, 0xaa, 0x98, 0xb5, 0x92, 0x51, 0xec, 0x5f, 0x07, 0x5d, 0x6f, 0x16, 0xa1, 0x1d, 0xa9,
+ 0x48, 0x45, 0xf0, 0x6a, 0x9c, 0x1e, 0x11, 0xa0, 0x06, 0x46, 0xd5, 0xf1, 0x73, 0xed, 0x94, 0xf7,
+ 0xc3, 0x57, 0x1b, 0xe0, 0x97, 0xb1, 0xa4, 0xa7, 0x24, 0xe7, 0x2b, 0x05, 0x5b, 0x34, 0x0c, 0xb8,
+ 0x0f, 0x9b, 0xc8, 0x4d, 0x5a, 0xa6, 0x86, 0x3e, 0x14, 0x29, 0x84, 0x58, 0x90, 0xdb, 0x2d, 0x54,
+ 0x9d, 0x82, 0xd4, 0x7d, 0xc6, 0x67, 0x41, 0x89, 0xc1, 0x13, 0xb0, 0x9e, 0x81, 0x6d, 0xa8, 0x59,
+ 0xbd, 0x39, 0x8e, 0xe6, 0x25, 0x8f, 0xd9, 0xa2, 0xe4, 0x53, 0xc5, 0x72, 0x7e, 0x36, 0x4a, 0x4f,
+ 0x52, 0xc2, 0x22, 0x2a, 0xce, 0x3c, 0x21, 0x2c, 0x00, 0xd7, 0x75, 0x8a, 0x27, 0xee, 0x43, 0xfe,
+ 0xcb, 0x6b, 0xb9, 0xa3, 0x78, 0xb7, 0x85, 0x02, 0x20, 0xd0, 0x83, 0xc4, 0x12, 0xf9, 0xfd, 0xd8,
+ 0x79, 0x64, 0x3a, 0x49, 0x03, 0xb4, 0xc0, 0xf2, 0xdf, 0x15, 0x93, 0x08, 0x35, 0xff, 0x70, 0xdd,
+ 0x28, 0x6c, 0x0e, 0x04, 0xde, 0x7a, 0x65, 0xd2, 0xab, 0x42, 0x95, 0xe1, 0x3f, 0x3b, 0x7f, 0x66,
+ 0xd1, 0x8d, 0xe3, 0xbb, 0x1c, 0xfc, 0x77, 0x1a, 0x88, 0x18, 0x19, 0x68, 0x1f, 0x56, 0xd6, 0xe8,
+ 0xb6, 0xbc, 0xd3, 0xea, 0x3d, 0x26, 0xb3, 0xc9, 0x44, 0xdc, 0xf3, 0x32, 0x30, 0xef, 0x96, 0x4c,
+ 0xaf, 0x17, 0xf8, 0xfb, 0x60, 0x50, 0xeb, 0x4b, 0x99, 0x63, 0xba, 0xb2, 0x71, 0xcf, 0x10, 0xbe,
+};
+
+
+static const uint8_t kof2000_type1_t12[256] =
+{
+ 0xda, 0xa7, 0xd6, 0x6e, 0x2f, 0x5e, 0xf0, 0x3f, 0xa4, 0xce, 0xd3, 0xfd, 0x46, 0x2a, 0xac, 0xc9,
+ 0xbe, 0xeb, 0x9f, 0xd5, 0x3c, 0x61, 0x96, 0x11, 0xd0, 0x38, 0xca, 0x06, 0xed, 0x1b, 0x65, 0xe7,
+ 0x23, 0xdd, 0xd9, 0x05, 0xbf, 0x5b, 0x5d, 0xa5, 0x95, 0x00, 0xec, 0xf1, 0x01, 0xa9, 0xa6, 0xfc,
+ 0xbb, 0x54, 0xe3, 0x2e, 0x92, 0x58, 0x0a, 0x7b, 0xb6, 0xcc, 0xb1, 0x5f, 0x14, 0x35, 0x72, 0xff,
+ 0xe6, 0x52, 0xd7, 0x8c, 0xf3, 0x43, 0xaf, 0x9c, 0xc0, 0x4f, 0x0c, 0x42, 0x8e, 0xef, 0x80, 0xcd,
+ 0x1d, 0x7e, 0x88, 0x3b, 0x98, 0xa1, 0xad, 0xe4, 0x9d, 0x8d, 0x2b, 0x56, 0xb5, 0x50, 0xdf, 0x66,
+ 0x6d, 0xd4, 0x60, 0x09, 0xe1, 0xee, 0x4a, 0x47, 0xf9, 0xfe, 0x73, 0x07, 0x89, 0xa8, 0x39, 0xea,
+ 0x82, 0x9e, 0xcf, 0x26, 0xb2, 0x4e, 0xc3, 0x59, 0xf2, 0x3d, 0x9a, 0xb0, 0x69, 0xf7, 0xbc, 0x34,
+ 0xe5, 0x36, 0x22, 0xfb, 0x57, 0x71, 0x99, 0x6c, 0x83, 0x30, 0x55, 0xc2, 0xbd, 0xf4, 0x77, 0xe9,
+ 0x76, 0x97, 0xa0, 0xe0, 0xb9, 0x86, 0x6b, 0xa3, 0x84, 0x67, 0x1a, 0x70, 0x02, 0x5a, 0x41, 0x5c,
+ 0x25, 0x81, 0xaa, 0x28, 0x78, 0x4b, 0xc6, 0x64, 0x53, 0x16, 0x4d, 0x8b, 0x20, 0x93, 0xae, 0x0f,
+ 0x94, 0x2c, 0x3a, 0xc7, 0x62, 0xe8, 0xc4, 0xdb, 0x04, 0xc5, 0xfa, 0x29, 0x48, 0xd1, 0x08, 0x24,
+ 0x0d, 0xe2, 0xd8, 0x10, 0xb4, 0x91, 0x8a, 0x13, 0x0e, 0xdc, 0xd2, 0x79, 0xb8, 0xf8, 0xba, 0x2d,
+ 0xcb, 0xf5, 0x7d, 0x37, 0x51, 0x40, 0x31, 0xa2, 0x0b, 0x18, 0x63, 0x7f, 0xb3, 0xab, 0x9b, 0x87,
+ 0xf6, 0x90, 0xde, 0xc8, 0x27, 0x45, 0x7c, 0x1c, 0x85, 0x68, 0x33, 0x19, 0x03, 0x75, 0x15, 0x7a,
+ 0x1f, 0x49, 0x8f, 0x4c, 0xc1, 0x44, 0x17, 0x12, 0x6f, 0x32, 0xb7, 0x3e, 0x74, 0x1e, 0x21, 0x6a,
+};
+
+
+static const uint8_t kof2000_address_8_15_xor1[256] =
+{
+ 0xfc, 0x9b, 0x1c, 0x35, 0x72, 0x53, 0xd6, 0x7d, 0x84, 0xa4, 0xc5, 0x93, 0x7b, 0xe7, 0x47, 0xd5,
+ 0x24, 0xa2, 0xfa, 0x19, 0x0c, 0xb1, 0x8c, 0xb9, 0x9d, 0xd8, 0x59, 0x4f, 0x3c, 0xb2, 0x78, 0x4a,
+ 0x2a, 0x96, 0x9a, 0xf1, 0x1f, 0x22, 0xa8, 0x5b, 0x67, 0xa3, 0x0f, 0x00, 0xfb, 0xdf, 0xeb, 0x0a,
+ 0x57, 0xb8, 0x25, 0xd7, 0xf0, 0x6b, 0x0b, 0x31, 0x95, 0x23, 0x2d, 0x5c, 0x27, 0xc7, 0xf4, 0x55,
+ 0x1a, 0xf7, 0x74, 0xbe, 0xd3, 0xac, 0x3d, 0xc1, 0x7f, 0xbd, 0x28, 0x01, 0x10, 0xe5, 0x09, 0x37,
+ 0x1e, 0x58, 0xaf, 0x17, 0xf2, 0x16, 0x30, 0x92, 0x36, 0x68, 0xe6, 0xd4, 0xea, 0xb7, 0x75, 0x54,
+ 0x77, 0x41, 0xb4, 0x8d, 0xe0, 0xf3, 0x51, 0x03, 0xa9, 0xe8, 0x66, 0xab, 0x29, 0xa5, 0xed, 0xcb,
+ 0xd1, 0xaa, 0xf5, 0xdb, 0x4c, 0x42, 0x97, 0x8a, 0xae, 0xc9, 0x6e, 0x04, 0x33, 0x85, 0xdd, 0x2b,
+ 0x6f, 0xef, 0x12, 0x21, 0x7a, 0xa1, 0x5a, 0x91, 0xc8, 0xcc, 0xc0, 0xa7, 0x60, 0x3e, 0x56, 0x2f,
+ 0xe4, 0x71, 0x99, 0xc2, 0xa0, 0x45, 0x80, 0x65, 0xbb, 0x87, 0x69, 0x81, 0x73, 0xca, 0xf6, 0x46,
+ 0x43, 0xda, 0x26, 0x7e, 0x8f, 0xe1, 0x8b, 0xfd, 0x50, 0x79, 0xba, 0xc6, 0x63, 0x4b, 0xb3, 0x8e,
+ 0x34, 0xe2, 0x48, 0x14, 0xcd, 0xe3, 0xc4, 0x05, 0x13, 0x40, 0x06, 0x6c, 0x88, 0xb0, 0xe9, 0x1b,
+ 0x4d, 0xf8, 0x76, 0x02, 0x44, 0x94, 0xcf, 0x32, 0xfe, 0xce, 0x3b, 0x5d, 0x2c, 0x89, 0x5f, 0xdc,
+ 0xd2, 0x9c, 0x6a, 0xec, 0x18, 0x6d, 0x0e, 0x86, 0xff, 0x5e, 0x9e, 0xee, 0x11, 0xd0, 0x49, 0x52,
+ 0x4e, 0x61, 0x90, 0x0d, 0xc3, 0x39, 0x15, 0x83, 0xb5, 0x62, 0x3f, 0x70, 0x7c, 0xad, 0x20, 0xbf,
+ 0x2e, 0x08, 0x1d, 0xf9, 0xb6, 0xa6, 0x64, 0x07, 0x82, 0x38, 0x98, 0x3a, 0x9f, 0xde, 0xbc, 0xd9,
+};
+
+
+static const uint8_t kof2000_address_8_15_xor2[256] =
+{
+ 0x00, 0xbe, 0x06, 0x5a, 0xfa, 0x42, 0x15, 0xf2, 0x3f, 0x0a, 0x84, 0x93, 0x4e, 0x78, 0x3b, 0x89,
+ 0x32, 0x98, 0xa2, 0x87, 0x73, 0xdd, 0x26, 0xe5, 0x05, 0x71, 0x08, 0x6e, 0x9b, 0xe0, 0xdf, 0x9e,
+ 0xfc, 0x83, 0x81, 0xef, 0xb2, 0xc0, 0xc3, 0xbf, 0xa7, 0x6d, 0x1b, 0x95, 0xed, 0xb9, 0x3e, 0x13,
+ 0xb0, 0x47, 0x9c, 0x7a, 0x24, 0x41, 0x68, 0xd0, 0x36, 0x0b, 0xb5, 0xc2, 0x67, 0xf7, 0x54, 0x92,
+ 0x1e, 0x44, 0x86, 0x2b, 0x94, 0xcc, 0xba, 0x23, 0x0d, 0xca, 0x6b, 0x4c, 0x2a, 0x9a, 0x2d, 0x8b,
+ 0xe3, 0x52, 0x29, 0xf0, 0x21, 0xbd, 0xbb, 0x1f, 0xa3, 0xab, 0xf8, 0x46, 0xb7, 0x45, 0x82, 0x5e,
+ 0xdb, 0x07, 0x5d, 0xe9, 0x9d, 0x1a, 0x48, 0xce, 0x91, 0x12, 0xd4, 0xee, 0xa9, 0x39, 0xf1, 0x18,
+ 0x2c, 0x22, 0x8a, 0x7e, 0x34, 0x4a, 0x8c, 0xc1, 0x14, 0xf3, 0x20, 0x35, 0xd9, 0x96, 0x33, 0x77,
+ 0x9f, 0x76, 0x7c, 0x90, 0xc6, 0xd5, 0xa1, 0x5b, 0xac, 0x75, 0xc7, 0x0c, 0xb3, 0x17, 0xd6, 0x99,
+ 0x56, 0xa6, 0x3d, 0x1d, 0xb1, 0x2e, 0xd8, 0xbc, 0x2f, 0xde, 0x60, 0x55, 0x6c, 0x40, 0xcd, 0x43,
+ 0xff, 0xad, 0x38, 0x79, 0x51, 0xc8, 0x0e, 0x5f, 0xc4, 0x66, 0xcb, 0xa8, 0x7d, 0xa4, 0x3a, 0xea,
+ 0x27, 0x7b, 0x70, 0x8e, 0x5c, 0x19, 0x0f, 0x80, 0x6f, 0x8f, 0x10, 0xf9, 0x49, 0x85, 0x69, 0x7f,
+ 0xeb, 0x1c, 0x01, 0x65, 0x37, 0xa5, 0x28, 0xe4, 0x6a, 0x03, 0x04, 0xd1, 0x31, 0x11, 0x30, 0xfb,
+ 0x88, 0x97, 0xd3, 0xf6, 0xc5, 0x4d, 0xf5, 0x3c, 0xe8, 0x61, 0xdc, 0xd2, 0xb4, 0xb8, 0xa0, 0xae,
+ 0x16, 0x25, 0x02, 0x09, 0xfe, 0xcf, 0x53, 0x63, 0xaf, 0x59, 0xf4, 0xe1, 0xec, 0xd7, 0xe7, 0x50,
+ 0xe2, 0xc9, 0xaa, 0x4b, 0x8d, 0x4f, 0xe6, 0x64, 0xda, 0x74, 0xb6, 0x72, 0x57, 0x62, 0xfd, 0x58,
+};
+
+
+static const uint8_t kof2000_address_16_23_xor1[256] =
+{
+ 0x45, 0x9f, 0x6e, 0x2f, 0x28, 0xbc, 0x5e, 0x6d, 0xda, 0xb5, 0x0d, 0xb8, 0xc0, 0x8e, 0xa2, 0x32,
+ 0xee, 0xcd, 0x8d, 0x48, 0x8c, 0x27, 0x14, 0xeb, 0x65, 0xd7, 0xf2, 0x93, 0x99, 0x90, 0x91, 0xfc,
+ 0x5f, 0xcb, 0xfa, 0x75, 0x3f, 0x26, 0xde, 0x72, 0x33, 0x39, 0xc7, 0x1f, 0x88, 0x79, 0x73, 0xab,
+ 0x4e, 0x36, 0x5d, 0x44, 0xd2, 0x41, 0xa0, 0x7e, 0xa7, 0x8b, 0xa6, 0xbf, 0x03, 0xd8, 0x86, 0xdc,
+ 0x2c, 0xaa, 0x70, 0x3d, 0x46, 0x07, 0x80, 0x58, 0x0b, 0x2b, 0xe2, 0xf0, 0xb1, 0xfe, 0x42, 0xf3,
+ 0xe9, 0xa3, 0x85, 0x78, 0xc3, 0xd0, 0x5a, 0xdb, 0x1a, 0xfb, 0x9d, 0x8a, 0xa5, 0x12, 0x0e, 0x54,
+ 0x8f, 0xc5, 0x6c, 0xae, 0x25, 0x5b, 0x4b, 0x17, 0x02, 0x9c, 0x4a, 0x24, 0x40, 0xe5, 0x9e, 0x22,
+ 0xc6, 0x49, 0x62, 0xb6, 0x6b, 0xbb, 0xa8, 0xcc, 0xe8, 0x81, 0x50, 0x47, 0xc8, 0xbe, 0x5c, 0xa4,
+ 0xd6, 0x94, 0x4f, 0x7b, 0x9a, 0xcf, 0xe4, 0x59, 0x7a, 0xa1, 0xea, 0x31, 0x37, 0x13, 0x2d, 0xaf,
+ 0x21, 0x69, 0x19, 0x1d, 0x6f, 0x16, 0x98, 0x1e, 0x08, 0xe3, 0xb2, 0x4d, 0x9b, 0x7f, 0xa9, 0x77,
+ 0xed, 0xbd, 0xd4, 0xd9, 0x34, 0xd3, 0xca, 0x09, 0x18, 0x60, 0xc9, 0x6a, 0x01, 0xf4, 0xf6, 0x64,
+ 0xb4, 0x3a, 0x15, 0xac, 0x89, 0x52, 0x68, 0x71, 0xe7, 0x82, 0xc1, 0x0c, 0x92, 0xf7, 0x30, 0xe6,
+ 0x1c, 0x3e, 0x0f, 0x0a, 0x67, 0x35, 0xba, 0x61, 0xdd, 0x29, 0xc2, 0xf8, 0x97, 0x95, 0xb7, 0x3b,
+ 0xe0, 0xce, 0xf9, 0xd5, 0x06, 0x76, 0xb3, 0x05, 0x4c, 0x04, 0x84, 0x3c, 0x87, 0x23, 0x63, 0x7c,
+ 0x53, 0x56, 0xe1, 0x7d, 0x96, 0x1b, 0xd1, 0xec, 0x2a, 0x66, 0xf1, 0x11, 0x10, 0xff, 0x43, 0x2e,
+ 0xdf, 0x83, 0x74, 0xf5, 0x38, 0x20, 0xfd, 0xad, 0xc4, 0xb9, 0x55, 0x51, 0xb0, 0xef, 0x00, 0x57,
+};
+
+
+static const uint8_t kof2000_address_16_23_xor2[256] =
+{
+ 0x00, 0xb8, 0xf0, 0x34, 0xca, 0x21, 0x3c, 0xf9, 0x01, 0x8e, 0x75, 0x70, 0xec, 0x13, 0x27, 0x96,
+ 0xf4, 0x5b, 0x88, 0x1f, 0xeb, 0x4a, 0x7d, 0x9d, 0xbe, 0x02, 0x14, 0xaf, 0xa2, 0x06, 0xc6, 0xdb,
+ 0x35, 0x6b, 0x74, 0x45, 0x7b, 0x29, 0xd2, 0xfe, 0xb6, 0x15, 0xd0, 0x8a, 0xa9, 0x2d, 0x19, 0xf6,
+ 0x5e, 0x5a, 0x90, 0xe9, 0x11, 0x33, 0xc2, 0x47, 0x37, 0x4c, 0x4f, 0x59, 0xc3, 0x04, 0x57, 0x1d,
+ 0xf2, 0x63, 0x6d, 0x6e, 0x31, 0x95, 0xcb, 0x3e, 0x67, 0xb2, 0xe3, 0x98, 0xed, 0x8d, 0xe6, 0xfb,
+ 0xf8, 0xba, 0x5d, 0xd4, 0x2a, 0xf5, 0x3b, 0x82, 0x05, 0x16, 0x44, 0xef, 0x4d, 0xe7, 0x93, 0xda,
+ 0x9f, 0xbb, 0x61, 0xc9, 0x53, 0xbd, 0x76, 0x78, 0x52, 0x36, 0x0c, 0x66, 0xc1, 0x10, 0xdd, 0x7a,
+ 0x84, 0x69, 0xcd, 0xfd, 0x58, 0x0d, 0x6c, 0x89, 0x68, 0xad, 0x3a, 0xb0, 0x4b, 0x46, 0xc5, 0x03,
+ 0xb4, 0xf7, 0x30, 0x8c, 0x4e, 0x60, 0x73, 0xa1, 0x8b, 0xb1, 0x62, 0xcc, 0xd1, 0x08, 0xfc, 0x77,
+ 0x7e, 0xcf, 0x56, 0x51, 0x07, 0xa6, 0x80, 0x92, 0xdc, 0x0b, 0xa4, 0xc7, 0xe8, 0xe1, 0xb5, 0x71,
+ 0xea, 0xb3, 0x2f, 0x94, 0x18, 0xe2, 0x3d, 0x49, 0x65, 0xaa, 0xf1, 0x91, 0xc8, 0x99, 0x55, 0x79,
+ 0x86, 0xa7, 0x26, 0xa0, 0xac, 0x5f, 0xce, 0x6a, 0x5c, 0xf3, 0x87, 0x8f, 0x12, 0x1c, 0xd8, 0xe4,
+ 0x9b, 0x64, 0x2e, 0x1e, 0xd7, 0xc0, 0x17, 0xbc, 0xa3, 0xa8, 0x9a, 0x0e, 0x25, 0x40, 0x41, 0x50,
+ 0xb9, 0xbf, 0x28, 0xdf, 0x32, 0x54, 0x9e, 0x48, 0xd5, 0x2b, 0x42, 0xfa, 0x9c, 0x7f, 0xd3, 0x85,
+ 0x43, 0xde, 0x81, 0x0f, 0x24, 0xc4, 0x38, 0xae, 0x83, 0x1b, 0x6f, 0x7c, 0xe5, 0xff, 0x1a, 0xd9,
+ 0x3f, 0xb7, 0x22, 0x97, 0x09, 0xe0, 0xa5, 0x20, 0x23, 0x2c, 0x72, 0xd6, 0x39, 0xab, 0x0a, 0xee,
+};
+
+
+static const uint8_t kof2000_address_0_7_xor[256] =
+{
+ 0x26, 0x48, 0x06, 0x9b, 0x21, 0xa9, 0x1b, 0x76, 0xc9, 0xf8, 0xb4, 0x67, 0xe4, 0xff, 0x99, 0xf7,
+ 0x15, 0x9e, 0x62, 0x00, 0x72, 0x4d, 0xa0, 0x4f, 0x02, 0xf1, 0xea, 0xef, 0x0b, 0xf3, 0xeb, 0xa6,
+ 0x93, 0x78, 0x6f, 0x7c, 0xda, 0xd4, 0x7b, 0x05, 0xe9, 0xc6, 0xd6, 0xdb, 0x50, 0xce, 0xd2, 0x01,
+ 0xb5, 0xe8, 0xe0, 0x2a, 0x08, 0x1a, 0xb8, 0xe3, 0xf9, 0xb1, 0xf4, 0x8b, 0x39, 0x2d, 0x85, 0x9c,
+ 0x55, 0x73, 0x63, 0x40, 0x38, 0x96, 0xdc, 0xa3, 0xa2, 0xa1, 0x25, 0x66, 0x6d, 0x56, 0x8e, 0x10,
+ 0x0f, 0x31, 0x1c, 0xf5, 0x28, 0x77, 0x0a, 0xd1, 0x75, 0x34, 0xa4, 0xfe, 0x7d, 0x07, 0x51, 0x79,
+ 0x41, 0x90, 0x22, 0x35, 0x12, 0xbb, 0xc4, 0xca, 0xb2, 0x1f, 0xcb, 0xc8, 0xac, 0xdd, 0xd0, 0x0d,
+ 0xfc, 0xc5, 0x9d, 0x14, 0xbc, 0x83, 0xd9, 0x58, 0xc2, 0x30, 0x9a, 0x6a, 0xc0, 0x0c, 0xad, 0xf6,
+ 0x5d, 0x74, 0x7f, 0x2f, 0xbd, 0x1d, 0x47, 0xd5, 0xe6, 0x89, 0xcf, 0xb7, 0xd3, 0x59, 0x36, 0x98,
+ 0xf0, 0xfb, 0x3c, 0xf2, 0x3f, 0xa7, 0x18, 0x82, 0x42, 0x5c, 0xab, 0xba, 0xde, 0x52, 0x09, 0x91,
+ 0xaa, 0x61, 0xec, 0xd7, 0x95, 0x23, 0xcd, 0x80, 0xa5, 0x68, 0x60, 0x27, 0x71, 0xe1, 0x2c, 0x2e,
+ 0x8d, 0x2b, 0x57, 0x65, 0xbf, 0xc1, 0x19, 0xc7, 0x49, 0x64, 0x88, 0x4a, 0xcc, 0x20, 0x4e, 0xd8,
+ 0x3b, 0x4c, 0x13, 0x5f, 0x9f, 0xbe, 0x5e, 0x6e, 0xfd, 0xe2, 0xfa, 0x54, 0x37, 0x0e, 0x16, 0x7a,
+ 0x6c, 0x33, 0xb3, 0x70, 0x84, 0x7e, 0xc3, 0x04, 0xb0, 0xae, 0xb9, 0x81, 0x03, 0x29, 0xdf, 0x46,
+ 0xe5, 0x69, 0xe7, 0x24, 0x92, 0x5a, 0x4b, 0x5b, 0x94, 0x11, 0x3a, 0x3d, 0x87, 0xed, 0x97, 0xb6,
+ 0x32, 0x3e, 0x45, 0xaf, 0x1e, 0x43, 0x44, 0x8c, 0x53, 0x86, 0x6b, 0xee, 0xa8, 0x8a, 0x8f, 0x17,
+};
+
+
+
+void cmc_prot_device::decrypt(uint8_t *r0, uint8_t *r1,
+ uint8_t c0, uint8_t c1,
+ const uint8_t *table0hi,
+ const uint8_t *table0lo,
+ const uint8_t *table1,
+ int base,
+ int invert)
+{
+ uint8_t tmp,xor0,xor1;
+
+ tmp = table1[(base & 0xff) ^ address_0_7_xor[(base >> 8) & 0xff]];
+ xor0 = (table0hi[(base >> 8) & 0xff] & 0xfe) | (tmp & 0x01);
+ xor1 = (tmp & 0xfe) | (table0lo[(base >> 8) & 0xff] & 0x01);
+
+ if (invert)
+ {
+ *r0 = c1 ^ xor0;
+ *r1 = c0 ^ xor1;
+ }
+ else
+ {
+ *r0 = c0 ^ xor0;
+ *r1 = c1 ^ xor1;
+ }
+}
+
+
+void cmc_prot_device::neogeo_gfx_decrypt(uint8_t* rom, uint32_t rom_size, int extra_xor)
+{
+ int rpos;
+
+
+ std::vector<uint8_t> buf(rom_size);
+
+ // Data xor
+ for (rpos = 0;rpos < rom_size/4;rpos++)
+ {
+ decrypt(&buf[4*rpos+0], &buf[4*rpos+3], rom[4*rpos+0], rom[4*rpos+3], type0_t03, type0_t12, type1_t03, rpos, (rpos>>8) & 1);
+ decrypt(&buf[4*rpos+1], &buf[4*rpos+2], rom[4*rpos+1], rom[4*rpos+2], type0_t12, type0_t03, type1_t12, rpos, ((rpos>>16) ^ address_16_23_xor2[(rpos>>8) & 0xff]) & 1);
+ }
+
+ // Address xor
+ for (rpos = 0;rpos < rom_size/4;rpos++)
+ {
+ int baser;
+
+ baser = rpos;
+
+ baser ^= extra_xor;
+
+ baser ^= address_8_15_xor1[(baser >> 16) & 0xff] << 8;
+ baser ^= address_8_15_xor2[baser & 0xff] << 8;
+ baser ^= address_16_23_xor1[baser & 0xff] << 16;
+ baser ^= address_16_23_xor2[(baser >> 8) & 0xff] << 16;
+ baser ^= address_0_7_xor[(baser >> 8) & 0xff];
+
+
+ if (rom_size == 0x3000000) /* special handling for preisle2 */
+ {
+ if (rpos < 0x2000000/4)
+ baser &= (0x2000000/4)-1;
+ else
+ baser = 0x2000000/4 + (baser & ((0x1000000/4)-1));
+ }
+ else if (rom_size == 0x6000000) /* special handling for kf2k3pcb */
+ {
+ if (rpos < 0x4000000/4)
+ baser &= (0x4000000/4)-1;
+ else
+ baser = 0x4000000/4 + (baser & ((0x1000000/4)-1));
+ }
+ else /* Clamp to the real rom size */
+ baser &= (rom_size/4)-1;
+
+ rom[4*rpos+0] = buf[4*baser+0];
+ rom[4*rpos+1] = buf[4*baser+1];
+ rom[4*rpos+2] = buf[4*baser+2];
+ rom[4*rpos+3] = buf[4*baser+3];
+ }
+}
+
+
+/* the S data comes from the end of the C data */
+void cmc_prot_device::neogeo_sfix_decrypt(uint8_t* rom, uint32_t rom_size, uint8_t* fixed, uint32_t fixed_size)
+{
+ int i;
+ int tx_size = fixed_size;
+ uint8_t *src = rom+rom_size-tx_size;
+ uint8_t *dst = fixed;
+
+ for (i = 0;i < tx_size;i++)
+ dst[i] = src[(i & ~0x1f) + ((i & 7) << 2) + ((~i & 8) >> 2) + ((i & 0x10) >> 4)];
+}
+
+
+/* CMC42 protection chip */
+void cmc_prot_device::kof99_neogeo_gfx_decrypt(uint8_t* rom, uint32_t rom_size, uint8_t* fixed, uint32_t fixed_size, int extra_xor)
+{
+ type0_t03 = kof99_type0_t03;
+ type0_t12 = kof99_type0_t12;
+ type1_t03 = kof99_type1_t03;
+ type1_t12 = kof99_type1_t12;
+ address_8_15_xor1 = kof99_address_8_15_xor1;
+ address_8_15_xor2 = kof99_address_8_15_xor2;
+ address_16_23_xor1 = kof99_address_16_23_xor1;
+ address_16_23_xor2 = kof99_address_16_23_xor2;
+ address_0_7_xor = kof99_address_0_7_xor;
+ neogeo_gfx_decrypt(rom, rom_size, extra_xor);
+ neogeo_sfix_decrypt(rom, rom_size, fixed, fixed_size);
+}
+
+
+/* CMC50 protection chip */
+void cmc_prot_device::kof2000_neogeo_gfx_decrypt(uint8_t* rom, uint32_t rom_size, uint8_t* fixed, uint32_t fixed_size, int extra_xor)
+{
+ type0_t03 = kof2000_type0_t03;
+ type0_t12 = kof2000_type0_t12;
+ type1_t03 = kof2000_type1_t03;
+ type1_t12 = kof2000_type1_t12;
+ address_8_15_xor1 = kof2000_address_8_15_xor1;
+ address_8_15_xor2 = kof2000_address_8_15_xor2;
+ address_16_23_xor1 = kof2000_address_16_23_xor1;
+ address_16_23_xor2 = kof2000_address_16_23_xor2;
+ address_0_7_xor = kof2000_address_0_7_xor;
+ neogeo_gfx_decrypt(rom, rom_size, extra_xor);
+ neogeo_sfix_decrypt(rom, rom_size, fixed, fixed_size);
+}
+
+
+/* CMC42 protection chip */
+void cmc_prot_device::cmc42_neogeo_gfx_decrypt(uint8_t* rom, uint32_t rom_size, uint8_t* fixed, uint32_t fixed_size, int extra_xor)
+{
+ type0_t03 = kof99_type0_t03;
+ type0_t12 = kof99_type0_t12;
+ type1_t03 = kof99_type1_t03;
+ type1_t12 = kof99_type1_t12;
+ address_8_15_xor1 = kof99_address_8_15_xor1;
+ address_8_15_xor2 = kof99_address_8_15_xor2;
+ address_16_23_xor1 = kof99_address_16_23_xor1;
+ address_16_23_xor2 = kof99_address_16_23_xor2;
+ address_0_7_xor = kof99_address_0_7_xor;
+ neogeo_gfx_decrypt(rom, rom_size, extra_xor);
+}
+
+
+/* CMC50 protection chip */
+void cmc_prot_device::cmc50_neogeo_gfx_decrypt(uint8_t* rom, uint32_t rom_size, uint8_t* fixed, uint32_t fixed_size, int extra_xor)
+{
+ type0_t03 = kof2000_type0_t03;
+ type0_t12 = kof2000_type0_t12;
+ type1_t03 = kof2000_type1_t03;
+ type1_t12 = kof2000_type1_t12;
+ address_8_15_xor1 = kof2000_address_8_15_xor1;
+ address_8_15_xor2 = kof2000_address_8_15_xor2;
+ address_16_23_xor1 = kof2000_address_16_23_xor1;
+ address_16_23_xor2 = kof2000_address_16_23_xor2;
+ address_0_7_xor = kof2000_address_0_7_xor;
+ neogeo_gfx_decrypt(rom, rom_size, extra_xor);
+}
+
+
+
+/***************************************************************************
+
+NeoGeo 'M' ROM encryption
+ CMC50 protection chip
+
+***************************************************************************/
+
+
+static const uint8_t m1_address_8_15_xor[256] =
+{
+ 0x0a, 0x72, 0xb7, 0xaf, 0x67, 0xde, 0x1d, 0xb1, 0x78, 0xc4, 0x4f, 0xb5, 0x4b, 0x18, 0x76, 0xdd,
+ 0x11, 0xe2, 0x36, 0xa1, 0x82, 0x03, 0x98, 0xa0, 0x10, 0x5f, 0x3f, 0xd6, 0x1f, 0x90, 0x6a, 0x0b,
+ 0x70, 0xe0, 0x64, 0xcb, 0x9f, 0x38, 0x8b, 0x53, 0x04, 0xca, 0xf8, 0xd0, 0x07, 0x68, 0x56, 0x32,
+ 0xae, 0x1c, 0x2e, 0x48, 0x63, 0x92, 0x9a, 0x9c, 0x44, 0x85, 0x41, 0x40, 0x09, 0xc0, 0xc8, 0xbf,
+ 0xea, 0xbb, 0xf7, 0x2d, 0x99, 0x21, 0xf6, 0xba, 0x15, 0xce, 0xab, 0xb0, 0x2a, 0x60, 0xbc, 0xf1,
+ 0xf0, 0x9e, 0xd5, 0x97, 0xd8, 0x4e, 0x14, 0x9d, 0x42, 0x4d, 0x2c, 0x5c, 0x2b, 0xa6, 0xe1, 0xa7,
+ 0xef, 0x25, 0x33, 0x7a, 0xeb, 0xe7, 0x1b, 0x6d, 0x4c, 0x52, 0x26, 0x62, 0xb6, 0x35, 0xbe, 0x80,
+ 0x01, 0xbd, 0xfd, 0x37, 0xf9, 0x47, 0x55, 0x71, 0xb4, 0xf2, 0xff, 0x27, 0xfa, 0x23, 0xc9, 0x83,
+ 0x17, 0x39, 0x13, 0x0d, 0xc7, 0x86, 0x16, 0xec, 0x49, 0x6f, 0xfe, 0x34, 0x05, 0x8f, 0x00, 0xe6,
+ 0xa4, 0xda, 0x7b, 0xc1, 0xf3, 0xf4, 0xd9, 0x75, 0x28, 0x66, 0x87, 0xa8, 0x45, 0x6c, 0x20, 0xe9,
+ 0x77, 0x93, 0x7e, 0x3c, 0x1e, 0x74, 0xf5, 0x8c, 0x3e, 0x94, 0xd4, 0xc2, 0x5a, 0x06, 0x0e, 0xe8,
+ 0x3d, 0xa9, 0xb2, 0xe3, 0xe4, 0x22, 0xcf, 0x24, 0x8e, 0x6b, 0x8a, 0x8d, 0x84, 0x4a, 0xd2, 0x91,
+ 0x88, 0x79, 0x57, 0xa5, 0x0f, 0xcd, 0xb9, 0xac, 0x3b, 0xaa, 0xb3, 0xd1, 0xee, 0x31, 0x81, 0x7c,
+ 0xd7, 0x89, 0xd3, 0x96, 0x43, 0xc5, 0xc6, 0xc3, 0x69, 0x7f, 0x46, 0xdf, 0x30, 0x5b, 0x6e, 0xe5,
+ 0x08, 0x95, 0x9b, 0xfb, 0xb8, 0x58, 0x0c, 0x61, 0x50, 0x5d, 0x3a, 0xa2, 0x29, 0x12, 0xfc, 0x51,
+ 0x7d, 0x1a, 0x02, 0x65, 0x54, 0x5e, 0x19, 0xcc, 0xdc, 0xdb, 0x73, 0xed, 0xad, 0x59, 0x2f, 0xa3,
+};
+
+static const uint8_t m1_address_0_7_xor[256] =
+{
+ 0xf4, 0xbc, 0x02, 0xf7, 0x2c, 0x3d, 0xe8, 0xd9, 0x50, 0x62, 0xec, 0xbd, 0x53, 0x73, 0x79, 0x61,
+ 0x00, 0x34, 0xcf, 0xa2, 0x63, 0x28, 0x90, 0xaf, 0x44, 0x3b, 0xc5, 0x8d, 0x3a, 0x46, 0x07, 0x70,
+ 0x66, 0xbe, 0xd8, 0x8b, 0xe9, 0xa0, 0x4b, 0x98, 0xdc, 0xdf, 0xe2, 0x16, 0x74, 0xf1, 0x37, 0xf5,
+ 0xb7, 0x21, 0x81, 0x01, 0x1c, 0x1b, 0x94, 0x36, 0x09, 0xa1, 0x4a, 0x91, 0x30, 0x92, 0x9b, 0x9a,
+ 0x29, 0xb1, 0x38, 0x4d, 0x55, 0xf2, 0x56, 0x18, 0x24, 0x47, 0x9d, 0x3f, 0x80, 0x1f, 0x22, 0xa4,
+ 0x11, 0x54, 0x84, 0x0d, 0x25, 0x48, 0xee, 0xc6, 0x59, 0x15, 0x03, 0x7a, 0xfd, 0x6c, 0xc3, 0x33,
+ 0x5b, 0xc4, 0x7b, 0x5a, 0x05, 0x7f, 0xa6, 0x40, 0xa9, 0x5d, 0x41, 0x8a, 0x96, 0x52, 0xd3, 0xf0,
+ 0xab, 0x72, 0x10, 0x88, 0x6f, 0x95, 0x7c, 0xa8, 0xcd, 0x9c, 0x5f, 0x32, 0xae, 0x85, 0x39, 0xac,
+ 0xe5, 0xd7, 0xfb, 0xd4, 0x08, 0x23, 0x19, 0x65, 0x6b, 0xa7, 0x93, 0xbb, 0x2b, 0xbf, 0xb8, 0x35,
+ 0xd0, 0x06, 0x26, 0x68, 0x3e, 0xdd, 0xb9, 0x69, 0x2a, 0xb2, 0xde, 0x87, 0x45, 0x58, 0xff, 0x3c,
+ 0x9e, 0x7d, 0xda, 0xed, 0x49, 0x8c, 0x14, 0x8e, 0x75, 0x2f, 0xe0, 0x6e, 0x78, 0x6d, 0x20, 0xd2,
+ 0xfa, 0x2d, 0x51, 0xcc, 0xc7, 0xe7, 0x1d, 0x27, 0x97, 0xfc, 0x31, 0xdb, 0xf8, 0x42, 0xe3, 0x99,
+ 0x5e, 0x83, 0x0e, 0xb4, 0x2e, 0xf6, 0xc0, 0x0c, 0x4c, 0x57, 0xb6, 0x64, 0x0a, 0x17, 0xa3, 0xc1,
+ 0x77, 0x12, 0xfe, 0xe6, 0x8f, 0x13, 0x71, 0xe4, 0xf9, 0xad, 0x9f, 0xce, 0xd5, 0x89, 0x7e, 0x0f,
+ 0xc2, 0x86, 0xf3, 0x67, 0xba, 0x60, 0x43, 0xc9, 0x04, 0xb3, 0xb0, 0x1e, 0xb5, 0xc8, 0xeb, 0xa5,
+ 0x76, 0xea, 0x5c, 0x82, 0x1a, 0x4f, 0xaa, 0xca, 0xe1, 0x0b, 0x4e, 0xcb, 0x6a, 0xef, 0xd1, 0xd6,
+};
+
+
+/* The CMC50 hardware does a checksum of the first 64kb of the M1 rom,
+ ,and uses this checksum as the basis of the key with which to decrypt
+ the rom */
+
+uint16_t cmc_prot_device::generate_cs16(uint8_t *rom, int size)
+{
+ uint16_t cs16;
+ int i;
+ cs16 = 0x0000;
+ for (i=0;i<size;i++ )
+ {
+ cs16 += rom[i];
+ }
+ return cs16&0xFFFF;
+}
+
+
+int cmc_prot_device::m1_address_scramble(int address, uint16_t key)
+{
+ int block;
+ int aux;
+
+ const int p1[8][16] = {
+ {15,14,10,7,1,2,3,8,0,12,11,13,6,9,5,4},
+ {7,1,8,11,15,9,2,3,5,13,4,14,10,0,6,12},
+ {8,6,14,3,10,7,15,1,4,0,2,5,13,11,12,9},
+ {2,8,15,9,3,4,11,7,13,6,0,10,1,12,14,5},
+ {1,13,6,15,14,3,8,10,9,4,7,12,5,2,0,11},
+ {11,15,3,4,7,0,9,2,6,14,12,1,8,5,10,13},
+ {10,5,13,8,6,15,1,14,11,9,3,0,12,7,4,2},
+ {9,3,7,0,2,12,4,11,14,10,5,8,15,13,1,6},
+ };
+
+ block = (address>>16)&7;
+ aux = address&0xffff;
+
+ aux ^= BITSWAP16(key,12,0,2,4,8,15,7,13,10,1,3,6,11,9,14,5);
+ aux = BITSWAP16(aux,
+ p1[block][15],p1[block][14],p1[block][13],p1[block][12],
+ p1[block][11],p1[block][10],p1[block][9],p1[block][8],
+ p1[block][7],p1[block][6],p1[block][5],p1[block][4],
+ p1[block][3],p1[block][2],p1[block][1],p1[block][0]);
+ aux ^= m1_address_0_7_xor[(aux>>8)&0xff];
+ aux ^= m1_address_8_15_xor[aux&0xff]<<8;
+ aux = BITSWAP16(aux, 7,15,14,6,5,13,12,4,11,3,10,2,9,1,8,0);
+
+ return (block<<16)|aux;
+}
+
+
+void cmc_prot_device::neogeo_cmc50_m1_decrypt(uint8_t* romcrypt, uint32_t romcrypt_size, uint8_t* romaudio, uint32_t romaudio_size)
+{
+ uint8_t* rom = romcrypt;
+ size_t rom_size = 0x80000;
+ uint8_t* rom2 = romaudio;
+
+ std::vector<uint8_t> buffer(rom_size);
+
+ uint32_t i;
+
+ uint16_t key=generate_cs16(rom,0x10000);
+
+ //printf("key %04x\n",key);
+
+ for (i=0; i<rom_size; i++)
+ {
+ buffer[i] = rom[m1_address_scramble(i,key)];
+ }
+
+ memcpy(rom,&buffer[0],rom_size);
+
+ memcpy(rom2,rom,0x10000);
+ memcpy(rom2+0x10000,rom,0x80000);
+
+ #if 0
+ {
+ FILE *fp;
+ const char *gamename = machine().system().name;
+ char filename[256];
+ sprintf(filename, "%s_m1.dump", gamename);
+
+ fp=fopen(filename, "w+b");
+ if (fp)
+ {
+ fwrite(rom, rom_size, 1, fp);
+ fclose(fp);
+ }
+ }
+ #endif
+
+
+ #if 0
+ {
+ FILE *fp;
+ const char *gamename = machine().system().name;
+ char filename[256];
+ sprintf(filename, "%s_m1extra.dump", gamename);
+
+ fp=fopen(filename, "w+b");
+ if (fp)
+ {
+ fwrite(&rom[0xf800], 0x800, 1, fp);
+ fclose(fp);
+ }
+ }
+ #endif
+}
diff --git a/src/mame/old/cmc_prot.h b/src/mame/old/cmc_prot.h
new file mode 100644
index 00000000000..793b5a6d0eb
--- /dev/null
+++ b/src/mame/old/cmc_prot.h
@@ -0,0 +1,83 @@
+// license:BSD-3-Clause
+// copyright-holders:S. Smith,David Haywood
+
+
+#pragma once
+
+#ifndef __CMC_PROT__
+#define __CMC_PROT__
+
+extern const device_type CMC_PROT;
+
+#define MCFG_CMC_PROT_ADD(_tag) \
+ MCFG_DEVICE_ADD(_tag, CMC_PROT, 0)
+
+// cmc42
+#define KOF99_GFX_KEY (0x00)
+#define GAROU_GFX_KEY (0x06)
+#define MSLUG3_GFX_KEY (0xad)
+#define ZUPAPA_GFX_KEY (0xbd)
+#define GANRYU_GFX_KEY (0x07)
+#define S1945P_GFX_KEY (0x05)
+#define PREISLE2_GFX_KEY (0x9f)
+#define BANGBEAD_GFX_KEY (0xf8)
+#define NITD_GFX_KEY (0xff)
+#define SENGOKU3_GFX_KEY (0xfe)
+
+// cmc50
+#define KOF2000_GFX_KEY (0x00)
+#define KOF2001_GFX_KEY (0x1e)
+#define MSLUG4_GFX_KEY (0x31)
+#define ROTD_GFX_KEY (0x3f)
+#define PNYAA_GFX_KEY (0x2e)
+#define KOF2002_GFX_KEY (0xec)
+#define MATRIM_GFX_KEY (0x6a)
+#define SAMSHO5_GFX_KEY (0x0f)
+#define SAMSHO5SP_GFX_KEY (0x0d)
+#define MSLUG5_GFX_KEY (0x19)
+#define SVC_GFX_KEY (0x57)
+#define KOF2003_GFX_KEY (0x9d)
+#define JOCKEYGP_GFX_KEY (0xac)
+
+
+class cmc_prot_device : public device_t
+{
+public:
+ // construction/destruction
+ cmc_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
+ void decrypt(uint8_t *r0, uint8_t *r1,
+ uint8_t c0, uint8_t c1,
+ const uint8_t *table0hi,
+ const uint8_t *table0lo,
+ const uint8_t *table1,
+ int base,
+ int invert);
+
+ void neogeo_gfx_decrypt(uint8_t* rom, uint32_t rom_size, int extra_xor);
+ void neogeo_sfix_decrypt(uint8_t* rom, uint32_t rom_size, uint8_t* fixed, uint32_t fixed_size);
+ void kof99_neogeo_gfx_decrypt(uint8_t* rom, uint32_t rom_size, uint8_t* fixed, uint32_t fixed_size, int extra_xor);
+ void kof2000_neogeo_gfx_decrypt(uint8_t* rom, uint32_t rom_size, uint8_t* fixed, uint32_t fixed_size, int extra_xor);
+ void cmc42_neogeo_gfx_decrypt(uint8_t* rom, uint32_t rom_size, uint8_t* fixed, uint32_t fixed_size, int extra_xor);
+ void cmc50_neogeo_gfx_decrypt(uint8_t* rom, uint32_t rom_size, uint8_t* fixed, uint32_t fixed_size, int extra_xor);
+
+ uint16_t generate_cs16(uint8_t *rom, int size);
+ int m1_address_scramble(int address, uint16_t key);
+ void neogeo_cmc50_m1_decrypt(uint8_t* romcrypt, uint32_t romcrypt_size, uint8_t* romaudio, uint32_t romaudio_size);
+
+protected:
+ virtual void device_start() override;
+ virtual void device_reset() override;
+
+ const uint8_t *type0_t03;
+ const uint8_t *type0_t12;
+ const uint8_t *type1_t03;
+ const uint8_t *type1_t12;
+ const uint8_t *address_8_15_xor1;
+ const uint8_t *address_8_15_xor2;
+ const uint8_t *address_16_23_xor1;
+ const uint8_t *address_16_23_xor2;
+ const uint8_t *address_0_7_xor;
+};
+
+#endif
diff --git a/src/mame/old/fatfury2_cart.cpp b/src/mame/old/fatfury2_cart.cpp
new file mode 100644
index 00000000000..0ae01f31e40
--- /dev/null
+++ b/src/mame/old/fatfury2_cart.cpp
@@ -0,0 +1,75 @@
+// license:BSD-3-Clause
+// copyright-holders:S. Smith,David Haywood
+/***********************************************************************************************************
+
+ NEOGEO ROM cart emulation
+
+ ***********************************************************************************************************/
+
+
+#include "emu.h"
+#include "fatfury2_cart.h"
+
+
+//-------------------------------------------------
+// neogeo_fatfury2_cart - constructor
+//-------------------------------------------------
+
+const device_type NEOGEO_FATFURY2_CART = device_creator<neogeo_fatfury2_cart>;
+
+
+neogeo_fatfury2_cart::neogeo_fatfury2_cart(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint16_t clock, const char *shortname, const char *source)
+ : device_t(mconfig, type, name, tag, owner, clock, shortname, source),
+ device_neogeo_cart_interface( mconfig, *this ),
+ m_banked_cart(*this, "banked_cart"),
+ m_fatfury2_prot(*this, "fatfury2_prot")
+{
+}
+
+neogeo_fatfury2_cart::neogeo_fatfury2_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock)
+ : device_t(mconfig, NEOGEO_FATFURY2_CART, "NEOGEO Fatal Fury 2 Cart", tag, owner, clock, "neogeo_rom", __FILE__),
+ device_neogeo_cart_interface( mconfig, *this ),
+ m_banked_cart(*this, "banked_cart"),
+ m_fatfury2_prot(*this, "fatfury2_prot")
+{
+}
+
+
+//-------------------------------------------------
+// mapper specific start/reset
+//-------------------------------------------------
+
+void neogeo_fatfury2_cart::device_start()
+{
+}
+
+void neogeo_fatfury2_cart::device_reset()
+{
+}
+
+
+/*-------------------------------------------------
+ mapper specific handlers
+ -------------------------------------------------*/
+
+READ16_MEMBER(neogeo_fatfury2_cart::read_rom)
+{
+ return m_rom[offset];
+}
+
+static MACHINE_CONFIG_FRAGMENT( fatfury2_cart )
+ MCFG_NEOGEO_BANKED_CART_ADD("banked_cart")
+ MCFG_FATFURY2_PROT_ADD("fatfury2_prot")
+
+MACHINE_CONFIG_END
+
+machine_config_constructor neogeo_fatfury2_cart::device_mconfig_additions() const
+{
+ return MACHINE_CONFIG_NAME( fatfury2_cart );
+}
+
+void neogeo_fatfury2_cart::activate_cart(ACTIVATE_CART_PARAMS)
+{
+ m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size);
+ m_fatfury2_prot->fatfury2_install_protection(maincpu, m_banked_cart);
+}
diff --git a/src/mame/old/fatfury2_cart.h b/src/mame/old/fatfury2_cart.h
new file mode 100644
index 00000000000..fd71272b36d
--- /dev/null
+++ b/src/mame/old/fatfury2_cart.h
@@ -0,0 +1,41 @@
+// license:BSD-3-Clause
+// copyright-holders:S. Smith,David Haywood
+#ifndef __NEOGEO_FATFURY2_CART_H
+#define __NEOGEO_FATFURY2_CART_H
+
+#include "neogeo_slot.h"
+#include "banked_cart.h"
+#include "fatfury2_prot.h"
+
+// ======================> neogeo_fatfury2_cart
+
+class neogeo_fatfury2_cart : public device_t,
+ public device_neogeo_cart_interface
+{
+public:
+ // construction/destruction
+ neogeo_fatfury2_cart(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint16_t clock, const char *shortname, const char *source);
+ neogeo_fatfury2_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock);
+
+ // device-level overrides
+ virtual void device_start() override;
+ virtual void device_reset() override;
+ virtual machine_config_constructor device_mconfig_additions() const override;
+
+ // reading and writing
+ virtual DECLARE_READ16_MEMBER(read_rom) override;
+
+ virtual void activate_cart(ACTIVATE_CART_PARAMS) override;
+
+ required_device<neogeo_banked_cart_device> m_banked_cart;
+ required_device<fatfury2_prot_device> m_fatfury2_prot;
+
+};
+
+
+
+// device type definition
+extern const device_type NEOGEO_FATFURY2_CART;
+
+
+#endif
diff --git a/src/mame/old/fatfury2_prot.cpp b/src/mame/old/fatfury2_prot.cpp
new file mode 100644
index 00000000000..450f6ad0e1c
--- /dev/null
+++ b/src/mame/old/fatfury2_prot.cpp
@@ -0,0 +1,112 @@
+// license:BSD-3-Clause
+// copyright-holders:S. Smith,David Haywood
+
+#include "emu.h"
+#include "fatfury2_prot.h"
+
+
+
+const device_type FATFURY2_PROT = device_creator<fatfury2_prot_device>;
+
+
+fatfury2_prot_device::fatfury2_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : device_t(mconfig, FATFURY2_PROT, "NeoGeo Protection (Fatal Fury 2)", tag, owner, clock, "fatfury2_prot", __FILE__),
+ m_bankdev(nullptr),
+ m_fatfury2_prot_data(0)
+{
+}
+
+
+void fatfury2_prot_device::device_start()
+{
+ save_item(NAME(m_fatfury2_prot_data));
+}
+
+void fatfury2_prot_device::device_reset()
+{
+}
+
+
+
+/************************ Fatal Fury 2 *************************/
+
+READ16_MEMBER( fatfury2_prot_device::fatfury2_protection_16_r )
+{
+ uint16_t res = m_fatfury2_prot_data >> 24;
+
+ switch (offset)
+ {
+ case 0x55550/2:
+ case 0xffff0/2:
+ case 0x00000/2:
+ case 0xff000/2:
+ case 0x36000/2:
+ case 0x36008/2:
+ return res;
+
+ case 0x36004/2:
+ case 0x3600c/2:
+ return ((res & 0xf0) >> 4) | ((res & 0x0f) << 4);
+
+ default:
+ logerror("unknown protection read at pc %06x, offset %08x\n", space.device().safe_pc(), offset << 1);
+ return 0;
+ }
+}
+
+
+WRITE16_MEMBER( fatfury2_prot_device::fatfury2_protection_16_w )
+{
+ switch (offset)
+ {
+ case 0x11112/2: /* data == 0x1111; expects 0xff000000 back */
+ m_fatfury2_prot_data = 0xff000000;
+ break;
+
+ case 0x33332/2: /* data == 0x3333; expects 0x0000ffff back */
+ m_fatfury2_prot_data = 0x0000ffff;
+ break;
+
+ case 0x44442/2: /* data == 0x4444; expects 0x00ff0000 back */
+ m_fatfury2_prot_data = 0x00ff0000;
+ break;
+
+ case 0x55552/2: /* data == 0x5555; read back from 55550, ffff0, 00000, ff000 */
+ m_fatfury2_prot_data = 0xff00ff00;
+ break;
+
+ case 0x56782/2: /* data == 0x1234; read back from 36000 *or* 36004 */
+ m_fatfury2_prot_data = 0xf05a3601;
+ break;
+
+ case 0x42812/2: /* data == 0x1824; read back from 36008 *or* 3600c */
+ m_fatfury2_prot_data = 0x81422418;
+ break;
+
+ case 0x55550/2:
+ case 0xffff0/2:
+ case 0xff000/2:
+ case 0x36000/2:
+ case 0x36004/2:
+ case 0x36008/2:
+ case 0x3600c/2:
+ m_fatfury2_prot_data <<= 8;
+ break;
+
+ default:
+ logerror("unknown protection write at pc %06x, offset %08x, data %02x\n", space.device().safe_pc(), offset, data);
+ break;
+ }
+}
+
+
+void fatfury2_prot_device::fatfury2_install_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev)
+{
+ /* the protection involves reading and writing addresses in the */
+ /* 0x2xxxxx range. There are several checks all around the code. */
+ maincpu->space(AS_PROGRAM).install_readwrite_handler(0x200000, 0x2fffff, read16_delegate(FUNC(fatfury2_prot_device::fatfury2_protection_16_r),this), write16_delegate(FUNC(fatfury2_prot_device::fatfury2_protection_16_w),this));
+ m_bankdev = bankdev;
+
+ m_fatfury2_prot_data = 0;
+
+}
diff --git a/src/mame/old/fatfury2_prot.h b/src/mame/old/fatfury2_prot.h
new file mode 100644
index 00000000000..1220279622b
--- /dev/null
+++ b/src/mame/old/fatfury2_prot.h
@@ -0,0 +1,36 @@
+// license:BSD-3-Clause
+// copyright-holders:S. Smith,David Haywood
+
+#pragma once
+
+#ifndef __FATFURY2_PROT__
+#define __FATFURY2_PROT__
+
+#include "banked_cart.h"
+
+extern const device_type FATFURY2_PROT;
+
+#define MCFG_FATFURY2_PROT_ADD(_tag) \
+ MCFG_DEVICE_ADD(_tag, FATFURY2_PROT, 0)
+
+
+class fatfury2_prot_device : public device_t
+{
+public:
+ // construction/destruction
+ fatfury2_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
+ DECLARE_READ16_MEMBER( fatfury2_protection_16_r );
+ DECLARE_WRITE16_MEMBER( fatfury2_protection_16_w );
+ void fatfury2_install_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev);
+
+
+ neogeo_banked_cart_device* m_bankdev;
+ uint32_t m_fatfury2_prot_data;
+
+protected:
+ virtual void device_start() override;
+ virtual void device_reset() override;
+};
+
+#endif
diff --git a/src/mame/old/hbmamesplash.png b/src/mame/old/hbmamesplash.png
new file mode 100644
index 00000000000..389ff515691
--- /dev/null
+++ b/src/mame/old/hbmamesplash.png
Binary files differ
diff --git a/src/mame/old/hbmameui-1.ico b/src/mame/old/hbmameui-1.ico
new file mode 100644
index 00000000000..bf32924767f
--- /dev/null
+++ b/src/mame/old/hbmameui-1.ico
Binary files differ
diff --git a/src/mame/old/kof2002_cart.cpp b/src/mame/old/kof2002_cart.cpp
new file mode 100644
index 00000000000..c662fc03c17
--- /dev/null
+++ b/src/mame/old/kof2002_cart.cpp
@@ -0,0 +1,157 @@
+// license:BSD-3-Clause
+// copyright-holders:S. Smith,David Haywood
+/***********************************************************************************************************
+
+ NEOGEO ROM cart emulation
+
+ ***********************************************************************************************************/
+
+
+#include "emu.h"
+#include "kof2002_cart.h"
+
+
+//-------------------------------------------------
+// neogeo_kof2002_cart - constructor
+//-------------------------------------------------
+
+const device_type NEOGEO_KOF2002_CART = device_creator<neogeo_kof2002_cart>;
+
+
+neogeo_kof2002_cart::neogeo_kof2002_cart(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint16_t clock, const char *shortname, const char *source)
+ : device_t(mconfig, type, name, tag, owner, clock, shortname, source),
+ device_neogeo_cart_interface(mconfig, *this),
+ m_banked_cart(*this, "banked_cart"),
+ m_cmc_prot(*this, "cmc_prot"),
+ m_pcm2_prot(*this, "pcm2_prot"),
+ m_kof2002_prot(*this, "kof2002_prot")
+{
+}
+
+neogeo_kof2002_cart::neogeo_kof2002_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock)
+ : device_t(mconfig, NEOGEO_KOF2002_CART, "NEOGEO KOF2002 Cart", tag, owner, clock, "neogeo_rom", __FILE__),
+ device_neogeo_cart_interface(mconfig, *this),
+ m_banked_cart(*this, "banked_cart"),
+ m_cmc_prot(*this, "cmc_prot"),
+ m_pcm2_prot(*this, "pcm2_prot"),
+ m_kof2002_prot(*this, "kof2002_prot")
+{
+}
+
+
+//-------------------------------------------------
+// mapper specific start/reset
+//-------------------------------------------------
+
+void neogeo_kof2002_cart::device_start()
+{
+}
+
+void neogeo_kof2002_cart::device_reset()
+{
+}
+
+
+/*-------------------------------------------------
+ mapper specific handlers
+ -------------------------------------------------*/
+
+READ16_MEMBER(neogeo_kof2002_cart::read_rom)
+{
+ return m_rom[offset];
+}
+
+static MACHINE_CONFIG_FRAGMENT( kof2002_cart )
+ MCFG_NEOGEO_BANKED_CART_ADD("banked_cart")
+ MCFG_CMC_PROT_ADD("cmc_prot")
+ MCFG_PCM2_PROT_ADD("pcm2_prot")
+ MCFG_KOF2002_PROT_ADD("kof2002_prot")
+MACHINE_CONFIG_END
+
+machine_config_constructor neogeo_kof2002_cart::device_mconfig_additions() const
+{
+ return MACHINE_CONFIG_NAME( kof2002_cart );
+}
+
+
+
+/* Individual cartridge types (mirror DRIVER_INIT functionality) */
+
+/*************************************************
+ KOF2002
+**************************************************/
+
+const device_type NEOGEO_KOF2002_KOF2002_CART = device_creator<neogeo_kof2002_kof2002_cart>;
+
+neogeo_kof2002_kof2002_cart::neogeo_kof2002_kof2002_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : neogeo_kof2002_cart(mconfig, NEOGEO_KOF2002_KOF2002_CART, "NEOGEO Kof2002-type kof2002 Cart", tag, owner, clock, "k2k_k2k_cart", __FILE__) {}
+
+void neogeo_kof2002_kof2002_cart::decrypt_all(DECRYPT_ALL_PARAMS)
+{
+ m_kof2002_prot->kof2002_decrypt_68k(cpuregion, cpuregion_size);
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size);
+ m_cmc_prot->kof2000_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, KOF2002_GFX_KEY);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 0);
+
+}
+
+const device_type NEOGEO_KOF2002_KF2K2PLS_CART = device_creator<neogeo_kof2002_kf2k2pls_cart>;
+
+neogeo_kof2002_kf2k2pls_cart::neogeo_kof2002_kf2k2pls_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : neogeo_kof2002_cart(mconfig, NEOGEO_KOF2002_KF2K2PLS_CART, "NEOGEO Kof2002-type kof2002plus Cart", tag, owner, clock, "k2k_k2kpls_cart", __FILE__) {}
+
+void neogeo_kof2002_kf2k2pls_cart::decrypt_all(DECRYPT_ALL_PARAMS)
+{
+ m_kof2002_prot->kof2002_decrypt_68k(cpuregion, cpuregion_size);
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, KOF2002_GFX_KEY);
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 0);
+}
+
+
+/*************************************************
+ MATRIM
+**************************************************/
+
+const device_type NEOGEO_KOF2002_MATRIM_CART = device_creator<neogeo_kof2002_matrim_cart>;
+
+neogeo_kof2002_matrim_cart::neogeo_kof2002_matrim_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : neogeo_kof2002_cart(mconfig, NEOGEO_KOF2002_MATRIM_CART, "NEOGEO Kof2002-type matrim Cart", tag, owner, clock, "k2k_matrim_cart", __FILE__) {}
+
+void neogeo_kof2002_matrim_cart::decrypt_all(DECRYPT_ALL_PARAMS)
+{
+ m_kof2002_prot->matrim_decrypt_68k(cpuregion, cpuregion_size);
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size);
+ m_cmc_prot->kof2000_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, MATRIM_GFX_KEY);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 1);
+
+}
+
+/*************************************************
+ SAMSHO5
+**************************************************/
+
+const device_type NEOGEO_KOF2002_SAMSHO5_CART = device_creator<neogeo_kof2002_samsho5_cart>;
+
+neogeo_kof2002_samsho5_cart::neogeo_kof2002_samsho5_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : neogeo_kof2002_cart(mconfig, NEOGEO_KOF2002_SAMSHO5_CART, "NEOGEO Kof2002-type Samsho5 Cart", tag, owner, clock, "k2k_ss5_cart", __FILE__) {}
+
+void neogeo_kof2002_samsho5_cart::decrypt_all(DECRYPT_ALL_PARAMS)
+{
+ m_kof2002_prot->samsho5_decrypt_68k(cpuregion, cpuregion_size);
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size);
+ m_cmc_prot->kof2000_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, SAMSHO5_GFX_KEY);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 4);
+}
+
+/*************************************************
+ SAMSHO5SP
+**************************************************/
+
+const device_type NEOGEO_KOF2002_SAMSHO5SP_CART = device_creator<neogeo_kof2002_samsho5sp_cart>;
+
+neogeo_kof2002_samsho5sp_cart::neogeo_kof2002_samsho5sp_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : neogeo_kof2002_cart(mconfig, NEOGEO_KOF2002_SAMSHO5SP_CART, "NEOGEO Kof2002-type Samsho5sp Cart", tag, owner, clock, "k2k_ss5s_cart", __FILE__) {}
+
+void neogeo_kof2002_samsho5sp_cart::decrypt_all(DECRYPT_ALL_PARAMS)
+{
+ m_kof2002_prot->samsh5sp_decrypt_68k(cpuregion, cpuregion_size);
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size);
+ m_cmc_prot->kof2000_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, SAMSHO5SP_GFX_KEY);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 6);
+}
diff --git a/src/mame/old/kof2002_cart.h b/src/mame/old/kof2002_cart.h
new file mode 100644
index 00000000000..c8d080e017e
--- /dev/null
+++ b/src/mame/old/kof2002_cart.h
@@ -0,0 +1,111 @@
+// license:BSD-3-Clause
+// copyright-holders:S. Smith,David Haywood
+#ifndef __NEOGEO_KOF2002_CART_H
+#define __NEOGEO_KOF2002_CART_H
+
+#include "neogeo_slot.h"
+#include "banked_cart.h"
+#include "pcm2_prot.h"
+#include "cmc_prot.h"
+#include "kof2002_prot.h"
+
+// ======================> neogeo_kof2002_cart
+
+class neogeo_kof2002_cart : public device_t,
+ public device_neogeo_cart_interface
+{
+public:
+ // construction/destruction
+ neogeo_kof2002_cart(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint16_t clock, const char *shortname, const char *source);
+ neogeo_kof2002_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock);
+
+ // device-level overrides
+ virtual void device_start() override;
+ virtual void device_reset() override;
+ virtual machine_config_constructor device_mconfig_additions() const override;
+
+ // reading and writing
+ virtual DECLARE_READ16_MEMBER(read_rom) override;
+
+ virtual void activate_cart(ACTIVATE_CART_PARAMS) override { m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size); }
+ virtual void decrypt_all(DECRYPT_ALL_PARAMS) override {}
+ virtual int get_fixed_bank_type(void) override { return 0; }
+
+ required_device<neogeo_banked_cart_device> m_banked_cart;
+ required_device<cmc_prot_device> m_cmc_prot;
+ required_device<pcm2_prot_device> m_pcm2_prot;
+ required_device<kof2002_prot_device> m_kof2002_prot;
+
+};
+
+
+
+// device type definition
+extern const device_type NEOGEO_KOF2002_CART;
+
+
+/*************************************************
+ KOF2002
+**************************************************/
+
+class neogeo_kof2002_kof2002_cart : public neogeo_kof2002_cart
+{
+public:
+ neogeo_kof2002_kof2002_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
+ virtual int get_fixed_bank_type(void) override { return 0; }
+};
+extern const device_type NEOGEO_KOF2002_KOF2002_CART;
+
+class neogeo_kof2002_kf2k2pls_cart : public neogeo_kof2002_cart
+{
+public:
+ neogeo_kof2002_kf2k2pls_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
+ virtual int get_fixed_bank_type(void) override { return 0; }
+};
+extern const device_type NEOGEO_KOF2002_KF2K2PLS_CART;
+
+
+
+/*************************************************
+ MATRIM
+**************************************************/
+
+class neogeo_kof2002_matrim_cart : public neogeo_kof2002_cart
+{
+public:
+ neogeo_kof2002_matrim_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
+ virtual int get_fixed_bank_type(void) override { return 2; }
+};
+extern const device_type NEOGEO_KOF2002_MATRIM_CART;
+
+/*************************************************
+ SAMSHO5
+**************************************************/
+
+class neogeo_kof2002_samsho5_cart : public neogeo_kof2002_cart
+{
+public:
+ neogeo_kof2002_samsho5_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
+ virtual int get_fixed_bank_type(void) override { return 1; }
+};
+extern const device_type NEOGEO_KOF2002_SAMSHO5_CART;
+
+/*************************************************
+ SAMSHO5SP
+**************************************************/
+
+class neogeo_kof2002_samsho5sp_cart : public neogeo_kof2002_cart
+{
+public:
+ neogeo_kof2002_samsho5sp_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
+ virtual int get_fixed_bank_type(void) override { return 1; }
+};
+extern const device_type NEOGEO_KOF2002_SAMSHO5SP_CART;
+
+
+#endif
diff --git a/src/mame/old/kof2002_prot.cpp b/src/mame/old/kof2002_prot.cpp
new file mode 100644
index 00000000000..44d113c9a77
--- /dev/null
+++ b/src/mame/old/kof2002_prot.cpp
@@ -0,0 +1,83 @@
+// license:BSD-3-Clause
+// copyright-holders:S. Smith,David Haywood
+
+#include "emu.h"
+#include "kof2002_prot.h"
+
+
+
+const device_type KOF2002_PROT = device_creator<kof2002_prot_device>;
+
+
+kof2002_prot_device::kof2002_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : device_t(mconfig, KOF2002_PROT, "NeoGeo Protection (KOF2002)", tag, owner, clock, "kof2002_prot", __FILE__)
+{
+}
+
+
+void kof2002_prot_device::device_start()
+{
+}
+
+void kof2002_prot_device::device_reset()
+{
+}
+
+
+/* kof2002, matrim, samsho5, samsh5sp have some simple block swapping */
+void kof2002_prot_device::kof2002_decrypt_68k(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ int i;
+ static const int sec[]={0x100000,0x280000,0x300000,0x180000,0x000000,0x380000,0x200000,0x080000};
+ uint8_t *src = cpurom+0x100000;
+ std::vector<uint8_t> dst(0x400000);
+ memcpy( &dst[0], src, 0x400000 );
+ for( i=0; i<8; ++i )
+ {
+ memcpy( src+i*0x80000, &dst[sec[i]], 0x80000 );
+ }
+}
+
+
+void kof2002_prot_device::matrim_decrypt_68k(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ int i;
+ static const int sec[]={0x100000,0x280000,0x300000,0x180000,0x000000,0x380000,0x200000,0x080000};
+ uint8_t *src = cpurom+0x100000;
+ std::vector<uint8_t> dst(0x400000);
+ memcpy( &dst[0], src, 0x400000);
+ for( i=0; i<8; ++i )
+ {
+ memcpy( src+i*0x80000, &dst[sec[i]], 0x80000 );
+ }
+}
+
+
+void kof2002_prot_device::samsho5_decrypt_68k(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ int i;
+ static const int sec[]={0x000000,0x080000,0x700000,0x680000,0x500000,0x180000,0x200000,0x480000,0x300000,0x780000,0x600000,0x280000,0x100000,0x580000,0x400000,0x380000};
+ uint8_t *src = cpurom;
+ std::vector<uint8_t> dst(0x800000);
+
+ memcpy( &dst[0], src, 0x800000 );
+ for( i=0; i<16; ++i )
+ {
+ memcpy( src+i*0x80000, &dst[sec[i]], 0x80000 );
+ }
+}
+
+
+void kof2002_prot_device::samsh5sp_decrypt_68k(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ int i;
+ static const int sec[]={0x000000,0x080000,0x500000,0x480000,0x600000,0x580000,0x700000,0x280000,0x100000,0x680000,0x400000,0x780000,0x200000,0x380000,0x300000,0x180000};
+ uint8_t *src = cpurom;
+ std::vector<uint8_t> dst(0x800000);
+
+ memcpy( &dst[0], src, 0x800000 );
+ for( i=0; i<16; ++i )
+ {
+ memcpy( src+i*0x80000, &dst[sec[i]], 0x80000 );
+ }
+}
diff --git a/src/mame/old/kof2002_prot.h b/src/mame/old/kof2002_prot.h
new file mode 100644
index 00000000000..3b455a51418
--- /dev/null
+++ b/src/mame/old/kof2002_prot.h
@@ -0,0 +1,32 @@
+// license:BSD-3-Clause
+// copyright-holders:S. Smith,David Haywood
+
+
+#pragma once
+
+#ifndef __KOF2002_PROT__
+#define __KOF2002_PROT__
+
+extern const device_type KOF2002_PROT;
+
+#define MCFG_KOF2002_PROT_ADD(_tag) \
+ MCFG_DEVICE_ADD(_tag, KOF2002_PROT, 0)
+
+
+class kof2002_prot_device : public device_t
+{
+public:
+ // construction/destruction
+ kof2002_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
+ void kof2002_decrypt_68k(uint8_t* cpurom, uint32_t cpurom_size);
+ void matrim_decrypt_68k(uint8_t* cpurom, uint32_t cpurom_size);
+ void samsho5_decrypt_68k(uint8_t* cpurom, uint32_t cpurom_size);
+ void samsh5sp_decrypt_68k(uint8_t* cpurom, uint32_t cpurom_size);
+
+protected:
+ virtual void device_start() override;
+ virtual void device_reset() override;
+};
+
+#endif
diff --git a/src/mame/old/kof98_cart.cpp b/src/mame/old/kof98_cart.cpp
new file mode 100644
index 00000000000..ef553ce4418
--- /dev/null
+++ b/src/mame/old/kof98_cart.cpp
@@ -0,0 +1,80 @@
+// license:BSD-3-Clause
+// copyright-holders:S. Smith,David Haywood
+/***********************************************************************************************************
+
+ NEOGEO ROM cart emulation
+
+ ***********************************************************************************************************/
+
+
+#include "emu.h"
+#include "kof98_cart.h"
+
+
+//-------------------------------------------------
+// neogeo_kof98_cart - constructor
+//-------------------------------------------------
+
+const device_type NEOGEO_KOF98_CART = device_creator<neogeo_kof98_cart>;
+
+
+neogeo_kof98_cart::neogeo_kof98_cart(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint16_t clock, const char *shortname, const char *source)
+ : device_t(mconfig, type, name, tag, owner, clock, shortname, source),
+ device_neogeo_cart_interface( mconfig, *this ),
+ m_banked_cart(*this, "banked_cart"),
+ m_kof98_prot(*this, "kof98_prot")
+{
+}
+
+neogeo_kof98_cart::neogeo_kof98_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock)
+ : device_t(mconfig, NEOGEO_KOF98_CART, "NEOGEO KOF98 Cart", tag, owner, clock, "neogeo_rom", __FILE__),
+ device_neogeo_cart_interface( mconfig, *this ),
+ m_banked_cart(*this, "banked_cart"),
+ m_kof98_prot(*this, "kof98_prot")
+{
+}
+
+
+//-------------------------------------------------
+// mapper specific start/reset
+//-------------------------------------------------
+
+void neogeo_kof98_cart::device_start()
+{
+}
+
+void neogeo_kof98_cart::device_reset()
+{
+}
+
+
+/*-------------------------------------------------
+ mapper specific handlers
+ -------------------------------------------------*/
+
+READ16_MEMBER(neogeo_kof98_cart::read_rom)
+{
+ return m_rom[offset];
+}
+
+static MACHINE_CONFIG_FRAGMENT( kof98_cart )
+ MCFG_NEOGEO_BANKED_CART_ADD("banked_cart")
+ MCFG_KOF98_PROT_ADD("kof98_prot")
+
+MACHINE_CONFIG_END
+
+machine_config_constructor neogeo_kof98_cart::device_mconfig_additions() const
+{
+ return MACHINE_CONFIG_NAME( kof98_cart );
+}
+
+void neogeo_kof98_cart::decrypt_all(DECRYPT_ALL_PARAMS)
+{
+ m_kof98_prot->kof98_decrypt_68k(cpuregion, cpuregion_size);
+}
+
+void neogeo_kof98_cart::activate_cart(ACTIVATE_CART_PARAMS)
+{
+ m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size);
+ m_kof98_prot->install_kof98_protection(maincpu);
+}
diff --git a/src/mame/old/kof98_cart.h b/src/mame/old/kof98_cart.h
new file mode 100644
index 00000000000..9f8a5c1e1e8
--- /dev/null
+++ b/src/mame/old/kof98_cart.h
@@ -0,0 +1,41 @@
+// license:BSD-3-Clause
+// copyright-holders:S. Smith,David Haywood
+#ifndef __NEOGEO_KOF98_CART_H
+#define __NEOGEO_KOF98_CART_H
+
+#include "neogeo_slot.h"
+#include "banked_cart.h"
+#include "kof98_prot.h"
+
+// ======================> neogeo_kof98_cart
+
+class neogeo_kof98_cart : public device_t,
+ public device_neogeo_cart_interface
+{
+public:
+ // construction/destruction
+ neogeo_kof98_cart(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint16_t clock, const char *shortname, const char *source);
+ neogeo_kof98_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock);
+
+ // device-level overrides
+ virtual void device_start() override;
+ virtual void device_reset() override;
+ virtual machine_config_constructor device_mconfig_additions() const override;
+
+ // reading and writing
+ virtual DECLARE_READ16_MEMBER(read_rom) override;
+ virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
+ virtual void activate_cart(ACTIVATE_CART_PARAMS) override;
+
+ required_device<neogeo_banked_cart_device> m_banked_cart;
+ required_device<kof98_prot_device> m_kof98_prot;
+
+};
+
+
+
+// device type definition
+extern const device_type NEOGEO_KOF98_CART;
+
+
+#endif
diff --git a/src/mame/old/kof98_prot.cpp b/src/mame/old/kof98_prot.cpp
new file mode 100644
index 00000000000..88755ea7c6d
--- /dev/null
+++ b/src/mame/old/kof98_prot.cpp
@@ -0,0 +1,142 @@
+// license:BSD-3-Clause
+// copyright-holders:S. Smith,David Haywood
+
+
+#include "emu.h"
+#include "kof98_prot.h"
+
+
+
+const device_type KOF98_PROT = device_creator<kof98_prot_device>;
+
+
+kof98_prot_device::kof98_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : device_t(mconfig, KOF98_PROT, "NeoGeo Protection (KOF98)", tag, owner, clock, "kof98_prot", __FILE__),
+ kof98_prot_state(0)
+{
+}
+
+
+void kof98_prot_device::device_start()
+{
+}
+
+void kof98_prot_device::device_reset()
+{
+ kof98_prot_state = 0;
+}
+
+
+/* Kof98 uses an early encryption, quite different from the others */
+void kof98_prot_device::kof98_decrypt_68k(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ uint8_t *src = cpurom;
+ std::vector<uint8_t> dst(0x200000);
+ int i, j, k;
+ static const uint32_t sec[]={0x000000,0x100000,0x000004,0x100004,0x10000a,0x00000a,0x10000e,0x00000e};
+ static const uint32_t pos[]={0x000,0x004,0x00a,0x00e};
+
+ memcpy( &dst[0], src, 0x200000);
+ for( i=0x800; i<0x100000; i+=0x200 )
+ {
+ for( j=0; j<0x100; j+=0x10 )
+ {
+ for( k=0; k<16; k+=2)
+ {
+ memcpy( &src[i+j+k], &dst[ i+j+sec[k/2]+0x100 ], 2 );
+ memcpy( &src[i+j+k+0x100], &dst[ i+j+sec[k/2] ], 2 );
+ }
+ if( i >= 0x080000 && i < 0x0c0000)
+ {
+ for( k=0; k<4; k++ )
+ {
+ memcpy( &src[i+j+pos[k]], &dst[i+j+pos[k]], 2 );
+ memcpy( &src[i+j+pos[k]+0x100], &dst[i+j+pos[k]+0x100], 2 );
+ }
+ }
+ else if( i >= 0x0c0000 )
+ {
+ for( k=0; k<4; k++ )
+ {
+ memcpy( &src[i+j+pos[k]], &dst[i+j+pos[k]+0x100], 2 );
+ memcpy( &src[i+j+pos[k]+0x100], &dst[i+j+pos[k]], 2 );
+ }
+ }
+ }
+ memcpy( &src[i+0x000000], &dst[i+0x000000], 2 );
+ memcpy( &src[i+0x000002], &dst[i+0x100000], 2 );
+ memcpy( &src[i+0x000100], &dst[i+0x000100], 2 );
+ memcpy( &src[i+0x000102], &dst[i+0x100100], 2 );
+ }
+ memmove( &src[0x100000], &src[0x200000], 0x400000 );
+
+ uint16_t* mem16 = (uint16_t*)cpurom;
+ m_default_rom[0] = mem16[0x100 / 2];
+ m_default_rom[1] = mem16[0x102 / 2];
+
+
+}
+
+
+/************************ King of Fighters 98*******************
+ The encrypted set has a rom overlay feature, checked at
+ various points in the game.
+ Boards used: NEO-MVS PROGSF1 (1998.6.17) / NEO-MVS PROGSF1E (1998.6.18)
+ The boards have an ALTERA chip (EPM7128SQC100-15) which is tied to 242-P1
+***************************************************************/
+
+READ16_MEMBER(kof98_prot_device::kof98_prot_r)
+{
+ if (kof98_prot_state == 1)
+ {
+ if (!offset)
+ return 0x00c2;
+ else
+ return 0x00fd;
+ }
+ if (kof98_prot_state == 2)
+ {
+ if (!offset)
+ return 0x4e45;
+ else
+ return 0x4f2d;
+ }
+
+ if (!offset)
+ return m_default_rom[0];
+ else
+ return m_default_rom[1];
+
+ // never executed
+ //return 0xffff;
+}
+
+WRITE16_MEMBER( kof98_prot_device::kof98_prot_w )
+{
+ /* info from razoola */
+ switch (data)
+ {
+ case 0x0090:
+ logerror ("%06x kof98 - protection 0x0090x\n", space.device().safe_pc());
+ kof98_prot_state = 1;
+ break;
+
+ case 0x00f0:
+ logerror ("%06x kof98 - protection 0x00f0x\n", space.device().safe_pc());
+ kof98_prot_state = 2;
+ break;
+
+ default: // 00aa is written, but not needed?
+ logerror ("%06x kof98 - unknown protection write %04x\n", space.device().safe_pc(), data);
+ break;
+ }
+}
+
+
+void kof98_prot_device::install_kof98_protection(cpu_device* maincpu)
+{
+ /* when 0x20aaaa contains 0x0090 (word) then 0x100 (normally the neogeo header) should return 0x00c200fd worked out using real hw */
+ maincpu->space(AS_PROGRAM).install_read_handler(0x00100, 0x00103, read16_delegate(FUNC(kof98_prot_device::kof98_prot_r),this));
+
+ maincpu->space(AS_PROGRAM).install_write_handler(0x20aaaa, 0x20aaab, write16_delegate(FUNC(kof98_prot_device::kof98_prot_w),this));
+}
diff --git a/src/mame/old/kof98_prot.h b/src/mame/old/kof98_prot.h
new file mode 100644
index 00000000000..25ac73cd164
--- /dev/null
+++ b/src/mame/old/kof98_prot.h
@@ -0,0 +1,34 @@
+// license:BSD-3-Clause
+// copyright-holders:S. Smith,David Haywood
+
+
+#pragma once
+
+#ifndef __KOF98_PROT__
+#define __KOF98_PROT__
+
+extern const device_type KOF98_PROT;
+
+#define MCFG_KOF98_PROT_ADD(_tag) \
+ MCFG_DEVICE_ADD(_tag, KOF98_PROT, 0)
+
+
+class kof98_prot_device : public device_t
+{
+public:
+ // construction/destruction
+ kof98_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
+ void kof98_decrypt_68k(uint8_t* cpurom, uint32_t cpurom_size);
+ void install_kof98_protection(cpu_device* maincpu);
+ DECLARE_WRITE16_MEMBER(kof98_prot_w);
+ DECLARE_READ16_MEMBER(kof98_prot_r);
+ int kof98_prot_state;
+ uint16_t m_default_rom[2];
+
+protected:
+ virtual void device_start() override;
+ virtual void device_reset() override;
+};
+
+#endif
diff --git a/src/mame/old/kog_prot.cpp b/src/mame/old/kog_prot.cpp
new file mode 100644
index 00000000000..a926282bea4
--- /dev/null
+++ b/src/mame/old/kog_prot.cpp
@@ -0,0 +1,118 @@
+// license:BSD-3-Clause
+// copyright-holders:S. Smith,David Haywood
+#include "emu.h"
+#include "kog_prot.h"
+
+
+
+const device_type KOG_PROT = device_creator<kog_prot_device>;
+
+
+kog_prot_device::kog_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : device_t(mconfig, KOG_PROT, "NeoGeo Protection (King of Gladiator)", tag, owner, clock, "kog_prot", __FILE__),
+ m_jumper(*this, "JUMPER")
+{
+}
+
+
+void kog_prot_device::device_start()
+{
+}
+
+void kog_prot_device::device_reset()
+{
+}
+
+READ16_MEMBER(kog_prot_device::read_jumper)
+{
+ return ioport("JUMPER")->read();
+}
+
+void kog_prot_device::kog_install_protection(cpu_device* maincpu)
+{
+ /* overlay cartridge ROM */
+ maincpu->space(AS_PROGRAM).install_read_handler(0x0ffffe, 0x0fffff, read16_delegate(FUNC(kog_prot_device::read_jumper), this));
+}
+
+
+/* The King of Gladiator (The King of Fighters '97 bootleg) */
+
+
+/* The protection patching here may be incomplete
+ Thanks to Razoola for the info */
+
+void kog_prot_device::kog_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size)
+{
+ /* the protection chip does some *very* strange things to the rom */
+ uint8_t *src = cpurom;
+ std::vector<uint8_t> dst( 0x600000 );
+ uint16_t *rom = (uint16_t *)cpurom;
+ int i;
+ static const int sec[] = { 0x3, 0x8, 0x7, 0xC, 0x1, 0xA, 0x6, 0xD };
+
+ for (i = 0; i < 8; i++){
+ memcpy (&dst[i * 0x20000], src + sec[i] * 0x20000, 0x20000);
+ }
+
+ memcpy (&dst[0x0007A6], src + 0x0407A6, 0x000006);
+ memcpy (&dst[0x0007C6], src + 0x0407C6, 0x000006);
+ memcpy (&dst[0x0007E6], src + 0x0407E6, 0x000006);
+ memcpy (&dst[0x090000], src + 0x040000, 0x004000);
+ memcpy (&dst[0x100000], src + 0x200000, 0x400000);
+ memcpy (src, &dst[0], 0x600000);
+
+ for (i = 0x90000/2; i < 0x94000/2; i++){
+ if (((rom[i]&0xFFBF) == 0x4EB9 || rom[i] == 0x43F9) && !rom[i + 1])
+ rom[i + 1] = 0x0009;
+
+ if (rom[i] == 0x4EB8)
+ rom[i] = 0x6100;
+ }
+
+ rom[0x007A8/2] = 0x0009;
+ rom[0x007C8/2] = 0x0009;
+ rom[0x007E8/2] = 0x0009;
+ rom[0x93408/2] = 0xF168;
+ rom[0x9340C/2] = 0xFB7A;
+ rom[0x924AC/2] = 0x0009;
+ rom[0x9251C/2] = 0x0009;
+ rom[0x93966/2] = 0xFFDA;
+ rom[0x93974/2] = 0xFFCC;
+ rom[0x93982/2] = 0xFFBE;
+ rom[0x93990/2] = 0xFFB0;
+ rom[0x9399E/2] = 0xFFA2;
+ rom[0x939AC/2] = 0xFF94;
+ rom[0x939BA/2] = 0xFF86;
+ rom[0x939C8/2] = 0xFF78;
+ rom[0x939D4/2] = 0xFA5C;
+ rom[0x939E0/2] = 0xFA50;
+ rom[0x939EC/2] = 0xFA44;
+ rom[0x939F8/2] = 0xFA38;
+ rom[0x93A04/2] = 0xFA2C;
+ rom[0x93A10/2] = 0xFA20;
+ rom[0x93A1C/2] = 0xFA14;
+ rom[0x93A28/2] = 0xFA08;
+ rom[0x93A34/2] = 0xF9FC;
+ rom[0x93A40/2] = 0xF9F0;
+ rom[0x93A4C/2] = 0xFD14;
+ rom[0x93A58/2] = 0xFD08;
+ rom[0x93A66/2] = 0xF9CA;
+ rom[0x93A72/2] = 0xF9BE;
+
+}
+
+
+static INPUT_PORTS_START( kog )
+ /* a jumper on the pcb overlays a ROM address, very strange but that's how it works. */
+ PORT_START("JUMPER")
+ PORT_DIPNAME( 0x0001, 0x0001, "Title Language" ) PORT_DIPLOCATION("CART-JUMPER:1")
+ PORT_DIPSETTING( 0x0001, DEF_STR( English ) )
+ PORT_DIPSETTING( 0x0000, "Non-English" )
+ PORT_BIT( 0x00fe, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED )
+INPUT_PORTS_END
+
+ioport_constructor kog_prot_device::device_input_ports() const
+{
+ return INPUT_PORTS_NAME( kog );
+}
diff --git a/src/mame/old/kog_prot.h b/src/mame/old/kog_prot.h
new file mode 100644
index 00000000000..44adf500b92
--- /dev/null
+++ b/src/mame/old/kog_prot.h
@@ -0,0 +1,34 @@
+// license:BSD-3-Clause
+// copyright-holders:S. Smith,David Haywood
+
+
+#pragma once
+
+#ifndef __KOG_PROT__
+#define __KOG_PROT__
+
+extern const device_type KOG_PROT;
+
+#define MCFG_KOG_PROT_ADD(_tag) \
+ MCFG_DEVICE_ADD(_tag, KOG_PROT, 0)
+
+
+class kog_prot_device : public device_t
+{
+public:
+ // construction/destruction
+ kog_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
+ void kog_install_protection(cpu_device* maincpu);
+ void kog_px_decrypt(uint8_t* cpurom, uint32_t cpurom_size);
+ READ16_MEMBER(read_jumper);
+
+ required_ioport m_jumper;
+
+protected:
+ virtual void device_start() override;
+ virtual void device_reset() override;
+ virtual ioport_constructor device_input_ports() const override;
+};
+
+#endif
diff --git a/src/mame/old/mame.ico b/src/mame/old/mame.ico
new file mode 100644
index 00000000000..586732b4a2f
--- /dev/null
+++ b/src/mame/old/mame.ico
Binary files differ
diff --git a/src/mame/old/mameui.ico b/src/mame/old/mameui.ico
new file mode 100644
index 00000000000..067574231fd
--- /dev/null
+++ b/src/mame/old/mameui.ico
Binary files differ
diff --git a/src/mame/old/mess.ico b/src/mame/old/mess.ico
new file mode 100644
index 00000000000..e1fef183770
--- /dev/null
+++ b/src/mame/old/mess.ico
Binary files differ
diff --git a/src/mame/old/messui.ico b/src/mame/old/messui.ico
new file mode 100644
index 00000000000..e1fef183770
--- /dev/null
+++ b/src/mame/old/messui.ico
Binary files differ
diff --git a/src/mame/old/mslugx_cart.cpp b/src/mame/old/mslugx_cart.cpp
new file mode 100644
index 00000000000..c6aad7307f8
--- /dev/null
+++ b/src/mame/old/mslugx_cart.cpp
@@ -0,0 +1,75 @@
+// license:BSD-3-Clause
+// copyright-holders:S. Smith,David Haywood
+/***********************************************************************************************************
+
+ NEOGEO ROM cart emulation
+
+ ***********************************************************************************************************/
+
+
+#include "emu.h"
+#include "mslugx_cart.h"
+
+
+//-------------------------------------------------
+// neogeo_mslugx_cart - constructor
+//-------------------------------------------------
+
+const device_type NEOGEO_MSLUGX_CART = device_creator<neogeo_mslugx_cart>;
+
+
+neogeo_mslugx_cart::neogeo_mslugx_cart(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint16_t clock, const char *shortname, const char *source)
+ : device_t(mconfig, type, name, tag, owner, clock, shortname, source),
+ device_neogeo_cart_interface( mconfig, *this ),
+ m_banked_cart(*this, "banked_cart"),
+ m_mslugx_prot(*this, "mslugx_prot")
+{
+}
+
+neogeo_mslugx_cart::neogeo_mslugx_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock)
+ : device_t(mconfig, NEOGEO_MSLUGX_CART, "NEOGEO Metal Slug X Cart", tag, owner, clock, "neogeo_rom", __FILE__),
+ device_neogeo_cart_interface( mconfig, *this ),
+ m_banked_cart(*this, "banked_cart"),
+ m_mslugx_prot(*this, "mslugx_prot")
+{
+}
+
+
+//-------------------------------------------------
+// mapper specific start/reset
+//-------------------------------------------------
+
+void neogeo_mslugx_cart::device_start()
+{
+}
+
+void neogeo_mslugx_cart::device_reset()
+{
+}
+
+
+/*-------------------------------------------------
+ mapper specific handlers
+ -------------------------------------------------*/
+
+READ16_MEMBER(neogeo_mslugx_cart::read_rom)
+{
+ return m_rom[offset];
+}
+
+static MACHINE_CONFIG_FRAGMENT( mslugx_cart )
+ MCFG_NEOGEO_BANKED_CART_ADD("banked_cart")
+ MCFG_MSLUGX_PROT_ADD("mslugx_prot")
+
+MACHINE_CONFIG_END
+
+machine_config_constructor neogeo_mslugx_cart::device_mconfig_additions() const
+{
+ return MACHINE_CONFIG_NAME( mslugx_cart );
+}
+
+void neogeo_mslugx_cart::activate_cart(ACTIVATE_CART_PARAMS)
+{
+ m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size);
+ m_mslugx_prot->mslugx_install_protection(maincpu);
+}
diff --git a/src/mame/old/mslugx_cart.h b/src/mame/old/mslugx_cart.h
new file mode 100644
index 00000000000..8b94954bc6a
--- /dev/null
+++ b/src/mame/old/mslugx_cart.h
@@ -0,0 +1,41 @@
+// license:BSD-3-Clause
+// copyright-holders:S. Smith,David Haywood
+#ifndef __NEOGEO_MSLUGX_CART_H
+#define __NEOGEO_MSLUGX_CART_H
+
+#include "neogeo_slot.h"
+#include "banked_cart.h"
+#include "mslugx_prot.h"
+
+// ======================> neogeo_mslugx_cart
+
+class neogeo_mslugx_cart : public device_t,
+ public device_neogeo_cart_interface
+{
+public:
+ // construction/destruction
+ neogeo_mslugx_cart(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint16_t clock, const char *shortname, const char *source);
+ neogeo_mslugx_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock);
+
+ // device-level overrides
+ virtual void device_start() override;
+ virtual void device_reset() override;
+ virtual machine_config_constructor device_mconfig_additions() const override;
+
+ // reading and writing
+ virtual DECLARE_READ16_MEMBER(read_rom) override;
+
+ virtual void activate_cart(ACTIVATE_CART_PARAMS) override;
+
+ required_device<neogeo_banked_cart_device> m_banked_cart;
+ required_device<mslugx_prot_device> m_mslugx_prot;
+
+};
+
+
+
+// device type definition
+extern const device_type NEOGEO_MSLUGX_CART;
+
+
+#endif
diff --git a/src/mame/old/mslugx_prot.cpp b/src/mame/old/mslugx_prot.cpp
new file mode 100644
index 00000000000..cc93f6e0c1a
--- /dev/null
+++ b/src/mame/old/mslugx_prot.cpp
@@ -0,0 +1,97 @@
+// license:BSD-3-Clause
+// copyright-holders:S. Smith,David Haywood
+#include "emu.h"
+#include "mslugx_prot.h"
+
+
+
+const device_type MSLUGX_PROT = device_creator<mslugx_prot_device>;
+
+
+mslugx_prot_device::mslugx_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : device_t(mconfig, MSLUGX_PROT, "NeoGeo Protection (Metal Slug X)", tag, owner, clock, "mslugx_prot", __FILE__),
+ m_mslugx_counter(0),
+ m_mslugx_command(0)
+{
+}
+
+
+void mslugx_prot_device::device_start()
+{
+ save_item(NAME(m_mslugx_command));
+ save_item(NAME(m_mslugx_counter));
+}
+
+void mslugx_prot_device::device_reset()
+{
+}
+
+
+
+
+/************************ Metal Slug X *************************
+ Board used: NEO-MVS PROGEOP (1999.2.2)
+ The board has an ALTERA chip (EPM7128SQC100-15) which is tied to 250-P1
+ Also found is a QFP144 chip labeled with 0103 - function unknown
+***************************************************************/
+
+WRITE16_MEMBER( mslugx_prot_device::mslugx_protection_16_w )
+{
+ switch (offset)
+ {
+ case 0x0/2: // start new read?
+ m_mslugx_command = 0;
+ break;
+
+ case 0x2/2: // command? These are pulsed with data and then 0
+ case 0x4/2:
+ m_mslugx_command |= data;
+ break;
+
+ case 0x6/2: // finished?
+ break;
+
+ case 0xa/2: // init?
+ m_mslugx_counter = 0;
+ m_mslugx_command = 0;
+ break;
+
+ default:
+ logerror("unknown protection write at pc %06x, offset %08x, data %02x\n", space.device().safe_pc(), offset << 1, data);
+ break;
+ }
+}
+
+
+READ16_MEMBER( mslugx_prot_device::mslugx_protection_16_r )
+{
+ uint16_t res = 0;
+
+ switch (m_mslugx_command)
+ {
+ case 0x0001: { // $3bdc(?) and $3c30 (Register D7)
+ res = (space.read_byte(0xdedd2 + ((m_mslugx_counter >> 3) & 0xfff)) >> (~m_mslugx_counter & 0x07)) & 1;
+ m_mslugx_counter++;
+ }
+ break;
+
+ case 0x0fff: { // All other accesses (Register D2)
+ int32_t select = space.read_word(0x10f00a) - 1; // How should this be calculated?
+ res = (space.read_byte(0xdedd2 + ((select >> 3) & 0x0fff)) >> (~select & 0x07)) & 1;
+ }
+ break;
+
+ default:
+ logerror("unknown protection read at pc %06x, offset %08x\n", space.device().safe_pc(), offset << 1);
+ break;
+ }
+
+ return res;
+}
+
+
+void mslugx_prot_device::mslugx_install_protection(cpu_device* maincpu)
+{
+ maincpu->space(AS_PROGRAM).install_readwrite_handler(0x2fffe0, 0x2fffef, read16_delegate(FUNC(mslugx_prot_device::mslugx_protection_16_r),this), write16_delegate(FUNC(mslugx_prot_device::mslugx_protection_16_w),this));
+
+}
diff --git a/src/mame/old/mslugx_prot.h b/src/mame/old/mslugx_prot.h
new file mode 100644
index 00000000000..bdb1da1162c
--- /dev/null
+++ b/src/mame/old/mslugx_prot.h
@@ -0,0 +1,35 @@
+// license:BSD-3-Clause
+// copyright-holders:S. Smith,David Haywood
+
+
+#pragma once
+
+#ifndef __MSLUGX_PROT__
+#define __MSLUGX_PROT__
+
+extern const device_type MSLUGX_PROT;
+
+#define MCFG_MSLUGX_PROT_ADD(_tag) \
+ MCFG_DEVICE_ADD(_tag, MSLUGX_PROT, 0)
+
+
+class mslugx_prot_device : public device_t
+{
+public:
+ // construction/destruction
+ mslugx_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
+
+ DECLARE_WRITE16_MEMBER( mslugx_protection_16_w );
+ DECLARE_READ16_MEMBER( mslugx_protection_16_r );
+ void mslugx_install_protection(cpu_device* maincpu);
+
+ uint16_t m_mslugx_counter;
+ uint16_t m_mslugx_command;
+
+protected:
+ virtual void device_start() override;
+ virtual void device_reset() override;
+};
+
+#endif
diff --git a/src/mame/old/neocrypt.cpp b/src/mame/old/neocrypt.cpp
new file mode 100644
index 00000000000..a6b4263a5d2
--- /dev/null
+++ b/src/mame/old/neocrypt.cpp
@@ -0,0 +1,181 @@
+// license:BSD-3-Clause
+// copyright-holders:Bryan McPhail,Ernesto Corvi,Andrew Prime,Zsolt Vasvari
+// thanks-to:Fuzz
+
+/***************************************************************************
+
+Special decryption used on svcpcb and kf2k3pcb.
+
+***************************************************************************/
+
+#include "emu.h"
+#include "includes/neogeo.h"
+
+
+
+
+/* ms5pcb and svcpcb have an additional scramble on top of the standard CMC scrambling */
+void neogeo_noslot_state::svcpcb_gfx_decrypt()
+{
+ static const uint8_t xorval[ 4 ] = { 0x34, 0x21, 0xc4, 0xe9 };
+ int i;
+ int ofst;
+ int rom_size = memregion( "sprites" )->bytes();
+ uint8_t *rom = memregion( "sprites" )->base();
+ std::vector<uint8_t> buf( rom_size );
+
+ for( i = 0; i < rom_size; i++ )
+ {
+ rom[ i ] ^= xorval[ (i % 4) ];
+ }
+ for( i = 0; i < rom_size; i += 4 )
+ {
+ uint32_t rom32 = rom[i] | rom[i+1]<<8 | rom[i+2]<<16 | rom[i+3]<<24;
+ rom32 = BITSWAP32( rom32, 0x09, 0x0d, 0x13, 0x00, 0x17, 0x0f, 0x03, 0x05, 0x04, 0x0c, 0x11, 0x1e, 0x12, 0x15, 0x0b, 0x06, 0x1b, 0x0a, 0x1a, 0x1c, 0x14, 0x02, 0x0e, 0x1d, 0x18, 0x08, 0x01, 0x10, 0x19, 0x1f, 0x07, 0x16 );
+ buf[i] = rom32 & 0xff;
+ buf[i+1] = (rom32>>8) & 0xff;
+ buf[i+2] = (rom32>>16) & 0xff;
+ buf[i+3] = (rom32>>24) & 0xff;
+ }
+ for( i = 0; i < rom_size / 4; i++ )
+ {
+ ofst = BITSWAP24( (i & 0x1fffff), 0x17, 0x16, 0x15, 0x04, 0x0b, 0x0e, 0x08, 0x0c, 0x10, 0x00, 0x0a, 0x13, 0x03, 0x06, 0x02, 0x07, 0x0d, 0x01, 0x11, 0x09, 0x14, 0x0f, 0x12, 0x05 );
+ ofst ^= 0x0c8923;
+ ofst += (i & 0xffe00000);
+ memcpy( &rom[ i * 4 ], &buf[ ofst * 4 ], 0x04 );
+ }
+}
+
+
+/* and a further swap on the s1 data */
+void neogeo_noslot_state::svcpcb_s1data_decrypt()
+{
+ int i;
+ uint8_t *s1 = memregion( "fixed" )->base();
+ size_t s1_size = memregion( "fixed" )->bytes();
+
+ for( i = 0; i < s1_size; i++ ) // Decrypt S
+ {
+ s1[ i ] = BITSWAP8( s1[ i ] ^ 0xd2, 4, 0, 7, 2, 5, 1, 6, 3 );
+ }
+}
+
+
+/* kf2k3pcb has an additional scramble on top of the standard CMC scrambling */
+/* Thanks to Razoola & Halrin for the info */
+void neogeo_noslot_state::kf2k3pcb_gfx_decrypt()
+{
+ static const uint8_t xorval[ 4 ] = { 0x34, 0x21, 0xc4, 0xe9 };
+ int i;
+ int ofst;
+ int rom_size = memregion( "sprites" )->bytes();
+ uint8_t *rom = memregion( "sprites" )->base();
+ std::vector<uint8_t> buf( rom_size );
+
+ for ( i = 0; i < rom_size; i++ )
+ {
+ rom[ i ] ^= xorval[ (i % 4) ];
+ }
+ for ( i = 0; i < rom_size; i +=4 )
+ {
+ uint32_t rom32 = rom[i] | rom[i+1]<<8 | rom[i+2]<<16 | rom[i+3]<<24;
+ rom32 = BITSWAP32( rom32, 0x09, 0x0d, 0x13, 0x00, 0x17, 0x0f, 0x03, 0x05, 0x04, 0x0c, 0x11, 0x1e, 0x12, 0x15, 0x0b, 0x06, 0x1b, 0x0a, 0x1a, 0x1c, 0x14, 0x02, 0x0e, 0x1d, 0x18, 0x08, 0x01, 0x10, 0x19, 0x1f, 0x07, 0x16 );
+ buf[i] = rom32 & 0xff;
+ buf[i+1] = (rom32>>8) & 0xff;
+ buf[i+2] = (rom32>>16) & 0xff;
+ buf[i+3] = (rom32>>24) & 0xff;
+ }
+ for ( i = 0; i < rom_size; i+=4 )
+ {
+ ofst = BITSWAP24( (i & 0x7fffff), 0x17, 0x15, 0x0a, 0x14, 0x13, 0x16, 0x12, 0x11, 0x10, 0x0f, 0x0e, 0x0d, 0x0c, 0x0b, 0x09, 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x00 );
+ ofst ^= 0x000000;
+ ofst += (i & 0xff800000);
+ memcpy( &rom[ ofst ], &buf[ i ], 0x04 );
+ }
+}
+
+
+/* and a further swap on the s1 data */
+void neogeo_noslot_state::kf2k3pcb_decrypt_s1data()
+{
+ uint8_t *src;
+ uint8_t *dst;
+ int i;
+ int tx_size = memregion( "fixed" )->bytes();
+ int srom_size = memregion( "sprites" )->bytes();
+
+ src = memregion( "sprites" )->base() + srom_size - 0x1000000 - 0x80000; // Decrypt S
+ dst = memregion( "fixed" )->base();
+
+ for( i = 0; i < tx_size / 2; i++ )
+ {
+ dst[ i ] = src[ (i & ~0x1f) + ((i & 7) << 2) + ((~i & 8) >> 2) + ((i & 0x10) >> 4) ];
+ }
+
+ src = memregion( "sprites" )->base() + srom_size - 0x80000;
+ dst = memregion( "fixed" )->base() + 0x80000;
+
+ for( i = 0; i < tx_size / 2; i++ )
+ {
+ dst[ i ] = src[ (i & ~0x1f) + ((i & 7) << 2) + ((~i & 8) >> 2) + ((i & 0x10) >> 4) ];
+ }
+
+ dst = memregion( "fixed" )->base();
+
+ for( i = 0; i < tx_size; i++ )
+ {
+ dst[ i ] = BITSWAP8( dst[ i ] ^ 0xd2, 4, 0, 7, 2, 5, 1, 6, 3 );
+ }
+}
+
+
+
+
+
+/***************************************************************************
+
+NeoGeo 'SP1' (BIOS) ROM encryption
+
+***************************************************************************/
+
+
+/* only found on kf2k3pcb */
+void neogeo_noslot_state::kf2k3pcb_sp1_decrypt()
+{
+ static const uint8_t address[0x40] = {
+ 0x04,0x0a,0x04,0x0a,0x04,0x0a,0x04,0x0a,
+ 0x0a,0x04,0x0a,0x04,0x0a,0x04,0x0a,0x04,
+ 0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,
+ 0x09,0x09,0x04,0x04,0x09,0x09,0x04,0x04,
+ 0x0b,0x0d,0x0b,0x0d,0x03,0x05,0x03,0x05,
+ 0x0e,0x0e,0x03,0x03,0x0e,0x0e,0x03,0x03,
+ 0x03,0x05,0x0b,0x0d,0x03,0x05,0x0b,0x0d,
+ 0x04,0x00,0x04,0x00,0x0e,0x0a,0x0e,0x0a
+ };
+
+ uint16_t *rom = (uint16_t *)memregion("mainbios")->base();
+ std::vector<uint16_t> buf(0x80000/2);
+ int i, addr;
+
+ for (i = 0; i < 0x80000/2; i++)
+ {
+ // address xor
+ addr = i ^ 0x0020;
+ if ( i & 0x00020) addr ^= 0x0010;
+ if (~i & 0x00010) addr ^= 0x0040;
+ if (~i & 0x00004) addr ^= 0x0080;
+ if ( i & 0x00200) addr ^= 0x0100;
+ if (~i & 0x02000) addr ^= 0x0400;
+ if (~i & 0x10000) addr ^= 0x1000;
+ if ( i & 0x02000) addr ^= 0x8000;
+ addr ^= address[((i >> 1) & 0x38) | (i & 7)];
+ buf[i] = rom[addr];
+
+ // data xor
+ if (buf[i] & 0x0004) buf[i] ^= 0x0001;
+ if (buf[i] & 0x0010) buf[i] ^= 0x0002;
+ if (buf[i] & 0x0020) buf[i] ^= 0x0008;
+ }
+
+ memcpy(rom, &buf[0], 0x80000);
+}
diff --git a/src/mame/old/neogeo_carts.cpp b/src/mame/old/neogeo_carts.cpp
new file mode 100644
index 00000000000..8f9d62037b4
--- /dev/null
+++ b/src/mame/old/neogeo_carts.cpp
@@ -0,0 +1,97 @@
+// license:BSD-3-Clause
+// copyright-holders:S. Smith,David Haywood
+ /**********************************************************************
+
+**********************************************************************/
+
+#include "neogeo_carts.h"
+
+SLOT_INTERFACE_START(neogeo_cart)
+ /* Standard cart with banking */
+ SLOT_INTERFACE_INTERNAL("rom", NEOGEO_ROM)
+
+ /* Custom MslugX protection*/
+ SLOT_INTERFACE_INTERNAL("rom_mslugx", NEOGEO_MSLUGX_CART)
+ /* Custom Fatal Fury 2 protection */
+ SLOT_INTERFACE_INTERNAL("rom_fatfur2", NEOGEO_FATFURY2_CART)
+ /* Custom KOF98 protection */
+ SLOT_INTERFACE_INTERNAL("rom_kof98", NEOGEO_KOF98_CART)
+
+ /* These use SMA for prg + CMC42 for gfx */
+ SLOT_INTERFACE_INTERNAL("rom_sma", NEOGEO_SMA_CART)
+ SLOT_INTERFACE_INTERNAL("rom_sma_kof99", NEOGEO_SMA_KOF99_CART)
+ SLOT_INTERFACE_INTERNAL("rom_sma_garou", NEOGEO_SMA_GAROU_CART)
+ SLOT_INTERFACE_INTERNAL("rom_sma_garouh", NEOGEO_SMA_GAROUH_CART)
+ SLOT_INTERFACE_INTERNAL("rom_sma_mslug3", NEOGEO_SMA_MSLUG3_CART)
+ /* These use SMA for prg + CMC50 for gfx (& audiocpu) */
+ SLOT_INTERFACE_INTERNAL("rom_sma_kof2000", NEOGEO_SMA_KOF2000_CART)
+ /* only CMC42 for gfx */
+ SLOT_INTERFACE_INTERNAL("rom_cmc_zupapa", NEOGEO_CMC_ZUPAPA_CART)
+ SLOT_INTERFACE_INTERNAL("rom_cmc_mslug3h", NEOGEO_CMC_MSLUG3H_CART)
+ SLOT_INTERFACE_INTERNAL("rom_cmc_ganryu", NEOGEO_CMC_GANRYU_CART)
+ SLOT_INTERFACE_INTERNAL("rom_cmc_s1945p", NEOGEO_CMC_S1945P_CART)
+ SLOT_INTERFACE_INTERNAL("r_cmc_preisle2", NEOGEO_CMC_PREISLE2_CART)
+ SLOT_INTERFACE_INTERNAL("r_cmc_bangbead", NEOGEO_CMC_BANGBEAD_CART)
+ SLOT_INTERFACE_INTERNAL("rom_cmc_nitd", NEOGEO_CMC_NITD_CART)
+ SLOT_INTERFACE_INTERNAL("r_cmc_sengoku3", NEOGEO_CMC_SENGOKU3_CART)
+ SLOT_INTERFACE_INTERNAL("r_cmc_kof99k", NEOGEO_CMC_KOF99K_CART)
+ /* only CMC50 for gfx (& audiocpu) */
+ SLOT_INTERFACE_INTERNAL("r_cmc_kof2001", NEOGEO_CMC_KOF2001_CART)
+ SLOT_INTERFACE_INTERNAL("r_cmc_kof2000n", NEOGEO_CMC_KOF2000N_CART)
+ /* CMC50 for gfx (& audiocpu) + NEOPCM2 for YM scramble */
+ SLOT_INTERFACE_INTERNAL("r_pc2_mslug4", NEOGEO_PCM2_MSLUG4_CART)
+ SLOT_INTERFACE_INTERNAL("r_pc2_rotd", NEOGEO_PCM2_ROTD_CART)
+ SLOT_INTERFACE_INTERNAL("r_pc2_pnyaa", NEOGEO_PCM2_PNYAA_CART)
+ SLOT_INTERFACE_INTERNAL("r_ms4plus", NEOGEO_PCM2_MS4PLUS_CART) // regular encryption but external S1 rom
+
+ /* CMC50 for gfx (& audiocpu) + NEOPCM2 for YM scramble + additonal prg scramble */
+ SLOT_INTERFACE_INTERNAL("r_k2_kof2002", NEOGEO_KOF2002_KOF2002_CART)
+ SLOT_INTERFACE_INTERNAL("r_k2_matrim", NEOGEO_KOF2002_MATRIM_CART)
+ SLOT_INTERFACE_INTERNAL("r_k2_samsh5", NEOGEO_KOF2002_SAMSHO5_CART)
+ SLOT_INTERFACE_INTERNAL("r_k2_sams5s", NEOGEO_KOF2002_SAMSHO5SP_CART)
+ SLOT_INTERFACE_INTERNAL("r_kf2k2pls", NEOGEO_KOF2002_KF2K2PLS_CART) // regular encryption but external S1 rom
+
+ /* CMC50 for gfx (& audiocpu) + NEOPCM2 for YM scramble + PVC protection/encryption */
+ SLOT_INTERFACE_INTERNAL("r_pv_mslug5", NEOGEO_PVC_MSLUG5_CART)
+ SLOT_INTERFACE_INTERNAL("r_pv_svc", NEOGEO_PVC_SVC_CART)
+ SLOT_INTERFACE_INTERNAL("r_pv_kf2k3", NEOGEO_PVC_KOF2003_CART)
+ SLOT_INTERFACE_INTERNAL("r_pv_kf2k3h", NEOGEO_PVC_KOF2003H_CART)
+
+ /* 100% bootleg logic */
+ SLOT_INTERFACE_INTERNAL("r_garoubl", NEOGEO_BOOTLEG_GAROUBL_CART)
+ SLOT_INTERFACE_INTERNAL("r_cthd2003", NEOGEO_BOOTLEG_CTHD2003_CART)
+ SLOT_INTERFACE_INTERNAL("r_cthd2003sp", NEOGEO_BOOTLEG_CT2K3SP_CART)
+ SLOT_INTERFACE_INTERNAL("r_cthd2003sa", NEOGEO_BOOTLEG_CT2K3SA_CART)
+ SLOT_INTERFACE_INTERNAL("r_kf10thep", NEOGEO_BOOTLEG_KF10THEP_CART)
+ SLOT_INTERFACE_INTERNAL("r_kf2k5uni", NEOGEO_BOOTLEG_KF2K5UNI_CART)
+ SLOT_INTERFACE_INTERNAL("r_kf2k4se", NEOGEO_BOOTLEG_KF2K4SE_CART)
+ SLOT_INTERFACE_INTERNAL("r_svcplus", NEOGEO_BOOTLEG_SVCPLUS_CART)
+ SLOT_INTERFACE_INTERNAL("r_svcplusa", NEOGEO_BOOTLEG_SVCPLUSA_CART)
+ SLOT_INTERFACE_INTERNAL("r_samsho5b", NEOGEO_BOOTLEG_SAMSHO5B_CART)
+ SLOT_INTERFACE_INTERNAL("r_kof97oro", NEOGEO_BOOTLEG_KOF97ORO_CART) // missing from softlist?
+ SLOT_INTERFACE_INTERNAL("r_lans2004", NEOGEO_BOOTLEG_LANS2004_CART)
+ SLOT_INTERFACE_INTERNAL("r_kof10th", NEOGEO_BOOTLEG_KOF10TH_CART)
+ SLOT_INTERFACE_INTERNAL("r_kog", NEOGEO_BOOTLEG_KOG_CART)
+
+ /* mixed original and bootleg logic */
+ SLOT_INTERFACE_INTERNAL("r_mslug3b6", NEOGEO_BOOTLEG_HYBRID_MSLUG3B6_CART)
+ SLOT_INTERFACE_INTERNAL("r_kof2002b", NEOGEO_BOOTLEG_HYBRID_KOF2002B_CART)
+ SLOT_INTERFACE_INTERNAL("r_kf2k2mp", NEOGEO_BOOTLEG_HYBRID_KF2K2MP_CART)
+ SLOT_INTERFACE_INTERNAL("r_kf2k2mp2", NEOGEO_BOOTLEG_HYBRID_KF2K2MP2_CART)
+
+ SLOT_INTERFACE_INTERNAL("r_matrimbl", NEOGEO_BOOTLEG_HYBRID_MATRIMBL_CART)
+ SLOT_INTERFACE_INTERNAL("r_ms5plus", NEOGEO_BOOTLEG_HYBRID_MS5PLUS_CART)
+ SLOT_INTERFACE_INTERNAL("r_svcboot", NEOGEO_BOOTLEG_HYBRID_SVCBOOT_CART)
+ SLOT_INTERFACE_INTERNAL("r_svcsplus", NEOGEO_BOOTLEG_HYBRID_SVCSPLUS_CART)
+
+ SLOT_INTERFACE_INTERNAL("r_kf2k3bl", NEOGEO_BOOTLEG_HYBRID_KF2K3BL_CART)
+ SLOT_INTERFACE_INTERNAL("r_kf2k3pl", NEOGEO_BOOTLEG_HYBRID_KF2K3PL_CART)
+ SLOT_INTERFACE_INTERNAL("r_kf2k3upl", NEOGEO_BOOTLEG_HYBRID_KF2K3UPL_CART)
+
+
+
+
+
+
+
+SLOT_INTERFACE_END
diff --git a/src/mame/old/neogeo_carts.h b/src/mame/old/neogeo_carts.h
new file mode 100644
index 00000000000..f6925b96e98
--- /dev/null
+++ b/src/mame/old/neogeo_carts.h
@@ -0,0 +1,30 @@
+// license:BSD-3-Clause
+// copyright-holders:S. Smith,David Haywood
+/**********************************************************************
+
+**********************************************************************/
+
+#pragma once
+
+#ifndef __NEOGEO_CARTS_H__
+#define __NEOGEO_CARTS_H__
+
+#include "emu.h"
+
+#include "rom.h"
+#include "banked_cart.h"
+#include "mslugx_cart.h"
+#include "sma_cart.h"
+#include "cmc_cart.h"
+#include "pcm2_cart.h"
+#include "kof2002_cart.h"
+#include "pvc_cart.h"
+#include "fatfury2_cart.h"
+#include "kof98_cart.h"
+#include "bootleg_cart.h"
+#include "bootleg_hybrid_cart.h"
+
+// supported devices
+SLOT_INTERFACE_EXTERN(neogeo_cart);
+
+#endif // __NEOGEO_CARTS_H__
diff --git a/src/mame/old/neogeo_helper.cpp b/src/mame/old/neogeo_helper.cpp
new file mode 100644
index 00000000000..4fd5ddecc20
--- /dev/null
+++ b/src/mame/old/neogeo_helper.cpp
@@ -0,0 +1,66 @@
+// license:BSD-3-Clause
+// copyright-holders:S. Smith,David Haywood
+
+#include "emu.h"
+#include "neogeo_helper.h"
+
+static uint32_t get_region_mask(uint8_t* rgn, uint32_t rgn_size)
+{
+ uint32_t mask;
+ uint32_t len;
+ uint32_t bit;
+
+ mask = 0xffffffff;
+
+ len = rgn_size;
+
+ for (bit = 0x80000000; bit != 0; bit >>= 1)
+ {
+ if ((len * 2 - 1) & bit)
+ break;
+
+ mask >>= 1;
+ }
+
+ return mask;
+}
+
+uint32_t neogeohelper_optimize_sprite_data(std::vector<uint8_t> &spritegfx, uint8_t* region_sprites, uint32_t region_sprites_size)
+{
+ /* convert the sprite graphics data into a format that
+ allows faster blitting */
+ uint8_t *src;
+ uint8_t *dest;
+
+ uint32_t mask = get_region_mask(region_sprites, region_sprites_size);
+
+ spritegfx.resize(mask + 1);
+ uint32_t spritegfx_address_mask = mask;
+
+ src = region_sprites;
+ dest = &spritegfx[0];
+
+ for (unsigned i = 0; i < region_sprites_size; i += 0x80, src += 0x80)
+ {
+ for (unsigned y = 0; y < 0x10; y++)
+ {
+ for (unsigned x = 0; x < 8; x++)
+ {
+ *(dest++) = (((src[0x43 | (y << 2)] >> x) & 0x01) << 3) |
+ (((src[0x41 | (y << 2)] >> x) & 0x01) << 2) |
+ (((src[0x42 | (y << 2)] >> x) & 0x01) << 1) |
+ (((src[0x40 | (y << 2)] >> x) & 0x01) << 0);
+ }
+
+ for (unsigned x = 0; x < 8; x++)
+ {
+ *(dest++) = (((src[0x03 | (y << 2)] >> x) & 0x01) << 3) |
+ (((src[0x01 | (y << 2)] >> x) & 0x01) << 2) |
+ (((src[0x02 | (y << 2)] >> x) & 0x01) << 1) |
+ (((src[0x00 | (y << 2)] >> x) & 0x01) << 0);
+ }
+ }
+ }
+
+ return spritegfx_address_mask;
+}
diff --git a/src/mame/old/neogeo_helper.h b/src/mame/old/neogeo_helper.h
new file mode 100644
index 00000000000..00f696dc250
--- /dev/null
+++ b/src/mame/old/neogeo_helper.h
@@ -0,0 +1,4 @@
+// license:BSD-3-Clause
+// copyright-holders:S. Smith,David Haywood
+
+extern uint32_t neogeohelper_optimize_sprite_data(std::vector<uint8_t> &spritegfx, uint8_t* region_sprites, uint32_t region_sprites_size);
diff --git a/src/mame/old/neogeo_intf.cpp b/src/mame/old/neogeo_intf.cpp
new file mode 100644
index 00000000000..30877b11be8
--- /dev/null
+++ b/src/mame/old/neogeo_intf.cpp
@@ -0,0 +1,34 @@
+// license:BSD-3-Clause
+// copyright-holders:S. Smith,David Haywood
+
+#include "emu.h"
+#include "neogeo_intf.h"
+
+//-------------------------------------------------
+// device_neogeo_cart_interface - constructor
+//-------------------------------------------------
+
+device_neogeo_cart_interface::device_neogeo_cart_interface(const machine_config &mconfig, device_t &device)
+ : device_slot_card_interface(mconfig, device),
+ m_sprite_gfx_address_mask(0)
+/*
+m_rom(nullptr),
+m_fixed(nullptr),
+m_sprites(nullptr),
+m_sprites_optimized(nullptr),
+m_audio(nullptr),
+m_ym(nullptr),
+m_ymdelta(nullptr),
+m_audiocrypt(nullptr)
+*/
+{
+}
+
+
+//-------------------------------------------------
+// ~device_neogeo_cart_interface - destructor
+//-------------------------------------------------
+
+device_neogeo_cart_interface::~device_neogeo_cart_interface()
+{
+}
diff --git a/src/mame/old/neogeo_intf.h b/src/mame/old/neogeo_intf.h
new file mode 100644
index 00000000000..bec9f259d36
--- /dev/null
+++ b/src/mame/old/neogeo_intf.h
@@ -0,0 +1,78 @@
+// license:BSD-3-Clause
+// copyright-holders:S. Smith,David Haywood
+
+#ifndef __NEOGEO_INTF_H
+#define __NEOGEO_INTF_H
+
+// ======================> device_neogeo_cart_interface
+
+#define DECRYPT_ALL_PARAMS \
+ uint8_t* cpuregion, uint32_t cpuregion_size,uint8_t* spr_region, uint32_t spr_region_size,uint8_t* fix_region, uint32_t fix_region_size,uint8_t* ym_region, uint32_t ym_region_size,uint8_t* ymdelta_region, uint32_t ymdelta_region_size,uint8_t* audiocpu_region, uint32_t audio_region_size, uint8_t* audiocrypt_region, uint32_t audiocrypt_region_size
+
+#define ACTIVATE_CART_PARAMS \
+ running_machine& machine, cpu_device* maincpu, uint8_t* cpuregion, uint32_t cpuregion_size, uint8_t* fixedregion, uint32_t fixedregion_size
+
+class device_neogeo_cart_interface : public device_slot_card_interface
+{
+public:
+ // construction/destruction
+ device_neogeo_cart_interface(const machine_config &mconfig, device_t &device);
+ virtual ~device_neogeo_cart_interface();
+
+ // reading from ROM
+ virtual DECLARE_READ16_MEMBER(read_rom) { return 0xffff; }
+ virtual void activate_cart(ACTIVATE_CART_PARAMS) { };
+ virtual void decrypt_all(DECRYPT_ALL_PARAMS) { };
+ virtual int get_fixed_bank_type(void) { return 0; }
+
+ void rom_alloc(uint32_t size) { m_rom.resize(size/sizeof(uint16_t)); }
+ uint16_t* get_rom_base() { return &m_rom[0]; }
+ uint32_t get_rom_size() { return m_rom.size()*sizeof(uint16_t); }
+
+ void fixed_alloc(uint32_t size) { m_fixed.resize(size); }
+ uint8_t* get_fixed_base() { return &m_fixed[0]; }
+ uint32_t get_fixed_size() { return m_fixed.size(); }
+
+ void audio_alloc(uint32_t size) { m_audio.resize(size); }
+ uint8_t* get_audio_base() { return &m_audio[0]; }
+ uint32_t get_audio_size() { return m_audio.size(); }
+
+ void audiocrypt_alloc(uint32_t size) { m_audiocrypt.resize(size); }
+ uint8_t* get_audiocrypt_base() { if (m_audiocrypt.size() == 0) return nullptr; else return &m_audiocrypt[0]; }
+ uint32_t get_audiocrypt_size() { return m_audiocrypt.size(); }
+
+ void sprites_alloc(uint32_t size) { m_sprites.resize(size); }
+ uint8_t* get_sprites_base() { return &m_sprites[0]; }
+ uint32_t get_sprites_size() { return m_sprites.size(); }
+ uint8_t* get_sprites_optimized() { return &m_sprites_optimized[0]; }
+ uint32_t get_sprites_addrmask() { return m_sprite_gfx_address_mask; }
+ std::vector<uint8_t>& get_sprites_optimized_arr() { return m_sprites_optimized; }
+
+ void ym_alloc(uint32_t size) { m_ym.resize(size); }
+ uint8_t* get_ym_base() { return &m_ym[0]; }
+ uint32_t get_ym_size() { return m_ym.size(); }
+
+ void ymdelta_alloc(uint32_t size) { m_ymdelta.resize(size); }
+ uint8_t* get_ymdelta_base() { return &m_ymdelta[0]; }
+ uint32_t get_ymdelta_size() { return m_ymdelta.size(); }
+
+ std::vector<uint16_t> m_rom;
+ std::vector<uint8_t> m_fixed;
+ std::vector<uint8_t> m_sprites;
+ std::vector<uint8_t> m_sprites_optimized;
+ std::vector<uint8_t> m_audio;
+ std::vector<uint8_t> m_ym;
+ std::vector<uint8_t> m_ymdelta;
+
+ uint32_t m_sprite_gfx_address_mask;
+
+
+
+protected:
+ // internal state
+ std::vector<uint8_t> m_audiocrypt;
+
+
+};
+
+#endif
diff --git a/src/mame/old/neogeo_slot.cpp b/src/mame/old/neogeo_slot.cpp
new file mode 100644
index 00000000000..5844025bb68
--- /dev/null
+++ b/src/mame/old/neogeo_slot.cpp
@@ -0,0 +1,206 @@
+// license:BSD-3-Clause
+// copyright-holders:S. Smith,David Haywood
+/***********************************************************************************************************
+
+ ***********************************************************************************************************/
+
+
+#include "emu.h"
+#include "neogeo_slot.h"
+
+//**************************************************************************
+// GLOBAL VARIABLES
+//**************************************************************************
+
+const device_type NEOGEO_CART_SLOT = device_creator<neogeo_cart_slot_device>;
+
+
+
+//**************************************************************************
+// LIVE DEVICE
+//**************************************************************************
+
+//-------------------------------------------------
+// neogeo_cart_slot_device - constructor
+//-------------------------------------------------
+neogeo_cart_slot_device::neogeo_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock) :
+ device_t(mconfig, NEOGEO_CART_SLOT, "NeoGeo Cartridge Slot", tag, owner, clock, "neogeo_cart_slot", __FILE__),
+ device_image_interface(mconfig, *this),
+ device_slot_interface(mconfig, *this),
+ m_cart(nullptr)
+{
+}
+
+
+//-------------------------------------------------
+// neogeo_cart_slot_device - destructor
+//-------------------------------------------------
+
+neogeo_cart_slot_device::~neogeo_cart_slot_device()
+{
+}
+
+//-------------------------------------------------
+// device_start - device-specific startup
+//-------------------------------------------------
+
+void neogeo_cart_slot_device::device_start()
+{
+ m_cart = dynamic_cast<device_neogeo_cart_interface *>(get_card_device());
+}
+
+//-------------------------------------------------
+// device_config_complete - perform any
+// operations now that the configuration is
+// complete
+//-------------------------------------------------
+
+
+
+/*-------------------------------------------------
+ call load
+ -------------------------------------------------*/
+
+
+image_init_result neogeo_cart_slot_device::call_load()
+{
+ if (m_cart)
+ {
+ uint16_t *ROM;
+ uint8_t* ROM8;
+ uint32_t len;
+
+ if (software_entry() != nullptr)
+ {
+ // create memory regions
+ len = get_software_region_length("maincpu");
+ m_cart->rom_alloc(len); ROM = m_cart->get_rom_base();
+ memcpy(ROM, get_software_region("maincpu"), len);
+
+ len = get_software_region_length("fixed");
+ m_cart->fixed_alloc(len); ROM8 = m_cart->get_fixed_base();
+ memcpy(ROM8, get_software_region("fixed"), len);
+
+ if (get_software_region("audiocpu") != nullptr)
+ {
+ len = get_software_region_length("audiocpu");
+ m_cart->audio_alloc(len + 0x10000); ROM8 = m_cart->get_audio_base();
+ memcpy(ROM8, get_software_region("audiocpu"), len);
+ memcpy(ROM8 + 0x10000, get_software_region("audiocpu"), len); // avoid reloading in XML, should just improve banking instead tho?
+ }
+
+ len = get_software_region_length("ymsnd");
+ m_cart->ym_alloc(len); ROM8 = m_cart->get_ym_base();
+ memcpy(ROM8, get_software_region("ymsnd"), len);
+
+ if (get_software_region("ymsnd.deltat") != nullptr)
+ {
+ len = get_software_region_length("ymsnd.deltat");
+ m_cart->ymdelta_alloc(len); ROM8 = m_cart->get_ymdelta_base();
+ memcpy(ROM8, get_software_region("ymsnd.deltat"), len);
+ }
+ else
+ {
+ // ensure there is no delta-t region
+ }
+
+
+ len = get_software_region_length("sprites");
+ m_cart->sprites_alloc(len); ROM8 = m_cart->get_sprites_base();
+ memcpy(ROM8, get_software_region("sprites"), len);
+
+ if (get_software_region("audiocrypt") != nullptr) // encrypted Z80 code
+ {
+ len = get_software_region_length("audiocrypt");
+ m_cart->audiocrypt_alloc(len); ROM8 = m_cart->get_audiocrypt_base();
+ memcpy(ROM8, get_software_region("audiocrypt"), len);
+ // allocate the audiocpu region to decrypt data into
+ m_cart->audio_alloc(len + 0x10000);
+ }
+
+ m_cart->decrypt_all(
+ (uint8_t*)m_cart->get_rom_base(), m_cart->get_rom_size(),
+ m_cart->get_sprites_base(), m_cart->get_sprites_size(),
+ m_cart->get_fixed_base(), m_cart->get_fixed_size(),
+ m_cart->get_ym_base(), m_cart->get_ym_size(),
+ m_cart->get_ymdelta_base(), m_cart->get_ymdelta_size(),
+ m_cart->get_audio_base(), m_cart->get_audio_size(),
+ m_cart->get_audiocrypt_base(), m_cart->get_audiocrypt_size());
+
+
+ // create optimized sprite cache
+ m_cart->m_sprite_gfx_address_mask = neogeohelper_optimize_sprite_data(m_cart->get_sprites_optimized_arr(), m_cart->get_sprites_base(), m_cart->get_sprites_size());
+
+
+ return image_init_result::PASS;
+ }
+ }
+
+ return image_init_result::PASS;
+}
+
+void neogeo_cart_slot_device::setup_memory_banks(running_machine &machine)
+{
+ uint16_t* base16 = get_rom_base();
+ uint32_t size = get_rom_size();
+ machine.memory().region_free(":maincpu");
+ machine.memory().region_alloc(":maincpu",size,2, ENDIANNESS_BIG);
+ memcpy(memregion(":maincpu")->base(),(uint8_t*)base16,size);
+
+ uint8_t* base = get_audio_base();
+ size = get_audio_size();
+ machine.memory().region_free(":audiocpu");
+ machine.memory().region_alloc(":audiocpu",size,1, ENDIANNESS_LITTLE);
+ memcpy(memregion(":audiocpu")->base(),base,size);
+
+
+ base = get_ym_base();
+ size = get_ym_size();
+
+ machine.memory().region_free(":ymsnd");
+ machine.memory().region_alloc(":ymsnd",size,1, ENDIANNESS_LITTLE);
+ memcpy(memregion(":ymsnd")->base(),base,size);
+
+
+ base = get_ymdelta_base();
+ size = get_ymdelta_size();
+ machine.memory().region_free(":ymsnd.deltat");
+
+ if(base)
+ {
+ machine.memory().region_alloc(":ymsnd.deltat",size,1, ENDIANNESS_LITTLE);
+ memcpy(memregion(":ymsnd.deltat")->base(),base,size);
+ }
+
+
+}
+
+/*-------------------------------------------------
+ call_unload
+ -------------------------------------------------*/
+
+void neogeo_cart_slot_device::call_unload()
+{
+}
+
+
+/*-------------------------------------------------
+ get default card software
+ -------------------------------------------------*/
+
+std::string neogeo_cart_slot_device::get_default_card_software()
+{
+ return software_get_default_slot("rom");
+}
+
+/*-------------------------------------------------
+ read
+ -------------------------------------------------*/
+
+READ16_MEMBER(neogeo_cart_slot_device::read_rom)
+{
+ if (m_cart)
+ return m_cart->read_rom(space, offset, mem_mask);
+ else
+ return 0xffff;
+}
diff --git a/src/mame/old/neogeo_slot.h b/src/mame/old/neogeo_slot.h
new file mode 100644
index 00000000000..04ba0d657fb
--- /dev/null
+++ b/src/mame/old/neogeo_slot.h
@@ -0,0 +1,86 @@
+// license:BSD-3-Clause
+// copyright-holders:S. Smith,David Haywood
+#ifndef __NEOGEO_SLOT_H
+#define __NEOGEO_SLOT_H
+
+#include "neogeo_intf.h"
+#include "neogeo_helper.h"
+#include "softlist_dev.h"
+
+/***************************************************************************
+ TYPE DEFINITIONS
+ ***************************************************************************/
+
+// ======================> neogeo_cart_slot_device
+
+class neogeo_cart_slot_device : public device_t,
+ public device_image_interface,
+ public device_slot_interface
+{
+public:
+ // construction/destruction
+ neogeo_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock);
+ virtual ~neogeo_cart_slot_device();
+
+ // device-level overrides
+ virtual void device_start() override;
+
+ // image-level overrides
+ virtual image_init_result call_load() override;
+ virtual void call_unload() override;
+ virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
+
+ virtual iodevice_t image_type() const override { return IO_CARTSLOT; }
+ virtual bool is_readable() const override { return 1; }
+ virtual bool is_writeable() const override { return 0; }
+ virtual bool is_creatable() const override { return 0; }
+ virtual bool must_be_loaded() const override { return 0; }
+ virtual bool is_reset_on_load() const override { return 1; }
+ virtual const char *image_interface() const override { return "neo_cart"; }
+ virtual const char *file_extensions() const override { return "bin"; }
+
+ // slot interface overrides
+ virtual std::string get_default_card_software() override;
+
+ // reading and writing
+ virtual DECLARE_READ16_MEMBER(read_rom);
+
+ uint16_t* get_rom_base() { if (m_cart) { return m_cart->get_rom_base(); } else { return nullptr; } }
+ uint32_t get_rom_size() { if (m_cart) { return m_cart->get_rom_size(); } else { return 0; } }
+ uint8_t* get_fixed_base() { if (m_cart) { return m_cart->get_fixed_base(); } else { return nullptr; } }
+ uint32_t get_fixed_size() { if (m_cart) { return m_cart->get_fixed_size(); } else { return 0; } }
+ uint8_t* get_sprites_base() { if (m_cart) { return m_cart->get_sprites_base(); } else { return nullptr; } }
+ uint32_t get_sprites_size() { if (m_cart) { return m_cart->get_sprites_size(); } else { return 0; } }
+ uint8_t* get_sprites_optimized() { if (m_cart) { return m_cart->get_sprites_optimized(); } else { return nullptr; } }
+ uint32_t get_sprites_addrmask() { if (m_cart) { return m_cart->get_sprites_addrmask(); } else { return 0; } }
+ uint8_t* get_audio_base() { if (m_cart) { return m_cart->get_audio_base(); } else { return nullptr; } }
+ uint32_t get_audio_size() { if (m_cart) { return m_cart->get_audio_size(); } else { return 0; } }
+ uint8_t* get_ym_base() { if (m_cart) { return m_cart->get_ym_base(); } else { return nullptr; } }
+ uint32_t get_ym_size() { if (m_cart) { return m_cart->get_ym_size(); } else { return 0; } }
+ uint8_t* get_ymdelta_base() { if (m_cart) { return m_cart->get_ymdelta_base(); } else { return nullptr; } }
+ uint32_t get_ymdelta_size() { if (m_cart) { return m_cart->get_ymdelta_size(); } else { return 0; } }
+ int get_fixed_bank_type(void) { if (m_cart) { return m_cart->get_fixed_bank_type(); } else { return 0; } }
+
+ void activate_cart(ACTIVATE_CART_PARAMS) { if (m_cart) m_cart->activate_cart(machine, maincpu, cpuregion, cpuregion_size, fixedregion, fixedregion_size); }
+ void setup_memory_banks(running_machine &machine);
+
+
+private:
+ device_neogeo_cart_interface* m_cart;
+};
+
+
+// device type definition
+extern const device_type NEOGEO_CART_SLOT;
+
+
+/***************************************************************************
+ DEVICE CONFIGURATION MACROS
+ ***************************************************************************/
+
+#define MCFG_NEOGEO_CARTRIDGE_ADD(_tag,_slot_intf,_def_slot) \
+ MCFG_DEVICE_ADD(_tag, NEOGEO_CART_SLOT, 0) \
+ MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false)
+
+
+#endif
diff --git a/src/mame/old/pcm2_cart.cpp b/src/mame/old/pcm2_cart.cpp
new file mode 100644
index 00000000000..8cd3382a2f8
--- /dev/null
+++ b/src/mame/old/pcm2_cart.cpp
@@ -0,0 +1,135 @@
+// license:BSD-3-Clause
+// copyright-holders:S. Smith,David Haywood
+/***********************************************************************************************************
+
+ NEOGEO ROM cart emulation
+
+ ***********************************************************************************************************/
+
+
+#include "emu.h"
+#include "pcm2_cart.h"
+
+
+//-------------------------------------------------
+// neogeo_pcm2_cart - constructor
+//-------------------------------------------------
+
+const device_type NEOGEO_PCM2_CART = device_creator<neogeo_pcm2_cart>;
+
+
+neogeo_pcm2_cart::neogeo_pcm2_cart(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint16_t clock, const char *shortname, const char *source)
+ : device_t(mconfig, type, name, tag, owner, clock, shortname, source),
+ device_neogeo_cart_interface(mconfig, *this),
+ m_banked_cart(*this, "banked_cart"),
+ m_cmc_prot(*this, "cmc_prot"),
+ m_pcm2_prot(*this, "pcm2_prot")
+{
+}
+
+neogeo_pcm2_cart::neogeo_pcm2_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock)
+ : device_t(mconfig, NEOGEO_PCM2_CART, "NEOGEO PCM2 Cart", tag, owner, clock, "neogeo_rom", __FILE__),
+ device_neogeo_cart_interface(mconfig, *this),
+ m_banked_cart(*this, "banked_cart"),
+ m_cmc_prot(*this, "cmc_prot"),
+ m_pcm2_prot(*this, "pcm2_prot")
+{
+}
+
+
+//-------------------------------------------------
+// mapper specific start/reset
+//-------------------------------------------------
+
+void neogeo_pcm2_cart::device_start()
+{
+}
+
+void neogeo_pcm2_cart::device_reset()
+{
+}
+
+
+/*-------------------------------------------------
+ mapper specific handlers
+ -------------------------------------------------*/
+
+READ16_MEMBER(neogeo_pcm2_cart::read_rom)
+{
+ return m_rom[offset];
+}
+
+static MACHINE_CONFIG_FRAGMENT( pcm2_cart )
+ MCFG_NEOGEO_BANKED_CART_ADD("banked_cart")
+ MCFG_CMC_PROT_ADD("cmc_prot")
+ MCFG_PCM2_PROT_ADD("pcm2_prot")
+MACHINE_CONFIG_END
+
+machine_config_constructor neogeo_pcm2_cart::device_mconfig_additions() const
+{
+ return MACHINE_CONFIG_NAME( pcm2_cart );
+}
+
+
+
+/* Individual cartridge types (mirror DRIVER_INIT functionality) */
+
+/*************************************************
+ MSLUG4
+**************************************************/
+
+const device_type NEOGEO_PCM2_MSLUG4_CART = device_creator<neogeo_pcm2_mslug4_cart>;
+
+neogeo_pcm2_mslug4_cart::neogeo_pcm2_mslug4_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : neogeo_pcm2_cart(mconfig, NEOGEO_PCM2_MSLUG4_CART, "NEOGEO PCM2 mslug4 Cart", tag, owner, clock, "p2_mslug4_cart", __FILE__) {}
+
+void neogeo_pcm2_mslug4_cart::decrypt_all(DECRYPT_ALL_PARAMS)
+{
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size);
+ m_cmc_prot->kof2000_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, MSLUG4_GFX_KEY);
+ m_pcm2_prot->neo_pcm2_snk_1999(ym_region, ym_region_size, 8);
+
+}
+
+
+const device_type NEOGEO_PCM2_MS4PLUS_CART = device_creator<neogeo_pcm2_ms4plus_cart>;
+
+neogeo_pcm2_ms4plus_cart::neogeo_pcm2_ms4plus_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : neogeo_pcm2_cart(mconfig, NEOGEO_PCM2_MS4PLUS_CART, "NEOGEO PCM2 ms4plus Cart", tag, owner, clock, "p2_ms4plus_cart", __FILE__) {}
+
+void neogeo_pcm2_ms4plus_cart::decrypt_all(DECRYPT_ALL_PARAMS)
+{
+ m_cmc_prot->cmc50_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, MSLUG4_GFX_KEY);
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region,audio_region_size);
+ m_pcm2_prot->neo_pcm2_snk_1999(ym_region, ym_region_size, 8);
+}
+
+
+/*************************************************
+ ROTD
+**************************************************/
+
+const device_type NEOGEO_PCM2_ROTD_CART = device_creator<neogeo_pcm2_rotd_cart>;
+
+neogeo_pcm2_rotd_cart::neogeo_pcm2_rotd_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : neogeo_pcm2_cart(mconfig, NEOGEO_PCM2_ROTD_CART, "NEOGEO PCM2 rotd Cart", tag, owner, clock, "p2_rotd_cart", __FILE__) {}
+
+void neogeo_pcm2_rotd_cart::decrypt_all(DECRYPT_ALL_PARAMS)
+{
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size);
+ m_cmc_prot->kof2000_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, ROTD_GFX_KEY);
+ m_pcm2_prot->neo_pcm2_snk_1999(ym_region, ym_region_size, 16);
+
+}
+
+/*************************************************
+ PNYAA
+**************************************************/
+
+const device_type NEOGEO_PCM2_PNYAA_CART = device_creator<neogeo_pcm2_pnyaa_cart>;
+
+neogeo_pcm2_pnyaa_cart::neogeo_pcm2_pnyaa_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : neogeo_pcm2_cart(mconfig, NEOGEO_PCM2_PNYAA_CART, "NEOGEO PCM2 pnyaa Cart", tag, owner, clock, "p2_pnyaa_cart", __FILE__) {}
+
+void neogeo_pcm2_pnyaa_cart::decrypt_all(DECRYPT_ALL_PARAMS)
+{
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size);
+ m_cmc_prot->kof2000_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, PNYAA_GFX_KEY);
+ m_pcm2_prot->neo_pcm2_snk_1999(ym_region, ym_region_size, 4);
+}
diff --git a/src/mame/old/pcm2_cart.h b/src/mame/old/pcm2_cart.h
new file mode 100644
index 00000000000..f52a782a56e
--- /dev/null
+++ b/src/mame/old/pcm2_cart.h
@@ -0,0 +1,98 @@
+// license:BSD-3-Clause
+// copyright-holders:S. Smith,David Haywood
+#ifndef __NEOGEO_PCM2_CART_H
+#define __NEOGEO_PCM2_CART_H
+
+#include "neogeo_slot.h"
+#include "banked_cart.h"
+#include "pcm2_prot.h"
+#include "cmc_prot.h"
+
+// ======================> neogeo_pcm2_cart
+
+class neogeo_pcm2_cart : public device_t,
+ public device_neogeo_cart_interface
+{
+public:
+ // construction/destruction
+ neogeo_pcm2_cart(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint16_t clock, const char *shortname, const char *source);
+ neogeo_pcm2_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock);
+
+ // device-level overrides
+ virtual void device_start() override;
+ virtual void device_reset() override;
+ virtual machine_config_constructor device_mconfig_additions() const override;
+
+ // reading and writing
+ virtual DECLARE_READ16_MEMBER(read_rom) override;
+
+ virtual void activate_cart(ACTIVATE_CART_PARAMS) override { m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size); }
+ virtual void decrypt_all(DECRYPT_ALL_PARAMS) override {}
+ virtual int get_fixed_bank_type(void) override { return 0; }
+
+ required_device<neogeo_banked_cart_device> m_banked_cart;
+ required_device<cmc_prot_device> m_cmc_prot;
+ required_device<pcm2_prot_device> m_pcm2_prot;
+};
+
+
+
+// device type definition
+extern const device_type NEOGEO_PCM2_CART;
+
+
+/*************************************************
+ MSLUG4
+**************************************************/
+
+class neogeo_pcm2_mslug4_cart : public neogeo_pcm2_cart
+{
+public:
+ neogeo_pcm2_mslug4_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
+ virtual int get_fixed_bank_type(void) override { return 1; }
+};
+extern const device_type NEOGEO_PCM2_MSLUG4_CART;
+
+class neogeo_pcm2_ms4plus_cart : public neogeo_pcm2_cart
+{
+public:
+ neogeo_pcm2_ms4plus_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
+ virtual int get_fixed_bank_type(void) override { return 0; }
+};
+extern const device_type NEOGEO_PCM2_MS4PLUS_CART;
+
+
+
+/*************************************************
+ ROTD
+**************************************************/
+
+class neogeo_pcm2_rotd_cart : public neogeo_pcm2_cart
+{
+public:
+ neogeo_pcm2_rotd_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
+ virtual int get_fixed_bank_type(void) override { return 1; }
+};
+extern const device_type NEOGEO_PCM2_ROTD_CART;
+
+
+/*************************************************
+ PNYAA
+**************************************************/
+
+class neogeo_pcm2_pnyaa_cart : public neogeo_pcm2_cart
+{
+public:
+ neogeo_pcm2_pnyaa_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
+ virtual int get_fixed_bank_type(void) override { return 1; }
+};
+extern const device_type NEOGEO_PCM2_PNYAA_CART;
+
+
+
+
+#endif
diff --git a/src/mame/old/pcm2_prot.cpp b/src/mame/old/pcm2_prot.cpp
new file mode 100644
index 00000000000..faeb0187584
--- /dev/null
+++ b/src/mame/old/pcm2_prot.cpp
@@ -0,0 +1,88 @@
+// license:BSD-3-Clause
+// copyright-holders:S. Smith,David Haywood
+
+
+#include "emu.h"
+#include "pcm2_prot.h"
+
+
+
+const device_type PCM2_PROT = device_creator<pcm2_prot_device>;
+
+
+pcm2_prot_device::pcm2_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : device_t(mconfig, PCM2_PROT, "NeoGeo Protection (NEOPCM2)", tag, owner, clock, "pcm2_prot", __FILE__)
+{
+}
+
+
+void pcm2_prot_device::device_start()
+{
+}
+
+void pcm2_prot_device::device_reset()
+{
+}
+
+/***************************************************************************
+
+NeoGeo 'V' (PCM) ROM encryption
+ NEOPCM2 chip
+
+***************************************************************************/
+
+/* Neo-Pcm2 Drivers for Encrypted V Roms */
+void pcm2_prot_device::neo_pcm2_snk_1999(uint8_t* ymrom, uint32_t ymsize, int value)
+{ /* thanks to Elsemi for the NEO-PCM2 info */
+ uint16_t *rom = (uint16_t *)ymrom;
+ int size = ymsize;
+ int i, j;
+
+ if( rom != nullptr )
+ { /* swap address lines on the whole ROMs */
+ std::vector<uint16_t> buffer(value / 2);
+
+ for( i = 0; i < size / 2; i += ( value / 2 ) )
+ {
+ memcpy( &buffer[0], &rom[ i ], value );
+ for( j = 0; j < (value / 2); j++ )
+ {
+ rom[ i + j ] = buffer[ j ^ (value/4) ];
+ }
+ }
+ }
+}
+
+
+/* the later PCM2 games have additional scrambling */
+void pcm2_prot_device::neo_pcm2_swap(uint8_t* ymrom, uint32_t ymsize, int value)
+{
+ static const uint32_t addrs[7][2]={
+ {0x000000,0xa5000},
+ {0xffce20,0x01000},
+ {0xfe2cf6,0x4e001},
+ {0xffac28,0xc2000},
+ {0xfeb2c0,0x0a000},
+ {0xff14ea,0xa7001},
+ {0xffb440,0x02000}};
+ static const uint8_t xordata[7][8]={
+ {0xf9,0xe0,0x5d,0xf3,0xea,0x92,0xbe,0xef},
+ {0xc4,0x83,0xa8,0x5f,0x21,0x27,0x64,0xaf},
+ {0xc3,0xfd,0x81,0xac,0x6d,0xe7,0xbf,0x9e},
+ {0xc3,0xfd,0x81,0xac,0x6d,0xe7,0xbf,0x9e},
+ {0xcb,0x29,0x7d,0x43,0xd2,0x3a,0xc2,0xb4},
+ {0x4b,0xa4,0x63,0x46,0xf0,0x91,0xea,0x62},
+ {0x4b,0xa4,0x63,0x46,0xf0,0x91,0xea,0x62}};
+
+ std::vector<uint8_t> buf(0x1000000);
+ int i, j, d;
+ uint8_t* src = ymrom;
+ memcpy(&buf[0],src,0x1000000);
+ for (i=0;i<0x1000000;i++)
+ {
+ j=BITSWAP24(i,23,22,21,20,19,18,17,0,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,16);
+ j=j^addrs[value][1];
+ d=((i+addrs[value][0])&0xffffff);
+ src[j]=buf[d]^xordata[value][j&0x7];
+ }
+}
diff --git a/src/mame/old/pcm2_prot.h b/src/mame/old/pcm2_prot.h
new file mode 100644
index 00000000000..6d7fe204da5
--- /dev/null
+++ b/src/mame/old/pcm2_prot.h
@@ -0,0 +1,30 @@
+// license:BSD-3-Clause
+// copyright-holders:S. Smith,David Haywood
+
+
+#pragma once
+
+#ifndef __PCM2_PROT__
+#define __PCM2_PROT__
+
+extern const device_type PCM2_PROT;
+
+#define MCFG_PCM2_PROT_ADD(_tag) \
+ MCFG_DEVICE_ADD(_tag, PCM2_PROT, 0)
+
+
+class pcm2_prot_device : public device_t
+{
+public:
+ // construction/destruction
+ pcm2_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
+ void neo_pcm2_snk_1999(uint8_t* ymrom, uint32_t ymsize, int value);
+ void neo_pcm2_swap(uint8_t* ymrom, uint32_t ymsize, int value);
+
+protected:
+ virtual void device_start() override;
+ virtual void device_reset() override;
+};
+
+#endif
diff --git a/src/mame/old/pvc_cart.cpp b/src/mame/old/pvc_cart.cpp
new file mode 100644
index 00000000000..ac8912a8ed8
--- /dev/null
+++ b/src/mame/old/pvc_cart.cpp
@@ -0,0 +1,139 @@
+// license:BSD-3-Clause
+// copyright-holders:S. Smith,David Haywood
+/***********************************************************************************************************
+
+ NEOGEO ROM cart emulation
+
+ ***********************************************************************************************************/
+
+
+#include "emu.h"
+#include "pvc_cart.h"
+
+
+//-------------------------------------------------
+// neogeo_pvc_cart - constructor
+//-------------------------------------------------
+
+const device_type NEOGEO_PVC_CART = device_creator<neogeo_pvc_cart>;
+
+
+neogeo_pvc_cart::neogeo_pvc_cart(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint16_t clock, const char *shortname, const char *source)
+ : device_t(mconfig, type, name, tag, owner, clock, shortname, source),
+ device_neogeo_cart_interface(mconfig, *this),
+ m_banked_cart(*this, "banked_cart"),
+ m_cmc_prot(*this, "cmc_prot"),
+ m_pcm2_prot(*this, "pcm2_prot"),
+ m_pvc_prot(*this, "pvc_prot")
+{
+}
+
+neogeo_pvc_cart::neogeo_pvc_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock)
+ : device_t(mconfig, NEOGEO_PVC_CART, "NEOGEO PCM2 Cart", tag, owner, clock, "neogeo_rom", __FILE__),
+ device_neogeo_cart_interface(mconfig, *this),
+ m_banked_cart(*this, "banked_cart"),
+ m_cmc_prot(*this, "cmc_prot"),
+ m_pcm2_prot(*this, "pcm2_prot"),
+ m_pvc_prot(*this, "pvc_prot")
+{
+}
+
+
+//-------------------------------------------------
+// mapper specific start/reset
+//-------------------------------------------------
+
+void neogeo_pvc_cart::device_start()
+{
+}
+
+void neogeo_pvc_cart::device_reset()
+{
+}
+
+
+/*-------------------------------------------------
+ mapper specific handlers
+ -------------------------------------------------*/
+
+READ16_MEMBER(neogeo_pvc_cart::read_rom)
+{
+ return m_rom[offset];
+}
+
+static MACHINE_CONFIG_FRAGMENT( pvc_cart )
+ MCFG_NEOGEO_BANKED_CART_ADD("banked_cart")
+ MCFG_CMC_PROT_ADD("cmc_prot")
+ MCFG_PCM2_PROT_ADD("pcm2_prot")
+ MCFG_PVC_PROT_ADD("pvc_prot")
+MACHINE_CONFIG_END
+
+machine_config_constructor neogeo_pvc_cart::device_mconfig_additions() const
+{
+ return MACHINE_CONFIG_NAME( pvc_cart );
+}
+
+
+
+/* Individual cartridge types (mirror DRIVER_INIT functionality) */
+
+/*************************************************
+ MSLUG5
+**************************************************/
+
+const device_type NEOGEO_PVC_MSLUG5_CART = device_creator<neogeo_pvc_mslug5_cart>;
+
+neogeo_pvc_mslug5_cart::neogeo_pvc_mslug5_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : neogeo_pvc_cart(mconfig, NEOGEO_PVC_MSLUG5_CART, "NEOGEO PCM2 mslug5 Cart", tag, owner, clock, "p2_mslug5_cart", __FILE__) {}
+
+void neogeo_pvc_mslug5_cart::decrypt_all(DECRYPT_ALL_PARAMS)
+{
+ m_pvc_prot->mslug5_decrypt_68k(cpuregion, cpuregion_size);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 2);
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size);
+ m_cmc_prot->kof2000_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, MSLUG5_GFX_KEY);
+}
+
+/*************************************************
+ SVC
+**************************************************/
+
+const device_type NEOGEO_PVC_SVC_CART = device_creator<neogeo_pvc_svc_cart>;
+
+neogeo_pvc_svc_cart::neogeo_pvc_svc_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : neogeo_pvc_cart(mconfig, NEOGEO_PVC_SVC_CART, "NEOGEO PCM2 svc Cart", tag, owner, clock, "p2_svc_cart", __FILE__) {}
+
+void neogeo_pvc_svc_cart::decrypt_all(DECRYPT_ALL_PARAMS)
+{
+ m_pvc_prot->svc_px_decrypt(cpuregion, cpuregion_size);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 3);
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size);
+ m_cmc_prot->kof2000_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, SVC_GFX_KEY);
+}
+
+
+/*************************************************
+ KOF2003
+**************************************************/
+
+const device_type NEOGEO_PVC_KOF2003_CART = device_creator<neogeo_pvc_kof2003_cart>;
+
+neogeo_pvc_kof2003_cart::neogeo_pvc_kof2003_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : neogeo_pvc_cart(mconfig, NEOGEO_PVC_KOF2003_CART, "NEOGEO PCM2 kof2003 Cart", tag, owner, clock, "p2_kof2003_cart", __FILE__) {}
+
+void neogeo_pvc_kof2003_cart::decrypt_all(DECRYPT_ALL_PARAMS)
+{
+ m_pvc_prot->kof2003_decrypt_68k(cpuregion, cpuregion_size);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 5);
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size);
+ m_cmc_prot->kof2000_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, KOF2003_GFX_KEY);
+}
+
+const device_type NEOGEO_PVC_KOF2003H_CART = device_creator<neogeo_pvc_kof2003h_cart>;
+
+neogeo_pvc_kof2003h_cart::neogeo_pvc_kof2003h_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : neogeo_pvc_cart(mconfig, NEOGEO_PVC_KOF2003H_CART, "NEOGEO PCM2 kof2003h Cart", tag, owner, clock, "p2_kof2003h_cart", __FILE__) {}
+
+void neogeo_pvc_kof2003h_cart::decrypt_all(DECRYPT_ALL_PARAMS)
+{
+ m_pvc_prot->kof2003h_decrypt_68k(cpuregion, cpuregion_size);
+ m_pcm2_prot->neo_pcm2_swap(ym_region, ym_region_size, 5);
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size);
+ m_cmc_prot->kof2000_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, KOF2003_GFX_KEY);
+}
diff --git a/src/mame/old/pvc_cart.h b/src/mame/old/pvc_cart.h
new file mode 100644
index 00000000000..fba0b0f614b
--- /dev/null
+++ b/src/mame/old/pvc_cart.h
@@ -0,0 +1,108 @@
+// license:BSD-3-Clause
+// copyright-holders:S. Smith,David Haywood
+#ifndef __NEOGEO_PVC_CART_H
+#define __NEOGEO_PVC_CART_H
+
+#include "neogeo_slot.h"
+#include "banked_cart.h"
+#include "pcm2_prot.h"
+#include "cmc_prot.h"
+#include "pvc_prot.h"
+
+// ======================> neogeo_pvc_cart
+
+class neogeo_pvc_cart : public device_t,
+ public device_neogeo_cart_interface
+{
+public:
+ // construction/destruction
+ neogeo_pvc_cart(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint16_t clock, const char *shortname, const char *source);
+ neogeo_pvc_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock);
+
+ // device-level overrides
+ virtual void device_start() override;
+ virtual void device_reset() override;
+ virtual machine_config_constructor device_mconfig_additions() const override;
+
+ // reading and writing
+ virtual DECLARE_READ16_MEMBER(read_rom) override;
+
+ virtual void activate_cart(ACTIVATE_CART_PARAMS) override
+ {
+ m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size);
+ m_pvc_prot->install_pvc_protection(maincpu,m_banked_cart);
+ }
+
+ virtual void decrypt_all(DECRYPT_ALL_PARAMS) override {}
+ virtual int get_fixed_bank_type(void) override { return 0; }
+
+ required_device<neogeo_banked_cart_device> m_banked_cart;
+ required_device<cmc_prot_device> m_cmc_prot;
+ required_device<pcm2_prot_device> m_pcm2_prot;
+ required_device<pvc_prot_device> m_pvc_prot;
+
+};
+
+
+
+// device type definition
+extern const device_type NEOGEO_PVC_CART;
+
+
+/*************************************************
+ MSLUG5
+**************************************************/
+
+class neogeo_pvc_mslug5_cart : public neogeo_pvc_cart
+{
+public:
+ neogeo_pvc_mslug5_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
+ virtual int get_fixed_bank_type(void) override { return 1; }
+};
+extern const device_type NEOGEO_PVC_MSLUG5_CART;
+
+/*************************************************
+ SVC
+**************************************************/
+
+class neogeo_pvc_svc_cart : public neogeo_pvc_cart
+{
+public:
+ neogeo_pvc_svc_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
+ virtual int get_fixed_bank_type(void) override { return 2; }
+};
+extern const device_type NEOGEO_PVC_SVC_CART;
+
+
+/*************************************************
+ KOF2003
+**************************************************/
+
+class neogeo_pvc_kof2003_cart : public neogeo_pvc_cart
+{
+public:
+ neogeo_pvc_kof2003_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
+ virtual int get_fixed_bank_type(void) override { return 2; }
+};
+extern const device_type NEOGEO_PVC_KOF2003_CART;
+
+
+/*************************************************
+ KOF2003H
+**************************************************/
+
+class neogeo_pvc_kof2003h_cart : public neogeo_pvc_cart
+{
+public:
+ neogeo_pvc_kof2003h_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
+ virtual int get_fixed_bank_type(void) override { return 2; }
+};
+extern const device_type NEOGEO_PVC_KOF2003H_CART;
+
+
+
+#endif
diff --git a/src/mame/old/pvc_prot.cpp b/src/mame/old/pvc_prot.cpp
new file mode 100644
index 00000000000..f0e2496a338
--- /dev/null
+++ b/src/mame/old/pvc_prot.cpp
@@ -0,0 +1,317 @@
+// license:BSD-3-Clause
+// copyright-holders:S. Smith,David Haywood
+
+
+#include "emu.h"
+#include "pvc_prot.h"
+
+
+
+const device_type PVC_PROT = device_creator<pvc_prot_device>;
+
+
+pvc_prot_device::pvc_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : device_t(mconfig, PVC_PROT, "NeoGeo Protection (PVC)", tag, owner, clock, "pvc_prot", __FILE__),
+ m_bankdev(nullptr)
+{
+}
+
+
+void pvc_prot_device::device_start()
+{
+ save_item(NAME(m_cartridge_ram));
+}
+
+void pvc_prot_device::device_reset()
+{
+}
+
+
+
+
+/************************ PVC Protection ***********************
+ mslug5, svcchaos, kof2003
+***************************************************************/
+
+void pvc_prot_device::pvc_write_unpack_color()
+{
+ uint16_t pen = m_cartridge_ram[0xff0];
+
+ uint8_t b = ((pen & 0x000f) << 1) | ((pen & 0x1000) >> 12);
+ uint8_t g = ((pen & 0x00f0) >> 3) | ((pen & 0x2000) >> 13);
+ uint8_t r = ((pen & 0x0f00) >> 7) | ((pen & 0x4000) >> 14);
+ uint8_t s = (pen & 0x8000) >> 15;
+
+ m_cartridge_ram[0xff1] = (g << 8) | b;
+ m_cartridge_ram[0xff2] = (s << 8) | r;
+}
+
+
+void pvc_prot_device::pvc_write_pack_color()
+{
+ uint16_t gb = m_cartridge_ram[0xff4];
+ uint16_t sr = m_cartridge_ram[0xff5];
+
+ m_cartridge_ram[0xff6] = ((gb & 0x001e) >> 1) |
+ ((gb & 0x1e00) >> 5) |
+ ((sr & 0x001e) << 7) |
+ ((gb & 0x0001) << 12) |
+ ((gb & 0x0100) << 5) |
+ ((sr & 0x0001) << 14) |
+ ((sr & 0x0100) << 7);
+}
+
+
+void pvc_prot_device::pvc_write_bankswitch( address_space &space )
+{
+ uint32_t bankaddress;
+
+ bankaddress = ((m_cartridge_ram[0xff8] >> 8)|(m_cartridge_ram[0xff9] << 8));
+ m_cartridge_ram[0xff8] = (m_cartridge_ram[0xff8] & 0xfe00) | 0x00a0;
+ m_cartridge_ram[0xff9] &= 0x7fff;
+ m_bankdev->neogeo_set_main_cpu_bank_address(bankaddress + 0x100000);
+}
+
+
+READ16_MEMBER( pvc_prot_device::pvc_prot_r )
+{
+ return m_cartridge_ram[offset];
+}
+
+
+WRITE16_MEMBER( pvc_prot_device::pvc_prot_w )
+{
+ COMBINE_DATA(&m_cartridge_ram[offset] );
+ if (offset == 0xff0)
+ pvc_write_unpack_color();
+ else if(offset >= 0xff4 && offset <= 0xff5)
+ pvc_write_pack_color();
+ else if(offset >= 0xff8)
+ pvc_write_bankswitch(space);
+}
+
+
+void pvc_prot_device::install_pvc_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev)
+{
+ m_bankdev = bankdev;
+ maincpu->space(AS_PROGRAM).install_readwrite_handler(0x2fe000, 0x2fffff, read16_delegate(FUNC(pvc_prot_device::pvc_prot_r),this), write16_delegate(FUNC(pvc_prot_device::pvc_prot_w),this));
+}
+
+
+
+
+/* kf2k3pcb, kof2003, kof2003h, mslug5 and svc have updated P rom scramble */
+void pvc_prot_device::mslug5_decrypt_68k(uint8_t* rom, uint32_t size)
+{
+ static const uint8_t xor1[ 0x20 ] = { 0xc2, 0x4b, 0x74, 0xfd, 0x0b, 0x34, 0xeb, 0xd7, 0x10, 0x6d, 0xf9, 0xce, 0x5d, 0xd5, 0x61, 0x29, 0xf5, 0xbe, 0x0d, 0x82, 0x72, 0x45, 0x0f, 0x24, 0xb3, 0x34, 0x1b, 0x99, 0xea, 0x09, 0xf3, 0x03 };
+ static const uint8_t xor2[ 0x20 ] = { 0x36, 0x09, 0xb0, 0x64, 0x95, 0x0f, 0x90, 0x42, 0x6e, 0x0f, 0x30, 0xf6, 0xe5, 0x08, 0x30, 0x64, 0x08, 0x04, 0x00, 0x2f, 0x72, 0x09, 0xa0, 0x13, 0xc9, 0x0b, 0xa0, 0x3e, 0xc2, 0x00, 0x40, 0x2b };
+ int i;
+ int ofst;
+ int rom_size = 0x800000;
+ std::vector<uint8_t> buf( rom_size );
+
+ for( i = 0; i < 0x100000; i++ )
+ {
+ rom[ i ] ^= xor1[ (BYTE_XOR_LE(i) % 0x20) ];
+ }
+ for( i = 0x100000; i < 0x800000; i++ )
+ {
+ rom[ i ] ^= xor2[ (BYTE_XOR_LE(i) % 0x20) ];
+ }
+
+ for( i = 0x100000; i < 0x0800000; i += 4 )
+ {
+ uint16_t rom16;
+ rom16 = rom[BYTE_XOR_LE(i+1)] | rom[BYTE_XOR_LE(i+2)]<<8;
+ rom16 = BITSWAP16( rom16, 15, 14, 13, 12, 10, 11, 8, 9, 6, 7, 4, 5, 3, 2, 1, 0 );
+ rom[BYTE_XOR_LE(i+1)] = rom16&0xff;
+ rom[BYTE_XOR_LE(i+2)] = rom16>>8;
+ }
+ memcpy( &buf[0], rom, rom_size );
+ for( i = 0; i < 0x0100000 / 0x10000; i++ )
+ {
+ ofst = (i & 0xf0) + BITSWAP8( (i & 0x0f), 7, 6, 5, 4, 1, 0, 3, 2 );
+ memcpy( &rom[ i * 0x10000 ], &buf[ ofst * 0x10000 ], 0x10000 );
+ }
+ for( i = 0x100000; i < 0x800000; i += 0x100 )
+ {
+ ofst = (i & 0xf000ff) + ((i & 0x000f00) ^ 0x00700) + (BITSWAP8( ((i & 0x0ff000) >> 12), 5, 4, 7, 6, 1, 0, 3, 2 ) << 12);
+ memcpy( &rom[ i ], &buf[ ofst ], 0x100 );
+ }
+ memcpy( &buf[0], rom, rom_size );
+ memcpy( &rom[ 0x100000 ], &buf[ 0x700000 ], 0x100000 );
+ memcpy( &rom[ 0x200000 ], &buf[ 0x100000 ], 0x600000 );
+}
+
+
+void pvc_prot_device::svc_px_decrypt(uint8_t* rom, uint32_t size)
+{
+ static const uint8_t xor1[ 0x20 ] = { 0x3b, 0x6a, 0xf7, 0xb7, 0xe8, 0xa9, 0x20, 0x99, 0x9f, 0x39, 0x34, 0x0c, 0xc3, 0x9a, 0xa5, 0xc8, 0xb8, 0x18, 0xce, 0x56, 0x94, 0x44, 0xe3, 0x7a, 0xf7, 0xdd, 0x42, 0xf0, 0x18, 0x60, 0x92, 0x9f };
+ static const uint8_t xor2[ 0x20 ] = { 0x69, 0x0b, 0x60, 0xd6, 0x4f, 0x01, 0x40, 0x1a, 0x9f, 0x0b, 0xf0, 0x75, 0x58, 0x0e, 0x60, 0xb4, 0x14, 0x04, 0x20, 0xe4, 0xb9, 0x0d, 0x10, 0x89, 0xeb, 0x07, 0x30, 0x90, 0x50, 0x0e, 0x20, 0x26 };
+ int i;
+ int ofst;
+ int rom_size = 0x800000;
+ std::vector<uint8_t> buf( rom_size );
+
+ for( i = 0; i < 0x100000; i++ )
+ {
+ rom[ i ] ^= xor1[ (BYTE_XOR_LE(i) % 0x20) ];
+ }
+ for( i = 0x100000; i < 0x800000; i++ )
+ {
+ rom[ i ] ^= xor2[ (BYTE_XOR_LE(i) % 0x20) ];
+ }
+
+ for( i = 0x100000; i < 0x0800000; i += 4 )
+ {
+ uint16_t rom16;
+ rom16 = rom[BYTE_XOR_LE(i+1)] | rom[BYTE_XOR_LE(i+2)]<<8;
+ rom16 = BITSWAP16( rom16, 15, 14, 13, 12, 10, 11, 8, 9, 6, 7, 4, 5, 3, 2, 1, 0 );
+ rom[BYTE_XOR_LE(i+1)] = rom16&0xff;
+ rom[BYTE_XOR_LE(i+2)] = rom16>>8;
+ }
+ memcpy( &buf[0], rom, rom_size );
+ for( i = 0; i < 0x0100000 / 0x10000; i++ )
+ {
+ ofst = (i & 0xf0) + BITSWAP8( (i & 0x0f), 7, 6, 5, 4, 2, 3, 0, 1 );
+ memcpy( &rom[ i * 0x10000 ], &buf[ ofst * 0x10000 ], 0x10000 );
+ }
+ for( i = 0x100000; i < 0x800000; i += 0x100 )
+ {
+ ofst = (i & 0xf000ff) + ((i & 0x000f00) ^ 0x00a00) + (BITSWAP8( ((i & 0x0ff000) >> 12), 4, 5, 6, 7, 1, 0, 3, 2 ) << 12);
+ memcpy( &rom[ i ], &buf[ ofst ], 0x100 );
+ }
+ memcpy( &buf[0], rom, rom_size );
+ memcpy( &rom[ 0x100000 ], &buf[ 0x700000 ], 0x100000 );
+ memcpy( &rom[ 0x200000 ], &buf[ 0x100000 ], 0x600000 );
+}
+
+
+void pvc_prot_device::kf2k3pcb_decrypt_68k(uint8_t* rom, uint32_t size)
+{
+ static const uint8_t xor2[ 0x20 ] = { 0xb4, 0x0f, 0x40, 0x6c, 0x38, 0x07, 0xd0, 0x3f, 0x53, 0x08, 0x80, 0xaa, 0xbe, 0x07, 0xc0, 0xfa, 0xd0, 0x08, 0x10, 0xd2, 0xf1, 0x03, 0x70, 0x7e, 0x87, 0x0b, 0x40, 0xf6, 0x2a, 0x0a, 0xe0, 0xf9 };
+ int i;
+ int ofst;
+ int rom_size = 0x900000;
+ std::vector<uint8_t> buf( rom_size );
+
+ for (i = 0; i < 0x100000; i++)
+ {
+ rom[ 0x800000 + i ] ^= rom[ 0x100002 | i ];
+ }
+ for( i = 0x100000; i < 0x800000; i++ )
+ {
+ rom[ i ] ^= xor2[ (BYTE_XOR_LE(i) % 0x20) ];
+ }
+ for( i = 0x100000; i < 0x800000; i += 4 )
+ {
+ uint16_t rom16;
+ rom16 = rom[BYTE_XOR_LE(i+1)] | rom[BYTE_XOR_LE(i+2)]<<8;
+ rom16 = BITSWAP16( rom16, 15, 14, 13, 12, 4, 5, 6, 7, 8, 9, 10, 11, 3, 2, 1, 0 );
+ rom[BYTE_XOR_LE(i+1)] = rom16&0xff;
+ rom[BYTE_XOR_LE(i+2)] = rom16>>8;
+ }
+ for( i = 0; i < 0x0100000 / 0x10000; i++ )
+ {
+ ofst = (i & 0xf0) + BITSWAP8( (i & 0x0f), 7, 6, 5, 4, 1, 0, 3, 2 );
+ memcpy( &buf[ i * 0x10000 ], &rom[ ofst * 0x10000 ], 0x10000 );
+ }
+ for( i = 0x100000; i < 0x900000; i += 0x100 )
+ {
+ ofst = (i & 0xf000ff) + ((i & 0x000f00) ^ 0x00300) + (BITSWAP8( ((i & 0x0ff000) >> 12), 4, 5, 6, 7, 1, 0, 3, 2 ) << 12);
+ memcpy( &buf[ i ], &rom[ ofst ], 0x100 );
+ }
+ memcpy (&rom[0x000000], &buf[0x000000], 0x100000);
+ memcpy (&rom[0x100000], &buf[0x800000], 0x100000);
+ memcpy (&rom[0x200000], &buf[0x100000], 0x700000);
+}
+
+
+void pvc_prot_device::kof2003_decrypt_68k(uint8_t* rom, uint32_t size)
+{
+ static const uint8_t xor1[0x20] = { 0x3b, 0x6a, 0xf7, 0xb7, 0xe8, 0xa9, 0x20, 0x99, 0x9f, 0x39, 0x34, 0x0c, 0xc3, 0x9a, 0xa5, 0xc8, 0xb8, 0x18, 0xce, 0x56, 0x94, 0x44, 0xe3, 0x7a, 0xf7, 0xdd, 0x42, 0xf0, 0x18, 0x60, 0x92, 0x9f };
+ static const uint8_t xor2[0x20] = { 0x2f, 0x02, 0x60, 0xbb, 0x77, 0x01, 0x30, 0x08, 0xd8, 0x01, 0xa0, 0xdf, 0x37, 0x0a, 0xf0, 0x65, 0x28, 0x03, 0xd0, 0x23, 0xd3, 0x03, 0x70, 0x42, 0xbb, 0x06, 0xf0, 0x28, 0xba, 0x0f, 0xf0, 0x7a };
+ int i;
+ int ofst;
+ int rom_size = 0x900000;
+ std::vector<uint8_t> buf( rom_size );
+
+ for (i = 0; i < 0x100000; i++)
+ {
+ rom[ 0x800000 + i ] ^= rom[ 0x100002 | i ];
+ }
+ for( i = 0; i < 0x100000; i++)
+ {
+ rom[ i ] ^= xor1[ (BYTE_XOR_LE(i) % 0x20) ];
+ }
+ for( i = 0x100000; i < 0x800000; i++)
+ {
+ rom[ i ] ^= xor2[ (BYTE_XOR_LE(i) % 0x20) ];
+ }
+ for( i = 0x100000; i < 0x800000; i += 4)
+ {
+ uint16_t rom16;
+ rom16 = rom[BYTE_XOR_LE(i+1)] | rom[BYTE_XOR_LE(i+2)]<<8;
+ rom16 = BITSWAP16( rom16, 15, 14, 13, 12, 5, 4, 7, 6, 9, 8, 11, 10, 3, 2, 1, 0 );
+ rom[BYTE_XOR_LE(i+1)] = rom16&0xff;
+ rom[BYTE_XOR_LE(i+2)] = rom16>>8;
+ }
+ for( i = 0; i < 0x0100000 / 0x10000; i++ )
+ {
+ ofst = (i & 0xf0) + BITSWAP8((i & 0x0f), 7, 6, 5, 4, 0, 1, 2, 3);
+ memcpy( &buf[ i * 0x10000 ], &rom[ ofst * 0x10000 ], 0x10000 );
+ }
+ for( i = 0x100000; i < 0x900000; i += 0x100)
+ {
+ ofst = (i & 0xf000ff) + ((i & 0x000f00) ^ 0x00800) + (BITSWAP8( ((i & 0x0ff000) >> 12), 4, 5, 6, 7, 1, 0, 3, 2 ) << 12);
+ memcpy( &buf[ i ], &rom[ ofst ], 0x100 );
+ }
+ memcpy (&rom[0x000000], &buf[0x000000], 0x100000);
+ memcpy (&rom[0x100000], &buf[0x800000], 0x100000);
+ memcpy (&rom[0x200000], &buf[0x100000], 0x700000);
+}
+
+
+void pvc_prot_device::kof2003h_decrypt_68k(uint8_t* rom, uint32_t size)
+{
+ static const uint8_t xor1[0x20] = { 0xc2, 0x4b, 0x74, 0xfd, 0x0b, 0x34, 0xeb, 0xd7, 0x10, 0x6d, 0xf9, 0xce, 0x5d, 0xd5, 0x61, 0x29, 0xf5, 0xbe, 0x0d, 0x82, 0x72, 0x45, 0x0f, 0x24, 0xb3, 0x34, 0x1b, 0x99, 0xea, 0x09, 0xf3, 0x03 };
+ static const uint8_t xor2[0x20] = { 0x2b, 0x09, 0xd0, 0x7f, 0x51, 0x0b, 0x10, 0x4c, 0x5b, 0x07, 0x70, 0x9d, 0x3e, 0x0b, 0xb0, 0xb6, 0x54, 0x09, 0xe0, 0xcc, 0x3d, 0x0d, 0x80, 0x99, 0x87, 0x03, 0x90, 0x82, 0xfe, 0x04, 0x20, 0x18 };
+ int i;
+ int ofst;
+ int rom_size = 0x900000;
+ std::vector<uint8_t> buf( rom_size );
+
+ for (i = 0; i < 0x100000; i++)
+ {
+ rom[ 0x800000 + i ] ^= rom[ 0x100002 | i ];
+ }
+ for( i = 0; i < 0x100000; i++)
+ {
+ rom[ i ] ^= xor1[ (BYTE_XOR_LE(i) % 0x20) ];
+ }
+ for( i = 0x100000; i < 0x800000; i++)
+ {
+ rom[ i ] ^= xor2[ (BYTE_XOR_LE(i) % 0x20) ];
+ }
+ for( i = 0x100000; i < 0x800000; i += 4)
+ {
+ uint16_t rom16;
+ rom16 = rom[BYTE_XOR_LE(i+1)] | rom[BYTE_XOR_LE(i+2)]<<8;
+ rom16 = BITSWAP16( rom16, 15, 14, 13, 12, 10, 11, 8, 9, 6, 7, 4, 5, 3, 2, 1, 0 );
+ rom[BYTE_XOR_LE(i+1)] = rom16&0xff;
+ rom[BYTE_XOR_LE(i+2)] = rom16>>8;
+ }
+ for( i = 0; i < 0x0100000 / 0x10000; i++ )
+ {
+ ofst = (i & 0xf0) + BITSWAP8((i & 0x0f), 7, 6, 5, 4, 1, 0, 3, 2);
+ memcpy( &buf[ i * 0x10000 ], &rom[ ofst * 0x10000 ], 0x10000 );
+ }
+ for( i = 0x100000; i < 0x900000; i += 0x100)
+ {
+ ofst = (i & 0xf000ff) + ((i & 0x000f00) ^ 0x00400) + (BITSWAP8( ((i & 0x0ff000) >> 12), 6, 7, 4, 5, 0, 1, 2, 3 ) << 12);
+ memcpy( &buf[ i ], &rom[ ofst ], 0x100 );
+ }
+ memcpy (&rom[0x000000], &buf[0x000000], 0x100000);
+ memcpy (&rom[0x100000], &buf[0x800000], 0x100000);
+ memcpy (&rom[0x200000], &buf[0x100000], 0x700000);
+}
diff --git a/src/mame/old/pvc_prot.h b/src/mame/old/pvc_prot.h
new file mode 100644
index 00000000000..cdd1969881f
--- /dev/null
+++ b/src/mame/old/pvc_prot.h
@@ -0,0 +1,44 @@
+// license:BSD-3-Clause
+// copyright-holders:S. Smith,David Haywood
+
+#pragma once
+
+#include "banked_cart.h"
+
+#ifndef __PVC_PROT__
+#define __PVC_PROT__
+
+extern const device_type PVC_PROT;
+
+#define MCFG_PVC_PROT_ADD(_tag) \
+ MCFG_DEVICE_ADD(_tag, PVC_PROT, 0)
+
+
+class pvc_prot_device : public device_t
+{
+public:
+ // construction/destruction
+ pvc_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
+ void pvc_write_unpack_color();
+ void pvc_write_pack_color();
+ void pvc_write_bankswitch(address_space &space);
+ DECLARE_READ16_MEMBER(pvc_prot_r);
+ DECLARE_WRITE16_MEMBER(pvc_prot_w);
+ void install_pvc_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev);
+ neogeo_banked_cart_device* m_bankdev;
+
+ uint16_t m_cartridge_ram[0x1000];
+
+ void mslug5_decrypt_68k(uint8_t* rom, uint32_t size);
+ void svc_px_decrypt(uint8_t* rom, uint32_t size);
+ void kf2k3pcb_decrypt_68k(uint8_t* rom, uint32_t size);
+ void kof2003_decrypt_68k(uint8_t* rom, uint32_t size);
+ void kof2003h_decrypt_68k(uint8_t* rom, uint32_t size);
+
+protected:
+ virtual void device_start() override;
+ virtual void device_reset() override;
+};
+
+#endif
diff --git a/src/mame/old/rom.cpp b/src/mame/old/rom.cpp
new file mode 100644
index 00000000000..28da3f8a884
--- /dev/null
+++ b/src/mame/old/rom.cpp
@@ -0,0 +1,70 @@
+// license:BSD-3-Clause
+// copyright-holders:S. Smith,David Haywood
+/***********************************************************************************************************
+
+ NEOGEO ROM cart emulation
+
+ ***********************************************************************************************************/
+
+
+#include "emu.h"
+#include "rom.h"
+
+
+//-------------------------------------------------
+// neogeo_rom_device - constructor
+//-------------------------------------------------
+
+const device_type NEOGEO_ROM = device_creator<neogeo_rom_device>;
+
+
+neogeo_rom_device::neogeo_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint16_t clock, const char *shortname, const char *source)
+ : device_t(mconfig, type, name, tag, owner, clock, shortname, source),
+ device_neogeo_cart_interface( mconfig, *this ),
+ m_banked_cart(*this, "banked_cart")
+{
+}
+
+neogeo_rom_device::neogeo_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock)
+ : device_t(mconfig, NEOGEO_ROM, "NEOGEO ROM Carts", tag, owner, clock, "neogeo_rom", __FILE__),
+ device_neogeo_cart_interface( mconfig, *this ),
+ m_banked_cart(*this, "banked_cart")
+{
+}
+
+
+//-------------------------------------------------
+// mapper specific start/reset
+//-------------------------------------------------
+
+void neogeo_rom_device::device_start()
+{
+}
+
+void neogeo_rom_device::device_reset()
+{
+}
+
+
+/*-------------------------------------------------
+ mapper specific handlers
+ -------------------------------------------------*/
+
+READ16_MEMBER(neogeo_rom_device::read_rom)
+{
+ return m_rom[offset];
+}
+
+static MACHINE_CONFIG_FRAGMENT( banked_cart )
+ MCFG_NEOGEO_BANKED_CART_ADD("banked_cart")
+MACHINE_CONFIG_END
+
+machine_config_constructor neogeo_rom_device::device_mconfig_additions() const
+{
+ return MACHINE_CONFIG_NAME( banked_cart );
+}
+
+void neogeo_rom_device::activate_cart(ACTIVATE_CART_PARAMS)
+{
+ m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size);
+}
diff --git a/src/mame/old/rom.h b/src/mame/old/rom.h
new file mode 100644
index 00000000000..df10669f9ee
--- /dev/null
+++ b/src/mame/old/rom.h
@@ -0,0 +1,38 @@
+// license:BSD-3-Clause
+// copyright-holders:S. Smith,David Haywood
+#ifndef __NEOGEO_ROM_H
+#define __NEOGEO_ROM_H
+
+#include "neogeo_slot.h"
+#include "banked_cart.h"
+
+// ======================> neogeo_rom_device
+
+class neogeo_rom_device : public device_t,
+ public device_neogeo_cart_interface
+{
+public:
+ // construction/destruction
+ neogeo_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint16_t clock, const char *shortname, const char *source);
+ neogeo_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock);
+
+ // device-level overrides
+ virtual void device_start() override;
+ virtual void device_reset() override;
+ virtual machine_config_constructor device_mconfig_additions() const override;
+
+ // reading and writing
+ virtual DECLARE_READ16_MEMBER(read_rom) override;
+
+ virtual void activate_cart(ACTIVATE_CART_PARAMS) override;
+
+ required_device<neogeo_banked_cart_device> m_banked_cart;
+};
+
+
+
+// device type definition
+extern const device_type NEOGEO_ROM;
+
+
+#endif
diff --git a/src/mame/old/sbp_prot.cpp b/src/mame/old/sbp_prot.cpp
new file mode 100644
index 00000000000..1f044c64fda
--- /dev/null
+++ b/src/mame/old/sbp_prot.cpp
@@ -0,0 +1,87 @@
+// license:BSD-3-Clause
+// copyright-holders:S. Smith,David Haywood
+
+
+#include "emu.h"
+#include "sbp_prot.h"
+
+
+
+const device_type SBP_PROT = device_creator<sbp_prot_device>;
+
+
+sbp_prot_device::sbp_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : device_t(mconfig, SBP_PROT, "NeoGeo Protection (Super Bubble Pop)", tag, owner, clock, "sbp_prot", __FILE__),
+ m_mainrom(nullptr)
+{
+}
+
+
+void sbp_prot_device::device_start()
+{
+}
+
+void sbp_prot_device::device_reset()
+{
+}
+
+
+
+READ16_MEMBER( sbp_prot_device::sbp_lowerrom_r )
+{
+ uint16_t* rom = (uint16_t*)m_mainrom;
+ uint16_t origdata = rom[(offset+(0x200/2))];
+ uint16_t data = BITSWAP16(origdata, 11,10,9,8,15,14,13,12,3,2,1,0,7,6,5,4);
+ int realoffset = 0x200+(offset*2);
+ logerror("sbp_lowerrom_r offset %08x data %04x\n", realoffset, data );
+
+ // there is actually data in the rom here already, maybe we should just return it 'as is'
+ if (realoffset==0xd5e) return origdata;
+
+ return data;
+}
+
+WRITE16_MEMBER( sbp_prot_device::sbp_lowerrom_w )
+{
+ int realoffset = 0x200+(offset*2);
+
+ // the actual data written is just pulled from the end of the rom, and unused space
+ // maybe this is just some kind of watchdog for the protection device and it doesn't
+ // matter?
+ if (realoffset == 0x1080)
+ {
+ if (data==0x4e75)
+ {
+ return;
+ }
+ else if (data==0xffff)
+ {
+ return;
+ }
+ }
+
+ printf("sbp_lowerrom_w offset %08x data %04x\n", realoffset, data );
+}
+
+
+void sbp_prot_device::sbp_install_protection(cpu_device* maincpu, uint8_t* cpurom, uint32_t cpurom_size)
+{
+ m_mainrom = cpurom;
+
+ // there seems to be a protection device living around here..
+ // if you nibble swap the data in the rom the game will boot
+ // there are also writes to 0x1080..
+ //
+ // other stuff going on as well tho, the main overlay is still missing, and p1 inputs don't work
+ maincpu->space(AS_PROGRAM).install_read_handler(0x00200, 0x001fff, read16_delegate(FUNC(sbp_prot_device::sbp_lowerrom_r), this));
+ maincpu->space(AS_PROGRAM).install_write_handler(0x00200, 0x001fff, write16_delegate(FUNC(sbp_prot_device::sbp_lowerrom_w), this));
+
+ /* the game code clears the text overlay used ingame immediately after writing it.. why? protection? sloppy code that the hw ignores? imperfect emulation? */
+ {
+ uint16_t* rom = (uint16_t*)cpurom;
+
+ rom[0x2a6f8 / 2] = 0x4e71;
+ rom[0x2a6fa / 2] = 0x4e71;
+ rom[0x2a6fc / 2] = 0x4e71;
+ }
+}
diff --git a/src/mame/old/sbp_prot.h b/src/mame/old/sbp_prot.h
new file mode 100644
index 00000000000..b6cc469b71c
--- /dev/null
+++ b/src/mame/old/sbp_prot.h
@@ -0,0 +1,34 @@
+// license:BSD-3-Clause
+// copyright-holders:S. Smith,David Haywood
+
+
+#pragma once
+
+#ifndef __SBP_PROT__
+#define __SBP_PROT__
+
+extern const device_type SBP_PROT;
+
+#define MCFG_SBP_PROT_ADD(_tag) \
+ MCFG_DEVICE_ADD(_tag, SBP_PROT, 0)
+
+
+class sbp_prot_device : public device_t
+{
+public:
+ // construction/destruction
+ sbp_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
+
+ uint8_t* m_mainrom;
+
+ void sbp_install_protection(cpu_device* maincpu, uint8_t* cpurom, uint32_t cpurom_size);
+ DECLARE_WRITE16_MEMBER(sbp_lowerrom_w);
+ DECLARE_READ16_MEMBER(sbp_lowerrom_r);
+
+protected:
+ virtual void device_start() override;
+ virtual void device_reset() override;
+};
+
+#endif
diff --git a/src/mame/old/sma_cart.cpp b/src/mame/old/sma_cart.cpp
new file mode 100644
index 00000000000..a4f99a55ca8
--- /dev/null
+++ b/src/mame/old/sma_cart.cpp
@@ -0,0 +1,177 @@
+// license:BSD-3-Clause
+// copyright-holders:S. Smith,David Haywood
+/***********************************************************************************************************
+
+ NEOGEO ROM cart emulation
+
+ ***********************************************************************************************************/
+
+
+#include "emu.h"
+#include "sma_cart.h"
+
+
+//-------------------------------------------------
+// neogeo_sma_cart - constructor
+//-------------------------------------------------
+
+const device_type NEOGEO_SMA_CART = device_creator<neogeo_sma_cart>;
+
+
+neogeo_sma_cart::neogeo_sma_cart(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint16_t clock, const char *shortname, const char *source)
+ : device_t(mconfig, type, name, tag, owner, clock, shortname, source),
+ device_neogeo_cart_interface(mconfig, *this),
+ m_banked_cart(*this, "banked_cart"),
+ m_sma_prot(*this, "sma_prot"),
+ m_cmc_prot(*this, "cmc_prot")
+
+{
+}
+
+neogeo_sma_cart::neogeo_sma_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock)
+ : device_t(mconfig, NEOGEO_SMA_CART, "NEOGEO SMA Cart", tag, owner, clock, "neogeo_rom", __FILE__),
+ device_neogeo_cart_interface(mconfig, *this),
+ m_banked_cart(*this, "banked_cart"),
+ m_sma_prot(*this, "sma_prot"),
+ m_cmc_prot(*this, "cmc_prot")
+{
+}
+
+
+//-------------------------------------------------
+// mapper specific start/reset
+//-------------------------------------------------
+
+void neogeo_sma_cart::device_start()
+{
+}
+
+void neogeo_sma_cart::device_reset()
+{
+}
+
+
+/*-------------------------------------------------
+ mapper specific handlers
+ -------------------------------------------------*/
+
+READ16_MEMBER(neogeo_sma_cart::read_rom)
+{
+ return m_rom[offset];
+}
+
+static MACHINE_CONFIG_FRAGMENT( sma_cart )
+ MCFG_NEOGEO_BANKED_CART_ADD("banked_cart")
+ MCFG_SMA_PROT_ADD("sma_prot")
+ MCFG_CMC_PROT_ADD("cmc_prot")
+MACHINE_CONFIG_END
+
+machine_config_constructor neogeo_sma_cart::device_mconfig_additions() const
+{
+ return MACHINE_CONFIG_NAME( sma_cart );
+}
+
+
+
+/* Individual cartridge types (mirror DRIVER_INIT functionality) */
+
+/*************************************************
+ KOF 99
+**************************************************/
+
+const device_type NEOGEO_SMA_KOF99_CART = device_creator<neogeo_sma_kof99_cart>;
+
+neogeo_sma_kof99_cart::neogeo_sma_kof99_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : neogeo_sma_cart(mconfig, NEOGEO_SMA_KOF99_CART, "NEOGEO SMA Kof99 Cart", tag, owner, clock, "sma_kof99_cart", __FILE__) {}
+
+void neogeo_sma_kof99_cart::decrypt_all(DECRYPT_ALL_PARAMS)
+{
+ m_sma_prot->kof99_decrypt_68k(cpuregion);
+ m_cmc_prot->kof99_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, KOF99_GFX_KEY);
+}
+
+void neogeo_sma_kof99_cart::activate_cart(ACTIVATE_CART_PARAMS)
+{
+ m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size);
+ m_sma_prot->kof99_install_protection(maincpu, m_banked_cart);
+}
+
+
+
+
+/*************************************************
+ Garou
+**************************************************/
+
+const device_type NEOGEO_SMA_GAROU_CART = device_creator<neogeo_sma_garou_cart>;
+
+neogeo_sma_garou_cart::neogeo_sma_garou_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : neogeo_sma_cart(mconfig, NEOGEO_SMA_GAROU_CART, "NEOGEO SMA Garou Cart", tag, owner, clock, "sma_garou_cart", __FILE__) {}
+
+void neogeo_sma_garou_cart::decrypt_all(DECRYPT_ALL_PARAMS)
+{
+ m_sma_prot->garou_decrypt_68k(cpuregion);
+ m_cmc_prot->kof99_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, GAROU_GFX_KEY);
+}
+
+void neogeo_sma_garou_cart::activate_cart(ACTIVATE_CART_PARAMS)
+{
+ m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size);
+ m_sma_prot->garou_install_protection(maincpu, m_banked_cart);
+}
+
+const device_type NEOGEO_SMA_GAROUH_CART = device_creator<neogeo_sma_garouh_cart>;
+
+neogeo_sma_garouh_cart::neogeo_sma_garouh_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : neogeo_sma_cart(mconfig, NEOGEO_SMA_GAROU_CART, "NEOGEO SMA Garou (alt) Cart", tag, owner, clock, "sma_garouh_cart", __FILE__) {}
+
+void neogeo_sma_garouh_cart::decrypt_all(DECRYPT_ALL_PARAMS)
+{
+ m_sma_prot->garouh_decrypt_68k(cpuregion);
+ m_cmc_prot->kof99_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, GAROU_GFX_KEY);
+}
+
+void neogeo_sma_garouh_cart::activate_cart(ACTIVATE_CART_PARAMS)
+{
+ m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size);
+ m_sma_prot->garouh_install_protection(maincpu, m_banked_cart);
+}
+
+
+/*************************************************
+ Metal Slug 3
+**************************************************/
+
+const device_type NEOGEO_SMA_MSLUG3_CART = device_creator<neogeo_sma_mslug3_cart>;
+
+neogeo_sma_mslug3_cart::neogeo_sma_mslug3_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : neogeo_sma_cart(mconfig, NEOGEO_SMA_MSLUG3_CART, "NEOGEO SMA Mslug3 Cart", tag, owner, clock, "sma_mslug3_cart", __FILE__) {}
+
+void neogeo_sma_mslug3_cart::decrypt_all(DECRYPT_ALL_PARAMS)
+{
+ m_sma_prot->mslug3_decrypt_68k(cpuregion);
+ m_cmc_prot->kof99_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, MSLUG3_GFX_KEY);
+}
+
+void neogeo_sma_mslug3_cart::activate_cart(ACTIVATE_CART_PARAMS)
+{
+ m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size);
+ m_sma_prot->mslug3_install_protection(maincpu, m_banked_cart);
+}
+
+/*************************************************
+ KOF2000
+**************************************************/
+
+const device_type NEOGEO_SMA_KOF2000_CART = device_creator<neogeo_sma_kof2000_cart>;
+
+neogeo_sma_kof2000_cart::neogeo_sma_kof2000_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : neogeo_sma_cart(mconfig, NEOGEO_SMA_KOF2000_CART, "NEOGEO SMA KOF2000 Cart", tag, owner, clock, "sma_kof2000_cart", __FILE__) {}
+
+void neogeo_sma_kof2000_cart::decrypt_all(DECRYPT_ALL_PARAMS)
+{
+ m_sma_prot->kof2000_decrypt_68k(cpuregion);
+ m_cmc_prot->neogeo_cmc50_m1_decrypt(audiocrypt_region, audiocrypt_region_size, audiocpu_region, audio_region_size);
+ m_cmc_prot->kof2000_neogeo_gfx_decrypt(spr_region, spr_region_size, fix_region, fix_region_size, KOF2000_GFX_KEY);
+}
+
+void neogeo_sma_kof2000_cart::activate_cart(ACTIVATE_CART_PARAMS)
+{
+ m_banked_cart->install_banks(machine, maincpu, cpuregion, cpuregion_size);
+ m_sma_prot->kof2000_install_protection(maincpu, m_banked_cart);
+}
diff --git a/src/mame/old/sma_cart.h b/src/mame/old/sma_cart.h
new file mode 100644
index 00000000000..5d0fe8976eb
--- /dev/null
+++ b/src/mame/old/sma_cart.h
@@ -0,0 +1,112 @@
+// license:BSD-3-Clause
+// copyright-holders:S. Smith,David Haywood
+#ifndef __NEOGEO_SMA_CART_H
+#define __NEOGEO_SMA_CART_H
+
+#include "neogeo_slot.h"
+#include "banked_cart.h"
+#include "sma_prot.h"
+#include "cmc_prot.h"
+
+// ======================> neogeo_sma_cart
+
+class neogeo_sma_cart : public device_t,
+ public device_neogeo_cart_interface
+{
+public:
+ // construction/destruction
+ neogeo_sma_cart(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint16_t clock, const char *shortname, const char *source);
+ neogeo_sma_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint16_t clock);
+
+ // device-level overrides
+ virtual void device_start() override;
+ virtual void device_reset() override;
+ virtual machine_config_constructor device_mconfig_additions() const override;
+
+ // reading and writing
+ virtual DECLARE_READ16_MEMBER(read_rom) override;
+
+ virtual void activate_cart(ACTIVATE_CART_PARAMS) override {}
+ virtual void decrypt_all(DECRYPT_ALL_PARAMS) override {}
+ virtual int get_fixed_bank_type(void) override { return 0; }
+
+ required_device<neogeo_banked_cart_device> m_banked_cart;
+ required_device<sma_prot_device> m_sma_prot;
+ required_device<cmc_prot_device> m_cmc_prot;
+};
+
+
+
+// device type definition
+extern const device_type NEOGEO_SMA_CART;
+
+
+/*************************************************
+ KOF 99
+**************************************************/
+
+class neogeo_sma_kof99_cart : public neogeo_sma_cart
+{
+public:
+ neogeo_sma_kof99_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ virtual void activate_cart(ACTIVATE_CART_PARAMS) override;
+ virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
+ virtual int get_fixed_bank_type(void) override { return 1; }
+};
+extern const device_type NEOGEO_SMA_KOF99_CART;
+
+/*************************************************
+ Garou
+**************************************************/
+
+class neogeo_sma_garou_cart : public neogeo_sma_cart
+{
+public:
+ neogeo_sma_garou_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ virtual void activate_cart(ACTIVATE_CART_PARAMS) override;
+ virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
+ virtual int get_fixed_bank_type(void) override { return 1; }
+};
+extern const device_type NEOGEO_SMA_GAROU_CART;
+
+class neogeo_sma_garouh_cart : public neogeo_sma_cart
+{
+public:
+ neogeo_sma_garouh_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ virtual void activate_cart(ACTIVATE_CART_PARAMS) override;
+ virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
+ virtual int get_fixed_bank_type(void) override { return 1; }
+};
+extern const device_type NEOGEO_SMA_GAROUH_CART;
+
+/*************************************************
+ Metal Slug 3
+**************************************************/
+
+class neogeo_sma_mslug3_cart : public neogeo_sma_cart
+{
+public:
+ neogeo_sma_mslug3_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ virtual void activate_cart(ACTIVATE_CART_PARAMS) override;
+ virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
+ virtual int get_fixed_bank_type(void) override { return 1; }
+};
+extern const device_type NEOGEO_SMA_MSLUG3_CART;
+
+
+/*************************************************
+ KOF2000
+**************************************************/
+
+class neogeo_sma_kof2000_cart : public neogeo_sma_cart
+{
+public:
+ neogeo_sma_kof2000_cart(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ virtual void activate_cart(ACTIVATE_CART_PARAMS) override;
+ virtual void decrypt_all(DECRYPT_ALL_PARAMS) override;
+ virtual int get_fixed_bank_type(void) override { return 2; }
+};
+extern const device_type NEOGEO_SMA_KOF2000_CART;
+
+
+#endif
diff --git a/src/mame/old/sma_prot.cpp b/src/mame/old/sma_prot.cpp
new file mode 100644
index 00000000000..5c7b1b87100
--- /dev/null
+++ b/src/mame/old/sma_prot.cpp
@@ -0,0 +1,464 @@
+// license:BSD-3-Clause
+// copyright-holders:S. Smith,David Haywood
+#include "emu.h"
+#include "sma_prot.h"
+
+
+
+const device_type SMA_PROT = device_creator<sma_prot_device>;
+
+
+sma_prot_device::sma_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : device_t(mconfig, SMA_PROT, "NeoGeo SMA Cartridge", tag, owner, clock, "sma_prot", __FILE__),
+ m_bankdev(nullptr),
+ m_sma_rng(0)
+{
+}
+
+
+void sma_prot_device::device_start()
+{
+ save_item(NAME(m_sma_rng));
+}
+
+void sma_prot_device::device_reset()
+{
+ reset_sma_rng();
+}
+
+
+
+
+
+/************************ SMA Protection************************
+ thanks to Razoola
+***************************************************************/
+
+WRITE16_MEMBER( sma_prot_device::kof99_bankswitch_w )
+{
+ int bankaddress;
+ static const int bankoffset[64] =
+ {
+ 0x000000, 0x100000, 0x200000, 0x300000,
+ 0x3cc000, 0x4cc000, 0x3f2000, 0x4f2000,
+ 0x407800, 0x507800, 0x40d000, 0x50d000,
+ 0x417800, 0x517800, 0x420800, 0x520800,
+ 0x424800, 0x524800, 0x429000, 0x529000,
+ 0x42e800, 0x52e800, 0x431800, 0x531800,
+ 0x54d000, 0x551000, 0x567000, 0x592800,
+ 0x588800, 0x581800, 0x599800, 0x594800,
+ 0x598000, /* rest not used? */
+ };
+
+ /* unscramble bank number */
+ data =
+ (((data>>14)&1)<<0)+
+ (((data>> 6)&1)<<1)+
+ (((data>> 8)&1)<<2)+
+ (((data>>10)&1)<<3)+
+ (((data>>12)&1)<<4)+
+ (((data>> 5)&1)<<5);
+
+ bankaddress = 0x100000 + bankoffset[data];
+ m_bankdev->neogeo_set_main_cpu_bank_address(bankaddress);
+}
+
+
+WRITE16_MEMBER( sma_prot_device::garou_bankswitch_w )
+{
+ /* thanks to Razoola and Mr K for the info */
+ int bankaddress;
+ static const int bankoffset[64] =
+ {
+ 0x000000, 0x100000, 0x200000, 0x300000, // 00
+ 0x280000, 0x380000, 0x2d0000, 0x3d0000, // 04
+ 0x2f0000, 0x3f0000, 0x400000, 0x500000, // 08
+ 0x420000, 0x520000, 0x440000, 0x540000, // 12
+ 0x498000, 0x598000, 0x4a0000, 0x5a0000, // 16
+ 0x4a8000, 0x5a8000, 0x4b0000, 0x5b0000, // 20
+ 0x4b8000, 0x5b8000, 0x4c0000, 0x5c0000, // 24
+ 0x4c8000, 0x5c8000, 0x4d0000, 0x5d0000, // 28
+ 0x458000, 0x558000, 0x460000, 0x560000, // 32
+ 0x468000, 0x568000, 0x470000, 0x570000, // 36
+ 0x478000, 0x578000, 0x480000, 0x580000, // 40
+ 0x488000, 0x588000, 0x490000, 0x590000, // 44
+ 0x5d0000, 0x5d8000, 0x5e0000, 0x5e8000, // 48
+ 0x5f0000, 0x5f8000, 0x600000, /* rest not used? */
+ };
+
+ /* unscramble bank number */
+ data =
+ (((data>> 5)&1)<<0)+
+ (((data>> 9)&1)<<1)+
+ (((data>> 7)&1)<<2)+
+ (((data>> 6)&1)<<3)+
+ (((data>>14)&1)<<4)+
+ (((data>>12)&1)<<5);
+
+ bankaddress = 0x100000 + bankoffset[data];
+ m_bankdev->neogeo_set_main_cpu_bank_address(bankaddress);
+}
+
+
+WRITE16_MEMBER( sma_prot_device::garouh_bankswitch_w )
+{
+ /* thanks to Razoola and Mr K for the info */
+ int bankaddress;
+ static const int bankoffset[64] =
+ {
+ 0x000000, 0x100000, 0x200000, 0x300000, // 00
+ 0x280000, 0x380000, 0x2d0000, 0x3d0000, // 04
+ 0x2c8000, 0x3c8000, 0x400000, 0x500000, // 08
+ 0x420000, 0x520000, 0x440000, 0x540000, // 12
+ 0x598000, 0x698000, 0x5a0000, 0x6a0000, // 16
+ 0x5a8000, 0x6a8000, 0x5b0000, 0x6b0000, // 20
+ 0x5b8000, 0x6b8000, 0x5c0000, 0x6c0000, // 24
+ 0x5c8000, 0x6c8000, 0x5d0000, 0x6d0000, // 28
+ 0x458000, 0x558000, 0x460000, 0x560000, // 32
+ 0x468000, 0x568000, 0x470000, 0x570000, // 36
+ 0x478000, 0x578000, 0x480000, 0x580000, // 40
+ 0x488000, 0x588000, 0x490000, 0x590000, // 44
+ 0x5d8000, 0x6d8000, 0x5e0000, 0x6e0000, // 48
+ 0x5e8000, 0x6e8000, 0x6e8000, 0x000000, // 52
+ 0x000000, 0x000000, 0x000000, 0x000000, // 56
+ 0x000000, 0x000000, 0x000000, 0x000000, // 60
+ };
+
+ /* unscramble bank number */
+ data =
+ (((data>> 4)&1)<<0)+
+ (((data>> 8)&1)<<1)+
+ (((data>>14)&1)<<2)+
+ (((data>> 2)&1)<<3)+
+ (((data>>11)&1)<<4)+
+ (((data>>13)&1)<<5);
+
+ bankaddress = 0x100000 + bankoffset[data];
+ m_bankdev->neogeo_set_main_cpu_bank_address(bankaddress);
+}
+
+
+WRITE16_MEMBER( sma_prot_device::mslug3_bankswitch_w )
+{
+ /* thanks to Razoola and Mr K for the info */
+ int bankaddress;
+ static const int bankoffset[64] =
+ {
+ 0x000000, 0x020000, 0x040000, 0x060000, // 00
+ 0x070000, 0x090000, 0x0b0000, 0x0d0000, // 04
+ 0x0e0000, 0x0f0000, 0x120000, 0x130000, // 08
+ 0x140000, 0x150000, 0x180000, 0x190000, // 12
+ 0x1a0000, 0x1b0000, 0x1e0000, 0x1f0000, // 16
+ 0x200000, 0x210000, 0x240000, 0x250000, // 20
+ 0x260000, 0x270000, 0x2a0000, 0x2b0000, // 24
+ 0x2c0000, 0x2d0000, 0x300000, 0x310000, // 28
+ 0x320000, 0x330000, 0x360000, 0x370000, // 32
+ 0x380000, 0x390000, 0x3c0000, 0x3d0000, // 36
+ 0x400000, 0x410000, 0x440000, 0x450000, // 40
+ 0x460000, 0x470000, 0x4a0000, 0x4b0000, // 44
+ 0x4c0000, /* rest not used? */
+ };
+
+ /* unscramble bank number */
+ data =
+ (((data>>14)&1)<<0)+
+ (((data>>12)&1)<<1)+
+ (((data>>15)&1)<<2)+
+ (((data>> 6)&1)<<3)+
+ (((data>> 3)&1)<<4)+
+ (((data>> 9)&1)<<5);
+
+ bankaddress = 0x100000 + bankoffset[data];
+ m_bankdev->neogeo_set_main_cpu_bank_address(bankaddress);
+}
+
+
+WRITE16_MEMBER( sma_prot_device::kof2000_bankswitch_w )
+{
+ /* thanks to Razoola and Mr K for the info */
+ int bankaddress;
+ static const int bankoffset[64] =
+ {
+ 0x000000, 0x100000, 0x200000, 0x300000, // 00
+ 0x3f7800, 0x4f7800, 0x3ff800, 0x4ff800, // 04
+ 0x407800, 0x507800, 0x40f800, 0x50f800, // 08
+ 0x416800, 0x516800, 0x41d800, 0x51d800, // 12
+ 0x424000, 0x524000, 0x523800, 0x623800, // 16
+ 0x526000, 0x626000, 0x528000, 0x628000, // 20
+ 0x52a000, 0x62a000, 0x52b800, 0x62b800, // 24
+ 0x52d000, 0x62d000, 0x52e800, 0x62e800, // 28
+ 0x618000, 0x619000, 0x61a000, 0x61a800, // 32
+ };
+
+ /* unscramble bank number */
+ data =
+ (((data>>15)&1)<<0)+
+ (((data>>14)&1)<<1)+
+ (((data>> 7)&1)<<2)+
+ (((data>> 3)&1)<<3)+
+ (((data>>10)&1)<<4)+
+ (((data>> 5)&1)<<5);
+
+ bankaddress = 0x100000 + bankoffset[data];
+ m_bankdev->neogeo_set_main_cpu_bank_address(bankaddress);
+}
+
+
+READ16_MEMBER( sma_prot_device::prot_9a37_r )
+{
+ return 0x9a37;
+}
+
+
+/* information about the sma random number generator provided by razoola */
+/* this RNG is correct for KOF99, other games might be different */
+
+READ16_MEMBER( sma_prot_device::sma_random_r )
+{
+ uint16_t old = m_sma_rng;
+
+ uint16_t newbit = ((m_sma_rng >> 2) ^
+ (m_sma_rng >> 3) ^
+ (m_sma_rng >> 5) ^
+ (m_sma_rng >> 6) ^
+ (m_sma_rng >> 7) ^
+ (m_sma_rng >>11) ^
+ (m_sma_rng >>12) ^
+ (m_sma_rng >>15)) & 1;
+
+ m_sma_rng = (m_sma_rng << 1) | newbit;
+
+ return old;
+}
+
+
+void sma_prot_device::reset_sma_rng()
+{
+ m_sma_rng = 0x2345;
+}
+
+
+void sma_prot_device::sma_install_random_read_handler(cpu_device* maincpu, int addr1, int addr2 )
+{
+ maincpu->space(AS_PROGRAM).install_read_handler(addr1, addr1 + 1, read16_delegate(FUNC(sma_prot_device::sma_random_r),this));
+ maincpu->space(AS_PROGRAM).install_read_handler(addr2, addr2 + 1, read16_delegate(FUNC(sma_prot_device::sma_random_r),this));
+}
+
+
+void sma_prot_device::kof99_install_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev)
+{
+ maincpu->space(AS_PROGRAM).install_write_handler(0x2ffff0, 0x2ffff1, write16_delegate(FUNC(sma_prot_device::kof99_bankswitch_w),this));
+ maincpu->space(AS_PROGRAM).install_read_handler(0x2fe446, 0x2fe447, read16_delegate(FUNC(sma_prot_device::prot_9a37_r),this));
+ m_bankdev = bankdev;
+
+ sma_install_random_read_handler(maincpu, 0x2ffff8, 0x2ffffa);
+}
+
+
+void sma_prot_device::garou_install_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev)
+{
+ maincpu->space(AS_PROGRAM).install_write_handler(0x2fffc0, 0x2fffc1, write16_delegate(FUNC(sma_prot_device::garou_bankswitch_w),this));
+ maincpu->space(AS_PROGRAM).install_read_handler(0x2fe446, 0x2fe447, read16_delegate(FUNC(sma_prot_device::prot_9a37_r),this));
+ m_bankdev = bankdev;
+
+ sma_install_random_read_handler(maincpu, 0x2fffcc, 0x2ffff0);
+}
+
+
+void sma_prot_device::garouh_install_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev)
+{
+ maincpu->space(AS_PROGRAM).install_write_handler(0x2fffc0, 0x2fffc1, write16_delegate(FUNC(sma_prot_device::garouh_bankswitch_w),this));
+ maincpu->space(AS_PROGRAM).install_read_handler(0x2fe446, 0x2fe447, read16_delegate(FUNC(sma_prot_device::prot_9a37_r),this));
+ m_bankdev = bankdev;
+
+ sma_install_random_read_handler(maincpu, 0x2fffcc, 0x2ffff0);
+}
+
+
+void sma_prot_device::mslug3_install_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev)
+{
+ maincpu->space(AS_PROGRAM).install_write_handler(0x2fffe4, 0x2fffe5, write16_delegate(FUNC(sma_prot_device::mslug3_bankswitch_w),this));
+ maincpu->space(AS_PROGRAM).install_read_handler(0x2fe446, 0x2fe447, read16_delegate(FUNC(sma_prot_device::prot_9a37_r),this));
+ m_bankdev = bankdev;
+
+// sma_install_random_read_handler(maincpu, 0x2ffff8, 0x2ffffa);
+}
+
+
+void sma_prot_device::kof2000_install_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev)
+{
+ maincpu->space(AS_PROGRAM).install_write_handler(0x2fffec, 0x2fffed, write16_delegate(FUNC(sma_prot_device::kof2000_bankswitch_w),this));
+ maincpu->space(AS_PROGRAM).install_read_handler(0x2fe446, 0x2fe447, read16_delegate(FUNC(sma_prot_device::prot_9a37_r),this));
+ m_bankdev = bankdev;
+
+ sma_install_random_read_handler(maincpu, 0x2fffd8, 0x2fffda);
+}
+
+
+
+/* kof99, garou, garouh, mslug3 and kof2000 have and SMA chip which contains program code and decrypts the 68k roms */
+void sma_prot_device::kof99_decrypt_68k(uint8_t* base)
+{
+ uint16_t *rom;
+ int i,j;
+
+ rom = (uint16_t *)(base + 0x100000);
+ /* swap data lines on the whole ROMs */
+ for (i = 0;i < 0x800000/2;i++)
+ {
+ rom[i] = BITSWAP16(rom[i],13,7,3,0,9,4,5,6,1,12,8,14,10,11,2,15);
+ }
+
+ /* swap address lines for the banked part */
+ for (i = 0;i < 0x600000/2;i+=0x800/2)
+ {
+ uint16_t buffer[0x800/2];
+ memcpy(buffer,&rom[i],0x800);
+ for (j = 0;j < 0x800/2;j++)
+ {
+ rom[i+j] = buffer[BITSWAP24(j,23,22,21,20,19,18,17,16,15,14,13,12,11,10,6,2,4,9,8,3,1,7,0,5)];
+ }
+ }
+
+ /* swap address lines & relocate fixed part */
+ rom = (uint16_t *)base;
+ for (i = 0;i < 0x0c0000/2;i++)
+ {
+ rom[i] = rom[0x700000/2 + BITSWAP24(i,23,22,21,20,19,18,11,6,14,17,16,5,8,10,12,0,4,3,2,7,9,15,13,1)];
+ }
+}
+
+
+void sma_prot_device::garou_decrypt_68k(uint8_t* base)
+{
+ uint16_t *rom;
+ int i,j;
+
+ /* thanks to Razoola and Mr K for the info */
+ rom = (uint16_t *)(base + 0x100000);
+ /* swap data lines on the whole ROMs */
+ for (i = 0;i < 0x800000/2;i++)
+ {
+ rom[i] = BITSWAP16(rom[i],13,12,14,10,8,2,3,1,5,9,11,4,15,0,6,7);
+ }
+
+ /* swap address lines & relocate fixed part */
+ rom = (uint16_t *)base;
+ for (i = 0;i < 0x0c0000/2;i++)
+ {
+ rom[i] = rom[0x710000/2 + BITSWAP24(i,23,22,21,20,19,18,4,5,16,14,7,9,6,13,17,15,3,1,2,12,11,8,10,0)];
+ }
+
+ /* swap address lines for the banked part */
+ rom = (uint16_t *)(base + 0x100000);
+ for (i = 0;i < 0x800000/2;i+=0x8000/2)
+ {
+ uint16_t buffer[0x8000/2];
+ memcpy(buffer,&rom[i],0x8000);
+ for (j = 0;j < 0x8000/2;j++)
+ {
+ rom[i+j] = buffer[BITSWAP24(j,23,22,21,20,19,18,17,16,15,14,9,4,8,3,13,6,2,7,0,12,1,11,10,5)];
+ }
+ }
+}
+
+
+void sma_prot_device::garouh_decrypt_68k(uint8_t* base)
+{
+ uint16_t *rom;
+ int i,j;
+
+ /* thanks to Razoola and Mr K for the info */
+ rom = (uint16_t *)(base + 0x100000);
+ /* swap data lines on the whole ROMs */
+ for (i = 0;i < 0x800000/2;i++)
+ {
+ rom[i] = BITSWAP16(rom[i],14,5,1,11,7,4,10,15,3,12,8,13,0,2,9,6);
+ }
+
+ /* swap address lines & relocate fixed part */
+ rom = (uint16_t *)base;
+ for (i = 0;i < 0x0c0000/2;i++)
+ {
+ rom[i] = rom[0x7f8000/2 + BITSWAP24(i,23,22,21,20,19,18,5,16,11,2,6,7,17,3,12,8,14,4,0,9,1,10,15,13)];
+ }
+
+ /* swap address lines for the banked part */
+ rom = (uint16_t *)(base + 0x100000);
+ for (i = 0;i < 0x800000/2;i+=0x8000/2)
+ {
+ uint16_t buffer[0x8000/2];
+ memcpy(buffer,&rom[i],0x8000);
+ for (j = 0;j < 0x8000/2;j++)
+ {
+ rom[i+j] = buffer[BITSWAP24(j,23,22,21,20,19,18,17,16,15,14,12,8,1,7,11,3,13,10,6,9,5,4,0,2)];
+ }
+ }
+}
+
+
+void sma_prot_device::mslug3_decrypt_68k(uint8_t* base)
+{
+ uint16_t *rom;
+ int i,j;
+
+ /* thanks to Razoola and Mr K for the info */
+ rom = (uint16_t *)(base + 0x100000);
+ /* swap data lines on the whole ROMs */
+ for (i = 0;i < 0x800000/2;i++)
+ {
+ rom[i] = BITSWAP16(rom[i],4,11,14,3,1,13,0,7,2,8,12,15,10,9,5,6);
+ }
+
+ /* swap address lines & relocate fixed part */
+ rom = (uint16_t *)base;
+ for (i = 0;i < 0x0c0000/2;i++)
+ {
+ rom[i] = rom[0x5d0000/2 + BITSWAP24(i,23,22,21,20,19,18,15,2,1,13,3,0,9,6,16,4,11,5,7,12,17,14,10,8)];
+ }
+
+ /* swap address lines for the banked part */
+ rom = (uint16_t *)(base + 0x100000);
+ for (i = 0;i < 0x800000/2;i+=0x10000/2)
+ {
+ uint16_t buffer[0x10000/2];
+ memcpy(buffer,&rom[i],0x10000);
+ for (j = 0;j < 0x10000/2;j++)
+ {
+ rom[i+j] = buffer[BITSWAP24(j,23,22,21,20,19,18,17,16,15,2,11,0,14,6,4,13,8,9,3,10,7,5,12,1)];
+ }
+ }
+}
+
+
+void sma_prot_device::kof2000_decrypt_68k(uint8_t* base)
+{
+ uint16_t *rom;
+ int i,j;
+
+ /* thanks to Razoola and Mr K for the info */
+ rom = (uint16_t *)(base + 0x100000);
+ /* swap data lines on the whole ROMs */
+ for (i = 0;i < 0x800000/2;i++)
+ {
+ rom[i] = BITSWAP16(rom[i],12,8,11,3,15,14,7,0,10,13,6,5,9,2,1,4);
+ }
+
+ /* swap address lines for the banked part */
+ for (i = 0;i < 0x63a000/2;i+=0x800/2)
+ {
+ uint16_t buffer[0x800/2];
+ memcpy(buffer,&rom[i],0x800);
+ for (j = 0;j < 0x800/2;j++)
+ {
+ rom[i+j] = buffer[BITSWAP24(j,23,22,21,20,19,18,17,16,15,14,13,12,11,10,4,1,3,8,6,2,7,0,9,5)];
+ }
+ }
+
+ /* swap address lines & relocate fixed part */
+ rom = (uint16_t *)base;
+ for (i = 0;i < 0x0c0000/2;i++)
+ {
+ rom[i] = rom[0x73a000/2 + BITSWAP24(i,23,22,21,20,19,18,8,4,15,13,3,14,16,2,6,17,7,12,10,0,5,11,1,9)];
+ }
+}
diff --git a/src/mame/old/sma_prot.h b/src/mame/old/sma_prot.h
new file mode 100644
index 00000000000..ce82e7e8c92
--- /dev/null
+++ b/src/mame/old/sma_prot.h
@@ -0,0 +1,52 @@
+// license:BSD-3-Clause
+// copyright-holders:S. Smith,David Haywood
+
+
+#pragma once
+
+#include "banked_cart.h"
+
+#ifndef __SMA_PROT__
+#define __SMA_PROT__
+
+extern const device_type SMA_PROT;
+
+#define MCFG_SMA_PROT_ADD(_tag) \
+ MCFG_DEVICE_ADD(_tag, SMA_PROT, 0)
+
+
+class sma_prot_device : public device_t
+{
+public:
+ // construction/destruction
+ sma_prot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
+
+ DECLARE_WRITE16_MEMBER( kof99_bankswitch_w );
+ DECLARE_WRITE16_MEMBER( garou_bankswitch_w );
+ DECLARE_WRITE16_MEMBER( garouh_bankswitch_w );
+ DECLARE_WRITE16_MEMBER( mslug3_bankswitch_w );
+ DECLARE_WRITE16_MEMBER( kof2000_bankswitch_w );
+ DECLARE_READ16_MEMBER( prot_9a37_r );
+ DECLARE_READ16_MEMBER( sma_random_r );
+ void reset_sma_rng();
+ void sma_install_random_read_handler(cpu_device* maincpu, int addr1, int addr2 );
+ void kof99_install_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev);
+ void garou_install_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev);
+ void garouh_install_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev);
+ void mslug3_install_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev);
+ void kof2000_install_protection(cpu_device* maincpu, neogeo_banked_cart_device* bankdev);
+ neogeo_banked_cart_device* m_bankdev;
+ void kof99_decrypt_68k(uint8_t* base);
+ void garou_decrypt_68k(uint8_t* base);
+ void garouh_decrypt_68k(uint8_t* base);
+ void mslug3_decrypt_68k(uint8_t* base);
+ void kof2000_decrypt_68k(uint8_t* base);
+
+ uint16_t m_sma_rng;
+protected:
+ virtual void device_start() override;
+ virtual void device_reset() override;
+};
+
+#endif
diff --git a/src/osd/modules/render/drawd3d.cpp b/src/osd/modules/render/drawd3d.cpp
index b0427c5b55c..0558b35cdd8 100644
--- a/src/osd/modules/render/drawd3d.cpp
+++ b/src/osd/modules/render/drawd3d.cpp
@@ -1073,39 +1073,40 @@ bool renderer_d3d9::device_verify_caps()
// verify device capabilities
if (!(caps.DevCaps & D3DDEVCAPS_CANRENDERAFTERFLIP))
{
- osd_printf_error("Direct3D Error: Your graphics card does not support rendering after a page\n");
- osd_printf_error("flip.\n");
+ osd_printf_verbose("Direct3D Error: Your graphics card does not support rendering after a page\n");
+ osd_printf_verbose("flip.\n");
success = false;
}
if (!(caps.DevCaps & D3DDEVCAPS_HWRASTERIZATION))
{
- osd_printf_error("Direct3D Error: Your graphics card does not support hardware rendering.\n");
+ osd_printf_verbose("Direct3D Error: Your graphics card does not support hardware rendering.\n");
success = false;
}
// verify texture operation capabilities
if (!(caps.TextureOpCaps & D3DTEXOPCAPS_MODULATE))
{
- osd_printf_error("Direct3D Error: Your graphics card does not support modulate-type blending.\n");
+ osd_printf_verbose("Direct3D Error: Your graphics card does not support modulate-type blending.\n");
success = false;
}
if (caps.TextureCaps & D3DPTEXTURECAPS_NONPOW2CONDITIONAL)
{
- osd_printf_error("Direct3D Error: Your graphics card does not fully support non-power-of-two\n");
- osd_printf_error("textures.\n");
+ osd_printf_verbose("Direct3D Error: Your graphics card does not fully support non-power-of-two\n");
+ osd_printf_verbose("textures.\n");
success = false;
}
if (caps.TextureCaps & D3DPTEXTURECAPS_POW2)
{
- osd_printf_error("Direct3D Error: Your graphics card does not support non-power-of-two textures.\n");
+ osd_printf_verbose("Direct3D Error: Your graphics card does not support non-power-of-two textures.\n");
success = false;
}
+
if (caps.TextureCaps & D3DPTEXTURECAPS_SQUAREONLY)
{
- osd_printf_error("Direct3D Error: Your graphics card does not support non-square textures.\n");
+ osd_printf_verbose("Direct3D Error: Your graphics card does not support non-square textures.\n");
success = false;
}
@@ -1113,16 +1114,16 @@ bool renderer_d3d9::device_verify_caps()
result = d3dintf->d3dobj->CheckDeviceFormat(m_adapter, D3DDEVTYPE_HAL, m_pixformat, 0, D3DRTYPE_TEXTURE, D3DFMT_A8R8G8B8);
if (FAILED(result))
{
- osd_printf_error("Direct3D Error: Your graphics card does not support the A8R8G8B8 texture format.\n");
+ osd_printf_verbose("Direct3D Error: Your graphics card does not support the A8R8G8B8 texture format.\n");
success = false;
}
if (!success)
{
- osd_printf_error("This feature or features are required to use the Direct3D renderer. Please\n");
- osd_printf_error("select another renderer using the -video option or contact the MAME developers\n");
- osd_printf_error("with information about your system.\n");
- return false;
+ osd_printf_verbose("This feature or features are required to use the Direct3D renderer. Please\n");
+ osd_printf_verbose("select another renderer using the -video option or contact the MAME developers\n");
+ osd_printf_verbose("with information about your system.\n");
+ //return false;
}
m_gamma_supported = ((caps.Caps2 & D3DCAPS2_FULLSCREENGAMMA) != 0);
diff --git a/src/osd/modules/sound/direct_sound.cpp b/src/osd/modules/sound/direct_sound.cpp
index 4d6c8c26c50..1e794bb6690 100644
--- a/src/osd/modules/sound/direct_sound.cpp
+++ b/src/osd/modules/sound/direct_sound.cpp
@@ -23,6 +23,7 @@
// MAME headers
#include "emu.h"
#include "osdepend.h"
+//#include "modules/lib/osdobj_common.h"
#include "emuopts.h"
#ifdef SDLMAME_WIN32
diff --git a/src/osd/windows/window.cpp b/src/osd/windows/window.cpp
index 69bb5153ed4..25d3d3af6ce 100644
--- a/src/osd/windows/window.cpp
+++ b/src/osd/windows/window.cpp
@@ -701,7 +701,7 @@ void winwindow_update_cursor_state(running_machine &machine)
window->hide_pointer();
// clip pointer to game video window
- window->capture_pointer();
+ //window->capture_pointer(); //MESSUI
}
else
{
diff --git a/src/osd/windows/winmain.cpp b/src/osd/windows/winmain.cpp
index f33b018f1bf..309389ad28c 100644
--- a/src/osd/windows/winmain.cpp
+++ b/src/osd/windows/winmain.cpp
@@ -275,7 +275,50 @@ const options_entry windows_options::s_option_entries[] =
//============================================================
// main
//============================================================
+//HBMAME start
+int main_(int argc, char *argv[])
+{
+ std::vector<std::string> args = osd_get_command_line(argc, argv);
+
+ // use small output buffers on non-TTYs (i.e. pipes)
+ if (!isatty(fileno(stdout)))
+ setvbuf(stdout, (char *) nullptr, _IOFBF, 64);
+ if (!isatty(fileno(stderr)))
+ setvbuf(stderr, (char *) nullptr, _IOFBF, 64);
+
+ // initialize common controls
+ InitCommonControls();
+
+ // set a handler to catch ctrl-c
+ SetConsoleCtrlHandler(control_handler, TRUE);
+
+ // Initialize crash diagnostics
+ diagnostics_module::get_instance()->init_crash_diagnostics();
+
+ // parse config and cmdline options
+ DWORD result;
+ {
+ windows_options options;
+ windows_osd_interface osd(options);
+ // if we're a GUI app, out errors to message boxes
+ // Initialize this after the osd interface so that we are first in the
+ // output order
+ winui_output_error winerror;
+ if (win_is_gui_application() || is_double_click_start(args.size()))
+ {
+ // if we are a GUI app, output errors to message boxes
+ osd_output::push(&winerror);
+ // make sure any console window that opened on our behalf is nuked
+ FreeConsole();
+ }
+ osd.register_options();
+ result = emulator_info::start_frontend(options, osd, args);
+ osd_output::pop(&winerror);
+ }
+ return result;
+}
+//HBMAME end
int main(int argc, char *argv[])
{
std::vector<std::string> args = osd_get_command_line(argc, argv);
diff --git a/src/osd/windows/winmain.h b/src/osd/windows/winmain.h
index 7b4f3d71009..cd12f8499d4 100644
--- a/src/osd/windows/winmain.h
+++ b/src/osd/windows/winmain.h
@@ -260,6 +260,7 @@ class windows_osd_interface : public osd_common_t
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
// Access to exception filter static method
friend int main(int argc, char *argv[]);
+ friend int main_(int argc, char *argv[]); //HBMAME
#endif
public:
diff --git a/src/osd/winui/bitmask.cpp b/src/osd/winui/bitmask.cpp
new file mode 100644
index 00000000000..062bbc39f0b
--- /dev/null
+++ b/src/osd/winui/bitmask.cpp
@@ -0,0 +1,146 @@
+// For licensing and usage information, read docs/winui_license.txt
+// MASTER
+//****************************************************************************
+/* bitmask.c - Bitmask support routines - MSH 11/19/1998 */
+
+// standard windows headers
+#include <windows.h>
+
+// standard C headers
+#include <stdlib.h> /* For malloc and free */
+
+// MAME/MAMEUI headers
+#include "bitmask.h"
+/* Bit routines */
+static UCHAR maskTable[8] = { 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01 };
+
+/* Create a new LPBITS struct and return the new structure
+ * initialized to 'all bits cleared'
+ *
+ * nLength is the number of desired bits
+ */
+LPBITS NewBits(UINT nLength)
+{
+ UINT nSize = (nLength+7) / 8;
+
+ LPBITS lpBits = (LPBITS)malloc(sizeof(BITS));
+ if (lpBits)
+ {
+ lpBits->m_lpBits = (UCHAR *)malloc(nSize);
+ if (lpBits->m_lpBits)
+ {
+ memset(lpBits->m_lpBits, '\0', nSize);
+ lpBits->m_nSize = nSize;
+ }
+ else
+ {
+ free(lpBits);
+ lpBits = 0;
+ }
+ }
+
+ return lpBits;
+}
+
+void DeleteBits(LPBITS lpBits)
+{
+ if (!lpBits)
+ return;
+
+ if (lpBits->m_nSize && lpBits->m_lpBits)
+ free(lpBits->m_lpBits);
+
+ free(lpBits);
+}
+
+/* Test the 'nBit'th bit */
+BOOL TestBit(LPBITS lpBits, UINT nBit)
+{
+ UINT offset;
+ UCHAR mask;
+
+ if (nBit < 0 || !lpBits || !lpBits->m_lpBits)
+ return FALSE;
+
+ offset = nBit >> 3;
+
+ if (offset >= lpBits->m_nSize)
+ return FALSE;
+
+ mask = maskTable[nBit & 7];
+ return (lpBits->m_lpBits[offset] & mask) ? TRUE : FALSE;
+}
+
+/* Set the 'nBit'th bit */
+void SetBit(LPBITS lpBits, UINT nBit)
+{
+ UINT offset;
+ UCHAR mask;
+
+ if (nBit < 0 || !lpBits || !lpBits->m_lpBits)
+ return;
+
+ offset = nBit >> 3;
+
+ if (offset >= lpBits->m_nSize)
+ return;
+
+ mask = maskTable[nBit & 7];
+ lpBits->m_lpBits[offset] |= mask;
+}
+
+/* Clear the 'nBit'th bit */
+void ClearBit(LPBITS lpBits, UINT nBit)
+{
+ UINT offset;
+ UCHAR mask;
+
+ if (nBit < 0 || !lpBits || !lpBits->m_lpBits)
+ return;
+
+ offset = nBit >> 3;
+
+ if (offset >= lpBits->m_nSize)
+ return;
+
+ mask = maskTable[nBit & 7];
+ lpBits->m_lpBits[offset] &= ~mask;
+}
+
+/* Set or Clear all bits as specified by 'bSet' */
+void SetAllBits(LPBITS lpBits, BOOL bSet)
+{
+ if (lpBits && lpBits->m_nSize != 0 && lpBits->m_lpBits)
+ memset(lpBits->m_lpBits, (!bSet) ? '\0' : '\xFF', lpBits->m_nSize);
+}
+
+/* Find next bit that matches 'bSet'
+ *
+ * 'nStartPos' specifies the bit to start search after
+ * 'bSet' specifies to search for a set or unset bit
+ *
+ * Returns -1 if no bits are found
+ */
+int FindBit(LPBITS lpBits, int nStartPos, BOOL bSet)
+{
+ UINT i = 0;
+
+ if (!lpBits || !lpBits->m_nSize || !lpBits->m_lpBits)
+ return -1;
+
+ UINT end = lpBits->m_nSize << 3;
+
+ if (nStartPos < 0)
+ nStartPos = 0;
+
+ for (i = nStartPos; i < end; i++)
+ {
+ BOOL res = (TestBit(lpBits, i)) ? TRUE : FALSE;
+ if ((res && bSet) || (!res && !bSet))
+ return i;
+ }
+
+ return -1;
+}
+
+/* End of source file */
diff --git a/src/osd/winui/bitmask.h b/src/osd/winui/bitmask.h
new file mode 100644
index 00000000000..ad21e6ae7ae
--- /dev/null
+++ b/src/osd/winui/bitmask.h
@@ -0,0 +1,33 @@
+// For licensing and usage information, read docs/winui_license.txt
+//****************************************************************************
+
+#ifndef BITMASK_H
+#define BITMASK_H
+
+/* Bit array type */
+typedef struct
+{
+ UINT m_nSize;
+ UCHAR* m_lpBits;
+} BITS, * LPBITS;
+
+/* Bit functions */
+LPBITS NewBits(UINT nLength /* in bits */);
+void DeleteBits(LPBITS lpBits);
+BOOL TestBit(LPBITS lpBits, UINT nBit);
+void SetBit(LPBITS lpBits, UINT nBit);
+void ClearBit(LPBITS lpBits, UINT nBit);
+void SetAllBits(LPBITS lpBits, BOOL bSet);
+int FindBit(LPBITS lpBits, int nStartPos, BOOL bSet);
+
+/* Linked list type */
+typedef struct
+{
+ LPVOID data;
+ LPVOID next;
+ LPVOID prev;
+} NODE, * LPNODE;
+
+/* Linked list functions */
+
+#endif /* BITMASK_H */
diff --git a/src/osd/winui/columnedit.cpp b/src/osd/winui/columnedit.cpp
new file mode 100644
index 00000000000..43266f0c7bb
--- /dev/null
+++ b/src/osd/winui/columnedit.cpp
@@ -0,0 +1,426 @@
+// For licensing and usage information, read docs/winui_license.txt
+// MASTER
+//****************************************************************************
+
+/***************************************************************************
+
+ columnedit.c
+
+ Column Edit dialog
+
+***************************************************************************/
+
+// standard windows headers
+#include <windows.h>
+#include <windowsx.h>
+
+// MAME/MAMEUI headers
+#include "resource.h"
+#include "mui_opts.h"
+
+// Returns TRUE if successful
+static int DoExchangeItem(HWND hFrom, HWND hTo, int nMinItem)
+{
+ LV_ITEM lvi;
+ TCHAR buf[80];
+
+ lvi.iItem = ListView_GetNextItem(hFrom, -1, LVIS_SELECTED | LVIS_FOCUSED);
+ if (lvi.iItem < nMinItem)
+ {
+ if (lvi.iItem != -1) // Can't remove the first column
+ MessageBox(0, TEXT("Cannot Move Selected Item"), TEXT("Move Item"), IDOK);
+ SetFocus(hFrom);
+ return FALSE;
+ }
+ lvi.iSubItem = 0;
+ lvi.mask = LVIF_PARAM | LVIF_TEXT;
+ lvi.pszText = buf;
+ lvi.cchTextMax = ARRAY_LENGTH(buf);
+ if (ListView_GetItem(hFrom, &lvi))
+ {
+ // Add this item to the Show and delete it from Available
+ BOOL b_res = ListView_DeleteItem(hFrom, lvi.iItem);
+ b_res++;
+ lvi.iItem = ListView_GetItemCount(hTo);
+ (void)ListView_InsertItem(hTo, &lvi);
+ ListView_SetItemState(hTo, lvi.iItem, LVIS_FOCUSED | LVIS_SELECTED, LVIS_FOCUSED | LVIS_SELECTED);
+ SetFocus(hTo);
+ return lvi.iItem;
+ }
+ return FALSE;
+}
+
+static void DoMoveItem( HWND hWnd, BOOL bDown)
+{
+ LV_ITEM lvi;
+ lvi.iItem = ListView_GetNextItem(hWnd, -1, LVIS_SELECTED | LVIS_FOCUSED);
+ int nMaxpos = ListView_GetItemCount(hWnd);
+ if (lvi.iItem == -1 ||
+ (lvi.iItem < 2 && bDown == FALSE) || // Disallow moving First column
+ (lvi.iItem == 0 && bDown == TRUE) || // ""
+ (lvi.iItem == nMaxpos - 1 && bDown == TRUE))
+ {
+ SetFocus(hWnd);
+ return;
+ }
+
+ TCHAR buf[80];
+ lvi.iSubItem = 0;
+ lvi.mask = LVIF_PARAM | LVIF_TEXT;
+ lvi.pszText = buf;
+ lvi.cchTextMax = ARRAY_LENGTH(buf);
+ if (ListView_GetItem(hWnd, &lvi))
+ {
+ // Add this item to the Show and delete it from Available
+ BOOL b_res = ListView_DeleteItem(hWnd, lvi.iItem);
+ b_res++;
+ lvi.iItem += (bDown) ? 1 : -1;
+ (void)ListView_InsertItem(hWnd,&lvi);
+ ListView_SetItemState(hWnd, lvi.iItem, LVIS_FOCUSED | LVIS_SELECTED, LVIS_FOCUSED | LVIS_SELECTED);
+ if (lvi.iItem == nMaxpos - 1)
+ EnableWindow(GetDlgItem(GetParent(hWnd), IDC_BUTTONMOVEDOWN), FALSE);
+ else
+ EnableWindow(GetDlgItem(GetParent(hWnd), IDC_BUTTONMOVEDOWN), TRUE);
+
+ if (lvi.iItem < 2)
+ EnableWindow(GetDlgItem(GetParent(hWnd), IDC_BUTTONMOVEUP), FALSE);
+ else
+ EnableWindow(GetDlgItem(GetParent(hWnd), IDC_BUTTONMOVEUP), TRUE);
+
+ SetFocus(hWnd);
+ }
+}
+
+INT_PTR InternalColumnDialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam,
+ int nColumnMax, int *shown, int *order,
+ const LPCTSTR *names, void (*pfnGetRealColumnOrder)(int *),
+ void (*pfnGetColumnInfo)(int *pnOrder, int *pnShown),
+ void (*pfnSetColumnInfo)(int *pnOrder, int *pnShown))
+{
+ static HWND hShown;
+ static HWND hAvailable;
+ static BOOL showMsg = FALSE;
+ int nShown = 0;
+ int nAvail = 0;
+ int i, nCount = 0;
+ LV_ITEM lvi;
+ DWORD dwShowStyle, dwAvailableStyle, dwView = 0;
+
+ switch (Msg)
+ {
+ case WM_INITDIALOG:
+ hShown = GetDlgItem(hDlg, IDC_LISTSHOWCOLUMNS);
+ hAvailable = GetDlgItem(hDlg, IDC_LISTAVAILABLECOLUMNS);
+ /*Change Style to Always Show Selection */
+ dwShowStyle = GetWindowLong(hShown, GWL_STYLE);
+ dwAvailableStyle = GetWindowLong(hAvailable, GWL_STYLE);
+ dwView = LVS_SHOWSELALWAYS | LVS_LIST;
+
+ /* Only set the window style if the view bits have changed. */
+ if ((dwShowStyle & LVS_TYPEMASK) != dwView)
+ SetWindowLong(hShown, GWL_STYLE, (dwShowStyle & ~LVS_TYPEMASK) | dwView);
+ if ((dwAvailableStyle & LVS_TYPEMASK) != dwView)
+ SetWindowLong(hAvailable, GWL_STYLE, (dwAvailableStyle & ~LVS_TYPEMASK) | dwView);
+
+ pfnGetColumnInfo(order, shown);
+
+ showMsg = TRUE;
+ nShown = 0;
+ nAvail = 0;
+
+ lvi.mask = LVIF_TEXT | LVIF_PARAM;
+ lvi.stateMask = 0;
+ lvi.iSubItem = 0;
+ lvi.iImage = -1;
+
+ /* Get the Column Order and save it */
+ pfnGetRealColumnOrder(order);
+
+ for (i = 0 ; i < nColumnMax; i++)
+ {
+ lvi.pszText = (TCHAR *) names[order[i]];
+ lvi.lParam = order[i];
+
+ if (shown[order[i]])
+ {
+ lvi.iItem = nShown;
+ (void)ListView_InsertItem(hShown, &lvi);
+ nShown++;
+ }
+ else
+ {
+ lvi.iItem = nAvail;
+ (void)ListView_InsertItem(hAvailable, &lvi);
+ nAvail++;
+ }
+ }
+ if( nShown > 0)
+ {
+ /*Set to Second, because first is not allowed*/
+ ListView_SetItemState(hShown, 1, LVIS_FOCUSED | LVIS_SELECTED, LVIS_FOCUSED | LVIS_SELECTED);
+ }
+ if( nAvail > 0)
+ {
+ ListView_SetItemState(hAvailable, 0, LVIS_FOCUSED | LVIS_SELECTED, LVIS_FOCUSED | LVIS_SELECTED);
+ }
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONADD), TRUE);
+ return TRUE;
+
+ case WM_NOTIFY:
+ {
+ NMHDR *nm = (NMHDR *)lParam;
+ NM_LISTVIEW *pnmv;
+ int nPos = 0;
+
+ switch (nm->code)
+ {
+ case NM_DBLCLK:
+ // Do Data Exchange here, which ListView was double clicked?
+ switch (nm->idFrom)
+ {
+ case IDC_LISTAVAILABLECOLUMNS:
+ // Move selected Item from Available to Shown column
+ nPos = DoExchangeItem(hAvailable, hShown, 0);
+ if (nPos)
+ {
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONADD), FALSE);
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONREMOVE), TRUE);
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEUP), TRUE);
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEDOWN), FALSE);
+ }
+ break;
+
+ case IDC_LISTSHOWCOLUMNS:
+ // Move selected Item from Show to Available column
+ if (DoExchangeItem(hShown, hAvailable, 1))
+ {
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONADD), TRUE);
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONREMOVE), FALSE);
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEUP), FALSE);
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEDOWN), FALSE);
+ }
+ break;
+ }
+ return TRUE;
+
+ case LVN_ITEMCHANGED:
+ // Don't handle this message for now
+ pnmv = (NM_LISTVIEW *)nm;
+ if (//!(pnmv->uOldState & LVIS_SELECTED) &&
+ (pnmv->uNewState & LVIS_SELECTED))
+ {
+ if (pnmv->iItem == 0 && pnmv->hdr.idFrom == IDC_LISTSHOWCOLUMNS)
+ {
+ // Don't allow selecting the first item
+ ListView_SetItemState(hShown, pnmv->iItem,
+ LVIS_FOCUSED | LVIS_SELECTED, LVIS_FOCUSED | LVIS_SELECTED);
+ if (showMsg)
+ {
+ MessageBox(0, TEXT("Changing this item is not permitted"), TEXT("Select Item"), IDOK);
+ showMsg = FALSE;
+ }
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONREMOVE), FALSE);
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEUP), FALSE);
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEDOWN), FALSE);
+ /*Leave Focus on Control*/
+ //SetFocus(GetDlgItem(hDlg,IDOK));
+ return TRUE;
+ }
+ else
+ showMsg = TRUE;
+ }
+ if( pnmv->uOldState & LVIS_SELECTED && pnmv->iItem == 0 && pnmv->hdr.idFrom == IDC_LISTSHOWCOLUMNS )
+ {
+ /*we enable the buttons again, if the first Entry loses selection*/
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONREMOVE), TRUE);
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEUP), TRUE);
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEDOWN), TRUE);
+ //SetFocus(GetDlgItem(hDlg,IDOK));
+ }
+ break;
+ case NM_SETFOCUS:
+ {
+ switch (nm->idFrom)
+ {
+ case IDC_LISTAVAILABLECOLUMNS:
+ if (ListView_GetItemCount(nm->hwndFrom) != 0)
+ {
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONADD), TRUE);
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONREMOVE), FALSE);
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEDOWN), FALSE);
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEUP), FALSE);
+ }
+ break;
+ case IDC_LISTSHOWCOLUMNS:
+ if (ListView_GetItemCount(nm->hwndFrom) != 0)
+ {
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONADD), FALSE);
+
+ if (ListView_GetNextItem(hShown, -1, LVIS_SELECTED | LVIS_FOCUSED) == 0 )
+ {
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONREMOVE), FALSE);
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEDOWN), FALSE);
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEUP), FALSE);
+ }
+ else
+ {
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONREMOVE), TRUE);
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEDOWN), TRUE);
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEUP), TRUE);
+ }
+ }
+ break;
+ }
+ }
+ break;
+ case LVN_KEYDOWN:
+ case NM_CLICK:
+ pnmv = (NM_LISTVIEW *)nm;
+ if (//!(pnmv->uOldState & LVIS_SELECTED) &&
+ (pnmv->uNewState & LVIS_SELECTED))
+ {
+ if (pnmv->iItem == 0 && pnmv->hdr.idFrom == IDC_LISTSHOWCOLUMNS)
+ {
+ }
+ }
+ switch (nm->idFrom)
+ {
+ case IDC_LISTAVAILABLECOLUMNS:
+ if (ListView_GetItemCount(nm->hwndFrom) != 0)
+ {
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONADD), TRUE);
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONREMOVE), FALSE);
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEDOWN), FALSE);
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEUP), FALSE);
+ }
+ break;
+
+ case IDC_LISTSHOWCOLUMNS:
+ if (ListView_GetItemCount(nm->hwndFrom) != 0)
+ {
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONADD), FALSE);
+ if (ListView_GetNextItem(hShown, -1, LVIS_SELECTED | LVIS_FOCUSED) == 0 )
+ {
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONREMOVE), FALSE);
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEDOWN), FALSE);
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEUP), FALSE);
+ }
+ else
+ {
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONREMOVE), TRUE);
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEDOWN), TRUE);
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEUP), TRUE);
+ }
+ }
+ break;
+ }
+ //SetFocus( nm->hwndFrom );
+ return TRUE;
+ }
+ }
+ return FALSE;
+ case WM_COMMAND:
+ {
+ WORD wID = GET_WM_COMMAND_ID(wParam, lParam);
+ HWND hWndCtrl = GET_WM_COMMAND_HWND(wParam, lParam);
+ int nPos = 0;
+
+ switch (wID)
+ {
+ case IDC_LISTSHOWCOLUMNS:
+ break;
+ case IDC_BUTTONADD:
+ // Move selected Item in Available to Shown
+ nPos = DoExchangeItem(hAvailable, hShown, 0);
+ if (nPos)
+ {
+ EnableWindow(hWndCtrl,FALSE);
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONREMOVE), TRUE);
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEUP), TRUE);
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEDOWN), FALSE);
+ }
+ break;
+
+ case IDC_BUTTONREMOVE:
+ // Move selected Item in Show to Available
+ if (DoExchangeItem( hShown, hAvailable, 1))
+ {
+ EnableWindow(hWndCtrl,FALSE);
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONADD), TRUE);
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEUP), FALSE);
+ EnableWindow(GetDlgItem(hDlg, IDC_BUTTONMOVEDOWN), FALSE);
+ }
+ break;
+
+ case IDC_BUTTONMOVEDOWN:
+ // Move selected item in the Show window up 1 item
+ DoMoveItem(hShown, TRUE);
+ break;
+
+ case IDC_BUTTONMOVEUP:
+ // Move selected item in the Show window down 1 item
+ DoMoveItem(hShown, FALSE);
+ break;
+
+ case IDOK:
+ // Save users choices
+ nShown = ListView_GetItemCount(hShown);
+ nAvail = ListView_GetItemCount(hAvailable);
+ nCount = 0;
+ for (i = 0; i < nShown; i++)
+ {
+ lvi.iSubItem = 0;
+ lvi.mask = LVIF_PARAM;
+ lvi.pszText = 0;
+ lvi.iItem = i;
+ BOOL b_res = ListView_GetItem(hShown, &lvi);
+ b_res++;
+ order[nCount++] = lvi.lParam;
+ shown[lvi.lParam] = TRUE;
+ }
+ for (i = 0; i < nAvail; i++)
+ {
+ lvi.iSubItem = 0;
+ lvi.mask = LVIF_PARAM;
+ lvi.pszText = 0;
+ lvi.iItem = i;
+ BOOL b_res = ListView_GetItem(hAvailable, &lvi);
+ b_res++;
+ order[nCount++] = lvi.lParam;
+ shown[lvi.lParam] = FALSE;
+ }
+ pfnSetColumnInfo(order, shown);
+ EndDialog(hDlg, 1);
+ return TRUE;
+
+ case IDCANCEL:
+ EndDialog(hDlg, 0);
+ return TRUE;
+ }
+ }
+ break;
+ }
+ return 0;
+}
+
+static void GetColumnInfo(int *order, int *shown)
+{
+ GetColumnOrder(order);
+ GetColumnShown(shown);
+}
+
+static void SetColumnInfo(int *order, int *shown)
+{
+ SetColumnOrder(order);
+ SetColumnShown(shown);
+}
+
+INT_PTR CALLBACK ColumnDialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam)
+{
+ static int shown[COLUMN_MAX];
+ static int order[COLUMN_MAX];
+ extern const LPCTSTR column_names[COLUMN_MAX]; // from winui.cpp, should improve
+
+ return InternalColumnDialogProc(hDlg, Msg, wParam, lParam, COLUMN_MAX, shown, order, column_names, GetRealColumnOrder, GetColumnInfo, SetColumnInfo);
+}
+
diff --git a/src/osd/winui/columnedit.h b/src/osd/winui/columnedit.h
new file mode 100644
index 00000000000..a3c499ed999
--- /dev/null
+++ b/src/osd/winui/columnedit.h
@@ -0,0 +1,15 @@
+// For licensing and usage information, read docs/winui_license.txt
+//****************************************************************************
+
+#ifndef COLUMNEDIT_H
+#define COLUMNEDIT_H
+
+INT_PTR InternalColumnDialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam,
+ int nColumnMax, int *shown, int *order,
+ const LPCTSTR *names, void (*pfnGetRealColumnOrder)(int *),
+ void (*pfnGetColumnInfo)(int *pnOrder, int *pnShown),
+ void (*pfnSetColumnInfo)(int *pnOrder, int *pnShown));
+
+INT_PTR CALLBACK ColumnDialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam);
+
+#endif
diff --git a/src/osd/winui/datamap.cpp b/src/osd/winui/datamap.cpp
new file mode 100644
index 00000000000..28d3cc0b854
--- /dev/null
+++ b/src/osd/winui/datamap.cpp
@@ -0,0 +1,765 @@
+// For licensing and usage information, read docs/winui_license.txt
+// MASTER
+//****************************************************************************
+
+//============================================================
+//
+// datamap.c - Win32 dialog and options bridge code
+//
+//============================================================
+
+// standard windows headers
+#include <windows.h>
+#include <windowsx.h>
+#include <commctrl.h>
+#include <tchar.h>
+
+// standard C headers
+
+// MAME/MAMEUI headers
+#include "mui_opts.h"
+#include "datamap.h"
+#include "winutf8.h"
+
+
+#ifdef _MSC_VER
+#define snprintf _snprintf
+#endif
+
+
+//============================================================
+// TYPE DEFINITIONS
+//============================================================
+
+enum _control_type
+{
+ CT_UNKNOWN,
+ CT_BUTTON,
+ CT_STATIC,
+ CT_EDIT,
+ CT_COMBOBOX,
+ CT_TRACKBAR,
+ CT_LISTVIEW
+};
+
+typedef enum _control_type control_type;
+
+
+typedef struct _datamap_entry datamap_entry;
+struct _datamap_entry
+{
+ // the basics about the entry
+ int dlgitem;
+ datamap_entry_type type;
+ const char *option_name;
+
+ // callbacks
+ datamap_callback callbacks[DCT_COUNT];
+ get_option_name_callback get_option_name;
+
+ // formats
+ const char *int_format;
+ const char *float_format;
+
+ // trackbar options
+ BOOL use_trackbar_options;
+ float trackbar_min;
+ float trackbar_max;
+ float trackbar_increments;
+};
+
+
+struct _datamap
+{
+ int entry_count;
+ datamap_entry entries[256]; // 256 options entries seems enough for now...
+};
+
+typedef void (*datamap_default_callback)(datamap *map, HWND control, windows_options *opts, datamap_entry *entry, const char *option_name);
+
+
+
+//============================================================
+// PROTOTYPES
+//============================================================
+
+static datamap_entry *find_entry(datamap *map, int dlgitem);
+static control_type get_control_type(HWND control);
+static int control_operation(datamap *map, HWND dialog, windows_options *opts, datamap_entry *entry, datamap_callback_type callback_type);
+static void read_control(datamap *map, HWND control, windows_options *opts, datamap_entry *entry, const char *option_name);
+static void populate_control(datamap *map, HWND control, windows_options *opts, datamap_entry *entry, const char *option_name);
+static char *tztrim(float float_value);
+
+
+//============================================================
+// datamap_create
+//============================================================
+
+datamap *datamap_create(void)
+{
+ datamap *map = (datamap *)malloc(sizeof(*map));
+ if (!map)
+ return NULL;
+
+ map->entry_count = 0;
+ return map;
+}
+
+
+
+//============================================================
+// datamap_free
+//============================================================
+
+void datamap_free(datamap *map)
+{
+ free(map);
+}
+
+
+
+//============================================================
+// datamap_add
+//============================================================
+
+void datamap_add(datamap *map, int dlgitem, datamap_entry_type type, const char *option_name)
+{
+ // sanity check for too many entries
+ if (!(map->entry_count < ARRAY_LENGTH(map->entries)))
+ {
+ printf("Datamap.cpp Line __LINE__ too many entries\n");
+ return;
+ }
+
+ // add entry to the datamap
+ memset(&map->entries[map->entry_count], 0, sizeof(map->entries[map->entry_count]));
+ map->entries[map->entry_count].dlgitem = dlgitem;
+ map->entries[map->entry_count].type = type;
+ map->entries[map->entry_count].option_name = option_name;
+ map->entry_count++;
+}
+
+
+
+//============================================================
+// datamap_set_callback
+//============================================================
+
+void datamap_set_callback(datamap *map, int dlgitem, datamap_callback_type callback_type, datamap_callback callback)
+{
+ datamap_entry *entry;
+
+ assert(callback_type >= 0);
+ assert(callback_type < DCT_COUNT);
+
+ entry = find_entry(map, dlgitem);
+ entry->callbacks[callback_type] = callback;
+}
+
+
+
+//============================================================
+// datamap_set_option_name_callback
+//============================================================
+
+void datamap_set_option_name_callback(datamap *map, int dlgitem, get_option_name_callback get_option_name)
+{
+ datamap_entry *entry;
+ entry = find_entry(map, dlgitem);
+ entry->get_option_name = get_option_name;
+}
+
+
+
+//============================================================
+// datamap_set_trackbar_range
+//============================================================
+
+void datamap_set_trackbar_range(datamap *map, int dlgitem, float min, float max, float increments)
+{
+ datamap_entry *entry = find_entry(map, dlgitem);
+ entry->use_trackbar_options = TRUE;
+ entry->trackbar_min = min;
+ entry->trackbar_max = max;
+ entry->trackbar_increments = increments;
+}
+
+
+
+//============================================================
+// datamap_set_int_format
+//============================================================
+
+void datamap_set_int_format(datamap *map, int dlgitem, const char *format)
+{
+ datamap_entry *entry = find_entry(map, dlgitem);
+ entry->int_format = format;
+}
+
+
+
+//============================================================
+// datamap_set_float_format
+//============================================================
+
+void datamap_set_float_format(datamap *map, int dlgitem, const char *format)
+{
+ datamap_entry *entry = find_entry(map, dlgitem);
+ entry->float_format = format;
+}
+
+
+
+//============================================================
+// datamap_read_control
+//============================================================
+
+BOOL datamap_read_control(datamap *map, HWND dialog, windows_options &opts, int dlgitem)
+{
+ datamap_entry *entry = find_entry(map, dlgitem);
+ return control_operation(map, dialog, &opts, entry, DCT_READ_CONTROL);
+}
+
+
+
+//============================================================
+// datamap_read_all_controls
+//============================================================
+
+void datamap_read_all_controls(datamap *map, HWND dialog, windows_options &opts)
+{
+ for (int i = 0; i < map->entry_count; i++)
+ control_operation(map, dialog, &opts, &map->entries[i], DCT_READ_CONTROL);
+}
+
+
+
+//============================================================
+// datamap_populate_control
+//============================================================
+
+void datamap_populate_control(datamap *map, HWND dialog, windows_options &opts, int dlgitem)
+{
+ datamap_entry *entry = find_entry(map, dlgitem);
+ control_operation(map, dialog, &opts, entry, DCT_POPULATE_CONTROL);
+}
+
+
+
+//============================================================
+// datamap_populate_all_controls
+//============================================================
+
+void datamap_populate_all_controls(datamap *map, HWND dialog, windows_options &opts)
+{
+ for (int i = 0; i < map->entry_count; i++)
+ control_operation(map, dialog, &opts, &map->entries[i], DCT_POPULATE_CONTROL);
+}
+
+
+
+//============================================================
+// datamap_update_control
+//============================================================
+
+void datamap_update_control(datamap *map, HWND dialog, windows_options &opts, int dlgitem)
+{
+ datamap_entry *entry = find_entry(map, dlgitem);
+ control_operation(map, dialog, &opts, entry, DCT_UPDATE_STATUS);
+}
+
+
+
+//============================================================
+// datamap_update_all_controls
+//============================================================
+
+void datamap_update_all_controls(datamap *map, HWND dialog, windows_options *opts)
+{
+ for (int i = 0; i < map->entry_count; i++)
+ control_operation(map, dialog, opts, &map->entries[i], DCT_UPDATE_STATUS);
+}
+
+
+
+//============================================================
+// find_entry
+//============================================================
+
+static datamap_entry *find_entry(datamap *map, int dlgitem)
+{
+ for (int i = 0; i < map->entry_count; i++)
+ if (map->entries[i].dlgitem == dlgitem)
+ return &map->entries[i];
+
+ // should not reach here
+ printf("Datamap.cpp line __LINE__ couldn't find an entry\n");
+ return NULL;
+}
+
+
+
+//============================================================
+// get_control_type
+//============================================================
+
+static control_type get_control_type(HWND control)
+{
+ control_type type;
+ TCHAR class_name[256];
+
+ GetClassName(control, class_name, ARRAY_LENGTH(class_name));
+ if (!_tcscmp(class_name, WC_BUTTON))
+ type = CT_BUTTON;
+ else if (!_tcscmp(class_name, WC_STATIC))
+ type = CT_STATIC;
+ else if (!_tcscmp(class_name, WC_EDIT))
+ type = CT_EDIT;
+ else if (!_tcscmp(class_name, WC_COMBOBOX))
+ type = CT_COMBOBOX;
+ else if (!_tcscmp(class_name, TRACKBAR_CLASS))
+ type = CT_TRACKBAR;
+ else if (!_tcscmp(class_name, WC_LISTVIEW))
+ type = CT_LISTVIEW;
+ else
+ type = CT_UNKNOWN;
+
+ return type;
+}
+
+
+
+//============================================================
+// is_control_displayonly
+//============================================================
+
+static BOOL is_control_displayonly(HWND control)
+{
+ BOOL displayonly = false;
+ switch(get_control_type(control))
+ {
+ case CT_STATIC:
+ displayonly = true;
+ break;
+
+ case CT_EDIT:
+ displayonly = (GetWindowLong(control, GWL_STYLE) & ES_READONLY) ? true : false;
+ break;
+
+ default:
+ displayonly = false;
+ break;
+ }
+
+ if (!IsWindowEnabled(control))
+ displayonly = true;
+ return displayonly;
+}
+
+
+
+//============================================================
+// broadcast_changes
+//============================================================
+
+static void broadcast_changes(datamap *map, HWND dialog, windows_options *opts, datamap_entry *entry, const char *option_name)
+{
+ HWND other_control;
+ const char *that_option_name;
+
+ for (int i = 0; i < map->entry_count; i++)
+ {
+ // search for an entry with the same option_name, but is not the exact
+ // same entry
+ that_option_name = map->entries[i].option_name;
+ if (map->entries[i].option_name && (&map->entries[i] != entry) && !strcmp(that_option_name, option_name))
+ {
+ // we've found a control sharing the same option; populate it
+ other_control = GetDlgItem(dialog, map->entries[i].dlgitem);
+ if (other_control)
+ populate_control(map, other_control, opts, &map->entries[i], that_option_name);
+ }
+ }
+}
+
+
+
+//============================================================
+// control_operation
+//============================================================
+
+static int control_operation(datamap *map, HWND dialog, windows_options *opts, datamap_entry *entry, datamap_callback_type callback_type)
+{
+ static const datamap_default_callback default_callbacks[DCT_COUNT] =
+ {
+ read_control,
+ populate_control,
+ NULL
+ };
+ int result = 0;
+ const char *option_name;
+ char option_name_buffer[64];
+ char option_value[1024] = {0, };
+
+ HWND control = GetDlgItem(dialog, entry->dlgitem);
+ if (control)
+ {
+ // don't do anything if we're reading from a display-only control
+ if ((callback_type != DCT_READ_CONTROL) || !is_control_displayonly(control))
+ {
+ // figure out the option_name
+ if (entry->get_option_name)
+ {
+ option_name_buffer[0] = '\0';
+ entry->get_option_name(map, dialog, control, option_name_buffer, ARRAY_LENGTH(option_name_buffer));
+ option_name = option_name_buffer;
+ }
+ else
+ option_name = entry->option_name;
+
+ // if reading, get the option value, solely for the purposes of comparison
+ if ((callback_type == DCT_READ_CONTROL) && option_name)
+ snprintf(option_value, ARRAY_LENGTH(option_value), "%s", opts->value(option_name));
+
+ if (entry->callbacks[callback_type])
+ {
+ // use custom callback
+ result = entry->callbacks[callback_type](map, dialog, control, opts, option_name);
+ }
+ else if (default_callbacks[callback_type] && option_name)
+ {
+ // use default callback
+ default_callbacks[callback_type](map, control, opts, entry, option_name);
+ }
+
+ // the result is dependent on the type of control
+ switch(callback_type)
+ {
+ case DCT_READ_CONTROL:
+ // For callbacks that returned TRUE, do not broadcast_changes.
+ if (!result) {
+ // do a check to see if the control changed
+ result = (option_name) && (strcmp(option_value, opts->value(option_name)) != 0);
+ if (result)
+ {
+ // the value has changed; we may need to broadcast the change
+ broadcast_changes(map, dialog, opts, entry, option_name);
+ }
+ }
+ break;
+
+ default:
+ // do nothing
+ break;
+ }
+ }
+ }
+ return result;
+}
+
+
+
+//============================================================
+// trackbar_value_from_position
+//============================================================
+
+static float trackbar_value_from_position(datamap_entry *entry, int position)
+{
+ float position_f = position;
+
+ if (entry->use_trackbar_options)
+ position_f = (position_f * entry->trackbar_increments) + entry->trackbar_min;
+
+ return position_f;
+}
+
+
+
+//============================================================
+// trackbar_position_from_value
+//============================================================
+
+static int trackbar_position_from_value(datamap_entry *entry, float value)
+{
+ if (entry->use_trackbar_options)
+ value = floor((value - entry->trackbar_min) / entry->trackbar_increments + 0.5);
+
+ return (int) value;
+}
+
+
+
+//============================================================
+// read_control
+//============================================================
+
+static void read_control(datamap *map, HWND control, windows_options *opts, datamap_entry *entry, const char *option_name)
+{
+ BOOL bool_value = 0;
+ int int_value = 0;
+ float float_value = 0;
+ const char *string_value;
+ int selected_index = 0;
+ int trackbar_pos = 0;
+ // use default read value behavior
+ switch(get_control_type(control))
+ {
+ case CT_BUTTON:
+ //assert(entry->type == DM_BOOL);
+ bool_value = Button_GetCheck(control);
+ opts->set_value(option_name, bool_value, OPTION_PRIORITY_CMDLINE);
+ break;
+
+ case CT_COMBOBOX:
+ selected_index = ComboBox_GetCurSel(control);
+ if (selected_index >= 0)
+ {
+ switch(entry->type)
+ {
+ case DM_INT:
+ int_value = (int) ComboBox_GetItemData(control, selected_index);
+ opts->set_value(option_name, int_value, OPTION_PRIORITY_CMDLINE);
+ break;
+
+ case DM_STRING:
+ string_value = (const char *) ComboBox_GetItemData(control, selected_index);
+ opts->set_value(option_name, string_value ? string_value : "", OPTION_PRIORITY_CMDLINE);
+ break;
+
+ default:
+ break;
+ }
+ }
+ break;
+
+ case CT_TRACKBAR:
+ trackbar_pos = SendMessage(control, TBM_GETPOS, 0, 0);
+ float_value = trackbar_value_from_position(entry, trackbar_pos);
+ switch(entry->type)
+ {
+ case DM_INT:
+ int_value = (int) float_value;
+ if (int_value != opts->int_value(option_name)) {
+ opts->set_value(option_name, int_value, OPTION_PRIORITY_CMDLINE);
+ }
+ break;
+
+ case DM_FLOAT:
+ // Use tztrim(float_value) or we get trailing zero's that break options_equal().
+ if (float_value != opts->float_value(option_name)) {
+ opts->set_value(option_name, tztrim(float_value), OPTION_PRIORITY_CMDLINE);
+ }
+ break;
+
+ default:
+ break;
+ }
+ break;
+
+ case CT_EDIT:
+ // NYI
+ break;
+
+ case CT_STATIC:
+ case CT_LISTVIEW:
+ case CT_UNKNOWN:
+ // non applicable
+ break;
+ }
+}
+
+
+
+//============================================================
+// populate_control
+//============================================================
+
+static void populate_control(datamap *map, HWND control, windows_options *opts, datamap_entry *entry, const char *option_name)
+{
+ int i = 0;
+ BOOL bool_value = 0;
+ int int_value = 0;
+ float float_value = 0;
+ const char *string_value;
+ const char *item_string;
+ int selected_index = 0;
+ char buffer[128];
+ int trackbar_range = 0;
+ int trackbar_pos = 0;
+ double trackbar_range_d = 0;
+
+ // use default populate control value
+ switch(get_control_type(control))
+ {
+ case CT_BUTTON:
+ assert(entry->type == DM_BOOL);
+ bool_value = opts->bool_value(option_name);
+ Button_SetCheck(control, bool_value);
+ break;
+
+ case CT_EDIT:
+ case CT_STATIC:
+ switch(entry->type)
+ {
+ case DM_STRING:
+ string_value = opts->value(option_name);
+ break;
+
+ case DM_INT:
+ int_value = opts->int_value(option_name);
+ if (entry->int_format != NULL)
+ snprintf(buffer, ARRAY_LENGTH(buffer), entry->int_format, int_value);
+ else
+ snprintf(buffer, ARRAY_LENGTH(buffer), "%d", int_value);
+ string_value = buffer;
+ break;
+
+ case DM_FLOAT:
+ float_value = opts->float_value(option_name);
+ if (entry->float_format != NULL)
+ snprintf(buffer, ARRAY_LENGTH(buffer), entry->float_format, float_value);
+ else
+ snprintf(buffer, ARRAY_LENGTH(buffer), "%f", float_value);
+ string_value = buffer;
+ break;
+
+ default:
+ string_value = "";
+ break;
+ }
+ if (string_value == NULL)
+ string_value = "";
+ win_set_window_text_utf8(control, string_value);
+ break;
+
+ case CT_COMBOBOX:
+ selected_index = 0;
+ switch(entry->type)
+ {
+ case DM_INT:
+ int_value = opts->int_value(option_name);
+ for (i = 0; i < ComboBox_GetCount(control); i++)
+ {
+ if (int_value == (int) ComboBox_GetItemData(control, i))
+ {
+ selected_index = i;
+ break;
+ }
+ }
+ break;
+
+ case DM_STRING:
+ string_value = opts->value(option_name);
+ for (i = 0; i < ComboBox_GetCount(control); i++)
+ {
+ item_string = (const char *) ComboBox_GetItemData(control, i);
+ if (!core_stricmp(string_value, item_string ? item_string : ""))
+ {
+ selected_index = i;
+ break;
+ }
+ }
+ break;
+
+ default:
+ break;
+ }
+ (void)ComboBox_SetCurSel(control, selected_index);
+ break;
+
+ case CT_TRACKBAR:
+ // do we need to set the trackbar options?
+/* if (!entry->use_trackbar_options)
+ {
+ switch(options_get_range_type(opts, option_name))
+ {
+ case OPTION_RANGE_NONE:
+ // do nothing
+ break;
+
+ case OPTION_RANGE_INT:
+ options_get_range_int(opts, option_name, &minval_int, &maxval_int);
+ entry->use_trackbar_options = TRUE;
+ entry->trackbar_min = minval_int;
+ entry->trackbar_max = maxval_int;
+ entry->trackbar_increments = 1;
+ break;
+
+ case OPTION_RANGE_FLOAT:
+ options_get_range_float(opts, option_name, &minval_float, &maxval_float);
+ entry->use_trackbar_options = TRUE;
+ entry->trackbar_min = minval_float;
+ entry->trackbar_max = maxval_float;
+ entry->trackbar_increments = (float)0.05;
+ break;
+ }
+ }
+ */
+
+ // do we specify default options for this control? if so, we need to specify
+ // the range
+ if (entry->use_trackbar_options)
+ {
+ trackbar_range_d = floor(((entry->trackbar_max - entry->trackbar_min)
+ / entry->trackbar_increments) + 0.5);
+ trackbar_range = (int) trackbar_range_d;
+ SendMessage(control, TBM_SETRANGEMIN, (WPARAM) FALSE, (LPARAM) 0);
+ SendMessage(control, TBM_SETRANGEMAX, (WPARAM) FALSE, (LPARAM) trackbar_range);
+ }
+
+ switch(entry->type)
+ {
+ case DM_INT:
+ int_value = opts->int_value(option_name);
+ trackbar_pos = trackbar_position_from_value(entry, int_value);
+ break;
+
+ case DM_FLOAT:
+ float_value = opts->float_value(option_name);
+ trackbar_pos = trackbar_position_from_value(entry, float_value);
+ break;
+
+ default:
+ trackbar_pos = 0;
+ break;
+ }
+ SendMessage(control, TBM_SETPOS, (WPARAM) TRUE, (LPARAM) trackbar_pos);
+ break;
+
+ case CT_LISTVIEW:
+ case CT_UNKNOWN:
+ // non applicable
+ break;
+ }
+}
+
+// Return a string from a float value with trailing zeros removed.
+static char *tztrim(float float_value)
+{
+ static char tz_string[20];
+ char float_string[20];
+ int i = 0;
+
+ sprintf(float_string, "%f", float_value);
+
+ char* ptr = float_string;
+
+ // Copy before the '.'
+ while (*ptr && *ptr != '.')
+ tz_string[i++] = *ptr++;
+
+ // add the '.' and the next digit
+ if (*ptr == '.')
+ {
+ tz_string[i++] = *ptr++;
+ tz_string[i++] = *ptr++;
+ }
+ // Keep copying until we hit a '0'
+ while (*ptr && *ptr != '0')
+ tz_string[i++] = *ptr++;
+
+ // Null terminate
+ tz_string[i] = '\0';
+ return tz_string;
+}
+
diff --git a/src/osd/winui/datamap.h b/src/osd/winui/datamap.h
new file mode 100644
index 00000000000..045ae1245c4
--- /dev/null
+++ b/src/osd/winui/datamap.h
@@ -0,0 +1,73 @@
+// For licensing and usage information, read docs/winui_license.txt
+//****************************************************************************
+
+//============================================================
+//
+// datamap.c - Win32 dialog and options bridge code
+//
+//============================================================
+
+#ifndef _DATAMAP_H_
+#define _DATAMAP_H_
+
+#include "emu.h"
+
+
+//============================================================
+// TYPE DEFINITIONS
+//============================================================
+
+enum _datamap_entry_type
+{
+ DM_NONE = 0,
+ DM_BOOL,
+ DM_INT,
+ DM_FLOAT,
+ DM_STRING
+};
+typedef enum _datamap_entry_type datamap_entry_type;
+
+
+enum _datamap_callback_type
+{
+ DCT_READ_CONTROL,
+ DCT_POPULATE_CONTROL,
+ DCT_UPDATE_STATUS,
+
+ DCT_COUNT
+};
+
+typedef enum _datamap_callback_type datamap_callback_type;
+
+
+typedef struct _datamap datamap;
+// MSH - Callback can now return TRUE, signifying that changes have been made, but should NOT be broadcast.
+typedef BOOL (*datamap_callback)(datamap *map, HWND dialog, HWND control, windows_options *opts, const char *option_name);
+typedef void (*get_option_name_callback)(datamap *map, HWND dialog, HWND control, char *buffer, size_t buffer_size);
+
+
+//============================================================
+// PROTOTYPES
+//============================================================
+
+// datamap creation and disposal
+datamap *datamap_create(void);
+void datamap_free(datamap *map);
+
+// datamap setup
+void datamap_add(datamap *map, int dlgitem, datamap_entry_type type, const char *option_name);
+void datamap_set_callback(datamap *map, int dlgitem, datamap_callback_type callback_type, datamap_callback callback);
+void datamap_set_option_name_callback(datamap *map, int dlgitem, get_option_name_callback get_option_name);
+void datamap_set_trackbar_range(datamap *map, int dlgitem, float min, float max, float increments);
+void datamap_set_int_format(datamap *map, int dlgitem, const char *format);
+void datamap_set_float_format(datamap *map, int dlgitem, const char *format);
+
+// datamap operations
+BOOL datamap_read_control(datamap *map, HWND dialog, windows_options &opts, int dlgitem);
+void datamap_read_all_controls(datamap *map, HWND dialog, windows_options &opts);
+void datamap_populate_control(datamap *map, HWND dialog, windows_options &opts, int dlgitem);
+void datamap_populate_all_controls(datamap *map, HWND dialog, windows_options &opts);
+void datamap_update_control(datamap *map, HWND dialog, windows_options &opts, int dlgitem);
+void datamap_update_all_controls(datamap *map, HWND dialog, windows_options *opts);
+
+#endif // _DATAMAP_H_
diff --git a/src/osd/winui/dialogs.cpp b/src/osd/winui/dialogs.cpp
new file mode 100644
index 00000000000..fd74e636d2e
--- /dev/null
+++ b/src/osd/winui/dialogs.cpp
@@ -0,0 +1,847 @@
+// For licensing and usage information, read docs/winui_license.txt
+// MASTER
+//****************************************************************************
+
+/***************************************************************************
+
+ dialogs.c
+
+ Dialog box procedures go here
+
+***************************************************************************/
+
+
+#ifdef _MSC_VER
+#ifndef NONAMELESSUNION
+#define NONAMELESSUNION
+#endif
+#endif
+
+// standard windows headers
+#include <windows.h>
+#include <windowsx.h>
+#include <shellapi.h> // ShellExecute
+#include <commctrl.h>
+
+// standard C headers
+#include <tchar.h>
+
+// MAMEUI headers
+#include "bitmask.h"
+#include "treeview.h"
+#include "resource.h"
+#include "mui_opts.h"
+#include "help.h"
+#include "properties.h" // For GetHelpIDs
+
+// MAME headers
+#include "winutf8.h"
+
+#ifdef _MSC_VER
+#define snprintf _snprintf
+#endif
+
+static struct ComboBoxHistoryTab
+{
+ const wchar_t* m_pText;
+ const int m_pData;
+} g_ComboBoxHistoryTab[] =
+{
+ { TEXT("Artwork"), TAB_ARTWORK },
+ { TEXT("Boss"), TAB_BOSSES },
+ { TEXT("Cabinet"), TAB_CABINET },
+ { TEXT("Control Panel"), TAB_CONTROL_PANEL },
+ { TEXT("Cover"), TAB_COVER },
+ { TEXT("End"), TAB_ENDS },
+ { TEXT("Flyer"), TAB_FLYER },
+ { TEXT("Game Over"), TAB_GAMEOVER },
+ { TEXT("How To"), TAB_HOWTO },
+ { TEXT("Logo"), TAB_LOGO },
+ { TEXT("Marquee"), TAB_MARQUEE },
+ { TEXT("PCB"), TAB_PCB },
+ { TEXT("Scores"), TAB_SCORES },
+ { TEXT("Select"), TAB_SELECT },
+ { TEXT("Snapshot"), TAB_SCREENSHOT },
+ { TEXT("Title"), TAB_TITLE },
+ { TEXT("Versus"), TAB_VERSUS },
+ { TEXT("All"), TAB_ALL },
+ { TEXT("None"), TAB_NONE }
+};
+
+
+static string g_FilterText;
+
+#define NUM_EXCLUSIONS 12
+#define NUMHISTORYTAB ARRAY_LENGTH(g_ComboBoxHistoryTab)
+
+/* Pairs of filters that exclude each other */
+static DWORD filterExclusion[NUM_EXCLUSIONS] =
+{
+ IDC_FILTER_CLONES, IDC_FILTER_ORIGINALS,
+ IDC_FILTER_NONWORKING, IDC_FILTER_WORKING,
+ IDC_FILTER_UNAVAILABLE, IDC_FILTER_AVAILABLE,
+ IDC_FILTER_RASTER, IDC_FILTER_VECTOR,
+ IDC_FILTER_HORIZONTAL, IDC_FILTER_VERTICAL,
+ IDC_FILTER_ARCADE, IDC_FILTER_MESS,
+};
+
+static void DisableFilterControls(HWND hWnd, LPCFOLDERDATA lpFilterRecord, LPCFILTER_ITEM lpFilterItem, DWORD dwFlags);
+static void EnableFilterExclusions(HWND hWnd, DWORD dwCtrlID);
+static DWORD ValidateFilters(LPCFOLDERDATA lpFilterRecord, DWORD dwFlags);
+static void OnHScroll(HWND hWnd, HWND hwndCtl, UINT code, int pos);
+
+/***************************************************************************/
+
+const char * GetFilterText(void)
+{
+ return g_FilterText.c_str();
+}
+
+INT_PTR CALLBACK ResetDialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam)
+{
+ BOOL resetFilters = false;
+ BOOL resetGames = false;
+ BOOL resetUI = false;
+ BOOL resetDefaults = false;
+
+ switch (Msg)
+ {
+ case WM_INITDIALOG:
+ return true;
+
+ case WM_HELP:
+ /* User clicked the ? from the upper right on a control */
+ HelpFunction((HWND)((LPHELPINFO)lParam)->hItemHandle, MAMEUICONTEXTHELP, HH_TP_HELP_WM_HELP, GetHelpIDs());
+ break;
+
+ case WM_CONTEXTMENU:
+ HelpFunction((HWND)wParam, MAMEUICONTEXTHELP, HH_TP_HELP_CONTEXTMENU, GetHelpIDs());
+
+ break;
+
+ case WM_COMMAND :
+ switch (GET_WM_COMMAND_ID(wParam, lParam))
+ {
+ case IDOK :
+ resetFilters = Button_GetCheck(GetDlgItem(hDlg, IDC_RESET_FILTERS));
+ resetGames = Button_GetCheck(GetDlgItem(hDlg, IDC_RESET_GAMES));
+ resetDefaults = Button_GetCheck(GetDlgItem(hDlg, IDC_RESET_DEFAULT));
+ resetUI = Button_GetCheck(GetDlgItem(hDlg, IDC_RESET_UI));
+ if (resetFilters || resetGames || resetUI || resetDefaults)
+ {
+
+ TCHAR temp[400];
+ _tcscpy(temp, TEXT(MAMEUINAME));
+ _tcscat(temp, TEXT(" will now reset the following\n"));
+ _tcscat(temp, TEXT("to the default settings:\n\n"));
+
+ if (resetDefaults)
+ _tcscat(temp, TEXT("Global game options\n"));
+ if (resetGames)
+ _tcscat(temp, TEXT("Individual game options\n"));
+ if (resetFilters)
+ _tcscat(temp, TEXT("Custom folder filters\n"));
+ if (resetUI)
+ {
+ _tcscat(temp, TEXT("User interface settings\n\n"));
+ _tcscat(temp, TEXT("Resetting the User Interface options\n"));
+ _tcscat(temp, TEXT("requires exiting "));
+ _tcscat(temp, TEXT(MAMEUINAME));
+ _tcscat(temp, TEXT(".\n"));
+ }
+ _tcscat(temp, TEXT("\nDo you wish to continue?"));
+ if (MessageBox(hDlg, temp, TEXT("Restore Settings"), IDOK) == IDOK)
+ {
+ if (resetFilters)
+ ResetFilters();
+
+ if (resetGames)
+ ResetAllGameOptions();
+
+ if (resetDefaults)
+ ResetGameDefaults();
+
+ // This is the only case we need to exit and restart for.
+ if (resetUI)
+ {
+ ResetGUI();
+ EndDialog(hDlg, 1);
+ return true;
+ } else {
+ EndDialog(hDlg, 0);
+ return true;
+ }
+ } else {
+ // Give the user a chance to change what they want to reset.
+ break;
+ }
+ }
+ // Nothing was selected but OK, just fall through
+ case IDCANCEL :
+ EndDialog(hDlg, 0);
+ return true;
+ }
+ break;
+ }
+ return 0;
+}
+
+INT_PTR CALLBACK InterfaceDialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam)
+{
+ CHOOSECOLOR cc;
+ COLORREF choice_colors[16];
+ TCHAR tmp[4];
+ int i = 0;
+ BOOL bRedrawList = false;
+ int nCurSelection = 0;
+ int nHistoryTab = 0;
+ int nPatternCount = 0;
+ int value = 0;
+
+ switch (Msg)
+ {
+ case WM_INITDIALOG:
+ Button_SetCheck(GetDlgItem(hDlg,IDC_START_GAME_CHECK),GetGameCheck());
+ Button_SetCheck(GetDlgItem(hDlg,IDC_JOY_GUI),GetJoyGUI());
+ Button_SetCheck(GetDlgItem(hDlg,IDC_KEY_GUI),GetKeyGUI());
+ Button_SetCheck(GetDlgItem(hDlg,IDC_OVERRIDE_REDX),GetOverrideRedX());
+ Button_SetCheck(GetDlgItem(hDlg,IDC_HIDE_MOUSE),GetHideMouseOnStartup());
+
+ // Get the current value of the control
+ SendDlgItemMessage(hDlg, IDC_CYCLETIMESEC, TBM_SETRANGE, (WPARAM)false, (LPARAM)MAKELONG(0, 60)); /* [0, 60] */
+ value = GetCycleScreenshot();
+ SendDlgItemMessage(hDlg,IDC_CYCLETIMESEC, TBM_SETPOS, true, value);
+ _itot(value,tmp,10);
+ SendDlgItemMessage(hDlg,IDC_CYCLETIMESECTXT,WM_SETTEXT,0, (WPARAM)tmp);
+
+ Button_SetCheck(GetDlgItem(hDlg,IDC_STRETCH_SCREENSHOT_LARGER), GetStretchScreenShotLarger());
+ Button_SetCheck(GetDlgItem(hDlg,IDC_FILTER_INHERIT), GetFilterInherit());
+ Button_SetCheck(GetDlgItem(hDlg,IDC_NOOFFSET_CLONES), GetOffsetClones());
+
+ for (int i = 0; i < NUMHISTORYTAB; i++)
+ {
+ (void)ComboBox_InsertString(GetDlgItem(hDlg, IDC_HISTORY_TAB), i, g_ComboBoxHistoryTab[i].m_pText);
+ (void)ComboBox_SetItemData(GetDlgItem(hDlg, IDC_HISTORY_TAB), i, g_ComboBoxHistoryTab[i].m_pData);
+ }
+
+ if (GetHistoryTab() < MAX_TAB_TYPES)
+ (void)ComboBox_SetCurSel(GetDlgItem(hDlg, IDC_HISTORY_TAB), GetHistoryTab());
+ else
+ (void)ComboBox_SetCurSel(GetDlgItem(hDlg, IDC_HISTORY_TAB), GetHistoryTab()-TAB_SUBTRACT);
+
+ (void)ComboBox_AddString(GetDlgItem(hDlg, IDC_SNAPNAME), TEXT("Gamename"));
+ (void)ComboBox_SetItemData(GetDlgItem(hDlg, IDC_SNAPNAME), nPatternCount++, "%g");
+ (void)ComboBox_AddString(GetDlgItem(hDlg, IDC_SNAPNAME), TEXT("Gamename + Increment"));
+ (void)ComboBox_SetItemData(GetDlgItem(hDlg, IDC_SNAPNAME), nPatternCount++, "%g%i");
+ (void)ComboBox_AddString(GetDlgItem(hDlg, IDC_SNAPNAME), TEXT("Gamename/Gamename"));
+ (void)ComboBox_SetItemData(GetDlgItem(hDlg, IDC_SNAPNAME), nPatternCount++, "%g/%g");
+ (void)ComboBox_AddString(GetDlgItem(hDlg, IDC_SNAPNAME), TEXT("Gamename/Gamename + Increment"));
+ (void)ComboBox_SetItemData(GetDlgItem(hDlg, IDC_SNAPNAME), nPatternCount++, "%g/%g%i");
+ (void)ComboBox_AddString(GetDlgItem(hDlg, IDC_SNAPNAME), TEXT("Gamename/Increment"));
+ (void)ComboBox_SetItemData(GetDlgItem(hDlg, IDC_SNAPNAME), nPatternCount, "%g/%i");
+ //Default to this setting
+ (void)ComboBox_SetCurSel(GetDlgItem(hDlg, IDC_SNAPNAME), nPatternCount++);
+
+ {
+ const char* snapname = GetSnapName();
+ if (core_stricmp(snapname,"%g" )==0)
+ (void)ComboBox_SetCurSel(GetDlgItem(hDlg, IDC_SNAPNAME), 0);
+ else
+ if (core_stricmp(snapname,"%g%i" )==0)
+ (void)ComboBox_SetCurSel(GetDlgItem(hDlg, IDC_SNAPNAME), 1);
+ else
+ if (core_stricmp(snapname,"%g/%g" )==0)
+ (void)ComboBox_SetCurSel(GetDlgItem(hDlg, IDC_SNAPNAME), 2);
+ else
+ if (core_stricmp(snapname,"%g/%g%i" )==0)
+ (void)ComboBox_SetCurSel(GetDlgItem(hDlg, IDC_SNAPNAME), 3);
+ else
+ if (core_stricmp(snapname,"%g/%i" )==0)
+ (void)ComboBox_SetCurSel(GetDlgItem(hDlg, IDC_SNAPNAME), 4);
+ }
+
+ SendDlgItemMessage(hDlg, IDC_SCREENSHOT_BORDERSIZE, TBM_SETRANGE, (WPARAM)false, (LPARAM)MAKELONG(0, 100)); /* [0, 100] */
+ value = GetScreenshotBorderSize();
+ SendDlgItemMessage(hDlg,IDC_SCREENSHOT_BORDERSIZE, TBM_SETPOS, true, value);
+ _itot(value,tmp,10);
+ SendDlgItemMessage(hDlg,IDC_SCREENSHOT_BORDERSIZETXT,WM_SETTEXT,0, (WPARAM)tmp);
+
+ //return true;
+ break;
+
+ case WM_HELP:
+ /* User clicked the ? from the upper right on a control */
+ HelpFunction((HWND)((LPHELPINFO)lParam)->hItemHandle, MAMEUICONTEXTHELP, HH_TP_HELP_WM_HELP, GetHelpIDs());
+ break;
+
+ case WM_CONTEXTMENU:
+ HelpFunction((HWND)wParam, MAMEUICONTEXTHELP, HH_TP_HELP_CONTEXTMENU, GetHelpIDs());
+ break;
+ case WM_HSCROLL:
+ HANDLE_WM_HSCROLL(hDlg, wParam, lParam, OnHScroll);
+ break;
+ case WM_COMMAND :
+ switch (GET_WM_COMMAND_ID(wParam, lParam))
+ {
+ case IDC_SCREENSHOT_BORDERCOLOR:
+ {
+ for (i=0;i<16;i++)
+ choice_colors[i] = GetCustomColor(i);
+
+ cc.lStructSize = sizeof(CHOOSECOLOR);
+ cc.hwndOwner = hDlg;
+ cc.rgbResult = GetScreenshotBorderColor();
+ cc.lpCustColors = choice_colors;
+ cc.Flags = CC_ANYCOLOR | CC_RGBINIT | CC_SOLIDCOLOR;
+ if (!ChooseColor(&cc))
+ return true;
+ for (i=0; i<16; i++)
+ SetCustomColor(i,choice_colors[i]);
+ SetScreenshotBorderColor(cc.rgbResult);
+ UpdateScreenShot();
+ return true;
+ }
+ case IDOK :
+ {
+ BOOL checked = false;
+
+ SetGameCheck(Button_GetCheck(GetDlgItem(hDlg, IDC_START_GAME_CHECK)));
+ SetJoyGUI(Button_GetCheck(GetDlgItem(hDlg, IDC_JOY_GUI)));
+ SetKeyGUI(Button_GetCheck(GetDlgItem(hDlg, IDC_KEY_GUI)));
+ SetOverrideRedX(Button_GetCheck(GetDlgItem(hDlg, IDC_OVERRIDE_REDX)));
+ SetHideMouseOnStartup(Button_GetCheck(GetDlgItem(hDlg,IDC_HIDE_MOUSE)));
+
+ if( Button_GetCheck(GetDlgItem(hDlg,IDC_RESET_PLAYSTATS ) ) )
+ {
+ ResetPlayCount( -1 );
+ ResetPlayTime( -1 );
+ bRedrawList = true;
+ }
+ value = SendDlgItemMessage(hDlg,IDC_CYCLETIMESEC, TBM_GETPOS, 0, 0);
+ if( GetCycleScreenshot() != value )
+ {
+ SetCycleScreenshot(value);
+ }
+ value = SendDlgItemMessage(hDlg,IDC_SCREENSHOT_BORDERSIZE, TBM_GETPOS, 0, 0);
+ if( GetScreenshotBorderSize() != value )
+ {
+ SetScreenshotBorderSize(value);
+ UpdateScreenShot();
+ }
+ value = SendDlgItemMessage(hDlg,IDC_HIGH_PRIORITY, TBM_GETPOS, 0, 0);
+ checked = Button_GetCheck(GetDlgItem(hDlg,IDC_STRETCH_SCREENSHOT_LARGER));
+ if (checked != GetStretchScreenShotLarger())
+ {
+ SetStretchScreenShotLarger(checked);
+ UpdateScreenShot();
+ }
+ checked = Button_GetCheck(GetDlgItem(hDlg,IDC_FILTER_INHERIT));
+ if (checked != GetFilterInherit())
+ {
+ SetFilterInherit(checked);
+ // LineUpIcons does just a ResetListView(), which is what we want here
+ PostMessage(GetMainWindow(),WM_COMMAND, MAKEWPARAM(ID_VIEW_LINEUPICONS, false),(LPARAM)NULL);
+ }
+ checked = Button_GetCheck(GetDlgItem(hDlg,IDC_NOOFFSET_CLONES));
+ if (checked != GetOffsetClones())
+ {
+ SetOffsetClones(checked);
+ // LineUpIcons does just a ResetListView(), which is what we want here
+ PostMessage(GetMainWindow(),WM_COMMAND, MAKEWPARAM(ID_VIEW_LINEUPICONS, false),(LPARAM)NULL);
+ }
+ nCurSelection = ComboBox_GetCurSel(GetDlgItem(hDlg,IDC_SNAPNAME));
+ if (nCurSelection != CB_ERR) {
+ const char* snapname_selection = (const char*)ComboBox_GetItemData(GetDlgItem(hDlg,IDC_SNAPNAME), nCurSelection);
+ if (snapname_selection) {
+ SetSnapName(snapname_selection);
+ }
+ }
+ EndDialog(hDlg, 0);
+
+ nCurSelection = ComboBox_GetCurSel(GetDlgItem(hDlg,IDC_HISTORY_TAB));
+ if (nCurSelection != CB_ERR)
+ nHistoryTab = ComboBox_GetItemData(GetDlgItem(hDlg,IDC_HISTORY_TAB), nCurSelection);
+ EndDialog(hDlg, 0);
+ if( GetHistoryTab() != nHistoryTab )
+ {
+ SetHistoryTab(nHistoryTab, true);
+ ResizePickerControls(GetMainWindow());
+ UpdateScreenShot();
+ }
+ if( bRedrawList )
+ {
+ UpdateListView();
+ }
+ return true;
+ }
+ case IDCANCEL :
+ EndDialog(hDlg, 0);
+ return true;
+ }
+ break;
+ }
+ return 0;
+}
+
+INT_PTR CALLBACK FilterDialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam)
+{
+ static DWORD dwFilters;
+ static DWORD dwpFilters;
+ static LPCFOLDERDATA lpFilterRecord;
+ string strText;
+ int i = 0;
+
+ switch (Msg)
+ {
+ case WM_INITDIALOG:
+ {
+ LPTREEFOLDER folder = GetCurrentFolder();
+ LPTREEFOLDER lpParent = NULL;
+ LPCFILTER_ITEM g_lpFilterList = GetFilterList();
+
+ dwFilters = 0;
+
+ if (folder)
+ {
+ char tmp[80];
+
+ win_set_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_EDIT), g_FilterText.c_str());
+ Edit_SetSel(GetDlgItem(hDlg, IDC_FILTER_EDIT), 0, -1);
+ // Mask out non filter flags
+ dwFilters = folder->m_dwFlags & F_MASK;
+ // Display current folder name in dialog titlebar
+ snprintf(tmp,ARRAY_LENGTH(tmp),"Filters for %s Folder",folder->m_lpTitle);
+ win_set_window_text_utf8(hDlg, tmp);
+ if ( GetFilterInherit() )
+ {
+ BOOL bShowExplanation = false;
+ lpParent = GetFolder( folder->m_nParent );
+ if( lpParent )
+ {
+ /* Check the Parent Filters and inherit them on child,
+ * No need to promote all games to parent folder, works as is */
+ dwpFilters = lpParent->m_dwFlags & F_MASK;
+ /*Check all possible Filters if inherited solely from parent, e.g. not being set explicitly on our folder*/
+ if( (dwpFilters & F_CLONES) && !(dwFilters & F_CLONES) )
+ {
+ /*Add a Specifier to the Checkbox to show it was inherited from the parent*/
+ strText = win_get_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_CLONES)).append(" (*)");
+ win_set_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_CLONES), strText.c_str());
+ bShowExplanation = true;
+ }
+ if( (dwpFilters & F_NONWORKING) && !(dwFilters & F_NONWORKING) )
+ {
+ /*Add a Specifier to the Checkbox to show it was inherited from the parent*/
+ strText = win_get_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_NONWORKING)).append(" (*)");
+ win_set_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_NONWORKING), strText.c_str());
+ bShowExplanation = true;
+ }
+ if( (dwpFilters & F_UNAVAILABLE) && !(dwFilters & F_UNAVAILABLE) )
+ {
+ /*Add a Specifier to the Checkbox to show it was inherited from the parent*/
+ strText = win_get_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_UNAVAILABLE)).append(" (*)");
+ win_set_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_UNAVAILABLE), strText.c_str());
+ bShowExplanation = true;
+ }
+ if( (dwpFilters & F_VECTOR) && !(dwFilters & F_VECTOR) )
+ {
+ /*Add a Specifier to the Checkbox to show it was inherited from the parent*/
+ strText = win_get_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_VECTOR)).append(" (*)");
+ win_set_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_VECTOR), strText.c_str());
+ bShowExplanation = true;
+ }
+ if( (dwpFilters & F_RASTER) && !(dwFilters & F_RASTER) )
+ {
+ /*Add a Specifier to the Checkbox to show it was inherited from the parent*/
+ strText = win_get_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_RASTER)).append(" (*)");
+ win_set_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_RASTER), strText.c_str());
+ bShowExplanation = true;
+ }
+ if( (dwpFilters & F_ORIGINALS) && !(dwFilters & F_ORIGINALS) )
+ {
+ /*Add a Specifier to the Checkbox to show it was inherited from the parent*/
+ strText = win_get_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_ORIGINALS)).append(" (*)");
+ win_set_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_ORIGINALS), strText.c_str());
+ bShowExplanation = true;
+ }
+ if( (dwpFilters & F_WORKING) && !(dwFilters & F_WORKING) )
+ {
+ /*Add a Specifier to the Checkbox to show it was inherited from the parent*/
+ strText = win_get_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_WORKING)).append(" (*)");
+ win_set_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_WORKING), strText.c_str());
+ bShowExplanation = true;
+ }
+ if( (dwpFilters & F_AVAILABLE) && !(dwFilters & F_AVAILABLE) )
+ {
+ /*Add a Specifier to the Checkbox to show it was inherited from the parent*/
+ strText = win_get_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_AVAILABLE)).append(" (*)");
+ win_set_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_AVAILABLE), strText.c_str());
+ bShowExplanation = true;
+ }
+ if( (dwpFilters & F_HORIZONTAL) && !(dwFilters & F_HORIZONTAL) )
+ {
+ /*Add a Specifier to the Checkbox to show it was inherited from the parent*/
+ strText = win_get_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_HORIZONTAL)).append(" (*)");
+ win_set_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_HORIZONTAL), strText.c_str());
+ bShowExplanation = true;
+ }
+ if( (dwpFilters & F_VERTICAL) && !(dwFilters & F_VERTICAL) )
+ {
+ /*Add a Specifier to the Checkbox to show it was inherited from the parent*/
+ strText = win_get_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_VERTICAL)).append(" (*)");
+ win_set_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_VERTICAL), strText.c_str());
+ bShowExplanation = true;
+ }
+ if( (dwpFilters & F_ARCADE) && !(dwFilters & F_ARCADE) )
+ {
+ /*Add a Specifier to the Checkbox to show it was inherited from the parent*/
+ strText = win_get_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_ARCADE)).append(" (*)");
+ win_set_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_ARCADE), strText.c_str());
+ bShowExplanation = true;
+ }
+ if( (dwpFilters & F_MESS) && !(dwFilters & F_MESS) )
+ {
+ /*Add a Specifier to the Checkbox to show it was inherited from the parent*/
+ strText = win_get_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_MESS)).append(" (*)");
+ win_set_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_MESS), strText.c_str());
+ bShowExplanation = true;
+ }
+ /*Do not or in the Values of the parent, so that the values of the folder still can be set*/
+ //dwFilters |= dwpFilters;
+ }
+ if( ! bShowExplanation )
+ {
+ ShowWindow(GetDlgItem(hDlg, IDC_INHERITED), false );
+ }
+ }
+ else
+ ShowWindow(GetDlgItem(hDlg, IDC_INHERITED), false );
+
+ // Find the matching filter record if it exists
+ lpFilterRecord = FindFilter(folder->m_nFolderId);
+
+ // initialize and disable appropriate controls
+ for (i = 0; g_lpFilterList[i].m_dwFilterType; i++)
+ DisableFilterControls(hDlg, lpFilterRecord, &g_lpFilterList[i], dwFilters);
+ }
+ SetFocus(GetDlgItem(hDlg, IDC_FILTER_EDIT));
+ return false;
+ }
+ case WM_HELP:
+ // User clicked the ? from the upper right on a control
+ HelpFunction((HWND)((LPHELPINFO)lParam)->hItemHandle, MAMEUICONTEXTHELP,
+ HH_TP_HELP_WM_HELP, GetHelpIDs());
+ break;
+
+ case WM_CONTEXTMENU:
+ HelpFunction((HWND)wParam, MAMEUICONTEXTHELP, HH_TP_HELP_CONTEXTMENU, GetHelpIDs());
+ break;
+
+ case WM_COMMAND:
+ {
+ WORD wID = GET_WM_COMMAND_ID(wParam, lParam);
+ WORD wNotifyCode = GET_WM_COMMAND_CMD(wParam, lParam);
+ LPTREEFOLDER folder = GetCurrentFolder();
+ LPCFILTER_ITEM g_lpFilterList = GetFilterList();
+
+ switch (wID)
+ {
+ case IDOK:
+ dwFilters = 0;
+
+ g_FilterText = win_get_window_text_utf8(GetDlgItem(hDlg, IDC_FILTER_EDIT));
+
+ // see which buttons are checked
+ for (i = 0; g_lpFilterList[i].m_dwFilterType; i++)
+ if (Button_GetCheck(GetDlgItem(hDlg, g_lpFilterList[i].m_dwCtrlID)))
+ dwFilters |= g_lpFilterList[i].m_dwFilterType;
+
+ // Mask out invalid filters
+ dwFilters = ValidateFilters(lpFilterRecord, dwFilters);
+
+ // Keep non filter flags
+ folder->m_dwFlags &= ~F_MASK;
+
+ // put in the set filters
+ folder->m_dwFlags |= dwFilters;
+
+ EndDialog(hDlg, 1);
+ return true;
+
+ case IDCANCEL:
+ EndDialog(hDlg, 0);
+ return true;
+
+ default:
+ // Handle unchecking mutually exclusive filters
+ if (wNotifyCode == BN_CLICKED)
+ EnableFilterExclusions(hDlg, wID);
+ }
+ }
+ break;
+ }
+ return 0;
+}
+
+INT_PTR CALLBACK AboutDialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam)
+{
+ switch (Msg)
+ {
+ case WM_INITDIALOG:
+ {
+ HBITMAP hBmp;
+ hBmp = (HBITMAP)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDB_ABOUT), IMAGE_BITMAP, 0, 0, LR_SHARED);
+ SendDlgItemMessage(hDlg, IDC_ABOUT, STM_SETIMAGE, (WPARAM)IMAGE_BITMAP, (LPARAM)hBmp);
+ win_set_window_text_utf8(GetDlgItem(hDlg, IDC_VERSION), GetVersionString());
+ }
+ return 1;
+
+ case WM_COMMAND:
+ EndDialog(hDlg, 0);
+ return 1;
+ }
+ return 0;
+}
+
+INT_PTR CALLBACK AddCustomFileDialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam)
+{
+ static LPTREEFOLDER default_selection = NULL;
+ static int driver_index = 0;
+ BOOL res = 0;
+
+ switch (Msg)
+ {
+ case WM_INITDIALOG:
+ {
+ TREEFOLDER **folders;
+ int num_folders = 0;
+ int i = 0;
+ TVINSERTSTRUCT tvis;
+ TVITEM tvi;
+ BOOL first_entry = true;
+ HIMAGELIST treeview_icons = GetTreeViewIconList();
+
+ // current game passed in using DialogBoxParam()
+ driver_index = lParam;
+
+ (void)TreeView_SetImageList(GetDlgItem(hDlg,IDC_CUSTOM_TREE), treeview_icons, LVSIL_NORMAL);
+
+ GetFolders(&folders,&num_folders);
+
+ // should add "New..."
+
+ // insert custom folders into our tree view
+ for (i=0;i<num_folders;i++)
+ {
+ if (folders[i]->m_dwFlags & F_CUSTOM)
+ {
+ HTREEITEM hti;
+ int jj = 0;
+
+ if (folders[i]->m_nParent == -1)
+ {
+ memset(&tvi, '\0', sizeof(tvi));
+ tvis.hParent = TVI_ROOT;
+ tvis.hInsertAfter = TVI_SORT;
+ tvi.mask = TVIF_TEXT | TVIF_PARAM | TVIF_IMAGE | TVIF_SELECTEDIMAGE;
+ tvi.pszText = folders[i]->m_lptTitle;
+ tvi.lParam = (LPARAM)folders[i];
+ tvi.iImage = GetTreeViewIconIndex(folders[i]->m_nIconId);
+ tvi.iSelectedImage = 0;
+#if !defined(NONAMELESSUNION)
+ tvis.item = tvi;
+#else
+ tvis.DUMMYUNIONNAME.item = tvi;
+#endif
+
+ hti = TreeView_InsertItem(GetDlgItem(hDlg,IDC_CUSTOM_TREE),&tvis);
+
+ /* look for children of this custom folder */
+ for (jj=0; jj<num_folders; jj++)
+ {
+ if (folders[jj]->m_nParent == i)
+ {
+ HTREEITEM hti_child;
+ tvis.hParent = hti;
+ tvis.hInsertAfter = TVI_SORT;
+ tvi.mask = TVIF_TEXT | TVIF_PARAM | TVIF_IMAGE | TVIF_SELECTEDIMAGE;
+ tvi.pszText = folders[jj]->m_lptTitle;
+ tvi.lParam = (LPARAM)folders[jj];
+ tvi.iImage = GetTreeViewIconIndex(folders[jj]->m_nIconId);
+ tvi.iSelectedImage = 0;
+#if !defined(NONAMELESSUNION)
+ tvis.item = tvi;
+#else
+ tvis.DUMMYUNIONNAME.item = tvi;
+#endif
+ hti_child = TreeView_InsertItem(GetDlgItem(hDlg,IDC_CUSTOM_TREE),&tvis);
+ if (folders[jj] == default_selection)
+ res = TreeView_SelectItem(GetDlgItem(hDlg,IDC_CUSTOM_TREE),hti_child);
+ }
+ }
+
+ /*TreeView_Expand(GetDlgItem(hDlg,IDC_CUSTOM_TREE),hti,TVE_EXPAND);*/
+ if (first_entry || folders[i] == default_selection)
+ {
+ res = TreeView_SelectItem(GetDlgItem(hDlg,IDC_CUSTOM_TREE),hti);
+ first_entry = false;
+ }
+ }
+ }
+ }
+
+ win_set_window_text_utf8(GetDlgItem(hDlg,IDC_CUSTOMFILE_GAME), ModifyThe(driver_list::driver(driver_index).type.fullname()));
+
+ res++;
+ return true;
+ }
+ case WM_COMMAND:
+ switch (GET_WM_COMMAND_ID(wParam, lParam))
+ {
+ case IDOK:
+ {
+ TVITEM tvi;
+ tvi.hItem = TreeView_GetSelection(GetDlgItem(hDlg,IDC_CUSTOM_TREE));
+ tvi.mask = TVIF_PARAM;
+ if (TreeView_GetItem(GetDlgItem(hDlg,IDC_CUSTOM_TREE),&tvi) == true)
+ {
+ /* should look for New... */
+ default_selection = (LPTREEFOLDER)tvi.lParam; /* start here next time */
+ AddToCustomFolder((LPTREEFOLDER)tvi.lParam,driver_index);
+ }
+
+ EndDialog(hDlg, 0);
+ return true;
+ }
+ case IDCANCEL:
+ EndDialog(hDlg, 0);
+ return true;
+
+ }
+ break;
+ }
+ return 0;
+}
+
+INT_PTR CALLBACK DirectXDialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam)
+{
+ HWND hEdit;
+
+ const char *directx_help = MAMEUINAME " requires DirectX version 9 or later.\r\n";
+
+ switch (Msg)
+ {
+ case WM_INITDIALOG:
+ hEdit = GetDlgItem(hDlg, IDC_DIRECTX_HELP);
+ Edit_SetSel(hEdit, Edit_GetTextLength(hEdit), Edit_GetTextLength(hEdit));
+ Edit_ReplaceSel(hEdit, directx_help);
+ return 1;
+
+ case WM_COMMAND:
+ if (LOWORD(wParam) == IDB_WEB_PAGE)
+ ShellExecute(GetMainWindow(), NULL, TEXT("http://www.microsoft.com/directx"), NULL, NULL, SW_SHOWNORMAL);
+
+ if (LOWORD(wParam) == IDCANCEL || LOWORD(wParam) == IDB_WEB_PAGE)
+ EndDialog(hDlg, 0);
+ return 1;
+ }
+ return 0;
+}
+
+/***************************************************************************
+ private functions
+ ***************************************************************************/
+
+static void DisableFilterControls(HWND hWnd, LPCFOLDERDATA lpFilterRecord, LPCFILTER_ITEM lpFilterItem, DWORD dwFlags)
+{
+ HWND hWndCtrl = GetDlgItem(hWnd, lpFilterItem->m_dwCtrlID);
+ DWORD dwFilterType = lpFilterItem->m_dwFilterType;
+
+ /* Check the appropriate control */
+ if (dwFilterType & dwFlags)
+ Button_SetCheck(hWndCtrl, MF_CHECKED);
+
+ /* No special rules for this folder? */
+ if (!lpFilterRecord)
+ return;
+
+ /* If this is an excluded filter */
+ if (lpFilterRecord->m_dwUnset & dwFilterType)
+ {
+ /* uncheck it and disable the control */
+ Button_SetCheck(hWndCtrl, MF_UNCHECKED);
+ EnableWindow(hWndCtrl, false);
+ }
+
+ /* If this is an implied filter, check it and disable the control */
+ if (lpFilterRecord->m_dwSet & dwFilterType)
+ {
+ Button_SetCheck(hWndCtrl, MF_CHECKED);
+ EnableWindow(hWndCtrl, false);
+ }
+}
+
+// Handle disabling mutually exclusive controls
+static void EnableFilterExclusions(HWND hWnd, DWORD dwCtrlID)
+{
+ int i;
+
+ for (i = 0; i < NUM_EXCLUSIONS; i++)
+ {
+ // is this control in the list?
+ if (filterExclusion[i] == dwCtrlID)
+ {
+ // found the control id
+ break;
+ }
+ }
+
+ // if the control was found
+ if (i < NUM_EXCLUSIONS)
+ {
+ DWORD id;
+ // find the opposing control id
+ if (i % 2)
+ id = filterExclusion[i - 1];
+ else
+ id = filterExclusion[i + 1];
+
+ // Uncheck the other control
+ Button_SetCheck(GetDlgItem(hWnd, id), MF_UNCHECKED);
+ }
+}
+
+// Validate filter setting, mask out inappropriate filters for this folder
+static DWORD ValidateFilters(LPCFOLDERDATA lpFilterRecord, DWORD dwFlags)
+{
+ DWORD dwFilters = 0;
+
+ if (lpFilterRecord != (LPFOLDERDATA)0)
+ {
+ // Mask out implied and excluded filters
+ dwFilters = lpFilterRecord->m_dwSet | lpFilterRecord->m_dwUnset;
+ return dwFlags & ~dwFilters;
+ }
+
+ // No special cases - all filters apply
+ return dwFlags;
+}
+
+static void OnHScroll(HWND hwnd, HWND hwndCtl, UINT code, int pos)
+{
+ int value = 0;
+ TCHAR tmp[4];
+ if (hwndCtl == GetDlgItem(hwnd, IDC_CYCLETIMESEC))
+ {
+ value = SendDlgItemMessage(hwnd,IDC_CYCLETIMESEC, TBM_GETPOS, 0, 0);
+ _itot(value,tmp,10);
+ SendDlgItemMessage(hwnd,IDC_CYCLETIMESECTXT,WM_SETTEXT,0, (WPARAM)tmp);
+ }
+ else
+ if (hwndCtl == GetDlgItem(hwnd, IDC_SCREENSHOT_BORDERSIZE))
+ {
+ value = SendDlgItemMessage(hwnd,IDC_SCREENSHOT_BORDERSIZE, TBM_GETPOS, 0, 0);
+ _itot(value,tmp,10);
+ SendDlgItemMessage(hwnd,IDC_SCREENSHOT_BORDERSIZETXT,WM_SETTEXT,0, (WPARAM)tmp);
+ }
+}
diff --git a/src/osd/winui/dialogs.h b/src/osd/winui/dialogs.h
new file mode 100644
index 00000000000..07bff2075e6
--- /dev/null
+++ b/src/osd/winui/dialogs.h
@@ -0,0 +1,18 @@
+// For licensing and usage information, read docs/winui_license.txt
+//****************************************************************************
+
+#ifndef DIALOGS_H
+#define DIALOGS_H
+
+const char * GetFilterText(void);
+
+INT_PTR CALLBACK ResetDialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam);
+INT_PTR CALLBACK InterfaceDialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam);
+INT_PTR CALLBACK FilterDialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam);
+INT_PTR CALLBACK AboutDialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam);
+INT_PTR CALLBACK AddCustomFileDialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam);
+INT_PTR CALLBACK DirectXDialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam);
+
+
+#endif
+
diff --git a/src/osd/winui/dijoystick.cpp b/src/osd/winui/dijoystick.cpp
new file mode 100644
index 00000000000..3350ea2f5d4
--- /dev/null
+++ b/src/osd/winui/dijoystick.cpp
@@ -0,0 +1,758 @@
+// For licensing and usage information, read docs/winui_license.txt
+// MASTER
+//****************************************************************************
+
+/***************************************************************************
+
+ dijoystick.cpp
+
+ ***************************************************************************/
+
+// standard windows headers
+#include <windows.h>
+
+// standard C headers
+#include <tchar.h>
+
+// MAMEUI headers
+#include "winui.h"
+#include "directinput.h"
+#include "dijoystick.h"
+#include "mui_util.h" // For ErrorMsg
+
+/***************************************************************************
+ function prototypes
+ ***************************************************************************/
+
+static int DIJoystick_init(void);
+static void DIJoystick_exit(void);
+static void DIJoystick_poll_joysticks(void);
+static int DIJoystick_is_joy_pressed(int joycode);
+static BOOL DIJoystick_Available(void);
+
+static BOOL CALLBACK DIJoystick_EnumDeviceProc(LPDIDEVICEINSTANCE pdidi, LPVOID pv);
+
+/***************************************************************************
+ External variables
+ ***************************************************************************/
+
+const struct OSDJoystick DIJoystick =
+{
+ DIJoystick_init, /* init */
+ DIJoystick_exit, /* exit */
+ DIJoystick_is_joy_pressed, /* joy_pressed */
+ DIJoystick_poll_joysticks, /* poll_joysticks */
+ DIJoystick_Available, /* Available */
+};
+
+/***************************************************************************
+ Internal structures
+ ***************************************************************************/
+
+#define MAX_PHYSICAL_JOYSTICKS 20
+#define MAX_AXES 20
+
+typedef struct
+{
+ GUID guid;
+ TCHAR *name;
+
+ int offset; /* offset in dijoystate */
+} axis_type;
+
+typedef struct
+{
+ BOOL use_joystick;
+
+ GUID guidDevice;
+ TCHAR *name;
+
+ BOOL is_light_gun;
+
+ LPDIRECTINPUTDEVICE2 did;
+
+ DWORD num_axes;
+ axis_type axes[MAX_AXES];
+
+ DWORD num_pov;
+ DWORD num_buttons;
+
+ DIJOYSTATE dijs;
+
+} joystick_type;
+
+struct tDIJoystick_private
+{
+ int use_count; /* the gui and game can both init/exit us, so keep track */
+ BOOL m_bCoinSlot;
+
+ DWORD num_joysticks;
+ joystick_type joysticks[MAX_PHYSICAL_JOYSTICKS]; /* actual joystick data! */
+};
+
+/* internal functions needing our declarations */
+static BOOL CALLBACK DIJoystick_EnumAxisObjectsProc(LPCDIDEVICEOBJECTINSTANCE lpddoi, LPVOID pvRef);
+static BOOL CALLBACK DIJoystick_EnumPOVObjectsProc(LPCDIDEVICEOBJECTINSTANCE lpddoi, LPVOID pvRef);
+static BOOL CALLBACK DIJoystick_EnumButtonObjectsProc(LPCDIDEVICEOBJECTINSTANCE lpddoi, LPVOID pvRef);
+static void ClearJoyState(DIJOYSTATE *pdijs);
+static void InitJoystick(joystick_type *joystick);
+static void ExitJoystick(joystick_type *joystick);
+const char * DirectXDecodeError(HRESULT errorval);
+
+/***************************************************************************
+ Internal variables
+ ***************************************************************************/
+
+static struct tDIJoystick_private This;
+
+static const GUID guidNULL = {0, 0, 0, {0, 0, 0, 0, 0, 0, 0, 0}};
+
+/***************************************************************************
+ External OSD functions
+ ***************************************************************************/
+/*
+ put here anything you need to do when the program is started. Return 0 if
+ initialization was successful, nonzero otherwise.
+*/
+static int DIJoystick_init(void)
+{
+ This.use_count++;
+ This.num_joysticks = 0;
+
+ LPDIRECTINPUT di = GetDirectInput();
+ if (di == NULL)
+ {
+ ErrorMsg("DirectInput not initialized");
+ return 1;
+ }
+
+ /* enumerate for joystick devices */
+ HRESULT hr = IDirectInput_EnumDevices(di, DIDEVTYPE_JOYSTICK, (LPDIENUMDEVICESCALLBACK)DIJoystick_EnumDeviceProc, NULL, DIEDFL_ATTACHEDONLY );
+ if (FAILED(hr))
+ {
+ ErrorMsg("DirectInput EnumDevices() failed: %s", DirectXDecodeError(hr));
+ return 0;
+ }
+
+ /* create each joystick device, enumerate each joystick for axes, etc */
+ for (DWORD i = 0; i < This.num_joysticks; i++)
+ InitJoystick(&This.joysticks[i]);
+
+ /* Are there any joysticks attached? */
+ if (This.num_joysticks < 1)
+ /*ErrorMsg("DirectInput EnumDevices didn't find any joysticks");*/
+ return 1;
+
+ return 0;
+}
+
+/*
+ put here cleanup routines to be executed when the program is terminated.
+*/
+static void DIJoystick_exit(void)
+{
+ This.use_count--;
+ if (This.use_count > 0)
+ return;
+
+ for (DWORD i = 0; i < This.num_joysticks; i++)
+ ExitJoystick(&This.joysticks[i]);
+
+ This.num_joysticks = 0;
+}
+
+static void DIJoystick_poll_joysticks(void)
+{
+ HRESULT hr;
+ This.m_bCoinSlot = 0;
+
+ for (DWORD i = 0; i < This.num_joysticks; i++)
+ {
+ /* start by clearing the structure, then fill it in if possible */
+
+ ClearJoyState(&This.joysticks[i].dijs);
+
+ if (This.joysticks[i].did == NULL)
+ continue;
+
+ if (This.joysticks[i].use_joystick == FALSE)
+ continue;
+
+ hr = IDirectInputDevice2_Poll(This.joysticks[i].did);
+
+ hr = IDirectInputDevice2_GetDeviceState(This.joysticks[i].did,sizeof(DIJOYSTATE), &This.joysticks[i].dijs);
+ if (FAILED(hr))
+ {
+ if (hr == DIERR_INPUTLOST || hr == DIERR_NOTACQUIRED)
+ hr = IDirectInputDevice2_Acquire(This.joysticks[i].did);
+
+ continue;
+ }
+ }
+}
+
+/*
+ check if the DIJoystick is moved in the specified direction, defined in
+ osdepend.h. Return 0 if it is not pressed, nonzero otherwise.
+*/
+
+static int DIJoystick_is_joy_pressed(int joycode)
+{
+ int axis = 0;
+ int dir = 0;
+ int value = 0;
+ int dz = 60;
+ int joy_num = GET_JOYCODE_JOY(joycode);
+
+ /* do we have as many sticks? */
+ if (joy_num == 0 || This.num_joysticks < joy_num)
+ return 0;
+ joy_num--;
+
+ if (This.joysticks[joy_num].use_joystick == FALSE)
+ return 0;
+
+ DIJOYSTATE dijs = This.joysticks[joy_num].dijs;
+
+ int stick = GET_JOYCODE_STICK(joycode);
+
+ if (stick == JOYCODE_STICK_BTN)
+ {
+ /* buttons */
+ int button;
+
+ button = GET_JOYCODE_BUTTON(joycode);
+ button--;
+
+ if (button >= This.joysticks[joy_num].num_buttons
+ || GET_JOYCODE_DIR(joycode) != JOYCODE_DIR_BTN)
+ return 0;
+
+ return dijs.rgbButtons[button] != 0;
+ }
+
+ if (stick == JOYCODE_STICK_POV)
+ {
+ /* POV */
+ int pov_value = 0;
+ int angle = 0;
+ int axis_value = 0;
+
+ int num_pov = GET_JOYCODE_BUTTON(joycode) / 4;
+ int code = GET_JOYCODE_BUTTON(joycode) % 4;
+ axis = code / 2;
+ dir = code % 2;
+
+ if (num_pov >= This.joysticks[joy_num].num_pov)
+ return 0;
+
+ pov_value = dijs.rgdwPOV[num_pov];
+ if (LOWORD(pov_value) == 0xffff)
+ return 0;
+
+ angle = (pov_value + 27000) % 36000;
+ angle = (36000 - angle) % 36000;
+ angle /= 100;
+
+ /* angle is now in degrees counterclockwise from x axis*/
+ if (axis == 1)
+ axis_value = 128 + (int)(127 * cos(2 * M_PI * angle / 360.0)); /* x */
+ else
+ axis_value = 128 + (int)(127 * sin(2 * M_PI * angle / 360.0)); /* y */
+
+ if (dir == 1)
+ return axis_value <= (128 - 128 * dz / 100);
+ else
+ return axis_value >= (128 + 128 * dz / 100);
+ }
+
+ /* sticks */
+
+ axis = GET_JOYCODE_AXIS(joycode);
+ dir = GET_JOYCODE_DIR(joycode);
+
+ if (axis == 0 || This.joysticks[joy_num].num_axes < axis)
+ return 0;
+ axis--;
+
+ value = *(int *)(((byte *)&dijs) + This.joysticks[joy_num].axes[axis].offset);
+
+ if (dir == JOYCODE_DIR_NEG)
+ return value <= (128 - 128 * dz / 100);
+ else
+ return value >= (128 + 128 * dz / 100);
+}
+
+static BOOL DIJoystick_Available(void)
+{
+ static BOOL bBeenHere = false;
+ static BOOL bAvailable = false;
+ LPDIRECTINPUT di = GetDirectInput();
+
+ if (di == NULL)
+ return false;
+
+ if (bBeenHere == false)
+ bBeenHere = true;
+ else
+ return bAvailable;
+
+ /* enumerate for joystick devices */
+ GUID guidDevice = guidNULL;
+ HRESULT hr = IDirectInput_EnumDevices(di, DIDEVTYPE_JOYSTICK, inputEnumDeviceProc, &guidDevice, DIEDFL_ATTACHEDONLY );
+ if (FAILED(hr))
+ {
+ return false;
+ }
+
+ /* Are there any joysticks attached? */
+ if (IsEqualGUID(guidDevice, guidNULL))
+ return false;
+
+ LPDIRECTINPUTDEVICE didTemp;
+ hr = IDirectInput_CreateDevice(di, guidDevice, &didTemp, NULL);
+ if (FAILED(hr))
+ return false;
+
+ /* Determine if DX5 is available by a QI for a DX5 interface. */
+ LPDIRECTINPUTDEVICE didJoystick;
+ hr = IDirectInputDevice_QueryInterface(didTemp, IID_IDirectInputDevice2, (void**)&didJoystick);
+ if (FAILED(hr))
+ bAvailable = false;
+ else
+ {
+ bAvailable = true;
+ IDirectInputDevice_Release(didJoystick);
+ }
+
+ /* dispose of the temp interface */
+ IDirectInputDevice_Release(didTemp);
+
+ return bAvailable;
+}
+
+int DIJoystick_GetNumPhysicalJoysticks()
+{
+ return This.num_joysticks;
+}
+
+TCHAR* DIJoystick_GetPhysicalJoystickName(int num_joystick)
+{
+ return This.joysticks[num_joystick].name;
+}
+
+int DIJoystick_GetNumPhysicalJoystickAxes(int num_joystick)
+{
+ return This.joysticks[num_joystick].num_axes;
+}
+
+TCHAR* DIJoystick_GetPhysicalJoystickAxisName(int num_joystick, int num_axis)
+{
+ return This.joysticks[num_joystick].axes[num_axis].name;
+}
+
+/***************************************************************************
+ Internal functions
+ ***************************************************************************/
+
+BOOL CALLBACK DIJoystick_EnumDeviceProc(LPDIDEVICEINSTANCE pdidi, LPVOID pv)
+{
+ TCHAR buffer[5000];
+
+ This.joysticks[This.num_joysticks].guidDevice = pdidi->guidInstance;
+
+ _stprintf(buffer, TEXT("%s (%s)"), pdidi->tszProductName, pdidi->tszInstanceName);
+ This.joysticks[This.num_joysticks].name = (TCHAR *)malloc((_tcslen(buffer) + 1) * sizeof(TCHAR));
+ _tcscpy(This.joysticks[This.num_joysticks].name, buffer);
+
+ This.num_joysticks++;
+
+ return DIENUM_CONTINUE;
+}
+
+static BOOL CALLBACK DIJoystick_EnumAxisObjectsProc(LPCDIDEVICEOBJECTINSTANCE lpddoi, LPVOID pvRef)
+{
+ joystick_type* joystick = (joystick_type*)pvRef;
+ joystick->axes[joystick->num_axes].guid = lpddoi->guidType;
+ joystick->axes[joystick->num_axes].name = (TCHAR *)malloc((_tcslen(lpddoi->tszName) + 1) * sizeof(TCHAR));
+ _tcscpy(joystick->axes[joystick->num_axes].name, lpddoi->tszName);
+ joystick->axes[joystick->num_axes].offset = lpddoi->dwOfs;
+
+ /*ErrorMsg("got axis %s, offset %i",lpddoi->tszName, lpddoi->dwOfs);*/
+
+ DIPROPRANGE diprg;
+ diprg.diph.dwSize = sizeof(diprg);
+ diprg.diph.dwHeaderSize = sizeof(diprg.diph);
+ diprg.diph.dwObj = lpddoi->dwOfs;
+ diprg.diph.dwHow = DIPH_BYOFFSET;
+ diprg.lMin = 0;
+ diprg.lMax = 255;
+
+ HRESULT hr = IDirectInputDevice2_SetProperty(joystick->did, DIPROP_RANGE, &diprg.diph);
+ if (FAILED(hr)) /* if this fails, don't use this axis */
+ {
+ free(joystick->axes[joystick->num_axes].name);
+ joystick->axes[joystick->num_axes].name = NULL;
+ return DIENUM_CONTINUE;
+ }
+
+#ifdef JOY_DEBUG
+ if (FAILED(hr))
+ ErrorMsg("DirectInput SetProperty() joystick axis %s failed - %s\n", joystick->axes[joystick->num_axes].name, DirectXDecodeError(hr));
+#endif
+
+ /* Set axis dead zone to 0; we need accurate #'s for analog joystick reading. */
+
+ hr = SetDIDwordProperty(joystick->did, DIPROP_DEADZONE, lpddoi->dwOfs, DIPH_BYOFFSET, 0);
+
+#ifdef JOY_DEBUG
+ if (FAILED(hr))
+ ErrorMsg("DirectInput SetProperty() joystick axis %s dead zone failed - %s\n", joystick->axes[joystick->num_axes].name, DirectXDecodeError(hr));
+#endif
+
+ joystick->num_axes++;
+
+ return DIENUM_CONTINUE;
+}
+
+static BOOL CALLBACK DIJoystick_EnumPOVObjectsProc(LPCDIDEVICEOBJECTINSTANCE lpddoi, LPVOID pvRef)
+{
+ joystick_type* joystick = (joystick_type*)pvRef;
+ joystick->num_pov++;
+
+ return DIENUM_CONTINUE;
+}
+
+static BOOL CALLBACK DIJoystick_EnumButtonObjectsProc(LPCDIDEVICEOBJECTINSTANCE lpddoi, LPVOID pvRef)
+{
+ joystick_type* joystick = (joystick_type*)pvRef;
+ joystick->num_buttons++;
+
+ return DIENUM_CONTINUE;
+}
+
+static void ClearJoyState(DIJOYSTATE *pdijs)
+{
+ memset(pdijs, 0, sizeof(DIJOYSTATE));
+ pdijs->lX = 128;
+ pdijs->lY = 128;
+ pdijs->lZ = 128;
+ pdijs->lRx = 128;
+ pdijs->lRy = 128;
+ pdijs->lRz = 128;
+ pdijs->rglSlider[0] = 128;
+ pdijs->rglSlider[1] = 128;
+ pdijs->rgdwPOV[0] = -1;
+ pdijs->rgdwPOV[1] = -1;
+ pdijs->rgdwPOV[2] = -1;
+ pdijs->rgdwPOV[3] = -1;
+}
+
+static void InitJoystick(joystick_type *joystick)
+{
+ joystick->use_joystick = false;
+ joystick->did = NULL;
+ joystick->num_axes = 0;
+ joystick->is_light_gun = (_tcscmp(joystick->name, TEXT("ACT LABS GS (ACT LABS GS)")) == 0);
+
+ /* get a did1 interface first... */
+ LPDIRECTINPUT di = GetDirectInput();
+ LPDIRECTINPUTDEVICE didTemp;
+ HRESULT hr = IDirectInput_CreateDevice(di, joystick->guidDevice, &didTemp, NULL);
+ if (FAILED(hr))
+ {
+ ErrorMsg("DirectInput CreateDevice() joystick failed: %s\n", DirectXDecodeError(hr));
+ return;
+ }
+
+ /* get a did2 interface to work with polling (most) joysticks */
+ hr = IDirectInputDevice_QueryInterface(didTemp, IID_IDirectInputDevice2, (void**)&joystick->did);
+
+ /* dispose of the temp interface */
+ IDirectInputDevice_Release(didTemp);
+
+ /* check result of getting the did2 */
+ if (FAILED(hr))
+ {
+ /* no error message because this happens in dx3 */
+ /* ErrorMsg("DirectInput QueryInterface joystick failed\n"); */
+ joystick->did = NULL;
+ return;
+ }
+
+
+ hr = IDirectInputDevice2_SetCooperativeLevel(joystick->did, GetMainWindow(), DISCL_NONEXCLUSIVE | DISCL_BACKGROUND);
+ if (FAILED(hr))
+ {
+ ErrorMsg("DirectInput SetCooperativeLevel() joystick failed: %s\n", DirectXDecodeError(hr));
+ return;
+ }
+
+
+ hr = IDirectInputDevice2_SetDataFormat(joystick->did, &c_dfDIJoystick);
+ if (FAILED(hr))
+ {
+ ErrorMsg("DirectInput SetDataFormat() joystick failed: %s\n", DirectXDecodeError(hr));
+ return;
+ }
+
+ if (joystick->is_light_gun)
+ {
+ /* setup light gun to report raw screen pixel data */
+
+ DIPROPDWORD diprop;
+ memset(&diprop, 0, sizeof(diprop));
+ diprop.diph.dwSize = sizeof(DIPROPDWORD);
+ diprop.diph.dwHeaderSize = sizeof(DIPROPHEADER);
+ diprop.diph.dwObj = 0;
+ diprop.diph.dwHow = DIPH_DEVICE;
+ diprop.dwData = DIPROPCALIBRATIONMODE_RAW;
+
+ IDirectInputDevice2_SetProperty(joystick->did, DIPROP_CALIBRATIONMODE, &diprop.diph);
+ }
+ else
+ {
+ /* enumerate our axes */
+ hr = IDirectInputDevice_EnumObjects(joystick->did, DIJoystick_EnumAxisObjectsProc, joystick, DIDFT_AXIS);
+ if (FAILED(hr))
+ {
+ ErrorMsg("DirectInput EnumObjects() Axes failed: %s\n", DirectXDecodeError(hr));
+ return;
+ }
+
+ /* enumerate our POV hats */
+ joystick->num_pov = 0;
+ hr = IDirectInputDevice_EnumObjects(joystick->did, DIJoystick_EnumPOVObjectsProc, joystick, DIDFT_POV);
+ if (FAILED(hr))
+ {
+ ErrorMsg("DirectInput EnumObjects() POVs failed: %s\n", DirectXDecodeError(hr));
+ return;
+ }
+ }
+
+ /* enumerate our buttons */
+
+ joystick->num_buttons = 0;
+ hr = IDirectInputDevice_EnumObjects(joystick->did, DIJoystick_EnumButtonObjectsProc, joystick, DIDFT_BUTTON);
+ if (FAILED(hr))
+ {
+ ErrorMsg("DirectInput EnumObjects() Buttons failed: %s\n", DirectXDecodeError(hr));
+ return;
+ }
+
+ hr = IDirectInputDevice2_Acquire(joystick->did);
+ if (FAILED(hr))
+ {
+ ErrorMsg("DirectInputDevice Acquire joystick failed!\n");
+ return;
+ }
+
+ /* start by clearing the structures */
+
+ ClearJoyState(&joystick->dijs);
+
+ joystick->use_joystick = TRUE;
+}
+
+static void ExitJoystick(joystick_type *joystick)
+{
+ if (joystick->did)
+ {
+ IDirectInputDevice_Unacquire(joystick->did);
+ IDirectInputDevice_Release(joystick->did);
+ joystick->did = NULL;
+ }
+
+ for (DWORD i = 0; i < joystick->num_axes; i++)
+ {
+ if (joystick->axes[i].name)
+ free(joystick->axes[i].name);
+ joystick->axes[i].name = NULL;
+ }
+
+ if (joystick->name)
+ {
+ free(joystick->name);
+ joystick->name = NULL;
+ }
+}
+
+/***************************************************************************
+ DXdecode stuff
+ ***************************************************************************/
+
+typedef struct tagERRORCODE
+{
+ HRESULT hr;
+ const char *szError;
+} ERRORCODE, * LPERRORCODE;
+
+#include <ddraw.h>
+static const ERRORCODE g_ErrorCode[] =
+{
+ { DDERR_ALREADYINITIALIZED, "DDERR_ALREADYINITIALIZED"},
+ { DDERR_CANNOTATTACHSURFACE, "DDERR_CANNOTATTACHSURFACE"},
+ { DDERR_CANNOTDETACHSURFACE, "DDERR_CANNOTDETACHSURFACE"},
+ { DDERR_CURRENTLYNOTAVAIL, "DDERR_CURRENTLYNOTAVAIL"},
+ { DDERR_EXCEPTION, "DDERR_EXCEPTION"},
+ { DDERR_GENERIC, "DDERR_GENERIC"},
+ { DDERR_HEIGHTALIGN, "DDERR_HEIGHTALIGN"},
+ { DDERR_INCOMPATIBLEPRIMARY, "DDERR_INCOMPATIBLEPRIMARY"},
+ { DDERR_INVALIDCAPS, "DDERR_INVALIDCAPS"},
+ { DDERR_INVALIDCLIPLIST, "DDERR_INVALIDCLIPLIST"},
+ { DDERR_INVALIDMODE, "DDERR_INVALIDMODE"},
+ { DDERR_INVALIDOBJECT, "DDERR_INVALIDOBJECT"},
+ { DDERR_INVALIDPARAMS, "DDERR_INVALIDPARAMS"},
+ { DDERR_INVALIDPIXELFORMAT, "DDERR_INVALIDPIXELFORMAT"},
+ { DDERR_INVALIDRECT, "DDERR_INVALIDRECT"},
+ { DDERR_LOCKEDSURFACES, "DDERR_LOCKEDSURFACES"},
+ { DDERR_NO3D, "DDERR_NO3D"},
+ { DDERR_NOALPHAHW, "DDERR_NOALPHAHW"},
+ { DDERR_NOCLIPLIST, "DDERR_NOCLIPLIST"},
+ { DDERR_NOCOLORCONVHW, "DDERR_NOCOLORCONVHW"},
+ { DDERR_NOCOOPERATIVELEVELSET, "DDERR_NOCOOPERATIVELEVELSET"},
+ { DDERR_NOCOLORKEY, "DDERR_NOCOLORKEY"},
+ { DDERR_NOCOLORKEYHW, "DDERR_NOCOLORKEYHW"},
+ { DDERR_NODIRECTDRAWSUPPORT, "DDERR_NODIRECTDRAWSUPPORT"},
+ { DDERR_NOEXCLUSIVEMODE, "DDERR_NOEXCLUSIVEMODE"},
+ { DDERR_NOFLIPHW, "DDERR_NOFLIPHW"},
+ { DDERR_NOGDI, "DDERR_NOGDI"},
+ { DDERR_NOMIRRORHW, "DDERR_NOMIRRORHW"},
+ { DDERR_NOTFOUND, "DDERR_NOTFOUND"},
+ { DDERR_NOOVERLAYHW, "DDERR_NOOVERLAYHW"},
+ { DDERR_NORASTEROPHW, "DDERR_NORASTEROPHW"},
+ { DDERR_NOROTATIONHW, "DDERR_NOROTATIONHW"},
+ { DDERR_NOSTRETCHHW, "DDERR_NOSTRETCHHW"},
+ { DDERR_NOT4BITCOLOR, "DDERR_NOT4BITCOLOR"},
+ { DDERR_NOT4BITCOLORINDEX, "DDERR_NOT4BITCOLORINDEX"},
+ { DDERR_NOT8BITCOLOR, "DDERR_NOT8BITCOLOR"},
+ { DDERR_NOTEXTUREHW, "DDERR_NOTEXTUREHW"},
+ { DDERR_NOVSYNCHW, "DDERR_NOVSYNCHW"},
+ { DDERR_NOZBUFFERHW, "DDERR_NOZBUFFERHW"},
+ { DDERR_NOZOVERLAYHW, "DDERR_NOZOVERLAYHW"},
+ { DDERR_OUTOFCAPS, "DDERR_OUTOFCAPS"},
+ { DDERR_OUTOFMEMORY, "DDERR_OUTOFMEMORY"},
+ { DDERR_OUTOFVIDEOMEMORY, "DDERR_OUTOFVIDEOMEMORY"},
+ { DDERR_OVERLAYCANTCLIP, "DDERR_OVERLAYCANTCLIP"},
+ { DDERR_OVERLAYCOLORKEYONLYONEACTIVE, "DDERR_OVERLAYCOLORKEYONLYONEACTIVE"},
+ { DDERR_PALETTEBUSY, "DDERR_PALETTEBUSY"},
+ { DDERR_COLORKEYNOTSET, "DDERR_COLORKEYNOTSET"},
+ { DDERR_SURFACEALREADYATTACHED, "DDERR_SURFACEALREADYATTACHED"},
+ { DDERR_SURFACEALREADYDEPENDENT, "DDERR_SURFACEALREADYDEPENDENT"},
+ { DDERR_SURFACEBUSY, "DDERR_SURFACEBUSY"},
+ { DDERR_CANTLOCKSURFACE, "DDERR_CANTLOCKSURFACE"},
+ { DDERR_SURFACEISOBSCURED, "DDERR_SURFACEISOBSCURED"},
+ { DDERR_SURFACELOST, "DDERR_SURFACELOST"},
+ { DDERR_SURFACENOTATTACHED, "DDERR_SURFACENOTATTACHED"},
+ { DDERR_TOOBIGHEIGHT, "DDERR_TOOBIGHEIGHT"},
+ { DDERR_TOOBIGSIZE, "DDERR_TOOBIGSIZE"},
+ { DDERR_TOOBIGWIDTH, "DDERR_TOOBIGWIDTH"},
+ { DDERR_UNSUPPORTED, "DDERR_UNSUPPORTED"},
+ { DDERR_UNSUPPORTEDFORMAT, "DDERR_UNSUPPORTEDFORMAT"},
+ { DDERR_UNSUPPORTEDMASK, "DDERR_UNSUPPORTEDMASK"},
+ { DDERR_VERTICALBLANKINPROGRESS, "DDERR_VERTICALBLANKINPROGRESS"},
+ { DDERR_WASSTILLDRAWING, "DDERR_WASSTILLDRAWING"},
+ { DDERR_XALIGN, "DDERR_XALIGN"},
+ { DDERR_INVALIDDIRECTDRAWGUID, "DDERR_INVALIDDIRECTDRAWGUID"},
+ { DDERR_DIRECTDRAWALREADYCREATED, "DDERR_DIRECTDRAWALREADYCREATED"},
+ { DDERR_NODIRECTDRAWHW, "DDERR_NODIRECTDRAWHW"},
+ { DDERR_PRIMARYSURFACEALREADYEXISTS, "DDERR_PRIMARYSURFACEALREADYEXISTS"},
+ { DDERR_NOEMULATION, "DDERR_NOEMULATION"},
+ { DDERR_REGIONTOOSMALL, "DDERR_REGIONTOOSMALL"},
+ { DDERR_CLIPPERISUSINGHWND, "DDERR_CLIPPERISUSINGHWND"},
+ { DDERR_NOCLIPPERATTACHED, "DDERR_NOCLIPPERATTACHED"},
+ { DDERR_NOHWND, "DDERR_NOHWND"},
+ { DDERR_HWNDSUBCLASSED, "DDERR_HWNDSUBCLASSED"},
+ { DDERR_HWNDALREADYSET, "DDERR_HWNDALREADYSET"},
+ { DDERR_NOPALETTEATTACHED, "DDERR_NOPALETTEATTACHED"},
+ { DDERR_NOPALETTEHW, "DDERR_NOPALETTEHW"},
+ { DDERR_BLTFASTCANTCLIP, "DDERR_BLTFASTCANTCLIP"},
+ { DDERR_NOBLTHW, "DDERR_NOBLTHW"},
+ { DDERR_NODDROPSHW, "DDERR_NODDROPSHW"},
+ { DDERR_OVERLAYNOTVISIBLE, "DDERR_OVERLAYNOTVISIBLE"},
+ { DDERR_NOOVERLAYDEST, "DDERR_NOOVERLAYDEST"},
+ { DDERR_INVALIDPOSITION, "DDERR_INVALIDPOSITION"},
+ { DDERR_NOTAOVERLAYSURFACE, "DDERR_NOTAOVERLAYSURFACE"},
+ { DDERR_EXCLUSIVEMODEALREADYSET, "DDERR_EXCLUSIVEMODEALREADYSET"},
+ { DDERR_NOTFLIPPABLE, "DDERR_NOTFLIPPABLE"},
+ { DDERR_CANTDUPLICATE, "DDERR_CANTDUPLICATE"},
+ { DDERR_NOTLOCKED, "DDERR_NOTLOCKED"},
+ { DDERR_CANTCREATEDC, "DDERR_CANTCREATEDC"},
+ { DDERR_NODC, "DDERR_NODC"},
+ { DDERR_WRONGMODE, "DDERR_WRONGMODE"},
+ { DDERR_IMPLICITLYCREATED, "DDERR_IMPLICITLYCREATED"},
+ { DDERR_NOTPALETTIZED, "DDERR_NOTPALETTIZED"},
+ { DDERR_UNSUPPORTEDMODE, "DDERR_UNSUPPORTEDMODE"},
+ { DDERR_NOMIPMAPHW, "DDERR_NOMIPMAPHW"},
+ { DDERR_INVALIDSURFACETYPE, "DDERR_INVALIDSURFACETYPE"},
+
+ { DDERR_NOOPTIMIZEHW, "DDERR_NOOPTIMIZEHW"},
+ { DDERR_NOTLOADED, "DDERR_NOTLOADED"},
+
+ { DDERR_DCALREADYCREATED, "DDERR_DCALREADYCREATED"},
+
+ { DDERR_NONONLOCALVIDMEM, "DDERR_NONONLOCALVIDMEM"},
+ { DDERR_CANTPAGELOCK, "DDERR_CANTPAGELOCK"},
+ { DDERR_CANTPAGEUNLOCK, "DDERR_CANTPAGEUNLOCK"},
+ { DDERR_NOTPAGELOCKED, "DDERR_NOTPAGELOCKED"},
+
+ { DDERR_MOREDATA, "DDERR_MOREDATA"},
+ { DDERR_VIDEONOTACTIVE, "DDERR_VIDEONOTACTIVE"},
+ { DDERR_DEVICEDOESNTOWNSURFACE, "DDERR_DEVICEDOESNTOWNSURFACE"},
+ { DDERR_NOTINITIALIZED, "DDERR_NOTINITIALIZED"},
+
+ { DIERR_OLDDIRECTINPUTVERSION, "DIERR_OLDDIRECTINPUTVERSION" },
+ { DIERR_BETADIRECTINPUTVERSION, "DIERR_BETADIRECTINPUTVERSION" },
+ { DIERR_BADDRIVERVER, "DIERR_BADDRIVERVER" },
+ { DIERR_DEVICENOTREG, "DIERR_DEVICENOTREG" },
+ { DIERR_NOTFOUND, "DIERR_NOTFOUND" },
+ { DIERR_OBJECTNOTFOUND, "DIERR_OBJECTNOTFOUND" },
+ { DIERR_INVALIDPARAM, "DIERR_INVALIDPARAM" },
+ { DIERR_NOINTERFACE, "DIERR_NOINTERFACE" },
+ { DIERR_GENERIC, "DIERR_GENERIC" },
+ { DIERR_OUTOFMEMORY, "DIERR_OUTOFMEMORY" },
+ { DIERR_UNSUPPORTED, "DIERR_UNSUPPORTED" },
+ { DIERR_NOTINITIALIZED, "DIERR_NOTINITIALIZED" },
+ { DIERR_ALREADYINITIALIZED, "DIERR_ALREADYINITIALIZED" },
+ { DIERR_NOAGGREGATION, "DIERR_NOAGGREGATION" },
+ { DIERR_OTHERAPPHASPRIO, "DIERR_OTHERAPPHASPRIO" },
+ { DIERR_INPUTLOST, "DIERR_INPUTLOST" },
+ { DIERR_ACQUIRED, "DIERR_ACQUIRED" },
+ { DIERR_NOTACQUIRED, "DIERR_NOTACQUIRED" },
+ { DIERR_READONLY, "DIERR_READONLY" },
+ { DIERR_HANDLEEXISTS, "DIERR_HANDLEEXISTS" },
+ { E_PENDING, "E_PENDING" },
+ { (HRESULT)DIERR_INSUFFICIENTPRIVS, "DIERR_INSUFFICIENTPRIVS" },
+ { (HRESULT)DIERR_DEVICEFULL, "DIERR_DEVICEFULL" },
+ { (HRESULT)DIERR_MOREDATA, "DIERR_MOREDATA" },
+ { (HRESULT)DIERR_NOTDOWNLOADED, "DIERR_NOTDOWNLOADED" },
+ { (HRESULT)DIERR_HASEFFECTS, "DIERR_HASEFFECTS" },
+ { (HRESULT)DIERR_NOTEXCLUSIVEACQUIRED,"DIERR_NOTEXCLUSIVEACQUIRED" },
+ { (HRESULT)DIERR_INCOMPLETEEFFECT, "DIERR_INCOMPLETEEFFECT" },
+ { (HRESULT)DIERR_NOTBUFFERED, "DIERR_NOTBUFFERED" },
+ { (HRESULT)DIERR_EFFECTPLAYING, "DIERR_EFFECTPLAYING" },
+ //{ (HRESULT)DIERR_UNPLUGGED, "DIERR_UNPLUGGED" },
+
+ { E_NOINTERFACE, "E_NOINTERFACE" }
+
+};
+
+
+/****************************************************************************
+ DirectXDecodeError: Return a string description of the given DirectX
+ error code.
+*****************************************************************************/
+const char * DirectXDecodeError(HRESULT errorval)
+{
+ for (int i = 0; i < (sizeof(g_ErrorCode) / sizeof(g_ErrorCode[0])); i++)
+ {
+ if (g_ErrorCode[i].hr == errorval)
+ {
+ return g_ErrorCode[i].szError;
+ }
+ }
+ static char tmp[64];
+ sprintf(tmp, "UNKNOWN: 0x%x", (unsigned int)errorval);
+ return tmp;
+}
+
diff --git a/src/osd/winui/dijoystick.h b/src/osd/winui/dijoystick.h
new file mode 100644
index 00000000000..560b5b8fb20
--- /dev/null
+++ b/src/osd/winui/dijoystick.h
@@ -0,0 +1,63 @@
+// For licensing and usage information, read docs/winui_license.txt
+//****************************************************************************
+
+#ifndef DIJOYSTICK_H
+#define DIJOYSTICK_H
+
+/*
+ limits:
+ - 7 joysticks
+ - 15 sticks on each joystick (15?)
+ - 63 buttons on each joystick
+
+ - 256 total inputs
+
+
+ 1 1 1 1 1 1
+ 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
+ +---+-----------+---------+-----+
+ |Dir|Axis/Button| Stick | Joy |
+ +---+-----------+---------+-----+
+
+ Stick: 0 for buttons 1 for axis
+ Joy: 1 for Mouse/track buttons
+
+*/
+#define JOYCODE(joy, stick, axis_or_button, dir) \
+ ((((dir) & 0x03) << 14) | \
+ (((axis_or_button) & 0x3f) << 8) | \
+ (((stick) & 0x1f) << 3) | \
+ (((joy) & 0x07) << 0))
+
+#define GET_JOYCODE_JOY(code) (((code) >> 0) & 0x07)
+#define GET_JOYCODE_STICK(code) (((code) >> 3) & 0x1f)
+#define GET_JOYCODE_AXIS(code) (((code) >> 8) & 0x3f)
+#define GET_JOYCODE_BUTTON(code) GET_JOYCODE_AXIS(code)
+#define GET_JOYCODE_DIR(code) (((code) >>14) & 0x03)
+
+#define JOYCODE_STICK_BTN 0
+#define JOYCODE_STICK_AXIS 1
+#define JOYCODE_STICK_POV 2
+
+#define JOYCODE_DIR_BTN 0
+#define JOYCODE_DIR_NEG 1
+#define JOYCODE_DIR_POS 2
+
+struct OSDJoystick
+{
+ int (*init)(void);
+ void (*exit)(void);
+ int (*is_joy_pressed)(int joycode);
+ void (*poll_joysticks)(void);
+ BOOL (*Available)(void);
+};
+
+extern const struct OSDJoystick DIJoystick;
+
+extern int DIJoystick_GetNumPhysicalJoysticks(void);
+extern TCHAR* DIJoystick_GetPhysicalJoystickName(int num_joystick);
+
+extern int DIJoystick_GetNumPhysicalJoystickAxes(int num_joystick);
+extern TCHAR* DIJoystick_GetPhysicalJoystickAxisName(int num_joystick, int num_axis);
+
+#endif
diff --git a/src/osd/winui/directinput.cpp b/src/osd/winui/directinput.cpp
new file mode 100644
index 00000000000..33977913b14
--- /dev/null
+++ b/src/osd/winui/directinput.cpp
@@ -0,0 +1,143 @@
+// For licensing and usage information, read docs/winui_license.txt
+// MASTER
+//****************************************************************************
+
+/***************************************************************************
+
+ directinput.cpp
+
+ Direct Input routines.
+
+ ***************************************************************************/
+// standard windows headers
+#include <windows.h>
+
+// MAME/MAMEUI headers
+#include "mui_util.h" // For ErrorMsg
+#include "directinput.h"
+
+/***************************************************************************
+ function prototypes
+ ***************************************************************************/
+
+/***************************************************************************
+ External variables
+ ***************************************************************************/
+
+/***************************************************************************
+ Internal structures
+ ***************************************************************************/
+
+/***************************************************************************
+ Internal variables
+ ***************************************************************************/
+
+static LPDIRECTINPUT di = NULL;
+
+static HANDLE hDLL = NULL;
+
+/***************************************************************************
+ External functions
+ ***************************************************************************/
+
+/****************************************************************************
+ * DirectInputInitialize
+ *
+ * Initialize the DirectInput variables.
+ *
+ * This entails the following functions:
+ *
+ * DirectInputCreate
+ *
+ ****************************************************************************/
+
+typedef HRESULT (WINAPI *dic_proc)(HINSTANCE hinst, DWORD dwVersion, LPDIRECTINPUT *ppDI, LPUNKNOWN punkOuter);
+
+BOOL DirectInputInitialize()
+{
+ if (hDLL)
+ return TRUE;
+
+ /* Turn off error dialog for this call */
+ UINT error_mode = SetErrorMode(0);
+ hDLL = LoadLibrary(TEXT("dinput.dll"));
+ SetErrorMode(error_mode);
+
+ if (hDLL == NULL)
+ return FALSE;
+
+ dic_proc dic;
+#ifdef UNICODE
+ dic = (dic_proc)GetProcAddress((HINSTANCE)hDLL, "DirectInputCreateW");
+#else
+ dic = (dic_proc)GetProcAddress((HINSTANCE)hDLL, "DirectInputCreateA");
+#endif
+ if (dic == NULL)
+ return false;
+
+ HRESULT hr = dic(GetModuleHandle(NULL), 0x0700, &di, NULL); // setup DIRECT INPUT 7 for the GUI
+
+ if (FAILED(hr))
+ {
+ hr = dic(GetModuleHandle(NULL), 0x0500, &di, NULL); // if failed, try with version 5
+
+ if (FAILED(hr))
+ {
+ ErrorMsg("DirectInputCreate failed! error=%x\n", (unsigned int)hr);
+ di = NULL;
+ return false;
+ }
+ }
+ return true;
+}
+
+/****************************************************************************
+ *
+ * DirectInputClose
+ *
+ * Terminate our usage of DirectInput.
+ *
+ ****************************************************************************/
+
+void DirectInputClose()
+{
+ /* Release any lingering IDirectInput object. */
+ if (di)
+ {
+ IDirectInput_Release(di);
+ di = NULL;
+ }
+}
+
+BOOL CALLBACK inputEnumDeviceProc(LPCDIDEVICEINSTANCE pdidi, LPVOID pv)
+{
+ GUID *pguidDevice;
+
+ /* report back the instance guid of the device we enumerated */
+ if (pv)
+ {
+ pguidDevice = (GUID *)pv;
+ *pguidDevice = pdidi->guidInstance;
+ }
+
+ /* BUGBUG for now, stop after the first device has been found */
+ return DIENUM_STOP;
+}
+
+HRESULT SetDIDwordProperty(LPDIRECTINPUTDEVICE2 pdev, REFGUID guidProperty, DWORD dwObject, DWORD dwHow, DWORD dwValue)
+{
+ DIPROPDWORD dipdw;
+
+ dipdw.diph.dwSize = sizeof(dipdw);
+ dipdw.diph.dwHeaderSize = sizeof(dipdw.diph);
+ dipdw.diph.dwObj = dwObject;
+ dipdw.diph.dwHow = dwHow;
+ dipdw.dwData = dwValue;
+
+ return IDirectInputDevice2_SetProperty(pdev, guidProperty, &dipdw.diph);
+}
+
+LPDIRECTINPUT GetDirectInput(void)
+{
+ return di;
+}
diff --git a/src/osd/winui/directinput.h b/src/osd/winui/directinput.h
new file mode 100644
index 00000000000..7af72dab981
--- /dev/null
+++ b/src/osd/winui/directinput.h
@@ -0,0 +1,23 @@
+// For licensing and usage information, read docs/winui_license.txt
+//****************************************************************************
+
+#ifndef DIRECTINPUT_H
+#define DIRECTINPUT_H
+
+#undef WINNT
+#ifdef DIRECTINPUT_VERSION
+#undef DIRECTINPUT_VERSION
+#endif
+#define DIRECTINPUT_VERSION 0x0700
+#include <dinput.h>
+
+extern BOOL DirectInputInitialize(void);
+extern void DirectInputClose(void);
+
+extern BOOL CALLBACK inputEnumDeviceProc(LPCDIDEVICEINSTANCE pdidi, LPVOID pv);
+
+extern HRESULT SetDIDwordProperty(LPDIRECTINPUTDEVICE2 pdev, REFGUID guidProperty, DWORD dwObject, DWORD dwHow, DWORD dwValue);
+
+LPDIRECTINPUT GetDirectInput(void);
+
+#endif
diff --git a/src/osd/winui/directories.cpp b/src/osd/winui/directories.cpp
new file mode 100644
index 00000000000..034ed91f2fa
--- /dev/null
+++ b/src/osd/winui/directories.cpp
@@ -0,0 +1,703 @@
+// For licensing and usage information, read docs/winui_license.txt
+// MASTER
+//****************************************************************************
+
+/***************************************************************************
+
+ directories.c
+
+***************************************************************************/
+
+// standard windows headers
+#include <windows.h>
+#include <windowsx.h>
+
+// standard C headers
+#include <sys/stat.h> // S_IFDIR
+#include <tchar.h>
+
+// MAME/MAMEUI headers
+#include "directories.h"
+#include "resource.h"
+#include "mui_util.h"
+
+// SHELL DIR header
+#include <shlobj.h>
+
+#define MAX_DIRS 256
+
+/***************************************************************************
+ Internal structures
+ ***************************************************************************/
+
+typedef struct
+{
+ TCHAR m_Directories[MAX_DIRS][MAX_PATH];
+ int m_NumDirectories;
+ BOOL m_bModified;
+} tPath;
+
+typedef struct
+{
+ tPath *m_Path;
+ TCHAR *m_tDirectory;
+} tDirInfo;
+
+/***************************************************************************
+ Function prototypes
+ ***************************************************************************/
+
+static int CALLBACK BrowseCallbackProc(HWND hwnd, UINT uMsg, LPARAM lParam, LPARAM lpData);
+BOOL BrowseForDirectory(HWND hwnd, LPCTSTR pStartDir, TCHAR* pResult);
+
+static void DirInfo_SetDir(tDirInfo *pInfo, int nType, int nItem, LPCTSTR pText);
+static TCHAR* DirInfo_Dir(tDirInfo *pInfo, int nType);
+static TCHAR* DirInfo_Path(tDirInfo *pInfo, int nType, int nItem);
+static void DirInfo_SetModified(tDirInfo *pInfo, int nType, BOOL bModified);
+static BOOL DirInfo_Modified(tDirInfo *pInfo, int nType);
+static TCHAR* FixSlash(TCHAR *s);
+
+static void UpdateDirectoryList(HWND hDlg);
+
+static void Directories_OnSelChange(HWND hDlg);
+static BOOL Directories_OnInitDialog(HWND hDlg, HWND hwndFocus, LPARAM lParam);
+static void Directories_OnDestroy(HWND hDlg);
+static void Directories_OnClose(HWND hDlg);
+static void Directories_OnOk(HWND hDlg);
+static void Directories_OnCancel(HWND hDlg);
+static void Directories_OnInsert(HWND hDlg);
+static void Directories_OnBrowse(HWND hDlg);
+static void Directories_OnDelete(HWND hDlg);
+static BOOL Directories_OnBeginLabelEdit(HWND hDlg, NMHDR* pNMHDR);
+static BOOL Directories_OnEndLabelEdit(HWND hDlg, NMHDR* pNMHDR);
+static void Directories_OnCommand(HWND hDlg, int id, HWND hwndCtl, UINT codeNotify);
+static BOOL Directories_OnNotify(HWND hDlg, int id, NMHDR* pNMHDR);
+
+/***************************************************************************
+ External variables
+ ***************************************************************************/
+
+/***************************************************************************
+ Internal variables
+ ***************************************************************************/
+
+static tDirInfo *g_pDirInfo;
+
+/***************************************************************************
+ External function definitions
+ ***************************************************************************/
+
+INT_PTR CALLBACK DirectoriesDialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam)
+{
+ BOOL bReturn = false;
+
+ switch (Msg)
+ {
+ case WM_INITDIALOG:
+ return (BOOL)HANDLE_WM_INITDIALOG(hDlg, wParam, lParam, Directories_OnInitDialog);
+
+ case WM_COMMAND:
+ HANDLE_WM_COMMAND(hDlg, wParam, lParam, Directories_OnCommand);
+ bReturn = true;
+ break;
+
+ case WM_NOTIFY:
+ return (BOOL)HANDLE_WM_NOTIFY(hDlg, wParam, lParam, Directories_OnNotify);
+
+ case WM_CLOSE:
+ HANDLE_WM_CLOSE(hDlg, wParam, lParam, Directories_OnClose);
+ break;
+
+ case WM_DESTROY:
+ HANDLE_WM_DESTROY(hDlg, wParam, lParam, Directories_OnDestroy);
+ break;
+
+ default:
+ break;
+ }
+ return bReturn;
+}
+
+/***************************************************************************
+ Internal function definitions
+ ***************************************************************************/
+
+static BOOL IsMultiDir(int nType)
+{
+ return g_directoryInfo[nType].bMulti;
+}
+
+static void DirInfo_SetDir(tDirInfo *pInfo, int nType, int nItem, LPCTSTR pText)
+{
+ TCHAR *t_s;
+ TCHAR *t_pOldText;
+
+ if (IsMultiDir(nType))
+ {
+ assert(nItem >= 0);
+ _tcscpy(DirInfo_Path(pInfo, nType, nItem), pText);
+ DirInfo_SetModified(pInfo, nType, TRUE);
+ }
+ else
+ {
+ t_s = win_tstring_strdup(pText);
+ if (!t_s)
+ return;
+ t_pOldText = pInfo[nType].m_tDirectory;
+ if (t_pOldText)
+ free(t_pOldText);
+ pInfo[nType].m_tDirectory = t_s; // don't free t_s else directory name is corrupted
+ }
+}
+
+static TCHAR* DirInfo_Dir(tDirInfo *pInfo, int nType)
+{
+ // if a multipath exists in a single-path-only area then truncate it
+ return _tcstok(pInfo[nType].m_tDirectory, TEXT(";"));
+}
+
+static TCHAR* DirInfo_Path(tDirInfo *pInfo, int nType, int nItem)
+{
+ return pInfo[nType].m_Path->m_Directories[nItem];
+}
+
+static void DirInfo_SetModified(tDirInfo *pInfo, int nType, BOOL bModified)
+{
+ //assert(IsMultiDir(nType));
+ pInfo[nType].m_Path->m_bModified = bModified;
+}
+
+static BOOL DirInfo_Modified(tDirInfo *pInfo, int nType)
+{
+ //assert(IsMultiDir(nType));
+ return pInfo[nType].m_Path->m_bModified;
+}
+
+#define DirInfo_NumDir(pInfo, path) \
+ ((pInfo)[(path)].m_Path->m_NumDirectories)
+
+/* lop off trailing backslash if it exists */
+static TCHAR * FixSlash(TCHAR *s)
+{
+ int len = 0;
+
+ if (s)
+ len = _tcslen(s);
+
+ if (len>3 && s[len - 1] == '\\')
+ s[len - 1] = '\0';
+
+ return s;
+}
+
+static void UpdateDirectoryList(HWND hDlg)
+{
+ HWND hList = GetDlgItem(hDlg, IDC_DIR_LIST);
+ HWND hCombo = GetDlgItem(hDlg, IDC_DIR_COMBO);
+
+ /* Remove previous */
+ BOOL b_res = ListView_DeleteAllItems(hList);
+
+ /* Update list */
+ LV_ITEM Item;
+ memset(&Item, 0, sizeof(LV_ITEM));
+ Item.mask = LVIF_TEXT;
+
+ int nType = ComboBox_GetCurSel(hCombo);
+ if (IsMultiDir(nType))
+ {
+ Item.pszText = (TCHAR*) TEXT(DIRLIST_NEWENTRYTEXT); // puts the < > empty entry in
+ (void)ListView_InsertItem(hList, &Item);
+ int t = DirInfo_NumDir(g_pDirInfo, nType);
+ // directories are inserted in reverse order
+ for (int i = t; 0 < i; i--)
+ {
+ Item.pszText = DirInfo_Path(g_pDirInfo, nType, i-1);
+ (void)ListView_InsertItem(hList, &Item);
+ }
+ }
+ else
+ {
+ Item.pszText = DirInfo_Dir(g_pDirInfo, nType);
+ (void)ListView_InsertItem(hList, &Item);
+ }
+
+ /* select first one */
+
+ ListView_SetItemState(hList, 0, LVIS_SELECTED, LVIS_SELECTED);
+ b_res++;
+}
+
+static void Directories_OnSelChange(HWND hDlg)
+{
+ UpdateDirectoryList(hDlg);
+
+ HWND hCombo = GetDlgItem(hDlg, IDC_DIR_COMBO);
+ int nType = ComboBox_GetCurSel(hCombo);
+ if (IsMultiDir(nType))
+ {
+ EnableWindow(GetDlgItem(hDlg, IDC_DIR_DELETE), TRUE);
+ EnableWindow(GetDlgItem(hDlg, IDC_DIR_INSERT), TRUE);
+ }
+ else
+ {
+ EnableWindow(GetDlgItem(hDlg, IDC_DIR_DELETE), FALSE);
+ EnableWindow(GetDlgItem(hDlg, IDC_DIR_INSERT), FALSE);
+ }
+}
+
+static BOOL Directories_OnInitDialog(HWND hDlg, HWND hwndFocus, LPARAM lParam)
+{
+ RECT rectClient;
+ LVCOLUMN LVCol;
+ int i = 0;
+ std::string s;
+ TCHAR *token;
+ TCHAR buf[MAX_PATH * MAX_DIRS];
+ TCHAR* t_s = NULL;
+ HRESULT res = 0;
+
+ /* count how many dirinfos there are */
+ int nDirInfoCount = 0;
+ while(g_directoryInfo[nDirInfoCount].lpName)
+ nDirInfoCount++;
+
+ g_pDirInfo = (tDirInfo *) malloc(sizeof(tDirInfo) * nDirInfoCount);
+ if (!g_pDirInfo) /* bummer */
+ goto error;
+ memset(g_pDirInfo, 0, sizeof(tDirInfo) * nDirInfoCount);
+
+ for (i = nDirInfoCount - 1; i >= 0; i--)
+ {
+ t_s = ui_wstring_from_utf8(g_directoryInfo[i].lpName);
+ if( !t_s )
+ return FALSE;
+ (void)ComboBox_InsertString(GetDlgItem(hDlg, IDC_DIR_COMBO), 0, win_tstring_strdup(t_s));
+ free(t_s);
+ t_s = NULL;
+ }
+
+ (void)ComboBox_SetCurSel(GetDlgItem(hDlg, IDC_DIR_COMBO), 0);
+
+ GetClientRect(GetDlgItem(hDlg, IDC_DIR_LIST), &rectClient);
+
+ memset(&LVCol, 0, sizeof(LVCOLUMN));
+ LVCol.mask = LVCF_WIDTH;
+ LVCol.cx = rectClient.right - rectClient.left - GetSystemMetrics(SM_CXHSCROLL);
+
+ res = ListView_InsertColumn(GetDlgItem(hDlg, IDC_DIR_LIST), 0, &LVCol);
+ res++;
+
+ /* Keep a temporary copy of the directory strings in g_pDirInfo. */
+ for (i = 0; i < nDirInfoCount; i++)
+ {
+ s = g_directoryInfo[i].pfnGetTheseDirs();
+ t_s = ui_wstring_from_utf8(s.c_str());
+ if( !t_s )
+ return false;
+ /* Copy the string to our own buffer so that we can mutilate it */
+ _tcscpy(buf, t_s);
+
+ if (IsMultiDir(i))
+ {
+ g_pDirInfo[i].m_Path = (tPath*)malloc(sizeof(tPath));
+ if (!g_pDirInfo[i].m_Path)
+ goto error;
+
+ g_pDirInfo[i].m_Path->m_NumDirectories = 0;
+ token = _tcstok(buf, TEXT(";"));
+ while ((DirInfo_NumDir(g_pDirInfo, i) < MAX_DIRS) && token)
+ {
+ _tcscpy(DirInfo_Path(g_pDirInfo, i, DirInfo_NumDir(g_pDirInfo, i)), token);
+ DirInfo_NumDir(g_pDirInfo, i)++;
+ token = _tcstok(NULL, TEXT(";"));
+ }
+ DirInfo_SetModified(g_pDirInfo, i, FALSE);
+ }
+ else
+ {
+ // multi not supported so get first directory only
+ token = _tcstok(buf, TEXT(";"));
+ if (token)
+ DirInfo_SetDir(g_pDirInfo, i, -1, token);
+ else
+ DirInfo_SetDir(g_pDirInfo, i, -1, t_s);
+ }
+ free(t_s);
+ t_s = NULL;
+ }
+
+ UpdateDirectoryList(hDlg);
+ return true;
+
+error:
+ if( t_s )
+ free(t_s);
+ Directories_OnDestroy(hDlg);
+ EndDialog(hDlg, -1);
+ return false;
+}
+
+static void Directories_OnDestroy(HWND hDlg)
+{
+ if (g_pDirInfo)
+ {
+ /* count how many dirinfos there are */
+ int nDirInfoCount = 0;
+ while(g_directoryInfo[nDirInfoCount].lpName)
+ nDirInfoCount++;
+
+ for (int i = 0; i < nDirInfoCount; i++)
+ {
+ if (g_pDirInfo[i].m_Path)
+ free(g_pDirInfo[i].m_Path);
+ if (g_pDirInfo[i].m_tDirectory)
+ free(g_pDirInfo[i].m_tDirectory);
+ }
+ free(g_pDirInfo);
+ g_pDirInfo = NULL;
+ }
+}
+
+static void Directories_OnClose(HWND hDlg)
+{
+ EndDialog(hDlg, IDCANCEL);
+}
+
+static int RetrieveDirList(int nDir, int nFlagResult, void (*SetTheseDirs)(const char *s))
+{
+ int nResult = 0;
+
+ if (DirInfo_Modified(g_pDirInfo, nDir))
+ {
+ TCHAR buf[MAX_PATH * MAX_DIRS];
+ memset(buf, 0, sizeof(buf));
+ int nPaths = DirInfo_NumDir(g_pDirInfo, nDir);
+ for (int i = 0; i < nPaths; i++)
+ {
+ _tcscat(buf, FixSlash(DirInfo_Path(g_pDirInfo, nDir, i)));
+
+ if (i < nPaths - 1)
+ _tcscat(buf, TEXT(";"));
+ }
+ char* utf8_buf = ui_utf8_from_wstring(buf);
+ SetTheseDirs(utf8_buf);
+ free(utf8_buf);
+
+ nResult |= nFlagResult;
+ }
+ return nResult;
+}
+
+static void Directories_OnOk(HWND hDlg)
+{
+ int nResult = 0;
+
+ for (int i = 0; g_directoryInfo[i].lpName; i++)
+ {
+ if (IsMultiDir(i))
+ nResult |= RetrieveDirList(i, g_directoryInfo[i].nDirDlgFlags, g_directoryInfo[i].pfnSetTheseDirs);
+ else
+ {
+ LPTSTR s = FixSlash(DirInfo_Dir(g_pDirInfo, i));
+ char* utf8_s = ui_utf8_from_wstring(s);
+ g_directoryInfo[i].pfnSetTheseDirs(utf8_s);
+ free(utf8_s);
+ }
+ }
+ EndDialog(hDlg, nResult);
+}
+
+static void Directories_OnCancel(HWND hDlg)
+{
+ EndDialog(hDlg, IDCANCEL);
+}
+
+static void Directories_OnInsert(HWND hDlg)
+{
+ HWND hList = GetDlgItem(hDlg, IDC_DIR_LIST);
+ int nItem = ListView_GetNextItem(hList, -1, LVNI_SELECTED);
+
+ TCHAR buf[MAX_PATH];
+ if (BrowseForDirectory(hDlg, NULL, buf) == true)
+ {
+ /* list was empty */
+ if (nItem == -1)
+ nItem = 0;
+
+ int nType = ComboBox_GetCurSel(GetDlgItem(hDlg, IDC_DIR_COMBO));
+ if (IsMultiDir(nType))
+ {
+ if (MAX_DIRS <= DirInfo_NumDir(g_pDirInfo, nType))
+ return;
+
+ for (int i = DirInfo_NumDir(g_pDirInfo, nType); nItem < i; i--)
+ _tcscpy(DirInfo_Path(g_pDirInfo, nType, i), DirInfo_Path(g_pDirInfo, nType, i - 1));
+
+ _tcscpy(DirInfo_Path(g_pDirInfo, nType, nItem), buf);
+ DirInfo_NumDir(g_pDirInfo, nType)++;
+ DirInfo_SetModified(g_pDirInfo, nType, true);
+ }
+
+ UpdateDirectoryList(hDlg);
+
+ ListView_SetItemState(hList, nItem, LVIS_FOCUSED | LVIS_SELECTED, LVIS_FOCUSED | LVIS_SELECTED);
+ }
+}
+
+static void Directories_OnBrowse(HWND hDlg)
+{
+ HWND hList = GetDlgItem(hDlg, IDC_DIR_LIST);
+ int nItem = ListView_GetNextItem(hList, -1, LVNI_SELECTED);
+
+ if (nItem == -1)
+ return;
+
+ int nType = ComboBox_GetCurSel(GetDlgItem(hDlg, IDC_DIR_COMBO));
+ if (IsMultiDir(nType))
+ {
+ /* Last item is placeholder for append */
+ if (nItem == ListView_GetItemCount(hList) - 1)
+ {
+ Directories_OnInsert(hDlg);
+ return;
+ }
+ }
+
+ TCHAR inbuf[MAX_PATH], outbuf[MAX_PATH];
+ ListView_GetItemText(hList, nItem, 0, inbuf, MAX_PATH);
+
+ if (BrowseForDirectory(hDlg, inbuf, outbuf) == true)
+ {
+ nType = ComboBox_GetCurSel(GetDlgItem(hDlg, IDC_DIR_COMBO));
+ DirInfo_SetDir(g_pDirInfo, nType, nItem, outbuf);
+ UpdateDirectoryList(hDlg);
+ }
+}
+
+static void Directories_OnDelete(HWND hDlg)
+{
+ HWND hList = GetDlgItem(hDlg, IDC_DIR_LIST);
+ int nItem = ListView_GetNextItem(hList, -1, LVNI_SELECTED | LVNI_ALL);
+
+ if (nItem == -1)
+ return;
+
+ /* Don't delete "Append" placeholder. */
+ if (nItem == ListView_GetItemCount(hList) - 1)
+ return;
+
+ int nType = ComboBox_GetCurSel(GetDlgItem(hDlg, IDC_DIR_COMBO));
+ if (IsMultiDir(nType))
+ {
+ for (int i = nItem; i < DirInfo_NumDir(g_pDirInfo, nType) - 1; i++)
+ _tcscpy(DirInfo_Path(g_pDirInfo, nType, i), DirInfo_Path(g_pDirInfo, nType, i + 1));
+
+ _tcscpy(DirInfo_Path(g_pDirInfo, nType, DirInfo_NumDir(g_pDirInfo, nType) - 1), TEXT(""));
+ DirInfo_NumDir(g_pDirInfo, nType)--;
+
+ DirInfo_SetModified(g_pDirInfo, nType, TRUE);
+ }
+
+ UpdateDirectoryList(hDlg);
+
+ int nCount = ListView_GetItemCount(hList);
+ if (nCount <= 1)
+ return;
+
+ /* If the last item was removed, select the item above. */
+ int nSelect;
+ if (nItem == nCount - 1)
+ nSelect = nCount - 2;
+ else
+ nSelect = nItem;
+
+ ListView_SetItemState(hList, nSelect, LVIS_FOCUSED | LVIS_SELECTED, LVIS_FOCUSED | LVIS_SELECTED);
+}
+
+static BOOL Directories_OnBeginLabelEdit(HWND hDlg, NMHDR* pNMHDR)
+{
+ BOOL bResult = false;
+ NMLVDISPINFO* pDispInfo = (NMLVDISPINFO*)pNMHDR;
+ LVITEM* pItem = &pDispInfo->item;
+
+ int nType = ComboBox_GetCurSel(GetDlgItem(hDlg, IDC_DIR_COMBO));
+ if (IsMultiDir(nType))
+ {
+ /* Last item is placeholder for append */
+ if (pItem->iItem == ListView_GetItemCount(GetDlgItem(hDlg, IDC_DIR_LIST)) - 1)
+ {
+ if (MAX_DIRS <= DirInfo_NumDir(g_pDirInfo, nType))
+ return true; /* don't edit */
+
+ HWND hEdit = (HWND)(LRESULT)(int)SendDlgItemMessage(hDlg, IDC_DIR_LIST, LVM_GETEDITCONTROL, 0, 0);
+ Edit_SetText(hEdit, TEXT(""));
+ }
+ }
+
+ return bResult;
+}
+
+static BOOL Directories_OnEndLabelEdit(HWND hDlg, NMHDR* pNMHDR)
+{
+ BOOL bResult = false;
+ NMLVDISPINFO* pDispInfo = (NMLVDISPINFO*)pNMHDR;
+ LVITEM* pItem = &pDispInfo->item;
+
+ if (pItem->pszText)
+ {
+ struct _stat file_stat;
+
+ /* Don't allow empty entries. */
+ if (!_tcscmp(pItem->pszText, TEXT("")))
+ return false;
+
+ /* Check validity of edited directory. */
+ if (_tstat(pItem->pszText, &file_stat) == 0
+ && (file_stat.st_mode & S_IFDIR))
+ bResult = true;
+ else
+ if (MessageBox(NULL, TEXT("Directory does not exist, continue anyway?"), TEXT(MAMEUINAME), MB_OKCANCEL) == IDOK)
+ bResult = true;
+ }
+
+ if (bResult == true)
+ {
+ int nType = ComboBox_GetCurSel(GetDlgItem(hDlg, IDC_DIR_COMBO));
+ if (IsMultiDir(nType))
+ {
+ /* Last item is placeholder for append */
+ if (pItem->iItem == ListView_GetItemCount(GetDlgItem(hDlg, IDC_DIR_LIST)) - 1)
+ {
+ if (MAX_DIRS <= DirInfo_NumDir(g_pDirInfo, nType))
+ return false;
+
+ for (int i = DirInfo_NumDir(g_pDirInfo, nType); pItem->iItem < i; i--)
+ _tcscpy(DirInfo_Path(g_pDirInfo, nType, i), DirInfo_Path(g_pDirInfo, nType, i - 1));
+
+ _tcscpy(DirInfo_Path(g_pDirInfo, nType, pItem->iItem), pItem->pszText);
+
+ DirInfo_SetModified(g_pDirInfo, nType, true);
+ DirInfo_NumDir(g_pDirInfo, nType)++;
+ }
+ else
+ DirInfo_SetDir(g_pDirInfo, nType, pItem->iItem, pItem->pszText);
+ }
+ else
+ DirInfo_SetDir(g_pDirInfo, nType, pItem->iItem, pItem->pszText);
+
+ UpdateDirectoryList(hDlg);
+ ListView_SetItemState(GetDlgItem(hDlg, IDC_DIR_LIST), pItem->iItem, LVIS_FOCUSED | LVIS_SELECTED, LVIS_FOCUSED | LVIS_SELECTED);
+ }
+
+ return bResult;
+}
+
+static void Directories_OnCommand(HWND hDlg, int id, HWND hwndCtl, UINT codeNotify)
+{
+ switch (id)
+ {
+ case IDOK:
+ if (codeNotify == BN_CLICKED)
+ Directories_OnOk(hDlg);
+ break;
+
+ case IDCANCEL:
+ if (codeNotify == BN_CLICKED)
+ Directories_OnCancel(hDlg);
+ break;
+
+ case IDC_DIR_BROWSE:
+ if (codeNotify == BN_CLICKED)
+ Directories_OnBrowse(hDlg);
+ break;
+
+ case IDC_DIR_INSERT:
+ if (codeNotify == BN_CLICKED)
+ Directories_OnInsert(hDlg);
+ break;
+
+ case IDC_DIR_DELETE:
+ if (codeNotify == BN_CLICKED)
+ Directories_OnDelete(hDlg);
+ break;
+
+ case IDC_DIR_COMBO:
+ switch (codeNotify)
+ {
+ case CBN_SELCHANGE:
+ Directories_OnSelChange(hDlg);
+ break;
+ }
+ break;
+ }
+}
+
+static BOOL Directories_OnNotify(HWND hDlg, int id, NMHDR* pNMHDR)
+{
+ switch (id)
+ {
+ case IDC_DIR_LIST:
+ switch (pNMHDR->code)
+ {
+ case LVN_ENDLABELEDIT:
+ return Directories_OnEndLabelEdit(hDlg, pNMHDR);
+
+ case LVN_BEGINLABELEDIT:
+ return Directories_OnBeginLabelEdit(hDlg, pNMHDR);
+ }
+ }
+ return FALSE;
+}
+
+/**************************************************************************
+
+ Use the shell to select a Directory.
+
+ **************************************************************************/
+
+static int CALLBACK BrowseCallbackProc(HWND hwnd, UINT uMsg, LPARAM lParam, LPARAM lpData)
+{
+ /*
+ Called just after the dialog is initialized
+ Select the dir passed in BROWSEINFO.lParam
+ */
+ if (uMsg == BFFM_INITIALIZED)
+ {
+ if ((const char*)lpData)
+ SendMessage(hwnd, BFFM_SETSELECTION, TRUE, lpData);
+ }
+
+ return 0;
+}
+
+BOOL BrowseForDirectory(HWND hwnd, LPCTSTR pStartDir, TCHAR* pResult)
+{
+ BOOL bResult = false;
+ TCHAR buf[MAX_PATH];
+
+ BROWSEINFO Info;
+ Info.hwndOwner = hwnd;
+ Info.pidlRoot = NULL;
+ Info.pszDisplayName = buf;
+ Info.lpszTitle = TEXT("Select a directory:");
+ Info.ulFlags = BIF_RETURNONLYFSDIRS | BIF_USENEWUI;
+ Info.lpfn = BrowseCallbackProc;
+ Info.lParam = (LPARAM)pStartDir;
+
+ LPITEMIDLIST pItemIDList = SHBrowseForFolder(&Info);
+
+ if (pItemIDList)
+ {
+ if (SHGetPathFromIDList(pItemIDList, buf) == true)
+ {
+ _sntprintf(pResult, MAX_PATH, TEXT("%s"), buf);
+ bResult = true;
+ }
+ }
+ else
+ bResult = false;
+
+ return bResult;
+}
+
diff --git a/src/osd/winui/directories.h b/src/osd/winui/directories.h
new file mode 100644
index 00000000000..f4e033cd7b5
--- /dev/null
+++ b/src/osd/winui/directories.h
@@ -0,0 +1,83 @@
+// For licensing and usage information, read docs/winui_license.txt
+// MASTER
+//****************************************************************************
+
+#ifndef DIRECTORIES_H
+#define DIRECTORIES_H
+
+/* Dialog return codes - do these do anything??? */
+#define DIRDLG_ROMS 0x0010 // this one does
+#define DIRDLG_SAMPLES 0x0020 // this one does
+#define DIRDLG_INI 0x0040
+#define DIRDLG_CFG 0x0100
+#define DIRDLG_IMG 0x0400
+#define DIRDLG_INP 0x0800
+#define DIRDLG_CTRLR 0x1000
+#define DIRDLG_SW 0x4000 // this one does
+#define DIRDLG_CHEAT 0x8000
+
+#define DIRLIST_NEWENTRYTEXT "< >"
+
+#include "mui_opts.h"
+
+typedef struct
+{
+ LPCSTR lpName; // name to display
+ const std::string (*pfnGetTheseDirs)(void); // function to get existing setting
+ void (*pfnSetTheseDirs)(LPCSTR lpDirs); // function to save new setting
+ BOOL bMulti; // true = it supports multiple directories
+ int nDirDlgFlags; // if changed, a refresh needs to be done
+}
+DIRECTORYINFO;
+
+const DIRECTORYINFO g_directoryInfo[] =
+{
+ { "ROMs", GetRomDirs, SetRomDirs, true, DIRDLG_ROMS },
+ { "Samples", GetSampleDirs, SetSampleDirs, true, DIRDLG_SAMPLES },
+ { "Software File Base", GetSWDir, SetSWDir, false, DIRDLG_SW }, // core cannot handle multiple path, even though we can.
+ { "Artwork", GetArtDir, SetArtDir, true, 0 },
+ { "Artwork Previews", GetArtworkDir, SetArtworkDir, true, 0 },
+ { "Bosses", GetBossesDir, SetBossesDir, true, 0 },
+ { "Cabinets", GetCabinetDir, SetCabinetDir, true, 0 },
+ { "Cheats", GetCheatDir, SetCheatDir, true, DIRDLG_CHEAT },
+ { "Config", GetCfgDir, SetCfgDir, false, DIRDLG_CFG },
+ { "Control Panels", GetControlPanelDir, SetControlPanelDir, true, 0 },
+ { "Controller Files", GetCtrlrDir, SetCtrlrDir, true, DIRDLG_CTRLR },
+ { "Covers", GetCoversDir, SetCoversDir, true, 0 },
+ { "Crosshairs", GetCrosshairDir, SetCrosshairDir, true, 0 },
+ { "DAT files", GetDatsDir, SetDatsDir, false, 0 },
+ { "Ends", GetEndsDir, SetEndsDir, true, 0 },
+ { "Flyers", GetFlyerDir, SetFlyerDir, true, 0 },
+ { "Folders", GetFolderDir, SetFolderDir, false, 0 },
+ { "Fonts", GetFontDir, SetFontDir, true, 0 },
+ { "Game Overs", GetGameOverDir, SetGameOverDir, true, 0 },
+ { "Hash", GetHashDirs, SetHashDirs, true, 0 },
+ { "Hard Drive Difference", GetDiffDir, SetDiffDir, true, 0 },
+ { "HLSL", GetHLSLDir, SetHLSLDir, false, 0 },
+ { "How To", GetHowToDir, SetHowToDir, true, 0 },
+ { "Icons", GetIconsDir, SetIconsDir, false, 0 },
+// { "Ini Files", GetIniDir, SetIniDir, false, DIRDLG_INI }, // 2017-02-03 hardcoded to 'ini' now
+ { "Input files", GetInpDir, SetInpDir, true, DIRDLG_INP },
+ { "Language", GetLangDir, SetLangDir, false, 0 },
+ { "Logos", GetLogoDir, SetLogoDir, true, 0 },
+ { "Manuals (PDF)", GetManualsDir, SetManualsDir, false, 0 },
+ { "Marquees", GetMarqueeDir, SetMarqueeDir, true, 0 },
+ { "NVRAM", GetNvramDir, SetNvramDir, true, 0 },
+ { "PCBs", GetPcbDir, SetPcbDir, true, 0 },
+ { "Plugins", GetPluginsDir, SetPluginsDir, false, 0 },
+ { "Scores", GetScoresDir, SetScoresDir, true, 0 },
+ { "Selects", GetSelectDir, SetSelectDir, true, 0 },
+ { "Snapshots", GetImgDir, SetImgDir, true, DIRDLG_IMG },
+ { "State", GetStateDir, SetStateDir, true, 0 },
+ { "Titles", GetTitlesDir, SetTitlesDir, true, 0 },
+ { "Versus", GetVersusDir, SetVersusDir, true, 0 },
+ { "Videos and Movies", GetVideoDir, SetVideoDir, false, 0 },
+ { NULL }
+};
+
+
+INT_PTR CALLBACK DirectoriesDialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam);
+
+#endif /* DIRECTORIES_H */
+
+
diff --git a/src/osd/winui/dirwatch.cpp b/src/osd/winui/dirwatch.cpp
new file mode 100644
index 00000000000..e67b625e491
--- /dev/null
+++ b/src/osd/winui/dirwatch.cpp
@@ -0,0 +1,346 @@
+// For licensing and usage information, read docs/winui_license.txt
+// MASTER
+//****************************************************************************
+
+// standard windows headers
+#include <windows.h>
+
+// MAME/MAMEUI headers
+#include "dirwatch.h"
+#include "mui_util.h"
+
+typedef BOOL (WINAPI *READDIRECTORYCHANGESFUNC)(HANDLE hDirectory, LPVOID lpBuffer,
+ DWORD nBufferLength, BOOL bWatchSubtree, DWORD dwNotifyFilter,
+ LPDWORD lpBytesReturned, LPOVERLAPPED lpOverlapped,
+ LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine);
+
+
+struct DirWatcherEntry
+{
+ struct DirWatcherEntry *pNext;
+ HANDLE hDir;
+ WORD nIndex;
+ WORD nSubIndex;
+ BOOL bWatchSubtree;
+ OVERLAPPED overlapped;
+
+ union
+ {
+ FILE_NOTIFY_INFORMATION notify;
+ BYTE buffer[1024];
+ } u;
+
+ char szDirPath[1];
+};
+
+
+
+struct DirWatcher
+{
+ HMODULE hKernelModule;
+ READDIRECTORYCHANGESFUNC pfnReadDirectoryChanges;
+
+ HWND hwndTarget;
+ UINT nMessage;
+
+ HANDLE hRequestEvent;
+ HANDLE hResponseEvent;
+ HANDLE hThread;
+ CRITICAL_SECTION crit;
+ struct DirWatcherEntry *pEntries;
+
+ // These are posted externally
+ BOOL bQuit;
+ BOOL bWatchSubtree;
+ WORD nIndex;
+ LPCSTR pszPathList;
+};
+
+
+
+static void DirWatcher_SetupWatch(PDIRWATCHER pWatcher, struct DirWatcherEntry *pEntry)
+{
+ DWORD nDummy;
+
+ memset(&pEntry->u, 0, sizeof(pEntry->u));
+
+ pWatcher->pfnReadDirectoryChanges(pEntry->hDir,
+ &pEntry->u,
+ sizeof(pEntry->u),
+ pEntry->bWatchSubtree,
+ FILE_NOTIFY_CHANGE_FILE_NAME | FILE_NOTIFY_CHANGE_LAST_WRITE | FILE_NOTIFY_CHANGE_SIZE,
+ &nDummy,
+ &pEntry->overlapped,
+ NULL);
+}
+
+
+
+static void DirWatcher_FreeEntry(struct DirWatcherEntry *pEntry)
+{
+ if (pEntry->hDir)
+ CloseHandle(pEntry->hDir);
+ free(pEntry);
+}
+
+
+
+static BOOL DirWatcher_WatchDirectory(PDIRWATCHER pWatcher, int nIndex, int nSubIndex, LPCSTR pszPath, BOOL bWatchSubtree)
+{
+ struct DirWatcherEntry *pEntry;
+ HANDLE hDir;
+
+ pEntry = (DirWatcherEntry *)malloc(sizeof(*pEntry) + strlen(pszPath));
+ if (!pEntry)
+ goto error;
+ memset(pEntry, 0, sizeof(*pEntry));
+ strcpy(pEntry->szDirPath, pszPath);
+ pEntry->overlapped.hEvent = pWatcher->hRequestEvent;
+
+ hDir = win_create_file_utf8(pszPath, FILE_LIST_DIRECTORY,
+ FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE,
+ NULL, OPEN_EXISTING,
+ FILE_FLAG_BACKUP_SEMANTICS | FILE_FLAG_OVERLAPPED, NULL);
+ if (!hDir || (hDir == INVALID_HANDLE_VALUE))
+ goto error;
+
+ // Populate the entry
+ pEntry->hDir = hDir;
+ pEntry->bWatchSubtree = bWatchSubtree;
+ pEntry->nIndex = nIndex;
+ pEntry->nSubIndex = nSubIndex;
+
+ // Link in the entry
+ pEntry->pNext = pWatcher->pEntries;
+ pWatcher->pEntries = pEntry;
+
+ DirWatcher_SetupWatch(pWatcher, pEntry);
+ return true;
+
+error:
+ if (pEntry)
+ DirWatcher_FreeEntry(pEntry);
+ return false;
+}
+
+
+
+static void DirWatcher_Signal(PDIRWATCHER pWatcher, struct DirWatcherEntry *pEntry)
+{
+ LPSTR pszFileName;
+ BOOL bPause = 0;
+ HANDLE hFile;
+
+ {
+ int nLength = WideCharToMultiByte(CP_ACP, 0, pEntry->u.notify.FileName, -1, NULL, 0, NULL, NULL);
+ pszFileName = (LPSTR) alloca(nLength * sizeof(*pszFileName));
+ WideCharToMultiByte(CP_ACP, 0, pEntry->u.notify.FileName, -1, pszFileName, nLength, NULL, NULL);
+ }
+
+ // get the full path to this new file
+ LPSTR pszFullFileName = (LPSTR) alloca(strlen(pEntry->szDirPath) + strlen(pszFileName) + 2);
+ strcpy(pszFullFileName, pEntry->szDirPath);
+ strcat(pszFullFileName, "\\");
+ strcat(pszFullFileName, pszFileName);
+
+ // attempt to busy wait until any result other than ERROR_SHARING_VIOLATION
+ // is generated
+ int nTries = 100;
+ do
+ {
+ hFile = win_create_file_utf8(pszFullFileName, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL);
+ if (hFile != INVALID_HANDLE_VALUE)
+ CloseHandle(hFile);
+
+ bPause = (nTries--) && (hFile == INVALID_HANDLE_VALUE) && (GetLastError() == ERROR_SHARING_VIOLATION);
+ if (bPause)
+ Sleep(10);
+ }
+ while(bPause);
+
+ // send the message (assuming that we have a target)
+ if (pWatcher->hwndTarget)
+ {
+ TCHAR* t_filename = ui_wstring_from_utf8(pszFileName);
+ if( !t_filename )
+ return;
+ SendMessage(pWatcher->hwndTarget, pWatcher->nMessage, (pEntry->nIndex << 16) | (pEntry->nSubIndex << 0), (LPARAM)(LPCTSTR) win_tstring_strdup(t_filename));
+ free(t_filename);
+ }
+
+ DirWatcher_SetupWatch(pWatcher, pEntry);
+}
+
+
+
+static DWORD WINAPI DirWatcher_ThreadProc(LPVOID lpParameter)
+{
+ LPSTR pszPathList, s;
+ int nSubIndex = 0;
+ PDIRWATCHER pWatcher = (PDIRWATCHER) lpParameter;
+ struct DirWatcherEntry *pEntry;
+ struct DirWatcherEntry **ppEntry;
+
+ do
+ {
+ WaitForSingleObject(pWatcher->hRequestEvent, INFINITE);
+
+ if (pWatcher->pszPathList)
+ {
+ // remove any entries with the same nIndex
+ ppEntry = &pWatcher->pEntries;
+ while(*ppEntry)
+ {
+ if ((*ppEntry)->nIndex == pWatcher->nIndex)
+ {
+ pEntry = *ppEntry;
+ *ppEntry = pEntry->pNext;
+ DirWatcher_FreeEntry(pEntry);
+ }
+ else
+ {
+ ppEntry = &(*ppEntry)->pNext;
+ }
+ }
+
+ // allocate our own copy of the path list
+ pszPathList = (LPSTR) alloca(strlen(pWatcher->pszPathList) + 1);
+ strcpy(pszPathList, pWatcher->pszPathList);
+
+ nSubIndex = 0;
+ do
+ {
+ s = strchr(pszPathList, ';');
+ if (s)
+ *s = '\0';
+
+ if (*pszPathList)
+ {
+ DirWatcher_WatchDirectory(pWatcher, pWatcher->nIndex,
+ nSubIndex++, pszPathList, pWatcher->bWatchSubtree);
+ }
+
+ pszPathList = s ? s + 1 : NULL;
+ }
+ while(pszPathList);
+
+ pWatcher->pszPathList = NULL;
+ pWatcher->bWatchSubtree = FALSE;
+ }
+ else
+ {
+ // we have to go through the list and find what has been hit
+ for (pEntry = pWatcher->pEntries; pEntry; pEntry = pEntry->pNext)
+ {
+ if (pEntry->u.notify.Action != 0)
+ {
+ DirWatcher_Signal(pWatcher, pEntry);
+ }
+ }
+ }
+
+ SetEvent(pWatcher->hResponseEvent);
+ }
+ while(!pWatcher->bQuit);
+ return 0;
+}
+
+
+
+PDIRWATCHER DirWatcher_Init(HWND hwndTarget, UINT nMessage)
+{
+ DWORD nThreadID = 0;
+ struct DirWatcher *pWatcher = NULL;
+
+ // This feature does not exist on Win9x
+ if (GetVersion() >= 0x80000000)
+ goto error;
+
+ pWatcher = (DirWatcher *)malloc(sizeof(struct DirWatcher));
+ if (!pWatcher)
+ goto error;
+ memset(pWatcher, 0, sizeof(*pWatcher));
+ InitializeCriticalSection(&pWatcher->crit);
+
+ pWatcher->hKernelModule = LoadLibrary(TEXT("kernel32.dll"));
+ if (!pWatcher->hKernelModule)
+ goto error;
+
+ pWatcher->pfnReadDirectoryChanges = (READDIRECTORYCHANGESFUNC)
+ GetProcAddress(pWatcher->hKernelModule, "ReadDirectoryChangesW");
+ if (!pWatcher->pfnReadDirectoryChanges)
+ goto error;
+
+ pWatcher->hRequestEvent = CreateEvent(NULL, FALSE, FALSE, NULL);
+ if (!pWatcher->hRequestEvent)
+ goto error;
+
+ pWatcher->hResponseEvent = CreateEvent(NULL, FALSE, FALSE, NULL);
+ if (!pWatcher->hRequestEvent)
+ goto error;
+
+ pWatcher->hThread = CreateThread(NULL, 0, DirWatcher_ThreadProc,
+ (LPVOID) pWatcher, 0, &nThreadID);
+
+ pWatcher->hwndTarget = hwndTarget;
+ pWatcher->nMessage = nMessage;
+ return pWatcher;
+
+error:
+ if (pWatcher)
+ DirWatcher_Free(pWatcher);
+ return NULL;
+}
+
+
+
+BOOL DirWatcher_Watch(PDIRWATCHER pWatcher, WORD nIndex, const std::string pszPathList, BOOL bWatchSubtrees)
+{
+ EnterCriticalSection(&pWatcher->crit);
+
+ pWatcher->nIndex = nIndex;
+ pWatcher->pszPathList = pszPathList.c_str();
+ pWatcher->bWatchSubtree = bWatchSubtrees;
+ SetEvent(pWatcher->hRequestEvent);
+
+ WaitForSingleObject(pWatcher->hResponseEvent, INFINITE);
+ LeaveCriticalSection(&pWatcher->crit);
+ return true;
+}
+
+
+
+void DirWatcher_Free(PDIRWATCHER pWatcher)
+{
+ struct DirWatcherEntry *pEntry;
+ struct DirWatcherEntry *pNextEntry;
+
+ if (pWatcher->hThread)
+ {
+ EnterCriticalSection(&pWatcher->crit);
+ pWatcher->bQuit = true;
+ SetEvent(pWatcher->hRequestEvent);
+ WaitForSingleObject(pWatcher->hThread, 1000);
+ LeaveCriticalSection(&pWatcher->crit);
+ CloseHandle(pWatcher->hThread);
+ }
+
+ DeleteCriticalSection(&pWatcher->crit);
+
+ pEntry = pWatcher->pEntries;
+ while(pEntry)
+ {
+ pNextEntry = pEntry->pNext;
+ DirWatcher_FreeEntry(pEntry);
+ pEntry = pNextEntry;
+ }
+
+ if (pWatcher->hKernelModule)
+ FreeLibrary(pWatcher->hKernelModule);
+ if (pWatcher->hRequestEvent)
+ CloseHandle(pWatcher->hRequestEvent);
+ if (pWatcher->hResponseEvent)
+ CloseHandle(pWatcher->hResponseEvent);
+ free(pWatcher);
+}
+
diff --git a/src/osd/winui/dirwatch.h b/src/osd/winui/dirwatch.h
new file mode 100644
index 00000000000..302a8de70b2
--- /dev/null
+++ b/src/osd/winui/dirwatch.h
@@ -0,0 +1,14 @@
+// For licensing and usage information, read docs/winui_license.txt
+//****************************************************************************
+
+#ifndef DIRWATCHER_H
+#define DIRWATCHER_H
+
+#include <string>
+typedef struct DirWatcher *PDIRWATCHER;
+
+PDIRWATCHER DirWatcher_Init(HWND hwndTarget, UINT nMessage);
+BOOL DirWatcher_Watch(PDIRWATCHER pWatcher, WORD nIndex, const std::string t, BOOL bWatchSubtrees);
+void DirWatcher_Free(PDIRWATCHER pWatcher);
+
+#endif
diff --git a/src/osd/winui/game_opts.h b/src/osd/winui/game_opts.h
new file mode 100644
index 00000000000..65bca005ea4
--- /dev/null
+++ b/src/osd/winui/game_opts.h
@@ -0,0 +1,367 @@
+// For licensing and usage information, read docs/winui_license.txt
+// MASTER
+//****************************************************************************
+
+#ifndef WINUI_GAMEOPTS_H
+#define WINUI_GAMEOPTS_H
+
+class winui_game_options
+{
+ uint32_t m_total;
+ uint32_t m_cache;
+ uint32_t m_version;
+ bool m_rebuild;
+
+ struct driver_options
+ {
+ uint32_t game_number;
+ int rom;
+ int sample;
+ uint32_t cache_lower;
+ uint32_t cache_upper;
+ uint32_t play_count;
+ uint32_t play_time;
+ };
+
+ std::vector<driver_options> m_list;
+
+ // convert audit cache - normally only 1 digit, although we can do 2. If the input is -1, it is treated as invalid and -1 is returned.
+ int convert_to_int(const char* inp)
+ {
+ if (!inp)
+ return -1;
+ int c = inp[0];
+ if (c < 0x30 || c > 0x39)
+ return -1;
+ int oup = c - 0x30;
+ c = inp[1];
+ if (c < 0x30 || c > 0x39)
+ return oup;
+ else
+ return oup * 10 + (c - 0x30);
+ }
+
+ // convert all other numbers, up to end-of-string/invalid-character. If number is too large, return 0.
+ uint32_t convert_to_uint(const char* inp)
+ {
+ if (!inp)
+ return 0;
+ uint32_t oup = 0;
+ for (int i = 0; i < 11; i++)
+ {
+ int c = inp[i];
+ if (c >= 0x30 && c <= 0x39)
+ oup = oup * 10 + (c - 0x30);
+ else
+ return oup;
+ }
+ return 0; // numeric overflow
+ }
+
+ // true = recache needed
+ bool create_index(std::ifstream &fp)
+ {
+ // does file exist?
+ if (!fp.good())
+ return true;
+
+ // check first line is ok
+ string file_line;
+ std::getline(fp, file_line);
+ if (file_line.empty())
+ return true;
+
+ char s1[file_line.length()+1];
+ strcpy(s1, file_line.c_str());
+
+ // check that totals match
+ const char* s2 = strtok(s1, ",");
+ if (!s2)
+ return true; // file is corrupt
+
+ uint32_t total = convert_to_uint(s2);
+ if (total == m_total)
+ m_rebuild = false; // everything is fine so far
+
+ // check that versions match
+ s2 = strtok(NULL, ",");
+ if (!s2)
+ return true; // file is corrupt or old version
+
+ uint32_t version = convert_to_uint(s2);
+ if (version != m_version)
+ return true; // file is old version, complete rebuild necessary
+
+ // all good, read file to memory. If rebuild needed, it will overwrite cache, but we need the rest.
+ int index; // must be int for validity check below
+ bool is_ready = false;
+ std::getline(fp, file_line);
+ while (fp.good())
+ {
+ if (is_ready)
+ {
+ char s[file_line.length()+1];
+ strcpy(s, file_line.c_str());
+
+ const char* name = strtok(s, "\t"); // get driver name
+ index = driver_list::find(name);
+ if (index > -1)
+ {
+ char* data = strtok(NULL, ","); // get next part (old game number, ignore)
+ m_list[index].game_number = index; // get new game number
+ data = strtok(NULL, ","); // get next part
+ if (data)
+ m_list[index].rom = convert_to_int(data);
+ data = strtok(NULL, ","); // get next part
+ if (data)
+ m_list[index].sample = convert_to_int(data);
+ data = strtok(NULL, ","); // get next part
+ if (data)
+ m_list[index].cache_lower = convert_to_uint(data);
+ data = strtok(NULL, ","); // get next part
+ if (data)
+ m_list[index].cache_upper = convert_to_uint(data);
+ data = strtok(NULL, ","); // get next part
+ if (data)
+ m_list[index].play_count = convert_to_uint(data);
+ data = strtok(NULL, ","); // get next part
+ if (data)
+ m_list[index].play_time = convert_to_uint(data);
+ }
+ }
+ else
+ {
+ if (file_line == "$start")
+ is_ready = true;
+ }
+
+ std::getline(fp, file_line);
+ }
+
+ fp.close();
+ return m_rebuild;
+ }
+
+public:
+ // construction - runs before main
+ winui_game_options()
+ {
+ m_version = 1;
+ m_rebuild = true;
+ m_total = driver_list::total();
+ m_list.resize(m_total);
+ std::fill(m_list.begin(), m_list.end(), driver_options{0, -1, -1, 0, 0, 0, 0});
+ }
+
+ int rom(uint32_t index)
+ {
+ if (index < m_total)
+ return m_list[index].rom;
+ else
+ return -1;
+ }
+
+ void rom(uint32_t index, int val)
+ {
+ if (index < m_total)
+ m_list[index].rom = val;
+ }
+
+ int sample(uint32_t index)
+ {
+ if (index < m_total)
+ return m_list[index].sample;
+ else
+ return -1;
+ }
+
+ void sample(uint32_t index, int val)
+ {
+ if (index < m_total)
+ m_list[index].sample = val;
+ }
+
+ uint32_t cache_lower(uint32_t index)
+ {
+ if (index < m_total)
+ return m_list[index].cache_lower;
+ else
+ return 0;
+ }
+
+ uint32_t cache_upper(uint32_t index)
+ {
+ if (index < m_total)
+ return m_list[index].cache_upper;
+ else
+ return 0;
+ }
+
+ void cache_upper(uint32_t index, uint32_t val)
+ {
+ if (index < m_total)
+ m_list[index].cache_upper = val;
+ }
+
+ uint32_t play_count(uint32_t index)
+ {
+ if (index < m_total)
+ return m_list[index].play_count;
+ else
+ return 0;
+ }
+
+ void play_count(uint32_t index, int val)
+ {
+ if (index < m_total)
+ m_list[index].play_count = val;
+ }
+
+ uint32_t play_time(uint32_t index)
+ {
+ if (index < m_total)
+ return m_list[index].play_time;
+ else
+ return 0;
+ }
+
+ void play_time(uint32_t index, int val)
+ {
+ if (index < m_total)
+ m_list[index].play_time = val;
+ }
+
+ bool rebuild()
+ {
+ return m_rebuild;
+ }
+
+ void force_rebuild()
+ {
+ m_rebuild = true;
+ }
+
+ void load_file(const char *filename)
+ {
+ std::ifstream infile (filename);
+ if (create_index(infile))
+ {
+ // rebuild the cache
+ device_t::feature_type ft;
+ const game_driver *drv;
+ windows_options dummy;
+ printf("game_opts.cpp::load_file : Rebuilding cache\n");fflush(stdout);
+ for (uint32_t i = 0; i < m_total; i++)
+ {
+ uint32_t t = 0;
+ // BITS 0,1 = arcade, console, computer, other
+ drv = &driver_list::driver(i);
+ ui::machine_static_info const info(machine_config(*drv, dummy));
+ if ((info.machine_flags() & machine_flags::MASK_TYPE) == machine_flags::TYPE_CONSOLE)
+ t = 1;
+ else
+ if ((info.machine_flags() & machine_flags::MASK_TYPE) == machine_flags::TYPE_COMPUTER)
+ t = 2;
+ else
+ if ((info.machine_flags() & machine_flags::MASK_TYPE) == machine_flags::TYPE_OTHER)
+ t = 3;
+ m_cache = t;
+ // BIT 2 = SWAP_XY
+ t = (drv->flags & ORIENTATION_SWAP_XY) ? 0x0004 : 0;
+ m_cache |= t;
+ // BIT 6 = NOT_WORKING
+ t = (info.machine_flags() & machine_flags::NOT_WORKING) ? 0x0040 : 0;
+ m_cache |= t;
+ // BIT 7 = SUPPORTS_SAVE
+ t = (info.machine_flags() & machine_flags::SUPPORTS_SAVE) ? 0: 0x0080;
+ m_cache |= t;
+ // BIT 8 = NO_COCKTAIL
+ t = (info.machine_flags() & machine_flags::NO_COCKTAIL) ? 0x0100 : 0;
+ m_cache |= t;
+ // BIT 9 = IS_BIOS_ROOT
+ t = (info.machine_flags() & machine_flags::IS_BIOS_ROOT) ? 0x0200 : 0;
+ m_cache |= t;
+ // BIT 10 = REQUIRES_ARTWORK
+ t = (info.machine_flags() & machine_flags::REQUIRES_ARTWORK) ? 0x0400 : 0;
+ m_cache |= t;
+ // BIT 11 = CLICKABLE_ARTWORK
+ t = (info.machine_flags() & machine_flags::CLICKABLE_ARTWORK) ? 0x0800 : 0;
+ m_cache |= t;
+ // BIT 12 = UNOFFICIAL
+ t = (info.machine_flags() & machine_flags::UNOFFICIAL) ? 0x1000 : 0;
+ m_cache |= t;
+ // BIT 13 = NO_SOUND_HW
+ t = (info.machine_flags() & machine_flags::NO_SOUND_HW) ? 0x2000 : 0;
+ m_cache |= t;
+ // BIT 14 = MECHANICAL
+ t = (info.machine_flags() & machine_flags::MECHANICAL) ? 0x4000 : 0;
+ m_cache |= t;
+ // BIT 15 = IS_INCOMPLETE
+ t = (info.machine_flags() & machine_flags::IS_INCOMPLETE) ? 0x8000 : 0;
+ m_cache |= t;
+
+ ft = info.imperfect_features();
+ // BIT 16 = IMPERFECT_SOUND
+ t = (ft & device_t::feature::SOUND) ? 0x10000 : 0;
+ m_cache |= t;
+ // BIT 18 = IMPERFECT_GRAPHICS
+ t = (ft & device_t::feature::GRAPHICS) ? 0x40000 : 0;
+ m_cache |= t;
+ // BIT 20 = IMPERFECT_COLOUR
+ t = (ft & device_t::feature::PALETTE) ? 0x100000 : 0;
+ m_cache |= t;
+ // BIT 22 = PROTECTION
+ t = (ft & device_t::feature::PROTECTION) ? 0x400000 : 0;
+ m_cache |= t;
+ // BIT 23 = IMPERFECT_CONTROLS
+ t = (ft & device_t::feature::CONTROLS) ? 0x800000 : 0;
+ m_cache |= t;
+
+ ft = info.unemulated_features();
+ // BIT 17 = NO_SOUND
+ t = (ft & device_t::feature::SOUND) ? 0x20000 : 0;
+ m_cache |= t;
+ // BIT 19 = NO_GRAPHICS
+ t = (ft & device_t::feature::GRAPHICS) ? 0x80000 : 0;
+ m_cache |= t;
+ // BIT 21 = NO_COLOUR
+ t = (ft & device_t::feature::PALETTE) ? 0x200000 : 0;
+ m_cache |= t;
+
+ m_list[i].cache_lower = m_cache;
+ m_list[i].cache_upper = 0;
+ }
+ printf("game_opts.cpp::load_file : Finished Rebuilding cache\n");fflush(stdout);
+ }
+ }
+
+ void save_file(const char *filename)
+ {
+ string inistring = std::to_string(m_total).append(",").append(std::to_string(m_version)).append("\n");
+ inistring.append("YOU CAN SAFELY DELETE THIS FILE TO RESET THE GAME STATS.\n\n$start\n");
+
+ for (uint32_t i = 0; i < m_total; i++)
+ {
+ // 1:Game number(for debugging only), 2:Rom, 3:Sample, 4:Cache(New), 5:Cache(Legacy) 6:Play Count, 7:Play Time
+ inistring.append(driver_list::driver(i).name).append("\t");
+ inistring.append(std::to_string(m_list[i].game_number)).append(",");
+ inistring.append(std::to_string(m_list[i].rom)).append(",");
+ inistring.append(std::to_string(m_list[i].sample)).append(",");
+ inistring.append(std::to_string(m_list[i].cache_lower)).append(",");
+ inistring.append(std::to_string(m_list[i].cache_upper)).append(",");
+ inistring.append(std::to_string(m_list[i].play_count)).append(",");
+ inistring.append(std::to_string(m_list[i].play_time)).append("\n");
+ }
+
+ std::ofstream outfile (filename, std::ios::out | std::ios::trunc);
+ size_t size = inistring.size();
+ char t1[size+1];
+ strcpy(t1, inistring.c_str());
+ outfile.write(t1, size);
+ outfile.close();
+ return;
+ }
+};
+
+#endif // __GAME_OPTS_H__
+
diff --git a/src/osd/winui/hbmame.rc b/src/osd/winui/hbmame.rc
new file mode 100644
index 00000000000..f90e47d750c
--- /dev/null
+++ b/src/osd/winui/hbmame.rc
@@ -0,0 +1,20 @@
+#include "windows.h"
+#include "commctrl.h"
+
+/////////////////////////////////////////////////////////////////////////////
+// English (U.S.) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
+#ifdef _WIN32
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+#pragma code_page(1252)
+#endif //_WIN32
+
+//
+// Icon
+//
+
+2 ICON DISCARDABLE "res\\hbmame.ico"
+#endif // English (U.S.) resources
+
+#include "hbmameui.rc"
diff --git a/src/osd/winui/hbmameui.rc b/src/osd/winui/hbmameui.rc
new file mode 100644
index 00000000000..53439aee174
--- /dev/null
+++ b/src/osd/winui/hbmameui.rc
@@ -0,0 +1,1466 @@
+// Microsoft Visual C++ generated resource script.
+//
+#include "newuires.h"
+#include "resource.h"
+
+// Generated Help ID header file
+#define APSTUDIO_HIDDEN_SYMBOLS
+#include "resource.hm"
+#undef APSTUDIO_HIDDEN_SYMBOLS
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#include "windows.h"
+#include "commctrl.h"
+
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// English (USA) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
+#ifdef _WIN32
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+#pragma code_page(1252)
+#endif //_WIN32
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Menu
+//
+
+IDR_MAIN_MENU MENU DISCARDABLE
+BEGIN
+ POPUP "&File"
+ BEGIN
+ MENUITEM "&Exit", ID_FILE_EXIT
+ END
+ POPUP "&Help"
+ BEGIN
+ MENUITEM "&About HBMAMEUI", ID_ABOUT
+ END
+END
+
+IDR_UI_MENU MENU DISCARDABLE
+BEGIN
+ POPUP "&File"
+ BEGIN
+ MENUITEM "&Play", ID_FILE_PLAY
+ MENUITEM SEPARATOR
+ MENUITEM "Play and &Record Input...", ID_FILE_PLAY_RECORD
+ MENUITEM "P&layback Input...", ID_FILE_PLAY_BACK
+ MENUITEM SEPARATOR
+ MENUITEM "Play and Record &Wave Output...", ID_FILE_PLAY_RECORD_WAVE
+ MENUITEM SEPARATOR
+ MENUITEM "Play and Record &MNG Output...", ID_FILE_PLAY_RECORD_MNG
+ MENUITEM SEPARATOR
+ MENUITEM "Play and Record &uncompressed AVI Output...",
+ ID_FILE_PLAY_RECORD_AVI
+ MENUITEM SEPARATOR
+ MENUITEM "Loa&d Savestate...", ID_FILE_LOADSTATE
+ MENUITEM SEPARATOR
+ MENUITEM "Pr&operties", ID_GAME_PROPERTIES
+ MENUITEM SEPARATOR
+ MENUITEM "Audi&t existing sets", ID_FILE_AUDIT_X
+ MENUITEM "&Audit all sets", ID_FILE_AUDIT
+ MENUITEM SEPARATOR
+ MENUITEM "&Refresh Roms\tF5", ID_UPDATE_GAMELIST
+ MENUITEM "Refresh Cache", ID_UPDATE_CACHE
+ MENUITEM SEPARATOR
+ MENUITEM "E&xit", ID_FILE_EXIT
+ END
+ POPUP "&View"
+ BEGIN
+ MENUITEM "&Toolbar\tAlt+T", ID_VIEW_TOOLBARS
+ MENUITEM "&Status bar\tAlt+S", ID_VIEW_STATUS
+ MENUITEM "Fold&er List\tAlt+D", ID_VIEW_FOLDERS
+ MENUITEM "&Picture Area\tAlt+P", ID_VIEW_PICTURE_AREA
+ MENUITEM "Screenshot Ta&b\tAlt+B", ID_VIEW_PAGETAB
+ MENUITEM SEPARATOR
+ MENUITEM "&Fullscreen\tF11", ID_VIEW_FULLSCREEN
+ MENUITEM SEPARATOR
+ POPUP "S&how Pictures"
+ BEGIN
+ MENUITEM "Artwork", ID_TOGGLE_TAB_ARTWORK
+ MENUITEM "Boss", ID_TOGGLE_TAB_BOSSES
+ MENUITEM "Cabinet", ID_TOGGLE_TAB_CABINET
+ MENUITEM "Control Panel", ID_TOGGLE_TAB_CONTROL_PANEL
+ MENUITEM "Cover", ID_TOGGLE_TAB_COVER
+ MENUITEM "End", ID_TOGGLE_TAB_ENDS
+ MENUITEM "Flyer", ID_TOGGLE_TAB_FLYER
+ MENUITEM "Game Over", ID_TOGGLE_TAB_GAMEOVER
+ MENUITEM "History", ID_TOGGLE_TAB_HISTORY
+ MENUITEM "How To", ID_TOGGLE_TAB_HOWTO
+ MENUITEM "Logo", ID_TOGGLE_TAB_LOGO
+ MENUITEM "Marquee", ID_TOGGLE_TAB_MARQUEE
+ MENUITEM "PCB", ID_TOGGLE_TAB_PCB
+ MENUITEM "Scores", ID_TOGGLE_TAB_SCORES
+ MENUITEM "Select", ID_TOGGLE_TAB_SELECT
+ MENUITEM "Snapshot", ID_TOGGLE_TAB_SCREENSHOT
+ MENUITEM "Title", ID_TOGGLE_TAB_TITLE
+ MENUITEM "Versus", ID_TOGGLE_TAB_VERSUS
+ END
+ MENUITEM SEPARATOR
+ MENUITEM "L&arge Icons", ID_VIEW_LARGE_ICON
+ MENUITEM "S&mall Icons", ID_VIEW_SMALL_ICON
+ MENUITEM "&List", ID_VIEW_LIST_MENU
+ MENUITEM "&Details", ID_VIEW_DETAIL
+ MENUITEM "&Grouped", ID_VIEW_GROUPED
+ MENUITEM SEPARATOR
+ POPUP "Arrange &Icons"
+ BEGIN
+ MENUITEM "by &Name", ID_VIEW_BYGAME
+ MENUITEM "by D&irectory", ID_VIEW_BYDIRECTORY
+ MENUITEM "by &Manufacturer", ID_VIEW_BYMANUFACTURER
+ MENUITEM "by Times &Played", ID_VIEW_BYTIMESPLAYED
+ MENUITEM "by &Type", ID_VIEW_BYTYPE
+ MENUITEM "by &Date", ID_VIEW_BYYEAR
+ END
+ MENUITEM "Line &Up Icons", ID_VIEW_LINEUPICONS
+ MENUITEM SEPARATOR
+ MENUITEM "&Custom Filters...\tCtrl+F", ID_CONTEXT_FILTERS
+ MENUITEM "Customi&ze Fields...", ID_CUSTOMIZE_FIELDS
+ END
+ POPUP "&Options"
+ BEGIN
+ MENUITEM "&Interface Options", ID_OPTIONS_INTERFACE
+ MENUITEM "Default Game &Options", ID_OPTIONS_DEFAULTS
+ MENUITEM "&Directories", ID_OPTIONS_DIR
+ MENUITEM SEPARATOR
+ MENUITEM "Game List &Font", ID_OPTIONS_FONT
+ MENUITEM "Game List &Clone Color", ID_OPTIONS_CLONE_COLOR
+ MENUITEM SEPARATOR
+
+ MENUITEM "&Background Image", ID_OPTIONS_BG
+ MENUITEM SEPARATOR
+ MENUITEM "&Reset to Default", ID_OPTIONS_RESET_DEFAULTS
+
+ END
+ POPUP "&Help"
+ BEGIN
+ MENUITEM "What's New in MAME", ID_HELP_WHATS_NEW
+ MENUITEM "&Contents\tF1", ID_HELP_CONTENTS
+ MENUITEM "&About", ID_HELP_ABOUT
+ END
+END
+
+IDR_CONTEXT_MENU MENU
+BEGIN
+ POPUP "Context Menu"
+ BEGIN
+ MENUITEM "&Play", ID_FILE_PLAY
+ MENUITEM SEPARATOR
+ MENUITEM "Play and &Record Input...", ID_FILE_PLAY_RECORD
+ MENUITEM "Play ProgettoSnaps MP4 movie",ID_VIDEO_SNAP
+ MENUITEM "Read the PDF Manual", ID_MANUAL
+ MENUITEM SEPARATOR
+ MENUITEM "&Add to Custom Folder...", ID_CONTEXT_ADD_CUSTOM
+ MENUITEM "R&emove From This Folder", ID_CONTEXT_REMOVE_CUSTOM
+ MENUITEM "&Custom Filters...", ID_CONTEXT_FILTERS
+ MENUITEM SEPARATOR
+ MENUITEM "&Select Random Game", ID_CONTEXT_SELECT_RANDOM
+ MENUITEM SEPARATOR
+ MENUITEM "Rese&t Play Stats", ID_CONTEXT_RESET_PLAYSTATS
+ MENUITEM SEPARATOR
+ MENUITEM "A&udit", ID_GAME_AUDIT
+ MENUITEM SEPARATOR
+ MENUITEM "Pr&operties", ID_GAME_PROPERTIES
+ MENUITEM "Source properties", ID_FOLDER_SOURCEPROPERTIES
+// MENUITEM "&Vector properties", ID_FOLDER_VECTORPROPERTIES
+ END
+END
+
+IDR_CONTEXT_HEADER MENU
+BEGIN
+ POPUP "Header Context Menu"
+ BEGIN
+ MENUITEM "Sort &Ascending", ID_SORT_ASCENDING
+ MENUITEM "Sort &Descending", ID_SORT_DESCENDING
+ MENUITEM SEPARATOR
+ MENUITEM "Customi&ze Fields...", ID_CUSTOMIZE_FIELDS
+ END
+END
+
+IDR_CONTEXT_TREE MENU
+BEGIN
+ POPUP "Context Menu Tree"
+ BEGIN
+ MENUITEM "&Rename", ID_CONTEXT_RENAME_CUSTOM
+ MENUITEM "&Custom Filters...", ID_CONTEXT_FILTERS
+ MENUITEM SEPARATOR
+ POPUP "&Show Folders"
+ BEGIN
+ MENUITEM "overridden by code", ID_CONTEXT_SHOW_FOLDER_START
+
+ END
+ MENUITEM SEPARATOR
+ MENUITEM "&Audit", ID_FOLDER_AUDIT
+ MENUITEM SEPARATOR
+ MENUITEM "&Properties", ID_FOLDER_PROPERTIES
+ END
+END
+
+IDR_CONTEXT_SCREENSHOT MENU
+BEGIN
+ POPUP "Context Screen Shot"
+ BEGIN
+ MENUITEM "Show Tab &Control", ID_VIEW_PAGETAB
+ MENUITEM SEPARATOR
+ POPUP "S&how Pictures"
+ BEGIN
+ MENUITEM "Artwork", ID_TOGGLE_TAB_ARTWORK
+ MENUITEM "Boss", ID_TOGGLE_TAB_BOSSES
+ MENUITEM "Cabinet", ID_TOGGLE_TAB_CABINET
+ MENUITEM "Control Panel", ID_TOGGLE_TAB_CONTROL_PANEL
+ MENUITEM "Cover", ID_TOGGLE_TAB_COVER
+ MENUITEM "End", ID_TOGGLE_TAB_ENDS
+ MENUITEM "Flyer", ID_TOGGLE_TAB_FLYER
+ MENUITEM "Game Over", ID_TOGGLE_TAB_GAMEOVER
+ MENUITEM "History", ID_TOGGLE_TAB_HISTORY
+ MENUITEM "How To", ID_TOGGLE_TAB_HOWTO
+ MENUITEM "Logo", ID_TOGGLE_TAB_LOGO
+ MENUITEM "Marquee", ID_TOGGLE_TAB_MARQUEE
+ MENUITEM "PCB", ID_TOGGLE_TAB_PCB
+ MENUITEM "Scores", ID_TOGGLE_TAB_SCORES
+ MENUITEM "Select", ID_TOGGLE_TAB_SELECT
+ MENUITEM "Snapshot", ID_TOGGLE_TAB_SCREENSHOT
+ MENUITEM "Title", ID_TOGGLE_TAB_TITLE
+ MENUITEM "Versus", ID_TOGGLE_TAB_VERSUS
+ END
+ MENUITEM SEPARATOR
+ MENUITEM "Artwork", ID_VIEW_TAB_ARTWORK
+ MENUITEM "Boss", ID_VIEW_TAB_BOSSES
+ MENUITEM "Cabinet", ID_VIEW_TAB_CABINET
+ MENUITEM "Control Panel", ID_VIEW_TAB_CONTROL_PANEL
+ MENUITEM "Cover", ID_VIEW_TAB_COVER
+ MENUITEM "End", ID_VIEW_TAB_ENDS
+ MENUITEM "Flyer", ID_VIEW_TAB_FLYER
+ MENUITEM "Game Over", ID_VIEW_TAB_GAMEOVER
+ MENUITEM "History", ID_VIEW_TAB_HISTORY
+ MENUITEM "How To", ID_VIEW_TAB_HOWTO
+ MENUITEM "Logo", ID_VIEW_TAB_LOGO
+ MENUITEM "Marquee", ID_VIEW_TAB_MARQUEE
+ MENUITEM "PCB", ID_VIEW_TAB_PCB
+ MENUITEM "Scores", ID_VIEW_TAB_SCORES
+ MENUITEM "Select", ID_VIEW_TAB_SELECT
+ MENUITEM "Snapshot", ID_VIEW_TAB_SCREENSHOT
+ MENUITEM "Title", ID_VIEW_TAB_TITLE
+ MENUITEM "Versus", ID_VIEW_TAB_VERSUS
+ END
+END
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Menu
+//
+
+IDR_RUNTIME_MENU MENU
+BEGIN
+ POPUP "&File"
+ BEGIN
+ MENUITEM "&Load State...", ID_FILE_LOADSTATE_NEWUI, GRAYED
+ MENUITEM "&Save State", ID_FILE_SAVESTATE, GRAYED
+ MENUITEM "S&ave State As...", ID_FILE_SAVESTATE_AS, GRAYED
+ MENUITEM SEPARATOR
+ MENUITEM "Save Sc&reenshot", ID_FILE_SAVESCREENSHOT
+ MENUITEM SEPARATOR
+ MENUITEM "&Hide Menubar", ID_FILE_TOGGLEMENUBAR
+ MENUITEM "&Full Screen\tAlt+Enter", ID_FILE_FULLSCREEN
+ MENUITEM "Partial Keyboard Emulation", ID_FILE_UIACTIVE
+ MENUITEM "Show Tab Menu", ID_FILE_OLDUI
+ MENUITEM SEPARATOR
+ MENUITEM "&Exit", ID_FILE_EXIT_NEWUI
+ END
+ POPUP "&Edit"
+ BEGIN
+ MENUITEM "Paste", ID_EDIT_PASTE
+ END
+ POPUP "&Options"
+ BEGIN
+ MENUITEM "&Pause", ID_OPTIONS_PAUSE, GRAYED
+ MENUITEM "Soft &Reset", ID_OPTIONS_SOFTRESET
+ MENUITEM "Ha&rd Reset", ID_OPTIONS_HARDRESET
+ MENUITEM SEPARATOR
+ POPUP "&Keyboard"
+ BEGIN
+ MENUITEM "Emulated", ID_KEYBOARD_EMULATED
+ MENUITEM "Natural", ID_KEYBOARD_NATURAL
+ MENUITEM SEPARATOR
+ MENUITEM "Customise Emulated Keyboard...", ID_KEYBOARD_CUSTOMIZE
+ END
+ MENUITEM "&Joysticks", ID_OPTIONS_JOYSTICKS, GRAYED
+ POPUP "&Video"
+ BEGIN
+ MENUITEM SEPARATOR
+ MENUITEM "Rotate 0 degrees", ID_VIDEO_ROTATE_0
+ MENUITEM "Rotate 90 degrees", ID_VIDEO_ROTATE_90
+ MENUITEM "Rotate 180 degrees", ID_VIDEO_ROTATE_180
+ MENUITEM "Rotate 270 degrees", ID_VIDEO_ROTATE_270
+ END
+ MENUITEM "&Configuration...", ID_OPTIONS_CONFIGURATION
+ MENUITEM "&DIP Switches...", ID_OPTIONS_DIPSWITCHES
+ MENUITEM "&Miscellaneous Inputs...", ID_OPTIONS_MISCINPUT
+ MENUITEM "&Analog Controls...", ID_OPTIONS_ANALOGCONTROLS
+ MENUITEM SEPARATOR
+ POPUP "&Frameskip"
+ BEGIN
+ MENUITEM "Auto", ID_FRAMESKIP_AUTO
+ END
+ POPUP "Maximum &Speed"
+ BEGIN
+ MENUITEM "50%", ID_THROTTLE_50
+ MENUITEM "100%", ID_THROTTLE_100
+ MENUITEM "200%", ID_THROTTLE_200
+ MENUITEM "500%", ID_THROTTLE_500
+ MENUITEM "1000%", ID_THROTTLE_1000
+ MENUITEM "Unlimited", ID_THROTTLE_UNTHROTTLED
+ END
+ MENUITEM "Show &FPS", ID_OPTIONS_TOGGLEFPS
+ END
+ POPUP "&Media"
+ BEGIN
+ MENUITEM SEPARATOR
+ END
+ POPUP "&Help"
+ BEGIN
+ MENUITEM "About This System...", ID_HELP_ABOUTSYSTEM
+ MENUITEM "&About HBMAME...", ID_HELP_ABOUT_NEWUI
+ END
+END
+
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE MOVEABLE PURE
+BEGIN
+ "resource.h\\r\n"
+ "newuires.h\0"
+END
+
+2 TEXTINCLUDE MOVEABLE PURE
+BEGIN
+ "#define NOWINRES\r\n"
+ "#include ""windows.h""\r\n"
+ "#include ""commctrl.h""\r\n"
+ "\0"
+END
+
+3 TEXTINCLUDE MOVEABLE PURE
+BEGIN
+ "#include ""hbmamevers.rc"" // Version block\r\n"
+ "\r\n"
+ "\0"
+END
+
+#endif // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Icon
+//
+
+// Icon with lowest ID value placed first to ensure application icon
+// remains consistent on all systems.
+IDI_MAMEUI_ICON ICON "res\\hbmameui.ico"
+IDI_WIN_ROMS ICON "res\\win_roms.ico"
+IDI_WIN_NOROMS ICON "res\\win_noro.ico"
+IDI_WIN_UNKNOWN ICON "res\\win_unkn.ico"
+IDI_WIN_CLONE ICON "res\\win_clone.ico"
+IDI_WIN_REDX ICON "res\\win_redx.ico"
+IDI_WIN_IMPERFECT ICON "res\\win_imp.ico"
+IDI_FOLDER_AVAILABLE ICON "res\\foldavail.ico"
+IDI_FOLDER ICON "res\\folder.ico"
+IDI_FOLDER_MANUFACTURER ICON "res\\foldmanu.ico"
+IDI_FOLDER_OPEN ICON "res\\foldopen.ico"
+IDI_FOLDER_UNAVAILABLE ICON "res\\foldunav.ico"
+IDI_FOLDER_HORIZONTAL ICON "res\\horz.ico"
+IDI_FOLDER_VERTICAL ICON "res\\vert.ico"
+IDI_MANUFACTURER ICON "res\\manufact.ico"
+IDI_FOLDER_YEAR ICON "res\\foldyear.ico"
+IDI_FOLDER_SOURCE ICON "res\\foldsrc.ico"
+IDI_WORKING ICON "res\\working.ico"
+IDI_NONWORKING ICON "res\\nonwork.ico"
+IDI_YEAR ICON "res\\year.ico"
+IDI_KEYBOARD ICON "res\\keyboard.ico"
+IDI_JOYSTICK ICON "res\\joystick.ico"
+IDI_CPU ICON "res\\cpu.ico"
+IDI_SOUND ICON "res\\samples.ico"
+IDI_SOUNDTAB ICON "res\\sound.ico"
+IDI_SOURCE ICON "res\\source.ico"
+IDI_HARDDISK ICON "res\\harddisk.ico"
+IDI_DISPLAY ICON "res\\display.ico"
+IDI_CHECKMARK ICON "res\\checkmark.ico"
+IDI_HEADER_UP ICON "res\\header_up.ico"
+IDI_HEADER_DOWN ICON "res\\header_down.ico"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Dialog
+//
+
+IDD_ABOUT DIALOG DISCARDABLE 0, 0, 296, 129
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "About HBMAMEUI"
+FONT 8, "Tahoma"
+BEGIN
+ DEFPUSHBUTTON "&OK",IDOK,200,109,50,14,WS_GROUP
+ CTEXT "HomeBrew MAME",IDC_STATIC,147,7,142,
+ 11,NOT WS_GROUP
+ CTEXT "Version 0",IDC_VERSION,147,18,142,11,NOT WS_GROUP
+ CTEXT "Copyright (C) 1997-2017 The HBMAME Team",IDC_STATIC,147,
+ 29,142,10,NOT WS_GROUP
+ CTEXT "MAMEUI version by",IDC_STATIC,147,51,142,10,NOT
+ WS_GROUP
+ CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,147,44,142,1
+ CTEXT "Christopher Kirmse and the MAMEUI team",IDC_STATIC,147,
+ 62,142,9,NOT WS_GROUP
+ CTEXT "Additional MAMEUI code by",IDC_STATIC,147,74,142,9
+ CTEXT "Mike Haaland, Andrew Kirmse, Jeff Miller",IDC_STATIC,
+ 147,85,142,9
+ CTEXT "John Hardy IV and Michael Soderstrom",IDC_STATIC,147,96,
+ 142,9
+ CONTROL "",IDC_ABOUT,"Static",SS_BITMAP | SS_SUNKEN,7,7,16,14
+END
+
+IDD_DIRECTX DIALOG DISCARDABLE 0, 0, 236, 69
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "MAMEUI"
+FONT 8, "Tahoma"
+BEGIN
+ DEFPUSHBUTTON "Go to Microsoft's DirectX Web Page",IDB_WEB_PAGE,48,52,
+ 140,14
+ EDITTEXT IDC_DIRECTX_HELP,7,0,222,48,ES_MULTILINE |
+ ES_AUTOHSCROLL | ES_READONLY
+END
+
+IDD_AUDIT DIALOG DISCARDABLE 0, 0, 283, 188
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "File Audit"
+FONT 8, "Tahoma"
+BEGIN
+ PUSHBUTTON "&Pause",IDPAUSE,98,168,40,14
+ PUSHBUTTON "&Cancel",IDCANCEL,144,168,40,14
+ GROUPBOX "ROMs",IDC_STATIC,6,4,132,65
+ LTEXT "Correct:",IDC_STATIC,51,28,32,8
+ CONTROL "Progress1",IDC_ROMS_PROGRESS,"msctls_progress32",
+ PBS_SMOOTH | WS_BORDER,14,16,116,8
+ LTEXT "Incorrect:",IDC_STATIC,51,42,32,8
+ LTEXT "Total:",IDC_STATIC,51,56,32,8
+ LTEXT "0",IDC_ROMS_CORRECT,87,28,20,8
+ LTEXT "0",IDC_ROMS_INCORRECT,87,42,20,8
+ LTEXT "0",IDC_ROMS_TOTAL,87,56,20,8
+ GROUPBOX "Samples",IDC_STATIC,145,4,132,65
+ CONTROL "Progress1",IDC_SAMPLES_PROGRESS,"msctls_progress32",
+ PBS_SMOOTH | WS_BORDER,153,16,116,8
+ LTEXT "Correct:",IDC_STATIC,191,28,33,8
+ LTEXT "Incorrect:",IDC_STATIC,191,42,33,8
+ LTEXT "Total:",IDC_STATIC,191,56,33,8
+ LTEXT "0",IDC_SAMPLES_CORRECT,227,28,20,8
+ LTEXT "0",IDC_SAMPLES_INCORRECT,227,42,20,8
+ LTEXT "0",IDC_SAMPLES_TOTAL,227,56,20,8
+ GROUPBOX "Details",IDC_STATIC,6,72,271,90
+ EDITTEXT IDC_AUDIT_DETAILS,12,82,259,74,ES_MULTILINE |
+ ES_AUTOVSCROLL | ES_READONLY | WS_VSCROLL | WS_HSCROLL |
+ NOT WS_TABSTOP
+END
+
+IDD_DIRECTORIES DIALOG DISCARDABLE 0, 0, 230, 107
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Directories"
+FONT 8, "Tahoma"
+BEGIN
+ LTEXT "Show directories for:",IDC_STATIC,6,6,67,10
+ COMBOBOX IDC_DIR_COMBO,6,18,160,79,CBS_DROPDOWNLIST | CBS_SORT |
+ WS_VSCROLL | WS_TABSTOP
+ LTEXT "Directories:",IDC_STATIC,6,38,38,10
+ CONTROL "List1",IDC_DIR_LIST,"SysListView32",LVS_REPORT |
+ LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_EDITLABELS |
+ LVS_ALIGNLEFT | LVS_NOCOLUMNHEADER | WS_BORDER |
+ WS_TABSTOP,6,50,160,51
+ DEFPUSHBUTTON "OK",IDOK,173,8,50,14
+ PUSHBUTTON "Cancel",IDCANCEL,173,26,50,14
+ PUSHBUTTON "Browse...",IDC_DIR_BROWSE,173,50,50,14
+ PUSHBUTTON "Insert",IDC_DIR_INSERT,173,68,50,14
+ PUSHBUTTON "Delete",IDC_DIR_DELETE,173,87,50,14
+END
+
+IDD_COLUMNS DIALOG DISCARDABLE 0, 0, 302, 145
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Customize Fields"
+FONT 8, "Tahoma"
+BEGIN
+ LTEXT "Available fields:",IDC_STATIC,6,6,80,10,SS_CENTERIMAGE
+ CONTROL "List1",IDC_LISTAVAILABLECOLUMNS,"SysListView32",
+ LVS_LIST | LVS_SINGLESEL | LVS_NOCOLUMNHEADER |
+ LVS_NOSORTHEADER | WS_BORDER | WS_HSCROLL | WS_TABSTOP,6,
+ 18,90,100
+ PUSHBUTTON "Add ->",IDC_BUTTONADD,102,18,46,14,WS_DISABLED
+ PUSHBUTTON "<- Remove",IDC_BUTTONREMOVE,102,36,46,14,WS_DISABLED
+ LTEXT "Show these fields in this order:",IDC_STATIC,154,6,96,
+ 10,SS_CENTERIMAGE
+ CONTROL "List1",IDC_LISTSHOWCOLUMNS,"SysListView32",LVS_LIST |
+ LVS_SINGLESEL | LVS_NOCOLUMNHEADER | LVS_NOSORTHEADER |
+ WS_BORDER | WS_HSCROLL | WS_TABSTOP,154,18,90,100
+ PUSHBUTTON "Move Up",IDC_BUTTONMOVEUP,250,18,46,14,WS_DISABLED
+ PUSHBUTTON "Move Down",IDC_BUTTONMOVEDOWN,250,36,46,14,WS_DISABLED
+ DEFPUSHBUTTON "OK",IDOK,105,124,44,14
+ PUSHBUTTON "Cancel",IDCANCEL,155,124,44,14
+END
+
+IDD_PROP_CONTROLLER DIALOGEX 0, 0, 220, 240
+STYLE DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
+CAPTION "Controller Mapping"
+FONT 8, "Tahoma"
+BEGIN
+ ICON IDI_JOYSTICK,IDC_STATIC,20,10,20,20
+ LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,
+ SS_NOPREFIX
+ GROUPBOX "Paddle device",IDC_STATIC,4,40,102,28
+ COMBOBOX IDC_PADDLE,10,50,91,62,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP,0,HIDC_PADDLE
+ GROUPBOX "ADStick device",IDC_STATIC,4,71,102,28
+ COMBOBOX IDC_ADSTICK,10,80,91,62,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP,0,HIDC_ADSTICK
+ GROUPBOX "Pedal device",IDC_STATIC,4,102,102,28
+ COMBOBOX IDC_PEDAL,10,112,91,62,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP,0,HIDC_PEDAL
+ GROUPBOX "Mouse device",IDC_STATIC,4,133,102,28
+ COMBOBOX IDC_MOUSE,10,142,90,62,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP,0,HIDC_MOUSE
+ GROUPBOX "Dial device",IDC_STATIC,113,40,102,28
+ COMBOBOX IDC_DIAL,119,50,90,62,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP,0,HIDC_DIAL
+ GROUPBOX "Trackball device",IDC_STATIC,113,71,102,28
+ COMBOBOX IDC_TRACKBALL,119,80,90,62,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP,0,HIDC_TRACKBALL
+ GROUPBOX "Lightgun device",IDC_STATIC,113,102,102,28
+ COMBOBOX IDC_LIGHTGUNDEVICE,119,112,90,62,CBS_DROPDOWNLIST |
+ WS_VSCROLL | WS_TABSTOP,0,HIDC_LIGHTGUNDEVICE
+ GROUPBOX "Positional device",IDC_STATIC,113,133,102,28
+ COMBOBOX IDC_POSITIONAL,119,142,90,62,CBS_DROPDOWNLIST |
+ WS_VSCROLL | WS_TABSTOP,0,HIDC_POSITIONAL
+ PUSHBUTTON "Reset",IDC_PROP_RESET,4,222,97,14,0,0,HIDC_PROP_RESET
+ PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,118,222,97,14,
+ 0,0,HIDC_USE_DEFAULT
+END
+
+IDD_PROP_SCREEN DIALOGEX 0, 0, 220, 240
+STYLE WS_CHILD | WS_CAPTION
+CAPTION "Screen"
+FONT 8, "Tahoma"
+BEGIN
+ ICON IDI_DISPLAY,IDC_STATIC,20,10,21,20
+ LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,SS_NOPREFIX
+
+ GROUPBOX "Number of screens",IDC_STATIC,4,40,103,24
+ CONTROL "GammaSlider",IDC_NUMSCREENS,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,10,50,75,10,0,HIDC_NUMSCREENS
+ RTEXT "1",IDC_NUMSCREENSDISP,84,49,14,10,SS_CENTERIMAGE | NOT WS_GROUP
+
+ GROUPBOX "Screen",IDC_STATIC,4,66,103,29
+ COMBOBOX IDC_SCREEN,10,76,91,64,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_SCREEN
+
+ GROUPBOX "",IDC_STATIC,4,97,103,28
+ CONTROL "Autoselect aspect",IDC_ASPECT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,97,73,10,0,HIDC_ASPECT
+ LTEXT "Aspect ratio",IDC_ASPECTRATIOTEXT,17,108,40,11,SS_CENTERIMAGE | NOT WS_GROUP
+ EDITTEXT IDC_ASPECTRATION,60,108,14,12,ES_RIGHT | ES_AUTOHSCROLL | ES_NUMBER,0,HIDC_ASPECTRATION
+ LTEXT ":",IDC_STATIC,76,108,8,10,SS_CENTERIMAGE | NOT WS_GROUP
+ EDITTEXT IDC_ASPECTRATIOD,80,108,14,12,ES_RIGHT | ES_AUTOHSCROLL | ES_NUMBER,0,HIDC_ASPECTRATIOD
+
+ GROUPBOX "View",IDC_STATIC,4,128,103,28
+ COMBOBOX IDC_VIEW,10,137,91,64,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_VIEW
+
+ GROUPBOX "Screennumber",IDC_SCREENSELECTTEXT,113,40,102,28
+ COMBOBOX IDC_SCREENSELECT,119,50,90,64,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_SCREENSELECT
+
+ GROUPBOX "Resolution",IDC_STATIC,113,71,102,76,WS_GROUP
+ GROUPBOX "Size",IDC_STATIC,119,81,90,28,WS_GROUP
+ COMBOBOX IDC_SIZES,126,91,77,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_SIZES
+
+ GROUPBOX "Refresh",IDC_REFRESHTEXT,119,112,90,28,WS_GROUP
+ COMBOBOX IDC_REFRESH,126,121,77,76,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_REFRESH
+ CONTROL "Switch resolutions to fit",IDC_SWITCHRES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,119,151,93,10,0,HIDC_SWITCHRES
+
+ PUSHBUTTON "Reset",IDC_PROP_RESET,4,222,97,14,0,0,HIDC_PROP_RESET
+ PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,118,222,97,14,0,0,HIDC_USE_DEFAULT
+END
+
+IDD_PROP_GAME DIALOG DISCARDABLE 0, 0, 220, 276
+STYLE WS_CHILD | WS_CAPTION
+CAPTION "General"
+FONT 8, "Tahoma"
+BEGIN
+ ICON IDI_MAMEUI_ICON,IDC_GAME_ICON,20,10,21,20
+ LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,
+ SS_NOPREFIX
+ CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,18,38,178,1
+ LTEXT "Manufactured:",IDC_STATIC,18,43,47,8
+ LTEXT "Static",IDC_PROP_MANUFACTURED,65,43,155,9,SS_NOPREFIX
+ LTEXT "Status:",IDC_STATIC,18,52,47,8
+ LTEXT "Static",IDC_PROP_STATUS,65,52,155,32
+ CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,18,85,178,1
+ LTEXT "CPU:",IDC_STATIC,18,90,47,8
+ LTEXT "Static\nStatic\nStatic\nStatic\nStatic",IDC_PROP_CPU,65,90,155,40
+ CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,18,130,178,1
+ LTEXT "Sound:",IDC_STATIC,18,135,47,8
+ LTEXT "Static\nStatic\nStatic\nStatic\nStatic",IDC_PROP_SOUND,65,135,155,45
+ CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,18,181,178,1
+ LTEXT "Screen:",IDC_STATIC,18,186,47,8
+ LTEXT "Static\nStatic\nStatic",IDC_PROP_SCREEN,65,186,155,27
+ CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,18,218,178,1
+ LTEXT "Source:",IDC_STATIC,16,223,47,8
+ LTEXT "Static",IDC_PROP_SOURCE,65,223,139,8
+ LTEXT "Clone of:",IDC_PROP_CLONEOF_TEXT,16,232,50,8
+ LTEXT "Static",IDC_PROP_CLONEOF,65,232,130,33
+END
+
+IDD_PROP_AUDIT DIALOG DISCARDABLE 0, 0, 220, 240
+STYLE WS_CHILD | WS_CAPTION
+CAPTION "Audit"
+FONT 8, "Tahoma"
+BEGIN
+ ICON IDI_CHECKMARK,IDC_STATIC,20,10,20,20
+ LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,
+ SS_NOPREFIX
+ LTEXT "ROM check:",IDC_STATIC,10,40,50,8
+ LTEXT "Checking...",IDC_PROP_ROMS,66,40,139,8
+ LTEXT "Sample check:",IDC_STATIC,10,52,50,8
+ LTEXT "Checking...",IDC_PROP_SAMPLES,66,52,139,8
+ GROUPBOX "Details",IDC_STATIC,4,64,211,171
+ EDITTEXT IDC_AUDIT_DETAILS_PROP,10,74,199,155,ES_MULTILINE |
+ ES_AUTOVSCROLL | ES_READONLY | WS_VSCROLL | WS_HSCROLL |
+ NOT WS_TABSTOP
+END
+
+IDD_PROP_DISPLAY DIALOGEX 0, 0, 220, 240
+STYLE WS_CHILD | WS_CAPTION
+CAPTION "Display"
+FONT 8, "Tahoma"
+BEGIN
+ ICON IDI_DISPLAY,IDC_STATIC,20,10,20,20
+ LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,169,25,SS_NOPREFIX
+
+ CONTROL "Run in a window",IDC_WINDOWED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,40,69,10,0,HIDC_WINDOWED
+ CONTROL "Start out maximized",IDC_MAXIMIZE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,52,80,10,0,HIDC_MAXIMIZE
+ CONTROL "Enforce aspect ratio",IDC_KEEPASPECT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,64,77,10,0,HIDC_KEEPASPECT
+ CONTROL "Throttle",IDC_THROTTLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,76,39,10,0,HIDC_THROTTLE
+
+ GROUPBOX "Bitmap prescaling",IDC_PRESCALETEXT,4,89,103,24
+ CONTROL "GammaSlider",IDC_PRESCALE,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,10,99,71,10,0,HIDC_PRESCALE
+ RTEXT "1.00",IDC_PRESCALEDISP,84,98,14,11,SS_CENTERIMAGE | NOT WS_GROUP
+
+ GROUPBOX "Gamma Correction",IDC_STATIC,4,115,103,24
+ CONTROL "GammaSlider",IDC_GAMMA,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,10,125,71,10,0,HIDC_GAMMA
+ RTEXT "2.00",IDC_GAMMADISP,84,124,14,10,SS_CENTERIMAGE | NOT WS_GROUP
+
+ GROUPBOX "Brightness Correction",IDC_STATIC,4,141,103,24
+ CONTROL "GammaSlider",IDC_BRIGHTCORRECT,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,10,151,71,10,0,HIDC_BRIGHTCORRECT
+ RTEXT "1.00",IDC_BRIGHTCORRECTDISP,84,150,14,10,SS_CENTERIMAGE | NOT WS_GROUP
+
+ GROUPBOX "Contrast Correction",IDC_STATIC,4,167,103,24
+ CONTROL "GammaSlider",IDC_CONTRAST,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,10,176,71,10,0,HIDC_CONTRAST
+ RTEXT "1.00",IDC_CONTRASTDISP,84,175,14,11,SS_CENTERIMAGE | NOT WS_GROUP
+
+ GROUPBOX "Pause Brightness",IDC_STATIC,4,193,103,24
+ CONTROL "Slider1",IDC_PAUSEBRIGHT,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,10,203,71,10,0,HIDC_PAUSEBRIGHT
+ RTEXT "0.65",IDC_PAUSEBRIGHTDISP,84,202,14,11,SS_CENTERIMAGE | NOT WS_GROUP
+
+ GROUPBOX "Video Mode",IDC_STATIC,113,40,102,28
+ COMBOBOX IDC_VIDEO_MODE,119,50,90,50,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP,0,HIDC_VIDEO_MODE
+
+ GROUPBOX "Rotation",IDC_STATIC,113,71,102,55
+ COMBOBOX IDC_ROTATE,119,81,90,57,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_ROTATE
+ CONTROL "Flip screen upside-down",IDC_FLIPY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,119,98,91,10,0,HIDC_FLIPY
+ CONTROL "Flip screen left-right",IDC_FLIPX,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,119,110,77,10,0,HIDC_FLIPX
+
+ GROUPBOX "Direct3D",IDC_STATIC,113,128,102,57
+ CONTROL "Use Bilinear filtering",IDC_D3D_FILTER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,119,138,85,10,0,HIDC_D3D_FILTER
+
+// GROUPBOX "Version",IDC_STATIC,119,150,90,28
+// COMBOBOX IDC_D3D_VERSION,125,160,78,95,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_D3D_VERSION
+
+// GROUPBOX "DirectDraw",IDC_STATIC,113,187,102,26
+// CONTROL "Stretch using hardware",IDC_HWSTRETCH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,119,197,85,10,0,HIDC_HWSTRETCH
+
+ PUSHBUTTON "Reset",IDC_PROP_RESET,4,222,97,14,0,0,HIDC_PROP_RESET
+ PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,118,222,97,14,0,0,HIDC_USE_DEFAULT
+END
+
+IDD_PROP_SOUND DIALOGEX 0, 0, 220, 240
+STYLE WS_CHILD | WS_CAPTION
+CAPTION "Sound"
+FONT 8, "Tahoma"
+BEGIN
+ ICON IDI_SOUNDTAB,IDC_STATIC,20,10,20,20
+ LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,SS_NOPREFIX
+
+ GROUPBOX "",IDC_STATIC,4,40,211,155
+
+ GROUPBOX "Sound Mode",IDC_STATIC,60,50,100,28
+ COMBOBOX IDC_SOUND_MODE,66,60,88,50,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP,0,HIDC_VIDEO_MODE
+
+ CONTROL "Use samples",IDC_SAMPLES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,60,84,55,10,0,HIDC_SAMPLES
+
+ GROUPBOX "Sample rate",IDC_RATETEXT,60,96,100,28
+ COMBOBOX IDC_SAMPLERATE,66,106,88,60,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_SAMPLERATE
+
+ GROUPBOX "Volume attenuation",IDC_VOLUMETEXT,60,127,100,28
+ CONTROL "Slider1",IDC_VOLUME,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,66,139,68,10,0,HIDC_VOLUME
+ RTEXT "0dB",IDC_VOLUMEDISP,132,138,20,11,SS_CENTERIMAGE
+
+ GROUPBOX "Audio latency",IDC_AUDIO_LATENCY_TEXT,60,158,100,28
+ CONTROL "Slider1",IDC_AUDIO_LATENCY,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,66,170,68,10,0,HIDC_AUDIO_LATENCY
+ RTEXT "1/5",IDC_AUDIO_LATENCY_DISP,132,169,20,11,SS_CENTERIMAGE
+
+ PUSHBUTTON "Reset",IDC_PROP_RESET,4,222,97,14,0,0,HIDC_PROP_RESET
+ PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,118,222,97,14,0,0,HIDC_USE_DEFAULT
+END
+
+IDD_PROP_ADVANCED DIALOGEX 0, 0, 220, 255
+STYLE DS_FIXEDSYS | WS_CHILD | WS_CAPTION
+CAPTION "Advanced"
+FONT 8, "Tahoma"
+BEGIN
+ ICON IDI_DISPLAY,IDC_STATIC,20,10,20,20
+ LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,SS_NOPREFIX
+
+ CONTROL "Triple buffering",IDC_TRIPLE_BUFFER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,40,93,10,0,HIDC_TRIPLE_BUFFER
+ CONTROL "Sync to monitor refresh",IDC_SYNCREFRESH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,52,93,10,0,HIDC_SYNCREFRESH
+ CONTROL "Wait for vertical sync",IDC_WAITVSYNC,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,64,93,10,0,HIDC_WAITVSYNC
+ CONTROL "Refresh speed",IDC_REFRESHSPEED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,76,93,10,0,HIDC_REFRESHSPEED
+
+ GROUPBOX "Frame skipping",IDC_STATIC,4,104,103,42
+ CONTROL "Automatic",IDC_AUTOFRAMESKIP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,114,77,10,0,HIDC_AUTOFRAMESKIP
+ COMBOBOX IDC_FRAMESKIP,10,127,91,88,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_FRAMESKIP
+
+ GROUPBOX "Full screen gamma",IDC_FSGAMMATEXT,113,40,102,24
+ CONTROL "Slider1",IDC_FSGAMMA,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,119,50,71,10,0,HIDC_FSGAMMA
+ RTEXT "2.00",IDC_FSGAMMADISP,193,49,16,10,SS_CENTERIMAGE | NOT WS_GROUP
+
+ GROUPBOX "Full screen brightness",IDC_FSBRIGHTNESSTEXT,113,67,102,24
+ CONTROL "Slider1",IDC_FSBRIGHTNESS,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,119,77,71,10,0,HIDC_FSBRIGHTNESS
+ RTEXT "2.00",IDC_FSBRIGHTNESSDISP,193,76,16,10,SS_CENTERIMAGE | NOT WS_GROUP
+
+ GROUPBOX "Full screen contrast",IDC_FSCONTRASTTEXT,113,94,102,24
+ CONTROL "Slider1",IDC_FSCONTRAST,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,119,104,71,10,0,HIDC_FSCONTRAST
+ RTEXT "2.00",IDC_FSCONTRASTDISP,193,103,16,11,SS_CENTERIMAGE | NOT WS_GROUP
+
+ GROUPBOX "Seconds to run",IDC_SECONDSTORUNTEXT,113,122,102,24
+ CONTROL "",IDC_SECONDSTORUN,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,119,132,71,10,0,HIDC_SECONDSTORUN
+ RTEXT "60",IDC_SECONDSTORUNDISP,193,130,16,11,SS_CENTERIMAGE | NOT WS_GROUP
+
+ GROUPBOX "Emulation speed",IDC_SPEEDTEXT,4,155,211,24
+ CONTROL "Slider1",IDC_SPEED,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,12,165,180,10,0,HIDC_SPEED
+ RTEXT "1.00",IDC_SPEEDDISP,191,164,20,11,SS_CENTERIMAGE | NOT WS_GROUP
+
+ GROUPBOX "Effect",IDC_STATIC,4,182,211,50
+ EDITTEXT IDC_EFFECT,12,192,200,14,ES_AUTOHSCROLL | WS_DISABLED
+ PUSHBUTTON "Select Effect",IDC_SELECT_EFFECT,12,211,60,14,0,0,HIDC_SELECT_EFFECT
+ PUSHBUTTON "Reset Effect",IDC_RESET_EFFECT,152,211,60,14,0,0,HIDC_RESET_EFFECT
+
+ PUSHBUTTON "Reset",IDC_PROP_RESET,4,238,97,14,0,0,HIDC_PROP_RESET
+ PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,120,238,97,14,0,0,HIDC_USE_DEFAULT
+END
+
+IDD_PROP_DEBUG DIALOGEX 0, 0, 220, 255
+STYLE DS_FIXEDSYS | WS_CHILD | WS_CAPTION
+CAPTION "Debug"
+FONT 8, "Tahoma"
+BEGIN
+ ICON IDI_MANUFACTURER,IDC_STATIC,20,10,20,20
+ LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,SS_NOPREFIX
+
+ CONTROL "Output log to Windows Debugger",IDC_OSLOG,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,40,124,10,0,HIDC_OSLOG
+ CONTROL "Output log to Logfile",IDC_LOG,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,52,93,10,0,HIDC_LOG
+ CONTROL "Output diagnostic information",IDC_VERBOSE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,64,111,10,0,HIDC_VERBOSE
+ CONTROL "Update Main window during paused emulation",IDC_UPDATEINPAUSE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,76,171,10,0,HIDC_UPDATEINPAUSE
+ CONTROL "Activate Integrated Debugger",IDC_DEBUG,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,88,118,10,0,HIDC_DEBUG
+
+ GROUPBOX "Debugscript",IDC_STATIC,6,104,211,50
+ EDITTEXT IDC_DEBUGSCRIPT,14,114,200,14,ES_AUTOHSCROLL | WS_DISABLED
+ PUSHBUTTON "Select Debugscript",IDC_SELECT_DEBUGSCRIPT,14,133,67,14,0,0,HIDC_SELECT_DEBUGSCRIPT
+ PUSHBUTTON "Reset Debugscript",IDC_RESET_DEBUGSCRIPT,149,133,65,14,0,0,HIDC_RESET_DEBUGSCRIPT
+
+ PUSHBUTTON "Reset",IDC_PROP_RESET,4,238,97,14,0,0,HIDC_PROP_RESET
+ PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,120,238,97,14,0,0,HIDC_USE_DEFAULT
+END
+
+IDD_PROP_INPUT DIALOGEX 0, 0, 220, 240
+STYLE DS_FIXEDSYS | WS_CHILD | WS_CAPTION
+CAPTION "Controllers"
+FONT 8, "Tahoma"
+BEGIN
+ ICON IDI_JOYSTICK,IDC_STATIC,20,10,20,20
+ LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,
+ SS_NOPREFIX
+ CONTROL "Enable mouse input",IDC_USE_MOUSE,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,10,40,86,10,0,
+ HIDC_USE_MOUSE
+ CONTROL "Enable steadykey support",IDC_STEADYKEY,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,10,52,95,10,0,
+ HIDC_STEADYKEY
+ GROUPBOX "",IDC_STATIC,4,64,103,74
+ CONTROL "Enable joystick input",IDC_JOYSTICK,"Button",
+ BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,10,64,78,10,0,
+ HIDC_JOYSTICK
+ GROUPBOX "Joystick deadzone",IDC_JDZTEXT,10,76,91,28
+ CONTROL "IntensitySlider",IDC_JDZ,"msctls_trackbar32",TBS_BOTH |
+ TBS_NOTICKS | WS_TABSTOP,15,88,60,10,0,HIDC_JDZ
+ RTEXT "0.3",IDC_JDZDISP,76,87,16,11,SS_CENTERIMAGE | NOT
+ WS_GROUP
+ GROUPBOX "Default input layout",IDC_STATIC,113,40,102,28
+ COMBOBOX IDC_DEFAULT_INPUT,119,50,90,53,CBS_DROPDOWNLIST |
+ WS_VSCROLL | WS_TABSTOP,0,HIDC_DEFAULT_INPUT
+ GROUPBOX "",IDC_STATIC,113,71,102,66
+ CONTROL "Enable lightgun input",IDC_LIGHTGUN,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,119,71,80,10,0,
+ HIDC_LIGHTGUN
+ CONTROL "Offscreen shots reload",IDC_RELOAD,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,119,83,86,10,0,HIDC_RELOAD
+ CONTROL "Dual lightguns",IDC_DUAL_LIGHTGUN,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,119,96,86,10,0,
+ HIDC_DUAL_LIGHTGUN
+ CONTROL "Multiple keyboards",IDC_MULTIKEYBOARD,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,119,109,75,10,0,
+ HIDC_MULTIKEYBOARD
+ CONTROL "Multiple mice",IDC_MULTIMOUSE,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,119,122,56,10,0,HIDC_MULTIMOUSE
+ GROUPBOX "Joystick saturation",IDC_JSATTEXT,10,106,91,28
+ CONTROL "IntensitySlider",IDC_JSAT,"msctls_trackbar32",TBS_BOTH |
+ TBS_NOTICKS | WS_TABSTOP,16,118,60,10,0,HIDC_JSAT
+ RTEXT "0.85",IDC_JSATDISP,76,116,16,11,SS_CENTERIMAGE | NOT
+ WS_GROUP
+ PUSHBUTTON "Reset",IDC_PROP_RESET,4,222,97,14,0,0,HIDC_PROP_RESET
+ PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,118,222,97,14,
+ 0,0,HIDC_USE_DEFAULT
+ GROUPBOX "Joystickmap",IDC_STATIC,4,143,211,50
+ EDITTEXT IDC_JOYSTICKMAP,12,153,200,14,ES_AUTOHSCROLL |
+ WS_DISABLED
+ PUSHBUTTON "Select Joystickmap",IDC_SELECT_JOYSTICKMAP,12,172,67,14,
+ 0,0,HIDC_SELECT_JOYSTICKMAP
+ PUSHBUTTON "Reset Joystickmap",IDC_RESET_JOYSTICKMAP,147,172,65,14,
+ 0,0,HIDC_RESET_JOYSTICKMAP
+END
+
+IDD_PROP_MISC DIALOGEX 0, 0, 220, 240
+STYLE DS_FIXEDSYS | WS_CHILD | WS_CAPTION
+CAPTION "Miscellaneous"
+FONT 8, "Tahoma"
+BEGIN
+ ICON IDI_MAMEUI_ICON,IDC_STATIC,20,10,20,20
+ LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,
+ SS_NOPREFIX
+ CONTROL "Enable cheats",IDC_CHEAT,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,10,40,86,10,0,HIDC_CHEAT
+ CONTROL "Sleep when possible",IDC_SLEEP,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,10,52,86,10,0,HIDC_SLEEP
+
+ CONTROL "Skip game info",IDC_SKIP_GAME_INFO,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,10,64,96,10,0,
+ HIDC_SKIP_GAME_INFO
+ CONTROL "Save game state on exit",IDC_ENABLE_AUTOSAVE,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,10,76,96,10,0,
+ HIDC_ENABLE_AUTOSAVE
+ CONTROL "Coin lockout",IDC_COINLOCKOUT,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,10,100,96,10,0,HIDC_COINLOCKOUT
+ GROUPBOX "Thread Priority",IDC_HIGH_PRIORITY_TEXT,7,112,103,34
+ CONTROL "Slider1",IDC_HIGH_PRIORITY,"msctls_trackbar32",TBS_BOTH |
+ TBS_NOTICKS | WS_TABSTOP,13,122,75,10,0,
+ HIDC_HIGH_PRIORITY
+ LTEXT "idle",IDC_STATIC,17,132,12,8
+ RTEXT "-15",IDC_HIGH_PRIORITYTXT,87,122,14,10,SS_CENTERIMAGE
+ RTEXT "real-time",IDC_STATIC,57,134,28,8
+ GROUPBOX "Snapshot view",IDC_STATIC,7,148,103,28
+ COMBOBOX IDC_SNAPVIEW,13,158,90,60,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP,0,HIDC_SNAPVIEW
+ GROUPBOX "Artwork options",IDC_STATIC,113,40,102,85
+ CONTROL "Backdrops",IDC_BACKDROPS,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,119,50,86,10,0,HIDC_BACKDROPS
+ CONTROL "Bezels",IDC_BEZELS,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,119,62,86,10,0,HIDC_BEZELS
+ CONTROL "Overlays",IDC_OVERLAYS,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,119,74,84,10,0,HIDC_OVERLAYS
+ CONTROL "CPanels",IDC_CPANELS,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,119,86,84,10,0
+ CONTROL "Marquees",IDC_MARQUEES,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,119,98,84,10,0
+ CONTROL "Crop artwork",IDC_ARTWORK_CROP,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,119,110,53,10,0,HIDC_ARTWORK_CROP
+ GROUPBOX "BIOS",IDC_STATIC,113,128,102,28
+ COMBOBOX IDC_BIOS,119,138,90,60,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP,0,HIDC_BIOS
+ GROUPBOX "",IDC_STATIC,7,178,208,28
+ CONTROL "Autoselect snapshot size",IDC_SNAPSIZE,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,13,178,95,10,0,
+ HIDC_SNAPSIZE
+ LTEXT "Snapshotsize",IDC_SNAPSIZETEXT,11,189,44,11,
+ SS_CENTERIMAGE | NOT WS_GROUP
+ EDITTEXT IDC_SNAPSIZEWIDTH,122,187,32,12,ES_RIGHT |
+ ES_AUTOHSCROLL | ES_NUMBER,0,HIDC_SNAPSIZEWIDTH
+ EDITTEXT IDC_SNAPSIZEHEIGHT,172,187,32,12,ES_RIGHT |
+ ES_AUTOHSCROLL | ES_NUMBER,0,HIDC_SNAPSIZEHEIGHT
+ LTEXT "x",IDC_SNAPSIZEX,162,189,8,8
+ PUSHBUTTON "Reset",IDC_PROP_RESET,4,222,97,14,0,0,HIDC_PROP_RESET
+ PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,118,222,97,14,
+ 0,0,HIDC_USE_DEFAULT
+// CONTROL "Show Menu",IDC_SHOW_MENU,"Button",
+// BS_AUTOCHECKBOX | WS_TABSTOP,119,160,86,10,0
+END
+
+IDD_PROP_VECTOR DIALOGEX 0, 0, 220, 240
+STYLE WS_CHILD | WS_CAPTION
+CAPTION "Vector"
+FONT 8, "Tahoma"
+BEGIN
+ ICON IDI_MAMEUI_ICON,IDC_STATIC,20,10,20,20
+ LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,
+ SS_NOPREFIX
+// CONTROL "Draw antialiased vectors",IDC_ANTIALIAS,"Button",
+// BS_AUTOCHECKBOX | WS_TABSTOP,10,40,92,10,0,
+// HIDC_ANTIALIAS
+ GROUPBOX "Beam width",IDC_BEAMTEXT,60,53,100,28
+ CONTROL "BeamSlider",IDC_BEAM,"msctls_trackbar32",TBS_BOTH |
+ TBS_NOTICKS | WS_TABSTOP,66,65,64,10,0,HIDC_BEAM
+ RTEXT "16.00",IDC_BEAMDISP,132,64,20,11,SS_CENTERIMAGE
+ GROUPBOX "Flicker",IDC_FLICKERTEXT,60,84,100,28
+ CONTROL "FlickerSlider",IDC_FLICKER,"msctls_trackbar32",TBS_BOTH |
+ TBS_NOTICKS | WS_TABSTOP,66,96,64,10,0,HIDC_FLICKER
+ RTEXT "100.00",IDC_FLICKERDISP,128,95,24,11,SS_CENTERIMAGE |
+ NOT WS_GROUP
+ PUSHBUTTON "Reset",IDC_PROP_RESET,4,222,97,14,0,0,HIDC_PROP_RESET
+ PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,118,222,97,14,
+ 0,0,HIDC_USE_DEFAULT
+END
+
+IDD_MAIN DIALOGEX 0, 0, 364, 206
+STYLE DS_3DLOOK | DS_NOFAILCREATE | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | DS_SETFONT
+EXSTYLE WS_EX_CONTROLPARENT
+CAPTION "MAMEUI - overwritten at runtime"
+CLASS "MainClass"
+FONT 8, "Verdana"
+BEGIN
+ CONTROL "",IDC_DIVIDER,"Static",SS_ETCHEDHORZ,0,5,304,1
+ CONTROL "Tree1",IDC_TREE,"SysTreeView32",TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT | TVS_EDITLABELS |
+ TVS_SHOWSELALWAYS | TVS_FULLROWSELECT | WS_BORDER | WS_TABSTOP,5,28,48,172
+ CONTROL "List1",IDC_LIST,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_AUTOARRANGE |
+ LVS_SHAREIMAGELISTS | LVS_OWNERDRAWFIXED | WS_BORDER | WS_TABSTOP,65,28,42,172
+ GROUPBOX "",IDC_SPLITTER,55,28,8,172,BS_NOTIFY | NOT WS_VISIBLE
+ GROUPBOX "",IDC_SPLITTER2,109,28,8,172,BS_NOTIFY | NOT WS_VISIBLE
+ CONTROL "",IDC_SSFRAME,"Static",SS_ETCHEDFRAME | SS_NOTIFY,121,11,181,194
+ CONTROL "",IDC_SSTAB,"SysTabControl32",TCS_HOTTRACK,121,0,181,18
+ CONTROL "",IDC_SSPICTURE,"Static",SS_BITMAP | NOT WS_VISIBLE,141,18,141,127
+ EDITTEXT IDC_HISTORY,129,150,167,49,ES_MULTILINE | ES_READONLY | NOT WS_BORDER | WS_VSCROLL | NOT WS_TABSTOP,0, HIDC_HISTORY
+END
+
+IDD_FILTERS DIALOGEX 0, 0, 190, 196
+STYLE DS_MODALFRAME | DS_CENTER | DS_3DLOOK | WS_POPUP | WS_CAPTION |
+ WS_SYSMENU
+EXSTYLE WS_EX_CONTEXTHELP
+CAPTION "Game Filters"
+FONT 8, "Tahoma"
+BEGIN
+ GROUPBOX "Game filters",IDC_STATIC,6,4,178,99
+ CONTROL "&Vector Graphics",IDC_FILTER_VECTOR,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,14,16,70,10,0,
+ HIDC_FILTER_VECTOR
+ CONTROL "C&lones",IDC_FILTER_CLONES,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,14,30,41,10,0,HIDC_FILTER_CLONES
+ CONTROL "Non-Wor&king",IDC_FILTER_NONWORKING,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,14,44,61,10,0,
+ HIDC_FILTER_NONWORKING
+ CONTROL "&Horizontal",IDC_FILTER_HORIZONTAL,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,14,58,57,10,0,
+ HIDC_FILTER_HORIZONTAL
+ CONTROL "&Unavailable",IDC_FILTER_UNAVAILABLE,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,14,72,57,10,0,
+ HIDC_FILTER_UNAVAILABLE
+ CONTROL "Arcade",IDC_FILTER_ARCADE,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,14,86,57,10,0
+ CONTROL "&Raster Graphics",IDC_FILTER_RASTER,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,100,16,70,10,0,
+ HIDC_FILTER_RASTER
+ CONTROL "Ori&ginals",IDC_FILTER_ORIGINALS,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,100,30,47,10,0,
+ HIDC_FILTER_ORIGINALS
+ CONTROL "&Working",IDC_FILTER_WORKING,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,100,44,47,10,0,HIDC_FILTER_WORKING
+ CONTROL "&Vertical",IDC_FILTER_VERTICAL,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,100,58,47,10,0,HIDC_FILTER_VERTICAL
+ CONTROL "&Mechanical",IDC_FILTER_MECHANICAL,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,100,72,58,10,0,HIDC_FILTER_MECHANICAL
+ CONTROL "MESS",IDC_FILTER_MESS,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,100,86,58,10,0,HIDC_FILTER_MECHANICAL
+ LTEXT "(*) = inherited from parent folder",IDC_INHERITED,14,72,
+ 99,10
+ CTEXT "Game filters allow customizing the games that are displayed in each folder by hiding games that match the filters applied.",
+ IDC_STATIC,6,108,178,27
+ GROUPBOX "&Description filter",IDC_STATIC,6,136,178,33
+ EDITTEXT IDC_FILTER_EDIT,14,148,162,13,ES_AUTOHSCROLL,0,
+ HIDC_FILTER_EDIT
+ DEFPUSHBUTTON "&OK",IDOK,42,175,50,14
+ PUSHBUTTON "&Cancel",IDCANCEL,98,175,50,14
+END
+
+IDD_RESET DIALOGEX 0, 0, 190, 122
+STYLE DS_MODALFRAME | DS_CENTER | DS_3DLOOK | WS_POPUP | WS_CAPTION | WS_SYSMENU
+EXSTYLE WS_EX_CONTEXTHELP
+CAPTION "Reset Options"
+FONT 8, "Tahoma"
+BEGIN
+ GROUPBOX "Categories",IDC_STATIC,6,4,178,70
+ CONTROL "&User Interface (Fonts, Colors, Sizes)",IDC_RESET_UI,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,16,146,10,0,
+ HIDC_RESET_UI
+ CONTROL "&Default game options",IDC_RESET_DEFAULT,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,14,30,146,10,0,
+ HIDC_RESET_DEFAULT
+ CONTROL "&All games to use default options",IDC_RESET_GAMES,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,44,146,10,0,
+ HIDC_RESET_GAMES
+ CONTROL "&Folder 'filters'",IDC_RESET_FILTERS,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,14,58,146,10,0,
+ HIDC_RESET_FILTERS
+ CTEXT "Select the options to be restored to the default settings.",
+ IDC_STATIC,6,79,178,20
+ DEFPUSHBUTTON "&OK",IDOK,42,101,50,14
+ PUSHBUTTON "&Cancel",IDCANCEL,98,101,50,14
+END
+
+
+IDD_INTERFACE_OPTIONS DIALOGEX 0, 0, 378, 225
+STYLE DS_MODALFRAME | DS_CENTER | DS_3DLOOK | WS_POPUP | WS_CAPTION | WS_SYSMENU
+EXSTYLE WS_EX_CONTEXTHELP
+CAPTION "Interface Options"
+FONT 8, "Tahoma"
+BEGIN
+ GROUPBOX "Machine Selection",IDC_STATIC,6,4,189,194
+ CONTROL "&Search for new machines on start",IDC_START_GAME_CHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,16,120,10,0,HIDC_START_GAME_CHECK
+ CONTROL "Allow selection by &joystick (requires restart)",IDC_JOY_GUI,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,30,180,10,0,HIDC_JOY_GUI
+ CONTROL "Allow selection by custom &key sequences",IDC_KEY_GUI,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,44,176,10
+ CONTROL "Override Not Working icon with driver icon",IDC_OVERRIDE_REDX,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,72,168,10
+ CONTROL "Hide &mouse cursor (requires restart)",IDC_HIDE_MOUSE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,86,136,10,0,HIDC_HIDE_MOUSE
+ CONTROL "Inheritable Filters",IDC_FILTER_INHERIT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,100,68,10
+ CONTROL "No offset for clones missing parent in view",IDC_NOOFFSET_CLONES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,114,148,10
+ GROUPBOX "Show History on Tab",IDC_STATIC,14,128,173,28
+ COMBOBOX IDC_HISTORY_TAB,57,138,88,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+ GROUPBOX "Snapshot Pattern",IDC_STATIC,202,4,170,28
+ GROUPBOX "Bookkeeping",IDC_STATIC,202,36,170,43
+ CONTROL "Reset all Play Statistics",IDC_RESET_PLAYSTATS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,210,48,100,10
+ GROUPBOX "Screenshot Area",IDC_STATIC,202,83,170,115
+ CONTROL "S&tretch screenshot larger than natural size",
+ IDC_STRETCH_SCREENSHOT_LARGER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,210,95,148,10,0,HIDC_STRETCH_SCREENSHOT_LARGER
+ GROUPBOX "Screenshot Cycletime in Seconds",IDC_STATIC,210,109,154,28
+ CONTROL "Slider1",IDC_CYCLETIMESEC,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,218,121,120,10,0,HIDC_CYCLETIMESEC
+ RTEXT "60",IDC_CYCLETIMESECTXT,340,120,13,10,SS_CENTERIMAGE
+ GROUPBOX "Screenshot Bordersize",IDC_STATIC,210,141,154,28
+ CONTROL "Slider1",IDC_SCREENSHOT_BORDERSIZE,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,218,153,120,10
+ RTEXT "100",IDC_SCREENSHOT_BORDERSIZETXT,340,152,13,10,SS_CENTERIMAGE
+ PUSHBUTTON "Set Screenshot Border Color",IDC_SCREENSHOT_BORDERCOLOR,210,176,154,14
+ DEFPUSHBUTTON "&OK",IDOK,136,204,50,14
+ PUSHBUTTON "&Cancel",IDCANCEL,192,204,50,14
+ COMBOBOX IDC_SNAPNAME,209,14,155,60,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_SNAPNAME
+END
+
+IDD_CUSTOM_FILE DIALOG DISCARDABLE 0, 0, 190, 135
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Add Game To Custom Folder"
+FONT 8, "Tahoma"
+BEGIN
+ LTEXT "",IDC_CUSTOMFILE_GAME,6,6,175,10,SS_NOPREFIX |
+ SS_CENTERIMAGE
+ CONTROL "CustomTree",IDC_CUSTOM_TREE,"SysTreeView32",
+ TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT |
+ TVS_DISABLEDRAGDROP | TVS_SHOWSELALWAYS |
+ TVS_FULLROWSELECT | WS_BORDER | WS_TABSTOP,6,18,178,90
+ DEFPUSHBUTTON "OK",IDOK,42,114,50,14
+ PUSHBUTTON "Cancel",IDCANCEL,98,114,50,14
+END
+
+
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Accelerator
+//
+
+IDA_TAB_KEYS ACCELERATORS MOVEABLE PURE
+BEGIN
+ "1", ID_VIEW_TAB_SCREENSHOT, VIRTKEY, ALT, NOINVERT
+ "2", ID_VIEW_TAB_FLYER, VIRTKEY, ALT, NOINVERT
+ "3", ID_VIEW_TAB_CABINET, VIRTKEY, ALT, NOINVERT
+ "4", ID_VIEW_TAB_MARQUEE, VIRTKEY, ALT, NOINVERT
+ "5", ID_VIEW_TAB_TITLE, VIRTKEY, ALT, NOINVERT
+ "6", ID_VIEW_TAB_CONTROL_PANEL, VIRTKEY, ALT, NOINVERT
+ "7", ID_VIEW_TAB_PCB, VIRTKEY, ALT, NOINVERT
+ "8", ID_VIEW_TAB_HISTORY, VIRTKEY, ALT, NOINVERT
+ "A", ID_GAME_AUDIT, VIRTKEY, ALT, NOINVERT
+ "B", ID_VIEW_PAGETAB, VIRTKEY, ALT, NOINVERT
+ "D", ID_VIEW_FOLDERS, VIRTKEY, ALT, NOINVERT
+ "E", ID_TOOLBAR_EDIT, VIRTKEY, CONTROL, NOINVERT
+ "F", ID_CONTEXT_FILTERS, VIRTKEY, CONTROL, NOINVERT
+ "U", ID_FOLDER_AUDIT, VIRTKEY, ALT, NOINVERT
+ "P", ID_VIEW_PICTURE_AREA, VIRTKEY, ALT, NOINVERT
+ "R", ID_CONTEXT_SELECT_RANDOM, VIRTKEY, CONTROL, NOINVERT
+ "S", ID_VIEW_STATUS, VIRTKEY, ALT, NOINVERT
+ "T", ID_VIEW_TOOLBARS, VIRTKEY, ALT, NOINVERT
+ VK_F1, ID_HELP_CONTENTS, VIRTKEY, NOINVERT
+ VK_F11, ID_VIEW_FULLSCREEN, VIRTKEY, NOINVERT
+ VK_F5, ID_UPDATE_GAMELIST, VIRTKEY, NOINVERT
+ VK_NEXT, ID_UI_HISTORY_DOWN, VIRTKEY, CONTROL, NOINVERT
+ VK_PRIOR, ID_UI_HISTORY_UP, VIRTKEY, CONTROL, NOINVERT
+ VK_RETURN, ID_GAME_PROPERTIES, VIRTKEY, ALT, NOINVERT
+END
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// DESIGNINFO
+//
+
+#ifdef APSTUDIO_INVOKED
+GUIDELINES DESIGNINFO MOVEABLE PURE
+BEGIN
+ IDD_ABOUT, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 289
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 123
+ END
+
+ IDD_DIRECTX, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 229
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 62
+ END
+
+ IDD_AUDIT, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 280
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 187
+ HORZGUIDE, 19
+ END
+
+ IDD_DIRECTORIES, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 224
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 98
+ END
+
+ IDD_COLUMNS, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 301
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 143
+ END
+
+ IDD_PROP_CONTROLLER, DIALOG
+ BEGIN
+ RIGHTMARGIN, 210
+ BOTTOMMARGIN, 154
+ END
+
+ IDD_PROP_SCREEN, DIALOG
+ BEGIN
+ LEFTMARGIN, 4
+ VERTGUIDE, 7
+ VERTGUIDE, 123
+ BOTTOMMARGIN, 199
+ HORZGUIDE, 179
+ END
+
+ IDD_PROP_GAME, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 213
+ VERTGUIDE, 19
+ VERTGUIDE, 66
+ VERTGUIDE, 74
+ VERTGUIDE, 201
+ BOTTOMMARGIN, 268
+ END
+
+ IDD_PROP_AUDIT, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 213
+ VERTGUIDE, 12
+ VERTGUIDE, 208
+ BOTTOMMARGIN, 198
+ HORZGUIDE, 38
+ END
+
+ IDD_PROP_DISPLAY, DIALOG
+ BEGIN
+ LEFTMARGIN, 4
+ VERTGUIDE, 7
+ VERTGUIDE, 123
+ HORZGUIDE, 179
+ END
+
+ IDD_PROP_SOUND, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 213
+ VERTGUIDE, 50
+ BOTTOMMARGIN, 198
+ END
+
+ IDD_PROP_ADVANCED, DIALOG
+ BEGIN
+ LEFTMARGIN, 10
+ BOTTOMMARGIN, 240
+ END
+
+ IDD_PROP_INPUT, DIALOG
+ BEGIN
+ LEFTMARGIN, 4
+ RIGHTMARGIN, 215
+ VERTGUIDE, 50
+ VERTGUIDE, 170
+ END
+
+ IDD_PROP_MISC, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 213
+ VERTGUIDE, 25
+ VERTGUIDE, 40
+ VERTGUIDE, 104
+ VERTGUIDE, 114
+ VERTGUIDE, 204
+ BOTTOMMARGIN, 236
+ END
+
+ IDD_PROP_VECTOR, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 213
+ VERTGUIDE, 50
+ BOTTOMMARGIN, 198
+ END
+
+ IDD_FILTERS, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 178
+ END
+
+ IDD_RESET, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 175
+ VERTGUIDE, 18
+ VERTGUIDE, 164
+ TOPMARGIN, 7
+ END
+END
+#endif // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Bitmap
+//
+
+
+
+
+IDB_ABOUT BITMAP "res\\about.bmp"
+IDB_TOOLBAR BITMAP "res\\toolbar.bmp"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Cursor
+//
+
+IDC_CURSOR_HSPLIT CURSOR "res\\splith.cur"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// RT_MANIFEST
+//
+
+1 RT_MANIFEST "res\\mameui.manifest"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// String Table
+//
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ IDS_UI_FILE "Contains commands for working with the selected items"
+ IDS_UI_VIEW "Contains commands for manipulating the view"
+ IDS_UI_OPTIONS "Contains commands for user interface options"
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ IDS_UI_HELP "Contains commands for displaying help"
+ IDS_VIEW_TOOLBAR "Show or hide the toolbar"
+ IDS_VIEW_STATUSBAR "Show or hide the status bar"
+ IDS_VIEW_FOLDERLIST "Show or hide the folder list"
+ IDS_VIEW_SCREENSHOT "Show or hide the screen shot"
+ IDS_VIEW_PICTURETABS "Show or hide tabs in the picture area"
+ IDS_VIEW_SPACER1 "Spacer"
+ IDS_VIEW_FULLSCREEN "Toggle full screen mode"
+ IDS_VIEW_SPACER2 "Spacer"
+ IDS_VIEW_SHOWPICTURES "Contains commands to select tabs shown in the picture area"
+ IDS_VIEW_SPACER3 "Spacer"
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ IDS_VIEW_LARGEICONS "Display items by using large icons."
+ IDS_VIEW_SMALLICONS "Display items by using small icons."
+ IDS_VIEW_LIST "Displays items in a list."
+ IDS_VIEW_DETAILS "Displays detailed information about each item in the window."
+ IDS_VIEW_GROUPED "Displays items grouped by parent game"
+ IDS_VIEW_SPACER4 "Spacer"
+ IDS_VIEW_ARRANGE "Contains commands for sorting by various columns"
+ IDS_VIEW_LINEUPICONS "Arranges icons in a grid"
+ IDS_VIEW_SPACER5 "Spacer"
+ IDS_VIEW_REFRESH "Refresh game list"
+ IDS_VIEW_CONTEXTFILTERS "Allows filtering out games from a folder"
+ IDS_VIEW_CUSTOMIZEFIELDS
+ "Customize which columns are used in the game list"
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ ID_FILE_EXIT "Exit the application"
+ ID_FILE_PLAY "Play currently selected game"
+ ID_HELP_ABOUT "Displays program and copyright information"
+ ID_VIEW_LARGE_ICON "Display items by using large icons."
+ ID_VIEW_SMALL_ICON "Display items by using small icons."
+ ID_VIEW_LIST_MENU "Displays items in a list."
+ ID_VIEW_DETAIL "Displays detailed information about each item in the window."
+ ID_VIEW_GROUPED "Show items grouped by parent game"
+ ID_OPTIONS_FONT "Set game list and folder list font"
+ ID_OPTIONS_CLONE_COLOR "Set the clone font color"
+ ID_OPTIONS_DIR "Set directory configuration"
+ ID_OPTIONS_DEFAULTS "Set default game options"
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ ID_OPTIONS_RESET_DEFAULTS "Allow restoring options to 'sane' values."
+ ID_OPTIONS_INTERFACE "Customize interface options."
+ ID_FILE_AUDIT "Audit ROM and samples sets"
+ ID_FILE_PLAY_RECORD "Record a game for later playback"
+ ID_FILE_PLAY_BACK "Playback a recorded game"
+ ID_FILE_PLAY_RECORD_WAVE "Record the audio output of a game"
+ ID_FILE_PLAY_RECORD_MNG "Record the video output of a game"
+ ID_FILE_PLAY_RECORD_AVI "Record the complete output of a game"
+ ID_VIEW_PICTURE_AREA "Show or hide the picture area"
+ ID_HELP_CONTENTS "Display help contents"
+ ID_HELP_WHATS_NEWUI "New game changes"
+ ID_HELP_TROUBLE "Troubleshooting Documentation"
+ ID_HELP_RELEASE "MAME release notes"
+ ID_HELP_WHATS_NEW "What's new in MAME"
+ ID_HELP_CHEATS "How cheats work"
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ ID_CONTEXT_RESET_PLAYSTATS "Reset play stats for selected item"
+ ID_FOLDER_PROPERTIES "Display folder properties"
+ ID_FOLDER_AUDIT "Audit items in this folder"
+ ID_FILE_LOADSTATE "Play a game starting with the given savestate"
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ ID_VIEW_TAB_CABINET "Select Cabinet tab"
+ ID_VIEW_TAB_MARQUEE "Select Marquee tab"
+ ID_VIEW_TAB_TITLE "Select Title tab"
+ ID_VIEW_TAB_CONTROL_PANEL "Select Control panel tab"
+ ID_VIEW_TAB_PCB "Select PCB tab"
+ ID_VIEW_TAB_HISTORY "Select History tab"
+ ID_OPTIONS_BG "Set the background image"
+ ID_TOGGLE_TAB_SCREENSHOT "Enable the screenshot tab"
+ ID_TOGGLE_TAB_FLYER "Enable the flyer tab"
+ ID_TOGGLE_TAB_CABINET "Enable the cabinet tab"
+ ID_TOGGLE_TAB_MARQUEE "Enable the marquee tab"
+ ID_TOGGLE_TAB_TITLE "Enable the title tab"
+ ID_TOGGLE_TAB_CONTROL_PANEL "Enable the control panel tab"
+ ID_TOGGLE_TAB_PCB "Enable the PCB tab"
+ ID_TOGGLE_TAB_HISTORY "Enable the history tab"
+ ID_VIEW_FULLSCREEN "Toggle Fullscreen mode"
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ ID_CUSTOMIZE_FIELDS "Customize which columns are used in the game list"
+ ID_GAME_PROPERTIES "Display the properties of the selected item"
+ ID_VIEW_PAGETAB "Show or hide the tabs in the picture area"
+ ID_VIEW_FOLDERS "Show or hide the folder list"
+ ID_VIEW_TOOLBARS "Show or hide the toolbar"
+ ID_VIEW_STATUS "Show or hide the status bar"
+ ID_CONTEXT_FILTERS "Allows filtering out games from a folder"
+ ID_CONTEXT_RENAME_CUSTOM "Rename this folder"
+ ID_CONTEXT_ADD_CUSTOM "Add selected item to custom folder"
+ ID_CONTEXT_REMOVE_CUSTOM "Remove selected item from this folder"
+ ID_GAME_AUDIT "Audit the selected item"
+ ID_CONTEXT_SELECT_RANDOM "Randomly select a game."
+ ID_VIEW_TAB_SCREENSHOT "Select Snapshot tab"
+ ID_VIEW_TAB_FLYER "Select Flyer tab"
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ ID_VIEW_BYGAME "Sort items by game description"
+ ID_VIEW_BYDIRECTORY "Sort items by name"
+ ID_VIEW_BYMANUFACTURER "Sort items by manufacturer"
+ ID_VIEW_BYYEAR "Sort items by year"
+ ID_VIEW_BYTYPE "Sort items by type"
+ ID_VIEW_BYTIMESPLAYED "Sort by number of plays"
+ ID_VIEW_LINEUPICONS "Arranges icons in a grid"
+ ID_UPDATE_GAMELIST "Refresh game list"
+ ID_SORT_ASCENDING "Sort column in ascending (A-Z) order"
+ ID_SORT_DESCENDING "Sort column in descending (Z-A) order"
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ ID_FOLDER_SOURCEPROPERTIES
+ "Display properties for all games in this source file"
+ ID_FOLDER_VECTORPROPERTIES "Display properties for all vector based games"
+ ID_OPTIONS_HISTORY "Set the History file to use"
+ ID_OPTIONS_MAMEINFO "Set the Mameinfo file to use"
+END
+
+#endif // English (USA) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+#include "hbmamevers.rc" // Version block
+
+
+/////////////////////////////////////////////////////////////////////////////
+#endif // not APSTUDIO_INVOKED
+
diff --git a/src/osd/winui/help.cpp b/src/osd/winui/help.cpp
new file mode 100644
index 00000000000..971c369bd86
--- /dev/null
+++ b/src/osd/winui/help.cpp
@@ -0,0 +1,107 @@
+// For licensing and usage information, read docs/winui_license.txt
+//****************************************************************************
+
+/***************************************************************************
+
+ help.c
+
+ Help wrapper code.
+
+***************************************************************************/
+
+// standard windows headers
+#include <windows.h>
+
+// MAME/MAMEUI headers
+#include "help.h"
+
+typedef HWND (WINAPI *HtmlHelpProc)(HWND hwndCaller, LPCSTR pszFile, UINT uCommand, DWORD_PTR dwData);
+
+/***************************************************************************
+ Internal structures
+***************************************************************************/
+
+/***************************************************************************
+ function prototypes
+***************************************************************************/
+
+static void Help_Load(void);
+
+/***************************************************************************
+ External function prototypes
+***************************************************************************/
+
+/***************************************************************************
+ External variables
+***************************************************************************/
+
+/***************************************************************************
+ Internal variables
+***************************************************************************/
+
+static HtmlHelpProc g_pHtmlHelp;
+static HMODULE g_hHelpLib;
+static DWORD g_dwCookie = 0;
+
+/**************************************************************************
+ External functions
+***************************************************************************/
+
+int HelpInit(void)
+{
+ g_pHtmlHelp = NULL;
+ g_hHelpLib = NULL;
+
+ g_dwCookie = 0;
+ HelpFunction(NULL, NULL, HH_INITIALIZE, (DWORD_PTR)&g_dwCookie);
+ return 0;
+}
+
+void HelpExit(void)
+{
+ HelpFunction(NULL, NULL, HH_CLOSE_ALL, 0);
+ HelpFunction(NULL, NULL, HH_UNINITIALIZE, (DWORD_PTR)&g_dwCookie);
+
+ g_dwCookie = 0;
+ g_pHtmlHelp = NULL;
+
+ if (g_hHelpLib)
+ {
+ FreeLibrary(g_hHelpLib);
+ g_hHelpLib = NULL;
+ }
+}
+
+HWND HelpFunction(HWND hwndCaller, LPCSTR pszFile, UINT uCommand, DWORD_PTR dwData)
+{
+ if (g_pHtmlHelp == NULL)
+ Help_Load();
+
+ if (g_pHtmlHelp)
+ return g_pHtmlHelp(hwndCaller, pszFile, uCommand, dwData);
+ else
+ return NULL;
+}
+
+/***************************************************************************
+ Internal functions
+***************************************************************************/
+
+static void Help_Load(void)
+{
+ g_hHelpLib = LoadLibrary(TEXT("hhctrl.ocx"));
+ if (g_hHelpLib)
+ {
+ FARPROC pProc = NULL;
+ pProc = GetProcAddress(g_hHelpLib, "HtmlHelpA");
+ if (pProc)
+ {
+ g_pHtmlHelp = (HtmlHelpProc)pProc;
+ }
+ else
+ {
+ FreeLibrary(g_hHelpLib);
+ g_hHelpLib = NULL;
+ }
+ }
+}
diff --git a/src/osd/winui/help.h b/src/osd/winui/help.h
new file mode 100644
index 00000000000..356e62994b7
--- /dev/null
+++ b/src/osd/winui/help.h
@@ -0,0 +1,47 @@
+// For licensing and usage information, read docs/winui_license.txt
+//****************************************************************************
+
+#ifndef HELP_H
+#define HELP_H
+
+#if defined(__GNUC__)
+#define HH_DISPLAY_TOPIC 0
+#define HH_TP_HELP_CONTEXTMENU 16
+#define HH_TP_HELP_WM_HELP 17
+#define HH_CLOSE_ALL 18
+#define HH_INITIALIZE 28
+#define HH_UNINITIALIZE 29
+#else
+#include <htmlhelp.h>
+#endif
+
+typedef struct
+{
+ int nMenuItem;
+ BOOL bIsHtmlHelp;
+ LPCTSTR lpFile;
+} MAMEHELPINFO;
+
+extern const MAMEHELPINFO g_helpInfo[];
+
+#if !defined(MAMEUIHELP)
+#ifdef MESS
+#define MAMEUIHELP "messui.chm"
+#else
+#define MAMEUIHELP "mameui.chm"
+#endif
+#endif
+
+#if !defined(MAMEUICONTEXTHELP)
+#ifdef MESS
+#define MAMEUICONTEXTHELP "messui.chm::/cntx_help.txt"
+#else
+#define MAMEUICONTEXTHELP "mameui.chm::/cntx_help.txt"
+#endif
+#endif
+
+extern int HelpInit(void);
+extern void HelpExit(void);
+extern HWND HelpFunction(HWND hwndCaller, LPCSTR pszFile, UINT uCommand, DWORD_PTR dwData);
+
+#endif
diff --git a/src/osd/winui/help/cntx_help.txt b/src/osd/winui/help/cntx_help.txt
new file mode 100644
index 00000000000..61e8b1db51f
--- /dev/null
+++ b/src/osd/winui/help/cntx_help.txt
@@ -0,0 +1,220 @@
+.topic HIDC_ADSTICK
+Selects appropriate host controller for emulated controls.
+.topic HIDC_ANTIALIAS
+Enables anti-aliasing of vector lines providing a smoother look.
+.topic HIDC_ARTWORK_CROP
+Enables cropping external artwork down to selected window or resolution
+.topic HIDC_ASPECT
+Enables manual override of MameUI's 4:3 or 3:4 aspect ratio calculation. Rarely used.
+.topic HIDC_ASPECTRATIOD
+Enables manual override of MameUI's 4:3 or 3:4 aspect ratio calculation. Rarely used.
+.topic HIDC_ASPECTRATION
+Enables manual override of MameUI's 4:3 or 3:4 aspect ratio calculation. Rarely used.
+.topic HIDC_AUDIO_LATENCY
+Selects the level of audio latency, adjusting this can often eliminate desync of the sound and associated scratchiness.
+.topic HIDC_AUTOFRAMESKIP
+Enables automatic frame skipping during emulation attempting to keep at 100%.
+.topic HIDC_BACKDROPS
+Enables the backdrops of artwork in supported games.
+.topic HIDC_BEAM
+Selects the width of the vector lines in vector games.
+.topic HIDC_BEZELS
+Enables the bezel artwork in supported games.
+.topic HIDC_BIOS
+Selects a particular BIOS in a driver family or individual games e.g. NeoGeo.
+.topic HIDC_BRIGHTCORRECT
+Selects the brightness level of the screen [but not artwork or UI].
+.topic HIDC_BROADCAST
+Enables programmatically broadcasting the game being played to attached devices.
+.topic HIDC_CHEAT
+Enables cheat capability using the in-game [tab] menu.
+.topic HIDC_COINLOCKOUT
+Enables arcade operator coin lockout behaviour.
+.topic HIDC_CONTRAST
+Selects the contrast level of the screen [but not artwork or UI].
+.topic HIDC_CYCLETIMESEC
+.topic HIDC_D3D_FILTER
+Enables bilinear filtering during image stretch.
+.topic HIDC_D3D_VERSION
+Selects the version of Direct3D to use, 9 by default.
+.topic HIDC_DEBUG
+.topic HIDC_DEFAULT_INPUT
+Selects .\ctrlr\*.cfg files to use for custom controller mappings.
+.topic HIDC_DIAL
+Selects appropriate host controller for emulated controls.
+.topic HIDC_DUAL_LIGHTGUN
+Enables support for dual light guns.
+.topic HIDC_ENABLE_AUTOSAVE
+Enables MameUI to use the contents of the \sav directory to restart a game at last quit.
+.topic HIDC_FILTER_CLONES
+Enables filtering out clones, leaving only parent games showing.
+.topic HIDC_FILTER_EDIT
+Allows typing in text to filter, including: gamename, description, driver, and manufacturer.
+.topic HIDC_FILTER_HORIZONTAL
+Enables filtering out horizontal games, leaving only vertical games showing.
+.topic HIDC_FILTER_NONWORKING
+Enables filtering out non-working games, leaving only working games showing.
+.topic HIDC_FILTER_ORIGINALS
+Enables filtering out parent games, leaving only clones showing.
+.topic HIDC_FILTER_RASTER
+Enables filtering out raster games, leaving only vector games showing.
+.topic HIDC_FILTER_UNAVAILABLE
+Enables filtering out unavailable games, leaving only available games showing.
+.topic HIDC_FILTER_VECTOR
+Enables filtering out vector games, leaving only raster games showing.
+.topic HIDC_FILTER_VERTICAL
+Enables filtering out vertical games, leaving only horizontal games showing.
+.topic HIDC_FILTER_WORKING
+Enables filtering out working games, leaving only non-working games showing.
+.topic HIDC_FLICKER
+Selects the flicker level for vector lines.
+.topic HIDC_FLIPX
+Enables flipping the screen horizontally.
+.topic HIDC_FLIPY
+Enables flipping the screen vertically.
+.topic HIDC_FRAMESKIP
+Selects the number of frames skipped during emulation.
+.topic HIDC_FSBRIGHTNESS
+Selects the level of the full-screen brightness including artwork and UI.
+.topic HIDC_FSCONTRAST
+Selects the level of the full-screen contrast including artwork and UI.
+.topic HIDC_FSGAMMA
+Selects the level of the full-screen gamma including artwork and UI.
+.topic HIDC_GAME_CAPTION
+Attempts to remove the titlebar from a windowed game.
+.topic HIDC_GAMMA
+Selects the gamma level of the screen [but not artwork or UI].
+.topic HIDC_HIDE_MOUSE
+Enables hiding the mouse cursor on launch, useful for fullscreen UI w/ keyboard controlled cabinets, etc.
+.topic HIDC_HIGH_PRIORITY
+Selects MameUI's thread priority, default is 0. Running at real-time 1 is not recommended for potential control lag and sound desync.
+.topic HIDC_HISTORY
+Enables display of the history.dat file if present in the root directory.
+.topic HIDC_HWSTRETCH
+Enables hardware stretch for DirectDraw.
+.topic HIDC_JDZ
+Selects the level for an analogue joystick's deadzone.
+.topic HIDC_JOY_GUI
+Enables controlling the MameUI GUI with a gamepad.
+.topic HIDC_JOYSTICK
+Enables gamepad control within games.
+.topic HIDC_JSAT
+Selects the level for an analogue joystick's saturation.
+.topic HIDC_KEEPASPECT
+Enables creating windows for games that are way out of proportion e.g. thick, or tall.
+.topic HIDC_LANGUAGECHECK
+.topic HIDC_LANGUAGEEDIT
+.topic HIDC_LIGHTGUN
+Enables lightgun devices.
+.topic HIDC_LIGHTGUNDEVICE
+Selects appropriate host controller for emulated controls.
+.topic HIDC_LOG
+Enables programmatic logging as a game is played, saved out to file.
+.topic HIDC_MAXIMIZE
+Enables maximizing the game window or creating a very small window.
+.topic HIDC_MOUSE
+Enables mouse support within games.
+.topic HIDC_MULTITHREAD_RENDERING
+Enables handing off the final video blit to a second thread. Still experimental [.118] and may cause issues.
+.topic HIDC_NUMSCREENS
+Selects number of screens for MameUI to produce, windowed or multi-head physical monitors.
+.topic HIDC_OVERLAYS
+Enables art overlays in supported games.
+.topic HIDC_PADDLE
+Selects appropriate host controller for emulated controls.
+.topic HIDC_PAUSEBRIGHT
+Selects level of brightness for screen when paused.
+.topic HIDC_PEDAL
+Selects appropriate host controller for emulated controls.
+.topic HIDC_POSITIONAL
+Selects appropriate host controller for emulated controls.
+.topic HIDC_PRESCALE
+Selects level of prescaling, the higher the number, the sharper the stretched filtered image.
+.topic HIDC_PROP_RESET
+Enables resetting recent changes to the open tab.
+.topic HIDC_RANDOM_BG
+Enables random GUI background selection on restart, *.png files in \bkground directory.
+.topic HIDC_REFRESH
+Selects host monitor refresh rate.
+.topic HIDC_REFRESHSPEED
+Enables altering the speed of gameplay to keep the refresh rate lower than the screen.
+.topic HIDC_RELOAD
+Enables reload functionality for second button on lightguns.
+.topic HIDC_RESET_DEFAULT
+Enables resetting of games to default settings.
+.topic HIDC_RESET_EFFECT
+Enables resetting and clearing out the *.png effect chosen.
+.topic HIDC_RESET_FILTERS
+Enables resetting and clearing filters applied to folders.
+.topic HIDC_RESET_GAMES
+Enables resetting games to use default options.
+.topic HIDC_RESET_UI
+Enables resetting the options to fresh MameUI install settings.
+.topic HIDC_ROTATE
+Selects rotation setting for game display. Use the Auto options for pivot LCDs.
+.topic HIDC_SAMPLERATE
+Selects the output samplerate for games.
+.topic HIDC_SAMPLES
+Enables the use of external samples.
+.topic HIDC_SCREEN
+Selects screenX depends on the number of screens setting. Allows different settings for each screen.
+.topic HIDC_SCREENSELECT
+Selects the physical monitor to display window or full-screen multi-head output.
+.topic HIDC_SELECT_EFFECT
+Selects a *.png file in the \artwork directory for creating monitor-like effects.
+.topic HIDC_SIZES
+Selects from DirectX interrogated resolutions.
+.topic HIDC_SKIP_GAME_INFO
+Enables skipping game info screen when games started.
+.topic HIDC_SPEED
+Selects the speed of gameplay, relative to realtime; smaller numbers are slower.
+.topic HIDC_SLEEP
+Enables giving more timeslices back to the system, allowing MameUI to 'play nicer' with other apps.
+.topic HIDC_START_GAME_CHECK
+Enables running a mini-audit on application launch.
+.topic HIDC_STEADYKEY
+Enables the steadykey hack.
+.topic HIDC_STRETCH_SCREENSHOT_LARGER
+Enables increasing the size of the art pane items if the window is expanded.
+.topic HIDC_SWITCHRES
+Enables the switching of resolutions in fullscreen gaming.
+.topic HIDC_SYNCREFRESH
+Enables syncing the game internal speed to the host monitor.
+.topic HIDC_THROTTLE
+Enables throttling games to run at 100%.
+.topic HIDC_TRACKBALL
+Selects appropriate host controller for emulated controls.
+.topic HIDC_TRIPLE_BUFFER
+Enables the use of triple buffering during fullscreen gaming.
+.topic HIDC_USE_DEFAULT
+Enables reseting to default.
+.topic HIDC_USE_MOUSE
+Selects appropriate host controller for emulated controls.
+.topic HIDC_USE_SOUND
+Enables sound within games.
+.topic HIDC_VIDEO_MODE
+Selects the default rendering method.
+.topic HIDC_VIEW
+Selects the view in use in games.
+.topic HIDC_VOLUME
+Selects the volume level in games.
+.topic HIDC_WAITVSYNC
+Enables waiting for vertical sync.
+.topic HIDC_WINDOWED
+Enables running games in a window.
+.topic HIDC_HLSL_ALPHA
+Adjusts the alpha.
+.topic HIDC_HLSL_CURV
+Adjusts the curvature.
+.topic HIDC_HLSL_SAT
+Adjusts the saturation.
+.topic HIDC_HLSL_SHADOW
+Adjusts the effect of the shadowmask on the picture.
+.topic HIDC_HLSL_PIN
+Adjusts the pincushion distortion.
+.topic HIDC_HLSL_FLOOR
+.topic HIDC_HLSL_SCALE
+.topic HIDC_HLSL_POWER
+.topic HIDC_HLSL_PLIFE
+.topic HIDC_HLSL_ON
+Enables HLSL video enhancements.
diff --git a/src/osd/winui/help/docs/Command Line Settings.htm b/src/osd/winui/help/docs/Command Line Settings.htm
new file mode 100644
index 00000000000..8752595f429
--- /dev/null
+++ b/src/osd/winui/help/docs/Command Line Settings.htm
@@ -0,0 +1,1377 @@
+
+<head>
+<style type="text/css">
+.style1 {
+ font-family: Arial, Helvetica, sans-serif;
+}
+.style2 {
+ font-size: x-small;
+}
+</style>
+</head>
+
+<body style="background-image: url('../images/bkground.gif')">
+
+<span class="style1"><span class="style2"><strong>This file describes general usage
+information about MAME. It is intended<br>
+to cover aspects of using and configuring the program that are common<br>
+across operating systems. For additional OS-specific options, please see<br>
+the separate documentation for your particular version of MAME.</strong></strong><br>
+<br>
+<br>
+Using the program<br>
+-----------------<br>
+<br>
+The usual way to run MAME is by telling it to run a particular game:<br>
+<br>
+mame &lt;gamename&gt; [options]<br>
+<br>
+For example:<br>
+<br>
+mame robby -nosound<br>
+<br>
+...will run Robby Roto without sound. There are many, many options<br>
+available. All commonly supported options are listed below. Options that<br>
+are specific to one operating system or version of MAME will be listed<br>
+in a separate document.<br>
+<br>
+An alternative way to run MAME is to give it a command:<br>
+<br>
+mame &lt;command&gt; [parameters]<br>
+<br>
+For example:<br>
+<br>
+mame -listsource gridlee<br>
+<br>
+...will print the name of the source file where the gridlee driver lives<br>
+to the screen. There are just a handful of these commands in MAME. They<br>
+are all listed below, just before the options list.<br>
+<br>
+<br>
+<br>
+Default Keys<br>
+------------<br>
+<br>
+All the keys below are fully configurable in the user interface. This list<br>
+shows the standard keyboard configuration.<br>
+<br>
+Tab Toggles the configuration menu.<br>
+<br>
+~ Toggles the On Screen Display. When the on-screen display is<br>
+visible, you can use the following keys to control it:<br>
+<br>
+Up - select previous parameter to modify<br>
+Down - select next parameter to modify<br>
+Enter - reset parameter value to its default<br>
+<br>
+Left - decrease the value of the selected parameter<br>
+Control+Left - decrease the value by 10x<br>
+Shift+Left - decrease the value by 0.1x<br>
+Alt+Left - decrease the value by the smallest amount<br>
+<br>
+Right - increase the value of the selected parameter<br>
+Control+Right - increase the value by 10x<br>
+Shift+Right - increase the value by 0.1x<br>
+Alt+Right - increase the value by the smallest amount<br>
+<br>
+P Pauses the game.<br>
+<br>
+Shift+P While paused, advances to next frame.<br>
+<br>
+F2 Service Mode for games that support it.<br>
+<br>
+F3 Resets the game.<br>
+<br>
+Shift+F3 Performs a &quot;hard reset&quot;, which tears everything down and re-<br>
+creates it from scratch. This is a more thorough and complete<br>
+reset than an F3.<br>
+<br>
+F4 Shows the game palette, decoded GFX, and any tilemaps. Use the<br>
+Enter key to switch between the three modes (palette, graphics,<br>
+and tilemaps). Press F4 again to turn off the display. The key<br>
+controls in each mode vary slightly:<br>
+<br>
+* Palette/colortable mode:<br>
+[ ] - switch between palette and colortable modes<br>
+Up/Down - scroll up/down one line at a time<br>
+Page Up/Page Down - scroll up/down one page at a time<br>
+Home/End - move to top/bottom of list<br>
+-/+ - increase/decrease the number of colors per row<br>
+Enter - switch to graphics viewer<br>
+<br>
+* Graphics mode:<br>
+[ ] - switch between different graphics sets<br>
+Up/Down - scroll up/down one line at a time<br>
+Page Up/Page Down - scroll up/down one page at a time<br>
+Home/End - move to top/bottom of list<br>
+Left/Right - change color displayed<br>
+R - rotate tiles 90 degrees clockwise<br>
+-/+ - increase/decrease the number of tiles per row<br>
+Enter - switch to tilemap viewer<br>
+<br>
+* Tilemap mode:<br>
+[ ] - switch between different tilemaps<br>
+Up/Down/Left/Right - scroll 8 pixels at a time<br>
+Shift+Up/Down/Left/Right - scroll 1 pixel at a time<br>
+Control+Up/Down/Left/Right - scroll 64 pixels at a time<br>
+R - rotate tilemap view 90 degrees clockwise<br>
+-/+ - increase/decrease the zoom factor<br>
+Enter - switch to palette/colortable mode<br>
+<br>
+Note: Not all games have decoded graphics and/or tilemaps.<br>
+<br>
+F6 Toggle cheat mode (if started with &quot;-cheat&quot;).<br>
+<br>
+F7 Load a save state. You will be requested to press a key to<br>
+determine which save state you wish to load. Note that the save<br>
+state feature is not supported for a large number of drivers. If<br>
+support is not enabled for a given driver, you will receive a<br>
+warning when attempting to save or load.<br>
+<br>
+Shift+F7 Create a save state. Requires an additional keypress to identify<br>
+the state, similar to the load option above.<br>
+<br>
+F8 Decrease frame skip on the fly.<br>
+<br>
+F9 Increase frame skip on the fly.<br>
+<br>
+F10 Toggle speed throttling.<br>
+<br>
+F11 Toggles speed display.<br>
+<br>
+Shift+F11 Toggles internal profiler display (if compiled in).<br>
+<br>
+F12 Saves a screen snapshot.<br>
+<br>
+Insert Fast forward. While held, runs the game with throttling disabled<br>
+and with the maximum frameskip.<br>
+<br>
+Escape Exits emulator.<br>
+<br>
+<br>
+<br>
+<br>
+Core commands<br>
+-------------<br>
+<br>
+-help / -h / -?<br>
+<br>
+Displays current MAME version and copyright notice.<br>
+<br>
+-validate / -valid<br>
+<br>
+Performs internal validation on every driver in the system. Run this<br>
+before submitting changes to ensure that you haven't violated any of<br>
+the core system rules.<br>
+<br>
+<br>
+<br>
+Configuration commands<br>
+----------------------<br>
+<br>
+-createconfig / -cc<br>
+<br>
+Creates the default mame.ini file. All the configuration options<br>
+(not commands) described below can be permanently changed by editing<br>
+this configuration file.<br>
+<br>
+-showconfig / -sc<br>
+<br>
+Displays the current configuration settings. If you route this to a<br>
+file, you can use it as an INI file. For example, the command:<br>
+<br>
+mame -showconfig &gt;mame.ini<br>
+<br>
+is equivalent to -createconfig.<br>
+<br>
+-showusage / -su<br>
+<br>
+Displays a summary of all the command line options. For options that<br>
+are not mentioned here, the short summary given by &quot;mame -showusage&quot;<br>
+is usually sufficient.<br>
+<br>
+<br>
+<br>
+Frontend commands<br>
+-----------------<br>
+<br>
+Note: By default, all the '-list' commands below write info to the screen.<br>
+If you wish to write the info to a textfile instead, add this to the end<br>
+of your command:<br>
+<br>
+&gt; filename<br>
+<br>
+...where 'filename' is the textfile's path and name<br>
+(e.g., c:\mame\list.txt).<br>
+<br>
+-listxml / -lx [&lt;gamename|wildcard&gt;]<br>
+<br>
+List comprehensive details for all of the supported games. The output<br>
+is quite long, so it is usually better to redirect this into a file.<br>
+The output is in XML format. By default all games are listed; however,<br>
+you can limit this list by specifying a driver name or wildcard after<br>
+the -listxml command.<br>
+<br>
+-listfull / -ll [&lt;gamename|wildcard&gt;]<br>
+<br>
+Displays a list of game driver names and descriptions. By default all<br>
+games are listed; however, you can limit this list by specifying a<br>
+driver name or wildcard after the -listfull command.<br>
+<br>
+-listsource / -ls [&lt;gamename|wildcard&gt;]<br>
+<br>
+Displays a list of drivers and the names of the source files their<br>
+game drivers live in. Useful for finding which driver a game runs on<br>
+in order to fix bugs. By default all games are listed; however, you<br>
+can limit this list by specifying a driver name or wildcard after<br>
+the -listsource command.<br>
+<br>
+-listclones / -lc [&lt;gamename|wildcard&gt;]<br>
+<br>
+Displays a list of clones. By default all clones are listed; however,<br>
+you can limit this list by specifying a driver name or wildcard after<br>
+the -listsource command.<br>
+<br>
+-listcrc<br>
+<br>
+Displays a full list of CRCs of all ROM images referenced by all<br>
+drivers within MAME.<br>
+<br>
+-listroms &lt;gamename&gt;<br>
+<br>
+Displays a list of ROM images referenced by the specified game.<br>
+<br>
+-listsamples &lt;gamename&gt;<br>
+<br>
+Displays a list of samples referenced by the specified game.<br>
+<br>
+-verifyroms [&lt;gamename|wildcard&gt;]<br>
+<br>
+Checks for invalid or missing ROM images. By default all drivers that<br>
+have valid ZIP files or directories in the rompath are verified;<br>
+however, you can limit this list by specifying a driver name or<br>
+wildcard after the -verifyroms command.<br>
+<br>
+-verifysamples [&lt;gamename|wildcard&gt;]<br>
+<br>
+Checks for invalid or missing samples. By default all drivers that<br>
+have valid ZIP files or directories in the samplepath are verified;<br>
+however, you can limit this list by specifying a driver name or<br>
+wildcard after the -verifyroms command.<br>
+<br>
+-romident<br>
+<br>
+Attempts to identify ROM files, if they are known to MAME, in the<br>
+specified .zip file or directory. This command can be used to try and<br>
+identify ROM sets taken from unknown boards. On exit, the errorlevel<br>
+is returned as one of the following:<br>
+<br>
+0: means all files were identified<br>
+7: means all files were identified except for 1 or more &quot;non-ROM&quot;<br>
+files<br>
+8: means some files were identified<br>
+9: means no files were identified<br>
+<br>
+<br>
+<br>
+Configuration options<br>
+---------------------<br>
+<br>
+-[no]readconfig / -[no]rc<br>
+<br>
+Enables or disables the reading of the config files. When enabled<br>
+(which is the default), MAME reads the following config files in order:<br>
+<br>
+- mame.ini<br>
+- &lt;mymame&gt;.ini (i.e. if MAME was renamed mame060.exe, MAME<br>
+parses mame060.ini here)<br>
+- debug.ini (if the debugger is enabled)<br>
+- vector.ini (for vector games only)<br>
+- &lt;driver&gt;.ini (based on the source filename of the driver)<br>
+- &lt;parent&gt;.ini (for clones only, may be called recursively)<br>
+- &lt;gamename&gt;.ini<br>
+<br>
+The settings in the later ini's override those in the earlier ini's.<br>
+So, for example, if you wanted to disable overlay effects in the<br>
+vector games, you can create a vector.ini with the &quot;effect none&quot; line<br>
+in it, and it will override whatever effect value you have in your<br>
+mame.ini. The default is ON (-readconfig).<br>
+<br>
+<br>
+<br>
+Core search path options<br>
+------------------------<br>
+<br>
+-rompath / -rp &lt;path&gt;<br>
+<br>
+Specifies a list of paths within which to find ROM or hard disk images.<br>
+Multiple paths can be specified by separating them with semicolons.<br>
+The default is 'roms' (that is, a directory &quot;roms&quot; in the same directory<br>
+as the MAME executable).<br>
+<br>
+-samplepath / -sp &lt;path&gt;<br>
+<br>
+Specifies a list of paths within which to find sample files. Multiple<br>
+paths can be specified by separating them with semicolons. The default<br>
+is 'samples' (that is, a directory &quot;samples&quot; in the same directory as<br>
+the MAME executable).<br>
+<br>
+-artpath / -artwork_directory &lt;path&gt;<br>
+<br>
+Specifies a list of paths within which to find artwork files. Multiple<br>
+paths can be specified by separating them with semicolons. The default<br>
+is 'artwork' (that is, a directory &quot;artwork&quot; in the same directory as<br>
+the MAME executable).<br>
+<br>
+-ctrlrpath / -ctrlr_directory &lt;path&gt;<br>
+<br>
+Specifies a list of paths within which to find controller-specific<br>
+configuration files. Multiple paths can be specified by separating<br>
+them with semicolons. The default is 'ctrlr' (that is, a directory<br>
+&quot;ctrlr&quot; in the same directory as the MAME executable).<br>
+<br>
+-inipath &lt;path&gt;<br>
+<br>
+Specifies a list of paths within which to find .INI files. Multiple<br>
+paths can be specified by separating them with semicolons. The default<br>
+is '.;ini' (that is, search in the current directory first, and then<br>
+in the directory &quot;ini&quot; in the same directory as the MAME executable).<br>
+<br>
+-fontpath &lt;path&gt;<br>
+<br>
+Specifies a list of paths within which to find .BDF font files. Multiple<br>
+paths can be specified by separating them with semicolons. The default<br>
+is '.' (that is, search in the same directory as the MAME executable).<br>
+<br>
+-crosshairpath &lt;path&gt;<br>
+<br>
+Specifies a list of paths within which to find crosshair files. Multiple<br>
+paths can be specified by separating them with semicolons. The default<br>
+is 'crsshair' (that is, a directory &quot;crsshair&quot; in the same directory as<br>
+the MAME executable). If the Crosshair is set to default in the menu,<br>
+MAME will look for gamename\cross#.png and then cross#.png in the<br>
+specified crsshairpath, where # is the player number. Failing that,<br>
+MAME will use built-in default crosshairs.<br>
+<br>
+<br>
+Core Output Directory Options<br>
+-----------------------------<br>
+<br>
+-cfg_directory &lt;path&gt;<br>
+<br>
+Specifies a single directory where configuration files are stored.<br>
+Configuration files store user configurable settings that are read at<br>
+startup and written when MAME exits. The default is 'cfg' (that is,<br>
+a directory &quot;cfg&quot; in the same directory as the MAME executable). If<br>
+this directory does not exist, it will be automatically created.<br>
+<br>
+-nvram_directory &lt;path&gt;<br>
+<br>
+Specifies a single directory where NVRAM files are stored. NVRAM files<br>
+store the contents of EEPROM and non-volatile RAM (NVRAM) for games<br>
+which used this type of hardware. This data is read at startup and<br>
+written when MAME exits. The default is 'nvram' (that is, a directory<br>
+&quot;nvram&quot; in the same directory as the MAME executable). If this<br>
+directory does not exist, it will be automatically created.<br>
+<br>
+-memcard_directory &lt;path&gt;<br>
+<br>
+Specifies a single directory where memory card files are stored.<br>
+Memory card files store the contents of removable memory cards for<br>
+games which used this type of hardware. This data is read and written<br>
+under control of the user via the &quot;Memory Card&quot; menu in the user<br>
+interface. The default is 'memcard' (that is, a directory &quot;memcard&quot;<br>
+in the same directory as the MAME executable). If this directory does<br>
+not exist, it will be automatically created.<br>
+<br>
+-input_directory &lt;path&gt;<br>
+<br>
+Specifies a single directory where input recording files are stored.<br>
+Input recordings are created via the -record option and played back<br>
+via the -playback option. The default is 'inp' (that is, a directory<br>
+&quot;inp&quot; in the same directory as the MAME executable). If this directory<br>
+does not exist, it will be automatically created.<br>
+<br>
+-state_directory &lt;path&gt;<br>
+<br>
+Specifies a single directory where save state files are stored. Save<br>
+state files are read and written either upon user request, or when<br>
+using the -autosave option. The default is 'sta' (that is, a directory<br>
+&quot;sta&quot; in the same directory as the MAME executable). If this directory<br>
+does not exist, it will be automatically created.<br>
+<br>
+-snapshot_directory &lt;path&gt;<br>
+<br>
+Specifies a single directory where screen snapshots are stored, when<br>
+requested by the user. The default is 'snap' (that is, a directory<br>
+&quot;snap&quot; in the same directory as the MAME executable). If this<br>
+directory does not exist, it will be automatically created.<br>
+<br>
+-diff_directory &lt;path&gt;<br>
+<br>
+Specifies a single directory where hard drive differencing files are<br>
+stored. Hard drive differencing files store any data that is written<br>
+back to a hard disk image, in order to preserve the original image.<br>
+The differencing files are created at startup when a game with a hard<br>
+disk image. The default is 'diff' (that is, a directory &quot;diff&quot; in the<br>
+same directory as the MAME executable). If this directory does not<br>
+exist, it will be automatically created.<br>
+<br>
+-comment_directory &lt;path&gt;<br>
+<br>
+Specifies a single directory where debugger comment files are stored.<br>
+Debugger comment files are written by the debugger when comments are<br>
+added to the disassembly for a game. The default is 'comments' (that<br>
+is, a directory &quot;comments&quot; in the same directory as the MAME<br>
+executable). If this directory does not exist, it will be<br>
+automatically created.<br>
+<br>
+<br>
+<br>
+Core Filename Options<br>
+---------------------<br>
+<br>
+-cheat_file &lt;filename&gt;<br>
+<br>
+Specifies the name of the cheat database file. The default is<br>
+'cheat.dat'.<br>
+<br>
+<br>
+<br>
+Core state/playback options<br>
+---------------------------<br>
+<br>
+-state &lt;slot&gt;<br>
+<br>
+Immediately after starting the specified game, will cause the save<br>
+state in the specified &lt;slot&gt; to be loaded.<br>
+<br>
+-[no]autosave<br>
+<br>
+When enabled, automatically creates a save state file when exiting<br>
+MAME and automatically attempts to reload it when later starting MAME<br>
+with the same game. This only works for games that have explicitly<br>
+enabled save state support in their driver. The default is OFF<br>
+(-noautosave).<br>
+<br>
+-playback / -pb &lt;filename&gt;<br>
+<br>
+Specifies a file from which to play back a series of game inputs. This<br>
+feature does not work reliably for all games, but can be used to watch<br>
+a previously recorded game session from start to finish. In order to<br>
+make things consistent, you should only record and playback with all<br>
+configuration (.cfg), NVRAM (.nv), and memory card files deleted. The<br>
+default is NULL (no playback).<br>
+<br>
+-record / -rec &lt;filename&gt;<br>
+<br>
+Specifies a file to record all input from a game session. This can be<br>
+used to record a game session for later playback. This feature does<br>
+not work reliably for all games, but can be used to watch a previously<br>
+recorded game session from start to finish. In order to make things<br>
+consistent, you should only record and playback with all configuration<br>
+(.cfg), NVRAM (.nv), and memory card files deleted. The default is<br>
+NULL (no recording).<br>
+<br>
+-snapname &lt;name&gt;<br>
+<br>
+Describes how MAME should name files for snapshots. &lt;name&gt; is a string<br>
+that provides a template that is used to generate a filename. Three<br>
+simple substitutions are provided: the / character represents the<br>
+path separator on any target platform (even Windows); the string %g<br>
+represents the driver name of the current game; and the string %i<br>
+represents an incrementing index. If %i is omitted, then each<br>
+snapshot taken will overwrite the previous one; otherwise, MAME will<br>
+find the next empty value for %i and use that for a filename. The<br>
+default is %g/%i, which creates a separate folder for each game,<br>
+and names the snapshots under it starting with 0000 and increasing<br>
+from there.<br>
+<br>
+-snapsize &lt;width&gt;x&lt;height&gt;<br>
+<br>
+Hard-codes the size for snapshots and movie recording. By default,<br>
+MAME will create snapshots at the game's current resolution in raw<br>
+pixels, and will create movies at the game's starting resolution in<br>
+raw pixels. If you specify this option, then MAME will create both<br>
+snapshots and movies at the size specified, and will bilinear filter<br>
+the result. Note that this size does not automatically rotate if the<br>
+game is vertically oriented. The default is 'auto'.<br>
+<br>
+-snapview &lt;viewname&gt;<br>
+<br>
+Specifies the view to use when rendering snapshots and movies. By<br>
+default, both use a special 'internal' view, which renders a separate<br>
+snapshot per screen or renders movies only of the first screen. By<br>
+specifying this option, you can override this default behavior and<br>
+select a single view that will apply to all snapshots and movies.<br>
+Note that &lt;viewname&gt; does not need to be a perfect match; rather, it<br>
+will select the first view whose name matches all the characters<br>
+specified by &lt;viewname&gt;. For example, -snapview native will match the<br>
+&quot;Native (15:14)&quot; view even though it is not a perfect match.<br>
+&lt;viewname&gt; can also be 'auto', which selects the first view with all<br>
+screens present. The default value is 'internal'.<br>
+<br>
+-mngwrite &lt;filename&gt;<br>
+<br>
+Writes each video frame to the given &lt;filename&gt; in MNG format,<br>
+producing an animation of the game session. Note that -mngwrite only<br>
+writes video frames; it does not save any audio data. Use -wavwrite<br>
+for that, and reassemble the audio/video using offline tools. The<br>
+default is NULL (no recording).<br>
+<br>
+-aviwrite &lt;filename&gt;<br>
+<br>
+Stream video and sound data to the given &lt;filename&gt; in AVI format,<br>
+producing an animation of the game session complete with sound. The<br>
+default is NULL (no recording).<br>
+<br>
+-wavwrite &lt;filename&gt;<br>
+<br>
+Writes the final mixer output to the given &lt;filename&gt; in WAV format,<br>
+producing an audio recording of the game session. The default is<br>
+NULL (no recording).<br>
+<br>
+-[no]burnin<br>
+<br>
+Tracks brightness of the screen during play and at the end of <br>
+emulation generates a PNG that can be used to simulate burn-in<br>
+effects on other games. The resulting PNG is created such that the<br>
+least used-areas of the screen are fully white (since burned-in areas <br>
+are darker, all other areas of the screen must be lightened a touch).<br>
+The intention is that this PNG can be loaded via an artwork file with<br>
+a low alpha (e.g, 0.1-0.2 seems to work well) and blended over the<br>
+entire screen. The PNG files are saved in the snap directory under <br>
+the gamename/burnin-&lt;screen.name&gt;.png. The default is OFF (-noburnin).<br>
+<br>
+<br>
+<br>
+Core performance options<br>
+------------------------<br>
+<br>
+-[no]autoframeskip / -[no]afs<br>
+<br>
+Automatically determines the frameskip level while you're playing the<br>
+game, adjusting it constantly in a frantic attempt to keep the game<br>
+running at full speed. Turning this on overrides the value you have<br>
+set for -frameskip below. The default is OFF (-noautoframeskip).<br>
+<br>
+-frameskip / -fs &lt;level&gt;<br>
+<br>
+Specifies the frameskip value. This is the number of frames out of<br>
+every 12 to drop when running. For example, if you say -frameskip 2,<br>
+then MAME will display 10 out of every 12 frames. By skipping those<br>
+frames, you may be able to get full speed in a game that requires more<br>
+horsepower than your computer has. The default value is -frameskip 0,<br>
+which skips no frames.<br>
+<br>
+-seconds_to_run / -str &lt;seconds&gt;<br>
+<br>
+This option can be used for benchmarking and automated testing. It tells<br>
+MAME to stop execution after a fixed number of seconds. By combining<br>
+this with a fixed set of other command line options, you can set up a<br>
+consistent environment for benchmarking MAME performance. In addition,<br>
+upon exit, the -str option will write a screenshot called final.png<br>
+to the game's snapshot directory.<br>
+<br>
+-[no]throttle<br>
+<br>
+Configures the default thottling setting. When throttling is on, MAME<br>
+attempts to keep the game running at the game's intended speed. When<br>
+throttling is off, MAME runs the game as fast as it can. Note that the<br>
+fastest speed is more often than not limited by your graphics card,<br>
+especially for older games. The default is ON (-throttle).<br>
+<br>
+-[no]sleep<br>
+<br>
+Allows MAME to give time back to the system when running with -throttle.<br>
+This allows other programs to have some CPU time, assuming that the<br>
+game isn't taxing 100% of your CPU resources. This option can<br>
+potentially cause hiccups in performance if other demanding programs<br>
+are running. The default is ON (-sleep).<br>
+<br>
+-speed &lt;factor&gt;<br>
+<br>
+Changes the way MAME throttles gameplay such that the game runs at some<br>
+multiplier of the original speed. A &lt;factor&gt; of 1.0 means to run the<br>
+game at its normal speed. A &lt;factor&gt; of 0.5 means run at half speed,<br>
+and a &lt;factor&gt; of 2.0 means run at 2x speed. Note that changing this<br>
+value affects sound playback as well, which will scale in pitch<br>
+accordingly. The internal resolution of the fraction is two decimal<br>
+places, so a value of 1.002 is the same as 1.0. The default is 1.0.<br>
+<br>
+-[no]refreshspeed / -[no]rs<br>
+<br>
+Allows MAME to dynamically adjust the gameplay speed such that it does<br>
+not exceed the slowest refresh rate for any targeted monitors in your<br>
+system. Thus, if you have a 60Hz monitor and run a game that is<br>
+actually designed to run at 60.6Hz, MAME will dynamically change the<br>
+speed down to 99% in order to prevent sound hiccups or other<br>
+undesirable side effects of running at a slower refresh rate. The<br>
+default is OFF (-norefreshspeed).<br>
+<br>
+<br>
+<br>
+Core rotation options<br>
+---------------------<br>
+<br>
+-[no]rotate<br>
+<br>
+Rotate the game to match its normal state (horizontal/vertical). This<br>
+ensures that both vertically and horizontally oriented games show up<br>
+correctly without the need to rotate your monitor. If you want to keep<br>
+the game displaying 'raw' on the screen the way it would have in the<br>
+arcade, turn this option OFF. The default is ON (-rotate).<br>
+<br>
+-[no]ror<br>
+-[no]rol<br>
+<br>
+Rotate the game screen to the right (clockwise) or left (counter-<br>
+clockwise) relative to either its normal state (if -rotate is<br>
+specified) or its native state (if -norotate is specified). The<br>
+default for both of these options is OFF (-noror -norol).<br>
+<br>
+-[no]flipx<br>
+-[no]flipy<br>
+<br>
+Flip (mirror) the game screen either horizontally (-flipx) or<br>
+vertically (-flipy). The flips are applied after the -rotate and<br>
+-ror/-rol options are applied. The default for both of these options<br>
+is OFF (-noflipx -noflipy).<br>
+<br>
+-[no]autoror<br>
+-[no]autorol<br>
+<br>
+These options are designed for use with pivoting screens that only<br>
+pivot in a single direction. If your screen only pivots clockwise,<br>
+use -autorol to ensure that the game will fill the screen either<br>
+horizontally or vertically in one of the directions you can handle.<br>
+If your screen only pivots counter-clockwise, use -autoror.<br>
+<br>
+<br>
+<br>
+Core artwork options<br>
+--------------------<br>
+<br>
+-[no]artwork_crop / -[no]artcrop<br>
+<br>
+Enable cropping of artwork to the game screen area only. This works<br>
+best with -video gdi or -video d3d, and means that vertically oriented<br>
+games running full screen can display their artwork to the left and<br>
+right sides of the screen. This does not work with -video ddraw<br>
+because of the way the game screens are rendered and scaled after the<br>
+fact. This option can also be controlled via the Video Options menu in<br>
+the user interface. The default is OFF (-noartwork_crop).<br>
+<br>
+-[no]use_backdrops / -[no]backdrop<br>
+<br>
+Enables/disables the display of backdrops. The default is ON<br>
+(-use_backdrops).<br>
+<br>
+-[no]use_overlays / -[no]overlay<br>
+<br>
+Enables/disables the display of overlays. The default is ON<br>
+(-use_overlays).<br>
+<br>
+-[no]use_bezels / -[no]bezel<br>
+<br>
+Enables/disables the display of bezels. The default is ON<br>
+(-use_bezels).<br>
+<br>
+<br>
+<br>
+Core screen options<br>
+-------------------<br>
+<br>
+-brightness &lt;value&gt;<br>
+<br>
+Controls the default brightness, or black level, of the game screens.<br>
+This option does not affect the artwork or other parts of the display.<br>
+Using the MAME UI, you can individually set the brightness for each<br>
+game screen; this option controls the initial value for all visible<br>
+game screens. The standard value is 1.0. Selecting lower values (down<br>
+to 0.1) will produce a darkened display, while selecting higher values<br>
+(up to 2.0) will give a brighter display. The default is 1.0.<br>
+<br>
+-contrast &lt;value&gt;<br>
+<br>
+Controls the contrast, or white level, of the game screens. This<br>
+option does not affect the artwork or other parts of the display.<br>
+Using the MAME UI, you can individually set the contrast for each<br>
+game screen; this option controls the initial value for all visible<br>
+game screens. The standard value is 1.0. Selecting lower values (down<br>
+to 0.1) will produce a dimmer display, while selecting higher values<br>
+(up to 2.0) will give a more saturated display. The default is 1.0.<br>
+<br>
+-gamma &lt;value&gt;<br>
+<br>
+Controls the gamma, which produces a potentially nonlinear black to<br>
+white ramp, for the game screens. This option does not affect the<br>
+artwork or other parts of the display. Using the MAME UI, you can<br>
+individually set the gamma for each game screen; this option controls<br>
+the initial value for all visible game screens. The standard value is<br>
+1.0, which gives a linear ramp from black to white. Selecting lower<br>
+values (down to 0.1) will increase the nonlinearity toward black,<br>
+while selecting higher values (up to 3.0) will push the nonlinearity<br>
+toward white. The default is 1.0.<br>
+<br>
+-pause_brightness &lt;value&gt;<br>
+<br>
+This controls the brightness level when MAME is paused. The default<br>
+value is 0.65.<br>
+<br>
+<br>
+<br>
+Core vector options<br>
+-------------------<br>
+<br>
+-[no]antialias / -[no]aa<br>
+<br>
+Enables antialiased line rendering for vector games. The default is ON<br>
+(-antialias).<br>
+<br>
+-beam &lt;width&gt;<br>
+<br>
+Sets the width of the vectors. This is a scaling factor against the<br>
+standard vector width. A value of 1.0 will keep the default vector<br>
+line width. Smaller values will reduce the width, and larger values<br>
+will increase the width. The default is 1.0.<br>
+<br>
+-flicker &lt;value&gt;<br>
+<br>
+Simulates a vector &quot;flicker&quot; effect, similar to a vector monitor that<br>
+needs adjustment. This option requires a float argument in the range<br>
+of 0.00 - 100.00 (0=none, 100=maximum). The default is 0.<br>
+<br>
+<br>
+<br>
+Core sound options<br>
+------------------<br>
+<br>
+-[no]sound<br>
+<br>
+Enable or disable sound altogether. The default is ON (-sound).<br>
+<br>
+-samplerate &lt;value&gt; / -sr &lt;value&gt;<br>
+<br>
+Sets the audio sample rate. Smaller values (e.g. 11025) cause lower<br>
+audio quality but faster emulation speed. Higher values (e.g. 48000)<br>
+cause higher audio quality but slower emulation speed. The default is<br>
+48000.<br>
+<br>
+-[no]samples<br>
+<br>
+Use samples if available. The default is ON (-samples).<br>
+<br>
+-volume / -vol &lt;value&gt;<br>
+<br>
+Sets the startup volume. It can later be changed with the user<br>
+interface (see Keys section). The volume is an attenuation in dB:<br>
+e.g., &quot;-volume -12&quot; will start with -12dB attenuation. The default<br>
+is 0.<br>
+<br>
+<br>
+<br>
+Core input options<br>
+------------------<br>
+<br>
+-[no]coin_lockout / -[no]coinlock<br>
+<br>
+Enables simulation of the &quot;coin lockout&quot; feature that is implmeneted<br>
+on a number of game PCBs. It was up to the operator whether or not<br>
+the coin lockout outputs were actually connected to the coin<br>
+mechanisms. If this feature is enabled, then attempts to enter a coin<br>
+while the lockout is active will fail and will display a popup message<br>
+in the user interface. If this feature is disabled, the coin lockout<br>
+signal will be ignored. The default is ON (-coin_lockout).<br>
+<br>
+-ctrlr &lt;controller&gt;<br>
+<br>
+Enables support for special controllers. Configuration files are<br>
+loaded from the ctrlrpath. They are in the same format as the .cfg<br>
+files that are saved, but only control configuration data is read<br>
+from the file. The default is NULL (no controller file).<br>
+<br>
+-[no]mouse<br>
+<br>
+Controls whether or not MAME makes use of mouse controllers. When<br>
+this is enabled, you will likely be unable to use your mouse for other<br>
+purposes until you exit or pause the game. The default is OFF<br>
+(-nomouse).<br>
+<br>
+-[no]joystick / -[no]joy<br>
+<br>
+Controls whether or not MAME makes use of joystick/gamepad controllers.<br>
+When this is enabled, MAME will ask DirectInput about which<br>
+controllers are connected. The default is OFF (-nojoystick).<br>
+<br>
+-[no]lightgun / -[no]gun<br>
+<br>
+Controls whether or not MAME makes use of lightgun controllers.<br>
+Note that most lightguns map to the mouse, so using -lightgun and<br>
+-mouse together may produce strange results. The default is OFF<br>
+(-nolightgun).<br>
+<br>
+-[no]multikeyboard / -[no]multikey<br>
+<br>
+Determines whether MAME differentiates between multiple keyboards.<br>
+Some systems may report more than one keyboard; by default, the data<br>
+from all of these keyboards is combined so that it looks like a single<br>
+keyboard. Turning this option on will enable MAME to report keypresses<br>
+on different keyboards independently. The default is OFF<br>
+(-nomultikeyboard).<br>
+<br>
+-[no]multimouse<br>
+<br>
+Determines whether MAME differentiates between multiple mice. Some<br>
+systems may report more than one mouse device; by default, the data<br>
+from all of these mice is combined so that it looks like a single<br>
+mouse. Turning this option on will enable MAME to report mouse<br>
+movement and button presses on different mice independently. The<br>
+default is OFF (-nomultimouse).<br>
+<br>
+-[no]steadykey / -[no]steady<br>
+<br>
+Some games require two or more buttons to be pressed at exactly the<br>
+same time to make special moves. Due to limitations in the keyboard<br>
+hardware, it can be difficult or even impossible to accomplish that<br>
+using the standard keyboard handling. This option selects a different<br>
+handling that makes it easier to register simultaneous button presses,<br>
+but has the disadvantage of making controls less responsive. The<br>
+default is OFF (-nosteadykey)<br>
+<br>
+-[no]offscreen_reload / -[no]reload<br>
+<br>
+Controls whether or not MAME treats a second button input from a<br>
+lightgun as a reload signal. In this case, MAME will report the gun's<br>
+position as (0,MAX) with the trigger held, which is equivalent to an<br>
+offscreen reload. This is only needed for games that required you to<br>
+shoot offscreen to reload, and then only if your gun does not support<br>
+off screen reloads. The default is OFF (-nooffscreen_reload).<br>
+<br>
+-joystick_map &lt;map&gt; / -joymap &lt;map&gt;<br>
+<br>
+Controls how joystick values map to digital joystick controls. MAME<br>
+accepts all joystick input from the system as analog data. For true<br>
+analog joysticks, this needs to be mapped down to the usual 4-way or<br>
+8-way digital joystick values. To do this, MAME divides the analog<br>
+range into a 9x9 grid. It then takes the joystick axis position (for<br>
+X and Y axes only), maps it to this grid, and then looks up a<br>
+translation from a joystick map. This parameter allows you to specify<br>
+the map. The default is 'auto', which means that a standard 8-way,<br>
+4-way, or 4-way diagonal map is selected automatically based on the<br>
+input port configuration of the current game.<br>
+<br>
+Maps are defined as a string of numbers and characters. Since the grid<br>
+is 9x9, there are a total of 81 characters necessary to define a<br>
+complete map. Below is an example map for an 8-way joystick:<br>
+<br>
+777888999 Note that the numeric digits correspond to the keys<br>
+777888999 on a numeric keypad. So '7' maps to up+left, '4' maps<br>
+777888999 to left, '5' maps to neutral, etc. In addition to the<br>
+444555666 numeric values, you can specify the character 's',<br>
+444555666 which means &quot;sticky&quot;. In this case, the value of the<br>
+444555666 map is the same as it was the last time a non-sticky<br>
+111222333 value was read.<br>
+111222333<br>
+111222333<br>
+<br>
+To specify the map for this parameter, you can specify a string of<br>
+rows separated by a '.' (which indicates the end of a row), like so:<br>
+<br>
+777888999.777888999.777888999.444555666.444555666.444555666.<br>
+111222333.111222333.111222333<br>
+<br>
+However, this can be reduced using several shorthands supported by the<br>
+&lt;map&gt; parameter. If information about a row is missing, then it is<br>
+assumed that any missing data in columns 5-9 are left/right symmetric<br>
+with data in columns 0-4; and any missing data in colums 0-4 is<br>
+assumed to be copies of the previous data. The same logic applies to<br>
+missing rows, except that up/down symmetry is assumed.<br>
+<br>
+By using these shorthands, the 81 character map can be simply<br>
+specified by this 11 character string: 7778...4445<br>
+<br>
+Looking at the first row, 7778 is only 4 characters long. The 5th<br>
+entry can't use symmetry, so it is assumed to be equal to the previous<br>
+character '8'. The 6th character is left/right symmetric with the 4th<br>
+character, giving an '8'. The 7th character is left/right symmetric<br>
+with the 3rd character, giving a '9' (which is '7' with left/right<br>
+flipped). Eventually this gives the full 777888999 string of the row.<br>
+<br>
+The second and third rows are missing, so they are assumed to be<br>
+identical to the first row. The fourth row decodes similarly to the<br>
+first row, producing 444555666. The fifth row is missing so it is<br>
+assumed to be the same as the fourth.<br>
+<br>
+The remaining three rows are also missing, so they are assumed to be<br>
+the up/down mirrors of the first three rows, giving three final rows<br>
+of 111222333.<br>
+<br>
+-joystick_deadzone &lt;value&gt; / -joy_deadzone &lt;value&gt; / -jdz &lt;value&gt;<br>
+<br>
+If you play with an analog joystick, the center can drift a little.<br>
+joystick_deadzone tells how far along an axis you must move before the<br>
+axis starts to change. This option expects a float in the range of<br>
+0.0 to 1.0. Where 0 is the center of the joystick and 1 is the outer<br>
+limit. The default is 0.3.<br>
+<br>
+-joystick_saturation &lt;value&gt; / joy_saturation &lt;value&gt; / -jsat &lt;value&gt;<br>
+<br>
+If you play with an analog joystick, the ends can drift a little,<br>
+and may not match in the +/- directions. joystick_saturation tells how<br>
+far along an axis movement change will be accepted before it reaches<br>
+the maximum range. This option expects a float in the range of 0.0 to<br>
+1.0, where 0 is the center of the joystick and 1 is the outer limit.<br>
+The default is 0.85.<br>
+<br>
+<br>
+<br>
+Core input automatic enable options<br>
+-----------------------------------<br>
+<br>
+-paddle_device &lt;keyboard|mouse|joystick|lightgun|none&gt; / -paddle<br>
+-adstick_device &lt;keyboard|mouse|joystick|lightgun|none&gt; / -adstick<br>
+-pedal_device &lt;keyboard|mouse|joystick|lightgun|none&gt; / -pedal<br>
+-dial_device &lt;keyboard|mouse|joystick|lightgun|none&gt; / -dial<br>
+-trackball_device &lt;keyboard|mouse|joystick|lightgun|none&gt; / -trackball<br>
+-lightgun_device &lt;keyboard|mouse|joystick|lightgun|none&gt;<br>
+-positional_device &lt;keyboard|mouse|joystick|lightgun|none&gt;<br>
+<br>
+Each of these options controls autoenabling the mouse, joystick, or<br>
+lightgun depending on the presence of a particular class of analog<br>
+control for a particular game. For example, if you specify the option<br>
+-paddle mouse, then any game that has a paddle control will<br>
+automatically enable mouse controls just as if you had explicitly<br>
+specified -mouse. Note that these controls override the values of<br>
+-[no]mouse, -[no]joystick, etc.<br>
+<br>
+<br>
+<br>
+Debugging options<br>
+-----------------<br>
+<br>
+-[no]log<br>
+<br>
+Creates a file called error.log which contains all of the internal<br>
+log messages generated by the MAME core and game drivers. The default<br>
+is OFF (-nolog).<br>
+<br>
+-[no]verbose / -[no]v<br>
+<br>
+Displays internal diagnostic information. This information is very<br>
+useful for debugging problems with your configuration. IMPORTANT: when<br>
+reporting bugs, please run with mame -verbose and include the<br>
+resulting information. The default is OFF (-noverbose).<br>
+<br>
+-[no]update_in_pause<br>
+<br>
+Enables updating of the main screen bitmap while the game is paused.<br>
+This means that the VIDEO_UPDATE callback will be called repeatedly<br>
+during pause, which can be useful for debugging. The default is OFF<br>
+(-noupdate_in_pause).<br>
+<br>
+-[no]debug<br>
+<br>
+Activates the integrated debugger. By default, the debugger is entered<br>
+by pressing the tilde (~) key during emulation. It is also entered<br>
+immediately at startup. The default is OFF (-nodebug).<br>
+<br>
+-debugscript &lt;filename&gt;<br>
+<br>
+Specifies a file that contains a list of debugger commands to execute<br>
+immediately upon startup. The default is NULL (no commands).<br>
+<br>
+<br>
+<br>
+Core misc options<br>
+-----------------<br>
+<br>
+-bios &lt;biosname&gt;<br>
+<br>
+Specifies the specific BIOS to use with the current game, for game<br>
+systems that make use of a BIOS. The -listxml output will list all of<br>
+the possible BIOS names for a game. The default is 'default'.<br>
+<br>
+-[no]cheat / -[no]c<br>
+<br>
+Enables the reading of the cheat database, if present, and the Cheat<br>
+menu in the user interface. The default is OFF (-nocheat).<br>
+<br>
+-[no]skip_gameinfo<br>
+<br>
+Forces MAME to skip displaying the game info screen. The default is<br>
+OFF (-noskip_gameinfo).<br>
+<br>
+</span></span><span class="style2"><strong>This file describes Windows-specific
+usage information about MAME. It is<br>
+intended to cover aspects of using and configuring the program that are<br>
+specific to running MAME from the command line on a Windows-based system.<br>
+For common options that apply to all systems, please see config.txt.</strong><br>
+<br>
+<br>
+<br>
+Default Keys<br>
+------------<br>
+<br>
+In addition to the keys described in config.txt, the following additional<br>
+keys are defined for Windows versions of MAME:<br>
+<br>
+<br>
+Alt+Enter Toggles between full-screen and windowed mode.<br>
+<br>
+<br>
+<br>
+Windows debugging options<br>
+-------------------------<br>
+<br>
+-[no]oslog<br>
+<br>
+Outputs the error.log data to the Windows debugger. This can be used at<br>
+the same time as -log to output the log data to both targets as well.<br>
+Default is OFF (-nooslog).<br>
+<br>
+<br>
+<br>
+Windows performance options<br>
+---------------------------<br>
+<br>
+-priority &lt;priority&gt;<br>
+<br>
+Sets the thread priority for the MAME threads. By default the priority<br>
+is left alone to guarantee proper cooperation with other applications.<br>
+The valid range is -15 to 1, with 1 being the highest priority. The<br>
+default is 0 (NORMAL priority).<br>
+<br>
+-[no]multithreading / -[no]mt<br>
+<br>
+Enables multithreading within MAME. At the moment, this causes the<br>
+window and all DirectDraw/Direct3D code to execute on a second thread,<br>
+which can improve performance on hyperthreaded and multicore systems.<br>
+The default is OFF (-nomultithreading).<br>
+<br>
+-numprocessors &lt;auto|value&gt;<br>
+Specify the number of processors to use for work queues. Specifying<br>
+&quot;auto&quot; will use the value reported by the system or environment <br>
+variable OSDPROCESSORS. To avoid abuse, this value is internally limited<br>
+to 4 times the number of processors reported by the system. <br>
+The default is &quot;auto&quot;.<br>
+<br>
+<br>
+Windows video options<br>
+---------------------<br>
+<br>
+-video &lt;gdi|ddraw|d3d|none&gt;<br>
+<br>
+Specifies which video subsystem to use for drawing. By specifying 'gdi'<br>
+here, you tell MAME to render video using standard Windows graphics<br>
+drawing calls. This is the slowest but most compatible option.<br>
+Specifying 'ddraw' instructs MAME to use DirectDraw for rendering.<br>
+This causes MAME to render everything at a lower resolution and then<br>
+upscale the results at the end. This produces high performance,<br>
+especially on older or low-power video cards, but has a noticeably<br>
+lower output quality. Specifying 'd3d' tells MAME to use Direct3D for<br>
+rendering. This produces the highest quality output and enables all<br>
+rendering options. It is recommended if you have a recent (2002+)<br>
+video card. The final option 'none' displays no windows and does no<br>
+drawing. This is primarily present for doing CPU benchmarks without<br>
+the overhead of the video system. The default is d3d.<br>
+<br>
+-numscreens &lt;count&gt;<br>
+<br>
+Tells MAME how many output windows to create. For most games, a single<br>
+output window is all you need, but some games originally used multiple<br>
+screens. Each screen (up to 4) has its own independent settings for<br>
+physical monitor, aspect ratio, resolution, and view, which can be<br>
+set using the options below. The default is 1.<br>
+<br>
+-[no]window<br>
+<br>
+Run MAME in either a window or full screen. The default is OFF<br>
+(-nowindow).<br>
+<br>
+-[no]maximize / -[no]max<br>
+<br>
+Controls initial window size in windowed mode. If it is set on, the<br>
+window will initially be set to the maximum supported size when you<br>
+start MAME. If it is turned off, the window will start out at the<br>
+smallest supported size. This option only has an effect when the<br>
+-window option is used. The default is ON (-maximize).<br>
+<br>
+-[no]keepaspect / -[no]ka<br>
+<br>
+Enables aspect ratio enforcement. When this option is on, the game's<br>
+proper aspect ratio (generally 4:3 or 3:4) is enforced, so you get the<br>
+game looking like it should. When running in a window with this option<br>
+on, you can only resize the window to the proper aspect ratio, unless<br>
+you are holding down the CONTROL key. By turning the option off, the<br>
+aspect ratio is allowed to float. In full screen mode, this means that<br>
+all games will stretch to the full screen size (even vertical games).<br>
+In window mode, it means that you can freely resize the window without<br>
+any constraints. The default is ON (-keepaspect).<br>
+<br>
+-prescale &lt;amount&gt;<br>
+<br>
+Controls the size of the screen images when they are passed off to the<br>
+graphics system for scaling. At the minimum setting of 1, the screen<br>
+is rendered at its original resolution before being scaled. At higher<br>
+settings, the screen is expanded by a factor of &lt;amount&gt; before being<br>
+scaled. With -video ddraw or -video d3d, this produces a less blurry<br>
+image at the expense of some speed. In -video ddraw mode, this also<br>
+increases the effective resolution of non-screen elements such as<br>
+artwork and fonts. The default is 1.<br>
+<br>
+-effect &lt;filename&gt;<br>
+<br>
+Specifies a single PNG file that is used as an overlay over any game<br>
+screens in the video display. This PNG file is assumed to live in the<br>
+root of one of the artpath directories. The pattern in the PNG file is<br>
+repeated both horizontally and vertically to cover the entire game<br>
+screen areas (but not any external artwork), and is rendered at<br>
+the target resolution of the game image. For -video gdi and -video d3d<br>
+modes, this means that one pixel in the PNG will map to one pixel on<br>
+your output display. For -video ddraw, this means that one pixel in the<br>
+PNG will map to one pixel in the prescaled game screen. If you wish to<br>
+use an effect that requires mapping n PNG pixels to each game screen<br>
+pixel with -video ddraw, you need to specify a -prescale factor of n as<br>
+well. The RGB values of each pixel in the PNG are multiplied against the<br>
+RGB values of the target screen. The default is 'none', meaning no<br>
+effect.<br>
+<br>
+-[no]waitvsync<br>
+<br>
+Waits for the refresh period on your computer's monitor to finish<br>
+before starting to draw video to your screen. If this option is off,<br>
+MAME will just draw to the screen at any old time, even in the middle<br>
+of a refresh cycle. This can cause &quot;tearing&quot; artifacts, where the top<br>
+portion of the screen is out of sync with the bottom portion. Tearing<br>
+is not noticeable on all games, and some people hate it more than<br>
+others. However, if you turn this option on, you will waste more of<br>
+your CPU cycles waiting for the proper time to draw, so you will see a<br>
+performance hit. You should only need to turn this on in windowed mode.<br>
+In full screen mode, it is only needed if -triplebuffer does not<br>
+remove the tearing, in which case you should use -notriplebuffer<br>
+-waitvsync. Note that this option does not work with -video gdi mode.<br>
+The default is OFF (-nowaitvsync).<br>
+<br>
+-[no]syncrefresh<br>
+<br>
+Enables speed throttling only to the refresh of your monitor. This<br>
+means that the game's actual refresh rate is ignored; however, the<br>
+sound code still attempts to keep up with the game's original refresh<br>
+rate, so you may encounter sound problems. This option is intended<br>
+mainly for those who have tweaked their video card's settings to<br>
+provide carefully matched refresh rate options. Note that this option<br>
+does not work with -video gdi mode.The default is OFF (-nosyncrefresh).<br>
+<br>
+<br>
+<br>
+DirectDraw-specific options<br>
+---------------------------<br>
+<br>
+-[no]hwstretch / -[no]hws<br>
+<br>
+When enabled, MAME uses the hardware stretching abilities of your<br>
+video card to scale the game image and associated artwork to the<br>
+target resolution. Depending on the quality of your graphic card and<br>
+its drivers, this may be a fractional, antialiased scaling (nice) or<br>
+an integer, blocky scaling (not so nice), in which case you might want<br>
+to disable this option. In addition, if you have configured specific<br>
+arcade-like video modes for MAME and don't want MAME to perform any<br>
+non-integral scaling of the image, you should also disable this option.<br>
+The default is ON (-hwstretch).<br>
+<br>
+<br>
+<br>
+Direct3D-specific options<br>
+-------------------------<br>
+<br>
+-d3dversion &lt;version&gt;<br>
+<br>
+MAME supports both Direct3D 9 and Direct3D 8 for maximum compatibility.<br>
+By default, it will automatically detect which one it can use and use<br>
+that version exclusively. You can override MAME's selection with this<br>
+option. It is primarily intended as a means for the MAME developers to<br>
+test compatibility with older hardware; for the most part, there is no<br>
+reason to alter this setting. The default is 9.<br>
+<br>
+-[no]filter / -[no]d3dfilter / -[no]flt<br>
+<br>
+Enable bilinear filtering on the game screen graphics. When disabled,<br>
+point filtering is applied, which is crisper but leads to scaling<br>
+artifacts. If you don't like the filtered look, you are probably better<br>
+off increasing the -prescale value rather than turning off filtering<br>
+altogether. The default is ON (-filter).<br>
+<br>
+<br>
+<br>
+Per-window options<br>
+------------------<br>
+<br>
+-screen &lt;display&gt;<br>
+-screen0 &lt;display&gt;<br>
+-screen1 &lt;display&gt;<br>
+-screen2 &lt;display&gt;<br>
+-screen3 &lt;display&gt;<br>
+<br>
+Specifies which physical monitor on your system you wish to have each<br>
+window use by default. In order to use multiple windows, you must have<br>
+increased the value of the -numscreens option. The name of each<br>
+display in your system can be determined by running MAME with the<br>
+-verbose option. The display names are typically in the format of:<br>
+\\.\DISPLAYn, where 'n' is a number from 1 to the number of connected<br>
+monitors. The default value for these options is 'auto', which means<br>
+that the first window is placed on the first display, the second<br>
+window on the second display, etc.<br>
+<br>
+The -screen0, -screen1, -screen2, -screen3 parameters apply to the<br>
+specific window. The -screen parameter applies to all windows. The<br>
+window-specific options override values from the all window option.<br>
+<br>
+-aspect &lt;width:height&gt; / -screen_aspect &lt;num:den&gt;<br>
+-aspect0 &lt;width:height&gt;<br>
+-aspect1 &lt;width:height&gt;<br>
+-aspect2 &lt;width:height&gt;<br>
+-aspect3 &lt;width:height&gt;<br>
+<br>
+Specifies the physical aspect ratio of the physical monitor for each<br>
+window. In order to use multiple windows, you must have increased the<br>
+value of the -numscreens option. The physical aspect ratio can be<br>
+determined by measuring the width and height of the visible screen<br>
+image and specifying them separated by a colon. The default value for<br>
+these options is 'auto', which means that MAME assumes the aspect<br>
+ratio is proportional to the number of pixels in the desktop video<br>
+mode for each monitor.<br>
+<br>
+The -aspect0, -aspect1, -aspect2, -aspect3 parameters apply to the<br>
+specific window. The -aspect parameter applies to all windows. The<br>
+window-specific options override values from the all window option.<br>
+<br>
+-resolution &lt;widthxheight[@refresh]&gt; / -r &lt;widthxheight[@refresh]&gt;<br>
+-resolution0 &lt;widthxheight[@refresh]&gt; / -r0 &lt;widthxheight[@refresh]&gt;<br>
+-resolution1 &lt;widthxheight[@refresh]&gt; / -r1 &lt;widthxheight[@refresh]&gt;<br>
+-resolution2 &lt;widthxheight[@refresh]&gt; / -r2 &lt;widthxheight[@refresh]&gt;<br>
+-resolution3 &lt;widthxheight[@refresh]&gt; / -r3 &lt;widthxheight[@refresh]&gt;<br>
+<br>
+Specifies an exact resolution to run in. In full screen mode, MAME<br>
+will try to use the specific resolution you request. The width and<br>
+height are required; the refresh rate is optional. If omitted or<br>
+set to 0, MAME will determine the mode auomatically. For example,<br>
+-resolution 640x480 will force 640x480 resolution, but MAME is free to<br>
+choose the refresh rate. Similarly, -resolution 0x0@60 will force a<br>
+60Hz refresh rate, but allows MAME to choose the resolution. The<br>
+string &quot;auto&quot; is also supported, and is equivalent to 0x0@0. In window<br>
+mode, this resolution is used as a maximum size for the window. This<br>
+option requires the -switchres option as well in order to actually<br>
+enable resolution switching with -video ddraw or -video d3d. The<br>
+default value for these options is 'auto'.<br>
+<br>
+The -resolution0, -resolution1, -resolution2, -resolution3 parameters<br>
+apply to the specific window. The -resolution parameter applies to all<br>
+windows. The window-specific options override values from the all<br>
+window option.<br>
+<br>
+-view &lt;viewname&gt;<br>
+-view0 &lt;viewname&gt;<br>
+-view1 &lt;viewname&gt;<br>
+-view2 &lt;viewname&gt;<br>
+-view3 &lt;viewname&gt;<br>
+<br>
+Specifies the initial view setting for each window. The &lt;viewname&gt;<br>
+does not need to be a perfect match; rather, it will select the first<br>
+view whose name matches all the characters specified by &lt;viewname&gt;.<br>
+For example, -view native will match the &quot;Native (15:14)&quot; view even<br>
+though it is not a perfect match. The value 'auto' is also supported,<br>
+and requests that MAME perform a default selection. The default value<br>
+for these options is 'auto'.<br>
+<br>
+The -view0, -view1, -view2, -view3 parameters apply to the<br>
+specific window. The -view parameter applies to all windows. The<br>
+window-specific options override values from the all window option.<br>
+<br>
+<br>
+<br>
+Full screen options<br>
+-------------------<br>
+<br>
+-[no]triplebuffer / -[no]tb<br>
+<br>
+Enables or disables &quot;triple buffering&quot;. Normally, MAME just draws<br>
+directly to the screen, without any fancy buffering. But with this<br>
+option enabled, MAME creates three buffers to draw to, and cycles<br>
+between them in order. It attempts to keep things flowing such that one<br>
+buffer is currently displayed, the second buffer is waiting to be<br>
+displayed, and the third buffer is being drawn to. -triplebuffer will<br>
+override -waitvsync, if the buffer is sucessfully created. This option<br>
+does not work with -video gdi. The default is OFF (-notriplebuffer).<br>
+<br>
+-[no]switchres<br>
+<br>
+Enables resolution switching. This option is required for the<br>
+-resolution* options to switch resolutions in full screen mode. On<br>
+modern video cards, there is little reason to switch resolutions unless<br>
+you are trying to achieve the &quot;exact&quot; pixel resolutions of the original<br>
+games, which requires significant tweaking. This option is also useful<br>
+on LCD displays, since they run with a fixed resolution and switching<br>
+resolutions on them is just silly. This option does not work with<br>
+-video gdi. The default is OFF (-noswitchres).<br>
+<br>
+-full_screen_brightness / -fsb &lt;value&gt;<br>
+<br>
+Controls the brightness, or black level, of the entire display. The<br>
+standard value is 1.0. Selecting lower values (down to 0.1) will produce<br>
+a darkened display, while selecting higher values (up to 2.0) will<br>
+give a brighter display. Note that not all video cards have hardware to<br>
+support this option. This option does not work with -video gdi. The<br>
+default is 1.0.<br>
+<br>
+-full_screen_contrast / -fsc &lt;value&gt;<br>
+<br>
+Controls the contrast, or white level, of the entire display. The<br>
+standard value is 1.0. Selecting lower values (down to 0.1) will produce<br>
+a dimmer display, while selecting higher values (up to 2.0) will<br>
+give a more saturated display. Note that not all video cards have<br>
+hardware to support this option. This option does not work with<br>
+-video gdi. The default is 1.0.<br>
+<br>
+-full_screen_gamma / -fsg &lt;value&gt;<br>
+<br>
+Controls the gamma, which produces a potentially nonlinear black to<br>
+white ramp, for the entire display. The standard value is 1.0, which<br>
+gives a linear ramp from black to white. Selecting lower values (down<br>
+to 0.1) will increase the nonlinearity toward black, while selecting<br>
+higher values (up to 3.0) will push the nonlinearity toward white. Note<br>
+that not all video cards have hardware to support this option. This<br>
+option does not work with -video gdi. The default is 1.0.<br>
+<br>
+<br>
+<br>
+Windows sound options<br>
+---------------------<br>
+<br>
+-audio_latency &lt;value&gt;<br>
+<br>
+This controls the amount of latency built into the audio streaming. By<br>
+default MAME tries to keep the DirectSound audio buffer between 1/5 and<br>
+2/5 full. On some systems, this is pushing it too close to the edge,<br>
+and you get poor sound sometimes. The latency parameter controls the<br>
+lower threshold. The default is 1 (meaning lower=1/5 and upper=2/5).<br>
+Set it to 2 (-audio_latency 2) to keep the sound buffer between 2/5 and<br>
+3/5 full. If you crank it up to 4, you can definitely notice the lag.<br>
+<br>
+<br>
+<br>
+Input device options<br>
+--------------------<br>
+<br>
+-[no]dual_lightgun / -[no]dual<br>
+<br>
+Controls whether or not MAME attempts to track two lightguns connected<br>
+at the same time. This option requires -lightgun. This option is a hack<br>
+for supporting older dual lightgun setups. If you have multiple<br>
+lightguns connected, you will probably just need to enable -mouse and<br>
+configure each lightgun independently. The default is OFF<br>
+(-nodual_lightgun).<br>
+</span>
+
+
+</html>
diff --git a/src/osd/winui/help/docs/Mame License.htm b/src/osd/winui/help/docs/Mame License.htm
new file mode 100644
index 00000000000..23c0accfef4
--- /dev/null
+++ b/src/osd/winui/help/docs/Mame License.htm
@@ -0,0 +1,57 @@
+
+<head>
+<style type="text/css">
+.style1 {
+ font-family: Arial;
+ font-size: x-small;
+}
+</style>
+</head>
+
+<body background="../images/bkground.gif">
+
+<div id="outer">
+ <div id="center">
+ <div class="content">
+ <font face="Arial"><b>Copyright © 1997-2010, Nicola Salmoria
+ and the MAME team<br>
+ All rights reserved.</b></font><font face="Arial" size="2"> </font>
+ <p><span class="style1">Unless otherwise explicitly stated, all code
+ in MAME is released under the<br>
+ following license:</span></p>
+ <p><font face="Arial" size="2">Redistribution and use of this code
+ or any derivative works are permitted provided that the following
+ conditions are met: </font></p>
+ <ul>
+ <li><font face="Arial" size="2">Redistributions may not be sold,
+ nor may they be used in a commercial product or activity. </font>
+ </li>
+ <li><font face="Arial" size="2">Redistributions that are
+ modified from the original source must include the complete
+ source code, including the source code for all components used
+ by a binary built from the modified sources. However, as a
+ special exception, the source code distributed need not include
+ anything that is normally distributed (in either source or
+ binary form) with the major components (compiler, kernel, and so
+ on) of the operating system on which the executable runs, unless
+ that component itself accompanies the executable. </font></li>
+ <li><font face="Arial" size="2">Redistributions must reproduce
+ the above copyright notice, this list of conditions and the
+ following disclaimer in the documentation and/or other materials
+ provided with the distribution. </font></li>
+ </ul>
+ <p><font face="Arial" size="2">THIS SOFTWARE IS PROVIDED BY THE
+ COPYRIGHT HOLDERS AND CONTRIBUTORS &quot;AS IS&quot; AND ANY EXPRESS OR
+ IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ SUCH DAMAGE. </font></div>
+ </div>
+</div>
diff --git a/src/osd/winui/help/docs/Mame Statement of Purpose.htm b/src/osd/winui/help/docs/Mame Statement of Purpose.htm
new file mode 100644
index 00000000000..95312c7012b
--- /dev/null
+++ b/src/osd/winui/help/docs/Mame Statement of Purpose.htm
@@ -0,0 +1,79 @@
+<body background="../images/bkground.gif">
+
+<div id="outer">
+ <div id="center">
+ <div class="content">
+ <b>
+ <font face="Arial">MAME, the Multiple Arcade Machine
+ Emulator<br>
+ Copyright © 1997-2010 by Nicola Salmoria and the MAME team </font>
+ </b>
+ <h2><font face="Arial" size="3">I. Purpose</font></h2>
+ <p><font face="Arial" size="2">MAME is strictly a non-profit
+ project. Its main purpose is to be a reference to the inner workings
+ of the emulated arcade machines. This is done both for educational
+ purposes and for preservation purposes, in order to prevent many
+ historical games from disappearing forever once the hardware they
+ run on stops working. Of course, in order to preserve the games and
+ demonstrate that the emulated behavior matches the original, you
+ must also be able to actually play the games. This is considered a
+ nice side effect, and is not MAME's primary focus. </font></p>
+ <p><font face="Arial" size="2">It is not our intention to infringe
+ on any copyrights or patents on the original games. All of MAME's
+ source code is either our own or freely available. To operate, the
+ emulator requires images of the original ROMs, CDs, or hard disks
+ from the arcade machines, which must be provided by the user. No
+ portions of the original game code are included in the executable.
+ </font></p>
+ <h2><font face="Arial" size="3">II. Cost</font></h2>
+ <p><font face="Arial" size="2">MAME is free. Its source code is
+ free. Selling either is not allowed. </font></p>
+ <h2><font face="Arial" size="3">III. Image Files</font></h2>
+ <p><font face="Arial" size="2">ROM, CD, and hard disk images are all
+ copyrighted material. They cannot be distributed without the
+ explicit permission of the copyright owner. They are not &quot;abandonware&quot;,
+ nor have any of the games supported by MAME passed out of copyright.
+ </font></p>
+ <p><font face="Arial" size="2">MAME is not intended to be used as a
+ tool for mass copyright infringement. Therefore, it is strongly
+ against the authors' wishes to sell, advertise, or link to resources
+ that provide illegal copies of ROM, CD, or hard disk images. </font>
+ </p>
+ <h2><font face="Arial" size="3">IV. Derivative Works</font></h2>
+ <p><font face="Arial" size="2">Derivative works are allowed under
+ the MAME license. However, you are discouraged from providing
+ specific functionality that goes against the philosophy of the MAME
+ team. Specifically: </font></p>
+ <ul>
+ <li><font face="Arial" size="2">Do not add games which are more
+ recent than 3 years old, or which are still being sold new by
+ the company that produced them. MAME is not intended to be a
+ platform that competes with arcade games that are still being
+ actively sold. </font></li>
+ <li><font face="Arial" size="2">Do not provide a means of
+ generating a list of games that specifically identifies those
+ games for which the user does not have image files. This only
+ encourages users to seek out sources for illegal ROM, CD, and
+ hard disk images in order to &quot;complete&quot; their collection. </font>
+ </li>
+ <li><font face="Arial" size="2">Do not remove the startup screen
+ that contains information about why certain non-working games
+ don't work. This only serves to generate a bunch of useless
+ email traffic to the developers asking why the games don't work.
+ </font></li>
+ </ul>
+ <p><font face="Arial" size="2">Because the name MAME is trademarked,
+ you must abide by the rules of the trademark usage if you wish to
+ use &quot;MAME&quot; as part of the name your derivative work. In general,
+ this means you must request permission, which requires that you
+ follow the guidelines above. </font></p>
+ <p><font face="Arial" size="2">The version number of any derivative
+ work should reflect the version number of the MAME release it was
+ derived from. </font></p>
+ <h2><font face="Arial" size="3">V. Official Contact Information</font></h2>
+ <p><font face="Arial" size="2">For questions regarding the MAME
+ license, trademark, or other usage, go to
+ <a href="http://www.mamedev.com/contact.html?legal">
+ http://www.mamedev.com/</a>.</font></div>
+ </div>
+</div>
diff --git a/src/osd/winui/help/docs/whatsnew.txt b/src/osd/winui/help/docs/whatsnew.txt
new file mode 100644
index 00000000000..9b7e00c31ef
--- /dev/null
+++ b/src/osd/winui/help/docs/whatsnew.txt
@@ -0,0 +1,511 @@
+0.152
+-------
+
+
+MAMETesters Bugs Fixed
+----------------------
+- 04424: [Graphics] (seta.c) thunderlbl: [debug] Severe
+ graphic issues (Osso)
+- 05357: [Crash/Freeze] (taitogn.c) nightrai: fails to boot
+ into the game (smf)
+- 05236: [Graphics] multiple monitor support doesn't work with d3d
+- 05391: [Misc.] (cave.c) ppsatan: manufacturer info for ppsatan
+- 05383: [Graphics] (twin16.c) hpuncher: Screen is split and
+ graphics are offset (Alex Jackson)
+- 00785: [Sound] (omegrace.c) omegrace: Corrupted music after
+ completing first several levels. (hap)
+- 05214: [Color/Palette] vector games: Vector games with color overlay
+ show in b&w on Windows D3D render when HLSL is disabled. (hap)
+- 05384: [DIP/Input] (lethal.c) lethaleneab, lethaleneae: Language DIP
+ Switch not changing the language (Tafoid)
+- 05355: [DIP/Input] (cps1.c) sf2m3 ; sf2m8: Kick inputs are not working
+ LK MK HK (Osso)
+- 05375: [Documentation] (sderby.c) sderby, sderby2: 1 set name and 1
+ full name need changed
+- 05373: [Crash/Freeze] (capbowl.c) capbowl3, capbowl4: Black screen
+ after starting game (Phil Bennett)
+- 05366: [Core] (harddriv.c) harddriv and clones, racedriv and clones: RTC
+ Day and Month error and fails to start
+- 05365: [Documentation] (namcos21.c) driveyes: The correct description
+ is "Driver's Eyes (Japan)"
+- 05364: [Compiling] Error when compiling with NO_USE_QTDEBUG
+- 05356: [Color/Palette] (midvunit.c) offroadc: Off Road Challenge and
+ clones have wrong color in some textures (Phil Bennett)
+- 05207: [Graphics] All vector games: In the vector games, graphics
+ remains imprinted even when exit the game. (hap)
+- 04947: [Graphics] (midvunit.c) offroadc: Missing selection indicator
+ within service mode. (Phil Bennett)
+
+Source Changes
+--------------
+-vsnes.c: Verified second half roms for vs baseball usa e-1 set, fix
+ one mislabeled rom [Dead_Body]
+
+-midvunit.c - Fixed polygon pixel color selection [Phil Bennett]
+
+-peplus.c: Corrected a couple of color CAP sizes. Added the CG graphics
+ roms for Ace$ Bonus Poker. [BrianT]
+
+-scsi: Fixed hard disk images with 256-byte sectors. [Curt Coder]
+
+-Added a simple DC blocker filter to the speaker toggle device [R. Belmont]
+
+-konendev.c: Corrected CPU type (PPC403) and added some hardware notes [Phil Bennett]
+
+-sf.c: update prom names for Street Fighter (World, Analog buttons) set.[Porchy]
+
+-exidy440.c: Replaced prom dump for all games in driver located at 3K.
+ It is unique to all the other proms and different in size. [Joe Magiera, Tafoid]
+
+-nss.c: update bios rom locations and update inst rom label for smw;
+ marked nss v3 bios as possible hack [Kiddcade, Porchy]
+
+-CPS-1 update [Artemio Urbina]:
+ * Redumped CDU_22A.7F in dinou to match real pcb, verified on two
+ different sources
+
+-Tweaks to the idehd timing, which are still based on complete fiction. [smf]
+
+-Added a new macro MCFG_DEVICE_CARD_DEFAULT_BIOS, which can be used in
+ the machine config to set the default BIOS for a slot card device.
+ [Curt Coder]
+
+-SDL: fix non-Qt non-Windows build (MT #5364) [R. Belmont]
+
+-Added SCSI status code & set it in all command handlers. It is sent
+ over the bus when in status phase. In case of an error further
+ information should be set in m_sense_key/m_sense_asc/m_sense_ascq &
+ m_sense_information so that it can be returned by executing a request
+ sense command [smf]
+
+-Set the error bit in the IDE status register if the command causes a
+ check condition [smf]
+
+-vsnes.c: update labels of vs. Super Mario Bros roms to match physical
+ chips exactly. [Dead_Body]
+
+-z80dma: Implemented Auto Restart. [Curt Coder]
+
+-TMS57002 fixes and improvements: [Phil Bennett]
+ * Moved CA/ID post-increment outside of execution. Fixes case where
+ dual instructions post-increment, also reduces number of generated
+ instructions.
+ * Fixed data ordering of external memory accesses.
+ * Don't generate redundant instructions for undefined rounding modes;
+ remap them in decode.
+ * Set XOA to 0 on reset.
+ * Use [READ|WRITE]LINE_MEMBER for I/O lines.
+ * Added PC0 line.
+ * Added registers to debugger state.
+
+-wd_fdc: Fixed ready interrupt polarity. Added a soft_reset() function
+ which resets only the FDC and not the floppy image devices, thus
+ preserving the correct ready states. [Curt Coder]
+
+-Rewrote Konami 056800 (MIRAC): [Phil Bennett]
+ * Implemented as an 8-bit device
+ * Fixed address mapping
+ * Removed bogus timer interrupt
+ * Fixed interrupt handling
+
+-054539.c: Fixed input clock rate and implemented programmable timer
+ based on hardware measurements [Phil Bennett, Stefan Lindberg]
+
+-lethal.c, mystwarr,c, tmnt.c: Hooked up 054539 timer interrupt. Fixes
+ music tempo in some games [Phil Bennett]
+
+-qdrmfgp.c: Hooked up 054539 timer interrupt for qdrmfgp, fixed IRQ
+ acknowledge handling [Phil Bennett]
+
+-plygonet.c: Hooked up 054539 timer interrupt, removed non-existent
+ second 054539 and fixed EEPROM regression [Phil Bennett]
+
+-hornet.c, gticlub.c: Implemented sound interrupt timer [Phil Bennett]
+
+-konamigx.c improvements: [Phil Bennett]
+ * Hooked up 056800 device
+ * Hooked up 054539 timer interrupt
+ * Removed sound hacks
+ * All DSP RAM tests now pass, winspike sound now works
+
+-konamigq.c improvements: [Phil Bennett]
+ * Hooked up 056800 device
+ * Hooked up 054539 timer interrupt
+ * Added TMS57002 DASP
+
+-ultrsprt.c improvements: [Phil Bennett]
+ * Hooked up 054539 timer interrupt
+ * Implemented VRAM double buffering
+ * Improved trackball inputs
+ * Fixed sound
+
+-zr107.c improvements: [Phil Bennett]
+ * Hooked up 054539 timer interrupt
+ * Fixed sound in all games
+
+-rungun.c improvements: [Phil Bennett]
+ * Hooked up 054539 timer interrupt. Fixes music tempo
+ * Implemented sound CPU NMI control
+ * Fixed 054539 #2 regression
+
+-Saves the race driving DSK zram [smf]
+
+-Added all the available beatmania IIDX hard drives and Video CD's/DVD's,
+ updated the hard drive labels from pictures online. [smf]
+
+-mcs96: Misc. fixes [O. Galibert]
+
+-diserial: Remove defines, cleanup clocks/timers, add sync support [O. Galibert]
+
+-verified The Gladiator internal ROM on an Overseas cart [Artemio Urbina]
+
+-wd_fdc: Set CRC error bit if CRC error found during Read Address
+ command. Tiki 100 determines whether the disk is in FM or MFM format
+ by checking this. [Curt Coder]
+
+-CPS-1 update:
+ * Dumped and added IOB2.11D to sf2ee and sf2ue [Porchy], S9263B.1A to
+ sf2ce and sf2hf sets and clones [Porchy], CP1B9KA.9K to pang3
+ [Zabanitu]
+
+-snk6502.c: Adjusted Nibbler board clock rate to use actual known
+ master clock and a logical divisor. [Tafoid]
+
+-jedutil.c: [Kevin Eshbach]
+ * Corrected the output of the PAL20X4, PAL20X8, PAL20X10 to show the
+ XOR on the relevant sum of products.
+ * When viewing a device the size of the JED file is verified to match
+ the size of the device.
+ * Replaced hard-coded symbol strings with constants.
+ * Started experimental work for supporting RICOH PAL’s. (Currently
+ ifdef'ed out.)
+ * Added support for viewing the following devices and the
+ corresponding regression test data. (PALCE16V8, PAL10P8, PAL12P6,
+ PAL14P4, PAL16P2, PAL16P8, PAL16RP4, PAL16RP6, PAL16RP8, PAL6L16,
+ PAL8L14, PAL12H10, PAL12L10, PAL14H8, PAL14L8, PAL16H6, PAL16L6,
+ PAL18H4, PAL18L4, PAL20C1 and PAL20L2)
+
+-Added flip screen support to Royal Mahjong and brothers [Angelo Salese]
+
+ V9958: Added preliminary screen modes 10/11/12, used by Puzzle
+ Star/Sexy Boom [Angelo Salese, Wilbert Pol]
+
+-vsnes.c: Corrected rom labels and fixed set description for vspinbal
+ set [Dead_Body]
+
+-cinemat.c: Correct dipswitches for Vectorbeam's Warrior. [Timothy Shiels]
+
+-vsnes.c: More updated ROM labels, for vs top gun and vs gradius [Dead_Body]
+
+-i386: Fixed P6 CMOVcc instructions, and added CMOV feature flag to
+ Pentium Pro and Pentium II CPUs. Added MMX feature flag to Pentium
+ MMX. [Barry Rodewald]
+
+-Fixed a complement by two bug in V9958 YJK table, fixes for good
+ colors in Puzzle Star / Sexy Boom / some MSX2+ games. [Angelo Salese]
+
+-Kludged Puzzle Star (Sang Ho Soft) hang at title screen [Angelo Salese]
+
+-Added the SHA1 for System 573 700B01 now that we have a dump. It
+ currently expects a different response from the H8 at bootup than the
+ other BIOS versions, so the data is stored in a fake rom until it's
+ HLE'd better of we get a dump of the H8 internal rom
+ [smf, innocent2k, anthonyoftga]
+
+-document that ketsui roms exist with different fill in the unused
+ areas [Artemio Urbina]
+
+-upd765: Fixed sense drive status command, and allow floppy connectors
+ without drives. [Curt Coder]
+
+-fixed scudsp & ssp1601 entries [Vito]
+
+-Reduce smearing on hlsl prescale [MooglyGuy]
+
+-Corrected 7486 description in head file [MASH]
+
+-various PGM protection cleanups / fixes (orlegend, olds, svgpcb) [iq_132]
+
+-finished modernising i2cmem [smf]
+
+-remodernised x76f041/x76f100 & zs01 so that logging becomes easy again
+ & uses READ_LINE_MEMBER/WRITE_LINE_MEMBER so the pins can be bound to
+ directly. Hooked up x76f041 to the early beatmania IIDX games. They
+ all pass the security check eventually but it takes a long time as it
+ repeatedly reads the first byte, it's possible that the contents
+ aren't correct as the game says the security is OK even when the data
+ returned is not what it's checking for. [smf]
+
+-Added a work round so that CR589 firmware updating works again, either
+ from the separate CD's or as part of the game install (for example DDR
+ MAX). [smf]
+
+-playch10: update Playchoice-10 BIOS ROM names to match exact chip
+ labels and types [Dead_Body]
+
+-naomi/dc: Sanitize screen format, fixes MT5349 [O. Galibert]
+
+-redumped some System 573 CD's [Guru]
+
+-CPS-1 update: Added S222B.1A PAL to ffightj and clones.
+ [Charles MacDonald, Porchy, Smitdogg, The Dumping Union]
+
+-Created DS1204 device & switched megatouch to use it instead of it's
+ own local version (driver could do with some more tidying up as not
+ all games use a key but currently it is hooked up to all games).
+ Default data comes from a region instead of coded in driver, commands
+ & security match are now compared, data is clocked on the correct
+ edge, key can be written to and is saved to nvram. [smf]
+
+-redumped bad roms for First Funky Fighter [Yohji, Smitdogg, The Dumping Union]
+
+-Merged othldrby.c with toaplan2.c driver [Angelo Salese]
+
+-Converted Toaplan 2 to use SCREEN_RAW_PARAMS [Angelo Salese]
+
+-Added a core for uPD4992 RTC, used by Othello Derby and Power Kick [Angelo Salese]
+
+-Hooked up ds1204, but haven't found what it checks for yet. Change
+ PATCH_PROTECTION to 0 in tmaster.c and VERBOSE_LEVEL to 2 in ds1204.c
+ then look for "-> command" in error.log to find the subsequent read
+ from the dq pin for reading the identification and secure memory. For
+ tm4k the first two bytes of the nvram need to be  0x00, 0xa0. From
+ scratch you'll need to play a game before it will complain about the
+ protection, but after that it will complain on every boot. It tries
+ five different contents for the compare register at various points
+ during the bootup, this may be for obfuscation as the real chip will
+ return random results if the key is wrong. If the keys are available
+ it might be easier to dump them than figure out exactly what it wants.
+ [smf]
+
+-svgpcb: added igs027a rom, runs intro, dies trying to go in game, not
+ sure why yet [rtw, David Haywood]
+
+-Created a skeleton for the Konami 573 Multi Session Unit, renamed
+ digital io board source file to match and moved pcb layout from
+ driver. [smf]
+
+-Added skeleton for konami 573 memory card reader and network pcb unit
+ devices [smf]
+
+-redumped keyboard mania 3 [Guru]
+
+-Updated konam80s atapi dma kludge so that Guitar Freaks 7th Mix (and
+ alot of others) load again [smf]
+
+-Mambo A GO-GO CD redump in raw mode + raw subcode. [any]
+
+-Improved Sega Bloxeed dipswitches. [Zaphod]
+
+-Added basic 3d FIFO understanding and hooked up FIFO irq processed to
+ Hyper Neo Geo 64, meaning a far better 3d display in all games
+ [Angelo Salese]
+
+-mc2661: Added various transmission and reception logic to help make
+ the above possible [Barry Rodewald]
+
+-twin16.c: [Alex Jackson]
+ * Use the correct gfx ROMs for all the vulcan/gradius2 sets
+ * Load gfx ROMs using standard macros instead of custom postprocessing
+ * Replace custom read/write handlers with AM_REGION, AM_SHARE, or banks as appropriate
+ * Fix Extra Life dipswitches in vulcana and vulcanb
+ * Fix cuebrick NVRAM size
+ * Fix audio cpu RAM size
+ * Use XTALs for clocks
+
+-Windows: Fixed D3D multimonitor support. [GroovyMAME]
+
+-Slot options can now be configured inline without creating an array.
+ Legacy support for old configuration uses MCFG_FRAGMENT_ADD, which
+ required changing so the current device could be updated by the
+ fragment. [smf]
+
+-converted cassette, pccard1 & pccard2 slots to use new MCFG macros [smf]
+
+-Uses MCFG_SLOT_DEFAULT_OPTION instead of MCFG_DEVICE_SLOT_INTERFACE
+ where only the default option is changed. [smf]
+
+-m68k: add ability for externally-thrown bus errors to have proper
+ details [R. Belmont]
+
+-uses device_mconfig_additions() to add ata slots, which allows you to
+ just add the device and configure it rather than using the
+ MCFG_ATA_INTERFACE_ADD #define. [smf]
+
+-allow building with ICL on Windows if you have it installed into MSVC [Dean London]
+ The ICL compiler on Windows installs over MSVC and piggybacks onto the
+ build tools Microsoft provide. To enable compilation use USE_ICL=1
+ when compiling with MSVC_BUILD=1 (from the ICL enabled command prompt)
+ + gives a more stable build than the MSVC compiler + more informative
+ compile errors when using ICL compared to MSVC compiler + can still
+ use MSVC debugging tools (better than GCC) + can use additional intel
+ tools etc.
+ build is still slower than GCC one
+
+-aristmk4.c: [Lord-Data]
+ * Option to raise outputs for physical meters to be used
+ * Option to disable making sound effects for emulated meters
+ * Option to disable virtual emulation of hopper/coin release system
+
+-k005289.c: refactored, removed redundant state variables and
+ unneccessary floating point math, added savestate support
+ [Alex Jackson]
+
+-Removed support for static config from slots and converted the two
+ devices using it to machine config fragments [smf]
+
+-Pong update: [couriersud]
+ * based on feedback from IRC hopefully fixed issues like "jumping"
+ * adjusted VR1 and VR2 to 50%
+ * disabled all printf output.
+
+-converted serial & rs232 devices to devcb2 [smf]
+
+-diimage: Added load_software_region() function that loads a software
+ list region into a shared_ptr. [Curt Coder]
+
+-Added preliminary sound to ghosteo.c by borrowing code from vegaeo.c. [Osso]
+
+-z8.c: Modernized cpu core. [Wilbert Pol]
+
+-midyunit.c [Andy Welsh]
+ Fixed inputs and DIP Switches for hiimpact,
+ shimpact and clones which were all imported from TROG and mostly
+ incorrect.
+
+-Added Signetics 8X300 microcontroller core, updated Wicat driver to
+ use it. [Barry Rodewald]
+
+-replaced read rx/cts/dcd callbacks in ACIA6850 write write handlers,
+ which allows multiple chips to be connected together without using
+ glue methods. [smf]
+
+-Changed Guitar Freaks 7m onwards to use a 32mb PCMCIA card [smf]
+
+-Redumped some beatmania IIDX CD's [Guru]
+
+-Redumped several Konami GV CD's [Guru]
+
+-Redumped several Konami M2 CD's [Guru]
+
+-Redumped various System 573 CD's [Guru]
+
+-i8089: implement remaining instructions and support execution from
+ "io" space. [Carl]
+
+-replaced read callbacks in I8251/Z80DART (and clones)/MC2661/
+ MC68901/IM6402/MOS6551/Z80STI/MC6852/MC6854/ZX8302 with
+ write handlers, which allows multiple chips to be connected
+ together without using glue methods. [smf]
+
+-Removed a load of unused code from MC68901, probably left
+ over when it was converted to use diserial. [smf]
+
+-Removed dependency clutter in c64 expansion port, c128 driver,
+ ecbbus & econet [smf]
+
+-nemesis.c: added PORT_TOGGLE and PORT_NAMEs to Konami GT.
+ [baritonomarchetto]
+
+-Rom locations added for Battles (Xevious bootleg), G.I. Joe,
+ Ghosts'n Goblins (US), Victory Road and Guerilla War (Version
+ 1) as well as nvram location to The Simpsons. [Kevin Eshbach]
+
+-Added readmes for gijoe, moo, xexex, lethal, mystwarr also
+ updating simpsons. [Guru]
+
+
+New games added or promoted from NOT_WORKING status
+---------------------------------------------------
+Long Beach [any, hap]
+The Gladiator / Road of the Sword / Shen Jian [David Haywood, rtw]
+Blastaball (Arcadia, V 2.1) [Unigame]
+Pharaohs Match (Arcadia) [Unigame]
+Delta Command (Arcadia) [Unigame]
+Wave shark/Jet Wave [Phil Bennett]
+Puzzle Star (Sang Ho Soft) [Angelo Salese, Wilbert Pol]
+Dancing Stage - Internet Ranking Ver (GC845 VER. EBA) [smf, skype]
+Player's Edge Plus (XM00007P+XMP00006) Multi-Poker [BrianT, Ken]
+Player's Edge Plus (X000838S+XS000002) Five Times Pay Slots [BrianT, Kevin]
+Player's Edge Plus (X000841S+XS000002) Five Times Pay Slots [BrianT, Kevin]
+Player's Edge Plus (X001087S+XS000006) Double Double Diamond Slots [BrianT, Kevin]
+Player's Edge Plus (IP0079) Standard Draw Poker - French [BrianT, Ken]
+Player's Edge Plus (X002420P+XP000064) Deuces Wild Bonus Poker - French [BrianT, Ken]
+Power Kick [bodger319, Yohji, Smitdogg, The Dumping Union, Angelo Salese]
+S.V.G. - Spectral vs Generation (M68k label V100JP)
+ (ARM label V100JP ROM 05/12/05 S.V.G V100) (Japan, JAMMA PCB) [rtw, David Haywood]
+
+
+New clones added
+----------------
+Scramble (Recreativos Franco, Spanish bootleg) [Basilio Garcia]
+The Gladiator / Road of the Sword / Shen Jian (M68k label V100)
+ (ARM label V101, ROM 03/13/03 SHEN JIAN) [Artemio Urbina]
+Super Chase - Criminal Termination (1992/10/26 20:24:29 CHASE 3 VER 1.1, prototype) [Unigame]
+Brick Zone (v1.1) [Unigame]
+Cadash (World, prototype) [Unigame]
+1942 (prototype?) [Unigame]
+4 En Raya (set 2) [Unigame]
+Gallop Racer (English Ver 10.17.K) [Arzeno Fabrice, The Dumping Union]
+Chase Bombers (prototype) [Unigame]
+The First Funky Fighter (set 2) [Unigame]
+Cobra Command (Data East LD, set 2) [Unigame] (not working)
+Spy Hunter (prototype) [Unigame] (not working, needs more work)
+U.N. Defense Force: Earth Joker (Japan, prototype?) [Unigame]
+Syvalion (World, prototype) [Unigame]
+Donkey Kong Junior (P kit) [Chris Psaros]
+Who Dunit (version 9.0) [Joe Magiera]
+Commando (US set 2) [Kevin Eshbach]
+Bucky O'Hare (ver EA) [caius]
+Player's Edge Plus (PP0055) Deuces Wild Poker (set 2) [BrianT]
+Player's Edge Plus (PP0171) Joker Poker [BrianT]
+Player's Edge Plus (X000054P+XP000038) Deuces Wild Poker [BrianT]
+Player's Edge Plus (PP0002) Standard Draw Poker [BrianT, Ken]
+Player's Edge Plus (PP0045) 10's or Better [BrianT, Ken]
+Player's Edge Plus (PP0455) Joker Poker [BrianT, Ken]
+Player's Edge Plus (PP0458) Joker Poker [BrianT, Ken]
+Player's Edge Plus (PP0536) Joker Poker [BrianT, Ken]
+Player's Edge Plus (PP0726) Double Bonus Poker [BrianT, Ken]
+Player's Edge Plus (IP0074) Joker Poker - French [BrianT, Ken]
+Player's Edge Plus (X000045P+XP000038) 10's or Better [BrianT, Ken]
+Player's Edge Plus (XMP00017) 5-in-1 Wingboard (CG2426) [BrianT, Ken]
+Player's Edge Plus (PP0417) Deuces Wild Poker (set 2) [BrianT, Kevin]
+Player's Edge Plus (PP0002) Standard Draw Poker (set 2) [BrianT, Ken]
+Player's Edge Plus (XMP00017) 5-in-1 Wingboard (CG2352) [BrianT, Ken]
+Player's Edge Plus (PP0046) 10's or Better [BrianT, Ken]
+Player's Edge Plus (X000002P+XP000038) Standard Draw Poker [BrianT, Ken]
+Player's Edge Plus (X000060P+XP000038) Standard Draw Poker [BrianT, Ken]
+Player's Edge Plus (X000171P+XP000038) Joker Poker [BrianT, Ken]
+Player's Edge Plus (X000417P+XP000053) Deuces Wild Poker [BrianT, Ken]
+Player's Edge Plus (X000459P+XP000038) Joker Poker [BrianT, Ken]
+Player's Edge Plus (X002043P+XP000038) Triple Bonus Poker [BrianT, Ken]
+Player's Edge Plus (X002066P+XP000038) Double Double Bonus Poker [BrianT, Ken]
+Player's Edge Plus (X002121P+XP000037) Standard Draw Poker [BrianT, Ken]
+Player's Edge Plus (X002150P+XP000038) 4 of a Kind Bonus Poker [BrianT, Ken]
+Player's Edge Plus (X002180P+XP000038) Double Bonus Poker [BrianT, Ken]
+Touchmaster 4000 (v6.03 New Jersey) [Brian Troha, The Dumping Union]
+Touchmaster 4000 (v6.01 Minnesota) [Brian Troha, The Dumping Union]
+Touchmaster 5000 (v7.10 Minnesota) [Brian Troha, The Dumping Union]
+Touchmaster 7000 (v8.05 New Jersey) [Brian Troha, The Dumping Union]
+Touchmaster 7000 (v8.04 Minnesota) [Brian Troha, The Dumping Union]
+Touchmaster 7000 (v8.00 Minnesota) [Brian Troha, The Dumping Union]
+World Kicks (WK3 Ver. A) [Guru]
+Wivern Wings [Brian Troha, Tormod, Smitdogg, The Dumping Union]
+Invasion - The Abductors (version 3.0) [Brian Troha, Smitdogg, The Dumping Union]
+Street Fighter III: New Generation (Euro 970204) [Layne, Smitdogg, The Dumping Union]
+
+
+New games marked as GAME_NOT_WORKING
+------------------------------------
+beatmania IIDX Substream (983 JAA) [smf]
+beatmania IIDX 5th style (GCA17 JA) [smf]
+beatmania IIDX (863 JAB) [Guru]
+beatmania IIDX 3rd style (GC992 JAC) [smf]
+beatmania IIDX 6th style (GCB4U JAB) [smf]
+Tokimeki Memorial Oshiete Your Heart (GQ673 JAA) [Guru]
+Total Vice (ver AAB) [Guru]
+Super Six Plus II English Mark Darts [Jim Stolis]
+Tokimeki Memorial Oshiete Your Heart Seal Version Plus (GE756 JAA) [Guru]
+Submarine (Midway) [John Robertson, hap]
+Mambo A Go-Go e-Amusement (GQA40 VER. JRB) [smf]
+Touch de Uno! [R. Belmont, bodger319, gamerfan, f205v, Yohji, Smitdogg, rtw, The Dumping Union]
diff --git a/src/osd/winui/help/html/mameui_art.htm b/src/osd/winui/help/html/mameui_art.htm
new file mode 100644
index 00000000000..bb2dc16d8de
--- /dev/null
+++ b/src/osd/winui/help/html/mameui_art.htm
@@ -0,0 +1,139 @@
+<html>
+
+<head>
+<meta name="GENERATOR" content="Microsoft FrontPage 12.0">
+<meta name="ProgId" content="FrontPage.Editor.Document">
+<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
+<title>MameUI Art &amp; Support Files</title>
+<style>
+<!--
+p
+ {margin-right:0in;
+ margin-left:0in;
+ font-size:10.0pt;
+ font-family:Arial;
+ color:black}
+h1
+ {margin-top:12.0pt;
+ margin-right:0in;
+ margin-bottom:3.0pt;
+ margin-left:0in;
+ page-break-after:avoid;
+ font-size:16.0pt;
+ font-family:Arial;
+ color:windowtext;
+ font-weight:bold}
+h2
+ {margin-top:12.0pt;
+ margin-right:0in;
+ margin-bottom:3.0pt;
+ margin-left:0in;
+ page-break-after:avoid;
+ font-size:14.0pt;
+ font-family:Arial;
+ font-style:italic}
+ p.MsoNormal
+ {mso-style-parent:"";
+ margin-bottom:.0001pt;
+ font-size:10.0pt;
+ font-family:Arial;
+ margin-left:0in; margin-right:0in; margin-top:0in}
+div.Section1
+ {page:Section1;}
+.style1 {
+ font-weight: bold;
+}
+-->
+</style>
+<base target="_blank">
+</head>
+
+<body background="../images/bkground.gif">
+
+<h2>Art &amp; Support Files</h2>
+<p class="MsoNormal">MameUI's flexible GUI framework allows for some beautiful
+customization; including font color, icons, screenshot art, and background images.&nbsp;
+The official site for the snaps and icons is <b>
+<a target="_blank" href="http://mameui.info/">MameUI</a></b>.&nbsp; The following files are used for this customization.</p>
+<p class="MsoNormal">&nbsp;</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>
+<a style="color: blue; text-decoration: underline; text-underline: single" target="_blank" href="http://mameui.info/">Icons.zip</a></b>
+: This file contains icons for every game in MameUI and the folder view on the
+far left.&nbsp; Place it in the \MameUI\icons folder, it can remain zipped to
+save slack HD space but the zip file must be named icons.zip.</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>
+<a style="color: blue; text-decoration: underline; text-underline: single" target="_blank" href="http://mameui.info/">Snap.zip</a></b> : These are a series of files that contain in-game screenshots
+of every parent game in MameUI.&nbsp; Download the packs and extract their
+contents into the \MameUI\snap directory or combine their *.png contents into
+one large snap.zip file.</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>
+Titles.zip</b> : This file can provide support for screenshots showing the
+titles of the game in MameUI, place in \titles directory.&nbsp; </p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>Marquees.zip</b> : This file can provide support for the
+marquee images that appear on the top of arcade machines, place in \marquees
+directory..</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span>
+<span style="font-style:normal; font-variant:normal; font-weight:700">Cpanel</span><b>.zip</b> : This file can provide support for the
+images of arcade control panels, place in \cpanel directory..</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span>
+<span style="font-style: normal; font-variant: normal; line-height: normal;" class="style1">
+PCB</span><b>.zip</b> : This file can provide support for the
+images of arcade printed circuit boards, place in \pcb directory..</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>
+Bkground.zip</b> : This file contains numerous images that are used as the
+background for the MameUI GUI [beneath the game list, behind the
+screenshot/folder areas]. Download this file and extract its contents into the
+\MameUI\bkground directory. Choose a background
+image in the Options menu.&nbsp; To have it rotated randomly on MameUI launch,
+toggle the checkbox in the Options • Interface Options menu.</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>
+<a target="_blank" href="http://www.arcadeflyers.net">Flyers.zip</a></b> : This file can provide support for the original flyers sent to
+arcade operators, exhorting them to buy the games, place in \flyers directory.</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>
+Cabinets.zip</b> : These are a series of files that contain images of the
+actual physical arcade machines themselves.&nbsp; Download the packs and extract their contents into the \MameUI\cabinets
+directory or combine their *.png contents into one large cabinets.zip.</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>
+<a style="color: blue; text-decoration: underline; text-underline: single" target="_blank" href="http://www.arcade-history.com">History.dat</a></b> : This file contains the original game’s designer’s names,
+and assorted trivia.&nbsp; Place this file in the \MameUI folder alongside
+MameUI.exe. It will display if the history art tab is toggled, or if the history
+tab is not selected, it will display beneath snapshots.</p>
+
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt">
+<font size="1">
+<!--webbot bot="Timestamp" s-type="EDITED" s-format="%Y-%m-%d %I:%M %p %Z" startspan -->2007-11-12 02:05 PM -0800<!--webbot bot="Timestamp" endspan i-checksum="37923" -->
+/ john iv</font></p>
+
+</body>
+
+</html> \ No newline at end of file
diff --git a/src/osd/winui/help/html/mameui_changes.txt b/src/osd/winui/help/html/mameui_changes.txt
new file mode 100644
index 00000000000..c995ab92847
--- /dev/null
+++ b/src/osd/winui/help/html/mameui_changes.txt
@@ -0,0 +1,2132 @@
+ -|ad5u1337 "unknown Scorpion '39211337' (Mazooma) (Scorpion 5, Adder 5)"
+ -|altbeastj2 "Juuouki (set 5, Japan, FD1094 317-0069)"
+ -|circusse "Circus (Sub-Electro bootleg)"
+ -|gt5 "Trivia (Version 5.06)"
+ -|sc4pacmnc "Pac Man (PR7072) (Mazooma) (Scorpion 4) (set 4)"
+ -|sc4pacmnd "Pac Man (PR7072) (Mazooma) (Scorpion 4) (set 5)"
+ -|sc4pacmne "Pac Man (PR7072) (Mazooma) (Scorpion 4) (set 6)"
+ -|sfiii3a "Street Fighter III 3rd Strike: Fight for the Future (Euro 990512)"
+ -|sfiii3an "Street Fighter III 3rd Strike: Fight for the Future (Japan 990512, NO CD)"
+ -|sfiii3au "Street Fighter III 3rd Strike: Fight for the Future (USA 990512)"
+ -|spacefbu "Space Firebird (Nintendo, set 2)"
+ -|suprpkr1 "Super Poker (Version 10.15S)"
+ +|1941r1 "1941: Counter Attack (World)"
+ +|a51site4a "Area 51: Site 4 (September 11, 1998)"
+ +|arknoid2b "Arkanoid - Revenge of DOH (Japan bootleg)"
+ +|batlgr2a "Battle Gear 2 (v2.01J)"
+ +|bgareggabl "1945 Part-2 (Chinese hack of Battle Garegga)"
+ +|bigstrkba "Big Striker (bootleg w/Italian teams)"
+ +|bikkuric "Bikkuri Card (Japan)"
+ +|boblbobl2 "Bobble Bobble (set 2)"
+ +|casbjack "Casino Black Jack (color, Standard 00-05)"
+ +|caspoker "Casino Poker (Ver PM86LO-35-5, German)"
+ +|chamburger "Hamburger (DECO Cassette, Japan)"
+ +|chance32 "Chance Thirty Two"
+ +|cninjaa "Caveman Ninja (alternate)"
+ +|cninjabl2 "Caveman Ninja (bootleg, alt)"
+ +|congoa "Congo Bongo (Rev C, 3 board stack)"
+ +|coozumou "Oozumou - The Grand Sumo (DECO Cassette, Japan)"
+ +|cskater "Skater (DECO Cassette, Japan)"
+ +|csplayh1 "Super CD Dai8dan Mahjong Hanafuda Cosplay Tengoku (Japan)"
+ +|drgninjab "Dragonninja (bootleg)"
+ +|driblingbr "Dribbling (bootleg, Brazil)"
+ +|drivfrct "Top Racer (bootleg of Driving Force)"
+ +|dtfamily "Diet Family"
+ +|dwpc "Dragon World Pretty Chance (V101, Japan)"
+ +|dynablstb2 "Dynablaster / Bomber Man (bootleg, alt)"
+ +|ertictaca "Erotictac/Tactic (ver 01)"
+ +|eyesb "Eyes (bootleg set 1)"
+ +|fantastc "Fantastic"
+ +|ffighta "Final Fight (World, set 2)"
+ +|fsoccerba "Fighting Soccer (Joystick hack bootleg, alt)"
+ +|funcube5 "Funcube 5 (v1.0)"
+ +|funriverd1 "Fun River (Version 1.3R CGA)"
+ +|galemp "Galaxy Empire (bootleg?)"
+ +|gldarrow "Golden Arrow (Standard G8-03)"
+ +|gtsers10a "Trivia (Questions Series 10 Alt Question Rom)"
+ +|gtsers11a "Trivia (Questions Series 11 Alt Question Rom)"
+ +|gtsers12 "Trivia (Questions Series 12)"
+ +|gtsers14 "Trivia (Questions Series 14)"
+ +|gtsers15 "Trivia (Questions Series 15)"
+ +|haunthig "Haunted House (IGS)"
+ +|hndlchmp "Handle Champ (GQ710 VER. JAB)"
+ +|hotmindff "Hot Mind (Fit of Fighting hardware)"
+ +|hypbbc2p "Hyper Bishi Bashi Champ - 2 Player (GX908 1999/08/24 VER. JAA)"
+ +|hypbbc2pk "Hyper Bishi Bashi Champ - 2 Player (GX908 1999/08/24 VER. KAA)"
+ +|initdv3e "Initial D Arcade Stage Ver. 3 (Export) (GDS-0033)"
+ +|intrepidb "Intrepid (bootleg)"
+ +|invadpt2br "Space Invaders Part II (Brazil)"
+ +|jankenmn "Janken Man Kattara Ageru"
+ +|jzth "Jue Zhan Tian Huang"
+ +|kong "Kong (Brazil)"
+ +|kovshxas "Knights of Valour: Aoshi Sanguo / Sangoku Senki: Aoshi Sanguo (ver. 202CN)"
+ +|luckboom "Lucky Boom"
+ +|manohman "Mann, oh-Mann"
+ +|mazan "Mazan: Flash of the Blade (MAZ1 Ver. A)"
+ +|megat2caa "Pit Boss Megatouch II (9255-10-06 ROE, California version)"
+ +|megat4c "Megatouch IV (9255-40-01 RO, Standard version)"
+ +|mooncrstuku "Moon Cresta (Nichibutsu UK, unencrypted)"
+ +|nflclsfb "NFL Classic Football (NCF3 Ver.A.)"
+ +|nibblerp "Nibbler (Pioneer Balloon conversion)"
+ +|ninjaslt "Ninja Assault (NJA3 Ver. A)"
+ +|orunnersj "OutRunners (Japan)"
+ +|pclb2elk "Print Club 2 Earth Limited Kobe (Print Club Custom) (J 970808 V1.000)"
+ +|polarisbr "Polaris (Brazil)"
+ +|potgoldu "Pot O' Gold (U.S. Games, v400x?)"
+ +|pr_qksht "Quickshot (Maygay) (PROCONN)"
+ +|pwrshovl "Power Shovel ni Norou!! - Power Shovel Simulator"
+ +|pyson "Konami Pyson BIOS"
+ +|quizshow "Quiz Show"
+ +|rfjett "Raiden Fighters Jet (Taiwan)"
+ +|sc2luvv1 "Luvvly Jubbly (set 2, UK, Arcade, 10GBP Jackpot) (Scorpion 2/3)"
+ +|sc2luvv1p "Luvvly Jubbly (set 2, UK, Arcade, 10GBP Jackpot, Protocol) (Scorpion 2/3)"
+ +|sc2luvv2 "Luvvly Jubbly (set 3, UK, Multisite) (Scorpion 2/3)"
+ +|sc2luvv2p "Luvvly Jubbly (set 3, UK, Multisite, Protocol) (Scorpion 2/3)"
+ +|sc2luvv3 "Luvvly Jubbly (set 4, UK, Arcade) (Scorpion 2/3)"
+ +|sc2luvv4 "Luvvly Jubbly (set 5, UK, Arcade) (Scorpion 2/3)"
+ +|sc2luvv5p "Luvvly Jubbly (set 6, UK, Protocol) (Scorpion 2/3)"
+ +|sc2luvv6p "Luvvly Jubbly (set 7, UK, Protocol) (Scorpion 2/3)"
+ +|sc2luvv7p "Luvvly Jubbly (set 8, UK, Protocol) (Scorpion 2/3)"
+ +|sc4boomb "Monopoly Boom Or Bust (Bellfruit) (Scorpion 4) (set 1)"
+ +|sc4boomba "Monopoly Boom Or Bust (Bellfruit) (Scorpion 4) (set 2)"
+ +|sc4bwow "Wheel Of Wealth (Bellfruit) (PR1726) (Scorpion 4) (WHEL013, set 1)"
+ +|sc4bwowa "Wheel Of Wealth (Bellfruit) (PR1726) (Scorpion 4) (WHEL013, set 2)"
+ +|sc4cckeyl "Casino Crazy Fruits Gold (Bellfruit) (Scorpion 4) (set 13)"
+ +|sc4cckeym "Casino Crazy Fruits Gold (Bellfruit) (Scorpion 4) (set 14)"
+ +|sc4cckeyn "Casino Crazy Fruits Gold (Bellfruit) (Scorpion 4) (set 15)"
+ +|sc4cckeyo "Casino Crazy Fruits Gold (Bellfruit) (Scorpion 4) (set 16)"
+ +|sc4cclimq "Crazy Climber (Bellfruit) (Scorpion 4) (set 18)"
+ +|sc4cclimr "Crazy Climber (Bellfruit) (Scorpion 4) (set 19)"
+ +|sc4cclims "Crazy Climber (Bellfruit) (Scorpion 4) (set 20)"
+ +|sc4cclimt "Crazy Climber (Bellfruit) (Scorpion 4) (set 21)"
+ +|sc4cclimu "Crazy Climber (Bellfruit) (Scorpion 4) (set 22)"
+ +|sc4clbmn "Club Moneybags (Bellfruit) (Scorpion 4) (set 1)"
+ +|sc4clbmna "Club Moneybags (Bellfruit) (Scorpion 4) (set 2)"
+ +|sc4clbmnb "Club Moneybags (Bellfruit) (Scorpion 4) (set 3)"
+ +|sc4clbmnc "Club Moneybags (Bellfruit) (Scorpion 4) (set 4)"
+ +|sc4crcpi "Cops 'n' Robbers Club Platinum (Bellfruit) (Scorpion 4) (set 9)"
+ +|sc4crcpj "Cops 'n' Robbers Club Platinum (Bellfruit) (Scorpion 4) (set 10)"
+ +|sc4crzkyt "Crazy Keys Casino (Bellfruit) (Scorpion 4) (set 13)"
+ +|sc4crzkyu "Crazy Keys Casino (Bellfruit) (Scorpion 4) (set 14)"
+ +|sc4crzkyv "Crazy Keys Casino Arcade (Bellfruit) (Scorpion 4) (set 9)"
+ +|sc4crzkyw "Crazy Keys Casino Arcade (Bellfruit) (Scorpion 4) (set 10)"
+ +|sc4fguyd "Family Guy (Bellfruit) (Scorpion 4) (set 5)"
+ +|sc4fguye "Family Guy (Bellfruit) (Scorpion 4) (set 6)"
+ +|sc4ggtb "Golden Game (Mazooma) (PR2056, Top Box) (Scorpion 4) (set 1)"
+ +|sc4ggtba "Golden Game (Mazooma) (PR2056, Top Box) (Scorpion 4) (set 2)"
+ +|sc4ggtbb "Golden Game (Mazooma) (PR2056, Top Box) (Scorpion 4) (set 3)"
+ +|sc4hntcsp "Happy Notes Casino (Bellfruit) (Scorpion 4) (set 17)"
+ +|sc4hntcsq "Happy Notes Casino (Bellfruit) (Scorpion 4) (set 18)"
+ +|sc4hntcsr "Happy Notes Casino (Bellfruit) (Scorpion 4) (set 19)"
+ +|sc4hntcss "Happy Notes Casino (Bellfruit) (Scorpion 4) (set 20)"
+ +|sc4ijobl "Italian Job (Mazooma) (Scorpion 4) (set 13)"
+ +|sc4ijobm "Italian Job (Mazooma) (Scorpion 4) (set 14)"
+ +|sc4luckb1 "Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 23)"
+ +|sc4luckb2 "Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 24)"
+ +|sc4luckb3 "Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 25)"
+ +|sc4luckb4 "Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 26)"
+ +|sc4mgrj "Money Go Round Casino (Bellfruit) (Scorpion 4) (set 11)"
+ +|sc4mgrk "Money Go Round Casino (Bellfruit) (Scorpion 4) (set 12)"
+ +|sc4mgrl "Money Go Round Casino (Bellfruit) (Scorpion 4) (set 13)"
+ +|sc4mgrm "Money Go Round Casino (Bellfruit) (Scorpion 4) (set 14)"
+ +|sc4mhpl "Monopoly Hot Property (Bellfruit) (Scorpion 4) (set 13)"
+ +|sc4mhpm "Monopoly Hot Property (Bellfruit) (Scorpion 4) (set 14)"
+ +|sc4mhpn "Monopoly Hot Property (Bellfruit) (Scorpion 4) (set 15)"
+ +|sc4mwwtb "Monopoly Wheel Of Wealth (Mazooma) (PR2389, Top Box) (Scorpion 4) (set 1)"
+ +|sc4mwwtba "Monopoly Wheel Of Wealth (Mazooma) (PR2389, Top Box) (Scorpion 4) (set 2)"
+ +|sc4mwwtbb "Monopoly Wheel Of Wealth (Mazooma) (PR2389, Top Box) (Scorpion 4) (set 3)"
+ +|sc4mwwtbc "Monopoly Wheel Of Wealth (Mazooma) (PR2389, Top Box) (Scorpion 4) (set 4)"
+ +|sc4mwwtbd "Monopoly Wheel Of Wealth (Mazooma) (PR2389, Top Box) (Scorpion 4) (set 5)"
+ +|sc4pacqp "Pac Man (PR7072) (QPS) (Scorpion 4) (set 1)"
+ +|sc4pacqpa "Pac Man (PR7072) (QPS) (Scorpion 4) (set 2)"
+ +|sc4pacqpb "Pac Man (PR7072) (QPS) (Scorpion 4) (set 3)"
+ +|sc4pogbld "Pots Of Gold Club (Bellfruit) (Scorpion 4) (set 5)"
+ +|sc4pogble "Pots Of Gold Club (Bellfruit) (Scorpion 4) (set 6)"
+ +|sc4pogh "Pots Of Gold (Bellfruit) (Scorpion 4) (set 9)"
+ +|sc4pogi "Pots Of Gold (Bellfruit) (Scorpion 4) (set 10)"
+ +|sc4popeyd "Popeye (Mazooma) (Scorpion 4) (set 5)"
+ +|sc4popeye "Popeye (Mazooma) (Scorpion 4) (set 6)"
+ +|sc4showtf "Showtime (Bellfruit) (Scorpion 4) (set 7)"
+ +|sc4wldbnn "Wild Bunch (Bellfruit) (Scorpion 4) (set 11)"
+ +|sc4wldbno "Wild Bunch (Bellfruit) (Scorpion 4) (set 12)"
+ +|sc4wldbnp "Wild Bunch (Bellfruit) (Scorpion 4) (set 13)"
+ +|sc4wldbnq "Wild Bunch (Bellfruit) (Scorpion 4) (set 14)"
+ +|sfex2ph "Street Fighter EX2 Plus (Hispanic 990611)"
+ +|sfiii3nr1 "Street Fighter III 3rd Strike: Fight for the Future (Japan 990512, NO CD)"
+ +|sfiii3r1 "Street Fighter III 3rd Strike: Fight for the Future (Euro 990512)"
+ +|sfiii3ur1 "Street Fighter III 3rd Strike: Fight for the Future (USA 990512)"
+ +|silvmil "Silver Millennium"
+ +|soulclb3a "Soul Calibur III (SC31002-NA-A)"
+ +|soulsurf "Soul Surfer (Rev A)"
+ +|spikes91a "1991 Spikes (Italian bootleg, set 2)"
+ +|springbd "Springboard (bootleg of Circus)"
+ +|ssf2xjr "Super Street Fighter II X: Grand Master Challenge (Japan 940223 rent version)"
+ +|sshooter17 "Sharpshooter (Rev 1.7)"
+ +|superchsj "Super Chase - Criminal Termination (Japan)"
+ +|suprpokra "Super Poker (Version 10.15S)"
+ +|suprpokrb "Super Poker (Version 10.10)"
+ +|suprstar "Super Stars"
+ +|tbowlp "Tecmo Bowl (World, prototype?)"
+ +|tekken4c "Tekken 4 (TEF1 Ver. C)"
+ +|touryuu "Touryuumon (V1.1)?"
+ +|tvlegaxe "Makyo Densetsu - The Legenary Axe (Tourvision PCE bootleg)"
+ +|tvsvball "Super Volley ball (Tourvision PCE bootleg)"
+ +|vcopa "Virtua Cop (Revision A)"
+ +|vhuntjr1s "Vampire Hunter: Darkstalkers' Revenge (Japan 950307 stop version)"
+ +|voyager "Star Trek: Voyager"
+ +|wboy5 "Wonder Boy (set 5, bootleg)"
+ +|wboyub "Wonder Boy (US bootleg)"
+ +|winrungp "Winning Run Suzuka Grand Prix (Japan)"
+ +|wstrike "Witch Strike (Export, 6T/12T ver 1.01A)"
+ +|wstrikea "Witch Strike (Export, 6T/12T ver 1.01B)"
+ +|wswe "World Soccer Winning Eleven Arcade Game Style"
+ +|wswe2k3 "World Soccer Winning Eleven Arcade Game 2003"
+ +|wtchjack "Witch Jack (Export, 6T/12T ver 0.87-89)"
+ +|wtchjacka "Witch Jackpot (Export, 6T/12T ver 0.25)"
+ +|wtchjackb "Witch Jack (Export, 6T/12T ver 0.40)"
+ +|wtchjackc "Witch Jack (Export, 6T/12T ver 0.40T)"
+ +|wtchjackd "Witch Jack (Export, 6T/12T ver 0.62)"
+ +|wtchjacke "Witch Jack (Export, 6T/12T ver 0.64)"
+ +|wtchjackf "Witch Jack (Export, 6T/12T ver 0.65)"
+ +|wtchjackg "Witch Jack (Export, 6T/12T ver 0.70S)"
+ +|wtchjackh "Witch Jack (Export, 6T/12T ver 0.70P)"
+ +|wtchjacki "Witch Jack (Export, 6T/12T ver 0.87)"
+ +|wtchjackj "Witch Jack (Export, 6T/12T ver 0.87-88)"
+ +|wupndown "Witch Up & Down (Export, 6T/12T ver 1.02)"
+ +|wupndowna "Witch Up & Down (Export, 6T/12T ver 0.99, set 1)"
+ +|wupndownb "Witch Up & Down (Export, 6T/12T ver 0.99, set 2)"
+ +|wupndownc "Witch Up & Down (Export, 6T/12T ver 0.99, set 3)"
+ +|wupndownd "Witch Up & Down (Export, 6T/12T ver 0.99T)"
+ +|yosimotm "Mahjong Yoshimoto Gekijou [BET] (Japan)"
+ +|zekepeak "Zeke's Peak"
+ +|zerotm2k "Zero Team 2000"
+ +|zokumahj "Zoku Mahjong Housoukyoku (Japan)"
+ C|1941 "1941: Counter Attack (World 900227)"
+ c|1941 "1941: Counter Attack (World)"
+ C|99lstwar "'99: The Last War (set 1)"
+ c|99lstwar "'99: The Last War"
+ c|99lstwara "'99: The Last War (alternate)"
+ C|99lstwara "'99: The Last War (set 2)"
+ C|altbeast5 "Altered Beast (set 5, FD1094 317-0069)"
+ c|altbeast5 "Altered Beast (set 6, 8751 317-0076)"
+ C|altbeast6 "Altered Beast (set 6, 8751 317-0076)"
+ C|am_mg3a "Multi Game III (V.Ger 3.64)"
+ c|am_uslot "Amatic Unknown Slots Game"
+ C|andromep "Andromeda (set 1)"
+ c|andromep "Andromeda"
+ c|andromepa "Andromeda (alternate set)"
+ C|andromepa "Andromeda (set 2)"
+ C|antar "Antar (set 1)"
+ c|antar "Antar"
+ c|antar2 "Antar (alternate set)"
+ C|antar2 "Antar (set 2)"
+ C|babypac "Baby Pac-Man (set 1)"
+ c|babypac "Baby Pacman (Video/Pinball Combo)"
+ C|babypac2 "Baby Pac-Man (set 2)"
+ C|baluba "Baluba-louk no Densetsu (Japan)"
+ c|baluba "Baluba-louk no Densetsu"
+ C|bmcpokr "unknown BMC poker game"
+ c|bmcpokr "Unknown BMC Poker Game"
+ c|brooklyn "Brooklyn (Bingo)"
+ C|brooklyn "Brooklyn (set 1) (Bingo)"
+ c|brooklyna "Brooklyn (alternate set)(Bingo)"
+ C|brooklyna "Brooklyn (set 2) (Bingo)"
+ c|bucky "Bucky O'Hare (ver EA)"
+ C|bucky "Bucky O'Hare (ver EAB)"
+ c|buckyaa "Bucky O'Hare (ver AA)"
+ C|buckyaab "Bucky O'Hare (ver AAB)"
+ c|buckyua "Bucky O'Hare (ver UA)"
+ C|buckyuab "Bucky O'Hare (ver UAB)"
+ C|bushido "Bushido (set 1)"
+ c|bushido "Bushido"
+ c|bushidoa "Bushido (alternate set)"
+ C|bushidoa "Bushido (set 2)"
+ c|castfant "Astro Fantasia (Cassette)"
+ C|castfant "Astro Fantasia (DECO Cassette)"
+ c|caveman "Caveman (Pinball/Video Combo)"
+ C|caveman "Caveman (Pinball/Video Combo, set 1)"
+ c|cbdash "Boulder Dash (Cassette)"
+ C|cbdash "Boulder Dash (DECO Cassette)"
+ c|cbnj "Bump 'n' Jump (Cassette)"
+ C|cbnj "Bump 'n' Jump (DECO Cassette)"
+ c|cbtime "Burger Time (Cassette)"
+ C|cbtime "Burger Time (DECO Cassette)"
+ c|cburnrub "Burnin' Rubber (Cassette, set 1)"
+ C|cburnrub "Burnin' Rubber (DECO Cassette, set 1)"
+ c|cburnrub2 "Burnin' Rubber (Cassette, set 2)"
+ C|cburnrub2 "Burnin' Rubber (DECO Cassette, set 2)"
+ c|cdiscon1 "Disco No.1 (Cassette)"
+ C|cdiscon1 "Disco No.1 (DECO Cassette)"
+ C|cdsteljn "DS Telejan (DECO Cassette, Japan)"
+ c|cexplore "Explorer (Cassette)"
+ C|cexplore "Explorer (DECO Cassette)"
+ c|cfghtice "Fighting Ice Hockey (Cassette)"
+ C|cfghtice "Fighting Ice Hockey (DECO Cassette)"
+ c|cflyball "Flying Ball (Cassette)"
+ C|cflyball "Flying Ball (DECO Cassette)"
+ c|cgraplop "Cluster Buster / Graplop (Cassette, set 1)"
+ C|cgraplop "Cluster Buster / Graplop (DECO Cassette, set 1)"
+ c|cgraplop2 "Cluster Buster / Graplop (Cassette, set 2)"
+ C|cgraplop2 "Cluster Buster / Graplop (DECO Cassette, set 2)"
+ C|chkun "Chance Kun (Japan)"
+ c|chkun "Chance Kun"
+ c|chwy "Highway Chase (Cassette)"
+ C|chwy "Highway Chase (DECO Cassette)"
+ c|clapapa "Rootin' Tootin' / La-Pa-Pa (Cassette)"
+ C|clapapa "Rootin' Tootin' / La-Pa-Pa (DECO Cassette)"
+ c|clapapa2 "Rootin' Tootin' (Cassette)"
+ C|clapapa2 "Rootin' Tootin' (DECO Cassette)"
+ C|cliffhgr "Cliff Hanger (set 1)"
+ c|cliffhgr "Cliff Hanger"
+ c|cliffhgra "Cliff Hanger (Alt)"
+ C|cliffhgra "Cliff Hanger (set 2)"
+ c|clocknch "Lock'n'Chase (Cassette)"
+ C|clocknch "Lock'n'Chase (DECO Cassette)"
+ c|cluckypo "Lucky Poker (Cassette)"
+ C|cluckypo "Lucky Poker (DECO Cassette)"
+ c|cmissnx "Mission-X (Cassette)"
+ C|cmissnx "Mission-X (DECO Cassette)"
+ c|cnightst "Night Star (Cassette, set 1)"
+ C|cnightst "Night Star (DECO Cassette, set 1)"
+ c|cnightst2 "Night Star (Cassette, set 2)"
+ C|cnightst2 "Night Star (DECO Cassette, set 2)"
+ C|congo "Congo Bongo (Rev C, 2 board stack)"
+ c|congo "Congo Bongo"
+ c|cppicf "Peter Pepper's Ice Cream Factory (Cassette, set 1)"
+ C|cppicf "Peter Pepper's Ice Cream Factory (DECO Cassette, set 1)"
+ c|cppicf2 "Peter Pepper's Ice Cream Factory (Cassette, set 2)"
+ C|cppicf2 "Peter Pepper's Ice Cream Factory (DECO Cassette, set 2)"
+ c|cprobowl "Pro Bowling (Cassette)"
+ C|cprobowl "Pro Bowling (DECO Cassette)"
+ c|cprogolf "Tournament Pro Golf (Cassette)"
+ C|cprogolf "Tournament Pro Golf (DECO Cassette)"
+ C|cprogolfj "Tournament Pro Golf (DECO Cassette, Japan)"
+ c|cpsoccer "Pro Soccer (Cassette)"
+ C|cpsoccer "Pro Soccer (DECO Cassette)"
+ c|cpsoccerj "Pro Soccer (Cassette, Japan)"
+ C|cpsoccerj "Pro Soccer (DECO Cassette, Japan)"
+ c|cptennis "Pro Tennis (Cassette)"
+ C|cptennis "Pro Tennis (DECO Cassette)"
+ c|cscrtry "Scrum Try (Cassette, set 1)"
+ C|cscrtry "Scrum Try (DECO Cassette, set 1)"
+ c|cscrtry2 "Scrum Try (Cassette, set 2)"
+ C|cscrtry2 "Scrum Try (DECO Cassette, set 2)"
+ C|csdtenis "Super Doubles Tennis (DECO Cassette, Japan)"
+ c|csuperas "Super Astro Fighter (Cassette)"
+ C|csuperas "Super Astro Fighter (DECO Cassette)"
+ c|csweetht "Sweet Heart (Cassette)"
+ C|csweetht "Sweet Heart (DECO Cassette)"
+ c|cterrani "Terranean (Cassette)"
+ C|cterrani "Terranean (DECO Cassette)"
+ c|ctisland "Treasure Island (Cassette, set 1)"
+ C|ctisland "Treasure Island (DECO Cassette, set 1)"
+ c|ctisland2 "Treasure Island (Cassette, set 2)"
+ C|ctisland2 "Treasure Island (DECO Cassette, set 2)"
+ c|ctisland3 "Treasure Island (Cassette, set 3)"
+ C|ctisland3 "Treasure Island (DECO Cassette, set 3)"
+ c|ctornado "Tornado (Cassette)"
+ C|ctornado "Tornado (DECO Cassette)"
+ c|ctsttape "Test Tape (Cassette)"
+ C|ctsttape "Test Tape (DECO Cassette)"
+ c|czeroize "Zeroize (Cassette)"
+ C|czeroize "Zeroize (DECO Cassette)"
+ C|darksealj "Dark Seal (Japan revision 4)"
+ c|darksealj "Dark Seal (Japan)"
+ c|ddp2 "Bee Storm - DoDonPachi II (ver. 102)"
+ C|ddp2 "DoDonPachi II - Bee Storm (Japan, ver. 102)"
+ c|ddp2100 "Bee Storm - DoDonPachi II (ver. 100)"
+ C|ddp2100 "DoDonPachi II - Bee Storm (Japan, ver. 100)"
+ c|ddp2101 "Bee Storm - DoDonPachi II (ver. 101)"
+ C|ddp2101 "DoDonPachi II - Bee Storm (Japan, ver. 101)"
+ c|deerhuntc "Deer Hunting USA V2"
+ C|deerhuntc "Deer Hunting USA V3"
+ C|deerhuntd "Deer Hunting USA V2"
+ c|dirtdvls "Dirt Devils (Revision A)"
+ C|dirtdvls "Dirt Devils (set 1) (Revision A)"
+ c|dirtdvlsa "Dirt Devils (alt) (Revision A)"
+ C|dirtdvlsa "Dirt Devils (set 2) (Revision A)"
+ c|disco_l1 "Disco Fever (L-1"
+ C|disco_l1 "Disco Fever (L-1)"
+ C|dmnfrnt "Demon Front (68k label V105, ROM M105XX 08/05/02) (ARM label V105, ROM 08/05/02 S105XX)"
+ c|dmnfrnt "Demon Front (ver. 102)"
+ C|dmnfrnta "Demon Front (68k label V102, ROM M102XX 06/19/02) (ARM label V102, ROM 05/24/02 S101XX)"
+ c|dmnfrnta "Demon Front (ver. 105)"
+ C|dmnfrntpcb "Demon Front (68k label V107KR, ROM M107KR 11/03/03) (ARM label V106KR, ROM 10/16/03 S106KR) (JAMMA PCB)"
+ c|doncdoon "Donchan no Hanabi de Doon"
+ C|doncdoon "Hanabi de Doon! - Don-chan Puzzle"
+ c|dynabb "Dynamite Baseball '97 (Revision A)"
+ C|dynabb "Dynamite Baseball"
+ C|dynabb97 "Dynamite Baseball 97 (Revision A)"
+ c|ec_laby "Labyrinth (Electrocoin) (?)"
+ C|ec_laby "Labyrinth (v8) (Electrocoin)"
+ c|ec_penni "Pennies From Heaven (Electrocoin) (?)"
+ C|ec_penni "Pennies From Heaven (v1) (Electrocoin)"
+ c|ec_pyram "Pyramid (Electrocoin) (?)"
+ C|ec_pyram "Pyramid (v6) (Electrocoin)"
+ c|ec_secrt "Secret Castle (Electrocoin) (?)"
+ C|ec_secrt "Secret Castle (v1) (Electrocoin)"
+ c|ec_sphin "Sphinx (Electrocoin) (?)"
+ C|ec_sphin "Sphinx (v1) (Electrocoin)"
+ c|ec_unkt "Unknown 'T' (MAB PCB?) (Concept Games Ltd) (?)"
+ C|ec_unkt "unknown 'T' (MAB PCB?) (Concept Games Ltd) (?)"
+ c|ep_beavr "Beaver Las Vegas (Global) (EPOCH, set 1)"
+ C|ep_beavr "Casino Beaver Las Vegas (Global) (EPOCH, set 1)"
+ c|ep_beavra "Beaver Las Vegas (Global) (EPOCH, set 2)"
+ C|ep_beavra "Casino Beaver Las Vegas (Global) (EPOCH, set 2)"
+ c|ep_milhr "Who Wants To Be A Millionhare (Global) (EPOCH)"
+ C|ep_milhr "Who Wants To Be A Millionhare? (Global) (EPOCH)"
+ c|ep_pkni "Phoenix Knights (Global) (EPOCH)"
+ C|ep_pkni "The Phoenix Knights (Global) (EPOCH)"
+ C|exctsccrj "Exciting Soccer (Japan set 1)"
+ c|exctsccrj "Exciting Soccer (Japan)"
+ C|eyeszacb "Eyes (bootleg set 2, decrypted)"
+ c|eyeszacb "Eyes (bootleg)"
+ c|falcnwlda "Falcons Wild - World Wide Poker (Video Klein)"
+ C|falcnwlda "Falcons Wild - World Wide Poker (Video Klein, set 1)"
+ c|falcnwldb "Falcons Wild - World Wide Poker (Falcon original)"
+ C|falcnwldb "Falcons Wild - World Wide Poker (Video Klein, set 2)"
+ C|falcnwldc "Falcons Wild - World Wide Poker (Falcon original)"
+ C|fashiong "Fashion Gambler (set 1)"
+ c|fashiong "Fashion Gambler"
+ C|fashiong2 "Fashion Gambler (set 2)"
+ c|fashiong2 "Fashion Gambler (Set 2)"
+ c|ffight "Final Fight (World)"
+ C|ffight "Final Fight (World, set 1)"
+ c|forgottnu "Forgotten Worlds (USA, B-Board 88621B-2)"
+ C|forgottnu "Forgotten Worlds (USA, B-Board 88621B-2, Rev. C)"
+ C|forgottnu1 "Forgotten Worlds (USA, B-Board 88618B-2, Rev. C)"
+ c|forgottnua "Forgotten Worlds (USA, B-Board 88618B-2)"
+ C|forgottnua "Forgotten Worlds (USA, B-Board 88618B-2, Rev. A)"
+ C|garou "Garou - Mark of the Wolves (NGM-2530)"
+ c|garou "Garou - Mark of the Wolves (set 1)"
+ C|garouh "Garou - Mark of the Wolves (NGM-2530)(NGH-2530)"
+ c|garouo "Garou - Mark of the Wolves (set 2)"
+ c|ggate "Golden Gate (Bingo)"
+ C|ggate "Golden Gate (set 1) (Bingo)"
+ c|ggatea "Golden Gate (alternate set)(Bingo)"
+ C|ggatea "Golden Gate (set 2) (Bingo)"
+ c|gl_coc "Carry On Clubbin' (Global) (Stealth)"
+ C|gl_coc "Carry On Clubbin' (Global) (v3.0) (Stealth)"
+ C|gl_coc29 "Carry On Clubbin' (Global) (v2.9) (Stealth)"
+ C|gl_coc29p "Carry On Clubbin' (Global) (v2.9 Protocol) (Stealth)"
+ C|gl_cocp "Carry On Clubbin' (Global) (v3.0 Protocol) (Stealth)"
+ c|gl_dow "Deals On Wheels (Global) (Stealth)"
+ C|gl_dow "Deals On Wheels (Global) (v1.4) (Stealth)"
+ c|gl_dowcl "Deals On Wheels Club (Global) (Stealth)"
+ C|gl_dowcl "Deals On Wheels Club (Global) (v1.6) (Stealth)"
+ C|gl_dowclp "Deals On Wheels Club (Global) (v1.6 Protocol) (Stealth)"
+ C|gl_dowp "Deals On Wheels (Global) (v1.4 Protocol) (Stealth)"
+ c|gl_hbh "Heartbreak Hotel (Global) (Stealth)"
+ C|gl_hbh "Heartbreak Hotel (Global) (v1.0) (Stealth)"
+ c|gl_hbhcl "Heartbreak Hotel Club (Global) (Stealth)"
+ C|gl_hbhcl "Heartbreak Hotel Club (Global) (v1.9) (Stealth)"
+ C|gl_hbhcla "Heartbreak Hotel Club (Global) (Set 2) (Stealth)"
+ C|gl_hbhclp "Heartbreak Hotel Club (Global) (v1.9 Protocol) (Stealth)"
+ c|gl_uyr "Up Yer Riggin Club (Global) (Stealth)"
+ C|gl_uyr "Up Yer Riggin Club (Global) (v2.8) (Stealth)"
+ C|gl_uyrp "Up Yer Riggin Club (Global) (v2.8 Protocol) (Stealth)"
+ c|gl_wywh "Wish You Were Here Club (Global) (Stealth)"
+ C|gl_wywh "Wish You Were Here Club (Global) (v2.9) (Stealth)"
+ C|gl_wywh24 "Wish You Were Here Club (Global) (v2.4) (Stealth)"
+ C|gl_wywh24p "Wish You Were Here Club (Global) (v2.4 Protocol) (Stealth)"
+ C|gl_wywhp "Wish You Were Here Club (Global) (v2.9 Protocol) (Stealth)"
+ C|goldball "Gold Ball (set 1)"
+ c|goldball "Gold Ball"
+ c|goldballn "Gold Ball (alternate set)"
+ C|goldballn "Gold Ball (set 2)"
+ C|goldmedl "Gold Medalist (set 1)"
+ c|goldmedl "Gold Medalist"
+ c|goldmedla "Gold Medalist (alt)"
+ C|goldmedla "Gold Medalist (set 2)"
+ c|granny "Granny and the Gators (Video/Pinball Combo)"
+ C|granny "Granny and the Gators"
+ C|gt103a1 "Trivia (Unsorted question roms)"
+ c|gt103a1 "Trivia (Version 1.03a) (alt 1)"
+ c|gt103a2 "Trivia (Version 1.03a) (alt 2)"
+ c|gt103a3 "Trivia (Version 1.03a) (alt 3)"
+ C|gt103aa "Trivia (Version 1.03a Alt questions 1)"
+ c|gt103aa "Trivia (Version 1.03a Alt questions)"
+ C|gt103ab "Trivia (Version 1.03a Alt questions 2)"
+ C|gulfstrm "Gulf Storm (set 1)"
+ c|gulfstrm "Gulf Storm"
+ C|gulfstrma "Gulf Storm (set 2)"
+ C|gundealrt "Gun Dealer (Japan)"
+ c|gundealrt "Gun Dealer (Korea)"
+ C|gunsur2 "Gun Survivor 2 Biohazard Code: Veronica (BHF1 Ver. A)"
+ c|gunsur2 "Gun Survivor 2 Biohazard Code: Veronica"
+ c|hb_mrmon "Mr Money (Qps)"
+ C|hb_mrmon "Mr. Money (Qps)"
+ C|hb_ydd "Yabba-Dabba-Dough (Qps)"
+ c|hb_ydd "Yabba Dabba Dough (Qps)"
+ C|hyhoo "Hayaoshi Taisen Quiz Hyhoo (Japan)"
+ c|hyhoo "Taisen Quiz HYHOO (Japan)"
+ C|hyhoo2 "Hayaoshi Taisen Quiz Hyhoo 2 (Japan)"
+ c|hyhoo2 "Taisen Quiz HYHOO 2 (Japan)"
+ C|hyperbbc "Hyper Bishi Bashi Champ (GQ876 VER. EAA)"
+ c|hyperbbc "Hyper Bishi Bashi Champ (GX908 1999/08/24 VER. JAA)"
+ C|hyperbbca "Hyper Bishi Bashi Champ (GQ876 VER. AAA)"
+ c|hyperbbck "Hyper Bishi Bashi Champ (GX908 1999/08/24 VER. KAA)"
+ c|j6cpal "Caesar's Palace (Whitbread / Crystal) (IMPACT, set 1)"
+ C|j6cpal "Caesars Palace (Whitbread / Crystal) (IMPACT, set 1)"
+ c|j6cpala "Caesar's Palace (Whitbread / Crystal) (IMPACT, set 2)"
+ C|j6cpala "Caesars Palace (Whitbread / Crystal) (IMPACT, set 2)"
+ c|j6cpalb "Caesar's Palace (Whitbread / Ace) (IMPACT)"
+ C|j6cpalb "Caesars Palace (Whitbread / Ace) (IMPACT)"
+ c|j6kapang "Kapang (Crystal) (IMPACT)"
+ C|j6kapang "Kapang! (Crystal) (IMPACT)"
+ c|jojo "JoJo's Venture (USA 990108)"
+ C|jojo "JoJo's Venture (USA 990128)"
+ c|jojoa "JoJo's Venture (USA 981202)"
+ c|jojoaj "JoJo no Kimyouna Bouken (Japan 981202)"
+ c|jojoan "JoJo's Venture (Asia 981202, NO CD)"
+ c|jojoba "JoJo no Kimyouna Bouken: Miraie no Isan (Japan 990913)"
+ C|jojoba "JoJo no Kimyouna Bouken: Miraie no Isan (Japan 990927)"
+ c|jojoban "JoJo no Kimyouna Bouken: Miraie no Isan (Japan 990913, NO CD)"
+ C|jojoban "JoJo no Kimyouna Bouken: Miraie no Isan (Japan 990927, NO CD)"
+ c|jojobane "JoJo's Bizarre Adventure (Euro 990913, NO CD)"
+ C|jojobane "JoJo's Bizarre Adventure (Euro 990927, NO CD)"
+ C|jojobaner1 "JoJo's Bizarre Adventure (Euro 990913, NO CD)"
+ C|jojobanr1 "JoJo no Kimyouna Bouken: Miraie no Isan (Japan 990913, NO CD)"
+ C|jojobar1 "JoJo no Kimyouna Bouken: Miraie no Isan (Japan 990913)"
+ c|jojoj "JoJo no Kimyouna Bouken (Japan 990108)"
+ C|jojoj "JoJo no Kimyouna Bouken (Japan 990128)"
+ C|jojojr1 "JoJo no Kimyouna Bouken (Japan 990108)"
+ C|jojojr2 "JoJo no Kimyouna Bouken (Japan 981202)"
+ c|jojon "JoJo's Venture (Asia 990108, NO CD)"
+ C|jojon "JoJo's Venture (Asia 990128, NO CD)"
+ C|jojonr1 "JoJo's Venture (Asia 990108, NO CD)"
+ C|jojonr2 "JoJo's Venture (Asia 981202, NO CD)"
+ C|jojor1 "JoJo's Venture (USA 990108)"
+ C|jojor2 "JoJo's Venture (USA 981202)"
+ C|jokpokera "Joker Poker (Version 16.03BI 5-10-85, Joker Poker ICB 9-30-86)"
+ c|jokpokera "Joker Poker (Version 16.03BI)"
+ C|kof99 "The King of Fighters '99 - Millennium Battle (NGM-2510)"
+ c|kof99 "The King of Fighters '99 - Millennium Battle (set 1)"
+ C|kof99h "The King of Fighters '99 - Millennium Battle (NGH-2510)"
+ c|kof99h "The King of Fighters '99 - Millennium Battle (set 2)"
+ c|kovlsjb "Knights of Valour: Luan Shi Jie Ba / Sangoku Senki: Luan Shi Jie Ba (ver. 200CN)"
+ C|kovlsjb "Knights of Valour: Luan Shi Jie Ba / Sangoku Senki: Luan Shi Jie Ba (ver. 200CN, set 1)"
+ c|kovlsjba "Knights of Valour: Luan Shi Jie Ba / Sangoku Senki: Luan Shi Jie Ba (alt ver. 200CN)"
+ C|kovlsjba "Knights of Valour: Luan Shi Jie Ba / Sangoku Senki: Luan Shi Jie Ba (ver. 200CN, set 2)"
+ c|kovplus "Knights of Valour Plus / Sangoku Senki Plus (ver. 119)"
+ C|kovplus "Knights of Valour Plus / Sangoku Senki Plus (ver. 119, set 1)"
+ c|kovplusa "Knights of Valour Plus / Sangoku Senki Plus (alt ver. 119)"
+ C|kovplusa "Knights of Valour Plus / Sangoku Senki Plus (ver. 119, set 2)"
+ C|kungfur "Kung-Fu Roushi"
+ c|kungfur "Kung Fu Roushi"
+ C|kungfut "Kung-Fu Taikun (set 1)"
+ c|kungfut "Kung-Fu Taikun"
+ c|kungfuta "Kung-Fu Taikun (alt)"
+ C|kungfuta "Kung-Fu Taikun (set 2)"
+ c|lhzb2a "Mahjong Long Hu Zheng Ba 2 (set 2)"
+ C|lhzb2a "Mahjong Long Hu Zheng Ba 2 (VS221M)"
+ c|m1corocb "Coronation Street Club (Maygay) (M1A/B)"
+ C|m1corocb "Coronation Street Club (Maygay) v2.1 (M1A/B)"
+ C|m1corocb1 "Coronation Street Club (Maygay) v1.1 (M1A/B)"
+ C|m1corocb1p "Coronation Street Club (Maygay) v1.1 (Protocol)(M1A/B)"
+ C|m1corocbp "Coronation Street Club (Maygay) v2.1 (Protocol) (M1A/B)"
+ c|m1cororr "Coronation Street - Rovers Return (Maygay) (M1A/B)"
+ C|m1cororr "Coronation Street - Rovers Return (Maygay) (set 1) (M1A/B)"
+ C|m1cororra "Coronation Street - Rovers Return (Maygay) (set 1) (Alternate) (M1A/B)"
+ C|m1cororrb "Coronation Street - Rovers Return (Maygay) (set 2) (M1A/B)"
+ C|m1cororrb1 "Coronation Street - Rovers Return (Maygay) (set 2) (Alternate) (M1A/B)"
+ C|m1cororrbh "Coronation Street - Rovers Return (Maygay) (set 2) (Hack) (M1A/B)"
+ C|m1cororrbp "Coronation Street - Rovers Return (Maygay) (set 2) (Protocol) (M1A/B)"
+ C|m1cororrc "Coronation Street - Rovers Return (Maygay) (set 3) (M1A/B)"
+ C|m1cororrc1 "Coronation Street - Rovers Return (Maygay) (set 3) (Alternate 1) (M1A/B)"
+ C|m1cororrc2 "Coronation Street - Rovers Return (Maygay) (set 3) (Alternate 2) (M1A/B)"
+ C|m1cororrd "Coronation Street - Rovers Return (Maygay) (set 4) (M1A/B)"
+ C|m1cororrdp "Coronation Street - Rovers Return (Maygay) (set 4) (Protocol) (M1A/B)"
+ C|m1cororre "Coronation Street - Rovers Return (Maygay) (set 5) (M1A/B)"
+ C|m1cororrf "Coronation Street - Rovers Return (Maygay) (set 6) (BW) (M1A/B)"
+ C|m1cororrfp "Coronation Street - Rovers Return (Maygay) (set 6) (BW) (Protocol) (M1A/B)"
+ C|m1cororrg "Coronation Street - Rovers Return (Maygay) (set 7) (M1A/B)"
+ C|m1cororrgp "Coronation Street - Rovers Return (Maygay) (set 7) (Protocol) (M1A/B)"
+ C|m1cororrh "Coronation Street - Rovers Return (Maygay) (set 8) (M1A/B)"
+ C|m1cororri "Coronation Street - Rovers Return (Maygay) (set 9) (M1A/B)"
+ C|m1cororrip "Coronation Street - Rovers Return (Maygay) (set 9) (Protocol) (M1A/B)"
+ C|m1cororrj "Coronation Street - Rovers Return (Maygay) (set 10) (M1A/B)"
+ C|m1cororrjp "Coronation Street - Rovers Return (Maygay) (set 10) (Protocol) (M1A/B)"
+ C|m1cororrk "Coronation Street - Rovers Return (Maygay) (set 11) (M1A/B)"
+ C|m1cororrl "Coronation Street - Rovers Return (Maygay) (set 12) (M1A/B)"
+ C|m1cororrlp "Coronation Street - Rovers Return (Maygay) (set 12) (Protocol) (M1A/B)"
+ C|m1cororrp "Coronation Street - Rovers Return (Maygay) (set 1) (Protocol) (M1A/B)"
+ c|m1corosh "Coronation Street Showcase (Maygay) (M1A/B)"
+ C|m1corosh "Coronation Street Showcase (Maygay) v1.1 (M1A/B)"
+ C|m1coroshp "Coronation Street Showcase (Maygay) v1.1 (Protocol)(M1A/B)"
+ C|m1criss "Criss Cross Club (Maygay) (Dutch) (M1A/B)"
+ c|m1criss "Criss Cross Club (Maygay) (M1A/B)"
+ c|m1dkong "Donkey Kong (Maygay) (M1A/B)"
+ C|m1dkong "Donkey Kong (Maygay) v9.2 (M1A/B)"
+ C|m1dkong11 "Donkey Kong (Maygay) v1.1 (M1A/B)"
+ C|m1dkong11p "Donkey Kong (Maygay) v1.1 (M1A/B) (Protocol?)"
+ C|m1dkong21 "Donkey Kong (Maygay) v2.1 (Older) (M1A/B)"
+ C|m1dkong21n "Donkey Kong (Maygay) v2.1 (M1A/B)"
+ C|m1dkong21p "Donkey Kong (Maygay) v2.1 (Older) (Protocol) (M1A/B)"
+ C|m1dkong31 "Donkey Kong (Maygay) v3.1 (M1A/B)"
+ C|m1dkong31p "Donkey Kong (Maygay) v3.1 (Protocol) (M1A/B)"
+ C|m1dkong41 "Donkey Kong (Maygay) v4.1 (M1A/B)"
+ C|m1dkong41p "Donkey Kong (Maygay) v4.1 (Protocol) (M1A/B)"
+ C|m1dkong51 "Donkey Kong (Maygay) v5.1 (M1A/B)"
+ C|m1dkong51p "Donkey Kong (Maygay) v5.1 (Protocol) (M1A/B)"
+ C|m1dkong81 "Donkey Kong (Maygay) v8.1 (Older) (M1A/B)"
+ C|m1dkong81n "Donkey Kong (Maygay) v8.1 (M1A/B)"
+ C|m1dkong81na "Donkey Kong (Maygay) v8.1 (Alternate) (M1A/B)"
+ C|m1dkong81np "Donkey Kong (Maygay) v8.1 (Protocol) (M1A/B)"
+ C|m1dkong81p "Donkey Kong (Maygay) v8.1 (Older) (Protocol) (M1A/B)"
+ C|m1dkong91 "Donkey Kong (Maygay) v9.1 (Older) (M1A/B)"
+ C|m1dkong91a "Donkey Kong (Maygay) v9.1 (Older) (Alternate) (M1A/B)"
+ C|m1dkong91h1 "Donkey Kong (Maygay) v9.1 (Older) (Hack 1) (M1A/B)"
+ C|m1dkong91h2 "Donkey Kong (Maygay) v9.1 (Older) (Hack 2) (M1A/B)"
+ C|m1dkong91n "Donkey Kong (Maygay) v9.1 (M1A/B)"
+ C|m1dkong91na "Donkey Kong (Maygay) v9.1 (Alternate) (M1A/B)"
+ C|m1dkong91np "Donkey Kong (Maygay) v9.1 (Protocol) (M1A/B)"
+ C|m1dkong91p "Donkey Kong (Maygay) v9.1 (Older) (Protocol) (M1A/B)"
+ C|m1dkonga "Donkey Kong (Maygay) v9.2 (Alternate) (M1A/B)"
+ C|m1dkongp "Donkey Kong (Maygay) v9.2 (Protocol) (M1A/B)"
+ c|m1dm4ev "Diamonds Are Forever Club (Maygay) (M1A/B)"
+ C|m1dm4ev "Diamonds Are Forever Club (Maygay) v5.1 (M1A/B)"
+ C|m1dm4ev11 "Diamonds Are Forever Club (Maygay) v1.1 (M1A/B)"
+ C|m1dm4evp "Diamonds Are Forever Club (Maygay) v5.1 (Protocol) n(M1A/B)"
+ c|m1dxmono "Deluxe Monopoly (Maygay) (M1A/B)"
+ C|m1dxmono "Deluxe Monopoly (Maygay) v5.1 (M1A/B)"
+ C|m1dxmono11 "Deluxe Monopoly (Maygay) v1.1 (M1A/B)"
+ C|m1dxmono11m "Deluxe Monopoly (Maygay) v1.1 (Code M) (M1A/B)"
+ C|m1dxmono11mb "Deluxe Monopoly (Maygay) v1.1 (Code M, Alternate) (M1A/B)"
+ C|m1dxmono11o "Deluxe Monopoly (Maygay) v1.1 (Older) (M1A/B)"
+ C|m1dxmono11p "Deluxe Monopoly (Maygay) v1.1 (Protocol) (M1A/B)"
+ C|m1dxmono12 "Deluxe Monopoly (Maygay) v1.2 (M1A/B)"
+ C|m1dxmono12a "Deluxe Monopoly (Maygay) v1.2 (Alternate) (M1A/B)"
+ C|m1dxmono12n "Deluxe Monopoly (Maygay) v1.2 (Newer) (M1A/B)"
+ C|m1dxmono12p "Deluxe Monopoly (Maygay) v1.2 (Protocol) (M1A/B)"
+ C|m1dxmono21p "Deluxe Monopoly (Maygay) v2.1 (Protocol) (M1A/B)"
+ C|m1dxmono30h "Deluxe Monopoly (Maygay) v3.0 (Hack) (M1A/B)"
+ C|m1dxmono31b "Deluxe Monopoly (Maygay) v3.1 (BwB set) (M1A/B)"
+ C|m1dxmono31h "Deluxe Monopoly (Maygay) v3.1 (Hack) (M1A/B)"
+ C|m1dxmono31h2 "Deluxe Monopoly (Maygay) v3.1 (Alternate Hack) (M1A/B)"
+ C|m1dxmono31p "Deluxe Monopoly (Maygay) v3.1 (Protocol) (M1A/B)"
+ C|m1dxmono51 "Deluxe Monopoly (Maygay) v5.1 (Older) (M1A/B)"
+ C|m1dxmono51o "Deluxe Monopoly (Maygay) v5.1 (Older) (M1A/B) (alt?)"
+ C|m1dxmono51p "Deluxe Monopoly (Maygay) v5.1 (Older) (Protocol) (M1A/B)"
+ C|m1dxmonop "Deluxe Monopoly (Maygay) v5.1 (Protocol) (M1A/B)"
+ C|m1liveam "Living In America (Maygay) (Alternate 1) (M1A/B)"
+ c|m1liveam "Living In America (Maygay) (M1A/B)"
+ C|m1liveama "Living In America (Maygay) (Alternate 2)(M1A/B)"
+ C|m1liveamp "Living In America (Maygay) (Protocol) (M1A/B)"
+ c|m1luxor "Luxor Casino (Gemini) (M1A/B)"
+ C|m1luxor "Luxor Casino (Gemini) v4.0 (M1A/B)"
+ C|m1luxor21 "Luxor Casino (Gemini) v2.1 (M1A/B)"
+ C|m1luxor32 "Luxor Casino (Gemini) v3.2 (M1A/B)"
+ C|m1luxor33 "Luxor Casino (Gemini) v3.3 (M1A/B)"
+ C|m5addams "Addams Family (Barcrest) (MPU5) (v0.5, set 1)"
+ c|m5addams "Addams Family (Barcrest) (MPU5)"
+ C|m5addamsa "Addams Family (Barcrest) (MPU5) (v0.5, set 2)"
+ C|m5addamsb "Addams Family (Barcrest) (MPU5) (v0.5, set 3)"
+ C|m5addamsc "Addams Family (Barcrest) (MPU5) (v0.5, set 4)"
+ C|m5addamsd "Addams Family (Barcrest) (MPU5) (v0.5, set 5)"
+ C|m5addamse "Addams Family (Barcrest) (MPU5) (v0.5, set 6)"
+ C|m5addamsf "Addams Family (Barcrest) (MPU5) (v0.5, set 7)"
+ C|m5addamsg "Addams Family (Barcrest) (MPU5) (v0.5, set 8)"
+ C|m5addamsh "Addams Family (Barcrest) (MPU5) (v0.2, set 1)"
+ C|m5addamsi "Addams Family (Barcrest) (MPU5) (v0.2, set 2)"
+ C|m5addamsj "Addams Family (Barcrest) (MPU5) (v0.2, set 3)"
+ C|m5addamsk "Addams Family (Barcrest) (MPU5) (v0.3, set 1)"
+ C|m5addamsl "Addams Family (Barcrest) (MPU5) (v0.3, set 2)"
+ C|m5addamsm "Addams Family (Barcrest) (MPU5) (v0.3, set 3)"
+ C|m5addamsn "Addams Family (Barcrest) (MPU5) (v0.3, set 4)"
+ C|m5addamso "Addams Family (Barcrest) (MPU5) (v0.3, set 5)"
+ C|m5addamsp "Addams Family (Barcrest) (MPU5) (v0.3, set 6)"
+ C|m5addamsq "Addams Family (Barcrest) (MPU5) (v0.3, set 7)"
+ C|m5addamsr "Addams Family (Barcrest) (MPU5) (v0.3, set 8)"
+ C|m5addamss "Addams Family (Barcrest) (MPU5) (v0.3, set 9)"
+ c|m5addlad "Adders & Ladders (Barcrest) (MPU5, set 1)"
+ C|m5addlad "Adders & Ladders (Barcrest) (MPU5, v0.6, set 1)"
+ c|m5addlada "Adders & Ladders (Barcrest) (MPU5, set 2)"
+ C|m5addlada "Adders & Ladders (Barcrest) (MPU5, v0.6, set 2)"
+ c|m5addladb "Adders & Ladders (Barcrest) (MPU5, set 3)"
+ C|m5addladb "Adders & Ladders (Barcrest) (MPU5, v0.6, set 3)"
+ C|m5addladc "Adders & Ladders (Barcrest) (MPU5, v0.6, set 4)"
+ C|m5addladd "Adders & Ladders (Barcrest) (MPU5, v0.6, set 5)"
+ C|m5addlade "Adders & Ladders (Barcrest) (MPU5, v0.6, set 6)"
+ C|m5addladf "Adders & Ladders (Barcrest) (MPU5, v0.6, set 7)"
+ C|m5addladg "Adders & Ladders (Barcrest) (MPU5, v0.6, set 8)"
+ C|m5addladh "Adders & Ladders (Barcrest) (MPU5, v0.6, set 9)"
+ C|m5addladi "Adders & Ladders (Barcrest) (MPU5, v0.6, set 10)"
+ C|m5addladj "Adders & Ladders (Barcrest) (MPU5, v0.1, set 1)"
+ C|m5addladk "Adders & Ladders (Barcrest) (MPU5, v0.1, set 2)"
+ C|m5addladl "Adders & Ladders (Barcrest) (MPU5, v0.1, set 3)"
+ C|m5addladm "Adders & Ladders (Barcrest) (MPU5, v0.1, set 4)"
+ C|m5addladn "Adders & Ladders (Barcrest) (MPU5, v0.1, set 5)"
+ C|m5addlado "Adders & Ladders (Barcrest) (MPU5, v0.1, set 6)"
+ C|m5addladp "Adders & Ladders (Barcrest) (MPU5, v0.1, set 7)"
+ C|m5addladq "Adders & Ladders (Barcrest) (MPU5, v0.4, set 1)"
+ C|m5addladr "Adders & Ladders (Barcrest) (MPU5, v0.4, set 2)"
+ C|m5addlads "Adders & Ladders (Barcrest) (MPU5, v?.?)"
+ C|m5all41a "All 4 One (Vivid) (MPU5, set 2)"
+ C|m5all41b "All 4 One (Vivid) (MPU5, set 3)"
+ C|m5all41c "All 4 One (Vivid) (MPU5, set 4)"
+ C|m5all41d "All 4 One (Vivid) (MPU5, set 5)"
+ C|m5all41e "All 4 One (Vivid) (MPU5, set 6)"
+ C|m5all41f "All 4 One (Vivid) (MPU5, set 7)"
+ C|m5all41g "All 4 One (Vivid) (MPU5, set 8)"
+ C|m5all41h "All 4 One (Vivid) (MPU5, set 9)"
+ C|m5all41i "All 4 One (Vivid) (MPU5, set 10)"
+ C|m5all41j "All 4 One (Vivid) (MPU5, set 11)"
+ C|m5all41k "All 4 One (Vivid) (MPU5, set 12)"
+ c|m5all41l "All 4 One (Lowen) (MPU5)"
+ C|m5all41l "All 4 One (Vivid) (MPU5, set 13)"
+ C|m5all41low "All 4 One (Lowen) (MPU5)"
+ C|m5all41m "All 4 One (Vivid) (MPU5, set 14)"
+ c|m5all41v "All 4 One (Vivid) (MPU5, set 2)"
+ c|m5ashock "Aftershock (Barcrest - Red Gaming) (MPU5)"
+ C|m5ashock "Aftershock (Barcrest - Red Gaming) (MPU5, v1.2)"
+ C|m5ashocka "Aftershock (Barcrest - Red Gaming) (MPU5, v1.3)"
+ c|m5atlan "Atlantic (Vivid) (MPU5)"
+ C|m5atlan "Atlantic (Vivid) (MPU5, v1.4)"
+ C|m5atlana "Atlantic (Vivid) (MPU5, v1.2)"
+ c|m5cockdd "Cock A Doodle Dough (Empire) (MPU5)"
+ C|m5cockdd "Cock A Doodle Dough! (Empire) (MPU5)"
+ C|m5doshpk "Do$h 'n' Pecks (Barcrest) (MPU5)"
+ c|m5doshpk "Do$h & Pecks (Barcrest) (MPU5)"
+ C|m5fewmor "A Few Dollars More (Empire) (MPU5) (v0.2, set 1)"
+ c|m5fewmor "A Few Dollars More (Empire) (MPU5)"
+ C|m5fewmora "A Few Dollars More (Empire) (MPU5) (v0.2, set 2)"
+ C|m5fewmorb "A Few Dollars More (Empire) (MPU5) (v0.3, set 1)"
+ C|m5fewmorc "A Few Dollars More (Empire) (MPU5) (v0.3, set 2)"
+ c|m5fmonty "Full Monty (Empire) (MPU5)"
+ C|m5fmonty "The Full Monty (Empire) (MPU5)"
+ c|m5sixsht "6 Shooter (Vivid) (MPU5)"
+ C|m5sixsht "Six Shooter (Vivid) (MPU5) (v1.1, set 1)"
+ C|m5sixshta "Six Shooter (Vivid) (MPU5) (v1.1, set 2)"
+ c|m5sixshta "Six Shooter (Vivid) (MPU5)"
+ C|m5sixshtb "Six Shooter (Vivid) (MPU5) (v2.0, set 1)"
+ C|m5sixshtc "Six Shooter (Vivid) (MPU5) (v2.0, set 2)"
+ C|m5sixshtd "Six Shooter (Vivid) (MPU5) (v2.0, set 3)"
+ C|m5sixshte "Six Shooter (Vivid) (MPU5) (v2.0, set 4)"
+ C|m5sixshtf "Six Shooter (Vivid) (MPU5) (v2.0, set 5)"
+ C|m5sixshtg "Six Shooter (Vivid) (MPU5) (v2.0, set 6)"
+ C|m5sixshth "Six Shooter (Vivid) (MPU5) (v2.0, set 7)"
+ C|m5sixshti "Six Shooter (Vivid) (MPU5) (v2.1, set 1)"
+ C|m5sixshtj "Six Shooter (Vivid) (MPU5) (v2.1, set 2)"
+ C|m5sixshtk "Six Shooter (Vivid) (MPU5) (v2.1, set 3)"
+ C|m5sixshtl "Six Shooter (Vivid) (MPU5) (v2.1, set 4)"
+ C|m5sixshtm "Six Shooter (Vivid) (MPU5) (v2.1, set 5)"
+ C|m5sixshtn "Six Shooter (Vivid) (MPU5) (v2.1, set 6)"
+ C|mdrawpkr "Draw Poker - Joker's Wild (Standard)"
+ c|mdrawpkr "Draw Poker Joker's Wild (Standard)"
+ C|mdrawpkra "Draw Poker - Joker's Wild (02-11)"
+ c|mdrawpkra "Draw Poker Joker's Wild (02-11)"
+ C|mirax "Mirax (set 1)"
+ c|mirax "Mirax"
+ c|mkyawdim "Mortal Kombat (Yawdim bootleg)"
+ C|mkyawdim "Mortal Kombat (Yawdim bootleg, set 1)"
+ C|mkyawdim2 "Mortal Kombat (Yawdim bootleg, set 2)"
+ C|mkyturboe "Mortal Kombat (Turbo 3.0 08/31/92, hack)"
+ c|mladyhtr "Mahjong THE LADY HUNTER (Japan 900509)"
+ C|mladyhtr "Mahjong The Lady Hunter (Japan 900509)"
+ c|mmatrixd "Mars Matrix: Hyper Solid Shooting (Japan 000412 Phoenix Edition) (bootleg)"
+ C|mmatrixd "Mars Matrix: Hyper Solid Shooting (USA 000412 Phoenix Edition) (bootleg)"
+ c|moomesa "Wild West C.O.W.-Boys of Moo Mesa (ver EA)"
+ C|moomesa "Wild West C.O.W.-Boys of Moo Mesa (ver EAB)"
+ c|moomesaa "Wild West C.O.W.-Boys of Moo Mesa (ver AA)"
+ C|moomesaaab "Wild West C.O.W.-Boys of Moo Mesa (ver AAB)"
+ c|moomesabl "Wild West C.O.W.-Boys of Moo Mesa (bootleg ver AA)"
+ C|moomesabl "Wild West C.O.W.-Boys of Moo Mesa (bootleg)"
+ c|moomesau "Wild West C.O.W.-Boys of Moo Mesa (ver UA, set 1)"
+ c|moomesaua "Wild West C.O.W.-Boys of Moo Mesa (ver UA, set 2)"
+ C|moomesauab "Wild West C.O.W.-Boys of Moo Mesa (ver UAB)"
+ C|moomesauac "Wild West C.O.W.-Boys of Moo Mesa (ver UAC)"
+ C|motrshow "Motor Show (set 1)"
+ c|motrshow "Motor Show"
+ c|motrshowa "Motor Show (alternate set)"
+ C|motrshowa "Motor Show (set 2)"
+ C|mshuttle "Moon Shuttle (US? set 1)"
+ c|mshuttle "Moon Shuttle (US?)"
+ C|mshuttlej "Moon Shuttle (Japan set 1)"
+ c|mshuttlej "Moon Shuttle (Japan)"
+ C|mslug2 "Metal Slug 2 - Super Vehicle-001/II (NGM-2410)(NGH-2410)"
+ c|mslug2 "Metal Slug 2 - Super Vehicle-001/II"
+ C|mslugx "Metal Slug X - Super Vehicle-001 (NGM-2500)(NGH-2500)"
+ c|mslugx "Metal Slug X - Super Vehicle-001"
+ C|mspacii "Ms. Pac-Man II (Orca bootleg set 1)"
+ C|mspacii2 "Ms. Pac-Man II (Orca bootleg set 2)"
+ c|nzerotea "New Zero Team"
+ C|nzeroteam "New Zero Team"
+ c|olds100 "Oriental Legend Special / Xi You Shi E Zhuan Super (ver. 100)"
+ C|olds100 "Oriental Legend Special / Xi You Shi E Zhuan Super (ver. 100, set 1)"
+ c|olds100a "Oriental Legend Special / Xi You Shi E Zhuan Super (alt ver. 100)"
+ C|olds100a "Oriental Legend Special / Xi You Shi E Zhuan Super (ver. 100, set 2)"
+ C|prosport "Pro Sports - Bowling, Tennis, and Golf (set 1)"
+ c|prosport "Pro Sports - Bowling, Tennis, and Golf"
+ c|prosporta "Pro Sports - Bowling, Tennis, and Golf (alternate)"
+ C|prosporta "Pro Sports - Bowling, Tennis, and Golf (set 2)"
+ c|pzloop2j "Puzz Loop 2 (Japan 010205)"
+ C|pzloop2j "Puzz Loop 2 (Japan 010226)"
+ C|pzloop2jr1 "Puzz Loop 2 (Japan 010205)"
+ C|quasar "Quasar (set 1)"
+ c|quasar "Quasar"
+ c|quasara "Quasar (Alternate)"
+ C|quasara "Quasar (set 2)"
+ C|rastan "Rastan (World Rev 1)"
+ c|rastan "Rastan (World)"
+ C|rastana "Rastan (World)"
+ C|rastanu "Rastan (US Rev 1)"
+ c|rastanu "Rastan (US, set 1)"
+ c|rastanu2 "Rastan (US, set 2)"
+ C|rastanua "Rastan (US)"
+ C|rastanub "Rastan (US, Earlier code base)"
+ C|rastsaga "Rastan Saga (Japan Rev 1)"
+ c|rastsaga "Rastan Saga (Japan)"
+ c|rastsaga1 "Rastan Saga (Japan Rev 1)"
+ C|rastsagaa "Rastan Saga (Japan)"
+ C|rdft2j "Raiden Fighters 2 (Japan set 1, SPI)"
+ c|rdft2j "Raiden Fighters 2 (Japan, SPI)"
+ c|redeartha "Red Earth (Euro 961023)"
+ C|redearthr1 "Red Earth (Euro 961023)"
+ C|redfoxwp2 "Red Fox War Planes II (China)"
+ c|samsh5sph "Samurai Shodown V Special / Samurai Spirits Zero Special (NGH-2720) (1st release, censored)"
+ C|samsh5sph "Samurai Shodown V Special / Samurai Spirits Zero Special (NGH-2720) (2nd release, less censored)"
+ C|samsh5spho "Samurai Shodown V Special / Samurai Spirits Zero Special (NGH-2720) (1st release, censored)"
+ c|samsh5spn "Samurai Shodown V Special / Samurai Spirits Zero Special (NGH-2720) (2nd release, less censored)"
+ c|sc1barcd "Barcode (Bellfruit) (Scorpion 1)"
+ C|sc1barcd "Barcode (Bellfruit) (set 1) (Scorpion 1)"
+ C|sc1barcda "Barcode (Bellfruit) (set 2) (Scorpion 1)"
+ c|sc1btclk "Beat The Clock (Mdm) (Scorpion 2/3)"
+ C|sc1btclk "Beat The Clock (Mdm) (set 1) (Scorpion 2/3?)"
+ C|sc1btclka "Beat The Clock (Mdm) (set 2) (Scorpion 2/3?)"
+ C|sc1btclkb "Beat The Clock (Mdm) (set 3) (Scorpion 2/3?)"
+ c|sc1ccroc "Crazy Crocs (Mdm) (Scorpion 2/3)"
+ C|sc1ccroc "Crazy Crocs (Mdm) (set 1) (Scorpion 2/3?)"
+ C|sc1ccroca "Crazy Crocs (Mdm) (set 2) (Scorpion 2/3?)"
+ C|sc1ccrocb "Crazy Crocs (Mdm) (set 3) (Scorpion 2/3?)"
+ C|sc1ccrocc "Crazy Crocs (Mdm) (set 4) (Scorpion 2/3?)"
+ c|sc1cdm "Club Diamond (Crystal) (Scorpion 1)"
+ C|sc1cdm "Club Diamond (Crystal) (set 1) (Scorpion 1)"
+ C|sc1cdmp "Club Diamond (Crystal) (set 1, Protocol) (Scorpion 1)"
+ C|sc1cexpd "Cash Explosion (Bellfruit) (Dutch) (Scorpion 1)"
+ c|sc1cexpd "Cash Explosion (Bellfruit) [Dutch] (Scorpion 1)"
+ c|sc1cexpl "Cash Explosion (Bellfruit) (Scorpion 1)"
+ C|sc1cexpl "Cash Explosion (Bellfruit) (set 1) (Scorpion 1)"
+ C|sc1cexpla "Cash Explosion (Bellfruit) (set 2) (Scorpion 1)"
+ C|sc1cexplb "Cash Explosion (Bellfruit) (set 3) (Scorpion 1)"
+ C|sc1cexplc "Cash Explosion (Bellfruit) (set 4) (Scorpion 1)"
+ C|sc1cexpld "Cash Explosion (Bellfruit) (set 5) (Scorpion 1)"
+ c|sc1chain "Chain Reaction (Bellfruit) (Scorpion 1)"
+ C|sc1chain "Chain Reaction (Bellfruit) (set 1) (Scorpion 1)"
+ C|sc1chaina "Chain Reaction (Bellfruit) (set 2) (Scorpion 1)"
+ C|sc1chainp "Chain Reaction (Bellfruit) (set 1, Protocol) (Scorpion 1)"
+ c|sc1china "China Town Club (Bellfruit) (Scorpion 1)"
+ C|sc1china "China Town Club (Bellfruit) (set 1) (Scorpion 1)"
+ C|sc1chinaa "China Town Club (Bellfruit) (set 2) (Scorpion 1)"
+ C|sc1chinaap "China Town Club (Bellfruit) (set 2, Protocol) (Scorpion 1)"
+ C|sc1chinab "China Town Club (Bellfruit) (set 3) (Scorpion 1)"
+ C|sc1chinabp "China Town Club (Bellfruit) (set 3, Protocol) (Scorpion 1)"
+ C|sc1chinap "China Town Club (Bellfruit) (set 1, Protocol) (Scorpion 1)"
+ C|sc1cl2k1 "Club 2001 (Bellfruit) (Dutch) (Scorpion 1)"
+ c|sc1cl2k1 "Club 2001 (Bellfruit) [Dutch] (Scorpion 1)"
+ c|sc1cl65 "Club 65 Special (Bellfruit) (Scorpion 1)"
+ C|sc1cl65 "Club 65 Special (Bellfruit) (set 1) (Scorpion 1)"
+ C|sc1cl65a "Club 65 Special (Bellfruit) (set 2) (Scorpion 1)"
+ C|sc1cl65ap "Club 65 Special (Bellfruit) (set 2, Protocol) (Scorpion 1)"
+ C|sc1cl65b "Club 65 Special (Bellfruit) (set 3) (Scorpion 1)"
+ C|sc1cl65bp "Club 65 Special (Bellfruit) (set 3, Protocol) (Scorpion 1)"
+ C|sc1cl65c "Club 65 Special (Bellfruit) (set 4) (Scorpion 1)"
+ C|sc1cl65d "Club 65 Special (Bellfruit) (set 5) (Scorpion 1)"
+ C|sc1cl65dp "Club 65 Special (Bellfruit) (set 5, Protocol) (Scorpion 1)"
+ C|sc1class "Classic (Bellfruit) (Dutch) (Scorpion 1)"
+ c|sc1class "Classic (Bellfruit) [Dutch] (Scorpion 1)"
+ c|sc1clbtm "Club Temptation (Bellfruit) (Scorpion 1)"
+ C|sc1clbtm "Club Temptation (Bellfruit) (set 1) (Scorpion 1)"
+ C|sc1clbtma "Club Temptation (Bellfruit) (set 2) (Scorpion 1)"
+ c|sc1clbw "Club Wise (Bellfruit) (Scorpion 1)"
+ C|sc1clbw "Club Wise (Bellfruit) (set 1) (Scorpion 1)"
+ C|sc1clbwa "Club Wise (Bellfruit) (set 2) (Scorpion 1)"
+ C|sc1clbwb "Club Wise (Bellfruit) (set 3) (Scorpion 1)"
+ C|sc1copdd "Cops 'n' Robbers Deluxe (Bellfruit) (Dutch) (Scorpion 1)"
+ c|sc1copdd "Cops 'n' Robbers Deluxe (Bellfruit) [Dutch] (Scorpion 1)"
+ c|sc1count "Count Cash Club (Bellfruit) (Scorpion 1)"
+ C|sc1count "Count Cash Club (Bellfruit) (set 1) (Scorpion 1)"
+ C|sc1counta "Count Cash Club (Bellfruit) (set 2) (Scorpion 1)"
+ C|sc1countap "Count Cash Club (Bellfruit) (set 2, Protocol) (Scorpion 1)"
+ C|sc1countb "Count Cash Club (Bellfruit) (set 3) (Scorpion 1)"
+ C|sc1countp "Count Cash Club (Bellfruit) (set 1, Protocol) (Scorpion 1)"
+ c|sc1crocr "Croc And Roll (Mdm) (Scorpion 2/3)"
+ C|sc1crocr "Croc And Roll (Mdm) (Scorpion 2/3?)"
+ C|sc1cscl "Cash Classic (Global) (set 1)"
+ c|sc1cscl "Cash Classic (Global)"
+ C|sc1cscla "Cash Classic (Global) (set 2)"
+ C|sc1csclb "Cash Classic (Maygay/Global?) (set 3)"
+ C|sc1csclc "Cash Classic (Maygay/Global?) (set 4)"
+ c|sc1cshat "Cash Attraction (Bellfruit) (Scorpion 1)"
+ C|sc1cshat "Cash Attraction (Bellfruit) (set 1) (Scorpion 1)"
+ C|sc1cshata "Cash Attraction (Bellfruit) (set 2) (Scorpion 1)"
+ C|sc1cshatb "Cash Attraction (Bellfruit) (set 3) (Scorpion 1)"
+ C|sc1cshatc "Cash Attraction (Bellfruit) (set 4) (Scorpion 1)"
+ c|sc1cshcda "Cash Card (Bellfruit) (Scorpion 1, set 1)"
+ C|sc1cshcda "Cash Card (Bellfruit) (set 1) (Scorpion 1)"
+ c|sc1cshcdb "Cash Card (Bellfruit) (Scorpion 1, set 2)"
+ C|sc1cshcdb "Cash Card (Bellfruit) (set 2) (Scorpion 1)"
+ C|sc1cshin "Cashino (Bellfruit) (Dutch) (Scorpion 1)"
+ c|sc1cshin "Cashino (Bellfruit) [Dutch] (Scorpion 1)"
+ c|sc1cshwz "Cash Wise (Bellfruit) (Scorpion 1)"
+ C|sc1cshwz "Cash Wise (Bellfruit) (set 1) (Scorpion 1)"
+ C|sc1cshwza "Cash Wise (Bellfruit) (set 2) (Scorpion 1)"
+ C|sc1cshwzb "Cash Wise (Bellfruit) (set 3) (Scorpion 1)"
+ C|sc1cshwzc "Cash Wise (Bellfruit) (set 4) (Scorpion 1)"
+ C|sc1dago "Dagobert's Vault (Bellfruit) (Dutch) (Scorpion 1)"
+ c|sc1dago "Dagobert's Vault (Bellfruit) [Dutch] (Scorpion 1)"
+ C|sc1days "All In A Days Work (Global) (set 1)"
+ c|sc1days "All In A Days Work (Global)"
+ C|sc1daysa "All In A Days Work (Global) (set 2)"
+ c|sc1dblch "Double Chance (Bellfruit) (Scorpion 1)"
+ C|sc1dblch "Double Chance (Bellfruit) (set 1) (Scorpion 1)"
+ C|sc1dblcha "Double Chance (Bellfruit) (set 2) (Scorpion 1)"
+ C|sc1disc "Discovey (Bellfruit) (Dutch) (set 1) (Scorpion 1)"
+ c|sc1disc "Discovey (Bellfruit) [Dutch] (Scorpion 1)"
+ C|sc1disca "Discovey (Bellfruit) (set 2) (Scorpion 1)"
+ C|sc1driv "Driving School (Global) (set 1)"
+ c|sc1driv "Driving School (Global)"
+ C|sc1driva "Driving School (Global) (set 2)"
+ C|sc1drivb "Driving School (Global) (set 3)"
+ C|sc1drivc "Driving School (Global) (set 4)"
+ C|sc1flash "Flash (Bellfruit) (Dutch) (Scorpion 1)"
+ c|sc1flash "Flash (Bellfruit) [Dutch] (Scorpion 1)"
+ c|sc1frpus "Fruit Pursuit (Bellfruit) (Scorpion 1?)"
+ C|sc1frpus "Fruit Pursuit (Bellfruit) (set 1) (Scorpion 1?)"
+ C|sc1frpusa "Fruit Pursuit (Bellfruit) (set 2) (Scorpion 1?)"
+ c|sc1frtln "Fruit Lines (Bellfruit) (Scorpion 1, set 2)"
+ C|sc1frtln "Fruit Lines (Bellfruit) (set 2) (Scorpion 1)"
+ c|sc1fruit "Fruit Lines (Bellfruit) (Scorpion 1, set 1)"
+ C|sc1fruit "Fruit Lines (Bellfruit) (set 1) (Scorpion 1)"
+ c|sc1funh "Fun House Club (Bellfruit) (Scorpion 1)"
+ C|sc1funh "Fun House Club (Bellfruit) (set 1) (Scorpion 1)"
+ C|sc1funha "Fun House Club (Bellfruit) (set 2) (Scorpion 1)"
+ C|sc1funhb "Fun House Club (Bellfruit) (set 3) (Scorpion 1)"
+ C|sc1funhp "Fun House Club (Bellfruit) (set 1, Protocol) (Scorpion 1)"
+ C|sc1gprix "Grand Prix (Bellfruit) (Dutch) (Scorpion 1)"
+ c|sc1gprix "Grand Prix (Bellfruit) [Dutch] (Scorpion 1)"
+ C|sc1gslam "Grand Slam (Bellfruit) (Dutch) (Scorpion 1)"
+ c|sc1gslam "Grand Slam (Bellfruit) [Dutch] (Scorpion 1)"
+ c|sc1hfcc "Hi Flyer Club (Crystal) (Scorpion 1)"
+ C|sc1hfcc "Hi Flyer Club (Crystal) (set 1) (Scorpion 1)"
+ C|sc1hfccp "Hi Flyer Club (Crystal) (set 1, Protocol) (Scorpion 1)"
+ C|sc1impc "Impact (Bellfruit) (Dutch) (Scorpion 1)"
+ c|sc1impc "Impact (Bellfruit) [Dutch] (Scorpion 1)"
+ C|sc1kings "Kings Club (Bellfruit) (Dutch) (Scorpion 1)"
+ c|sc1kings "Kings Club (Bellfruit) [Dutch] (Scorpion 1)"
+ c|sc1linx "Linx (Bellfruit) (Scorpion 1)"
+ C|sc1linx "Linx (Bellfruit) (set 1) (Scorpion 1)"
+ C|sc1linxa "Linx (Bellfruit) (set 2) (Scorpion 1)"
+ C|sc1linxp "Linx (Bellfruit) (set 3, Protocol) (Scorpion 1)"
+ C|sc1lotus "Lotus SE (Dutch) (set 1)"
+ c|sc1lotus "Lotus SE (Dutch)"
+ C|sc1lotusa "Lotus SE (Dutch) (set 2)"
+ C|sc1magc "Magic Circle (Bellfruit) (Dutch) (Scorpion 1)"
+ c|sc1magc "Magic Circle (Bellfruit) [Dutch] (Scorpion 1)"
+ C|sc1manha "Manhattan (Bellfruit) (Dutch) (Scorpion 1)"
+ c|sc1manha "Manhattan (Bellfruit) [Dutch] (Scorpion 1)"
+ C|sc1mist "Mistral (Bellfruit) (Dutch) (Scorpion 1)"
+ c|sc1mist "Mistral (Bellfruit) [Dutch] (Scorpion 1)"
+ C|sc1olym "Olympia (Bellfruit) (Dutch) (Scorpion 1)"
+ c|sc1olym "Olympia (Bellfruit) [Dutch] (Scorpion 1)"
+ C|sc1orac "Oracle (Bellfruit) (Dutch) (Scorpion 1)"
+ c|sc1orac "Oracle (Bellfruit) [Dutch] (Scorpion 1)"
+ c|sc1pwrl "Power Lines (Bellfruit) (Scorpion 1)"
+ C|sc1pwrl "Power Lines (Bellfruit) (set 1) (Scorpion 1)"
+ C|sc1pwrla "Power Lines (Bellfruit) (set 2) (Scorpion 1)"
+ C|sc1quat "Quatro (Bellfruit) (Dutch) (Scorpion 1)"
+ c|sc1quat "Quatro (Bellfruit) [Dutch] (Scorpion 1)"
+ C|sc1rain "Rainbow (Bellfruit) (Dutch) (Scorpion 1)"
+ c|sc1rain "Rainbow (Bellfruit) [Dutch] (Scorpion 1)"
+ C|sc1re "Reel Cash (Bellfruit) (Dutch) (Scorpion 1)"
+ c|sc1re "Reel Cash (Bellfruit) [Dutch] (Scorpion 1)"
+ C|sc1rese "Reel Cash SE (Bellfruit) (Dutch) (Scorpion 1)"
+ c|sc1rese "Reel Cash SE (Bellfruit) [Dutch] (Scorpion 1)"
+ C|sc1revo "Revolution (Bellfruit) (Dutch) (Scorpion 1)"
+ c|sc1revo "Revolution (Bellfruit) [Dutch] (Scorpion 1)"
+ C|sc1rose "Rose 'n' Crown (Bellfruit) (Dutch) (Scorpion 1)"
+ c|sc1rose "Rose 'n' Crown (Bellfruit) [Dutch] (Scorpion 1)"
+ C|sc1sant "Santana (Bellfruit) (Dutch) (Scorpion 1)"
+ c|sc1sant "Santana (Bellfruit) [Dutch] (Scorpion 1)"
+ C|sc1sat "Satellite (Bellfruit) (Dutch) (Scorpion 1)"
+ c|sc1sat "Satellite (Bellfruit) [Dutch] (Scorpion 1)"
+ C|sc1shan "Shanghai (Bellfruit) (Dutch) (Scorpion 1)"
+ c|sc1shan "Shanghai (Bellfruit) [Dutch] (Scorpion 1)"
+ c|sc1sir "Strike It Rich (Bellfruit) (Scorpion 1)"
+ C|sc1sir "Strike It Rich (Bellfruit) (set 1) (Scorpion 1)"
+ C|sc1sira "Strike It Rich (Bellfruit) (set 2) (Scorpion 1)"
+ C|sc1sirb "Strike It Rich (Bellfruit) (set 3) (Scorpion 1)"
+ C|sc1sirc "Strike It Rich (Bellfruit) (set 4) (Scorpion 1)"
+ c|sc1smoke "Smokey Vs The Bandit (Mdm) (Scorpion 2/3)"
+ C|sc1smoke "Smokey Vs The Bandit (Mdm) (set 1) (Scorpion 2/3?)"
+ C|sc1smokea "Smokey Vs The Bandit (Mdm) (set 2) (Scorpion 2/3?)"
+ c|sc1spct "Spectre (Bellfruit) (Scorpion 1)"
+ C|sc1spct "Spectre (Bellfruit) (set 1) (Scorpion 1)"
+ C|sc1spcta "Spectre (Bellfruit) (set 2) (Scorpion 1)"
+ C|sc1ster "Sterling (Bellfruit) (Dutch) (Scorpion 1)"
+ c|sc1ster "Sterling (Bellfruit) [Dutch] (Scorpion 1)"
+ c|sc1str4 "Strike 4 (Bellfruit) (Scorpion 1, set 1)"
+ C|sc1str4 "Strike 4 (Bellfruit) (set 1) (Scorpion 1)"
+ c|sc1str4a "Strike 4 (Bellfruit) (Scorpion 1, set 2)"
+ C|sc1str4a "Strike 4 (Bellfruit) (set 2) (Scorpion 1)"
+ C|sc1sups "Superstar (Bellfruit) (Dutch) (Scorpion 1)"
+ c|sc1sups "Superstar (Bellfruit) [Dutch] (Scorpion 1)"
+ C|sc1torn "Tornado (Bellfruit) (Dutch) (set 1) (Scorpion 1)"
+ c|sc1torn "Tornado (Bellfruit) [Dutch] (Scorpion 1)"
+ C|sc1torna "Tornado (Bellfruit) (Dutch) (set 2) (Scorpion 1)"
+ c|sc1tri "Tri Star (Bellfruit) (Scorpion 1)"
+ C|sc1tri "Tri Star (Bellfruit) (set 1) (Scorpion 1)"
+ C|sc1tria "Tri Star (Bellfruit) (set 2) (Scorpion 1)"
+ C|sc1triap "Tri Star (Bellfruit) (set 2, Protocol) (Scorpion 1)"
+ C|sc1trib "Tri Star (Bellfruit) (set 3) (Scorpion 1)"
+ C|sc1tribp "Tri Star (Bellfruit) (set 3, Protocol) (Scorpion 1)"
+ c|sc1typ "Typhoon Club (Bellfruit) (Scorpion 1)"
+ C|sc1typ "Typhoon Club (Bellfruit) (set 1) (Scorpion 1)"
+ C|sc1typp "Typhoon Club (Bellfruit) (set 1, Protocol) (Scorpion 1)"
+ C|sc1vent "Ventura (Bellfruit) (Dutch) (Scorpion 1)"
+ c|sc1vent "Ventura (Bellfruit) [Dutch] (Scorpion 1)"
+ C|sc1vict "Victory (Bellfruit) (Dutch) (Scorpion 1)"
+ c|sc1vict "Victory (Bellfruit) [Dutch] (Scorpion 1)"
+ c|sc1voy "Voyager (Bellfruit) (Scorpion 1, set 1)"
+ C|sc1voy "Voyager (Bellfruit) (set 1) (Scorpion 1)"
+ c|sc1voya "Voyager (Bellfruit) (Scorpion 1, set 2)"
+ C|sc1voya "Voyager (Bellfruit) (set 2) (Scorpion 1)"
+ C|sc1winfl "Winfalls (Dutch) (Bellfruit) (Scorpion 1)"
+ c|sc1winfl "Winfalls [Dutch] (Bellfruit) (Scorpion 1)"
+ c|sc1winst "Winning Streak (Bellfruit) (Scorpion 1)"
+ C|sc1winst "Winning Streak (Bellfruit) (set 1) (Scorpion 1)"
+ C|sc1winsta "Winning Streak (Bellfruit) (set 2) (Scorpion 1)"
+ C|sc1winstb "Winning Streak (Bellfruit) (set 3) (Scorpion 1)"
+ C|sc1winstbp "Winning Streak (Bellfruit) (set 3, Protocol) (Scorpion 1)"
+ C|sc1winstc "Winning Streak (Bellfruit) (set 4) (Scorpion 1)"
+ C|sc1winstcp "Winning Streak (Bellfruit) (set 4, Protocol) (Scorpion 1)"
+ C|sc1winstd "Winning Streak (Bellfruit) (set 5) (Scorpion 1)"
+ C|sc1winstdp "Winning Streak (Bellfruit) (set 5, Protocol) (Scorpion 1)"
+ C|sc1winste "Winning Streak (Bellfruit) (set 6) (Scorpion 1)"
+ C|sc1winstep "Winning Streak (Bellfruit) (set 6, Protocol) (Scorpion 1)"
+ C|sc1winstf "Winning Streak (Bellfruit) (set 7) (Scorpion 1)"
+ C|sc1winstfp "Winning Streak (Bellfruit) (set 7, Protocol) (Scorpion 1)"
+ C|sc1winstg "Winning Streak (Bellfruit) (set 8) (Scorpion 1)"
+ C|sc1winstp "Winning Streak (Bellfruit) (set 1, Protocol) (Scorpion 1)"
+ C|sc2brkfs1 "The Big Breakfast (set 2 UK, Single Site) (Scorpion 2/3)"
+ c|sc2brkfs1 "The Big Breakfast (set 2) (Scorpion 2/3)"
+ C|sc2brkfs1p "The Big Breakfast (set 2 UK, Single Site, Protocol) (Scorpion 2/3)"
+ C|sc2brkfs2 "The Big Breakfast (set 3 UK, Arcade, 8GBP Jackpot) (Scorpion 2/3)"
+ c|sc2brkfs2 "The Big Breakfast (set 3) (Scorpion 2/3)"
+ C|sc2brkfs3 "The Big Breakfast (set 4 UK, Arcade, 8GBP Jackpot) (Scorpion 2/3)"
+ c|sc2brkfs3 "The Big Breakfast (set 4) (Scorpion 2/3)"
+ C|sc2brkfs3p "The Big Breakfast (set 4 UK, Arcade, 8GBP Jackpot, Protocol) (Scorpion 2/3)"
+ C|sc2brkfs4 "The Big Breakfast (set 5 UK, Arcade, 10GBP Jackpot) (Scorpion 2/3)"
+ c|sc2brkfs4 "The Big Breakfast (set 5) (Scorpion 2/3)"
+ C|sc2brkfs4p "The Big Breakfast (set 5 UK, Arcade, 10GBP Jackpot, Protocol) (Scorpion 2/3)"
+ C|sc2brkfs5 "The Big Breakfast (set 6 UK, Arcade, 10GBP Jackpot) (Scorpion 2/3)"
+ c|sc2brkfs5 "The Big Breakfast (set 6) (Scorpion 2/3)"
+ C|sc2brkfs5p "The Big Breakfast (set 6 UK, Arcade, 10GBP Jackpot, Protocol) (Scorpion 2/3)"
+ c|sc2brkfsm "The Big Breakfast Casino (Scorpion 2/3)"
+ C|sc2brkfsm "The Big Breakfast Casino (set 1) (Scorpion 2/3)"
+ C|sc2brkfsm1 "The Big Breakfast Casino (set 2) (Scorpion 2/3)"
+ C|sc2brkfsm2 "The Big Breakfast Casino (set 3) (Scorpion 2/3)"
+ C|sc2brkfsp "The Big Breakfast (set 1, Protocol) (Scorpion 2/3)"
+ c|sc2call "It's Your Call (Global) (Scorpion 2/3)"
+ C|sc2call "It's Your Call (Global) (v2.7) (Scorpion 2/3)"
+ C|sc2callc "It's Your Call (Club?) (Global) (v1.6) (Scorpion 2/3)"
+ C|sc2callcp "It's Your Call (Club?) (Global) (v1.6 Protocol) (Scorpion 2/3)"
+ C|sc2callp "It's Your Call (Global) (v2.7 Protocol) (Scorpion 2/3)"
+ c|sc2casr "Casino Royale (Bellfruit) (Scorpion 2/3)"
+ C|sc2casr "Casino Royale (Bellfruit) (set 1, UK, 10GBP Jackpot, 3rd Triennial) (Scorpion 2/3)"
+ C|sc2casr1 "Casino Royale (Bellfruit) (set 2, UK, 3rd Triennial) (Scorpion 2/3)"
+ C|sc2casr1p "Casino Royale (Bellfruit) (set 2, UK, 3rd Triennial, Protocol) (Scorpion 2/3)"
+ C|sc2casr2 "Casino Royale (Bellfruit) (set 3, UK) (Scorpion 2/3)"
+ C|sc2casr2p "Casino Royale (Bellfruit) (set 3, UK, Protocol) (Scorpion 2/3)"
+ C|sc2casr3 "Casino Royale (Bellfruit) (set 4, UK, 8GBP Jackpot) (Scorpion 2/3)"
+ C|sc2casr3p "Casino Royale (Bellfruit) (set 4, UK, 8GBP Jackpot, Protocol) (Scorpion 2/3)"
+ C|sc2casr4 "Casino Royale (Bellfruit) (set 5, UK) (Scorpion 2/3)"
+ C|sc2casr4p "Casino Royale (Bellfruit) (set 5, UK, Protocol) (Scorpion 2/3)"
+ C|sc2casrp "Casino Royale (Bellfruit) (set 1, UK, 10GBP Jackpot, 3rd Triennial, Protocol) (Scorpion 2/3)"
+ C|sc2catms1 "Cat & Mouse (Bellfruit) (set 2) (Scorpion 2/3)"
+ C|sc2catms1p "Cat & Mouse (Bellfruit) (set 2, Protocol) (Scorpion 2/3)"
+ C|sc2catms2 "Cat & Mouse (Bellfruit) (set 3) (Scorpion 2/3)"
+ C|sc2catms2p "Cat & Mouse (Bellfruit) (set 3, Protocol) (Scorpion 2/3)"
+ C|sc2catms3 "Cat & Mouse (Bellfruit) (set 4) (Scorpion 2/3)"
+ C|sc2catms4 "Cat & Mouse (Bellfruit) (set 5) (Scorpion 2/3)"
+ c|sc2cb7 "Casino Bar 7 (Bellfruit) (Scorpion 2/3)"
+ C|sc2cb7 "Casino Bar 7 (Bellfruit) (set 1, UK) (Scorpion 2/3)"
+ C|sc2cb71 "Casino Bar 7 (Bellfruit) (set 2, UK, All Cash) (Scorpion 2/3)"
+ C|sc2cb72 "Casino Bar 7 (Bellfruit) (set 3, UK, 10GBP Jackpot) (Scorpion 2/3)"
+ C|sc2cb72p "Casino Bar 7 (Bellfruit) (set 3, UK, 10GBP Jackpot, Protocol) (Scorpion 2/3)"
+ C|sc2cb7p "Casino Bar 7 (Bellfruit) (set 1, UK, Protocol) (Scorpion 2/3)"
+ c|sc2cgcas "Club Grand Casino (Bellfruit) (Scorpion 2/3)"
+ C|sc2cgcas "Club Grand Casino (Bellfruit) (set 1, UK) (Scorpion 2/3)"
+ C|sc2cgcas1 "Club Grand Casino (Bellfruit) (set 2, UK, 250GBP Jackpot) (Scorpion 2/3)"
+ C|sc2cgcas1p "Club Grand Casino (Bellfruit) (set 2, UK, 250GBP Jackpot, Protocol) (Scorpion 2/3)"
+ C|sc2cgcasp "Club Grand Casino (Bellfruit) (set 1, UK, Protocol) (Scorpion 2/3)"
+ c|sc2cmbt "Cat & Mouse & Bonzo Too (Bellfruit) (Scorpion 2/3)"
+ C|sc2cmbt "Cat & Mouse & Bonzo Too (Bellfruit) (set 1, UK) (Scorpion 2/3)"
+ C|sc2cmbtp "Cat & Mouse & Bonzo Too (Bellfruit) (set 1, UK, Protocol) (Scorpion 2/3)"
+ c|sc2cnile "Cash On The Nile Club (Bellfruit) (Scorpion 2/3)"
+ C|sc2cnile "Cash On The Nile Club (Bellfruit) (set 1 UK, 150GBP Jackpot) (Scorpion 2/3)"
+ C|sc2cnile1 "Cash On The Nile Club (Bellfruit) (set 2 UK, 150GBP Jackpot) (Scorpion 2/3)"
+ C|sc2cnile2 "Cash On The Nile Club (Bellfruit) (set 2 UK, 200GBP Jackpot) (Scorpion 2/3)"
+ C|sc2cnile2p "Cash On The Nile Club (Bellfruit) (set 2 UK, 150GBP Jackpot, Protocol) (Scorpion 2/3)"
+ C|sc2cnile3p "Cash On The Nile Club (Bellfruit) (set 3 UK, 150GBP Jackpot) (Scorpion 2/3)"
+ c|sc2copcl "Cops 'n' Robbers Club (Bellfruit) (Scorpion 2/3)"
+ C|sc2copcl "Cops 'n' Robbers Club (Bellfruit) (set 1, UK, 250GBP Jackpot) (Scorpion 2/3)"
+ C|sc2copcl1 "Cops 'n' Robbers Club (Bellfruit) (set 2, UK, 250GBP Jackpot) (Scorpion 2/3)"
+ C|sc2copcl10 "Cops 'n' Robbers Club (Bellfruit) (set 11, UK) (Scorpion 2/3)"
+ C|sc2copcl11 "Cops 'n' Robbers Club (Bellfruit) (set 12, UK) (Scorpion 2/3)"
+ C|sc2copcl11p "Cops 'n' Robbers Club (Bellfruit) (set 12, UK, Protocol) (Scorpion 2/3)"
+ C|sc2copcl1p "Cops 'n' Robbers Club (Bellfruit) (set 2, UK, 250GBP Jackpot, Protocol) (Scorpion 2/3)"
+ C|sc2copcl2 "Cops 'n' Robbers Club (Bellfruit) (set 3, UK) (Scorpion 2/3)"
+ C|sc2copcl3 "Cops 'n' Robbers Club (Bellfruit) (set 4, UK) (Scorpion 2/3)"
+ C|sc2copcl3p "Cops 'n' Robbers Club (Bellfruit) (set 4, UK, Protocol) (Scorpion 2/3)"
+ C|sc2copcl4 "Cops 'n' Robbers Club (Bellfruit) (set 5, UK) (Scorpion 2/3)"
+ C|sc2copcl5 "Cops 'n' Robbers Club (Bellfruit) (set 6, UK) (Scorpion 2/3)"
+ C|sc2copcl6 "Cops 'n' Robbers Club (Bellfruit) (set 7, UK) (Scorpion 2/3)"
+ C|sc2copcl6p "Cops 'n' Robbers Club (Bellfruit) (set 7, UK, Protocol) (Scorpion 2/3)"
+ C|sc2copcl7 "Cops 'n' Robbers Club (Bellfruit) (set 8, UK) (Scorpion 2/3)"
+ C|sc2copcl8 "Cops 'n' Robbers Club (Bellfruit) (set 9, UK) (Scorpion 2/3)"
+ C|sc2copcl8p "Cops 'n' Robbers Club (Bellfruit) (set 9, UK, Protocol) (Scorpion 2/3)"
+ C|sc2copcl9 "Cops 'n' Robbers Club (Bellfruit) (set 10, UK) (Scorpion 2/3)"
+ C|sc2copcl9p "Cops 'n' Robbers Club (Bellfruit) (set 10, UK, Protocol) (Scorpion 2/3)"
+ C|sc2copclp "Cops 'n' Robbers Club (Bellfruit) (set 1, UK, 250GBP Jackpot, Protocol) (Scorpion 2/3)"
+ c|sc2copdc "Cops 'n' Robbers Club Deluxe (Bellfruit) (Scorpion 2/3)"
+ C|sc2copdc "Cops 'n' Robbers Club Deluxe (Bellfruit) (set 1, UK, 250GBP Jackpot) (Scorpion 2/3)"
+ C|sc2copdc1 "Cops 'n' Robbers Club Deluxe (Bellfruit) (set 2, UK, 250GBP Jackpot) (Scorpion 2/3)"
+ C|sc2copdc1p "Cops 'n' Robbers Club Deluxe (Bellfruit) (set 2, UK, 250GBP Jackpot, Protocol) (Scorpion 2/3)"
+ C|sc2copdc2 "Cops 'n' Robbers Club Deluxe (Bellfruit) (set 3, UK, 250GBP Jackpot) (Scorpion 2/3)"
+ C|sc2copdc2p "Cops 'n' Robbers Club Deluxe (Bellfruit) (set 3, UK, 250GBP Jackpot, Protocol) (Scorpion 2/3)"
+ C|sc2copdc3 "Cops 'n' Robbers Club Deluxe (Bellfruit) (set 4, UK, 250GBP Jackpot) (Scorpion 2/3)"
+ C|sc2copdc3p "Cops 'n' Robbers Club Deluxe (Bellfruit) (set 4, UK, 250GBP Jackpot, Protocol) (Scorpion 2/3)"
+ C|sc2copdc4 "Cops 'n' Robbers Club Deluxe (Bellfruit) (set 5, UK, 200GBP Jackpot?) (Scorpion 2/3)"
+ C|sc2copdc4p "Cops 'n' Robbers Club Deluxe (Bellfruit) (set 5, UK, 200GBP Jackpot?, Protocol) (Scorpion 2/3)"
+ C|sc2copdc5 "Cops 'n' Robbers Club Deluxe (Bellfruit) (set 6, UK, 200GBP Jackpot) (Scorpion 2/3)"
+ C|sc2copdc5p "Cops 'n' Robbers Club Deluxe (Bellfruit) (set 6, UK, 200GBP Jackpot, Protocol) (Scorpion 2/3)"
+ C|sc2copdc6 "Cops 'n' Robbers Club Deluxe (Bellfruit) (set 7, UK) (Scorpion 2/3)"
+ C|sc2copdcp "Cops 'n' Robbers Club Deluxe (Bellfruit) (set 1, UK, 250GBP Jackpot, Protocol) (Scorpion 2/3)"
+ c|sc2cops "Cops 'n' Robbers (Bellfruit) (Scorpion 2/3)"
+ C|sc2cops "Cops 'n' Robbers (Bellfruit) (set 1) (Scorpion 2/3)"
+ C|sc2cops1 "Cops 'n' Robbers (Bellfruit) (set 2) (Scorpion 2/3)"
+ C|sc2cops1p "Cops 'n' Robbers (Bellfruit) (set 2, Protocol) (Scorpion 2/3)"
+ C|sc2cops2 "Cops 'n' Robbers (Bellfruit) (set 3) (Scorpion 2/3)"
+ C|sc2cops3 "Cops 'n' Robbers (Bellfruit) (set 4) (Scorpion 2/3)"
+ C|sc2cops3p "Cops 'n' Robbers (Bellfruit) (set 4, Protocol) (Scorpion 2/3)"
+ C|sc2cops4 "Cops 'n' Robbers (Bellfruit) (set 5) (Scorpion 2/3)"
+ C|sc2cops5 "Cops 'n' Robbers (Bellfruit) (set 6) (Scorpion 2/3)"
+ C|sc2copsc "Casino Cops 'n' Robbers (Bellfruit) (set 1) (Scorpion 2/3)"
+ C|sc2copsc1 "Casino Cops 'n' Robbers (Bellfruit) (set 2) (Scorpion 2/3)"
+ C|sc2copsc1p "Casino Cops 'n' Robbers (Bellfruit) (set 2, Protocol) (Scorpion 2/3)"
+ C|sc2copsc2 "Casino Cops 'n' Robbers (Bellfruit) (set 3) (Scorpion 2/3)"
+ C|sc2copscp "Casino Cops 'n' Robbers (Bellfruit) (set 1, Protocol) (Scorpion 2/3)"
+ C|sc2copsp "Cops 'n' Robbers (Bellfruit) (set 1, Protocol) (Scorpion 2/3)"
+ C|sc2cpe1 "Club Public Enemy No.1 (set 3, UK) (Scorpion 2/3)"
+ C|sc2cpe1p "Club Public Enemy No.1 (set 3, UK, Protocol) (Scorpion 2/3)"
+ C|sc2cpe2 "Club Public Enemy No.1 (set 4, UK) (Scorpion 2/3)"
+ C|sc2cpe2p "Club Public Enemy No.1 (set 4, UK, Protocol) (Scorpion 2/3)"
+ C|sc2cpe3p "Club Public Enemy No.1 (set 5, UK, Protocol) (Scorpion 2/3)"
+ C|sc2cpe4 "Club Public Enemy No.1 (set 6, UK) (Scorpion 2/3)"
+ C|sc2cpe5p "Club Public Enemy No.1 (set 7, UK, Protocol) (Scorpion 2/3)"
+ C|sc2cpep "Club Public Enemy No.1 (set 2, UK, Protocol) (Scorpion 2/3)"
+ c|sc2cpg "Pharaoh's Gold Club (Bellfruit) (Scorpion 2/3)"
+ C|sc2cpg "Pharaoh's Gold Club (Bellfruit) (set 1, UK, 250GBP Jackpot)(Scorpion 2/3)"
+ C|sc2cpg1 "Pharaoh's Gold Club (Bellfruit) (set 2, UK, p65)(Scorpion 2/3)"
+ C|sc2cpg1p "Pharaoh's Gold Club (Bellfruit) (set 2, UK, p65, Protocol)(Scorpion 2/3)"
+ C|sc2cpg2 "Pharaoh's Gold Club (Bellfruit) (set 3, UK)(Scorpion 2/3)"
+ C|sc2cpg2p "Pharaoh's Gold Club (Bellfruit) (set 3, UK, Protocol)(Scorpion 2/3)"
+ C|sc2cpgp "Pharaoh's Gold Club (Bellfruit) (set 1, UK, 250GBP Jackpot, Protocol)(Scorpion 2/3)"
+ c|sc2cshcl "Cashino Club (Bellfruit) (Scorpion 2/3)"
+ C|sc2cshcl "Cashino Club (Bellfruit) (set 1) (Scorpion 2/3)"
+ C|sc2cshcl1 "Cashino Club (Bellfruit) (set 2) (Scorpion 2/3)"
+ C|sc2cshcl1p "Cashino Club (Bellfruit) (set 2, Protocol) (Scorpion 2/3)"
+ C|sc2cshclp "Cashino Club (Bellfruit) (set 1, Protocol) (Scorpion 2/3)"
+ C|sc2ctms2 "Cat & Mouse (Mark 2) (Bellfruit) (set 1) (Scorpion 2/3)"
+ C|sc2ctms21 "Cat & Mouse (Mark 2) (Bellfruit) (set 2) (Scorpion 2/3)"
+ C|sc2ctms21p "Cat & Mouse (Mark 2) (Bellfruit) (set 2, Protocol) (Scorpion 2/3)"
+ C|sc2ctms22 "Cat & Mouse (Mark 2) (Bellfruit) (set 3) (Scorpion 2/3)"
+ C|sc2ctms22p "Cat & Mouse (Mark 2) (Bellfruit) (set 3, Protocol) (Scorpion 2/3)"
+ C|sc2ctms23 "Cat & Mouse (Mark 2) (Bellfruit) (set 4) (Scorpion 2/3)"
+ C|sc2ctms23p "Cat & Mouse (Mark 2) (Bellfruit) (set 4, Protocol) (Scorpion 2/3)"
+ C|sc2ctms24p "Cat & Mouse (Mark 2) (Bellfruit) (set 5, Protocol) (Scorpion 2/3)"
+ C|sc2ctms25 "Cat & Mouse (Mark 2) (Bellfruit) (set 6) (Scorpion 2/3)"
+ c|sc2cvega "Cash Vegas (Bellfruit) (Scorpion 2/3)"
+ C|sc2cvega "Cash Vegas (Bellfruit) (set 1, UK) (Scorpion 2/3)"
+ C|sc2cvega1 "Cash Vegas (Bellfruit) (set 2, UK, 10GBP Jackpot, 3rd Triennial) (Scorpion 2/3)"
+ C|sc2cvega1p "Cash Vegas (Bellfruit) (set 2, UK, 10GBP Jackpot, 3rd Triennial, Protocol) (Scorpion 2/3)"
+ C|sc2cvega2 "Cash Vegas (Bellfruit) (set 3, UK, 8GBP Jackpot) (Scorpion 2/3)"
+ C|sc2cvega2p "Cash Vegas (Bellfruit) (set 3, UK, 8GBP Jackpot, Protocol) (Scorpion 2/3)"
+ C|sc2cvega3 "Cash Vegas (Bellfruit) (set 4, UK, 10GBP Jackpot) (Scorpion 2/3)"
+ C|sc2cvega3p "Cash Vegas (Bellfruit) (set 4, UK, 10GBP Jackpot, Protocol) (Scorpion 2/3)"
+ C|sc2cvega4p "Cash Vegas (Bellfruit) (set 5, UK, 10GBP Jackpot, Protocol) (Scorpion 2/3)"
+ c|sc2dbl "Double Diamond (Bellfruit) (Scorpion 2/3)"
+ C|sc2dbl "Double Diamond (Bellfruit) (set 1, UK) (Scorpion 2/3)"
+ C|sc2dbl1 "Double Diamond (Bellfruit) (set 2, UK) (Scorpion 2/3)"
+ C|sc2dbl1p "Double Diamond (Bellfruit) (set 2, UK, Protocol) (Scorpion 2/3)"
+ C|sc2dblp "Double Diamond (Bellfruit) (set 1, UK, Protocol) (Scorpion 2/3)"
+ c|sc2dels "Del's Millions (Bellfruit) (Scorpion 2/3)"
+ C|sc2dels "Del's Millions (Bellfruit) (set 1, UK, 10GBP Jackpot) (Scorpion 2/3)"
+ C|sc2dels1 "Del's Millions (Bellfruit) (set 2, UK, 10GBP Jackpot) (Scorpion 2/3)"
+ C|sc2dels1p "Del's Millions (Bellfruit) (set 2, UK, 10GBP Jackpot, Protocol) (Scorpion 2/3)"
+ C|sc2dels2 "Del's Millions (Bellfruit) (set 3, UK, 8GBP Jackpot) (Scorpion 2/3)"
+ C|sc2dels2p "Del's Millions (Bellfruit) (set 3, UK, 8GBP Jackpot, Protocol) (Scorpion 2/3)"
+ C|sc2dels3 "Del's Millions (Bellfruit) (set 4, UK, 8GBP Jackpot) (Scorpion 2/3)"
+ C|sc2dels3p "Del's Millions (Bellfruit) (set 4, UK, 8GBP Jackpot, Protocol) (Scorpion 2/3)"
+ C|sc2dels4 "Del's Millions (Bellfruit) (set 5, UK) (Scorpion 2/3)"
+ C|sc2dels4p "Del's Millions (Bellfruit) (set 5, UK, Protocol) (Scorpion 2/3)"
+ C|sc2dels5 "Del's Millions (Bellfruit) (set 6, UK) (Scorpion 2/3)"
+ C|sc2dels6 "Del's Millions (Bellfruit) (set 7, UK) (Scorpion 2/3)"
+ C|sc2dels7 "Del's Millions (Bellfruit) (set 8, UK) (Scorpion 2/3)"
+ C|sc2dels8 "Del's Millions (Bellfruit) (set 9, UK) (Scorpion 2/3)"
+ C|sc2dels9 "Del's Millions (Bellfruit) (set 10, UK) (Scorpion 2/3)"
+ C|sc2delsd "Del's Millions (Bellfruit) ('Deluxe', UK) (Scorpion 2/3)"
+ C|sc2delsm "Del's Millions (Bellfruit/Mazooma) (set 1, UK) (Scorpion 2/3)"
+ C|sc2delsm1 "Del's Millions (Bellfruit/Mazooma) (set 2, UK) (Scorpion 2/3)"
+ C|sc2delsm1p "Del's Millions (Bellfruit/Mazooma) (set 2, UK, Protocol) (Scorpion 2/3)"
+ C|sc2delsm2 "Del's Millions (Bellfruit/Mazooma) (set 3, UK) (Scorpion 2/3)"
+ C|sc2delsm2p "Del's Millions (Bellfruit/Mazooma) (set 3, UK, Protocol) (Scorpion 2/3)"
+ C|sc2delsm3 "Del's Millions (Bellfruit/Mazooma) (set 4, UK) (Scorpion 2/3)"
+ C|sc2delsm3p "Del's Millions (Bellfruit/Mazooma) (set 4, UK, Protocol) (Scorpion 2/3)"
+ C|sc2delsmp "Del's Millions (Bellfruit/Mazooma) (set 1, UK, Protocol) (Scorpion 2/3)"
+ C|sc2delsp "Del's Millions (Bellfruit) (set 1, UK, 10GBP Jackpot, Protocol) (Scorpion 2/3)"
+ c|sc2dick "Spotted Dick (Global) (Scorpion 2/3)"
+ C|sc2dick "Spotted Dick (Global) (v3.1) (Scorpion 2/3)"
+ C|sc2dick1 "Spotted Dick (Global) (v2.2) (Scorpion 2/3)"
+ C|sc2dick2 "Spotted Dick (Global) (v1.5) (Scorpion 2/3)"
+ C|sc2dick2e "Spotted Dick (Global) (v?.? Euro) (Scorpion 2/3)"
+ C|sc2dick2eu "Spotted Dick (Global) (v?.? Euro unencrypted) (Scorpion 2/3)"
+ C|sc2dick2p "Spotted Dick (Global) (v1.5 Protocol ) (Scorpion 2/3)"
+ C|sc2dickp "Spotted Dick (Global) (v3.1 Protocol) (Scorpion 2/3)"
+ c|sc2downt "Down Town (Bellfruit) (Scorpion 2/3)"
+ C|sc2downt "Down Town (Bellfruit) (set 1, UK, 15RM motor) (Scorpion 2/3)"
+ C|sc2downt1 "Down Town (Bellfruit) (set 2, UK, 15RM motor) (Scorpion 2/3)"
+ C|sc2downt1p "Down Town (Bellfruit) (set 2, UK, 15RM motor, Protocol) (Scorpion 2/3)"
+ C|sc2downt2 "Down Town (Bellfruit) (set 3, UK, 15RM motor) (Scorpion 2/3)"
+ C|sc2downt2p "Down Town (Bellfruit) (set 3, UK, 15RM motor, Protocol) (Scorpion 2/3)"
+ C|sc2downt3 "Down Town (Bellfruit) (set 4, UK, 15RM motor) (Scorpion 2/3)"
+ C|sc2downt3a "Down Town (Bellfruit) (set 4, UK, 16RM motor) (Scorpion 2/3)"
+ C|sc2downt3ap "Down Town (Bellfruit) (set 4, UK, 16RM motor, Protocol) (Scorpion 2/3)"
+ C|sc2downt3p "Down Town (Bellfruit) (set 4, UK, 15RM motor, Protocol) (Scorpion 2/3)"
+ C|sc2downt4 "Down Town (Bellfruit) (set 5, UK, 15RM motor) (Scorpion 2/3)"
+ C|sc2downt4a "Down Town (Bellfruit) (set 5, UK, 16RM motor) (Scorpion 2/3)"
+ C|sc2downt4ap "Down Town (Bellfruit) (set 5, UK, 16RM motor, Protocol) (Scorpion 2/3)"
+ C|sc2downt4p "Down Town (Bellfruit) (set 5, UK, 15RM motor, Protocol) (Scorpion 2/3)"
+ C|sc2downt5 "Down Town (Bellfruit) (set 6, UK, 15RM motor) (Scorpion 2/3)"
+ C|sc2downt6 "Down Town (Bellfruit) (set 7, UK, 15RM motor) (Scorpion 2/3)"
+ C|sc2downt7 "Down Town (Bellfruit) (set 8, UK, 15RM motor) (Scorpion 2/3)"
+ C|sc2downt8a "Down Town (Bellfruit) (set 9, UK, 16RM motor) (Scorpion 2/3)"
+ C|sc2downt8ap "Down Town (Bellfruit) (set 9, UK, 16RM motor, Protocol) (Scorpion 2/3)"
+ C|sc2downtp "Down Town (Bellfruit) (set 1, UK, 15RM motor, Protocol) (Scorpion 2/3)"
+ c|sc2drwho "Dr.Who The Timelord (set 1, UK, Game Card 95-750-288) (Scorpion 2/3)"
+ C|sc2drwho "Dr.Who The Timelord (set 1, UK, Single Site, Game Card 95-750-288) (Scorpion 2/3)"
+ c|sc2drwho10 "Dr.Who The Timelord (set 11) (Scorpion 2/3)"
+ C|sc2drwho10 "Dr.Who The Timelord (set 11, UK, Arcade, Protocol) (Scorpion 2/3)"
+ c|sc2drwho11 "Dr.Who The Timelord (set 12) (Scorpion 2/3)"
+ C|sc2drwho11 "Dr.Who The Timelord (set 12, UK, no Jackpot spin, Protocol) (Scorpion 2/3)"
+ c|sc2drwho12 "Dr.Who The Timelord (set 13) (Scorpion 2/3)"
+ C|sc2drwho12 "Dr.Who The Timelord (set 13, UK) (Scorpion 2/3)"
+ c|sc2drwho13 "Dr.Who The Timelord (set 14) (Scorpion 2/3)"
+ C|sc2drwho13 "Dr.Who The Timelord (set 14, UK, Arcade, 8GBP Jackpot) (Scorpion 2/3)"
+ c|sc2drwho14 "Dr.Who The Timelord (set 15) (Scorpion 2/3)"
+ C|sc2drwho14 "Dr.Who The Timelord (set 15, UK, Arcade) (Scorpion 2/3)"
+ c|sc2drwho15 "Dr.Who The Timelord (set 16) (Scorpion 2/3)"
+ C|sc2drwho15 "Dr.Who The Timelord (set 16, UK, Arcade) (Scorpion 2/3)"
+ c|sc2drwho2 "Dr.Who The Timelord (set 3) (Scorpion 2/3)"
+ C|sc2drwho2 "Dr.Who The Timelord (set 3, UK, Arcade, Protocol) (Scorpion 2/3)"
+ c|sc2drwho3 "Dr.Who The Timelord (set 4) (Scorpion 2/3)"
+ C|sc2drwho3 "Dr.Who The Timelord (set 4, UK Single Site, Protocol) (Scorpion 2/3)"
+ c|sc2drwho4 "Dr.Who The Timelord (set 5) (Scorpion 2/3)"
+ C|sc2drwho4 "Dr.Who The Timelord (set 5, UK, Arcade) (Scorpion 2/3)"
+ c|sc2drwho5 "Dr.Who The Timelord (set 6) (Scorpion 2/3)"
+ C|sc2drwho5 "Dr.Who The Timelord (set 6, UK) (Scorpion 2/3)"
+ c|sc2drwho6 "Dr.Who The Timelord (set 7) (Scorpion 2/3)"
+ C|sc2drwho6 "Dr.Who The Timelord (set 7, UK, Protocol) (Scorpion 2/3)"
+ c|sc2drwho7 "Dr.Who The Timelord (set 8) (Scorpion 2/3)"
+ C|sc2drwho7 "Dr.Who The Timelord (set 8, UK, Arcade, 10GBP Jackpot, Protocol) (Scorpion 2/3)"
+ c|sc2drwho8 "Dr.Who The Timelord (set 9) (Scorpion 2/3)"
+ C|sc2drwho8 "Dr.Who The Timelord (set 9, UK, Arcade, 8GBP Jackpot, Protocol) (Scorpion 2/3)"
+ c|sc2drwho9 "Dr.Who The Timelord (set 10) (Scorpion 2/3)"
+ C|sc2drwho9 "Dr.Who The Timelord (set 10, UK, Arcade, Protocol) (Scorpion 2/3)"
+ c|sc2easy "Easy Money (Bellfruit) (Scorpion 2/3)"
+ C|sc2easy "Easy Money (Bellfruit) (set 1) (Scorpion 2/3)"
+ C|sc2easy1 "Easy Money (Bellfruit) (set 2) (Scorpion 2/3)"
+ C|sc2easy1p "Easy Money (Bellfruit) (set 2, Protocol) (Scorpion 2/3)"
+ C|sc2easy2 "Easy Money (Bellfruit) (set 3) (Scorpion 2/3)"
+ C|sc2easy2p "Easy Money (Bellfruit) (set 3, Protocol) (Scorpion 2/3)"
+ C|sc2easyp "Easy Money (Bellfruit) (set 1, Protocol) (Scorpion 2/3)"
+ c|sc2eggs "Eggs On Legs Tour (Bellfruit) (Scorpion 2/3)"
+ C|sc2eggs "Eggs On Legs Tour (Bellfruit) (set 1, UK, Arcade, 10GBP Jackpot) (Scorpion 2/3)"
+ C|sc2eggs1 "Eggs On Legs Tour (Bellfruit) (set 2, UK, Arcade, 10GBP Jackpot?) (Scorpion 2/3)"
+ C|sc2eggs1p "Eggs On Legs Tour (Bellfruit) (set 2, UK, Arcade, 10GBP Jackpot, Protocol) (Scorpion 2/3)"
+ C|sc2eggsp "Eggs On Legs Tour (Bellfruit) (set 1, UK, Arcade, 10GBP Jackpot, Protocol) (Scorpion 2/3)"
+ c|sc2flaca "Flash Cash (Bellfruit) (Scorpion 2/3)"
+ C|sc2flaca "Flash Cash (Bellfruit) (set 1, UK, 10GBP Jackpot, 3rd Triennial) (Scorpion 2/3)"
+ C|sc2flaca1 "Flash Cash (Bellfruit) (set 2, UK, 10GBP Jackpot, 2nd Triennial) (Scorpion 2/3)"
+ C|sc2flaca1p "Flash Cash (Bellfruit) (set 2, UK, 10GBP Jackpot, 2nd Triennial, Protocol) (Scorpion 2/3)"
+ C|sc2flaca2 "Flash Cash (Bellfruit) (set 3, UK, 10GBP Jackpot, 2nd Triennial) (Scorpion 2/3)"
+ C|sc2flaca2p "Flash Cash (Bellfruit) (set 3, UK, 10GBP Jackpot, 2nd Triennial, Protocol) (Scorpion 2/3)"
+ C|sc2flacap "Flash Cash (Bellfruit) (set 1, UK, 10GBP Jackpot, 3rd Triennial, Protocol) (Scorpion 2/3)"
+ c|sc2foot "Football Club (Bellfruit) (Scorpion 2/3)"
+ C|sc2foot "Football Club (Bellfruit) (set 1, UK, 250GBP Jackpot) (Scorpion 2/3)"
+ C|sc2foot1 "Football Club (Bellfruit) (set 2, UK, 100GBP Jackpot) (Scorpion 2/3)"
+ C|sc2foot1p "Football Club (Bellfruit) (set 2, UK, 100GBP Jackpot, Protocol) (Scorpion 2/3)"
+ C|sc2foot2 "Football Club (Bellfruit) (set 3, UK) (Scorpion 2/3)"
+ C|sc2foot2p "Football Club (Bellfruit) (set 3, UK, Protocol) (Scorpion 2/3)"
+ C|sc2footp "Football Club (Bellfruit) (set 1, UK, 250GBP Jackpot, Protocol) (Scorpion 2/3)"
+ c|sc2gcclb "Golden Casino Club (Bellfruit) (Scorpion 2/3)"
+ C|sc2gcclb "Golden Casino Club (Bellfruit) (set 1, UK, 250GBP Jackpot) (Scorpion 2/3)"
+ C|sc2gcclb1 "Golden Casino Club (Bellfruit) (set 2, UK, 100GBP Jackpot) (Scorpion 2/3)"
+ C|sc2gcclb1p "Golden Casino Club (Bellfruit) (set 2, UK, 100GBP Jackpot, Protocol) (Scorpion 2/3)"
+ C|sc2gcclb2 "Golden Casino Club (Bellfruit) (set 3, UK) (Scorpion 2/3)"
+ C|sc2gcclb2p "Golden Casino Club (Bellfruit) (set 3, UK, Protocol) (Scorpion 2/3)"
+ C|sc2gcclb3 "Golden Casino Club (Bellfruit) (set 4, UK) (Scorpion 2/3)"
+ C|sc2gcclbp "Golden Casino Club (Bellfruit) (set 1, UK, 250GBP Jackpot, Protocol) (Scorpion 2/3)"
+ c|sc2goldr "Gold Reserve (Mdm) (Scorpion 2/3)"
+ C|sc2goldr "Gold Reserve (Mdm) (v1.3) (Scorpion 2/3)"
+ C|sc2goldr1 "Gold Reserve (Mdm) (set 2) (Scorpion 2/3)"
+ C|sc2goldrp "Gold Reserve (Mdm) (v1.3 Protocol) (Scorpion 2/3)"
+ c|sc2groul "Golden Roulette (Bellfruit) (Scorpion 2/3)"
+ C|sc2groul "Golden Roulette (Bellfruit) (set 1, UK) (Scorpion 2/3)"
+ C|sc2groulp "Golden Roulette (Bellfruit) (set 2, UK, Protocol) (Scorpion 2/3)"
+ c|sc2gsclb "The Game Show Club (Bellfruit) (Scorpion 2/3)"
+ C|sc2gsclb "The Game Show Club (Bellfruit) (set 1, UK, Arcade, p65)(Scorpion 2/3)"
+ C|sc2gsclb1 "The Game Show Club (Bellfruit) (set 2, UK, Arcade, 250GBP Jackpot, p65)(Scorpion 2/3)"
+ C|sc2gsclb1p "The Game Show Club (Bellfruit) (set 2, UK, Arcade, 250GBP Jackpot, p65, Protocol)(Scorpion 2/3)"
+ C|sc2gsclb2 "The Game Show Club (Bellfruit) (set 3, UK, Arcade)(Scorpion 2/3)"
+ C|sc2gsclb2p "The Game Show Club (Bellfruit) (set 3, UK, Arcade, Protocol)(Scorpion 2/3)"
+ C|sc2gsclb3 "The Game Show Club (Bellfruit) (set 4, UK, Arcade)(Scorpion 2/3)"
+ C|sc2gsclb3p "The Game Show Club (Bellfruit) (set 4, UK, Arcade, Protocol)(Scorpion 2/3)"
+ C|sc2gsclb4 "The Game Show Club (Bellfruit) (set 5, UK, Arcade)(Scorpion 2/3)"
+ C|sc2gsclb4p "The Game Show Club (Bellfruit) (set 5, UK, Arcade, Protocol)(Scorpion 2/3)"
+ C|sc2gsclb5 "The Game Show Club (Bellfruit) (set 6, UK)(Scorpion 2/3)"
+ C|sc2gsclb6 "The Game Show Club (Bellfruit) (set 7, UK)(Scorpion 2/3)"
+ C|sc2gsclb7p "The Game Show Club (Bellfruit) (set 8, UK, Protocol)(Scorpion 2/3)"
+ C|sc2gsclbp "The Game Show Club (Bellfruit) (set 1, UK, Arcade, p65, Protocol)(Scorpion 2/3)"
+ c|sc2gslam "Grandslam Club (UK, Game Card 95-750-843) (Scorpion 2/3)"
+ C|sc2gslam "Grandslam Club (UK, set 1, Game Card 95-750-843) (Scorpion 2/3)"
+ C|sc2gslam1 "Grandslam Club (UK, set 2) (Scorpion 2/3)"
+ C|sc2gslam1p "Grandslam Club (UK, set 2, Arcade, Protocol) (Scorpion 2/3)"
+ C|sc2gslam2 "Grandslam Club (UK, set 3) (Scorpion 2/3)"
+ C|sc2gslamp "Grandslam Club (UK, set 1, Protocol) (Scorpion 2/3)"
+ c|sc2heypr "Hey Presto (Bellfruit) (Scorpion 2/3)"
+ C|sc2heypr "Hey Presto (Bellfruit) (set 1, UK) (Scorpion 2/3)"
+ C|sc2heyprp "Hey Presto (Bellfruit) (set 1, UK, Protocol) (Scorpion 2/3)"
+ c|sc2hifly "High Flyer (Mdm) (Scorpion 2/3)"
+ C|sc2hifly "High Flyer (Mdm) (v4.1) (Scorpion 2/3)"
+ C|sc2hifly2 "High Flyer (Mdm) (v3.1) (Scorpion 2/3)"
+ C|sc2hifly3 "High Flyer (Mdm) (v2.1) (Scorpion 2/3)"
+ C|sc2hifly4 "High Flyer (Mdm) (v?.?) (Scorpion 2/3)"
+ c|sc2hypr "Hyperactive (Bellfruit) (Scorpion 2/3)"
+ C|sc2hypr "Hyperactive (Bellfruit) (set 1, UK, 10GBP Jackpot) (Scorpion 2/3)"
+ C|sc2hypr1 "Hyperactive (Bellfruit) (set 2, UK, 10GBP Jackpot) (Scorpion 2/3)"
+ C|sc2hypr1p "Hyperactive (Bellfruit) (set 2, UK, 10GBP Jackpot, Protocol) (Scorpion 2/3)"
+ C|sc2hyprp "Hyperactive (Bellfruit) (set 1, UK, 10GBP Jackpot, Protocol) (Scorpion 2/3)"
+ c|sc2inst "Instant Jackpot (Bellfruit) (Scorpion 2/3)"
+ C|sc2inst "Instant Jackpot (Bellfruit) (set 1, UK, 10GBP Jackpot) (Scorpion 2/3)"
+ C|sc2inst1 "Instant Jackpot (Bellfruit) (set 2, UK, 10GBP Jackpot) (Scorpion 2/3)"
+ C|sc2inst1p "Instant Jackpot (Bellfruit) (set 2, UK, 10GBP Jackpot, Protocol) (Scorpion 2/3)"
+ C|sc2inst2 "Instant Jackpot (Bellfruit) (set 3, UK) (Scorpion 2/3)"
+ C|sc2inst2p "Instant Jackpot (Bellfruit) (set 3, UK, Protocol) (Scorpion 2/3)"
+ C|sc2inst3 "Instant Jackpot (Bellfruit) (set 4, UK, 8GBP Jackpot) (Scorpion 2/3)"
+ C|sc2inst3p "Instant Jackpot (Bellfruit) (set 4, UK, 8GBP Jackpot, Protocol) (Scorpion 2/3)"
+ C|sc2inst4 "Instant Jackpot (Bellfruit) (set 5, UK) (Scorpion 2/3)"
+ C|sc2inst4p "Instant Jackpot (Bellfruit) (set 5, UK, Protocol) (Scorpion 2/3)"
+ C|sc2inst5 "Instant Jackpot (Bellfruit) (set 6, UK) (Scorpion 2/3)"
+ C|sc2inst6 "Instant Jackpot (Bellfruit) (set 7, UK) (Scorpion 2/3)"
+ C|sc2instp "Instant Jackpot (Bellfruit) (set 1, UK, 10GBP Jackpot, Protocol) (Scorpion 2/3)"
+ c|sc2kcclb "King Cash Club (Bellfruit) (Scorpion 2/3)"
+ C|sc2kcclb "King Cash Club (Bellfruit) (set 1, UK) (Scorpion 2/3)"
+ C|sc2kcclb1 "King Cash Club (Bellfruit) (set 2, UK) (Scorpion 2/3)"
+ C|sc2kcclb1p "King Cash Club (Bellfruit) (set 2, UK, Protocol) (Scorpion 2/3)"
+ C|sc2kcclbp "King Cash Club (Bellfruit) (set 1, UK, Protocol) (Scorpion 2/3)"
+ c|sc2mam "Make A Million (Bellfruit) (Scorpion 2/3)"
+ C|sc2mam "Make A Million (Bellfruit) (set 1, UK, 10GBP Jackpot) (Scorpion 2/3)"
+ C|sc2mam1 "Make A Million (Bellfruit) (set 2, UK, 10GBP Jackpot) (Scorpion 2/3)"
+ C|sc2mam1p "Make A Million (Bellfruit) (set 2, UK, 10GBP Jackpot, Protocol) (Scorpion 2/3)"
+ C|sc2mam2 "Make A Million (Bellfruit) (set 3, UK, 8GBP Jackpot) (Scorpion 2/3)"
+ C|sc2mam2p "Make A Million (Bellfruit) (set 3, UK, 8GBP Jackpot, Protocol) (Scorpion 2/3)"
+ C|sc2mam3 "Make A Million (Bellfruit) (set 4, UK) (Scorpion 2/3)"
+ C|sc2mam3p "Make A Million (Bellfruit) (set 4, UK, Protocol) (Scorpion 2/3)"
+ C|sc2mam4 "Make A Million (Bellfruit) (set 5, UK) (Scorpion 2/3)"
+ C|sc2mam4p "Make A Million (Bellfruit) (set 5, UK, Protocol) (Scorpion 2/3)"
+ C|sc2mam5 "Make A Million (Bellfruit) (set 6, UK) (Scorpion 2/3)"
+ c|sc2mamcl "Make A Million Club (Bellfruit) (Scorpion 2/3)"
+ C|sc2mamcl "Make A Million Club (Bellfruit) (set 1, UK, 250GBP Jackpot) (Scorpion 2/3)"
+ C|sc2mamcl1 "Make A Million Club (Bellfruit) (set 2, UK) (Scorpion 2/3)"
+ C|sc2mamcl1p "Make A Million Club (Bellfruit) (set 2, UK, Protocol) (Scorpion 2/3)"
+ C|sc2mamcl2 "Make A Million Club (Bellfruit) (set 3, UK) (Scorpion 2/3)"
+ C|sc2mamcl2p "Make A Million Club (Bellfruit) (set 3, UK, Protocol) (Scorpion 2/3)"
+ C|sc2mamcl3 "Make A Million Club (Bellfruit) (set 4, UK) (Scorpion 2/3)"
+ C|sc2mamclp "Make A Million Club (Bellfruit) (set 1, UK, 250GBP Jackpot, Protocol) (Scorpion 2/3)"
+ C|sc2mamp "Make A Million (Bellfruit) (set 1, UK, 10GBP Jackpot, Protocol) (Scorpion 2/3)"
+ c|sc2motd "Match Of The Day (Bellfruit) (Scorpion 2/3)"
+ C|sc2motd "Match Of The Day (Bellfruit) (set 1, UK, 10GBP Jackpot) (Scorpion 2/3)"
+ C|sc2motd1 "Match Of The Day (Bellfruit) (set 2, UK, 10GBP Jackpot, 1st Triennial) (Scorpion 2/3)"
+ C|sc2motd10p "Match Of The Day (Bellfruit) (set 11, UK, 8GBP Jackpot, Protocol) (Scorpion 2/3)"
+ C|sc2motd1p "Match Of The Day (Bellfruit) (set 2, UK, 10GBP Jackpot, 1st Triennial, Protocol) (Scorpion 2/3)"
+ C|sc2motd2 "Match Of The Day (Bellfruit) (set 3, UK, 10GBP Jackpot) (Scorpion 2/3)"
+ C|sc2motd2p "Match Of The Day (Bellfruit) (set 3, UK, 10GBP Jackpot, Protocol) (Scorpion 2/3)"
+ C|sc2motd3 "Match Of The Day (Bellfruit) (set 4, UK) (Scorpion 2/3)"
+ C|sc2motd3p "Match Of The Day (Bellfruit) (set 4, UK, Protocol) (Scorpion 2/3)"
+ C|sc2motd4 "Match Of The Day (Bellfruit) (set 5, UK, Arcade) (Scorpion 2/3)"
+ C|sc2motd4p "Match Of The Day (Bellfruit) (set 5, UK, Arcade, Protocol) (Scorpion 2/3)"
+ C|sc2motd5 "Match Of The Day (Bellfruit) (set 6, UK, Single Site) (Scorpion 2/3)"
+ C|sc2motd5p "Match Of The Day (Bellfruit) (set 6, UK, Single Site, Protocol) (Scorpion 2/3)"
+ C|sc2motd6 "Match Of The Day (Bellfruit) (set 7, UK, 8GBP Jackpot) (Scorpion 2/3)"
+ C|sc2motd6p "Match Of The Day (Bellfruit) (set 7, UK, 8GBP Jackpot, Protocol) (Scorpion 2/3)"
+ C|sc2motd7 "Match Of The Day (Bellfruit) (set 8, UK) (Scorpion 2/3)"
+ C|sc2motd7p "Match Of The Day (Bellfruit) (set 8, UK, Protocol) (Scorpion 2/3)"
+ C|sc2motd8 "Match Of The Day (Bellfruit) (set 9, UK) (Scorpion 2/3)"
+ C|sc2motd8p "Match Of The Day (Bellfruit) (set 9, UK, Protocol) (Scorpion 2/3)"
+ C|sc2motd9 "Match Of The Day (Bellfruit) (set 10, UK, 6GBP Jackpot) (Scorpion 2/3)"
+ C|sc2motdp "Match Of The Day (Bellfruit) (set 1, UK, 10GBP Jackpot, Protocol) (Scorpion 2/3)"
+ c|sc2ofool "Only Fools & Horses (Bellfruit) (Scorpion 2/3)"
+ C|sc2ofool "Only Fools & Horses (Bellfruit) (set 1) (Scorpion 2/3)"
+ C|sc2ofool1 "Only Fools & Horses (Bellfruit) (set 2) (Scorpion 2/3)"
+ C|sc2ofool2 "Only Fools & Horses (Bellfruit) (set 3) (Scorpion 2/3)"
+ C|sc2ofool3 "Only Fools & Horses (Bellfruit) (set 4) (Scorpion 2/3)"
+ C|sc2ofool4 "Only Fools & Horses (Bellfruit) (set 5) (Scorpion 2/3)"
+ c|sc2olgld "Olympic Gold (Bellfruit) (Scorpion 2/3)"
+ C|sc2olgld "Olympic Gold (Bellfruit) (set 1, UK) (Scorpion 2/3)"
+ C|sc2olgld1 "Olympic Gold (Bellfruit) (set 2, UK, 10GBP Jackpot) (Scorpion 2/3)"
+ C|sc2olgld1p "Olympic Gold (Bellfruit) (set 2, UK, 10GBP Jackpot, Protocol) (Scorpion 2/3)"
+ C|sc2olgldp "Olympic Gold (Bellfruit) (set 1, UK, Protocol) (Scorpion 2/3)"
+ c|sc2pick "Pick Of The Bunch (Global) (Scorpion 2/3)"
+ C|sc2pick "Pick Of The Bunch (Global) (v2.3) (Scorpion 2/3)"
+ C|sc2pickc "Pick Of The Bunch (Club?) (Global) (v1.9) (Scorpion 2/3)"
+ C|sc2pickcp "Pick Of The Bunch (Club?) (Global) (v1.9 Protocol) (Scorpion 2/3)"
+ C|sc2pickp "Pick Of The Bunch (Global) (v2.3 Protocol) (Scorpion 2/3)"
+ c|sc2prem "Premier Club Manager (Bellfruit) (Scorpion 2/3)"
+ C|sc2prem "Premier Club Manager (Bellfruit) (set 1, UK, 250GBP Jackpot) (Scorpion 2/3)"
+ C|sc2prem1 "Premier Club Manager (Bellfruit) (set 2, UK) (Scorpion 2/3)"
+ C|sc2prem1p "Premier Club Manager (Bellfruit) (set 2, UK, Protocol) (Scorpion 2/3)"
+ C|sc2prem2 "Premier Club Manager (Bellfruit) (set 3, UK) (Scorpion 2/3)"
+ C|sc2premp "Premier Club Manager (Bellfruit) (set 1, UK, 250GBP Jackpot, Protocol) (Scorpion 2/3)"
+ c|sc2ptytm "Party Time (Bellfruit) (Scorpion 2/3)"
+ C|sc2ptytm "Party Time (Bellfruit) (set 1) (Scorpion 2/3)"
+ C|sc2ptytm1 "Party Time (Bellfruit) (set 2) (Scorpion 2/3)"
+ C|sc2ptytm1p "Party Time (Bellfruit) (set 2, Protocol) (Scorpion 2/3)"
+ c|sc2relgm "Reel Gems (Bellfruit) (Scorpion 2/3)"
+ C|sc2relgm "Reel Gems (Bellfruit) (set 1, UK) (Scorpion 2/3)"
+ C|sc2relgm1p "Reel Gems (Bellfruit) (set 2, UK, Protocol) (Scorpion 2/3)"
+ C|sc2relgmp "Reel Gems (Bellfruit) (set 1, UK, Protocol) (Scorpion 2/3)"
+ c|sc2rock "How Big's Your Rock (Global) (Scorpion 2/3)"
+ C|sc2rock "How Big's Your Rock? (Global) (v1.5) (Scorpion 2/3)"
+ C|sc2rock1 "How Big's Your Rock? (Global) (v1.4) (Scorpion 2/3)"
+ C|sc2rock1p "How Big's Your Rock? (Global) (v1.4 Protocol) (Scorpion 2/3)"
+ C|sc2rocke "How Big's Your Rock? (Global) (v?.? Euro) (Scorpion 2/3)"
+ C|sc2rockp "How Big's Your Rock? (Global) (v1.5 Protocol) (Scorpion 2/3)"
+ c|sc2scc "Safe Cracker Club (Mdm) (Scorpion 2/3)"
+ C|sc2scc "Safe Cracker Club (Mdm) (v4.4) (Scorpion 2/3)"
+ c|sc2showt "Showtime Spectacular (Bellfruit) (Scorpion 2/3)"
+ C|sc2showt "Showtime Spectacular (Bellfruit) (set 1, UK) (Scorpion 2/3)"
+ C|sc2showt1 "Showtime Spectacular (Bellfruit) (set 2, UK) (Scorpion 2/3)"
+ C|sc2showt1p "Showtime Spectacular (Bellfruit) (set 2, UK, Protocol) (Scorpion 2/3)"
+ C|sc2showt2 "Showtime Spectacular (Bellfruit) (set 3, UK) (Scorpion 2/3)"
+ C|sc2showt2p "Showtime Spectacular (Bellfruit) (set 3, UK, Protocol) (Scorpion 2/3)"
+ C|sc2showt3 "Showtime Spectacular (Bellfruit) (set 4, UK) (Scorpion 2/3)"
+ C|sc2showt3p "Showtime Spectacular (Bellfruit) (set 4, UK, Protocol) (Scorpion 2/3)"
+ C|sc2showt4 "Showtime Spectacular (Bellfruit) (set 5, UK) (Scorpion 2/3)"
+ C|sc2showt4p "Showtime Spectacular (Bellfruit) (set 5, UK, Protocol) (Scorpion 2/3)"
+ C|sc2showtp "Showtime Spectacular (Bellfruit) (set 1, UK, Protocol) (Scorpion 2/3)"
+ c|sc2sstar "Superstar (Bellfruit) (Scorpion 2/3)"
+ C|sc2sstar "Superstar (Bellfruit) (set 1, UK, 3rd Triennial) (Scorpion 2/3)"
+ C|sc2sstar1 "Superstar (Bellfruit) (set 2, UK, 2nd Triennial) (Scorpion 2/3)"
+ C|sc2sstar1p "Superstar (Bellfruit) (set 2, UK, 2nd Triennial, Protocol) (Scorpion 2/3)"
+ C|sc2sstar2 "Superstar (Bellfruit) (set 3, UK, 2nd Triennial) (Scorpion 2/3)"
+ C|sc2sstar2p "Superstar (Bellfruit) (set 3, UK, 2nd Triennial, Protocol) (Scorpion 2/3)"
+ C|sc2sstar3 "Superstar (Bellfruit) (set 4, UK, 2nd Triennial) (Scorpion 2/3)"
+ C|sc2sstar3p "Superstar (Bellfruit) (set 4, UK, 2nd Triennial, Protocol) (Scorpion 2/3)"
+ C|sc2sstar4 "Superstar (Bellfruit) (set 5, UK) (Scorpion 2/3)"
+ C|sc2sstarp "Superstar (Bellfruit) (set 1, UK, 3rd Triennial, Protocol) (Scorpion 2/3)"
+ c|sc2suprz "Surprise Surprize (Bellfruit) (Scorpion 2/3)"
+ C|sc2suprz "Surprise Surprize (Bellfruit) (set 1, UK) (Scorpion 2/3)"
+ C|sc2suprz1 "Surprise Surprize (Bellfruit) (set 2, UK) (Scorpion 2/3)"
+ C|sc2suprz1p "Surprise Surprize (Bellfruit) (set 2, UK, Protocol)(Scorpion 2/3)"
+ C|sc2suprz2 "Surprise Surprize (Bellfruit) (set 3, UK) (Scorpion 2/3)"
+ C|sc2suprz2p "Surprise Surprize (Bellfruit) (set 3, UK, Protocol)(Scorpion 2/3)"
+ C|sc2suprz3 "Surprise Surprize (Bellfruit) (set 4, UK) (Scorpion 2/3)"
+ C|sc2suprzp "Surprise Surprize (Bellfruit) (set 1, UK, Protocol)(Scorpion 2/3)"
+ c|sc2topwk "Top Wack (Bellfruit) (Scorpion 2/3)"
+ C|sc2topwk "Top Wack (Bellfruit) (set 1, UK, 10GBP Jackpot, 1st Triennial) (Scorpion 2/3)"
+ C|sc2topwkp "Top Wack (Bellfruit) (set 1, UK, 10GBP Jackpot, 1st Triennial, Protocol) (Scorpion 2/3)"
+ c|sc2town "Round The Town (Bellfruit) (Scorpion 2/3)"
+ C|sc2town "Round The Town (Bellfruit) (set 1) (Scorpion 2/3)"
+ C|sc2town1 "Round The Town (Bellfruit) (set 2) (Scorpion 2/3)"
+ C|sc2town1p "Round The Town (Bellfruit) (set 2, Protocol) (Scorpion 2/3)"
+ C|sc2town2 "Round The Town (Bellfruit) (set 3) (Scorpion 2/3)"
+ C|sc2town3 "Round The Town (Bellfruit) (set 4) (Scorpion 2/3)"
+ C|sc2town3p "Round The Town (Bellfruit) (set 4, Protocol) (Scorpion 2/3)"
+ C|sc2town4 "Round The Town (Bellfruit) (set 5) (Scorpion 2/3)"
+ C|sc2town5 "Round The Town (Bellfruit) (set 6) (Scorpion 2/3)"
+ C|sc2townp "Round The Town (Bellfruit) (set 1, Protocol) (Scorpion 2/3)"
+ c|sc2wembl "Road To Wembley (Bellfruit) (Scorpion 2/3)"
+ C|sc2wembl "Road To Wembley (Bellfruit) (set 1, UK, 10GBP Jackpot, 15RM motor) (Scorpion 2/3)"
+ C|sc2wembl1 "Road To Wembley (Bellfruit) (set 2, UK, 15RM motor) (Scorpion 2/3)"
+ C|sc2wembl10 "Road To Wembley (Bellfruit) (set 11, UK) (Scorpion 2/3)"
+ C|sc2wembl1p "Road To Wembley (Bellfruit) (set 2, UK, 15RM motor, Protocol) (Scorpion 2/3)"
+ C|sc2wembl2 "Road To Wembley (Bellfruit) (set 3, UK) (Scorpion 2/3)"
+ C|sc2wembl2p "Road To Wembley (Bellfruit) (set 3, UK, Protocol) (Scorpion 2/3)"
+ C|sc2wembl3 "Road To Wembley (Bellfruit) (set 4, UK) (Scorpion 2/3)"
+ C|sc2wembl4p "Road To Wembley (Bellfruit) (set 5, UK, Protocol) (Scorpion 2/3)"
+ C|sc2wembl5a "Road To Wembley (Bellfruit) (set 6, UK, 16RM motor) (Scorpion 2/3)"
+ C|sc2wembl5ap "Road To Wembley (Bellfruit) (set 6, UK, 16RM motor, Protocol) (Scorpion 2/3)"
+ C|sc2wembl6ap "Road To Wembley (Bellfruit) (set 7, UK, 16RM motor, Protocol) (Scorpion 2/3)"
+ C|sc2wembl7a "Road To Wembley (Bellfruit) (set 8, UK, 8GBP Jackpot, 16RM motor) (Scorpion 2/3)"
+ C|sc2wembl7ap "Road To Wembley (Bellfruit) (set 8, UK, 8GBP Jackpot, 16RM motor, Protocol) (Scorpion 2/3)"
+ C|sc2wembl8 "Road To Wembley (Bellfruit) (set 9, UK) (Scorpion 2/3)"
+ C|sc2wembl9 "Road To Wembley (Bellfruit) (set 10, UK) (Scorpion 2/3)"
+ C|sc2wemblp "Road To Wembley (Bellfruit) (set 1, UK, 10GBP Jackpot, 15RM motor, Protocol) (Scorpion 2/3)"
+ c|sc2wwcl "Wild West Club (Bellfruit) (Scorpion 2/3)"
+ C|sc2wwcl "Wild West Club (Bellfruit) (set 1, UK, 250GBP Jackpot) (Scorpion 2/3)"
+ C|sc2wwcl1 "Wild West Club (Bellfruit) (set 2, UK) (Scorpion 2/3)"
+ C|sc2wwcl1p "Wild West Club (Bellfruit) (set 2, UK, Protocol) (Scorpion 2/3)"
+ C|sc2wwclp "Wild West Club (Bellfruit) (set 1, UK, 250GBP Jackpot, Protocol) (Scorpion 2/3)"
+ c|sc4cblas "Cash Blast (Bellfruit) (Scorpion 4)"
+ C|sc4cblas "Cash Blast (Voodoo Games) (Scorpion 4) (set 1)"
+ C|sc4cblasa "Cash Blast (Voodoo Games) (Scorpion 4) (set 2)"
+ C|sc4cfcas "Crazy Fruits Casino (Bellfruit) (Scorpion 4) (set 1)"
+ c|sc4cfcas "Crazy Fruits Casino (Bellfruit) (Scorpion 4)"
+ C|sc4cfcasa "Crazy Fruits Casino (Bellfruit) (Scorpion 4) (set 2)"
+ C|sc4cfcasb "Crazy Fruits Casino (Bellfruit) (Scorpion 4) (set 3)"
+ C|sc4cfcasc "Crazy Fruits Casino (Bellfruit) (Scorpion 4) (set 4)"
+ C|sc4cfcasd "Crazy Fruits Casino (Bellfruit) (Scorpion 4) (set 5)"
+ C|sc4cfcase "Crazy Fruits Casino (Bellfruit) (Scorpion 4) (set 6)"
+ C|sc4cfcasf "Crazy Fruits Casino (Bellfruit) (Scorpion 4) (set 7)"
+ C|sc4cfcasg "Crazy Fruits Casino (Bellfruit) (Scorpion 4) (set 8)"
+ C|sc4cfcash "Crazy Fruits Casino (Bellfruit) (Scorpion 4) (set 9)"
+ C|sc4cfcasi "Crazy Fruits Casino (Bellfruit) (Scorpion 4) (set 10)"
+ C|sc4cfcasj "Crazy Fruits Casino (Bellfruit) (Scorpion 4) (set 11)"
+ C|sc4cfcask "Crazy Fruits Casino (Bellfruit) (Scorpion 4) (set 12)"
+ C|sc4cfcasl "Crazy Fruits Casino (Bellfruit) (Scorpion 4) (set 13)"
+ C|sc4cfcasm "Crazy Fruits Casino (Bellfruit) (Scorpion 4) (set 14)"
+ C|sc4cfcasn "Crazy Fruits Casino (Bellfruit) (Scorpion 4) (set 15)"
+ C|sc4cfcaso "Crazy Fruits Casino (Bellfruit) (Scorpion 4) (set 16)"
+ C|sc4cfcasp "Crazy Fruits Casino (Bellfruit) (Scorpion 4) (set 17)"
+ C|sc4cfcasq "Crazy Fruits Casino (Bellfruit) (Scorpion 4) (set 18)"
+ C|sc4cfcasr "Crazy Fruits Casino (Bellfruit) (Scorpion 4) (set 19)"
+ c|sc4crzgn "Crazy Gang (Bellfruit) (Scorpion 4) (set 1)"
+ C|sc4crzgn "Crazy Gang (Bellfruit) (Scorpion 4) (set 1, Top Box)"
+ c|sc4crzgnb "Crazy Gang (Bellfruit) (Scorpion 4) (set 3)"
+ C|sc4crzgnb "Crazy Gang (Bellfruit) (Scorpion 4) (set 3, Top Box)"
+ c|sc4crzgng "Crazy Gang (Bellfruit) (Scorpion 4) (set 8)"
+ C|sc4crzgng "Crazy Gang (Bellfruit) (Scorpion 4) (set 8, Top Box)"
+ c|sc4crzgnj "Crazy Gang (Bellfruit) (Scorpion 4) (set 11)"
+ C|sc4crzgnj "Crazy Gang (Bellfruit) (Scorpion 4) (set 11, Top Box)"
+ C|sc4dhh "Dough Ho Ho (Bellfruit) (Scorpion 4) (set 1)"
+ c|sc4dhh "Dough Ho Ho (Bellfruit) (Scorpion 4) (set 2)"
+ C|sc4dhha "Dough Ho Ho (Bellfruit) (Scorpion 4) (set 2)"
+ c|sc4dhha "Dough Ho Ho (Bellfruit) (Scorpion 4) (set 3)"
+ C|sc4dhhb "Dough Ho Ho (Bellfruit) (Scorpion 4) (set 3)"
+ c|sc4dhhb "Dough Ho Ho (Bellfruit) (Scorpion 4) (set 4)"
+ C|sc4dhhc "Dough Ho Ho (Bellfruit) (Scorpion 4) (set 4)"
+ c|sc4dhhc "Dough Ho Ho (Bellfruit) (Scorpion 4) (set 5)"
+ C|sc4dhhd "Dough Ho Ho (Bellfruit) (Scorpion 4) (set 5)"
+ c|sc4dhhd "Dough Ho Ho (Bellfruit) (Scorpion 4) (set 6)"
+ C|sc4dhhe "Dough Ho Ho (Bellfruit) (Scorpion 4) (set 6)"
+ c|sc4dhhe "Dough Ho Ho (Bellfruit) (Scorpion 4) (set 7)"
+ C|sc4dnd "Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL016, set 1)"
+ c|sc4dnd "Deal Or No Deal (Bellfruit) (Scorpion 4) (set 1)"
+ C|sc4dnda "Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL422, set 2)"
+ c|sc4dnda "Deal Or No Deal (Bellfruit) (Scorpion 4) (set 2)"
+ C|sc4dndb "Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL016, set 2)"
+ c|sc4dndb "Deal Or No Deal (Bellfruit) (Scorpion 4) (set 3)"
+ C|sc4dndbb "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (CRBE471, set 1)"
+ c|sc4dndbb "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (set 1)"
+ C|sc4dndbba "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (CRBE472, set 1)"
+ c|sc4dndbba "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (set 2)"
+ C|sc4dndbbb "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (CRBE471, set 2)"
+ c|sc4dndbbb "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (set 3)"
+ C|sc4dndbbc "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (CRBE472, set 2)"
+ c|sc4dndbbc "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (set 4)"
+ C|sc4dndbbd "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (CRBE473, set 1)"
+ c|sc4dndbbd "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (set 5)"
+ C|sc4dndbbe "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (CRBE571, set 1)"
+ c|sc4dndbbe "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (set 6)"
+ C|sc4dndbbf "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (CRBE572, set 1)"
+ c|sc4dndbbf "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (set 7)"
+ C|sc4dndbbg "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (CRBE473, set 2)"
+ c|sc4dndbbg "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (set 8)"
+ C|sc4dndbbh "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (CRBE571, set 2)"
+ c|sc4dndbbh "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (set 9)"
+ C|sc4dndbbi "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (CRBE572, set 2)"
+ c|sc4dndbbi "Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (set 10)"
+ C|sc4dndbc "Deal Or No Deal Box Clever (Bellfruit) (Scorpion 4) (BOXR571, set 1)"
+ c|sc4dndbc "Deal Or No Deal Box Clever (Bellfruit) (Scorpion 4) (set 1)"
+ C|sc4dndbca "Deal Or No Deal Box Clever (Bellfruit) (Scorpion 4) (BOXR571, set 2)"
+ c|sc4dndbca "Deal Or No Deal Box Clever (Bellfruit) (Scorpion 4) (set 2)"
+ C|sc4dndbd "Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 4) (BGDA471, set 1)"
+ c|sc4dndbd "Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 4) (set 1)"
+ C|sc4dndbda "Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 4) (BGDA471, set 2)"
+ c|sc4dndbda "Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 4) (set 2)"
+ C|sc4dndbdb "Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 4) (BGDA472, set 1)"
+ c|sc4dndbdb "Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 4) (set 3)"
+ C|sc4dndbdc "Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 4) (BGDA571, set 1)"
+ c|sc4dndbdc "Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 4) (set 4)"
+ C|sc4dndbdd "Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 4) (BGDA472, set 2)"
+ c|sc4dndbdd "Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 4) (set 5)"
+ C|sc4dndbde "Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 4) (BGDA571, set 2)"
+ c|sc4dndbde "Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 4) (set 6)"
+ C|sc4dndbe "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK012, set 1)"
+ c|sc4dndbe "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (set 1)"
+ C|sc4dndbeb "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK422, set 1)"
+ c|sc4dndbeb "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (set 2)"
+ C|sc4dndbec "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK012, set 2)"
+ c|sc4dndbec "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (set 3)"
+ C|sc4dndbed "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK422, set 2)"
+ c|sc4dndbed "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (set 4)"
+ C|sc4dndbee "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK423, set 1)"
+ c|sc4dndbee "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (set 5)"
+ C|sc4dndbef "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK425, set 1)"
+ c|sc4dndbef "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (set 6)"
+ C|sc4dndbeg "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK013, set 1)"
+ c|sc4dndbeg "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (set 7)"
+ C|sc4dndbeh "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK014, set 1)"
+ c|sc4dndbeh "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (set 8)"
+ C|sc4dndbei "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK423, set 2)"
+ c|sc4dndbei "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (set 9)"
+ C|sc4dndbej "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK425, set 2)"
+ c|sc4dndbej "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (set 10)"
+ C|sc4dndbek "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK013, set 2)"
+ c|sc4dndbek "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (set 11)"
+ C|sc4dndbel "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK014, set 2)"
+ c|sc4dndbel "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (set 12)"
+ C|sc4dndbem "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK426, set 1)"
+ c|sc4dndbem "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (set 13)"
+ C|sc4dndben "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK426, set 2)"
+ c|sc4dndben "Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (set 14)"
+ C|sc4dndbr "Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (BIGD471, set 1)"
+ c|sc4dndbr "Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (set 1)"
+ C|sc4dndbra "Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (BIGD472, set 1)"
+ c|sc4dndbra "Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (set 2)"
+ C|sc4dndbrb "Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (BIGD471, set 2)"
+ c|sc4dndbrb "Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (set 3)"
+ C|sc4dndbrc "Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (BIGD472, set 2)"
+ c|sc4dndbrc "Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (set 4)"
+ C|sc4dndbrd "Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (BIGD475, set 1)"
+ c|sc4dndbrd "Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (set 5)"
+ C|sc4dndbre "Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (BIGD571, set 1)"
+ c|sc4dndbre "Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (set 6)"
+ C|sc4dndbrf "Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (BIGD475, set 2)"
+ c|sc4dndbrf "Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (set 7)"
+ C|sc4dndbrg "Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (BIGD571, set 2)"
+ c|sc4dndbrg "Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (set 8)"
+ C|sc4dndc "Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL422, set 1)"
+ c|sc4dndc "Deal Or No Deal (Bellfruit) (Scorpion 4) (set 4)"
+ C|sc4dndcc "Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 4) (CRZR471, set 1)"
+ c|sc4dndcc "Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 4) (set 1)"
+ C|sc4dndcca "Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 4) (CRZR474)"
+ c|sc4dndcca "Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 4) (set 2)"
+ C|sc4dndccb "Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 4) (CRZR471, set 2)"
+ c|sc4dndccb "Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 4) (set 3)"
+ C|sc4dndccc "Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 4) (CRZR475, set 1)"
+ c|sc4dndccc "Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 4) (set 4)"
+ C|sc4dndccd "Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 4) (CRZR571, set 1)"
+ c|sc4dndccd "Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 4) (set 5)"
+ C|sc4dndcce "Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 4) (CRZR475, set 2)"
+ c|sc4dndcce "Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 4) (set 6)"
+ C|sc4dndccf "Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 4) (CRZR571, set 2)"
+ c|sc4dndccf "Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 4) (set 7)"
+ C|sc4dndcl "Deal Or No Deal Club (Bellfruit) (Scorpion 4) (DNDL313, set 1)"
+ c|sc4dndcl "Deal Or No Deal Club (Bellfruit) (Scorpion 4) (set 1)"
+ C|sc4dndcla "Deal Or No Deal Club (Bellfruit) (Scorpion 4) (DNDL212, set 1)"
+ c|sc4dndcla "Deal Or No Deal Club (Bellfruit) (Scorpion 4) (set 2)"
+ C|sc4dndclb "Deal Or No Deal Club (Bellfruit) (Scorpion 4) (DNDL391, set 1)"
+ c|sc4dndclb "Deal Or No Deal Club (Bellfruit) (Scorpion 4) (set 3)"
+ C|sc4dndclc "Deal Or No Deal Club (Bellfruit) (Scorpion 4) (DNDL181, set 1)"
+ c|sc4dndclc "Deal Or No Deal Club (Bellfruit) (Scorpion 4) (set 4)"
+ C|sc4dndcld "Deal Or No Deal Club (Bellfruit) (Scorpion 4) (DNDL313, set 2)"
+ c|sc4dndcld "Deal Or No Deal Club (Bellfruit) (Scorpion 4) (set 5)"
+ C|sc4dndcle "Deal Or No Deal Club (Bellfruit) (Scorpion 4) (DNDL212, set 2)"
+ c|sc4dndcle "Deal Or No Deal Club (Bellfruit) (Scorpion 4) (set 6)"
+ C|sc4dndclf "Deal Or No Deal Club (Bellfruit) (Scorpion 4) (DNDL391, set 2)"
+ c|sc4dndclf "Deal Or No Deal Club (Bellfruit) (Scorpion 4) (set 7)"
+ C|sc4dndclg "Deal Or No Deal Club (Bellfruit) (Scorpion 4) (DNDL181, set 2)"
+ c|sc4dndclg "Deal Or No Deal Club (Bellfruit) (Scorpion 4) (set 8)"
+ C|sc4dndcs "Deal Or No Deal Classic (Bellfruit) (Scorpion 4) (CLDD211, set 1)"
+ c|sc4dndcs "Deal Or No Deal Classic (Bellfruit) (Scorpion 4) (set 1)"
+ C|sc4dndcsa "Deal Or No Deal Classic (Bellfruit) (Scorpion 4) (CLDD212, set 1)"
+ c|sc4dndcsa "Deal Or No Deal Classic (Bellfruit) (Scorpion 4) (set 2)"
+ C|sc4dndcsb "Deal Or No Deal Classic (Bellfruit) (Scorpion 4) (CLDD211, set 2)"
+ c|sc4dndcsb "Deal Or No Deal Classic (Bellfruit) (Scorpion 4) (set 3)"
+ C|sc4dndcsc "Deal Or No Deal Classic (Bellfruit) (Scorpion 4) (CLDD212, set 2)"
+ c|sc4dndcsc "Deal Or No Deal Classic (Bellfruit) (Scorpion 4) (set 4)"
+ C|sc4dndcsd "Deal Or No Deal Classic (Bellfruit) (Scorpion 4) (CLDD215, set 1)"
+ C|sc4dndcse "Deal Or No Deal Classic (Bellfruit) (Scorpion 4) (CLDD215, set 2)"
+ C|sc4dndcw "Deal Or No Deal The Walk Of Wealth Classic (Bellfruit) (Scorpion 4) (CWOH271, set 1)"
+ c|sc4dndcw "Deal Or No Deal The Walk Of Wealth Classic (Bellfruit) (Scorpion 4) (set 1)"
+ C|sc4dndcwa "Deal Or No Deal The Walk Of Wealth Classic (Bellfruit) (Scorpion 4) (CWOH272, set 1)"
+ c|sc4dndcwa "Deal Or No Deal The Walk Of Wealth Classic (Bellfruit) (Scorpion 4) (set 2)"
+ C|sc4dndcwb "Deal Or No Deal The Walk Of Wealth Classic (Bellfruit) (Scorpion 4) (CWOH271, set 2)"
+ c|sc4dndcwb "Deal Or No Deal The Walk Of Wealth Classic (Bellfruit) (Scorpion 4) (set 3)"
+ C|sc4dndcwc "Deal Or No Deal The Walk Of Wealth Classic (Bellfruit) (Scorpion 4) (CWOH272, set 2)"
+ c|sc4dndcwc "Deal Or No Deal The Walk Of Wealth Classic (Bellfruit) (Scorpion 4) (set 4)"
+ C|sc4dndd "Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL402, set 1)"
+ c|sc4dndd "Deal Or No Deal (Bellfruit) (Scorpion 4) (set 5)"
+ C|sc4dnddd "Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (DDNO471, set 1)"
+ c|sc4dnddd "Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (set 1)"
+ C|sc4dnddda "Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (DDNO571, set 1)"
+ c|sc4dnddda "Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (set 2)"
+ C|sc4dndddb "Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (DDNO572, set 1)"
+ c|sc4dndddb "Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (set 3)"
+ C|sc4dndddc "Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (DDNO573, set 1)"
+ c|sc4dndddc "Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (set 4)"
+ C|sc4dndddd "Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (DDNO471, set 2)"
+ c|sc4dndddd "Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (set 5)"
+ C|sc4dnddde "Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (DDNO571, set 2)"
+ c|sc4dnddde "Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (set 6)"
+ C|sc4dndddf "Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (DDNO572, set 2)"
+ c|sc4dndddf "Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (set 7)"
+ C|sc4dndddg "Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (DDNO573, set 2)"
+ c|sc4dndddg "Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (set 8)"
+ c|sc4dnddf "Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 4) (set 1)"
+ C|sc4dnddf "Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 4) (TDFC471, set 1)"
+ c|sc4dnddfa "Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 4) (set 2)"
+ C|sc4dnddfa "Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 4) (TDFC471, set 2)"
+ c|sc4dnddfb "Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 4) (set 3)"
+ C|sc4dnddfb "Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 4) (TDFC475, set 1)"
+ c|sc4dnddfc "Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 4) (set 4)"
+ C|sc4dnddfc "Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 4) (TDFC571, set 1)"
+ c|sc4dnddfd "Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 4) (set 5)"
+ C|sc4dnddfd "Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 4) (TDFC475, set 2)"
+ c|sc4dnddfe "Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 4) (set 6)"
+ C|sc4dnddfe "Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 4) (TDFC571, set 2)"
+ C|sc4dnddw "Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (DOFN471, set 1)"
+ c|sc4dnddw "Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (set 1)"
+ C|sc4dnddwa "Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (DOFN473, set 1)"
+ c|sc4dnddwa "Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (set 2)"
+ C|sc4dnddwb "Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (DOFN471, set 2)"
+ c|sc4dnddwb "Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (set 3)"
+ C|sc4dnddwc "Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (DOFN473, set 2)"
+ c|sc4dnddwc "Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (set 4)"
+ C|sc4dnddwd "Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (DOFN475, set 1)"
+ c|sc4dnddwd "Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (set 5)"
+ C|sc4dnddwe "Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (DOFN572, set 1)"
+ c|sc4dnddwe "Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (set 6)"
+ C|sc4dnddwf "Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (DOFN475, set 2)"
+ c|sc4dnddwf "Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (set 7)"
+ C|sc4dnddwg "Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (DOFN572, set 2)"
+ c|sc4dnddwg "Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (set 8)"
+ C|sc4dnde "Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL017, set 1)"
+ c|sc4dnde "Deal Or No Deal (Bellfruit) (Scorpion 4) (set 6)"
+ C|sc4dndf "Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL018, set 1)"
+ c|sc4dndf "Deal Or No Deal (Bellfruit) (Scorpion 4) (set 7)"
+ C|sc4dndg "Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL402, set 2)"
+ c|sc4dndg "Deal Or No Deal (Bellfruit) (Scorpion 4) (set 8)"
+ C|sc4dndh "Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL017, set 2)"
+ c|sc4dndh "Deal Or No Deal (Bellfruit) (Scorpion 4) (set 9)"
+ C|sc4dndhf "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA473, set 1)"
+ c|sc4dndhf "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (set 1)"
+ C|sc4dndhfa "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA473, set 2)"
+ c|sc4dndhfa "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (set 2)"
+ C|sc4dndhfb "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA477, set 1)"
+ c|sc4dndhfb "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (set 3)"
+ C|sc4dndhfc "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA571, set 1)"
+ c|sc4dndhfc "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (set 4)"
+ C|sc4dndhfd "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA477, set 2)"
+ c|sc4dndhfd "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (set 5)"
+ C|sc4dndhfe "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA571, set 2)"
+ c|sc4dndhfe "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (set 6)"
+ C|sc4dndhff "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA471, set 1)"
+ c|sc4dndhff "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (set 7)"
+ C|sc4dndhfg "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA472, set 1)"
+ c|sc4dndhfg "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (set 8)"
+ C|sc4dndhfh "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA471, set 2)"
+ c|sc4dndhfh "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (set 9)"
+ C|sc4dndhfi "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA472, set 2)"
+ c|sc4dndhfi "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (set 10)"
+ C|sc4dndhfj "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA476)"
+ C|sc4dndhfk "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA572, set 1, bad?)"
+ C|sc4dndhfl "Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA572, set 2, bad?)"
+ C|sc4dndi "Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL018, set 2)"
+ c|sc4dndi "Deal Or No Deal (Bellfruit) (Scorpion 4) (set 10)"
+ C|sc4dndj "Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL406, set 1)"
+ c|sc4dndj "Deal Or No Deal (Bellfruit) (Scorpion 4) (set 11)"
+ C|sc4dndk "Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL428, set 1)"
+ c|sc4dndk "Deal Or No Deal (Bellfruit) (Scorpion 4) (set 12)"
+ C|sc4dndl "Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL406, set 2)"
+ c|sc4dndl "Deal Or No Deal (Bellfruit) (Scorpion 4) (set 13)"
+ C|sc4dndlp "Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 4) (LPDN571, set 1)"
+ c|sc4dndlp "Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 4) (set 1)"
+ C|sc4dndlpa "Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 4) (LPDN572, set 1)"
+ c|sc4dndlpa "Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 4) (set 2)"
+ C|sc4dndlpb "Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 4) (LPDN573, set 1)"
+ c|sc4dndlpb "Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 4) (set 3)"
+ C|sc4dndlpc "Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 4) (LPDN571, set 2)"
+ c|sc4dndlpc "Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 4) (set 4)"
+ C|sc4dndlpd "Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 4) (LPDN572, set 2)"
+ c|sc4dndlpd "Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 4) (set 5)"
+ C|sc4dndlpe "Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 4) (LPDN573, set 2)"
+ c|sc4dndlpe "Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 4) (set 6)"
+ C|sc4dndm "Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL428, set 2)"
+ c|sc4dndm "Deal Or No Deal (Bellfruit) (Scorpion 4) (set 14)"
+ C|sc4dndn "Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL424, set 1)"
+ c|sc4dndn "Deal Or No Deal (Bellfruit) (Scorpion 4) (set 15)"
+ C|sc4dndo "Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL424, set 2)"
+ c|sc4dndo "Deal Or No Deal (Bellfruit) (Scorpion 4) (set 16)"
+ c|sc4dndpg "Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 4) (set 1)"
+ C|sc4dndpg "Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 4) (TPBG471, set 1)"
+ c|sc4dndpga "Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 4) (set 2)"
+ C|sc4dndpga "Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 4) (TPBG571, set 1)"
+ c|sc4dndpgb "Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 4) (set 3)"
+ C|sc4dndpgb "Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 4) (TPBG572, set 1)"
+ c|sc4dndpgc "Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 4) (set 4)"
+ C|sc4dndpgc "Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 4) (TPBG471, set 2)"
+ c|sc4dndpgd "Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 4) (set 5)"
+ C|sc4dndpgd "Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 4) (TPGB571, set 2)"
+ c|sc4dndpge "Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 4) (set 6)"
+ C|sc4dndpge "Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 4) (TPGB572, set 2)"
+ C|sc4dndra "Deal Or No Deal Red Alert (Bellfruit) (Scorpion 4) (REDT471, set 1)"
+ c|sc4dndra "Deal Or No Deal Red Alert (Bellfruit) (Scorpion 4) (set 1)"
+ C|sc4dndraa "Deal Or No Deal Red Alert (Bellfruit) (Scorpion 4) (REDT471, set 2)"
+ c|sc4dndraa "Deal Or No Deal Red Alert (Bellfruit) (Scorpion 4) (set 2)"
+ C|sc4dndrab "Deal Or No Deal Red Alert (Bellfruit) (Scorpion 4) (REDT474, set 1)"
+ c|sc4dndrab "Deal Or No Deal Red Alert (Bellfruit) (Scorpion 4) (set 3)"
+ C|sc4dndrac "Deal Or No Deal Red Alert (Bellfruit) (Scorpion 4) (REDT572, set 1)"
+ c|sc4dndrac "Deal Or No Deal Red Alert (Bellfruit) (Scorpion 4) (set 4)"
+ C|sc4dndrad "Deal Or No Deal Red Alert (Bellfruit) (Scorpion 4) (REDT474, set 2)"
+ c|sc4dndrad "Deal Or No Deal Red Alert (Bellfruit) (Scorpion 4) (set 5)"
+ C|sc4dndrae "Deal Or No Deal Red Alert (Bellfruit) (Scorpion 4) (REDT572, set 2)"
+ c|sc4dndrae "Deal Or No Deal Red Alert (Bellfruit) (Scorpion 4) (set 6)"
+ c|sc4dndtp "Deal Or No Deal The Power (Bellfruit) (Scorpion 4) (set 1)"
+ C|sc4dndtp "Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV411, set 1)"
+ c|sc4dndtpa "Deal Or No Deal The Power (Bellfruit) (Scorpion 4) (set 2)"
+ C|sc4dndtpa "Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV412, set 1)"
+ c|sc4dndtpb "Deal Or No Deal The Power (Bellfruit) (Scorpion 4) (set 3)"
+ C|sc4dndtpb "Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV413, set 1)"
+ c|sc4dndtpc "Deal Or No Deal The Power (Bellfruit) (Scorpion 4) (set 4)"
+ C|sc4dndtpc "Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV414, set 1, bad)"
+ c|sc4dndtpd "Deal Or No Deal The Power (Bellfruit) (Scorpion 4) (set 5)"
+ C|sc4dndtpd "Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV415, set 1)"
+ c|sc4dndtpe "Deal Or No Deal The Power (Bellfruit) (Scorpion 4) (set 6)"
+ C|sc4dndtpe "Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV411, set 2)"
+ c|sc4dndtpf "Deal Or No Deal The Power (Bellfruit) (Scorpion 4) (set 7)"
+ C|sc4dndtpf "Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV412, set 2)"
+ c|sc4dndtpg "Deal Or No Deal The Power (Bellfruit) (Scorpion 4) (set 8)"
+ C|sc4dndtpg "Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV413, set 2)"
+ c|sc4dndtph "Deal Or No Deal The Power (Bellfruit) (Scorpion 4) (set 9)"
+ C|sc4dndtph "Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV414, set 2, bad)"
+ c|sc4dndtpi "Deal Or No Deal The Power (Bellfruit) (Scorpion 4) (set 10)"
+ C|sc4dndtpi "Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV415, set 2)"
+ c|sc4dndtpj "Deal Or No Deal The Power (Bellfruit) (Scorpion 4) (set 11)"
+ C|sc4dndtpj "Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV41A, set 1)"
+ c|sc4dndtpk "Deal Or No Deal The Power (Bellfruit) (Scorpion 4) (set 12)"
+ C|sc4dndtpk "Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV41A, set 2)"
+ c|sc4dndtpl "Deal Or No Deal The Power (Bellfruit) (Scorpion 4) (set 13)"
+ C|sc4dndtpl "Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV416, set 1)"
+ c|sc4dndtpm "Deal Or No Deal The Power (Bellfruit) (Scorpion 4) (set 14)"
+ C|sc4dndtpm "Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV416, set 2)"
+ c|sc4dndtr "Deal Or No Deal Think Red (Bellfruit) (Scorpion 4) (set 1)"
+ C|sc4dndtr "Deal Or No Deal Think Red (Bellfruit) (Scorpion 4) (THRE571, set 1)"
+ c|sc4dndtra "Deal Or No Deal Think Red (Bellfruit) (Scorpion 4) (set 2)"
+ C|sc4dndtra "Deal Or No Deal Think Red (Bellfruit) (Scorpion 4) (THRE571, set 2)"
+ c|sc4dndwb "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (set 1)"
+ C|sc4dndwb "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (WIYX412, set 1)"
+ c|sc4dndwba "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (set 2)"
+ C|sc4dndwba "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (WIYX414, set 1)"
+ c|sc4dndwbb "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (set 3)"
+ C|sc4dndwbb "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (WIYX412, set 2)"
+ c|sc4dndwbc "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (set 4)"
+ C|sc4dndwbc "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (WIYX414, set 2)"
+ c|sc4dndwbd "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (set 5)"
+ C|sc4dndwbd "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (WIYX415, set 1)"
+ c|sc4dndwbe "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (set 6)"
+ C|sc4dndwbe "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (WIYX415, set 2)"
+ c|sc4dndwbf "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (set 7)"
+ C|sc4dndwbf "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (WIYX419, set 1)"
+ c|sc4dndwbg "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (set 8)"
+ C|sc4dndwbg "Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (WIYX419, set 2)"
+ c|sc4dndww "Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 4) (set 1)"
+ C|sc4dndww "Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 4) (TWOH411, set 1)"
+ c|sc4dndwwa "Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 4) (set 2)"
+ C|sc4dndwwa "Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 4) (TWOH412, set 1)"
+ c|sc4dndwwb "Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 4) (set 3)"
+ C|sc4dndwwb "Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 4) (TWOH411, set 2)"
+ c|sc4dndwwc "Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 4) (set 4)"
+ C|sc4dndwwc "Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 4) (TWOH415, set 1)"
+ c|sc4dndwwd "Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 4) (set 5)"
+ C|sc4dndwwd "Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 4) (TWOH415, set 2)"
+ c|sc4dndwwe "Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 4) (set 6)"
+ C|sc4dndwwe "Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 4) (TWOH412, set 2)"
+ C|sc4dndys "Deal Or No Deal It's Your Show (Bellfruit) (Scorpion 4) (DOBO571, set 1)"
+ c|sc4dndys "Deal Or No Deal It's Your Show (Bellfruit) (Scorpion 4) (set 1)"
+ C|sc4dndysa "Deal Or No Deal It's Your Show (Bellfruit) (Scorpion 4) (DOBO474, set 1)"
+ c|sc4dndysa "Deal Or No Deal It's Your Show (Bellfruit) (Scorpion 4) (set 2)"
+ C|sc4dndysb "Deal Or No Deal It's Your Show (Bellfruit) (Scorpion 4) (DOBO571, set 2)"
+ c|sc4dndysb "Deal Or No Deal It's Your Show (Bellfruit) (Scorpion 4) (set 3)"
+ C|sc4dndysc "Deal Or No Deal It's Your Show (Bellfruit) (Scorpion 4) (DOBO474, set 2)"
+ C|sc4ggame "Golden Game (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 25GBP, set 1)"
+ c|sc4ggame "Golden Game (Mazooma) (Scorpion 4) (set 1)"
+ C|sc4ggame0 "Golden Game (Mazooma) (PR2056) (Scorpion 4) (set 2)"
+ c|sc4ggame0 "Golden Game (Mazooma) (Scorpion 4) (set 28)"
+ C|sc4ggame1 "Golden Game (Mazooma) (PR2056, newer?) (Scorpion 4) (set 7)"
+ c|sc4ggame1 "Golden Game (Mazooma) (Scorpion 4) (set 29)"
+ C|sc4ggame2 "Golden Game (Mazooma) (PR2056, newer?) (Scorpion 4) (set 8)"
+ c|sc4ggame2 "Golden Game (Mazooma) (Scorpion 4) (set 30)"
+ C|sc4ggame3 "Golden Game (Mazooma) (PR2056) (Scorpion 4) (GLDX, 30GBP, set 6)"
+ c|sc4ggame3 "Golden Game (Mazooma) (Scorpion 4) (set 31)"
+ C|sc4ggame4 "Golden Game (Mazooma) (PR2056) (Scorpion 4) (GLDX, 30GBP, set 7)"
+ c|sc4ggame4 "Golden Game (Mazooma) (Scorpion 4) (set 32)"
+ C|sc4ggame5 "Golden Game (Mazooma) (PR2056) (Scorpion 4) (GLDX, 30GBP, set 8)"
+ c|sc4ggame5 "Golden Game (Mazooma) (Scorpion 4) (set 33)"
+ C|sc4ggame6 "Golden Game (Mazooma) (PR2056) (Scorpion 4) (GLDX, 30GBP, set 9)"
+ c|sc4ggame6 "Golden Game (Mazooma) (Scorpion 4) (set 34)"
+ C|sc4ggame7 "Golden Game (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 35GBP, set 1)"
+ c|sc4ggame7 "Golden Game (Mazooma) (Scorpion 4) (set 35)"
+ C|sc4ggame8 "Golden Game (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 35GBP, set 2)"
+ c|sc4ggame8 "Golden Game (Mazooma) (Scorpion 4) (set 36)"
+ C|sc4ggame9 "Golden Game (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 35GBP, set 3)"
+ c|sc4ggame9 "Golden Game (Mazooma) (Scorpion 4) (set 37)"
+ C|sc4ggamea "Golden Game (Mazooma) (PR2056) (Scorpion 4) (GLDX, 25GBP, set 1)"
+ c|sc4ggamea "Golden Game (Mazooma) (Scorpion 4) (set 2)"
+ C|sc4ggameaa "Golden Game (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 35GBP, set 4)"
+ c|sc4ggameaa "Golden Game (Mazooma) (Scorpion 4) (set 38)"
+ C|sc4ggameab "Golden Game (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 35GBP, set 5)"
+ c|sc4ggameab "Golden Game (Mazooma) (Scorpion 4) (set 39)"
+ C|sc4ggameac "Golden Game (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 35GBP, set 6)"
+ c|sc4ggameac "Golden Game (Mazooma) (Scorpion 4) (set 40)"
+ C|sc4ggamead "Golden Game (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 35GBP, set 7)"
+ c|sc4ggamead "Golden Game (Mazooma) (Scorpion 4) (set 41)"
+ C|sc4ggameae "Golden Game (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 35GBP, set 8)"
+ c|sc4ggameae "Golden Game (Mazooma) (Scorpion 4) (set 42)"
+ C|sc4ggameb "Golden Game (Mazooma) (PR2056) (Scorpion 4) (GLDX, 25GBP, set 2)"
+ c|sc4ggameb "Golden Game (Mazooma) (Scorpion 4) (set 3)"
+ C|sc4ggamec "Golden Game (Mazooma) (PR2056) (Scorpion 4) (GLDX, 25GBP, set 3)"
+ c|sc4ggamec "Golden Game (Mazooma) (Scorpion 4) (set 4)"
+ C|sc4ggamed "Golden Game (Mazooma) (PR2056) (Scorpion 4) (GLDX, 25GBP, set 4)"
+ c|sc4ggamed "Golden Game (Mazooma) (Scorpion 4) (set 5)"
+ c|sc4ggamee "Golden Game (Mazooma) (Scorpion 4) (set 6)"
+ C|sc4ggamef "Golden Game (Mazooma) (PR2056) (Scorpion 4) (GLDX, 30GBP, set 1)"
+ c|sc4ggamef "Golden Game (Mazooma) (Scorpion 4) (set 7)"
+ C|sc4ggameg "Golden Game (Mazooma) (PR2056) (Scorpion 4) (GLDX, 30GBP, set 2)"
+ c|sc4ggameg "Golden Game (Mazooma) (Scorpion 4) (set 8)"
+ c|sc4ggameh "Golden Game (Mazooma) (Scorpion 4) (set 9)"
+ C|sc4ggamei "Golden Game (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 25GBP, set 2)"
+ c|sc4ggamei "Golden Game (Mazooma) (Scorpion 4) (set 10)"
+ C|sc4ggamej "Golden Game (Mazooma) (PR2056) (Scorpion 4) (GLDX, 30GBP, set 3)"
+ c|sc4ggamej "Golden Game (Mazooma) (Scorpion 4) (set 11)"
+ C|sc4ggamek "Golden Game (Mazooma) (PR2056) (Scorpion 4) (GLDX, 30GBP, set 4)"
+ c|sc4ggamek "Golden Game (Mazooma) (Scorpion 4) (set 12)"
+ C|sc4ggamel "Golden Game (Mazooma) (PR2056, newer?) (Scorpion 4) (set 1)"
+ c|sc4ggamel "Golden Game (Mazooma) (Scorpion 4) (set 13)"
+ C|sc4ggamem "Golden Game (Mazooma) (PR2056, newer?) (Scorpion 4) (set 2)"
+ c|sc4ggamem "Golden Game (Mazooma) (Scorpion 4) (set 14)"
+ C|sc4ggamen "Golden Game (Mazooma) (PR2056) (Scorpion 4) (set 1)"
+ c|sc4ggamen "Golden Game (Mazooma) (Scorpion 4) (set 15)"
+ c|sc4ggameo "Golden Game (Mazooma) (Scorpion 4) (set 16)"
+ C|sc4ggamep "Golden Game (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 25GBP, set 3)"
+ c|sc4ggamep "Golden Game (Mazooma) (Scorpion 4) (set 17)"
+ C|sc4ggameq "Golden Game (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 25GBP, set 4)"
+ c|sc4ggameq "Golden Game (Mazooma) (Scorpion 4) (set 18)"
+ C|sc4ggamer "Golden Game (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 25GBP, set 5)"
+ c|sc4ggamer "Golden Game (Mazooma) (Scorpion 4) (set 19)"
+ C|sc4ggames "Golden Game (Mazooma) (PR2056) (Scorpion 4) (GLDX, 25GBP, set 5)"
+ c|sc4ggames "Golden Game (Mazooma) (Scorpion 4) (set 20)"
+ C|sc4ggamet "Golden Game (Mazooma) (PR2056) (Scorpion 4) (GLDX, 25GBP, set 6)"
+ c|sc4ggamet "Golden Game (Mazooma) (Scorpion 4) (set 21)"
+ C|sc4ggameu "Golden Game (Mazooma) (PR2056) (Scorpion 4) (GLDX, 25GBP, set 7)"
+ c|sc4ggameu "Golden Game (Mazooma) (Scorpion 4) (set 22)"
+ C|sc4ggamev "Golden Game (Mazooma) (PR2056) (Scorpion 4) (GLDX, 30GBP, set 5)"
+ c|sc4ggamev "Golden Game (Mazooma) (Scorpion 4) (set 23)"
+ C|sc4ggamew "Golden Game (Mazooma) (PR2056, newer?) (Scorpion 4) (set 3)"
+ c|sc4ggamew "Golden Game (Mazooma) (Scorpion 4) (set 24)"
+ C|sc4ggamex "Golden Game (Mazooma) (PR2056, newer?) (Scorpion 4) (set 4)"
+ c|sc4ggamex "Golden Game (Mazooma) (Scorpion 4) (set 25)"
+ C|sc4ggamey "Golden Game (Mazooma) (PR2056, newer?) (Scorpion 4) (set 5)"
+ c|sc4ggamey "Golden Game (Mazooma) (Scorpion 4) (set 26)"
+ C|sc4ggamez "Golden Game (Mazooma) (PR2056, newer?) (Scorpion 4) (set 6)"
+ c|sc4ggamez "Golden Game (Mazooma) (Scorpion 4) (set 27)"
+ C|sc4ggdlx "Golden Game Deluxe (Mazooma) (PR2201) (Scorpion 4) (set 1)"
+ c|sc4ggdlx "Golden Game Deluxe (Mazooma) (Scorpion 4) (set 1)"
+ C|sc4ggdlxa "Golden Game Deluxe (Mazooma) (PR2201) (Scorpion 4) (set 2)"
+ c|sc4ggdlxa "Golden Game Deluxe (Mazooma) (Scorpion 4) (set 2)"
+ C|sc4ggdlxb "Golden Game Deluxe (Mazooma) (PR2201) (Scorpion 4) (set 3)"
+ c|sc4ggdlxb "Golden Game Deluxe (Mazooma) (Scorpion 4) (set 3)"
+ C|sc4ggdlxc "Golden Game Deluxe (Mazooma) (PR2201) (Scorpion 4) (set 4)"
+ c|sc4ggdlxc "Golden Game Deluxe (Mazooma) (Scorpion 4) (set 4)"
+ C|sc4ggdlxd "Golden Game Deluxe (Mazooma) (PR2201) (Scorpion 4) (set 5)"
+ c|sc4ggdlxd "Golden Game Deluxe (Mazooma) (Scorpion 4) (set 5)"
+ C|sc4ggdlxe "Golden Game Deluxe (Mazooma) (PR2201) (Scorpion 4) (set 6)"
+ c|sc4ggdlxe "Golden Game Deluxe (Mazooma) (Scorpion 4) (set 6)"
+ C|sc4ggdlxf "Golden Game Deluxe (Mazooma) (PR2201) (Scorpion 4) (set 7)"
+ c|sc4ggdlxf "Golden Game Deluxe (Mazooma) (Scorpion 4) (set 7)"
+ C|sc4ggdlxg "Golden Game Deluxe (Mazooma) (PR2201) (Scorpion 4) (set 8)"
+ c|sc4ggdlxg "Golden Game Deluxe (Mazooma) (Scorpion 4) (set 8)"
+ C|sc4ggg "Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 1)"
+ c|sc4ggg "Grand Golden Game (Mazooma) (Scorpion 4) (set 1)"
+ c|sc4ggga "Grand Golden Game (Mazooma) (Scorpion 4) (set 2)"
+ C|sc4gggb "Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 2)"
+ c|sc4gggb "Grand Golden Game (Mazooma) (Scorpion 4) (set 3)"
+ C|sc4gggc "Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 3)"
+ c|sc4gggc "Grand Golden Game (Mazooma) (Scorpion 4) (set 4)"
+ C|sc4gggd "Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 4)"
+ c|sc4gggd "Grand Golden Game (Mazooma) (Scorpion 4) (set 5)"
+ C|sc4ggge "Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 5)"
+ c|sc4ggge "Grand Golden Game (Mazooma) (Scorpion 4) (set 6)"
+ C|sc4gggf "Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 6)"
+ c|sc4gggf "Grand Golden Game (Mazooma) (Scorpion 4) (set 7)"
+ C|sc4gggg "Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 13)"
+ c|sc4gggg "Grand Golden Game (Mazooma) (Scorpion 4) (set 8)"
+ C|sc4gggh "Grand Golden Game (Mazooma) (PR2353) (Scorpion 4) (GGGB, 35GBP, set 1)"
+ c|sc4gggh "Grand Golden Game (Mazooma) (Scorpion 4) (set 9)"
+ C|sc4gggi "Grand Golden Game (Mazooma) (PR2353) (Scorpion 4) (GGGB, 35GBP, set 2)"
+ c|sc4gggi "Grand Golden Game (Mazooma) (Scorpion 4) (set 10)"
+ c|sc4gggj "Grand Golden Game (Mazooma) (Scorpion 4) (set 11)"
+ C|sc4gggk "Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 7)"
+ c|sc4gggk "Grand Golden Game (Mazooma) (Scorpion 4) (set 12)"
+ C|sc4gggl "Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 8)"
+ c|sc4gggl "Grand Golden Game (Mazooma) (Scorpion 4) (set 13)"
+ C|sc4gggm "Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 9)"
+ c|sc4gggm "Grand Golden Game (Mazooma) (Scorpion 4) (set 14)"
+ C|sc4gggn "Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 10)"
+ c|sc4gggn "Grand Golden Game (Mazooma) (Scorpion 4) (set 15)"
+ C|sc4gggo "Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 11)"
+ c|sc4gggo "Grand Golden Game (Mazooma) (Scorpion 4) (set 16)"
+ C|sc4gggp "Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 12)"
+ c|sc4gggp "Grand Golden Game (Mazooma) (Scorpion 4) (set 17)"
+ C|sc4gggq "Grand Golden Game (Mazooma) (PR2353) (Scorpion 4) (GGGB, 35GBP, set 3)"
+ c|sc4gggq "Grand Golden Game (Mazooma) (Scorpion 4) (set 18)"
+ C|sc4gggr "Grand Golden Game (Mazooma) (PR2353) (Scorpion 4) (GGGB, 35GBP, set 4)"
+ c|sc4gggr "Grand Golden Game (Mazooma) (Scorpion 4) (set 19)"
+ C|sc4gggs "Grand Golden Game (Mazooma) (PR2353) (Scorpion 4) (GGGB, 35GBP, set 5)"
+ c|sc4gggs "Grand Golden Game (Mazooma) (Scorpion 4) (set 20)"
+ C|sc4gggtb "Grand Golden Game (Mazooma) (PR2056, Top Box) (Scorpion 4) (GGGT, set 1)"
+ C|sc4gggtba "Grand Golden Game (Mazooma) (PR2056, Top Box) (Scorpion 4) (GGGT, set 2)"
+ C|sc4mowow "Monopoly Wheel Of Wealth (Mazooma) (PR2118) (Scorpion 4) (set 1)"
+ c|sc4mowow "Monopoly Wheel Of Wealth (Mazooma) (Scorpion 4) (set 1)"
+ C|sc4mowowa "Monopoly Wheel Of Wealth (Mazooma) (PR2118) (Scorpion 4) (set 2)"
+ c|sc4mowowa "Monopoly Wheel Of Wealth (Mazooma) (Scorpion 4) (set 2)"
+ C|sc4mowowb "Monopoly Wheel Of Wealth (Mazooma) (PR2118) (Scorpion 4) (set 3)"
+ c|sc4mowowb "Monopoly Wheel Of Wealth (Mazooma) (Scorpion 4) (set 3)"
+ C|sc4mowowc "Monopoly Wheel Of Wealth (Mazooma) (PR2118) (Scorpion 4) (set 4)"
+ c|sc4mowowc "Monopoly Wheel Of Wealth (Mazooma) (Scorpion 4) (set 4)"
+ c|sc4mowowd "Monopoly Wheel Of Wealth (Mazooma) (Scorpion 4) (set 5)"
+ c|sc4mowowe "Monopoly Wheel Of Wealth (Mazooma) (Scorpion 4) (set 6)"
+ c|sc4mowowf "Monopoly Wheel Of Wealth (Mazooma) (Scorpion 4) (set 7)"
+ c|sc4mowowg "Monopoly Wheel Of Wealth (Mazooma) (Scorpion 4) (set 8)"
+ c|sc4mowowh "Monopoly Wheel Of Wealth (Mazooma) (Scorpion 4) (set 9)"
+ c|sc4mowowi "Monopoly Wheel Of Wealth (Mazooma) (Scorpion 4) (set 10)"
+ c|sc4mowowj "Monopoly Wheel Of Wealth (Mazooma) (Scorpion 4) (set 11)"
+ C|sc4qmodo "Quazzi Mo' Dough (Qps) (Scorpion 4) (set 1)"
+ c|sc4qmodo "Quazzi Mo Dough (Qps) (Scorpion 4) (set 1)"
+ C|sc4qmodoa "Quazzi Mo' Dough (Qps) (Scorpion 4) (set 2)"
+ c|sc4qmodoa "Quazzi Mo Dough (Qps) (Scorpion 4) (set 2)"
+ C|sc4qmodob "Quazzi Mo' Dough (Qps) (Scorpion 4) (set 3)"
+ c|sc4qmodob "Quazzi Mo Dough (Qps) (Scorpion 4) (set 3)"
+ C|sc4qmodoc "Quazzi Mo' Dough (Qps) (Scorpion 4) (set 4)"
+ c|sc4qmodoc "Quazzi Mo Dough (Qps) (Scorpion 4) (set 4)"
+ C|sc4qmodod "Quazzi Mo' Dough (Qps) (Scorpion 4) (set 5)"
+ c|sc4qmodod "Quazzi Mo Dough (Qps) (Scorpion 4) (set 5)"
+ c|sc4srrmz "Shake Rattle Roll (Mazooma) (Scorpion 4) (set 1)"
+ C|sc4srrmz "Shake Rattle Roll (Mazooma) (Scorpion 4) (set 1, Top Box)"
+ C|sc4tbox "Gold X Triple Top Box (Mazooma) (Scorpion 4)"
+ c|sc4tbox "Top Box (Mazooma) (Scorpion 4)"
+ c|sc5potog "Pot Of Gold (Bellfruit) (Scorpion 5) (set 1)"
+ C|sc5potog "Pot Of Gold (QPS) (Scorpion 5) (set 1)"
+ c|sc5potoga "Pot Of Gold (Bellfruit) (Scorpion 5) (set 2)"
+ C|sc5potoga "Pot Of Gold (QPS) (Scorpion 5) (set 2)"
+ c|sc5potogb "Pot Of Gold (Bellfruit) (Scorpion 5) (set 3)"
+ C|sc5potogb "Pot Of Gold (QPS) (Scorpion 5) (set 3)"
+ c|sc5potogc "Pot Of Gold (Bellfruit) (Scorpion 5) (set 4)"
+ C|sc5potogc "Pot Of Gold (QPS) (Scorpion 5) (set 4)"
+ c|sc5potogd "Pot Of Gold (Bellfruit) (Scorpion 5) (set 5)"
+ C|sc5potogd "Pot Of Gold (QPS) (Scorpion 5) (set 5)"
+ c|sc5potoge "Pot Of Gold (Bellfruit) (Scorpion 5) (set 6)"
+ C|sc5potoge "Pot Of Gold (QPS) (Scorpion 5) (set 6)"
+ c|sc5potogf "Pot Of Gold (Bellfruit) (Scorpion 5) (set 7)"
+ C|sc5potogf "Pot Of Gold (QPS) (Scorpion 5) (set 7)"
+ c|sc5potogg "Pot Of Gold (Bellfruit) (Scorpion 5) (set 8)"
+ C|sc5potogg "Pot Of Gold (QPS) (Scorpion 5) (set 8)"
+ C|schamp "Sonic Championship (USA)"
+ c|schamp "Sonic Championship"
+ c|sf2cej "Street Fighter II': Champion Edition (Japan 920513)"
+ C|sf2ceja "Street Fighter II': Champion Edition (Japan 920322)"
+ C|sf2cejb "Street Fighter II': Champion Edition (Japan 920513)"
+ C|sf2cejc "Street Fighter II': Champion Edition (Japan 920803)"
+ C|sf2ug "Street Fighter II: The World Warrior (USA 910522, Rev. G)"
+ c|sf2ui "Street Fighter II: The World Warrior (USA 910522)"
+ C|sf2ui "Street Fighter II: The World Warrior (USA 910522, Rev. I)"
+ C|sfight "Sonic the Fighters (Japan)"
+ c|sfight "Sonic The Fighters"
+ c|sfight2 "Street Fighter 2"
+ C|sfight2 "Street Fighter II"
+ c|sfight2a "Street Fighter 2 (rev.1)"
+ C|sfight2a "Street Fighter II (rev.1)"
+ c|sfight2b "Street Fighter 2 (rev.2)"
+ C|sfight2b "Street Fighter II (rev.2)"
+ C|slqz2 "Mahjong Shuang Long Qiang Zhu 2 (VS203J)"
+ c|slqz2 "Mahjong Shuang Long Qiang Zhu 2"
+ c|spacefb "Space Firebird (Nintendo, set 1)"
+ C|spacefb "Space Firebird (rev. 04-u)"
+ C|spacefba "Space Firebird (rev. 02-a)"
+ c|spacefbe "Space Firebird (Nintendo, set 3)"
+ C|spacefbe "Space Firebird (rev. 03-e set 1)"
+ C|spacefbe2 "Space Firebird (rev. 03-e set 2)"
+ c|sshooter "Sharpshooter (Rev 1.7)"
+ C|sshooter "Sharpshooter (Rev 1.9)"
+ c|starforce "Star Force (encrypted)"
+ C|starforce "Star Force (encrypted, set 1)"
+ C|svg "S.V.G. - Spectral vs Generation (M68k label V200) (ARM label V200, ROM 10/11/05 S.V.G V201)"
+ c|svg "S.V.G. - Spectral vs Generation (ver. 200)"
+ C|svgpcb "S.V.G. - Spectral vs Generation (M68k label V100JP) (ARM label V100JP ROM 05/12/05 S.V.G V100) (JAMMA PCB)"
+ C|theglad "The Gladiator - Road of the Sword / Shen Jian (M68k label V100) (ARM label V100, ROM 01/16/03 SHEN JIAN)"
+ c|theglad "The Gladiator (ver. 100)"
+ C|theglada "The Gladiator - Road of the Sword / Shen Jian (M68k label V101) (ARM label V107, ROM 06/06/03 SHEN JIAN V107)"
+ c|theglada "The Gladiator (ver. 101)"
+ C|thegladpcb "The Gladiator - Road of the Sword / Shen Jian (M68k label V100) (ARM label V100, ROM 02/25/03 SHEN JIAN) (JAMMA PCB)"
+ C|tiptop "Tip Top (3 board stack)"
+ c|tiptop "Tip Top"
+ C|toukon4 "Shin Nihon Pro Wrestling Toukon Retsuden 4 Arcade Edition (TRF1 Ver. A)"
+ c|toukon4 "Shin Nihon Pro Wrestling Toukon Retsuden 4 Arcade Edition"
+ C|tsamurai "Samurai Nihon-Ichi (set 1)"
+ c|tsamurai "Samurai Nihon-ichi (set 1)"
+ C|tsamurai2 "Samurai Nihon-Ichi (set 2)"
+ c|tsamurai2 "Samurai Nihon-ichi (set 2)"
+ C|tsamuraih "Samurai Nihon-Ichi (bootleg, harder)"
+ c|tsamuraih "Samurai Nihon-ichi (bootleg, harder)"
+ C|unkhorse "unknown Japanese horse gambling game"
+ c|unkmeyco "unknown Meyco game"
+ C|vhunt2d "Vampire Hunter 2: Darkstalkers Revenge (Japan 970913 Phoenix Edition) (bootleg)"
+ c|vhunt2d "Vampire Hunter 2: Darkstalkers Revenge (Japan 970929 Phoenix Edition) (bootleg)"
+ C|von "Cyber Troopers Virtual-On (USA, Revision B)"
+ c|von "Virtual On Cyber Troopers (US, Revision B)"
+ C|vonj "Cyber Troopers Virtual-On (Japan, Revision B)"
+ c|vonj "Virtual On Cyber Troopers (Japan, Revision B)"
+ c|warzarda "Warzard (Japan 961023)"
+ C|warzardr1 "Warzard (Japan 961023)"
+ C|wfortune "Wheel Of Fortune (set 1)"
+ c|wfortune "Wheel Of Fortune"
+ c|wfortunea "Wheel Of Fortune (alternate)"
+ C|wfortunea "Wheel Of Fortune (set 2)"
+ c|winrun "Winning Run Suzuka Grand Prix (Japan)"
+ C|winrun "Winning Run"
+ C|wldarrow "Wild Arrow (color, Standard V4.8)"
+ c|wldarrow "Wild Arrow (Standard V4.8)"
+ C|wldkicks "World Kicks (WK1 Ver. A)"
+ c|wldkicks "World Kicks"
+ c|wldwitch "Wild Witch (Export, 6T/12T ver 1.74A)"
+ C|wldwitch "Wild Witch (Export, 6T/12T ver 1.84A)"
+ C|wldwitcha "Wild Witch (Export, 6T/12T ver 1.57-SP)"
+ C|wldwitchb "Wild Witch (Export, 6T/12T ver 1.57-TE)"
+ C|wldwitchc "Wild Witch (Export, 6T/12T ver 1.62A)"
+ C|wldwitchd "Wild Witch (Export, 6T/12T ver 1.62B)"
+ C|wldwitche "Wild Witch (Export, 6T/12T ver 1.62A-F)"
+ C|wldwitchf "Wild Witch (Export, 6T/12T ver 1.62A alt)"
+ C|wldwitchg "Wild Witch (Export, 6T/12T ver 1.62B alt)"
+ C|wldwitchh "Wild Witch (Export, 6T/12T ver 1.65A)"
+ C|wldwitchi "Wild Witch (Export, 6T/12T ver 1.65A-S)"
+ C|wldwitchj "Wild Witch (Export, 6T/12T ver 1.65A-S alt)"
+ C|wldwitchk "Wild Witch (Export, 6T/12T ver 1.65A-N)"
+ C|wldwitchl "Wild Witch (Export, 6T/12T ver 1.70A beta)"
+ C|wldwitchm "Wild Witch (Export, 6T/12T ver 1.70A)"
+ C|wldwitchn "Wild Witch (Export, 6T/12T ver 1.70A alt)"
+ C|wldwitcho "Wild Witch (Export, 6T/12T ver 1.74A-SP-BELG)"
+ C|wldwitchp "Wild Witch (Export, 6T/12T ver 1.74A)"
+ C|wldwitchq "Wild Witch (Export, 6T/12T ver 1.74A alt)"
+ C|wldwitchr "Wild Witch (Export, 6B/12B ver 1.75A-E English)"
+ C|wldwitchs "Wild Witch (Export, 6T/12T ver 1.76A)"
+ C|wldwitcht "Wild Witch (Export, 6T/12T ver 1.77A)"
+ C|wldwitchu "Wild Witch (Export, 6T/12T ver 1.79A)"
+ C|wldwitchv "Wild Witch (Export, 6T/12T ver 1.83A)"
+ C|wyvernwg "Wyvern Wings (set 1)"
+ c|wyvernwg "Wyvern Wings"
+ C|wyvernwga "Wyvern Wings (set 2)"
+ c|yumefuda "(Medal) Yumefuda [BET]"
+ C|yumefuda "Yumefuda [BET]"
diff --git a/src/osd/winui/help/html/mameui_credits.htm b/src/osd/winui/help/html/mameui_credits.htm
new file mode 100644
index 00000000000..3dbe2393f22
--- /dev/null
+++ b/src/osd/winui/help/html/mameui_credits.htm
@@ -0,0 +1,141 @@
+<html>
+
+<head>
+<meta name="GENERATOR" content="Microsoft FrontPage 12.0">
+<meta name="ProgId" content="FrontPage.Editor.Document">
+<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
+<title>MameUI Credits</title>
+<style>
+<!--
+p
+ {margin-right:0in;
+ margin-left:0in;
+ font-size:10.0pt;
+ font-family:Arial;
+ color:black}
+h1
+ {margin-top:12.0pt;
+ margin-right:0in;
+ margin-bottom:3.0pt;
+ margin-left:0in;
+ page-break-after:avoid;
+ font-size:16.0pt;
+ font-family:Arial;
+ color:windowtext;
+ font-weight:bold}
+h2
+ {margin-top:12.0pt;
+ margin-right:0in;
+ margin-bottom:3.0pt;
+ margin-left:0in;
+ page-break-after:avoid;
+ font-size:14.0pt;
+ font-family:Arial;
+ font-style:italic}
+ p.MsoNormal
+ {mso-style-parent:"";
+ margin-bottom:.0001pt;
+ font-size:10.0pt;
+ font-family:Arial;
+ margin-left:0in; margin-right:0in; margin-top:0in}
+ div.MsoNormal
+ {mso-style-parent:"";
+ margin-bottom:.0001pt;
+ font-size:10.0pt;
+ font-family:Arial;
+ margin-left:0in; margin-right:0in; margin-top:0in}
+-->
+</style>
+<base target="_blank">
+</head>
+
+<body background="../images/bkground.gif">
+
+<h1>MameUI Credits &amp; Resources</h1>
+<h2><b>Credits</b></h2>
+<p class="MsoNormal">The current MameUI DEV team:</p>
+<p class="MsoNormal">&nbsp;</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>Chris Kirmse</b></p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>Mike Haaland</b></p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>René Single</b></p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>
+<a href="http://mameui.info/">John L. Hardy IV</a></b></p>
+<p class="MsoNormal" style="margin-left:.75in">&nbsp;</p>
+<p class="MsoNormal">Special thanks to Michael Soderstrom for project
+co-ordination and source maintenance from 1997-2001.</p>
+<p class="MsoNormal">&nbsp;</p>
+<p class="MsoNormal">Additional appreciated code contributions by : Jeff
+Miller, Dan Miller, Andrew Kirmse, Mohammad Rezaei, <font face="Arial" size="2">
+René Single, </font>John Zissopoulos, Nathan
+Woods, Robert Schlabbach, Sword, Emuman, BUT, <font face="Arial" size="2">'Mamesick', </font>
+Sauro Puccini,<b> </b><font face="Arial" size="2">Tor
+Arne Vestbø, </font>R. J. Sheppard, Visk, K&amp;K,
+Patrick Jones, and ‘Ren Höek’.</p>
+<p class="MsoNormal">&nbsp;</p>
+<h2><b>Resources</b></h2>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>
+<a target="_blank" href="http://mameui.info/">The
+MameUI Homepage</a> </b>:<b> </b>Home to the MameUI binary/source,
+icons, screenshots, testing, work in progress updates, bug
+reporting/tracking, message board, and benchmarking.</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>
+<a target="_blank" href="http://www.mameworld.info/ubbthreads/postlist.php?Cat=&amp;Board=mameui">The
+MameUI
+Message Board</a> </b>:<b> </b>Forum for discussion of MameUI related issues.</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>
+<a target="_blank" href="http://mameui.info//MameUI_Bugs.xls">MameUI
+Defect Tracking and Bug Reports</a> </b>: Excel spreadsheet which displays
+information about current MameUI feature requests and issues.&nbsp; Check before
+reporting potential bugs.</p>
+<p class="MsoNormal"><b>&nbsp;</b></p>
+<div class="MsoNormal" align="center" style="text-align:center">
+ <span style="font-family: Courier New">
+ <hr size="2" width="100%" align="center"></span>
+</div>
+<p class="MsoNormal"><b>&nbsp;</b></p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b><a href="http://www.mamedev.org">MameDEV.org</a> </b>:<b> </b>Home of
+baseline MAME.</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>
+<a target="_blank" href="http://www.mametesters.org">MameTesters.org</a> </b>:<b> </b>
+Reporting and tracking baseline Mamebugs.</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">&nbsp;</p>
+<p class="MsoNormal" style="margin-left: 0" align="left">MameUI ©
+2007 C. Kirmse, M. Haaland, &amp; the MameUI team</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">&nbsp;</p>
+<p class="MsoNormal" style="margin-left: 0" align="left">this help
+file authored by john iv</p>
+
+<p class="MsoNormal" style="margin-left: 0" align="left">
+<font size="1">
+<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y-%m-%d %I:%M %p %Z" startspan -->2008-10-28 06:48 PM -0700<!--webbot bot="Timestamp" endspan i-checksum="38520" --></font></p>
+
+</body>
+
+</html> \ No newline at end of file
diff --git a/src/osd/winui/help/html/mameui_download.htm b/src/osd/winui/help/html/mameui_download.htm
new file mode 100644
index 00000000000..0063701ef36
--- /dev/null
+++ b/src/osd/winui/help/html/mameui_download.htm
@@ -0,0 +1,62 @@
+<html>
+
+<head>
+<meta name="GENERATOR" content="Microsoft FrontPage 12.0">
+<meta name="ProgId" content="FrontPage.Editor.Document">
+<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
+<title>MameUI Download Locations</title>
+<style>
+<!--
+p
+ {margin-right:0in;
+ margin-left:0in;
+ font-size:10.0pt;
+ font-family:Arial;
+ color:black}
+h1
+ {margin-top:12.0pt;
+ margin-right:0in;
+ margin-bottom:3.0pt;
+ margin-left:0in;
+ page-break-after:avoid;
+ font-size:16.0pt;
+ font-family:Arial;
+ color:windowtext;
+ font-weight:bold}
+h2
+ {margin-top:12.0pt;
+ margin-right:0in;
+ margin-bottom:3.0pt;
+ margin-left:0in;
+ page-break-after:avoid;
+ font-size:14.0pt;
+ font-family:Arial;
+ font-style:italic}
+ p.MsoNormal
+ {mso-style-parent:"";
+ margin-bottom:.0001pt;
+ font-size:10.0pt;
+ font-family:Arial;
+ margin-left:0in; margin-right:0in; margin-top:0in}
+-->
+</style>
+<base target="_blank">
+</head>
+
+<body background="../images/bkground.gif">
+
+<h2>Download Locations</h2>
+<p class="MsoNormal">The official site for MameUI downloads:</p>
+<p class="MsoNormal">
+<a target="_blank" href="http://mameui.info/">
+<span style="font-weight: 700; color: #0000FF; text-decoration: underline">The
+MameUI Homepage</span></a></p>
+
+<p class="MsoNormal">&nbsp;</p>
+<p class="MsoNormal"><font size="1">
+<!--webbot bot="Timestamp" s-type="EDITED" s-format="%Y-%m-%d %I:%M %p %Z" startspan -->2007-11-12 02:03 PM -0800<!--webbot bot="Timestamp" endspan i-checksum="37667" -->
+/ john iv</font></p>
+
+</body>
+
+</html> \ No newline at end of file
diff --git a/src/osd/winui/help/html/mameui_filemenu.htm b/src/osd/winui/help/html/mameui_filemenu.htm
new file mode 100644
index 00000000000..12f2915538c
--- /dev/null
+++ b/src/osd/winui/help/html/mameui_filemenu.htm
@@ -0,0 +1,625 @@
+<html xmlns:v="urn:schemas-microsoft-com:vml"
+xmlns:o="urn:schemas-microsoft-com:office:office"
+xmlns:w="urn:schemas-microsoft-com:office:word"
+xmlns:m="http://schemas.microsoft.com/office/2004/12/omml"
+xmlns="http://www.w3.org/TR/REC-html40">
+
+<head>
+<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
+<meta name=ProgId content=Word.Document>
+<meta name=Generator content="Microsoft Word 12">
+<meta name=Originator content="Microsoft Word 12">
+<link rel=File-List href="mameui_filemenu_files/filelist.xml">
+<link rel=Edit-Time-Data href="mameui_filemenu_files/editdata.mso">
+<!--[if !mso]>
+<style>
+v\:* {behavior:url(#default#VML);}
+o\:* {behavior:url(#default#VML);}
+w\:* {behavior:url(#default#VML);}
+.shape {behavior:url(#default#VML);}
+</style>
+<![endif]-->
+<title>MameUI File Menu</title>
+<!--[if gte mso 9]><xml>
+ <o:DocumentProperties>
+ <o:Author>john4</o:Author>
+ <o:LastAuthor>john4</o:LastAuthor>
+ <o:Revision>2</o:Revision>
+ <o:TotalTime>2</o:TotalTime>
+ <o:Created>2008-04-11T22:37:00Z</o:Created>
+ <o:LastSaved>2008-04-11T22:39:00Z</o:LastSaved>
+ <o:Pages>1</o:Pages>
+ <o:Words>438</o:Words>
+ <o:Characters>2503</o:Characters>
+ <o:Lines>20</o:Lines>
+ <o:Paragraphs>5</o:Paragraphs>
+ <o:CharactersWithSpaces>2936</o:CharactersWithSpaces>
+ <o:Version>12.00</o:Version>
+ </o:DocumentProperties>
+</xml><![endif]-->
+<link rel=themeData href="mameui_filemenu_files/themedata.thmx">
+<link rel=colorSchemeMapping href="mameui_filemenu_files/colorschememapping.xml">
+<!--[if gte mso 9]><xml>
+ <w:WordDocument>
+ <w:TrackMoves>false</w:TrackMoves>
+ <w:TrackFormatting/>
+ <w:ValidateAgainstSchemas/>
+ <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
+ <w:IgnoreMixedContent>false</w:IgnoreMixedContent>
+ <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
+ <w:DoNotPromoteQF/>
+ <w:LidThemeOther>EN-US</w:LidThemeOther>
+ <w:LidThemeAsian>X-NONE</w:LidThemeAsian>
+ <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
+ <w:Compatibility>
+ <w:BreakWrappedTables/>
+ <w:SnapToGridInCell/>
+ <w:WrapTextWithPunct/>
+ <w:UseAsianBreakRules/>
+ <w:DontGrowAutofit/>
+ <w:SplitPgBreakAndParaMark/>
+ <w:DontVertAlignCellWithSp/>
+ <w:DontBreakConstrainedForcedTables/>
+ <w:DontVertAlignInTxbx/>
+ <w:Word11KerningPairs/>
+ <w:CachedColBalance/>
+ </w:Compatibility>
+ <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
+ <m:mathPr>
+ <m:mathFont m:val="Cambria Math"/>
+ <m:brkBin m:val="before"/>
+ <m:brkBinSub m:val="&#45;-"/>
+ <m:smallFrac m:val="off"/>
+ <m:dispDef/>
+ <m:lMargin m:val="0"/>
+ <m:rMargin m:val="0"/>
+ <m:defJc m:val="centerGroup"/>
+ <m:wrapIndent m:val="1440"/>
+ <m:intLim m:val="subSup"/>
+ <m:naryLim m:val="undOvr"/>
+ </m:mathPr></w:WordDocument>
+</xml><![endif]--><!--[if gte mso 9]><xml>
+ <w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
+ DefSemiHidden="true" DefQFormat="false" DefPriority="99"
+ LatentStyleCount="267">
+ <w:LsdException Locked="false" Priority="0" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
+ <w:LsdException Locked="false" Priority="9" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
+ <w:LsdException Locked="false" Priority="9" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="heading 2"/>
+ <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
+ <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
+ <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
+ <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
+ <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
+ <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
+ <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 1"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 2"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 3"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 4"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 5"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 6"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 7"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 8"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 9"/>
+ <w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
+ <w:LsdException Locked="false" Priority="10" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Title"/>
+ <w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
+ <w:LsdException Locked="false" Priority="11" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
+ <w:LsdException Locked="false" Priority="22" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
+ <w:LsdException Locked="false" Priority="20" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
+ <w:LsdException Locked="false" Priority="59" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Table Grid"/>
+ <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
+ <w:LsdException Locked="false" Priority="1" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
+ <w:LsdException Locked="false" Priority="60" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Shading"/>
+ <w:LsdException Locked="false" Priority="61" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light List"/>
+ <w:LsdException Locked="false" Priority="62" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Grid"/>
+ <w:LsdException Locked="false" Priority="63" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 1"/>
+ <w:LsdException Locked="false" Priority="64" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 2"/>
+ <w:LsdException Locked="false" Priority="65" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 1"/>
+ <w:LsdException Locked="false" Priority="66" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 2"/>
+ <w:LsdException Locked="false" Priority="67" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 1"/>
+ <w:LsdException Locked="false" Priority="68" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 2"/>
+ <w:LsdException Locked="false" Priority="69" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 3"/>
+ <w:LsdException Locked="false" Priority="70" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Dark List"/>
+ <w:LsdException Locked="false" Priority="71" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Shading"/>
+ <w:LsdException Locked="false" Priority="72" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful List"/>
+ <w:LsdException Locked="false" Priority="73" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Grid"/>
+ <w:LsdException Locked="false" Priority="60" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
+ <w:LsdException Locked="false" Priority="61" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light List Accent 1"/>
+ <w:LsdException Locked="false" Priority="62" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
+ <w:LsdException Locked="false" Priority="63" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
+ <w:LsdException Locked="false" Priority="64" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
+ <w:LsdException Locked="false" Priority="65" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
+ <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
+ <w:LsdException Locked="false" Priority="34" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
+ <w:LsdException Locked="false" Priority="29" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
+ <w:LsdException Locked="false" Priority="30" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
+ <w:LsdException Locked="false" Priority="66" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
+ <w:LsdException Locked="false" Priority="67" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
+ <w:LsdException Locked="false" Priority="68" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
+ <w:LsdException Locked="false" Priority="69" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
+ <w:LsdException Locked="false" Priority="70" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Dark List Accent 1"/>
+ <w:LsdException Locked="false" Priority="71" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
+ <w:LsdException Locked="false" Priority="72" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
+ <w:LsdException Locked="false" Priority="73" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
+ <w:LsdException Locked="false" Priority="60" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
+ <w:LsdException Locked="false" Priority="61" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light List Accent 2"/>
+ <w:LsdException Locked="false" Priority="62" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
+ <w:LsdException Locked="false" Priority="63" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
+ <w:LsdException Locked="false" Priority="64" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
+ <w:LsdException Locked="false" Priority="65" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
+ <w:LsdException Locked="false" Priority="66" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
+ <w:LsdException Locked="false" Priority="67" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
+ <w:LsdException Locked="false" Priority="68" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
+ <w:LsdException Locked="false" Priority="69" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
+ <w:LsdException Locked="false" Priority="70" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Dark List Accent 2"/>
+ <w:LsdException Locked="false" Priority="71" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
+ <w:LsdException Locked="false" Priority="72" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
+ <w:LsdException Locked="false" Priority="73" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
+ <w:LsdException Locked="false" Priority="60" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
+ <w:LsdException Locked="false" Priority="61" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light List Accent 3"/>
+ <w:LsdException Locked="false" Priority="62" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
+ <w:LsdException Locked="false" Priority="63" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
+ <w:LsdException Locked="false" Priority="64" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
+ <w:LsdException Locked="false" Priority="65" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
+ <w:LsdException Locked="false" Priority="66" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
+ <w:LsdException Locked="false" Priority="67" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
+ <w:LsdException Locked="false" Priority="68" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
+ <w:LsdException Locked="false" Priority="69" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
+ <w:LsdException Locked="false" Priority="70" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Dark List Accent 3"/>
+ <w:LsdException Locked="false" Priority="71" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
+ <w:LsdException Locked="false" Priority="72" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
+ <w:LsdException Locked="false" Priority="73" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
+ <w:LsdException Locked="false" Priority="60" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
+ <w:LsdException Locked="false" Priority="61" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light List Accent 4"/>
+ <w:LsdException Locked="false" Priority="62" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
+ <w:LsdException Locked="false" Priority="63" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
+ <w:LsdException Locked="false" Priority="64" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
+ <w:LsdException Locked="false" Priority="65" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
+ <w:LsdException Locked="false" Priority="66" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
+ <w:LsdException Locked="false" Priority="67" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
+ <w:LsdException Locked="false" Priority="68" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
+ <w:LsdException Locked="false" Priority="69" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
+ <w:LsdException Locked="false" Priority="70" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Dark List Accent 4"/>
+ <w:LsdException Locked="false" Priority="71" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
+ <w:LsdException Locked="false" Priority="72" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
+ <w:LsdException Locked="false" Priority="73" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
+ <w:LsdException Locked="false" Priority="60" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
+ <w:LsdException Locked="false" Priority="61" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light List Accent 5"/>
+ <w:LsdException Locked="false" Priority="62" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
+ <w:LsdException Locked="false" Priority="63" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
+ <w:LsdException Locked="false" Priority="64" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
+ <w:LsdException Locked="false" Priority="65" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
+ <w:LsdException Locked="false" Priority="66" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
+ <w:LsdException Locked="false" Priority="67" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
+ <w:LsdException Locked="false" Priority="68" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
+ <w:LsdException Locked="false" Priority="69" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
+ <w:LsdException Locked="false" Priority="70" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Dark List Accent 5"/>
+ <w:LsdException Locked="false" Priority="71" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
+ <w:LsdException Locked="false" Priority="72" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
+ <w:LsdException Locked="false" Priority="73" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
+ <w:LsdException Locked="false" Priority="60" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
+ <w:LsdException Locked="false" Priority="61" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light List Accent 6"/>
+ <w:LsdException Locked="false" Priority="62" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
+ <w:LsdException Locked="false" Priority="63" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
+ <w:LsdException Locked="false" Priority="64" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
+ <w:LsdException Locked="false" Priority="65" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
+ <w:LsdException Locked="false" Priority="66" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
+ <w:LsdException Locked="false" Priority="67" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
+ <w:LsdException Locked="false" Priority="68" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
+ <w:LsdException Locked="false" Priority="69" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
+ <w:LsdException Locked="false" Priority="70" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Dark List Accent 6"/>
+ <w:LsdException Locked="false" Priority="71" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
+ <w:LsdException Locked="false" Priority="72" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
+ <w:LsdException Locked="false" Priority="73" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
+ <w:LsdException Locked="false" Priority="19" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
+ <w:LsdException Locked="false" Priority="21" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
+ <w:LsdException Locked="false" Priority="31" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
+ <w:LsdException Locked="false" Priority="32" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
+ <w:LsdException Locked="false" Priority="33" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
+ <w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
+ <w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
+ </w:LatentStyles>
+</xml><![endif]-->
+<style>
+<!--
+ /* Font Definitions */
+ @font-face
+ {font-family:"Cambria Math";
+ panose-1:2 4 5 3 5 4 6 3 2 4;
+ mso-font-charset:1;
+ mso-generic-font-family:roman;
+ mso-font-format:other;
+ mso-font-pitch:variable;
+ mso-font-signature:0 0 0 0 0 0;}
+@font-face
+ {font-family:Tahoma;
+ panose-1:2 11 6 4 3 5 4 4 2 4;
+ mso-font-charset:0;
+ mso-generic-font-family:swiss;
+ mso-font-pitch:variable;
+ mso-font-signature:-520082689 -1073717157 41 0 66047 0;}
+ /* Style Definitions */
+ p.MsoNormal, li.MsoNormal, div.MsoNormal
+ {mso-style-unhide:no;
+ mso-style-qformat:yes;
+ mso-style-parent:"";
+ margin:0in;
+ margin-bottom:.0001pt;
+ mso-pagination:widow-orphan;
+ font-size:10.0pt;
+ font-family:"Arial","sans-serif";
+ mso-fareast-font-family:"Times New Roman";
+ mso-fareast-theme-font:minor-fareast;
+ color:windowtext;}
+h1
+ {mso-style-priority:9;
+ mso-style-unhide:no;
+ mso-style-qformat:yes;
+ mso-style-link:"Heading 1 Char";
+ margin-top:12.0pt;
+ margin-right:0in;
+ margin-bottom:3.0pt;
+ margin-left:0in;
+ mso-pagination:widow-orphan;
+ page-break-after:avoid;
+ mso-outline-level:1;
+ font-size:16.0pt;
+ font-family:"Arial","sans-serif";
+ mso-fareast-font-family:"Times New Roman";
+ mso-fareast-theme-font:minor-fareast;
+ color:windowtext;
+ font-weight:bold;}
+h2
+ {mso-style-priority:9;
+ mso-style-unhide:no;
+ mso-style-qformat:yes;
+ mso-style-link:"Heading 2 Char";
+ margin-top:12.0pt;
+ margin-right:0in;
+ margin-bottom:3.0pt;
+ margin-left:0in;
+ mso-pagination:widow-orphan;
+ page-break-after:avoid;
+ mso-outline-level:2;
+ font-size:14.0pt;
+ font-family:"Arial","sans-serif";
+ mso-fareast-font-family:"Times New Roman";
+ mso-fareast-theme-font:minor-fareast;
+ color:windowtext;
+ font-weight:bold;
+ font-style:italic;}
+p
+ {mso-style-noshow:yes;
+ mso-style-priority:99;
+ mso-margin-top-alt:auto;
+ margin-right:0in;
+ mso-margin-bottom-alt:auto;
+ margin-left:0in;
+ mso-pagination:widow-orphan;
+ font-size:10.0pt;
+ font-family:"Arial","sans-serif";
+ mso-fareast-font-family:"Times New Roman";
+ mso-fareast-theme-font:minor-fareast;
+ color:black;}
+p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
+ {mso-style-noshow:yes;
+ mso-style-priority:99;
+ mso-style-link:"Balloon Text Char";
+ margin:0in;
+ margin-bottom:.0001pt;
+ mso-pagination:widow-orphan;
+ font-size:8.0pt;
+ font-family:"Tahoma","sans-serif";
+ mso-fareast-font-family:"Times New Roman";
+ mso-fareast-theme-font:minor-fareast;
+ color:windowtext;}
+span.Heading1Char
+ {mso-style-name:"Heading 1 Char";
+ mso-style-priority:9;
+ mso-style-unhide:no;
+ mso-style-locked:yes;
+ mso-style-link:"Heading 1";
+ mso-ansi-font-size:14.0pt;
+ mso-bidi-font-size:14.0pt;
+ font-family:"Cambria","serif";
+ mso-ascii-font-family:Cambria;
+ mso-ascii-theme-font:major-latin;
+ mso-fareast-font-family:"Times New Roman";
+ mso-fareast-theme-font:major-fareast;
+ mso-hansi-font-family:Cambria;
+ mso-hansi-theme-font:major-latin;
+ mso-bidi-font-family:"Times New Roman";
+ mso-bidi-theme-font:major-bidi;
+ color:#365F91;
+ mso-themecolor:accent1;
+ mso-themeshade:191;
+ font-weight:bold;}
+span.Heading2Char
+ {mso-style-name:"Heading 2 Char";
+ mso-style-noshow:yes;
+ mso-style-priority:9;
+ mso-style-unhide:no;
+ mso-style-locked:yes;
+ mso-style-link:"Heading 2";
+ mso-ansi-font-size:13.0pt;
+ mso-bidi-font-size:13.0pt;
+ font-family:"Cambria","serif";
+ mso-ascii-font-family:Cambria;
+ mso-ascii-theme-font:major-latin;
+ mso-fareast-font-family:"Times New Roman";
+ mso-fareast-theme-font:major-fareast;
+ mso-hansi-font-family:Cambria;
+ mso-hansi-theme-font:major-latin;
+ mso-bidi-font-family:"Times New Roman";
+ mso-bidi-theme-font:major-bidi;
+ color:#4F81BD;
+ mso-themecolor:accent1;
+ font-weight:bold;}
+span.BalloonTextChar
+ {mso-style-name:"Balloon Text Char";
+ mso-style-noshow:yes;
+ mso-style-priority:99;
+ mso-style-unhide:no;
+ mso-style-locked:yes;
+ mso-style-link:"Balloon Text";
+ mso-ansi-font-size:8.0pt;
+ mso-bidi-font-size:8.0pt;
+ font-family:"Tahoma","sans-serif";
+ mso-ascii-font-family:Tahoma;
+ mso-fareast-font-family:"Times New Roman";
+ mso-fareast-theme-font:minor-fareast;
+ mso-hansi-font-family:Tahoma;
+ mso-bidi-font-family:Tahoma;}
+.MsoChpDefault
+ {mso-style-type:export-only;
+ mso-default-props:yes;
+ font-size:10.0pt;
+ mso-ansi-font-size:10.0pt;
+ mso-bidi-font-size:10.0pt;}
+@page Section1
+ {size:8.5in 11.0in;
+ margin:1.0in 1.0in 1.0in 1.0in;
+ mso-header-margin:.5in;
+ mso-footer-margin:.5in;
+ mso-paper-source:0;}
+div.Section1
+ {page:Section1;}
+-->
+</style>
+<!--[if gte mso 10]>
+<style>
+ /* Style Definitions */
+ table.MsoNormalTable
+ {mso-style-name:"Table Normal";
+ mso-tstyle-rowband-size:0;
+ mso-tstyle-colband-size:0;
+ mso-style-noshow:yes;
+ mso-style-priority:99;
+ mso-style-qformat:yes;
+ mso-style-parent:"";
+ mso-padding-alt:0in 5.4pt 0in 5.4pt;
+ mso-para-margin:0in;
+ mso-para-margin-bottom:.0001pt;
+ mso-pagination:widow-orphan;
+ font-size:10.0pt;
+ font-family:"Times New Roman","serif";}
+</style>
+<![endif]--><!--[if gte mso 9]><xml>
+ <o:shapedefaults v:ext="edit" spidmax="2050"/>
+</xml><![endif]--><!--[if gte mso 9]><xml>
+ <o:shapelayout v:ext="edit">
+ <o:idmap v:ext="edit" data="1"/>
+ </o:shapelayout></xml><![endif]-->
+</head>
+
+<body bgcolor=white background="../images/bkground.gif" lang=EN-US link=blue
+vlink=purple style='tab-interval:.5in'>
+
+<div class=Section1>
+
+<h2><span style='mso-fareast-font-family:"Times New Roman"'>File Menu<o:p></o:p></span></h2>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span
+style='font-family:Symbol;mso-no-proof:yes'><img width=11 height=11
+id="_x0000_i1035" src="../images/mame321.gif" alt="*"></span><span
+style='font-size:7.0pt;font-family:"Times New Roman","serif"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span><b>Play Game</b> : Selecting this option from the file menu will launch
+the highlighted game.</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span
+style='font-family:Symbol;mso-no-proof:yes'><img width=11 height=11
+id="_x0000_i1034" src="../images/mame321.gif" alt="*"></span><span
+style='font-size:7.0pt;font-family:"Times New Roman","serif"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span><b>Play and Record Input</b> : Selecting this option from the file menu
+will allow for the creation of an *.inp file which will allow MameUI to record
+keystrokes in the game being played for playback later.&nbsp; Similar to a VCR.</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span
+style='font-family:Symbol;mso-no-proof:yes'><img width=11 height=11
+id="_x0000_i1033" src="../images/mame321.gif" alt="*"></span><span
+style='font-size:7.0pt;font-family:"Times New Roman","serif"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span><b>Playback Input</b> : Selecting this option from the file menu will
+allow the loading and playing of a previously recorded *.inp file.</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span
+style='font-family:Symbol;mso-no-proof:yes'><img width=11 height=11
+id="_x0000_i1032" src="../images/mame321.gif" alt="*"></span><span
+style='font-size:7.0pt;font-family:"Times New Roman","serif"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span><b>Play and Record Wave Output</b> : Selecting this option from the file
+menu will allow the recording of a sound file while playing a game.&nbsp; The
+*.wav file is placed in the \inp directory by default.</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span
+style='font-family:Symbol;mso-no-proof:yes'><img width=11 height=11
+id="_x0000_i1031" src="../images/mame321.gif" alt="*"></span><span
+style='font-size:7.0pt;font-family:"Times New Roman","serif"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span><b>Play and Record MNG Output</b> : Selecting this option from the file
+menu will allow the recording of a MNG video file while playing a game.&nbsp;
+The *.mng file is placed in the \inp directory by default.</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span
+style='font-family:Symbol;mso-no-proof:yes'><img width=11 height=11
+id="_x0000_i1030" src="../images/mame321.gif" alt="*"></span><span
+style='font-size:7.0pt;font-family:"Times New Roman","serif"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span><b>Load Savestate</b> : Selecting this option from the file menu will
+allow the loading and playing of a previously saved machine state, the state
+being loaded must match the highlighted game.</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span
+style='font-family:Symbol;mso-no-proof:yes'><img width=11 height=11
+id="_x0000_i1029" src="../images/mame321.gif" alt="*"></span><span
+style='font-size:7.0pt;font-family:"Times New Roman","serif"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span><b>Select Random Game</b> : Selecting this option from the file menu
+will cause MameUI to randomly highlight a game in the game list shortcut key is
+<b>Ctrl-R</b>.</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span
+style='font-family:Symbol;mso-no-proof:yes'><img width=11 height=11
+id="_x0000_i1028" src="../images/mame321.gif" alt="*"></span><span
+style='font-size:7.0pt;font-family:"Times New Roman","serif"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span><b><a href="mameui_properties.htm">Properties</a></b> : Selecting this
+option from the file menu will display the highlighted game’s individual
+settings, these settings over-ride those made to all games in the Options •
+Default Options menu item.&nbsp;</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span
+style='font-family:Symbol;mso-no-proof:yes'><img border=0 width=11 height=11
+id="_x0000_i1027" src="../images/mame321.gif" alt="*"></span><span
+style='font-size:7.0pt;font-family:"Times New Roman","serif"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span><b>Audit All Games</b> : Selecting this option from the file menu will
+initiate an exhaustive check on the available games, verifying them to MameUI’s
+expected results.</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span
+style='font-family:Symbol;mso-no-proof:yes'><img border=0 width=11 height=11
+id="_x0000_i1026" src="../images/mame321.gif" alt="*"></span><span
+style='font-size:7.0pt;font-family:"Times New Roman","serif"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span><b>Exit</b> : Selecting this option from the file menu will exit the
+program.</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'>&nbsp;</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><!--webbot bot="Timestamp" s-type="EDITED" s-format="%Y-%m-%d %I:%M %p %Z" startspan -->2007-11-10 01:41 AM -0800<!--webbot bot="Timestamp" endspan i-checksum="37617" --><span
+style='font-size:7.5pt'>/ john iv</span></p>
+
+</div>
+
+</body>
+
+</html>
diff --git a/src/osd/winui/help/html/mameui_help.htm b/src/osd/winui/help/html/mameui_help.htm
new file mode 100644
index 00000000000..303f409014e
--- /dev/null
+++ b/src/osd/winui/help/html/mameui_help.htm
@@ -0,0 +1,86 @@
+<html>
+
+<head>
+<meta name="GENERATOR" content="Microsoft FrontPage 12.0">
+<meta name="ProgId" content="FrontPage.Editor.Document">
+<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
+<title>MameUI Help Menu</title>
+<style>
+<!--
+p
+ {margin-right:0in;
+ margin-left:0in;
+ font-size:10.0pt;
+ font-family:Arial;
+ color:black}
+h1
+ {margin-top:12.0pt;
+ margin-right:0in;
+ margin-bottom:3.0pt;
+ margin-left:0in;
+ page-break-after:avoid;
+ font-size:16.0pt;
+ font-family:Arial;
+ color:windowtext;
+ font-weight:bold}
+h2
+ {margin-top:12.0pt;
+ margin-right:0in;
+ margin-bottom:3.0pt;
+ margin-left:0in;
+ page-break-after:avoid;
+ font-size:14.0pt;
+ font-family:Arial;
+ font-style:italic}
+ p.MsoNormal
+ {mso-style-parent:"";
+ margin-bottom:.0001pt;
+ font-size:10.0pt;
+ font-family:Arial;
+ margin-left:0in; margin-right:0in; margin-top:0in}
+-->
+</style>
+</head>
+
+<body background="../images/bkground.gif">
+
+<h2>Help Menu</h2>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>Help Topics</b> :&nbsp; Selecting this option from the help menu
+will launch the MameUI help file.</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>Troubleshooting</b> :&nbsp; Selecting this option from the help menu
+will display the troubleshooting topic in the help file.</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>New Game Changes</b> :&nbsp; Selecting this option from the help menu
+will display added, removed, changed games.</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span>
+<span style="font-style:normal; font-variant:normal; font-weight:700">Mame </span>
+<span style="font-weight: 700">Whatsnew.txt</span> :&nbsp; Selecting this option from the help menu
+will display the baseline Mame whatsnew.txt file which contains information
+about source changes, games added, driver improvements, etc.</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>About </b>: Selecting this option from the help menu will
+display information about the version of
+MameUI and its contributors.</p>
+
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">&nbsp;</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<font size="1">
+<!--webbot bot="Timestamp" s-type="EDITED" s-format="%Y-%m-%d %I:%M %p %Z" startspan -->2007-11-10 01:41 AM -0800<!--webbot bot="Timestamp" endspan i-checksum="37617" -->
+/ john iv</font></p>
+
+</body>
+
+</html> \ No newline at end of file
diff --git a/src/osd/winui/help/html/mameui_installprocedures.htm b/src/osd/winui/help/html/mameui_installprocedures.htm
new file mode 100644
index 00000000000..9fd78ce0494
--- /dev/null
+++ b/src/osd/winui/help/html/mameui_installprocedures.htm
@@ -0,0 +1,176 @@
+<html>
+
+<head>
+<meta name="GENERATOR" content="Microsoft FrontPage 12.0">
+<meta name="ProgId" content="FrontPage.Editor.Document">
+<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
+<title>MameUI Installation Procedures</title>
+<style>
+<!--
+p
+ {margin-right:0in;
+ margin-left:0in;
+ font-size:10.0pt;
+ font-family:Arial;
+ color:black}
+h1
+ {margin-top:12.0pt;
+ margin-right:0in;
+ margin-bottom:3.0pt;
+ margin-left:0in;
+ page-break-after:avoid;
+ font-size:16.0pt;
+ font-family:Arial;
+ color:windowtext;
+ font-weight:bold}
+h2
+ {margin-top:12.0pt;
+ margin-right:0in;
+ margin-bottom:3.0pt;
+ margin-left:0in;
+ page-break-after:avoid;
+ font-size:14.0pt;
+ font-family:Arial;
+ font-style:italic}
+ p.MsoNormal
+ {mso-style-parent:"";
+ margin-bottom:.0001pt;
+ font-size:10.0pt;
+ font-family:Arial;
+ margin-left:0in; margin-right:0in; margin-top:0in}
+-->
+</style>
+<base target="_blank">
+</head>
+
+<body background="../images/bkground.gif">
+
+<h2>Install Procedures</h2>
+
+<h3><font face="Arial">To Install MameUI Manually</font></h3>
+<p style="text-indent: -.25in; margin-left: .75in; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt">
+<span style="font-family: Symbol; color: windowtext">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7.0pt; font-family: Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span>
+<span style="font-style: normal; font-variant: normal; font-weight: normal; color:windowtext">
+Download the latest MameUI binary distribution [not the source] self-extracting archive
+available at
+</span>
+<span style="font-style: normal; font-variant: normal; font-weight: 700; color:windowtext">
+<a target="_blank" href="http://mameui.info/">MameUI</a></span><span style="font-style: normal; font-variant: normal; font-weight: normal; color:windowtext">.</span></p>
+<p style="text-indent: -.25in; margin-left: .75in; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt">
+<span style="font-family: Symbol; color: windowtext">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7.0pt; font-family: Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span>Double-click the self-extracting archive .exe, and point the
+directory install location to the root of the c:\ drive, or just type in the box
+&quot;c:\&quot; [no quotes].&nbsp; This will create
+a c:\MameUI directory with the program and all its support files within it.</p>
+<p style="text-indent: -.25in; margin-left: .75in; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt">
+<span style="font-family: Symbol; color: windowtext">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7.0pt; font-family: Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span>MameUI requires ROMs to play games; if attempting to play a game
+the ROMs of which are not present it will fail and list the files missing.&nbsp; Download the freely available public domain ROMs
+[Robby Roto, Gridlee, Alien Arena, and others] from <b>
+<a style="color: blue; text-decoration: underline; text-underline: single" target="_blank" href="http://www.mamedev.org/roms/">Mamedev.org</a></b>.&nbsp; Place these files
+<i><b>still zipped</b></i>, into the
+\MameUI\ROMs folder.&nbsp; <b>Again, do not unzip them</b>.</p>
+<p style="text-indent: -.25in; margin-left: .75in; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt">
+<span style="font-family: Symbol; color: windowtext">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7.0pt; font-family: Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span>Double-click the MameUI icon to launch the program.&nbsp; MameUI
+will go through its initial diagnostics and search for available games in the
+c:\MameUI\ROMs directory, and then display the GUI.&nbsp; If the games do not
+appear on the available game list, hit F5 to force a game search or do a File
+menu / Audit.</p>
+<p style="text-indent: -.25in; margin-left: .75in; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt">
+<span style="font-family: Symbol; color: windowtext">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7.0pt; font-family: Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span>To activate mouse control or attached gamepads to use within
+games, it is necessary to toggle those options on in the Options • Default
+Options • Controllers tab.</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span>Once a game has been selected and double-clicked, MameUI will
+produce two information screens and then it will run the game.&nbsp; Since
+MameUI is
+emulating the original hardware, the software thinks it’s still in an arcade and
+is starting up for the first time in the morning.&nbsp; Initial diagnostic screens
+are run through, as well as possibly some accounting information presented to
+the arcade owner.</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span>The game should now be running its demo/attract mode.&nbsp; Insert a
+coin with the [<b>5</b>] key on the keyboard, the mappings for coin inserts are:
+player 1 [<b>5</b>], player 2 [<b>6</b>], player 3 [<b>7</b>], player 4 [<b>8</b>].&nbsp;
+Now that a coin has been inserted, start the game with the [<b>1</b>] key on the
+keyboard.&nbsp; Game start mappings are player 1 [<b>1</b>], player 2 [<b>2</b>],
+player 3 [<b>3</b>], player 4 [<b>4</b>].</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span>MameUI’s default control scheme is to use the inverted T arrow
+keys on the keyboard for directional controls, and the left [<b>CTRL</b>] key as the
+primary action button.</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span>While in a game within MameUI, the internal configuration menu
+system can be activated by pressing the [<b>TAB</b>] key.&nbsp; This will bring up
+the control options.&nbsp; These options allow remapping MameUI controls to whatever
+keyboard keys or gamepad buttons are desired.&nbsp; The Input (general) area controls the global settings, and
+the Input (this game) are the controls for the game selected.&nbsp; To change the
+mapping, select the control to change by arrowing down to it, hit the [<b>ENTER</b>]
+key and then the new desired control.&nbsp; Hit the [<b>ESC</b>] key to exit the [<b>TAB</b>]
+menu back to the game. Note: If there are multiple mouse devices attached to the
+system they can be individually configured by selecting their control in the [<strong>TAB</strong>]
+menu and moving the mouse or trackball left or right, up or down to map it.</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span>Other keys of interest while playing a game are : </p>
+<p class="MsoNormal" style="margin-left:.75in">[<b>TAB</b>] key to bring up the
+internal menu system.</p>
+<p class="MsoNormal" style="margin-left:.75in">[<b>~ TILDE</b>] the onscreen
+display.</p>
+<p class="MsoNormal" style="margin-left:.75in">[<b>Shift-p</b>] advance paused
+screen one frame at a time<br>
+[<b>p</b>] for the pause button.</p>
+<p class="MsoNormal" style="margin-left:.75in">[<b>F3</b>] resets the game.</p>
+<p class="MsoNormal" style="margin-left:.75in">[<b>F4</b>] displays the tile
+manager and the game’s
+color palette.</p>
+<p class="MsoNormal" style="margin-left:.75in">[<b>Shift-F7</b>] save current
+game state [a-z, 1-0] (See save state folder view for supported games)</p>
+<p class="MsoNormal" style="margin-left:.75in">[<b>F7</b>] load game state [a-z,
+1-0] (See save state folder view on left for supported games)</p>
+<p class="MsoNormal" style="margin-left:.75in">[<b>F9</b>] changes the frameskip
+on the fly.</p>
+<p class="MsoNormal" style="margin-left:.75in">[<b>F10</b>] toggles throttling.</p>
+<p class="MsoNormal" style="margin-left:.75in">[<b>F11</b>] toggles the speed
+display
+display.<br>
+[<b>Shift-F12</b>] toggles MNG recording, once starts, second finishes.</p>
+<p class="MsoNormal" style="margin-left:.75in">[<b>F12</b>] takes a *.png
+snapshot of the game and places it in the \MameUI\snap directory.</p>
+<p class="MsoNormal" style="margin-left:.75in">[<b>ESC</b>] exits from the game
+back to the MameUI GUI.</p>
+
+<p class="MsoNormal" style="margin-left:.75in">[<b>Left-Alt + Enter</b>] toggle
+from fullscreen mode to windowed mode.</p>
+<p class="MsoNormal" style="margin-left:.75in">[<strong>Insert</strong>] fast
+forwards with full unthrottle and highest frameskip, convenient for speeding
+through slow start-up of certain games.</p>
+
+<p style="text-indent: -.25in; margin-left: .75in; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt">
+&nbsp;</p>
+
+<p style="text-indent: -.25in; margin-left: .75in; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt">
+<font size="1">
+<!--webbot bot="Timestamp" s-type="EDITED" s-format="%Y-%m-%d %I:%M %p %Z" startspan -->2007-11-12 02:02 PM -0800<!--webbot bot="Timestamp" endspan i-checksum="37539" -->
+/ john iv</font></p>
+
+</body>
+
+</html> \ No newline at end of file
diff --git a/src/osd/winui/help/html/mameui_optionsmenu.htm b/src/osd/winui/help/html/mameui_optionsmenu.htm
new file mode 100644
index 00000000000..7763fd64d71
--- /dev/null
+++ b/src/osd/winui/help/html/mameui_optionsmenu.htm
@@ -0,0 +1,639 @@
+<html xmlns:v="urn:schemas-microsoft-com:vml"
+xmlns:o="urn:schemas-microsoft-com:office:office"
+xmlns:w="urn:schemas-microsoft-com:office:word"
+xmlns:m="http://schemas.microsoft.com/office/2004/12/omml"
+xmlns="http://www.w3.org/TR/REC-html40">
+
+<head>
+<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
+<meta name=ProgId content=Word.Document>
+<meta name=Generator content="Microsoft Word 12">
+<meta name=Originator content="Microsoft Word 12">
+<link rel=File-List href="mameui_optionsmenu_files/filelist.xml">
+<link rel=Edit-Time-Data href="mameui_optionsmenu_files/editdata.mso">
+<!--[if !mso]>
+<style>
+v\:* {behavior:url(#default#VML);}
+o\:* {behavior:url(#default#VML);}
+w\:* {behavior:url(#default#VML);}
+.shape {behavior:url(#default#VML);}
+</style>
+<![endif]-->
+<title>MameUI Options Menu</title>
+<!--[if gte mso 9]><xml>
+ <o:DocumentProperties>
+ <o:Author>john4</o:Author>
+ <o:LastAuthor>john4</o:LastAuthor>
+ <o:Revision>3</o:Revision>
+ <o:TotalTime>1</o:TotalTime>
+ <o:Created>2008-04-11T22:39:00Z</o:Created>
+ <o:LastSaved>2008-04-11T22:40:00Z</o:LastSaved>
+ <o:Pages>1</o:Pages>
+ <o:Words>592</o:Words>
+ <o:Characters>3375</o:Characters>
+ <o:Lines>28</o:Lines>
+ <o:Paragraphs>7</o:Paragraphs>
+ <o:CharactersWithSpaces>3960</o:CharactersWithSpaces>
+ <o:Version>12.00</o:Version>
+ </o:DocumentProperties>
+</xml><![endif]-->
+<link rel=themeData href="mameui_optionsmenu_files/themedata.thmx">
+<link rel=colorSchemeMapping
+href="mameui_optionsmenu_files/colorschememapping.xml">
+<!--[if gte mso 9]><xml>
+ <w:WordDocument>
+ <w:TrackMoves>false</w:TrackMoves>
+ <w:TrackFormatting/>
+ <w:ValidateAgainstSchemas/>
+ <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
+ <w:IgnoreMixedContent>false</w:IgnoreMixedContent>
+ <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
+ <w:DoNotPromoteQF/>
+ <w:LidThemeOther>EN-US</w:LidThemeOther>
+ <w:LidThemeAsian>X-NONE</w:LidThemeAsian>
+ <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
+ <w:Compatibility>
+ <w:BreakWrappedTables/>
+ <w:SnapToGridInCell/>
+ <w:WrapTextWithPunct/>
+ <w:UseAsianBreakRules/>
+ <w:DontGrowAutofit/>
+ <w:SplitPgBreakAndParaMark/>
+ <w:DontVertAlignCellWithSp/>
+ <w:DontBreakConstrainedForcedTables/>
+ <w:DontVertAlignInTxbx/>
+ <w:Word11KerningPairs/>
+ <w:CachedColBalance/>
+ </w:Compatibility>
+ <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
+ <m:mathPr>
+ <m:mathFont m:val="Cambria Math"/>
+ <m:brkBin m:val="before"/>
+ <m:brkBinSub m:val="&#45;-"/>
+ <m:smallFrac m:val="off"/>
+ <m:dispDef/>
+ <m:lMargin m:val="0"/>
+ <m:rMargin m:val="0"/>
+ <m:defJc m:val="centerGroup"/>
+ <m:wrapIndent m:val="1440"/>
+ <m:intLim m:val="subSup"/>
+ <m:naryLim m:val="undOvr"/>
+ </m:mathPr></w:WordDocument>
+</xml><![endif]--><!--[if gte mso 9]><xml>
+ <w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
+ DefSemiHidden="true" DefQFormat="false" DefPriority="99"
+ LatentStyleCount="267">
+ <w:LsdException Locked="false" Priority="0" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
+ <w:LsdException Locked="false" Priority="9" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
+ <w:LsdException Locked="false" Priority="9" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="heading 2"/>
+ <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
+ <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
+ <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
+ <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
+ <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
+ <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
+ <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 1"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 2"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 3"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 4"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 5"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 6"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 7"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 8"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 9"/>
+ <w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
+ <w:LsdException Locked="false" Priority="10" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Title"/>
+ <w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
+ <w:LsdException Locked="false" Priority="11" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
+ <w:LsdException Locked="false" Priority="22" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
+ <w:LsdException Locked="false" Priority="20" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
+ <w:LsdException Locked="false" Priority="59" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Table Grid"/>
+ <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
+ <w:LsdException Locked="false" Priority="1" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
+ <w:LsdException Locked="false" Priority="60" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Shading"/>
+ <w:LsdException Locked="false" Priority="61" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light List"/>
+ <w:LsdException Locked="false" Priority="62" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Grid"/>
+ <w:LsdException Locked="false" Priority="63" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 1"/>
+ <w:LsdException Locked="false" Priority="64" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 2"/>
+ <w:LsdException Locked="false" Priority="65" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 1"/>
+ <w:LsdException Locked="false" Priority="66" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 2"/>
+ <w:LsdException Locked="false" Priority="67" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 1"/>
+ <w:LsdException Locked="false" Priority="68" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 2"/>
+ <w:LsdException Locked="false" Priority="69" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 3"/>
+ <w:LsdException Locked="false" Priority="70" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Dark List"/>
+ <w:LsdException Locked="false" Priority="71" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Shading"/>
+ <w:LsdException Locked="false" Priority="72" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful List"/>
+ <w:LsdException Locked="false" Priority="73" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Grid"/>
+ <w:LsdException Locked="false" Priority="60" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
+ <w:LsdException Locked="false" Priority="61" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light List Accent 1"/>
+ <w:LsdException Locked="false" Priority="62" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
+ <w:LsdException Locked="false" Priority="63" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
+ <w:LsdException Locked="false" Priority="64" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
+ <w:LsdException Locked="false" Priority="65" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
+ <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
+ <w:LsdException Locked="false" Priority="34" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
+ <w:LsdException Locked="false" Priority="29" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
+ <w:LsdException Locked="false" Priority="30" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
+ <w:LsdException Locked="false" Priority="66" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
+ <w:LsdException Locked="false" Priority="67" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
+ <w:LsdException Locked="false" Priority="68" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
+ <w:LsdException Locked="false" Priority="69" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
+ <w:LsdException Locked="false" Priority="70" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Dark List Accent 1"/>
+ <w:LsdException Locked="false" Priority="71" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
+ <w:LsdException Locked="false" Priority="72" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
+ <w:LsdException Locked="false" Priority="73" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
+ <w:LsdException Locked="false" Priority="60" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
+ <w:LsdException Locked="false" Priority="61" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light List Accent 2"/>
+ <w:LsdException Locked="false" Priority="62" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
+ <w:LsdException Locked="false" Priority="63" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
+ <w:LsdException Locked="false" Priority="64" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
+ <w:LsdException Locked="false" Priority="65" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
+ <w:LsdException Locked="false" Priority="66" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
+ <w:LsdException Locked="false" Priority="67" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
+ <w:LsdException Locked="false" Priority="68" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
+ <w:LsdException Locked="false" Priority="69" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
+ <w:LsdException Locked="false" Priority="70" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Dark List Accent 2"/>
+ <w:LsdException Locked="false" Priority="71" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
+ <w:LsdException Locked="false" Priority="72" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
+ <w:LsdException Locked="false" Priority="73" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
+ <w:LsdException Locked="false" Priority="60" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
+ <w:LsdException Locked="false" Priority="61" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light List Accent 3"/>
+ <w:LsdException Locked="false" Priority="62" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
+ <w:LsdException Locked="false" Priority="63" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
+ <w:LsdException Locked="false" Priority="64" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
+ <w:LsdException Locked="false" Priority="65" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
+ <w:LsdException Locked="false" Priority="66" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
+ <w:LsdException Locked="false" Priority="67" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
+ <w:LsdException Locked="false" Priority="68" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
+ <w:LsdException Locked="false" Priority="69" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
+ <w:LsdException Locked="false" Priority="70" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Dark List Accent 3"/>
+ <w:LsdException Locked="false" Priority="71" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
+ <w:LsdException Locked="false" Priority="72" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
+ <w:LsdException Locked="false" Priority="73" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
+ <w:LsdException Locked="false" Priority="60" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
+ <w:LsdException Locked="false" Priority="61" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light List Accent 4"/>
+ <w:LsdException Locked="false" Priority="62" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
+ <w:LsdException Locked="false" Priority="63" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
+ <w:LsdException Locked="false" Priority="64" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
+ <w:LsdException Locked="false" Priority="65" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
+ <w:LsdException Locked="false" Priority="66" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
+ <w:LsdException Locked="false" Priority="67" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
+ <w:LsdException Locked="false" Priority="68" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
+ <w:LsdException Locked="false" Priority="69" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
+ <w:LsdException Locked="false" Priority="70" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Dark List Accent 4"/>
+ <w:LsdException Locked="false" Priority="71" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
+ <w:LsdException Locked="false" Priority="72" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
+ <w:LsdException Locked="false" Priority="73" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
+ <w:LsdException Locked="false" Priority="60" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
+ <w:LsdException Locked="false" Priority="61" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light List Accent 5"/>
+ <w:LsdException Locked="false" Priority="62" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
+ <w:LsdException Locked="false" Priority="63" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
+ <w:LsdException Locked="false" Priority="64" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
+ <w:LsdException Locked="false" Priority="65" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
+ <w:LsdException Locked="false" Priority="66" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
+ <w:LsdException Locked="false" Priority="67" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
+ <w:LsdException Locked="false" Priority="68" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
+ <w:LsdException Locked="false" Priority="69" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
+ <w:LsdException Locked="false" Priority="70" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Dark List Accent 5"/>
+ <w:LsdException Locked="false" Priority="71" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
+ <w:LsdException Locked="false" Priority="72" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
+ <w:LsdException Locked="false" Priority="73" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
+ <w:LsdException Locked="false" Priority="60" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
+ <w:LsdException Locked="false" Priority="61" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light List Accent 6"/>
+ <w:LsdException Locked="false" Priority="62" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
+ <w:LsdException Locked="false" Priority="63" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
+ <w:LsdException Locked="false" Priority="64" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
+ <w:LsdException Locked="false" Priority="65" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
+ <w:LsdException Locked="false" Priority="66" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
+ <w:LsdException Locked="false" Priority="67" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
+ <w:LsdException Locked="false" Priority="68" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
+ <w:LsdException Locked="false" Priority="69" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
+ <w:LsdException Locked="false" Priority="70" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Dark List Accent 6"/>
+ <w:LsdException Locked="false" Priority="71" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
+ <w:LsdException Locked="false" Priority="72" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
+ <w:LsdException Locked="false" Priority="73" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
+ <w:LsdException Locked="false" Priority="19" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
+ <w:LsdException Locked="false" Priority="21" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
+ <w:LsdException Locked="false" Priority="31" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
+ <w:LsdException Locked="false" Priority="32" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
+ <w:LsdException Locked="false" Priority="33" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
+ <w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
+ <w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
+ </w:LatentStyles>
+</xml><![endif]-->
+<style>
+<!--
+ /* Font Definitions */
+ @font-face
+ {font-family:"Cambria Math";
+ panose-1:2 4 5 3 5 4 6 3 2 4;
+ mso-font-charset:1;
+ mso-generic-font-family:roman;
+ mso-font-format:other;
+ mso-font-pitch:variable;
+ mso-font-signature:0 0 0 0 0 0;}
+@font-face
+ {font-family:Tahoma;
+ panose-1:2 11 6 4 3 5 4 4 2 4;
+ mso-font-charset:0;
+ mso-generic-font-family:swiss;
+ mso-font-pitch:variable;
+ mso-font-signature:-520082689 -1073717157 41 0 66047 0;}
+ /* Style Definitions */
+ p.MsoNormal, li.MsoNormal, div.MsoNormal
+ {mso-style-unhide:no;
+ mso-style-qformat:yes;
+ mso-style-parent:"";
+ margin:0in;
+ margin-bottom:.0001pt;
+ mso-pagination:widow-orphan;
+ font-size:10.0pt;
+ font-family:"Arial","sans-serif";
+ mso-fareast-font-family:"Times New Roman";
+ mso-fareast-theme-font:minor-fareast;
+ color:windowtext;}
+h1
+ {mso-style-priority:9;
+ mso-style-unhide:no;
+ mso-style-qformat:yes;
+ mso-style-link:"Heading 1 Char";
+ margin-top:12.0pt;
+ margin-right:0in;
+ margin-bottom:3.0pt;
+ margin-left:0in;
+ mso-pagination:widow-orphan;
+ page-break-after:avoid;
+ mso-outline-level:1;
+ font-size:16.0pt;
+ font-family:"Arial","sans-serif";
+ mso-fareast-font-family:"Times New Roman";
+ mso-fareast-theme-font:minor-fareast;
+ color:windowtext;
+ font-weight:bold;}
+h2
+ {mso-style-priority:9;
+ mso-style-unhide:no;
+ mso-style-qformat:yes;
+ mso-style-link:"Heading 2 Char";
+ margin-top:12.0pt;
+ margin-right:0in;
+ margin-bottom:3.0pt;
+ margin-left:0in;
+ mso-pagination:widow-orphan;
+ page-break-after:avoid;
+ mso-outline-level:2;
+ font-size:14.0pt;
+ font-family:"Arial","sans-serif";
+ mso-fareast-font-family:"Times New Roman";
+ mso-fareast-theme-font:minor-fareast;
+ color:windowtext;
+ font-weight:bold;
+ font-style:italic;}
+p
+ {mso-style-noshow:yes;
+ mso-style-priority:99;
+ mso-margin-top-alt:auto;
+ margin-right:0in;
+ mso-margin-bottom-alt:auto;
+ margin-left:0in;
+ mso-pagination:widow-orphan;
+ font-size:10.0pt;
+ font-family:"Arial","sans-serif";
+ mso-fareast-font-family:"Times New Roman";
+ mso-fareast-theme-font:minor-fareast;
+ color:black;}
+p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
+ {mso-style-noshow:yes;
+ mso-style-priority:99;
+ mso-style-link:"Balloon Text Char";
+ margin:0in;
+ margin-bottom:.0001pt;
+ mso-pagination:widow-orphan;
+ font-size:8.0pt;
+ font-family:"Tahoma","sans-serif";
+ mso-fareast-font-family:"Times New Roman";
+ mso-fareast-theme-font:minor-fareast;
+ color:windowtext;}
+span.Heading1Char
+ {mso-style-name:"Heading 1 Char";
+ mso-style-priority:9;
+ mso-style-unhide:no;
+ mso-style-locked:yes;
+ mso-style-link:"Heading 1";
+ mso-ansi-font-size:14.0pt;
+ mso-bidi-font-size:14.0pt;
+ font-family:"Cambria","serif";
+ mso-ascii-font-family:Cambria;
+ mso-ascii-theme-font:major-latin;
+ mso-fareast-font-family:"Times New Roman";
+ mso-fareast-theme-font:major-fareast;
+ mso-hansi-font-family:Cambria;
+ mso-hansi-theme-font:major-latin;
+ mso-bidi-font-family:"Times New Roman";
+ mso-bidi-theme-font:major-bidi;
+ color:#365F91;
+ mso-themecolor:accent1;
+ mso-themeshade:191;
+ font-weight:bold;}
+span.Heading2Char
+ {mso-style-name:"Heading 2 Char";
+ mso-style-noshow:yes;
+ mso-style-priority:9;
+ mso-style-unhide:no;
+ mso-style-locked:yes;
+ mso-style-link:"Heading 2";
+ mso-ansi-font-size:13.0pt;
+ mso-bidi-font-size:13.0pt;
+ font-family:"Cambria","serif";
+ mso-ascii-font-family:Cambria;
+ mso-ascii-theme-font:major-latin;
+ mso-fareast-font-family:"Times New Roman";
+ mso-fareast-theme-font:major-fareast;
+ mso-hansi-font-family:Cambria;
+ mso-hansi-theme-font:major-latin;
+ mso-bidi-font-family:"Times New Roman";
+ mso-bidi-theme-font:major-bidi;
+ color:#4F81BD;
+ mso-themecolor:accent1;
+ font-weight:bold;}
+span.BalloonTextChar
+ {mso-style-name:"Balloon Text Char";
+ mso-style-noshow:yes;
+ mso-style-priority:99;
+ mso-style-unhide:no;
+ mso-style-locked:yes;
+ mso-style-link:"Balloon Text";
+ mso-ansi-font-size:8.0pt;
+ mso-bidi-font-size:8.0pt;
+ font-family:"Tahoma","sans-serif";
+ mso-ascii-font-family:Tahoma;
+ mso-fareast-font-family:"Times New Roman";
+ mso-fareast-theme-font:minor-fareast;
+ mso-hansi-font-family:Tahoma;
+ mso-bidi-font-family:Tahoma;}
+.MsoChpDefault
+ {mso-style-type:export-only;
+ mso-default-props:yes;
+ font-size:10.0pt;
+ mso-ansi-font-size:10.0pt;
+ mso-bidi-font-size:10.0pt;}
+@page Section1
+ {size:8.5in 11.0in;
+ margin:1.0in 1.0in 1.0in 1.0in;
+ mso-header-margin:.5in;
+ mso-footer-margin:.5in;
+ mso-paper-source:0;}
+div.Section1
+ {page:Section1;}
+-->
+</style>
+<!--[if gte mso 10]>
+<style>
+ /* Style Definitions */
+ table.MsoNormalTable
+ {mso-style-name:"Table Normal";
+ mso-tstyle-rowband-size:0;
+ mso-tstyle-colband-size:0;
+ mso-style-noshow:yes;
+ mso-style-priority:99;
+ mso-style-qformat:yes;
+ mso-style-parent:"";
+ mso-padding-alt:0in 5.4pt 0in 5.4pt;
+ mso-para-margin:0in;
+ mso-para-margin-bottom:.0001pt;
+ mso-pagination:widow-orphan;
+ font-size:10.0pt;
+ font-family:"Times New Roman","serif";}
+</style>
+<![endif]--><!--[if gte mso 9]><xml>
+ <o:shapedefaults v:ext="edit" spidmax="2050"/>
+</xml><![endif]--><!--[if gte mso 9]><xml>
+ <o:shapelayout v:ext="edit">
+ <o:idmap v:ext="edit" data="1"/>
+ </o:shapelayout></xml><![endif]-->
+</head>
+
+<body bgcolor=white background="../images/bkground.gif" lang=EN-US link=blue
+vlink=purple style='tab-interval:.5in'>
+
+<div class=Section1>
+
+<h2><span style='mso-fareast-font-family:"Times New Roman"'>Options Menu<o:p></o:p></span></h2>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span
+style='font-family:Symbol;mso-no-proof:yes'><img width=11 height=11
+id="_x0000_i1033" src="../images/mame321.gif" alt="*"></span><span
+style='font-size:7.0pt;font-family:"Times New Roman","serif"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span><b>Game List Font</b> :&nbsp; Selecting this option from the options
+menu will change the font used for the GUI display.</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span
+style='font-family:Symbol;mso-no-proof:yes'><img width=11 height=11
+id="_x0000_i1032" src="../images/mame321.gif" alt="*"></span><span
+style='font-size:7.0pt;font-family:"Times New Roman","serif"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span><b>Game List Clone Color</b> :&nbsp; Selecting this option from the options
+menu will change the font color used for the GUI display of clones in the
+'Grouped' game list view.</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span
+style='font-family:Symbol;mso-no-proof:yes'><img width=11 height=11
+id="_x0000_i1031" src="../images/mame321.gif" alt="*"></span><span
+style='font-size:7.0pt;font-family:"Times New Roman","serif"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span><b>Directories </b>: Selecting this option from the options menu will
+allow for choosing a different directory for a number of MameUI support files
+including: ROMs, samples, config, high scores, snapshots, input files, state,
+artwork, memory card, flyers, cabinets, marquees, and nvram.&nbsp; Normally these
+directories are created under the MameUI executable’s directory.</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span
+style='font-family:Symbol;mso-no-proof:yes'><img width=11 height=11
+id="_x0000_i1030" src="../images/mame321.gif" alt="*"></span><span
+style='font-size:7.0pt;font-family:"Times New Roman","serif"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span><b><a href="mameui_properties.htm">Default Options</a> </b>: Selecting
+this option from the options menu will allow for the global customization of
+all games in the game list.&nbsp; These settings are overridden by altering the
+individual game settings using the File • Properties menu item.</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span
+style='font-family:Symbol;mso-no-proof:yes'><img border=0 width=11 height=11
+id="_x0000_i1029" src="../images/mame321.gif" alt="*"></span><span
+style='font-size:7.0pt;font-family:"Times New Roman","serif"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span><b>Reset to Default </b>: Selecting this option from the options menu
+will allow for resetting various parts of MameUI to their defaults.&nbsp;
+MameUI will prompt before resetting, giving the option to cancel. </p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span
+style='font-family:Symbol;mso-no-proof:yes'><img border=0 width=11 height=11
+id="_x0000_i1028" src="../images/mame321.gif" alt="*"></span><span
+style='font-size:7.0pt;font-family:"Times New Roman","serif"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span><b>Interface Options </b>: Selecting this option from the options menu
+will allow: <br>
+Toggling on or off the search for new games on start.<br>
+Toggling on or off the ability to use a game pad to navigate the GUI (see mameui32.ini
+for examples).<br>
+Toggling on or off the ability to use a keyboard encoder solution to navigate
+the GUI and launch games [helpful in Mame cabs] (see mameui32.ini for
+examples).<br>
+Selecting a random image from the \bkground directory on startup.<br>
+Toggling on or off MameUI broadcasting the selected game programmatically to
+other listening applications like message clients, or an LED message bar, <br>
+The cursor to be hidden [helpful in Mame cabs].<br>
+Selecting inheritable filters, this allows parent folders to set the filters
+for their children sub-folders.<br>
+No offset for clones missing parent in view toggle will cause clones not be
+indented if the parent game is not present due to current folder view, missing
+ROMs, or filtering.<br>
+Allow history.dat file to be displayed under any, all, or none of the art
+views.<br>
+Choosing the screenshot [<strong>F12</strong>] naming convention.<br>
+Globally clear the play time and number of times played counters.<br>
+Stretch screenshot to larger size, this will enlarge the items in the art pane
+scaling them upwards depending on the size of the GUI.<br>
+Screenshot border size and color creates a user defined border around the art
+work in the art pane on the right, set to zero to remove borders completely.</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'>&nbsp;</p>
+
+<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>
+
+<p class=MsoNormal><span style='mso-no-proof:yes'><img border=0 width=500
+height=347 id="_x0000_i1027" src="../images/int.jpg"></span></p>
+
+</blockquote>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'>&nbsp;</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span
+style='font-family:Symbol;mso-no-proof:yes'><img border=0 width=11 height=11
+id="_x0000_i1026" src="../images/mame321.gif" alt="*"></span><span
+style='font-size:7.0pt;font-family:"Times New Roman","serif"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span><b>Background Image </b>: Selecting this option from the options menu
+allows the choosing of a background image from the \bkground directory.&nbsp;
+This image will be displayed beneath the three window panes in the GUI. </p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'>&nbsp;</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><!--webbot bot="Timestamp" s-type="EDITED" s-format="%Y-%m-%d %I:%M %p %Z" startspan -->2008-07-16 12:04 AM -0700<!--webbot bot="Timestamp" endspan i-checksum="38077" --><span
+style='font-size:7.5pt'>/ john iv</span></p>
+
+</div>
+
+</body>
+
+</html>
diff --git a/src/osd/winui/help/html/mameui_overview.htm b/src/osd/winui/help/html/mameui_overview.htm
new file mode 100644
index 00000000000..15ff74c884c
--- /dev/null
+++ b/src/osd/winui/help/html/mameui_overview.htm
@@ -0,0 +1,529 @@
+<html xmlns:v="urn:schemas-microsoft-com:vml"
+xmlns:o="urn:schemas-microsoft-com:office:office"
+xmlns:w="urn:schemas-microsoft-com:office:word"
+xmlns:m="http://schemas.microsoft.com/office/2004/12/omml"
+xmlns="http://www.w3.org/TR/REC-html40">
+
+<head>
+<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
+<meta name=ProgId content=Word.Document>
+<meta name=Generator content="Microsoft Word 12">
+<meta name=Originator content="Microsoft Word 12">
+<link rel=File-List href="mameui_overview_files/filelist.xml">
+<link rel=Edit-Time-Data href="mameui_overview_files/editdata.mso">
+<!--[if !mso]>
+<style>
+v\:* {behavior:url(#default#VML);}
+o\:* {behavior:url(#default#VML);}
+w\:* {behavior:url(#default#VML);}
+.shape {behavior:url(#default#VML);}
+</style>
+<![endif]-->
+<title>MameUI Overview &amp; History</title>
+<!--[if gte mso 9]><xml>
+ <o:DocumentProperties>
+ <o:Author>john4</o:Author>
+ <o:LastAuthor>john4</o:LastAuthor>
+ <o:Revision>2</o:Revision>
+ <o:TotalTime>1</o:TotalTime>
+ <o:Created>2008-04-11T22:44:00Z</o:Created>
+ <o:LastSaved>2008-04-11T22:45:00Z</o:LastSaved>
+ <o:Pages>1</o:Pages>
+ <o:Words>413</o:Words>
+ <o:Characters>2358</o:Characters>
+ <o:Lines>19</o:Lines>
+ <o:Paragraphs>5</o:Paragraphs>
+ <o:CharactersWithSpaces>2766</o:CharactersWithSpaces>
+ <o:Version>12.00</o:Version>
+ </o:DocumentProperties>
+</xml><![endif]-->
+<link rel=themeData href="mameui_overview_files/themedata.thmx">
+<link rel=colorSchemeMapping href="mameui_overview_files/colorschememapping.xml">
+<!--[if gte mso 9]><xml>
+ <w:WordDocument>
+ <w:SpellingState>Clean</w:SpellingState>
+ <w:TrackMoves>false</w:TrackMoves>
+ <w:TrackFormatting/>
+ <w:ValidateAgainstSchemas/>
+ <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
+ <w:IgnoreMixedContent>false</w:IgnoreMixedContent>
+ <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
+ <w:DoNotPromoteQF/>
+ <w:LidThemeOther>EN-US</w:LidThemeOther>
+ <w:LidThemeAsian>X-NONE</w:LidThemeAsian>
+ <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
+ <w:Compatibility>
+ <w:BreakWrappedTables/>
+ <w:SnapToGridInCell/>
+ <w:WrapTextWithPunct/>
+ <w:UseAsianBreakRules/>
+ <w:DontGrowAutofit/>
+ <w:SplitPgBreakAndParaMark/>
+ <w:DontVertAlignCellWithSp/>
+ <w:DontBreakConstrainedForcedTables/>
+ <w:DontVertAlignInTxbx/>
+ <w:Word11KerningPairs/>
+ <w:CachedColBalance/>
+ </w:Compatibility>
+ <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
+ <m:mathPr>
+ <m:mathFont m:val="Cambria Math"/>
+ <m:brkBin m:val="before"/>
+ <m:brkBinSub m:val="&#45;-"/>
+ <m:smallFrac m:val="off"/>
+ <m:dispDef/>
+ <m:lMargin m:val="0"/>
+ <m:rMargin m:val="0"/>
+ <m:defJc m:val="centerGroup"/>
+ <m:wrapIndent m:val="1440"/>
+ <m:intLim m:val="subSup"/>
+ <m:naryLim m:val="undOvr"/>
+ </m:mathPr></w:WordDocument>
+</xml><![endif]--><!--[if gte mso 9]><xml>
+ <w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
+ DefSemiHidden="true" DefQFormat="false" DefPriority="99"
+ LatentStyleCount="267">
+ <w:LsdException Locked="false" Priority="0" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
+ <w:LsdException Locked="false" Priority="9" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
+ <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
+ <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
+ <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
+ <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
+ <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
+ <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
+ <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
+ <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 1"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 2"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 3"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 4"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 5"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 6"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 7"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 8"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 9"/>
+ <w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
+ <w:LsdException Locked="false" Priority="10" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Title"/>
+ <w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
+ <w:LsdException Locked="false" Priority="11" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
+ <w:LsdException Locked="false" Priority="22" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
+ <w:LsdException Locked="false" Priority="20" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
+ <w:LsdException Locked="false" Priority="59" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Table Grid"/>
+ <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
+ <w:LsdException Locked="false" Priority="1" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
+ <w:LsdException Locked="false" Priority="60" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Shading"/>
+ <w:LsdException Locked="false" Priority="61" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light List"/>
+ <w:LsdException Locked="false" Priority="62" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Grid"/>
+ <w:LsdException Locked="false" Priority="63" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 1"/>
+ <w:LsdException Locked="false" Priority="64" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 2"/>
+ <w:LsdException Locked="false" Priority="65" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 1"/>
+ <w:LsdException Locked="false" Priority="66" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 2"/>
+ <w:LsdException Locked="false" Priority="67" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 1"/>
+ <w:LsdException Locked="false" Priority="68" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 2"/>
+ <w:LsdException Locked="false" Priority="69" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 3"/>
+ <w:LsdException Locked="false" Priority="70" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Dark List"/>
+ <w:LsdException Locked="false" Priority="71" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Shading"/>
+ <w:LsdException Locked="false" Priority="72" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful List"/>
+ <w:LsdException Locked="false" Priority="73" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Grid"/>
+ <w:LsdException Locked="false" Priority="60" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
+ <w:LsdException Locked="false" Priority="61" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light List Accent 1"/>
+ <w:LsdException Locked="false" Priority="62" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
+ <w:LsdException Locked="false" Priority="63" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
+ <w:LsdException Locked="false" Priority="64" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
+ <w:LsdException Locked="false" Priority="65" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
+ <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
+ <w:LsdException Locked="false" Priority="34" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
+ <w:LsdException Locked="false" Priority="29" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
+ <w:LsdException Locked="false" Priority="30" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
+ <w:LsdException Locked="false" Priority="66" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
+ <w:LsdException Locked="false" Priority="67" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
+ <w:LsdException Locked="false" Priority="68" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
+ <w:LsdException Locked="false" Priority="69" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
+ <w:LsdException Locked="false" Priority="70" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Dark List Accent 1"/>
+ <w:LsdException Locked="false" Priority="71" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
+ <w:LsdException Locked="false" Priority="72" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
+ <w:LsdException Locked="false" Priority="73" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
+ <w:LsdException Locked="false" Priority="60" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
+ <w:LsdException Locked="false" Priority="61" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light List Accent 2"/>
+ <w:LsdException Locked="false" Priority="62" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
+ <w:LsdException Locked="false" Priority="63" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
+ <w:LsdException Locked="false" Priority="64" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
+ <w:LsdException Locked="false" Priority="65" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
+ <w:LsdException Locked="false" Priority="66" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
+ <w:LsdException Locked="false" Priority="67" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
+ <w:LsdException Locked="false" Priority="68" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
+ <w:LsdException Locked="false" Priority="69" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
+ <w:LsdException Locked="false" Priority="70" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Dark List Accent 2"/>
+ <w:LsdException Locked="false" Priority="71" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
+ <w:LsdException Locked="false" Priority="72" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
+ <w:LsdException Locked="false" Priority="73" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
+ <w:LsdException Locked="false" Priority="60" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
+ <w:LsdException Locked="false" Priority="61" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light List Accent 3"/>
+ <w:LsdException Locked="false" Priority="62" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
+ <w:LsdException Locked="false" Priority="63" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
+ <w:LsdException Locked="false" Priority="64" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
+ <w:LsdException Locked="false" Priority="65" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
+ <w:LsdException Locked="false" Priority="66" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
+ <w:LsdException Locked="false" Priority="67" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
+ <w:LsdException Locked="false" Priority="68" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
+ <w:LsdException Locked="false" Priority="69" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
+ <w:LsdException Locked="false" Priority="70" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Dark List Accent 3"/>
+ <w:LsdException Locked="false" Priority="71" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
+ <w:LsdException Locked="false" Priority="72" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
+ <w:LsdException Locked="false" Priority="73" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
+ <w:LsdException Locked="false" Priority="60" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
+ <w:LsdException Locked="false" Priority="61" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light List Accent 4"/>
+ <w:LsdException Locked="false" Priority="62" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
+ <w:LsdException Locked="false" Priority="63" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
+ <w:LsdException Locked="false" Priority="64" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
+ <w:LsdException Locked="false" Priority="65" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
+ <w:LsdException Locked="false" Priority="66" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
+ <w:LsdException Locked="false" Priority="67" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
+ <w:LsdException Locked="false" Priority="68" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
+ <w:LsdException Locked="false" Priority="69" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
+ <w:LsdException Locked="false" Priority="70" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Dark List Accent 4"/>
+ <w:LsdException Locked="false" Priority="71" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
+ <w:LsdException Locked="false" Priority="72" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
+ <w:LsdException Locked="false" Priority="73" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
+ <w:LsdException Locked="false" Priority="60" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
+ <w:LsdException Locked="false" Priority="61" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light List Accent 5"/>
+ <w:LsdException Locked="false" Priority="62" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
+ <w:LsdException Locked="false" Priority="63" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
+ <w:LsdException Locked="false" Priority="64" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
+ <w:LsdException Locked="false" Priority="65" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
+ <w:LsdException Locked="false" Priority="66" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
+ <w:LsdException Locked="false" Priority="67" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
+ <w:LsdException Locked="false" Priority="68" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
+ <w:LsdException Locked="false" Priority="69" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
+ <w:LsdException Locked="false" Priority="70" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Dark List Accent 5"/>
+ <w:LsdException Locked="false" Priority="71" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
+ <w:LsdException Locked="false" Priority="72" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
+ <w:LsdException Locked="false" Priority="73" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
+ <w:LsdException Locked="false" Priority="60" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
+ <w:LsdException Locked="false" Priority="61" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light List Accent 6"/>
+ <w:LsdException Locked="false" Priority="62" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
+ <w:LsdException Locked="false" Priority="63" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
+ <w:LsdException Locked="false" Priority="64" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
+ <w:LsdException Locked="false" Priority="65" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
+ <w:LsdException Locked="false" Priority="66" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
+ <w:LsdException Locked="false" Priority="67" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
+ <w:LsdException Locked="false" Priority="68" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
+ <w:LsdException Locked="false" Priority="69" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
+ <w:LsdException Locked="false" Priority="70" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Dark List Accent 6"/>
+ <w:LsdException Locked="false" Priority="71" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
+ <w:LsdException Locked="false" Priority="72" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
+ <w:LsdException Locked="false" Priority="73" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
+ <w:LsdException Locked="false" Priority="19" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
+ <w:LsdException Locked="false" Priority="21" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
+ <w:LsdException Locked="false" Priority="31" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
+ <w:LsdException Locked="false" Priority="32" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
+ <w:LsdException Locked="false" Priority="33" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
+ <w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
+ <w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
+ </w:LatentStyles>
+</xml><![endif]-->
+<style>
+<!--
+ /* Font Definitions */
+ @font-face
+ {font-family:"Cambria Math";
+ panose-1:2 4 5 3 5 4 6 3 2 4;
+ mso-font-charset:1;
+ mso-generic-font-family:roman;
+ mso-font-format:other;
+ mso-font-pitch:variable;
+ mso-font-signature:0 0 0 0 0 0;}
+ /* Style Definitions */
+ p.MsoNormal, li.MsoNormal, div.MsoNormal
+ {mso-style-unhide:no;
+ mso-style-qformat:yes;
+ mso-style-parent:"";
+ margin:0in;
+ margin-bottom:.0001pt;
+ mso-pagination:widow-orphan;
+ font-size:12.0pt;
+ font-family:"Times New Roman","serif";
+ mso-fareast-font-family:"Times New Roman";
+ mso-fareast-theme-font:minor-fareast;
+ color:windowtext;}
+h1
+ {mso-style-priority:9;
+ mso-style-unhide:no;
+ mso-style-qformat:yes;
+ mso-style-link:"Heading 1 Char";
+ margin-top:12.0pt;
+ margin-right:0in;
+ margin-bottom:3.0pt;
+ margin-left:0in;
+ mso-pagination:widow-orphan;
+ page-break-after:avoid;
+ mso-outline-level:1;
+ font-size:16.0pt;
+ font-family:"Arial","sans-serif";
+ mso-fareast-font-family:"Times New Roman";
+ mso-fareast-theme-font:minor-fareast;
+ color:windowtext;
+ font-weight:bold;}
+p
+ {mso-style-noshow:yes;
+ mso-style-priority:99;
+ mso-margin-top-alt:auto;
+ margin-right:0in;
+ mso-margin-bottom-alt:auto;
+ margin-left:0in;
+ mso-pagination:widow-orphan;
+ font-size:10.0pt;
+ font-family:"Arial","sans-serif";
+ mso-fareast-font-family:"Times New Roman";
+ mso-fareast-theme-font:minor-fareast;
+ color:black;}
+span.Heading1Char
+ {mso-style-name:"Heading 1 Char";
+ mso-style-priority:9;
+ mso-style-unhide:no;
+ mso-style-locked:yes;
+ mso-style-link:"Heading 1";
+ mso-ansi-font-size:14.0pt;
+ mso-bidi-font-size:14.0pt;
+ font-family:"Cambria","serif";
+ mso-ascii-font-family:Cambria;
+ mso-ascii-theme-font:major-latin;
+ mso-fareast-font-family:"Times New Roman";
+ mso-fareast-theme-font:major-fareast;
+ mso-hansi-font-family:Cambria;
+ mso-hansi-theme-font:major-latin;
+ mso-bidi-font-family:"Times New Roman";
+ mso-bidi-theme-font:major-bidi;
+ color:#365F91;
+ mso-themecolor:accent1;
+ mso-themeshade:191;
+ font-weight:bold;}
+.MsoChpDefault
+ {mso-style-type:export-only;
+ mso-default-props:yes;
+ font-size:10.0pt;
+ mso-ansi-font-size:10.0pt;
+ mso-bidi-font-size:10.0pt;}
+@page Section1
+ {size:8.5in 11.0in;
+ margin:1.0in 1.0in 1.0in 1.0in;
+ mso-header-margin:.5in;
+ mso-footer-margin:.5in;
+ mso-paper-source:0;}
+div.Section1
+ {page:Section1;}
+-->
+</style>
+<!--[if gte mso 10]>
+<style>
+ /* Style Definitions */
+ table.MsoNormalTable
+ {mso-style-name:"Table Normal";
+ mso-tstyle-rowband-size:0;
+ mso-tstyle-colband-size:0;
+ mso-style-noshow:yes;
+ mso-style-priority:99;
+ mso-style-qformat:yes;
+ mso-style-parent:"";
+ mso-padding-alt:0in 5.4pt 0in 5.4pt;
+ mso-para-margin:0in;
+ mso-para-margin-bottom:.0001pt;
+ mso-pagination:widow-orphan;
+ font-size:10.0pt;
+ font-family:"Times New Roman","serif";}
+</style>
+<![endif]--><!--[if gte mso 9]><xml>
+ <o:shapedefaults v:ext="edit" spidmax="2050"/>
+</xml><![endif]--><!--[if gte mso 9]><xml>
+ <o:shapelayout v:ext="edit">
+ <o:idmap v:ext="edit" data="1"/>
+ </o:shapelayout></xml><![endif]-->
+</head>
+
+<body bgcolor=white background="../images/bkground.gif" lang=EN-US link=blue
+vlink=purple style='tab-interval:.5in'>
+
+<div class=Section1>
+
+<h1><span style='mso-fareast-font-family:"Times New Roman"'>MameUI Overview
+&amp; History<o:p></o:p></span></h1>
+
+<p style='margin-top:0in;margin-right:0in;margin-bottom:3.75pt;margin-left:
+0in'>MameUI [previously Mame32] is an emulator.&nbsp; Simply put, it allows a
+PC to mimic the internal hardware of a large number of stand-alone arcade
+machines from 1975 to 2003+.&nbsp; Combined with the original ROMs from these
+arcade machines, MameUI will display and play the games on a PC.&nbsp; The
+software thinks it’s still running on its original box.&nbsp; MameUI is the GUI
+version of Mame™, the M.ultiple A.rcade M.achine E.mulator.&nbsp; It has an
+attractive, elegant, graphical interface which allows the user to forego having
+to type command line parameters, although it can still be passed these
+arguments.&nbsp; For many, it’s easier to click the icon of the game.</p>
+
+<p style='margin-top:0in;margin-right:0in;margin-bottom:3.75pt;margin-left:
+0in'><b>1997.02.05</b> - In the beginning, Italian programmer and arcade
+preservationist, Nicola Salmoria, combined his individual game emulators into
+the DOS based multi-game emulator, Mame.&nbsp; It was released Feb. 05,
+1997.&nbsp; Since the source was also released, numerous people contributed new
+drivers to add support for more and more games.&nbsp; The number of contributors
+grew into the hundreds and has continued to increase over the years.</p>
+
+<p style='margin-top:0in;margin-right:0in;margin-bottom:3.75pt;margin-left:
+0in'><b>1997.08</b> - Mame32 was the first port of Mame to the Microsoft
+Windows platform.&nbsp; It originally came out in August of 1997, adding the
+GUI and a considerable amount of new code to transition to Win32.&nbsp; The
+original Mame32 was authored by Chris Kirmse and later integrated Michael
+Soderstrom's Win32 command-line port of Mame.&nbsp; Michael then coordinated,
+maintained the source, and produced the releases.&nbsp; Mike Haaland and John
+Hardy IV joined the project in late 1997.&nbsp; Mike would wholly revamp the
+user interface to its current state and continue collaborating on core
+development. John provided testing, WIP updates, artwork, and served as the
+external point of contact for the team.&nbsp; Mame32 releases followed the Mame
+DOS releases by a few days to a few weeks over the next four years.</p>
+
+<p style='margin-top:0in;margin-right:0in;margin-bottom:3.75pt;margin-left:
+0in'><b>2001.05.24</b> - With the inexorable phasing out of DOS, the authors of
+the DOS based Mame ported it to the Microsoft Windows platform as a command
+line application.&nbsp; Evolutionally similar to MameDOS, it is run by typing
+in arguments from a command prompt, and has no GUI. [many people try to double
+click it, which opens up the command line window briefly, displays a message,
+then closes].&nbsp;</p>
+
+<p style='margin-top:0in;margin-right:0in;margin-bottom:3.75pt;margin-left:
+0in'><b>2001.07.24</b> - Mame32 was re-positioned, with the familiar GUI
+grafted onto the new Mame Windows engine.&nbsp; Mame32 is currently maintained
+by Kirmse, Haaland, and Hardy and is now released by John IV shortly after Mame
+on the <b><a href="http://mameui.info/" target="_blank">MameUI</a></b>
+site.</p>
+
+<p style='margin-top:0in;margin-right:0in;margin-bottom:3.75pt;margin-left:
+0in'><strong><span style='font-family:"Arial","sans-serif"'>2007.11.11</span></strong>
+- Mame32 was rebranded as MameUI to avoid confusion of the 64bit build of the
+core version.&nbsp; It is compiled as MameUI32 and MameUI64 for the different
+target platforms.</p>
+
+<p style='margin-top:0in;margin-right:0in;margin-bottom:3.75pt;margin-left:
+0in'>&nbsp;</p>
+
+<p style='margin-top:0in;margin-right:0in;margin-bottom:3.75pt;margin-left:
+0in'><!--webbot bot="Timestamp" s-type="EDITED" s-format="%Y-%m-%d %I:%M %p %Z" startspan -->2007-11-12 01:57 PM -0800<!--webbot bot="Timestamp" endspan i-checksum="38483" --><span
+style='font-size:7.5pt'>/ john iv</span></p>
+
+</div>
+
+</body>
+
+</html>
diff --git a/src/osd/winui/help/html/mameui_playing.htm b/src/osd/winui/help/html/mameui_playing.htm
new file mode 100644
index 00000000000..8444676b99b
--- /dev/null
+++ b/src/osd/winui/help/html/mameui_playing.htm
@@ -0,0 +1,136 @@
+<html>
+
+<head>
+<meta name="GENERATOR" content="Microsoft FrontPage 12.0">
+<meta name="ProgId" content="FrontPage.Editor.Document">
+<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
+<title>MameUI Playing a Game &amp; Internal Controls</title>
+<style>
+<!--
+p
+ {margin-right:0in;
+ margin-left:0in;
+ font-size:10.0pt;
+ font-family:Arial;
+ color:black}
+h1
+ {margin-top:12.0pt;
+ margin-right:0in;
+ margin-bottom:3.0pt;
+ margin-left:0in;
+ page-break-after:avoid;
+ font-size:16.0pt;
+ font-family:Arial;
+ color:windowtext;
+ font-weight:bold}
+h2
+ {margin-top:12.0pt;
+ margin-right:0in;
+ margin-bottom:3.0pt;
+ margin-left:0in;
+ page-break-after:avoid;
+ font-size:14.0pt;
+ font-family:Arial;
+ font-style:italic}
+ p.MsoNormal
+ {mso-style-parent:"";
+ margin-bottom:.0001pt;
+ font-size:10.0pt;
+ font-family:Arial;
+ margin-left:0in; margin-right:0in; margin-top:0in}
+-->
+</style>
+</head>
+
+<body background="../images/bkground.gif">
+
+<h2>Playing a Game &amp; Internal Controls</h2>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol; color: windowtext">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7.0pt; font-family: Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span>To activate mouse control or attached gamepads to use within
+games, it is necessary to toggle those options on in the Options • Default
+Options • Controllers tab.</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span>Once a game has been selected and double-clicked, MameUI will
+produce two information screens and then it will run the game.&nbsp; Since
+MameUI is
+emulating the original hardware, the software thinks it’s still in an arcade and
+is starting up for the first time in the morning.&nbsp; Initial diagnostic screens
+are run through, as well as possibly some accounting information presented to
+the arcade owner.</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span>The game should now be running its demo/attract mode.&nbsp; Insert a
+coin with the [<b>5</b>] key on the keyboard, the mappings for coin inserts are:
+player 1 [<b>5</b>], player 2 [<b>6</b>], player 3 [<b>7</b>], player 4 [<b>8</b>].&nbsp;
+Now that a coin has been inserted, start the game with the [<b>1</b>] key on the
+keyboard.&nbsp; Game start mappings are player 1 [<b>1</b>], player 2 [<b>2</b>],
+player 3 [<b>3</b>], player 4 [<b>4</b>].</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span>MameUI’s default control scheme is to use the inverted T arrow
+keys on the keyboard for directional controls, and the left [<b>CTRL</b>] key as the
+primary action button.</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span>While in a game within MameUI, the internal configuration menu
+system can be activated by pressing the [<b>TAB</b>] key.&nbsp; This will bring up
+the control options.&nbsp; These options allow remapping MameUI controls to whatever
+keyboard keys or gamepad buttons are desired.&nbsp; The Input (general) area controls the global settings, and
+the Input (this game) are the controls for the game selected.&nbsp; To change the
+mapping, select the control to change by arrowing down to it, hit the [<b>ENTER</b>]
+key and then the new desired control.&nbsp; Hit the [<b>ESC</b>] key to exit the [<b>TAB</b>]
+menu back to the game. Note: If there are multiple mouse devices attached to the
+system they can be individually configured by selecting their control in the [<strong>TAB</strong>]
+menu and moving the mouse or trackball left or right, up or down to map it.</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span>Other keys of interest while playing a game are : </p>
+<p class="MsoNormal" style="margin-left:.75in">[<b>TAB</b>] key to bring up the
+internal menu system.</p>
+<p class="MsoNormal" style="margin-left:.75in">[<b>~ TILDE</b>] the onscreen
+display.</p>
+<p class="MsoNormal" style="margin-left:.75in">[<b>Shift-p</b>] advance paused
+screen one frame at a time<br>
+[<b>p</b>] for the pause button.</p>
+<p class="MsoNormal" style="margin-left:.75in">[<b>F3</b>] resets the game.</p>
+<p class="MsoNormal" style="margin-left:.75in">[<b>F4</b>] displays the tile
+manager and the game’s
+color palette.</p>
+<p class="MsoNormal" style="margin-left:.75in">[<b>Shift-F7</b>] save current
+game state [a-z, 1-0] (See save state folder view for supported games)</p>
+<p class="MsoNormal" style="margin-left:.75in">[<b>F7</b>] load game state [a-z,
+1-0] (See save state folder view on left for supported games)</p>
+<p class="MsoNormal" style="margin-left:.75in">[<b>F9</b>] changes the frameskip
+on the fly.</p>
+<p class="MsoNormal" style="margin-left:.75in">[<b>F10</b>] toggles throttling.</p>
+<p class="MsoNormal" style="margin-left:.75in">[<b>F11</b>] toggles the speed
+display
+display.<br>
+[<b>Shift-F12</b>] toggles MNG recording, once starts, second finishes.</p>
+<p class="MsoNormal" style="margin-left:.75in">[<b>F12</b>] takes a *.png
+snapshot of the game and places it in the \MameUI\snap directory.</p>
+<p class="MsoNormal" style="margin-left:.75in">[<b>ESC</b>] exits from the game
+back to the MameUI GUI.</p>
+
+<p class="MsoNormal" style="margin-left:.75in">[<b>Left-Alt + Enter</b>] toggle
+from fullscreen mode to windowed mode.</p>
+<p class="MsoNormal" style="margin-left:.75in">[<strong>Insert</strong>] fast
+forwards with full unthrottle and highest frameskip, convenient for speeding
+through slow start-up of certain games.</p>
+
+<p class="MsoNormal" style="margin-left: .75in">&nbsp;</p>
+<p class="MsoNormal" style="margin-left: .75in"><font size="1">
+<!--webbot bot="Timestamp" s-type="EDITED" s-format="%Y-%m-%d %I:%M %p %Z" startspan -->2007-11-10 01:41 AM -0800<!--webbot bot="Timestamp" endspan i-checksum="37617" -->
+/ john iv</font></p>
+
+</body>
+
+</html> \ No newline at end of file
diff --git a/src/osd/winui/help/html/mameui_properties.htm b/src/osd/winui/help/html/mameui_properties.htm
new file mode 100644
index 00000000000..7601b7e5b05
--- /dev/null
+++ b/src/osd/winui/help/html/mameui_properties.htm
@@ -0,0 +1,1034 @@
+<html xmlns:v="urn:schemas-microsoft-com:vml"
+xmlns:o="urn:schemas-microsoft-com:office:office"
+xmlns:w="urn:schemas-microsoft-com:office:word"
+xmlns:m="http://schemas.microsoft.com/office/2004/12/omml"
+xmlns="http://www.w3.org/TR/REC-html40">
+
+<head>
+<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
+<meta name=ProgId content=Word.Document>
+<meta name=Generator content="Microsoft Word 12">
+<meta name=Originator content="Microsoft Word 12">
+<link rel=File-List href="mameui_properties_files/filelist.xml">
+<link rel=Edit-Time-Data href="mameui_properties_files/editdata.mso">
+<!--[if !mso]>
+<style>
+v\:* {behavior:url(#default#VML);}
+o\:* {behavior:url(#default#VML);}
+w\:* {behavior:url(#default#VML);}
+.shape {behavior:url(#default#VML);}
+</style>
+<![endif]-->
+<title>MameUI Properties</title>
+<!--[if gte mso 9]><xml>
+ <o:DocumentProperties>
+ <o:Author>john4</o:Author>
+ <o:LastAuthor>john4</o:LastAuthor>
+ <o:Revision>2</o:Revision>
+ <o:TotalTime>3</o:TotalTime>
+ <o:Created>2008-04-11T22:41:00Z</o:Created>
+ <o:LastSaved>2008-04-11T22:44:00Z</o:LastSaved>
+ <o:Pages>2</o:Pages>
+ <o:Words>3044</o:Words>
+ <o:Characters>17351</o:Characters>
+ <o:Lines>144</o:Lines>
+ <o:Paragraphs>40</o:Paragraphs>
+ <o:CharactersWithSpaces>20355</o:CharactersWithSpaces>
+ <o:Version>12.00</o:Version>
+ </o:DocumentProperties>
+</xml><![endif]-->
+<link rel=themeData href="mameui_properties_files/themedata.thmx">
+<link rel=colorSchemeMapping
+href="mameui_properties_files/colorschememapping.xml">
+<!--[if gte mso 9]><xml>
+ <w:WordDocument>
+ <w:TrackMoves>false</w:TrackMoves>
+ <w:TrackFormatting/>
+ <w:ValidateAgainstSchemas/>
+ <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
+ <w:IgnoreMixedContent>false</w:IgnoreMixedContent>
+ <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
+ <w:DoNotPromoteQF/>
+ <w:LidThemeOther>EN-US</w:LidThemeOther>
+ <w:LidThemeAsian>X-NONE</w:LidThemeAsian>
+ <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
+ <w:Compatibility>
+ <w:BreakWrappedTables/>
+ <w:SnapToGridInCell/>
+ <w:WrapTextWithPunct/>
+ <w:UseAsianBreakRules/>
+ <w:DontGrowAutofit/>
+ <w:SplitPgBreakAndParaMark/>
+ <w:DontVertAlignCellWithSp/>
+ <w:DontBreakConstrainedForcedTables/>
+ <w:DontVertAlignInTxbx/>
+ <w:Word11KerningPairs/>
+ <w:CachedColBalance/>
+ </w:Compatibility>
+ <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
+ <m:mathPr>
+ <m:mathFont m:val="Cambria Math"/>
+ <m:brkBin m:val="before"/>
+ <m:brkBinSub m:val="&#45;-"/>
+ <m:smallFrac m:val="off"/>
+ <m:dispDef/>
+ <m:lMargin m:val="0"/>
+ <m:rMargin m:val="0"/>
+ <m:defJc m:val="centerGroup"/>
+ <m:wrapIndent m:val="1440"/>
+ <m:intLim m:val="subSup"/>
+ <m:naryLim m:val="undOvr"/>
+ </m:mathPr></w:WordDocument>
+</xml><![endif]--><!--[if gte mso 9]><xml>
+ <w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
+ DefSemiHidden="true" DefQFormat="false" DefPriority="99"
+ LatentStyleCount="267">
+ <w:LsdException Locked="false" Priority="0" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
+ <w:LsdException Locked="false" Priority="9" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
+ <w:LsdException Locked="false" Priority="9" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="heading 2"/>
+ <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
+ <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
+ <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
+ <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
+ <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
+ <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
+ <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 1"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 2"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 3"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 4"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 5"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 6"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 7"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 8"/>
+ <w:LsdException Locked="false" Priority="39" Name="toc 9"/>
+ <w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
+ <w:LsdException Locked="false" Priority="10" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Title"/>
+ <w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
+ <w:LsdException Locked="false" Priority="11" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
+ <w:LsdException Locked="false" Priority="22" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
+ <w:LsdException Locked="false" Priority="20" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
+ <w:LsdException Locked="false" Priority="59" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Table Grid"/>
+ <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
+ <w:LsdException Locked="false" Priority="1" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
+ <w:LsdException Locked="false" Priority="60" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Shading"/>
+ <w:LsdException Locked="false" Priority="61" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light List"/>
+ <w:LsdException Locked="false" Priority="62" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Grid"/>
+ <w:LsdException Locked="false" Priority="63" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 1"/>
+ <w:LsdException Locked="false" Priority="64" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 2"/>
+ <w:LsdException Locked="false" Priority="65" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 1"/>
+ <w:LsdException Locked="false" Priority="66" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 2"/>
+ <w:LsdException Locked="false" Priority="67" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 1"/>
+ <w:LsdException Locked="false" Priority="68" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 2"/>
+ <w:LsdException Locked="false" Priority="69" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 3"/>
+ <w:LsdException Locked="false" Priority="70" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Dark List"/>
+ <w:LsdException Locked="false" Priority="71" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Shading"/>
+ <w:LsdException Locked="false" Priority="72" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful List"/>
+ <w:LsdException Locked="false" Priority="73" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Grid"/>
+ <w:LsdException Locked="false" Priority="60" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
+ <w:LsdException Locked="false" Priority="61" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light List Accent 1"/>
+ <w:LsdException Locked="false" Priority="62" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
+ <w:LsdException Locked="false" Priority="63" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
+ <w:LsdException Locked="false" Priority="64" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
+ <w:LsdException Locked="false" Priority="65" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
+ <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
+ <w:LsdException Locked="false" Priority="34" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
+ <w:LsdException Locked="false" Priority="29" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
+ <w:LsdException Locked="false" Priority="30" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
+ <w:LsdException Locked="false" Priority="66" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
+ <w:LsdException Locked="false" Priority="67" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
+ <w:LsdException Locked="false" Priority="68" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
+ <w:LsdException Locked="false" Priority="69" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
+ <w:LsdException Locked="false" Priority="70" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Dark List Accent 1"/>
+ <w:LsdException Locked="false" Priority="71" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
+ <w:LsdException Locked="false" Priority="72" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
+ <w:LsdException Locked="false" Priority="73" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
+ <w:LsdException Locked="false" Priority="60" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
+ <w:LsdException Locked="false" Priority="61" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light List Accent 2"/>
+ <w:LsdException Locked="false" Priority="62" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
+ <w:LsdException Locked="false" Priority="63" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
+ <w:LsdException Locked="false" Priority="64" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
+ <w:LsdException Locked="false" Priority="65" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
+ <w:LsdException Locked="false" Priority="66" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
+ <w:LsdException Locked="false" Priority="67" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
+ <w:LsdException Locked="false" Priority="68" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
+ <w:LsdException Locked="false" Priority="69" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
+ <w:LsdException Locked="false" Priority="70" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Dark List Accent 2"/>
+ <w:LsdException Locked="false" Priority="71" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
+ <w:LsdException Locked="false" Priority="72" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
+ <w:LsdException Locked="false" Priority="73" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
+ <w:LsdException Locked="false" Priority="60" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
+ <w:LsdException Locked="false" Priority="61" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light List Accent 3"/>
+ <w:LsdException Locked="false" Priority="62" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
+ <w:LsdException Locked="false" Priority="63" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
+ <w:LsdException Locked="false" Priority="64" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
+ <w:LsdException Locked="false" Priority="65" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
+ <w:LsdException Locked="false" Priority="66" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
+ <w:LsdException Locked="false" Priority="67" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
+ <w:LsdException Locked="false" Priority="68" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
+ <w:LsdException Locked="false" Priority="69" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
+ <w:LsdException Locked="false" Priority="70" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Dark List Accent 3"/>
+ <w:LsdException Locked="false" Priority="71" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
+ <w:LsdException Locked="false" Priority="72" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
+ <w:LsdException Locked="false" Priority="73" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
+ <w:LsdException Locked="false" Priority="60" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
+ <w:LsdException Locked="false" Priority="61" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light List Accent 4"/>
+ <w:LsdException Locked="false" Priority="62" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
+ <w:LsdException Locked="false" Priority="63" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
+ <w:LsdException Locked="false" Priority="64" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
+ <w:LsdException Locked="false" Priority="65" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
+ <w:LsdException Locked="false" Priority="66" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
+ <w:LsdException Locked="false" Priority="67" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
+ <w:LsdException Locked="false" Priority="68" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
+ <w:LsdException Locked="false" Priority="69" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
+ <w:LsdException Locked="false" Priority="70" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Dark List Accent 4"/>
+ <w:LsdException Locked="false" Priority="71" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
+ <w:LsdException Locked="false" Priority="72" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
+ <w:LsdException Locked="false" Priority="73" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
+ <w:LsdException Locked="false" Priority="60" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
+ <w:LsdException Locked="false" Priority="61" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light List Accent 5"/>
+ <w:LsdException Locked="false" Priority="62" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
+ <w:LsdException Locked="false" Priority="63" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
+ <w:LsdException Locked="false" Priority="64" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
+ <w:LsdException Locked="false" Priority="65" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
+ <w:LsdException Locked="false" Priority="66" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
+ <w:LsdException Locked="false" Priority="67" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
+ <w:LsdException Locked="false" Priority="68" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
+ <w:LsdException Locked="false" Priority="69" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
+ <w:LsdException Locked="false" Priority="70" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Dark List Accent 5"/>
+ <w:LsdException Locked="false" Priority="71" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
+ <w:LsdException Locked="false" Priority="72" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
+ <w:LsdException Locked="false" Priority="73" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
+ <w:LsdException Locked="false" Priority="60" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
+ <w:LsdException Locked="false" Priority="61" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light List Accent 6"/>
+ <w:LsdException Locked="false" Priority="62" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
+ <w:LsdException Locked="false" Priority="63" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
+ <w:LsdException Locked="false" Priority="64" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
+ <w:LsdException Locked="false" Priority="65" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
+ <w:LsdException Locked="false" Priority="66" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
+ <w:LsdException Locked="false" Priority="67" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
+ <w:LsdException Locked="false" Priority="68" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
+ <w:LsdException Locked="false" Priority="69" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
+ <w:LsdException Locked="false" Priority="70" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Dark List Accent 6"/>
+ <w:LsdException Locked="false" Priority="71" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
+ <w:LsdException Locked="false" Priority="72" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
+ <w:LsdException Locked="false" Priority="73" SemiHidden="false"
+ UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
+ <w:LsdException Locked="false" Priority="19" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
+ <w:LsdException Locked="false" Priority="21" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
+ <w:LsdException Locked="false" Priority="31" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
+ <w:LsdException Locked="false" Priority="32" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
+ <w:LsdException Locked="false" Priority="33" SemiHidden="false"
+ UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
+ <w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
+ <w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
+ </w:LatentStyles>
+</xml><![endif]-->
+<style>
+<!--
+ /* Font Definitions */
+ @font-face
+ {font-family:"Cambria Math";
+ panose-1:2 4 5 3 5 4 6 3 2 4;
+ mso-font-charset:1;
+ mso-generic-font-family:roman;
+ mso-font-format:other;
+ mso-font-pitch:variable;
+ mso-font-signature:0 0 0 0 0 0;}
+@font-face
+ {font-family:Tahoma;
+ panose-1:2 11 6 4 3 5 4 4 2 4;
+ mso-font-charset:0;
+ mso-generic-font-family:swiss;
+ mso-font-pitch:variable;
+ mso-font-signature:-520082689 -1073717157 41 0 66047 0;}
+ /* Style Definitions */
+ p.MsoNormal, li.MsoNormal, div.MsoNormal
+ {mso-style-unhide:no;
+ mso-style-qformat:yes;
+ mso-style-parent:"";
+ margin:0in;
+ margin-bottom:.0001pt;
+ mso-pagination:widow-orphan;
+ font-size:10.0pt;
+ font-family:"Arial","sans-serif";
+ mso-fareast-font-family:"Times New Roman";
+ mso-fareast-theme-font:minor-fareast;
+ color:windowtext;}
+h1
+ {mso-style-priority:9;
+ mso-style-unhide:no;
+ mso-style-qformat:yes;
+ mso-style-link:"Heading 1 Char";
+ margin-top:12.0pt;
+ margin-right:0in;
+ margin-bottom:3.0pt;
+ margin-left:0in;
+ mso-pagination:widow-orphan;
+ page-break-after:avoid;
+ mso-outline-level:1;
+ font-size:16.0pt;
+ font-family:"Arial","sans-serif";
+ mso-fareast-font-family:"Times New Roman";
+ mso-fareast-theme-font:minor-fareast;
+ color:windowtext;
+ font-weight:bold;}
+h2
+ {mso-style-priority:9;
+ mso-style-unhide:no;
+ mso-style-qformat:yes;
+ mso-style-link:"Heading 2 Char";
+ margin-top:12.0pt;
+ margin-right:0in;
+ margin-bottom:3.0pt;
+ margin-left:0in;
+ mso-pagination:widow-orphan;
+ page-break-after:avoid;
+ mso-outline-level:2;
+ font-size:14.0pt;
+ font-family:"Arial","sans-serif";
+ mso-fareast-font-family:"Times New Roman";
+ mso-fareast-theme-font:minor-fareast;
+ color:windowtext;
+ font-weight:bold;
+ font-style:italic;}
+a:link, span.MsoHyperlink
+ {mso-style-priority:99;
+ color:blue;
+ text-decoration:underline;
+ text-underline:single;}
+p
+ {mso-style-noshow:yes;
+ mso-style-priority:99;
+ mso-margin-top-alt:auto;
+ margin-right:0in;
+ mso-margin-bottom-alt:auto;
+ margin-left:0in;
+ mso-pagination:widow-orphan;
+ font-size:10.0pt;
+ font-family:"Arial","sans-serif";
+ mso-fareast-font-family:"Times New Roman";
+ mso-fareast-theme-font:minor-fareast;
+ color:black;}
+p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
+ {mso-style-noshow:yes;
+ mso-style-priority:99;
+ mso-style-link:"Balloon Text Char";
+ margin:0in;
+ margin-bottom:.0001pt;
+ mso-pagination:widow-orphan;
+ font-size:8.0pt;
+ font-family:"Tahoma","sans-serif";
+ mso-fareast-font-family:"Times New Roman";
+ mso-fareast-theme-font:minor-fareast;
+ color:windowtext;}
+span.Heading1Char
+ {mso-style-name:"Heading 1 Char";
+ mso-style-priority:9;
+ mso-style-unhide:no;
+ mso-style-locked:yes;
+ mso-style-link:"Heading 1";
+ mso-ansi-font-size:14.0pt;
+ mso-bidi-font-size:14.0pt;
+ font-family:"Cambria","serif";
+ mso-ascii-font-family:Cambria;
+ mso-ascii-theme-font:major-latin;
+ mso-fareast-font-family:"Times New Roman";
+ mso-fareast-theme-font:major-fareast;
+ mso-hansi-font-family:Cambria;
+ mso-hansi-theme-font:major-latin;
+ mso-bidi-font-family:"Times New Roman";
+ mso-bidi-theme-font:major-bidi;
+ color:#365F91;
+ mso-themecolor:accent1;
+ mso-themeshade:191;
+ font-weight:bold;}
+span.Heading2Char
+ {mso-style-name:"Heading 2 Char";
+ mso-style-noshow:yes;
+ mso-style-priority:9;
+ mso-style-unhide:no;
+ mso-style-locked:yes;
+ mso-style-link:"Heading 2";
+ mso-ansi-font-size:13.0pt;
+ mso-bidi-font-size:13.0pt;
+ font-family:"Cambria","serif";
+ mso-ascii-font-family:Cambria;
+ mso-ascii-theme-font:major-latin;
+ mso-fareast-font-family:"Times New Roman";
+ mso-fareast-theme-font:major-fareast;
+ mso-hansi-font-family:Cambria;
+ mso-hansi-theme-font:major-latin;
+ mso-bidi-font-family:"Times New Roman";
+ mso-bidi-theme-font:major-bidi;
+ color:#4F81BD;
+ mso-themecolor:accent1;
+ font-weight:bold;}
+span.BalloonTextChar
+ {mso-style-name:"Balloon Text Char";
+ mso-style-noshow:yes;
+ mso-style-priority:99;
+ mso-style-unhide:no;
+ mso-style-locked:yes;
+ mso-style-link:"Balloon Text";
+ mso-ansi-font-size:8.0pt;
+ mso-bidi-font-size:8.0pt;
+ font-family:"Tahoma","sans-serif";
+ mso-ascii-font-family:Tahoma;
+ mso-fareast-font-family:"Times New Roman";
+ mso-fareast-theme-font:minor-fareast;
+ mso-hansi-font-family:Tahoma;
+ mso-bidi-font-family:Tahoma;}
+.MsoChpDefault
+ {mso-style-type:export-only;
+ mso-default-props:yes;
+ font-size:10.0pt;
+ mso-ansi-font-size:10.0pt;
+ mso-bidi-font-size:10.0pt;}
+@page Section1
+ {size:8.5in 11.0in;
+ margin:1.0in 1.0in 1.0in 1.0in;
+ mso-header-margin:.5in;
+ mso-footer-margin:.5in;
+ mso-paper-source:0;}
+div.Section1
+ {page:Section1;}
+-->
+</style>
+<!--[if gte mso 10]>
+<style>
+ /* Style Definitions */
+ table.MsoNormalTable
+ {mso-style-name:"Table Normal";
+ mso-tstyle-rowband-size:0;
+ mso-tstyle-colband-size:0;
+ mso-style-noshow:yes;
+ mso-style-priority:99;
+ mso-style-qformat:yes;
+ mso-style-parent:"";
+ mso-padding-alt:0in 5.4pt 0in 5.4pt;
+ mso-para-margin:0in;
+ mso-para-margin-bottom:.0001pt;
+ mso-pagination:widow-orphan;
+ font-size:10.0pt;
+ font-family:"Times New Roman","serif";}
+</style>
+<![endif]--><!--[if gte mso 9]><xml>
+ <o:shapedefaults v:ext="edit" spidmax="2050"/>
+</xml><![endif]--><!--[if gte mso 9]><xml>
+ <o:shapelayout v:ext="edit">
+ <o:idmap v:ext="edit" data="1"/>
+ </o:shapelayout></xml><![endif]-->
+</head>
+
+<body bgcolor=white background="../images/bkground.gif" lang=EN-US link=blue
+vlink=purple style='tab-interval:.5in'>
+
+<div class=Section1>
+
+<h2><span style='mso-fareast-font-family:"Times New Roman"'>Default Options
+&amp; Game Properties<o:p></o:p></span></h2>
+
+<p class=MsoNormal>The default options and game properties tabs of MameUI are
+used to set the vast majority of game play parameters.&nbsp; The Game
+Properties dialogue box, accessible from the File • Properties menu item,
+shares all the tabs of the Default Options dialogue box, accessible from the
+Options • Default Options menu item.&nbsp; The Game Properties dialogue
+contains two additional tabs which give information on the game selected, and
+its current audited state.</p>
+
+<p class=MsoNormal>&nbsp;</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span
+style='font-family:Symbol;mso-no-proof:yes'><img width=11 height=11
+id="_x0000_i1043" src="../images/mame321.gif" alt="*"></span><span
+style='font-size:7.0pt;font-family:"Times New Roman","serif"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span><b><span style='color:maroon'>General Tab</span></b> : [only available
+in Game Properties dialogue] This tab provides information on the game
+selected, this information includes manufacturer name and date, driver status,
+original CPU, original sound hardware, original screen resolution and
+orientation, and number of colors.</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'>&nbsp;</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span
+style='font-family:Symbol;mso-no-proof:yes'><img width=11 height=11
+id="_x0000_i1042" src="../images/mame321.gif" alt="*"></span><span
+style='font-size:7.0pt;font-family:"Times New Roman","serif"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span><b><span style='color:maroon'>Audit Tab</span></b> : [only available in
+the Game Properties dialogue] This tab performs a ‘mini-audit’ on the game
+selected, determining its status compared to what MameUI expects.&nbsp; Status
+will be reported and missing files with CRC information will appear in the
+details view.</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'>&nbsp;</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span
+style='font-family:Symbol;mso-no-proof:yes'><img width=11 height=11
+id="_x0000_i1041" src="../images/mame321.gif" alt="*"></span><span
+style='font-size:7.0pt;font-family:"Times New Roman","serif"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span><b><span style='color:maroon'>Display Tab</span></b> : This tab allows
+the setting of numerous video options.</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'>&nbsp;</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Run in a window</b> : MameUI
+will launch the game selected in a window on the desktop, the window can be
+resized by pausing the emulation and dragging the borders.&nbsp; The resolution
+of the window can also be set in the Screen tab.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Start out maximized </b>:
+Toggling this option on ensures that when windowed mode is used, the maximum
+amount of space is used.&nbsp; Toggle this option off to play the smallest
+version of the windowed game.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Enforce aspect ratio </b>: This
+option is used in conjunction with windowed mode, it forces the aspect ratio to
+be maintained when the game is paused and the window is dragged and
+resized.&nbsp; Turn this off to create long, thin game windows, or short fat,
+etc.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Throttle </b>: This option
+prevents MameUI from running games as fast as the host CPU can go.&nbsp; Unless
+this is toggled on, a modern x86 processor will run Donkey Kong at a thousand
+times its original speed.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Rotation </b>: This drop down
+box allows MameUI to rotate the video output by 90 degrees in either
+direction.&nbsp; This setting is useful if used in conjunction with a pivoting
+monitor [the auto options], or playing games with a monitor on its side.&nbsp;
+Doing so allows vertical orientated games to be played full screen.&nbsp; The
+additional 'auto clockwise' and 'auto anti-clockwise' settings are particularly
+useful for rotating LCD monitors, these settings will force vertical games to
+one 90 degree angle or the other depending on which way the LCD pivots.<br>
+<b>Flip screen upside down </b>: This option mirrors the image vertically.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Flip screen left right </b>:
+This option mirrors the image horizontally.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Direct3D</b> : <b>Use Bilinear
+Filtering</b> : This option enables bilinear filtering on game screen
+graphics.&nbsp; 'Fuzziness' of image can be controlled by the bitmap prescaling
+option, increasing it sharpens the image.&nbsp; Leaving this unchecked produces
+the crispest output but does point filtering leading to scaling artifacts.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Direct3D</b> : <b>Version</b> :
+This option allows toggling between version 9 and version 8 of D3D.&nbsp; It's
+almost always preferable to stay with 9.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>DirectDraw</b> : <b>Stretch
+using hardware</b> : Used in conjunction with DDraw as the video mode, this
+toggle if turned off scales upwards the size of the games original native
+resolution at the same aspect ratio.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Bitmap prescaling</b> : This
+option works in conjunction with bilinear filtering.&nbsp; The higher up the
+slider, the sharper the screen output.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Gamma correction </b>:
+&nbsp;This option controls the gamma, which produces a potentially nonlinear
+black to white ramp, for the game screens. This option does not affect the artwork
+or other parts of the display. Using MameUI's in-game tilde menu [~], one can
+individually set the gamma for each game screen; this option controls the
+initial value for all visible game screens. The standard value is 1.0, which
+gives a linear ramp from black to white. Selecting lower values (down to 0.1)
+will increase the nonlinearity toward black,&nbsp; while selecting higher
+values (up to 3.0) will push the nonlinearity&nbsp; toward white. The default
+is 1.0.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Brightness correction </b>:
+This option controls the default brightness, or black level, of the game
+screens. This option does not affect the artwork or other parts of the
+display.&nbsp; Using MameUI's in-game tilde menu [~], one can individually set
+the brightness for each game screen; this option controls the initial value for
+all visible game screens. The standard value is 1.0. Selecting lower values
+(down to 0.1) will produce a darkened display, while selecting higher values
+(up to 2.0) will give a brighter display. The default is 1.0.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Contrast correction </b>:&nbsp;
+Controls the contrast, or white level, of the game screens. This option does
+not affect the artwork or other parts of the display. Using MameUI's in-game
+tilde menu [~], one can individually set the contrast for each game screen;
+this option controls the initial value for all visible game screens. The
+standard value is 1.0. Selecting lower values (down to 0.1) will produce a
+dimmer display, while selecting higher values (up to 2.0) will give a more
+saturated display. The default is 1.0.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Pause Brightness </b>: This
+option controls the screen brightness when a game is paused.</p>
+
+<p class=MsoNormal style='margin-left:.75in'>&nbsp;</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span
+style='font-family:Symbol;mso-no-proof:yes'><img width=11 height=11
+id="_x0000_i1040" src="../images/mame321.gif" alt="*"></span><span
+style='font-size:7.0pt;font-family:"Times New Roman","serif"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span><b><span style='color:maroon'>Advanced Tab</span></b> : This tab allows
+the setting of additional numerous video options.</p>
+
+<p class=MsoNormal style='margin-left:.75in'>&nbsp;</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Triple buffering </b>: This
+option controls how MameUI draws to the screen, if toggled on, it will draw to
+three buffers and cycle between them.&nbsp; This setting when toggled on can
+also help alleviate tearing that sometimes occurs in some scrolling games.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Sync to monitor refresh </b>:
+This option tells MameUI to ignore the original game’s refresh rate and sync it
+to the output monitor’s current rate.&nbsp; This can cause the game to run too
+fast if the output monitor is using 85Hz for example.&nbsp; This option is
+preferable if MameUI is used with authentic arcade monitor hardware and video
+card modes that are tweaked appropriately.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Wait for vertical sync </b>:
+This option tells MameUI to wait for the refresh period on the output monitor
+to finish before starting to draw video to the screen, this works functionally
+similarly to triple buffer but is better suited for running games in a window
+to alleviate tearing. </p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Refresh speed </b>: This option
+tells MameUI to alter the speed of the emulation for games that run at a higher
+speed than the host monitor.&nbsp; For example this should be checked if
+running Pac-Man on a fixed 60Hz LCD since Pac-Man runs at 60.60Hz.&nbsp; This
+alleviates sound hiccups as well in the previous situation.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Emulation speed </b>: This slider
+allows for the altering of the emulation speed, it can be dropped down or
+increased by three [or to 100 in the \ini.] </p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Frame skipping </b>: These
+settings allow MameUI to skip frames of animation when playing games, if the
+host CPU is not fast enough to run the game.&nbsp; Optimally this should be
+toggled off and 'draw every frame' selected.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Full screen gamma</b> : This
+option is similar to the gamma correction in the display tab but works on all
+graphic elements of the screen including the UI.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Full screen brightness </b>:
+This option is similar to the brightness correction in the display tab but
+works on all graphic elements of the screen including the UI.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Full screen contrast</b> : This
+option is similar to the contrast correction in the display tab but works on
+all graphic elements of the screen including the UI.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Effect</b> : Starting with
+version .107 simulated arcade monitor effects are handled by the overlay of
+*.png masks on the game.&nbsp; The *.png files reside in the \artwork directory
+and are simple patterns creatable and editable in applications like
+Photoshop.&nbsp; If scan lines are desired and a very high resolution is being
+used [1280x1024 or above] the Scanlines75x4 item is suggested.&nbsp; For games
+with artwork whose playfields are smaller on screen as the results of bezels, it's
+recommended to use Scanlines75x3 or Scanlines75x2.</p>
+
+<p class=MsoNormal style='margin-left:.75in'>&nbsp;</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span
+style='font-family:Symbol;mso-no-proof:yes'><img width=11 height=11
+id="_x0000_i1039" src="../images/mame321.gif" alt="*"></span><span
+style='font-size:7.0pt;font-family:"Times New Roman","serif"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span><b><span style='color:maroon'>Screen Tab</span></b> : This tab allows
+the alteration of the various screen output settings.</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'>&nbsp;</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Number of screens </b>:<b> </b>This
+slider controls the number of screens MameUI will draw.&nbsp; In windowed mode up
+to four different output windows can be created of varying sizes, shapes,
+etc.&nbsp; In full screen mode the number of screens can match the physical
+number of monitors connected to the host system.&nbsp; This allows playing
+multi-monitor arcade games like Punch-Out or similar on 2 physical computer
+monitors in dual head mode.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Screen </b>: This option allows
+the choice of the physical monitor to use in conjunction with number of screens
+and screennumber.&nbsp; The drop down is populated by the \\.\DISPLAY1 and/or \\.\DISPLAY2
+and so forth.&nbsp; Leaving this toggle to Auto will have MameUI attempt to
+order the game screens as it sees fit, for Punch-Out for example it will place
+the main fighting screen on \\.\DISPLAY1 and the status/display screen on
+secondary monitor \\.\DISPLAY2. </p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Aspect Ratio </b>: Allows
+control over the physical aspect ratio of the physical monitor for each
+screen.&nbsp; If running full screen and auto aspect ratio is <b>off</b>, then
+switch resolutions to fit must be toggled on to work.&nbsp; Typically this
+should be set to autoselect unless weird shaped windows for game play are
+desired.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>View</b> : This drop down
+allows the selection of the default view of the in-game display.&nbsp; This can
+be auto which is effectively 4:3 for horizontal games or 3:4 for vertical
+games, native, which is the game's original native resolution, or cocktail
+which is duplicated view for 2 people playing the game on opposite sides of a
+cocktail cabinet.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Screennumber</b> : This drop
+down is populated based on the slider setting of number of screens to its
+left.&nbsp; Each item in the screennumber drop down can be individually
+tailored with screen, resolution, aspect ratio, and view. Thus it is possible
+to have elaborate combinations for game play, for example.&nbsp; Number of
+screens 3, run in windowed mode, have screen0 go to the secondary \\.\DISPLAY2,
+running in 320x240 resolution at a color depth of 16bpp with a refresh of 75Hz,
+screen1 go to primary display \\.\DISPLAY1, run at 640x480x32@60 and use the
+cocktail view, etc.&nbsp; Each item in the Screennumber drop down will populate
+its own settings and maintain those settings until returned to a default.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Resolution</b> : These options
+control the size and refresh rate of the screennumbers.&nbsp; In windowed mode
+only the resolution is selectable.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Switch resolutions to fit</b> :
+This toggle must be <b>on</b> if any of the resolution choices are altered away
+from auto in full screen mode.&nbsp; It does not impact windowed mode.</p>
+
+<p class=MsoNormal style='margin-left:.75in'>&nbsp;</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span
+style='font-family:Symbol;mso-no-proof:yes'><img width=11 height=11
+id="_x0000_i1038" src="../images/mame321.gif" alt="*"></span><span
+style='font-size:7.0pt;font-family:"Times New Roman","serif"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span><b><span style='color:maroon'>Sound Tab</span> </b>: This tab allows for
+setting the sound options.</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'>&nbsp;</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Enable sound and sound CPUs </b>:
+This setting toggles sound on or off in games.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Use samples </b>: This setting
+allows MameUI to utilize samples for games which do not have their sound
+hardware emulated, or were using analogue circuitry.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Sample Rate </b>: This setting
+tells MameUI at what rate to output sound, the higher, the better.&nbsp;
+Lowering this setting can also result in faster performance on lower end
+machines.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Volume attenuation </b>: This
+setting allows MameUI to set the initial volume level, the default is 0dB.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Audio latency </b>: This slider
+allows the adjustment of the amount of latency built into the audio
+streaming.&nbsp; Increasing the slider to the right on faster machines can help
+alleviate some desync and scratchiness in the sound on some configurations.</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'>&nbsp;</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span
+style='font-family:Symbol;mso-no-proof:yes'><img width=11 height=11
+id="_x0000_i1037" src="../images/mame321.gif" alt="*"></span><span
+style='font-size:7.0pt;font-family:"Times New Roman","serif"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span><b><span style='color:maroon'>Controllers Tab</span> </b>: This tab
+allows for setting the game controller options.</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'>&nbsp;</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Enable joystick input </b>:
+This setting tells MameUI to utilize any currently connected joysticks.&nbsp;
+MameUI will interrogate the game controllers control panel and use ID#1 and up.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Analog joystick deadzone</b> :
+This setting controls how MameUI translates analog input to games that require
+digital input.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Enable lightgun input</b> :
+This setting tells MameUI to utilize a lightgun for target/shooting games that
+require analogue control, like Crossbow, Police Trainer, Rev X, etc. and will
+only be available on non-XP based systems.&nbsp; If using XP then mouse input
+should be toggled on to allow mapping of the lightgun functions in the in-game
+[<b>TAB</b>] menu.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Offscreen shots reload</b> :
+This option if checked will internally remap the second mouse button and allow
+it to be used for simulated 'reloading' in gun games that require it.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Dual lightguns</b> : This is a
+legacy switch for non-XP systems which activates code to handle internal
+mapping of the second light gun connected to the system.&nbsp; If WinXP is used
+this is not required and is grayed out, the second gun is mapped like a
+joystick or mouse in the in-game [<b>TAB</b>] menu.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Enable mouse input </b>: This
+setting tells MameUI to utilize the mouse in games that require analogue
+control methods.&nbsp; On XP systems the mouse toggle should be on if a
+lightgun is to be utilised.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Enable steadykey support </b>:
+This option tells MameUI to use a different keyboard handling routine that
+makes it easier to register simultaneous key presses for games that require it
+for special moves [Street Fighter II, etc.].&nbsp; However it can produce more
+sluggish results in other games.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Default input layout </b>: This
+drop down menu allows MameUI to choose between multiple key mappings, including
+keyboard mapping for various third-party control panels.&nbsp; It will also
+display user defined controller mappings, if created in the \ctrlr
+directory.&nbsp; Various arcade game controller companies produce custom made
+configuration files for their setups; these *.cfg files need to go in the
+\MameUI\ctrlr folder to be recognized in the MameUI controllers tab.&nbsp;
+These files are the responsibility of the controller companies themselves and
+are not included or endorsed by MameUI, they can typically be found at the
+companies’ web sites.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><strong><span style='font-family:
+"Arial","sans-serif"'>Multiple keyboards</span></strong> : Enabling this
+checkbox tells MameUI to allow mapping to different physical keyboards that may
+be attached to the host system, this allows rather esoteric options like
+multiple keyboards for games like 2 player Keyboard Mania or Typing of the Dead
+etc.&nbsp; If left off MameUI maps all keyboard controls to all keyboard
+devices.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><strong><span style='font-family:
+"Arial","sans-serif"'>Multiple mice</span></strong> : Enabling this checkbox
+tells MameUI to allow mapping to different physical mice devices.&nbsp; Useful
+for systems that have spinners, trackballs, main system mice etc.&nbsp; If left
+off MameUI maps all mice controls to all mouse devices.</p>
+
+<p class=MsoNormal style='margin-left:.75in'>&nbsp;</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span
+style='font-family:Symbol;mso-no-proof:yes'><img width=11 height=11
+id="_x0000_i1036" src="../images/mame321.gif" alt="*"></span><span
+style='font-size:7.0pt;font-family:"Times New Roman","serif"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span><b><span style='color:maroon'>Controller Mapping Tab</span> </b>: This
+tab allows choosing which analogue device connected to the system for MameUI to
+map a game's internal analogue controls to.&nbsp; These options should be used
+in lieu of the global 'mouse' setting which can conflict with attached
+joysticks/gamepads.</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'>&nbsp;</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span
+style='font-family:Symbol;mso-no-proof:yes'><img width=11 height=11
+id="_x0000_i1035" src="../images/mame321.gif" alt="*"></span><span
+style='font-size:7.0pt;font-family:"Times New Roman","serif"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span><b><span style='color:maroon'>Miscellaneous Tab</span> </b>: This tab
+allows for setting additional options.</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'>&nbsp;</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Enable game cheats </b>: This
+setting if toggled on allows MameUI to use external cheat.dat files.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Error log (for developers) </b>:
+This setting if toggled on produces an error log of illegal memory accesses.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Sleep when possible </b>: This
+setting if toggled on allows MameUI to be more multitasking friendly in that it
+does not use as much processor time.&nbsp; If this setting is toggled off
+MameUI will utilize 100% of the CPU for playing games.&nbsp; Some machines slow
+down dramatically if this setting is toggled on, particularly laptops.&nbsp;
+This maps to the -sleep option in Mame.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Skip game info</b> : If this
+options is on, MameUI will immediately launch a game without information
+screens.&nbsp; However screens regarding problems in the drivers will still be
+shown [missing sound, unemulated protection, problems with video etc.].</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Save game state on exit</b> : This
+toggle will allow MameUI to automatically save the current machine state when
+the game is exited with the ESC key.&nbsp; As a result when the game is
+re-launched it's like the machine was never turned off.&nbsp; This feature
+allows older games to maintain their hi-scores indefinitely where it wasn't
+originally supported.&nbsp; The files are stored in the MameUI\sta
+directory.&nbsp; The list of games that support save states is present in the
+left hand folder view pane of the UI as 'Save State'.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Thread Priority slider</b> :
+Increasing the Windows thread priority for MameUI giving it more CPU and
+resources slices, can negatively impact other running processes.&nbsp; Using
+setting 1 sets it to real-time which interferes with keyboard and joystick
+controls as well as other running apps.&nbsp; Setting 1 is not recommended as a
+result.&nbsp; Some Dells and other laptop computers may require setting slider
+to -15 to get keyboard control working properly.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Multi-threaded rendering </b>:
+This toggle allows multi-core or multi-chip or HyperThreaded machines to pass
+the final video blit off to a second thread.&nbsp; This can lead up to a 40%
+increase in unthrottled FPS using D3D in GPU limited games.&nbsp; However it
+does not have a real world effect on games that are CPU bound, like the heavy
+seattle.c, or vegas.c games.&nbsp; Unless in possession of one of these types
+of machines, this should be toggled off to avoid potential slowdowns.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Use additional game artwork </b>:
+This setting if toggled on allows MameUI to utilize the external artwork
+packages available at <a href="http://www.mameworld.net/mrdo" target="_blank">Mr.
+Do’s site</a> for display in games like Armor Attack, Discs of Tron, Lunar
+Lander, Warrior, etc.&nbsp;The artwork packages are placed in the \artwork
+directory.&nbsp; Each element of the artwork package can be toggled: bezel,
+overlay, and background.&nbsp; </p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Crop Artwork</b> : Selecting
+the crop artwork toggle will shrink the scene down to the games original
+dimensions, cropping any available art pieces.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>BIOS</b> : This drop down
+allows the use of a variety of different supported NeoGeo or Sega BIOS
+files.&nbsp; The option will only be available when altering the driver family
+via the source folder view on the left pane, or individual games in the driver
+family.</p>
+
+<p class=MsoNormal style='margin-left:.75in'>&nbsp;</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'><span
+style='font-family:Symbol;mso-no-proof:yes'><img border=0 width=11 height=11
+id="_x0000_i1034" src="../images/mame321.gif" alt="*"></span><span
+style='font-size:7.0pt;font-family:"Times New Roman","serif"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span><b><span style='color:maroon'>Vector Tab</span> </b>: This tab allows
+for setting additional options for games that originally utilized a vector
+monitor instead of a raster monitor. [Asteroids, Battlezone, Armor Attack,
+etc.]</p>
+
+<p class=MsoNormal style='margin-left:.75in;text-indent:-.25in'>&nbsp;</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Draw antialiased vectors </b>:
+This setting if toggled on tells MameUI to draw vector lines with an additional
+pleasing antialiased look.</p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Beam width</b> : This slider
+allows MameUI to set the beam width on the vector lines drawn, increasing it
+creates wider vectors. </p>
+
+<p class=MsoNormal style='margin-left:.75in'><b>Flicker</b> : This slider tells
+MameUI to artificially create a flicker effect on the vector lines.</p>
+
+<p class=MsoNormal style='margin-left:.75in'>&nbsp;</p>
+
+<p class=MsoNormal><span style='mso-no-proof:yes'><img border=0 width=250
+height=344 id="_x0000_i1033" src="../images/1.jpg"></span><span
+style='mso-no-proof:yes'><img border=0 width=250 height=344 id="_x0000_i1032"
+src="../images/2.jpg"></span><span style='mso-no-proof:yes'><img border=0
+width=250 height=344 id="_x0000_i1031" src="../images/3.jpg"></span><span
+style='mso-no-proof:yes'><img border=0 width=250 height=344 id="_x0000_i1030"
+src="../images/4.jpg"></span><span style='mso-no-proof:yes'><img border=0
+width=250 height=344 id="_x0000_i1029" src="../images/5.jpg"></span><span
+style='mso-no-proof:yes'><img border=0 width=250 height=344 id="_x0000_i1028"
+src="../images/6.jpg"></span><span style='mso-no-proof:yes'><img border=0
+width=250 height=344 id="_x0000_i1027" src="../images/7.jpg"></span><span
+style='mso-no-proof:yes'><img border=0 width=250 height=344 id="_x0000_i1026"
+src="../images/8.jpg"></span></p>
+
+<p class=MsoNormal style='margin-left:.75in'>&nbsp;</p>
+
+<p class=MsoNormal><!--webbot bot="Timestamp" s-type="EDITED" s-format="%Y-%m-%d %I:%M %p %Z" startspan -->2007-11-10 01:41 AM -0800<!--webbot bot="Timestamp" endspan i-checksum="37617" --><span
+style='font-size:7.5pt'>/ john iv</span></p>
+
+</div>
+
+</body>
+
+</html>
diff --git a/src/osd/winui/help/html/mameui_settings.htm b/src/osd/winui/help/html/mameui_settings.htm
new file mode 100644
index 00000000000..0224c694af2
--- /dev/null
+++ b/src/osd/winui/help/html/mameui_settings.htm
@@ -0,0 +1,96 @@
+<html>
+
+<head>
+<meta name="GENERATOR" content="Microsoft FrontPage 12.0">
+<meta name="ProgId" content="FrontPage.Editor.Document">
+<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
+<title>MameUI Settings</title>
+<style>
+<!--
+p
+ {margin-right:0in;
+ margin-left:0in;
+ font-size:10.0pt;
+ font-family:Arial;
+ color:black}
+h1
+ {margin-top:12.0pt;
+ margin-right:0in;
+ margin-bottom:3.0pt;
+ margin-left:0in;
+ page-break-after:avoid;
+ font-size:16.0pt;
+ font-family:Arial;
+ color:windowtext;
+ font-weight:bold}
+h2
+ {margin-top:12.0pt;
+ margin-right:0in;
+ margin-bottom:3.0pt;
+ margin-left:0in;
+ page-break-after:avoid;
+ font-size:14.0pt;
+ font-family:Arial;
+ font-style:italic}
+ p.MsoNormal
+ {mso-style-parent:"";
+ margin-bottom:.0001pt;
+ font-size:10.0pt;
+ font-family:Arial;
+ margin-left:0in; margin-right:0in; margin-top:0in}
+-->
+</style>
+<base target="_blank">
+</head>
+
+<body background="../images/bkground.gif">
+
+<h2>MameUI Settings</h2>
+
+<h3><font face="Arial">Suggested MameUI Default Settings</font></h3>
+<p style="text-indent: -.25in; margin-left: .75in; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt">
+<span style="font-family: Symbol; color: windowtext">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7.0pt; font-family: Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span>
+<span style="font-style: normal; font-variant: normal; font-weight: normal; color:windowtext">
+Advanced / Triple Buffering ensures there should be no 'tearing' of screen
+images if the frame rate doesn't exactly match the monitor screen refresh in
+full-screen mode.&nbsp;
+</span>Particularly evident in vertical scrolling games.&nbsp; This however can
+lead to sound stuttering on games that are above 60Hz [early Namco games like
+Pac-Man, etc.] if the user's monitor is
+not capable of being driven at a higher refresh rate, like modern LCDs.&nbsp; If
+a modern LCD fixed at 60Hz is in use, toggle on the Advanced • Refresh game
+speed. </p>
+<p style="text-indent: -.25in; margin-left: .75in; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt">
+<span style="font-family: Symbol; color: windowtext">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7.0pt; font-family: Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span>
+<span style="font-style: normal; font-variant: normal; font-weight: normal; color:windowtext">
+Simulated monitor effects are now handled via *.png files in the \artwork
+directory.&nbsp; They are accessed in Advanced / Select Effect.&nbsp;
+Scanlines75x4 provides a 75% black line every four pixel rows.</span></p>
+<p style="text-indent: -.25in; margin-left: .75in; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt">
+<span style="font-family: Symbol; color: windowtext">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7.0pt; font-family: Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span>Bitmap prescaling in Display is the new control for determining
+how fuzzy or sharp the bilinear filtering of D3D is.&nbsp; Increasing this
+number sharpens the game pixels.</p>
+<h3>
+<img border="0" src="../images/1.jpg"><img border="0" src="../images/2.jpg"><img border="0" src="../images/3.jpg"><img border="0" src="../images/4.jpg"><img border="0" src="../images/5.jpg"><img border="0" src="../images/6.jpg"><img border="0" src="../images/7.jpg"><img border="0" src="../images/8.jpg"></h3>
+<h3>
+<img border="0" src="../images/int.jpg" width="500" height="347"></h3>
+<p style="text-indent: -.25in; margin-left: .75in; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt">
+</p>
+
+<p style="text-indent: -.25in; margin-left: .75in; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt">
+&nbsp;</p>
+
+<p style="margin-left: 0; margin-right: 0in; margin-top: 0in; margin-bottom: 3.75pt">
+<font size="1">
+<!--webbot bot="Timestamp" s-type="EDITED" s-format="%Y-%m-%d %I:%M %p %Z" startspan -->2007-11-10 01:41 AM -0800<!--webbot bot="Timestamp" endspan i-checksum="37617" -->
+/ john iv</font></p>
+
+</body>
+
+</html> \ No newline at end of file
diff --git a/src/osd/winui/help/html/mameui_support.htm b/src/osd/winui/help/html/mameui_support.htm
new file mode 100644
index 00000000000..0049b964cb2
--- /dev/null
+++ b/src/osd/winui/help/html/mameui_support.htm
@@ -0,0 +1,739 @@
+<html xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office">
+
+<head>
+<style type="text/css">
+div.Section1
+ {page:Section1;}
+ h1
+ {margin-top:12.0pt;
+ margin-right:0in;
+ margin-bottom:3.0pt;
+ margin-left:0in;
+ page-break-after:avoid;
+ font-size:16.0pt;
+ font-family:"Arial","sans-serif";
+ color:windowtext;
+ font-weight:bold;
+}
+p
+ {margin-right:0in;
+ margin-left:0in;
+ font-size:10.0pt;
+ font-family:"Arial","sans-serif";
+ color:black;
+}
+a:link
+ {color:blue;
+ text-decoration:underline;
+ text-underline:single;
+}
+</style>
+</head>
+
+<body style="background-image: url('../images/bkground.gif')">
+
+<div class="Section1">
+ <h1 style="mso-margin-bottom-alt: auto"><span style="COLOR: black">MameUI
+ Troubleshooting [&amp; Tips]<o:p></o:p></span></h1>
+ <p style="MARGIN-TOP: 0in">MameUI [previously Mame32] has been in development since 1997.<span style="mso-spacerun: yes">&nbsp;
+ </span>It is mature, complex, and robust.&nbsp; However, since the Mame
+ project itself is a documentation effort, and development is continuous,
+ there will be times when changes to the core program effect MameUI.&nbsp;
+ When problems do occur with a specific game in a specific version of MameUI,
+ a previous version of MameUI may be used.&nbsp; </p>
+ <p style="MARGIN-TOP: 0in">MameUI is now an integrated GUI front end which
+ passes user input from the GUI to the
+ <b style="mso-bidi-font-weight: normal"><a href="http://www.mamedev.org/">
+ <span style="COLOR: black">Mame</span></a></b> engine/core.<span style="mso-spacerun: yes">&nbsp;
+ </span>Thus, any problems that occur in the
+ <b style="mso-bidi-font-weight: normal"><a href="http://www.mamedev.org">
+ <span style="COLOR: black">Mame</span></a></b> engine will be inherited by
+ MameUI.&nbsp; Prior to <b>
+ <a href="http://www.mameworld.info/ubbthreads/postlist.php?Cat=&amp;Board=mameui">
+ <span style="COLOR: black">reporting problems</span></a> </b>
+ <span style="mso-bidi-font-weight: bold">against MameUI</span>, verify that
+ the issue is not a known, core defect in
+ <b style="mso-bidi-font-weight: normal"><a href="http://www.mamedev.org/">
+ <span style="COLOR: black">Mame</span></a></b>.&nbsp; The <b>
+ <a target="_blank" href="http://mametesters.org/mantis/my_view_page.php">
+ <span style="COLOR: black">Mametesters.org</span></a></b> site is designed
+ to track and report bugs in the baseline
+ <b style="mso-bidi-font-weight: normal"><a href="http://www.mamedev.org/">
+ <span style="COLOR: black">Mame</span></a></b> version.&nbsp; To find if a
+ problem plagues the game in question, do an
+ <b style="mso-bidi-font-weight: normal">alt-enter</b> on the game and note
+ its driver/source name at the bottom of the general properties tab; then
+ search the Mametesters’ bug database.<span style="mso-spacerun: yes">&nbsp;
+ </span>The current list of known MameUI specific issues and defect tracking
+ is available at <b>
+ <a target="_blank" href="http://mameui.info//MameUI_Bugs.xls">
+ <span style="COLOR: black">MameUI</span></a></b>.&nbsp; &nbsp;</p>
+ <p style="BACKGROUND: white; MARGIN: 0in 0in 5pt 0.25in"><strong>
+ <span style="FONT-SIZE: 12pt; FONT-FAMILY: 'Arial','sans-serif'">ROMs and
+ CHDs Related Topics</span></strong><span style="FONT-SIZE: 12pt"><o:p></o:p></span></p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l5 level1 lfo2; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>Utilization of an external ROMs management utility like
+ <b style="mso-bidi-font-weight: normal"><a href="http://www.clrmame.com/">
+ <span style="COLOR: black">Clrmame</span></a></b> is recommended for repair
+ and identification of damaged or incomplete sets.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l5 level1 lfo2; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>If receiving missing ROMs error messages when
+ attempting to run a game, secondary click on the game in the list and choose
+ properties, do an audit on that game [or use <b>Alt-A</b>].<span style="mso-spacerun: yes">&nbsp;
+ </span>The audit will determine which files are missing from the ROMset
+ currently being played.<span style="mso-spacerun: yes">&nbsp; </span>MameUI
+ will not run a game which fails its internal audit.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l5 level1 lfo2; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>Mame is an ongoing documentation project. Sometimes old
+ ROM sets are found to have miss-dumped, missing, or damaged ROMs, which need
+ to be replaced.&nbsp; As new versions of Mame are released, the Mame
+ developers add support for these new iterations of ROMs, supplanting or
+ renaming the old supported versions.<span style="mso-spacerun: yes">&nbsp;
+ </span>Thus, often, older versions of ROMs which did work in older versions
+ of MameUI, will <u>not</u> work with newer versions of MameUI because they
+ are now read as incomplete or wrong.<span style="mso-spacerun: yes">&nbsp;
+ </span>MameUI will not play the game in question until the updated ROMs are
+ utilized.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l5 level1 lfo2; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>MameUI utilizes the idea of a parent / clone
+ relationship for its games.&nbsp; If trying to play a clone or a bootleg of
+ a game, MameUI will need the ROMs for the clone game, <b>and</b> the parent
+ set.&nbsp; MameUI indicates the parent set of a clone at the bottom of the
+ game’s properties tab, or more easily in grouped view, View \ Grouped.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l5 level1 lfo2; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>MameUI utilizes the idea of having single zip files to
+ house the BIOS files for a large number of similar games.<span style="mso-spacerun: yes">&nbsp;
+ </span>The NeoGeo games for example, share upwards of ten BIOS files in
+ every game.&nbsp; Mame will look to neogeo.zip as the BIOS zip, if this file
+ is freestanding along with the other NeoGeo games, it will use it.
+ Otherwise, MameUI expects all the BIOS files in every NeoGeo game’s zip
+ file. DECO cassette, PGM, and Playchoice are some examples of other BIOS
+ games.&nbsp; An error message will occur if the BIOS files are not present
+ and those games are run.<span style="mso-spacerun: yes">&nbsp; </span>
+ Occasionally, new ROMs will need to be added to the BIOS packages
+ themselves, this occurred recently with the ‘ng-lo.rom’ and then 6 new
+ regional BIOSes in the neogeo.zip. MameUI will not audit a game as correct
+ without all the BIOS files with the correct CRC, while it may however be
+ possible to play the game after an error message.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l5 level1 lfo2; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>Games that support .CHD [compressed hunks of data]
+ images [Max Force, Killer Instinct I &amp; II, Area 51, Vicious Circle, War
+ Gods, beatmania games, and items in the CHD folder view on the left pane]
+ have to have their ROMs and .CHD files in a very specific directory
+ structure. The <b style="mso-bidi-font-weight: normal">single</b> large .CHD
+ file needs to go in the \ROMs\gamename\ directory, and have the *.CHD
+ extension, e.g. \ROMs\area51\area51.chd.<span style="mso-spacerun: yes">&nbsp;
+ </span>These games also have ROMs, these go one level up in the \ROMs folder
+ proper like any other game.<span style="mso-spacerun: yes">&nbsp; </span>So
+ in the end two files should exist for these games one *.zip in the \ROMs
+ folder and the *.chd in a sub-directory named for the game.<span style="mso-spacerun: yes">&nbsp;
+ </span></p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l5 level1 lfo2; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span><b>F5 </b>/ View • Refresh in the GUI. (Do this anytime
+ ROMs are altered, renaming, etc.)</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l5 level1 lfo2; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>If games are not displaying in the game list, ensure
+ the appropriate folder view on the far left is toggled, i.e. 'all games' and
+ it doesn't have filtering on it to stop the display of the game being
+ searched for.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l5 level1 lfo2; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>Use the Options • Reset to default menu choice and
+ check all of the items, restart MameUI.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l5 level1 lfo2; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>Final option, manually delete the MameUI32/64.ini and the
+ Mame.ini file in the \ini directory.</p>
+ <p style="BACKGROUND: white; MARGIN: 0in 0in 5pt 0.25in"><strong>
+ <span style="FONT-SIZE: 12pt; FONT-FAMILY: 'Arial','sans-serif'">Crash
+ Related Topics</span></strong><span style="FONT-SIZE: 12pt"><o:p></o:p></span></p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l3 level1 lfo4; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>Delete the \cfg\*.CFG, \diff\*.DIF, \ini\*.INI, or
+ \nv\*.NV files for the game that's crashing.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l3 level1 lfo4; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>Check to see that the zip file is valid and that it's
+ not corrupt or read-only.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l3 level1 lfo4; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>Verify the presence of the \ini directory under
+ MameUI.exe’s location.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l3 level1 lfo4; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>If versions of MameUI prior to .66 had been installed
+ on the system, verify that the old registry key has been deleted with
+ regedit.exe. HKEY_CURRENT_USER/Software/Freeware/Mame32</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l3 level1 lfo4; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>If crashing during an audit or an [<b>F5</b>] refresh,
+ it could be a corrupt .zip file. &nbsp;Extract it and re-zip. Pkunzip -t *.zip.
+ Note the file that dies during the audit and concentrate on that one. Also
+ verify that if zip files are not used, that the folder is not empty, or
+ contains partial or damaged ROMs.<span style="mso-spacerun: yes">&nbsp;
+ </span>Utilization of an external ROMs management utility like
+ <b style="mso-bidi-font-weight: normal"><a href="http://www.clrmame.com/">
+ <span style="COLOR: black">Clrmame</span></a></b> is recommended for repair
+ and identification of damaged sets.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l3 level1 lfo4; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>If seeing crashes or weird screen coloration, try
+ disabling running background apps [in Win98, use msconfig.exe], Norton
+ Crashguard, PnP programs like Kaaza, eDonkey, LimeWire, popup killers,
+ viruscans, MS Office Fast Find, the Microsoft Office Bar, Intellimouse, even
+ IE subscription updates, etc. Try moving MameUI away from compressed
+ [DriveSpace, DoubleSpace, stacker] drives.&nbsp; IntelliMouse and Office
+ Toolbars have been known to cause conflicts.<span style="mso-spacerun: yes">&nbsp;
+ </span>Also disable items in the system tray, like the CD player, etc.&nbsp;
+ It may also be necessary to download and install the latest version of
+ DirectX from Microsoft to prevent some errors.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l3 level1 lfo4; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>If MameUI crashes with an access violation it may be
+ the DEP (Data Execution Prevention) setting on that machine.<span style="mso-spacerun: yes">&nbsp;
+ </span>Add MameUI to the exception list in Control Panel / System / Advanced
+ / DEP.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l3 level1 lfo4; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>In some instances games may fail to start if the
+ installed directory path contains a large number of characters and spaces,
+ to alleviate this, install MameUI and its support directory structure into a
+ shorter path name, i.e. c:\MameUI\.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l3 level1 lfo4; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>MameUI may fail to launch its games in situations where
+ an errant, non-DX compliant, or badly written gamepad USB adapter
+ driver/software is used.<span style="mso-spacerun: yes">&nbsp; </span>This
+ includes some cheap Playstation, SNES, U64 converters.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l3 level1 lfo4; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>Games may fail to start if a video cards DirectX driver
+ is flakey, utilise an earlier one to test or re-install DirectX.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l3 level1 lfo4; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>Some recent viruses which attach to .exes will cause
+ page faults and access violations in MameUI when it's run.&nbsp; Use an
+ anti-virus check and verify MameUI is not infected.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l3 level1 lfo4; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>Odd behaviour may be exhibited in NT based systems if
+ attempting to run games while security/permissions settings do not allow it
+ or the user is not an administrator or member of the administrator’s group.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l3 level1 lfo4; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>Some anti-virus packages may slow down navigation
+ within the MameUI directory.<span style="mso-spacerun: yes">&nbsp; </span>
+ These are false positives and the anti-virus vendors should update their
+ virus dat signatures.<span style="mso-spacerun: yes">&nbsp; </span>It may
+ also be possible to exclude the MameUI.exe from real-time scanning as a
+ workaround.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l3 level1 lfo4; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>In the event of MameUI not launching a game and just
+ sitting there, try placing the entire MameUI directory and its
+ sub-directories including \ROMs into a more simple path, like c:\MameUI
+ instead of &quot;c:\Games for Fun\MameUI Goes Here\&quot;.<span style="mso-spacerun: yes">&nbsp;
+ </span>Simplify the path.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l3 level1 lfo4; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>On rare occasions malformed or damaged *.dat files
+ [history.dat, mameinfo.dat, cheat.dat] can cause MameUI to error on startup
+ when it tries to read them.<span style="mso-spacerun: yes">&nbsp; </span>
+ Remove those files individually to check for the one causing the crash.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l3 level1 lfo4; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>With the move to XML based Controller *.cfg files in
+ the .8x era it is necessary to remove the old \Ctrlr\*.ini files and use
+ their new *.cfg counterparts, otherwise MameUI may launch games then
+ immediately return to the GUI.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l3 level1 lfo4; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>Use the Options • Reset to default menu choice and
+ check all of the items, restart MameUI.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l3 level1 lfo4; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>Final option, manually delete the MameUI32/64.ini and the
+ Mame.ini file in the \ini directory.</p>
+ <p style="BACKGROUND: white; MARGIN: 0in 0in 5pt 0.25in"><strong>
+ <span style="FONT-SIZE: 12pt; FONT-FAMILY: 'Arial','sans-serif'">Performance
+ Related Topics [incl. sound scratchiness and stuttering]</span></strong><span style="FONT-SIZE: 12pt"><o:p></o:p></span></p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo6; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>MameUI will start to crackle, scratch, or echo if the
+ game running is too taxing for the processor in use. This can be visually
+ confirmed by turning on FPS display with [<b>F11</b>], and frame skip to
+ auto with [<b>F8</b>].&nbsp; If the FPS dips anywhere or frame skipping
+ rises anywhere during the game play, the game is maxing out the CPU and
+ sound breakup could occur.<span style="mso-spacerun: yes">&nbsp; It is also
+ possible to determine if the host CPU can run the game at 100% by
+ unthrottling the emulation with the [F10] key, if the CPU can do it, it will
+ run the game faster than 100%.&nbsp; </span>If
+ upgrading machine components, provide MameUI with as much hardware as
+ possible; a faster CPU makes the most difference, followed by video card,
+ and RAM.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo6; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>MameUI will start to 'skip' sound on games that run
+ slightly over the host monitor refresh rate in full-screen mode with
+ triplebuffer.&nbsp; For example, Pac-Man and other early Namco games run at
+ 60.60Hz and if they are run on a fixed 60Hz LCD monitor using triplebuffer
+ they will skip since the emulation is outpacing the monitor. In this
+ instance it is necessary to toggle on the 'Refresh Speed' switch in the
+ Options • Default Options • Advanced tab.&nbsp; This issue can also be
+ overcome by running the game in windowed mode.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo6; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>As Mame has continued development, infrastructure and
+ accuracy has improved.<span style="mso-spacerun: yes">&nbsp; </span>As such,
+ the optimization point of the games has shifted so that older games may be
+ slower unthrottled overall than when run on earlier versions.<span style="mso-spacerun: yes">&nbsp;
+ </span>For example, in version .36 Donkey Kong may have run unthrottled at
+ 1900 FPS, but in .77 it runs 1500 FPS.<span style="mso-spacerun: yes">&nbsp;
+ Thus older machines [P3 and prior] will continue to have trouble playing the
+ same games as earlier versions of Mame.&nbsp; M</span>odern machines should have no problem running these
+ early 80's games at their intended ~60 FPS rate.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo6; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>Periodically, speed-up hacks in the core code will be
+ removed to provide more accurate emulation of the games.<span style="mso-spacerun: yes">&nbsp;
+ </span>This can result in a drop in FPS for that particular family of games,
+ but can be offset by upgrading the machine MameUI is used on.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo6; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>On certain system setups (older), DirectDraw may be a
+ faster option than the D3D settings.<span style="mso-spacerun: yes">&nbsp;
+ </span>Choose Ddraw as the video mode in Default Options • Display. </p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo6; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>With the advent of MameUI .120 some historically
+ host CPU punishing games become playable on high end overclocked [3.6Ghz+]
+ Intel Core2Duo and Quad Cores.&nbsp; These processors combined with 64bit
+ operating systems and native 64bit MameUI provide almost 100% playability in
+ namcos21.c / namcos22.c / seattle.c and midvunit.c games.&nbsp; MameUI64 +
+ Vista64 + C2D chips is the best current combination for MameUI gaming on the
+ Windows platform.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo6; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>Some of the largest games supported by MameUI [NeoGeo
+ mainly] can run into the hundreds of megabyte range when they are
+ uncompressed into memory, this combined with MameUI in memory, plus OS
+ overhead can lead to very slow performance as Windows swaps the information
+ out to disk if there is not enough physical memory.&nbsp; 512M to 1G of
+ memory is recommended for all current games [.118].</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo6; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>AMD’s Cool ‘n Quiet technology on certain setups has
+ been known to cause slowdowns and lags while working in the MameUI GUI as
+ well as causing some in-game sound and graphic stuttering.<span style="mso-spacerun: yes">&nbsp;
+ </span>Disable the feature in the BIOS to verify.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo6; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>If seeing a severe slowdown in games that previously
+ didn't, toggle the 'Sleep when possible' menu item in Options •
+ Default Options • Miscellaneous.&nbsp; This happens to laptop users
+ particularly.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo6; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>Certain games in MameUI perform better on machines that
+ cannot handle them 100% if auto-frame skipping is turned <b>off</b>.&nbsp;
+ </p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo6; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>Certain games if run with D3D settings will perform
+ better if Triplebuffering is set to <b style="mso-bidi-font-weight: normal">
+ off</b>.<span style="mso-spacerun: yes">&nbsp; </span>D3D will double buffer
+ if triple is turned off.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo6; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>There may be certain sound anomalies in games if the
+ *.cfg files have become damaged, delete all the files in \cfg to remedy.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo6; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>If games are running too <b>fast</b>, verify in the
+ Options • Default Game Options menu that the throttle option is turned <b>on</b>,
+ that sync to monitor refresh is turned <b>off </b>and Wait for Vertical Sync
+ is turned <b>off</b> in the Options • Default Game Options • Advanced menu.<span style="mso-spacerun: yes">&nbsp;
+ </span></p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo6; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>MameUI video performance can be greatly enhanced if
+ running in 32bpp mode by ensuring AGP Fast Writes are toggled on in the
+ motherboard BIOS.<span style="mso-spacerun: yes">&nbsp; </span>The videocard
+ drivers also need to support this setting, the switch for this may be in the
+ advanced tab of the Windows display control panel applet.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo6; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>There are some soundcards like early PCI
+ <span class="SpellE">SoundBlaster</span> 128 that will cause scratchiness
+ if their hardware acceleration is turned up too high.&nbsp; Move the slider
+ down various steps to troubleshoot in Control Panel • Sound • Advanced
+ Audio.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo6; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>There are some older video card/video driver
+ combinations that <b>can</b> do hardware stretching, but are slower than
+ running with hardware stretch <b>off</b>. If games are too sluggish with the
+ hw stretch on, toggle it off if possible.&nbsp; Some old PCI graphic cards have
+ been seen to have this problem.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo6; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>If a large number of icons are being used in the GUI,
+ it is typically quicker to unzip them into the \icons folder instead of
+ leaving them zipped as icons.zip.</p>
+ <p style="BACKGROUND: white; MARGIN: 0in 0in 5pt 0.25in"><strong>
+ <span style="FONT-SIZE: 12pt; FONT-FAMILY: 'Arial','sans-serif'">Joysticks /
+ Mice / Gamepad / Lightgun Related Topics</span></strong><span style="FONT-SIZE: 12pt"><o:p></o:p></span></p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l6 level1 lfo8; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>Gamepads and mouse are disabled by default on first
+ MameUI launch, enable them by toggling their check boxes on in Options •
+ Default Options • Controllers.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l6 level1 lfo8; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>MameUI relies on DirectX’s DirectInput for joystick
+ support, ensure the game pad is seen as present and active in the game
+ controller control panel: start menu • settings • control panel • game
+ controllers.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l6 level1 lfo8; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>If seeing keys ‘stick’ while playing, verify that the
+ operating systems’ accessibility options and their shortcut keys are turned
+ off, things like ‘sticky keys’, and verify that Popup killers or other
+ resident programs are not mapped to the sticking key.<span style="mso-spacerun: yes">&nbsp;
+ </span>Also keys can stick on some KVM switch boxes if their hotkey switches
+ are set to [<b style="mso-bidi-font-weight: normal">Ctrl</b>] etc.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l6 level1 lfo8; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>Daisy chained gameport Microsoft Sidewinders [original]
+ in Win2k or XP do not work very well.&nbsp; Use USB gamepads instead. Single
+ Sidewinders may also cause odd behavior like ghost button presses.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l6 level1 lfo8; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>Lightguns and mice are treated like mappable joysticks
+ in current versions of MameUI.<span style="mso-spacerun: yes">&nbsp; </span>If
+ multiple mice are in use it is necessary to enter the in-game [<b style="mso-bidi-font-weight: normal">TAB</b>]
+ menu and map their axes in the ‘Input General’ section.</p>
+ <p style="BACKGROUND: white; MARGIN: 0in 0in 5pt 0.25in"><strong>
+ <span style="FONT-SIZE: 12pt; FONT-FAMILY: 'Arial','sans-serif'">Settings
+ Topics</span></strong><span style="FONT-SIZE: 12pt"><o:p></o:p></span></p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l4 level1 lfo10; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>With the advent of version 0.66 MameUI no longer stores
+ its configuration information in the Windows registry, it stores it in
+ \MameUI32/64.ini and \ini\Mame.ini.<span style="mso-spacerun: yes">&nbsp;
+ </span>To remove vestiges of the old versions, run regedit.exe and delete
+ the following key: HKEY_CURRENT_USER\Software\Freeware\MameUI.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l4 level1 lfo10; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>If having trouble saving keyboard mappings and
+ configuration, verify that the *.cfg files are not read-only and that a
+ \MameUI\cfg directory is present.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l4 level1 lfo10; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>If GUI settings and/or audit results aren’t being
+ maintained, verify the existence of a writeable MameUI32/64.ini and that the
+ \ini directory is present and writeable [not read only] under the MameUI.exe
+ location.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l4 level1 lfo10; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>If baseline Mame settings like directories and game
+ options are not being maintained, verify the existence of a writeable
+ Mame.ini [not read-only] in the \ini directory and that the \ini directory
+ itself is writeable.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l4 level1 lfo10; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>If experiencing odd behavior with MameUI saving files
+ or not appearing to clear its settings, verify that there are not multiple
+ shortcuts pointing to different versions, that an .exe is not being used by
+ itself instead of a shortcut to the .exe, or a shortcut pointing to an old
+ version of the .exe.<span style="mso-spacerun: yes">&nbsp; </span>Also
+ verify that there are not multiple versions of MameUI running in memory as
+ the last one out will save the settings.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l4 level1 lfo10; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>If seeing MameUI folders being created on the desktop,
+ verify that the .exe itself is not sitting on the desktop and being launched
+ which is not correct. Verify that a short-cut to the original is being
+ properly utilised.<span style="mso-spacerun: yes">&nbsp; </span>This means
+ setting the properties on the shortcut to ‘start in’ the appropriate
+ directory that the original .exe resides in.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l4 level1 lfo10; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>If the in-game [<b>TAB</b>] menu is no longer working
+ or can’t be accessed, it has been mapped to another key; delete the
+ default.cfg file in the \MameUI\cfg directory.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l4 level1 lfo10; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>If in-game [<b style="mso-bidi-font-weight: normal">TAB</b>]
+ settings need to be completely reset due to bad mappings, delete the
+ default.cfg file in the \MameUI\cfg directory.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l4 level1 lfo10; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>To remove the mappings on an individual game from the [<b style="mso-bidi-font-weight: normal">TAB</b>]
+ menu, delete its *.cfg file in the \MameUI\cfg directory, i.e. dkong.cfg,
+ asteroid.cfg.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l4 level1 lfo10; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>If having trouble mapping keys with the [<b style="mso-bidi-font-weight: normal">TAB</b>]
+ menu, verify the game is not paused while mapping.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l4 level1 lfo10; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>MameUI inherits a limit from baseline Mame on the
+ amount of characters that can be used for the ROM paths.<span style="mso-spacerun: yes">&nbsp;
+ </span>If directory settings are not being maintained, pare down the number
+ and names of the directories being added or simply use a single \ROMs
+ directory which MameUI expects.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l4 level1 lfo10; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>If having trouble getting games to display in the
+ proper orientation [they will not rotate] verify that rotation is set to
+ default, and that there are no video-card specific hot-keys set in Windows’
+ advanced display settings tab that could impact rotation, ATI and NVIDIA
+ both now include the ability to rotate the Windows screen to portrait
+ orientation.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l4 level1 lfo10; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>If games are appearing sideways regardless of rotation
+ settings, an onboard Intel graphic chipset or similar may be in use.<span style="mso-spacerun: yes">&nbsp;
+ </span>Disable the auto rotation capabilities of the Intel graphic chip.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l4 level1 lfo10; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>MameUI now supports the core’s –<span class="SpellE">mt</span>
+ switch.<span style="mso-spacerun: yes">&nbsp; </span>This allows
+ multi-threading of the final video blit during games. Dual core chips [X2,
+ C2D, etc.] can take advantage of this feature to offload the work to the
+ second thread and make MameUI more efficient.<span style="mso-spacerun: yes">&nbsp;
+ </span>Speed gains are seen on the unthrottled GPU bound games like dkong,
+ invaders, etc.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l4 level1 lfo10; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>MameUI now stores its settings in external *.ini files
+ instead of the registry.<span style="mso-spacerun: yes">&nbsp; </span>If it
+ is necessary to return MameUI to baseline, simply delete the MameUI32/64.ini
+ file and the Mame.ini file in the \ini directory.<span style="mso-spacerun: yes">&nbsp;
+ </span>The next time MameUI runs it will recreate those files with the
+ default settings.</p>
+ <p style="BACKGROUND: white; MARGIN: 0in 0in 5pt 0.25in"><strong>
+ <span style="FONT-SIZE: 12pt; FONT-FAMILY: 'Arial','sans-serif'">GUI Related
+ Topics &amp; Miscellaneous Tips</span></strong><span style="FONT-SIZE: 12pt"><o:p></o:p></span></p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo12; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>MameUI will read freestanding icons in the \icons
+ directory first, then icons in the icons.zip file.&nbsp; </p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo12; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>If seeing icon palette corruption in the GUI when
+ returning from a full screen game, try increasing the desktop color depth to
+ 24bpp or 32bpp.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo12; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>Sometimes icons in large icon view may appear to be
+ missing their white color or have portions transparent, this is the result
+ of having white chosen as the windows desktop window setting in Control
+ Panel / Display.&nbsp; Change the window setting to slightly off-white or
+ another color to return the icons to their appropriate look.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo12; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>To toggle the MameUI UI fullscreen [no Windows titlebar
+ and potentially no toolbar or status bar] and back use the [<b style="mso-bidi-font-weight: normal">F11</b>]
+ key.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo12; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>The GUI text may disappear from the folder view if the
+ GUI font color chosen is very close to the Windows system background color
+ scheme or if it is a large enough font [or bold] to anti-alias. </p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo12; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>MameUI no longer supports *.bmp format and may show a
+ blank or empty background if a *.bmp is erroneously renamed and used for
+ bkground.png, or if the bkground directory is marked as read only and MameUI
+ cannot create the bkground.png file when run.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo12; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>To return to a blank gray background in the GUI, delete
+ the bkground.png file in the \MameUI\bkground directory.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo12; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>Quickly navigate through games in the details view by
+ simply typing the first few letters in the name of the game, the highlight
+ will jump to that game and become more granular as the name is typed out.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo12; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>Select a random game with [<b>Ctrl-R</b>].</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo12; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>Audit an individual game with [<b>Alt-A</b>].</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo12; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>Various arcade game controller companies produce custom
+ made configuration files for their setups; these *.cfg files need to go in
+ the \MameUI\ctrlr folder to be recognized in the MameUI controllers tab.<span style="mso-spacerun: yes">&nbsp;
+ </span>These files are the responsibility of the controller companies
+ themselves and are not included or endorsed by MameUI, they can typically be
+ found at the companies’ web sites.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo12; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>In grouped view, clones are indented regardless of
+ whether their parents are visible; in a non-All Games folder this means that
+ there is not a direct relationship of a clone to the game item above it if
+ that games’ parent is not shown.&nbsp; This behaviour can be changed by the
+ setting Interface Options • No offset for clones missing parent in view.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo12; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>Certain items in the GUI may be missing if MameUI is
+ run on a Win2K/XP box and the user is not an admin or member of the admin
+ group.</p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo12; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span>The unavailable folder and the available filter are
+ disabled in MameUI due to a direct request from Nicola.</p>
+ <p style="BACKGROUND: white; MARGIN: 0in 0in 5pt 0.25in"><strong>
+ <span style="FONT-SIZE: 12pt; FONT-FAMILY: 'Arial','sans-serif'">Keyboard
+ Shortcuts</span></strong><span style="FONT-SIZE: 12pt"><o:p></o:p></span></p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l2 level1 lfo14; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span><b style="mso-bidi-font-weight: normal">Type letters of
+ game name</b> to jump directly to its first instance.<span style="mso-spacerun: yes">&nbsp;
+ </span><b style="mso-bidi-font-weight: normal">Alt-1 through Alt-7</b>:
+ Toggle art views.<span style="mso-spacerun: yes">&nbsp; </span>
+ <b style="mso-bidi-font-weight: normal">Alt-A</b>: Audit selected game.<span style="mso-spacerun: yes">&nbsp;
+ </span><b style="mso-bidi-font-weight: normal">Alt-B</b>: Toggle art tabs.<span style="mso-spacerun: yes">&nbsp;
+ </span><b style="mso-bidi-font-weight: normal">Alt-D</b>: Toggle folder
+ pane.<span style="mso-spacerun: yes">&nbsp; </span>
+ <b style="mso-bidi-font-weight: normal">Alt-P</b>: Toggle screenshot area.<span style="mso-spacerun: yes">&nbsp;
+ </span><b style="mso-bidi-font-weight: normal">Alt-S</b>: Toggle status bar.
+ <b style="mso-bidi-font-weight: normal">Alt-T</b>: Toggle toolbar.
+ <b style="mso-bidi-font-weight: normal">Alt-U</b>: Audit selected folder.
+ <b style="mso-bidi-font-weight: normal">Alt-Enter</b>: Show games’
+ properties.<span style="mso-spacerun: yes">&nbsp; </span>
+ <b style="mso-bidi-font-weight: normal">Ctrl-F</b>: Text filter.<span style="mso-spacerun: yes">&nbsp;
+ </span><b style="mso-bidi-font-weight: normal">Ctrl-R</b>: Choose random
+ game from GUI. <b style="mso-bidi-font-weight: normal">Ctrl-Page Up</b>:
+ Scroll up in history.dat text window.<span style="mso-spacerun: yes">&nbsp;
+ </span><b style="mso-bidi-font-weight: normal">Ctrl-Page Down</b>: Scroll
+ down in history.dat text window. <b style="mso-bidi-font-weight: normal">F11</b>:
+ Fullscreen mode toggle.</p>
+ <p style="BACKGROUND: white; MARGIN: 0in 0in 5pt 0.25in"><strong>
+ <span style="FONT-SIZE: 12pt; FONT-FAMILY: 'Arial','sans-serif'">Refresh
+ Restart Instructions<o:p></o:p></span></strong></p>
+ <p style="MARGIN: 0in 0in 5pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l2 level1 lfo14; tab-stops: list .5in">
+ <span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">
+ <span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span></span></span><b style="mso-bidi-font-weight: normal">a.</b>
+ Re-download the binary dist package from
+ <a href="http://mameui.info/">
+ <span style="COLOR: black">MameUI</span></a>.<span style="mso-spacerun: yes">&nbsp;
+ </span><b style="mso-bidi-font-weight: normal">b.</b> Disable running
+ anti-virus packages before extracting the files.
+ <b style="mso-bidi-font-weight: normal">c.</b> Double-click the
+ self-extracting archive. <span style="mso-spacerun: yes">&nbsp;</span><b style="mso-bidi-font-weight: normal">d.</b>
+ When prompted, enter “c:\” [no quotes] as the destination folder.<span style="mso-spacerun: yes">&nbsp;
+ </span><b style="mso-bidi-font-weight: normal">e.</b> Launch MameUI by
+ double-clicking its .exe, allow the audit/refresh to finish, it should go
+ quick as there are no ROMs.<span style="mso-spacerun: yes">&nbsp; </span>
+ <b style="mso-bidi-font-weight: normal">f.</b> Put a couple of zipped ROMs
+ from <a href="http://www.mamedev.org/roms"><span style="COLOR: black">
+ mamedev.org</span></a> in the c:\MameUI\ROMs directory.<span style="mso-spacerun: yes">&nbsp;
+ </span><b style="mso-bidi-font-weight: normal">g.</b> Launch MameUI, audit
+ the two games individually with [<b style="mso-bidi-font-weight: normal">Alt-A</b>].<span style="mso-spacerun: yes">&nbsp;
+ </span><b style="mso-bidi-font-weight: normal">h.</b> Launch Robby or
+ Gridlee.<span style="mso-spacerun: yes">&nbsp; </span>
+ <b style="mso-bidi-font-weight: normal">i.</b> Quit the game, then quit
+ MameUI.<span style="mso-spacerun: yes">&nbsp; </span>
+ <b style="mso-bidi-font-weight: normal">j.</b> Add more ROMs and try again.<br style="mso-special-character: line-break">
+ <br style="mso-special-character: line-break">
+ </p>
+ <p style="MARGIN: 0in 0in 5pt 0.25in"><span style="FONT-SIZE: 8pt">
+ <span style="mso-no-proof: yes">8/17/2007 1:17:01 AM</span> / john iv<o:p></o:p></span></p>
+</div>
+
+
+</html>
diff --git a/src/osd/winui/help/html/mameui_systemreq.htm b/src/osd/winui/help/html/mameui_systemreq.htm
new file mode 100644
index 00000000000..65871f6a806
--- /dev/null
+++ b/src/osd/winui/help/html/mameui_systemreq.htm
@@ -0,0 +1,82 @@
+<html>
+
+<head>
+<meta name="GENERATOR" content="Microsoft FrontPage 12.0">
+<meta name="ProgId" content="FrontPage.Editor.Document">
+<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
+<title>MameUI System Requirements</title>
+<style>
+<!--
+p
+ {margin-right:0in;
+ margin-left:0in;
+ font-size:10.0pt;
+ font-family:Arial;
+ color:black}
+h1
+ {margin-top:12.0pt;
+ margin-right:0in;
+ margin-bottom:3.0pt;
+ margin-left:0in;
+ page-break-after:avoid;
+ font-size:16.0pt;
+ font-family:Arial;
+ color:windowtext;
+ font-weight:bold}
+h2
+ {margin-top:12.0pt;
+ margin-right:0in;
+ margin-bottom:3.0pt;
+ margin-left:0in;
+ page-break-after:avoid;
+ font-size:14.0pt;
+ font-family:Arial;
+ font-style:italic}
+ p.MsoNormal
+ {mso-style-parent:"";
+ margin-bottom:.0001pt;
+ font-size:10.0pt;
+ font-family:Arial;
+ margin-left:0in; margin-right:0in; margin-top:0in}
+-->
+</style>
+<base target="_blank">
+</head>
+
+<body background="../images/bkground.gif">
+
+<p class="MsoNormal" style="page-break-after: avoid; margin-left: 0in; margin-right: 0in; margin-top: 12.0pt; margin-bottom: 3.0pt">
+<b><i><span style="font-size: 14.0pt">System Requirements</span></i></b></p>
+<p class="MsoNormal">MameUI runs on Microsoft Windows 98SE, Windows
+ME, Windows 2000, Windows XP, Windows 2003 Server, Windows Vista, and Windows 7.</p>
+<p class="MsoNormal">&nbsp;</p>
+<p class="MsoNormal">Because of the wide range of arcade hardware supported by
+MameUI, system requirements vary considerably.&nbsp; The
+more complex the original arcade hardware, the more CPU power is needed to
+emulate it.&nbsp; Mame strives for accuracy in its emulation; as such, over
+time, the performance point shifts as the underlying engine has been reworked
+and refined.&nbsp; Early games now require a bit more PC processing power to run
+than they did in earlier versions of Mame.&nbsp; This is typically not a great
+concern as modern PCs can run these early games easily at thousands of times
+their original speed.&nbsp; More recent games can often take upwards of 512M of memory, and
+Phenom / Core2 chips to emulate at 100% speed with effects.&nbsp; For those
+wishing to upgrade their systems; <b>MameUI benefits most from adding more CPU
+power, using a 64bit build on a 64bit OS</b>, and then memory and upgraded video card.</p>
+<p class="MsoNormal">&nbsp;</p>
+<p class="MsoNormal">Currently there are some games supported in MameUI which are not
+playable at full frame rate on today's PC hardware.&nbsp; Many of these are
+mid to late 90's and beyond advanced 3D games which MameUI renders in software for accuracy sake.&nbsp;
+Recent developments in Mame [.120] have allowed some of these games to get close
+to 100% playable on high-end overclocked [3.6Ghz+] Intel Core2Duo and Quad Core
+cpus.&nbsp; Additionally the fastest combination for MameUI is one of the
+previously mentioned CPUs plus the 64bit version of MameUI combined with a 64bit
+Operating System like Windows 7 x64.</p>
+
+<p class="MsoNormal">&nbsp;</p>
+<p class="MsoNormal"><font size="1">
+<!--webbot bot="Timestamp" s-type="EDITED" s-format="%Y-%m-%d %I:%M %p %Z" startspan -->2009-12-24 12:33 AM -0800<!--webbot bot="Timestamp" endspan i-checksum="37922" -->
+/ john iv</font></p>
+
+</body>
+
+</html> \ No newline at end of file
diff --git a/src/osd/winui/help/html/mameui_viewmenu.htm b/src/osd/winui/help/html/mameui_viewmenu.htm
new file mode 100644
index 00000000000..6e897d4a85d
--- /dev/null
+++ b/src/osd/winui/help/html/mameui_viewmenu.htm
@@ -0,0 +1,160 @@
+<html>
+
+<head>
+<meta name="GENERATOR" content="Microsoft FrontPage 12.0">
+<meta name="ProgId" content="FrontPage.Editor.Document">
+<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
+<title>MameUI View Menu</title>
+<style>
+<!--
+p
+ {margin-right:0in;
+ margin-left:0in;
+ font-size:10.0pt;
+ font-family:Arial;
+ color:black}
+h1
+ {margin-top:12.0pt;
+ margin-right:0in;
+ margin-bottom:3.0pt;
+ margin-left:0in;
+ page-break-after:avoid;
+ font-size:16.0pt;
+ font-family:Arial;
+ color:windowtext;
+ font-weight:bold}
+h2
+ {margin-top:12.0pt;
+ margin-right:0in;
+ margin-bottom:3.0pt;
+ margin-left:0in;
+ page-break-after:avoid;
+ font-size:14.0pt;
+ font-family:Arial;
+ font-style:italic}
+ p.MsoNormal
+ {mso-style-parent:"";
+ margin-bottom:.0001pt;
+ font-size:10.0pt;
+ font-family:Arial;
+ margin-left:0in; margin-right:0in; margin-top:0in}
+-->
+</style>
+</head>
+
+<body background="../images/bkground.gif">
+
+<h2>View Menu</h2>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>Toolbar</b> : Selecting this option from the view menu will
+toggle the toolbar on or off.</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>Status Bar</b> : Selecting this option from the view menu will
+toggle the status bar on or off.</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>Folder List</b> : Selecting this option from the view menu will
+toggle the folder list view on or off.</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>Screenshot</b> : Selecting this option from the view menu will
+toggle the screenshot area on or off.</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>Screenshot Tab</b> : Selecting this option from the view menu will
+toggle the screenshot area tabs, allowing to choose between the multiple
+different art types.&nbsp; Note that history.dat information is only displayed
+in the snapshot view.</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>Fullscreen</b> : Selecting this option from the view menu will
+
+switch the GUI into full screen mode.&nbsp; This will expand to fill the current
+desktop resolution, it will hide the menu bar, and it will hide the windows
+taskbar.&nbsp; Toggle in and out of it with F11, other alt shortcut keys are
+still active.</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>Show Pictures</b> : Selecting this option from the view menu will
+allow toggling the display of the individual art tabs in the screenshot area.</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>Large Icons</b> : Selecting this option from the view menu will
+display large icons in the gamelist area.</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>Small Icons</b> : Selecting this option from the view menu will
+display small icons in a different grid pattern in the gamelist area.</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>List</b> : Selecting this option from the view menu will
+display small icons in the gamelist area.</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>Details</b> : Selecting this option from the view menu will
+display small icons along with full game name and any other fields chosen with
+the View • Customize Fields option.</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>Grouped</b> : Selecting this option from the view menu will
+display small icons along with full game name and any other fields chosen with
+the View • Customize Fields option, however the clone games will be displayed
+indented and alphabetized under their parents..</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>Arrange Icons </b>: Selecting this option from the view menu
+will order the gamelist area by the choice made; game, directory, manufacturer,
+times played, type, or year.</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>Line Up Icons </b>: Selecting this option from the view menu
+will re-align the icons in views where it does not automatically happen.</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>Refresh </b>: Selecting this option from the view menu will
+initiate an update of the gamelist while MameUI searches for the existence of
+zip files that match game directory names.&nbsp; This is not as exhaustive as the
+audit function on the File menu.</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>Custom Filters </b>: Selecting this option from the view menu
+will allow for the selective hiding of certain types of games.&nbsp; Manually typing
+in a phrase in the filter text box will only display games that have that text
+in their names [note valid input for the description filter are, game name,
+driver name e.g. 'cps2.c', and manufacturer].</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<span style="font-family: Symbol">
+<img width="11" height="11" src="../images/mame321.gif" alt="*"><span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</span></span><b>Customize Fields </b>: Selecting this option from the view menu
+will allow choosing which fields are displayed in columnar mode in the game list
+details view, selectable from the View • Details.&nbsp; The columns can also be
+ordered by moving them up and down the right hand side of the well.&nbsp; The game
+name field is always the first item and cannot be changed. </p>
+
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">&nbsp;</p>
+<p class="MsoNormal" style="text-indent: -.25in; margin-left: .75in">
+<font size="1">
+<!--webbot bot="Timestamp" s-type="EDITED" s-format="%Y-%m-%d %I:%M %p %Z" startspan -->2007-11-11 01:11 AM -0800<!--webbot bot="Timestamp" endspan i-checksum="37427" -->
+/ john iv</font></p>
+
+</body>
+
+</html> \ No newline at end of file
diff --git a/src/osd/winui/help/html/mameui_visual_elements.htm b/src/osd/winui/help/html/mameui_visual_elements.htm
new file mode 100644
index 00000000000..c25e916cf8d
--- /dev/null
+++ b/src/osd/winui/help/html/mameui_visual_elements.htm
@@ -0,0 +1,155 @@
+<html>
+
+<head>
+<meta name="GENERATOR" content="Microsoft FrontPage 12.0">
+<meta name="ProgId" content="FrontPage.Editor.Document">
+<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
+<title>MameUI Toolbar / Status Bar / Windows</title>
+<style>
+<!--
+p
+ {margin-right:0in;
+ margin-left:0in;
+ font-size:10.0pt;
+ font-family:Arial;
+ color:black}
+h1
+ {margin-top:12.0pt;
+ margin-right:0in;
+ margin-bottom:3.0pt;
+ margin-left:0in;
+ page-break-after:avoid;
+ font-size:16.0pt;
+ font-family:Arial;
+ color:windowtext;
+ font-weight:bold}
+h2
+ {margin-top:12.0pt;
+ margin-right:0in;
+ margin-bottom:3.0pt;
+ margin-left:0in;
+ page-break-after:avoid;
+ font-size:14.0pt;
+ font-family:Arial;
+ font-style:italic}
+ p.MsoNormal
+ {mso-style-parent:"";
+ margin-bottom:.0001pt;
+ font-size:10.0pt;
+ font-family:Arial;
+ margin-left:0in; margin-right:0in; margin-top:0in}
+-->
+</style>
+</head>
+
+<body background="../images/bkground.gif">
+
+<h2>MameUI Toolbar / Status Bar / Windows</h2>
+<p class="MsoNormal">&nbsp;</p>
+<p class="MsoNormal">The MameUI <b>toolbar</b> extends the width of the application
+at the top and
+can be toggled on by using the View • Toolbar menu item, or the <b>Alt-T </b>keyboard
+shortcut.&nbsp; The buttons on the toolbar from left to right are : toggle folder
+list, toggle screenshot, large icons view, small icons view, list view, details
+view, help about, and help file.&nbsp; Click the items to toggle them on or off.&nbsp;
+The toolbar also contains the game search box, typing into this text box will
+filter out games.&nbsp; It is similar in function to the <strong>Ctrl-F</strong> filter but only
+filters on game descriptive name, it is also accessible with the <strong>Ctrl-E</strong>
+shortcut.</p>
+<p class="MsoNormal">
+<img border="0" src="../images/toolbar.gif" width="632" height="28"></p>
+<p class="MsoNormal">&nbsp;</p>
+<p class="MsoNormal">The MameUI <b>status bar</b> extends the width of the application
+at the bottom and can be toggled on by using the View • Status Bar menu item, or
+the <b>Alt-S</b> keyboard shortcut.&nbsp; The status bar indicates the full name of the game
+highlighted, and gives its internal status flag as to whether it’s working or if
+there are some issues with the emulation.&nbsp; The status bar also indicates the
+game count for the particular view used.</p>
+<p class="MsoNormal">
+<img border="0" src="../images/statusbar.gif" width="632" height="20"></p>
+<p class="MsoNormal">
+&nbsp;</p>
+<p class="MsoNormal"><b>MameUI can be divided into three windowed sections:</b></p>
+<p class="MsoNormal">&nbsp;</p>
+<p class="MsoNormal">The first section on the far left is the <b>folder view</b>,
+toggled on by using the View • Folder List menu item, or the Alt-D keyboard
+shortcut.&nbsp; This contains a tree style list that expands for certain items like
+year, manufacturer, and custom.&nbsp; By selecting one of these items, MameUI will
+display the games that meet that criterion.&nbsp; For example: selecting year / 1978,
+MameUI will
+display all the supported games manufactured in 1978.&nbsp; </p>
+<ul>
+ <li>
+<p class="MsoNormal">MameUI will display user
+created folders based on *.ini files located in the \MameUI\folders directory.&nbsp;
+See files in that location for examples.&nbsp; This location also houses the
+favorites.ini, where favorite games can be added to the text file and easily
+moved to other computers.<br>
+&nbsp; </p>
+ </li>
+ <li>
+<p class="MsoNormal">MameUI supports dragging and dropping games from the middle
+section game list into a custom folder in the left pane.&nbsp; MameUI supports
+the same procedure by secondary clicking on the game in the game list and
+choosing the 'add to custom folder' option.<br>
+&nbsp;</p>
+ </li>
+ <li>
+<p class="MsoNormal">MameUI also supports secondary clicking on a custom folder
+and renaming it, editing the custom folder name can also be accomplished by
+clicking the name of the folder three times quickly.<br>
+&nbsp;</p>
+ </li>
+ <li>
+<p class="MsoNormal">Secondary clicking on any of the folders also allows
+selectively displaying or hiding them in the tree.<br>
+&nbsp;</p>
+ </li>
+ <li>
+<p class="MsoNormal">Secondary clicking the vector folders and the \source\gamedriver
+folder allows for customizing
+away from default the games in that folder.<font face="Arial" size="2">&nbsp;
+Secondary click on the vector folder • properties in the folder pane to set
+options for that group of games.&nbsp; To alter global settings for game
+families select the properties for it, e.g. dkong.c for the Donkey Kong family
+of games&nbsp; This will change options for
+all games based on that driver.&nbsp; Thus there is the possibility to have
+four levels of alterations when a game's individual properties are viewed
+in All Games or any folder.&nbsp; The changes can be backed out of
+hierarchically with reset to default on each respective properties, or by
+deleting the .ini files in the \ini directory.</font></p>
+ </li>
+</ul>
+<p class="MsoNormal">The second, middle section of MameUI is the <b>game list</b>,
+always toggled on. &nbsp;This is where MameUI lists all of the games chosen
+in the left folder view.&nbsp; MameUI has the option to display the games as large
+icons, small icons, a list icons view, or details.&nbsp; Choosing details allows
+MameUI to display, in columnar mode, the game name as well as additional
+informational fields, chosen in the View • Customize Fields menu item.</p>
+<p class="MsoNormal">&nbsp;</p>
+<p class="MsoNormal">The third section, on the far right, is the <b>screenshot/art
+area</b>, toggled on by using the View • Screenshot menu item, or the <b>Alt-P</b> keyboard
+shortcut.&nbsp; This area of the GUI will display the optional artwork for each game
+selected, the artwork modes are toggled through by clicking on the picture area.&nbsp; The
+modes are: screenshot, flyer, cabinet, marquees, title shots, control panels,
+and history.&nbsp; <b>Alt-B</b>
+will toggle the screenshot tabs which give a visual selection method besides
+clicking the artwork area.&nbsp; Secondary clicking on the screenshot area will
+also bring up a shortcut dialogue with the file types available and allow
+toggling on or off individual tabs.&nbsp; The area under the screenshot mode
+will also display the history.dat information if that file is present [it will
+not display in the screenshot area if the history tab is enabled].&nbsp; Each of
+the tabs can be navigated to by their accelerator keys, <b>Alt-1</b>, <b>Alt-2</b>,
+<b>Alt-3</b>, etc. Further
+information about these files is in
+<a style="color: blue; text-decoration: underline; text-underline: single" href="mameui_art.htm">Art and Support Files</a>.</p>
+
+<p class="MsoNormal">&nbsp;</p>
+
+<p class="MsoNormal"><font size="1">
+<!--webbot bot="Timestamp" s-type="EDITED" s-format="%Y-%m-%d %I:%M %p %Z" startspan -->2008-07-16 12:03 AM -0700<!--webbot bot="Timestamp" endspan i-checksum="37949" -->
+/ john iv</font></p>
+
+</body>
+
+</html> \ No newline at end of file
diff --git a/src/osd/winui/help/html/mameui_whatsnew32.htm b/src/osd/winui/help/html/mameui_whatsnew32.htm
new file mode 100644
index 00000000000..f686d1c627c
--- /dev/null
+++ b/src/osd/winui/help/html/mameui_whatsnew32.htm
@@ -0,0 +1,2058 @@
+</style>
+
+<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office">
+
+<title>MameUI Whatsnew</title>
+<!--[if gte mso 9]><xml>
+ <o:DocumentProperties>
+ <o:Author>john4</o:Author>
+ <o:Template>Normal</o:Template>
+ <o:LastAuthor>john4</o:LastAuthor>
+ <o:Revision>100</o:Revision>
+ <o:TotalTime>113</o:TotalTime>
+ <o:Created>2003-11-03T04:49:00Z</o:Created>
+ <o:LastSaved>2004-08-30T18:21:00Z</o:LastSaved>
+ <o:Pages>6</o:Pages>
+ <o:Words>3470</o:Words>
+ <o:Characters>19785</o:Characters>
+ <o:Lines>164</o:Lines>
+ <o:Paragraphs>46</o:Paragraphs>
+ <o:CharactersWithSpaces>23209</o:CharactersWithSpaces>
+ <o:Version>11.6360</o:Version>
+ </o:DocumentProperties>
+</xml><![endif]--><!--[if gte mso 9]><xml>
+ <w:WordDocument>
+ <w:DisplayBackgroundShape/>
+ <w:ActiveWritingStyle Lang="EN-US" VendorID="64" DLLVersion="131078"
+ NLCheck="1">1</w:ActiveWritingStyle>
+ <w:SpellingState>Clean</w:SpellingState>
+ <w:GrammarState>Clean</w:GrammarState>
+ <w:ValidateAgainstSchemas/>
+ <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
+ <w:IgnoreMixedContent>false</w:IgnoreMixedContent>
+ <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
+ <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
+ </w:WordDocument>
+</xml><![endif]--><!--[if gte mso 9]><xml>
+ <w:LatentStyles DefLockedState="false" LatentStyleCount="156">
+ </w:LatentStyles>
+</xml><![endif]-->
+<style>
+<!--
+ /* Font Definitions */
+ @font-face
+ {font-family:Wingdings;
+ panose-1:5 0 0 0 0 0 0 0 0 0;
+ mso-font-charset:2;
+ mso-generic-font-family:auto;
+ mso-font-pitch:variable;
+ mso-font-signature:0 268435456 0 0 -2147483648 0;}
+@font-face
+ {font-family:SimSun;
+ panose-1:2 1 6 0 3 1 1 1 1 1;
+ mso-font-alt:\5B8B\4F53;
+ mso-font-charset:134;
+ mso-generic-font-family:auto;
+ mso-font-format:other;
+ mso-font-pitch:variable;
+ mso-font-signature:1 135135232 16 0 262144 0;}
+@font-face
+ {font-family:"\@SimSun";
+ mso-font-charset:134;
+ mso-generic-font-family:auto;
+ mso-font-pitch:variable;
+ mso-font-signature:3 135135232 16 0 262145 0;}
+ /* Style Definitions */
+ p.MsoNormal, li.MsoNormal, div.MsoNormal
+ {mso-style-parent:"";
+ margin-bottom:.0001pt;
+ mso-pagination:widow-orphan;
+ font-size:10.0pt;
+ font-family:Arial;
+ mso-fareast-font-family:"Times New Roman";
+ color:windowtext; margin-left:0in; margin-right:0in; margin-top:0in}
+h1
+ {margin-top:12.0pt;
+ margin-right:0in;
+ margin-bottom:3.0pt;
+ margin-left:0in;
+ mso-pagination:widow-orphan;
+ page-break-after:avoid;
+ mso-outline-level:1;
+ font-size:16.0pt;
+ font-family:Arial;
+ mso-fareast-font-family:SimSun;
+ color:windowtext;
+ font-weight:bold;}
+h2
+ {margin-top:12.0pt;
+ margin-right:0in;
+ margin-bottom:3.0pt;
+ margin-left:0in;
+ mso-pagination:widow-orphan;
+ page-break-after:avoid;
+ mso-outline-level:2;
+ font-size:14.0pt;
+ font-family:Arial;
+ mso-fareast-font-family:SimSun;
+ color:windowtext;
+ font-weight:bold;
+ font-style:italic;}
+p
+ {mso-margin-top-alt:auto;
+ margin-right:0in;
+ mso-margin-bottom-alt:auto;
+ margin-left:0in;
+ mso-pagination:widow-orphan;
+ font-size:10.0pt;
+ font-family:Arial;
+ mso-fareast-font-family:"Times New Roman";
+ color:black;}
+span.GramE
+ {mso-style-name:"";
+ mso-gram-e:yes}
+@page Section1
+ {size:8.5in 11.0in;
+ margin:1.0in 1.25in 1.0in 1.25in;
+ mso-header-margin:.5in;
+ mso-footer-margin:.5in;
+ mso-paper-source:0;}
+div.Section1
+ {page:Section1;}
+ /* List Definitions */
+ @list l0
+ {mso-list-id:8872955;
+ mso-list-template-ids:-1360482768;}
+@list l0:level1
+ {mso-level-number-format:bullet;
+ mso-level-text:\F0A7;
+ mso-level-tab-stop:.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;
+ mso-ansi-font-size:10.0pt;
+ font-family:Wingdings;}
+@list l0:level2
+ {mso-level-tab-stop:1.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l0:level3
+ {mso-level-tab-stop:1.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l0:level4
+ {mso-level-tab-stop:2.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l0:level5
+ {mso-level-tab-stop:2.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l0:level6
+ {mso-level-tab-stop:3.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l0:level7
+ {mso-level-tab-stop:3.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l0:level8
+ {mso-level-tab-stop:4.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l0:level9
+ {mso-level-tab-stop:4.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l1
+ {mso-list-id:45884847;
+ mso-list-template-ids:-1235059890;}
+@list l1:level1
+ {mso-level-number-format:bullet;
+ mso-level-text:\F0A7;
+ mso-level-tab-stop:.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;
+ mso-ansi-font-size:10.0pt;
+ font-family:Wingdings;}
+@list l1:level2
+ {mso-level-tab-stop:1.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l1:level3
+ {mso-level-tab-stop:1.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l1:level4
+ {mso-level-tab-stop:2.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l1:level5
+ {mso-level-tab-stop:2.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l1:level6
+ {mso-level-tab-stop:3.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l1:level7
+ {mso-level-tab-stop:3.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l1:level8
+ {mso-level-tab-stop:4.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l1:level9
+ {mso-level-tab-stop:4.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l2
+ {mso-list-id:439879227;
+ mso-list-template-ids:1518119328;}
+@list l2:level1
+ {mso-level-number-format:bullet;
+ mso-level-text:\F0A7;
+ mso-level-tab-stop:.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;
+ mso-ansi-font-size:10.0pt;
+ font-family:Wingdings;}
+@list l2:level2
+ {mso-level-tab-stop:1.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l2:level3
+ {mso-level-tab-stop:1.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l2:level4
+ {mso-level-tab-stop:2.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l2:level5
+ {mso-level-tab-stop:2.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l2:level6
+ {mso-level-tab-stop:3.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l2:level7
+ {mso-level-tab-stop:3.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l2:level8
+ {mso-level-tab-stop:4.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l2:level9
+ {mso-level-tab-stop:4.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l3
+ {mso-list-id:489293858;
+ mso-list-template-ids:1845671390;}
+@list l3:level1
+ {mso-level-number-format:bullet;
+ mso-level-text:\F0A7;
+ mso-level-tab-stop:.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;
+ mso-ansi-font-size:10.0pt;
+ font-family:Wingdings;}
+@list l3:level2
+ {mso-level-tab-stop:1.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l3:level3
+ {mso-level-tab-stop:1.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l3:level4
+ {mso-level-tab-stop:2.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l3:level5
+ {mso-level-tab-stop:2.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l3:level6
+ {mso-level-tab-stop:3.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l3:level7
+ {mso-level-tab-stop:3.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l3:level8
+ {mso-level-tab-stop:4.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l3:level9
+ {mso-level-tab-stop:4.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l4
+ {mso-list-id:619726884;
+ mso-list-template-ids:-1537423390;}
+@list l4:level1
+ {mso-level-number-format:bullet;
+ mso-level-text:\F0A7;
+ mso-level-tab-stop:.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;
+ mso-ansi-font-size:10.0pt;
+ font-family:Wingdings;}
+@list l4:level2
+ {mso-level-tab-stop:1.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l4:level3
+ {mso-level-tab-stop:1.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l4:level4
+ {mso-level-tab-stop:2.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l4:level5
+ {mso-level-tab-stop:2.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l4:level6
+ {mso-level-tab-stop:3.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l4:level7
+ {mso-level-tab-stop:3.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l4:level8
+ {mso-level-tab-stop:4.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l4:level9
+ {mso-level-tab-stop:4.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l5
+ {mso-list-id:621153244;
+ mso-list-template-ids:995154020;}
+@list l5:level1
+ {mso-level-number-format:bullet;
+ mso-level-text:\F0A7;
+ mso-level-tab-stop:.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;
+ mso-ansi-font-size:10.0pt;
+ font-family:Wingdings;}
+@list l5:level2
+ {mso-level-tab-stop:1.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l5:level3
+ {mso-level-tab-stop:1.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l5:level4
+ {mso-level-tab-stop:2.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l5:level5
+ {mso-level-tab-stop:2.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l5:level6
+ {mso-level-tab-stop:3.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l5:level7
+ {mso-level-tab-stop:3.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l5:level8
+ {mso-level-tab-stop:4.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l5:level9
+ {mso-level-tab-stop:4.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l6
+ {mso-list-id:730887387;
+ mso-list-template-ids:-2040104406;}
+@list l6:level1
+ {mso-level-number-format:bullet;
+ mso-level-text:\F0A7;
+ mso-level-tab-stop:.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;
+ mso-ansi-font-size:10.0pt;
+ font-family:Wingdings;}
+@list l6:level2
+ {mso-level-tab-stop:1.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l6:level3
+ {mso-level-tab-stop:1.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l6:level4
+ {mso-level-tab-stop:2.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l6:level5
+ {mso-level-tab-stop:2.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l6:level6
+ {mso-level-tab-stop:3.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l6:level7
+ {mso-level-tab-stop:3.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l6:level8
+ {mso-level-tab-stop:4.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l6:level9
+ {mso-level-tab-stop:4.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l7
+ {mso-list-id:1220288851;
+ mso-list-template-ids:880986230;}
+@list l7:level1
+ {mso-level-number-format:bullet;
+ mso-level-text:\F0A7;
+ mso-level-tab-stop:.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;
+ mso-ansi-font-size:10.0pt;
+ font-family:Wingdings;}
+@list l7:level2
+ {mso-level-tab-stop:1.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l7:level3
+ {mso-level-tab-stop:1.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l7:level4
+ {mso-level-tab-stop:2.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l7:level5
+ {mso-level-tab-stop:2.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l7:level6
+ {mso-level-tab-stop:3.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l7:level7
+ {mso-level-tab-stop:3.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l7:level8
+ {mso-level-tab-stop:4.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l7:level9
+ {mso-level-tab-stop:4.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l8
+ {mso-list-id:1275020199;
+ mso-list-template-ids:551206706;}
+@list l8:level1
+ {mso-level-number-format:bullet;
+ mso-level-text:\F0A7;
+ mso-level-tab-stop:.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;
+ mso-ansi-font-size:10.0pt;
+ font-family:Wingdings;}
+@list l8:level2
+ {mso-level-tab-stop:1.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l8:level3
+ {mso-level-tab-stop:1.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l8:level4
+ {mso-level-tab-stop:2.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l8:level5
+ {mso-level-tab-stop:2.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l8:level6
+ {mso-level-tab-stop:3.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l8:level7
+ {mso-level-tab-stop:3.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l8:level8
+ {mso-level-tab-stop:4.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l8:level9
+ {mso-level-tab-stop:4.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l9
+ {mso-list-id:1357196694;
+ mso-list-template-ids:795358278;}
+@list l9:level1
+ {mso-level-number-format:bullet;
+ mso-level-text:\F0A7;
+ mso-level-tab-stop:.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;
+ mso-ansi-font-size:10.0pt;
+ font-family:Wingdings;}
+@list l9:level2
+ {mso-level-tab-stop:1.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l9:level3
+ {mso-level-tab-stop:1.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l9:level4
+ {mso-level-tab-stop:2.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l9:level5
+ {mso-level-tab-stop:2.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l9:level6
+ {mso-level-tab-stop:3.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l9:level7
+ {mso-level-tab-stop:3.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l9:level8
+ {mso-level-tab-stop:4.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l9:level9
+ {mso-level-tab-stop:4.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l10
+ {mso-list-id:1503541588;
+ mso-list-template-ids:823551726;}
+@list l10:level1
+ {mso-level-number-format:bullet;
+ mso-level-text:\F0A7;
+ mso-level-tab-stop:.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;
+ mso-ansi-font-size:10.0pt;
+ font-family:Wingdings;}
+@list l10:level2
+ {mso-level-tab-stop:1.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l10:level3
+ {mso-level-tab-stop:1.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l10:level4
+ {mso-level-tab-stop:2.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l10:level5
+ {mso-level-tab-stop:2.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l10:level6
+ {mso-level-tab-stop:3.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l10:level7
+ {mso-level-tab-stop:3.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l10:level8
+ {mso-level-tab-stop:4.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l10:level9
+ {mso-level-tab-stop:4.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l11
+ {mso-list-id:1535195385;
+ mso-list-template-ids:-778014484;}
+@list l11:level1
+ {mso-level-number-format:bullet;
+ mso-level-text:\F0A7;
+ mso-level-tab-stop:.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;
+ mso-ansi-font-size:10.0pt;
+ font-family:Wingdings;}
+@list l11:level2
+ {mso-level-tab-stop:1.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l11:level3
+ {mso-level-tab-stop:1.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l11:level4
+ {mso-level-tab-stop:2.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l11:level5
+ {mso-level-tab-stop:2.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l11:level6
+ {mso-level-tab-stop:3.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l11:level7
+ {mso-level-tab-stop:3.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l11:level8
+ {mso-level-tab-stop:4.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l11:level9
+ {mso-level-tab-stop:4.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l12
+ {mso-list-id:1924140378;
+ mso-list-template-ids:-893489372;}
+@list l12:level1
+ {mso-level-number-format:bullet;
+ mso-level-text:\F0A7;
+ mso-level-tab-stop:.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;
+ mso-ansi-font-size:10.0pt;
+ font-family:Wingdings;}
+@list l12:level2
+ {mso-level-tab-stop:1.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l12:level3
+ {mso-level-tab-stop:1.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l12:level4
+ {mso-level-tab-stop:2.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l12:level5
+ {mso-level-tab-stop:2.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l12:level6
+ {mso-level-tab-stop:3.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l12:level7
+ {mso-level-tab-stop:3.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l12:level8
+ {mso-level-tab-stop:4.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l12:level9
+ {mso-level-tab-stop:4.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l13
+ {mso-list-id:1983192207;
+ mso-list-template-ids:-1719795094;}
+@list l13:level1
+ {mso-level-number-format:bullet;
+ mso-level-text:\F0A7;
+ mso-level-tab-stop:.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;
+ mso-ansi-font-size:10.0pt;
+ font-family:Wingdings;}
+@list l13:level2
+ {mso-level-tab-stop:1.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l13:level3
+ {mso-level-tab-stop:1.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l13:level4
+ {mso-level-tab-stop:2.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l13:level5
+ {mso-level-tab-stop:2.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l13:level6
+ {mso-level-tab-stop:3.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l13:level7
+ {mso-level-tab-stop:3.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l13:level8
+ {mso-level-tab-stop:4.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l13:level9
+ {mso-level-tab-stop:4.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l14
+ {mso-list-id:1997802346;
+ mso-list-template-ids:325871162;}
+@list l14:level1
+ {mso-level-number-format:bullet;
+ mso-level-text:\F0A7;
+ mso-level-tab-stop:.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;
+ mso-ansi-font-size:10.0pt;
+ font-family:Wingdings;}
+@list l14:level2
+ {mso-level-tab-stop:1.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l14:level3
+ {mso-level-tab-stop:1.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l14:level4
+ {mso-level-tab-stop:2.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l14:level5
+ {mso-level-tab-stop:2.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l14:level6
+ {mso-level-tab-stop:3.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l14:level7
+ {mso-level-tab-stop:3.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l14:level8
+ {mso-level-tab-stop:4.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l14:level9
+ {mso-level-tab-stop:4.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l15
+ {mso-list-id:2000308197;
+ mso-list-template-ids:-1152595466;}
+@list l15:level1
+ {mso-level-number-format:bullet;
+ mso-level-text:\F0A7;
+ mso-level-tab-stop:.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;
+ mso-ansi-font-size:10.0pt;
+ font-family:Wingdings;}
+@list l15:level2
+ {mso-level-tab-stop:1.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l15:level3
+ {mso-level-tab-stop:1.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l15:level4
+ {mso-level-tab-stop:2.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l15:level5
+ {mso-level-tab-stop:2.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l15:level6
+ {mso-level-tab-stop:3.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l15:level7
+ {mso-level-tab-stop:3.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l15:level8
+ {mso-level-tab-stop:4.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l15:level9
+ {mso-level-tab-stop:4.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l16
+ {mso-list-id:2035185965;
+ mso-list-template-ids:57055450;}
+@list l16:level1
+ {mso-level-number-format:bullet;
+ mso-level-text:\F0A7;
+ mso-level-tab-stop:.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;
+ mso-ansi-font-size:10.0pt;
+ font-family:Wingdings;}
+@list l16:level2
+ {mso-level-tab-stop:1.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l16:level3
+ {mso-level-tab-stop:1.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l16:level4
+ {mso-level-tab-stop:2.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l16:level5
+ {mso-level-tab-stop:2.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l16:level6
+ {mso-level-tab-stop:3.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l16:level7
+ {mso-level-tab-stop:3.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l16:level8
+ {mso-level-tab-stop:4.0in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+@list l16:level9
+ {mso-level-tab-stop:4.5in;
+ mso-level-number-position:left;
+ text-indent:-.25in;}
+ol
+ {margin-bottom:0in;}
+ul
+ {margin-bottom:0in;}
+-->
+</style>
+<!--[if gte mso 10]>
+<style>
+ /* Style Definitions */
+ table.MsoNormalTable
+ {mso-style-name:"Table Normal";
+ mso-tstyle-rowband-size:0;
+ mso-tstyle-colband-size:0;
+ mso-style-noshow:yes;
+ mso-style-parent:"";
+ mso-padding-alt:0in 5.4pt 0in 5.4pt;
+ mso-para-margin:0in;
+ mso-para-margin-bottom:.0001pt;
+ mso-pagination:widow-orphan;
+ font-size:10.0pt;
+ font-family:"Times New Roman";
+ mso-ansi-language:#0400;
+ mso-fareast-language:#0400;
+ mso-bidi-language:#0400}
+</style>
+<![endif]--><!--[if gte mso 9]><xml>
+ <o:shapedefaults v:ext="edit" spidmax="1026"/>
+</xml><![endif]--><!--[if gte mso 9]><xml>
+ <o:shapelayout v:ext="edit">
+ <o:idmap v:ext="edit" data="1"/>
+ </o:shapelayout></xml><![endif]-->
+</head>
+
+<body bgcolor=white background="../images/bkground.gif" lang=EN-US
+style='tab-interval:.5in'>
+
+<div class=Section1>
+
+<h1>Changes to MameUI</h1>
+
+<h2><span style='font-size:12.0pt'>v.</span><font size="3">127.5</font></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Fixed issue w/ BIOS games not
+ being passed properly to core or stored in *.ini files. [<strong>Curt Coder</strong>]</li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Fixed sorting on source column
+ in gamelist. [<b style='mso-bidi-font-weight:
+ normal'>René Single</b>]</li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.</span><font size="3">126.1</font></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Moved search bar over to the
+ flush right on the toolbar, made it take the UI font, and also made it
+ accessible with Ctrl-E like any search in Vista, Firefox, or IE.&nbsp;Added
+ a new debug tab to the options and loaded it w/ the missing items from the core. [<b style='mso-bidi-font-weight:
+ normal'>René Single / John IV</b>]</li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.</span><font size="3">122.1</font></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Fixed long standing issue
+ where icons would corrupt and return to their defaults if scrolled through
+ entire game list&nbsp; [<b style='mso-bidi-font-weight:
+ normal'>René Single / John IV</b>]</li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.</span><font size="3">120.2</font></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Rebranded Mame32 to MameUI32
+ and MameUI64 to avoid confusion with the baseline builds that are now being
+ released as 64bit native apps.&nbsp; [<b style='mso-bidi-font-weight:
+ normal'>Mike Haaland / John IV</b>]</li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.</span><font size="3">120.2</font></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added support for a
+ 'nonworking.png' which will appear for non-working games in the art panes if
+ the specific game *.png doesn't exist <strong>and</strong> the game is
+ flagged as non-working in the core.<font face="Arial" size="2"> </font>[<b style='mso-bidi-font-weight:
+ normal'>Mike Haaland / John IV</b>]</li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.</span><font size="3">118.6</font></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added game search/filter to
+ the toolbar.&nbsp; Works similarly to the Ctrl-F filter but doesn't search
+ on manufacturer, driver name, or shortname.<font face="Arial" size="2">&nbsp;
+ Added PCB art pane view. </font>[<b style='mso-bidi-font-weight:
+ normal'>René Single / John IV</b>]</li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.</span><font size="3">118.5</font></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Per MameDEV request; removed
+ the ROMs view customization item, and reworked auditing to not show an icon
+ change state for unavailable sets in all games folder view.&nbsp; This was
+ to bring MameUI into compliance w/ the section of the Mame terms of usage
+ which states '<font face="Arial" size="2">Do not provide a means of
+ generating a list of games that specifically identifies those games for
+ which the user does not have image files'.&nbsp; Audit functionality and
+ game search on start is still present to populate the 'Available' folder
+ view. </font>[<b style='mso-bidi-font-weight:
+ normal'>Mike Haaland</b>]</li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Promoted screen orientation
+ folder view to 'horizontal' and 'vertical' top level views and added them to
+ the Ctrl-F filter dialogue. [<b style='mso-bidi-font-weight:
+ normal'>Mike Haaland</b>]</li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.</span><font size="3">118.2</font></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Fixed all recent options
+ related bugs as well as expanding the functionality of the audit control so
+ it doesn't cut off anymore. [<b style='mso-bidi-font-weight:
+ normal'>Mike Haaland</b>]</li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.</span><font size="3">110.2</font></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Re-arranged UI elements in
+ Options menus. [<b style='mso-bidi-font-weight:
+ normal'>Radius</b>]</li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.</span><font size="3">107.1</font></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Updated the help file to
+ include the new UI support for the core's latest video changes.&nbsp;[<b style='mso-bidi-font-weight:
+ normal'>John IV</b>]</li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.</span><font size="3">107</font></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added UI support for the large
+ amount of core changes made by Aaron Giles for the new video renderer.&nbsp;[<b style='mso-bidi-font-weight:
+ normal'>René Single / John IV</b>]</li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Created the new scanline *.png
+ files in \artwork for use with the new -effect switch. [<b>John IV</b>]</li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.</span><font size="3">105.2</font></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added BIOS folder view on the
+ left pane.&nbsp; This folder lists all the BIOSes supported by MameUI and
+ allows launching them as if turning on a machine without a cartridge etc. in
+ it, like the Neo-Geo.&nbsp; [<b style='mso-bidi-font-weight:
+ normal'>René Single</b>]</li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.</span><font size="3">104.7</font></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added properties for driver.c
+ and vector on secondary click shortcut menu.&nbsp; This is the same as
+ altering the properties on the vector folder and the \source\driver folder
+ on the left pane.&nbsp; [<b style='mso-bidi-font-weight:
+ normal'>René Single / John IV</b>]</li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.</span><font size="3">104.4</font></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added support for priority
+ switch, now a slider.&nbsp; Note: there may be system related issues going
+ to setting 1 (lagging keyboard, joystick controls), default is 0. [<b style='mso-bidi-font-weight:
+ normal'>René Single</b>]</li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Removed multi-screen folder
+ view on left pane as that flag has been removed in the core. [<b style='mso-bidi-font-weight:
+ normal'>René Single</b>]</li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added mngwrite option to
+ launch a game and immediately begin recording a MNG movie file. [<b style='mso-bidi-font-weight:
+ normal'>René Single</b>]</li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.</span><font size="3">101.1</font></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added support for savestate
+ game folder view on left.&nbsp; Added switch for autosave.
+ [<b style='mso-bidi-font-weight:
+ normal'>René Single</b>]</li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.</span><font size="3">100</font></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>New Galaxian homage about.bmp.
+ [<b style='mso-bidi-font-weight:
+ normal'>John IV</b>]</li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.99.</span><font size="3">3</font></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Re-implemented history.dat for
+ MameUI which had its support removed from core. [<b style='mso-bidi-font-weight:
+ normal'>René Single</b>]</li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.98.</span><font size="3">3</font></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>UI dialogues realignment. [<b>Radius</b>]</li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added ability to type in Mame
+ shortname in the Ctrl-F text filter, i.e. 'ddonpach'. [<b>John IV / Mash</b>]</li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.96.4</span></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>First pass at adding support
+ for the analogue and digital controller section of the core. [<b style='mso-bidi-font-weight:
+ normal'>René Single</b>]</li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.95.</span><font size="3">5</font></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added core's -screen switch to
+ UI to allow playing games on secondary/tertiary monitors in multi-head
+ setups. [<b style='mso-bidi-font-weight:
+ normal'>René Single</b>]</li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.90.3</span></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>More UI dialogues realignment. [<b style='mso-bidi-font-weight:
+ normal'>Radius</b>]</li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.89.3</span></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Re-aligned UI elements in
+ Options menus and added some XP-style icons. [<b style='mso-bidi-font-weight:
+ normal'>Radius</b>]</li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.88.1<o:p></o:p></span></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added switch to toggle
+ validity checking in the binary. [<b style='mso-bidi-font-weight:
+ normal'>René Single</b>]</li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.87.1<o:p></o:p></span></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Increased start up speed via
+ driver info caching. [<b>Sauro Puccini / Chris Kirmse</b>]</li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.86.1<o:p></o:p></span></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Reworked MameUI folder
+ properties and their initial memory allocation.<span
+ style='mso-spacerun:yes'>  </span>Results in halving MameUI’s memory
+ footprint on most systems. [<b style='mso-bidi-font-weight:normal'>René
+ Single</b>]</li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.86<o:p></o:p></span></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Reworked MameUI multisession
+ behaviour.<span style='mso-spacerun:yes'>  </span>When launching a game,
+ MameUI
+ will now dynamically resize itself in memory rather than spawning a
+ separate core process, saving some memory (this new feature impacts the
+ icons on windowed mode playing and the show caption option). [<b
+ style='mso-bidi-font-weight:normal'>Chris Kirmse</b>]</li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Re-added support for custom
+ controller selection again in the controller tab. [<b style='mso-bidi-font-weight:
+ normal'>Chris Kirmse</b>]</li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.84.5<o:p></o:p></span></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Cleaned up the Options •
+ Interface Options menu, adding sliders. [<b style='mso-bidi-font-weight:
+ normal'>René Single</b>]</li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Internal clean-ups to provide
+ support for the new core changes. [<b style='mso-bidi-font-weight:normal'>Chris
+ Kirmse</b> / <b style='mso-bidi-font-weight:normal'>Nathan Woods</b>]</li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.84.2<o:p></o:p></span></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added feature request to
+ place a border around the artwork in the art pane, user selectable size
+ and color (0=no border). [<b>René Single</b><b style='mso-bidi-font-weight:
+ normal'> / John IV</b>]</li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added dump status folder
+ view, an easy reference for un-dumped and badly dumped ROMs for folks who
+ may be in a position to update them. [<b>René Single</b><span
+ style='mso-bidi-font-weight:bold'>]</span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'><span style='mso-bidi-font-weight:
+ bold'>Expanded game list font control to go beyond the original 16 color
+ choices allowing access to a greater UI customization (see last color on
+ drop down list ‘custom’). [<b>René Single</b>]</span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'><span style='mso-bidi-font-weight:
+ bold'>Added wave output option to match the core.<span
+ style='mso-spacerun:yes'>  </span>File menu / Play and Record Wave output.
+ [<b>Chris Kirmse</b>]</span></li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.84<o:p></o:p></span></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Various internal treeview
+ fixes [year / manufacturer] and cleanups. [<b style='mso-bidi-font-weight:
+ normal'>Nathan Woods / <span style='mso-bidi-font-weight:bold'>René Single</span>
+ / Mamesick / Chris Kirmse</b>]</li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Factored out list view
+ handling into its own module, picker.c.<span style='mso-spacerun:yes'> 
+ </span>Auto_malloc() now used and appears to result in a speed up of the
+ GUI game list scrolling, however at the moment it does cause slight pauses
+ moving from one ‘view’ to another. [<b style='mso-bidi-font-weight:normal'>Nathan
+ Woods</b>]</li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added ability to display
+ games in windowed mode without their titlebar caption. Not fully
+ functioning w/ GCC compile. [<b>René Single / John IV</b><span
+ style='mso-bidi-font-weight:bold'>]</span></li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.82<o:p></o:p></span></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Brought game ‘not working’
+ status messages in-line with core [status bar, general properties, etc.]
+ and rearranged status area on properties tab.<span
+ style='mso-spacerun:yes'>  </span>[<b style='mso-bidi-font-weight:normal'>Mamesick</b>]</li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added sample folder view. [<b
+ style='mso-bidi-font-weight:normal'>Mamesick</b>]</li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Renamed Hard Disk folder view
+ to CHD due to newly supported CD CHDs. [<b style='mso-bidi-font-weight:
+ normal'>John IV / Nathan Woods</b>]</li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.81<o:p></o:p></span></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Moved placement of
+ bkground.png to \bkground folder instead of \snap folder. [<b>René Single</b>]</li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Fixed erroneous behaviour for
+ Imperfect folder view. [<b>René Single</b>]</li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Corrected audio latency
+ slider movement and setting past notch 4. [<b>René Single</b>]</li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added customizable quit key
+ [default Alt-Q] for the mappable keyboard solution option. [<b>René Single</b>]</li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added new History.dat option
+ to allow display under any or all of the art views in Options • Interface
+ Options. [<b>René Single</b>]</li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.79</span></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added an ‘Imperfect’ folder
+ view on the left pane, this categorizes the various problems flagged in
+ games. [<b>René Single</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Reworked handling of the BIOS
+ option, now that there are multiple drivers that support different BIOSes
+ [neogeo.c, stv.c] the global setting is not appropriate.<span
+ style='mso-spacerun:yes'>  </span>Select the driver from the source folder
+ view on the left pane and change its BIOS settings, this will alter it for
+ all games in that driver.<span style='mso-spacerun:yes'>  </span>The
+ functionality remains the same for altering individual games settings in
+ all games view or anywhere else. [<b>René Single</b>]</li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added the ability to control
+ the MameUI GUI via mappable keyboard solutions.<span
+ style='mso-spacerun:yes'>  </span>This feature is intended to compliment
+ the GUI control via joystick option first offered in version .70
+ below.<span style='mso-spacerun:yes'>  </span>It is designed to allow
+ users of Mame cabinets with keyboard encoders the same functionality and
+ is controlled in the mameUI32/64.ini file [mapping the enter key to button 1
+ to launch a game for example], using the same syntax as the \ctrlr files.
+ [<b style='mso-bidi-font-weight:normal'>Jarek Burczynski / Chris Kirmse</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added support for the new
+ core switches for lightgun modifications; reload to allow mapping reload
+ to keys, and dual gun setups. [<b style='mso-bidi-font-weight:normal'>Chris
+ Kirmse</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added accelerator key for
+ folder level ‘mini-audits’, Alt-U [<b>René Single</b><b style='mso-bidi-font-weight:
+ normal'> / John IV</b>].<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added accelerator key support
+ for scrolling up and down through history.dat text window. CTRL-Page Up /
+ CTRL-Page Down.<b style='mso-bidi-font-weight:normal'> </b>[<b>René Single</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added toggle in Grouped view
+ to allow clones missing a parent to display non-indented. [<b>René Single</b><span
+ style='mso-bidi-font-weight:bold'>]</span><span style='font-size:12.0pt;
+ font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'><span style='mso-bidi-font-weight:
+ bold'>Added support for the core’s new save state loading on game
+ start.<span style='mso-spacerun:yes'>  </span>[<b>René Single</b>]</span><span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'><span style='mso-bidi-font-weight:
+ bold'>Added support for the core’s new keyboard LED choices, USB or PS/2.
+ [<b>René Single</b>]</span><span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.78</span></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added the ability to do ‘mini-audits’
+ on each of the folders on the left pane.<span style='mso-spacerun:yes'> 
+ </span>Secondary click on the folders to see audit as a choice. [<b>René
+ Single</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Changed behaviour of MameUI
+ when displaying games that have the protection not emulated flag,
+ previously it would flag these games as non-working and display the
+ warning.ico.<span style='mso-spacerun:yes'>  </span>Now warning.ico and
+ non-working status will only occur if the game has the non-working flag
+ attached in the driver. [<b>René Single / </b><b style='mso-bidi-font-weight:
+ normal'>Mamesick / John IV / Chris Kirmse</b>]<span style='font-size:12.0pt;
+ font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Increased CPU and sound area
+ on games’ properties page to accommodate 5 lines now that tceptor and tmnt
+ utilise it. [<b>René Single / Chris Kirmse</b>]<span style='font-size:
+ 12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Altered behaviour of
+ properties titlebar on driver.ini to show the driver name instead of
+ ‘folder’ properties. [<b>René Single / Chris Kirmse</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>No longer UPX compressing the
+ MameUI .exe.<span style='mso-spacerun:yes'>  </span>This saves 20 Megs
+ when MameUI is loaded into memory, will allow for better dynamic loading,
+ and won’t trip off virus detectors that have trouble w/ UPX compression.<span
+ style='mso-spacerun:yes'>  </span>As a result, MameUI.exe is now 20 Megs
+ in size on the hard drive.<span style='mso-spacerun:yes'>  </span>The
+ distribution package is also being changed and compressed with 7-Zip as a
+ self-extracting archive, this actually makes the distribution package
+ about 1 Meg smaller than previous releases. [<b style='mso-bidi-font-weight:
+ normal'>John IV</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Switched default settings in
+ MameUI to disable auto frameskipping and to use draw every frame per
+ discussion on MameDEV list. [<b style='mso-bidi-font-weight:normal'>John
+ IV</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Added 48000 as a sample rate
+ option, works well with modern soundcards and chips. [<b style='mso-bidi-font-weight:
+ normal'>John IV</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.77</span></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l8 level1 lfo1;tab-stops:list .5in'>Fulfilling the longstanding
+ feature req. added the ability to globally alter vector.ini and driver.ini
+ to match the core.&nbsp; Secondary click on the vector folder • properties
+ in the folder pane to set options for that group of games.&nbsp; To alter
+ global settings for game families, drill down into the source folder in
+ the folder pane, and secondary click on a driver's properties i.e.
+ 1942.c.&nbsp; This will change options for all games based on that
+ driver.&nbsp; The different levels of alteration are color coded,
+ vector.ini changes are red, driver.ini changes are green, and individual
+ game settings are blue.&nbsp; Thus there is the possibility to have four
+ color/levels of alterations when a game's individual properties are viewed
+ in All Games or any folder.&nbsp; The changes can be backed out of
+ hierarchically with reset to default on each respective properties, the
+ reset to default global option, or by deleting the .ini files in the \ini
+ directory.<span style='mso-spacerun:yes'>  </span><b style='mso-bidi-font-weight:
+ normal'>Note</b>: Currently the color alterations do not display properly
+ with XP in themed mode, but the functionality works [bug 462].<span
+ style='mso-spacerun:yes'>  </span>Coded solutions to this issue via DIFF
+ are welcomed. [<b>René Single / Chris Kirmse / John IV</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.76</span></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l7 level1 lfo2;tab-stops:list .5in'>Added programmatically
+ populated lightgun and multi-monitor folders. [<b>René Single</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l7 level1 lfo2;tab-stops:list .5in'>Added reset play count and
+ play time for individual games, and globally. [Secondary click on game,
+ &amp; Options • Interface Options. [<b>René Single</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l7 level1 lfo2;tab-stops:list .5in'>Allowed filter propagation
+ downward from parent folders, toggle this feature in Options • Interface
+ Options. [<b>René Single</b>]<span style='font-size:12.0pt;font-family:
+ "Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l7 level1 lfo2;tab-stops:list .5in'>Changed behavior of vertical
+ scrollbar in history pane, will not show if there is less text than
+ available room. [<b>René Single</b>]<span style='font-size:12.0pt;
+ font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l7 level1 lfo2;tab-stops:list .5in'>Extended game not working
+ status support to show more flags in status bar and game properties. [<b>René
+ Single</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l7 level1 lfo2;tab-stops:list .5in'>Added tool tip text to status
+ bar if longer than displayable name is selected. [<b>René Single</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l7 level1 lfo2;tab-stops:list .5in'>Increased history.dat buffer
+ to prevent cut-off and overflow. [<b>René Single</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l7 level1 lfo2;tab-stops:list .5in'>Re-implemented ability to
+ show game's icon on title bar in windowed mode. [<b>René Single</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.72</span></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l0 level1 lfo3;tab-stops:list .5in'>Added the ability to scale
+ the right side art pane contents upwards as the window size increases,
+ toggle on Options • Interface Options. [<b>René Single / Chris Kirmse</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l0 level1 lfo3;tab-stops:list .5in'>Expanded the reach of the
+ CTRL-F text filter, it can now act on name, driver name e.g. 'cps2.c', and
+ manufacturer.&nbsp; This is a quick method for immediately seeing a driver
+ family instead of drilling down through the source folder on the left. [<b>René
+ Single / Chris Kirmse</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.71</span></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l1 level1 lfo4;tab-stops:list .5in'>Added the ability to
+ selectively disable built in folder views on the left pane, secondary
+ click in the window area for the dialogue box. [<b>Chris Kirmse</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l1 level1 lfo4;tab-stops:list .5in'>Added control panel art tab.
+ [<b>Chris Kirmse</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l1 level1 lfo4;tab-stops:list .5in'>Fixed audit control overflow
+ issue. [<b>René Single</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l1 level1 lfo4;tab-stops:list .5in'>Designed art tab state
+ toggles to be more readable in MameUI32/64.ini. [<b>Chris Kirmse</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l1 level1 lfo4;tab-stops:list .5in'>Added the ability to have
+ MameUI automatically cycle the selected art views at an interval, in
+ seconds.&nbsp; Accessible in Options • Interface Options. [<b>René Single
+ / Chris Kirmse</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l1 level1 lfo4;tab-stops:list .5in'>Added the ability to track
+ the amount of time spent playing each game in minutes and seconds.&nbsp;
+ Displays in details or grouped view.&nbsp; Add the column in View • Customize
+ fields. [<b>René Single / Chris Kirmse</b>]<span style='font-size:12.0pt;
+ font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l1 level1 lfo4;tab-stops:list .5in'>Added the ability to view
+ game's icon on title bar in windowed mode. [<b>René Single / Chris Kirmse</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.70.1</span></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l12 level1 lfo5;tab-stops:list .5in'>Removed saturate slider from
+ D3D tab. [<b>Chris Kirmse</b>]<span style='font-size:12.0pt;font-family:
+ "Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l12 level1 lfo5;tab-stops:list .5in'>Fixed cleanstretch and
+ prescale settings not holding. [<b>Chris Kirmse</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l12 level1 lfo5;tab-stops:list .5in'>Implemented BIOS selection
+ on per game basis [only Neo Geo games currently] and allowed temporary
+ global settings for BIOS via number. [<b>Chris Kirmse</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.70</span></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l3 level1 lfo6;tab-stops:list .5in'>Added art tab with only
+ history.dat.&nbsp; If this tab is enabled and history.dat is present
+ history text will no longer appear beneath the screenshot. [<b>Tor Arne
+ Vestbø / Chris Kirmse</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l3 level1 lfo6;tab-stops:list .5in'>Added option to hide the
+ mouse cursor on launch in full screen on Options • Interface Options. [<b>Tor
+ Arne Vestbø</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l3 level1 lfo6;tab-stops:list .5in'>Addressed some long standing
+ bugs dealing with icon decimation and windows title bar size, and
+ details/grouped view not holding the column size on return from large icon
+ view post-session restart. [<b>René Single</b>]<span style='font-size:
+ 12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l3 level1 lfo6;tab-stops:list .5in'>Added option to expand MameUI
+ to full screen kiosk mode without any windows controls [F11]. [<b>Tor Arne
+ Vestbø / Chris Kirmse</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l3 level1 lfo6;tab-stops:list .5in'>Created new Berzerk homage about.bmp. [<b>John IV</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l3 level1 lfo6;tab-stops:list .5in'>Reworked drop down for D3D
+ prescale effect, now allowing various levels of sharpness to be used. [<b>Chris
+ Kirmse</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l3 level1 lfo6;tab-stops:list .5in'>Updated win32ui.c to pull
+ certain information more appropriately out of layout.c. [<b>Nathan
+ Woods/MESS32</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l3 level1 lfo6;tab-stops:list .5in'>Removed obsoleted version
+ mismatch toggle. [<b>Chris Kirmse</b>]<span style='font-size:12.0pt;
+ font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l3 level1 lfo6;tab-stops:list .5in'>Added a built in orientation
+ folder view for displaying vertical and horizontal games. [<b>René Single</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l3 level1 lfo6;tab-stops:list .5in'>Added support for the new
+ cleanstretch options. [<b>Chris Kirmse</b>]<span style='font-size:12.0pt;
+ font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l3 level1 lfo6;tab-stops:list .5in'>Added ability to map joystick
+ actions in MameUI32/64.ini to control GUI navigation instead of being hard
+ coded:<br>
+ <b>Format</b>: joystick_number, stick_type, axis_or_button, direction<br>
+ <br>
+ #define JOYCODE_STICK_BTN 0<br>
+ #define JOYCODE_STICK_AXIS 1<br>
+ #define JOYCODE_STICK_POV 2<br>
+ #define JOYCODE_DIR_BTN 0<br>
+ #define JOYCODE_DIR_NEG 1<br>
+ #define JOYCODE_DIR_POS 2<span style='font-family:"Times New Roman"'><o:p></o:p></span></li>
+</ul>
+
+<p style='margin-left:.5in'>So, pressing button 3 on joystick one would be:
+1,0,3,0<br>
+<br>
+ui_joy_up 1,1,2,1<br>
+ui_joy_down 1,1,2,2<br>
+ui_joy_left 1,1,1,1<br>
+ui_joy_right 1,1,1,2<br>
+ui_joy_start 1,0,1,0<br>
+ui_joy_pgup 2,1,2,1<br>
+ui_joy_pgdwn 2,1,2,2<br>
+ui_joy_home 0,0,0,0<br>
+ui_joy_end 0,0,0,0<br>
+ui_joy_ss_change 2,0,3,0<br>
+ui_joy_history_up 2,0,4,0<br>
+ui_joy_history_down 2,0,1,0<br>
+ui_joy_exec 0,0,0,0</p>
+
+<p style='margin-left:.5in'>For stick type POV there are no directions, only
+four axes (0-3) [<b>Tor Arne Vestbø</b>]</p>
+
+<h2><span style='font-size:12.0pt'>v.69</span></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l11 level1 lfo7;tab-stops:list .5in'>Added support for the new
+ D3D filter and effects options in Options • Default Game Options •
+ Direct3D, see help menu contents for further descriptions of the new
+ features. [<b>John IV / Chris Kirmse</b>]<span style='font-size:12.0pt;
+ font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l11 level1 lfo7;tab-stops:list .5in'>Added support for the new
+ core toggle -bios to allow selection of the various supported Neo Geo
+ BIOSes. [<b>Chris Kirmse</b>]<span style='font-size:12.0pt;font-family:
+ "Times New Roman"'><o:p></o:p></span></li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.68</span></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l9 level1 lfo8;tab-stops:list .5in'>Added code to allow clicking
+ anywhere in the screenshot window to toggle the art views.&nbsp; No longer
+ necessary to click directly on the default image. [<b>K&amp;K</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l9 level1 lfo8;tab-stops:list .5in'>Added code to allow disabling
+ / toggling individual art views on the view menu and the context menu of
+ the art window. [<b>Chris Kirmse</b>]<span style='font-size:12.0pt;
+ font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l9 level1 lfo8;tab-stops:list .5in'>Added support for the new
+ core D3D items, accessible on the Options • Default Game Options • Direct3D.
+ [<b>Chris Kirmse</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l9 level1 lfo8;tab-stops:list .5in'>Added support for the new
+ core audio latency settings. [<b>Chris Kirmse</b>]<span style='font-size:
+ 12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.67</span></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l14 level1 lfo9;tab-stops:list .5in'>Re-worked the rotation
+ options to a drop down, and included the new switches for auto-clockwise /
+ auto-anti-clockwise for pivot monitors. [<b>Chris Kirmse</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.66</span></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l4 level1 lfo10;tab-stops:list .5in'>Moved towards an *.ini based
+ settings storage scheme to more closely match the Mame.exe core,
+ individual game *.inis whose settings are altered are stored in the \ini
+ directory. The MameUI GUI settings are stored in MameUI32/64.ini in the root
+ w/ MameUI.exe, and MameUI.ini is stored in the \ini directory and should
+ be interchangeable with a regular Mame.ini.&nbsp; Purge these two items to
+ return to baseline, the registry is no longer used for MameUI. [<b>Chris
+ Kirmse</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l4 level1 lfo10;tab-stops:list .5in'>Provided an additional 'migration'
+ version of MameUI which will copy the contents of the registry key and
+ write it out to the new *.ini scheme when exiting.&nbsp; Useful for people
+ who have a large number of individual game customizations. [<b>John IV /
+ Chris Kirmse</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l4 level1 lfo10;tab-stops:list .5in'>Added toggle for high thread
+ priority in Options • Interface Options to match the core's new
+ -high_priority switch.&nbsp; This will devote more system resources and
+ time to MameUI at the expense of other already running programs. [<b>Chris
+ Kirmse</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.65</span></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l10 level1 lfo11;tab-stops:list .5in'>Updated columnedit.c to
+ allow for MESS32 usage in software view. [<b>Nathan Woods/MESS32</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l10 level1 lfo11;tab-stops:list .5in'>Reworked F5/refresh
+ routines to utilise more audit code and logic. [<b>Chris Kirmse</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l10 level1 lfo11;tab-stops:list .5in'>Reworked -lightgun
+ handling, enabling independently selectable mouse control for those games.
+ [<b>Chris Kirmse</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l10 level1 lfo11;tab-stops:list .5in'>Custom icons are included
+ in the distribution \icons directory to show what the control/tree icons
+ are without having to go through the source. [<b>John IV</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.63.1</span></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l5 level1 lfo12;tab-stops:list .5in'>Fixed analogue dead-zone not
+ being maintained, and pre-0.63 timing not being maintained. [<b>Chris
+ Kirmse</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l5 level1 lfo12;tab-stops:list .5in'>Added folder view for hard
+ drive based games. [<b>Chris Kirmse</b>]<span style='font-size:12.0pt;
+ font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l5 level1 lfo12;tab-stops:list .5in'>Addressed missing/blank
+ custom icon display indexing issue on F5/refresh. [<b>Chris Kirmse</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l5 level1 lfo12;tab-stops:list .5in'>Sped up MameUI launch /
+ folder reading routine. [<b>Chris Kirmse</b>]<span style='font-size:12.0pt;
+ font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l5 level1 lfo12;tab-stops:list .5in'>Fixed screenshot area
+ decimation when resizing images larger than the viewable area. [<b>John IV
+ / Chris Kirmse</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l5 level1 lfo12;tab-stops:list .5in'>Added additional help topic
+ IDs and tool tips. [<b>Chris Kirmse</b>]<span style='font-size:12.0pt;
+ font-family:"Times New Roman"'><o:p></o:p></span></li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.63</span></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l16 level1 lfo13;tab-stops:list .5in'>Added code to ROM loading
+ dialogue to visually indicate user intervention when the game being
+ launched may not work due to 'no good dump' this will match the baseline
+ Mame [press ok to continue].&nbsp; Examples include the game Astyanax,
+ 64th Street etc. [<b>Chris Kirmse</b>]<span style='font-size:12.0pt;
+ font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l16 level1 lfo13;tab-stops:list .5in'>Return to baseline non-I686
+ compile as it prevented MameUI working on a variety of machines. [<b>John
+ IV</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l16 level1 lfo13;tab-stops:list .5in'>Made numerous code changes
+ to allow MameUI to be compiled with the new MinGW 2.0 package. [<b>Chris
+ Kirmse / Mike Haaland</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l16 level1 lfo13;tab-stops:list .5in'>Distribution compiles are
+ now done using above mentioned MinGW 2.0 package. [<b>John IV</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l16 level1 lfo13;tab-stops:list .5in'>Added code to allow for a
+ tool tip to appear showing the full name of a game whose description is
+ cut-off by column width in details/grouped view.&nbsp; Hover cursor over
+ game to activate. [<b>Andrew Kirmse / Chris Kirmse</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l16 level1 lfo13;tab-stops:list .5in'>The default
+ \folders\Favorites.ini has been cleaned out.&nbsp; Now that it is easy to
+ drag and drop or secondary click to add games from the main list to the
+ custom folders, it no longer needs to serve as an example using personal
+ favorites. Be sure to backup existing \folders\Favorites.ini if using the
+ built in installer version of the MameUI distribution. [<b>John IV</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l16 level1 lfo13;tab-stops:list .5in'>Tweaked code for drag &amp;
+ drop of games into custom folders.&nbsp; In a custom folder to drag an
+ item out for deletion, it must go out of the game list pane either left,
+ right, up, or down beneath the last item in the pane or further out of the
+ GUI. [<b>Chris Kirmse</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l16 level1 lfo13;tab-stops:list .5in'>Reworked internal file
+ handling code to interface with Aaron's substantial core updates. [<b>Chris
+ Kirmse</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l16 level1 lfo13;tab-stops:list .5in'>Submitted code suggestion
+ to allow for more granular sorting and display of items in the Manufacturers
+ view, so companies will no longer be grouped with others incorrectly. [<b>René
+ Single</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l16 level1 lfo13;tab-stops:list .5in'>Created new main icon and
+ about.bmp 'Ladybug Homage'. [<b>John IV</b>]<span style='font-size:12.0pt;
+ font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l16 level1 lfo13;tab-stops:list .5in'>Fixed ascending/descending
+ toggle via View • Arrange Icons for columns other than Game.&nbsp; Added
+ some logic to the -listsourcefile column display. Prevented color depth
+ and refresh rate settings from being displayed if games are played in
+ windowed mode. [<b>René Single / Chris Kirmse</b>]<span style='font-size:
+ 12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l16 level1 lfo13;tab-stops:list .5in'>Made Misc. art option gray
+ properly when its parent control was deselected. [<b>Chris Kirmse</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l16 level1 lfo13;tab-stops:list .5in'>Submitted code to clean up
+ some issues with the list and small icons view and icons squishing in
+ details view upon return from another view like large icons. [<b>René
+ Single / Chris Kirmse</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l16 level1 lfo13;tab-stops:list .5in'>Upgraded MameUI to utilize
+ the new common controls from Windows XP, allowing the proper look of an XP
+ application without the need for an external manifest file. [<b>Chris
+ Kirmse</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l16 level1 lfo13;tab-stops:list .5in'>Added ability to rename
+ custom folders from the tree view, secondary click on them and choose
+ rename folder from the context menu, or click the name of the folder three
+ times quickly. [<b>Chris Kirmse</b>]<span style='font-size:12.0pt;
+ font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l16 level1 lfo13;tab-stops:list .5in'>Added the 'Source' folder
+ view, this will display all the driver.c files and all the games within
+ each family. [<b>Mike Haaland</b>]<span style='font-size:12.0pt;
+ font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l16 level1 lfo13;tab-stops:list .5in'>Removed the
+ \folders\BIOS.ini as it is now obviated by the built-in Source folder
+ view. [<b>John IV</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l16 level1 lfo13;tab-stops:list .5in'>Added -sourcefileinfo
+ information to the general tab for each <span class=GramE>games'</span>
+ properties, to easily and quickly see what driver family a game belongs
+ to. [<b>Chris Kirmse</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l16 level1 lfo13;tab-stops:list .5in'>Added the long requested
+ clone offset aka 'Grouped' view.&nbsp; This will display the parent games
+ flush left, with all their clones alphabetized beneath them indented
+ inward. Excellent for grouping the clones whose names may be considerably
+ different than their <span class=GramE>parents,</span> and allowing typing
+ the name of the game to go to the parent set immediately.&nbsp; [<b>John
+ IV / Chris Kirmse</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l16 level1 lfo13;tab-stops:list .5in'>Reworked the Startup
+ Options to now be Interface Options, and added checkboxes to support
+ Aaron's new disclaimer / info screen toggle. [<b>Chris Kirmse</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l16 level1 lfo13;tab-stops:list .5in'>Added new switches -rdtsc /
+ -pause_brightness to match the core. [<b>Chris Kirmse</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.62</span></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l6 level1 lfo14;tab-stops:list .5in'>Internalized the code for
+ rotate.exe, MameUI can now choose its background images from Options •
+ Background Image, and choose a random one on startup.&nbsp; Options •
+ Startup Options • Select Random Background Image. [<b>K&amp;K</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l6 level1 lfo14;tab-stops:list .5in'>Added tabs for the
+ screenshot art <span class=GramE>area,</span> toggle with Alt-b. [<b>K&amp;K</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l6 level1 lfo14;tab-stops:list .5in'>Added code to increase speed
+ of audit. [<b>K&amp;K</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l6 level1 lfo14;tab-stops:list .5in'>Added secondary click menu
+ pop-up for screenshot area. [<b>Sword</b>]<span style='font-size:12.0pt;
+ font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l6 level1 lfo14;tab-stops:list .5in'>Allowed bkground.png to be displayed
+ in history.dat area under screenshot, font color changed to match GUI font
+ color. [<b>K&amp;K</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l6 level1 lfo14;tab-stops:list .5in'>Created new icons for the
+ various tabs in Default Options / Game Properties dialogue boxes. [<b>John
+ IV</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l6 level1 lfo14;tab-stops:list .5in'>Updated the ColumnEdit and
+ Properties code to make them both more extensible. [<b>Nathan Woods/MESS32</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l6 level1 lfo14;tab-stops:list .5in'>Included index fixes to
+ speed load time in treeview.c, particularly with extra \folders *.inis. [<b>Jeff
+ Miller</b>] <span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l6 level1 lfo14;tab-stops:list .5in'>Fixed an issue where the
+ startup focus in the details list would jump to the top of the list before
+ returning to the prior selection. [<b>Chris Kirmse</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l6 level1 lfo14;tab-stops:list .5in'>Main distribution now
+ compiled with I686=1 for Pentium Pro optimization.&nbsp; Doesn't impact
+ high end AMD chips at all but provides speed increases to lower range PII,
+ P3 machines. [<b>John IV</b>]<span style='font-size:12.0pt;font-family:
+ "Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l6 level1 lfo14;tab-stops:list .5in'>Created new *.ini files for
+ the \folders directory.&nbsp; Replace the old ones with these (<span
+ class=GramE>except</span> any user-modified of course). [<b>John IV</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l6 level1 lfo14;tab-stops:list .5in'>Created a new MameUI MSI
+ installer package.&nbsp; This should be easier for beginners. [<b>John IV</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l6 level1 lfo14;tab-stops:list .5in'>Added the ability to drag and
+ drop games into the custom *.ini folders. [<b>Chris Kirmse</b>] <span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l6 level1 lfo14;tab-stops:list .5in'>Added the ability to
+ secondary click on a game to add or remove it from an *.ini file in the
+ \folders directory. [<b>Patrick Jones / Chris Kirmse</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.61</span></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l2 level1 lfo15;tab-stops:list .5in'>Fixed a nasty crasher where
+ MameUI would hang if loading a game that required user intervention in
+ Mame[w] <span class=GramE>like</span> 'The Astyanax', and there was no
+ joystick connected to the system. [<b>Sword</b>]<span style='font-size:
+ 12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l2 level1 lfo15;tab-stops:list .5in'>Fixed a couple of fringe
+ case crashers when Windows is shut down beneath MameUI, i.e. a cabinet
+ setting. [<b>Robert John Sheppard</b>]<span style='font-size:12.0pt;
+ font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l2 level1 lfo15;tab-stops:list .5in'>Removed -dirty / -nodirty
+ options to match Aaron's core changes. [<b>John IV</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l2 level1 lfo15;tab-stops:list .5in'>Added dialogue box support
+ for new artwork switches, added -ini support to Options • Directories. [<b>Mike
+ Haaland</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l2 level1 lfo15;tab-stops:list .5in'>Added dialogue box support
+ for LED disablement, artwork resolution. [<b>Mike Haaland</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l2 level1 lfo15;tab-stops:list .5in'>Added brightness slider,
+ removed -bpp per Aaron's changes. [<b>Mike Haaland</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l2 level1 lfo15;tab-stops:list .5in'>Added sound chip and CPU
+ information to the folder views.&nbsp; Added the long requested feature to
+ create user defined folder views, see \folders files for examples. [<b>Sword,
+ BUT, Emuman / Mike Haaland</b>] <span style='font-size:12.0pt;font-family:
+ "Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l2 level1 lfo15;tab-stops:list .5in'>Created Artwork, BIOS, and
+ Custom folder views. [<b>John IV</b>]<span style='font-size:12.0pt;
+ font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l2 level1 lfo15;tab-stops:list .5in'>Added support for displaying
+ -listsourcefile [source] field to the View • Customize Fields.&nbsp; Handy
+ for sorting to test global driver changes across all its <span
+ class=GramE>games.,</span> or using to report game problems to
+ MameTesters.com. [<b>Mike Haaland</b>]<span style='font-size:12.0pt;
+ font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l2 level1 lfo15;tab-stops:list .5in'>Created new Version and
+ Classification folder views. [<b>John IV</b>]<span style='font-size:12.0pt;
+ font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l2 level1 lfo15;tab-stops:list .5in'>Added support for the new
+ -lightgun switch. [<b>John IV</b>]<span style='font-size:12.0pt;
+ font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l2 level1 lfo15;tab-stops:list .5in'>Removed 'add to favorites'
+ from context menus and file menu since it is now possible/preferable to
+ have favorites stored in the portable, user-defined, external text file
+ [\folders]. <span class=GramE>Which also of course would survive a
+ registry key purge.</span> <span class=GramE>Times played is</span> still
+ accessible as a column in details view. [<b>John IV</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l2 level1 lfo15;tab-stops:list .5in'>Updated help file with new
+ settings, added baseline Mame[w] documents to help file. [<b>John IV</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l2 level1 lfo15;tab-stops:list .5in'>Added \titles directory
+ support to allow for title screenshots viewing. [<b>John IV</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l2 level1 lfo15;tab-stops:list .5in'>Created new MameUI icon and <span
+ class=GramE>About</span> graphic. [<b>John IV</b>]<span style='font-size:
+ 12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.60</span></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l13 level1 lfo16;tab-stops:list .5in'>Created and added the new
+ MameUI HTML Help File. [<b>John IV</b>]<span style='font-size:12.0pt;
+ font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l13 level1 lfo16;tab-stops:list .5in'>Updated context sensitive
+ help support to MameUI, all controls should be mapped to pop-up help. [<b>Mike
+ Haaland</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l13 level1 lfo16;tab-stops:list .5in'>Added 'Use less CPU if
+ possible' check box in Options • Default Options • Miscellaneous.&nbsp;
+ This toggles the new baseline Mame[w] sleep / -nosleep switch.&nbsp; If
+ toggled on, it will return more time slices to the processor and be more
+ amenable to multi-tasking with other applications.&nbsp; If toggled off,
+ MameUI will continue to take 100% of the CPU time as it has historically.&nbsp;
+ It should be toggled 'off' for people experiencing severe slowdowns,
+ particularly laptop users. [<b>John IV / Mike Haaland</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l13 level1 lfo16;tab-stops:list .5in'>Added option to set the
+ directory for hard drive image diff files to match Mame[w] in Options •
+ Directories. Fixed screenshot area decimation when image sized too large
+ for area.&nbsp; Scales properly now and looks great.&nbsp; Fixed flip
+ options. [<b>Sword</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l13 level1 lfo16;tab-stops:list .5in'>Added option to set the
+ directory for icons in Options • Directories. [<b>John IV</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l13 level1 lfo16;tab-stops:list .5in'>Added support for new
+ external controller mapping. This adds support for common arcade
+ controllers and provides the ability to create user defined mappings for
+ home built solutions.&nbsp; See Options • Default Options • Controllers.
+ Also see the controller mapping document in the Mame Documents help
+ section. [<b>Ron Fries</b>]<span style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+</ul>
+
+<h2><span style='font-size:12.0pt'>v.59</span></h2>
+
+<ul type=square>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l15 level1 lfo17;tab-stops:list .5in'>Added 'Allow game selection
+ by joystick' check box to Startup Options.&nbsp; Allows navigation and
+ game launch via controller<span class=GramE>:</span><br>
+ joystick 1 up = up arrow<br>
+ joystick 1 down = down arrow<br>
+ joystick 1 left = left arrow<br>
+ joystick 1 right = right arrow<br>
+ joystick 1 button 1 = play game<br>
+ joystick 1 button 2 = page up<br>
+ joystick 1 button 5 = page down<br>
+ joystick 1 button 3 = end<br>
+ joystick 1 button 6 = home. [<b>Chris Kirmse</b>]<span style='font-size:
+ 12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l15 level1 lfo17;tab-stops:list .5in'>Fixed a few files to allow
+ a MinGW compile without errors. [<b>Sword</b>]<span style='font-size:12.0pt;
+ font-family:"Times New Roman"'><o:p></o:p></span></li>
+ <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
+ mso-list:l15 level1 lfo17;tab-stops:list .5in'>Added 'Broadcast selected game
+ to all windows' check box in Startup Options, this allows third party
+ applications to be programmatically told what game is being played in
+ MameUI.&nbsp; It can be used to hook into applications like LED reader
+ boards, or instant message clients, etc. [<b>Chris Kirmse</b>]<span
+ style='font-size:12.0pt;font-family:"Times New Roman"'><o:p></o:p></span></li>
+</ul>
+
+<p><font size="1">
+<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y-%m-%d %I:%M %p %Z" startspan -->2008-09-23 09:01 PM -0700<!--webbot bot="Timestamp" endspan i-checksum="37950" -->/ <span class=GramE>john</span> iv</font></p>
+
+</div>
+
+</body>
+
+</html> \ No newline at end of file
diff --git a/src/osd/winui/help/images/1.jpg b/src/osd/winui/help/images/1.jpg
new file mode 100644
index 00000000000..0ea95f36b2c
--- /dev/null
+++ b/src/osd/winui/help/images/1.jpg
Binary files differ
diff --git a/src/osd/winui/help/images/2.jpg b/src/osd/winui/help/images/2.jpg
new file mode 100644
index 00000000000..645f70feab9
--- /dev/null
+++ b/src/osd/winui/help/images/2.jpg
Binary files differ
diff --git a/src/osd/winui/help/images/3.jpg b/src/osd/winui/help/images/3.jpg
new file mode 100644
index 00000000000..4eb620fd2fe
--- /dev/null
+++ b/src/osd/winui/help/images/3.jpg
Binary files differ
diff --git a/src/osd/winui/help/images/4.jpg b/src/osd/winui/help/images/4.jpg
new file mode 100644
index 00000000000..76b3c7c1176
--- /dev/null
+++ b/src/osd/winui/help/images/4.jpg
Binary files differ
diff --git a/src/osd/winui/help/images/5.jpg b/src/osd/winui/help/images/5.jpg
new file mode 100644
index 00000000000..ee797a92b1b
--- /dev/null
+++ b/src/osd/winui/help/images/5.jpg
Binary files differ
diff --git a/src/osd/winui/help/images/6.jpg b/src/osd/winui/help/images/6.jpg
new file mode 100644
index 00000000000..c2d6e48d904
--- /dev/null
+++ b/src/osd/winui/help/images/6.jpg
Binary files differ
diff --git a/src/osd/winui/help/images/7.jpg b/src/osd/winui/help/images/7.jpg
new file mode 100644
index 00000000000..1635cfe0ccd
--- /dev/null
+++ b/src/osd/winui/help/images/7.jpg
Binary files differ
diff --git a/src/osd/winui/help/images/8.jpg b/src/osd/winui/help/images/8.jpg
new file mode 100644
index 00000000000..8c18f298077
--- /dev/null
+++ b/src/osd/winui/help/images/8.jpg
Binary files differ
diff --git a/src/osd/winui/help/images/bkground.gif b/src/osd/winui/help/images/bkground.gif
new file mode 100644
index 00000000000..3fc4ac0a81a
--- /dev/null
+++ b/src/osd/winui/help/images/bkground.gif
Binary files differ
diff --git a/src/osd/winui/help/images/folder.gif b/src/osd/winui/help/images/folder.gif
new file mode 100644
index 00000000000..e28e6f4033c
--- /dev/null
+++ b/src/osd/winui/help/images/folder.gif
Binary files differ
diff --git a/src/osd/winui/help/images/int.jpg b/src/osd/winui/help/images/int.jpg
new file mode 100644
index 00000000000..cab16e39c26
--- /dev/null
+++ b/src/osd/winui/help/images/int.jpg
Binary files differ
diff --git a/src/osd/winui/help/images/mame321.gif b/src/osd/winui/help/images/mame321.gif
new file mode 100644
index 00000000000..4260dc3848a
--- /dev/null
+++ b/src/osd/winui/help/images/mame321.gif
Binary files differ
diff --git a/src/osd/winui/help/images/statusbar.gif b/src/osd/winui/help/images/statusbar.gif
new file mode 100644
index 00000000000..8619a6f618d
--- /dev/null
+++ b/src/osd/winui/help/images/statusbar.gif
Binary files differ
diff --git a/src/osd/winui/help/images/toolbar.gif b/src/osd/winui/help/images/toolbar.gif
new file mode 100644
index 00000000000..3a1d1ad5ed3
--- /dev/null
+++ b/src/osd/winui/help/images/toolbar.gif
Binary files differ
diff --git a/src/osd/winui/help/mameui.hhc b/src/osd/winui/help/mameui.hhc
new file mode 100644
index 00000000000..e989d217a60
--- /dev/null
+++ b/src/osd/winui/help/mameui.hhc
@@ -0,0 +1,122 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<HTML>
+<HEAD>
+<meta name="GENERATOR" content="Microsoft&reg; HTML Help Workshop 4.1">
+<!-- Sitemap 1.0 -->
+</HEAD><BODY>
+<OBJECT type="text/site properties">
+ <param name="Window Styles" value="0x800625">
+ <param name="ImageType" value="Folder">
+<param name="Font" value="Tahoma,8,0">
+</OBJECT>
+<UL>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="MameUI Overview &amp; History">
+ <param name="Local" value="html\mameui_overview.htm">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="MameUI Changes">
+ <param name="Local" value="html\mameui_whatsnew32.htm">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="MameUI Installation">
+ </OBJECT>
+ <UL>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="System Requirements">
+ <param name="Local" value="html\mameui_systemreq.htm">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Download Locations">
+ <param name="Local" value="html\mameUI_download.htm">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Installation Procedures">
+ <param name="Local" value="html\mameUI_installprocedures.htm">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Art and Support Files">
+ <param name="Local" value="html\mameUI_art.htm">
+ </OBJECT>
+ </UL>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="MameUI Usage">
+ </OBJECT>
+ <UL>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="MameUI Suggested Settings">
+ <param name="Local" value="html\mameui_settings.htm">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Playing a Game &amp; Internal Controls">
+ <param name="Local" value="html\mameui_playing.htm">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Toolbar, Status Bar, &amp; Windows">
+ <param name="Local" value="html\mameui_visual_elements.htm">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="File Menu">
+ <param name="Local" value="html\mameui_filemenu.htm">
+ </OBJECT>
+ <UL>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Game Properties">
+ <param name="Local" value="html\mameui_properties.htm">
+ </OBJECT>
+ </UL>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="View Menu">
+ <param name="Local" value="html\mameui_viewmenu.htm">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Options Menu">
+ <param name="Local" value="html\mameui_optionsmenu.htm">
+ </OBJECT>
+ <UL>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Game Properties">
+ <param name="Local" value="html\mameui_properties.htm">
+ </OBJECT>
+ </UL>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Help Menu">
+ <param name="Local" value="html\mameui_help.htm">
+ </OBJECT>
+ </UL>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="MameUI Troubleshooting">
+ <param name="Local" value="html\mameui_support.htm">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="MameUI Credits &amp; Resources">
+ <param name="Local" value="html\mameui_credits.htm">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Game Changes">
+ <param name="Local" value="html\mameui_changes.txt">
+ <param name="New" value="1">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Mame Documents">
+ </OBJECT>
+ <UL>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Mame License">
+ <param name="Local" value="docs\Mame License.htm">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Mame Terms of Use">
+ <param name="Local" value="docs\Mame Statement of Purpose.htm">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Mame Release Notes">
+ <param name="Local" value="docs\whatsnew.txt">
+ </OBJECT>
+ <LI> <OBJECT type="text/sitemap">
+ <param name="Name" value="Mame Configuration &amp; Usage">
+ <param name="Local" value="docs\Command Line Settings.htm">
+ </OBJECT>
+ </UL>
+</UL>
+</BODY></HTML>
diff --git a/src/osd/winui/help/mameui.hhk b/src/osd/winui/help/mameui.hhk
new file mode 100644
index 00000000000..c0ba08a9ac4
--- /dev/null
+++ b/src/osd/winui/help/mameui.hhk
@@ -0,0 +1,9 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<HTML>
+<HEAD>
+<meta name="GENERATOR" content="Microsoft&reg; HTML Help Workshop 4.1">
+<!-- Sitemap 1.0 -->
+</HEAD><BODY>
+<UL>
+</UL>
+</BODY></HTML>
diff --git a/src/osd/winui/help/mameui.hhp b/src/osd/winui/help/mameui.hhp
new file mode 100644
index 00000000000..c0e4e40c160
--- /dev/null
+++ b/src/osd/winui/help/mameui.hhp
@@ -0,0 +1,24 @@
+[OPTIONS]
+Binary Index=No
+Compatibility=1.1 or later
+Compiled file=MameUI.chm
+Contents file=mameui.hhc
+Default Window=Baseline
+Default topic=.\html\mameUI_changes.txt
+Display compile progress=No
+Full text search stop list file=stoplist.stp
+Full-text search=Yes
+Index file=mameui.hhk
+Language=0x409 English (United States)
+Title=MameUI Help
+
+[WINDOWS]
+Baseline="MameUI Help","mameUI.hhc",,"html\mameUI_changes.txt",,,,,,0x22520,260,0x300c,[100,100,974,615],,,,,,,0
+
+
+[TEXT POPUPS]
+cntx_help.txt
+reshelp.h
+
+[INFOTYPES]
+
diff --git a/src/osd/winui/help/mameui.hm b/src/osd/winui/help/mameui.hm
new file mode 100644
index 00000000000..a1f1e82f2ea
--- /dev/null
+++ b/src/osd/winui/help/mameui.hm
@@ -0,0 +1,135 @@
+// MAKEHELP.BAT generated Help Map file. Used by MAME32.HHP.
+
+// Commands (ID_* and IDM_*)
+HID_TOOLBAR_EDIT 0x1005C
+HID_CONTEXT_SHOW_FOLDER_START 0x19858
+HID_CONTEXT_SHOW_FOLDER_END 0x19920
+HID_FILE_EXIT 0x19C41
+HID_ABOUT 0x19C43
+HID_FILE_PLAY 0x19C44
+HID_HELP_ABOUT 0x19C46
+HID_VIEW_LARGE_ICON 0x19C47
+HID_VIEW_SMALL_ICON 0x19C48
+HID_VIEW_LIST_MENU 0x19C49
+HID_VIEW_DETAIL 0x19C4A
+HID_VIEW_GROUPED 0x19C4B
+HID_OPTIONS_FONT 0x19C4C
+HID_OPTIONS_CLONE_COLOR 0x19C4D
+HID_OPTIONS_DIR 0x19C4E
+HID_OPTIONS_DEFAULTS 0x19C4F
+HID_OPTIONS_RESET_DEFAULTS 0x19C50
+HID_OPTIONS_INTERFACE 0x19C51
+HID_FILE_AUDIT 0x19C52
+HID_FILE_PLAY_RECORD 0x19C53
+HID_FILE_PLAY_BACK 0x19C54
+HID_FILE_PLAY_RECORD_WAVE 0x19C55
+HID_FILE_PLAY_RECORD_MNG 0x19C56
+HID_VIEW_PICTURE_AREA 0x19C57
+HID_FILE_PLAY_RECORD_AVI 0x19C58
+HID_HELP_CONTENTS 0x19C59
+HID_HELP_WHATS_NEW32 0x19C5A
+HID_HELP_TROUBLE 0x19C5B
+HID_HELP_RELEASE 0x19C5C
+HID_HELP_WHATS_NEW 0x19C5D
+HID_HELP_CHEATS 0x19C5E
+HID_VIEW_BYGAME 0x19C62
+HID_VIEW_BYDIRECTORY 0x19C63
+HID_VIEW_BYMANUFACTURER 0x19C64
+HID_VIEW_BYYEAR 0x19C65
+HID_VIEW_BYTYPE 0x19C66
+HID_VIEW_BYTIMESPLAYED 0x19C67
+HID_VIEW_LINEUPICONS 0x19C68
+HID_UPDATE_GAMELIST 0x19C6A
+HID_SORT_ASCENDING 0x19C6D
+HID_SORT_DESCENDING 0x19C6E
+HID_CUSTOMIZE_FIELDS 0x19C70
+HID_GAME_PROPERTIES 0x19C71
+HID_VIEW_PAGETAB 0x19C72
+HID_VIEW_FOLDERS 0x19C73
+HID_VIEW_TOOLBARS 0x19C74
+HID_VIEW_STATUS 0x19C75
+HID_CONTEXT_FILTERS 0x19C76
+HID_CONTEXT_RENAME_CUSTOM 0x19C77
+HID_CONTEXT_ADD_CUSTOM 0x19C79
+HID_CONTEXT_REMOVE_CUSTOM 0x19C7A
+HID_GAME_AUDIT 0x19C7B
+HID_CONTEXT_SELECT_RANDOM 0x19C7C
+HID_OPTIONS_LANGUAGE 0x19C7D
+HID_VIEW_TAB_SCREENSHOT 0x19C7E
+HID_VIEW_TAB_FLYER 0x19C7F
+HID_VIEW_TAB_CABINET 0x19C80
+HID_VIEW_TAB_MARQUEE 0x19C81
+HID_VIEW_TAB_TITLE 0x19C82
+HID_VIEW_TAB_CONTROL_PANEL 0x19C83
+HID_VIEW_TAB_PCB 0x19C84
+HID_VIEW_TAB_HISTORY 0x19C85
+HID_OPTIONS_BG 0x19C86
+HID_TOGGLE_TAB_SCREENSHOT 0x19C87
+HID_TOGGLE_TAB_FLYER 0x19C88
+HID_TOGGLE_TAB_CABINET 0x19C89
+HID_TOGGLE_TAB_MARQUEE 0x19C8A
+HID_TOGGLE_TAB_TITLE 0x19C8B
+HID_TOGGLE_TAB_CONTROL_PANEL 0x19C8C
+HID_TOGGLE_TAB_PCB 0x19C8D
+HID_TOGGLE_TAB_HISTORY 0x19C8E
+HID_VIEW_FULLSCREEN 0x19C8F
+HID_CONTEXT_RESET_PLAYTIME 0x19C90
+HID_CONTEXT_RESET_PLAYCOUNT 0x19C91
+HID_FOLDER_PROPERTIES 0x19C92
+HID_FOLDER_AUDIT 0x19C93
+HID_UI_UP 0x19C94
+HID_UI_DOWN 0x19C95
+HID_UI_LEFT 0x19C96
+HID_UI_RIGHT 0x19C97
+HID_UI_START 0x19C98
+HID_UI_PGUP 0x19C99
+HID_UI_PGDOWN 0x19C9A
+HID_UI_HOME 0x19C9B
+HID_UI_END 0x19C9C
+HID_UI_HISTORY_UP 0x19C9D
+HID_UI_HISTORY_DOWN 0x19C9E
+HID_FILE_LOADSTATE 0x19C9F
+HID_FOLDER_SOURCEPROPERTIES 0x19CA0
+HID_FOLDER_VECTORPROPERTIES 0x19CA1
+HID_ARRANGE_ICONS 0x19CA2
+
+// Prompts (IDP_*)
+
+// Resources (IDR_*)
+HIDR_MAIN_MENU 0x2006D
+HIDR_UI_MENU 0x2006E
+HIDR_CONTEXT_MENU 0x20076
+HIDR_CONTEXT_HEADER 0x20097
+HIDR_CONTEXT_TREE 0x200A8
+HIDR_CONTEXT_SCREENSHOT 0x200B5
+
+// Dialogs (IDD_*)
+HIDD_MAIN 0x20065
+HIDD_ABOUT 0x2006C
+HIDD_DIRECTX 0x20072
+HIDD_AUDIT 0x20073
+HIDD_DIRECTORIES 0x20074
+HIDD_CUSTOM_FILE 0x20075
+HIDD_PROP_GAME 0x20098
+HIDD_PROP_AUDIT 0x20099
+HIDD_PROP_DISPLAY 0x2009A
+HIDD_PROP_SOUND 0x2009B
+HIDD_PROP_ADVANCED 0x2009C
+HIDD_PROP_INPUT 0x2009D
+HIDD_PROP_MISC 0x2009E
+HIDD_PROP_VECTOR 0x2009F
+HIDD_COLUMNS 0x200A0
+HIDD_FILTERS 0x200A9
+HIDD_RESET 0x200AA
+HIDD_LOAD_PROGRESS 0x200AB
+HIDD_INTERFACE_OPTIONS 0x200AD
+HIDD_PROP_HISTORY 0x200B0
+HIDD_ROM_ERROR 0x200B1
+HIDD_LANGUAGE 0x200B2
+HIDD_ERROR 0x200B3
+HIDD_PROP_DIRECT3D 0x200B8
+HIDD_PROP_CONTROLLER 0x200B9
+HIDD_PROP_SCREEN 0x200BB
+
+// Frame Controls (IDW_*)
+HIDW_STATUS 0x50070
diff --git a/src/osd/winui/help/reshelp.h b/src/osd/winui/help/reshelp.h
new file mode 100644
index 00000000000..709a8058cb1
--- /dev/null
+++ b/src/osd/winui/help/reshelp.h
@@ -0,0 +1,4 @@
+// Include the Microsoft Developer Studio generated Help ID include file.
+//
+#include "..\resource.hm"
+#include "mame32.hm"
diff --git a/src/osd/winui/help/stoplist.stp b/src/osd/winui/help/stoplist.stp
new file mode 100644
index 00000000000..11255546e24
--- /dev/null
+++ b/src/osd/winui/help/stoplist.stp
@@ -0,0 +1,88 @@
+a
+about
+after
+against
+all
+also
+among
+an
+and
+are
+as
+at
+be
+became
+because
+been
+between
+but
+by
+can
+come
+do
+during
+each
+early
+for
+form
+found
+from
+had
+has
+have
+he
+mame32
+his
+however
+in
+include
+into
+is
+it
+its
+late
+later
+me
+med
+made
+many
+may
+more
+most
+near
+no
+non
+not
+of
+on
+only
+or
+other
+over
+several
+she
+some
+such
+than
+that
+the
+their
+then
+there
+these
+they
+this
+through
+to
+under
+until
+use
+was
+we
+were
+when
+where
+which
+who
+with
+you \ No newline at end of file
diff --git a/src/osd/winui/helpids.cpp b/src/osd/winui/helpids.cpp
new file mode 100644
index 00000000000..31e5e15ffc4
--- /dev/null
+++ b/src/osd/winui/helpids.cpp
@@ -0,0 +1,125 @@
+/*
+ * Help ID array - Generated by mkhelp
+ */
+
+#include <windows.h>
+#include "resource.h"
+#include "resource.hm"
+
+extern const DWORD dwHelpIDs[] =
+{
+ IDC_ADSTICK ,HIDC_ADSTICK,
+ IDC_ARTWORK_CROP ,HIDC_ARTWORK_CROP,
+ IDC_ASPECT ,HIDC_ASPECT,
+ IDC_ASPECTRATIOD ,HIDC_ASPECTRATIOD,
+ IDC_ASPECTRATION ,HIDC_ASPECTRATION,
+ IDC_AUDIO_LATENCY ,HIDC_AUDIO_LATENCY,
+ IDC_AUTOFRAMESKIP ,HIDC_AUTOFRAMESKIP,
+ IDC_BACKDROPS ,HIDC_BACKDROPS,
+ IDC_BEAM ,HIDC_BEAM,
+ IDC_BEZELS ,HIDC_BEZELS,
+ IDC_BIOS ,HIDC_BIOS,
+ IDC_BRIGHTCORRECT ,HIDC_BRIGHTCORRECT,
+ IDC_CHEAT ,HIDC_CHEAT,
+ IDC_COINLOCKOUT ,HIDC_COINLOCKOUT,
+ IDC_CONTRAST ,HIDC_CONTRAST,
+ IDC_CYCLETIMESEC ,HIDC_CYCLETIMESEC,
+ IDC_D3D_FILTER ,HIDC_D3D_FILTER,
+ IDC_DEBUG ,HIDC_DEBUG,
+ IDC_DEFAULT_INPUT ,HIDC_DEFAULT_INPUT,
+ IDC_DIAL ,HIDC_DIAL,
+ IDC_DUAL_LIGHTGUN ,HIDC_DUAL_LIGHTGUN,
+ IDC_ENABLE_AUTOSAVE ,HIDC_ENABLE_AUTOSAVE,
+ IDC_FILTER_CLONES ,HIDC_FILTER_CLONES,
+ IDC_FILTER_EDIT ,HIDC_FILTER_EDIT,
+ IDC_FILTER_HORIZONTAL ,HIDC_FILTER_HORIZONTAL,
+ IDC_FILTER_MECHANICAL ,HIDC_FILTER_MECHANICAL,
+ IDC_FILTER_NONWORKING ,HIDC_FILTER_NONWORKING,
+ IDC_FILTER_ORIGINALS ,HIDC_FILTER_ORIGINALS,
+ IDC_FILTER_RASTER ,HIDC_FILTER_RASTER,
+ IDC_FILTER_UNAVAILABLE ,HIDC_FILTER_UNAVAILABLE,
+ IDC_FILTER_VECTOR ,HIDC_FILTER_VECTOR,
+ IDC_FILTER_VERTICAL ,HIDC_FILTER_VERTICAL,
+ IDC_FILTER_WORKING ,HIDC_FILTER_WORKING,
+ IDC_FLICKER ,HIDC_FLICKER,
+ IDC_FLIPX ,HIDC_FLIPX,
+ IDC_FLIPY ,HIDC_FLIPY,
+ IDC_FRAMESKIP ,HIDC_FRAMESKIP,
+ IDC_FSBRIGHTNESS ,HIDC_FSBRIGHTNESS,
+ IDC_FSCONTRAST ,HIDC_FSCONTRAST,
+ IDC_FSGAMMA ,HIDC_FSGAMMA,
+ IDC_GAMMA ,HIDC_GAMMA,
+ IDC_HIDE_MOUSE ,HIDC_HIDE_MOUSE,
+ IDC_HIGH_PRIORITY ,HIDC_HIGH_PRIORITY,
+ IDC_HISTORY ,HIDC_HISTORY,
+ IDC_HWSTRETCH ,HIDC_HWSTRETCH,
+ IDC_JDZ ,HIDC_JDZ,
+ IDC_JOY_GUI ,HIDC_JOY_GUI,
+ IDC_JOYSTICK ,HIDC_JOYSTICK,
+ IDC_JSAT ,HIDC_JSAT,
+ IDC_KEEPASPECT ,HIDC_KEEPASPECT,
+ IDC_LIGHTGUN ,HIDC_LIGHTGUN,
+ IDC_LIGHTGUNDEVICE ,HIDC_LIGHTGUNDEVICE,
+ IDC_LOG ,HIDC_LOG,
+ IDC_MAXIMIZE ,HIDC_MAXIMIZE,
+ IDC_MOUSE ,HIDC_MOUSE,
+ IDC_MULTIKEYBOARD ,HIDC_MULTIKEYBOARD,
+ IDC_MULTIMOUSE ,HIDC_MULTIMOUSE,
+ IDC_MULTITHREAD_RENDERING ,HIDC_MULTITHREAD_RENDERING,
+ IDC_NUMSCREENS ,HIDC_NUMSCREENS,
+ IDC_OSLOG ,HIDC_OSLOG,
+ IDC_OVERLAYS ,HIDC_OVERLAYS,
+ IDC_PADDLE ,HIDC_PADDLE,
+ IDC_PAUSEBRIGHT ,HIDC_PAUSEBRIGHT,
+ IDC_PEDAL ,HIDC_PEDAL,
+ IDC_POSITIONAL ,HIDC_POSITIONAL,
+ IDC_PRESCALE ,HIDC_PRESCALE,
+ IDC_PROP_RESET ,HIDC_PROP_RESET,
+ IDC_REFRESH ,HIDC_REFRESH,
+ IDC_REFRESHSPEED ,HIDC_REFRESHSPEED,
+ IDC_RELOAD ,HIDC_RELOAD,
+ IDC_RESET_DEBUGSCRIPT ,HIDC_RESET_DEBUGSCRIPT,
+ IDC_RESET_DEFAULT ,HIDC_RESET_DEFAULT,
+ IDC_RESET_EFFECT ,HIDC_RESET_EFFECT,
+ IDC_RESET_FILTERS ,HIDC_RESET_FILTERS,
+ IDC_RESET_GAMES ,HIDC_RESET_GAMES,
+ IDC_RESET_JOYSTICKMAP ,HIDC_RESET_JOYSTICKMAP,
+ IDC_RESET_UI ,HIDC_RESET_UI,
+ IDC_ROTATE ,HIDC_ROTATE,
+ IDC_SAMPLERATE ,HIDC_SAMPLERATE,
+ IDC_SAMPLES ,HIDC_SAMPLES,
+ IDC_SCREEN ,HIDC_SCREEN,
+ IDC_SCREENSELECT ,HIDC_SCREENSELECT,
+ IDC_SECONDSTORUN ,HIDC_SECONDSTORUN,
+ IDC_SELECT_DEBUGSCRIPT ,HIDC_SELECT_DEBUGSCRIPT,
+ IDC_SELECT_EFFECT ,HIDC_SELECT_EFFECT,
+ IDC_SELECT_JOYSTICKMAP ,HIDC_SELECT_JOYSTICKMAP,
+ IDC_SIZES ,HIDC_SIZES,
+ IDC_SKIP_GAME_INFO ,HIDC_SKIP_GAME_INFO,
+ IDC_SLEEP ,HIDC_SLEEP,
+ IDC_SNAPNAME ,HIDC_SNAPNAME,
+ IDC_SNAPSIZE ,HIDC_SNAPSIZE,
+ IDC_SNAPSIZEHEIGHT ,HIDC_SNAPSIZEHEIGHT,
+ IDC_SNAPSIZEWIDTH ,HIDC_SNAPSIZEWIDTH,
+ IDC_SNAPVIEW ,HIDC_SNAPVIEW,
+ IDC_SPEED ,HIDC_SPEED,
+ IDC_START_GAME_CHECK ,HIDC_START_GAME_CHECK,
+ IDC_STEADYKEY ,HIDC_STEADYKEY,
+ IDC_STRETCH_SCREENSHOT_LARGER ,HIDC_STRETCH_SCREENSHOT_LARGER,
+ IDC_SWITCHRES ,HIDC_SWITCHRES,
+ IDC_SYNCREFRESH ,HIDC_SYNCREFRESH,
+ IDC_THROTTLE ,HIDC_THROTTLE,
+ IDC_TRACKBALL ,HIDC_TRACKBALL,
+ IDC_TRIPLE_BUFFER ,HIDC_TRIPLE_BUFFER,
+ IDC_UPDATEINPAUSE ,HIDC_UPDATEINPAUSE,
+ IDC_USE_DEFAULT ,HIDC_USE_DEFAULT,
+ IDC_USE_MOUSE ,HIDC_USE_MOUSE,
+ IDC_VERBOSE ,HIDC_VERBOSE,
+ IDC_VIDEO_MODE ,HIDC_VIDEO_MODE,
+ IDC_VIEW ,HIDC_VIEW,
+ IDC_VOLUME ,HIDC_VOLUME,
+ IDC_WAITVSYNC ,HIDC_WAITVSYNC,
+ IDC_WINDOWED ,HIDC_WINDOWED,
+ 0 ,0
+
+};
diff --git a/src/osd/winui/history.cpp b/src/osd/winui/history.cpp
new file mode 100644
index 00000000000..83452b36d13
--- /dev/null
+++ b/src/osd/winui/history.cpp
@@ -0,0 +1,665 @@
+// For licensing and usage information, read docs/winui_license.txt
+// MASTER
+/***************************************************************************
+
+ history.cpp
+
+ * history functions.
+ * History database engine
+ * Collect all information on the selected driver, and return it as
+ * a string. Called by winui.cpp
+
+ * Token parsing by Neil Bradley
+ * Modifications and higher-level functions by John Butler
+
+ * Further work by Mamesick and Robbbert
+
+ * Completely rewritten by Robbbert in July 2017
+ * Notes:
+ * - The order listed in m_gameInfo is the order the data is displayed.
+ * - The other tables must have the files in the same places so that
+ * the index numbers line up. Anything with NULL indicates an
+ * unsupported option (the file doesn't contain the info).
+ * - Each table must contain at least MAX_HFILES members (extra lines
+ * are ignored)
+ * - Software comes first, followed by Game then Source.
+***************************************************************************/
+// license:BSD-3-Clause
+// copyright-holders:Chris Kirmse, Mike Haaland, René Single, Mamesick, Robbbert
+
+#include <windows.h>
+#include <fstream>
+
+// MAME/MAMEUI headers
+#include "emu.h"
+#include "screen.h"
+#include "speaker.h"
+#include "drivenum.h"
+#include "mui_util.h"
+#include "mui_opts.h"
+#include "sound/samples.h"
+
+#define WINUI_ARRAY_LENGTH(x) (sizeof(x) / sizeof(x[0]))
+
+
+/****************************************************************************
+ * struct definitions
+ ****************************************************************************/
+typedef struct
+{
+ LPCSTR filename;
+ LPCSTR header;
+ LPCSTR descriptor;
+ bool bClone; // if nothing found for a clone, try the parent
+}
+HGAMEINFO;
+
+typedef struct
+{
+ LPCSTR filename;
+ LPCSTR header;
+ LPCSTR descriptor;
+}
+HSOURCEINFO;
+
+/*************************** START CONFIGURABLE AREA *******************************/
+// number of dats we support
+#define MAX_HFILES 8
+// The order of these is the order they are displayed
+const HGAMEINFO m_gameInfo[MAX_HFILES] =
+{
+ { "history.dat", "\n**** :HISTORY: ****\n\n", "$bio", 1 },
+ { "sysinfo.dat", "\n**** :SYSINFO: ****\n\n", "$bio", 1 },
+ { "messinfo.dat", "\n**** :MESSINFO: ****\n\n", "$mame", 1 },
+ { "mameinfo.dat", "\n**** :MAMEINFO: ****\n\n", "$mame", 1 },
+ { "gameinit.dat", "\n**** :GAMEINIT: ****\n\n", "$mame", 1 },
+ { "command.dat", "\n**** :COMMANDS: ****\n\n", "$cmd", 1 },
+ { "story.dat", "\n**** :HIGH SCORES: ****\n\n", "$story", 0 },
+ { "marp.dat", "\n**** :MARP HIGH SCORES: ****\n\n", "$marp", 0 },
+};
+
+const HSOURCEINFO m_sourceInfo[MAX_HFILES] =
+{
+ { NULL },
+ { NULL },
+ { "messinfo.dat", "\n***:MESSINFO DRIVER: ", "$drv" },
+ { "mameinfo.dat", "\n***:MAMEINFO DRIVER: ", "$drv" },
+ { NULL },
+ { NULL },
+ { NULL },
+ { NULL },
+};
+
+const HSOURCEINFO m_swInfo[MAX_HFILES] =
+{
+ { "history.dat", "\n**** :HISTORY item: ", "$bio" },
+ { NULL },
+ { NULL },
+ { NULL },
+ { NULL },
+ { NULL },
+ { NULL },
+ { NULL },
+};
+
+/*************************** END CONFIGURABLE AREA *******************************/
+
+int file_sizes[MAX_HFILES] = { 0, };
+std::map<std::string, std::streampos> mymap[MAX_HFILES];
+
+static bool create_index(std::ifstream &fp, int filenum)
+{
+ if (!fp.good())
+ return false;
+ // get file size
+ fp.seekg(0, std::ios::end);
+ size_t file_size = fp.tellg();
+ // same file as before?
+ if (file_size == file_sizes[filenum])
+ return true;
+ // new file, it needs to be indexed
+ mymap[filenum].clear();
+ file_sizes[filenum] = file_size;
+ fp.seekg(0);
+ std::string file_line, first, second;
+ std::getline(fp, file_line);
+ int position = file_line.size() + 2; // tellg is buggy, this works and is faster
+ while (fp.good())
+ {
+ char t1 = file_line[0];
+ if ((std::count(file_line.begin(),file_line.end(),'=') == 1) && (t1 == '$')) // line must start with $ and contain one =
+ {
+ // now start by removing all spaces
+ file_line.erase(remove_if(file_line.begin(), file_line.end(), ::isspace), file_line.end());
+ char s[file_line.length()+1];
+ strcpy(s, file_line.c_str());
+
+ const char* first = strtok(s, "="); // get first part of key
+ char* second = strtok(NULL, ","); // get second part
+ while (second)
+ {
+ // store into index
+ mymap[filenum][std::string(first) + std::string("=") + std::string(second)] = position;
+ second = strtok(NULL, ",");
+ }
+ }
+ std::getline(fp, file_line);
+ position += (file_line.size() + 2);
+ }
+ // check contents
+// if (filenum == 0)
+// for (auto const &it : mymap[filenum])
+// printf("%s = %X\n", it.first.c_str(), int(it.second));
+ return true;
+}
+
+static std::string load_datafile_text(std::ifstream &fp, std::string keycode, int filenum, const char *tag)
+{
+ std::string readbuf;
+
+ auto search = mymap[filenum].find(keycode);
+ if (search != mymap[filenum].end())
+ {
+ std::streampos offset = mymap[filenum].find(keycode)->second;
+ fp.seekg(offset);
+ std::string file_line;
+
+ /* read text until buffer is full or end of entry is encountered */
+ while (std::getline(fp, file_line))
+ {
+ //printf("%s\n",file_line.c_str());
+ if (file_line.find("$end")==0)
+ break;
+
+ if (file_line.find(tag)==0)
+ continue;
+
+ readbuf.append(file_line).append("\n");
+ }
+ }
+
+ return readbuf;
+}
+
+std::string load_swinfo(const game_driver *drv, const char* datsdir, std::string software, int filenum)
+{
+ std::string buffer;
+ // if it's a NULL record exit now
+ if (!m_swInfo[filenum].filename)
+ return buffer;
+
+ // datafile name
+ std::string buf, filename = datsdir + std::string("\\") + m_swInfo[filenum].filename;
+ std::ifstream fp (filename);
+
+ /* try to open datafile */
+ if (create_index(fp, filenum))
+ {
+ size_t i = software.find(":");
+ std::string ssys = software.substr(0, i);
+ std::string ssoft = software.substr(i+1);
+ std::string first = std::string("$") + ssys + std::string("=") + ssoft;
+ // get info on software
+ buf = load_datafile_text(fp, first, filenum, m_swInfo[filenum].descriptor);
+
+ if (!buf.empty())
+ buffer.append(m_swInfo[filenum].header).append(ssoft).append("\n").append(buf).append("\n\n\n");
+
+ fp.close();
+ }
+
+ return buffer;
+}
+
+std::string load_gameinfo(const game_driver *drv, const char* datsdir, int filenum)
+{
+ std::string buffer;
+ // if it's a NULL record exit now
+ if (!m_gameInfo[filenum].filename)
+ return buffer;
+
+ // datafile name
+ std::string buf, filename = datsdir + std::string("\\") + m_gameInfo[filenum].filename;
+ std::ifstream fp (filename);
+
+ /* try to open datafile */
+ if (create_index(fp, filenum))
+ {
+ std::string first = std::string("$info=")+drv->name;
+ // get info on game
+ buf = load_datafile_text(fp, first, filenum, m_gameInfo[filenum].descriptor);
+
+ // if nothing, and it's a clone, and it's allowed, try the parent
+ if (buf.empty() && m_gameInfo[filenum].bClone)
+ {
+ int g = driver_list::clone(*drv);
+ if (g != -1)
+ {
+ drv = &driver_list::driver(g);
+ first = std::string("$info=")+drv->name;
+ buf = load_datafile_text(fp, first, filenum, m_gameInfo[filenum].descriptor);
+ }
+ }
+
+ if (!buf.empty())
+ buffer.append(m_gameInfo[filenum].header).append(buf).append("\n\n\n");
+
+ fp.close();
+ }
+
+ return buffer;
+}
+
+std::string load_sourceinfo(const game_driver *drv, const char* datsdir, int filenum)
+{
+ std::string buffer;
+ // if it's a NULL record exit now
+ if (!m_sourceInfo[filenum].filename)
+ return buffer;
+
+ // datafile name
+ std::string buf, filename = datsdir + std::string("\\") + m_sourceInfo[filenum].filename;
+ std::ifstream fp (filename);
+
+ std::string source = drv->type.source();
+ size_t i = source.find_last_of("/");
+ source.erase(0,i+1);
+
+ if (create_index(fp, filenum))
+ {
+ std::string first = std::string("$info=")+source;
+ // get info on game driver source
+ buf = load_datafile_text(fp, first, filenum, m_sourceInfo[filenum].descriptor);
+
+ if (!buf.empty())
+ buffer.append(m_sourceInfo[filenum].header).append(source).append("\n").append(buf).append("\n\n\n");
+
+ fp.close();
+ }
+
+ return buffer;
+}
+
+
+// General hardware information
+std::string load_driver_geninfo(const game_driver *drv, int drvindex)
+{
+ machine_config config(*drv, MameUIGlobal());
+ const game_driver *parent = NULL;
+ char name[512];
+ bool is_bios = false;
+ std::string buffer = "\n**** :GENERAL MACHINE INFO: ****\n\n";
+
+ /* List the game info 'flags' */
+ uint32_t cache = GetDriverCacheLower(drvindex);
+ if (BIT(cache, 6))
+ buffer.append("This game doesn't work properly\n");
+
+ if (BIT(cache, 22))
+ buffer.append("This game has protection which isn't fully emulated.\n");
+
+ if (BIT(cache, 18))
+ buffer.append("The video emulation isn't 100% accurate.\n");
+
+ if (BIT(cache, 21))
+ buffer.append("The colors are completely wrong.\n");
+
+ if (BIT(cache, 20))
+ buffer.append("The colors aren't 100% accurate.\n");
+
+ if (BIT(cache, 17))
+ buffer.append("This game lacks sound.\n");
+
+ if (BIT(cache, 16))
+ buffer.append("The sound emulation isn't 100% accurate.\n");
+
+ if (BIT(cache, 7))
+ buffer.append("Save state not supported.\n");
+
+ if (BIT(cache, 14))
+ buffer.append("This game contains mechanical parts.\n");
+
+ if (BIT(cache, 15))
+ buffer.append("This game was never completed.\n");
+
+ if (BIT(cache, 13))
+ buffer.append("This game has no sound hardware.\n");
+
+ buffer.append("\n");
+
+ if (drv->flags & MACHINE_IS_BIOS_ROOT)
+ is_bios = true;
+
+ /* GAME INFORMATIONS */
+ snprintf(name, WINUI_ARRAY_LENGTH(name), "\nGAME: %s\n", drv->name);
+ buffer.append(name);
+ snprintf(name, WINUI_ARRAY_LENGTH(name), "%s", drv->type.fullname());
+ buffer.append(name);
+ snprintf(name, WINUI_ARRAY_LENGTH(name), " (%s %s)\n\nCPU:\n", drv->manufacturer, drv->year);
+ buffer.append(name);
+ /* iterate over CPUs */
+ execute_interface_iterator cpuiter(config.root_device());
+ std::unordered_set<std::string> exectags;
+
+ for (device_execute_interface &exec : cpuiter)
+ {
+ if (!exectags.insert(exec.device().tag()).second)
+ continue;
+
+ int count = 1;
+ int clock = exec.device().clock();
+ const char *cpu_name = exec.device().name();
+
+ for (device_execute_interface &scan : cpuiter)
+ if (exec.device().type() == scan.device().type() && strcmp(cpu_name, scan.device().name()) == 0 && clock == scan.device().clock())
+ if (exectags.insert(scan.device().tag()).second)
+ count++;
+
+ if (count > 1)
+ {
+ snprintf(name, WINUI_ARRAY_LENGTH(name), "%d x ", count);
+ buffer.append(name);
+ }
+
+ if (clock >= 1000000)
+ snprintf(name, WINUI_ARRAY_LENGTH(name), "%s %d.%06d MHz\n", cpu_name, clock / 1000000, clock % 1000000);
+ else
+ snprintf(name, WINUI_ARRAY_LENGTH(name), "%s %d.%03d kHz\n", cpu_name, clock / 1000, clock % 1000);
+
+ buffer.append(name);
+ }
+
+ buffer.append("\nSOUND:\n");
+ int has_sound = 0;
+ /* iterate over sound chips */
+ sound_interface_iterator sounditer(config.root_device());
+ std::unordered_set<std::string> soundtags;
+
+ for (device_sound_interface &sound : sounditer)
+ {
+ if (!soundtags.insert(sound.device().tag()).second)
+ continue;
+
+ has_sound = 1;
+ int count = 1;
+ int clock = sound.device().clock();
+ const char *sound_name = sound.device().name();
+
+ for (device_sound_interface &scan : sounditer)
+ if (sound.device().type() == scan.device().type() && strcmp(sound_name, scan.device().name()) == 0 && clock == scan.device().clock())
+ if (soundtags.insert(scan.device().tag()).second)
+ count++;
+
+ if (count > 1)
+ {
+ snprintf(name, WINUI_ARRAY_LENGTH(name), "%d x ", count);
+ buffer.append(name);
+ }
+
+ buffer.append(sound_name);
+
+ if (clock)
+ {
+ if (clock >= 1000000)
+ snprintf(name, WINUI_ARRAY_LENGTH(name), " %d.%06d MHz", clock / 1000000, clock % 1000000);
+ else
+ snprintf(name, WINUI_ARRAY_LENGTH(name), " %d.%03d kHz", clock / 1000, clock % 1000);
+
+ buffer.append(name);
+ }
+
+ buffer.append("\n");
+ }
+
+ if (has_sound)
+ {
+ speaker_device_iterator audioiter(config.root_device());
+ int channels = audioiter.count();
+
+ if(channels == 1)
+ snprintf(name, WINUI_ARRAY_LENGTH(name), "%d Channel\n", channels);
+ else
+ snprintf(name, WINUI_ARRAY_LENGTH(name), "%d Channels\n", channels);
+
+ buffer.append(name);
+ }
+
+ buffer.append("\nVIDEO:\n");
+ screen_device_iterator screeniter(config.root_device());
+ int scrcount = screeniter.count();
+
+ if (scrcount == 0)
+ buffer.append("Screenless");
+ else
+ {
+ for (screen_device &screen : screeniter)
+ {
+ if (screen.screen_type() == SCREEN_TYPE_VECTOR)
+ buffer.append("Vector");
+ else
+ {
+ const rectangle &visarea = screen.visible_area();
+
+ if (drv->flags & ORIENTATION_SWAP_XY)
+ snprintf(name, WINUI_ARRAY_LENGTH(name), "%d x %d (V) %f Hz", visarea.width(), visarea.height(), ATTOSECONDS_TO_HZ(screen.refresh_attoseconds()));
+ else
+ snprintf(name, WINUI_ARRAY_LENGTH(name), "%d x %d (H) %f Hz", visarea.width(), visarea.height(), ATTOSECONDS_TO_HZ(screen.refresh_attoseconds()));
+
+ buffer.append(name);
+ }
+
+ buffer.append("\n");
+ }
+ }
+
+ buffer.append("\nROM REGION:\n");
+ int g = driver_list::clone(*drv);
+
+ if (g != -1)
+ parent = &driver_list::driver(g);
+
+ for (device_t &device : device_iterator(config.root_device()))
+ {
+ for (const rom_entry *region = rom_first_region(device); region; region = rom_next_region(region))
+ {
+ for (const rom_entry *rom = rom_first_file(region); rom; rom = rom_next_file(rom))
+ {
+ util::hash_collection hashes(ROM_GETHASHDATA(rom));
+
+ if (g != -1)
+ {
+ machine_config pconfig(*parent, MameUIGlobal());
+
+ for (device_t &device : device_iterator(pconfig.root_device()))
+ {
+ for (const rom_entry *pregion = rom_first_region(device); pregion; pregion = rom_next_region(pregion))
+ {
+ for (const rom_entry *prom = rom_first_file(pregion); prom; prom = rom_next_file(prom))
+ {
+ util::hash_collection phashes(ROM_GETHASHDATA(prom));
+
+ if (hashes == phashes)
+ break;
+ }
+ }
+ }
+ }
+
+ snprintf(name, WINUI_ARRAY_LENGTH(name), "%-16s \t", ROM_GETNAME(rom));
+ buffer.append(name);
+ snprintf(name, WINUI_ARRAY_LENGTH(name), "%09d \t", rom_file_size(rom));
+ buffer.append(name);
+ snprintf(name, WINUI_ARRAY_LENGTH(name), "%-10s", ROMREGION_GETTAG(region));
+ buffer.append(name).append("\n");
+ }
+ }
+ }
+
+ for (samples_device &device : samples_device_iterator(config.root_device()))
+ {
+ samples_iterator sampiter(device);
+
+ if (sampiter.altbasename())
+ {
+ snprintf(name, WINUI_ARRAY_LENGTH(name), "\nSAMPLES (%s):\n", sampiter.altbasename());
+ buffer.append(name);
+ }
+
+ std::unordered_set<std::string> already_printed;
+
+ for (const char *samplename = sampiter.first(); samplename; samplename = sampiter.next())
+ {
+ // filter out duplicates
+ if (!already_printed.insert(samplename).second)
+ continue;
+
+ // output the sample name
+ snprintf(name, WINUI_ARRAY_LENGTH(name), "%s.wav\n", samplename);
+ buffer.append(name);
+ }
+ }
+
+ if (!is_bios)
+ {
+ int g = driver_list::clone(*drv);
+
+ if (g != -1)
+ drv = &driver_list::driver(g);
+
+ buffer.append("\nORIGINAL:\n");
+ buffer.append(drv->type.fullname());
+ buffer.append("\n\nCLONES:\n");
+
+ for (int i = 0; i < driver_list::total(); i++)
+ {
+ if (!strcmp (drv->name, driver_list::driver(i).parent))
+ {
+ buffer.append(driver_list::driver(i).type.fullname());
+ buffer.append("\n");
+ }
+ }
+ }
+
+ char source_file[40], tmp[100];
+ std::string temp = core_filename_extract_base(drv->type.source(), false);
+ strcpy(source_file, temp.c_str());
+ snprintf(tmp, WINUI_ARRAY_LENGTH(tmp), "\nGENERAL SOURCE INFO: %s\n", temp.c_str());
+ buffer.append(tmp);
+ buffer.append("\nGAMES SUPPORTED:\n");
+
+ for (int i = 0; i < driver_list::total(); i++)
+ {
+ std::string t1 = driver_list::driver(i).type.source();
+ size_t j = t1.find_last_of("/");
+ t1.erase(0, j+1);
+ if ((strcmp(source_file, t1.c_str())==0) && !(DriverIsBios(i)))
+ buffer.append(driver_list::driver(i).type.fullname()).append("\n");
+ }
+
+ return buffer;
+}
+
+// This is check that the tables are at least as big as they should be
+bool validate_datfiles(void)
+{
+ bool result = true;
+ if (WINUI_ARRAY_LENGTH(m_gameInfo) < MAX_HFILES)
+ {
+ printf("m_gameInfo needs to have at least MAX_HFILES members\n");
+ result = false;
+ }
+
+ if (WINUI_ARRAY_LENGTH(m_sourceInfo) < MAX_HFILES)
+ {
+ printf("m_sourceInfo needs to have at least MAX_HFILES members\n");
+ result = false;
+ }
+
+ if (WINUI_ARRAY_LENGTH(m_swInfo) < MAX_HFILES)
+ {
+ printf("m_swInfo needs to have at least MAX_HFILES members\n");
+ result = false;
+ }
+
+ return result;
+}
+
+
+// For all of MAME builds - called by winui.cpp
+char * GetGameHistory(int driver_index, std::string software)
+{
+ std::string fullbuf;
+ if (driver_index < 0)
+ return ConvertToWindowsNewlines(fullbuf.c_str());
+
+ if (validate_datfiles())
+ {
+ // Get the path to dat files
+ char buf[400];
+ std::string t = GetDatsDir();
+ strcpy(buf, t.c_str());
+ // only want first path
+ const char* datsdir = strtok(buf, ";");
+ // validate software
+ BOOL sw_valid = false;
+ if (!software.empty())
+ {
+ size_t i = software.find(':');
+ sw_valid = (i != std::string::npos) ? true : false;
+ }
+
+ if (datsdir && osd::directory::open(datsdir))
+ {
+ for (int filenum = 0; filenum < MAX_HFILES; filenum++)
+ {
+ if (sw_valid)
+ fullbuf.append(load_swinfo(&driver_list::driver(driver_index), datsdir, software, filenum));
+ fullbuf.append(load_gameinfo(&driver_list::driver(driver_index), datsdir, filenum));
+ fullbuf.append(load_sourceinfo(&driver_list::driver(driver_index), datsdir, filenum));
+ }
+ }
+ else
+ fullbuf = "\nThe path to your dat files is invalid.\n\n\n";
+ }
+ else
+ fullbuf = "\nUnable to display info due to an internal error.\n\n\n";
+
+ fullbuf.append(load_driver_geninfo(&driver_list::driver(driver_index), driver_index));
+
+ return ConvertToWindowsNewlines(fullbuf.c_str());
+}
+
+// For Arcade-only builds
+char * GetGameHistory(int driver_index)
+{
+ std::string fullbuf;
+ if (driver_index < 0)
+ return ConvertToWindowsNewlines(fullbuf.c_str());
+
+ if (validate_datfiles())
+ {
+ char buf[400];
+ std::string t = GetDatsDir();
+ strcpy(buf, t.c_str());
+ // only want first path
+ const char* datsdir = strtok(buf, ";");
+
+ if (datsdir && osd::directory::open(datsdir))
+ {
+ for (int filenum = 0; filenum < MAX_HFILES; filenum++)
+ {
+ fullbuf.append(load_gameinfo(&driver_list::driver(driver_index), datsdir, filenum));
+ fullbuf.append(load_sourceinfo(&driver_list::driver(driver_index), datsdir, filenum));
+ }
+ }
+ else
+ fullbuf = "\nThe path to your dat files is invalid.\n\n\n";
+ }
+ else
+ fullbuf = "\nUnable to display info due to an internal error.\n\n\n";
+
+ fullbuf.append(load_driver_geninfo(&driver_list::driver(driver_index), driver_index));
+
+ return ConvertToWindowsNewlines(fullbuf.c_str());
+}
+
diff --git a/src/osd/winui/history.h b/src/osd/winui/history.h
new file mode 100644
index 00000000000..9a6803bad61
--- /dev/null
+++ b/src/osd/winui/history.h
@@ -0,0 +1,13 @@
+// For licensing and usage information, read docs/winui_license.txt
+// MASTER
+//****************************************************************************
+
+#pragma once
+
+#ifndef HISTORY_H
+#define HISTORY_H
+
+char * GetGameHistory(int driver_index); // Arcade-only builds (HBMAME, ARCADE)
+char * GetGameHistory(int driver_index, std::string software); // Builds with software support (MESSUI, MAMEUI)
+
+#endif
diff --git a/src/osd/winui/ini_opts.h b/src/osd/winui/ini_opts.h
new file mode 100644
index 00000000000..f1a57aeab52
--- /dev/null
+++ b/src/osd/winui/ini_opts.h
@@ -0,0 +1,441 @@
+// For licensing and usage information, read docs/winui_license.txt
+// MASTER
+//****************************************************************************
+
+#ifndef WINUI_INIOPTS_H
+#define WINUI_INIOPTS_H
+
+typedef struct
+{
+ std::string name;
+ std::string value;
+ const core_options::option_type unused1;
+ char* unused2;
+}
+INIOPTS;
+// INI options
+const INIOPTS option_entries[] =
+{
+ { OPTION_READCONFIG ";rc", "1", OPTION_BOOLEAN, "enable loading of configuration files" },
+ { OPTION_WRITECONFIG ";wc", "1", OPTION_BOOLEAN, "writes configuration to (driver).ini on exit" },
+ { OPTION_MEDIAPATH ";rp;biospath;bp", "roms", OPTION_STRING, "path to ROMsets and hard disk images" },
+ { OPTION_HASHPATH ";hash_directory;hash", "hash", OPTION_STRING, "path to hash files" },
+ { OPTION_SAMPLEPATH ";sp", "samples", OPTION_STRING, "path to samplesets" },
+ { OPTION_ARTPATH, "artwork", OPTION_STRING, "path to artwork files" },
+ { OPTION_CTRLRPATH, "ctrlr", OPTION_STRING, "path to controller definitions" },
+ { OPTION_INIPATH, ".", OPTION_STRING, "path to ini files" },
+ { OPTION_FONTPATH, ".", OPTION_STRING, "path to font files" },
+ { OPTION_CHEATPATH, "cheat", OPTION_STRING, "path to cheat files" },
+ { OPTION_CROSSHAIRPATH, "crosshair", OPTION_STRING, "path to crosshair files" },
+ { OPTION_PLUGINSPATH, "plugins", OPTION_STRING, "path to plugin files" },
+ { OPTION_LANGUAGEPATH, "language", OPTION_STRING, "path to language files" },
+ { OPTION_SWPATH, "software", OPTION_STRING, "path to loose software" },
+ { OPTION_CFG_DIRECTORY, "cfg", OPTION_STRING, "directory to save configurations" },
+ { OPTION_NVRAM_DIRECTORY, "nvram", OPTION_STRING, "directory to save nvram contents" },
+ { OPTION_INPUT_DIRECTORY, "inp", OPTION_STRING, "directory to save input device logs" },
+ { OPTION_STATE_DIRECTORY, "sta", OPTION_STRING, "directory to save states" },
+ { OPTION_SNAPSHOT_DIRECTORY, "snap", OPTION_STRING, "directory to save/load screenshots" },
+ { OPTION_DIFF_DIRECTORY, "diff", OPTION_STRING, "directory to save hard drive image difference files" },
+ { OPTION_COMMENT_DIRECTORY, "comments", OPTION_STRING, "directory to save debugger comments" },
+ { OPTION_STATE, "", OPTION_STRING, "saved state to load" },
+ { OPTION_AUTOSAVE, "0", OPTION_BOOLEAN, "enable automatic restore at startup, and automatic save at exit time" },
+ { OPTION_PLAYBACK ";pb", "", OPTION_STRING, "playback an input file" },
+ { OPTION_RECORD ";rec", "", OPTION_STRING, "record an input file" },
+ { OPTION_RECORD_TIMECODE, "0", OPTION_BOOLEAN, "record an input timecode file (requires -record option)" },
+ { OPTION_EXIT_AFTER_PLAYBACK, "0", OPTION_BOOLEAN, "close the program at the end of playback" },
+ { OPTION_MNGWRITE, "", OPTION_STRING, "optional filename to write a MNG movie of the current session" },
+ { OPTION_AVIWRITE, "", OPTION_STRING, "optional filename to write an AVI movie of the current session" },
+ { OPTION_WAVWRITE, "", OPTION_STRING, "optional filename to write a WAV file of the current session" },
+ { OPTION_SNAPNAME, "%g/%i", OPTION_STRING, "override of the default snapshot/movie naming; %g == gamename, %i == index" },
+ { OPTION_SNAPSIZE, "auto", OPTION_STRING, "specify snapshot/movie resolution (<width>x<height>) or 'auto' to use minimal size " },
+ { OPTION_SNAPVIEW, "internal", OPTION_STRING, "specify snapshot/movie view or 'internal' to use internal pixel-aspect views" },
+ { OPTION_SNAPBILINEAR, "1", OPTION_BOOLEAN, "specify if the snapshot/movie should have bilinear filtering applied" },
+ { OPTION_STATENAME, "%g", OPTION_STRING, "override of the default state subfolder naming; %g == gamename" },
+ { OPTION_BURNIN, "0", OPTION_BOOLEAN, "create burn-in snapshots for each screen" },
+ { OPTION_AUTOFRAMESKIP ";afs", "0", OPTION_BOOLEAN, "enable automatic frameskip selection" },
+ { OPTION_FRAMESKIP ";fs(0-10)", "0", OPTION_INTEGER, "set frameskip to fixed value, 0-10 (autoframeskip must be disabled)" },
+ { OPTION_SECONDS_TO_RUN ";str", "0", OPTION_INTEGER, "number of emulated seconds to run before automatically exiting" },
+ { OPTION_THROTTLE, "1", OPTION_BOOLEAN, "enable throttling to keep game running in sync with real time" },
+ { OPTION_SLEEP, "1", OPTION_BOOLEAN, "enable sleeping, which gives time back to other applications when idle" },
+ { OPTION_SPEED "(0.01-100)", "1.0", OPTION_FLOAT, "controls the speed of gameplay, relative to realtime; smaller numbers are slower" },
+ { OPTION_REFRESHSPEED ";rs", "0", OPTION_BOOLEAN, "automatically adjusts the speed of gameplay to keep the refresh rate lower than the screen" },
+ { OPTION_KEEPASPECT ";ka", "1", OPTION_BOOLEAN, "constrain to the proper aspect ratio" },
+ { OPTION_UNEVENSTRETCH ";ues", "1", OPTION_BOOLEAN, "allow non-integer stretch factors" },
+ { OPTION_UNEVENSTRETCHX ";uesx", "0", OPTION_BOOLEAN, "allow non-integer stretch factors only on horizontal axis"},
+ { OPTION_UNEVENSTRETCHY ";uesy", "0", OPTION_BOOLEAN, "allow non-integer stretch factors only on vertical axis"},
+ { OPTION_AUTOSTRETCHXY ";asxy", "0", OPTION_BOOLEAN, "automatically apply -unevenstretchx/y based on source native orientation"},
+ { OPTION_INTOVERSCAN ";ios", "0", OPTION_BOOLEAN, "allow overscan on integer scaled targets"},
+ { OPTION_INTSCALEX ";sx", "0", OPTION_INTEGER, "set horizontal integer scale factor."},
+ { OPTION_INTSCALEY ";sy", "0", OPTION_INTEGER, "set vertical integer scale."},
+ { OPTION_ROTATE, "1", OPTION_BOOLEAN, "rotate the game screen according to the game's orientation needs it" },
+ { OPTION_ROR, "0", OPTION_BOOLEAN, "rotate screen clockwise 90 degrees" },
+ { OPTION_ROL, "0", OPTION_BOOLEAN, "rotate screen counterclockwise 90 degrees" },
+ { OPTION_AUTOROR, "0", OPTION_BOOLEAN, "automatically rotate screen clockwise 90 degrees if vertical" },
+ { OPTION_AUTOROL, "0", OPTION_BOOLEAN, "automatically rotate screen counterclockwise 90 degrees if vertical" },
+ { OPTION_FLIPX, "0", OPTION_BOOLEAN, "flip screen left-right" },
+ { OPTION_FLIPY, "0", OPTION_BOOLEAN, "flip screen upside-down" },
+ { OPTION_ARTWORK_CROP ";artcrop", "0", OPTION_BOOLEAN, "crop artwork to game screen size" },
+ { OPTION_USE_BACKDROPS ";backdrop", "1", OPTION_BOOLEAN, "enable backdrops if artwork is enabled and available" },
+ { OPTION_USE_OVERLAYS ";overlay", "1", OPTION_BOOLEAN, "enable overlays if artwork is enabled and available" },
+ { OPTION_USE_BEZELS ";bezel", "1", OPTION_BOOLEAN, "enable bezels if artwork is enabled and available" },
+ { OPTION_USE_CPANELS ";cpanel", "1", OPTION_BOOLEAN, "enable cpanels if artwork is enabled and available" },
+ { OPTION_USE_MARQUEES ";marquee", "1", OPTION_BOOLEAN, "enable marquees if artwork is enabled and available" },
+ { OPTION_BRIGHTNESS "(0.1-2.0)", "1.0", OPTION_FLOAT, "default game screen brightness correction" },
+ { OPTION_CONTRAST "(0.1-2.0)", "1.0", OPTION_FLOAT, "default game screen contrast correction" },
+ { OPTION_GAMMA "(0.1-3.0)", "1.0", OPTION_FLOAT, "default game screen gamma correction" },
+ { OPTION_PAUSE_BRIGHTNESS "(0.0-1.0)", "0.65", OPTION_FLOAT, "amount to scale the screen brightness when paused" },
+ { OPTION_EFFECT, "none", OPTION_STRING, "name of a PNG file to use for visual effects, or 'none'" },
+ { OPTION_BEAM_WIDTH_MIN, "1.0", OPTION_FLOAT, "set vector beam width minimum" },
+ { OPTION_BEAM_WIDTH_MAX, "1.0", OPTION_FLOAT, "set vector beam width maximum" },
+ { OPTION_BEAM_INTENSITY_WEIGHT, "0", OPTION_FLOAT, "set vector beam intensity weight " },
+ { OPTION_FLICKER, "0", OPTION_FLOAT, "set vector flicker effect" },
+ { OPTION_SAMPLERATE ";sr(1000-1000000)", "48000", OPTION_INTEGER, "set sound output sample rate" },
+ { OPTION_SAMPLES, "1", OPTION_BOOLEAN, "enable the use of external samples if available" },
+ { OPTION_VOLUME ";vol", "0", OPTION_INTEGER, "sound volume in decibels (-32 min, 0 max)" },
+ { OPTION_COIN_LOCKOUT ";coinlock", "1", OPTION_BOOLEAN, "enable coin lockouts to actually lock out coins" },
+ { OPTION_CTRLR, "", OPTION_STRING, "preconfigure for specified controller" },
+ { OPTION_MOUSE, "0", OPTION_BOOLEAN, "enable mouse input" },
+ { OPTION_JOYSTICK ";joy", "1", OPTION_BOOLEAN, "enable joystick input" },
+ { OPTION_LIGHTGUN ";gun", "0", OPTION_BOOLEAN, "enable lightgun input" },
+ { OPTION_MULTIKEYBOARD ";multikey", "0", OPTION_BOOLEAN, "enable separate input from each keyboard device (if present)" },
+ { OPTION_MULTIMOUSE, "0", OPTION_BOOLEAN, "enable separate input from each mouse device (if present)" },
+ { OPTION_STEADYKEY ";steady", "0", OPTION_BOOLEAN, "enable steadykey support" },
+ { OPTION_UI_ACTIVE, "0", OPTION_BOOLEAN, "enable user interface on top of emulated keyboard (if present)" },
+ { OPTION_OFFSCREEN_RELOAD ";reload", "0", OPTION_BOOLEAN, "convert lightgun button 2 into offscreen reload" },
+ { OPTION_JOYSTICK_MAP ";joymap", "auto", OPTION_STRING, "explicit joystick map, or auto to auto-select" },
+ { OPTION_JOYSTICK_DEADZONE ";joy_deadzone;jdz(0.00-1)", "0.3", OPTION_FLOAT, "center deadzone range for joystick where change is ignored (0.0 center, 1.0 end)" },
+ { OPTION_JOYSTICK_SATURATION ";joy_saturation;jsat(0.00-1)", "0.85", OPTION_FLOAT, "end of axis saturation range for joystick where change is ignored (0.0 center, 1.0 end)" },
+ { OPTION_NATURAL_KEYBOARD ";nat", "0", OPTION_BOOLEAN, "specifies whether to use a natural keyboard or not" },
+ { OPTION_JOYSTICK_CONTRADICTORY ";joy_contradictory","0", OPTION_BOOLEAN, "enable contradictory direction digital joystick input at the same time" },
+ { OPTION_COIN_IMPULSE, "0", OPTION_INTEGER, "set coin impulse time (n<0 disable impulse, n==0 obey driver, 0<n set time n)" },
+ { OPTION_PADDLE_DEVICE ";paddle", "keyboard", OPTION_STRING, "enable (none|keyboard|mouse|lightgun|joystick) if a paddle control is present" },
+ { OPTION_ADSTICK_DEVICE ";adstick", "keyboard", OPTION_STRING, "enable (none|keyboard|mouse|lightgun|joystick) if an analog joystick control is present" },
+ { OPTION_PEDAL_DEVICE ";pedal", "keyboard", OPTION_STRING, "enable (none|keyboard|mouse|lightgun|joystick) if a pedal control is present" },
+ { OPTION_DIAL_DEVICE ";dial", "keyboard", OPTION_STRING, "enable (none|keyboard|mouse|lightgun|joystick) if a dial control is present" },
+ { OPTION_TRACKBALL_DEVICE ";trackball", "keyboard", OPTION_STRING, "enable (none|keyboard|mouse|lightgun|joystick) if a trackball control is present" },
+ { OPTION_LIGHTGUN_DEVICE, "keyboard", OPTION_STRING, "enable (none|keyboard|mouse|lightgun|joystick) if a lightgun control is present" },
+ { OPTION_POSITIONAL_DEVICE, "keyboard", OPTION_STRING, "enable (none|keyboard|mouse|lightgun|joystick) if a positional control is present" },
+ { OPTION_MOUSE_DEVICE, "mouse", OPTION_STRING, "enable (none|keyboard|mouse|lightgun|joystick) if a mouse control is present" },
+ { OPTION_VERBOSE ";v", "0", OPTION_BOOLEAN, "display additional diagnostic information" },
+ { OPTION_LOG, "0", OPTION_BOOLEAN, "generate an error.log file" },
+ { OPTION_OSLOG, "0", OPTION_BOOLEAN, "output error.log data to the system debugger" },
+ { OPTION_DEBUG ";d", "0", OPTION_BOOLEAN, "enable/disable debugger" },
+ { OPTION_UPDATEINPAUSE, "0", OPTION_BOOLEAN, "keep calling video updates while in pause" },
+ { OPTION_DEBUGSCRIPT, "", OPTION_STRING, "script for debugger" },
+ { OPTION_COMM_LOCAL_HOST, "0.0.0.0", OPTION_STRING, "local address to bind to" },
+ { OPTION_COMM_LOCAL_PORT, "15112", OPTION_STRING, "local port to bind to" },
+ { OPTION_COMM_REMOTE_HOST, "127.0.0.1", OPTION_STRING, "remote address to connect to" },
+ { OPTION_COMM_REMOTE_PORT, "15112", OPTION_STRING, "remote port to connect to" },
+ { OPTION_DRC, "1", OPTION_BOOLEAN, "enable DRC cpu core if available" },
+ { OPTION_DRC_USE_C, "0", OPTION_BOOLEAN, "force DRC use C backend" },
+ { OPTION_DRC_LOG_UML, "0", OPTION_BOOLEAN, "write DRC UML disassembly log" },
+ { OPTION_DRC_LOG_NATIVE, "0", OPTION_BOOLEAN, "write DRC native disassembly log" },
+ { OPTION_BIOS, "", OPTION_STRING, "select the system BIOS to use" },
+ { OPTION_CHEAT ";c", "0", OPTION_BOOLEAN, "enable cheat subsystem" },
+ { OPTION_SKIP_GAMEINFO, "0", OPTION_BOOLEAN, "skip displaying the information screen at startup" },
+ { OPTION_UI_FONT, "default", OPTION_STRING, "specify a font to use" },
+ { OPTION_UI, "cabinet", OPTION_STRING, "type of UI (simple|cabinet)" },
+ { OPTION_RAMSIZE ";ram", "", OPTION_STRING, "size of RAM (if supported by driver)" },
+ { OPTION_CONFIRM_QUIT, "0", OPTION_BOOLEAN, "display confirm quit screen on exit" },
+ { OPTION_UI_MOUSE, "1", OPTION_BOOLEAN, "display ui mouse cursor" },
+ { OPTION_AUTOBOOT_COMMAND ";ab", "", OPTION_STRING, "command to execute after machine boot" },
+ { OPTION_AUTOBOOT_DELAY, "0", OPTION_INTEGER, "timer delay in sec to trigger command execution on autoboot" },
+ { OPTION_AUTOBOOT_SCRIPT ";script", "", OPTION_STRING, "lua script to execute after machine boot" },
+ { OPTION_CONSOLE, "0", OPTION_BOOLEAN, "enable emulator LUA console" },
+ { OPTION_PLUGINS, "1", OPTION_BOOLEAN, "enable LUA plugin support" },
+ { OPTION_PLUGIN, "", OPTION_STRING, "list of plugins to enable" },
+ { OPTION_NO_PLUGIN, "", OPTION_STRING, "list of plugins to disable" },
+ { OPTION_LANGUAGE ";lang", "English", OPTION_STRING, "display language" },
+ { OPTION_HTTP, "0", OPTION_BOOLEAN, "HTTP server enable" },
+ { OPTION_HTTP_PORT, "8080", OPTION_INTEGER, "HTTP server port" },
+ { OPTION_HTTP_ROOT, "web", OPTION_STRING, "HTTP server document root" },
+ { OSDOPTION_UIMODEKEY, "SCRLOCK", OPTION_STRING, "Key to toggle keyboard mode" },
+ { OSD_FONT_PROVIDER, "auto", OPTION_STRING, "provider for ui font: " },
+ { OSD_OUTPUT_PROVIDER, "auto", OPTION_STRING, "provider for output: " },
+ { OSD_KEYBOARDINPUT_PROVIDER, "auto", OPTION_STRING, "provider for keyboard input: " },
+ { OSD_MOUSEINPUT_PROVIDER, "auto", OPTION_STRING, "provider for mouse input: " },
+ { OSD_LIGHTGUNINPUT_PROVIDER, "auto", OPTION_STRING, "provider for lightgun input: " },
+ { OSD_JOYSTICKINPUT_PROVIDER, "auto", OPTION_STRING, "provider for joystick input: " },
+ { OSDCOMMAND_LIST_MIDI_DEVICES ";mlist", "0", OPTION_COMMAND, "list available MIDI I/O devices" },
+ { OSDCOMMAND_LIST_NETWORK_ADAPTERS ";nlist", "0", OPTION_COMMAND, "list available network adapters" },
+ { OSDOPTION_DEBUGGER, "auto", OPTION_STRING, "debugger used: " },
+ { OSDOPTION_DEBUGGER_FONT ";dfont", "auto", OPTION_STRING, "specifies the font to use for debugging" },
+ { OSDOPTION_DEBUGGER_FONT_SIZE ";dfontsize", "0", OPTION_FLOAT, "specifies the font size to use for debugging" },
+ { OSDOPTION_WATCHDOG ";wdog", "0", OPTION_INTEGER, "force the program to terminate if no updates within specified number of seconds" },
+ { OSDOPTION_NUMPROCESSORS ";np", "auto", OPTION_STRING, "number of processors; this overrides the number the system reports" },
+ { OSDOPTION_BENCH, "0", OPTION_INTEGER, "benchmark for the given number of emulated seconds; implies -video none -sound none -nothrottle" },
+ { OSDOPTION_VIDEO, "auto", OPTION_STRING, "video output method: " },
+ { OSDOPTION_NUMSCREENS "(1-4)", "1", OPTION_INTEGER, "number of screens to create; usually, you want just one" },
+ { OSDOPTION_WINDOW ";w", "0", OPTION_BOOLEAN, "enable window mode; otherwise, full screen mode is assumed" },
+ { OSDOPTION_MAXIMIZE ";max", "1", OPTION_BOOLEAN, "default to maximized windows; otherwise, windows will be minimized" },
+ { OSDOPTION_WAITVSYNC ";vs", "0", OPTION_BOOLEAN, "enable waiting for the start of VBLANK before flipping screens; reduces tearing effects" },
+ { OSDOPTION_SYNCREFRESH ";srf", "0", OPTION_BOOLEAN, "enable using the start of VBLANK for throttling instead of the game time" },
+ { OSD_MONITOR_PROVIDER, "auto", OPTION_STRING, "monitor discovery method" },
+ { OSDOPTION_SCREEN, "auto", OPTION_STRING, "explicit name of the first screen; 'auto' here will try to make a best guess" },
+ { OSDOPTION_ASPECT ";screen_aspect", "auto", OPTION_STRING, "aspect ratio for all screens; 'auto' here will try to make a best guess" },
+ { OSDOPTION_RESOLUTION ";r", "auto", OPTION_STRING, "preferred resolution for all screens; format is <width>x<height>[@<refreshrate>] or 'auto'" },
+ { OSDOPTION_VIEW, "auto", OPTION_STRING, "preferred view for all screens" },
+ { OSDOPTION_SCREEN "0", "auto", OPTION_STRING, "explicit name of the first screen; 'auto' here will try to make a best guess" },
+ { OSDOPTION_ASPECT "0", "auto", OPTION_STRING, "aspect ratio of the first screen; 'auto' here will try to make a best guess" },
+ { OSDOPTION_RESOLUTION "0;r0", "auto", OPTION_STRING, "preferred resolution of the first screen; format is <width>x<height>[@<refreshrate>] or 'auto'" },
+ { OSDOPTION_VIEW "0", "auto", OPTION_STRING, "preferred view for the first screen" },
+ { OSDOPTION_SCREEN "1", "auto", OPTION_STRING, "explicit name of the second screen; 'auto' here will try to make a best guess" },
+ { OSDOPTION_ASPECT "1", "auto", OPTION_STRING, "aspect ratio of the second screen; 'auto' here will try to make a best guess" },
+ { OSDOPTION_RESOLUTION "1;r1", "auto", OPTION_STRING, "preferred resolution of the second screen; format is <width>x<height>[@<refreshrate>] or 'auto'" },
+ { OSDOPTION_VIEW "1", "auto", OPTION_STRING, "preferred view for the second screen" },
+ { OSDOPTION_SCREEN "2", "auto", OPTION_STRING, "explicit name of the third screen; 'auto' here will try to make a best guess" },
+ { OSDOPTION_ASPECT "2", "auto", OPTION_STRING, "aspect ratio of the third screen; 'auto' here will try to make a best guess" },
+ { OSDOPTION_RESOLUTION "2;r2", "auto", OPTION_STRING, "preferred resolution of the third screen; format is <width>x<height>[@<refreshrate>] or 'auto'" },
+ { OSDOPTION_VIEW "2", "auto", OPTION_STRING, "preferred view for the third screen" },
+ { OSDOPTION_SCREEN "3", "auto", OPTION_STRING, "explicit name of the fourth screen; 'auto' here will try to make a best guess" },
+ { OSDOPTION_ASPECT "3", "auto", OPTION_STRING, "aspect ratio of the fourth screen; 'auto' here will try to make a best guess" },
+ { OSDOPTION_RESOLUTION "3;r3", "auto", OPTION_STRING, "preferred resolution of the fourth screen; format is <width>x<height>[@<refreshrate>] or 'auto'" },
+ { OSDOPTION_VIEW "3", "auto", OPTION_STRING, "preferred view for the fourth screen" },
+ { OSDOPTION_SWITCHRES, "0", OPTION_BOOLEAN, "enable resolution switching" },
+ { OSDOPTION_FILTER ";glfilter;flt", "1", OPTION_BOOLEAN, "enable bilinear filtering on screen output" },
+ { OSDOPTION_PRESCALE, "1", OPTION_INTEGER, "scale screen rendering by this amount in software" },
+ { OSDOPTION_GL_FORCEPOW2TEXTURE, "0", OPTION_BOOLEAN, "force power of two textures (default no)" },
+ { OSDOPTION_GL_NOTEXTURERECT, "0", OPTION_BOOLEAN, "don't use OpenGL GL_ARB_texture_rectangle (default on)" },
+ { OSDOPTION_GL_VBO, "1", OPTION_BOOLEAN, "enable OpenGL VBO, if available (default on)" },
+ { OSDOPTION_GL_PBO, "1", OPTION_BOOLEAN, "enable OpenGL PBO, if available (default on)" },
+ { OSDOPTION_GL_GLSL, "0", OPTION_BOOLEAN, "enable OpenGL GLSL, if available (default off)" },
+ { OSDOPTION_GLSL_FILTER, "1", OPTION_STRING, "enable OpenGL GLSL filtering instead of FF filtering 0-plain, 1-bilinear (default)" },
+ { OSDOPTION_SHADER_MAME "0", "none", OPTION_STRING, "custom OpenGL GLSL shader set mame bitmap 0" },
+ { OSDOPTION_SHADER_MAME "1", "none", OPTION_STRING, "custom OpenGL GLSL shader set mame bitmap 1" },
+ { OSDOPTION_SHADER_MAME "2", "none", OPTION_STRING, "custom OpenGL GLSL shader set mame bitmap 2" },
+ { OSDOPTION_SHADER_MAME "3", "none", OPTION_STRING, "custom OpenGL GLSL shader set mame bitmap 3" },
+ { OSDOPTION_SHADER_MAME "4", "none", OPTION_STRING, "custom OpenGL GLSL shader set mame bitmap 4" },
+ { OSDOPTION_SHADER_MAME "5", "none", OPTION_STRING, "custom OpenGL GLSL shader set mame bitmap 5" },
+ { OSDOPTION_SHADER_MAME "6", "none", OPTION_STRING, "custom OpenGL GLSL shader set mame bitmap 6" },
+ { OSDOPTION_SHADER_MAME "7", "none", OPTION_STRING, "custom OpenGL GLSL shader set mame bitmap 7" },
+ { OSDOPTION_SHADER_MAME "8", "none", OPTION_STRING, "custom OpenGL GLSL shader set mame bitmap 8" },
+ { OSDOPTION_SHADER_MAME "9", "none", OPTION_STRING, "custom OpenGL GLSL shader set mame bitmap 9" },
+ { OSDOPTION_SHADER_SCREEN "0", "none", OPTION_STRING, "custom OpenGL GLSL shader screen bitmap 0" },
+ { OSDOPTION_SHADER_SCREEN "1", "none", OPTION_STRING, "custom OpenGL GLSL shader screen bitmap 1" },
+ { OSDOPTION_SHADER_SCREEN "2", "none", OPTION_STRING, "custom OpenGL GLSL shader screen bitmap 2" },
+ { OSDOPTION_SHADER_SCREEN "3", "none", OPTION_STRING, "custom OpenGL GLSL shader screen bitmap 3" },
+ { OSDOPTION_SHADER_SCREEN "4", "none", OPTION_STRING, "custom OpenGL GLSL shader screen bitmap 4" },
+ { OSDOPTION_SHADER_SCREEN "5", "none", OPTION_STRING, "custom OpenGL GLSL shader screen bitmap 5" },
+ { OSDOPTION_SHADER_SCREEN "6", "none", OPTION_STRING, "custom OpenGL GLSL shader screen bitmap 6" },
+ { OSDOPTION_SHADER_SCREEN "7", "none", OPTION_STRING, "custom OpenGL GLSL shader screen bitmap 7" },
+ { OSDOPTION_SHADER_SCREEN "8", "none", OPTION_STRING, "custom OpenGL GLSL shader screen bitmap 8" },
+ { OSDOPTION_SHADER_SCREEN "9", "none", OPTION_STRING, "custom OpenGL GLSL shader screen bitmap 9" },
+ { OSDOPTION_SOUND, "auto", OPTION_STRING, "sound output method: " },
+ { OSDOPTION_AUDIO_LATENCY "(1-5)", "2", OPTION_INTEGER, "set audio latency (increase to reduce glitches, decrease for responsiveness)" },
+ { OSDOPTION_PA_API, "none", OPTION_STRING, "PortAudio API" },
+ { OSDOPTION_PA_DEVICE, "none", OPTION_STRING, "PortAudio device" },
+ { OSDOPTION_PA_LATENCY "(0-0.25)", "0", OPTION_FLOAT, "suggested latency in seconds, 0 for default" },
+ { OSDOPTION_BGFX_PATH, "bgfx", OPTION_STRING, "path to BGFX-related files" },
+ { OSDOPTION_BGFX_BACKEND, "auto", OPTION_STRING, "BGFX backend to use (d3d9, d3d11, metal, opengl, gles)" },
+ { OSDOPTION_BGFX_DEBUG, "0", OPTION_BOOLEAN, "enable BGFX debugging statistics" },
+ { OSDOPTION_BGFX_SCREEN_CHAINS, "default", OPTION_STRING, "comma-delimited list of screen chain JSON names, colon-delimited per-window" },
+ { OSDOPTION_BGFX_SHADOW_MASK, "slot-mask.png", OPTION_STRING, "shadow mask texture name" },
+ { OSDOPTION_BGFX_AVI_NAME, "auto", OPTION_STRING, "filename for BGFX output logging" },
+ { WINOPTION_PRIORITY "(-15-1)", "0", OPTION_INTEGER, "thread priority for the main game thread; range from -15 to 1" },
+ { WINOPTION_PROFILE, "0", OPTION_INTEGER, "enables profiling, specifying the stack depth to track" },
+ { WINOPTION_MENU, "0", OPTION_BOOLEAN, "enables menu bar if available by UI implementation" },
+ { WINOPTION_HLSLPATH, "hlsl", OPTION_STRING, "path to hlsl files" },
+ { WINOPTION_HLSL_ENABLE";hlsl", "0", OPTION_BOOLEAN, "enables HLSL post-processing (PS3.0 required)" },
+ { WINOPTION_HLSL_OVERSAMPLING, "0", OPTION_BOOLEAN, "enables HLSL oversampling" },
+ { WINOPTION_HLSL_WRITE, "auto", OPTION_STRING, "enables HLSL AVI writing (huge disk bandwidth suggested)" },
+ { WINOPTION_HLSL_SNAP_WIDTH, "2048", OPTION_STRING, "HLSL upscaled-snapshot width" },
+ { WINOPTION_HLSL_SNAP_HEIGHT, "1536", OPTION_STRING, "HLSL upscaled-snapshot height" },
+ { WINOPTION_SHADOW_MASK_TILE_MODE, "0", OPTION_INTEGER, "shadow mask tile mode (0 for screen based, 1 for source based)" },
+ { WINOPTION_SHADOW_MASK_ALPHA";fs_shadwa(0.0-1.0)", "0.0", OPTION_FLOAT, "shadow mask alpha-blend value (1.0 is fully blended, 0.0 is no mask)" },
+ { WINOPTION_SHADOW_MASK_TEXTURE";fs_shadwt(0.0-1.0)", "shadow-mask.png", OPTION_STRING, "shadow mask texture name" },
+ { WINOPTION_SHADOW_MASK_COUNT_X";fs_shadww", "6", OPTION_INTEGER, "shadow mask tile width, in screen dimensions" },
+ { WINOPTION_SHADOW_MASK_COUNT_Y";fs_shadwh", "4", OPTION_INTEGER, "shadow mask tile height, in screen dimensions" },
+ { WINOPTION_SHADOW_MASK_USIZE";fs_shadwu(0.0-1.0)", "0.1875", OPTION_FLOAT, "shadow mask texture width, in U/V dimensions" },
+ { WINOPTION_SHADOW_MASK_VSIZE";fs_shadwv(0.0-1.0)", "0.25", OPTION_FLOAT, "shadow mask texture height, in U/V dimensions" },
+ { WINOPTION_SHADOW_MASK_UOFFSET";fs_shadwou(-1.0-1.0)", "0.0", OPTION_FLOAT, "shadow mask texture offset, in U direction" },
+ { WINOPTION_SHADOW_MASK_VOFFSET";fs_shadwov(-1.0-1.0)", "0.0", OPTION_FLOAT, "shadow mask texture offset, in V direction" },
+ { WINOPTION_DISTORTION";fs_dist(-1.0-1.0)", "0.0", OPTION_FLOAT, "screen distortion amount" },
+ { WINOPTION_CUBIC_DISTORTION";fs_cubedist(-1.0-1.0)", "0.0", OPTION_FLOAT, "screen cubic distortion amount" },
+ { WINOPTION_DISTORT_CORNER";fs_distc(0.0-1.0)", "0.0", OPTION_FLOAT, "screen distort corner amount" },
+ { WINOPTION_ROUND_CORNER";fs_rndc(0.0-1.0)", "0.0", OPTION_FLOAT, "screen round corner amount" },
+ { WINOPTION_SMOOTH_BORDER";fs_smob(0.0-1.0)", "0.0", OPTION_FLOAT, "screen smooth border amount" },
+ { WINOPTION_REFLECTION";fs_ref(0.0-1.0)", "0.0", OPTION_FLOAT, "screen reflection amount" },
+ { WINOPTION_VIGNETTING";fs_vig(0.0-1.0)", "0.0", OPTION_FLOAT, "image vignetting amount" },
+ { WINOPTION_SCANLINE_AMOUNT";fs_scanam(0.0-4.0)", "0.0", OPTION_FLOAT, "overall alpha scaling value for scanlines" },
+ { WINOPTION_SCANLINE_SCALE";fs_scansc(0.0-4.0)", "1.0", OPTION_FLOAT, "overall height scaling value for scanlines" },
+ { WINOPTION_SCANLINE_HEIGHT";fs_scanh(0.0-4.0)", "1.0", OPTION_FLOAT, "individual height scaling value for scanlines" },
+ { WINOPTION_SCANLINE_VARIATION";fs_scanv(0.0-4.0)", "1.0", OPTION_FLOAT, "individual height varying value for scanlines" },
+ { WINOPTION_SCANLINE_BRIGHT_SCALE";fs_scanbs(0.0-2.0)", "1.0", OPTION_FLOAT, "overall brightness scaling value for scanlines (multiplicative)" },
+ { WINOPTION_SCANLINE_BRIGHT_OFFSET";fs_scanbo(0.0-1.0)", "0.0", OPTION_FLOAT, "overall brightness offset value for scanlines (additive)" },
+ { WINOPTION_SCANLINE_JITTER";fs_scanjt(0.0-4.0)", "0.0", OPTION_FLOAT, "overall interlace jitter scaling value for scanlines" },
+ { WINOPTION_HUM_BAR_ALPHA";fs_humba(0.0-1.0)", "0.0", OPTION_FLOAT, "overall alpha scaling value for hum bar" },
+ { WINOPTION_DEFOCUS";fs_focus", "0.0,0.0", OPTION_STRING, "overall defocus value in screen-relative coords" },
+ { WINOPTION_CONVERGE_X";fs_convx", "0.0,0.0,0.0", OPTION_STRING, "convergence in screen-relative X direction" },
+ { WINOPTION_CONVERGE_Y";fs_convy", "0.0,0.0,0.0", OPTION_STRING, "convergence in screen-relative Y direction" },
+ { WINOPTION_RADIAL_CONVERGE_X";fs_rconvx", "0.0,0.0,0.0", OPTION_STRING, "radial convergence in screen-relative X direction" },
+ { WINOPTION_RADIAL_CONVERGE_Y";fs_rconvy", "0.0,0.0,0.0", OPTION_STRING, "radial convergence in screen-relative Y direction" },
+ { WINOPTION_RED_RATIO";fs_redratio", "1.0,0.0,0.0", OPTION_STRING, "red output signal generated by input signal" },
+ { WINOPTION_GRN_RATIO";fs_grnratio", "0.0,1.0,0.0", OPTION_STRING, "green output signal generated by input signal" },
+ { WINOPTION_BLU_RATIO";fs_bluratio", "0.0,0.0,1.0", OPTION_STRING, "blue output signal generated by input signal" },
+ { WINOPTION_SATURATION";fs_sat(0.0-4.0)", "1.0", OPTION_FLOAT, "saturation scaling value" },
+ { WINOPTION_OFFSET";fs_offset", "0.0,0.0,0.0", OPTION_STRING, "signal offset value (additive)" },
+ { WINOPTION_SCALE";fs_scale", "1.0,1.0,1.0", OPTION_STRING, "signal scaling value (multiplicative)" },
+ { WINOPTION_POWER";fs_power", "1.0,1.0,1.0", OPTION_STRING, "signal power value (exponential)" },
+ { WINOPTION_FLOOR";fs_floor", "0.0,0.0,0.0", OPTION_STRING, "signal floor level" },
+ { WINOPTION_PHOSPHOR";fs_phosphor", "0.0,0.0,0.0", OPTION_STRING, "phosphorescence decay rate (0.0 is instant, 1.0 is forever)" },
+ { WINOPTION_YIQ_ENABLE";yiq", "0", OPTION_BOOLEAN, "enables YIQ-space HLSL post-processing" },
+ { WINOPTION_YIQ_JITTER";yiqj", "0.0", OPTION_FLOAT, "Jitter for the NTSC signal processing" },
+ { WINOPTION_YIQ_CCVALUE";yiqcc", "3.57954545", OPTION_FLOAT, "Color Carrier frequency for NTSC signal processing" },
+ { WINOPTION_YIQ_AVALUE";yiqa", "0.5", OPTION_FLOAT, "A value for NTSC signal processing" },
+ { WINOPTION_YIQ_BVALUE";yiqb", "0.5", OPTION_FLOAT, "B value for NTSC signal processing" },
+ { WINOPTION_YIQ_OVALUE";yiqo", "0.0", OPTION_FLOAT, "Outgoing Color Carrier phase offset for NTSC signal processing" },
+ { WINOPTION_YIQ_PVALUE";yiqp", "1.0", OPTION_FLOAT, "Incoming Pixel Clock scaling value for NTSC signal processing" },
+ { WINOPTION_YIQ_NVALUE";yiqn", "1.0", OPTION_FLOAT, "Y filter notch width for NTSC signal processing" },
+ { WINOPTION_YIQ_YVALUE";yiqy", "6.0", OPTION_FLOAT, "Y filter cutoff frequency for NTSC signal processing" },
+ { WINOPTION_YIQ_IVALUE";yiqi", "1.2", OPTION_FLOAT, "I filter cutoff frequency for NTSC signal processing" },
+ { WINOPTION_YIQ_QVALUE";yiqq", "0.6", OPTION_FLOAT, "Q filter cutoff frequency for NTSC signal processing" },
+ { WINOPTION_YIQ_SCAN_TIME";yiqsc", "52.6", OPTION_FLOAT, "Horizontal scanline duration for NTSC signal processing (in usec)" },
+ { WINOPTION_YIQ_PHASE_COUNT";yiqpc", "2", OPTION_INTEGER, "Phase Count value for NTSC signal processing" },
+ { WINOPTION_VECTOR_BEAM_SMOOTH";vecsmooth", "0.0", OPTION_FLOAT, "The vector beam smoothness" },
+ { WINOPTION_VECTOR_LENGTH_SCALE";vecscale", "0.5", OPTION_FLOAT, "The maximum vector attenuation" },
+ { WINOPTION_VECTOR_LENGTH_RATIO";vecratio", "0.5", OPTION_FLOAT, "The minimum vector length (vector length to screen size ratio) that is affected by the attenuation" },
+ { WINOPTION_BLOOM_BLEND_MODE, "0", OPTION_INTEGER, "bloom blend mode (0 for brighten, 1 for darken)" },
+ { WINOPTION_BLOOM_SCALE, "0.0", OPTION_FLOAT, "Intensity factor for bloom" },
+ { WINOPTION_BLOOM_OVERDRIVE, "1.0,1.0,1.0", OPTION_STRING, "Overdrive factor for bloom" },
+ { WINOPTION_BLOOM_LEVEL0_WEIGHT, "1.0", OPTION_FLOAT, "Bloom level 0 weight (full-size target)" },
+ { WINOPTION_BLOOM_LEVEL1_WEIGHT, "0.64", OPTION_FLOAT, "Bloom level 1 weight (1/4 smaller that level 0 target)" },
+ { WINOPTION_BLOOM_LEVEL2_WEIGHT, "0.32", OPTION_FLOAT, "Bloom level 2 weight (1/4 smaller that level 1 target)" },
+ { WINOPTION_BLOOM_LEVEL3_WEIGHT, "0.16", OPTION_FLOAT, "Bloom level 3 weight (1/4 smaller that level 2 target)" },
+ { WINOPTION_BLOOM_LEVEL4_WEIGHT, "0.08", OPTION_FLOAT, "Bloom level 4 weight (1/4 smaller that level 3 target)" },
+ { WINOPTION_BLOOM_LEVEL5_WEIGHT, "0.06", OPTION_FLOAT, "Bloom level 5 weight (1/4 smaller that level 4 target)" },
+ { WINOPTION_BLOOM_LEVEL6_WEIGHT, "0.04", OPTION_FLOAT, "Bloom level 6 weight (1/4 smaller that level 5 target)" },
+ { WINOPTION_BLOOM_LEVEL7_WEIGHT, "0.02", OPTION_FLOAT, "Bloom level 7 weight (1/4 smaller that level 6 target)" },
+ { WINOPTION_BLOOM_LEVEL8_WEIGHT, "0.01", OPTION_FLOAT, "Bloom level 8 weight (1/4 smaller that level 7 target)" },
+ { WINOPTION_TRIPLEBUFFER ";tb", "0", OPTION_BOOLEAN, "enables triple buffering" },
+ { WINOPTION_FULLSCREENBRIGHTNESS ";fsb(0.1-2.0)", "1.0", OPTION_FLOAT, "brightness value in full screen mode" },
+ { WINOPTION_FULLSCREENCONTRAST ";fsc(0.1-2.0)", "1.0", OPTION_FLOAT, "contrast value in full screen mode" },
+ { WINOPTION_FULLSCREENGAMMA ";fsg(0.1-3.0)", "1.0", OPTION_FLOAT, "gamma value in full screen mode" },
+ { WINOPTION_GLOBAL_INPUTS, "0", OPTION_BOOLEAN, "enables global inputs" },
+ { WINOPTION_DUAL_LIGHTGUN ";dual", "0", OPTION_BOOLEAN, "enables dual lightgun input" },
+ { "$end" }
+};
+
+class winui_ini_options
+{
+ std::map<std::string, std::string> m_list;
+ const char *m_filename;
+
+ void create_index(std::ifstream &fp)
+ {
+ if (!fp.good())
+ return;
+ bool is_ready = false;
+ std::string file_line;
+ std::getline(fp, file_line);
+ while (fp.good())
+ {
+ if (is_ready)
+ {
+ char s[file_line.length()];
+ strcpy(s, file_line.c_str());
+
+ const char* name = strtok(s, "\t"); // get adjustment name
+ char* data = strtok(NULL, "\t"); // get next part (there's no next tab, so just return whatever is left)
+ if (name)
+ m_list[name] = data ? data : "";
+ }
+ else
+ {
+ if (file_line == "$start")
+ is_ready = true;
+ }
+
+ std::getline(fp, file_line);
+ }
+
+ fp.close();
+ return;
+ }
+
+public:
+ // construction/destruction
+ winui_ini_options()
+ {
+ // set up default values
+ for (int i = 0; option_entries[i].name != "$end"; i++)
+ m_list[option_entries[i].name] = option_entries[i].value;
+ //printf("*** START DUMP OF DEFAULT ***\n");
+ //for (auto const &it : m_list)
+ // printf("%s = %s\n", it.first.c_str(), it.second.c_str());
+ //printf("*** END DUMP OF DEFAULT ***\n");
+ }
+
+ void load_file(const char *filename)
+ {
+ if (!m_filename)
+ m_filename = filename;
+ std::ifstream infile (filename);
+ create_index(infile);
+ }
+
+ void save_file(const char *filename)
+ {
+ if (!filename)
+ return;
+ std::string inistring = std::string("\n -- message for the user --.\n\n$start\n");
+ for (auto const &it : m_list)
+ inistring.append(it.first).append("\t").append(it.second).append("\n");
+
+ std::ofstream outfile (filename, std::ios::out | std::ios::trunc);
+ size_t size = inistring.size();
+ char t1[size+1];
+ strcpy(t1, inistring.c_str());
+ outfile.write(t1, size);
+ outfile.close();
+ return;
+ }
+
+ void reset_and_save(const char *filename)
+ {
+ // set up default values
+ for (int i = 0; option_entries[i].name != "$end"; i++)
+ m_list[option_entries[i].name] = option_entries[i].value;
+
+ save_file(filename);
+ }
+
+ void setter(const char* name, std::string value)
+ {
+ m_list[name] = value;
+ save_file(m_filename);
+ }
+
+ // cannot be "setter" otherwise most strings use it, causing "1" to be saved.
+ //void bool_setter(const char* name, bool value)
+ //{
+ // m_list[name] = value ? "1" : "0";
+ // save_file(m_filename);
+ //}
+
+ void setter(const char* name, int value)
+ {
+ m_list[name] = std::to_string(value);
+ save_file(m_filename);
+ }
+
+ std::string getter(const char* name)
+ {
+ if (m_list.count(name))
+ return m_list.find(name)->second;
+ else
+ return "";
+ }
+
+ int int_value(const char* name)
+ {
+ return std::stoi(getter(name));
+ }
+
+ bool bool_value(const char* name)
+ {
+ return int_value(name) ? 1 : 0;
+ }
+};
+
+#endif // INI_OPTS_H
+
diff --git a/src/osd/winui/layout.cpp b/src/osd/winui/layout.cpp
new file mode 100644
index 00000000000..c27a361d6ef
--- /dev/null
+++ b/src/osd/winui/layout.cpp
@@ -0,0 +1,249 @@
+// For licensing and usage information, read docs/winui_license.txt
+// MASTER
+//****************************************************************************
+
+/***************************************************************************
+
+ layout.cpp
+
+ MAME specific TreeView definitions (and maybe more in the future)
+
+***************************************************************************/
+// standard windows headers
+#include <windows.h>
+#include <commctrl.h>
+
+// MAME/MAMEUI headers
+#include "bitmask.h"
+#include "treeview.h"
+#include "emu.h"
+#include "mui_util.h"
+#include "resource.h"
+#include "mui_opts.h"
+#include "splitters.h"
+#include "help.h"
+#include "mui_audit.h"
+#include "properties.h"
+
+
+static BOOL FilterAvailable(uint32_t driver_index)
+{
+ return !DriverUsesRoms(driver_index) || IsAuditResultYes(GetRomAuditResults(driver_index));
+}
+
+#ifdef MESS
+extern const FOLDERDATA g_folderData[] =
+{
+ {"All Systems", "allgames", FOLDER_ALLGAMES, IDI_FOLDER, 0, 0, 0, NULL, NULL, TRUE },
+ {"Available", "available", FOLDER_AVAILABLE, IDI_FOLDER_AVAILABLE, F_AVAILABLE, 0, 0, NULL, FilterAvailable, TRUE },
+ {"BIOS", "bios", FOLDER_BIOS, IDI_FOLDER, 0, 0, 1, CreateBIOSFolders, DriverIsBios, TRUE },
+ {"CHD", "harddisk", FOLDER_HARDDISK, IDI_HARDDISK, 0, 0, 0, NULL, DriverIsHarddisk, TRUE },
+ {"Clones", "clones", FOLDER_CLONES, IDI_FOLDER, F_CLONES, F_ORIGINALS, 0, NULL, DriverIsClone, TRUE },
+ {"Computer", "computer", FOLDER_COMPUTER, IDI_FOLDER, F_COMPUTER, F_CONSOLE, 0, NULL, DriverIsComputer, TRUE },
+ {"Console", "console", FOLDER_CONSOLE, IDI_FOLDER, F_CONSOLE, F_COMPUTER, 0, NULL, DriverIsConsole, TRUE },
+ {"CPU", "cpu", FOLDER_CPU, IDI_FOLDER, 0, 0, 1, CreateCPUFolders },
+ {"Dumping Status", "dumping", FOLDER_DUMPING, IDI_FOLDER, 0, 0, 1, CreateDumpingFolders },
+ {"FPS", "fps", FOLDER_FPS, IDI_FOLDER, 0, 0, 1, CreateFPSFolders },
+ {"Horizontal", "horizontal", FOLDER_HORIZONTAL, IDI_FOLDER_HORIZONTAL, F_HORIZONTAL, F_VERTICAL, 0, NULL, DriverIsVertical, FALSE },
+ {"Imperfect", "imperfect", FOLDER_DEFICIENCY, IDI_FOLDER, 0, 0, 0, CreateDeficiencyFolders },
+ {"Lightgun", "Lightgun", FOLDER_LIGHTGUN, IDI_FOLDER, 0, 0, 0, NULL, DriverUsesLightGun, TRUE },
+ {"Manufacturer", "manufacturer", FOLDER_MANUFACTURER, IDI_FOLDER_MANUFACTURER, 0, 0, 1, CreateManufacturerFolders },
+ {"Mechanical", "mechanical", FOLDER_MECHANICAL, IDI_FOLDER, 0, 0, 0, NULL, DriverIsMechanical, TRUE },
+ {"Modified/Hacked", "modified", FOLDER_MODIFIED, IDI_FOLDER, 0, 0, 0, NULL, DriverIsModified, TRUE },
+ {"Mouse", "mouse", FOLDER_MOUSE, IDI_FOLDER, 0, 0, 0, NULL, DriverUsesMouse, TRUE },
+ {"Non Mechanical", "nonmechanical", FOLDER_NONMECHANICAL,IDI_FOLDER, 0, 0, 0, NULL, DriverIsMechanical, FALSE },
+ {"Not Working", "nonworking", FOLDER_NONWORKING, IDI_NONWORKING, F_NONWORKING, F_WORKING, 0, NULL, DriverIsBroken, TRUE },
+ {"Originals", "originals", FOLDER_ORIGINAL, IDI_FOLDER, F_ORIGINALS, F_CLONES, 0, NULL, DriverIsClone, FALSE },
+ {"Raster", "raster", FOLDER_RASTER, IDI_FOLDER, F_RASTER, F_VECTOR, 0, NULL, DriverIsVector, FALSE },
+ {"Resolution", "resolution", FOLDER_RESOLUTION, IDI_FOLDER, 0, 0, 1, CreateResolutionFolders },
+ {"Samples", "samples", FOLDER_SAMPLES, IDI_FOLDER, 0, 0, 0, NULL, DriverUsesSamples, TRUE },
+ {"Save State", "savestate", FOLDER_SAVESTATE, IDI_FOLDER, 0, 0, 0, NULL, DriverSupportsSaveState, TRUE },
+ {"Screens", "screens", FOLDER_SCREENS, IDI_FOLDER, 0, 0, 1, CreateScreenFolders },
+ {"Sound", "sound", FOLDER_SND, IDI_FOLDER, 0, 0, 1, CreateSoundFolders },
+ {"Source", "source", FOLDER_SOURCE, IDI_FOLDER_SOURCE, 0, 0, 1, CreateSourceFolders },
+ {"Stereo", "stereo", FOLDER_STEREO, IDI_SOUND, 0, 0, 0, NULL, DriverIsStereo, TRUE },
+ {"Trackball", "trackball", FOLDER_TRACKBALL, IDI_FOLDER, 0, 0, 0, NULL, DriverUsesTrackball, TRUE },
+ {"Unavailable", "unavailable", FOLDER_UNAVAILABLE, IDI_FOLDER_UNAVAILABLE, 0, F_AVAILABLE, 0, NULL, FilterAvailable, FALSE },
+ {"Vector", "vector", FOLDER_VECTOR, IDI_FOLDER, F_VECTOR, F_RASTER, 0, NULL, DriverIsVector, TRUE },
+ {"Vertical", "vertical", FOLDER_VERTICAL, IDI_FOLDER_VERTICAL, F_VERTICAL, F_HORIZONTAL, 0, NULL, DriverIsVertical, TRUE },
+ {"Working", "working", FOLDER_WORKING, IDI_WORKING, F_WORKING, F_NONWORKING, 0, NULL, DriverIsBroken, FALSE },
+ {"Year", "year", FOLDER_YEAR, IDI_FOLDER_YEAR, 0, 0, 1, CreateYearFolders },
+ { NULL }
+};
+#else
+extern const FOLDERDATA g_folderData[] =
+{
+ {"All Games", "allgames", FOLDER_ALLGAMES, IDI_FOLDER, 0, 0, 0, NULL, NULL, TRUE },
+ {"Available", "available", FOLDER_AVAILABLE, IDI_FOLDER_AVAILABLE, F_AVAILABLE, 0, 0, NULL, FilterAvailable, TRUE },
+ {"BIOS", "bios", FOLDER_BIOS, IDI_FOLDER, 0, 0, 1, CreateBIOSFolders, DriverIsBios, TRUE },
+ {"CHD", "harddisk", FOLDER_HARDDISK, IDI_HARDDISK, 0, 0, 0, NULL, DriverIsHarddisk, TRUE },
+ {"Clones", "clones", FOLDER_CLONES, IDI_FOLDER, F_CLONES, F_ORIGINALS, 0, NULL, DriverIsClone, TRUE },
+ {"CPU", "cpu", FOLDER_CPU, IDI_CPU, 0, 0, 1, CreateCPUFolders },
+ {"Dumping Status", "dumping", FOLDER_DUMPING, IDI_FOLDER, 0, 0, 1, CreateDumpingFolders },
+ {"FPS", "fps", FOLDER_FPS, IDI_FOLDER, 0, 0, 1, CreateFPSFolders },
+ {"Horizontal", "horizontal", FOLDER_HORIZONTAL, IDI_FOLDER_HORIZONTAL, F_HORIZONTAL, F_VERTICAL, 0, NULL, DriverIsVertical, FALSE },
+ {"Imperfect", "imperfect", FOLDER_DEFICIENCY, IDI_FOLDER, 0, 0, 0, CreateDeficiencyFolders },
+ {"Lightgun", "Lightgun", FOLDER_LIGHTGUN, IDI_FOLDER, 0, 0, 0, NULL, DriverUsesLightGun, TRUE },
+ {"Manufacturer", "manufacturer", FOLDER_MANUFACTURER, IDI_FOLDER_MANUFACTURER, 0, 0, 1, CreateManufacturerFolders },
+ {"Mechanical", "mechanical", FOLDER_MECHANICAL, IDI_FOLDER, 0, 0, 0, NULL, DriverIsMechanical, TRUE },
+ {"Non Mechanical", "nonmechanical", FOLDER_NONMECHANICAL,IDI_FOLDER, 0, 0, 0, NULL, DriverIsMechanical, FALSE },
+ {"Not Working", "nonworking", FOLDER_NONWORKING, IDI_NONWORKING, F_NONWORKING, F_WORKING, 0, NULL, DriverIsBroken, TRUE },
+ {"Originals", "originals", FOLDER_ORIGINAL, IDI_FOLDER, F_ORIGINALS, F_CLONES, 0, NULL, DriverIsClone, FALSE },
+ {"Raster", "raster", FOLDER_RASTER, IDI_FOLDER, F_RASTER, F_VECTOR, 0, NULL, DriverIsVector, FALSE },
+ {"Resolution", "resolution", FOLDER_RESOLUTION, IDI_FOLDER, 0, 0, 1, CreateResolutionFolders },
+ {"Samples", "samples", FOLDER_SAMPLES, IDI_FOLDER, 0, 0, 0, NULL, DriverUsesSamples, TRUE },
+ {"Save State", "savestate", FOLDER_SAVESTATE, IDI_FOLDER, 0, 0, 0, NULL, DriverSupportsSaveState, TRUE },
+ {"Screens", "screens", FOLDER_SCREENS, IDI_FOLDER, 0, 0, 1, CreateScreenFolders },
+ {"Sound", "sound", FOLDER_SND, IDI_SOUND, 0, 0, 1, CreateSoundFolders },
+ {"Source", "source", FOLDER_SOURCE, IDI_FOLDER_SOURCE, 0, 0, 1, CreateSourceFolders },
+ {"Stereo", "stereo", FOLDER_STEREO, IDI_FOLDER, 0, 0, 0, NULL, DriverIsStereo, TRUE },
+ {"Trackball", "trackball", FOLDER_TRACKBALL, IDI_FOLDER, 0, 0, 0, NULL, DriverUsesTrackball, TRUE },
+ {"Unavailable", "unavailable", FOLDER_UNAVAILABLE, IDI_FOLDER_UNAVAILABLE, 0, F_AVAILABLE, 0, NULL, FilterAvailable, FALSE },
+ {"Vector", "vector", FOLDER_VECTOR, IDI_FOLDER, F_VECTOR, F_RASTER, 0, NULL, DriverIsVector, TRUE },
+ {"Vertical", "vertical", FOLDER_VERTICAL, IDI_FOLDER_VERTICAL, F_VERTICAL, F_HORIZONTAL, 0, NULL, DriverIsVertical, TRUE },
+ {"Working", "working", FOLDER_WORKING, IDI_WORKING, F_WORKING, F_NONWORKING, 0, NULL, DriverIsBroken, FALSE },
+ {"Year", "year", FOLDER_YEAR, IDI_FOLDER_YEAR, 0, 0, 1, CreateYearFolders },
+ { NULL }
+};
+#endif
+
+/* list of filter/control Id pairs */
+#ifdef MESS
+extern const FILTER_ITEM g_filterList[] =
+{
+ { F_VECTOR, IDC_FILTER_VECTOR, DriverIsVector, TRUE },
+ { F_RASTER, IDC_FILTER_RASTER, DriverIsVector, FALSE },
+ { F_CLONES, IDC_FILTER_CLONES, DriverIsClone, TRUE },
+ { F_ORIGINALS, IDC_FILTER_ORIGINALS, DriverIsClone, FALSE },
+ { F_NONWORKING, IDC_FILTER_NONWORKING, DriverIsBroken, TRUE },
+ { F_WORKING, IDC_FILTER_WORKING, DriverIsBroken, FALSE },
+ { F_HORIZONTAL, IDC_FILTER_HORIZONTAL, DriverIsVertical, FALSE },
+ { F_VERTICAL, IDC_FILTER_VERTICAL, DriverIsVertical, TRUE },
+ { F_COMPUTER, IDC_FILTER_COMPUTER, DriverIsComputer, TRUE },
+ { F_CONSOLE, IDC_FILTER_CONSOLE, DriverIsConsole, TRUE },
+ { F_UNAVAILABLE, IDC_FILTER_UNAVAILABLE, FilterAvailable, FALSE },
+ { F_MECHANICAL, IDC_FILTER_MECHANICAL, DriverIsMechanical, TRUE },
+ { F_ARCADE, IDC_FILTER_ARCADE, DriverIsArcade, TRUE },
+ { F_MESS, IDC_FILTER_MESS, DriverIsArcade, FALSE },
+// { F_MODIFIED, IDC_FILTER_MODIFIED, DriverIsModified, TRUE },
+// { F_AVAILABLE, IDC_FILTER_AVAILABLE, FilterAvailable, TRUE },
+ { 0 }
+};
+#else
+extern const FILTER_ITEM g_filterList[] =
+{
+ { F_CLONES, IDC_FILTER_CLONES, DriverIsClone, TRUE },
+ { F_NONWORKING, IDC_FILTER_NONWORKING, DriverIsBroken, TRUE },
+ { F_UNAVAILABLE, IDC_FILTER_UNAVAILABLE, FilterAvailable, FALSE },
+ { F_RASTER, IDC_FILTER_RASTER, DriverIsVector, FALSE },
+ { F_VECTOR, IDC_FILTER_VECTOR, DriverIsVector, TRUE },
+ { F_ORIGINALS, IDC_FILTER_ORIGINALS, DriverIsClone, FALSE },
+ { F_WORKING, IDC_FILTER_WORKING, DriverIsBroken, FALSE },
+ { F_AVAILABLE, IDC_FILTER_AVAILABLE, FilterAvailable, TRUE },
+ { F_HORIZONTAL, IDC_FILTER_HORIZONTAL, DriverIsVertical, FALSE },
+ { F_VERTICAL, IDC_FILTER_VERTICAL, DriverIsVertical, TRUE },
+ { F_MECHANICAL, IDC_FILTER_MECHANICAL, DriverIsMechanical, TRUE },
+ { F_ARCADE, IDC_FILTER_ARCADE, DriverIsArcade, TRUE },
+ { F_MESS, IDC_FILTER_MESS, DriverIsArcade, FALSE },
+ { 0 }
+};
+#endif
+
+#ifdef MESS
+extern const MAMEHELPINFO g_helpInfo[] =
+{
+ //{ ID_HELP_CONTENTS, TRUE, TEXT(MAMEUIHELP"::/windows/main.htm") },
+ { ID_HELP_CONTENTS, TRUE, TEXT(MAMEUIHELP) }, // 0 - call up CHM file
+ //{ ID_HELP_RELEASE, TRUE, TEXT(MAMEUIHELP) },
+ //{ ID_HELP_WHATS_NEW, TRUE, TEXT(MAMEUIHELP"::/messnew.txt") },
+ { ID_HELP_WHATS_NEW, TRUE, TEXT("") }, // 1 - call up whatsnew at mamedev.org
+ { -1 }
+};
+#else
+extern const MAMEHELPINFO g_helpInfo[] =
+{
+ { ID_HELP_CONTENTS, TRUE, TEXT(MAMEUIHELP) },
+ //{ ID_HELP_WHATS_NEWUI, TRUE, TEXT(MAMEUIHELP"::/html/mameui_changes.txt") },
+ //{ ID_HELP_TROUBLE, TRUE, TEXT(MAMEUIHELP"::/html/mameui_support.htm") },
+ //{ ID_HELP_RELEASE, FALSE, TEXT("windows.txt") },
+ { ID_HELP_WHATS_NEW, TRUE, TEXT(MAMEUIHELP"::/docs/whatsnew.txt") },
+ { -1 }
+};
+#endif
+
+#ifdef MESS
+extern const PROPERTYSHEETINFO g_propSheets[] =
+{
+ { FALSE, NULL, IDD_PROP_GAME, GamePropertiesDialogProc },
+ { FALSE, NULL, IDD_PROP_AUDIT, GameAuditDialogProc },
+ { TRUE, NULL, IDD_PROP_DISPLAY, GameOptionsProc },
+ { TRUE, NULL, IDD_PROP_ADVANCED, GameOptionsProc },
+ { TRUE, NULL, IDD_PROP_SCREEN, GameOptionsProc },
+ { TRUE, NULL, IDD_PROP_SOUND, GameOptionsProc },
+ { TRUE, NULL, IDD_PROP_INPUT, GameOptionsProc },
+ { TRUE, NULL, IDD_PROP_CONTROLLER, GameOptionsProc },
+ { TRUE, NULL, IDD_PROP_DEBUG, GameOptionsProc },
+ { TRUE, NULL, IDD_PROP_MISC, GameOptionsProc },
+ { FALSE, NULL, IDD_PROP_SOFTWARE, GameMessOptionsProc },
+ { FALSE, DriverHasRam, IDD_PROP_CONFIGURATION, GameMessOptionsProc }, // PropSheetFilter_Config not needed
+ { TRUE, DriverIsVector, IDD_PROP_VECTOR, GameOptionsProc }, // PropSheetFilter_Vector not needed
+ { FALSE }
+};
+#else
+extern const PROPERTYSHEETINFO g_propSheets[] =
+{
+ { FALSE, NULL, IDD_PROP_GAME, GamePropertiesDialogProc },
+ { FALSE, NULL, IDD_PROP_AUDIT, GameAuditDialogProc },
+ { TRUE, NULL, IDD_PROP_DISPLAY, GameOptionsProc },
+ { TRUE, NULL, IDD_PROP_ADVANCED, GameOptionsProc },
+ { TRUE, NULL, IDD_PROP_SCREEN, GameOptionsProc },
+ { TRUE, NULL, IDD_PROP_SOUND, GameOptionsProc },
+ { TRUE, NULL, IDD_PROP_INPUT, GameOptionsProc },
+ { TRUE, NULL, IDD_PROP_CONTROLLER, GameOptionsProc },
+ { TRUE, NULL, IDD_PROP_MISC, GameOptionsProc },
+ { TRUE, NULL, IDD_PROP_DEBUG, GameOptionsProc },
+ { TRUE, DriverIsVector, IDD_PROP_VECTOR, GameOptionsProc },
+ { FALSE }
+};
+#endif
+
+#ifdef MESS
+extern const ICONDATA g_iconData[] =
+{
+ { IDI_WIN_NOROMS, "noroms" },
+ { IDI_WIN_ROMS, "roms" },
+ { IDI_WIN_UNKNOWN, "unknown" },
+ { IDI_WIN_CLONE, "clone" },
+ { IDI_WIN_REDX, "warning" },
+ { IDI_WIN_IMPERFECT, "imperfect" },
+ { IDI_WIN_NOROMSNEEDED, "noromsneeded" },
+ { IDI_WIN_MISSINGOPTROM, "missingoptrom" },
+ { IDI_WIN_FLOP, "floppy" },
+ { IDI_WIN_CASS, "cassette" },
+ { IDI_WIN_SERL, "serial" },
+ { IDI_WIN_SNAP, "snapshot" },
+ { IDI_WIN_PRIN, "printer" },
+ { IDI_WIN_HARD, "hard" },
+ { IDI_WIN_MIDI, "midi" },
+ { 0 }
+};
+#else
+extern const ICONDATA g_iconData[] =
+{
+ { IDI_WIN_NOROMS, "noroms" },
+ { IDI_WIN_ROMS, "roms" },
+ { IDI_WIN_UNKNOWN, "unknown" },
+ { IDI_WIN_CLONE, "clone" },
+ { IDI_WIN_REDX, "warning" },
+ { IDI_WIN_IMPERFECT, "imperfect" },
+ { 0 }
+};
+#endif
+
+#ifdef MESS
+extern const TCHAR g_szPlayGameString[] = TEXT("&Run %s");
+extern const char g_szGameCountString[] = "%d machines";
+#else
+extern const TCHAR g_szPlayGameString[] = TEXT("&Play %s");
+extern const char g_szGameCountString[] = "%d games";
+#endif
diff --git a/src/osd/winui/mameui.rc b/src/osd/winui/mameui.rc
new file mode 100644
index 00000000000..a51eda11202
--- /dev/null
+++ b/src/osd/winui/mameui.rc
@@ -0,0 +1,1467 @@
+// Microsoft Visual C++ generated resource script.
+//
+#include "newuires.h"
+#include "resource.h"
+
+// Generated Help ID header file
+#define APSTUDIO_HIDDEN_SYMBOLS
+#include "resource.hm"
+#undef APSTUDIO_HIDDEN_SYMBOLS
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#include "windows.h"
+#include "commctrl.h"
+
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// English (USA) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
+#ifdef _WIN32
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+#pragma code_page(1252)
+#endif //_WIN32
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Menu
+//
+
+IDR_MAIN_MENU MENU DISCARDABLE
+BEGIN
+ POPUP "&File"
+ BEGIN
+ MENUITEM "&Exit", ID_FILE_EXIT
+ END
+ POPUP "&Help"
+ BEGIN
+ MENUITEM "&About MAMEUI", ID_ABOUT
+ END
+END
+
+IDR_UI_MENU MENU DISCARDABLE
+BEGIN
+ POPUP "&File"
+ BEGIN
+ MENUITEM "&Play", ID_FILE_PLAY
+ MENUITEM SEPARATOR
+ MENUITEM "Play and &Record Input...", ID_FILE_PLAY_RECORD
+ MENUITEM "P&layback Input...", ID_FILE_PLAY_BACK
+ MENUITEM SEPARATOR
+ MENUITEM "Play and Record &Wave Output...", ID_FILE_PLAY_RECORD_WAVE
+ MENUITEM SEPARATOR
+ MENUITEM "Play and Record &MNG Output...", ID_FILE_PLAY_RECORD_MNG
+ MENUITEM SEPARATOR
+ MENUITEM "Play and Record &uncompressed AVI Output...",
+ ID_FILE_PLAY_RECORD_AVI
+ MENUITEM SEPARATOR
+ MENUITEM "Loa&d Savestate...", ID_FILE_LOADSTATE
+ MENUITEM SEPARATOR
+
+ MENUITEM "Pr&operties", ID_GAME_PROPERTIES
+ MENUITEM SEPARATOR
+ MENUITEM "Audi&t existing sets", ID_FILE_AUDIT_X
+ MENUITEM "&Audit all sets", ID_FILE_AUDIT
+ MENUITEM SEPARATOR
+ MENUITEM "E&xit", ID_FILE_EXIT
+ END
+ POPUP "&View"
+ BEGIN
+ MENUITEM "&Toolbar\tAlt+T", ID_VIEW_TOOLBARS
+ MENUITEM "&Status bar\tAlt+S", ID_VIEW_STATUS
+ MENUITEM "Fold&er List\tAlt+D", ID_VIEW_FOLDERS
+ MENUITEM "&Picture Area\tAlt+P", ID_VIEW_PICTURE_AREA
+ MENUITEM "Screenshot Ta&b\tAlt+B", ID_VIEW_PAGETAB
+ MENUITEM SEPARATOR
+ MENUITEM "&Fullscreen\tF11", ID_VIEW_FULLSCREEN
+ MENUITEM SEPARATOR
+ POPUP "S&how Pictures"
+ BEGIN
+ MENUITEM "&Snapshot", ID_TOGGLE_TAB_SCREENSHOT
+ MENUITEM "&Flyer", ID_TOGGLE_TAB_FLYER
+ MENUITEM "&Cabinet", ID_TOGGLE_TAB_CABINET
+ MENUITEM "&Marquee", ID_TOGGLE_TAB_MARQUEE
+ MENUITEM "&Title", ID_TOGGLE_TAB_TITLE
+ MENUITEM "Control &Panel", ID_TOGGLE_TAB_CONTROL_PANEL
+
+ MENUITEM "PC&B", ID_TOGGLE_TAB_PCB
+ MENUITEM "&History", ID_TOGGLE_TAB_HISTORY
+ END
+ MENUITEM SEPARATOR
+ MENUITEM "L&arge Icons", ID_VIEW_LARGE_ICON
+ MENUITEM "S&mall Icons", ID_VIEW_SMALL_ICON
+ MENUITEM "&List", ID_VIEW_LIST_MENU
+ MENUITEM "&Details", ID_VIEW_DETAIL
+ MENUITEM "&Grouped", ID_VIEW_GROUPED
+ MENUITEM SEPARATOR
+ POPUP "Arrange &Icons"
+ BEGIN
+ MENUITEM "by &Name", ID_VIEW_BYGAME
+ MENUITEM "by D&irectory", ID_VIEW_BYDIRECTORY
+ MENUITEM "by &Manufacturer", ID_VIEW_BYMANUFACTURER
+ MENUITEM "by Times &Played", ID_VIEW_BYTIMESPLAYED
+ MENUITEM "by &Type", ID_VIEW_BYTYPE
+ MENUITEM "by &Date", ID_VIEW_BYYEAR
+ END
+ MENUITEM "Line &Up Icons", ID_VIEW_LINEUPICONS
+ MENUITEM SEPARATOR
+ MENUITEM "&Refresh\tF5", ID_UPDATE_GAMELIST
+ MENUITEM "&Custom Filters...\tCtrl+F", ID_CONTEXT_FILTERS
+ MENUITEM "Customi&ze Fields...", ID_CUSTOMIZE_FIELDS
+ END
+ POPUP "&Options"
+ BEGIN
+ MENUITEM "&Interface Options", ID_OPTIONS_INTERFACE
+ MENUITEM "Default Game &Options", ID_OPTIONS_DEFAULTS
+ MENUITEM "&Directories", ID_OPTIONS_DIR
+ MENUITEM SEPARATOR
+ MENUITEM "Game List &Font", ID_OPTIONS_FONT
+ MENUITEM "Game List &Clone Color", ID_OPTIONS_CLONE_COLOR
+ MENUITEM SEPARATOR
+
+ MENUITEM "&Background Image", ID_OPTIONS_BG
+ MENUITEM SEPARATOR
+ MENUITEM "&Reset to Default", ID_OPTIONS_RESET_DEFAULTS
+
+ END
+ POPUP "&Help"
+ BEGIN
+// MENUITEM "&Contents\tF1", ID_HELP_CONTENTS
+// MENUITEM "&Troubleshooting", ID_HELP_TROUBLE
+// MENUITEM SEPARATOR
+// MENUITEM "&New Game Changes", ID_HELP_WHATS_NEWUI
+// MENUITEM "&Mame Release Notes", ID_HELP_WHATS_NEW
+// MENUITEM SEPARATOR
+// MENUITEM "&About", ID_HELP_ABOUT
+// MENUITEM "&Mess Release Notes", ID_HELP_RELEASE
+ MENUITEM "What's New in MAME", ID_HELP_WHATS_NEW
+ MENUITEM "&Contents\tF1", ID_HELP_CONTENTS
+// MENUITEM "&Troubleshooting", ID_HELP_TROUBLE
+ MENUITEM "&About", ID_HELP_ABOUT
+ END
+END
+
+IDR_CONTEXT_MENU MENU
+BEGIN
+ POPUP "Context Menu"
+ BEGIN
+ MENUITEM "&Play", ID_FILE_PLAY
+ MENUITEM SEPARATOR
+ MENUITEM "Play and &Record Input...", ID_FILE_PLAY_RECORD
+ MENUITEM SEPARATOR
+ MENUITEM "&Add to Custom Folder...", ID_CONTEXT_ADD_CUSTOM
+ MENUITEM "R&emove From This Folder", ID_CONTEXT_REMOVE_CUSTOM
+ MENUITEM "&Custom Filters...", ID_CONTEXT_FILTERS
+ MENUITEM SEPARATOR
+ MENUITEM "&Select Random Game", ID_CONTEXT_SELECT_RANDOM
+ MENUITEM SEPARATOR
+ MENUITEM "Rese&t Playcount", ID_CONTEXT_RESET_PLAYCOUNT
+ MENUITEM "Reset Pla&y Time", ID_CONTEXT_RESET_PLAYTIME
+ MENUITEM SEPARATOR
+ MENUITEM "A&udit", ID_GAME_AUDIT
+ MENUITEM SEPARATOR
+ MENUITEM "Pr&operties", ID_GAME_PROPERTIES
+ MENUITEM "Source propert&ies", ID_FOLDER_SOURCEPROPERTIES
+ MENUITEM "&Vector properties", ID_FOLDER_VECTORPROPERTIES
+ END
+END
+
+IDR_CONTEXT_HEADER MENU
+BEGIN
+ POPUP "Header Context Menu"
+ BEGIN
+ MENUITEM "Sort &Ascending", ID_SORT_ASCENDING
+ MENUITEM "Sort &Descending", ID_SORT_DESCENDING
+ MENUITEM SEPARATOR
+ MENUITEM "Customi&ze Fields...", ID_CUSTOMIZE_FIELDS
+ END
+END
+
+IDR_CONTEXT_TREE MENU
+BEGIN
+ POPUP "Context Menu Tree"
+ BEGIN
+ MENUITEM "&Rename", ID_CONTEXT_RENAME_CUSTOM
+ MENUITEM "&Custom Filters...", ID_CONTEXT_FILTERS
+ MENUITEM SEPARATOR
+ POPUP "&Show Folders"
+ BEGIN
+ MENUITEM "overridden by code", ID_CONTEXT_SHOW_FOLDER_START
+
+ END
+ MENUITEM SEPARATOR
+ MENUITEM "&Audit", ID_FOLDER_AUDIT
+ MENUITEM SEPARATOR
+ MENUITEM "&Properties", ID_FOLDER_PROPERTIES
+ END
+END
+
+IDR_CONTEXT_SCREENSHOT MENU
+BEGIN
+ POPUP "Context Screen Shot"
+ BEGIN
+ MENUITEM "Show Tab &Control", ID_VIEW_PAGETAB
+ MENUITEM SEPARATOR
+ POPUP "S&how Pictures"
+ BEGIN
+ MENUITEM "&Snapshot", ID_TOGGLE_TAB_SCREENSHOT
+ MENUITEM "&Flyer", ID_TOGGLE_TAB_FLYER
+ MENUITEM "&Cabinet", ID_TOGGLE_TAB_CABINET
+ MENUITEM "&Marquee", ID_TOGGLE_TAB_MARQUEE
+ MENUITEM "&Title", ID_TOGGLE_TAB_TITLE
+ MENUITEM "Control &Panel", ID_TOGGLE_TAB_CONTROL_PANEL
+
+ MENUITEM "PC&B", ID_TOGGLE_TAB_PCB
+ MENUITEM "&History", ID_TOGGLE_TAB_HISTORY
+ END
+ MENUITEM SEPARATOR
+ MENUITEM "&Snapshot", ID_VIEW_TAB_SCREENSHOT
+ MENUITEM "&Flyer", ID_VIEW_TAB_FLYER
+ MENUITEM "&Cabinet", ID_VIEW_TAB_CABINET
+ MENUITEM "&Marquee", ID_VIEW_TAB_MARQUEE
+ MENUITEM "&Title", ID_VIEW_TAB_TITLE
+ MENUITEM "Control &Panel", ID_VIEW_TAB_CONTROL_PANEL
+ MENUITEM "PC&B", ID_VIEW_TAB_PCB
+ MENUITEM "&History", ID_VIEW_TAB_HISTORY
+ END
+END
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Menu
+//
+
+IDR_RUNTIME_MENU MENU
+BEGIN
+ POPUP "&File"
+ BEGIN
+ MENUITEM "&Load State...", ID_FILE_LOADSTATE_NEWUI, GRAYED
+ MENUITEM "&Save State", ID_FILE_SAVESTATE, GRAYED
+ MENUITEM "S&ave State As...", ID_FILE_SAVESTATE_AS, GRAYED
+ MENUITEM SEPARATOR
+ MENUITEM "Save Sc&reenshot", ID_FILE_SAVESCREENSHOT
+ MENUITEM SEPARATOR
+ MENUITEM "&Hide Menubar", ID_FILE_TOGGLEMENUBAR
+ MENUITEM "&Full Screen\tAlt+Enter", ID_FILE_FULLSCREEN
+ MENUITEM "Partial Keyboard Emulation", ID_FILE_UIACTIVE
+ MENUITEM "Show Tab Menu", ID_FILE_OLDUI
+ MENUITEM SEPARATOR
+ MENUITEM "&Exit", ID_FILE_EXIT_NEWUI
+ END
+ POPUP "&Edit"
+ BEGIN
+ MENUITEM "Paste", ID_EDIT_PASTE
+ END
+ POPUP "&Options"
+ BEGIN
+ MENUITEM "&Pause", ID_OPTIONS_PAUSE, GRAYED
+ MENUITEM "Soft &Reset", ID_OPTIONS_SOFTRESET
+ MENUITEM "Ha&rd Reset", ID_OPTIONS_HARDRESET
+ MENUITEM SEPARATOR
+ POPUP "&Keyboard"
+ BEGIN
+ MENUITEM "Emulated", ID_KEYBOARD_EMULATED
+ MENUITEM "Natural", ID_KEYBOARD_NATURAL
+ MENUITEM SEPARATOR
+ MENUITEM "Customise Emulated Keyboard...", ID_KEYBOARD_CUSTOMIZE
+ END
+ MENUITEM "&Joysticks", ID_OPTIONS_JOYSTICKS, GRAYED
+ POPUP "&Video"
+ BEGIN
+ MENUITEM SEPARATOR
+ MENUITEM "Rotate 0 degrees", ID_VIDEO_ROTATE_0
+ MENUITEM "Rotate 90 degrees", ID_VIDEO_ROTATE_90
+ MENUITEM "Rotate 180 degrees", ID_VIDEO_ROTATE_180
+ MENUITEM "Rotate 270 degrees", ID_VIDEO_ROTATE_270
+ END
+ MENUITEM "&Configuration...", ID_OPTIONS_CONFIGURATION
+ MENUITEM "&DIP Switches...", ID_OPTIONS_DIPSWITCHES
+ MENUITEM "&Miscellaneous Inputs...", ID_OPTIONS_MISCINPUT
+ MENUITEM "&Analog Controls...", ID_OPTIONS_ANALOGCONTROLS
+ MENUITEM SEPARATOR
+ POPUP "&Frameskip"
+ BEGIN
+ MENUITEM "Auto", ID_FRAMESKIP_AUTO
+ END
+ POPUP "Maximum &Speed"
+ BEGIN
+ MENUITEM "50%", ID_THROTTLE_50
+ MENUITEM "100%", ID_THROTTLE_100
+ MENUITEM "200%", ID_THROTTLE_200
+ MENUITEM "500%", ID_THROTTLE_500
+ MENUITEM "1000%", ID_THROTTLE_1000
+ MENUITEM "Unlimited", ID_THROTTLE_UNTHROTTLED
+ END
+ MENUITEM "Show &FPS", ID_OPTIONS_TOGGLEFPS
+ END
+ POPUP "&Media"
+ BEGIN
+ MENUITEM SEPARATOR
+ END
+ POPUP "&Help"
+ BEGIN
+ MENUITEM "About This System...", ID_HELP_ABOUTSYSTEM
+ MENUITEM "&About MAME...", ID_HELP_ABOUT_NEWUI
+ END
+END
+
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE MOVEABLE PURE
+BEGIN
+ "resource.h\\r\n"
+ "newuires.h\0"
+END
+
+2 TEXTINCLUDE MOVEABLE PURE
+BEGIN
+ "#define NOWINRES\r\n"
+ "#include ""windows.h""\r\n"
+ "#include ""commctrl.h""\r\n"
+ "\0"
+END
+
+3 TEXTINCLUDE MOVEABLE PURE
+BEGIN
+ "#include ""mamevers.rc"" // Version block\r\n"
+ "\r\n"
+ "\0"
+END
+
+#endif // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Icon
+//
+
+// Icon with lowest ID value placed first to ensure application icon
+// remains consistent on all systems.
+IDI_MAMEUI_ICON ICON "res\\mameui.ico"
+IDI_WIN_ROMS ICON "res\\win_roms.ico"
+IDI_WIN_NOROMS ICON "res\\win_noro.ico"
+IDI_WIN_UNKNOWN ICON "res\\win_unkn.ico"
+IDI_WIN_CLONE ICON "res\\win_clone.ico"
+IDI_WIN_REDX ICON "res\\win_redx.ico"
+IDI_FOLDER_AVAILABLE ICON "res\\foldavail.ico"
+IDI_FOLDER ICON "res\\folder.ico"
+IDI_FOLDER_MANUFACTURER ICON "res\\foldmanu.ico"
+IDI_FOLDER_OPEN ICON "res\\foldopen.ico"
+IDI_FOLDER_UNAVAILABLE ICON "res\\foldunav.ico"
+IDI_FOLDER_HORIZONTAL ICON "res\\horz.ico"
+IDI_FOLDER_VERTICAL ICON "res\\vert.ico"
+IDI_MANUFACTURER ICON "res\\manufact.ico"
+IDI_FOLDER_YEAR ICON "res\\foldyear.ico"
+IDI_FOLDER_SOURCE ICON "res\\foldsrc.ico"
+IDI_WORKING ICON "res\\working.ico"
+IDI_NONWORKING ICON "res\\nonwork.ico"
+IDI_YEAR ICON "res\\year.ico"
+IDI_KEYBOARD ICON "res\\keyboard.ico"
+IDI_JOYSTICK ICON "res\\joystick.ico"
+IDI_CPU ICON "res\\cpu.ico"
+IDI_SOUND ICON "res\\samples.ico"
+IDI_SOUNDTAB ICON "res\\sound.ico"
+IDI_SOURCE ICON "res\\source.ico"
+IDI_HARDDISK ICON "res\\harddisk.ico"
+IDI_DISPLAY ICON "res\\display.ico"
+IDI_CHECKMARK ICON "res\\checkmark.ico"
+IDI_HEADER_UP ICON "res\\header_up.ico"
+IDI_HEADER_DOWN ICON "res\\header_down.ico"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Dialog
+//
+
+IDD_ABOUT DIALOG DISCARDABLE 0, 0, 296, 129
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "About MAMEUI"
+FONT 8, "Tahoma"
+BEGIN
+ DEFPUSHBUTTON "&OK",IDOK,200,109,50,14,WS_GROUP
+ CTEXT "HomeBrew MAME",IDC_STATIC,147,7,142,
+ 11,NOT WS_GROUP
+ CTEXT "Version 0",IDC_VERSION,147,18,142,11,NOT WS_GROUP
+ CTEXT "Copyright (C) 1997-2017 The HBMAME Team",IDC_STATIC,147,
+ 29,142,10,NOT WS_GROUP
+ CTEXT "MAMEUI version by",IDC_STATIC,147,51,142,10,NOT
+ WS_GROUP
+ CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,147,44,142,1
+ CTEXT "Christopher Kirmse and the MAMEUI team",IDC_STATIC,147,
+ 62,142,9,NOT WS_GROUP
+ CTEXT "Additional MAMEUI code by",IDC_STATIC,147,74,142,9
+ CTEXT "Mike Haaland, Andrew Kirmse, Jeff Miller",IDC_STATIC,
+ 147,85,142,9
+ CTEXT "John Hardy IV and Michael Soderstrom",IDC_STATIC,147,96,
+ 142,9
+ CONTROL "",IDC_ABOUT,"Static",SS_BITMAP | SS_SUNKEN,7,7,16,14
+END
+
+IDD_DIRECTX DIALOG DISCARDABLE 0, 0, 236, 69
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "MAMEUI"
+FONT 8, "Tahoma"
+BEGIN
+ DEFPUSHBUTTON "Go to Microsoft's DirectX Web Page",IDB_WEB_PAGE,48,52,
+ 140,14
+ EDITTEXT IDC_DIRECTX_HELP,7,0,222,48,ES_MULTILINE |
+ ES_AUTOHSCROLL | ES_READONLY
+END
+
+IDD_AUDIT DIALOG DISCARDABLE 0, 0, 283, 188
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "File Audit"
+FONT 8, "Tahoma"
+BEGIN
+ PUSHBUTTON "&Pause",IDPAUSE,98,168,40,14
+ PUSHBUTTON "&Cancel",IDCANCEL,144,168,40,14
+ GROUPBOX "ROMs",IDC_STATIC,6,4,132,65
+ LTEXT "Correct:",IDC_STATIC,51,28,32,8
+ CONTROL "Progress1",IDC_ROMS_PROGRESS,"msctls_progress32",
+ PBS_SMOOTH | WS_BORDER,14,16,116,8
+ LTEXT "Incorrect:",IDC_STATIC,51,42,32,8
+ LTEXT "Total:",IDC_STATIC,51,56,32,8
+ LTEXT "0",IDC_ROMS_CORRECT,87,28,20,8
+ LTEXT "0",IDC_ROMS_INCORRECT,87,42,20,8
+ LTEXT "0",IDC_ROMS_TOTAL,87,56,20,8
+ GROUPBOX "Samples",IDC_STATIC,145,4,132,65
+ CONTROL "Progress1",IDC_SAMPLES_PROGRESS,"msctls_progress32",
+ PBS_SMOOTH | WS_BORDER,153,16,116,8
+ LTEXT "Correct:",IDC_STATIC,191,28,33,8
+ LTEXT "Incorrect:",IDC_STATIC,191,42,33,8
+ LTEXT "Total:",IDC_STATIC,191,56,33,8
+ LTEXT "0",IDC_SAMPLES_CORRECT,227,28,20,8
+ LTEXT "0",IDC_SAMPLES_INCORRECT,227,42,20,8
+ LTEXT "0",IDC_SAMPLES_TOTAL,227,56,20,8
+ GROUPBOX "Details",IDC_STATIC,6,72,271,90
+ EDITTEXT IDC_AUDIT_DETAILS,12,82,259,74,ES_MULTILINE |
+ ES_AUTOVSCROLL | ES_READONLY | WS_VSCROLL | WS_HSCROLL |
+ NOT WS_TABSTOP
+END
+
+IDD_DIRECTORIES DIALOG DISCARDABLE 0, 0, 230, 107
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Directories"
+FONT 8, "Tahoma"
+BEGIN
+ LTEXT "Show directories for:",IDC_STATIC,6,6,67,10
+ COMBOBOX IDC_DIR_COMBO,6,18,160,79,CBS_DROPDOWNLIST | CBS_SORT |
+ WS_VSCROLL | WS_TABSTOP
+ LTEXT "Directories:",IDC_STATIC,6,38,38,10
+ CONTROL "List1",IDC_DIR_LIST,"SysListView32",LVS_REPORT |
+ LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_EDITLABELS |
+ LVS_ALIGNLEFT | LVS_NOCOLUMNHEADER | WS_BORDER |
+ WS_TABSTOP,6,50,160,51
+ DEFPUSHBUTTON "OK",IDOK,173,8,50,14
+ PUSHBUTTON "Cancel",IDCANCEL,173,26,50,14
+ PUSHBUTTON "Browse...",IDC_DIR_BROWSE,173,50,50,14
+ PUSHBUTTON "Insert",IDC_DIR_INSERT,173,68,50,14
+ PUSHBUTTON "Delete",IDC_DIR_DELETE,173,87,50,14
+END
+
+IDD_COLUMNS DIALOG DISCARDABLE 0, 0, 302, 145
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Customize Fields"
+FONT 8, "Tahoma"
+BEGIN
+ LTEXT "Available fields:",IDC_STATIC,6,6,80,10,SS_CENTERIMAGE
+ CONTROL "List1",IDC_LISTAVAILABLECOLUMNS,"SysListView32",
+ LVS_LIST | LVS_SINGLESEL | LVS_NOCOLUMNHEADER |
+ LVS_NOSORTHEADER | WS_BORDER | WS_HSCROLL | WS_TABSTOP,6,
+ 18,90,100
+ PUSHBUTTON "Add ->",IDC_BUTTONADD,102,18,46,14,WS_DISABLED
+ PUSHBUTTON "<- Remove",IDC_BUTTONREMOVE,102,36,46,14,WS_DISABLED
+ LTEXT "Show these fields in this order:",IDC_STATIC,154,6,96,
+ 10,SS_CENTERIMAGE
+ CONTROL "List1",IDC_LISTSHOWCOLUMNS,"SysListView32",LVS_LIST |
+ LVS_SINGLESEL | LVS_NOCOLUMNHEADER | LVS_NOSORTHEADER |
+ WS_BORDER | WS_HSCROLL | WS_TABSTOP,154,18,90,100
+ PUSHBUTTON "Move Up",IDC_BUTTONMOVEUP,250,18,46,14,WS_DISABLED
+ PUSHBUTTON "Move Down",IDC_BUTTONMOVEDOWN,250,36,46,14,WS_DISABLED
+ DEFPUSHBUTTON "OK",IDOK,105,124,44,14
+ PUSHBUTTON "Cancel",IDCANCEL,155,124,44,14
+END
+
+IDD_PROP_CONTROLLER DIALOGEX 0, 0, 220, 240
+STYLE DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
+CAPTION "Controller Mapping"
+FONT 8, "Tahoma"
+BEGIN
+ ICON IDI_JOYSTICK,IDC_STATIC,20,10,20,20
+ LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,
+ SS_NOPREFIX
+ GROUPBOX "Paddle device",IDC_STATIC,4,40,102,28
+ COMBOBOX IDC_PADDLE,10,50,91,62,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP,0,HIDC_PADDLE
+ GROUPBOX "ADStick device",IDC_STATIC,4,71,102,28
+ COMBOBOX IDC_ADSTICK,10,80,91,62,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP,0,HIDC_ADSTICK
+ GROUPBOX "Pedal device",IDC_STATIC,4,102,102,28
+ COMBOBOX IDC_PEDAL,10,112,91,62,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP,0,HIDC_PEDAL
+ GROUPBOX "Mouse device",IDC_STATIC,4,133,102,28
+ COMBOBOX IDC_MOUSE,10,142,90,62,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP,0,HIDC_MOUSE
+ GROUPBOX "Dial device",IDC_STATIC,113,40,102,28
+ COMBOBOX IDC_DIAL,119,50,90,62,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP,0,HIDC_DIAL
+ GROUPBOX "Trackball device",IDC_STATIC,113,71,102,28
+ COMBOBOX IDC_TRACKBALL,119,80,90,62,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP,0,HIDC_TRACKBALL
+ GROUPBOX "Lightgun device",IDC_STATIC,113,102,102,28
+ COMBOBOX IDC_LIGHTGUNDEVICE,119,112,90,62,CBS_DROPDOWNLIST |
+ WS_VSCROLL | WS_TABSTOP,0,HIDC_LIGHTGUNDEVICE
+ GROUPBOX "Positional device",IDC_STATIC,113,133,102,28
+ COMBOBOX IDC_POSITIONAL,119,142,90,62,CBS_DROPDOWNLIST |
+ WS_VSCROLL | WS_TABSTOP,0,HIDC_POSITIONAL
+ PUSHBUTTON "Reset",IDC_PROP_RESET,4,222,97,14,0,0,HIDC_PROP_RESET
+ PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,118,222,97,14,
+ 0,0,HIDC_USE_DEFAULT
+END
+
+IDD_PROP_SCREEN DIALOGEX 0, 0, 220, 240
+STYLE WS_CHILD | WS_CAPTION
+CAPTION "Screen"
+FONT 8, "Tahoma"
+BEGIN
+ ICON IDI_DISPLAY,IDC_STATIC,20,10,21,20
+ LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,SS_NOPREFIX
+
+ GROUPBOX "Number of screens",IDC_STATIC,4,40,103,24
+ CONTROL "GammaSlider",IDC_NUMSCREENS,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,10,50,75,10,0,HIDC_NUMSCREENS
+ RTEXT "1",IDC_NUMSCREENSDISP,84,49,14,10,SS_CENTERIMAGE | NOT WS_GROUP
+
+ GROUPBOX "Screen",IDC_STATIC,4,66,103,29
+ COMBOBOX IDC_SCREEN,10,76,91,64,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_SCREEN
+
+ GROUPBOX "",IDC_STATIC,4,97,103,28
+ CONTROL "Autoselect aspect",IDC_ASPECT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,97,73,10,0,HIDC_ASPECT
+ LTEXT "Aspect ratio",IDC_ASPECTRATIOTEXT,17,108,40,11,SS_CENTERIMAGE | NOT WS_GROUP
+ EDITTEXT IDC_ASPECTRATION,60,108,14,12,ES_RIGHT | ES_AUTOHSCROLL | ES_NUMBER,0,HIDC_ASPECTRATION
+ LTEXT ":",IDC_STATIC,76,108,8,10,SS_CENTERIMAGE | NOT WS_GROUP
+ EDITTEXT IDC_ASPECTRATIOD,80,108,14,12,ES_RIGHT | ES_AUTOHSCROLL | ES_NUMBER,0,HIDC_ASPECTRATIOD
+
+ GROUPBOX "View",IDC_STATIC,4,128,103,28
+ COMBOBOX IDC_VIEW,10,137,91,64,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_VIEW
+
+ GROUPBOX "Screennumber",IDC_SCREENSELECTTEXT,113,40,102,28
+ COMBOBOX IDC_SCREENSELECT,119,50,90,64,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_SCREENSELECT
+
+ GROUPBOX "Resolution",IDC_STATIC,113,71,102,76,WS_GROUP
+ GROUPBOX "Size",IDC_STATIC,119,81,90,28,WS_GROUP
+ COMBOBOX IDC_SIZES,126,91,77,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_SIZES
+
+ GROUPBOX "Refresh",IDC_REFRESHTEXT,119,112,90,28,WS_GROUP
+ COMBOBOX IDC_REFRESH,126,121,77,76,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_REFRESH
+ CONTROL "Switch resolutions to fit",IDC_SWITCHRES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,119,151,93,10,0,HIDC_SWITCHRES
+
+ PUSHBUTTON "Reset",IDC_PROP_RESET,4,222,97,14,0,0,HIDC_PROP_RESET
+ PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,118,222,97,14,0,0,HIDC_USE_DEFAULT
+END
+
+IDD_PROP_GAME DIALOG DISCARDABLE 0, 0, 220, 276
+STYLE WS_CHILD | WS_CAPTION
+CAPTION "General"
+FONT 8, "Tahoma"
+BEGIN
+ ICON IDI_MAMEUI_ICON,IDC_GAME_ICON,20,10,21,20
+ LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,
+ SS_NOPREFIX
+ CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,18,38,178,1
+ LTEXT "Manufactured:",IDC_STATIC,18,43,47,8
+ LTEXT "Static",IDC_PROP_MANUFACTURED,65,43,155,9,SS_NOPREFIX
+ LTEXT "Status:",IDC_STATIC,18,52,47,8
+ LTEXT "Static",IDC_PROP_STATUS,65,52,155,32
+ CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,18,85,178,1
+ LTEXT "CPU:",IDC_STATIC,18,90,47,8
+ LTEXT "Static\nStatic\nStatic\nStatic\nStatic",IDC_PROP_CPU,65,90,155,40
+ CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,18,130,178,1
+ LTEXT "Sound:",IDC_STATIC,18,135,47,8
+ LTEXT "Static\nStatic\nStatic\nStatic\nStatic",IDC_PROP_SOUND,65,135,155,45
+ CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,18,181,178,1
+ LTEXT "Screen:",IDC_STATIC,18,186,47,8
+ LTEXT "Static\nStatic\nStatic",IDC_PROP_SCREEN,65,186,155,27
+ CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,18,218,178,1
+ LTEXT "Source:",IDC_STATIC,16,223,47,8
+ LTEXT "Static",IDC_PROP_SOURCE,65,223,139,8
+ LTEXT "Clone of:",IDC_PROP_CLONEOF_TEXT,16,232,50,8
+ LTEXT "Static",IDC_PROP_CLONEOF,65,232,130,33
+END
+
+IDD_PROP_AUDIT DIALOG DISCARDABLE 0, 0, 220, 240
+STYLE WS_CHILD | WS_CAPTION
+CAPTION "Audit"
+FONT 8, "Tahoma"
+BEGIN
+ ICON IDI_CHECKMARK,IDC_STATIC,20,10,20,20
+ LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,
+ SS_NOPREFIX
+ LTEXT "ROM check:",IDC_STATIC,10,40,50,8
+ LTEXT "Checking...",IDC_PROP_ROMS,66,40,139,8
+ LTEXT "Sample check:",IDC_STATIC,10,52,50,8
+ LTEXT "Checking...",IDC_PROP_SAMPLES,66,52,139,8
+ GROUPBOX "Details",IDC_STATIC,4,64,211,171
+ EDITTEXT IDC_AUDIT_DETAILS_PROP,10,74,199,155,ES_MULTILINE |
+ ES_AUTOVSCROLL | ES_READONLY | WS_VSCROLL | WS_HSCROLL |
+ NOT WS_TABSTOP
+END
+
+IDD_PROP_DISPLAY DIALOGEX 0, 0, 220, 240
+STYLE WS_CHILD | WS_CAPTION
+CAPTION "Display"
+FONT 8, "Tahoma"
+BEGIN
+ ICON IDI_DISPLAY,IDC_STATIC,20,10,20,20
+ LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,169,25,SS_NOPREFIX
+
+ CONTROL "Run in a window",IDC_WINDOWED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,40,69,10,0,HIDC_WINDOWED
+ CONTROL "Start out maximized",IDC_MAXIMIZE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,52,74,10,0,HIDC_MAXIMIZE
+ CONTROL "Enforce aspect ratio",IDC_KEEPASPECT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,64,77,10,0,HIDC_KEEPASPECT
+ CONTROL "Throttle",IDC_THROTTLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,76,39,10,0,HIDC_THROTTLE
+
+ GROUPBOX "Bitmap prescaling",IDC_PRESCALETEXT,4,89,103,24
+ CONTROL "GammaSlider",IDC_PRESCALE,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,10,99,71,10,0,HIDC_PRESCALE
+ RTEXT "1.00",IDC_PRESCALEDISP,84,98,14,11,SS_CENTERIMAGE | NOT WS_GROUP
+
+ GROUPBOX "Gamma Correction",IDC_STATIC,4,115,103,24
+ CONTROL "GammaSlider",IDC_GAMMA,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,10,125,71,10,0,HIDC_GAMMA
+ RTEXT "2.00",IDC_GAMMADISP,84,124,14,10,SS_CENTERIMAGE | NOT WS_GROUP
+
+ GROUPBOX "Brightness Correction",IDC_STATIC,4,141,103,24
+ CONTROL "GammaSlider",IDC_BRIGHTCORRECT,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,10,151,71,10,0,HIDC_BRIGHTCORRECT
+ RTEXT "1.00",IDC_BRIGHTCORRECTDISP,84,150,14,10,SS_CENTERIMAGE | NOT WS_GROUP
+
+ GROUPBOX "Contrast Correction",IDC_STATIC,4,167,103,24
+ CONTROL "GammaSlider",IDC_CONTRAST,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,10,176,71,10,0,HIDC_CONTRAST
+ RTEXT "1.00",IDC_CONTRASTDISP,84,175,14,11,SS_CENTERIMAGE | NOT WS_GROUP
+
+ GROUPBOX "Pause Brightness",IDC_STATIC,4,193,103,24
+ CONTROL "Slider1",IDC_PAUSEBRIGHT,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,10,203,71,10,0,HIDC_PAUSEBRIGHT
+ RTEXT "0.65",IDC_PAUSEBRIGHTDISP,84,202,14,11,SS_CENTERIMAGE | NOT WS_GROUP
+
+ GROUPBOX "Video mode",IDC_STATIC,113,40,102,28
+ COMBOBOX IDC_VIDEO_MODE,119,50,90,50,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP,0,HIDC_VIDEO_MODE
+
+ GROUPBOX "Rotation",IDC_STATIC,113,71,102,55
+ COMBOBOX IDC_ROTATE,119,81,90,57,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_ROTATE
+ CONTROL "Flip screen upside-down",IDC_FLIPY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,119,98,91,10,0,HIDC_FLIPY
+ CONTROL "Flip screen left-right",IDC_FLIPX,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,119,110,77,10,0,HIDC_FLIPX
+
+ GROUPBOX "Direct3D",IDC_STATIC,113,128,102,57
+ CONTROL "Use Bilinear filtering",IDC_D3D_FILTER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,119,138,85,10,0,HIDC_D3D_FILTER
+
+// GROUPBOX "Version",IDC_STATIC,119,150,90,28
+// COMBOBOX IDC_D3D_VERSION,125,160,78,95,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_D3D_VERSION
+
+// GROUPBOX "DirectDraw",IDC_STATIC,113,187,102,26
+// CONTROL "Stretch using hardware",IDC_HWSTRETCH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,119,197,85,10,0,HIDC_HWSTRETCH
+
+ PUSHBUTTON "Reset",IDC_PROP_RESET,4,222,97,14,0,0,HIDC_PROP_RESET
+ PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,118,222,97,14,0,0,HIDC_USE_DEFAULT
+END
+
+IDD_PROP_SOUND DIALOGEX 0, 0, 220, 240
+STYLE WS_CHILD | WS_CAPTION
+CAPTION "Sound"
+FONT 8, "Tahoma"
+BEGIN
+ ICON IDI_SOUNDTAB,IDC_STATIC,20,10,20,20
+ LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,SS_NOPREFIX
+
+ GROUPBOX "",IDC_STATIC,4,40,211,155
+
+ GROUPBOX "Soundmode",IDC_STATIC,60,50,100,28
+ COMBOBOX IDC_SOUND_MODE,66,60,88,50,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP,0,HIDC_VIDEO_MODE
+
+ CONTROL "Use samples",IDC_SAMPLES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,60,84,55,10,0,HIDC_SAMPLES
+
+ GROUPBOX "Sample rate",IDC_RATETEXT,60,96,100,28
+ COMBOBOX IDC_SAMPLERATE,66,106,88,60,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_SAMPLERATE
+
+ GROUPBOX "Volume attenuation",IDC_VOLUMETEXT,60,127,100,28
+ CONTROL "Slider1",IDC_VOLUME,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,66,139,68,10,0,HIDC_VOLUME
+ RTEXT "0dB",IDC_VOLUMEDISP,132,138,20,11,SS_CENTERIMAGE
+
+ GROUPBOX "Audio latency",IDC_AUDIO_LATENCY_TEXT,60,158,100,28
+ CONTROL "Slider1",IDC_AUDIO_LATENCY,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,66,170,68,10,0,HIDC_AUDIO_LATENCY
+ RTEXT "1/5",IDC_AUDIO_LATENCY_DISP,132,169,20,11,SS_CENTERIMAGE
+
+ PUSHBUTTON "Reset",IDC_PROP_RESET,4,222,97,14,0,0,HIDC_PROP_RESET
+ PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,118,222,97,14,0,0,HIDC_USE_DEFAULT
+END
+
+IDD_PROP_ADVANCED DIALOGEX 0, 0, 220, 255
+STYLE DS_FIXEDSYS | WS_CHILD | WS_CAPTION
+CAPTION "Advanced"
+FONT 8, "Tahoma"
+BEGIN
+ ICON IDI_DISPLAY,IDC_STATIC,20,10,20,20
+ LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,SS_NOPREFIX
+
+ CONTROL "Triple buffering",IDC_TRIPLE_BUFFER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,40,93,10,0,HIDC_TRIPLE_BUFFER
+ CONTROL "Sync to monitor refresh",IDC_SYNCREFRESH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,52,93,10,0,HIDC_SYNCREFRESH
+ CONTROL "Wait for vertical sync",IDC_WAITVSYNC,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,64,93,10,0,HIDC_WAITVSYNC
+ CONTROL "Refresh speed",IDC_REFRESHSPEED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,76,93,10,0,HIDC_REFRESHSPEED
+
+ GROUPBOX "Frame skipping",IDC_STATIC,4,104,103,42
+ CONTROL "Automatic",IDC_AUTOFRAMESKIP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,114,77,10,0,HIDC_AUTOFRAMESKIP
+ COMBOBOX IDC_FRAMESKIP,10,127,91,88,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_FRAMESKIP
+
+ GROUPBOX "Full screen gamma",IDC_FSGAMMATEXT,113,40,102,24
+ CONTROL "Slider1",IDC_FSGAMMA,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,119,50,71,10,0,HIDC_FSGAMMA
+ RTEXT "2.00",IDC_FSGAMMADISP,193,49,16,10,SS_CENTERIMAGE | NOT WS_GROUP
+
+ GROUPBOX "Full screen brightness",IDC_FSBRIGHTNESSTEXT,113,67,102,24
+ CONTROL "Slider1",IDC_FSBRIGHTNESS,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,119,77,71,10,0,HIDC_FSBRIGHTNESS
+ RTEXT "2.00",IDC_FSBRIGHTNESSDISP,193,76,16,10,SS_CENTERIMAGE | NOT WS_GROUP
+
+ GROUPBOX "Full screen contrast",IDC_FSCONTRASTTEXT,113,94,102,24
+ CONTROL "Slider1",IDC_FSCONTRAST,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,119,104,71,10,0,HIDC_FSCONTRAST
+ RTEXT "2.00",IDC_FSCONTRASTDISP,193,103,16,11,SS_CENTERIMAGE | NOT WS_GROUP
+
+ GROUPBOX "Seconds to run",IDC_SECONDSTORUNTEXT,113,122,102,24
+ CONTROL "",IDC_SECONDSTORUN,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,119,132,71,10,0,HIDC_SECONDSTORUN
+ RTEXT "60",IDC_SECONDSTORUNDISP,193,130,16,11,SS_CENTERIMAGE | NOT WS_GROUP
+
+ GROUPBOX "Emulation speed",IDC_SPEEDTEXT,4,155,211,24
+ CONTROL "Slider1",IDC_SPEED,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,12,165,180,10,0,HIDC_SPEED
+ RTEXT "1.00",IDC_SPEEDDISP,191,164,20,11,SS_CENTERIMAGE | NOT WS_GROUP
+
+ GROUPBOX "Effect",IDC_STATIC,4,182,211,50
+ EDITTEXT IDC_EFFECT,12,192,200,14,ES_AUTOHSCROLL | WS_DISABLED
+ PUSHBUTTON "Select Effect",IDC_SELECT_EFFECT,12,211,60,14,0,0,HIDC_SELECT_EFFECT
+ PUSHBUTTON "Reset Effect",IDC_RESET_EFFECT,152,211,60,14,0,0,HIDC_RESET_EFFECT
+
+ PUSHBUTTON "Reset",IDC_PROP_RESET,4,238,97,14,0,0,HIDC_PROP_RESET
+ PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,120,238,97,14,0,0,HIDC_USE_DEFAULT
+END
+
+IDD_PROP_DEBUG DIALOGEX 0, 0, 220, 255
+STYLE DS_FIXEDSYS | WS_CHILD | WS_CAPTION
+CAPTION "Debug"
+FONT 8, "Tahoma"
+BEGIN
+ ICON IDI_MANUFACTURER,IDC_STATIC,20,10,20,20
+ LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,SS_NOPREFIX
+
+ CONTROL "Output log to Windows Debugger",IDC_OSLOG,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,40,124,10,0,HIDC_OSLOG
+ CONTROL "Output log to Logfile",IDC_LOG,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,52,93,10,0,HIDC_LOG
+ CONTROL "Output diagnostic information",IDC_VERBOSE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,64,111,10,0,HIDC_VERBOSE
+ CONTROL "Update Main window during paused emulation",IDC_UPDATEINPAUSE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,76,171,10,0,HIDC_UPDATEINPAUSE
+ CONTROL "Activate Integrated Debugger",IDC_DEBUG,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,88,118,10,0,HIDC_DEBUG
+
+ GROUPBOX "Debugscript",IDC_STATIC,6,104,211,50
+ EDITTEXT IDC_DEBUGSCRIPT,14,114,200,14,ES_AUTOHSCROLL | WS_DISABLED
+ PUSHBUTTON "Select Debugscript",IDC_SELECT_DEBUGSCRIPT,14,133,67,14,0,0,HIDC_SELECT_DEBUGSCRIPT
+ PUSHBUTTON "Reset Debugscript",IDC_RESET_DEBUGSCRIPT,149,133,65,14,0,0,HIDC_RESET_DEBUGSCRIPT
+
+ PUSHBUTTON "Reset",IDC_PROP_RESET,4,238,97,14,0,0,HIDC_PROP_RESET
+ PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,120,238,97,14,0,0,HIDC_USE_DEFAULT
+END
+
+IDD_PROP_INPUT DIALOGEX 0, 0, 220, 240
+STYLE DS_FIXEDSYS | WS_CHILD | WS_CAPTION
+CAPTION "Controllers"
+FONT 8, "Tahoma"
+BEGIN
+ ICON IDI_JOYSTICK,IDC_STATIC,20,10,20,20
+ LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,
+ SS_NOPREFIX
+ CONTROL "Enable mouse input",IDC_USE_MOUSE,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,10,40,86,10,0,
+ HIDC_USE_MOUSE
+ CONTROL "Enable steadykey support",IDC_STEADYKEY,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,10,52,95,10,0,
+ HIDC_STEADYKEY
+ GROUPBOX "",IDC_STATIC,4,64,103,74
+ CONTROL "Enable joystick input",IDC_JOYSTICK,"Button",
+ BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,10,64,78,10,0,
+ HIDC_JOYSTICK
+ GROUPBOX "Joystick deadzone",IDC_JDZTEXT,10,76,91,28
+ CONTROL "IntensitySlider",IDC_JDZ,"msctls_trackbar32",TBS_BOTH |
+ TBS_NOTICKS | WS_TABSTOP,15,88,60,10,0,HIDC_JDZ
+ RTEXT "0.3",IDC_JDZDISP,76,87,16,11,SS_CENTERIMAGE | NOT
+ WS_GROUP
+ GROUPBOX "Default input layout",IDC_STATIC,113,40,102,28
+ COMBOBOX IDC_DEFAULT_INPUT,119,50,90,53,CBS_DROPDOWNLIST |
+ WS_VSCROLL | WS_TABSTOP,0,HIDC_DEFAULT_INPUT
+ GROUPBOX "",IDC_STATIC,113,71,102,66
+ CONTROL "Enable lightgun input",IDC_LIGHTGUN,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,119,71,80,10,0,
+ HIDC_LIGHTGUN
+ CONTROL "Offscreen shots reload",IDC_RELOAD,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,119,83,86,10,0,HIDC_RELOAD
+ CONTROL "Dual lightguns",IDC_DUAL_LIGHTGUN,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,119,96,86,10,0,
+ HIDC_DUAL_LIGHTGUN
+ CONTROL "Multiple keyboards",IDC_MULTIKEYBOARD,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,119,109,75,10,0,
+ HIDC_MULTIKEYBOARD
+ CONTROL "Multiple mice",IDC_MULTIMOUSE,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,119,122,56,10,0,HIDC_MULTIMOUSE
+ GROUPBOX "Joystick saturation",IDC_JSATTEXT,10,106,91,28
+ CONTROL "IntensitySlider",IDC_JSAT,"msctls_trackbar32",TBS_BOTH |
+ TBS_NOTICKS | WS_TABSTOP,16,118,60,10,0,HIDC_JSAT
+ RTEXT "0.85",IDC_JSATDISP,76,116,16,11,SS_CENTERIMAGE | NOT
+ WS_GROUP
+ PUSHBUTTON "Reset",IDC_PROP_RESET,4,222,97,14,0,0,HIDC_PROP_RESET
+ PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,118,222,97,14,
+ 0,0,HIDC_USE_DEFAULT
+ GROUPBOX "Joystickmap",IDC_STATIC,4,143,211,50
+ EDITTEXT IDC_JOYSTICKMAP,12,153,200,14,ES_AUTOHSCROLL |
+ WS_DISABLED
+ PUSHBUTTON "Select Joystickmap",IDC_SELECT_JOYSTICKMAP,12,172,67,14,
+ 0,0,HIDC_SELECT_JOYSTICKMAP
+ PUSHBUTTON "Reset Joystickmap",IDC_RESET_JOYSTICKMAP,147,172,65,14,
+ 0,0,HIDC_RESET_JOYSTICKMAP
+END
+
+IDD_PROP_MISC DIALOGEX 0, 0, 220, 240
+STYLE DS_FIXEDSYS | WS_CHILD | WS_CAPTION
+CAPTION "Miscellaneous"
+FONT 8, "Tahoma"
+BEGIN
+ ICON IDI_MAMEUI_ICON,IDC_STATIC,20,10,20,20
+ LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,
+ SS_NOPREFIX
+ CONTROL "Enable cheats",IDC_CHEAT,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,10,40,86,10,0,HIDC_CHEAT
+ CONTROL "Sleep when possible",IDC_SLEEP,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,10,52,86,10,0,HIDC_SLEEP
+ CONTROL "Skip game info",IDC_SKIP_GAME_INFO,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,10,64,96,10,0,
+ HIDC_SKIP_GAME_INFO
+ CONTROL "Save game state on exit",IDC_ENABLE_AUTOSAVE,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,10,76,96,10,0,
+ HIDC_ENABLE_AUTOSAVE
+ CONTROL "Coin lockout",IDC_COINLOCKOUT,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,10,100,96,10,0,HIDC_COINLOCKOUT
+ GROUPBOX "Thread Priority",IDC_HIGH_PRIORITY_TEXT,7,112,103,34
+ CONTROL "Slider1",IDC_HIGH_PRIORITY,"msctls_trackbar32",TBS_BOTH |
+ TBS_NOTICKS | WS_TABSTOP,13,122,75,10,0,
+ HIDC_HIGH_PRIORITY
+ LTEXT "idle",IDC_STATIC,17,132,12,8
+ RTEXT "-15",IDC_HIGH_PRIORITYTXT,87,122,14,10,SS_CENTERIMAGE
+ RTEXT "real-time",IDC_STATIC,57,134,28,8
+ GROUPBOX "Snapshot view",IDC_STATIC,7,148,103,28
+ COMBOBOX IDC_SNAPVIEW,13,158,90,60,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP,0,HIDC_SNAPVIEW
+ GROUPBOX "Artwork options",IDC_STATIC,113,40,102,85
+ CONTROL "Backdrops",IDC_BACKDROPS,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,119,50,86,10,0,HIDC_BACKDROPS
+ CONTROL "Bezels",IDC_BEZELS,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,119,62,86,10,0,HIDC_BEZELS
+ CONTROL "Overlays",IDC_OVERLAYS,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,119,74,84,10,0,HIDC_OVERLAYS
+ CONTROL "CPanels",IDC_CPANELS,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,119,86,84,10,0
+ CONTROL "Marquees",IDC_MARQUEES,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,119,98,84,10,0
+ CONTROL "Crop artwork",IDC_ARTWORK_CROP,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,119,110,53,10,0,HIDC_ARTWORK_CROP
+ GROUPBOX "BIOS",IDC_STATIC,113,128,102,28
+ COMBOBOX IDC_BIOS,119,138,90,60,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP,0,HIDC_BIOS
+ GROUPBOX "",IDC_STATIC,7,178,208,28
+ CONTROL "Autoselect snapshot size",IDC_SNAPSIZE,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,13,178,95,10,0,
+ HIDC_SNAPSIZE
+ LTEXT "Snapshotsize",IDC_SNAPSIZETEXT,11,189,44,11,
+ SS_CENTERIMAGE | NOT WS_GROUP
+ EDITTEXT IDC_SNAPSIZEWIDTH,122,187,32,12,ES_RIGHT |
+ ES_AUTOHSCROLL | ES_NUMBER,0,HIDC_SNAPSIZEWIDTH
+ EDITTEXT IDC_SNAPSIZEHEIGHT,172,187,32,12,ES_RIGHT |
+ ES_AUTOHSCROLL | ES_NUMBER,0,HIDC_SNAPSIZEHEIGHT
+ LTEXT "x",IDC_SNAPSIZEX,162,189,8,8
+ PUSHBUTTON "Reset",IDC_PROP_RESET,4,222,97,14,0,0,HIDC_PROP_RESET
+ PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,118,222,97,14,
+ 0,0,HIDC_USE_DEFAULT
+ CONTROL "Show Menu",IDC_SHOW_MENU,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,119,160,86,10,0
+END
+
+IDD_PROP_VECTOR DIALOGEX 0, 0, 220, 240
+STYLE WS_CHILD | WS_CAPTION
+CAPTION "Vector"
+FONT 8, "Tahoma"
+BEGIN
+ ICON IDI_MAMEUI_ICON,IDC_STATIC,20,10,20,20
+ LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,
+ SS_NOPREFIX
+// CONTROL "Draw antialiased vectors",IDC_ANTIALIAS,"Button",
+// BS_AUTOCHECKBOX | WS_TABSTOP,10,40,92,10,0,
+// HIDC_ANTIALIAS
+ GROUPBOX "Beam width",IDC_BEAMTEXT,60,53,100,28
+ CONTROL "BeamSlider",IDC_BEAM,"msctls_trackbar32",TBS_BOTH |
+ TBS_NOTICKS | WS_TABSTOP,66,65,64,10,0,HIDC_BEAM
+ RTEXT "16.00",IDC_BEAMDISP,132,64,20,11,SS_CENTERIMAGE
+ GROUPBOX "Flicker",IDC_FLICKERTEXT,60,84,100,28
+ CONTROL "FlickerSlider",IDC_FLICKER,"msctls_trackbar32",TBS_BOTH |
+ TBS_NOTICKS | WS_TABSTOP,66,96,64,10,0,HIDC_FLICKER
+ RTEXT "100.00",IDC_FLICKERDISP,128,95,24,11,SS_CENTERIMAGE |
+ NOT WS_GROUP
+ PUSHBUTTON "Reset",IDC_PROP_RESET,4,222,97,14,0,0,HIDC_PROP_RESET
+ PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,118,222,97,14,
+ 0,0,HIDC_USE_DEFAULT
+END
+
+IDD_MAIN DIALOGEX 0, 0, 364, 206
+STYLE DS_3DLOOK | DS_NOFAILCREATE | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | DS_SETFONT
+EXSTYLE WS_EX_CONTROLPARENT
+CAPTION "MAMEUI - overwritten at runtime"
+CLASS "MainClass"
+FONT 8, "Verdana"
+BEGIN
+ CONTROL "",IDC_DIVIDER,"Static",SS_ETCHEDHORZ,0,5,304,1
+ CONTROL "Tree1",IDC_TREE,"SysTreeView32",TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT | TVS_EDITLABELS |
+ TVS_SHOWSELALWAYS | TVS_FULLROWSELECT | WS_BORDER | WS_TABSTOP,5,28,48,172
+ CONTROL "List1",IDC_LIST,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_AUTOARRANGE |
+ LVS_SHAREIMAGELISTS | LVS_OWNERDRAWFIXED | WS_BORDER | WS_TABSTOP,65,28,42,172
+ GROUPBOX "",IDC_SPLITTER,55,28,8,172,BS_NOTIFY | NOT WS_VISIBLE
+ GROUPBOX "",IDC_SPLITTER2,109,28,8,172,BS_NOTIFY | NOT WS_VISIBLE
+ CONTROL "",IDC_SSFRAME,"Static",SS_ETCHEDFRAME | SS_NOTIFY,121,11,181,194
+ CONTROL "",IDC_SSTAB,"SysTabControl32",TCS_HOTTRACK,121,0,181,18
+ CONTROL "",IDC_SSPICTURE,"Static",SS_BITMAP | NOT WS_VISIBLE,141,18,141,127
+ EDITTEXT IDC_HISTORY,129,150,167,49,ES_MULTILINE | ES_READONLY | NOT WS_BORDER | WS_VSCROLL | NOT WS_TABSTOP,0,HIDC_HISTORY
+END
+
+IDD_FILTERS DIALOGEX 0, 0, 190, 196
+STYLE DS_MODALFRAME | DS_CENTER | DS_3DLOOK | WS_POPUP | WS_CAPTION |
+ WS_SYSMENU
+EXSTYLE WS_EX_CONTEXTHELP
+CAPTION "Game Filters"
+FONT 8, "Tahoma"
+BEGIN
+ GROUPBOX "Game filters",IDC_STATIC,6,4,178,99
+ CONTROL "&Vector Graphics",IDC_FILTER_VECTOR,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,14,16,70,10,0,
+ HIDC_FILTER_VECTOR
+ CONTROL "C&lones",IDC_FILTER_CLONES,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,14,30,41,10,0,HIDC_FILTER_CLONES
+ CONTROL "Non-Wor&king",IDC_FILTER_NONWORKING,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,14,44,61,10,0,
+ HIDC_FILTER_NONWORKING
+ CONTROL "&Horizontal",IDC_FILTER_HORIZONTAL,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,14,58,57,10,0,
+ HIDC_FILTER_HORIZONTAL
+ CONTROL "&Unavailable",IDC_FILTER_UNAVAILABLE,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,14,72,57,10,0,
+ HIDC_FILTER_UNAVAILABLE
+ CONTROL "Arcade",IDC_FILTER_ARCADE,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,14,86,57,10,0
+ CONTROL "&Raster Graphics",IDC_FILTER_RASTER,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,100,16,70,10,0,
+ HIDC_FILTER_RASTER
+ CONTROL "Ori&ginals",IDC_FILTER_ORIGINALS,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,100,30,47,10,0,
+ HIDC_FILTER_ORIGINALS
+ CONTROL "&Working",IDC_FILTER_WORKING,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,100,44,47,10,0,HIDC_FILTER_WORKING
+ CONTROL "&Vertical",IDC_FILTER_VERTICAL,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,100,58,47,10,0,HIDC_FILTER_VERTICAL
+ CONTROL "&Mechanical",IDC_FILTER_MECHANICAL,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,100,72,58,10,0,HIDC_FILTER_MECHANICAL
+ CONTROL "MESS",IDC_FILTER_MESS,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,100,86,58,10,0,HIDC_FILTER_MECHANICAL
+ LTEXT "(*) = inherited from parent folder",IDC_INHERITED,14,72,
+ 99,10
+ CTEXT "Game filters allow customizing the games that are displayed in each folder by hiding games that match the filters applied.",
+ IDC_STATIC,6,108,178,27
+ GROUPBOX "&Description filter",IDC_STATIC,6,136,178,33
+ EDITTEXT IDC_FILTER_EDIT,14,148,162,13,ES_AUTOHSCROLL,0,
+ HIDC_FILTER_EDIT
+ DEFPUSHBUTTON "&OK",IDOK,42,175,50,14
+ PUSHBUTTON "&Cancel",IDCANCEL,98,175,50,14
+END
+
+IDD_RESET DIALOGEX 0, 0, 190, 122
+STYLE DS_MODALFRAME | DS_CENTER | DS_3DLOOK | WS_POPUP | WS_CAPTION | WS_SYSMENU
+EXSTYLE WS_EX_CONTEXTHELP
+CAPTION "Reset Options"
+FONT 8, "Tahoma"
+BEGIN
+ GROUPBOX "Categories",IDC_STATIC,6,4,178,70
+ CONTROL "&User Interface (Fonts, Colors, Sizes)",IDC_RESET_UI,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,16,146,10,0,
+ HIDC_RESET_UI
+ CONTROL "&Default game options",IDC_RESET_DEFAULT,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,14,30,146,10,0,
+ HIDC_RESET_DEFAULT
+ CONTROL "&All games to use default options",IDC_RESET_GAMES,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,44,146,10,0,
+ HIDC_RESET_GAMES
+ CONTROL "&Folder 'filters'",IDC_RESET_FILTERS,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,14,58,146,10,0,
+ HIDC_RESET_FILTERS
+ CTEXT "Select the options to be restored to the default settings.",
+ IDC_STATIC,6,79,178,20
+ DEFPUSHBUTTON "&OK",IDOK,42,101,50,14
+ PUSHBUTTON "&Cancel",IDCANCEL,98,101,50,14
+END
+
+
+IDD_INTERFACE_OPTIONS DIALOGEX 0, 0, 378, 225
+STYLE DS_MODALFRAME | DS_CENTER | DS_3DLOOK | WS_POPUP | WS_CAPTION | WS_SYSMENU
+EXSTYLE WS_EX_CONTEXTHELP
+CAPTION "Interface Options"
+FONT 8, "Tahoma"
+BEGIN
+ GROUPBOX "Game Selection",IDC_STATIC,6,4,189,194
+ CONTROL "&Search for new games on start",IDC_START_GAME_CHECK,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,16,111,10,0,
+ HIDC_START_GAME_CHECK
+ CONTROL "Allow game selection by a &joystick (requires restart)",
+ IDC_JOY_GUI,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,30,
+ 174,10,0,HIDC_JOY_GUI
+ CONTROL "Allow game selection by custom &key sequences",
+ IDC_KEY_GUI,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,44,
+ 166,10
+ CONTROL "Hide &mouse cursor (requires restart)",IDC_HIDE_MOUSE,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,86,126,10,0,
+ HIDC_HIDE_MOUSE
+ CONTROL "Inheritable Filters",IDC_FILTER_INHERIT,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,14,100,68,10
+ CONTROL "No offset for clones missing parent in view",
+ IDC_NOOFFSET_CLONES,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,14,114,148,10
+ GROUPBOX "Show History on Tab",IDC_STATIC,14,128,173,28
+ COMBOBOX IDC_HISTORY_TAB,57,138,88,50,CBS_DROPDOWNLIST |
+ WS_VSCROLL | WS_TABSTOP
+ GROUPBOX "Snapshot Pattern",IDC_STATIC,202,4,170,28
+ GROUPBOX "Bookkeeping",IDC_STATIC,202,36,170,43
+ CONTROL "Reset all Playcounts",IDC_RESET_PLAYCOUNT,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,210,48,80,10
+ CONTROL "Reset all Play Times",IDC_RESET_PLAYTIME,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,210,62,79,10
+ GROUPBOX "Screenshot Area",IDC_STATIC,202,83,170,115
+ CONTROL "S&tretch screenshot larger than natural size",
+ IDC_STRETCH_SCREENSHOT_LARGER,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,210,95,148,10,0,
+ HIDC_STRETCH_SCREENSHOT_LARGER
+ GROUPBOX "Screenshot Cycletime in Seconds",IDC_STATIC,210,109,154,
+ 28
+ CONTROL "Slider1",IDC_CYCLETIMESEC,"msctls_trackbar32",TBS_BOTH |
+ TBS_NOTICKS | WS_TABSTOP,218,121,120,10,0,
+ HIDC_CYCLETIMESEC
+ RTEXT "60",IDC_CYCLETIMESECTXT,340,120,13,10,SS_CENTERIMAGE
+ GROUPBOX "Screenshot Bordersize",IDC_STATIC,210,141,154,28
+ CONTROL "Slider1",IDC_SCREENSHOT_BORDERSIZE,"msctls_trackbar32",
+ TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,218,153,120,10
+ RTEXT "100",IDC_SCREENSHOT_BORDERSIZETXT,340,152,13,10,
+ SS_CENTERIMAGE
+ PUSHBUTTON "Set Screenshot Border Color",IDC_SCREENSHOT_BORDERCOLOR,
+ 210,176,154,14
+ DEFPUSHBUTTON "&OK",IDOK,136,204,50,14
+ PUSHBUTTON "&Cancel",IDCANCEL,192,204,50,14
+ COMBOBOX IDC_SNAPNAME,209,14,155,60,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP,0,HIDC_SNAPNAME
+END
+
+IDD_CUSTOM_FILE DIALOG DISCARDABLE 0, 0, 190, 135
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Add Game To Custom Folder"
+FONT 8, "Tahoma"
+BEGIN
+ LTEXT "",IDC_CUSTOMFILE_GAME,6,6,175,10,SS_NOPREFIX |
+ SS_CENTERIMAGE
+ CONTROL "CustomTree",IDC_CUSTOM_TREE,"SysTreeView32",
+ TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT |
+ TVS_DISABLEDRAGDROP | TVS_SHOWSELALWAYS |
+ TVS_FULLROWSELECT | WS_BORDER | WS_TABSTOP,6,18,178,90
+ DEFPUSHBUTTON "OK",IDOK,42,114,50,14
+ PUSHBUTTON "Cancel",IDCANCEL,98,114,50,14
+END
+
+
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Accelerator
+//
+
+IDA_TAB_KEYS ACCELERATORS MOVEABLE PURE
+BEGIN
+ "1", ID_VIEW_TAB_SCREENSHOT, VIRTKEY, ALT, NOINVERT
+ "2", ID_VIEW_TAB_FLYER, VIRTKEY, ALT, NOINVERT
+ "3", ID_VIEW_TAB_CABINET, VIRTKEY, ALT, NOINVERT
+ "4", ID_VIEW_TAB_MARQUEE, VIRTKEY, ALT, NOINVERT
+ "5", ID_VIEW_TAB_TITLE, VIRTKEY, ALT, NOINVERT
+ "6", ID_VIEW_TAB_CONTROL_PANEL, VIRTKEY, ALT, NOINVERT
+ "7", ID_VIEW_TAB_PCB, VIRTKEY, ALT, NOINVERT
+ "8", ID_VIEW_TAB_HISTORY, VIRTKEY, ALT, NOINVERT
+ "A", ID_GAME_AUDIT, VIRTKEY, ALT, NOINVERT
+ "B", ID_VIEW_PAGETAB, VIRTKEY, ALT, NOINVERT
+ "D", ID_VIEW_FOLDERS, VIRTKEY, ALT, NOINVERT
+ "E", ID_TOOLBAR_EDIT, VIRTKEY, CONTROL, NOINVERT
+ "F", ID_CONTEXT_FILTERS, VIRTKEY, CONTROL, NOINVERT
+ "U", ID_FOLDER_AUDIT, VIRTKEY, ALT, NOINVERT
+ "P", ID_VIEW_PICTURE_AREA, VIRTKEY, ALT, NOINVERT
+ "R", ID_CONTEXT_SELECT_RANDOM, VIRTKEY, CONTROL, NOINVERT
+ "S", ID_VIEW_STATUS, VIRTKEY, ALT, NOINVERT
+ "T", ID_VIEW_TOOLBARS, VIRTKEY, ALT, NOINVERT
+ VK_F1, ID_HELP_CONTENTS, VIRTKEY, NOINVERT
+ VK_F11, ID_VIEW_FULLSCREEN, VIRTKEY, NOINVERT
+ VK_F5, ID_UPDATE_GAMELIST, VIRTKEY, NOINVERT
+ VK_NEXT, ID_UI_HISTORY_DOWN, VIRTKEY, CONTROL, NOINVERT
+ VK_PRIOR, ID_UI_HISTORY_UP, VIRTKEY, CONTROL, NOINVERT
+ VK_RETURN, ID_GAME_PROPERTIES, VIRTKEY, ALT, NOINVERT
+END
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// DESIGNINFO
+//
+
+#ifdef APSTUDIO_INVOKED
+GUIDELINES DESIGNINFO MOVEABLE PURE
+BEGIN
+ IDD_ABOUT, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 289
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 123
+ END
+
+ IDD_DIRECTX, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 229
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 62
+ END
+
+ IDD_AUDIT, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 280
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 187
+ HORZGUIDE, 19
+ END
+
+ IDD_DIRECTORIES, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 224
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 98
+ END
+
+ IDD_COLUMNS, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 301
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 143
+ END
+
+ IDD_PROP_CONTROLLER, DIALOG
+ BEGIN
+ RIGHTMARGIN, 210
+ BOTTOMMARGIN, 154
+ END
+
+ IDD_PROP_SCREEN, DIALOG
+ BEGIN
+ LEFTMARGIN, 4
+ VERTGUIDE, 7
+ VERTGUIDE, 123
+ BOTTOMMARGIN, 199
+ HORZGUIDE, 179
+ END
+
+ IDD_PROP_GAME, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 213
+ VERTGUIDE, 19
+ VERTGUIDE, 66
+ VERTGUIDE, 74
+ VERTGUIDE, 201
+ BOTTOMMARGIN, 268
+ END
+
+ IDD_PROP_AUDIT, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 213
+ VERTGUIDE, 12
+ VERTGUIDE, 208
+ BOTTOMMARGIN, 198
+ HORZGUIDE, 38
+ END
+
+ IDD_PROP_DISPLAY, DIALOG
+ BEGIN
+ LEFTMARGIN, 4
+ VERTGUIDE, 7
+ VERTGUIDE, 123
+ HORZGUIDE, 179
+ END
+
+ IDD_PROP_SOUND, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 213
+ VERTGUIDE, 50
+ BOTTOMMARGIN, 198
+ END
+
+ IDD_PROP_ADVANCED, DIALOG
+ BEGIN
+ LEFTMARGIN, 10
+ BOTTOMMARGIN, 240
+ END
+
+ IDD_PROP_INPUT, DIALOG
+ BEGIN
+ LEFTMARGIN, 4
+ RIGHTMARGIN, 215
+ VERTGUIDE, 50
+ VERTGUIDE, 170
+ END
+
+ IDD_PROP_MISC, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 213
+ VERTGUIDE, 25
+ VERTGUIDE, 40
+ VERTGUIDE, 104
+ VERTGUIDE, 114
+ VERTGUIDE, 204
+ BOTTOMMARGIN, 236
+ END
+
+ IDD_PROP_VECTOR, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 213
+ VERTGUIDE, 50
+ BOTTOMMARGIN, 198
+ END
+
+ IDD_FILTERS, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 178
+ END
+
+ IDD_RESET, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 175
+ VERTGUIDE, 18
+ VERTGUIDE, 164
+ TOPMARGIN, 7
+ END
+END
+#endif // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Bitmap
+//
+
+
+
+
+IDB_ABOUT BITMAP "res\\about.bmp"
+IDB_TOOLBAR BITMAP "res\\toolbar.bmp"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Cursor
+//
+
+IDC_CURSOR_HSPLIT CURSOR "res\\splith.cur"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// RT_MANIFEST
+//
+
+1 RT_MANIFEST "res\\mameui.manifest"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// String Table
+//
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ IDS_UI_FILE "Contains commands for working with the selected items"
+ IDS_UI_VIEW "Contains commands for manipulating the view"
+ IDS_UI_OPTIONS "Contains commands for user interface options"
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ IDS_UI_HELP "Contains commands for displaying help"
+ IDS_VIEW_TOOLBAR "Show or hide the toolbar"
+ IDS_VIEW_STATUSBAR "Show or hide the status bar"
+ IDS_VIEW_FOLDERLIST "Show or hide the folder list"
+ IDS_VIEW_SCREENSHOT "Show or hide the screen shot"
+ IDS_VIEW_PICTURETABS "Show or hide tabs in the picture area"
+ IDS_VIEW_SPACER1 "Spacer"
+ IDS_VIEW_FULLSCREEN "Toggle full screen mode"
+ IDS_VIEW_SPACER2 "Spacer"
+ IDS_VIEW_SHOWPICTURES "Contains commands to select tabs shown in the picture area"
+ IDS_VIEW_SPACER3 "Spacer"
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ IDS_VIEW_LARGEICONS "Display items by using large icons."
+ IDS_VIEW_SMALLICONS "Display items by using small icons."
+ IDS_VIEW_LIST "Displays items in a list."
+ IDS_VIEW_DETAILS "Displays detailed information about each item in the window."
+ IDS_VIEW_GROUPED "Displays items grouped by parent game"
+ IDS_VIEW_SPACER4 "Spacer"
+ IDS_VIEW_ARRANGE "Contains commands for sorting by various columns"
+ IDS_VIEW_LINEUPICONS "Arranges icons in a grid"
+ IDS_VIEW_SPACER5 "Spacer"
+ IDS_VIEW_REFRESH "Refresh game list"
+ IDS_VIEW_CONTEXTFILTERS "Allows filtering out games from a folder"
+ IDS_VIEW_CUSTOMIZEFIELDS
+ "Customize which columns are used in the game list"
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ ID_FILE_EXIT "Exit the application"
+ ID_FILE_PLAY "Play currently selected game"
+ ID_HELP_ABOUT "Displays program and copyright information"
+ ID_VIEW_LARGE_ICON "Display items by using large icons."
+ ID_VIEW_SMALL_ICON "Display items by using small icons."
+ ID_VIEW_LIST_MENU "Displays items in a list."
+ ID_VIEW_DETAIL "Displays detailed information about each item in the window."
+ ID_VIEW_GROUPED "Show items grouped by parent game"
+ ID_OPTIONS_FONT "Set game list and folder list font"
+ ID_OPTIONS_CLONE_COLOR "Set the clone font color"
+ ID_OPTIONS_DIR "Set directory configuration"
+ ID_OPTIONS_DEFAULTS "Set default game options"
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ ID_OPTIONS_RESET_DEFAULTS "Allow restoring options to 'sane' values."
+ ID_OPTIONS_INTERFACE "Customize interface options."
+ ID_FILE_AUDIT "Audit ROM and samples sets"
+ ID_FILE_PLAY_RECORD "Record a game for later playback"
+ ID_FILE_PLAY_BACK "Playback a recorded game"
+ ID_FILE_PLAY_RECORD_WAVE "Record the audio output of a game"
+ ID_FILE_PLAY_RECORD_MNG "Record the video output of a game"
+ ID_FILE_PLAY_RECORD_AVI "Record the complete output of a game"
+ ID_VIEW_PICTURE_AREA "Show or hide the picture area"
+ ID_HELP_CONTENTS "Display help contents"
+ ID_HELP_WHATS_NEWUI "New game changes"
+ ID_HELP_TROUBLE "Troubleshooting Documentation"
+ ID_HELP_RELEASE "MAME release notes"
+ ID_HELP_WHATS_NEW "What's new in MAME"
+ ID_HELP_CHEATS "How cheats work"
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ ID_CONTEXT_RESET_PLAYTIME "Reset time played for selected item"
+ ID_CONTEXT_RESET_PLAYCOUNT "Reset number of plays for selected item"
+ ID_FOLDER_PROPERTIES "Display folder properties"
+ ID_FOLDER_AUDIT "Audit items in this folder"
+ ID_FILE_LOADSTATE "Play a game starting with the given savestate"
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ ID_VIEW_TAB_CABINET "Select Cabinet tab"
+ ID_VIEW_TAB_MARQUEE "Select Marquee tab"
+ ID_VIEW_TAB_TITLE "Select Title tab"
+ ID_VIEW_TAB_CONTROL_PANEL "Select Control panel tab"
+ ID_VIEW_TAB_PCB "Select PCB tab"
+ ID_VIEW_TAB_HISTORY "Select History tab"
+ ID_OPTIONS_BG "Set the background image"
+ ID_TOGGLE_TAB_SCREENSHOT "Enable the screenshot tab"
+ ID_TOGGLE_TAB_FLYER "Enable the flyer tab"
+ ID_TOGGLE_TAB_CABINET "Enable the cabinet tab"
+ ID_TOGGLE_TAB_MARQUEE "Enable the marquee tab"
+ ID_TOGGLE_TAB_TITLE "Enable the title tab"
+ ID_TOGGLE_TAB_CONTROL_PANEL "Enable the control panel tab"
+ ID_TOGGLE_TAB_PCB "Enable the PCB tab"
+ ID_TOGGLE_TAB_HISTORY "Enable the history tab"
+ ID_VIEW_FULLSCREEN "Toggle Fullscreen mode"
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ ID_CUSTOMIZE_FIELDS "Customize which columns are used in the game list"
+ ID_GAME_PROPERTIES "Display the properties of the selected item"
+ ID_VIEW_PAGETAB "Show or hide the tabs in the picture area"
+ ID_VIEW_FOLDERS "Show or hide the folder list"
+ ID_VIEW_TOOLBARS "Show or hide the toolbar"
+ ID_VIEW_STATUS "Show or hide the status bar"
+ ID_CONTEXT_FILTERS "Allows filtering out games from a folder"
+ ID_CONTEXT_RENAME_CUSTOM "Rename this folder"
+ ID_CONTEXT_ADD_CUSTOM "Add selected item to custom folder"
+ ID_CONTEXT_REMOVE_CUSTOM "Remove selected item from this folder"
+ ID_GAME_AUDIT "Audit the selected item"
+ ID_CONTEXT_SELECT_RANDOM "Randomly select a game."
+ ID_VIEW_TAB_SCREENSHOT "Select Snapshot tab"
+ ID_VIEW_TAB_FLYER "Select Flyer tab"
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ ID_VIEW_BYGAME "Sort items by game description"
+ ID_VIEW_BYDIRECTORY "Sort items by name"
+ ID_VIEW_BYMANUFACTURER "Sort items by manufacturer"
+ ID_VIEW_BYYEAR "Sort items by year"
+ ID_VIEW_BYTYPE "Sort items by type"
+ ID_VIEW_BYTIMESPLAYED "Sort by number of plays"
+ ID_VIEW_LINEUPICONS "Arranges icons in a grid"
+ ID_UPDATE_GAMELIST "Refresh game list"
+ ID_SORT_ASCENDING "Sort column in ascending (A-Z) order"
+ ID_SORT_DESCENDING "Sort column in descending (Z-A) order"
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ ID_FOLDER_SOURCEPROPERTIES
+ "Display properties for all games in this source file"
+ ID_FOLDER_VECTORPROPERTIES "Display properties for all vector based games"
+ ID_OPTIONS_HISTORY "Set the History file to use"
+ ID_OPTIONS_MAMEINFO "Set the Mameinfo file to use"
+END
+
+#endif // English (USA) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+#include "mamevers.rc" // Version block
+
+
+/////////////////////////////////////////////////////////////////////////////
+#endif // not APSTUDIO_INVOKED
+
diff --git a/src/osd/winui/messui.rc b/src/osd/winui/messui.rc
new file mode 100644
index 00000000000..26e5c74b0a4
--- /dev/null
+++ b/src/osd/winui/messui.rc
@@ -0,0 +1,1517 @@
+// Microsoft Visual C++ generated resource script.
+//
+#include "newuires.h"
+#include "resource.h"
+
+// Generated Help ID header file
+#define APSTUDIO_HIDDEN_SYMBOLS
+#include "resource.hm"
+#undef APSTUDIO_HIDDEN_SYMBOLS
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#include "windows.h"
+#include "commctrl.h"
+
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// Englisch (USA) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
+#ifdef _WIN32
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+#pragma code_page(1252)
+#endif //_WIN32
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Menu
+//
+
+IDR_MAIN_MENU MENU DISCARDABLE
+BEGIN
+ POPUP "&File"
+ BEGIN
+ MENUITEM "&Exit", ID_FILE_EXIT
+ END
+ POPUP "&Help"
+ BEGIN
+ MENUITEM "&About MESS", ID_ABOUT
+ END
+END
+
+IDR_UI_MENU MENU DISCARDABLE
+BEGIN
+ POPUP "&File"
+ BEGIN
+ MENUITEM "&Play", ID_FILE_PLAY
+ MENUITEM SEPARATOR
+ MENUITEM "Play and Record &Input...", ID_FILE_PLAY_RECORD
+ MENUITEM "P&layback Input...", ID_FILE_PLAY_BACK
+ MENUITEM "Play and Record &Wave Output...", ID_FILE_PLAY_RECORD_WAVE
+ MENUITEM "Play and Record &MNG Output...", ID_FILE_PLAY_RECORD_MNG
+ MENUITEM "Play and Record &uncompressed AVI Output...", ID_FILE_PLAY_RECORD_AVI
+ MENUITEM SEPARATOR
+ MENUITEM "Loa&d Savestate...", ID_FILE_LOADSTATE, GRAYED
+ MENUITEM SEPARATOR
+ MENUITEM "Op&en Other Software...", ID_MESS_OPEN_SOFTWARE
+ MENUITEM SEPARATOR
+ MENUITEM "Pr&operties", ID_GAME_PROPERTIES
+ MENUITEM SEPARATOR
+ MENUITEM "Audi&t existing sets", ID_FILE_AUDIT_X
+ MENUITEM "&Audit all sets", ID_FILE_AUDIT
+ MENUITEM SEPARATOR
+ MENUITEM "&Refresh Roms\tF5", ID_UPDATE_GAMELIST
+ MENUITEM "Refresh Cache", ID_UPDATE_CACHE
+ MENUITEM SEPARATOR
+ MENUITEM "E&xit", ID_FILE_EXIT
+ END
+ POPUP "&View"
+ BEGIN
+ MENUITEM "&Toolbar\tAlt+T", ID_VIEW_TOOLBARS
+ MENUITEM "&Status bar\tAlt+S", ID_VIEW_STATUS
+ MENUITEM "Fold&er List\tAlt+D", ID_VIEW_FOLDERS
+ MENUITEM "&Picture Area\tAlt+P", ID_VIEW_PICTURE_AREA
+ MENUITEM "Software Area", ID_VIEW_SOFTWARE_AREA
+ MENUITEM "Screenshot Ta&b\tAlt+B", ID_VIEW_PAGETAB
+ MENUITEM SEPARATOR
+ MENUITEM "&Fullscreen\tF11", ID_VIEW_FULLSCREEN
+ MENUITEM SEPARATOR
+ POPUP "S&how Pictures"
+ BEGIN
+ MENUITEM "&Snapshot", ID_TOGGLE_TAB_SCREENSHOT
+ MENUITEM "&Flyer", ID_TOGGLE_TAB_FLYER
+ MENUITEM "&Cabinet", ID_TOGGLE_TAB_CABINET
+ MENUITEM "&Marquee", ID_TOGGLE_TAB_MARQUEE
+ MENUITEM "&Title", ID_TOGGLE_TAB_TITLE
+ MENUITEM "Control &Panel", ID_TOGGLE_TAB_CONTROL_PANEL
+ MENUITEM "PC&B", ID_TOGGLE_TAB_PCB
+ MENUITEM "&History", ID_TOGGLE_TAB_HISTORY
+ END
+ MENUITEM SEPARATOR
+ MENUITEM "L&arge Icons", ID_VIEW_LARGE_ICON
+ MENUITEM "S&mall Icons", ID_VIEW_SMALL_ICON
+ MENUITEM "&List", ID_VIEW_LIST_MENU
+ MENUITEM "&Details", ID_VIEW_DETAIL
+ MENUITEM "&Grouped", ID_VIEW_GROUPED
+ MENUITEM SEPARATOR
+ POPUP "Arrange &Icons"
+ BEGIN
+ MENUITEM "by &Name", ID_VIEW_BYGAME
+ MENUITEM "by D&irectory", ID_VIEW_BYDIRECTORY
+ MENUITEM "by &Manufacturer", ID_VIEW_BYMANUFACTURER
+ MENUITEM "by Times &Played", ID_VIEW_BYTIMESPLAYED
+ MENUITEM "by &Type", ID_VIEW_BYTYPE
+ MENUITEM "by &Date", ID_VIEW_BYYEAR
+ END
+ MENUITEM "Line &Up Icons", ID_VIEW_LINEUPICONS
+ MENUITEM SEPARATOR
+ MENUITEM "&Custom Filters...\tCtrl+F", ID_CONTEXT_FILTERS
+ MENUITEM "Cust&omise Fields...", ID_CUSTOMIZE_FIELDS
+ END
+ POPUP "&Options"
+ BEGIN
+ MENUITEM "System List &Font...", ID_OPTIONS_FONT
+ MENUITEM "System List &Clone Color...", ID_OPTIONS_CLONE_COLOR
+ MENUITEM "&Directories...", ID_OPTIONS_DIR
+ MENUITEM "Default System &Options...", ID_OPTIONS_DEFAULTS
+ MENUITEM "&Reset to Default...", ID_OPTIONS_RESET_DEFAULTS
+ MENUITEM "&Interface Options...", ID_OPTIONS_INTERFACE
+ MENUITEM "&Background Image...", ID_OPTIONS_BG
+ END
+ POPUP "&Help"
+ BEGIN
+// MENUITEM "&Mess Release Notes", ID_HELP_RELEASE
+ MENUITEM "What's New in MAME", ID_HELP_WHATS_NEW
+ MENUITEM "&Contents\tF1", ID_HELP_CONTENTS
+// MENUITEM "&Troubleshooting", ID_HELP_TROUBLE
+ MENUITEM "&About", ID_HELP_ABOUT
+ END
+END
+
+IDR_CONTEXT_MENU MENU
+BEGIN
+ POPUP "Context Menu"
+ BEGIN
+ MENUITEM "&Play", ID_FILE_PLAY
+ MENUITEM SEPARATOR
+ MENUITEM "Play and Record &Input...", ID_FILE_PLAY_RECORD
+ MENUITEM "Play ProgettoSnaps MP4 movie",ID_VIDEO_SNAP
+ MENUITEM "Read the PDF Manual", ID_MANUAL
+ MENUITEM SEPARATOR
+ MENUITEM "&Add to Custom Folder...", ID_CONTEXT_ADD_CUSTOM
+ MENUITEM "R&emove From This Folder", ID_CONTEXT_REMOVE_CUSTOM
+ MENUITEM "&Custom Filters...", ID_CONTEXT_FILTERS
+ MENUITEM SEPARATOR
+ MENUITEM "Rese&t Play Stats", ID_CONTEXT_RESET_PLAYSTATS
+ MENUITEM SEPARATOR
+ MENUITEM "A&udit", ID_GAME_AUDIT
+ MENUITEM SEPARATOR
+ MENUITEM "Pr&operties", ID_GAME_PROPERTIES
+ MENUITEM "Properties for driver", ID_FOLDER_SOURCEPROPERTIES
+ END
+END
+
+IDR_CONTEXT_HEADER MENU
+BEGIN
+ POPUP "Header Context Menu"
+ BEGIN
+ MENUITEM "Sort &Ascending", ID_SORT_ASCENDING
+ MENUITEM "Sort &Descending", ID_SORT_DESCENDING
+ MENUITEM SEPARATOR
+ MENUITEM "Cust&omise Fields...", ID_CUSTOMIZE_FIELDS
+ END
+END
+
+IDR_CONTEXT_TREE MENU
+BEGIN
+ POPUP "Context Menu Tree"
+ BEGIN
+ MENUITEM "&Rename", ID_CONTEXT_RENAME_CUSTOM
+ MENUITEM "&Custom Filters...", ID_CONTEXT_FILTERS
+ MENUITEM SEPARATOR
+ POPUP "&Show Folders"
+ BEGIN
+ MENUITEM "overridden by code", ID_CONTEXT_SHOW_FOLDER_START
+
+ END
+ MENUITEM SEPARATOR
+ MENUITEM "&Audit", ID_FOLDER_AUDIT
+ MENUITEM SEPARATOR
+ MENUITEM "&Properties", ID_FOLDER_PROPERTIES
+ END
+END
+
+IDR_CONTEXT_SCREENSHOT MENU
+BEGIN
+ POPUP "Context Screen Shot"
+ BEGIN
+ MENUITEM "Show Tab &Control", ID_VIEW_PAGETAB
+ MENUITEM SEPARATOR
+ POPUP "S&how Pictures"
+ BEGIN
+ MENUITEM "&Snapshot", ID_TOGGLE_TAB_SCREENSHOT
+ MENUITEM "&Flyer", ID_TOGGLE_TAB_FLYER
+ MENUITEM "&Cabinet", ID_TOGGLE_TAB_CABINET
+ MENUITEM "&Marquee", ID_TOGGLE_TAB_MARQUEE
+ MENUITEM "&Title", ID_TOGGLE_TAB_TITLE
+ MENUITEM "Control &Panel", ID_TOGGLE_TAB_CONTROL_PANEL
+
+ MENUITEM "PC&B", ID_TOGGLE_TAB_PCB
+ MENUITEM "&History", ID_TOGGLE_TAB_HISTORY
+ END
+ MENUITEM SEPARATOR
+ MENUITEM "&Snapshot", ID_VIEW_TAB_SCREENSHOT
+ MENUITEM "&Flyer", ID_VIEW_TAB_FLYER
+ MENUITEM "&Cabinet", ID_VIEW_TAB_CABINET
+ MENUITEM "&Marquee", ID_VIEW_TAB_MARQUEE
+ MENUITEM "&Title", ID_VIEW_TAB_TITLE
+ MENUITEM "Control &Panel", ID_VIEW_TAB_CONTROL_PANEL
+ MENUITEM "PC&B", ID_VIEW_TAB_PCB
+ MENUITEM "&History", ID_VIEW_TAB_HISTORY
+ END
+END
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Menu
+//
+
+IDR_RUNTIME_MENU MENU
+BEGIN
+ POPUP "&File"
+ BEGIN
+ MENUITEM "&Load State...", ID_FILE_LOADSTATE_NEWUI, GRAYED
+ MENUITEM "&Save State", ID_FILE_SAVESTATE, GRAYED
+ MENUITEM "S&ave State As...", ID_FILE_SAVESTATE_AS, GRAYED
+ MENUITEM SEPARATOR
+ MENUITEM "Save Sc&reenshot", ID_FILE_SAVESCREENSHOT
+ MENUITEM SEPARATOR
+ MENUITEM "&Hide Menubar", ID_FILE_TOGGLEMENUBAR
+ MENUITEM "&Full Screen\tAlt+Enter", ID_FILE_FULLSCREEN
+ MENUITEM "Partial Keyboard Emulation", ID_FILE_UIACTIVE
+ MENUITEM "Show Tab Menu", ID_FILE_OLDUI
+ MENUITEM SEPARATOR
+ MENUITEM "&Exit", ID_FILE_EXIT_NEWUI
+ END
+ POPUP "&Edit"
+ BEGIN
+ MENUITEM "Paste", ID_EDIT_PASTE
+ END
+ POPUP "&Options"
+ BEGIN
+ MENUITEM "&Pause", ID_OPTIONS_PAUSE, GRAYED
+ MENUITEM "Soft &Reset", ID_OPTIONS_SOFTRESET
+ MENUITEM "Ha&rd Reset", ID_OPTIONS_HARDRESET
+ MENUITEM SEPARATOR
+ POPUP "&Video"
+ BEGIN
+ MENUITEM SEPARATOR
+ MENUITEM "Rotate 0 degrees", ID_VIDEO_ROTATE_0
+ MENUITEM "Rotate 90 degrees", ID_VIDEO_ROTATE_90
+ MENUITEM "Rotate 180 degrees", ID_VIDEO_ROTATE_180
+ MENUITEM "Rotate 270 degrees", ID_VIDEO_ROTATE_270
+ END
+ POPUP "&Keyboard"
+ BEGIN
+ MENUITEM "Emulated", ID_KEYBOARD_EMULATED
+ MENUITEM "Natural", ID_KEYBOARD_NATURAL
+ MENUITEM SEPARATOR
+ MENUITEM "Customise Emulated Keyboard...", ID_KEYBOARD_CUSTOMIZE
+ END
+ MENUITEM "&Joysticks", ID_OPTIONS_JOYSTICKS, GRAYED
+ MENUITEM "&Miscellaneous Inputs...", ID_OPTIONS_MISCINPUT
+ MENUITEM "&Analog Controls...", ID_OPTIONS_ANALOGCONTROLS
+ MENUITEM "&DIP Switches...", ID_OPTIONS_DIPSWITCHES
+ MENUITEM "&Configuration...", ID_OPTIONS_CONFIGURATION
+ MENUITEM SEPARATOR
+ POPUP "&Frameskip"
+ BEGIN
+ MENUITEM "Auto", ID_FRAMESKIP_AUTO
+ END
+ POPUP "Maximum &Speed"
+ BEGIN
+ MENUITEM "50%", ID_THROTTLE_50
+ MENUITEM "100%", ID_THROTTLE_100
+ MENUITEM "200%", ID_THROTTLE_200
+ MENUITEM "500%", ID_THROTTLE_500
+ MENUITEM "1000%", ID_THROTTLE_1000
+ MENUITEM "Unlimited", ID_THROTTLE_UNTHROTTLED
+ END
+ MENUITEM "Show F&PS", ID_OPTIONS_TOGGLEFPS
+ END
+ POPUP "&Media"
+ BEGIN
+ MENUITEM SEPARATOR
+ END
+ POPUP "&Slots"
+ BEGIN
+ MENUITEM SEPARATOR
+ END
+ POPUP "&Help"
+ BEGIN
+ MENUITEM "About This System...", ID_HELP_ABOUTSYSTEM
+ MENUITEM "&About MESS...", ID_HELP_ABOUT_NEWUI
+ END
+END
+
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE MOVEABLE PURE
+BEGIN
+ "resource.h\\r\n"
+ "newuires.h\0"
+END
+
+2 TEXTINCLUDE MOVEABLE PURE
+BEGIN
+ "#define NOWINRES\r\n"
+ "#include ""windows.h""\r\n"
+ "#include ""commctrl.h""\r\n"
+ "\0"
+END
+
+3 TEXTINCLUDE MOVEABLE PURE
+BEGIN
+ "#include ""messvers.rc"" // Version block\r\n"
+ "\r\n"
+ "\0"
+END
+
+#endif // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Icon
+//
+
+// Icon with lowest ID value placed first to ensure application icon
+// remains consistent on all systems.
+IDI_MAMEUI_ICON ICON "res\\messui.ico"
+IDI_WIN_ROMS ICON "res\\win_roms.ico"
+IDI_WIN_NOROMS ICON "res\\win_noro.ico"
+IDI_WIN_UNKNOWN ICON "res\\win_unkn.ico"
+IDI_WIN_CLONE ICON "res\\win_clone.ico"
+IDI_WIN_REDX ICON "res\\win_redx.ico"
+IDI_WIN_IMPERFECT ICON "res\\win_imp.ico"
+IDI_FOLDER_AVAILABLE ICON "res\\foldavail.ico"
+IDI_FOLDER ICON "res\\folder.ico"
+IDI_FOLDER_MANUFACTURER ICON "res\\foldmanu.ico"
+IDI_FOLDER_OPEN ICON "res\\foldopen.ico"
+IDI_FOLDER_UNAVAILABLE ICON "res\\foldunav.ico"
+IDI_FOLDER_HORIZONTAL ICON "res\\horz.ico"
+IDI_FOLDER_VERTICAL ICON "res\\vert.ico"
+IDI_MANUFACTURER ICON "res\\manufact.ico"
+IDI_FOLDER_YEAR ICON "res\\foldyear.ico"
+IDI_FOLDER_SOURCE ICON "res\\foldsrc.ico"
+IDI_WORKING ICON "res\\working.ico"
+IDI_NONWORKING ICON "res\\nonwork.ico"
+IDI_YEAR ICON "res\\year.ico"
+IDI_KEYBOARD ICON "res\\keyboard.ico"
+IDI_JOYSTICK ICON "res\\joystick.ico"
+IDI_CPU ICON "res\\cpu.ico"
+IDI_SOUND ICON "res\\samples.ico"
+IDI_SOUNDTAB ICON "res\\sound.ico"
+IDI_SOURCE ICON "res\\source.ico"
+IDI_HARDDISK ICON "res\\harddisk.ico"
+IDI_DISPLAY ICON "res\\display.ico"
+IDI_CHECKMARK ICON "res\\checkmark.ico"
+IDI_HEADER_UP ICON "res\\header_up.ico"
+IDI_HEADER_DOWN ICON "res\\header_down.ico"
+
+IDI_WIN_NOROMSNEEDED ICON "res\\win_nrnd.ico"
+IDI_WIN_MISSINGOPTROM ICON "res\\win_noor.ico"
+IDI_WIN_FLOP ICON "res\\win_flop.ico"
+IDI_WIN_CASS ICON "res\\win_cass.ico"
+IDI_WIN_SERL ICON "res\\win_serl.ico"
+IDI_WIN_SNAP ICON "res\\win_snap.ico"
+IDI_WIN_PRIN ICON "res\\win_prin.ico"
+IDI_WIN_HARD ICON "res\\win_hard.ico"
+IDI_WIN_CYLN ICON "res\\win_cyln.ico"
+IDI_WIN_PTAP ICON "res\\win_ptap.ico"
+IDI_WIN_PCRD ICON "res\\win_pcrd.ico"
+IDI_WIN_MIDI ICON "res\\win_midi.ico"
+IDI_ICON_CART ICON DISCARDABLE "res\\cpu.ico"
+IDI_ICON_HARD ICON DISCARDABLE "res\\harddisk.ico"
+IDI_ICON_CASS ICON DISCARDABLE "res\\win_cass.ico"
+IDI_ICON_FLOP ICON DISCARDABLE "res\\win_flop.ico"
+IDI_ICON_PRIN ICON DISCARDABLE "res\\win_prin.ico"
+IDI_ICON_SERL ICON DISCARDABLE "res\\win_serl.ico"
+IDI_ICON_SNAP ICON DISCARDABLE "res\\win_snap.ico"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Dialog
+//
+
+IDD_ABOUT DIALOG DISCARDABLE 0, 0, 296, 129
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "About MESS"
+FONT 8, "Tahoma"
+BEGIN
+ DEFPUSHBUTTON "&OK",IDOK,200,109,50,14,WS_GROUP
+ CTEXT "Multi Emulator Super System",IDC_STATIC,147,7,142,
+ 11,NOT WS_GROUP
+ CTEXT "Version 0",IDC_VERSION,147,18,142,11,NOT WS_GROUP
+ CTEXT "Copyright (C) 1997-2017 The MAME Team",IDC_STATIC,147,
+ 29,142,10,NOT WS_GROUP
+ CTEXT "MESSUI based on MAMEUI version by",IDC_STATIC,147,51,142,10,NOT
+ WS_GROUP
+ CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,147,44,142,1
+ CTEXT "Christopher Kirmse and the MAMEUI team",IDC_STATIC,147,
+ 62,142,9,NOT WS_GROUP
+ CTEXT "Additional MAMEUI code by",IDC_STATIC,147,74,142,9
+ CTEXT "Mike Haaland, Andrew Kirmse, Jeff Miller",IDC_STATIC,
+ 147,85,142,9
+ CTEXT "John Hardy IV and Michael Soderstrom",IDC_STATIC,147,96,
+ 142,9
+ CONTROL "",IDC_ABOUT,"Static",SS_BITMAP | SS_SUNKEN,7,7,16,14
+END
+
+IDD_DIRECTX DIALOG DISCARDABLE 0, 0, 236, 69
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "MESS"
+FONT 8, "Tahoma"
+BEGIN
+ DEFPUSHBUTTON "Go to Microsoft's DirectX Web Page",IDB_WEB_PAGE,48,52,
+ 140,14
+ EDITTEXT IDC_DIRECTX_HELP,7,0,222,48,ES_MULTILINE |
+ ES_AUTOHSCROLL | ES_READONLY
+END
+
+IDD_AUDIT DIALOG DISCARDABLE 0, 0, 283, 188
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "File Audit"
+FONT 8, "Tahoma"
+BEGIN
+// PUSHBUTTON "&Pause",IDPAUSE,98,168,40,14
+// PUSHBUTTON "&Cancel",IDCANCEL,144,168,40,14
+// GROUPBOX "ROMs",IDC_STATIC,6,4,271,65
+// CONTROL "Progress1",IDC_ROMS_PROGRESS,"msctls_progress32",
+// PBS_SMOOTH | WS_BORDER,14,16,255,8
+// LTEXT "Correct:",IDC_STATIC,111,28,32,8
+// LTEXT "Incorrect:",IDC_STATIC,111,42,32,8
+// LTEXT "Total:",IDC_STATIC,111,56,32,8
+// LTEXT "0",IDC_ROMS_CORRECT,147,28,20,8
+// LTEXT "0",IDC_ROMS_INCORRECT,147,42,20,8
+// LTEXT "0",IDC_ROMS_TOTAL,147,56,20,8
+// GROUPBOX "Details",IDC_STATIC,6,72,271,90
+// EDITTEXT IDC_AUDIT_DETAILS,12,82,259,74,ES_MULTILINE |
+// ES_AUTOVSCROLL | ES_READONLY | WS_VSCROLL | WS_HSCROLL |
+// NOT WS_TABSTOP
+ GROUPBOX "ROMs",IDC_STATIC,6,4,132,65
+ LTEXT "Correct:",IDC_STATIC,51,28,32,8
+ CONTROL "Progress1",IDC_ROMS_PROGRESS,"msctls_progress32",PBS_SMOOTH | WS_BORDER,14,16,116,8
+ LTEXT "Incorrect:",IDC_STATIC,51,42,32,8
+ LTEXT "Total:",IDC_STATIC,51,56,32,8
+ LTEXT "0",IDC_ROMS_CORRECT,87,28,20,8
+ LTEXT "0",IDC_ROMS_INCORRECT,87,42,20,8
+ LTEXT "0",IDC_ROMS_TOTAL,87,56,20,8
+ GROUPBOX "Samples",IDC_STATIC,145,4,132,65
+ CONTROL "Progress1",IDC_SAMPLES_PROGRESS,"msctls_progress32",PBS_SMOOTH | WS_BORDER,153,16,116,8
+ LTEXT "Correct:",IDC_STATIC,191,28,33,8
+ LTEXT "Incorrect:",IDC_STATIC,191,42,33,8
+ LTEXT "Total:",IDC_STATIC,191,56,33,8
+ LTEXT "0",IDC_SAMPLES_CORRECT,227,28,20,8
+ LTEXT "0",IDC_SAMPLES_INCORRECT,227,42,20,8
+ LTEXT "0",IDC_SAMPLES_TOTAL,227,56,20,8
+ GROUPBOX "Details",IDC_STATIC,6,72,271,90
+ CONTROL "",IDC_AUDIT_DETAILS,"richedit",ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_BORDER | WS_VSCROLL | NOT WS_TABSTOP,12,82,260,74
+ PUSHBUTTON "&Pause",IDPAUSE,98,168,40,14
+ PUSHBUTTON "&Cancel",IDCANCEL,144,168,40,14
+END
+
+IDD_DIRECTORIES DIALOG DISCARDABLE 0, 0, 230, 107
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Directories"
+FONT 8, "Tahoma"
+BEGIN
+ LTEXT "Show directories for:",IDC_STATIC,6,6,67,10
+ COMBOBOX IDC_DIR_COMBO,6,18,160,79,CBS_DROPDOWNLIST | CBS_SORT |
+ WS_VSCROLL | WS_TABSTOP
+ LTEXT "Directories:",IDC_STATIC,6,38,38,10
+ CONTROL "List1",IDC_DIR_LIST,"SysListView32",LVS_REPORT |
+ LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_EDITLABELS |
+ LVS_ALIGNLEFT | LVS_NOCOLUMNHEADER | WS_BORDER |
+ WS_TABSTOP,6,50,160,51
+ DEFPUSHBUTTON "OK",IDOK,173,8,50,14
+ PUSHBUTTON "Cancel",IDCANCEL,173,26,50,14
+ PUSHBUTTON "Browse...",IDC_DIR_BROWSE,173,50,50,14
+ PUSHBUTTON "Insert",IDC_DIR_INSERT,173,68,50,14
+ PUSHBUTTON "Delete",IDC_DIR_DELETE,173,87,50,14
+END
+
+IDD_COLUMNS DIALOG DISCARDABLE 0, 0, 302, 145
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Customise Fields"
+FONT 8, "Tahoma"
+BEGIN
+ LTEXT "Available fields:",IDC_STATIC,6,6,80,10,SS_CENTERIMAGE
+ CONTROL "List1",IDC_LISTAVAILABLECOLUMNS,"SysListView32",
+ LVS_LIST | LVS_SINGLESEL | LVS_NOCOLUMNHEADER |
+ LVS_NOSORTHEADER | WS_BORDER | WS_HSCROLL | WS_TABSTOP,6,
+ 18,90,100
+ PUSHBUTTON "Add ->",IDC_BUTTONADD,102,18,46,14,WS_DISABLED
+ PUSHBUTTON "<- Remove",IDC_BUTTONREMOVE,102,36,46,14,WS_DISABLED
+ LTEXT "Show these fields in this order:",IDC_STATIC,154,6,96,
+ 10,SS_CENTERIMAGE
+ CONTROL "List1",IDC_LISTSHOWCOLUMNS,"SysListView32",LVS_LIST |
+ LVS_SINGLESEL | LVS_NOCOLUMNHEADER | LVS_NOSORTHEADER |
+ WS_BORDER | WS_HSCROLL | WS_TABSTOP,154,18,90,100
+ PUSHBUTTON "Move Up",IDC_BUTTONMOVEUP,250,18,46,14,WS_DISABLED
+ PUSHBUTTON "Move Down",IDC_BUTTONMOVEDOWN,250,36,46,14,WS_DISABLED
+ DEFPUSHBUTTON "OK",IDOK,105,124,44,14
+ PUSHBUTTON "Cancel",IDCANCEL,155,124,44,14
+END
+
+IDD_PROP_CONTROLLER DIALOGEX 0, 0, 220, 240
+STYLE DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
+CAPTION "Controller Mapping"
+FONT 8, "Tahoma", 0, 0, 0x1
+BEGIN
+ ICON IDI_JOYSTICK,IDC_STATIC,20,10,20,20
+ LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,
+ SS_NOPREFIX
+ GROUPBOX "Paddle device",IDC_STATIC,4,40,102,28
+ COMBOBOX IDC_PADDLE,10,50,91,62,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP,0,HIDC_PADDLE
+ GROUPBOX "ADStick device",IDC_STATIC,4,71,102,28
+ COMBOBOX IDC_ADSTICK,10,80,91,62,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP,0,HIDC_ADSTICK
+ GROUPBOX "Pedal device",IDC_STATIC,4,102,102,28
+ COMBOBOX IDC_PEDAL,10,112,91,62,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP,0,HIDC_PEDAL
+ GROUPBOX "Mouse device",IDC_STATIC,4,133,102,28
+ COMBOBOX IDC_MOUSE,10,142,90,62,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP,0,HIDC_MOUSE
+ GROUPBOX "Dial device",IDC_STATIC,113,40,102,28
+ COMBOBOX IDC_DIAL,119,50,90,62,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP,0,HIDC_DIAL
+ GROUPBOX "Trackball device",IDC_STATIC,113,71,102,28
+ COMBOBOX IDC_TRACKBALL,119,80,90,62,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP,0,HIDC_TRACKBALL
+ GROUPBOX "Lightgun device",IDC_STATIC,113,102,102,28
+ COMBOBOX IDC_LIGHTGUNDEVICE,119,112,90,62,CBS_DROPDOWNLIST |
+ WS_VSCROLL | WS_TABSTOP,0,HIDC_LIGHTGUNDEVICE
+ GROUPBOX "Positional device",IDC_STATIC,113,133,102,28
+ COMBOBOX IDC_POSITIONAL,119,142,90,62,CBS_DROPDOWNLIST |
+ WS_VSCROLL | WS_TABSTOP,0,HIDC_POSITIONAL
+ PUSHBUTTON "Reset",IDC_PROP_RESET,4,222,97,14,0,0,HIDC_PROP_RESET
+ PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,118,222,97,14,
+ 0,0,HIDC_USE_DEFAULT
+END
+
+IDD_PROP_SCREEN DIALOGEX 0, 0, 220, 240
+STYLE WS_CHILD | WS_CAPTION
+CAPTION "Screen"
+FONT 8, "Tahoma", 0, 0, 0x1
+BEGIN
+ ICON IDI_DISPLAY,IDC_STATIC,20,10,21,20
+ LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,SS_NOPREFIX
+
+ GROUPBOX "Number of screens",IDC_STATIC,4,40,103,24
+ CONTROL "GammaSlider",IDC_NUMSCREENS,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,10,50,75,10,0,HIDC_NUMSCREENS
+ RTEXT "1",IDC_NUMSCREENSDISP,84,49,14,10,SS_CENTERIMAGE | NOT WS_GROUP
+
+ GROUPBOX "Screen",IDC_STATIC,4,66,103,29
+ COMBOBOX IDC_SCREEN,10,76,91,64,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_SCREEN
+
+ GROUPBOX "",IDC_STATIC,4,97,103,28
+ CONTROL "Autoselect aspect",IDC_ASPECT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,97,73,10,0,HIDC_ASPECT
+ LTEXT "Aspect ratio",IDC_ASPECTRATIOTEXT,17,108,40,11,SS_CENTERIMAGE | NOT WS_GROUP
+ EDITTEXT IDC_ASPECTRATION,60,108,14,12,ES_RIGHT | ES_AUTOHSCROLL | ES_NUMBER,0,HIDC_ASPECTRATION
+ LTEXT ":",IDC_STATIC,76,108,8,10,SS_CENTERIMAGE | NOT WS_GROUP
+ EDITTEXT IDC_ASPECTRATIOD,80,108,14,12,ES_RIGHT | ES_AUTOHSCROLL | ES_NUMBER,0,HIDC_ASPECTRATIOD
+
+ GROUPBOX "View",IDC_STATIC,4,128,103,28
+ COMBOBOX IDC_VIEW,10,137,91,64,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_VIEW
+
+ GROUPBOX "Screen Number",IDC_SCREENSELECTTEXT,113,40,102,28
+ COMBOBOX IDC_SCREENSELECT,119,50,90,64,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_SCREENSELECT
+
+ GROUPBOX "Resolution",IDC_STATIC,113,71,102,76,WS_GROUP
+ GROUPBOX "Size",IDC_STATIC,119,81,90,28,WS_GROUP
+ COMBOBOX IDC_SIZES,126,91,77,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_SIZES
+
+ GROUPBOX "Refresh",IDC_REFRESHTEXT,119,112,90,28,WS_GROUP
+ COMBOBOX IDC_REFRESH,126,121,77,76,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_REFRESH
+ CONTROL "Switch resolutions to fit",IDC_SWITCHRES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,119,151,93,10,0,HIDC_SWITCHRES
+
+ PUSHBUTTON "Reset",IDC_PROP_RESET,4,222,97,14,0,0,HIDC_PROP_RESET
+ PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,118,222,97,14,0,0,HIDC_USE_DEFAULT
+END
+
+IDD_PROP_GAME DIALOG DISCARDABLE 0, 0, 220, 276
+STYLE WS_CHILD | WS_CAPTION
+CAPTION "General"
+FONT 8, "Tahoma"
+BEGIN
+ ICON IDI_MAMEUI_ICON,IDC_GAME_ICON,20,10,21,20
+ LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,SS_NOPREFIX
+ CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,20,38,178,1
+ LTEXT "Manufactured:",IDC_STATIC,18,45,47,8
+ LTEXT "Static",IDC_PROP_MANUFACTURED,75,45,139,9,SS_NOPREFIX
+ LTEXT "Status:",IDC_STATIC,18,55,47,8
+ LTEXT "Static",IDC_PROP_STATUS,75,55,139,30
+ CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,18,85,178,1
+ LTEXT "CPU:",IDC_STATIC,18,90,47,8
+ LTEXT "Static\nStatic\nStatic\nStatic\nStatic",IDC_PROP_CPU,75,90,139,40
+ CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,18,130,178,1
+ LTEXT "Sound:",IDC_STATIC,18,135,47,8
+ LTEXT "Static\nStatic\nStatic\nStatic\nStatic",IDC_PROP_SOUND,75,135,139,45
+ CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,18,181,178,1
+ LTEXT "Screen:",IDC_STATIC,18,186,47,8
+ LTEXT "Static\nStatic\nStatic",IDC_PROP_SCREEN,75,186,139,27
+ CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,19,218,177,1
+ LTEXT "Source:",IDC_STATIC,16,223,47,8
+ LTEXT "Static",IDC_PROP_SOURCE,73,223,139,8
+ LTEXT "Clone of:",IDC_PROP_CLONEOF_TEXT,16,233,50,8
+ LTEXT "Static",IDC_PROP_CLONEOF,74,233,130,33
+END
+
+IDD_PROP_AUDIT DIALOG DISCARDABLE 0, 0, 220, 240
+STYLE WS_CHILD | WS_CAPTION
+CAPTION "Audit"
+FONT 8, "Tahoma"
+BEGIN
+ ICON IDI_CHECKMARK,IDC_STATIC,20,10,20,20
+// LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,
+// SS_NOPREFIX
+// LTEXT "ROM check:",IDC_STATIC,10,40,50,8
+// LTEXT "Checking...",IDC_PROP_ROMS,66,40,139,8
+// GROUPBOX "Details",IDC_STATIC,4,64,211,171
+// EDITTEXT IDC_AUDIT_DETAILS_PROP,10,74,199,155,ES_MULTILINE |
+// ES_AUTOVSCROLL | ES_READONLY | WS_VSCROLL | WS_HSCROLL |
+// NOT WS_TABSTOP
+ LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,SS_NOPREFIX
+ LTEXT "ROM Check:",IDC_STATIC,10,40,50,8
+ LTEXT "Checking...",IDC_PROP_ROMS,66,40,139,8
+ LTEXT "Sample Check:",IDC_STATIC,10,52,50,8
+ LTEXT "Checking...",IDC_PROP_SAMPLES,66,52,139,8
+ GROUPBOX "ROM Details",IDC_STATIC,4,64,212,104
+ EDITTEXT IDC_AUDIT_DETAILS_PROP,10,74,200,88,ES_MULTILINE |
+ ES_AUTOVSCROLL | ES_READONLY | WS_VSCROLL | WS_HSCROLL |
+ NOT WS_TABSTOP
+ GROUPBOX "Sample Details",IDC_STATIC,4,172,212,104
+ EDITTEXT IDC_AUDIT_DETAILS_PROP,10,182,200,88,ES_MULTILINE |
+ ES_AUTOVSCROLL | ES_READONLY | WS_VSCROLL | WS_HSCROLL |
+ NOT WS_TABSTOP
+END
+
+IDD_PROP_DISPLAY DIALOGEX 0, 0, 220, 240
+STYLE WS_CHILD | WS_CAPTION
+CAPTION "Display"
+FONT 8, "Tahoma", 0, 0, 0x1
+BEGIN
+ ICON IDI_DISPLAY,IDC_STATIC,20,10,20,20
+ LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,169,25,SS_NOPREFIX
+
+ CONTROL "Run in a window",IDC_WINDOWED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,40,69,10,0,HIDC_WINDOWED
+ CONTROL "Start out maximised",IDC_MAXIMIZE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,52,80,10,0,HIDC_MAXIMIZE
+ CONTROL "Enforce aspect ratio",IDC_KEEPASPECT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,64,77,10,0,HIDC_KEEPASPECT
+ CONTROL "Throttle",IDC_THROTTLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,76,39,10,0,HIDC_THROTTLE
+
+ GROUPBOX "Bitmap prescaling",IDC_PRESCALETEXT,4,89,103,24
+ CONTROL "GammaSlider",IDC_PRESCALE,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,10,99,71,10,0,HIDC_PRESCALE
+ RTEXT "1.00",IDC_PRESCALEDISP,84,98,14,11,SS_CENTERIMAGE | NOT WS_GROUP
+
+ GROUPBOX "Gamma Correction",IDC_STATIC,4,115,103,24
+ CONTROL "GammaSlider",IDC_GAMMA,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,10,125,71,10,0,HIDC_GAMMA
+ RTEXT "2.00",IDC_GAMMADISP,84,124,14,10,SS_CENTERIMAGE | NOT WS_GROUP
+
+ GROUPBOX "Brightness Correction",IDC_STATIC,4,141,103,24
+ CONTROL "GammaSlider",IDC_BRIGHTCORRECT,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,10,151,71,10,0,HIDC_BRIGHTCORRECT
+ RTEXT "1.00",IDC_BRIGHTCORRECTDISP,84,150,14,10,SS_CENTERIMAGE | NOT WS_GROUP
+
+ GROUPBOX "Contrast Correction",IDC_STATIC,4,167,103,24
+ CONTROL "GammaSlider",IDC_CONTRAST,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,10,176,71,10,0,HIDC_CONTRAST
+ RTEXT "1.00",IDC_CONTRASTDISP,84,175,14,11,SS_CENTERIMAGE | NOT WS_GROUP
+
+ GROUPBOX "Pause Brightness",IDC_STATIC,4,193,103,24
+ CONTROL "Slider1",IDC_PAUSEBRIGHT,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,10,203,71,10,0,HIDC_PAUSEBRIGHT
+ RTEXT "0.65",IDC_PAUSEBRIGHTDISP,84,202,14,11,SS_CENTERIMAGE | NOT WS_GROUP
+
+ GROUPBOX "Video Mode",IDC_STATIC,113,40,102,28
+ COMBOBOX IDC_VIDEO_MODE,119,50,90,50,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP,0,HIDC_VIDEO_MODE
+
+ GROUPBOX "Rotation",IDC_STATIC,113,71,102,55
+ COMBOBOX IDC_ROTATE,119,81,90,57,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_ROTATE
+ CONTROL "Flip screen upside-down",IDC_FLIPY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,119,98,91,10,0,HIDC_FLIPY
+ CONTROL "Flip screen left-right",IDC_FLIPX,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,119,110,77,10,0,HIDC_FLIPX
+
+ GROUPBOX "Direct3D",IDC_STATIC,113,128,102,57
+ CONTROL "Use Bilinear filtering",IDC_D3D_FILTER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,119,138,85,10,0,HIDC_D3D_FILTER
+
+// GROUPBOX "Version",IDC_STATIC,119,150,90,28
+// COMBOBOX IDC_D3D_VERSION,125,160,78,95,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_D3D_VERSION
+
+// GROUPBOX "DirectDraw",IDC_STATIC,113,187,102,26
+// CONTROL "Stretch using hardware",IDC_HWSTRETCH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,119,197,85,10,0,HIDC_HWSTRETCH
+
+ PUSHBUTTON "Reset",IDC_PROP_RESET,4,222,97,14,0,0,HIDC_PROP_RESET
+ PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,118,222,97,14,0,0,HIDC_USE_DEFAULT
+END
+
+IDD_PROP_SOUND DIALOGEX 0, 0, 220, 240
+STYLE WS_CHILD | WS_CAPTION
+CAPTION "Sound"
+FONT 8, "Tahoma", 0, 0, 0x1
+BEGIN
+ ICON IDI_SOUNDTAB,IDC_STATIC,20,10,20,20
+ LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,SS_NOPREFIX
+
+ GROUPBOX "",IDC_STATIC,4,40,211,155
+
+ GROUPBOX "Sound Mode",IDC_STATIC,60,50,100,28
+ COMBOBOX IDC_SOUND_MODE,66,60,88,50,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP,0,HIDC_VIDEO_MODE
+
+ CONTROL "Use samples",IDC_SAMPLES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,60,84,55,10,0,HIDC_SAMPLES
+
+ GROUPBOX "Sample rate",IDC_RATETEXT,60,96,100,28
+ COMBOBOX IDC_SAMPLERATE,66,106,88,60,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_SAMPLERATE
+
+ GROUPBOX "Volume attenuation",IDC_VOLUMETEXT,60,127,100,28
+ CONTROL "Slider1",IDC_VOLUME,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,66,139,68,10,0,HIDC_VOLUME
+ RTEXT "0dB",IDC_VOLUMEDISP,132,138,20,11,SS_CENTERIMAGE
+
+ GROUPBOX "Audio latency",IDC_AUDIO_LATENCY_TEXT,60,158,100,28
+ CONTROL "Slider1",IDC_AUDIO_LATENCY,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,66,170,68,10,0,HIDC_AUDIO_LATENCY
+ RTEXT "1/5",IDC_AUDIO_LATENCY_DISP,132,169,20,11,SS_CENTERIMAGE
+
+ PUSHBUTTON "Reset",IDC_PROP_RESET,4,222,97,14,0,0,HIDC_PROP_RESET
+ PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,118,222,97,14,0,0,HIDC_USE_DEFAULT
+END
+
+IDD_PROP_ADVANCED DIALOGEX 0, 0, 220, 255
+STYLE DS_FIXEDSYS | WS_CHILD | WS_CAPTION
+CAPTION "Advanced"
+FONT 8, "Tahoma", 0, 0, 0x1
+BEGIN
+ ICON IDI_DISPLAY,IDC_STATIC,20,10,20,20
+ LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,SS_NOPREFIX
+
+ CONTROL "Triple buffering",IDC_TRIPLE_BUFFER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,40,93,10,0,HIDC_TRIPLE_BUFFER
+ CONTROL "Sync to monitor refresh",IDC_SYNCREFRESH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,52,93,10,0,HIDC_SYNCREFRESH
+ CONTROL "Wait for vertical sync",IDC_WAITVSYNC,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,64,93,10,0,HIDC_WAITVSYNC
+ CONTROL "Refresh speed",IDC_REFRESHSPEED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,76,93,10,0,HIDC_REFRESHSPEED
+
+ GROUPBOX "Frame skipping",IDC_STATIC,4,104,103,42
+ CONTROL "Automatic",IDC_AUTOFRAMESKIP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,114,77,10,0,HIDC_AUTOFRAMESKIP
+ COMBOBOX IDC_FRAMESKIP,10,127,91,88,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_FRAMESKIP
+
+ GROUPBOX "Full screen gamma",IDC_FSGAMMATEXT,113,40,102,24
+ CONTROL "Slider1",IDC_FSGAMMA,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,119,50,71,10,0,HIDC_FSGAMMA
+ RTEXT "2.00",IDC_FSGAMMADISP,193,49,16,10,SS_CENTERIMAGE | NOT WS_GROUP
+
+ GROUPBOX "Full screen brightness",IDC_FSBRIGHTNESSTEXT,113,67,102,24
+ CONTROL "Slider1",IDC_FSBRIGHTNESS,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,119,77,71,10,0,HIDC_FSBRIGHTNESS
+ RTEXT "2.00",IDC_FSBRIGHTNESSDISP,193,76,16,10,SS_CENTERIMAGE | NOT WS_GROUP
+
+ GROUPBOX "Full screen contrast",IDC_FSCONTRASTTEXT,113,94,102,24
+ CONTROL "Slider1",IDC_FSCONTRAST,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,119,104,71,10,0,HIDC_FSCONTRAST
+ RTEXT "2.00",IDC_FSCONTRASTDISP,193,103,16,11,SS_CENTERIMAGE | NOT WS_GROUP
+
+ GROUPBOX "Seconds to run",IDC_SECONDSTORUNTEXT,113,122,102,24
+ CONTROL "",IDC_SECONDSTORUN,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,119,132,71,10,0,HIDC_SECONDSTORUN
+ RTEXT "60",IDC_SECONDSTORUNDISP,193,130,16,11,SS_CENTERIMAGE | NOT WS_GROUP
+
+ GROUPBOX "Emulation speed",IDC_SPEEDTEXT,4,155,211,24
+ CONTROL "Slider1",IDC_SPEED,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,12,165,180,10,0,HIDC_SPEED
+ RTEXT "1.00",IDC_SPEEDDISP,191,164,20,11,SS_CENTERIMAGE | NOT WS_GROUP
+
+ GROUPBOX "Effect",IDC_STATIC,4,182,211,50
+ EDITTEXT IDC_EFFECT,12,192,200,14,ES_AUTOHSCROLL | WS_DISABLED
+ PUSHBUTTON "Select Effect",IDC_SELECT_EFFECT,12,211,60,14,0,0,HIDC_SELECT_EFFECT
+ PUSHBUTTON "Reset Effect",IDC_RESET_EFFECT,152,211,60,14,0,0,HIDC_RESET_EFFECT
+
+ PUSHBUTTON "Reset",IDC_PROP_RESET,4,238,97,14,0,0,HIDC_PROP_RESET
+ PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,120,238,97,14,0,0,HIDC_USE_DEFAULT
+END
+
+IDD_PROP_DEBUG DIALOGEX 0, 0, 220, 255
+STYLE DS_FIXEDSYS | WS_CHILD | WS_CAPTION
+CAPTION "Debug"
+FONT 8, "Tahoma", 0, 0, 0x1
+BEGIN
+ ICON IDI_MANUFACTURER,IDC_STATIC,20,10,20,20
+ LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,SS_NOPREFIX
+
+ CONTROL "Output log to Windows Debugger",IDC_OSLOG,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,40,124,10,0,HIDC_OSLOG
+ CONTROL "Output log to Logfile",IDC_LOG,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,52,93,10,0,HIDC_LOG
+ CONTROL "Output diagnostic information",IDC_VERBOSE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,64,111,10,0,HIDC_VERBOSE
+ CONTROL "Update Main window during paused emulation",IDC_UPDATEINPAUSE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,76,171,10,0,HIDC_UPDATEINPAUSE
+ CONTROL "Activate Integrated Debugger",IDC_DEBUG,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,88,118,10,0,HIDC_DEBUG
+
+ GROUPBOX "Debugscript",IDC_STATIC,6,104,211,50
+ EDITTEXT IDC_DEBUGSCRIPT,14,114,200,14,ES_AUTOHSCROLL | WS_DISABLED
+ PUSHBUTTON "Select Debugscript",IDC_SELECT_DEBUGSCRIPT,14,133,67,14,0,0,HIDC_SELECT_DEBUGSCRIPT
+ PUSHBUTTON "Reset Debugscript",IDC_RESET_DEBUGSCRIPT,149,133,65,14,0,0,HIDC_RESET_DEBUGSCRIPT
+
+ PUSHBUTTON "Reset",IDC_PROP_RESET,4,238,97,14,0,0,HIDC_PROP_RESET
+ PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,120,238,97,14,0,0,HIDC_USE_DEFAULT
+END
+
+IDD_PROP_INPUT DIALOGEX 0, 0, 220, 240
+STYLE DS_FIXEDSYS | WS_CHILD | WS_CAPTION
+CAPTION "Controllers"
+FONT 8, "Tahoma", 0, 0, 0x1
+BEGIN
+ ICON IDI_JOYSTICK,IDC_STATIC,20,10,20,20
+ LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,
+ SS_NOPREFIX
+ CONTROL "Enable mouse input",IDC_USE_MOUSE,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,10,40,86,10,0,
+ HIDC_USE_MOUSE
+ CONTROL "Enable steadykey support",IDC_STEADYKEY,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,10,52,95,10,0,
+ HIDC_STEADYKEY
+ GROUPBOX "",IDC_STATIC,4,64,103,74
+ CONTROL "Enable joystick input",IDC_JOYSTICK,"Button",
+ BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,10,64,78,10,0,
+ HIDC_JOYSTICK
+ GROUPBOX "Joystick deadzone",IDC_JDZTEXT,10,76,91,28
+ CONTROL "IntensitySlider",IDC_JDZ,"msctls_trackbar32",TBS_BOTH |
+ TBS_NOTICKS | WS_TABSTOP,15,88,60,10,0,HIDC_JDZ
+ RTEXT "0.3",IDC_JDZDISP,76,87,16,11,SS_CENTERIMAGE | NOT
+ WS_GROUP
+ GROUPBOX "Default input layout",IDC_STATIC,113,40,102,28
+ COMBOBOX IDC_DEFAULT_INPUT,119,50,90,53,CBS_DROPDOWNLIST |
+ WS_VSCROLL | WS_TABSTOP,0,HIDC_DEFAULT_INPUT
+ GROUPBOX "",IDC_STATIC,113,71,102,66
+ CONTROL "Enable lightgun input",IDC_LIGHTGUN,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,119,71,80,10,0,
+ HIDC_LIGHTGUN
+ CONTROL "Offscreen shots reload",IDC_RELOAD,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,119,83,86,10,0,HIDC_RELOAD
+ CONTROL "Dual lightguns",IDC_DUAL_LIGHTGUN,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,119,96,86,10,0,
+ HIDC_DUAL_LIGHTGUN
+ CONTROL "Multiple keyboards",IDC_MULTIKEYBOARD,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,119,109,75,10,0,
+ HIDC_MULTIKEYBOARD
+ CONTROL "Multiple mice",IDC_MULTIMOUSE,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,119,122,56,10,0,HIDC_MULTIMOUSE
+ GROUPBOX "Joystick saturation",IDC_JSATTEXT,10,106,91,28
+ CONTROL "IntensitySlider",IDC_JSAT,"msctls_trackbar32",TBS_BOTH |
+ TBS_NOTICKS | WS_TABSTOP,16,118,60,10,0,HIDC_JSAT
+ RTEXT "0.85",IDC_JSATDISP,76,116,16,11,SS_CENTERIMAGE | NOT
+ WS_GROUP
+ PUSHBUTTON "Reset",IDC_PROP_RESET,4,222,97,14,0,0,HIDC_PROP_RESET
+ PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,118,222,97,14,
+ 0,0,HIDC_USE_DEFAULT
+ GROUPBOX "Joystickmap",IDC_STATIC,4,143,211,50
+ EDITTEXT IDC_JOYSTICKMAP,12,153,200,14,ES_AUTOHSCROLL |
+ WS_DISABLED
+ PUSHBUTTON "Select Joystickmap",IDC_SELECT_JOYSTICKMAP,12,172,67,14,
+ 0,0,HIDC_SELECT_JOYSTICKMAP
+ PUSHBUTTON "Reset Joystickmap",IDC_RESET_JOYSTICKMAP,147,172,65,14,
+ 0,0,HIDC_RESET_JOYSTICKMAP
+END
+
+IDD_PROP_MISC DIALOGEX 0, 0, 220, 240
+STYLE DS_FIXEDSYS | WS_CHILD | WS_CAPTION
+CAPTION "Miscellaneous"
+FONT 8, "Tahoma", 0, 0, 0x1
+BEGIN
+ ICON IDI_MAMEUI_ICON,IDC_STATIC,20,10,20,20
+ LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,
+ SS_NOPREFIX
+ CONTROL "Enable cheats",IDC_CHEAT,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,10,40,86,10,0,HIDC_CHEAT
+ CONTROL "Sleep when possible",IDC_SLEEP,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,10,52,86,10,0,HIDC_SLEEP
+ CONTROL "Skip system info",IDC_SKIP_GAME_INFO,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,10,64,96,10,0,
+ HIDC_SKIP_GAME_INFO
+ CONTROL "Save system state on exit",IDC_ENABLE_AUTOSAVE,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,10,76,96,10,0,
+ HIDC_ENABLE_AUTOSAVE
+// CONTROL "Multi-threaded rendering",IDC_MULTITHREAD_RENDERING,
+// "Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,88,96,10,0,
+// HIDC_MULTITHREAD_RENDERING
+ CONTROL "Coin lockout",IDC_COINLOCKOUT,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,10,100,96,10,0,HIDC_COINLOCKOUT
+ GROUPBOX "Thread Priority",IDC_HIGH_PRIORITY_TEXT,7,112,103,34
+ CONTROL "Slider1",IDC_HIGH_PRIORITY,"msctls_trackbar32",TBS_BOTH |
+ TBS_NOTICKS | WS_TABSTOP,13,122,75,10,0,
+ HIDC_HIGH_PRIORITY
+ LTEXT "idle",IDC_STATIC,17,132,12,8
+ RTEXT "-15",IDC_HIGH_PRIORITYTXT,87,122,14,10,SS_CENTERIMAGE
+ RTEXT "real-time",IDC_STATIC,57,134,28,8
+ GROUPBOX "Snapshot view",IDC_STATIC,7,148,103,28
+ COMBOBOX IDC_SNAPVIEW,13,158,90,60,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP,0,HIDC_SNAPVIEW
+ GROUPBOX "Artwork options",IDC_STATIC,113,40,102,85
+ CONTROL "Backdrops",IDC_BACKDROPS,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,119,50,86,10,0,HIDC_BACKDROPS
+ CONTROL "Bezels",IDC_BEZELS,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,119,62,86,10,0,HIDC_BEZELS
+ CONTROL "Overlays",IDC_OVERLAYS,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,119,74,84,10,0,HIDC_OVERLAYS
+ CONTROL "CPanels",IDC_CPANELS,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,119,86,84,10,0
+ CONTROL "Marquees",IDC_MARQUEES,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,119,98,84,10,0
+ CONTROL "Crop artwork",IDC_ARTWORK_CROP,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,119,110,53,10,0,HIDC_ARTWORK_CROP
+ GROUPBOX "BIOS",IDC_STATIC,113,128,102,28
+ COMBOBOX IDC_BIOS,119,138,90,60,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP,0,HIDC_BIOS
+ GROUPBOX "",IDC_STATIC,7,178,208,28
+ CONTROL "Autoselect snapshot size",IDC_SNAPSIZE,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,13,178,95,10,0,
+ HIDC_SNAPSIZE
+ LTEXT "Snapshotsize",IDC_SNAPSIZETEXT,11,189,44,11,
+ SS_CENTERIMAGE | NOT WS_GROUP
+ EDITTEXT IDC_SNAPSIZEWIDTH,122,187,32,12,ES_RIGHT |
+ ES_AUTOHSCROLL | ES_NUMBER,0,HIDC_SNAPSIZEWIDTH
+ EDITTEXT IDC_SNAPSIZEHEIGHT,172,187,32,12,ES_RIGHT |
+ ES_AUTOHSCROLL | ES_NUMBER,0,HIDC_SNAPSIZEHEIGHT
+ LTEXT "x",IDC_SNAPSIZEX,162,189,8,8
+ PUSHBUTTON "Reset",IDC_PROP_RESET,4,222,97,14,0,0,HIDC_PROP_RESET
+ PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,118,222,97,14,
+ 0,0,HIDC_USE_DEFAULT
+ CONTROL "Show Menu",IDC_SHOW_MENU,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,119,160,86,10,0
+
+END
+
+IDD_PROP_VECTOR DIALOGEX 0, 0, 220, 240
+STYLE WS_CHILD | WS_CAPTION
+CAPTION "Vector"
+FONT 8, "Tahoma", 0, 0, 0x1
+BEGIN
+ ICON IDI_MAMEUI_ICON,IDC_STATIC,20,10,20,20
+ LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,
+ SS_NOPREFIX
+// CONTROL "Draw antialiased vectors",IDC_ANTIALIAS,"Button",
+// BS_AUTOCHECKBOX | WS_TABSTOP,10,40,92,10,0,
+// HIDC_ANTIALIAS
+ GROUPBOX "Beam width",IDC_BEAMTEXT,60,53,100,28
+ CONTROL "BeamSlider",IDC_BEAM,"msctls_trackbar32",TBS_BOTH |
+ TBS_NOTICKS | WS_TABSTOP,66,65,64,10,0,HIDC_BEAM
+ RTEXT "16.00",IDC_BEAMDISP,132,64,20,11,SS_CENTERIMAGE
+ GROUPBOX "Flicker",IDC_FLICKERTEXT,60,84,100,28
+ CONTROL "FlickerSlider",IDC_FLICKER,"msctls_trackbar32",TBS_BOTH |
+ TBS_NOTICKS | WS_TABSTOP,66,96,64,10,0,HIDC_FLICKER
+ RTEXT "100.00",IDC_FLICKERDISP,128,95,24,11,SS_CENTERIMAGE |
+ NOT WS_GROUP
+ PUSHBUTTON "Reset",IDC_PROP_RESET,4,222,97,14,0,0,HIDC_PROP_RESET
+ PUSHBUTTON "Restore Default Settings",IDC_USE_DEFAULT,118,222,97,14,
+ 0,0,HIDC_USE_DEFAULT
+END
+
+IDD_MAIN DIALOGEX 0, 0, 364, 206
+STYLE DS_3DLOOK | DS_NOFAILCREATE | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
+EXSTYLE WS_EX_CONTROLPARENT
+CAPTION "MAMEUI - overwritten at runtime"
+CLASS "MainClass"
+FONT 8, "Tahoma", 0, 0, 0x1
+BEGIN
+ CONTROL "",IDC_DIVIDER,"Static",SS_ETCHEDHORZ,0,5,304,1
+ CONTROL "Tree1",IDC_TREE,"SysTreeView32",TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT | TVS_EDITLABELS |
+ TVS_SHOWSELALWAYS | TVS_FULLROWSELECT | WS_BORDER | WS_TABSTOP,5,28,48,172
+ CONTROL "List1",IDC_LIST,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_AUTOARRANGE |
+ LVS_SHAREIMAGELISTS | LVS_OWNERDRAWFIXED | WS_BORDER | WS_TABSTOP,65,28,42,172
+ GROUPBOX "",IDC_SPLITTER,55,28,8,172,BS_NOTIFY | NOT WS_VISIBLE
+ GROUPBOX "",IDC_SPLITTER2,109,28,8,172,BS_NOTIFY | NOT WS_VISIBLE
+ CONTROL "",IDC_SWTAB,"SysTabControl32",TCS_HOTTRACK,119,0,200,100
+ CONTROL "List2",IDC_SWLIST,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_AUTOARRANGE |
+ LVS_SHAREIMAGELISTS | LVS_OWNERDRAWFIXED | WS_BORDER | WS_TABSTOP,119,60,42,140
+ CONTROL "",IDC_SWDEVVIEW,"MessSoftwareMView",WS_VISIBLE,119,0,200,100
+ CONTROL "List3",IDC_SOFTLIST,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_AUTOARRANGE |
+ LVS_SHAREIMAGELISTS | LVS_OWNERDRAWFIXED | WS_BORDER | WS_TABSTOP,119,60,42,140
+ GROUPBOX "",IDC_SPLITTER3,163,28,8,172,BS_NOTIFY | NOT WS_VISIBLE
+ CONTROL "",IDC_SSFRAME,"Static",SS_ETCHEDFRAME | SS_NOTIFY,121,11,181,194
+ CONTROL "",IDC_SSTAB,"SysTabControl32",TCS_HOTTRACK,121,0,181,18
+ CONTROL "",IDC_SSPICTURE,"Static",SS_BITMAP | NOT WS_VISIBLE,141,18,141,127
+ EDITTEXT IDC_HISTORY,129,150,167,49,ES_MULTILINE | ES_READONLY | NOT WS_BORDER | WS_VSCROLL | NOT WS_TABSTOP,0, HIDC_HISTORY
+END
+
+IDD_FILTERS DIALOGEX 0, 0, 190, 210
+STYLE DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_CAPTION |
+ WS_SYSMENU
+EXSTYLE WS_EX_CONTEXTHELP
+CAPTION "System Filters"
+FONT 8, "Tahoma", 0, 0, 0x1
+BEGIN
+ GROUPBOX "System filters",IDC_STATIC,6,4,178,113
+ CONTROL "&Vector Graphics",IDC_FILTER_VECTOR,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,14,16,70,10,0,
+ HIDC_FILTER_VECTOR
+ CONTROL "C&lones",IDC_FILTER_CLONES,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,14,30,41,10,0,HIDC_FILTER_CLONES
+ CONTROL "Non-Wor&king",IDC_FILTER_NONWORKING,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,14,44,61,10,0,
+ HIDC_FILTER_NONWORKING
+ CONTROL "&Horizontal",IDC_FILTER_HORIZONTAL,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,14,58,57,10,0,
+ HIDC_FILTER_HORIZONTAL
+ CONTROL "&Computers",IDC_FILTER_COMPUTER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,72,57,10,0,HIDC_FILTER_UNAVAILABLE
+ CONTROL "C&onsoles",IDC_FILTER_CONSOLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,100,72,57,10,0,HIDC_FILTER_UNAVAILABLE
+ CONTROL "&Unavailable",IDC_FILTER_UNAVAILABLE,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,14,86,57,10,0,
+ HIDC_FILTER_UNAVAILABLE
+ CONTROL "Arcade",IDC_FILTER_ARCADE,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,14,100,57,10,0
+ CONTROL "&Raster Graphics",IDC_FILTER_RASTER,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,100,16,70,10,0,
+ HIDC_FILTER_RASTER
+ CONTROL "Ori&ginals",IDC_FILTER_ORIGINALS,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,100,30,47,10,0,
+ HIDC_FILTER_ORIGINALS
+ CONTROL "&Working",IDC_FILTER_WORKING,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,100,44,47,10,0,HIDC_FILTER_WORKING
+ CONTROL "&Vertical",IDC_FILTER_VERTICAL,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,100,58,47,10,0,HIDC_FILTER_VERTICAL
+ CONTROL "&Mechanical",IDC_FILTER_MECHANICAL,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,100,86,60,10,0,HIDC_FILTER_MECHANICAL
+ CONTROL "MESS",IDC_FILTER_MESS,"Button",BS_AUTOCHECKBOX |
+ WS_TABSTOP,100,100,58,10,0,HIDC_FILTER_MECHANICAL
+ LTEXT "(*) = inherited from parent folder",IDC_INHERITED,14,72,
+ 99,10
+ CTEXT "System filters allow customising the systems that are displayed in each folder by hiding games that match the filters applied.",IDC_STATIC,6,122,178,27
+ GROUPBOX "&Description filter",IDC_STATIC,6,150,178,33
+ EDITTEXT IDC_FILTER_EDIT,14,162,162,13,ES_AUTOHSCROLL,0,
+ HIDC_FILTER_EDIT
+ DEFPUSHBUTTON "&OK",IDOK,42,189,50,14
+ PUSHBUTTON "&Cancel",IDCANCEL,98,189,50,14
+END
+
+IDD_RESET DIALOGEX 0, 0, 190, 122
+STYLE DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_CAPTION | WS_SYSMENU
+EXSTYLE WS_EX_CONTEXTHELP
+CAPTION "Reset Options"
+FONT 8, "Tahoma", 0, 0, 0x1
+BEGIN
+ GROUPBOX "Categories",IDC_STATIC,6,4,178,70
+ CONTROL "&User Interface (Fonts, Colors, Sizes)",IDC_RESET_UI,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,16,146,10,0,
+ HIDC_RESET_UI
+ CONTROL "&Default system options",IDC_RESET_DEFAULT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,30,146,10,0,HIDC_RESET_DEFAULT
+ CONTROL "&All systems to use default options",IDC_RESET_GAMES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,44,146,10,0,HIDC_RESET_GAMES
+ CONTROL "&Folder 'filters'",IDC_RESET_FILTERS,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,14,58,146,10,0,
+ HIDC_RESET_FILTERS
+ CTEXT "Select the options to be restored to the default settings.",
+ IDC_STATIC,6,79,178,20
+ DEFPUSHBUTTON "&OK",IDOK,42,101,50,14
+ PUSHBUTTON "&Cancel",IDCANCEL,98,101,50,14
+END
+
+IDD_LOAD_PROGRESS DIALOGEX 0, 0, 260, 187
+STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+EXSTYLE WS_EX_CONTROLPARENT
+FONT 8, "Tahoma", 0, 0, 0x1
+BEGIN
+ CONTROL "Progress1",IDC_LOAD_PROGRESS,"msctls_progress32",
+ PBS_SMOOTH | WS_BORDER,6,7,248,12
+ CTEXT "",IDC_LOAD_ROMNAME,6,21,248,10,SS_CENTERIMAGE | NOT
+ WS_GROUP
+ EDITTEXT IDC_LOAD_STATUS,6,32,248,116,ES_MULTILINE | ES_READONLY |
+ WS_VSCROLL
+ CTEXT "",IDC_ERROR_TEXT,6,150,248,13,SS_NOPREFIX |
+ SS_CENTERIMAGE
+ PUSHBUTTON "&OK",IDOK,77,166,50,14,WS_DISABLED
+ PUSHBUTTON "&Cancel",IDCANCEL,133,166,50,14
+END
+
+IDD_INTERFACE_OPTIONS DIALOGEX 0, 0, 378, 225
+STYLE DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_CAPTION | WS_SYSMENU
+EXSTYLE WS_EX_CONTEXTHELP
+CAPTION "Interface Options"
+FONT 8, "Tahoma", 0, 0, 0x1
+BEGIN
+ GROUPBOX "Machine Selection",IDC_STATIC,6,4,189,194
+ CONTROL "&Search for new machines on start",IDC_START_GAME_CHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,16,120,10,0,HIDC_START_GAME_CHECK
+ CONTROL "Allow selection by &joystick (requires restart)",IDC_JOY_GUI,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,30,180,10,0,HIDC_JOY_GUI
+ CONTROL "Allow selection by custom &key sequences",IDC_KEY_GUI,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,44,176,10
+ CONTROL "Override Not Working icon with driver icon",IDC_OVERRIDE_REDX,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,72,168,10
+ CONTROL "Hide &mouse cursor (requires restart)",IDC_HIDE_MOUSE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,86,136,10,0,HIDC_HIDE_MOUSE
+ CONTROL "Inheritable Filters",IDC_FILTER_INHERIT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,100,68,10
+ CONTROL "No offset for clones missing parent in view",IDC_NOOFFSET_CLONES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,114,148,10
+ GROUPBOX "Show History on Tab",IDC_STATIC,14,128,173,28
+ COMBOBOX IDC_HISTORY_TAB,57,138,88,50,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+ GROUPBOX "Snapshot Pattern",IDC_STATIC,202,4,170,28
+ GROUPBOX "Bookkeeping",IDC_STATIC,202,36,170,43
+ CONTROL "Reset all Play Statistics",IDC_RESET_PLAYSTATS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,210,48,100,10
+ GROUPBOX "Screenshot Area",IDC_STATIC,202,83,170,115
+ CONTROL "S&tretch screenshot larger than natural size",
+ IDC_STRETCH_SCREENSHOT_LARGER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,210,95,148,10,0,HIDC_STRETCH_SCREENSHOT_LARGER
+ GROUPBOX "Screenshot Cycletime in Seconds",IDC_STATIC,210,109,154,28
+ CONTROL "Slider1",IDC_CYCLETIMESEC,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,218,121,120,10,0,HIDC_CYCLETIMESEC
+ RTEXT "60",IDC_CYCLETIMESECTXT,340,120,13,10,SS_CENTERIMAGE
+ GROUPBOX "Screenshot Bordersize",IDC_STATIC,210,141,154,28
+ CONTROL "Slider1",IDC_SCREENSHOT_BORDERSIZE,"msctls_trackbar32",TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,218,153,120,10
+ RTEXT "100",IDC_SCREENSHOT_BORDERSIZETXT,340,152,13,10,SS_CENTERIMAGE
+ PUSHBUTTON "Set Screenshot Border Color",IDC_SCREENSHOT_BORDERCOLOR,210,176,154,14
+ DEFPUSHBUTTON "&OK",IDOK,136,204,50,14
+ PUSHBUTTON "&Cancel",IDCANCEL,192,204,50,14
+ COMBOBOX IDC_SNAPNAME,209,14,155,60,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP,0,HIDC_SNAPNAME
+END
+
+IDD_CUSTOM_FILE DIALOG DISCARDABLE 0, 0, 190, 135
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Add Game To Custom Folder"
+FONT 8, "Tahoma"
+BEGIN
+ LTEXT "",IDC_CUSTOMFILE_GAME,6,6,175,10,SS_NOPREFIX |
+ SS_CENTERIMAGE
+ CONTROL "CustomTree",IDC_CUSTOM_TREE,"SysTreeView32",
+ TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT |
+ TVS_DISABLEDRAGDROP | TVS_SHOWSELALWAYS |
+ TVS_FULLROWSELECT | WS_BORDER | WS_TABSTOP,6,18,178,90
+ DEFPUSHBUTTON "OK",IDOK,42,114,50,14
+ PUSHBUTTON "Cancel",IDCANCEL,98,114,50,14
+END
+
+IDD_PROP_SOFTWARE DIALOGEX 0, 0, 220, 220
+STYLE WS_CHILD | WS_CAPTION
+CAPTION "Software"
+FONT 8, "MS Sans Serif"
+BEGIN
+ ICON IDI_WIN_FLOP,IDC_STATIC,20,10,20,20
+ LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,
+ SS_NOPREFIX
+ CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,20,38,178,1
+ LTEXT "Additional directories:",IDC_STATIC,7,40,157,8
+ CONTROL "List1",IDC_DIR_LIST,"SysListView32",LVS_REPORT |
+ LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_EDITLABELS |
+ LVS_ALIGNLEFT | LVS_NOCOLUMNHEADER | WS_BORDER |
+ WS_TABSTOP,7,50,206,120
+ PUSHBUTTON "Browse...",IDC_DIR_BROWSE,7,180,50,14
+ PUSHBUTTON "Insert",IDC_DIR_INSERT,85,180,50,14
+ PUSHBUTTON "Delete",IDC_DIR_DELETE,163,180,50,14
+END
+
+
+IDD_PROP_CONFIGURATION DIALOGEX 0, 0, 220, 220
+STYLE WS_CHILD | WS_CAPTION
+CAPTION "Configuration"
+FONT 8, "MS Sans Serif"
+BEGIN
+ ICON IDI_MAMEUI_ICON,IDC_STATIC,20,10,20,20
+ LTEXT "Title\nDirectory\nExtra",IDC_PROP_TITLE,52,9,161,25,
+ SS_NOPREFIX
+ CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,20,38,178,1
+ LTEXT "RAM size",IDC_RAM_CAPTION,20,50,50,10
+ COMBOBOX IDC_RAM_COMBOBOX,70,50,100,76,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP
+END
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Accelerator
+//
+
+IDA_TAB_KEYS ACCELERATORS MOVEABLE PURE
+BEGIN
+ "1", ID_VIEW_TAB_SCREENSHOT, VIRTKEY, ALT, NOINVERT
+ "2", ID_VIEW_TAB_FLYER, VIRTKEY, ALT, NOINVERT
+ "3", ID_VIEW_TAB_CABINET, VIRTKEY, ALT, NOINVERT
+ "4", ID_VIEW_TAB_MARQUEE, VIRTKEY, ALT, NOINVERT
+ "5", ID_VIEW_TAB_TITLE, VIRTKEY, ALT, NOINVERT
+ "6", ID_VIEW_TAB_CONTROL_PANEL, VIRTKEY, ALT, NOINVERT
+ "7", ID_VIEW_TAB_PCB, VIRTKEY, ALT, NOINVERT
+ "8", ID_VIEW_TAB_HISTORY, VIRTKEY, ALT, NOINVERT
+ "A", ID_GAME_AUDIT, VIRTKEY, ALT, NOINVERT
+ "B", ID_VIEW_PAGETAB, VIRTKEY, ALT, NOINVERT
+ "D", ID_VIEW_FOLDERS, VIRTKEY, ALT, NOINVERT
+ "E", ID_TOOLBAR_EDIT, VIRTKEY, CONTROL, NOINVERT
+ "F", ID_CONTEXT_FILTERS, VIRTKEY, CONTROL, NOINVERT
+ "U", ID_FOLDER_AUDIT, VIRTKEY, ALT, NOINVERT
+ "P", ID_VIEW_PICTURE_AREA, VIRTKEY, ALT, NOINVERT
+ "R", ID_CONTEXT_SELECT_RANDOM, VIRTKEY, CONTROL, NOINVERT
+ "S", ID_VIEW_STATUS, VIRTKEY, ALT, NOINVERT
+ "T", ID_VIEW_TOOLBARS, VIRTKEY, ALT, NOINVERT
+ VK_F1, ID_HELP_CONTENTS, VIRTKEY, NOINVERT
+ VK_F11, ID_VIEW_FULLSCREEN, VIRTKEY, NOINVERT
+ VK_F5, ID_UPDATE_GAMELIST, VIRTKEY, NOINVERT
+ VK_NEXT, ID_UI_HISTORY_DOWN, VIRTKEY, CONTROL, NOINVERT
+ VK_PRIOR, ID_UI_HISTORY_UP, VIRTKEY, CONTROL, NOINVERT
+ VK_RETURN, ID_GAME_PROPERTIES, VIRTKEY, ALT, NOINVERT
+END
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// DESIGNINFO
+//
+
+#ifdef APSTUDIO_INVOKED
+GUIDELINES DESIGNINFO MOVEABLE PURE
+BEGIN
+ IDD_ABOUT, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 289
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 123
+ END
+
+ IDD_DIRECTX, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 229
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 62
+ END
+
+ IDD_AUDIT, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 280
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 187
+ HORZGUIDE, 19
+ END
+
+ IDD_DIRECTORIES, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 224
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 98
+ END
+
+ IDD_COLUMNS, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 301
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 143
+ END
+
+ IDD_PROP_CONTROLLER, DIALOG
+ BEGIN
+ RIGHTMARGIN, 210
+ BOTTOMMARGIN, 154
+ END
+
+ IDD_PROP_SCREEN, DIALOG
+ BEGIN
+ LEFTMARGIN, 4
+ VERTGUIDE, 7
+ VERTGUIDE, 123
+ BOTTOMMARGIN, 199
+ HORZGUIDE, 179
+ END
+
+ IDD_PROP_GAME, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 213
+ VERTGUIDE, 19
+ VERTGUIDE, 66
+ VERTGUIDE, 74
+ VERTGUIDE, 201
+ BOTTOMMARGIN, 268
+ END
+
+ IDD_PROP_AUDIT, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 213
+ VERTGUIDE, 12
+ VERTGUIDE, 208
+ BOTTOMMARGIN, 198
+ HORZGUIDE, 38
+ END
+
+ IDD_PROP_DISPLAY, DIALOG
+ BEGIN
+ LEFTMARGIN, 4
+ VERTGUIDE, 7
+ VERTGUIDE, 123
+ HORZGUIDE, 179
+ END
+
+ IDD_PROP_SOUND, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 213
+ VERTGUIDE, 50
+ BOTTOMMARGIN, 198
+ END
+
+ IDD_PROP_ADVANCED, DIALOG
+ BEGIN
+ LEFTMARGIN, 10
+ BOTTOMMARGIN, 240
+ END
+
+ IDD_PROP_INPUT, DIALOG
+ BEGIN
+ LEFTMARGIN, 4
+ RIGHTMARGIN, 215
+ VERTGUIDE, 50
+ VERTGUIDE, 170
+ END
+
+ IDD_PROP_MISC, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 213
+ VERTGUIDE, 25
+ VERTGUIDE, 40
+ VERTGUIDE, 104
+ VERTGUIDE, 114
+ VERTGUIDE, 204
+ BOTTOMMARGIN, 236
+ END
+
+ IDD_PROP_VECTOR, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 213
+ VERTGUIDE, 50
+ BOTTOMMARGIN, 198
+ END
+
+ IDD_FILTERS, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 178
+ END
+
+ IDD_RESET, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 175
+ VERTGUIDE, 18
+ VERTGUIDE, 164
+ TOPMARGIN, 7
+ END
+END
+#endif // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Bitmap
+//
+
+IDB_ABOUT BITMAP "res\\logo_mess.bmp"
+IDB_TOOLBAR BITMAP "res\\toolbar.bmp"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Cursor
+//
+
+IDC_CURSOR_HSPLIT CURSOR "res\\splith.cur"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// RT_MANIFEST
+//
+
+1 RT_MANIFEST "res\\mameui.manifest"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// String Table
+//
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ IDS_UI_FILE "Contains commands for working with the selected items"
+ IDS_UI_VIEW "Contains commands for manipulating the view"
+ IDS_UI_OPTIONS "Contains commands for user interface options"
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ IDS_UI_HELP "Contains commands for displaying help"
+ IDS_VIEW_TOOLBAR "Show or hide the toolbar"
+ IDS_VIEW_STATUSBAR "Show or hide the status bar"
+ IDS_VIEW_FOLDERLIST "Show or hide the folder list"
+ IDS_VIEW_SCREENSHOT "Show or hide the screen shot"
+ IDS_VIEW_PICTURETABS "Show or hide tabs in the picture area"
+ IDS_VIEW_SPACER1 "Spacer"
+ IDS_VIEW_FULLSCREEN "Toggle full screen mode"
+ IDS_VIEW_SPACER2 "Spacer"
+ IDS_VIEW_SHOWPICTURES "Contains commands to select tabs shown in the picture area"
+ IDS_VIEW_SPACER3 "Spacer"
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ IDS_VIEW_LARGEICONS "Display items by using large icons."
+ IDS_VIEW_SMALLICONS "Display items by using small icons."
+ IDS_VIEW_LIST "Displays items in a list."
+ IDS_VIEW_DETAILS "Displays detailed information about each item in the window."
+ IDS_VIEW_GROUPED "Displays items grouped by parent game"
+ IDS_VIEW_SPACER4 "Spacer"
+ IDS_VIEW_ARRANGE "Contains commands for sorting by various columns"
+ IDS_VIEW_LINEUPICONS "Arranges icons in a grid"
+ IDS_VIEW_SPACER5 "Spacer"
+ IDS_VIEW_REFRESH "Refresh game list"
+ IDS_VIEW_CONTEXTFILTERS "Allows filtering out games from a folder"
+ IDS_VIEW_CUSTOMIZEFIELDS
+ "Customise which columns are used in the game list"
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ ID_FILE_EXIT "Exit the application"
+ ID_FILE_PLAY "Play currently selected system"
+ ID_HELP_ABOUT "Displays program and copyright information"
+ ID_VIEW_LARGE_ICON "Display items by using large icons."
+ ID_VIEW_SMALL_ICON "Display items by using small icons."
+ ID_VIEW_LIST_MENU "Displays items in a list."
+ ID_VIEW_DETAIL "Displays detailed information about each item in the window."
+ ID_OPTIONS_FONT "Set system list and folder list font"
+ ID_OPTIONS_DIR "Set directory configuration"
+ ID_OPTIONS_DEFAULTS "Set default system options"
+ ID_VIEW_GROUPED "Show items grouped by parent game"
+ ID_OPTIONS_CLONE_COLOR "Set the clone font color"
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ ID_OPTIONS_RESET_DEFAULTS "Allow restoring options to 'sane' values."
+ ID_OPTIONS_INTERFACE "Customise interface options."
+ ID_FILE_AUDIT "Audit ROMs and Samples"
+ ID_FILE_PLAY_RECORD "Record a system for later playback"
+ ID_FILE_PLAY_BACK "Playback a recorded system"
+ ID_FILE_PLAY_RECORD_WAVE "Record the sound output of a system"
+ ID_FILE_PLAY_RECORD_AVI "Record the complete output of a system"
+ ID_FILE_PLAY_RECORD_MNG "Record the video output of a system"
+ ID_VIEW_PICTURE_AREA "Show or hide the picture area"
+ ID_HELP_CONTENTS "Display help contents"
+ ID_HELP_WHATS_NEWUI "Recent changes"
+ ID_HELP_TROUBLE "Troubleshooting Documentation"
+ ID_HELP_RELEASE "MESS release notes"
+ ID_HELP_WHATS_NEW "What's new in MESS"
+ ID_HELP_CHEATS "How cheats work"
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ ID_CONTEXT_RESET_PLAYSTATS "Reset play stats for selected item"
+ ID_FOLDER_PROPERTIES "Display folder properties"
+ ID_FOLDER_AUDIT "Audit items in this folder"
+ ID_FILE_LOADSTATE "Run a system starting with the given savestate"
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ ID_VIEW_TAB_CABINET "Select Cabinet tab"
+ ID_VIEW_TAB_MARQUEE "Select Marquee tab"
+ ID_VIEW_TAB_TITLE "Select Title tab"
+ ID_VIEW_TAB_CONTROL_PANEL "Select Control panel tab"
+ ID_VIEW_TAB_HISTORY "Select History tab"
+ ID_OPTIONS_BG "Set the background image"
+ ID_TOGGLE_TAB_SCREENSHOT "Enable the screenshot tab"
+ ID_TOGGLE_TAB_FLYER "Enable the flyer tab"
+ ID_TOGGLE_TAB_CABINET "Enable the cabinet tab"
+ ID_TOGGLE_TAB_MARQUEE "Enable the marquee tab"
+ ID_TOGGLE_TAB_TITLE "Enable the title tab"
+ ID_TOGGLE_TAB_CONTROL_PANEL "Enable the control panel tab"
+ ID_TOGGLE_TAB_PCB "Enable the PCB tab"
+ ID_TOGGLE_TAB_HISTORY "Enable the history tab"
+ ID_VIEW_FULLSCREEN "Toggle Fullscreen mode"
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ ID_CUSTOMIZE_FIELDS "Customise which columns are used in the system list"
+ ID_GAME_PROPERTIES "Display the properties of the selected item"
+ ID_VIEW_PAGETAB "Show or hide the tabs in the picture area"
+ ID_VIEW_FOLDERS "Show or hide the folder list"
+ ID_VIEW_TOOLBARS "Show or hide the toolbar"
+ ID_VIEW_STATUS "Show or hide the status bar"
+ ID_CONTEXT_FILTERS "Allows filtering out systems from a folder"
+ ID_CONTEXT_RENAME_CUSTOM "Rename this folder"
+ ID_CONTEXT_ADD_CUSTOM "Add selected item to custom folder"
+ ID_CONTEXT_REMOVE_CUSTOM "Remove selected item from this folder"
+ ID_GAME_AUDIT "Audit the selected item"
+ ID_CONTEXT_SELECT_RANDOM "Randomly select a system."
+ ID_VIEW_TAB_SCREENSHOT "Select Screenshot tab"
+ ID_VIEW_TAB_FLYER "Select Flyer tab"
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ ID_VIEW_BYGAME "Sort items by system"
+ ID_VIEW_BYDIRECTORY "Sort items by directories"
+ ID_VIEW_BYMANUFACTURER "Sort items by manufacturer"
+ ID_VIEW_BYYEAR "Sort items by year"
+ ID_VIEW_BYTYPE "Sort items by type"
+ ID_VIEW_BYTIMESPLAYED "Sort by number of plays"
+ ID_VIEW_LINEUPICONS "Arranges icons in a grid"
+ ID_UPDATE_GAMELIST "Refresh system list"
+ ID_SORT_ASCENDING "Sort column in ascending (A-Z) order"
+ ID_SORT_DESCENDING "Sort column in descending (Z-A) order"
+END
+
+#endif // English (USA) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+#include "messvers.rc" // Version block
+
+
+/////////////////////////////////////////////////////////////////////////////
+#endif // not APSTUDIO_INVOKED
+
diff --git a/src/osd/winui/mkhelp.cpp b/src/osd/winui/mkhelp.cpp
new file mode 100644
index 00000000000..115ded9ef8d
--- /dev/null
+++ b/src/osd/winui/mkhelp.cpp
@@ -0,0 +1,152 @@
+// For licensing and usage information, read docs/winui_license.txt
+//****************************************************************************
+
+/***************************************************************************
+
+ mkhelp.c
+
+ Simple resource HIDC to Help entry tool.
+
+ MSH - 20070815
+
+***************************************************************************/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include "osdcore.h"
+
+
+static int compare( const void *arg1, const void *arg2 );
+static void extract_help_ids(const char *buffer, FILE *fp);
+
+/*-------------------------------------------------
+ main - primary entry point
+-------------------------------------------------*/
+
+int main(int argc, char *argv[])
+{
+ const char *resourcefile, *varname, *type;
+ FILE *src, *dst;
+ char *buffer;
+ int bytes = 0;
+
+ varname = "dwHelpIDs";
+ type = "DWORD";
+
+ /* needs at least three arguments */
+ if (argc < 1)
+ {
+ fprintf(stderr,
+ "Usage:\n"
+ " mkhelp <resource.rc>\n"
+ "\n"
+ "The default <type> is DWORD, with an assumed NULL terminator pair\n"
+ );
+ return 0;
+ }
+
+ /* extract arguments */
+ resourcefile = argv[1];
+
+ /* open source file */
+ src = fopen(resourcefile, "rb");
+ if (src == NULL)
+ {
+ fprintf(stderr, "Unable to open resource file '%s'\n", resourcefile);
+ return 1;
+ }
+
+ /* determine file size */
+ fseek(src, 0, SEEK_END);
+ bytes = ftell(src);
+ fseek(src, 0, SEEK_SET);
+
+ /* allocate memory */
+ buffer = (char*)malloc(bytes + 1);
+ if (buffer == NULL)
+ {
+ fclose(src);
+ fprintf(stderr, "Out of memory allocating %d byte buffer\n", bytes);
+ return 1;
+ }
+
+ /* read the source file */
+ fread(buffer, 1, bytes, src);
+ buffer[bytes] = 0;
+ fclose(src);
+
+ /* open dest file */
+ dst = stdout;
+
+ fprintf(dst,"/*\n * Help ID array - Generated by mkhelp\n */\n\n");
+ fprintf(dst, "#include <windows.h>\n#include \"resource.h\"\n#include \"resource.hm\"\n\n");
+ /* write the initial header */
+ fprintf(dst, "extern const %s %s[] =\n{\n", type, varname);
+
+ extract_help_ids(buffer, dst);
+
+ fprintf(dst, "\n};\n");
+
+ /* close the files */
+ free(buffer);
+ return 0;
+}
+
+static int compare( const void *arg1, const void *arg2 )
+{
+ /* Compare all of both strings: */
+ return _stricmp( * ( char** ) arg1, * ( char** ) arg2 );
+}
+
+static void extract_help_ids(const char *buffer, FILE *fp)
+{
+ const char *ptr = buffer;
+ char **help_ids = (char **)malloc(500 * sizeof(char *));
+ int num_help_id = 0;
+ int i;
+
+ //memset(help_ids, '\0', sizeof(*help_ids));
+ memset(help_ids, 0, 500);
+
+ while(*ptr) {
+ if (strncmp("HIDC_", ptr, 5) == 0) {
+ char id_name[128];
+ char *end = id_name;
+ char *id;
+ memset(id_name, '\0', sizeof(id_name));
+ while (*ptr && *ptr != '\x0d' && *ptr != '\x0a' ) {
+ *end++ = *ptr++;
+ }
+ id = (char *)malloc(strlen(id_name));
+ memset(id, '\0', strlen(id_name));
+ memcpy(id, &id_name[1], strlen(&id_name[1]));
+ help_ids[num_help_id] = id;
+ num_help_id++;
+ } else {
+ ptr++;
+ }
+ }
+
+ /* Sort using Quicksort algorithm: */
+ qsort( (void *)help_ids, (size_t)num_help_id, sizeof( char * ), compare );
+
+ // Now print them out.
+ ptr = help_ids[0];
+ for (i = 0; i < num_help_id; i++) {
+ if (i > 0) {
+ if (strcmp(ptr, help_ids[i]) == 0) {
+ continue;
+ }
+ }
+ fprintf(fp, "\t%-30s,H%s,\n", help_ids[i], help_ids[i]);
+ ptr = help_ids[i];
+ }
+ fprintf(fp, "\t%-30i,%i\n", 0, 0);
+
+ // free our allocations.
+ for (i = 0; i < num_help_id; i++) {
+ free(help_ids[i]);
+ }
+ free (help_ids);
+}
+
diff --git a/src/osd/winui/mui_audit.cpp b/src/osd/winui/mui_audit.cpp
new file mode 100644
index 00000000000..c29368c0f64
--- /dev/null
+++ b/src/osd/winui/mui_audit.cpp
@@ -0,0 +1,482 @@
+// For licensing and usage information, read docs/winui_license.txt
+// MASTER
+//****************************************************************************
+
+ /***************************************************************************
+
+ mui_audit.c
+
+ Audit dialog
+
+***************************************************************************/
+
+// standard windows headers
+#include <windows.h>
+#include <windowsx.h>
+
+// standard C headers
+#include <tchar.h>
+
+// MAME/MAMEUI headers
+#include "winui.h"
+#include "winutf8.h"
+#include "audit.h"
+#include "resource.h"
+#include "mui_opts.h"
+#include "mui_util.h"
+#include "properties.h"
+#include <richedit.h>
+
+
+#ifdef _MSC_VER
+#define vsnprintf _vsnprintf
+#endif
+
+/***************************************************************************
+ function prototypes
+ ***************************************************************************/
+
+static DWORD WINAPI AuditThreadProc(LPVOID hDlg);
+static INT_PTR CALLBACK AuditWindowProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam);
+static void ProcessNextRom(void);
+static void ProcessNextSample(void);
+static void CLIB_DECL DetailsPrintf(const char *fmt, ...) ATTR_PRINTF(1,2);
+static const char * StatusString(int iStatus);
+
+/***************************************************************************
+ Internal variables
+ ***************************************************************************/
+
+#define MAX_AUDITBOX_TEXT 0x7FFFFFFE
+
+static volatile HWND hAudit;
+static volatile int rom_index = 0;
+static volatile int roms_correct = 0;
+static volatile int roms_incorrect = 0;
+static volatile int sample_index = 0;
+static volatile int samples_correct = 0;
+static volatile int samples_incorrect = 0;
+static volatile BOOL bPaused = FALSE;
+static volatile BOOL bCancel = FALSE;
+static int m_choice = 0;
+
+/***************************************************************************
+ External functions
+ ***************************************************************************/
+
+static int strcatprintf(std::string &str, const char *format, ...)
+{
+ va_list ap;
+ va_start(ap, format);
+ int retVal = strcatvprintf(str, format, ap);
+ va_end(ap);
+ return retVal;
+}
+
+void AuditDialog(HWND hParent, int choice)
+{
+ rom_index = 0;
+ roms_correct = -1; // ___empty must not be counted
+ roms_incorrect = 0;
+ sample_index = 0;
+ samples_correct = -1; // ___empty must not be counted
+ samples_incorrect = 0;
+ m_choice = choice;
+
+ //RS use Riched32.dll
+ HMODULE hModule = LoadLibrary(TEXT("Riched32.dll"));
+ if( hModule )
+ {
+ DialogBox(GetModuleHandle(NULL),MAKEINTRESOURCE(IDD_AUDIT),hParent,AuditWindowProc);
+ FreeLibrary( hModule );
+ hModule = NULL;
+ }
+ else
+ MessageBox(GetMainWindow(),TEXT("Unable to Load Riched32.dll"),TEXT("Error"), MB_OK | MB_ICONERROR);
+}
+
+void InitGameAudit(int gameIndex)
+{
+ rom_index = gameIndex;
+}
+
+const char * GetAuditString(int audit_result)
+{
+ switch (audit_result)
+ {
+ case media_auditor::CORRECT :
+ case media_auditor::BEST_AVAILABLE :
+ case media_auditor::NONE_NEEDED :
+ return "Yes";
+
+ case media_auditor::NOTFOUND :
+ case media_auditor::INCORRECT :
+ return "No";
+
+ default:
+ printf("unknown audit value %i\n",audit_result);
+ }
+
+ return "?";
+}
+
+BOOL IsAuditResultKnown(int audit_result)
+{
+ return TRUE;
+}
+
+BOOL IsAuditResultYes(int audit_result)
+{
+ return audit_result == media_auditor::CORRECT
+ || audit_result == media_auditor::BEST_AVAILABLE
+ || audit_result == media_auditor::NONE_NEEDED;
+}
+
+BOOL IsAuditResultNo(int audit_result)
+{
+ return audit_result == media_auditor::NOTFOUND
+ || audit_result == media_auditor::INCORRECT;
+}
+
+
+/***************************************************************************
+ Internal functions
+ ***************************************************************************/
+// Verifies the ROM set while calling SetRomAuditResults
+int MameUIVerifyRomSet(int game, bool choice)
+{
+ driver_enumerator enumerator(MameUIGlobal(), driver_list::driver(game));
+ enumerator.next();
+ media_auditor auditor(enumerator);
+ media_auditor::summary summary = auditor.audit_media(AUDIT_VALIDATE_FAST);
+
+ std::string summary_string;
+
+ if (summary == media_auditor::NOTFOUND)
+ {
+ if (m_choice < 2)
+ strcatprintf(summary_string, "%s: Romset NOT FOUND\n", driver_list::driver(game).name);
+ }
+ else
+ if (choice)
+ {
+ auditor.winui_summarize(driver_list::driver(game).name, &summary_string); // audit all games
+ }
+ else
+ {
+ std::ostringstream whatever;
+ auditor.summarize(driver_list::driver(game).name, &whatever); // audit one game
+ summary_string = whatever.str();
+ }
+
+ // output the summary of the audit
+ DetailsPrintf("%s", summary_string.c_str());
+
+ SetRomAuditResults(game, summary);
+ return summary;
+}
+
+// Verifies the Sample set while calling SetSampleAuditResults
+int MameUIVerifySampleSet(int game)
+{
+ driver_enumerator enumerator(MameUIGlobal(), driver_list::driver(game));
+ enumerator.next();
+ media_auditor auditor(enumerator);
+ media_auditor::summary summary = auditor.audit_samples();
+
+ std::string summary_string;
+
+ if (summary == media_auditor::NOTFOUND)
+ strcatprintf(summary_string, "%s: Sampleset NOT FOUND\n", driver_list::driver(game).name);
+ else
+ {
+ std::ostringstream whatever;
+ auditor.summarize(driver_list::driver(game).name, &whatever);
+ summary_string = whatever.str();
+ }
+
+ // output the summary of the audit
+ DetailsPrintf("%s", summary_string.c_str());
+
+ SetSampleAuditResults(game, summary);
+ return summary;
+}
+
+static DWORD WINAPI AuditThreadProc(LPVOID hDlg)
+{
+ char buffer[200];
+
+ while (!bCancel)
+ {
+ if (!bPaused)
+ {
+ if (rom_index != -1)
+ {
+ sprintf(buffer, "Checking Set %s - %s", driver_list::driver(rom_index).name, driver_list::driver(rom_index).type.fullname());
+ win_set_window_text_utf8((HWND)hDlg, buffer);
+ ProcessNextRom();
+ }
+ else
+ if (sample_index != -1)
+ {
+ sprintf(buffer, "Checking Set %s - %s", driver_list::driver(sample_index).name, driver_list::driver(sample_index).type.fullname());
+ win_set_window_text_utf8((HWND)hDlg, buffer);
+ ProcessNextSample();
+ }
+ else
+ {
+ win_set_window_text_utf8((HWND)hDlg, "File Audit");
+ EnableWindow(GetDlgItem((HWND)hDlg, IDPAUSE), FALSE);
+ ExitThread(1);
+ }
+ }
+ }
+ return 0;
+}
+
+static INT_PTR CALLBACK AuditWindowProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam)
+{
+ static HANDLE hThread;
+ static DWORD dwThreadID = 0;
+ HWND hEdit;
+
+ switch (Msg)
+ {
+ case WM_INITDIALOG:
+ hAudit = hDlg;
+ //RS 20030613 Set Bkg of RichEdit Ctrl
+ hEdit = GetDlgItem(hAudit, IDC_AUDIT_DETAILS);
+ if (hEdit)
+ {
+ SendMessage( hEdit, EM_SETBKGNDCOLOR, FALSE, GetSysColor(COLOR_BTNFACE) );
+ // MSH - Set to max
+ SendMessage( hEdit, EM_SETLIMITTEXT, MAX_AUDITBOX_TEXT, 0 );
+ }
+
+ SendDlgItemMessage(hDlg, IDC_ROMS_PROGRESS, PBM_SETRANGE, 0, MAKELPARAM(0, driver_list::total()));
+ SendDlgItemMessage(hDlg, IDC_SAMPLES_PROGRESS, PBM_SETRANGE, 0, MAKELPARAM(0, driver_list::total()));
+ bPaused = false;
+ bCancel = false;
+ rom_index = 0;
+ hThread = CreateThread(NULL, 0, AuditThreadProc, hDlg, 0, &dwThreadID);
+ return 1;
+ case WM_COMMAND:
+ switch (LOWORD(wParam))
+ {
+ case IDCANCEL:
+ bPaused = false;
+ if (hThread)
+ {
+ bCancel = true;
+ DWORD dwExitCode = 0;
+ if (GetExitCodeThread(hThread, &dwExitCode) && (dwExitCode == STILL_ACTIVE))
+ {
+ PostMessage(hDlg, WM_COMMAND, wParam, lParam);
+ return 1;
+ }
+ CloseHandle(hThread);
+ }
+ EndDialog(hDlg,0);
+ m_choice = 0;
+ break;
+
+ case IDPAUSE:
+ if (bPaused)
+ {
+ SendDlgItemMessage(hAudit, IDPAUSE, WM_SETTEXT, 0, (LPARAM)TEXT("Pause"));
+ bPaused = false;
+ }
+ else
+ {
+ SendDlgItemMessage(hAudit, IDPAUSE, WM_SETTEXT, 0, (LPARAM)TEXT("Continue"));
+ bPaused = true;
+ }
+ break;
+ }
+ return 1;
+ }
+ return 0;
+}
+
+/* Callback for the Audit property sheet */
+INT_PTR CALLBACK GameAuditDialogProc(HWND hDlg,UINT Msg,WPARAM wParam,LPARAM lParam)
+{
+ switch (Msg)
+ {
+ case WM_INITDIALOG:
+ FlushFileCaches();
+ hAudit = hDlg;
+ win_set_window_text_utf8(GetDlgItem(hDlg, IDC_PROP_TITLE), GameInfoTitle(OPTIONS_GAME, rom_index));
+ SetTimer(hDlg, 0, 1, NULL);
+ return 1;
+
+ case WM_TIMER:
+ KillTimer(hDlg, 0);
+ {
+ int iStatus;
+ LPCSTR lpStatus;
+
+ iStatus = MameUIVerifyRomSet(rom_index, 0);
+ lpStatus = DriverUsesRoms(rom_index) ? StatusString(iStatus) : "None required";
+ win_set_window_text_utf8(GetDlgItem(hDlg, IDC_PROP_ROMS), lpStatus);
+
+ if (DriverUsesSamples(rom_index))
+ {
+ iStatus = MameUIVerifySampleSet(rom_index);
+ lpStatus = StatusString(iStatus);
+ }
+ else
+ {
+ lpStatus = "None Required";
+ }
+
+ win_set_window_text_utf8(GetDlgItem(hDlg, IDC_PROP_SAMPLES), lpStatus);
+ }
+ ShowWindow(hDlg, SW_SHOW);
+ break;
+ }
+ return 0;
+}
+
+static void ProcessNextRom()
+{
+ int retval = 0;
+ TCHAR buffer[200];
+
+ retval = MameUIVerifyRomSet(rom_index, 1);
+ switch (retval)
+ {
+ case media_auditor::BEST_AVAILABLE: /* correct, incorrect or separate count? */
+ case media_auditor::CORRECT:
+ case media_auditor::NONE_NEEDED:
+ roms_correct++;
+ _stprintf(buffer, TEXT("%i"), roms_correct);
+ SendDlgItemMessage(hAudit, IDC_ROMS_CORRECT, WM_SETTEXT, 0, (LPARAM)buffer);
+ _stprintf(buffer, TEXT("%i"), roms_correct + roms_incorrect);
+ SendDlgItemMessage(hAudit, IDC_ROMS_TOTAL, WM_SETTEXT, 0, (LPARAM)buffer);
+ break;
+
+ case media_auditor::NOTFOUND:
+ case media_auditor::INCORRECT:
+ roms_incorrect++;
+ _stprintf(buffer, TEXT("%i"), roms_incorrect);
+ SendDlgItemMessage(hAudit, IDC_ROMS_INCORRECT, WM_SETTEXT, 0, (LPARAM)buffer);
+ _stprintf(buffer, TEXT("%i"), roms_correct + roms_incorrect);
+ SendDlgItemMessage(hAudit, IDC_ROMS_TOTAL, WM_SETTEXT, 0, (LPARAM)buffer);
+ break;
+ }
+
+ rom_index++;
+ SendDlgItemMessage(hAudit, IDC_ROMS_PROGRESS, PBM_SETPOS, rom_index, 0);
+
+ if (rom_index == driver_list::total())
+ {
+ sample_index = 0;
+ rom_index = -1;
+ }
+}
+
+static void ProcessNextSample()
+{
+ int retval = 0;
+ TCHAR buffer[200];
+
+ retval = MameUIVerifySampleSet(sample_index);
+
+ switch (retval)
+ {
+ case media_auditor::NOTFOUND:
+ case media_auditor::INCORRECT:
+ if (DriverUsesSamples(sample_index))
+ {
+ samples_incorrect++;
+ _stprintf(buffer, TEXT("%i"), samples_incorrect);
+ SendDlgItemMessage(hAudit, IDC_SAMPLES_INCORRECT, WM_SETTEXT, 0, (LPARAM)buffer);
+ _stprintf(buffer, TEXT("%i"), samples_correct + samples_incorrect);
+ SendDlgItemMessage(hAudit, IDC_SAMPLES_TOTAL, WM_SETTEXT, 0, (LPARAM)buffer);
+ break;
+ }
+ default:
+ if ((DriverUsesSamples(sample_index)) || (m_choice == 1))
+ {
+ samples_correct++;
+ _stprintf(buffer, TEXT("%i"), samples_correct);
+ SendDlgItemMessage(hAudit, IDC_SAMPLES_CORRECT, WM_SETTEXT, 0, (LPARAM)buffer);
+ _stprintf(buffer, TEXT("%i"), samples_correct + samples_incorrect);
+ SendDlgItemMessage(hAudit, IDC_SAMPLES_TOTAL, WM_SETTEXT, 0, (LPARAM)buffer);
+ break;
+ }
+ }
+
+ sample_index++;
+ SendDlgItemMessage(hAudit, IDC_SAMPLES_PROGRESS, PBM_SETPOS, sample_index, 0);
+
+ if (sample_index == driver_list::total())
+ {
+ DetailsPrintf("Audit complete.\n");
+ SendDlgItemMessage(hAudit, IDCANCEL, WM_SETTEXT, 0, (LPARAM)TEXT("Close"));
+ sample_index = -1;
+ }
+}
+
+static void CLIB_DECL DetailsPrintf(const char *fmt, ...)
+{
+ //RS 20030613 Different Ids for Property Page and Dialog
+ // so see which one's currently instantiated
+ HWND hEdit = GetDlgItem(hAudit, IDC_AUDIT_DETAILS);
+ if (hEdit == NULL)
+ hEdit = GetDlgItem(hAudit, IDC_AUDIT_DETAILS_PROP);
+
+ if (hEdit == NULL)
+ {
+ // Auditing via F5 - no window to display the results
+ //printf("audit detailsprintf() can't find any audit control\n");
+ return;
+ }
+
+ va_list marker;
+ va_start(marker, fmt);
+ char buffer[8000];
+ vsprintf(buffer, fmt, marker);
+ va_end(marker);
+
+ TCHAR* t_s = ui_wstring_from_utf8(ConvertToWindowsNewlines(buffer));
+ if( !t_s || _tcscmp(TEXT(""), t_s) == 0)
+ return;
+
+ int textLength = Edit_GetTextLength(hEdit);
+ Edit_SetSel(hEdit, textLength, textLength);
+ SendMessage( hEdit, EM_REPLACESEL, false, (WPARAM)(LPCTSTR)win_tstring_strdup(t_s) );
+
+ free(t_s);
+}
+
+static const char * StatusString(int iStatus)
+{
+ static const char *ptr = "Unknown";
+
+ switch (iStatus)
+ {
+ case media_auditor::CORRECT:
+ ptr = "Passed";
+ break;
+
+ case media_auditor::BEST_AVAILABLE:
+ ptr = "Best available";
+ break;
+
+ case media_auditor::NONE_NEEDED:
+ ptr = "None Required";
+ break;
+
+ case media_auditor::NOTFOUND:
+ ptr = "Not found";
+ break;
+
+ case media_auditor::INCORRECT:
+ ptr = "Failed";
+ break;
+ }
+
+ return ptr;
+}
diff --git a/src/osd/winui/mui_audit.h b/src/osd/winui/mui_audit.h
new file mode 100644
index 00000000000..b95e1684ce1
--- /dev/null
+++ b/src/osd/winui/mui_audit.h
@@ -0,0 +1,21 @@
+// For licensing and usage information, read docs/winui_license.txt
+//****************************************************************************
+
+#ifndef MUI_AUDIT_H
+#define MUI_AUDIT_H
+
+void AuditDialog(HWND hParent, int choice);
+
+// For property sheet Game Audit tab
+void InitGameAudit(int gameIndex);
+INT_PTR CALLBACK GameAuditDialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam);
+
+int MameUIVerifyRomSet(int game, bool choice);
+int MameUIVerifySampleSet(int game);
+
+const char * GetAuditString(int audit_result);
+BOOL IsAuditResultKnown(int audit_result);
+BOOL IsAuditResultYes(int audit_result);
+BOOL IsAuditResultNo(int audit_result);
+
+#endif
diff --git a/src/osd/winui/mui_main.cpp b/src/osd/winui/mui_main.cpp
new file mode 100644
index 00000000000..31ba3db2e38
--- /dev/null
+++ b/src/osd/winui/mui_main.cpp
@@ -0,0 +1,22 @@
+// For licensing and usage information, read docs/winui_license.txt
+//****************************************************************************
+#ifndef WINUI
+#define WINUI
+#endif
+
+// import the main() from MAME, but rename it so we can call it indirectly
+#undef main
+#undef wmain
+#define main mame_main
+#define wmain mame_main
+#include "windows/main.cpp"
+#undef main
+#undef wmain
+
+#include "winui.h"
+
+
+int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nCmdShow)
+{
+ return MameUIMain(hInstance, lpCmdLine, nCmdShow);
+}
diff --git a/src/osd/winui/mui_opts.cpp b/src/osd/winui/mui_opts.cpp
new file mode 100644
index 00000000000..e5383ded001
--- /dev/null
+++ b/src/osd/winui/mui_opts.cpp
@@ -0,0 +1,2638 @@
+// For licensing and usage information, read docs/winui_license.txt
+// MASTER
+//****************************************************************************
+
+ /***************************************************************************
+
+ mui_opts.cpp
+
+ Stores global options and per-game options;
+
+***************************************************************************/
+
+// standard windows headers
+#include <windows.h>
+#include <windowsx.h>
+
+// standard C headers
+#include <tchar.h>
+
+// MAME/MAMEUI headers
+#include "emu.h"
+#include "ui/moptions.h"
+#include "ui/info.h"
+#include "drivenum.h"
+#include "winui.h"
+#include "mui_opts.h"
+#include <fstream> // for *_opts.h (below)
+#include "game_opts.h"
+#include "ui_opts.h"
+//#include "ini_opts.h" // not ready yet
+#include "mui_util.h"
+#include "treeview.h"
+#include "splitters.h"
+
+#ifdef _MSC_VER
+#define snprintf _snprintf
+#endif
+
+/***************************************************************************
+ Internal function prototypes
+ ***************************************************************************/
+
+// static void LoadFolderFilter(int folder_index,int filters);
+
+static void LoadSettingsFile(windows_options &opts, const char *filename);
+static void SaveSettingsFile(windows_options &opts, const char *filename);
+static void LoadSettingsFile(ui_options &opts, const char *filename); // mewui
+
+static string CusColorEncodeString(const COLORREF *value);
+static void CusColorDecodeString(string ss, COLORREF *value);
+
+static string SplitterEncodeString(const int *value);
+static void SplitterDecodeString(string ss, int *value);
+
+static string FontEncodeString(const LOGFONT *f);
+static void FontDecodeString(string ss, LOGFONT *f);
+
+static string TabFlagsEncodeString(int data);
+static void TabFlagsDecodeString(string ss, int *data);
+
+static DWORD DecodeFolderFlags(string ss);
+static const char * EncodeFolderFlags(DWORD value);
+
+static string ColumnEncodeStringWithCount(const int *value, int count);
+static void ColumnDecodeStringWithCount(string ss, int *value, int count);
+
+static void ResetToDefaults(windows_options &opts, int priority);
+
+
+
+/***************************************************************************
+ Internal defines
+ ***************************************************************************/
+
+#define GAMEINFO_INI_FILENAME MAMENAME "_g.ini"
+#define MEWUI_FILENAME "ini\\ui.ini"
+
+
+
+/***************************************************************************
+ Internal structures
+ ***************************************************************************/
+
+ /***************************************************************************
+ Internal variables
+ ***************************************************************************/
+
+static emu_options mameopts; // core options
+static ui_options mewui; // ui.ini
+static winui_ui_options settings; // mameui.ini
+static windows_options global; // Global 'default' options
+static winui_game_options game_opts; // game stats
+
+
+// Screen shot Page tab control text
+// these must match the order of the options flags in options.h
+// (TAB_...)
+static const char *const image_tabs_long_name[MAX_TAB_TYPES] =
+{
+ "Artwork",
+ "Boss",
+ "Cabinet",
+ "Control Panel",
+ "Cover",
+ "End",
+ "Flyer",
+ "Game Over",
+ "How To",
+ "Logo",
+ "Marquee",
+ "PCB",
+ "Scores",
+ "Select",
+ "Snapshot",
+ "Title",
+ "Versus",
+ "History"
+};
+
+static const char *const image_tabs_short_name[MAX_TAB_TYPES] =
+{
+ "artpreview",
+ "boss",
+ "cabinet",
+ "cpanel",
+ "cover",
+ "end",
+ "flyer",
+ "gameover",
+ "howto",
+ "logo",
+ "marquee",
+ "pcb",
+ "scores",
+ "select",
+ "snap",
+ "title",
+ "versus",
+ "history"
+};
+
+
+/***************************************************************************
+ External functions
+ ***************************************************************************/
+void SetSystemName(windows_options &opts, OPTIONS_TYPE opt_type, int driver_index)
+{
+ if (driver_index >= 0)
+ mameopts.set_system_name(driver_list::driver(driver_index).name);
+}
+
+string GetGameName(uint32_t driver_index)
+{
+ if (driver_index < driver_list::total())
+ return driver_list::driver(driver_index).name;
+ else
+ return "0";
+}
+
+BOOL OptionsInit()
+{
+ // set up global options
+ printf("OptionsInit: About to load %s\n",UI_INI_FILENAME);fflush(stdout);
+ settings.load_file(UI_INI_FILENAME); // parse MAMEUI.ini
+ printf("OptionsInit: About to load %s\n",MEWUI_FILENAME);fflush(stdout);
+ LoadSettingsFile(mewui, MEWUI_FILENAME); // parse UI.INI
+ printf("OptionsInit: About to load %s\n",GAMEINFO_INI_FILENAME);fflush(stdout);
+ game_opts.load_file(GAMEINFO_INI_FILENAME); // parse MAME_g.ini
+ printf("OptionsInit: About to load Global Options\n");fflush(stdout);
+ load_options(global, OPTIONS_GLOBAL, GLOBAL_OPTIONS, 0); // parse MAME.INI
+ printf("OptionsInit: Finished\n");fflush(stdout);
+ return TRUE;
+}
+
+windows_options & MameUIGlobal(void)
+{
+ return global;
+}
+
+// Restore ui settings to factory
+void ResetGUI(void)
+{
+ settings.reset_and_save(UI_INI_FILENAME);
+}
+
+const char * GetImageTabLongName(int tab_index)
+{
+ return image_tabs_long_name[tab_index];
+}
+
+const char * GetImageTabShortName(int tab_index)
+{
+ return image_tabs_short_name[tab_index];
+}
+
+//============================================================
+// OPTIONS WRAPPERS
+//============================================================
+
+static COLORREF options_get_color(const char *name)
+{
+ unsigned int r = 0, g = 0, b = 0;
+ COLORREF value;
+ const string val = settings.getter(name);
+
+ if (sscanf(val.c_str(), "%u,%u,%u", &r, &g, &b) == 3)
+ value = RGB(r,g,b);
+ else
+ value = (COLORREF) - 1;
+ return value;
+}
+
+static void options_set_color(const char *name, COLORREF value)
+{
+ char value_str[32];
+
+ if (value == (COLORREF) -1)
+ snprintf(value_str, ARRAY_LENGTH(value_str), "%d", (int) value);
+ else
+ snprintf(value_str, ARRAY_LENGTH(value_str), "%d,%d,%d", (((int) value) >> 0) & 0xFF, (((int) value) >> 8) & 0xFF, (((int) value) >> 16) & 0xFF);
+
+ settings.setter(name, string(value_str));
+}
+
+static COLORREF options_get_color_default(const char *name, int default_color)
+{
+ COLORREF value = options_get_color(name);
+ if (value == (COLORREF) -1)
+ value = GetSysColor(default_color);
+
+ return value;
+}
+
+static void options_set_color_default(const char *name, COLORREF value, int default_color)
+{
+ if (value == GetSysColor(default_color))
+ options_set_color(name, (COLORREF) -1);
+ else
+ options_set_color(name, value);
+}
+
+static input_seq *options_get_input_seq(const char *name)
+{
+/*
+ static input_seq seq;
+ string val = settings.getter(name);
+ input_seq_from_tokens(NULL, seq_string.c_str(), &seq); // HACK
+ return &seq;*/
+ return NULL;
+}
+
+
+
+//============================================================
+// OPTIONS CALLS
+//============================================================
+
+// ***************************************************************** MAMEUI.INI settings **************************************************************************
+void SetViewMode(int val)
+{
+ settings.setter(MUIOPTION_LIST_MODE, val);
+}
+
+int GetViewMode(void)
+{
+ return settings.int_value(MUIOPTION_LIST_MODE);
+}
+
+void SetGameCheck(BOOL game_check)
+{
+ settings.setter(MUIOPTION_CHECK_GAME, game_check);
+}
+
+BOOL GetGameCheck(void)
+{
+ return settings.bool_value(MUIOPTION_CHECK_GAME);
+}
+
+void SetJoyGUI(BOOL use_joygui)
+{
+ settings.setter(MUIOPTION_JOYSTICK_IN_INTERFACE, use_joygui);
+}
+
+BOOL GetJoyGUI(void)
+{
+ return settings.bool_value( MUIOPTION_JOYSTICK_IN_INTERFACE);
+}
+
+void SetKeyGUI(BOOL use_keygui)
+{
+ settings.setter(MUIOPTION_KEYBOARD_IN_INTERFACE, use_keygui);
+}
+
+BOOL GetKeyGUI(void)
+{
+ return settings.bool_value(MUIOPTION_KEYBOARD_IN_INTERFACE);
+}
+
+void SetCycleScreenshot(int cycle_screenshot)
+{
+ settings.setter(MUIOPTION_CYCLE_SCREENSHOT, cycle_screenshot);
+}
+
+int GetCycleScreenshot(void)
+{
+ return settings.int_value(MUIOPTION_CYCLE_SCREENSHOT);
+}
+
+void SetStretchScreenShotLarger(BOOL stretch)
+{
+ settings.setter(MUIOPTION_STRETCH_SCREENSHOT_LARGER, stretch);
+}
+
+BOOL GetStretchScreenShotLarger(void)
+{
+ return settings.bool_value(MUIOPTION_STRETCH_SCREENSHOT_LARGER);
+}
+
+void SetScreenshotBorderSize(int size)
+{
+ settings.setter(MUIOPTION_SCREENSHOT_BORDER_SIZE, size);
+}
+
+int GetScreenshotBorderSize(void)
+{
+ return settings.int_value(MUIOPTION_SCREENSHOT_BORDER_SIZE);
+}
+
+void SetScreenshotBorderColor(COLORREF uColor)
+{
+ options_set_color_default(MUIOPTION_SCREENSHOT_BORDER_COLOR, uColor, COLOR_3DFACE);
+}
+
+COLORREF GetScreenshotBorderColor(void)
+{
+ return options_get_color_default(MUIOPTION_SCREENSHOT_BORDER_COLOR, COLOR_3DFACE);
+}
+
+void SetFilterInherit(BOOL inherit)
+{
+ settings.setter(MUIOPTION_INHERIT_FILTER, inherit);
+}
+
+BOOL GetFilterInherit(void)
+{
+ return settings.bool_value( MUIOPTION_INHERIT_FILTER);
+}
+
+void SetOffsetClones(BOOL offset)
+{
+ settings.setter(MUIOPTION_OFFSET_CLONES, offset);
+}
+
+BOOL GetOffsetClones(void)
+{
+ return settings.bool_value( MUIOPTION_OFFSET_CLONES);
+}
+
+void SetSavedFolderID(UINT val)
+{
+ settings.setter(MUIOPTION_DEFAULT_FOLDER_ID, (int) val);
+}
+
+UINT GetSavedFolderID(void)
+{
+ return (UINT) settings.int_value(MUIOPTION_DEFAULT_FOLDER_ID);
+}
+
+void SetOverrideRedX(BOOL val)
+{
+ settings.setter(MUIOPTION_OVERRIDE_REDX, val);
+}
+
+BOOL GetOverrideRedX(void)
+{
+ return settings.bool_value(MUIOPTION_OVERRIDE_REDX);
+}
+
+static LPBITS GetShowFolderFlags(LPBITS bits)
+{
+ SetAllBits(bits, TRUE);
+
+ string val = settings.getter(MUIOPTION_HIDE_FOLDERS);
+ if (val.empty())
+ return bits;
+
+ extern const FOLDERDATA g_folderData[];
+ char s[val.size()+1];
+ snprintf(s, val.size()+1, "%s", val.c_str());
+ char *token = strtok(s, ",");
+ int j;
+ while (token)
+ {
+ for (j=0; g_folderData[j].m_lpTitle; j++)
+ {
+ if (strcmp(g_folderData[j].short_name,token) == 0)
+ {
+ ClearBit(bits, g_folderData[j].m_nFolderId);
+ break;
+ }
+ }
+ token = strtok(NULL,",");
+ }
+ return bits;
+}
+
+BOOL GetShowFolder(int folder)
+{
+ LPBITS show_folder_flags = NewBits(MAX_FOLDERS);
+ show_folder_flags = GetShowFolderFlags(show_folder_flags);
+ BOOL result = TestBit(show_folder_flags, folder);
+ DeleteBits(show_folder_flags);
+ return result;
+}
+
+void SetShowFolder(int folder, BOOL show)
+{
+ LPBITS show_folder_flags = NewBits(MAX_FOLDERS);
+ int i = 0, j = 0;
+ int num_saved = 0;
+ string str;
+ extern const FOLDERDATA g_folderData[];
+
+ show_folder_flags = GetShowFolderFlags(show_folder_flags);
+
+ if (show)
+ SetBit(show_folder_flags, folder);
+ else
+ ClearBit(show_folder_flags, folder);
+
+ // we save the ones that are NOT displayed, so we can add new ones
+ // and upgraders will see them
+ for (i=0; i<MAX_FOLDERS; i++)
+ {
+ if (TestBit(show_folder_flags, i) == FALSE)
+ {
+ if (num_saved != 0)
+ str.append(",");
+
+ for (j=0; g_folderData[j].m_lpTitle; j++)
+ {
+ if (g_folderData[j].m_nFolderId == i)
+ {
+ str.append(g_folderData[j].short_name);
+ num_saved++;
+ break;
+ }
+ }
+ }
+ }
+ settings.setter(MUIOPTION_HIDE_FOLDERS, str);
+ DeleteBits(show_folder_flags);
+}
+
+void SetShowStatusBar(BOOL val)
+{
+ settings.setter(MUIOPTION_SHOW_STATUS_BAR, val);
+}
+
+BOOL GetShowStatusBar(void)
+{
+ return settings.bool_value( MUIOPTION_SHOW_STATUS_BAR);
+}
+
+void SetShowTabCtrl (BOOL val)
+{
+ settings.setter(MUIOPTION_SHOW_TABS, val);
+}
+
+BOOL GetShowTabCtrl (void)
+{
+ return settings.bool_value( MUIOPTION_SHOW_TABS);
+}
+
+void SetShowToolBar(BOOL val)
+{
+ settings.setter(MUIOPTION_SHOW_TOOLBAR, val);
+}
+
+BOOL GetShowToolBar(void)
+{
+ return settings.bool_value( MUIOPTION_SHOW_TOOLBAR);
+}
+
+void SetCurrentTab(int val)
+{
+ settings.setter(MUIOPTION_CURRENT_TAB, val);
+}
+
+int GetCurrentTab(void)
+{
+ return settings.int_value(MUIOPTION_CURRENT_TAB);
+}
+
+// Need int here in case no games were in the list at exit
+void SetDefaultGame(uint32_t val)
+{
+ settings.setter(MUIOPTION_DEFAULT_GAME, driver_list::driver(val).name);
+}
+
+uint32_t GetDefaultGame(void)
+{
+ string t = settings.getter(MUIOPTION_DEFAULT_GAME);
+ if (t.empty())
+ return 0;
+ int val = driver_list::find(t.c_str());
+ if (val < 0)
+ val = 0;
+ return val;
+}
+
+void SetWindowArea(const AREA *area)
+{
+ settings.setter(MUIOPTION_WINDOW_X, area->x);
+ settings.setter(MUIOPTION_WINDOW_Y, area->y);
+ settings.setter(MUIOPTION_WINDOW_WIDTH, area->width);
+ settings.setter(MUIOPTION_WINDOW_HEIGHT, area->height);
+}
+
+void GetWindowArea(AREA *area)
+{
+ area->x = settings.int_value(MUIOPTION_WINDOW_X);
+ area->y = settings.int_value(MUIOPTION_WINDOW_Y);
+ area->width = settings.int_value(MUIOPTION_WINDOW_WIDTH);
+ area->height = settings.int_value(MUIOPTION_WINDOW_HEIGHT);
+}
+
+void SetWindowState(UINT state)
+{
+ settings.setter(MUIOPTION_WINDOW_STATE, (int)state);
+}
+
+UINT GetWindowState(void)
+{
+ return settings.int_value(MUIOPTION_WINDOW_STATE);
+}
+
+void SetWindowPanes(int val)
+{
+ settings.setter(MUIOPTION_WINDOW_PANES, val & 15);
+}
+
+UINT GetWindowPanes(void)
+{
+ return settings.int_value(MUIOPTION_WINDOW_PANES) & 15;
+}
+
+void SetCustomColor(int iIndex, COLORREF uColor)
+{
+ if ((iIndex < 0) || (iIndex > 15))
+ return;
+
+ COLORREF custom_color[16];
+ CusColorDecodeString(settings.getter(MUIOPTION_CUSTOM_COLOR), custom_color);
+ custom_color[iIndex] = uColor;
+ settings.setter(MUIOPTION_CUSTOM_COLOR, CusColorEncodeString(custom_color));
+}
+
+COLORREF GetCustomColor(int iIndex)
+{
+ if ((iIndex < 0) || (iIndex > 15))
+ return (COLORREF)RGB(0,0,0);
+
+ COLORREF custom_color[16];
+
+ CusColorDecodeString(settings.getter(MUIOPTION_CUSTOM_COLOR), custom_color);
+
+ if (custom_color[iIndex] == (COLORREF)-1)
+ return (COLORREF)RGB(0,0,0);
+
+ return custom_color[iIndex];
+}
+
+void SetListFont(const LOGFONT *font)
+{
+ settings.setter(MUIOPTION_LIST_FONT, FontEncodeString(font));
+}
+
+void GetListFont(LOGFONT *font)
+{
+ FontDecodeString(settings.getter(MUIOPTION_LIST_FONT), font);
+}
+
+void SetListFontColor(COLORREF uColor)
+{
+ options_set_color_default(MUIOPTION_TEXT_COLOR, uColor, COLOR_WINDOWTEXT);
+}
+
+COLORREF GetListFontColor(void)
+{
+ return options_get_color_default(MUIOPTION_TEXT_COLOR, COLOR_WINDOWTEXT);
+}
+
+void SetListCloneColor(COLORREF uColor)
+{
+ options_set_color_default(MUIOPTION_CLONE_COLOR, uColor, COLOR_WINDOWTEXT);
+}
+
+COLORREF GetListCloneColor(void)
+{
+ return options_get_color_default(MUIOPTION_CLONE_COLOR, COLOR_WINDOWTEXT);
+}
+
+int GetShowTab(int tab)
+{
+ int show_tab_flags = 0;
+ TabFlagsDecodeString(settings.getter(MUIOPTION_HIDE_TABS), &show_tab_flags);
+ return (show_tab_flags & (1 << tab)) != 0;
+}
+
+void SetShowTab(int tab,BOOL show)
+{
+ int show_tab_flags = 0;
+ TabFlagsDecodeString(settings.getter(MUIOPTION_HIDE_TABS), &show_tab_flags);
+
+ if (show)
+ show_tab_flags |= 1 << tab;
+ else
+ show_tab_flags &= ~(1 << tab);
+
+ settings.setter(MUIOPTION_HIDE_TABS, TabFlagsEncodeString(show_tab_flags));
+}
+
+// don't delete the last one
+BOOL AllowedToSetShowTab(int tab,BOOL show)
+{
+ int show_tab_flags = 0;
+
+ if (show == TRUE)
+ return TRUE;
+
+ TabFlagsDecodeString(settings.getter(MUIOPTION_HIDE_TABS), &show_tab_flags);
+
+ show_tab_flags &= ~(1 << tab);
+ return show_tab_flags != 0;
+}
+
+int GetHistoryTab(void)
+{
+ return settings.int_value(MUIOPTION_HISTORY_TAB);
+}
+
+void SetHistoryTab(int tab, BOOL show)
+{
+ if (show)
+ settings.setter(MUIOPTION_HISTORY_TAB, tab);
+ else
+ settings.setter(MUIOPTION_HISTORY_TAB, TAB_NONE);
+}
+
+void SetColumnWidths(int width[])
+{
+ settings.setter(MUIOPTION_COLUMN_WIDTHS, ColumnEncodeStringWithCount(width, COLUMN_MAX));
+}
+
+void GetColumnWidths(int width[])
+{
+ ColumnDecodeStringWithCount(settings.getter(MUIOPTION_COLUMN_WIDTHS), width, COLUMN_MAX);
+}
+
+void SetSplitterPos(int splitterId, int pos)
+{
+ int *splitter;
+
+ if (splitterId < GetSplitterCount())
+ {
+ splitter = (int *) alloca(GetSplitterCount() * sizeof(*splitter));
+ SplitterDecodeString(settings.getter(MUIOPTION_SPLITTERS), splitter);
+ splitter[splitterId] = pos;
+ settings.setter(MUIOPTION_SPLITTERS, SplitterEncodeString(splitter));
+ }
+}
+
+int GetSplitterPos(int splitterId)
+{
+ int *splitter;
+ splitter = (int *) alloca(GetSplitterCount() * sizeof(*splitter));
+ SplitterDecodeString(settings.getter(MUIOPTION_SPLITTERS), splitter);
+
+ if (splitterId < GetSplitterCount())
+ return splitter[splitterId];
+
+ return -1; /* Error */
+}
+
+void SetColumnOrder(int order[])
+{
+ settings.setter(MUIOPTION_COLUMN_ORDER, ColumnEncodeStringWithCount(order, COLUMN_MAX));
+}
+
+void GetColumnOrder(int order[])
+{
+ ColumnDecodeStringWithCount(settings.getter(MUIOPTION_COLUMN_ORDER), order, COLUMN_MAX);
+}
+
+void SetColumnShown(int shown[])
+{
+ settings.setter(MUIOPTION_COLUMN_SHOWN, ColumnEncodeStringWithCount(shown, COLUMN_MAX));
+}
+
+void GetColumnShown(int shown[])
+{
+ ColumnDecodeStringWithCount(settings.getter(MUIOPTION_COLUMN_SHOWN), shown, COLUMN_MAX);
+}
+
+void SetSortColumn(int column)
+{
+ settings.setter(MUIOPTION_SORT_COLUMN, column);
+}
+
+int GetSortColumn(void)
+{
+ return settings.int_value(MUIOPTION_SORT_COLUMN);
+}
+
+void SetSortReverse(BOOL reverse)
+{
+ settings.setter(MUIOPTION_SORT_REVERSED, reverse);
+}
+
+BOOL GetSortReverse(void)
+{
+ return settings.bool_value( MUIOPTION_SORT_REVERSED);
+}
+
+const string GetIconsDir(void)
+{
+ string t = settings.getter(MUIOPTION_ICONS_DIRECTORY);
+ if (t.empty())
+ return "icons";
+ else
+ return settings.getter(MUIOPTION_ICONS_DIRECTORY);
+}
+
+void SetIconsDir(const char* path)
+{
+ settings.setter(MUIOPTION_ICONS_DIRECTORY, path);
+}
+
+const string GetBgDir (void)
+{
+ string t = settings.getter(MUIOPTION_BACKGROUND_DIRECTORY);
+ if (t.empty())
+ return "bkground\\bkground.png";
+ else
+ return settings.getter(MUIOPTION_BACKGROUND_DIRECTORY);
+}
+
+void SetBgDir (const char* path)
+{
+ settings.setter(MUIOPTION_BACKGROUND_DIRECTORY, path);
+}
+
+const string GetDatsDir(void)
+{
+ string t = settings.getter(MUIOPTION_DATS_DIRECTORY);
+ if (t.empty())
+ return "dats";
+ else
+ return settings.getter(MUIOPTION_DATS_DIRECTORY);
+ //return mewui.value(OPTION_HISTORY_PATH);
+}
+
+void SetDatsDir(const char *path)
+{
+ char t1[strlen(path)+1];
+ strcpy(t1, path);
+ settings.setter(MUIOPTION_DATS_DIRECTORY, path);
+ mewui.set_value(OPTION_HISTORY_PATH, t1, OPTION_PRIORITY_CMDLINE);
+}
+
+const string GetVideoDir(void)
+{
+ string t = settings.getter(MUIOPTION_VIDEO_DIRECTORY);
+ if (t.empty())
+ return "video";
+ else
+ return settings.getter(MUIOPTION_VIDEO_DIRECTORY);
+}
+
+void SetVideoDir(const char *path)
+{
+ settings.setter(MUIOPTION_VIDEO_DIRECTORY, path);
+}
+
+const string GetManualsDir(void)
+{
+ string t = settings.getter(MUIOPTION_MANUALS_DIRECTORY);
+ if (t.empty())
+ return "manuals";
+ else
+ return settings.getter(MUIOPTION_MANUALS_DIRECTORY);
+}
+
+void SetManualsDir(const char *path)
+{
+ settings.setter(MUIOPTION_MANUALS_DIRECTORY, path);
+}
+
+// ***************************************************************** MAME.INI settings **************************************************************************
+const char* GetLanguageUI(void)
+{
+ return global.value(OPTION_LANGUAGE);
+}
+
+bool GetEnablePlugins(void)
+{
+ return global.bool_value(OPTION_PLUGINS);
+}
+
+const char* GetPlugins(void)
+{
+ return global.value(OPTION_PLUGIN);
+}
+
+const string GetRomDirs(void)
+{
+ const char* t = global.value(OPTION_MEDIAPATH);
+ if (t)
+ return string(global.value(OPTION_MEDIAPATH));
+ else
+ return "roms";
+}
+
+void SetRomDirs(const char* paths)
+{
+ global.set_value(OPTION_MEDIAPATH, paths, OPTION_PRIORITY_CMDLINE);
+}
+
+const string GetHashDirs(void)
+{
+ const char* t = global.value(OPTION_HASHPATH);
+ if (t)
+ return string(global.value(OPTION_HASHPATH));
+ else
+ return "hash";
+}
+
+void SetHashDirs(const char* paths)
+{
+ global.set_value(OPTION_HASHPATH, paths, OPTION_PRIORITY_CMDLINE);
+}
+
+const string GetSampleDirs(void)
+{
+ const char* t = global.value(OPTION_SAMPLEPATH);
+ if (t)
+ return string(global.value(OPTION_SAMPLEPATH));
+ else
+ return "samples";
+}
+
+void SetSampleDirs(const char* paths)
+{
+ global.set_value(OPTION_SAMPLEPATH, paths, OPTION_PRIORITY_CMDLINE);
+}
+
+const char * GetIniDir(void)
+{
+ const char *ini_dir;
+// const char *s;
+
+// ini_dir = global.value(OPTION_INIPATH);
+// while((s = strchr(ini_dir, ';')) != NULL)
+// {
+// ini_dir = s + 1;
+// }
+ ini_dir = "ini\0";
+ return ini_dir;
+
+}
+
+void SetIniDir(const char *path)
+{
+ global.set_value(OPTION_INIPATH, path, OPTION_PRIORITY_CMDLINE);
+}
+
+const string GetCtrlrDir(void)
+{
+ const char* t = global.value(OPTION_CTRLRPATH);
+ if (t)
+ return string(global.value(OPTION_CTRLRPATH));
+ else
+ return "ctrlr";
+}
+
+void SetCtrlrDir(const char* path)
+{
+ global.set_value(OPTION_CTRLRPATH, path, OPTION_PRIORITY_CMDLINE);
+}
+
+const string GetSWDir(void)
+{
+ const char* t = global.value(OPTION_SWPATH);
+ if (t)
+ return string(global.value(OPTION_SWPATH));
+ else
+ return "";
+}
+
+void SetSWDir(const char* path)
+{
+ global.set_value(OPTION_SWPATH, path, OPTION_PRIORITY_CMDLINE);
+}
+
+const string GetCfgDir(void)
+{
+ const char* t = global.value(OPTION_CFG_DIRECTORY);
+ if (t)
+ return string(global.value(OPTION_CFG_DIRECTORY));
+ else
+ return "cfg";
+}
+
+void SetCfgDir(const char* path)
+{
+ global.set_value(OPTION_CFG_DIRECTORY, path, OPTION_PRIORITY_CMDLINE);
+}
+
+const string GetNvramDir(void)
+{
+ const char* t = global.value(OPTION_NVRAM_DIRECTORY);
+ if (t)
+ return string(global.value(OPTION_NVRAM_DIRECTORY));
+ else
+ return "nvram";
+}
+
+void SetNvramDir(const char* path)
+{
+ global.set_value(OPTION_NVRAM_DIRECTORY, path, OPTION_PRIORITY_CMDLINE);
+}
+
+const string GetInpDir(void)
+{
+ const char* t = global.value(OPTION_INPUT_DIRECTORY);
+ if (t)
+ return string(global.value(OPTION_INPUT_DIRECTORY));
+ else
+ return "inp";
+}
+
+void SetInpDir(const char* path)
+{
+ global.set_value(OPTION_INPUT_DIRECTORY, path, OPTION_PRIORITY_CMDLINE);
+}
+
+const string GetImgDir(void)
+{
+ const char* t = global.value(OPTION_SNAPSHOT_DIRECTORY);
+ if (t)
+ return string(global.value(OPTION_SNAPSHOT_DIRECTORY));
+ else
+ return "snap";
+}
+
+void SetImgDir(const char* path)
+{
+ global.set_value(OPTION_SNAPSHOT_DIRECTORY, path, OPTION_PRIORITY_CMDLINE);
+}
+
+const string GetStateDir(void)
+{
+ const char* t = global.value(OPTION_STATE_DIRECTORY);
+ if (t)
+ return string(global.value(OPTION_STATE_DIRECTORY));
+ else
+ return "sta";
+}
+
+void SetStateDir(const char* path)
+{
+ global.set_value(OPTION_STATE_DIRECTORY, path, OPTION_PRIORITY_CMDLINE);
+}
+
+const string GetArtDir(void)
+{
+ const char* t = global.value(OPTION_ARTPATH);
+ if (t)
+ return string(global.value(OPTION_ARTPATH));
+ else
+ return "artwork";
+}
+
+void SetArtDir(const char* path)
+{
+ global.set_value(OPTION_ARTPATH, path, OPTION_PRIORITY_CMDLINE);
+}
+
+const string GetFontDir(void)
+{
+ const char* t = global.value(OPTION_FONTPATH);
+ if (t)
+ return string(global.value(OPTION_FONTPATH));
+ else
+ return ".";
+}
+
+void SetFontDir(const char* paths)
+{
+ global.set_value(OPTION_FONTPATH, paths, OPTION_PRIORITY_CMDLINE);
+}
+
+const string GetCrosshairDir(void)
+{
+ const char* t = global.value(OPTION_CROSSHAIRPATH);
+ if (t)
+ return string(global.value(OPTION_CROSSHAIRPATH));
+ else
+ return "crosshair";
+}
+
+void SetCrosshairDir(const char* paths)
+{
+ global.set_value(OPTION_CROSSHAIRPATH, paths, OPTION_PRIORITY_CMDLINE);
+}
+
+const string GetPluginsDir(void)
+{
+ const char* t = global.value(OPTION_PLUGINSPATH);
+ if (t)
+ return string(global.value(OPTION_PLUGINSPATH));
+ else
+ return "plugins";
+}
+
+void SetPluginsDir(const char* path)
+{
+ global.set_value(OPTION_PLUGINSPATH, path, OPTION_PRIORITY_CMDLINE);
+}
+
+const string GetLangDir(void)
+{
+ const char* t = global.value(OPTION_LANGUAGEPATH);
+ if (t)
+ return string(global.value(OPTION_LANGUAGEPATH));
+ else
+ return "language";
+}
+
+void SetLangDir(const char* path)
+{
+ global.set_value(OPTION_LANGUAGEPATH, path, OPTION_PRIORITY_CMDLINE);
+}
+
+const string GetDiffDir(void)
+{
+ const char* t = global.value(OPTION_DIFF_DIRECTORY);
+ if (t)
+ return string(global.value(OPTION_DIFF_DIRECTORY));
+ else
+ return "diff";
+}
+
+void SetDiffDir(const char* path)
+{
+ global.set_value(OPTION_DIFF_DIRECTORY, path, OPTION_PRIORITY_CMDLINE);
+}
+
+const string GetCheatDir(void)
+{
+ const char* t = global.value(OPTION_CHEATPATH);
+ if (t)
+ return string(global.value(OPTION_CHEATPATH));
+ else
+ return "cheat";
+}
+
+void SetCheatDir(const char* path)
+{
+ global.set_value(OPTION_CHEATPATH, path, OPTION_PRIORITY_CMDLINE);
+}
+
+const string GetHLSLDir(void)
+{
+ const char* t = global.value(WINOPTION_HLSLPATH);
+ if (t)
+ return string(global.value(WINOPTION_HLSLPATH));
+ else
+ return "hlsl";
+}
+
+void SetHLSLDir(const char* path)
+{
+ global.set_value(WINOPTION_HLSLPATH, path, OPTION_PRIORITY_CMDLINE);
+}
+
+const char* GetSnapName(void)
+{
+ return global.value(OPTION_SNAPNAME);
+}
+
+void SetSnapName(const char* pattern)
+{
+ global.set_value(OPTION_SNAPNAME, pattern, OPTION_PRIORITY_CMDLINE);
+}
+
+// ***************************************************************** UI.INI settings **************************************************************************
+const string GetScoresDir(void)
+{
+ const char* t = mewui.value(OPTION_SCORES_PATH);
+ if (t)
+ return string(mewui.value(OPTION_SCORES_PATH));
+ else
+ return "scores";
+}
+
+void SetScoresDir(const char *path)
+{
+ mewui.set_value(OPTION_SCORES_PATH, path, OPTION_PRIORITY_CMDLINE);
+}
+
+const string GetBossesDir(void)
+{
+ const char* t = mewui.value(OPTION_BOSSES_PATH);
+ if (t)
+ return string(mewui.value(OPTION_BOSSES_PATH));
+ else
+ return "bosses";
+}
+
+void SetBossesDir(const char *path)
+{
+ mewui.set_value(OPTION_BOSSES_PATH, path, OPTION_PRIORITY_CMDLINE);
+}
+
+const string GetCoversDir(void)
+{
+ const char* t = mewui.value(OPTION_COVER_PATH);
+ if (t)
+ return string(mewui.value(OPTION_COVER_PATH));
+ else
+ return "covers";
+}
+
+void SetCoversDir(const char *path)
+{
+ mewui.set_value(OPTION_COVER_PATH, path, OPTION_PRIORITY_CMDLINE);
+}
+
+const string GetVersusDir(void)
+{
+ const char* t = mewui.value(OPTION_VERSUS_PATH);
+ if (t)
+ return string(mewui.value(OPTION_VERSUS_PATH));
+ else
+ return "versus";
+}
+
+void SetVersusDir(const char *path)
+{
+ mewui.set_value(OPTION_VERSUS_PATH, path, OPTION_PRIORITY_CMDLINE);
+}
+
+const string GetEndsDir(void)
+{
+ const char* t = mewui.value(OPTION_ENDS_PATH);
+ if (t)
+ return string(mewui.value(OPTION_ENDS_PATH));
+ else
+ return "ends";
+}
+
+void SetEndsDir(const char *path)
+{
+ mewui.set_value(OPTION_ENDS_PATH, path, OPTION_PRIORITY_CMDLINE);
+}
+
+const string GetGameOverDir(void)
+{
+ const char* t = mewui.value(OPTION_GAMEOVER_PATH);
+ if (t)
+ return string(mewui.value(OPTION_GAMEOVER_PATH));
+ else
+ return "gameover";
+}
+
+void SetGameOverDir(const char *path)
+{
+ mewui.set_value(OPTION_GAMEOVER_PATH, path, OPTION_PRIORITY_CMDLINE);
+}
+
+const string GetHowToDir(void)
+{
+ const char* t = mewui.value(OPTION_HOWTO_PATH);
+ if (t)
+ return string(mewui.value(OPTION_HOWTO_PATH));
+ else
+ return "howto";
+}
+
+void SetHowToDir(const char *path)
+{
+ mewui.set_value(OPTION_HOWTO_PATH, path, OPTION_PRIORITY_CMDLINE);
+}
+
+const string GetSelectDir(void)
+{
+ const char* t = mewui.value(OPTION_SELECT_PATH);
+ if (t)
+ return string(mewui.value(OPTION_SELECT_PATH));
+ else
+ return "select";
+}
+
+void SetSelectDir(const char *path)
+{
+ mewui.set_value(OPTION_SELECT_PATH, path, OPTION_PRIORITY_CMDLINE);
+}
+
+const string GetLogoDir(void)
+{
+ const char* t = mewui.value(OPTION_LOGOS_PATH);
+ if (t)
+ return string(mewui.value(OPTION_LOGOS_PATH));
+ else
+ return "logo";
+}
+
+void SetLogoDir(const char *path)
+{
+ mewui.set_value(OPTION_LOGOS_PATH, path, OPTION_PRIORITY_CMDLINE);
+}
+
+const string GetArtworkDir(void)
+{
+ const char* t = mewui.value(OPTION_ARTPREV_PATH);
+ if (t)
+ return string(mewui.value(OPTION_ARTPREV_PATH));
+ else
+ return "artpreview";
+}
+
+void SetArtworkDir(const char *path)
+{
+ mewui.set_value(OPTION_ARTPREV_PATH, path, OPTION_PRIORITY_CMDLINE);
+}
+
+const string GetFlyerDir(void)
+{
+ const char* t = mewui.value(OPTION_FLYERS_PATH);
+ if (t)
+ return string(mewui.value(OPTION_FLYERS_PATH));
+ else
+ return "flyers";
+}
+
+void SetFlyerDir(const char* path)
+{
+ mewui.set_value(OPTION_FLYERS_PATH, path, OPTION_PRIORITY_CMDLINE);
+}
+
+const string GetCabinetDir(void)
+{
+ const char* t = mewui.value(OPTION_CABINETS_PATH);
+ if (t)
+ return string(mewui.value(OPTION_CABINETS_PATH));
+ else
+ return "cabinets";
+}
+
+void SetCabinetDir(const char* path)
+{
+ mewui.set_value(OPTION_CABINETS_PATH, path, OPTION_PRIORITY_CMDLINE);
+}
+
+const string GetMarqueeDir(void)
+{
+ const char* t = mewui.value(OPTION_MARQUEES_PATH);
+ if (t)
+ return string(mewui.value(OPTION_MARQUEES_PATH));
+ else
+ return "marquees";
+}
+
+void SetMarqueeDir(const char* path)
+{
+ mewui.set_value(OPTION_MARQUEES_PATH, path, OPTION_PRIORITY_CMDLINE);
+}
+
+const string GetTitlesDir(void)
+{
+ const char* t = mewui.value(OPTION_TITLES_PATH);
+ if (t)
+ return string(mewui.value(OPTION_TITLES_PATH));
+ else
+ return "titles";
+}
+
+void SetTitlesDir(const char* path)
+{
+ mewui.set_value(OPTION_TITLES_PATH, path, OPTION_PRIORITY_CMDLINE);
+}
+
+const string GetControlPanelDir(void)
+{
+ const char* t = mewui.value(OPTION_CPANELS_PATH);
+ if (t)
+ return string(mewui.value(OPTION_CPANELS_PATH));
+ else
+ return "cpanel";
+}
+
+void SetControlPanelDir(const char *path)
+{
+ mewui.set_value(OPTION_CPANELS_PATH, path, OPTION_PRIORITY_CMDLINE);
+}
+
+const string GetPcbDir(void)
+{
+ const char* t = mewui.value(OPTION_PCBS_PATH);
+ if (t)
+ return string(mewui.value(OPTION_PCBS_PATH));
+ else
+ return "pcb";
+}
+
+void SetPcbDir(const char *path)
+{
+ mewui.set_value(OPTION_PCBS_PATH, path, OPTION_PRIORITY_CMDLINE);
+}
+
+const string GetFolderDir(void)
+{
+ const char* t = mewui.value(OPTION_CATEGORYINI_PATH);
+ if (t)
+ return string(mewui.value(OPTION_CATEGORYINI_PATH));
+ else
+ return "folders";
+}
+
+void SetFolderDir(const char* path)
+{
+ mewui.set_value(OPTION_CATEGORYINI_PATH, path, OPTION_PRIORITY_CMDLINE);
+}
+
+// ***************************************************************** MAME_g.INI settings **************************************************************************
+int GetRomAuditResults(uint32_t driver_index)
+{
+ return game_opts.rom(driver_index);
+}
+
+void SetRomAuditResults(uint32_t driver_index, int audit_results)
+{
+ game_opts.rom(driver_index, audit_results);
+}
+
+int GetSampleAuditResults(uint32_t driver_index)
+{
+ return game_opts.sample(driver_index);
+}
+
+void SetSampleAuditResults(uint32_t driver_index, int audit_results)
+{
+ game_opts.sample(driver_index, audit_results);
+}
+
+static void IncrementPlayVariable(uint32_t driver_index, const char *play_variable, uint32_t increment)
+{
+ if (strcmp(play_variable, "count") == 0)
+ game_opts.play_count(driver_index, game_opts.play_count(driver_index) + increment);
+ else
+ if (strcmp(play_variable, "time") == 0)
+ game_opts.play_time(driver_index, game_opts.play_time(driver_index) + increment);
+}
+
+void IncrementPlayCount(uint32_t driver_index)
+{
+ IncrementPlayVariable(driver_index, "count", 1);
+}
+
+uint32_t GetPlayCount(uint32_t driver_index)
+{
+ return game_opts.play_count(driver_index);
+}
+
+// int needed here so we can reset all games
+static void ResetPlayVariable(int driver_index, const char *play_variable)
+{
+ if (driver_index < 0)
+ /* all games */
+ for (uint32_t i = 0; i < driver_list::total(); i++)
+ ResetPlayVariable(i, play_variable);
+ else
+ {
+ if (strcmp(play_variable, "count") == 0)
+ game_opts.play_count(driver_index, 0);
+ else
+ if (strcmp(play_variable, "time") == 0)
+ game_opts.play_time(driver_index, 0);
+ }
+}
+
+// int needed here so we can reset all games
+void ResetPlayCount(int driver_index)
+{
+ ResetPlayVariable(driver_index, "count");
+}
+
+// int needed here so we can reset all games
+void ResetPlayTime(int driver_index)
+{
+ ResetPlayVariable(driver_index, "time");
+}
+
+uint32_t GetPlayTime(uint32_t driver_index)
+{
+ return game_opts.play_time(driver_index);
+}
+
+void IncrementPlayTime(uint32_t driver_index, uint32_t playtime)
+{
+ IncrementPlayVariable(driver_index, "time", playtime);
+}
+
+void GetTextPlayTime(uint32_t driver_index, char *buf)
+{
+
+ if (driver_index < driver_list::total())
+ {
+ uint32_t second = GetPlayTime(driver_index);
+ uint32_t hour = second / 3600;
+ second -= 3600*hour;
+ uint8_t minute = second / 60; //Calc Minutes
+ second -= 60*minute;
+
+ if (hour == 0)
+ sprintf(buf, "%d:%02d", minute, second );
+ else
+ sprintf(buf, "%d:%02d:%02d", hour, minute, second );
+ }
+}
+
+input_seq* Get_ui_key_up(void)
+{
+ return options_get_input_seq(MUIOPTION_UI_KEY_UP);
+}
+
+input_seq* Get_ui_key_down(void)
+{
+ return options_get_input_seq(MUIOPTION_UI_KEY_DOWN);
+}
+
+input_seq* Get_ui_key_left(void)
+{
+ return options_get_input_seq(MUIOPTION_UI_KEY_LEFT);
+}
+
+input_seq* Get_ui_key_right(void)
+{
+ return options_get_input_seq(MUIOPTION_UI_KEY_RIGHT);
+}
+
+input_seq* Get_ui_key_start(void)
+{
+ return options_get_input_seq(MUIOPTION_UI_KEY_START);
+}
+
+input_seq* Get_ui_key_pgup(void)
+{
+ return options_get_input_seq(MUIOPTION_UI_KEY_PGUP);
+}
+
+input_seq* Get_ui_key_pgdwn(void)
+{
+ return options_get_input_seq(MUIOPTION_UI_KEY_PGDWN);
+}
+
+input_seq* Get_ui_key_home(void)
+{
+ return options_get_input_seq(MUIOPTION_UI_KEY_HOME);
+}
+
+input_seq* Get_ui_key_end(void)
+{
+ return options_get_input_seq(MUIOPTION_UI_KEY_END);
+}
+
+input_seq* Get_ui_key_ss_change(void)
+{
+ return options_get_input_seq(MUIOPTION_UI_KEY_SS_CHANGE);
+}
+
+input_seq* Get_ui_key_history_up(void)
+{
+ return options_get_input_seq(MUIOPTION_UI_KEY_HISTORY_UP);
+}
+
+input_seq* Get_ui_key_history_down(void)
+{
+ return options_get_input_seq(MUIOPTION_UI_KEY_HISTORY_DOWN);
+}
+
+input_seq* Get_ui_key_context_filters(void)
+{
+ return options_get_input_seq(MUIOPTION_UI_KEY_CONTEXT_FILTERS);
+}
+
+input_seq* Get_ui_key_select_random(void)
+{
+ return options_get_input_seq(MUIOPTION_UI_KEY_SELECT_RANDOM);
+}
+
+input_seq* Get_ui_key_game_audit(void)
+{
+ return options_get_input_seq(MUIOPTION_UI_KEY_GAME_AUDIT);
+}
+
+input_seq* Get_ui_key_game_properties(void)
+{
+ return options_get_input_seq(MUIOPTION_UI_KEY_GAME_PROPERTIES);
+}
+
+input_seq* Get_ui_key_help_contents(void)
+{
+ return options_get_input_seq(MUIOPTION_UI_KEY_HELP_CONTENTS);
+}
+
+input_seq* Get_ui_key_update_gamelist(void)
+{
+ return options_get_input_seq(MUIOPTION_UI_KEY_UPDATE_GAMELIST);
+}
+
+input_seq* Get_ui_key_view_folders(void)
+{
+ return options_get_input_seq(MUIOPTION_UI_KEY_VIEW_FOLDERS);
+}
+
+input_seq* Get_ui_key_view_fullscreen(void)
+{
+ return options_get_input_seq(MUIOPTION_UI_KEY_VIEW_FULLSCREEN);
+}
+
+input_seq* Get_ui_key_view_pagetab(void)
+{
+ return options_get_input_seq(MUIOPTION_UI_KEY_VIEW_PAGETAB);
+}
+
+input_seq* Get_ui_key_view_picture_area(void)
+{
+ return options_get_input_seq(MUIOPTION_UI_KEY_VIEW_PICTURE_AREA);
+}
+
+input_seq* Get_ui_key_view_software_area(void)
+{
+ return options_get_input_seq(MUIOPTION_UI_KEY_VIEW_SOFTWARE_AREA);
+}
+
+input_seq* Get_ui_key_view_status(void)
+{
+ return options_get_input_seq(MUIOPTION_UI_KEY_VIEW_STATUS);
+}
+
+input_seq* Get_ui_key_view_toolbars(void)
+{
+ return options_get_input_seq(MUIOPTION_UI_KEY_VIEW_TOOLBARS);
+}
+
+input_seq* Get_ui_key_view_tab_cabinet(void)
+{
+ return options_get_input_seq(MUIOPTION_UI_KEY_VIEW_TAB_CABINET);
+}
+
+input_seq* Get_ui_key_view_tab_cpanel(void)
+{
+ return options_get_input_seq(MUIOPTION_UI_KEY_VIEW_TAB_CPANEL);
+}
+
+input_seq* Get_ui_key_view_tab_flyer(void)
+{
+ return options_get_input_seq(MUIOPTION_UI_KEY_VIEW_TAB_FLYER);
+}
+
+input_seq* Get_ui_key_view_tab_history(void)
+{
+ return options_get_input_seq(MUIOPTION_UI_KEY_VIEW_TAB_HISTORY);
+}
+
+input_seq* Get_ui_key_view_tab_marquee(void)
+{
+ return options_get_input_seq(MUIOPTION_UI_KEY_VIEW_TAB_MARQUEE);
+}
+
+input_seq* Get_ui_key_view_tab_screenshot(void)
+{
+ return options_get_input_seq(MUIOPTION_UI_KEY_VIEW_TAB_SCREENSHOT);
+}
+
+input_seq* Get_ui_key_view_tab_title(void)
+{
+ return options_get_input_seq(MUIOPTION_UI_KEY_VIEW_TAB_TITLE);
+}
+
+input_seq* Get_ui_key_view_tab_pcb(void)
+{
+ return options_get_input_seq(MUIOPTION_UI_KEY_VIEW_TAB_PCB);
+}
+
+input_seq* Get_ui_key_quit(void)
+{
+ return options_get_input_seq(MUIOPTION_UI_KEY_QUIT);
+}
+
+static int GetUIJoy(const char *option_name, int joycodeIndex)
+{
+ int joycodes[4];
+
+ if ((joycodeIndex < 0) || (joycodeIndex > 3))
+ joycodeIndex = 0;
+ ColumnDecodeStringWithCount(settings.getter(option_name), joycodes, ARRAY_LENGTH(joycodes));
+ return joycodes[joycodeIndex];
+}
+
+static void SetUIJoy(const char *option_name, int joycodeIndex, int val)
+{
+ int joycodes[4];
+
+ if ((joycodeIndex < 0) || (joycodeIndex > 3))
+ joycodeIndex = 0;
+ ColumnDecodeStringWithCount(settings.getter(option_name), joycodes, ARRAY_LENGTH(joycodes));
+ joycodes[joycodeIndex] = val;
+ settings.setter(option_name, ColumnEncodeStringWithCount(joycodes, ARRAY_LENGTH(joycodes)));
+}
+
+int GetUIJoyUp(int joycodeIndex)
+{
+ return GetUIJoy(MUIOPTION_UI_JOY_UP, joycodeIndex);
+}
+
+void SetUIJoyUp(int joycodeIndex, int val)
+{
+ SetUIJoy(MUIOPTION_UI_JOY_UP, joycodeIndex, val);
+}
+
+int GetUIJoyDown(int joycodeIndex)
+{
+ return GetUIJoy(MUIOPTION_UI_JOY_DOWN, joycodeIndex);
+}
+
+void SetUIJoyDown(int joycodeIndex, int val)
+{
+ SetUIJoy(MUIOPTION_UI_JOY_DOWN, joycodeIndex, val);
+}
+
+int GetUIJoyLeft(int joycodeIndex)
+{
+ return GetUIJoy(MUIOPTION_UI_JOY_LEFT, joycodeIndex);
+}
+
+void SetUIJoyLeft(int joycodeIndex, int val)
+{
+ SetUIJoy(MUIOPTION_UI_JOY_LEFT, joycodeIndex, val);
+}
+
+int GetUIJoyRight(int joycodeIndex)
+{
+ return GetUIJoy(MUIOPTION_UI_JOY_RIGHT, joycodeIndex);
+}
+
+void SetUIJoyRight(int joycodeIndex, int val)
+{
+ SetUIJoy(MUIOPTION_UI_JOY_RIGHT, joycodeIndex, val);
+}
+
+int GetUIJoyStart(int joycodeIndex)
+{
+ return GetUIJoy(MUIOPTION_UI_JOY_START, joycodeIndex);
+}
+
+void SetUIJoyStart(int joycodeIndex, int val)
+{
+ SetUIJoy(MUIOPTION_UI_JOY_START, joycodeIndex, val);
+}
+
+int GetUIJoyPageUp(int joycodeIndex)
+{
+ return GetUIJoy(MUIOPTION_UI_JOY_PGUP, joycodeIndex);
+}
+
+void SetUIJoyPageUp(int joycodeIndex, int val)
+{
+ SetUIJoy(MUIOPTION_UI_JOY_PGUP, joycodeIndex, val);
+}
+
+int GetUIJoyPageDown(int joycodeIndex)
+{
+ return GetUIJoy(MUIOPTION_UI_JOY_PGDWN, joycodeIndex);
+}
+
+void SetUIJoyPageDown(int joycodeIndex, int val)
+{
+ SetUIJoy(MUIOPTION_UI_JOY_PGDWN, joycodeIndex, val);
+}
+
+int GetUIJoyHome(int joycodeIndex)
+{
+ return GetUIJoy(MUIOPTION_UI_JOY_HOME, joycodeIndex);
+}
+
+void SetUIJoyHome(int joycodeIndex, int val)
+{
+ SetUIJoy(MUIOPTION_UI_JOY_HOME, joycodeIndex, val);
+}
+
+int GetUIJoyEnd(int joycodeIndex)
+{
+ return GetUIJoy(MUIOPTION_UI_JOY_END, joycodeIndex);
+}
+
+void SetUIJoyEnd(int joycodeIndex, int val)
+{
+ SetUIJoy(MUIOPTION_UI_JOY_END, joycodeIndex, val);
+}
+
+int GetUIJoySSChange(int joycodeIndex)
+{
+ return GetUIJoy(MUIOPTION_UI_JOY_SS_CHANGE, joycodeIndex);
+}
+
+void SetUIJoySSChange(int joycodeIndex, int val)
+{
+ SetUIJoy(MUIOPTION_UI_JOY_SS_CHANGE, joycodeIndex, val);
+}
+
+int GetUIJoyHistoryUp(int joycodeIndex)
+{
+ return GetUIJoy(MUIOPTION_UI_JOY_HISTORY_UP, joycodeIndex);
+}
+
+void SetUIJoyHistoryUp(int joycodeIndex, int val)
+{
+ SetUIJoy(MUIOPTION_UI_JOY_HISTORY_UP, joycodeIndex, val);
+}
+
+int GetUIJoyHistoryDown(int joycodeIndex)
+{
+ return GetUIJoy(MUIOPTION_UI_JOY_HISTORY_DOWN, joycodeIndex);
+}
+
+void SetUIJoyHistoryDown(int joycodeIndex, int val)
+{
+ SetUIJoy(MUIOPTION_UI_JOY_HISTORY_DOWN, joycodeIndex, val);
+}
+
+// exec functions start: these are unsupported
+void SetUIJoyExec(int joycodeIndex, int val)
+{
+ SetUIJoy(MUIOPTION_UI_JOY_EXEC, joycodeIndex, val);
+}
+
+int GetUIJoyExec(int joycodeIndex)
+{
+ return GetUIJoy(MUIOPTION_UI_JOY_EXEC, joycodeIndex);
+}
+
+const string GetExecCommand(void)
+{
+ return settings.getter(MUIOPTION_EXEC_COMMAND);
+}
+
+// not used
+void SetExecCommand(char *cmd)
+{
+ settings.setter(MUIOPTION_EXEC_COMMAND, cmd);
+}
+
+int GetExecWait(void)
+{
+ return settings.int_value(MUIOPTION_EXEC_WAIT);
+}
+
+void SetExecWait(int wait)
+{
+ settings.setter(MUIOPTION_EXEC_WAIT, wait);
+}
+// exec functions end
+
+BOOL GetHideMouseOnStartup(void)
+{
+ return settings.bool_value(MUIOPTION_HIDE_MOUSE);
+}
+
+void SetHideMouseOnStartup(BOOL hide)
+{
+ settings.setter(MUIOPTION_HIDE_MOUSE, hide);
+}
+
+BOOL GetRunFullScreen(void)
+{
+ return settings.bool_value( MUIOPTION_FULL_SCREEN);
+}
+
+void SetRunFullScreen(BOOL fullScreen)
+{
+ settings.setter(MUIOPTION_FULL_SCREEN, fullScreen);
+}
+
+/***************************************************************************
+ Internal functions
+ ***************************************************************************/
+
+static string CusColorEncodeString(const COLORREF *value)
+{
+ string str = std::to_string(value[0]);
+
+ for (int i = 1; i < 16; i++)
+ str.append(",").append(std::to_string(value[i]));
+
+ return str;
+}
+
+static void CusColorDecodeString(string ss, COLORREF *value)
+{
+ const char *str = ss.c_str();
+ char *s, *p;
+ char tmpStr[256];
+
+ strcpy(tmpStr, str);
+ p = tmpStr;
+
+ for (int i = 0; p && i < 16; i++)
+ {
+ s = p;
+
+ if ((p = strchr(s,',')) != NULL && *p == ',')
+ {
+ *p = '\0';
+ p++;
+ }
+ value[i] = atoi(s);
+ }
+}
+
+
+static string ColumnEncodeStringWithCount(const int *value, int count)
+{
+ string str = std::to_string(value[0]);
+
+ for (int i = 1; i < count; i++)
+ str.append(",").append(std::to_string(value[i]));
+
+ return str;
+}
+
+static void ColumnDecodeStringWithCount(string ss, int *value, int count)
+{
+ const char *str = ss.c_str();
+ char *s, *p;
+ char tmpStr[256];
+
+ if (str == NULL)
+ return;
+
+ strcpy(tmpStr, str);
+ p = tmpStr;
+
+ for (int i = 0; p && i < count; i++)
+ {
+ s = p;
+
+ if ((p = strchr(s,',')) != NULL && *p == ',')
+ {
+ *p = '\0';
+ p++;
+ }
+ value[i] = atoi(s);
+ }
+}
+
+static string SplitterEncodeString(const int *value)
+{
+ string str = std::to_string(value[0]);
+
+ for (int i = 1; i < GetSplitterCount(); i++)
+ str.append(",").append(std::to_string(value[i]));
+
+ return str;
+}
+
+static void SplitterDecodeString(string ss, int *value)
+{
+ const char *str = ss.c_str();
+ char *s, *p;
+ char tmpStr[256];
+
+ strcpy(tmpStr, str);
+ p = tmpStr;
+
+ for (int i = 0; p && i < GetSplitterCount(); i++)
+ {
+ s = p;
+
+ if ((p = strchr(s,',')) != NULL && *p == ',')
+ {
+ *p = '\0';
+ p++;
+ }
+ value[i] = atoi(s);
+ }
+}
+
+/* Parse the given comma-delimited string into a LOGFONT structure */
+static void FontDecodeString(string ss, LOGFONT *f)
+{
+ const char* str = ss.c_str();
+ sscanf(str, "%li,%li,%li,%li,%li,%i,%i,%i,%i,%i,%i,%i,%i",
+ &f->lfHeight,
+ &f->lfWidth,
+ &f->lfEscapement,
+ &f->lfOrientation,
+ &f->lfWeight,
+ (int*)&f->lfItalic,
+ (int*)&f->lfUnderline,
+ (int*)&f->lfStrikeOut,
+ (int*)&f->lfCharSet,
+ (int*)&f->lfOutPrecision,
+ (int*)&f->lfClipPrecision,
+ (int*)&f->lfQuality,
+ (int*)&f->lfPitchAndFamily);
+ const char *ptr = strrchr(str, ',');
+ if (ptr)
+ {
+ TCHAR *t_s = ui_wstring_from_utf8(ptr + 1);
+ if( !t_s )
+ return;
+ _tcscpy(f->lfFaceName, t_s);
+ free(t_s);
+ }
+}
+
+/* Encode the given LOGFONT structure into a comma-delimited string */
+static string FontEncodeString(const LOGFONT *f)
+{
+ char* utf8_FaceName = ui_utf8_from_wstring(f->lfFaceName);
+ if( !utf8_FaceName )
+ return "";
+
+ char s[200];
+ sprintf(s, "%li,%li,%li,%li,%li,%i,%i,%i,%i,%i,%i,%i,%i,%s",
+ f->lfHeight,
+ f->lfWidth,
+ f->lfEscapement,
+ f->lfOrientation,
+ f->lfWeight,
+ f->lfItalic,
+ f->lfUnderline,
+ f->lfStrikeOut,
+ f->lfCharSet,
+ f->lfOutPrecision,
+ f->lfClipPrecision,
+ f->lfQuality,
+ f->lfPitchAndFamily,
+ utf8_FaceName);
+
+ free(utf8_FaceName);
+ return string(s);
+}
+
+static string TabFlagsEncodeString(int data)
+{
+ int num_saved = 0;
+ string str;
+
+ // we save the ones that are NOT displayed, so we can add new ones
+ // and upgraders will see them
+ for ( int i=0; i<MAX_TAB_TYPES; i++)
+ {
+ if (((data & (1 << i)) == 0) && GetImageTabShortName(i))
+ {
+ if (num_saved > 0)
+ str.append(",");
+
+ str.append(GetImageTabShortName(i));
+ num_saved++;
+ }
+ }
+ return str;
+}
+
+static void TabFlagsDecodeString(string ss, int *data)
+{
+ const char *str = ss.c_str();
+ int j = 0;
+ char s[2000];
+ char *token;
+
+ snprintf(s, ARRAY_LENGTH(s), "%s", str);
+
+ // simple way to set all tab bits "on"
+ *data = (1 << MAX_TAB_TYPES) - 1;
+
+ token = strtok(s,", \t");
+ while (token)
+ {
+ for (j=0; j<MAX_TAB_TYPES; j++)
+ {
+ if (!GetImageTabShortName(j) || (strcmp(GetImageTabShortName(j), token) == 0))
+ {
+ // turn off this bit
+ *data &= ~(1 << j);
+ break;
+ }
+ }
+ token = strtok(NULL,", \t");
+ }
+
+ if (*data == 0)
+ {
+ // not allowed to hide all tabs, because then why even show the area?
+ *data = (1 << TAB_SCREENSHOT);
+ }
+}
+
+// load mewui settings
+static void LoadSettingsFile(ui_options &opts, const char *filename)
+{
+ osd_file::error filerr;
+ util::core_file::ptr file;
+
+ filerr = util::core_file::open(filename, OPEN_FLAG_READ, file);
+ if (filerr == osd_file::error::NONE)
+ {
+ opts.parse_ini_file(*file, OPTION_PRIORITY_CMDLINE, true, true);
+ file.reset();
+ }
+}
+
+// load a game ini
+static void LoadSettingsFile(windows_options &opts, const char *filename)
+{
+ osd_file::error filerr;
+ util::core_file::ptr file;
+
+ filerr = util::core_file::open(filename, OPEN_FLAG_READ, file);
+ if (filerr == osd_file::error::NONE)
+ {
+ opts.parse_ini_file(*file, OPTION_PRIORITY_CMDLINE, true, true);
+ file.reset();
+ }
+}
+
+// This saves changes to UI.INI only
+static void SaveSettingsFile(ui_options &opts, const char *filename)
+{
+ osd_file::error filerr = osd_file::error::NONE;
+ util::core_file::ptr file;
+
+ filerr = util::core_file::open(filename, OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS, file);
+
+ if (filerr == osd_file::error::NONE)
+ {
+ string inistring = opts.output_ini();
+ file->puts(inistring.c_str());
+ file.reset();
+ }
+}
+
+
+
+// This saves changes to <game>.INI or MAME.INI only
+static void SaveSettingsFile(windows_options &opts, const char *filename)
+{
+ osd_file::error filerr = osd_file::error::NONE;
+ util::core_file::ptr file;
+
+ filerr = util::core_file::open(filename, OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS, file);
+
+ if (filerr == osd_file::error::NONE)
+ {
+ string inistring = opts.output_ini();
+ // printf("=====%s=====\n%s\n",filename,inistring.c_str()); // for debugging
+ file->puts(inistring.c_str());
+ file.reset();
+ }
+}
+
+
+
+void ResetGameOptions(int driver_index)
+{
+ //save_options(NULL, OPTIONS_GAME, driver_index);
+}
+
+void ResetGameDefaults(void)
+{
+ // Walk the global settings and reset everything to defaults;
+ ResetToDefaults(global, OPTION_PRIORITY_CMDLINE);
+ save_options(global, OPTIONS_GLOBAL, GLOBAL_OPTIONS);
+}
+
+/*
+ * Reset all game, vector and source options to defaults.
+ * No reason to reboot if this is done.
+ */
+void ResetAllGameOptions(void)
+{
+ for (int i = 0; i < driver_list::total(); i++)
+ ResetGameOptions(i);
+}
+
+void SetDirectories(windows_options &opts)
+{
+ opts.set_value(OPTION_MEDIAPATH, GetRomDirs(), OPTION_PRIORITY_CMDLINE);
+ opts.set_value(OPTION_SAMPLEPATH, GetSampleDirs(), OPTION_PRIORITY_CMDLINE);
+ opts.set_value(OPTION_INIPATH, GetIniDir(), OPTION_PRIORITY_CMDLINE);
+ opts.set_value(OPTION_CFG_DIRECTORY, GetCfgDir(), OPTION_PRIORITY_CMDLINE);
+ opts.set_value(OPTION_SNAPSHOT_DIRECTORY, GetImgDir(), OPTION_PRIORITY_CMDLINE);
+ opts.set_value(OPTION_INPUT_DIRECTORY, GetInpDir(), OPTION_PRIORITY_CMDLINE);
+ opts.set_value(OPTION_STATE_DIRECTORY, GetStateDir(), OPTION_PRIORITY_CMDLINE);
+ opts.set_value(OPTION_ARTPATH, GetArtDir(), OPTION_PRIORITY_CMDLINE);
+ opts.set_value(OPTION_NVRAM_DIRECTORY, GetNvramDir(), OPTION_PRIORITY_CMDLINE);
+ opts.set_value(OPTION_CTRLRPATH, GetCtrlrDir(), OPTION_PRIORITY_CMDLINE);
+ opts.set_value(OPTION_CHEATPATH, GetCheatDir(), OPTION_PRIORITY_CMDLINE);
+ opts.set_value(OPTION_CROSSHAIRPATH, GetCrosshairDir(), OPTION_PRIORITY_CMDLINE);
+ opts.set_value(OPTION_FONTPATH, GetFontDir(), OPTION_PRIORITY_CMDLINE);
+ opts.set_value(OPTION_DIFF_DIRECTORY, GetDiffDir(), OPTION_PRIORITY_CMDLINE);
+ opts.set_value(OPTION_SNAPNAME, GetSnapName(), OPTION_PRIORITY_CMDLINE);
+}
+
+// not used
+#if 0
+const char * GetFolderNameByID(UINT nID)
+{
+ UINT i;
+ extern const FOLDERDATA g_folderData[];
+ extern LPEXFOLDERDATA ExtraFolderData[];
+
+ for (i = 0; i < MAX_EXTRA_FOLDERS * MAX_EXTRA_SUBFOLDERS; i++)
+ if( ExtraFolderData[i] )
+ if (ExtraFolderData[i]->m_nFolderId == nID)
+ return ExtraFolderData[i]->m_szTitle;
+
+ for( i = 0; i < MAX_FOLDERS; i++)
+ if (g_folderData[i].m_nFolderId == nID)
+ return g_folderData[i].m_lpTitle;
+
+ return NULL;
+}
+#endif
+
+DWORD GetFolderFlags(int folder_index)
+{
+ LPTREEFOLDER lpFolder = GetFolder(folder_index);
+
+ if (lpFolder)
+ return lpFolder->m_dwFlags & F_MASK;
+
+ return 0;
+}
+
+
+/* Decode the flags into a DWORD */
+static DWORD DecodeFolderFlags(string ss)
+{
+ const char *buf = ss.c_str();
+ DWORD flags = 0;
+ int shift = 0;
+ const char *ptr = buf;
+
+ while (*ptr && (1 << shift) & F_MASK)
+ {
+ if (*ptr++ == '1')
+ flags |= (1 << shift);
+
+ shift++;
+ }
+ return flags;
+}
+
+/* Encode the flags into a string */
+static const char * EncodeFolderFlags(DWORD value)
+{
+ static char buf[40];
+ int shift = 0;
+
+ memset(buf,'\0', sizeof(buf));
+
+ while ((1 << shift) & F_MASK)
+ {
+ buf[shift] = (value & (1 << shift)) ? '1' : '0';
+ shift++;
+ }
+
+ return buf;
+}
+
+/* MSH 20080813
+ * Read the folder filters from MAMEui.ini. This must only
+ * be called AFTER the folders have all been created.
+ */
+void LoadFolderFlags(void)
+{
+ LPTREEFOLDER lpFolder;
+ int i, numFolders = GetNumFolders();
+
+ for (i = 0; i < numFolders; i++)
+ {
+ lpFolder = GetFolder(i);
+
+ if (lpFolder)
+ {
+ char folder_name[256];
+ char *ptr;
+
+ // Convert spaces to underscores
+ strcpy(folder_name, lpFolder->m_lpTitle);
+ ptr = folder_name;
+ while (*ptr && *ptr != '\0')
+ {
+ if ((*ptr == ' ') || (*ptr == '-'))
+ *ptr = '_';
+
+ ptr++;
+ }
+
+ string option_name = string(folder_name) + "_filters";
+ }
+ }
+
+ // These are overlaid at the end of our UI ini
+ // The normal read will skip them.
+
+ // retrieve the stored values
+ for (i = 0; i < numFolders; i++)
+ {
+ lpFolder = GetFolder(i);
+
+ if (lpFolder)
+ {
+ char folder_name[256];
+
+ // Convert spaces to underscores
+ strcpy(folder_name, lpFolder->m_lpTitle);
+ char *ptr = folder_name;
+ while (*ptr && *ptr != '\0')
+ {
+ if ((*ptr == ' ') || (*ptr == '-'))
+ *ptr = '_';
+
+ ptr++;
+ }
+ string option_name = string(folder_name) + "_filters";
+
+ // get entry and decode it
+ lpFolder->m_dwFlags |= DecodeFolderFlags(settings.getter(option_name.c_str())) & F_MASK;
+ }
+ }
+}
+
+
+
+// Adds our folder flags to winui_options, for saving.
+static void AddFolderFlags()
+{
+ LPTREEFOLDER lpFolder;
+ int num_entries = 0, numFolders = GetNumFolders();
+
+ for (int i = 0; i < numFolders; i++)
+ {
+ lpFolder = GetFolder(i);
+ if (lpFolder && (lpFolder->m_dwFlags & F_MASK) != 0)
+ {
+ char folder_name[256];
+
+ // Convert spaces to underscores
+ strcpy(folder_name, lpFolder->m_lpTitle);
+ char *ptr = folder_name;
+ while (*ptr && *ptr != '\0')
+ {
+ if ((*ptr == ' ') || (*ptr == '-'))
+ *ptr = '_';
+
+ ptr++;
+ }
+
+ string option_name = string(folder_name) + "_filters";
+
+ // store entry
+ settings.setter(option_name.c_str(), EncodeFolderFlags(lpFolder->m_dwFlags));
+
+ // increment counter
+ num_entries++;
+ }
+ }
+}
+
+// Save MAMEUI.ini
+void SaveOptions(void)
+{
+ // Add the folder flag to settings.
+ AddFolderFlags();
+ settings.save_file(UI_INI_FILENAME);
+ SaveSettingsFile(mewui, MEWUI_FILENAME);
+}
+
+void SaveGameListOptions(void)
+{
+ // Save GameInfo.ini - game options.
+ game_opts.save_file(GAMEINFO_INI_FILENAME);
+}
+
+void SaveDefaultOptions(void)
+{
+ string fname = string(GetIniDir()) + PATH_SEPARATOR + string(emulator_info::get_configname()).append(".ini");
+ SaveSettingsFile(global, fname.c_str());
+}
+
+const char * GetVersionString(void)
+{
+ return emulator_info::get_build_version();
+}
+
+
+/* get options, based on passed in game number. */
+void load_options(windows_options &opts, OPTIONS_TYPE opt_type, int game_num, bool set_system_name)
+{
+ const game_driver *driver = NULL;
+ if (game_num > -1)
+ driver = &driver_list::driver(game_num);
+
+ // Try base ini first
+ string fname = string(emulator_info::get_configname()).append(".ini");
+ LoadSettingsFile(opts, fname.c_str());
+
+ if (opt_type == OPTIONS_SOURCE)
+ {
+ fname = string(GetIniDir()) + PATH_SEPARATOR + "source" + PATH_SEPARATOR + core_filename_extract_base(driver->type.source(), true) + ".ini";
+ LoadSettingsFile(opts, fname.c_str());
+ return;
+ }
+
+ if (game_num > -2)
+ {
+ // Now try global ini
+ fname = string(GetIniDir()) + PATH_SEPARATOR + string(emulator_info::get_configname()).append(".ini");
+ LoadSettingsFile(opts, fname.c_str());
+
+ if (game_num > -1)
+ {
+ // Lastly, gamename.ini
+ if (driver)
+ {
+ fname = string(GetIniDir()) + PATH_SEPARATOR + string(driver->name).append(".ini");
+ if (set_system_name)
+ opts.set_value(OPTION_SYSTEMNAME, driver->name, OPTION_PRIORITY_CMDLINE);
+ LoadSettingsFile(opts, fname.c_str());
+ }
+ }
+ }
+ SetDirectories(opts);
+}
+
+/* Save ini file based on game_number. */
+void save_options(windows_options &opts, OPTIONS_TYPE opt_type, int game_num)
+{
+ const game_driver *driver = NULL;
+ string filename, filepath;
+
+ if (game_num >= 0)
+ {
+ driver = &driver_list::driver(game_num);
+ if (driver)
+ {
+ filename.assign(driver->name);
+ if (opt_type == OPTIONS_SOURCE)
+ filepath = string(GetIniDir()) + PATH_SEPARATOR + "source" + PATH_SEPARATOR + core_filename_extract_base(driver->type.source(), true) + ".ini";
+ }
+ }
+ else
+ if (game_num == -1)
+ filename = string(emulator_info::get_configname());
+
+ if (!filename.empty() && filepath.empty())
+ filepath = string(GetIniDir()).append(PATH_SEPARATOR).append(filename.c_str()).append(".ini");
+
+ if (game_num == -2)
+ filepath = string(emulator_info::get_configname()).append(".ini");
+
+ if (!filepath.empty())
+ {
+ SetDirectories(opts);
+ SaveSettingsFile(opts, filepath.c_str());
+// printf("Settings saved to %s\n",filepath.c_str());
+ }
+// else
+// printf("Unable to save settings\n");
+}
+
+
+// See if this driver has software support
+bool DriverHasSoftware(uint32_t drvindex)
+{
+ if (drvindex < driver_list::total())
+ {
+ windows_options o;
+ load_options(o, OPTIONS_GAME, drvindex, 1);
+ machine_config config(driver_list::driver(drvindex), o);
+
+ for (device_image_interface &img : image_interface_iterator(config.root_device()))
+ if (img.user_loadable())
+ return 1;
+ }
+
+ return 0;
+}
+
+
+// Reset the given windows_options to their default settings.
+static void ResetToDefaults(windows_options &opts, int priority)
+{
+ // iterate through the options setting each one back to the default value.
+ windows_options dummy;
+ OptionsCopy(dummy, opts);
+}
+
+uint32_t GetDriverCacheLower(uint32_t driver_index)
+{
+ return game_opts.cache_lower(driver_index);
+}
+
+uint32_t GetDriverCacheUpper(uint32_t driver_index)
+{
+ return game_opts.cache_upper(driver_index);
+}
+
+void SetDriverCache(uint32_t driver_index, uint32_t val)
+{
+ game_opts.cache_upper(driver_index, val);
+}
+
+BOOL RequiredDriverCache(void)
+{
+ return game_opts.rebuild();
+}
+
+void ForceRebuild(void)
+{
+ game_opts.force_rebuild();
+}
+
+BOOL DriverIsComputer(uint32_t driver_index)
+{
+ uint32_t cache = game_opts.cache_lower(driver_index) & 3;
+ return (cache == 2) ? true : false;
+}
+
+BOOL DriverIsConsole(uint32_t driver_index)
+{
+ uint32_t cache = game_opts.cache_lower(driver_index) & 3;
+ return (cache == 1) ? true : false;
+}
+
+BOOL DriverIsModified(uint32_t driver_index)
+{
+ return BIT(game_opts.cache_lower(driver_index), 12);
+}
+
+BOOL DriverIsImperfect(uint32_t driver_index)
+{
+ return (game_opts.cache_lower(driver_index) & 0xff0000) ? true : false; // (NO|IMPERFECT) (CONTROLS|PALETTE|SOUND|GRAPHICS)
+}
+
+// from optionsms.cpp (MESSUI)
+
+
+#define LOG_SOFTWARE 1
+
+void SetSLColumnOrder(int order[])
+{
+ settings.setter(MESSUI_SL_COLUMN_ORDER, ColumnEncodeStringWithCount(order, SL_COLUMN_MAX));
+}
+
+void GetSLColumnOrder(int order[])
+{
+ ColumnDecodeStringWithCount(settings.getter(MESSUI_SL_COLUMN_ORDER), order, SL_COLUMN_MAX);
+}
+
+void SetSLColumnShown(int shown[])
+{
+ settings.setter(MESSUI_SL_COLUMN_SHOWN, ColumnEncodeStringWithCount(shown, SL_COLUMN_MAX));
+}
+
+void GetSLColumnShown(int shown[])
+{
+ ColumnDecodeStringWithCount(settings.getter(MESSUI_SL_COLUMN_SHOWN), shown, SL_COLUMN_MAX);
+}
+
+void SetSLColumnWidths(int width[])
+{
+ settings.setter(MESSUI_SL_COLUMN_WIDTHS, ColumnEncodeStringWithCount(width, SL_COLUMN_MAX));
+}
+
+void GetSLColumnWidths(int width[])
+{
+ ColumnDecodeStringWithCount(settings.getter(MESSUI_SL_COLUMN_WIDTHS), width, SL_COLUMN_MAX);
+}
+
+void SetSLSortColumn(int column)
+{
+ settings.setter(MESSUI_SL_SORT_COLUMN, column);
+}
+
+int GetSLSortColumn(void)
+{
+ return settings.int_value(MESSUI_SL_SORT_COLUMN);
+}
+
+void SetSLSortReverse(BOOL reverse)
+{
+ settings.setter(MESSUI_SL_SORT_REVERSED, reverse);
+}
+
+BOOL GetSLSortReverse(void)
+{
+ return settings.bool_value(MESSUI_SL_SORT_REVERSED);
+}
+
+void SetSWColumnOrder(int order[])
+{
+ settings.setter(MESSUI_SW_COLUMN_ORDER, ColumnEncodeStringWithCount(order, SW_COLUMN_MAX));
+}
+
+void GetSWColumnOrder(int order[])
+{
+ ColumnDecodeStringWithCount(settings.getter(MESSUI_SW_COLUMN_ORDER), order, SW_COLUMN_MAX);
+}
+
+void SetSWColumnShown(int shown[])
+{
+ settings.setter(MESSUI_SW_COLUMN_SHOWN, ColumnEncodeStringWithCount(shown, SW_COLUMN_MAX));
+}
+
+void GetSWColumnShown(int shown[])
+{
+ ColumnDecodeStringWithCount(settings.getter(MESSUI_SW_COLUMN_SHOWN), shown, SW_COLUMN_MAX);
+}
+
+void SetSWColumnWidths(int width[])
+{
+ settings.setter(MESSUI_SW_COLUMN_WIDTHS, ColumnEncodeStringWithCount(width, SW_COLUMN_MAX));
+}
+
+void GetSWColumnWidths(int width[])
+{
+ ColumnDecodeStringWithCount(settings.getter(MESSUI_SW_COLUMN_WIDTHS), width, SW_COLUMN_MAX);
+}
+
+void SetSWSortColumn(int column)
+{
+ settings.setter(MESSUI_SW_SORT_COLUMN, column);
+}
+
+int GetSWSortColumn(void)
+{
+ return settings.int_value(MESSUI_SW_SORT_COLUMN);
+}
+
+void SetSWSortReverse(BOOL reverse)
+{
+ settings.setter( MESSUI_SW_SORT_REVERSED, reverse);
+}
+
+BOOL GetSWSortReverse(void)
+{
+ return settings.bool_value(MESSUI_SW_SORT_REVERSED);
+}
+
+
+void SetSelectedSoftware(int driver_index, string opt_name, const char *software)
+{
+ const char *s = opt_name.c_str();
+
+ if (LOG_SOFTWARE)
+ {
+ printf("SetSelectedSoftware(): slot=%s driver=%s software='%s'\n", s, driver_list::driver(driver_index).name, software);
+ }
+
+ if (s)
+ {
+ printf("About to load %s into slot %s\n",software,s);
+ windows_options o;
+ //o.set_value(OPTION_SYSTEMNAME, driver_list::driver(driver_index).name, OPTION_PRIORITY_CMDLINE);
+ load_options(o, OPTIONS_GAME, driver_index, 1);
+ o.set_value(s, software, OPTION_PRIORITY_CMDLINE);
+ //o.image_option(opt_name).specify(software);
+ printf("Done\n");
+ save_options(o, OPTIONS_GAME, driver_index);
+ }
+}
+
+void SetCurrentSoftwareTab(int val)
+{
+ settings.setter(MESSUI_SOFTWARE_TAB, val);
+}
+
+int GetCurrentSoftwareTab(void)
+{
+ return settings.int_value(MESSUI_SOFTWARE_TAB);
+}
+
+bool AreOptionsEqual(windows_options &opts1, windows_options &opts2)
+{
+ for (auto &curentry : opts1.entries())
+ {
+ if (curentry->type() != OPTION_HEADER)
+ {
+ const char *value = curentry->value();
+ const char *comp = opts2.value(curentry->name().c_str());
+ if (!value && !comp) // both empty, they are the same
+ {}
+ else
+ if (!value || !comp) // only one empty, they are different
+ return false;
+ else
+ if (strcmp(value, comp) != 0) // both not empty, do proper compare
+ return false;
+ }
+ }
+ return true;
+}
+
+void OptionsCopy(windows_options &source, windows_options &dest)
+{
+ for (auto &dest_entry : source.entries())
+ {
+ if (dest_entry->names().size() > 0)
+ {
+ // identify the source entry
+ const core_options::entry::shared_ptr source_entry = source.get_entry(dest_entry->name());
+ if (source_entry)
+ {
+ const char *value = source_entry->value();
+ if (value)
+ dest_entry->set_value(value, source_entry->priority(), true);
+ }
+ }
+ }
+}
diff --git a/src/osd/winui/mui_opts.h b/src/osd/winui/mui_opts.h
new file mode 100644
index 00000000000..e9beeb5c1d9
--- /dev/null
+++ b/src/osd/winui/mui_opts.h
@@ -0,0 +1,543 @@
+// For licensing and usage information, read docs/winui_license.txt
+// MASTER
+//****************************************************************************
+
+#ifndef MUI_OPTS_H
+#define MUI_OPTS_H
+
+#include "winmain.h"
+#include "winui.h"
+
+// These help categorise the folders on the left side
+// This list is mainly for documentation, although a few are used in code
+typedef enum {
+ // Global types
+ OPTIONS_GLOBAL = 0,
+ OPTIONS_HORIZONTAL,
+ OPTIONS_VERTICAL,
+ OPTIONS_RASTER,
+ OPTIONS_VECTOR,
+ OPTIONS_LCD,
+ OPTIONS_ARCADE,
+ OPTIONS_CONSOLE,
+ OPTIONS_COMPUTER,
+ OPTIONS_OTHERSYS,
+ // Local types
+ OPTIONS_SOURCE,
+ OPTIONS_GPARENT,
+ OPTIONS_PARENT,
+ OPTIONS_GAME,
+ // EOF marker
+ OPTIONS_MAX
+} OPTIONS_TYPE;
+
+// List of columns in the main game list
+enum
+{
+ COLUMN_GAMES = 0,
+ COLUMN_SRCDRIVERS,
+ COLUMN_DIRECTORY,
+ COLUMN_TYPE,
+ COLUMN_ORIENTATION,
+ COLUMN_MANUFACTURER,
+ COLUMN_YEAR,
+ COLUMN_PLAYED,
+ COLUMN_PLAYTIME,
+ COLUMN_CLONE,
+ COLUMN_TRACKBALL,
+ COLUMN_SAMPLES,
+ COLUMN_ROMS,
+ COLUMN_MAX
+};
+
+#define LOCAL_OPTIONS -10
+#define GLOBAL_OPTIONS -1
+
+typedef struct
+{
+ int x, y, width, height;
+} AREA;
+
+typedef struct
+{
+ char *screen;
+ char *aspect;
+ char *resolution;
+ char *view;
+} ScreenParams;
+
+// List of artwork types to display in the screen shot area
+enum
+{
+ // these must match array of strings image_tabs_long_name in mui_opts.cpp
+ // if you add new Tabs, be sure to also add them to the ComboBox init in dialogs.cpp
+ TAB_ARTWORK = 0,
+ TAB_BOSSES,
+ TAB_CABINET,
+ TAB_CONTROL_PANEL,
+ TAB_COVER,
+ TAB_ENDS,
+ TAB_FLYER,
+ TAB_GAMEOVER,
+ TAB_HOWTO,
+ TAB_LOGO,
+ TAB_MARQUEE,
+ TAB_PCB,
+ TAB_SCORES,
+ TAB_SELECT,
+ TAB_SCREENSHOT,
+ TAB_TITLE,
+ TAB_VERSUS,
+ TAB_HISTORY,
+ MAX_TAB_TYPES,
+ BACKGROUND,
+ TAB_ALL,
+ TAB_NONE
+};
+// Because we have added the Options after MAX_TAB_TYPES, we have to subtract 3 here
+// (that's how many options we have after MAX_TAB_TYPES)
+#define TAB_SUBTRACT 3
+
+BOOL OptionsInit(void);
+
+#define OPTIONS_TYPE_GLOBAL -1
+#define OPTIONS_TYPE_FOLDER -2
+
+bool AreOptionsEqual(windows_options &opts1, windows_options &opts2);
+void OptionsCopy(windows_options &source, windows_options &dest);
+void SetDirectories(windows_options &opts);
+
+void load_options(windows_options &opts, OPTIONS_TYPE opt_type, int game_num, bool set_system_name);
+void save_options(windows_options &opts, OPTIONS_TYPE opt_type, int game_num);
+
+void SetSystemName(windows_options &opts, OPTIONS_TYPE opt_type, int driver_index);
+
+windows_options &MameUIGlobal(void);
+
+void LoadFolderFlags(void);
+
+// Start interface to directories.h
+const string GetRomDirs(void);
+void SetRomDirs(const char *paths);
+
+const string GetSampleDirs(void);
+void SetSampleDirs(const char *paths);
+
+const string GetArtDir(void);
+void SetArtDir(const char *path);
+
+const string GetArtworkDir(void);
+void SetArtworkDir(const char *path);
+
+const string GetBossesDir(void);
+void SetBossesDir(const char *path);
+
+const string GetCabinetDir(void);
+void SetCabinetDir(const char *path);
+
+const string GetCheatDir(void);
+void SetCheatDir(const char *path);
+
+const string GetCfgDir(void);
+void SetCfgDir(const char *path);
+
+const string GetControlPanelDir(void);
+void SetControlPanelDir(const char *path);
+
+const string GetCoversDir(void);
+void SetCoversDir(const char *path);
+
+const string GetCtrlrDir(void);
+void SetCtrlrDir(const char *path);
+
+const string GetCrosshairDir(void);
+void SetCrosshairDir(const char *paths);
+
+const string GetDatsDir(void);
+void SetDatsDir(const char *path);
+
+const string GetDiffDir(void);
+void SetDiffDir(const char *path);
+
+const string GetEndsDir(void);
+void SetEndsDir(const char *path);
+
+const string GetFlyerDir(void);
+void SetFlyerDir(const char *path);
+
+const string GetFolderDir(void);
+void SetFolderDir(const char *path);
+
+const string GetFontDir(void);
+void SetFontDir(const char *paths);
+
+const string GetGameOverDir(void);
+void SetGameOverDir(const char *path);
+
+const string GetHashDirs(void);
+void SetHashDirs(const char *paths);
+
+const string GetHLSLDir(void);
+void SetHLSLDir(const char *path);
+
+const string GetHowToDir(void);
+void SetHowToDir(const char *path);
+
+const string GetIconsDir(void);
+void SetIconsDir(const char *path);
+
+const string GetImgDir(void);
+void SetImgDir(const char *path);
+
+const char *GetIniDir(void);
+void SetIniDir(const char *path);
+
+const string GetInpDir(void);
+void SetInpDir(const char *path);
+
+const string GetLangDir(void);
+void SetLangDir(const char *path);
+
+const string GetLogoDir(void);
+void SetLogoDir(const char *path);
+
+const string GetManualsDir(void);
+void SetManualsDir(const char* path);
+
+const string GetMarqueeDir(void);
+void SetMarqueeDir(const char *path);
+
+const string GetNvramDir(void);
+void SetNvramDir(const char *path);
+
+const string GetPcbDir(void);
+void SetPcbDir(const char *path);
+
+const string GetPluginsDir(void);
+void SetPluginsDir(const char *path);
+
+const string GetScoresDir(void);
+void SetScoresDir(const char *path);
+
+const string GetStateDir(void);
+void SetStateDir(const char *path);
+
+const string GetTitlesDir(void);
+void SetTitlesDir(const char *path);
+
+const string GetSelectDir(void);
+void SetSelectDir(const char *path);
+
+const string GetSWDir(void);
+void SetSWDir(const char *path);
+
+const string GetVersusDir(void);
+void SetVersusDir(const char *path);
+
+const string GetVideoDir(void);
+void SetVideoDir(const char *path);
+
+// End interface to directories.h
+
+void SaveOptions(void);
+void SaveDefaultOptions(void);
+void SaveGameListOptions(void);
+
+void ResetGUI(void);
+void ResetGameDefaults(void);
+void ResetAllGameOptions(void);
+
+const char * GetImageTabLongName(int tab_index);
+const char * GetImageTabShortName(int tab_index);
+
+void SetViewMode(int val);
+int GetViewMode(void);
+
+void SetGameCheck(BOOL game_check);
+BOOL GetGameCheck(void);
+
+void SetJoyGUI(BOOL use_joygui);
+BOOL GetJoyGUI(void);
+
+void SetKeyGUI(BOOL use_keygui);
+BOOL GetKeyGUI(void);
+
+void SetCycleScreenshot(int cycle_screenshot);
+int GetCycleScreenshot(void);
+
+void SetStretchScreenShotLarger(BOOL stretch);
+BOOL GetStretchScreenShotLarger(void);
+
+void SetScreenshotBorderSize(int size);
+int GetScreenshotBorderSize(void);
+
+void SetScreenshotBorderColor(COLORREF uColor);
+COLORREF GetScreenshotBorderColor(void);
+
+void SetFilterInherit(BOOL inherit);
+BOOL GetFilterInherit(void);
+
+void SetOffsetClones(BOOL offset);
+BOOL GetOffsetClones(void);
+
+void SetSavedFolderID(UINT val);
+UINT GetSavedFolderID(void);
+
+void SetOverrideRedX(BOOL val);
+BOOL GetOverrideRedX(void);
+
+BOOL GetShowFolder(int folder);
+void SetShowFolder(int folder,BOOL show);
+
+void SetShowStatusBar(BOOL val);
+BOOL GetShowStatusBar(void);
+
+void SetShowToolBar(BOOL val);
+BOOL GetShowToolBar(void);
+
+void SetShowTabCtrl(BOOL val);
+BOOL GetShowTabCtrl(void);
+
+void SetCurrentTab(int val);
+int GetCurrentTab(void);
+
+void SetDefaultGame(uint32_t val);
+uint32_t GetDefaultGame(void);
+
+void SetWindowArea(const AREA *area);
+void GetWindowArea(AREA *area);
+
+void SetWindowState(UINT state);
+UINT GetWindowState(void);
+
+void SetWindowPanes(int val);
+UINT GetWindowPanes(void);
+
+void SetColumnWidths(int widths[]);
+void GetColumnWidths(int widths[]);
+
+void SetColumnOrder(int order[]);
+void GetColumnOrder(int order[]);
+
+void SetColumnShown(int shown[]);
+void GetColumnShown(int shown[]);
+
+void SetSplitterPos(int splitterId, int pos);
+int GetSplitterPos(int splitterId);
+
+void SetCustomColor(int iIndex, COLORREF uColor);
+COLORREF GetCustomColor(int iIndex);
+
+void SetListFont(const LOGFONT *font);
+void GetListFont(LOGFONT *font);
+
+DWORD GetFolderFlags(int folder_index);
+
+void SetListFontColor(COLORREF uColor);
+COLORREF GetListFontColor(void);
+
+void SetListCloneColor(COLORREF uColor);
+COLORREF GetListCloneColor(void);
+
+int GetHistoryTab(void);
+void SetHistoryTab(int tab,BOOL show);
+
+int GetShowTab(int tab);
+void SetShowTab(int tab,BOOL show);
+BOOL AllowedToSetShowTab(int tab,BOOL show);
+
+void SetSortColumn(int column);
+int GetSortColumn(void);
+
+void SetSortReverse(BOOL reverse);
+BOOL GetSortReverse(void);
+
+const char *GetLanguageUI(void);
+
+bool GetEnablePlugins(void);
+
+const char *GetPlugins(void);
+
+const char *GetSnapName(void);
+void SetSnapName(const char *pattern);
+
+const string GetBgDir(void);
+void SetBgDir(const char *path);
+
+void ResetGameOptions(int driver_index);
+
+int GetRomAuditResults(uint32_t driver_index);
+void SetRomAuditResults(uint32_t driver_index, int audit_results);
+
+int GetSampleAuditResults(uint32_t driver_index);
+void SetSampleAuditResults(uint32_t driver_index, int audit_results);
+
+void IncrementPlayCount(uint32_t driver_index);
+uint32_t GetPlayCount(uint32_t driver_index);
+void ResetPlayCount(int driver_index);
+
+void IncrementPlayTime(uint32_t driver_index, uint32_t playtime);
+uint32_t GetPlayTime(uint32_t driver_index);
+void GetTextPlayTime(uint32_t driver_index, char *buf);
+void ResetPlayTime(int driver_index);
+
+const char * GetVersionString(void);
+
+bool DriverHasSoftware(uint32_t drvindex);
+
+void SaveDefaultOptions(void);
+
+BOOL IsGlobalOption(const char *option_name);
+
+
+
+// Keyboard control of ui
+input_seq* Get_ui_key_up(void);
+input_seq* Get_ui_key_down(void);
+input_seq* Get_ui_key_left(void);
+input_seq* Get_ui_key_right(void);
+input_seq* Get_ui_key_start(void);
+input_seq* Get_ui_key_pgup(void);
+input_seq* Get_ui_key_pgdwn(void);
+input_seq* Get_ui_key_home(void);
+input_seq* Get_ui_key_end(void);
+input_seq* Get_ui_key_ss_change(void);
+input_seq* Get_ui_key_history_up(void);
+input_seq* Get_ui_key_history_down(void);
+
+input_seq* Get_ui_key_context_filters(void);
+input_seq* Get_ui_key_select_random(void);
+input_seq* Get_ui_key_game_audit(void);
+input_seq* Get_ui_key_game_properties(void);
+input_seq* Get_ui_key_help_contents(void);
+input_seq* Get_ui_key_update_gamelist(void);
+input_seq* Get_ui_key_view_folders(void);
+input_seq* Get_ui_key_view_fullscreen(void);
+input_seq* Get_ui_key_view_pagetab(void);
+input_seq* Get_ui_key_view_picture_area(void);
+input_seq* Get_ui_key_view_software_area(void);
+input_seq* Get_ui_key_view_status(void);
+input_seq* Get_ui_key_view_toolbars(void);
+
+input_seq* Get_ui_key_view_tab_cabinet(void);
+input_seq* Get_ui_key_view_tab_cpanel(void);
+input_seq* Get_ui_key_view_tab_flyer(void);
+input_seq* Get_ui_key_view_tab_history(void);
+input_seq* Get_ui_key_view_tab_marquee(void);
+input_seq* Get_ui_key_view_tab_screenshot(void);
+input_seq* Get_ui_key_view_tab_title(void);
+input_seq* Get_ui_key_view_tab_pcb(void);
+input_seq* Get_ui_key_quit(void);
+
+
+int GetUIJoyUp(int joycodeIndex);
+void SetUIJoyUp(int joycodeIndex, int val);
+
+int GetUIJoyDown(int joycodeIndex);
+void SetUIJoyDown(int joycodeIndex, int val);
+
+int GetUIJoyLeft(int joycodeIndex);
+void SetUIJoyLeft(int joycodeIndex, int val);
+
+int GetUIJoyRight(int joycodeIndex);
+void SetUIJoyRight(int joycodeIndex, int val);
+
+int GetUIJoyStart(int joycodeIndex);
+void SetUIJoyStart(int joycodeIndex, int val);
+
+int GetUIJoyPageUp(int joycodeIndex);
+void SetUIJoyPageUp(int joycodeIndex, int val);
+
+int GetUIJoyPageDown(int joycodeIndex);
+void SetUIJoyPageDown(int joycodeIndex, int val);
+
+int GetUIJoyHome(int joycodeIndex);
+void SetUIJoyHome(int joycodeIndex, int val);
+
+int GetUIJoyEnd(int joycodeIndex);
+void SetUIJoyEnd(int joycodeIndex, int val);
+
+int GetUIJoySSChange(int joycodeIndex);
+void SetUIJoySSChange(int joycodeIndex, int val);
+
+int GetUIJoyHistoryUp(int joycodeIndex);
+void SetUIJoyHistoryUp(int joycodeIndex, int val);
+
+int GetUIJoyHistoryDown(int joycodeIndex);
+void SetUIJoyHistoryDown(int joycodeIndex, int val);
+
+int GetUIJoyExec(int joycodeIndex);
+void SetUIJoyExec(int joycodeIndex, int val);
+
+const string GetExecCommand(void);
+void SetExecCommand(char *cmd);
+
+int GetExecWait(void);
+void SetExecWait(int wait);
+
+BOOL GetHideMouseOnStartup(void);
+void SetHideMouseOnStartup(BOOL hide);
+
+BOOL GetRunFullScreen(void);
+void SetRunFullScreen(BOOL fullScreen);
+
+uint32_t GetDriverCacheLower(uint32_t driver_index);
+uint32_t GetDriverCacheUpper(uint32_t driver_index);
+void SetDriverCache(uint32_t driver_index, uint32_t val);
+BOOL RequiredDriverCache(void);
+void ForceRebuild(void);
+BOOL DriverIsComputer(uint32_t driver_index);
+BOOL DriverIsConsole(uint32_t driver_index);
+BOOL DriverIsModified(uint32_t driver_index);
+BOOL DriverIsImperfect(uint32_t driver_index);
+string GetGameName(uint32_t driver_index);
+
+// from optionsms.h (MESSUI)
+
+enum
+{
+ SW_COLUMN_IMAGES,
+ SW_COLUMN_MAX
+};
+
+enum
+{
+ SL_COLUMN_IMAGES,
+ SL_COLUMN_GOODNAME,
+ SL_COLUMN_MANUFACTURER,
+ SL_COLUMN_YEAR,
+ SL_COLUMN_PLAYABLE,
+ SL_COLUMN_USAGE,
+ SL_COLUMN_MAX
+};
+
+void SetSWColumnWidths(int widths[]);
+void GetSWColumnWidths(int widths[]);
+void SetSWColumnOrder(int order[]);
+void GetSWColumnOrder(int order[]);
+void SetSWColumnShown(int shown[]);
+void GetSWColumnShown(int shown[]);
+void SetSWSortColumn(int column);
+int GetSWSortColumn(void);
+void SetSWSortReverse(BOOL reverse);
+BOOL GetSWSortReverse(void);
+
+void SetSLColumnWidths(int widths[]);
+void GetSLColumnWidths(int widths[]);
+void SetSLColumnOrder(int order[]);
+void GetSLColumnOrder(int order[]);
+void SetSLColumnShown(int shown[]);
+void GetSLColumnShown(int shown[]);
+void SetSLSortColumn(int column);
+int GetSLSortColumn(void);
+void SetSLSortReverse(BOOL reverse);
+BOOL GetSLSortReverse(void);
+
+void SetSelectedSoftware(int driver_index, string opt_name, const char *software);
+
+void SetCurrentSoftwareTab(int val);
+int GetCurrentSoftwareTab(void);
+
+
+#endif
+
diff --git a/src/osd/winui/mui_util.cpp b/src/osd/winui/mui_util.cpp
new file mode 100644
index 00000000000..4ea23955d08
--- /dev/null
+++ b/src/osd/winui/mui_util.cpp
@@ -0,0 +1,859 @@
+// For licensing and usage information, read docs/winui_license.txt
+// MASTER
+//****************************************************************************
+
+/***************************************************************************
+
+ mui_util.cpp
+
+ ***************************************************************************/
+
+// standard windows headers
+#include <windows.h>
+#include <shellapi.h>
+
+// standard C headers
+#include <tchar.h>
+
+// MAME/MAMEUI headers
+#include "emu.h"
+#include "screen.h"
+#include "speaker.h"
+#include "unzip.h"
+#include "sound/samples.h"
+#include "winutf8.h"
+#include "winui.h"
+#include "mui_util.h"
+#include "mui_opts.h"
+#include "drivenum.h"
+#include "machine/ram.h"
+
+#include <shlwapi.h>
+
+/***************************************************************************
+ function prototypes
+ ***************************************************************************/
+
+/***************************************************************************
+ External variables
+ ***************************************************************************/
+
+/***************************************************************************
+ Internal structures
+ ***************************************************************************/
+struct DriversInfo
+{
+ int screenCount;
+ bool isClone;
+ bool isBroken;
+ bool isHarddisk;
+ bool hasOptionalBIOS;
+ bool isStereo;
+ bool isVector;
+ bool usesRoms;
+ bool usesSamples;
+ bool usesTrackball;
+ bool usesLightGun;
+ bool usesMouse;
+ bool supportsSaveState;
+ bool isVertical;
+ bool hasRam;
+};
+
+static std::vector<DriversInfo> drivers_info;
+static bool bFirst = true;
+
+
+enum
+{
+ DRIVER_CACHE_SCREEN = 0x000F,
+ DRIVER_CACHE_ROMS = 0x0010,
+ DRIVER_CACHE_CLONE = 0x0020,
+ DRIVER_CACHE_STEREO = 0x0040,
+ DRIVER_CACHE_BIOS = 0x0080,
+ DRIVER_CACHE_TRACKBALL = 0x0100,
+ DRIVER_CACHE_HARDDISK = 0x0200,
+ DRIVER_CACHE_SAMPLES = 0x0400,
+ DRIVER_CACHE_LIGHTGUN = 0x0800,
+ DRIVER_CACHE_VECTOR = 0x1000,
+ DRIVER_CACHE_MOUSE = 0x2000,
+ DRIVER_CACHE_RAM = 0x4000,
+};
+
+/***************************************************************************
+ External functions
+ ***************************************************************************/
+
+/*
+ ErrorMsg
+*/
+void __cdecl ErrorMsg(const char* fmt, ...)
+{
+ static FILE* pFile = NULL;
+ DWORD dwWritten;
+ char buf[5000];
+ char buf2[5000];
+ va_list va;
+
+ va_start(va, fmt);
+
+ vsprintf(buf, fmt, va);
+
+ win_message_box_utf8(GetActiveWindow(), buf, MAMEUINAME, MB_OK | MB_ICONERROR);
+
+ strcpy(buf2, MAMEUINAME ": ");
+ strcat(buf2,buf);
+ strcat(buf2, "\n");
+
+ WriteFile(GetStdHandle(STD_OUTPUT_HANDLE), buf2, strlen(buf2), &dwWritten, NULL);
+
+ if (pFile == NULL)
+ pFile = fopen("debug.txt", "wt");
+
+ if (pFile != NULL)
+ {
+ fprintf(pFile, "%s", buf2);
+ fflush(pFile);
+ }
+
+ va_end(va);
+}
+
+void __cdecl dprintf(const char* fmt, ...)
+{
+ char buf[5000];
+ va_list va;
+
+ va_start(va, fmt);
+
+ _vsnprintf(buf,sizeof(buf),fmt,va);
+
+ win_output_debug_string_utf8(buf);
+
+ va_end(va);
+}
+
+//============================================================
+// winui_message_box_utf8
+//============================================================
+
+int winui_message_box_utf8(HWND hWnd, const char *text, const char *caption, UINT type)
+{
+ int result = IDCANCEL;
+ wchar_t *t_text = ui_wstring_from_utf8(text);
+ wchar_t *t_caption = ui_wstring_from_utf8(caption);
+
+ if (!t_text)
+ return result;
+
+ if (!t_caption)
+ {
+ free(t_text);
+ return result;
+ }
+
+ result = MessageBox(hWnd, t_text, t_caption, type);
+ free(t_text);
+ free(t_caption);
+ return result;
+}
+
+void ErrorMessageBox(const char *fmt, ...)
+{
+ char buf[1024];
+ va_list ptr;
+
+ va_start(ptr, fmt);
+ vsnprintf(buf, ARRAY_LENGTH(buf), fmt, ptr);
+ winui_message_box_utf8(GetMainWindow(), buf, MAMEUINAME, MB_ICONERROR | MB_OK);
+ va_end(ptr);
+}
+
+void ShellExecuteCommon(HWND hWnd, const char *cName)
+{
+ wchar_t *tName = ui_wstring_from_utf8(cName);
+
+ if(!tName)
+ return;
+
+ HINSTANCE hErr = ShellExecute(hWnd, NULL, tName, NULL, NULL, SW_SHOWNORMAL);
+
+ if ((uintptr_t)hErr > 32)
+ {
+ free(tName);
+ return;
+ }
+
+ const char *msg = NULL;
+ switch((uintptr_t)hErr)
+ {
+ case 0:
+ msg = "The Operating System is out of memory or resources.";
+ break;
+
+ case ERROR_FILE_NOT_FOUND:
+ msg = "The specified file was not found.";
+ break;
+
+ case SE_ERR_NOASSOC :
+ msg = "There is no application associated with the given filename extension.";
+ break;
+
+ case SE_ERR_OOM :
+ msg = "There was not enough memory to complete the operation.";
+ break;
+
+ case SE_ERR_PNF :
+ msg = "The specified path was not found.";
+ break;
+
+ case SE_ERR_SHARE :
+ msg = "A sharing violation occurred.";
+ break;
+
+ default:
+ msg = "Unknown error.";
+ }
+
+ ErrorMessageBox("%s\r\nPath: '%s'", msg, cName);
+ free(tName);
+}
+
+UINT GetDepth(HWND hWnd)
+{
+ UINT nBPP;
+ HDC hDC;
+
+ hDC = GetDC(hWnd);
+
+ nBPP = GetDeviceCaps(hDC, BITSPIXEL) * GetDeviceCaps(hDC, PLANES);
+
+ ReleaseDC(hWnd, hDC);
+
+ return nBPP;
+}
+
+/*
+ * Return true if comctl32.dll is version 4.71 or greater
+ * otherwise return false.
+ */
+LONG GetCommonControlVersion()
+{
+ HMODULE hModule = GetModuleHandle(TEXT("comctl32"));
+
+ if (hModule)
+ {
+ FARPROC lpfnICCE = GetProcAddress(hModule, "InitCommonControlsEx");
+
+ if (NULL != lpfnICCE)
+ {
+ FARPROC lpfnDLLI = GetProcAddress(hModule, "DllInstall");
+
+ if (NULL != lpfnDLLI)
+ {
+ /* comctl 4.71 or greater */
+
+ // see if we can find out exactly
+
+ DLLGETVERSIONPROC pDllGetVersion;
+ pDllGetVersion = (DLLGETVERSIONPROC)GetProcAddress(hModule, "DllGetVersion");
+
+ /* Because some DLLs might not implement this function, you
+ must test for it explicitly. Depending on the particular
+ DLL, the lack of a DllGetVersion function can be a useful
+ indicator of the version. */
+
+ if(pDllGetVersion)
+ {
+ DLLVERSIONINFO dvi;
+ HRESULT hr;
+
+ ZeroMemory(&dvi, sizeof(dvi));
+ dvi.cbSize = sizeof(dvi);
+
+ hr = (*pDllGetVersion)(&dvi);
+
+ if (SUCCEEDED(hr))
+ {
+ return PACKVERSION(dvi.dwMajorVersion, dvi.dwMinorVersion);
+ }
+ }
+ return PACKVERSION(4,71);
+ }
+ return PACKVERSION(4,7);
+ }
+ return PACKVERSION(4,0);
+ }
+ /* DLL not found */
+ return PACKVERSION(0,0);
+}
+
+void DisplayTextFile(HWND hWnd, const char *cName)
+{
+ LPTSTR tName = ui_wstring_from_utf8(cName);
+ if( !tName )
+ return;
+
+ HINSTANCE hErr = ShellExecute(hWnd, NULL, tName, NULL, NULL, SW_SHOWNORMAL);
+ if ((uintptr_t)hErr > 32)
+ {
+ free(tName);
+ return;
+ }
+
+ LPCTSTR msg = 0;
+ switch((uintptr_t)hErr)
+ {
+ case 0:
+ msg = TEXT("The operating system is out of memory or resources.");
+ break;
+
+ case ERROR_FILE_NOT_FOUND:
+ msg = TEXT("The specified file was not found.");
+ break;
+
+ case SE_ERR_NOASSOC :
+ msg = TEXT("There is no application associated with the given filename extension.");
+ break;
+
+ case SE_ERR_OOM :
+ msg = TEXT("There was not enough memory to complete the operation.");
+ break;
+
+ case SE_ERR_PNF :
+ msg = TEXT("The specified path was not found.");
+ break;
+
+ case SE_ERR_SHARE :
+ msg = TEXT("A sharing violation occurred.");
+ break;
+
+ default:
+ msg = TEXT("Unknown error.");
+ }
+
+ MessageBox(NULL, msg, tName, MB_OK);
+
+ free(tName);
+}
+
+char* MyStrStrI(const char* pFirst, const char* pSrch)
+{
+ char* cp = (char*)pFirst;
+ char* s1;
+ char* s2;
+
+ while (*cp)
+ {
+ s1 = cp;
+ s2 = (char*)pSrch;
+
+ while (*s1 && *s2 && !core_strnicmp(s1, s2, 1))
+ s1++, s2++;
+
+ if (!*s2)
+ return cp;
+
+ cp++;
+ }
+ return NULL;
+}
+
+char * ConvertToWindowsNewlines(const char *source)
+{
+ static char buf[2048 * 2048];
+ char *dest;
+
+ dest = buf;
+ while (*source != 0)
+ {
+ if (*source == '\n')
+ {
+ *dest++ = '\r';
+ *dest++ = '\n';
+ }
+ else
+ *dest++ = *source;
+ source++;
+ }
+ *dest = 0;
+ return buf;
+}
+
+/* Lop off path and extention from a source file name
+ * This assumes their is a pathname passed to the function
+ * like src\drivers\blah.c
+ */
+const char * GetDriverFilename(uint32_t nIndex)
+{
+ static char tmp[40];
+ std::string driver = core_filename_extract_base(driver_list::driver(nIndex).type.source());
+ strcpy(tmp, driver.c_str());
+ return tmp;
+}
+
+BOOL isDriverVector(const machine_config *config)
+{
+ const screen_device *screen = config->first_screen();
+
+ if (screen)
+ if (SCREEN_TYPE_VECTOR == screen->screen_type())
+ return true;
+
+ return false;
+}
+
+int numberOfScreens(const machine_config *config)
+{
+ screen_device_iterator scriter(config->root_device());
+ return scriter.count();
+}
+
+int numberOfSpeakers(const machine_config *config)
+{
+ speaker_device_iterator iter(config->root_device());
+ return iter.count();
+}
+
+static void SetDriversInfo(void)
+{
+ uint32_t cache;
+ uint32_t total = driver_list::total();
+ struct DriversInfo *gameinfo = NULL;
+
+ for (uint32_t ndriver = 0; ndriver < total; ndriver++)
+ {
+ gameinfo = &drivers_info[ndriver];
+ cache = gameinfo->screenCount & DRIVER_CACHE_SCREEN;
+
+ if (gameinfo->isClone)
+ cache += DRIVER_CACHE_CLONE;
+
+ if (gameinfo->isHarddisk)
+ cache += DRIVER_CACHE_HARDDISK;
+
+ if (gameinfo->hasOptionalBIOS)
+ cache += DRIVER_CACHE_BIOS;
+
+ if (gameinfo->isStereo)
+ cache += DRIVER_CACHE_STEREO;
+
+ if (gameinfo->isVector)
+ cache += DRIVER_CACHE_VECTOR;
+
+ if (gameinfo->usesRoms)
+ cache += DRIVER_CACHE_ROMS;
+
+ if (gameinfo->usesSamples)
+ cache += DRIVER_CACHE_SAMPLES;
+
+ if (gameinfo->usesTrackball)
+ cache += DRIVER_CACHE_TRACKBALL;
+
+ if (gameinfo->usesLightGun)
+ cache += DRIVER_CACHE_LIGHTGUN;
+
+ if (gameinfo->usesMouse)
+ cache += DRIVER_CACHE_MOUSE;
+
+ if (gameinfo->hasRam)
+ cache += DRIVER_CACHE_RAM;
+
+ SetDriverCache(ndriver, cache);
+ }
+}
+
+static void InitDriversInfo(void)
+{
+ printf("InitDriversInfo: A\n");fflush(stdout);
+ int num_speakers;
+ uint32_t total = driver_list::total();
+ const game_driver *gamedrv = NULL;
+ struct DriversInfo *gameinfo = NULL;
+ const rom_entry *region, *rom;
+
+ for (uint32_t ndriver = 0; ndriver < total; ndriver++)
+ {
+ uint32_t cache = GetDriverCacheLower(ndriver);
+ gamedrv = &driver_list::driver(ndriver);
+ gameinfo = &drivers_info[ndriver];
+ machine_config config(*gamedrv, MameUIGlobal());
+
+ bool const have_parent(strcmp(gamedrv->parent, "0"));
+ auto const parent_idx(have_parent ? driver_list::find(gamedrv->parent) : -1);
+ gameinfo->isClone = ( !have_parent || (0 > parent_idx) || BIT(GetDriverCacheLower(parent_idx),9)) ? false : true;
+ gameinfo->isBroken = (cache & 0x4040) ? true : false; // (MACHINE_NOT_WORKING | MACHINE_MECHANICAL)
+ gameinfo->supportsSaveState = BIT(cache, 7) ^ 1; //MACHINE_SUPPORTS_SAVE
+ gameinfo->isHarddisk = false;
+ gameinfo->isVertical = BIT(cache, 2); //ORIENTATION_SWAP_XY
+
+ ram_device_iterator iter1(config.root_device());
+ gameinfo->hasRam = (iter1.first() );
+
+ for (device_t &device : device_iterator(config.root_device()))
+ for (region = rom_first_region(device); region; region = rom_next_region(region))
+ if (ROMREGION_ISDISKDATA(region))
+ gameinfo->isHarddisk = true;
+
+ gameinfo->hasOptionalBIOS = false;
+ if (gamedrv->rom)
+ {
+ auto rom_entries = rom_build_entries(gamedrv->rom);
+ for (rom = rom_entries.data(); !ROMENTRY_ISEND(rom); rom++)
+ if (ROMENTRY_ISSYSTEM_BIOS(rom))
+ gameinfo->hasOptionalBIOS = true;
+ }
+
+ num_speakers = numberOfSpeakers(&config);
+
+ gameinfo->isStereo = (num_speakers > 1);
+ gameinfo->screenCount = numberOfScreens(&config);
+ gameinfo->isVector = isDriverVector(&config); // ((drv.video_attributes & VIDEO_TYPE_VECTOR) != 0);
+ gameinfo->usesRoms = false;
+ for (device_t &device : device_iterator(config.root_device()))
+ for (region = rom_first_region(device); region; region = rom_next_region(region))
+ for (rom = rom_first_file(region); rom; rom = rom_next_file(rom))
+ gameinfo->usesRoms = true;
+
+ samples_device_iterator iter(config.root_device());
+ gameinfo->usesSamples = iter.count() ? true : false;
+
+ gameinfo->usesTrackball = false;
+ gameinfo->usesLightGun = false;
+ gameinfo->usesMouse = false;
+
+ if (gamedrv->ipt)
+ {
+ ioport_list portlist;
+ std::string errors;
+ for (device_t &cfg : device_iterator(config.root_device()))
+ if (cfg.input_ports())
+ portlist.append(cfg, errors);
+
+ for (auto &port : portlist)
+ {
+ for (ioport_field &field : port.second->fields())
+ {
+ UINT32 type;
+ type = field.type();
+ if (type == IPT_END)
+ break;
+ if (type == IPT_DIAL || type == IPT_PADDLE || type == IPT_TRACKBALL_X || type == IPT_TRACKBALL_Y || type == IPT_AD_STICK_X || type == IPT_AD_STICK_Y)
+ gameinfo->usesTrackball = true;
+ if (type == IPT_LIGHTGUN_X || type == IPT_LIGHTGUN_Y)
+ gameinfo->usesLightGun = true;
+ if (type == IPT_MOUSE_X || type == IPT_MOUSE_Y)
+ gameinfo->usesMouse = true;
+ }
+ }
+ }
+ }
+
+ SetDriversInfo();
+ printf("InitDriversInfo: Finished\n");fflush(stdout);
+}
+
+static int InitDriversCache(void)
+{
+ printf("InitDriversCache: A\n");fflush(stdout);
+ if (RequiredDriverCache())
+ {
+ printf("InitDriversCache: B\n");fflush(stdout);
+ InitDriversInfo();
+ return 0;
+ }
+
+ printf("InitDriversCache: C\n");fflush(stdout);
+ uint32_t cache_lower, cache_upper;
+ uint32_t total = driver_list::total();
+ struct DriversInfo *gameinfo = NULL;
+
+ printf("InitDriversCache: D\n");fflush(stdout);
+ for (uint32_t ndriver = 0; ndriver < total; ndriver++)
+ {
+ gameinfo = &drivers_info[ndriver];
+ cache_lower = GetDriverCacheLower(ndriver);
+ cache_upper = GetDriverCacheUpper(ndriver);
+
+ gameinfo->isBroken = (cache_lower & 0x4040) ? true : false; //MACHINE_NOT_WORKING | MACHINE_MECHANICAL
+ gameinfo->supportsSaveState = BIT(cache_lower, 7) ? false : true; //MACHINE_SUPPORTS_SAVE
+ gameinfo->isVertical = BIT(cache_lower, 2) ? true : false; //ORIENTATION_XY
+ gameinfo->screenCount = cache_upper & DRIVER_CACHE_SCREEN;
+ gameinfo->isClone = ((cache_upper & DRIVER_CACHE_CLONE) != 0);
+ gameinfo->isHarddisk = ((cache_upper & DRIVER_CACHE_HARDDISK) != 0);
+ gameinfo->hasOptionalBIOS = ((cache_upper & DRIVER_CACHE_BIOS) != 0);
+ gameinfo->isStereo = ((cache_upper & DRIVER_CACHE_STEREO) != 0);
+ gameinfo->isVector = ((cache_upper & DRIVER_CACHE_VECTOR) != 0);
+ gameinfo->usesRoms = ((cache_upper & DRIVER_CACHE_ROMS) != 0);
+ gameinfo->usesSamples = ((cache_upper & DRIVER_CACHE_SAMPLES) != 0);
+ gameinfo->usesTrackball = ((cache_upper & DRIVER_CACHE_TRACKBALL) != 0);
+ gameinfo->usesLightGun = ((cache_upper & DRIVER_CACHE_LIGHTGUN) != 0);
+ gameinfo->usesMouse = ((cache_upper & DRIVER_CACHE_MOUSE) != 0);
+ gameinfo->hasRam = ((cache_upper & DRIVER_CACHE_RAM) != 0);
+ }
+
+ printf("InitDriversCache: Finished\n");fflush(stdout);
+ return 0;
+}
+
+static struct DriversInfo* GetDriversInfo(uint32_t driver_index)
+{
+ if (bFirst)
+ {
+ bFirst = false;
+
+ drivers_info.clear();
+ drivers_info.resize(driver_list::total());
+ std::fill(drivers_info.begin(), drivers_info.end(), DriversInfo{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0});
+ printf("DriversInfo: B\n");fflush(stdout);
+ InitDriversCache();
+ }
+
+ return &drivers_info[driver_index];
+}
+
+BOOL DriverIsClone(uint32_t driver_index)
+{
+ return GetDriversInfo(driver_index)->isClone;
+}
+
+BOOL DriverIsBroken(uint32_t driver_index)
+{
+ return GetDriversInfo(driver_index)->isBroken;
+}
+
+BOOL DriverIsHarddisk(uint32_t driver_index)
+{
+ return GetDriversInfo(driver_index)->isHarddisk;
+}
+
+BOOL DriverIsBios(uint32_t driver_index)
+{
+ return BIT(GetDriverCacheLower(driver_index), 9);
+}
+
+BOOL DriverIsMechanical(uint32_t driver_index)
+{
+ return BIT(GetDriverCacheLower(driver_index), 14);
+}
+
+BOOL DriverIsArcade(uint32_t driver_index)
+{
+ return ((GetDriverCacheLower(driver_index) & 3) == 0) ? true: false; //TYPE_ARCADE
+}
+
+BOOL DriverHasOptionalBIOS(uint32_t driver_index)
+{
+ return GetDriversInfo(driver_index)->hasOptionalBIOS;
+}
+
+BOOL DriverIsStereo(uint32_t driver_index)
+{
+ return GetDriversInfo(driver_index)->isStereo;
+}
+
+int DriverNumScreens(uint32_t driver_index)
+{
+ return GetDriversInfo(driver_index)->screenCount;
+}
+
+BOOL DriverIsVector(uint32_t driver_index)
+{
+ return GetDriversInfo(driver_index)->isVector;
+}
+
+BOOL DriverUsesRoms(uint32_t driver_index)
+{
+ return GetDriversInfo(driver_index)->usesRoms;
+}
+
+BOOL DriverUsesSamples(uint32_t driver_index)
+{
+ return GetDriversInfo(driver_index)->usesSamples;
+}
+
+BOOL DriverUsesTrackball(uint32_t driver_index)
+{
+ return GetDriversInfo(driver_index)->usesTrackball;
+}
+
+BOOL DriverUsesLightGun(uint32_t driver_index)
+{
+ return GetDriversInfo(driver_index)->usesLightGun;
+}
+
+BOOL DriverUsesMouse(uint32_t driver_index)
+{
+ return GetDriversInfo(driver_index)->usesMouse;
+}
+
+BOOL DriverSupportsSaveState(uint32_t driver_index)
+{
+ return GetDriversInfo(driver_index)->supportsSaveState;
+}
+
+BOOL DriverIsVertical(uint32_t driver_index)
+{
+ return GetDriversInfo(driver_index)->isVertical;
+}
+
+BOOL DriverHasRam(uint32_t driver_index)
+{
+ return GetDriversInfo(driver_index)->hasRam;
+}
+
+void FlushFileCaches(void)
+{
+ util::archive_file::cache_clear();
+}
+
+BOOL StringIsSuffixedBy(const char *s, const char *suffix)
+{
+ return (strlen(s) > strlen(suffix)) && (strcmp(s + strlen(s) - strlen(suffix), suffix) == 0);
+}
+
+/***************************************************************************
+ Win32 wrappers
+ ***************************************************************************/
+
+BOOL SafeIsAppThemed(void)
+{
+ BOOL bResult = false;
+ BOOL (WINAPI *pfnIsAppThemed)(void);
+
+ HMODULE hThemes = LoadLibrary(TEXT("uxtheme.dll"));
+ if (hThemes)
+ {
+ pfnIsAppThemed = (BOOL (WINAPI *)(void)) GetProcAddress(hThemes, "IsAppThemed");
+ if (pfnIsAppThemed)
+ bResult = pfnIsAppThemed();
+ FreeLibrary(hThemes);
+ }
+ return bResult;
+
+}
+
+
+void GetSystemErrorMessage(DWORD dwErrorId, TCHAR **tErrorMessage)
+{
+ if( FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER|FORMAT_MESSAGE_FROM_SYSTEM, NULL, dwErrorId, 0, (LPTSTR)tErrorMessage, 0, NULL) == 0 )
+ {
+ *tErrorMessage = (LPTSTR)LocalAlloc(LPTR, MAX_PATH * sizeof(TCHAR));
+ _tcscpy(*tErrorMessage, TEXT("Unknown Error"));
+ }
+}
+
+
+//============================================================
+// win_extract_icon_utf8
+//============================================================
+
+HICON win_extract_icon_utf8(HINSTANCE inst, const char* exefilename, UINT iconindex)
+{
+ HICON icon = 0;
+ TCHAR* t_exefilename = ui_wstring_from_utf8(exefilename);
+ if( !t_exefilename )
+ return icon;
+
+ icon = ExtractIcon(inst, t_exefilename, iconindex);
+
+ free(t_exefilename);
+
+ return icon;
+}
+
+
+
+//============================================================
+// win_tstring_strdup
+//============================================================
+
+TCHAR* win_tstring_strdup(LPCTSTR str)
+{
+ TCHAR *cpy = NULL;
+ if (str)
+ {
+ cpy = (TCHAR*)malloc((_tcslen(str) + 1) * sizeof(TCHAR));
+ if (cpy)
+ _tcscpy(cpy, str);
+ }
+ return cpy;
+}
+
+//============================================================
+// win_create_file_utf8
+//============================================================
+
+HANDLE win_create_file_utf8(const char* filename, DWORD desiredmode, DWORD sharemode, LPSECURITY_ATTRIBUTES securityattributes,
+ DWORD creationdisposition, DWORD flagsandattributes, HANDLE templatehandle)
+{
+ HANDLE result = 0;
+ TCHAR* t_filename = ui_wstring_from_utf8(filename);
+ if( !t_filename )
+ return result;
+
+ result = CreateFile(t_filename, desiredmode, sharemode, securityattributes, creationdisposition, flagsandattributes, templatehandle);
+
+ free(t_filename);
+
+ return result;
+}
+
+//============================================================
+// win_get_current_directory_utf8
+//============================================================
+
+DWORD win_get_current_directory_utf8(DWORD bufferlength, char* buffer)
+{
+ DWORD result = 0;
+ TCHAR* t_buffer = NULL;
+
+ if( bufferlength > 0 )
+ {
+ t_buffer = (TCHAR*)malloc((bufferlength * sizeof(TCHAR)) + 1);
+ if( !t_buffer )
+ return result;
+ }
+
+ result = GetCurrentDirectory(bufferlength, t_buffer);
+
+ char* utf8_buffer = NULL;
+ if( bufferlength > 0 )
+ {
+ utf8_buffer = ui_utf8_from_wstring(t_buffer);
+ if( !utf8_buffer )
+ {
+ free(t_buffer);
+ return result;
+ }
+ }
+
+ strncpy(buffer, utf8_buffer, bufferlength);
+
+ if( utf8_buffer )
+ free(utf8_buffer);
+
+ if( t_buffer )
+ free(t_buffer);
+
+ return result;
+}
+
+//============================================================
+// win_find_first_file_utf8
+//============================================================
+
+HANDLE win_find_first_file_utf8(const char* filename, LPWIN32_FIND_DATA findfiledata)
+{
+ HANDLE result = 0;
+ TCHAR* t_filename = ui_wstring_from_utf8(filename);
+ if( !t_filename )
+ return result;
+
+ result = FindFirstFile(t_filename, findfiledata);
+
+ free(t_filename);
+
+ return result;
+}
+
diff --git a/src/osd/winui/mui_util.h b/src/osd/winui/mui_util.h
new file mode 100644
index 00000000000..0939f7338d1
--- /dev/null
+++ b/src/osd/winui/mui_util.h
@@ -0,0 +1,102 @@
+// For licensing and usage information, read docs/winui_license.txt
+//****************************************************************************
+
+#ifndef MUI_UTIL_H
+#define MUI_UTIL_H
+
+#include "emucore.h"
+
+extern void __cdecl ErrorMsg(const char* fmt, ...);
+extern void __cdecl dprintf(const char* fmt, ...);
+
+
+extern UINT GetDepth(HWND hWnd);
+
+/* Open a text file */
+extern void DisplayTextFile(HWND hWnd, const char *cName);
+
+#define PACKVERSION(major,minor) MAKELONG(minor,major)
+
+/* Check for old version of comctl32.dll */
+extern LONG GetCommonControlVersion(void);
+
+void ShellExecuteCommon(HWND hWnd, const char *cName);
+extern char * MyStrStrI(const char* pFirst, const char* pSrch);
+extern char * ConvertToWindowsNewlines(const char *source);
+
+extern const char * GetDriverFilename(uint32_t nIndex);
+
+BOOL DriverIsClone(uint32_t driver_index);
+BOOL DriverIsBroken(uint32_t driver_index);
+BOOL DriverIsHarddisk(uint32_t driver_index);
+BOOL DriverHasOptionalBIOS(uint32_t driver_index);
+BOOL DriverIsStereo(uint32_t driver_index);
+BOOL DriverIsVector(uint32_t driver_index);
+int DriverNumScreens(uint32_t driver_index);
+BOOL DriverIsBios(uint32_t driver_index);
+BOOL DriverUsesRoms(uint32_t driver_index);
+BOOL DriverUsesSamples(uint32_t driver_index);
+BOOL DriverUsesTrackball(uint32_t driver_index);
+BOOL DriverUsesLightGun(uint32_t driver_index);
+BOOL DriverUsesMouse(uint32_t driver_index);
+BOOL DriverSupportsSaveState(uint32_t driver_index);
+BOOL DriverIsVertical(uint32_t driver_index);
+BOOL DriverIsMechanical(uint32_t driver_index);
+BOOL DriverIsArcade(uint32_t driver_index);
+BOOL DriverHasRam(uint32_t driver_index);
+
+int isDriverVector(const machine_config *config);
+int numberOfSpeakers(const machine_config *config);
+int numberOfScreens(const machine_config *config);
+
+void FlushFileCaches(void);
+
+BOOL StringIsSuffixedBy(const char *s, const char *suffix);
+
+BOOL SafeIsAppThemed(void);
+
+// provides result of FormatMessage()
+// resulting buffer must be free'd with LocalFree()
+void GetSystemErrorMessage(DWORD dwErrorId, TCHAR **tErrorMessage);
+
+HICON win_extract_icon_utf8(HINSTANCE inst, const char* exefilename, UINT iconindex);
+TCHAR* win_tstring_strdup(LPCTSTR str);
+HANDLE win_create_file_utf8(const char* filename, DWORD desiredmode, DWORD sharemode,
+ LPSECURITY_ATTRIBUTES securityattributes, DWORD creationdisposition,
+ DWORD flagsandattributes, HANDLE templatehandle);
+DWORD win_get_current_directory_utf8(DWORD bufferlength, char* buffer);
+HANDLE win_find_first_file_utf8(const char* filename, LPWIN32_FIND_DATA findfiledata);
+
+ // wstring_from_utf8
+ //============================================================
+
+WCHAR *ui_wstring_from_utf8(const char *utf8string)
+{
+ int char_count;
+ WCHAR *result;
+
+ // convert MAME string (UTF-8) to UTF-16
+ char_count = MultiByteToWideChar(CP_UTF8, 0, utf8string, -1, nullptr, 0);
+ result = (WCHAR *)malloc(char_count * sizeof(*result));
+ if (result != nullptr)
+ MultiByteToWideChar(CP_UTF8, 0, utf8string, -1, result, char_count);
+
+ return result;
+}
+
+char *ui_utf8_from_wstring(const WCHAR *wstring)
+{
+ int char_count;
+ char *result;
+
+ // convert UTF-16 to MAME string (UTF-8)
+ char_count = WideCharToMultiByte(CP_UTF8, 0, wstring, -1, nullptr, 0, nullptr, nullptr);
+ result = (char *)malloc(char_count * sizeof(*result));
+ if (result != nullptr)
+ WideCharToMultiByte(CP_UTF8, 0, wstring, -1, result, char_count, nullptr, nullptr);
+ return result;
+}
+
+
+#endif /* MUI_UTIL_H */
+
diff --git a/src/osd/winui/newui.h b/src/osd/winui/newui.h
new file mode 100644
index 00000000000..3a8d0ec6aef
--- /dev/null
+++ b/src/osd/winui/newui.h
@@ -0,0 +1,38 @@
+// For licensing and usage information, read docs/winui_license.txt
+//****************************************************************************
+//============================================================
+//
+// newui.h - NEWUI
+//
+//============================================================
+
+#ifndef NEWUI_H
+#define NEWUI_H
+
+///// INCLUDES /////
+
+#include <windows.h>
+#include <commdlg.h>
+#include <tchar.h>
+#include "emu.h"
+#include "mame.h"
+#include "emuopts.h"
+#include "ui/ui.h"
+#include "newuires.h"
+#include "strconv.h"
+#include "natkeyboard.h"
+#include "imagedev/cassette.h"
+#include "windows/window.h"
+#include "winutf8.h"
+#include "modules/lib/osdobj_common.h"
+
+
+
+// These are called from src/osd/windows/windows.c and
+// provide the linkage between newui and the core.
+
+LRESULT CALLBACK winwindow_video_window_proc_ui(HWND wnd, UINT message, WPARAM wparam, LPARAM lparam);
+
+int win_create_menu(running_machine &machine, HMENU *menus);
+
+#endif /* NEWUI_H */
diff --git a/src/osd/winui/newuires.h b/src/osd/winui/newuires.h
new file mode 100644
index 00000000000..aca0d2baccb
--- /dev/null
+++ b/src/osd/winui/newuires.h
@@ -0,0 +1,64 @@
+//{{NO_DEPENDENCIES}}
+// Microsoft Visual C++ generated include file.
+// Used by mess.rc
+//
+#define ID_FILE_LOADSTATE_NEWUI 3101
+#define ID_FILE_SAVESTATE 3102
+#define ID_FILE_SAVESTATE_AS 3103
+#define ID_FILE_SAVESCREENSHOT 3104
+#define ID_FILE_EXIT_NEWUI 3105
+#define ID_EDIT_PASTE 3106
+#define ID_FILE_HIDEMENUBAR 3107
+#define ID_OPTIONS_KEYBOARD 3108
+#define ID_OPTIONS_CONFIGURATION 3109
+#define ID_OPTIONS_DIPSWITCHES 3110
+#define ID_OPTIONS_MISCINPUT 3111
+#define ID_OPTIONS_USEMOUSE 3112
+#define ID_FILE_TOGGLEMENUBAR 3113
+#define ID_OPTIONS_SOFTRESET 3114
+#define ID_OPTIONS_HARDRESET 3115
+#define ID_OPTIONS_FRAMESKIP 3116
+#define ID_OPTIONS_PAUSE 3117
+#define ID_OPTIONS_JOYSTICKS 3118
+#define ID_OPTIONS_ANALOGCONTROLS 3119
+#define ID_FILE_FULLSCREEN 3120
+#define ID_OPTIONS_TOGGLEFPS 3122
+#define ID_KEYBOARD_EMULATED 3124
+#define ID_KEYBOARD_NATURAL 3125
+#define ID_KEYBOARD_CUSTOMIZE 3126
+#define ID_VIDEO_ROTATE_0 3127
+#define ID_VIDEO_ROTATE_90 3128
+#define ID_VIDEO_ROTATE_180 3129
+#define ID_VIDEO_ROTATE_270 3130
+#define ID_THROTTLE_50 3131
+#define ID_THROTTLE_100 3132
+#define ID_THROTTLE_200 3133
+#define ID_THROTTLE_500 3134
+#define ID_THROTTLE_1000 3135
+#define ID_THROTTLE_UNTHROTTLED 3136
+#define ID_FRAMESKIP_AUTO 3137
+#define ID_DEVICES 3138
+#define ID_HELP_ABOUT_NEWUI 3139
+#define ID_HELP_ABOUTSYSTEM 3140
+#define ID_FILE_OLDUI 3141
+#define ID_FILE_UIACTIVE 3142
+#define IDC_SHOW_MENU 3143
+#define IDI_ICON_CART 3200
+#define IDI_ICON_HARD 3201
+#define IDI_ICON_CASS 3202
+#define IDI_ICON_FLOP 3203
+#define IDI_ICON_PRIN 3204
+#define IDI_ICON_SERL 3205
+#define IDI_ICON_SNAP 3206
+#define IDR_RUNTIME_MENU 3300
+
+// Next default values for new objects
+//
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+#define _APS_NEXT_RESOURCE_VALUE 3144
+#define _APS_NEXT_COMMAND_VALUE 40008
+#define _APS_NEXT_CONTROL_VALUE 3306
+#define _APS_NEXT_SYMED_VALUE 101
+#endif
+#endif
diff --git a/src/osd/winui/picker.cpp b/src/osd/winui/picker.cpp
new file mode 100644
index 00000000000..300c63be467
--- /dev/null
+++ b/src/osd/winui/picker.cpp
@@ -0,0 +1,1603 @@
+// For licensing and usage information, read docs/winui_license.txt
+// MASTER
+//****************************************************************************
+
+// standard windows headers
+#define _WIN32_IE 0x0501
+#include <windows.h>
+#include <windowsx.h>
+#include <commctrl.h>
+
+// standard C headers
+#include <tchar.h>
+
+// MAME/MAMEUI headers
+#include "picker.h"
+#include "winui.h"
+#include "mui_opts.h"
+#include "treeview.h"
+
+
+// fix warning: cast does not match function type
+#if defined(__GNUC__) && defined(ListView_GetHeader)
+#undef ListView_GetHeader
+#endif
+#if defined(__GNUC__) && defined(ListView_GetImageList)
+#undef ListView_GetImageList
+#undef ListView_GetItemRect
+#endif
+
+#ifndef ListView_GetItemRect
+#define ListView_GetItemRect(w,i,p,c) \
+ (BOOL)SNDMSG((w),LVM_GETITEMRECT,i,((p != NULL)?(((LPRECT)(p))->left=(c),(LPARAM)(LPRECT)(p)):0))
+#endif
+
+#ifndef ListView_GetImageList
+#define ListView_GetImageList(w,i) (HIMAGELIST)(LRESULT)(int)SendMessage((w),LVM_GETIMAGELIST,(i),0)
+#endif // ListView_GetImageList
+
+#ifndef ListView_GetHeader
+#define ListView_GetHeader(w) (HWND)(LRESULT)(int)SNDMSG((w),LVM_GETHEADER,0,0)
+#endif // ListView_GetHeader
+
+#ifndef HDM_SETIMAGELIST
+#define HDM_SETIMAGELIST (HDM_FIRST + 8)
+#endif // HDM_SETIMAGELIST
+
+#ifndef Header_SetImageList
+#define Header_SetImageList(h,i) (HIMAGELIST)(LRESULT)(int)SNDMSG((h), HDM_SETIMAGELIST, 0, (LPARAM)i)
+#endif // Header_SetImageList
+
+#ifndef HDF_SORTUP
+#define HDF_SORTUP 0x400
+#endif
+
+#ifndef HDF_SORTDOWN
+#define HDF_SORTDOWN 0x200
+#endif
+
+
+
+struct PickerInfo
+{
+ const struct PickerCallbacks *pCallbacks;
+ WNDPROC pfnParentWndProc;
+ int nCurrentViewID;
+ int nLastItem;
+ int nColumnCount;
+ int *pnColumnsShown;
+ int *pnColumnsOrder;
+ UINT_PTR nTimer;
+ const LPCTSTR *ppszColumnNames;
+};
+
+
+static struct PickerInfo *GetPickerInfo(HWND hWnd)
+{
+ LONG_PTR l = GetWindowLongPtr(hWnd, GWLP_USERDATA);
+ return (struct PickerInfo *) l;
+}
+
+
+
+static LRESULT CallParentWndProc(WNDPROC pfnParentWndProc, HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
+{
+ LRESULT rc;
+
+ if (!pfnParentWndProc)
+ pfnParentWndProc = GetPickerInfo(hWnd)->pfnParentWndProc;
+
+ if (IsWindowUnicode(hWnd))
+ rc = CallWindowProcW(pfnParentWndProc, hWnd, message, wParam, lParam);
+ else
+ rc = CallWindowProcA(pfnParentWndProc, hWnd, message, wParam, lParam);
+ return rc;
+}
+
+static BOOL ListViewOnErase(HWND hWnd, HDC hDC)
+{
+ MYBITMAPINFO *pbmDesc = GetBackgroundInfo();
+ HBITMAP hBackground = GetBackgroundBitmap();
+ HPALETTE hPALbg = GetBackgroundPalette();
+
+ // this does not draw the background properly in report view
+
+ RECT rcClient;
+ GetClientRect(hWnd, &rcClient);
+
+ HDC htempDC = CreateCompatibleDC(hDC);
+ HBITMAP hOldBitmap = (HBITMAP)SelectObject(htempDC, hBackground);
+
+ HRGN rgnBitmap = CreateRectRgnIndirect(&rcClient);
+ SelectClipRgn(hDC, rgnBitmap);
+ DeleteBitmap(rgnBitmap);
+
+ HPALETTE hPAL = (!hPALbg) ? CreateHalftonePalette(hDC) : hPALbg;
+
+ if (GetDeviceCaps(htempDC, RASTERCAPS) & RC_PALETTE && hPAL != NULL)
+ {
+ SelectPalette(htempDC, hPAL, false);
+ RealizePalette(htempDC);
+ }
+
+ // Get x and y offset
+ POINT pt = {0,0};
+ MapWindowPoints(hWnd, GetTreeView(), &pt, 1);
+ POINT ptOrigin;
+ GetDCOrgEx(hDC, &ptOrigin);
+ ptOrigin.x -= pt.x;
+ ptOrigin.y -= pt.y;
+ ptOrigin.x = -GetScrollPos(hWnd, SB_HORZ);
+ ptOrigin.y = -GetScrollPos(hWnd, SB_VERT);
+
+ if (pbmDesc->bmWidth && pbmDesc->bmHeight)
+ for (int i = ptOrigin.x; i < rcClient.right; i += pbmDesc->bmWidth)
+ for (int j = ptOrigin.y; j < rcClient.bottom; j += pbmDesc->bmHeight)
+ BitBlt(hDC, i, j, pbmDesc->bmWidth, pbmDesc->bmHeight, htempDC, 0, 0, SRCCOPY);
+
+ SelectObject(htempDC, hOldBitmap);
+ DeleteDC(htempDC);
+
+ if (!pbmDesc->bmColors)
+ {
+ DeletePalette(hPAL);
+ hPAL = 0;
+ }
+
+ return true;
+}
+
+
+
+static BOOL ListViewNotify(HWND hWnd, LPNMHDR lpNmHdr)
+{
+ // This code is for using bitmap in the background
+ // Invalidate the right side of the control when a column is resized
+ if (lpNmHdr->code == HDN_ITEMCHANGINGA || lpNmHdr->code == HDN_ITEMCHANGINGW)
+ {
+ DWORD dwPos = GetMessagePos();
+ POINT pt;
+ pt.x = LOWORD(dwPos);
+ pt.y = HIWORD(dwPos);
+
+ RECT rcClient;
+ GetClientRect(hWnd, &rcClient);
+ ScreenToClient(hWnd, &pt);
+ rcClient.left = pt.x;
+ InvalidateRect(hWnd, &rcClient, false);
+ }
+ return false;
+}
+
+
+
+static BOOL ListViewContextMenu(HWND hwndPicker, LPARAM lParam)
+{
+ struct PickerInfo *pPickerInfo;
+ pPickerInfo = GetPickerInfo(hwndPicker);
+
+ // Extract the point out of the lparam
+ POINT pt;
+ pt.x = GET_X_LPARAM(lParam);
+ pt.y = GET_Y_LPARAM(lParam);
+ if (pt.x < 0 && pt.y < 0)
+ GetCursorPos(&pt);
+
+ // Figure out which header column was clicked, if at all
+ int nViewID = Picker_GetViewID(hwndPicker);
+ int nColumn = -1;
+
+ if ((nViewID == VIEW_REPORT) || (nViewID == VIEW_GROUPED))
+ {
+ HWND hwndHeader = ListView_GetHeader(hwndPicker);
+ POINT headerPt = pt;
+ ScreenToClient(hwndHeader, &headerPt);
+
+ RECT rcCol;
+ for (int i = 0; Header_GetItemRect(hwndHeader, i, &rcCol); i++)
+ {
+ if (PtInRect(&rcCol, headerPt))
+ {
+ nColumn = i;
+ break;
+ }
+ }
+ }
+
+ if (nColumn >= 0)
+ {
+ // A column header was clicked
+ if (pPickerInfo->pCallbacks->pfnOnHeaderContextMenu)
+ pPickerInfo->pCallbacks->pfnOnHeaderContextMenu(pt, nColumn);
+ }
+ else
+ {
+ // The body was clicked
+ if (pPickerInfo->pCallbacks->pfnOnBodyContextMenu)
+ pPickerInfo->pCallbacks->pfnOnBodyContextMenu(pt);
+ }
+ return true;
+}
+
+
+
+static void Picker_Free(struct PickerInfo *pPickerInfo)
+{
+ // Free up all resources associated with this picker structure
+ if (pPickerInfo->pnColumnsShown)
+ free(pPickerInfo->pnColumnsShown);
+ if (pPickerInfo->pnColumnsOrder)
+ free(pPickerInfo->pnColumnsOrder);
+ free(pPickerInfo);
+}
+
+
+
+static LRESULT CALLBACK ListViewWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
+{
+ struct PickerInfo *pPickerInfo;
+ LRESULT rc = 0;
+ BOOL bHandled = false;
+ WNDPROC pfnParentWndProc;
+ HWND hwndHeaderCtrl = NULL;
+ HFONT hHeaderCtrlFont = NULL;
+
+ pPickerInfo = GetPickerInfo(hWnd);
+ pfnParentWndProc = pPickerInfo->pfnParentWndProc;
+
+ switch(message)
+ {
+ case WM_MOUSEMOVE:
+ if (MouseHasBeenMoved())
+ ShowCursor(true);
+ break;
+
+ case WM_ERASEBKGND:
+ if (GetBackgroundBitmap())
+ {
+ rc = ListViewOnErase(hWnd, (HDC) wParam);
+ bHandled = true;
+ }
+ break;
+
+ case WM_NOTIFY:
+ bHandled = ListViewNotify(hWnd, (LPNMHDR) lParam);
+ break;
+
+ case WM_SETFONT:
+ hwndHeaderCtrl = ListView_GetHeader(hWnd);
+ if (hwndHeaderCtrl)
+ hHeaderCtrlFont = GetWindowFont(hwndHeaderCtrl);
+ break;
+
+ case WM_CONTEXTMENU:
+ bHandled = ListViewContextMenu(hWnd, lParam);
+ break;
+
+ case WM_DESTROY:
+ // Received WM_DESTROY; time to clean up
+ if (pPickerInfo->pCallbacks->pfnSetViewMode)
+ pPickerInfo->pCallbacks->pfnSetViewMode(pPickerInfo->nCurrentViewID);
+ Picker_Free(pPickerInfo);
+ SetWindowLongPtr(hWnd, GWLP_WNDPROC, (LONG_PTR) pfnParentWndProc);
+ SetWindowLongPtr(hWnd, GWLP_USERDATA, (LONG_PTR) NULL);
+ break;
+ }
+
+ if (!bHandled)
+ rc = CallParentWndProc(pfnParentWndProc, hWnd, message, wParam, lParam);
+
+ // If we received WM_SETFONT, reset header ctrl font back to original font
+ if (hwndHeaderCtrl)
+ SetWindowFont(hwndHeaderCtrl, hHeaderCtrlFont, true);
+
+ return rc;
+}
+
+
+
+// Re/initialize the ListControl Columns
+static void Picker_InternalResetColumnDisplay(HWND hWnd, BOOL bFirstTime)
+{
+ LV_COLUMN lvc;
+ int i = 0;
+ int nColumn = 0;
+ //int shown_columns;
+ LVCOLUMN col;
+ struct PickerInfo *pPickerInfo;
+ HRESULT res = 0;
+ BOOL b_res = 0;
+
+ pPickerInfo = GetPickerInfo(hWnd);
+
+ int *widths, *order, *shown;
+ widths = (int*)malloc(pPickerInfo->nColumnCount * sizeof(*widths));
+ order = (int*)malloc(pPickerInfo->nColumnCount * sizeof(*order));
+ shown = (int*)malloc(pPickerInfo->nColumnCount * sizeof(*shown));
+ if (!widths || !order || !shown)
+ goto done;
+
+ memset(widths, 0, pPickerInfo->nColumnCount * sizeof(*widths));
+ memset(order, 0, pPickerInfo->nColumnCount * sizeof(*order));
+ memset(shown, 0, pPickerInfo->nColumnCount * sizeof(*shown));
+ pPickerInfo->pCallbacks->pfnGetColumnWidths(widths);
+ pPickerInfo->pCallbacks->pfnGetColumnOrder(order);
+ pPickerInfo->pCallbacks->pfnGetColumnShown(shown);
+
+ if (!bFirstTime)
+ {
+ DWORD style = GetWindowLong(hWnd, GWL_STYLE);
+
+ // switch the list view to LVS_REPORT style so column widths reported correctly
+ SetWindowLong(hWnd, GWL_STYLE, (GetWindowLong(hWnd, GWL_STYLE) & ~LVS_TYPEMASK) | LVS_REPORT);
+
+ // Retrieve each of the column widths
+ i = 0;
+ memset(&col, 0, sizeof(col));
+ col.mask = LVCF_WIDTH;
+ while(ListView_GetColumn(hWnd, 0, &col))
+ {
+ nColumn = Picker_GetRealColumnFromViewColumn(hWnd, i++);
+ widths[nColumn] = col.cx;
+ b_res = ListView_DeleteColumn(hWnd, 0);
+ }
+
+ pPickerInfo->pCallbacks->pfnSetColumnWidths(widths);
+
+ // restore old style
+ SetWindowLong(hWnd, GWL_STYLE, style);
+ }
+
+ nColumn = 0;
+ for (i = 0; i < pPickerInfo->nColumnCount; i++)
+ {
+ if (shown[order[i]])
+ {
+ lvc.mask = LVCF_FMT | LVCF_WIDTH | LVCF_SUBITEM | LVCF_TEXT;
+ lvc.pszText = (LPTSTR) pPickerInfo->ppszColumnNames[order[i]];
+ lvc.iSubItem = nColumn;
+ lvc.cx = widths[order[i]];
+ lvc.fmt = LVCFMT_LEFT;
+ if (lvc.pszText[0] > 0) // column name cannot be blank
+ {
+ res = ListView_InsertColumn(hWnd, nColumn, &lvc);
+ pPickerInfo->pnColumnsOrder[nColumn] = order[i];
+ //printf("Visible column %d: Logical column %d; Width=%d\n", nColumn, order[i], widths[order[i]]);
+ nColumn++;
+ }
+ }
+ }
+
+ //shown_columns = nColumn;
+
+ /* Fill this in so we can still sort on columns NOT shown */
+ for (i = 0; i < pPickerInfo->nColumnCount && nColumn < pPickerInfo->nColumnCount; i++)
+ {
+ if (!shown[order[i]])
+ {
+ pPickerInfo->pnColumnsOrder[nColumn] = order[i];
+ nColumn++;
+ }
+ }
+
+ if (GetListFontColor() == RGB(255, 255, 255))
+ b_res = ListView_SetTextColor(hWnd, RGB(240, 240, 240));
+ else
+ b_res = ListView_SetTextColor(hWnd, GetListFontColor());
+
+done:
+ if (widths)
+ free(widths);
+ if (order)
+ free(order);
+ if (shown)
+ free(shown);
+ res++;
+ b_res++;
+}
+
+
+
+void Picker_ResetColumnDisplay(HWND hWnd)
+{
+ Picker_InternalResetColumnDisplay(hWnd, false);
+}
+
+
+
+void Picker_ClearIdle(HWND hwndPicker)
+{
+ struct PickerInfo *pPickerInfo;
+
+ pPickerInfo = GetPickerInfo(hwndPicker);
+ if (pPickerInfo->nTimer)
+ {
+ KillTimer(hwndPicker, 0);
+ pPickerInfo->nTimer = 0;
+ }
+}
+
+
+
+static void CALLBACK Picker_TimerProc(HWND hwndPicker, UINT uMsg, UINT_PTR idEvent, DWORD dwTime)
+{
+ struct PickerInfo *pPickerInfo;
+ DWORD nTickCount = 0;
+ DWORD nMaxIdleTicks = 50;
+
+ pPickerInfo = GetPickerInfo(hwndPicker);
+ BOOL bContinueIdle = false;
+ DWORD nBaseTickCount = GetTickCount();
+
+ // This idle procedure will loop until either idling is over, or until
+ // a specified amount of time elapses (in this case, 50ms). This frees
+ // idle callbacks of any responsibility for balancing their workloads; the
+ // picker code will
+ do
+ {
+ if (pPickerInfo->pCallbacks->pfnOnIdle)
+ bContinueIdle = pPickerInfo->pCallbacks->pfnOnIdle(hwndPicker);
+ nTickCount = GetTickCount();
+ }
+ while(bContinueIdle && ((nTickCount - nBaseTickCount) < nMaxIdleTicks));
+
+ if (!bContinueIdle)
+ Picker_ClearIdle(hwndPicker);
+}
+
+
+
+// Instructs this picker to reset idling; idling will continue until the
+// idle function returns false
+void Picker_ResetIdle(HWND hwndPicker)
+{
+ struct PickerInfo *pPickerInfo;
+
+ pPickerInfo = GetPickerInfo(hwndPicker);
+
+ Picker_ClearIdle(hwndPicker);
+ if (pPickerInfo->pCallbacks->pfnOnIdle)
+ pPickerInfo->nTimer = SetTimer(hwndPicker, 0, 0, Picker_TimerProc);
+}
+
+
+
+BOOL Picker_IsIdling(HWND hwndPicker)
+{
+ struct PickerInfo *pPickerInfo;
+ pPickerInfo = GetPickerInfo(hwndPicker);
+ return pPickerInfo->nTimer != 0;
+}
+
+
+
+BOOL SetupPicker(HWND hwndPicker, const struct PickerOptions *pOptions)
+{
+ struct PickerInfo *pPickerInfo;
+ int i = 0;
+ LONG_PTR l = 0;
+ HRESULT res = 0;
+
+ //assert(hwndPicker);
+
+ // Allocate the list view struct
+ pPickerInfo = (struct PickerInfo *) malloc(sizeof(struct PickerInfo));
+ if (!pPickerInfo)
+ return false;
+
+ // And fill it out
+ memset(pPickerInfo, 0, sizeof(*pPickerInfo));
+ pPickerInfo->pCallbacks = pOptions->pCallbacks;
+ pPickerInfo->nColumnCount = pOptions->nColumnCount;
+ pPickerInfo->ppszColumnNames = pOptions->ppszColumnNames;
+ pPickerInfo->nLastItem = -1;
+
+ if (pPickerInfo->nColumnCount)
+ {
+ // Allocate space for the column order and columns shown array
+ pPickerInfo->pnColumnsOrder = (int*)malloc(pPickerInfo->nColumnCount *
+ sizeof(*pPickerInfo->pnColumnsOrder));
+ pPickerInfo->pnColumnsShown = (int*)malloc(pPickerInfo->nColumnCount *
+ sizeof(*pPickerInfo->pnColumnsShown));
+ if (!pPickerInfo->pnColumnsOrder || !pPickerInfo->pnColumnsShown)
+ goto error;
+
+ // set up initial values
+ for (i = 0; i < pPickerInfo->nColumnCount; i++)
+ {
+ pPickerInfo->pnColumnsOrder[i] = i;
+ pPickerInfo->pnColumnsShown[i] = true;
+ }
+
+ if (GetUseOldControl())
+ {
+ if (pPickerInfo->pCallbacks->pfnSetColumnOrder)
+ pPickerInfo->pCallbacks->pfnSetColumnOrder(pPickerInfo->pnColumnsOrder);
+ if (pPickerInfo->pCallbacks->pfnSetColumnShown)
+ pPickerInfo->pCallbacks->pfnSetColumnShown(pPickerInfo->pnColumnsShown);
+ }
+ else
+ {
+ if (pPickerInfo->pCallbacks->pfnGetColumnOrder)
+ pPickerInfo->pCallbacks->pfnGetColumnOrder(pPickerInfo->pnColumnsOrder);
+ if (pPickerInfo->pCallbacks->pfnGetColumnShown)
+ pPickerInfo->pCallbacks->pfnGetColumnShown(pPickerInfo->pnColumnsShown);
+ }
+ }
+
+ // Hook in our wndproc and userdata pointer
+ l = GetWindowLongPtr(hwndPicker, GWLP_WNDPROC);
+ pPickerInfo->pfnParentWndProc = (WNDPROC) l;
+ SetWindowLongPtr(hwndPicker, GWLP_USERDATA, (LONG_PTR) pPickerInfo);
+ SetWindowLongPtr(hwndPicker, GWLP_WNDPROC, (LONG_PTR) ListViewWndProc);
+
+ res = ListView_SetExtendedListViewStyle(hwndPicker, LVS_EX_FULLROWSELECT | LVS_EX_HEADERDRAGDROP |
+ LVS_EX_UNDERLINEHOT | LVS_EX_UNDERLINECOLD | LVS_EX_LABELTIP);
+
+ Picker_InternalResetColumnDisplay(hwndPicker, true);
+ Picker_ResetIdle(hwndPicker);
+ res++;
+ return true;
+
+error:
+ if (pPickerInfo)
+ Picker_Free(pPickerInfo);
+ return false;
+}
+
+
+
+int Picker_GetViewID(HWND hwndPicker)
+{
+ struct PickerInfo *pPickerInfo;
+ pPickerInfo = GetPickerInfo(hwndPicker);
+ return pPickerInfo->nCurrentViewID;
+}
+
+
+
+void Picker_SetViewID(HWND hwndPicker, int nViewID)
+{
+ struct PickerInfo *pPickerInfo;
+ pPickerInfo = GetPickerInfo(hwndPicker);
+
+ // Change the nCurrentViewID member
+ pPickerInfo->nCurrentViewID = nViewID;
+ if (pPickerInfo->pCallbacks->pfnSetViewMode)
+ pPickerInfo->pCallbacks->pfnSetViewMode(pPickerInfo->nCurrentViewID);
+
+ // Change the ListView flags in accordance
+ LONG_PTR nListViewStyle;
+ switch(nViewID)
+ {
+ case VIEW_LARGE_ICONS:
+ nListViewStyle = LVS_ICON;
+ break;
+ case VIEW_SMALL_ICONS:
+ nListViewStyle = LVS_SMALLICON;
+ break;
+ case VIEW_INLIST:
+ nListViewStyle = LVS_LIST;
+ break;
+ case VIEW_GROUPED:
+ case VIEW_REPORT:
+ default:
+ nListViewStyle = LVS_REPORT;
+ break;
+ }
+
+ DWORD dwStyle = GetWindowLong(hwndPicker, GWL_STYLE);
+ if (GetUseXPControl())
+ {
+ // RS Microsoft must have changed something in the Ownerdraw handling with Version 6 of the Common Controls
+ // as on all other OSes it works without this...
+ if (nViewID == VIEW_LARGE_ICONS || nViewID == VIEW_SMALL_ICONS)
+ {
+ // remove Ownerdraw style for Icon views
+ dwStyle &= ~LVS_OWNERDRAWFIXED;
+ if( nViewID == VIEW_SMALL_ICONS )
+ {
+ // to properly get them to arrange, otherwise the entries might overlap
+ // we have to call SetWindowLong to get it into effect !!
+ // It's no use just setting the Style, as it's changed again further down...
+ SetWindowLong(hwndPicker, GWL_STYLE, (GetWindowLong(hwndPicker, GWL_STYLE) & ~LVS_TYPEMASK) | LVS_ICON);
+ }
+ }
+ else
+ {
+ // add again..
+ dwStyle |= LVS_OWNERDRAWFIXED;
+ }
+ }
+
+ dwStyle &= ~LVS_TYPEMASK;
+ dwStyle |= nListViewStyle;
+ SetWindowLong(hwndPicker, GWL_STYLE, dwStyle);
+ RedrawWindow(hwndPicker, NULL, NULL, RDW_ERASE | RDW_INVALIDATE | RDW_FRAME);
+}
+
+
+static BOOL PickerHitTest(HWND hWnd)
+{
+ LVHITTESTINFO htInfo;
+ memset(&htInfo, 0, sizeof(htInfo));
+ RECT rect;
+ GetWindowRect(hWnd, &rect);
+ DWORD res = GetMessagePos();
+ POINTS p = MAKEPOINTS(res);
+ htInfo.pt.x = p.x - rect.left;
+ htInfo.pt.y = p.y - rect.top;
+ HRESULT result = ListView_HitTest(hWnd, &htInfo);
+ result++;
+ return (! (htInfo.flags & LVHT_NOWHERE));
+}
+
+
+int Picker_GetSelectedItem(HWND hWnd)
+{
+ int nItem = ListView_GetNextItem(hWnd, -1, LVIS_SELECTED | LVIS_FOCUSED);
+ if (nItem < 0)
+ return nItem;
+
+ LV_ITEM lvi;
+ memset(&lvi, 0, sizeof(lvi));
+ lvi.iItem = nItem;
+ lvi.mask = LVIF_PARAM;
+ BOOL res = ListView_GetItem(hWnd, &lvi);
+ res++;
+ return lvi.lParam;
+}
+
+
+// This highlights a selected game, and scrolls it into view
+void Picker_SetSelectedPick(HWND hWnd, uint32_t nIndex)
+{
+ // nCount is one more than number of last game
+ int nCount = ListView_GetItemCount(hWnd);
+ // No games to show
+ if (nCount < 1)
+ return;
+ nCount--;
+ if (nCount < nIndex)
+ nIndex = nCount;
+ // Highlight a game
+ ListView_SetItemState(hWnd, nIndex, LVIS_FOCUSED | LVIS_SELECTED, LVIS_FOCUSED | LVIS_SELECTED);
+ // Bring the game into view
+ (void)ListView_EnsureVisible(hWnd, nIndex, false);
+}
+
+
+
+void Picker_SetSelectedItem(HWND hWnd, uint32_t nItem)
+{
+ LV_FINDINFO lvfi;
+ lvfi.flags = LVFI_PARAM;
+ lvfi.lParam = nItem;
+ int i = ListView_FindItem(hWnd, -1, &lvfi);
+ if (i == -1)
+ {
+ POINT p = {0,0};
+ lvfi.flags = LVFI_NEARESTXY;
+ lvfi.pt = p;
+ i = ListView_FindItem(hWnd, -1, &lvfi);
+ }
+ Picker_SetSelectedPick(hWnd, (i == -1) ? 0 : i);
+}
+
+
+
+static const TCHAR *Picker_CallGetItemString(HWND hwndPicker, int nItem, int nColumn, TCHAR *pszBuffer, UINT nBufferLength)
+{
+ // this call wraps the pfnGetItemString callback to properly set up the
+ // buffers, and normalize the results
+ struct PickerInfo *pPickerInfo;
+ const TCHAR *s;
+
+ pPickerInfo = GetPickerInfo(hwndPicker);
+ pszBuffer[0] = '\0';
+ s = NULL;
+
+ if (pPickerInfo->pCallbacks->pfnGetItemString)
+ s = pPickerInfo->pCallbacks->pfnGetItemString(hwndPicker, nItem, nColumn, pszBuffer, nBufferLength);
+
+ if (!s)
+ s = pszBuffer;
+ return s;
+}
+
+
+
+// put the arrow on the new sort column
+static void Picker_ResetHeaderSortIcon(HWND hwndPicker)
+{
+ struct PickerInfo *pPickerInfo;
+ pPickerInfo = GetPickerInfo(hwndPicker);
+ HWND hwndHeader = ListView_GetHeader(hwndPicker);
+ BOOL res;
+
+ // take arrow off non-current columns
+ HD_ITEM hdi;
+ hdi.mask = HDI_FORMAT;
+ hdi.fmt = HDF_STRING;
+ for (int i = 0; i < pPickerInfo->nColumnCount; i++)
+ if (i != pPickerInfo->pCallbacks->pfnGetSortColumn())
+ res = Header_SetItem(hwndHeader, Picker_GetViewColumnFromRealColumn(hwndPicker, i), &hdi);
+
+ if (GetUseXPControl())
+ {
+ // use built in sort arrows
+ hdi.mask = HDI_FORMAT;
+ hdi.fmt = HDF_STRING | (pPickerInfo->pCallbacks->pfnGetSortReverse() ? HDF_SORTDOWN : HDF_SORTUP);
+ }
+ else
+ {
+ // put our arrow icon next to the text
+ hdi.mask = HDI_FORMAT | HDI_IMAGE;
+ hdi.fmt = HDF_STRING | HDF_IMAGE | HDF_BITMAP_ON_RIGHT;
+ hdi.iImage = pPickerInfo->pCallbacks->pfnGetSortReverse() ? 1 : 0;
+ }
+
+ int nViewColumn = Picker_GetViewColumnFromRealColumn(hwndPicker, pPickerInfo->pCallbacks->pfnGetSortColumn());
+ res = Header_SetItem(hwndHeader, nViewColumn, &hdi);
+ res++;
+}
+
+
+
+struct CompareProcParams
+{
+ HWND hwndPicker;
+ struct PickerInfo *pPickerInfo;
+ int nSortColumn;
+ int nViewMode;
+ BOOL bReverse;
+};
+
+
+
+static void Picker_PopulateCompareProcParams(HWND hwndPicker, struct CompareProcParams *pParams)
+{
+ struct PickerInfo *pPickerInfo;
+
+ pPickerInfo = GetPickerInfo(hwndPicker);
+
+ // populate the CompareProcParams structure
+ memset(pParams, 0, sizeof(*pParams));
+ pParams->hwndPicker = hwndPicker;
+ pParams->pPickerInfo = pPickerInfo;
+ pParams->nViewMode = pPickerInfo->pCallbacks->pfnGetViewMode();
+ if (pPickerInfo->pCallbacks->pfnGetSortColumn)
+ pParams->nSortColumn = pPickerInfo->pCallbacks->pfnGetSortColumn();
+ if (pPickerInfo->pCallbacks->pfnGetSortReverse)
+ pParams->bReverse = pPickerInfo->pCallbacks->pfnGetSortReverse();
+}
+
+
+
+static int CALLBACK Picker_CompareProc(LPARAM index1, LPARAM index2, LPARAM nParamSort)
+{
+ struct CompareProcParams *pcpp = (struct CompareProcParams *) nParamSort;
+ struct PickerInfo *pPickerInfo = pcpp->pPickerInfo;
+ BOOL bCallCompare = true;
+ int nResult = 0, nParent1 = 0, nParent2 = 0;
+ TCHAR szBuffer1[256], szBuffer2[256];
+ const TCHAR *s1, *s2;
+
+ if (pcpp->nViewMode == VIEW_GROUPED)
+ {
+ // do our fancy compare, with clones grouped under parents
+ // first thing we need to do is identify both item's parents
+ if (pPickerInfo->pCallbacks->pfnFindItemParent)
+ {
+ nParent1 = pPickerInfo->pCallbacks->pfnFindItemParent(pcpp->hwndPicker, index1);
+ nParent2 = pPickerInfo->pCallbacks->pfnFindItemParent(pcpp->hwndPicker, index2);
+ }
+ else
+ {
+ nParent1 = nParent2 = -1;
+ }
+
+ if ((nParent1 < 0) && (nParent2 < 0))
+ {
+ // if both entries are both parents, we just do a basic sort
+ }
+ else if ((nParent1 >= 0) && (nParent2 >= 0))
+ {
+ // if both entries are children and the parents are different,
+ // sort on their parents
+ if (nParent1 != nParent2)
+ {
+ index1 = nParent1;
+ index2 = nParent2;
+ }
+ }
+ else
+ {
+ // one parent, one child
+ if (nParent1 >= 0)
+ {
+ // first one is a child
+ if (nParent1 == index2)
+ {
+ // if this is a child and its parent, put child after
+ nResult = 1;
+ bCallCompare = false;
+ }
+ else
+ {
+ // sort on parent
+ index1 = nParent1;
+ }
+ }
+ else
+ {
+ // second one is a child
+ if (nParent2 == index1)
+ {
+ // if this is a child and its parent, put child after
+ nResult = -1;
+ bCallCompare = false;
+ }
+ else
+ {
+ // sort on parent
+ index2 = nParent2;
+ }
+ }
+ }
+ }
+
+ if (bCallCompare)
+ {
+ if (pPickerInfo->pCallbacks->pfnCompare)
+ {
+ nResult = pPickerInfo->pCallbacks->pfnCompare(pcpp->hwndPicker,
+ index1, index2, pcpp->nSortColumn);
+ }
+ else
+ {
+ // no default sort proc, just get the string and compare them
+ s1 = Picker_CallGetItemString(pcpp->hwndPicker, index1, pcpp->nSortColumn,
+ szBuffer1, sizeof(szBuffer1) / sizeof(szBuffer1[0]));
+ s2 = Picker_CallGetItemString(pcpp->hwndPicker, index2, pcpp->nSortColumn,
+ szBuffer2, sizeof(szBuffer2) / sizeof(szBuffer2[0]));
+ nResult = _tcsicmp(s1, s2);
+ }
+
+ if (pcpp->bReverse)
+ nResult = -nResult;
+ }
+ return nResult;
+}
+
+
+
+void Picker_Sort(HWND hwndPicker)
+{
+ //struct PickerInfo *pPickerInfo;
+ struct CompareProcParams params;
+
+ //pPickerInfo = GetPickerInfo(hwndPicker);
+
+ // populate the CompareProcParams structure
+ Picker_PopulateCompareProcParams(hwndPicker, &params);
+
+ BOOL res = ListView_SortItems(hwndPicker, Picker_CompareProc, (LPARAM) &params);
+
+ Picker_ResetHeaderSortIcon(hwndPicker);
+
+ LV_FINDINFO lvfi;
+ memset(&lvfi, 0, sizeof(lvfi));
+ lvfi.flags = LVFI_PARAM;
+ lvfi.lParam = Picker_GetSelectedItem(hwndPicker);
+ int nItem = ListView_FindItem(hwndPicker, -1, &lvfi);
+
+ res = ListView_EnsureVisible(hwndPicker, nItem, false);
+ res++;
+}
+
+
+
+int Picker_InsertItemSorted(HWND hwndPicker, int nParam)
+{
+ //struct PickerInfo *pPickerInfo;
+ int nLow = 0, nMid = 0;
+ struct CompareProcParams params;
+ int nCompareResult = 0;
+ LVITEM lvi;
+ BOOL res = 0;
+
+ //pPickerInfo = GetPickerInfo(hwndPicker);
+
+ int nHigh = ListView_GetItemCount(hwndPicker);
+
+ // populate the CompareProcParams structure
+ Picker_PopulateCompareProcParams(hwndPicker, &params);
+
+ while(nLow < nHigh)
+ {
+ nMid = (nHigh + nLow) / 2;
+
+ memset(&lvi, 0, sizeof(lvi));
+ lvi.mask = LVIF_PARAM;
+ lvi.iItem = nMid;
+ res = ListView_GetItem(hwndPicker, &lvi);
+ nCompareResult = Picker_CompareProc(nParam, lvi.lParam, (LPARAM) &params);
+
+ if (nCompareResult > 0)
+ nLow = nMid + 1;
+ else if (nCompareResult < 0)
+ nHigh = nMid;
+ else
+ {
+ nLow = nMid;
+ break;
+ }
+ }
+
+ res++;
+ memset(&lvi, 0, sizeof(lvi));
+ lvi.mask = LVIF_IMAGE | LVIF_TEXT | LVIF_PARAM;
+ lvi.iItem = nLow;
+ lvi.iSubItem = 0;
+ lvi.lParam = nParam;
+ lvi.pszText = LPSTR_TEXTCALLBACK;
+ lvi.iImage = I_IMAGECALLBACK;
+
+ return ListView_InsertItem(hwndPicker, &lvi);
+}
+
+
+
+int Picker_GetRealColumnFromViewColumn(HWND hWnd, int nViewColumn)
+{
+ struct PickerInfo *pPickerInfo;
+ int nRealColumn = 0;
+
+ pPickerInfo = GetPickerInfo(hWnd);
+ if (nViewColumn >= 0 && nViewColumn < pPickerInfo->nColumnCount)
+ nRealColumn = pPickerInfo->pnColumnsOrder[nViewColumn];
+ return nRealColumn;
+}
+
+
+
+int Picker_GetViewColumnFromRealColumn(HWND hWnd, int nRealColumn)
+{
+ struct PickerInfo *pPickerInfo;
+
+ pPickerInfo = GetPickerInfo(hWnd);
+ for (int i = 0; i < pPickerInfo->nColumnCount; i++)
+ if (pPickerInfo->pnColumnsOrder[i] == nRealColumn)
+ return i;
+
+ // major error, shouldn't be possible, but no good way to warn
+ return 0;
+}
+
+
+
+BOOL Picker_HandleNotify(LPNMHDR lpNmHdr)
+{
+ struct PickerInfo *pPickerInfo;
+ HWND hWnd;
+ BOOL bResult = false;
+ NM_LISTVIEW *pnmv;
+ LV_DISPINFO *pDispInfo;
+ int nItem = 0, nColumn = 0;
+ const TCHAR *s;
+ BOOL bReverse = 0;
+
+ hWnd = lpNmHdr->hwndFrom;
+ pPickerInfo = GetPickerInfo(hWnd);
+ pnmv = (NM_LISTVIEW *) lpNmHdr;
+
+ switch(lpNmHdr->code)
+ {
+ case NM_RCLICK:
+ case NM_CLICK:
+ case NM_DBLCLK:
+ // don't allow selection of blank spaces in the listview
+ if (!PickerHitTest(hWnd))
+ {
+ // we have no current item selected
+ if (pPickerInfo->nLastItem != -1)
+ {
+ Picker_SetSelectedItem(hWnd, pPickerInfo->nLastItem);
+ }
+ bResult = true;
+ }
+ else if ((lpNmHdr->code == NM_DBLCLK) && (pPickerInfo->pCallbacks->pfnDoubleClick))
+ {
+ // double click!
+ pPickerInfo->pCallbacks->pfnDoubleClick();
+ bResult = true;
+ }
+ break;
+
+ case LVN_GETDISPINFO:
+ pDispInfo = (LV_DISPINFO *) lpNmHdr;
+ nItem = (int) pDispInfo->item.lParam;
+
+ if (pDispInfo->item.mask & LVIF_IMAGE)
+ {
+ // retrieve item image
+ if (pPickerInfo->pCallbacks->pfnGetItemImage)
+ pDispInfo->item.iImage = pPickerInfo->pCallbacks->pfnGetItemImage(hWnd, nItem);
+ else
+ pDispInfo->item.iImage = 0;
+ bResult = true;
+ }
+
+ if (pDispInfo->item.mask & LVIF_STATE)
+ {
+ pDispInfo->item.state = 0;
+ bResult = true;
+ }
+
+ if (pDispInfo->item.mask & LVIF_TEXT)
+ {
+ // retrieve item text
+ nColumn = Picker_GetRealColumnFromViewColumn(hWnd, pDispInfo->item.iSubItem);
+
+ s = Picker_CallGetItemString(hWnd, nItem, nColumn,
+ pDispInfo->item.pszText, pDispInfo->item.cchTextMax);
+
+ pDispInfo->item.pszText = (TCHAR *) s;
+ bResult = true;
+ }
+ break;
+
+ case LVN_ITEMCHANGED:
+ if ((pnmv->uOldState & LVIS_SELECTED)
+ && !(pnmv->uNewState & LVIS_SELECTED))
+ {
+ if (pnmv->lParam != -1)
+ pPickerInfo->nLastItem = pnmv->lParam;
+ if (pPickerInfo->pCallbacks->pfnLeavingItem)
+ pPickerInfo->pCallbacks->pfnLeavingItem(hWnd, pnmv->lParam);
+ }
+ if (!(pnmv->uOldState & LVIS_SELECTED)
+ && (pnmv->uNewState & LVIS_SELECTED))
+ {
+ if (pPickerInfo->pCallbacks->pfnEnteringItem)
+ pPickerInfo->pCallbacks->pfnEnteringItem(hWnd, pnmv->lParam);
+ }
+ bResult = true;
+ break;
+
+ case LVN_COLUMNCLICK:
+ // if clicked on the same column we're sorting by, reverse it
+ if (pPickerInfo->pCallbacks->pfnGetSortColumn() == Picker_GetRealColumnFromViewColumn(hWnd, pnmv->iSubItem))
+ bReverse = !pPickerInfo->pCallbacks->pfnGetSortReverse();
+ else
+ bReverse = false;
+ pPickerInfo->pCallbacks->pfnSetSortReverse(bReverse);
+ pPickerInfo->pCallbacks->pfnSetSortColumn(Picker_GetRealColumnFromViewColumn(hWnd, pnmv->iSubItem));
+ Picker_Sort(hWnd);
+ bResult = true;
+ break;
+
+ case LVN_BEGINDRAG:
+ if (pPickerInfo->pCallbacks->pfnBeginListViewDrag)
+ pPickerInfo->pCallbacks->pfnBeginListViewDrag(pnmv);
+ break;
+ }
+ return bResult;
+}
+
+
+
+int Picker_GetNumColumns(HWND hWnd)
+{
+ int nColumnCount = 0;
+ int *shown;
+ struct PickerInfo *pPickerInfo;
+ pPickerInfo = GetPickerInfo(hWnd);
+
+ shown = (int*)malloc(pPickerInfo->nColumnCount * sizeof(*shown));
+ if (!shown)
+ return -1;
+
+ pPickerInfo->pCallbacks->pfnGetColumnShown(shown);
+ HWND hwndHeader = ListView_GetHeader(hWnd);
+
+ if (GetUseOldControl() || (nColumnCount = Header_GetItemCount(hwndHeader)) < 1)
+ {
+ nColumnCount = 0;
+ for (int i = 0; i < pPickerInfo->nColumnCount ; i++ )
+ if (shown[i])
+ nColumnCount++;
+ }
+
+ free(shown);
+ return nColumnCount;
+}
+
+
+
+/* Add ... to Items in ListView if needed */
+static LPCTSTR MakeShortString(HDC hDC, LPCTSTR lpszLong, int nColumnLen, int nOffset)
+{
+ static const TCHAR szThreeDots[] = TEXT("...");
+ static TCHAR szShort[MAX_PATH];
+ int nStringLen = lstrlen(lpszLong);
+ SIZE size;
+
+ GetTextExtentPoint32(hDC, lpszLong, nStringLen, &size);
+ if (nStringLen == 0 || size.cx + nOffset <= nColumnLen)
+ return lpszLong;
+
+ lstrcpy(szShort, lpszLong);
+ GetTextExtentPoint32(hDC, szThreeDots, ARRAY_LENGTH(szThreeDots), &size);
+ int nAddLen = size.cx;
+
+ for (int i = nStringLen - 1; i > 0; i--)
+ {
+ szShort[i] = 0;
+ GetTextExtentPoint32(hDC, szShort, i, &size);
+ if (size.cx + nOffset + nAddLen <= nColumnLen)
+ break;
+ }
+
+ lstrcat(szShort, szThreeDots);
+
+ return szShort;
+}
+
+#define ListView_GetItemRect_Modified(hwnd,i,prc,code) (BOOL)SNDMSG((hwnd),LVM_GETITEMRECT,(WPARAM)(int)(i),(((RECT *)(prc))->left = (code),(LPARAM)(RECT *)(prc)))
+
+void Picker_HandleDrawItem(HWND hWnd, LPDRAWITEMSTRUCT lpDrawItemStruct)
+{
+ struct PickerInfo *pPickerInfo;
+ pPickerInfo = GetPickerInfo(hWnd);
+ int *order;
+ order = (int*)malloc(pPickerInfo->nColumnCount * sizeof(*order));
+ if (!order)
+ return;
+
+ HDC hDC = lpDrawItemStruct->hDC;
+ RECT rcItem = lpDrawItemStruct->rcItem;
+ UINT uiFlags = ILD_TRANSPARENT;
+ HIMAGELIST hImageList;
+ int nItem = lpDrawItemStruct->itemID;
+ COLORREF clrTextSave = 0;
+ COLORREF clrBkSave = 0;
+ COLORREF clrImage = GetSysColor(COLOR_WINDOW);
+ static TCHAR szBuff[MAX_PATH];
+ BOOL bFocus = (GetFocus() == hWnd);
+ LPCTSTR pszText;
+ UINT nStateImageMask = 0;
+ BOOL bSelected = 0;
+ LV_COLUMN lvc;
+ LV_ITEM lvi;
+ RECT rcAllLabels;
+ RECT rcLabel;
+ RECT rcIcon;
+ int offset = 0;
+ SIZE size;
+ int i = 0, j = 0;
+ int nColumn = 0;
+ BOOL bDrawAsChild = 0;
+ int indent_space = 0;
+ BOOL bColorChild = false;
+ BOOL bParentFound = false;
+ int nParent = 0;
+ HBITMAP hBackground = GetBackgroundBitmap();
+ MYBITMAPINFO *pbmDesc = GetBackgroundInfo();
+ BOOL res = 0;
+
+ int nColumnMax = Picker_GetNumColumns(hWnd);
+
+ if (GetUseOldControl())
+ pPickerInfo->pCallbacks->pfnGetColumnOrder(order);
+ else
+ {
+ /* Get the Column Order and save it */
+ res = ListView_GetColumnOrderArray(hWnd, nColumnMax, order);
+
+ /* Disallow moving column 0 */
+ if (order[0] != 0)
+ {
+ for (i = 0; i < nColumnMax; i++)
+ {
+ if (order[i] == 0)
+ {
+ order[i] = order[0];
+ order[0] = 0;
+ }
+ }
+ res = ListView_SetColumnOrderArray(hWnd, nColumnMax, order);
+ }
+ }
+
+ /* Labels are offset by a certain amount */
+ /* This offset is related to the width of a space character */
+ GetTextExtentPoint32(hDC, TEXT(" "), 1, &size);
+ offset = size.cx;
+
+ lvi.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_STATE | LVIF_PARAM;
+ lvi.iItem = nItem;
+ lvi.iSubItem = order[0];
+ lvi.pszText = szBuff;
+ lvi.cchTextMax = sizeof(szBuff) / sizeof(szBuff[0]);
+ lvi.stateMask = 0xFFFF; /* get all state flags */
+ res = ListView_GetItem(hWnd, &lvi);
+
+ bSelected = ((lvi.state & LVIS_DROPHILITED) || ( (lvi.state & LVIS_SELECTED) && ((bFocus) || (GetWindowLong(hWnd, GWL_STYLE) & LVS_SHOWSELALWAYS))));
+
+ /* figure out if we indent and draw grayed */
+ if (pPickerInfo->pCallbacks->pfnFindItemParent)
+ nParent = pPickerInfo->pCallbacks->pfnFindItemParent(hWnd, lvi.lParam);
+ else
+ nParent = -1;
+ bDrawAsChild = (pPickerInfo->pCallbacks->pfnGetViewMode() == VIEW_GROUPED && (nParent >= 0));
+
+ /* only indent if parent is also in this view */
+#if 1 // minimal listview flickering.
+ if ((nParent >= 0) && bDrawAsChild)
+ {
+ if (GetParentFound(lvi.lParam))
+ bParentFound = TRUE;
+ }
+#else
+ if ((nParent >= 0) && bDrawAsChild)
+ {
+ for (i = 0; i < ListView_GetItemCount(hWnd); i++)
+ {
+ lvi.mask = LVIF_PARAM;
+ lvi.iItem = i;
+ res = ListView_GetItem(hWnd, &lvi);
+
+ if (lvi.lParam == nParent)
+ {
+ bParentFound = TRUE;
+ break;
+ }
+ }
+ }
+#endif
+
+ if (pPickerInfo->pCallbacks->pfnGetOffsetChildren && pPickerInfo->pCallbacks->pfnGetOffsetChildren())
+ {
+ if (!bParentFound && bDrawAsChild)
+ {
+ /*Reset it, as no Parent is there*/
+ bDrawAsChild = false;
+ bColorChild = true;
+ }
+ else
+ {
+ nParent = -1;
+ bParentFound = false;
+ }
+ }
+
+ res = ListView_GetItemRect_Modified(hWnd, nItem, &rcAllLabels, LVIR_BOUNDS);
+ res = ListView_GetItemRect_Modified(hWnd, nItem, &rcLabel, LVIR_LABEL);
+
+ rcAllLabels.left = rcLabel.left;
+
+ if (hBackground)
+ {
+ RECT rcClient;
+ HRGN rgnBitmap;
+ RECT rcTmpBmp = rcItem;
+ RECT rcFirstItem;
+ HPALETTE hPAL;
+
+ HDC htempDC = CreateCompatibleDC(hDC);
+
+ HBITMAP oldBitmap = (HBITMAP)SelectObject(htempDC, hBackground);
+
+ GetClientRect(hWnd, &rcClient);
+ rcTmpBmp.right = rcClient.right;
+ /* We also need to check whether it is the last item
+ The update region has to be extended to the bottom if it is */
+ if (nItem == ListView_GetItemCount(hWnd) - 1)
+ rcTmpBmp.bottom = rcClient.bottom;
+
+ rgnBitmap = CreateRectRgnIndirect(&rcTmpBmp);
+ SelectClipRgn(hDC, rgnBitmap);
+ DeleteBitmap(rgnBitmap);
+
+ hPAL = GetBackgroundPalette();
+ if (hPAL == NULL)
+ hPAL = CreateHalftonePalette(hDC);
+
+ if (GetDeviceCaps(htempDC, RASTERCAPS) & RC_PALETTE && hPAL != NULL)
+ {
+ SelectPalette(htempDC, hPAL, false);
+ RealizePalette(htempDC);
+ }
+
+ res = ListView_GetItemRect_Modified(hWnd, 0, &rcFirstItem, LVIR_BOUNDS);
+
+ for (i = rcFirstItem.left; i < rcClient.right; i += pbmDesc->bmWidth)
+ for (j = rcFirstItem.top; j < rcClient.bottom; j += pbmDesc->bmHeight)
+ BitBlt(hDC, i, j, pbmDesc->bmWidth, pbmDesc->bmHeight, htempDC, 0, 0, SRCCOPY);
+
+ SelectObject(htempDC, oldBitmap);
+ DeleteDC(htempDC);
+
+ if (GetBackgroundPalette() == NULL)
+ {
+ DeletePalette(hPAL);
+ hPAL = NULL;
+ }
+ }
+
+ indent_space = 0;
+
+ if (bDrawAsChild)
+ {
+ RECT rect;
+
+ res = ListView_GetItemRect_Modified(hWnd, nItem, &rect, LVIR_ICON);
+
+ /* indent width of icon + the space between the icon and text
+ * so left of clone icon starts at text of parent
+ */
+ indent_space = rect.right - rect.left + offset;
+ }
+
+ rcAllLabels.left += indent_space;
+
+ if (bSelected)
+ {
+ HBRUSH hBrush;
+ HBRUSH hOldBrush;
+
+ if (bFocus)
+ {
+ clrTextSave = SetTextColor(hDC, GetSysColor(COLOR_HIGHLIGHTTEXT));
+ clrBkSave = SetBkColor(hDC, GetSysColor(COLOR_HIGHLIGHT));
+ hBrush = CreateSolidBrush(GetSysColor(COLOR_HIGHLIGHT));
+ }
+ else
+ {
+ clrTextSave = SetTextColor(hDC, GetSysColor(COLOR_BTNTEXT));
+ clrBkSave = SetBkColor(hDC, GetSysColor(COLOR_BTNFACE));
+ hBrush = CreateSolidBrush(GetSysColor(COLOR_BTNFACE));
+ }
+
+ hOldBrush = (HBRUSH)SelectObject(hDC, hBrush);
+ FillRect(hDC, &rcAllLabels, hBrush);
+ SelectObject(hDC, hOldBrush);
+ DeleteBrush(hBrush);
+ }
+ else
+ {
+ if (hBackground == NULL)
+ {
+ HBRUSH hBrush = CreateSolidBrush(GetSysColor(COLOR_WINDOW));
+ FillRect(hDC, &rcAllLabels, hBrush);
+ DeleteBrush(hBrush);
+ }
+
+ if (pPickerInfo->pCallbacks->pfnGetOffsetChildren && pPickerInfo->pCallbacks->pfnGetOffsetChildren())
+ {
+ if (bDrawAsChild || bColorChild)
+ clrTextSave = SetTextColor(hDC, GetListCloneColor());
+ else
+ clrTextSave = SetTextColor(hDC, GetListFontColor());
+ }
+ else
+ {
+ if (bDrawAsChild)
+ clrTextSave = SetTextColor(hDC, GetListCloneColor());
+ else
+ clrTextSave = SetTextColor(hDC, GetListFontColor());
+ }
+
+ clrBkSave = SetBkColor(hDC, GetSysColor(COLOR_WINDOW));
+ }
+
+
+ if (lvi.state & LVIS_CUT)
+ {
+ clrImage = GetSysColor(COLOR_WINDOW);
+ uiFlags |= ILD_BLEND50;
+ }
+ else
+ if (bSelected)
+ {
+ if (bFocus)
+ clrImage = GetSysColor(COLOR_HIGHLIGHT);
+ else
+ clrImage = GetSysColor(COLOR_BTNFACE);
+
+ uiFlags |= ILD_BLEND50;
+ }
+
+ nStateImageMask = lvi.state & LVIS_STATEIMAGEMASK;
+
+ if (nStateImageMask)
+ {
+ int nImage = (nStateImageMask >> 12) - 1;
+ hImageList = ListView_GetImageList(hWnd, LVSIL_STATE);
+ if (hImageList)
+ ImageList_Draw(hImageList, nImage, hDC, rcItem.left, rcItem.top, ILD_TRANSPARENT);
+ }
+
+ res = ListView_GetItemRect_Modified(hWnd, nItem, &rcIcon, LVIR_ICON);
+
+ rcIcon.left += indent_space;
+
+ res = ListView_GetItemRect_Modified(hWnd, nItem, &rcItem, LVIR_LABEL);
+
+ hImageList = ListView_GetImageList(hWnd, LVSIL_SMALL);
+ if (hImageList)
+ {
+ UINT nOvlImageMask = lvi.state & LVIS_OVERLAYMASK;
+ if (rcIcon.left + 16 + indent_space < rcItem.right)
+ ImageList_DrawEx(hImageList, lvi.iImage, hDC, rcIcon.left, rcIcon.top, 16, 16, GetSysColor(COLOR_WINDOW), clrImage, uiFlags | nOvlImageMask);
+ }
+
+ res = ListView_GetItemRect_Modified(hWnd, nItem, &rcItem, LVIR_LABEL);
+
+ pszText = MakeShortString(hDC, szBuff, rcItem.right - rcItem.left, 2*offset + indent_space);
+
+ rcLabel = rcItem;
+ rcLabel.left += offset + indent_space;
+ rcLabel.right -= offset;
+
+ DrawText(hDC, pszText, -1, &rcLabel, DT_LEFT | DT_SINGLELINE | DT_NOPREFIX | DT_VCENTER);
+
+ for (nColumn = 1; nColumn < nColumnMax; nColumn++)
+ {
+ int nRetLen;
+ UINT nJustify;
+ LV_ITEM lvItem;
+
+ lvc.mask = LVCF_FMT | LVCF_WIDTH;
+ res = ListView_GetColumn(hWnd, order[nColumn], &lvc);
+
+ lvItem.mask = LVIF_TEXT;
+ lvItem.iItem = nItem;
+ lvItem.iSubItem = order[nColumn];
+ lvItem.pszText = szBuff;
+ lvItem.cchTextMax = sizeof(szBuff) / sizeof(szBuff[0]);
+
+ if (ListView_GetItem(hWnd, &lvItem) == false)
+ continue;
+
+ rcItem.left = rcItem.right;
+ rcItem.right += lvc.cx;
+
+ nRetLen = _tcslen(szBuff);
+ if (nRetLen == 0)
+ continue;
+
+ pszText = MakeShortString(hDC, szBuff, rcItem.right - rcItem.left, 2 * offset);
+
+ nJustify = DT_LEFT;
+
+ if (pszText == szBuff)
+ {
+ switch (lvc.fmt & LVCFMT_JUSTIFYMASK)
+ {
+ case LVCFMT_RIGHT:
+ nJustify = DT_RIGHT;
+ break;
+
+ case LVCFMT_CENTER:
+ nJustify = DT_CENTER;
+ break;
+
+ default:
+ break;
+ }
+ }
+
+ rcLabel = rcItem;
+ rcLabel.left += offset;
+ rcLabel.right -= offset;
+ DrawText(hDC, pszText, -1, &rcLabel, nJustify | DT_SINGLELINE | DT_NOPREFIX | DT_VCENTER);
+ }
+
+ if (lvi.state & LVIS_FOCUSED && bFocus)
+ DrawFocusRect(hDC, &rcAllLabels);
+
+ SetTextColor(hDC, clrTextSave);
+ SetBkColor(hDC, clrBkSave);
+ free(order);
+ res++;
+}
+
+
+
+
+const struct PickerCallbacks *Picker_GetCallbacks(HWND hwndPicker)
+{
+ struct PickerInfo *pPickerInfo;
+ pPickerInfo = GetPickerInfo(hwndPicker);
+ return pPickerInfo->pCallbacks;
+}
+
+
+
+int Picker_GetColumnCount(HWND hwndPicker)
+{
+ struct PickerInfo *pPickerInfo;
+ pPickerInfo = GetPickerInfo(hwndPicker);
+ return pPickerInfo->nColumnCount;
+}
+
+
+
+const LPCTSTR *Picker_GetColumnNames(HWND hwndPicker)
+{
+ struct PickerInfo *pPickerInfo;
+ pPickerInfo = GetPickerInfo(hwndPicker);
+ return pPickerInfo->ppszColumnNames;
+}
+
+
+
+void Picker_SetHeaderImageList(HWND hwndPicker, HIMAGELIST hHeaderImages)
+{
+ HWND hwndHeader;
+ hwndHeader = ListView_GetHeader(hwndPicker);
+ SendMessage(hwndHeader, HDM_SETIMAGELIST, 0, (LPARAM) (void *) hHeaderImages);
+}
+
+
+
+BOOL Picker_SaveColumnWidths(HWND hwndPicker)
+{
+ struct PickerInfo *pPickerInfo;
+ int nColumnMax = 0, i = 0;
+ BOOL bSuccess = false;
+ BOOL res = 0;
+
+ pPickerInfo = GetPickerInfo(hwndPicker);
+
+ /* allocate space for the column info */
+ int *widths, *order, *tmpOrder;
+ widths = (int*)malloc(pPickerInfo->nColumnCount * sizeof(*widths));
+ order = (int*)malloc(pPickerInfo->nColumnCount * sizeof(*order));
+ tmpOrder = (int*)malloc(pPickerInfo->nColumnCount * sizeof(*tmpOrder));
+ if (!widths || !order || !tmpOrder)
+ goto done;
+
+ /* retrieve the values */
+ memset(widths, 0, pPickerInfo->nColumnCount * sizeof(*widths));
+ memset(order, 0, pPickerInfo->nColumnCount * sizeof(*order));
+ pPickerInfo->pCallbacks->pfnGetColumnWidths(widths);
+ pPickerInfo->pCallbacks->pfnGetColumnOrder(order);
+
+ /* switch the list view to LVS_REPORT style so column widths reported correctly */
+ SetWindowLong(hwndPicker, GWL_STYLE, (GetWindowLong(hwndPicker, GWL_STYLE) & ~LVS_TYPEMASK) | LVS_REPORT);
+
+ nColumnMax = Picker_GetNumColumns(hwndPicker);
+
+ if (GetUseOldControl())
+ for (i = 0; i < nColumnMax; i++)
+ widths[Picker_GetRealColumnFromViewColumn(hwndPicker, i)] = ListView_GetColumnWidth(hwndPicker, i);
+ else
+ {
+ /* Get the Column Order and save it */
+ res = ListView_GetColumnOrderArray(hwndPicker, nColumnMax, tmpOrder);
+
+ for (i = 0; i < nColumnMax; i++)
+ {
+ widths[Picker_GetRealColumnFromViewColumn(hwndPicker, i)] = ListView_GetColumnWidth(hwndPicker, i);
+ order[i] = Picker_GetRealColumnFromViewColumn(hwndPicker, tmpOrder[i]);
+ }
+ }
+
+ pPickerInfo->pCallbacks->pfnSetColumnWidths(widths);
+ pPickerInfo->pCallbacks->pfnSetColumnOrder(order);
+ bSuccess = true;
+
+done:
+ if (widths)
+ free(widths);
+ if (order)
+ free(order);
+ if (tmpOrder)
+ free(tmpOrder);
+ res++;
+ return bSuccess;
+}
diff --git a/src/osd/winui/picker.h b/src/osd/winui/picker.h
new file mode 100644
index 00000000000..a8ff2edf91a
--- /dev/null
+++ b/src/osd/winui/picker.h
@@ -0,0 +1,89 @@
+// For licensing and usage information, read docs/winui_license.txt
+//****************************************************************************
+
+#ifndef PICKER_H
+#define PICKER_H
+
+#include <stdint.h>
+
+struct PickerCallbacks
+{
+ // Options retrieval
+ void (*pfnSetSortColumn)(int column);
+ int (*pfnGetSortColumn)(void);
+ void (*pfnSetSortReverse)(BOOL reverse);
+ BOOL (*pfnGetSortReverse)(void);
+ void (*pfnSetViewMode)(int val);
+ int (*pfnGetViewMode)(void);
+ void (*pfnSetColumnWidths)(int widths[]);
+ void (*pfnGetColumnWidths)(int widths[]);
+ void (*pfnSetColumnOrder)(int order[]);
+ void (*pfnGetColumnOrder)(int order[]);
+ void (*pfnSetColumnShown)(int shown[]);
+ void (*pfnGetColumnShown)(int shown[]);
+ BOOL (*pfnGetOffsetChildren)(void);
+
+ int (*pfnCompare)(HWND hwndPicker, int nIndex1, int nIndex2, int nSortSubItem);
+ void (*pfnDoubleClick)(void);
+ const TCHAR *(*pfnGetItemString)(HWND hwndPicker, int nItem, int nColumn, TCHAR *pszBuffer, UINT nBufferLength);
+ int (*pfnGetItemImage)(HWND hwndPicker, int nItem);
+ void (*pfnLeavingItem)(HWND hwndPicker, int nItem);
+ void (*pfnEnteringItem)(HWND hwndPicker, int nItem);
+ void (*pfnBeginListViewDrag)(NM_LISTVIEW *pnlv);
+ int (*pfnFindItemParent)(HWND hwndPicker, int nItem);
+ BOOL (*pfnOnIdle)(HWND hwndPicker);
+ void (*pfnOnHeaderContextMenu)(POINT pt, int nColumn);
+ void (*pfnOnBodyContextMenu)(POINT pt);
+};
+
+struct PickerOptions
+{
+ const struct PickerCallbacks *pCallbacks;
+ BOOL bOldControl;
+ BOOL bXPControl;
+ int nColumnCount;
+ const LPCTSTR *ppszColumnNames;
+};
+
+enum
+{
+ VIEW_LARGE_ICONS = 0,
+ VIEW_SMALL_ICONS,
+ VIEW_INLIST,
+ VIEW_REPORT,
+ VIEW_GROUPED,
+ VIEW_MAX
+};
+
+
+
+BOOL SetupPicker(HWND hwndPicker, const struct PickerOptions *pOptions);
+
+int Picker_GetViewID(HWND hwndPicker);
+void Picker_SetViewID(HWND hwndPicker, int nViewID);
+int Picker_GetRealColumnFromViewColumn(HWND hwndPicker, int nViewColumn);
+int Picker_GetViewColumnFromRealColumn(HWND hwndPicker, int nRealColumn);
+void Picker_Sort(HWND hwndPicker);
+void Picker_ResetColumnDisplay(HWND hwndPicker);
+int Picker_GetSelectedItem(HWND hwndPicker);
+void Picker_SetSelectedItem(HWND hwndPicker, uint32_t nItem);
+void Picker_SetSelectedPick(HWND hwndPicker, uint32_t nIndex);
+int Picker_GetNumColumns(HWND hWnd);
+void Picker_ClearIdle(HWND hwndPicker);
+void Picker_ResetIdle(HWND hwndPicker);
+BOOL Picker_IsIdling(HWND hwndPicker);
+void Picker_SetHeaderImageList(HWND hwndPicker, HIMAGELIST hHeaderImages);
+int Picker_InsertItemSorted(HWND hwndPicker, int nParam);
+BOOL Picker_SaveColumnWidths(HWND hwndPicker);
+
+// These are used to handle events received by the parent regarding
+// picker controls
+BOOL Picker_HandleNotify(LPNMHDR lpNmHdr);
+void Picker_HandleDrawItem(HWND hwndPicker, LPDRAWITEMSTRUCT lpDrawItemStruct);
+
+// Accessors
+const struct PickerCallbacks *Picker_GetCallbacks(HWND hwndPicker);
+int Picker_GetColumnCount(HWND hwndPicker);
+const LPCTSTR *Picker_GetColumnNames(HWND hwndPicker);
+
+#endif // PICKER_H
diff --git a/src/osd/winui/properties.cpp b/src/osd/winui/properties.cpp
new file mode 100644
index 00000000000..4d11c4fb412
--- /dev/null
+++ b/src/osd/winui/properties.cpp
@@ -0,0 +1,3333 @@
+// For licensing and usage information, read docs/winui_license.txt
+// MASTER
+//****************************************************************************
+
+/***************************************************************************
+
+ Properties.cpp
+
+ Properties Popup and Misc UI support routines.
+
+ Created 8/29/98 by Mike Haaland (mhaaland@hypertech.com)
+
+***************************************************************************/
+
+/***************************************************************************
+
+MSH - 20070809
+--
+Notes on properties and ini files, reset and reset to default.
+----------------------------------------------------------------------------
+Each ini contains a complete option set.
+
+Priority order for option sets (Lowest to Highest):
+
+built-in defaults
+program ini (executable root filename ini)
+debug ini (if running a debug build)
+driver ini (source code root filename in which this driver is found)
+game ini (where game is the driver name for this game)
+
+To determine which option set to use, start at the top level (lowest
+priority), and overlay all higher priority ini's until the desired level
+is reached.
+
+The 'default' option set is the next priority higher up the list from
+the desired level. For the default (program.ini) level, it is also the
+default.
+
+When MAME is run, the desired level is game ini.
+
+Expected Code behavior:
+----------------------------------------------------------------------------
+This approach requires 3 option sets, 'current', 'original' and 'default'.
+
+'current': used to populate the property pages, and to initialize the
+'original' set.
+
+'original': used to evaluate if the 'Reset' button is enabled.
+If 'current' matches 'original', the 'Reset' button is disabled,
+otherwise it is enabled.
+
+'default': used to evaluate if the 'Restore to Defaults' button is enabled.
+If 'current' matches 'default', the 'Restore to Defaults' button is disabled,
+otherwise it is enabled.
+
+When editing any option set, the desired level is set to the one being
+edited, the default set for that level, is the next lower priority set found.
+
+Upon entering the properties dialog:
+a) 'current' is initialized
+b) 'original' is initialized by 'current'
+c) 'default' is initialized
+d) Populate Property pages with 'current'
+e) 'Reset' and 'Restore to Defaults' buttons are evaluated.
+
+After any change:
+a) 'current' is updated
+b) 'Reset' and 'Restore to Defaults' buttons are re-evaluated.
+
+Reset:
+a) 'current' is reinitialized to 'original'
+b) Re-populate Property pages with 'current'
+c) 'Reset' and 'Restore to Defaults' buttons are re-evaluated.
+
+Restore to Defaults:
+a) 'current' is reinitialized to 'default'
+b) Re-populate Property pages with 'current'
+b) 'Reset' and 'Restore to Defaults' buttons are re-evaluated.
+
+Apply:
+a) 'original' is reinitialized to 'current'
+b) 'Reset' and 'Restore to defaults' are re-evaluated.
+c) If they 'current' matches 'default', remove the ini from disk.
+ Otherwise, write the ini to disk.
+
+Cancel:
+a) Exit the dialog.
+
+OK:
+a) If they 'current' matches 'default', remove the ini from disk.
+ Otherwise, write the ini to disk.
+b) Exit the dialog.
+
+
+***************************************************************************/
+
+// standard windows headers
+#include <windows.h>
+#include <windowsx.h>
+
+// standard C headers
+#include <tchar.h>
+#include <sys/stat.h> // for S_IFDIR
+
+// MAME/MAMEUI headers
+#include "emu.h"
+#include "screen.h"
+#include "mui_audit.h"
+#include "mui_opts.h"
+#include "resource.h"
+#include "dijoystick.h" /* For DIJoystick availability. */
+#include "mui_util.h"
+#include "datamap.h"
+#include "help.h"
+#include "winui.h"
+#include "strconv.h"
+#include "winutf8.h"
+#include "directories.h"
+#include "sound/samples.h"
+
+#ifdef _MSC_VER
+#define snprintf _snprintf
+#endif
+
+#include "newuires.h"
+#ifdef UI_DIRECTDRAW
+#include "directdraw.h" /* has to be after samples.h */
+#endif
+#include "properties.h"
+#include "drivenum.h"
+#include "machine/ram.h"
+
+
+#if defined(__GNUC__)
+/* fix warning: cast does not match function type */
+#undef PropSheet_GetTabControl
+#define PropSheet_GetTabControl(d) (HWND)(LRESULT)(int)SendMessage((d),PSM_GETTABCONTROL,0,0)
+#endif /* defined(__GNUC__) */
+
+/* Enable this if MAME supports multiple versions of D3D */
+//#define D3DVERSION
+
+/***************************************************************
+ * Imported function prototypes
+ ***************************************************************/
+
+/**************************************************************
+ * Local function prototypes
+ **************************************************************/
+
+static void SetSamplesEnabled(HWND hWnd, int nIndex, BOOL bSoundEnabled);
+static void InitializeOptions(HWND hDlg);
+static void InitializeMisc(HWND hDlg);
+static void OptOnHScroll(HWND hWnd, HWND hwndCtl, UINT code, int pos);
+static void NumScreensSelectionChange(HWND hwnd);
+static void RefreshSelectionChange(HWND hWnd, HWND hWndCtrl);
+static void InitializeSoundUI(HWND hwnd);
+static void InitializeSkippingUI(HWND hwnd);
+static void InitializeRotateUI(HWND hwnd);
+static void UpdateSelectScreenUI(HWND hwnd);
+static void InitializeSelectScreenUI(HWND hwnd);
+#ifdef D3DVERSION
+static void InitializeD3DVersionUI(HWND hwnd);
+#endif
+static void InitializeVideoUI(HWND hwnd);
+static void InitializeBIOSUI(HWND hwnd);
+static void InitializeControllerMappingUI(HWND hwnd);
+static void UpdateOptions(HWND hDlg, datamap *map, windows_options &opts);
+static void UpdateProperties(HWND hDlg, datamap *map, windows_options &opts);
+static void PropToOptions(HWND hWnd, windows_options &o);
+static void OptionsToProp(HWND hWnd, windows_options &o);
+static void SetPropEnabledControls(HWND hWnd);
+static BOOL SelectEffect(HWND hWnd);
+static BOOL ResetEffect(HWND hWnd);
+static BOOL SelectJoystickMap(HWND hWnd);
+static BOOL ResetJoystickMap(HWND hWnd);
+static BOOL SelectDebugscript(HWND hWnd);
+static BOOL ResetDebugscript(HWND hWnd);
+
+static void BuildDataMap(void);
+static void ResetDataMap(HWND hWnd);
+
+static void UpdateBackgroundBrush(HWND hwndTab);
+static HBRUSH hBkBrush;
+
+#ifdef MESS
+static BOOL DirListReadControl(datamap *map, HWND dialog, HWND control, windows_options *opts, const char *option_name);
+static BOOL DirListPopulateControl(datamap *map, HWND dialog, HWND control, windows_options *opts, const char *option_name);
+static BOOL RamPopulateControl(datamap *map, HWND dialog, HWND control, windows_options *opts, const char *option_name);
+extern BOOL BrowseForDirectory(HWND hwnd, LPCTSTR pStartDir, TCHAR* pResult);
+//static BOOL g_bModifiedSoftwarePaths = false;
+#endif
+
+/**************************************************************
+ * Local private variables
+ **************************************************************/
+
+/* No longer used by the core, but we need it to predefine configurable screens for all games. */
+#ifndef MAX_SCREENS
+/* maximum number of screens for one game */
+#define MAX_SCREENS 4
+#endif
+
+static windows_options pOrigOpts, pDefaultOpts, pCurrentOpts;
+static datamap *properties_datamap;
+
+static int g_nGame = 0;
+static int g_nFolder = 0;
+static int g_nFolderGame = 0;
+static OPTIONS_TYPE g_nPropertyMode = OPTIONS_GAME;
+static BOOL g_bAutoAspect[MAX_SCREENS] = {false, false, false, false};
+static BOOL g_bAutoSnapSize = false;
+static HICON g_hIcon = NULL;
+
+/* Property sheets */
+
+#define HIGHLIGHT_COLOR RGB(0,196,0)
+static HBRUSH highlight_brush = NULL;
+static HBRUSH background_brush = NULL;
+
+#define ORIENTATION_COLOR RGB( 190, 128, 0) //LIGHT BROWN
+#define VECTOR_COLOR RGB( 190, 0, 0) //DARK RED
+#define FOLDER_COLOR RGB( 0, 128, 0 ) // DARK GREEN
+#define PARENT_COLOR RGB( 190, 128, 192 ) // PURPLE
+#define GAME_COLOR RGB( 0, 128, 192 ) // DARK BLUE
+
+
+BOOL PropSheetFilter_Vector(const machine_config *drv, const game_driver *gamedrv)
+{
+ return isDriverVector(drv);
+}
+
+/* Help IDs - moved to auto-generated helpids.c */
+extern const DWORD dwHelpIDs[];
+
+typedef struct
+{
+ const TCHAR* m_pText;
+ const char* m_pData;
+}
+DUALCOMBOSTR;
+
+typedef struct
+{
+ const TCHAR* m_pText;
+ const int m_pData;
+}
+DUALCOMBOINT;
+
+const DUALCOMBOSTR g_ComboBoxVideo[] =
+{
+ { TEXT("Auto"), "auto" },
+ { TEXT("GDI"), "gdi" },
+#ifdef UI_DIRECTDRAW
+ { TEXT("DirectDraw"), "ddraw" }, // removed 20160217
+#endif
+ { TEXT("Direct3D"), "d3d" },
+ { TEXT("BGFX"), "bgfx" },
+ { TEXT("OpenGL"), "opengl" },
+};
+#define NUMVIDEO (sizeof(g_ComboBoxVideo) / sizeof(g_ComboBoxVideo[0]))
+
+const DUALCOMBOSTR g_ComboBoxSound[] =
+{
+ { TEXT("None"), "none" },
+ { TEXT("Auto"), "auto" },
+ { TEXT("DirectSound"), "dsound" },
+ { TEXT("PortAudio"), "portaudio" },
+// { TEXT("XAudio2"), "xaudio2" }, // invalid option
+};
+#define NUMSOUND (sizeof(g_ComboBoxSound) / sizeof(g_ComboBoxSound[0]))
+#ifdef D3DVERSION
+const DUALCOMBOINT g_ComboBoxD3DVersion[] =
+{
+ { TEXT("Version 9"), 9 },
+// { TEXT("Version 8"), 8 },
+};
+
+#define NUMD3DVERSIONS (sizeof(g_ComboBoxD3DVersion) / sizeof(g_ComboBoxD3DVersion[0]))
+#define WINOPTION_D3DVERSION "9"
+#endif
+const DUALCOMBOINT g_ComboBoxSelectScreen[] =
+{
+ { TEXT("Screen 0"), 0 },
+ { TEXT("Screen 1"), 1 },
+ { TEXT("Screen 2"), 2 },
+ { TEXT("Screen 3"), 3 },
+};
+#define NUMSELECTSCREEN (sizeof(g_ComboBoxSelectScreen) / sizeof(g_ComboBoxSelectScreen[0]))
+
+const DUALCOMBOSTR g_ComboBoxView[] =
+{
+ { TEXT("Auto"), "auto" },
+ { TEXT("Standard"), "standard" },
+ { TEXT("Pixel Aspect"), "pixel" },
+ { TEXT("Cocktail"), "cocktail" },
+};
+#define NUMVIEW (sizeof(g_ComboBoxView) / sizeof(g_ComboBoxView[0]))
+
+
+
+const DUALCOMBOSTR g_ComboBoxDevice[] =
+{
+ { TEXT("None"), "none" },
+ { TEXT("Keyboard"), "keyboard" },
+ { TEXT("Mouse"), "mouse" },
+ { TEXT("Joystick"), "joystick" },
+ { TEXT("Lightgun"), "lightgun" },
+};
+
+#define NUMDEVICES (sizeof(g_ComboBoxDevice) / sizeof(g_ComboBoxDevice[0]))
+
+const DUALCOMBOSTR g_ComboBoxSnapView[] =
+{
+ { TEXT("Internal"), "internal" },
+ { TEXT("Auto"), "auto" },
+ { TEXT("Standard"), "standard" },
+ { TEXT("Pixel Aspect"), "pixel" },
+ { TEXT("Cocktail"), "cocktail" },
+};
+#define NUMSNAPVIEW (sizeof(g_ComboBoxSnapView) / sizeof(g_ComboBoxSnapView[0]))
+
+
+/***************************************************************
+ * Public functions
+ ***************************************************************/
+
+
+int PropertiesCurrentGame(HWND hDlg)
+{
+ return g_nGame;
+}
+
+DWORD_PTR GetHelpIDs(void)
+{
+ return (DWORD_PTR)dwHelpIDs;
+}
+
+static int GetSelectedScreen(HWND hWnd)
+{
+ int nSelectedScreen = 0;
+ HWND hCtrl = GetDlgItem(hWnd, IDC_SCREENSELECT);
+ if (hCtrl)
+ nSelectedScreen = ComboBox_GetCurSel(hCtrl);
+ if ((nSelectedScreen < 0) || (nSelectedScreen >= NUMSELECTSCREEN))
+ nSelectedScreen = 0;
+ return nSelectedScreen;
+
+}
+
+static PROPSHEETPAGE *CreatePropSheetPages(HINSTANCE hInst, BOOL bOnlyDefault,
+// const game_driver *gamedrv, UINT *pnMaxPropSheets, BOOL isGame )
+ int nGame, UINT *pnMaxPropSheets, BOOL isGame )
+{
+ PROPSHEETPAGE *pspages;
+ int maxPropSheets = 0;
+ int possiblePropSheets;
+ int i = ( isGame ) ? 0 : 2;
+
+ for (; g_propSheets[i].pfnDlgProc; i++)
+ ;
+
+ possiblePropSheets = (isGame) ? i + 1 : i - 1;
+
+ pspages = (PROPSHEETPAGE *)malloc(sizeof(PROPSHEETPAGE) * possiblePropSheets);
+ if (!pspages)
+ return NULL;
+
+ memset(pspages, 0, sizeof(PROPSHEETPAGE) * possiblePropSheets);
+
+ i = ( isGame ) ? 0 : 2;
+
+ for (; g_propSheets[i].pfnDlgProc; i++)
+ {
+ if (nGame < 0)
+ {
+ if (g_propSheets[i].bOnDefaultPage)
+ {
+ pspages[maxPropSheets].dwSize = sizeof(PROPSHEETPAGE);
+ pspages[maxPropSheets].dwFlags = 0;
+ pspages[maxPropSheets].hInstance = hInst;
+ pspages[maxPropSheets].pszTemplate = MAKEINTRESOURCE(g_propSheets[i].dwDlgID);
+ pspages[maxPropSheets].pfnCallback = NULL;
+ pspages[maxPropSheets].lParam = 0;
+ pspages[maxPropSheets].pfnDlgProc = g_propSheets[i].pfnDlgProc;
+ maxPropSheets++;
+ }
+ }
+ else
+ if ((nGame >= 0) || g_propSheets[i].bOnDefaultPage)
+ {
+ //machine_config config(*gamedrv,pCurrentOpts);
+
+// if (!gamedrv || !g_propSheets[i].pfnFilterProc || g_propSheets[i].pfnFilterProc(&config, gamedrv))
+ if (nGame < 0 || !g_propSheets[i].pfnFilterProc || g_propSheets[i].pfnFilterProc(nGame))
+ {
+ pspages[maxPropSheets].dwSize = sizeof(PROPSHEETPAGE);
+ pspages[maxPropSheets].dwFlags = 0;
+ pspages[maxPropSheets].hInstance = hInst;
+ pspages[maxPropSheets].pszTemplate = MAKEINTRESOURCE(g_propSheets[i].dwDlgID);
+ pspages[maxPropSheets].pfnCallback = NULL;
+ pspages[maxPropSheets].lParam = 0;
+ pspages[maxPropSheets].pfnDlgProc = g_propSheets[i].pfnDlgProc;
+ maxPropSheets++;
+ }
+ }
+ }
+
+ if (pnMaxPropSheets)
+ *pnMaxPropSheets = maxPropSheets;
+
+ return pspages;
+}
+
+// This is for the DEFAULT property-page options only
+void InitDefaultPropertyPage(HINSTANCE hInst, HWND hWnd)
+{
+ // clear globals
+ g_nGame = GLOBAL_OPTIONS;
+ windows_options dummy;
+ OptionsCopy(dummy,pDefaultOpts);
+ OptionsCopy(dummy,pOrigOpts);
+ OptionsCopy(dummy,pCurrentOpts);
+
+ /* Get default options to populate property sheets */
+ load_options(pCurrentOpts, OPTIONS_GLOBAL, g_nGame, 0);
+ load_options(pOrigOpts, OPTIONS_GLOBAL, g_nGame, 0);
+ load_options(pDefaultOpts, OPTIONS_GLOBAL, -2, 0);
+
+ g_nPropertyMode = OPTIONS_GLOBAL;
+ BuildDataMap();
+
+ PROPSHEETHEADER pshead;
+ ZeroMemory(&pshead, sizeof(pshead));
+
+ PROPSHEETPAGE *pspage;
+ pspage = CreatePropSheetPages(hInst, true, -1, &pshead.nPages, false);
+ if (!pspage)
+ return;
+
+ /* Fill in the property sheet header */
+ pshead.hwndParent = hWnd;
+ pshead.dwSize = sizeof(PROPSHEETHEADER);
+ pshead.dwFlags = PSH_PROPSHEETPAGE | PSH_USEICONID | PSH_PROPTITLE;
+ pshead.hInstance = hInst;
+ pshead.pszCaption = TEXT("Default Game");
+ pshead.nStartPage = 0;
+ pshead.pszIcon = MAKEINTRESOURCE(IDI_MAMEUI_ICON);
+ pshead.ppsp = pspage;
+
+ /* Create the Property sheet and display it */
+ if (PropertySheet(&pshead) == -1)
+ {
+ char temp[100];
+ DWORD dwError = GetLastError();
+ sprintf(temp, "Property Sheet Error %d %X", (int)dwError, (int)dwError);
+ win_message_box_utf8(0, temp, "Error", IDOK);
+ }
+
+ free(pspage);
+}
+
+/* Initialize the property pages for anything but the Default option set */
+void InitPropertyPage(HINSTANCE hInst, HWND hWnd, HICON hIcon, OPTIONS_TYPE opt_type, int folder_id, int game_num)
+{
+ InitPropertyPageToPage(hInst, hWnd, hIcon, opt_type, folder_id, game_num, PROPERTIES_PAGE);
+}
+
+void InitPropertyPageToPage(HINSTANCE hInst, HWND hWnd, HICON hIcon, OPTIONS_TYPE opt_type, int folder_id, int game_num, int start_page )
+{
+ if (highlight_brush == NULL)
+ highlight_brush = CreateSolidBrush(HIGHLIGHT_COLOR);
+
+ if (background_brush == NULL)
+ background_brush = CreateSolidBrush(GetSysColor(COLOR_3DFACE));
+
+ // Initialize the options
+ windows_options dummy;
+ OptionsCopy(dummy,pDefaultOpts);
+ OptionsCopy(dummy,pOrigOpts);
+ OptionsCopy(dummy,pCurrentOpts);
+
+ load_options(pCurrentOpts, opt_type, game_num, 1);
+ load_options(pOrigOpts, opt_type, game_num, 1);
+ if (game_num == GLOBAL_OPTIONS)
+ load_options(pDefaultOpts, OPTIONS_GLOBAL, -2, 0); // base opts is the backup for global
+ else
+ load_options(pDefaultOpts, OPTIONS_GLOBAL, -1, 0); // global is the backup for games
+
+ // Copy icon to use for the property pages
+ g_hIcon = CopyIcon(hIcon);
+
+ // These MUST be valid, they are used as indicies
+ g_nGame = game_num;
+ g_nFolder = folder_id;
+
+ // Keep track of OPTIONS_TYPE that was passed in.
+ g_nPropertyMode = opt_type;
+
+ BuildDataMap();
+
+ PROPSHEETHEADER pshead;
+ ZeroMemory(&pshead, sizeof(PROPSHEETHEADER));
+
+ // Set the game to audit to this game
+
+ // Create the property sheets
+ PROPSHEETPAGE *pspage;
+ if( OPTIONS_GAME == opt_type )
+ {
+ InitGameAudit(game_num);
+ pspage = CreatePropSheetPages(hInst, false, game_num, &pshead.nPages, true);
+ }
+ else
+ pspage = CreatePropSheetPages(hInst, false, -1, &pshead.nPages, false);
+
+ if (!pspage)
+ return;
+
+ // Get the description use as the dialog caption.
+ TCHAR* t_description = 0;
+ switch( opt_type )
+ {
+ case OPTIONS_GAME:
+ t_description = ui_wstring_from_utf8(ModifyThe(driver_list::driver(g_nGame).type.fullname()));
+ break;
+ case OPTIONS_SOURCE:
+ t_description = ui_wstring_from_utf8(GetDriverFilename(g_nGame));
+ break;
+ case OPTIONS_GLOBAL:
+ t_description = ui_wstring_from_utf8("Default Settings");
+ break;
+ default:
+ return;
+ }
+ // If we have no description, return.
+ if( !t_description )
+ return;
+
+ /* Fill in the property sheet header */
+ pshead.pszCaption = t_description;
+ pshead.hwndParent = hWnd;
+ pshead.dwSize = sizeof(PROPSHEETHEADER);
+ pshead.dwFlags = PSH_PROPSHEETPAGE | PSH_USEICONID | PSH_PROPTITLE;
+ pshead.hInstance = hInst;
+ pshead.nStartPage = start_page;
+ pshead.pszIcon = MAKEINTRESOURCE(IDI_MAMEUI_ICON);
+ pshead.ppsp = pspage;
+
+ /* Create the Property sheet and display it */
+ if (PropertySheet(&pshead) == -1)
+ {
+ char temp[100];
+ DWORD dwError = GetLastError();
+ sprintf(temp, "Property Sheet Error %d %X", (int)dwError, (int)dwError);
+ win_message_box_utf8(0, temp, "Error", IDOK);
+ }
+
+ free(t_description);
+ free(pspage);
+}
+
+
+/*********************************************************************
+ * Local Functions
+ *********************************************************************/
+#define WINUI_ARRAY_LENGTH(x) (sizeof(x) / sizeof(x[0]))
+
+/* Build CPU info string */
+static char *GameInfoCPU(int nIndex)
+{
+ machine_config config(driver_list::driver(nIndex), MameUIGlobal());
+ execute_interface_iterator cpuiter(config.root_device());
+ std::unordered_set<std::string> exectags;
+ static char buffer[1024];
+
+ memset(&buffer, 0, sizeof(buffer));
+
+ for (device_execute_interface &exec : cpuiter)
+ {
+ if (!exectags.insert(exec.device().tag()).second)
+ continue;
+
+ char temp[300];
+ int count = 1;
+ int clock = exec.device().clock();
+ const char *name = exec.device().name();
+
+ for (device_execute_interface &scan : cpuiter)
+ {
+ if (exec.device().type() == scan.device().type() && strcmp(name, scan.device().name()) == 0 && clock == scan.device().clock())
+ if (exectags.insert(scan.device().tag()).second)
+ count++;
+ }
+
+ if (count > 1)
+ {
+ snprintf(temp, WINUI_ARRAY_LENGTH(temp), "%d x ", count);
+ strcat(buffer, temp);
+ }
+
+ if (clock >= 1000000)
+ snprintf(temp, WINUI_ARRAY_LENGTH(temp), "%s %d.%06d MHz\r\n", name, clock / 1000000, clock % 1000000);
+ else
+ snprintf(temp, WINUI_ARRAY_LENGTH(temp), "%s %d.%03d kHz\r\n", name, clock / 1000, clock % 1000);
+
+ strcat(buffer, temp);
+ }
+
+ return buffer;
+}
+
+/* Build Sound system info string */
+static char *GameInfoSound(int nIndex)
+{
+ machine_config config(driver_list::driver(nIndex), MameUIGlobal());
+ sound_interface_iterator sounditer(config.root_device());
+ std::unordered_set<std::string> soundtags;
+ static char buffer[1024];
+
+ memset(&buffer, 0, sizeof(buffer));
+
+ for (device_sound_interface &sound : sounditer)
+ {
+ if (!soundtags.insert(sound.device().tag()).second)
+ continue;
+
+ char temp[300];
+ int count = 1;
+ int clock = sound.device().clock();
+ const char *name = sound.device().name();
+
+ for (device_sound_interface &scan : sounditer)
+ {
+ if (sound.device().type() == scan.device().type() && strcmp(name, scan.device().name()) == 0 && clock == scan.device().clock())
+ if (soundtags.insert(scan.device().tag()).second)
+ count++;
+ }
+
+ if (count > 1)
+ {
+ snprintf(temp, WINUI_ARRAY_LENGTH(temp), "%d x ", count);
+ strcat(buffer, temp);
+ }
+
+ strcat(buffer, name);
+
+ if (clock)
+ {
+ if (clock >= 1000000)
+ snprintf(temp, WINUI_ARRAY_LENGTH(temp), " %d.%06d MHz", clock / 1000000, clock % 1000000);
+ else
+ snprintf(temp, WINUI_ARRAY_LENGTH(temp), " %d.%03d kHz", clock / 1000, clock % 1000);
+
+ strcat(buffer, temp);
+ }
+
+ strcat(buffer, "\r\n");
+ }
+
+ return buffer;
+}
+
+/* Build Display info string */
+static char *GameInfoScreen(UINT nIndex)
+{
+ static char buf[1024];
+ machine_config config(driver_list::driver(nIndex),pCurrentOpts);
+ memset(buf, '\0', 1024);
+
+ if (isDriverVector(&config))
+ strcpy(buf, "Vector Game");
+ else
+ {
+ screen_device_iterator iter(config.root_device());
+ const screen_device *screen = iter.first();
+ if (screen == NULL)
+ strcpy(buf, "Screenless Game");
+ else
+ {
+ for (screen_device &screen : screen_device_iterator(config.root_device()))
+ {
+ char tmpbuf[256];
+ const rectangle &visarea = screen.visible_area();
+
+ if (BIT(GetDriverCacheLower(nIndex), 2)) //ORIENTATION_SWAP_XY
+ {
+ sprintf(tmpbuf,"%d x %d (V) %f Hz\n",
+ visarea.max_y - visarea.min_y + 1,
+ visarea.max_x - visarea.min_x + 1,
+ ATTOSECONDS_TO_HZ(screen.refresh_attoseconds()));
+ }
+ else
+ {
+ sprintf(tmpbuf,"%d x %d (H) %f Hz\n",
+ visarea.max_x - visarea.min_x + 1,
+ visarea.max_y - visarea.min_y + 1,
+ ATTOSECONDS_TO_HZ(screen.refresh_attoseconds()));
+ }
+ strcat(buf, tmpbuf);
+ }
+ }
+ }
+ return buf;
+}
+
+
+/* Build game status string */
+const char *GameInfoStatus(int driver_index, BOOL bRomStatus)
+{
+ static char buffer[1024];
+ memset(buffer,0,sizeof(char)*1024);
+ if (driver_index < 0)
+ return buffer;
+
+ int audit_result = GetRomAuditResults(driver_index);
+ uint32_t cache = GetDriverCacheLower(driver_index);
+ if ( bRomStatus )
+ {
+ if (IsAuditResultKnown(audit_result) == false)
+ strcpy(buffer, "Unknown");
+ else
+ if (IsAuditResultYes(audit_result))
+ {
+ if (DriverIsBroken(driver_index))
+ {
+ strcpy(buffer, "Not working");
+
+ if (BIT(cache, 22))
+ {
+ if (*buffer != '\0')
+ strcat(buffer, "\r\n");
+ strcat(buffer, "Game protection isn't fully emulated");
+ }
+ if (BIT(cache, 21))
+ {
+ if (*buffer != '\0')
+ strcat(buffer, "\r\n");
+ strcat(buffer, "Colors are completely wrong");
+ }
+ if (BIT(cache, 20))
+ {
+ if (*buffer != '\0')
+ strcat(buffer, "\r\n");
+ strcat(buffer, "Colors aren't 100% accurate");
+ }
+ if (BIT(cache, 18))
+ {
+ if (*buffer != '\0')
+ strcat(buffer, "\r\n");
+ strcat(buffer, "Video emulation isn't 100% accurate");
+ }
+ if (BIT(cache, 17))
+ {
+ if (*buffer != '\0')
+ strcat(buffer, "\r\n");
+ strcat(buffer, "Game lacks sound");
+ }
+ if (BIT(cache, 16))
+ {
+ if (*buffer != '\0')
+ strcat(buffer, "\r\n");
+ strcat(buffer, "Sound emulation isn't 100% accurate");
+ }
+ if (BIT(cache, 8))
+ {
+ if (*buffer != '\0')
+ strcat(buffer, "\r\n");
+ strcat(buffer, "Screen flipping is not supported");
+ }
+ if (BIT(cache, 10))
+ {
+ if (*buffer != '\0')
+ strcat(buffer, "\r\n");
+ strcat(buffer, "Game requires artwork");
+ }
+ }
+ else
+ {
+ strcpy(buffer, "Working");
+
+ if (BIT(cache, 22))
+ {
+ if (*buffer != '\0')
+ strcat(buffer, "\r\n");
+ strcat(buffer, "Game protection isn't fully emulated");
+ }
+ if (BIT(cache, 21))
+ {
+ if (*buffer != '\0')
+ strcat(buffer, "\r\n");
+ strcat(buffer, "Colors are completely wrong");
+ }
+ if (BIT(cache, 20))
+ {
+ if (*buffer != '\0')
+ strcat(buffer, "\r\n");
+ strcat(buffer, "Colors aren't 100% accurate");
+ }
+ if (BIT(cache, 18))
+ {
+ if (*buffer != '\0')
+ strcat(buffer, "\r\n");
+ strcat(buffer, "Video emulation isn't 100% accurate");
+ }
+ if (BIT(cache, 17))
+ {
+ if (*buffer != '\0')
+ strcat(buffer, "\r\n");
+ strcat(buffer, "Game lacks sound");
+ }
+ if (BIT(cache, 16))
+ {
+ if (*buffer != '\0')
+ strcat(buffer, "\r\n");
+ strcat(buffer, "Sound emulation isn't 100% accurate");
+ }
+ if (BIT(cache, 8))
+ {
+ if (*buffer != '\0')
+ strcat(buffer, "\r\n");
+ strcat(buffer, "Screen flipping is not supported");
+ }
+ if (BIT(cache, 10))
+ {
+ if (*buffer != '\0')
+ strcat(buffer, "\r\n");
+ strcat(buffer, "Game requires artwork");
+ }
+ }
+ }
+ else
+ // audit result is no
+ strcpy(buffer, "BIOS missing");
+ }
+ else
+ {
+ //Just show the emulation flags
+ if (DriverIsBroken(driver_index))
+ strcpy(buffer, "Not working");
+ else
+ strcpy(buffer, "Working");
+
+ if (BIT(cache, 22))
+ {
+ if (*buffer != '\0')
+ strcat(buffer, "\r\n");
+ strcat(buffer, "Game protection isn't fully emulated");
+ }
+ if (BIT(cache, 21))
+ {
+ if (*buffer != '\0')
+ strcat(buffer, "\r\n");
+ strcat(buffer, "Colors are completely wrong");
+ }
+ if (BIT(cache, 20))
+ {
+ if (*buffer != '\0')
+ strcat(buffer, "\r\n");
+ strcat(buffer, "Colors aren't 100% accurate");
+ }
+ if (BIT(cache, 18))
+ {
+ if (*buffer != '\0')
+ strcat(buffer, "\r\n");
+ strcat(buffer, "Video emulation isn't 100% accurate");
+ }
+ if (BIT(cache, 17))
+ {
+ if (*buffer != '\0')
+ strcat(buffer, "\r\n");
+ strcat(buffer, "Game lacks sound");
+ }
+ if (BIT(cache, 16))
+ {
+ if (*buffer != '\0')
+ strcat(buffer, "\r\n");
+ strcat(buffer, "Sound emulation isn't 100% accurate");
+ }
+ if (BIT(cache, 8))
+ {
+ if (*buffer != '\0')
+ strcat(buffer, "\r\n");
+ strcat(buffer, "Screen flipping is not supported");
+ }
+ if (BIT(cache, 10))
+ {
+ if (*buffer != '\0')
+ strcat(buffer, "\r\n");
+ strcat(buffer, "Game requires artwork");
+ }
+ }
+ return buffer;
+}
+
+/* Build game manufacturer string */
+static char *GameInfoManufactured(UINT nIndex)
+{
+ static char buffer[1024];
+
+ snprintf(buffer,sizeof(buffer),"%s %s",driver_list::driver(nIndex).year,driver_list::driver(nIndex).manufacturer);
+ return buffer;
+}
+
+/* Build Game title string */
+char *GameInfoTitle(OPTIONS_TYPE opt_type, UINT nIndex)
+{
+ static char buf[1024];
+
+ if (OPTIONS_GLOBAL == opt_type)
+ strcpy(buf, "Global game options\nDefault options used by all games");
+ else
+ if (OPTIONS_SOURCE == opt_type)
+ strcpy(buf, "Options used by all games in the source");
+ else
+ if (OPTIONS_VECTOR == opt_type)
+ strcpy(buf, "Global vector options");
+ else
+ if (OPTIONS_GAME == opt_type)
+ sprintf(buf, "%s\n\"%s\"", ModifyThe(driver_list::driver(nIndex).type.fullname()), driver_list::driver(nIndex).name);
+ return buf;
+}
+
+/* Build game clone information string */
+static char *GameInfoCloneOf(UINT nIndex)
+{
+ static char buf[1024];
+ int nParentIndex= -1;
+
+ buf[0] = '\0';
+
+ if (DriverIsClone(nIndex))
+ {
+ nParentIndex = GetParentIndex(&driver_list::driver(nIndex));
+ sprintf(buf, "%s - \"%s\"",
+ ConvertAmpersandString(ModifyThe(driver_list::driver(nParentIndex).type.fullname())),
+ driver_list::driver(nParentIndex).name);
+ }
+
+ return buf;
+}
+
+static const char * GameInfoSource(UINT nIndex)
+{
+ return GetDriverFilename(nIndex);
+}
+
+/* Handle the information property page */
+INT_PTR CALLBACK GamePropertiesDialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam)
+{
+HWND hWnd;
+ switch (Msg)
+ {
+ case WM_INITDIALOG:
+ if (g_hIcon)
+ SendDlgItemMessage(hDlg, IDC_GAME_ICON, STM_SETICON, (WPARAM) g_hIcon, 0);
+#if defined(USE_SINGLELINE_TABCONTROL)
+ {
+ HWND hWnd = PropSheet_GetTabControl(GetParent(hDlg));
+ DWORD tabStyle = (GetWindowLong(hWnd,GWL_STYLE) & ~TCS_MULTILINE);
+ SetWindowLong(hWnd,GWL_STYLE,tabStyle | TCS_SINGLELINE);
+ }
+#endif
+
+ win_set_window_text_utf8(GetDlgItem(hDlg, IDC_PROP_TITLE), GameInfoTitle(g_nPropertyMode, g_nGame));
+ win_set_window_text_utf8(GetDlgItem(hDlg, IDC_PROP_MANUFACTURED), GameInfoManufactured(g_nGame));
+ win_set_window_text_utf8(GetDlgItem(hDlg, IDC_PROP_STATUS), GameInfoStatus(g_nGame, false));
+ win_set_window_text_utf8(GetDlgItem(hDlg, IDC_PROP_CPU), GameInfoCPU(g_nGame));
+ win_set_window_text_utf8(GetDlgItem(hDlg, IDC_PROP_SOUND), GameInfoSound(g_nGame));
+ win_set_window_text_utf8(GetDlgItem(hDlg, IDC_PROP_SCREEN), GameInfoScreen(g_nGame));
+ win_set_window_text_utf8(GetDlgItem(hDlg, IDC_PROP_CLONEOF), GameInfoCloneOf(g_nGame));
+ win_set_window_text_utf8(GetDlgItem(hDlg, IDC_PROP_SOURCE), GameInfoSource(g_nGame));
+
+ if (DriverIsClone(g_nGame))
+ ShowWindow(GetDlgItem(hDlg, IDC_PROP_CLONEOF_TEXT), SW_SHOW);
+ else
+ ShowWindow(GetDlgItem(hDlg, IDC_PROP_CLONEOF_TEXT), SW_HIDE);
+
+ hWnd = PropSheet_GetTabControl(GetParent(hDlg));
+ UpdateBackgroundBrush(hWnd);
+ ShowWindow(hDlg, SW_SHOW);
+ return 1;
+ }
+ return 0;
+}
+
+/* Handle all options property pages */
+INT_PTR CALLBACK GameOptionsProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam)
+{
+ BOOL g_bUseDefaults = false, g_bReset = false;
+
+ switch (Msg)
+ {
+ case WM_INITDIALOG:
+ /* Fill in the Game info at the top of the sheet */
+ win_set_window_text_utf8(GetDlgItem(hDlg, IDC_PROP_TITLE), GameInfoTitle(g_nPropertyMode, g_nGame));
+ InitializeOptions(hDlg);
+ InitializeMisc(hDlg);
+
+ UpdateProperties(hDlg, properties_datamap, pCurrentOpts);
+
+ g_bUseDefaults = AreOptionsEqual(pCurrentOpts, pDefaultOpts) ? false : true;
+ g_bReset = AreOptionsEqual(pCurrentOpts, pOrigOpts) ? false : true;
+
+ // Default button doesn't exist on Default settings
+// if (g_nGame == GLOBAL_OPTIONS)
+// ShowWindow(GetDlgItem(hDlg, IDC_USE_DEFAULT), SW_HIDE);
+// else
+ EnableWindow(GetDlgItem(hDlg, IDC_USE_DEFAULT), g_bUseDefaults);
+
+ // Setup Reset button
+ EnableWindow(GetDlgItem(hDlg, IDC_PROP_RESET), g_bReset);
+ ShowWindow(hDlg, SW_SHOW);
+ return 1;
+
+ case WM_HSCROLL:
+ /* slider changed */
+ HANDLE_WM_HSCROLL(hDlg, wParam, lParam, OptOnHScroll);
+ EnableWindow(GetDlgItem(hDlg, IDC_USE_DEFAULT), true);
+
+ // Enable Apply button
+ PropSheet_Changed(GetParent(hDlg), hDlg);
+
+ // make sure everything's copied over, to determine what's changed
+ UpdateOptions(hDlg, properties_datamap, pCurrentOpts);
+
+ // redraw it, it might be a new color now
+ InvalidateRect((HWND)lParam,NULL,true);
+
+ break;
+
+ case WM_COMMAND:
+ {
+ /* Below, 'changed' is used to signify the 'Apply' button should be enabled. */
+ WORD wID = GET_WM_COMMAND_ID(wParam, lParam);
+ HWND hWndCtrl = GET_WM_COMMAND_HWND(wParam, lParam);
+ WORD wNotifyCode = GET_WM_COMMAND_CMD(wParam, lParam);
+ BOOL changed = false;
+ int nCurSelection = 0;
+ TCHAR szClass[256];
+
+ switch (wID)
+ {
+ case IDC_REFRESH:
+ if (wNotifyCode == LBN_SELCHANGE)
+ {
+ RefreshSelectionChange(hDlg, hWndCtrl);
+ changed = true;
+ }
+ break;
+
+ case IDC_ASPECT:
+ nCurSelection = Button_GetCheck( GetDlgItem(hDlg, IDC_ASPECT));
+ if( g_bAutoAspect[GetSelectedScreen(hDlg)] != nCurSelection )
+ {
+ changed = true;
+ g_bAutoAspect[GetSelectedScreen(hDlg)] = nCurSelection;
+ }
+ break;
+
+ case IDC_SNAPSIZE:
+ nCurSelection = Button_GetCheck( GetDlgItem(hDlg, IDC_SNAPSIZE));
+ if( g_bAutoSnapSize != nCurSelection )
+ {
+ changed = true;
+ g_bAutoSnapSize = nCurSelection;
+ }
+ break;
+
+ case IDC_SELECT_EFFECT:
+ changed = SelectEffect(hDlg);
+ break;
+
+ case IDC_RESET_EFFECT:
+ changed = ResetEffect(hDlg);
+ break;
+
+ case IDC_SELECT_JOYSTICKMAP:
+ changed = SelectJoystickMap(hDlg);
+ break;
+
+ case IDC_RESET_JOYSTICKMAP:
+ changed = ResetJoystickMap(hDlg);
+ break;
+
+ case IDC_SELECT_DEBUGSCRIPT:
+ changed = SelectDebugscript(hDlg);
+ break;
+
+ case IDC_RESET_DEBUGSCRIPT:
+ changed = ResetDebugscript(hDlg);
+ break;
+
+ case IDC_PROP_RESET:
+ // RESET Button - Only do it if mouse-clicked
+ if (wNotifyCode != BN_CLICKED)
+ break;
+
+ // Change settings in property sheets back to original
+ UpdateProperties(hDlg, properties_datamap, pOrigOpts);
+ // The original options become the current options.
+ UpdateOptions(hDlg, properties_datamap, pCurrentOpts);
+
+ g_bUseDefaults = AreOptionsEqual(pCurrentOpts, pDefaultOpts) ? false : true;
+ g_bReset = AreOptionsEqual(pCurrentOpts, pOrigOpts) ? false : true;
+ // Turn off Apply
+ PropSheet_UnChanged(GetParent(hDlg), hDlg);
+ EnableWindow(GetDlgItem(hDlg, IDC_USE_DEFAULT), g_bUseDefaults);
+ EnableWindow(GetDlgItem(hDlg, IDC_PROP_RESET), g_bReset);
+ break;
+
+ case IDC_USE_DEFAULT:
+ // DEFAULT Button - Only do it if mouse-clicked
+ if (wNotifyCode != BN_CLICKED)
+ break;
+
+ // Change settings to be the same as mame.ini
+ UpdateProperties(hDlg, properties_datamap, pDefaultOpts);
+ // The original options become the current options.
+ UpdateOptions(hDlg, properties_datamap, pCurrentOpts);
+
+ g_bUseDefaults = AreOptionsEqual(pCurrentOpts, pDefaultOpts) ? false : true;
+ g_bReset = AreOptionsEqual(pCurrentOpts, pOrigOpts) ? false : true;
+ // Enable/Disable the Reset to Defaults button
+ EnableWindow(GetDlgItem(hDlg, IDC_USE_DEFAULT), g_bUseDefaults);
+ EnableWindow(GetDlgItem(hDlg, IDC_PROP_RESET), g_bReset);
+ // Tell the dialog to enable/disable the apply button.
+ if (g_nGame != GLOBAL_OPTIONS)
+ {
+ if (g_bReset)
+ PropSheet_Changed(GetParent(hDlg), hDlg);
+ else
+ PropSheet_UnChanged(GetParent(hDlg), hDlg);
+ }
+ break;
+
+ // MSH 20070813 - Update all related controls
+ case IDC_SCREENSELECT:
+ case IDC_SCREEN:
+ // NPW 3-Apr-2007: Ugh I'm only perpetuating the vile hacks in this code
+ if ((wNotifyCode == CBN_SELCHANGE) || (wNotifyCode == CBN_SELENDOK))
+ {
+ changed = datamap_read_control(properties_datamap, hDlg, pCurrentOpts, wID);
+ datamap_populate_control(properties_datamap, hDlg, pCurrentOpts, IDC_SIZES);
+ //MSH 20070814 - Hate to do this, but its either this, or update each individual
+ // control on the SCREEN tab.
+ UpdateProperties(hDlg, properties_datamap, pCurrentOpts);
+ changed = true;
+ /* NOT USED *************
+ datamap_populate_control(properties_datamap, hDlg, pCurrentOpts, IDC_SCREENSELECT);
+ datamap_populate_control(properties_datamap, hDlg, pCurrentOpts, IDC_SCREEN);
+ datamap_populate_control(properties_datamap, hDlg, pCurrentOpts, IDC_REFRESH);
+ datamap_populate_control(properties_datamap, hDlg, pCurrentOpts, IDC_SIZES);
+ datamap_populate_control(properties_datamap, hDlg, pCurrentOpts, IDC_VIEW);
+ datamap_populate_control(properties_datamap, hDlg, pCurrentOpts, IDC_SWITCHRES);
+
+ if (strcmp(options_get_string(pCurrentOpts, "screen0"), options_get_string(pOrigOpts, "screen0")!=0) ||
+ strcmp(options_get_string(pCurrentOpts, "screen1"), options_get_string(pOrigOpts, "screen1")!=0) ||
+ strcmp(options_get_string(pCurrentOpts, "screen2"), options_get_string(pOrigOpts, "screen2")!=0) ||
+ strcmp(options_get_string(pCurrentOpts, "screen3"), options_get_string(pOrigOpts, "screen3")!=0))
+ changed = true;
+ ************************************* */
+ }
+ break;
+ default:
+#ifdef MESS
+ if (MessPropertiesCommand(hDlg, wNotifyCode, wID, &changed))
+ // To Do: add a hook to MessReadMountedSoftware(drvindex); so the software will update itself when the folder is configured
+ break;
+#endif
+
+ // use default behavior; try to get the result out of the datamap if
+ // appropriate
+ GetClassName(hWndCtrl, szClass, ARRAY_LENGTH(szClass));
+ if (!_tcscmp(szClass, WC_COMBOBOX))
+ {
+ // combo box
+ if ((wNotifyCode == CBN_SELCHANGE) || (wNotifyCode == CBN_SELENDOK))
+ changed = datamap_read_control(properties_datamap, hDlg, pCurrentOpts, wID);
+ }
+ else if (!_tcscmp(szClass, WC_BUTTON) && (GetWindowLong(hWndCtrl, GWL_STYLE) & BS_CHECKBOX))
+ {
+ // check box
+ changed = datamap_read_control(properties_datamap, hDlg, pCurrentOpts, wID);
+ }
+ break;
+ }
+
+ if (changed == true)
+ {
+ // make sure everything's copied over, to determine what's changed
+ UpdateOptions(hDlg, properties_datamap, pCurrentOpts);
+ // enable the apply button
+ PropSheet_Changed(GetParent(hDlg), hDlg);
+ g_bUseDefaults = AreOptionsEqual(pCurrentOpts, pDefaultOpts) ? false : true;
+ g_bReset = AreOptionsEqual(pCurrentOpts, pOrigOpts) ? false : true;
+ EnableWindow(GetDlgItem(hDlg, IDC_USE_DEFAULT), g_bUseDefaults);
+ EnableWindow(GetDlgItem(hDlg, IDC_PROP_RESET), g_bReset);
+ }
+ }
+ break;
+
+ case WM_NOTIFY:
+ {
+ // Set to true if we are exiting the properties dialog
+ //BOOL bClosing = ((LPPSHNOTIFY) lParam)->lParam; // indicates OK was clicked rather than APPLY
+
+ switch (((NMHDR *) lParam)->code)
+ {
+ //We'll need to use a CheckState Table
+ //Because this one gets called for all kinds of other things too, and not only if a check is set
+ case PSN_SETACTIVE:
+ /* Initialize the controls. */
+ UpdateProperties(hDlg, properties_datamap, pCurrentOpts);
+ g_bUseDefaults = AreOptionsEqual(pCurrentOpts, pDefaultOpts) ? false : true;
+ g_bReset = AreOptionsEqual(pCurrentOpts, pOrigOpts) ? false : true;
+ EnableWindow(GetDlgItem(hDlg, IDC_USE_DEFAULT), g_bUseDefaults);
+ EnableWindow(GetDlgItem(hDlg, IDC_PROP_RESET), g_bReset);
+ break;
+
+ case PSN_APPLY:
+ // Handle more than one PSN_APPLY, since this proc handles more than one
+ // property sheet and can be called multiple times when it's time to exit,
+ // and we may have already freed the windows_options.
+ //if (bClosing)
+ //{
+ //if (NULL == pCurrentOpts)
+ //return true;
+ //}
+
+ // Read the datamap
+ UpdateOptions(hDlg, properties_datamap, pCurrentOpts);
+ // The current options become the original options.
+ UpdateOptions(hDlg, properties_datamap, pOrigOpts);
+
+ // Repopulate the controls? WTF? We just read them, they should be fine.
+ UpdateProperties(hDlg, properties_datamap, pCurrentOpts);
+
+ g_bUseDefaults = AreOptionsEqual(pCurrentOpts, pDefaultOpts) ? false : true;
+ g_bReset = AreOptionsEqual(pCurrentOpts, pOrigOpts) ? false : true;
+ EnableWindow(GetDlgItem(hDlg, IDC_USE_DEFAULT), g_bUseDefaults);
+ EnableWindow(GetDlgItem(hDlg, IDC_PROP_RESET), g_bReset);
+
+ // Save the current options
+ save_options(pCurrentOpts, g_nPropertyMode, g_nGame);
+
+ // Disable apply button
+ PropSheet_UnChanged(GetParent(hDlg), hDlg);
+ SetWindowLongPtr(hDlg, DWLP_MSGRESULT, PSNRET_NOERROR);
+
+ return true;
+
+ case PSN_KILLACTIVE:
+ /* Save Changes to the options here. */
+ UpdateOptions(hDlg, properties_datamap, pCurrentOpts);
+ // Determine button states.
+ g_bUseDefaults = AreOptionsEqual(pCurrentOpts, pDefaultOpts) ? false : true;
+ g_bReset = AreOptionsEqual(pCurrentOpts, pOrigOpts) ? false : true;
+ EnableWindow(GetDlgItem(hDlg, IDC_USE_DEFAULT), g_bUseDefaults);
+ EnableWindow(GetDlgItem(hDlg, IDC_PROP_RESET), g_bReset);
+
+ ResetDataMap(hDlg);
+ SetWindowLongPtr(hDlg, DWLP_MSGRESULT, false);
+ return 1;
+
+ case PSN_RESET:
+ // Reset to the original values. Disregard changes
+ //pCurrentOpts = pOrigOpts;
+ g_bUseDefaults = AreOptionsEqual(pCurrentOpts, pDefaultOpts) ? false : true;
+ g_bReset = AreOptionsEqual(pCurrentOpts, pOrigOpts) ? false : true;
+ EnableWindow(GetDlgItem(hDlg, IDC_USE_DEFAULT), g_bUseDefaults);
+ EnableWindow(GetDlgItem(hDlg, IDC_PROP_RESET), g_bReset);
+ SetWindowLongPtr(hDlg, DWLP_MSGRESULT, false);
+ break;
+
+ case PSN_HELP:
+ // User wants help for this property page
+ break;
+ }
+ }
+ break;
+
+ case WM_HELP:
+ /* User clicked the ? from the upper right on a control */
+ HelpFunction((HWND)((LPHELPINFO)lParam)->hItemHandle, MAMEUICONTEXTHELP, HH_TP_HELP_WM_HELP, GetHelpIDs());
+ break;
+
+ case WM_CONTEXTMENU:
+ HelpFunction((HWND)wParam, MAMEUICONTEXTHELP, HH_TP_HELP_CONTEXTMENU, GetHelpIDs());
+ break;
+
+ }
+
+ return 0;
+}
+
+/* Read controls that are not handled in the DataMap */
+static void PropToOptions(HWND hWnd, windows_options &o)
+{
+ HWND hCtrl;
+ HWND hCtrl2;
+ HWND hCtrl3;
+
+ /* aspect ratio */
+ hCtrl = GetDlgItem(hWnd, IDC_ASPECTRATION);
+ hCtrl2 = GetDlgItem(hWnd, IDC_ASPECTRATIOD);
+ hCtrl3 = GetDlgItem(hWnd, IDC_ASPECT);
+ if (hCtrl && hCtrl2 && hCtrl3)
+ {
+ char aspect_option[32];
+ snprintf(aspect_option, ARRAY_LENGTH(aspect_option), "aspect%d", GetSelectedScreen(hWnd));
+
+ if (Button_GetCheck(hCtrl3))
+ {
+ o.set_value(aspect_option, "auto", OPTION_PRIORITY_CMDLINE);
+ }
+ else
+ {
+ int n = 0;
+ int d = 0;
+ TCHAR buffer[200];
+ char buffer2[200];
+
+ Edit_GetText(hCtrl, buffer, ARRAY_LENGTH(buffer));
+ _stscanf(buffer,TEXT("%d"),&n);
+
+ Edit_GetText(hCtrl2, buffer, ARRAY_LENGTH(buffer));
+ _stscanf(buffer,TEXT("%d"),&d);
+
+ if (n == 0 || d == 0)
+ {
+ n = 4;
+ d = 3;
+ }
+
+ snprintf(buffer2, sizeof(buffer2), "%d:%d", n, d);
+ o.set_value(aspect_option, buffer2, OPTION_PRIORITY_CMDLINE);
+ }
+ }
+ /* aspect ratio */
+ hCtrl = GetDlgItem(hWnd, IDC_SNAPSIZEWIDTH);
+ hCtrl2 = GetDlgItem(hWnd, IDC_SNAPSIZEHEIGHT);
+ hCtrl3 = GetDlgItem(hWnd, IDC_SNAPSIZE);
+ if (hCtrl && hCtrl2 && hCtrl3)
+ {
+ if (Button_GetCheck(hCtrl3))
+ {
+ o.set_value(OPTION_SNAPSIZE, "auto", OPTION_PRIORITY_CMDLINE);
+ }
+ else
+ {
+ int width = 0;
+ int height = 0;
+ TCHAR buffer[200];
+ char buffer2[200];
+
+ Edit_GetText(hCtrl, buffer, ARRAY_LENGTH(buffer));
+ _stscanf(buffer, TEXT("%d"), &width);
+
+ Edit_GetText(hCtrl2, buffer, ARRAY_LENGTH(buffer));
+ _stscanf(buffer, TEXT("%d"), &height);
+
+ if (width == 0 || height == 0)
+ {
+ width = 640;
+ height = 480;
+ }
+
+ snprintf(buffer2, sizeof(buffer2), "%dx%d", width, height);
+ o.set_value(OPTION_SNAPSIZE, buffer2, OPTION_PRIORITY_CMDLINE);
+ }
+ }
+}
+
+/* Update options from the dialog */
+static void UpdateOptions(HWND hDlg, datamap *map, windows_options &opts)
+{
+ /* These are always called together, so make one convenient function. */
+ datamap_read_all_controls(map, hDlg, opts);
+ PropToOptions(hDlg, opts);
+}
+
+/* Update the dialog from the options */
+static void UpdateProperties(HWND hDlg, datamap *map, windows_options &opts)
+{
+ /* These are always called together, so make one convenient function. */
+ datamap_populate_all_controls(map, hDlg, opts);
+ OptionsToProp(hDlg, opts);
+ SetPropEnabledControls(hDlg);
+}
+
+/* Populate controls that are not handled in the DataMap */
+static void OptionsToProp(HWND hWnd, windows_options& o)
+{
+ HWND hCtrl2;
+ TCHAR buf[100];
+ int n = 0;
+ int d = 0;
+ int width = 0;
+ int height = 0;
+ int res = 0;
+
+ /* video */
+
+ /* Setup refresh list based on depth. */
+ datamap_update_control(properties_datamap, hWnd, pCurrentOpts, IDC_REFRESH);
+ /* Setup Select screen*/
+ UpdateSelectScreenUI(hWnd );
+
+ HWND hCtrl = GetDlgItem(hWnd, IDC_ASPECT);
+ if (hCtrl)
+ {
+ Button_SetCheck(hCtrl, g_bAutoAspect[GetSelectedScreen(hWnd)] ) ;
+ }
+
+ hCtrl = GetDlgItem(hWnd, IDC_SNAPSIZE);
+ if (hCtrl)
+ {
+ Button_SetCheck(hCtrl, g_bAutoSnapSize ) ;
+ }
+
+ /* Bios select list */
+ hCtrl = GetDlgItem(hWnd, IDC_BIOS);
+ if (hCtrl)
+ {
+ const char* cBuffer;
+ int i = 0;
+ int iCount = ComboBox_GetCount( hCtrl );
+ for( i=0; i< iCount; i++ )
+ {
+ cBuffer = (const char*)ComboBox_GetItemData( hCtrl, i );
+ if (strcmp(cBuffer, pCurrentOpts.value(OPTION_BIOS) ) == 0)
+ {
+ res = ComboBox_SetCurSel(hCtrl, i);
+ break;
+ }
+
+ }
+ }
+
+
+ hCtrl = GetDlgItem(hWnd, IDC_ASPECT);
+ if (hCtrl)
+ {
+ char aspect_option[32];
+ snprintf(aspect_option, ARRAY_LENGTH(aspect_option), "aspect%d", GetSelectedScreen(hWnd));
+ if( strcmp(o.value(aspect_option), "auto") == 0)
+ {
+ Button_SetCheck(hCtrl, true);
+ g_bAutoAspect[GetSelectedScreen(hWnd)] = true;
+ }
+ else
+ {
+ Button_SetCheck(hCtrl, false);
+ g_bAutoAspect[GetSelectedScreen(hWnd)] = false;
+ }
+ }
+
+ /* aspect ratio */
+ hCtrl = GetDlgItem(hWnd, IDC_ASPECTRATION);
+ hCtrl2 = GetDlgItem(hWnd, IDC_ASPECTRATIOD);
+ if (hCtrl && hCtrl2)
+ {
+ char aspect_option[32];
+ snprintf(aspect_option, ARRAY_LENGTH(aspect_option), "aspect%d", GetSelectedScreen(hWnd));
+
+ n = 0;
+ d = 0;
+ if (o.value(aspect_option))
+ {
+ if (sscanf(o.value(aspect_option), "%d:%d", &n, &d) == 2 && n != 0 && d != 0)
+ {
+ _stprintf(buf, TEXT("%d"), n);
+ Edit_SetText(hCtrl, buf);
+ _stprintf(buf, TEXT("%d"), d);
+ Edit_SetText(hCtrl2, buf);
+ }
+ else
+ {
+ Edit_SetText(hCtrl, TEXT("4"));
+ Edit_SetText(hCtrl2, TEXT("3"));
+ }
+ }
+ else
+ {
+ Edit_SetText(hCtrl, TEXT("4"));
+ Edit_SetText(hCtrl2, TEXT("3"));
+ }
+ }
+ hCtrl = GetDlgItem(hWnd, IDC_EFFECT);
+ if (hCtrl) {
+ const char* effect = o.value(OPTION_EFFECT);
+ if (effect == NULL) {
+ effect = "none";
+ o.set_value(OPTION_EFFECT, effect, OPTION_PRIORITY_CMDLINE);
+ }
+ win_set_window_text_utf8(hCtrl, effect);
+ }
+ hCtrl = GetDlgItem(hWnd, IDC_SNAPSIZE);
+ if (hCtrl)
+ {
+ if( strcmp(o.value(OPTION_SNAPSIZE), "auto") == 0)
+ {
+ Button_SetCheck(hCtrl, true);
+ g_bAutoSnapSize = true;
+ }
+ else
+ {
+ Button_SetCheck(hCtrl, false);
+ g_bAutoSnapSize = false;
+ }
+ }
+ /* snapshot size */
+ hCtrl = GetDlgItem(hWnd, IDC_SNAPSIZEWIDTH);
+ hCtrl2 = GetDlgItem(hWnd, IDC_SNAPSIZEHEIGHT);
+ if (hCtrl && hCtrl2)
+ {
+ n = 0;
+ d = 0;
+ if (o.value(OPTION_SNAPSIZE))
+ {
+ if (sscanf(o.value(OPTION_SNAPSIZE), "%dx%d", &width, &height) == 2 && width != 0 && height != 0)
+ {
+ _stprintf(buf, TEXT("%d"), width);
+ Edit_SetText(hCtrl, buf);
+ _stprintf(buf, TEXT("%d"), height);
+ Edit_SetText(hCtrl2, buf);
+ }
+ else
+ {
+ Edit_SetText(hCtrl, TEXT("640"));
+ Edit_SetText(hCtrl2, TEXT("480"));
+ }
+ }
+ else
+ {
+ Edit_SetText(hCtrl, TEXT("640"));
+ Edit_SetText(hCtrl2, TEXT("480"));
+ }
+ }
+ res++;
+}
+
+/* Adjust controls - tune them to the currently selected game */
+static void SetPropEnabledControls(HWND hWnd)
+{
+ bool useart = true;
+ BOOL joystick_attached = false;
+ bool in_window = false;
+ int nIndex = g_nGame;
+
+ // auto is a reserved word
+ bool autov = (core_stricmp(pCurrentOpts.value(OSDOPTION_VIDEO), "auto")==0);
+ bool d3d = (core_stricmp(pCurrentOpts.value(OSDOPTION_VIDEO), "d3d")==0) | autov;
+#ifdef UI_DIRECTDRAW
+ bool ddraw = (core_stricmp(pCurrentOpts.value(OSDOPTION_VIDEO), "ddraw")==0) | autov;
+#else
+ bool ddraw = false;
+#endif
+
+ in_window = pCurrentOpts.bool_value(OSDOPTION_WINDOW);
+ Button_SetCheck(GetDlgItem(hWnd, IDC_ASPECT), g_bAutoAspect[GetSelectedScreen(hWnd)] );
+
+ EnableWindow(GetDlgItem(hWnd, IDC_WAITVSYNC), d3d|ddraw);
+ EnableWindow(GetDlgItem(hWnd, IDC_TRIPLE_BUFFER), d3d|ddraw);
+ EnableWindow(GetDlgItem(hWnd, IDC_PRESCALE), d3d|ddraw);
+ EnableWindow(GetDlgItem(hWnd, IDC_PRESCALEDISP), d3d|ddraw);
+ EnableWindow(GetDlgItem(hWnd, IDC_PRESCALETEXT), d3d|ddraw);
+#ifdef UI_DIRECTDRAW
+ EnableWindow(GetDlgItem(hWnd, IDC_HWSTRETCH), ddraw && DirectDraw_HasHWStretch());
+#else
+ EnableWindow(GetDlgItem(hWnd, IDC_HWSTRETCH), false);
+#endif
+ EnableWindow(GetDlgItem(hWnd, IDC_SWITCHRES), true);
+ EnableWindow(GetDlgItem(hWnd, IDC_SYNCREFRESH), true);
+ EnableWindow(GetDlgItem(hWnd, IDC_REFRESH), !in_window);
+ EnableWindow(GetDlgItem(hWnd, IDC_REFRESHTEXT), !in_window);
+ EnableWindow(GetDlgItem(hWnd, IDC_FSGAMMA), !in_window);
+ EnableWindow(GetDlgItem(hWnd, IDC_FSGAMMATEXT), !in_window);
+ EnableWindow(GetDlgItem(hWnd, IDC_FSGAMMADISP), !in_window);
+ EnableWindow(GetDlgItem(hWnd, IDC_FSBRIGHTNESS), !in_window);
+ EnableWindow(GetDlgItem(hWnd, IDC_FSBRIGHTNESSTEXT), !in_window);
+ EnableWindow(GetDlgItem(hWnd, IDC_FSBRIGHTNESSDISP), !in_window);
+ EnableWindow(GetDlgItem(hWnd, IDC_FSCONTRAST), !in_window);
+ EnableWindow(GetDlgItem(hWnd, IDC_FSCONTRASTTEXT), !in_window);
+ EnableWindow(GetDlgItem(hWnd, IDC_FSCONTRASTDISP), !in_window);
+
+ EnableWindow(GetDlgItem(hWnd, IDC_ASPECTRATIOTEXT), !g_bAutoAspect[GetSelectedScreen(hWnd)]);
+ EnableWindow(GetDlgItem(hWnd, IDC_ASPECTRATION), !g_bAutoAspect[GetSelectedScreen(hWnd)]);
+ EnableWindow(GetDlgItem(hWnd, IDC_ASPECTRATIOD), !g_bAutoAspect[GetSelectedScreen(hWnd)]);
+
+ EnableWindow(GetDlgItem(hWnd, IDC_SNAPSIZETEXT), !g_bAutoSnapSize);
+ EnableWindow(GetDlgItem(hWnd, IDC_SNAPSIZEHEIGHT), !g_bAutoSnapSize);
+ EnableWindow(GetDlgItem(hWnd, IDC_SNAPSIZEWIDTH), !g_bAutoSnapSize);
+ EnableWindow(GetDlgItem(hWnd, IDC_SNAPSIZEX), !g_bAutoSnapSize);
+
+ EnableWindow(GetDlgItem(hWnd, IDC_D3D_FILTER),d3d);
+#ifdef D3DVERSION
+ EnableWindow(GetDlgItem(hWnd, IDC_D3D_VERSION),(NUMD3DVERSIONS>1) & d3d);
+#endif
+
+ //Switchres and D3D or ddraw enable the per screen parameters
+ EnableWindow(GetDlgItem(hWnd, IDC_NUMSCREENS), ddraw | d3d);
+ EnableWindow(GetDlgItem(hWnd, IDC_NUMSCREENSDISP), ddraw | d3d);
+ EnableWindow(GetDlgItem(hWnd, IDC_SCREENSELECT), ddraw | d3d);
+ EnableWindow(GetDlgItem(hWnd, IDC_SCREENSELECTTEXT), ddraw | d3d);
+
+ EnableWindow(GetDlgItem(hWnd, IDC_ARTWORK_CROP), useart);
+ EnableWindow(GetDlgItem(hWnd, IDC_BACKDROPS), useart);
+ EnableWindow(GetDlgItem(hWnd, IDC_BEZELS), useart);
+ EnableWindow(GetDlgItem(hWnd, IDC_OVERLAYS), useart);
+ EnableWindow(GetDlgItem(hWnd, IDC_CPANELS), useart);
+ EnableWindow(GetDlgItem(hWnd, IDC_MARQUEES), useart);
+ EnableWindow(GetDlgItem(hWnd, IDC_ARTMISCTEXT), useart);
+
+ /* Joystick options */
+ joystick_attached = DIJoystick.Available();
+
+ Button_Enable(GetDlgItem(hWnd,IDC_JOYSTICK), joystick_attached);
+ EnableWindow(GetDlgItem(hWnd, IDC_JDZTEXT), joystick_attached);
+ EnableWindow(GetDlgItem(hWnd, IDC_JDZDISP), joystick_attached);
+ EnableWindow(GetDlgItem(hWnd, IDC_JDZ), joystick_attached);
+ EnableWindow(GetDlgItem(hWnd, IDC_JSATTEXT), joystick_attached);
+ EnableWindow(GetDlgItem(hWnd, IDC_JSATDISP), joystick_attached);
+ EnableWindow(GetDlgItem(hWnd, IDC_JSAT), joystick_attached);
+ /* Trackball / Mouse options */
+ if (nIndex <= -1 || DriverUsesTrackball(nIndex) || DriverUsesLightGun(nIndex))
+ Button_Enable(GetDlgItem(hWnd,IDC_USE_MOUSE),true);
+ else
+ Button_Enable(GetDlgItem(hWnd,IDC_USE_MOUSE),false);
+
+ if (!in_window && (nIndex <= -1 || DriverUsesLightGun(nIndex)))
+ {
+ // on WinXP the Lightgun and Dual Lightgun switches are no longer supported use mouse instead
+ OSVERSIONINFOEX osvi;
+ BOOL bOsVersionInfoEx;
+ // Try calling GetVersionEx using the OSVERSIONINFOEX structure.
+ // If that fails, try using the OSVERSIONINFO structure.
+
+ ZeroMemory(&osvi, sizeof(OSVERSIONINFOEX));
+ osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
+
+ if( !(bOsVersionInfoEx = GetVersionEx ((OSVERSIONINFO *) &osvi)) )
+ {
+ osvi.dwOSVersionInfoSize = sizeof (OSVERSIONINFO);
+ bOsVersionInfoEx = GetVersionEx ( (OSVERSIONINFO *) &osvi);
+ }
+
+ if( bOsVersionInfoEx && (osvi.dwPlatformId == VER_PLATFORM_WIN32_NT) && (osvi.dwMajorVersion >= 5) )
+ {
+ BOOL use_lightgun;
+ //XP and above...
+ Button_Enable(GetDlgItem(hWnd,IDC_LIGHTGUN),false);
+ use_lightgun = Button_GetCheck(GetDlgItem(hWnd,IDC_USE_MOUSE));
+ Button_Enable(GetDlgItem(hWnd,IDC_DUAL_LIGHTGUN),false);
+ Button_Enable(GetDlgItem(hWnd,IDC_RELOAD),use_lightgun);
+ }
+ else
+ {
+ BOOL use_lightgun;
+ // Older than XP
+ Button_Enable(GetDlgItem(hWnd,IDC_LIGHTGUN),true);
+ use_lightgun = Button_GetCheck(GetDlgItem(hWnd,IDC_LIGHTGUN));
+ Button_Enable(GetDlgItem(hWnd,IDC_DUAL_LIGHTGUN),use_lightgun);
+ Button_Enable(GetDlgItem(hWnd,IDC_RELOAD),use_lightgun);
+ }
+ }
+ else
+ {
+ Button_Enable(GetDlgItem(hWnd,IDC_LIGHTGUN),false);
+ Button_Enable(GetDlgItem(hWnd,IDC_DUAL_LIGHTGUN),false);
+ Button_Enable(GetDlgItem(hWnd,IDC_RELOAD),false);
+ }
+
+
+ /* Sound options */
+ bool sound = (core_stricmp(pCurrentOpts.value(OSDOPTION_SOUND), "none")!=0);
+ ComboBox_Enable(GetDlgItem(hWnd, IDC_SAMPLERATE), sound);
+ EnableWindow(GetDlgItem(hWnd,IDC_VOLUME),sound);
+ EnableWindow(GetDlgItem(hWnd,IDC_RATETEXT),sound);
+ EnableWindow(GetDlgItem(hWnd,IDC_VOLUMEDISP),sound);
+ EnableWindow(GetDlgItem(hWnd,IDC_VOLUMETEXT),sound);
+ EnableWindow(GetDlgItem(hWnd,IDC_AUDIO_LATENCY),sound);
+ EnableWindow(GetDlgItem(hWnd,IDC_AUDIO_LATENCY_DISP),sound);
+ EnableWindow(GetDlgItem(hWnd,IDC_AUDIO_LATENCY_TEXT),sound);
+ SetSamplesEnabled(hWnd, nIndex, sound);
+
+ if (Button_GetCheck(GetDlgItem(hWnd, IDC_AUTOFRAMESKIP)))
+ EnableWindow(GetDlgItem(hWnd, IDC_FRAMESKIP), false);
+ else
+ EnableWindow(GetDlgItem(hWnd, IDC_FRAMESKIP), 1);
+
+ if (nIndex <= -1 || DriverHasOptionalBIOS(nIndex))
+ EnableWindow(GetDlgItem(hWnd,IDC_BIOS),true);
+ else
+ EnableWindow(GetDlgItem(hWnd,IDC_BIOS),false);
+
+}
+
+//============================================================
+// CONTROL HELPER FUNCTIONS FOR DATA EXCHANGE
+//============================================================
+
+static BOOL RotateReadControl(datamap *map, HWND dialog, HWND control, windows_options *opts, const char *option_name)
+{
+ int selected_index = ComboBox_GetCurSel(control);
+ int original_selection = 0;
+
+ // Figure out what the original selection value is
+ if (opts->bool_value(OPTION_ROR) && !opts->bool_value(OPTION_ROL))
+ original_selection = 1;
+ else if (!opts->bool_value(OPTION_ROR) && opts->bool_value(OPTION_ROL))
+ original_selection = 2;
+ else if (!opts->bool_value(OPTION_ROTATE))
+ original_selection = 3;
+ else if (opts->bool_value(OPTION_AUTOROR))
+ original_selection = 4;
+ else if (opts->bool_value(OPTION_AUTOROL))
+ original_selection = 5;
+
+ // Any work to do? If so, make the changes and return true.
+ if (selected_index != original_selection)
+ {
+ // Set the options based on the new selection.
+ opts->set_value(OPTION_ROR, selected_index == 1, OPTION_PRIORITY_CMDLINE);
+ opts->set_value(OPTION_ROL, selected_index == 2, OPTION_PRIORITY_CMDLINE);
+ opts->set_value(OPTION_ROTATE, selected_index != 3, OPTION_PRIORITY_CMDLINE);
+ opts->set_value(OPTION_AUTOROR, selected_index == 4, OPTION_PRIORITY_CMDLINE);
+ opts->set_value(OPTION_AUTOROL, selected_index == 5, OPTION_PRIORITY_CMDLINE);
+ return true;
+ }
+
+ // No changes
+ return false;
+}
+
+
+
+static BOOL RotatePopulateControl(datamap *map, HWND dialog, HWND control, windows_options *opts, const char *option_name)
+{
+ int res, selected_index = 0;
+ if (opts->bool_value(OPTION_ROR) && !opts->bool_value(OPTION_ROL))
+ selected_index = 1;
+ else if (!opts->bool_value(OPTION_ROR) && opts->bool_value(OPTION_ROL))
+ selected_index = 2;
+ else if (!opts->bool_value(OPTION_ROTATE))
+ selected_index = 3;
+ else if (opts->bool_value(OPTION_AUTOROR))
+ selected_index = 4;
+ else if (opts->bool_value(OPTION_AUTOROL))
+ selected_index = 5;
+
+ res = ComboBox_SetCurSel(control, selected_index);
+ res++;
+ return false;
+}
+
+
+
+static BOOL ScreenReadControl(datamap *map, HWND dialog, HWND control, windows_options *opts, const char *option_name)
+{
+ char screen_option_name[32];
+ int selected_screen = GetSelectedScreen(dialog);
+ int screen_option_index = ComboBox_GetCurSel(control);
+ TCHAR *screen_option_value = (TCHAR*) ComboBox_GetItemData(control, screen_option_index);
+ snprintf(screen_option_name, ARRAY_LENGTH(screen_option_name), "screen%d", selected_screen);
+ char *op_val = ui_utf8_from_wstring(screen_option_value);
+ opts->set_value(screen_option_name, op_val, OPTION_PRIORITY_CMDLINE);
+ free(op_val);
+ return false;
+}
+
+
+
+static BOOL ScreenPopulateControl(datamap *map, HWND dialog, HWND control, windows_options *opts, const char *option_name)
+{
+ //int iMonitors;
+ DISPLAY_DEVICE dd;
+ int res, i = 0;
+ int nSelection = 0;
+ TCHAR* t_option = 0;
+
+ /* Remove all items in the list. */
+ res = ComboBox_ResetContent(control);
+ res = ComboBox_InsertString(control, 0, TEXT("Auto"));
+ res = ComboBox_SetItemData(control, 0, (void*)ui_wstring_from_utf8("auto"));
+
+ //Dynamically populate it, by enumerating the Monitors
+ //iMonitors = GetSystemMetrics(SM_CMONITORS); // this gets the count of monitors attached
+ ZeroMemory(&dd, sizeof(dd));
+ dd.cb = sizeof(dd);
+ for(i=0; EnumDisplayDevices(NULL, i, &dd, 0); i++)
+ {
+ if( !(dd.StateFlags & DISPLAY_DEVICE_MIRRORING_DRIVER) )
+ {
+ char screen_option[32];
+
+ //we have to add 1 to account for the "auto" entry
+ res = ComboBox_InsertString(control, i+1, win_tstring_strdup(dd.DeviceName));
+ res = ComboBox_SetItemData(control, i+1, (void*)win_tstring_strdup(dd.DeviceName));
+
+ snprintf(screen_option, ARRAY_LENGTH(screen_option), "screen%d", GetSelectedScreen(dialog));
+ t_option = ui_wstring_from_utf8(opts->value(screen_option));
+ if( !t_option )
+ return false;
+ if (_tcscmp(t_option, dd.DeviceName) == 0)
+ nSelection = i+1;
+ free(t_option);
+ }
+ }
+ res = ComboBox_SetCurSel(control, nSelection);
+ res++;
+ return false;
+}
+
+
+
+static void ViewSetOptionName(datamap *map, HWND dialog, HWND control, char *buffer, size_t buffer_size)
+{
+ snprintf(buffer, buffer_size, "view%d", GetSelectedScreen(dialog));
+}
+
+static BOOL ViewPopulateControl(datamap *map, HWND dialog, HWND control, windows_options *opts, const char *option_name)
+{
+ int selected_index = 0;
+ char view_option[32];
+
+ // determine the view option value
+ snprintf(view_option, ARRAY_LENGTH(view_option), "view%d", GetSelectedScreen(dialog));
+ const char *view = opts->value(view_option);
+
+ int res = ComboBox_ResetContent(control);
+ for (int i = 0; i < NUMVIEW; i++)
+ {
+ res = ComboBox_InsertString(control, i, g_ComboBoxView[i].m_pText);
+ res = ComboBox_SetItemData(control, i, g_ComboBoxView[i].m_pData);
+
+ if (strcmp(view, g_ComboBoxView[i].m_pData)==0)
+ selected_index = i;
+ }
+ res = ComboBox_SetCurSel(control, selected_index);
+ res++;
+ return false;
+}
+
+static BOOL SnapViewPopulateControl(datamap *map, HWND dialog, HWND control, windows_options *opts, const char *option_name)
+{
+ int selected_index = 0;
+
+ // determine the snapview option value
+ const char *snapview = opts->value(OPTION_SNAPVIEW);
+
+ int res = ComboBox_ResetContent(control);
+ for (int i = 0; i < NUMSNAPVIEW; i++)
+ {
+ res = ComboBox_InsertString(control, i, g_ComboBoxSnapView[i].m_pText);
+ res = ComboBox_SetItemData(control, i, g_ComboBoxSnapView[i].m_pData);
+
+ if (strcmp(snapview, g_ComboBoxSnapView[i].m_pData)==0)
+ selected_index = i;
+ }
+ res = ComboBox_SetCurSel(control, selected_index);
+ res++;
+ return false;
+}
+
+static BOOL DefaultInputReadControl(datamap *map, HWND dialog, HWND control, windows_options *opts, const char *option_name)
+{
+ int input_option_index = ComboBox_GetCurSel(control);
+ TCHAR *input_option_value = (TCHAR*) ComboBox_GetItemData(control, input_option_index);
+ char *op_val = ui_utf8_from_wstring(input_option_value);
+ opts->set_value(OPTION_CTRLR, input_option_index ? op_val : "", OPTION_PRIORITY_CMDLINE);
+ free(op_val);
+ return false;
+}
+
+static BOOL DefaultInputPopulateControl(datamap *map, HWND dialog, HWND control, windows_options *opts, const char *option_name)
+{
+ TCHAR root[256];
+ TCHAR path[256];
+ int selected = 0;
+ int index = 0;
+ LPCTSTR t_ctrlr_option = 0;
+ LPTSTR t_buf = 0;
+
+ // determine the ctrlr option
+ const char *ctrlr_option = opts->value(OPTION_CTRLR);
+ if( ctrlr_option )
+ {
+ t_buf = ui_wstring_from_utf8(ctrlr_option);
+ if( !t_buf )
+ return false;
+ t_ctrlr_option = t_buf;
+ }
+ else
+ t_ctrlr_option = TEXT("");
+
+ // reset the controllers dropdown
+ int res = ComboBox_ResetContent(control);
+ res = ComboBox_InsertString(control, index, TEXT("Default"));
+ res = ComboBox_SetItemData(control, index, "");
+ index++;
+
+ std::string t = GetCtrlrDir();
+ TCHAR *t_ctrldir = ui_wstring_from_utf8(t.c_str());
+ if( !t_ctrldir )
+ {
+ if( t_buf )
+ free(t_buf);
+ return false;
+ }
+
+ _stprintf (path, TEXT("%s\\*.*"), t_ctrldir);
+
+ free(t_ctrldir);
+
+ WIN32_FIND_DATA FindFileData;
+ HANDLE hFind = FindFirstFile(path, &FindFileData);
+
+ if (hFind != INVALID_HANDLE_VALUE)
+ {
+ do
+ {
+ // copy the filename
+ _tcscpy (root,FindFileData.cFileName);
+
+ // find the extension
+ TCHAR *ext = _tcsrchr (root,'.');
+ if (ext)
+ {
+ // check if it's a cfg file
+ if (_tcscmp (ext, TEXT(".cfg")) == 0)
+ {
+ // and strip off the extension
+ *ext = 0;
+
+ // set the option?
+ if (!_tcscmp(root, t_ctrlr_option))
+ selected = index;
+
+ // add it as an option
+ res = ComboBox_InsertString(control, index, root);
+ res = ComboBox_SetItemData(control, index, (void*)win_tstring_strdup(root)); // FIXME - leaks memory!
+ index++;
+ }
+ }
+ }
+ while (FindNextFile (hFind, &FindFileData) != 0);
+
+ FindClose (hFind);
+ }
+
+ res = ComboBox_SetCurSel(control, selected);
+
+ if( t_buf )
+ free(t_buf);
+
+ res++;
+ return false;
+}
+
+
+
+static void ResolutionSetOptionName(datamap *map, HWND dialog, HWND control, char *buffer, size_t buffer_size)
+{
+ snprintf(buffer, buffer_size, "resolution%d", GetSelectedScreen(dialog));
+}
+
+
+static BOOL ResolutionReadControl(datamap *map, HWND dialog, HWND control, windows_options *opts, const char *option_name)
+{
+ HWND refresh_control = GetDlgItem(dialog, IDC_REFRESH);
+ HWND sizes_control = GetDlgItem(dialog, IDC_SIZES);
+ int res = 0, width = 0, height = 0;
+ char option_value[256];
+
+ if (refresh_control && sizes_control)
+ {
+ TCHAR buffer[256];
+ res = ComboBox_GetText(sizes_control, buffer, ARRAY_LENGTH(buffer) - 1);
+ if (_stscanf(buffer, TEXT("%d x %d"), &width, &height) == 2)
+ {
+ int refresh_index = ComboBox_GetCurSel(refresh_control);
+ int refresh_value = ComboBox_GetItemData(refresh_control, refresh_index);
+ snprintf(option_value, ARRAY_LENGTH(option_value), "%dx%d@%d", width, height, refresh_value);
+ }
+ else
+ snprintf(option_value, ARRAY_LENGTH(option_value), "auto");
+
+ opts->set_value(option_name, option_value, OPTION_PRIORITY_CMDLINE);
+ }
+ res++;
+ return false;
+}
+
+
+
+static BOOL ResolutionPopulateControl(datamap *map, HWND dialog, HWND control_, windows_options *opts, const char *option_name)
+{
+ HWND sizes_control = GetDlgItem(dialog, IDC_SIZES);
+ HWND refresh_control = GetDlgItem(dialog, IDC_REFRESH);
+ int width, height, refresh;
+ const char *option_value;
+ int sizes_index = 0;
+ int refresh_index = 0;
+ int sizes_selection = 0;
+ int refresh_selection = 0;
+ char screen_option[32];
+ const char *screen;
+ LPTSTR t_screen;
+ TCHAR buf[16];
+ int res = 0, i;
+ DEVMODE devmode;
+
+ if (sizes_control && refresh_control)
+ {
+ // determine the resolution
+ option_value = opts->value(option_name);
+ if (sscanf(option_value, "%dx%d@%d", &width, &height, &refresh) != 3)
+ {
+ width = 0;
+ height = 0;
+ refresh = 0;
+ }
+
+ // reset sizes control
+ res = ComboBox_ResetContent(sizes_control);
+ res = ComboBox_InsertString(sizes_control, sizes_index, TEXT("Auto"));
+ res = ComboBox_SetItemData(sizes_control, sizes_index, 0);
+ sizes_index++;
+
+ // reset refresh control
+ res = ComboBox_ResetContent(refresh_control);
+ res = ComboBox_InsertString(refresh_control, refresh_index, TEXT("Auto"));
+ res = ComboBox_SetItemData(refresh_control, refresh_index, 0);
+ refresh_index++;
+
+ // determine which screen we're using
+ snprintf(screen_option, ARRAY_LENGTH(screen_option), "screen%d", GetSelectedScreen(dialog));
+ screen = opts->value(screen_option);
+ t_screen = ui_wstring_from_utf8(screen);
+
+ // retrieve screen information
+ devmode.dmSize = sizeof(devmode);
+ for (i = 0; EnumDisplaySettings(t_screen, i, &devmode); i++)
+ {
+ if ((devmode.dmBitsPerPel == 32 ) // Only 32 bit depth supported by core
+ &&(devmode.dmDisplayFrequency == refresh || refresh == 0))
+ {
+ _sntprintf(buf, ARRAY_LENGTH(buf), TEXT("%li x %li"),
+ devmode.dmPelsWidth, devmode.dmPelsHeight);
+
+ if (ComboBox_FindString(sizes_control, 0, buf) == CB_ERR)
+ {
+ res = ComboBox_InsertString(sizes_control, sizes_index, buf);
+
+ if ((width == devmode.dmPelsWidth) && (height == devmode.dmPelsHeight))
+ sizes_selection = sizes_index;
+ sizes_index++;
+
+ }
+ }
+ if (devmode.dmDisplayFrequency >= 10 )
+ {
+ // I have some devmode "vga" which specifes 1 Hz, which is probably bogus, so we filter it out
+
+ _sntprintf(buf, ARRAY_LENGTH(buf), TEXT("%li Hz"), devmode.dmDisplayFrequency);
+
+ if (ComboBox_FindString(refresh_control, 0, buf) == CB_ERR)
+ {
+ res = ComboBox_InsertString(refresh_control, refresh_index, buf);
+ res = ComboBox_SetItemData(refresh_control, refresh_index, devmode.dmDisplayFrequency);
+
+ if (refresh == devmode.dmDisplayFrequency)
+ refresh_selection = refresh_index;
+
+ refresh_index++;
+ }
+ }
+ }
+ free(t_screen);
+
+ res = ComboBox_SetCurSel(sizes_control, sizes_selection);
+ res = ComboBox_SetCurSel(refresh_control, refresh_selection);
+ }
+ res++;
+ return false;
+}
+
+
+/************************************************************
+ * DataMap initializers
+ ************************************************************/
+
+/* Initialize local helper variables */
+static void ResetDataMap(HWND hWnd)
+{
+ char screen_option[32];
+
+ snprintf(screen_option, ARRAY_LENGTH(screen_option), "screen%d", GetSelectedScreen(hWnd));
+
+ if (pCurrentOpts.value(screen_option) == NULL
+ || (core_stricmp(pCurrentOpts.value(screen_option), "") == 0 )
+ || (core_stricmp(pCurrentOpts.value(screen_option), "auto") == 0 ) )
+ {
+ pCurrentOpts.set_value(screen_option, "auto", OPTION_PRIORITY_CMDLINE);
+ }
+}
+
+
+/* Build the control mapping by adding all needed information to the DataMap */
+static void BuildDataMap(void)
+{
+ properties_datamap = datamap_create();
+
+ // core state options
+ datamap_add(properties_datamap, IDC_ENABLE_AUTOSAVE, DM_BOOL, OPTION_AUTOSAVE);
+ datamap_add(properties_datamap, IDC_SNAPVIEW, DM_STRING, OPTION_SNAPVIEW);
+ datamap_add(properties_datamap, IDC_SNAPSIZEWIDTH, DM_STRING, NULL);
+ datamap_add(properties_datamap, IDC_SNAPSIZEHEIGHT, DM_STRING, NULL);
+
+ // core performance options
+ datamap_add(properties_datamap, IDC_AUTOFRAMESKIP, DM_BOOL, OPTION_AUTOFRAMESKIP);
+ datamap_add(properties_datamap, IDC_FRAMESKIP, DM_INT, OPTION_FRAMESKIP);
+ datamap_add(properties_datamap, IDC_SECONDSTORUN, DM_INT, OPTION_SECONDS_TO_RUN);
+ datamap_add(properties_datamap, IDC_SECONDSTORUNDISP, DM_INT, OPTION_SECONDS_TO_RUN);
+ datamap_add(properties_datamap, IDC_THROTTLE, DM_BOOL, OPTION_THROTTLE);
+ datamap_add(properties_datamap, IDC_SLEEP, DM_BOOL, OPTION_SLEEP);
+ datamap_add(properties_datamap, IDC_SPEED, DM_FLOAT, OPTION_SPEED);
+ datamap_add(properties_datamap, IDC_SPEEDDISP, DM_FLOAT, OPTION_SPEED);
+ datamap_add(properties_datamap, IDC_REFRESHSPEED, DM_BOOL, OPTION_REFRESHSPEED);
+
+ // core retation options
+ datamap_add(properties_datamap, IDC_ROTATE, DM_INT, NULL);
+ // ror, rol, autoror, autorol handled by callback
+ datamap_add(properties_datamap, IDC_FLIPX, DM_BOOL, OPTION_FLIPX);
+ datamap_add(properties_datamap, IDC_FLIPY, DM_BOOL, OPTION_FLIPY);
+
+ // core artwork options
+ datamap_add(properties_datamap, IDC_ARTWORK_CROP, DM_BOOL, OPTION_ARTWORK_CROP);
+ datamap_add(properties_datamap, IDC_BACKDROPS, DM_BOOL, OPTION_USE_BACKDROPS);
+ datamap_add(properties_datamap, IDC_OVERLAYS, DM_BOOL, OPTION_USE_OVERLAYS);
+ datamap_add(properties_datamap, IDC_BEZELS, DM_BOOL, OPTION_USE_BEZELS);
+ datamap_add(properties_datamap, IDC_CPANELS, DM_BOOL, OPTION_USE_CPANELS);
+ datamap_add(properties_datamap, IDC_MARQUEES, DM_BOOL, OPTION_USE_MARQUEES);
+
+ // core screen options
+ datamap_add(properties_datamap, IDC_BRIGHTCORRECT, DM_FLOAT, OPTION_BRIGHTNESS);
+ datamap_add(properties_datamap, IDC_BRIGHTCORRECTDISP, DM_FLOAT, OPTION_BRIGHTNESS);
+ datamap_add(properties_datamap, IDC_CONTRAST, DM_FLOAT, OPTION_CONTRAST);
+ datamap_add(properties_datamap, IDC_CONTRASTDISP, DM_FLOAT, OPTION_CONTRAST);
+ datamap_add(properties_datamap, IDC_GAMMA, DM_FLOAT, OPTION_GAMMA);
+ datamap_add(properties_datamap, IDC_GAMMADISP, DM_FLOAT, OPTION_GAMMA);
+ datamap_add(properties_datamap, IDC_PAUSEBRIGHT, DM_FLOAT, OPTION_PAUSE_BRIGHTNESS);
+ datamap_add(properties_datamap, IDC_PAUSEBRIGHTDISP, DM_FLOAT, OPTION_PAUSE_BRIGHTNESS);
+
+ // core vector options
+ datamap_add(properties_datamap, IDC_BEAM, DM_FLOAT, OPTION_BEAM_WIDTH_MAX);
+ datamap_add(properties_datamap, IDC_BEAMDISP, DM_FLOAT, OPTION_BEAM_WIDTH_MAX);
+ datamap_add(properties_datamap, IDC_FLICKER, DM_FLOAT, OPTION_FLICKER);
+ datamap_add(properties_datamap, IDC_FLICKERDISP, DM_FLOAT, OPTION_FLICKER);
+
+ // core sound options
+ datamap_add(properties_datamap, IDC_SAMPLERATE, DM_INT, OPTION_SAMPLERATE);
+ datamap_add(properties_datamap, IDC_SAMPLES, DM_BOOL, OPTION_SAMPLES);
+ datamap_add(properties_datamap, IDC_SOUND_MODE, DM_STRING, OSDOPTION_SOUND);
+ datamap_add(properties_datamap, IDC_VOLUME, DM_INT, OPTION_VOLUME);
+ datamap_add(properties_datamap, IDC_VOLUMEDISP, DM_INT, OPTION_VOLUME);
+
+ // core input options
+ datamap_add(properties_datamap, IDC_COINLOCKOUT, DM_BOOL, OPTION_COIN_LOCKOUT);
+ datamap_add(properties_datamap, IDC_DEFAULT_INPUT, DM_STRING, OPTION_CTRLR);
+ datamap_add(properties_datamap, IDC_USE_MOUSE, DM_BOOL, OPTION_MOUSE);
+ datamap_add(properties_datamap, IDC_JOYSTICK, DM_BOOL, OPTION_JOYSTICK);
+ datamap_add(properties_datamap, IDC_LIGHTGUN, DM_BOOL, OPTION_LIGHTGUN);
+ datamap_add(properties_datamap, IDC_STEADYKEY, DM_BOOL, OPTION_STEADYKEY);
+ datamap_add(properties_datamap, IDC_MULTIKEYBOARD, DM_BOOL, OPTION_MULTIKEYBOARD);
+ datamap_add(properties_datamap, IDC_MULTIMOUSE, DM_BOOL, OPTION_MULTIMOUSE);
+ datamap_add(properties_datamap, IDC_RELOAD, DM_BOOL, OPTION_OFFSCREEN_RELOAD);
+
+ datamap_add(properties_datamap, IDC_JDZ, DM_FLOAT, OPTION_JOYSTICK_DEADZONE);
+ datamap_add(properties_datamap, IDC_JDZDISP, DM_FLOAT, OPTION_JOYSTICK_DEADZONE);
+ datamap_add(properties_datamap, IDC_JSAT, DM_FLOAT, OPTION_JOYSTICK_SATURATION);
+ datamap_add(properties_datamap, IDC_JSATDISP, DM_FLOAT, OPTION_JOYSTICK_SATURATION);
+ datamap_add(properties_datamap, IDC_JOYSTICKMAP, DM_STRING, OPTION_JOYSTICK_MAP);
+
+ // core input automatic enable options
+ datamap_add(properties_datamap, IDC_PADDLE, DM_STRING, OPTION_PADDLE_DEVICE);
+ datamap_add(properties_datamap, IDC_ADSTICK, DM_STRING, OPTION_ADSTICK_DEVICE);
+ datamap_add(properties_datamap, IDC_PEDAL, DM_STRING, OPTION_PEDAL_DEVICE);
+ datamap_add(properties_datamap, IDC_DIAL, DM_STRING, OPTION_DIAL_DEVICE);
+ datamap_add(properties_datamap, IDC_TRACKBALL, DM_STRING, OPTION_TRACKBALL_DEVICE);
+ datamap_add(properties_datamap, IDC_LIGHTGUNDEVICE, DM_STRING, OPTION_LIGHTGUN_DEVICE);
+ datamap_add(properties_datamap, IDC_POSITIONAL, DM_STRING, OPTION_POSITIONAL_DEVICE);
+ datamap_add(properties_datamap, IDC_MOUSE, DM_STRING, OPTION_MOUSE_DEVICE);
+
+ // core debugging options
+ datamap_add(properties_datamap, IDC_LOG, DM_BOOL, OPTION_LOG);
+ datamap_add(properties_datamap, IDC_DEBUG, DM_BOOL, OPTION_DEBUG);
+ datamap_add(properties_datamap, IDC_VERBOSE, DM_BOOL, OPTION_VERBOSE);
+ datamap_add(properties_datamap, IDC_UPDATEINPAUSE, DM_BOOL, OPTION_UPDATEINPAUSE);
+ datamap_add(properties_datamap, IDC_DEBUGSCRIPT, DM_STRING, OPTION_DEBUGSCRIPT);
+
+ // core misc options
+ datamap_add(properties_datamap, IDC_BIOS, DM_STRING, OPTION_BIOS);
+ datamap_add(properties_datamap, IDC_CHEAT, DM_BOOL, OPTION_CHEAT);
+ datamap_add(properties_datamap, IDC_SKIP_GAME_INFO, DM_BOOL, OPTION_SKIP_GAMEINFO);
+
+ // windows debugging options
+ datamap_add(properties_datamap, IDC_OSLOG, DM_BOOL, OPTION_OSLOG);
+
+ // windows performance options
+ datamap_add(properties_datamap, IDC_HIGH_PRIORITY, DM_INT, WINOPTION_PRIORITY);
+ datamap_add(properties_datamap, IDC_HIGH_PRIORITYTXT, DM_INT, WINOPTION_PRIORITY);
+
+ // windows video options
+ datamap_add(properties_datamap, IDC_VIDEO_MODE, DM_STRING, OSDOPTION_VIDEO);
+ datamap_add(properties_datamap, IDC_NUMSCREENS, DM_INT, OSDOPTION_NUMSCREENS);
+ datamap_add(properties_datamap, IDC_NUMSCREENSDISP, DM_INT, OSDOPTION_NUMSCREENS);
+ datamap_add(properties_datamap, IDC_WINDOWED, DM_BOOL, OSDOPTION_WINDOW);
+ datamap_add(properties_datamap, IDC_MAXIMIZE, DM_BOOL, OSDOPTION_MAXIMIZE);
+ datamap_add(properties_datamap, IDC_KEEPASPECT, DM_BOOL, OPTION_KEEPASPECT);
+ datamap_add(properties_datamap, IDC_PRESCALE, DM_INT, OSDOPTION_PRESCALE);
+ datamap_add(properties_datamap, IDC_PRESCALEDISP, DM_INT, OSDOPTION_PRESCALE);
+ datamap_add(properties_datamap, IDC_EFFECT, DM_STRING, OPTION_EFFECT);
+ datamap_add(properties_datamap, IDC_WAITVSYNC, DM_BOOL, OSDOPTION_WAITVSYNC);
+ datamap_add(properties_datamap, IDC_SYNCREFRESH, DM_BOOL, OSDOPTION_SYNCREFRESH);
+
+ // Direct3D specific options
+#ifdef D3DVERSION
+ datamap_add(properties_datamap, IDC_D3D_VERSION, DM_INT, WINOPTION_D3DVERSION);
+#endif
+ datamap_add(properties_datamap, IDC_D3D_FILTER, DM_BOOL, OSDOPTION_FILTER);
+
+ // per window video options
+ datamap_add(properties_datamap, IDC_SCREEN, DM_STRING, NULL);
+ datamap_add(properties_datamap, IDC_SCREENSELECT, DM_STRING, NULL);
+ datamap_add(properties_datamap, IDC_VIEW, DM_STRING, NULL);
+ datamap_add(properties_datamap, IDC_ASPECTRATIOD, DM_STRING, NULL);
+ datamap_add(properties_datamap, IDC_ASPECTRATION, DM_STRING, NULL);
+ datamap_add(properties_datamap, IDC_REFRESH, DM_STRING, NULL);
+ datamap_add(properties_datamap, IDC_SIZES, DM_STRING, NULL);
+
+ // full screen options
+ datamap_add(properties_datamap, IDC_TRIPLE_BUFFER, DM_BOOL, WINOPTION_TRIPLEBUFFER);
+ datamap_add(properties_datamap, IDC_SWITCHRES, DM_BOOL, OSDOPTION_SWITCHRES);
+ datamap_add(properties_datamap, IDC_FSBRIGHTNESS, DM_FLOAT, WINOPTION_FULLSCREENBRIGHTNESS);
+ datamap_add(properties_datamap, IDC_FSBRIGHTNESSDISP, DM_FLOAT, WINOPTION_FULLSCREENBRIGHTNESS);
+ datamap_add(properties_datamap, IDC_FSCONTRAST, DM_FLOAT, WINOPTION_FULLSCREENCONTRAST);
+ datamap_add(properties_datamap, IDC_FSCONTRASTDISP, DM_FLOAT, WINOPTION_FULLSCREENCONTRAST);
+ datamap_add(properties_datamap, IDC_FSGAMMA, DM_FLOAT, WINOPTION_FULLSCREENGAMMA);
+ datamap_add(properties_datamap, IDC_FSGAMMADISP, DM_FLOAT, WINOPTION_FULLSCREENGAMMA);
+
+ // windows sound options
+ datamap_add(properties_datamap, IDC_AUDIO_LATENCY, DM_INT, OSDOPTION_AUDIO_LATENCY);
+ datamap_add(properties_datamap, IDC_AUDIO_LATENCY_DISP, DM_INT, OSDOPTION_AUDIO_LATENCY);
+
+ // input device options
+ datamap_add(properties_datamap, IDC_DUAL_LIGHTGUN, DM_BOOL, WINOPTION_DUAL_LIGHTGUN);
+
+ // show menu
+ datamap_add(properties_datamap, IDC_SHOW_MENU, DM_BOOL, WINOPTION_MENU);
+
+ // set up callbacks
+ datamap_set_callback(properties_datamap, IDC_ROTATE, DCT_READ_CONTROL, RotateReadControl);
+ datamap_set_callback(properties_datamap, IDC_ROTATE, DCT_POPULATE_CONTROL, RotatePopulateControl);
+ datamap_set_callback(properties_datamap, IDC_SCREEN, DCT_READ_CONTROL, ScreenReadControl);
+ datamap_set_callback(properties_datamap, IDC_SCREEN, DCT_POPULATE_CONTROL, ScreenPopulateControl);
+ datamap_set_callback(properties_datamap, IDC_VIEW, DCT_POPULATE_CONTROL, ViewPopulateControl);
+ datamap_set_callback(properties_datamap, IDC_REFRESH, DCT_READ_CONTROL, ResolutionReadControl);
+ datamap_set_callback(properties_datamap, IDC_REFRESH, DCT_POPULATE_CONTROL, ResolutionPopulateControl);
+ datamap_set_callback(properties_datamap, IDC_SIZES, DCT_READ_CONTROL, ResolutionReadControl);
+ datamap_set_callback(properties_datamap, IDC_SIZES, DCT_POPULATE_CONTROL, ResolutionPopulateControl);
+ datamap_set_callback(properties_datamap, IDC_DEFAULT_INPUT, DCT_READ_CONTROL, DefaultInputReadControl);
+ datamap_set_callback(properties_datamap, IDC_DEFAULT_INPUT, DCT_POPULATE_CONTROL, DefaultInputPopulateControl);
+ datamap_set_callback(properties_datamap, IDC_SNAPVIEW, DCT_POPULATE_CONTROL, SnapViewPopulateControl);
+
+ datamap_set_option_name_callback(properties_datamap, IDC_VIEW, ViewSetOptionName);
+ //missing population of views with per game defined additional views
+ datamap_set_option_name_callback(properties_datamap, IDC_REFRESH, ResolutionSetOptionName);
+ datamap_set_option_name_callback(properties_datamap, IDC_SIZES, ResolutionSetOptionName);
+
+
+ // formats
+ datamap_set_int_format(properties_datamap, IDC_VOLUMEDISP, "%ddB");
+ datamap_set_int_format(properties_datamap, IDC_AUDIO_LATENCY_DISP, "%d/5");
+ datamap_set_float_format(properties_datamap, IDC_BEAMDISP, "%03.2f");
+ datamap_set_float_format(properties_datamap, IDC_FLICKERDISP, "%03.2f");
+ datamap_set_float_format(properties_datamap, IDC_GAMMADISP, "%03.2f");
+ datamap_set_float_format(properties_datamap, IDC_BRIGHTCORRECTDISP, "%03.2f");
+ datamap_set_float_format(properties_datamap, IDC_CONTRASTDISP, "%03.2f");
+ datamap_set_float_format(properties_datamap, IDC_PAUSEBRIGHTDISP, "%03.2f");
+ datamap_set_float_format(properties_datamap, IDC_FSGAMMADISP, "%03.2f");
+ datamap_set_float_format(properties_datamap, IDC_FSBRIGHTNESSDISP, "%03.2f");
+ datamap_set_float_format(properties_datamap, IDC_FSCONTRASTDISP, "%03.2f");
+ datamap_set_float_format(properties_datamap, IDC_JDZDISP, "%03.2f");
+ datamap_set_float_format(properties_datamap, IDC_JSATDISP, "%03.2f");
+ datamap_set_float_format(properties_datamap, IDC_SPEEDDISP, "%03.2f");
+
+ // trackbar ranges - slider-name,start,end,step
+ datamap_set_trackbar_range(properties_datamap, IDC_JDZ, 0.00, 1.00, (float)0.05);
+ datamap_set_trackbar_range(properties_datamap, IDC_JSAT, 0.00, 1.00, (float)0.05);
+ datamap_set_trackbar_range(properties_datamap, IDC_SPEED, 0.00, 3.00, (float)0.01);
+ datamap_set_trackbar_range(properties_datamap, IDC_BEAM, (float)0.10, 10.00, (float)0.10);
+ datamap_set_trackbar_range(properties_datamap, IDC_AUDIO_LATENCY, 1, 5, 1);
+ datamap_set_trackbar_range(properties_datamap, IDC_VOLUME, -32, 0, 1);
+ datamap_set_trackbar_range(properties_datamap, IDC_SECONDSTORUN, 0, 60, 1);
+ datamap_set_trackbar_range(properties_datamap, IDC_NUMSCREENS, 1, 4, 1);
+ datamap_set_trackbar_range(properties_datamap, IDC_PRESCALE, 1, 3, 1);
+ datamap_set_trackbar_range(properties_datamap, IDC_FSGAMMA, 0.0, 3.0, (float)0.1);
+ datamap_set_trackbar_range(properties_datamap, IDC_FSBRIGHTNESS, 0.00, 2.0, (float)0.1);
+ datamap_set_trackbar_range(properties_datamap, IDC_FSCONTRAST, 0.0, 2.0, (float)0.1);
+ datamap_set_trackbar_range(properties_datamap, IDC_GAMMA, 0.0, 3.0, (float)0.1);
+ datamap_set_trackbar_range(properties_datamap, IDC_BRIGHTCORRECT, 0.00, 2.0, (float)0.1);
+ datamap_set_trackbar_range(properties_datamap, IDC_CONTRAST, 0.0, 2.0, (float)0.1);
+ datamap_set_trackbar_range(properties_datamap, IDC_PAUSEBRIGHT, 0.00, 1.00, (float)0.05);
+
+#ifdef MESS
+ // MESS specific stuff
+ datamap_add(properties_datamap, IDC_DIR_LIST, DM_STRING, NULL);
+ datamap_add(properties_datamap, IDC_RAM_COMBOBOX, DM_INT, OPTION_RAMSIZE);
+
+ // set up callbacks
+ datamap_set_callback(properties_datamap, IDC_DIR_LIST, DCT_READ_CONTROL, DirListReadControl);
+ datamap_set_callback(properties_datamap, IDC_DIR_LIST, DCT_POPULATE_CONTROL, DirListPopulateControl);
+ datamap_set_callback(properties_datamap, IDC_RAM_COMBOBOX, DCT_POPULATE_CONTROL, RamPopulateControl);
+#endif
+}
+
+
+static void SetSamplesEnabled(HWND hWnd, int nIndex, BOOL bSoundEnabled)
+{
+ BOOL enabled = false;
+ HWND hCtrl = GetDlgItem(hWnd, IDC_SAMPLES);
+
+
+ if (hCtrl)
+ {
+ if ( nIndex > -1 )
+ {
+ machine_config config(driver_list::driver(nIndex),pCurrentOpts);
+
+ for (device_sound_interface &sound : sound_interface_iterator(config.root_device()))
+ {
+ if (sound.device().type() == SAMPLES)
+ enabled = true;
+ }
+ }
+ enabled = enabled && bSoundEnabled;
+ EnableWindow(hCtrl, enabled);
+ }
+}
+
+/* Moved here cause it's called in a few places */
+static void InitializeOptions(HWND hDlg)
+{
+ InitializeSoundUI(hDlg);
+ InitializeSkippingUI(hDlg);
+ InitializeRotateUI(hDlg);
+ InitializeSelectScreenUI(hDlg);
+ InitializeBIOSUI(hDlg);
+ InitializeControllerMappingUI(hDlg);
+#ifdef D3DVERSION
+ InitializeD3DVersionUI(hDlg);
+#endif
+ InitializeVideoUI(hDlg);
+}
+
+/* Moved here because it is called in several places */
+static void InitializeMisc(HWND hDlg)
+{
+ Button_Enable(GetDlgItem(hDlg, IDC_JOYSTICK), DIJoystick.Available());
+}
+
+static void OptOnHScroll(HWND hwnd, HWND hwndCtl, UINT code, int pos)
+{
+ if (hwndCtl == GetDlgItem(hwnd, IDC_NUMSCREENS))
+ NumScreensSelectionChange(hwnd);
+}
+
+/* Handle changes to the Numscreens slider */
+static void NumScreensSelectionChange(HWND hwnd)
+{
+ //Also Update the ScreenSelect Combo with the new number of screens
+ UpdateSelectScreenUI(hwnd );
+}
+
+/* Handle changes to the Refresh drop down */
+static void RefreshSelectionChange(HWND hWnd, HWND hWndCtrl)
+{
+ int nCurSelection = ComboBox_GetCurSel(hWndCtrl);
+
+ if (nCurSelection != CB_ERR)
+ {
+ datamap_read_control(properties_datamap, hWnd, pCurrentOpts, IDC_SIZES);
+ datamap_populate_control(properties_datamap, hWnd, pCurrentOpts, IDC_SIZES);
+ }
+}
+
+/* Initialize the sound options */
+static void InitializeSoundUI(HWND hwnd)
+{
+ int res = 0, i;
+
+ HWND hCtrl = GetDlgItem(hwnd, IDC_SOUND_MODE);
+ if (hCtrl)
+ {
+ for (i = 0; i < NUMSOUND; i++)
+ {
+ res = ComboBox_InsertString(hCtrl, i, g_ComboBoxSound[i].m_pText);
+ res = ComboBox_SetItemData( hCtrl, i, g_ComboBoxSound[i].m_pData);
+ }
+ }
+
+ i = 0;
+
+ hCtrl = GetDlgItem(hwnd, IDC_SAMPLERATE);
+ if (hCtrl)
+ {
+ res = ComboBox_AddString(hCtrl, TEXT("11025"));
+ res = ComboBox_SetItemData(hCtrl, i++, 11025);
+ res = ComboBox_AddString(hCtrl, TEXT("22050"));
+ res = ComboBox_SetItemData(hCtrl, i++, 22050);
+ res = ComboBox_AddString(hCtrl, TEXT("44100"));
+ res = ComboBox_SetItemData(hCtrl, i++, 44100);
+ res = ComboBox_AddString(hCtrl, TEXT("48000"));
+ res = ComboBox_SetItemData(hCtrl, i++, 48000);
+ res = ComboBox_SetCurSel(hCtrl, 1);
+ }
+ res++;
+}
+
+/* Populate the Frame Skipping drop down */
+static void InitializeSkippingUI(HWND hwnd)
+{
+ HWND hCtrl = GetDlgItem(hwnd, IDC_FRAMESKIP);
+ int res = 0, i = 0;
+
+ if (hCtrl)
+ {
+ res = ComboBox_AddString(hCtrl, TEXT("Draw every frame"));
+ res = ComboBox_SetItemData(hCtrl, i++, 0);
+ res = ComboBox_AddString(hCtrl, TEXT("Skip 1 frame"));
+ res = ComboBox_SetItemData(hCtrl, i++, 1);
+ res = ComboBox_AddString(hCtrl, TEXT("Skip 2 frames"));
+ res = ComboBox_SetItemData(hCtrl, i++, 2);
+ res = ComboBox_AddString(hCtrl, TEXT("Skip 3 frames"));
+ res = ComboBox_SetItemData(hCtrl, i++, 3);
+ res = ComboBox_AddString(hCtrl, TEXT("Skip 4 frames"));
+ res = ComboBox_SetItemData(hCtrl, i++, 4);
+ res = ComboBox_AddString(hCtrl, TEXT("Skip 5 frames"));
+ res = ComboBox_SetItemData(hCtrl, i++, 5);
+ res = ComboBox_AddString(hCtrl, TEXT("Skip 6 frames"));
+ res = ComboBox_SetItemData(hCtrl, i++, 6);
+ res = ComboBox_AddString(hCtrl, TEXT("Skip 7 frames"));
+ res = ComboBox_SetItemData(hCtrl, i++, 7);
+ res = ComboBox_AddString(hCtrl, TEXT("Skip 8 frames"));
+ res = ComboBox_SetItemData(hCtrl, i++, 8);
+ res = ComboBox_AddString(hCtrl, TEXT("Skip 9 frames"));
+ res = ComboBox_SetItemData(hCtrl, i++, 9);
+ res = ComboBox_AddString(hCtrl, TEXT("Skip 10 frames"));
+ res = ComboBox_SetItemData(hCtrl, i++, 10);
+ }
+ res++;
+}
+
+/* Populate the Rotate drop down */
+static void InitializeRotateUI(HWND hwnd)
+{
+ HWND hCtrl = GetDlgItem(hwnd, IDC_ROTATE);
+ int res = 0;
+
+ if (hCtrl)
+ {
+ res = ComboBox_AddString(hCtrl, TEXT("Default")); // 0
+ res = ComboBox_AddString(hCtrl, TEXT("Clockwise")); // 1
+ res = ComboBox_AddString(hCtrl, TEXT("Anti-clockwise")); // 2
+ res = ComboBox_AddString(hCtrl, TEXT("None")); // 3
+ res = ComboBox_AddString(hCtrl, TEXT("Auto clockwise")); // 4
+ res = ComboBox_AddString(hCtrl, TEXT("Auto anti-clockwise")); // 5
+ }
+ res++;
+}
+
+/* Populate the Video Mode drop down */
+static void InitializeVideoUI(HWND hwnd)
+{
+ int res = 0;
+
+ HWND hCtrl = GetDlgItem(hwnd, IDC_VIDEO_MODE);
+ if (hCtrl)
+ {
+ for (int i = 0; i < NUMVIDEO; i++)
+ {
+ res = ComboBox_InsertString(hCtrl, i, g_ComboBoxVideo[i].m_pText);
+ res = ComboBox_SetItemData( hCtrl, i, g_ComboBoxVideo[i].m_pData);
+ }
+ }
+ res++;
+}
+
+#ifdef D3DVERSION
+/* Populate the D3D Version drop down */
+static void InitializeD3DVersionUI(HWND hwnd)
+{
+ HWND hCtrl = GetDlgItem(hwnd, IDC_D3D_VERSION);
+ int res = 0;
+ if (hCtrl)
+ {
+ for (int i = 0; i < NUMD3DVERSIONS; i++)
+ {
+ res = ComboBox_InsertString(hCtrl, i, g_ComboBoxD3DVersion[i].m_pText);
+ res = ComboBox_SetItemData( hCtrl, i, g_ComboBoxD3DVersion[i].m_pData);
+ }
+ }
+ res++;
+}
+#endif
+static void UpdateSelectScreenUI(HWND hwnd)
+{
+ int res = 0, i, curSel;
+ HWND hCtrl = GetDlgItem(hwnd, IDC_SCREENSELECT);
+ if (hCtrl)
+ {
+ curSel = ComboBox_GetCurSel(hCtrl);
+ if ((curSel < 0) || (curSel >= NUMSELECTSCREEN))
+ curSel = 0;
+ res = ComboBox_ResetContent(hCtrl);
+ for (i = 0; i < NUMSELECTSCREEN && i < pCurrentOpts.int_value(OSDOPTION_NUMSCREENS) ; i++)
+ {
+ res = ComboBox_InsertString(hCtrl, i, g_ComboBoxSelectScreen[i].m_pText);
+ res = ComboBox_SetItemData( hCtrl, i, g_ComboBoxSelectScreen[i].m_pData);
+ }
+ // Smaller Amount of screens was selected, so use 0
+ if( i < curSel )
+ res = ComboBox_SetCurSel(hCtrl, 0);
+ else
+ res = ComboBox_SetCurSel(hCtrl, curSel);
+ }
+ res++;
+}
+
+/* Populate the Select Screen drop down */
+static void InitializeSelectScreenUI(HWND hwnd)
+{
+ UpdateSelectScreenUI(hwnd);
+}
+
+static void InitializeControllerMappingUI(HWND hwnd)
+{
+ int res = 0;
+ HWND hCtrl = GetDlgItem(hwnd,IDC_PADDLE);
+ HWND hCtrl1 = GetDlgItem(hwnd,IDC_ADSTICK);
+ HWND hCtrl2 = GetDlgItem(hwnd,IDC_PEDAL);
+ HWND hCtrl3 = GetDlgItem(hwnd,IDC_MOUSE);
+ HWND hCtrl4 = GetDlgItem(hwnd,IDC_DIAL);
+ HWND hCtrl5 = GetDlgItem(hwnd,IDC_TRACKBALL);
+ HWND hCtrl6 = GetDlgItem(hwnd,IDC_LIGHTGUNDEVICE);
+ HWND hCtrl7 = GetDlgItem(hwnd,IDC_POSITIONAL);
+
+ for (int i = 0; i < NUMDEVICES; i++)
+ {
+ if (hCtrl)
+ {
+ res = ComboBox_InsertString(hCtrl, i, g_ComboBoxDevice[i].m_pText);
+ res = ComboBox_SetItemData( hCtrl, i, g_ComboBoxDevice[i].m_pData);
+ }
+
+ if (hCtrl1)
+ {
+ res = ComboBox_InsertString(hCtrl1, i, g_ComboBoxDevice[i].m_pText);
+ res = ComboBox_SetItemData( hCtrl1, i, g_ComboBoxDevice[i].m_pData);
+ }
+
+ if (hCtrl2)
+ {
+ res = ComboBox_InsertString(hCtrl2, i, g_ComboBoxDevice[i].m_pText);
+ res = ComboBox_SetItemData( hCtrl2, i, g_ComboBoxDevice[i].m_pData);
+ }
+
+ if (hCtrl3)
+ {
+ res = ComboBox_InsertString(hCtrl3, i, g_ComboBoxDevice[i].m_pText);
+ res = ComboBox_SetItemData( hCtrl3, i, g_ComboBoxDevice[i].m_pData);
+ }
+
+ if (hCtrl4)
+ {
+ res = ComboBox_InsertString(hCtrl4, i, g_ComboBoxDevice[i].m_pText);
+ res = ComboBox_SetItemData( hCtrl4, i, g_ComboBoxDevice[i].m_pData);
+ }
+
+ if (hCtrl5)
+ {
+ res = ComboBox_InsertString(hCtrl5, i, g_ComboBoxDevice[i].m_pText);
+ res = ComboBox_SetItemData( hCtrl5, i, g_ComboBoxDevice[i].m_pData);
+ }
+
+ if (hCtrl6)
+ {
+ res = ComboBox_InsertString(hCtrl6, i, g_ComboBoxDevice[i].m_pText);
+ res = ComboBox_SetItemData( hCtrl6, i, g_ComboBoxDevice[i].m_pData);
+ }
+
+ if (hCtrl7)
+ {
+ res = ComboBox_InsertString(hCtrl7, i, g_ComboBoxDevice[i].m_pText);
+ res = ComboBox_SetItemData( hCtrl7, i, g_ComboBoxDevice[i].m_pData);
+ }
+ }
+ res++;
+}
+
+
+static void InitializeBIOSUI(HWND hwnd)
+{
+ HWND hCtrl = GetDlgItem(hwnd,IDC_BIOS);
+ int res = 0, i = 0;
+ TCHAR* t_s;
+ if (hCtrl)
+ {
+ const game_driver *gamedrv = &driver_list::driver(g_nGame);
+ const rom_entry *rom;
+
+ if (g_nGame == GLOBAL_OPTIONS)
+ {
+ res = ComboBox_InsertString(hCtrl, i, TEXT("None"));
+ res = ComboBox_SetItemData( hCtrl, i++, "");
+ return;
+ }
+ if (g_nGame == LOCAL_OPTIONS) //Folder Options: This is the only place that LOCAL_OPTIONS is used, is this code ever executed?
+ {
+ gamedrv = &driver_list::driver(g_nFolderGame);
+ if (DriverHasOptionalBIOS(g_nFolderGame) == false)
+ {
+ res = ComboBox_InsertString(hCtrl, i, TEXT("None"));
+ res = ComboBox_SetItemData( hCtrl, i++, "");
+ return;
+ }
+ res = ComboBox_InsertString(hCtrl, i, TEXT("Default"));
+ res = ComboBox_SetItemData( hCtrl, i++, "");
+
+ if (gamedrv->rom)
+ {
+ auto rom_entries = rom_build_entries(gamedrv->rom);
+ for (rom = rom_entries.data(); !ROMENTRY_ISEND(rom); rom++)
+ {
+ if (ROMENTRY_ISSYSTEM_BIOS(rom))
+ {
+ const char *name = ROM_GETHASHDATA(rom);
+ const char *biosname = ROM_GETNAME(rom);
+ t_s = ui_wstring_from_utf8(name);
+ if( !t_s )
+ return;
+ res = ComboBox_InsertString(hCtrl, i, win_tstring_strdup(t_s));
+ res = ComboBox_SetItemData( hCtrl, i++, biosname);
+ free(t_s);
+ }
+ }
+ }
+ return;
+ }
+
+ if (DriverHasOptionalBIOS(g_nGame) == false)
+ {
+ res = ComboBox_InsertString(hCtrl, i, TEXT("None"));
+ res = ComboBox_SetItemData( hCtrl, i++, "");
+ return;
+ }
+ res = ComboBox_InsertString(hCtrl, i, TEXT("Default"));
+ res = ComboBox_SetItemData( hCtrl, i++, "");
+
+ if (gamedrv->rom)
+ {
+ auto rom_entries = rom_build_entries(gamedrv->rom);
+ for (rom = rom_entries.data(); !ROMENTRY_ISEND(rom); rom++)
+ {
+ if (ROMENTRY_ISSYSTEM_BIOS(rom))
+ {
+ const char *name = ROM_GETHASHDATA(rom);
+ const char *biosname = ROM_GETNAME(rom);
+ t_s = ui_wstring_from_utf8(name);
+ if( !t_s )
+ return;
+ res = ComboBox_InsertString(hCtrl, i, win_tstring_strdup(t_s));
+ res = ComboBox_SetItemData( hCtrl, i++, biosname);
+ free(t_s);
+ }
+ }
+ }
+ }
+ res++;
+}
+
+static BOOL SelectEffect(HWND hWnd)
+{
+ char filename[MAX_PATH];
+ BOOL changed = false;
+
+ *filename = 0;
+ if (CommonFileDialog(GetOpenFileName, filename, FILETYPE_EFFECT_FILES))
+ {
+ //strip Path and extension
+ char buff[MAX_PATH];
+ int i, j = 0, k = 0, l = 0;
+ for(i=0; i<strlen(filename); i++ )
+ {
+ if( filename[i] == '\\' )
+ j = i;
+ if( filename[i] == '.' )
+ k = i;
+ }
+ for(i=j+1; i<k; i++)
+ buff[l++] = filename[i];
+
+ buff[l] = '\0';
+
+ if (strcmp(buff, pCurrentOpts.value(OPTION_EFFECT))!=0)
+ {
+ HWND control = GetDlgItem(hWnd, IDC_EFFECT);
+ pCurrentOpts.set_value(OPTION_EFFECT, buff, OPTION_PRIORITY_CMDLINE);
+ win_set_window_text_utf8(control, buff);
+ // datamap_populate_control(properties_datamap, hWnd, pCurrentOpts, IDC_EFFECT);
+ changed = true;
+ }
+ }
+ return changed;
+}
+
+static BOOL ResetEffect(HWND hWnd)
+{
+ BOOL changed = false;
+ const char *new_value = "none";
+
+ if (strcmp(new_value, pCurrentOpts.value(OPTION_EFFECT))!=0)
+ {
+ HWND control = GetDlgItem(hWnd, IDC_EFFECT);
+ pCurrentOpts.set_value(OPTION_EFFECT, new_value, OPTION_PRIORITY_CMDLINE);
+ win_set_window_text_utf8(control, new_value);
+ // datamap_populate_control(properties_datamap, hWnd, pCurrentOpts, IDC_EFFECT);
+ changed = true;
+ }
+ return changed;
+}
+
+static BOOL SelectJoystickMap(HWND hWnd)
+{
+ char filename[MAX_PATH];
+ BOOL changed = false;
+
+ *filename = 0;
+ if (CommonFileDialog(GetOpenFileName, filename, FILETYPE_JOYMAP_FILES))
+ {
+ if (strcmp(filename, pCurrentOpts.value(OPTION_JOYSTICK_MAP))!=0)
+ {
+ HWND control = GetDlgItem(hWnd, IDC_JOYSTICKMAP);
+ pCurrentOpts.set_value(OPTION_JOYSTICK_MAP, filename, OPTION_PRIORITY_CMDLINE);
+ win_set_window_text_utf8(control, filename);
+ changed = true;
+ }
+ }
+ return changed;
+}
+
+static BOOL ResetJoystickMap(HWND hWnd)
+{
+ BOOL changed = false;
+ const char *new_value = "auto";
+
+ if (strcmp(new_value, pCurrentOpts.value(OPTION_JOYSTICK_MAP))!=0)
+ {
+ HWND control = GetDlgItem(hWnd, IDC_JOYSTICKMAP);
+ pCurrentOpts.set_value(OPTION_JOYSTICK_MAP, new_value, OPTION_PRIORITY_CMDLINE);
+ win_set_window_text_utf8(control, new_value);
+ changed = true;
+ }
+ return changed;
+}
+
+static BOOL SelectDebugscript(HWND hWnd)
+{
+ char filename[MAX_PATH];
+ BOOL changed = false;
+
+ *filename = 0;
+ if (CommonFileDialog(GetOpenFileName, filename, FILETYPE_DEBUGSCRIPT_FILES))
+ {
+ if (strcmp(filename, pCurrentOpts.value(OPTION_DEBUGSCRIPT))!=0)
+ {
+ HWND control = GetDlgItem(hWnd, IDC_DEBUGSCRIPT);
+ pCurrentOpts.set_value(OPTION_DEBUGSCRIPT, filename, OPTION_PRIORITY_CMDLINE);
+ win_set_window_text_utf8(control, filename);
+ changed = true;
+ }
+ }
+ return changed;
+}
+
+static BOOL ResetDebugscript(HWND hWnd)
+{
+ BOOL changed = false;
+ const char *new_value = "";
+
+ if (strcmp(new_value, pCurrentOpts.value(OPTION_DEBUGSCRIPT))!=0)
+ {
+ HWND control = GetDlgItem(hWnd, IDC_DEBUGSCRIPT);
+ pCurrentOpts.set_value(OPTION_DEBUGSCRIPT, new_value, OPTION_PRIORITY_CMDLINE);
+ win_set_window_text_utf8(control, new_value);
+ changed = true;
+ }
+ return changed;
+}
+
+void UpdateBackgroundBrush(HWND hwndTab)
+{
+ // Destroy old brush
+ if (hBkBrush)
+ DeleteBrush(hBkBrush);
+
+ hBkBrush = NULL;
+
+ // Only do this if the theme is active
+ if (SafeIsAppThemed())
+ {
+ // Get tab control dimensions
+ RECT rc;
+ GetWindowRect( hwndTab, &rc);
+
+ // Get the tab control DC
+ HDC hDC = GetDC(hwndTab);
+
+ // Create a compatible DC
+ HDC hDCMem = CreateCompatibleDC(hDC);
+ HBITMAP hBmp = CreateCompatibleBitmap(hDC, rc.right - rc.left, rc.bottom - rc.top);
+ HBITMAP hBmpOld = (HBITMAP)(SelectObject(hDCMem, hBmp));
+
+ // Tell the tab control to paint in our DC
+ SendMessage(hwndTab, WM_PRINTCLIENT, (WPARAM)(hDCMem), (LPARAM)(PRF_ERASEBKGND | PRF_CLIENT | PRF_NONCLIENT));
+
+ // Create a pattern brush from the bitmap selected in our DC
+ hBkBrush = CreatePatternBrush(hBmp);
+
+ // Restore the bitmap
+ SelectObject(hDCMem, hBmpOld);
+
+ // Cleanup
+ DeleteBitmap(hBmp);
+ DeleteDC(hDCMem);
+ ReleaseDC(hwndTab, hDC);
+ }
+}
+
+
+// from propertiesms.cpp (MESSUI)
+
+
+//============================================================
+#ifdef MESS
+//============================================================
+// DATAMAP HANDLERS FOR MESS
+//============================================================
+
+static void AppendList(HWND hList, LPCTSTR lpItem, int nItem)
+{
+ LV_ITEM Item;
+ memset(&Item, 0, sizeof(LV_ITEM));
+ Item.mask = LVIF_TEXT;
+ Item.pszText = (LPTSTR) lpItem;
+ Item.iItem = nItem;
+ HRESULT res = ListView_InsertItem(hList, &Item);
+ res++;
+}
+
+static BOOL DirListReadControl(datamap *map, HWND dialog, HWND control, windows_options *opts, const char *option_name)
+{
+ int directory_count;
+ LV_ITEM lvi;
+ TCHAR buffer[2048];
+ int pos = 0;
+ BOOL res;
+
+ // determine the directory count; note that one item is the "< >" entry
+ directory_count = ListView_GetItemCount(control);
+ if (directory_count > 0)
+ directory_count--;
+
+ buffer[0] = '\0';
+
+ for (int i = 0; i < directory_count; i++)
+ {
+ // append a semicolon, if we're past the first entry
+ if (i > 0)
+ pos += _sntprintf(&buffer[pos], ARRAY_LENGTH(buffer) - pos, TEXT(";"));
+
+ // retrieve the next entry
+ memset(&lvi, '\0', sizeof(lvi));
+ lvi.mask = LVIF_TEXT;
+ lvi.iItem = i;
+ lvi.pszText = &buffer[pos];
+ lvi.cchTextMax = ARRAY_LENGTH(buffer) - pos;
+ res = ListView_GetItem(control, &lvi);
+
+ // advance the position
+ pos += _tcslen(&buffer[pos]);
+ }
+
+ char* paths = ui_utf8_from_wstring(buffer);
+ if ((buffer[1] == 0x3A) || (buffer[0] == 0)) // must be a folder or null
+ pCurrentOpts.set_value(OPTION_SWPATH, paths, OPTION_PRIORITY_CMDLINE);
+
+ free (paths);
+ res++;
+ return true;
+}
+
+
+static BOOL DirListPopulateControl(datamap *map, HWND dialog, HWND control, windows_options *opts, const char *option_name)
+{
+ int new_pos = 0;
+
+ // access the directory list, and convert to TCHARs
+ int driver_index = PropertiesCurrentGame(dialog);
+ windows_options o;
+ load_options(o, OPTIONS_GAME, driver_index, 0);
+ const char* paths = o.value(OPTION_SWPATH);
+ TCHAR* t_dir_list = ui_wstring_from_utf8(paths);
+ paths = 0;
+ if (!t_dir_list)
+ return false;
+
+ // delete all items in the list control
+ BOOL b_res = ListView_DeleteAllItems(control);
+
+ // add the column
+ RECT r;
+ GetClientRect(control, &r);
+ LV_COLUMN lvc;
+ memset(&lvc, 0, sizeof(LVCOLUMN));
+ lvc.mask = LVCF_WIDTH;
+ lvc.cx = r.right - r.left - GetSystemMetrics(SM_CXHSCROLL);
+ HRESULT res = ListView_InsertColumn(control, 0, &lvc);
+
+ // add each of the directories
+ int pos = 0;
+ int current_item = 0;
+ while(t_dir_list[pos] != '\0')
+ {
+ // parse off this item
+ TCHAR *s = _tcschr(&t_dir_list[pos], ';');
+ if (s)
+ {
+ *s = '\0';
+ new_pos = s - t_dir_list + 1;
+ }
+ else
+ new_pos = pos + _tcslen(&t_dir_list[pos]);
+
+ // append this item
+ AppendList(control, &t_dir_list[pos], current_item);
+
+ // advance to next item
+ pos = new_pos;
+ current_item++;
+ }
+
+ // finish up
+ AppendList(control, TEXT(DIRLIST_NEWENTRYTEXT), current_item);
+ ListView_SetItemState(control, 0, LVIS_SELECTED, LVIS_SELECTED);
+ free(t_dir_list);
+ res++;
+ b_res++;
+ return true;
+}
+
+
+
+static const char *messram_string(char *buffer, UINT32 ram)
+{
+ const char *suffix;
+
+ if ((ram % (1024*1024)) == 0)
+ {
+ ram /= 1024*1024;
+ suffix = "MB";
+ }
+ else if ((ram % 1024) == 0)
+ {
+ ram /= 1024;
+ suffix = "KB";
+ }
+ else
+ suffix = "";
+
+ sprintf(buffer, "%u%s", ram, suffix);
+ return buffer;
+}
+
+//-------------------------------------------------
+// parse_string - convert a ram string to an
+// integer value
+//-------------------------------------------------
+
+static uint32_t parse_string(const char *s)
+{
+ static const struct
+ {
+ const char *suffix;
+ unsigned multiple;
+ } s_suffixes[] =
+ {
+ { "", 1 },
+ { "k", 1024 },
+ { "kb", 1024 },
+ { "kib", 1024 },
+ { "m", 1024 * 1024 },
+ { "mb", 1024 * 1024 },
+ { "mib", 1024 * 1024 }
+ };
+
+ // parse the string
+ unsigned ram = 0;
+ char suffix[8] = { 0, };
+ sscanf(s, "%u%7s", &ram, suffix);
+
+ // perform the lookup
+ auto iter = std::find_if(std::begin(s_suffixes), std::end(s_suffixes), [&suffix](const auto &potential_suffix)
+ { return !core_stricmp(suffix, potential_suffix.suffix); } );
+
+ // identify the multiplier (or 0 if not recognized, signalling a parse failure)
+ unsigned multiple = iter != std::end(s_suffixes) ? iter->multiple : 0;
+
+ // return the result
+ return ram * multiple;
+}
+
+static BOOL RamPopulateControl(datamap *map, HWND dialog, HWND control, windows_options *opts, const char *option_name)
+{
+ int i = 0, current_index = 0;
+
+ // identify the driver
+ int driver_index = PropertiesCurrentGame(dialog);
+ const game_driver *gamedrv = &driver_list::driver(driver_index);
+
+ // clear out the combo box
+ int res = ComboBox_ResetContent(control);
+
+ // allocate the machine config
+ machine_config cfg(*gamedrv,*opts);
+
+ // identify how many options that we have
+ ram_device_iterator iter(cfg.root_device());
+ ram_device *device = iter.first();
+
+ EnableWindow(control, (device != NULL));
+
+ // we can only do something meaningful if there is more than one option
+ if (device)
+ {
+ const ram_device *ramdev = dynamic_cast<const ram_device *>(device);
+
+ // identify the current amount of RAM
+ const char *this_ram_string = opts->value(OPTION_RAMSIZE);
+ uint32_t current_ram = (this_ram_string) ? parse_string(this_ram_string) : 0;
+ uint32_t ram = ramdev->default_size();
+ if (current_ram == 0)
+ current_ram = ram;
+
+ char ramtext[20];
+ messram_string(ramtext, ram);
+ TCHAR *t_ramstring = ui_wstring_from_utf8(ramtext);
+ if( !t_ramstring )
+ return false;
+
+ res = ComboBox_InsertString(control, i, win_tstring_strdup(t_ramstring));
+ res = ComboBox_SetItemData(control, i, ram);
+
+ if (!ramdev->extra_options().empty())
+ {
+ /* try to parse each option */
+ const uint32_t *p = ramdev->extra_options().data();
+ for (int j = 0; j < ramdev->extra_options().size(); j++)
+ {
+ i++;
+ char ramtext[20];
+ // identify this option
+ messram_string(ramtext, p[j]);
+
+ t_ramstring = ui_wstring_from_utf8(ramtext);
+ if( !t_ramstring )
+ return false;
+
+ // add this option to the combo box
+ res = ComboBox_InsertString(control, i, win_tstring_strdup(t_ramstring));
+ res = ComboBox_SetItemData(control, i, p[j]);
+
+ // is this the current option? record the index if so
+ if (p[j] == current_ram)
+ current_index = i;
+ }
+ }
+ if (t_ramstring)
+ free (t_ramstring);
+ // set the combo box
+ res = ComboBox_SetCurSel(control, current_index);
+ }
+ res++;
+ return true;
+}
+
+
+static void MarkChanged(HWND hDlg)
+{
+ /* fake a CBN_SELCHANGE event from IDC_SIZES to force it to be changed */
+ HWND hCtrl = GetDlgItem(hDlg, IDC_SIZES);
+ PostMessage(hDlg, WM_COMMAND, (CBN_SELCHANGE << 16) | IDC_SIZES, (LPARAM) hCtrl);
+}
+
+
+static BOOL SoftwareDirectories_OnInsertBrowse(HWND hDlg, BOOL bBrowse, LPCTSTR lpItem)
+{
+ TCHAR inbuf[MAX_PATH];
+ TCHAR outbuf[MAX_PATH];
+ LPTSTR lpIn;
+ BOOL res = false;
+
+ g_bModifiedSoftwarePaths = true;
+
+ HWND hList = GetDlgItem(hDlg, IDC_DIR_LIST);
+ int nItem = ListView_GetNextItem(hList, -1, LVNI_SELECTED);
+
+ if (nItem == -1)
+ return false;
+
+ /* Last item is placeholder for append */
+ if (nItem == ListView_GetItemCount(hList) - 1)
+ bBrowse = false;
+
+ if (!lpItem)
+ {
+ if (bBrowse)
+ {
+ ListView_GetItemText(hList, nItem, 0, inbuf, ARRAY_LENGTH(inbuf));
+ lpIn = inbuf;
+ }
+ else
+ lpIn = NULL;
+
+ if (!BrowseForDirectory(hDlg, lpIn, outbuf))
+ return false;
+
+ lpItem = outbuf;
+ }
+
+ AppendList(hList, lpItem, nItem);
+ if (bBrowse)
+ res = ListView_DeleteItem(hList, nItem+1);
+ MarkChanged(hDlg);
+ res++;
+ return true;
+}
+
+
+
+static BOOL SoftwareDirectories_OnDelete(HWND hDlg)
+{
+ int nSelect = 0;
+ HWND hList = GetDlgItem(hDlg, IDC_DIR_LIST);
+
+ g_bModifiedSoftwarePaths = true;
+
+ int nItem = ListView_GetNextItem(hList, -1, LVNI_SELECTED | LVNI_ALL);
+
+ if (nItem == -1)
+ return false;
+
+ /* Don't delete "Append" placeholder. */
+ if (nItem == ListView_GetItemCount(hList) - 1)
+ return false;
+
+ BOOL res = ListView_DeleteItem(hList, nItem);
+
+ int nCount = ListView_GetItemCount(hList);
+ if (nCount <= 1)
+ return false;
+
+ /* If the last item was removed, select the item above. */
+ if (nItem == nCount - 1)
+ nSelect = nCount - 2;
+ else
+ nSelect = nItem;
+
+ ListView_SetItemState(hList, nSelect, LVIS_FOCUSED | LVIS_SELECTED, LVIS_FOCUSED | LVIS_SELECTED);
+ MarkChanged(hDlg);
+ res++;
+ return true;
+}
+
+
+
+static BOOL SoftwareDirectories_OnBeginLabelEdit(HWND hDlg, NMHDR* pNMHDR)
+{
+ BOOL bResult = false;
+ NMLVDISPINFO* pDispInfo = (NMLVDISPINFO*)pNMHDR;
+ LVITEM* pItem = &pDispInfo->item;
+ HWND hList = GetDlgItem(hDlg, IDC_DIR_LIST);
+
+ /* Last item is placeholder for append */
+ if (pItem->iItem == ListView_GetItemCount(hList) - 1)
+ {
+ HWND hEdit = (HWND) (uintptr_t) SendMessage(hList, LVM_GETEDITCONTROL, 0, 0);
+ win_set_window_text_utf8(hEdit, "");
+ }
+
+ return bResult;
+}
+
+
+
+static BOOL SoftwareDirectories_OnEndLabelEdit(HWND hDlg, NMHDR* pNMHDR)
+{
+ BOOL bResult = false;
+ NMLVDISPINFO* pDispInfo = (NMLVDISPINFO*)pNMHDR;
+ LVITEM* pItem = &pDispInfo->item;
+
+ if (pItem->pszText)
+ {
+ struct _stat file_stat;
+
+ /* Don't allow empty entries. */
+ if (!_tcscmp(pItem->pszText, TEXT("")))
+ return false;
+
+ /* Check validity of edited directory. */
+ if ((_tstat(pItem->pszText, &file_stat) == 0) && (file_stat.st_mode & S_IFDIR))
+ bResult = true;
+ else
+ if (win_message_box_utf8(NULL, "Folder does not exist, continue anyway?", MAMEUINAME, MB_OKCANCEL) == IDOK)
+ bResult = true;
+ }
+
+ if (bResult == true)
+ SoftwareDirectories_OnInsertBrowse(hDlg, true, pItem->pszText);
+
+ return bResult;
+}
+
+
+static BOOL DriverHasDevice(const game_driver *gamedrv, iodevice_t type)
+{
+ BOOL b = false;
+
+ // allocate the machine config
+ machine_config config(*gamedrv,MameUIGlobal());
+
+ for (device_image_interface &dev : image_interface_iterator(config.root_device()))
+ {
+ if (!dev.user_loadable())
+ continue;
+ if (dev.image_type() == type)
+ {
+ b = true;
+ break;
+ }
+ }
+ return b;
+}
+
+BOOL PropSheetFilter_Config(const machine_config *drv, const game_driver *gamedrv)
+{
+ ram_device_iterator iter(drv->root_device());
+ return (iter.first()) || DriverHasDevice(gamedrv, IO_PRINTER);
+}
+
+INT_PTR CALLBACK GameMessOptionsProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam)
+{
+ INT_PTR rc = 0;
+ BOOL bHandled = false;
+
+ switch (Msg)
+ {
+ case WM_NOTIFY:
+ switch (((NMHDR *) lParam)->code)
+ {
+ case LVN_ENDLABELEDIT:
+ rc = SoftwareDirectories_OnEndLabelEdit(hDlg, (NMHDR *) lParam);
+ bHandled = true;
+ break;
+
+ case LVN_BEGINLABELEDIT:
+ rc = SoftwareDirectories_OnBeginLabelEdit(hDlg, (NMHDR *) lParam);
+ bHandled = true;
+ break;
+ }
+ }
+
+ if (!bHandled)
+ rc = GameOptionsProc(hDlg, Msg, wParam, lParam);
+
+ return rc;
+}
+
+
+
+BOOL MessPropertiesCommand(HWND hWnd, WORD wNotifyCode, WORD wID, BOOL *changed)
+{
+ BOOL handled = true;
+
+ switch(wID)
+ {
+ case IDC_DIR_BROWSE:
+ if (wNotifyCode == BN_CLICKED)
+ *changed = SoftwareDirectories_OnInsertBrowse(hWnd, true, NULL);
+ break;
+
+ case IDC_DIR_INSERT:
+ if (wNotifyCode == BN_CLICKED)
+ *changed = SoftwareDirectories_OnInsertBrowse(hWnd, false, NULL);
+ break;
+
+ case IDC_DIR_DELETE:
+ if (wNotifyCode == BN_CLICKED)
+ *changed = SoftwareDirectories_OnDelete(hWnd);
+ break;
+
+ default:
+ handled = false;
+ break;
+ }
+ return handled;
+}
+
+#endif
+
diff --git a/src/osd/winui/properties.h b/src/osd/winui/properties.h
new file mode 100644
index 00000000000..f7b1696b4c3
--- /dev/null
+++ b/src/osd/winui/properties.h
@@ -0,0 +1,58 @@
+// For licensing and usage information, read docs/winui_license.txt
+//****************************************************************************
+
+#ifndef PROPERTIES_H
+#define PROPERTIES_H
+
+/* Get title string to display in the top of the property page,
+ * Called also in ui_audit.cpp
+ */
+char* GameInfoTitle(OPTIONS_TYPE opt_type, UINT nIndex);
+
+/* Called in winui.cpp to create the property page */
+void InitPropertyPage(HINSTANCE hInst, HWND hWnd, HICON hIcon, OPTIONS_TYPE opt_type, int folder_id, int game_num);
+
+#define PROPERTIES_PAGE 0
+#define AUDIT_PAGE 1
+
+void InitPropertyPageToPage(HINSTANCE hInst, HWND hWnd, HICON hIcon, OPTIONS_TYPE opt_type, int folder_id, int game_num, int start_page);
+void InitDefaultPropertyPage(HINSTANCE hInst, HWND hWnd);
+
+/* Get Help ID array for WM_HELP and WM_CONTEXTMENU */
+DWORD_PTR GetHelpIDs(void);
+
+/* Get Game status text string */
+const char* GameInfoStatus(int driver_index, BOOL bRomStatus);
+
+/* Property sheet info for layout.c */
+typedef struct
+{
+ BOOL bOnDefaultPage;
+// BOOL (*pfnFilterProc)(const machine_config *drv, const game_driver *gamedrv);
+ BOOL (*pfnFilterProc)(uint32_t driver_index);
+ DWORD dwDlgID;
+ DLGPROC pfnDlgProc;
+} PROPERTYSHEETINFO;
+
+extern const PROPERTYSHEETINFO g_propSheets[];
+
+BOOL PropSheetFilter_Vector(const machine_config *drv, const game_driver *gamedrv);
+
+INT_PTR CALLBACK GamePropertiesDialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam);
+INT_PTR CALLBACK GameOptionsProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam);
+
+int PropertiesCurrentGame(HWND hDlg);
+
+// from propertiesms.h (MESSUI)
+
+BOOL MessPropertiesCommand(HWND hWnd, WORD wNotifyCode, WORD wID, BOOL *changed);
+BOOL g_bModifiedSoftwarePaths = FALSE;
+INT_PTR CALLBACK GameMessOptionsProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam);
+BOOL PropSheetFilter_Config(const machine_config *drv, const game_driver *gamedrv);
+
+#include "datamap.h"
+void MessBuildDataMap(datamap *properties_datamap);
+
+
+#endif
+
diff --git a/src/osd/winui/res/about.bmp b/src/osd/winui/res/about.bmp
new file mode 100644
index 00000000000..e04a46ca022
--- /dev/null
+++ b/src/osd/winui/res/about.bmp
Binary files differ
diff --git a/src/osd/winui/res/bkgnd16.bmp b/src/osd/winui/res/bkgnd16.bmp
new file mode 100644
index 00000000000..c4a589a32d4
--- /dev/null
+++ b/src/osd/winui/res/bkgnd16.bmp
Binary files differ
diff --git a/src/osd/winui/res/bkground.bmp b/src/osd/winui/res/bkground.bmp
new file mode 100644
index 00000000000..f7e49de3084
--- /dev/null
+++ b/src/osd/winui/res/bkground.bmp
Binary files differ
diff --git a/src/osd/winui/res/checkmark.ico b/src/osd/winui/res/checkmark.ico
new file mode 100644
index 00000000000..dd272c2e536
--- /dev/null
+++ b/src/osd/winui/res/checkmark.ico
Binary files differ
diff --git a/src/osd/winui/res/controller.ico b/src/osd/winui/res/controller.ico
new file mode 100644
index 00000000000..390c18db340
--- /dev/null
+++ b/src/osd/winui/res/controller.ico
Binary files differ
diff --git a/src/osd/winui/res/cpu.ico b/src/osd/winui/res/cpu.ico
new file mode 100644
index 00000000000..9c6843fbed5
--- /dev/null
+++ b/src/osd/winui/res/cpu.ico
Binary files differ
diff --git a/src/osd/winui/res/custom.ico b/src/osd/winui/res/custom.ico
new file mode 100644
index 00000000000..8047b9d0b43
--- /dev/null
+++ b/src/osd/winui/res/custom.ico
Binary files differ
diff --git a/src/osd/winui/res/display.ico b/src/osd/winui/res/display.ico
new file mode 100644
index 00000000000..b81df196948
--- /dev/null
+++ b/src/osd/winui/res/display.ico
Binary files differ
diff --git a/src/osd/winui/res/foldavail.ico b/src/osd/winui/res/foldavail.ico
new file mode 100644
index 00000000000..b8bcb595bf9
--- /dev/null
+++ b/src/osd/winui/res/foldavail.ico
Binary files differ
diff --git a/src/osd/winui/res/folder.ico b/src/osd/winui/res/folder.ico
new file mode 100644
index 00000000000..8a801462d62
--- /dev/null
+++ b/src/osd/winui/res/folder.ico
Binary files differ
diff --git a/src/osd/winui/res/foldmanu.ico b/src/osd/winui/res/foldmanu.ico
new file mode 100644
index 00000000000..8a801462d62
--- /dev/null
+++ b/src/osd/winui/res/foldmanu.ico
Binary files differ
diff --git a/src/osd/winui/res/foldopen.ico b/src/osd/winui/res/foldopen.ico
new file mode 100644
index 00000000000..7bab12a3abc
--- /dev/null
+++ b/src/osd/winui/res/foldopen.ico
Binary files differ
diff --git a/src/osd/winui/res/foldsrc.ico b/src/osd/winui/res/foldsrc.ico
new file mode 100644
index 00000000000..8a801462d62
--- /dev/null
+++ b/src/osd/winui/res/foldsrc.ico
Binary files differ
diff --git a/src/osd/winui/res/foldunav.ico b/src/osd/winui/res/foldunav.ico
new file mode 100644
index 00000000000..b74cc8edfc8
--- /dev/null
+++ b/src/osd/winui/res/foldunav.ico
Binary files differ
diff --git a/src/osd/winui/res/foldyear.ico b/src/osd/winui/res/foldyear.ico
new file mode 100644
index 00000000000..8a801462d62
--- /dev/null
+++ b/src/osd/winui/res/foldyear.ico
Binary files differ
diff --git a/src/osd/winui/res/harddisk.ico b/src/osd/winui/res/harddisk.ico
new file mode 100644
index 00000000000..580d379fab4
--- /dev/null
+++ b/src/osd/winui/res/harddisk.ico
Binary files differ
diff --git a/src/osd/winui/res/hbmame.ico b/src/osd/winui/res/hbmame.ico
new file mode 100644
index 00000000000..845ec9aedd7
--- /dev/null
+++ b/src/osd/winui/res/hbmame.ico
Binary files differ
diff --git a/src/osd/winui/res/hbmameui.ico b/src/osd/winui/res/hbmameui.ico
new file mode 100644
index 00000000000..845ec9aedd7
--- /dev/null
+++ b/src/osd/winui/res/hbmameui.ico
Binary files differ
diff --git a/src/osd/winui/res/header_down.ico b/src/osd/winui/res/header_down.ico
new file mode 100644
index 00000000000..490eb0f7880
--- /dev/null
+++ b/src/osd/winui/res/header_down.ico
Binary files differ
diff --git a/src/osd/winui/res/header_up.ico b/src/osd/winui/res/header_up.ico
new file mode 100644
index 00000000000..e7cbd555c4e
--- /dev/null
+++ b/src/osd/winui/res/header_up.ico
Binary files differ
diff --git a/src/osd/winui/res/horz.ico b/src/osd/winui/res/horz.ico
new file mode 100644
index 00000000000..c4a5e940d09
--- /dev/null
+++ b/src/osd/winui/res/horz.ico
Binary files differ
diff --git a/src/osd/winui/res/icon_asc.ico b/src/osd/winui/res/icon_asc.ico
new file mode 100644
index 00000000000..95f04736dc3
--- /dev/null
+++ b/src/osd/winui/res/icon_asc.ico
Binary files differ
diff --git a/src/osd/winui/res/icon_des.ico b/src/osd/winui/res/icon_des.ico
new file mode 100644
index 00000000000..cda58ae29b5
--- /dev/null
+++ b/src/osd/winui/res/icon_des.ico
Binary files differ
diff --git a/src/osd/winui/res/icon_snd.ico b/src/osd/winui/res/icon_snd.ico
new file mode 100644
index 00000000000..8b085042313
--- /dev/null
+++ b/src/osd/winui/res/icon_snd.ico
Binary files differ
diff --git a/src/osd/winui/res/icon_sndn.ico b/src/osd/winui/res/icon_sndn.ico
new file mode 100644
index 00000000000..ce7d03df4b3
--- /dev/null
+++ b/src/osd/winui/res/icon_sndn.ico
Binary files differ
diff --git a/src/osd/winui/res/joystick.ico b/src/osd/winui/res/joystick.ico
new file mode 100644
index 00000000000..4a7c5c7cd05
--- /dev/null
+++ b/src/osd/winui/res/joystick.ico
Binary files differ
diff --git a/src/osd/winui/res/keyboard.ico b/src/osd/winui/res/keyboard.ico
new file mode 100644
index 00000000000..1e11e2c382f
--- /dev/null
+++ b/src/osd/winui/res/keyboard.ico
Binary files differ
diff --git a/src/osd/winui/res/mameui.manifest b/src/osd/winui/res/mameui.manifest
new file mode 100644
index 00000000000..1ff7516257c
--- /dev/null
+++ b/src/osd/winui/res/mameui.manifest
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+ <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
+ <assemblyIdentity version="1.0.0.0" processorArchitecture="*" name="HBMAMEUI" type="win32" />
+ <description>Homebrew MAME-based Arcade Emulator</description>
+ <dependency>
+ <dependentAssembly>
+ <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" publicKeyToken="6595b64144ccf1df" language="*" processorArchitecture="*"/>
+ </dependentAssembly>
+ </dependency>
+ <asmv3:application>
+ <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
+ <dpiAware>TRUE</dpiAware>
+ </asmv3:windowsSettings>
+ </asmv3:application>
+</assembly>
diff --git a/src/osd/winui/res/manufact.ico b/src/osd/winui/res/manufact.ico
new file mode 100644
index 00000000000..85d8136f08e
--- /dev/null
+++ b/src/osd/winui/res/manufact.ico
Binary files differ
diff --git a/src/osd/winui/res/nonwork.ico b/src/osd/winui/res/nonwork.ico
new file mode 100644
index 00000000000..8964fc75367
--- /dev/null
+++ b/src/osd/winui/res/nonwork.ico
Binary files differ
diff --git a/src/osd/winui/res/samples.ico b/src/osd/winui/res/samples.ico
new file mode 100644
index 00000000000..96851b31582
--- /dev/null
+++ b/src/osd/winui/res/samples.ico
Binary files differ
diff --git a/src/osd/winui/res/sound.ico b/src/osd/winui/res/sound.ico
new file mode 100644
index 00000000000..9f7edeaa6cd
--- /dev/null
+++ b/src/osd/winui/res/sound.ico
Binary files differ
diff --git a/src/osd/winui/res/source.ico b/src/osd/winui/res/source.ico
new file mode 100644
index 00000000000..94618b8c6fd
--- /dev/null
+++ b/src/osd/winui/res/source.ico
Binary files differ
diff --git a/src/osd/winui/res/splith.cur b/src/osd/winui/res/splith.cur
new file mode 100644
index 00000000000..7342d296e81
--- /dev/null
+++ b/src/osd/winui/res/splith.cur
Binary files differ
diff --git a/src/osd/winui/res/toolbar.bmp b/src/osd/winui/res/toolbar.bmp
new file mode 100644
index 00000000000..6e7e26055e4
--- /dev/null
+++ b/src/osd/winui/res/toolbar.bmp
Binary files differ
diff --git a/src/osd/winui/res/vert.ico b/src/osd/winui/res/vert.ico
new file mode 100644
index 00000000000..2855e6176d7
--- /dev/null
+++ b/src/osd/winui/res/vert.ico
Binary files differ
diff --git a/src/osd/winui/res/win_clone.ico b/src/osd/winui/res/win_clone.ico
new file mode 100644
index 00000000000..6c4cb094351
--- /dev/null
+++ b/src/osd/winui/res/win_clone.ico
Binary files differ
diff --git a/src/osd/winui/res/win_imp.ico b/src/osd/winui/res/win_imp.ico
new file mode 100644
index 00000000000..69a503855d6
--- /dev/null
+++ b/src/osd/winui/res/win_imp.ico
Binary files differ
diff --git a/src/osd/winui/res/win_noro.ico b/src/osd/winui/res/win_noro.ico
new file mode 100644
index 00000000000..1f313aa4b95
--- /dev/null
+++ b/src/osd/winui/res/win_noro.ico
Binary files differ
diff --git a/src/osd/winui/res/win_redx.ico b/src/osd/winui/res/win_redx.ico
new file mode 100644
index 00000000000..1d4f2458314
--- /dev/null
+++ b/src/osd/winui/res/win_redx.ico
Binary files differ
diff --git a/src/osd/winui/res/win_roms.ico b/src/osd/winui/res/win_roms.ico
new file mode 100644
index 00000000000..9c6843fbed5
--- /dev/null
+++ b/src/osd/winui/res/win_roms.ico
Binary files differ
diff --git a/src/osd/winui/res/win_unkn.ico b/src/osd/winui/res/win_unkn.ico
new file mode 100644
index 00000000000..4d7f401a4fa
--- /dev/null
+++ b/src/osd/winui/res/win_unkn.ico
Binary files differ
diff --git a/src/osd/winui/res/working.ico b/src/osd/winui/res/working.ico
new file mode 100644
index 00000000000..4a3f53c6f3b
--- /dev/null
+++ b/src/osd/winui/res/working.ico
Binary files differ
diff --git a/src/osd/winui/res/year.ico b/src/osd/winui/res/year.ico
new file mode 100644
index 00000000000..4f8d93dbbd3
--- /dev/null
+++ b/src/osd/winui/res/year.ico
Binary files differ
diff --git a/src/osd/winui/resource.h b/src/osd/winui/resource.h
new file mode 100644
index 00000000000..9fe6f990064
--- /dev/null
+++ b/src/osd/winui/resource.h
@@ -0,0 +1,482 @@
+//{{NO_DEPENDENCIES}}
+// Microsoft Visual C++ generated include file.
+// Used by mameui.rc
+//
+#define IDPAUSE 3
+#define IDS_UI_FILE 61
+#define IDS_UI_VIEW 62
+#define IDS_UI_OPTIONS 63
+#define IDS_UI_HELP 64
+#define IDS_VIEW_TOOLBAR 70
+#define IDS_VIEW_STATUSBAR 71
+#define IDS_VIEW_FOLDERLIST 72
+#define IDS_VIEW_SCREENSHOT 73
+#define IDS_VIEW_PICTURETABS 74
+#define IDS_VIEW_SPACER1 75
+#define IDS_VIEW_FULLSCREEN 76
+#define IDS_VIEW_SPACER2 77
+#define IDS_VIEW_SHOWPICTURES 78
+#define IDS_VIEW_SPACER3 79
+#define IDS_VIEW_LARGEICONS 80
+#define IDS_VIEW_SMALLICONS 81
+#define IDS_VIEW_LIST 82
+#define IDS_VIEW_DETAILS 83
+#define IDS_VIEW_GROUPED 84
+#define IDS_VIEW_SPACER4 85
+#define IDS_VIEW_ARRANGE 86
+#define IDS_VIEW_LINEUPICONS 87
+#define IDS_VIEW_SPACER5 88
+#define IDS_VIEW_REFRESH 89
+#define IDS_VIEW_CONTEXTFILTERS 90
+#define IDS_VIEW_CUSTOMIZEFIELDS 91
+#define ID_TOOLBAR_EDIT 92
+#define IDD_MAIN 101
+#define IDA_TAB_KEYS 106
+#define IDI_MAMEUI_ICON 107
+#define IDD_ABOUT 108
+#define IDR_MAIN_MENU 109
+#define IDR_UI_MENU 110
+#define IDB_ABOUT 113
+#define IDD_DIRECTX 114
+#define IDD_AUDIT 115
+#define IDD_DIRECTORIES 116
+#define IDD_CUSTOM_FILE 117
+#define IDR_CONTEXT_MENU 118
+#define IDI_WIN_NOROMS 119
+#define IDI_WIN_ROMS 120
+#define IDI_WIN_UNKNOWN 121
+#define IDI_WIN_CLONE 122
+#define IDI_WIN_REDX 123
+#define IDI_FOLDER_OPEN 124
+#define IDI_FOLDER 125
+#define IDI_FOLDER_AVAILABLE 126
+#define IDI_FOLDER_MANUFACTURER 127
+#define IDI_FOLDER_UNAVAILABLE 128
+#define IDI_FOLDER_YEAR 129
+#define IDI_FOLDER_SOURCE 130
+#define IDI_MANUFACTURER 131
+#define IDI_WORKING 132
+#define IDI_NONWORKING 133
+#define IDI_YEAR 134
+#define IDI_SOUND 135
+#define IDI_CPU 136
+#define IDI_HARDDISK 137
+#define IDI_SOURCE 138
+#define IDI_FOLDER_HORIZONTAL 139
+#define IDI_FOLDER_VERTICAL 140
+#define IDR_CONTEXT_HEADER 151
+#define IDD_PROP_GAME 152
+#define IDD_PROP_AUDIT 153
+#define IDD_PROP_DISPLAY 154
+#define IDD_PROP_SOUND 155
+#define IDD_PROP_ADVANCED 156
+#define IDD_PROP_INPUT 157
+#define IDD_PROP_MISC 158
+#define IDD_PROP_VECTOR 159
+#define IDD_COLUMNS 160
+#define IDI_KEYBOARD 161
+#define IDI_JOYSTICK 162
+#define IDI_DISPLAY 163
+#define IDI_CHECKMARK 164
+#define IDC_CURSOR_HSPLIT 165
+#define IDB_TOOLBAR 166
+#define IDR_CONTEXT_TREE 168
+#define IDD_FILTERS 169
+#define IDD_RESET 170
+#define IDD_LOAD_PROGRESS 171
+#define IDD_INTERFACE_OPTIONS 173
+#define IDR_CONTEXT_SCREENSHOT 181
+#define IDI_HEADER_UP 182
+#define IDI_HEADER_DOWN 183
+#define IDD_PROP_CONTROLLER 185
+#define IDD_PROP_SCREEN 187
+#define IDD_PROP_DEBUG 188
+#define IDI_WIN_IMPERFECT 198
+#define IDI_SOUNDTAB 666
+#define IDC_LIST 1000
+#define IDC_JOYSTICK 1003
+#define IDC_SIZES 1005
+#define IDC_FRAMESKIP 1009
+#define IDC_ROTATE 1010
+#define IDC_SCREEN 1012
+#define IDC_VIEW 1013
+#define IDC_SCREENSELECT 1014
+#define IDC_CHEAT 1015
+#define IDC_LOG 1016
+#define IDC_ARTWORK_CROP 1017
+#define IDC_OVERLAYS 1018
+#define IDC_BEZELS 1019
+#define IDC_CPANELS 1020
+#define IDC_MARQUEES 1021
+#define IDC_SLEEP 1022
+#define IDC_GAMMA 1023
+#define IDC_BRIGHTCORRECT 1024
+#define IDC_USE_DEFAULT 1025
+#define IDC_CONTRAST 1026
+#define IDC_SAMPLERATE 1027
+#define IDC_NUMSCREENS 1028
+#define IDC_BEAM 1030
+#define IDC_FLICKER 1031
+#define IDC_FLIPX 1032
+#define IDC_FLIPY 1033
+#define IDC_BACKDROPS 1034
+#define IDC_DIRECTX_HELP 1035
+#define IDC_FLICKERDISP 1036
+#define IDB_WEB_PAGE 1037
+#define IDC_FSCONTRAST 1038
+#define IDC_ROMS_PROGRESS 1039
+#define IDC_SECONDSTORUN 1039
+#define IDC_CONTRASTDISP 1040
+#define IDC_ROMS_CORRECT 1041
+#define IDC_FSCONTRASTDISP 1042
+#define IDC_ROMS_INCORRECT 1043
+#define IDC_SECONDSTORUNDISP 1043
+#define IDC_NUMSCREENSDISP 1044
+#define IDC_ROMS_TOTAL 1045
+#define IDC_SAMPLES_PROGRESS 1046
+#define IDC_SAMPLES_CORRECT 1047
+#define IDC_BEAMDISP 1048
+#define IDC_SAMPLES_INCORRECT 1049
+#define IDC_SAMPLES_TOTAL 1050
+#define IDC_AUDIT_DETAILS 1051
+#define IDC_DIR_COMBO 1053
+#define IDC_DIR_LIST 1054
+#define IDC_DIR_BROWSE 1055
+#define IDC_DIR_INSERT 1056
+#define IDC_DIR_DELETE 1057
+#define IDC_FLICKERTEXT 1058
+#define IDC_SSFRAME 1059
+#define IDC_PRESCALE 1060
+#define IDC_SSPICTURE 1062
+#define IDC_BEAMTEXT 1063
+#define IDC_MULTIKEYBOARD 1065
+#define IDC_RATETEXT 1069
+#define IDC_LISTAVAILABLECOLUMNS 1070
+#define IDC_LISTSHOWCOLUMNS 1071
+#define IDC_BUTTONADD 1072
+#define IDC_BUTTONREMOVE 1073
+#define IDC_BUTTONMOVEDOWN 1074
+#define IDC_BUTTONMOVEUP 1075
+#define IDC_PROP_SOUND 1076
+#define IDC_PROP_CPU 1077
+#define IDC_PROP_TITLE 1078
+#define IDC_PROP_MANUFACTURED 1079
+#define IDC_PROP_STATUS 1080
+#define IDC_PROP_SCREEN 1081
+#define IDC_PROP_COLORS 1082
+#define IDC_PROP_ROMS 1083
+#define IDC_PROP_SAMPLES 1084
+#define IDC_PROP_CLONEOF_TEXT 1085
+#define IDC_PROP_CLONEOF 1086
+#define IDC_VERSION 1088
+#define IDC_FSGAMMA 1090
+#define IDC_GAMMADISP 1091
+#define IDC_FSBRIGHTNESS 1092
+#define IDC_FSGAMMADISP 1093
+#define IDC_PRESCALEDISP 1094
+#define IDC_BRIGHTCORRECTDISP 1095
+#define IDC_FSBRIGHTNESSDISP 1096
+#define IDC_AUTOFRAMESKIP 1097
+#define IDC_TREE 1098
+#define IDC_WINDOWED 1099
+#define IDC_PROP_RESET 1101
+#define IDC_SPLITTER 1102
+#define IDC_SPLITTER2 1103
+#define IDC_DIVIDER 1104
+#define IDC_FILTER_VECTOR 1105
+#define IDC_FILTER_RASTER 1106
+#define IDC_FILTER_UNAVAILABLE 1107
+#define IDC_FILTER_NONWORKING 1108
+#define IDC_FILTER_CLONES 1109
+#define IDC_RESET_GAMES 1110
+#define IDC_RESET_UI 1111
+#define IDC_RESET_FILTERS 1112
+#define IDC_RESET_EFFECT 1113
+#define IDC_RESET_DEFAULT 1114
+#define IDC_FILTER_ORIGINALS 1115
+#define IDC_FILTER_WORKING 1116
+#define IDC_FILTER_AVAILABLE 1117
+#define IDC_FILTER_ARCADE 1118
+#define IDC_FILTER_MESS 1119
+#define IDC_START_GAME_CHECK 1120
+#define IDC_VOLUME 1121
+#define IDC_VOLUMEDISP 1122
+#define IDC_HISTORY 1124
+#define IDC_SAMPLES 1125
+#define IDC_TRIPLE_BUFFER 1127
+#define IDC_LOAD_ROMNAME 1128
+#define IDC_DEFAULT_INPUT 1129
+#define IDC_LANGUAGECHECK 1130
+#define IDC_LANGUAGEBROWSE 1131
+#define IDC_LANGUAGEEDIT 1132
+#define IDC_FILTER_EDIT 1133
+#define IDC_ABOUT 1134
+#define IDC_USE_SOUND 1136
+#define IDC_WAITVSYNC 1137
+#define IDC_HWSTRETCH 1138
+#define IDC_SWITCHRES 1139
+#define IDC_MAXIMIZE 1140
+#define IDC_KEEPASPECT 1141
+#define IDC_SYNCREFRESH 1142
+#define IDC_USE_MOUSE 1143
+#define IDC_THROTTLE 1144
+#define IDC_VOLUMETEXT 1146
+#define IDC_REFRESH 1148
+#define IDC_REFRESHTEXT 1149
+#define IDC_EFFECT 1150
+#define IDC_FSGAMMATEXT 1151
+#define IDC_STEADYKEY 1152
+#define IDC_ASPECTRATION 1154
+#define IDC_ASPECTRATIOD 1155
+#define IDC_ASPECTRATIOTEXT 1156
+#define IDC_JOY_GUI 1157
+#define IDC_BROADCAST 1158
+#define IDC_JDZ 1159
+#define IDC_JDZDISP 1160
+#define IDC_JDZTEXT 1161
+#define IDC_JSATTEXT 1162
+#define IDC_JSAT 1163
+#define IDC_JSATDISP 1164
+#define IDC_AUDIO_LATENCY_DISP 1165
+#define IDC_PLAY_GAME 1166
+#define IDC_LIGHTGUN 1167
+#define IDC_SSTAB 1168
+#define IDC_GAME_ICON 1169
+#define IDC_RANDOM_BG 1170
+#define IDC_CUSTOM_TREE 1171
+#define IDC_CUSTOMFILE_GAME 1173
+#define IDC_LOAD_STATUS 1174
+#define IDC_ERROR_TEXT 1175
+#define IDC_ARTMISCTEXT 1176
+#define IDC_ENABLE_AUTOSAVE 1177
+#define IDC_SKIP_GAME_INFO 1178
+#define IDC_PROP_SOURCE 1179
+#define IDC_FILTER_HORIZONTAL 1180
+#define IDC_PAUSEBRIGHT 1181
+#define IDC_PAUSEBRIGHTDISP 1182
+#define IDC_HIGH_PRIORITY 1183
+#define IDC_D3D_FILTER 1184
+#define IDC_HIDE_MOUSE 1185
+#define IDC_AUDIO_LATENCY 1186
+#define IDC_D3D_VERSION 1187
+#define IDC_AUDIT_DETAILS_PROP 1188
+#define IDC_CYCLETIMESEC 1190
+#define IDC_AUDIO_LATENCY_TEXT 1191
+#define IDC_STRETCH_SCREENSHOT_LARGER 1192
+#define IDC_FILTER_INHERIT 1193
+#define IDC_RESET_PLAYSTATS 1194
+#define IDC_INHERITED 1196
+#define IDC_KEY_GUI 1197
+#define IDC_RELOAD 1198
+#define IDC_DUAL_LIGHTGUN 1199
+#define IDC_NOOFFSET_CLONES 1200
+#define IDC_BIOS 1201
+#define IDC_HISTORY_TAB 1202
+#define IDC_SNAPVIEW 1202
+#define IDC_SCREENSHOT_BORDERSIZE 1204
+#define IDC_SCREENSHOT_BORDERCOLOR 1205
+#define IDC_CYCLETIMESECTXT 1206
+#define IDC_SCREENSHOT_BORDERSIZETXT 1207
+#define IDC_PADDLE 1208
+#define IDC_ADSTICK 1209
+#define IDC_PEDAL 1210
+#define IDC_DIAL 1211
+#define IDC_TRACKBALL 1212
+#define IDC_LIGHTGUNDEVICE 1213
+#define IDC_MOUSE 1214
+#define IDC_POSITIONAL 1215
+#define IDC_HIGH_PRIORITY_TEXT 1216
+#define IDC_HIGH_PRIORITYTXT 1217
+#define IDC_SELECT_EFFECT 1218
+#define IDC_MULTITHREAD_RENDERING 1219
+#define IDC_ASPECT 1220
+#define IDC_LOAD_PROGRESS 1223
+#define IDC_FSBRIGHTNESSTEXT 1224
+#define IDC_FSCONTRASTTEXT 1225
+#define IDC_VIDEO_MODE 1226
+#define IDC_SCREENSELECTTEXT 1227
+#define IDC_PRESCALETEXT 1228
+#define IDC_SOUND_MODE 1229
+#define IDC_MULTIMOUSE 1230
+#define IDC_DEBUG 1231
+#define IDC_REFRESHSPEED 1232
+#define IDC_SPEEDTEXT 1233
+#define IDC_SPEED 1234
+#define IDC_SPEEDDISP 1235
+#define IDC_FILTER_VERTICAL 1236
+#define IDC_SNAPNAME 1237
+#define IDC_COINLOCKOUT 1238
+#define IDC_SECONDSTORUNTEXT 1239
+#define IDC_OSLOG 1240
+#define IDC_VERBOSE 1241
+#define IDC_UPDATEINPAUSE 1242
+#define IDC_DEBUGSCRIPT 1243
+#define IDC_SELECT_DEBUGSCRIPT 1244
+#define IDC_RESET_DEBUGSCRIPT 1245
+#define IDC_SELECT_JOYSTICKMAP 1246
+#define IDC_RESET_JOYSTICKMAP 1247
+#define IDC_JOYSTICKMAP 1248
+#define IDC_SNAPSIZE 1249
+#define IDC_SNAPSIZEWIDTH 1250
+#define IDC_SNAPSIZEHEIGHT 1251
+#define IDC_SNAPSIZETEXT 1252
+#define IDC_SNAPSIZEX 1253
+#define IDC_FILTER_MECHANICAL 1254
+#define IDC_OVERRIDE_REDX 1352
+#define IDC_SPLITTER3 2000
+#define IDC_SWTAB 2001
+#define IDC_SWLIST 2002
+#define IDC_SWDEVVIEW 2003
+#define IDC_FILTER_COMPUTER 2004
+#define IDC_FILTER_CONSOLE 2005
+#define IDC_FILTER_MODIFIED 2006
+#define IDC_RAM_COMBOBOX 2008
+#define IDC_RAM_CAPTION 2009
+#define IDC_SOFTLIST 2010
+#define IDI_WIN_NOROMSNEEDED 2100
+#define IDI_WIN_MISSINGOPTROM 2101
+#define IDI_WIN_FLOP 2102
+#define IDI_WIN_CASS 2103
+#define IDI_WIN_SERL 2104
+#define IDI_WIN_SNAP 2105
+#define IDI_WIN_PRIN 2106
+#define IDI_WIN_HARD 2107
+#define IDI_WIN_CYLN 2110
+#define IDI_WIN_PTAP 2111
+#define IDI_WIN_PCRD 2112
+#define IDI_WIN_MIDI 2113
+#define ID_MESS_OPEN_SOFTWARE 2200
+#define IDD_PROP_SOFTWARE 2202
+#define IDD_PROP_CONFIGURATION 2203
+#define ID_CONTEXT_SHOW_FOLDER_START 39000
+#define ID_CONTEXT_SHOW_FOLDER_END 39200
+#define ID_FILE_EXIT 40001
+#define ID_ABOUT 40003
+#define ID_FILE_PLAY 40004
+#define ID_HELP_ABOUT 40006
+#define ID_VIEW_LARGE_ICON 40007
+#define ID_VIEW_SMALL_ICON 40008
+#define ID_VIEW_LIST_MENU 40009
+#define ID_VIEW_DETAIL 40010
+#define ID_VIEW_GROUPED 40011
+#define ID_OPTIONS_FONT 40012
+#define ID_OPTIONS_CLONE_COLOR 40013
+#define ID_OPTIONS_DIR 40014
+#define ID_OPTIONS_DEFAULTS 40015
+#define ID_OPTIONS_RESET_DEFAULTS 40016
+#define ID_OPTIONS_INTERFACE 40017
+#define ID_FILE_AUDIT 40018
+#define ID_FILE_PLAY_RECORD 40019
+#define ID_FILE_PLAY_BACK 40020
+#define ID_FILE_PLAY_RECORD_WAVE 40021
+#define ID_FILE_PLAY_RECORD_MNG 40022
+#define ID_FILE_PLAY_RECORD_AVI 40023
+#define ID_VIEW_PICTURE_AREA 40024
+#define ID_HELP_CONTENTS 40025
+#define ID_HELP_WHATS_NEWUI 40026
+#define ID_HELP_TROUBLE 40027
+#define ID_HELP_RELEASE 40028
+#define ID_HELP_WHATS_NEW 40029
+#define ID_HELP_CHEATS 40030
+#define ID_FILE_AUDIT_X 40031
+#define ID_VIEW_BYGAME 40034
+#define ID_VIEW_BYDIRECTORY 40035
+#define ID_VIEW_BYMANUFACTURER 40036
+#define ID_VIEW_BYYEAR 40037
+#define ID_VIEW_BYTYPE 40038
+#define ID_VIEW_BYTIMESPLAYED 40039
+#define ID_VIEW_LINEUPICONS 40040
+#define ID_UPDATE_GAMELIST 40042
+#define ID_UPDATE_CACHE 40043
+#define ID_SORT_ASCENDING 40045
+#define ID_SORT_DESCENDING 40046
+#define ID_CUSTOMIZE_FIELDS 40048
+#define ID_GAME_PROPERTIES 40049
+#define ID_VIEW_PAGETAB 40050
+#define ID_VIEW_FOLDERS 40051
+#define ID_VIEW_TOOLBARS 40052
+#define ID_VIEW_STATUS 40053
+#define ID_CONTEXT_FILTERS 40054
+#define ID_CONTEXT_RENAME_CUSTOM 40055
+#define ID_CONTEXT_ADD_CUSTOM 40057
+#define ID_CONTEXT_REMOVE_CUSTOM 40058
+#define ID_GAME_AUDIT 40059
+#define ID_CONTEXT_SELECT_RANDOM 40060
+#define ID_OPTIONS_BG 40070
+#define ID_VIEW_FULLSCREEN 40079
+#define ID_CONTEXT_RESET_PLAYSTATS 40081
+#define ID_FOLDER_PROPERTIES 40082
+#define ID_FOLDER_AUDIT 40083
+#define ID_UI_UP 40084
+#define ID_UI_DOWN 40085
+#define ID_UI_LEFT 40086
+#define ID_UI_RIGHT 40087
+#define ID_UI_START 40088
+#define ID_UI_PGUP 40089
+#define ID_UI_PGDOWN 40090
+#define ID_UI_HOME 40091
+#define ID_UI_END 40092
+#define ID_UI_HISTORY_UP 40093
+#define ID_UI_HISTORY_DOWN 40094
+#define ID_FILE_LOADSTATE 40095
+#define ID_FOLDER_SOURCEPROPERTIES 40096
+#define ID_FOLDER_VECTORPROPERTIES 40097
+#define ID_OPTIONS_MAMEINFO 40100
+#define ID_OPTIONS_HISTORY 40101
+#define ID_VIEW_SOFTWARE_AREA 40102
+#define ID_MANUAL 40108
+#define ID_VIDEO_SNAP 40109
+#define ID_PLAY_VIDEO 40110
+#define ID_PLAY_AUDIO 40111
+#define ID_PLAY_MNG 40112
+#define ID_PLAY_M1 40113
+#define ID_VIEW_TAB_ARTWORK 40120
+#define ID_VIEW_TAB_BOSSES 40121
+#define ID_VIEW_TAB_CABINET 40122
+#define ID_VIEW_TAB_CONTROL_PANEL 40123
+#define ID_VIEW_TAB_COVER 40124
+#define ID_VIEW_TAB_ENDS 40125
+#define ID_VIEW_TAB_FLYER 40126
+#define ID_VIEW_TAB_GAMEOVER 40127
+#define ID_VIEW_TAB_HOWTO 40128
+#define ID_VIEW_TAB_LOGO 40129
+#define ID_VIEW_TAB_MARQUEE 40130
+#define ID_VIEW_TAB_PCB 40131
+#define ID_VIEW_TAB_SCORES 40132
+#define ID_VIEW_TAB_SELECT 40133
+#define ID_VIEW_TAB_SCREENSHOT 40134
+#define ID_VIEW_TAB_TITLE 40135
+#define ID_VIEW_TAB_VERSUS 40136
+#define ID_VIEW_TAB_HISTORY 40137
+#define ID_TOGGLE_TAB_ARTWORK 40150
+#define ID_TOGGLE_TAB_BOSSES 40151
+#define ID_TOGGLE_TAB_CABINET 40152
+#define ID_TOGGLE_TAB_CONTROL_PANEL 40153
+#define ID_TOGGLE_TAB_COVER 40154
+#define ID_TOGGLE_TAB_ENDS 40155
+#define ID_TOGGLE_TAB_FLYER 40156
+#define ID_TOGGLE_TAB_GAMEOVER 40157
+#define ID_TOGGLE_TAB_HOWTO 40158
+#define ID_TOGGLE_TAB_LOGO 40159
+#define ID_TOGGLE_TAB_MARQUEE 40160
+#define ID_TOGGLE_TAB_PCB 40161
+#define ID_TOGGLE_TAB_SCORES 40162
+#define ID_TOGGLE_TAB_SELECT 40163
+#define ID_TOGGLE_TAB_SCREENSHOT 40164
+#define ID_TOGGLE_TAB_TITLE 40165
+#define ID_TOGGLE_TAB_VERSUS 40166
+#define ID_TOGGLE_TAB_HISTORY 40167
+#define IDC_STATIC -1
+
+// Next default values for new objects
+//
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+#define _APS_NO_MFC 1
+#define _APS_3D_CONTROLS 1
+#define _APS_NEXT_RESOURCE_VALUE 192
+#define _APS_NEXT_COMMAND_VALUE 40157
+#define _APS_NEXT_CONTROL_VALUE 1353
+#define _APS_NEXT_SYMED_VALUE 93
+#endif
+#endif
diff --git a/src/osd/winui/resource.hm b/src/osd/winui/resource.hm
new file mode 100644
index 00000000000..0934c33b73d
--- /dev/null
+++ b/src/osd/winui/resource.hm
@@ -0,0 +1,122 @@
+// Microsoft Visual C++ generated Help ID include file.
+// Used by mameui.rc
+//
+#define HIDC_ADSTICK 0x80b904b9 // IDD_PROP_CONTROLLER [English (U.S.)]
+#define HIDC_ANTIALIAS 0x809f0405 // IDD_PROP_VECTOR [English (U.S.)]
+#define HIDC_ARTWORK_CROP 0x809e03fa // IDD_PROP_MISC [English (U.S.)]
+#define HIDC_ASPECT 0x80bb04c4 // IDD_PROP_SCREEN [English (U.S.)]
+#define HIDC_ASPECTRATIOD 0x80bb0483 // IDD_PROP_SCREEN [English (U.S.)]
+#define HIDC_ASPECTRATION 0x80bb0482 // IDD_PROP_SCREEN [English (U.S.)]
+#define HIDC_AUDIO_LATENCY 0x809b04a2 // IDD_PROP_SOUND [English (U.S.)]
+#define HIDC_AUTOFRAMESKIP 0x809c0449 // IDD_PROP_ADVANCED [English (U.S.)]
+#define HIDC_BACKDROPS 0x809e040a // IDD_PROP_MISC [English (U.S.)]
+#define HIDC_BEAM 0x809f0406 // IDD_PROP_VECTOR [English (U.S.)]
+#define HIDC_BEZELS 0x809e03fd // IDD_PROP_MISC [English (U.S.)]
+#define HIDC_BIOS 0x809e04b1 // IDD_PROP_MISC [English (U.S.)]
+#define HIDC_BRIGHTCORRECT 0x809a0400 // IDD_PROP_DISPLAY [English (U.S.)]
+#define HIDC_BROADCAST 0x80ad0486 // IDD_INTERFACE_OPTIONS [English (U.S.)]
+#define HIDC_CHEAT 0x809e03f8 // IDD_PROP_MISC [English (U.S.)]
+#define HIDC_COINLOCKOUT 0x809e04d6 // IDD_PROP_MISC [English (U.S.)]
+#define HIDC_CONTRAST 0x809a0402 // IDD_PROP_DISPLAY [English (U.S.)]
+#define HIDC_CYCLETIMESEC 0x80ad04a6 // IDD_INTERFACE_OPTIONS [English (U.S.)]
+#define HIDC_D3D_FILTER 0x809a04a0 // IDD_PROP_DISPLAY [English (U.S.)]
+#define HIDC_D3D_VERSION 0x809a04a3 // IDD_PROP_DISPLAY [English (U.S.)]
+#define HIDC_DEBUG 0x80bc04cf // IDD_PROP_DEBUG [English (U.S.)]
+#define HIDC_DEFAULT_INPUT 0x809d0469 // IDD_PROP_INPUT [English (U.S.)]
+#define HIDC_DIAL 0x80b904bb // IDD_PROP_CONTROLLER [English (U.S.)]
+#define HIDC_DUAL_LIGHTGUN 0x809d04af // IDD_PROP_INPUT [English (U.S.)]
+#define HIDC_ENABLE_AUTOSAVE 0x809e0499 // IDD_PROP_MISC [English (U.S.)]
+#define HIDC_FILTER_CLONES 0x80a90455 // IDD_FILTERS [English (U.S.)]
+#define HIDC_FILTER_EDIT 0x80a9046d // IDD_FILTERS [English (U.S.)]
+#define HIDC_FILTER_HORIZONTAL 0x80a9049c // IDD_FILTERS [English (U.S.)]
+#define HIDC_FILTER_NONWORKING 0x80a90454 // IDD_FILTERS [English (U.S.)]
+#define HIDC_FILTER_ORIGINALS 0x80a9045b // IDD_FILTERS [English (U.S.)]
+#define HIDC_FILTER_RASTER 0x80a90452 // IDD_FILTERS [English (U.S.)]
+#define HIDC_FILTER_UNAVAILABLE 0x80a90453 // IDD_FILTERS [English (U.S.)]
+#define HIDC_FILTER_VECTOR 0x80a90451 // IDD_FILTERS [English (U.S.)]
+#define HIDC_FILTER_VERTICAL 0x80a90460 // IDD_FILTERS [English (U.S.)]
+#define HIDC_FILTER_WORKING 0x80a9045c // IDD_FILTERS [English (U.S.)]
+#define HIDC_FILTER_MECHANICAL 0x80a90461 // IDD_FILTERS [English (U.S.)]
+#define HIDC_FLICKER 0x809f0407 // IDD_PROP_VECTOR [English (U.S.)]
+#define HIDC_FLIPX 0x809a0408 // IDD_PROP_DISPLAY [English (U.S.)]
+#define HIDC_FLIPY 0x809a0409 // IDD_PROP_DISPLAY [English (U.S.)]
+#define HIDC_FRAMESKIP 0x809c03f1 // IDD_PROP_ADVANCED [English (U.S.)]
+#define HIDC_FSBRIGHTNESS 0x809c0444 // IDD_PROP_ADVANCED [English (U.S.)]
+#define HIDC_FSCONTRAST 0x809c040e // IDD_PROP_ADVANCED [English (U.S.)]
+#define HIDC_FSGAMMA 0x809c0442 // IDD_PROP_ADVANCED [English (U.S.)]
+#define HIDC_GAMMA 0x809a03ff // IDD_PROP_DISPLAY [English (U.S.)]
+#define HIDC_HIDE_MOUSE 0x80ad04a1 // IDD_INTERFACE_OPTIONS [English (U.S.)]
+#define HIDC_HIGH_PRIORITY 0x809e049f // IDD_PROP_MISC [English (U.S.)]
+#define HIDC_HISTORY 0x806504cb // IDD_MAIN [English (U.S.)]
+#define HIDC_HWSTRETCH 0x809a046c // IDD_PROP_DISPLAY [English (U.S.)]
+#define HIDC_JDZ 0x809d0487 // IDD_PROP_INPUT [English (U.S.)]
+#define HIDC_JOYSTICK 0x809d03eb // IDD_PROP_INPUT [English (U.S.)]
+#define HIDC_JOY_GUI 0x80ad0485 // IDD_INTERFACE_OPTIONS [English (U.S.)]
+#define HIDC_JSAT 0x809d048b // IDD_PROP_INPUT [English (U.S.)]
+#define HIDC_KEEPASPECT 0x809a0474 // IDD_PROP_DISPLAY [English (U.S.)]
+#define HIDC_LANGUAGECHECK 0x80b204d1 // IDD_LANGUAGE [English (U.S.)]
+#define HIDC_LANGUAGEEDIT 0x80b204d4 // IDD_LANGUAGE [English (U.S.)]
+#define HIDC_LIGHTGUN 0x809d048f // IDD_PROP_INPUT [English (U.S.)]
+#define HIDC_LIGHTGUNDEVICE 0x80b904bd // IDD_PROP_CONTROLLER [English (U.S.)]
+#define HIDC_LOG 0x80bc03f9 // IDD_PROP_DEBUG [English (U.S.)]
+#define HIDC_MAXIMIZE 0x809a046e // IDD_PROP_DISPLAY [English (U.S.)]
+#define HIDC_MOUSE 0x80b904be // IDD_PROP_CONTROLLER [English (U.S.)]
+#define HIDC_MULTIKEYBOARD 0x809d0429 // IDD_PROP_INPUT [English (U.S.)]
+#define HIDC_MULTIMOUSE 0x809d04ce // IDD_PROP_INPUT [English (U.S.)]
+#define HIDC_MULTITHREAD_RENDERING 0x809e04c3 // IDD_PROP_MISC [English (U.S.)]
+#define HIDC_NUMSCREENS 0x80bb0404 // IDD_PROP_SCREEN [English (U.S.)]
+#define HIDC_OSLOG 0x80bc04d8 // IDD_PROP_DEBUG [English (U.S.)]
+#define HIDC_OVERLAYS 0x809e03fb // IDD_PROP_MISC [English (U.S.)]
+#define HIDC_PADDLE 0x80b904b8 // IDD_PROP_CONTROLLER [English (U.S.)]
+#define HIDC_PAUSEBRIGHT 0x809a049c // IDD_PROP_DISPLAY [English (U.S.)]
+#define HIDC_PEDAL 0x80b904ba // IDD_PROP_CONTROLLER [English (U.S.)]
+#define HIDC_POSITIONAL 0x80b904bf // IDD_PROP_CONTROLLER [English (U.S.)]
+#define HIDC_PRESCALE 0x809a041f // IDD_PROP_DISPLAY [English (U.S.)]
+#define HIDC_PROP_RESET 0x809c044d // IDD_PROP_ADVANCED [English (U.S.)]
+#define HIDC_RANDOM_BG 0x80ad0492 // IDD_INTERFACE_OPTIONS [English (U.S.)]
+#define HIDC_REFRESH 0x80bb047c // IDD_PROP_SCREEN [English (U.S.)]
+#define HIDC_REFRESHSPEED 0x809c04d0 // IDD_PROP_ADVANCED [English (U.S.)]
+#define HIDC_RELOAD 0x809d04ae // IDD_PROP_INPUT [English (U.S.)]
+#define HIDC_RESET_DEBUGSCRIPT 0x80bc04dd // IDD_PROP_DEBUG [English (U.S.)]
+#define HIDC_RESET_DEFAULT 0x80aa04a2 // IDD_RESET [English (U.S.)]
+#define HIDC_RESET_EFFECT 0x809c0459 // IDD_PROP_ADVANCED [English (U.S.)]
+#define HIDC_RESET_FILTERS 0x80aa049f // IDD_RESET [English (U.S.)]
+#define HIDC_RESET_GAMES 0x80aa049d // IDD_RESET [English (U.S.)]
+#define HIDC_RESET_JOYSTICKMAP 0x809d04df // IDD_PROP_INPUT [English (U.S.)]
+#define HIDC_RESET_UI 0x80aa049e // IDD_RESET [English (U.S.)]
+#define HIDC_ROTATE 0x809a03f2 // IDD_PROP_DISPLAY [English (U.S.)]
+#define HIDC_SAMPLERATE 0x809b0403 // IDD_PROP_SOUND [English (U.S.)]
+#define HIDC_SAMPLES 0x809b0461 // IDD_PROP_SOUND [English (U.S.)]
+#define HIDC_SCREEN 0x80bb03f4 // IDD_PROP_SCREEN [English (U.S.)]
+#define HIDC_SCREENSELECT 0x80bb03f7 // IDD_PROP_SCREEN [English (U.S.)]
+#define HIDC_SECONDSTORUN 0x809c040f // IDD_PROP_ADVANCED [English (U.S.)]
+#define HIDC_SELECT_DEBUGSCRIPT 0x80bc04dc // IDD_PROP_DEBUG [English (U.S.)]
+#define HIDC_SELECT_EFFECT 0x809c04c2 // IDD_PROP_ADVANCED [English (U.S.)]
+#define HIDC_SELECT_JOYSTICKMAP 0x809d04de // IDD_PROP_INPUT [English (U.S.)]
+#define HIDC_SIZES 0x80bb03ed // IDD_PROP_SCREEN [English (U.S.)]
+#define HIDC_SKIP_GAME_INFO 0x809e049a // IDD_PROP_MISC [English (U.S.)]
+#define HIDC_SLEEP 0x809e03fe // IDD_PROP_MISC [English (U.S.)]
+#define HIDC_SNAPNAME 0x80ad04d5 // IDD_INTERFACE_OPTIONS [English (U.S.)]
+#define HIDC_SNAPSIZE 0x809e04e1 // IDD_PROP_MISC [English (U.S.)]
+#define HIDC_SNAPSIZEHEIGHT 0x809e04e3 // IDD_PROP_MISC [English (U.S.)]
+#define HIDC_SNAPSIZEWIDTH 0x809e04e2 // IDD_PROP_MISC [English (U.S.)]
+#define HIDC_SNAPVIEW 0x809e04b2 // IDD_PROP_MISC [English (U.S.)]
+#define HIDC_SPEED 0x809c04d2 // IDD_PROP_ADVANCED [English (U.S.)]
+#define HIDC_START_GAME_CHECK 0x80ad0460 // IDD_INTERFACE_OPTIONS [English (U.S.)]
+#define HIDC_STEADYKEY 0x809d0480 // IDD_PROP_INPUT [English (U.S.)]
+#define HIDC_STRETCH_SCREENSHOT_LARGER 0x80ad04a8 // IDD_INTERFACE_OPTIONS [English (U.S.)]
+#define HIDC_SWITCHRES 0x80bb046d // IDD_PROP_SCREEN [English (U.S.)]
+#define HIDC_SYNCREFRESH 0x809c0476 // IDD_PROP_ADVANCED [English (U.S.)]
+#define HIDC_THROTTLE 0x809a0478 // IDD_PROP_DISPLAY [English (U.S.)]
+#define HIDC_TRACKBALL 0x80b904bc // IDD_PROP_CONTROLLER [English (U.S.)]
+#define HIDC_TRIPLE_BUFFER 0x809c0467 // IDD_PROP_ADVANCED [English (U.S.)]
+#define HIDC_UPDATEINPAUSE 0x80bc04da // IDD_PROP_DEBUG [English (U.S.)]
+#define HIDC_USE_DEFAULT 0x809c0401 // IDD_PROP_ADVANCED [English (U.S.)]
+#define HIDC_USE_MOUSE 0x809d0477 // IDD_PROP_INPUT [English (U.S.)]
+#define HIDC_USE_SOUND 0x809b046d // IDD_PROP_SOUND [English (U.S.)]
+#define HIDC_VERBOSE 0x80bc04d9 // IDD_PROP_DEBUG [English (U.S.)]
+#define HIDC_VIDEO_MODE 0x809a04ca // IDD_PROP_DISPLAY [English (U.S.)]
+#define HIDC_VIEW 0x80bb03f6 // IDD_PROP_SCREEN [English (U.S.)]
+#define HIDC_VOLUME 0x809b045d // IDD_PROP_SOUND [English (U.S.)]
+#define HIDC_WAITVSYNC 0x809c0471 // IDD_PROP_ADVANCED [English (U.S.)]
+#define HIDC_WINDOWED 0x809a0497 // IDD_PROP_DISPLAY [English (U.S.)]
diff --git a/src/osd/winui/screenshot.cpp b/src/osd/winui/screenshot.cpp
new file mode 100644
index 00000000000..57add693e6a
--- /dev/null
+++ b/src/osd/winui/screenshot.cpp
@@ -0,0 +1,590 @@
+// For licensing and usage information, read docs/winui_license.txt
+// MASTER
+//****************************************************************************
+
+/***************************************************************************
+
+ Screenshot.cpp
+
+ Displays snapshots, control panels and other pictures.
+ Files must be of type .PNG .
+ If Software tab is chosen, software-specific pictures can be displayed.
+ Background picture must be PNG, and can be chosen from anywhere, but
+ must be uncompressed (not in a zip file).
+
+***************************************************************************/
+
+// standard windows headers
+#include <windows.h>
+#include <windowsx.h>
+
+// MAME/MAMEUI headers
+#include "png.h"
+#include "unzip.h"
+#include "mui_opts.h"
+#include "mui_util.h" // for DriverIsClone
+#include "drivenum.h"
+
+/***************************************************************************
+ Static global variables
+***************************************************************************/
+
+/* these refer to the single image currently loaded by the ScreenShot functions */
+static HGLOBAL m_hDIB = nullptr;
+static HPALETTE m_hPal = nullptr;
+static HANDLE m_hDDB = nullptr;
+
+/* PNG variables */
+
+static int copy_size = 0;
+static char* pixel_ptr = nullptr;
+static int row = 0;
+static int effWidth;
+
+/***************************************************************************
+ Functions
+***************************************************************************/
+
+// called by winui.cpp twice
+BOOL ScreenShotLoaded(void)
+{
+ return m_hDDB != NULL;
+}
+
+// called by winui.cpp once
+HANDLE GetScreenShotHandle()
+{
+ return m_hDDB;
+}
+
+// called by winui.cpp twice
+int GetScreenShotWidth(void)
+{
+ return ((LPBITMAPINFO)m_hDIB)->bmiHeader.biWidth;
+}
+
+// called by winui.cpp twice
+int GetScreenShotHeight(void)
+{
+ return ((LPBITMAPINFO)m_hDIB)->bmiHeader.biHeight;
+}
+
+// called by winui.cpp
+/* Delete the HPALETTE and Free the HDIB memory */
+void FreeScreenShot(void)
+{
+ if (m_hDIB != NULL)
+ GlobalFree(m_hDIB);
+ m_hDIB = NULL;
+
+ if (m_hPal != NULL)
+ DeletePalette(m_hPal);
+ m_hPal = NULL;
+
+ if (m_hDDB != NULL)
+ DeleteObject(m_hDDB);
+ m_hDDB = NULL;
+}
+
+/***************************************************************************
+ PNG graphics handling functions
+***************************************************************************/
+
+static BOOL AllocatePNG(png_info *p, HGLOBAL *phDIB, HPALETTE *pPal)
+{
+ int nColors = 0;
+ copy_size = 0;
+ pixel_ptr = 0;
+ row = p->height - 1;
+ int lineWidth = p->width;
+
+ BITMAPINFOHEADER bi;
+ if (p->color_type != 2 && p->num_palette <= 256)
+ nColors = p->num_palette;
+
+ bi.biSize = sizeof(BITMAPINFOHEADER);
+ bi.biWidth = p->width;
+ bi.biHeight = p->height;
+ bi.biPlanes = 1;
+ bi.biBitCount = (p->color_type == 3) ? 8 : 24; /* bit_depth; */
+ bi.biCompression = BI_RGB;
+ bi.biSizeImage = 0;
+ bi.biXPelsPerMeter = 0;
+ bi.biYPelsPerMeter = 0;
+ bi.biClrUsed = nColors;
+ bi.biClrImportant = nColors;
+
+ effWidth = (long)(((long)lineWidth*bi.biBitCount + 31) / 32) * 4;
+
+ int dibSize = effWidth * bi.biHeight;
+ HGLOBAL hDIB = GlobalAlloc(GMEM_FIXED, bi.biSize + (nColors * sizeof(RGBQUAD)) + dibSize);
+
+ if (!hDIB)
+ return FALSE;
+
+ LPBITMAPINFOHEADER lpbi = (LPBITMAPINFOHEADER)hDIB;
+ memcpy(lpbi, &bi, sizeof(BITMAPINFOHEADER));
+ RGBQUAD* pRgb = (RGBQUAD*)((LPSTR)lpbi + bi.biSize);
+ LPVOID lpDIBBits = (LPVOID)((LPSTR)lpbi + bi.biSize + (nColors * sizeof(RGBQUAD)));
+
+ if (nColors)
+ {
+ int i;
+ /* Convert a PNG palette (3 byte RGBTRIPLEs) to a new color table (4 byte RGBQUADs) */
+ for (i = 0; i < nColors; i++)
+ {
+ RGBQUAD rgb;
+
+ rgb.rgbRed = p->palette[i * 3 + 0];
+ rgb.rgbGreen = p->palette[i * 3 + 1];
+ rgb.rgbBlue = p->palette[i * 3 + 2];
+ rgb.rgbReserved = (BYTE)0;
+
+ pRgb[i] = rgb;
+ }
+ }
+
+ LPBITMAPINFO bmInfo = (LPBITMAPINFO)hDIB;
+
+ /* Create a halftone palette if colors > 256. */
+ if (0 == nColors || nColors > 256)
+ {
+ HDC hDC = CreateCompatibleDC(0); /* Desktop DC */
+ *pPal = CreateHalftonePalette(hDC);
+ DeleteDC(hDC);
+ }
+ else
+ {
+ UINT nSize = sizeof(LOGPALETTE) + (sizeof(PALETTEENTRY) * nColors);
+ LOGPALETTE *pLP = (LOGPALETTE *)malloc(nSize);
+ int i;
+
+ pLP->palVersion = 0x300;
+ pLP->palNumEntries = nColors;
+
+ for (i = 0; i < nColors; i++)
+ {
+ pLP->palPalEntry[i].peRed = bmInfo->bmiColors[i].rgbRed;
+ pLP->palPalEntry[i].peGreen = bmInfo->bmiColors[i].rgbGreen;
+ pLP->palPalEntry[i].peBlue = bmInfo->bmiColors[i].rgbBlue;
+ pLP->palPalEntry[i].peFlags = 0;
+ }
+
+ *pPal = CreatePalette(pLP);
+
+ free (pLP);
+ }
+
+ copy_size = dibSize;
+ pixel_ptr = (char*)lpDIBBits;
+ *phDIB = hDIB;
+ return TRUE;
+}
+
+inline void store_pixels(UINT8 *buf, int len)
+{
+ if (pixel_ptr && copy_size)
+ {
+ memcpy(&pixel_ptr[row * effWidth], buf, len);
+ row--;
+ copy_size -= len;
+ }
+}
+
+
+/* Copied and modified from png.cpp
+ logerror doesn't work here... changed to printf */
+static bool png_read_bitmap_gui(util::core_file &mfile, HGLOBAL *phDIB, HPALETTE *pPAL)
+{
+ png_info p;
+ if (p.read_file(mfile) != PNGERR_NONE)
+ return 0;
+
+ if (p.color_type != 3 && p.color_type != 2)
+ {
+ printf("PNG Unsupported color type %i (has to be 2 or 3)\n", p.color_type);
+ //return 0; Leave in so ppl can see incompatibility
+ }
+
+ if (p.interlace_method != 0)
+ {
+ printf("PNG Interlace unsupported\n");
+ return 0;
+ }
+
+ /* Convert < 8 bit to 8 bit */
+ p.expand_buffer_8bit();
+
+ if (!AllocatePNG(&p, phDIB, pPAL))
+ {
+ printf("PNG Unable to allocate memory to display screenshot\n");
+ return 0;
+ }
+
+ int bytespp = (p.color_type == 2) ? 3 : 1;
+
+ for (uint32_t i = 0; i < p.height; i++)
+ {
+ UINT8 *ptr = &p.image[i * (p.width * bytespp)];
+
+ if (p.color_type == 2) /*(p->bit_depth > 8) */
+ {
+ int j;
+ UINT8 bTmp;
+
+ for (j = 0; j < p.width; j++)
+ {
+ bTmp = ptr[0];
+ ptr[0] = ptr[2];
+ ptr[2] = bTmp;
+ ptr += 3;
+ }
+ }
+ store_pixels(&p.image[i * (p.width * bytespp)], p.width * bytespp);
+ }
+
+ return 1;
+}
+
+
+
+/***************************************************************************
+ File search functions
+***************************************************************************/
+
+static osd_file::error OpenRawDIBFile(const char *dir_name, const char *filename, util::core_file::ptr &file)
+{
+ // clear out result
+ file = NULL;
+
+ // look for the raw file
+ string fname = string(dir_name) + PATH_SEPARATOR + string(filename);
+ return util::core_file::open(fname.c_str(), OPEN_FLAG_READ, file);
+}
+
+static osd_file::error OpenZipDIBFile(const char *dir_name, const char *zip_name, const char *filename, util::core_file::ptr &file, void **buffer)
+{
+ osd_file::error filerr = osd_file::error::NOT_FOUND;
+ util::archive_file::ptr zip;
+
+ // clear out result
+ file = NULL;
+
+ // look into zip file
+ string fname = string(dir_name) + PATH_SEPARATOR + string(zip_name) + ".zip";
+ if (util::archive_file::open_zip(fname, zip) == util::archive_file::error::NONE)
+ {
+ if (zip->search(filename, false) >= 0)
+ {
+ *buffer = malloc(zip->current_uncompressed_length());
+ if (zip->decompress(*buffer, zip->current_uncompressed_length()) == util::archive_file::error::NONE)
+ filerr = util::core_file::open_ram(*buffer, zip->current_uncompressed_length(), OPEN_FLAG_READ, file);
+ }
+ zip.reset();
+ }
+ else
+ {
+ fname = string(dir_name) + PATH_SEPARATOR + string(zip_name) + ".7z";
+ if (util::archive_file::open_7z(fname, zip) == util::archive_file::error::NONE)
+ {
+ if (zip->search(filename, false) >= 0)
+ {
+ *buffer = malloc(zip->current_uncompressed_length());
+ if (zip->decompress(*buffer, zip->current_uncompressed_length()) == util::archive_file::error::NONE)
+ filerr = util::core_file::open_ram(*buffer, zip->current_uncompressed_length(), OPEN_FLAG_READ, file);
+ }
+ zip.reset();
+ }
+ }
+ return filerr;
+}
+
+// display a snap, cabinet, title, flyer, marquee, pcb, control panel
+static BOOL LoadDIB(const char *filename, HGLOBAL *phDIB, HPALETTE *pPal, int pic_type)
+{
+ osd_file::error filerr = osd_file::error::NOT_FOUND; // defined in osdcore.h
+ util::core_file::ptr file = NULL;
+ char fullpath[400];
+ const char* zip_name;
+ string t;
+
+ if (pPal)
+ DeletePalette(pPal);
+
+ switch (pic_type)
+ {
+ case TAB_ARTWORK:
+ t = GetArtworkDir();
+ zip_name = "artpreview";
+ break;
+ case TAB_BOSSES:
+ t = GetBossesDir();
+ zip_name = "bosses";
+ break;
+ case TAB_CABINET:
+ t = GetCabinetDir();
+ zip_name = "cabinets";
+ break;
+ case TAB_CONTROL_PANEL:
+ t = GetControlPanelDir();
+ zip_name = "cpanel";
+ break;
+ case TAB_COVER:
+ t = GetCoversDir();
+ zip_name = "covers";
+ break;
+ case TAB_ENDS:
+ t = GetEndsDir();
+ zip_name = "ends";
+ break;
+ case TAB_FLYER:
+ t = GetFlyerDir();
+ zip_name = "flyers";
+ break;
+ case TAB_GAMEOVER:
+ t = GetGameOverDir();
+ zip_name = "gameover";
+ break;
+ case TAB_HOWTO:
+ t = GetHowToDir();
+ zip_name = "howto";
+ break;
+ case TAB_LOGO:
+ t = GetLogoDir();
+ zip_name = "logo";
+ break;
+ case TAB_MARQUEE:
+ t = GetMarqueeDir();
+ zip_name = "marquees";
+ break;
+ case TAB_PCB:
+ t = GetPcbDir();
+ zip_name = "pcb";
+ break;
+ case TAB_SCORES:
+ t = GetScoresDir();
+ zip_name = "scores";
+ break;
+ case TAB_SCREENSHOT:
+ t = GetImgDir();
+ zip_name = "snap";
+ break;
+ case TAB_SELECT:
+ t = GetSelectDir();
+ zip_name = "select";
+ break;
+ case TAB_TITLE:
+ t = GetTitlesDir();
+ zip_name = "titles";
+ break;
+ case TAB_VERSUS:
+ t = GetVersusDir();
+ zip_name = "versus";
+ break;
+ default :
+ // in case a non-image tab gets here, which can happen
+ return false;
+ }
+
+ // we need to split the filename into the game name (system_name), and the software-list item name (file_name)
+ strcpy(fullpath, t.c_str());
+ char tempfile [400];
+ strcpy(tempfile, filename);
+ char* system_name = strtok(tempfile, ":");
+ char* file_name = strtok(NULL, ":");
+ void *buffer = NULL;
+ string fname;
+
+ // Support multiple paths
+ char* partpath = strtok(fullpath, ";");
+
+ while (partpath && filerr != osd_file::error::NONE)
+ {
+ //Add handling for the displaying of all the different supported snapshot pattern types
+ //%g
+
+ // Do software checks first
+ if (file_name)
+ {
+ // Try dir/system/game.png
+ fname = string(system_name) + PATH_SEPARATOR + string(file_name) + ".png";
+ filerr = OpenRawDIBFile(partpath, fname.c_str(), file);
+
+ // Try dir/system.zip/game.png
+ if (filerr != osd_file::error::NONE)
+ {
+ fname = string(file_name) + ".png";
+ filerr = OpenZipDIBFile(partpath, system_name, fname.c_str(), file, &buffer);
+ }
+
+ // Try dir/system.zip/system/game.png
+ if (filerr != osd_file::error::NONE)
+ {
+ fname = string(system_name) + "/" + string(file_name) + ".png";
+ filerr = OpenZipDIBFile(partpath, system_name, fname.c_str(), file, &buffer);
+ }
+
+ // Try dir/zipfile/system/game.png
+ if (filerr != osd_file::error::NONE)
+ {
+ filerr = OpenZipDIBFile(partpath, zip_name, fname.c_str(), file, &buffer);
+ }
+ }
+
+ // give up on software-specific, try dir/system.png
+ if (filerr != osd_file::error::NONE)
+ {
+ fname = string(system_name) + ".png";
+ filerr = OpenRawDIBFile(partpath, fname.c_str(), file);
+ }
+
+ // For SNAPS only, try filenames with 0000.
+ if (pic_type == TAB_SCREENSHOT)
+ {
+ if (filerr != osd_file::error::NONE)
+ {
+ //%g/%i
+ fname = string(system_name) + PATH_SEPARATOR + "0000.png";
+ filerr = OpenRawDIBFile(partpath, fname.c_str(), file);
+ }
+ if (filerr != osd_file::error::NONE)
+ {
+ //%g%i
+ fname = string(system_name) + "0000.png";
+ filerr = OpenRawDIBFile(partpath, fname.c_str(), file);
+ }
+ if (filerr != osd_file::error::NONE)
+ {
+ //%g/%g%i
+ fname = string(system_name) + PATH_SEPARATOR + string(system_name) + "0000.png";
+ filerr = OpenRawDIBFile(partpath, fname.c_str(), file);
+ }
+ }
+
+ // Try dir/zipfile/system.png
+ if (filerr != osd_file::error::NONE)
+ {
+ fname = string(system_name) + ".png";
+ filerr = OpenZipDIBFile(partpath, zip_name, fname.c_str(), file, &buffer);
+ }
+
+ partpath = strtok(NULL, ";");
+ }
+
+ BOOL success = false;
+ if (filerr == osd_file::error::NONE)
+ {
+ success = png_read_bitmap_gui(*file, phDIB, pPal);
+ file.reset();
+ }
+
+ // free the buffer if we have to
+ if (buffer)
+ free(buffer);
+
+ return success;
+}
+
+// called from winui.cpp and here
+HBITMAP DIBToDDB(HDC hDC, HANDLE hDIB, LPMYBITMAPINFO desc)
+{
+ BITMAPINFO * bmInfo = (LPBITMAPINFO)hDIB;
+
+ if (hDIB == NULL)
+ return NULL;
+
+ LPBITMAPINFOHEADER lpbi = (LPBITMAPINFOHEADER)hDIB;
+ int nColors = lpbi->biClrUsed ? lpbi->biClrUsed : 1 << lpbi->biBitCount;
+
+ LPVOID lpDIBBits;
+ if (bmInfo->bmiHeader.biBitCount > 8)
+ lpDIBBits = (LPVOID)((LPDWORD)(bmInfo->bmiColors + bmInfo->bmiHeader.biClrUsed) +
+ ((bmInfo->bmiHeader.biCompression == BI_BITFIELDS) ? 3 : 0));
+ else
+ lpDIBBits = (LPVOID)(bmInfo->bmiColors + nColors);
+
+ if (desc != 0)
+ {
+ /* Store for easy retrieval later */
+ desc->bmWidth = bmInfo->bmiHeader.biWidth;
+ desc->bmHeight = bmInfo->bmiHeader.biHeight;
+ desc->bmColors = (nColors <= 256) ? nColors : 0;
+ }
+
+ HBITMAP hBM = CreateDIBitmap(hDC, // handle to device context
+ (LPBITMAPINFOHEADER)lpbi, // pointer to bitmap info header
+ (LONG)CBM_INIT, // initialization flag
+ lpDIBBits, // pointer to initialization data
+ (LPBITMAPINFO)lpbi, // pointer to bitmap info
+ DIB_RGB_COLORS); // color-data usage
+
+ return hBM;
+}
+
+
+
+// main call from winui to display a picture
+BOOL LoadScreenShot(int nGame, LPCSTR lpSoftwareName, int nType)
+{
+ /* Delete the last ones */
+ //printf("LoadScreenShot: A\n");fflush(stdout);
+ FreeScreenShot();
+
+ //printf("LoadScreenShot: B\n");fflush(stdout);
+ BOOL loaded = false;
+ BOOL isclone = DriverIsClone(nGame);
+ int nParentIndex = -1;
+ if (isclone)
+ nParentIndex = GetParentIndex(&driver_list::driver(nGame));
+
+ // If software item, see if picture exist (correct parent is passed in lpSoftwareName)
+ //printf("LoadScreenShot: C\n");fflush(stdout);
+ if (lpSoftwareName)
+ loaded = LoadDIB(lpSoftwareName, &m_hDIB, &m_hPal, nType);
+
+ // If game, see if picture exist. Or, if no picture for the software, use game's picture.
+ //printf("LoadScreenShot: D\n");fflush(stdout);
+ if (!loaded)
+ {
+ //printf("LoadScreenShot: E\n");fflush(stdout);
+ loaded = LoadDIB(driver_list::driver(nGame).name, &m_hDIB, &m_hPal, nType);
+ // none? try parent
+ //printf("LoadScreenShot: F\n");fflush(stdout);
+ if (!loaded && isclone)
+ {
+ //printf("LoadScreenShot: G\n");fflush(stdout);
+ loaded = LoadDIB(driver_list::driver(nParentIndex).name, &m_hDIB, &m_hPal, nType);
+ }
+ }
+
+ //printf("LoadScreenShot: K\n");fflush(stdout);
+ if (loaded)
+ {
+ HDC hdc = GetDC(GetMainWindow());
+ m_hDDB = DIBToDDB(hdc, m_hDIB, NULL);
+ ReleaseDC(GetMainWindow(),hdc);
+ }
+
+ printf("LoadScreenShot: Finished\n");fflush(stdout);
+ return loaded;
+}
+
+// called from winui.cpp to display the background
+BOOL LoadDIBBG(HGLOBAL *phDIB, HPALETTE *pPal)
+{
+ util::core_file::ptr file = NULL;
+ BOOL success = false;
+ if (pPal)
+ DeletePalette(pPal);
+
+ // look for the raw file
+ string fname = GetBgDir();
+ if (util::core_file::open(fname.c_str(), OPEN_FLAG_READ, file) == osd_file::error::NONE)
+ {
+ success = png_read_bitmap_gui(*file, phDIB, pPal);
+ file.reset();
+ }
+
+ return success;
+}
+
diff --git a/src/osd/winui/screenshot.h b/src/osd/winui/screenshot.h
new file mode 100644
index 00000000000..e5d9253b181
--- /dev/null
+++ b/src/osd/winui/screenshot.h
@@ -0,0 +1,60 @@
+// For licensing and usage information, read docs/winui_license.txt
+// MASTER
+//****************************************************************************
+
+#ifndef WINUI_SCREENSHOT_H
+#define WINUI_SCREENSHOT_H
+
+typedef struct _mybitmapinfo
+{
+ int bmWidth;
+ int bmHeight;
+ int bmColors;
+} MYBITMAPINFO, *LPMYBITMAPINFO;
+
+extern BOOL LoadScreenShot(int nGame, LPCSTR lpSoftwareName, int nType);
+extern HANDLE GetScreenShotHandle(void);
+extern int GetScreenShotWidth(void);
+extern int GetScreenShotHeight(void);
+
+extern void FreeScreenShot(void);
+extern BOOL ScreenShotLoaded(void);
+
+extern BOOL LoadDIBBG(HGLOBAL *phDIB, HPALETTE *pPal);
+extern HBITMAP DIBToDDB(HDC hDC, HANDLE hDIB, LPMYBITMAPINFO desc);
+
+#if 0
+typedef struct
+{
+ TEXT tabtext;
+ const char* zipname;
+ int tabenum;
+ const string (*pfnGetTheseDirs)(void);
+}
+SSINFO;
+
+const SSINFO m_ssInfo[] =
+{
+ { "Snapshot", "snap", TAB_SCREENSHOT, GetImgDir },
+ { "Flyer", "flyers", TAB_FLYER, GetFlyerDir },
+ { "Cabinet", "cabinets", TAB_CABINET, GetCabinetDir },
+ { "Marquee", "marquees", TAB_MARQUEE, GetMarqueeDir },
+ { "Title", "titles", TAB_TITLE, GetTitleDir },
+ { "Control Panel", "cpanel", TAB_CONTROL_PANEL, GetControlPanelDir },
+ { "PCB", "pcb", TAB_PCB, GetPcbDir },
+};
+
+/* if adding a new tab, need to also update:
+- dialogs.cpp (~50) (history on tab or not)
+- winui.cpp MameCommand (~4173) (action the mouse click in the menu)
+- mameui/messui.rc (show in menu)
+- ui_opts.h (tab enabled or not)
+- resource.h
+- mui_opts.cpp/h (directory get function)
+- mui_opts.h enum of names
+- mui_opts.cpp image_tabs_long_name
+- screenshot.cpp (~316) (choose image to display)
+*/
+
+#endif
+#endif
diff --git a/src/osd/winui/splitters.cpp b/src/osd/winui/splitters.cpp
new file mode 100644
index 00000000000..a694c8cc5a9
--- /dev/null
+++ b/src/osd/winui/splitters.cpp
@@ -0,0 +1,371 @@
+// For licensing and usage information, read docs/winui_license.txt
+// MASTER
+//****************************************************************************
+
+ /***************************************************************************
+
+ splitters.cpp
+
+ Splitter GUI code. - Tree, splitter, list, splitter, pict
+
+ Created 12/03/98 (C) by Mike Haaland (mhaaland@hypertech.com)
+
+***************************************************************************/
+
+
+// standard windows headers
+#include <windows.h>
+#include <windowsx.h>
+
+// MAME/MAMEUI headers
+#include "splitters.h"
+#include "mui_opts.h"
+
+/* Local Variables */
+static BOOL bTracking = 0;
+static int numSplitters = 0;
+static int currentSplitter = 0;
+static HZSPLITTER *splitter;
+static LPHZSPLITTER lpCurSpltr = 0;
+static HCURSOR hSplitterCursor = 0;
+
+int *nSplitterOffset;
+
+BOOL InitSplitters(void)
+{
+ /* load the cursor for the splitter */
+ hSplitterCursor = LoadCursor(GetModuleHandle(0), MAKEINTRESOURCE(IDC_CURSOR_HSPLIT));
+
+ int nSplitterCount = GetSplitterCount();
+
+ splitter = (HZSPLITTER*)malloc(sizeof(HZSPLITTER) * nSplitterCount);
+ if (!splitter)
+ goto error;
+ memset(splitter, 0, sizeof(HZSPLITTER) * nSplitterCount);
+
+ nSplitterOffset = (int*)malloc(sizeof(int) * nSplitterCount);
+ if (!nSplitterOffset)
+ goto error;
+ memset(nSplitterOffset, 0, sizeof(int) * nSplitterCount);
+
+ return true;
+
+error:
+ SplittersExit();
+ return false;
+}
+
+void SplittersExit(void)
+{
+ if (splitter)
+ {
+ free(splitter);
+ splitter = NULL;
+ }
+ if (nSplitterOffset)
+ {
+ free(nSplitterOffset);
+ nSplitterOffset = NULL;
+ }
+}
+
+
+/* Called with hWnd = Parent Window */
+static void CalcSplitter(HWND hWnd, LPHZSPLITTER lpSplitter)
+{
+ POINT p = {0,0};
+ ClientToScreen(hWnd, &p);
+
+ GetWindowRect(lpSplitter->m_hWnd, &lpSplitter->m_dragRect);
+ RECT leftRect, rightRect;
+ GetWindowRect(lpSplitter->m_hWndLeft, &leftRect);
+ GetWindowRect(lpSplitter->m_hWndRight, &rightRect);
+
+ OffsetRect(&lpSplitter->m_dragRect, -p.x, -p.y);
+ OffsetRect(&leftRect, -p.x, -p.y);
+ OffsetRect(&rightRect, -p.x, -p.y);
+
+ int dragWidth = lpSplitter->m_dragRect.right - lpSplitter->m_dragRect.left;
+
+ lpSplitter->m_limitRect.left = leftRect.left + 20;
+ lpSplitter->m_limitRect.right = rightRect.right - 20;
+ lpSplitter->m_limitRect.top = lpSplitter->m_dragRect.top;
+ lpSplitter->m_limitRect.bottom = lpSplitter->m_dragRect.bottom;
+ if (lpSplitter->m_func)
+ lpSplitter->m_func(hWnd, &lpSplitter->m_limitRect);
+
+ if (lpSplitter->m_dragRect.left < lpSplitter->m_limitRect.left)
+ lpSplitter->m_dragRect.left = lpSplitter->m_limitRect.left;
+
+ if (lpSplitter->m_dragRect.right > lpSplitter->m_limitRect.right)
+ lpSplitter->m_dragRect.left = lpSplitter->m_limitRect.right - dragWidth;
+
+ lpSplitter->m_dragRect.right = lpSplitter->m_dragRect.left + dragWidth;
+}
+
+void AdjustSplitter2Rect(HWND hWnd, LPRECT lpRect)
+{
+ RECT pRect;
+
+ GetClientRect(hWnd, &pRect);
+
+ if (lpRect->right > pRect.right)
+ lpRect->right = pRect.right;
+
+ lpRect->right = MIN(lpRect->right - GetMinimumScreenShotWindowWidth(), lpRect->right);
+
+ lpRect->left = MAX((pRect.right - (pRect.right - pRect.left)) / 2, lpRect->left);
+}
+
+void AdjustSplitter1Rect(HWND hWnd, LPRECT lpRect)
+{
+}
+
+void RecalcSplitters(void)
+{
+ int i;
+
+ for (i = 0; i < numSplitters; i++)
+ {
+ CalcSplitter(GetParent(splitter[i].m_hWnd), &splitter[i]);
+ nSplitterOffset[i] = splitter[i].m_dragRect.left;
+ }
+
+ for (i = numSplitters - 1; i >= 0; i--)
+ {
+ CalcSplitter(GetParent(splitter[i].m_hWnd), &splitter[i]);
+ nSplitterOffset[i] = splitter[i].m_dragRect.left;
+ }
+
+}
+
+void OnSizeSplitter(HWND hWnd)
+{
+ static bool firstTime = true;
+ bool changed = false;
+ RECT rWindowRect;
+ POINT p = {0,0};
+ int i;
+ int nSplitterCount = GetSplitterCount();
+
+ if (firstTime)
+ {
+ for (i = 0; i < nSplitterCount; i++)
+ nSplitterOffset[i] = GetSplitterPos(i);
+ changed = true;
+ firstTime = false;
+ }
+
+ GetWindowRect(hWnd, &rWindowRect);
+
+ for (i = 0; i < nSplitterCount; i++)
+ {
+ p.x = 0;
+ p.y = 0;
+ ClientToScreen(splitter[i].m_hWnd, &p);
+
+ /* We must change if our window is not in the window rect */
+ bool bMustChange = !PtInRect(&rWindowRect, p);
+
+ /* We should also change if we are ahead the next splitter */
+ if ((i < nSplitterCount-1) && (nSplitterOffset[i] >= nSplitterOffset[i+1]))
+ bMustChange = true;
+
+ /* ...or if we are behind the previous splitter */
+ if ((i > 0) && (nSplitterOffset[i] <= nSplitterOffset[i-1]))
+ bMustChange = true;
+#ifdef MESS
+ if ((i==1)&&(!BIT(GetWindowPanes(), 2))) // sw
+ bMustChange = false;
+ if ((i==2)&&(!BIT(GetWindowPanes(), 3))) // images
+ bMustChange = false;
+#endif
+ if (bMustChange)
+ {
+ nSplitterOffset[i] = (rWindowRect.right - rWindowRect.left) * g_splitterInfo[i].dPosition;
+ changed = true;
+ }
+ }
+
+ if (changed)
+ {
+ ResizePickerControls(hWnd);
+ RecalcSplitters();
+ //UpdateScreenShot();
+ }
+}
+
+void AddSplitter(HWND hWnd, HWND hWndLeft, HWND hWndRight, void (*func)(HWND hWnd,LPRECT lpRect))
+{
+ LPHZSPLITTER lpSpltr = &splitter[numSplitters];
+
+ if (numSplitters >= GetSplitterCount())
+ return;
+
+ lpSpltr->m_hWnd = hWnd;
+ lpSpltr->m_hWndLeft = hWndLeft;
+ lpSpltr->m_hWndRight = hWndRight;
+ lpSpltr->m_func = func;
+ CalcSplitter(GetParent(hWnd), lpSpltr);
+
+ numSplitters++;
+}
+
+static void OnInvertTracker(HWND hWnd, const RECT *rect)
+{
+ HDC hDC = GetDC(hWnd);
+ HBRUSH hBrush = CreateSolidBrush(RGB(0xFF, 0xFF, 0xFF));
+ HBRUSH hOldBrush = 0;
+
+ if (hBrush != 0)
+ hOldBrush = (HBRUSH)SelectObject(hDC, hBrush);
+ PatBlt(hDC, rect->left, rect->top, rect->right - rect->left, rect->bottom - rect->top, DSTINVERT);
+ if (hOldBrush != 0)
+ SelectObject(hDC, hOldBrush);
+ ReleaseDC(hWnd, hDC);
+ DeleteBrush(hBrush);
+}
+
+static void StartTracking(HWND hWnd, UINT hitArea)
+{
+ if (!bTracking && lpCurSpltr != 0 && hitArea == SPLITTER_HITITEM)
+ {
+ // Ensure we have an updated cursor structure
+ CalcSplitter(hWnd, lpCurSpltr);
+ // Draw the first splitter shadow
+ OnInvertTracker(hWnd, &lpCurSpltr->m_dragRect);
+ // Capture the mouse
+ SetCapture(hWnd);
+ // Set tracking to TRUE
+ bTracking = true;
+ SetCursor(hSplitterCursor);
+ }
+}
+
+static void StopTracking(HWND hWnd)
+{
+ if (bTracking)
+ {
+ // erase the tracking image
+ OnInvertTracker(hWnd, &lpCurSpltr->m_dragRect);
+ // Release the mouse
+ ReleaseCapture();
+ // set tracking to false
+ bTracking = false;
+ SetCursor(LoadCursor(0, IDC_ARROW));
+ // set the new splitter position
+ nSplitterOffset[currentSplitter] = lpCurSpltr->m_dragRect.left;
+ // Redraw the screen area
+ ResizePickerControls(hWnd);
+ UpdateScreenShot();
+ InvalidateRect(GetMainWindow(), NULL, true);
+ }
+}
+
+static UINT SplitterHitTest(HWND hWnd, POINTS p)
+{
+ POINT pt;
+ pt.x = p.x;
+ pt.y = p.y;
+
+ // Check which area we hit
+ ClientToScreen(hWnd, &pt);
+
+ RECT rect;
+ for (int i = 0; i < numSplitters; i++)
+ {
+ GetWindowRect(splitter[i].m_hWnd, &rect);
+ if (PtInRect(&rect, pt))
+ {
+ lpCurSpltr = &splitter[i];
+ currentSplitter = i;
+ // We hit the splitter
+ return SPLITTER_HITITEM;
+ }
+ }
+ lpCurSpltr = 0;
+ // We missed the splitter
+ return SPLITTER_HITNOTHING;
+}
+
+void OnMouseMove(HWND hWnd, UINT nFlags, POINTS p)
+{
+ if (bTracking) // move the tracking image
+ {
+ POINT pt;
+ pt.x = (int)p.x;
+ pt.y = (int)p.y;
+
+ ClientToScreen(hWnd, &pt);
+ RECT rect;
+ GetWindowRect(hWnd, &rect);
+ if (! PtInRect(&rect, pt))
+ {
+ if ((short)pt.x < (short)rect.left)
+ pt.x = rect.left;
+ if ((short)pt.x > (short)rect.right)
+ pt.x = rect.right;
+ pt.y = rect.top + 1;
+ }
+
+ ScreenToClient(hWnd, &pt);
+
+ // Erase the old tracking image
+ OnInvertTracker(hWnd, &lpCurSpltr->m_dragRect);
+
+ // calc the new one based on p.x draw it
+ int nWidth = lpCurSpltr->m_dragRect.right - lpCurSpltr->m_dragRect.left;
+ lpCurSpltr->m_dragRect.right = pt.x + nWidth / 2;
+ lpCurSpltr->m_dragRect.left = pt.x - nWidth / 2;
+
+ if (pt.x - nWidth / 2 > lpCurSpltr->m_limitRect.right)
+ {
+ lpCurSpltr->m_dragRect.right = lpCurSpltr->m_limitRect.right;
+ lpCurSpltr->m_dragRect.left = lpCurSpltr->m_dragRect.right - nWidth;
+ }
+ if (pt.x + nWidth / 2 < lpCurSpltr->m_limitRect.left)
+ {
+ lpCurSpltr->m_dragRect.left = lpCurSpltr->m_limitRect.left;
+ lpCurSpltr->m_dragRect.right = lpCurSpltr->m_dragRect.left + nWidth;
+ }
+ OnInvertTracker(hWnd, &lpCurSpltr->m_dragRect);
+ }
+ else
+ {
+ switch(SplitterHitTest(hWnd, p))
+ {
+ case SPLITTER_HITNOTHING:
+ SetCursor(LoadCursor(0, IDC_ARROW));
+ break;
+ case SPLITTER_HITITEM:
+ SetCursor(hSplitterCursor);
+ break;
+ }
+ }
+}
+
+void OnLButtonDown(HWND hWnd, UINT nFlags, POINTS p)
+{
+ if (!bTracking) // See if we need to start a splitter drag
+ {
+ StartTracking(hWnd, SplitterHitTest(hWnd, p));
+ }
+}
+
+void OnLButtonUp(HWND hWnd, UINT nFlags, POINTS p)
+{
+ if (bTracking)
+ {
+ StopTracking(hWnd);
+ }
+}
+
+int GetSplitterCount(void)
+{
+ int nSplitterCount = 0;
+ while(g_splitterInfo[nSplitterCount].dPosition > 0)
+ nSplitterCount++;
+ return nSplitterCount;
+}
+
+/* End of file */
diff --git a/src/osd/winui/splitters.h b/src/osd/winui/splitters.h
new file mode 100644
index 00000000000..a0382865bf9
--- /dev/null
+++ b/src/osd/winui/splitters.h
@@ -0,0 +1,80 @@
+// For licensing and usage information, read docs/winui_license.txt
+// MASTER
+//****************************************************************************
+
+/* Written by Mike Haaland <mhaaland@hypertech.com> */
+
+#ifndef SPLITTER_H
+#define SPLITTER_H
+
+#if !defined(MAX)
+#define MIN(a, b) ((a) < (b) ? (a) : (b))
+#define MAX(a, b) ((a) > (b) ? (a) : (b))
+#endif
+
+#include "resource.h"
+#include "winui.h"
+#define SPLITTER_WIDTH 4
+#define MIN_VIEW_WIDTH 10
+
+enum eSplitterHits
+{
+ SPLITTER_HITNOTHING = 0,
+ SPLITTER_HITITEM
+};
+
+typedef struct horzSplitter
+{
+ HWND m_hWnd;
+ HWND m_hWndLeft;
+ HWND m_hWndRight;
+ RECT m_limitRect;
+ RECT m_dragRect;
+ void (*m_func)(HWND hWnd, LPRECT lpRect);
+} HZSPLITTER, *LPHZSPLITTER;
+
+/* Splitter routines */
+void OnMouseMove(HWND hWnd, UINT nFlags, POINTS p);
+void OnLButtonDown(HWND hWnd, UINT nFlags, POINTS p);
+void OnLButtonUp(HWND hWnd, UINT nFlags, POINTS p);
+void OnSizeSplitter(HWND hWnd);
+void AddSplitter(HWND hWnd, HWND hWndLeft, HWND hWndRight, void (*func)(HWND hWnd,LPRECT lpRect));
+void RecalcSplitters(void);
+void AdjustSplitter2Rect(HWND hWnd, LPRECT lpRect);
+void AdjustSplitter1Rect(HWND hWnd, LPRECT lpRect);
+BOOL InitSplitters(void);
+void SplittersExit(void);
+int GetSplitterCount(void);
+
+extern int *nSplitterOffset;
+
+typedef struct
+{
+ double dPosition;
+ int nSplitterWindow;
+ int nLeftWindow;
+ int nRightWindow;
+ void (*pfnAdjust)(HWND hWnd,LPRECT lpRect);
+} SPLITTERINFO;
+
+#ifdef MESS
+const SPLITTERINFO g_splitterInfo[] =
+{
+ { 0.15, IDC_SPLITTER, IDC_TREE, IDC_LIST, AdjustSplitter1Rect },
+ { 0.8, IDC_SPLITTER2, IDC_LIST, IDC_SWTAB, AdjustSplitter1Rect },
+ { 0.9, IDC_SPLITTER3, IDC_SWTAB, IDC_SSFRAME, AdjustSplitter2Rect },
+ { -1 }
+};
+#else
+const SPLITTERINFO g_splitterInfo[] =
+{
+ { 0.25, IDC_SPLITTER, IDC_TREE, IDC_LIST, AdjustSplitter1Rect },
+ { 0.5, IDC_SPLITTER2, IDC_LIST, IDC_SSFRAME, AdjustSplitter2Rect },
+ { -1 }
+};
+#endif
+
+//extern const SPLITTERINFO g_splitterInfo[];
+
+
+#endif /* SPLITTER_H */
diff --git a/src/osd/winui/tabview.cpp b/src/osd/winui/tabview.cpp
new file mode 100644
index 00000000000..89f3ffb56ba
--- /dev/null
+++ b/src/osd/winui/tabview.cpp
@@ -0,0 +1,270 @@
+// For licensing and usage information, read docs/winui_license.txt
+// MASTER
+//****************************************************************************
+
+// standard windows headers
+#include <windows.h>
+#include <windowsx.h>
+#include <commctrl.h>
+
+// MAME/MAMEUI headers
+#include "tabview.h"
+#include "mui_util.h"
+
+
+struct TabViewInfo
+{
+ const struct TabViewCallbacks *pCallbacks;
+ int nTabCount;
+ WNDPROC pfnParentWndProc;
+};
+
+
+
+static struct TabViewInfo *GetTabViewInfo(HWND hWnd)
+{
+ LONG_PTR l = GetWindowLongPtr(hWnd, GWLP_USERDATA);
+ return (struct TabViewInfo *) l;
+}
+
+
+
+static LRESULT CallParentWndProc(WNDPROC pfnParentWndProc, HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
+{
+ if (!pfnParentWndProc)
+ pfnParentWndProc = GetTabViewInfo(hWnd)->pfnParentWndProc;
+
+ LRESULT rc;
+ if (IsWindowUnicode(hWnd))
+ rc = CallWindowProcW(pfnParentWndProc, hWnd, message, wParam, lParam);
+ else
+ rc = CallWindowProcA(pfnParentWndProc, hWnd, message, wParam, lParam);
+ return rc;
+}
+
+
+
+static LRESULT CALLBACK TabViewWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
+{
+ struct TabViewInfo *pTabViewInfo;
+ pTabViewInfo = GetTabViewInfo(hWnd);
+
+ WNDPROC pfnParentWndProc = pTabViewInfo->pfnParentWndProc;
+
+ switch(message)
+ {
+ case WM_DESTROY:
+ free(pTabViewInfo);
+ SetWindowLongPtr(hWnd, GWLP_WNDPROC, (LONG_PTR) pfnParentWndProc);
+ SetWindowLongPtr(hWnd, GWLP_USERDATA, (LONG_PTR) NULL);
+ break;
+ }
+
+ LRESULT rc = 0;
+ // this is weird...
+ BOOL bHandled = false;
+ if (!bHandled)
+ rc = CallParentWndProc(pfnParentWndProc, hWnd, message, wParam, lParam);
+
+ switch(message)
+ {
+ case WM_MOVE:
+ case WM_SIZE:
+ if (pTabViewInfo->pCallbacks->pfnOnMoveSize)
+ pTabViewInfo->pCallbacks->pfnOnMoveSize();
+ break;
+ }
+
+ return rc;
+}
+
+
+
+static int TabView_GetTabFromTabIndex(HWND hwndTabView, int tab_index)
+{
+ int shown_tabs = -1;
+ struct TabViewInfo *pTabViewInfo;
+
+ pTabViewInfo = GetTabViewInfo(hwndTabView);
+
+ for (int i = 0; i < pTabViewInfo->nTabCount; i++)
+ {
+ if (!pTabViewInfo->pCallbacks->pfnGetShowTab || pTabViewInfo->pCallbacks->pfnGetShowTab(i))
+ {
+ shown_tabs++;
+ if (shown_tabs == tab_index)
+ return i;
+ }
+ }
+ printf("invalid tab index %i\n", tab_index);
+ return 0;
+}
+
+
+
+int TabView_GetCurrentTab(HWND hwndTabView)
+{
+ struct TabViewInfo *pTabViewInfo;
+ pTabViewInfo = GetTabViewInfo(hwndTabView);
+ return pTabViewInfo->pCallbacks->pfnGetCurrentTab();
+}
+
+
+
+void TabView_SetCurrentTab(HWND hwndTabView, int nTab)
+{
+ struct TabViewInfo *pTabViewInfo;
+ pTabViewInfo = GetTabViewInfo(hwndTabView);
+ pTabViewInfo->pCallbacks->pfnSetCurrentTab(nTab);
+}
+
+
+
+static int TabView_GetCurrentTabIndex(HWND hwndTabView)
+{
+ int shown_tabs = 0;
+ struct TabViewInfo *pTabViewInfo;
+
+ pTabViewInfo = GetTabViewInfo(hwndTabView);
+ int nCurrentTab = TabView_GetCurrentTab(hwndTabView);
+
+ for (int i = 0; i < pTabViewInfo->nTabCount; i++)
+ {
+ if (i == nCurrentTab)
+ break;
+
+ if (!pTabViewInfo->pCallbacks->pfnGetShowTab || pTabViewInfo->pCallbacks->pfnGetShowTab(i))
+ shown_tabs++;
+ }
+ return shown_tabs;
+}
+
+
+
+void TabView_UpdateSelection(HWND hwndTabView)
+{
+ (void)TabCtrl_SetCurSel(hwndTabView, TabView_GetCurrentTabIndex(hwndTabView));
+}
+
+
+
+BOOL TabView_HandleNotify(LPNMHDR lpNmHdr)
+{
+ struct TabViewInfo *pTabViewInfo;
+ BOOL bResult = false;
+
+ HWND hwndTabView = lpNmHdr->hwndFrom;
+ pTabViewInfo = GetTabViewInfo(hwndTabView);
+
+ switch (lpNmHdr->code)
+ {
+ case TCN_SELCHANGE:
+ int nTabIndex = TabCtrl_GetCurSel(hwndTabView);
+ int nTab = TabView_GetTabFromTabIndex(hwndTabView, nTabIndex);
+ TabView_SetCurrentTab(hwndTabView, nTab);
+ if (pTabViewInfo->pCallbacks->pfnOnSelectionChanged)
+ pTabViewInfo->pCallbacks->pfnOnSelectionChanged();
+ bResult = true;
+ break;
+ }
+ return bResult;
+}
+
+
+
+void TabView_CalculateNextTab(HWND hwndTabView)
+{
+ struct TabViewInfo *pTabViewInfo;
+ int nCurrentTab;
+
+ pTabViewInfo = GetTabViewInfo(hwndTabView);
+
+ // at most loop once through all options
+ for (int i = 0; i < pTabViewInfo->nTabCount; i++)
+ {
+ nCurrentTab = TabView_GetCurrentTab(hwndTabView);
+ TabView_SetCurrentTab(hwndTabView, (nCurrentTab + 1) % pTabViewInfo->nTabCount);
+ nCurrentTab = TabView_GetCurrentTab(hwndTabView);
+
+ if (!pTabViewInfo->pCallbacks->pfnGetShowTab || pTabViewInfo->pCallbacks->pfnGetShowTab(nCurrentTab))
+ {
+ // this tab is being shown, so we're all set
+ return;
+ }
+ }
+}
+
+
+void TabView_Reset(HWND hwndTabView)
+{
+ printf("TabView_Reset: A\n");fflush(stdout);
+ struct TabViewInfo *pTabViewInfo;
+ pTabViewInfo = GetTabViewInfo(hwndTabView);
+
+ printf("TabView_Reset: B\n");fflush(stdout);
+ BOOL b_res = TabCtrl_DeleteAllItems(hwndTabView);
+ b_res++;
+
+ TC_ITEM tci;
+ memset(&tci, 0, sizeof(tci));
+ tci.mask = TCIF_TEXT;
+ tci.cchTextMax = 20;
+
+ printf("TabView_Reset: C\n");fflush(stdout);
+ for (int i = 0; i < pTabViewInfo->nTabCount; i++)
+ {
+ if (!pTabViewInfo->pCallbacks->pfnGetShowTab || pTabViewInfo->pCallbacks->pfnGetShowTab(i))
+ {
+ TCHAR* t_text = ui_wstring_from_utf8(pTabViewInfo->pCallbacks->pfnGetTabLongName(i));
+ if( !t_text )
+ return;
+ tci.pszText = t_text;
+ HRESULT res = TabCtrl_InsertItem(hwndTabView, i, &tci);
+ res++;
+ free(t_text);
+ }
+ }
+ printf("TabView_Reset: E\n");fflush(stdout);
+ TabView_UpdateSelection(hwndTabView);
+ printf("TabView_Reset: Finished\n");fflush(stdout);
+}
+
+
+BOOL SetupTabView(HWND hwndTabView, const struct TabViewOptions *pOptions)
+{
+ //assert(hwndTabView);
+ printf("SetupTabView: A\n");fflush(stdout);
+ struct TabViewInfo *pTabViewInfo;
+
+ // Allocate the list view struct
+ pTabViewInfo = (struct TabViewInfo *) malloc(sizeof(struct TabViewInfo));
+ if (!pTabViewInfo)
+ return false;
+
+ // And fill it out
+ printf("SetupTabView: B\n");fflush(stdout);
+ memset(pTabViewInfo, 0, sizeof(*pTabViewInfo));
+ pTabViewInfo->pCallbacks = pOptions->pCallbacks;
+ pTabViewInfo->nTabCount = pOptions->nTabCount;
+
+ // Hook in our wndproc and userdata pointer
+ printf("SetupTabView: C\n");fflush(stdout);
+ LONG_PTR l = GetWindowLongPtr(hwndTabView, GWLP_WNDPROC);
+ pTabViewInfo->pfnParentWndProc = (WNDPROC) l;
+ SetWindowLongPtr(hwndTabView, GWLP_USERDATA, (LONG_PTR) pTabViewInfo);
+ SetWindowLongPtr(hwndTabView, GWLP_WNDPROC, (LONG_PTR) TabViewWndProc);
+
+ printf("SetupTabView: D\n");fflush(stdout);
+ BOOL bShowTabView = pTabViewInfo->pCallbacks->pfnGetShowTabCtrl ? pTabViewInfo->pCallbacks->pfnGetShowTabCtrl() : true;
+ printf("SetupTabView: E\n");fflush(stdout);
+ ShowWindow(hwndTabView, bShowTabView ? SW_SHOW : SW_HIDE);
+
+ printf("SetupTabView: F\n");fflush(stdout);
+ TabView_Reset(hwndTabView);
+ if (pTabViewInfo->pCallbacks->pfnOnSelectionChanged)
+ pTabViewInfo->pCallbacks->pfnOnSelectionChanged();
+ printf("SetupTabView: Finished\n");fflush(stdout);
+ return true;
+}
+
+
diff --git a/src/osd/winui/tabview.h b/src/osd/winui/tabview.h
new file mode 100644
index 00000000000..8958045a4be
--- /dev/null
+++ b/src/osd/winui/tabview.h
@@ -0,0 +1,44 @@
+// For licensing and usage information, read docs/winui_license.txt
+//****************************************************************************
+
+#ifndef TABVIEW_H
+#define TABVIEW_H
+
+struct TabViewCallbacks
+{
+ // Options retrieval
+ BOOL (*pfnGetShowTabCtrl)(void);
+ void (*pfnSetCurrentTab)(int val);
+ int (*pfnGetCurrentTab)(void);
+ void (*pfnSetShowTab)(int nTab, BOOL show);
+ int (*pfnGetShowTab)(int nTab);
+
+ // Accessors
+ LPCSTR (*pfnGetTabShortName)(int nTab);
+ LPCSTR (*pfnGetTabLongName)(int nTab);
+
+ // Callbacks
+ void (*pfnOnSelectionChanged)(void);
+ void (*pfnOnMoveSize)(void);
+};
+
+struct TabViewOptions
+{
+ const struct TabViewCallbacks *pCallbacks;
+ int nTabCount;
+};
+
+
+BOOL SetupTabView(HWND hwndTabView, const struct TabViewOptions *pOptions);
+
+void TabView_Reset(HWND hwndTabView);
+void TabView_CalculateNextTab(HWND hwndTabView);
+int TabView_GetCurrentTab(HWND hwndTabView);
+void TabView_SetCurrentTab(HWND hwndTabView, int nTab);
+void TabView_UpdateSelection(HWND hwndTabView);
+
+// These are used to handle events received by the parent regarding
+// tabview controls
+BOOL TabView_HandleNotify(LPNMHDR lpNmHdr);
+
+#endif // TABVIEW_H
diff --git a/src/osd/winui/treeview.cpp b/src/osd/winui/treeview.cpp
new file mode 100644
index 00000000000..1e04ce7c477
--- /dev/null
+++ b/src/osd/winui/treeview.cpp
@@ -0,0 +1,2515 @@
+// For licensing and usage information, read docs/winui_license.txt
+//****************************************************************************
+
+/***************************************************************************
+
+ treeview.c
+
+ TreeView support routines - MSH 11/19/1998
+
+***************************************************************************/
+
+// standard windows headers
+#include <windows.h>
+#include <windowsx.h>
+#include <shellapi.h>
+#include <commctrl.h>
+
+// standard C headers
+#include <stdio.h> // for sprintf
+#include <stdlib.h> // For malloc and free
+#include <ctype.h> // For tolower
+#include <string.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+
+#ifdef _MSC_VER
+#include <direct.h>
+#endif
+#include <tchar.h>
+#include <io.h>
+
+// MAME/MAMEUI headers
+#include "emu.h"
+#include "hash.h"
+#include "mui_util.h"
+#include "bitmask.h"
+#include "winui.h"
+#include "treeview.h"
+#include "resource.h"
+#include "mui_opts.h"
+#include "dialogs.h"
+#include "winutf8.h"
+#include "strconv.h"
+#include "drivenum.h"
+#include "screen.h"
+
+#ifdef _MSC_VER
+#define snprintf _snprintf
+#endif
+
+#ifdef __GNUC__
+#pragma GCC diagnostic ignored "-Wunused-but-set-variable"
+#endif
+
+#define MAX_EXTRA_FOLDERS 256
+
+/***************************************************************************
+ public structures
+ ***************************************************************************/
+
+#define ICON_MAX ARRAY_LENGTH(treeIconNames)
+
+/* Name used for user-defined custom icons */
+/* external *.ico file to look for. */
+
+typedef struct
+{
+ int nResourceID;
+ LPCSTR lpName;
+} TREEICON;
+
+static TREEICON treeIconNames[] =
+{
+ { IDI_FOLDER_OPEN, "foldopen" },
+ { IDI_FOLDER, "folder" },
+ { IDI_FOLDER_AVAILABLE, "foldavail" },
+ { IDI_FOLDER_MANUFACTURER, "foldmanu" },
+ { IDI_FOLDER_UNAVAILABLE, "foldunav" },
+ { IDI_FOLDER_YEAR, "foldyear" },
+ { IDI_FOLDER_SOURCE, "foldsrc" },
+ { IDI_FOLDER_HORIZONTAL, "horz" },
+ { IDI_FOLDER_VERTICAL, "vert" },
+ { IDI_MANUFACTURER, "manufact" },
+ { IDI_WORKING, "working" },
+ { IDI_NONWORKING, "nonwork" },
+ { IDI_YEAR, "year" },
+ { IDI_SOUND, "sound" },
+ { IDI_CPU, "cpu" },
+ { IDI_HARDDISK, "harddisk" },
+ { IDI_SOURCE, "source" }
+};
+
+/***************************************************************************
+ private variables
+ ***************************************************************************/
+
+/* this has an entry for every folder eventually in the UI, including subfolders */
+static TREEFOLDER **treeFolders = 0;
+static UINT numFolders = 0; /* Number of folder in the folder array */
+static UINT next_folder_id = MAX_FOLDERS;
+static UINT folderArrayLength = 0; /* Size of the folder array */
+static LPTREEFOLDER lpCurrentFolder = nullptr; /* Currently selected folder */
+static UINT nCurrentFolder = 0; /* Current folder ID */
+static WNDPROC g_lpTreeWndProc = 0; /* for subclassing the TreeView */
+static HIMAGELIST hTreeSmall = 0; /* TreeView Image list of icons */
+
+/* this only has an entry for each TOP LEVEL extra folder + SubFolders*/
+LPEXFOLDERDATA ExtraFolderData[MAX_EXTRA_FOLDERS * MAX_EXTRA_SUBFOLDERS];
+static int numExtraFolders = 0;
+static int numExtraIcons = 0;
+static char *ExtraFolderIcons[MAX_EXTRA_FOLDERS];
+
+// built in folders and filters
+static LPCFOLDERDATA g_lpFolderData;
+static LPCFILTER_ITEM g_lpFilterList;
+
+/***************************************************************************
+ private function prototypes
+ ***************************************************************************/
+
+extern BOOL InitFolders(void);
+static BOOL CreateTreeIcons(void);
+static void TreeCtrlOnPaint(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
+static const char* ParseManufacturer(const char *s, int *pParsedChars );
+static const char* TrimManufacturer(const char *s);
+static BOOL AddFolder(LPTREEFOLDER lpFolder);
+static LPTREEFOLDER NewFolder(const char *lpTitle, UINT nFolderId, int nParent, UINT nIconId, DWORD dwFlags);
+static void DeleteFolder(LPTREEFOLDER lpFolder);
+static LRESULT CALLBACK TreeWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
+static int InitExtraFolders(void);
+static void FreeExtraFolders(void);
+static void SetExtraIcons(char *name, int *id);
+static BOOL TryAddExtraFolderAndChildren(int parent_index);
+static BOOL TrySaveExtraFolder(LPTREEFOLDER lpFolder);
+static void SaveExternalFolders(int parent_index, const char *fname);
+
+/***************************************************************************
+ public functions
+ ***************************************************************************/
+
+static BOOL win_move_file_utf8(const char* existingfilename, const char* newfilename)
+{
+ TCHAR* t_existingfilename;
+ TCHAR* t_newfilename;
+ BOOL result = FALSE;
+
+ t_existingfilename = ui_wstring_from_utf8(existingfilename);
+ if( !t_existingfilename )
+ return result;
+
+ t_newfilename = ui_wstring_from_utf8(newfilename);
+ if( !t_newfilename ) {
+ free(t_existingfilename);
+ return result;
+ }
+
+ result = MoveFile(t_existingfilename, t_newfilename);
+
+ free(t_newfilename);
+ free(t_existingfilename);
+
+ return result;
+}
+
+/**************************************************************************
+ * ci_strncmp - case insensitive character array compare
+ *
+ * Returns zero if the first n characters of s1 and s2 are equal,
+ * ignoring case.
+ * stolen from datafile.c
+ **************************************************************************/
+static int ci_strncmp (const char *s1, const char *s2, int n)
+{
+ int c1, c2;
+
+ while (n)
+ {
+ if ((c1 = tolower (*s1)) != (c2 = tolower (*s2)))
+ return (c1 - c2);
+ else if (!c1)
+ break;
+ --n;
+
+ s1++;
+ s2++;
+ }
+ return 0;
+}
+
+
+
+/* De-allocate all folder memory */
+void FreeFolders(void)
+{
+ int i = 0;
+
+ if (treeFolders != NULL)
+ {
+ if (numExtraFolders)
+ {
+ FreeExtraFolders();
+ numFolders -= numExtraFolders;
+ }
+
+ for (i = numFolders - 1; i >= 0; i--)
+ {
+ DeleteFolder(treeFolders[i]);
+ treeFolders[i] = NULL;
+ numFolders--;
+ }
+ free(treeFolders);
+ treeFolders = NULL;
+ }
+ numFolders = 0;
+}
+
+/* Reset folder filters */
+void ResetFilters(void)
+{
+ int i = 0;
+
+ if (treeFolders != 0)
+ {
+ for (i = 0; i < (int)numFolders; i++)
+ {
+ treeFolders[i]->m_dwFlags &= ~F_MASK;
+ }
+ }
+}
+
+void InitTree(LPCFOLDERDATA lpFolderData, LPCFILTER_ITEM lpFilterList)
+{
+ LONG_PTR l;
+
+ g_lpFolderData = lpFolderData;
+ g_lpFilterList = lpFilterList;
+
+ InitFolders();
+
+ /* this will subclass the treeview (where WM_DRAWITEM gets sent for the header control) */
+ l = GetWindowLongPtr(GetTreeView(), GWLP_WNDPROC);
+ g_lpTreeWndProc = (WNDPROC)l;
+ SetWindowLongPtr(GetTreeView(), GWLP_WNDPROC, (LONG_PTR)TreeWndProc);
+}
+
+void SetCurrentFolder(LPTREEFOLDER lpFolder)
+{
+ lpCurrentFolder = (lpFolder == 0) ? treeFolders[0] : lpFolder;
+ nCurrentFolder = (lpCurrentFolder) ? lpCurrentFolder->m_nFolderId : 0;
+}
+
+LPTREEFOLDER GetCurrentFolder(void)
+{
+ return lpCurrentFolder;
+}
+
+UINT GetCurrentFolderID(void)
+{
+ return nCurrentFolder;
+}
+
+int GetNumFolders(void)
+{
+ return numFolders;
+}
+
+LPTREEFOLDER GetFolder(UINT nFolder)
+{
+ return (nFolder < numFolders) ? treeFolders[nFolder] : NULL;
+}
+
+LPTREEFOLDER GetFolderByID(UINT nID)
+{
+ UINT i;
+
+ for (i = 0; i < numFolders; i++)
+ {
+ if (treeFolders[i]->m_nFolderId == nID)
+ {
+ return treeFolders[i];
+ }
+ }
+
+ return (LPTREEFOLDER)0;
+}
+
+void AddGame(LPTREEFOLDER lpFolder, UINT nGame)
+{
+ if (lpFolder)
+ SetBit(lpFolder->m_lpGameBits, nGame);
+}
+
+void RemoveGame(LPTREEFOLDER lpFolder, UINT nGame)
+{
+ ClearBit(lpFolder->m_lpGameBits, nGame);
+}
+
+int FindGame(LPTREEFOLDER lpFolder, int nGame)
+{
+ return FindBit(lpFolder->m_lpGameBits, nGame, TRUE);
+}
+
+// Called to re-associate games with folders
+void ResetWhichGamesInFolders(void)
+{
+ UINT i, jj, k;
+ BOOL b;
+ int nGames = driver_list::total();
+
+ for (i = 0; i < numFolders; i++)
+ {
+ LPTREEFOLDER lpFolder = treeFolders[i];
+ // setup the games in our built-in folders
+ for (k = 0; g_lpFolderData[k].m_lpTitle; k++)
+ {
+ if (lpFolder->m_nFolderId == g_lpFolderData[k].m_nFolderId)
+ {
+ if (g_lpFolderData[k].m_pfnQuery || g_lpFolderData[k].m_bExpectedResult)
+ {
+ SetAllBits(lpFolder->m_lpGameBits, FALSE);
+ for (jj = 0; jj < nGames; jj++)
+ {
+ // invoke the query function
+ b = g_lpFolderData[k].m_pfnQuery ? g_lpFolderData[k].m_pfnQuery(jj) : TRUE;
+
+ // if we expect FALSE, flip the result
+ if (!g_lpFolderData[k].m_bExpectedResult)
+ b = !b;
+
+ // if we like what we hear, add the game
+ if (b)
+ AddGame(lpFolder, jj);
+ }
+ }
+ break;
+ }
+ }
+ }
+}
+
+
+/* Used to build the GameList */
+BOOL GameFiltered(int nGame, DWORD dwMask)
+{
+ int i;
+ LPTREEFOLDER lpFolder = GetCurrentFolder();
+ LPTREEFOLDER lpParent = nullptr;
+
+ //Filter out the Bioses on all Folders, except for the Bios Folder
+ if (lpFolder != nullptr && lpFolder->m_nFolderId != FOLDER_BIOS)
+ {
+// if( !( (driver_list::driver(nGame).flags & MACHINE_IS_BIOS_ROOT ) == 0) )
+// return TRUE;
+ if( driver_list::driver(nGame).name[0] == '_' )
+ return TRUE;
+ }
+ // Filter games--return TRUE if the game should be HIDDEN in this view
+ if( GetFilterInherit() )
+ {
+ if( lpFolder != nullptr )
+ {
+ lpParent = GetFolder( lpFolder->m_nParent );
+ if( lpParent != nullptr )
+ {
+ /* Check the Parent Filters and inherit them on child,
+ * The inherited filters don't display on the custom Filter Dialog for the Child folder
+ * No need to promote all games to parent folder, works as is */
+ dwMask |= lpParent->m_dwFlags;
+ }
+ }
+ }
+
+ if (strlen(GetSearchText()) && _stricmp(GetSearchText(), SEARCH_PROMPT))
+ {
+ if (MyStrStrI(driver_list::driver(nGame).type.fullname(),GetSearchText()) == NULL &&
+ MyStrStrI(driver_list::driver(nGame).name,GetSearchText()) == NULL)
+ return TRUE;
+ }
+ /*Filter Text is already global*/
+ if (MyStrStrI(driver_list::driver(nGame).type.fullname(),GetFilterText()) == NULL &&
+ MyStrStrI(driver_list::driver(nGame).name,GetFilterText()) == NULL &&
+ MyStrStrI(driver_list::driver(nGame).type.source(),GetFilterText()) == NULL &&
+ MyStrStrI(driver_list::driver(nGame).manufacturer,GetFilterText()) == NULL)
+ {
+ return TRUE;
+ }
+ // Are there filters set on this folder?
+ if ((dwMask & F_MASK) == 0)
+ return FALSE;
+
+ // Filter out clones?
+ if (dwMask & F_CLONES && DriverIsClone(nGame))
+ return TRUE;
+
+ for (i = 0; g_lpFilterList[i].m_dwFilterType; i++)
+ {
+ if (dwMask & g_lpFilterList[i].m_dwFilterType)
+ {
+ if (g_lpFilterList[i].m_pfnQuery(nGame) == g_lpFilterList[i].m_bExpectedResult)
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
+/* Get the parent of game in this view */
+BOOL GetParentFound(int nGame) // not used
+{
+ int nParentIndex = -1;
+ LPTREEFOLDER lpFolder = GetCurrentFolder();
+
+ if( lpFolder )
+ {
+ nParentIndex = GetParentIndex(&driver_list::driver(nGame));
+
+ /* return FALSE if no parent is there in this view */
+ if( nParentIndex == -1)
+ return FALSE;
+
+ /* return FALSE if the folder should be HIDDEN in this view */
+ if (TestBit(lpFolder->m_lpGameBits, nParentIndex) == 0)
+ return FALSE;
+
+ /* return FALSE if the game should be HIDDEN in this view */
+ if (GameFiltered(nParentIndex, lpFolder->m_dwFlags))
+ return FALSE;
+
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+LPCFILTER_ITEM GetFilterList(void)
+{
+ return g_lpFilterList;
+}
+
+/***************************************************************************
+ private functions
+ ***************************************************************************/
+
+void CreateSourceFolders(int parent_index)
+{
+ int i,jj, k = 0;
+ int nGames = driver_list::total();
+ int start_folder = numFolders;
+ LPTREEFOLDER lpFolder = treeFolders[parent_index];
+ LPTREEFOLDER lpTemp;
+
+ // no games in top level folder
+ SetAllBits(lpFolder->m_lpGameBits,FALSE);
+ for (jj = 0; jj < nGames; jj++)
+ {
+ const char *s = GetDriverFilename(jj);
+
+ if (s == NULL || s[0] == '\0')
+ continue;
+
+ // look for an existant source treefolder for this game
+ // (likely to be the previous one, so start at the end)
+ for (i=numFolders-1;i>=start_folder;i--)
+ {
+ if (strcmp(treeFolders[i]->m_lpTitle,s) == 0)
+ {
+ AddGame(treeFolders[i],jj);
+ break;
+ }
+ }
+ if (i == start_folder-1)
+ {
+ // nope, it's a source file we haven't seen before, make it.
+ lpTemp = NewFolder(s, next_folder_id, parent_index, IDI_SOURCE, GetFolderFlags(numFolders));
+
+ // Increment next_folder_id here in case code is added above
+ next_folder_id++;
+ AddFolder(lpTemp);
+ AddGame(lpTemp,jj);
+ }
+ }
+ SetNumOptionFolders(k-1);
+ const char *fname = "Source";
+ SaveExternalFolders(parent_index, fname);
+}
+
+void CreateScreenFolders(int parent_index)
+{
+ int i, jj, k = 0;
+ int nGames = driver_list::total();
+ int start_folder = numFolders;
+ LPTREEFOLDER lpFolder = treeFolders[parent_index];
+ LPTREEFOLDER lpTemp;
+
+ // no games in top level folder
+ SetAllBits(lpFolder->m_lpGameBits,FALSE);
+ for (jj = 0; jj < nGames; jj++)
+ {
+ int screens = DriverNumScreens(jj);
+ char s[2];
+ itoa(screens, s, 10);
+
+ // look for an existant screens treefolder for this game
+ // (likely to be the previous one, so start at the end)
+ for (i=numFolders-1;i>=start_folder;i--)
+ {
+ if (strcmp(treeFolders[i]->m_lpTitle,s) == 0)
+ {
+ AddGame(treeFolders[i],jj);
+ break;
+ }
+ }
+ if (i == start_folder-1)
+ {
+ // nope, it's a screen file we haven't seen before, make it.
+ lpTemp = NewFolder(s, next_folder_id, parent_index, IDI_FOLDER, GetFolderFlags(numFolders));
+
+ // Increment next_folder_id here in case code is added above
+ next_folder_id++;
+ AddFolder(lpTemp);
+ AddGame(lpTemp,jj);
+ }
+ }
+ SetNumOptionFolders(k-1);
+ const char *fname = "Screen";
+ SaveExternalFolders(parent_index, fname);
+}
+
+
+void CreateManufacturerFolders(int parent_index)
+{
+ int i, jj;
+ int nGames = driver_list::total();
+ int start_folder = numFolders;
+ LPTREEFOLDER lpFolder = treeFolders[parent_index];
+ LPTREEFOLDER lpTemp;
+
+ // no games in top level folder
+ SetAllBits(lpFolder->m_lpGameBits,FALSE);
+
+ for (jj = 0; jj < nGames; jj++)
+ {
+ const char *manufacturer = driver_list::driver(jj).manufacturer;
+ int iChars = 0;
+ while( manufacturer != NULL && manufacturer[0] != '\0' )
+ {
+ const char *s = ParseManufacturer(manufacturer, &iChars);
+ manufacturer += iChars;
+ //shift to next start char
+ if( s != NULL && *s != 0 )
+ {
+ const char *t = TrimManufacturer(s);
+ for (i=numFolders-1;i>=start_folder;i--)
+ {
+ //RS Made it case insensitive
+ if (ci_strncmp(treeFolders[i]->m_lpTitle,t,20) == 0 )
+ {
+ AddGame(treeFolders[i],jj);
+ break;
+ }
+ }
+ if (i == start_folder-1)
+ {
+ // nope, it's a manufacturer we haven't seen before, make it.
+ lpTemp = NewFolder(t, next_folder_id, parent_index, IDI_MANUFACTURER, GetFolderFlags(numFolders));
+ AddFolder(lpTemp);
+ AddGame(lpTemp,jj);
+ }
+ }
+ }
+ }
+ const char *fname = "Manufacturer";
+ SaveExternalFolders(parent_index, fname);
+}
+
+/* Make a reasonable name out of the one found in the driver array */
+static const char* ParseManufacturer(const char *s, int *pParsedChars )
+{
+ static char tmp[256];
+ char* ptmp;
+ char *t;
+ *pParsedChars= 0;
+
+ if ( *s == '?' || *s == '<' || s[3] == '?' )
+ {
+ (*pParsedChars) = strlen(s);
+ return "<unknown>";
+ }
+
+ ptmp = tmp;
+ /*if first char is a space, skip it*/
+ if( *s == ' ' )
+ {
+ (*pParsedChars)++;
+ ++s;
+ }
+ while( *s )
+ {
+ /* combinations where to end string */
+
+ if (
+ ( (*s == ' ') && ( s[1] == '(' || s[1] == '/' || s[1] == '+' ) ) ||
+ ( *s == ']' ) ||
+ ( *s == '/' ) ||
+ ( *s == '?' )
+ )
+ {
+ (*pParsedChars)++;
+ if( s[1] == '/' || s[1] == '+' )
+ (*pParsedChars)++;
+ break;
+ }
+ if( s[0] == ' ' && s[1] == '?' )
+ {
+ (*pParsedChars) += 2;
+ s+=2;
+ }
+
+ /* skip over opening braces*/
+
+ if ( *s != '[' )
+ {
+ *ptmp++ = *s;
+ }
+ (*pParsedChars)++;
+ /*for "distributed by" and "supported by" handling*/
+ if( ( (s[1] == ',') && (s[2] == ' ') && ( (s[3] == 's') || (s[3] == 'd') ) ) )
+ {
+ //*ptmp++ = *s;
+ ++s;
+ break;
+ }
+ ++s;
+ }
+ *ptmp = '\0';
+ t = tmp;
+ if( tmp[0] == '(' || tmp[strlen(tmp)-1] == ')' || tmp[0] == ',')
+ {
+ ptmp = strchr( tmp,'(' );
+ if ( ptmp == NULL )
+ {
+ ptmp = strchr( tmp,',' );
+ if( ptmp != NULL)
+ {
+ //parse the new "supported by" and "distributed by"
+ ptmp++;
+
+ if (ci_strncmp(ptmp, " supported by", 13) == 0)
+ {
+ ptmp += 13;
+ }
+ else if (ci_strncmp(ptmp, " distributed by", 15) == 0)
+ {
+ ptmp += 15;
+ }
+ else
+ {
+ return NULL;
+ }
+ }
+ else
+ {
+ ptmp = tmp;
+ if ( ptmp == NULL )
+ {
+ return NULL;
+ }
+ }
+ }
+ if( tmp[0] == '(' || tmp[0] == ',')
+ {
+ ptmp++;
+ }
+ if (ci_strncmp(ptmp, "licensed from ", 14) == 0)
+ {
+ ptmp += 14;
+ }
+ // for the licenced from case
+ if (ci_strncmp(ptmp, "licenced from ", 14) == 0)
+ {
+ ptmp += 14;
+ }
+
+ while ( (*ptmp != ')' ) && (*ptmp != '/' ) && *ptmp != '\0')
+ {
+ if (*ptmp == ' ' && ci_strncmp(ptmp, " license", 8) == 0)
+ {
+ break;
+ }
+ if (*ptmp == ' ' && ci_strncmp(ptmp, " licence", 8) == 0)
+ {
+ break;
+ }
+ *t++ = *ptmp++;
+ }
+
+ *t = '\0';
+ }
+
+ *ptmp = '\0';
+ return tmp;
+}
+
+/* Analyze Manufacturer Names for typical patterns, that don't distinguish between companies (e.g. Co., Ltd., Inc., etc. */
+static const char* TrimManufacturer(const char *s)
+{
+ //Also remove Country specific suffixes (e.g. Japan, Italy, America, USA, ...)
+ int i=0;
+ char strTemp[256];
+ static char strTemp2[256];
+ int j=0;
+ int k=0;
+ int l = 0;
+ memset(strTemp, '\0', 256 );
+ memset(strTemp2, '\0', 256 );
+ //start analyzing from the back, as these are usually suffixes
+ for(i=strlen(s)-1; i>=0;i-- )
+ {
+
+ l = strlen(strTemp);
+ for(k=l;k>=0; k--)
+ strTemp[k+1] = strTemp[k];
+ strTemp[0] = s[i];
+ strTemp[++l] = '\0';
+ switch (l)
+ {
+ case 2:
+ if( ci_strncmp(strTemp, "co", 2) == 0 )
+ {
+ j=l;
+ while( s[strlen(s)-j-1] == ' ' || s[strlen(s)-j-1] == ',' )
+ {
+ j++;
+ }
+ if( j!=l)
+ {
+ memset(strTemp2, '\0', 256 );
+ strncpy(strTemp2, s, strlen(s)-j );
+ }
+ }
+ break;
+ case 3:
+ if( ci_strncmp(strTemp, "co.", 3) == 0 || ci_strncmp(strTemp, "ltd", 3) == 0 || ci_strncmp(strTemp, "inc", 3) == 0 || ci_strncmp(strTemp, "SRL", 3) == 0 || ci_strncmp(strTemp, "USA", 3) == 0)
+ {
+ j=l;
+ while( s[strlen(s)-j-1] == ' ' || s[strlen(s)-j-1] == ',' )
+ {
+ j++;
+ }
+ if( j!=l)
+ {
+ memset(strTemp2, '\0', 256 );
+ strncpy(strTemp2, s, strlen(s)-j );
+ }
+ }
+ break;
+ case 4:
+ if( ci_strncmp(strTemp, "inc.", 4) == 0 || ci_strncmp(strTemp, "ltd.", 4) == 0 || ci_strncmp(strTemp, "corp", 4) == 0 || ci_strncmp(strTemp, "game", 4) == 0)
+ {
+ j=l;
+ while( s[strlen(s)-j-1] == ' ' || s[strlen(s)-j-1] == ',' )
+ {
+ j++;
+ }
+ if( j!=l)
+ {
+ memset(strTemp2, '\0', 256 );
+ strncpy(strTemp2, s, strlen(s)-j );
+ }
+ }
+ break;
+ case 5:
+ if( ci_strncmp(strTemp, "corp.", 5) == 0 || ci_strncmp(strTemp, "Games", 5) == 0 || ci_strncmp(strTemp, "Italy", 5) == 0 || ci_strncmp(strTemp, "Japan", 5) == 0)
+ {
+ j=l;
+ while( s[strlen(s)-j-1] == ' ' || s[strlen(s)-j-1] == ',' )
+ {
+ j++;
+ }
+ if( j!=l)
+ {
+ memset(strTemp2, '\0', 256 );
+ strncpy(strTemp2, s, strlen(s)-j );
+ }
+ }
+ break;
+ case 6:
+ if( ci_strncmp(strTemp, "co-ltd", 6) == 0 || ci_strncmp(strTemp, "S.R.L.", 6) == 0)
+ {
+ j=l;
+ while( s[strlen(s)-j-1] == ' ' || s[strlen(s)-j-1] == ',' )
+ {
+ j++;
+ }
+ if( j!=l)
+ {
+ memset(strTemp2, '\0', 256 );
+ strncpy(strTemp2, s, strlen(s)-j );
+ }
+ }
+ break;
+ case 7:
+ if( ci_strncmp(strTemp, "co. ltd", 7) == 0 || ci_strncmp(strTemp, "America", 7) == 0)
+ {
+ j=l;
+ while( s[strlen(s)-j-1] == ' ' || s[strlen(s)-j-1] == ',' )
+ {
+ j++;
+ }
+ if( j!=l)
+ {
+ memset(strTemp2, '\0', 256 );
+ strncpy(strTemp2, s, strlen(s)-j );
+ }
+ }
+ break;
+ case 8:
+ if( ci_strncmp(strTemp, "co. ltd.", 8) == 0 )
+ {
+ j=l;
+ while( s[strlen(s)-j-1] == ' ' || s[strlen(s)-j-1] == ',' )
+ {
+ j++;
+ }
+ if( j!=l)
+ {
+ memset(strTemp2, '\0', 256 );
+ strncpy(strTemp2, s, strlen(s)-j );
+ }
+ }
+ break;
+ case 9:
+ if( ci_strncmp(strTemp, "co., ltd.", 9) == 0 || ci_strncmp(strTemp, "gmbh & co", 9) == 0 )
+ {
+ j=l;
+ while( s[strlen(s)-j-1] == ' ' || s[strlen(s)-j-1] == ',' )
+ {
+ j++;
+ }
+ if( j!=l)
+ {
+ memset(strTemp2, '\0', 256 );
+ strncpy(strTemp2, s, strlen(s)-j );
+ }
+ }
+ break;
+ case 10:
+ if( ci_strncmp(strTemp, "corp, ltd.", 10) == 0 || ci_strncmp(strTemp, "industries", 10) == 0 || ci_strncmp(strTemp, "of America", 10) == 0)
+ {
+ j=l;
+ while( s[strlen(s)-j-1] == ' ' || s[strlen(s)-j-1] == ',' )
+ {
+ j++;
+ }
+ if( j!=l)
+ {
+ memset(strTemp2, '\0', 256 );
+ strncpy(strTemp2, s, strlen(s)-j );
+ }
+ }
+ break;
+ case 11:
+ if( ci_strncmp(strTemp, "corporation", 11) == 0 || ci_strncmp(strTemp, "enterprises", 11) == 0 )
+ {
+ j=l;
+ while( s[strlen(s)-j-1] == ' ' || s[strlen(s)-j-1] == ',' )
+ {
+ j++;
+ }
+ if( j!=l)
+ {
+ memset(strTemp2, '\0', 256 );
+ strncpy(strTemp2, s, strlen(s)-j );
+ }
+ }
+ break;
+ case 16:
+ if( ci_strncmp(strTemp, "industries japan", 16) == 0 )
+ {
+ j=l;
+ while( s[strlen(s)-j-1] == ' ' || s[strlen(s)-j-1] == ',' )
+ {
+ j++;
+ }
+ if( j!=l)
+ {
+ memset(strTemp2, '\0', 256 );
+ strncpy(strTemp2, s, strlen(s)-j );
+ }
+ }
+ break;
+ default:
+ break;
+ }
+ }
+ if( *strTemp2 == 0 )
+ return s;
+ return strTemp2;
+}
+
+void CreateCPUFolders(int parent_index)
+{
+ int i, j, device_folder_count = 0;
+ LPTREEFOLDER device_folders[512];
+ LPTREEFOLDER folder;
+ LPTREEFOLDER lpTemp;
+ int nFolder = numFolders;
+
+ for (i = 0; i < driver_list::total(); i++)
+ {
+ machine_config config(driver_list::driver(i),MameUIGlobal());
+
+ // enumerate through all devices
+ for (device_execute_interface &device : execute_interface_iterator(config.root_device()))
+ {
+ // get the name
+ std::string dev_name = device.device().name();
+
+ // do we have a folder for this device?
+ folder = NULL;
+ for (j = 0; j < device_folder_count; j++)
+ {
+ if (!strcmp(dev_name.c_str(), device_folders[j]->m_lpTitle))
+ {
+ folder = device_folders[j];
+ break;
+ }
+ }
+
+ // are we forced to create a folder?
+ if (folder == NULL)
+ {
+ lpTemp = NewFolder(device.device().name(), next_folder_id, parent_index, IDI_CPU, GetFolderFlags(numFolders));
+ AddFolder(lpTemp);
+ folder = treeFolders[nFolder++];
+
+ // record that we found this folder
+ device_folders[device_folder_count++] = folder;
+ }
+
+ // cpu type #'s are one-based
+ AddGame(folder, i);
+ }
+ }
+ const char *fname = "CPU";
+ SaveExternalFolders(parent_index, fname);
+}
+
+void CreateSoundFolders(int parent_index)
+{
+ int i, j, device_folder_count = 0;
+ LPTREEFOLDER device_folders[512];
+ LPTREEFOLDER folder;
+ LPTREEFOLDER lpTemp;
+ int nFolder = numFolders;
+
+ for (i = 0; i < driver_list::total(); i++)
+ {
+ machine_config config(driver_list::driver(i),MameUIGlobal());
+
+ // enumerate through all devices
+
+ for (device_sound_interface &device : sound_interface_iterator(config.root_device()))
+ {
+ // get the name
+ std::string dev_name = device.device().name();
+
+ // do we have a folder for this device?
+ folder = NULL;
+ for (j = 0; j < device_folder_count; j++)
+ {
+ if (!strcmp(dev_name.c_str(), device_folders[j]->m_lpTitle))
+ {
+ folder = device_folders[j];
+ break;
+ }
+ }
+
+ // are we forced to create a folder?
+ if (folder == NULL)
+ {
+
+ lpTemp = NewFolder(device.device().name(), next_folder_id, parent_index, IDI_CPU, GetFolderFlags(numFolders));
+ AddFolder(lpTemp);
+ folder = treeFolders[nFolder++];
+
+ // record that we found this folder
+ device_folders[device_folder_count++] = folder;
+ }
+
+ // cpu type #'s are one-based
+ AddGame(folder, i);
+ }
+ }
+ const char *fname = "BIOS";
+ SaveExternalFolders(parent_index, fname);
+}
+
+void CreateDeficiencyFolders(int parent_index)
+{
+ int jj;
+ int nGames = driver_list::total();
+ LPTREEFOLDER lpFolder = treeFolders[parent_index];
+ LPTREEFOLDER lpProt, lpWrongCol, lpImpCol, lpImpGraph, lpMissSnd, lpImpSnd, lpFlip, lpArt;
+
+ // create our subfolders
+ lpProt = NewFolder("Unemulated Protection", next_folder_id, parent_index, IDI_FOLDER, GetFolderFlags(numFolders));
+ lpWrongCol = NewFolder("Wrong Colors", next_folder_id, parent_index, IDI_FOLDER, GetFolderFlags(numFolders));
+ lpImpCol = NewFolder("Imperfect Colors", next_folder_id, parent_index, IDI_FOLDER, GetFolderFlags(numFolders));
+ lpImpGraph = NewFolder("Imperfect Graphics", next_folder_id, parent_index, IDI_FOLDER, GetFolderFlags(numFolders));
+ lpMissSnd = NewFolder("Missing Sound", next_folder_id, parent_index, IDI_FOLDER, GetFolderFlags(numFolders));
+ lpImpSnd = NewFolder("Imperfect Sound", next_folder_id, parent_index, IDI_FOLDER, GetFolderFlags(numFolders));
+ lpFlip = NewFolder("No Cocktail", next_folder_id, parent_index, IDI_FOLDER, GetFolderFlags(numFolders));
+ lpArt = NewFolder("Requires Artwork", next_folder_id, parent_index, IDI_FOLDER, GetFolderFlags(numFolders));
+ AddFolder(lpProt);
+ AddFolder(lpWrongCol);
+ AddFolder(lpImpCol);
+ AddFolder(lpImpGraph);
+ AddFolder(lpMissSnd);
+ AddFolder(lpImpSnd);
+ AddFolder(lpFlip);
+ AddFolder(lpArt);
+
+ // no games in top level folder
+ SetAllBits(lpFolder->m_lpGameBits,FALSE);
+
+ for (jj = 0; jj < nGames; jj++)
+ {
+ uint32_t cache = GetDriverCacheLower(jj);
+ if (BIT(cache, 21))
+ AddGame(lpWrongCol,jj);
+
+ if (BIT(cache, 22))
+ AddGame(lpProt,jj);
+
+ if (BIT(cache, 20))
+ AddGame(lpImpCol,jj);
+
+ if (BIT(cache, 18))
+ AddGame(lpImpGraph,jj);
+
+ if (BIT(cache, 17))
+ AddGame(lpMissSnd,jj);
+
+ if (BIT(cache, 16))
+ AddGame(lpImpSnd,jj);
+
+ if (BIT(cache, 8))
+ AddGame(lpFlip,jj);
+
+ if (BIT(cache, 10))
+ AddGame(lpArt,jj);
+ }
+}
+
+void CreateDumpingFolders(int parent_index)
+{
+ int jj;
+ BOOL bBadDump = FALSE;
+ BOOL bNoDump = FALSE;
+ int nGames = driver_list::total();
+ LPTREEFOLDER lpFolder = treeFolders[parent_index];
+ LPTREEFOLDER lpBad, lpNo;
+ const rom_entry *region, *rom;
+ const game_driver *gamedrv;
+
+ // create our two subfolders
+ lpBad = NewFolder("Bad Dump", next_folder_id, parent_index, IDI_FOLDER, GetFolderFlags(numFolders));
+ lpNo = NewFolder("No Dump", next_folder_id, parent_index, IDI_FOLDER, GetFolderFlags(numFolders));
+ AddFolder(lpBad);
+ AddFolder(lpNo);
+
+ // no games in top level folder
+ SetAllBits(lpFolder->m_lpGameBits,FALSE);
+
+ for (jj = 0; jj < nGames; jj++)
+ {
+
+ gamedrv = &driver_list::driver(jj);
+
+ if (!gamedrv->rom)
+ continue;
+ bBadDump = FALSE;
+ bNoDump = FALSE;
+ /* Allocate machine config */
+ machine_config config(*gamedrv,MameUIGlobal());
+
+ for (device_t &device : device_iterator(config.root_device()))
+ {
+ for (region = rom_first_region(device); region; region = rom_next_region(region))
+ {
+ for (rom = rom_first_file(region); rom; rom = rom_next_file(rom))
+ {
+ if (ROMREGION_ISROMDATA(region) || ROMREGION_ISDISKDATA(region) )
+ {
+ //name = ROM_GETNAME(rom);
+ util::hash_collection hashes(ROM_GETHASHDATA(rom));
+ if (hashes.flag(util::hash_collection::FLAG_BAD_DUMP))
+ bBadDump = TRUE;
+ if (hashes.flag(util::hash_collection::FLAG_NO_DUMP))
+ bNoDump = TRUE;
+ }
+ }
+ }
+ }
+ if (bBadDump)
+ AddGame(lpBad,jj);
+
+ if (bNoDump)
+ AddGame(lpNo,jj);
+ }
+ const char *fname = "Dumping";
+ SaveExternalFolders(parent_index, fname);
+}
+
+
+void CreateYearFolders(int parent_index)
+{
+ int i, jj;
+ int nGames = driver_list::total();
+ int start_folder = numFolders;
+ LPTREEFOLDER lpFolder = treeFolders[parent_index];
+ LPTREEFOLDER lpTemp;
+
+ // no games in top level folder
+ SetAllBits(lpFolder->m_lpGameBits,FALSE);
+
+ for (jj = 0; jj < nGames; jj++)
+ {
+ char s[100];
+ strcpy(s,driver_list::driver(jj).year);
+
+ if (s[0] == '\0')
+ continue;
+
+ // look for an extant year treefolder for this game
+ // (likely to be the previous one, so start at the end)
+ for (i=numFolders-1;i>=start_folder;i--)
+ {
+ if (strncmp(treeFolders[i]->m_lpTitle,s,5) == 0)
+ {
+ AddGame(treeFolders[i],jj);
+ break;
+ }
+ }
+ if (i == start_folder-1)
+ {
+ // nope, it's a year we haven't seen before, make it.
+ lpTemp = NewFolder(s, next_folder_id, parent_index, IDI_YEAR, GetFolderFlags(numFolders));
+ AddFolder(lpTemp);
+ AddGame(lpTemp,jj);
+ }
+ }
+ const char *fname = "Year";
+ SaveExternalFolders(parent_index, fname);
+}
+
+void CreateBIOSFolders(int parent_index)
+{
+ int i, jj;
+ int nGames = driver_list::total();
+ int start_folder = numFolders;
+ const game_driver *drv;
+ int nParentIndex = -1;
+ LPTREEFOLDER lpFolder = treeFolders[parent_index];
+ LPTREEFOLDER lpTemp;
+
+ // no games in top level folder
+ SetAllBits(lpFolder->m_lpGameBits,FALSE);
+
+ for (jj = 0; jj < nGames; jj++)
+ {
+ if ( DriverIsClone(jj) )
+ {
+ nParentIndex = GetParentIndex(&driver_list::driver(jj));
+ if (nParentIndex < 0) return;
+ drv = &driver_list::driver(nParentIndex);
+ }
+ else
+ drv = &driver_list::driver(jj);
+ nParentIndex = GetParentIndex(drv);
+
+ if (nParentIndex < 0 || !driver_list::driver(nParentIndex).type.fullname())
+ continue;
+
+ for (i = numFolders-1; i >= start_folder; i--)
+ {
+ if (strcmp(treeFolders[i]->m_lpTitle, driver_list::driver(nParentIndex).type.fullname()) == 0)
+ {
+ AddGame(treeFolders[i],jj);
+ break;
+ }
+ }
+
+ if (i == start_folder-1)
+ {
+ lpTemp = NewFolder(driver_list::driver(nParentIndex).type.fullname(), next_folder_id++, parent_index, IDI_CPU, GetFolderFlags(numFolders));
+ AddFolder(lpTemp);
+ AddGame(lpTemp,jj);
+ }
+ }
+ const char *fname = "BIOS";
+ SaveExternalFolders(parent_index, fname);
+}
+
+void CreateResolutionFolders(int parent_index)
+{
+ int i,jj;
+ int nGames = driver_list::total();
+ int start_folder = numFolders;
+ char Resolution[20];
+ LPTREEFOLDER lpFolder = treeFolders[parent_index];
+ LPTREEFOLDER lpVectorV, lpVectorH;
+ LPTREEFOLDER lpTemp;
+
+ // create our two subfolders
+ lpVectorV = NewFolder("Vector (V)", next_folder_id++, parent_index, IDI_FOLDER, GetFolderFlags(numFolders));
+ lpVectorH = NewFolder("Vector (H)", next_folder_id++, parent_index, IDI_FOLDER, GetFolderFlags(numFolders));
+ AddFolder(lpVectorV);
+ AddFolder(lpVectorH);
+
+ // no games in top level folder
+ SetAllBits(lpFolder->m_lpGameBits,FALSE);
+
+ for (jj = 0; jj < nGames; jj++)
+ {
+ machine_config config(driver_list::driver(jj), MameUIGlobal());
+ const screen_device *screen;
+ screen = config.first_screen();
+ if (screen != NULL)
+ {
+ const rectangle &visarea = screen->visible_area();
+
+ if (DriverIsVector(jj))
+ {
+ if (driver_list::driver(jj).flags & ORIENTATION_SWAP_XY)
+ {
+ AddGame(lpVectorV,jj);
+ }
+ else
+ {
+ AddGame(lpVectorH,jj);
+ }
+ }
+ else
+ if (driver_list::driver(jj).flags & ORIENTATION_SWAP_XY)
+ {
+ sprintf(Resolution, "%dx%d (V)",
+ visarea.max_y - visarea.min_y + 1,
+ visarea.max_x - visarea.min_x + 1);
+ }
+ else
+ {
+ sprintf(Resolution, "%dx%d (H)",
+ visarea.max_x - visarea.min_x + 1,
+ visarea.max_y - visarea.min_y + 1);
+ }
+
+ for (i=numFolders-1;i>=start_folder;i--)
+ {
+ if (strcmp(treeFolders[i]->m_lpTitle, Resolution) == 0)
+ {
+ AddGame(treeFolders[i],jj);
+ break;
+ }
+ }
+ if (i == start_folder-1)
+ {
+ lpTemp = NewFolder(Resolution, next_folder_id++, parent_index, IDI_FOLDER, GetFolderFlags(numFolders));
+ AddFolder(lpTemp);
+ AddGame(lpTemp,jj);
+ }
+ }
+ }
+ const char *fname = "Resolution";
+ SaveExternalFolders(parent_index, fname);
+}
+
+void CreateFPSFolders(int parent_index)
+{
+ int i, jj;
+ int nGames = driver_list::total();
+ int nFolder = numFolders;
+ LPTREEFOLDER lpFolder = treeFolders[parent_index];
+ LPTREEFOLDER map[256];
+ LPTREEFOLDER lpTemp;
+ float fps[256];
+ int nFPS = 0;
+
+ // no games in top level folder
+ SetAllBits(lpFolder->m_lpGameBits,FALSE);
+
+ for (i = 0; i < nGames; i++)
+ {
+ float f;
+ machine_config config(driver_list::driver(i), MameUIGlobal());
+ const screen_device *screen;
+ screen = config.first_screen();
+ if (screen != NULL)
+ {
+ f = ATTOSECONDS_TO_HZ(screen->refresh_attoseconds());
+
+ for (jj = 0; jj < nFPS; jj++)
+ if (fps[jj] == f)
+ break;
+
+ if (nFPS == jj)
+ {
+ char buf[50];
+
+ assert(nFPS + 1 < ARRAY_LENGTH(fps));
+ assert(nFPS + 1 < ARRAY_LENGTH(map));
+
+ sprintf(buf, "%f Hz", f);
+
+ lpTemp = NewFolder(buf, next_folder_id++, parent_index, IDI_FOLDER, GetFolderFlags(numFolders));
+ AddFolder(lpTemp);
+ map[nFPS] = treeFolders[nFolder++];
+ fps[nFPS++] = f;
+ }
+
+ AddGame(map[jj],i);
+ }
+ }
+ const char *fname = "Refresh";
+ SaveExternalFolders(parent_index, fname);
+}
+
+// adds these folders to the treeview
+void ResetTreeViewFolders(void)
+{
+ HWND hTreeView = GetTreeView();
+ int i;
+ TVITEM tvi;
+ TVINSERTSTRUCT tvs;
+ BOOL res;
+
+ HTREEITEM shti; // for current child branches
+
+ // currently "cached" parent
+ HTREEITEM hti_parent = NULL;
+ int index_parent = -1;
+
+ res = TreeView_DeleteAllItems(hTreeView);
+
+ //dprintf("Adding folders to tree ui indices %i to %i\n",start_index,end_index);
+
+ tvs.hInsertAfter = TVI_SORT;
+
+ for (i=0;i<numFolders;i++)
+ {
+ LPTREEFOLDER lpFolder = treeFolders[i];
+
+ if (lpFolder->m_nParent == -1)
+ {
+ if (lpFolder->m_nFolderId < MAX_FOLDERS)
+ {
+ // it's a built in folder, let's see if we should show it
+ if (GetShowFolder(lpFolder->m_nFolderId) == FALSE)
+ {
+ continue;
+ }
+ }
+
+ tvi.mask = TVIF_TEXT | TVIF_PARAM | TVIF_IMAGE | TVIF_SELECTEDIMAGE;
+ tvs.hParent = TVI_ROOT;
+ tvi.pszText = lpFolder->m_lptTitle;
+ tvi.lParam = (LPARAM)lpFolder;
+ tvi.iImage = GetTreeViewIconIndex(lpFolder->m_nIconId);
+ tvi.iSelectedImage = 0;
+
+ tvs.item = tvi;
+
+ // Add root branch
+ hti_parent = TreeView_InsertItem(hTreeView, &tvs);
+
+ continue;
+ }
+
+ // not a top level branch, so look for parent
+ if (treeFolders[i]->m_nParent != index_parent)
+ {
+
+ hti_parent = TreeView_GetRoot(hTreeView);
+ while (1)
+ {
+ if (hti_parent == NULL)
+ {
+ // couldn't find parent folder, so it's a built-in but
+ // not shown folder
+ break;
+ }
+
+ tvi.hItem = hti_parent;
+ tvi.mask = TVIF_PARAM;
+ res = TreeView_GetItem(hTreeView,&tvi);
+ if (((LPTREEFOLDER)tvi.lParam) == treeFolders[treeFolders[i]->m_nParent])
+ break;
+
+ hti_parent = TreeView_GetNextSibling(hTreeView,hti_parent);
+ }
+
+ // if parent is not shown, then don't show the child either obviously!
+ if (hti_parent == NULL)
+ continue;
+
+ index_parent = treeFolders[i]->m_nParent;
+ }
+
+ tvi.mask = TVIF_TEXT | TVIF_PARAM | TVIF_IMAGE | TVIF_SELECTEDIMAGE;
+ tvs.hParent = hti_parent;
+ tvi.iImage = GetTreeViewIconIndex(treeFolders[i]->m_nIconId);
+ tvi.iSelectedImage = 0;
+ tvi.pszText = treeFolders[i]->m_lptTitle;
+ tvi.lParam = (LPARAM)treeFolders[i];
+
+ tvs.item = tvi;
+
+ // Add it to this tree branch
+ shti = TreeView_InsertItem(hTreeView, &tvs);
+
+ }
+}
+
+void SelectTreeViewFolder(int folder_id)
+{
+ HWND hTreeView = GetTreeView();
+ HTREEITEM hti;
+ TVITEM tvi;
+ BOOL res;
+
+ memset(&tvi,0,sizeof(tvi));
+
+ hti = TreeView_GetRoot(hTreeView);
+
+ while (hti != NULL)
+ {
+ HTREEITEM hti_next;
+
+ tvi.hItem = hti;
+ tvi.mask = TVIF_PARAM;
+ res = TreeView_GetItem(hTreeView,&tvi);
+
+ if (((LPTREEFOLDER)tvi.lParam)->m_nFolderId == folder_id)
+ {
+ res = TreeView_SelectItem(hTreeView,tvi.hItem);
+ SetCurrentFolder((LPTREEFOLDER)tvi.lParam);
+ return;
+ }
+
+ hti_next = TreeView_GetChild(hTreeView,hti);
+ if (hti_next == NULL)
+ {
+ hti_next = TreeView_GetNextSibling(hTreeView,hti);
+ if (hti_next == NULL)
+ {
+ hti_next = TreeView_GetParent(hTreeView,hti);
+ if (hti_next != NULL)
+ hti_next = TreeView_GetNextSibling(hTreeView,hti_next);
+ }
+ }
+ hti = hti_next;
+ }
+
+ // could not find folder to select
+ // make sure we select something
+ tvi.hItem = TreeView_GetRoot(hTreeView);
+ tvi.mask = TVIF_PARAM;
+ res = TreeView_GetItem(hTreeView,&tvi);
+
+ res = TreeView_SelectItem(hTreeView,tvi.hItem);
+ SetCurrentFolder((LPTREEFOLDER)tvi.lParam);
+}
+
+/*
+ * Does this folder have an INI associated with it?
+ * Currently only TRUE for FOLDER_VECTOR and children
+ * of FOLDER_SOURCE.
+ */
+static BOOL FolderHasIni(LPTREEFOLDER lpFolder) {
+ if (FOLDER_VECTOR == lpFolder->m_nFolderId ||
+ FOLDER_VERTICAL == lpFolder->m_nFolderId ||
+ FOLDER_HORIZONTAL == lpFolder->m_nFolderId) {
+ return TRUE;
+ }
+ if (lpFolder->m_nParent != -1
+ && FOLDER_SOURCE == treeFolders[lpFolder->m_nParent]->m_nFolderId) {
+ return TRUE;
+ }
+ return FALSE;
+}
+
+/* Add a folder to the list. Does not allocate */
+static BOOL AddFolder(LPTREEFOLDER lpFolder)
+{
+ TREEFOLDER **tmpTree = NULL;
+ UINT oldFolderArrayLength = folderArrayLength;
+ if (numFolders + 1 >= folderArrayLength)
+ {
+ folderArrayLength += 500;
+ tmpTree = (TREEFOLDER **)malloc(sizeof(TREEFOLDER **) * folderArrayLength);
+ memcpy(tmpTree,treeFolders,sizeof(TREEFOLDER **) * oldFolderArrayLength);
+ if (treeFolders) free(treeFolders);
+ treeFolders = tmpTree;
+ }
+
+ /* Is there an folder.ini that can be edited? */
+ if (FolderHasIni(lpFolder)) {
+ lpFolder->m_dwFlags |= F_INIEDIT;
+ }
+
+ treeFolders[numFolders] = lpFolder;
+ numFolders++;
+ return TRUE;
+}
+
+/* Allocate and initialize a NEW TREEFOLDER */
+static LPTREEFOLDER NewFolder(const char *lpTitle, UINT nFolderId, int nParent, UINT nIconId, DWORD dwFlags)
+{
+ LPTREEFOLDER lpFolder = (LPTREEFOLDER)malloc(sizeof(TREEFOLDER));
+ memset(lpFolder, '\0', sizeof (TREEFOLDER));
+ lpFolder->m_lpTitle = (LPSTR)malloc(strlen(lpTitle) + 1);
+ strcpy((char *)lpFolder->m_lpTitle,lpTitle);
+ lpFolder->m_lptTitle = ui_wstring_from_utf8(lpFolder->m_lpTitle);
+ lpFolder->m_lpGameBits = NewBits(driver_list::total());
+ lpFolder->m_nFolderId = nFolderId;
+ lpFolder->m_nParent = nParent;
+ lpFolder->m_nIconId = nIconId;
+ lpFolder->m_dwFlags = dwFlags;
+ return lpFolder;
+}
+
+/* Deallocate the passed in LPTREEFOLDER */
+static void DeleteFolder(LPTREEFOLDER lpFolder)
+{
+ if (lpFolder)
+ {
+ if (lpFolder->m_lpGameBits)
+ {
+ DeleteBits(lpFolder->m_lpGameBits);
+ lpFolder->m_lpGameBits = 0;
+ }
+ free(lpFolder->m_lptTitle);
+ lpFolder->m_lptTitle = 0;
+ free(lpFolder->m_lpTitle);
+ lpFolder->m_lpTitle = 0;
+ free(lpFolder);
+ lpFolder = 0;
+ }
+}
+
+/* Can be called to re-initialize the array of treeFolders */
+BOOL InitFolders(void)
+{
+ int i = 0;
+ DWORD dwFolderFlags;
+ if (treeFolders)
+ {
+ for (i = numFolders - 1; i >= 0; i--)
+ {
+ DeleteFolder(treeFolders[i]);
+ treeFolders[i] = 0;
+ numFolders--;
+ }
+ }
+ numFolders = 0;
+ if (folderArrayLength == 0)
+ {
+ folderArrayLength = 200;
+ treeFolders = (TREEFOLDER **)malloc(sizeof(TREEFOLDER **) * folderArrayLength);
+ if (!treeFolders)
+ {
+ folderArrayLength = 0;
+ return 0;
+ }
+ else
+ memset(treeFolders,'\0', sizeof(TREEFOLDER **) * folderArrayLength);
+ }
+ // built-in top level folders
+ for (i = 0; g_lpFolderData[i].m_lpTitle; i++)
+ {
+ if (RequiredDriverCache() || (!RequiredDriverCache() && !g_lpFolderData[i].m_process))
+ {
+ LPCFOLDERDATA fData = &g_lpFolderData[i];
+ /* get the saved folder flags */
+ dwFolderFlags = GetFolderFlags(numFolders);
+ /* create the folder */
+ AddFolder(NewFolder(fData->m_lpTitle, fData->m_nFolderId, -1, fData->m_nIconId, dwFolderFlags));
+ }
+ }
+
+ numExtraFolders = InitExtraFolders();
+
+ for (i = 0; i < numExtraFolders; i++)
+ {
+ LPEXFOLDERDATA fExData = ExtraFolderData[i];
+ // OR in the saved folder flags
+ dwFolderFlags = fExData->m_dwFlags | GetFolderFlags(numFolders);
+ // create the folder, but if we are building the cache, the name must not be a pre-built one
+ int k = 0;
+ if (RequiredDriverCache())
+ for (int j = 0; g_lpFolderData[j].m_lpTitle; j++)
+ if (strcmp(fExData->m_szTitle, g_lpFolderData[j].m_lpTitle)==0)
+ k++;
+
+ if (k == 0)
+ AddFolder(NewFolder(fExData->m_szTitle,fExData->m_nFolderId,fExData->m_nParent, fExData->m_nIconId,dwFolderFlags));
+ }
+
+// creates child folders of all the top level folders, including custom ones
+ int num_top_level_folders = numFolders;
+
+ for (int i = 0; i < num_top_level_folders; i++)
+ {
+ LPTREEFOLDER lpFolder = treeFolders[i];
+ LPCFOLDERDATA lpFolderData = NULL;
+
+ for (int j = 0; g_lpFolderData[j].m_lpTitle; j++)
+ {
+ if (g_lpFolderData[j].m_nFolderId == lpFolder->m_nFolderId)
+ {
+ lpFolderData = &g_lpFolderData[j];
+ break;
+ }
+ }
+
+ if (lpFolderData)
+ {
+ if (lpFolderData->m_pfnCreateFolders)
+ {
+ if (RequiredDriverCache() && lpFolderData->m_process) // rebuild cache
+ lpFolderData->m_pfnCreateFolders(i);
+ else
+ if (!lpFolderData->m_process) // build every time (CreateDeficiencyFolders)
+ lpFolderData->m_pfnCreateFolders(i);
+ }
+ }
+ else
+ {
+ if ((lpFolder->m_dwFlags & F_CUSTOM) == 0)
+ {
+ dprintf("Internal inconsistency with non-built-in folder, but not custom\n");
+ continue;
+ }
+
+ //dprintf("Loading custom folder %i %i\n",i,lpFolder->m_nFolderId);
+
+ // load the extra folder files, which also adds children
+ if (TryAddExtraFolderAndChildren(i) == FALSE)
+ {
+ lpFolder->m_nFolderId = FOLDER_NONE;
+ }
+ }
+ }
+
+ CreateTreeIcons();
+ ResetWhichGamesInFolders();
+ ResetTreeViewFolders();
+ SelectTreeViewFolder(GetSavedFolderID());
+ LoadFolderFlags();
+ return TRUE;
+}
+
+// create iconlist and Treeview control
+static BOOL CreateTreeIcons()
+{
+ HICON hIcon;
+ INT i;
+ HINSTANCE hInst = GetModuleHandle(0);
+
+ int numIcons = ICON_MAX + numExtraIcons;
+ hTreeSmall = ImageList_Create (16, 16, ILC_COLORDDB | ILC_MASK, numIcons, numIcons);
+
+ //dprintf("Trying to load %i normal icons\n",ICON_MAX);
+ for (i = 0; i < ICON_MAX; i++)
+ {
+ hIcon = LoadIconFromFile(treeIconNames[i].lpName);
+ if (!hIcon)
+ hIcon = LoadIcon(hInst, MAKEINTRESOURCE(treeIconNames[i].nResourceID));
+
+ if (ImageList_AddIcon (hTreeSmall, hIcon) == -1)
+ {
+ ErrorMsg("Error creating icon on regular folder, %i %i",i,hIcon != NULL);
+ return FALSE;
+ }
+ }
+
+ //dprintf("Trying to load %i extra custom-folder icons\n",numExtraIcons);
+ for (i = 0; i < numExtraIcons; i++)
+ {
+ if ((hIcon = LoadIconFromFile(ExtraFolderIcons[i])) == 0)
+ hIcon = LoadIcon (hInst, MAKEINTRESOURCE(IDI_FOLDER));
+
+ if (ImageList_AddIcon(hTreeSmall, hIcon) == -1)
+ {
+ ErrorMsg("Error creating icon on extra folder, %i %i",i,hIcon != NULL);
+ return FALSE;
+ }
+ }
+
+ // Be sure that all the small icons were added.
+ if (ImageList_GetImageCount(hTreeSmall) < numIcons)
+ {
+ ErrorMsg("Error with icon list--too few images. %i %i", ImageList_GetImageCount(hTreeSmall),numIcons);
+ return FALSE;
+ }
+
+ // Be sure that all the small icons were added.
+
+ if (ImageList_GetImageCount (hTreeSmall) < ICON_MAX)
+ {
+ ErrorMsg("Error with icon list--too few images. %i < %i", ImageList_GetImageCount(hTreeSmall),(INT)ICON_MAX);
+ return FALSE;
+ }
+
+ // Associate the image lists with the list view control.
+ (void)TreeView_SetImageList(GetTreeView(), hTreeSmall, TVSIL_NORMAL);
+
+ return TRUE;
+}
+
+
+static void TreeCtrlOnPaint(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
+{
+ PAINTSTRUCT ps;
+ HDC hDC;
+ RECT rcClip, rcClient;
+ HDC memDC;
+ HBITMAP bitmap;
+ HBITMAP hOldBitmap;
+
+ HBITMAP hBackground = GetBackgroundBitmap();
+ MYBITMAPINFO *bmDesc = GetBackgroundInfo();
+
+ hDC = BeginPaint(hWnd, &ps);
+
+ GetClipBox(hDC, &rcClip);
+ GetClientRect(hWnd, &rcClient);
+
+ // Create a compatible memory DC
+ memDC = CreateCompatibleDC(hDC);
+
+ // Select a compatible bitmap into the memory DC
+ bitmap = CreateCompatibleBitmap(hDC, rcClient.right - rcClient.left, rcClient.bottom - rcClient.top);
+ hOldBitmap = (HBITMAP)SelectObject(memDC, bitmap);
+
+ // First let the control do its default drawing.
+ CallWindowProc(g_lpTreeWndProc, hWnd, uMsg, (WPARAM)memDC, 0);
+
+ // Draw bitmap in the background
+
+ {
+ HPALETTE hPAL;
+ HDC maskDC;
+ HBITMAP maskBitmap;
+ HDC tempDC;
+ HDC imageDC;
+ HBITMAP bmpImage;
+ HBITMAP hOldBmpImage;
+ HBITMAP hOldMaskBitmap;
+ HBITMAP hOldHBitmap;
+ int i, j;
+ RECT rcRoot;
+
+ // Now create a mask
+ maskDC = CreateCompatibleDC(hDC);
+
+ // Create monochrome bitmap for the mask
+ maskBitmap = CreateBitmap(rcClient.right - rcClient.left, rcClient.bottom - rcClient.top, 1, 1, NULL);
+
+ hOldMaskBitmap = (HBITMAP)SelectObject(maskDC, maskBitmap);
+ SetBkColor(memDC, GetSysColor(COLOR_WINDOW));
+
+ // Create the mask from the memory DC
+ BitBlt(maskDC, 0, 0, rcClient.right - rcClient.left,
+ rcClient.bottom - rcClient.top, memDC,
+ rcClient.left, rcClient.top, SRCCOPY);
+
+ tempDC = CreateCompatibleDC(hDC);
+ hOldHBitmap = (HBITMAP)SelectObject(tempDC, hBackground);
+
+ imageDC = CreateCompatibleDC(hDC);
+ bmpImage = CreateCompatibleBitmap(hDC, rcClient.right - rcClient.left, rcClient.bottom - rcClient.top);
+ hOldBmpImage = (HBITMAP)SelectObject(imageDC, bmpImage);
+
+ hPAL = GetBackgroundPalette();
+ if (hPAL == NULL)
+ hPAL = CreateHalftonePalette(hDC);
+
+ if (GetDeviceCaps(hDC, RASTERCAPS) & RC_PALETTE && hPAL != NULL)
+ {
+ SelectPalette(hDC, hPAL, FALSE);
+ RealizePalette(hDC);
+ SelectPalette(imageDC, hPAL, FALSE);
+ }
+
+ // Get x and y offset
+ TreeView_GetItemRect(hWnd, TreeView_GetRoot(hWnd), &rcRoot, FALSE);
+ rcRoot.left = -GetScrollPos(hWnd, SB_HORZ);
+
+ // Draw bitmap in tiled manner to imageDC
+ for (i = rcRoot.left; i < rcClient.right; i += bmDesc->bmWidth)
+ for (j = rcRoot.top; j < rcClient.bottom; j += bmDesc->bmHeight)
+ BitBlt(imageDC, i, j, bmDesc->bmWidth, bmDesc->bmHeight,
+ tempDC, 0, 0, SRCCOPY);
+
+ // Set the background in memDC to black. Using SRCPAINT with black and any other
+ // color results in the other color, thus making black the transparent color
+ SetBkColor(memDC, RGB(0,0,0));
+ SetTextColor(memDC, RGB(255,255,255));
+ BitBlt(memDC, rcClip.left, rcClip.top, rcClip.right - rcClip.left,
+ rcClip.bottom - rcClip.top,
+ maskDC, rcClip.left, rcClip.top, SRCAND);
+
+ // Set the foreground to black. See comment above.
+ SetBkColor(imageDC, RGB(255,255,255));
+ SetTextColor(imageDC, RGB(0,0,0));
+ BitBlt(imageDC, rcClip.left, rcClip.top, rcClip.right - rcClip.left,
+ rcClip.bottom - rcClip.top,
+ maskDC, rcClip.left, rcClip.top, SRCAND);
+
+ // Combine the foreground with the background
+ BitBlt(imageDC, rcClip.left, rcClip.top, rcClip.right - rcClip.left,
+ rcClip.bottom - rcClip.top,
+ memDC, rcClip.left, rcClip.top, SRCPAINT);
+
+ // Draw the final image to the screen
+ BitBlt(hDC, rcClip.left, rcClip.top, rcClip.right - rcClip.left,
+ rcClip.bottom - rcClip.top,
+ imageDC, rcClip.left, rcClip.top, SRCCOPY);
+
+ SelectObject(maskDC, hOldMaskBitmap);
+ SelectObject(tempDC, hOldHBitmap);
+ SelectObject(imageDC, hOldBmpImage);
+
+ DeleteDC(maskDC);
+ DeleteDC(imageDC);
+ DeleteDC(tempDC);
+ DeleteBitmap(bmpImage);
+ DeleteBitmap(maskBitmap);
+
+ if (GetBackgroundPalette() == NULL)
+ {
+ DeletePalette(hPAL);
+ hPAL = NULL;
+ }
+ }
+
+ SelectObject(memDC, hOldBitmap);
+ DeleteBitmap(bitmap);
+ DeleteDC(memDC);
+ EndPaint(hWnd, &ps);
+ ReleaseDC(hWnd, hDC);
+}
+
+/* Header code - Directional Arrows */
+static LRESULT CALLBACK TreeWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
+{
+ if (GetBackgroundBitmap() != NULL)
+ {
+ switch (uMsg)
+ {
+ case WM_MOUSEMOVE:
+ {
+ if (MouseHasBeenMoved())
+ ShowCursor(TRUE);
+ break;
+ }
+
+ case WM_KEYDOWN :
+ if (wParam == VK_F2)
+ {
+ if (lpCurrentFolder->m_dwFlags & F_CUSTOM)
+ {
+ TreeView_EditLabel(hWnd,TreeView_GetSelection(hWnd));
+ return TRUE;
+ }
+ }
+ break;
+
+ case WM_ERASEBKGND:
+ return TRUE;
+
+ case WM_PAINT:
+ TreeCtrlOnPaint(hWnd, uMsg, wParam, lParam);
+ UpdateWindow(hWnd);
+ break;
+ }
+ }
+
+ /* message not handled */
+ return CallWindowProc(g_lpTreeWndProc, hWnd, uMsg, wParam, lParam);
+}
+
+/*
+ * Filter code - should be moved to filter.c/filter.h
+ * Added 01/09/99 - MSH <mhaaland@hypertech.com>
+ */
+
+/* find a FOLDERDATA by folderID */
+LPCFOLDERDATA FindFilter(DWORD folderID)
+{
+ int i;
+
+ for (i = 0; g_lpFolderData[i].m_lpTitle; i++)
+ {
+ if (g_lpFolderData[i].m_nFolderId == folderID)
+ return &g_lpFolderData[i];
+ }
+ return (LPFOLDERDATA) 0;
+}
+
+
+LPTREEFOLDER GetFolderByName(int nParentId, const char *pszFolderName)
+{
+ int i = 0, nParent;
+
+ //First Get the Parent TreeviewItem
+ //Enumerate Children
+ for(i = 0; i < numFolders/* ||treeFolders[i] != NULL*/; i++)
+ {
+ if (!strcmp(treeFolders[i]->m_lpTitle, pszFolderName))
+ {
+ nParent = treeFolders[i]->m_nParent;
+ if ((nParent >= 0) && treeFolders[nParent]->m_nFolderId == nParentId)
+ return treeFolders[i];
+ }
+ }
+ return NULL;
+}
+
+static int InitExtraFolders(void)
+{
+ struct stat stat_buffer;
+ struct _finddata_t files;
+ int i, count = 0;
+ char* ext;
+ char buf[256];
+ char curdir[MAX_PATH];
+ const std::string t = GetFolderDir();
+ const char *dir = t.c_str();
+ memset(ExtraFolderData, 0, (MAX_EXTRA_FOLDERS * MAX_EXTRA_SUBFOLDERS)* sizeof(LPEXFOLDERDATA));
+
+ /* NPW 9-Feb-2003 - MSVC stat() doesn't like stat() called with an empty string */
+ if (!dir)
+ dir = ".";
+
+ // Why create the directory if it doesn't exist, just return 0 folders.
+ if (stat(dir, &stat_buffer) != 0)
+ return 0; // _mkdir(dir);
+
+ _getcwd(curdir, MAX_PATH);
+
+ chdir(dir);
+
+ long hLong = _findfirst("*", &files);
+
+ for (i = 0; i < MAX_EXTRA_FOLDERS; i++)
+ ExtraFolderIcons[i] = NULL;
+
+ numExtraIcons = 0;
+
+ while (!_findnext(hLong, &files))
+ {
+ if ((files.attrib & _A_SUBDIR) == 0)
+ {
+ FILE *fp;
+
+ fp = fopen(files.name, "r");
+ if (fp != NULL)
+ {
+ int icon[2] = { 0, 0 };
+ char *p, *name;
+
+ while (fgets(buf, 256, fp))
+ {
+ if (buf[0] == '[')
+ {
+ p = strchr(buf, ']');
+ if (p == NULL)
+ continue;
+
+ *p = '\0';
+ name = &buf[1];
+ if (!strcmp(name, "FOLDER_SETTINGS"))
+ {
+ while (fgets(buf, 256, fp))
+ {
+ name = strtok(buf, " =\r\n");
+ if (name == NULL)
+ break;
+
+ if (!strcmp(name, "RootFolderIcon"))
+ {
+ name = strtok(NULL, " =\r\n");
+ if (name != NULL)
+ SetExtraIcons(name, &icon[0]);
+ }
+ if (!strcmp(name, "SubFolderIcon"))
+ {
+ name = strtok(NULL, " =\r\n");
+ if (name != NULL)
+ SetExtraIcons(name, &icon[1]);
+ }
+ }
+ break;
+ }
+ }
+ }
+ fclose(fp);
+
+ strcpy(buf, files.name);
+ ext = strrchr(buf, '.');
+
+ if (ext && *(ext + 1) && !core_stricmp(ext + 1, "ini"))
+ {
+ ExtraFolderData[count] =(EXFOLDERDATA*) malloc(sizeof(EXFOLDERDATA));
+ if (ExtraFolderData[count])
+ {
+ *ext = '\0';
+
+ memset(ExtraFolderData[count], 0, sizeof(EXFOLDERDATA));
+
+ strncpy(ExtraFolderData[count]->m_szTitle, buf, 63);
+ ExtraFolderData[count]->m_nFolderId = next_folder_id++;
+ ExtraFolderData[count]->m_nParent = -1;
+ ExtraFolderData[count]->m_dwFlags = F_CUSTOM;
+ ExtraFolderData[count]->m_nIconId = icon[0] ? -icon[0] : IDI_FOLDER;
+ ExtraFolderData[count]->m_nSubIconId = icon[1] ? -icon[1] : IDI_FOLDER;
+ //dprintf("extra folder with icon %i, subicon %i\n",
+ //ExtraFolderData[count]->m_nIconId,
+ //ExtraFolderData[count]->m_nSubIconId);
+ count++;
+ }
+ }
+ }
+ }
+ }
+
+ chdir(curdir);
+ return count;
+}
+
+void FreeExtraFolders(void)
+{
+ int i;
+
+ for (i = 0; i < numExtraFolders; i++)
+ {
+ if (ExtraFolderData[i])
+ {
+ free(ExtraFolderData[i]);
+ ExtraFolderData[i] = NULL;
+ }
+ }
+
+ for (i = 0; i < numExtraIcons; i++)
+ {
+ free(ExtraFolderIcons[i]);
+ }
+
+ numExtraIcons = 0;
+
+}
+
+
+static void SetExtraIcons(char *name, int *id)
+{
+ char *p = strchr(name, '.');
+
+ if (p != NULL)
+ *p = '\0';
+
+ ExtraFolderIcons[numExtraIcons] = (char*)malloc(strlen(name) + 1);
+ if (ExtraFolderIcons[numExtraIcons])
+ {
+ *id = ICON_MAX + numExtraIcons;
+ strcpy(ExtraFolderIcons[numExtraIcons], name);
+ numExtraIcons++;
+ }
+}
+
+
+// Called to add child folders of the top level extra folders already created
+BOOL TryAddExtraFolderAndChildren(int parent_index)
+{
+ FILE* fp = NULL;
+ char fname[MAX_PATH];
+ char readbuf[256];
+ char* p;
+ char* name;
+ int id, current_id, i;
+ LPTREEFOLDER lpTemp = NULL;
+ LPTREEFOLDER lpFolder = treeFolders[parent_index];
+
+ current_id = lpFolder->m_nFolderId;
+
+ id = lpFolder->m_nFolderId - MAX_FOLDERS;
+
+ /* "folder\title.ini" */
+
+ const std::string t = GetFolderDir();
+ sprintf( fname, "%s\\%s.ini", t.c_str(), ExtraFolderData[id]->m_szTitle);
+
+ fp = fopen(fname, "r");
+ if (fp == NULL)
+ return FALSE;
+
+ while ( fgets(readbuf, 256, fp) )
+ {
+ /* do we have [...] ? */
+
+ if (readbuf[0] == '[')
+ {
+ p = strchr(readbuf, ']');
+ if (p == NULL)
+ {
+ continue;
+ }
+
+ *p = '\0';
+ name = &readbuf[1];
+
+ /* is it [FOLDER_SETTINGS]? */
+
+ if (strcmp(name, "FOLDER_SETTINGS") == 0)
+ {
+ current_id = -1;
+ continue;
+ }
+ else
+ {
+ /* it it [ROOT_FOLDER]? */
+
+ if (!strcmp(name, "ROOT_FOLDER"))
+ {
+ current_id = lpFolder->m_nFolderId;
+ lpTemp = lpFolder;
+
+ }
+ else
+ {
+ /* must be [folder name] */
+
+ current_id = next_folder_id++;
+ /* create a new folder with this name,
+ and the flags for this folder as read from the registry */
+ lpTemp = NewFolder(name,current_id,parent_index,
+ ExtraFolderData[id]->m_nSubIconId,
+ GetFolderFlags(numFolders) | F_CUSTOM);
+ ExtraFolderData[current_id] = (EXFOLDERDATA*)malloc(sizeof(EXFOLDERDATA));
+ memset(ExtraFolderData[current_id], 0, sizeof(EXFOLDERDATA));
+
+ ExtraFolderData[current_id]->m_nFolderId = current_id - MAX_EXTRA_FOLDERS;
+ ExtraFolderData[current_id]->m_nIconId = ExtraFolderData[id]->m_nSubIconId;
+ ExtraFolderData[current_id]->m_nParent = ExtraFolderData[id]->m_nFolderId;
+ ExtraFolderData[current_id]->m_nSubIconId = -1;
+ strcpy( ExtraFolderData[current_id]->m_szTitle, name );
+ ExtraFolderData[current_id]->m_dwFlags = ExtraFolderData[id]->m_dwFlags;
+ AddFolder(lpTemp);
+ }
+ }
+ }
+ else if (current_id != -1)
+ {
+ /* string on a line by itself -- game name */
+
+ name = strtok(readbuf, " \t\r\n");
+ if (name == NULL)
+ {
+ current_id = -1;
+ continue;
+ }
+
+ /* IMPORTANT: This assumes that all driver names are lowercase! */
+ for (i = 0; name[i]; i++)
+ name[i] = tolower(name[i]);
+
+ if (lpTemp == NULL)
+ {
+ ErrorMsg("Error parsing %s: missing [folder name] or [ROOT_FOLDER]", fname);
+ current_id = lpFolder->m_nFolderId;
+ lpTemp = lpFolder;
+ }
+ AddGame(lpTemp,GetGameNameIndex(name));
+ }
+ }
+
+ if ( fp )
+ {
+ fclose( fp );
+ }
+
+ return TRUE;
+}
+
+
+void GetFolders(TREEFOLDER ***folders,int *num_folders)
+{
+ *folders = treeFolders;
+ *num_folders = numFolders;
+}
+
+static BOOL TryRenameCustomFolderIni(LPTREEFOLDER lpFolder,const char *old_name,const char *new_name)
+{
+ char filename[MAX_PATH];
+ char new_filename[MAX_PATH];
+ LPTREEFOLDER lpParent = NULL;
+ if (lpFolder->m_nParent >= 0)
+ {
+ //it is a custom SubFolder
+ lpParent = GetFolder( lpFolder->m_nParent );
+ if( lpParent )
+ {
+ snprintf(filename,ARRAY_LENGTH(filename),"%s\\%s\\%s.ini",GetIniDir(),lpParent->m_lpTitle, old_name );
+ snprintf(new_filename,ARRAY_LENGTH(new_filename),"%s\\%s\\%s.ini",GetIniDir(),lpParent->m_lpTitle, new_name );
+ win_move_file_utf8(filename,new_filename);
+ }
+ }
+ else
+ {
+ //Rename the File, if it exists
+ snprintf(filename,ARRAY_LENGTH(filename),"%s\\%s.ini",GetIniDir(),old_name );
+ snprintf(new_filename,ARRAY_LENGTH(new_filename),"%s\\%s.ini",GetIniDir(), new_name );
+ win_move_file_utf8(filename,new_filename);
+ //Rename the Directory, if it exists
+ snprintf(filename,ARRAY_LENGTH(filename),"%s\\%s",GetIniDir(),old_name );
+ snprintf(new_filename,ARRAY_LENGTH(new_filename),"%s\\%s",GetIniDir(), new_name );
+ win_move_file_utf8(filename,new_filename);
+ }
+ return TRUE;
+}
+
+BOOL TryRenameCustomFolder(LPTREEFOLDER lpFolder, const char *new_name)
+{
+ BOOL retval;
+ char filename[MAX_PATH];
+ char new_filename[MAX_PATH];
+
+ if (lpFolder->m_nParent >= 0)
+ {
+ // a child extra folder was renamed, so do the rename and save the parent
+
+ // save old title
+ char *old_title = lpFolder->m_lpTitle;
+
+ // set new title
+ lpFolder->m_lpTitle = (char *)malloc(strlen(new_name) + 1);
+ strcpy(lpFolder->m_lpTitle,new_name);
+
+ // try to save
+ if (TrySaveExtraFolder(lpFolder) == FALSE)
+ {
+ // failed, so free newly allocated title and restore old
+ free(lpFolder->m_lpTitle);
+ lpFolder->m_lpTitle = old_title;
+ return FALSE;
+ }
+ TryRenameCustomFolderIni(lpFolder, old_title, new_name);
+ // successful, so free old title
+ free(old_title);
+ return TRUE;
+ }
+
+ // a parent extra folder was renamed, so rename the file
+
+ const std::string t = GetFolderDir();
+ snprintf(new_filename,ARRAY_LENGTH(new_filename),"%s\\%s.ini", t.c_str(), new_name);
+ snprintf(filename,ARRAY_LENGTH(filename),"%s\\%s.ini", t.c_str(), lpFolder->m_lpTitle);
+
+ retval = win_move_file_utf8(filename,new_filename);
+
+ if (retval)
+ {
+ TryRenameCustomFolderIni(lpFolder, lpFolder->m_lpTitle, new_name);
+ free(lpFolder->m_lpTitle);
+ lpFolder->m_lpTitle = (char *)malloc(strlen(new_name) + 1);
+ strcpy(lpFolder->m_lpTitle,new_name);
+ }
+ else
+ {
+ char buf[500];
+ snprintf(buf,ARRAY_LENGTH(buf),"Error while renaming custom file %s to %s", filename,new_filename);
+ win_message_box_utf8(GetMainWindow(), buf, MAMEUINAME, MB_OK | MB_ICONERROR);
+ }
+ return retval;
+}
+
+void AddToCustomFolder(LPTREEFOLDER lpFolder,int driver_index)
+{
+ if ((lpFolder->m_dwFlags & F_CUSTOM) == 0)
+ {
+ win_message_box_utf8(GetMainWindow(),"Unable to add game to non-custom folder",
+ MAMEUINAME,MB_OK | MB_ICONERROR);
+ return;
+ }
+
+ if (TestBit(lpFolder->m_lpGameBits,driver_index) == 0)
+ {
+ AddGame(lpFolder,driver_index);
+ if (TrySaveExtraFolder(lpFolder) == FALSE)
+ RemoveGame(lpFolder,driver_index); // undo on error
+ }
+}
+
+void RemoveFromCustomFolder(LPTREEFOLDER lpFolder,int driver_index)
+{
+ if ((lpFolder->m_dwFlags & F_CUSTOM) == 0)
+ {
+ win_message_box_utf8(GetMainWindow(),"Unable to remove game from non-custom folder",
+ MAMEUINAME,MB_OK | MB_ICONERROR);
+ return;
+ }
+
+ if (TestBit(lpFolder->m_lpGameBits,driver_index) != 0)
+ {
+ RemoveGame(lpFolder,driver_index);
+ if (TrySaveExtraFolder(lpFolder) == FALSE)
+ AddGame(lpFolder,driver_index); // undo on error
+ }
+}
+
+BOOL TrySaveExtraFolder(LPTREEFOLDER lpFolder)
+{
+ char fname[MAX_PATH];
+ FILE *fp;
+ BOOL error = FALSE;
+ int i,j;
+
+ LPTREEFOLDER root_folder = NULL;
+ LPEXFOLDERDATA extra_folder = NULL;
+
+ for (i=0;i<numExtraFolders;i++)
+ {
+ if (ExtraFolderData[i]->m_nFolderId == lpFolder->m_nFolderId)
+ {
+ root_folder = lpFolder;
+ extra_folder = ExtraFolderData[i];
+ break;
+ }
+
+ if (lpFolder->m_nParent >= 0 &&
+ ExtraFolderData[i]->m_nFolderId == treeFolders[lpFolder->m_nParent]->m_nFolderId)
+ {
+ root_folder = treeFolders[lpFolder->m_nParent];
+ extra_folder = ExtraFolderData[i];
+ break;
+ }
+ }
+
+ if (extra_folder == NULL || root_folder == NULL)
+ {
+ MessageBox(GetMainWindow(), TEXT("Error finding custom file name to save"), (LPCTSTR)MAMEUINAME, MB_OK | MB_ICONERROR);
+ return FALSE;
+ }
+ /* "folder\title.ini" */
+
+ const std::string t = GetFolderDir();
+ snprintf( fname, sizeof(fname), "%s\\%s.ini", t.c_str(), extra_folder->m_szTitle);
+
+ fp = fopen(fname, "wt");
+ if (fp == NULL)
+ error = TRUE;
+ else
+ {
+ TREEFOLDER *folder_data;
+
+
+ fprintf(fp,"[FOLDER_SETTINGS]\n");
+ // negative values for icons means it's custom, so save 'em
+ if (extra_folder->m_nIconId < 0)
+ {
+ fprintf(fp, "RootFolderIcon %s\n", ExtraFolderIcons[(-extra_folder->m_nIconId) - ICON_MAX]);
+ }
+ if (extra_folder->m_nSubIconId < 0)
+ {
+ fprintf(fp,"SubFolderIcon %s\n", ExtraFolderIcons[(-extra_folder->m_nSubIconId) - ICON_MAX]);
+ }
+
+ /* need to loop over all our TREEFOLDERs--first the root one, then each child.
+ start with the root */
+
+ folder_data = root_folder;
+
+ fprintf(fp,"\n[ROOT_FOLDER]\n");
+
+ for (i=0;i<driver_list::total();i++)
+ {
+ if (TestBit(folder_data->m_lpGameBits, i))
+ {
+ fprintf(fp,"%s\n",driver_list::driver(i).name);
+ }
+ }
+
+ /* look through the custom folders for ones with our root as parent */
+ for (j=0;j<numFolders;j++)
+ {
+ folder_data = treeFolders[j];
+
+ if (folder_data->m_nParent >= 0 &&
+ treeFolders[folder_data->m_nParent] == root_folder)
+ {
+ fprintf(fp,"\n[%s]\n",folder_data->m_lpTitle);
+
+ for (i=0;i<driver_list::total();i++)
+ {
+ if (TestBit(folder_data->m_lpGameBits, i))
+ {
+ fprintf(fp,"%s\n",driver_list::driver(i).name);
+ }
+ }
+ }
+ }
+ if (fclose(fp) != 0)
+ error = TRUE;
+ }
+
+ if (error)
+ {
+ char buf[500];
+ snprintf(buf,ARRAY_LENGTH(buf),"Error while saving custom file %s",fname);
+ win_message_box_utf8(GetMainWindow(), buf, MAMEUINAME, MB_OK | MB_ICONERROR);
+ }
+ return !error;
+}
+
+HIMAGELIST GetTreeViewIconList(void)
+{
+ return hTreeSmall;
+}
+
+int GetTreeViewIconIndex(int icon_id)
+{
+ int i;
+
+ if (icon_id < 0)
+ return -icon_id;
+
+ for (i = 0; i < ARRAY_LENGTH(treeIconNames); i++)
+ {
+ if (icon_id == treeIconNames[i].nResourceID)
+ return i;
+ }
+
+ return -1;
+}
+
+static void SaveExternalFolders(int parent_index, const char *fname)
+{
+ string val = GetFolderDir();
+ char s[val.size()+1];
+ strcpy(s, val.c_str());
+ char *fdir = strtok(s, ";"); // get first dir
+
+ // create directory if needed
+ wchar_t *temp = ui_wstring_from_utf8(fdir);
+ BOOL res = CreateDirectory(temp, NULL);
+ free(temp);
+ if (!res)
+ {
+ if (GetLastError() == ERROR_PATH_NOT_FOUND)
+ {
+ printf("SaveExternalFolders: Unable to create the directory \"%s\".\n",fdir);
+ return;
+ }
+ }
+
+ // create/truncate file
+ string filename = fdir + string("\\") + fname + string(".ini");
+ FILE *f = fopen(filename.c_str(), "w");
+ if (f == NULL)
+ {
+ printf("SaveExternalFolders: Unable to open file %s for writing.\n",filename.c_str());
+ return;
+ }
+
+ // Populate the file
+ fprintf(f, "[FOLDER_SETTINGS]\n");
+ fprintf(f, "RootFolderIcon custom\n");
+ fprintf(f, "SubFolderIcon custom\n");
+
+ /* need to loop over all our TREEFOLDERs--first the root one, then each child.
+ start with the root */
+ LPTREEFOLDER lpFolder = treeFolders[parent_index];
+ TREEFOLDER *folder_data = lpFolder;
+ fprintf(f, "\n[ROOT_FOLDER]\n");
+
+ int i;
+ for (i = 0; i < driver_list::total(); i++)
+ {
+ if (TestBit(folder_data->m_lpGameBits, i))
+ fprintf(f, "%s\n", GetGameName(i).c_str());
+ }
+
+ /* look through the custom folders for ones with our root as parent */
+ for (int jj = 0; jj < numFolders; jj++)
+ {
+ folder_data = treeFolders[jj];
+
+ if (folder_data->m_nParent >= 0 && treeFolders[folder_data->m_nParent] == lpFolder)
+ {
+ fprintf(f, "\n[%s]\n", folder_data->m_lpTitle);
+
+ for (i = 0; i < driver_list::total(); i++)
+ {
+ if (TestBit(folder_data->m_lpGameBits, i))
+ fprintf(f, "%s\n", GetGameName(i).c_str());
+ }
+ }
+ }
+
+ fclose(f);
+ printf("SaveExternalFolders: Saved file %s.\n",filename.c_str());
+}
+
+/* End of source file */
diff --git a/src/osd/winui/treeview.h b/src/osd/winui/treeview.h
new file mode 100644
index 00000000000..5641010c14c
--- /dev/null
+++ b/src/osd/winui/treeview.h
@@ -0,0 +1,212 @@
+// For licensing and usage information, read docs/winui_license.txt
+//****************************************************************************
+// NOTE: ifdef MESS doesn't work here
+#ifndef TREEVIEW_H
+#define TREEVIEW_H
+
+/* corrections for commctrl.h */
+
+#if defined(__GNUC__)
+/* fix warning: cast does not match function type */
+#undef TreeView_InsertItem
+#define TreeView_InsertItem(w,i) (HTREEITEM)(LRESULT)(int)SendMessage((w),TVM_INSERTITEM,0,(LPARAM)(LPTV_INSERTSTRUCT)(i))
+
+#undef TreeView_SetImageList
+#define TreeView_SetImageList(w,h,i) (HIMAGELIST)(LRESULT)(int)SendMessage((w),TVM_SETIMAGELIST,i,(LPARAM)(HIMAGELIST)(h))
+
+#undef TreeView_GetNextItem
+#define TreeView_GetNextItem(w,i,c) (HTREEITEM)(LRESULT)(int)SendMessage((w),TVM_GETNEXTITEM,c,(LPARAM)(HTREEITEM)(i))
+
+#undef TreeView_HitTest
+#define TreeView_HitTest(hwnd, lpht) \
+ (HTREEITEM)(LRESULT)(int)SNDMSG((hwnd), TVM_HITTEST, 0, (LPARAM)(LPTV_HITTESTINFO)(lpht))
+
+/* fix wrong return type */
+#undef TreeView_Select
+#define TreeView_Select(w,i,c) (BOOL)(int)SendMessage((w),TVM_SELECTITEM,c,(LPARAM)(HTREEITEM)(i))
+
+#undef TreeView_EditLabel
+#define TreeView_EditLabel(w, i) \
+ SNDMSG(w,TVM_EDITLABEL,0,(LPARAM)(i))
+
+#endif /* defined(__GNUC__) */
+#include "bitmask.h"
+#include <stdint.h>
+
+/***************************************************************************
+ Folder And Filter Definitions
+ ***************************************************************************/
+
+typedef struct
+{
+ const char *m_lpTitle; // Folder Title
+ const char *short_name; // for saving in the .ini
+ UINT m_nFolderId; // ID
+ UINT m_nIconId; // if >= 0, resource id of icon (IDI_xxx), otherwise index in image list
+ DWORD m_dwUnset; // Excluded filters
+ DWORD m_dwSet; // Implied filters
+ BOOL m_process; // 1 = process only if rebuilding the cache
+ void (*m_pfnCreateFolders)(int parent_index); // Constructor for special folders
+ BOOL (*m_pfnQuery)(uint32_t nDriver); // Query function
+ BOOL m_bExpectedResult; // Expected query result
+} FOLDERDATA, *LPFOLDERDATA;
+
+typedef const FOLDERDATA *LPCFOLDERDATA;
+
+typedef struct
+{
+ DWORD m_dwFilterType; /* Filter value */
+ DWORD m_dwCtrlID; /* Control ID that represents it */
+ BOOL (*m_pfnQuery)(uint32_t nDriver); /* Query function */
+ BOOL m_bExpectedResult; /* Expected query result */
+} FILTER_ITEM, *LPFILTER_ITEM;
+
+typedef const FILTER_ITEM *LPCFILTER_ITEM;
+
+/***************************************************************************
+ Functions to build builtin folder lists
+ ***************************************************************************/
+
+void CreateManufacturerFolders(int parent_index);
+void CreateYearFolders(int parent_index);
+void CreateSourceFolders(int parent_index);
+void CreateScreenFolders(int parent_index);
+void CreateResolutionFolders(int parent_index);
+void CreateFPSFolders(int parent_index);
+void CreateBIOSFolders(int parent_index);
+void CreateCPUFolders(int parent_index);
+void CreateSoundFolders(int parent_index);
+void CreateOrientationFolders(int parent_index);
+void CreateDeficiencyFolders(int parent_index);
+void CreateDumpingFolders(int parent_index);
+
+/***************************************************************************/
+
+#define MAX_EXTRA_FOLDERS 256
+#define MAX_EXTRA_SUBFOLDERS 256
+
+/* TreeView structures */
+enum
+{
+ FOLDER_NONE = 0,
+ FOLDER_ALLGAMES,
+ FOLDER_AVAILABLE,
+ FOLDER_BIOS,
+ FOLDER_CLONES,
+ FOLDER_COMPUTER,
+ FOLDER_CONSOLE,
+ FOLDER_CPU,
+ FOLDER_DEFICIENCY,
+ FOLDER_DUMPING,
+ FOLDER_FPS,
+ FOLDER_HARDDISK,
+ FOLDER_HORIZONTAL,
+ FOLDER_LIGHTGUN,
+ FOLDER_MANUFACTURER,
+ FOLDER_MECHANICAL,
+ FOLDER_MODIFIED,
+ FOLDER_MOUSE,
+ FOLDER_NONMECHANICAL,
+ FOLDER_NONWORKING,
+ FOLDER_ORIGINAL,
+ FOLDER_RASTER,
+ FOLDER_RESOLUTION,
+ FOLDER_SAMPLES,
+ FOLDER_SAVESTATE,
+ FOLDER_SCREENS,
+ FOLDER_SND,
+ FOLDER_SOURCE,
+ FOLDER_STEREO,
+ FOLDER_TRACKBALL,
+ FOLDER_UNAVAILABLE,
+ FOLDER_VECTOR,
+ FOLDER_VERTICAL,
+ FOLDER_WORKING,
+ FOLDER_YEAR,
+ MAX_FOLDERS,
+};
+
+typedef enum
+{
+ F_CLONES = 0x00000001,
+ F_NONWORKING = 0x00000002,
+ F_UNAVAILABLE = 0x00000004,
+ F_VECTOR = 0x00000008,
+ F_RASTER = 0x00000010,
+ F_ORIGINALS = 0x00000020,
+ F_WORKING = 0x00000040,
+ F_AVAILABLE = 0x00000080,
+ F_HORIZONTAL = 0x00000100,
+ F_VERTICAL = 0x00000200,
+ F_MECHANICAL = 0x00000400,
+ F_ARCADE = 0x00000800,
+ F_MESS = 0x00001000,
+ F_COMPUTER = 0x00002000,
+ F_CONSOLE = 0x00004000,
+ F_MODIFIED = 0x00008000,
+ F_MASK = 0x0000FFFF,
+ F_INIEDIT = 0x00010000, // There is an .ini that can be edited. MSH 20070811
+ F_CUSTOM = 0x01000000 // for current .ini custom folders
+} FOLDERFLAG;
+
+typedef struct
+{
+ LPSTR m_lpTitle; // String contains the folder name
+ LPTSTR m_lptTitle; // String contains the folder name as TCHAR*
+ UINT m_nFolderId; // Index / Folder ID number
+ int m_nParent; // Parent folder index in treeFolders[]
+ int m_nIconId; // negative icon index into the ImageList, or IDI_xxx resource id
+ DWORD m_dwFlags; // Misc flags
+ LPBITS m_lpGameBits; // Game bits, represent game indices
+} TREEFOLDER, *LPTREEFOLDER;
+
+typedef struct
+{
+ char m_szTitle[64]; // Folder Title
+ UINT m_nFolderId; // ID
+ int m_nParent; // Parent Folder index in treeFolders[]
+ DWORD m_dwFlags; // Flags - Customizable and Filters
+ int m_nIconId; // negative icon index into the ImageList, or IDI_xxx resource id
+ int m_nSubIconId; // negative icon index into the ImageList, or IDI_xxx resource id
+} EXFOLDERDATA, *LPEXFOLDERDATA;
+
+void FreeFolders(void);
+void ResetFilters(void);
+void InitTree(LPCFOLDERDATA lpFolderData, LPCFILTER_ITEM lpFilterList);
+void SetCurrentFolder(LPTREEFOLDER lpFolder);
+UINT GetCurrentFolderID(void);
+
+LPTREEFOLDER GetCurrentFolder(void);
+int GetNumFolders(void);
+LPTREEFOLDER GetFolder(UINT nFolder);
+LPTREEFOLDER GetFolderByID(UINT nID);
+LPTREEFOLDER GetFolderByName(int nParentId, const char *pszFolderName);
+
+void AddGame(LPTREEFOLDER lpFolder, UINT nGame);
+void RemoveGame(LPTREEFOLDER lpFolder, UINT nGame);
+int FindGame(LPTREEFOLDER lpFolder, int nGame);
+
+void ResetWhichGamesInFolders(void);
+
+LPCFOLDERDATA FindFilter(DWORD folderID);
+
+BOOL GameFiltered(int nGame, DWORD dwFlags);
+BOOL GetParentFound(int nGame);
+
+LPCFILTER_ITEM GetFilterList(void);
+
+void SetTreeIconSize(HWND hWnd, BOOL bLarge);
+BOOL GetTreeIconSize(void);
+
+void GetFolders(TREEFOLDER ***folders,int *num_folders);
+BOOL TryRenameCustomFolder(LPTREEFOLDER lpFolder,const char *new_name);
+void AddToCustomFolder(LPTREEFOLDER lpFolder,int driver_index);
+void RemoveFromCustomFolder(LPTREEFOLDER lpFolder,int driver_index);
+
+HIMAGELIST GetTreeViewIconList(void);
+int GetTreeViewIconIndex(int icon_id);
+
+void ResetTreeViewFolders(void);
+void SelectTreeViewFolder(int folder_id);
+
+#endif /* TREEVIEW_H */
diff --git a/src/osd/winui/ui_opts.h b/src/osd/winui/ui_opts.h
new file mode 100644
index 00000000000..67567c1db90
--- /dev/null
+++ b/src/osd/winui/ui_opts.h
@@ -0,0 +1,367 @@
+// For licensing and usage information, read docs/winui_license.txt
+// MASTER
+//****************************************************************************
+
+#ifndef WINUI_UIOPTS_H
+#define WINUI_UIOPTS_H
+
+#define MUIOPTION_OVERRIDE_REDX "override_redx"
+#define MUIOPTION_LIST_MODE "list_mode"
+#define MUIOPTION_CHECK_GAME "check_game"
+#define MUIOPTION_JOYSTICK_IN_INTERFACE "joystick_in_interface"
+#define MUIOPTION_KEYBOARD_IN_INTERFACE "keyboard_in_interface"
+#define MUIOPTION_CYCLE_SCREENSHOT "cycle_screenshot"
+#define MUIOPTION_STRETCH_SCREENSHOT_LARGER "stretch_screenshot_larger"
+#define MUIOPTION_SCREENSHOT_BORDER_SIZE "screenshot_bordersize"
+#define MUIOPTION_SCREENSHOT_BORDER_COLOR "screenshot_bordercolor"
+#define MUIOPTION_INHERIT_FILTER "inherit_filter"
+#define MUIOPTION_OFFSET_CLONES "offset_clones"
+#define MUIOPTION_DEFAULT_FOLDER_ID "default_folder_id"
+#define MUIOPTION_HIDE_FOLDERS "hide_folders"
+#define MUIOPTION_SHOW_STATUS_BAR "show_status_bar"
+#define MUIOPTION_SHOW_TABS "show_tabs"
+#define MUIOPTION_SHOW_TOOLBAR "show_tool_bar"
+#define MUIOPTION_CURRENT_TAB "current_tab"
+#define MUIOPTION_WINDOW_X "window_x"
+#define MUIOPTION_WINDOW_Y "window_y"
+#define MUIOPTION_WINDOW_WIDTH "window_width"
+#define MUIOPTION_WINDOW_HEIGHT "window_height"
+#define MUIOPTION_WINDOW_STATE "window_state"
+#define MUIOPTION_WINDOW_PANES "window_panes"
+#define MUIOPTION_CUSTOM_COLOR "custom_color"
+#define MUIOPTION_LIST_FONT "list_font"
+#define MUIOPTION_TEXT_COLOR "text_color"
+#define MUIOPTION_CLONE_COLOR "clone_color"
+#define MUIOPTION_HIDE_TABS "hide_tabs"
+#define MUIOPTION_HISTORY_TAB "history_tab"
+#define MUIOPTION_COLUMN_WIDTHS "column_widths"
+#define MUIOPTION_COLUMN_ORDER "column_order"
+#define MUIOPTION_COLUMN_SHOWN "column_shown"
+#define MUIOPTION_SPLITTERS "splitters"
+#define MUIOPTION_SORT_COLUMN "sort_column"
+#define MUIOPTION_SORT_REVERSED "sort_reversed"
+#define MUIOPTION_ICONS_DIRECTORY "icons_directory"
+#define MUIOPTION_BACKGROUND_DIRECTORY "background_directory"
+#define MUIOPTION_DATS_DIRECTORY "dats_directory"
+#define MUIOPTION_VIDEO_DIRECTORY "video_directory"
+#define MUIOPTION_MANUALS_DIRECTORY "manuals_directory"
+#define MUIOPTION_UI_KEY_UP "ui_key_up"
+#define MUIOPTION_UI_KEY_DOWN "ui_key_down"
+#define MUIOPTION_UI_KEY_LEFT "ui_key_left"
+#define MUIOPTION_UI_KEY_RIGHT "ui_key_right"
+#define MUIOPTION_UI_KEY_START "ui_key_start"
+#define MUIOPTION_UI_KEY_PGUP "ui_key_pgup"
+#define MUIOPTION_UI_KEY_PGDWN "ui_key_pgdwn"
+#define MUIOPTION_UI_KEY_HOME "ui_key_home"
+#define MUIOPTION_UI_KEY_END "ui_key_end"
+#define MUIOPTION_UI_KEY_SS_CHANGE "ui_key_ss_change"
+#define MUIOPTION_UI_KEY_HISTORY_UP "ui_key_history_up"
+#define MUIOPTION_UI_KEY_HISTORY_DOWN "ui_key_history_down"
+#define MUIOPTION_UI_KEY_CONTEXT_FILTERS "ui_key_context_filters"
+#define MUIOPTION_UI_KEY_SELECT_RANDOM "ui_key_select_random"
+#define MUIOPTION_UI_KEY_GAME_AUDIT "ui_key_game_audit"
+#define MUIOPTION_UI_KEY_GAME_PROPERTIES "ui_key_game_properties"
+#define MUIOPTION_UI_KEY_HELP_CONTENTS "ui_key_help_contents"
+#define MUIOPTION_UI_KEY_UPDATE_GAMELIST "ui_key_update_gamelist"
+#define MUIOPTION_UI_KEY_VIEW_FOLDERS "ui_key_view_folders"
+#define MUIOPTION_UI_KEY_VIEW_FULLSCREEN "ui_key_view_fullscreen"
+#define MUIOPTION_UI_KEY_VIEW_PAGETAB "ui_key_view_pagetab"
+#define MUIOPTION_UI_KEY_VIEW_PICTURE_AREA "ui_key_view_picture_area"
+#define MUIOPTION_UI_KEY_VIEW_STATUS "ui_key_view_status"
+#define MUIOPTION_UI_KEY_VIEW_TOOLBARS "ui_key_view_toolbars"
+#define MUIOPTION_UI_KEY_VIEW_TAB_CABINET "ui_key_view_tab_cabinet"
+#define MUIOPTION_UI_KEY_VIEW_TAB_CPANEL "ui_key_view_tab_cpanel"
+#define MUIOPTION_UI_KEY_VIEW_TAB_FLYER "ui_key_view_tab_flyer"
+#define MUIOPTION_UI_KEY_VIEW_TAB_HISTORY "ui_key_view_tab_history"
+#define MUIOPTION_UI_KEY_VIEW_TAB_MARQUEE "ui_key_view_tab_marquee"
+#define MUIOPTION_UI_KEY_VIEW_TAB_SCREENSHOT "ui_key_view_tab_screenshot"
+#define MUIOPTION_UI_KEY_VIEW_TAB_TITLE "ui_key_view_tab_title"
+#define MUIOPTION_UI_KEY_VIEW_TAB_PCB "ui_key_view_tab_pcb"
+#define MUIOPTION_UI_KEY_QUIT "ui_key_quit"
+#define MUIOPTION_UI_JOY_UP "ui_joy_up"
+#define MUIOPTION_UI_JOY_DOWN "ui_joy_down"
+#define MUIOPTION_UI_JOY_LEFT "ui_joy_left"
+#define MUIOPTION_UI_JOY_RIGHT "ui_joy_right"
+#define MUIOPTION_UI_JOY_START "ui_joy_start"
+#define MUIOPTION_UI_JOY_PGUP "ui_joy_pgup"
+#define MUIOPTION_UI_JOY_PGDWN "ui_joy_pgdwn"
+#define MUIOPTION_UI_JOY_HOME "ui_joy_home"
+#define MUIOPTION_UI_JOY_END "ui_joy_end"
+#define MUIOPTION_UI_JOY_SS_CHANGE "ui_joy_ss_change"
+#define MUIOPTION_UI_JOY_HISTORY_UP "ui_joy_history_up"
+#define MUIOPTION_UI_JOY_HISTORY_DOWN "ui_joy_history_down"
+#define MUIOPTION_UI_JOY_EXEC "ui_joy_exec"
+#define MUIOPTION_EXEC_COMMAND "exec_command"
+#define MUIOPTION_EXEC_WAIT "exec_wait"
+#define MUIOPTION_HIDE_MOUSE "hide_mouse"
+#define MUIOPTION_FULL_SCREEN "full_screen"
+#define MUIOPTION_UI_KEY_VIEW_SOFTWARE_AREA "ui_key_view_software_area"
+
+#ifdef MESS
+#define MUIOPTION_DEFAULT_GAME "default_system"
+#define MUIDEFAULT_SELECTION "0"
+#define MUIDEFAULT_SPLITTERS "133,1125,1706"
+#else
+#define MUIOPTION_DEFAULT_GAME "default_machine"
+#define MUIDEFAULT_SELECTION "0"
+#define MUIDEFAULT_SPLITTERS "164,1700"
+#endif
+
+#define MESSUI_SL_COLUMN_SHOWN "sl_column_shown"
+#define MESSUI_SL_COLUMN_WIDTHS "sl_column_widths"
+#define MESSUI_SL_COLUMN_ORDER "sl_column_order"
+#define MESSUI_SL_SORT_REVERSED "sl_sort_reversed"
+#define MESSUI_SL_SORT_COLUMN "sl_sort_column"
+#define MESSUI_SW_COLUMN_SHOWN "sw_column_shown"
+#define MESSUI_SW_COLUMN_WIDTHS "sw_column_widths"
+#define MESSUI_SW_COLUMN_ORDER "sw_column_order"
+#define MESSUI_SW_SORT_REVERSED "sw_sort_reversed"
+#define MESSUI_SW_SORT_COLUMN "sw_sort_column"
+#define MESSUI_SOFTWARE_TAB "current_software_tab"
+
+typedef struct
+{
+ std::string name; // name of the option
+ std::string value; // initial value if ini file not found
+ const core_options::option_type unused1; // option type (unused)
+ char* unused2; // help text (unused)
+}
+WINUIOPTS;
+// UI options in MAMEui.ini
+const WINUIOPTS option_entries[] =
+{
+ { MUIOPTION_OVERRIDE_REDX, "0", OPTION_INTEGER, NULL },
+ { MUIOPTION_DEFAULT_GAME, MUIDEFAULT_SELECTION, OPTION_INTEGER, NULL },
+ { MUIOPTION_DEFAULT_FOLDER_ID, "0", OPTION_INTEGER, NULL },
+ { MUIOPTION_FULL_SCREEN, "0", OPTION_BOOLEAN, NULL },
+ { MUIOPTION_CURRENT_TAB, "0", OPTION_STRING, NULL },
+ { MESSUI_SOFTWARE_TAB, "0", OPTION_INTEGER, NULL },
+ { MUIOPTION_SHOW_TOOLBAR, "1", OPTION_BOOLEAN, NULL },
+ { MUIOPTION_SHOW_STATUS_BAR, "1", OPTION_BOOLEAN, NULL },
+ { MUIOPTION_HIDE_FOLDERS, "", OPTION_STRING, NULL },
+ { MUIOPTION_SHOW_TABS, "1", OPTION_BOOLEAN, NULL },
+ { MUIOPTION_HIDE_TABS, "artpreview,boss,cpanel,cover,end,flyer,gameover,howto,logo,marquee,pcb,scores,select,title,versus", OPTION_STRING, NULL },
+ { MUIOPTION_HISTORY_TAB, "0", OPTION_INTEGER, NULL },
+ { MUIOPTION_SORT_COLUMN, "0", OPTION_INTEGER, NULL },
+ { MUIOPTION_SORT_REVERSED, "0", OPTION_BOOLEAN, NULL },
+ { MUIOPTION_WINDOW_X, "0", OPTION_INTEGER, NULL }, // main window position, left
+ { MUIOPTION_WINDOW_Y, "0", OPTION_INTEGER, NULL }, // main window position, top
+ { MUIOPTION_WINDOW_WIDTH, "2000", OPTION_INTEGER, NULL }, // main window width
+ { MUIOPTION_WINDOW_HEIGHT, "1000", OPTION_INTEGER, NULL }, // main window height
+ { MUIOPTION_WINDOW_STATE, "1", OPTION_INTEGER, NULL },
+ { MUIOPTION_WINDOW_PANES, "15", OPTION_INTEGER, NULL }, // which windows are visible: bit 0 = tree, bit 1 = list, bit 2 = sw, bit 3 = images
+ { MUIOPTION_TEXT_COLOR, "-1", OPTION_INTEGER, NULL },
+ { MUIOPTION_CLONE_COLOR, "-1", OPTION_INTEGER, NULL },
+ { MUIOPTION_CUSTOM_COLOR, "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", OPTION_STRING, NULL }, // colour codes of the 16 custom colours (set in clone font dialog)
+ /* ListMode needs to be before ColumnWidths settings */
+ { MUIOPTION_LIST_MODE, "5", OPTION_INTEGER, NULL },
+ { MUIOPTION_SPLITTERS, MUIDEFAULT_SPLITTERS, OPTION_STRING, NULL },
+ { MUIOPTION_LIST_FONT, "-11,0,0,0,400,0,0,0,0,1,2,1,34,MS Sans Serif", OPTION_STRING, NULL },
+ { MUIOPTION_COLUMN_WIDTHS, "185,78,84,84,64,88,74,108,60,144,84,40,40", OPTION_STRING, NULL },
+ { MUIOPTION_COLUMN_ORDER, "0,1,2,3,4,5,6,7,8,9,10,11,12", OPTION_STRING, NULL },
+ { MUIOPTION_COLUMN_SHOWN, "1,1,1,1,1,1,1,1,1,1,1,1,0", OPTION_STRING, NULL },
+ { MESSUI_SL_COLUMN_WIDTHS, "100,75,223,46,120,120", OPTION_STRING, NULL },
+ { MESSUI_SL_COLUMN_ORDER, "0,1,2,3,4,5", OPTION_STRING, NULL }, // order of columns
+ { MESSUI_SL_COLUMN_SHOWN, "1,1,1,1,1,1", OPTION_STRING, NULL }, // 0=hide,1=show
+ { MESSUI_SL_SORT_COLUMN, "0", OPTION_INTEGER, NULL },
+ { MESSUI_SL_SORT_REVERSED, "0", OPTION_BOOLEAN, NULL },
+ { MESSUI_SW_COLUMN_WIDTHS, "400", OPTION_STRING, NULL },
+ { MESSUI_SW_COLUMN_ORDER, "0", OPTION_STRING, NULL }, // 1= dummy column
+ { MESSUI_SW_COLUMN_SHOWN, "1", OPTION_STRING, NULL }, // 0=don't show it
+ { MESSUI_SW_SORT_COLUMN, "0", OPTION_INTEGER, NULL },
+ { MESSUI_SW_SORT_REVERSED, "0", OPTION_BOOLEAN, NULL },
+ { MUIOPTION_CHECK_GAME, "0", OPTION_BOOLEAN, NULL },
+ { MUIOPTION_JOYSTICK_IN_INTERFACE, "1", OPTION_BOOLEAN, NULL },
+ { MUIOPTION_KEYBOARD_IN_INTERFACE, "0", OPTION_BOOLEAN, NULL },
+ { MUIOPTION_HIDE_MOUSE, "0", OPTION_BOOLEAN, NULL },
+ { MUIOPTION_INHERIT_FILTER, "0", OPTION_BOOLEAN, NULL },
+ { MUIOPTION_OFFSET_CLONES, "0", OPTION_BOOLEAN, NULL },
+ { MUIOPTION_STRETCH_SCREENSHOT_LARGER, "0", OPTION_BOOLEAN, NULL },
+ { MUIOPTION_CYCLE_SCREENSHOT, "0", OPTION_INTEGER, NULL },
+ { MUIOPTION_SCREENSHOT_BORDER_SIZE, "11", OPTION_INTEGER, NULL },
+ { MUIOPTION_SCREENSHOT_BORDER_COLOR, "-1", OPTION_INTEGER, NULL },
+ { MUIOPTION_EXEC_COMMAND, "", OPTION_STRING, NULL },
+ { MUIOPTION_EXEC_WAIT, "0", OPTION_INTEGER, NULL },
+ { MUIOPTION_BACKGROUND_DIRECTORY, "bkground\\bkground.png", OPTION_STRING, NULL },
+ { MUIOPTION_ICONS_DIRECTORY, "icons", OPTION_STRING, NULL },
+ { MUIOPTION_DATS_DIRECTORY, "dats", OPTION_STRING, NULL },
+ { MUIOPTION_VIDEO_DIRECTORY, "video", OPTION_STRING, NULL },
+ { MUIOPTION_MANUALS_DIRECTORY, "manuals", OPTION_STRING, NULL },
+ { MUIOPTION_UI_KEY_UP, "KEYCODE_UP", OPTION_STRING, NULL },
+ { MUIOPTION_UI_KEY_DOWN, "KEYCODE_DOWN", OPTION_STRING, NULL },
+ { MUIOPTION_UI_KEY_LEFT, "KEYCODE_LEFT", OPTION_STRING, NULL },
+ { MUIOPTION_UI_KEY_RIGHT, "KEYCODE_RIGHT", OPTION_STRING, NULL },
+ { MUIOPTION_UI_KEY_START, "KEYCODE_ENTER NOT KEYCODE_LALT", OPTION_STRING, NULL },
+ { MUIOPTION_UI_KEY_PGUP, "KEYCODE_PGUP", OPTION_STRING, NULL },
+ { MUIOPTION_UI_KEY_PGDWN, "KEYCODE_PGDN", OPTION_STRING, NULL },
+ { MUIOPTION_UI_KEY_HOME, "KEYCODE_HOME", OPTION_STRING, NULL },
+ { MUIOPTION_UI_KEY_END, "KEYCODE_END", OPTION_STRING, NULL },
+ { MUIOPTION_UI_KEY_SS_CHANGE, "KEYCODE_INSERT", OPTION_STRING, NULL },
+ { MUIOPTION_UI_KEY_HISTORY_UP, "KEYCODE_DEL", OPTION_STRING, NULL },
+ { MUIOPTION_UI_KEY_HISTORY_DOWN, "KEYCODE_LALT KEYCODE_0", OPTION_STRING, NULL },
+ { MUIOPTION_UI_KEY_CONTEXT_FILTERS, "KEYCODE_LCONTROL KEYCODE_F", OPTION_STRING, NULL },
+ { MUIOPTION_UI_KEY_SELECT_RANDOM, "KEYCODE_LCONTROL KEYCODE_R", OPTION_STRING, NULL },
+ { MUIOPTION_UI_KEY_GAME_AUDIT, "KEYCODE_LALT KEYCODE_A", OPTION_STRING, NULL },
+ { MUIOPTION_UI_KEY_GAME_PROPERTIES, "KEYCODE_LALT KEYCODE_ENTER", OPTION_STRING, NULL },
+ { MUIOPTION_UI_KEY_HELP_CONTENTS, "KEYCODE_F1", OPTION_STRING, NULL },
+ { MUIOPTION_UI_KEY_UPDATE_GAMELIST, "KEYCODE_F5", OPTION_STRING, NULL },
+ { MUIOPTION_UI_KEY_VIEW_FOLDERS, "KEYCODE_LALT KEYCODE_D", OPTION_STRING, NULL },
+ { MUIOPTION_UI_KEY_VIEW_FULLSCREEN, "KEYCODE_F11", OPTION_STRING, NULL },
+ { MUIOPTION_UI_KEY_VIEW_PAGETAB, "KEYCODE_LALT KEYCODE_B", OPTION_STRING, NULL },
+ { MUIOPTION_UI_KEY_VIEW_PICTURE_AREA, "KEYCODE_LALT KEYCODE_P", OPTION_STRING, NULL },
+ { MUIOPTION_UI_KEY_VIEW_SOFTWARE_AREA, "KEYCODE_LALT KEYCODE_W", OPTION_STRING, NULL },
+ { MUIOPTION_UI_KEY_VIEW_STATUS, "KEYCODE_LALT KEYCODE_S", OPTION_STRING, NULL },
+ { MUIOPTION_UI_KEY_VIEW_TOOLBARS, "KEYCODE_LALT KEYCODE_T", OPTION_STRING, NULL },
+ { MUIOPTION_UI_KEY_VIEW_TAB_CABINET, "KEYCODE_LALT KEYCODE_3", OPTION_STRING, NULL },
+ { MUIOPTION_UI_KEY_VIEW_TAB_CPANEL, "KEYCODE_LALT KEYCODE_6", OPTION_STRING, NULL },
+ { MUIOPTION_UI_KEY_VIEW_TAB_FLYER, "KEYCODE_LALT KEYCODE_2", OPTION_STRING, NULL },
+ { MUIOPTION_UI_KEY_VIEW_TAB_HISTORY, "KEYCODE_LALT KEYCODE_8", OPTION_STRING, NULL },
+ { MUIOPTION_UI_KEY_VIEW_TAB_MARQUEE, "KEYCODE_LALT KEYCODE_4", OPTION_STRING, NULL },
+ { MUIOPTION_UI_KEY_VIEW_TAB_SCREENSHOT, "KEYCODE_LALT KEYCODE_1", OPTION_STRING, NULL },
+ { MUIOPTION_UI_KEY_VIEW_TAB_TITLE, "KEYCODE_LALT KEYCODE_5", OPTION_STRING, NULL },
+ { MUIOPTION_UI_KEY_VIEW_TAB_PCB, "KEYCODE_LALT KEYCODE_7", OPTION_STRING, NULL },
+ { MUIOPTION_UI_KEY_QUIT, "KEYCODE_LALT KEYCODE_Q", OPTION_STRING, NULL },
+ { MUIOPTION_UI_JOY_UP, "1,1,1,1", OPTION_STRING, NULL },
+ { MUIOPTION_UI_JOY_DOWN, "1,1,1,2", OPTION_STRING, NULL },
+ { MUIOPTION_UI_JOY_LEFT, "1,1,2,1", OPTION_STRING, NULL },
+ { MUIOPTION_UI_JOY_RIGHT, "1,1,2,2", OPTION_STRING, NULL },
+ { MUIOPTION_UI_JOY_START, "1,0,1,0", OPTION_STRING, NULL },
+ { MUIOPTION_UI_JOY_PGUP, "2,1,2,1", OPTION_STRING, NULL },
+ { MUIOPTION_UI_JOY_PGDWN, "2,1,2,2", OPTION_STRING, NULL },
+ { MUIOPTION_UI_JOY_HOME, "0,0,0,0", OPTION_STRING, NULL },
+ { MUIOPTION_UI_JOY_END, "0,0,0,0", OPTION_STRING, NULL },
+ { MUIOPTION_UI_JOY_SS_CHANGE, "2,0,3,0", OPTION_STRING, NULL },
+ { MUIOPTION_UI_JOY_HISTORY_UP, "2,0,4,0", OPTION_STRING, NULL },
+ { MUIOPTION_UI_JOY_HISTORY_DOWN, "2,0,1,0", OPTION_STRING, NULL },
+ { MUIOPTION_UI_JOY_EXEC, "0,0,0,0", OPTION_STRING, NULL },
+ { "$end" }
+};
+
+class winui_ui_options
+{
+ std::map<std::string, std::string> m_list;
+ const char *m_filename;
+
+ void create_index(std::ifstream &fp)
+ {
+ if (!fp.good())
+ return;
+ bool is_ready = false;
+ std::string file_line;
+ std::getline(fp, file_line);
+ while (fp.good())
+ {
+ if (is_ready)
+ {
+ char s[file_line.length()];
+ strcpy(s, file_line.c_str());
+
+ const char* name = strtok(s, "\t"); // get adjustment name
+ char* data = strtok(NULL, "\t"); // get next part (there's no next tab, so just return whatever is left)
+ if (name)
+ m_list[name] = data ? data : "";
+ }
+ else
+ {
+ if (file_line == "$start")
+ is_ready = true;
+ }
+
+ std::getline(fp, file_line);
+ }
+
+ fp.close();
+ return;
+ }
+
+public:
+ // construction/destruction
+ winui_ui_options()
+ {
+ // set up default values
+ for (int i = 0; option_entries[i].name != "$end"; i++)
+ m_list[option_entries[i].name] = option_entries[i].value;
+ //printf("*** START DUMP OF DEFAULT ***\n");
+ //for (auto const &it : m_list)
+ // printf("%s = %s\n", it.first.c_str(), it.second.c_str());
+ //printf("*** END DUMP OF DEFAULT ***\n");
+ }
+
+ void load_file(const char *filename)
+ {
+ if (!m_filename)
+ m_filename = filename;
+ std::ifstream infile (filename);
+ create_index(infile);
+ }
+
+ void save_file(const char *filename)
+ {
+ if (!filename)
+ return;
+ std::string inistring = std::string("\nYOU CAN SAFELY DELETE THIS FILE TO RESET THE EMULATOR BACK TO DEFAULTS.\n\n$start\n");
+ for (auto const &it : m_list)
+ inistring.append(it.first).append("\t").append(it.second).append("\n");
+
+ std::ofstream outfile (filename, std::ios::out | std::ios::trunc);
+ size_t size = inistring.size();
+ char t1[size+1];
+ strcpy(t1, inistring.c_str());
+ outfile.write(t1, size);
+ outfile.close();
+ return;
+ }
+
+ void reset_and_save(const char *filename)
+ {
+ // set up default values
+ for (int i = 0; option_entries[i].name != "$end"; i++)
+ m_list[option_entries[i].name] = option_entries[i].value;
+
+ save_file(filename);
+ }
+
+ void setter(const char* name, std::string value)
+ {
+ m_list[name] = value;
+ save_file(m_filename);
+ }
+
+ // cannot be "setter" otherwise most strings use it, causing "1" to be saved.
+ //void bool_setter(const char* name, bool value)
+ //{
+ // m_list[name] = value ? "1" : "0";
+ // save_file(m_filename);
+ //}
+
+ void setter(const char* name, int value)
+ {
+ m_list[name] = std::to_string(value);
+ save_file(m_filename);
+ }
+
+ std::string getter(const char* name)
+ {
+ if (m_list.count(name))
+ return m_list.find(name)->second;
+ else
+ return "";
+ }
+
+ int int_value(const char* name)
+ {
+ string t = getter(name);
+ if (t.empty())
+ return 0;
+ else
+ return std::atoll(t.c_str());
+ }
+
+ bool bool_value(const char* name)
+ {
+ return int_value(name) ? 1 : 0;
+ }
+};
+
+#endif // WINUI_UIOPTS_H
+
diff --git a/src/osd/winui/winui.cpp b/src/osd/winui/winui.cpp
new file mode 100644
index 00000000000..2117d5eb46a
--- /dev/null
+++ b/src/osd/winui/winui.cpp
@@ -0,0 +1,6664 @@
+// For licensing and usage information, read docs/winui_license.txt
+//****************************************************************************
+
+ /***************************************************************************
+
+ winui.cpp
+
+ Win32 GUI code.
+
+ Created 8/12/97 by Christopher Kirmse (ckirmse@ricochet.net)
+ Additional code November 1997 by Jeff Miller (miller@aa.net)
+ More July 1998 by Mike Haaland (mhaaland@hypertech.com)
+ Added Spitters/Property Sheets/Removed Tabs/Added Tree Control in
+ Nov/Dec 1998 - Mike Haaland
+
+***************************************************************************/
+
+// standard windows headers
+#define _WIN32_IE 0x0501
+#include <windows.h>
+#include <windowsx.h>
+#include <shellapi.h>
+#include <commctrl.h>
+#include <wingdi.h>
+
+// standard C headers
+#include <stdio.h>
+#include <ctype.h>
+#include <io.h>
+#include <fcntl.h>
+#include <dlgs.h>
+#include <string.h>
+#include <sys/stat.h>
+#include <time.h>
+#include <tchar.h>
+
+/* Uncomment to add Direct Draw support (has to be added back to the core too) */
+//#define UI_DIRECTDRAW
+
+// MAME/MAMEUI headers
+#include "emu.h"
+#include "mame.h"
+#include "mameopts.h"
+#include "language.h"
+#include "unzip.h"
+#include "winutf8.h"
+#include "strconv.h"
+#include "window.h"
+#include "../osdcore.h"
+#include "zippath.h"
+
+#include "resource.h"
+#include "resource.hm"
+
+#include "winui.h"
+#include "mui_util.h"
+#include "mui_audit.h"
+#include "directories.h"
+#include "mui_opts.h"
+#include "properties.h"
+#include "columnedit.h"
+#include "picker.h"
+#include "tabview.h"
+#include "bitmask.h"
+#include "treeview.h"
+#include "splitters.h"
+#include "dirwatch.h"
+#include "help.h"
+#include "history.h"
+#include "dialogs.h"
+#ifdef UI_DIRECTDRAW
+#include "directdraw.h"
+#endif
+#include "directinput.h"
+#include "dijoystick.h" /* For DIJoystick availability. */
+
+#ifdef _MSC_VER
+#define snprintf _snprintf
+#endif
+
+#ifndef LVS_EX_LABELTIP
+#define LVS_EX_LABELTIP 0x00004000 // listview unfolds partly hidden labels if it does not have infotip text
+#endif // LVS_EX_LABELTIP
+
+// fix warning: cast does not match function type
+#if defined(__GNUC__) && defined(ListView_CreateDragImage)
+#undef ListView_CreateDragImage
+#endif
+
+#ifndef ListView_CreateDragImage
+#define ListView_CreateDragImage(hwnd, i, lpptUpLeft) \
+ (HIMAGELIST)(LRESULT)(int)SendMessage((hwnd), LVM_CREATEDRAGIMAGE, (WPARAM)(int)(i), (LPARAM)(LPPOINT)(lpptUpLeft))
+#endif // ListView_CreateDragImage
+
+#ifndef TreeView_EditLabel
+#define TreeView_EditLabel(w, i) \
+ SNDMSG(w,TVM_EDITLABEL,0,(LPARAM)(i))
+#endif // TreeView_EditLabel
+
+#ifndef HDF_SORTUP
+#define HDF_SORTUP 0x400
+#endif // HDF_SORTUP
+
+#ifndef HDF_SORTDOWN
+#define HDF_SORTDOWN 0x200
+#endif // HDF_SORTDOWN
+
+#ifndef LVM_SETBKIMAGEA
+#define LVM_SETBKIMAGEA (LVM_FIRST + 68)
+#endif // LVM_SETBKIMAGEA
+
+#ifndef LVM_SETBKIMAGEW
+#define LVM_SETBKIMAGEW (LVM_FIRST + 138)
+#endif // LVM_SETBKIMAGEW
+
+#ifndef LVM_GETBKIMAGEA
+#define LVM_GETBKIMAGEA (LVM_FIRST + 69)
+#endif // LVM_GETBKIMAGEA
+
+#ifndef LVM_GETBKIMAGEW
+#define LVM_GETBKIMAGEW (LVM_FIRST + 139)
+#endif // LVM_GETBKIMAGEW
+
+#ifndef LVBKIMAGE
+
+typedef struct tagLVBKIMAGEA
+{
+ ULONG ulFlags;
+ HBITMAP hbm;
+ LPSTR pszImage;
+ UINT cchImageMax;
+ int xOffsetPercent;
+ int yOffsetPercent;
+} LVBKIMAGEA, *LPLVBKIMAGEA;
+
+typedef struct tagLVBKIMAGEW
+{
+ ULONG ulFlags;
+ HBITMAP hbm;
+ LPWSTR pszImage;
+ UINT cchImageMax;
+ int xOffsetPercent;
+ int yOffsetPercent;
+} LVBKIMAGEW, *LPLVBKIMAGEW;
+
+#ifdef UNICODE
+#define LVBKIMAGE LVBKIMAGEW
+#define LPLVBKIMAGE LPLVBKIMAGEW
+#define LVM_SETBKIMAGE LVM_SETBKIMAGEW
+#define LVM_GETBKIMAGE LVM_GETBKIMAGEW
+#else
+#define LVBKIMAGE LVBKIMAGEA
+#define LPLVBKIMAGE LPLVBKIMAGEA
+#define LVM_SETBKIMAGE LVM_SETBKIMAGEA
+#define LVM_GETBKIMAGE LVM_GETBKIMAGEA
+#endif
+#endif
+
+#ifndef LVBKIF_SOURCE_NONE
+#define LVBKIF_SOURCE_NONE 0x00000000
+#endif // LVBKIF_SOURCE_NONE
+
+#ifndef LVBKIF_SOURCE_HBITMAP
+#define LVBKIF_SOURCE_HBITMAP 0x00000001
+#endif
+
+#ifndef LVBKIF_SOURCE_URL
+#define LVBKIF_SOURCE_URL 0x00000002
+#endif // LVBKIF_SOURCE_URL
+
+#ifndef LVBKIF_SOURCE_MASK
+#define LVBKIF_SOURCE_MASK 0x00000003
+#endif // LVBKIF_SOURCE_MASK
+
+#ifndef LVBKIF_STYLE_NORMAL
+#define LVBKIF_STYLE_NORMAL 0x00000000
+#endif // LVBKIF_STYLE_NORMAL
+
+#ifndef LVBKIF_STYLE_TILE
+#define LVBKIF_STYLE_TILE 0x00000010
+#endif // LVBKIF_STYLE_TILE
+
+#ifndef LVBKIF_STYLE_MASK
+#define LVBKIF_STYLE_MASK 0x00000010
+#endif // LVBKIF_STYLE_MASK
+
+#ifndef ListView_SetBkImage
+#define ListView_SetBkImage(hwnd, plvbki) \
+ (BOOL)SNDMSG((hwnd), LVM_SETBKIMAGE, 0, (LPARAM)(plvbki))
+#endif // ListView_SetBkImage
+
+#ifndef ListView_GetBkImage
+#define ListView_GetBkImage(hwnd, plvbki) \
+ (BOOL)SNDMSG((hwnd), LVM_GETBKIMAGE, 0, (LPARAM)(plvbki))
+#endif // ListView_GetBkImage
+
+#define MM_PLAY_GAME (WM_APP + 15000)
+
+#define JOYGUI_MS 100
+
+#define JOYGUI_TIMER 1
+#define SCREENSHOT_TIMER 2
+#define GAMEWND_TIMER 3
+
+/* Max size of a sub-menu */
+#define DBU_MIN_WIDTH 292
+#define DBU_MIN_HEIGHT 190
+
+static int MIN_WIDTH = DBU_MIN_WIDTH;
+static int MIN_HEIGHT = DBU_MIN_HEIGHT;
+
+/* Max number of bkground picture files */
+#define MAX_BGFILES 100
+
+#ifndef LVS_EX_LABELTIP
+#define LVS_EX_LABELTIP 0x00004000 // listview unfolds partly hidden labels if it does not have infotip text
+#endif
+
+#define NO_FOLDER -1
+#define STATESAVE_VERSION 1
+//I could not find a predefined value for this event and docs just say it has 1 for the parameter
+#define TOOLBAR_EDIT_ACCELERATOR_PRESSED 1
+#define SHOW_MISSING_ROMS_ICON
+
+/***************************************************************************
+ externally defined global variables
+ ***************************************************************************/
+extern const ICONDATA g_iconData[];
+extern const TCHAR g_szPlayGameString[];
+extern const char g_szGameCountString[];
+UINT8 playopts_apply = 0;
+
+typedef struct _play_options play_options;
+struct _play_options
+{
+ const char *record; // OPTION_RECORD
+ const char *playback; // OPTION_PLAYBACK
+ const char *state; // OPTION_STATE
+ const char *wavwrite; // OPTION_WAVWRITE
+ const char *mngwrite; // OPTION_MNGWRITE
+ const char *aviwrite; // OPTION_AVIWRITE
+};
+
+/***************************************************************************
+ function prototypes
+ ***************************************************************************/
+
+static BOOL Win32UI_init(HINSTANCE hInstance, LPWSTR lpCmdLine, int nCmdShow);
+static void Win32UI_exit(void);
+
+static BOOL PumpMessage(void);
+static BOOL OnIdle(HWND hWnd);
+static void OnSize(HWND hwnd, UINT state, int width, int height);
+static LRESULT CALLBACK MameWindowProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
+
+static void SetView(int menu_id);
+static void ResetListView(void);
+static void UpdateGameList(BOOL bUpdateRomAudit, BOOL bUpdateSampleAudit);
+static void DestroyIcons(void);
+static void ReloadIcons(void);
+static void PollGUIJoystick(void);
+//static void PressKey(HWND hwnd,UINT vk);
+static BOOL MameCommand(HWND hwnd,int id, HWND hwndCtl, UINT codeNotify);
+static void KeyboardKeyDown(int syskey, int vk_code, int special);
+static void KeyboardKeyUp(int syskey, int vk_code, int special);
+static void KeyboardStateClear(void);
+
+static void UpdateStatusBar(void);
+//static BOOL PickerHitTest(HWND hWnd);
+static BOOL TreeViewNotify(NMHDR *nm);
+
+static void LoadBackgroundBitmap(void);
+static void PaintBackgroundImage(HWND hWnd, HRGN hRgn, int x, int y);
+
+static int GamePicker_Compare(HWND hwndPicker, int index1, int index2, int sort_subitem);
+
+static void DisableSelection(void);
+static void EnableSelection(int nGame);
+
+static HICON GetSelectedPickItemIcon(void);
+static void SetRandomPickItem(void);
+static void PickColor(COLORREF *cDefault);
+
+static LPTREEFOLDER GetSelectedFolder(void);
+static HICON GetSelectedFolderIcon(void);
+
+static LRESULT CALLBACK HistoryWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
+static LRESULT CALLBACK PictureFrameWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
+static LRESULT CALLBACK PictureWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
+
+static void MamePlayRecordGame(void);
+static void MamePlayBackGame(void);
+static void MamePlayRecordWave(void);
+static void MamePlayRecordMNG(void);
+static void MamePlayRecordAVI(void);
+static void MameLoadState(void);
+static void MamePlayGameWithOptions(int nGame, const play_options *playopts);
+static BOOL GameCheck(void);
+static BOOL FolderCheck(void);
+
+static void ToggleScreenShot(void);
+static void AdjustMetrics(void);
+//static void EnablePlayOptions(int nIndex, windows_options *o);
+
+/* Icon routines */
+static DWORD GetShellLargeIconSize(void);
+static DWORD GetShellSmallIconSize(void);
+static void CreateIcons(void);
+static int GetIconForDriver(int nItem);
+static void AddDriverIcon(int nItem,int default_icon_index);
+
+// Context Menu handlers
+static void UpdateMenu(HMENU hMenu);
+static void InitTreeContextMenu(HMENU hTreeMenu);
+static void InitBodyContextMenu(HMENU hBodyContextMenu);
+static void ToggleShowFolder(int folder);
+static BOOL HandleTreeContextMenu( HWND hWnd, WPARAM wParam, LPARAM lParam);
+static BOOL HandleScreenShotContextMenu( HWND hWnd, WPARAM wParam, LPARAM lParam);
+static void GamePicker_OnHeaderContextMenu(POINT pt, int nColumn);
+static void GamePicker_OnBodyContextMenu(POINT pt);
+
+static void InitListView(void);
+/* Re/initialize the ListView header columns */
+static void ResetColumnDisplay(BOOL first_time);
+
+static void CopyToolTipText (LPTOOLTIPTEXT lpttt);
+
+static void ProgressBarShow(void);
+static void ProgressBarHide(void);
+static void ResizeProgressBar(void);
+static void ProgressBarStep(void);
+static void ProgressBarStepParam(int iGameIndex, int nGameCount);
+
+static HWND InitProgressBar(HWND hParent);
+static HWND InitToolbar(HWND hParent);
+static HWND InitStatusBar(HWND hParent);
+
+static LRESULT Statusbar_MenuSelect (HWND hwnd, WPARAM wParam, LPARAM lParam);
+
+static void UpdateHistory(void);
+
+
+static void RemoveCurrentGameCustomFolder(void);
+static void RemoveGameCustomFolder(int driver_index);
+
+static void BeginListViewDrag(NM_LISTVIEW *pnmv);
+static void MouseMoveListViewDrag(POINTS pt);
+static void ButtonUpListViewDrag(POINTS p);
+
+static void CalculateBestScreenShotRect(HWND hWnd, RECT *pRect, BOOL restrict_height);
+
+BOOL MouseHasBeenMoved(void);
+static void SwitchFullScreenMode(void);
+
+/***************************************************************************
+ External variables
+ ***************************************************************************/
+
+/***************************************************************************
+ Internal structures
+ ***************************************************************************/
+
+/*
+ * These next two structs represent how the icon information
+ * is stored in an ICO file.
+ */
+typedef struct
+{
+ BYTE bWidth; /* Width of the image */
+ BYTE bHeight; /* Height of the image (times 2) */
+ BYTE bColorCount; /* Number of colors in image (0 if >=8bpp) */
+ BYTE bReserved; /* Reserved */
+ WORD wPlanes; /* Color Planes */
+ WORD wBitCount; /* Bits per pixel */
+ DWORD dwBytesInRes; /* how many bytes in this resource? */
+ DWORD dwImageOffset; /* where in the file is this image */
+} ICONDIRENTRY, *LPICONDIRENTRY;
+
+typedef struct
+{
+ UINT Width, Height, Colors; /* Width, Height and bpp */
+ LPBYTE lpBits; /* ptr to DIB bits */
+ DWORD dwNumBytes; /* how many bytes? */
+ LPBITMAPINFO lpbi; /* ptr to header */
+ LPBYTE lpXOR; /* ptr to XOR image bits */
+ LPBYTE lpAND; /* ptr to AND image bits */
+} ICONIMAGE, *LPICONIMAGE;
+
+/* Which edges of a control are anchored to the corresponding side of the parent window */
+#define RA_LEFT 0x01
+#define RA_RIGHT 0x02
+#define RA_TOP 0x04
+#define RA_BOTTOM 0x08
+#define RA_ALL 0x0F
+
+#define RA_END 0
+#define RA_ID 1
+#define RA_HWND 2
+
+typedef struct
+{
+ int type; /* Either RA_ID or RA_HWND, to indicate which member of u is used; or RA_END
+ to signify last entry */
+ union /* Can identify a child window by control id or by handle */
+ {
+ int id; /* Window control id */
+ HWND hwnd; /* Window handle */
+ } u;
+ BOOL setfont; /* Do we set this item's font? */
+ int action; /* What to do when control is resized */
+ void *subwindow; /* Points to a Resize structure for this subwindow; NULL if none */
+} ResizeItem;
+
+typedef struct
+{
+ RECT rect; /* Client rect of window; must be initialized before first resize */
+ const ResizeItem* items; /* Array of subitems to be resized */
+} Resize;
+
+static void ResizeWindow(HWND hParent, Resize *r);
+static void SetAllWindowsFont(HWND hParent, const Resize *r, HFONT hFont, BOOL bRedraw);
+
+/* List view Icon defines */
+#define LG_ICONMAP_WIDTH GetSystemMetrics(SM_CXICON)
+#define LG_ICONMAP_HEIGHT GetSystemMetrics(SM_CYICON)
+#define ICONMAP_WIDTH GetSystemMetrics(SM_CXSMICON)
+#define ICONMAP_HEIGHT GetSystemMetrics(SM_CYSMICON)
+
+typedef struct tagPOPUPSTRING
+{
+ HMENU hMenu;
+ UINT uiString;
+} POPUPSTRING;
+
+#define MAX_MENUS 3
+
+#define SPLITTER_WIDTH 4
+#define MIN_VIEW_WIDTH 10
+
+// Struct needed for Game Window Communication
+
+typedef struct
+{
+ LPPROCESS_INFORMATION ProcessInfo;
+ HWND hwndFound;
+} FINDWINDOWHANDLE;
+
+/***************************************************************************
+ Internal variables
+ ***************************************************************************/
+
+static HWND hMain = NULL;
+static HACCEL hAccel = NULL;
+
+static HWND hwndList = NULL;
+static HWND hTreeView = NULL;
+static HWND hProgWnd = NULL;
+static HWND hTabCtrl = NULL;
+
+static HINSTANCE hInst = NULL;
+
+static HFONT hFont = NULL; /* Font for list view */
+
+static int optionfolder_count = 0;
+
+/* global data--know where to send messages */
+static BOOL in_emulation;
+
+/* idle work at startup */
+static BOOL idle_work;
+
+/* object pool in use */
+static object_pool *mameui_pool;
+
+static int game_index;
+static int progBarStep;
+
+static BOOL bDoGameCheck = false;
+
+/* Tree control variables */
+static BOOL bShowToolBar = 1;
+static BOOL bShowStatusBar = 1;
+static BOOL bShowTabCtrl = 1;
+static BOOL bProgressShown = false;
+static BOOL bListReady = false;
+
+#define WM_MAME32_FILECHANGED (WM_USER + 0)
+#define WM_MAME32_AUDITGAME (WM_USER + 1)
+
+static PDIRWATCHER s_pWatcher;
+
+/* use a joystick subsystem in the gui? */
+static const struct OSDJoystick* g_pJoyGUI = NULL;
+
+/* store current keyboard state (in bools) here */
+static bool keyboard_state[4096]; /* __code_max #defines the number of internal key_codes */
+
+/* search */
+static char g_SearchText[256];
+/* table copied from windows/inputs.c */
+// table entry indices
+#define MAME_KEY 0
+#define DI_KEY 1
+#define VIRTUAL_KEY 2
+#define ASCII_KEY 3
+
+// master keyboard translation table
+static const int win_key_trans_table[][4] =
+{
+ // MAME key dinput key virtual key ascii
+ { ITEM_ID_ESC, DIK_ESCAPE, VK_ESCAPE, 27 },
+ { ITEM_ID_1, DIK_1, '1', '1' },
+ { ITEM_ID_2, DIK_2, '2', '2' },
+ { ITEM_ID_3, DIK_3, '3', '3' },
+ { ITEM_ID_4, DIK_4, '4', '4' },
+ { ITEM_ID_5, DIK_5, '5', '5' },
+ { ITEM_ID_6, DIK_6, '6', '6' },
+ { ITEM_ID_7, DIK_7, '7', '7' },
+ { ITEM_ID_8, DIK_8, '8', '8' },
+ { ITEM_ID_9, DIK_9, '9', '9' },
+ { ITEM_ID_0, DIK_0, '0', '0' },
+ { ITEM_ID_BACKSPACE, DIK_BACK, VK_BACK, 8 },
+ { ITEM_ID_TAB, DIK_TAB, VK_TAB, 9 },
+ { ITEM_ID_Q, DIK_Q, 'Q', 'Q' },
+ { ITEM_ID_W, DIK_W, 'W', 'W' },
+ { ITEM_ID_E, DIK_E, 'E', 'E' },
+ { ITEM_ID_R, DIK_R, 'R', 'R' },
+ { ITEM_ID_T, DIK_T, 'T', 'T' },
+ { ITEM_ID_Y, DIK_Y, 'Y', 'Y' },
+ { ITEM_ID_U, DIK_U, 'U', 'U' },
+ { ITEM_ID_I, DIK_I, 'I', 'I' },
+ { ITEM_ID_O, DIK_O, 'O', 'O' },
+ { ITEM_ID_P, DIK_P, 'P', 'P' },
+ { ITEM_ID_OPENBRACE, DIK_LBRACKET, VK_OEM_4, '[' },
+ { ITEM_ID_CLOSEBRACE, DIK_RBRACKET, VK_OEM_6, ']' },
+ { ITEM_ID_ENTER, DIK_RETURN, VK_RETURN, 13 },
+ { ITEM_ID_LCONTROL, DIK_LCONTROL, VK_LCONTROL, 0 },
+ { ITEM_ID_A, DIK_A, 'A', 'A' },
+ { ITEM_ID_S, DIK_S, 'S', 'S' },
+ { ITEM_ID_D, DIK_D, 'D', 'D' },
+ { ITEM_ID_F, DIK_F, 'F', 'F' },
+ { ITEM_ID_G, DIK_G, 'G', 'G' },
+ { ITEM_ID_H, DIK_H, 'H', 'H' },
+ { ITEM_ID_J, DIK_J, 'J', 'J' },
+ { ITEM_ID_K, DIK_K, 'K', 'K' },
+ { ITEM_ID_L, DIK_L, 'L', 'L' },
+ { ITEM_ID_COLON, DIK_SEMICOLON, VK_OEM_1, ';' },
+ { ITEM_ID_QUOTE, DIK_APOSTROPHE, VK_OEM_7, '\'' },
+ { ITEM_ID_TILDE, DIK_GRAVE, VK_OEM_3, '`' },
+ { ITEM_ID_LSHIFT, DIK_LSHIFT, VK_LSHIFT, 0 },
+ { ITEM_ID_BACKSLASH, DIK_BACKSLASH, VK_OEM_5, '\\' },
+ { ITEM_ID_Z, DIK_Z, 'Z', 'Z' },
+ { ITEM_ID_X, DIK_X, 'X', 'X' },
+ { ITEM_ID_C, DIK_C, 'C', 'C' },
+ { ITEM_ID_V, DIK_V, 'V', 'V' },
+ { ITEM_ID_B, DIK_B, 'B', 'B' },
+ { ITEM_ID_N, DIK_N, 'N', 'N' },
+ { ITEM_ID_M, DIK_M, 'M', 'M' },
+ { ITEM_ID_SLASH, DIK_SLASH, VK_OEM_2, '/' },
+ { ITEM_ID_RSHIFT, DIK_RSHIFT, VK_RSHIFT, 0 },
+ { ITEM_ID_ASTERISK, DIK_MULTIPLY, VK_MULTIPLY, '*' },
+ { ITEM_ID_LALT, DIK_LMENU, VK_LMENU, 0 },
+ { ITEM_ID_SPACE, DIK_SPACE, VK_SPACE, ' ' },
+ { ITEM_ID_CAPSLOCK, DIK_CAPITAL, VK_CAPITAL, 0 },
+ { ITEM_ID_F1, DIK_F1, VK_F1, 0 },
+ { ITEM_ID_F2, DIK_F2, VK_F2, 0 },
+ { ITEM_ID_F3, DIK_F3, VK_F3, 0 },
+ { ITEM_ID_F4, DIK_F4, VK_F4, 0 },
+ { ITEM_ID_F5, DIK_F5, VK_F5, 0 },
+ { ITEM_ID_F6, DIK_F6, VK_F6, 0 },
+ { ITEM_ID_F7, DIK_F7, VK_F7, 0 },
+ { ITEM_ID_F8, DIK_F8, VK_F8, 0 },
+ { ITEM_ID_F9, DIK_F9, VK_F9, 0 },
+ { ITEM_ID_F10, DIK_F10, VK_F10, 0 },
+ { ITEM_ID_NUMLOCK, DIK_NUMLOCK, VK_NUMLOCK, 0 },
+ { ITEM_ID_SCRLOCK, DIK_SCROLL, VK_SCROLL, 0 },
+ { ITEM_ID_7_PAD, DIK_NUMPAD7, VK_NUMPAD7, 0 },
+ { ITEM_ID_8_PAD, DIK_NUMPAD8, VK_NUMPAD8, 0 },
+ { ITEM_ID_9_PAD, DIK_NUMPAD9, VK_NUMPAD9, 0 },
+ { ITEM_ID_MINUS_PAD, DIK_SUBTRACT, VK_SUBTRACT, 0 },
+ { ITEM_ID_4_PAD, DIK_NUMPAD4, VK_NUMPAD4, 0 },
+ { ITEM_ID_5_PAD, DIK_NUMPAD5, VK_NUMPAD5, 0 },
+ { ITEM_ID_6_PAD, DIK_NUMPAD6, VK_NUMPAD6, 0 },
+ { ITEM_ID_PLUS_PAD, DIK_ADD, VK_ADD, 0 },
+ { ITEM_ID_1_PAD, DIK_NUMPAD1, VK_NUMPAD1, 0 },
+ { ITEM_ID_2_PAD, DIK_NUMPAD2, VK_NUMPAD2, 0 },
+ { ITEM_ID_3_PAD, DIK_NUMPAD3, VK_NUMPAD3, 0 },
+ { ITEM_ID_0_PAD, DIK_NUMPAD0, VK_NUMPAD0, 0 },
+ { ITEM_ID_DEL_PAD, DIK_DECIMAL, VK_DECIMAL, 0 },
+ { ITEM_ID_F11, DIK_F11, VK_F11, 0 },
+ { ITEM_ID_F12, DIK_F12, VK_F12, 0 },
+ { ITEM_ID_F13, DIK_F13, VK_F13, 0 },
+ { ITEM_ID_F14, DIK_F14, VK_F14, 0 },
+ { ITEM_ID_F15, DIK_F15, VK_F15, 0 },
+ { ITEM_ID_ENTER_PAD, DIK_NUMPADENTER, VK_RETURN, 0 },
+ { ITEM_ID_RCONTROL, DIK_RCONTROL, VK_RCONTROL, 0 },
+ { ITEM_ID_SLASH_PAD, DIK_DIVIDE, VK_DIVIDE, 0 },
+ { ITEM_ID_PRTSCR, DIK_SYSRQ, 0, 0 },
+ { ITEM_ID_RALT, DIK_RMENU, VK_RMENU, 0 },
+ { ITEM_ID_HOME, DIK_HOME, VK_HOME, 0 },
+ { ITEM_ID_UP, DIK_UP, VK_UP, 0 },
+ { ITEM_ID_PGUP, DIK_PRIOR, VK_PRIOR, 0 },
+ { ITEM_ID_LEFT, DIK_LEFT, VK_LEFT, 0 },
+ { ITEM_ID_RIGHT, DIK_RIGHT, VK_RIGHT, 0 },
+ { ITEM_ID_END, DIK_END, VK_END, 0 },
+ { ITEM_ID_DOWN, DIK_DOWN, VK_DOWN, 0 },
+ { ITEM_ID_PGDN, DIK_NEXT, VK_NEXT, 0 },
+ { ITEM_ID_INSERT, DIK_INSERT, VK_INSERT, 0 },
+ { ITEM_ID_DEL, DIK_DELETE, VK_DELETE, 0 },
+ { ITEM_ID_LWIN, DIK_LWIN, VK_LWIN, 0 },
+ { ITEM_ID_RWIN, DIK_RWIN, VK_RWIN, 0 },
+ { ITEM_ID_MENU, DIK_APPS, VK_APPS, 0 },
+ { ITEM_ID_PAUSE, DIK_PAUSE, VK_PAUSE, 0 },
+ { ITEM_ID_CANCEL, 0, VK_CANCEL, 0 },
+};
+
+
+
+typedef struct
+{
+ char name[40]; // functionality name (optional)
+ input_seq is; // the input sequence (the keys pressed)
+ UINT func_id; // the identifier
+ input_seq* (*const getiniptr)(void);// pointer to function to get the value from .ini file
+} GUISequence;
+
+static const GUISequence GUISequenceControl[]=
+{
+ {"gui_key_up", input_seq(), ID_UI_UP, Get_ui_key_up },
+ {"gui_key_down", input_seq(), ID_UI_DOWN, Get_ui_key_down },
+ {"gui_key_left", input_seq(), ID_UI_LEFT, Get_ui_key_left },
+ {"gui_key_right", input_seq(), ID_UI_RIGHT, Get_ui_key_right },
+ {"gui_key_start", input_seq(), ID_UI_START, Get_ui_key_start },
+ {"gui_key_pgup", input_seq(), ID_UI_PGUP, Get_ui_key_pgup },
+ {"gui_key_pgdwn", input_seq(), ID_UI_PGDOWN, Get_ui_key_pgdwn },
+ {"gui_key_home", input_seq(), ID_UI_HOME, Get_ui_key_home },
+ {"gui_key_end", input_seq(), ID_UI_END, Get_ui_key_end },
+ {"gui_key_ss_change", input_seq(), IDC_SSFRAME, Get_ui_key_ss_change },
+ {"gui_key_history_up", input_seq(), ID_UI_HISTORY_UP, Get_ui_key_history_up },
+ {"gui_key_history_down", input_seq(), ID_UI_HISTORY_DOWN, Get_ui_key_history_down },
+
+ {"gui_key_context_filters", input_seq(), ID_CONTEXT_FILTERS, Get_ui_key_context_filters },
+ {"gui_key_select_random", input_seq(), ID_CONTEXT_SELECT_RANDOM, Get_ui_key_select_random },
+ {"gui_key_game_audit", input_seq(), ID_GAME_AUDIT, Get_ui_key_game_audit },
+ {"gui_key_game_properties", input_seq(), ID_GAME_PROPERTIES, Get_ui_key_game_properties },
+ {"gui_key_help_contents", input_seq(), ID_HELP_CONTENTS, Get_ui_key_help_contents },
+ {"gui_key_update_gamelist", input_seq(), ID_UPDATE_GAMELIST, Get_ui_key_update_gamelist },
+ {"gui_key_view_folders", input_seq(), ID_VIEW_FOLDERS, Get_ui_key_view_folders },
+ {"gui_key_view_fullscreen", input_seq(), ID_VIEW_FULLSCREEN, Get_ui_key_view_fullscreen },
+ {"gui_key_view_pagetab", input_seq(), ID_VIEW_PAGETAB, Get_ui_key_view_pagetab },
+ {"gui_key_view_picture_area", input_seq(), ID_VIEW_PICTURE_AREA, Get_ui_key_view_picture_area },
+ {"gui_key_view_status", input_seq(), ID_VIEW_STATUS, Get_ui_key_view_status },
+ {"gui_key_view_toolbars", input_seq(), ID_VIEW_TOOLBARS, Get_ui_key_view_toolbars },
+
+ {"gui_key_view_tab_cabinet", input_seq(), ID_VIEW_TAB_CABINET, Get_ui_key_view_tab_cabinet },
+ {"gui_key_view_tab_cpanel", input_seq(), ID_VIEW_TAB_CONTROL_PANEL, Get_ui_key_view_tab_cpanel },
+ {"gui_key_view_tab_flyer", input_seq(), ID_VIEW_TAB_FLYER, Get_ui_key_view_tab_flyer },
+ {"gui_key_view_tab_history", input_seq(), ID_VIEW_TAB_HISTORY, Get_ui_key_view_tab_history },
+ {"gui_key_view_tab_marquee", input_seq(), ID_VIEW_TAB_MARQUEE, Get_ui_key_view_tab_marquee },
+ {"gui_key_view_tab_screenshot", input_seq(), ID_VIEW_TAB_SCREENSHOT, Get_ui_key_view_tab_screenshot },
+ {"gui_key_view_tab_title", input_seq(), ID_VIEW_TAB_TITLE, Get_ui_key_view_tab_title },
+ {"gui_key_view_tab_pcb", input_seq(), ID_VIEW_TAB_PCB, Get_ui_key_view_tab_pcb },
+ {"gui_key_quit", input_seq(), ID_FILE_EXIT, Get_ui_key_quit },
+};
+
+
+#define NUM_GUI_SEQUENCES (sizeof(GUISequenceControl) / sizeof(GUISequenceControl[0]))
+
+
+static UINT lastColumnClick = 0;
+static WNDPROC g_lpHistoryWndProc = NULL;
+static WNDPROC g_lpPictureFrameWndProc = NULL;
+static WNDPROC g_lpPictureWndProc = NULL;
+
+static POPUPSTRING popstr[MAX_MENUS + 1];
+
+/* Tool and Status bar variables */
+static HWND hStatusBar = 0;
+static HWND s_hToolBar = 0;
+
+/* Column Order as Displayed */
+static BOOL oldControl = false;
+static BOOL xpControl = false;
+
+/* Used to recalculate the main window layout */
+static int bottomMargin;
+static int topMargin;
+static int have_history = false;
+
+static BOOL have_selection = false;
+
+static HBITMAP hMissing_bitmap = NULL;
+
+/* Icon variables */
+static HIMAGELIST hLarge = NULL;
+static HIMAGELIST hSmall = NULL;
+static HIMAGELIST hHeaderImages = NULL;
+static int *icon_index = NULL; /* for custom per-game icons */
+
+static const TBBUTTON tbb[] =
+{
+ {0, ID_VIEW_FOLDERS, TBSTATE_ENABLED, TBSTYLE_CHECK, {0, 0}, 0, 0},
+ {1, ID_VIEW_PICTURE_AREA,TBSTATE_ENABLED, TBSTYLE_CHECK, {0, 0}, 0, 1},
+ {0, 0, TBSTATE_ENABLED, TBSTYLE_SEP, {0, 0}, 0, 0},
+ {2, ID_VIEW_LARGE_ICON, TBSTATE_ENABLED, TBSTYLE_CHECKGROUP, {0, 0}, 0, 2},
+ {3, ID_VIEW_SMALL_ICON, TBSTATE_ENABLED, TBSTYLE_CHECKGROUP, {0, 0}, 0, 3},
+ {4, ID_VIEW_LIST_MENU, TBSTATE_ENABLED, TBSTYLE_CHECKGROUP, {0, 0}, 0, 4},
+ {5, ID_VIEW_DETAIL, TBSTATE_ENABLED, TBSTYLE_CHECKGROUP, {0, 0}, 0, 5},
+ {6, ID_VIEW_GROUPED, TBSTATE_ENABLED, TBSTYLE_CHECKGROUP, {0, 0}, 0, 6},
+ {0, 0, TBSTATE_ENABLED, TBSTYLE_SEP, {0, 0}, 0, 0},
+ {7, ID_HELP_ABOUT, TBSTATE_ENABLED, TBSTYLE_BUTTON, {0, 0}, 0, 7},
+ {8, ID_HELP_CONTENTS, TBSTATE_ENABLED, TBSTYLE_BUTTON, {0, 0}, 0, 8}
+};
+
+#define NUM_TOOLBUTTONS (sizeof(tbb) / sizeof(tbb[0]))
+
+#define NUM_TOOLTIPS 9
+
+static const TCHAR szTbStrings[NUM_TOOLTIPS + 1][30] =
+{
+ TEXT("Toggle Folder List"),
+ TEXT("Toggle Screen Shot"),
+ TEXT("Large Icons"),
+ TEXT("Small Icons"),
+ TEXT("List"),
+ TEXT("Details"),
+ TEXT("Grouped"),
+ TEXT("About"),
+ TEXT("Help")
+};
+
+static const int CommandToString[] =
+{
+ ID_VIEW_FOLDERS,
+ ID_VIEW_PICTURE_AREA,
+ ID_VIEW_LARGE_ICON,
+ ID_VIEW_SMALL_ICON,
+ ID_VIEW_LIST_MENU,
+ ID_VIEW_DETAIL,
+ ID_VIEW_GROUPED,
+ ID_HELP_ABOUT,
+ ID_HELP_CONTENTS,
+ -1
+};
+
+static const int s_nPickers[] =
+{
+ IDC_LIST
+};
+
+
+/* How to resize toolbar sub window */
+static ResizeItem toolbar_resize_items[] =
+{
+ { RA_ID, { ID_TOOLBAR_EDIT }, true, RA_LEFT | RA_TOP, NULL },
+ { RA_END, { 0 }, false, 0, NULL }
+};
+
+static Resize toolbar_resize = { {0, 0, 0, 0}, toolbar_resize_items };
+
+/* How to resize main window */
+static ResizeItem main_resize_items[] =
+{
+ { RA_HWND, { 0 }, false, RA_LEFT | RA_RIGHT | RA_TOP, &toolbar_resize },
+ { RA_HWND, { 0 }, false, RA_LEFT | RA_RIGHT | RA_BOTTOM, NULL },
+ { RA_ID, { IDC_DIVIDER }, false, RA_LEFT | RA_RIGHT | RA_TOP, NULL },
+ { RA_ID, { IDC_TREE }, true, RA_LEFT | RA_BOTTOM | RA_TOP, NULL },
+ { RA_ID, { IDC_LIST }, true, RA_ALL, NULL },
+ { RA_ID, { IDC_SPLITTER }, false, RA_LEFT | RA_BOTTOM | RA_TOP, NULL },
+ { RA_ID, { IDC_SPLITTER2 },false, RA_RIGHT | RA_BOTTOM | RA_TOP, NULL },
+ { RA_ID, { IDC_SSFRAME }, false, RA_RIGHT | RA_BOTTOM | RA_TOP, NULL },
+ { RA_ID, { IDC_SSPICTURE },false, RA_RIGHT | RA_BOTTOM | RA_TOP, NULL },
+ { RA_ID, { IDC_HISTORY }, true, RA_RIGHT | RA_BOTTOM | RA_TOP, NULL },
+ { RA_ID, { IDC_SSTAB }, false, RA_RIGHT | RA_TOP, NULL },
+ { RA_END, { 0 }, false, 0, NULL }
+};
+
+static Resize main_resize = { {0, 0, 0, 0}, main_resize_items };
+
+/* last directory for common file dialogs */
+TCHAR last_directory[MAX_PATH];
+
+/* system-wide window message sent out with an ATOM of the current game name
+ each time it changes */
+static UINT g_mame32_message = 0;
+
+static BOOL g_listview_dragging = false;
+static HIMAGELIST himl_drag;
+static int game_dragged; /* which game started the drag */
+static HTREEITEM prev_drag_drop_target; /* which tree view item we're currently highlighting */
+
+static BOOL g_in_treeview_edit = false;
+
+/***************************************************************************
+ Global variables
+ ***************************************************************************/
+
+/* Background Image handles also accessed from TreeView.c */
+static HPALETTE hPALbg = 0;
+static HBITMAP hBackground = 0;
+static MYBITMAPINFO bmDesc;
+
+/* List view Column text */
+extern const LPCTSTR column_names[COLUMN_MAX] =
+{
+ TEXT("Machine"),
+ TEXT("Source"),
+ TEXT("Directory"),
+ TEXT("Type"),
+ TEXT("Screen"),
+ TEXT("Manufacturer"),
+ TEXT("Year"),
+ TEXT("Played"),
+ TEXT("Play Time"),
+ TEXT("Clone Of"),
+ TEXT("Trackball"),
+ TEXT("Samples"),
+ TEXT("ROMs"),
+};
+
+/***************************************************************************
+ Message Macros
+ ***************************************************************************/
+
+#ifndef StatusBar_GetItemRect
+#define StatusBar_GetItemRect(hWnd, iPart, lpRect) \
+ SendMessage(hWnd, SB_GETRECT, (WPARAM) iPart, (LPARAM) (LPRECT) lpRect)
+#endif
+
+#ifndef ToolBar_CheckButton
+#define ToolBar_CheckButton(hWnd, idButton, fCheck) \
+ SendMessage(hWnd, TB_CHECKBUTTON, (WPARAM)idButton, (LPARAM)MAKELONG(fCheck, 0))
+#endif
+
+//============================================================
+// winui_output_error
+//============================================================
+
+
+class mameui_output_error : public osd_output
+{
+public:
+ virtual void output_callback(osd_output_channel channel, const char *msg, va_list args)
+ {
+ if (channel == OSD_OUTPUT_CHANNEL_VERBOSE)
+ {
+ FILE *pFile;
+ pFile = fopen("verbose.log", "a");
+ vfprintf(pFile, msg, args);fflush(pFile);
+ fclose (pFile);
+ return;
+ }
+
+ if (channel == OSD_OUTPUT_CHANNEL_ERROR)
+ {
+ char buffer[1024];
+
+ // if we are in fullscreen mode, go to windowed mode
+ if ((video_config.windowed == 0) && !osd_common_t::s_window_list.empty())
+ winwindow_toggle_full_screen();
+
+ vsnprintf(buffer, ARRAY_LENGTH(buffer), msg, args);printf("%s\n",buffer);
+ win_message_box_utf8(!osd_common_t::s_window_list.empty() ?
+ std::static_pointer_cast<win_window_info>(osd_common_t::s_window_list.front())->platform_window() : hMain, buffer, MAMEUINAME, MB_ICONERROR | MB_OK);
+ }
+// else
+// chain_output(channel, msg, args); // goes down the black hole
+ // LOG all messages
+ FILE *pFile;
+ pFile = fopen("winui.log", "a");
+ vfprintf(pFile, msg, args);fflush(pFile);
+ fclose (pFile);
+/* List of output types:
+ case OSD_OUTPUT_CHANNEL_ERROR:
+ case OSD_OUTPUT_CHANNEL_WARNING:
+ vfprintf(stderr, msg, args); // send errors and warnings to standard error (=console)
+ break;
+ case OSD_OUTPUT_CHANNEL_INFO:
+ case OSD_OUTPUT_CHANNEL_LOG:
+ vfprintf(stdout, msg, args); // send info and logging to standard output (=console)
+ break;
+ case OSD_OUTPUT_CHANNEL_VERBOSE:
+ if (verbose()) vfprintf(stdout, msg, args); // send verbose (2nd half) to console if enabled (first half lost)
+ break;
+ case OSD_OUTPUT_CHANNEL_DEBUG: // only for debug builds
+ vfprintf(stdout, msg, args);
+*/
+ }
+};
+
+static std::wstring s2ws(const string& s)
+{
+ int slength = (int)s.length() + 1;
+ int len = MultiByteToWideChar(CP_ACP, 0, s.c_str(), slength, 0, 0);
+ wchar_t* buf = new wchar_t[len];
+ MultiByteToWideChar(CP_ACP, 0, s.c_str(), slength, buf, len);
+ std::wstring r(buf);
+ delete[] buf;
+ return r;
+}
+
+
+/***************************************************************************
+ External functions
+ ***************************************************************************/
+static DWORD RunMAME(int nGameIndex, const play_options *playopts)
+{
+ time_t start, end;
+ double elapsedtime;
+ int i;
+ //mame_options mame_opts; //seems useless....
+ windows_options global_opts;
+ // set up MAME options
+ // mame_opts = mame_options_init(mame_win_options);
+
+ // Tell mame were to get the INIs
+ SetDirectories(global_opts);
+
+ // set some startup options
+ global_opts.set_value(OPTION_LANGUAGE, GetLanguageUI(), OPTION_PRIORITY_CMDLINE);
+ global_opts.set_value(OPTION_PLUGINS, GetEnablePlugins(), OPTION_PRIORITY_CMDLINE);
+ global_opts.set_value(OPTION_PLUGIN, GetPlugins(), OPTION_PRIORITY_CMDLINE);
+
+ // add image specific device options
+ //mame_opts.set_system_name(global_opts, driver_list::driver(nGameIndex).name);
+ global_opts.set_value(OPTION_SYSTEMNAME, driver_list::driver(nGameIndex).name, OPTION_PRIORITY_CMDLINE);
+
+ // set any specified play options
+ if (playopts_apply == 0x57)
+ {
+ if (playopts->record)
+ global_opts.set_value(OPTION_RECORD, playopts->record, OPTION_PRIORITY_CMDLINE);
+ if (playopts->playback)
+ global_opts.set_value(OPTION_PLAYBACK, playopts->playback, OPTION_PRIORITY_CMDLINE);
+ if (playopts->state)
+ global_opts.set_value(OPTION_STATE, playopts->state, OPTION_PRIORITY_CMDLINE);
+ if (playopts->wavwrite)
+ global_opts.set_value(OPTION_WAVWRITE, playopts->wavwrite, OPTION_PRIORITY_CMDLINE);
+ if (playopts->mngwrite)
+ global_opts.set_value(OPTION_MNGWRITE, playopts->mngwrite, OPTION_PRIORITY_CMDLINE);
+ if (playopts->aviwrite)
+ global_opts.set_value(OPTION_AVIWRITE, playopts->aviwrite, OPTION_PRIORITY_CMDLINE);
+ }
+
+ // Mame will parse all the needed .ini files.
+
+ // prepare MAME32 to run the game
+ ShowWindow(hMain, SW_HIDE);
+
+ for (i = 0; i < ARRAY_LENGTH(s_nPickers); i++)
+ Picker_ClearIdle(GetDlgItem(hMain, s_nPickers[i]));
+
+ // run the emulation
+ // Time the game run.
+ time(&start);
+ windows_osd_interface osd(global_opts);
+ // output errors to message boxes
+ mameui_output_error winerror;
+ osd_output::push(&winerror);
+ osd.register_options();
+ mame_machine_manager *manager = mame_machine_manager::instance(global_opts, osd);
+ load_translation(global_opts);
+ manager->start_http_server();
+ manager->start_luaengine();
+ manager->execute();
+ osd_output::pop(&winerror);
+ global_free(manager);
+ // Calc the duration
+ time(&end);
+ elapsedtime = end - start;
+ // Increment our playtime.
+ IncrementPlayTime(nGameIndex, elapsedtime);
+
+ // clear any specified play options
+ // do it this way to preserve slots and software entries
+ if (playopts_apply == 0x57)
+ {
+ windows_options o;
+ load_options(o, OPTIONS_GAME, nGameIndex, 0);
+ if (playopts->record)
+ o.set_value(OPTION_RECORD, "", OPTION_PRIORITY_CMDLINE);
+ if (playopts->playback)
+ o.set_value(OPTION_PLAYBACK, "", OPTION_PRIORITY_CMDLINE);
+ if (playopts->state)
+ o.set_value(OPTION_STATE, "", OPTION_PRIORITY_CMDLINE);
+ if (playopts->wavwrite)
+ o.set_value(OPTION_WAVWRITE, "", OPTION_PRIORITY_CMDLINE);
+ if (playopts->mngwrite)
+ o.set_value(OPTION_MNGWRITE, "", OPTION_PRIORITY_CMDLINE);
+ if (playopts->aviwrite)
+ o.set_value(OPTION_AVIWRITE, "", OPTION_PRIORITY_CMDLINE);
+ // apply the above to the ini file
+ save_options(o, OPTIONS_GAME, nGameIndex);
+ }
+ playopts_apply = 0;
+
+ // the emulation is complete; continue
+ for (i = 0; i < ARRAY_LENGTH(s_nPickers); i++)
+ Picker_ResetIdle(GetDlgItem(hMain, s_nPickers[i]));
+ ShowWindow(hMain, SW_SHOW);
+ SetForegroundWindow(hMain);
+
+ return (DWORD)0;
+}
+
+int MameUIMain(HINSTANCE hInstance, LPWSTR lpCmdLine, int nCmdShow)
+{
+ // delete old log file, ignore any error
+ unlink("verbose.log");
+ unlink("winui.log");
+
+ if (__argc != 1)
+ {
+ /* Rename main because gcc will use it instead of WinMain even with -mwindows */
+ extern int main_(int argc, char *argv[]);
+ exit(main_(__argc, __argv));
+ }
+ if (!Win32UI_init(hInstance, lpCmdLine, nCmdShow))
+ return 1;
+
+ // pump message, but quit on WM_QUIT
+ while(PumpMessage())
+ ;
+
+ Win32UI_exit();
+ return 0;
+}
+
+
+HWND GetMainWindow(void)
+{
+ return hMain;
+}
+
+HWND GetTreeView(void)
+{
+ return hTreeView;
+}
+
+object_pool *GetMameUIMemoryPool(void)
+{
+ return mameui_pool;
+}
+
+void GetRealColumnOrder(int order[])
+{
+ int nColumnMax = Picker_GetNumColumns(hwndList);
+
+ /* Get the Column Order and save it */
+ if (!oldControl)
+ {
+ int tmpOrder[COLUMN_MAX];
+ BOOL res = ListView_GetColumnOrderArray(hwndList, nColumnMax, tmpOrder);
+ res++;
+
+ for (int i = 0; i < nColumnMax; i++)
+ order[i] = Picker_GetRealColumnFromViewColumn(hwndList, tmpOrder[i]);
+ }
+}
+
+/*
+ * PURPOSE: Format raw data read from an ICO file to an HICON
+ * PARAMS: PBYTE ptrBuffer - Raw data from an ICO file
+ * UINT nBufferSize - Size of buffer ptrBuffer
+ * RETURNS: HICON - handle to the icon, NULL for failure
+ * History: July '95 - Created
+ * March '00- Seriously butchered from MSDN for mine own
+ * purposes, sayeth H0ek.
+ */
+static HICON FormatICOInMemoryToHICON(PBYTE ptrBuffer, UINT nBufferSize)
+{
+ /* Is there a WORD? */
+ if (nBufferSize < sizeof(WORD))
+ return NULL;
+
+ /* Was it 'reserved' ? (ie 0) */
+ UINT nBufferIndex = 0;
+ if ((WORD)(ptrBuffer[nBufferIndex]) != 0)
+ return NULL;
+
+ nBufferIndex += sizeof(WORD);
+
+ /* Is there a WORD? */
+ if (nBufferSize - nBufferIndex < sizeof(WORD))
+ return NULL;
+
+ /* Was it type 1? */
+ if ((WORD)(ptrBuffer[nBufferIndex]) != 1)
+ return NULL;
+
+ nBufferIndex += sizeof(WORD);
+
+ /* Is there a WORD? */
+ if (nBufferSize - nBufferIndex < sizeof(WORD))
+ return NULL;
+
+ /* Then that's the number of images in the ICO file */
+ UINT nNumImages = (WORD)(ptrBuffer[nBufferIndex]);
+
+ /* Is there at least one icon in the file? */
+ if ( nNumImages < 1 )
+ return NULL;
+
+ nBufferIndex += sizeof(WORD);
+
+ /* Is there enough space for the icon directory entries? */
+ if ((nBufferIndex + nNumImages * sizeof(ICONDIRENTRY)) > nBufferSize)
+ return NULL;
+
+ /* Assign icon directory entries from buffer */
+ LPICONDIRENTRY lpIDE = (LPICONDIRENTRY)(&ptrBuffer[nBufferIndex]);
+ nBufferIndex += nNumImages * sizeof (ICONDIRENTRY);
+
+ ICONIMAGE IconImage;
+ IconImage.dwNumBytes = lpIDE->dwBytesInRes;
+
+ /* Seek to beginning of this image */
+ if ( lpIDE->dwImageOffset > nBufferSize )
+ return NULL;
+
+ nBufferIndex = lpIDE->dwImageOffset;
+
+ /* Read it in */
+ if ((nBufferIndex + lpIDE->dwBytesInRes) > nBufferSize)
+ return NULL;
+
+ IconImage.lpBits = &ptrBuffer[nBufferIndex];
+ nBufferIndex += lpIDE->dwBytesInRes;
+
+ /* It failed, odds are good we're on NT so try the non-Ex way */
+ HICON hIcon = NULL;
+ if (hIcon == NULL)
+ /* We would break on NT if we try with a 16bpp image */
+ if (((LPBITMAPINFO)IconImage.lpBits)->bmiHeader.biBitCount != 16)
+ hIcon = CreateIconFromResourceEx(IconImage.lpBits, IconImage.dwNumBytes, true, 0x00030000,0,0,LR_DEFAULTSIZE);
+
+ return hIcon;
+}
+
+HICON LoadIconFromFile(const char *iconname)
+{
+ HICON hIcon = 0;
+ struct stat file_stat;
+ char tmpStr[MAX_PATH];
+ char tmpIcoName[MAX_PATH];
+ PBYTE bufferPtr = 0;
+ util::archive_file::ptr zip;
+
+ const string t = GetIconsDir();
+ sprintf(tmpStr, "%s/%s.ico", t.c_str(), iconname);
+ if (stat(tmpStr, &file_stat) != 0 || (hIcon = win_extract_icon_utf8(hInst, tmpStr, 0)) == 0)
+ {
+ sprintf(tmpStr, "%s/icons.zip", t.c_str());
+ sprintf(tmpIcoName, "%s.ico", iconname);
+
+ if (util::archive_file::open_zip(tmpStr, zip) == util::archive_file::error::NONE)
+ {
+ if (zip->search(tmpIcoName, false) >= 0)
+ {
+ bufferPtr = (PBYTE)malloc(zip->current_uncompressed_length());
+ if (bufferPtr)
+ {
+ if (zip->decompress(bufferPtr, zip->current_uncompressed_length()) == util::archive_file::error::NONE)
+ hIcon = FormatICOInMemoryToHICON(bufferPtr, zip->current_uncompressed_length());
+
+ free(bufferPtr);
+ }
+ }
+ zip.reset();
+ }
+ else
+ {
+ sprintf(tmpStr, "%s/icons.7z", t.c_str());
+ sprintf(tmpIcoName, "%s.ico", iconname);
+
+ if (util::archive_file::open_7z(tmpStr, zip) == util::archive_file::error::NONE)
+ {
+ if (zip->search(tmpIcoName, false) >= 0)
+ {
+ bufferPtr = (PBYTE)malloc(zip->current_uncompressed_length());
+ if (bufferPtr)
+ {
+ if (zip->decompress(bufferPtr, zip->current_uncompressed_length()) == util::archive_file::error::NONE)
+ hIcon = FormatICOInMemoryToHICON(bufferPtr, zip->current_uncompressed_length());
+
+ free(bufferPtr);
+ }
+ }
+ zip.reset();
+ }
+ }
+ }
+ return hIcon;
+}
+
+
+/* Return the number of folders with options */
+void SetNumOptionFolders(int count)
+{
+ optionfolder_count = count;
+}
+
+/* search */
+const char * GetSearchText(void)
+{
+ return g_SearchText;
+}
+
+
+/* Sets the treeview and listviews sizes in accordance with their visibility and the splitters */
+static void ResizeTreeAndListViews(BOOL bResizeHidden)
+{
+ bool bShowPicture = BIT(GetWindowPanes(), 3);
+ int nLastWidth = 0;
+ int nLastWidth2 = 0;
+ int nLeftWindowWidth = 0;
+ RECT rect;
+ BOOL bVisible;
+ //int nLastOverlap = -1;
+
+ /* Size the List Control in the Picker */
+ GetClientRect(hMain, &rect);
+
+ if (bShowStatusBar)
+ rect.bottom -= bottomMargin;
+ if (bShowToolBar)
+ rect.top += topMargin;
+
+ /* Tree control */
+ ShowWindow(GetDlgItem(hMain, IDC_TREE), BIT(GetWindowPanes(), 0) ? SW_SHOW : SW_HIDE);
+
+ for (int i = 0; g_splitterInfo[i].nSplitterWindow; i++)
+ {
+ bVisible = GetWindowLong(GetDlgItem(hMain, g_splitterInfo[i].nLeftWindow), GWL_STYLE) & WS_VISIBLE ? true : false;
+ if (bResizeHidden || bVisible)
+ {
+ nLeftWindowWidth = nSplitterOffset[i] - SPLITTER_WIDTH/2 - nLastWidth;
+
+ /* special case for the rightmost pane when the screenshot is gone */
+ if (!bShowPicture && !g_splitterInfo[i+1].nSplitterWindow)
+ nLeftWindowWidth = rect.right - nLastWidth;
+
+ /* woah? are we overlapping ourselves? */
+ if (nLeftWindowWidth < MIN_VIEW_WIDTH)
+ {
+ //nLastOverlap = i;
+ nLastWidth = nLastWidth2;
+ nLeftWindowWidth = nSplitterOffset[i] - MIN_VIEW_WIDTH - (SPLITTER_WIDTH*3/2) - nLastWidth;
+ i--;
+ }
+
+ MoveWindow(GetDlgItem(hMain, g_splitterInfo[i].nLeftWindow), nLastWidth, rect.top + 2, nLeftWindowWidth, (rect.bottom - rect.top) - 4 , true);
+
+ MoveWindow(GetDlgItem(hMain, g_splitterInfo[i].nSplitterWindow), nSplitterOffset[i], rect.top + 2, SPLITTER_WIDTH, (rect.bottom - rect.top) - 4, true);
+ }
+
+ if (bVisible)
+ {
+ nLastWidth2 = nLastWidth;
+ nLastWidth += nLeftWindowWidth + SPLITTER_WIDTH;
+ }
+ }
+}
+
+/* Adjust the list view and screenshot button based on GetShowScreenShot() */
+void UpdateScreenShot(void)
+{
+ /* first time through can't do this stuff */
+ if (hwndList == NULL)
+ return;
+
+ RECT rect;
+ //int nWidth;
+ RECT fRect;
+ POINT p = {0, 0};
+
+ /* Size the List Control in the Picker */
+ GetClientRect(hMain, &rect);
+
+ if (bShowStatusBar)
+ rect.bottom -= bottomMargin;
+ if (bShowToolBar)
+ rect.top += topMargin;
+
+ BOOL bShowImage = BIT(GetWindowPanes(), 3); // ss
+ CheckMenuItem(GetMenu(hMain), ID_VIEW_PICTURE_AREA, bShowImage ? MF_CHECKED : MF_UNCHECKED);
+ ToolBar_CheckButton(s_hToolBar, ID_VIEW_PICTURE_AREA, bShowImage ? MF_CHECKED : MF_UNCHECKED);
+
+ ResizeTreeAndListViews(false);
+
+ FreeScreenShot();
+
+ if (have_selection)
+ // load and set image, or empty it if we don't have one
+ LoadScreenShot(Picker_GetSelectedItem(hwndList), NULL, TabView_GetCurrentTab(hTabCtrl));
+
+ // figure out if we have a history or not, to place our other windows properly
+ UpdateHistory();
+
+ // setup the picture area
+
+ if (bShowImage)
+ {
+ DWORD dwStyle;
+ DWORD dwStyleEx;
+ BOOL showing_history;
+
+ ClientToScreen(hMain, &p);
+ GetWindowRect(GetDlgItem(hMain, IDC_SSFRAME), &fRect);
+ OffsetRect(&fRect, -p.x, -p.y);
+
+ // show history on this tab IF
+ // - we have history for the game
+ // - we're on the first tab
+ // - we DON'T have a separate history tab
+ showing_history = (have_history && (TabView_GetCurrentTab(hTabCtrl) == GetHistoryTab() || GetHistoryTab() == TAB_ALL ) && GetShowTab(TAB_HISTORY) == false);
+ CalculateBestScreenShotRect(GetDlgItem(hMain, IDC_SSFRAME), &rect,showing_history);
+
+ dwStyle = GetWindowLong(GetDlgItem(hMain, IDC_SSPICTURE), GWL_STYLE);
+ dwStyleEx = GetWindowLong(GetDlgItem(hMain, IDC_SSPICTURE), GWL_EXSTYLE);
+
+ AdjustWindowRectEx(&rect, dwStyle, false, dwStyleEx);
+ MoveWindow(GetDlgItem(hMain, IDC_SSPICTURE), fRect.left + rect.left, fRect.top + rect.top, rect.right - rect.left, rect.bottom - rect.top, true);
+
+ ShowWindow(GetDlgItem(hMain,IDC_SSPICTURE), (TabView_GetCurrentTab(hTabCtrl) != TAB_HISTORY) ? SW_SHOW : SW_HIDE);
+ ShowWindow(GetDlgItem(hMain,IDC_SSFRAME),SW_SHOW);
+ ShowWindow(GetDlgItem(hMain,IDC_SSTAB),bShowTabCtrl ? SW_SHOW : SW_HIDE);
+
+ InvalidateRect(GetDlgItem(hMain,IDC_SSPICTURE),NULL,false);
+ }
+ else
+ {
+ ShowWindow(GetDlgItem(hMain,IDC_SSPICTURE),SW_HIDE);
+ ShowWindow(GetDlgItem(hMain,IDC_SSFRAME),SW_HIDE);
+ ShowWindow(GetDlgItem(hMain,IDC_SSTAB),SW_HIDE);
+ }
+
+}
+
+void ResizePickerControls(HWND hWnd)
+{
+ RECT frameRect;
+ RECT rect, sRect;
+ static BOOL firstTime = true;
+ int doSSControls = true;
+
+ int nSplitterCount = GetSplitterCount();
+
+ /* Size the List Control in the Picker */
+ GetClientRect(hWnd, &rect);
+
+ /* Calc the display sizes based on g_splitterInfo */
+ if (firstTime)
+ {
+ RECT rWindow;
+
+ for (int i = 0; i < nSplitterCount; i++)
+ nSplitterOffset[i] = rect.right * g_splitterInfo[i].dPosition;
+
+ GetWindowRect(hStatusBar, &rWindow);
+ bottomMargin = rWindow.bottom - rWindow.top;
+ GetWindowRect(s_hToolBar, &rWindow);
+ topMargin = rWindow.bottom - rWindow.top;
+ /*buttonMargin = (sRect.bottom + 4); */
+
+ firstTime = false;
+ }
+ else
+ doSSControls = BIT(GetWindowPanes(), 3);
+
+ if (bShowStatusBar)
+ rect.bottom -= bottomMargin;
+
+ if (bShowToolBar)
+ rect.top += topMargin;
+
+ MoveWindow(GetDlgItem(hWnd, IDC_DIVIDER), rect.left, rect.top - 4, rect.right, 2, true);
+
+ ResizeTreeAndListViews(true);
+
+ int nListWidth = nSplitterOffset[nSplitterCount-1];
+ int nScreenShotWidth = (rect.right - nListWidth) - 4;
+
+ /* Screen shot Page tab control */
+ if (bShowTabCtrl)
+ {
+ MoveWindow(GetDlgItem(hWnd, IDC_SSTAB), nListWidth + 4, rect.top + 2, nScreenShotWidth - 2, rect.top + 20, doSSControls);
+ rect.top += 20;
+ }
+
+ /* resize the Screen shot frame */
+ MoveWindow(GetDlgItem(hWnd, IDC_SSFRAME), nListWidth + 4, rect.top + 2, nScreenShotWidth - 2, (rect.bottom - rect.top) - 4, doSSControls);
+
+ /* The screen shot controls */
+ GetClientRect(GetDlgItem(hWnd, IDC_SSFRAME), &frameRect);
+
+ /* Text control - game history */
+ sRect.left = nListWidth + 14;
+ sRect.right = sRect.left + (nScreenShotWidth - 22);
+
+ if (GetShowTab(TAB_HISTORY))
+ {
+ // We're using the new mode, with the history filling the entire tab (almost)
+ sRect.top = rect.top + 14;
+ sRect.bottom = (rect.bottom - rect.top) - 30;
+ }
+ else
+ {
+ // We're using the original mode, with the history beneath the SS picture
+ sRect.top = rect.top + 264;
+ sRect.bottom = (rect.bottom - rect.top) - 278;
+ }
+
+ MoveWindow(GetDlgItem(hWnd, IDC_HISTORY), sRect.left, sRect.top, sRect.right - sRect.left, sRect.bottom, doSSControls);
+
+ /* the other screen shot controls will be properly placed in UpdateScreenshot() */
+}
+
+
+char *ModifyThe(const char *str)
+{
+ static int bufno = 0;
+ static char buffer[4][255];
+
+ if (strncmp(str, "The ", 4) == 0)
+ {
+ char *s, *p;
+ char temp[255];
+
+ strcpy(temp, &str[4]);
+
+ bufno = (bufno + 1) % 4;
+
+ s = buffer[bufno];
+
+ /* Check for version notes in parens */
+ p = strchr(temp, '(');
+ if (p)
+ {
+ p[-1] = '\0';
+ }
+
+ strcpy(s, temp);
+ strcat(s, ", The");
+
+ if (p)
+ {
+ strcat(s, " ");
+ strcat(s, p);
+ }
+
+ return s;
+ }
+ return (char *)str;
+}
+
+HBITMAP GetBackgroundBitmap(void)
+{
+ return hBackground;
+}
+
+HPALETTE GetBackgroundPalette(void)
+{
+ return hPALbg;
+}
+
+MYBITMAPINFO *GetBackgroundInfo(void)
+{
+ return &bmDesc;
+}
+
+BOOL GetUseOldControl(void)
+{
+ return oldControl;
+}
+
+BOOL GetUseXPControl(void)
+{
+ return xpControl;
+}
+
+int GetMinimumScreenShotWindowWidth(void)
+{
+ BITMAP bmp;
+ GetObject(hMissing_bitmap,sizeof(BITMAP),&bmp);
+
+ return bmp.bmWidth + 6; // 6 is for a little breathing room
+}
+
+
+int GetParentIndex(const game_driver *driver)
+{
+ return GetGameNameIndex(driver->parent);
+}
+
+int GetParentRomSetIndex(const game_driver *driver)
+{
+ int nParentIndex = GetGameNameIndex(driver->parent);
+
+ if( nParentIndex >= 0)
+ if ((driver_list::driver(nParentIndex).flags & MACHINE_IS_BIOS_ROOT) == 0)
+ return nParentIndex;
+
+ return -1;
+}
+
+int GetGameNameIndex(const char *name)
+{
+ return driver_list::find(name);
+}
+
+/***************************************************************************
+ Internal functions
+ ***************************************************************************/
+
+
+static void SetMainTitle(void)
+{
+ char version[50];
+ char buffer[100];
+
+ sscanf(GetVersionString(),"%49s",version);
+ snprintf(buffer, ARRAY_LENGTH(buffer), "%s %s", MAMEUINAME, GetVersionString());
+ win_set_window_text_utf8(hMain,buffer);
+}
+
+static void memory_error(const char *message)
+{
+ win_message_box_utf8(hMain, message, emulator_info::get_appname(), MB_OK);
+ exit(-1);
+}
+
+static BOOL Win32UI_init(HINSTANCE hInstance, LPWSTR lpCmdLine, int nCmdShow)
+{
+ extern int mame_validitychecks(int game);
+ WNDCLASS wndclass;
+ RECT rect;
+ int i, nSplitterCount;
+ extern const FOLDERDATA g_folderData[];
+ extern const FILTER_ITEM g_filterList[];
+ LONG common_control_version = GetCommonControlVersion();
+ int validity_failed = 0;
+ LONG_PTR l;
+
+ if (!OptionsInit())
+ return false;
+
+ srand((unsigned)time(NULL));
+
+ // create the memory pool
+ mameui_pool = pool_alloc_lib(memory_error);
+
+ // custom per-game icons
+ icon_index = (int*)pool_malloc_lib(mameui_pool, sizeof(int) * driver_list::total());
+ memset(icon_index, '\0', sizeof(int) * driver_list::total());
+
+ // set up window class
+ wndclass.style = CS_HREDRAW | CS_VREDRAW;
+ wndclass.lpfnWndProc = MameWindowProc;
+ wndclass.cbClsExtra = 0;
+ wndclass.cbWndExtra = DLGWINDOWEXTRA;
+ wndclass.hInstance = hInstance;
+ wndclass.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_MAMEUI_ICON));
+ wndclass.hCursor = NULL;
+ wndclass.hbrBackground = (HBRUSH)(COLOR_3DFACE + 1);
+ wndclass.lpszMenuName = MAKEINTRESOURCE(IDR_UI_MENU);
+ wndclass.lpszClassName = TEXT("MainClass");
+
+ RegisterClass(&wndclass);
+
+ InitCommonControls();
+
+ // Are we using an Old comctl32.dll?
+ dprintf("common controlversion %ld %ld\n",common_control_version >> 16, common_control_version & 0xffff);
+
+ oldControl = (common_control_version < PACKVERSION(4,71));
+ xpControl = (common_control_version >= PACKVERSION(6,0));
+ if (oldControl)
+ {
+ char buf[] = MAMEUINAME " has detected an old version of comctl32.dll.\n\n"
+ "Various features are not available without an updated DLL.\n\n";
+
+ win_message_box_utf8(0, buf, MAMEUINAME " Outdated comctl32.dll Error", MB_OK | MB_ICONWARNING);
+ return false;
+ }
+
+ g_mame32_message = RegisterWindowMessage(TEXT("MAME32"));
+
+ HelpInit();
+
+ hMain = CreateDialog(hInstance, MAKEINTRESOURCE(IDD_MAIN), 0, NULL);
+ if (hMain == NULL)
+ {
+ dprintf("error creating main dialog, aborting\n");
+ return false;
+ }
+
+ s_pWatcher = DirWatcher_Init(hMain, WM_MAME32_FILECHANGED);
+ if (s_pWatcher)
+ {
+ DirWatcher_Watch(s_pWatcher, 0, GetRomDirs(), true);
+ DirWatcher_Watch(s_pWatcher, 1, GetSampleDirs(), true);
+ }
+
+ SetMainTitle();
+ hTabCtrl = GetDlgItem(hMain, IDC_SSTAB);
+
+ {
+ struct TabViewOptions opts;
+
+ static const struct TabViewCallbacks s_tabviewCallbacks =
+ {
+ GetShowTabCtrl, // pfnGetShowTabCtrl
+ SetCurrentTab, // pfnSetCurrentTab
+ GetCurrentTab, // pfnGetCurrentTab
+ SetShowTab, // pfnSetShowTab
+ GetShowTab, // pfnGetShowTab
+
+ GetImageTabShortName, // pfnGetTabShortName
+ GetImageTabLongName, // pfnGetTabLongName
+ UpdateScreenShot // pfnOnSelectionChanged
+ };
+
+ memset(&opts, 0, sizeof(opts));
+ opts.pCallbacks = &s_tabviewCallbacks;
+ opts.nTabCount = MAX_TAB_TYPES;
+
+ if (!SetupTabView(hTabCtrl, &opts))
+ return false;
+ }
+
+ /* subclass history window */
+ l = GetWindowLongPtr(GetDlgItem(hMain, IDC_HISTORY), GWLP_WNDPROC);
+ g_lpHistoryWndProc = (WNDPROC)l;
+ SetWindowLongPtr(GetDlgItem(hMain, IDC_HISTORY), GWLP_WNDPROC, (LONG_PTR)HistoryWndProc);
+
+ /* subclass picture frame area */
+ l = GetWindowLongPtr(GetDlgItem(hMain, IDC_SSFRAME), GWLP_WNDPROC);
+ g_lpPictureFrameWndProc = (WNDPROC)l;
+ SetWindowLongPtr(GetDlgItem(hMain, IDC_SSFRAME), GWLP_WNDPROC, (LONG_PTR)PictureFrameWndProc);
+
+ /* subclass picture area */
+ l = GetWindowLongPtr(GetDlgItem(hMain, IDC_SSPICTURE), GWLP_WNDPROC);
+ g_lpPictureWndProc = (WNDPROC)l;
+ SetWindowLongPtr(GetDlgItem(hMain, IDC_SSPICTURE), GWLP_WNDPROC, (LONG_PTR)PictureWndProc);
+
+ /* Load the pic for the default screenshot. */
+ hMissing_bitmap = LoadBitmap(GetModuleHandle(NULL),MAKEINTRESOURCE(IDB_ABOUT));
+
+ /* Stash hInstance for later use */
+ hInst = hInstance;
+
+ s_hToolBar = InitToolbar(hMain);
+ hStatusBar = InitStatusBar(hMain);
+ hProgWnd = InitProgressBar(hStatusBar);
+
+ main_resize_items[0].u.hwnd = s_hToolBar;
+ main_resize_items[1].u.hwnd = hStatusBar;
+
+ /* In order to handle 'Large Fonts' as the Windows
+ * default setting, we need to make the dialogs small
+ * enough to fit in our smallest window size with
+ * large fonts, then resize the picker, tab and button
+ * controls to fill the window, no matter which font
+ * is currently set. This will still look like bad
+ * if the user uses a bigger default font than 125%
+ * (Large Fonts) on the Windows display setting tab.
+ *
+ * NOTE: This has to do with Windows default font size
+ * settings, NOT our picker font size.
+ */
+
+ GetClientRect(hMain, &rect);
+
+ hTreeView = GetDlgItem(hMain, IDC_TREE);
+ hwndList = GetDlgItem(hMain, IDC_LIST);
+
+ if (!InitSplitters())
+ return false;
+
+ nSplitterCount = GetSplitterCount();
+ for (i = 0; i < nSplitterCount; i++)
+ {
+ HWND hWnd;
+ HWND hWndLeft;
+ HWND hWndRight;
+
+ hWnd = GetDlgItem(hMain, g_splitterInfo[i].nSplitterWindow);
+ hWndLeft = GetDlgItem(hMain, g_splitterInfo[i].nLeftWindow);
+ hWndRight = GetDlgItem(hMain, g_splitterInfo[i].nRightWindow);
+
+ AddSplitter(hWnd, hWndLeft, hWndRight, g_splitterInfo[i].pfnAdjust);
+ }
+
+ /* Initial adjustment of controls on the Picker window */
+ ResizePickerControls(hMain);
+
+ TabView_UpdateSelection(hTabCtrl);
+
+ bDoGameCheck = GetGameCheck();
+ idle_work = true;
+ game_index = 0;
+
+ BOOL bShowTree = BIT(GetWindowPanes(), 0);
+ bShowToolBar = GetShowToolBar();
+ bShowStatusBar = GetShowStatusBar();
+ bShowTabCtrl = GetShowTabCtrl();
+
+ CheckMenuItem(GetMenu(hMain), ID_VIEW_FOLDERS, (bShowTree) ? MF_CHECKED : MF_UNCHECKED);
+ ToolBar_CheckButton(s_hToolBar, ID_VIEW_FOLDERS, (bShowTree) ? MF_CHECKED : MF_UNCHECKED);
+ CheckMenuItem(GetMenu(hMain), ID_VIEW_TOOLBARS, (bShowToolBar) ? MF_CHECKED : MF_UNCHECKED);
+ ShowWindow(s_hToolBar, (bShowToolBar) ? SW_SHOW : SW_HIDE);
+ CheckMenuItem(GetMenu(hMain), ID_VIEW_STATUS, (bShowStatusBar) ? MF_CHECKED : MF_UNCHECKED);
+ ShowWindow(hStatusBar, (bShowStatusBar) ? SW_SHOW : SW_HIDE);
+ CheckMenuItem(GetMenu(hMain), ID_VIEW_PAGETAB, (bShowTabCtrl) ? MF_CHECKED : MF_UNCHECKED);
+
+ if (oldControl)
+ {
+ EnableMenuItem(GetMenu(hMain), ID_CUSTOMIZE_FIELDS, MF_GRAYED);
+ EnableMenuItem(GetMenu(hMain), ID_GAME_PROPERTIES, MF_GRAYED);
+ EnableMenuItem(GetMenu(hMain), ID_OPTIONS_DEFAULTS, MF_GRAYED);
+ }
+
+#ifdef UI_DIRECTDRAW
+ /* Init DirectDraw */
+ if (!DirectDraw_Initialize())
+ {
+ DialogBox(GetModuleHandle(NULL),MAKEINTRESOURCE(IDD_DIRECTX), NULL, DirectXDialogProc);
+ return false;
+ }
+#endif
+
+ LoadBackgroundBitmap();
+
+ dprintf("about to init tree\n");
+ InitTree(g_folderData, g_filterList);
+ dprintf("did init tree\n");
+
+ /* Initialize listview columns */
+ InitListView();
+ SetFocus(hwndList);
+
+ /* Reset the font */
+ {
+ LOGFONT logfont;
+
+ GetListFont(&logfont);
+ if (hFont ) {
+ //Clenaup old Font, otherwise we have a GDI handle leak
+ DeleteFont(hFont);
+ }
+ hFont = CreateFontIndirect(&logfont);
+ if (hFont )
+ SetAllWindowsFont(hMain, &main_resize, hFont, false);
+ }
+
+ /* Init DirectInput */
+ if (!DirectInputInitialize())
+ {
+ DialogBox(GetModuleHandle(NULL),MAKEINTRESOURCE(IDD_DIRECTX), NULL, DirectXDialogProc);
+ return false;
+ }
+
+ AdjustMetrics();
+ UpdateScreenShot();
+
+ hAccel = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDA_TAB_KEYS));
+
+ /* clear keyboard state */
+ KeyboardStateClear();
+
+ if (GetJoyGUI() == true)
+ {
+ g_pJoyGUI = &DIJoystick;
+ if (g_pJoyGUI->init() != 0)
+ g_pJoyGUI = NULL;
+ else
+ SetTimer(hMain, JOYGUI_TIMER, JOYGUI_MS, NULL);
+ }
+ else
+ g_pJoyGUI = NULL;
+
+ if (GetHideMouseOnStartup())
+ {
+ /* For some reason the mouse is centered when a game is exited, which of
+ course causes a WM_MOUSEMOVE event that shows the mouse. So we center
+ it now, before the startup coords are initilized, and that way the mouse
+ will still be hidden when exiting from a game (i hope) :)
+ */
+ SetCursorPos(GetSystemMetrics(SM_CXSCREEN)/2,GetSystemMetrics(SM_CYSCREEN)/2);
+
+ // Then hide it
+ ShowCursor(false);
+ }
+
+ nCmdShow = GetWindowState();
+ if (nCmdShow == SW_HIDE || nCmdShow == SW_MINIMIZE || nCmdShow == SW_SHOWMINIMIZED)
+ {
+ nCmdShow = SW_RESTORE;
+ }
+
+ if (GetRunFullScreen())
+ {
+ LONG lMainStyle;
+
+ // Remove menu
+ SetMenu(hMain,NULL);
+
+ // Frameless dialog (fake fullscreen)
+ lMainStyle = GetWindowLong(hMain, GWL_STYLE);
+ lMainStyle = lMainStyle & (WS_BORDER ^ 0xffffffff);
+ SetWindowLong(hMain, GWL_STYLE, lMainStyle);
+
+ nCmdShow = SW_MAXIMIZE;
+ }
+
+ ShowWindow(hMain, nCmdShow);
+
+ switch (GetViewMode())
+ {
+ case VIEW_LARGE_ICONS :
+ SetView(ID_VIEW_LARGE_ICON);
+ break;
+ case VIEW_SMALL_ICONS :
+ SetView(ID_VIEW_SMALL_ICON);
+ break;
+ case VIEW_INLIST :
+ SetView(ID_VIEW_LIST_MENU);
+ break;
+ case VIEW_REPORT :
+ SetView(ID_VIEW_DETAIL);
+ break;
+ case VIEW_GROUPED :
+ default :
+ SetView(ID_VIEW_GROUPED);
+ break;
+ }
+
+ if (GetCycleScreenshot() > 0)
+ {
+ SetTimer(hMain, SCREENSHOT_TIMER, GetCycleScreenshot()*1000, NULL); //scale to Seconds
+ }
+
+ if (validity_failed)
+ {
+ win_message_box_utf8(hMain, MAMEUINAME " has failed its validity checks. The GUI will "
+ "still work, but emulations will fail to execute", MAMEUINAME, MB_OK | MB_ICONERROR);
+ }
+
+ return true;
+}
+
+
+static void Win32UI_exit()
+{
+ if (g_pJoyGUI)
+ g_pJoyGUI->exit();
+
+ /* Free GDI resources */
+ if (hMain) {
+ DeleteObject(hMain);
+ hMain = NULL;
+ }
+
+ if (hMissing_bitmap)
+ {
+ DeleteBitmap(hMissing_bitmap);
+ hMissing_bitmap = NULL;
+ }
+
+ if (hBackground)
+ {
+ DeleteBitmap(hBackground);
+ hBackground = NULL;
+ }
+
+ if (hPALbg)
+ {
+ DeletePalette(hPALbg);
+ hPALbg = NULL;
+ }
+
+ if (hFont)
+ {
+ DeleteFont(hFont);
+ hFont = NULL;
+ }
+
+ DestroyIcons();
+
+ DestroyAcceleratorTable(hAccel);
+
+ DirectInputClose();
+#ifdef UI_DIRECTDRAW
+ DirectDraw_Close();
+#endif
+
+ SetSavedFolderID(GetCurrentFolderID());
+ SaveGameListOptions();
+ //SaveDefaultOptions();
+ SaveOptions();
+
+ FreeFolders();
+
+ /* DestroyTree(hTreeView); */
+
+ FreeScreenShot();
+
+ HelpExit();
+
+ pool_free_lib(mameui_pool);
+ mameui_pool = NULL;
+}
+
+static LRESULT CALLBACK MameWindowProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
+{
+ MINMAXINFO *mminfo;
+ int i;
+ TCHAR szClass[128];
+ BOOL res;
+
+ switch (message)
+ {
+ case WM_CTLCOLORSTATIC:
+ if (hBackground && (HWND)lParam == GetDlgItem(hMain, IDC_HISTORY))
+ {
+ static HBRUSH hBrush=0;
+ HDC hDC=(HDC)wParam;
+ LOGBRUSH lb;
+
+ if (hBrush)
+ DeleteBrush(hBrush);
+ lb.lbStyle = BS_HOLLOW;
+ hBrush = CreateBrushIndirect(&lb);
+ SetBkMode(hDC, TRANSPARENT);
+ SetTextColor(hDC, GetListFontColor());
+ return (LRESULT) hBrush;
+ }
+ break;
+
+ case WM_INITDIALOG:
+ /* Initialize info for resizing subitems */
+ GetClientRect(hWnd, &main_resize.rect);
+ return true;
+
+ case WM_SETFOCUS:
+ SetFocus(hwndList);
+ break;
+
+ case WM_SETTINGCHANGE:
+ AdjustMetrics();
+ return 0;
+
+ case WM_SIZE:
+ OnSize(hWnd, wParam, LOWORD(lParam), HIWORD(wParam));
+ return true;
+
+ case WM_MENUSELECT:
+ return Statusbar_MenuSelect(hWnd, wParam, lParam);
+
+ case MM_PLAY_GAME:
+ MamePlayGame();
+ return true;
+
+ case WM_INITMENUPOPUP:
+ UpdateMenu(GetMenu(hWnd));
+ break;
+
+ case WM_CONTEXTMENU:
+ if (HandleTreeContextMenu(hWnd, wParam, lParam) || HandleScreenShotContextMenu(hWnd, wParam, lParam))
+ return false;
+ break;
+
+ case WM_COMMAND:
+ return MameCommand(hWnd,(int)(LOWORD(wParam)),(HWND)(lParam),(UINT)HIWORD(wParam));
+
+ case WM_GETMINMAXINFO:
+ /* Don't let the window get too small; it can break resizing */
+ mminfo = (MINMAXINFO *) lParam;
+ mminfo->ptMinTrackSize.x = MIN_WIDTH;
+ mminfo->ptMinTrackSize.y = MIN_HEIGHT;
+ return 0;
+
+ case WM_TIMER:
+ switch (wParam)
+ {
+ case JOYGUI_TIMER:
+ PollGUIJoystick();
+ break;
+ case SCREENSHOT_TIMER:
+ TabView_CalculateNextTab(hTabCtrl);
+ UpdateScreenShot();
+ TabView_UpdateSelection(hTabCtrl);
+ break;
+ default:
+ break;
+ }
+ return true;
+
+ case WM_CLOSE:
+ {
+ /* save current item */
+ RECT rect;
+ AREA area;
+ int nItem;
+ WINDOWPLACEMENT wndpl;
+ UINT state;
+
+ wndpl.length = sizeof(WINDOWPLACEMENT);
+ GetWindowPlacement(hMain, &wndpl);
+ state = wndpl.showCmd;
+
+ /* Restore the window before we attempt to save parameters,
+ * This fixed the lost window on startup problem, among other problems
+ */
+ if (state == SW_MINIMIZE || state == SW_SHOWMINIMIZED || state == SW_MAXIMIZE)
+ {
+ if( wndpl.flags & WPF_RESTORETOMAXIMIZED || state == SW_MAXIMIZE)
+ state = SW_MAXIMIZE;
+ else
+ state = SW_RESTORE;
+
+ ShowWindow(hWnd, SW_RESTORE);
+ }
+
+ /* Restore the window before we attempt to save parameters,
+ * This fixed the lost window on startup problem, among other problems
+ */
+ if (state == SW_MAXIMIZE)
+ ShowWindow(hWnd, SW_RESTORE);
+
+ for (i = 0; i < GetSplitterCount(); i++)
+ SetSplitterPos(i, nSplitterOffset[i]);
+ SetWindowState(state);
+
+ for (i = 0; i < sizeof(s_nPickers) / sizeof(s_nPickers[0]); i++)
+ Picker_SaveColumnWidths(GetDlgItem(hMain, s_nPickers[i]));
+
+ GetWindowRect(hWnd, &rect);
+ area.x = rect.left;
+ area.y = rect.top;
+ area.width = rect.right - rect.left;
+ area.height = rect.bottom - rect.top;
+ SetWindowArea(&area);
+
+ /* Save the users current game options and default game */
+ nItem = Picker_GetSelectedItem(hwndList);
+ if (nItem >= 0)
+ SetDefaultGame(nItem);
+
+ /* hide window to prevent orphan empty rectangles on the taskbar */
+ /* ShowWindow(hWnd,SW_HIDE); */
+ DestroyWindow( hWnd );
+
+ /* PostQuitMessage(0); */
+ break;
+ }
+
+ case WM_DESTROY:
+ PostQuitMessage(0);
+ return 0;
+
+ case WM_LBUTTONDOWN:
+ OnLButtonDown(hWnd, (UINT)wParam, MAKEPOINTS(lParam));
+ break;
+
+ /*
+ Check to see if the mouse has been moved by the user since
+ startup. I'd like this checking to be done only in the
+ main WinProc (here), but somehow the WM_MOUSEDOWN messages
+ are eaten up before they reach MameWindowProc. That's why
+ there is one check for each of the subclassed windows too.
+
+ POSSIBLE BUGS:
+ I've included this check in the subclassed windows, but a
+ mose move in either the title bar, the menu, or the
+ toolbar will not generate a WM_MOUSEOVER message. At least
+ not one that I know how to pick up. A solution could maybe
+ be to subclass those too, but that's too much work :)
+ */
+
+ case WM_MOUSEMOVE:
+ {
+ if (MouseHasBeenMoved())
+ ShowCursor(true);
+
+ if (g_listview_dragging)
+ MouseMoveListViewDrag(MAKEPOINTS(lParam));
+ else
+ /* for splitters */
+ OnMouseMove(hWnd, (UINT)wParam, MAKEPOINTS(lParam));
+ break;
+ }
+
+ case WM_LBUTTONUP:
+ if (g_listview_dragging)
+ ButtonUpListViewDrag(MAKEPOINTS(lParam));
+ else
+ /* for splitters */
+ OnLButtonUp(hWnd, (UINT)wParam, MAKEPOINTS(lParam));
+ break;
+
+ case WM_NOTIFY:
+ /* Where is this message intended to go */
+ {
+ LPNMHDR lpNmHdr = (LPNMHDR)lParam;
+
+ /* Fetch tooltip text */
+ if (lpNmHdr->code == TTN_NEEDTEXT)
+ {
+ LPTOOLTIPTEXT lpttt = (LPTOOLTIPTEXT)lParam;
+ CopyToolTipText(lpttt);
+ }
+
+ if (lpNmHdr->hwndFrom == hTreeView)
+ return TreeViewNotify(lpNmHdr);
+
+ GetClassName(lpNmHdr->hwndFrom, szClass, sizeof(szClass) / sizeof(szClass[0]));
+ if (!_tcscmp(szClass, TEXT("SysListView32")))
+ return Picker_HandleNotify(lpNmHdr);
+ if (!_tcscmp(szClass, TEXT("SysTabControl32")))
+ return TabView_HandleNotify(lpNmHdr);
+ }
+ break;
+
+ case WM_DRAWITEM:
+ {
+ LPDRAWITEMSTRUCT lpDis = (LPDRAWITEMSTRUCT)lParam;
+
+ GetClassName(lpDis->hwndItem, szClass, sizeof(szClass) / sizeof(szClass[0]));
+ if (!_tcscmp(szClass, TEXT("SysListView32")))
+ Picker_HandleDrawItem(GetDlgItem(hMain, lpDis->CtlID), lpDis);
+ }
+ break;
+
+ case WM_MEASUREITEM :
+ {
+ LPMEASUREITEMSTRUCT lpmis = (LPMEASUREITEMSTRUCT) lParam;
+
+ // tell the list view that each row (item) should be just taller than our font
+
+ //DefWindowProc(hWnd, message, wParam, lParam);
+ //dprintf("default row height calculation gives %u\n",lpmis->itemHeight);
+
+ TEXTMETRIC tm;
+ HDC hDC = GetDC(NULL);
+ HFONT hFontOld = (HFONT)SelectObject(hDC,hFont);
+
+ GetTextMetrics(hDC,&tm);
+
+ lpmis->itemHeight = tm.tmHeight + tm.tmExternalLeading + 1;
+ if (lpmis->itemHeight < 17)
+ lpmis->itemHeight = 17;
+ //dprintf("we would do %u\n",tm.tmHeight + tm.tmExternalLeading + 1);
+ SelectObject(hDC,hFontOld);
+ ReleaseDC(NULL,hDC);
+
+ return true;
+ }
+
+ case WM_MAME32_FILECHANGED:
+ {
+ char szFileName[32];
+ char *s;
+ int nGameIndex;
+ int (*pfnGetAuditResults)(uint32_t driver_index) = NULL;
+ void (*pfnSetAuditResults)(uint32_t driver_index, int audit_results) = NULL;
+
+ switch(HIWORD(wParam))
+ {
+ case 0:
+ pfnGetAuditResults = GetRomAuditResults;
+ pfnSetAuditResults = SetRomAuditResults;
+ break;
+
+ case 1:
+ pfnGetAuditResults = GetSampleAuditResults;
+ pfnSetAuditResults = SetSampleAuditResults;
+ break;
+ }
+
+ if (pfnGetAuditResults && pfnSetAuditResults)
+ {
+ int nParentIndex = -1;
+
+ snprintf(szFileName, sizeof(szFileName), "%s", (LPCSTR) lParam);
+ s = strchr(szFileName, '.');
+ if (s)
+ *s = '\0';
+ s = strchr(szFileName, '\\');
+ if (s)
+ *s = '\0';
+
+ for (nGameIndex = 0; nGameIndex < driver_list::total(); nGameIndex++)
+ {
+ for (nParentIndex = nGameIndex; nGameIndex == -1; nParentIndex = GetParentIndex(&driver_list::driver(nParentIndex)))
+ {
+ if (!core_stricmp(driver_list::driver(nParentIndex).name, szFileName))
+ {
+ if (pfnGetAuditResults(nGameIndex) != UNKNOWN)
+ {
+ pfnSetAuditResults(nGameIndex, UNKNOWN);
+ PostMessage(hMain, WM_MAME32_AUDITGAME, wParam, nGameIndex);
+ }
+ break;
+ }
+ }
+ }
+ }
+ }
+ break;
+
+ case WM_MAME32_AUDITGAME:
+ {
+ LV_FINDINFO lvfi;
+ int nGameIndex;
+
+ nGameIndex = lParam;
+
+ switch(HIWORD(wParam))
+ {
+ case 0:
+ MameUIVerifyRomSet(nGameIndex, 0);
+ break;
+ case 1:
+ MameUIVerifySampleSet(nGameIndex);
+ break;
+ }
+
+ memset(&lvfi, 0, sizeof(lvfi));
+ lvfi.flags = LVFI_PARAM;
+ lvfi.lParam = nGameIndex;
+
+ i = ListView_FindItem(hwndList, -1, &lvfi);
+ if (i != -1)
+ {
+ res = ListView_RedrawItems(hwndList, i, i);
+ }
+ }
+ break;
+
+ default:
+ break;
+ }
+ res++;
+ return DefWindowProc(hWnd, message, wParam, lParam);
+}
+
+static int HandleKeyboardGUIMessage(HWND hWnd, UINT message, UINT wParam, LONG lParam)
+{
+ switch (message)
+ {
+ case WM_CHAR: /* List-View controls use this message for searching the items "as user types" */
+ //MessageBox(NULL,"wm_char message arrived","TitleBox",MB_OK);
+ return true;
+
+ case WM_KEYDOWN:
+ KeyboardKeyDown(0, wParam, lParam);
+ return true;
+
+ case WM_KEYUP:
+ KeyboardKeyUp(0, wParam, lParam);
+ return true;
+
+ case WM_SYSKEYDOWN:
+ KeyboardKeyDown(1, wParam, lParam);
+ return true;
+
+ case WM_SYSKEYUP:
+ KeyboardKeyUp(1, wParam, lParam);
+ return true;
+ }
+
+ return false; /* message not processed */
+}
+
+static BOOL PumpMessage()
+{
+ MSG msg;
+
+ if (!GetMessage(&msg, NULL, 0, 0))
+ return false;
+
+ if (IsWindow(hMain))
+ {
+ BOOL absorbed_key = false;
+ if (GetKeyGUI())
+ absorbed_key = HandleKeyboardGUIMessage(msg.hwnd, msg.message, msg.wParam, msg.lParam);
+ else
+ absorbed_key = TranslateAccelerator(hMain, hAccel, &msg);
+
+ if (!absorbed_key)
+ {
+ if (!IsDialogMessage(hMain, &msg))
+ {
+ TranslateMessage(&msg);
+ DispatchMessage(&msg);
+ }
+ }
+ }
+
+ return true;
+}
+
+static BOOL FolderCheck(void)
+{
+
+ const char *pDescription = NULL;
+ int nGameIndex = 0;
+ int i=0;
+ int iStep = 0;
+ LV_FINDINFO lvfi;
+ int nCount = ListView_GetItemCount(hwndList);
+ BOOL changed = false;
+ BOOL res;
+
+ MSG msg;
+ for(i=0; i<nCount;i++)
+ {
+ LV_ITEM lvi;
+
+ lvi.iItem = i;
+ lvi.iSubItem = 0;
+ lvi.mask = LVIF_PARAM;
+ res = ListView_GetItem(hwndList, &lvi);
+ nGameIndex = lvi.lParam;
+ SetRomAuditResults(nGameIndex, UNKNOWN);
+ SetSampleAuditResults(nGameIndex, UNKNOWN);
+ }
+ if( nCount > 0)
+ ProgressBarShow();
+ else
+ return false;
+ if( nCount < 100 )
+ iStep = 100 / nCount;
+ else
+ iStep = nCount/100;
+ UpdateListView();
+ UpdateWindow(hMain);
+ for(i=0; i<nCount;i++)
+ {
+ LV_ITEM lvi;
+
+ lvi.iItem = i;
+ lvi.iSubItem = 0;
+ lvi.mask = LVIF_PARAM;
+ res = ListView_GetItem(hwndList, &lvi);
+ nGameIndex = lvi.lParam;
+ if (GetRomAuditResults(nGameIndex) == UNKNOWN)
+ {
+ MameUIVerifyRomSet(nGameIndex, 0);
+ changed = true;
+ }
+
+ if (GetSampleAuditResults(nGameIndex) == UNKNOWN)
+ {
+ MameUIVerifySampleSet(nGameIndex);
+ changed = true;
+ }
+
+ lvfi.flags = LVFI_PARAM;
+ lvfi.lParam = nGameIndex;
+
+ i = ListView_FindItem(hwndList, -1, &lvfi);
+ if (changed && i != -1)
+ {
+ res = ListView_RedrawItems(hwndList, i, i);
+ while( PeekMessage( &msg, hwndList, 0, 0, PM_REMOVE ) != 0)
+ {
+ TranslateMessage(&msg);
+ DispatchMessage(&msg);
+ }
+ }
+ changed = false;
+ if ((i % iStep) == 0)
+ ProgressBarStepParam(i, nCount);
+ }
+ ProgressBarHide();
+ if (Picker_GetSelectedItem(hwndList) >= 0)
+ pDescription = ModifyThe(driver_list::driver(Picker_GetSelectedItem(hwndList)).type.fullname());
+ else
+ pDescription = "No Selection";
+ SetStatusBarText(0, pDescription);
+ UpdateStatusBar();
+ res++;
+ return true;
+}
+
+static BOOL GameCheck(void)
+{
+ LV_FINDINFO lvfi;
+ int i;
+ BOOL changed = false;
+ BOOL res;
+
+ if (game_index == 0)
+ ProgressBarShow();
+
+ if (game_index >= driver_list::total())
+ {
+ bDoGameCheck = false;
+ ProgressBarHide();
+ ResetWhichGamesInFolders();
+ return false;
+ }
+
+ if (GetRomAuditResults(game_index) == UNKNOWN)
+ {
+ MameUIVerifyRomSet(game_index, 0);
+ changed = true;
+ }
+
+ if (GetSampleAuditResults(game_index) == UNKNOWN)
+ {
+ MameUIVerifySampleSet(game_index);
+ changed = true;
+ }
+
+ lvfi.flags = LVFI_PARAM;
+ lvfi.lParam = game_index;
+
+ i = ListView_FindItem(hwndList, -1, &lvfi);
+ if (changed && i != -1)
+ res = ListView_RedrawItems(hwndList, i, i);
+ if ((game_index % progBarStep) == 0)
+ ProgressBarStep();
+ game_index++;
+ res++;
+ return changed;
+}
+
+static BOOL OnIdle(HWND hWnd)
+{
+ static int bFirstTime = true;
+ static int bResetList = true;
+
+ const char *pDescription;
+ int driver_index;
+
+ if (bFirstTime)
+ {
+ bResetList = false;
+ bFirstTime = false;
+ }
+ if (bDoGameCheck)
+ {
+ bResetList |= GameCheck();
+ return idle_work;
+ }
+ // NPW 17-Jun-2003 - Commenting this out because it is redundant
+ // and it causes the game to reset back to the original game after an F5
+ // refresh
+ //driver_index = GetGameNameIndex(GetDefaultGame());
+ //SetSelectedPickItem(driver_index);
+
+ // in case it's not found, get it back
+ driver_index = Picker_GetSelectedItem(hwndList);
+ if (driver_index >= 0)
+ pDescription = ModifyThe(driver_list::driver(driver_index).type.fullname());
+ else
+ pDescription = "No Selection";
+
+ SetStatusBarText(0, pDescription);
+ idle_work = false;
+ UpdateStatusBar();
+ bFirstTime = true;
+
+ if (!idle_work)
+ PostMessage(GetMainWindow(),WM_COMMAND, MAKEWPARAM(ID_VIEW_LINEUPICONS, true),(LPARAM)NULL);
+ return idle_work;
+}
+
+static void OnSize(HWND hWnd, UINT nState, int nWidth, int nHeight)
+{
+ static BOOL firstTime = true;
+
+ if (nState != SIZE_MAXIMIZED && nState != SIZE_RESTORED)
+ return;
+
+ ResizeWindow(hWnd, &main_resize);
+ ResizeProgressBar();
+ if (firstTime == false)
+ OnSizeSplitter(hMain);
+ //firstTime = false;
+ /* Update the splitters structures as appropriate */
+ RecalcSplitters();
+ if (firstTime == false)
+ ResizePickerControls(hMain);
+ firstTime = false;
+ UpdateScreenShot();
+}
+
+
+
+static HWND GetResizeItemWindow(HWND hParent, const ResizeItem *ri)
+{
+ HWND hControl;
+ if (ri->type == RA_ID)
+ hControl = GetDlgItem(hParent, ri->u.id);
+ else
+ hControl = ri->u.hwnd;
+ return hControl;
+}
+
+
+
+static void SetAllWindowsFont(HWND hParent, const Resize *r, HFONT hTheFont, BOOL bRedraw)
+{
+ int i;
+ HWND hControl;
+
+ for (i = 0; r->items[i].type != RA_END; i++)
+ {
+ hControl = GetResizeItemWindow(hParent, &r->items[i]);
+ if (r->items[i].setfont)
+ {
+ SetWindowFont(hControl, hTheFont, bRedraw);
+ }
+ /* Take care of subcontrols, if appropriate */
+ if (r->items[i].subwindow )
+ SetAllWindowsFont(hControl, (const Resize*)r->items[i].subwindow, hTheFont, bRedraw);
+
+ }
+}
+
+
+
+static void ResizeWindow(HWND hParent, Resize *r)
+{
+ int cmkindex = 0, dx, dy;
+ HWND hControl;
+ RECT parent_rect, rect;
+ const ResizeItem *ri;
+ POINT p = {0, 0};
+
+ if (hParent == NULL)
+ return;
+
+ /* Calculate change in width and height of parent window */
+ GetClientRect(hParent, &parent_rect);
+ dy = parent_rect.bottom - r->rect.bottom;
+ dx = parent_rect.right - r->rect.right;
+ ClientToScreen(hParent, &p);
+
+ while (r->items[cmkindex].type != RA_END)
+ {
+ int width, height;
+ ri = &r->items[cmkindex];
+ if (ri->type == RA_ID)
+ hControl = GetDlgItem(hParent, ri->u.id);
+ else
+ hControl = ri->u.hwnd;
+
+ if (hControl == NULL)
+ {
+ cmkindex++;
+ continue;
+ }
+
+ /* Get control's rectangle relative to parent */
+ GetWindowRect(hControl, &rect);
+ OffsetRect(&rect, -p.x, -p.y);
+ width = rect.right - rect.left;
+ height = rect.bottom - rect.top;
+
+ if (!(ri->action & RA_LEFT))
+ rect.left += dx;
+
+ if (!(ri->action & RA_TOP))
+ rect.top += dy;
+
+ if (ri->action & RA_RIGHT)
+ rect.right += dx;
+
+ if (ri->action & RA_BOTTOM)
+ rect.bottom += dy;
+ //Sanity Check the child rect
+ if (parent_rect.top > rect.top)
+ rect.top = parent_rect.top;
+ if (parent_rect.left > rect.left)
+ rect.left = parent_rect.left;
+ if (parent_rect.bottom < rect.bottom)
+ {
+ rect.bottom = parent_rect.bottom;
+ //ensure we have at least a minimal height
+ rect.top = rect.bottom - height;
+ if (rect.top < parent_rect.top)
+ rect.top = parent_rect.top;
+ }
+ if (parent_rect.right < rect.right)
+ {
+ rect.right = parent_rect.right;
+ //ensure we have at least a minimal width
+ rect.left = rect.right - width;
+ if (rect.left < parent_rect.left)
+ rect.left = parent_rect.left;
+ }
+ MoveWindow(hControl, rect.left, rect.top,
+ (rect.right - rect.left),
+ (rect.bottom - rect.top), true);
+
+ /* Take care of subcontrols, if appropriate */
+ if (ri->subwindow )
+ ResizeWindow(hControl, (Resize*)ri->subwindow);
+
+ cmkindex++;
+ }
+
+ /* Record parent window's new location */
+ memcpy(&r->rect, &parent_rect, sizeof(RECT));
+}
+
+static void ProgressBarShow()
+{
+ RECT rect;
+ int widths[2] = {150, -1};
+
+ if (driver_list::total() < 100)
+ progBarStep = 100 / driver_list::total();
+ else
+ progBarStep = (driver_list::total() / 100);
+
+ SendMessage(hStatusBar, SB_SETPARTS, (WPARAM)2, (LPARAM)(LPINT)widths);
+ SendMessage(hProgWnd, PBM_SETRANGE, 0, (LPARAM)MAKELONG(0, driver_list::total()));
+ SendMessage(hProgWnd, PBM_SETSTEP, (WPARAM)progBarStep, 0);
+ SendMessage(hProgWnd, PBM_SETPOS, 0, 0);
+
+ StatusBar_GetItemRect(hStatusBar, 1, &rect);
+
+ MoveWindow(hProgWnd, rect.left, rect.top,
+ rect.right - rect.left,
+ rect.bottom - rect.top, true);
+
+ bProgressShown = true;
+}
+
+static void ProgressBarHide()
+{
+ RECT rect;
+ int widths[4];
+ HDC hDC;
+ SIZE size;
+ int numParts = 4;
+
+ if (hProgWnd == NULL)
+ return;
+
+ hDC = GetDC(hProgWnd);
+
+ ShowWindow(hProgWnd, SW_HIDE);
+
+ GetTextExtentPoint32(hDC, TEXT("MMX"), 3, &size);
+ widths[3] = size.cx;
+ GetTextExtentPoint32(hDC, TEXT("MMMM games"), 10, &size);
+ widths[2] = size.cx;
+ //Just specify 24 instead of 30, gives us sufficient space to display the message, and saves some space
+ GetTextExtentPoint32(hDC, TEXT("Screen flip support is missing"), 24, &size);
+ widths[1] = size.cx;
+
+ ReleaseDC(hProgWnd, hDC);
+
+ widths[0] = -1;
+ SendMessage(hStatusBar, SB_SETPARTS, (WPARAM)1, (LPARAM)(LPINT)widths);
+ StatusBar_GetItemRect(hStatusBar, 0, &rect);
+
+ widths[0] = (rect.right - rect.left) - (widths[1] + widths[2] + widths[3]);
+ widths[1] += widths[0];
+ widths[2] += widths[1];
+ widths[3] = -1;
+
+ SendMessage(hStatusBar, SB_SETPARTS, (WPARAM)numParts, (LPARAM)(LPINT)widths);
+ UpdateStatusBar();
+
+ bProgressShown = false;
+}
+
+static void ResizeProgressBar()
+{
+ if (bProgressShown)
+ {
+ RECT rect;
+ int widths[2] = {150, -1};
+
+ SendMessage(hStatusBar, SB_SETPARTS, (WPARAM)2, (LPARAM)(LPINT)widths);
+ StatusBar_GetItemRect(hStatusBar, 1, &rect);
+ MoveWindow(hProgWnd, rect.left, rect.top,
+ rect.right - rect.left,
+ rect.bottom - rect.top, true);
+ }
+ else
+ {
+ ProgressBarHide();
+ }
+}
+
+static void ProgressBarStepParam(int iGameIndex, int nGameCount)
+{
+ SetStatusBarTextF(0, "Game search %d%% complete", ((iGameIndex + 1) * 100) / nGameCount);
+ if (iGameIndex == 0)
+ ShowWindow(hProgWnd, SW_SHOW);
+ SendMessage(hProgWnd, PBM_STEPIT, 0, 0);
+}
+
+static void ProgressBarStep()
+{
+ ProgressBarStepParam(game_index, driver_list::total());
+}
+
+static HWND InitProgressBar(HWND hParent)
+{
+ RECT rect;
+
+ StatusBar_GetItemRect(hStatusBar, 0, &rect);
+
+ rect.left += 150;
+
+ return CreateWindowEx(WS_EX_STATICEDGE, PROGRESS_CLASS, TEXT("Progress Bar"),
+ WS_CHILD | PBS_SMOOTH, rect.left, rect.top, rect.right - rect.left,
+ rect.bottom - rect.top, hParent, NULL, hInst, NULL);
+}
+
+static void CopyToolTipText(LPTOOLTIPTEXT lpttt)
+{
+ int i;
+ int iButton = lpttt->hdr.idFrom;
+ static TCHAR String[1024];
+ BOOL bConverted = false;
+ TCHAR* t_gameinfostatus;
+
+ /* Map command ID to string index */
+ for (i = 0; CommandToString[i] != -1; i++)
+ {
+ if (CommandToString[i] == iButton)
+ {
+ iButton = i;
+ bConverted = true;
+ break;
+ }
+ }
+ if( bConverted )
+ {
+ /* Check for valid parameter */
+ if(iButton > NUM_TOOLTIPS)
+ {
+ _tcscpy(String,TEXT("Invalid Button Index"));
+ }
+ else
+ {
+ _tcscpy(String,szTbStrings[iButton]);
+ }
+ }
+ else if ( iButton <= 2 )
+ {
+ //Statusbar
+ SendMessage(lpttt->hdr.hwndFrom, TTM_SETMAXTIPWIDTH, 0, 200);
+ if( iButton != 1)
+ SendMessage(hStatusBar, SB_GETTEXT, (WPARAM)iButton, (LPARAM)&String );
+ else {
+ //for first pane we get the Status directly, to get the line breaks
+ t_gameinfostatus = ui_wstring_from_utf8( GameInfoStatus(Picker_GetSelectedItem(hwndList), false));
+ if( !t_gameinfostatus )
+ return;
+ _tcscpy(String, t_gameinfostatus);
+ free(t_gameinfostatus);
+ }
+ }
+ else
+ _tcscpy(String,TEXT("Invalid Button Index"));
+
+ lpttt->lpszText = String;
+}
+
+static HWND InitToolbar(HWND hParent)
+{
+ HWND hToolBar = CreateToolbarEx(hParent,
+ WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS |
+ CCS_TOP | TBSTYLE_FLAT | TBSTYLE_TOOLTIPS, 1, 8,
+ hInst, IDB_TOOLBAR, tbb, NUM_TOOLBUTTONS, 16, 16, 0, 0, sizeof(TBBUTTON));
+ RECT rect;
+ int idx;
+ int iPosX, iPosY, iHeight;
+
+ // get Edit Control position
+ idx = SendMessage(hToolBar, TB_BUTTONCOUNT, (WPARAM)0, (LPARAM)0) - 1;
+ SendMessage(hToolBar, TB_GETITEMRECT, (WPARAM)idx, (LPARAM)&rect);
+ iPosX = rect.right + 10;
+ iPosY = rect.top + 1;
+ iHeight = rect.bottom - rect.top - 2;
+
+ // create Edit Control
+ win_create_window_ex_utf8( 0L, "Edit", SEARCH_PROMPT, WS_CHILD | WS_BORDER | WS_VISIBLE | ES_LEFT,
+ iPosX, iPosY, 200, iHeight, hToolBar, (HMENU)ID_TOOLBAR_EDIT, hInst, NULL );
+
+ return hToolBar;
+}
+
+static HWND InitStatusBar(HWND hParent)
+{
+ HMENU hMenu = GetMenu(hParent);
+
+ popstr[0].hMenu = 0;
+ popstr[0].uiString = 0;
+ popstr[1].hMenu = hMenu;
+ popstr[1].uiString = IDS_UI_FILE;
+ popstr[2].hMenu = GetSubMenu(hMenu, 1);
+ popstr[2].uiString = IDS_VIEW_TOOLBAR;
+ popstr[3].hMenu = 0;
+ popstr[3].uiString = 0;
+
+ return CreateStatusWindow(WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS |
+ CCS_BOTTOM | SBARS_SIZEGRIP | SBT_TOOLTIPS,
+ TEXT("Ready"), hParent, 2);
+}
+
+
+static LRESULT Statusbar_MenuSelect(HWND hwnd, WPARAM wParam, LPARAM lParam)
+{
+ UINT fuFlags = (UINT)HIWORD(wParam);
+ HMENU hMainMenu = NULL;
+ int iMenu = 0;
+
+ /* Handle non-system popup menu descriptions. */
+ if ( (fuFlags & MF_POPUP)
+ && (!(fuFlags & MF_SYSMENU)))
+ {
+ for (iMenu = 1; iMenu < MAX_MENUS; iMenu++)
+ {
+ if ((HMENU)lParam == popstr[iMenu].hMenu)
+ {
+ hMainMenu = (HMENU)lParam;
+ break;
+ }
+ }
+ }
+
+ if (hMainMenu)
+ {
+ /* Display helpful text in status bar */
+ MenuHelp(WM_MENUSELECT, wParam, lParam, hMainMenu, hInst,
+ hStatusBar, (UINT *)&popstr[iMenu]);
+ }
+ else
+ {
+ UINT nZero = 0;
+ MenuHelp(WM_MENUSELECT, wParam, lParam, NULL, hInst,
+ hStatusBar, &nZero);
+ }
+
+ return 0;
+}
+
+static void UpdateStatusBar()
+{
+ LPTREEFOLDER lpFolder = GetCurrentFolder();
+ int games_shown = 0;
+ int i = -1;
+
+ if (!lpFolder)
+ return;
+
+ while (1)
+ {
+ i = FindGame(lpFolder,i+1);
+ if (i == -1)
+ break;
+
+ if (!GameFiltered(i, lpFolder->m_dwFlags))
+ games_shown++;
+ }
+
+ /* Show number of games in the current 'View' in the status bar */
+ SetStatusBarTextF(2, g_szGameCountString, games_shown);
+
+ i = Picker_GetSelectedItem(hwndList);
+
+ if (games_shown == 0)
+ DisableSelection();
+ else
+ {
+ const char* pStatus = GameInfoStatus(i, false);
+ SetStatusBarText(1, pStatus);
+ }
+}
+
+static void UpdateHistory(void)
+{
+ HDC hDC;
+ RECT rect;
+ TEXTMETRIC tm ;
+ int nLines, nLineHeight;
+ //DWORD dwStyle = GetWindowLong(GetDlgItem(hMain, IDC_HISTORY), GWL_STYLE);
+ have_history = false;
+
+ if (GetSelectedPick() >= 0)
+ {
+ char *histText = GetGameHistory(Picker_GetSelectedItem(hwndList));
+
+ have_history = (histText && histText[0]) ? true : false;
+ win_set_window_text_utf8(GetDlgItem(hMain, IDC_HISTORY), histText);
+ }
+
+ if (have_history && BIT(GetWindowPanes(), 3)
+ && ((TabView_GetCurrentTab(hTabCtrl) == TAB_HISTORY) ||
+ (TabView_GetCurrentTab(hTabCtrl) == GetHistoryTab() && GetShowTab(TAB_HISTORY) == false) ||
+ (TAB_ALL == GetHistoryTab() && GetShowTab(TAB_HISTORY) == false) ))
+ {
+ Edit_GetRect(GetDlgItem(hMain, IDC_HISTORY),&rect);
+ nLines = Edit_GetLineCount(GetDlgItem(hMain, IDC_HISTORY) );
+ hDC = GetDC(GetDlgItem(hMain, IDC_HISTORY));
+ GetTextMetrics (hDC, &tm);
+ nLineHeight = tm.tmHeight - tm.tmInternalLeading;
+ if( ( (rect.bottom - rect.top) / nLineHeight) < (nLines) )
+ {
+ //more than one Page, so show Scrollbar
+ SetScrollRange(GetDlgItem(hMain, IDC_HISTORY), SB_VERT, 0, nLines, true);
+ }
+ else
+ {
+ //hide Scrollbar
+ SetScrollRange(GetDlgItem(hMain, IDC_HISTORY),SB_VERT, 0, 0, true);
+
+ }
+ ShowWindow(GetDlgItem(hMain, IDC_HISTORY), SW_SHOW);
+ }
+ else
+ ShowWindow(GetDlgItem(hMain, IDC_HISTORY), SW_HIDE);
+
+}
+
+
+static void DisableSelection()
+{
+ MENUITEMINFO mmi;
+ HMENU hMenu = GetMenu(hMain);
+ BOOL prev_have_selection = have_selection;
+
+ mmi.cbSize = sizeof(mmi);
+ mmi.fMask = MIIM_TYPE;
+ mmi.fType = MFT_STRING;
+ mmi.dwTypeData = (TCHAR *) TEXT("&Play");
+ mmi.cch = _tcslen(mmi.dwTypeData);
+ SetMenuItemInfo(hMenu, ID_FILE_PLAY, false, &mmi);
+
+ EnableMenuItem(hMenu, ID_FILE_PLAY, MF_GRAYED);
+ EnableMenuItem(hMenu, ID_FILE_PLAY_RECORD, MF_GRAYED);
+ EnableMenuItem(hMenu, ID_GAME_PROPERTIES, MF_GRAYED);
+
+ SetStatusBarText(0, "No Selection");
+ SetStatusBarText(1, "");
+ SetStatusBarText(3, "");
+
+ have_selection = false;
+
+ if (prev_have_selection != have_selection)
+ UpdateScreenShot();
+}
+
+static void EnableSelection(int nGame)
+{
+ TCHAR buf[200];
+ const char * pText;
+ MENUITEMINFO mmi;
+ HMENU hMenu = GetMenu(hMain);
+ TCHAR* t_description;
+
+ t_description = ui_wstring_from_utf8(ConvertAmpersandString(ModifyThe(driver_list::driver(nGame).type.fullname())));
+ if( !t_description )
+ return;
+
+ _sntprintf(buf, sizeof(buf) / sizeof(buf[0]), g_szPlayGameString, t_description);
+ mmi.cbSize = sizeof(mmi);
+ mmi.fMask = MIIM_TYPE;
+ mmi.fType = MFT_STRING;
+ mmi.dwTypeData = buf;
+ mmi.cch = _tcslen(mmi.dwTypeData);
+ SetMenuItemInfo(hMenu, ID_FILE_PLAY, false, &mmi);
+
+ pText = ModifyThe(driver_list::driver(nGame).type.fullname());
+ SetStatusBarText(0, pText);
+ /* Add this game's status to the status bar */
+ pText = GameInfoStatus(nGame, false);
+ SetStatusBarText(1, pText);
+ SetStatusBarText(3, "");
+
+ /* If doing updating game status and the game name is NOT pacman.... */
+
+ EnableMenuItem(hMenu, ID_FILE_PLAY, MF_ENABLED);
+ EnableMenuItem(hMenu, ID_FILE_PLAY_RECORD, MF_ENABLED);
+
+ if (!oldControl)
+ EnableMenuItem(hMenu, ID_GAME_PROPERTIES, MF_ENABLED);
+
+ if (bProgressShown && bListReady == true)
+ SetDefaultGame(nGame);
+
+ have_selection = true;
+
+ UpdateScreenShot();
+
+ free(t_description);
+}
+
+static void PaintBackgroundImage(HWND hWnd, HRGN hRgn, int x, int y)
+{
+ RECT rcClient;
+ HRGN rgnBitmap;
+ HPALETTE hPAL;
+ HDC hDC = GetDC(hWnd);
+ int i, j;
+ HDC htempDC;
+ HBITMAP oldBitmap;
+
+ /* x and y are offsets within the background image that should be at 0,0 in hWnd */
+
+ /* So we don't paint over the control's border */
+ GetClientRect(hWnd, &rcClient);
+
+ htempDC = CreateCompatibleDC(hDC);
+ oldBitmap = (HBITMAP)SelectObject(htempDC, hBackground);
+
+ if (hRgn == NULL)
+ {
+ /* create a region of our client area */
+ rgnBitmap = CreateRectRgnIndirect(&rcClient);
+ SelectClipRgn(hDC, rgnBitmap);
+ DeleteBitmap(rgnBitmap);
+ }
+ else
+ {
+ /* use the passed in region */
+ SelectClipRgn(hDC, hRgn);
+ }
+
+ hPAL = GetBackgroundPalette();
+ if (hPAL == NULL)
+ hPAL = CreateHalftonePalette(hDC);
+
+ if (GetDeviceCaps(htempDC, RASTERCAPS) & RC_PALETTE && hPAL)
+ {
+ SelectPalette(htempDC, hPAL, false);
+ RealizePalette(htempDC);
+ }
+
+ for (i = rcClient.left-x; i < rcClient.right; i += bmDesc.bmWidth)
+ for (j = rcClient.top-y; j < rcClient.bottom; j += bmDesc.bmHeight)
+ BitBlt(hDC, i, j, bmDesc.bmWidth, bmDesc.bmHeight, htempDC, 0, 0, SRCCOPY);
+
+ SelectObject(htempDC, oldBitmap);
+ DeleteDC(htempDC);
+
+ if (GetBackgroundPalette() == NULL)
+ {
+ DeletePalette(hPAL);
+ hPAL = NULL;
+ }
+
+ ReleaseDC(hWnd, hDC);
+}
+
+static LPCSTR GetCloneParentName(int nItem)
+{
+ int nParentIndex = -1;
+
+ if (DriverIsClone(nItem) == true)
+ {
+ nParentIndex = GetParentIndex(&driver_list::driver(nItem));
+ if( nParentIndex >= 0)
+ return ModifyThe(driver_list::driver(nParentIndex).type.fullname());
+ }
+ return "";
+}
+
+static BOOL TreeViewNotify(LPNMHDR nm)
+{
+ switch (nm->code)
+ {
+ case TVN_SELCHANGED :
+ {
+ HTREEITEM hti = TreeView_GetSelection(hTreeView);
+ TVITEM tvi;
+
+ tvi.mask = TVIF_PARAM | TVIF_HANDLE;
+ tvi.hItem = hti;
+
+ if (TreeView_GetItem(hTreeView, &tvi))
+ {
+ SetCurrentFolder((LPTREEFOLDER)tvi.lParam);
+ if (bListReady)
+ {
+ ResetListView();
+ UpdateScreenShot();
+ }
+ }
+ return true;
+ }
+ case TVN_BEGINLABELEDIT :
+ {
+ TV_DISPINFO *ptvdi = (TV_DISPINFO *)nm;
+ LPTREEFOLDER folder = (LPTREEFOLDER)ptvdi->item.lParam;
+
+ if (folder->m_dwFlags & F_CUSTOM)
+ {
+ // user can edit custom folder names
+ g_in_treeview_edit = true;
+ return false;
+ }
+ // user can't edit built in folder names
+ return true;
+ }
+ case TVN_ENDLABELEDIT :
+ {
+ TV_DISPINFO *ptvdi = (TV_DISPINFO *)nm;
+ LPTREEFOLDER folder = (LPTREEFOLDER)ptvdi->item.lParam;
+ char* utf8_szText;
+ BOOL result;
+
+ g_in_treeview_edit = false;
+
+ if (ptvdi->item.pszText == NULL || _tcslen(ptvdi->item.pszText) == 0)
+ return false;
+
+ utf8_szText = ui_utf8_from_wstring(ptvdi->item.pszText);
+ if( !utf8_szText )
+ return false;
+
+ result = TryRenameCustomFolder(folder, utf8_szText);
+
+ free(utf8_szText);
+
+ return result;
+ }
+ }
+ return false;
+}
+
+
+
+static void GamePicker_OnHeaderContextMenu(POINT pt, int nColumn)
+{
+ // Right button was clicked on header
+ HMENU hMenuLoad;
+ HMENU hMenu;
+
+ hMenuLoad = LoadMenu(hInst, MAKEINTRESOURCE(IDR_CONTEXT_HEADER));
+ hMenu = GetSubMenu(hMenuLoad, 0);
+ lastColumnClick = nColumn;
+ TrackPopupMenu(hMenu,TPM_LEFTALIGN | TPM_RIGHTBUTTON,pt.x,pt.y,0,hMain,NULL);
+
+ DestroyMenu(hMenuLoad);
+}
+
+
+
+char* ConvertAmpersandString(const char *s)
+{
+ /* takes a string and changes any ampersands to double ampersands,
+ for setting text of window controls that don't allow us to disable
+ the ampersand underlining.
+ */
+ /* returns a static buffer--use before calling again */
+
+ static char buf[200];
+ char *ptr;
+
+ ptr = buf;
+ while (*s)
+ {
+ if (*s == '&')
+ *ptr++ = *s;
+ *ptr++ = *s++;
+ }
+ *ptr = 0;
+
+ return buf;
+}
+
+static int GUI_seq_pressed(const input_seq *seq)
+{
+ int codenum;
+ int res = 1;
+ bool invert = 0;
+ int count = 0;
+
+ for (codenum = 0; (*seq)[codenum] != input_seq::end_code; codenum++)
+ {
+ input_code code = (*seq)[codenum];
+
+ if (code == input_seq::not_code)
+ invert = !invert;
+
+ else if (code == input_seq::or_code)
+ {
+ if (res && count)
+ return 1;
+ res = 1;
+ count = 0;
+ }
+ else
+ {
+ if (res)
+ {
+ if ((keyboard_state[(int)(code.item_id())] != 0) == invert)
+ res = 0;
+ }
+ invert = 0;
+ ++count;
+ }
+ }
+ return res && count;
+}
+
+static void check_for_GUI_action(void)
+{
+ int i;
+
+ for (i = 0; i < NUM_GUI_SEQUENCES; i++)
+ {
+ const input_seq *is = &(GUISequenceControl[i].is);
+
+ if (GUI_seq_pressed(is))
+ {
+ dprintf("seq =%s pressed\n", GUISequenceControl[i].name);
+ switch (GUISequenceControl[i].func_id)
+ {
+ case ID_GAME_AUDIT:
+ case ID_GAME_PROPERTIES:
+ case ID_CONTEXT_FILTERS:
+ case ID_UI_START:
+ KeyboardStateClear(); /* because whe won't receive KeyUp mesage when we lose focus */
+ break;
+ default:
+ break;
+ }
+ SendMessage(hMain, WM_COMMAND, GUISequenceControl[i].func_id, 0);
+ }
+ }
+}
+
+static void KeyboardStateClear(void)
+{
+ memset(keyboard_state, 0, sizeof(keyboard_state));
+ dprintf("keyboard gui state cleared.\n");
+}
+
+
+static void KeyboardKeyDown(int syskey, int vk_code, int special)
+{
+ int i, found = 0;
+ int icode = 0;
+ int special_code = (special >> 24) & 1;
+ int scancode = (special>>16) & 0xff;
+
+ if ((vk_code==VK_MENU) || (vk_code==VK_CONTROL) || (vk_code==VK_SHIFT))
+ {
+ found = 1;
+
+ /* a hack for right shift - it's better to use Direct X for keyboard input it seems......*/
+ if (vk_code==VK_SHIFT)
+ if (scancode>0x30) /* on my keyboard left shift scancode is 0x2a, right shift is 0x36 */
+ special_code = 1;
+
+ if (special_code) /* right hand keys */
+ {
+ switch(vk_code)
+ {
+ case VK_MENU:
+ icode = (int)(KEYCODE_RALT.item_id());
+ break;
+ case VK_CONTROL:
+ icode = (int)(KEYCODE_RCONTROL.item_id());
+ break;
+ case VK_SHIFT:
+ icode = (int)(KEYCODE_RSHIFT.item_id());
+ break;
+ }
+ }
+ else /* left hand keys */
+ {
+ switch(vk_code)
+ {
+ case VK_MENU:
+ icode = (int)(KEYCODE_LALT.item_id());
+ break;
+ case VK_CONTROL:
+ icode = (int)(KEYCODE_LCONTROL.item_id());
+ break;
+ case VK_SHIFT:
+ icode = (int)(KEYCODE_LSHIFT.item_id());
+ break;
+ }
+ }
+ }
+ else
+ {
+ for (i = 0; i < ARRAY_LENGTH(win_key_trans_table); i++)
+ {
+ if ( vk_code == win_key_trans_table[i][VIRTUAL_KEY])
+ {
+ icode = win_key_trans_table[i][MAME_KEY];
+ found = 1;
+ break;
+ }
+ }
+ }
+ if (!found)
+ {
+ dprintf("VK_code pressed not found = %i\n",vk_code);
+ //MessageBox(NULL,"keydown message arrived not processed","TitleBox",MB_OK);
+ return;
+ }
+ dprintf("VK_code pressed found = %i, sys=%i, mame_keycode=%i special=%08x\n", vk_code, syskey, icode, special);
+ keyboard_state[icode] = true;
+ check_for_GUI_action();
+}
+
+static void KeyboardKeyUp(int syskey, int vk_code, int special)
+{
+ int i, found = 0;
+ int icode = 0;
+ int special_code = (special >> 24) & 1;
+ int scancode = (special>>16) & 0xff;
+
+ if ((vk_code==VK_MENU) || (vk_code==VK_CONTROL) || (vk_code==VK_SHIFT))
+ {
+ found = 1;
+
+ /* a hack for right shift - it's better to use Direct X for keyboard input it seems......*/
+ if (vk_code==VK_SHIFT)
+ if (scancode>0x30) /* on my keyboard left shift scancode is 0x2a, right shift is 0x36 */
+ special_code = 1;
+
+ if (special_code) /* right hand keys */
+ {
+ switch(vk_code)
+ {
+ case VK_MENU:
+ icode = (int)(KEYCODE_RALT.item_id());
+ break;
+ case VK_CONTROL:
+ icode = (int)(KEYCODE_RCONTROL.item_id());
+ break;
+ case VK_SHIFT:
+ icode = (int)(KEYCODE_RSHIFT.item_id());
+ break;
+ }
+ }
+ else /* left hand keys */
+ {
+ switch(vk_code)
+ {
+ case VK_MENU:
+ icode = (int)(KEYCODE_LALT.item_id());
+ break;
+ case VK_CONTROL:
+ icode = (int)(KEYCODE_LCONTROL.item_id());
+ break;
+ case VK_SHIFT:
+ icode = (int)(KEYCODE_LSHIFT.item_id());
+ break;
+ }
+ }
+ }
+ else
+ {
+ for (i = 0; i < ARRAY_LENGTH(win_key_trans_table); i++)
+ {
+ if (vk_code == win_key_trans_table[i][VIRTUAL_KEY])
+ {
+ icode = win_key_trans_table[i][MAME_KEY];
+ found = 1;
+ break;
+ }
+ }
+ }
+ if (!found)
+ {
+ dprintf("VK_code released not found = %i\n",vk_code);
+ //MessageBox(NULL,"keyup message arrived not processed","TitleBox",MB_OK);
+ return;
+ }
+ keyboard_state[icode] = false;
+ dprintf("VK_code released found= %i, sys=%i, mame_keycode=%i special=%08x\n", vk_code, syskey, icode, special );
+ check_for_GUI_action();
+}
+
+static void PollGUIJoystick()
+{
+ if (in_emulation)
+ return;
+
+ if (g_pJoyGUI == NULL)
+ return;
+
+ g_pJoyGUI->poll_joysticks();
+
+ // User pressed UP
+ if (g_pJoyGUI->is_joy_pressed(JOYCODE(GetUIJoyUp(0), GetUIJoyUp(1), GetUIJoyUp(2), GetUIJoyUp(3))))
+ SendMessage(hMain, WM_COMMAND, ID_UI_UP, 0);
+
+ // User pressed DOWN
+ if (g_pJoyGUI->is_joy_pressed(JOYCODE(GetUIJoyDown(0), GetUIJoyDown(1), GetUIJoyDown(2), GetUIJoyDown(3))))
+ SendMessage(hMain, WM_COMMAND, ID_UI_DOWN, 0);
+
+ // User pressed LEFT
+ if (g_pJoyGUI->is_joy_pressed(JOYCODE(GetUIJoyLeft(0), GetUIJoyLeft(1), GetUIJoyLeft(2), GetUIJoyLeft(3))))
+ SendMessage(hMain, WM_COMMAND, ID_UI_LEFT, 0);
+
+ // User pressed RIGHT
+ if (g_pJoyGUI->is_joy_pressed(JOYCODE(GetUIJoyRight(0), GetUIJoyRight(1), GetUIJoyRight(2), GetUIJoyRight(3))))
+ SendMessage(hMain, WM_COMMAND, ID_UI_RIGHT, 0);
+
+ // User pressed START GAME
+ if (g_pJoyGUI->is_joy_pressed(JOYCODE(GetUIJoyStart(0), GetUIJoyStart(1), GetUIJoyStart(2), GetUIJoyStart(3))))
+ SendMessage(hMain, WM_COMMAND, ID_UI_START, 0);
+
+ // User pressed PAGE UP
+ if (g_pJoyGUI->is_joy_pressed(JOYCODE(GetUIJoyPageUp(0), GetUIJoyPageUp(1), GetUIJoyPageUp(2), GetUIJoyPageUp(3))))
+ SendMessage(hMain, WM_COMMAND, ID_UI_PGUP, 0);
+
+ // User pressed PAGE DOWN
+ if (g_pJoyGUI->is_joy_pressed(JOYCODE(GetUIJoyPageDown(0), GetUIJoyPageDown(1), GetUIJoyPageDown(2), GetUIJoyPageDown(3))))
+ SendMessage(hMain, WM_COMMAND, ID_UI_PGDOWN, 0);
+
+ // User pressed HOME
+ if (g_pJoyGUI->is_joy_pressed(JOYCODE(GetUIJoyHome(0), GetUIJoyHome(1), GetUIJoyHome(2), GetUIJoyHome(3))))
+ SendMessage(hMain, WM_COMMAND, ID_UI_HOME, 0);
+
+ // User pressed END
+ if (g_pJoyGUI->is_joy_pressed(JOYCODE(GetUIJoyEnd(0), GetUIJoyEnd(1), GetUIJoyEnd(2), GetUIJoyEnd(3))))
+ SendMessage(hMain, WM_COMMAND, ID_UI_END, 0);
+
+ // User pressed CHANGE SCREENSHOT
+ if (g_pJoyGUI->is_joy_pressed(JOYCODE(GetUIJoySSChange(0), GetUIJoySSChange(1), GetUIJoySSChange(2), GetUIJoySSChange(3))))
+ SendMessage(hMain, WM_COMMAND, IDC_SSFRAME, 0);
+
+ // User pressed SCROLL HISTORY UP
+ if (g_pJoyGUI->is_joy_pressed(JOYCODE(GetUIJoyHistoryUp(0), GetUIJoyHistoryUp(1), GetUIJoyHistoryUp(2), GetUIJoyHistoryUp(3))))
+ SendMessage(hMain, WM_COMMAND, ID_UI_HISTORY_UP, 0);
+
+ // User pressed SCROLL HISTORY DOWN
+ if (g_pJoyGUI->is_joy_pressed(JOYCODE(GetUIJoyHistoryDown(0), GetUIJoyHistoryDown(1), GetUIJoyHistoryDown(2), GetUIJoyHistoryDown(3))))
+ SendMessage(hMain, WM_COMMAND, ID_UI_HISTORY_DOWN, 0);
+
+ // For the exec timer, will keep track of how long the button has been pressed
+ static int exec_counter = 0;
+
+ // User pressed EXECUTE COMMANDLINE
+ // Note: this option is not documented, nor supported in the GUI.
+ if (g_pJoyGUI->is_joy_pressed(JOYCODE(GetUIJoyExec(0), GetUIJoyExec(1), GetUIJoyExec(2), GetUIJoyExec(3))))
+ {
+ // validate
+ int execwait = GetExecWait();
+ if (execwait < 1)
+ return;
+ if (++exec_counter >= execwait) // Button has been pressed > exec timeout
+ {
+ // validate
+ string exec_command = GetExecCommand();
+ if (exec_command.empty())
+ return;
+ TCHAR *t_exec_command = ui_wstring_from_utf8(exec_command.c_str());
+ if( !t_exec_command )
+ return;
+
+ // Reset counter
+ exec_counter = 0;
+
+ STARTUPINFO si;
+ ZeroMemory( &si, sizeof(si) );
+ si.dwFlags = STARTF_FORCEONFEEDBACK;
+ si.cb = sizeof(si);
+
+ PROCESS_INFORMATION pi;
+ ZeroMemory( &pi, sizeof(pi) );
+
+ CreateProcess(NULL, t_exec_command, NULL, NULL, false, 0, NULL, NULL, &si, &pi);
+
+ free(t_exec_command);
+
+ // We will not wait for the process to finish cause it might be a background task
+ // The process won't get closed when MAME32 closes either.
+
+ // But close the handles cause we won't need them anymore. Will not close process.
+ CloseHandle(pi.hProcess);
+ CloseHandle(pi.hThread);
+ }
+ }
+ else
+ {
+ // Button has been released within the timeout period, reset the counter
+ exec_counter = 0;
+ }
+}
+
+static void SetView(int menu_id)
+{
+ BOOL force_reset = false;
+ int i;
+
+ // first uncheck previous menu item, check new one
+ CheckMenuRadioItem(GetMenu(hMain), ID_VIEW_LARGE_ICON, ID_VIEW_GROUPED, menu_id, MF_CHECKED);
+ ToolBar_CheckButton(s_hToolBar, menu_id, MF_CHECKED);
+
+ if (Picker_GetViewID(hwndList) == VIEW_GROUPED || menu_id == ID_VIEW_GROUPED)
+ {
+ // this changes the sort order, so redo everything
+ force_reset = true;
+ }
+
+ for (i = 0; i < sizeof(s_nPickers) / sizeof(s_nPickers[0]); i++)
+ Picker_SetViewID(GetDlgItem(hMain, s_nPickers[i]), menu_id - ID_VIEW_LARGE_ICON);
+
+ if (force_reset)
+ {
+ for (i = 0; i < sizeof(s_nPickers) / sizeof(s_nPickers[0]); i++)
+ Picker_Sort(GetDlgItem(hMain, s_nPickers[i]));
+ }
+}
+
+static void ResetListView()
+{
+ int i;
+ int current_game;
+ LV_ITEM lvi;
+ BOOL no_selection = false;
+ LPTREEFOLDER lpFolder = GetCurrentFolder();
+ HRESULT res;
+ BOOL b_res;
+
+ if (!lpFolder)
+ return;
+
+ /* If the last folder was empty, no_selection is true */
+ if (have_selection == false)
+ no_selection = true;
+
+ current_game = Picker_GetSelectedItem(hwndList);
+ if (current_game < 0)
+ no_selection = true;
+
+ SetWindowRedraw(hwndList,false);
+
+ b_res = ListView_DeleteAllItems(hwndList);
+
+ // hint to have it allocate it all at once
+ ListView_SetItemCount(hwndList,driver_list::total());
+
+ lvi.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_PARAM;
+ lvi.stateMask = 0;
+
+ i = -1;
+
+ do
+ {
+ /* Add the games that are in this folder */
+ if ((i = FindGame(lpFolder, i + 1)) != -1)
+ {
+ if (GameFiltered(i, lpFolder->m_dwFlags))
+ continue;
+
+ lvi.iItem = i;
+ lvi.iSubItem = 0;
+ lvi.lParam = i;
+ lvi.pszText = LPSTR_TEXTCALLBACK;
+ lvi.iImage = I_IMAGECALLBACK;
+ res = ListView_InsertItem(hwndList, &lvi);
+ }
+ } while (i != -1);
+
+ Picker_Sort(hwndList);
+
+ if (bListReady)
+ {
+ /* If last folder was empty, select the first item in this folder */
+ if (no_selection)
+ Picker_SetSelectedPick(hwndList, 0);
+ else
+ Picker_SetSelectedItem(hwndList, current_game);
+ }
+
+ /*RS Instead of the Arrange Call that was here previously on all Views
+ We now need to set the ViewMode for SmallIcon again,
+ for an explanation why, see SetView*/
+ if (GetViewMode() == VIEW_SMALL_ICONS)
+ SetView(ID_VIEW_SMALL_ICON);
+
+ SetWindowRedraw(hwndList, true);
+
+ UpdateStatusBar();
+ res++;
+ b_res++;
+}
+
+static void UpdateGameList(BOOL bUpdateRomAudit, BOOL bUpdateSampleAudit)
+{
+ for (int i = 0; i < driver_list::total(); i++)
+ {
+ if (bUpdateRomAudit && DriverUsesRoms(i))
+ SetRomAuditResults(i, UNKNOWN);
+ if (bUpdateSampleAudit && DriverUsesSamples(i))
+ SetSampleAuditResults(i, UNKNOWN);
+ }
+
+ idle_work = true;
+ bDoGameCheck = true;
+ game_index = 0;
+
+ ReloadIcons();
+
+ // Let REFRESH also load new background if found
+ LoadBackgroundBitmap();
+ InvalidateRect(hMain,NULL,true);
+ Picker_ResetIdle(hwndList);
+}
+
+static void UpdateCache()
+{
+ int current_id = GetCurrentFolderID(); // remember selected folder
+ SetWindowRedraw(hwndList, false); // stop screen updating
+ ForceRebuild(); // tell system that cache needs redoing
+ (void)OptionsInit(); // reload options and fix game cache
+ //extern const FOLDERDATA g_folderData[];
+ //extern const FILTER_ITEM g_filterList[];
+ //InitTree(g_folderData, g_filterList); // redo folders... This crashes, leave out for now
+ ResetTreeViewFolders(); // something with folders
+ SelectTreeViewFolder(current_id); // select previous folder
+ SetWindowRedraw(hwndList, true); // refresh screen
+}
+
+UINT_PTR CALLBACK CFHookProc(
+ HWND hdlg, // handle to dialog box
+ UINT uiMsg, // message identifier
+ WPARAM wParam, // message parameter
+ LPARAM lParam // message parameter
+)
+{
+ int iIndex, i;
+ COLORREF cCombo, cList;
+ switch (uiMsg)
+ {
+ case WM_INITDIALOG:
+ SendDlgItemMessage(hdlg, cmb4, CB_ADDSTRING, 0, (LPARAM)TEXT("Custom"));
+ iIndex = SendDlgItemMessage(hdlg, cmb4, CB_GETCOUNT, 0, 0);
+ cList = GetListFontColor();
+ SendDlgItemMessage(hdlg, cmb4, CB_SETITEMDATA,(WPARAM)iIndex-1,(LPARAM)cList );
+ for( i = 0; i< iIndex; i++)
+ {
+ cCombo = SendDlgItemMessage(hdlg, cmb4, CB_GETITEMDATA,(WPARAM)i,0 );
+ if( cList == cCombo)
+ {
+ SendDlgItemMessage(hdlg, cmb4, CB_SETCURSEL,(WPARAM)i,0 );
+ break;
+ }
+ }
+ break;
+ case WM_COMMAND:
+ if( LOWORD(wParam) == cmb4)
+ {
+ switch (HIWORD(wParam))
+ {
+ case CBN_SELCHANGE: // The color ComboBox changed selection
+ iIndex = (int)SendDlgItemMessage(hdlg, cmb4,
+ CB_GETCURSEL, 0, 0L);
+ if( iIndex == SendDlgItemMessage(hdlg, cmb4, CB_GETCOUNT, 0, 0)-1)
+ {
+ //Custom color selected
+ cList = GetListFontColor();
+ PickColor(&cList);
+ SendDlgItemMessage(hdlg, cmb4, CB_DELETESTRING, iIndex, 0);
+ SendDlgItemMessage(hdlg, cmb4, CB_ADDSTRING, 0, (LPARAM)TEXT("Custom"));
+ SendDlgItemMessage(hdlg, cmb4, CB_SETITEMDATA,(WPARAM)iIndex,(LPARAM)cList);
+ SendDlgItemMessage(hdlg, cmb4, CB_SETCURSEL,(WPARAM)iIndex,0 );
+ return true;
+ }
+ }
+ }
+ break;
+ }
+ return false;
+}
+
+static void PickFont(void)
+{
+ LOGFONT font;
+ CHOOSEFONT cf;
+ TCHAR szClass[128];
+ HWND hWnd;
+ HRESULT res;
+ BOOL b_res;
+
+ GetListFont(&font);
+ font.lfQuality = DEFAULT_QUALITY;
+
+ cf.lStructSize = sizeof(CHOOSEFONT);
+ cf.hwndOwner = hMain;
+ cf.lpLogFont = &font;
+ cf.lpfnHook = &CFHookProc;
+ cf.rgbColors = GetListFontColor();
+ cf.Flags = CF_SCREENFONTS | CF_INITTOLOGFONTSTRUCT | CF_EFFECTS | CF_ENABLEHOOK;
+ if (!ChooseFont(&cf))
+ return;
+
+ SetListFont(&font);
+ if (hFont)
+ DeleteFont(hFont);
+ hFont = CreateFontIndirect(&font);
+ if (hFont)
+ {
+ COLORREF textColor = cf.rgbColors;
+
+ if (textColor == RGB(255,255,255))
+ {
+ textColor = RGB(240, 240, 240);
+ }
+
+ SetAllWindowsFont(hMain, &main_resize, hFont, true);
+
+ hWnd = GetWindow(hMain, GW_CHILD);
+ while(hWnd)
+ {
+ if (GetClassName(hWnd, szClass, sizeof(szClass) / sizeof(szClass[0])))
+ {
+ if (!_tcscmp(szClass, TEXT("SysListView32")))
+ {
+ b_res = ListView_SetTextColor(hWnd, textColor);
+ b_res++;
+ }
+ else if (!_tcscmp(szClass, TEXT("SysTreeView32")))
+ {
+ res = TreeView_SetTextColor(hTreeView, textColor);
+ res++;
+ }
+ }
+ hWnd = GetWindow(hWnd, GW_HWNDNEXT);
+ }
+ SetListFontColor(cf.rgbColors);
+ ResetListView();
+ }
+}
+
+static void PickColor(COLORREF *cDefault)
+{
+ CHOOSECOLOR cc;
+ COLORREF choice_colors[16];
+ int i;
+
+ for (i=0;i<16;i++)
+ choice_colors[i] = GetCustomColor(i);
+
+ cc.lStructSize = sizeof(CHOOSECOLOR);
+ cc.hwndOwner = hMain;
+ cc.rgbResult = *cDefault;
+ cc.lpCustColors = choice_colors;
+ cc.Flags = CC_ANYCOLOR | CC_RGBINIT | CC_SOLIDCOLOR | CC_FULLOPEN;
+ if (!ChooseColor(&cc))
+ return;
+ for (i=0;i<16;i++)
+ SetCustomColor(i,choice_colors[i]);
+ *cDefault = cc.rgbResult;
+}
+
+static void PickCloneColor(void)
+{
+ COLORREF cClonecolor;
+ cClonecolor = GetListCloneColor();
+ PickColor( &cClonecolor);
+ SetListCloneColor(cClonecolor);
+ InvalidateRect(hwndList,NULL,false);
+}
+
+static BOOL MameCommand(HWND hwnd,int id, HWND hwndCtl, UINT codeNotify)
+{
+ int i = 0;
+ LPTREEFOLDER folder;
+ char* utf8_szFile;
+ BOOL res = 0;
+ int current_game = Picker_GetSelectedItem(hwndList);
+
+ switch (id)
+ {
+ case ID_FILE_PLAY:
+ MamePlayGame();
+ return true;
+
+ case ID_FILE_PLAY_RECORD:
+ MamePlayRecordGame();
+ return true;
+
+ case ID_FILE_PLAY_BACK:
+ MamePlayBackGame();
+ return true;
+
+ case ID_FILE_PLAY_RECORD_WAVE:
+ MamePlayRecordWave();
+ return true;
+
+ case ID_FILE_PLAY_RECORD_MNG:
+ MamePlayRecordMNG();
+ return true;
+
+ case ID_FILE_PLAY_RECORD_AVI:
+ MamePlayRecordAVI();
+ return true;
+
+ case ID_FILE_LOADSTATE :
+ MameLoadState();
+ return true;
+
+ case ID_FILE_AUDIT:
+ AuditDialog(hMain, 1);
+ ResetWhichGamesInFolders();
+ ResetListView();
+ SetFocus(hwndList);
+ return true;
+
+ case ID_FILE_AUDIT_X:
+ AuditDialog(hMain, 2);
+ ResetWhichGamesInFolders();
+ ResetListView();
+ SetFocus(hwndList);
+ return true;
+
+ case ID_FILE_EXIT:
+ PostMessage(hMain, WM_CLOSE, 0, 0);
+ return true;
+
+ case ID_VIEW_LARGE_ICON:
+ SetView(ID_VIEW_LARGE_ICON);
+ return true;
+
+ case ID_VIEW_SMALL_ICON:
+ SetView(ID_VIEW_SMALL_ICON);
+ ResetListView();
+ return true;
+
+ case ID_VIEW_LIST_MENU:
+ SetView(ID_VIEW_LIST_MENU);
+ return true;
+
+ case ID_VIEW_DETAIL:
+ SetView(ID_VIEW_DETAIL);
+ return true;
+
+ case ID_VIEW_GROUPED:
+ SetView(ID_VIEW_GROUPED);
+ return true;
+
+ /* Arrange Icons submenu */
+ case ID_VIEW_BYGAME:
+ SetSortReverse(false);
+ SetSortColumn(COLUMN_GAMES);
+ Picker_Sort(hwndList);
+ break;
+
+ case ID_VIEW_BYDIRECTORY:
+ SetSortReverse(false);
+ SetSortColumn(COLUMN_DIRECTORY);
+ Picker_Sort(hwndList);
+ break;
+
+ case ID_VIEW_BYMANUFACTURER:
+ SetSortReverse(false);
+ SetSortColumn(COLUMN_MANUFACTURER);
+ Picker_Sort(hwndList);
+ break;
+
+ case ID_VIEW_BYTIMESPLAYED:
+ SetSortReverse(false);
+ SetSortColumn(COLUMN_PLAYED);
+ Picker_Sort(hwndList);
+ break;
+
+ case ID_VIEW_BYTYPE:
+ SetSortReverse(false);
+ SetSortColumn(COLUMN_TYPE);
+ Picker_Sort(hwndList);
+ break;
+
+ case ID_VIEW_BYYEAR:
+ SetSortReverse(false);
+ SetSortColumn(COLUMN_YEAR);
+ Picker_Sort(hwndList);
+ break;
+
+ case ID_VIEW_FOLDERS:
+ {
+ int val = GetWindowPanes() ^ 1;
+ BOOL bShowTree = BIT(val, 0);
+ SetWindowPanes(val);
+ CheckMenuItem(GetMenu(hMain), ID_VIEW_FOLDERS, (bShowTree) ? MF_CHECKED : MF_UNCHECKED);
+ ToolBar_CheckButton(s_hToolBar, ID_VIEW_FOLDERS, (bShowTree) ? MF_CHECKED : MF_UNCHECKED);
+ UpdateScreenShot();
+ break;
+ }
+
+ case ID_VIEW_TOOLBARS:
+ bShowToolBar = !bShowToolBar;
+ SetShowToolBar(bShowToolBar);
+ CheckMenuItem(GetMenu(hMain), ID_VIEW_TOOLBARS, (bShowToolBar) ? MF_CHECKED : MF_UNCHECKED);
+ ToolBar_CheckButton(s_hToolBar, ID_VIEW_TOOLBARS, (bShowToolBar) ? MF_CHECKED : MF_UNCHECKED);
+ ShowWindow(s_hToolBar, (bShowToolBar) ? SW_SHOW : SW_HIDE);
+ ResizePickerControls(hMain);
+ UpdateScreenShot();
+ break;
+
+ case ID_VIEW_STATUS:
+ bShowStatusBar = !bShowStatusBar;
+ SetShowStatusBar(bShowStatusBar);
+ CheckMenuItem(GetMenu(hMain), ID_VIEW_STATUS, (bShowStatusBar) ? MF_CHECKED : MF_UNCHECKED);
+ ToolBar_CheckButton(s_hToolBar, ID_VIEW_STATUS, (bShowStatusBar) ? MF_CHECKED : MF_UNCHECKED);
+ ShowWindow(hStatusBar, (bShowStatusBar) ? SW_SHOW : SW_HIDE);
+ ResizePickerControls(hMain);
+ UpdateScreenShot();
+ break;
+
+ case ID_VIEW_PAGETAB:
+ bShowTabCtrl = !bShowTabCtrl;
+ SetShowTabCtrl(bShowTabCtrl);
+ ShowWindow(hTabCtrl, (bShowTabCtrl) ? SW_SHOW : SW_HIDE);
+ ResizePickerControls(hMain);
+ UpdateScreenShot();
+ InvalidateRect(hMain,NULL,true);
+ break;
+
+ /*
+ Switches to fullscreen mode. No check mark handling
+ for this item cause in fullscreen mode the menu won't
+ be visible anyways.
+ */
+ case ID_VIEW_FULLSCREEN:
+ SwitchFullScreenMode();
+ break;
+
+ case ID_TOOLBAR_EDIT:
+ {
+ string buf;
+ HWND hToolbarEdit;
+
+ buf = win_get_window_text_utf8(hwndCtl);
+ switch (codeNotify)
+ {
+ case TOOLBAR_EDIT_ACCELERATOR_PRESSED:
+ hToolbarEdit = GetDlgItem( s_hToolBar, ID_TOOLBAR_EDIT);
+ SetFocus(hToolbarEdit);
+ break;
+ case EN_CHANGE:
+ //put search routine here first, add a 200ms timer later.
+ if ((!_stricmp(buf.c_str(), SEARCH_PROMPT) && !_stricmp(g_SearchText, "")))
+ strcpy(g_SearchText, buf.c_str());
+ else
+ {
+ strcpy(g_SearchText, buf.c_str());
+ ResetListView();
+ }
+ break;
+ case EN_SETFOCUS:
+ if (!_stricmp(buf.c_str(), SEARCH_PROMPT))
+ win_set_window_text_utf8(hwndCtl, "");
+ break;
+ case EN_KILLFOCUS:
+ if (*buf.c_str() == 0)
+ win_set_window_text_utf8(hwndCtl, SEARCH_PROMPT);
+ break;
+ }
+ }
+ break;
+
+ case ID_GAME_AUDIT:
+ InitGameAudit(0);
+ if (!oldControl && (current_game >= 0))
+ InitPropertyPageToPage(hInst, hwnd, GetSelectedPickItemIcon(), OPTIONS_GAME, -1, current_game, AUDIT_PAGE);
+
+ /* Just in case the toggle MMX on/off */
+ UpdateStatusBar();
+ break;
+
+ /* ListView Context Menu */
+ case ID_CONTEXT_ADD_CUSTOM:
+ {
+ if (current_game >= 0)
+ DialogBoxParam(GetModuleHandle(NULL),MAKEINTRESOURCE(IDD_CUSTOM_FILE), hMain,AddCustomFileDialogProc, current_game);
+ SetFocus(hwndList);
+ break;
+ }
+
+ case ID_CONTEXT_REMOVE_CUSTOM:
+ {
+ RemoveCurrentGameCustomFolder();
+ break;
+ }
+
+ /* Tree Context Menu */
+ case ID_CONTEXT_FILTERS:
+ if (DialogBox(GetModuleHandle(NULL), MAKEINTRESOURCE(IDD_FILTERS), hMain, FilterDialogProc) == true)
+ ResetListView();
+ SetFocus(hwndList);
+ return true;
+
+ // ScreenShot Context Menu
+ // select current tab
+ case ID_VIEW_TAB_SCREENSHOT:
+ case ID_VIEW_TAB_TITLE:
+ case ID_VIEW_TAB_SCORES:
+ case ID_VIEW_TAB_HOWTO:
+ case ID_VIEW_TAB_SELECT:
+ case ID_VIEW_TAB_VERSUS:
+ case ID_VIEW_TAB_BOSSES:
+ case ID_VIEW_TAB_COVER:
+ case ID_VIEW_TAB_ENDS:
+ case ID_VIEW_TAB_GAMEOVER:
+ case ID_VIEW_TAB_LOGO:
+ case ID_VIEW_TAB_ARTWORK:
+ case ID_VIEW_TAB_FLYER:
+ case ID_VIEW_TAB_CABINET:
+ case ID_VIEW_TAB_MARQUEE:
+ case ID_VIEW_TAB_CONTROL_PANEL:
+ case ID_VIEW_TAB_PCB:
+ case ID_VIEW_TAB_HISTORY:
+ if (id == ID_VIEW_TAB_HISTORY && GetShowTab(TAB_HISTORY) == false)
+ break;
+
+ TabView_SetCurrentTab(hTabCtrl, id - ID_VIEW_TAB_ARTWORK);
+ UpdateScreenShot();
+ TabView_UpdateSelection(hTabCtrl);
+ break;
+
+ // toggle tab's existence
+ case ID_TOGGLE_TAB_SCREENSHOT:
+ case ID_TOGGLE_TAB_TITLE:
+ case ID_TOGGLE_TAB_SCORES:
+ case ID_TOGGLE_TAB_HOWTO:
+ case ID_TOGGLE_TAB_SELECT:
+ case ID_TOGGLE_TAB_VERSUS:
+ case ID_TOGGLE_TAB_BOSSES:
+ case ID_TOGGLE_TAB_COVER:
+ case ID_TOGGLE_TAB_ENDS:
+ case ID_TOGGLE_TAB_GAMEOVER:
+ case ID_TOGGLE_TAB_LOGO:
+ case ID_TOGGLE_TAB_ARTWORK:
+ case ID_TOGGLE_TAB_FLYER:
+ case ID_TOGGLE_TAB_CABINET:
+ case ID_TOGGLE_TAB_MARQUEE:
+ case ID_TOGGLE_TAB_CONTROL_PANEL:
+ case ID_TOGGLE_TAB_PCB:
+ case ID_TOGGLE_TAB_HISTORY:
+ {
+ int toggle_flag = id - ID_TOGGLE_TAB_ARTWORK;
+
+ if (AllowedToSetShowTab(toggle_flag,!GetShowTab(toggle_flag)) == false)
+ {
+ // attempt to hide the last tab
+ // should show error dialog? hide picture area? or ignore?
+ break;
+ }
+
+ SetShowTab(toggle_flag,!GetShowTab(toggle_flag));
+
+ TabView_Reset(hTabCtrl);
+
+ if (TabView_GetCurrentTab(hTabCtrl) == toggle_flag && GetShowTab(toggle_flag) == false)
+ {
+ // we're deleting the tab we're on, so go to the next one
+ TabView_CalculateNextTab(hTabCtrl);
+ }
+
+
+ // Resize the controls in case we toggled to another history
+ // mode (and the history control needs resizing).
+
+ ResizePickerControls(hMain);
+ UpdateScreenShot();
+
+ TabView_UpdateSelection(hTabCtrl);
+
+ break;
+ }
+
+ /* Header Context Menu */
+ case ID_SORT_ASCENDING:
+ SetSortReverse(false);
+ SetSortColumn(Picker_GetRealColumnFromViewColumn(hwndList, lastColumnClick));
+ Picker_Sort(hwndList);
+ break;
+
+ case ID_SORT_DESCENDING:
+ SetSortReverse(true);
+ SetSortColumn(Picker_GetRealColumnFromViewColumn(hwndList, lastColumnClick));
+ Picker_Sort(hwndList);
+ break;
+
+ case ID_CUSTOMIZE_FIELDS:
+ if (DialogBox(GetModuleHandle(NULL),
+ MAKEINTRESOURCE(IDD_COLUMNS), hMain, ColumnDialogProc) == true)
+ ResetColumnDisplay(false);
+ SetFocus(hwndList);
+ return true;
+
+ /* View Menu */
+ case ID_VIEW_LINEUPICONS:
+ if( codeNotify == false)
+ ResetListView();
+ else
+ {
+ /*it was sent after a refresh (F5) was done, we only reset the View if "available" is the selected folder
+ as it doesn't affect the others*/
+ folder = GetSelectedFolder();
+ if( folder )
+ if (folder->m_nFolderId == FOLDER_AVAILABLE )
+ ResetListView();
+ }
+ break;
+
+ case ID_GAME_PROPERTIES:
+ if (!oldControl && (current_game >= 0))
+ InitPropertyPageToPage(hInst, hwnd, GetSelectedPickItemIcon(), OPTIONS_GAME, -1, current_game, PROPERTIES_PAGE);
+
+ /* Just in case the toggle MMX on/off */
+ UpdateStatusBar();
+ break;
+
+ // NOT WORKING
+ case ID_FOLDER_PROPERTIES:
+ if (!oldControl && (current_game >= 0))
+ {
+ OPTIONS_TYPE curOptType = OPTIONS_SOURCE;
+ folder = GetSelectedFolder();
+ if (folder)
+ {
+ if(folder->m_nFolderId == FOLDER_VECTOR)
+ curOptType = OPTIONS_VECTOR;
+
+ InitPropertyPage(hInst, hwnd, GetSelectedFolderIcon(), curOptType, folder->m_nFolderId, current_game);
+ }
+ }
+ /* Just in case the toggle MMX on/off */
+ UpdateStatusBar();
+ break;
+
+ case ID_FOLDER_SOURCEPROPERTIES:
+ if (!oldControl && (current_game >= 0))
+ {
+ //InitPropertyPage(hInst, hwnd, GetSelectedFolderIcon(), (folder->m_nFolderId == FOLDER_VECTOR) ? OPTIONS_VECTOR : OPTIONS_SOURCE , -1, current_game);
+ InitPropertyPage(hInst, hwnd, GetSelectedFolderIcon(), OPTIONS_SOURCE, -1, current_game);
+ }
+ /* Just in case the toggle MMX on/off */
+ UpdateStatusBar();
+ break;
+
+ case ID_FOLDER_VECTORPROPERTIES:
+ if (!oldControl && (current_game >= 0))
+ {
+ folder = GetFolderByID( FOLDER_VECTOR );
+ InitPropertyPage(hInst, hwnd, GetSelectedFolderIcon(), OPTIONS_VECTOR, folder->m_nFolderId, current_game);
+ }
+ /* Just in case the toggle MMX on/off */
+ UpdateStatusBar();
+ break;
+
+ case ID_FOLDER_AUDIT:
+ FolderCheck();
+ /* Just in case the toggle MMX on/off */
+ UpdateStatusBar();
+ break;
+
+ case ID_VIEW_PICTURE_AREA :
+ ToggleScreenShot();
+ break;
+
+ case ID_UPDATE_GAMELIST:
+ UpdateGameList(true, true);
+ break;
+
+ case ID_UPDATE_CACHE:
+ UpdateCache();
+ break;
+
+ case ID_OPTIONS_FONT:
+ PickFont();
+ return true;
+
+ case ID_OPTIONS_CLONE_COLOR:
+ PickCloneColor();
+ return true;
+
+ case ID_OPTIONS_DEFAULTS:
+ /* Check the return value to see if changes were applied */
+ if (!oldControl)
+ {
+ InitDefaultPropertyPage(hInst, hwnd);
+ }
+ SetFocus(hwndList);
+ return true;
+
+ case ID_OPTIONS_DIR:
+ {
+ int nResult = DialogBox(GetModuleHandle(NULL),
+ MAKEINTRESOURCE(IDD_DIRECTORIES),
+ hMain,
+ DirectoriesDialogProc);
+
+ SaveDefaultOptions();
+ SaveOptions();
+
+ BOOL bUpdateRoms = ((nResult & DIRDLG_ROMS) == DIRDLG_ROMS) ? true : false;
+ BOOL bUpdateSamples = ((nResult & DIRDLG_SAMPLES) == DIRDLG_SAMPLES) ? true : false;
+
+ if (s_pWatcher)
+ {
+ if (bUpdateRoms)
+ DirWatcher_Watch(s_pWatcher, 0, GetRomDirs(), true);
+ if (bUpdateSamples)
+ DirWatcher_Watch(s_pWatcher, 1, GetSampleDirs(), true);
+ }
+
+ /* update game list */
+ if (bUpdateRoms == true || bUpdateSamples == true)
+ UpdateGameList(bUpdateRoms, bUpdateSamples);
+
+ SetFocus(hwndList);
+ }
+ return true;
+
+ case ID_OPTIONS_RESET_DEFAULTS:
+ if (DialogBox(GetModuleHandle(NULL), MAKEINTRESOURCE(IDD_RESET), hMain, ResetDialogProc) == true)
+ {
+ // these may have been changed
+ SaveDefaultOptions();
+ SaveOptions();
+ DestroyWindow(hwnd);
+ PostQuitMessage(0);
+ }
+ else
+ {
+ ResetListView();
+ SetFocus(hwndList);
+ }
+ return true;
+
+ case ID_OPTIONS_INTERFACE:
+ DialogBox(GetModuleHandle(NULL), MAKEINTRESOURCE(IDD_INTERFACE_OPTIONS), hMain, InterfaceDialogProc);
+ SaveOptions();
+
+ KillTimer(hMain, SCREENSHOT_TIMER);
+ if( GetCycleScreenshot() > 0)
+ {
+ SetTimer(hMain, SCREENSHOT_TIMER, GetCycleScreenshot()*1000, NULL ); // Scale to seconds
+ }
+
+ return true;
+
+ case ID_VIDEO_SNAP:
+ {
+ int nGame = Picker_GetSelectedItem(hwndList);
+ if (nGame >= 0)
+ {
+ string path = GetVideoDir() + string("\\") + driver_list::driver(nGame).name + string(".mp4");
+ ShellExecuteCommon(hMain, path.c_str());
+ }
+ SetFocus(hwndList);
+ }
+ break;
+
+ case ID_MANUAL:
+ {
+ int nGame = Picker_GetSelectedItem(hwndList);
+ if (nGame >= 0)
+ {
+ string path = GetManualsDir() + string("\\") + driver_list::driver(nGame).name + string(".pdf");
+ ShellExecuteCommon(hMain, path.c_str());
+ }
+ SetFocus(hwndList);
+ }
+ break;
+
+ case ID_OPTIONS_BG:
+ {
+ // Get the path from the existing filename; if no filename go to root
+ TCHAR* t_bgdir = TEXT(".");
+ bool free_bgdir = false;
+ string as, s = GetBgDir();
+ util::zippath_parent(as, s.c_str());
+ size_t t1 = as.length()-1;
+ if (as[t1] == '\\') as.substr(0, t1-1);
+ t1 = as.find(':');
+ if (t1 != string::npos)
+ {
+ t_bgdir = ui_wstring_from_utf8(as.c_str());
+ free_bgdir = true;
+ if( !t_bgdir )
+ return false;
+ }
+
+ OPENFILENAME OFN;
+ TCHAR szFile[MAX_PATH] = TEXT("\0");
+
+ OFN.lStructSize = sizeof(OPENFILENAME);
+ OFN.hwndOwner = hMain;
+ OFN.hInstance = 0;
+ OFN.lpstrFilter = TEXT("Image Files (*.png)\0*.PNG\0");
+ OFN.lpstrCustomFilter = NULL;
+ OFN.nMaxCustFilter = 0;
+ OFN.nFilterIndex = 1;
+ OFN.lpstrFile = szFile;
+ OFN.nMaxFile = sizeof(szFile);
+ OFN.lpstrFileTitle = NULL;
+ OFN.nMaxFileTitle = 0;
+ OFN.lpstrInitialDir = t_bgdir;
+ OFN.lpstrTitle = TEXT("Select a Background Image");
+ OFN.nFileOffset = 0;
+ OFN.nFileExtension = 0;
+ OFN.lpstrDefExt = NULL;
+ OFN.lCustData = 0;
+ OFN.lpfnHook = NULL;
+ OFN.lpTemplateName = NULL;
+ OFN.Flags = OFN_NOCHANGEDIR | OFN_SHOWHELP | OFN_EXPLORER;
+
+ BOOL res = GetOpenFileName(&OFN);
+ if (res)
+ {
+ if (free_bgdir)
+ free(t_bgdir);
+ utf8_szFile = ui_utf8_from_wstring(szFile);
+ if( !utf8_szFile )
+ return false;
+
+ // Make this file as the new default
+ SetBgDir(utf8_szFile);
+
+ // Display new background
+ LoadBackgroundBitmap();
+ InvalidateRect(hMain, NULL, true);
+ free(utf8_szFile);
+ return true;
+ }
+ if (free_bgdir)
+ free(t_bgdir);
+ }
+ break;
+#if 0
+ case ID_OPTIONS_HISTORY:
+ {
+ char filename[MAX_PATH];
+ strcpy(filename, GetHistoryFileName());
+ if (CommonFileDialog(GetOpenFileName, filename, FILETYPE_HISTORY_FILE))
+ {
+ SetHistoryFileName(filename);
+ }
+ return true;
+ }
+ case ID_OPTIONS_MAMEINFO:
+ {
+ char filename[MAX_PATH];
+ strcpy(filename, GetMAMEInfoFileName());
+ if (CommonFileDialog(GetOpenFileName, filename, FILETYPE_MAMEINFO_FILE))
+ {
+ SetMAMEInfoFileName(filename);
+ }
+ return true;
+ }
+#endif
+ case ID_HELP_ABOUT:
+ DialogBox(GetModuleHandle(NULL), MAKEINTRESOURCE(IDD_ABOUT), hMain, AboutDialogProc);
+ SetFocus(hwndList);
+ return true;
+
+ case IDOK :
+ /* cmk -- might need to check more codes here, not sure */
+ if (codeNotify != EN_CHANGE && codeNotify != EN_UPDATE)
+ {
+ /* enter key */
+ if (g_in_treeview_edit)
+ {
+ res = TreeView_EndEditLabelNow(hTreeView, false);
+ return true;
+ }
+ else
+ if (have_selection)
+ MamePlayGame();
+ }
+ break;
+
+ case IDCANCEL : /* esc key */
+ if (g_in_treeview_edit)
+ res = TreeView_EndEditLabelNow(hTreeView, true);
+ break;
+
+ case IDC_PLAY_GAME :
+ if (have_selection)
+ MamePlayGame();
+ break;
+
+ case ID_UI_START:
+ SetFocus(hwndList);
+ MamePlayGame();
+ break;
+
+ case ID_UI_UP:
+ Picker_SetSelectedPick(hwndList, GetSelectedPick() - 1);
+ break;
+
+ case ID_UI_DOWN:
+ Picker_SetSelectedPick(hwndList, GetSelectedPick() + 1);
+ break;
+
+ case ID_UI_PGUP:
+ Picker_SetSelectedPick(hwndList, GetSelectedPick() - ListView_GetCountPerPage(hwndList));
+ break;
+
+ case ID_UI_PGDOWN:
+ if ( (GetSelectedPick() + ListView_GetCountPerPage(hwndList)) < ListView_GetItemCount(hwndList) )
+ Picker_SetSelectedPick(hwndList, GetSelectedPick() + ListView_GetCountPerPage(hwndList) );
+ else
+ Picker_SetSelectedPick(hwndList, ListView_GetItemCount(hwndList)-1 );
+ break;
+
+ case ID_UI_HOME:
+ Picker_SetSelectedPick(hwndList, 0);
+ break;
+
+ case ID_UI_END:
+ Picker_SetSelectedPick(hwndList, ListView_GetItemCount(hwndList)-1 );
+ break;
+ case ID_UI_LEFT:
+ /* hmmmmm..... */
+ SendMessage(hwndList,WM_HSCROLL, SB_LINELEFT, 0);
+ break;
+
+ case ID_UI_RIGHT:
+ /* hmmmmm..... */
+ SendMessage(hwndList,WM_HSCROLL, SB_LINERIGHT, 0);
+ break;
+ case ID_UI_HISTORY_UP:
+ /* hmmmmm..... */
+ {
+ HWND hHistory = GetDlgItem(hMain, IDC_HISTORY);
+ SendMessage(hHistory, EM_SCROLL, SB_PAGEUP, 0);
+ }
+ break;
+
+ case ID_UI_HISTORY_DOWN:
+ /* hmmmmm..... */
+ {
+ HWND hHistory = GetDlgItem(hMain, IDC_HISTORY);
+ SendMessage(hHistory, EM_SCROLL, SB_PAGEDOWN, 0);
+ }
+ break;
+
+ case IDC_SSFRAME:
+ TabView_CalculateNextTab(hTabCtrl);
+ UpdateScreenShot();
+ TabView_UpdateSelection(hTabCtrl);
+ break;
+
+ case ID_CONTEXT_SELECT_RANDOM:
+ SetRandomPickItem();
+ break;
+
+ case ID_CONTEXT_RESET_PLAYSTATS:
+ ResetPlayTime(current_game);
+ ResetPlayCount(current_game);
+ res = ListView_RedrawItems(hwndList, GetSelectedPick(), GetSelectedPick());
+ break;
+
+ case ID_CONTEXT_RENAME_CUSTOM :
+ TreeView_EditLabel(hTreeView,TreeView_GetSelection(hTreeView));
+ break;
+
+ default:
+ if (id >= ID_CONTEXT_SHOW_FOLDER_START && id < ID_CONTEXT_SHOW_FOLDER_END)
+ {
+ ToggleShowFolder(id - ID_CONTEXT_SHOW_FOLDER_START);
+ break;
+ }
+ for (i = 0; g_helpInfo[i].nMenuItem > 0; i++)
+ {
+ if (g_helpInfo[i].nMenuItem == id)
+ {
+ printf("%X: %ls\n",g_helpInfo[i].bIsHtmlHelp, g_helpInfo[i].lpFile);
+ if (i == 1) // get current whatsnew.txt from mamedev.org
+ {
+ string version = string(GetVersionString()); // turn version string into std
+ version.erase(1,1); // take out the decimal point
+ version.erase(4, string::npos); // take out the date
+ string url = "http://mamedev.org/releases/whatsnew_" + version + ".txt"; // construct url
+ std::wstring stemp = s2ws(url); // convert to wide string (yeah, typical c++ mess)
+ LPCWSTR result = stemp.c_str(); // then convert to const wchar_t*
+ ShellExecute(hMain, TEXT("open"), result, TEXT(""), NULL, SW_SHOWNORMAL); // show web page
+ }
+ else
+ if (g_helpInfo[i].bIsHtmlHelp)
+// HelpFunction(hMain, g_helpInfo[i].lpFile, HH_DISPLAY_TOPIC, 0);
+ ShellExecute(hMain, TEXT("open"), g_helpInfo[i].lpFile, TEXT(""), NULL, SW_SHOWNORMAL);
+// else
+// DisplayTextFile(hMain, g_helpInfo[i].lpFile);
+ return false;
+ }
+ }
+ break;
+ }
+ res++;
+ return false;
+}
+
+static void LoadBackgroundBitmap()
+{
+ HGLOBAL hDIBbg;
+
+ if (hBackground)
+ {
+ DeleteBitmap(hBackground);
+ hBackground = 0;
+ }
+
+ if (hPALbg)
+ {
+ DeletePalette(hPALbg);
+ hPALbg = 0;
+ }
+
+ if (LoadDIBBG(&hDIBbg, &hPALbg))
+ {
+ HDC hDC = GetDC(hwndList);
+ hBackground = DIBToDDB(hDC, hDIBbg, &bmDesc);
+ GlobalFree(hDIBbg);
+ ReleaseDC(hwndList, hDC);
+ }
+}
+
+static void ResetColumnDisplay(BOOL first_time)
+{
+ if (!first_time)
+ Picker_ResetColumnDisplay(hwndList);
+
+ ResetListView();
+
+ Picker_SetSelectedItem(hwndList, GetDefaultGame());
+}
+
+static int GamePicker_GetItemImage(HWND hwndPicker, int nItem)
+{
+ return GetIconForDriver(nItem);
+}
+
+static const TCHAR *GamePicker_GetItemString(HWND hwndPicker, int nItem, int nColumn, TCHAR *pszBuffer, UINT nBufferLength)
+{
+ const TCHAR *s = NULL;
+ const char* utf8_s = NULL;
+ char playtime_buf[256];
+
+ switch(nColumn)
+ {
+ case COLUMN_GAMES:
+ /* Driver description */
+ utf8_s = ModifyThe(driver_list::driver(nItem).type.fullname());
+ break;
+
+ case COLUMN_ORIENTATION:
+ utf8_s = DriverIsVertical(nItem) ? "Vertical" : "Horizontal";
+ break;
+
+ case COLUMN_ROMS:
+ utf8_s = GetAuditString(GetRomAuditResults(nItem));
+ break;
+
+ case COLUMN_SAMPLES:
+ /* Samples */
+ if (DriverUsesSamples(nItem))
+ utf8_s = GetAuditString(GetSampleAuditResults(nItem));
+ else
+ s = TEXT("-");
+ break;
+
+ case COLUMN_DIRECTORY:
+ /* Driver name (directory) */
+ utf8_s = driver_list::driver(nItem).name;
+ break;
+
+ case COLUMN_SRCDRIVERS:
+ /* Source drivers */
+ utf8_s = GetDriverFilename(nItem);
+ break;
+
+ case COLUMN_PLAYTIME:
+ /* Source drivers */
+ GetTextPlayTime(nItem, playtime_buf);
+ utf8_s = playtime_buf;
+ break;
+
+ case COLUMN_TYPE:
+ /* Vector/Raster */
+ {
+ if (DriverIsVector(nItem))
+ s = TEXT("Vector");
+ else
+ s = TEXT("Raster");
+ break;
+ }
+
+ case COLUMN_TRACKBALL:
+ /* Trackball */
+ if (DriverUsesTrackball(nItem))
+ s = TEXT("Yes");
+ else
+ s = TEXT("No");
+ break;
+
+ case COLUMN_PLAYED:
+ /* times played */
+ _sntprintf(pszBuffer, nBufferLength, TEXT("%i"), GetPlayCount(nItem));
+ s = pszBuffer;
+ break;
+
+ case COLUMN_MANUFACTURER:
+ /* Manufacturer */
+ utf8_s = driver_list::driver(nItem).manufacturer;
+ break;
+
+ case COLUMN_YEAR:
+ /* Year */
+ utf8_s = driver_list::driver(nItem).year;
+ break;
+
+ case COLUMN_CLONE:
+ utf8_s = GetCloneParentName(nItem);
+ break;
+ }
+
+ if( utf8_s )
+ {
+ TCHAR* t_s = ui_wstring_from_utf8(utf8_s);
+ if( !t_s )
+ return s;
+
+ _sntprintf(pszBuffer, nBufferLength, TEXT("%s"), t_s);
+ free(t_s);
+
+ s = pszBuffer;
+ }
+
+ return s;
+}
+
+static void GamePicker_LeavingItem(HWND hwndPicker, int nItem)
+{
+ // leaving item
+ // printf("leaving %s\n",driver_list::driver(nItem).name);
+}
+
+static void GamePicker_EnteringItem(HWND hwndPicker, int nItem)
+{
+ EnableSelection(nItem);
+
+ // decide if it is valid to load a savestate
+ if (DriverSupportsSaveState(nItem))
+ EnableMenuItem(GetMenu(hMain), ID_FILE_LOADSTATE, MFS_ENABLED);
+ else
+ EnableMenuItem(GetMenu(hMain), ID_FILE_LOADSTATE, MFS_GRAYED);
+}
+
+static int GamePicker_FindItemParent(HWND hwndPicker, int nItem)
+{
+ return GetParentRomSetIndex(&driver_list::driver(nItem));
+}
+
+/* Initialize the Picker and List controls */
+static void InitListView()
+{
+ LVBKIMAGE bki;
+ //TCHAR path[MAX_PATH];
+ TCHAR* t_bgdir;
+ BOOL res;
+
+ static const struct PickerCallbacks s_gameListCallbacks =
+ {
+ SetSortColumn, /* pfnSetSortColumn */
+ GetSortColumn, /* pfnGetSortColumn */
+ SetSortReverse, /* pfnSetSortReverse */
+ GetSortReverse, /* pfnGetSortReverse */
+ SetViewMode, /* pfnSetViewMode */
+ GetViewMode, /* pfnGetViewMode */
+ SetColumnWidths, /* pfnSetColumnWidths */
+ GetColumnWidths, /* pfnGetColumnWidths */
+ SetColumnOrder, /* pfnSetColumnOrder */
+ GetColumnOrder, /* pfnGetColumnOrder */
+ SetColumnShown, /* pfnSetColumnShown */
+ GetColumnShown, /* pfnGetColumnShown */
+ GetOffsetClones, /* pfnGetOffsetChildren */
+
+ GamePicker_Compare, /* pfnCompare */
+ MamePlayGame, /* pfnDoubleClick */
+ GamePicker_GetItemString, /* pfnGetItemString */
+ GamePicker_GetItemImage, /* pfnGetItemImage */
+ GamePicker_LeavingItem, /* pfnLeavingItem */
+ GamePicker_EnteringItem, /* pfnEnteringItem */
+ BeginListViewDrag, /* pfnBeginListViewDrag */
+ GamePicker_FindItemParent, /* pfnFindItemParent */
+ OnIdle, /* pfnIdle */
+ GamePicker_OnHeaderContextMenu, /* pfnOnHeaderContextMenu */
+ GamePicker_OnBodyContextMenu /* pfnOnBodyContextMenu */
+ };
+
+ struct PickerOptions opts;
+
+ // subclass the list view
+ memset(&opts, 0, sizeof(opts));
+ opts.pCallbacks = &s_gameListCallbacks;
+ opts.nColumnCount = COLUMN_MAX;
+ opts.ppszColumnNames = column_names;
+ SetupPicker(hwndList, &opts);
+
+ res = ListView_SetTextBkColor(hwndList, CLR_NONE);
+ res = ListView_SetBkColor(hwndList, CLR_NONE);
+ t_bgdir = ui_wstring_from_utf8(GetBgDir().c_str());
+ if( !t_bgdir )
+ return;
+
+ bki.ulFlags = LVBKIF_SOURCE_URL | LVBKIF_STYLE_TILE;
+ bki.pszImage = t_bgdir;
+ if( hBackground )
+ res = ListView_SetBkImage(hwndList, &bki);
+
+ CreateIcons();
+
+ ResetColumnDisplay(true);
+
+ // Allow selection to change the default saved game
+ bListReady = true;
+ res++;
+ free(t_bgdir);
+}
+
+
+static void AddDriverIcon(int nItem,int default_icon_index)
+{
+ HICON hIcon = 0;
+ int nParentIndex = -1;
+
+ /* if already set to rom or clone icon, we've been here before */
+ if (icon_index[nItem] == 1 || icon_index[nItem] == 3)
+ return;
+
+ hIcon = LoadIconFromFile((char *)driver_list::driver(nItem).name);
+ if (hIcon == NULL)
+ {
+ nParentIndex = GetParentIndex(&driver_list::driver(nItem));
+ if( nParentIndex >= 0)
+ {
+ hIcon = LoadIconFromFile((char *)driver_list::driver(nParentIndex).name);
+ nParentIndex = GetParentIndex(&driver_list::driver(nParentIndex));
+ if (hIcon == NULL && nParentIndex >= 0)
+ hIcon = LoadIconFromFile((char *)driver_list::driver(nParentIndex).name);
+ }
+ }
+
+ if (hIcon)
+ {
+ int nIconPos = ImageList_AddIcon(hSmall, hIcon);
+ ImageList_AddIcon(hLarge, hIcon);
+ if (nIconPos != -1)
+ icon_index[nItem] = nIconPos;
+ DestroyIcon(hIcon);
+ }
+ if (icon_index[nItem] == 0)
+ icon_index[nItem] = default_icon_index;
+}
+
+static void DestroyIcons(void)
+{
+ if (hSmall)
+ {
+ ImageList_Destroy(hSmall);
+ hSmall = NULL;
+ }
+
+ if (icon_index)
+ {
+ int i;
+ for (i=0;i<driver_list::total();i++)
+ icon_index[i] = 0; // these are indices into hSmall
+ }
+
+ if (hLarge)
+ {
+ ImageList_Destroy(hLarge);
+ hLarge = NULL;
+ }
+
+ if (hHeaderImages)
+ {
+ ImageList_Destroy(hHeaderImages);
+ hHeaderImages = NULL;
+ }
+
+}
+
+static void ReloadIcons(void)
+{
+ HICON hIcon;
+ INT i;
+
+ // clear out all the images
+ ImageList_RemoveAll(hSmall);
+ ImageList_RemoveAll(hLarge);
+
+ if (icon_index)
+ for (i=0; i<driver_list::total(); i++)
+ icon_index[i] = 0; // these are indices into hSmall
+
+ for (i = 0; g_iconData[i].icon_name; i++)
+ {
+ hIcon = LoadIconFromFile((char *) g_iconData[i].icon_name);
+ if (hIcon == NULL)
+ hIcon = LoadIcon(hInst, MAKEINTRESOURCE(g_iconData[i].resource));
+
+ ImageList_AddIcon(hSmall, hIcon);
+ ImageList_AddIcon(hLarge, hIcon);
+ DestroyIcon(hIcon);
+ }
+}
+
+static DWORD GetShellLargeIconSize(void)
+{
+ DWORD dwSize = 32, dwLength = 512, dwType = REG_SZ;
+ TCHAR szBuffer[512];
+ HKEY hKey;
+ LONG lRes;
+ LPTSTR tErrorMessage = NULL;
+
+ /* Get the Key */
+ lRes = RegOpenKey(HKEY_CURRENT_USER, TEXT("Control Panel\\Desktop\\WindowMetrics"), &hKey);
+ if( lRes != ERROR_SUCCESS )
+ {
+ GetSystemErrorMessage(lRes, &tErrorMessage);
+ MessageBox(GetMainWindow(), tErrorMessage, TEXT("Large shell icon size registry access"), MB_OK | MB_ICONERROR);
+ LocalFree(tErrorMessage);
+ return dwSize;
+ }
+
+ /* Save the last size */
+ lRes = RegQueryValueEx(hKey, TEXT("Shell Icon Size"), NULL, &dwType, (LPBYTE)szBuffer, &dwLength);
+ if( lRes != ERROR_SUCCESS )
+ {
+ GetSystemErrorMessage(lRes, &tErrorMessage);
+ MessageBox(GetMainWindow(), tErrorMessage, TEXT("Large shell icon size registry query"), MB_OK | MB_ICONERROR);
+ LocalFree(tErrorMessage);
+ RegCloseKey(hKey);
+ return dwSize;
+ }
+
+ dwSize = _ttol(szBuffer);
+ if (dwSize < 32)
+ dwSize = 32;
+
+ if (dwSize > 48)
+ dwSize = 48;
+
+ /* Clean up */
+ RegCloseKey(hKey);
+ return dwSize;
+}
+
+static DWORD GetShellSmallIconSize(void)
+{
+ DWORD dwSize = ICONMAP_WIDTH;
+
+ if (dwSize < 48)
+ {
+ if (dwSize < 32)
+ dwSize = 16;
+ else
+ dwSize = 32;
+ }
+ else
+ {
+ dwSize = 48;
+ }
+ return dwSize;
+}
+
+// create iconlist for Listview control
+static void CreateIcons(void)
+{
+ DWORD dwSmallIconSize = GetShellSmallIconSize();
+ DWORD dwLargeIconSize = GetShellLargeIconSize();
+ HICON hIcon;
+ int icon_count;
+ DWORD dwStyle;
+ int i;
+ int grow = 5000;
+
+ icon_count = 0;
+ while(g_iconData[icon_count].icon_name)
+ icon_count++;
+
+ // the current window style affects the sizing of the rows when changing
+ // between list views, so put it in small icon mode temporarily while we associate
+ // our image list
+ //
+ // using large icon mode instead kills the horizontal scrollbar when doing
+ // full refresh, which seems odd (it should recreate the scrollbar when
+ // set back to report mode, for example, but it doesn't).
+
+ dwStyle = GetWindowLong(hwndList,GWL_STYLE);
+ SetWindowLong(hwndList,GWL_STYLE,(dwStyle & ~LVS_TYPEMASK) | LVS_ICON);
+
+ hSmall = ImageList_Create(dwSmallIconSize, dwSmallIconSize,
+ ILC_COLORDDB | ILC_MASK, icon_count, icon_count + grow);
+
+ if (NULL == hSmall)
+ {
+ win_message_box_utf8(hwndList, "Cannot allocate small icon image list", "Allocation error - Exiting", IDOK);
+ PostQuitMessage(0);
+ }
+
+ hLarge = ImageList_Create(dwLargeIconSize, dwLargeIconSize,
+ ILC_COLORDDB | ILC_MASK, icon_count, icon_count + grow);
+
+ if (NULL == hLarge) {
+ win_message_box_utf8(hwndList, "Cannot allocate large icon image list", "Allocation error - Exiting", IDOK);
+ PostQuitMessage(0);
+ }
+
+ ReloadIcons();
+
+ // Associate the image lists with the list view control.
+ (void)ListView_SetImageList(hwndList, hSmall, LVSIL_SMALL);
+ (void)ListView_SetImageList(hwndList, hLarge, LVSIL_NORMAL);
+
+ // restore our view
+ SetWindowLong(hwndList,GWL_STYLE,dwStyle);
+
+ // Now set up header specific stuff
+ hHeaderImages = ImageList_Create(16,16,ILC_COLORDDB | ILC_MASK,2,2);
+ hIcon = LoadIcon(hInst,MAKEINTRESOURCE(IDI_HEADER_UP));
+ ImageList_AddIcon(hHeaderImages,hIcon);
+ hIcon = LoadIcon(hInst,MAKEINTRESOURCE(IDI_HEADER_DOWN));
+ ImageList_AddIcon(hHeaderImages,hIcon);
+
+ for (i = 0; i < sizeof(s_nPickers) / sizeof(s_nPickers[0]); i++)
+ Picker_SetHeaderImageList(GetDlgItem(hMain, s_nPickers[i]), hHeaderImages);
+}
+
+
+
+static int GamePicker_Compare(HWND hwndPicker, int index1, int index2, int sort_subitem)
+{
+ int value = 0; /* Default to 0, for unknown case */
+ const char *name1 = NULL;
+ const char *name2 = NULL;
+ char file1[20];
+ char file2[20];
+ int nTemp1, nTemp2;
+
+ switch (sort_subitem)
+ {
+ case COLUMN_GAMES:
+ return core_stricmp(ModifyThe(driver_list::driver(index1).type.fullname()), ModifyThe(driver_list::driver(index2).type.fullname()));
+
+ case COLUMN_ORIENTATION:
+ nTemp1 = DriverIsVertical(index1) ? 1 : 0;
+ nTemp2 = DriverIsVertical(index2) ? 1 : 0;
+ value = nTemp1 - nTemp2;
+ break;
+
+ case COLUMN_SAMPLES:
+ nTemp1 = -1;
+ if (DriverUsesSamples(index1))
+ {
+ int audit_result = GetSampleAuditResults(index1);
+ if (IsAuditResultKnown(audit_result))
+ {
+ if (IsAuditResultYes(audit_result))
+ nTemp1 = 1;
+ else
+ nTemp1 = 0;
+ }
+ else
+ nTemp1 = 2;
+ }
+
+ nTemp2 = -1;
+ if (DriverUsesSamples(index2))
+ {
+ int audit_result = GetSampleAuditResults(index1);
+ if (IsAuditResultKnown(audit_result))
+ {
+ if (IsAuditResultYes(audit_result))
+ nTemp2 = 1;
+ else
+ nTemp2 = 0;
+ }
+ else
+ nTemp2 = 2;
+ }
+ value = nTemp2 - nTemp1;
+ break;
+
+ case COLUMN_DIRECTORY:
+ value = core_stricmp(driver_list::driver(index1).name, driver_list::driver(index2).name);
+ break;
+
+ case COLUMN_SRCDRIVERS:
+ strcpy(file1, GetDriverFilename(index1));
+ strcpy(file2, GetDriverFilename(index2));
+ value = core_stricmp(file1, file2);
+ break;
+
+ case COLUMN_PLAYTIME:
+ value = GetPlayTime(index1) - GetPlayTime(index2);
+ break;
+
+ case COLUMN_TYPE:
+ {
+ value = DriverIsVector(index1) - DriverIsVector(index2);
+ break;
+ }
+
+ case COLUMN_TRACKBALL:
+ value = DriverUsesTrackball(index1) - DriverUsesTrackball(index2);
+ break;
+
+ case COLUMN_PLAYED:
+ value = GetPlayCount(index1) - GetPlayCount(index2);
+ break;
+
+ case COLUMN_MANUFACTURER:
+ value = core_stricmp(driver_list::driver(index1).manufacturer, driver_list::driver(index2).manufacturer);
+ break;
+
+ case COLUMN_YEAR:
+ value = core_stricmp(driver_list::driver(index1).year, driver_list::driver(index2).year);
+ break;
+
+ case COLUMN_CLONE:
+ name1 = GetCloneParentName(index1);
+ name2 = GetCloneParentName(index2);
+
+ if (*name1 == '\0')
+ name1 = NULL;
+ if (*name2 == '\0')
+ name2 = NULL;
+
+ if (NULL == name1 && NULL == name2)
+ value = 0;
+ else if (name2 == NULL)
+ value = -1;
+ else if (name1 == NULL)
+ value = 1;
+ else
+ value = core_stricmp(name1, name2);
+ break;
+ }
+
+ // Handle same comparisons here
+ if (0 == value && COLUMN_GAMES != sort_subitem)
+ {
+ value = GamePicker_Compare(hwndPicker, index1, index2, COLUMN_GAMES);
+ }
+
+ return value;
+}
+
+int GetSelectedPick()
+{
+ /* returns index of listview selected item */
+ /* This will return -1 if not found */
+ return ListView_GetNextItem(hwndList, -1, LVIS_SELECTED | LVIS_FOCUSED);
+}
+
+static HICON GetSelectedPickItemIcon()
+{
+ LV_ITEM lvi;
+ lvi.iItem = GetSelectedPick();
+ lvi.iSubItem = 0;
+ lvi.mask = LVIF_IMAGE;
+ BOOL res = ListView_GetItem(hwndList, &lvi);
+ res++;
+ return ImageList_GetIcon(hLarge, lvi.iImage, ILD_TRANSPARENT);
+}
+
+static void SetRandomPickItem()
+{
+ int nListCount = ListView_GetItemCount(hwndList);
+
+ if (nListCount > 0)
+ Picker_SetSelectedPick(hwndList, rand() % nListCount);
+}
+
+BOOL CommonFileDialog(common_file_dialog_proc cfd, char *filename, int filetype)
+{
+ BOOL success;
+ UINT16 i;
+ OPENFILENAME ofn;
+ string dirname;
+ TCHAR* t_filename;
+ TCHAR t_filename_buffer[MAX_PATH] = {0, };
+ char *utf8_filename;
+
+ // convert the filename to UTF-8 and copy into buffer
+ t_filename = ui_wstring_from_utf8(filename);
+ if (t_filename)
+ {
+ _sntprintf(t_filename_buffer, ARRAY_LENGTH(t_filename_buffer), TEXT("%s"), t_filename);
+ free(t_filename);
+ }
+
+ ofn.lStructSize = sizeof(ofn);
+ ofn.hwndOwner = hMain;
+ ofn.hInstance = NULL;
+ switch (filetype)
+ {
+ case FILETYPE_INPUT_FILES :
+ ofn.lpstrFilter = TEXT("input files (*.inp,*.zip,*.7z)\0*.inp;*.zip;*.7z\0All files (*.*)\0*.*\0");
+ ofn.lpstrDefExt = TEXT("inp");
+ dirname = GetInpDir();
+ break;
+ case FILETYPE_SAVESTATE_FILES :
+ ofn.lpstrFilter = TEXT("savestate files (*.sta)\0*.sta;\0All files (*.*)\0*.*\0");
+ ofn.lpstrDefExt = TEXT("sta");
+ dirname = GetStateDir();
+ break;
+ case FILETYPE_WAVE_FILES :
+ ofn.lpstrFilter = TEXT("sounds (*.wav)\0*.wav;\0All files (*.*)\0*.*\0");
+ ofn.lpstrDefExt = TEXT("wav");
+ dirname = GetImgDir();
+ break;
+ case FILETYPE_MNG_FILES :
+ ofn.lpstrFilter = TEXT("videos (*.mng)\0*.mng;\0All files (*.*)\0*.*\0");
+ ofn.lpstrDefExt = TEXT("mng");
+ dirname = GetImgDir();
+ break;
+ case FILETYPE_AVI_FILES :
+ ofn.lpstrFilter = TEXT("videos (*.avi)\0*.avi;\0All files (*.*)\0*.*\0");
+ ofn.lpstrDefExt = TEXT("avi");
+ dirname = GetImgDir();
+ break;
+ case FILETYPE_EFFECT_FILES :
+ ofn.lpstrFilter = TEXT("effects (*.png)\0*.png;\0All files (*.*)\0*.*\0");
+ ofn.lpstrDefExt = TEXT("png");
+ dirname = GetArtDir();
+ break;
+ case FILETYPE_JOYMAP_FILES :
+ ofn.lpstrFilter = TEXT("maps (*.map,*.txt)\0*.map;*.txt;\0All files (*.*)\0*.*\0");
+ ofn.lpstrDefExt = TEXT("map");
+ dirname = GetCtrlrDir();
+ break;
+ case FILETYPE_DEBUGSCRIPT_FILES :
+ ofn.lpstrFilter = TEXT("scripts (*.txt,*.dat)\0*.txt;*.dat;\0All files (*.*)\0*.*\0");
+ ofn.lpstrDefExt = TEXT("txt");
+ dirname = GetInpDir();
+ break;
+ }
+ ofn.lpstrCustomFilter = NULL;
+ ofn.nMaxCustFilter = 0;
+ ofn.nFilterIndex = 1;
+ ofn.lpstrFile = t_filename_buffer;
+ ofn.nMaxFile = ARRAY_LENGTH(t_filename_buffer);
+ ofn.lpstrFileTitle = NULL;
+ ofn.nMaxFileTitle = 0;
+
+ // Only want first directory
+ i = dirname.find(";");
+ if (i > 0)
+ dirname.resize(i);
+ if (dirname.empty())
+ dirname = ".";
+ ofn.lpstrInitialDir = ui_wstring_from_utf8(dirname.c_str());
+
+ ofn.lpstrTitle = NULL;
+ ofn.Flags = OFN_EXPLORER | OFN_NOCHANGEDIR | OFN_PATHMUSTEXIST | OFN_HIDEREADONLY;
+ ofn.nFileOffset = 0;
+ ofn.nFileExtension = 0;
+ ofn.lCustData = 0;
+ ofn.lpfnHook = NULL;
+ ofn.lpTemplateName = NULL;
+
+ success = cfd(&ofn);
+ if (success)
+ {
+ //dprintf("got filename %s nFileExtension %u\n",filename,ofn.nFileExtension);
+ /*GetDirectory(filename,last_directory,sizeof(last_directory));*/
+ }
+
+ utf8_filename = ui_utf8_from_wstring(t_filename_buffer);
+ if (utf8_filename)
+ {
+ snprintf(filename, MAX_PATH, "%s", utf8_filename);
+ free(utf8_filename);
+ }
+
+ return success;
+}
+
+void SetStatusBarText(int part_index, const char *message)
+{
+ TCHAR* t_message = ui_wstring_from_utf8(message);
+ if( !t_message )
+ return;
+ SendMessage(hStatusBar, SB_SETTEXT, (WPARAM) part_index, (LPARAM)(LPCTSTR) win_tstring_strdup(t_message));
+ free(t_message);
+}
+
+void SetStatusBarTextF(int part_index, const char *fmt, ...)
+{
+ char buf[256];
+ va_list va;
+
+ va_start(va, fmt);
+ vsprintf(buf, fmt, va);
+ va_end(va);
+
+ SetStatusBarText(part_index, buf);
+}
+
+static void CLIB_DECL ATTR_PRINTF(1,2) MameMessageBox(const char *fmt, ...)
+{
+ char buf[2048];
+ va_list va;
+
+ va_start(va, fmt);
+ vsprintf(buf, fmt, va);
+ win_message_box_utf8(GetMainWindow(), buf, MAMEUINAME, MB_OK | MB_ICONERROR);
+ va_end(va);
+}
+
+static void MamePlayBackGame()
+{
+ char filename[MAX_PATH];
+ *filename = 0;
+
+ int nGame = Picker_GetSelectedItem(hwndList);
+ if (nGame != -1)
+ strcpy(filename, driver_list::driver(nGame).name);
+
+ if (CommonFileDialog(GetOpenFileName, filename, FILETYPE_INPUT_FILES))
+ {
+ osd_file::error fileerr;
+ char drive[_MAX_DRIVE];
+ char dir[_MAX_DIR];
+ char bare_fname[_MAX_FNAME];
+ char ext[_MAX_EXT];
+ char path[MAX_PATH];
+ char fname[MAX_PATH];
+ play_options playopts;
+
+ _splitpath(filename, drive, dir, bare_fname, ext);
+
+ sprintf(path,"%s%s",drive,dir);
+ sprintf(fname,"%s%s",bare_fname,ext);
+ if (path[strlen(path)-1] == '\\')
+ path[strlen(path)-1] = 0; // take off trailing back slash
+
+ emu_file pPlayBack(MameUIGlobal().input_directory(), OPEN_FLAG_READ);
+ fileerr = pPlayBack.open(fname);
+ if (fileerr != osd_file::error::NONE)
+ {
+ MameMessageBox("Could not open '%s' as a valid input file.", filename);
+ return;
+ }
+
+ // check for game name embedded in .inp header
+ inp_header header;
+
+ /* read the header and verify that it is a modern version; if not, print an error */
+ if (!header.read(pPlayBack))
+ {
+ MameMessageBox("Input file is corrupt or invalid (missing header)");
+ return;
+ }
+ if ((!header.check_magic()) || (header.get_majversion() != inp_header::MAJVERSION))
+ {
+ MameMessageBox("Input file invalid or in an older, unsupported format");
+ return;
+ }
+
+ string const sysname = header.get_sysname();
+ nGame = -1;
+ for (int i = 0; i < driver_list::total(); i++) // find game and play it
+ {
+ if (driver_list::driver(i).name == sysname)
+ {
+ nGame = i;
+ break;
+ }
+ }
+ if (nGame == -1)
+ {
+ MameMessageBox("Game \"%s\" cannot be found", sysname.c_str());
+ return;
+ }
+
+ memset(&playopts, 0, sizeof(playopts));
+ playopts.playback = fname;
+ playopts_apply = 0x57;
+ MamePlayGameWithOptions(nGame, &playopts);
+ }
+}
+
+static void MameLoadState()
+{
+ int nGame;
+ char filename[MAX_PATH];
+ char selected_filename[MAX_PATH];
+ play_options playopts;
+
+ *filename = 0;
+
+ nGame = Picker_GetSelectedItem(hwndList);
+ if (nGame != -1)
+ {
+ strcpy(filename, driver_list::driver(nGame).name);
+ strcpy(selected_filename, driver_list::driver(nGame).name);
+ }
+ if (CommonFileDialog(GetOpenFileName, filename, FILETYPE_SAVESTATE_FILES))
+ {
+ char drive[_MAX_DRIVE];
+ char dir[_MAX_DIR];
+ char ext[_MAX_EXT];
+
+ char path[MAX_PATH];
+ char fname[MAX_PATH];
+ char bare_fname[_MAX_FNAME];
+ char *state_fname;
+ //int rc;
+
+ _splitpath(filename, drive, dir, bare_fname, ext);
+
+ // parse path
+ sprintf(path,"%s%s",drive,dir);
+ sprintf(fname,"%s%s",bare_fname,ext);
+ if (path[strlen(path)-1] == '\\')
+ path[strlen(path)-1] = 0; // take off trailing back slash
+
+#ifdef MESS
+ {
+ state_fname = filename;
+ }
+#else // !MESS
+ {
+ char *cPos=0;
+ int iPos=0;
+ char romname[MAX_PATH];
+
+ cPos = strchr(bare_fname, '-' );
+ iPos = cPos ? cPos - bare_fname : strlen(bare_fname);
+ strncpy(romname, bare_fname, iPos );
+ romname[iPos] = '\0';
+ if( strcmp(selected_filename,romname) != 0 )
+ {
+ MameMessageBox("'%s' is not a valid savestate file for game '%s'.", filename, selected_filename);
+ return;
+ }
+ state_fname = fname;
+ }
+#endif // MESS
+ emu_file pSaveState(MameUIGlobal().state_directory(), OPEN_FLAG_READ);
+ osd_file::error fileerr = pSaveState.open(state_fname);
+ if (fileerr != osd_file::error::NONE)
+ {
+ MameMessageBox("Could not open '%s' as a valid savestate file.", filename);
+ return;
+ }
+
+ // call the MAME core function to check the save state file
+ //rc = state_manager::check_file(NULL, pSaveState, selected_filename, MameMessageBox);
+ //if (rc)
+// return;
+
+ memset(&playopts, 0, sizeof(playopts));
+#ifdef MESS
+ playopts.state = state_fname;
+ playopts_apply = 0x57;
+#else
+ {
+ char *cPos;
+ cPos = strrchr(bare_fname, '-' );
+ cPos = cPos+1;
+ if (*cPos != 0)
+ {
+ playopts.state = cPos;
+ }
+ }
+#endif
+
+ MamePlayGameWithOptions(nGame, &playopts);
+ }
+}
+
+static void MamePlayRecordGame()
+{
+ int nGame;
+ char filename[MAX_PATH];
+ *filename = 0;
+
+ nGame = Picker_GetSelectedItem(hwndList);
+ if (nGame != -1)
+ strcpy(filename, driver_list::driver(nGame).name);
+
+ if (CommonFileDialog(GetSaveFileName, filename, FILETYPE_INPUT_FILES))
+ {
+ char drive[_MAX_DRIVE];
+ char dir[_MAX_DIR];
+ char fname[_MAX_FNAME];
+ char ext[_MAX_EXT];
+ char path[MAX_PATH];
+ play_options playopts;
+
+ _splitpath(filename, drive, dir, fname, ext);
+
+ sprintf(path,"%s%s",drive,dir);
+ if (path[strlen(path)-1] == '\\')
+ path[strlen(path)-1] = 0; // take off trailing back slash
+
+ memset(&playopts, 0, sizeof(playopts));
+ strcat(fname, ".inp");
+ playopts.record = fname;
+ playopts_apply = 0x57;
+ MamePlayGameWithOptions(nGame, &playopts);
+ }
+}
+
+void MamePlayGame(void)
+{
+ int nGame;
+ play_options playopts;
+
+ nGame = Picker_GetSelectedItem(hwndList);
+ if (nGame != -1)
+ {
+ memset(&playopts, 0, sizeof(playopts));
+ MamePlayGameWithOptions(nGame, &playopts);
+ }
+}
+
+static void MamePlayRecordWave()
+{
+ int nGame;
+ char filename[MAX_PATH];
+ play_options playopts;
+
+ nGame = Picker_GetSelectedItem(hwndList);
+ if (nGame != -1)
+ strcpy(filename, driver_list::driver(nGame).name);
+
+ if (CommonFileDialog(GetSaveFileName, filename, FILETYPE_WAVE_FILES))
+ {
+ memset(&playopts, 0, sizeof(playopts));
+ playopts.wavwrite = filename;
+ playopts_apply = 0x57;
+ MamePlayGameWithOptions(nGame, &playopts);
+ }
+}
+
+static void MamePlayRecordMNG()
+{
+ int nGame;
+ char filename[MAX_PATH] = { 0, };
+
+ nGame = Picker_GetSelectedItem(hwndList);
+ if (nGame != -1)
+ strcpy(filename, driver_list::driver(nGame).name);
+
+ if (CommonFileDialog(GetSaveFileName, filename, FILETYPE_MNG_FILES))
+ {
+ char drive[_MAX_DRIVE];
+ char dir[_MAX_DIR];
+ char fname[_MAX_FNAME];
+ char ext[_MAX_EXT];
+ char path[MAX_PATH];
+ play_options playopts;
+
+ _splitpath(filename, drive, dir, fname, ext);
+
+ sprintf(path,"%s%s",drive,dir);
+ if (path[strlen(path)-1] == '\\')
+ path[strlen(path)-1] = 0; // take off trailing back slash
+
+ memset(&playopts, 0, sizeof(playopts));
+ strcat(fname, ".mng");
+ playopts.mngwrite = fname;
+ playopts_apply = 0x57;
+ MamePlayGameWithOptions(nGame, &playopts);
+ }
+}
+
+static void MamePlayRecordAVI()
+{
+ int nGame;
+ char filename[MAX_PATH] = { 0, };
+
+ nGame = Picker_GetSelectedItem(hwndList);
+ if (nGame != -1)
+ strcpy(filename, driver_list::driver(nGame).name);
+
+ if (CommonFileDialog(GetSaveFileName, filename, FILETYPE_AVI_FILES))
+ {
+ char drive[_MAX_DRIVE];
+ char dir[_MAX_DIR];
+ char fname[_MAX_FNAME];
+ char ext[_MAX_EXT];
+ char path[MAX_PATH];
+ play_options playopts;
+
+ _splitpath(filename, drive, dir, fname, ext);
+
+ sprintf(path,"%s%s",drive,dir);
+ if (path[strlen(path)-1] == '\\')
+ path[strlen(path)-1] = 0; // take off trailing back slash
+
+ memset(&playopts, 0, sizeof(playopts));
+ strcat(fname, ".avi");
+ playopts.aviwrite = fname;
+ playopts_apply = 0x57;
+ MamePlayGameWithOptions(nGame, &playopts);
+ }
+}
+
+
+static void MamePlayGameWithOptions(int nGame, const play_options *playopts)
+{
+ DWORD dwExitCode;
+ BOOL res;
+
+ if (g_pJoyGUI)
+ KillTimer(hMain, JOYGUI_TIMER);
+ if (GetCycleScreenshot() > 0)
+ KillTimer(hMain, SCREENSHOT_TIMER);
+
+ in_emulation = true;
+
+ dwExitCode = RunMAME(nGame, playopts);
+ if (dwExitCode == 0)
+ {
+ IncrementPlayCount(nGame);
+ res = ListView_RedrawItems(hwndList, GetSelectedPick(), GetSelectedPick());
+ }
+ else
+ {
+ ShowWindow(hMain, SW_SHOW);
+ }
+
+ in_emulation = false;
+
+ // re-sort if sorting on # of times played
+ if (GetSortColumn() == COLUMN_PLAYED)
+ Picker_Sort(hwndList);
+
+ UpdateStatusBar();
+
+ ShowWindow(hMain, SW_SHOW);
+ SetFocus(hwndList);
+
+ if (g_pJoyGUI)
+ SetTimer(hMain, JOYGUI_TIMER, JOYGUI_MS, NULL);
+ if (GetCycleScreenshot() > 0)
+ SetTimer(hMain, SCREENSHOT_TIMER, GetCycleScreenshot()*1000, NULL); //scale to seconds
+ res++;
+}
+
+/* Toggle ScreenShot ON/OFF */
+static void ToggleScreenShot(void)
+{
+ UINT val = GetWindowPanes() ^ 8;
+ BOOL show = BIT(val, 3);
+ SetWindowPanes(val);
+ UpdateScreenShot();
+
+ /* Redraw list view */
+ if (hBackground && show)
+ InvalidateRect(hwndList, NULL, false);
+}
+
+static void AdjustMetrics(void)
+{
+ HDC hDC;
+ TEXTMETRIC tm;
+ int xtraX, xtraY;
+ AREA area;
+ int offX, offY;
+ int maxX, maxY;
+ COLORREF textColor;
+ TCHAR szClass[128];
+ HWND hWnd;
+ HRESULT res;
+ BOOL b_res;
+
+ /* WM_SETTINGCHANGE also */
+ xtraX = GetSystemMetrics(SM_CXFIXEDFRAME); /* Dialog frame width */
+ xtraY = GetSystemMetrics(SM_CYFIXEDFRAME); /* Dialog frame height */
+ xtraY += GetSystemMetrics(SM_CYMENUSIZE); /* Menu height */
+ xtraY += GetSystemMetrics(SM_CYCAPTION); /* Caption Height */
+ maxX = GetSystemMetrics(SM_CXSCREEN); /* Screen Width */
+ maxY = GetSystemMetrics(SM_CYSCREEN); /* Screen Height */
+
+ hDC = GetDC(hMain);
+ GetTextMetrics (hDC, &tm);
+
+ /* Convert MIN Width/Height from Dialog Box Units to pixels. */
+ MIN_WIDTH = (int)((tm.tmAveCharWidth / 4.0) * DBU_MIN_WIDTH) + xtraX;
+ MIN_HEIGHT = (int)((tm.tmHeight / 8.0) * DBU_MIN_HEIGHT) + xtraY;
+ ReleaseDC(hMain, hDC);
+
+ if ((textColor = GetListFontColor()) == RGB(255, 255, 255))
+ textColor = RGB(240, 240, 240);
+
+ hWnd = GetWindow(hMain, GW_CHILD);
+ while(hWnd)
+ {
+ if (GetClassName(hWnd, szClass, sizeof(szClass) / sizeof(szClass[0])))
+ {
+ if (!_tcscmp(szClass, TEXT("SysListView32")))
+ {
+ b_res = ListView_SetBkColor(hWnd, GetSysColor(COLOR_WINDOW));
+ b_res = ListView_SetTextColor(hWnd, textColor);
+ }
+ else if (!_tcscmp(szClass, TEXT("SysTreeView32")))
+ {
+ res = TreeView_SetBkColor(hTreeView, GetSysColor(COLOR_WINDOW));
+ res = TreeView_SetTextColor(hTreeView, textColor);
+ }
+ }
+ hWnd = GetWindow(hWnd, GW_HWNDNEXT);
+ }
+
+ GetWindowArea(&area);
+
+ offX = area.x + area.width;
+ offY = area.y + area.height;
+
+ if (offX > maxX)
+ {
+ offX = maxX;
+ area.x = (offX - area.width > 0) ? (offX - area.width) : 0;
+ }
+ if (offY > maxY)
+ {
+ offY = maxY;
+ area.y = (offY - area.height > 0) ? (offY - area.height) : 0;
+ }
+
+ SetWindowArea(&area);
+ SetWindowPos(hMain, 0, area.x, area.y, area.width, area.height, SWP_NOZORDER | SWP_SHOWWINDOW | SWP_NOACTIVATE);
+ res++;
+ b_res++;
+}
+
+int FindIconIndex(int nIconResource)
+{
+ int i;
+ for(i = 0; g_iconData[i].icon_name; i++)
+ {
+ if (g_iconData[i].resource == nIconResource)
+ return i;
+ }
+ return -1;
+}
+
+int FindIconIndexByName(const char *icon_name)
+{
+ int i;
+ for (i = 0; g_iconData[i].icon_name; i++)
+ {
+ if (!strcmp(g_iconData[i].icon_name, icon_name))
+ return i;
+ }
+ return -1;
+}
+
+static int GetIconForDriver(int nItem)
+{
+ int iconRoms = 1;
+
+ if (DriverUsesRoms(nItem))
+ {
+ int audit_result = GetRomAuditResults(nItem);
+ if (audit_result == -1)
+ return 2;
+ else
+ if (IsAuditResultYes(audit_result))
+ iconRoms = 1;
+ else
+ iconRoms = 0;
+ }
+
+ // iconRoms is now either 0 (no roms), 1 (roms), or 2 (unknown)
+
+ /* these are indices into icon_names, which maps into our image list
+ * also must match IDI_WIN_NOROMS + iconRoms
+ */
+
+ if (iconRoms == 1)
+ {
+ // Show Red-X if the ROMs are present and flagged as NOT WORKING
+ if (DriverIsBroken(nItem))
+ iconRoms = FindIconIndex(IDI_WIN_REDX); // iconRoms now = 4
+ else
+ // Show imperfect if the ROMs are present and flagged as imperfect
+ if (DriverIsImperfect(nItem))
+ iconRoms = FindIconIndex(IDI_WIN_IMPERFECT); // iconRoms now = 5
+ else
+ // show clone icon if we have roms and game is working
+ if (DriverIsClone(nItem))
+ iconRoms = FindIconIndex(IDI_WIN_CLONE); // iconRoms now = 3
+ }
+
+ // if we have the roms, then look for a custom per-game icon to override
+ // not 2, because this indicates F5 must be done; not 0, because this indicates roms are missing; only use 4 if user chooses it
+ BOOL redx = GetOverrideRedX() & (iconRoms == 4);
+ if (iconRoms == 1 || iconRoms == 3 || iconRoms == 5 || redx)
+ {
+ if (icon_index[nItem] == 0)
+ AddDriverIcon(nItem,iconRoms);
+ iconRoms = icon_index[nItem];
+ }
+
+ return iconRoms;
+}
+
+static BOOL HandleTreeContextMenu(HWND hWnd, WPARAM wParam, LPARAM lParam)
+{
+ HMENU hTreeMenu;
+ HMENU hMenu;
+ TVHITTESTINFO hti;
+ POINT pt;
+ BOOL res;
+
+ if ((HWND)wParam != GetDlgItem(hWnd, IDC_TREE))
+ return false;
+
+ pt.x = GET_X_LPARAM(lParam);
+ pt.y = GET_Y_LPARAM(lParam);
+ if (pt.x < 0 && pt.y < 0)
+ GetCursorPos(&pt);
+
+ /* select the item that was right clicked or shift-F10'ed */
+ hti.pt = pt;
+ ScreenToClient(hTreeView,&hti.pt);
+ (void)TreeView_HitTest(hTreeView,&hti);
+ if ((hti.flags & TVHT_ONITEM) != 0)
+ res = TreeView_SelectItem(hTreeView,hti.hItem);
+
+ hTreeMenu = LoadMenu(hInst,MAKEINTRESOURCE(IDR_CONTEXT_TREE));
+
+ InitTreeContextMenu(hTreeMenu);
+
+ hMenu = GetSubMenu(hTreeMenu, 0);
+
+ UpdateMenu(hMenu);
+
+ TrackPopupMenu(hMenu,TPM_LEFTALIGN | TPM_RIGHTBUTTON,pt.x,pt.y,0,hWnd,NULL);
+
+ DestroyMenu(hTreeMenu);
+ res++;
+ return true;
+}
+
+
+
+static void GamePicker_OnBodyContextMenu(POINT pt)
+{
+ HMENU hMenuLoad;
+ HMENU hMenu;
+
+ hMenuLoad = LoadMenu(hInst, MAKEINTRESOURCE(IDR_CONTEXT_MENU));
+ hMenu = GetSubMenu(hMenuLoad, 0);
+ InitBodyContextMenu(hMenu);
+
+ UpdateMenu(hMenu);
+
+ TrackPopupMenu(hMenu,TPM_LEFTALIGN | TPM_RIGHTBUTTON,pt.x,pt.y,0,hMain,NULL);
+
+ DestroyMenu(hMenuLoad);
+}
+
+
+
+static BOOL HandleScreenShotContextMenu(HWND hWnd, WPARAM wParam, LPARAM lParam)
+{
+ HMENU hMenuLoad;
+ HMENU hMenu;
+ POINT pt;
+
+ if ((HWND)wParam != GetDlgItem(hWnd, IDC_SSPICTURE) && (HWND)wParam != GetDlgItem(hWnd, IDC_SSFRAME))
+ return false;
+
+ pt.x = GET_X_LPARAM(lParam);
+ pt.y = GET_Y_LPARAM(lParam);
+ if (pt.x < 0 && pt.y < 0)
+ GetCursorPos(&pt);
+
+ hMenuLoad = LoadMenu(hInst, MAKEINTRESOURCE(IDR_CONTEXT_SCREENSHOT));
+ hMenu = GetSubMenu(hMenuLoad, 0);
+
+ UpdateMenu(hMenu);
+
+ TrackPopupMenu(hMenu,TPM_LEFTALIGN | TPM_RIGHTBUTTON,pt.x,pt.y,0,hWnd,NULL);
+
+ DestroyMenu(hMenuLoad);
+
+ return true;
+}
+
+static void UpdateMenu(HMENU hMenu)
+{
+ TCHAR buf[200];
+ MENUITEMINFO mItem;
+ int nGame = Picker_GetSelectedItem(hwndList);
+ if (nGame < 0)
+ have_selection = 0;
+
+ LPTREEFOLDER lpFolder = GetCurrentFolder();
+ int i;
+ TCHAR* t_description;
+
+ if (have_selection)
+ {
+ t_description = ui_wstring_from_utf8(ConvertAmpersandString(ModifyThe(driver_list::driver(nGame).type.fullname())));
+ if( !t_description )
+ return;
+
+ _sntprintf(buf, ARRAY_LENGTH(buf), g_szPlayGameString, t_description);
+
+ mItem.cbSize = sizeof(mItem);
+ mItem.fMask = MIIM_TYPE;
+ mItem.fType = MFT_STRING;
+ mItem.dwTypeData = buf;
+ mItem.cch = _tcslen(mItem.dwTypeData);
+
+ SetMenuItemInfo(hMenu, ID_FILE_PLAY, false, &mItem);
+
+ EnableMenuItem(hMenu, ID_CONTEXT_SELECT_RANDOM, MF_ENABLED);
+
+ free(t_description);
+ }
+ else
+ {
+ EnableMenuItem(hMenu, ID_FILE_PLAY, MF_GRAYED);
+ EnableMenuItem(hMenu, ID_FILE_PLAY_RECORD, MF_GRAYED);
+ EnableMenuItem(hMenu, ID_GAME_PROPERTIES, MF_GRAYED);
+ EnableMenuItem(hMenu, ID_CONTEXT_SELECT_RANDOM, MF_GRAYED);
+ }
+
+ if (oldControl)
+ {
+ EnableMenuItem(hMenu, ID_CUSTOMIZE_FIELDS, MF_GRAYED);
+ EnableMenuItem(hMenu, ID_GAME_PROPERTIES, MF_GRAYED);
+ EnableMenuItem(hMenu, ID_OPTIONS_DEFAULTS, MF_GRAYED);
+ }
+
+ if (lpFolder->m_dwFlags & F_CUSTOM)
+ {
+ EnableMenuItem(hMenu,ID_CONTEXT_REMOVE_CUSTOM,MF_ENABLED);
+ EnableMenuItem(hMenu,ID_CONTEXT_RENAME_CUSTOM,MF_ENABLED);
+ }
+ else
+ {
+ EnableMenuItem(hMenu,ID_CONTEXT_REMOVE_CUSTOM,MF_GRAYED);
+ EnableMenuItem(hMenu,ID_CONTEXT_RENAME_CUSTOM,MF_GRAYED);
+ }
+ //pParent = GetFolderNameByID(lpFolder->m_nParent+1);
+
+ EnableMenuItem(hMenu, ID_FOLDER_PROPERTIES, (lpFolder->m_dwFlags & F_INIEDIT) ? MF_ENABLED : MF_GRAYED);
+
+ CheckMenuRadioItem(hMenu, ID_VIEW_TAB_ARTWORK, ID_VIEW_TAB_HISTORY, ID_VIEW_TAB_ARTWORK + TabView_GetCurrentTab(hTabCtrl), MF_BYCOMMAND);
+
+ // set whether we're showing the tab control or not
+ if (bShowTabCtrl)
+ CheckMenuItem(hMenu,ID_VIEW_PAGETAB,MF_BYCOMMAND | MF_CHECKED);
+ else
+ CheckMenuItem(hMenu,ID_VIEW_PAGETAB,MF_BYCOMMAND | MF_UNCHECKED);
+
+ for (i=0;i<MAX_TAB_TYPES;i++)
+ {
+ // disable menu items for tabs we're not currently showing
+ if (GetShowTab(i))
+ EnableMenuItem(hMenu,ID_VIEW_TAB_ARTWORK + i,MF_BYCOMMAND | MF_ENABLED);
+ else
+ EnableMenuItem(hMenu,ID_VIEW_TAB_ARTWORK + i,MF_BYCOMMAND | MF_GRAYED);
+
+ // check toggle menu items
+ if (GetShowTab(i))
+ CheckMenuItem(hMenu, ID_TOGGLE_TAB_ARTWORK + i,MF_BYCOMMAND | MF_CHECKED);
+ else
+ CheckMenuItem(hMenu, ID_TOGGLE_TAB_ARTWORK + i,MF_BYCOMMAND | MF_UNCHECKED);
+ }
+
+ for (i=0;i<MAX_FOLDERS;i++)
+ {
+ if (GetShowFolder(i))
+ CheckMenuItem(hMenu,ID_CONTEXT_SHOW_FOLDER_START + i,MF_BYCOMMAND | MF_CHECKED);
+ else
+ CheckMenuItem(hMenu,ID_CONTEXT_SHOW_FOLDER_START + i,MF_BYCOMMAND | MF_UNCHECKED);
+ }
+}
+
+void InitTreeContextMenu(HMENU hTreeMenu)
+{
+ extern const FOLDERDATA g_folderData[];
+
+ MENUITEMINFO mii;
+ ZeroMemory(&mii,sizeof(mii));
+ mii.cbSize = sizeof(mii);
+ mii.wID = -1;
+ mii.fMask = MIIM_SUBMENU | MIIM_ID;
+
+ HMENU hMenu = GetSubMenu(hTreeMenu, 0);
+
+ if (GetMenuItemInfo(hMenu,3,true,&mii) == false)
+ {
+ printf("can't find show folders context menu\n");fflush(stdout);
+ return;
+ }
+
+ if (mii.hSubMenu == NULL)
+ {
+ printf("can't find submenu for show folders context menu\n");fflush(stdout);
+ return;
+ }
+
+ hMenu = mii.hSubMenu;
+
+ for (int i=0; g_folderData[i].m_lpTitle; i++)
+ {
+ if (!g_folderData[i].m_process)
+ {
+ TCHAR* t_title = ui_wstring_from_utf8(g_folderData[i].m_lpTitle);
+ if( !t_title )
+ return;
+
+ mii.fMask = MIIM_TYPE | MIIM_ID;
+ mii.fType = MFT_STRING;
+ mii.dwTypeData = t_title;
+ mii.cch = _tcslen(mii.dwTypeData);
+ mii.wID = ID_CONTEXT_SHOW_FOLDER_START + g_folderData[i].m_nFolderId;
+
+ // menu in resources has one empty item (needed for the submenu to setup properly)
+ // so overwrite this one, append after
+ if (i == 0)
+ SetMenuItemInfo(hMenu,ID_CONTEXT_SHOW_FOLDER_START,false,&mii);
+ else
+ InsertMenuItem(hMenu,i,false,&mii);
+
+ free(t_title);
+ }
+ }
+}
+
+
+void InitBodyContextMenu(HMENU hBodyContextMenu)
+{
+ int current_game = Picker_GetSelectedItem(hwndList);
+ if (current_game < 0)
+ return;
+
+ TCHAR tmp[30];
+ MENUITEMINFO mii;
+ ZeroMemory(&mii,sizeof(mii));
+ mii.cbSize = sizeof(mii);
+
+ if (GetMenuItemInfo(hBodyContextMenu,ID_FOLDER_SOURCEPROPERTIES,false,&mii) == false)
+ {
+ dprintf("can't find show folders context menu\n");
+ return;
+ }
+
+ _sntprintf(tmp,ARRAY_LENGTH(tmp),TEXT("Properties for %s"), ui_wstring_from_utf8(GetDriverFilename(current_game) ));
+ mii.fMask = MIIM_TYPE | MIIM_ID;
+ mii.fType = MFT_STRING;
+ mii.dwTypeData = tmp;
+ mii.cch = _tcslen(mii.dwTypeData);
+ mii.wID = ID_FOLDER_SOURCEPROPERTIES;
+
+
+ // menu in resources has one default item
+ // so overwrite this one
+ SetMenuItemInfo(hBodyContextMenu,ID_FOLDER_SOURCEPROPERTIES,false,&mii);
+ EnableMenuItem(hBodyContextMenu, ID_FOLDER_VECTORPROPERTIES, DriverIsVector(current_game) ? MF_ENABLED : MF_GRAYED);
+}
+
+
+void ToggleShowFolder(int folder)
+{
+ int current_id = GetCurrentFolderID();
+
+ SetWindowRedraw(hwndList,false);
+
+ SetShowFolder(folder,!GetShowFolder(folder));
+
+ ResetTreeViewFolders();
+ SelectTreeViewFolder(current_id);
+
+ SetWindowRedraw(hwndList,true);
+}
+
+static LRESULT CALLBACK HistoryWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
+{
+ if (hBackground)
+ {
+ switch (uMsg)
+ {
+ case WM_MOUSEMOVE:
+ {
+ if (MouseHasBeenMoved())
+ ShowCursor(true);
+ break;
+ }
+
+ case WM_ERASEBKGND:
+ return true;
+ case WM_PAINT:
+ {
+ POINT p = { 0, 0 };
+
+ /* get base point of background bitmap */
+ MapWindowPoints(hWnd,hTreeView,&p,1);
+ PaintBackgroundImage(hWnd, NULL, p.x, p.y);
+ /* to ensure our parent procedure repaints the whole client area */
+ InvalidateRect(hWnd, NULL, false);
+ break;
+ }
+ }
+ }
+ return CallWindowProc(g_lpHistoryWndProc, hWnd, uMsg, wParam, lParam);
+}
+
+static LRESULT CALLBACK PictureFrameWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
+{
+ switch (uMsg)
+ {
+ case WM_MOUSEMOVE:
+ {
+ if (MouseHasBeenMoved())
+ ShowCursor(true);
+ break;
+ }
+
+ case WM_NCHITTEST :
+ {
+ POINT pt;
+ RECT rect;
+ HWND hHistory = GetDlgItem(hMain, IDC_HISTORY);
+
+ pt.x = LOWORD(lParam);
+ pt.y = HIWORD(lParam);
+ GetWindowRect(hHistory, &rect);
+ // check if they clicked on the picture area (leave 6 pixel no man's land
+ // by the history window to reduce mistaken clicks)
+ // no more no man's land, the Cursor changes when Edit control is left, should be enough feedback
+ if (have_history &&
+ ( ( (TabView_GetCurrentTab(hTabCtrl) == TAB_HISTORY) ||
+ (TabView_GetCurrentTab(hTabCtrl) == GetHistoryTab() && GetShowTab(TAB_HISTORY) == false) ||
+ (TAB_ALL == GetHistoryTab() && GetShowTab(TAB_HISTORY) == false) ) &&
+// (rect.top - 6) < pt.y && pt.y < (rect.bottom + 6) ) )
+ PtInRect( &rect, pt ) ) )
+
+ {
+ return HTTRANSPARENT;
+ }
+ else
+ {
+ return HTCLIENT;
+ }
+ }
+ break;
+ case WM_CONTEXTMENU:
+ if ( HandleScreenShotContextMenu(hWnd, wParam, lParam))
+ return false;
+ break;
+ }
+
+ if (hBackground)
+ {
+ switch (uMsg)
+ {
+ case WM_ERASEBKGND :
+ return true;
+ case WM_PAINT :
+ {
+ RECT rect,nodraw_rect;
+ HRGN region,nodraw_region;
+ POINT p = { 0, 0 };
+
+ /* get base point of background bitmap */
+ MapWindowPoints(hWnd,hTreeView,&p,1);
+
+ /* get big region */
+ GetClientRect(hWnd,&rect);
+ region = CreateRectRgnIndirect(&rect);
+
+ if (IsWindowVisible(GetDlgItem(hMain,IDC_HISTORY)))
+ {
+ /* don't draw over this window */
+ GetWindowRect(GetDlgItem(hMain,IDC_HISTORY),&nodraw_rect);
+ MapWindowPoints(HWND_DESKTOP,hWnd,(LPPOINT)&nodraw_rect,2);
+ nodraw_region = CreateRectRgnIndirect(&nodraw_rect);
+ CombineRgn(region,region,nodraw_region,RGN_DIFF);
+ DeleteObject(nodraw_region);
+ }
+ if (IsWindowVisible(GetDlgItem(hMain,IDC_SSPICTURE)))
+ {
+ /* don't draw over this window */
+ GetWindowRect(GetDlgItem(hMain,IDC_SSPICTURE),&nodraw_rect);
+ MapWindowPoints(HWND_DESKTOP,hWnd,(LPPOINT)&nodraw_rect,2);
+ nodraw_region = CreateRectRgnIndirect(&nodraw_rect);
+ CombineRgn(region,region,nodraw_region,RGN_DIFF);
+ DeleteObject(nodraw_region);
+ }
+
+ PaintBackgroundImage(hWnd,region,p.x,p.y);
+
+ DeleteObject(region);
+
+ /* to ensure our parent procedure repaints the whole client area */
+ InvalidateRect(hWnd, NULL, false);
+
+ break;
+ }
+ }
+ }
+ return CallWindowProc(g_lpPictureFrameWndProc, hWnd, uMsg, wParam, lParam);
+}
+
+static LRESULT CALLBACK PictureWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
+{
+ switch (uMsg)
+ {
+ case WM_ERASEBKGND :
+ return true;
+ case WM_PAINT :
+ {
+ PAINTSTRUCT ps;
+ HDC hdc,hdc_temp;
+ RECT rect;
+ HBITMAP old_bitmap;
+
+ int width,height;
+
+ RECT rect2;
+ HBRUSH hBrush;
+ HBRUSH holdBrush;
+ HRGN region1, region2;
+ int nBordersize;
+ nBordersize = GetScreenshotBorderSize();
+ hBrush = CreateSolidBrush(GetScreenshotBorderColor());
+
+ hdc = BeginPaint(hWnd,&ps);
+
+ hdc_temp = CreateCompatibleDC(hdc);
+ if (ScreenShotLoaded())
+ {
+ width = GetScreenShotWidth();
+ height = GetScreenShotHeight();
+
+ old_bitmap = (HBITMAP)SelectObject(hdc_temp,GetScreenShotHandle());
+ }
+ else
+ {
+ BITMAP bmp;
+
+ GetObject(hMissing_bitmap,sizeof(BITMAP),&bmp);
+ width = bmp.bmWidth;
+ height = bmp.bmHeight;
+
+ old_bitmap = (HBITMAP)SelectObject(hdc_temp,hMissing_bitmap);
+ }
+
+ GetClientRect(hWnd,&rect);
+
+ rect2 = rect;
+ //Configurable Borders around images
+ rect.bottom -= nBordersize;
+ if( rect.bottom < 0)
+ rect.bottom = rect2.bottom;
+ rect.right -= nBordersize;
+ if( rect.right < 0)
+ rect.right = rect2.right;
+ rect.top += nBordersize;
+ if( rect.top > rect.bottom )
+ rect.top = rect2.top;
+ rect.left += nBordersize;
+ if( rect.left > rect.right )
+ rect.left = rect2.left;
+ region1 = CreateRectRgnIndirect(&rect);
+ region2 = CreateRectRgnIndirect(&rect2);
+ CombineRgn(region2,region2,region1,RGN_DIFF);
+ holdBrush = (HBRUSH)SelectObject(hdc, hBrush);
+
+ FillRgn(hdc,region2, hBrush );
+ SelectObject(hdc, holdBrush);
+ DeleteBrush(hBrush);
+
+ SetStretchBltMode(hdc,STRETCH_HALFTONE);
+ StretchBlt(hdc,nBordersize,nBordersize,rect.right-rect.left,rect.bottom-rect.top,
+ hdc_temp,0,0,width,height,SRCCOPY);
+ SelectObject(hdc_temp,old_bitmap);
+ DeleteDC(hdc_temp);
+ DeleteObject(region1);
+ DeleteObject(region2);
+
+ EndPaint(hWnd,&ps);
+
+ return true;
+ }
+ }
+
+ return CallWindowProc(g_lpPictureWndProc, hWnd, uMsg, wParam, lParam);
+}
+
+static void RemoveCurrentGameCustomFolder(void)
+{
+ if (Picker_GetSelectedItem(hwndList) >= 0)
+ RemoveGameCustomFolder(Picker_GetSelectedItem(hwndList));
+}
+
+static void RemoveGameCustomFolder(int driver_index)
+{
+ int i;
+ TREEFOLDER **folders;
+ int num_folders;
+
+ GetFolders(&folders,&num_folders);
+
+ for (i=0; i<num_folders; i++)
+ {
+ if (folders[i]->m_dwFlags & F_CUSTOM && folders[i]->m_nFolderId == GetCurrentFolderID())
+ {
+ int current_pick_index;
+
+ RemoveFromCustomFolder(folders[i],driver_index);
+
+ if (driver_index == Picker_GetSelectedItem(hwndList))
+ {
+ /* if we just removed the current game,
+ move the current selection so that when we rebuild the listview it
+ leaves the cursor on next or previous one */
+
+ current_pick_index = GetSelectedPick();
+ Picker_SetSelectedPick(hwndList, GetSelectedPick() + 1);
+ if (current_pick_index == GetSelectedPick()) /* we must have deleted the last item */
+ Picker_SetSelectedPick(hwndList, GetSelectedPick() - 1);
+ }
+
+ ResetListView();
+ return;
+ }
+ }
+ MessageBox(GetMainWindow(), TEXT("Error searching for custom folder"), (LPCTSTR)MAMEUINAME, MB_OK | MB_ICONERROR);
+}
+
+
+static void BeginListViewDrag(NM_LISTVIEW *pnmv)
+{
+ LV_ITEM lvi;
+ lvi.iItem = pnmv->iItem;
+ lvi.mask = LVIF_PARAM;
+ BOOL res = ListView_GetItem(hwndList, &lvi);
+ res++;
+
+ game_dragged = lvi.lParam;
+
+ POINT pt;
+ pt.x = 0;
+ pt.y = 0;
+
+ /* Tell the list view control to create an image to use for dragging. */
+ himl_drag = ListView_CreateDragImage(hwndList,pnmv->iItem,&pt);
+
+ /* Start the drag operation. */
+ ImageList_BeginDrag(himl_drag, 0, 0, 0);
+
+ pt = pnmv->ptAction;
+ ClientToScreen(hwndList,&pt);
+ ImageList_DragEnter(GetDesktopWindow(),pt.x,pt.y);
+
+ /* Hide the mouse cursor, and direct mouse input to the parent window. */
+ SetCapture(hMain);
+
+ prev_drag_drop_target = NULL;
+
+ g_listview_dragging = true;
+}
+
+static void MouseMoveListViewDrag(POINTS p)
+{
+ HTREEITEM htiTarget;
+ TV_HITTESTINFO tvht;
+ BOOL res;
+
+ POINT pt;
+ pt.x = p.x;
+ pt.y = p.y;
+
+ ClientToScreen(hMain,&pt);
+
+ ImageList_DragMove(pt.x,pt.y);
+
+ MapWindowPoints(GetDesktopWindow(),hTreeView,&pt,1);
+
+ tvht.pt = pt;
+ htiTarget = TreeView_HitTest(hTreeView,&tvht);
+
+ if (htiTarget != prev_drag_drop_target)
+ {
+ ImageList_DragShowNolock(false);
+ if (htiTarget)
+ res = TreeView_SelectDropTarget(hTreeView,htiTarget);
+ else
+ res = TreeView_SelectDropTarget(hTreeView,NULL);
+ ImageList_DragShowNolock(true);
+
+ prev_drag_drop_target = htiTarget;
+ }
+ res++;
+}
+
+static void ButtonUpListViewDrag(POINTS p)
+{
+ POINT pt;
+ HTREEITEM htiTarget;
+ TV_HITTESTINFO tvht;
+ TVITEM tvi;
+
+ ReleaseCapture();
+
+ ImageList_DragLeave(hwndList);
+ ImageList_EndDrag();
+ ImageList_Destroy(himl_drag);
+
+ BOOL res = TreeView_SelectDropTarget(hTreeView,NULL);
+ res++;
+
+ g_listview_dragging = false;
+
+ /* see where the game was dragged */
+
+ pt.x = p.x;
+ pt.y = p.y;
+
+ MapWindowPoints(hMain,hTreeView,&pt,1);
+
+ tvht.pt = pt;
+ htiTarget = TreeView_HitTest(hTreeView,&tvht);
+ if (htiTarget == NULL)
+ {
+ LVHITTESTINFO lvhtti;
+ LPTREEFOLDER folder;
+ RECT rcList;
+
+ /* the user dragged a game onto something other than the treeview */
+ /* try to remove if we're in a custom folder */
+
+ /* see if it was dragged within the list view; if so, ignore */
+
+ MapWindowPoints(hTreeView,hwndList,&pt,1);
+ lvhtti.pt = pt;
+ GetWindowRect(hwndList, &rcList);
+ ClientToScreen(hwndList, &pt);
+ if( PtInRect(&rcList, pt) != 0 )
+ return;
+
+ folder = GetCurrentFolder();
+ if (folder->m_dwFlags & F_CUSTOM)
+ {
+ /* dragged out of a custom folder, so let's remove it */
+ RemoveCurrentGameCustomFolder();
+ }
+ return;
+ }
+
+ tvi.lParam = 0;
+ tvi.mask = TVIF_PARAM | TVIF_HANDLE;
+ tvi.hItem = htiTarget;
+
+ if (TreeView_GetItem(hTreeView, &tvi))
+ {
+ LPTREEFOLDER folder = (LPTREEFOLDER)tvi.lParam;
+ AddToCustomFolder(folder,game_dragged);
+ }
+}
+
+static LPTREEFOLDER GetSelectedFolder(void)
+{
+ HTREEITEM htree = TreeView_GetSelection(hTreeView);
+ if(htree)
+ {
+ TVITEM tvi;
+ tvi.hItem = htree;
+ tvi.mask = TVIF_PARAM;
+ BOOL res = TreeView_GetItem(hTreeView,&tvi);
+ res++;
+ return (LPTREEFOLDER)tvi.lParam;
+ }
+ return NULL;
+}
+
+static HICON GetSelectedFolderIcon(void)
+{
+ HTREEITEM htree = TreeView_GetSelection(hTreeView);
+ if (htree)
+ {
+ TVITEM tvi;
+ tvi.hItem = htree;
+ tvi.mask = TVIF_PARAM;
+ BOOL res = TreeView_GetItem(hTreeView,&tvi);
+ res++;
+ //LPTREEFOLDER folder = (LPTREEFOLDER)tvi.lParam;
+ //hSmall_icon = TreeView_GetImageList(hTreeView,(int)tvi.iImage);
+ HIMAGELIST hSmall_icon = NULL;
+ return ImageList_GetIcon(hSmall_icon, tvi.iImage, ILD_TRANSPARENT);
+ }
+ return NULL;
+}
+
+/* Updates all currently displayed Items in the List with the latest Data*/
+void UpdateListView(void)
+{
+ BOOL res;
+
+ if( (GetViewMode() == VIEW_GROUPED) || (GetViewMode() == VIEW_DETAILS ) )
+ res = ListView_RedrawItems(hwndList,ListView_GetTopIndex(hwndList), ListView_GetTopIndex(hwndList)+ ListView_GetCountPerPage(hwndList) );
+
+ res++;
+}
+
+static void CalculateBestScreenShotRect(HWND hWnd, RECT *pRect, BOOL restrict_height)
+{
+ int destX, destY;
+ int destW, destH;
+ int nBorder;
+ RECT rect;
+ /* for scaling */
+ int x, y;
+ int rWidth, rHeight;
+ double scale;
+ BOOL bReduce = false;
+
+ GetClientRect(hWnd, &rect);
+
+ // Scale the bitmap to the frame specified by the passed in hwnd
+ if (ScreenShotLoaded())
+ {
+ x = GetScreenShotWidth();
+ y = GetScreenShotHeight();
+ }
+ else
+ {
+ BITMAP bmp;
+ GetObject(hMissing_bitmap,sizeof(BITMAP),&bmp);
+
+ x = bmp.bmWidth;
+ y = bmp.bmHeight;
+ }
+ rWidth = (rect.right - rect.left);
+ rHeight = (rect.bottom - rect.top);
+
+ /* Limit the screen shot to max height of 264 */
+ if (restrict_height == true && rHeight > 264)
+ {
+ rect.bottom = rect.top + 264;
+ rHeight = 264;
+ }
+
+ /* If the bitmap does NOT fit in the screenshot area */
+ if (x > rWidth - 10 || y > rHeight - 10)
+ {
+ rect.right -= 10;
+ rect.bottom -= 10;
+ rWidth -= 10;
+ rHeight -= 10;
+ bReduce = true;
+ /* Try to scale it properly */
+ /* assumes square pixels, doesn't consider aspect ratio */
+ if (x > y)
+ scale = (double)rWidth / x;
+ else
+ scale = (double)rHeight / y;
+
+ destW = (int)(x * scale);
+ destH = (int)(y * scale);
+
+ /* If it's still too big, scale again */
+ if (destW > rWidth || destH > rHeight)
+ {
+ if (destW > rWidth)
+ scale = (double)rWidth / destW;
+ else
+ scale = (double)rHeight / destH;
+
+ destW = (int)(destW * scale);
+ destH = (int)(destH * scale);
+ }
+ }
+ else
+ {
+ if (GetStretchScreenShotLarger())
+ {
+ rect.right -= 10;
+ rect.bottom -= 10;
+ rWidth -= 10;
+ rHeight -= 10;
+ bReduce = true;
+ // Try to scale it properly
+ // assumes square pixels, doesn't consider aspect ratio
+ if (x < y)
+ scale = (double)rWidth / x;
+ else
+ scale = (double)rHeight / y;
+
+ destW = (int)(x * scale);
+ destH = (int)(y * scale);
+
+ // If it's too big, scale again
+ if (destW > rWidth || destH > rHeight)
+ {
+ if (destW > rWidth)
+ scale = (double)rWidth / destW;
+ else
+ scale = (double)rHeight / destH;
+
+ destW = (int)(destW * scale);
+ destH = (int)(destH * scale);
+ }
+ }
+ else
+ {
+ // Use the bitmaps size if it fits
+ destW = x;
+ destH = y;
+ }
+
+ }
+
+
+ destX = (rWidth - destW) / 2;
+ destY = (rHeight - destH) / 2;
+
+ if (bReduce)
+ {
+ destX += 5;
+ destY += 5;
+ }
+ nBorder = GetScreenshotBorderSize();
+ if( destX > nBorder+1)
+ pRect->left = destX - nBorder;
+ else
+ pRect->left = 2;
+ if( destY > nBorder+1)
+ pRect->top = destY - nBorder;
+ else
+ pRect->top = 2;
+ if( rWidth >= destX + destW + nBorder)
+ pRect->right = destX + destW + nBorder;
+ else
+ pRect->right = rWidth - pRect->left;
+ if( rHeight >= destY + destH + nBorder)
+ pRect->bottom = destY + destH + nBorder;
+ else
+ pRect->bottom = rHeight - pRect->top;
+}
+
+/*
+ Switches to either fullscreen or normal mode, based on the
+ current mode.
+
+ POSSIBLE BUGS:
+ Removing the menu might cause problems later if some
+ function tries to poll info stored in the menu. Don't
+ know if you've done that, but this was the only way I
+ knew to remove the menu dynamically.
+*/
+
+static void SwitchFullScreenMode(void)
+{
+ LONG lMainStyle;
+
+ if (GetRunFullScreen())
+ {
+ // Return to normal
+
+ // Restore the menu
+ SetMenu(hMain, LoadMenu(hInst,MAKEINTRESOURCE(IDR_UI_MENU)));
+
+ // Refresh the checkmarks
+ CheckMenuItem(GetMenu(hMain), ID_VIEW_FOLDERS, BIT(GetWindowPanes(), 0) ? MF_CHECKED : MF_UNCHECKED);
+ CheckMenuItem(GetMenu(hMain), ID_VIEW_TOOLBARS, GetShowToolBar() ? MF_CHECKED : MF_UNCHECKED);
+ CheckMenuItem(GetMenu(hMain), ID_VIEW_STATUS, GetShowStatusBar() ? MF_CHECKED : MF_UNCHECKED);
+ CheckMenuItem(GetMenu(hMain), ID_VIEW_PAGETAB, GetShowTabCtrl() ? MF_CHECKED : MF_UNCHECKED);
+
+ // Add frame to dialog again
+ lMainStyle = GetWindowLong(hMain, GWL_STYLE);
+ lMainStyle = lMainStyle | WS_BORDER;
+ SetWindowLong(hMain, GWL_STYLE, lMainStyle);
+
+ // Show the window maximized
+ if( GetWindowState() == SW_MAXIMIZE )
+ {
+ ShowWindow(hMain, SW_NORMAL);
+ ShowWindow(hMain, SW_MAXIMIZE);
+ }
+ else
+ ShowWindow(hMain, SW_RESTORE);
+
+ SetRunFullScreen(false);
+ }
+ else
+ {
+ // Set to fullscreen
+
+ // Remove menu
+ SetMenu(hMain,NULL);
+
+ // Frameless dialog (fake fullscreen)
+ lMainStyle = GetWindowLong(hMain, GWL_STYLE);
+ lMainStyle = lMainStyle & (WS_BORDER ^ 0xffffffff);
+ SetWindowLong(hMain, GWL_STYLE, lMainStyle);
+ if( IsMaximized(hMain) )
+ {
+ ShowWindow(hMain, SW_NORMAL);
+ SetWindowState( SW_MAXIMIZE );
+ }
+ else
+ {
+ SetWindowState( SW_NORMAL );
+ }
+
+ ShowWindow(hMain, SW_MAXIMIZE);
+
+ SetRunFullScreen(true);
+ }
+}
+
+/*
+ Checks to see if the mouse has been moved since this func
+ was first called (which is at startup). The reason for
+ storing the startup coordinates of the mouse is that when
+ a window is created it generates WM_MOUSEOVER events, even
+ though the user didn't actually move the mouse. So we need
+ to know when the WM_MOUSEOVER event is user-triggered.
+
+ POSSIBLE BUGS:
+ Gets polled at every WM_MOUSEMOVE so it might cause lag,
+ but there's probably another way to code this that's
+ way better?
+
+*/
+
+BOOL MouseHasBeenMoved(void)
+{
+ static int mouse_x = -1;
+ static int mouse_y = -1;
+ POINT p;
+
+ GetCursorPos(&p);
+
+ if (mouse_x == -1) // First time
+ {
+ mouse_x = p.x;
+ mouse_y = p.y;
+ }
+
+ return (p.x != mouse_x || p.y != mouse_y);
+}
+
+/* End of source file */
diff --git a/src/osd/winui/winui.h b/src/osd/winui/winui.h
new file mode 100644
index 00000000000..a80c122ce8a
--- /dev/null
+++ b/src/osd/winui/winui.h
@@ -0,0 +1,106 @@
+// For licensing and usage information, read docs/winui_license.txt
+//****************************************************************************
+
+#ifndef WINUI_H
+#define WINUI_H
+
+#include <commctrl.h>
+#include <commdlg.h>
+#include "emu.h"
+#include "pool.h"
+#include "screenshot.h"
+#include "drivenum.h"
+
+#define MAMENAME "HBMAME"
+#define UI_INI_FILENAME MAMENAME "UI.ini"
+
+#ifdef PTR64
+#define MAMEUINAME MAMENAME "UI64"
+#else
+#define MAMEUINAME MAMENAME "UI32"
+#endif
+
+#define SEARCH_PROMPT ""
+
+enum
+{
+ UNKNOWN = -1,
+ TAB_PICKER = 0,
+ TAB_DISPLAY,
+ TAB_MISC,
+ NUM_TABS
+};
+
+enum
+{
+ FILETYPE_INPUT_FILES = 1,
+ FILETYPE_SAVESTATE_FILES,
+ FILETYPE_WAVE_FILES,
+ FILETYPE_AVI_FILES,
+ FILETYPE_MNG_FILES,
+ FILETYPE_EFFECT_FILES,
+ FILETYPE_JOYMAP_FILES,
+ FILETYPE_DEBUGSCRIPT_FILES,
+};
+
+
+typedef struct
+{
+ INT resource;
+ const char *icon_name;
+} ICONDATA;
+
+extern TCHAR last_directory[MAX_PATH];
+
+typedef BOOL (WINAPI *common_file_dialog_proc)(LPOPENFILENAME lpofn);
+
+typedef std::string string;
+
+BOOL CommonFileDialog(common_file_dialog_proc cfd,char *filename, int filetype);
+
+HWND GetMainWindow(void);
+HWND GetTreeView(void);
+void SetNumOptionFolders(int count);
+void GetRealColumnOrder(int order[]);
+HICON LoadIconFromFile(const char *iconname);
+void UpdateScreenShot(void);
+void ResizePickerControls(HWND hWnd);
+void MamePlayGame(void);
+int FindIconIndex(int nIconResource);
+int FindIconIndexByName(const char *icon_name);
+int GetSelectedPick(void);
+object_pool *GetMameUIMemoryPool(void);
+
+void UpdateListView(void);
+
+// Move The in "The Title (notes)" to "Title, The (notes)"
+char * ModifyThe(const char *str);
+
+// Convert Ampersand so it can display in a static control
+char * ConvertAmpersandString(const char *s);
+
+// globalized for painting tree control
+HBITMAP GetBackgroundBitmap(void);
+HPALETTE GetBackgroundPalette(void);
+MYBITMAPINFO* GetBackgroundInfo(void);
+BOOL GetUseOldControl(void);
+BOOL GetUseXPControl(void);
+
+int GetMinimumScreenShotWindowWidth(void);
+
+// we maintain an array of drivers sorted by name, useful all around
+int GetParentIndex(const game_driver *driver);
+int GetParentRomSetIndex(const game_driver *driver);
+int GetGameNameIndex(const char *name);
+
+// sets text in part of the status bar on the main window
+void SetStatusBarText(int part_index, const char *message);
+void SetStatusBarTextF(int part_index, const char *fmt, ...) ATTR_PRINTF(2,3);
+
+int MameUIMain(HINSTANCE hInstance, LPWSTR lpCmdLine, int nCmdShow);
+
+BOOL MouseHasBeenMoved(void);
+
+const char * GetSearchText(void);
+
+#endif
diff --git a/src/version.cpp b/src/version.cpp
new file mode 100644
index 00000000000..97229dac10f
--- /dev/null
+++ b/src/version.cpp
@@ -0,0 +1,22 @@
+// license:BSD-3-Clause
+// copyright-holders:Aaron Giles
+/***************************************************************************
+
+ version.c
+
+ Version string source file for MAME.
+
+***************************************************************************/
+
+#define BARE_BUILD_VERSION "0.191"
+
+extern const char bare_build_version[];
+extern const char build_version[];
+const char bare_build_version[] = BARE_BUILD_VERSION;
+#if defined(GIT_VERSION)
+#define VERSION_TO_STRING(s) XVERSION_TO_STRING(s)
+#define XVERSION_TO_STRING(ver) #ver
+const char build_version[] = BARE_BUILD_VERSION " (" VERSION_TO_STRING(GIT_VERSION) ")";
+#else
+const char build_version[] = BARE_BUILD_VERSION " (" __DATE__")";
+#endif